$( This is the Metamath database set.mm. $)

$( Metamath is a formal language and associated computer program for
   archiving, verifying, and studying mathematical proofs, created by Norman
   Dwight Megill (1950--2021).  For more information, visit
   http://us.metamath.org and
   https://github.com/metamath/set.mm, and feel free to ask questions at
   http://groups.google.com/group/metamath. $)

$( New users may want to read http://us.metamath.org/mpeuni/conventions.html to
   understand the label naming conventions used in set.mm.  See also "help
   verify markup" in the Metamath program for markup conventions. $)

$( To break this file into smaller modules, in the Metamath program type "read
   set.mm" followed by "write source set.mm /split"; to recombine, omit
   "/split". $)

$( The database set.mm was created by Norman Megill on 30-Sep-1992 and has
   been continuously enriched since then (list of contributors below). $)


$( !
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Metamath source file for logic and set theory
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

                           ~~ PUBLIC DOMAIN ~~
This work is waived of all rights, including copyright, according to the CC0
Public Domain Dedication.  http://creativecommons.org/publicdomain/zero/1.0/

Currently active maintainers: See the list in the CONTRIBUTING.md file.

Contributor list:

DA  David Abernethy
SA  Stefan Allan
TA  Thierry Arnoux
JA  Juha Arpiainen
JB  Jonathan Ben-Naim
GB  Gregory Bush
MC  Mario Carneiro
FC  Filip Cernatescu
PC  Paul Chapman
DF  Drahflow
GD  Georgy Dunaev
SF  Scott Fenton
JGH Jeff Hankins
AH  Anthony Hart
DH  David Harvey
CH  Chen-Pang He
JH  Jeff Hoffman
AI  Asger C. Ipsen
JJ  Jerry James
SJ  Szymon Jaroszewicz
BJ  Benoit Jubin
JK  Jim Kingdon
ML  M L
WL  Wolf Lammen
GL  Gerard Lang
BL  Brendan Leahy
RL  Raph Levien
FL  Frederic Line
RFL Roy F. Longton
GM  Giovanni Mascellani
JM  Jeff Madsen
PM  Peter Mazsa
RM  Rodolfo Medina
NM  Norman Megill
DM  David Moews
MM  Mykola Mostovenko
MO  Mel L. O'Cat
OA  OpenAI
SO  Stefan O'Rear
JO  Jason Orendorff
KP  K P
JPP Jon Pennant
RP  Richard Penner
SP  Stanislas Polu
JP  Josh Purinton
SR  Steve Rodriguez
ATS Andrew Salmon
AS  Alan Sare
ES  Eric Schmidt
GS  Glauco Siliprandi
SS  Saveliy Skresanov
JU  Jarvin Udandy
AV  Alexander van der Vekens
JV  Jannik Vierling
EW  Emmett Weisz
DAW David A. Wheeler
RW  Roger Witte
KW  Kyle Wyonch
JY  Jonathan Yan
FZ  Fan Zheng
KZ  Kunhao Zheng

HTML code for accented names:
  GL G&eacute;rard Lang
  FL Fr&eacute;d&eacute;ric Lin&eacute;
$)


$( (See 'help verify markup' for help with modularization tags.) $)
$( Begin $[ set-header.mm $] $)
$( !
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Contents of this header
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

1. Recent label changes
2. Quick "How To"
3. Bibliography
4. Metamath syntax summary
5. Other notes


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1. Recent label changes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

This is part of an ongoing project to improve naming consistency.  If you have
suggestions for better names, let me know.

To update your mathbox, you can make global substitutions into
your local version by processing the ones WITHOUT "Notes" in REVERSE order.
The ones WITH "Notes" may have to be processed manually.

PROPOSED:
Date      Old       New         Notes
proposed  syl       imtri       (analogous to *bitr*, sstri, etc.)
proposed  sylib     imbitri     etc.
proposed  sylbid    biimtrd     etc.
proposed  sylbird   biimtrrd    etc.
proposed  syl5*     *trid       (syl5bi -> biimtrid; syl5eqel -> eqeltrid;etc.)
proposed  syl6*     *trdi
proposed  *mpt*     *mpf* or *mptf* (maps-to for functions)
proposed  *mpt2*    *mpo* or *mpto* (maps-to for operations)
(Please send any comments on these proposals to Norm Megill.)

DONE:
Date      Old       New         Notes
21-Feb-22 cnvoprab  [same]      moved from TA's mathbox to main set.mm
16-Feb-22 opidg     [same]      moved from AV's/PM's mathboxes to main set.mm
 5-Feb-22 3orel1    [same]      moved from SF's mathbox to main set.mm
 5-Feb-22 cofmpt    [same]      moved from TA's mathbox to main set.mm
27-Jan-22 ccatw2s1cl [same]     moved from AV's mathbox to main set.mm
27-Jan-22 fzosplitpr [same]     moved from AV's mathbox to main set.mm
23-Jan-22 jca2      [same]      moved from RM's mathbox to main set.mm
23-Jan-22 eqvincg   [same]      moved from TA's mathbox to main set.mm
23-Jan-22 idssxp    [same]      moved from TA's mathbox to main set.mm
23-Jan-22 dfres3    [same]      moved from SF's mathbox to main set.mm
23-Jan-22 brv       [same]      moved from SF's mathbox to main set.mm
23-Jan-22 dfss6     [same]      moved from RP's mathbox to main set.mm
23-Jan-22 2r19.29   [same]      moved from RM's mathbox to main set.mm
23-Jan-22 n0el      [same]      moved from RM's mathbox to main set.mm
19-Jan-22 clelsb3f  [same]      moved from TA's mathbox to main set.mm
 9-Jan-22 sumeq2ad  [same]      moved from GS's mathbox to main set.mm
 3-Jan-22 rabidim1  [same]      moved from GS's mathbox to main set.mm
 2-Jan-22 xlemnf    [same]      moved from TA's mathbox to main set.mm
 2-Jan-22 infxrmnf  [same]      moved from TA's mathbox to main set.mm
26-Dec-21 3imp231   [same]      moved from AS's mathbox to main set.mm
21-Dec-21 bj-eleq2w eleq2w      moved from BJ's mathbox to main set.mm
20-Dec-21 bj-eleq1w eleq1w      moved from BJ's mathbox to main set.mm
20-Dec-21 rabeqi    [same]      moved from GS's mathbox to main set.mm
20-Dec-21 rabeqif   [same]      moved from GS's mathbox to main set.mm
20-Dec-21 bnj21     ssrab3      moved from JB's mathbox to main set.mm
20-Dec-21 funfnd    [same]      moved from GS's mathbox to main set.mm
20-Dec-21 elrabd    [same]      moved from GS's mathbox to main set.mm
20-Dec-21 rabasiun  ---         deleted; use iunrab instead
19-Dec-21 ssdifsn   [same]      moved from EW's mathbox to main set.mm
19-Dec-21 dvrecg    [same]      moved from GS's mathbox to main set.mm
19-Dec-21 dvmptdiv  [same]      moved from GS's mathbox to main set.mm
16-Dec-21 logge0b & al. [same]  moved from AV's mathbox to main set.mm
 3-Dec-21 ovexd     [same]      moved from GS's mathbox to main set.mm
 2-Dec-21 divcncf   [Same]      moved from GS's mathbox to main set.mm
 2-Dec-21 mptex2    [Same]      moved from GS's mathbox to main set.mm
 1-Dec-21 unicntop  [Same]      moved from GS's mathbox to main set.mm
 1-Dec-21 cnopn     [Same]      moved from GS's mathbox to main set.mm
 1-Dec-21 volioo    [Same]      moved from GS's mathbox to main set.mm
26-Nov-21 fvexd     [same]      moved from GS's mathbox to main set.mm
26-Nov-21 xgepnf    [same]      moved from TA's mathbox to main set.mm
26-Nov-21 elnelall  [same]      moved from AV's mathbox to main set.mm
26-Nov-21 nn0le2is012 [same]    moved from AV's mathbox to main set.mm
16-Nov-21 rabbia2   [same]      moved from GS's mathbox to main set.mm
16-Nov-21 elpwd     [same]      moved from GS's mathbox to main set.mm
16-Nov-21 elpwi2    [same]      moved from GS's mathbox to main set.mm
16-Nov-21 uhgrstrrepelem setsn0fun split into two theorems
16-Nov-21 uhgrstrrepelem basprssdmsets split into two theorems
14-Nov-21 plusgndxnmulrndx [same] moved from AV's mathbox to main set.mm
14-Nov-21 basendxnmulrndx [same] moved from AV's mathbox to main set.mm
12-Nov-21 ---       ---         math token "Con" changed to "Conn"
12-Nov-21 ---       ---         math token "PCon" changed to "PConn"
12-Nov-21 ---       ---         math token "SCon" changed to "SConn"
12-Nov-21 ccon      cconn       in labels, "connected" is abbreviated by "conn"
12-Nov-21 df-con    df-conn
12-Nov-21 cpcon     cpconn
12-Nov-21 df-pcon   df-pconn
12-Nov-21 cscon     csconn
12-Nov-21 df-scon   df-sconn
12-Nov-21 iscon     isconn
12-Nov-21 iscon2    isconn2
12-Nov-21 conclo    connclo
12-Nov-21 contop    conntop
12-Nov-21 indiscon  indisconn
12-Nov-21 dfcon2    dfconn2
12-Nov-21 consuba   connsuba
12-Nov-21 consub    connsub
12-Nov-21 cncon     cnconn
12-Nov-21 nconsubb  nconnsubb
12-Nov-21 consubclo connsubclo
12-Nov-21 conima    connima
12-Nov-21 concn     conncn
12-Nov-21 iunconlem iunconnlem
12-Nov-21 iuncon    iunconn
12-Nov-21 uncon     unconn
12-Nov-21 clscon    clsconn
12-Nov-21 concompid conncompid
12-Nov-21 concompcon conncompconn
12-Nov-21 concompss conncompss
12-Nov-21 concompcld conncompcld
12-Nov-21 concompclo conncompclo
12-Nov-21 t1conperf t1connperf
12-Nov-21 txcon     txconn
12-Nov-21 qtopcon   qtopconn
12-Nov-21 conhmph   connhmph
12-Nov-21 filcon    filconn
12-Nov-21 tgpconcompeqg tgpconncompeqg
12-Nov-21 tgpconcomp tgpconncomp
12-Nov-21 tgpconcompss tgpconncompss
12-Nov-21 reconlem1 reconnlem1
12-Nov-21 recon     reconn
12-Nov-21 retopcon  retopconn
12-Nov-21 iicon     iiconn
12-Nov-21 xrcon     xrconn
12-Nov-21 ordtconlem1 ordtconnlem1
12-Nov-21 ordtcon   ordtconn
12-Nov-21 ispcon    ispconn
12-Nov-21 pconcn    pconncn
12-Nov-21 pcontop   pconntop
12-Nov-21 isscon    issconn
12-Nov-21 sconpcon  sconnpconn
12-Nov-21 scontop   sconntop
12-Nov-21 sconpht   sconnpht
12-Nov-21 cnpcon    cnpconn
12-Nov-21 pconcon   pconnconn
12-Nov-21 txpcon    txpconn
12-Nov-21 ptpcon    ptpconn
12-Nov-21 indispcon indispconn
12-Nov-21 conpcon   connpconn
12-Nov-21 qtoppcon  qtoppconn
12-Nov-21 pconpi1   pconnpi1
12-Nov-21 sconpht2  sconnpht2
12-Nov-21 sconpi1   sconnpi1
12-Nov-21 txsconlem txsconnlem
12-Nov-21 txscon    txsconn
12-Nov-21 cvxpcon   cvxpconn
12-Nov-21 cvxscon   cvxsconn
12-Nov-21 blscon    blsconn
12-Nov-21 cnllyscon cnllysconn
12-Nov-21 rescon    resconn
12-Nov-21 iooscon   ioosconn
12-Nov-21 iccscon   iccsconn
12-Nov-21 retopscon retopsconn
12-Nov-21 iccllyscon iccllysconn
12-Nov-21 rellyscon rellysconn
12-Nov-21 iiscon    iisconn
12-Nov-21 iillyscon iillysconn
12-Nov-21 iinllycon iinllyconn
12-Nov-21 onsucconi onsucconni
12-Nov-21 onsuccon  onsucconn
12-Nov-21 ordtopcon ordtopconn
12-Nov-21 onintopsscon onintopssconn
12-Nov-21 iunconlem2 iunconnlem2
12-Nov-21 iunconALT iunconnALT
 5-Nov-21 fvexi     [same]      moved from GS's mathbox to main set.mm
 2-Nov-21 resunimafz0 [same]    moved from AV's mathbox to main set.mm
 2-Nov-21 fpropnf1  [same]      moved from AV's mathbox to main set.mm
 1-Nov-21 f1cofveqaeq [same]    moved from AV's mathbox to main set.mm
 1-Nov-21 f1cofveqaeqALT [same] moved from AV's mathbox to main set.mm
 1-Nov-21 fz0add1fz1 [same]     moved from AV's mathbox to main set.mm
31-Oct-21 rexdifpr  [same]      moved from AV's mathbox to main set.mm
31-Oct-21 pr1eqbg   [same]      moved from AV's mathbox to main set.mm
31-Oct-21 pr1nebg   [same]      moved from AV's mathbox to main set.mm
31-Oct-21 2f1fvneq  [same]      moved from AV's mathbox to main set.mm
31-Oct-21 prinfzo0  [same]      moved from AV's mathbox to main set.mm
31-Oct-21 elfzo0l   [same]      moved from AV's mathbox to main set.mm
31-Oct-21 elfzr     [same]      moved from AV's mathbox to main set.mm
31-Oct-21 elfzlmr   [same]      moved from AV's mathbox to main set.mm
31-Oct-21 elfz0lmr  [same]      moved from AV's mathbox to main set.mm
31-Oct-21 fvmptopab1 fvmptopab  revised and renamed
31-Oct-21 fvmptopab2 ---        deleted; use fvmptopab instead
31-Oct-21 sylancl3  sylanblrc   moved from BJ's mathbox to main set.mm
30-Oct-21 rabid2f   [same]      moved from TA's mathbox to main set.mm
30-Oct-21 rabtru    [same]      moved from TA's mathbox to main set.mm
30-Oct-21 mptexgf   [same]      moved from TA's mathbox to main set.mm
30-Oct-21 suprcld   [same]      moved from SP's mathbox to main set.mm
30-Oct-21 suprubd   [same]      moved from SP's mathbox to main set.mm
30-Oct-21 resmptf   [same]      moved from TA's mathbox to main set.mm
30-Oct-21 fnct      [same]      moved from TA's mathbox to main set.mm
30-Oct-21 mptct     [same]      moved from TA's mathbox to main set.mm
30-Oct-21 cnvct     [same]      moved from TA's mathbox to main set.mm
30-Oct-21 dmct      [same]      moved from TA's mathbox to main set.mm
30-Oct-21 rnct      [same]      moved from TA's mathbox to main set.mm
30-Oct-21 mpteq12d  [same]      moved from SF's mathbox to main set.mm
30-Oct-21 mpteq12df [same]      moved from TA's mathbox to main set.mm
26-Oct-21 clel5     [same]      moved from AV's mathbox to main set.mm
26-Oct-21 vsssseq   [same]      moved from AV's mathbox to main set.mm
26-Oct-21 dfss7     dfss5       moved from AV's mathbox to main set.mm
26-Oct-21 n0rex     [same]      moved from AV's mathbox to main set.mm
26-Oct-21 ssn0rex   [same]      moved from AV's mathbox to main set.mm
26-Oct-21 ralnralall [same]     moved from AV's mathbox to main set.mm
26-Oct-21 falseral0 [same]      moved from AV's mathbox to main set.mm
26-Oct-21 elpwdifsn [same]      moved from AV's mathbox to main set.mm
26-Oct-21 prcssprc  [same]      moved from AV's mathbox to main set.mm
26-Oct-21 resresdm  [same]      moved from AV's mathbox to main set.mm
26-Oct-21 f1ssf1    [same]      moved from AV's mathbox to main set.mm
26-Oct-21 riotaeqimp [same]     moved from AV's mathbox to main set.mm
26-Oct-21 opabn1stprc [same]    moved from AV's mathbox to main set.mm
26-Oct-21 resfnfinfin [same]    moved from AV's mathbox to main set.mm
26-Oct-21 residfi   [same]      moved from AV's mathbox to main set.mm
26-Oct-21 nfile     [same]      moved from AV's mathbox to main set.mm
26-Oct-21 hash1n0   [same]      moved from AV's mathbox to main set.mm
24-Oct-21 ssprss    [same]      moved from AV's mathbox to main set.mm
24-Oct-21 ssprsseq  [same]      moved from AV's mathbox to main set.mm
24-Oct-21 issn      [same]      moved from AV's mathbox to main set.mm
24-Oct-21 n0snor2el [same]      moved from AV's mathbox to main set.mm
24-Oct-21 elpr2elpr [same]      moved from AV's mathbox to main set.mm
24-Oct-21 prelpw    [same]      moved from AV's mathbox to main set.mm
24-Oct-21 snopeqop  [same]      moved from AV's mathbox to main set.mm
24-Oct-21 propeqop  [same]      moved from AV's mathbox to main set.mm
24-Oct-21 propssopi [same]      moved from AV's mathbox to main set.mm
24-Oct-21 iunopeqop [same]      moved from AV's mathbox to main set.mm
24-Oct-21 ssrelrn   [same]      moved from AV's mathbox to main set.mm
24-Oct-21 fun2d     [same]      moved from AV's mathbox to main set.mm
24-Oct-21 funiun    [same]      moved from AV's mathbox to main set.mm
24-Oct-21 funopsn   [same]      moved from AV's mathbox to main set.mm
24-Oct-21 funop     [same]      moved from AV's mathbox to main set.mm
24-Oct-21 funsndifnop [same]    moved from AV's mathbox to main set.mm
24-Oct-21 funsneqopsn [same]    moved from AV's mathbox to main set.mm
24-Oct-21 funsneqop [same]      moved from AV's mathbox to main set.mm
24-Oct-21 funsneqopb [same]     moved from AV's mathbox to main set.mm
24-Oct-21 prprrab   [same]      moved from AV's mathbox to main set.mm
24-Oct-21 fundmge2nop0 [same]   moved from AV's mathbox to main set.mm
24-Oct-21 fundmge2nop [same]    moved from AV's mathbox to main set.mm
24-Oct-21 fun2dmnop0 [same]     moved from AV's mathbox to main set.mm
24-Oct-21 fun2dmnop [same]      moved from AV's mathbox to main set.mm
24-Oct-21 df-xnn0   [same]      section "Extended nonnegative integers"
                                moved from AV's mathbox to main set.mm
20-Oct-21 subdir2d  [same]      moved from GS's mathbox to main set.mm
 9-Oct-21 elini     [same]      moved from GS's mathbox to main set.mm
 7-Oct-21 nfdi      nf5di       consistent naming
 6-Oct-21 bf-nfntht nfntht      moved from BJ's mathbox
 6-Oct-21 bf-nfntht2 nfntht2    moved from BJ's mathbox
 6-Oct-21 nf4       nf3         change the definition of not-free
 6-Oct-21 nf3       nf6         change the definition of not-free
 6-Oct-21 bj-nf4    nf4         moved from BJ's mathbox
 6-Oct-21 bj-nf2    nf2         moved from BJ's mathbox
 6-Oct-21 nfrd      nf5rd       change the definition of not-free
 6-Oct-21 nfd       nf5d        change the definition of not-free
 6-Oct-21 nfri      nf5ri       change the definition of not-free
 6-Oct-21 nfi       nf5i        change the definition of not-free
 6-Oct-21 df-nf     nf5         change the definition of not-free
 6-Oct-21 nf2       df-nf       change the definition of not-free
 2-Oct-21 adant423  ---         deleted; use ad4ant14
21-Sep-21 mptss     [same]      moved from GS's mathbox to main set.mm
19-Sep-21 ffdmd     [same]      moved from GS's mathbox to main set.mm
16-Sep-21 csbopg2   csbopg      moved from ML's mathbox to main set.mm
15-Sep-21 ovexi     [same]      moved from GS's mathbox to main set.mm
 8-Sep-21 8p2e10b   8p2e10
 8-Sep-21 7p3e10b   7p3e10
 8-Sep-21 5p5e10b   5p5e10
 8-Sep-21 6p4e10b   6p4e10
 8-Sep-21 9p1e10b   9p1e10
 8-Sep-21 decle     [same]      moved from AV's mathbox to main set.mm
 8-Sep-21 declec    decleh      moved from AV's mathbox to main set.mm
 8-Sep-21 declei    [same]      moved from AV's mathbox to main set.mm
 6-Sep-21 8p2e10b   [same]      moved from SP's mathbox to main set.mm
 6-Sep-21 7p3e10b   [same]      moved from SP's mathbox to main set.mm
 4-Sep-21 5p5e10b   [same]      moved from SP's mathbox to main set.mm
21-Aug-21 divalgmodcl [same]    moved from SO's mathbox to main set.mm
18-Aug-21 3rp       [same]      moved from GS's mathbox to main set.mm
17-Aug-21 rpennen2  [same]      revised - remove unneeded hypothesis
16-Aug-21 bitr3     [same]      moved from AS's mathbox to main set.mm
16-Aug-21 eluz2n0   [same]      moved from AV's mathbox to main set.mm
15-Aug-21 rpennen1  [same]      revised - separate out NN, QQ e. _V as hypoth.
11-Aug-21 crt       crth        convention: "th" suffix for "theorem"
 9-Aug-21 phisum    [same]      moved from SO's mathbox to main set.mm
 9-Aug-21 hashgcdeq [same]      moved from SO's mathbox to main set.mm
 9-Aug-21 sgmss     dvdsssfz1
 8-Aug-21 gcdzeq    [same]      moved from AV's mathbox to main set.mm
 7-Aug-21 conss34   conss34OLD  use complss instead
 7-Aug-21 dvdsleabs2 [same]     moved from SO's mathbox to main set.mm
 7-Aug-21 2pwp1prm2pw2pwp1prm 2pwp1prm
 7-Aug-21 oddprmdvdsn2pw oddprmdvds
 6-Aug-21 zoddb     ---         deleted; use oddm1d2 instead
 6-Aug-21 cusgrasizeindslem1 --- deleted; use usgrafilem1 instead
 2-Aug-21 nnnfi     [same]      moved from GS's mathbox to main set.mm
 2-Aug-21 addeqxfrd subaddeqd   moved from TA's mathbox to main set.mm
 2-Aug-21 mvlraddd  [same]      moved from DAW's mathbox to main set.mm
 2-Aug-21 mvrraddd  [same]      moved from DAW's mathbox to main set.mm
30-Jul-21 muls1d    [same]      moved from SF's mathbox to main set.mm
30-Jul-21 isprm7    [same]      moved from SR's mathbox to main set.mm
30-Jul-21 6p4e10b   [same]      moved from SP's mathbox to main set.mm
30-Jul-21 9p1e10b   [same]      moved from SP's mathbox to main set.mm
30-Jul-21 ltsubnn0  [same]      moved from AV's mathbox to main set.mm
22-Jul-21 dfss1     ---         deleted; use sseqin2
22-Jul-21 dfss5     ---         deleted
22-Jul-21 rgenz     ---         deleted
20-Jul-21 eel0121   mp3an2ani   moved from AS's mathbox to main set.mm
20-Jul-21 adddirp1d [same]      moved from GS's mathbox to main set.mm
20-Jul-21 prtlem1   jao1i       moved from RM's mathbox to main set.mm
17-Jul-21 bezoutr   [same]      moved from SO's mathbox to main set.mm
17-Jul-21 bezoutr1  [same]      moved from SO's mathbox to main set.mm
17-Jul-21 faccld    [same]      moved from GS's mathbox to main set.mm
17-Jul-21 eqnbrtrd  [same]      moved from GS's mathbox to main set.mm
17-Jul-21 flltnz    [same]      moved from GS's mathbox to main set.mm
17-Jul-21 joinlmuladdmuld [same] moved from DAW's mathbox to main set.mm
17-Jul-21 mvrraddi  [same]      moved from DAW's mathbox to main set.mm
17-Jul-21 usgraexmplvtxlem fz0to4untppr
16-Jul-21 modelico  [same]      moved from SO's mathbox to main set.mm
16-Jul-21 2txmxeqx  [same]      moved from AV's mathbox to main set.mm
16-Jul-21 divlt1lt  [same]      moved from AV's mathbox to main set.mm
16-Jul-21 mod2eq1n2dvds [same]  moved from AV's mathbox to main set.mm
16-Jul-21 halfge0   [same]      moved from AV's mathbox to main set.mm
17-Jul-21 abtru     abv
17-Jul-21 abfal     ab0
 2-Jul-21 ofccat    [same]      moved from TA's mathbox to main set.mm
 2-Jul-21 ofs2      [same]      moved from TA's mathbox to main set.mm
 2-Jul-21 ofs1      [same]      moved from TA's mathbox to main set.mm
 2-Jul-21 ifbieq12d2 [same]     moved from TA's mathbox to main set.mm
26-Jun-21 fimact    [same]      moved from TA's mathbox to main set.mm
26-Jun-21 fimacnvinrn [same]    moved from TA's mathbox to main set.mm
26-Jun-21 fimacnvinrn2 [same]   moved from TA's mathbox to main set.mm
26-Jun-21 zob       [same]      moved from AV's mathbox to main set.mm
26-Jun-21 xp1d2m1eqxm1d2 [same] moved from AV's mathbox to main set.mm
 8-Jun-21 0in       [same]      moved from GS's mathbox to main set.mm
 4-Jun-21 opelxpd   [same]      moved from GS's mathbox to main set.mm
 4-Jun-21 eluz2gt1  [same]      moved from AV's mathbox to main set.mm
 2-Jun-21 axc9lem1  ax13lem1    relates rather to ax-13 than axc9
 2-Jun-21 axc9lem2  ax13lem2    relates rather to ax-13 than axc9
26-May-21 fzadd2    [same]      moved from JM's mathbox to main set.mm
11-May-21 an43      [same]      moved from RM's mathbox to main set.mm
11-May-21 an3       [same]      moved from RM's mathbox to main set.mm
10-May-21 ffrn      [same]      moved from GS's mathbox to main set.mm
10-May-21 prtlem90  nelelne     moved from RM's mathbox to main set.mm
 7-May-21 ee02      mpsylsyld   moved from AS's mathbox to main set.mm
 4-May-21 hasheqf1oi [same]     revised - eliminated unnecessary antecedent
 4-May-21 hashf1rn  [same]      revised - eliminated unnecessary antecedent
 3-May-21 elsnc2    elsn2
 3-May-21 elsnc2g   elsn2g
 3-May-21 elsnc     elsn
 3-May-21 elsncg    elsng
 3-May-21 elsn      velsn
 3-May-21 ssnid     vsnid
 1-May-21 eclclwwlkn0 elqsecl   renamed and revised (not depending on walks)
30-Apr-21 exp5l     [same]      moved from JGH's mathbox to main set.mm
25-Apr-21 ssfid     [same]      moved from GS's mathbox to main set.mm
23-Apr-21 fvresd    [same]      moved from GS's mathbox to main set.mm
18-Apr-21 mergeconj bianass     moved from GM's mathbox to main set.mm
18-Apr-21 mpteq1i   [same]      moved from GS's mathbox to main set.mm
18-Apr-21 elabd     [same]      moved from RP's mathbox to main set.mm
11-Apr-21 equviniv  equviniva   suffix a: an different, uncommon version
11-Apr-21 equveli   equvel      consistent naming
11-Apr-21 equvini   equvin      consistent naming
11-Apr-21 equvin    equvinv     consistent naming
11-Apr-21 mptexd    [same]      moved from GS's mathbox to main set.mm
11-Apr-21 fz0hash   fnfz0hash
11-Apr-21 hashfzdm  ffz0hash
11-Apr-21 hashfirdm fnfzo0hash
 8-Apr-21 nnct      [same]      moved from TA's mathbox to main set.mm
 7-Apr-21 fvelimabd [same]      moved from SP's mathbox to main set.mm
 7-Apr-21 ex3       [same]      moved from AS's mathbox to main set.mm
 5-Apr-21 adant423  [same]      moved from GS's mathbox to main set.mm
 5-Apr-21 bnj833    simplbiim   moved from JB's mathbox to main set.mm
 1-Apr-21 notnot1   notnot
 1-Apr-21 notnot2   notnotr
 1-Apr-21 notnot    notnotb
31-Mar-21 bj-animorl animorl    moved from BJ's mathbox to main set.mm
31-Mar-21 bj-animorr animorr    moved from BJ's mathbox to main set.mm
31-Mar-21 bj-animorlr animorlr  moved from BJ's mathbox to main set.mm
31-Mar-21 bj-animorrl animorrl  moved from BJ's mathbox to main set.mm
31-Mar-21 a1i13     [same]      moved from JGH's mathbox to main set.mm
28-Mar-21 hypstkd   mpidan      renamed to match similar theorems
25-Mar-21 difex     difexi      moved from GS's mathbox to main set.mm
25-Mar-21 mpbirand  [same]      moved from GS's mathbox to main set.mm
22-Mar-21 ffund     [same]      moved from GS's mathbox to main set.mm
24-Mar-21 wl-ax12v1 ax12v       moved from WL's mathbox to main set.mm
24-Mar-21 wl-ax12v2 ax12v2      moved from WL's mathbox to main set.mm
24-Mar-21 axc112    axc11r      consistent naming style
24-Mar-21 wl-ax12v3 axc15       moved from WL's mathbox to main set.mm
24-Mar-21 wl-ax12   ax12        moved from WL's mathbox to main set.mm
23-Mar-21 aevlem1   aevlem
22-Mar-21 dummylink a1ii        dummylink kept to prevent broken links
20-Mar-21 eluzmn    [same]      moved from TA's mathbox to main set.mm
20-Mar-21 biimpa21  ---         deleted; duplicate of biimpac
20-Mar-21 lt2addmuld [same]     moved from GS's mathbox to main set.mm
20-Mar-21 possumd   [same]      moved from SF's mathbox to main set.mm
20-Mar-21 comraddd  [same]      moved from DAW's mathbox to main set.mm
20-Mar-21 eel2221   syl2an23an  moved from AS's mathbox to main set.mm
20-Mar-21 ltaddneg  [same]      moved from GS's mathbox to main set.mm
20-Mar-21 lelttrdi  [same]      moved from AV's mathbox to main set.mm
20-Mar-21 ralxfrd2  [same]      moved from AV's mathbox to main set.mm
20-Mar-21 rexxfrd2  [same]      moved from AV's mathbox to main set.mm
19-Mar-21 speqv     spaev       consistent naming
16-Mar-21 con3th    con3ALT
 8-Mar-21 iatbtatnnb notnotd    moved from JU's mathbox to main set.mm
 8-Mar-21 f1oeq3d   [same]      moved from GS's mathbox to main set.mm
 8-Mar-21 fimass    [same]      moved from GS's mathbox to main set.mm
 8-Mar-21 rspcdva   [same]      moved from TA's mathbox to main set.mm
 8-Mar-21 rspcda    [same]      moved from TA's mathbox to main set.mm
 8-Mar-21 xaddid1d  [same]      moved from GS's mathbox to main set.mm
 8-Mar-21 AnelBC    prneli      moved from DAW's mathbox to main set.mm
 8-Mar-21 eel012    mp3an3an    moved from AS's mathbox to main set.mm
 3-Mar-21 iunxprg   [same]      moved from AV's mathbox to main set.mm
 3-Mar-21 sselpwd   [same]      moved from TA's mathbox to main set.mm
 3-Mar-21 dfrel4    [same]      moved from TA's mathbox to main set.mm
 3-Mar-21 feqmptdf  [same]      moved from TA's mathbox to main set.mm
 3-Mar-21 unidmvol  [same]      moved from TA's mathbox to main set.mm
 3-Mar-21 xrge0nre  [same]      moved from TA's mathbox to main set.mm
 3-Mar-21 iunxdif3  [same]      moved from TA's mathbox to main set.mm
26-Feb-21 rprssd    [same]      moved from GS's mathbox to main set.mm
24-Feb-21 rexaddd   [same]      moved from GS's mathbox to main set.mm
24-Feb-21 rabeqd    rabeqdv     moved from GS's mathbox to main set.mm
14-Feb-21 bj-pm2.18i pm2.18i    moved from BJ's mathbox to main set.mm
14-Feb-21 3imp31    [same]      moved from AS's mathbox to main set.mm
14-Feb-21 eel32131  3imp3i2an   moved from AS's mathbox to main set.mm
14-Feb-21 eel011    mp3an2i     moved from AS's mathbox to main set.mm
31-Jan-21 isprmpt2  rbropapd
30-Jan-21 neqne     [same]      moved from GS's mathbox to main set.mm
30-Jan-21 sylbbr    [same]      moved from BJ's mathbox to main set.mm
30-Jan-21 sylbb1    [same]      moved from BJ's mathbox to main set.mm
30-Jan-21 sylbb2    [same]      moved from BJ's mathbox to main set.mm
25-Jan-21 hypstkd   [same]      moved from SP's mathbox to main set.mm
25-Jan-21 eel112    syl2an3an   moved from AS's mathbox to main set.mm
16-Jan-21 prtlem50  anim12d1    moved from RM's mathbox to main set.mm
 6-Jan-21 3imp21    [same]      moved from AS's mathbox to main set.mm
 3-Jan-21 elexd     [same]      moved from GS's mathbox to main set.mm
 3-Jan-21 fz1fzo0m1 [same]      moved from TA's mathbox to main set.mm
28-Dec-20 ceqsexv2d [same]      moved from TA's mathbox to main set.mm
25-Dec-20 icodiamlt [same]      moved from SO's mathbox to main set.mm
25-Dec-20 fict      [same]      moved from TA's mathbox to main set.mm
25-Dec-20 ctex      [same]      moved from TA's mathbox to main set.mm
25-Dec-20 xpct      [same]      moved from TA's mathbox to main set.mm
25-Dec-20 ssct      [same]      moved from TA's mathbox to main set.mm
25-Dec-20 regsumfsum [same]     moved from TA's mathbox to main set.mm
25-Dec-20 elin1d    [same]      moved from TA's mathbox to main set.mm
25-Dec-20 elin2d    [same]      moved from TA's mathbox to main set.mm
18-Dec-20 preqsnd   [same]      moved from TA's mathbox to main set.mm
18-Dec-20 rabeqsn   [same]      moved from AV's mathbox to main set.mm
18-Dec-20 rabsssn   [same]      moved from AV's mathbox to main set.mm
18-Dec-20 eel001    mp3an12i    moved from AS's mathbox to main set.mm
17-Dec-20 eel121    syl2an2r    moved from AS's mathbox to main set.mm
12-Dec-20 ffnd      [same]      moved from GS's mathbox to main set.mm
 8-Nov-20 prcnel    [same]      moved from GS's mathbox to main set.mm
 8-Nov-20 nelsn     [same]      moved from GS's mathbox to main set.mm
28-Oct-20 rmoeq     [same]      moved from TA's mathbox to main set.mm
23-Oct-20 usgraexvlem usgraexmplvtxlem
19-Oct-20 usgrnloop usgrnwlkloop
18-Oct-20 bj-equsalvv equsalvw  moved from BJ's mathbox to main set.mm
11-Oct-20 ishashinf [same]      moved from TA's mathbox to main set.mm
11-Oct-20 xrge0neqmnf[same]     moved from TA's mathbox to main set.mm
11-Oct-20 elsnxp    [same]      moved from TA's mathbox to main set.mm
11-Oct-20 nn0rp0    [same]      moved from AV's mathbox to main set.mm
13-Sep-20 infmxrss  infxrss     moved from GS's mathbox to main set.mm
13-Sep-20 reltre    [same]      moved from AV's mathbox to main set.mm
13-Sep-20 rpltrp    [same]      moved from AV's mathbox to main set.mm
13-Sep-20 reltxrnmnf [same]     moved from AV's mathbox to main set.mm
13-Sep-20 infmremnf [same]      moved from AV's mathbox to main set.mm
13-Sep-20 infmrp1   [same]      moved from AV's mathbox to main set.mm
11-Sep-20 xrinfm0   xrinf0
11-Sep-20 infmxrre  infxrre
11-Sep-20 infmxrgelb infxrgelb
11-Sep-20 infmxrlb  infxrlb
11-Sep-20 infmxrcl  infxrcl
11-Sep-20 infmssuzcl infssuzcl
11-Sep-20 infmssuzle infssuzle
11-Sep-20 nn0infm   nn0inf
11-Sep-20 nninfm    nninf
11-Sep-20 uzinfmi   uzinfi
11-Sep-20 infmrlb   infrelb
11-Sep-20 infmrgelb infregelb
11-Sep-20 infmsup   infrenegsup
11-Sep-20 infmrcl   infrecl
11-Sep-20 dfinfmr   dfinfre
11-Sep-20 lbinfmle  lbinfle
11-Sep-20 lbinfmcl  lbinfcl
11-Sep-20 lbinfm    lbinf
11-Sep-20 df-inf    [same]      moved together with related theorems
                                from AV's mathbox to main set.mm
 8-Sep-20 ax16g-o   axc16g-o
 8-Sep-20 ax16gb    axc16gb
 8-Sep-20 ax16nf    axc16nf
 8-Sep-20 ax16nfALT axc16nfALT
 5-Sep-20 mnfltd    [same]      moved from GS's mathbox to main set.mm
 5-Sep-20 xrletri4  xrletrid    moved from GS's mathbox to main set.mm
 5-Sep-20 xrlenltd  [same]      moved from GS's mathbox to main set.mm
27-Aug-20 df-lcm    [same]      moved together with related theorems
                                from SR's mathbox to main set.mm
27-Aug-20 fzssz     [same]      moved from GS's mathbox to main set.mm
27-Aug-20 impel     [same]      moved from GM's mathbox to main set.mm
27-Aug-20 exp5j     [same]      moved from JGH's mathbox to main set.mm
27-Aug-20 eel221    syl2an2     moved from AS's mathbox to main set.mm
22-Aug-20 bj-disjdif disjdif2   moved from BJ's mathbox to main set.mm
19-Aug-20 fprodsplitsn [same]   moved from GS's mathbox to main set.mm
19-Aug-20 prodsnf   [same]      moved from GS's mathbox to main set.mm
19-Aug-20 elunnel1  [same]      moved from GS's mathbox to main set.mm
19-Aug-20 fzssnn    [same]      moved from TA's mathbox to main set.mm
17-Aug-20 supaddc   [same]      moved from BL's mathbox to main set.mm
17-Aug-20 supadd    [same]      moved from BL's mathbox to main set.mm
17-Aug-20 inisegn0  [same]      moved from SO's mathbox to main set.mm
17-Aug-20 ad4ant13  [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad4ant14  [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad4ant123 [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad4ant124 [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad4ant134 [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad4ant23  [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad4ant24  [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad4ant234 [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant12  [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant13  [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant14  [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant15  [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant23  [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant24  [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant25  [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant245 [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant234 [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant235 [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant123 [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant124 [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant125 [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant134 [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant135 [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant145 [same]      moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant1345 [same]     moved from AS's mathbox to main set.mm
17-Aug-20 ad5ant2345 [same]     moved from AS's mathbox to main set.mm
16-Aug-20 fprodeq0g [same]      moved from GS's mathbox to main set.mm
16-Aug-20 fprodle   [same]      moved from GS's mathbox to main set.mm
16-Aug-20 fproddivf [same]      moved from GS's mathbox to main set.mm
16-Aug-20 fprodreclf [same]     moved from GS's mathbox to main set.mm
16-Aug-20 fprodclf  [same]      moved from GS's mathbox to main set.mm
16-Aug-20 fprodsplit1f [same]   moved from GS's mathbox to main set.mm
16-Aug-20 fprodsplitf [same]    moved from GS's mathbox to main set.mm
16-Aug-20 fprodsplit [same]     moved from GS's mathbox to main set.mm
16-Aug-20 fprodcllemf [same]    moved from GS's mathbox to main set.mm
16-Aug-20 fprodge1  [same]      moved from GS's mathbox to main set.mm
16-Aug-20 fprodge0  [same]      moved from GS's mathbox to main set.mm
16-Aug-20 fprodn0f  [same]      moved from GS's mathbox to main set.mm
16-Aug-20 prodsns   [same]      moved from GS's mathbox to main set.mm
16-Aug-20 icogelb   [same]      moved from GS's mathbox to main set.mm
16-Aug-20 leneltd   [same]      moved from GS's mathbox to main set.mm
16-Aug-20 ltpnfd    [same]      moved from GS's mathbox to main set.mm
16-Aug-20 divge1    [same]      moved from GS's mathbox to main set.mm
16-Aug-20 elicod    [same]      moved from GS's mathbox to main set.mm
16-Aug-20 neneq     [same]      moved from GS's mathbox to main set.mm
16-Aug-20 f1dmvrnfibi [same]    moved from AV's mathbox to main set.mm
16-Aug-20 f1vrnfibi [same]      moved from AV's mathbox to main set.mm
16-Aug-20 fundmfibi [same]      moved from AV's mathbox to main set.mm
16-Aug-20 prmssnn   [same]      moved from AV's mathbox to main set.mm
16-Aug-20 prmex     [same]      moved from AV's mathbox to main set.mm
16-Aug-20 gcdnncl   [same]      moved from TA's mathbox to main set.mm
 9-Aug-20 a1ii      2a1i
 9-Aug-20 a1dd2     2a1dd
 7-Aug-20 bi3       impbi
 7-Aug-20 bi2       biimpr
 7-Aug-20 bi1       biimp
 2-Aug-20 ---       ---         definition "TarskiG2D" moved to TA's mathbox
 2-Aug-20 elicore   [same]      moved from GS's mathbox to main set.mm
 2-Aug-20 simplrd   [same]      moved from GS's mathbox to main set.mm
 2-Aug-20 simprld   [same]      moved from GS's mathbox to main set.mm
26-Jul-20 sumpr     [same]      moved from TA's mathbox to main set.mm
22-Jul-20 ifpor     [same]      moved from BJ's mathbox to main set.mm
19-Jul-20 xrnltled  [same]      moved from GS's mathbox to main set.mm
18-Jul-20 lensymd   [same]      moved from GS's mathbox to main set.mm
18-Jul-20 sublt0d   [same]      moved from GS's mathbox to main set.mm
18-Jul-20 offval2f  [same]      moved from TA's mathbox to main set.mm
18-Jul-20 nltled    [same]      moved from GS's mathbox to main set.mm
18-Jul-20 eqled     [same]      moved from GS's mathbox to main set.mm
18-Jul-20 elinel2   [same]      moved from GS's mathbox to main set.mm
18-Jul-20 elinel1   [same]      moved from GS's mathbox to main set.mm
18-Jul-20 dvcnsqrt  [same]      moved from BL's mathbox to main set.mm
18-Jul-20 dvcncxp1  [same]      moved from BL's mathbox to main set.mm
18-Jul-20 divcnvshft [same]     moved from SF's mathbox to main set.mm
18-Jul-20 syldanl   [same]      moved from JM's mathbox to main set.mm
18-Jul-20 czeta     [same]      moved from MC's mathbox to main set.mm
18-Jul-20 df-zeta   [same]      moved from MC's mathbox to main set.mm
18-Jul-20 clgam     [same]      moved from MC's mathbox to main set.mm
18-Jul-20 cgam      [same]      moved from MC's mathbox to main set.mm
18-Jul-20 cigam     [same]      moved from MC's mathbox to main set.mm
18-Jul-20 df-lgam   [same]      moved from MC's mathbox to main set.mm
18-Jul-20 df-gam    [same]      moved from MC's mathbox to main set.mm
18-Jul-20 df-igam   [same]      moved from MC's mathbox to main set.mm
18-Jul-20 zetacvg   [same]      moved from MC's mathbox to main set.mm
18-Jul-20 eldmgm    [same]      moved from MC's mathbox to main set.mm
18-Jul-20 dmgmaddn0 [same]      moved from MC's mathbox to main set.mm
18-Jul-20 dmlogdmgm [same]      moved from MC's mathbox to main set.mm
18-Jul-20 rpdmgm    [same]      moved from MC's mathbox to main set.mm
18-Jul-20 dmgmn0    [same]      moved from MC's mathbox to main set.mm
18-Jul-20 dmgmaddnn0 [same]     moved from MC's mathbox to main set.mm
18-Jul-20 dmgmdivn0 [same]      moved from MC's mathbox to main set.mm
18-Jul-20 lgamgulmlem1 [same]   moved from MC's mathbox to main set.mm
18-Jul-20 lgamgulmlem2 [same]   moved from MC's mathbox to main set.mm
18-Jul-20 lgamgulmlem3 [same]   moved from MC's mathbox to main set.mm
18-Jul-20 lgamgulmlem4 [same]   moved from MC's mathbox to main set.mm
18-Jul-20 lgamgulmlem5 [same]   moved from MC's mathbox to main set.mm
18-Jul-20 lgamgulmlem6 [same]   moved from MC's mathbox to main set.mm
18-Jul-20 lgamgulm  [same]      moved from MC's mathbox to main set.mm
18-Jul-20 lgamgulm2 [same]      moved from MC's mathbox to main set.mm
18-Jul-20 lgambdd   [same]      moved from MC's mathbox to main set.mm
18-Jul-20 lgamucov  [same]      moved from MC's mathbox to main set.mm
18-Jul-20 lgamucov2 [same]      moved from MC's mathbox to main set.mm
18-Jul-20 lgamcvglem [same]     moved from MC's mathbox to main set.mm
18-Jul-20 lgamcl    [same]      moved from MC's mathbox to main set.mm
18-Jul-20 lgamf     [same]      moved from MC's mathbox to main set.mm
18-Jul-20 gamf      [same]      moved from MC's mathbox to main set.mm
18-Jul-20 gamcl     [same]      moved from MC's mathbox to main set.mm
18-Jul-20 eflgam    [same]      moved from MC's mathbox to main set.mm
18-Jul-20 gamne0    [same]      moved from MC's mathbox to main set.mm
18-Jul-20 igamval   [same]      moved from MC's mathbox to main set.mm
18-Jul-20 igamz     [same]      moved from MC's mathbox to main set.mm
18-Jul-20 igamgam   [same]      moved from MC's mathbox to main set.mm
18-Jul-20 igamlgam  [same]      moved from MC's mathbox to main set.mm
18-Jul-20 igamf     [same]      moved from MC's mathbox to main set.mm
18-Jul-20 igamcl    [same]      moved from MC's mathbox to main set.mm
18-Jul-20 gamigam   [same]      moved from MC's mathbox to main set.mm
18-Jul-20 lgamcvg   [same]      moved from MC's mathbox to main set.mm
18-Jul-20 lgamcvg2  [same]      moved from MC's mathbox to main set.mm
18-Jul-20 gamcvg    [same]      moved from MC's mathbox to main set.mm
18-Jul-20 lgamp1    [same]      moved from MC's mathbox to main set.mm
18-Jul-20 gamp1     [same]      moved from MC's mathbox to main set.mm
18-Jul-20 gamcvg2lem [same]     moved from MC's mathbox to main set.mm
18-Jul-20 gamcvg2   [same]      moved from MC's mathbox to main set.mm
18-Jul-20 regamcl   [same]      moved from MC's mathbox to main set.mm
18-Jul-20 relgamcl  [same]      moved from MC's mathbox to main set.mm
18-Jul-20 rpgamcl   [same]      moved from MC's mathbox to main set.mm
18-Jul-20 lgam1     [same]      moved from MC's mathbox to main set.mm
18-Jul-20 gam1      [same]      moved from MC's mathbox to main set.mm
18-Jul-20 facgam    [same]      moved from MC's mathbox to main set.mm
18-Jul-20 gamfac    [same]      moved from MC's mathbox to main set.mm
18-Jul-20 m1expevenALT m1expeven moved from SF's mathbox to main set.mm
18-Jul-20 fallfacfac [same]     moved from SF's mathbox to main set.mm
18-Jul-20 bcfallfac [same]      moved from SF's mathbox to main set.mm
18-Jul-20 fallfacval4 [same]    moved from SF's mathbox to main set.mm
18-Jul-20 binomrisefac [same]   moved from SF's mathbox to main set.mm
18-Jul-20 binomfallfac [same]   moved from SF's mathbox to main set.mm
18-Jul-20 binomfallfaclem2 [same] moved from SF's mathbox to main set.mm
18-Jul-20 binomfallfaclem1 [same] moved from SF's mathbox to main set.mm
18-Jul-20 0risefac  [same]      moved from SF's mathbox to main set.mm
18-Jul-20 0fallfac  [same]      moved from SF's mathbox to main set.mm
18-Jul-20 fallfacfwd [same]     moved from SF's mathbox to main set.mm
18-Jul-20 risefacfac [same]     moved from SF's mathbox to main set.mm
18-Jul-20 fallfac1 [same]       moved from SF's mathbox to main set.mm
18-Jul-20 risefac1 [same]       moved from SF's mathbox to main set.mm
18-Jul-20 fallfacp1d [same]     moved from SF's mathbox to main set.mm
18-Jul-20 risefacp1d [same]     moved from SF's mathbox to main set.mm
18-Jul-20 fallfacp1 [same]      moved from SF's mathbox to main set.mm
18-Jul-20 risefacp1 [same]      moved from SF's mathbox to main set.mm
18-Jul-20 fallfac0  [same]      moved from SF's mathbox to main set.mm
18-Jul-20 risefac0  [same]      moved from SF's mathbox to main set.mm
18-Jul-20 risefall0lem [same]   moved from SF's mathbox to main set.mm
18-Jul-20 fallrisefac [same]    moved from SF's mathbox to main set.mm
18-Jul-20 risefallfac [same]    moved from SF's mathbox to main set.mm
18-Jul-20 rprisefaccl [same]    moved from SF's mathbox to main set.mm
18-Jul-20 nn0risefaccl [same]   moved from SF's mathbox to main set.mm
18-Jul-20 zfallfaccl [same]     moved from SF's mathbox to main set.mm
18-Jul-20 zrisefaccl [same]     moved from SF's mathbox to main set.mm
18-Jul-20 nnrisefaccl [same]    moved from SF's mathbox to main set.mm
18-Jul-20 refallfaccl [same]    moved from SF's mathbox to main set.mm
18-Jul-20 rerisefaccl [same]    moved from SF's mathbox to main set.mm
18-Jul-20 fallfaccl [same]      moved from SF's mathbox to main set.mm
18-Jul-20 risefaccl [same]      moved from SF's mathbox to main set.mm
18-Jul-20 fallfaccllem [same]   moved from SF's mathbox to main set.mm
18-Jul-20 risefaccllem [same]   moved from SF's mathbox to main set.mm
18-Jul-20 fallfacval3 [same]    moved from SF's mathbox to main set.mm
18-Jul-20 fallfacval2 [same]    moved from SF's mathbox to main set.mm
18-Jul-20 risefacval2 [same]    moved from SF's mathbox to main set.mm
18-Jul-20 fallfacval [same]     moved from SF's mathbox to main set.mm
18-Jul-20 risefacval [same]     moved from SF's mathbox to main set.mm
18-Jul-20 df-fallfac [same]     moved from SF's mathbox to main set.mm
18-Jul-20 df-risefac [same]     moved from SF's mathbox to main set.mm
18-Jul-20 crisefac  [same]      moved from SF's mathbox to main set.mm
18-Jul-20 cfallfac  [same]      moved from SF's mathbox to main set.mm
18-Jul-20 m1expeven ---         deleted; use more general m1expevenALT
18-Jul-20 anifp     [same]      moved from BJ's mathbox to main set.mm
18-Jul-20 dfid6     [same]      moved from RP's mathbox to main set.mm
18-Jul-20 dfid5     [same]      moved from RP's mathbox to main set.mm
18-Jul-20 dfid4     [same]      moved from SF's mathbox to main set.mm
18-Jul-20 abeq2f    [same]      moved from TA's mathbox to main set.mm
18-Jul-20 fvmpt2f   [same]      moved from TA's mathbox to main set.mm
18-Jul-20 mptfnf    [same]      moved from TA's mathbox to main set.mm
18-Jul-20 fnmptf    [same]      moved from TA's mathbox to main set.mm
18-Jul-20 fmpt3d    [same]      moved from TA's mathbox to main set.mm
18-Jul-20 cbvmptf   [same]      moved from TA's mathbox to main set.mm
18-Jul-20 negelrp   [same]      moved from TA's mathbox to main set.mm
18-Jul-20 mul2lt0rlt0 [same]    moved from TA's mathbox to main set.mm
18-Jul-20 mul2lt0rgt0 [same]    moved from TA's mathbox to main set.mm
18-Jul-20 mul2lt0llt0 [same]    moved from TA's mathbox to main set.mm
18-Jul-20 mul2lt0lgt0 [same]    moved from TA's mathbox to main set.mm
18-Jul-20 mul2lt0bi [same]      moved from TA's mathbox to main set.mm
18-Jul-20 difneqnul difn0       moved from TA's mathbox to main set.mm
18-Jul-20 3impexp   [same]      moved from AS's mathbox to main set.mm
18-Jul-20 a1i34     a1dd2       moved from JGH's mathbox to main set.mm
18-Jul-20 a1i4      a1ddd       moved from JGH's mathbox to main set.mm
12-Jul-20 ralnex2   [same]      moved from GS's mathbox to main set.mm
10-Jul-20 [many]    [same]      ax-7d through ax-11d moved from main set.mm to
                                MC's mathbox
10-Jul-20 ax-meredith [same]    Moved from main set.mm to NM's mathbox
10-Jul-20 [many]    [same]      ax-c5 through axc11-o moved from main set.mm to
                                NM's mathbox
 7-Jul-20 modidmul0 mulmod0
27-Jun-20 swrdsymbeq ---        deleted; use swrdeq instead
25-Jun-20 r19.29_2a r19.29vva
25-Jun-20 tghilbert1_2 tghilberti2
25-Jun-20 tghilbert1_1 tghilberti1
21-Jun-20 rtrclreclem.refl rtrclreclem1
21-Jun-20 rtrclreclem.subset rtrclreclem2
21-Jun-20 rtrclreclem.trans rtrclreclem3
21-Jun-20 rtrclreclem.min rtrclreclem4
11-Jun-20 rnlogbcl  relogbcl
11-Jun-20 rnlogbval relogbval
11-Jun-20 relogbcl  relogbzcl
11-Jun-20 relogbcxp [same]      moved from AV's mathbox to main set.mm
11-Jun-20 cxplogb   [same]      moved from AV's mathbox to main set.mm
 9-Jun-20 logbleb   [same]      moved from AV's mathbox to main set.mm
 9-Jun-20 relogbmulexp [same]   moved from AV's mathbox to main set.mm
 9-Jun-20 relogbmul [same]      moved from AV's mathbox to main set.mm
 9-Jun-20 relogbdiv [same]      moved from AV's mathbox to main set.mm
 9-Jun-20 rpcndif0  [same]      moved from AV's mathbox to main set.mm
 9-Jun-20 df-logb   [same]      section "Logarithm laws generalized to an
                                arbitrary base" moved from TA's mathbox to main
                                set.mm
 9-Jun-20 rnlogblem zgt1rpn0n1  moved from TA's mathbox to main set.mm
 7-Jun-20 znnn0nn   [same]      moved from GS's mathbox to main set.mm
 7-Jun-20 bj-lsub   addlsub     moved from BJ's mathbox to main set.mm
 7-Jun-20 bj-rsub   addrsub     moved from BJ's mathbox to main set.mm
 7-Jun-20 bj-msub   subexsub    moved from BJ's mathbox to main set.mm
 7-Jun-20 bj-flbi3  ico01fl0    moved from BJ's mathbox to main set.mm
 5-Jun-20 coss12d   [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trrelssd  [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 xpcogend  [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 xpcoidgend [same]     moved from RP's mathbox to main set.mm
 5-Jun-20 cotr2g    [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 cotr2     [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 cotr3     [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 coemptyd  [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 xptrrel   [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 0trrel    [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 cleq1lem  [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 cleq1     [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 clsslem   [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 ctcl      [same]      section "Transitive closure" moved from Guides
                                and Miscellanea to main set.mm
 5-Jun-20 crtcl     [same]      section "Transitive closure" moved from Guides
                                and Miscellanea to main set.mm
 5-Jun-20 df-trcl   [same]      section "Transitive closure" moved from Guides
                                and Miscellanea to main set.mm
 5-Jun-20 df-rtrcl  [same]      section "Transitive closure" moved from Guides
                                and Miscellanea to main set.mm
 5-Jun-20 trcleq1   [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclsslem [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trcleq2lem [same]     moved from RP's mathbox to main set.mm
 5-Jun-20 cvbtrcl   [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trcleq12lem [same]    moved from RP's mathbox to main set.mm
 5-Jun-20 trclexlem [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclublem [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclubi   [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclubgi  [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclub    [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclubg   [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclfv    [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 brintclab [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 brtrclfv  [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 brcnvtrclfv [same]    moved from RP's mathbox to main set.mm
 5-Jun-20 brtrclfvcnv [same]    moved from RP's mathbox to main set.mm
 5-Jun-20 brcnvtrclfvcnv [same] moved from RP's mathbox to main set.mm
 5-Jun-20 trclfvss  [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclfvub  [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclfvlb  [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclfvcotr [same]     moved from RP's mathbox to main set.mm
 5-Jun-20 trclfvlb2 [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclfvlb3 [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 cotrtrclfv [same]     moved from RP's mathbox to main set.mm
 5-Jun-20 trclidm   [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclun    [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclfvg   [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 trclfvcotrg [same]    moved from RP's mathbox to main set.mm
 5-Jun-20 reltrclfv [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 dmtrclfv  [same]      moved from RP's mathbox to main set.mm
 5-Jun-20 crelexp   [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 df-relexp [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexp0g  [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexp0   [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexp0d  [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpsucnnr [same]   moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexp1g  [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpsucr [same]     moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpsucrd [same]    moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexp1d  [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpsucnnl [same]   moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpsucl [same]     moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpsucld [same]    moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpcnv [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpcnvd [same]     moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexp0rel [same]     moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexprelg [same]     moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexprel [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpreld [same]     moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpnndm [same]     moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpdmg [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpdm  [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpdmd [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpnnrn [same]     moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexprng [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexprn  [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexprnd [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpfld [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpfldd [same]     moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpaddnn [same]    moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpuzrel [same]    moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpaddg [same]     moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpaddd [same]     moved from Drahflow's mathbox to main set.mm
 5-Jun-20 crtrcl    [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 df-rtrclrec [same]    moved from Drahflow's mathbox to main set.mm
 5-Jun-20 dfrtrclrec2 [same]    moved from Drahflow's mathbox to main set.mm
 5-Jun-20 rtrclreclem.refl [same] moved from Drahflow's mathbox to main set.mm
 5-Jun-20 rtrclreclem.subset [same] moved from Drahflow's mathbox to main
                                set.mm
 5-Jun-20 rtrclreclem.trans [same] moved from Drahflow's mathbox to main set.mm
 5-Jun-20 rtrclreclem.min [same] moved from Drahflow's mathbox to main set.mm
 5-Jun-20 dfrtrcl2  [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpindlem [same]   moved from Drahflow's mathbox to main set.mm
 5-Jun-20 relexpind [same]      moved from Drahflow's mathbox to main set.mm
 5-Jun-20 rtrclind  [same]      moved from Drahflow's mathbox to main set.mm
31-May-20 rp-isfinite4 isfinite4 moved from RP's mathbox to main set.mm
24-May-20 fz1ssnn   ---         moved from SO's mathbox to main set.mm
21-May-20 ---       ---         section "The category of extensible structures"
                                moved from AV's mathbox to main set.mm
21-May-20 ---       ---         section "Initial, terminal and zero objects of
                                a category" moved from AV's mathbox to main
                                set.mm
21-May-20 ---       ---         section "Isomorphic objects" moved from AV's
                                mathbox to main set.mm
21-May-20 invisoinvl [same]     moved from AV's mathbox to main set.mm
21-May-20 invisoinvr [same]     moved from AV's mathbox to main set.mm
21-May-20 invcoisoid [same]     moved from AV's mathbox to main set.mm
21-May-20 isocoinvid [same]     moved from AV's mathbox to main set.mm
21-May-20 sectid    [same]      moved from AV's mathbox to main set.mm
21-May-20 invid     [same]      moved from AV's mathbox to main set.mm
21-May-20 idiso     [same]      moved from AV's mathbox to main set.mm
21-May-20 idinv     [same]      moved from AV's mathbox to main set.mm
21-May-20 isofn     [same]      moved from AV's mathbox to main set.mm
21-May-20 isofval   [same]      moved from AV's mathbox to main set.mm
21-May-20 dfiso3    [same]      moved from AV's mathbox to main set.mm
21-May-20 dfiso2    [same]      moved from AV's mathbox to main set.mm
21-May-20 inveq     [same]      moved from AV's mathbox to main set.mm
21-May-20 fnhomeqhomf [same]    moved from AV's mathbox to main set.mm
21-May-20 slotsbhcdif [same]    moved from AV's mathbox to main set.mm
21-May-20 1strstr   [same]      moved from AV's mathbox to main set.mm
21-May-20 1strbas   [same]      moved from AV's mathbox to main set.mm
21-May-20 1strwunbndx [same]    moved from AV's mathbox to main set.mm
21-May-20 1strwun   [same]      moved from AV's mathbox to main set.mm
21-May-20 ressval3d [same]      moved from AV's mathbox to main set.mm
21-May-20 setsidvald [same]     moved from AV's mathbox to main set.mm
21-May-20 strndxid  [same]      moved from AV's mathbox to main set.mm
21-May-20 rcaninv   [same]      moved from AV's mathbox to main set.mm
21-May-20 tpres     [same]      moved from AV's mathbox to main set.mm
21-May-20 mptrcl    [same]      moved from AV's mathbox to main set.mm
21-May-20 euelss    [same]      moved from AV's mathbox to main set.mm
 8-May-20 wrdeqswrdlsw ---      deleted; duplicate of 2swrd1eqwrdeq
 2-May-20 swrdvalodm swrdnd2
 2-May-20 swrdvalodm2 ---       deleted; duplicate of swrdnd
 2-May-20 mptrel    [same]      moved from SF's mathbox to main set.mm
 2-May-20 iswrdbi   iswrdb
26-Apr-20 ---       ---         math token "(++)" changed to "/_\"
12-Apr-20 r19.27av  r19.27v
12-Apr-20 r19.28av  r19.28v
12-Apr-20 r19.36av  r19.36v
12-Apr-20 r19.37av  r19.37v
12-Apr-20 r19.44av  r19.44v
12-Apr-20 r19.45av  r19.45v
12-Apr-20 19.36aiv  19.36iv
12-Apr-20 19.37aiv  19.37iv
 5-Apr-20 nn0indd   [same]      moved from TA's mathbox to main set.mm
 5-Apr-20 dgrnznn   [same]      moved from SO's mathbox to main set.mm
31-Mar-20 pnpncand  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fzp1nel   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodf     [same]      moved from SF's mathbox to main set.mm
31-Mar-20 clim2prod [same]      moved from SF's mathbox to main set.mm
31-Mar-20 clim2div  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodfmul  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodf1    [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodf1f   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodfclim1 [same]     moved from SF's mathbox to main set.mm
31-Mar-20 prodfn0   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodfrec  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodfdiv  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 ntrivcvg  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 ntrivcvgn0 [same]     moved from SF's mathbox to main set.mm
31-Mar-20 ntrivcvgfvn0 [same]   moved from SF's mathbox to main set.mm
31-Mar-20 ntrivcvgtail [same]   moved from SF's mathbox to main set.mm
31-Mar-20 ntrivcvgmullem [same] moved from SF's mathbox to main set.mm
31-Mar-20 ntrivcvgmul [same]    moved from SF's mathbox to main set.mm
31-Mar-20 df-prod   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodex    [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodeq1f  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodeq1   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 nfcprod1  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 nfcprod   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodeq2w  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodeq2ii [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodeq2   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 cbvprod   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 cbvprodv  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 cbvprodi  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodeq1i  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodeq2i  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodeq12i [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodeq1d  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodeq2d  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodeq2dv [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodeq2sdv [same]     moved from SF's mathbox to main set.mm
31-Mar-20 2cprodeq2dv [same]    moved from SF's mathbox to main set.mm
31-Mar-20 prodeq12dv [same]     moved from SF's mathbox to main set.mm
31-Mar-20 prodeq12rdv [same]    moved from SF's mathbox to main set.mm
31-Mar-20 prod2id   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodrblem [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodcvg  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodrblem2 [same]     moved from SF's mathbox to main set.mm
31-Mar-20 prodrb    [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodmolem3 [same]     moved from SF's mathbox to main set.mm
31-Mar-20 prodmolem2a [same]    moved from SF's mathbox to main set.mm
31-Mar-20 prodmolem2 [same]     moved from SF's mathbox to main set.mm
31-Mar-20 prodmo    [same]      moved from SF's mathbox to main set.mm
31-Mar-20 zprod     [same]      moved from SF's mathbox to main set.mm
31-Mar-20 iprod     [same]      moved from SF's mathbox to main set.mm
31-Mar-20 zprodn0   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 iprodn0   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprod     [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodntriv [same]     moved from SF's mathbox to main set.mm
31-Mar-20 prod0     [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prod1     [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodfc    [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodf1o  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodss    [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodss   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodser  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodcl2lem [same]    moved from SF's mathbox to main set.mm
31-Mar-20 fprodcllem [same]     moved from SF's mathbox to main set.mm
31-Mar-20 fprodcl   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodrecl [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodzcl  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodnncl [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodrpcl [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodnn0cl [same]     moved from SF's mathbox to main set.mm
31-Mar-20 fprodmul  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fproddiv  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodsn    [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprod1    [same]      moved from SF's mathbox to main set.mm
31-Mar-20 climprod1 [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodsplit [same]     moved from SF's mathbox to main set.mm
31-Mar-20 fprodm1   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprod1p   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodp1   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodm1s  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodp1s  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 prodsns   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodfac  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodabs  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodefsum [same]     moved from SF's mathbox to main set.mm
31-Mar-20 fprodeq0  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodshft [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodrev  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodconst [same]     moved from SF's mathbox to main set.mm
31-Mar-20 fprodn0   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprod2dlem [same]     moved from SF's mathbox to main set.mm
31-Mar-20 fprod2d   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodxp   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodcnv  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodcom2 [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprodcom  [same]      moved from SF's mathbox to main set.mm
31-Mar-20 fprod0diag [same]     moved from SF's mathbox to main set.mm
31-Mar-20 iprodclim [same]      moved from SF's mathbox to main set.mm
31-Mar-20 iprodclim2 [same]     moved from SF's mathbox to main set.mm
31-Mar-20 iprodclim3 [same]     moved from SF's mathbox to main set.mm
31-Mar-20 iprodcl   [same]      moved from SF's mathbox to main set.mm
31-Mar-20 iprodrecl [same]      moved from SF's mathbox to main set.mm
31-Mar-20 iprodmul  [same]      moved from SF's mathbox to main set.mm
14-Mar-20 3ax4VD    al2imVD
14-Mar-20 3ax4      al2im       moved from AS's mathbox to main set.mm
12-Mar-20 cdivides  cdvds
 7-Mar-20 thema4b   stoic4b
 7-Mar-20 thema4a   stoic4a
 7-Mar-20 thema3    stoic3
 7-Mar-20 thema2b   stoic2b
 7-Mar-20 thema2a   stoic2a
 7-Mar-20 thema1b   stoic1b
 7-Mar-20 thema1a   stoic1a
 4-Mar-20 ssrexf    [same]      moved from GS's mathbox to main set.mm
28-Feb-20 ffzohash  ffzo0hash
28-Feb-20 drngrng   drngring
28-Feb-20 rngidval  ringidval
28-Feb-20 gsumvallem1 mgmidsssn0
28-Feb-20 proplem3  oveqdr
28-Feb-20 proplem2  ovrspc2v
28-Feb-20 proplem   oveqrspc2v
28-Feb-20 isnmnd    [same]      moved from AV's mathbox to main set.mm
28-Feb-20 idmhm     [same]      moved from AV's mathbox to main set.mm
28-Feb-20 idrhm     [same]      moved from AV's mathbox to main set.mm
28-Feb-20 resiexd   [same]      moved from AV's mathbox to main set.mm
25-Feb-20 sbceq1ddi2 ---        deleted; use sbceq1ddi instead
25-Feb-20 vdgfrgra0 ---         deleted; use vdfrgra0 instead
25-Feb-20 symgfixfvh ---        deleted; use fvtresfn instead
25-Feb-20 fseq0hash ---         deleted; use ffzohash instead
25-Feb-20 gsumsndf  ---         deleted; use gsumsnfd instead
25-Feb-20 gsumsn2   ---         deleted; use gsumsnd instead
17-Feb-20 ringrng0  ringrng
13-Feb-20 mgmnsgrpex [same]     moved from AV's mathbox to main set.mm
13-Feb-20 sgrpnmndex [same]     moved from AV's mathbox to main set.mm
13-Feb-20 sgrpssmgm [same]      moved from AV's mathbox to main set.mm
13-Feb-20 mndsssgrp [same]      moved from AV's mathbox to main set.mm
13-Feb-20 mgm2nsgrplem1 [same]  moved from AV's mathbox to main set.mm
13-Feb-20 mgm2nsgrplem2 [same]  moved from AV's mathbox to main set.mm
13-Feb-20 mgm2nsgrplem3 [same]  moved from AV's mathbox to main set.mm
13-Feb-20 mgm2nsgrplem4 [same]  moved from AV's mathbox to main set.mm
13-Feb-20 mgm2nsgrp [same]      moved from AV's mathbox to main set.mm
13-Feb-20 sgrp2nmndlem1 [same]  moved from AV's mathbox to main set.mm
13-Feb-20 sgrp2nmndlem2 [same]  moved from AV's mathbox to main set.mm
13-Feb-20 sgrp2nmndlem3 [same]  moved from AV's mathbox to main set.mm
13-Feb-20 sgrp2rid2 [same]      moved from AV's mathbox to main set.mm
13-Feb-20 sgrp2rid2ex [same]    moved from AV's mathbox to main set.mm
13-Feb-20 sgrp2nmndlem4 [same]  moved from AV's mathbox to main set.mm
13-Feb-20 sgrp2nmndlem5 [same]  moved from AV's mathbox to main set.mm
13-Feb-20 sgrp2nmnd [same]      moved from AV's mathbox to main set.mm
13-Feb-20 opifismgm [same]      moved from AV's mathbox to main set.mm
13-Feb-20 hashprdifel [same]    moved from AV's mathbox to main set.mm
13-Feb-20 pr0hash2ex [same]     moved from AV's mathbox to main set.mm
13-Feb-20 prhash2ex [same]      moved from AV's mathbox to main set.mm
13-Feb-20 ovmpt2elrn [same]     moved from AV's mathbox to main set.mm
13-Feb-20 ssexnelpss [same]     moved from AV's mathbox to main set.mm
 9-Feb-20 erngrng-rN erngring-rN
 9-Feb-20 erngrng   eringring
 9-Feb-20 mendrng   mendring
 9-Feb-20 lnrrng    lnrring
 9-Feb-20 orngrng   orngring
 9-Feb-20 rnginvval ringinvval
 9-Feb-20 rngon0    rngone0
 9-Feb-20 clmrng    clmring
 9-Feb-20 nrgrng    nrgring
 9-Feb-20 tdrgrng   tdrgring
 9-Feb-20 trgrng    trgring
 9-Feb-20 pmatrng   pmatring
 9-Feb-20 matrng    matring
 9-Feb-20 rngvcl    ringvcl
 9-Feb-20 zringrng  zringring
 9-Feb-20 cnrng     cnring
 9-Feb-20 ply1rng   ply1ring
 9-Feb-20 psr1rng   psr1ring
 9-Feb-20 opsrrng   opsrring
 9-Feb-20 mplrng    mplring
 9-Feb-20 psrrng    psrring
 9-Feb-20 assarng   assaring
 9-Feb-20 domnrng   domnring
 9-Feb-20 rng1zr    ring1zr
 9-Feb-20 0rng01eqbi 0ring01eqbi
 9-Feb-20 01eq0rng  01eq0ring
 9-Feb-20 0rng01eq  0ring01eq
 9-Feb-20 0rng      0ring
 9-Feb-20 0rngnnzr  0ringnnzr
 9-Feb-20 rngelnzr  ringelnzr
 9-Feb-20 nzrrng    nzrring
 9-Feb-20 lpirrng   lpirring
 9-Feb-20 qusrng    qusring
 9-Feb-20 lmodrng   lmodring
 9-Feb-20 srngrng   srngring
 9-Feb-20 subrgrng  subrgring
 9-Feb-20 rnginvdv  ringinvdv
 9-Feb-20 rnginvcl  ringinvcl
 9-Feb-20 opprrngb  opprringb
 9-Feb-20 opprrng   opprring
 9-Feb-20 qusrng2   qusring2
 9-Feb-20 imasrng   imasring
 9-Feb-20 pwsrng    pwsring
 9-Feb-20 prdsrngd  prdsringd
 9-Feb-20 rngrghm   ringrghm
 9-Feb-20 rnglghm   ringlghm
 9-Feb-20 rngn0     ringn0
 9-Feb-20 rng1      ring1
 9-Feb-20 rngsubdi  ringsubdi
 9-Feb-20 rngm2neg  ringm2neg
 9-Feb-20 rngmneg2  ringmneg2
 9-Feb-20 rngmneg1  ringmneg1
 9-Feb-20 rngnegl   ringnegl
 9-Feb-20 rng1ne0   ring1ne0
 9-Feb-20 rng1eq0   ring1eq0
 9-Feb-20 rngsrg    ringsrg
 9-Feb-20 rngrz     ringrz
 9-Feb-20 rnglz     ringlz
 9-Feb-20 isrngd    isringd
 9-Feb-20 rngprop   ringprop
 9-Feb-20 rngpropd  ringpropd
 9-Feb-20 rngcmn    ringcmn
 9-Feb-20 rngabl    ringabl
 9-Feb-20 rngcom    ringcom
 9-Feb-20 rngacl    ringacl
 9-Feb-20 rngidss   ringidss
 9-Feb-20 isrngid   isringid
 9-Feb-20 rngridm   ringridm
 9-Feb-20 rnglidm   ringlidm
 9-Feb-20 rngidmlem ringidmlem
 9-Feb-20 rng0cl    ring0cl
 9-Feb-20 rngidcl   ringidcl
 9-Feb-20 rngdir    ringdir
 9-Feb-20 rngdi     ringdi
 9-Feb-20 rngideu   ringideu
 9-Feb-20 rngass    ringass
 9-Feb-20 rngcl     ringcl
 9-Feb-20 rngi      ringi
 9-Feb-20 crngrng   crngring
 9-Feb-20 rngmnd    ringmnd
 9-Feb-20 rngmgp    ringmgp
 9-Feb-20 rnggrp    ringgrp
 9-Feb-20 isrng     isring
 9-Feb-20 df-rng    df-ring
 8-Feb-20 xrsmgm    [same]      moved from AV's mathbox to main set.mm
 8-Feb-20 xrsnsgrp  [same]      moved from AV's mathbox to main set.mm
 8-Feb-20 xrsmgmdifsgrp [same]  moved from AV's mathbox to main set.mm
 8-Feb-20 gsummgmpropd [same]   moved from AV's mathbox to main set.mm
 8-Feb-20 ringmgm   [same]      moved from AV's mathbox to main set.mm
 7-Feb-20 ismndALT  ismnd
 6-Feb-20 ismndALT  [same]      moved from AV's mathbox to main set.mm
 6-Feb-20 df-mndALT df-mnd      moved from AV's mathbox to main set.mm
 3-Feb-20 mndsgrp   [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 mndmgm    [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 issgrp    [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 issgrpv   [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 issgrpn0  [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 isnsgrp   [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 sgrpmgm   [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 sgrpass   [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 df-sgrp   [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 ismgm     [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 ismgmn0   [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 mgmcl     [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 isnmgm    [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 mgmplusf  [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 df-mgm    [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 fveqressseq [same]    moved from AV's mathbox to main set.mm
 3-Feb-20 fvn0ssdmfun [same]    moved from AV's mathbox to main set.mm
 3-Feb-20 nelrnfvne [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 fveqdmss  [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 elnelne1  [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 elnelne2  [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 nelcon3d  [same]      moved from AV's mathbox to main set.mm
 3-Feb-20 rexnal2   [same]      moved from GS's mathbox to main set.mm
 3-Feb-20 ---       ---         swapped definition of Ref
27-Jan-20 df-divs   df-qus
27-Jan-20 divsval   qusval
27-Jan-20 divslem   quslem
27-Jan-20 divsin    qusin
27-Jan-20 divsbas   qusbas
27-Jan-20 divssca   qussca
27-Jan-20 divsaddvallem qusaddvallem
27-Jan-20 divsaddflem qusaddflem
27-Jan-20 divsaddval qusaddval
27-Jan-20 divsaddf  qusaddf
27-Jan-20 divsadd   qusadd
27-Jan-20 divsmulval qusmulval
27-Jan-20 divsmulf  qusmulf
27-Jan-20 divsgrp  qusgrp
27-Jan-20 divsgrp2  qusgrp2
27-Jan-20 divseccl  quseccl
27-Jan-20 divs0     qus0
27-Jan-20 divsinv   qusinv
27-Jan-20 divssub   qussub
27-Jan-20 divsghm   qusghm
27-Jan-20 divsabl   qusabl
27-Jan-20 divsrng2  qusrng2
27-Jan-20 divsrng   qusrng
27-Jan-20 divs1     qus1
27-Jan-20 divsrhm   qusrhm
27-Jan-20 divscrng  quscrng
27-Jan-20 divstgpopn qustgpopn
27-Jan-20 divstgplem qustgplem
27-Jan-20 divstgp qustgp
27-Jan-20 divstgphaus qustgphaus
25-Jan-20 ---       ---         sections "Refinements"
                                moved from JGH's mathbox to main set.mm
24-Jan-20 0rng      [same]      moved from AV's mathbox to main set.mm
24-Jan-20 0rng01eq  [same]      moved from AV's mathbox to main set.mm
24-Jan-20 01eq0rng  [same]      moved from AV's mathbox to main set.mm
23-Jan-20 rng1ne0   [same]      moved from AV's mathbox to main set.mm
23-Jan-20 rng1      [same]      moved from AV's mathbox to main set.mm
23-Jan-20 rngn0     [same]      moved from AV's mathbox to main set.mm
23-Jan-20 isnzr2hash [same]     moved from AV's mathbox to main set.mm
23-Jan-20 0rngnnzr  [same]      moved from AV's mathbox to main set.mm
23-Jan-20 rng1nnzr  [same]      moved from AV's mathbox to main set.mm
23-Jan-20 rng1nfld  [same]      moved from AV's mathbox to main set.mm
23-Jan-20 mnd1      [same]      moved from AV's mathbox to main set.mm
23-Jan-20 mnd1id    [same]      moved from AV's mathbox to main set.mm
23-Jan-20 grp1      [same]      moved from AV's mathbox to main set.mm
23-Jan-20 abl1      [same]      moved from AV's mathbox to main set.mm
23-Jan-20 abln0     [same]      moved from AV's mathbox to main set.mm
21-Jan-20 sqxpex    sqxpexg     moved from AV's mathbox to main set.mm
21-Jan-20 sqxpeqd   [same]      moved from AV's mathbox to main set.mm
20-Jan-20 lxflflp1  flflp1      moved from BL's mathbox to main set.mm
20-Jan-20 zabscl    [same]      moved from SO's mathbox to main set.mm
20-Jan-20 nn0sqcl   [same]      moved from SO's mathbox to main set.mm
19-Jan-20 csqr      csqrt       mass rename of 'sqr' to 'sqrt'
19-Jan-20 df-sqr    df-sqrt
19-Jan-20 sqrval    sqrtval
19-Jan-20 sqr0      sqrt0
19-Jan-20 resqrcl   resqrtcl
19-Jan-20 resqrthlem resqrtthlem
19-Jan-20 resqrth   resqrtth
19-Jan-20 remsqsqr  remsqsqrt
19-Jan-20 sqrge0    sqrtge0
19-Jan-20 sqrgt0    sqrtgt0
19-Jan-20 sqrmul    sqrtmul
19-Jan-20 sqrle     sqrtle
19-Jan-20 sqrlt     sqrtlt
19-Jan-20 sqr11     sqrt11
19-Jan-20 sqr00     sqrt00
19-Jan-20 rpsqrcl   rpsqrtcl
19-Jan-20 sqrdiv    sqrtdiv
19-Jan-20 sqrneglem sqrtneglem
19-Jan-20 sqrneg    sqrtneg
19-Jan-20 sqrsq2    sqrtsq2
19-Jan-20 sqrsq     sqrtsq
19-Jan-20 sqrmsq    sqrtmsq
19-Jan-20 sqr1      sqrt1
19-Jan-20 sqr4      sqrt4
19-Jan-20 sqr9      sqrt9
19-Jan-20 sqr2gt1lt2 sqrt2gt1lt2
19-Jan-20 sqrm1     sqrtm1
19-Jan-20 sqreulem.1 sqrteulem.1
19-Jan-20 sqrcl     sqrtcl
19-Jan-20 sqrthlem  sqrtthlem
19-Jan-20 sqrf      sqrtf
19-Jan-20 sqrth     sqrtth
19-Jan-20 sqrrege0  sqrtrege0
19-Jan-20 eqsqror   eqsqrtor
19-Jan-20 eqsqrd    eqsqrtd
19-Jan-20 eqsqr2d   eqsqrt2d
19-Jan-20 sqrthi    sqrtthi
19-Jan-20 sqrcli    sqrtcli
19-Jan-20 sqrgt0i   sqrtgt0i
19-Jan-20 sqrmsqi   sqrtmsqi
19-Jan-20 sqrsqi    sqrtsqi
19-Jan-20 sqsqri    sqsqrti
19-Jan-20 sqrge0i   sqrtge0i
19-Jan-20 sqrpclii  sqrtpclii
19-Jan-20 sqrgt0ii  sqrtgt0ii
19-Jan-20 sqr11i    sqrt11i
19-Jan-20 sqrmuli   sqrtmuli
19-Jan-20 sqrmulii  sqrtmulii
19-Jan-20 sqrmsq2i  sqrtmsq2i
19-Jan-20 sqrlei    sqrtlei
19-Jan-20 sqrlti    sqrtlti
19-Jan-20 rpsqrcld  rpsqrtcld
19-Jan-20 sqrgt0d   sqrtgt0d
19-Jan-20 resqrcld  resqrtcld
19-Jan-20 sqrmsqd   sqrtmsqd
19-Jan-20 sqrsqd    sqrtsqd
19-Jan-20 sqrge0d   sqrtge0d
19-Jan-20 sqrnegd   sqrtnegd
19-Jan-20 sqrdivd   sqrtdivd
19-Jan-20 sqrmuld   sqrtmuld
19-Jan-20 sqrsq2d   sqrtsq2d
19-Jan-20 sqrled    sqrtled
19-Jan-20 sqrltd    sqrtltd
19-Jan-20 sqr11d.5  sqrt11d.5
19-Jan-20 sqrcld    sqrtcld
19-Jan-20 sqrrege0d sqrtrege0d
19-Jan-20 sqsqrd    sqsqrtd
19-Jan-20 msqsqrd   msqsqrtd
19-Jan-20 sqr00d.2  sqrt00d.2
19-Jan-20 sqr2irrlem.3 sqrt2irrlem.3
19-Jan-20 sqr2irr   sqrt2irr
19-Jan-20 sqr2re    sqrt2re
19-Jan-20 zsqrelqelz zsqrtelqelz
19-Jan-20 cphsqrcl  cphsqrtcl
19-Jan-20 cphsqrcl2 cphsqrtcl2
19-Jan-20 cphsqrcl3 cphsqrtcl3
19-Jan-20 cxpsqrlem cxpsqrtlem
19-Jan-20 cxpsqr    cxpsqrt
19-Jan-20 logsqr    logsqrt
19-Jan-20 dvsqr     dvsqrt
19-Jan-20 resqrcn   resqrtcn
19-Jan-20 sqrcn     sqrtcn
19-Jan-20 loglesqr  loglesqrt
19-Jan-20 sqrlim    sqrtlim
19-Jan-20 divsqrsum.2 divsqrtsum.2
19-Jan-20 divsqrsumlem divsqrtsumlem
19-Jan-20 divsqrsum.2 divsqrtsum.2
19-Jan-20 divsqrsum.2 divsqrtsum.2
19-Jan-20 divsqrsum.2 divsqrtsum.2
19-Jan-20 divsqrsum2 divsqrtsum2
19-Jan-20 divsqrsum.2 divsqrtsum.2
19-Jan-20 divsqrsumo1 divsqrtsumo1
19-Jan-20 dvcnsqr   dvcnsqrt
19-Jan-20 rmspecsqrnq rmspecsqrtnq
18-Jan-20 cabel     cabl
15-Jan-20 pgrple2abel pgrple2abl
15-Jan-20 pgrpgt2nabel pgrpgt2nabl
15-Jan-20 ---       ---         subsection "Huneke's Proof of the Friendship
                                Theorem" moved from AV's mathbox to main set.mm
14-Jan-20 ---       ---         section "The Friendship Theorem"
                                moved from AV's mathbox to main set.mm
14-Jan-20 ---       ---         subsection "Regular graphs" (2. part)
                                moved from AV's mathbox to main set.mm
14-Jan-20 ---       ---         subsection "Walks/paths of length 2 as ordered
                                triples" moved from AV's mathbox to main set.mm
14-Jan-20 rusgranumwlkl1lem1 rusgranumwwlkl1 moved from AV's mathbox
                                to main set.mm
14-Jan-20 usgra2wlkspth [same]  moved from AV's mathbox to main set.mm
14-Jan-20 usgfiregdegfi [same]  moved from AV's mathbox to main set.mm
14-Jan-20 nbfiusgrafi [same]    moved from AV's mathbox to main set.mm
14-Jan-20 wrd2f1tovbij [same]   moved from AV's mathbox to main set.mm
14-Jan-20 hashrabrex [same]     moved from AV's mathbox to main set.mm
14-Jan-20 f1oexbi   [same]      moved from AV's mathbox to main set.mm
14-Jan-20 elfvmptrab [same]     moved from AV's mathbox to main set.mm
14-Jan-20 elfvmptrab1 [same]    moved from AV's mathbox to main set.mm
14-Jan-20 otiunsndisj [same]    moved from AV's mathbox to main set.mm
14-Jan-20 otsndisj  [same]      moved from AV's mathbox to main set.mm
14-Jan-20 otthg     [same]      moved from AV's mathbox to main set.mm
14-Jan-20 rabasiun  [same]      moved from AV's mathbox to main set.mm
13-Jan-20 usg2wlk   [same]      moved from AV's mathbox to main set.mm
13-Jan-20 usg2wlkon [same]      moved from AV's mathbox to main set.mm
13-Jan-20 usgra2adedgspth[same] moved from AV's mathbox to main set.mm
13-Jan-20 usgra2adedgwlk [same] moved from AV's mathbox to main set.mm
13-Jan-20 usgra2adedgwlkon [same] moved from AV's mathbox to main set.mm
13-Jan-20 ccat2s1fst [same]     moved from AV's mathbox to main set.mm
13-Jan-20 ccatw2s1len [same]    moved from AV's mathbox to main set.mm
13-Jan-20 ccat2s1fvw [same]     moved from AV's mathbox to main set.mm
13-Jan-20 ccatw2s1p1 [same]     moved from AV's mathbox to main set.mm
13-Jan-20 ccatw2s1p2 [same]     moved from AV's mathbox to main set.mm
13-Jan-20 ccat2s1p2 [same]      moved from AV's mathbox to main set.mm
13-Jan-20 ccat2s1len [same]     moved from AV's mathbox to main set.mm
13-Jan-20 ccat2s1cl [same]      moved from AV's mathbox to main set.mm
13-Jan-20 reuccats1 [same]      moved from AV's mathbox to main set.mm
13-Jan-20 ccats1swrdeqrex [same] moved from AV's mathbox to main set.mm
13-Jan-20 zpnn0elfzo1 [same]    moved from AV's mathbox to main set.mm
13-Jan-20 zpnn0elfzo [same]     moved from AV's mathbox to main set.mm
12-Jan-20 prmn2uzge3 [same]     moved from AV's mathbox to main set.mm
12-Jan-20 powm2modprm [same]    moved from AV's mathbox to main set.mm
12-Jan-20 m1dvdsndvds [same]    moved from AV's mathbox to main set.mm
12-Jan-20 mulmoddvds [same]     moved from AV's mathbox to main set.mm
12-Jan-20 modfsummod [same]     moved from AV's mathbox to main set.mm
12-Jan-20 modfsummods [same]    moved from AV's mathbox to main set.mm
12-Jan-20 fzosplitprm1 [same]   moved from AV's mathbox to main set.mm
12-Jan-20 fsummsnunz [same]     moved from AV's mathbox to main set.mm
12-Jan-20 fsumsplitsnun [same]  moved from AV's mathbox to main set.mm
12-Jan-20 fsumz fsumzcl2        moved from AV's mathbox to main set.mm
12-Jan-20 zadd2cl   [same]      moved from AV's mathbox to main set.mm
12-Jan-20 cnm2m1cnm3 [same]     moved from AV's mathbox to main set.mm
11-Jan-20 hash1to3  [same]      moved from AV's mathbox to main set.mm
11-Jan-20 hash3tr   [same]      moved from AV's mathbox to main set.mm
11-Jan-20 uzsubfz0  [same]      moved from AV's mathbox to main set.mm
11-Jan-20 eluzge2nn0 [same]     moved from AV's mathbox to main set.mm
11-Jan-20 eluzge3nn [same]      moved from AV's mathbox to main set.mm
11-Jan-20 ige3m2fz  [same]      moved from AV's mathbox to main set.mm
11-Jan-20 uz3m2nn   [same]      moved from AV's mathbox to main set.mm
11-Jan-20 nn0pzuz   [same]      moved from AV's mathbox to main set.mm
11-Jan-20 nn01to3   [same]      moved from AV's mathbox to main set.mm
11-Jan-20 uzuzle23  [same]      moved from AV's mathbox to main set.mm
11-Jan-20 kcnktkm1cn [same]     moved from AV's mathbox to main set.mm
11-Jan-20 mulsubfacd [same]     moved from AV's mathbox to main set.mm
11-Jan-20 f13idfv   [same]      moved from AV's mathbox to main set.mm
11-Jan-20 f13dfv    [same]      moved from AV's mathbox to main set.mm
11-Jan-20 f12dfv    [same]      moved from AV's mathbox to main set.mm
11-Jan-20 ff14b     [same]      moved from AV's mathbox to main set.mm
11-Jan-20 dff14a    [same]      moved from AV's mathbox to main set.mm
11-Jan-20 raldifsnb [same]      moved from AV's mathbox to main set.mm
11-Jan-20 3xpfi     [same]      moved from AV's mathbox to main set.mm
11-Jan-20 3xpexg    [same]      moved from AV's mathbox to main set.mm
11-Jan-20 el2xptp0  [same]      moved from AV's mathbox to main set.mm
11-Jan-20 el2xptp   [same]      moved from AV's mathbox to main set.mm
11-Jan-20 oteqimp   [same]      moved from AV's mathbox to main set.mm
11-Jan-20 otel3xp   [same]      moved from AV's mathbox to main set.mm
11-Jan-20 ornld     [same]      moved from AV's mathbox to main set.mm
 9-Jan-20 usisuhgra [same]      moved from AV's mathbox to main set.mm
 8-Jan-20 Lemma2    clwwlknscsh
 8-Jan-20 ---       ---         subsection "Closed walks" (2. part)
                                moved from AV's mathbox to main set.mm
 8-Jan-20 erclwwlksym0 cshwcshid moved from AV's mathbox to main set.mm
 8-Jan-20 erclwwlktr0 cshwcsh2id moved from AV's mathbox to main set.mm
 7-Jan-20 wlklenpislenfp1 wlklenvp1 moved from AV's mathbox to main set.mm
 7-Jan-20 wlkp1lenfislenp wlklenvclwlk moved from AV's mathbox to main set.mm
 7-Jan-20 elfzelfzadd  elfz0add
 7-Jan-20 elfzelfzelfz elfz0ubfz0
 7-Jan-20 cshwlemma1 2cshwcshw  moved from AV's mathbox to main set.mm
 7-Jan-20 scshwfzeqfzo [same]   moved from AV's mathbox to main set.mm
 7-Jan-20 wrdnval   [same]      moved from AV's mathbox to main set.mm
 7-Jan-20 hashwrdn  [same]      moved from AV's mathbox to main set.mm
 7-Jan-20 wrdlenfi  wrdnfi
 7-Jan-20 fzisfzounsn [same]    moved from AV's mathbox to main set.mm
 7-Jan-20 elfzonlteqm1 [same]   moved from AV's mathbox to main set.mm
 7-Jan-20 difelfzle [same]      moved from AV's mathbox to main set.mm
 7-Jan-20 difelfznle [same]     moved from AV's mathbox to main set.mm
 7-Jan-20 uz2nn     eluz2nn     moved from AV's mathbox to main set.mm
 5-Jan-20 ---       ---         subsection "Closed walks" (1. part)
                                moved from AV's mathbox to main set.mm
 5-Jan-20 wlk0      [same]      moved from AV's mathbox to main set.mm
 5-Jan-20 wlkv0     [same]      moved from AV's mathbox to main set.mm
 5-Jan-20 lswccats1fst [same]   moved from AV's mathbox to main set.mm
 5-Jan-20 ige2m1fz  [same]      moved from AV's mathbox to main set.mm
 5-Jan-20 ige2m2fzo [same]      moved from AV's mathbox to main set.mm
 5-Jan-20 eluzgtdifelfzo [same] moved from AV's mathbox to main set.mm
 5-Jan-20 elfzom1elfzo [same]   moved from AV's mathbox to main set.mm
 5-Jan-20 elfzom1elp1fzo [same] moved from AV's mathbox to main set.mm
 5-Jan-20 elfzubelfz [same]     moved from AV's mathbox to main set.mm
 5-Jan-20 cnm1cn    peano2cnm   moved from AV's mathbox to main set.mm
 5-Jan-20 nn0lt2    [same]      moved from AV's mathbox to main set.mm
 5-Jan-20 3an4anass [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 uzletr    eluzuzle
 4-Jan-20 ---       ---         subsection "Walks as words"
                                moved from AV's mathbox to main set.mm
 4-Jan-20 usg2wlkeq2 [same]     moved from AV's mathbox to main set.mm
 4-Jan-20 usg2wlkeq [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 2wlkeq    [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 wlkcompim [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 elopaelxp [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 2ffzeq    [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 wlklenfislenpm1 wlklenvm1 moved from AV's mathbox to main set.mm
 4-Jan-20 elovmpt2wrd [same]    moved from AV's mathbox to main set.mm
 4-Jan-20 elovmptnn0wrd [same]  moved from AV's mathbox to main set.mm
 4-Jan-20 edgwlk    [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 ovmpt3rab1 [same]     moved from AV's mathbox to main set.mm
 4-Jan-20 ovmpt3rabdm [same]    moved from AV's mathbox to main set.mm
 4-Jan-20 elovmpt3rab1 [same]   moved from AV's mathbox to main set.mm
 4-Jan-20 elovmpt3rab [same]    moved from AV's mathbox to main set.mm
 4-Jan-20 elovmpt3imp [same]    moved from AV's mathbox to main set.mm
 4-Jan-20 elovmpt2rab [same]    moved from AV's mathbox to main set.mm
 4-Jan-20 elovmpt2rab1 [same]   moved from AV's mathbox to main set.mm
 4-Jan-20 wlkelwrd  [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 wlkcpr    [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 wlkop     [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 wlkn0     [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 relwlk    [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 wrdlen1   [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 fvelrnfvelrnressn fvrnressn moved from AV's mathbox to main set.mm
 4-Jan-20 fvressn   [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 fvn0fvelrn [same]     moved from AV's mathbox to main set.mm
 4-Jan-20 dmressnsn [same]      moved from AV's mathbox to main set.mm
 4-Jan-20 eldmressnsn [same]    moved from AV's mathbox to main set.mm
 4-Jan-20 eldmeldmressn [same]  moved from AV's mathbox to main set.mm
 4-Jan-20 elfzom1p1elfzo [same] moved from AV's mathbox to main set.mm
 4-Jan-20 fzonn0p1p1 [same]     moved from AV's mathbox to main set.mm
 4-Jan-20 nn0ge2m1nn0 [same]    moved from AV's mathbox to main set.mm
 4-Jan-20 nn0ge2m1nn [same]     moved from AV's mathbox to main set.mm
 3-Jan-20 ---       ---         subsection "Regular graphs" (1. part)
                                moved from AV's mathbox to main set.mm
 2-Jan-20 vdiscusgra [same]     moved from AV's mathbox to main set.mm
 2-Jan-20 usgrauvtxvdbi [same]  moved from AV's mathbox to main set.mm
 2-Jan-20 uvtxhashnb [same]     moved from AV's mathbox to main set.mm
 2-Jan-20 nbhashuvtx [same]     moved from AV's mathbox to main set.mm
 2-Jan-20 nbhashuvtx1 [same]    moved from AV's mathbox to main set.mm
 2-Jan-20 nbgrassvwo2 [same]    moved from AV's mathbox to main set.mm
 2-Jan-20 nbgrassvwo [same]     moved from AV's mathbox to main set.mm
 2-Jan-20 nbhashnn0 [same]      moved from AV's mathbox to main set.mm
 2-Jan-20 usgfidegfi [same]     moved from AV's mathbox to main set.mm
 2-Jan-20 uvtxnb    [same]      moved from AV's mathbox to main set.mm
 2-Jan-20 usgravd00 [same]      moved from AV's mathbox to main set.mm
 2-Jan-20 hash2prv  [same]      moved from AV's mathbox to main set.mm
 2-Jan-20 hash2sspr [same]      moved from AV's mathbox to main set.mm
 2-Jan-20 elss2pr   [same]      moved from AV's mathbox to main set.mm
 2-Jan-20 exprelprel [same]     moved from AV's mathbox to main set.mm
 2-Jan-20 hashrabsn01 [same]    moved from AV's mathbox to main set.mm
 2-Jan-20 hashrabsn1 [same]     moved from AV's mathbox to main set.mm
 2-Jan-20 difpr     [same]      moved from AV's mathbox to main set.mm
 2-Jan-20 f0rn0     [same]      moved from AV's mathbox to main set.mm
 2-Jan-20 oprabv    [same]      moved from AV's mathbox to main set.mm
 2-Jan-20 opelopabgf [same]     moved from AV's mathbox to main set.mm
 2-Jan-20 csbprg    [same]      moved from AV's mathbox to main set.mm
31-Dec-19 telescfzgsum telgsumfzs
31-Dec-19 telescfzgsumis telgsumfz
31-Dec-19 telescfzgsum0 telgsumfz0s
31-Dec-19 telescfzgsum0is telgsumfz0
31-Dec-19 telescgsum telgsums
31-Dec-19 fsumtscopo telfsumo
31-Dec-19 fsumtscopo2 telfsumo2
31-Dec-19 fsumtscop telfsum
31-Dec-19 fsumtscop2 telfsum2
30-Dec-19 smatvscl  [same]      moved from AV's mathbox to main set.mm
30-Dec-19 scmatlss  [same]      moved from AV's mathbox to main set.mm
30-Dec-19 scmatstrbas [same]    moved from AV's mathbox to main set.mm
30-Dec-19 scmatrhmval [same]    moved from AV's mathbox to main set.mm
30-Dec-19 scmatrhmcl [same]     moved from AV's mathbox to main set.mm
30-Dec-19 scmatf    [same]      moved from AV's mathbox to main set.mm
30-Dec-19 scmatfo   [same]      moved from AV's mathbox to main set.mm
30-Dec-19 scmatf1   [same]      moved from AV's mathbox to main set.mm
30-Dec-19 scmatf1o  [same]      moved from AV's mathbox to main set.mm
30-Dec-19 scmatghm  [same]      moved from AV's mathbox to main set.mm
30-Dec-19 scmatmhm  [same]      moved from AV's mathbox to main set.mm
30-Dec-19 scmatrhm  [same]      moved from AV's mathbox to main set.mm
30-Dec-19 scmatrngiso [same]    moved from AV's mathbox to main set.mm
30-Dec-19 scmatric  [same]      moved from AV's mathbox to main set.mm
30-Dec-19 brric     [same]      moved from AV's mathbox to main set.mm
30-Dec-19 brric2    [same]      moved from AV's mathbox to main set.mm
30-Dec-19 ricgic    [same]      moved from AV's mathbox to main set.mm
30-Dec-19 rimgim    [same]      moved from AV's mathbox to main set.mm
30-Dec-19 df-ric    [same]      moved from AV's mathbox to main set.mm,
                                symbol ~=R swapped with ~=r of JM's mathbox
30-Dec-19 df-plpr   ---         deleted; usage in addsrpr replaced
30-Dec-19 df-mpr    ---         deleted; usage in mulsrpr replaced
30-Dec-19 th3qcor   ---         deleted; was unused
30-Dec-19 th3qlem2  ---         deleted; only usage was ovec
30-Dec-19 th3qlem1  ---         deleted; only usage was ovec
30-Dec-19 th3q      ---         deleted; only usage was ovec
30-Dec-19 ovec      ---         deleted; usage in addsrpr and mulsrpr replaced
30-Dec-19 coeq0     [ same ]    moved from SO's mathbox to main set.mm
30-Dec-19 ---       ---         section "The characteristic polynomial"
                                moved from AV's mathbox to main set.mm
30-Dec-19 grpsubadd0sub [same]  moved from AV's mathbox to main set.mm
30-Dec-19 add1p1    [same]      moved from AV's mathbox to main set.mm
30-Dec-19 nn0disj   [same]      moved from AV's mathbox to main set.mm
30-Dec-19 grpnpncan0 [same]     moved from AV's mathbox to main set.mm
30-Dec-19 telescfzgsum [same]   moved from AV's mathbox to main set.mm
30-Dec-19 telescfzgsumis [same] moved from AV's mathbox to main set.mm
30-Dec-19 telescfzgsum0 [same]  moved from AV's mathbox to main set.mm
30-Dec-19 telescfzgsum0is [same] moved from AV's mathbox to main set.mm
30-Dec-19 telescgsum [same]     moved from AV's mathbox to main set.mm
30-Dec-19 a2and     [same]      moved from AV's mathbox to main set.mm
30-Dec-19 asclinvg  [same]      moved from AV's mathbox to main set.mm
30-Dec-19 lply1binomsc [same]   moved from AV's mathbox to main set.mm
30-Dec-19 lmodvsmmulgdi [same]  moved from AV's mathbox to main set.mm
30-Dec-19 lply1binom [same]     moved from AV's mathbox to main set.mm
30-Dec-19 lply1binomsc [same]   moved from AV's mathbox to main set.mm
30-Dec-19 gsumply1eq [same]     moved from AV's mathbox to main set.mm
30-Dec-19 gsummptfidmsub [same] moved from AV's mathbox to main set.mm
30-Dec-19 assa2ass  [same]      moved from AV's mathbox to main set.mm
30-Dec-19 assamulgscm [same]    moved from AV's mathbox to main set.mm
24-Dec-19 ---       ---         section "Polynomial matrices"
                                moved from AV's mathbox to main set.mm
24-Dec-19 mptcoe1fsupp [same]   moved from AV's mathbox to main set.mm
23-Dec-19 gsumsmonply1 [same]   moved from AV's mathbox to main set.mm
23-Dec-19 gsummoncoe1 [same]    moved from AV's mathbox to main set.mm
23-Dec-19 coe1ae0   [same]      moved from AV's mathbox to main set.mm
23-Dec-19 ply10s0   [same]      moved from AV's mathbox to main set.mm
23-Dec-19 ply1idvr1 [same]      moved from AV's mathbox to main set.mm
23-Dec-19 fsfnn0gsumfsffz  [same] moved from AV's mathbox to main set.mm
23-Dec-19 nn0gsumfz [same]      moved from AV's mathbox to main set.mm
23-Dec-19 nn0gsumfz0 [same]     moved from AV's mathbox to main set.mm
23-Dec-19 gsummptnn0fz  [same]  moved from AV's mathbox to main set.mm
23-Dec-19 gsummptnn0fzv  [same] moved from AV's mathbox to main set.mm
23-Dec-19 gsummptnn0fzfv  [same] moved from AV's mathbox to main set.mm
23-Dec-19 fsuppmapnn0ub  [same] moved from AV's mathbox to main set.mm
23-Dec-19 fsuppmapnn0fz  [same] moved from AV's mathbox to main set.mm
23-Dec-19 mptnn0fsupp  [same]   moved from AV's mathbox to main set.mm
23-Dec-19 mptnn0fsuppd  [same]  moved from AV's mathbox to main set.mm
23-Dec-19 mptnn0fsuppr [same]   moved from AV's mathbox to main set.mm
23-Dec-19 suppssfz  [same]      moved from AV's mathbox to main set.mm
23-Dec-19 rabssnn0fi [same]     moved from AV's mathbox to main set.mm
23-Dec-19 ssnn0fi   [same]      moved from AV's mathbox to main set.mm
23-Dec-19 matgsum   [same]      moved from AV's mathbox to main set.mm
23-Dec-19 cply1coe0bi [same]    moved from AV's mathbox to main set.mm
23-Dec-19 cply1coe0 [same]      moved from AV's mathbox to main set.mm
23-Dec-19 cply1mul  [same]      moved from AV's mathbox to main set.mm
23-Dec-19 coe1fzgsumd [same]    moved from AV's mathbox to main set.mm
23-Dec-19 ply1coe1eq [same]     moved from AV's mathbox to main set.mm
23-Dec-19 eqcoe1ply1eq [same]   moved from AV's mathbox to main set.mm
23-Dec-19 mpt2matmul [same]     moved from AV's mathbox to main set.mm
23-Dec-19 coe1fvalcl [same]     moved from AV's mathbox to main set.mm
23-Dec-19 coe1fsupp [same]      moved from AV's mathbox to main set.mm
23-Dec-19 supgtoreq [same]      moved from AV's mathbox to main set.mm
23-Dec-19 supfirege [same]      moved from AV's mathbox to main set.mm
23-Dec-19 suprfinzcl [same]     moved from AV's mathbox to main set.mm
23-Dec-19 fsuppmapnn0fiub [same] moved from AV's mathbox to main set.mm
23-Dec-19 fsuppmapnn0fiubex [same] moved from AV's mathbox to main set.mm
23-Dec-19 fsuppmapnn0fiub0 [same] moved from AV's mathbox to main set.mm
22-Dec-19 neneqad   neqned
21-Dec-19 ---       ---         section "The subalgebras of diagonal and scalar
                                matrices" moved from AV's mathbox to main
                                set.mm
21-Dec-19 ---       ---         section "Matrices of dimension 0 and 1" moved
                                from AV's mathbox to main set.mm
21-Dec-19 matsubg   [same]      moved from AV's mathbox to main set.mm
21-Dec-19 matplusgcell [same]   moved from AV's mathbox to main set.mm
21-Dec-19 matsubgcell [same]    moved from AV's mathbox to main set.mm
21-Dec-19 matinvgcell [same]    moved from AV's mathbox to main set.mm
21-Dec-19 matmulcell [same]     moved from AV's mathbox to main set.mm
21-Dec-19 matvscacell [same]    moved from AV's mathbox to main set.mm
21-Dec-19 eqmat     [same]      moved from AV's mathbox to main set.mm
21-Dec-19 gsumdifsnd [same]     moved from AV's mathbox to main set.mm
21-Dec-19 f1o2sn    [same]      moved from AV's mathbox to main set.mm
21-Dec-19 mpt2sn    [same]      moved from AV's mathbox to main set.mm
21-Dec-19 fmptsnd   [same]      moved from AV's mathbox to main set.mm
20-Dec-19 dmatcomp  mat1comp
20-Dec-19 mamudiagcl mamumat1cl
19-Dec-19 resabs1d  [same]      moved from GS's mathbox to main set.mm
19-Dec-19 fssresd   [same]      moved from GS's mathbox to main set.mm
19-Dec-19 fssd      [same]      moved from GS's mathbox to main set.mm
19-Dec-19 resmptd   [same]      moved from GS's mathbox to main set.mm
19-Dec-19 dmmptid   dmmptd      moved from GS's mathbox to main set.mm
19-Dec-19 neqned    [same]      moved from GS's mathbox to main set.mm
19-Dec-19 iffalsed  [same]      moved from GS's mathbox to main set.mm
19-Dec-19 iftrued   [same]      moved from GS's mathbox to main set.mm
19-Dec-19 rspan     rspa        moved from GS's mathbox to main set.mm
15-Dec-19 elovimad  [same]      moved from TA's mathbox to main set.mm
12-Dec-19 gsummptf1o [same]     moved from TA's mathbox to main set.mm
12-Dec-19 gsummptun [same]      moved from TA's mathbox to main set.mm
12-Dec-19 gsumunsnf [same]      moved from TA's mathbox to main set.mm
12-Dec-19 gsumsnf   [same]      moved from TA's mathbox to main set.mm
 7-Dec-19 icossicc  [same]      moved from TA's mathbox to main set.mm
 7-Dec-19 iocssicc  [same]      moved from TA's mathbox to main set.mm
 7-Dec-19 ioossico  [same]      moved from TA's mathbox to main set.mm
 7-Dec-19 iocssioo  [same]      moved from TA's mathbox to main set.mm
 7-Dec-19 icossioo  [same]      moved from TA's mathbox to main set.mm
 7-Dec-19 ioossioo  [same]      moved from TA's mathbox to main set.mm
 7-Dec-19 volss     [same]      moved from TA's mathbox to main set.mm
30-Nov-19 axc11nlem axc11nlem   reworked to be more flexible
30-Nov-19 cbvequv   cbvaev      ae is the shorthand for A. x x = y
25-Nov-19 mdet0     [same]      moved from AV's mathbox to main set.mm
25-Nov-19 m1detdiag [same]      moved from AV's mathbox to main set.mm
25-Nov-19 mdetdiaglem [same]    moved from AV's mathbox to main set.mm
25-Nov-19 mdetdiag  [same]      moved from AV's mathbox to main set.mm
25-Nov-19 mdetdiagid [same]     moved from AV's mathbox to main set.mm
25-Nov-19 psgnsn    [same]      moved from AV's mathbox to main set.mm
25-Nov-19 pmtrsn    [same]      moved from AV's mathbox to main set.mm
25-Nov-19 hashen1   [same]      moved from AV's mathbox to main set.mm
25-Nov-19 snnen2o   [same]      moved from AV's mathbox to main set.mm
25-Nov-19 ply1moncl [same]      moved from AV's mathbox to main set.mm
25-Nov-19 psrass23l [same]      moved from AV's mathbox to main set.mm
25-Nov-19 iffv      [same]      moved from TA's mathbox to main set.mm
25-Nov-19 ifov      [same]      moved from AV's mathbox to main set.mm
25-Nov-19 3anim2i   [same]      moved from AV's mathbox to main set.mm
24-Oct-19 kerf1hrm  [same]      moved from TA's mathbox to main set.mm
20-Oct-19 ax10e     axc7e
29-Sep-19 ply1coefsupp [same]   moved from AV's mathbox to main set.mm
29-Sep-19 mptscmfsuppd [same]   moved from AV's mathbox to main set.mm
22-Sep-19 sp2       2sp
22-Sep-19 stdpc4-2  2stdpc4
22-Sep-19 stdpc5-2  2stdpc5
22-Sep-19 ax52                  deleted; use 2ax5
22-Sep-19 gsumpropd2 [same]     moved from TA's mathbox to main set.mm
21-Sep-19 2sb6rflem2 2ax6e
21-Sep-19 2sb6rflem1 2ax6elem
20-Sep-19 dfbi1gb   dfbi1ALT
19-Sep-19 con3and   con3dimp
19-Sep-19 imp3a     impd
19-Sep-19 exp3a     expd
19-Sep-19 exp3acom23 expcomd
19-Sep-19 exp3acom3r expdcom
19-Sep-19 ancomsimp ancomst
 8-Sep-19 ---       ---         section "The binomial theorem for semirings"
                                moved from AV's mathbox to main set.mm
 8-Sep-19 srglz     [same]      moved from AV's mathbox to main set.mm
 8-Sep-19 srglmhm   [same]      moved from AV's mathbox to main set.mm
 8-Sep-19 srgrmhm   [same]      moved from AV's mathbox to main set.mm
 8-Sep-19 srgsummulcr [same]    moved from AV's mathbox to main set.mm
 8-Sep-19 srgsummulcl [same]    moved from AV's mathbox to main set.mm
 8-Sep-19 srgmulgass [same]     moved from AV's mathbox to main set.mm
 8-Sep-19 srgpcomp  [same]      moved from AV's mathbox to main set.mm
 8-Sep-19 srgpcompp [same]      moved from AV's mathbox to main set.mm
 8-Sep-19 srgpcomppsc [same]    moved from AV's mathbox to main set.mm
 8-Sep-19 fzpreddisj[same]      moved from AV's mathbox to main set.mm
 8-Sep-19 fzdifsuc  [same]      moved from AV's mathbox to main set.mm
 8-Sep-19 fzpred    [same]      moved from AV's mathbox to main set.mm
 8-Sep-19 gsummptshft [same]    moved from AV's mathbox to main set.mm
 8-Sep-19 mptfzshft [same]      moved from AV's mathbox to main set.mm
 8-Sep-19 ---       ---         section "Semirings" moved from TA's mathbox to
                                main set.mm
 8-Sep-19 rge0ssre  [same]      moved from TA's mathbox to main set.mm
 8-Sep-19 sbceqbid  [same]      moved from TA's mathbox to main set.mm
 8-Sep-19 fmptdf    [same]      moved from GS's mathbox to main set.mm
 8-Sep-19 gsumconstf [same]     moved from TA's mathbox to main set.mm
 8-Sep-19 gsummptmhm [same]     revised/ moved from TA's mathbox to main set.mm
 7-Sep-19 axc16ALT2             deleted; use axc16
24-Jul-19 ee21      syl6ci
24-Jul-19 ee23      syl10
24-Jul-19 ee10      mpisyl
24-Jul-19 ee12an    syl6an
22-Jul-19 rabfsupp  ---         deleted; usage in rrxbase replaced
21-Jul-19 ellspd    [same]      revised using ` finSupp `
21-Jul-19 frlmbas   [same]      revised using ` finSupp `
21-Jul-19 frlmelbas [same]      revised using ` finSupp `
21-Jul-19 frlmgsum  [same]      revised using ` finSupp `
21-Jul-19 frlmsslsp [same]      revised using ` finSupp `
21-Jul-19 frlmsslss2 [same]     revised using ` finSupp `
21-Jul-19 frlmssuvc1 [same]     revised using ` finSupp `
21-Jul-19 frlmssuvc2 [same]     revised using ` finSupp `
20-Jul-19 rabsnif   [same]      moved from AV's mathbox to main set.mm
20-Jul-19 suppsnop  [same]      moved from AV's mathbox to main set.mm
20-Jul-19 elmapfun  [same]      moved from SO's mathbox to main set.mm
20-Jul-19 elmapfn   [same]      moved from AV's mathbox to main set.mm
18-Jul-19 coe1sfi   [same]      revised using ` finSupp `
18-Jul-19 evlslem4  [same]      revised using ` finSupp `
18-Jul-19 mpllsslem [same]      revised using ` finSupp `
18-Jul-19 mplsubglem [same]     revised using ` finSupp `
18-Jul-19 psrbagev1 [same]      revised using ` finSupp `
18-Jul-19 mplsubrglem [same]    revised using ` finSupp `
18-Jul-19 psrbagsuppfi psrbagfsupp renamed and revised using ` finSupp `
18-Jul-19 funsnfsup funsnfsupp  renamed and revised using ` finSupp `
18-Jul-19 lcomfsup  lcomfsupp   renamed and revised using ` finSupp `
 9-Jul-19 fsuppmptdm [same]     moved from AV's mathbox to main set.mm
 9-Jul-19 fsuppco2  [same]      moved from AV's mathbox to main set.mm
 9-Jul-19 fsuppmptif [same]     moved from AV's mathbox to main set.mm
 9-Jul-19 fsuppun   [same]      moved from AV's mathbox to main set.mm
 9-Jul-19 suppun    [same]      moved from AV's mathbox to main set.mm
 9-Jul-19 f1oexrnex [same]      moved from AV's mathbox to main set.mm
 9-Jul-19 supp0cosupp0 [same]   moved from AV's mathbox to main set.mm
 9-Jul-19 imacosupp [same]      moved from AV's mathbox to main set.mm
 8-Jul-19 mvridlem  snifpsrbag
 7-Jul-19 enfixsn   [same]      moved from SO's mathbox to main set.mm
 7-Jul-19 mapfien2  [same]      moved from SO's mathbox to main set.mm
 7-Jul-19 cantnffval [same]     using ` finSupp `
 7-Jul-19 cantnfdm  [same]      using ` finSupp `
 7-Jul-19 cantnfs   [same]      using ` finSupp `
 7-Jul-19 cantnfcl  [same]      using ` finSupp `
 7-Jul-19 cantnfval [same]      using ` finSupp `
 7-Jul-19 cantnfval2 [same]     using ` finSupp `
 7-Jul-19 cantnfsuc [same]      using ` finSupp `
 7-Jul-19 cantnfle  [same]      using ` finSupp `
 7-Jul-19 cantnflt  [same]      using ` finSupp `
 7-Jul-19 cantnflt2 [same]      using ` finSupp `
 7-Jul-19 cantnfp1lem1 [same]   using ` finSupp `
 7-Jul-19 cantnfp1lem2 [same]   using ` finSupp `
 7-Jul-19 cantnfp1lem3 [same]   using ` finSupp `
 7-Jul-19 cantnfp1  [same]      using ` finSupp `
 7-Jul-19 cantnflem1a [same]    using ` finSupp `
 7-Jul-19 cantnflem1b [same]    using ` finSupp `
 7-Jul-19 cantnflem1c [same]    using ` finSupp `
 7-Jul-19 cantnflem1d [same]    using ` finSupp `
 7-Jul-19 cantnflem1 [same]     using ` finSupp `
 7-Jul-19 cantnflem3 [same]     using ` finSupp `
 7-Jul-19 cantnflem4 [same]     using ` finSupp `
 7-Jul-19 cantnf    [same]      using ` finSupp `
 7-Jul-19 oemapwe   [same]      using ` finSupp `
 7-Jul-19 cantnffval2 [same]    using ` finSupp `
 7-Jul-19 wemapwe   [same]      using ` finSupp `
 7-Jul-19 oef1o     [same]      using ` finSupp `
 7-Jul-19 cnfcomlem [same]      using ` finSupp `
 7-Jul-19 cnfcom    [same]      using ` finSupp `
 7-Jul-19 cnfcom2lem [same]     using ` finSupp `
 7-Jul-19 cnfcom2   [same]      using ` finSupp `
 7-Jul-19 cnfcom3lem [same]     using ` finSupp `
 7-Jul-19 cnfcom3   [same]      using ` finSupp `
 7-Jul-19 cnfcom3clem [same]    using ` finSupp `
 7-Jul-19 cnfcom3c  [same]      using ` finSupp `
 7-Jul-19 df-cnf    [same]      using ` finSupp `
 6-Jul-19 fsuppsssupp [same]    moved from AV's mathbox to main set.mm
 6-Jul-19 fvn0elsupp [same]     moved from AV's mathbox to main set.mm
 6-Jul-19 relfsupp  [same]      moved from AV's mathbox to main set.mm
 6-Jul-19 relprcnfsupp [same]   moved from AV's mathbox to main set.mm
 6-Jul-19 suppeqfsuppbi [same]  moved from AV's mathbox to main set.mm
 6-Jul-19 cantnfreslem  extmptsuppeq renamed and ` supp ` used
 6-Jul-19 fczsupp0  [same]      moved from AV's mathbox to main set.mm
 6-Jul-19 fczfsuppd [same]      moved from AV's mathbox to main set.mm
 5-Jul-19 wemapso2  [same]      using ` finSupp `
 5-Jul-19 mapfien   [same]      using ` finSupp `
 5-Jul-19 xpexcnv   [same]      moved from ATS's mathbox to main set.mm
 5-Jul-19 fsuppcor  [same]      moved from AV's mathbox to main set.mm
 5-Jul-19 fsuppimpd [same]      moved from AV's mathbox to main set.mm
 5-Jul-19 fsuppunfi [same]      moved from AV's mathbox to main set.mm
30-Jun-19 csbren    [same]      moved from JM's mathbox to main set.mm
30-Jun-19 trirn     [same]      moved from JM's mathbox to main set.mm
30-Jun-19 ---       ---         ( CCfld |`s RR ) replaced by RRfld
30-Jun-19 recms     [same]      moved from TA's mathbox to main set.mm
30-Jun-19 reust     [same]      moved from TA's mathbox to main set.mm
30-Jun-19 recusp    [same]      moved from TA's mathbox to main set.mm
30-Jun-19 exlimddv  [same]      moved from TA's mathbox to main set.mm
30-Jun-19 adantl*r  [same]      moved from TA's mathbox to main set.mm
23-Jun-19 gsummptfsadd [same]   moved from AV's mathbox to main set.mm
21-Jun-19 frlmbassup frlmbasfsupp renamed and revised using ` finSupp `
21-Jun-19 ---       ---         changed math token from "om" to "_om"
21-Jun-19 ---       ---         changed math token from "pi" to "_pi"
21-Jun-19 ---       ---         changed math token from "tau" to "_tau"
18-Jun-19 axc11nlem1 cbvequv
18-Jun-19 axc11nlem2 axc11nlem
16-Jun-19 re*       [same]      moved from TA's mathbox to main set.mm
16-Jun-19 snnzb     [same]      moved from SF's mathbox to main set.mm
16-Jun-19 df-sra    [same]      Revised - added inner product
16-Jun-19 df-imas   [same]      Revised - added inner product
16-Jun-19 df-prds   [same]      Revised - added inner product
13-Jun-19 df-zrh    [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 df-zlm    [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 df-zn     [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 mulgghm2  [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 mulgrhm   [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 mulgrhm2  [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 zrhval    [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 zrhval2   [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 zrhmulg   [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 zrhrhmb   [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 zrhrhm    [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 zlmval    [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 zlmsca    [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znlidl    [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 zncrng2   [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znle      [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znval2    [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znbaslem  [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znbas2    [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znadd     [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znmul     [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znzrh     [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znbas     [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znzrh2    [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znzrhval  [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znf1o     [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 zzngim    [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znle2     [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znleval   [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 znleval2  [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 zntoslem  [same]      ( CCfld |`s ZZ ) replaced by ZZring
13-Jun-19 zzsnm     [same]      ( CCfld |`s ZZ ) replaced by ZZring (MB TA)
13-Jun-19 mzpmfp    [same]      ( CCfld |`s ZZ ) replaced by ZZring (MB SO)
11-Jun-19 zlpirlem1 zringlpirlem1 ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 zlpirlem2 zringlpirlem2 ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 zlpirlem3 zringlpirlem3 ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 zlpir     zringlpir   ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 prmirred  [same]      ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 prmirredlem [same]    ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 expghm    [same]      ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 dfprm2    [same]      ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 zrngbas   zringbas    ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 zrngplusg zringplusg  ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 zrngmulg  zringmulg   ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 zrngmulr  zringmulr   ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 zrng0     zring0      ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 zrng1     zring1      ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 zrngunit  zringngunit ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 dvdsrz    dvdsrzring  ( CCfld |`s ZZ ) replaced by ZZring
11-Jun-19 zcyg      zringcyg    ( CCfld |`s ZZ ) replaced by ZZring
10-Jun-19 axc9lem3  axc9lem2    fill gap in numbering
10-Jun-19 axc9lem2  axc9lem1    fill gap in numbering
10-Jun-19 axc9lem1  equviniv    used in more than one context
10-Jun-19 bnj1153   elind       moved from JB's mathbox to main set.mm
 8-Jun-19 snunioc   [same]      moved from TA's mathbox to main set.mm
 8-Jun-19 fdmrn     [same]      moved from TA's mathbox to main set.mm
 8-Jun-19 mptcnv    [same]      moved from TA's mathbox to main set.mm
 8-Jun-19 nvof1o    [same]      moved from TA's mathbox to main set.mm
 8-Jun-19 nvocnv    [same]      moved from TA's mathbox to main set.mm
 6-Jun-19 eumo0     --          deleted; use eumo + mo2
30-May-19 ioovolcl  [same]      moved from GS's mathbox to main set.mm
30-May-19 expcncf   [same]      moved from GS's mathbox to main set.mm
28-May-19 suppfif1  fsuppcolem
28-May-19 df-fsupp  [same]      moved from AV's mathbox to main set.mm
28-May-19 isfsupp   [same]      moved from AV's mathbox to main set.mm
28-May-19 funisfsupp [same]     moved from AV's mathbox to main set.mm
28-May-19 fsuppimp  [same]      moved from AV's mathbox to main set.mm
28-May-19 fdmfisuppfi [same]    moved from AV's mathbox to main set.mm
28-May-19 fdmfifsupp [same]     moved from AV's mathbox to main set.mm
28-May-19 fndmfisuppfi [same]   moved from AV's mathbox to main set.mm
28-May-19 fndmfifsupp [same]    moved from AV's mathbox to main set.mm
28-May-19 ressuppfi [same]      moved from AV's mathbox to main set.mm
28-May-19 df-supp   [same]      moved from AV's mathbox to main set.mm
28-May-19 suppval   [same]      moved from AV's mathbox to main set.mm
28-May-19 suppvalbr [same]      moved from AV's mathbox to main set.mm
28-May-19 supp0     [same]      moved from AV's mathbox to main set.mm
28-May-19 suppval1  [same]      moved from AV's mathbox to main set.mm
28-May-19 suppvalfn [same]      moved from AV's mathbox to main set.mm
28-May-19 cnvimadfsn [same]     moved from AV's mathbox to main set.mm
28-May-19 suppimacnvss [same]   moved from AV's mathbox to main set.mm
28-May-19 suppimacnv [same]     moved from AV's mathbox to main set.mm
28-May-19 ressuppss [same]      moved from AV's mathbox to main set.mm
28-May-19 ressuppssdif [same]   moved from AV's mathbox to main set.mm
28-May-19 mptsuppd  [same]      moved from AV's mathbox to main set.mm
28-May-19 suppfnss  [same]      moved from AV's mathbox to main set.mm
25-May-19 zrngrng   [same]      moved from AV's mathbox to main set.mm
25-May-19 zzsinvg   zrnginvg    moved from AV's mathbox to main set.mm
25-May-19 zzsbase   zrngbas     moved from TA's mathbox to main set.mm
25-May-19 zzsplusg  zrngplusg   moved from TA's mathbox to main set.mm
25-May-19 zzsmulg   zrngmulg    moved from TA's mathbox to main set.mm
25-May-19 zzsmulr   zrngmulr    moved from TA's mathbox to main set.mm
25-May-19 zzs0      zrng0       moved from TA's mathbox to main set.mm
25-May-19 zzs1      zrng1       moved from TA's mathbox to main set.mm
25-May-19 ress0g    [same]      moved from TA's mathbox to main set.mm
25-May-19 iccgelb   [--same--]  moved from TA's mathbox to main set.mm
13-May-19 a5d       ax5d
13-May-19 a6ev      ax6ev
13-May-19 a6e       ax6e
13-May-19 a6e2eq    ax6e2eq
13-May-19 a6e2nd    ax6e2nd
13-May-19 a6e2ndeq  ax6e2ndeq
13-May-19 a6e2eqVD  ax6e2eqVD
13-May-19 a6e2ndVD  ax6e2ndVD
13-May-19 a6e2ndeqVD ax6e2ndeqVD
13-May-19 a6e2ndALT ax6e2ndALT
13-May-19 a6e2ndeqALT ax6e2ndeqALT
13-May-19 a6er      ax6er
13-May-19 a10e      ax10e
13-May-19 a16nf     ax16nf
13-May-19 a16gb     ax16gb
13-May-19 a16nfALT  ax16nfALT
13-May-19 a16gALT   ax16gALT
13-May-19 a16g-o    ax16g-o
 6-May-19 fznatpl1  [same]      moved from TA's mathbox to main set.mm
 6-May-19 sbcies2   [same]      moved from TA's mathbox to main set.mm
 6-May-19 sbcies3   [same]      moved from TA's mathbox to main set.mm
 6-May-19 raltpd    [same]      moved from TA's mathbox to main set.mm
 6-May-19 mpjao3dan [same]      moved from TA's mathbox to main set.mm
 6-May-19 an3andi   [same]      moved from TA's mathbox to main set.mm
 6-May-19 an33rean  [same]      moved from TA's mathbox to main set.mm
 6-May-19 tpnzd     [same]      moved from TA's mathbox to main set.mm
 6-May-19 divelunit [same]      moved from SF's mathbox to main set.mm
 6-May-19 mulcan1g  [same]      moved from SF's mathbox to main set.mm
 6-May-19 mulcan2g  [same]      moved from SF's mathbox to main set.mm
 6-May-19 mulge0b   [same]      moved from SF's mathbox to main set.mm
 6-May-19 mulle0b   [same]      moved from SF's mathbox to main set.mm
 6-May-19 mulsuble0b [same]     moved from SF's mathbox to main set.mm
 6-May-19 subeqrev  [same]      moved from SF's mathbox to main set.mm
 6-May-19 dedekind  [same]      moved from SF's mathbox to main set.mm
 6-May-19 dedekindle [same]     moved from SF's mathbox to main set.mm
 6-May-19 pm2.61iine [same]     moved from SF's mathbox to main set.mm
 1-May-19 alexeq    ---         deleted; use alexeqg
25-Apr-19 fzonn0p1  [same]      moved from AV's mathbox to main set.mm
25-Apr-19 fzossfzop1 [same]     moved from AV's mathbox to main set.mm
25-Apr-19 fzo0ssnn0 [same]      moved from TA's mathbox to main set.mm
20-Apr-19 mpto1     mptnan      make the connective explicit
20-Apr-19 mpto2     mptxor      make the connective explicit
20-Apr-19 mtp-or    mtpor       remove the dash
20-Apr-19 mtp-xor   mtpxor      remove the dash
17-Apr-19 eldifvsn  [same]      moved from AV's mathbox to main set.mm
17-Apr-19 nabbi     [same]      moved from AV's mathbox to main set.mm
17-Apr-19 bnj926    bianir      moved from JB's mathbox to main set.mm
17-Mar-19 rspn0     [same]      moved from AV's mathbox to main set.mm
17-Mar-19 nelprd    [same]      moved from AV's mathbox to main set.mm
16-Mar-19 pncan3oi  [same]      moved from DAW's mathbox to main set.mm
16-Mar-19 mvlladdi  [same]      moved from DAW's mathbox to main set.mm
16-Mar-19 pgrpsubgsymgbi [same] moved from AV's mathbox to main set.mm
16-Mar-19 pgrpsubgsymg [same]   moved from AV's mathbox to main set.mm
16-Mar-19 grpissubg [same]      moved from AV's mathbox to main set.mm
16-Mar-19 resgrpisgrp [same]    moved from AV's mathbox to main set.mm
16-Mar-19 grpidssd  [same]      moved from AV's mathbox to main set.mm
16-Mar-19 grpinvssd [same]      moved from AV's mathbox to main set.mm
16-Mar-19 grpidlcan [same]      moved from AV's mathbox to main set.mm
16-Mar-19 grpidrcan [same]      moved from AV's mathbox to main set.mm
16-Mar-19 funsnfsup [same]      moved from SO's mathbox to main set.mm
16-Mar-19 ralxpmap  [same]      moved from SO's mathbox to main set.mm
16-Mar-19 ralxpxfr2d [same]     moved from SO's mathbox to main set.mm
16-Mar-19 raldifsni [same]      moved from SO's mathbox to main set.mm
 9-Mar-19 mrcmndind [same]      moved from SO's mathbox to main set.mm
 9-Mar-19 issubmd   [same]      moved from SO's mathbox to main set.mm
 9-Mar-19 pwssplit3 [same]      moved from SO's mathbox to main set.mm
 9-Mar-19 pwssplit2 [same]      moved from SO's mathbox to main set.mm
 9-Mar-19 pwssplit1 [same]      moved from SO's mathbox to main set.mm
 9-Mar-19 pwssplit0 [same]      moved from SO's mathbox to main set.mm
 9-Mar-19 gsumvsmul [same]      moved from SO's mathbox to main set.mm
 9-Mar-19 lcomf     [same]      moved from SO's mathbox to main set.mm
 9-Mar-19 lcomfsup  [same]      moved from SO's mathbox to main set.mm
 9-Mar-19 symg1hash [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symg1bas  [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symg2hash [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symg2bas  [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symgbas0  [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symgmov1  [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symgmov2  [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symgfix2  [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symgextf  [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symgextfv [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symgextfve [same]     moved from AV's mathbox to main set.mm
 9-Mar-19 symgextf1 [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symgextfo [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symgextf1o [same]     moved from AV's mathbox to main set.mm
 9-Mar-19 symgextres [same]     moved from AV's mathbox to main set.mm
 9-Mar-19 gsumccatsymgsn [same] moved from AV's mathbox to main set.mm
 9-Mar-19 gsmsymgrfix [same]    moved from AV's mathbox to main set.mm
 9-Mar-19 fvcosymgeq [same]     moved from AV's mathbox to main set.mm
 9-Mar-19 gsmsymgreq [same]     moved from AV's mathbox to main set.mm
 9-Mar-19 symgfixelq [same]     moved from AV's mathbox to main set.mm
 9-Mar-19 symgfixels [same]     moved from AV's mathbox to main set.mm
 9-Mar-19 symgfixelsi [same]    moved from AV's mathbox to main set.mm
 9-Mar-19 symgfixfvh [same]     moved from AV's mathbox to main set.mm
 9-Mar-19 symgfixf  [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symgfixf1 [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symgfixfo [same]      moved from AV's mathbox to main set.mm
 9-Mar-19 symgfixf1o [same]     moved from AV's mathbox to main set.mm
 8-Mar-19 fnmptfvd  [same]      moved from AV's mathbox to main set.mm
 8-Mar-19 rexraleqim [same]     moved from AV's mathbox to main set.mm
 8-Mar-19 gsummgp0  [same]      moved from AV's mathbox to main set.mm
 8-Mar-19 gsumunsnd [same]      moved from AV's mathbox to main set.mm
 8-Mar-19 gsumsnd   [same]      moved from AV's mathbox to main set.mm
 8-Mar-19 cntzcmnss [same]      moved from AV's mathbox to main set.mm
 8-Mar-19 mpt2difsnif [same]    moved from AV's mathbox to main set.mm
 8-Mar-19 mpt2snif  [same]      moved from AV's mathbox to main set.mm
 7-Mar-19 opthne    [same]      moved from AV's mathbox to main set.mm
 7-Mar-19 opthneg   [same]      moved from AV's mathbox to main set.mm
 7-Mar-19 gsumprval [same]      moved from AV's mathbox to main set.mm
 7-Mar-19 gsumpr12val [same]    moved from AV's mathbox to main set.mm
 7-Mar-19 gsummptfzcl [same]    moved from AV's mathbox to main set.mm
 7-Mar-19 gsummptcl [same]      moved from AV's mathbox to main set.mm
 7-Mar-19 pr2pwpr   [same]      moved from AV's mathbox to main set.mm
 7-Mar-19 hash2prd  [same]      moved from AV's mathbox to main set.mm
 7-Mar-19 hash2pwpr [same]      moved from AV's mathbox to main set.mm
 7-Mar-19 prel12g   [same]      moved from AV's mathbox to main set.mm
 7-Mar-19 restidsing [same]     moved from FL's mathbox to main set.mm
 7-Mar-19 fmptsng   [same]      moved from AV's mathbox to main set.mm
 7-Mar-19 ofmpteq   [same]      moved from SO's mathbox to main set.mm
 7-Mar-19 elmapssres [same]     moved from SO's mathbox to main set.mm
 5-Mar-19 gsummptif1n0 [same]   moved from AV's mathbox to main set.mm
 5-Mar-19 cnvimamptfin [same]   moved from AV's mathbox to main set.mm
 5-Mar-19 ixpsnbasval [same]    moved from AV's mathbox to main set.mm
 5-Mar-19 ixpsnval  [same]      moved from AV's mathbox to main set.mm
 4-Mar-19 zrhcofipsgn [same]    moved from AV's mathbox to main set.mm
 4-Mar-19 fvreseq1  [same]      moved from AV's mathbox to main set.mm
 4-Mar-19 r19.29imd [same]      moved from AV's mathbox to main set.mm
 4-Mar-19 gsumccatsymgsn [same] moved from AV's mathbox to main set.mm
 4-Mar-19 gsumccatsn [same]     moved from AV's mathbox to main set.mm
 4-Mar-19 fvcofneq  [same]      moved from AV's mathbox to main set.mm
 4-Mar-19 vtocl4ga  [same]      moved from AV's mathbox to main set.mm
 4-Mar-19 vtocl4g   [same]      moved from AV's mathbox to main set.mm
 4-Mar-19 wrd2ind   [same]      moved from AV's mathbox to main set.mm
 4-Mar-19 difsnexi  [same]      moved from AV's mathbox to main set.mm
 4-Mar-19 symgbasf  [same]      moved from AV's mathbox to main set.mm
 4-Mar-19 symgfv    [same]      moved from AV's mathbox to main set.mm
 4-Mar-19 symgfvne  [same]      moved from AV's mathbox to main set.mm
 4-Mar-19 fninfp    [same]      moved from SO's mathbox to main set.mm
 4-Mar-19 fnelfp    [same]      moved from SO's mathbox to main set.mm
 4-Mar-19 fnelnfp   [same]      moved from SO's mathbox to main set.mm
 4-Mar-19 fndifnfp  [same]      moved from SO's mathbox to main set.mm
 4-Mar-19 fnnfpeq0  [same]      moved from SO's mathbox to main set.mm
 4-Mar-19 en2eleq   [same]      moved from SO's mathbox to main set.mm
 4-Mar-19 en2other2 [same]      moved from SO's mathbox to main set.mm
 4-Mar-19 en2other2 [same]      moved from SO's mathbox to main set.mm
 4-Mar-19 en1uniel  [same]      moved from SO's mathbox to main set.mm
 3-Mar-19 fnmpt2ovd [same]      moved from AV's mathbox to main set.mm
 3-Mar-19 rlmval2   [same]      moved from AV's mathbox to main set.mm
 3-Mar-19 funresdfunsn  [same]  moved from AV's mathbox to main set.mm
 3-Mar-19 resindm   [same]      moved from FL's mathbox to main set.mm
 3-Mar-19 resdmdfsn [same]      moved from AV's mathbox to main set.mm
 3-Mar-19 fvtresfn  [same]      moved from SO's mathbox to main set.mm
 3-Mar-19 f0dom0    [same]      moved from AV's mathbox to main set.mm
 3-Mar-19 nelss     [same]      moved from SO's mathbox to main set.mm
 1-Mar-19 f0bi      [same]      moved from AV's mathbox to main set.mm
 1-Mar-19 dmmpt2ga  [same]      moved from AV's mathbox to main set.mm
 1-Mar-19 dmmpt2g   [same]      moved from AV's mathbox to main set.mm
21-Feb-19 ovif      [same]      moved from TA's mathbox to main set.mm
21-Feb-19 ovif2     [same]      moved from TA's mathbox to main set.mm
21-Feb-19 ovif12    [same]      moved from TA's mathbox to main set.mm
 8-Feb-19 fvsetsid  [same]      moved from SO's mathbox to main set.mm
 8-Feb-19 fsets     [same]      moved from SO's mathbox to main set.mm
 8-Feb-19 ifcomnan  [same]      moved from SO's mathbox to main set.mm
 6-Feb-19 tposconst [same]      moved from SO's mathbox to main set.mm
 6-Feb-19 fconstmpt2 [same]     moved from SO's mathbox to main set.mm
 6-Feb-19 findcard2d [same]     moved from SO's mathbox to main set.mm
 6-Feb-19 offval22  [same]      moved from SO's mathbox to main set.mm
 6-Feb-19 mpt2eq3dv [same]      moved from SO's mathbox to main set.mm
 6-Feb-19 ifcld     [same]      moved from SO's mathbox to main set.mm
 2-Feb-19 symgbasf1o [same]     moved from SO's mathbox to main set.mm
 2-Feb-19 symgbasfi [same]      moved from SO's mathbox to main set.mm
29-Dec-18 fnpr      fnprb       Revised - eliminated unnecessary antecedent
29-Dec-18 bnj145    fnsnb       Revised - added reverse implication
26-Dec-18 a4i-o     axc4i-o
26-Dec-18 a4i       axc4i
26-Dec-18 ax13lem3  axc9lem3
26-Dec-18 ax13lem2  axc9lem2
26-Dec-18 ax13lem1  axc9lem1
26-Dec-18 ax16ALT2  axc16ALT2
26-Dec-18 ax16ALT   axc16ALT
26-Dec-18 ax16      axc16
26-Dec-18 ax16i     axc16i
26-Dec-18 ax16b     axc16b
26-Dec-18 a16g      axc16g
22-Dec-18 xxxax13w  ax13w
22-Dec-18 xxxax13v  ax13v
22-Dec-18 xxxax13b  ax13b
22-Dec-18 xxxax13   ax13
22-Dec-18 xxxax-13  ax-13
22-Dec-18 ax13wlem  ax12wlem
22-Dec-18 ax13wdemo ax12wdemo
22-Dec-18 ax13w     ax12w
22-Dec-18 ax13vALT  ax12vALT
22-Dec-18 ax13v2-o  ax12v2-o
22-Dec-18 ax13v2    ax12v2
22-Dec-18 ax13v     ax12v
22-Dec-18 ax13indn  ax12indn
22-Dec-18 ax13indi  ax12indi
22-Dec-18 ax13indalem ax12indalem
22-Dec-18 ax13inda2ALT ax12inda2ALT
22-Dec-18 ax13inda2 ax12inda2
22-Dec-18 ax13inda  ax12inda
22-Dec-18 ax13i     ax12i
22-Dec-18 ax13f     ax12f
22-Dec-18 ax13eq    ax12eq
22-Dec-18 ax13el    ax12el
22-Dec-18 ax13dgen  ax12dgen
22-Dec-18 ax13b     ax12b
22-Dec-18 ax13a2-o  ax12a2-o
22-Dec-18 ax13a2    ax12a2
22-Dec-18 ax13      ax12
22-Dec-18 ax-13     ax-12
22-Dec-18 ax12w     xxxax13w
22-Dec-18 ax12v     xxxax13v
22-Dec-18 ax12lem3  ax13lem3
22-Dec-18 ax12lem2  ax13lem2
22-Dec-18 ax12lem1  ax13lem1
22-Dec-18 ax12fromc9 ax13fromc9
22-Dec-18 ax12dgen4 ax13dgen4
22-Dec-18 ax12dgen3 ax13dgen3
22-Dec-18 ax12dgen2 ax13dgen2
22-Dec-18 ax12dgen1 ax13dgen1
22-Dec-18 ax12b     xxxax13b
22-Dec-18 ax12      xxxax13
22-Dec-18 ax-12     xxxax-13
22-Dec-18 morimv    ---         deleted (use moimi applied to ax-1)
22-Dec-18 fmptapd   [same]      moved from TA's mathbox to main set.mm
22-Dec-18 fmptpr    [same]      moved from TA's mathbox to main set.mm
22-Dec-18 2eluzge1  [same]      moved from AV's mathbox to main set.mm
22-Dec-18 2eluzge0  [same]      moved from AV's mathbox to main set.mm
21-Dec-18 ax12from12o ax12fromc9
20-Dec-18 a11s      alcoms
19-Dec-18 xxxax6    ax6
19-Dec-18 xxxax11w  ax11w
19-Dec-18 xxxax11dgen ax11dgen
19-Dec-18 xxxax10   ax10
19-Dec-18 xxxax4    ax4
19-Dec-18 xxxax-13  ax-13
19-Dec-18 xxxax-11  ax-11
19-Dec-18 xxxax-10  ax-10
19-Dec-18 ra5       ra4
19-Dec-18 ax9vsep   ax6vsep
19-Dec-18 ax9v      ax6v
19-Dec-18 ax9o      axc10
19-Dec-18 ax9from9o ax6fromc10
19-Dec-18 ax9dgen   ax6dgen
19-Dec-18 ax9       xxxax6
19-Dec-18 ax7w      xxxax11w
19-Dec-18 ax7dgen   xxxax11dgen
19-Dec-18 ax7-pm2   ax11-pm2
19-Dec-18 ax7-pm    ax11-pm
19-Dec-18 ax6w      ax10w
19-Dec-18 ax6o      axc7
19-Dec-18 ax67to7   axc711to11
19-Dec-18 ax67to6   axc711toc7
19-Dec-18 ax67      axc711
19-Dec-18 ax6       xxxax10
19-Dec-18 ax5o      axc4
19-Dec-18 ax5       xxxax4
19-Dec-18 ax4sp1    axc5sp1
19-Dec-18 ax46to6   axc5c7toc7
19-Dec-18 ax46to4   axc5c7toc5
19-Dec-18 ax467to7  axc5c711to11
19-Dec-18 ax467to6  axc5c711toc7
19-Dec-18 ax467to4  axc5c711toc5
19-Dec-18 ax467     axc5c711
19-Dec-18 ax46      axc5c7
19-Dec-18 ax4567to7 axc5c4c711to11
19-Dec-18 ax4567to6 axc5c4c711toc7
19-Dec-18 ax4567to5 axc5c4c711toc4
19-Dec-18 ax4567to4 axc5c4c711toc5
19-Dec-18 ax4567    axc5c4c711
19-Dec-18 ax4       axc5
19-Dec-18 ax17o     ax5ALT
19-Dec-18 ax17eq    ax5eq
19-Dec-18 ax17el    ax5el
19-Dec-18 ax17e     ax5e
19-Dec-18 ax172     ax52
19-Dec-18 ax15      axc14
19-Dec-18 ax13dfeq  ax8dfeq
19-Dec-18 ax12o     axc9
19-Dec-18 ax11wlem  ax13wlem
19-Dec-18 ax11wdemo ax13wdemo
19-Dec-18 ax11w     ax13w
19-Dec-18 ax11vALT  ax13vALT
19-Dec-18 ax11v2-o  ax13v2-o
19-Dec-18 ax11v2    ax13v2
19-Dec-18 ax11v     ax13v
19-Dec-18 ax11o     axc15
19-Dec-18 ax11indn  ax13indn
19-Dec-18 ax11indi  ax13indi
19-Dec-18 ax11indalem ax13indalem
19-Dec-18 ax11inda2ALT ax13inda2ALT
19-Dec-18 ax11inda2 ax13inda2
19-Dec-18 ax11inda  ax13inda
19-Dec-18 ax11i     ax13i
19-Dec-18 ax11f     ax13f
19-Dec-18 ax11eq    ax13eq
19-Dec-18 ax11el    ax13el
19-Dec-18 ax11dgen  ax13dgen
19-Dec-18 ax11b     ax13b
19-Dec-18 ax11a2-o  ax13a2-o
19-Dec-18 ax11a2    ax13a2
19-Dec-18 ax11      ax13
19-Dec-18 ax10o2    axc112
19-Dec-18 ax10o-o   axc11-o
19-Dec-18 ax10o     axc11
19-Dec-18 ax10lem2  axc11nlem2
19-Dec-18 ax10lem1  axc11nlem1
19-Dec-18 ax10from10o axc11nfromc11
19-Dec-18 ax10ext   axc11next
19-Dec-18 ax10-16   axc11n-16
19-Dec-18 ax10      axc11n
19-Dec-18 a9ev      a6ev
19-Dec-18 a9er      a6er
19-Dec-18 a9e2ndeqVD a6e2ndeqVD
19-Dec-18 a9e2ndeqALT a6e2ndeqALT
19-Dec-18 a9e2ndeq  a6e2ndeq
19-Dec-18 a9e2ndVD  a6e2ndVD
19-Dec-18 a9e2ndALT a6e2ndALT
19-Dec-18 a9e2nd    a6e2nd
19-Dec-18 a9e2eqVD  a6e2eqVD
19-Dec-18 a9e2eq    a6e2eq
19-Dec-18 a9e       a6e
19-Dec-18 a7s       a11s
19-Dec-18 a6e       a10e
19-Dec-18 a5i-o     a4i-o
19-Dec-18 a5i       a4i
19-Dec-18 a17d      a5d
19-Dec-18 3ax5VD    3ax4VD
19-Dec-18 3ax5      3ax4
19-Dec-18 2ax17     2ax5
19-Dec-18 ax-17     ax-5
19-Dec-18 ax-16     ax-c16
19-Dec-18 ax-15     ax-c14
19-Dec-18 ax-14     ax-9
19-Dec-18 ax-13     ax-8
19-Dec-18 ax-12o    ax-c9
19-Dec-18 ax-11o    ax-c15
19-Dec-18 ax-11     xxxax-13
19-Dec-18 ax-10o    ax-c11
19-Dec-18 ax-10     ax-c11n
19-Dec-18 ax-9o     ax-c10
19-Dec-18 ax-9      ax-6
19-Dec-18 ax-8      ax-7
19-Dec-18 ax-7      xxxax-11
19-Dec-18 ax-6o     ax-c7
19-Dec-18 ax-6      xxxax-10
19-Dec-18 ax-5o     ax-c4
19-Dec-18 ax-5      ax-4
19-Dec-18 ax-4      ax-c5
 1-Dec-18 hashimarn [same]      moved from AV's mathbox to main set.mm
 1-Dec-18 hashimarni [same]     moved from AV's mathbox to main set.mm
 1-Dec-18 hashfzdm  [same]      moved from AV's mathbox to main set.mm
 1-Dec-18 fz0hash   [same]      moved from AV's mathbox to main set.mm
 1-Dec-18 hashss    [same]      moved from AV's mathbox to main set.mm
 1-Dec-18 euhash1   [same]      moved from AV's mathbox to main set.mm
 1-Dec-18 hashfz0   [same]      moved from AV's mathbox to main set.mm
 1-Dec-18 ffzohash  [same]      moved from AV's mathbox to main set.mm
 1-Dec-18 hashresfn [same]      moved from TA's mathbox to main set.mm
 1-Dec-18 dmhashres [same]      moved from TA's mathbox to main set.mm
 1-Dec-18 fneq12    [same]      moved from TA's mathbox to main set.mm
30-Nov-18 ceilingval ceilval    moved from DAW's mathbox to main set.mm
30-Nov-18 ceilingcl ceilcl      moved from DAW's mathbox to main set.mm
30-Nov-18 df-ceiling df-ceil    moved from DAW's mathbox to main set.mm
30-Nov-18 modvalr   [same]      moved from AV's mathbox to main set.mm
30-Nov-18 flpmodeq  [same]      moved from AV's mathbox to main set.mm
30-Nov-18 modvalp1  [same]      moved from AV's mathbox to main set.mm
30-Nov-18 modm1p1mod0 [same]    moved from AV's mathbox to main set.mm
30-Nov-18 modltm1p1mod [same]   moved from AV's mathbox to main set.mm
30-Nov-18 modifeq2int [same]    moved from AV's mathbox to main set.mm
30-Nov-18 2txmodxeq0 [same]     moved from AV's mathbox to main set.mm
30-Nov-18 nn0nndivcl [same]     moved from AV's mathbox to main set.mm
30-Nov-18 nn0ge0div [same]      moved from AV's mathbox to main set.mm
30-Nov-18 fldivnn0  [same]      moved from AV's mathbox to main set.mm
30-Nov-18 refldivcl [same]      moved from AV's mathbox to main set.mm
30-Nov-18 fldivle   [same]      moved from AV's mathbox to main set.mm
30-Nov-18 fldivnn0le [same]     moved from AV's mathbox to main set.mm
30-Nov-18 flltdivnn0lt [same]   moved from AV's mathbox to main set.mm
30-Nov-18 tdifltdiv [same]      moved from AV's mathbox to main set.mm
30-Nov-18 npcan1    [same]      moved from AV's mathbox to main set.mm
25-Nov-18 swrdvalodmlem ssfzoulel
24-Nov-18 modprm1div [same]     moved from AV's mathbox to main set.mm
24-Nov-18 modprminv [same]      moved from AV's mathbox to main set.mm
24-Nov-18 modprminveq [same]    moved from AV's mathbox to main set.mm
24-Nov-18 reumodprminv [same]   moved from AV's mathbox to main set.mm
24-Nov-18 modprm0   [same]      moved from AV's mathbox to main set.mm
24-Nov-18 nnnn0modprm0 [same]   moved from AV's mathbox to main set.mm
24-Nov-18 modprmn0modprm0 [same] moved from AV's mathbox to main set.mm
24-Nov-18 cshco     [same]      moved from AV's mathbox to main set.mm
24-Nov-18 swrdco    [same]      moved from AV's mathbox to main set.mm
24-Nov-18 lswco     [same]      moved from AV's mathbox to main set.mm
24-Nov-18 repsco    [same]      moved from AV's mathbox to main set.mm
24-Nov-18 df-csh    [same]      moved (together with corresponding theorems)
                                      from AV's mathbox to main set.mm
24-Nov-18 prmgt1    [same]      moved from AV's mathbox to main set.mm
24-Nov-18 prmm2nn0  [same]      moved from AV's mathbox to main set.mm
24-Nov-18 modaddmulmod [same]   moved from AV's mathbox to main set.mm
24-Nov-18 modeqmodmin [same]    moved from AV's mathbox to main set.mm
24-Nov-18 modmulmod [same]      moved from AV's mathbox to main set.mm
24-Nov-18 modaddmodlo [same]    moved from AV's mathbox to main set.mm
24-Nov-18 modaddmodup [same]    moved from AV's mathbox to main set.mm
24-Nov-18 2submod   [same]      moved from AV's mathbox to main set.mm
24-Nov-18 modsubmodmod [same]   moved from AV's mathbox to main set.mm
24-Nov-18 modsubmod [same]      moved from AV's mathbox to main set.mm
24-Nov-18 modadd2mod [same]      moved from AV's mathbox to main set.mm
24-Nov-18 addmodid  [same]      moved from AV's mathbox to main set.mm
24-Nov-18 modaddmod [same]      moved from AV's mathbox to main set.mm
24-Nov-18 zmodidfzoimp [same]   moved from AV's mathbox to main set.mm
24-Nov-18 zmodidfzo [same]      moved from AV's mathbox to main set.mm
24-Nov-18 modidmul0 [same]      moved from AV's mathbox to main set.mm
24-Nov-18 modid0    [same]      moved from AV's mathbox to main set.mm
24-Nov-18 zmodfzp1  [same]      moved from AV's mathbox to main set.mm
24-Nov-18 fzonfzoufzol [same]   moved from AV's mathbox to main set.mm
24-Nov-18 fzo0sn0fzo1 [same]    moved from AV's mathbox to main set.mm
24-Nov-18 elfzodifsumelfzo [same] moved from AV's mathbox to main set.mm
24-Nov-18 ubmelfzo  [same]      moved from AV's mathbox to main set.mm
24-Nov-18 fzofzim   [same]      moved from AV's mathbox to main set.mm
24-Nov-18 fzonmapblen [same]    moved from AV's mathbox to main set.mm
24-Nov-18 fzo1fzo0n0 [same]     moved from AV's mathbox to main set.mm
24-Nov-18 fzossnn0  [same]      moved from AV's mathbox to main set.mm
24-Nov-18 fzo0ss1   [same]      moved from AV's mathbox to main set.mm
24-Nov-18 elfz1b    [same]      moved from AV's mathbox to main set.mm
24-Nov-18 cnambmcpb nnpcan      moved from AV's mathbox to main set.mm
24-Nov-18 eqneqall  [same]      moved from AV's mathbox to main set.mm
24-Nov-18 swdeq     swrdsymbeq
24-Nov-18 swrdltnd  swrdlend
24-Nov-18 wrdsymb   wrdsymbcl
23-Nov-18 swrd0len0 [same]      moved from AV's mathbox to main set.mm
23-Nov-18 swrd0fv0  [same]      moved from AV's mathbox to main set.mm
23-Nov-18 swrdtrcfv [same]      moved from AV's mathbox to main set.mm
23-Nov-18 swrdtrcfv0 [same]     moved from AV's mathbox to main set.mm
23-Nov-18 wrdcctswrd [same]     moved from AV's mathbox to main set.mm
23-Nov-18 lencctswrd [same]     moved from AV's mathbox to main set.mm
23-Nov-18 lenrevcctswrd [same]  moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatwrd [same]    moved from AV's mathbox to main set.mm
23-Nov-18 ccats1swrdeq [same]   moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatfn [same]     moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatin1 [same]    moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatin12lem1 [same] moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatin12lem2a [same] moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatin12lem2b [same] moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatin2 [same]    moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatin12lem2c [same] moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatin12lem2 [same] moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatin12lem3 [same] moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatin12 [same]   moved from AV's mathbox to main set.mm
23-Nov-18 swrdccat3 [same]      moved from AV's mathbox to main set.mm
23-Nov-18 swrdccat  [same]      moved from AV's mathbox to main set.mm
23-Nov-18 swrdccat3a [same]     moved from AV's mathbox to main set.mm
23-Nov-18 swrdccat3blem [same]  moved from AV's mathbox to main set.mm
23-Nov-18 swrdccat3b [same]     moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatid [same]     moved from AV's mathbox to main set.mm
23-Nov-18 ccats1swrdeqbi [same] moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatin1d [same]   moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatin2d [same]   moved from AV's mathbox to main set.mm
23-Nov-18 swrdccatin12d [same]  moved from AV's mathbox to main set.mm
23-Nov-18 ccatws1lenrev [same]  moved from AV's mathbox to main set.mm
23-Nov-18 ccatws1n0 [same]      moved from AV's mathbox to main set.mm
23-Nov-18 ccatws1ls [same]      moved from AV's mathbox to main set.mm
23-Nov-18 lswccatn0lsw [same]   moved from AV's mathbox to main set.mm
23-Nov-18 lswccat0lsw [same]    moved from AV's mathbox to main set.mm
23-Nov-18 lswccats1 [same]      moved from AV's mathbox to main set.mm
23-Nov-18 ccatw2s1ccatws2 [same] moved from AV's mathbox to main set.mm
23-Nov-18 ccatw2s1ass [same]    moved from AV's mathbox to main set.mm
23-Nov-18 wrdlenccats1lenm1 [same] moved from AV's mathbox to main set.mm
23-Nov-18 ccatval1lsw [same]    moved from AV's mathbox to main set.mm
23-Nov-18 ccatfv0   [same]      moved from AV's mathbox to main set.mm
23-Nov-18 ccatsymb  [same]      moved from AV's mathbox to main set.mm
23-Nov-18 ccatvalfn [same]      moved from AV's mathbox to main set.mm
23-Nov-18 elfzelfzccat [same]   moved from AV's mathbox to main set.mm
23-Nov-18 lswlgt0cl [same]      moved from AV's mathbox to main set.mm
23-Nov-18 wrdlenge2n0 [same]    moved from AV's mathbox to main set.mm
23-Nov-18 elfz0fzfz0 [same]     moved from AV's mathbox to main set.mm
23-Nov-18 elfzonelfzo [same]    moved from AV's mathbox to main set.mm
23-Nov-18 elfzomelpfzo [same]   moved from AV's mathbox to main set.mm
23-Nov-18 elfzmlbm  [same]      moved from AV's mathbox to main set.mm
23-Nov-18 elfzmlbp  [same]      moved from AV's mathbox to main set.mm
23-Nov-18 fzmmmeqm  [same]      moved from AV's mathbox to main set.mm
23-Nov-18 fz0fzelfz0 [same]     moved from AV's mathbox to main set.mm
23-Nov-18 fz0fzdiffz0 [same]    moved from AV's mathbox to main set.mm
23-Nov-18 ltleletr  [same]      moved from AV's mathbox to main set.mm
23-Nov-18 leaddle0  [same]      moved from AV's mathbox to main set.mm
23-Nov-18 pncan1    [same]      moved from AV's mathbox to main set.mm
23-Nov-18 2if2      [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrdf     [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrdrn    [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrdn0    [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrdltnd  [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrdnd    [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrd0     [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrdrlen  [same]      moved from AV's mathbox to main set.mm
18-Nov-18 addlenrevswrd [same]  moved from AV's mathbox to main set.mm
18-Nov-18 addlenswrd [same]     moved from AV's mathbox to main set.mm
18-Nov-18 swrdvalfn [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrdvalodmlem [same]  moved from AV's mathbox to main set.mm
18-Nov-18 swrdvalodm2 [same]    moved from AV's mathbox to main set.mm
18-Nov-18 swrdvalodm [same]     moved from AV's mathbox to main set.mm
18-Nov-18 swrd0fv   [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrd0fvlsw [same]     moved from AV's mathbox to main set.mm
18-Nov-18 swrdeq    [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swdeq     [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrdspsleq [same]     moved from AV's mathbox to main set.mm
18-Nov-18 wrdeqswrdlsw [same]   moved from AV's mathbox to main set.mm
18-Nov-18 swrdtrcfvl [same]     moved from AV's mathbox to main set.mm
18-Nov-18 swrdlsw   [same]      moved from AV's mathbox to main set.mm
18-Nov-18 2swrdeqwrdeq [same]   moved from AV's mathbox to main set.mm
18-Nov-18 2swrd1eqwrdeq [same]  moved from AV's mathbox to main set.mm
18-Nov-18 disjxwrd  [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrdswrdlem [same]    moved from AV's mathbox to main set.mm
18-Nov-18 swrdswrd  [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrd0swrd [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrdswrd0 [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrd0swrd0 [same]     moved from AV's mathbox to main set.mm
18-Nov-18 swrd0swrdid [same]    moved from AV's mathbox to main set.mm
18-Nov-18 s2eq2s1eq [same]      moved from AV's mathbox to main set.mm
18-Nov-18 s2eq2seq  [same]      moved from AV's mathbox to main set.mm
18-Nov-18 swrd2lsw  [same]      moved from AV's mathbox to main set.mm
18-Nov-18 2swrd2eqwrdeq [same]  moved from AV's mathbox to main set.mm
18-Nov-18 hashgt0n0 [same]      moved from AV's mathbox to main set.mm
18-Nov-18 fzonlt0   [same]      moved from AV's mathbox to main set.mm
18-Nov-18 elfzo0le  [same]      moved from AV's mathbox to main set.mm
18-Nov-18 fzoshftral [same]     moved from AV's mathbox to main set.mm
18-Nov-18 fzosplitsnm1 [same]   moved from AV's mathbox to main set.mm
18-Nov-18 elfzo0z   [same]      moved from AV's mathbox to main set.mm
18-Nov-18 uzsubsubfz [same]     moved from AV's mathbox to main set.mm
18-Nov-18 uzsubsubfz1 [same]    moved from AV's mathbox to main set.mm
18-Nov-18 ige2m1fz1 [same]      moved from AV's mathbox to main set.mm
18-Nov-18 1eluzge0  [same]      moved from AV's mathbox to main set.mm
18-Nov-18 zletr     [same]      moved from AV's mathbox to main set.mm
18-Nov-18 elfzelfzelfz [same]   moved from AV's mathbox to main set.mm
18-Nov-18 0elfz     [same]      moved from AV's mathbox to main set.mm
18-Nov-18 uzletr    [same]      moved from AV's mathbox to main set.mm
18-Nov-18 sub1m1    [same]      moved from AV's mathbox to main set.mm
18-Nov-18 jaoi3     [same]      moved from AV's mathbox to main set.mm
18-Nov-18 bcxmaslem2 add32r     moved from PC's mathbox to main set.mm
16-Nov-18 reps      [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repsundef [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repsconst [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repsf     [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repswsymb [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repswlen  [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repsw0    [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repsdf2   [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repswsymball [same]   moved from AV's mathbox to main set.mm
16-Nov-18 repswsymballbi [same] moved from AV's mathbox to main set.mm
16-Nov-18 repswfsts [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repswlsw  [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repsw1    [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repswswrd [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repswccat [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repswrevw [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repsw2    [same]      moved from AV's mathbox to main set.mm
16-Nov-18 repsw3    [same]      moved from AV's mathbox to main set.mm
16-Nov-18 lsw       [same]      moved from AV's mathbox to main set.mm
16-Nov-18 lsw0      [same]      moved from AV's mathbox to main set.mm
16-Nov-18 lsw0g     [same]      moved from AV's mathbox to main set.mm
16-Nov-18 lsw1      [same]      moved from AV's mathbox to main set.mm
16-Nov-18 lsws1     [same]      moved from AV's mathbox to main set.mm
16-Nov-18 lswcl     [same]      moved from AV's mathbox to main set.mm
16-Nov-18 csbwrdg   [same]      moved from AV's mathbox to main set.mm
16-Nov-18 0wrd0     [same]      moved from AV's mathbox to main set.mm
16-Nov-18 iswrddm0  [same]      moved from AV's mathbox to main set.mm
16-Nov-18 ffz0iswrd [same]      moved from AV's mathbox to main set.mm
16-Nov-18 iswrdbi   [same]      moved from AV's mathbox to main set.mm
16-Nov-18 wrdlenfi  [same]      moved from AV's mathbox to main set.mm
16-Nov-18 wrdsymb0  [same]      moved from AV's mathbox to main set.mm
16-Nov-18 wrdlenge1n0 [same]    moved from AV's mathbox to main set.mm
16-Nov-18 wrdsymb1  [same]      moved from AV's mathbox to main set.mm
16-Nov-18 fstwrdne  [same]      moved from AV's mathbox to main set.mm
16-Nov-18 fstwrdne0 [same]      moved from AV's mathbox to main set.mm
16-Nov-18 eqwrd     [same]      moved from AV's mathbox to main set.mm
16-Nov-18 wrdl1s1   [same]      moved from AV's mathbox to main set.mm
16-Nov-18 wrdlen2i  [same]      moved from AV's mathbox to main set.mm
16-Nov-18 wrd2pr2op [same]      moved from AV's mathbox to main set.mm
16-Nov-18 wrdlen2   [same]      moved from AV's mathbox to main set.mm
16-Nov-18 wrdlen2s2 [same]      moved from AV's mathbox to main set.mm
16-Nov-18 fseq0hash [same]      moved from AV's mathbox to main set.mm
16-Nov-18 ssfzo12   [same]      moved from AV's mathbox to main set.mm
16-Nov-18 ssfzo12bi [same]      moved from AV's mathbox to main set.mm
16-Nov-18 ifeqda    [same]      moved from AV's mathbox to main set.mm
16-Nov-18 nn0readdcl [same]     moved from AV's mathbox to main set.mm
16-Nov-18 nn0p1gt0  [same]      moved from AV's mathbox to main set.mm
16-Nov-18 nnm1ge0   [same]      moved from AV's mathbox to main set.mm
16-Nov-18 elfzonn0  [same]      moved from AV's mathbox to main set.mm
16-Nov-18 ubmelm1fzo [same]     moved from AV's mathbox to main set.mm
16-Nov-18 opth1g    [same]      moved from AV's mathbox to main set.mm
16-Nov-18 fz0       [same]      moved from AV's mathbox to main set.mm
16-Nov-18 hashneq0  [same]      moved from AV's mathbox to main set.mm
16-Nov-18 hashfirdm [same]      moved from AV's mathbox to main set.mm
16-Nov-18 zgt0ge1   [same]      moved from AV's mathbox to main set.mm
16-Nov-18 sbcrel    [same]      moved from AV's mathbox to main set.mm
16-Nov-18 sbcfung   [same]      moved from AV's mathbox to main set.mm
16-Nov-18 sbcfng    [same]      moved from AV's mathbox to main set.mm
16-Nov-18 sbcfg     [same]      moved from AV's mathbox to main set.mm
16-Nov-18 csbdm     [same]      moved from AV's mathbox to main set.mm
16-Nov-18 0mnnnnn0  [same]      moved from AV's mathbox to main set.mm
15-Nov-18 fzocatel  [same]      moved from TA's mathbox to main set.mm
18-Oct-18 elfzomin  [same]      moved from AV's mathbox to main set.mm
14-Oct-18 wrdfn     [same]      moved from AV's mathbox to main set.mm
14-Oct-18 wrdsymb   [same]      moved from AV's mathbox to main set.mm
14-Oct-18 ccatws1cl [same]      moved from AV's mathbox to main set.mm
14-Oct-18 ccatws1len [same]     moved from AV's mathbox to main set.mm
14-Oct-18 ccats1val1 [same]     moved from AV's mathbox to main set.mm
14-Oct-18 ccats1val2 [same]     moved from AV's mathbox to main set.mm
12-Oct-18 eldifpr   [same]      moved from TA's mathbox to main set.mm
12-Oct-18 eldiftp   [same]      moved from TA's mathbox to main set.mm
12-Oct-18 2ndnpr    [same]      moved from TA's mathbox to main set.mm
12-Oct-18 1stnpr    [same]      moved from TA's mathbox to main set.mm
12-Oct-18 rnpropg   [same]      moved from TA's mathbox to main set.mm
12-Oct-18 r19.41vv  [same]      moved from TA's mathbox to main set.mm
12-Oct-18 eluzelcn  [same]      moved from GS's mathbox to main set.mm
12-Oct-18 modaddabs [same]      moved from PC's mathbox to main set.mm
12-Oct-18 zmodid2   [same]      moved from PC's mathbox to main set.mm
12-Oct-18 3mix1d    [same]      moved from SF's mathbox to main set.mm
12-Oct-18 3mix2d    [same]      moved from SF's mathbox to main set.mm
12-Oct-18 3mix3d    [same]      moved from SF's mathbox to main set.mm
12-Oct-18 2nexaln   [same]      moved from ATS's mathbox to main set.mm
12-Oct-18 2exnaln   [same]      moved from ATS's mathbox to main set.mm
11-Oct-18 csbeq     csbeq2      moved from GM's mathbox to main set.mm
11-Oct-18 sbcbi2    [same]      moved from GM's mathbox to main set.mm
11-Oct-18 elrab3t   [same]      moved from TA's mathbox to main set.mm
11-Oct-18 rabbidva2 [same]      moved from TA's mathbox to main set.mm
11-Oct-18 elfzp1b   [same]      moved from PC's mathbox to main set.mm
11-Oct-18 frabbijd  f1oresrab   moved from TA's mathbox to main set.mm
11-Oct-18 dveeq2-o16 ---        deleted; use dveeq2
25-Sep-18 pm11.07   [same]      revised to match PM
24-Sep-18 supval2   [same]      revised for new df-riota (eliminated a $e hyp)
24-Sep-18 sgnmnf    [same]      moved from DAW's mathbox to main set.mm
24-Sep-18 sgnn      [same]      moved from DAW's mathbox to main set.mm
24-Sep-18 sgnpnf    [same]      moved from DAW's mathbox to main set.mm
24-Sep-18 sgn1      [same]      moved from DAW's mathbox to main set.mm
24-Sep-18 sgnrrp    [same]      moved from DAW's mathbox to main set.mm
24-Sep-18 sgnp      [same]      moved from DAW's mathbox to main set.mm
24-Sep-18 sgn0      [same]      moved from DAW's mathbox to main set.mm
24-Sep-18 sgnval    [same]      moved from DAW's mathbox to main set.mm
24-Sep-18 df-sgn    [same]      moved from DAW's mathbox to main set.mm
22-Sep-18 sbcom3    [same]      moved from GM's mathbox; revised by WL
16-Sep-18 riotasvd  [same]      moved from main set.mm to NM's mathbox
16-Sep-18 riotasv2d [same]      moved from main set.mm to NM's mathbox
16-Sep-18 riotasv2s [same]      moved from main set.mm to NM's mathbox
16-Sep-18 riotasv   [same]      moved from main set.mm to NM's mathbox
16-Sep-18 riotasv3d [same]      moved from main set.mm to NM's mathbox
15-Sep-18 tosglblem [same]      revised for new df-riota
15-Sep-18 toslublem [same]      revised for new df-riota
14-Sep-18 isatl     [same]      revised for new df-riota
14-Sep-18 df-atl    [same]      revised for new df-riota
13-Sep-18 csbuni2   ---         deleted; use csbun
13-Sep-18 csbung    ---         deleted; use csbun
13-Sep-18 sbcopg    csbopg      moved from DF's mathbox to main set.mm
13-Sep-18 sbcuni    csbuni2     moved from DF's mathbox to main set.mm
13-Sep-18 sbcung    csbung      moved from DF's mathbox to main set.mm
13-Sep-18 riotaundb riotaund    revised for new df-riota
13-Sep-18 riotaclb  [same]      revised for new df-riota
13-Sep-18 riotaprc  ---         deleted
13-Sep-18 isclati   ---         deleted; use isclat
13-Sep-18 df-oposet [same]      revised for new df-riota
13-Sep-18 ple1      [same]      revised for new df-riota
13-Sep-18 p0le      [same]      revised for new df-riota
12-Sep-18 islati    ---         deleted; use islat
12-Sep-18 isclat    [same]      revised for new df-riota
12-Sep-18 df-clat   [same]      revised for new df-riota
12-Sep-18 islat     [same]      revised for new df-riota
12-Sep-18 df-lat    [same]      revised for new df-riota
12-Sep-18 meetcom   [same]      revised for new df-riota
12-Sep-18 joincom   [same]      revised for new df-riota
12-Sep-18 meetle    [same]      revised for new df-riota
12-Sep-18 lemeet2   [same]      revised for new df-riota
12-Sep-18 lemeet1   [same]      revised for new df-riota
12-Sep-18 meetlem   [same]      revised for new df-riota
12-Sep-18 joinlem   [same]      revised for new df-riota
11-Sep-18 meetval2  [same]      revised for new df-riota
11-Sep-18 joinval2  [same]      revised for new df-riota
 9-Sep-18 meetfval2 [same]      revised for new df-riota
 9-Sep-18 meetfval  [same]      revised for new df-riota
 9-Sep-18 joinfval2 [same]      revised for new df-riota
 9-Sep-18 joinfval  [same]      revised for new df-riota
 9-Sep-18 glbval    [same]      revised for new df-riota
 9-Sep-18 lubval    [same]      revised for new df-riota
 8-Sep-18 df-meet   [same]      revised for new df-riota
 8-Sep-18 df-join   [same]      revised for new df-riota
 7-Sep-18 lubid     [same]      revised - put in deduction form
 7-Sep-18 glble     [same]      revised for new df-riota
 7-Sep-18 lubid     [same]      revised for new df-riota
 7-Sep-18 luble     [same]      revised for new df-riota
 7-Sep-18 lubprop   [same]      revised for new df-riota
 6-Sep-18 glbfval   [same]      revised for new df-riota
 6-Sep-18 lubfval   [same]      revised for new df-riota
 6-Sep-18 df-glb    [same]      revised for new df-riota
 6-Sep-18 df-lub    [same]      revised for new df-riota
 2-Sep-18 riotaprc  ---         deleted; use df-riota
 2-Sep-18 csbriotag ---         deleted; use csbriota
 2-Sep-18 riotaiota ---         deleted; use df-riota
 2-Sep-18 csbriota  [same]      revised for new df-riota
 2-Sep-18 df-riota  [same]      revised
28-Aug-18 laps      ---         deleted
28-Aug-18 lanfwcl   ---         deleted
28-Aug-18 laspwcl   ---         deleted
28-Aug-18 isla      ---         deleted
28-Aug-18 spweu     ---         deleted
28-Aug-18 spwpr4c   ---         deleted
28-Aug-18 spwpr4    ---         deleted
28-Aug-18 spwcl     ---         deleted
28-Aug-18 spwex     ---         deleted
28-Aug-18 spwval    ---         deleted
28-Aug-18 spwval2   ---         deleted
28-Aug-18 df-lar    ---         deleted
28-Aug-18 df-nfw    ---         deleted
28-Aug-18 df-spw    ---         deleted
28-Aug-18 cla       ---         deleted
28-Aug-18 cinf      ---         deleted
28-Aug-18 cspw      ---         deleted (use df-poset functions)
28-Aug-18 riotassuni ---        deleted
25-Aug-18 sbcf      sbcfg
25-Aug-18 sbcfn     sbcfng
25-Aug-18 sbcfun    sbcfung
25-Aug-18 sbcssVD   sbcssgVD
24-Aug-18 sbc3org   ---         deleted; use sbc3or
24-Aug-18 csbdmg    ---         deleted; use csbdm
24-Aug-18 sbc4rexg  ---         deleted; use sbc4rex
24-Aug-18 sbc2rexg  ---         deleted; use sbc2rex
24-Aug-18 2sbcrex   [same]      revised - removed redundant hypotheses
24-Aug-18 csbdmg    ---         deleted; use csbdm
24-Aug-18 sbc3org   ---         deleted; use sbc3or
23-Aug-18 sbcssg    [same]      renamed variables
23-Aug-18 sbcss     sbcssg
23-Aug-18 csbov12g  [same]      renamed variables
23-Aug-18 csbov2g   [same]      renamed variables
23-Aug-18 csbov1g   [same]      renamed variables
23-Aug-18 csbovg    ---         deleted; use csbov123
23-Aug-18 xp0r      0xp
23-Aug-18 fv01      0fv
23-Aug-18 csbiotag  ---         deleted; use csbiota
23-Aug-18 csbresg   ---         deleted; use csbres
23-Aug-18 csbxpg    ---         deleted; use csbxp
23-Aug-18 csbrng    ---         deleted; use csbrn
23-Aug-18 csbrn     csbren
23-Aug-18 csbcnvg   ---         deleted; use csbcnv
23-Aug-18 breqn0    brne0       moved from AV's mathbox to main set.mm
23-Aug-18 csbopabg  ---         deleted; use csbopab
22-Aug-18 csbunig   ---         deleted; use csbuni
22-Aug-18 sbcbr2g   [same]      renamed variables
22-Aug-18 sbcbr1g   [same]      renamed variables
22-Aug-18 sbcbr12g  [same]      renamed variables
22-Aug-18 sbcbrg     ---        deleted; use sbcbr123
22-Aug-18 sbcsng    ---         deleted; use ralsnsg
22-Aug-18 ralsns    ralsnsg
22-Aug-18 rexsns    [same]      revised - removed unnecessary antecent
22-Aug-18 csbcnvg   [same]      moved from AV's mathbox to main set.mm
20-Aug-18 csbima12gALT ---      deleted; use csbima12
20-Aug-18 csbima12g ---         deleted; use csbima12
20-Aug-18 csbfvg    ---         deleted; use csbfv
20-Aug-18 csbfv12gALT ---       deleted; use csbfv12
20-Aug-18 csbfv12g  ---         deleted; use csbfv12
19-Aug-18 csbifg    ---         deleted; use csbif
19-Aug-18 exan3     exsimpr     moved from RM's mathbox to main set.mm
19-Aug-18 iuneq12df [same]      moved from TA's mathbox to main set.mm
19-Aug-18 rexeqbid  [same]      moved from TA's mathbox to main set.mm
19-Aug-18 raleqbid  [same]      moved from TA's mathbox to main set.mm
19-Aug-18 csbabg    ---         deleted; use csbab
18-Aug-18 sbccsb2g  ---         deleted; use sbccsb2
18-Aug-18 sbccsbg   ---         deleted; use sbccsb
18-Aug-18 csbidmg   ---         deleted; use csbidm
18-Aug-18 csbing    ---         deleted; use csbin
18-Aug-18 csbcomg   ---         deleted; use csbcom
18-Aug-18 sbcel2g   ---         deleted; use sbcel2
18-Aug-18 sbcne12g  ---         deleted; use sbcne12
18-Aug-18 sbcel12g  ---         deleted; use sbcel12
18-Aug-18 sbcreug   ---         deleted; use sbcreu
18-Aug-18 sbcrexg   ---         deleted; use sbcrex
18-Aug-18 sbcrext   [same]      revised - removed unnecessary antecedent
17-Aug-18 sbcimdv   [same]      revised - removed unnecessary antecedent
17-Aug-18 sbc3ang   ---         deleted; use sbc3an
17-Aug-18 sbcel1gv  ---         deleted; use sbcel1v
17-Aug-18 eqsbc3r   [same]      renamed variables
17-Aug-18 sbcexg    ---         deleted; use sbcex
17-Aug-18 sbcalg    ---         deleted; use sbcal
17-Aug-18 csbex     [same]      revised - removed unnecessary hypothesis
17-Aug-18 csbexg    [same]      revised - removed unnecessary antecedent
17-Aug-18 sbcorg    ---         deleted; use sbcor
17-Aug-18 sbcang    ---         deleted; use sbcan
 5-Aug-18 undifv    unvdif
30-Jun-18 sbceq1dd  [same]      revised
30-Jun-18 sbceq1d   [same]      revised
 9-Jun-18 elnn0fz0  nn0fz0      moved from SF's mathbox to main set.mm
12-May-18 intn3an1d [same]      moved from FL's mathbox to main set.mm
12-May-18 intn3an2d [same]      moved from FL's mathbox to main set.mm
12-May-18 intn3an3d [same]      moved from FL's mathbox to main set.mm
12-May-18 negcmpprcal1 nrexralim moved from FL's mathbox to main set.mm
12-May-18 islp3     [same]      moved from FL's mathbox to main set.mm
12-May-18 isunscov  infssuni    moved from FL's mathbox to main set.mm
12-May-18 bwt2      bwth        moved from FL's mathbox to main set.mm
22-Apr-18 ax10lem3  ax10o2
 8-Apr-18 elfzo1    [same]      moved from TA's mathbox to main set.mm
 8-Apr-18 fzossnn   [same]      moved from TA's mathbox to main set.mm
22-Mar-18 df-spthon [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
22-Mar-18 is2wlk    [same]      moved from AV's mathbox to main set.mm
22-Mar-18 2wlklem   [same]      moved from AV's mathbox to main set.mm
22-Mar-18 fz0tp     [same]      moved from AV's mathbox to main set.mm
22-Mar-18 tpssi     [same]      moved from AV's mathbox to main set.mm
22-Mar-18 fzo12sn   [same]      moved from AV's mathbox to main set.mm
22-Mar-18 usgranloopv [same]    moved from AV's mathbox to main set.mm
22-Mar-18 fvfundmfvn0 [same]    moved from AV's mathbox to main set.mm
22-Mar-18 f1o2ndf1  [same]      moved from AV's mathbox to main set.mm
22-Mar-18 fo2ndf    [same]      moved from AV's mathbox to main set.mm
22-Mar-18 f2ndf     [same]      moved from AV's mathbox to main set.mm
22-Mar-18 dfiunv2   [same]      moved from FL's mathbox to main set.mm
 6-Mar-18 ax10lem3  aevlem1
 6-Mar-18 ax10lem4  ax10lem3
17-Feb-18 ax10lem6  ax10lem4
17-Feb-18 ax10lem5  ax10lem3
17-Feb-18 ax10lem4  ax10lem2
17-Feb-18 ax10lem3  ---         deleted; use ax10
17-Feb-18 ax10lem2  ---         deleted; use ax10
23-Jan-18 ftp       [same]      moved from SO's mathbox to main set.mm
23-Jan-18 df-conngra [same]     moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
23-Jan-18 df-pthon  [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
23-Jan-18 df-trlon  [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
23-Jan-18 df-wlkon  [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
23-Jan-18 df-cycl   [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
23-Jan-18 df-crct   [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
23-Jan-18 df-spth   [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
23-Jan-18 df-pth    [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
23-Jan-18 df-trail  [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
23-Jan-18 df-wlk    [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
21-Jan-18 df-eupa   [same]      moved (together with corresponding theorems)
                                from MC's mathbox to main set.mm
21-Jan-18 df-vdgr   [same]      revised and moved (together with corresponding
                                theorems) from MC's mathbox to main set.mm
21-Jan-18 df-uvtx   [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
21-Jan-18 df-cusgra [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
21-Jan-18 df-nbgra  [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
20-Jan-18 df-usgra  [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
20-Jan-18 df-uslgra [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
20-Jan-18 df-umgra  [same]      moved (together with corresponding theorems)
                                from MC's mathbox to main set.mm
20-Jan-18 df-uhgra  [same]      moved (together with corresponding theorems)
                                from AV's mathbox to main set.mm
20-Jan-18 s4dom     [same]      moved from AV's mathbox to main set.mm
20-Jan-18 s4f1o     [same]      moved from AV's mathbox to main set.mm
20-Jan-18 f1oun2prg [same]      moved from AV's mathbox to main set.mm
20-Jan-18 s2f1o     [same]      moved from AV's mathbox to main set.mm
20-Jan-18 s4prop    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 s2prop    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 brfi1ind  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 brfi1uzind [same]     moved from AV's mathbox to main set.mm
20-Jan-18 brfi1indlem [same]    moved from AV's mathbox to main set.mm
20-Jan-18 hashtpg   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 hash2prb  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 hash2prde [same]      moved from AV's mathbox to main set.mm
20-Jan-18 hash2pr   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 hashgt12el2 [same]    moved from AV's mathbox to main set.mm
20-Jan-18 hashgt12el [same]     moved from AV's mathbox to main set.mm
20-Jan-18 hash1snb  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 hashdifsn [same]      moved from AV's mathbox to main set.mm
20-Jan-18 hashgt0elexb [same]   moved from AV's mathbox to main set.mm
20-Jan-18 hashgt0elex [same]    moved from AV's mathbox to main set.mm
20-Jan-18 hashle00  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 hashprb   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 elprchashprn2 [same]  moved from AV's mathbox to main set.mm
20-Jan-18 hashnn0n0nn [same]    moved from AV's mathbox to main set.mm
20-Jan-18 hashunx   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 hashinfxadd [same]    moved from AV's mathbox to main set.mm
20-Jan-18 hashrabrsn[same]      moved from AV's mathbox to main set.mm
20-Jan-18 hashnfinnn0 [same]    moved from AV's mathbox to main set.mm
20-Jan-18 hashvnfin [same]      moved from AV's mathbox to main set.mm
20-Jan-18 hashf1rn  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 hasheqf1oi [same]     moved from AV's mathbox to main set.mm
20-Jan-18 fiinfnf1o [same]      moved from AV's mathbox to main set.mm
20-Jan-18 hasheqf1o [same]      moved from AV's mathbox to main set.mm
20-Jan-18 hashv01gt1 [same]     moved from AV's mathbox to main set.mm
20-Jan-18 hashnemnf [same]      moved from AV's mathbox to main set.mm
20-Jan-18 hashnnn0genn0 [same]  moved from AV's mathbox to main set.mm
20-Jan-18 hashnn0pnf[same]      moved from AV's mathbox to main set.mm
20-Jan-18 bcn2p1    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 bcn2m1    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 bc0k      [same]      moved from AV's mathbox to main set.mm
20-Jan-18 injresinj [same]      moved from AV's mathbox to main set.mm
20-Jan-18 injresinjlem [same]   moved from AV's mathbox to main set.mm
20-Jan-18 elfznelfzob [same]    moved from AV's mathbox to main set.mm
20-Jan-18 elfznelfzo [same]     moved from AV's mathbox to main set.mm
20-Jan-18 fzo0to42pr [same]     moved from AV's mathbox to main set.mm
20-Jan-18 fzo0to3tp [same]      moved from AV's mathbox to main set.mm
20-Jan-18 fzo0to2pr [same]      moved from AV's mathbox to main set.mm
20-Jan-18 fzossrbm1 [same]      moved from AV's mathbox to main set.mm
20-Jan-18 fzon      [same]      moved from AV's mathbox to main set.mm
20-Jan-18 4fvwrd4   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 1fv       [same]      moved from AV's mathbox to main set.mm
20-Jan-18 xadd4d    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 nn0pnfge0 [same]      moved from AV's mathbox to main set.mm
20-Jan-18 nn0n0n1ge2b [same]    moved from AV's mathbox to main set.mm
20-Jan-18 nn0n0n1ge2 [same]     moved from AV's mathbox to main set.mm
20-Jan-18 nfielex   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 finresfin [same]      moved from AV's mathbox to main set.mm
20-Jan-18 isprmpt2  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 sprmpt2   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 brovmpt2ex [same]     moved from AV's mathbox to main set.mm
20-Jan-18 brovex    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 mpt2ndm0  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 mpt2xopoveqd [same]   moved from AV's mathbox to main set.mm
20-Jan-18 mpt2xopovel [same]    moved from AV's mathbox to main set.mm
20-Jan-18 mpt2xopoveq [same]    moved from AV's mathbox to main set.mm
20-Jan-18 mpt2xopynvov0 [same]  moved from AV's mathbox to main set.mm
20-Jan-18 mpt2xopxprcov0 [same] moved from AV's mathbox to main set.mm
20-Jan-18 mpt2xopx0ov0 [same]   moved from AV's mathbox to main set.mm
20-Jan-18 mpt2xopxnop0 [same]   moved from AV's mathbox to main set.mm
20-Jan-18 mpt2xopynvov0g [same] moved from AV's mathbox to main set.mm
20-Jan-18 mpt2xopn0yelv [same]  moved from AV's mathbox to main set.mm
20-Jan-18 bropopvvv [same]      moved from AV's mathbox to main set.mm
20-Jan-18 nssdmovg  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 brabv     [same]      moved from AV's mathbox to main set.mm
20-Jan-18 0neqopab  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 opabbrex  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 f1ocnvfvrneq [same]   moved from AV's mathbox to main set.mm
20-Jan-18 f1veqaeq  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 fvtp3g    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 fvtp2g    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 fvtp1g    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 fvpr2g    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 fvpr1g    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 ftpg      [same]      moved from AV's mathbox to main set.mm
20-Jan-18 eldmrexrnb [same]     moved from AV's mathbox to main set.mm
20-Jan-18 eldmrexrn [same]      moved from AV's mathbox to main set.mm
20-Jan-18 elrnrexdmb [same]     moved from AV's mathbox to main set.mm
20-Jan-18 elrnrexdm [same]      moved from AV's mathbox to main set.mm
20-Jan-18 f1oprg    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 fntpg     [same]      moved from AV's mathbox to main set.mm
20-Jan-18 funtpg    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 prnebg    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 prneimg   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 tppreqb   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 tpprceq3  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 tppreq3   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 rabrsn    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 disjpr2   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 exsnrex   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 difrab0eq [same]      moved from AV's mathbox to main set.mm
20-Jan-18 raldifb   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 ssrabeq   [same]      moved from AV's mathbox to main set.mm
20-Jan-18 elrabi    [same]      moved from AV's mathbox to main set.mm
20-Jan-18 nnel      [same]      moved from AV's mathbox to main set.mm
20-Jan-18 3biant1d  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 3bior2fd  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 3bior1fand [same]     moved from AV's mathbox to main set.mm
20-Jan-18 3bior1fd  [same]      moved from AV's mathbox to main set.mm
20-Jan-18 jaoi2     [same]      moved from AV's mathbox to main set.mm
18-Jan-18 prsspwg   [same]      changed _V in antecedents to variables
18-Jan-18 prsspwg   [same]      moved from TA's mathbox to main set.mm
18-Jan-18 pwundif2  ---         deleted from TA's mathbox; same as pwundif
18-Jan-18 prelpwi   [same]      moved from TA's mathbox to main set.mm
18-Jan-18 hashge1   [same]      moved from TA's mathbox to main set.mm
18-Jan-18 hashgt0   [same]      moved from TA's mathbox to main set.mm
18-Jan-18 hashge0   [same]      moved from TA's mathbox to main set.mm
30-Dec-17 rabfi     [same]      moved from TA's mathbox to main set.mm
30-Dec-17 infi      [same]      moved from TA's mathbox to main set.mm
26-Dec-17 addccncf  [same]      moved from JM's mathbox to main set.mm
16-Dec-17 opabex3d  [same]      moved from AV's mathbox to main set.mm
10-Dec-17 fnpr      [same]      changed hypotheses to "e. _V" instead of "e. V"
10-Dec-17 3m1e2     [same]      swapped equality arguments
10-Dec-17 repfuntw  fnpr        moved from FL's mathbox to main set.mm
10-Dec-17 uninqs    uniinqs     moved from FL's mathbox to main set.mm
10-Dec-17 rngoridfz [same]      moved from FL's mathbox to main set.mm
10-Dec-17 zerdivemp1 [same]     moved from FL's mathbox to main set.mm
10-Dec-17 neleq12d  [same]      moved from FL's mathbox to main set.mm
10-Dec-17 feq123    [same]      moved from FL's mathbox to main set.mm
10-Dec-17 fprg      [same]      moved from FL's mathbox to main set.mm
10-Dec-17 2eq3m1    3m1e2       moved from FL's mathbox to main set.mm
10-Dec-17 trcrm     truan       moved from FL's mathbox to main set.mm
 8-Dec-17 ---       ---         changed math symbol from "cprod_" to "prod_"
 8-Dec-17 ---       ---         changed math symbol from "prod_" to "gprod_"
 1-Dec-17 diftpsneq diftpsn3    moved from AV's mathbox to main set.mm
 1-Dec-17 difprsng  ---         (in AV's mathbox) deleted; use difprsn1
 1-Dec-17 difprsneq difprsn2    moved from AV's mathbox to main set.mm
 1-Dec-17 difprsn2  difprsn1    moved from TA's mathbox to main set.mm
 1-Dec-17 difprsn   difprsnss
 1-Dec-17 difsneq   difsnb
 7-Oct-17 fv4       df-fv
 7-Oct-17 df-fv     dffv4
 6-Oct-17 cnveq3    cnveq0      moved from FL's mathbox to main set.mm
22-Sep-17 wunexALT  wunex3
22-Sep-17 pwuninelALT pwuninel2
20-Sep-17 dveeq1ALT dveeq1-o16
20-Sep-17 dveeq2ALT dveeq2-o16
20-Sep-17 dvelimfALT2 ---       deleted; use dvelimh
20-Sep-17 dvelimfALT2 dvelimhw
17-Sep-17 hbaes     ---         deleted; use hbae + syl (ae = all equals)
17-Sep-17 alequcom  aecom
17-Sep-17 alequcoms aecoms
17-Sep-17 nalequcoms naecoms
17-Sep-17 alequcom-o aecom-o
17-Sep-17 alequcoms-o aecoms-o
17-Sep-17 nalequcoms-o naecoms-o
26-Aug-17 cmpfun    funmpt2     moved from FL's mathbox to main set.mm
26-Aug-17 xrre3     [--same--]  moved from FL's mathbox to main set.mm
21-Aug-17 nd5       ---         deleted; use dveeq2
19-Aug-17 ax4       sp
16-Aug-17 ax10lem8  ax10lem5
16-Aug-17 ax10lem7  ax10lem4
16-Aug-17 ax10lem4  ax10lem6
16-Aug-17 ax10lem6  ---         deleted; use dveeq2
16-Aug-17 ax10lem5  dvelimv
16-Aug-17 dvelimv   dvelimnf
 5-Aug-17 ax12dgen4w ax12dgen4
 5-Aug-17 ax12dgen3w ax12dgen3
 5-Aug-17 ax12dgen2w ax12dgen2
 5-Aug-17 ax12dgen1w ax12dgen1
 5-Aug-17 ax11dgenw ax11dgen
 5-Aug-17 ax7dgenw  ax7dgen
 5-Aug-17 ax9dgenw  ax9dgen
 5-Aug-17 ax11demow ax11wdemo
 5-Aug-17 ax11wlemw ax11wlem
 3-Aug-17 hbalwK    hbalw
 3-Aug-17 hbe1wK    hbe1w
 3-Aug-17 hba1wK    hba1w
 3-Aug-17 ax11wdemoK ax11demow
 3-Aug-17 ax11dgenK ax11dgenw
 3-Aug-17 ax11wK    ax11w
 3-Aug-17 ax11wlemK ax11wlemw
 3-Aug-17 ax12dgen4K ax12dgen4w
 3-Aug-17 ax12dgen3K ax12dgen3w
 3-Aug-17 ax12dgen2K ax12dgen2w
 3-Aug-17 ax12dgen1K ax12dgen1w
 3-Aug-17 ax12wK    ax12w
 3-Aug-17 ax7dgenK  ax7dgenw
 3-Aug-17 ax7wK     ax7w
 3-Aug-17 ax6wK     ax6w
 3-Aug-17 ax6wfK    ax6fw
 3-Aug-17 ax9dgenK  ax9dgenw
 3-Aug-17 cbvexvK   cbvexvw
 3-Aug-17 cbvalvK   cbvalvw
 3-Aug-17 cbvalK    cbvalw
 3-Aug-17 spfalK    spfalw
 3-Aug-17 sptruK    sptruw
 3-Aug-17 spvK      spvw
 3-Aug-17 spwK      spw
 3-Aug-17 19.8wK    19.8w
 3-Aug-17 spnwfK    spnfw
 3-Aug-17 spwfK     spfw
 3-Aug-17 cbvalivK  cbvalivw
 3-Aug-17 cbvaliK   cbvaliw
 3-Aug-17 spimvK    spimvw
 3-Aug-17 spimK     spimw
 3-Aug-17 spimfK    spimfw
 3-Aug-17 speimfK   speimfw
 2-Aug-17 ax-9v     ax9v        now a theorem instead of an axiom
 1-Aug-17 dvelimfALT2 [--same--] revised hypotheses
 1-Aug-17 equcomi-o ---         deleted; use equcomi instead
 1-Aug-17 cbv3ALT   cbv3h
 1-Aug-17 19.2      19.2g
 1-Aug-17 equidxx   equid
 1-Aug-17 equid     equid1
 1-Aug-17 equid1    equidxx
28-Jul-17 a4i       spi
28-Jul-17 a4s       sps
28-Jul-17 a4sd      spsd
28-Jul-17 a4imt     spimt
28-Jul-17 a4im      spim
28-Jul-17 a4ime     spime
28-Jul-17 a4imed    spimed
28-Jul-17 a4imv     spimv
28-Jul-17 a4sbe     spsbe
28-Jul-17 a4sbim    spsbim
28-Jul-17 a4sbbi    spsbbi
28-Jul-17 a4v       spv
28-Jul-17 a4imev    spimev
28-Jul-17 a4eiv     speiv
28-Jul-17 ra4       rsp
28-Jul-17 ra4e      rspe
28-Jul-17 ra42      rsp2
28-Jul-17 ra42e     rsp2e
28-Jul-17 cla4imgft spcimgft
28-Jul-17 cla4gft   spcgft
28-Jul-17 cla4imgf  spcimgf
28-Jul-17 cla4imegf spcimegf
28-Jul-17 cla4gf    spcgf
28-Jul-17 cla4egf   spcegf
28-Jul-17 cla4imdv  spcimdv
28-Jul-17 cla4dv    spcdv
28-Jul-17 cla4imedv spcimedv
28-Jul-17 cla4gv    spcgv
28-Jul-17 cla4egv   spcegv
28-Jul-17 cla42egv  spc2egv
28-Jul-17 cla42gv   spc2gv
28-Jul-17 cla43egv  spc3egv
28-Jul-17 cla43gv   spc3gv
28-Jul-17 cla4v     spcv
28-Jul-17 cla4ev    spcev
28-Jul-17 cla42ev   spc2ev
28-Jul-17 rcla4t    rspct
28-Jul-17 rcla4     rspc
28-Jul-17 rcla4e    rspce
28-Jul-17 rcla4v    rspcv
28-Jul-17 rcla4cv   rspccv
28-Jul-17 rcla4va   rspcva
28-Jul-17 rcla4cva  rspccva
28-Jul-17 rcla4ev   rspcev
28-Jul-17 rcla4imdv rspcimdv
28-Jul-17 rcla4imedv rspcimedv
28-Jul-17 rcla4dv   rspcdv
28-Jul-17 rcla4edv  rspcedv
28-Jul-17 rcla42    rspc2
28-Jul-17 rcla42v   rspc2v
28-Jul-17 rcla42va  rspc2va
28-Jul-17 rcla42ev  rspc2ev
28-Jul-17 rcla43v   rspc3v
28-Jul-17 rcla43ev  rspc3ev
28-Jul-17 a4sbc     spsbc
28-Jul-17 a4sbcd    spsbcd
28-Jul-17 ra4sbc    rspsbc
28-Jul-17 ra4sbca   rspsbca
28-Jul-17 ra4esbca  rspesbca
28-Jul-17 a4esbc    spesbc
28-Jul-17 a4esbcd   spesbcd
28-Jul-17 ra4csbela rspcsbela
28-Jul-17 rcla4eov  rspceov
28-Jul-17 rcla42edv rspc2edv
28-Jul-17 isibg1a4a isibg1spa
28-Jul-17 a4sbce-2  spsbce-2
28-Jul-17 rcla4egf  rspcegf
28-Jul-17 ra4sbc2   rspsbc2
28-Jul-17 ra4sbc2VD rspsbc2VD
23-Jul-17 df-n      df-nn
23-Jul-17 sbcss     [--same--]  moved from AS's mathbox to main set.mm
22-Jul-17 dfprime2  dfprm2
22-Jul-17 df-divides df-dvds
22-Jul-17 divides2  dvdsval2
22-Jul-17 divides3  dvdsval3
22-Jul-17 nndivdivides nndivdvds
22-Jul-17 df-prime  df-prm
19-Jul-17 df-ring   df-rng
19-Jul-17 df-plus   df-add
29-Jun-17 2m1e1     [--same--]  moved from DAW's mathbox to main set.mm
24-Jun-17 imrmo     rmoim
24-Jun-17 immoi     moimi
24-Jun-17 immo      moim
24-Jun-17 moimv     morimv
17-Jun-17 2ndcdisj2 [--same--]  revised to use df-rmo
17-Jun-17 2ndcdisj  [--same--]  revised to use df-rmo
17-Jun-17 mgmidmo   [--same--]  revised to use df-rmo
17-Jun-17 lspextmo  [--same--]  revised to use df-rmo
17-Jun-17 ply1divmo [--same--]  revised to use df-rmo
17-Jun-17 sqrmo     [--same--]  revised to use df-rmo
17-Jun-17 cvmliftmo [--same--]  revised to use df-rmo
17-Jun-17 hilbert1.2 [--same--] revised to use df-rmo
17-Jun-17 idomsubgmo [--same--] revised to use df-rmo
16-Jun-17 spwmo     [--same--]  revised to use df-rmo
16-Jun-17 poslubmo  [--same--]  revised to use df-rmo
16-Jun-17 brdom7disj [--same--] revised to use df-rmo
16-Jun-17 brdom4    [--same--]  revised to use df-rmo
16-Jun-17 iunmapdisj [--same--] revised to use df-rmo
16-Jun-17 moriotass [--same--]  revised to use df-rmo
16-Jun-17 supmo     [--same--]  revised to use df-rmo
16-Jun-17 dffun9    [--same--]  revised to use df-rmo
16-Jun-17 reuxfr2   [--same--]  revised to use df-rmo
16-Jun-17 reuxfr2d  [--same--]  revised to use df-rmo
16-Jun-17 somo      [--same--]  revised to use df-rmo
16-Jun-17 df-disj   [--same--]  revised to use df-rmo
16-Jun-17 rmoi      [--same--]  revised to use df-rmo
16-Jun-17 rmob      [--same--]  revised to use df-rmo
16-Jun-17 rmo3      [--same--]  revised to use df-rmo
16-Jun-17 2reuswap  [--same--]  revised to use df-rmo
16-Jun-17 rmo4      [--same--]  revised to use df-rmo
16-Jun-17 reu5      [--same--]  revised to use df-rmo
18-May-17 fsnunfv   [--same--]  revised
28-Apr-17 copab2    coprab
 7-Jan-17 df-sbc    [--same--]  df-sbc and 521 uses modified (statement and/or
                                  proof) to use separate notation from df-sb.
31-Dec-16 elabsbc   ---         deleted; use df-sbc instead
31-Dec-16 elabsg    ---         deleted; use df-sbc instead
31-Dec-16 elabs2    ---         deleted; use df-sbc instead
26-Dec-16 faclt2exp 2expltfac
24-Dec-16 reuunineg riotaneg    revised
24-Dec-16 supsn     [--same--]  revised
24-Dec-16 suppr     [--same--]  revised
24-Dec-16 supeut    ---         deleted; see supeu
24-Dec-16 supmax    [--same--]  revised
24-Dec-16 supnubi   ---         deleted; see supnub
24-Dec-16 suplubi   ---         deleted; see suplub
24-Dec-16 supubi    ---         deleted; see supub
24-Dec-16 supcli    ---         deleted; see supcl
24-Dec-16 supeui    ---         deleted; see supeu
24-Dec-16 supnub    [--same--]  revised
24-Dec-16 suplub2   [--same--]  revised
24-Dec-16 suplub    [--same--]  revised
24-Dec-16 supub     [--same--]  revised
24-Dec-16 supcl     [--same--]  revised
24-Dec-16 eqsup     [--same--]  revised
24-Dec-16 supeu     [--same--]  revised
24-Dec-16 supmo     [--same--]  revised
24-Dec-16 reiotass2 riotass2    revised
24-Dec-16 reiota2   riota2      revised
24-Dec-16 reiota2f  riota2f     revised
24-Dec-16 reiota2df riota2df    revised
24-Dec-16 reiota1   riota1      revised
24-Dec-16 reiotasbc riotasbc    revised
24-Dec-16 reiotacl  riotacl     revised
24-Dec-16 iota2df   [--same--]  revised
24-Dec-16 reiotacl2 riotacl2    revised
24-Dec-16 f1ocnvfv3 [--same--]  revised
24-Dec-16 reuunixfr riotaxfrd   revised
24-Dec-16 eusvobj1  [--same--]  revised
24-Dec-16 reuunisn  snriota     revised
24-Dec-16 reusni    rabsneu     revised
24-Dec-16 reuuniss2 riotass2    revised
24-Dec-16 mouniss   moriotass   revised
24-Dec-16 reuuniss  riotass     revised
24-Dec-16 reuuni3   ---         deleted; see riotauni, riotasbc, sbcie2g
24-Dec-16 reuunisbc riotasbc    revised
24-Dec-16 reucl     riotacl     revised
24-Dec-16 reucl2    riotacl2    revised
24-Dec-16 euuni2    iota2       revised
24-Dec-16 reuuni2   riota2      revised
24-Dec-16 reuuni2f  riota2f     revised
24-Dec-16 reuuni1   riota1a     revised
24-Dec-16 euuni     iotauni     revised
24-Dec-16 iotaequ   iotauni
24-Dec-16 iota2     iotaequ
20-Dec-16 ---       ---         Renames below prevent ax-XXX vs. axXXX conflict
20-Dec-16 axreg     axreg2
20-Dec-16 axac      axac3
20-Dec-16 axhilex   axhilex-zf
20-Dec-16 axhfvadd  axhfvadd-zf
20-Dec-16 axhvcom   axhvcom-zf
20-Dec-16 axhvass   axhvass-zf
20-Dec-16 axhv0cl   axhv0cl-zf
20-Dec-16 axhvaddid axhvaddid-zf
20-Dec-16 axhfvmul  axhfvmul-zf
20-Dec-16 axhvmulid axhvmulid-zf
20-Dec-16 axhvmulass axhvmulass-zf
20-Dec-16 axhvdistr1 axhvdistr1-zf
20-Dec-16 axhvdistr2 axhvdistr2-zf
20-Dec-16 axhvmul0  axhvmul0-zf
20-Dec-16 axhfi     axhfi-zf
20-Dec-16 axhis1    axhis1-zf
20-Dec-16 axhis2    axhis2-zf
20-Dec-16 axhis3    axhis3-zf
20-Dec-16 axhis4    axhis4-zf
20-Dec-16 axhcompl  axhcompl-zf
20-Dec-16 axlll     axlll2      (in FL's mathbox)
 4-Dec-16 hbmpt2    [same]      removed unnecessary $d restriction
17-Sep-16 ssdifeq0  [same]      moved from SR's mathbox to main set.mm
 4-Sep-16 bnj232    anim12ci    moved from JB's mathbox to main set.mm
 4-Sep-16 bnj186    anbi12ci    moved from JB's mathbox to main set.mm
 4-Sep-16 bnj1540   neneqd      moved from JB's mathbox to main set.mm
 4-Sep-16 bnj169    3anan32     moved from JB's mathbox to main set.mm
 4-Sep-16 bnj176    3anan12     moved from JB's mathbox to main set.mm
 4-Sep-16 bnj1295   ssind       moved from JB's mathbox to main set.mm
 4-Sep-16 bnj184    anbi2ci     moved from JB's mathbox to main set.mm
 4-Sep-16 bnj2      con3dimp     moved from JB's mathbox to main set.mm
 4-Sep-16 c-bnj16   ---         deleted
 4-Sep-16 bnj536    ---         deleted; also deleted 744 other unused bnj*
28-May-16 recld     recld2
28-May-16 expmwordi leexp1a
28-May-16 expword2i leexp2r
28-May-16 expord2   ltexp2r
28-May-16 expwordi  leexp2a
28-May-16 expword   leexp2
28-May-16 expord    ltexp2
28-May-16 expordi   ltexp2a
22-May-16 anim12    ---         deleted (use prth instead)
 6-Apr-16 AneBC     nelpri      moved from DAW's mathbox to main set.mm
 6-Apr-16 ixpfn     [same]      moved from FL's mathbox to main set.mm
 6-Apr-16 oveq123i  [same]      moved from FL's mathbox to main set.mm
 6-Apr-16 2on0      [same]      moved from SF's mathbox to main set.mm
 6-Apr-16 sqsubswap [same]      moved from SF's mathbox to main set.mm
 6-Apr-16 anass1rs  [same]      moved from JM's mathbox to main set.mm
 6-Apr-16 eltids    opelresi    moved from FL's mathbox to main set.mm; revised
 6-Apr-16 ref4w     issref      moved from FL's mathbox to main set.mm; revised
 5-Apr-16 relexpex  ---         (in DF's mathbox) obsolete; deleted - use ovex
 5-Apr-16 mplvscafval ---       obsolete; deleted - use mplvsca2
 5-Apr-16 ply1rcl   ---         obsolete; deleted - use elbasfv
 5-Apr-16 psr1rcl   ---         obsolete; deleted - use elbasfv
 5-Apr-16 lbicc2a   lbicc2      moved from FL's mathbox to main set.mm
 5-Apr-16 ubicc2a   ubicc2      moved from FL's mathbox to main set.mm
 5-Apr-16 anymptr   a1tru       moved from FL's mathbox to main set.mm
 5-Apr-16 fampany   falim       moved from FL's mathbox to main set.mm
 5-Apr-16 predbrg   [same]      revised - eliminated antecedent
 5-Apr-16 predbr    ---         obsolete; deleted - use elpredim
 5-Apr-16 mueq0     ---         obsolete; deleted - use isnsqf
 5-Apr-16 resiundi  ---         obsolete; deleted - use resiun2
 5-Apr-16 trsuc2    ---         obsolete; deleted - use suctr
 5-Apr-16 tru2      ---         obsolete; deleted - use tru
29-Jan-16 .le       c.le
29-Jan-16 .lt       c.lt
29-Jan-16 .pl       c.pl
29-Jan-16 .an       c.an
29-Jan-16 .or       c.or
21-Dec-15 ax12conj  ax12        revised
21-Dec-15 ax12      ---         obsolete; deleted
21-Dec-15 ax12-2    ---         obsolete; deleted
21-Dec-15 ax12-3    ---         obsolete; deleted
21-Dec-15 ax12o     [same]      revised
21-Dec-15 ax-12     [same]      revised
 2-Dec-15 ax9seplem ax9vsep
 2-Dec-15 ax9sep    ---         obsolete (moved to NM's mathbox; to be deleted)
 2-Dec-15 ax9ALT    ax9
 2-Dec-15 ax9       ax9OLD      obsolete (moved to NM's mathbox; to be deleted)
 2-Dec-15 ax9vax9   ---         obsolete (moved to NM's mathbox; to be deleted)
30-Nov-15 dvelimfALT2 ---       obsolete (moved to NM's mathbox; to be deleted)
30-Nov-15 a12stdy1  ---         obsolete (moved to NM's mathbox; to be deleted)
30-Nov-15 a12stdy2  ---         obsolete (moved to NM's mathbox; to be deleted)
30-Nov-15 a12stdy3  ---         obsolete (moved to NM's mathbox; to be deleted)
30-Nov-15 a12stdy4  ---         obsolete (moved to NM's mathbox; to be deleted)
30-Nov-15 a12lem1   ---         obsolete (moved to NM's mathbox; to be deleted)
30-Nov-15 a12lem2   ---         obsolete (moved to NM's mathbox; to be deleted)
30-Nov-15 a12study  ---         obsolete (moved to NM's mathbox; to be deleted)
30-Nov-15 a12studyALT ---       obsolete (moved to NM's mathbox; to be deleted)
30-Nov-15 a12study2 ---         obsolete (moved to NM's mathbox; to be deleted)
30-Nov-15 a12study3 ---         obsolete (moved to NM's mathbox; to be deleted)
29-Nov-15 ax-12     ax-12o
10-Nov-15 a9wa9     ax9vax9
10-Nov-15 ax10      [--same--]  proved from new ax-9v instead of ax-9
 2-Nov-15 hlhil     hlathil     (in NM's mathbox)
 2-Nov-15 df-ocomp  [--same--]  moved from NM's mathbox to main set.mm
 2-Nov-15 ishil     ishil2      moved from NM's mathbox to main set.mm
 2-Nov-15 iscsubsp  iscss       moved from NM's mathbox to main set.mm; revised
 2-Nov-15 csubspset cssval      moved from NM's mathbox to main set.mm; revised
 2-Nov-15 ocvval    [--same--]  moved from NM's mathbox to main set.mm; revised
 2-Nov-15 ocvfval   [--same--]  moved from NM's mathbox to main set.mm; revised
 2-Nov-15 df-hil    [--same--]  moved from NM's mathbox to main set.mm; revised
 2-Nov-15 df-csubsp df-css      moved from NM's mathbox to main set.mm; revised
 2-Nov-15 df-ocv    [--same--]  moved from NM's mathbox to main set.mm
 2-Nov-15 isphild   isphld      moved from NM's mathbox to main set.mm
 2-Nov-15 isphil    isphl       moved from NM's mathbox to main set.mm; revised
 2-Nov-15 df-prehil df-phl      moved from NM's mathbox to main set.mm; revised
 2-Nov-15 phlfn     phlstr      moved from NM's mathbox to main set.mm
 2-Nov-15 phllem    ---         (in NM's mathbox) deleted; see phlfn
 2-Nov-15 ipid      [--same--]  moved from NM's mathbox to main set.mm
 2-Nov-15 df-inprod df-ip       moved from NM's mathbox to main set.mm
 2-Nov-15 issrngd   [--same--]  moved from NM's mathbox to main set.mm
 2-Nov-15 issrng    [--same--]  moved from NM's mathbox to main set.mm; revised
 2-Nov-15 df-starrng df-srng    moved from NM's mathbox to main set.mm; revised
 2-Nov-15 srngfn    [--same--]  moved from NM's mathbox to main set.mm; revised
 2-Nov-15 srnglem   ---         (in NM's mathbox) deleted; see srngfn
 2-Nov-15 starvid   [--same--]  moved from NM's mathbox to main set.mm
 2-Nov-15 df-starv  [--same--]  moved from NM's mathbox to main set.mm
 2-Nov-15 ldualsmul [--same--]  (in NM's mathbox) hypothesis eliminated
 2-Nov-15 lsatset   [--same--]  (in NM's mathbox) revised
 2-Nov-15 df-lsatoms [--same--] (in NM's mathbox) revised
 2-Nov-15 df-mulvval [--same--] (in ATS's mathbox) revised
 2-Nov-15 df-subrval [--same--] (in ATS's mathbox) revised
 2-Nov-15 df-addrval [--same--] (in ATS's mathbox) revised
 2-Nov-15 df-mulv   [--same--]  (in ATS's mathbox) revised
 2-Nov-15 df-subr   [--same--]  (in ATS's mathbox) revised
 2-Nov-15 df-addr   [--same--]  (in ATS's mathbox) revised
 2-Nov-15 fveqsb    [--same--]  (in ATS's mathbox) hypothesis eliminated
 2-Nov-15 fvsb      [--same--]  (in ATS's mathbox) hypothesis eliminated
 2-Nov-15 hausgraph [--same--]  (in SO's mathbox) hypothesis eliminated
 2-Nov-15 prdminvgd2 prdsinvgd2 (in SO's mathbox) revised
 2-Nov-15 dfac21i   dfac21      (in SO's mathbox) revised
 2-Nov-15 nndivdivides [--same--] moved from SO's mathbox to main set.mm
 2-Nov-15 df-dioph  [--same--]  (in SO's mathbox) revised
 2-Nov-15 mzpcl34   [--same--]  (in SO's mathbox) hypothesis eliminated
 2-Nov-15 mzpcl2    [--same--]  (in SO's mathbox) hypothesis eliminated
 2-Nov-15 mzpcl1    [--same--]  (in SO's mathbox) hypothesis eliminated
 2-Nov-15 elmzpcl   [--same--]  (in SO's mathbox) hypothesis eliminated
 2-Nov-15 mzpclval  [--same--]  (in SO's mathbox) revised
 2-Nov-15 df-mzpcl  [--same--]  (in SO's mathbox) revised
 2-Nov-15 fcompt    [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 ---       ---         isipodrs ~ lidlacs moved from SO's mathbox to
                                main set.mm
 2-Nov-15 iscldtop  [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 cldmreon  [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 toponmre  [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 mretopd   [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 istopon   [--same--]  moved from SO's mathbox to main set.mm; revised
 2-Nov-15 df-topon  [--same--]  moved from SO's mathbox to main set.mm; revised
 2-Nov-15 ptcldmpt  [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 ptcld     [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 ptunimpt  [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 cldopn2   cldopn      moved from SO's mathbox to main set.mm; revised
 2-Nov-15 cldss3    cldss       moved from SO's mathbox to main set.mm; revised
 2-Nov-15 cldrcl    [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 ptopn2    [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 riinint   [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 boxcutc   [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 boxriin   [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 baspartn  [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 fncld     [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 reslmhm2b [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 reslmhm2  [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 islmhmd   [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 lmodvsinv [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 fissuni   [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 fmptsn    [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 intsng    [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 rexss     [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 ralss     [--same--]  moved from SO's mathbox to main set.mm
 2-Nov-15 elfpw     [--same--]  moved from SO's mathbox to main set.mm; revised
 2-Nov-15 prter3    [--same--]  (in RM's mathbox) revised
 2-Nov-15 prter2    [--same--]  (in RM's mathbox) revised
 2-Nov-15 prtex     [--same--]  (in RM's mathbox) revised
 2-Nov-15 prter1    [--same--]  (in RM's mathbox) revised
 2-Nov-15 erex2     erexb       moved from RM's mathbox to main set.mm; revised
 2-Nov-15 erex      [--same--]  moved from RM's mathbox to main set.mm; revised
 2-Nov-15 erreft2   ---         (in RM's mathbox) deleted; see erref,erdm
 2-Nov-15 erreft    ---         (in RM's mathbox) deleted; see erref,erdm,errn
 2-Nov-15 ersymb2   ---         (in RM's mathbox) deleted; see ersymb
 2-Nov-15 ertr2     ---         (in RM's mathbox) deleted; see ertr
 2-Nov-15 ersym2    ---         (in RM's mathbox) deleted; see ersym
 2-Nov-15 df-maxidl [--same--]  (in JM's mathbox) revised
 2-Nov-15 df-pridl  [--same--]  (in JM's mathbox) revised
 2-Nov-15 df-idl    [--same--]  (in JM's mathbox) revised
 2-Nov-15 rngoisoval [--same--] (in JM's mathbox) revised
 2-Nov-15 df-rngoiso [--same--] (in JM's mathbox) revised
 2-Nov-15 rngohomval [--same--] (in JM's mathbox) revised
 2-Nov-15 df-rngohom [--same--] (in JM's mathbox) revised
 2-Nov-15 reheibor  [--same--]  (in JM's mathbox) revised
 2-Nov-15 ismrer1   [--same--]  (in JM's mathbox) revised
 2-Nov-15 rrnheibor [--same--]  (in JM's mathbox) revised
 2-Nov-15 rrntotbnd [--same--]  (in JM's mathbox) revised
 2-Nov-15 rrncms    [--same--]  (in JM's mathbox) revised
 2-Nov-15 rrndstprj2 [--same--] (in JM's mathbox) revised
 2-Nov-15 rrndstprj1 [--same--] (in JM's mathbox) revised
 2-Nov-15 rrnmet    [--same--]  (in JM's mathbox) revised
 2-Nov-15 rrndm     ---         (in JM's mathbox) deleted; see rrnmet
 2-Nov-15 rrnmval   [--same--]  (in JM's mathbox) revised
 2-Nov-15 rrnval    [--same--]  (in JM's mathbox) revised
 2-Nov-15 df-rrn    [--same--]  (in JM's mathbox) revised
 2-Nov-15 recms     recmet      moved from JM's mathbox to main set.mm
 2-Nov-15 ismtyhmeo [--same--]  (in JM's mathbox) revised
 2-Nov-15 df-ismty  [--same--]  (in JM's mathbox) revised
 2-Nov-15 isbnd3    isbnd2      (in JM's mathbox)
 2-Nov-15 isbnd2    ---         (in JM's mathbox) deleted; see isbnd
 2-Nov-15 isbnd     [--same--]  (in JM's mathbox) revised
 2-Nov-15 df-bnd    [--same--]  (in JM's mathbox) revised
 2-Nov-15 totbndss  [--same--]  (in JM's mathbox) hypothesis eliminated
 2-Nov-15 istotbnd  [--same--]  (in JM's mathbox) revised
 2-Nov-15 df-totbnd [--same--]  (in JM's mathbox) revised
 2-Nov-15 hmeocld   [--same--]  moved from JM's mathbox to main set.mm; revised
 2-Nov-15 hmeoopn   [--same--]  moved from JM's mathbox to main set.mm; revised
 2-Nov-15 cncfres   [--same--]  (in JM's mathbox) revised
 2-Nov-15 sub2cncf  [--same--]  (in JM's mathbox) revised
 2-Nov-15 sub1cncf  [--same--]  (in JM's mathbox) revised
 2-Nov-15 idcncf    [--same--]  (in JM's mathbox) revised
 2-Nov-15 addccncf  [--same--]  (in JM's mathbox) revised
 2-Nov-15 constcncf [--same--]  (in JM's mathbox) revised
 2-Nov-15 metf1o    [--same--]  (in JM's mathbox) revised
 2-Nov-15 absrdbnd  [--same--]  moved from JM's mathbox to main set.mm
 2-Nov-15 rddif     [--same--]  moved from JM's mathbox to main set.mm
 2-Nov-15 upixp     [--same--]  (in JM's mathbox) revised
 2-Nov-15 fvopabf4g [--same--]  (in JM's mathbox) revised
 2-Nov-15 supfil    [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 opnfbas   [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 metnrm    [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 nrmsep2   [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 nrmsep    [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 nrmtop    [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 isnrm2    isnrm3      moved from JGH's mathbox to main set.mm;revised
 2-Nov-15 isnrm     isnrm3      moved from JGH's mathbox to main set.mm;revised
 2-Nov-15 regsep    regsep2     moved from JGH's mathbox to main set.mm;revised
 2-Nov-15 regtop    [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 isreg     isreg2      moved from JGH's mathbox to main set.mm;revised
 2-Nov-15 t1t0      [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 t1sep     [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 t1sncld   [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 t1top     [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 ist1-3    [--same--]  moved from JGH's mathbox to main set.mm;revised
 2-Nov-15 ist1-2    [--same--]  moved from JGH's mathbox to main set.mm;revised
 2-Nov-15 t0dist    [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 t0top     [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 ist0-2    ist0-3      moved from JGH's mathbox to main set.mm;revised
 2-Nov-15 ist0      [--same--]  moved from JGH's mathbox to main set.mm;revised
 2-Nov-15 df-nrm    [--same--]  moved from JGH's mathbox to main set.mm;revised
 2-Nov-15 df-reg    [--same--]  moved from JGH's mathbox to main set.mm;revised
 2-Nov-15 df-t0ALT  df-t0       moved from JGH's mathbox to main set.mm;revised
 2-Nov-15 fnejoin2  [--same--]  (in JGH's mathbox) revised
 2-Nov-15 fnejoin1  [--same--]  (in JGH's mathbox) revised
 2-Nov-15 fnemeet2  [--same--]  (in JGH's mathbox) revised
 2-Nov-15 fnemeet1  [--same--]  (in JGH's mathbox) revised
 2-Nov-15 topjoin   [--same--]  (in JGH's mathbox) revised
 2-Nov-15 topmeet   [--same--]  (in JGH's mathbox) revised
 2-Nov-15 topmtcl   [--same--]  (in JGH's mathbox) revised
 2-Nov-15 neibastop3 [--same--] (in JGH's mathbox) revised
 2-Nov-15 neibastop2 [--same--] (in JGH's mathbox) revised
 2-Nov-15 neibastop1 [--same--] (in JGH's mathbox) revised
 2-Nov-15 locfincf  [--same--]  (in JGH's mathbox) revised
 2-Nov-15 locfindsc locfindis   (in JGH's mathbox) revised
 2-Nov-15 locfincomp locfincmp  (in JGH's mathbox) revised
 2-Nov-15 islocfin  [--same--]  (in JGH's mathbox) revised
 2-Nov-15 refssfne  [--same--]  (in JGH's mathbox) revised
 2-Nov-15 fnessref  [--same--]  (in JGH's mathbox) revised
 2-Nov-15 topfneec  [--same--]  (in JGH's mathbox) revised
 2-Nov-15 topfne    [--same--]  (in JGH's mathbox) hypothesis eliminated
 2-Nov-15 topbasfne isfne4b     (in JGH's mathbox) revised
 2-Nov-15 fneerdm   ---         (in JGH's mathbox) deleted; see fneer
 2-Nov-15 reftr     [--same--]  (in JGH's mathbox) hypothesis eliminated
 2-Nov-15 fneer     [--same--]  (in JGH's mathbox) revised
 2-Nov-15 fnetr     [--same--]  (in JGH's mathbox) hypothesis eliminated
 2-Nov-15 refssex   [--same--]  (in JGH's mathbox) hypothesis eliminated
 2-Nov-15 refbas    [--same--]  (in JGH's mathbox) hypothesis eliminated
 2-Nov-15 fneint    [--same--]  (in JGH's mathbox) hypothesis eliminated
 2-Nov-15 fneuni    [--same--]  (in JGH's mathbox) hypothesis eliminated
 2-Nov-15 fnessex   [--same--]  (in JGH's mathbox) hypothesis eliminated
 2-Nov-15 fnebas    [--same--]  (in JGH's mathbox) hypothesis eliminated
 2-Nov-15 df-locfin [--same--]  (in JGH's mathbox) revised
 2-Nov-15 cnntr     [--same--]  moved from JGH's mathbox to main set.mm;revised
 2-Nov-15 cncls     [--same--]  moved from JGH's mathbox to main set.mm;revised
 2-Nov-15 clscmp    clsdif      moved from JGH's mathbox to main set.mm
 2-Nov-15 ntrcmp    ntrdif      moved from JGH's mathbox to main set.mm
 2-Nov-15 ssdifin0  [--same--]  moved from JGH's mathbox to main set.mm
 2-Nov-15 plibgax4b [--same--]  (in FL's mathbox) revised
 2-Nov-15 plibgax4a [--same--]  (in FL's mathbox) revised
 2-Nov-15 plibgax3  [--same--]  (in FL's mathbox) revised
 2-Nov-15 plibgax2  [--same--]  (in FL's mathbox) revised
 2-Nov-15 plibgax1  [--same--]  (in FL's mathbox) revised
 2-Nov-15 isplibg   [--same--]  (in FL's mathbox) revised
 2-Nov-15 isplibg4b [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-plibg4b [--same--] (in FL's mathbox) revised
 2-Nov-15 isplibg4a [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-plibg4a [--same--] (in FL's mathbox) revised
 2-Nov-15 isplibg3  [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-plibg3 [--same--]  (in FL's mathbox) revised
 2-Nov-15 isplibg2  [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-plibg2 [--same--]  (in FL's mathbox) revised
 2-Nov-15 isplibg1  [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-plibg1 [--same--]  (in FL's mathbox) revised
 2-Nov-15 isseg1    [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-seg    [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-line   [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-trcls  [--same--]  (in FL's mathbox) revised
 2-Nov-15 vtarsu    [--same--]  (in FL's mathbox) revised
 2-Nov-15 valtar    [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-tar    [--same--]  (in FL's mathbox) revised
 2-Nov-15 issubcat  [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-subcat   [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-isof   [--same--]  (in FL's mathbox) revised
 2-Nov-15 isfunb    [--same--]  (in FL's mathbox) hypothesis eliminated
 2-Nov-15 isfuna    [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-funcOLD   [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-cinv   [--same--]  (in FL's mathbox) revised
 2-Nov-15 isepib    [--same--]  (in FL's mathbox) hypothesis eliminated
 2-Nov-15 isepia    [--same--]  (in FL's mathbox) revised
 2-Nov-15 ismonb    [--same--]  (in FL's mathbox) hypothesis eliminated
 2-Nov-15 ismona    [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-isoc   [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-epiOLD    [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-monOLD    [--same--]  (in FL's mathbox) revised
 2-Nov-15 ishomb    [--same--]  (in FL's mathbox) revised
 2-Nov-15 ishoma    [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-homOLD    [--same--]  (in FL's mathbox) revised
 2-Nov-15 dualcat2  [--same--]  (in FL's mathbox) revised
 2-Nov-15 dualded   [--same--]  (in FL's mathbox) revised
 2-Nov-15 dualalg   [--same--]  (in FL's mathbox) revised
 2-Nov-15 mamb      xnegeq      moved from FL's mathbox to main set.mm; revised
 2-Nov-15 mreal     rexneg      moved from FL's mathbox to main set.mm
 2-Nov-15 miminf    xnegmnf     moved from FL's mathbox to main set.mm
 2-Nov-15 mpinf     xnegpnf     moved from FL's mathbox to main set.mm
 2-Nov-15 df-adde   df-xadd     moved from FL's mathbox to main set.mm; revised
 2-Nov-15 df-nege   df-xneg     moved from FL's mathbox to main set.mm
 2-Nov-15 lteqttos  letsr       moved from FL's mathbox to main set.mm
 2-Nov-15 fldleqt   lefld       moved from FL's mathbox to main set.mm; revised
 2-Nov-15 ranleqt   lern        moved from FL's mathbox to main set.mm; revised
 2-Nov-15 domleqt   ledm        moved from FL's mathbox to main set.mm; revised
 2-Nov-15 df-topvs  df-tvc      moved from FL's mathbox to main set.mm; revised
 2-Nov-15 df-toprngo df-trg     moved from FL's mathbox to main set.mm; revised
 2-Nov-15 df-opfn   [--same--]  (in FL's mathbox) revised
 2-Nov-15 topgrpsubcn tgpsubcn  moved from FL's mathbox to main set.mm
 2-Nov-15 istpsbas  tpsuni      moved from FL's mathbox to main set.mm
 2-Nov-15 istpstp   tpstop      moved from FL's mathbox to main set.mm
 2-Nov-15 topgrpinv tgpinv      moved from FL's mathbox to main set.mm; revised
 2-Nov-15 topgrpcn  tgpcn       moved from FL's mathbox to main set.mm; revised
 2-Nov-15 topgrptop tgptps      moved from FL's mathbox to main set.mm
 2-Nov-15 topgrpgrp tgpgrp      moved from FL's mathbox to main set.mm
 2-Nov-15 istopgrp  istgp       moved from FL's mathbox to main set.mm; revised
 2-Nov-15 df-topgrp df-tgp      moved from FL's mathbox to main set.mm; revised
 2-Nov-15 intopcon  indiscon    moved from FL's mathbox to main set.mm
 2-Nov-15 t2t1      haust1      moved from FL's mathbox to main set.mm
 2-Nov-15 df-unif   [--same--]  moved from FL's mathbox to main set.mm
 2-Nov-15 islimrs   [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-flimfrs [--same--] (in FL's mathbox) revised
 2-Nov-15 iscnp3    iscnp4      (in FL's mathbox) revised
 2-Nov-15 homindlem3 hmphindis  moved from FL's mathbox to main set.mm; revised
 2-Nov-15 homindlem2 hmph0      moved from FL's mathbox to main set.mm; revised
 2-Nov-15 top2usne  ---         (in FL's mathbox) deleted; see en2top
 2-Nov-15 top2ind   en2top      moved from FL's mathbox to main set.mm; revised
 2-Nov-15 top1      en1top      moved from FL's mathbox to main set.mm
 2-Nov-15 eqindhome indishmph   moved from FL's mathbox to main set.mm; revised
 2-Nov-15 homcardus hmphen2     moved from FL's mathbox to main set.mm; revised
 2-Nov-15 homcard   hmphen      moved from FL's mathbox to main set.mm; revised
 2-Nov-15 hmphsymv  ---         (in FL's mathbox) deleted; see hmphsymb
 2-Nov-15 hmpher    [--same--]  moved from FL's mathbox to main set.mm; revised
 2-Nov-15 rnhmpha   hmphtop2    moved from FL's mathbox to main set.mm; revised
 2-Nov-15 dmhmpha   hmphtop1    moved from FL's mathbox to main set.mm; revised
 2-Nov-15 hmphtr    [--same--]  moved from FL's mathbox to main set.mm; revised
 2-Nov-15 hmphre    hmphref     moved from FL's mathbox to main set.mm
 2-Nov-15 hmphsyma  hmphsym     moved from FL's mathbox to main set.mm; revised
 2-Nov-15 hmphsym   hmphsymb    moved from FL's mathbox to main set.mm; revised
 2-Nov-15 cnvhmph   hmeocnvb    moved from FL's mathbox to main set.mm; revised
 2-Nov-15 idhme     idhmeo      moved from FL's mathbox to main set.mm; revised
 2-Nov-15 cmphmp    hmeoco      moved from FL's mathbox to main set.mm; revised
 2-Nov-15 df-mmat   [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-smat   [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-amat   [--same--]  (in FL's mathbox) revised
 2-Nov-15 svs3      [--same--]  (in FL's mathbox) revised
 2-Nov-15 svs2      [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-svs    [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-gsmhom [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-subsmg [--same--]  (in FL's mathbox) revised
 2-Nov-15 fnopabco2b [--same--] (in FL's mathbox) revised
 2-Nov-15 expus     [--same--]  (in FL's mathbox) revised
 2-Nov-15 expm      [--same--]  (in FL's mathbox) revised
 2-Nov-15 expmiz    [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-expsg  [--same--]  (in FL's mathbox) revised
 2-Nov-15 tostos    tsrss       moved from FL's mathbox to main set.mm
 2-Nov-15 rngsubpos psssdm2     moved from FL's mathbox to main set.mm
 2-Nov-15 pospos    psss        moved from FL's mathbox to main set.mm
 2-Nov-15 istoset2  istsr2      moved from FL's mathbox to main set.mm
 2-Nov-15 dutos2    ---         (in FL's mathbox) revised; see cnvtsr
 2-Nov-15 dutos1    cnvtsr      moved from FL's mathbox to main set.mm
 2-Nov-15 df-lb     [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-ub     [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-ler    [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-ge     [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-mnl    [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-mxl    [--same--]  (in FL's mathbox) revised
 2-Nov-15 dupos2    cnvpsb      moved from FL's mathbox to main set.mm
 2-Nov-15 dupos1    cnvps       moved from FL's mathbox to main set.mm
 2-Nov-15 valcurfn2 [--same--]  (in FL's mathbox) revised
 2-Nov-15 cur1vald  [--same--]  (in FL's mathbox) revised
 2-Nov-15 cur1val   [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-cur2   [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-cur1   [--same--]  (in FL's mathbox) revised
 2-Nov-15 iscst3    [--same--]  (in FL's mathbox) hypothesis removed
 2-Nov-15 iscst2    [--same--]  (in FL's mathbox) revised
 2-Nov-15 iscst1    [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-cst    [--same--]  (in FL's mathbox) revised
 2-Nov-15 fopab2g   [--same--]  (in FL's mathbox) revised
 2-Nov-15 elovdm2   elmpt2cl2   moved from FL's mathbox to main set.mm; revised
 2-Nov-15 elovdm    elmpt2cl1   moved from FL's mathbox to main set.mm; revised
 2-Nov-15 ov4gc     [--same--]  (in FL's mathbox) revised
 2-Nov-15 ov2gc     [--same--]  (in FL's mathbox) revised
 2-Nov-15 en2eqpr   set2elt     moved from FL's mathbox to main set.mm
 2-Nov-15 df-rtrcl  [--same--]  (in FL's mathbox) revised
 2-Nov-15 df-trcl   [--same--]  (in FL's mathbox) revised
 2-Nov-15 tricptr   trinxp      moved from FL's mathbox to main set.mm
 2-Nov-15 inttr     trin2       moved from FL's mathbox to main set.mm
 2-Nov-15 sqpeq     xpider      moved from FL's mathbox to main set.mm
 2-Nov-15 cpref     xpidtr      moved from FL's mathbox to main set.mm
 2-Nov-15 fldsqcp2  unixpid     moved from FL's mathbox to main set.mm
 2-Nov-15 dfoprab4spop dfoprab4pop (in FL's mathbox) revised
 2-Nov-15 frsucmptn [--same--]  moved from SF's mathbox to main set.mm; revised
 2-Nov-15 frsucopabn ---        (in SF's mathbox) deleted; see frsucmptn
 2-Nov-15 fvmptgf   fvmptf      moved from SF's mathbox to main set.mm
 2-Nov-15 pjf       pjhf
 2-Nov-15 pjfo      pjhfo
 2-Nov-15 pjpjthi   pjpjhthi
 2-Nov-15 pjpjth    pjpjhth
 2-Nov-15 pjtheu2   pjhtheu2
 2-Nov-15 pjfval    pjhfval
 2-Nov-15 df-pj     df-pjh
 2-Nov-15 pjtheu    pjhtheu
 2-Nov-15 pjth      pjhth
 2-Nov-15 pjthmo    pjhthmo
 2-Nov-15 hhssmetba ---         deleted; see hhssmet
 2-Nov-15 hilmetba  ---         deleted; see hilmet
 2-Nov-15 hhmetba   ---         deleted; see hhmet
 2-Nov-15 h2hmetba  ---         deleted; see hhmet
 2-Nov-15 cpj       cpjh
 2-Nov-15 ---       ---         math token "proj" changed to "projh"
 2-Nov-15 cnhl      cnchl
 2-Nov-15 hlcms     hlcmet
 2-Nov-15 hlbn      hlobn
 2-Nov-15 ishl      ishlo
 2-Nov-15 df-hl     df-hlo
 2-Nov-15 chl       chlo
 2-Nov-15 ---       ---         math token "CHil" changed to "CHilOLD"
 2-Nov-15 minvec    minveco
 2-Nov-15 bncms     cbncms
 2-Nov-15 isbn      iscbn
 2-Nov-15 df-bn     df-cbn
 2-Nov-15 cbn       ccbn
 2-Nov-15 ajval     [--same--]  hypothesis removed
 2-Nov-15 ipsubdi   dipsubdi
 2-Nov-15 ipsubdir  dipsubdir
 2-Nov-15 ipassr2   dipassr2
 2-Nov-15 ipassr    dipassr
 2-Nov-15 ipass     dipass
 2-Nov-15 ipdi      dipdi
 2-Nov-15 ipdir     dipdir
 2-Nov-15 cnph      cncph
 2-Nov-15 cphl      ccphlo
 2-Nov-15 ---       ---         math token "CPreHil" changed to "CPreHilOLD"
 2-Nov-15 nmo0      nmoo0
 2-Nov-15 nmolb     nmoolb
 2-Nov-15 nmoge0    nmooge0
 2-Nov-15 nmoval    nmooval
 2-Nov-15 nmofval   nmoofval
 2-Nov-15 df-nmo    df-nmoo
 2-Nov-15 cnmo      cnmoo
 2-Nov-15 ---       ---         math token "normOp" changed to "normOpOLD"
 2-Nov-15 ipcn      dipcn
 2-Nov-15 ip0l      dip0l
 2-Nov-15 ip0r      dip0r
 2-Nov-15 iporthcom diporthcom
 2-Nov-15 ipcj      dipcj
 2-Nov-15 ipcl      dipcl
 2-Nov-15 ipfval    dipfval
 2-Nov-15 df-ip     df-dip
 2-Nov-15 cip       cdip
 2-Nov-15 nmcn      nmcvcn
 2-Nov-15 imsbai    ---         deleted; see imsmet
 2-Nov-15 imsba     ---         deleted; see imsmet
 2-Nov-15 nmfval    nmcvfval
 2-Nov-15 df-nm     df-nmcv
 2-Nov-15 cnm       cnmcv
 2-Nov-15 ---       ---         math token "norm" changed to "normCV"
 2-Nov-15 ---       ---         math token "CVec" changed to "CVecOLD"
 2-Nov-15 df-giso   [--same--]  (in PC's mathbox) revised
 2-Nov-15 df-ghom   [--same--]  (in PC's mathbox) revised
 2-Nov-15 mdegpropd [--same--]  hypothesis removed
 2-Nov-15 deg1fval  [--same--]  hypothesis removed
 2-Nov-15 mdegcl    [--same--]  hypothesis removed
 2-Nov-15 mdegxrf   [--same--]  hypothesis removed
 2-Nov-15 mdegxrcl  [--same--]  hypothesis removed
 2-Nov-15 mdeglt    [--same--]  hypothesis removed
 2-Nov-15 mdegleb   [--same--]  hypothesis removed
 2-Nov-15 mdegval   [--same--]  hypothesis removed
 2-Nov-15 mdegfval  [--same--]  hypothesis removed
 2-Nov-15 cncms     cncmet
 2-Nov-15 cmsss     cmetss
 2-Nov-15 iscms3i   iscmet3i
 2-Nov-15 iscms3    iscmet3
 2-Nov-15 cmsmeti   cmetmeti
 2-Nov-15 cmsmet    cmetmet
 2-Nov-15 cmscvg2   ---         deleted; see cmetcau
 2-Nov-15 iscms2    ---         deleted; see iscmet2
 2-Nov-15 cmscvg    cmetcau
 2-Nov-15 iscms     iscmet2
 2-Nov-15 df-cmet   [--same--]  revised
 2-Nov-15 om1opn    [--same--]  revised
 2-Nov-15 om1plusg  [--same--]  revised
 2-Nov-15 topgrpfun topgrpstr   revised
 2-Nov-15 om1val    [--same--]  hypothesis removed
 2-Nov-15 pcophtb   [--same--]  hypothesis removed
 2-Nov-15 pcorev2   [--same--]  hypothesis removed
 2-Nov-15 pcorev    [--same--]  hypothesis removed
 2-Nov-15 pcorevcl  [--same--]  hypothesis removed
 2-Nov-15 pcoass    [--same--]  hypothesis removed
 2-Nov-15 pcopt2    [--same--]  hypothesis removed
 2-Nov-15 pcopt     [--same--]  hypothesis removed
 2-Nov-15 pcoptcl   [--same--]  revised
 2-Nov-15 pcohtpy   [--same--]  hypothesis removed
 2-Nov-15 copco     [--same--]  hypothesis removed
 2-Nov-15 pcocn     [--same--]  hypothesis removed
 2-Nov-15 pcoval2   [--same--]  hypothesis removed
 2-Nov-15 pco1      [--same--]  hypothesis removed
 2-Nov-15 pco0      [--same--]  hypothesis removed
 2-Nov-15 pcoval1   [--same--]  hypothesis removed
 2-Nov-15 pcovalg   [--same--]  hypothesis removed
 2-Nov-15 pcoval    [--same--]  hypothesis removed
 2-Nov-15 pcofval   [--same--]  hypothesis removed
 2-Nov-15 phtpcco2  [--same--]  hypothesis removed
 2-Nov-15 reparpht  [--same--]  hypothesis removed
 2-Nov-15 reparphti [--same--]  hypothesis removed
 2-Nov-15 phtpc01   [--same--]  hypothesis removed
 2-Nov-15 phtpcer   [--same--]  hypothesis removed
 2-Nov-15 isphtpc   [--same--]  hypothesis removed
 2-Nov-15 phtpycc   [--same--]  hypothesis removed
 2-Nov-15 phtpyco2  [--same--]  hypothesis removed
 2-Nov-15 phtpyid   [--same--]  hypothesis removed
 2-Nov-15 phtpy01   [--same--]  hypothesis removed
 2-Nov-15 phtpyi    [--same--]  hypothesis removed
 2-Nov-15 phtpycn   [--same--]  hypothesis removed
 2-Nov-15 phtpyhtpy [--same--]  hypothesis removed
 2-Nov-15 isphtpy   [--same--]  hypothesis removed
 2-Nov-15 htpycc    [--same--]  revised
 2-Nov-15 htpyco2   [--same--]  hypothesis removed
 2-Nov-15 htpyco1   [--same--]  revised
 2-Nov-15 htpyid    [--same--]  revised
 2-Nov-15 htpycom   [--same--]  revised
 2-Nov-15 ishtpyd   [--same--]  revised
 2-Nov-15 htpyi     [--same--]  revised
 2-Nov-15 htpycn    [--same--]  revised
 2-Nov-15 ishtpy    [--same--]  revised
 2-Nov-15 cnmpt2pc  [--same--]  revised
 2-Nov-15 metdscn   [--same--]  revised
 2-Nov-15 metdseq0  [--same--]  revised
 2-Nov-15 metds0    [--same--]  revised
 2-Nov-15 metdsf    [--same--]  revised
 2-Nov-15 metdsval  [--same--]  revised
 2-Nov-15 blcvx     [--same--]  revised
 2-Nov-15 ioo2blex  [--same--]  hypothesis removed
 2-Nov-15 ioo2bl    [--same--]  hypothesis removed
 2-Nov-15 bl2ioo    [--same--]  revised
 2-Nov-15 remetba   ---         deleted; see remet
 2-Nov-15 txcc      ---         deleted; see cnfldtps, xpstopn
 2-Nov-15 cn2met    ---         deleted; see cnfldms, xpsms
 2-Nov-15 cnmetba   ---         deleted; see cnmet
 2-Nov-15 txmet     ---         deleted; see xpstopn, xpsms, xpsdsval
 2-Nov-15 metidcn   ---         deleted; see idcn, cnrest, metrest
 2-Nov-15 metcnss2  ---         deleted; see cnrest, metrest
 2-Nov-15 metcnss   ---         deleted; see cnrest2r, metrest
 2-Nov-15 metcnco   ---         deleted; see cnco
 2-Nov-15 metcni2   ---         deleted; see metcnpi3
 2-Nov-15 metcni    ---         deleted; see metcnpi
 2-Nov-15 metcnpi4  ---         deleted; see metcnpi3
 2-Nov-15 metcnconst ---        deleted; see cnconst
 2-Nov-15 metcnf    ---         deleted; see cnf
 2-Nov-15 metcnpf   ---         deleted; see cnpf
 2-Nov-15 methausi  ---         deleted; see methaus
 2-Nov-15 opn0      mopn0
 2-Nov-15 opnin     mopnin
 2-Nov-15 opnuni    unimopn
 2-Nov-15 opni3     mopni3
 2-Nov-15 opni2     mopni2
 2-Nov-15 opni      mopni
 2-Nov-15 msdmdm    ---         deleted; see msmet
 2-Nov-15 ismsg     isms2       revised
 2-Nov-15 opnss     mopnss
 2-Nov-15 isopn4    elmopn2
 2-Nov-15 opnm      mopnm
 2-Nov-15 opnfss    mopnfss
 2-Nov-15 isopn     elmopn
 2-Nov-15 uniopn2   mopnuni
 2-Nov-15 opntop    mopntop
 2-Nov-15 opnval    mopnval
 2-Nov-15 metxp     ---         deleted; see xpsmet
 2-Nov-15 metss     ---         deleted; see dmss
 2-Nov-15 metssba2  ---         deleted; see metres2
 2-Nov-15 metssba   ---         deleted; see metres
 2-Nov-15 ismet     [--same--]  revised
 2-Nov-15 df-met    [--same--]  changed "D e. Met" to "D e. (Met`X)",
                                affecting all df-met theorems
 2-Nov-15 df-tsms   [--same--]  revised
 2-Nov-15 cnflf2    [--same--]  revised
 2-Nov-15 cnflf     [--same--]  revised
 2-Nov-15 cnpflf    [--same--]  revised
 2-Nov-15 cnpflf2   [--same--]  revised
 2-Nov-15 cnpflfi   [--same--]  revised
 2-Nov-15 flfelbas  [--same--]  revised
 2-Nov-15 isflf     [--same--]  revised
 2-Nov-15 flfnei    [--same--]  revised
 2-Nov-15 flfval    [--same--]  revised
 2-Nov-15 flffval   [--same--]  revised
 2-Nov-15 flimcls   [--same--]  revised
 2-Nov-15 flimcf    [--same--]  revised
 2-Nov-15 fbflim2   [--same--]  revised
 2-Nov-15 fbflim    [--same--]  revised
 2-Nov-15 flimopn   [--same--]  revised
 2-Nov-15 neiflim   [--same--]  revised
 2-Nov-15 flimss2   [--same--]  revised
 2-Nov-15 elflim    [--same--]  revised
 2-Nov-15 trnei     [--same--]  revised
 2-Nov-15 trfil3    [--same--]  revised
 2-Nov-15 trfil2    [--same--]  revised
 2-Nov-15 trfil1    [--same--]  revised
 2-Nov-15 neifil    [--same--]  revised
 2-Nov-15 qtophmeo  [--same--]  revised
 2-Nov-15 xkohmeo   [--same--]  revised
 2-Nov-15 xkocnv    [--same--]  revised
 2-Nov-15 pt1hmeo   [--same--]  revised
 2-Nov-15 txswaphmeo [--same--] revised
 2-Nov-15 contoppr  conhmph     revised
 2-Nov-15 cmptoppr  cmphmph     revised
 2-Nov-15 hmph      [--same--]  hypothesis removed
 2-Nov-15 hmeores   [--same--]  hypothesis removed
 2-Nov-15 hmeocnv   [--same--]  hypothesis removed
 2-Nov-15 hmeobc    ishmeo      hypothesis removed
 2-Nov-15 hmeoima   [--same--]  revised
 2-Nov-15 hmeocnb   ---         deleted; see hmeoima
 2-Nov-15 hmeocna   ---         deleted; see hmeocn, cnima
 2-Nov-15 hmeof1o   [--same--]  hypothesis removed
 2-Nov-15 ishmeo    [--same--]  revised
 2-Nov-15 hmeofval  [--same--]  revised
 2-Nov-15 df-hmph   [--same--]  revised
 2-Nov-15 df-hmeo   [--same--]  revised
 2-Nov-15 qtopcmap  [--same--]  revised
 2-Nov-15 qtopomap  [--same--]  revised
 2-Nov-15 qtoprest  [--same--]  revised
 2-Nov-15 qtopeu    [--same--]  revised
 2-Nov-15 qtopss    [--same--]  revised
 2-Nov-15 qtopcn    [--same--]  revised
 2-Nov-15 qtopcld   [--same--]  revised
 2-Nov-15 qtopid    [--same--]  revised
 2-Nov-15 ---       ---         cnmptid ~ cnmpt2k revised
 2-Nov-15 xkoco2cn  [--same--]  hypothesis removed
 2-Nov-15 xkoco1cn  [--same--]  hypothesis removed
 2-Nov-15 lmcn2     [--same--]  revised
 2-Nov-15 txlm      [--same--]  revised
 2-Nov-15 hauseqlcld [--same--] hypothesis removed
 2-Nov-15 txrest    [--same--]  revised
 2-Nov-15 ptcn      [--same--]  revised
 2-Nov-15 txcnmpt   [--same--]  hypothesis removed
 2-Nov-15 txcn      [--same--]  hypothesis removed
 2-Nov-15 uptx      [--same--]  revised
 2-Nov-15 ptcnp     [--same--]  revised
 2-Nov-15 txcnp     [--same--]  revised
 2-Nov-15 xkoccn    [--same--]  revised
 2-Nov-15 tx2cn     [--same--]  revised
 2-Nov-15 tx1cn     [--same--]  revised
 2-Nov-15 txbasval  [--same--]  revised
 2-Nov-15 txcld     [--same--]  hypothesis removed
 2-Nov-15 txopn     [--same--]  hypothesis removed
 2-Nov-15 eltpt2    eltx        revised
 2-Nov-15 eltpt     ---         deleted; see eltg3
 2-Nov-15 txbas2    txbas       revised
 2-Nov-15 txval     [--same--]  revised
 2-Nov-15 df-tx     [--same--]  revised
 2-Nov-15 kgen2cn   [--same--]  hypothesis removed
 2-Nov-15 kgencn2   [--same--]  revised
 2-Nov-15 kgencn    [--same--]  revised
 2-Nov-15 kgen2ss   [--same--]  revised
 2-Nov-15 elkgen    [--same--]  revised
 2-Nov-15 kgenval   [--same--]  revised
 2-Nov-15 2ndcomap  [--same--]  hypothesis removed
 2-Nov-15 concompcld [--same--] revised
 2-Nov-15 concompid [--same--]  revised
 2-Nov-15 clscon    [--same--]  revised
 2-Nov-15 uncon     [--same--]  revised
 2-Nov-15 iuncon    [--same--]  revised
 2-Nov-15 concn     [--same--]  hypothesis removed
 2-Nov-15 conima    [--same--]  hypothesis removed
 2-Nov-15 consubclo [--same--]  hypothesis removed
 2-Nov-15 nconsubb  [--same--]  revised
 2-Nov-15 cnconn    [--same--]  hypothesis removed
 2-Nov-15 connsub   [--same--]  revised
 2-Nov-15 consuba   [--same--]  revised
 2-Nov-15 dfcon2    [--same--]  revised
 2-Nov-15 alexsub   alexsubALT
 2-Nov-15 cmpfii    [--same--]  revised
 2-Nov-15 sscmp     [--same--]  revised
 2-Nov-15 imacmp    [--same--]  hypothesis removed
 2-Nov-15 rncmp     [--same--]  hypothesis removed
 2-Nov-15 cncmp     [--same--]  hypothesis removed
 2-Nov-15 sshaus    [--same--]  revised
 2-Nov-15 dnsconst  [--same--]  revised
 2-Nov-15 ishausi   ---         deleted; see ishaus
 2-Nov-15 hausnei2  [--same--]  revised
 2-Nov-15 lmcn      [--same--]  hypothesis removed
 2-Nov-15 lmcnp     [--same--]  hypothesis removed
 2-Nov-15 lmff      [--same--]  revised
 2-Nov-15 lmres     [--same--]  revised
 2-Nov-15 lmcl      [--same--]  revised
 2-Nov-15 lmfss     [--same--]  revised
 2-Nov-15 lmfpm     [--same--]  revised
 2-Nov-15 paste     [--same--]  revised
 2-Nov-15 cnindis   [--same--]  revised
 2-Nov-15 cndis     [--same--]  revised
 2-Nov-15 cnprest2  [--same--]  hypothesis removed
 2-Nov-15 cnprest   [--same--]  hypothesis removed
 2-Nov-15 cnpresti  [--same--]  hypothesis removed
 2-Nov-15 cnrest2r  [--same--]  hypothesis removed
 2-Nov-15 cnrest2   [--same--]  hypothesis removed
 2-Nov-15 cnrest    [--same--]  revised
 2-Nov-15 cnconst   [--same--]  revised
 2-Nov-15 cnconst2  [--same--]  revised
 2-Nov-15 cncnp2    [--same--]  revised
 2-Nov-15 cncnp     [--same--]  revised
 2-Nov-15 cncnpi    [--same--]  hypothesis removed
 2-Nov-15 cnsscnp   [--same--]  hypothesis removed
 2-Nov-15 cnss2     [--same--]  revised
 2-Nov-15 cnss1     [--same--]  revised
 2-Nov-15 cnclima   [--same--]  hypothesis removed
 2-Nov-15 iscncl    [--same--]  revised
 2-Nov-15 cnpco     [--same--]  hypothesis removed
 2-Nov-15 cnco      [--same--]  hypothesis removed
 2-Nov-15 cnima     [--same--]  hypothesis removed
 2-Nov-15 ---       ---         lmbr ~ lmcvg revised
 2-Nov-15 idcn      [--same--]  revised
 2-Nov-15 cnpimaex  [--same--]  hypothesis removed
 2-Nov-15 ssidcn    [--same--]  revised
 2-Nov-15 subbascn  [--same--]  revised
 2-Nov-15 tgcn      [--same--]  revised
 2-Nov-15 tgcnp     [--same--]  revised
 2-Nov-15 cnpcl     [--same--]  hypothesis removed
 2-Nov-15 cnpf      [--same--]  hypothesis removed
 2-Nov-15 cnf       [--same--]  hypothesis removed
 2-Nov-15 iscnp2    [--same--]  revised
 2-Nov-15 iscnp     [--same--]  revised
 2-Nov-15 cnpval    [--same--]  revised
 2-Nov-15 iscn      [--same--]  revised
 2-Nov-15 cnpfval   [--same--]  revised
 2-Nov-15 cnfval    [--same--]  revised
 2-Nov-15 lmfval    [--same--]  revised
 2-Nov-15 restsubbas ---        deleted; see firest, tgrest
 2-Nov-15 tgrest    [--same--]  revised
 2-Nov-15 restcldr  [--same--]  revised
 2-Nov-15 restcldi  [--same--]  revised
 2-Nov-15 restsn2   [--same--]  revised
 2-Nov-15 opncldf3  [--same--]  hypothesis removed
 2-Nov-15 opncldf1  [--same--]  revised
 2-Nov-15 elcls3    [--same--]  revised
 2-Nov-15 clsss2    [--same--]  hypothesis removed
 2-Nov-15 incld     [--same--]  hypothesis removed
 2-Nov-15 cldcls    [--same--]  hypothesis removed
 2-Nov-15 uncld     [--same--]  hypothesis removed
 2-Nov-15 intcld    [--same--]  hypothesis removed
 2-Nov-15 iincld    [--same--]  hypothesis removed
 2-Nov-15 difopn    [--same--]  hypothesis removed
 2-Nov-15 cldopn    [--same--]  hypothesis removed
 2-Nov-15 cldss2    [--same--]  hypothesis removed
 2-Nov-15 cldss     [--same--]  hypothesis removed
 2-Nov-15 cctop     [--same--]  revised
 2-Nov-15 fctop2    [--same--]  revised
 2-Nov-15 fctop     [--same--]  revised
 2-Nov-15 subtop    resttop     revised
 2-Nov-15 subtopbas restbas     revised
 2-Nov-15 bastop2   [--same--]  revised; see also tgclb
 2-Nov-15 bastop1   [--same--]  revised; see also tgclb
 2-Nov-15 2basgen   [--same--]  hypothesis removed
 2-Nov-15 basgen2   [--same--]  revised; see also tgclb
 2-Nov-15 tgss3     [--same--]  revised; see also eltg, dfss3
 2-Nov-15 tgss2     [--same--]  hypothesis removed
 2-Nov-15 tgidm     [--same--]  hypothesis removed
 2-Nov-15 tpsstr    ---         deleted; see tpspropd
 2-Nov-15 tpsprop   tpspropd    revised
 2-Nov-15 eltopsp   ---         deleted; see toptopon, eltpsg
 2-Nov-15 eltopspg  ---         deleted; see toptopon, eltpsg
 2-Nov-15 eltpsg    [--same--]  revised
 2-Nov-15 eltps     ---         deleted; see eltpsg
 2-Nov-15 top2tps   ---         deleted; see tpstop
 2-Nov-15 istps5    ---         deleted; see istps
 2-Nov-15 istps4    ---         deleted; see istps
 2-Nov-15 istps3    ---         deleted; see istps
 2-Nov-15 istps2    ---         deleted; see istps
 2-Nov-15 istps     [--same--]  revised
 2-Nov-15 topsn     [--same--]  revised
 2-Nov-15 topgele   [--same--]  revised
 2-Nov-15 df-topsp  [--same--]  revised
 2-Nov-15 znz2rfo   znzrhfo
 2-Nov-15 znz2rval  znzrhval
 2-Nov-15 znz2r2    znzrh2
 2-Nov-15 znz2r     znzrh
 2-Nov-15 z2rpropd  zrhpropd
 2-Nov-15 z2rrhm    zrhrhm
 2-Nov-15 z2rrhmb   zrhrhmb
 2-Nov-15 z2rmulg   zrhmulg
 2-Nov-15 z2rval2   zrhval2
 2-Nov-15 z2rval    zrhval
 2-Nov-15 df-z2r    df-zrh
 2-Nov-15 cz2r      czrh
 2-Nov-15 ---       ---         math token "Z2Ring" changed to "ZRHom"
 2-Nov-15 df-cnfld  [--same--]  revised
 2-Nov-15 ply1ascl  [--same--]  hypothesis removed
 2-Nov-15 ply1mpl1  [--same--]  hypothesis removed
 2-Nov-15 ply1mpl0  [--same--]  hypothesis removed
 2-Nov-15 mplbaspropd [--same--] hypothesis removed
 2-Nov-15 psrplusgpropd [--same--] hypothesis removed
 2-Nov-15 psrbaspropd [--same--] hypothesis removed
 2-Nov-15 ply1mulr  [--same--]  hypothesis removed
 2-Nov-15 ply1vsca  [--same--]  hypothesis removed
 2-Nov-15 ply1plusg [--same--]  hypothesis removed
 2-Nov-15 psr1mulr  [--same--]  hypothesis removed
 2-Nov-15 psr1vsca  [--same--]  hypothesis removed
 2-Nov-15 psr1plusg [--same--]  hypothesis removed
 2-Nov-15 mplmulr   [--same--]  hypothesis removed
 2-Nov-15 mplvscafval [--same--] hypothesis removed
 2-Nov-15 mplplusg  [--same--]  hypothesis removed
 2-Nov-15 opsr1     [--same--]  hypothesis removed
 2-Nov-15 opsr0     [--same--]  hypothesis removed
 2-Nov-15 ply1bas   [--same--]  hypothesis removed
 2-Nov-15 ply1val   [--same--]  hypothesis removed
 2-Nov-15 psr1bas   [--same--]  hypothesis removed
 2-Nov-15 psr1bas2  [--same--]  hypothesis removed
 2-Nov-15 psr1val   [--same--]  hypothesis removed
 2-Nov-15 opsrvsca  [--same--]  hypothesis removed
 2-Nov-15 opsrmulr  [--same--]  hypothesis removed
 2-Nov-15 opsrplusg [--same--]  hypothesis removed
 2-Nov-15 opsrbas   [--same--]  hypothesis removed
 2-Nov-15 opsrle    [--same--]  hypothesis removed
 2-Nov-15 mplvscaval [--same--] hypothesis removed
 2-Nov-15 mplvsca   [--same--]  hypothesis removed
 2-Nov-15 mplvsca2  [--same--]  hypothesis removed
 2-Nov-15 mplmul    [--same--]  hypothesis removed
 2-Nov-15 mpladd    [--same--]  hypothesis removed
 2-Nov-15 mplelf    [--same--]  hypothesis removed
 2-Nov-15 mplbasss  [--same--]  hypothesis removed
 2-Nov-15 mplval2   [--same--]  hypothesis removed
 2-Nov-15 mplelbas  [--same--]  hypothesis removed
 2-Nov-15 mplbas    [--same--]  revised
 2-Nov-15 mplval    [--same--]  hypothesis removed
 2-Nov-15 resspsrbas [--same--] hypothesis removed
 2-Nov-15 psrvscacl [--same--]  hypothesis removed
 2-Nov-15 psrvscaval [--same--] hypothesis removed
 2-Nov-15 psrvsca   [--same--]  hypothesis removed
 2-Nov-15 psrvscafval [--same--] hypothesis removed
 2-Nov-15 psrmulcl  [--same--]  hypothesis removed
 2-Nov-15 psrmulval [--same--]  hypothesis removed
 2-Nov-15 psrmulfval [--same--] hypothesis removed
 2-Nov-15 psrmulr   [--same--]  hypothesis removed
 2-Nov-15 psraddcl  [--same--]  hypothesis removed
 2-Nov-15 psradd    [--same--]  hypothesis removed
 2-Nov-15 psrplusg  [--same--]  hypothesis removed
 2-Nov-15 psrelbas  [--same--]  hypothesis removed
 2-Nov-15 psrbas    [--same--]  hypothesis removed
 2-Nov-15 psrvalfun psrvalstr   revised
 2-Nov-15 psrval    [--same--]  revised
 2-Nov-15 rlm0      [--same--]  hypothesis removed
 2-Nov-15 sralmod0  [--same--]  hypothesis removed
 2-Nov-15 sraval    [--same--]  revised
 2-Nov-15 df-sra    [--same--]  revised
 2-Nov-15 islvec2   islvec
 2-Nov-15 islmhm3   ---         deleted; see islmhm
 2-Nov-15 df-lmic   [--same--]  revised
 2-Nov-15 prdmlmodd prdslmodd
 2-Nov-15 prdmvscacl prdsvscacl
 2-Nov-15 lmodvsubid lmodsubid
 2-Nov-15 lmodvsubeq0 lmodsubeq0
 2-Nov-15 lmodvsubdi2 lmodsubdir
 2-Nov-15 lmodvsubdi1 lmodsubdi
 2-Nov-15 lmodvsass [--same--]  revised
 2-Nov-15 lmodvsdi2 lmodvsdir   revised
 2-Nov-15 lmodvsdi1 lmodvsdi    revised
 2-Nov-15 invrpropd [--same--]  hypothesis removed
 2-Nov-15 rngidpropd [--same--] hypothesis removed
 2-Nov-15 rngdvcan3 dvrcan3
 2-Nov-15 rngdvcan1 dvrcan1
 2-Nov-15 rngdvass  dvrass
 2-Nov-15 rngdv1    dvr1
 2-Nov-15 rngdvid   dvrid
 2-Nov-15 rngdvcl   dvrcl
 2-Nov-15 rngdvval  dvrval
 2-Nov-15 rngdvfval dvrfval
 2-Nov-15 df-rngdv  df-dvr
 2-Nov-15 opprmul   [--same--]  hypothesis removed
 2-Nov-15 opprmulfval [--same--] revised
 2-Nov-15 opprval   [--same--]  revised
 2-Nov-15 df-oppr   [--same--]  revised
 2-Nov-15 prdm1     prds1
 2-Nov-15 prdmcrngd prdscrngd
 2-Nov-15 prdmrngd  prdsrngd
 2-Nov-15 prdmmulrcl prdsmulrcl
 2-Nov-15 prdmmgp2  prdsmgp     revised
 2-Nov-15 prdmmgp1  prdsmgp     revised
 2-Nov-15 dfur2     [--same--]  hypothesis removed
 2-Nov-15 rngidval  [--same--]  hypothesis removed
 2-Nov-15 mgpval    [--same--]  hypothesis removed
 2-Nov-15 prdmgsum  prdsgsum
 2-Nov-15 prdmabld  prdsabld
 2-Nov-15 prdmcmnd  prdscmnd
 2-Nov-15 dfod2     [--same--]  revised
 2-Nov-15 odf1      [--same--]  revised
 2-Nov-15 oddvds    [--same--]  hypothesis removed
 2-Nov-15 odid      [--same--]  revised
 2-Nov-15 odxrcl    ---         deleted; see odcl
 2-Nov-15 odcl      [--same--]  revised
 2-Nov-15 odval     [--same--]  revised
 2-Nov-15 odfval    [--same--]  revised
 2-Nov-15 df-od     [--same--]  revised
 2-Nov-15 symgval   [--same--]  revised
 2-Nov-15 df-symg   [--same--]  revised
 2-Nov-15 df-gic    [--same--]  revised
 2-Nov-15 divsgrp   [--same--]  revised
 2-Nov-15 prdminvgd prdsinvgd
 2-Nov-15 prdmgrpd  prdsgrpd
 2-Nov-15 mulgfval  [--same--]  hypothesis removed
 2-Nov-15 grpinvval [--same--]  hypothesis removed
 2-Nov-15 grpinvfval [--same--] hypothesis removed
 2-Nov-15 grpstr    grppropstr
 2-Nov-15 prdmpjmhm prdspjmhm
 2-Nov-15 prdm0g    prds0g
 2-Nov-15 prdmmndd  prdspmndd
 2-Nov-15 prdmplusgcl prdsplusgcl
 2-Nov-15 grpidpropd [--same--] hypothesis removed
 2-Nov-15 grpidval  [--same--]  revised
 2-Nov-15 df-0g     [--same--]  revised
 2-Nov-15 istoset3  istsr2      revised
 2-Nov-15 istoset   istsr       revised
 2-Nov-15 posreltr  pstr2
 2-Nov-15 posanref  psref2
 2-Nov-15 df-la     df-lar      revised
 2-Nov-15 df-nfw    [--same--]  revised
 2-Nov-15 df-ts     df-tsr      revised
 2-Nov-15 ipoval    [--same--]  revised
 2-Nov-15 df-ipo    [--same--]  revised
 2-Nov-15 erlecpbl  [--same--]  revised
 2-Nov-15 ercpbl    [--same--]  revised
 2-Nov-15 imasvscaf [--same--]  revised
 2-Nov-15 imasopn   imastset    revised
 2-Nov-15 imasvsca  [--same--]  revised
 2-Nov-15 imassca   [--same--]  revised
 2-Nov-15 imasdist  imasds      revised
 2-Nov-15 imasval   [--same--]  revised
 2-Nov-15 prdmbasmpt2 prdsbasmpt2
 2-Nov-15 prdmvscafval prdsvscafval
 2-Nov-15 prdmvscaval prdsvscaval
 2-Nov-15 prdmmulrfval prdsmulrfval
 2-Nov-15 prdmmulrval prdsmulrval
 2-Nov-15 prdmplusgfval prdsplusgfval
 2-Nov-15 prdmplusgval prdsplusgval
 2-Nov-15 prdmvsca  prdsvsca
 2-Nov-15 prdmbasprj prdsbasprj
 2-Nov-15 prdmbasfn prdsbasfn
 2-Nov-15 prdmbasmpt prdsbasmpt
 2-Nov-15 prdmbas2  prdsbas2
 2-Nov-15 prdmvsca  prdsvsca
 2-Nov-15 prdmmulr  prdsmulr
 2-Nov-15 prdmplusg prdsplusg
 2-Nov-15 prdmsca   prdssca
 2-Nov-15 prdmbas   prdsbas
 2-Nov-15 prdmval   prdsval
 2-Nov-15 prdmvalfun prdsvalstr
 2-Nov-15 reldmprdm reldmprds
 2-Nov-15 prdmbasex prdsbasex
 2-Nov-15 df-prdm   df-prds
 2-Nov-15 ---       ---         math token "Xm_" changed to "Xs_"
 2-Nov-15 cprdm     cprds
 2-Nov-15 posle     ---         deleted; see 2strop
 2-Nov-15 posbase   ---         deleted; see 2strbas
 2-Nov-15 posfn     ---         deleted; see 2strstr
 2-Nov-15 tpstopset ---         deleted; see 2strop
 2-Nov-15 tpsbase   ---         deleted; see 2strbas
 2-Nov-15 tpsfn     ---         deleted; see 2strstr
 2-Nov-15 algfn     algstr      revised
 2-Nov-15 lmodfn    lmodstr     revised
 2-Nov-15 rngfn     rngstr      revised
 2-Nov-15 rnglem    ---         deleted; see rngstr
 2-Nov-15 grpfn     grpstr      revised
 2-Nov-15 grplem    ---         deleted; see grpstr
 2-Nov-15 ---       ---         math token "ip" changed to ".i"
 2-Nov-15 ---       ---         math token ".i" changed to ".iOLD"
 2-Nov-15 ---       ---         math token "vsca" changed to ".s"
 2-Nov-15 ---       ---         math token ".s" changed to ".sOLD"
 2-Nov-15 ---       ---         df-base ~ basendx, resslem, df-plusg ~ df-ds
                                revised
 2-Nov-15 leisorel  [--same--]  revised
 2-Nov-15 nnesqi    nnesq       revised
 2-Nov-15 nnlesqi   nnlesq      revised
 2-Nov-15 nnsqcli   nnsqcl      revised
 2-Nov-15 icoshftf1oii ---      deleted; see icoshftf1o
 2-Nov-15 ubicc2    [--same--]  revised
 2-Nov-15 lbicc2    [--same--]  revised
 2-Nov-15 ltneii    gtneii      revised
 2-Nov-15 ltne      [--same--]  revised
 2-Nov-15 iundom    [--same--]  revised
 2-Nov-15 unidomg   unidom      revised
 2-Nov-15 unidom    [--same--]  revised
 2-Nov-15 trcl      [--same--]  revised
 2-Nov-15 fipwuni   [--same--]  hypothesis removed
 2-Nov-15 fi0       fieq0
 2-Nov-15 unifi     [--same--]  revised
 2-Nov-15 dmen      ---         deleted; see ener
 2-Nov-15 f1oen2g   f1oen3g     variables renamed
 2-Nov-15 fvopabf4  fvmptmap    revised
 2-Nov-15 ereldmb   ereldm
 2-Nov-15 ereldm    [--same--]  revised
 2-Nov-15 iser2d    iserd       revised
 2-Nov-15 iser      iserd       revised
 2-Nov-15 erdmrn    ---         deleted; see erdm, errn
 2-Nov-15 errtr     ---         deleted; see ertr
 2-Nov-15 errsym    ---         deleted; see ersym
 2-Nov-15 df-er     [--same--]  revised
 2-Nov-15 wer       [--same--]  changed "Er R" to "R Er A", affecting all df-er
                                theorems
 2-Nov-15 frsucopab frsucmpt    revised
 2-Nov-15 rdgsucopabn rdgsucmptnf revised
 2-Nov-15 rdgsucopab rdgsucmptf revised
 2-Nov-15 fv4       [--same--]  hypothesis removed
 2-Nov-15 fsplit    [--same--]  revised
 2-Nov-15 fpar      [--same--]  revised
 2-Nov-15 curry2    [--same--]  revised
 2-Nov-15 curry1    [--same--]  revised
 2-Nov-15 iunfoprab dfmpt2      revised
 2-Nov-15 oprab2co  [--same--]  revised
 2-Nov-15 oprabco   [--same--]  revised
 2-Nov-15 elrnoprab elrnmpt2    revised
 2-Nov-15 elrnoprabg elrnmpt2g  revised
 2-Nov-15 dmoprab2  dmmpt2      revised
 2-Nov-15 fnoprab2  fnmpt2i     revised
 2-Nov-15 fnoprab2g ---         deleted; see fmpt2, dffn2
 2-Nov-15 foprab    ---         deleted; see fmpt2
 2-Nov-15 foprab2   fmpt2       revised
 2-Nov-15 elopaba   [--same--]  variables renamed
 2-Nov-15 copsex2gb [--same--]  variables renamed
 2-Nov-15 copsex2ga [--same--]  variables renamed
 2-Nov-15 oprabopab dfoprab4    revised
 2-Nov-15 oprabopabf dfoprab4f  revised
 2-Nov-15 dfopab5sf ---         deleted; see mpt2mpt
 2-Nov-15 dfopab5s  ---         deleted; see mpt2mpt
 2-Nov-15 dfopab4s  dfopab4     revised
 2-Nov-15 dfopab3s  dfopab3     revised
 2-Nov-15 dfopab3   dfopab3s
 2-Nov-15 dfopab2   [--same--]  revised
 2-Nov-15 csbopeq1a [--same--]  revised
 2-Nov-15 sbcopeq1a [--same--]  revised
 2-Nov-15 caofdir   [--same--]  variables renamed
 2-Nov-15 caofdi    [--same--]  variables renamed
 2-Nov-15 caovdird  [--same--]  variables renamed
 2-Nov-15 caovdirg  [--same--]  variables renamed
 2-Nov-15 caovdid   [--same--]  variables renamed
 2-Nov-15 caovdig   [--same--]  variables renamed
 2-Nov-15 ov5       ovmpt2      revised
 2-Nov-15 ov2       ovmpt2      revised
 2-Nov-15 ov2g      ovmpt2g     revised
 2-Nov-15 ov2ag     ovmpt2ga    revised
 2-Nov-15 ov4g      ovmpt4g     revised
 2-Nov-15 ov2gf     [--same--]  revised
 2-Nov-15 oprabex2  mpt2ex      revised
 2-Nov-15 oprabex2g mpt2exg     revised
 2-Nov-15 fov       ---         deleted; see fnov, ffnov
 2-Nov-15 fnov2     fnov
 2-Nov-15 brwitnlem [--same--]  revised
 2-Nov-15 fopabap   fmptap      revised
 2-Nov-15 fopabsn   fmptsn      revised
 2-Nov-15 fopabcos  fmptcos     revised
 2-Nov-15 fopabco   fmptco      revised
 2-Nov-15 fopabfv   ---         deleted; see dffn5, ffnfv
 2-Nov-15 fopab     fmpti       revised
 2-Nov-15 fopab3    ---         deleted; see df-f, fnmpti
 2-Nov-15 rnssopab  ---         deleted; see fmpt, frn
 2-Nov-15 fopabssxp ---         deleted; see fmpt, fssxp
 2-Nov-15 fopab2    ---         deleted; see fmpt
 2-Nov-15 fopabex2  ---         deleted; see mptex
 2-Nov-15 opabex2g  ---         deleted; see mptexg
 2-Nov-15 opabex2   ---         deleted; see mptex
 2-Nov-15 fnasrn    [--same--]  revised
 2-Nov-15 elrnopab  ---         deleted; see elrnmpti
 2-Nov-15 elrnopabg ---         deleted; see elrnmptg
 2-Nov-15 eqfnfv2   eqfnfv
 2-Nov-15 eqfnfv    eqfnfv2
 2-Nov-15 fvopab5   [--same--]  revised
 2-Nov-15 fvopabs   ---         deleted; see fvmpts
 2-Nov-15 fvopab2   ---         deleted; see fvmpt2
 2-Nov-15 fvopab    ---         deleted; see fvmpt
 2-Nov-15 fvopabf   ---         deleted; see fvmptf
 2-Nov-15 fvopabnf  ---         deleted; see fvmptnf
 2-Nov-15 fvopabgf  ---         deleted; see fvmptf
 2-Nov-15 fvopabn   ---         deleted; see fvmptn
 2-Nov-15 fvopabg   ---         deleted; see fvmptg
 2-Nov-15 fvopab4sf ---         deleted; see fvmpts
 2-Nov-15 fvopab4f  fvmpts      revised
 2-Nov-15 fvopab4gf fvmptf      revised
 2-Nov-15 fvopab4   fvmpt       revised
 2-Nov-15 fvopab4g  fvmptg      revised
 2-Nov-15 fvopab4t  fvmptt      revised
 2-Nov-15 dffn5     [--same--]  revised
 2-Nov-15 tz6.12c   [--same--]  hypothesis removed
 2-Nov-15 tz6.12f   [--same--]  variables renamed
 2-Nov-15 tz6.12    [--same--]  hypothesis removed
 2-Nov-15 tz6.12-1  [--same--]  hypothesis removed
 2-Nov-15 fv3       [--same--]  hypothesis removed
 2-Nov-15 elfv      [--same--]  hypothesis removed
 2-Nov-15 fv2       [--same--]  hypothesis removed
 2-Nov-15 dmopab2   ---         deleted; see dmmpti
 2-Nov-15 fnopab2   ---         deleted; see fnmpti
 2-Nov-15 fnopab2g  ---         deleted; see mptfng
 2-Nov-15 iunfopab  dfmpt       revised
 2-Nov-15 funeu2    [--same--]  variables renamed
 2-Nov-15 funeu     [--same--]  variables renamed
 2-Nov-15 funmo     [--same--]  variables renamed
 2-Nov-15 dffun6    [--same--]  variables renamed
 2-Nov-15 opswap    [--same--]  hypothesis removed
 2-Nov-15 rnopab2   ---         deleted; see rnmpt
 2-Nov-15 fconstopab ---        deleted; see fconstmpt
 2-Nov-15 elomg     ---         deleted; see elom
 2-Nov-15 elom      [--same--]  revised
 2-Nov-15 df-om     [--same--]  revised
 2-Nov-15 rexxfr2d  [--same--]  revised
 2-Nov-15 ralxfr2d  [--same--]  revised
 2-Nov-15 hbcsb1    hbcsb1f
 2-Nov-15 csbeq2i   [--same--]  hypothesis removed
 2-Nov-15 csbeq2dv  [--same--]  hypothesis removed
 2-Nov-15 hbsbc1v   hbsbc1      hypothesis removed
 2-Nov-15 hbsbc1    hbsbc1f
 2-Nov-15 rexrab    [--same--]  variables renamed
 2-Nov-15 rexab     [--same--]  variables renamed
 2-Nov-15 ceqsralv  [--same--]  hypothesis removed
16-Aug-15 dif1en    [--same--]  hypothesis removed
11-Aug-15 df-sgm    [--same--]  revised
11-Aug-15 pi1xfrf1o pi1xfrgim   revised
11-Aug-15 pi1xfr    [--same--]  revised
11-Aug-15 pi1id     [--same--]  revised
11-Aug-15 pi1gp     pi1grp
11-Aug-15 pi1pval   pi1addval   revised
11-Aug-15 pi1f      pi1addf     revised
11-Aug-15 pi1fval   ---         deleted; see pi1addval
11-Aug-15 pi1bvalqs pi1bas      revised
11-Aug-15 elpi1i    [--same--]  revised
11-Aug-15 elpi1     [--same--]  revised
11-Aug-15 pi1bval   ---         deleted; see pi1bas
11-Aug-15 pi1val    [--same--]  revised
11-Aug-15 pcohtpy   [--same--]  hypothesis removed
11-Aug-15 pcoloopf  om1addcl    revised
11-Aug-15 df-pi1    [--same--]  revised
11-Aug-15 phtpc01   [--same--]  hypothesis removed
11-Aug-15 phtpcdm   ---         deleted; see phtpcer
11-Aug-15 isphtpc   [--same--]  hypothesis removed
11-Aug-15 conntoppr contoppr
11-Aug-15 cnvhmpha  hmeocnv
11-Aug-15 hmeomap   hmeof1o
11-Aug-15 ishomeo   ishmeo
11-Aug-15 homeofval hmeofval
11-Aug-15 df-homeo  df-hmeo
11-Aug-15 chomeo    chmph
11-Aug-15 chomeosm  chmeo
11-Aug-15 ---       ---         df-imas, df-qus theorems: hypothesis revised
11-Aug-15 pcadd2    [--same--]  hypothesis removed
11-Aug-15 pcadd     [--same--]  hypothesis removed
11-Aug-15 pcz       [--same--]  hypothesis removed
11-Aug-15 pc11      [--same--]  revised
11-Aug-15 pc2dvds   [--same--]  revised
11-Aug-15 pcabs     [--same--]  hypothesis removed
11-Aug-15 pcneg     [--same--]  hypothesis removed
11-Aug-15 pcdvdsb   [--same--]  revised
11-Aug-15 df-pc     [--same--]  revised
11-Aug-15 dmenr     ---         deleted; see enrer
11-Aug-15 dmenq     ---         deleted; see enqer
11-Aug-15 ---       ---         otoscl ~ otosen deleted; see df-oi
11-Aug-15 r0weon    [--same--]  revised
11-Aug-15 hta       [--same--]  revised
11-Aug-15 onssr1    [--same--]  revised
11-Aug-15 uniwf     [--same--]  revised
11-Aug-15 unwf      [--same--]  revised
11-Aug-15 pwwf      [--same--]  revised
11-Aug-15 rankr1ag  [--same--]  revised
11-Aug-15 r1val1    [--same--]  revised
11-Aug-15 oieu      [--same--]  revised
11-Aug-15 oicl      [--same--]  revised
11-Aug-15 ordtype   [--same--]  revised
11-Aug-15 oiex      oiexg       revised
11-Aug-15 df-oi     [--same--]  revised
11-Aug-15 domssex2  [--same--]  hypothesis added
11-Aug-15 domss2    [--same--]  hypothesis added
11-Aug-15 en3       [--same--]  hypothesis added
11-Aug-15 en2       [--same--]  hypothesis added
11-Aug-15 en3d      [--same--]  hypothesis added
11-Aug-15 en2d      [--same--]  hypothesis added
11-Aug-15 ixpssmapg [--same--]  variables renamed
11-Aug-15 qsss      [--same--]  revised
11-Aug-15 uniqs2    [--same--]  revised
11-Aug-15 ereldmb   [--same--]  revised
11-Aug-15 ereldm    [--same--]  revised
11-Aug-15 erth2     [--same--]  revised
11-Aug-15 erth      [--same--]  revised
11-Aug-15 ecss      [--same--]  revised
11-Aug-15 erref     [--same--]  revised
11-Aug-15 tz7.44-3  [--same--]  revised
11-Aug-15 tz7.44-2  [--same--]  revised
11-Aug-15 tz7.44-1  [--same--]  revised
11-Aug-15 smoge     [--same--]  deleted; use smogt
11-Aug-15 fnwe      [--same--]  revised
11-Aug-15 weniso    [--same--]  revised
11-Aug-15 epne3     [--same--]  revised
11-Aug-15 fr3nr     [--same--]  revised
11-Aug-15 wereucl   ---         deleted; use wereu and reucl
11-Aug-15 efrn2lp   [--same--]  revised
11-Aug-15 fr2nr     [--same--]  revised
11-Aug-15 frirr     [--same--]  revised
11-Aug-15 frc       [--same--]  revised
11-Aug-15 dffr2     [--same--]  revised
 9-Aug-15 ---       ---         df-fbas, df-fg, df-fil, and df-fm revised.
                                Individual changes not noted; version with *OLD
                                is set.mm@5db2041
29-Jul-15 ax10      ax10from10o
29-Jul-15 ax9       ax9from9o
19-Jun-15 uvcf1     [--same--]  (in SO's mathbox) revised
19-Jun-15 pwssnf1o  [--same--]  moved from SO's mathbox to main set.mm
19-Jun-15 mapsnf1o  [--same--]  moved from SO's mathbox to main set.mm
19-Jun-15 ixpsnf1o  [--same--]  moved from SO's mathbox to main set.mm
19-Jun-15 elixpsn   [--same--]  moved from SO's mathbox to main set.mm
19-Jun-15 ---       ---         df-gim ~ lmicsym moved from SO's mathbox
                                to main set.mm
19-Jun-15 isfld     isfldOLD
19-Jun-15 df-zn     [--same--]  moved from MC's mathbox to main set.mm; revised
19-Jun-15 df-q2r    df-z2r      moved from MC's mathbox to main set.mm; revised
19-Jun-15 ---       ---         df-lgs ~ lgssq2 moved from MC's mathbox
                                to main set.mm
19-Jun-15 evlval    [--same--]  hypothesis removed
19-Jun-15 vr1val    [--same--]  hypothesis removed
19-Jun-15 df-evl1   [--same--]  revised
19-Jun-15 abvn0b    [--same--]  revised
19-Jun-15 isdomn2   [--same--]  revised
19-Jun-15 isdomn    [--same--]  revised
19-Jun-15 df-idom   [--same--]  revised
19-Jun-15 df-domn   [--same--]  revised
19-Jun-15 lsppropd  [--same--]  revised
19-Jun-15 lsspropd  [--same--]  revised
19-Jun-15 isrhmd    [--same--]  hypothesis reordered
19-Jun-15 unitdvcl  [--same--]  hypothesis removed
19-Jun-15 rngel1ne0 rngelznr    revised
19-Jun-15 eqgval    [--same--]  hypothesis removed
19-Jun-15 eqgval    [--same--]  hypothesis removed
19-Jun-15 mhmpropd  [--same--]  revised
19-Jun-15 fznn      [--same--]  revised
13-Jun-15 ---       ---         rlmfn ~ ply1pid moved from SO's mathbox
                                to main set.mm
13-Jun-15 ---       ---         strfvi ~ grpsubpropd moved from SO's mathbox
                                to main set.mm
13-Jun-15 ---       ---         pwsdiagel ~ pwsdiagrhm moved from SO's mathbox
                                to main set.mm
13-Jun-15 pwselbasb [--same--]  moved from SO's mathbox to main set.mm
13-Jun-15 ---       ---         sraval ~ issubrngd2 moved from SO's mathbox
                                to main set.mm
13-Jun-15 ---       ---         df-odu ~ mreclatdemo moved from SO's mathbox
                                to main set.mm
13-Jun-15 ---       ---         subsubrg2 ~ dvdsr02 moved from SO's mathbox
                                to main set.mm
13-Jun-15 gsumpt    [--same--]  moved from SO's mathbox to main set.mm
13-Jun-15 rngel1ne0 [--same--]  moved from SO's mathbox to main set.mm
13-Jun-15 suppfif1  [--same--]  moved from SO's mathbox to main set.mm
13-Jun-15 ---       ---         nnfi ~ suppssof1 moved from SO's mathbox
                                to main set.mm
13-Jun-15 ---       ---         fco2 ~ fvco4i moved from SO's mathbox
                                to main set.mm
13-Jun-15 fnfvof    [--same--]  moved from SO's mathbox to main set.mm
13-Jun-15 ---       ---         fneqeql ~ fncoeqres moved from SO's mathbox
                                to main set.mm
13-Jun-15 fnimaeq0  [--same--]  moved from SO's mathbox to main set.mm
13-Jun-15 supxrss   [--same--]  moved from SO's mathbox to main set.mm
13-Jun-15 rabun2    [--same--]  moved from SO's mathbox to main set.mm
13-Jun-15 elin3     [--same--]  moved from SO's mathbox to main set.mm
13-Jun-15 elin2     [--same--]  moved from SO's mathbox to main set.mm
13-Jun-15 ---       ---         rint0 ~ elrint2 moved from SO's mathbox
                                to main set.mm
13-Jun-15 wilth     [--same--]  moved from MC's mathbox to main set.mm
13-Jun-15 ---       ---         df-od ~ sylow3 moved from MC's mathbox
                                to main set.mm
13-Jun-15 grpinvpropd [--same--] revised
13-Jun-15 grpsubfval [--same--] revised
13-Jun-15 cardval2  [--same--]  revised
13-Jun-15 cardsdomel [--same--] revised
13-Jun-15 cardsdomel2 cardsdomel revised
13-Jun-15 coires1   [--same--]  revised
 4-Jun-15 tpaaa     tpidm       moved from DAW's mathbox to main set.mm
 4-Jun-15 tpabb     tpidm23     moved from DAW's mathbox to main set.mm
 4-Jun-15 tpaba     tpidm13     moved from DAW's mathbox to main set.mm
 4-Jun-15 tpaab     tpidm12     moved from DAW's mathbox to main set.mm
 4-Jun-15 ifnefalse [--same--]  moved from DAW's mathbox to main set.mm
 4-Jun-15 ptolemy   [--same--]  moved from DAW's mathbox to main set.mm
 4-Jun-15 cosmul    [--same--]  moved from DAW's mathbox to main set.mm
 4-Jun-15 sinmul    [--same--]  moved from DAW's mathbox to main set.mm
 4-Jun-15 dfac1     dfac3       moved from SO's mathbox to main set.mm
 4-Jun-15 dfac3     dfac9       moved from SO's mathbox to main set.mm
 4-Jun-15 dfaccard  dfac10      moved from SO's mathbox to main set.mm
 4-Jun-15 dfac10b   [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 axac      [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 dfac10    dfac10c     moved from SO's mathbox to main set.mm
 4-Jun-15 df-ac     [--same--]  moved from SO's mathbox to main set.mm; revised
 4-Jun-15 df-recs   [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 marypha2  [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 marypha1  [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 ---       ---         df-har ~ hsmex3 moved from SO's mathbox
                                to main set.mm
 4-Jun-15 domunfican [--same--] moved from SO's mathbox to main set.mm
 4-Jun-15 domunsncan [--same--] moved from SO's mathbox to main set.mm
 4-Jun-15 domdifsn  [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 wemoiso2  [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 wemoiso   [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 weniso    [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 fodomfi2  [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 fipreimaNEW fipreima  moved from SO's mathbox to main set.mm
 4-Jun-15 imafi     [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 f1ssr     [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 imainrect [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 f1eqcocnv [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 foeqcnvco [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 fococnv2  [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 fnunirn   [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 fvmpt3    [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 mpt20     [--same--]  moved from SO's mathbox to main set.mm; revised
 4-Jun-15 iunopab   [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 pwidg     [--same--]  moved from SO's mathbox to main set.mm
 4-Jun-15 uffixfr   [--same--]  moved from JGH's mathbox to main set.mm;revised
 4-Jun-15 ---       ---         df-ufil ~ ufildr moved from JH's mathbox
                                to main set.mm
 4-Jun-15 filfinnfr [--same--]  moved from JH's mathbox to main set.mm
 4-Jun-15 csdfil    [--same--]  moved from FL's mathbox to main set.mm
 4-Jun-15 rcfpfil   cfinfil     moved from FL's mathbox to main set.mm
 4-Jun-15 excxor    [--same--]  moved from FL's mathbox to main set.mm
 4-Jun-15 assxor    [--same--]  moved from FL's mathbox to main set.mm
 4-Jun-15 df-xor    [--same--]  moved from FL's mathbox to main set.mm
 4-Jun-15 ---       ---         lukshef-ax1 ~ re2luk3 moved from AH's mathbox
                                to main set.mm
 4-Jun-15 FFSid     falnanfal   moved from AH's mathbox to main set.mm
 4-Jun-15 FTSid     falnantru   moved from AH's mathbox to main set.mm
 4-Jun-15 TFSid     trunanfal   moved from AH's mathbox to main set.mm
 4-Jun-15 TTSid     trunantru   moved from AH's mathbox to main set.mm
 4-Jun-15 FFBid     falbifal    moved from AH's mathbox to main set.mm
 4-Jun-15 FTBid     falbitru    moved from AH's mathbox to main set.mm
 4-Jun-15 TFBid     trubifal    moved from AH's mathbox to main set.mm
 4-Jun-15 TTBid     trubitru    moved from AH's mathbox to main set.mm
 4-Jun-15 FNid      notfal      moved from AH's mathbox to main set.mm
 4-Jun-15 TNid      nottru      moved from AH's mathbox to main set.mm
 4-Jun-15 FFIid     falimfal    moved from AH's mathbox to main set.mm
 4-Jun-15 FTIid     falimtru    moved from AH's mathbox to main set.mm
 4-Jun-15 TFIid     truimfal    moved from AH's mathbox to main set.mm
 4-Jun-15 TTIid     truimtru    moved from AH's mathbox to main set.mm
 4-Jun-15 FFOid     falorfal    moved from AH's mathbox to main set.mm
 4-Jun-15 FTOid     falortru    moved from AH's mathbox to main set.mm
 4-Jun-15 TFOid     truorfal    moved from AH's mathbox to main set.mm
 4-Jun-15 TTOid     truortru    moved from AH's mathbox to main set.mm
 4-Jun-15 FFAid     falanfal    moved from AH's mathbox to main set.mm
 4-Jun-15 FTAid     falantru    moved from AH's mathbox to main set.mm
 4-Jun-15 TFAid     truanfal    moved from AH's mathbox to main set.mm
 4-Jun-15 TTAid     truantru    moved from AH's mathbox to main set.mm
 4-Jun-15 AiT       a1tru       moved from AH's mathbox to main set.mm
 4-Jun-15 FiA       falim       moved from AH's mathbox to main set.mm
 4-Jun-15 falvar    nbfal       moved from AH's mathbox to main set.mm
 4-Jun-15 truvar    tbtru       moved from AH's mathbox to main set.mm
 4-Jun-15 ordsucuniel [--same--] moved from SF's mathbox to main set.mm
 4-Jun-15 mpt2fun   [--same--]  moved from SF's mathbox to main set.mm
 4-Jun-15 ccnf      ccnfn
 4-Jun-15 ltbval    [--same--]  revised
 4-Jun-15 df-ltbag  [--same--]  revised
 4-Jun-15 pwcfsdom  [--same--]  revised
 4-Jun-15 zornn0    [--same--]  revised
 4-Jun-15 zorn      [--same--]  revised
 4-Jun-15 aceqkm    dfackm      revised
 4-Jun-15 aceq8     dfac8       revised
 4-Jun-15 aceq7     dfac7       revised
 4-Jun-15 aceq6     dfac2       revised
 4-Jun-15 aceq6a    dfac2a      revised
 4-Jun-15 aceq5     dfac5       revised
 4-Jun-15 aceq4     dfac4       revised
 4-Jun-15 aceq3     dfac3       revised
 4-Jun-15 alephfp   [--same--]  revised
 4-Jun-15 aceq8c    dfac8c
 4-Jun-15 aceq8b    dfac8b
 4-Jun-15 aceq8a    dfac8a
 4-Jun-15 ondomcard harcard     revised
 4-Jun-15 df-aleph  [--same--]  revised
 4-Jun-15 finsschain [--same--] revised
 4-Jun-15 fipreima  [--same--]  hypothesis removed
 4-Jun-15 oeworde   [--same--]  revised
 4-Jun-15 oeword    [--same--]  revised
 4-Jun-15 oecan     [--same--]  revised
 4-Jun-15 oeord     [--same--]  revised
 4-Jun-15 oeordi    [--same--]  revised
 4-Jun-15 omeu      [--same--]  revised
 4-Jun-15 oarec     [--same--]  revised
 4-Jun-15 rdgval    [--same--]  revised
 4-Jun-15 df-rdg    [--same--]  revised
 4-Jun-15 tfr3      [--same--]  revised
 4-Jun-15 tfr2      [--same--]  revised
 4-Jun-15 tfr1      [--same--]  revised
 4-Jun-15 notfal    fal
 4-Jun-15 nic-justbi nanbi
 4-Jun-15 nic-justneg nannot
 4-Jun-15 nic-justim nanim
 4-Jun-15 nic-justlem nannan
 4-Jun-15 df-nand   df-nan
 4-Jun-15 wnand     wnan
23-May-15 grpinvnzcl [--same--] moved from SO's mathbox to main set.mm
23-May-15 grpinvnz  [--same--]  moved from SO's mathbox to main set.mm
 7-May-15 dihopellsm [--same--] (in NM's mathbox) hypothesis removed
 7-May-15 xihopellsmN [--same--] (in NM's mathbox) hypothesis removed
 7-May-15 dihopcl   [--same--]  (in NM's mathbox) hypothesis removed
 7-May-15 dihopelvalbN [--same--] (in NM's mathbox) hypothesis removed
 7-May-15 diblsmopel [--same--] (in NM's mathbox) hypothesis removed
 7-May-15 dibopelval3 [--same--] (in NM's mathbox) hypothesis removed
 7-May-15 dibopelval2 [--same--] (in NM's mathbox) hypothesis removed
 7-May-15 dibopelvalN [--same--] (in NM's mathbox) hypothesis removed
 7-May-15 df-ocomp  [--same--]  (in NM's mathbox) revised
 7-May-15 phlfun    [--same--]  (in NM's mathbox) revised
 7-May-15 phlfn     [--same--]  (in NM's mathbox) revised
 7-May-15 srngfn    [--same--]  (in NM's mathbox) revised
 7-May-15 bnj96     [--same--]  (in JB's mathbox) hypothesis added
 7-May-15 bnj536    [--same--]  (in JB's mathbox) hypothesis removed
 7-May-15 bnj142    [--same--]  (in JB's mathbox) hypothesis removed
 7-May-15 bnj136    [--same--]  (in JB's mathbox) hypothesis removed
 7-May-15 addcomgi  [--same--]  (in AS's mathbox) hypothesis removed
 7-May-15 lmiclbs   [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 lmimlbs   [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 lmmmlem   ---         (in SO's mathbox) deleted; use lmhmlmod2
 7-May-15 lnmlmic   [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 lnmepi    [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 lmhmfgima [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 kercvrlsm [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 lmicsym   [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 lmimcnv   [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 lmimf1o   [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 islmim    [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 gicsubgen [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 gicen     [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 gimcnv    [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 lmhmf1o   [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 subggim   [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 gimf1o    [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 isgim     [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 gimlem2   ---         (in SO's mathbox) deleted
 7-May-15 elovmpt2  [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 infpssALT [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 infpssen1 [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 infpssr   [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 fidomtri2 [--same--]  moved from SO's mathbox to main set.mm; revised
 7-May-15 pw2f1oval2 [--same--] (in SO's mathbox) hypothesis removed
 7-May-15 pw2f1oval [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 mapfzcons2 [--same--] (in SO's mathbox) hypothesis removed
 7-May-15 mapfzcons1cl [--same--] (in SO's mathbox) hypothesis removed
 7-May-15 mapfzcons1 [--same--] (in SO's mathbox) hypothesis removed
 7-May-15 elmapssres [--same--] (in SO's mathbox) hypothesis removed
 7-May-15 mapco2    [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 mapco2g   [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 elmapex2  ---         (in SO's mathbox) deleted
 7-May-15 constmap  [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 xpwdomg   [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 unwdomg   [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 brwdom3i  [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 wdomndom  ---         (in SO's mathbox) deleted; use brrelex12
 7-May-15 brwdomn0  [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 numth3    [--same--]  moved from SO's mathbox to main set.mm
 7-May-15 isnum2    [--same--]  moved from SO's mathbox to main set.mm; hyp rem
 7-May-15 isghmd    [--same--]  moved from SO's mathbox to main set.mm
 7-May-15 difsnen   [--same--]  moved from SO's mathbox to main set.mm
 7-May-15 fsnunres  [--same--]  moved from SO's mathbox to main set.mm
 7-May-15 fsnunfv   [--same--]  moved from SO's mathbox to main set.mm
 7-May-15 fsnunf2   [--same--]  moved from SO's mathbox to main set.mm
 7-May-15 fsnunf    [--same--]  moved from SO's mathbox to main set.mm
 7-May-15 fnsnsplit [--same--]  moved from SO's mathbox to main set.mm
 7-May-15 ralxpmap  [--same--]  (in SO's mathbox) hypothesis removed
 7-May-15 reldmmap  [--same--]  moved from SO's mathbox to main set.mm
 7-May-15 fconst6g  [--same--]  moved from SO's mathbox to main set.mm
 7-May-15 fconst6   [--same--]  moved from JM's mathbox to main set.mm
 7-May-15 xrletr2   [--same--]  (in FL's mathbox) hypothesis removed
 7-May-15 mlteqer   [--same--]  (in FL's mathbox) hypothesis removed
 7-May-15 csdfil    [--same--]  (in FL's mathbox) revised
 7-May-15 curgrpact [--same--]  (in FL's mathbox) hypothesis removed
 7-May-15 rngapm    [--same--]  (in FL's mathbox) hypothesis removed
 7-May-15 gapm2     [--same--]  (in FL's mathbox) hypothesis removed
 7-May-15 nfwpr4c   [--same--]  (in FL's mathbox) hypothesis removed
 7-May-15 prltub    [--same--]  (in FL's mathbox) hypothesis removed
 7-May-15 domtri2   domtri3     (in FL's mathbox)
 7-May-15 brtxp2    [--same--]  (in SF's mathbox) hypothesis removed
 7-May-15 predfz    [--same--]  (in SF's mathbox) hypothesis removed
 7-May-15 brtp      [--same--]  (in SF's mathbox) hypothesis removed
 7-May-15 epelg     [--same--]  moved from SF's mathbox to main set.mm
 7-May-15 epelcNEW  epelc       moved from SF's mathbox to main set.mm
 7-May-15 eupath    [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 eupath2   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 eupap1    [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 eupares   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 eupaseg   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 eupapf    [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 eupafi    [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 eupaf1o   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 eupacl    [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 eupai     [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 iseupa    [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 umgraun   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 umgrares  [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 umgraex   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 umgrafi   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 umgrale   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 umgran0   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 umgrass   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 umgraf    [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 umgraf2   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 cvmfo     [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 cvmlift   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 cvmliftmo [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 cvmliftmoi [--same--] (in MC's mathbox) hypothesis removed
 7-May-15 cvmsiota  [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 cvmseu    [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 cvmscld   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 cvmsf1o   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 cvmcov    [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 cvmtop2   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 iscvm     [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 sylow2    [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 slwhash   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 slwpgp    [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 slwpss    [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 slwispgp  [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 slwsubg   [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 isslw     [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 ispgp     [--same--]  (in MC's mathbox) hypothesis removed
 7-May-15 hlimunii  hlimuni     hypothesis removed
 7-May-15 hlimadd   [--same--]  hypothesis removed
 7-May-15 hvsubopr  hbsubf
 7-May-15 bpos1     [--same--]  revised
 7-May-15 logcnss   logdmss
 7-May-15 itgulm    [--same--]  hypothesis removed
 7-May-15 mbfulm    [--same--]  hypothesis removed
 7-May-15 ulmdv     [--same--]  hypothesis removed
 7-May-15 ulmcn     [--same--]  hypothesis removed
 7-May-15 ulmbdd    [--same--]  hypothesis removed
 7-May-15 ulmss     [--same--]  hypothesis removed
 7-May-15 ulmshft   [--same--]  hypothesis removed
 7-May-15 ulmres    [--same--]  hypothesis removed
 7-May-15 ulmclm    [--same--]  hypothesis removed
 7-May-15 ulmi      [--same--]  hypothesis removed
 7-May-15 ulmcl     [--same--]  hypothesis removed
 7-May-15 ulmval    [--same--]  revised
 7-May-15 dvlm      [--same--]  hypothesis removed
 7-May-15 dvcl      [--same--]  hypothesis removed
 7-May-15 eldv      [--same--]  hypothesis removed
 7-May-15 mbflim    [--same--]  hypothesis removed
 7-May-15 cncfco    [--same--]  hypothesis removed
 7-May-15 climcncf  [--same--]  hypothesis removed
 7-May-15 cncffvrn  [--same--]  revised
 7-May-15 rescncf   [--same--]  hypothesis removed
 7-May-15 cncfi     [--same--]  hypothesis removed
 7-May-15 cncff     [--same--]  hypothesis removed
 7-May-15 cncfrss2  [--same--]  hypothesis removed
 7-May-15 nvlmcl    [--same--]  hypothesis removed
 7-May-15 nvvcop    [--same--]  revised
 7-May-15 nvss      [--same--]  revised
 7-May-15 caublcls  [--same--]  hypothesis removed
 7-May-15 metelcls  [--same--]  hypothesis removed
 7-May-15 lmclimf   [--same--]  hypothesis removed
 7-May-15 lmclim    [--same--]  hypothesis removed
 7-May-15 lmle      [--same--]  hypothesis removed
 7-May-15 lmmbrf    [--same--]  hypothesis removed
 7-May-15 lmmcvg    [--same--]  hypothesis removed
 7-May-15 lmmbr3    [--same--]  hypothesis removed
 7-May-15 lmmbr2    [--same--]  hypothesis removed
 7-May-15 lmmbr     [--same--]  hypothesis removed
 7-May-15 lincmb01icc icccvx
 7-May-15 resubtop  rerest
 7-May-15 subtopmet metrest
 7-May-15 qtopsubsp qtoprest
 7-May-15 lmcn2     [--same--]  hypothesis removed
 7-May-15 txlm      [--same--]  hypothesis removed
 7-May-15 txsubsp   txrest
 7-May-15 hauspwdom [--same--]  revised
 7-May-15 1stcelcls [--same--]  hypothesis removed
 7-May-15 lly1stc   [--same--]  revised
 7-May-15 nllyidm   [--same--]  revised
 7-May-15 llyidm    [--same--]  revised
 7-May-15 nllysubsp nllyrest
 7-May-15 llysubsp  llyrest
 7-May-15 subsplly  restlly
 7-May-15 subspnlly restnlly
 7-May-15 2ndcsubsp 2ndcrest
 7-May-15 1stcsubsp 1stcrest
 7-May-15 lmmo      [--same--]  hypothesis removed
 7-May-15 subsphaus resthaus
 7-May-15 lmcn      [--same--]  hypothesis removed
 7-May-15 lmcld     [--same--]  hypothesis removed
 7-May-15 lmcls     [--same--]  hypothesis removed
 7-May-15 lmres     [--same--]  hypothesis removed
 7-May-15 lmcl      [--same--]  hypothesis removed
 7-May-15 lmfss     [--same--]  hypothesis removed
 7-May-15 lmfpm     [--same--]  hypothesis removed
 7-May-15 cnpsubsp2 cnprest2
 7-May-15 cnpsubsp  cnprest
 7-May-15 cnpsubspi cnpresti
 7-May-15 cnsubsp2r cnrest2r
 7-May-15 cnsubsp2  cnrest2
 7-May-15 cnsubsp   cnrest
 7-May-15 lmbrf     [--same--]  hypothesis removed
 7-May-15 lmbr2     [--same--]  hypothesis removed
 7-May-15 lmbr      [--same--]  hypothesis removed
 7-May-15 subntr    restntr
 7-May-15 subcls    restcls
 7-May-15 subspdis  restdis
 7-May-15 subspsubbas restsubbas
 7-May-15 tgsubsp   tgrest
 7-May-15 subspopn2 restopn2
 7-May-15 sssubsp   ssrest      hypothesis removed
 7-May-15 subspopnb restopnb
 7-May-15 subspcld2 restcldr
 7-May-15 subspcld  restcldi
 7-May-15 subcld    restcld
 7-May-15 subspsn2  restsn2
 7-May-15 subspsn   restsn
 7-May-15 subsp0    rest0
 7-May-15 subspuni2 restuni2
 7-May-15 subspint  restin      hypothesis generalized
 7-May-15 subsubtop restabs     hypothesis generalized
 7-May-15 subspco   restco      revised
 7-May-15 stoig     [--same--]  revised
 7-May-15 subspuni  restuni     revised
 7-May-15 subsptop  resttop
 7-May-15 subsprcl  restrcl     revised
 7-May-15 subspid   restid      hypothesis generalized
 7-May-15 elsubspr  elrestr     hypothesis generalized
 7-May-15 elsubsp   elrest      hypothesis generalized
 7-May-15 subspval  restval     hypothesis generalized
 7-May-15 df-subsp  df-rest     arguments were swapped; revisions due to the
                                new form factor are not noted
 7-May-15 csubsp    crest
 7-May-15 reslmhm   [--same--]  hypothesis removed
 7-May-15 lmhmkerlss [--same--] hypothesis removed
 7-May-15 lmhmrnlss [--same--]  hypothesis removed
 7-May-15 lmhmlsp   [--same--]  hypothesis removed
 7-May-15 lmhmima   [--same--]  hypothesis removed
 7-May-15 lmhmlin   [--same--]  hypothesis removed
 7-May-15 lmhmf     [--same--]  hypothesis removed
 7-May-15 lmhmlmod2 [--same--]  hypothesis removed
 7-May-15 lmhmsca   [--same--]  hypothesis removed
 7-May-15 islmhm2   [--same--]  hypothesis removed
 7-May-15 islmhm    [--same--]  hypothesis removed
 7-May-15 dvdsrneg  [--same--]  revised
 7-May-15 dvdsrmul1 [--same--]  revised
 7-May-15 dvdsrid   [--same--]  revised
 7-May-15 dvdsr2    [--same--]  hypothesis removed
 7-May-15 dvdsr     [--same--]  hypothesis removed
 7-May-15 dvdsrval  [--same--]  hypothesis removed
 7-May-15 gsumhomo  ---         deleted; use gsummhm
 7-May-15 lactghmga [--same--]  hypothesis removed
 7-May-15 galactghm [--same--]  hypothesis removed
 7-May-15 orbsta2   [--same--]  hypothesis removed
 7-May-15 orbsta    [--same--]  hypothesis removed
 7-May-15 orbstaval [--same--]  hypothesis removed
 7-May-15 orbstaeu  [--same--]  hypothesis removed
 7-May-15 gastacos  [--same--]  hypothesis removed
 7-May-15 gastacl   [--same--]  hypothesis removed
 7-May-15 gaorber   [--same--]  hypothesis removed
 7-May-15 gaorb     [--same--]  hypothesis removed
 7-May-15 gapm      [--same--]  hypothesis removed
 7-May-15 gacan     [--same--]  hypothesis removed
 7-May-15 galcan    [--same--]  hypothesis removed
 7-May-15 gasubg    [--same--]  hypothesis removed
 7-May-15 gass      [--same--]  hypothesis removed
 7-May-15 gaass     [--same--]  hypothesis removed
 7-May-15 gafo      [--same--]  hypothesis removed
 7-May-15 gaf       [--same--]  hypothesis removed
 7-May-15 gagrpid   [--same--]  hypothesis removed
 7-May-15 isga      [--same--]  hypothesis removed
 7-May-15 ghmf1o    [--same--]  hypothesis removed
 7-May-15 ghmf1     [--same--]  hypothesis removed
 7-May-15 ghmeqker  [--same--]  hypothesis removed
 7-May-15 ghmker    [--same--]  hypothesis removed
 7-May-15 ghmsub    [--same--]  hypothesis removed
 7-May-15 ghmima    [--same--]  hypothesis removed
 7-May-15 resghm    [--same--]  hypothesis removed
 7-May-15 ghmrn     [--same--]  hypothesis removed
 7-May-15 ghminv    [--same--]  hypothesis removed
 7-May-15 ghmid     [--same--]  hypothesis removed
 7-May-15 ghmlin    [--same--]  hypothesis removed
 7-May-15 ghmgrp2   [--same--]  hypothesis removed
 7-May-15 ghmf      [--same--]  hypothesis removed
 7-May-15 isghm2    ---         deleted; use isghm
 7-May-15 isghm     [--same--]  hypothesis removed
 7-May-15 spwpr4c   [--same--]  hypothesis removed
 7-May-15 spwpr4    [--same--]  hypothesis removed
 7-May-15 prdmvalfun [--same--] revised
 7-May-15 posfn     [--same--]  revised
 7-May-15 tpsfn     [--same--]  revised
 7-May-15 ressvsca  [--same--]  hypothesis added
 7-May-15 resssca   [--same--]  hypothesis added
 7-May-15 algfun    [--same--]  revised
 7-May-15 algfn     [--same--]  revised
 7-May-15 lmodfun   [--same--]  revised
 7-May-15 lmodfn    [--same--]  revised
 7-May-15 ressmulr  [--same--]  hypothesis added
 7-May-15 rngfn     [--same--]  revised
 7-May-15 ressplusg [--same--]  hypothesis added
 7-May-15 grpfn     [--same--]  revised
 7-May-15 strlemor3 [--same--]  revised
 7-May-15 strlemor2 [--same--]  revised
 7-May-15 strlemor1 [--same--]  revised
 7-May-15 strlemor0 [--same--]  revised
 7-May-15 df-ds     [--same--]  revised
 7-May-15 resslem2  ---         deleted
 7-May-15 resslem   [--same--]  revised
 7-May-15 strfvd    [--same--]  hypothesis removed
 7-May-15 strfv     [--same--]  hypothesis removed
 7-May-15 setscom   [--same--]  hypothesis added
 7-May-15 setsabs   [--same--]  hypothesis added
 7-May-15 setsval   [--same--]  hypothesis added
 7-May-15 --        ---         11prm ~ 4001prm revised for base 10
 7-May-15 gcdi      [--same--]  revised
 7-May-15 modsubi   [--same--]  revised
 7-May-15 mod2xnegi [--same--]  revised
 7-May-15 modxp1i   [--same--]  revised
 7-May-15 mod2xi    [--same--]  revised
 7-May-15 modxai    [--same--]  revised
 7-May-15 --        ---         dec2dvds1 ~ dec2nprm revised for base 10
 7-May-15 iserodd   [--same--]  revised
 7-May-15 maxprmfct [--same--]  revised
 7-May-15 nprmi     [--same--]  revised
 7-May-15 1nprm     [--same--]  revised
 7-May-15 algrflem  [--same--]  hypothesis added
 7-May-15 ndvdsi    [--same--]  revised
 7-May-15 climfsum  [--same--]  hypothesis removed
 7-May-15 cvgcmpub  [--same--]  hypothesis removed
 7-May-15 iserabs   [--same--]  hypothesis removed
 7-May-15 isumclim  [--same--]  hypothesis removed
 7-May-15 climim    [--same--]  hypothesis removed
 7-May-15 climre    [--same--]  hypothesis removed
 7-May-15 climcj    [--same--]  hypothesis removed
 7-May-15 climabs   [--same--]  hypothesis removed
 7-May-15 isercoll2 [--same--]  hypothesis removed
 7-May-15 isercoll  [--same--]  hypothesis removed
 7-May-15 isershft  [--same--]  hypothesis removed
 7-May-15 iserle    [--same--]  hypothesis removed
 7-May-15 isermulc2 [--same--]  hypothesis removed
 7-May-15 iserex    [--same--]  hypothesis removed
 7-May-15 clim2ser2 [--same--]  hypothesis removed
 7-May-15 clim2ser  [--same--]  hypothesis removed
 7-May-15 rlimdiv   [--same--]  hypothesis removed
 7-May-15 rlimmul   [--same--]  hypothesis removed
 7-May-15 rlimsub   [--same--]  hypothesis removed
 7-May-15 rlimadd   [--same--]  hypothesis removed
 7-May-15 climsqz2  [--same--]  hypothesis removed
 7-May-15 climsqz   [--same--]  hypothesis removed
 7-May-15 climle    [--same--]  hypothesis removed
 7-May-15 climsubc2 [--same--]  hypothesis removed
 7-May-15 climsubc1 [--same--]  hypothesis removed
 7-May-15 climmulc2 [--same--]  hypothesis removed
 7-May-15 climaddc2 [--same--]  hypothesis removed
 7-May-15 climaddc1 [--same--]  hypothesis removed
 7-May-15 climsub   [--same--]  hypothesis removed
 7-May-15 climmul   [--same--]  hypothesis removed
 7-May-15 climadd   [--same--]  hypothesis removed
 7-May-15 climrecl  [--same--]  hypothesis removed
 7-May-15 climshft2 [--same--]  hypothesis removed
 7-May-15 climshft  [--same--]  hypothesis removed
 7-May-15 climres   [--same--]  hypothesis removed
 7-May-15 climmpt2  [--same--]  hypothesis removed
 7-May-15 2clim     [--same--]  hypothesis removed
 7-May-15 climmpt   [--same--]  hypothesis removed
 7-May-15 rlimeq    [--same--]  hypothesis removed
 7-May-15 climeq    [--same--]  hypothesis removed
 7-May-15 rlimuni   [--same--]  hypothesis removed
 7-May-15 rlimresb  [--same--]  hypothesis removed
 7-May-15 rlimres2  [--same--]  hypothesis removed
 7-May-15 rlimres   [--same--]  hypothesis removed
 7-May-15 climreu   [--same--]  hypothesis removed
 7-May-15 climeu    [--same--]  hypothesis removed
 7-May-15 climuni   [--same--]  hypothesis removed
 7-May-15 rlimi     [--same--]  hypothesis removed
 7-May-15 climi2    [--same--]  hypothesis removed
 7-May-15 climi     [--same--]  hypothesis removed
 7-May-15 clim2     [--same--]  hypothesis removed
 7-May-15 rlimcl    [--same--]  hypothesis removed
 7-May-15 climcl    [--same--]  hypothesis removed
 7-May-15 rlim      [--same--]  hypothesis removed
 7-May-15 clim      [--same--]  hypothesis removed
 7-May-15 seqcoll2  [--same--]  hypothesis removed
 7-May-15 hashfacen [--same--]  hypothesis removed
 7-May-15 hashdom   [--same--]  hypothesis generalized
 7-May-15 hasheni   [--same--]  hypothesis removed
 7-May-15 hashinf   [--same--]  revised
 7-May-15 permnn    [--same--]  hypothesis removed
 7-May-15 bccl2     [--same--]  hypothesis removed
 7-May-15 bcp1nk    [--same--]  hypothesis removed
 7-May-15 bcp1n     [--same--]  hypothesis removed
 7-May-15 bcm1k     [--same--]  hypothesis removed
 7-May-15 bcrpcl    [--same--]  hypothesis removed
 7-May-15 bcval2    [--same--]  hypothesis removed
 7-May-15 fseqsupubi [--same--] hypothesis removed
 7-May-15 fsequb2   [--same--]  hypothesis removed
 7-May-15 fsequb    [--same--]  hypothesis removed
 7-May-15 fznuz     [--same--]  hypothesis removed
 7-May-15 fz2ex     ---         deleted
 7-May-15 fzrev3i   [--same--]  hypothesis removed
 7-May-15 fzrev3    [--same--]  hypothesis removed
 7-May-15 fzrev2i   [--same--]  hypothesis removed
 7-May-15 fzp1disj  [--same--]  hypothesis removed
 7-May-15 fzelp1i   ---         deleted; use fzelp1
 7-May-15 fzp1elp1  [--same--]  hypothesis removed
 7-May-15 fzelp1    [--same--]  hypothesis removed
 7-May-15 fzp1ss    [--same--]  hypothesis removed
 7-May-15 fzssp1    [--same--]  hypothesis removed
 7-May-15 fzss1     [--same--]  hypothesis removed
 7-May-15 fzopth    [--same--]  hypothesis removed
 7-May-15 fznn0sub2 [--same--]  hypothesis removed
 7-May-15 fznn0sub  [--same--]  hypothesis removed
 7-May-15 elfz3nn0  [--same--]  hypothesis removed
 7-May-15 elfz2nn0  [--same--]  hypothesis removed
 7-May-15 fzdisj    [--same--]  hypothesis removed
 7-May-15 fzsplit   [--same--]  hypothesis removed
 7-May-15 fzn0      [--same--]  revised
 7-May-15 peano2fzr [--same--]  hypothesis removed
 7-May-15 elfzuz2   [--same--]  hypothesis removed
 7-May-15 elfzle3   [--same--]  hypothesis removed
 7-May-15 elfzel2g  ---         deleted; use elfzel2
 7-May-15 elfzel2i  elfzel2     hypothesis removed
 7-May-15 elfzuz3   [--same--]  hypothesis removed
 7-May-15 elfzuzb   [--same--]  hypothesis removed
 7-May-15 elfz2     [--same--]  hypothesis removed
 7-May-15 iccss2    [--same--]  hypothesis removed
 7-May-15 iccssioo  [--same--]  hypothesis removed
 7-May-15 iccss     [--same--]  hypothesis removed
 7-May-15 elioo4g   [--same--]  hypothesis removed
 7-May-15 iooss2    [--same--]  hypothesis removed
 7-May-15 iooss1    [--same--]  hypothesis removed
 7-May-15 elioo3g   [--same--]  hypothesis removed
 7-May-15 ixxss12   [--same--]  hypothesis removed
 7-May-15 ixxss2    [--same--]  hypothesis removed
 7-May-15 ixxss1    [--same--]  hypothesis removed
 7-May-15 ixxssixx  [--same--]  revised
 7-May-15 elixx3g   [--same--]  hypothesis removed
 7-May-15 uzsupss   [--same--]  revised
 7-May-15 0p1e1     1e0p1
 7-May-15 ---       ---         deccl ~ decbin3 revised for base 10
 7-May-15 znn0sub2  ---         deleted; use znn0sub or uznn0sub
 7-May-15 lt01      0lt1
 7-May-15 subopr    subf
 7-May-15 ax-ltxr   [--same--]  revised
 7-May-15 ax-mulopr ax-mulf
 7-May-15 ax-addopr ax-addf
 7-May-15 axmulopr  axmulf
 7-May-15 axaddopr  axaddf
 7-May-15 ---       ---         addcompi ~ ltresr: hypothesis removed
 7-May-15 fodomnumg ---         deleted; use fodomnum
 7-May-15 tskwe2    [--same--]  revised
 7-May-15 unictb    [--same--]  hypothesis removed
 7-May-15 iunctb    [--same--]  hypothesis removed
 7-May-15 infpss    [--same--]  hypothesis removed
 7-May-15 infmap1   [--same--]  deleted; use mappwen
 7-May-15 infxpidm  [--same--]  hypothesis removed
 7-May-15 carddomi  ---         deleted; use carddomi2 or carddom
 7-May-15 cardid    [--same--]  hypothesis added
 7-May-15 cardval   [--same--]  hypothesis added
 7-May-15 brdom4    [--same--]  hypothesis removed
 7-May-15 brdom5    [--same--]  hypothesis removed
 7-May-15 brdom3    [--same--]  hypothesis removed
 7-May-15 fodomb    [--same--]  hypothesis removed
 7-May-15 numth2    [--same--]  hypothesis added
 7-May-15 infmap2   infmap      hypothesis removed
 7-May-15 infxp     [--same--]  revised
 7-May-15 csdfillem infunsdom1  revised
 7-May-15 infxpabs  [--same--]  revised
 7-May-15 infxpdom  [--same--]  revised
 7-May-15 infdif2   [--same--]  revised
 7-May-15 infdif    [--same--]  revised
 7-May-15 infcda    [--same--]  revised
 7-May-15 infunabs  [--same--]  revised
 7-May-15 infcdaabs [--same--]  revised
 7-May-15 cardacda  [--same--]  revised
 7-May-15 cdainf    [--same--]  hypothesis removed
 7-May-15 cdadom3   [--same--]  revised: sethood antecedent
 7-May-15 cdadom2   [--same--]  hypothesis removed
 7-May-15 cdadom1   [--same--]  hypothesis removed
 7-May-15 mapcdaen  [--same--]  revised: sethood antecedent
 7-May-15 xpcdaen   [--same--]  revised: sethood antecedent
 7-May-15 cdaassen  [--same--]  revised: sethood antecedent
 7-May-15 cdacomen  [--same--]  hypothesis removed
 7-May-15 xp2cda    [--same--]  revised: sethood antecedent
 7-May-15 xp1en     [--same--]  revised: sethood antecedent
 7-May-15 cda0en    [--same--]  revised: sethood antecedent
 7-May-15 cdaeng    ---         deleted; use cdaen
 7-May-15 cdaen     [--same--]  hypothesis removed
 7-May-15 cdaung    cdaun
 7-May-15 cdaung    cdaun
 7-May-15 cda2en    [--same--]  revised: sethood antecedent
 7-May-15 cdaun     [--same--]  revised: sethood antecedent
 7-May-15 uncdadom  [--same--]  revised: sethood antecedent
 7-May-15 cdavali   [--same--]  deleted; use cdaval
 7-May-15 fodomnum  [--same--]  revised
 7-May-15 onssnum   [--same--]  revised
 7-May-15 ondomen   [--same--]  revised
 7-May-15 ween      [--same--]  revised
 7-May-15 aceq8b    [--same--]  revised
 7-May-15 aceq8a    [--same--]  revised
 7-May-15 mappwen   [--same--]  revised
 7-May-15 infxpidm2 [--same--]  revised
 7-May-15 fidomtri  [--same--]  hypothesis added
 7-May-15 ficardsdom cardsdom2  revised
 7-May-15 ficarddom carddom2    revised
 7-May-15 ficarden  carden2     revised
 7-May-15 carddom2  [--same--]  revised
 7-May-15 carddomi2 [--same--]  revised
 7-May-15 carden2b  [--same--]  hypothesis removed
 7-May-15 cardnueq0 [--same--]  revised
 7-May-15 cardid2   [--same--]  revised
 7-May-15 cardval3b ---         deleted; use ndmfv
 7-May-15 cardval3a ---         deleted; use cardval3
 7-May-15 cardval3  [--same--]  revised
 7-May-15 isfinite3 isfinite
 7-May-15 card2inf  [--same--]  hypothesis added
 7-May-15 fisup2g   fisupcl
 7-May-15 unbnn2    [--same--]  revised
 7-May-15 unbnn     [--same--]  revised
 7-May-15 f1finf1o  [--same--]  revised
 7-May-15 isfinite1 isfiniteg   revised
 7-May-15 omsdomnn  nnsdomg     revised
 7-May-15 unxpdom2  [--same--]  hypothesis removed
 7-May-15 0sdom1dom [--same--]  hypothesis removed
 7-May-15 sucdom    [--same--]  hypothesis removed
 7-May-15 sucdom2   [--same--]  hypothesis removed
 7-May-15 ssenen    [--same--]  hypothesis removed
 7-May-15 mapunen   [--same--]  revised: sethood antecedent
 7-May-15 mapxpen   [--same--]  revised: sethood antecedent
 7-May-15 mapdom2   [--same--]  hypothesis removed
 7-May-15 mapdom1   [--same--]  hypothesis removed
 7-May-15 mapen     [--same--]  hypothesis removed
 7-May-15 xpnum     [--same--]  revised
 7-May-15 xpeng     [--same--]  deleted; use xpen
 7-May-15 xpen      [--same--]  hypothesis removed
 7-May-15 tskwe     [--same--]  revised
 7-May-15 domssex   [--same--]  hypothesis removed
 7-May-15 fodomr    [--same--]  hypothesis removed
 7-May-15 onenon    [--same--]  revised
 7-May-15 sdomen2   [--same--]  hypothesis removed
 7-May-15 sdomen1   [--same--]  hypothesis removed
 7-May-15 domen2    [--same--]  hypothesis removed
 7-May-15 domen1    [--same--]  hypothesis removed
 7-May-15 enen2     [--same--]  hypothesis removed
 7-May-15 enen1     [--same--]  hypothesis removed
 7-May-15 sdomex    ---         deleted; use brrelex12
 7-May-15 sdomentr  [--same--]  hypothesis removed
 7-May-15 sdomdomtr [--same--]  hypothesis removed
 7-May-15 0dom      [--same--]  hypothesis added
 7-May-15 sbthbg    sbthb       hypothesis removed
 7-May-15 xpdom3    [--same--]  hypothesis added
 7-May-15 xpdom1    [--same--]  hypothesis removed
 7-May-15 xpdom1g   [--same--]  hypothesis removed
 7-May-15 xpdom2    [--same--]  hypothesis removed
 7-May-15 undom     [--same--]  hypothesis removed
 7-May-15 finnum    [--same--]  revised
 7-May-15 map1      [--same--]  revised: sethood antecedent
 7-May-15 mapsnen   [--same--]  hypothesis added
 7-May-15 2dom      [--same--]  hypothesis removed
 7-May-15 entr4i    [--same--]  hypothesis removed
 7-May-15 entr3i    [--same--]  hypothesis removed
 7-May-15 entr2i    [--same--]  hypothesis removed
 7-May-15 ensymi    [--same--]  hypothesis removed
 7-May-15 ensym     [--same--]  hypothesis removed
 7-May-15 ensymg    ---         deleted; use ensym
 7-May-15 ssdom2g   ssdomg
 7-May-15 ssdomg    [--same--]  revised
 7-May-15 dom3      dom2
 7-May-15 dom2      [--same--]  revised
 7-May-15 dom3d     dom2d
 7-May-15 dom2d     [--same--]  revised
 7-May-15 f1dom     [--same--]  revised
 7-May-15 f1dom2g   f1domg
 7-May-15 f1domg    [--same--]  revised
 7-May-15 bren      [--same--]  hypothesis removed
 7-May-15 breng     ---         deleted; use bren
 7-May-15 ixpssmap  [--same--]  hypothesis removed
 7-May-15 ixpssmapg [--same--]  hypothesis removed
 7-May-15 mapss     [--same--]  revised: sethood antecedent
 7-May-15 map0b     [--same--]  hypothesis removed
 7-May-15 map0e     [--same--]  revised: sethood antecedent
 7-May-15 mapsspw   [--same--]  hypothesis removed
 7-May-15 pmresg    [--same--]  hypothesis removed
 7-May-15 elmapi    [--same--]  hypothesis removed
 7-May-15 elmapex1  elmapex     revised
 7-May-15 eceqoveq  [--same--]  hypothesis removed
 7-May-15 ecopovtrn [--same--]  hypothesis removed
 7-May-15 ecopovsym [--same--]  hypothesis removed
 7-May-15 brecop2   [--same--]  hypothesis removed
 7-May-15 errsym    [--same--]  hypothesis removed
 7-May-15 curry2val [--same--]  hypothesis removed
 7-May-15 curry1val [--same--]  hypothesis removed
 7-May-15 eqop      [--same--]  hypothesis removed
 7-May-15 ot2ndg    [--same--]  hypothesis added
 7-May-15 ot1stg    [--same--]  hypothesis added
 7-May-15 op1stg    [--same--]  hypothesis added
 7-May-15 op1st     [--same--]  hypothesis added
 7-May-15 caovmo    [--same--]  hypothesis removed
 7-May-15 ndmovordi [--same--]  hypothesis removed
 7-May-15 ndmovord  [--same--]  hypothesis removed
 7-May-15 ndmovdistr [--same--] hypothesis removed
 7-May-15 ndmovass  [--same--]  hypothesis removed
 7-May-15 ndmovcom  [--same--]  hypothesis removed
 7-May-15 ndmovrcl  [--same--]  hypothesis removed
 7-May-15 ndmov     [--same--]  hypothesis removed
 7-May-15 ndmovcl   [--same--]  revised
 7-May-15 ndmovg    [--same--]  hypothesis removed
 7-May-15 fnopovb   fnotovb     revised; hypothesis removed
 7-May-15 ovprc2if  ---         deleted
 7-May-15 ovprc2    [--same--]  revised
 7-May-15 fvopab3   fvopab3g    revised: sethood antecedent
 7-May-15 fniniseg  [--same--]  hypothesis removed
 7-May-15 funbrfv2bg funbrfv2b  hypothesis removed
 7-May-15 funbrfvbg ---         deleted; use funbrfvb
 7-May-15 funopfvb  [--same--]  hypothesis removed
 7-May-15 funbrfvb  [--same--]  hypothesis removed
 7-May-15 fnbrfvb   [--same--]  hypothesis removed
 7-May-15 fnbrfvbg  ---         deleted; use fnbrfvb
 7-May-15 funopfvg  ---         deleted; use funopfv
 7-May-15 funopfv   [--same--]  hypothesis removed
 7-May-15 funbrfv   [--same--]  hypothesis removed
 7-May-15 opelf     [--same--]  hypothesis added
 7-May-15 fnunsn    [--same--]  hypothesis added; deduction form
 7-May-15 fntp      [--same--]  hypothesis added
 7-May-15 fnprg     [--same--]  hypothesis added
 7-May-15 fnsn      [--same--]  hypothesis added
 7-May-15 funtp     [--same--]  hypothesis added
 7-May-15 funpr     [--same--]  hypothesis added
 7-May-15 funprg    [--same--]  hypothesis added
 7-May-15 funsng    [--same--]  hypothesis added
 7-May-15 funsn     [--same--]  hypothesis added
 7-May-15 funopg    [--same--]  hypothesis added
 7-May-15 rnsnop    [--same--]  hypothesis removed
 7-May-15 cnvsn     [--same--]  hypothesis added
 7-May-15 op1sta    [--same--]  hypothesis added
 7-May-15 dmtpop    [--same--]  hypothesis added
 7-May-15 dmprop    [--same--]  hypothesis added
 7-May-15 dmsnop    [--same--]  hypothesis added
 7-May-15 irrexi    ---         deleted; use brrelex12
 7-May-15 relelrng  [--same--]  hypothesis removed
 7-May-15 breldmg   [--same--]  hypothesis added
 7-May-15 breldm    [--same--]  hypothesis added
 7-May-15 opeldm    [--same--]  hypothesis added
 7-May-15 issetid   [--same--]  revised
 7-May-15 opelxpex2 ---         deleted; use opelxp2
 7-May-15 opeliunxp2 [--same--] hypothesis removed
 7-May-15 relsnop   [--same--]  hypothesis added
 7-May-15 brinxp2   [--same--]  hypothesis removed
 7-May-15 opeliunxpg opeliunxp  hypothesis removed
 7-May-15 brel      [--same--]  hypothesis removed
 7-May-15 brelg     ---         deleted; use brel
 7-May-15 opprc4b   ---         deleted
 7-May-15 opelvv    [--same--]  hypothesis added
 7-May-15 opelxpv   ---         deleted
 7-May-15 brxp      [--same--]  hypothesis removed
 7-May-15 opelxpg   ---         deleted; use opelxp
 7-May-15 opelxp    [--same--]  hypothesis removed
 7-May-15 vtoclribr ---         deleted; use vtoclr
 7-May-15 vtoclrbr  ---         deleted; use vtoclr
 7-May-15 vtoclr    [--same--]  hypothesis removed
 7-May-15 op1stb    [--same--]  hypothesis added
 7-May-15 wereucl   [--same--]  revised: sethood antecedent
 7-May-15 wereu     [--same--]  revised: sethood antecedent
 7-May-15 epelc     [--same--]  hypothesis removed
 7-May-15 uniopel   [--same--]  hypothesis added
 7-May-15 uniop     [--same--]  hypothesis added
 7-May-15 euop2     [--same--]  hypothesis added
 7-May-15 opeqpr    [--same--]  hypothesis added
 7-May-15 moop2     [--same--]  hypothesis added
 7-May-15 opcom     [--same--]  hypothesis added
 7-May-15 opth2     ---         deleted; use opth or opth2
 7-May-15 oteqex    [--same--]  revised
 7-May-15 opeqex    [--same--]  revised
 7-May-15 opprc3    ---         deleted
 7-May-15 opprc1b   0nelop      revised
 7-May-15 opnz      [--same--]  hypothesis added; revised (use opnz or opnzi)
 7-May-15 otthg     otth        hypothesis removed
 7-May-15 otthg2    otth2       hypothesis removed
 7-May-15 opthgg    opthg       hypothesis removed
 7-May-15 opthg2    ---         deleted; use opth2
 7-May-15 opthg     ---         deleted; use opth
 7-May-15 opth      [--same--]  hypothesis removed
 7-May-15 opth1     [--same--]  hypothesis added
 7-May-15 opi2      [--same--]  hypothesis added
 7-May-15 opi1      [--same--]  hypothesis added
 7-May-15 elop      [--same--]  hypothesis added
 7-May-15 brprc     ---         deleted
 7-May-15 opprc2if  ---         deleted
 7-May-15 opprc2    [--same--]  revised
 7-May-15 opprc1    [--same--]  revised
 7-May-15 opid      [--same--]  hypothesis added
 7-May-15 ralsng    ralsns
 7-May-15 ralsn     [--same--]  revised
 7-May-15 raltp     [--same--]  revised
 7-May-15 rexpr     [--same--]  revised
 7-May-15 ralpr     [--same--]  revised
 7-May-15 rexprg    [--same--]  revised
 7-May-15 ralprg    [--same--]  revised
 7-May-15 df-op     [--same--]  revised; see dfop or dfopg
14-Apr-15 mptiniseg [--same--]  moved from SO's mathbox to main set.mm
14-Apr-15 mptcnvima mptpreima   moved from SO's mathbox to main set.mm
14-Apr-15 resmpt3   [--same--]  moved from SO's mathbox to main set.mm
14-Apr-15 fidomtri  [--same--]  moved from SO's mathbox to main set.mm
14-Apr-15 ficardsdom [--same--] moved from SO's mathbox to main set.mm
14-Apr-15 euen1     [--same--]  moved from SO's mathbox to main set.mm
14-Apr-15 reuen1    [--same--]  moved from SO's mathbox to main set.mm
14-Apr-15 dvdsadd2b [--same--]  moved from SO's mathbox to main set.mm
14-Apr-15 riincld   [--same--]  moved from SO's mathbox to main set.mm
14-Apr-15 cmpfii    [--same--]  moved from SO's mathbox to main set.mm
14-Apr-15 tgdom     [--same--]  moved from SO's mathbox to main set.mm
14-Apr-15 eltg4i    [--same--]  moved from SO's mathbox to main set.mm
14-Apr-15 fopwdom   [--same--]  moved from SO's mathbox to main set.mm
14-Apr-15 fclsfcn   cnfcf       (in JGH's mathbox)
14-Apr-15 fclsfcnp  cnpfcf      (in JGH's mathbox)
14-Apr-15 fclsfneii fcfneii     (in JGH's mathbox)
14-Apr-15 fclsfelbas fcfelbas   (in JGH's mathbox)
14-Apr-15 fclusfnei fcfnei      (in JGH's mathbox)
14-Apr-15 isfclusf  isfcf       (in JGH's mathbox)
14-Apr-15 sfclusf   fcfval      (in JGH's mathbox) revised
14-Apr-15 fclusff   ---         (in JGH's mathbox) deleted; use fcfval
14-Apr-15 ufcomp    ufilcmp     (in JGH's mathbox) revised
14-Apr-15 fcluscomp fclscmp     (in JGH's mathbox) revised
14-Apr-15 fcluscn   fclscn      (in JGH's mathbox) revised
14-Apr-15 fcluscnp  fclscnp     (in JGH's mathbox) revised
14-Apr-15 uffclsflim [--same--] (in JGH's mathbox) revised
14-Apr-15 flimfnfcls [--same--] (in JGH's mathbox) revised
14-Apr-15 fclsfnflim [--same--] (in JGH's mathbox) revised
14-Apr-15 flimfcls  [--same--]  (in JGH's mathbox) revised
14-Apr-15 fcluscf   fclscf      (in JGH's mathbox)
14-Apr-15 fclusss   fclsss2     (in JGH's mathbox) revised
14-Apr-15 fclusbas  fclsopn     (in JGH's mathbox) revised
14-Apr-15 fclusneii fclsneii    (in JGH's mathbox) revised
14-Apr-15 fclselbas [--same--]  (in JGH's mathbox) revised
14-Apr-15 fclusnei  fclsnei     (in JGH's mathbox)
14-Apr-15 isfclus   isfcls      (in JGH's mathbox) revised
14-Apr-15 filclus   fclsval     (in JGH's mathbox) revised
14-Apr-15 sfcls     ---         (in JGH's mathbox) deleted; use fclsval
14-Apr-15 flimfcn   cnflf       moved from JGH's mathbox to main set.mm;revised
14-Apr-15 flimfcnp  cnpflf      moved from JGH's mathbox to main set.mm;revised
14-Apr-15 flimfbas  [--same--]  (in JGH's mathbox) revised
14-Apr-15 fmfnfm    [--same--]  (in JGH's mathbox) revised
14-Apr-15 rnelfmlem [--same--]  (in JGH's mathbox) revised
14-Apr-15 imaelfm   [--same--]  moved from JGH's mathbox to main set.mm
14-Apr-15 cnfillim  cnflf       moved from JGH's mathbox to main set.mm;revised
14-Apr-15 cnpfillim cnpflf      moved from JGH's mathbox to main set.mm;revised
14-Apr-15 flimcls   [--same--]  moved from JGH's mathbox to main set.mm;revised
14-Apr-15 limfilcf  flimcf      moved from JGH's mathbox to main set.mm;revised
14-Apr-15 neiplim   neiflim     moved from JGH's mathbox to main set.mm;revised
14-Apr-15 df-fclusf df-fcf      (in JGH's mathbox)
14-Apr-15 df-fclus  df-fcls     (in JGH's mathbox)
14-Apr-15 cfclusf   cfcf        (in JGH's mathbox)
14-Apr-15 cfclus    cfcls       (in JGH's mathbox)
14-Apr-15 ---       ---         df-1stc ~ 2ndcctbss moved from JGH's mathbox to
                                main set.mm
14-Apr-15 fictb     [--same--]  moved from JGH's mathbox to main set.mm
14-Apr-15 uncon     [--same--]  moved from FL's mathbox to main set.mm
14-Apr-15 iuncon    [--same--]  moved from FL's mathbox to main set.mm
14-Apr-15 flimfneicn flfneicn   (in FL's mathbox)
14-Apr-15 flimfneic flfneic     (in FL's mathbox)
14-Apr-15 flimfnein flfnein     (in FL's mathbox)
14-Apr-15 clindistop indiscld   moved from FL's mathbox to main set.mm
14-Apr-15 clsingemp sn0cld      moved from FL's mathbox to main set.mm
14-Apr-15 dtt2      dishaus     moved from FL's mathbox to main set.mm; revised
14-Apr-15 dtopcl    discld      moved from FL's mathbox to main set.mm; revised
14-Apr-15 flimfnei2 flfnei2     (in FL's mathbox)
14-Apr-15 cnpfillim4 cnpflf4    (in FL's mathbox) revised
14-Apr-15 conttnf   cnpflf2     moved from FL's mathbox to main set.mm; revised
14-Apr-15 flimfneih flfneih     (in FL's mathbox)
14-Apr-15 trnei     [--same--]  moved from FL's mathbox to main set.mm; revised
14-Apr-15 trfil     ---         moved from FL's mathbox to main set.mm; revised
                                (split into trfil1, trfil2)
14-Apr-15 fbfgss2   fil2ss      (in FL's mathbox)
14-Apr-15 fbaslim2  fbflim2     moved from FL's mathbox to main set.mm; revised
14-Apr-15 elfilnemp fileln0     moved from FL's mathbox to main set.mm
14-Apr-15 distopg   distop      moved from FL's mathbox to main set.mm
14-Apr-15 neindisj2 [--same--]  moved from FL's mathbox to main set.mm
14-Apr-15 surjsec   fcofo       moved from FL's mathbox to main set.mm
14-Apr-15 injrec    fcof1       moved from FL's mathbox to main set.mm
14-Apr-15 pw2eng    [--same--]  moved from FL's mathbox to main set.mm
14-Apr-15 surrc2    cocan2      moved from FL's mathbox to main set.mm
14-Apr-15 njtlc     cocan1      moved from FL's mathbox to main set.mm; revised
14-Apr-15 tanord    [--same--]  revised
14-Apr-15 dvmptco   [--same--]  revised
14-Apr-15 dvmptim   [--same--]  revised: eliminated hypothesis
14-Apr-15 dvmptre   [--same--]  revised: eliminated hypothesis
14-Apr-15 dvmptcj   [--same--]  revised: eliminated hypothesis
14-Apr-15 dvmptsub  [--same--]  revised: eliminated hypothesis
14-Apr-15 dvmptneg  [--same--]  revised: eliminated hypothesis
14-Apr-15 dvmptcmul [--same--]  revised: eliminated hypothesis
14-Apr-15 dvmptres  [--same--]  revised: eliminated hypothesis
14-Apr-15 dvmptres2 [--same--]  revised: eliminated hypothesis
14-Apr-15 dvmptmul  [--same--]  revised: eliminated hypothesis
14-Apr-15 dvmptadd  [--same--]  revised: eliminated hypothesis
14-Apr-15 dvmptcl   [--same--]  revised: eliminated hypothesis
14-Apr-15 dvcof     [--same--]  revised
14-Apr-15 dvco      [--same--]  revised
14-Apr-15 dvcobr    [--same--]  revised
14-Apr-15 dvcmulf   [--same--]  revised: eliminated hypothesis
14-Apr-15 dvmulf    [--same--]  revised: eliminated hypothesis
14-Apr-15 dvaddf    [--same--]  revised: eliminated hypothesis
14-Apr-15 ovolmgt0  ovolmge0    revised
14-Apr-15 ---       ---         df-ovol ~ ovolgelb revised
14-Apr-15 isphtpc   [--same--]  revised
14-Apr-15 df-phtpc  [--same--]  revised
14-Apr-15 phtpyco   phtpycc     revised
14-Apr-15 isphtpy   [--same--]  revised
14-Apr-15 df-phtpy  [--same--]  revised
14-Apr-15 holimf2   hausflf2
14-Apr-15 holimf    hausflf
14-Apr-15 hausflim2 hausflimi
14-Apr-15 flimfelbas flfelbas
14-Apr-15 isflimf   isflf
14-Apr-15 flimfneii flfneii
14-Apr-15 flimfnei  flfnei
14-Apr-15 fbfgfmeq  fmfg
14-Apr-15 fmbas     fmuni       swapped equality arguments
14-Apr-15 fmval     [--same--]  revised
14-Apr-15 fmfval    [--same--]  revised
14-Apr-15 df-fm     [--same--]  revised
14-Apr-15 fbaslim   fbflim      revised
14-Apr-15 limfilss  flimss2     revised
14-Apr-15 df-flim   [--same--]  revised ( ( fLim`J )`F ) -> ( J fLim F )
                                (affects all flim* theorems)
14-Apr-15 filrn     [--same--]  revised
14-Apr-15 fgid      fgfil
14-Apr-15 fgfil     fgcl
14-Apr-15 fbfgss    fgss2
14-Apr-15 fgbas     fguni
14-Apr-15 fbssfg    ssfg
14-Apr-15 fgf       fgval
14-Apr-15 emnfil    filn0
14-Apr-15 fipfil2   filintn0
14-Apr-15 fipfil    filinn0
14-Apr-15 filusb    filtop
14-Apr-15 filint    filin
14-Apr-15 fillsb    filss       rearranged hypotheses
14-Apr-15 filesn    0nelfil
14-Apr-15 nconsubb  [--same--]  revised
14-Apr-15 nconsuba  ---         deleted; use nconsubb
14-Apr-15 consuba   ---         deleted; use connsub or nconsubb
14-Apr-15 usinuniop ---         deleted; use dfcon2 or conndisj
14-Apr-15 iscon     [--same--]  revised
14-Apr-15 stoig2    subspuni
14-Apr-15 stoig3    subsptop
14-Apr-15 neiuni    unnei       swapped equality arguments
14-Apr-15 distop    [--same--]  revised
14-Apr-15 prdmbasex [--same--]  revised
14-Apr-15 rlimi     [--same--]  revised
14-Apr-15 rlim0lt   [--same--]  revised
14-Apr-15 rlim0     [--same--]  revised
14-Apr-15 rlim3     [--same--]  revised
14-Apr-15 rlim2lt   [--same--]  revised
14-Apr-15 rlim2     [--same--]  revised
14-Apr-15 recvalzi  recval      revised
14-Apr-15 fzsdom2   [--same--]  revised
14-Apr-15 hashfz    [--same--]  revised
14-Apr-15 hashfn    [--same--]  revised: eliminated hypothesis
14-Apr-15 iccss     [--same--]  revised
14-Apr-15 iooss2    [--same--]  revised
14-Apr-15 iooss1    [--same--]  revised
14-Apr-15 ixxss2    [--same--]  revised
14-Apr-15 ixxss1    [--same--]  revised
14-Apr-15 pwen      [--same--]  revised: eliminated hypothesis
14-Apr-15 mpt2eq123 [--same--]  revised
12-Apr-15 sneqbg    [--same--]  moved from SF's mathbox to main set.mm
12-Apr-15 sneqrg    [--same--]  moved from SF's mathbox to main set.mm
 9-Apr-15 lspsnvsel lspsneli
 9-Apr-15 lmodvsinv lmodvsneg   moved from SO's mathbox to main set.mm; revised
 7-Apr-15 grpsubinv grpinvsub
22-Mar-15 lspsneli  [--same--]  obsolete; use lspsnvsel
21-Mar-15 lspsnmul  lspsnvsel
21-Mar-15 lvecmulcan2 lvecvscan2
21-Mar-15 lvecmulcan lvecvscan
21-Mar-15 lvecmuln0 lvecvsn0
21-Mar-15 lvecmul0or lvecvs0or
12-Mar-15 0vid      lmod0vid
12-Mar-15 0vrid     lmod0vrid
12-Mar-15 0vlid     lmod0vlid
12-Mar-15 0vcl      lmod0vcl
28-Feb-15 cnvcan    funcocnv2   moved from JM's mathbox to main set.mm
17-Feb-15 hauseqlcld [--same--] moved from SO's mathbox to main set.mm
17-Feb-15 hausdiag  [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 eltpt2    [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 xpssres   [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 c1lip3    [--same--]  (in SO's mathbox) revised
17-Feb-15 c1lip2    [--same--]  (in SO's mathbox) revised
17-Feb-15 c1lip     [--same--]  (in SO's mathbox) revised
17-Feb-15 plycpn    [--same--]  (in SO's mathbox) revised
17-Feb-15 dvnply    [--same--]  (in SO's mathbox) revised
17-Feb-15 cpnord    [--same--]  moved from SO's mathbox to main set.mm; revised
17-Feb-15 elcpn     [--same--]  moved from SO's mathbox to main set.mm; revised
17-Feb-15 fncpn     [--same--]  moved from SO's mathbox to main set.mm; revised
17-Feb-15 dvnbss    [--same--]  moved from SO's mathbox to main set.mm; revised
17-Feb-15 dvnf      [--same--]  moved from SO's mathbox to main set.mm; revised
17-Feb-15 dvnp1     [--same--]  moved from SO's mathbox to main set.mm; revised
17-Feb-15 dvn0      [--same--]  moved from SO's mathbox to main set.mm; revised
17-Feb-15 dvf2      dvf         moved from SO's mathbox to main set.mm; revised
17-Feb-15 dvply2    [--same--]  (in SO's mathbox) revised
17-Feb-15 dvply1    [--same--]  (in SO's mathbox) revised
17-Feb-15 dvexp2    [--same--]  moved from SO's mathbox to main set.mm; revised
17-Feb-15 dvmptfsum [--same--]  moved from SO's mathbox to main set.mm; revised
17-Feb-15 wemapso   [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 wemappo   [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 soltmin   [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 somin2    [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 somincom  [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 somin1    [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 poltletr  [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 poleloe   [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 fresaunres2 [--same--] moved from SO's mathbox to main set.mm
17-Feb-15 fresaun   [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 resasplit [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 elmapi    [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 elmapex1  [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 fndmin    [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 fndmdifeq0 [--same--] moved from SO's mathbox to main set.mm
17-Feb-15 fndmdifcom [--same--] moved from SO's mathbox to main set.mm
17-Feb-15 fndmdif   [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 ralima    [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 rexima    [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 fvssunirn [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 fvelrn0   fvrn0       moved from SO's mathbox to main set.mm
17-Feb-15 fvbr0     [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 difopab   [--same--]  moved from SO's mathbox to main set.mm
17-Feb-15 df-maxidl [--same--]  moved from JM's mathbox to main set.mm
17-Feb-15 df-pridl  [--same--]  moved from JM's mathbox to main set.mm
17-Feb-15 df-idl    [--same--]  moved from JM's mathbox to main set.mm
17-Feb-15 conntoppr [--same--]  moved from JGH's mathbox to main set.mm
17-Feb-15 cnconn    [--same--]  moved from JGH's mathbox to main set.mm
17-Feb-15 alexsub   [--same--]  moved from JGH's mathbox to main set.mm
17-Feb-15 finsschain [--same--] moved from JGH's mathbox to main set.mm
17-Feb-15 nconsubb  [--same--]  moved from FL's mathbox to main set.mm
17-Feb-15 nconsuba  [--same--]  moved from FL's mathbox to main set.mm
17-Feb-15 consuba   [--same--]  moved from FL's mathbox to main set.mm
17-Feb-15 istos     [--same--]  moved from FL's mathbox to main set.mm
17-Feb-15 df-toset  [--same--]  moved from FL's mathbox to main set.mm
17-Feb-15 unprj     undifixp    moved from FL's mathbox to main set.mm
17-Feb-15 eltpg     [--same--]  moved from FL's mathbox to main set.mm
17-Feb-15 inpreima2 intpreima   moved from FL's mathbox to main set.mm
17-Feb-15 inpreima5 iinpreima   moved from FL's mathbox to main set.mm
17-Feb-15 fveq12i   [--same--]  moved from FL's mathbox to main set.mm
17-Feb-15 fvrn0     [--same--]  moved from SF's mathbox to main set.mm
17-Feb-15 ---       ---         dvaddbr ~ itgsubst revised
17-Feb-15 dvaddbr   [--same--]  revised
19-Jan-15 ---       ---         df-dv ~ dvcn revised
17-Feb-15 df-dv     [--same--]  revised
17-Feb-15 pi1set    ---         deleted; use pi1bval
17-Feb-15 pi1gp     [--same--]  revised
17-Feb-15 pi1val    pi1pval     revised
17-Feb-15 pi1f      [--same--]  revised
17-Feb-15 pi1fval   [--same--]  revised
17-Feb-15 pi1bvalqs [--same--]  revised
17-Feb-15 elpi1i    [--same--]  revised
17-Feb-15 elpi1     [--same--]  revised
17-Feb-15 pi1bval   [--same--]  revised
17-Feb-15 df-pi1    [--same--]  revised
17-Feb-15 df-pi1b   ---         deleted; use df-pi1
17-Feb-15 iscmp     [--same--]  revised
17-Feb-15 symgcl    [--same--]  revised
17-Feb-15 symgov    [--same--]  revised
17-Feb-15 symgplusg [--same--]  revised
17-Feb-15 symgbas   [--same--]  revised
17-Feb-15 proplem2  [--same--]  revised
17-Feb-15 df-pt     [--same--]  revised
17-Feb-15 ---       ---         math token "tP" changed to "Xt_"
17-Feb-15 mapixp    ---         deleted; use ixpconst
 8-Feb-15 posprs    posprsr     (in FL's mathbox)
 8-Feb-15 isprs     isprsr      (in FL's mathbox)
 8-Feb-15 cpreset   [--same--]  moved from FL's mathbox to main set.mm
 8-Feb-15 df-preset [--same--]  moved from FL's mathbox to main set.mm
28-Jan-15 strssd    [--same--]  moved from NM's mathbox to main set.mm
28-Jan-15 strfvd    [--same--]  moved from NM's mathbox to main set.mm
28-Jan-15 strfvnd   [--same--]  moved from NM's mathbox to main set.mm
28-Jan-15 r1omNEW   r1om        moved from SO's mathbox to main set.mm
28-Jan-15 ackbij2   [--same--]  moved from SO's mathbox to main set.mm
28-Jan-15 ackbij1b  [--same--]  moved from SO's mathbox to main set.mm
28-Jan-15 ackbij1   [--same--]  moved from SO's mathbox to main set.mm
28-Jan-15 onpsssuc  [--same--]  moved from SO's mathbox to main set.mm
28-Jan-15 f1opw     [--same--]  moved from SO's mathbox to main set.mm
28-Jan-15 djudisj   [--same--]  moved from SO's mathbox to main set.mm
28-Jan-15 djussxp   [--same--]  moved from SO's mathbox to main set.mm
28-Jan-15 xpsnen2g  [--same--]  moved from SO's mathbox to main set.mm
28-Jan-15 nnunifi   [--same--]  moved from SO's mathbox to main set.mm
28-Jan-15 fzsdom2   [--same--]  moved from SO's mathbox to main set.mm
28-Jan-15 hashfz    [--same--]  moved from SO's mathbox to main set.mm
28-Jan-15 isinffi   [--same--]  moved from SO's mathbox to main set.mm
28-Jan-15 isprj2    [--same--]  (in FL's mathbox) revised
28-Jan-15 prdmbasex [--same--]  revised
28-Jan-15 ixpexg    [--same--]  revised
19-Jan-15 ---       ---         strlemor0 ~ prdmlmodd moved from SO's mathbox
                                to main set.mm
19-Jan-15 lspf      [--same--]  moved from SO's mathbox to main set.mm
19-Jan-15 lsslsp    [--same--]  moved from SO's mathbox to main set.mm
19-Jan-15 lsslss    [--same--]  moved from SO's mathbox to main set.mm
19-Jan-15 ---       ---         cghm ~ reslmhm moved from SO's mathbox to main
                                set.mm
19-Jan-15 elfz1end  [--same--]  moved from SO's mathbox to main set.mm
19-Jan-15 curgrpact [--same--]  (in FL's mathbox) revised
19-Jan-15 rngapm    [--same--]  (in FL's mathbox) revised
19-Jan-15 gapm2     [--same--]  (in FL's mathbox) revised
19-Jan-15 gaplc     galcan      moved from FL's mathbox to main set.mm; revised
19-Jan-15 symgfo    [--same--]  (in FL's mathbox) revised
19-Jan-15 ltlga     gaid2       moved from FL's mathbox to main set.mm; revised
19-Jan-15 cayleyth  [--same--]  moved from PC's mathbox to main set.mm; revised
19-Jan-15 cayleyi   cayley      moved from PC's mathbox to main set.mm; revised
19-Jan-15 symggrp   [--same--]  moved from PC's mathbox to main set.mm; revised
19-Jan-15 tgss      [--same--]  revised
19-Jan-15 unitg     [--same--]  revised
19-Jan-15 bastg     [--same--]  revised
19-Jan-15 tg2       [--same--]  revised
19-Jan-15 tg1       [--same--]  revised
19-Jan-15 eltg2b    [--same--]  revised
19-Jan-15 eltg2     [--same--]  revised
19-Jan-15 eltg      [--same--]  revised
19-Jan-15 tgval2    [--same--]  revised
19-Jan-15 tgval     [--same--]  revised
19-Jan-15 df-topgen [--same--]  revised
19-Jan-15 symgidi   symgid      revised
19-Jan-15 symggrpi  symggrp     revised
19-Jan-15 symgov    [--same--]  revised
19-Jan-15 symgval   symgplusg   revised
19-Jan-15 elsymgrn  elsymgbas   revised
19-Jan-15 df-symg   [--same--]  revised
19-Jan-15 gapm      [--same--]  revised
19-Jan-15 gacan     [--same--]  revised
19-Jan-15 gaass     [--same--]  revised
19-Jan-15 gagrpid   [--same--]  revised
19-Jan-15 gaf       [--same--]  revised
19-Jan-15 gagrp     [--same--]  revised
19-Jan-15 ssga      subgga      revised
19-Jan-15 gaid      [--same--]  revised
19-Jan-15 ga0       [--same--]  revised
19-Jan-15 isga2     ---         deleted; use isga
19-Jan-15 gafo      [--same--]  revised
19-Jan-15 isga      [--same--]  revised
19-Jan-15 df-ga     [--same--]  revised
19-Jan-15 grplactf1o [--same--] revised
19-Jan-15 grplactval [--same--] revised
19-Jan-15 grplactfval [--same--] revised
19-Jan-15 islbs2    islbs3      revised
19-Jan-15 lbspss    [--same--]  revised
19-Jan-15 lbsind    lbsind2     revised
19-Jan-15 lbssp     [--same--]  revised
19-Jan-15 lbsel     [--same--]  revised
19-Jan-15 lbsss     [--same--]  revised
19-Jan-15 islbs     [--same--]  revised; see also islbs2
19-Jan-15 lbsval    ---         deleted; use islbs
19-Jan-15 df-lbs    [--same--]  revised
19-Jan-15 lssne0    [--same--]  revised
19-Jan-15 lsscl     [--same--]  revised
19-Jan-15 lssn0     [--same--]  revised
19-Jan-15 lssel     [--same--]  revised
19-Jan-15 lssss     [--same--]  revised
19-Jan-15 islssd    [--same--]  revised
19-Jan-15 islss     [--same--]  revised
19-Jan-15 lagsubglem2 lagsubg2  revised
19-Jan-15 lagsubglem1 eqger     revised
19-Jan-15 issubg2   [--same--]  revised
19-Jan-15 odphi     odzphi
19-Jan-15 oddvds    odzdvds
19-Jan-15 odid      odzid
19-Jan-15 odcl      odzcl
19-Jan-15 odcllem   odzcllem
19-Jan-15 odval     odzval
19-Jan-15 df-od     df-odz
19-Jan-15 cod       codz
19-Jan-15 ---       ---         math token "od" changed to "odZ"
10-Jan-15 lsmss1xxx lsmss2
10-Jan-15 lsmss1    lsmss2
10-Jan-15 lsmss2    lsmss1xxx
 9-Jan-15 mpbiran   [--same--]  changed hypothesis order
 9-Jan-15 mpbiran2  [--same--]  changed hypothesis order
 9-Jan-15 mpbir2an  [--same--]  changed hypothesis order
 9-Jan-15 mpbi2and  [--same--]  changed hypothesis order
 9-Jan-15 mpbir2and [--same--]  changed hypothesis order
 9-Jan-15 mpbir3an  [--same--]  changed hypothesis order
 9-Jan-15 mpbir3and [--same--]  changed hypothesis order
 8-Jan-15 lsmmod    [--same--]  swapped equality arguments
 8-Jan-15 ficarddom [--same--]  swapped biconditional arguments
 7-Jan-15 algvsca   [--same--]  moved from SO's mathbox to main set.mm
 7-Jan-15 algsca    [--same--]  moved from SO's mathbox to main set.mm
 7-Jan-15 algmulr   [--same--]  moved from SO's mathbox to main set.mm
 7-Jan-15 algaddg   [--same--]  moved from SO's mathbox to main set.mm
 7-Jan-15 algbase   [--same--]  moved from SO's mathbox to main set.mm
 7-Jan-15 algfun    [--same--]  moved from SO's mathbox to main set.mm
 7-Jan-15 algfn     [--same--]  moved from SO's mathbox to main set.mm
 7-Jan-15 crngcom   crngocom
 7-Jan-15 ---       ---         math token "CRing" changed to "CRingOps"
 7-Jan-15 df-mnd2   df-mnd      moved from FL's mathbox to main set.mm
 7-Jan-15 mndass2   mndoass2
 7-Jan-15 mndass    mndoass
 7-Jan-15 mndio     mndoio
 7-Jan-15 mndid     mndoid
 7-Jan-15 mndisass  mndoisass
 7-Jan-15 df-tsms   rngomndo
 7-Jan-15 rngomnd   rngomndo
 7-Jan-15 grpomnd   grpomndo
 7-Jan-15 ismnd2    ismndo2
 7-Jan-15 ismnd1    ismndo1
 7-Jan-15 ismnd     ismndo
 7-Jan-15 mndmgmid  mndomgmid
 7-Jan-15 mndismgm  mndoismgm
 7-Jan-15 mndisexid mndoisexid
 7-Jan-15 mndissmgrp mndoissmgrp
 7-Jan-15 df-mnd    df-mndo
 7-Jan-15 cmnd      cmndo
 7-Jan-15 ---       ---         math token "Mnd" changed to "MndOp"
 7-Jan-15 grp2grpo  ---         deleted (commented out)
 7-Jan-15 unitpropd [--same--]  revised: eliminated hypothesis
 7-Jan-15 dvdsrpropd [--same--] revised: eliminated hypothesis
 7-Jan-15 dvdsrmul2 dvdsrmul1   revised
 7-Jan-15 dvdsrmul  [--same--]  revised
 7-Jan-15 dvdsr2    [--same--]  revised
 7-Jan-15 dvdsr     [--same--]  revised
 7-Jan-15 dvdsrval  [--same--]  revised
 7-Jan-15 df-dvdsr  [--same--]  revised (changed from left-divisible to right)
 7-Jan-15 ringi     [--same--]  revised
 7-Jan-15 isring    [--same--]  revised
 7-Jan-15 df-ring   [--same--]  revised
 7-Jan-15 gsum2d    [--same--]  revised
 7-Jan-15 ---       ---         all gsum* theorems revised for CMnd
 7-Jan-15 mulgnndi  mulgnn0di   revised
 7-Jan-15 abl4      cmn4        revised
 7-Jan-15 abl32     cmn32       revised
 7-Jan-15 isabld    [--same--]  reordered hypotheses
 7-Jan-15 isabl     isabl2
 7-Jan-15 df-abl    [--same--]  revised
 7-Jan-15 mulgnn0ass [--same--] revised
 7-Jan-15 mulgnnass [--same--]  revised
 7-Jan-15 mulgnn0dir [--same--] revised
 7-Jan-15 mulgnndir [--same--]  revised
 7-Jan-15 mulgnn0z  [--same--]  revised
 7-Jan-15 mulgnn0cl [--same--]  revised
 7-Jan-15 mulgnncl  [--same--]  revised
 7-Jan-15 mulgnn0p1 [--same--]  revised
 7-Jan-15 grpinv    ---         deleted; use grplinv, grprinv
 7-Jan-15 isgrpid   ---         deleted; use ismgmid
 7-Jan-15 grpidinv2 ---         deleted; use grplid, grprid, grpinvex
 7-Jan-15 isgrpi    [--same--]  revised: eliminated hypothesis
 7-Jan-15 isgrpiOLD ---         deleted
 7-Jan-15 isgrpdOLD ---         deleted
 7-Jan-15 isgrprd   ---         deleted
 7-Jan-15 isgrpd    [--same--]  revised: eliminated hypothesis
 7-Jan-15 grppropOLD ---        deleted; use grpprop
 7-Jan-15 elgrp     ---         deleted; use isgrp
 7-Jan-15 grpideu2  ---         deleted; use grpideu or grpridd
 7-Jan-15 grpidinv  ---         deleted; use grpinvex
 7-Jan-15 ---       ---         grpidinvlem1 - grpidinvlem4 deleted
 7-Jan-15 grplidinv             deleted; use grpinvex
 7-Jan-15 grplem1   ---         deleted
 7-Jan-15 isgrp2    ---         deleted; use isgrp
 7-Jan-15 isgrp     [--same--]  revised
 7-Jan-15 df-grp    [--same--]  revised
 7-Jan-15 df-mpq    [--same--]  revised
 7-Jan-15 df-plpq   [--same--]  revised
 7-Jan-15 fineqv    [--same--]  revised
 7-Jan-15 erovlem   [--same--]  revised
 7-Jan-15 eroveu    [--same--]  revised
 7-Jan-15 ovmpt2    [--same--]  changed distinct vars
 7-Jan-15 ovmpt2g   [--same--]  changed distinct vars
 7-Jan-15 grplidd   grpridd     revised
 7-Jan-15 grplinvd  grprinvd    revised
 7-Jan-15 grplinvlem2 ---       deleted
 7-Jan-15 grplinvlem1 grprinvlem revised
 7-Jan-15 caovcld   caovclg
 7-Jan-15 posn      [--same--]  revised
 7-Jan-15 sbcbidv   sbcbidgv
 7-Jan-15 sbcbid    sbcbidg
28-Dec-14 grpnegprop ---        (in SO's mathbox) deleted; use grpinvpropd
28-Dec-14 grpidprop ---         (in SO's mathbox) deleted; use grpidpropd
28-Dec-14 fvco4     fvco2       moved from SO's mathbox to main set.mm
28-Dec-14 injrec    [--same--]  (in FL's mathbox) revised
28-Dec-14 subrgugrp [--same--]  revised
28-Dec-14 drngid    [--same--]  revised
28-Dec-14 drngmgrp  [--same--]  revised
28-Dec-14 isdrng2   [--same--]  revised
28-Dec-14 invrfval  [--same--]  revised
28-Dec-14 df-invr   [--same--]  revised
28-Dec-14 unitgrpid [--same--]  revised
28-Dec-14 unitgrp   [--same--]  revised
28-Dec-14 rngidval  [--same--]  revised
28-Dec-14 df-ur     [--same--]  revised
28-Dec-14 df-gsum   [--same--]  revised
28-Dec-14 grpsubval [--same--]  revised: eliminated hypothesis
28-Dec-14 grpidval  [--same--]  revised
28-Dec-14 grpproplem proplem
28-Dec-14 grpproplem2 proplem2
28-Dec-14 grpideu   grpideu2
28-Dec-14 df-0g     [--same--]  revised
28-Dec-14 algrflem  [--same--]  revised: eliminated hypothesis
28-Dec-14 fvco3     [--same--]  revised: eliminated hypothesis
28-Dec-14 fvco2     [--same--]  revised: eliminated hypothesis
28-Dec-14 fvco      [--same--]  revised: eliminated hypothesis
28-Dec-14 hbcsb1    [--same--]  revised: eliminated hypothesis
28-Dec-14 hbsbc1    hbsbc1g2
27-Dec-14 a1i12     a1ii
27-Dec-14 fmpt2d    [--same--]  revised: weakened hypothesis
 5-Dec-14 df-cnfld  [--same--]  moved from SO's mathbox to main set.mm
 5-Dec-14 grppropd  [--same--]  moved from SO's mathbox to main set.mm
 5-Dec-14 df-ress   [--same--]  moved from SO's mathbox to main set.mm
 5-Dec-14 ghsubg    ghsubgo
 5-Dec-14 zaddsubg  zaddsubgo
 5-Dec-14 readdsubg readdsubgo
 5-Dec-14 subgablo  subgoablo
 5-Dec-14 issubgi   issubgoi
 5-Dec-14 subginv   subgoinv
 5-Dec-14 subgid    subgoid
 5-Dec-14 subgrnss  subgornss
 5-Dec-14 subgov    subgoov
 5-Dec-14 subgres   subgores
 5-Dec-14 issubg    issubgo
 5-Dec-14 df-subg   df-subgo
 5-Dec-14 csubg     csubgo
 5-Dec-14 isabvd    [--same--]  revised
 5-Dec-14 rngdvcan1 [--same--]  revised
 5-Dec-14 rngdvcl   [--same--]  revised
 5-Dec-14 rngdvval  [--same--]  revised
 5-Dec-14 rngdvfval [--same--]  revised
 5-Dec-14 rngnegrmul rngmneg2   revised
 5-Dec-14 rngneglmul rngmneg1   revised
 5-Dec-14 isrngd    [--same--]  revised
 5-Dec-14 isrng     [--same--]  revised
 5-Dec-14 df-ring   [--same--]  revised
 5-Dec-14 lagsubg   [--same--]  revised
 5-Dec-14 grpn0     grpbn0
 5-Dec-14 setsval   [--same--]  revised
 5-Dec-14 df-sets   [--same--]  revised
10-Nov-14 dford3    dford5reg   (in SF's mathbox)
10-Nov-14 fvun2     [--same--]  moved from SF's mathbox to main set.mm
10-Nov-14 fvun1     [--same--]  moved from SF's mathbox to main set.mm
10-Nov-14 twsvbdop  oprab4      moved from FL's mathbox to main set.mm
10-Nov-14 ra42e     [--same--]  moved from FL's mathbox to main set.mm
10-Nov-14 dmmptss   [--same--]  moved from SF's mathbox to main set.mm
10-Nov-14 rabxm     [--same--]  moved from JM's mathbox to main set.mm
10-Nov-14 rabnc     [--same--]  moved from JM's mathbox to main set.mm
10-Nov-14 absz      [--same--]  moved from JM's mathbox to main set.mm
10-Nov-14 absmod0   [--same--]  moved from JM's mathbox to main set.mm
10-Nov-14 negmod0   [--same--]  moved from JM's mathbox to main set.mm
13-Oct-14 qredeu    [--same--]  moved from JGH's mathbox to main set.mm
13-Oct-14 qredeq    [--same--]  moved from JGH's mathbox to main set.mm
25-Sep-14 otthg     otthg2      otthg now uses ordered triple definition
23-Sep-14 logcl     logrncl
23-Sep-14 divcnlem  reccn2      revised
23-Sep-14 climsqueeze2 climsqz2
23-Sep-14 climsqueeze climsqz
21-Sep-14 elqs2     ---         (in RM's mathbox) deleted; same as elqsg
21-Sep-14 cnss      ---         (in JM's mathbox) deleted; same as cnsubsp2r
21-Sep-14 elnnr     ---         (in JM's mathbox) deleted; same as elrege0
21-Sep-14 zmodfzcl  ---         (in JM's mathbox) deleted; same as zmodfz
21-Sep-14 subtareqbe [--same--] (in FL's mathbox) revised
21-Sep-14 subtsm    [--same--]  (in FL's mathbox) revised
21-Sep-14 pwtsm     [--same--]  (in FL's mathbox) revised
21-Sep-14 tmpts     tskmcl      moved from FL's mathbox to main set.mm; revised
21-Sep-14 intrtael  tskint      moved from FL's mathbox to main set.mm; revised
21-Sep-14 intartar  inttsk      moved from FL's mathbox to main set.mm
21-Sep-14 inttar1   ---         (in FL's mathbox) deleted; see 0tsk
21-Sep-14 elttar    tskmid      moved from FL's mathbox to main set.mm
21-Sep-14 btmp      eltskm      moved from FL's mathbox to main set.mm; revised
21-Sep-14 bpmp      sstskm      moved from FL's mathbox to main set.mm; revised
21-Sep-14 tarval2g  tskmval     moved from FL's mathbox to main set.mm; revised
21-Sep-14 tarval2   ---         (in FL's mathbox) deleted; see tskmval
21-Sep-14 df-tskmp  df-tskm     moved from FL's mathbox to main set.mm; revised
21-Sep-14 ctarskim  ctskm
21-Sep-14 tarsuc3   ---         (in FL's mathbox) deleted; see tsktrss
21-Sep-14 tarsuc2   tsksuc      moved from FL's mathbox to main set.mm; revised
21-Sep-14 tarsuc1   ---         (in FL's mathbox) deleted; see tsksuc, tsktrss
21-Sep-14 sexptrt   tskmap      moved from FL's mathbox to main set.mm; revised
21-Sep-14 cptarc    tskxp       moved from FL's mathbox to main set.mm; revised
21-Sep-14 tclinf    ---         (in FL's mathbox) deleted; same as tskinf
21-Sep-14 tartord   ---         (in FL's mathbox) deleted; see tsktrss
21-Sep-14 tartrel   tsktrss     moved from FL's mathbox to main set.mm
21-Sep-14 elcartr   ---         (in FL's mathbox) deleted; see trss
21-Sep-14 tarax3d4  ---         (in FL's mathbox) deleted; see tsksdom
21-Sep-14 tarax3d3  ---         (in FL's mathbox) deleted; see tsksdom
21-Sep-14 tarax3c   ---         (in FL's mathbox) deleted; see tsken
21-Sep-14 tarax3b   ---         (in FL's mathbox) deleted; see tsken
21-Sep-14 tarax3a   ---         (in FL's mathbox) deleted; same as tsken
21-Sep-14 inacint   tskin       moved from FL's mathbox to main set.mm; revised
21-Sep-14 elincin   ---         (in FL's mathbox) deleted; same as tskss
21-Sep-14 letri31   ---         (in FL's mathbox) deleted; same as xrletri3
21-Sep-14 elioooord ---         (in FL's mathbox) deleted; same as eliooord
21-Sep-14 elioc3    ---         (in FL's mathbox) deleted; same as elioc2
21-Sep-14 elico3    ---         (in FL's mathbox) deleted; same as elico2
21-Sep-14 omslim2   ---         (in FL's mathbox) deleted; same as dfom5
21-Sep-14 omslim    ---         (in FL's mathbox) deleted; see dfom5
21-Sep-14 ltwefz    [--same--]  moved from SF's mathbox to main set.mm
21-Sep-14 ltwenn    [--same--]  moved from SF's mathbox to main set.mm
21-Sep-14 ltweuz    [--same--]  moved from SF's mathbox to main set.mm
21-Sep-14 sqrrpcl   ---         deleted; same as rpsqrcl
21-Sep-14 ltfrn     ltweuz
21-Sep-14 zmodcl2   zmodfz
21-Sep-14 tskssel2  ---         deleted; see tskssel
21-Sep-14 eltsk2    ---         deleted; see eltsk2g
21-Sep-14 eltsk     ---         deleted; see eltskg
21-Sep-14 dftsk2    ---         deleted; see eltsk2g
21-Sep-14 omsubinit alephinit
21-Sep-14 infenomsub infenaleph
21-Sep-14 omsubindss ---        deleted; same as alephle
21-Sep-14 omsublim  ---         deleted; see alephislim
21-Sep-14 omsubdmss alephdom2
21-Sep-14 elomsubsd alephsdom
21-Sep-14 omsubss   ---         deleted; same as alephord3
21-Sep-14 omsubel   ---         deleted; same as alephord2
21-Sep-14 omsubdom  alephdom
21-Sep-14 omsubsdom ---         deleted; same as alephordi
21-Sep-14 omsubsdomlem2 ---     deleted; see alephordi
21-Sep-14 omsubsdomlem1 ---     deleted; same as alephordilem1
21-Sep-14 omsubsuc2 ---         deleted; same as alephsuc2
21-Sep-14 omsubsuc  ---         deleted; same as alephsuc
19-Sep-14 clfsebs2  ---         (in FL's mathbox) deleted; same as clfsebsr
15-Sep-14 ostth     [--same--]  revised
15-Sep-14 wlogle    [--same--]  revised
11-Sep-14 infmrgelbOLD ---      (in JM's mathbox) deleted; see infmrgelb
11-Sep-14 lbleinfOLD ---        (in JGH's mathbox) deleted; see infmrgelb
11-Sep-14 suplub2   supwlub     (in FL's mathbox)
11-Sep-14 nmfnleub  [--same--]  revised
11-Sep-14 nmopub    [--same--]  revised
11-Sep-14 itg2leub  [--same--]  revised
11-Sep-14 mbfmono   mbfsup      revised
11-Sep-14 ovolshftlem2 [--same--] revised
11-Sep-14 nmoubi    [--same--]  revised
11-Sep-14 pcid      pcidlem
11-Sep-14 caurcvg   [--same--]  revised
11-Sep-14 caurcvglem [--same--] revised
11-Sep-14 limsupcl  [--same--]  revised
11-Sep-14 limsupval [--same--]  revised
11-Sep-14 expcl2lem [--same--]  revised
11-Sep-14 infmxrgelb [--same--] revised
11-Sep-14 infmrgelb [--same--]  revised
11-Sep-14 suprleubii [--same--] revised
11-Sep-14 suprnubii [--same--]  revised
11-Sep-14 suprlubii [--same--]  revised
11-Sep-14 suprleub  [--same--]  revised
11-Sep-14 suprnub   [--same--]  revised
11-Sep-14 suprlub   [--same--]  revised
 2-Sep-14 grpohlem5 grpohmlem5  (in FL's mathbox)
 2-Sep-14 grpohlem3 grpohmlem3  (in FL's mathbox)
 2-Sep-14 ditgsplit [--same--]  revised
 2-Sep-14 ditgswap  [--same--]  revised
 2-Sep-14 ditgcl    [--same--]  revised
 2-Sep-14 ditgneg   [--same--]  revised
 2-Sep-14 ditgpos   [--same--]  revised
 2-Sep-14 mbfeq     mbfeqa      revised
 2-Sep-14 ivthicc   [--same--]  revised
 2-Sep-14 ivthle2   [--same--]  revised
 2-Sep-14 ivthle    [--same--]  revised
 2-Sep-14 ivth2     [--same--]  revised
 2-Sep-14 ivth      [--same--]  revised
 2-Sep-14 negfcncf  [--same--]  revised
 2-Sep-14 cncfco    [--same--]  revised
 2-Sep-14 cncffvrn  [--same--]  revised
 2-Sep-14 rescncf   [--same--]  revised
 2-Sep-14 cncffvelrn ---        deleted; see cncff
 2-Sep-14 cncfi     [--same--]  revised
 2-Sep-14 cncffvelrnOLD ---     deleted; see cncff
 2-Sep-14 cncff     [--same--]  revised
 2-Sep-14 ---       ---         changed math symbol from "Itgbl" to "L^1"
18-Aug-14 reheibor  [--same--]  (in JM's mathbox) revised
18-Aug-14 itgcnval  [--same--]  revised
18-Aug-14 iblre     iblrelem
18-Aug-14 itg0      itgz
18-Aug-14 mbfneg    [--same--]  revised
18-Aug-14 mbfmulc2  mbfmulc2re  revised
18-Aug-14 iccst     ---         deleted; see resubmet
18-Aug-14 stioo     ---         deleted; see resubmet
14-Aug-14 rexxfr    [--same--]  revised to be more general
14-Aug-14 ralxfr    [--same--]  revised to be more general
14-Aug-14 rexxfrd   [--same--]  revised to be more general
14-Aug-14 ralxfrd   [--same--]  revised to be more general
10-Aug-14 subntr    [--same--]  moved from JGH's mathbox to main set.mm
10-Aug-14 subcls    [--same--]  moved from JGH's mathbox to main set.mm
10-Aug-14 subsubtop [--same--]  moved from JGH's mathbox to main set.mm
10-Aug-14 ntrin     [--same--]  moved from JGH's mathbox to main set.mm
10-Aug-14 epr       [--same--]  moved from JGH's mathbox to main set.mm
10-Aug-14 epos      [--same--]  moved from JGH's mathbox to main set.mm
10-Aug-14 imrescl   resima2     moved from FL's mathbox to main set.mm
10-Aug-14 dmdcan    [--same--]  moved from SF's mathbox to main set.mm
10-Aug-14 bposlem6  [--same--]  revised
10-Aug-14 bposlem5  [--same--]  revised
10-Aug-14 hashpwlem ---         deleted
30-Jul-14 hasheq0   [--same--]  revised
30-Jul-14 ifswap    ifnot
30-Jul-14 ifor      ifeqor
23-Jul-14 reptertr4 ---         (in FL's mathbox) deleted; see fmptco
23-Jul-14 reptertr3 ---         (in FL's mathbox) deleted; see fmptco
23-Jul-14 reptertr2 ---         (in FL's mathbox) deleted; see fmptco
23-Jul-14 eflti     ---         deleted; see eflt
23-Jul-14 fsumcllem [--same--]  revised
23-Jul-14 fsumcl2lem [--same--] revised
16-Jul-14 cbvrex2v  [--same--]  moved from FL's mathbox to main set.mm
16-Jul-14 df-subg   [--same--]  revised
16-Jul-14 imcj      imval2
16-Jul-14 recj      reval
16-Jul-14 hashf     [--same--]  revised
16-Jul-14 df-hash   [--same--]  revised
16-Jul-14 crmuli    ---         deleted (contents moved to remullem)
14-Jul-14 riota4    riotasbc
14-Jul-14 reiota4   reiotasbc
14-Jul-14 reuuni4   reuunisbc
14-Jul-14 elabs     elabsbc
12-Jul-14 lssdisj   lssdisj1
11-Jul-14 0nelqs2   elqsn0      moved from RM's mathbox to main set.mm; revised
11-Jul-14 erdisj3   qsdisj      moved from RM's mathbox to main set.mm; revised
11-Jul-14 df-subg   [--same--]  revised
11-Jul-14 subgov    [--same--]  revised
11-Jul-14 df-subg   [--same--]  revised
11-Jul-14 hash0     hasheq0
11-Jul-14 dmmulnq   mulnqf      revised
11-Jul-14 dmaddnq   addnqf      revised
11-Jul-14 df-rq     [--same--]  revised
11-Jul-14 ecelqsdm  [--same--]  revised
11-Jul-14 0nelqs    elqsn0      revised
11-Jul-14 uniqs     [--same--]  revised
11-Jul-14 qsexg     [--same--]  revised
11-Jul-14 ecelqsg   [--same--]  changed variable names
11-Jul-14 ecdmn0    [--same--]  revised
11-Jul-14 erdisj2   erdisj      revised
11-Jul-14 erdisj    [--same--]  revised
11-Jul-14 ereldm    ereldmb     revised
11-Jul-14 erthdmr   erth2       revised
11-Jul-14 erthdmg   erth        revised
11-Jul-14 erthdm    erth        revised
11-Jul-14 erth      [--same--]  revised
11-Jul-14 erthi     [--same--]  revised
11-Jul-14 ecdmn0    [--same--]  revised
11-Jul-14 eceq2     eceq1       (these labels should be
11-Jul-14 eceq1     eceq2        exchanged at the same time)
11-Jul-14 erdmrn    [--same--]  revised
11-Jul-14 erref     [--same--]  revised
11-Jul-14 errtr     [--same--]  revised
11-Jul-14 erref2    erref       revised
11-Jul-14 ertr      [--same--]  revised
11-Jul-14 errsym    [--same--]  revised
11-Jul-14 ersymb    [--same--]  revised
11-Jul-14 ersym     [--same--]  revised
11-Jul-14 ster      iser
11-Jul-14 dfec2     [--same--]  revised
11-Jul-14 so        isso2i      revised
11-Jul-14 itlso     issoi
 7-Jul-14 difxpOLD  ---         deleted; see difxp
 7-Jul-14 clsrebb   iccssxr     moved from FL's mathbox to main set.mm; revised
 7-Jul-14 iooirrsa  ioossre     moved from FL's mathbox to main set.mm; revised
 7-Jul-14 elicore2  icossre     moved from FL's mathbox to main set.mm
 7-Jul-14 elicore   icossxr     moved from FL's mathbox to main set.mm; revised
 7-Jul-14 eliocreb2 iocssre     moved from FL's mathbox to main set.mm
 7-Jul-14 eliocreb  iocssxr     moved from FL's mathbox to main set.mm; revised
 7-Jul-14 eliccre2b iccssre     moved from FL's mathbox to main set.mm
 7-Jul-14 eliccreb  iccssxr     moved from FL's mathbox to main set.mm; revised
 7-Jul-14 islvecd   ---         deleted; see islmodd and islvec2
 7-Jul-14 islmodd   [--same--]  revised
 7-Jul-14 islmod    [--same--]  revised
 7-Jul-14 df-lmod   [--same--]  revised (change g e. Abel to g e. Grp)
 7-Jul-14 fsump1i   [--same--]  revised
 7-Jul-14 difxp     [--same--]  revised
 2-Jul-14 difeq12   [--same--]  moved from FL's mathbox to main set.mm
 2-Jul-14 rngneg1   rngnegl     revised
 1-Jul-14 abl4pnp   ablo4pnp    (in JM's mathbox)
 1-Jul-14 ablinvop  abloinvop   (in JM's mathbox)
 1-Jul-14 ablcomgrp ablocomgrp  (in JM's mathbox)
 1-Jul-14 hhssabl   hhssablo
 1-Jul-14 hhssabli  hhssabloi
 1-Jul-14 hilabl    hilablo
 1-Jul-14 nvabl     nvablo
 1-Jul-14 vcabl     vcablo
 1-Jul-14 ablmul    ablomul
 1-Jul-14 ablsn     ablosn
 1-Jul-14 subgabl   subgablo
 1-Jul-14 isablda   isabloda
 1-Jul-14 ablnnncan1 ablonnncan1
 1-Jul-14 ablnncan  ablonncan
 1-Jul-14 ablnnncan ablonnncan
 1-Jul-14 abldivdiv4 ablodivdiv4
 1-Jul-14 abldivdiv ablodivdiv
 1-Jul-14 ablmuldiv ablomuldiv
 1-Jul-14 cabl      cablo
24-Jun-14 df-lmod   [--same--]  revised, and all affected definitions and
                                theorems were revised accordingly (156
                                statements in main set.mm, 4 in FL's mathbox,
                                257 in NM's mathbox, 417 total)
23-Jun-14 ---       ---         moved from JM's mathbox to main set.mm:
                                cphtpy cphtpc phtpy phtpyfval phtpyval isphtpy
                                phtpycom phtpyid phtpyco phtpc phtpcval
                                phtpcrel isphtpc phtpcdm phtpcer reparphti
                                reparpht cpi1b cpco cpi1 pco pi1b pi1 pcofval
                                pcoval pcovalg pcoval1 pco0 pco1 pcoval2 pcocn
                                pcoloopf pcohtpylem pcohtpy pcopt pcoass
                                pcorevlem pcorev pi1bval elpi1 elpi1i pi1bvalqs
                                pi1fval pi1flem pi1f pi1val pi1gplem pi1gp
                                pi1set
23-Jun-14 isablod   [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 isablda   [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 isgrpod   [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 isgrpda   [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 cnmpt2pc  [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 paste     [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 ---       ---         moved from JM's mathbox to main set.mm:
                                iccsplit iccshftr iccshftri iccshftl iccshftli
                                iccdil iccdili icccntr icccntri cii ii iitop
                                iiuni dfii2 dfii3 iicmp cnmptre iirev iirevcn
                                iihalf1 iihalf1cn iihalf2 iihalf2cn elii1 elii2
                                iimulcl iimulcn iccst icoopnst iocopnst
                                lincmb01cmp lincmb01icc oprpiece1res1
                                oprpiece1res2
23-Jun-14 subspcld2 [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 subspcld  [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 eroprf2   [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 erov2     [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 eroprf    [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 erov      [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 eroveu    [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 erovlem   [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 ecelqsg   [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 erthdmg   [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 oprabrexex2 [--same--] moved from JM's mathbox to main set.mm
23-Jun-14 oprabvalg ovg         moved from JM's mathbox to main set.mm

23-Jun-14 ---       ---         moved from SF's mathbox to main set.mm:
                                gcdmultiple rprimemulgcd rprimelpwr rprimepwr
                                gcd12 gcddiv gcdmultiplez dvdssqim sqgcd
                                dvdssqlem dvdssq divgcdodd gcdadd pythagtrip
                                trirecip
23-Jun-14 dvdsgcdid ---         (in SF's mathbox) deleted; see gcdeq
23-Jun-14 dvdsprime [--same--]  moved from SF's mathbox to main set.mm
23-Jun-14 ---       ---         moved from SF's mathbox to main set.mm:
                                gcdabs1 gcdabs2 dvdsgcdb gcdass mulgcdr
                                coprimeprodsq coprimeprodsq2 odd2np1lem odd2np1
                                opoe omoe opeo omeo
23-Jun-14 abssq     [--same--]  moved from SF's mathbox to main set.mm
23-Jun-14 zsqcl     [--same--]  moved from SF's mathbox to main set.mm
23-Jun-14 sqrlt     [--same--]  moved from SF's mathbox to main set.mm
23-Jun-14 nnsqcl    [--same--]  moved from SF's mathbox to main set.mm
23-Jun-14 1elunit   [--same--]  moved from SF's mathbox to main set.mm
23-Jun-14 0elunit   [--same--]  moved from SF's mathbox to main set.mm
23-Jun-14 binom2subi [--same--] moved from SF's mathbox to main set.mm
23-Jun-14 binom2sub [--same--]  moved from SF's mathbox to main set.mm
23-Jun-14 elicc2i   [--same--]  moved from SF's mathbox to main set.mm
23-Jun-14 preq12bg  [--same--]  moved from SF's mathbox to main set.mm
23-Jun-14 bfplem    bfplem2     (in JM's mathbox)
23-Jun-14 stioo     [--same--]  moved from JM's mathbox to main set.mm
23-Jun-14 elrege0   [--same--]  moved from SF's mathbox to main set.mm
23-Jun-14 clint3OLD icccld
23-Jun-14 eltop2    [--same--]  revised
23-Jun-14 ivthlem   ivthlem3
23-Jun-14 difreicc  [--same--]  revised
23-Jun-14 imaiun    imauni
16-Jun-14 icccmp    icccmpALT   (in JM's mathbox)
16-Jun-14 compfipin0 cmpfi      moved from JGH's mathbox to main set.mm
16-Jun-14 compfipin0lem cmpfilem moved from JGH's mathbox to main set.mm
16-Jun-14 hscptsscld hauscmp    moved from JGH's mathbox to main set.mm
16-Jun-14 hscptsscldlem hauscmplem moved from JGH's mathbox to main set.mm
16-Jun-14 uncomp    uncmp       moved from JGH's mathbox to main set.mm
16-Jun-14 cptclsscpt cmpcld     moved from JGH's mathbox to main set.mm
16-Jun-14 compsub   cmpsub      moved from JGH's mathbox to main set.mm
16-Jun-14 compsublem cmpsublem  moved from JGH's mathbox to main set.mm
16-Jun-14 compcov   cmpcov      moved from JGH's mathbox to main set.mm
16-Jun-14 comptop   cmptop      moved from JGH's mathbox to main set.mm
16-Jun-14 opncldf3  [--same--]  moved from JGH's mathbox to main set.mm
16-Jun-14 opncldf2  [--same--]  moved from JGH's mathbox to main set.mm
16-Jun-14 opncldf1  [--same--]  moved from JGH's mathbox to main set.mm
16-Jun-14 icc0      [--same--]  moved from FL's mathbox to main set.mm
16-Jun-14 ioc0      [--same--]  moved from FL's mathbox to main set.mm
16-Jun-14 ico0      [--same--]  moved from FL's mathbox to main set.mm
16-Jun-14 lbico1    [--same--]  moved from FL's mathbox to main set.mm
16-Jun-14 ubioc1    [--same--]  moved from FL's mathbox to main set.mm
16-Jun-14 cmptop    [--same--]  moved from FL's mathbox to main set.mm
16-Jun-14 sinempcomp 0cmp       moved from FL's mathbox to main set.mm
16-Jun-14 sbincgt   tgfiss      moved from FL's mathbox to main set.mm
16-Jun-14 neffopo   fiinopn     moved from FL's mathbox to main set.mm
16-Jun-14 rnxpid    [--same--]  moved from FL's mathbox to main set.mm
16-Jun-14 mayete3OLDi mayete3iOLD
16-Jun-14 df-toset  df-ts
16-Jun-14 ccha      ctsr
16-Jun-14 fintopcomp fincmp
16-Jun-14 comptoppr cmptoppr
16-Jun-14 cncomp    cncmp
16-Jun-14 iscomp    iscmp
16-Jun-14 df-comp   df-cmp
16-Jun-14 ccomp     ccmp
16-Jun-14 subbas2   ---         deleted; see fiuni
16-Jun-14 subbas    ---         deleted; see fibas
16-Jun-14 invrrOLD  ---         deleted; see drnginvrr
16-Jun-14 invrlOLD  ---         deleted; see drnginvrl
16-Jun-14 invrclOLD invrcllem
16-Jun-14 isumcmpss isumless
16-Jun-14 isumcmp   isumle
16-Jun-14 fsumtscop [--same--]  revised
16-Jun-14 fsumcmp   fsumle
16-Jun-14 fsumcmpss fsumless
16-Jun-14 isercmp   iserle
16-Jun-14 climcmpc2 climlec2
16-Jun-14 climcmp   climle
16-Jun-14 sercmp    serle
16-Jun-14 serdistr  seqdistr
16-Jun-14 serf1o    seqf1o
16-Jun-14 serf1olem2 seqf1olem2
16-Jun-14 serf1olem1 seqf1olem1
16-Jun-14 sercaopr  seqcaopr
16-Jun-14 sercaopr2 seqcaopr2
16-Jun-14 ioojoin   [--same--]  revised
16-Jun-14 snunioo   [--same--]  revised
16-Jun-14 snunioolem ---        deleted
16-Jun-14 icoun     [--same--]  revised
16-Jun-14 icounlem  ---         deleted
16-Jun-14 elico2    [--same--]  revised
16-Jun-14 elioc2    [--same--]  revised
16-Jun-14 elixx2    ---         deleted; see elioo2, elico2, elioc2, elicc2
16-Jun-14 ixxssicc  ixxssixx    revised
16-Jun-14 uzwo3lem2 ---         deleted
16-Jun-14 uzwo3lem1 ---         deleted
16-Jun-14 uzwo5OLD  ---         deleted
16-Jun-14 uzwo4OLD  ---         deleted
16-Jun-14 fmptd     [--same--]  revised
15-Jun-14 pwtr      [--same--]  moved from AS's mathbox to main set.mm; revised
15-Jun-14 pwtrr     pwtr        moved from AS's mathbox to main set.mm; revised
12-Jun-14 eroprv2   erov2       (in JM's mathbox)
12-Jun-14 eroprv    erov        (in JM's mathbox)
12-Jun-14 eropreu   eroveu      (in JM's mathbox)
12-Jun-14 eroprlem  erovlem     (in JM's mathbox)
12-Jun-14 eloprvdm2 elovdm2     (in JM's mathbox)
12-Jun-14 eloprvdm  elovdm      (in JM's mathbox)
12-Jun-14 oprabval4gc ov4gc     (in FL's mathbox)
12-Jun-14 oprabval2gc ov2gc     (in FL's mathbox)
12-Jun-14 opreq123i oveq123i    (in FL's mathbox)
12-Jun-14 fnoprvrn2 fnovrn2     (in FL's mathbox)
12-Jun-14 fnoprvpop fnovpop     (in FL's mathbox)
12-Jun-14 oprssoprvg oprssopvg  (in FL's mathbox)
12-Jun-14 symgoprv  symgov
12-Jun-14 subgopr   subgov
12-Jun-14 ecoprdi   ecovdi
12-Jun-14 ecoprass  ecovass
12-Jun-14 ecoprcom  ecovcom
12-Jun-14 oprec     ovec
12-Jun-14 eceqopreq eceqoveq
12-Jun-14 ecopoprer ecopover
12-Jun-14 ecopoprtrn ecopovtrn
12-Jun-14 ecopoprsym ecopovsym
12-Jun-14 ecopoprdm ecopovdm
12-Jun-14 ecopopreq ecopoveq
12-Jun-14 onopriun  onoviun
12-Jun-14 onopruni  onovuni
12-Jun-14 fnopr2v   fnov2
12-Jun-14 caoprmo   caovmo
12-Jun-14 caoprlem2 caovlem2
12-Jun-14 caoprdilem caovdilem
12-Jun-14 caoprdistrr caovdistrr
12-Jun-14 caopr42   caov42
12-Jun-14 caopr411  caov411
12-Jun-14 caopr4    caov4
12-Jun-14 caopr13   caov13
12-Jun-14 caopr31   caov31
12-Jun-14 caopr12   caov12
12-Jun-14 caopr32   caov32
12-Jun-14 caoprdistr caovdistr
12-Jun-14 caoprdistrg caovdistrg
12-Jun-14 caoprord3 caovord3
12-Jun-14 caoprord2 caovord2
12-Jun-14 caoprord  caovord
12-Jun-14 caoprcan  caovcan
12-Jun-14 caoprass  caovass
12-Jun-14 caoprassg caovassg
12-Jun-14 caoprcom  caovcom
12-Jun-14 caoprcomg caovcomg
12-Jun-14 caoprcl   caovcl
12-Jun-14 caoprcld  caovcld
12-Jun-14 ndmordi   ndmovordi
12-Jun-14 ndmord    ndmovord
12-Jun-14 ndmoprdistr ndmovdistr
12-Jun-14 ndmoprass ndmovass
12-Jun-14 ndmoprcom ndmovcom
12-Jun-14 ndmoprrcl ndmovrcl
12-Jun-14 ndmopr    ndmov
12-Jun-14 ndmoprcl  ndmovcl
12-Jun-14 ndmoprg   ndmovg
12-Jun-14 oprvconst2 ovconst2
12-Jun-14 oprelimab ovelimab
12-Jun-14 funimass4b funimassov
12-Jun-14 oprvelrn  ovelrn
12-Jun-14 fnoprvrn  fnovrn
12-Jun-14 fooprv    foov
12-Jun-14 fnrnoprv  fnrnov
12-Jun-14 foprrn    fovrn
12-Jun-14 oprssoprv oprssov
12-Jun-14 oprvres   ovres
12-Jun-14 oprabval6g ov6g
12-Jun-14 oprabval4gALT ov4gALT
12-Jun-14 oprabval4g ov4g
12-Jun-14 oprabval3 ov3
12-Jun-14 oprabval5 ov5
12-Jun-14 oprabval2 ov2
12-Jun-14 oprabval2g ov2g
12-Jun-14 oprabval2ag ov2ag
12-Jun-14 oprabval2gf ov2gf
12-Jun-14 oprabvalig ovig
12-Jun-14 oprabvaligg ovigg
12-Jun-14 oprabval  ov
12-Jun-14 foprv     fov
12-Jun-14 fnoprv    fnov
12-Jun-14 eqfnoprv2 eqfnov2
12-Jun-14 eqfnoprv  eqfnov
12-Jun-14 foprcl    fovcl
12-Jun-14 ffnoprv   ffnov
12-Jun-14 elimdeloprv elimdelov
12-Jun-14 fnotoprb  fnopovb
12-Jun-14 rcla4eopr rcla4eov
12-Jun-14 csbopr2g  csbov2g
12-Jun-14 csbopr1g  csbov1g
12-Jun-14 csbopr12g csbov12g
12-Jun-14 csboprg   csbovg
12-Jun-14 oprprc2   ovprc2
12-Jun-14 oprprc1   ovprc1
12-Jun-14 oprex     ovex
12-Jun-14 hboprd    hbovd
12-Jun-14 hbopr     hbov
12-Jun-14 opreq123d oveq123d
12-Jun-14 opreqan12rd oveqan12rd
12-Jun-14 opreqan12d oveqan12d
12-Jun-14 opreq12d  oveq12d
12-Jun-14 opreqd    oveqd
12-Jun-14 opreq2d   oveq2d
12-Jun-14 opreq1d   oveq1d
12-Jun-14 opreqi    oveqi
12-Jun-14 opreq12i  oveq12i
12-Jun-14 opreq2i   oveq2i
12-Jun-14 opreq1i   oveq1i
12-Jun-14 opreq12   oveq12
12-Jun-14 opreq2    oveq2
12-Jun-14 opreq1    oveq1
12-Jun-14 opreq     oveq
12-Jun-14 df-opr    df-ov
11-Jun-14 pi1val    [--same--]  (in JM's mathbox) revised
11-Jun-14 pi1f      [--same--]  (in JM's mathbox) revised
11-Jun-14 pi1fval   [--same--]  (in JM's mathbox) revised
11-Jun-14 pi1bvalqs [--same--]  (in JM's mathbox) revised
11-Jun-14 pcorev    [--same--]  (in JM's mathbox) revised
11-Jun-14 pcorevlem [--same--]  (in JM's mathbox) revised
11-Jun-14 pcoass    [--same--]  (in JM's mathbox) revised
11-Jun-14 pcohtpy   [--same--]  (in JM's mathbox) revised
11-Jun-14 ---       ---         pcohtpylem1 - pcohtpylem3 deleted
11-Jun-14 pco1      [--same--]  (in JM's mathbox) revised
11-Jun-14 pco0      [--same--]  (in JM's mathbox) revised
11-Jun-14 pcocn     [--same--]  (in JM's mathbox) revised
11-Jun-14 pcoval2   [--same--]  (in JM's mathbox) revised
11-Jun-14 pcoval1   [--same--]  (in JM's mathbox) revised
11-Jun-14 pcoval    [--same--]  (in JM's mathbox) revised
11-Jun-14 pcofval   [--same--]  (in JM's mathbox) revised
11-Jun-14 df-pco    [--same--]  (in JM's mathbox) revised
11-Jun-14 reparpht  [--same--]  (in JM's mathbox) revised
11-Jun-14 ---       ---         reparphtlem1 - reparphtlem2 deleted
11-Jun-14 isphtpc2  ---         (in JM's mathbox) deleted; see isphtpc
11-Jun-14 isphtpc   [--same--]  (in JM's mathbox) revised
11-Jun-14 df-phtpc  [--same--]  (in JM's mathbox) revised
11-Jun-14 phtpyco   [--same--]  (in JM's mathbox) revised
11-Jun-14 ---       ---         phtpycolem1 - phtpycolem5 deleted
11-Jun-14 phtpycom  [--same--]  (in JM's mathbox) revised
11-Jun-14 phtpyid   [--same--]  (in JM's mathbox) revised
11-Jun-14 isphtpy   [--same--]  (in JM's mathbox) revised
11-Jun-14 phtpyval  [--same--]  (in JM's mathbox) revised
11-Jun-14 phtpyfval [--same--]  (in JM's mathbox) revised
11-Jun-14 df-phtpy  [--same--]  (in JM's mathbox) revised
11-Jun-14 ismrer1   [--same--]  (in JM's mathbox) revised
11-Jun-14 rrnval    [--same--]  (in JM's mathbox) revised
11-Jun-14 df-rrn    [--same--]  (in JM's mathbox) revised
11-Jun-14 bfp       [--same--]  (in JM's mathbox) revised
11-Jun-14 ---       ---         bfplem1 - bfplem11 deleted
11-Jun-14 heiborlem8 [--same--] (in JM's mathbox) revised
11-Jun-14 heibor1lem [--same--] (in JM's mathbox) revised
11-Jun-14 mulcntx   mulcn       moved from JM's mathbox to main set.mm
11-Jun-14 subcntx   subcn       moved from JM's mathbox to main set.mm
11-Jun-14 addcntx   addcn       moved from JM's mathbox to main set.mm
11-Jun-14 txcc      [--same--]  moved from JM's mathbox to main set.mm; revised
11-Jun-14 txmet     [--same--]  moved from JM's mathbox to main set.mm; revised
11-Jun-14 cnoprab2c ---         (in JM's mathbox) deleted; see cnmpt2nd,cnmpt21
11-Jun-14 cnoprab1c ---         (in JM's mathbox) deleted; see cnmpt1st,cnmpt21
11-Jun-14 cnoprab2  ---         (in JM's mathbox) deleted; see cnmpt2nd,cnmpt21
11-Jun-14 cnoprab1  ---         (in JM's mathbox) deleted; see cnmpt1st,cnmpt21
11-Jun-14 cnoproprabcoc ---     (in JM's mathbox) deleted; see cnmpt22f
11-Jun-14 cnoproprabco ---      (in JM's mathbox) deleted; see cnmpt22f
11-Jun-14 cnopropabcoc ---      (in JM's mathbox) deleted; see cnmpt12f
11-Jun-14 cnopropabco ---       (in JM's mathbox) deleted; see cnmpt12f
11-Jun-14 cnresoprab2 ---       (in JM's mathbox) deleted; see cnmpt2res
11-Jun-14 cnresoprab ---        (in JM's mathbox) deleted; see cnmpt2res
11-Jun-14 txsubsp   [--same--]  moved from JM's mathbox to main set.mm
11-Jun-14 txcnoprab ---         (in JM's mathbox) deleted; see cnmpt2t
11-Jun-14 lmtlm     ---         (in JM's mathbox) deleted
11-Jun-14 tlmconst  ---         (in JM's mathbox) deleted; see lmconst
11-Jun-14 haustlmu  ---         (in JM's mathbox) deleted; see lmmo
11-Jun-14 tlmbrf    ---         (in JM's mathbox) deleted; see lmbrf
11-Jun-14 tlmbr     ---         (in JM's mathbox) deleted; see lmbr
11-Jun-14 tlmval    ---         (in JM's mathbox) deleted; see lmfval
11-Jun-14 df-tlm    ---         (in JM's mathbox) deleted; see df-lm
11-Jun-14 ctlm      ---         (in JM's mathbox) deleted
11-Jun-14 hmeocnv   ---         (in JM's mathbox) deleted; see cnvhmpha
11-Jun-14 hmeocn    ---         (in JM's mathbox) deleted; see hmeobc
11-Jun-14 ishomeo2  ishomeo     moved from JM's mathbox to main set.mm
11-Jun-14 piececn   cnmpt2pc    (in JM's mathbox) revised
11-Jun-14 cnres     ---         (in JM's mathbox) deleted; see cnsubsp
11-Jun-14 cnimass   ---         (in JM's mathbox) deleted; see cnsubsp2
11-Jun-14 cncfco    [--same--]  moved from JM's mathbox to main set.mm; revised
11-Jun-14 metdcn    [--same--]  moved from JM's mathbox to main set.mm; revised
11-Jun-14 caures    [--same--]  moved from JM's mathbox to main set.mm; revised
11-Jun-14 caushft   [--same--]  (in JM's mathbox) revised
11-Jun-14 lmclim2   [--same--]  (in JM's mathbox) revised
11-Jun-14 geomcau   [--same--]  (in JM's mathbox) revised
11-Jun-14 mettrifi2 ---         (in JM's mathbox) deleted; see mettrifi
11-Jun-14 mettrifi  [--same--]  (in JM's mathbox) revised
11-Jun-14 csbrni    [--same--]  (in JM's mathbox) revised
11-Jun-14 trirni    ---         (in JM's mathbox) deleted; see isumshft
11-Jun-14 csbrni    csbrn       (in JM's mathbox) revised
11-Jun-14 fsumlt1   fsumge1     moved from JM's mathbox to main set.mm; revised
11-Jun-14 isumshft2 ---         (in JM's mathbox) deleted; see isumshft
11-Jun-14 iserzshft2 ---        (in JM's mathbox) deleted; see isershft
11-Jun-14 isumclf   ---         (in JM's mathbox) deleted; see isumcl
11-Jun-14 fsumleisum ---        (in JM's mathbox) deleted; see isumless
11-Jun-14 fsumleisumi ---       (in JM's mathbox) deleted; see isumless
11-Jun-14 fsumleisumii ---      (in JM's mathbox) deleted; see isumless
11-Jun-14 fsumltisum isumltss   moved from JM's mathbox to main set.mm; revised
11-Jun-14 fsumltisumi ---       (in JM's mathbox) deleted; see isumltss
11-Jun-14 fsumltisumii ---      (in JM's mathbox) deleted; see isumltss
11-Jun-14 fsumlt    [--same--]  moved from JM's mathbox to main set.mm; revised
11-Jun-14 fsum00OLD ---         (in JM's mathbox) deleted
11-Jun-14 seq1eq2   ---         (in JM's mathbox) deleted; see seqfveq
11-Jun-14 sdc       [--same--]  (in JM's mathbox) revised
11-Jun-14 sdclem2   [--same--]  (in JM's mathbox) revised
11-Jun-14 sdclem1   [--same--]  (in JM's mathbox) revised
11-Jun-14 seq1seqzgOLD ---      (in JM's mathbox) deleted
11-Jun-14 seqzp1gOLD ---        (in JM's mathbox) deleted
11-Jun-14 seqz1gOLD ---         (in JM's mathbox) deleted
11-Jun-14 seq1p1gOLD ---        (in JM's mathbox) deleted
11-Jun-14 seq11gOLD ---         (in JM's mathbox) deleted
11-Jun-14 divexp    expdiv      moved from JM's mathbox to main set.mm; revised
11-Jun-14 acdc5g    ---         (in JM's mathbox) deleted; see axdc4uz
11-Jun-14 acdc3g    ---         (in JM's mathbox) deleted; see axdc3
11-Jun-14 acdcg     ---         (in JM's mathbox) deleted; see axdc2
11-Jun-14 hbixp1    [--same--]  moved from JM's mathbox to main set.mm
11-Jun-14 cbvixpv   [--same--]  moved from JM's mathbox to main set.mm
11-Jun-14 cbvixp    [--same--]  moved from JM's mathbox to main set.mm
11-Jun-14 cnsubsp2  [--same--]  moved from JGH's mathbox to main set.mm
11-Jun-14 cnsubsp   [--same--]  moved from JGH's mathbox to main set.mm
11-Jun-14 avgle2    [--same--]  moved from JGH's mathbox to main set.mm
11-Jun-14 cntrsetlem ---        (in FL's mathbox) deleted
11-Jun-14 topgrpsubcnlem ---    (in FL's mathbox) deleted
11-Jun-14 exopcopn  [--same--]  (in FL's mathbox) revised
11-Jun-14 ttcn2     ---         (in FL's mathbox) deleted; see cnmpt1t
11-Jun-14 ttcn      ---         (in FL's mathbox) deleted; see cnmpt1t
11-Jun-14 eltpt     [--same--]  moved from FL's mathbox to main set.mm
11-Jun-14 eqindhome [--same--]  (in FL's mathbox) revised
11-Jun-14 hmeogrp   [--same--]  (in FL's mathbox) revised
11-Jun-14 rnhmpha   [--same--]  (in FL's mathbox) revised
11-Jun-14 dmhmpha   [--same--]  (in FL's mathbox) revised
11-Jun-14 cnvhmphb  ---         (in FL's mathbox) deleted; see cnvhmph
11-Jun-14 df-mmat   [--same--]  (in FL's mathbox) revised
11-Jun-14 df-expsg  [--same--]  (in FL's mathbox) revised
11-Jun-14 seqzp2    [--same--]  (in FL's mathbox) revised
11-Jun-14 isppm     [--same--]  (in FL's mathbox) revised
11-Jun-14 fprod1ib  fprod2      (in FL's mathbox) revised
11-Jun-14 fprod1i2  ---         (in FL's mathbox) deleted; see fprod1i
11-Jun-14 relsumprd fsumprd     (in FL's mathbox) revised
11-Jun-14 fprodp1s1 ---         (in FL's mathbox) deleted; see fprodp1s
11-Jun-14 fprodp1s1 ---         (in FL's mathbox) deleted; see fprodp1s
11-Jun-14 fprodp1s  [--same--]  (in FL's mathbox) revised
11-Jun-14 fprodp1slem ---       (in FL's mathbox) deleted
11-Jun-14 fprodp1fi [--same--]  (in FL's mathbox) revised
11-Jun-14 fprod1s1  ---         (in FL's mathbox) deleted; see fprod1s
11-Jun-14 fprod1s2  fprod1s     (in FL's mathbox) revised
11-Jun-14 fprod1slem ---        (in FL's mathbox) deleted
11-Jun-14 fprod1fi  [--same--]  (in FL's mathbox) revised
11-Jun-14 fprodp1i  [--same--]  (in FL's mathbox) revised
11-Jun-14 fprod1i   [--same--]  (in FL's mathbox) revised
11-Jun-14 fprodserzfi fprodserf (in FL's mathbox) revised
11-Jun-14 fprodserz fprodser    (in FL's mathbox) revised
11-Jun-14 dffprod   [--same--]  (in FL's mathbox) revised
11-Jun-14 prodeqfv  [--same--]  (in FL's mathbox) revised
11-Jun-14 prodeq3d  [--same--]  (in FL's mathbox) revised
11-Jun-14 prodeq123d [--same--] (in FL's mathbox) revised
11-Jun-14 prodeq123i [--same--] (in FL's mathbox) revised
11-Jun-14 prodeq3   prodeq2     (in FL's mathbox) (these labels should be
11-Jun-14 prodeq2   prodeq3     (in FL's mathbox)  exchanged at the same time)
11-Jun-14 valproemset prod0     (in FL's mathbox)
11-Jun-14 df-prod2  ---         (in FL's mathbox) deleted; see df-prod
11-Jun-14 df-prod   [--same--]  (in FL's mathbox) revised
11-Jun-14 cprd2     ---         (in FL's mathbox) deleted
11-Jun-14 cprd      [--same--]  (in FL's mathbox) revised
11-Jun-14 seq0p1g   ---         (in FL's mathbox) deleted; see seqp1
11-Jun-14 seq00g    ---         (in FL's mathbox) deleted; see seq1
11-Jun-14 iserzmulc1b ---       (in FL's mathbox) deleted; see isermulc2
11-Jun-14 prjnpl    resixp      moved from FL's mathbox to main set.mm
11-Jun-14 cbicp     [--same--]  (in FL's mathbox) revised
11-Jun-14 cbicplem  ---         (in FL's mathbox) deleted
11-Jun-14 isprj2    [--same--]  (in FL's mathbox) revised
11-Jun-14 isprj1    [--same--]  (in FL's mathbox) revised
11-Jun-14 hbcp      ---         (in FL's mathbox) deleted; see hbixp1
11-Jun-14 valpr     [--same--]  (in FL's mathbox) changed variable names
11-Jun-14 prmapcp3  ---         (in FL's mathbox) deleted; see prmapcp2
11-Jun-14 prmapcp2  [--same--]  (in FL's mathbox) changed variable names
11-Jun-14 ispr1     [--same--]  (in FL's mathbox) revised
11-Jun-14 df-prj    [--same--]  (in FL's mathbox) revised
11-Jun-14 df-pro    [--same--]  (in FL's mathbox) revised
11-Jun-14 dffn5b    ---         (in FL's mathbox) deleted; see dffn5v
11-Jun-14 fopabco3  fmptco      moved from FL's mathbox to main set.mm
11-Jun-14 riemtn    ---         (in FL's mathbox) deleted; see mptresid
11-Jun-14 riecb     ---         (in FL's mathbox) deleted; see opabresid
11-Jun-14 cmpran    ---         (in FL's mathbox) deleted; see rnmpt
11-Jun-14 fopab2a   ---         (in FL's mathbox) deleted; see fmpt
11-Jun-14 fopab2ga  ---         (in FL's mathbox) deleted; see fnmpt
11-Jun-14 cmpbvb    ---         (in FL's mathbox) deleted; see cbvmptv
11-Jun-14 fmptb     ---         (in FL's mathbox) deleted; see fmpt2
11-Jun-14 seq0clg   ---         (in FL's mathbox) deleted; see seqcl
11-Jun-14 bpolydiflem2 ---      (in SF's mathbox) deleted
11-Jun-14 bpolydiflem1 ---      (in SF's mathbox) deleted
11-Jun-14 bernpolycl bpolycl    (in SF's mathbox)
11-Jun-14 bernpoly1 bpoly1      (in SF's mathbox)
11-Jun-14 bernpolynn ---        (in SF's mathbox) deleted; see bpolyval
11-Jun-14 bernpoly0 bpoly0      (in SF's mathbox)
11-Jun-14 bernpolyval bpolyval  (in SF's mathbox) revised
11-Jun-14 df-bernpoly df-bpoly  (in SF's mathbox) revised
11-Jun-14 cbernpoly cbp         (in SF's mathbox)
11-Jun-14 fsumsq    ---         (in SF's mathbox) deleted; see fsumge0
11-Jun-14 trirecip  [--same--]  (in SF's mathbox) revised
11-Jun-14 trireciplem [--same--] (in SF's mathbox) revised
11-Jun-14 arisum4   ---         (in SF's mathbox) deleted; see arisum
11-Jun-14 arisum3   ---         (in SF's mathbox) deleted; see arisum
11-Jun-14 arisum2   ---         (in SF's mathbox) deleted; see arisum
11-Jun-14 arisum    [--same--]  moved from SF's mathbox to main set.mm; revised
11-Jun-14 binomp1m1 [--same--]  moved from SF's mathbox to main set.mm
11-Jun-14 binom21   [--same--]  moved from SF's mathbox to main set.mm
11-Jun-14 binom1dif [--same--]  moved from SF's mathbox to main set.mm
11-Jun-14 binom1    ---         (in SF's mathbox) deleted; see binom1p
11-Jun-14 binom     [--same--]  moved from SF's mathbox to main set.mm
11-Jun-14 bcsum     ---         (in SF's mathbox) deleted; see binom11
11-Jun-14 fsumtelescope2 fsumtscop moved from SF's mathbox to main set.mm
11-Jun-14 fsumtelescope ---     (in SF's mathbox) deleted; see fsumtscop
11-Jun-14 fsumsplitlast ---     (in SF's mathbox) deleted; see fsump1
11-Jun-14 fseq1cl   ---         (in PC's mathbox) deleted; see seqcl
11-Jun-14 seq1resval2 ---       (in PC's mathbox) deleted; see seqfveq
11-Jun-14 seq1resval ---        (in PC's mathbox) deleted; see seqfveq
11-Jun-14 seqzresval2 ---       (in PC's mathbox) deleted; see seqfveq
11-Jun-14 ---       ---         circumlem1 - circumlem3 deleted
11-Jun-14 sindivcvg sinccvg     (in PC's mathbox)
11-Jun-14 ---       ---         sindivcvglem1 - sindivcvglem8 deleted
11-Jun-14 efexple   [--same--]  (in MC's mathbox) revised
11-Jun-14 bclbnd2   bclbnd      (in MC's mathbox)
11-Jun-14 bclbnd    ---         (in MC's mathbox) deleted
11-Jun-14 elpjrnch  elpjch
11-Jun-14 elpjch    [--same--]  revised
11-Jun-14 pjhmopidm [--same--]  revised
11-Jun-14 hmopidmpj [--same--]  revised
11-Jun-14 hmopidmch [--same--]  revised
11-Jun-14 hmopidmpji [--same--] revised
11-Jun-14 hmopidmchi [--same--] revised
11-Jun-14 hmopidmchlem ---      deleted
11-Jun-14 opsqrlem6 [--same--]  revised
11-Jun-14 opsqrlem5 [--same--]  revised
11-Jun-14 opsqrlem4 [--same--]  revised
11-Jun-14 opsqrlem3 [--same--]  revised
11-Jun-14 opsqrlem2 [--same--]  revised
11-Jun-14 chso      pjth
11-Jun-14 ---       ---         osumlem1 - osumlem8 deleted
11-Jun-14 pjtheu2i  pjtheu2     revised
11-Jun-14 pjeq2     ---         deleted; see pjeq
11-Jun-14 pjtheui   ---         deleted; see pjtheu
11-Jun-14 pjth      [--same--]  revised
11-Jun-14 pjthi     ---         deleted; see pjth
11-Jun-14 ---       ---         pjthlem3 - pjthlem14 deleted
11-Jun-14 pjthlem2  [--same--]  revised
11-Jun-14 pjthlem1  [--same--]  revised
11-Jun-14 projlemHIL ---        deleted
11-Jun-14 projlem   ---         deleted
11-Jun-14 ---       ---         projlem1 - projlem31 deleted
11-Jun-14 occli     ---         deleted; see occl
11-Jun-14 ---       ---         occllem1 - occllem8 deleted
11-Jun-14 hlimeui   [--same--]  revised
11-Jun-14 hlimreui  [--same--]  revised
11-Jun-14 hlimuniii ---         deleted; see hlimunii
11-Jun-14 hlimcauii ---         deleted; see hlimcaui
11-Jun-14 hilcmpl   [--same--]  revised
11-Jun-14 hhcmpl    [--same--]  revised
11-Jun-14 hhlm      [--same--]  revised
11-Jun-14 hilcau    ---         deleted; see hhcau
11-Jun-14 hillim    ---         deleted; see hhlm
11-Jun-14 hlim2     [--same--]  revised
11-Jun-14 hlimconvi [--same--]  revised
11-Jun-14 hlimi     [--same--]  revised
11-Jun-14 hcau2     ---         deleted; see hcau
11-Jun-14 seq1hcau  [--same--]  revised
11-Jun-14 hcaucvg   [--same--]  revised
11-Jun-14 hcau      [--same--]  revised
11-Jun-14 h2hlm     [--same--]  revised
11-Jun-14 df-hcau   [--same--]  revised
11-Jun-14 df-hlim   [--same--]  revised
11-Jun-14 hmph      [--same--]  revised
11-Jun-14 hmeobc    [--same--]  revised
11-Jun-14 ishomeo   [--same--]  revised
11-Jun-14 df-hmph   [--same--]  revised
11-Jun-14 relogexp  [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 reexplog  [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 explog    [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 pilog     logm1       revised
11-Jun-14 resslogrn relogrn     revised
11-Jun-14 logrn     [--same--]  revised
11-Jun-14 df-log    [--same--]  revised
11-Jun-14 eff1o     [--same--]  revised
11-Jun-14 eff1oi    eff1olem    revised
11-Jun-14 effoi     ---         deleted; see eff1o
11-Jun-14 eff1i     ---         deleted; see eff1o
11-Jun-14 eff1lem   ---         deleted
11-Jun-14 shftefif1o ---        deleted; see efif1o
11-Jun-14 shftefif1olem ---     deleted
11-Jun-14 circgrp   [--same--]  revised
11-Jun-14 efielcirc ---         deleted
11-Jun-14 efif1o    [--same--]  revised
11-Jun-14 efif1     ---         deleted; see efif1o
11-Jun-14 ---       ---         efif1lem1 - efif1lem7 deleted
11-Jun-14 efifo     ---         deleted; see efif1o
11-Jun-14 ---       ---         efifolem1 - efifolem7 deleted
11-Jun-14 efif      ---         deleted; see efif1o
11-Jun-14 efghgrpi  efghgrp     revised
11-Jun-14 efghgrpilem ---       deleted
11-Jun-14 efgh      [--same--]  revised
11-Jun-14 cosh111   cos11       revised
11-Jun-14 ---       ---         cosh111lem1 - cosh111lem3 deleted
11-Jun-14 sineq0re  ---         deleted; see sineq0
11-Jun-14 sineq0OLD ---         deleted; see sineq0
11-Jun-14 sineq0    [--same--]  revised
11-Jun-14 sinq12gt0t sinq12gt0
11-Jun-14 sinperlem2 ---        deleted
11-Jun-14 sinperlem1 ---        deleted
11-Jun-14 pilem4    ---         deleted; see pilem3
11-Jun-14 pilem3    [--same--]  revised
11-Jun-14 pilem2    [--same--]  revised
11-Jun-14 pilem1    [--same--]  revised
11-Jun-14 cosco     ---         deleted
11-Jun-14 sinco     ---         deleted
11-Jun-14 sincnlem  ---         deleted
11-Jun-14 sincolem  ---         deleted
11-Jun-14 hlcompl   [--same--]  revised
11-Jun-14 minvecex2 ---         deleted; see minvec
11-Jun-14 minveclem39 ---       deleted
11-Jun-14 minvecle  ---         deleted; see minvec
11-Jun-14 minvecdist ---        deleted; see minvec
11-Jun-14 minveccl  ---         deleted; see minvec
11-Jun-14 minveceu   minvec     revised
11-Jun-14 ---       ---         minveclem35 - minveclem38 deleted
11-Jun-14 minvecex  ---         deleted; see minvec
11-Jun-14 ---       ---         minveclem10 - minveclem33 deleted
11-Jun-14 minvec34   ---        deleted
11-Jun-14 minveclem7 [--same--] revised
11-Jun-14 minveclem6 [--same--] revised
11-Jun-14 minveclem5 [--same--] revised
11-Jun-14 minveclem4 [--same--] revised
11-Jun-14 minveclem3 [--same--] revised
11-Jun-14 minveclem2 [--same--] revised
11-Jun-14 minveclem1 [--same--] revised
11-Jun-14 ipasslem7 [--same--]  revised
11-Jun-14 ipasslem6 ---         deleted
11-Jun-14 ip1cni    ---         deleted; see ipcn
11-Jun-14 ---       ---         ip1cnilem1 - ip1cnilem6 deleted
11-Jun-14 ipval2lem1 ---        deleted
11-Jun-14 sm1cni    ---         deleted; see smcn
11-Jun-14 sm1cnilem ---         deleted
11-Jun-14 va1cn     ---         deleted; see vacn and cnmpt12
11-Jun-14 va1cnlem  ---         deleted
11-Jun-14 vacn      [--same--]  revised
11-Jun-14 ---       ---         vacnlem1 - vacnlem6 deleted
11-Jun-14 nvlmle    [--same--]  revised
11-Jun-14 nvlmcl    [--same--]  revised
11-Jun-14 ghsubgi   ghsubg      revised
11-Jun-14 ghgrpi    ghgrp       revised
11-Jun-14 ---       ---         ghgrpilem1 - ghgrpilem4 deleted
11-Jun-14 bcthlem3  [--same--]  revised
11-Jun-14 cmsss     [--same--]  revised
11-Jun-14 lmcau     [--same--]  revised
11-Jun-14 iscms2i   iscms3i     revised
11-Jun-14 iscms2    iscms3      revised
11-Jun-14 ---       ---         iscms2lem3 - iscms2lem5 deleted
11-Jun-14 fsumcn    [--same--]  revised
11-Jun-14 fsumcnlem ---         deleted
11-Jun-14 mulcn     [--same--]  revised
11-Jun-14 subcn     [--same--]  revised
11-Jun-14 addcn     [--same--]  revised
11-Jun-14 bopcn     ---         deleted; see metcn4
11-Jun-14 ---       ---         bopcnlem1 - bopcnlem4 deleted
11-Jun-14 opr1scn   ---         deleted; see cnmpt12f and cnmptid, cnmptc
11-Jun-14 opr2cn    ---         deleted; see cnmpt12f and cnmptc
11-Jun-14 opr1cn    ---         deleted; see cnmpt12f and cnmptc
11-Jun-14 oprcn     ---         deleted; see cnmpt12f
11-Jun-14 xpcn      ---         deleted; see cnmpt1t
11-Jun-14 xplm      ---         deleted; see txlm
11-Jun-14 xplmi2    ---         deleted; see txlm
11-Jun-14 xplmi     ---         deleted; see txlm
11-Jun-14 metcnp4   [--same--]  revised
11-Jun-14 metcnp4lem2 ---       deleted
11-Jun-14 metcnp4lem1 ---       deleted
11-Jun-14 caublcls  [--same--]  revised
11-Jun-14 metcld    [--same--]  revised
11-Jun-14 metcls    ---         deleted; see metelcls
11-Jun-14 metelcls  [--same--]  revised
11-Jun-14 metcls2   ---         deleted; see lmcls
11-Jun-14 lmclimnn  lmclimf     revised
11-Jun-14 lmclim    [--same--]  revised
11-Jun-14 lmle      [--same--]  revised
11-Jun-14 lmfex     ---         deleted
11-Jun-14 lmfexlem3 ---         deleted
11-Jun-14 lmfexlem2 ---         deleted
11-Jun-14 lmfexlem1 ---         deleted
11-Jun-14 caussi    [--same--]  revised
11-Jun-14 lmss      [--same--]  revised
11-Jun-14 lmsslem   ---         deleted
11-Jun-14 lmuni     lmmo        revised
11-Jun-14 caufss    caufpm      revised
11-Jun-14 lmcl      [--same--]  revised
11-Jun-14 lmfss     [--same--]  revised
11-Jun-14 cmscvg    [--same--]  revised
11-Jun-14 iscms     [--same--]  revised
11-Jun-14 iscaunns  ---         deleted; see iscauf
11-Jun-14 lmcvgnns  ---         deleted; see lmmcvg
11-Jun-14 lmbrnns   ---         deleted; see iscauf
11-Jun-14 iscau5    ---         deleted; see iscauf
11-Jun-14 iscau4    [--same--]  revised
11-Jun-14 iscauf    [--same--]  revised
11-Jun-14 iscau3    [--same--]  revised
11-Jun-14 iscau2    [--same--]  revised
11-Jun-14 iscau     [--same--]  revised
11-Jun-14 lmnn      [--same--]  revised
11-Jun-14 lmconst   [--same--]  revised
11-Jun-14 lmcvg2    ---         deleted; see lmcvg
11-Jun-14 lmcvg     [--same--]  revised
11-Jun-14 lmbrf2    ---         deleted; see lmbrf
11-Jun-14 lmbrf     [--same--]  revised
11-Jun-14 lmbr2     [--same--]  revised
11-Jun-14 lmbr      [--same--]  revised
11-Jun-14 lmrel     [--same--]  revised
11-Jun-14 caufval   [--same--]  revised
11-Jun-14 lmfval    [--same--]  revised
11-Jun-14 df-cmet   [--same--]  revised
11-Jun-14 df-cau    [--same--]  revised
11-Jun-14 df-lm     [--same--]  revised
11-Jun-14 clm       [--same--]  revised
11-Jun-14 dscmet    [--same--]  revised
11-Jun-14 cn2met    [--same--]  revised
11-Jun-14 metdnsconst ---       deleted; see dnsconst
11-Jun-14 metxp     [--same--]  revised
11-Jun-14 metxplem4 [--same--]  revised
11-Jun-14 metxpcl   [--same--]  revised
11-Jun-14 metxpfval [--same--]  revised
11-Jun-14 metxptval [--same--]  revised
11-Jun-14 metxpdval [--same--]  revised
11-Jun-14 2txcn     ---         deleted; see cnmpt2t
11-Jun-14 txcnopab  txcnmpt     revised
11-Jun-14 txcn      [--same--]  revised
11-Jun-14 tx2cn     [--same--]  revised
11-Jun-14 tx1cn     [--same--]  revised
11-Jun-14 txcld     [--same--]  revised
11-Jun-14 txopn     [--same--]  revised
11-Jun-14 txuni     [--same--]  revised
11-Jun-14 txtop     [--same--]  revised
11-Jun-14 subspuni    [--same--]  revised
11-Jun-14 1arith2   [--same--]  revised
11-Jun-14 1arith    [--same--]  revised
11-Jun-14 ---       ---         1arithlem4 - 1arithlem31 deleted
11-Jun-14 1arithlem4 [--same--] revised
11-Jun-14 1arithlem3 [--same--] revised
11-Jun-14 1arithlem2 [--same--] revised
11-Jun-14 1arithlem1 [--same--] revised
11-Jun-14 ---       ---         mulgcdlem1 - mulgcdlem7 deleted
11-Jun-14 eucalg    [--same--]  revised
11-Jun-14 eucalgcvga [--same--] revised
11-Jun-14 eucalglt  [--same--]  revised
11-Jun-14 eucalginv [--same--]  revised
11-Jun-14 eucalgf   [--same--]  revised
11-Jun-14 eucalgval2 [--same--] revised
11-Jun-14 eucalgval [--same--]  revised
11-Jun-14 algfx     [--same--]  revised
11-Jun-14 algcvga   [--same--]  revised
11-Jun-14 algcvg    [--same--]  revised
11-Jun-14 alginv    [--same--]  revised
11-Jun-14 algrp1    [--same--]  revised
11-Jun-14 algrp1lem ---         deleted
11-Jun-14 algr0     [--same--]  revised
11-Jun-14 algrf     [--same--]  revised
11-Jun-14 ruclem39  ruclem13
11-Jun-14 ---       ---         ruclem13 - ruclem38 deleted
11-Jun-14 ruclem12  [--same--]  revised
11-Jun-14 ruclem11  [--same--]  revised
11-Jun-14 ruclem10  [--same--]  revised
11-Jun-14 ruclem9   [--same--]  revised
11-Jun-14 ruclem8   [--same--]  revised
11-Jun-14 ruclem7   [--same--]  revised
11-Jun-14 ruclem6   [--same--]  revised
11-Jun-14 ruclem5   [--same--]  revised
11-Jun-14 ruclem4   [--same--]  revised
11-Jun-14 ruclem3   [--same--]  revised
11-Jun-14 ruclem2   [--same--]  revised
11-Jun-14 ruclem1   [--same--]  revised
11-Jun-14 rpnnen2lem11 [--same--] revised
11-Jun-14 rpnnen2lem10 [--same--] revised
11-Jun-14 rpnnen2lem9 [--same--] revised
11-Jun-14 rpnnen2lem8 [--same--] revised
11-Jun-14 rpnnen2lem7 [--same--] revised
11-Jun-14 rpnnen2lem6 [--same--] revised
11-Jun-14 rpnnen2lem5 [--same--] revised
11-Jun-14 rpnnen2lem4 [--same--] revised
11-Jun-14 rpnnen2lem3 [--same--] revised
11-Jun-14 rpnnen2lem2 [--same--] revised
11-Jun-14 rpnnen2lem1 [--same--] revised
11-Jun-14 acdcALT   ---         deleted; see axdc2
11-Jun-14 acdc      ---         deleted; see axdc2
11-Jun-14 acdclem   ---         deleted
11-Jun-14 acdc5     ---         deleted; see axdc4
11-Jun-14 acdc5lem2 ---         deleted
11-Jun-14 acdc5lem1 ---         deleted
11-Jun-14 acdc2     ---         deleted; see axdc4
11-Jun-14 acdc2lem2 ---         deleted
11-Jun-14 acdc2lem1 ---         deleted
11-Jun-14 acdc4lem1 ---         deleted
11-Jun-14 acdc3     ---         deleted; see axdc3
11-Jun-14 acdc3lem  ---         deleted
11-Jun-14 demoivre  ---         generalized antecedent to N e. ZZ
11-Jun-14 ---       ---         cos01bndlem2 - cos01bndlem3 deleted
11-Jun-14 ---       ---         sin01bndlem1 - sin01bndlem3 deleted
11-Jun-14 cos2OLD   ---         deleted; see cos2t
11-Jun-14 subcos    [--same--]  revised
11-Jun-14 cosaddi   ---         deleted; see cosadd
11-Jun-14 sinaddi   ---         deleted; see sinadd
11-Jun-14 sin0ALT   ---         deleted; see sin0
11-Jun-14 efi4p     [--same--]  revised
11-Jun-14 reeff1olem2 ---       deleted
11-Jun-14 reeff1olem1 ---       deleted
11-Jun-14 ---       ---         efcnlem1 - efcnlem1 deleted
11-Jun-14 efm1legeo ---         deleted
11-Jun-14 efm1legeoi ---        deleted
11-Jun-14 eflegeo   [--same--]  revised
11-Jun-14 eflegeoi  ---         deleted
11-Jun-14 eflegeolem2 ---       deleted
11-Jun-14 eflegeolem1 ---       deleted
11-Jun-14 absefm1lei ---        deleted
11-Jun-14 efm1limi  ---         deleted
11-Jun-14 efltbi    ---         deleted; see eflt
11-Jun-14 eflti     [--same--]  revised
11-Jun-14 efgt0i    ---         deleted; see efgt0
11-Jun-14 efgt0i    ---         deleted; see efgt0
11-Jun-14 efgt1pi   efgt1p      revised
11-Jun-14 efgt1i    efgt1       revised
11-Jun-14 efge1pi   ---         deleted; see efgt1p
11-Jun-14 efge1i    ---         deleted; see efgt1
11-Jun-14 ef4p      [--same--]  revised
11-Jun-14 ef4pi     ---         deleted; see ef4p
11-Jun-14 eft0vali  eft0val     revised
11-Jun-14 effsumlei effsumlt    revised
11-Jun-14 efsepi    efsep       revised
11-Jun-14 abspef01tlubi ---     deleted; see eftlub
11-Jun-14 elt3OLD   ---         deleted; see egt2lt3
11-Jun-14 egt2OLD   ---         deleted; see egt2lt3
11-Jun-14 ---       ---         eirrlem1 - eirrlem5 deleted
11-Jun-14 absef01tlubi eftlub   revised
11-Jun-14 absef01tllem ---      deleted
11-Jun-14 ef01tlubi ---         deleted; see eftlub
11-Jun-14 ef01tllem2OLD ---     deleted
11-Jun-14 ef01tllem2 ---        deleted
11-Jun-14 ef01tllem1 ---        deleted
11-Jun-14 ef1tlubi  ---         deleted; see eftlub
11-Jun-14 ef1tllem  ---         deleted
11-Jun-14 reeftlcl  [--same--]  revised
11-Jun-14 eftlcl    [--same--]  revised
11-Jun-14 eftlex    eftlcvg     revised
11-Jun-14 eftlexiOLD ---        deleted
11-Jun-14 eftlubcl  ---         deleted
11-Jun-14 eftabsi   eftabs      revised
11-Jun-14 efnn0val  efzval      generalized antecedent to N e. ZZ
11-Jun-14 efexp     [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 efaddi    ---         deleted; see efadd
11-Jun-14 ---       ---         efaddlem1 - efaddlem28 deleted
11-Jun-14 efcji     ---         deleted; see efcj
11-Jun-14 ege2le3   [--same--]  revised; see egt2lt3
11-Jun-14 ele3      ---         deleted; see egt2lt3
11-Jun-14 ege2      ---         deleted; see egt2lt3
11-Jun-14 ereALT    ---         deleted; see ere
11-Jun-14 ege2le3lem2 ---       deleted
11-Jun-14 ege2lem2  ---         deleted
11-Jun-14 ege2le3lem1 ---       deleted
11-Jun-14 ele3lem   ---         deleted
11-Jun-14 ---       ---         erelem1 - erelem7 deleted
11-Jun-14 reefcli   ---         deleted; see reefcl
11-Jun-14 eftval    [--same--]  revised
11-Jun-14 efcvgfsum [--same--]  revised
11-Jun-14 efcvg     [--same--]  revised
11-Jun-14 efseq0ex  ---         deleted; see efcllem
11-Jun-14 ef0lem    [--same--]  revised
11-Jun-14 dfef2i    ---         deleted
11-Jun-14 efseq1ex  ---         deleted; see efcllem
11-Jun-14 efcltlem2 ---         deleted; see ef0lem
11-Jun-14 efcltlem1 ---         deleted; see efcllem
11-Jun-14 df-pi     [--same--]  revised
11-Jun-14 df-tan    [--same--]  revised
11-Jun-14 dsupivthi ivth2       revised
11-Jun-14 dsupivthlem ---       deleted
11-Jun-14 isupivthi ivth        revised
11-Jun-14 ---       ---         ivthlem1 - ivthlem9 deleted
11-Jun-14 divccncf  [--same--]  revised
11-Jun-14 mulc1cncf [--same--]  revised
11-Jun-14 abscncflem ---        deleted
11-Jun-14 negfcncfi negfcncf    revised
11-Jun-14 fsum0diag4 ---        deleted; see fsum0diag
11-Jun-14 fsum0diag3 ---        deleted; see fsum0diag
11-Jun-14 fsum0diag2 ---        deleted; see fsum0diag
11-Jun-14 fsum0diag [--same--]  revised
11-Jun-14 fsum0diaglem2 ---     deleted
11-Jun-14 fsum0diaglem1 ---     deleted
11-Jun-14 cvgrati   cvgrat      revised
11-Jun-14 ---       ---         cvgratlem1 - cvgratlem5 deleted
11-Jun-14 ---       ---         cvgratlem1ALT - cvgratlem3ALT deleted
11-Jun-14 geosum2i  ---         deleted; see geoser
11-Jun-14 geosumi   ---         deleted; see geoser
11-Jun-14 georeclim [--same--]  revised
11-Jun-14 geolim1   ---         deleted; see geolim2
11-Jun-14 geolim1i  ---         deleted; see geolim2
11-Jun-14 geolim    [--same--]  revised
11-Jun-14 geolimi   ---         deleted; see geolim
11-Jun-14 geolimilem ---        deleted
11-Jun-14 geoseri   geoser      revised
11-Jun-14 explecnv  [--same--]  revised
11-Jun-14 expcnv    [--same--]  revised
11-Jun-14 ---       ---         expcnvlem1 - expcnvlem6 deleted
11-Jun-14 arisumi   arisum      revised
11-Jun-14 arisumilem ---        deleted
11-Jun-14 supcvg    [--same--]  revised
11-Jun-14 supcvglem ---         deleted
11-Jun-14 reccnv    divcnv      revised
11-Jun-14 binom11i  binom11
11-Jun-14 binom1pi  binom1p     revised
11-Jun-14 binomi    binom       revised
11-Jun-14 ---       ---         binomlem1 - binomlem6 deleted
11-Jun-14 ser0cji   ---         deleted; see sercj
11-Jun-14 serzcji   sercj       revised
11-Jun-14 serzimi   serim       revised
11-Jun-14 serzrei   serre       revised
11-Jun-14 serzrelem ---         deleted
11-Jun-14 ser1mulci ---         deleted; see seqdistr
11-Jun-14 ser0mulci ---         deleted; see seqdistr
11-Jun-14 serzmulci ---         deleted; see seqdistr
11-Jun-14 serzmulc1 ---         deleted; see seqdistr
11-Jun-14 serzsplit ---         deleted; see seqsplit
11-Jun-14 serzcmp0  serge0      revised
11-Jun-14 serzcmp   sercmp      revised
11-Jun-14 serz0     ser0        revised
11-Jun-14 serz1p    seq1p       revised
11-Jun-14 serzrefi  serfre      revised
11-Jun-14 serzrecl  ---         deleted; see serfre
11-Jun-14 serzcl2   ---         deleted; see serf
11-Jun-14 ser1ser0i ---         deleted; see seq1p
11-Jun-14 ser1cl    ---         deleted; see seqcl
11-Jun-14 ser0cl    ---         deleted; see seqcl
11-Jun-14 serzcl    ---         deleted; see seqcl
11-Jun-14 fsumabs2mul ---       deleted; see fsum2mul and fsumabs
11-Jun-14 fsumabs   [--same--]  revised
11-Jun-14 fsum00    [--same--]  revised
11-Jun-14 fsumcmpndx2 fsumcmpss revised
11-Jun-14 fsumcmp0  fsumge0     revised
11-Jun-14 fsumcmp   [--same--]  revised
11-Jun-14 fsum0     ---         deleted; see sumz
11-Jun-14 fsumconst [--same--]  revised
11-Jun-14 fsum2mul  [--same--]  revised
11-Jun-14 fsumsub   [--same--]  revised
11-Jun-14 fsumneg   [--same--]  revised
11-Jun-14 fsumdivcALT ---       deleted
11-Jun-14 fsumdivc  [--same--]  revised
11-Jun-14 fsummulc2 fsummulc1   revised
11-Jun-14 fsummulc1 fsummulc2   revised
11-Jun-14 fsumshftm [--same--]  revised
11-Jun-14 fsumshft  [--same--]  revised
11-Jun-14 fsumrev2  [--same--]  revised
11-Jun-14 fsumrev   [--same--]  revised
11-Jun-14 fsumcom   [--same--]  revised
11-Jun-14 csbfsum   [--same--]  deleted; see sumeq2sdv
11-Jun-14 csbfsumlem [--same--] deleted
11-Jun-14 fsum4     [--same--]  deleted; see fsump1i
11-Jun-14 fsum3     [--same--]  deleted; see fsump1i
11-Jun-14 fsum2     [--same--]  deleted; see fsump1i
11-Jun-14 fsumadd   [--same--]  revised
11-Jun-14 fsumid2   ---         deleted; see fsumss
11-Jun-14 fsum0split ---        deleted; see fsumsplit
11-Jun-14 fsumsplit [--same--]  revised
11-Jun-14 fsum1p    [--same--]  revised
11-Jun-14 fsum1ps   ---         deleted; see fsum1p
11-Jun-14 fsumrecl  [--same--]  revised
11-Jun-14 fsum0cl   ---         deleted; see fsumcl
11-Jun-14 fsumcl    [--same--]  revised
11-Jun-14 fsumcllem [--same--]  revised; see this or fsumcl2lem
11-Jun-14 fsump1s   ---         deleted; see fsump1
11-Jun-14 fsump1slem ---        deleted
11-Jun-14 fsump1fi  ---         deleted; see fsump1
11-Jun-14 fsum1s2   ---         deleted; see sumsns
11-Jun-14 fsum1s    ---         deleted; see sumsns
11-Jun-14 fsum1slem ---         deleted
11-Jun-14 fsum1fi   ---         deleted; see fsum1
11-Jun-14 fsump1i   fsump1      revised
11-Jun-14 fsum1i    fsum1       revised
11-Jun-14 serzfsum  ---         deleted; see fsumser
11-Jun-14 fsumserz2 ---         deleted; see fsumser
11-Jun-14 fsumser1fi ---        deleted; see fsumser
11-Jun-14 fsumser0fi ---        deleted; see fsumser
11-Jun-14 fsumserzfi ---        deleted; see fsumser
11-Jun-14 fsumserz  fsumser     revised
11-Jun-14 dffsum    ---         deleted; see fsumser
11-Jun-14 sumeqfv   sumfc       revised
11-Jun-14 df-sum    [--same--]  revised
11-Jun-14 cvgcmp3ce cvgcmpce    revised
11-Jun-14 cvgcmp3cetlem2 ---    deleted
11-Jun-14 cvgcmp3cetlem1 ---    deleted
11-Jun-14 cvgcmp3cei ---        deleted; see cvgcmpce
11-Jun-14 cvgcmp3ci ---         deleted; see cvgcmpce
11-Jun-14 cvgcmpubi cvgcmpub    revised
11-Jun-14 cvgcmpi   cvgcmp      revised
11-Jun-14 cvgcmp2ci ---         deleted; see cvgcmp
11-Jun-14 cvgcmp2clemOLD ---    deleted
11-Jun-14 cvgcmp2clem ---       deleted
11-Jun-14 cvgcmp2i  ---         deleted; see cvgcmp
11-Jun-14 cvgcmp2lem ---        deleted
11-Jun-14 iserzabsi iserabs     revised
11-Jun-14 iserzabslem ---       deleted
11-Jun-14 ser1cmp2i ---         deleted
11-Jun-14 ser1cmp2lem ---       deleted
11-Jun-14 ser1cmp0i ---         deleted; see serge0
11-Jun-14 ser1cmpi  ---         deleted; see serle
11-Jun-14 ser1clim0 ---         deleted; see serclim0
11-Jun-14 ser10     ---         deleted; see ser0
11-Jun-14 ser1consti ser1const  revised
11-Jun-14 ser1f0i   ---         deleted; see serf0
11-Jun-14 serzf0i   serf0       revised
11-Jun-14 caucvg3   caucvg      revised
11-Jun-14 caucvg3i  ---         deleted; see caucvg
11-Jun-14 caucvg3lem ---        deleted
11-Jun-14 caucvg2i  caurcvg2    revised
11-Jun-14 caucvg3ai ---         deleted; see caucvg
11-Jun-14 caucvgi   caurcvg     revised
11-Jun-14 ---       ---         caucvglem1 - caucvglem6 deleted
11-Jun-14 climcaui  climcau     revised
11-Jun-14 climsupi  climsup     revised
11-Jun-14 climubi   ---         deleted; see monoord
11-Jun-14 climubii  ---         deleted; see monoord
11-Jun-14 climimi   climim      revised
11-Jun-14 climrei   climre      revised
11-Jun-14 climcji   climcj      revised
11-Jun-14 climabsi  climabs     revised
11-Jun-14 climabslem climcn1lem revised
11-Jun-14 climserzlei climserle revised
11-Jun-14 iserzexi  ---         deleted; see iserex
11-Jun-14 clim2serzi ---        deleted; see clim2ser
11-Jun-14 iserzshfti isershft   revised
11-Jun-14 iserzcmp0 iserge0     revised
11-Jun-14 iserzcmp  isercmp     revised
11-Jun-14 climsqueeze2 [--same--] revised
11-Jun-14 climsqueeze [--same--] revised
11-Jun-14 climcmpc1 climcmpc2   revised
11-Jun-14 climcmp   [--same--]  revised
11-Jun-14 climcmplem ---        deleted
11-Jun-14 iserzmulc1 isermulc2  revised
11-Jun-14 iserzex   iserex      revised
11-Jun-14 clim2serz clim2ser    revised
11-Jun-14 climmulci ---         deleted; see climmulc2
11-Jun-14 climaddci ---         deleted; see climaddc2
11-Jun-14 climsubc2 [--same--]  revised
11-Jun-14 climsub   [--same--]  revised
11-Jun-14 climmulc2 [--same--]  revised
11-Jun-14 climmul   [--same--]  revised
11-Jun-14 ---       ---         climmullem1 - climmullem8 deleted
11-Jun-14 climaddc2 [--same--]  revised
11-Jun-14 climaddc1 [--same--]  revised
11-Jun-14 climadd   [--same--]  revised
11-Jun-14 ---       ---         climaddlem1 - climaddlem3 deleted
11-Jun-14 climabs0i climabs0    revised
11-Jun-14 climge0   [--same--]  revised
11-Jun-14 climfnrcli ---        deleted; see climrecl
11-Jun-14 climrecl  [--same--]  revised
11-Jun-14 serzclim0 serclim0    revised
11-Jun-14 climuz0i  ---         deleted; see climconst2
11-Jun-14 iserzshft2i ---       deleted; see isershft
11-Jun-14 climshft2 [--same--]  revised
11-Jun-14 sershft   isershft
11-Jun-14 climshft  [--same--]  revised
11-Jun-14 climres   [--same--]  revised
11-Jun-14 2climnn0  ---         deleted; see 2clim
11-Jun-14 2climnn   ---         deleted; see 2clim
11-Jun-14 climeq    [--same--]  revised
11-Jun-14 climunii  ---         deleted; see climuni
11-Jun-14 clim0     climz
11-Jun-14 climconst3 ---        deleted; see climconst2
11-Jun-14 climconst2 [--same--] revised
11-Jun-14 climconsti climconst  revised
11-Jun-14 clmfnn    ---         deleted; see clim2c
11-Jun-14 climfnn   ---         deleted; see clim2c
11-Jun-14 clmi2a    ---         deleted; see climi2
11-Jun-14 clm4a     ---         deleted; see clim2c
11-Jun-14 clm0ii    ---         deleted; see climi0
11-Jun-14 clmi2rpi  ---         deleted; see climi2
11-Jun-14 clmi2i    ---         deleted; see climi2
11-Jun-14 clmi1i    ---         deleted; see climi
11-Jun-14 clm0nnsi  ---         deleted; see clim0c
11-Jun-14 clmnnsi   ---         deleted; see clim2c
11-Jun-14 clm0i     ---         deleted; see clim0c
11-Jun-14 clm4fi    ---         deleted; see clim2c
11-Jun-14 clm4lei   ---         deleted; see clim2c
11-Jun-14 clm3i     ---         deleted; see clim2c
11-Jun-14 clm2i     ---         deleted; see clim2
11-Jun-14 clm1i     ---         deleted; see clim2
11-Jun-14 climcl    [--same--]  changed variable names
11-Jun-14 clim      [--same--]  revised
11-Jun-14 ser1absdifi ---       deleted; see fsumabs or seqabs
11-Jun-14 ser1absdiflem ---     deleted
11-Jun-14 cauimi    ---         deleted
11-Jun-14 caurei    ---         deleted
11-Jun-14 caubndi   caubnd      revised
11-Jun-14 cvganuzi  rexanuz2    revised
11-Jun-14 cvganz    rexanuz     revised
11-Jun-14 cvg3i     ---         deleted; see rexuz3
11-Jun-14 cvg2i     ---         deleted
11-Jun-14 cvg1      ---         deleted
11-Jun-14 cvg1i     ---         deleted
11-Jun-14 cau5i     ---         deleted; see rexuz3
11-Jun-14 cau4ii    ---         deleted; see rexuz3
11-Jun-14 cau5ii    ---         deleted; see rexuz3
11-Jun-14 cau3i     cau3        revised
11-Jun-14 cau3iri   ---         deleted; see cau3
11-Jun-14 cau3ii    ---         deleted
11-Jun-14 cau2i     ---         deleted
11-Jun-14 seq1ubi   ---         deleted; see fimaxre3 and suprub
11-Jun-14 seq1ublem ---         deleted
11-Jun-14 seq1bndi  ---         deleted; see fimaxre3
11-Jun-14 sqsqr     resqrth
11-Jun-14 discrlem  discr       revised
11-Jun-14 ---       ---         discrlem1 - discrlem3 deleted
11-Jun-14 expnlbnd2 [--same--]  revised
11-Jun-14 leexp2r [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 ltexp2r   [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 leexp2a  [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 ltexp2    [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 expcan    [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 ltexp2a   [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 expm1     [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 expsubOLD ---         deleted; see expsub
11-Jun-14 expsub    [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 exprecOLD ---         deleted; see exprec
11-Jun-14 exprec    [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 expgt0    [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 expne0i   [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 1exp      [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 rpexpcl   [--same--]  generalized antecedent to N e. ZZ
11-Jun-14 expval    [--same--]  revised
11-Jun-14 df-exp    [--same--]  revised
11-Jun-14 ser0p1i   ---         deleted; see seqp1i
11-Jun-14 ser00i    ---         deleted; see seq1i
11-Jun-14 ser0fi    ---         deleted; see serf
11-Jun-14 ser0cl1i  ---         deleted; see serf
11-Jun-14 serzcl1i  ---         deleted; see serf
11-Jun-14 seq1resval2g ---      deleted; see seqfveq
11-Jun-14 seqzresval2g ---      deleted; see seqfveq
11-Jun-14 seq1alcl  ---         deleted; see seqcl
11-Jun-14 seqzalcl  ---         deleted; see seqcl
11-Jun-14 seq0cl    ---         deleted; see seqf
11-Jun-14 seqzres2  ---         deleted; see seqres
11-Jun-14 seqzres   ---         deleted; see seqres
11-Jun-14 seqzresval ---        deleted; see seqfveq
11-Jun-14 seqzcl    ---         deleted; see seqf
11-Jun-14 seqzrn    ---         deleted; see seqf
11-Jun-14 seqzrn2   ---         deleted; see seqf2
11-Jun-14 seqzfveqg ---         deleted; see seqfveq
11-Jun-14 seqzeq    ---         deleted; see seqfeq
11-Jun-14 seqzfveq  ---         deleted; see seqfveq
11-Jun-14 seq1seqzg ---         deleted
11-Jun-14 seqzp1g   ---         deleted; see seqp1
11-Jun-14 seqz1g    ---         deleted; see seq1
11-Jun-14 seq01     ---         deleted; see seqp1i
11-Jun-14 seqzm1    ---         deleted; see seqm1
11-Jun-14 seq1shftid ---        deleted; see seqfeq
11-Jun-14 ser1addi  ---         deleted; see seradd
11-Jun-14 ser1add2i ---         deleted; see seradd
11-Jun-14 ser1monoi ---         deleted; see sermono
11-Jun-14 ser1p1i   ---         deleted; see seqp1i
11-Jun-14 ser11i    ---         deleted; see seq1i
11-Jun-14 ser1f2i   ---         deleted; see serf
11-Jun-14 ser1cl2i  ---         deleted; see serf
11-Jun-14 ser1refi  ---         deleted; see serfre
11-Jun-14 ser1recli ---         deleted; see serfre
11-Jun-14 ser1cl1i  ---         deleted; see serf
11-Jun-14 ser1fi    ---         deleted; see serf
11-Jun-14 ser1f     ---         deleted; see serf
11-Jun-14 seq1p1g   ---         deleted; see seqp1
11-Jun-14 seq11g    ---         deleted; see seq1
11-Jun-14 seq1res   ---         deleted; see seqres
11-Jun-14 seq1cl2   ---         deleted; see seqcl2
11-Jun-14 seq1cl    ---         deleted; see seqcl
11-Jun-14 seq1f2    ---         deleted; see seqf2
11-Jun-14 seq1f     ---         deleted; see seqf
11-Jun-14 seq1rn    ---         deleted; see seqf
11-Jun-14 seq1rn2   ---         deleted; see seqf2
11-Jun-14 seq1m1    ---         deleted; see seqm1
11-Jun-14 seq1lem2  ---         deleted
11-Jun-14 seq0p1    ---         deleted; see seqp1
11-Jun-14 seq00     ---         deleted; see seq1
11-Jun-14 seqzp1    ---         deleted; see seqp1
11-Jun-14 seqz1     ---         deleted; see seq1
11-Jun-14 seq0fn    ---         deleted; see seqfn
11-Jun-14 seq0seqz  ---         deleted
11-Jun-14 seq1seqz  ---         deleted
11-Jun-14 seqzfn    ---         deleted; see seqfn
11-Jun-14 seqzfval  ---         deleted
11-Jun-14 seq0fval  ---         deleted
11-Jun-14 seq1fn    ---         deleted; see seqfn
11-Jun-14 seq1p1    ---         deleted; see seqp1
11-Jun-14 seq11     ---         deleted; see seq1
11-Jun-14 seq1fval  ---         deleted
11-Jun-14 df-seqz   ---         deleted; see df-seq
11-Jun-14 df-seq0   ---         deleted; see df-seq
11-Jun-14 df-seq1   ---         deleted; see df-seq
11-Jun-14 cseqz     ---         deleted                - use seq theorems
11-Jun-14 cseq0     ---         deleted                  in place of seq1, etc.
11-Jun-14 cseq1     ---         deleted
11-Jun-14 sercmp    [--same--]  revised
11-Jun-14 ser0      [--same--]  revised
11-Jun-14 serdistr  [--same--]  revised
11-Jun-14 seqhomo   [--same--]  revised
11-Jun-14 seqid2    [--same--]  revised
11-Jun-14 seqid     [--same--]  revised
11-Jun-14 sersub    [--same--]  revised
11-Jun-14 seradd    [--same--]  revised
11-Jun-14 serf1o    [--same--]  revised
11-Jun-14 serf1olem2 [--same--] revised
11-Jun-14 serf1olem1 [--same--] revised
11-Jun-14 sercaopr  [--same--]  revised
11-Jun-14 seq1p     [--same--]  revised
11-Jun-14 seqsplit  [--same--]  revised
11-Jun-14 sermono   [--same--]  revised
11-Jun-14 monoord   [--same--]  revised
11-Jun-14 serfre    [--same--]  revised
11-Jun-14 serf      [--same--]  revised
11-Jun-14 seqres    [--same--]  revised
11-Jun-14 seqshft2  [--same--]  revised
11-Jun-14 seqfeq    [--same--]  revised
11-Jun-14 seqfveq   [--same--]  revised
11-Jun-14 seqfeq2   [--same--]  revised
11-Jun-14 seqfveq2  [--same--]  revised
11-Jun-14 seqf      [--same--]  revised
11-Jun-14 seqcl     [--same--]  revised
11-Jun-14 seqf2     [--same--]  revised
11-Jun-14 seqcl2    [--same--]  revised
11-Jun-14 caoprassg [--same--]  revised
11-Jun-14 caoprcomg [--same--]  revised
11-Jun-14 fvunsn    [--same--]  eliminate unnecessary hypothesis
29-May-14 iccss2    [--same--]  moved from JM's mathbox to main set.mm
29-May-14 iccss     [--same--]  moved from JM's mathbox to main set.mm
29-May-14 iccconn   [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 retopcon  [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 reconn    [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 reconnlem5 [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 reconnlem4 [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 reconnlem3 [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 reconnlem2 [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 reconnlem1 [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 connsub   [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 dfcon2    [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 ioodisj   [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 iccid      [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 imp511    [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 imp55     [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 imp5g     [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 mtord     [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 eqeu      [--same--]  moved from JGH's mathbox to main set.mm
29-May-14 uznnssnn  [--same--]  moved from SF's mathbox to main set.mm
22-May-14 dmnrng    dmnrngo     (in FL's mathbox)
22-May-14 smprngpr  smprngopr   (in FL's mathbox)
22-May-14 prrngrng  prrngorngo  (in FL's mathbox)
22-May-14 isprrng   isprrngo    (in FL's mathbox)
22-May-14 df-prrng  df-prrngo   (in FL's mathbox)
22-May-14 0ring     0rngo       (in FL's mathbox)
22-May-14 rngidl    rngoidl     (in FL's mathbox)
22-May-14 crnghomfo crngohomfo  (in FL's mathbox)
22-May-14 crngrng   crngorngo   (in FL's mathbox)
22-May-14 iscring2  iscrngo2    (in FL's mathbox)
22-May-14 iscring   iscrngo     (in FL's mathbox)
22-May-14 df-cring  df-crngo    (in FL's mathbox)
22-May-14 rngisoco  rngoisoco   (in FL's mathbox)
22-May-14 rngisocnv rngoisocnv  (in FL's mathbox)
22-May-14 rngisohom rngoisohom  (in FL's mathbox)
22-May-14 rngiso1o  rngoiso1o   (in FL's mathbox)
22-May-14 isrngiso  isrngoiso   (in FL's mathbox)
22-May-14 rngisoval rngoisoval  (in FL's mathbox)
22-May-14 df-rngiso df-rngoiso  (in FL's mathbox)
22-May-14 rngkerinj rngokerinj  (in FL's mathbox)
22-May-14 rnghomco  rngohomco   (in FL's mathbox)
22-May-14 rnghomsub rngohomsub  (in FL's mathbox)
22-May-14 rnghom0   rngohom0    (in FL's mathbox)
22-May-14 rnggrphom rngogrphom  (in FL's mathbox)
22-May-14 rnghommul rngohommul  (in FL's mathbox)
22-May-14 rnghomadd rngohomadd  (in FL's mathbox)
22-May-14 rnghom1   rngohom1    (in FL's mathbox)
22-May-14 rnghomcl  rngohomcl   (in FL's mathbox)
22-May-14 rnghomf   rngohomf    (in FL's mathbox)
22-May-14 isrnghom  isrngohom   (in FL's mathbox)
22-May-14 rnghomval rngohomval  (in FL's mathbox)
22-May-14 df-rnghom df-rngohom  (in FL's mathbox)
22-May-14 isdivrng3 isdrngo3    (in FL's mathbox)
22-May-14 isdivrng2 isdrngo2    (in FL's mathbox)
22-May-14 isdivrng1 isdrngo1    (in FL's mathbox)
22-May-14 ringsubdir rngosubdir (in FL's mathbox)
22-May-14 ringsubdi rngosubdi   (in FL's mathbox)
22-May-14 ringnegrmul rngonegrmul (in FL's mathbox)
22-May-14 ringneglmul rngoneglmul (in FL's mathbox)
22-May-14 ringnegmn1r rngonegmn1r (in FL's mathbox)
22-May-14 ringnegmn1l rngonegmn1l (in FL's mathbox)
22-May-14 ringsub   rngosub     (in FL's mathbox)
22-May-14 ringaddneg2 rngoaddneg2 (in FL's mathbox)
22-May-14 ringaddneg1 rngoaddneg1 (in FL's mathbox)
22-May-14 ringnegcl rngonegcl   (in FL's mathbox)
22-May-14 df-toprng df-toprngo  (in FL's mathbox)
22-May-14 glmring   glmrngo     (in FL's mathbox)
22-May-14 rngridfz  rngoridfz   (in FL's mathbox)
22-May-14 rngunval2 rngounval2  (in FL's mathbox)
22-May-14 rnginvcl  rngoinvcl   (in FL's mathbox)
22-May-14 rnplrnml3 rngodmeqrn  (in FL's mathbox)
22-May-14 rngdmdmrn rngodmdmrn  (in FL's mathbox)
22-May-14 uznzr     rngoueqz
22-May-14 ring1cl   rngo1cl
22-May-14 on1el6    rngosn6
22-May-14 on1el4    rngosn4
22-May-14 on1el3    rngosn3
22-May-14 ringoridm rngoridm
22-May-14 ringolidm rngolidm
22-May-14 ringoidmlem rngoidmlem
22-May-14 fora      rngoablo2
22-May-14 fora2     rngoablo2lem2
22-May-14 fora1     rngoablo2lem1
22-May-14 unmnd     rngomnd
22-May-14 rnplrnml  rngorn1eq
22-May-14 rnplrnml2 rngorn1
22-May-14 rnplrnml0 rngodm1dm2
22-May-14 rngn0     rngon0
22-May-14 drngi     drngoi
22-May-14 ringsn    rngosn
22-May-14 cnring    cnrngo
22-May-14 ringorz   rngorz
22-May-14 ringolz   rngolz
22-May-14 ring0lid  rngo0lid
22-May-14 ring0rid  rngo0rid
22-May-14 ring0cl   rngo0cl
22-May-14 ringlcan  rngolcan
22-May-14 ringrcan  rngorcan
22-May-14 ringa4    rngoa4
22-May-14 ringa32   rngoa32
22-May-14 ringaass  rngoaass
22-May-14 ringcom   rngocom
22-May-14 ringgcl   rngogcl
22-May-14 ringogrpo rngogrpo
22-May-14 ringoablo rngoablo
22-May-14 ring2     rngo2
22-May-14 ringoass  rngoass
22-May-14 ringodir  rngodir
22-May-14 ringodi   rngodi
22-May-14 ringoideu rngoideu
22-May-14 ringid    rngoid
22-May-14 ringocl   rngocl
22-May-14 ringsm    rngosm
22-May-14 ringoi    rngoi
22-May-14 isringod  isrngod
22-May-14 isringo   isrngo
22-May-14 relrng    relrngo
22-May-14 df-ringo  df-rngo
22-May-14 cring     crngo
21-May-14 infmrgelb [--same--]  moved from JM's mathbox to main set.mm; revised
21-May-14 infmrlb   [--same--]  moved from JM's mathbox to main set.mm; revised
21-May-14 fienf1f1o ---         deleted; use f1finf1o
21-May-14 lbleinf   infmrgelb   moved from JGH's mathbox to main set.mm
21-May-14 divcan7   [--same--]  moved from JGH's mathbox to main set.mm
21-May-14 blhalf    [--same--]  moved from JM's mathbox to main set.mm
21-May-14 lt0nnn0   [--same--]  revised
17-May-14 oprabval2ga ---       deleted; use ovmpt2g
17-May-14 mpt2fng   ---         deleted; use fnmpt2
17-May-14 rngop     rnmpt2
17-May-14 fnoprab2ga fnmpt2
17-May-14 fnoprab2a fnmpt2i
17-May-14 dmoprab2a dmmpt2
17-May-14 foprab2a  fmpt2
17-May-14 oprabex2ga mpt2exg
17-May-14 mpt2exg   mpt2exga
17-May-14 dmmpt2    dmmpt
17-May-14 dmmpt     dmmptg
17-May-14 visset    vex
17-May-14 elisseti  elexi
17-May-14 elissetxx elisset
17-May-14 elisset   elex
17-May-14 elex      elissetxx
17-May-14 syl111anc syl3anc
17-May-14 syl11anc  syl2anc
11-Mar-14 syl2anc   syl2anr
 7-May-14 peano5uztiOLD ---     deleted
 7-May-14 peano5uziOLD ---      deleted
 7-May-14 dfnn2     dfnn3
 7-May-14 dfnn3     ---         deleted from JH's mathbox; see df-n
19-Apr-14 mod0      [--same--]  moved from JM's mathbox to main set.mm
19-Apr-14 invrcl    ---         deleted; use drnginvrcl and drnginvn0
16-Apr-14 grpkerinj grpokerinj  (in JM's mathbox)
16-Apr-14 grpeqdivid grpoeqdivid (in JM's mathbox)
16-Apr-14 grphm     grpohm      (in FL's mathbox)
16-Apr-14 grphlem5  grpohlem5   (in FL's mathbox)
16-Apr-14 grphmlem4 grpohmlem4  (in FL's mathbox)
16-Apr-14 grphlem3  grpohlem3   (in FL's mathbox)
16-Apr-14 grphmlem2 grpohmlem2  (in FL's mathbox)
16-Apr-14 grphmlem1 grpohmlem1  (in FL's mathbox)
16-Apr-14 grpdivzer grpodivzer  (in FL's mathbox)
16-Apr-14 grpdlcan  grpodlcan   (in FL's mathbox)
16-Apr-14 grpdrcan  grpodrcan   (in FL's mathbox)
16-Apr-14 grpdivfo  grpodivfo   (in FL's mathbox)
16-Apr-14 grpdivone grpodivone  (in FL's mathbox)
16-Apr-14 grpmnd    grpomnd     (in FL's mathbox)
16-Apr-14 grplactf1o grpolactf1o
16-Apr-14 grpnpncan grponpncan
16-Apr-14 grpnnncan2 grponnncan2
16-Apr-14 grppnpcan2 grpopnpcan2
16-Apr-14 grpnpcan  grponpcan
16-Apr-14 grppncan  grpopncan
16-Apr-14 grpdivid  grpodivid
16-Apr-14 grpmuldivass grpomuldivass
16-Apr-14 grpdivdiv grpodivdiv
16-Apr-14 grpdivcl  grpodivcl
16-Apr-14 grpdivf   grpodivf
16-Apr-14 grpdivval grpodivval
16-Apr-14 grpdivfval grpodivfval
16-Apr-14 grpinvdiv grpoinvdiv
16-Apr-14 grpdivinv grpodivinv
16-Apr-14 grpinvop  grpoinvop
16-Apr-14 grpinvf   grpoinvf
16-Apr-14 grp2inv   grpo2inv
16-Apr-14 grpasscan2 grpoasscan2
16-Apr-14 grpasscan1 grpoasscan1
16-Apr-14 grpsn     grposn
16-Apr-14 grprn     grporn
16-Apr-14 grprndm   grporndm
16-Apr-14 grpfo     grpofo
16-Apr-14 grp2grp   grpo2grp
 2-Apr-14 ---       ---         math token "Cgr" changed to "=="
 2-Apr-14 ---       ---         math token "(++)" changed to "(+)"
 2-Apr-14 ---       ---         math token "(+)" changed to "\/_"
31-Mar-14 grpinvcl  [--same--]  removed redundant hypothesis
31-Mar-14 ---       ---         math token "-g" changed to "invg"
23-Mar-14 hbequid2  ---         deleted; use hbequid
22-Mar-14 firnfi4   ---         deleted from JM's mathbox; see abrexfi
22-Mar-14 firnfi3   ---         deleted from JM's mathbox; see abrexfi
22-Mar-14 firnfi2   ---         deleted from JM's mathbox; see abrexfi
22-Mar-14 firnfi    ---         deleted from JM's mathbox; see abrexfi
22-Mar-14 cvol      clvol
22-Mar-14 fimaxre2  [--same--]  moved from JM's mathbox to main set.mm; revised
22-Mar-14 fimaxre   [--same--]  moved from JM's mathbox to main set.mm
15-Mar-14 reef11i   ---         deleted; see reef11
15-Mar-14 fsumsub   [--same--]  moved from SF's mathbox to main set.mm
15-Mar-14 fsumneg   [--same--]  moved from SF's mathbox to main set.mm
15-Mar-14 bccmpl    [--same--]  revised
15-Mar-14 ---       ---         fseq1p1m1lem1 - fseq1p1m1lem3 deleted
15-Mar-14 fz1eqblem ---         deleted
15-Mar-14 fzsuc     [--same--]  revised; see also fzsuc2
15-Mar-14 uz2m1nn   [--same--]  moved from PC's mathbox to main set.mm
15-Mar-14 elnn00nn  ---         deleted; see elnn0
15-Mar-14 npncan3   [--same--]  moved from SF's mathbox to main set.mm
15-Mar-14 npncan2   [--same--]  moved from SF's mathbox to main set.mm
12-Mar-14 copsexgb  coprsexg
 9-Mar-14 grpid     [--same--]  revised
 2-Mar-14 bnj1150   unssd       moved from JB's mathbox to main set.mm
28-Feb-14 f1oeq23   [--same--]  moved from FL's mathbox to main set.mm
28-Feb-14 fzp1elp1  [--same--]  moved from JM's mathbox to main set.mm
28-Feb-14 divides2  [--same--]  moved from JGH's mathbox to main set.mm
28-Feb-14 fzfi2     ---         deleted from JM's mathbox; see fzfi
28-Feb-14 fzfi      [--same--]  moved from JM's mathbox; revised
28-Feb-14 fz1fi     ---         deleted; see fzfi
25-Feb-14 biadan2   [--same--]  moved from JM's mathbox to main set.mm
23-Feb-14 op1steq   [--same--]  generalized antecedent from _V X. _V to V X. W
23-Feb-14 eqop      [--same--]  generalized antecedent from _V X. _V to V X. W
23-Feb-14 eqopi     [--same--]  generalized antecedent from _V X. _V to V X. W
20-Feb-14 eqreldv2  [--same--]  moved from RM's mathbox to main set.mm; revised
20-Feb-14 eqreldv   [--same--]  moved from RM's mathbox to main set.mm
17-Feb-14 qnnenOLD  ---         deleted; see qnnen
17-Feb-14 divvali   divval      revised
17-Feb-14 receui    receu       revised
17-Feb-14 recexi    ---         deleted; see recex
17-Feb-14 ax-cnex   ---         deleted; see cnex
17-Feb-14 axcnex    ---         deleted; see cnex
17-Feb-14 srex      ---         deleted
 4-Feb-14 abl23     ablo32
 4-Feb-14 abl4      ablo4
 4-Feb-14 abldiv23  ablodiv32
 4-Feb-14 nvadd23   nvadd32
 4-Feb-14 vca23     vca32
 4-Feb-14 ringa23   ringa32
 4-Feb-14 divdiv23i divdiv32i
 4-Feb-14 divdiv23  divdiv32
 4-Feb-14 sub23     sub32
 4-Feb-14 dif23     dif32
 4-Feb-14 or23      or32
30-Jan-14 heibor    [--same--]  revised
30-Jan-14 ---       ---         heiborlem11 - heiborlem42 deleted
30-Jan-14 heiborlem10 [--same--] revised
30-Jan-14 heiborlem9 [--same--] revised
30-Jan-14 heiborlem8 [--same--] revised
30-Jan-14 heiborlem7 [--same--] revised
30-Jan-14 heiborlem6 [--same--] revised
30-Jan-14 heiborlem5 [--same--] revised
30-Jan-14 heiborlem4 [--same--] revised
30-Jan-14 heiborlem3 [--same--] revised
30-Jan-14 heiborlem2 [--same--] revised
30-Jan-14 heiborlem1 [--same--] revised
30-Jan-14 ismtyhmeolem [--same--] revised
30-Jan-14 hmopbdopiHIL ---      deleted; see hmopbdoptHIL
30-Jan-14 htthi     htth        revised
30-Jan-14 ---       ---         htthlem1 - htthlem12 deleted
30-Jan-14 ubthi     ubth        revised
30-Jan-14 ubthii    ---         deleted; see ubth
30-Jan-14 ---       ---         ubthlem4 - ubthlem14 deleted
30-Jan-14 ubthlem3  [--same--]  revised
30-Jan-14 ubthlem2  [--same--]  revised
30-Jan-14 ubthlem1  [--same--]  revised
30-Jan-14 bcth      [--same--]  revised
30-Jan-14 ---       ---         bcthlem6 - bcthlem33 deleted
30-Jan-14 bcthlem5  [--same--]  revised
30-Jan-14 bcthlem4  [--same--]  revised
30-Jan-14 bcthlem3  [--same--]  revised
30-Jan-14 bcthlem2  [--same--]  revised
30-Jan-14 bcthlem1  [--same--]  revised
30-Jan-14 fimax     ---         deleted; see fimaxg
30-Jan-14 ac6sfilem3 ---        deleted
30-Jan-14 ac6sfilem2 ---        deleted
30-Jan-14 ac6sfilem1 ---        deleted
30-Jan-14 metdcn    [--same--]  revised
30-Jan-14 ---       ---         metnrmlem4 - metnrmlem6 deleted
30-Jan-14 metnrmlem3 [--same--] revised
30-Jan-14 metnrmlem2 [--same--] revised
30-Jan-14 metnrmlem1 [--same--] revised
30-Jan-14 altretoplem2 ---      deleted
30-Jan-14 altretoplem1 ---      deleted
30-Jan-14 bsi3      bsi
30-Jan-14 bsi2      ---         deleted; see bsi
30-Jan-14 bsi       [--same--]  revised
30-Jan-14 subtopmetlem ---      deleted
30-Jan-14 basmetres ---         deleted; see metssba2
30-Jan-14 nvcnpi4   ---         deleted; see metcnpi4
30-Jan-14 nvcnpi3   ---         deleted; see metcnpi3
30-Jan-14 nmcn3     ---         deleted; see nmcn
30-Jan-14 nmcn2     ---         deleted; see nmcn
30-Jan-14 nmcni     ---         deleted; see nmcn
30-Jan-14 nmcnilem  ---         deleted
30-Jan-14 sqcn2     ---         deleted; see sqcn
30-Jan-14 sqcn      [--same--]  revised
30-Jan-14 nvcni3    ---         deleted; see metcni
30-Jan-14 nvcni2    ---         deleted; see metcni
30-Jan-14 nvcni     ---         deleted; see metcni
30-Jan-14 nvcnpf    ---         deleted; see metcnpf
30-Jan-14 nvcnf     ---         deleted; see metcnf
30-Jan-14 nvelbl2   [--same--]  revised
30-Jan-14 nvelbl    [--same--]  revised
30-Jan-14 metcnp4OLD ---        deleted
30-Jan-14 metcnp4lem2 [--same--] revised
30-Jan-14 metelclsOLD ---       deleted
30-Jan-14 tgioolem  ---         deleted
30-Jan-14 bl2ioo    [--same--]  revised
30-Jan-14 metcnp3   [--same--]  revised
30-Jan-14 metcni2   [--same--]  revised
30-Jan-14 metcni    [--same--]  revised
30-Jan-14 metcnpi4  [--same--]  revised
30-Jan-14 metcnpi3  [--same--]  revised
30-Jan-14 metcnpi2  [--same--]  revised
30-Jan-14 metcnpi   [--same--]  revised
30-Jan-14 metcn     [--same--]  revised
30-Jan-14 metcnp2   [--same--]  revised
30-Jan-14 metcnp    [--same--]  revised
30-Jan-14 metcnplem [--same--]  revised
30-Jan-14 metequiv  [--same--]  revised
30-Jan-14 lpbl      [--same--]  revised
30-Jan-14 blnei     [--same--]  revised
30-Jan-14 metnei    [--same--]  revised
30-Jan-14 neibl     [--same--]  revised
30-Jan-14 blopn     [--same--]  revised
30-Jan-14 tgbl      ---         deleted; see opnval
30-Jan-14 opni3     [--same--]  revised
30-Jan-14 opni2     [--same--]  revised
30-Jan-14 isopn4    [--same--]  revised
30-Jan-14 uniopn2   [--same--]  revised
30-Jan-14 opnfval   ---         deleted
30-Jan-14 ssblex    [--same--]  revised
30-Jan-14 ssbl      [--same--]  revised
30-Jan-14 blssex    [--same--]  revised
30-Jan-14 blss      [--same--]  revised
30-Jan-14 blin      [--same--]  revised
30-Jan-14 rnblssm   ---         deleted; see blssm
30-Jan-14 blssm     [--same--]  revised
30-Jan-14 blex      ---         deleted; see unirnbl
30-Jan-14 blelrn    [--same--]  revised
30-Jan-14 blrn3     ---         deleted; see blrn
30-Jan-14 bln0      [--same--]  revised
30-Jan-14 blcntr    [--same--]  revised
30-Jan-14 blf       [--same--]  revised
30-Jan-14 bl2in     [--same--]  revised
30-Jan-14 blrn2     ---         deleted; see blrn
30-Jan-14 blrn      [--same--]  revised
30-Jan-14 elbl3     [--same--]  revised
30-Jan-14 elbl2     [--same--]  revised
30-Jan-14 elbl      [--same--]  revised
30-Jan-14 blval     [--same--]  revised
30-Jan-14 metdmdm   ---         deleted; see a1i
30-Jan-14 df-opn    [--same--]  revised
30-Jan-14 uniretop  [--same--]  revised
30-Jan-14 unirnioo  [--same--]  revised
30-Jan-14 qjust     ---         deleted
30-Jan-14 df-q      [--same--]  revised
30-Jan-14 unifo     iunfo       revised
30-Jan-14 oprelimab [--same--]  revised
30-Jan-14 oprvelrn  [--same--]  revised
16-Jan-14 resex     [--same--]  moved from JM's mathbox to main set.mm
16-Jan-14 ifeq2da   [--same--]  moved from JM's mathbox to main set.mm
16-Jan-14 ifeq1da   [--same--]  moved from JM's mathbox to main set.mm
16-Jan-14 fvif      [--same--]  moved from JM's mathbox to main set.mm
15-Jan-14 ifclda    [--same--]  moved from JM's mathbox to main set.mm
14-Jan-14 wl-adnestantdALT embantd moved from WL's mathbox to main set.mm
14-Jan-14 rabbirdv  rabbi2dva   revised hypothesis
13-Jan-14 19.23aexi exlimexi    (in AS's mathbox)
13-Jan-14 r19.23aib rexlimib    (in FL's mathbox)
13-Jan-14 r19.23advv rexlimdvv
13-Jan-14 r19.23aivv rexlimivv
13-Jan-14 r19.23adva rexlimdva
13-Jan-14 r19.23adv rexlimdv
13-Jan-14 r19.23ad2 rexlimd2
13-Jan-14 r19.23ad  rexlimd
13-Jan-14 r19.23aivw rexlimivw
13-Jan-14 r19.23aiva rexlimiva
13-Jan-14 r19.23aiv rexlimiv
13-Jan-14 r19.23ai  rexlimi
13-Jan-14 19.23advv exlimdvv
13-Jan-14 19.23aivv exlimivv
13-Jan-14 19.23aiv  exlimiv
13-Jan-14 19.23adv  exlimdv
13-Jan-14 19.23ad   exlimd
13-Jan-14 19.23ai   exlimi
13-Jan-14 19.21a3con13v alrim3con13v (In AS's mathbox)
13-Jan-14 r19.21advva ralrimdvva
13-Jan-14 r19.21advv ralrimdvv
13-Jan-14 r19.21aivva ralrimivva
13-Jan-14 r19.21aivv ralrimivv
13-Jan-14 r19.21adva ralrimdva
13-Jan-14 r19.21adv ralrimdv
13-Jan-14 r19.21ad  ralrimd
13-Jan-14 r19.21aiva ralrimiva
13-Jan-14 r19.21aiv ralrimiv
13-Jan-14 r19.21ai  ralrimi
13-Jan-14 19.21adv  alrimdv
13-Jan-14 19.21aivv alrimivv
13-Jan-14 19.21aiv  alrimiv
13-Jan-14 19.21ad   alrimd
13-Jan-14 19.21ai   alrimi
 9-Jan-14 dvrngprop drngprop
 9-Jan-14 dvrngid2  drngid2
 9-Jan-14 divrngunz drngunz
 9-Jan-14 divrngid  drngid
 9-Jan-14 divrngidlem drngidlem
 9-Jan-14 divrngmcl drngmcl
 9-Jan-14 divrngmgrp drngmgrp
 9-Jan-14 isdivrngrd isdrngrd
 9-Jan-14 isdivrngd isdrngd
 9-Jan-14 divrnggrp drnggrp
 9-Jan-14 divrngring drngrng
 9-Jan-14 isdivrng  isdrng
 9-Jan-14 cdivring  cdr
 9-Jan-14 ringrz    rngrz
 9-Jan-14 ringlz    rnglz
 9-Jan-14 isringd   isrngd
 9-Jan-14 isringid  isrngid
 9-Jan-14 ringridm  rngridm
 9-Jan-14 ringlidm  rnglidm
 9-Jan-14 ringidmlem rngidmlem
 9-Jan-14 ringgrp   rnggrp
 9-Jan-14 ringabl   rngabl
 9-Jan-14 ringidcl  rngidcl
 9-Jan-14 ringdir   rngdir
 9-Jan-14 ringdi    rngdi
 9-Jan-14 ringideu  rngideu
 9-Jan-14 ringass   rngass
 9-Jan-14 ringcl    rngcl
 9-Jan-14 ringi     rngi
 9-Jan-14 isring    isrng
 9-Jan-14 ringidval rngidval
23-Dec-13 cvimarndm cnvimarndm
23-Dec-13 cnvresima [--same--]  moved from JGH's mathbox to main set.mm
23-Dec-13 hstel     ishst
23-Dec-13 stel      isst        revised
23-Dec-13 df-hst    [--same--]  revised
23-Dec-13 df-st     [--same--]  revised
23-Dec-13 shsumval3i shsval3i
23-Dec-13 shsumval2i shsval2i
23-Dec-13 dfchj3    sshjval3    revised
23-Dec-13 dfchj2    sshjval2    revised
23-Dec-13 dfchsup2  ---         deleted; see hsupval2
23-Dec-13 shsumval  shsval      revised
23-Dec-13 df-chsup  [--same--]  revised
23-Dec-13 df-chj    [--same--]  revised
23-Dec-13 df-span   [--same--]  revised
23-Dec-13 df-shsum  df-shs      revised
23-Dec-13 dfch2     [--same--]  revised
23-Dec-13 ch2       isch3
23-Dec-13 chcmhi    ---         deleted; see isch3
23-Dec-13 chsscmi   ---         deleted; see isch3
23-Dec-13 closedsub isch2
23-Dec-13 df-ch     [--same--]  revised
23-Dec-13 sh2       issh3
23-Dec-13 sh        issh2
23-Dec-13 df-sh     [--same--]  revised
23-Dec-13 pjmval    pjfval      revised
23-Dec-13 df-pj     [--same--]  revised
23-Dec-13 df-oc     [--same--]  revised
23-Dec-13 dfhnorm2  [--same--]  revised
23-Dec-13 df-hvsub  [--same--]  revised
23-Dec-13 df-hnorm  [--same--]  revised
23-Dec-13 nvmfval   [--same--]  revised
23-Dec-13 iscringd  [--same--]  (in JM's mathbox) revised
23-Dec-13 flddivrng [--same--]  moved from JM's mathbox to main set.mm; revised
23-Dec-13 isringod  [--same--]  moved from JM's mathbox to main set.mm; revised
23-Dec-13 exidreslem [--same--] (in JM's mathbox) revised
23-Dec-13 extopgrp  [--same--]  (in FL's mathbox) revised
23-Dec-13 invtrgrp  ginvsn      moved from FL's mathbox to main set.mm; revised
23-Dec-13 idtrgrp   gidsn       moved from FL's mathbox to main set.mm; revised
23-Dec-13 zrfld     [--same--]  (in FL's mathbox) revised
23-Dec-13 fldi      [--same--]  (in FL's mathbox) revised
23-Dec-13 rngunval2 [--same--]  (in FL's mathbox) revised
23-Dec-13 ununr     [--same--]  (in FL's mathbox) revised
23-Dec-13 mndid     [--same--]  (in FL's mathbox) (in FL's mathbox) revised
23-Dec-13 zrdivrng  [--same--]  revised
23-Dec-13 rngmgmbs4 [--same--]  revised
23-Dec-13 ismnd2    [--same--]  revised
23-Dec-13 ismnd1    [--same--]  revised
23-Dec-13 ismnd     [--same--]  revised
23-Dec-13 isexid2   [--same--]  revised
23-Dec-13 isexid    [--same--]  revised
23-Dec-13 df-exid   [--same--]  revised
23-Dec-13 0vfval    [--same--]  revised
23-Dec-13 ringoideu [--same--]  revised
23-Dec-13 ringid    [--same--]  revised
23-Dec-13 ringoi    [--same--]  revised
23-Dec-13 isringo   [--same--]  revised
23-Dec-13 df-ringo  [--same--]  revised
23-Dec-13 gxnval    [--same--]  revised
23-Dec-13 gxpval    [--same--]  revised
23-Dec-13 gxval     [--same--]  revised
23-Dec-13 gxoprval  gxfval      revised
23-Dec-13 grpdivfval [--same--] revised
23-Dec-13 grpoinvval [--same--] revised
23-Dec-13 grpoinvfval [--same--] revised
23-Dec-13 grpoidval [--same--]  revised
23-Dec-13 grpidvallem ---       deleted
23-Dec-13 fungid    fngid       revised
23-Dec-13 gid0      ---         deleted
23-Dec-13 grprlidrid ---        deleted
23-Dec-13 df-gx     [--same--]  revised
23-Dec-13 df-gdiv   [--same--]  revised
23-Dec-13 df-ginv   [--same--]  revised
23-Dec-13 df-gid    [--same--]  revised
22-Dec-13 df-igen   [--same--]  (in JM's mathbox) revised
22-Dec-13 pcoval    [--same--]  (in JM's mathbox) revised
22-Dec-13 pcofval   [--same--]  (in JM's mathbox) revised
22-Dec-13 df-pi1    [--same--]  (in JM's mathbox) revised
22-Dec-13 df-pi1b   [--same--]  (in JM's mathbox) revised
22-Dec-13 df-pco    [--same--]  (in JM's mathbox) revised
22-Dec-13 txsubsp   [--same--]  (in JM's mathbox) revised
22-Dec-13 subspabs  ---         (in JM's mathbox) deleted; use subspco
22-Dec-13 subspopn  [--same--]  (in JM's mathbox) revised
22-Dec-13 fzm1      [--same--]  moved from JM's mathbox to main set.mm
22-Dec-13 elfzp12   [--same--]  moved from JM's mathbox to main set.mm
22-Dec-13 zornn0    [--same--]  moved from JM's mathbox to main set.mm
22-Dec-13 inficl    [--same--]  moved from JM's mathbox to main set.mm; revised
22-Dec-13 resoprab2 [--same--]  moved from JM's mathbox to main set.mm
22-Dec-13 oprabval2a ovmpt2x    moved from JM's mathbox to main set.mm; revised
22-Dec-13 eqfnoprv2 [--same--]  moved from JM's mathbox to main set.mm
22-Dec-13 filnetlem5 [--same--] (in JGH's mathbox) revised
22-Dec-13 filnetlem4 [--same--] (in JGH's mathbox) revised
22-Dec-13 filnetlem3 [--same--] (in JGH's mathbox) revised
22-Dec-13 filnetlem2 [--same--] (in JGH's mathbox) revised
22-Dec-13 filnetlem1 [--same--] (in JGH's mathbox) revised
22-Dec-13 tailmap   tailf       (in JGH's mathbox)
22-Dec-13 istail    tailval     (in JGH's mathbox) revised
22-Dec-13 tailf     tailfval    (in JGH's mathbox) revised
22-Dec-13 fmfnfm    [--same--]  (in JGH's mathbox) revised
22-Dec-13 fmfnfmlem4 [--same--] (in JGH's mathbox) revised
22-Dec-13 fmfnfmlem3 [--same--] (in JGH's mathbox) revised
22-Dec-13 fmfnfmlem2 [--same--] (in JGH's mathbox) revised
22-Dec-13 fmfnfmlem1 [--same--] (in JGH's mathbox) revised
22-Dec-13 ufcondr   ufildr      (in JGH's mathbox) revised
22-Dec-13 uffinfix  [--same--]  (in JGH's mathbox) revised
22-Dec-13 fixufil   [--same--]  (in JGH's mathbox) changed variable names
22-Dec-13 uffixfr   [--same--]  (in JGH's mathbox) revised
22-Dec-13 ufileulem ---         (in JGH's mathbox) deleted
22-Dec-13 filssufillem ---      (in JGH's mathbox) deleted
22-Dec-13 supfil    [--same--]  (in JGH's mathbox) revised
22-Dec-13 fbasfip   [--same--]  moved from JGH's mathbox to main set.mm;revised
22-Dec-13 subsubtop ---         (in JGH's mathbox) to be deleted; use subspco
22-Dec-13 ssntr     [--same--]  moved from JGH's mathbox to main set.mm;revised
22-Dec-13 elfiun    [--same--]  moved from JGH's mathbox to main set.mm;revised
22-Dec-13 isrocatset [--same--] (in FL's mathbox) revised
22-Dec-13 df-rocatset [--same--] (in FL's mathbox) revised
22-Dec-13 singcon   ---         (in FL's mathbox) deleted
22-Dec-13 topsinind topsn       moved from FL's mathbox to main set.mm; revised
22-Dec-13 empcon    ---         (in FL's mathbox) deleted
22-Dec-13 intopcon  [--same--]  (in FL's mathbox) revised
22-Dec-13 clindistop [--same--] (in FL's mathbox) revised
22-Dec-13 stfincomp [--same--]  (in FL's mathbox) revised
22-Dec-13 cmptop    [--same--]  (in FL's mathbox) revised
22-Dec-13 subsincomp ---        (in FL's mathbox) deleted
22-Dec-13 subempcomp ---        (in FL's mathbox) deleted
22-Dec-13 limfillem2 ---        (in FL's mathbox) deleted
22-Dec-13 limfillem1 ---        (in FL's mathbox) deleted
22-Dec-13 trnei2    trnei       (in FL's mathbox) revised
22-Dec-13 trfil     [--same--]  (in FL's mathbox) revised
22-Dec-13 rcfpfil   [--same--]  (in FL's mathbox) revised
22-Dec-13 rcfpfillem6 ---       (in FL's mathbox) deleted
22-Dec-13 rcfpfillem5 ---       (in FL's mathbox) deleted
22-Dec-13 rcfpfillem4 ---       (in FL's mathbox) deleted
22-Dec-13 rcfpfillem3 ---       (in FL's mathbox) deleted
22-Dec-13 rcfpfillem2 ---       (in FL's mathbox) deleted
22-Dec-13 rcfpfillem1 ---       (in FL's mathbox) deleted
22-Dec-13 efilcp2   efilcp      (in FL's mathbox) revised
22-Dec-13 efilcp    [--same--]  (in FL's mathbox) revised
22-Dec-13 fgsb      ---         (in FL's mathbox) deleted; use fsubbas,fgfil
22-Dec-13 ptincpw   ---         (in FL's mathbox) deleted; use topgele
22-Dec-13 topge     ---         (in FL's mathbox) deleted; use pwuni
22-Dec-13 topgele   [--same--]  moved from FL's mathbox to main set.mm; revised
22-Dec-13 subtopsin2 subspsn2   moved from FL's mathbox to main set.mm; revised
22-Dec-13 stoig2b   ---         (in FL's mathbox) deleted; use subspuni
22-Dec-13 sbtpsines subspsn     moved from FL's mathbox to main set.mm; revised
22-Dec-13 subspemp2 subsp0      moved from FL's mathbox to main set.mm; revised
22-Dec-13 subspemp  ---         (in FL's mathbox) deleted; use subsp0
22-Dec-13 intopcoaconlem3 [--same--] (in FL's mathbox) revised
22-Dec-13 bintop3   ---         (in FL's mathbox) deleted; use fibas
22-Dec-13 bintop    ---         (in FL's mathbox) deleted; use fibas
22-Dec-13 topindis  ---         (in FL's mathbox) deleted; use topgele
22-Dec-13 rngop     [--same--]  moved from FL's mathbox to main set.mm
22-Dec-13 relcnvfld [--same--]  moved from FL's mathbox to main set.mm
22-Dec-13 ficli     ---         (in FL's mathbox) deleted; use fiin
22-Dec-13 fiiu      ---         (in FL's mathbox) deleted; use fipwuni
22-Dec-13 infi1     ---         (in FL's mathbox) deleted; use fiin
22-Dec-13 mpteq2dvg mpteq2dvgOLD (in FL's mathbox)
22-Dec-13 uzf       [--same--]  moved from SF's mathbox to main set.mm; revised
22-Dec-13 fzf       [--same--]  moved from SF's mathbox to main set.mm; revised
22-Dec-13 elfzm1b   [--same--]  moved from PC's mathbox to main set.mm
22-Dec-13 hashgaddOLD ---       (in PC's mathbox) deleted
22-Dec-13 ---       ---         nmcopexlem1 - nmcopexlem6 deleted
22-Dec-13 eigval1   eigvalval
22-Dec-13 kbvalval  kbval
22-Dec-13 kbval     kbfval      revised
22-Dec-13 bravalval braval
22-Dec-13 braval    brafval     revised
22-Dec-13 cnfnc     [--same--]  revised
22-Dec-13 elnlfn    [--same--]  revised
22-Dec-13 cnopc     [--same--]  revised
22-Dec-13 eigvalval eigvalfval  revised
22-Dec-13 eigvecval [--same--]  revised
22-Dec-13 elcnfn    [--same--]  revised
22-Dec-13 nlfnval   [--same--]  revised
22-Dec-13 dfbdop2   df-bdop
22-Dec-13 elcnop    [--same--]  revised
22-Dec-13 df-spec   [--same--]  revised
22-Dec-13 df-eigval [--same--]  revised
22-Dec-13 df-eigvec [--same--]  revised
22-Dec-13 df-kb     [--same--]  revised
22-Dec-13 df-bra    [--same--]  revised
22-Dec-13 df-lnfn   [--same--]  revised
22-Dec-13 df-cnfn   [--same--]  revised
22-Dec-13 df-nlfn   [--same--]  revised
22-Dec-13 df-nmfn   [--same--]  revised
22-Dec-13 df-hmop   [--same--]  revised
22-Dec-13 df-bdop   [--same--]  revised
22-Dec-13 df-lnop   [--same--]  revised
22-Dec-13 df-cnop   [--same--]  revised
22-Dec-13 df-nmop   [--same--]  revised
22-Dec-13 hfsval    [--same--]  revised
22-Dec-13 hfmmval   [--same--]  revised
22-Dec-13 hfsmval   [--same--]  revised
22-Dec-13 hodmval   [--same--]  revised
22-Dec-13 hommval   [--same--]  revised
22-Dec-13 hosmval   [--same--]  revised
22-Dec-13 df-hfmul  [--same--]  revised
22-Dec-13 df-hsum   [--same--]  revised
22-Dec-13 df-hodif  [--same--]  revised
22-Dec-13 df-homul  [--same--]  revised
22-Dec-13 df-hosum  [--same--]  revised
22-Dec-13 tosdir    [--same--]  revised
22-Dec-13 dirge     [--same--]  changed variable names
22-Dec-13 dirtr     [--same--]  changed variable names
22-Dec-13 dirref    [--same--]  changed variable names
22-Dec-13 dirdm     [--same--]  changed variable names
22-Dec-13 reldir    [--same--]  changed variable names
22-Dec-13 isdir     [--same--]  revised
22-Dec-13 df-tail   [--same--]  revised
22-Dec-13 df-dir    [--same--]  revised
22-Dec-13 contop    [--same--]  revised
22-Dec-13 hausfillim2 hausflim2
22-Dec-13 sflimf    flfval
22-Dec-13 flimff    flffval     revised
22-Dec-13 elfilmap3 elfm3
22-Dec-13 elfilmap2 elfm2
22-Dec-13 elfilmap  elfm
22-Dec-13 fmf       fmfil
22-Dec-13 filmapss  fmss        changed variable names
22-Dec-13 isfilmap  fmval       changed variable names
22-Dec-13 filmapf   fmfval      revised
22-Dec-13 df-flimf  df-flf      revised
22-Dec-13 df-filmap df-fm       revised
22-Dec-13 cflimf    cflf
22-Dec-13 cfilmap   cfm
22-Dec-13 hausfillim hausflim
22-Dec-13 isfillim  elflim
22-Dec-13 limfil    flimval
22-Dec-13 sfvlim    flimfval    revised
22-Dec-13 df-flim1  df-flim     revised
22-Dec-13 cflim1    cflim       revised
22-Dec-13 fbunfip   [--same--]  revised
22-Dec-13 fsubbas   [--same--]  revised
22-Dec-13 infi      fiin        revised
22-Dec-13 0nelfb    [--same--]  revised
22-Dec-13 oefil2    snfil
22-Dec-13 filintf   infil       revised
22-Dec-13 emnfil    [--same--]  revised
22-Dec-13 isfil     isfil2      revised
22-Dec-13 df-fil    [--same--]  revised
22-Dec-13 df-fg     [--same--]  revised
22-Dec-13 subsptop  [--same--]  revised
22-Dec-13 stoigOLD  ---         deleted
22-Dec-13 stoiglem  ---         deleted
22-Dec-13 stoiglemOLD ---       deleted
22-Dec-13 elsubsp   elsubspr    revised
22-Dec-13 issubspt  elsubsp     revised
22-Dec-13 issubsplem1 ---       deleted
22-Dec-13 issubsp   ---         deleted
22-Dec-13 subsp     subspval    revised
22-Dec-13 subspi    [--same--]  revised
22-Dec-13 df-subsp  [--same--]  revised
22-Dec-13 df-homeo  [--same--]  revised
22-Dec-13 fibas     [--same--]  revised
22-Dec-13 fiiu2     fipwuni     revised
22-Dec-13 sppfi     elfi        revised
22-Dec-13 spfi      ---         deleted
22-Dec-13 abfi2     ssfii
22-Dec-13 abfi      ---         deleted
22-Dec-13 inficlALT inficl
22-Dec-13 fine2     fi0         revised
22-Dec-13 fine      ---         deleted
22-Dec-13 fiv       fival       revised
22-Dec-13 df-fi     [--same--]  revised
22-Dec-13 istoset   istoset3    revised
22-Dec-13 df-toset  [--same--]  revised
22-Dec-13 symgval   [--same--]  revised
22-Dec-13 symgoprab ---         deleted
22-Dec-13 df-symgrp df-symg     revised
22-Dec-13 csymgrp   csymg
22-Dec-13 pilem3    [--same--]  revised
22-Dec-13 spwpr4OLD ---         deleted
22-Dec-13 spwex     [--same--]  changed variable names
22-Dec-13 spwcl     [--same--]  changed variable names
22-Dec-13 spwnex    ---         deleted
22-Dec-13 spwval3   ---         deleted
22-Dec-13 spwval    [--same--]  revised
22-Dec-13 spwval2   [--same--]  revised
22-Dec-13 df-spw    [--same--]  revised
22-Dec-13 ipblnfi   [--same--]  revised
22-Dec-13 nmofval   [--same--]  revised
22-Dec-13 lnolin    [--same--]  revised
22-Dec-13 islno     [--same--]  revised
22-Dec-13 lnoval    [--same--]  revised
22-Dec-13 df-hmo    [--same--]  revised
22-Dec-13 df-aj     [--same--]  revised
22-Dec-13 df-0o     [--same--]  revised
22-Dec-13 df-blo    [--same--]  revised
22-Dec-13 df-nmo    [--same--]  revised
22-Dec-13 df-lno    [--same--]  revised
22-Dec-13 df-ssp    [--same--]  revised
22-Dec-13 ipfval    [--same--]  revised
22-Dec-13 df-ip     [--same--]  revised
22-Dec-13 df-ims    [--same--]  revised
22-Dec-13 df-ba     [--same--]  revised
22-Dec-13 opnfval   [--same--]  revised
22-Dec-13 ismsg     ---         deleted
22-Dec-13 mscl      ---         deleted
22-Dec-13 msf       ---         deleted
22-Dec-13 msflem    ---         deleted
22-Dec-13 msrel     ---         deleted
22-Dec-13 df-opn    [--same--]  revised
22-Dec-13 df-ball   [--same--]  revised
22-Dec-13 df-met    [--same--]  revised
22-Dec-13 cnpfval   [--same--]  revised
22-Dec-13 df-cnp    [--same--]  revised
22-Dec-13 df-cn     [--same--]  revised
22-Dec-13 lpfval    [--same--]  revised
22-Dec-13 df-lp     [--same--]  revised
22-Dec-13 neival    [--same--]  revised
22-Dec-13 neifval   [--same--]  revised
22-Dec-13 df-nei    [--same--]  revised
22-Dec-13 ntrval    [--same--]  revised
22-Dec-13 clsfval   [--same--]  revised
22-Dec-13 ntrfval   [--same--]  revised
22-Dec-13 cldval    [--same--]  revised
22-Dec-13 df-cls    [--same--]  revised
22-Dec-13 df-ntr    [--same--]  revised
22-Dec-13 df-cld    [--same--]  revised
22-Dec-13 df-tx     [--same--]  revised
22-Dec-13 df-topgen [--same--]  revised
22-Dec-13 df-top    [--same--]  revised
22-Dec-13 unbenlem  [--same--]  revised
22-Dec-13 df-gcd    [--same--]  revised
22-Dec-13 reeff1o2  reeff1o
22-Dec-13 reeff1o   [--same--]  revised
22-Dec-13 reeff1    [--same--]  revised
22-Dec-13 df-pi     [--same--]  revised
22-Dec-13 df-cos    [--same--]  revised
22-Dec-13 df-sin    [--same--]  revised
22-Dec-13 df-ef     [--same--]  revised
22-Dec-13 cncfval   [--same--]  revised
22-Dec-13 df-cncf   [--same--]  revised
22-Dec-13 climshft2i climshft2  revised
22-Dec-13 climresi  ---         deleted
22-Dec-13 climshfti ---         deleted
22-Dec-13 clim      [--same--]  revised
22-Dec-13 df-clim   [--same--]  revised
22-Dec-13 hashgadd  [--same--]  revised
22-Dec-13 hashenOLDOLD ---      deleted
22-Dec-13 hashenOLD ---         deleted
22-Dec-13 hashfz1OLD ---        deleted
22-Dec-13 hashginvOLD ---       deleted
22-Dec-13 hashgvalOLD ---       deleted
22-Dec-13 hashginv  [--same--]  revised
22-Dec-13 hashgval  [--same--]  revised
22-Dec-13 fz1fiOLD  ---         deleted
22-Dec-13 hashgf1o  [--same--]  revised
22-Dec-13 df-hash   [--same--]  revised
22-Dec-13 bccl2     [--same--]  revised
22-Dec-13 bcpasci   ---         deleted
22-Dec-13 bcpasc2   ---         deleted
22-Dec-13 bcpasc2i  ---         deleted
22-Dec-13 bcnp11    bcn1        revised
22-Dec-13 bccmpl    [--same--]  revised
22-Dec-13 bcval3    [--same--]  revised
22-Dec-13 bcval2    [--same--]  revised
22-Dec-13 bcval     [--same--]  revised
22-Dec-13 df-bc     [--same--]  revised
22-Dec-13 df-abs    [--same--]  revised
22-Dec-13 cjval     remim
22-Dec-13 imval     [--same--]  revised
22-Dec-13 reval     [--same--]  revised
22-Dec-13 df-im     [--same--]  revised
22-Dec-13 df-re     [--same--]  revised
22-Dec-13 df-cj     [--same--]  revised
22-Dec-13 df-limsup [--same--]  revised
22-Dec-13 shftf     [--same--]  revised
22-Dec-13 shftval   [--same--]  revised
22-Dec-13 shftresval ---        deleted
22-Dec-13 shftres   ---         deleted
22-Dec-13 shftfn    [--same--]  revised
22-Dec-13 shftfval  [--same--]  revised
22-Dec-13 df-shft   [--same--]  revised
22-Dec-13 cardfz    [--same--]  revised
22-Dec-13 fzennn    [--same--]  revised
22-Dec-13 uzrdgsuci [--same--]  revised
22-Dec-13 uzrdg0i   [--same--]  revised
22-Dec-13 uzrdgfni  [--same--]  revised
22-Dec-13 uzrdglem  [--same--]  revised
22-Dec-13 om2uzrdg  [--same--]  revised
22-Dec-13 om2uzisoi [--same--]  revised
22-Dec-13 om2uzf1oi [--same--]  revised
22-Dec-13 om2uzrani [--same--]  revised
22-Dec-13 om2uzlt2i [--same--]  revised
22-Dec-13 om2uzlti  [--same--]  revised
22-Dec-13 om2uzuzi  [--same--]  revised
22-Dec-13 om2uzsuci [--same--]  revised
22-Dec-13 om2uz0i   [--same--]  revised
22-Dec-13 df-fz     [--same--]  revised
22-Dec-13 df-uz     [--same--]  revised
22-Dec-13 df-icc    [--same--]  revised
22-Dec-13 df-ico    [--same--]  revised
22-Dec-13 df-ioc    [--same--]  revised
22-Dec-13 df-ioo    [--same--]  revised
22-Dec-13 df-mod    [--same--]  revised
22-Dec-13 df-fl     [--same--]  revised
22-Dec-13 df-div    [--same--]  revised
22-Dec-13 df-sub    [--same--]  revised
22-Dec-13 cflim     cflm
22-Dec-13 cffnon    cff         revised
22-Dec-13 df-cda    [--same--]  revised
22-Dec-13 alephlim  [--same--]  changed variable names
22-Dec-13 df-cf     [--same--]  revised
22-Dec-13 df-aleph  [--same--]  revised
22-Dec-13 df-card   [--same--]  revised
22-Dec-13 df-rank   [--same--]  revised
22-Dec-13 df-r1     [--same--]  revised
22-Dec-13 abfii5    ---         deleted; use dffi2
22-Dec-13 abfii4    ---         deleted; use dffi2
22-Dec-13 abfii3    ---         deleted; use dffi2
22-Dec-13 abfii2    ---         deleted; use dffi2
22-Dec-13 abfii1    ---         deleted; use dffi2
22-Dec-13 df-pm     [--same--]  revised
22-Dec-13 df-map    [--same--]  revised
22-Dec-13 oev2      [--same--]  revised
22-Dec-13 df-oexp   [--same--]  revised
22-Dec-13 df-omul   [--same--]  revised
22-Dec-13 df-oadd   [--same--]  revised
22-Dec-13 frsucmpt2 ---         deleted
22-Dec-13 frsucopab ---         deleted
22-Dec-13 rdglimi   ---         deleted
22-Dec-13 rdgsuci   ---         deleted
22-Dec-13 rdgval    [--same--]  revised
22-Dec-13 rdglem2   ---         deleted
22-Dec-13 dfrdg2    ---         deleted
22-Dec-13 df-rdg    [--same--]  revised
22-Dec-13 tz7.44-3  [--same--]  revised
22-Dec-13 tz7.44-2  [--same--]  revised
22-Dec-13 tz7.44-1  [--same--]  revised
22-Dec-13 foprab2a  [--same--]  revised
22-Dec-13 df-2nd    [--same--]  revised
22-Dec-13 df-1st    [--same--]  revised
22-Dec-13 resmpt2   resmpt
22-Dec-13 mpteq2dvaf mpteq2da
22-Dec-13 mpteqi    mpteq12i
22-Dec-13 oprabval2gfOLD ---    deleted
22-Dec-13 oprabval2gf ---       deleted
22-Dec-13 oprabval2gfNEW oprabval2gf revised
22-Dec-13 oprabvali ---         deleted
22-Dec-13 oprabvaligg [--same--] revised
22-Dec-13 oprabvalig [--same--] revised
25-Nov-13 eq2ab     ---         obsolete; use abbi instead
14-Nov-13 sb19.21   sbrim
11-Nov-13 alrot3    [--same--]  moved from ATS's mathbox to main set.mm
11-Nov-13 pm11.53   [--same--]  moved from ATS's mathbox to main set.mm
 4-Nov-13 ispos     [--same--]  removed nonempty base set requirement
 4-Nov-13 df-poset  [--same--]  removed nonempty base set requirement
17-Oct-13 mpt2eqdv  mpt2eqdva
17-Oct-13 mpt2eqdvg mpt2eqdvaf  moved from FL's mathbox to main set.mm
 6-Oct-13 ipid      ipidsq
 5-Oct-13 plusgval  ---         obsolete; use grpplusg
 5-Oct-13 divrngmgrp [--same--] eliminated hard-coded structure indices
 5-Oct-13 divrngid  [--same--]  eliminated hard-coded structure indices
 5-Oct-13 divrngidlem [--same--] eliminated hard-coded structure indices
 5-Oct-13 invrfval  [--same--]  eliminated hard-coded structure indices
 5-Oct-13 divrngid  [--same--]  eliminated hard-coded structure indices
 5-Oct-13 divrngidlem [--same--] eliminated hard-coded structure indices
 5-Oct-13 divrngmgrp [--same--] eliminated hard-coded structure indices
 5-Oct-13 isdivrng  [--same--]  eliminated hard-coded structure indices
 5-Oct-13 df-drng   [--same--]  eliminated hard-coded structure indices
 5-Oct-13 ndxargi   ndxarg
 5-Oct-13 strcval   strfvn
 3-Oct-13 ringmulr  rngmulr     eliminated unnecessary hypotheses
 3-Oct-13 ringplusg rngplusg    eliminated unnecessary hypotheses
 3-Oct-13 ringbase  rngbase     eliminated unnecessary hypotheses
 3-Oct-13 grpplusgg ---         obsolete; use grpplusg
 3-Oct-13 grpbaseg  ---         obsolete; use grpbase
 3-Oct-13 grpplusg  [--same--]  eliminated unnecessary antecedent
 3-Oct-13 grpbase   [--same--]  eliminated unnecessary antecedent
 3-Oct-13 str3v3    ---         obsolete; use strfv
 3-Oct-13 str3v2    ---         obsolete; use strfv
 3-Oct-13 str3v1    ---         obsolete; use strfv
 3-Oct-13 str2v2    ---         obsolete; use strfv
 3-Oct-13 str2v1    ---         obsolete; use strfv
 3-Oct-13 str3v3x   ---         obsolete; use strfv
 3-Oct-13 str3v2x   ---         obsolete; use strfv
 3-Oct-13 str3v1x   ---         obsolete; use strfv
 3-Oct-13 str2v2x   ---         obsolete; use strfv
 3-Oct-13 str2v1x   ---         obsolete; use strfv
 3-Oct-12 tpshyp    ---         obsolete; use tpslem
 3-Oct-13 ringhyp   ---         obsolete; use rnglem
 3-Oct-13 grphyp    ---         obsolete; use grplem
 3-Oct-13 poshyp    ---         obsolete; use poslem
 3-Oct-13 poslem    posi
 2-Oct-13 isfinite  ---         obsolete; use isfinite3
 1-Oct-13 ressnop0  [--same--]  eliminated unnecessary hypotheses
 1-Oct-13 fvtp3     [--same--]  eliminated unnecessary hypotheses
 1-Oct-13 fvtp2     [--same--]  eliminated unnecessary hypotheses
 1-Oct-13 fvtp1     [--same--]  eliminated unnecessary hypotheses
 1-Oct-13 fvpr2     [--same--]  eliminated unnecessary hypotheses
 1-Oct-13 fvpr1     [--same--]  eliminated unnecessary hypotheses
 1-Oct-13 fntp      [--same--]  eliminated unnecessary hypotheses
 1-Oct-13 fnprg     [--same--]  eliminated unnecessary antecedents
 1-Oct-13 fnsn      [--same--]  eliminated unnecessary hypothesis
 1-Oct-13 funtp     [--same--]  eliminated unnecessary hypotheses
 1-Oct-13 funpr     [--same--]  eliminated unnecessary hypotheses
 1-Oct-13 funprg    [--same--]  eliminated unnecessary antecedents
 1-Oct-13 funsng    [--same--]  eliminated unnecessary antecedent
 1-Oct-13 funsn     [--same--]  eliminated unnecessary hypothesis
30-Sep-13 ltneii    [--same--]  swapped conclusion vars for ltnei compatibility
25-Sep-13 2nalexn   [--same--]  moved from ATS's mathbox to main set.mm
25-Sep-13 2exnexn   [--same--]  moved from ATS's mathbox to main set.mm
24-Sep-13 supeq2    [--same--]  moved from JM's mathbox to main set.mm
24-Sep-13 ixpfi     [--same--]  moved from JM's mathbox to main set.mm
24-Sep-13 mapfi     [--same--]  moved from JM's mathbox to main set.mm
24-Sep-13 enf1f1o   fienf1f1o   moved from JM's mathbox to main set.mm
24-Sep-13 nnaun2    ficardun2
24-Sep-13 nnaun     ficardun
24-Sep-13 relsn     relsnop
24-Sep-13 difdisj   disjdif
20-Sep-13 imdistanda [--same--] moved from JM's mathbox to main set.mm
20-Sep-13 rnoprab2  [--same--]  moved from SF's mathbox to main set.mm
20-Sep-13 eqfunfv   [--same--]  moved from SF's mathbox to main set.mm
20-Sep-13 pm5.21ndd [--same--]  moved from PC's mathbox to main set.mm
20-Sep-13 div2neg   [--same--]  moved from PC's mathbox to main set.mm
16-Sep-13 oprabexd  [--same--]  moved from JM's mathbox to main set.mm
16-Sep-13 fsum00    [--same--]  moved from JM's mathbox to main set.mm
16-Sep-13 fzdisj    [--same--]  moved from JM's mathbox to main set.mm
16-Sep-13 fzsplit   [--same--]  moved from JM's mathbox to main set.mm
16-Sep-13 fzn0      [--same--]  moved from JM's mathbox to main set.mm
16-Sep-13 fz10      [--same--]  moved from JM's mathbox to main set.mm
16-Sep-13 addsubeq4 [--same--]  moved from JM's mathbox to main set.mm
16-Sep-13 add20     [--same--]  moved from JM's mathbox to main set.mm
16-Sep-13 f1elima   [--same--]  moved from JM's mathbox to main set.mm
15-Sep-13 hashpw    [--same--]  moved from PC's mathbox to main set.mm
15-Sep-13 hashpwlem [--same--]  moved from PC's mathbox to main set.mm
15-Sep-13 hashxp    [--same--]  moved from PC's mathbox to main set.mm
15-Sep-13 hashxplem [--same--]  moved from PC's mathbox to main set.mm
15-Sep-13 hashunsng [--same--]  moved from PC's mathbox to main set.mm
15-Sep-13 hashun    [--same--]  moved from PC's mathbox to main set.mm
15-Sep-13 hashgadd  [--same--]  moved from PC's mathbox to main set.mm
15-Sep-13 2ne3      ---         obsolete (use 2lt3 + ltneii instead)
15-Sep-13 1ne9      ---         obsolete (use 1lt9 + ltneii instead)
15-Sep-13 1ne3      ---         obsolete (use 1lt3 + ltneii instead)
10-Sep-13 exp5c     [--same--]  moved from JGH's mathbox to main set.mm
10-Sep-13 snelpwr   snelpwi     moved from AS's mathbox to main set.mm
 8-Sep-13 df-exp    [--same--]  revised definition
 8-Sep-13 df-fac    [--same--]  revised definition
 8-Sep-13 df-seq0   [--same--]  revised definition
 8-Sep-13 df-seq1   [--same--]  revised definition
 8-Sep-13 df-seqz   [--same--]  revised definition
 8-Sep-13 df-sqr    [--same--]  revised definition
 8-Sep-13 expval    [--same--]  revised theorem statement
 8-Sep-13 facnn     [--same--]  revised theorem statement
 8-Sep-13 fzp1ss    [--same--]  revised theorem statement
 8-Sep-13 fzss1     [--same--]  revised theorem statement
 8-Sep-13 fzss2     [--same--]  revised theorem statement
 8-Sep-13 fzssp1    [--same--]  revised theorem statement
 8-Sep-13 om2uzf1oi [--same--]  revised theorem statement
 8-Sep-13 om2uzisoi [--same--]  revised theorem statement
 8-Sep-13 om2uzrani [--same--]  revised theorem statement
 8-Sep-13 om2uzuzi  [--same--]  revised theorem statement
 8-Sep-13 seq0fval  [--same--]  revised theorem statement
 8-Sep-13 seqzfval  [--same--]  revised theorem statement
 8-Sep-13 sqrlem1   [--same--]  revised theorem statement
 8-Sep-13 sqrlem2   [--same--]  revised theorem statement
 8-Sep-13 sqrlem3   [--same--]  revised theorem statement
 8-Sep-13 sqrlem4   [--same--]  revised theorem statement
 8-Sep-13 sqrlem5   [--same--]  revised theorem statement
 8-Sep-13 sqrlem6   [--same--]  revised theorem statement
 8-Sep-13 sqrlem7   [--same--]  revised theorem statement
 8-Sep-13 sqrval    [--same--]  revised theorem statement
 8-Sep-13 uzrdgsuci [--same--]  revised theorem statement
 8-Sep-13 sqrcl     resqrcl     (new sqrcl is complex version)
 8-Sep-13 dfseq0    ---         obsolete
 8-Sep-13 expnnval  ---         obsolete
 8-Sep-13 seq0valt  ---         obsolete
 8-Sep-13 seq11lem  ---         obsolete
 8-Sep-13 seq1fnlem ---         obsolete
 8-Sep-13 seq1lem1  ---         obsolete
 8-Sep-13 seq1rval  ---         obsolete
 8-Sep-13 seq1seq0  ---         obsolete
 8-Sep-13 seq1seq01 ---         obsolete
 8-Sep-13 seq1seq02 ---         obsolete
 8-Sep-13 seq1suclem ---        obsolete
 8-Sep-13 seq1val   ---         obsolete
 8-Sep-13 seq1val2  ---         obsolete
 8-Sep-13 seqzfval2 ---         obsolete
 8-Sep-13 seqzval   ---         obsolete
 8-Sep-13 seqzval2  ---         obsolete
 8-Sep-13 ---       ---         sqrlem10 - sqrlem24 and sqrlem26 obsolete
 8-Sep-13 sqrlem8   ---         obsolete
 8-Sep-13 sqrlem9   ---         obsolete
 8-Sep-13 uzrdgfnuzi ---        obsolete
 8-Sep-13 uzrdginii ---         obsolete
 8-Sep-13 uzrdginip1i ---       obsolete
 8-Sep-13 uzrdgvali ---         obsolete
 8-Sep-13 ---       ---         math token "seq" changed to "seqz"
 2-Sep-13 ltfrn     [--same--]  revised theorem statement
 2-Sep-13 ltfrn     [--same--]  moved from ATS's mathbox to main set.mm
 2-Sep-13 eluzsub   [--same--]  moved from JM's mathbox to main set.mm
 2-Sep-13 eluzadd   [--same--]  moved from JM's mathbox to main set.mm
 2-Sep-13 rdgeq12   [--same--]  moved from SF's mathbox to main set.mm
 1-Sep-13 raffsp    craffsp     (in FL's mathbox)
 1-Sep-13 ptdfc     cptdfc      (in ATS's mathbox)
 1-Sep-13 rr3c      crr3c       (in ATS's mathbox)
 1-Sep-13 psc       cpscN        (in NM's mathbox)
 1-Sep-13 wgcdOLD   cgcdOLD     (in JH's mathbox)
 1-Sep-13 plusrc    cplusr      (in ATS's mathbox)
 1-Sep-13 minusrc   cminusr     (in ATS's mathbox)
 1-Sep-13 timesrc   ctimesr     (in ATS's mathbox)
 1-Sep-13 csmo      wsmo
 1-Sep-13 syn-bnj17 w-bnj17     (in JB's mathbox)
 1-Sep-13 syn-bnj16 c-bnj16     (in JB's mathbox)
 1-Sep-13 syn-bnj14 c-bnj14     (in JB's mathbox)
 1-Sep-13 syn-bnj13 w-bnj13     (in JB's mathbox)
 1-Sep-13 syn-bnj15 w-bnj15     (in JB's mathbox)
 1-Sep-13 syn-bnj18 c-bnj18     (in JB's mathbox)
 1-Sep-13 syn-bnj19 w-bnj19     (in JB's mathbox)
 1-Sep-13 vd1       wvd1        (in AS's mathbox)
 1-Sep-13 vd2       wvd2        (in AS's mathbox)
 1-Sep-13 vd3       wvd3        (in AS's mathbox)
31-Aug-13 trcl-df   df-trcl     (in FL's mathbox)
31-Aug-13 rtrcl-df  df-rtrcl    (in FL's mathbox)
31-Aug-13 orHom-df  df-orHom    (in FL's mathbox)
31-Aug-13 orIso-df  df-orIso    (in FL's mathbox)
31-Aug-13 decfun-df df-decfun   (in FL's mathbox)
31-Aug-13 expsg-df  df-expsg    (in FL's mathbox)
29-Aug-13 clsbldneg notab       moved from FL's mathbox to main set.mm
18-Aug-13 oprabval2gf [--same--] added bound var hypotheses
10-Aug-13 vtocl2gf  [--same--]  added bound var hypotheses
 7-Aug-13 ringidval [--same--]  changed iota to iota_
 7-Aug-13 df-1r     [--same--]  changed iota to iota_
 7-Aug-13 grpidcl   [--same--]  changed variable names
 7-Aug-13 grpid     [--same--]  changed variable names
 7-Aug-13 grpinveu  [--same--]  changed variable names
 7-Aug-13 grpinvid  [--same--]  changed variable names
 7-Aug-13 grpinvid2 [--same--]  changed variable names
 7-Aug-13 grpinvid1 [--same--]  changed variable names
 7-Aug-13 grprinv   [--same--]  changed variable names
 7-Aug-13 grplinv   [--same--]  changed variable names
 7-Aug-13 grpinv    [--same--]  changed variable names
 7-Aug-13 grpinvval [--same--]  changed iota to iota_
 7-Aug-13 grpinvfval [--same--] changed iota to iota_
 7-Aug-13 df-minusg [--same--]  changed iota to iota_
 7-Aug-13 grprid    [--same--]  changed variable names
 7-Aug-13 grplid    [--same--]  changed variable names
 7-Aug-13 grpidinv2 [--same--]  changed variable names
 7-Aug-13 grpidval  [--same--]  changed iota to iota_
 7-Aug-13 df-0g     [--same--]  changed iota to iota_
 6-Aug-13 isabld    isablod     (in JM's mathbox)
 2-Aug-13 isringd   isringod    (in JM's mathbox)
30-Jul-13 riemtn    mptresid    moved from FL's mathbox to main set.mm
30-Jul-13 riecb     opabresid   moved from FL's mathbox to main set.mm
25-Jul-13 sbcne12g  [--same--]  moved from ATS's mathbox to main set.mm
25-Jul-13 sbcnel12g [--same--]  moved from ATS's mathbox to main set.mm
17-Jul-13 fvopab4s  [--same--]  eliminated redundant hypothesis
30-Jun-13 bnj1263   syl5sseqr   moved from JB's mathbox to main set.mm
30-Jun-13 bnj1264   syl5sseq    moved from JB's mathbox to main set.mm
30-Jun-13 bnj1141   syl6ss      moved from JB's mathbox to main set.mm
24-Jun-13 onsubcum  onssr1      moved from FL's mathbox to main set.mm
21-Jun-13 19.40-2   [--same--]  moved from ATS's mathbox to main set.mm
21-Jun-13 hbxfr     hbxfreq
21-Jun-13 ssopab2   ssopab2b
18-Jun-13 boe       enpr1g      moved from FL's mathbox to main set.mm
18-Jun-13 unpde2eg2 pr2nelem    moved from FL's mathbox to main set.mm
18-Jun-13 unpde2eg22 pr2ne      moved from FL's mathbox to main set.mm
18-Jun-13 unpam2    prdom2      moved from FL's mathbox to main set.mm
18-Jun-13 uncum     r1tr2       moved from FL's mathbox to main set.mm
18-Jun-13 ctarski   ctsk        moved from FL's mathbox to main set.mm
18-Jun-13 cgruni    cgru        moved from FL's mathbox to main set.mm
18-Jun-13 df-tsk    [--same--]  moved from FL's mathbox to main set.mm
18-Jun-13 taralt    dftsk2      moved from FL's mathbox to main set.mm
18-Jun-13 tarval    eltsk       moved from FL's mathbox to main set.mm
18-Jun-13 tarvalg   eltskg      moved from FL's mathbox to main set.mm
18-Jun-13 tarval1   eltsk2      moved from FL's mathbox to main set.mm
18-Jun-13 tarval1g  eltsk2g     moved from FL's mathbox to main set.mm
18-Jun-13 tarax1    tskpwss     moved from FL's mathbox to main set.mm
18-Jun-13 tarax2    tskpw       moved from FL's mathbox to main set.mm
18-Jun-13 tarax3    tsken       moved from FL's mathbox to main set.mm
18-Jun-13 empistar  0tsk        moved from FL's mathbox to main set.mm
18-Jun-13 tarax3d2  tsksdom     moved from FL's mathbox to main set.mm
18-Jun-13 tarax3e   tskssel2    moved from FL's mathbox to main set.mm
18-Jun-13 tarax3f   tskssel     moved from FL's mathbox to main set.mm
18-Jun-13 tarsin    tsksn       moved from FL's mathbox to main set.mm
18-Jun-13 emptar    tsk0        moved from FL's mathbox to main set.mm
18-Jun-13 tarone    tsk1        moved from FL's mathbox to main set.mm
18-Jun-13 tartwo    tsk2        moved from FL's mathbox to main set.mm
18-Jun-13 tarmrtwo  2domtsk     moved from FL's mathbox to main set.mm
18-Jun-13 tarunpa   tskpr       moved from FL's mathbox to main set.mm
18-Jun-13 tarorpa   tskop       moved from FL's mathbox to main set.mm
18-Jun-13 tarcrpr   tskxpss     moved from FL's mathbox to main set.mm
18-Jun-13 ixpssmapg [--same--]  moved from JM's mathbox to main set.mm
18-Jun-13 bnj572    hbxfrbi     moved from JB's mathbox to main set.mm
 5-Jun-13 isgrpd    isgrpod     (in JM's mathbox)
24-May-13 pm2.01bd  pm2.18d     moved from FL's mathbox to main set.mm
23-May-13 r19.3zvb  r19.3z      moved from FL's mathbox to main set.mm
22-May-13 son2lpi   [--same--]  eliminated redundant hypotheses
22-May-13 sotri     [--same--]  eliminated redundant hypotheses
22-May-13 soirri    [--same--]  eliminated redundant hypothesis
22-May-13 suprnubii [--same--]  eliminated redundant hypothesis
22-May-13 suprleubii [--same--]  eliminated redundant hypothesis
20-May-13 suprnub   [--same--]  eliminated redundant antecedent
20-May-13 suprleub  [--same--]  eliminated redundant antecedent
20-May-13 noinfep   [--same--]  eliminated redundant antecedent
18-May-13 pre-axlttri axpre-lttri
18-May-13 pre-axlttrn axpre-lttrn
18-May-13 pre-axltadd axpre-ltadd
18-May-13 pre-axmulgt0 axpre-mulgt0
18-May-13 pre-axsup  axpre-sup
16-May-13 3ne0      [--same--]  moved from FL's mathbox to main set.mm
16-May-13 3cn       [--same--]  moved from FL's mathbox to main set.mm
16-May-13 ltaddpos2tb ltaddrp   moved from FL's mathbox to main set.mm
16-May-13 ltsubpostb ltsubrp    moved from FL's mathbox to main set.mm
16-May-13 r19.26t   r19.26-3    moved from FL's mathbox to main set.mm
16-May-13 uzp1      [--same--]  moved from JM's mathbox to main set.mm
16-May-13 uzm1      [--same--]  moved from JM's mathbox to main set.mm
16-May-13 r1subsuc  r1sssuc     moved from FL's mathbox to main set.mm
15-May-13 impbidd   [--same--]  moved from RM's mathbox to main set.mm
26-Apr-13 domint    dmiin       moved from FL's mathbox to main set.mm
26-Apr-13 inpartelt iinss2      moved from FL's mathbox to main set.mm
25-Apr-13 ssiing    ssiinf      moved from FL's mathbox to main set.mm
24-Apr-13 cnvintcnv cnviin      moved from FL's mathbox to main set.mm
23-Apr-13 eqrelrivg eqrelriv    moved from FL's mathbox to main set.mm
23-Apr-13 eqrelriv  eqrelriiv
22-Apr-13 coeq12d   [--same--]  moved from FL's mathbox to main set.mm
21-Apr-13 coeq12i   [--same--]  moved from FL's mathbox to main set.mm
20-Apr-13 cexint2   iinexg      moved from FL's mathbox to main set.mm
19-Apr-13 fnimapr   [--same--]  moved from JM's mathbox to main set.mm
18-Apr-13 foco2     [--same--]  moved from JM's mathbox to main set.mm
17-Apr-13 pm11.07   [--same--]  moved from ATS's mathbox to main set.mm
16-Apr-13 rcla4t    [--same--]  moved from ATS's mathbox to main set.mm
15-Apr-13 cla4gft   [--same--]  moved from ATS's mathbox to main set.mm
14-Apr-13 isseta    issetf      moved from ATS's mathbox to main set.mm
12-Apr-13 orkurss   opid        moved from FL's mathbox to main set.mm
11-Apr-13 cmpinj    f1cocnv1    moved from FL's mathbox to main set.mm
11-Apr-13 cmpinj2   f1cocnv2    moved from FL's mathbox to main set.mm
10-Apr-13 cnvinj    f1cnv       moved from FL's mathbox to main set.mm
10-Apr-13 f1cnv     f1cnvcnv
 9-Apr-13 reltrncnv relcnvtr    moved from FL's mathbox to main set.mm
 9-Apr-13 fmptd     [--same--]  added "F =" hypothesis
 9-Apr-13 fnmpt     funmpt
 8-Apr-13 cnveq2    cnveqb      moved from FL's mathbox to main set.mm
 7-Apr-13 prnzg     [--same--]  moved from FL's mathbox to main set.mm
 6-Apr-13 resrelfld relresfld   moved from FL's mathbox to main set.mm
 5-Apr-13 cmprelid2 relcoi1     moved from FL's mathbox to main set.mm
 5-Apr-13 cmprelid1 relcoi2     moved from FL's mathbox to main set.mm
 5-Apr-13 inclrel   coss1       moved from FL's mathbox to main set.mm
 5-Apr-13 cmpdia    coires1     moved from FL's mathbox to main set.mm
 4-Apr-13 findcard2s [--same--]  moved from PC's mathbox to main set.mm
 3-Apr-13 prmexpb   [--same--]  moved from PC's mathbox to main set.mm
 3-Apr-13 prmdvdsexpb [--same--]  moved from PC's mathbox to main set.mm
 2-Apr-13 imimorb   [--same--]  moved from PC's mathbox to main set.mm
 1-Apr-13 ac6sg     [--same--]  antecedent now has V instead of _V
 1-Apr-13 clint3    ---         obsolete; use icccld instead
 1-Apr-13 clicls    icccld
 1-Apr-13 lemul2aALT ---        obsolete; use lemul2a instead
 1-Apr-13 cdrci     difreicc
 1-Apr-13 rabeq0    [--same--]  moved from JM's mathbox to main set.mm
31-Mar-13 difin2    [--same--]  moved from JM's mathbox to main set.mm
30-Mar-13 respreima [--same--]  moved from JM's mathbox to main set.mm
29-Mar-13 unpreima  [--same--]  moved from JM's mathbox to main set.mm
28-Mar-13 inpreima  [--same--]  moved from JM's mathbox to main set.mm
27-Mar-13 elpri     [--same--]  moved from SF's mathbox to main set.mm
26-Mar-13 indifdi   indifdir    moved from SF's mathbox to main set.mm
25-Mar-13 r19.30    [--same--]  moved from SF's mathbox to main set.mm
24-Mar-13 r19.21    [--same--]  moved from SF's mathbox to main set.mm
23-Mar-13 19.41vvvv [--same--]  moved from FL's mathbox to main set.mm
23-Mar-13 disjr     [--same--]  moved from JM's mathbox to main set.mm
22-Mar-13 smores2   smores3
22-Mar-13 soxp      [--same--]  changed hypotheses to antecedents
22-Mar-13 poxp      [--same--]  changed hypotheses to antecedents
22-Mar-13 frxp      [--same--]  changed hypotheses to antecedents
22-Mar-13 wexp      [--same--]  changed hypotheses to antecedents
22-Mar-13 soxp      [--same--]  moved from SF's mathbox to main set.mm
22-Mar-13 poxp      [--same--]  moved from SF's mathbox to main set.mm
22-Mar-13 frxp      [--same--]  moved from SF's mathbox to main set.mm
22-Mar-13 wexp      [--same--]  moved from SF's mathbox to main set.mm
22-Mar-13 mapdom1   [--same--]  removed redundant hypothesis
22-Mar-13 mapen     [--same--]  removed redundant hypotheses
22-Mar-13 mapsnen   [--same--]  removed redundant hypothesis
22-Mar-13 xpen      [--same--]  removed redundant hypotheses
22-Mar-13 xpeng     [--same--]  removed redundant antecedents
21-Mar-13 3reeanv   [--same--]  moved from JM's mathbox to main set.mm
20-Mar-13 rexrab    [--same--]  moved from JM's mathbox to main set.mm
19-Mar-13 ee01      mpsyl       moved from AS's mathbox to main set.mm
19-Mar-13 morex     [--same--]  moved from JM's mathbox to main set.mm
18-Mar-13 cbviota   [--same--]  moved from ATS's mathbox to main set.mm
18-Mar-13 cbviotaf  [--same--]  moved from ATS's mathbox to main set.mm
17-Mar-13 raleqfn   [--same--]  moved from JM's mathbox to main set.mm
16-Mar-13 xporderlem [--same--]  moved from SF's mathbox to main set.mm
16-Mar-13 3an6      [--same--]  moved from SF's mathbox to main set.mm
16-Mar-13 3or6      [--same--]  moved from SF's mathbox to main set.mm
16-Mar-13 elres     [--same--]  moved from SF's mathbox to main set.mm
16-Mar-13 elsnres   [--same--]  moved from SF's mathbox to main set.mm
16-Mar-13 issmo     [--same--]  moved from ATS's mathbox to main set.mm
16-Mar-13 smoeq     [--same--]  moved from ATS's mathbox to main set.mm
16-Mar-13 smodm     [--same--]  moved from ATS's mathbox to main set.mm
16-Mar-13 smores    [--same--]  moved from ATS's mathbox to main set.mm
16-Mar-13 smores3   [--same--]  moved from ATS's mathbox to main set.mm
16-Mar-13 iordsmo   [--same--]  moved from ATS's mathbox to main set.mm
16-Mar-13 smo0      [--same--]  moved from ATS's mathbox to main set.mm
16-Mar-13 smofvon   [--same--]  moved from ATS's mathbox to main set.mm
16-Mar-13 smoel     [--same--]  moved from ATS's mathbox to main set.mm
16-Mar-13 smoiun    [--same--]  moved from ATS's mathbox to main set.mm
16-Mar-13 smoiso    [--same--]  moved from ATS's mathbox to main set.mm
16-Mar-13 smoge     [--same--]  moved from ATS's mathbox to main set.mm
16-Mar-13 supeut    [--same--]  moved from JM's mathbox to main set.mm
16-Mar-13 fisup2g   [--same--]  moved from JM's mathbox to main set.mm
16-Mar-13 fimax2g   [--same--]  moved from JM's mathbox to main set.mm
16-Mar-13 wofi      [--same--]  moved from JM's mathbox to main set.mm
16-Mar-13 frfi      [--same--]  moved from JM's mathbox to main set.mm
16-Mar-13 pofun     [--same--]  moved from JM's mathbox to main set.mm
16-Mar-13 frminex   [--same--]  moved from JM's mathbox to main set.mm
16-Mar-13 xpeng     [--same--]  moved from JM's mathbox to main set.mm
16-Mar-13 fimax     [--same--]  moved from JM's mathbox to main set.mm
16-Mar-13 fimaxg    [--same--]  moved from JM's mathbox to main set.mm
16-Mar-13 fisupg    [--same--]  moved from JM's mathbox to main set.mm
15-Mar-13 trint0    [--same--]  moved from ATS's mathbox to main set.mm
15-Mar-13 ordintdif [--same--]  moved from ATS's mathbox to main set.mm
14-Mar-13 ne0f      n0f
 1-Mar-13 eupickbi  [--same--]  moved from ATS's mathbox to main set.mm
 1-Mar-13 dvelimfALT2 [--same--] moved from ATS's mathbox to main set.mm
 1-Mar-13 ax12      a12study2   moved from ATS's mathbox to main set.mm
24-Feb-13 sbceq2dig sbceq2g
24-Feb-13 sbceq1dig sbceq1g
24-Feb-13 sbceqdig  sbceqg
24-Feb-13 sbcbidig  sbcbig
21-Feb-13 ---       ---         See http://us.metamath.org/mpeuni/mmnotes.txt
21-Feb-13 ---       ---         entry of 21-Feb-13 for instructions for
21-Feb-13 ---       ---         the changes below.
21-Feb-13 sylan     [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylanb    [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylanbr   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylan2    [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylan2b   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylan2br  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl2an    [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl2anb   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl2anbr  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syland    [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylan2d   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl2and   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylanl1   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylanl2   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylanr1   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylanr2   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylani    [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylan2i   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl2ani   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylancl   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylancr   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylanbrc  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylancb   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 sylancbr  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3an1   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3an2   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3an3   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3an1b  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3an2b  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3an3b  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3an1br [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3an2br [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3an3br [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3an    [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3anb   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3anbr  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syld3an3  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syld3an1  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syld3an2  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3anl1  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3anl2  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3anl3  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3anl   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3anr1  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3anr2  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl3anr3  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5com   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5      [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5d     [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5ib    syl5bi      reordered hypotheses for better logical flow
21-Feb-13 syl5ibr   syl5bir     reordered hypotheses for better logical flow
21-Feb-13 syl5bi    syl5ib      reordered hypotheses for better logical flow
21-Feb-13 syl5cbi   syl5ibcom   reordered hypotheses for better logical flow
21-Feb-13 syl5bir   syl5ibr     reordered hypotheses for better logical flow
21-Feb-13 syl5cbir  syl5ibrcom  reordered hypotheses for better logical flow
21-Feb-13 syl5bb    [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5rbb   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5bbr   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5rbbr  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5eq    [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5req   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5eqr   [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5reqr  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5eqel  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5eqelr [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5eleq  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5eleqr [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5eqner [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5ss    syl5eqss    reordered hypotheses for better logical flow
21-Feb-13 syl5ssr   syl5eqssr   reordered hypotheses for better logical flow
21-Feb-13 syl5eqbr  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5eqbrr [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5breq  [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl5breqr [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl7      [--same--]  reordered hypotheses for better logical flow
21-Feb-13 syl7ib    syl7bi      reordered hypotheses for better logical flow
21-Feb-13 syl6ss    syl6sseq
21-Feb-13 syl6ssr   syl6sseqr
19-Feb-13 fv4       fv4         moved from ATS's mathbox to main set.mm
11-Feb-13 fvopab2b  fvmpt2      moved from FL's mathbox to main set.mm
11-Feb-13 isfinite3 [--same--]  moved from FL's mathbox to main set.mm
 4-Feb-13 remcon    difabs      moved from FL's mathbox to main set.mm
 4-Feb-13 foelrn    [--same--]  moved from JM's mathbox to main set.mm
 4-Feb-13 xpeq2d    [--same--]  moved from JM's mathbox to main set.mm
 4-Feb-13 xpeq1d    [--same--]  moved from JM's mathbox to main set.mm
31-Jan-13 opabex3   [--same--]  moved from JM's mathbox to main set.mm
31-Jan-13 ressn0    ressnop0    moved from SF's mathbox to main set.mm
31-Jan-13 valfunun  fvun        moved from FL's mathbox to main set.mm
20-Jan-13 sucdomi   ---         obsolete; use sucdom instead
20-Jan-13 omsucdom  ---         obsolete; use sucdom instead
20-Jan-13 fisucdom  ---         obsolete; use sucdom instead
20-Jan-13 cardennn  [--same--]  eliminated redundant antecedent
20-Jan-13 oncardon  ---         obsolete; use cardon instead
20-Jan-13 weth      [--same--]  made hypothesis into antecedent
20-Jan-13 tz7.49    [--same--]  changed hypotheses
20-Jan-13 tz7.49c   [--same--]  changed hypotheses
20-Jan-13 r19.23aivr r19.23aivw  moved from FL's mathbox to main set.mm
 4-Jan-13 mul23     mul32
 4-Jan-13 mul23i    mul32i
 4-Jan-13 add23     add32
 4-Jan-13 add23i    add32i
 4-Jan-13 cbvralcsf [--same--]  moved from ATS's mathbox to main set.mm
 4-Jan-13 cbvrexcsf [--same--]  moved from ATS's mathbox to main set.mm
 4-Jan-13 cbvreucsf [--same--]  moved from ATS's mathbox to main set.mm
 4-Jan-13 cbvrabcsf [--same--]  moved from ATS's mathbox to main set.mm
 3-Jan-13 ax0id     addid1
 3-Jan-13 ax1id     mulid1
10-Dec-12 elimant   ---         obsolete (renamed elimantOLD, to be deleted)
 1-Dec-12 fixp      xpfi
 1-Dec-12 xpfi      xpfir
 1-Dec-12 finsucdom fisucdom
 1-Dec-12 setwoe    en1eqsn
 1-Dec-12 sfseqeq   fisseneq
 1-Dec-12 islfin    difinf
 1-Dec-12 unfin     unfir
 1-Dec-12 finfin    diffi
 1-Dec-12 twpar2    uneqdifeq
 1-Dec-12 findcard2 [--same--]  moved from JM's mathbox to main set.mm
27-Nov-12 an1s      an12s
27-Nov-12 an1rs     an32s
27-Nov-12 ancom13s  an13s
27-Nov-12 ancom31s  an31s
19-Nov-12 ee11      ---         obsolete; same as sylc
17-Nov-12 seq11g    [--same--]  moved from JM's mathbox to main set.mm
17-Nov-12 seq1p1g   [--same--]  moved from JM's mathbox to main set.mm
17-Nov-12 seqz1g    [--same--]  moved from JM's mathbox to main set.mm
17-Nov-12 seqzp1g   [--same--]  moved from JM's mathbox to main set.mm
17-Nov-12 seq1seqzg [--same--]  moved from JM's mathbox to main set.mm
16-Nov-12 ordelordaxr ordelordALT
12-Nov-12 funimadisj fnimadisj
 4-Nov-12 ---       ---         math token "0vNEW" changed to "0v"
 4-Nov-12 ---       ---         math token "0v" changed to "0vec"
 4-Nov-12 ---       ---         math token "1rNEW" changed to "1r"
 4-Nov-12 ---       ---         math token "TopSet" changed to "TopOpen"
 4-Nov-12 ---       ---         math token "Toset" changed to "TosetRel"
 4-Nov-12 ---       ---         math token "Dir" changed to "DirRel"
 4-Nov-12 ---       ---         math token "LatNEW" changed to "Lat"
 4-Nov-12 ---       ---         math token "Lat" changed to "LatRel"
 4-Nov-12 ---       ---         math token "PosetNEW" changed to "Poset"
 4-Nov-12 ---       ---         math token "Poset" changed to "PosetRel"
 4-Nov-12 ---       ---         math token "DivRingNEW" changed to "DivRing"
 4-Nov-12 ---       ---         math token "DivRing" changed to "DivRingOps"
 4-Nov-12 ---       ---         math token "RingNEW" changed to "Ring"
 4-Nov-12 ---       ---         math token "Ring" changed to "RingOps"
 4-Nov-12 ---       ---         math token "SubGrp" changed to "SubGrpOp"
 4-Nov-12 ---       ---         math token "AbelNEW" changed to "Abel"
 4-Nov-12 ---       ---         math token "Abel" changed to "AbelOp"
 4-Nov-12 ---       ---         math token "GrpNEW" changed to "Grp"
 4-Nov-12 ---       ---         math token "Grp" changed to "GrpOp"
 4-Nov-12 ---       ---         math token "Open" changed to "MetOpen"
 4-Nov-12 grpNEW2grp grp2grpo
 4-Nov-12 grpNEWstr grpstr
 4-Nov-12 grpNEWprop grpprop
 4-Nov-12 grp2grpNEW grp2grp
 4-Nov-12 postrNEW  postr
 4-Nov-12 isdivrngNEW isdivrng
 4-Nov-12 df-drngNEW df-drng
 4-Nov-12 cdivringNEW cdivring
 4-Nov-12 ringrzNEW ringrz
 4-Nov-12 ringlzNEW ringlz
 4-Nov-12 ringridmNEW ringridm
 4-Nov-12 ringlidmNEW ringlidm
 4-Nov-12 ringidmlemNEW ringidmlem
 4-Nov-12 ringgrpNEW ringgrp
 4-Nov-12 ringablNEW ringabl
 4-Nov-12 ringdirNEW ringdir
 4-Nov-12 ringdiNEW ringdi
 4-Nov-12 ringideuNEW ringideu
 4-Nov-12 ringassNEW ringass
 4-Nov-12 ringclNEW ringcl
 4-Nov-12 ringiNEW  ringi
 4-Nov-12 isringNEW isring
 4-Nov-12 cnaddablNEW cnaddabl
 4-Nov-12 ablcomNEW ablcom
 4-Nov-12 ablgrpNEW ablgrp
 4-Nov-12 isabliNEW isabli
 4-Nov-12 isablNEW  isabl
 4-Nov-12 grplcanNEW grplcan
 4-Nov-12 grpinvidNEW grpinvid
 4-Nov-12 grpinvid2NEW grpinvid2
 4-Nov-12 grpinvid1NEW grpinvid1
 4-Nov-12 grprinvNEW grprinv
 4-Nov-12 grplinvNEW grplinv
 4-Nov-12 grpinvNEW grpinv
 4-Nov-12 grpinvclNEW grpinvcl
 4-Nov-12 grpinvvalNEW grpinvval
 4-Nov-12 grpinvfvalNEW grpinvfval
 4-Nov-12 grpidNEW  grpid
 4-Nov-12 grpinveuNEW grpinveu
 4-Nov-12 grprcanNEW grprcan
 4-Nov-12 grpridNEW grprid
 4-Nov-12 grplidNEW grplid
 4-Nov-12 grpidinv2NEW grpidinv2
 4-Nov-12 grpidclNEW grpidcl
 4-Nov-12 grpidvalNEW grpidval
 4-Nov-12 isgrpiNEW isgrpi
 4-Nov-12 grpn0NEW  grpn0
 4-Nov-12 grpideuNEW grpideu
 4-Nov-12 grpidinvNEW grpidinv
 4-Nov-12 grpidinvlem4NEW grpidinvlem4
 4-Nov-12 grpidinvlem3NEW grpidinvlem3
 4-Nov-12 grpidinvlem2NEW grpidinvlem2
 4-Nov-12 grpidinvlem1NEW grpidinvlem1
 4-Nov-12 grplidinvNEW grplidinv
 4-Nov-12 grpassNEW grpass
 4-Nov-12 grpclNEW  grpcl
 4-Nov-12 elgrpNEW  elgrp
 4-Nov-12 isgrp2NEW isgrp2
 4-Nov-12 isgrpNEW  isgrp
 4-Nov-12 df-ringNEW df-ring
 4-Nov-12 df-ablNEW df-abl
 4-Nov-12 df-grpNEW df-grp
 4-Nov-12 crgNEW    crg
 4-Nov-12 cabelNEW  cabel
 4-Nov-12 cgrpNEW   cgrp
 4-Nov-12 postr     posreltr
 4-Nov-12 isdivrng  isdivrngo
 4-Nov-12 df-drng   df-drngo
 4-Nov-12 ringrz    ringorz
 4-Nov-12 ringlz    ringolz
 4-Nov-12 ringridm  ringoridm
 4-Nov-12 ringlidm  ringolidm
 4-Nov-12 ringidmlem ringoidmlem
 4-Nov-12 ringgrp   ringogrpo
 4-Nov-12 ringabl   ringoablo
 4-Nov-12 ringdir   ringodir
 4-Nov-12 ringdi    ringodi
 4-Nov-12 ringideu  ringoideu
 4-Nov-12 ringass   ringoass
 4-Nov-12 ringcl    ringocl
 4-Nov-12 ringi     ringoi
 4-Nov-12 isring    isringo
 4-Nov-12 cnaddabl  cnaddablo
 4-Nov-12 ablcom    ablocom
 4-Nov-12 ablgrp    ablogrpo
 4-Nov-12 isabli    isabloi
 4-Nov-12 isabl     isablo
 4-Nov-12 grplcan   grpolcan
 4-Nov-12 grpinvid  grpoinvid
 4-Nov-12 grpinvid2 grpoinvid2
 4-Nov-12 grpinvid1 grpoinvid1
 4-Nov-12 grprinv   grporinv
 4-Nov-12 grplinv   grpolinv
 4-Nov-12 grpinv    grpoinv
 4-Nov-12 grpinvcl  grpoinvcl
 4-Nov-12 grpinvval grpoinvval
 4-Nov-12 grpinvfval grpoinvfval
 4-Nov-12 grpid     grpoid
 4-Nov-12 grpinveu  grpoinveu
 4-Nov-12 grprcan   grporcan
 4-Nov-12 grprid    grporid
 4-Nov-12 grplid    grpolid
 4-Nov-12 grpidinv2 grpoidinv2
 4-Nov-12 grpidcl   grpoidcl
 4-Nov-12 grpidval  grpoidval
 4-Nov-12 isgrpi    isgrpoi
 4-Nov-12 grpn0     grpon0
 4-Nov-12 grpideu   grpoideu
 4-Nov-12 grpidinv  grpoidinv
 4-Nov-12 grpidinvlem4 grpoidinvlem4
 4-Nov-12 grpidinvlem3 grpoidinvlem3
 4-Nov-12 grpidinvlem2 grpoidinvlem2
 4-Nov-12 grpidinvlem1 grpoidinvlem1
 4-Nov-12 grplidinv grpolidinv
 4-Nov-12 grpass    grpoass
 4-Nov-12 grpcl     grpocl
 4-Nov-12 isgrp2    isgrpo2
 4-Nov-12 isgrp     isgrpo
 4-Nov-12 df-ring   df-ringo
 4-Nov-12 df-abl    df-ablo
 4-Nov-12 df-grp    df-grpo
 4-Nov-12 1r        1sr
29-Oct-12 ralimdvaa ralimdva
28-Oct-12 mptfn     mptfng
26-Oct-12 raleqi    [--same--]  moved from PC's mathbox to main set.mm
26-Oct-12 fneq12d   [--same--]  moved from PC's mathbox to main set.mm
26-Oct-12 feq23i    [--same--]  moved from PC's mathbox to main set.mm
26-Oct-12 reseq2i   [--same--]  moved from PC's mathbox to main set.mm
26-Oct-12 reseq2d   [--same--]  moved from PC's mathbox to main set.mm
26-Oct-12 ifbieq2d  [--same--]  moved from PC's mathbox to main set.mm
26-Oct-12 supeq1d   [--same--]  moved from PC's mathbox to main set.mm
26-Oct-12 supeq1i   [--same--]  moved from PC's mathbox to main set.mm
26-Oct-12 emfin     0fin        moved from PC's mathbox to main set.mm
26-Oct-12 fz1n      [--same--]  moved from PC's mathbox to main set.mm
26-Oct-12 nn0lt10b  [--same--]  moved from PC's mathbox to main set.mm
25-Oct-12 fnoprab2ga [--same--]  moved from FL's mathbox to main set.mm
25-Oct-12 fnoprab2a [--same--]  moved from FL's mathbox to main set.mm
25-Oct-12 dmoprab2a [--same--]  moved from FL's mathbox to main set.mm
25-Oct-12 foprab2a  [--same--]  moved from FL's mathbox to main set.mm
25-Oct-12 oprabval2ga [--same--]  moved from FL's mathbox to main set.mm
25-Oct-12 oprabex2ga [--same--]  moved from FL's mathbox to main set.mm
22-Oct-12 ---       ---         math token "Bases" was changed to "TopBases"
21-Oct-12 stoi      [--same--]  converted to new structure scheme
21-Oct-12 topgele   [--same--]  converted to new structure scheme
21-Oct-12 subtopsin2 [--same--] converted to new structure scheme
21-Oct-12 topindis  [--same--]  converted to new structure scheme
21-Oct-12 subsptop    [--same--]  converted to new structure scheme
21-Oct-12 subspuni    [--same--]  converted to new structure scheme
21-Oct-12 stoig     [--same--]  converted to new structure scheme
21-Oct-12 stoiglem  [--same--]  converted to new structure scheme
20-Oct-12 retps     [--same--]  converted to new structure scheme
20-Oct-12 distps    [--same--]  converted to new structure scheme
20-Oct-12 indistps  [--same--]  converted to new structure scheme
20-Oct-12 istps5    [--same--]  converted to new structure scheme
20-Oct-12 istps4    [--same--]  converted to new structure scheme
20-Oct-12 istps3    [--same--]  converted to new structure scheme
20-Oct-12 istps2    [--same--]  converted to new structure scheme
20-Oct-12 istps     [--same--]  converted to new structure scheme
20-Oct-12 tpsex     ---         obsolete
20-Oct-12 istps     [--same--]  converted to new structure scheme
20-Oct-12 df-topsp  [--same--]  converted to new structure scheme
20-Oct-12 subsp2    subsp       moved from FL's mathbox to main set.mm
20-Oct-12 subsp     subspi
19-Oct-12 mpteqi    [--same--]  moved from SF's mathbox to main set.mm
19-Oct-12 mpteq2dva  [--same--]  moved from FL's mathbox to main set.mm
19-Oct-12 empntop   0ntop       moved from FL's mathbox to main set.mm
19-Oct-12 mp4an     [--same--]  moved from JM's mathbox to main set.mm
18-Oct-12 df-struct ---         obsolete; affected theorems reproved
18-Oct-12 df-strbldr ---        obsolete; affected theorems reproved
15-Oct-12 cbviin    [--same--]  moved from JGH's mathbox to main set.mm
15-Oct-12 cbviinv   [--same--]  moved from JGH's mathbox to main set.mm
15-Oct-12 txtopi    [--same--]  moved from JM's mathbox to main set.mm
15-Oct-12 txunii    [--same--]  moved from JM's mathbox to main set.mm
15-Oct-12 euuni2    [--same--]  moved from JM's mathbox to main set.mm
15-Oct-12 difxp     [--same--]  moved from JM's mathbox to main set.mm
15-Oct-12 unopn     [--same--]  moved from JM's mathbox to main set.mm
15-Oct-12 incld     [--same--]  moved from JM's mathbox to main set.mm
15-Oct-12 txopn     [--same--]  moved from JM's mathbox to main set.mm
15-Oct-12 txcld     [--same--]  moved from JM's mathbox to main set.mm
15-Oct-12 opnnei    [--same--]  moved from JGH's mathbox to main set.mm
 7-Oct-12 3ioran    [--same--]  moved from SF's mathbox to main set.mm
27-Aug-12 in23      in32
21-Jul-12 simplim   [--same--]  unnecessary negation removed
20-Jul-12 ---       ---         math token "base" was changed to "Base"
25-Jun-12 nelne     nelne1
24-Jun-12 an23      an32
22-Mar-12 simplld   simpld
21-May-12 fiss      [--same--]  moved from JGH's mathbox to main set.mm
21-May-12 inficlALT [--same--]  moved from JGH's mathbox to main set.mm
21-May-12 fitop     [--same--]  moved from JGH's mathbox to main set.mm
21-May-12 abrexex2g [--same--]  moved from JM's mathbox to main set.mm
16-Apr-12 rexcom4a  [--same--]  moved from JM's mathbox to main set.mm
16-Apr-12 rexcom4b  [--same--]  moved from JM's mathbox to main set.mm
16-Apr-12 eqfnfv3   [--same--]  moved from JM's mathbox to main set.mm
16-Apr-12 fibas     [--same--]  moved from JGH's mathbox to main set.mm
16-Apr-12 indexfi   [--same--]  moved from JM's mathbox to main set.mm
16-Apr-12 fipreima  [--same--]  moved from JM's mathbox to main set.mm
14-Apr-12 int2rel   brin
12-Apr-12 dif2rel   brdif       moved from SF's mathbox to main set.mm
25-Mar-12 syl3an2c  syl13anc    old hypothesis 1 is now hypothesis 5
25-Mar-12 syl3anc   syl111anc   old hypothesis 1 is now hypothesis 4
22-Mar-12 sylc      [--same--]  old hypothesis 1 is now hypothesis 4
22-Mar-12 sylanc    syl11anc    old hypothesis 1 is now hypothesis 4
22-Mar-12 syl2anr   syl22anc    old hypothesis 1 is now hypothesis 5
22-Mar-12 sylan31c  syl21anc    order of variables is different
22-Mar-12 sylan32c  syl12anc    order of variables is different
22-Mar-12 pm3.26im  simplim
22-Mar-12 pm3.27im  simprim
22-Mar-12 pm3.26    simpl
22-Mar-12 pm3.26i   simpli
22-Mar-12 pm3.26d   simpld
22-Mar-12 pm3.26bi  simplbi
22-Mar-12 pm3.27    simpr
22-Mar-12 pm3.27i   simpri
22-Mar-12 pm3.27d   simprd
22-Mar-12 pm3.27bi  simprbi
22-Mar-12 pm3.26bda simprbda
22-Mar-12 pm3.27bda simplbda
22-Mar-12 pm3.26bi2 simplbi2
22-Mar-12 pm3.26bi2VD simplbi2VD
22-Mar-12 3simp1    simp1
22-Mar-12 3simp2    simp2
22-Mar-12 3simp3    simp3
22-Mar-12 3simpl1   simpl1
22-Mar-12 3simpl2   simpl2
22-Mar-12 3simpl3   simpl3
22-Mar-12 3simpr1   simpr1
22-Mar-12 3simpr2   simpr2
22-Mar-12 3simpr3   simpr3
22-Mar-12 3simp1i   simp1i
22-Mar-12 3simp2i   simp2i
22-Mar-12 3simp3i   simp3i
22-Mar-12 3simp1d   simp1d
22-Mar-12 3simp2d   simp2d
22-Mar-12 3simp3d   simp3d
22-Mar-12 3simp1bi  simp1bi
22-Mar-12 3simp2bi  simp2bi
22-Mar-12 3simp3bi  simp3bi
22-Mar-12 3simp1l   simp1l
22-Mar-12 3simp1r   simp1r
22-Mar-12 3simp2l   simp2l
22-Mar-12 3simp2r   simp2r
22-Mar-12 3simp3l   simp3l
22-Mar-12 3simp3r   simp3r
22-Mar-12 3simp11   simp11
22-Mar-12 3simp12   simp12
22-Mar-12 3simp13   simp13
22-Mar-12 3simp21   simp21
22-Mar-12 3simp22   simp22
22-Mar-12 3simp23   simp23
22-Mar-12 3simp31   simp31
22-Mar-12 3simp32   simp32
22-Mar-12 3simp33   simp33
20-Mar-12 truni     [--same--]  moved from SF's mathbox to main set.mm
20-Mar-12 trsuc2    [--same--]  moved from SF's mathbox to main set.mm
20-Mar-12 trint     [--same--]  moved from SF's mathbox to main set.mm
20-Mar-12 trintss   [--same--]  moved from SF's mathbox to main set.mm
 4-Mar-12 ralunb    [--same--]  moved from SF's mathbox to main set.mm
20-Feb-12 3orcomb   [--same--]  moved from SF's mathbox to main set.mm
29-Jan-12 sbmo      [--same--]  moved from JM's mathbox to main set.mm
29-Jan-12 2ralor    [--same--]  moved from JM's mathbox to main set.mm
29-Jan-12 rexun     [--same--]  moved from JM's mathbox to main set.mm
29-Jan-12 ralun     [--same--]  moved from JM's mathbox to main set.mm
29-Jan-12 rexsn     [--same--]  moved from JM's mathbox to main set.mm
16-Jan-12 reuuninegi reuunineg
16-Jan-12 riotaund  riotaundb
 3-Jan-12 ee111     syl3c       moved from AS's mathbox to main set.mm
 3-Jan-12 ee12      sylsyld     moved from AS's mathbox to main set.mm
 3-Jan-12 ee20      syl6mpi     moved from AS's mathbox to main set.mm
22-Nov-11 eqfnfv3   [--same--]  moved from JM's mathbox to main set.mm
 6-Nov-11 cm        cmap
 4-Nov-11 hashgf1o  [--same--]  moved from PC's mathbox to main set.mm
 4-Nov-11 hashgval  [--same--]  moved from PC's mathbox to main set.mm
 4-Nov-11 hashginv  [--same--]  moved from PC's mathbox to main set.mm
 4-Nov-11 hashfz1   [--same--]  moved from PC's mathbox to main set.mm
 4-Nov-11 hashen    [--same--]  moved from PC's mathbox to main set.mm
 4-Nov-11 fz1fi     [--same--]  moved from PC's mathbox to main set.mm
20-Oct-11 ralab     [--same--]  moved from JM's mathbox to main set.mm
20-Oct-11 ralrab    [--same--]  moved from JM's mathbox to main set.mm
20-Sep-11 ifbieq2i  [--same--]  moved from PC's mathbox to main set.mm
20-Sep-11 dfiin2g   [--same--]  moved from JGH's mathbox to main set.mm
20-Sep-11 oprvex    ab2rexex    generalized oper. value to be arbitrary class
16-Sep-11 riotass2  reiotass2
16-Sep-11 riota2    reiota2
16-Sep-11 riota2f   reiota2f
16-Sep-11 riota1    reiota1
16-Sep-11 riotasbc    reiotasbc
16-Sep-11 riotacl   reiotacl
16-Sep-11 riotacl2  reiotacl2
15-Sep-11 19.22-2   2exim
15-Sep-11 19.20-2   2alim
15-Sep-11 19.20ii2  2al2imi
15-Sep-11 19.20ian2 2alanimi
15-Sep-11 sbc19.20dv sbcimdv
15-Sep-11 r19.22dva reximdva
15-Sep-11 r19.22sdv reximdv
15-Sep-11 r19.22dv  reximdvai
15-Sep-11 r19.22dv2 reximdv2
15-Sep-11 r19.22d   reximdai
15-Sep-11 r19.22si  reximi
15-Sep-11 r19.22i2  reximi2
15-Sep-11 r19.22i   reximia
15-Sep-11 r19.22OLD reximOLD
15-Sep-11 r19.22    rexim
15-Sep-11 r19.20dv2 ralimdv2
15-Sep-11 r19.20sdv ralimdv
15-Sep-11 r19.20dva ralimdva
15-Sep-11 r19.20da  ralimdaa
15-Sep-11 r19.20sii ral2imi
15-Sep-11 r19.20si  ralimi
15-Sep-11 r19.20ia  ralimiaa
15-Sep-11 r19.20i   ralimia
15-Sep-11 r19.20i2  ralimi2
15-Sep-11 r19.20    ralim
15-Sep-11 19.22dvv  2eximdv
15-Sep-11 19.20dvv  2alimdv
15-Sep-11 19.22dv   eximdv
15-Sep-11 19.20dv   alimdv
15-Sep-11 19.22d    eximd
15-Sep-11 19.22i2   2eximi
15-Sep-11 19.22i    eximi
15-Sep-11 19.22     exim
15-Sep-11 19.20d    alimd
15-Sep-11 19.20ian  alanimi
15-Sep-11 19.20ii   al2imi
15-Sep-11 19.20     alim
15-Sep-11 19.20i2   2alimi
15-Sep-11 19.20i    alimi
15-Sep-11 rexeqd    rexeqbi1dv
15-Sep-11 rexeq1d   rexeqdv
15-Sep-11 rexeq1    rexeq
15-Sep-11 rexeq1f   rexeqf
15-Sep-11 raleq1i   raleqi
15-Sep-11 raleqd    raleqbi1dv
15-Sep-11 raleq1d   raleqdv
15-Sep-11 raleq1    raleq
15-Sep-11 raleq1f   raleqf
15-Sep-11 rabeq12d  rabeqbidv   moved from JM's mathbox to main set.mm
15-Sep-11 19.18-2   2exbi
15-Sep-11 19.15-2   2albi
15-Sep-11 r19.15    ralbi
15-Sep-11 19.18     exbi
15-Sep-11 19.15     albi
15-Sep-11 2albi     2albiim
15-Sep-11 albi      albiim
14-Sep-11 ciota     cio
14-Sep-11 rabbii    rabbiia
14-Sep-11 rabbisdv  rabbidv
14-Sep-11 rabbidv   rabbidva
14-Sep-11 tpi3      tpid3
14-Sep-11 tpi2      tpid2
14-Sep-11 tpi1      tpid1
13-Sep-11 dmfnwdm2  fnprg       moved from FL's mathbox to main set.mm
13-Sep-11 s2pf      funprg      moved from FL's mathbox to main set.mm
12-Sep-11 mptexg    [--same--]  swapped variables "B" and "C"
 9-Sep-11 hbcmpt    hbmpt1      moved from FL's mathbox to main set.mm
 9-Sep-11 bnj1344   simp3bi     moved from JB's mathbox to main set.mm
 9-Sep-11 bnj1301   simp2bi     moved from JB's mathbox to main set.mm
 9-Sep-11 bnj1206   simp1bi     moved from JB's mathbox to main set.mm
 8-Sep-11 syl3an2c  [--same--]  moved from JM's mathbox to main set.mm
 8-Sep-11 eqfnfvALT eqfnfv2
 8-Sep-11 uridm2    ringoridm
 8-Sep-11 uridm1    ringolidm
 8-Sep-11 uridm     ringoidmlem
 8-Sep-11 zerab2    ringorz
 8-Sep-11 zerab     ringolz
 7-Sep-11 euunian   iota4an     moved from ATS's mathbox to main set.mm
 7-Sep-11 iota3     iota4       (because it's analogous to reuunisbc / riota4)
 6-Sep-11 pm13.181  [--same--]  moved from ATS's mathbox to main set.mm
 6-Sep-11 pm13.18   [--same--]  moved from ATS's mathbox to main set.mm
 6-Sep-11 trutru    tru         moved from AH's mathbox to main set.mm
 6-Sep-11 nofaltru  notfal      moved from AH's mathbox to main set.mm
 4-Sep-11 feq1i     [--same--]  moved from PC's mathbox to main set.mm
 4-Sep-11 fneq1i    [--same--]  moved from PC's mathbox to main set.mm
 4-Sep-11 fneq2d    [--same--]  moved from PC's mathbox to main set.mm
 4-Sep-11 fneq1d    [--same--]  moved from PC's mathbox to main set.mm
 3-Sep-11 prf       fpr         moved from JM's mathbox to main set.mm
 3-Sep-11 prfv2     fvpr2       moved from JM's mathbox to main set.mm
 3-Sep-11 prfv1     fvpr1       moved from JM's mathbox to main set.mm
 3-Sep-11 prfun     funpr       moved from JM's mathbox to main set.mm
30-Aug-11 eqfnfvf2  eqfnfv2f
30-Aug-11 xp11a     xpcan2      xp11a (obsolete) was a special case of xpcan2
30-Aug-11 xp11b     xpcan       xp11b (obsolete) was a special case of xpcan
26-Aug-11 dmsdtriord domtriord  moved from JGH's mathbox to main set.mm
26-Aug-11 impbid3   impcon4bid  moved from JGH's mathbox to main set.mm
26-Aug-11 cbvcsb    [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 cbvcsb    [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 ordiso    [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 ordtypelem1 [--same--] moved from JGH's mathbox to main set.mm
26-Aug-11 ordtypelem2 [--same--] moved from JGH's mathbox to main set.mm
26-Aug-11 ordtypelem3 [--same--] moved from JGH's mathbox to main set.mm
26-Aug-11 ordtypelem4 [--same--] moved from JGH's mathbox to main set.mm
26-Aug-11 ordtypelem5 [--same--] moved from JGH's mathbox to main set.mm
26-Aug-11 ordtypelem6 [--same--] moved from JGH's mathbox to main set.mm
26-Aug-11 ordtypelem7 [--same--] moved from JGH's mathbox to main set.mm
26-Aug-11 ordtype   [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 hartoglem [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 hartog    [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 onsdom    [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 omsubsuc  [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 omsubsuc2 [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 omsubsdomlem1 [--same--] moved from JGH's mathbox to main set.mm
26-Aug-11 omsubsdomlem2 [--same--] moved from JGH's mathbox to main set.mm
26-Aug-11 omsubsdom [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 omsubdom  [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 omsubel   [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 omsubss   [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 elomsubsd [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 omsubdmss [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 omsublim  [--same--]  moved from JGH's mathbox to main set.mm
26-Aug-11 omsubindss [--same--] moved from JGH's mathbox to main set.mm
26-Aug-11 infenomsub [--same--] moved from JGH's mathbox to main set.mm
26-Aug-11 omsubinit [--same--]  moved from JGH's mathbox to main set.mm
20-Aug-11 iotaval   [--same--]  swapped order of equality in consequent
20-Aug-11 iotaequ   [--same--]  swapped order of equality in consequent
20-Aug-11 iotanul   [--same--]  swapped order of equality
18-Aug-11 mpset     mptexg      moved from FL's mathbox to main set.mm
18-Aug-11 hbiota    hbiota1     moved from ATS's mathbox to main set.mm
18-Aug-11 iotacl    [--same--]  moved from ATS's mathbox to main set.mm
18-Aug-11 iota3     [--same--]  moved from ATS's mathbox to main set.mm
18-Aug-11 iotaex    [--same--]  moved from ATS's mathbox to main set.mm
18-Aug-11 iotanul   [--same--]  moved from ATS's mathbox to main set.mm
18-Aug-11 iotaequ   [--same--]  moved from ATS's mathbox to main set.mm
18-Aug-11 iotaval   [--same--]  moved from ATS's mathbox to main set.mm
18-Aug-11 sbeqalb   [--same--]  moved from ATS's mathbox to main set.mm
18-Aug-11 sbceqal   [--same--]  moved from ATS's mathbox to main set.mm
18-Aug-11 eqsbc3    [--same--]  moved from ATS's mathbox to main set.mm
18-Aug-11 19.20ian  [--same--]  moved from ATS's mathbox to main set.mm
17-Aug-11 mpt2g     ovmpt2g
17-Aug-11 mptg      fvmptg
17-Aug-11 bnj1226   imorri      moved from JB's mathbox to main set.mm
17-Aug-11 jad       [--same--]  moved from SF's mathbox to main set.mm
13-Aug-11 ceqsex3v  ---         (RM's mathbox) - obsolete; use ceqsexgv
13-Aug-11 ceqsex3   ---         (RM's mathbox) - obsolete; use ceqsexg
13-Aug-11 ceqsex2v  [--same--]  reformatted to use triple conjunction
13-Aug-11 ceqsex2   [--same--]  reformatted to use triple conjunction
 9-Aug-11 feq2d     [--same--]  moved from PC's mathbox to main set.mm
 9-Aug-11 bnj1456   snssd       moved from JB's mathbox to main set.mm
 9-Aug-11 snssd     [--same--]  moved from JGH's mathbox to main set.mm
 9-Aug-11 fbaslim   [--same--]  moved from JGH's mathbox to main set.mm
 9-Aug-11 fbfgss    [--same--]  moved from JGH's mathbox to main set.mm
 9-Aug-11 fgid      [--same--]  moved from JGH's mathbox to main set.mm
 9-Aug-11 cnpnei    [--same--]  moved from JGH's mathbox to main set.mm
 9-Aug-11 limfilss  [--same--]  moved from JGH's mathbox to main set.mm
 9-Aug-11 fbfgfmeq  [--same--]  moved from JGH's mathbox to main set.mm
 9-Aug-11 fgss      [--same--]  moved from JGH's mathbox to main set.mm
 9-Aug-11 filmapss  [--same--]  moved from JGH's mathbox to main set.mm
18-Jul-11 ompfl3    3anibar
18-Jul-11 rexeq12d  rexeqbidv
18-Jul-11 raleq12d  raleqbidv
18-Jul-11 ralbieq1dv ---        obsolete; use raleqbidv
18-Jul-11 exan2     exsimpl
 8-Jul-11 brab1     [--same--]  changed set var "y" to class var "A"
29-Jun-11 exan2     [--same--]  moved from RM's mathbox to main set.mm
29-Jun-11 wfal      [--same--]  moved from AH's mathbox to main set.mm
29-Jun-11 df-fal    [--same--]  moved from AH's mathbox to main set.mm
29-Jun-11 wtru      [--same--]  moved from AH's mathbox to main set.mm
29-Jun-11 df-tru    [--same--]  moved from AH's mathbox to main set.mm
29-Jun-11 mptfn     [--same--]  moved from SF's mathbox to main set.mm
29-Jun-11 rnmpt     [--same--]  moved from SF's mathbox to main set.mm
29-Jun-11 dford2    [--same--]  moved from SF's mathbox to main set.mm
29-Jun-11 funsngxx  funsng      changed "e. _V" to "e. C", "e. D" in antec.
29-Jun-11 bnj94     funsngxx    moved from JB's mathbox to main set.mm
29-Jun-11 bnj928    fnsn        moved from JB's mathbox to main set.mm
29-Jun-11 bnj1257   eleq2s      moved from JB's mathbox to main set.mm
29-Jun-11 bnj1495   funeqi      moved from JB's mathbox to main set.mm
29-Jun-11 erdisj2   [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 cass      [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 df-ass    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 isass     [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 isexid    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 ismgm     [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 opidon    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 rngopid   [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 opidon2   [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 isexid2   [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 exidu1    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 idrval    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 iorlid    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 cmpidelt  [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 csem      [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 df-sgr    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 smgrpismgm [--same--] moved from FL's mathbox to main set.mm
29-Jun-11 issmgrp   [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 smgrpmgm  [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 smgrpass  [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 cmnd      [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 df-mnd    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 mndissmgrp [--same--] moved from FL's mathbox to main set.mm
29-Jun-11 mndisexid [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 mndismgm  [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 mndmgmid  [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 ismnd     [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 ismnd1    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 relrng    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 rngn0     [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 rngmgmbs4 [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 rnplrnml0 [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 rnplrnml2 [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 rnplrnml  [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 unmnd     [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 fora1     [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 fora2     [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 fora      [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 uridm     [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 uridm1    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 zerab     [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 zerab2    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 on1el3    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 on1el4    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 on1el6    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 ring1cl   [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 uznzr     [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 isdivrngo  [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 zrdivrng  [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 dvrunz    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 clmgm     [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 uridm2    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 grpmnd    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 iscom2    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 ismnd2    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 difeq12   [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 setwoe    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 sfseqeq   [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 opreq123d [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 oprabvaligg [--same--] moved from FL's mathbox to main set.mm
29-Jun-11 cexid     [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 df-exid   [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 cmagm     [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 df-mgm    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 ccm2      [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 df-com2   [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 cfld      [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 df-fld    [--same--]  moved from FL's mathbox to main set.mm
29-Jun-11 imp5a     [--same--]  moved from JGH's mathbox to main set.mm
29-Jun-11 iccleub   [--same--]  moved from JGH's mathbox to main set.mm
29-Jun-11 expl      [--same--]  moved from JGH's mathbox to main set.mm
29-Jun-11 ghomid    [--same--]  moved from PC's mathbox to main set.mm
29-Jun-11 ghomlin   [--same--]  moved from PC's mathbox to main set.mm
28-Jun-11 infmssuzle [--same--] removed redundant antecedent S =/= (/)
22-Jun-11 xpeq12    [--same--]  moved from FL's mathbox to main set.mm
22-Jun-11 xpeq12i   [--same--]  moved from FL's mathbox to main set.mm
21-Jun-11 axnul2    axnulALT
25-Mar-11 ntunte    inuni
 8-Mar-11 ssxp      xpss12
 8-Mar-11 bepart    elelpwi
 8-Mar-11 intprd    intprg      changed "e. _V" to "e. C", "e. D" in antec.
 2-Mar-11 equnamo   n0moeu
21-Feb-11 muln0b    mulne0b
21-Feb-11 muln0i    mulne0i
16-Jan-11 grothinf  grothomex
13-Jan-11 hbequid   hbequid2
10-Dec-10 nexnoti   nexr
31-Oct-10 reu3xxx   reu6
31-Oct-10 reu6      reu3
31-Oct-10 reu3      reu3xxx
30-Oct-10 eusn      euabsn
26-Oct-10 raaan     raaanv
18-Oct-10 ---       ---         changed math symbol from "C=" to "C_"
 3-Oct-10 ---       ---         added variables E, e, I, i, V
 3-Oct-10 ---       ---         changed math symbol from "P~" to "~P"
 3-Oct-10 ---       ---         changed math symbol from "H~" to "~H"
 3-Oct-10 ---       ---         changed math symbol from "(_" to "C="
 3-Oct-10 ---       ---         changed math symbol from "(." to "C."
 3-Oct-10 ---       ---         changed math symbol from "C." to "_C"
 3-Oct-10 ---       ---         changed math symbol from "E" to "_E"
 3-Oct-10 ---       ---         changed math symbol from "e" to "_e"
 3-Oct-10 ---       ---         changed math symbol from "I" to "_I"
 3-Oct-10 ---       ---         changed math symbol from "i" to "_i"
 3-Oct-10 ---       ---         changed math symbol from "V" to "_V"
24-Jul-09 sandbox   mathbox
12-Jun-09 mulge0    [--same--]  rearranged antecedent
12-Jun-09 mulgt0    [--same--]  rearranged antecedent
12-May-09 ---       ---         changed math symbol from "ZZ_>" to "ZZ>="
 2-May-09 snsspr    snsspr1
 2-May-09 axpow     zfpow
 2-May-09 axac      zfac
 2-May-09 axun      zfun
27-Apr-09 pm4.22    bitr
24-Apr-09 axinf     zfinf
24-Apr-09 zfinf     zfinf2
 2-Apr-09 infmssuzle [--same--] changed -. S = (/) to S =/= (/)
23-Mar-09 eqfnfvf   ---         obsolete; use eqfnfvf2 instead
23-Mar-09 ffnoprval ffnoprv
23-Mar-09 eqfnoprval eqfnoprv
23-Mar-09 fnoprval  fnoprv
23-Mar-09 foprval   foprv
23-Mar-09 oprvalres oprvres
23-Mar-09 oprssoprval oprssoprv
23-Mar-09 fnrnoprval fnrnoprv
23-Mar-09 fooprval  fooprv
23-Mar-09 fnoprvalrn fnoprvrn
23-Mar-09 oprvalelrn oprvelrn
23-Mar-09 oprvalconst2 oprvconst2
23-Mar-09 oprvalex  oprvex
23-Mar-09 symgoprval symgoprv
23-Mar-09 fnoprvalrn2 fnoprvrn2
22-Mar-09 icoshf    icoshft
 8-Mar-09 nnont     nnon
 7-Mar-09 eluzsubii eluzsubi
 7-Mar-09 eluzaddii eluzaddi
 7-Mar-09 divexp    expdiv
 7-Mar-09 recexp    exprec
 7-Mar-09 ---       ---         changed math symbol from "ZZ>" to "ZZ_>"
27-Feb-09 lediv23   [--same--]  rearranged antecedent
27-Feb-09 ltdiv23   [--same--]  rearranged antecedent
 3-Jan-09 muln0     mulne0
 3-Jan-09 vne0      vn0
 3-Jan-09 n0        neq0
 3-Jan-09 ne0       n0
 3-Jan-09 ssne0     ssn0
 3-Jan-09 onne0     onn0
 3-Jan-09 dmsnne0   dmsnn0
 3-Jan-09 rnsnne0   rnsnn0
 3-Jan-09 1ne0      1n0
 3-Jan-09 metne0    metn0
 3-Jan-09 blne0     bln0
 2-Jan-08 flrecl    reflcl
30-Dec-08 letrdi    letrd
30-Dec-08 lelttrdi  lelttrd
30-Dec-08 ltletrdi  ltletrd
30-Dec-08 lttrdi    lttrd
29-Dec-08 hbnegi    hbneg
29-Dec-08 hbnegdi   hbnegd
29-Dec-08 hbsumi    hbsum
29-Dec-08 hbsum1i   hbsum1
28-Dec-08 negnei    negne0i
28-Dec-08 negne0i   negne0bi
28-Dec-08 lemul2    [--same--]  rearranged antecedent
28-Dec-08 lemul1    [--same--]  rearranged antecedent
28-Dec-08 ltmul2    [--same--]  rearranged antecedent
28-Dec-08 ltmul1    [--same--]  rearranged antecedent
28-Dec-08 ecdmn0    [--same--]  changed -. ... = to =/=
27-Dec-08 divdiv24  [--same--]  rearranged antecedent
27-Dec-08 divdiv13  [--same--]  rearranged antecedent
27-Dec-08 divadddiv [--same--]  rearranged antecedent
27-Dec-08 divdivdiv [--same--]  rearranged antecedent
27-Dec-08 recndi    recnd
27-Dec-08 divdivmul divdiv1
27-Dec-08 divdiv23  [--same--]  rearranged antecedent
27-Dec-08 dmsnsn0   ---         obsolete; use the more general dmsn0el
25-Dec-08 div12     [--same--]  rearranged antecedent
25-Dec-08 div13     [--same--]  rearranged antecedent
25-Dec-08 div23     [--same--]  rearranged antecedent
25-Dec-08 expm1     expm1t
25-Dec-08 divmuldiv [--same--]  rearranged antecedent
25-Dec-08 recexp    [--same--]  rearranged antecedent
25-Dec-08 expne0i   [--same--]  rearranged antecedent
25-Dec-08 expsub    [--same--]  rearranged antecedent
25-Dec-08 divexp    [--same--]  rearranged antecedent
21-Dec-08 imaun2    imaundir
21-Dec-08 imaun     imaundi
19-Dec-08 sbhyp     ---         obsolete; use sbhypf
19-Dec-08 opelcog   opelco2g
18-Dec-08 fsumspl   fsumsplit
18-Dec-08 fsum0spl  fsum0split
18-Dec-08 fsumshf   fsumshft
18-Dec-08 fsumcons  fsumconst
18-Dec-08 dmco2     dmco
17-Dec-08 ---       ---         the math token "Base" was changed to "BaseSet"
17-Dec-08 ssxpr     ---         obsolete; use ssxpb
17-Dec-08 nicodraw  ---         obsolete; use nic-ax
17-Dec-08 nicodmpraw ---        obsolete; use nic-mp
17-Dec-08 3exbi     3exbii
17-Dec-08 relssdr   relssdmrn
16-Dec-08 dfoprab4  dfoprab5s
16-Dec-08 dfoprab5  dfoprab4s
16-Dec-08 dffxxx    dff2
16-Dec-08 dff4      dff3
16-Dec-08 dff3      dff4
16-Dec-08 dff4      dffxxx
16-Dec-08 dffunmo   dffun6
16-Dec-08 dffun6    dffun7
16-Dec-08 dffun7    dffun8
16-Dec-08 dffun8    dffun9
16-Dec-08 dffunmof  dffun6f
16-Dec-08 fnopabfv  dffn5
16-Dec-08 fnforn    dffn4
16-Dec-08 fnfrn     dffn3
16-Dec-08 fnf       dffn2
16-Dec-08 f1fvf     dff13f
16-Dec-08 f1fv      dff13
16-Dec-08 f11       dff12
16-Dec-08 f1ofv     dff1o6
16-Dec-08 f1o5      dff1o5
16-Dec-08 f1o4      dff1o4
16-Dec-08 f1o3      dff1o3
16-Dec-08 f1o2      dff1o2
15-Dec-08 pm4.2d    biidd
15-Dec-08 pm4.2     biid
15-Dec-08 pm4.1     con34b
15-Dec-08 bi2.15    con1b
15-Dec-08 bi2.03    con2b
15-Dec-08 a3d       con4d
15-Dec-08 a3i       con4i
13-Dec-08 2climnni  2climnn
13-Dec-08 2climnn0i 2climnn0
12-Dec-08 reeftlclti reeftlcl
12-Dec-08 eftlclti  eftlcl
12-Dec-08 eftlexti  eftlex
12-Dec-08 fnsmnti   arisumi
12-Dec-08 nn0le2msqti nn0le2msqi
12-Dec-08 reccnvi   reccnv
12-Dec-08 expcnvi   expcnv
11-Dec-08 isummulc1i isummulc1
11-Dec-08 iserzgt0i iserzgt0
11-Dec-08 isumreclti isumrecl
11-Dec-08 isumclti  isumcl
11-Dec-08 isumnn0nni isumnn0nn
11-Dec-08 isum1pi   isum1p
11-Dec-08 isumnuli  isumnul
11-Dec-08 isumclim5ti isumclim5
11-Dec-08 isumclim4ti isumclim4
11-Dec-08 isumclim3ti isumclim3
11-Dec-08 isumclim2ti isumclim2
11-Dec-08 isumclim2tfi isumclim2f
11-Dec-08 isum1climi isum1clim
11-Dec-08 isumclimti isumclim
11-Dec-08 isumval2ti isumval2
11-Dec-08 isumvalti isumval
11-Dec-08 cvgcmp3ceti cvgcmp3ce
11-Dec-08 iserzcmp0i iserzcmp0
11-Dec-08 iserzcmpi iserzcmp
11-Dec-08 climsqueeze2i climsqueeze2
11-Dec-08 climsqueezei climsqueeze
11-Dec-08 climcmpc1i climcmpc1
11-Dec-08 climcmpi  climcmp
11-Dec-08 iserzmulc1i iserzmulc1
11-Dec-08 iserzexti iserzex
11-Dec-08 clim2serzti clim2serz
11-Dec-08 climsubc2i climsubc2
11-Dec-08 climsubi  climsub
11-Dec-08 climmulc2i climmulc2
11-Dec-08 climmuli  climmul
11-Dec-08 climaddc2i climaddc2
11-Dec-08 climaddc1i climaddc1
11-Dec-08 climaddi  climadd
11-Dec-08 climge0i  climge0
11-Dec-08 climrecli climrecl
11-Dec-08 climreui  climreu
11-Dec-08 climeui   climeu
11-Dec-08 climuniii climunii
11-Dec-08 climunii  climuni
11-Dec-08 clm4ati   clm4a
11-Dec-08 serzmulc1i serzmulc1
11-Dec-08 serzspliti serzsplit
11-Dec-08 serzcmp0i serzcmp0
11-Dec-08 serzcmpi  serzcmp
11-Dec-08 serz1pi   serz1p
11-Dec-08 serzreclti serzrecl
11-Dec-08 serzcl2ti serzcl2
11-Dec-08 ser1clti  ser1cl
11-Dec-08 ser0clti  ser0cl
11-Dec-08 serzclti  serzcl
11-Dec-08 fsum4i    fsum4
11-Dec-08 fsum3i    fsum3
11-Dec-08 fsum2i    fsum2
11-Dec-08 fsum0spli fsum0spl
11-Dec-08 fsumspli  fsumspl
11-Dec-08 serzfsumi serzfsum
11-Dec-08 fsumserz2i fsumserz2
11-Dec-08 fsumserzi fsumserz
11-Dec-08 cvg1ii    cvg1i
11-Dec-08 cvg1i     cvg1
11-Dec-08 seqzres2i seqzres2
11-Dec-08 seqzresi  seqzres
11-Dec-08 seqzresvali seqzresval
11-Dec-08 seqzcli   seqzcl
11-Dec-08 seqzrni   seqzrn
11-Dec-08 seqzrn2i  seqzrn2
11-Dec-08 seqzeqi   seqzeq
11-Dec-08 seqzfveqi seqzfveq
11-Dec-08 seqzval2ti seqzval2
11-Dec-08 seq01i    seq01
11-Dec-08 seq0p1i   seq0p1
11-Dec-08 seq00i    seq00
11-Dec-08 seqzm1i   seqzm1
11-Dec-08 seqzp1i   seqzp1
11-Dec-08 seqz1i    seqz1
11-Dec-08 seq0fni   seq0fn
11-Dec-08 seq1seq0i seq1seq0
11-Dec-08 seq1seq0ti seq1seq01
11-Dec-08 seq1seq02ti seq1seq02
11-Dec-08 seq0seqzi seq0seqz
11-Dec-08 seq1seqzi seq1seqz
11-Dec-08 seqzvalti seqzval
11-Dec-08 seqzfni   seqzfn
11-Dec-08 seqzfval2i seqzfval2
11-Dec-08 seqzfvali seqzfval
11-Dec-08 seq0valti seq0valt
11-Dec-08 seq0fvali seq0fval
11-Dec-08 seq1shftidi seq1shftid
11-Dec-08 shftidti  shftidt
11-Dec-08 shftcan1ti shftcan1
11-Dec-08 shftcan2ti shftcan2
11-Dec-08 shftfi    shftf
11-Dec-08 shftval5ti shftval5
11-Dec-08 shftval4ti shftval4
11-Dec-08 shftval3ti shftval3
11-Dec-08 shftval2ti shftval2
11-Dec-08 shftvalti shftval
11-Dec-08 shftresvalti shftresval
11-Dec-08 shftresi  shftres
11-Dec-08 shftfni   shftfn
11-Dec-08 shftfvali shftfval
11-Dec-08 seq1resi  seq1res
11-Dec-08 seq1cl2i  seq1cl2
11-Dec-08 seq1cli   seq1cl
11-Dec-08 seq1f2i   seq1f2
11-Dec-08 seq1fi    seq1f
11-Dec-08 seq1rni   seq1rn
11-Dec-08 seq1rn2i  seq1rn2
11-Dec-08 seq1fni   seq1fn
11-Dec-08 seq1m1i   seq1m1
11-Dec-08 seq1p1i   seq1p1
11-Dec-08 seq11i    seq11
11-Dec-08 seq1val2i seq1val2
11-Dec-08 seq1vali  seq1val
11-Dec-08 seq1rvali seq1rval
11-Dec-08 uznegi    uzneg
 9-Dec-08 nvelv     vprc
 9-Dec-08 inelv     iprc
 9-Dec-08 fipr      fiprc
 9-Dec-08 ecqs      [--same--]  eliminated redundant hypothesis A e. _V
18-Nov-08 ---       ---         See mmnotes.txt entry of 18-Nov-2008
18-Nov-08 cdavalt   cdaval
18-Nov-08 cdaval    cdavali
18-Nov-08 unbnnt    unbnn3
18-Nov-08 frsuct    frsuc
18-Nov-08 fr0t      fr0g
18-Nov-08 rdg0t     rdg0g
18-Nov-08 ssonunit  ssonuni
18-Nov-08 ssonuni   ssonunii
18-Nov-08 eqtr3t    eqtr3
18-Nov-08 eqtr2t    eqtr2
18-Nov-08 eqtrt     eqtr
18-Nov-08 3eqtr4r   3eqtr4ri
18-Nov-08 3eqtr3r   3eqtr3ri
18-Nov-08 3eqtr2r   3eqtr2ri
18-Nov-08 3eqtr4r   3eqtr4ri
18-Nov-08 3eqtr3r   3eqtr3ri
18-Nov-08 3bitr3r   3bitr3ri
18-Nov-08 3bitr4r   3bitr4ri
18-Nov-08 3bitr2r   3bitr2ri
18-Nov-08 biimpr    biimpri
18-Nov-08 biimp     biimpi
18-Nov-08 impbi     impbii
18-Nov-08 ---       ---         See mmnotes.txt entry of 17-Nov-2008
17-Nov-08 ---       ---         Remember that substitutions are
17-Nov-08 ---       ---         made in _reverse_ order.
17-Nov-08 efi4pt    efi4p
17-Nov-08 resin4pt  resin4p
17-Nov-08 recos4pt  recos4p
17-Nov-08 ef4pt     ef4p
17-Nov-08 addclt    addcl
17-Nov-08 readdclt  readdcl
17-Nov-08 mulclt    mulcl
17-Nov-08 remulclt  remulcl
17-Nov-08 addcomt   addcom
17-Nov-08 mulcomt   mulcom
17-Nov-08 addasst   addass
17-Nov-08 mulasst   mulass
17-Nov-08 adddit    adddi
17-Nov-08 addid1t   addid1
17-Nov-08 mulid1t   mulid1
17-Nov-08 recnt     recn
17-Nov-08 adddirt   adddir
17-Nov-08 addid2t   addid2
17-Nov-08 add12t    add12
17-Nov-08 add23t    add23
17-Nov-08 add4t     add4
17-Nov-08 add42t    add42
17-Nov-08 cnegext   cnegex
17-Nov-08 cnegextlem1 cnegexlem1
17-Nov-08 cnegextlem2 cnegexlem2
17-Nov-08 cnegextlem3 cnegexlem3
17-Nov-08 addcant   addcan
17-Nov-08 addcan2t  addcan2
17-Nov-08 subvalt   subval
17-Nov-08 subclt    subcl
17-Nov-08 negclt    negcl
17-Nov-08 subaddt   subadd
17-Nov-08 subsub23t subsub23
17-Nov-08 pncan3t   pncan3
17-Nov-08 negidt    negid
17-Nov-08 negsubt   negsub
17-Nov-08 addsubasst addsubass
17-Nov-08 addsubt   addsub
17-Nov-08 subadd23t subadd23
17-Nov-08 addsub12t addsub12
17-Nov-08 2addsubt  2addsub
17-Nov-08 negnegt   negneg
17-Nov-08 subnegt   subneg
17-Nov-08 subidt    subid
17-Nov-08 subid1t   subid1
17-Nov-08 pncant    pncan
17-Nov-08 pncan2t   pncan2
17-Nov-08 npcant    npcan
17-Nov-08 npncant   npncan
17-Nov-08 nppcant   nppcan
17-Nov-08 subcan2t  subcan2
17-Nov-08 subeq0t   subeq0
17-Nov-08 neg11t    neg11
17-Nov-08 negcon1t  negcon1
17-Nov-08 negcon2t  negcon2
17-Nov-08 subcant   subcan
17-Nov-08 mulid2t   mulid2
17-Nov-08 mul12t    mul12
17-Nov-08 mul23t    mul23
17-Nov-08 mul4t     mul4
17-Nov-08 muladdt   muladd
17-Nov-08 muladd11t muladd11
17-Nov-08 subdit    subdi
17-Nov-08 subdirt   subdir
17-Nov-08 renegclt  renegcl
17-Nov-08 resubclt  resubcl
17-Nov-08 mul01t    mul01
17-Nov-08 mul02t    mul02
17-Nov-08 mulneg1t  mulneg1
17-Nov-08 mulneg2t  mulneg2
17-Nov-08 mulneg12t mulneg12
17-Nov-08 mul2negt  mul2neg
17-Nov-08 negdit    negdi
17-Nov-08 negdi2t   negdi2
17-Nov-08 negsubdit negsubdi
17-Nov-08 negsubdi2t negsubdi2
17-Nov-08 neg2subt  neg2sub
17-Nov-08 submul2t  submul2
17-Nov-08 subsub2t  subsub2
17-Nov-08 subsubt   subsub
17-Nov-08 subsub3t  subsub3
17-Nov-08 subsub4t  subsub4
17-Nov-08 sub23t    sub23
17-Nov-08 nnncant   nnncan
17-Nov-08 nnncan1t  nnncan1
17-Nov-08 nnncan2t  nnncan2
17-Nov-08 nncant    nncan
17-Nov-08 nppcan2t  nppcan2
17-Nov-08 mulm1t    mulm1
17-Nov-08 addsub4t  addsub4
17-Nov-08 subadd4t  subadd4
17-Nov-08 sub4t     sub4
17-Nov-08 mulsubt   mulsub
17-Nov-08 pnpcant   pnpcan
17-Nov-08 pnpcan2t  pnpcan2
17-Nov-08 pnncant   pnncan
17-Nov-08 ppncant   ppncan
17-Nov-08 ltxrt     ltxr
17-Nov-08 rexrt     rexr
17-Nov-08 ltxrltt   ltxrlt
17-Nov-08 xrlenltt  xrlenlt
17-Nov-08 xrltnlet  xrltnle
17-Nov-08 lttrt     lttr
17-Nov-08 mulgt0t   mulgt0
17-Nov-08 lenltt    lenlt
17-Nov-08 ltnlet    ltnle
17-Nov-08 lttri2t   lttri2
17-Nov-08 lttri3t   lttri3
17-Nov-08 lttri4t   lttri4
17-Nov-08 ltnet     ltne
17-Nov-08 letri3t   letri3
17-Nov-08 leloet    leloe
17-Nov-08 eqleltt   eqlelt
17-Nov-08 ltlet     ltle
17-Nov-08 leltnet   leltne
17-Nov-08 ltlent    ltlen
17-Nov-08 lelttrt   lelttr
17-Nov-08 ltletrt   ltletr
17-Nov-08 letrt     letr
17-Nov-08 ltnrt     ltnr
17-Nov-08 leidt     leid
17-Nov-08 ltnsymt   ltnsym
17-Nov-08 ltnsym2t  ltnsym2
17-Nov-08 renepnft  renepnf
17-Nov-08 renemnft  renemnf
17-Nov-08 xrltnrt   xrltnr
17-Nov-08 ltpnft    ltpnf
17-Nov-08 mnfltt    mnflt
17-Nov-08 mnfltxrt  mnfltxr
17-Nov-08 pnfnltt   pnfnlt
17-Nov-08 nltmnft   nltmnf
17-Nov-08 pnfget    pnfge
17-Nov-08 mnflet    mnfle
17-Nov-08 xrltnsymt xrltnsym
17-Nov-08 xrltnsym2t xrltnsym2
17-Nov-08 xrlttrit  xrlttri
17-Nov-08 xrlttrt   xrlttr
17-Nov-08 xrlttri2t xrlttri2
17-Nov-08 xrlttri3t xrlttri3
17-Nov-08 xrleloet  xrleloe
17-Nov-08 xrleltnet xrleltne
17-Nov-08 xrltlet   xrltle
17-Nov-08 xrleidt   xrleid
17-Nov-08 xrletrit  xrletri
17-Nov-08 xrlelttrt xrlelttr
17-Nov-08 xrltletrt xrltletr
17-Nov-08 xrletrt   xrletr
17-Nov-08 xrltnet   xrltne
17-Nov-08 nltpnftt  nltpnft
17-Nov-08 ngtmnftt  ngtmnft
17-Nov-08 xrrebndt  xrrebnd
17-Nov-08 xrret     xrre
17-Nov-08 xrre2t    xrre2
17-Nov-08 eqlet     eqle
17-Nov-08 msqgt0t   msqgt0
17-Nov-08 msqge0t   msqge0
17-Nov-08 gt0ne0t   gt0ne0
17-Nov-08 ne0gt0t   ne0gt0
17-Nov-08 letrit    letric
17-Nov-08 lelttrit  lelttric
17-Nov-08 ltadd1t   ltadd1
17-Nov-08 ltadd2t   ltadd2
17-Nov-08 leadd1t   leadd1
17-Nov-08 leadd2t   leadd2
17-Nov-08 ltsubaddt ltsubadd
17-Nov-08 ltsubadd2t ltsubadd2
17-Nov-08 lesubaddt lesubadd
17-Nov-08 lesubadd2t lesubadd2
17-Nov-08 ltaddsubt ltaddsub
17-Nov-08 ltaddsub2t ltaddsub2
17-Nov-08 leaddsubt leaddsub
17-Nov-08 leaddsub2t leaddsub2
17-Nov-08 sublet    suble
17-Nov-08 lesubt    lesub
17-Nov-08 ltsub23t  ltsub23
17-Nov-08 ltsub13t  ltsub13
17-Nov-08 lt2addt   lt2add
17-Nov-08 le2addt   le2add
17-Nov-08 ltleaddt  ltleadd
17-Nov-08 leltaddt  leltadd
17-Nov-08 addgt0t   addgt0
17-Nov-08 addgegt0t addgegt0
17-Nov-08 addgtge0t addgtge0
17-Nov-08 addge0t   addge0
17-Nov-08 ltaddpost ltaddpos
17-Nov-08 ltaddpos2t ltaddpos2
17-Nov-08 ltsubpost ltsubpos
17-Nov-08 posdift   posdif
17-Nov-08 ltnegt    ltneg
17-Nov-08 ltnegcon1t ltnegcon1
17-Nov-08 lenegt    leneg
17-Nov-08 lenegcon1t lenegcon1
17-Nov-08 lenegcon2t lenegcon2
17-Nov-08 lesub1t   lesub1
17-Nov-08 lesub2t   lesub2
17-Nov-08 ltsub1t   ltsub1
17-Nov-08 ltsub2t   ltsub2
17-Nov-08 lt0neg1t  lt0neg1
17-Nov-08 lt0neg2t  lt0neg2
17-Nov-08 le0neg1t  le0neg1
17-Nov-08 le0neg2t  le0neg2
17-Nov-08 addge01t  addge01
17-Nov-08 addge02t  addge02
17-Nov-08 subge0t   subge0
17-Nov-08 suble0t   suble0
17-Nov-08 subge02t  subge02
17-Nov-08 lesub0t   lesub0
17-Nov-08 mulge0t   mulge0
17-Nov-08 recext    recex
17-Nov-08 mulcant   mulcan
17-Nov-08 mulcan2t  mulcan2
17-Nov-08 mul0ort   mul0or
17-Nov-08 muln0bt   mulne0b
17-Nov-08 muln0t    muln0
17-Nov-08 muleqaddt muleqadd
17-Nov-08 divmult   divmul
17-Nov-08 divmul2t  divmul2
17-Nov-08 divmul3t  divmul3
17-Nov-08 divclt    divcl
17-Nov-08 recclt    reccl
17-Nov-08 divcan1t  divcan1
17-Nov-08 divcan2t  divcan2
17-Nov-08 divne0bt  divne0b
17-Nov-08 divne0t   divne0
17-Nov-08 recne0t   recne0
17-Nov-08 recidt    recid
17-Nov-08 recid2t   recid2
17-Nov-08 divrect   divrec
17-Nov-08 divrec2t  divrec2
17-Nov-08 divasst   divass
17-Nov-08 div23t    div23
17-Nov-08 div13t    div13
17-Nov-08 div12t    div12
17-Nov-08 divdirt   divdir
17-Nov-08 divcan3t  divcan3
17-Nov-08 divcan4t  divcan4
17-Nov-08 div11t    div11
17-Nov-08 dividt    divid
17-Nov-08 div0t     div0
17-Nov-08 diveq0t   diveq0
17-Nov-08 div1t     div1
17-Nov-08 divnegt   divneg
17-Nov-08 divsubdirt divsubdir
17-Nov-08 recrect   recrec
17-Nov-08 rec11rt   rec11r
17-Nov-08 divmuldivt divmuldiv
17-Nov-08 divcan5t  divcan5
17-Nov-08 divmul13t divmul13
17-Nov-08 divmul24t divmul24
17-Nov-08 divadddivt divadddiv
17-Nov-08 divdivdivt divdivdiv
17-Nov-08 recdivt   recdiv
17-Nov-08 divcan6t  divcan6
17-Nov-08 divdiv23t divdiv23
17-Nov-08 divdivmult divdivmul
17-Nov-08 recdiv2t  recdiv2
17-Nov-08 conjmult  conjmul
17-Nov-08 redivclt  redivcl
17-Nov-08 rerecclt  rereccl
17-Nov-08 eqnegt    eqneg
17-Nov-08 negeq0t   negeq0
17-Nov-08 ltp1t     ltp1
17-Nov-08 lep1t     lep1
17-Nov-08 ltm1t     ltm1
17-Nov-08 letrp1t   letrp1
17-Nov-08 p1let     p1le
17-Nov-08 prodgt0t  prodgt0
17-Nov-08 prodgt02t prodgt02
17-Nov-08 prodge0t  prodge0
17-Nov-08 prodge02t prodge02
17-Nov-08 ltmul1t   ltmul1
17-Nov-08 ltmul2t   ltmul2
17-Nov-08 lemul1t   lemul1
17-Nov-08 lemul2t   lemul2
17-Nov-08 lemul1it  lemul1a
17-Nov-08 lemul2it  lemul2a
17-Nov-08 ltmul12it ltmul12a
17-Nov-08 lemul12ait lemul12b
17-Nov-08 lemul12it lemul12a
17-Nov-08 mulgt1t   mulgt1
17-Nov-08 ltmulgt11t ltmulgt11
17-Nov-08 ltmulgt12t ltmulgt12
17-Nov-08 lemulge11t lemulge11
17-Nov-08 ltdiv1t   ltdiv1
17-Nov-08 lediv1t   lediv1
17-Nov-08 gt0divt   gt0div
17-Nov-08 ge0divt   ge0div
17-Nov-08 divgt0t   divgt0
17-Nov-08 divge0t   divge0
17-Nov-08 recgt0t   recgt0
17-Nov-08 ltmuldivt ltmuldiv
17-Nov-08 ltmuldiv2t ltmuldiv2
17-Nov-08 ltdivmult ltdivmul
17-Nov-08 ledivmult ledivmul
17-Nov-08 ltdivmul2t ltdivmul2
17-Nov-08 lt2mul2divt lt2mul2div
17-Nov-08 ledivmul2t ledivmul2
17-Nov-08 lemuldivt lemuldiv
17-Nov-08 lemuldiv2t lemuldiv2
17-Nov-08 ltrect    ltrec
17-Nov-08 lerect    lerec
17-Nov-08 lt2msqt   lt2msq
17-Nov-08 ltdiv2OLDt   ltdiv2OLD
17-Nov-08 ltrec1t   ltrec1
17-Nov-08 lerec2t   lerec2
17-Nov-08 ledivdivt ledivdiv
17-Nov-08 lediv2t   lediv2
17-Nov-08 ltdiv23t  ltdiv23
17-Nov-08 lediv23t  lediv23
17-Nov-08 lediv12it lediv12a
17-Nov-08 lediv2it  lediv2a
17-Nov-08 reclt1t   reclt1
17-Nov-08 recgt1t   recgt1
17-Nov-08 recgt1it  recgt1i
17-Nov-08 recrecltt recreclt
17-Nov-08 le2msqt   le2msq
17-Nov-08 ledivp1t  ledivp1
17-Nov-08 xrmaxltt  xrmaxlt
17-Nov-08 xrltmint  xrltmin
17-Nov-08 maxlet    maxle
17-Nov-08 lemint    lemin
17-Nov-08 maxltt    maxlt
17-Nov-08 ltmint    ltmin
17-Nov-08 nnret     nnre
17-Nov-08 nncnt     nncn
17-Nov-08 nnaddclt  nnaddcl
17-Nov-08 nnmulclt  nnmulcl
17-Nov-08 nn2get    nn2ge
17-Nov-08 nnge1t    nnge1
17-Nov-08 nngt1ne1t nngt1ne1
17-Nov-08 nnle1eq1t nnle1eq1
17-Nov-08 nngt0t    nngt0
17-Nov-08 nnne0t    nnne0
17-Nov-08 nnrecret  nnrecre
17-Nov-08 nnrecgt0t nnrecgt0
17-Nov-08 nnleltp1t nnleltp1
17-Nov-08 nnltp1let nnltp1le
17-Nov-08 nnsubt    nnsub
17-Nov-08 nnaddm1clt nnaddm1cl
17-Nov-08 nndivt    nndiv
17-Nov-08 nndivtrt  nndivtr
17-Nov-08 2timest   2times
17-Nov-08 times2t   times2
17-Nov-08 halfclt   halfcl
17-Nov-08 rehalfclt rehalfcl
17-Nov-08 half0t    half0
17-Nov-08 halfpost  halfpos
17-Nov-08 halfpos2t halfpos2
17-Nov-08 halfnneg2t halfnneg2
17-Nov-08 2halvest  2halves
17-Nov-08 halfaddsubt halfaddsub
17-Nov-08 lt2halvest lt2halves
17-Nov-08 avglet    avgle
17-Nov-08 rpret     rpre
17-Nov-08 rpcnt     rpcn
17-Nov-08 rpgt0t    rpgt0
17-Nov-08 rpge0t    rpge0
17-Nov-08 rpregt0t  rpregt0
17-Nov-08 rpne0t    rpne0
17-Nov-08 rprene0t  rprene0
17-Nov-08 rpcnne0t  rpcnne0
17-Nov-08 rpaddclt  rpaddcl
17-Nov-08 rpmulclt  rpmulcl
17-Nov-08 rpdivclt  rpdivcl
17-Nov-08 rerpdivclt rerpdivcl
17-Nov-08 rpnegt    rpneg
17-Nov-08 nnreclt   nnrecl
17-Nov-08 nnnn0t    nnnn0
17-Nov-08 nn0ret    nn0re
17-Nov-08 nn0cnt    nn0cn
17-Nov-08 nn0ge0t   nn0ge0
17-Nov-08 nn0le0eq0t nn0le0eq0
17-Nov-08 nn0addclt nn0addcl
17-Nov-08 nn0mulclt nn0mulcl
17-Nov-08 nnnn0addclt nnnn0addcl
17-Nov-08 nn0nnaddclt nn0nnaddcl
17-Nov-08 nn0ltp1let nn0ltp1le
17-Nov-08 nn0leltp1t nn0leltp1
17-Nov-08 nn0ltlem1t nn0ltlem1
17-Nov-08 nn0addge1t nn0addge1
17-Nov-08 nn0addge2t nn0addge2
17-Nov-08 zret      zre
17-Nov-08 zcnt      zcn
17-Nov-08 nnzt      nnz
17-Nov-08 nn0zt     nn0z
17-Nov-08 znnnlt1t  znnnlt1
17-Nov-08 nn0subt   nn0sub
17-Nov-08 nn0sub2t  nn0sub2
17-Nov-08 znegclt   znegcl
17-Nov-08 zaddclt   zaddcl
17-Nov-08 zsubclt   zsubcl
17-Nov-08 zrevaddclt zrevaddcl
17-Nov-08 nn0p1nnt  nn0p1nn
17-Nov-08 nnm1nn0t  nnm1nn0
17-Nov-08 znnsubt   znnsub
17-Nov-08 znn0subt  znn0sub
17-Nov-08 znn0sub2t znn0sub2
17-Nov-08 zmulclt   zmulcl
17-Nov-08 zltp1let  zltp1le
17-Nov-08 zleltp1t  zleltp1
17-Nov-08 zlem1ltt  zlem1lt
17-Nov-08 zltlem1t  zltlem1
17-Nov-08 nn0lem1ltt nn0lem1lt
17-Nov-08 nnlem1ltt nnlem1lt
17-Nov-08 nnltlem1t nnltlem1
17-Nov-08 zdivt     zdiv
17-Nov-08 zdivaddt  zdivadd
17-Nov-08 zdivmult  zdivmul
17-Nov-08 z2get     z2ge
17-Nov-08 zextlet   zextle
17-Nov-08 zextltt   zextlt
17-Nov-08 recnzt    recnz
17-Nov-08 btwnnzt   btwnnz
17-Nov-08 gtndivt   gtndiv
17-Nov-08 primet    prime
17-Nov-08 nneot     nneo
17-Nov-08 zeot      zeo
17-Nov-08 qret      qre
17-Nov-08 zqt       zq
17-Nov-08 nnqt      nnq
17-Nov-08 qcnt      qcn
17-Nov-08 qaddclt   qaddcl
17-Nov-08 qnegclt   qnegcl
17-Nov-08 qmulclt   qmulcl
17-Nov-08 qsubclt   qsubcl
17-Nov-08 qrecclt   qreccl
17-Nov-08 qdivclt   qdivcl
17-Nov-08 qrevaddclt qrevaddcl
17-Nov-08 nnrecqt   nnrecq
17-Nov-08 irraddt   irradd
17-Nov-08 irrmult   irrmul
17-Nov-08 flvalt    flval
17-Nov-08 flclt     flcl
17-Nov-08 flreclt   flrecl
17-Nov-08 flleltt   fllelt
17-Nov-08 fllet     flle
17-Nov-08 flltp1t   flltp1
17-Nov-08 fraclt1t  fraclt1
17-Nov-08 fracge0t  fracge0
17-Nov-08 flget     flge
17-Nov-08 flltt     fllt
17-Nov-08 flidt     flid
17-Nov-08 flidmt    flidm
17-Nov-08 flidzt    flidz
17-Nov-08 flwordit  flwordi
17-Nov-08 flval2t   flval2
17-Nov-08 flval3t   flval3
17-Nov-08 flbit     flbi
17-Nov-08 flbi2t    flbi2
17-Nov-08 flge0nn0t flge0nn0
17-Nov-08 flge1nnt  flge1nn
17-Nov-08 fladdzt   fladdz
17-Nov-08 btwnzge0t btwnzge0
17-Nov-08 flhalft   flhalf
17-Nov-08 ceiclt    ceicl
17-Nov-08 ceiget    ceige
17-Nov-08 ceim1lt   ceim1l
17-Nov-08 ceilet    ceile
17-Nov-08 fldivt    fldiv
17-Nov-08 fldiv2t   fldiv2
17-Nov-08 modvalt   modval
17-Nov-08 modclt    modcl
17-Nov-08 modge0t   modge0
17-Nov-08 modltt    modlt
17-Nov-08 modfract  modfrac
17-Nov-08 flmodt    flmod
17-Nov-08 modcyct   modcyc
17-Nov-08 modcyc2t  modcyc2
17-Nov-08 modadd1t  modadd1
17-Nov-08 modmul1t  modmul1
17-Nov-08 moddit    moddi
17-Nov-08 modirrt   modirr
17-Nov-08 ioovalt   iooval
17-Nov-08 iooval2t  iooval2
17-Nov-08 ioo0t     ioo0
17-Nov-08 ioon0t    ioon0
17-Nov-08 iooint    iooin
17-Nov-08 iocvalt   iocval
17-Nov-08 icovalt   icoval
17-Nov-08 iccvalt   iccval
17-Nov-08 elioo1t   elioo1
17-Nov-08 elioo2t   elioo2
17-Nov-08 elioc1t   elioc1
17-Nov-08 elico1t   elico1
17-Nov-08 elicc1t   elicc1
17-Nov-08 elioo5t   elioo5
17-Nov-08 eliooret  elioore
17-Nov-08 eliooxrt  eliooxr
17-Nov-08 eliooordt eliooord
17-Nov-08 elioc2t   elioc2
17-Nov-08 elico2t   elico2
17-Nov-08 elicc2t   elicc2
17-Nov-08 iooshft   iooshf
17-Nov-08 iccssret  iccssre
17-Nov-08 lbicc2t   lbicc2
17-Nov-08 ubicc2t   ubicc2
17-Nov-08 ioonegt   iooneg
17-Nov-08 iccnegt   iccneg
17-Nov-08 icoshft   icoshf
17-Nov-08 ioojoint  ioojoin
17-Nov-08 uzvalt    uzval
17-Nov-08 eluz1t    eluz1
17-Nov-08 eluz2t    eluz2
17-Nov-08 eluzt     eluz
17-Nov-08 uzidt     uzid
17-Nov-08 uznegit   uznegi
17-Nov-08 uz11t     uz11
17-Nov-08 eluzp1m1t eluzp1m1
17-Nov-08 eluzp1lt  eluzp1l
17-Nov-08 eluzp1p1t eluzp1p1
17-Nov-08 uzaddclt  uzaddcl
17-Nov-08 fzvalt    fzval
17-Nov-08 elfz1t    elfz1
17-Nov-08 elfzt     elfz
17-Nov-08 elfz2t    elfz2
17-Nov-08 elfz5t    elfz5
17-Nov-08 elfz4t    elfz4
17-Nov-08 eluzfzt   eluzfz
17-Nov-08 elfzuz3t  elfzuz3
17-Nov-08 elfzuz2t  elfzuz2
17-Nov-08 eluzfz1t  eluzfz1
17-Nov-08 elfzuzt   elfzuz
17-Nov-08 eluzfz2t  eluzfz2
17-Nov-08 elfz3t    elfz3
17-Nov-08 elfz1eqt  elfz1eq
17-Nov-08 fznt      fzn
17-Nov-08 elfznnt   elfznn
17-Nov-08 elfz2nn0t elfz2nn0
17-Nov-08 elfznn0t  elfznn0
17-Nov-08 elfz3nn0t elfz3nn0
17-Nov-08 fznn0subt fznn0sub
17-Nov-08 fznn0sub2t fznn0sub2
17-Nov-08 fzaddelt  fzaddel
17-Nov-08 fzsubelt  fzsubel
17-Nov-08 fzoptht   fzopth
17-Nov-08 fzss1t    fzss1
17-Nov-08 fzss2t    fzss2
17-Nov-08 fzssuzt   fzssuz
17-Nov-08 fzssp1t   fzssp1
17-Nov-08 fzp1sst   fzp1ss
17-Nov-08 fzelp1t   fzelp1
17-Nov-08 fzrevt    fzrev
17-Nov-08 fzrev2t   fzrev2
17-Nov-08 fzrev2it  fzrev2i
17-Nov-08 fzrev3t   fzrev3
17-Nov-08 fzrev3it  fzrev3i
17-Nov-08 fznn0t    fznn0
17-Nov-08 fz1sbct   fz1sbc
17-Nov-08 fzneuzt   fzneuz
17-Nov-08 fzrevralt fzrevral
17-Nov-08 fzrevral2t fzrevral2
17-Nov-08 fzrevral3t fzrevral3
17-Nov-08 fzshftralt fzshftral
17-Nov-08 ser1ft    ser1f
17-Nov-08 limsupvalt limsupval
17-Nov-08 limsupclt limsupcl
17-Nov-08 expvalt   expval
17-Nov-08 exp0t     exp0
17-Nov-08 expnnvalt expnnval
17-Nov-08 exp1t     exp1
17-Nov-08 expp1t    expp1
17-Nov-08 nnexpclt  nnexpcl
17-Nov-08 nn0expclt nn0expcl
17-Nov-08 zexpclt   zexpcl
17-Nov-08 qexpclt   qexpcl
17-Nov-08 reexpclt  reexpcl
17-Nov-08 expclt    expcl
17-Nov-08 rpexpclt  rpexpcl
17-Nov-08 expm1t    expm1
17-Nov-08 1expt     1exp
17-Nov-08 expeq0t   expeq0
17-Nov-08 expne0t   expne0
17-Nov-08 expne0it  expne0i
17-Nov-08 expgt0t   expgt0
17-Nov-08 0expt     0exp
17-Nov-08 expge0t   expge0
17-Nov-08 expgt1t   expgt1
17-Nov-08 expge1t   expge1
17-Nov-08 mulexpt   mulexp
17-Nov-08 recexpt   recexp
17-Nov-08 expaddt   expadd
17-Nov-08 expmult   expmul
17-Nov-08 expsubt   expsub
17-Nov-08 divexpt   divexp
17-Nov-08 ltexp2at  ltexp2a
17-Nov-08 expcant   expcan
17-Nov-08 expordt   ltexp2
17-Nov-08 expwordit leexp2a
17-Nov-08 expord2t  ltexp2r
17-Nov-08 expword2it leexp2r
17-Nov-08 expmwordit leexp1a
17-Nov-08 exple1t   exple1
17-Nov-08 expubndt  expubnd
17-Nov-08 sqvalt    sqval
17-Nov-08 sqnegt    sqneg
17-Nov-08 sqclt     sqcl
17-Nov-08 sqmult    sqmul
17-Nov-08 sqeq0t    sqeq0
17-Nov-08 sqne0t    sqne0
17-Nov-08 resqclt   resqcl
17-Nov-08 sqgt0t    sqgt0
17-Nov-08 sq11t     sq11
17-Nov-08 lt2sqt    lt2sq
17-Nov-08 le2sqt    le2sq
17-Nov-08 le2sqit   le2sq2
17-Nov-08 sqge0t    sqge0
17-Nov-08 sqlecant  sqlecan
17-Nov-08 subsqt    subsq
17-Nov-08 subsq2t   subsq2
17-Nov-08 sqeqort   sqeqor
17-Nov-08 binom2t   binom2
17-Nov-08 sq01t     sq01
17-Nov-08 expnbndt  expnbnd
17-Nov-08 expnlbndt expnlbnd
17-Nov-08 expnlbnd2t expnlbnd2
17-Nov-08 nn0opth2t nn0opth2
17-Nov-08 sqrclt    sqrcl
17-Nov-08 sqrgt0t   sqrgt0
17-Nov-08 sqrge0t   sqrge0
17-Nov-08 sqrlet    sqrle
17-Nov-08 sqr00t    sqr00
17-Nov-08 rpsqrclt  rpsqrcl
17-Nov-08 sqrsqt    sqrsq
17-Nov-08 sqsqrt    sqsqr
17-Nov-08 crut      cru
17-Nov-08 revalt    reval
17-Nov-08 imvalt    imval
17-Nov-08 reclt     recl
17-Nov-08 imclt     imcl
17-Nov-08 replimt   replim
17-Nov-08 absvalt   absval
17-Nov-08 cjvalt    cjval
17-Nov-08 cjclt     cjcl
17-Nov-08 crret     crre
17-Nov-08 crimt     crim
17-Nov-08 imret     imre
17-Nov-08 reim0t    reim0
17-Nov-08 reim0bt   reim0b
17-Nov-08 rerebt    rereb
17-Nov-08 mulret    mulre
17-Nov-08 reret     rere
17-Nov-08 cjrebt    cjreb
17-Nov-08 cjmulrclt cjmulrcl
17-Nov-08 cjmulvalt cjmulval
17-Nov-08 cjmulge0t cjmulge0
17-Nov-08 renegt    reneg
17-Nov-08 readdt    readd
17-Nov-08 resubt    resub
17-Nov-08 imnegt    imneg
17-Nov-08 imaddt    imadd
17-Nov-08 imsubt    imsub
17-Nov-08 cjret     cjre
17-Nov-08 cjcjt     cjcj
17-Nov-08 cjaddt    cjadd
17-Nov-08 cjmult    cjmul
17-Nov-08 cjnegt    cjneg
17-Nov-08 addcjt    addcj
17-Nov-08 cjsubt    cjsub
17-Nov-08 cjexpt    cjexp
17-Nov-08 recjt     recj
17-Nov-08 imcjt     imcj
17-Nov-08 cjreimt   cjreim
17-Nov-08 cjreim2t  cjreim2
17-Nov-08 cj11t     cj11
17-Nov-08 cjne0t    cjne0
17-Nov-08 absnegt   absneg
17-Nov-08 absclt    abscl
17-Nov-08 abscjt    abscj
17-Nov-08 absvalsqt absvalsq
17-Nov-08 absvalsq2t absvalsq2
17-Nov-08 sqabsaddt sqabsadd
17-Nov-08 sqabssubt sqabssub
17-Nov-08 absval2t  absval2
17-Nov-08 abs00t    abs00
17-Nov-08 absge0t   absge0
17-Nov-08 absrpclt  absrpcl
17-Nov-08 absreimsqt absreimsq
17-Nov-08 absreimt  absreim
17-Nov-08 absmult   absmul
17-Nov-08 absdivt   absdiv
17-Nov-08 absidt    absid
17-Nov-08 absnidt   absnid
17-Nov-08 leabst    leabs
17-Nov-08 absort    absor
17-Nov-08 absret    absre
17-Nov-08 absresqt  absresq
17-Nov-08 absexpt   absexp
17-Nov-08 absrelet  absrele
17-Nov-08 absimlet  absimle
17-Nov-08 nn0absclt nn0abscl
17-Nov-08 absltt    abslt
17-Nov-08 abslet    absle
17-Nov-08 abssubne0t abssubne0
17-Nov-08 absdifltt absdiflt
17-Nov-08 absdiflet absdifle
17-Nov-08 lenegsqt  lenegsq
17-Nov-08 releabst  releabs
17-Nov-08 cjdivt    cjdiv
17-Nov-08 absidmt   absidm
17-Nov-08 absgt0t   absgt0
17-Nov-08 abssubt   abssub
17-Nov-08 abssubge0t abssubge0
17-Nov-08 abssuble0t abssuble0
17-Nov-08 absmaxt   absmax
17-Nov-08 abstrit   abstri
17-Nov-08 abs3dift  abs3dif
17-Nov-08 abs2dift  abs2dif
17-Nov-08 abs2difabst abs2difabs
17-Nov-08 recant    recan
17-Nov-08 abs3lemt  abs3lem
17-Nov-08 facnnt    facnn
17-Nov-08 facp1t    facp1
17-Nov-08 facnn2t   facnn2
17-Nov-08 facclt    faccl
17-Nov-08 facne0t   facne0
17-Nov-08 facdivt   facdiv
17-Nov-08 facndivt  facndiv
17-Nov-08 facwordit facwordi
17-Nov-08 facavgt   facavg
17-Nov-08 bcvalt    bcval
17-Nov-08 bcval2t   bcval2
17-Nov-08 bcval3t   bcval3
17-Nov-08 bcval4t   bcval4
17-Nov-08 bccmplt   bccmpl
17-Nov-08 bcn0t     bcn0
17-Nov-08 bcnnt     bcnn
17-Nov-08 bcnp11t   bcnp11
17-Nov-08 bcnp1nt   bcnp1n
17-Nov-08 bcpasc2t  bcpasc2
17-Nov-08 bcpasct   bcpasc
17-Nov-08 bccl2t    bccl2
17-Nov-08 bcclt     bccl
17-Nov-08 permnnt   permnn
17-Nov-08 fsumclt   fsumcl
17-Nov-08 fsum0clt  fsum0cl
17-Nov-08 fsumreclt fsumrecl
17-Nov-08 fsumsplit fsumspli
17-Nov-08 fsum0split fsum0spli
17-Nov-08 fsumshft  fsumshf
17-Nov-08 fsumconst fsumcons
17-Nov-08 clmi2at   clmi2a
17-Nov-08 caucvg3t  caucvg3
17-Nov-08 eftclt    eftcl
17-Nov-08 efvalt    efval
17-Nov-08 efclt     efcl
17-Nov-08 reefclt   reefcl
17-Nov-08 efcjt     efcj
17-Nov-08 efaddt    efadd
17-Nov-08 efcant    efcan
17-Nov-08 efne0t    efne0
17-Nov-08 efsubt    efsub
17-Nov-08 efexpt    efexp
17-Nov-08 efnn0valt efnn0val
17-Nov-08 reeftclt  reeftcl
17-Nov-08 eftlubclt eftlubcl
17-Nov-08 efgt0t    efgt0
17-Nov-08 reef11t   reef11
17-Nov-08 eflegeot  eflegeo
17-Nov-08 efm1legeot efm1legeo
17-Nov-08 sinvalt   sinval
17-Nov-08 cosvalt   cosval
17-Nov-08 sinclt    sincl
17-Nov-08 cosclt    coscl
17-Nov-08 resinvalt resinval
17-Nov-08 recosvalt recosval
17-Nov-08 resinclt  resincl
17-Nov-08 recosclt  recoscl
17-Nov-08 sinnegt   sinneg
17-Nov-08 cosnegt   cosneg
17-Nov-08 efivalt   efival
17-Nov-08 efmivalt  efmival
17-Nov-08 efeult    efeul
17-Nov-08 sinaddt   sinadd
17-Nov-08 cosaddt   cosadd
17-Nov-08 sinsubt   sinsub
17-Nov-08 cossubt   cossub
17-Nov-08 addsint   addsin
17-Nov-08 subsint   subsin
17-Nov-08 addcost   addcos
17-Nov-08 subcost   subcos
17-Nov-08 sincossqt sincossq
17-Nov-08 sin2tt    sin2t
17-Nov-08 cos2tt    cos2t
17-Nov-08 cos2tsint cos2tsin
17-Nov-08 sinbndt   sinbnd
17-Nov-08 cosbndt   cosbnd
17-Nov-08 absefit   absefi
17-Nov-08 abseft    absef
17-Nov-08 absefibt  absefib
17-Nov-08 cosh111t  cosh111
17-Nov-08 logclt    logcl
17-Nov-08 relogclt  relogcl
17-Nov-08 eflogt    eflog
17-Nov-08 reeflogt  reeflog
17-Nov-08 logeft    logef
17-Nov-08 relogeft  relogef
17-Nov-08 relogmult relogmul
17-Nov-08 relogdivt relogdiv
17-Nov-08 explogt   explog
17-Nov-08 reexplogt reexplog
17-Nov-08 relogexpt relogexp
17-Nov-08 logltbt   logltb
17-Nov-08 1p1times  1p1timesi
17-Nov-08 2climnn   2climnni
17-Nov-08 2climnn0  2climnn0i
17-Nov-08 2shft     2shfti
17-Nov-08 2times    2timesi
17-Nov-08 abs00     abs00i
17-Nov-08 abs1m     abs1mi
17-Nov-08 abs3dif   abs3difi
17-Nov-08 abscj     abscji
17-Nov-08 abscl     abscli
17-Nov-08 absdivz   absdivzi
17-Nov-08 absef01tlub absef01tlubi
17-Nov-08 absefm1le absefm1lei
17-Nov-08 absge0    absge0i
17-Nov-08 absgt0    absgt0i
17-Nov-08 absid     absidi
17-Nov-08 absle     abslei
17-Nov-08 abslt     abslti
17-Nov-08 absmul    absmuli
17-Nov-08 absneg    absnegi
17-Nov-08 absnid    absnidi
17-Nov-08 absor     absori
17-Nov-08 abspef01tlub abspef01tlubi
17-Nov-08 absre     absrei
17-Nov-08 abssub    abssubi
17-Nov-08 abstri    abstrii
17-Nov-08 absval2   absval2i
17-Nov-08 absvalsq  absvalsqi
17-Nov-08 absvalsq2 absvalsq2i
17-Nov-08 add12     add12i
17-Nov-08 add20     add20i
17-Nov-08 add23     add23i
17-Nov-08 add4      add4i
17-Nov-08 add42     add42i
17-Nov-08 addass    addassi
17-Nov-08 addcan    addcani
17-Nov-08 addcan2   addcan2i
17-Nov-08 addcj     addcji
17-Nov-08 addcl     addcli
17-Nov-08 addcom    addcomi
17-Nov-08 adddi     adddii
17-Nov-08 adddir    adddiri
17-Nov-08 addge0    addge0i
17-Nov-08 addgegt0  addgegt0i
17-Nov-08 addgt0    addgt0i
17-Nov-08 addgt0i   addgt0ii
17-Nov-08 addid1    addid1i
17-Nov-08 addid2    addid2i
17-Nov-08 addsub    addsubi
17-Nov-08 addsub4   addsub4i
17-Nov-08 addsubass addsubassi
17-Nov-08 bcpasc    bcpasci
17-Nov-08 bcpasc2   bcpasc2i
17-Nov-08 binom     binomi
17-Nov-08 binom1p   binom1pi
17-Nov-08 binom2    binom2i
17-Nov-08 binom2a   binom2ai
17-Nov-08 cau2      cau2i
17-Nov-08 cau3      cau3i
17-Nov-08 cau3i     cau3ii
17-Nov-08 cau3ir    cau3iri
17-Nov-08 cau4i     cau4ii
17-Nov-08 cau5      cau5i
17-Nov-08 cau5i     cau5ii
17-Nov-08 caubnd    caubndi
17-Nov-08 caucvg    caucvgi
17-Nov-08 caucvg2   caucvg2i
17-Nov-08 caucvg3   caucvg3i
17-Nov-08 caucvg3a  caucvg3ai
17-Nov-08 cauim     cauimi
17-Nov-08 caure     caurei
17-Nov-08 cbvsum    cbvsumi
17-Nov-08 cjadd     cjaddi
17-Nov-08 cjcj      cjcji
17-Nov-08 cjcl      cjcli
17-Nov-08 cjdiv     cjdivi
17-Nov-08 cjmul     cjmuli
17-Nov-08 cjmulge0  cjmulge0i
17-Nov-08 cjmulrcl  cjmulrcli
17-Nov-08 cjmulval  cjmulvali
17-Nov-08 cjneg     cjnegi
17-Nov-08 cjreb     cjrebi
17-Nov-08 clim2serz clim2serzi
17-Nov-08 clim2serzt clim2serzti
17-Nov-08 climabs   climabsi
17-Nov-08 climabs0  climabs0i
17-Nov-08 climadd   climaddi
17-Nov-08 climaddc  climaddci
17-Nov-08 climaddc1 climaddc1i
17-Nov-08 climaddc2 climaddc2i
17-Nov-08 climcau   climcaui
17-Nov-08 climcj    climcji
17-Nov-08 climcmp   climcmpi
17-Nov-08 climcmpc1 climcmpc1i
17-Nov-08 climconst climconsti
17-Nov-08 climeu    climeui
17-Nov-08 climfnrcl climfnrcli
17-Nov-08 climge0   climge0i
17-Nov-08 climim    climimi
17-Nov-08 climmul   climmuli
17-Nov-08 climmulc  climmulci
17-Nov-08 climmulc2 climmulc2i
17-Nov-08 climre    climrei
17-Nov-08 climrecl  climrecli
17-Nov-08 climres   climresi
17-Nov-08 climreu   climreui
17-Nov-08 climserzle climserzlei
17-Nov-08 climshft  climshfti
17-Nov-08 climshft2 climshft2i
17-Nov-08 climsqueeze climsqueezei
17-Nov-08 climsqueeze2 climsqueeze2i
17-Nov-08 climsub   climsubi
17-Nov-08 climsubc2 climsubc2i
17-Nov-08 climsup   climsupi
17-Nov-08 climub    climubi
17-Nov-08 climubi   climubii
17-Nov-08 climuni   climunii
17-Nov-08 climunii  climuniii
17-Nov-08 climuz0   climuz0i
17-Nov-08 clm0      clm0i
17-Nov-08 clm0i     clm0ii
17-Nov-08 clm0nns   clm0nnsi
17-Nov-08 clm1      clm1i
17-Nov-08 clm2      clm2i
17-Nov-08 clm3      clm3i
17-Nov-08 clm4      clm4i
17-Nov-08 clm4at    clm4ati
17-Nov-08 clm4f     clm4fi
17-Nov-08 clm4le    clm4lei
17-Nov-08 clmi1     clmi1i
17-Nov-08 clmi2     clmi2i
17-Nov-08 clmi2rp   clmi2rpi
17-Nov-08 clmnns    clmnnsi
17-Nov-08 cnegex    cnegexi
17-Nov-08 cosadd    cosaddi
17-Nov-08 crim      crimi
17-Nov-08 crmul     crmuli
17-Nov-08 crne0     crne0i
17-Nov-08 crre      crrei
17-Nov-08 crrecz    crreczi
17-Nov-08 cru       crui
17-Nov-08 cvg1      cvg1i
17-Nov-08 cvg1i     cvg1ii
17-Nov-08 cvg2      cvg2i
17-Nov-08 cvg3      cvg3i
17-Nov-08 cvganuz   cvganuzi
17-Nov-08 cvgcmp    cvgcmpi
17-Nov-08 cvgcmp2   cvgcmp2i
17-Nov-08 cvgcmp2c  cvgcmp2ci
17-Nov-08 cvgcmp3c  cvgcmp3ci
17-Nov-08 cvgcmp3ce cvgcmp3cei
17-Nov-08 cvgcmp3cet cvgcmp3ceti
17-Nov-08 cvgcmpub  cvgcmpubi
17-Nov-08 cvgrat    cvgrati
17-Nov-08 dfef2     dfef2i
17-Nov-08 dfuz      dfuzi
17-Nov-08 div0      div0i
17-Nov-08 div1      div1i
17-Nov-08 div11     div11i
17-Nov-08 div23     div23i
17-Nov-08 divadddiv divadddivi
17-Nov-08 divass    divassi
17-Nov-08 divassz   divasszi
17-Nov-08 divcan1   divcan1i
17-Nov-08 divcan1z  divcan1zi
17-Nov-08 divcan2   divcan2i
17-Nov-08 divcan2z  divcan2zi
17-Nov-08 divcan3   divcan3i
17-Nov-08 divcan3z  divcan3zi
17-Nov-08 divcan4   divcan4i
17-Nov-08 divcan4z  divcan4zi
17-Nov-08 divcl     divcli
17-Nov-08 divclz    divclzi
17-Nov-08 divdir    divdiri
17-Nov-08 divdirz   divdirzi
17-Nov-08 divdiv23  divdiv23i
17-Nov-08 divdiv23z divdiv23zi
17-Nov-08 divdivdiv divdivdivi
17-Nov-08 divge0    divge0i
17-Nov-08 divgt0    divgt0i
17-Nov-08 divgt0i   divgt0ii
17-Nov-08 divgt0i2  divgt0i2i
17-Nov-08 divid     dividi
17-Nov-08 divmul    divmuli
17-Nov-08 divmul13  divmul13i
17-Nov-08 divmuldiv divmuldivi
17-Nov-08 divmulz   divmulzi
17-Nov-08 divne0    divne0i
17-Nov-08 divrec    divreci
17-Nov-08 divrecz   divreczi
17-Nov-08 divval    divvali
17-Nov-08 dsupivth  dsupivthi
17-Nov-08 ef01tlub  ef01tlubi
17-Nov-08 ef1tlub   ef1tlubi
17-Nov-08 ef4p      ef4pi
17-Nov-08 efadd     efaddi
17-Nov-08 efcj      efcji
17-Nov-08 effsumle  effsumlei
17-Nov-08 efge1     efge1i
17-Nov-08 efge1p    efge1pi
17-Nov-08 efgt0     efgt0i
17-Nov-08 efgt1     efgt1i
17-Nov-08 eflegeo   eflegeoi
17-Nov-08 eflt      eflti
17-Nov-08 efltb     efltbi
17-Nov-08 efm1legeo efm1legeoi
17-Nov-08 efm1lim   efm1limi
17-Nov-08 efsep     efsepi
17-Nov-08 eft0val   eft0vali
17-Nov-08 eftabs    eftabsi
17-Nov-08 eftlclt   eftlclti
17-Nov-08 eftlext   eftlexti
17-Nov-08 elcncf1d  elcncf1di
17-Nov-08 elcncf1i  elcncf1ii
17-Nov-08 elfzel2   elfzel2i
17-Nov-08 elrpi     elrpii
17-Nov-08 eluz1     eluz1i
17-Nov-08 eluzaddi  eluzaddii
17-Nov-08 eluzsubi  eluzsubii
17-Nov-08 eqle      eqlei
17-Nov-08 eqneg     eqnegi
17-Nov-08 expcnv    expcnvi
17-Nov-08 fnsmnt    fnsmnti
17-Nov-08 fseqsupub fseqsupubi
17-Nov-08 fsum1     fsum1i
17-Nov-08 fsum1f    fsum1fi
17-Nov-08 fsum2     fsum2i
17-Nov-08 fsum3     fsum3i
17-Nov-08 fsum4     fsum4i
17-Nov-08 fsump1    fsump1i
17-Nov-08 fsump1f   fsump1fi
17-Nov-08 fsumser0f fsumser0fi
17-Nov-08 fsumser1f fsumser1fi
17-Nov-08 fsumserz  fsumserzi
17-Nov-08 fsumserz2 fsumserz2i
17-Nov-08 fsumserzf fsumserzfi
17-Nov-08 fzelp1    fzelp1i
17-Nov-08 geoser    geoseri
17-Nov-08 geosum    geosumi
17-Nov-08 gt0ne0    gt0ne0i
17-Nov-08 gt0ne0i   gt0ne0ii
17-Nov-08 halfpos   halfposi
17-Nov-08 hbneg     hbnegi
17-Nov-08 hbnegd    hbnegdi
17-Nov-08 hbsum     hbsumi
17-Nov-08 hbsum1    hbsum1i
17-Nov-08 icoshftf1oi icoshftf1oii
17-Nov-08 imadd     imaddi
17-Nov-08 imcj      imcji
17-Nov-08 imcl      imcli
17-Nov-08 immul     immuli
17-Nov-08 imneg     imnegi
17-Nov-08 infcvg    infcvgi
17-Nov-08 infcvgaux1 infcvgaux1i
17-Nov-08 infcvgaux2 infcvgaux2i
17-Nov-08 ipcn      ipcni
17-Nov-08 iserzabs  iserzabsi
17-Nov-08 iserzcmp  iserzcmpi
17-Nov-08 iserzcmp0 iserzcmp0i
17-Nov-08 iserzex   iserzexi
17-Nov-08 iserzext  iserzexti
17-Nov-08 iserzgt0  iserzgt0i
17-Nov-08 iserzmulc1 iserzmulc1i
17-Nov-08 iserzshft iserzshfti
17-Nov-08 iserzshft2 iserzshft2i
17-Nov-08 isum0split isum0spliti
17-Nov-08 isum1clim isum1climi
17-Nov-08 isum1p    isum1pi
17-Nov-08 isumclim2t isumclim2ti
17-Nov-08 isumclim2tf isumclim2tfi
17-Nov-08 isumclim3t isumclim3ti
17-Nov-08 isumclim4t isumclim4ti
17-Nov-08 isumclim5t isumclim5ti
17-Nov-08 isumclimt isumclimti
17-Nov-08 isumclimtf isumclimtfi
17-Nov-08 isumclt   isumclti
17-Nov-08 isumcmpi  isumcmpii
17-Nov-08 isummulc1 isummulc1i
17-Nov-08 isummulc1ALT isummulc1iALT
17-Nov-08 isummulc1a isummulc1ai
17-Nov-08 isumnn0nn isumnn0nni
17-Nov-08 isumnn0nna isumnn0nnai
17-Nov-08 isumnul   isumnuli
17-Nov-08 isumreclt isumreclti
17-Nov-08 isumshft  isumshfti
17-Nov-08 isumshft2 isumshft2i
17-Nov-08 isumsplit isumspliti
17-Nov-08 isumval2t isumval2ti
17-Nov-08 isumvalt  isumvalti
17-Nov-08 isumvaltf isumvaltfi
17-Nov-08 isupivth  isupivthi
17-Nov-08 le2add    le2addi
17-Nov-08 le2msq    le2msqi
17-Nov-08 le2sq     le2sqi
17-Nov-08 le2tri3   le2tri3i
17-Nov-08 leabs     leabsi
17-Nov-08 leadd1    leadd1i
17-Nov-08 leadd2    leadd2i
17-Nov-08 lecase    lecasei
17-Nov-08 ledivp1   ledivp1i
17-Nov-08 leid      leidi
17-Nov-08 leloe     leloei
17-Nov-08 lelttr    lelttri
17-Nov-08 lelttrd   lelttrdi
17-Nov-08 lemul1    lemul1i
17-Nov-08 lemul2    lemul2i
17-Nov-08 leneg     lenegi
17-Nov-08 lenegcon1 lenegcon1i
17-Nov-08 lenlt     lenlti
17-Nov-08 lerec     lereci
17-Nov-08 lesub0    lesub0i
17-Nov-08 lesubadd  lesubaddi
17-Nov-08 lesubadd2 lesubadd2i
17-Nov-08 letr      letri
17-Nov-08 letrd     letrdi
17-Nov-08 letri     letrii
17-Nov-08 letri3    letri3i
17-Nov-08 lt2add    lt2addi
17-Nov-08 lt2msq    lt2msqi
17-Nov-08 lt2sq     lt2sqi
17-Nov-08 ltadd1    ltadd1i
17-Nov-08 ltadd2    ltadd2i
17-Nov-08 ltaddpos  ltaddposi
17-Nov-08 ltaddsub  ltaddsubi
17-Nov-08 ltdiv1    ltdiv1i
17-Nov-08 ltdiv1i   ltdiv1ii
17-Nov-08 ltdiv23   ltdiv23i
17-Nov-08 ltdiv23i  ltdiv23ii
17-Nov-08 ltdivp1   ltdivp1i
17-Nov-08 ltle      ltlei
17-Nov-08 ltlei     ltleii
17-Nov-08 ltlen     ltleni
17-Nov-08 ltletr    ltletri
17-Nov-08 ltletrd   ltletrdi
17-Nov-08 ltmul1    ltmul1i
17-Nov-08 ltmul1i   ltmul1ii
17-Nov-08 ltmul2    ltmul2i
17-Nov-08 ltmuldiv  ltmuldivi
17-Nov-08 ltne      ltnei
17-Nov-08 ltneg     ltnegi
17-Nov-08 ltnegcon1 ltnegcon1i
17-Nov-08 ltnegcon2 ltnegcon2i
17-Nov-08 ltnle     ltnlei
17-Nov-08 ltnr      ltnri
17-Nov-08 ltnsym    ltnsymi
17-Nov-08 ltp1      ltp1i
17-Nov-08 ltrec     ltreci
17-Nov-08 ltreci    ltrecii
17-Nov-08 ltsubadd  ltsubaddi
17-Nov-08 ltsubadd2 ltsubadd2i
17-Nov-08 lttr      lttri
17-Nov-08 lttrd     lttrdi
17-Nov-08 lttri2    lttri2i
17-Nov-08 lttri3    lttri3i
17-Nov-08 msq0      msq0i
17-Nov-08 msq11     msq11i
17-Nov-08 msqge0    msqge0i
17-Nov-08 msqgt0    msqgt0i
17-Nov-08 mul01     mul01i
17-Nov-08 mul02     mul02i
17-Nov-08 mul0or    mul0ori
17-Nov-08 mul12     mul12i
17-Nov-08 mul23     mul23i
17-Nov-08 mul2neg   mul2negi
17-Nov-08 mul4      mul4i
17-Nov-08 muladd    muladdi
17-Nov-08 mulass    mulassi
17-Nov-08 mulcan    mulcani
17-Nov-08 mulcant2  mulcant2i
17-Nov-08 mulcl     mulcli
17-Nov-08 mulcom    mulcomi
17-Nov-08 mulge0    mulge0i
17-Nov-08 mulgt0    mulgt0i
17-Nov-08 mulgt0i   mulgt0ii
17-Nov-08 mulid1    mulid1i
17-Nov-08 mulid2    mulid2i
17-Nov-08 mulm1     mulm1i
17-Nov-08 muln0     mulne0i
17-Nov-08 mulneg1   mulneg1i
17-Nov-08 mulneg2   mulneg2i
17-Nov-08 neg11     neg11i
17-Nov-08 negcl     negcli
17-Nov-08 negcon1   negcon1i
17-Nov-08 negcon2   negcon2i
17-Nov-08 negdi     negdii
17-Nov-08 negeu     negeui
17-Nov-08 negfcncf  negfcncfi
17-Nov-08 negid     negidi
17-Nov-08 negn0     negn0i
17-Nov-08 negne0    negne0i
17-Nov-08 negneg    negnegi
17-Nov-08 negreb    negrebi
17-Nov-08 negsub    negsubi
17-Nov-08 negsubdi  negsubdii
17-Nov-08 negsubdi2 negsubdi2i
17-Nov-08 nn0addcl  nn0addcli
17-Nov-08 nn0addge1 nn0addge1i
17-Nov-08 nn0addge2 nn0addge2i
17-Nov-08 nn0cn     nn0cni
17-Nov-08 nn0ge0    nn0ge0i
17-Nov-08 nn0le2msqt nn0le2msqti
17-Nov-08 nn0le2x   nn0le2xi
17-Nov-08 nn0lele2x nn0lele2xi
17-Nov-08 nn0mulcl  nn0mulcli
17-Nov-08 nn0opth   nn0opthi
17-Nov-08 nn0opth2  nn0opth2i
17-Nov-08 nn0re     nn0rei
17-Nov-08 nncn      nncni
17-Nov-08 nneo      nneoi
17-Nov-08 nnesq     nnesqi
17-Nov-08 nngt0     nngt0i
17-Nov-08 nnlesq    nnlesqi
17-Nov-08 nnne0     nnne0i
17-Nov-08 nnnn0     nnnn0i
17-Nov-08 nnre      nnrei
17-Nov-08 nnsqcl    nnsqcli
17-Nov-08 nnsub     nnsubi
17-Nov-08 om2uz0    om2uz0i
17-Nov-08 om2uzf1o  om2uzf1oi
17-Nov-08 om2uziso  om2uzisoi
17-Nov-08 om2uzlt   om2uzlti
17-Nov-08 om2uzlt2  om2uzlt2i
17-Nov-08 om2uzran  om2uzrani
17-Nov-08 om2uzsuc  om2uzsuci
17-Nov-08 om2uzuz   om2uzuzi
17-Nov-08 peano2zd  peano2zd
17-Nov-08 peano5nn  peano5nni
17-Nov-08 peano5uz  peano5uzi
17-Nov-08 peano5uzt peano5uzti
17-Nov-08 pm2.61ltle ltlecasei
17-Nov-08 pncan3    pncan3i
17-Nov-08 pnncan    pnncani
17-Nov-08 posdif    posdifi
17-Nov-08 posex     posexi
17-Nov-08 prodge0   prodge0i
17-Nov-08 prodgt0   prodgt0i
17-Nov-08 readd     readdi
17-Nov-08 readdcl   readdcli
17-Nov-08 rec11     rec11i
17-Nov-08 rec11i    rec11ii
17-Nov-08 reccl     reccli
17-Nov-08 recclz    recclzi
17-Nov-08 reccnv    reccnvi
17-Nov-08 receu     receui
17-Nov-08 recex     recexi
17-Nov-08 recgt0    recgt0i
17-Nov-08 recgt0i   recgt0ii
17-Nov-08 recid     recidi
17-Nov-08 recidz    recidzi
17-Nov-08 recj      recji
17-Nov-08 recl      recli
17-Nov-08 recn      recni
17-Nov-08 recnd     recndi
17-Nov-08 recne0z   recne0zi
17-Nov-08 recrec    recreci
17-Nov-08 recvalz   recvalzi
17-Nov-08 redivcl   redivcli
17-Nov-08 redivclz  redivclzi
17-Nov-08 reef11    reef11i
17-Nov-08 reefcl    reefcli
17-Nov-08 reeftlclt reeftlclti
17-Nov-08 reim0b    reim0bi
17-Nov-08 releabs   releabsi
17-Nov-08 remul     remuli
17-Nov-08 remulcl   remulcli
17-Nov-08 reneg     renegi
17-Nov-08 renegcl   renegcli
17-Nov-08 replim    replimi
17-Nov-08 rereb     rerebi
17-Nov-08 rereccl   rereccli
17-Nov-08 rerecclz  rerecclzi
17-Nov-08 resqcl    resqcli
17-Nov-08 resubcl   resubcli
17-Nov-08 reuunineg reuunineg
17-Nov-08 seq00     seq00i
17-Nov-08 seq01     seq01i
17-Nov-08 seq0fn    seq0fni
17-Nov-08 seq0fval  seq0fvali
17-Nov-08 seq0p1    seq0p1i
17-Nov-08 seq0seqz  seq0seqzi
17-Nov-08 seq0valt  seq0valti
17-Nov-08 seq11     seq11i
17-Nov-08 seq1bnd   seq1bndi
17-Nov-08 seq1cl    seq1cli
17-Nov-08 seq1cl2   seq1cl2i
17-Nov-08 seq1f     seq1fi
17-Nov-08 seq1f2    seq1f2i
17-Nov-08 seq1fn    seq1fni
17-Nov-08 seq1m1    seq1m1i
17-Nov-08 seq1p1    seq1p1i
17-Nov-08 seq1res   seq1resi
17-Nov-08 seq1rn    seq1rni
17-Nov-08 seq1rn2   seq1rn2i
17-Nov-08 seq1rval  seq1rvali
17-Nov-08 seq1seq0  seq1seq0i
17-Nov-08 seq1seq02t seq1seq02ti
17-Nov-08 seq1seq0t seq1seq0ti
17-Nov-08 seq1seqz  seq1seqzi
17-Nov-08 seq1shftid seq1shftidi
17-Nov-08 seq1ub    seq1ubi
17-Nov-08 seq1val   seq1vali
17-Nov-08 seq1val2  seq1val2i
17-Nov-08 seqz1     seqz1i
17-Nov-08 seqzcl    seqzcli
17-Nov-08 seqzeq    seqzeqi
17-Nov-08 seqzfn    seqzfni
17-Nov-08 seqzfval  seqzfvali
17-Nov-08 seqzfval2 seqzfval2i
17-Nov-08 seqzfveq  seqzfveqi
17-Nov-08 seqzm1    seqzm1i
17-Nov-08 seqzp1    seqzp1i
17-Nov-08 seqzres   seqzresi
17-Nov-08 seqzres2  seqzres2i
17-Nov-08 seqzresval seqzresvali
17-Nov-08 seqzrn    seqzrni
17-Nov-08 seqzrn2   seqzrn2i
17-Nov-08 seqzval2t seqzval2ti
17-Nov-08 seqzvalt  seqzvalti
17-Nov-08 ser00     ser00i
17-Nov-08 ser0cj    ser0cji
17-Nov-08 ser0cl1   ser0cl1i
17-Nov-08 ser0clt   ser0clti
17-Nov-08 ser0f     ser0fi
17-Nov-08 ser0mulc  ser0mulci
17-Nov-08 ser0p1    ser0p1i
17-Nov-08 ser11     ser11i
17-Nov-08 ser1absdif ser1absdifi
17-Nov-08 ser1add   ser1addi
17-Nov-08 ser1add2  ser1add2i
17-Nov-08 ser1cl1   ser1cl1i
17-Nov-08 ser1cl2   ser1cl2i
17-Nov-08 ser1clt   ser1clti
17-Nov-08 ser1cmp   ser1cmpi
17-Nov-08 ser1cmp0  ser1cmp0i
17-Nov-08 ser1cmp2  ser1cmp2i
17-Nov-08 ser1const ser1consti
17-Nov-08 ser1f     ser1fi
17-Nov-08 ser1f0    ser1f0i
17-Nov-08 ser1f2    ser1f2i
17-Nov-08 ser1mono  ser1monoi
17-Nov-08 ser1mulc  ser1mulci
17-Nov-08 ser1p1    ser1p1i
17-Nov-08 ser1recl  ser1recli
17-Nov-08 ser1ref   ser1refi
17-Nov-08 ser1ser0  ser1ser0i
17-Nov-08 serz1p    serz1pi
17-Nov-08 serzcj    serzcji
17-Nov-08 serzcl1   serzcl1i
17-Nov-08 serzcl2t  serzcl2ti
17-Nov-08 serzclt   serzclti
17-Nov-08 serzcmp   serzcmpi
17-Nov-08 serzcmp0  serzcmp0i
17-Nov-08 serzf0    serzf0i
17-Nov-08 serzfsum  serzfsumi
17-Nov-08 serzim    serzimi
17-Nov-08 serzmulc  serzmulci
17-Nov-08 serzmulc1 serzmulc1i
17-Nov-08 serzre    serzrei
17-Nov-08 serzreclt serzreclti
17-Nov-08 serzref   serzrefi
17-Nov-08 serzsplit serzspliti
17-Nov-08 shftcan1t shftcan1ti
17-Nov-08 shftcan2t shftcan2ti
17-Nov-08 shftf     shftfi
17-Nov-08 shftfn    shftfni
17-Nov-08 shftfval  shftfvali
17-Nov-08 shftidt   shftidti
17-Nov-08 shftres   shftresi
17-Nov-08 shftresvalt shftresvalti
17-Nov-08 shftval2t shftval2ti
17-Nov-08 shftval3t shftval3ti
17-Nov-08 shftval4t shftval4ti
17-Nov-08 shftval5t shftval5ti
17-Nov-08 shftvalt  shftvalti
17-Nov-08 sinadd    sinaddi
17-Nov-08 sq11      sq11i
17-Nov-08 sqabsadd  sqabsaddi
17-Nov-08 sqabssub  sqabssubi
17-Nov-08 sqcl      sqcli
17-Nov-08 sqdiv     sqdivi
17-Nov-08 sqeq0     sqeq0i
17-Nov-08 sqeqor    sqeqori
17-Nov-08 sqge0     sqge0i
17-Nov-08 sqgt0     sqgt0i
17-Nov-08 sqmul     sqmuli
17-Nov-08 sqr11     sqr11i
17-Nov-08 sqrcl     sqrcli
17-Nov-08 sqreci    sqrecii
17-Nov-08 sqrge0    sqrge0i
17-Nov-08 sqrgt0    sqrgt0i
17-Nov-08 sqrgt0i   sqrgt0ii
17-Nov-08 sqrle     sqrlei
17-Nov-08 sqrlt     sqrlti
17-Nov-08 sqrmsq    sqrmsqi
17-Nov-08 sqrmsq2   sqrmsq2i
17-Nov-08 sqrmul    sqrmuli
17-Nov-08 sqrmuli   sqrmulii
17-Nov-08 sqrsq     sqrsqi
17-Nov-08 sqrth     sqrthi
17-Nov-08 sqsqr     sqsqri
17-Nov-08 sqval     sqvali
17-Nov-08 subadd    subaddi
17-Nov-08 subadd2   subadd2i
17-Nov-08 subaddri  subaddrii
17-Nov-08 subcan    subcani
17-Nov-08 subcan2   subcan2i
17-Nov-08 subcl     subcli
17-Nov-08 subdi     subdii
17-Nov-08 subdir    subdiri
17-Nov-08 subeq0    subeq0i
17-Nov-08 subge0    subge0i
17-Nov-08 subid     subidi
17-Nov-08 subid1    subid1i
17-Nov-08 subneg    subnegi
17-Nov-08 subsq     subsqi
17-Nov-08 subsq0    subsq0i
17-Nov-08 subsub23  subsub23i
17-Nov-08 sumsqne0  sumsqne0i
17-Nov-08 sup3i     sup3ii
17-Nov-08 suprcli   suprclii
17-Nov-08 suprleubi suprleubii
17-Nov-08 suprlubi  suprlubii
17-Nov-08 suprnubi  suprnubii
17-Nov-08 suprubi   suprubii
17-Nov-08 times2    times2i
17-Nov-08 uzinfm    uzinfmi
17-Nov-08 uzrdgfnuz uzrdgfnuzi
17-Nov-08 uzrdgini  uzrdginii
17-Nov-08 uzrdginip1 uzrdginip1i
17-Nov-08 uzrdgsuc  uzrdgsuci
17-Nov-08 uzrdgval  uzrdgvali
17-Nov-08 zre       zrei
17-Nov-08 abs3lem   abs3lemi
17-Nov-08 abs2difabs abs2difabsi
17-Nov-08 abs2dif   abs2difi
17-Nov-08 2basgent  2basgen
17-Nov-08 basgent   basgen
17-Nov-08 basgen2t  basgen2
17-Nov-08 tgss3t    tgss3
17-Nov-08 tgss2t    tgss2
17-Nov-08 tgsst     tgss
17-Nov-08 tgtop11t  tgtop11
17-Nov-08 bastopt   bastop
17-Nov-08 bastop    bastop1
17-Nov-08 tgidmt    tgidm
17-Nov-08 eltop3t   eltop3
17-Nov-08 eltop2t   eltop2
17-Nov-08 eltopt    eltop
17-Nov-08 tgtopt    tgtop
17-Nov-08 topbast   topbas
17-Nov-08 eltg3t    eltg3
17-Nov-08 tgval3t   tgval3
17-Nov-08 tgclt     tgcl
17-Nov-08 unitgt    unitg
17-Nov-08 bastgt    bastg
17-Nov-08 tg2t      tg2
17-Nov-08 tg1t      tg1
17-Nov-08 eltg2t    eltg2
17-Nov-08 eltgt     eltg
17-Nov-08 tgval2t   tgval2
17-Nov-08 tgvalt    tgval
17-Nov-08 basis2t   basis2
17-Nov-08 basis1t   basis1
17-Nov-08 0opnt     0opn
17-Nov-08 inopnt    inopn
17-Nov-08 iunopnt   iunopn
17-Nov-08 uniopnt   uniopn
17-Nov-08 uniopn    uniopn2
17-Nov-08 entrt     entr
17-Nov-08 entr4     entr4i
17-Nov-08 entr3     entr3i
17-Nov-08 entr2     entr2i
17-Nov-08 entr      entri
17-Nov-08 entri     entric
17-Nov-08 rdglimt   rdglim
17-Nov-08 onelpsst  onelpss
17-Nov-08 rdgsuct   rdgsuc
17-Nov-08 on0eqelt  on0eqel
17-Nov-08 onelsst   onelss
17-Nov-08 onsst     onss
17-Nov-08 rdglim    rdglimi
17-Nov-08 rdgsuc    rdgsuci
17-Nov-08 nnon      nnoni
17-Nov-08 onsucss   onsucssi
17-Nov-08 onun      onun2i
17-Nov-08 onssel    onsseli
17-Nov-08 onuninsuc onuninsuci
17-Nov-08 onuniorsuc onuniorsuci
17-Nov-08 onunisuc  onunisuci
17-Nov-08 onsuc     onsuci
17-Nov-08 onelun    oneluni
17-Nov-08 onelin    onelini
17-Nov-08 onssneli2 onssnel2i
17-Nov-08 onelss    onelssi
17-Nov-08 onss      onssi
17-Nov-08 onel      oneli
17-Nov-08 onirr     onirri
17-Nov-08 ontrc     ontrci
17-Nov-08 onord     onordi
17-Nov-08 ---       ---         The *tr inferences were changed to *tri,
17-Nov-08 ---       ---         for consistency with *tr*d
17-Nov-08 bitr      bitri
17-Nov-08 bitr2     bitr2i
17-Nov-08 bitr3     bitr3i
17-Nov-08 bitr4     bitr4i
17-Nov-08 3bitr     3bitri
17-Nov-08 3bitrr    3bitrri
17-Nov-08 3bitr2    3bitr2i
17-Nov-08 3bitr3    3bitr3i
17-Nov-08 3bitr4    3bitr4i
17-Nov-08 3imtr3    3imtr3i
17-Nov-08 3imtr4    3imtr4i
17-Nov-08 eqtr      eqtri
17-Nov-08 eqtr2     eqtr2i
17-Nov-08 eqtr3     eqtr3i
17-Nov-08 eqtr4     eqtr4i
17-Nov-08 3eqtr     3eqtri
17-Nov-08 3eqtrr    3eqtrri
17-Nov-08 3eqtr2    3eqtr2i
17-Nov-08 3eqtr3    3eqtr3i
17-Nov-08 3eqtr4    3eqtr4i
17-Nov-08 eq2tr     eq2tri
17-Nov-08 eqeltr    eqeltri
17-Nov-08 eqeltrr   eqeltrri
17-Nov-08 eleqtr    eleqtri
17-Nov-08 eleqtrr   eleqtrri
17-Nov-08 eqsstr    eqsstri
17-Nov-08 eqsstr3   eqsstr3i
17-Nov-08 sseqtr    sseqtri
17-Nov-08 sseqtr4   sseqtr4i
17-Nov-08 3sstr3    3sstr3i
17-Nov-08 3sstr4    3sstr4i
17-Nov-08 eqbrtr    eqbrtri
17-Nov-08 eqbrtrr   eqbrtrri
17-Nov-08 breqtr    breqtri
17-Nov-08 breqtrr   breqtrri
17-Nov-08 3brtr3    3brtr3i
17-Nov-08 3brtr4    3brtr4i
16-Nov-08 opabsb    opelopabsb
14-Nov-08 zfext2    axext3
14-Nov-08 axext     axext2
14-Nov-08 nega      notnot2
14-Nov-08 negai     notnotri
14-Nov-08 negb      notnot1
14-Nov-08 negbi     notnoti
14-Nov-08 negbii    notbii
14-Nov-08 negbid    notbid
14-Nov-08 pm4.13    notnot
14-Nov-08 pm4.11    notbi
11-Nov-08 divmul3t  [--same--]  rearranged antecedent; renamed variables
11-Nov-08 divmul2t  [--same--]  rearranged antecedent; renamed variables
11-Nov-08 divmult   [--same--]  rearranged antecedent; renamed variables
11-Nov-08 elqsi     [--same--]  changed E. x ( x e. A /\ ...  to E. x e. A ...
11-Nov-08 elqs      [--same--]  changed E. x ( x e. A /\ ...  to E. x e. A ...
 8-Nov-08 indistop  [--same--]  eliminated hypothesis A e. _V
 8-Nov-08 pri2      prid2
 8-Nov-08 pri1      prid1
 7-Nov-08 qdivclt   [--same--]  antecedent changed to use triple conjunction
 6-Nov-08 rcfpfil   [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 rcfpfillem6 [--same--] changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 rcfpfillem5 [--same--] changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 rcfpfillem4 [--same--] changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 rcfpfillem3 [--same--] changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 rcfpfillem2 [--same--] changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 rcfpfillem1 [--same--] changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 fisub     [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 filint2   [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 efilcp    [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 fgsb      [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 fipfil2   [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 sppfi     [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 fiv       [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 df-fi     [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 0fin     [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 ficli     [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 fiiu      [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 abfi      [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 fine      [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 infi1     [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 spfi      [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 fctop     [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 subbas2   [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 subbas    [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 istps5    [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 istps4    [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 istop2g   [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 isfinite  [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 pwfi      [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 pwfilem   [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 iunfi     [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 fofi      [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 fodomfib  [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 fodomfi   [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 abfii5    [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Nov-08 abfii4    [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
31-Sep-08 isfinite1 [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
31-Sep-08 domfi     [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
31-Sep-08 unifi     [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
31-Sep-08 abfii1    [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
31-Sep-08 abfii2    [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
31-Sep-08 abfii3    [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
10-Sep-08 isfinite2 [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 9-Sep-08 fisucdom  [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 7-Sep-08 ominf     [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Sep-08 onfin     [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Sep-08 pssinf    [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 6-Sep-08 divsubdirt [--same--] changed hyp. order
 3-Sep-08 php3      [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 2-Sep-08 fiint     [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
 1-Sep-08 prfi      [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
30-Aug-08 unfi      [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
29-Aug-08 snfi      [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
29-Aug-08 ssnnfi    [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
29-Aug-08 ssfi      [--same--]  changed "E. ... e. _om ... ~~ ..." to "e. Fin"
24-Aug-08 mulcant   [--same--]  changed antecedent order; swapped var. names
24-Aug-08 mulcan2t  [--same--]  changed antecedent order; swapped var. names
24-Aug-08 mulcant2  [--same--]  changed hyp. order; swapped var. names
24-Aug-08 mulcan    [--same--]  changed hyp. order; swapped var. names
23-Aug-08 divcan4t  [--same--]  changed antecedent order; swapped var. names
23-Aug-08 divcan4z  [--same--]  changed hyp. order; swapped var. names
23-Aug-08 divcan3t  [--same--]  changed antecedent order; swapped var. names
23-Aug-08 divcan3z  [--same--]  changed hyp. order; swapped var. names
22-Aug-08 ssnn      ssnnfi
22-Aug-08 divcan4   [--same--]  changed hyp. order; swapped var. names
22-Aug-08 divcan3   [--same--]  changed hyp. order; swapped var. names
21-Aug-08 pm4.2i    biidd
21-Aug-08 divcan2t  [--same--]  changed antecedent order; swapped var. names
21-Aug-08 divcan2z  [--same--]  changed hyp. order; swapped var. names
20-Aug-08 divdirt   [--same--]  changed hyp. order
18-Aug-08 divcan2   [--same--]  changed hyp. order; swapped var. names
18-Aug-08 divcan1t  [--same--]  changed antecedent order; swapped var. names
18-Aug-08 divcan1z  [--same--]  changed hyp. order; swapped var. names
18-Aug-08 divcan1   [--same--]  changed hyp. order; swapped var. names
17-Aug-08 ltmuldiv2t [--same--] changed antecedent grouping
17-Aug-08 ltdivmult [--same--]  changed antecedent grouping
17-Aug-08 ledivmult [--same--]  changed antecedent grouping
17-Aug-08 ltdivmul2t [--same--] changed antecedent grouping
17-Aug-08 ledivmul2t [--same--] changed antecedent grouping
17-Aug-08 lemuldivt [--same--]  changed antecedent grouping
17-Aug-08 lemuldiv2t [--same--] changed antecedent grouping
16-Aug-08 ltmuldivt [--same--]  changed antecedent grouping
15-Aug-08 bii       dfbi1
15-Aug-08 biigb     dfbi1gb
15-Aug-08 bi        dfbi2
15-Aug-08 dfbi      dfbi3
14-Aug-08 lediv1t   [--same--]  changed antecedent grouping
14-Aug-08 ltdiv1t   [--same--]  changed antecedent grouping
10-Jul-08 expne0t   [--same--]  swapped biconditional
10-Jul-08 sq0t      sqeq0t
10-Jul-08 sq00      sqeq0
 7-Jul-08 syl3dan3  syld3an3
 7-Jul-08 syl3dan2  syld3an2
31-May-08 isnvi     [--same--]  eliminated hypotheses G e. V, S e. _V
31-May-08 isnvg     ---         obsolete; use isnv
31-May-08 isvcg     ---         obsolete; use isvc
31-May-08 ideq      [--same--]  eliminated hypothesis A e. _V
31-May-08 ideqg     [--same--]  eliminated first antecedent A e. C
28-May-08 opelxpex  ---         obsolete; use opelxp1
22-May-08 ax9a      ax9
22-May-08 ax9       ax9o
21-May-08 ax6-2     ax6
21-May-08 ax6-3     ax6o
21-May-08 ax-6      ax-6o
21-May-08 ax-5      ax-5o
17-May-08 ax-10     ax-10o
16-May-08 er2       dfer2
16-May-08 er2       dfer2
16-May-08 sb7       dfsb7
13-May-08 cla4e2v   cla42ev
13-May-08 cla4e2gv  cla42egv
12-May-08 a4w1      a4eiv
12-May-08 a4w       a4imev
12-May-08 a4c1      a4imed
12-May-08 a4c       a4ime
12-May-08 a4b1      a4v
12-May-08 a4b       a4imv
12-May-08 a4at      a4imt
12-May-08 a4a       a4im
11-May-08 sbea4     a4sbe
11-May-08 sbia4     a4sbim
11-May-08 sbba4     a4sbbi
 6-May-08 inf4      axinf2
 6-May-08 minfnre   mnfnre
27-Apr-08 sb6y      sb6f
27-Apr-08 sb5y      sb5f
17-Apr-08 sbn2      ---         obsolete; use sbn
17-Apr-08 sbn1      ---         obsolete; use sbn
 9-Apr-08 isvci     [--same--]  weakened hyp from G : ... to dom G = ...
 9-Apr-08 isabli    [--same--]  weakened hyp from G : ... to dom G = ...
 2-Apr-08 19.2      [--same--]  generalized to use 2 set variables
30-Mar-08 grprn     [--same--]  weakened hyp from G : ... to dom G = ...
11-Mar-08 absefimt  absefit
11-Mar-08 axcnre    [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 cnegexlem2 [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 cnegext   [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 recextlem1 [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 recextlem2 [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 recext    [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 crulem    [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 cru       [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 crut      [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 crne0     [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 crmul     [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 crrecz    [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 creur     [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 creui     [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 rimul     [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 df-re     [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 df-im     [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 revalt    [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 imvalt    [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 replimt   [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 df-cj     [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 cjvalt    [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 replim    [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 crret     [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 crimt     [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 crre      [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 crim      [--same--]  changed 'x. i' to 'i x.'
11-Mar-08 efit4pt   efi4pt      changed 'x. i' to 'i x.'
10-Mar-08 fabex     [--same--]  added 3rd hypothesis
 6-Mar-08 pm2.36    [--same--]  corrected to match Principia Mathematica
 6-Mar-08 pm2.37    [--same--]  corrected to match Principia Mathematica
 6-Mar-08 pm2.38    [--same--]  corrected to match Principia Mathematica
 2-Mar-08 csbiet    csbiegft
 2-Mar-08 csbie2g   csbie2t
 2-Mar-08 vsbcint   sbhyp
 2-Mar-08 cbvsbcv   cbvralsv
 1-Mar-08 sbcrex    sbcrexg
 1-Mar-08 sbcral    sbcralg
 1-Mar-08 19.23g    19.23t
 1-Mar-08 19.21g    19.21t
 1-Mar-08 minusex   negex
 1-Mar-08 negext    cnegext
 1-Mar-08 negex     cnegex
29-Feb-08 hbneq     hbne
29-Feb-08 hbne      hbn
29-Feb-08 csbiet    csbiegft
29-Feb-08 sbciet    sbciegft
29-Feb-08 elabt     elabgt
29-Feb-08 vtoclefg  vtoclegft
23-Feb-08 sqdif0    subsq0
23-Feb-08 binom2a   ---         obsolete; use subsq
12-Feb-08 cnhl      [--same--]  added hypothesis to assign vector space to var
 9-Feb-08 oneirr    onirr
 9-Feb-08 ordeirr   ordirr
 9-Feb-08 eirr      elirr
 9-Feb-08 eirrv     elirrv
29-Jan-08 oibabs    [--same--]  swapped sides of biconditional
24-Jan-08 cos2t     ---         obsolete; use cos2tt
20-Jan-08 ffvrni    ffvelrni
20-Jan-08 ffvrn     ffvelrn
20-Jan-08 fnfvrn    fnfvelrn
20-Jan-08 fvrn      fvelrn
20-Jan-08 fvelrn    fvelrnb
18-Jan-08 arch      [--same--]  changed x to n, changing $f hypothesis order
18-Jan-08 cos1lem4  8th4div3
18-Jan-08 eftlex    ---         obsolete; use eftlext
18-Jan-08 sin2t     ---         obsolete; use sin2tt
15-Jan-08 explt1t   expord2t
15-Jan-08 eft0vallem eft0val
15-Jan-08 effsumlelem ---       obsolete; use reeftclt
15-Jan-08 eftvallem eftval
15-Jan-08 efpartex  eftlex
15-Jan-08 efcltlem4 efseq0ex
15-Jan-08 efcltlem2a ef0lem
15-Jan-08 dfef2lem  dfef2
15-Jan-08 efcltlem3 efseq1ex
15-Jan-08 eftcltlem eftclt
15-Jan-08 eftabslem eftabs
12-Jan-08 rgen2xxx  rgen2a
12-Jan-08 rgen2a    rgen2
12-Jan-08 rgen2     rgen2xxx
12-Jan-08 cnbn      [--same--]  added hypothesis to assign vector space to var
12-Jan-08 cnph      [--same--]  added hypothesis to assign vector space to var
12-Jan-08 cnims     [--same--]  reorganized hypotheses and conclusion
14-Jan-08 rgen3     [--same--]  generalized for 3 different class variables
12-Jan-08 cnnv      [--same--]  added hypothesis to assign vector space to var
10-Jan-08 zneo      [--same--]  changed -. ... = to =/=
 3-Jan-08 ax7-467   ax467to7
 3-Jan-08 ax6-467   ax467to6
 3-Jan-08 ax4-467   ax467to4
 3-Jan-08 ax6-67    ax67to6
 3-Jan-08 ax7-67    ax67to7
 3-Jan-08 ax4-46    ax46to4
 3-Jan-08 ax5-46    ax46to5
29-Dec-07 eftvallem [--same--]  added hypothesis
22-Dec-07 zfnuleu   [--same--]  added $e hypothesis to remove ax-nul dependency
 8-Dec-07 supxrre2  [--same--]  changed -. ... = to =/=
23-Nov-07 sub4      addsub4
23-Nov-07 sub4t     addsub4t
17-Nov-07 climres   [--same--]  generalized antecedent from A e. CC to A e. B
12-Nov-07 climle    climcmp
11-Nov-07 eqneqi    necon3bii
11-Nov-07 eqneqd    necon3bid
10-Nov-07 ser0cj    [--same--]  weakened hypotheses
 9-Nov-07 ser1cj    ---         obsolete; derive from serzcj (as in ser0cj)
 9-Nov-07 ser0re    ---         obsolete; derive from serzre (as in ser0cj)
 9-Nov-07 ser1re    ---         obsolete; derive from serzre (as in ser0cj)
 8-Nov-07 mp3dan    mp3dan23
23-Oct-07 pm3.27bd  simprbi
23-Oct-07 pm3.26bd  simplbi
16-Oct-07 expbndt   expubndt
16-Oct-07 expge1t   [--same--]  strengthened from N e. NN to N e. NN0
12-Oct-07 kmlem15   [--same--]  changed -. ... = to =/=
12-Oct-07 kmlem14   [--same--]  changed -. ... = to =/=
12-Oct-07 kmlem13   [--same--]  changed -. ... = to =/=
12-Oct-07 kmlem10   [--same--]  changed -. ... = to =/=
12-Oct-07 kmlem9    [--same--]  changed -. ... = to =/=
12-Oct-07 kmlem7    [--same--]  changed -. ... = to =/=
12-Oct-07 kmlem5    [--same--]  changed -. ... = to =/=
12-Oct-07 kmlem4    [--same--]  changed -. ... = to =/=
12-Oct-07 kmlem3    [--same--]  changed -. ... = to =/=
 5-Oct-07 1open     topopn
 5-Oct-07 1clsd     topcld
 3-Oct-07 intss3    ntrss3
 2-Oct-07 isopen3   isopn3
 2-Oct-07 isopen2   isopn2
 2-Oct-07 cmclsopen cmclsopn
 2-Oct-07 snclsd    sncld
 2-Oct-07 clsdlp    cldlp
 2-Oct-07 isclsd3   iscld3
 2-Oct-07 cmntrclsd cmntrcld
 2-Oct-07 clsclsd   clscld
 2-Oct-07 clsdcls   cldcls
 2-Oct-07 unclsd    uncld
 2-Oct-07 intclsd   intcld
 2-Oct-07 iinclsd   iincld
 2-Oct-07 0clsd     0cld
 2-Oct-07 openclsd  opncld
 2-Oct-07 clsdopen  cldopn
 2-Oct-07 clsdss    cldss
 2-Oct-07 isclsd2   iscld2
 2-Oct-07 isclsd    iscld
 2-Oct-07 clsdval   cldval
 2-Oct-07 df-clsd   df-cld
 2-Oct-07 isopn2    isopn4
28-Sep-07 ---       ---         changed math symbol from "floor" to "|_"
26-Sep-07 ser0cl    ser0cl1
26-Sep-07 ser1cl    ser1cl1
25-Sep-07 ser1re2   ser1re
25-Sep-07 ser1re    ser1ref
23-Sep-07 df-fac    [--same--]  swapped arguments of union
23-Sep-07 seqzrnx   seqzrn
23-Sep-07 seqzrn    seqzrn2
23-Sep-07 seqzrn2   seqzrnx
23-Sep-07 seq1rnx   seq1rn
23-Sep-07 seq1rn    seq1rn2
23-Sep-07 seq1rn2   seq1rnx
17-Sep-07 pm2.21nd  pm2.24d
17-Sep-07 pm2.21ni  pm2.24i
16-Sep-07 dvelimf2  dvelimfALT
 8-Sep-07 lemul2it  [--same--]  rearranged antecedent
 8-Sep-07 lemul1it  [--same--]  rearranged antecedent
 7-Sep-07 0vval     0vfval
 4-Sep-07 ---       ---         Many changes after df-ms, described in the
                                  4-Sep-2007 entry of
                                  us.metamath.org/mpeuni/mmnotes.txt
 4-Sep-07 elssab    ---         obsolete; use elssabg
 4-Sep-07 nvc       nvvc
 4-Sep-07 ---       ---         changed math symbol from "Met" to "MetSp"
 4-Sep-07 ---       ---         changed math symbol from "CMet" to "CMetSp"
25-Aug-07 fopabco   fopabcos
21-Aug-07 xrltnet   [--same--]  changed -. A = B to B =/= A; triple conjunction
21-Aug-07 lttri2    [--same--]  changed -. A = B to A =/= B
21-Aug-07 lttri2t   [--same--]  changed -. A = B to A =/= B
15-Aug-07 sbccsbg   sbccsb2g
11-Aug-07 recdivt   [--same--]  rearranged antecedent
 9-Aug-07 funopabex2g opabex2g
 9-Aug-07 funopabex2 opabex2
 9-Aug-07 funopabex opabex
 9-Aug-07 cnco      [--same--]  swapped 2nd & 3rd args in 1st triple conj
 6-Aug-07 ---       ---         changed "ncv" to "nv" in the labels of:
                                  cncv df-ncv ncvss ncvrel ncvop ncvvop
                                  isncvg isncvi ncvi ncvv ncvgcl
                                  ncvscl ncvf ncvcl ncvcli ncvdm ncvs
                                  ncvm1 ncvdif ncvpi ncvz0 ncvz ncvtri
                                  ncvabs ncvge0 cnncv cnncv0 elimncvu
                                  ncvnd phncv bnncv hlncv hilncv
 4-Aug-07 subval    ---         obsolete; use subvalt
31-Jul-07 divge0t   [--same--]  rearranged antecedent
31-Jul-07 divgt0t   [--same--]  rearranged antecedent
31-Jul-07 ltne      [--same--]  changed -. A = B to B =/= A
31-Jul-07 ltnet     [--same--]  changed -. A = B to B =/= A; triple conjunction
31-Jul-07 ltlen     [--same--]  changed -. A = B to B =/= A
31-Jul-07 ltlent    [--same--]  changed -. A = B to B =/= A
22-Jul-07 xrleltnet [--same--]  changed -. A = B to B =/= A
20-Jul-07 nngt1ne1t [--same--]  changed -. A = 1 to A =/= 1
18-Jul-07 leltnet   [--same--]  changed -. A = B to B =/= A
15-Ju1-07 zornx     zorn
15-Ju1-07 zorn      zorn2
15-Ju1-07 zorn2     zornx
18-Jun-07 caucvglem2 [--same--]  changed -. S = (/) to S =/= (/)
17-Jun-07 seq1ublem [--same--]  changed -. ... = (/) to =/= (/)
17-Jun-07 suppr     supexpr
17-Jun-07 ruclem33  [--same--]  changed -. ... = (/) to =/= (/)
16-Jun-07 ltrec1t   [--same--]  rearranged antecedent
15-Jun-07 lerec2t   [--same--]  rearranged antecedent
 3-Jun-07 nordeq    [--same--]  changed -. A = B to A =/= B
 3-Jun-07 xpsndisj  [--same--]  changed -. A = B to A =/= B
 2-Jun-07 peano3    [--same--]  changed -. A = (/) to A =/= (/)
 2-Jun-07 disjsn2   [--same--]  changed -. A = B to A =/= B
 2-Jun-07 fun2ssres [--same--]  antecedent changed to use triple conjunction
 2-Jun-07 onelpsst  [--same--]  changed -. A = B to A =/= B
 1-Jun-07 ordelssne [--same--]  changed -. A = B to A =/= B
 1-Jun-07 suprleubi [--same--]  changed -. A = (/) to A =/= (/)
31-May-07 suprnubi  [--same--]  changed -. A = (/) to A =/= (/)
30-Mar-07 onssmin   [--same--]  changed -. A = (/) to A =/= (/)
29-May-07 suprlub   [--same--]  changed -. A = (/) to A =/= (/)
29-May-07 funssfv   [--same--]  antecedent changed to use triple conjunction
29-May-07 limuni3   [--same--]  changed -. A = (/) to A =/= (/)
29-May-07 ordge1n0  [--same--]  changed -. A = (/) to A =/= (/)
28-May-07 onmindif2 [--same--]  changed -. A = (/) to A =/= (/)
28-May-07 suprleub  [--same--]  changed -. A = (/) to A =/= (/)
28-May-07 tz7.7     [--same--]  changed -. B = A to B =/= A
27-May-07 nnullss   [--same--]  changed -. ... = (/) to =/= (/)
27-May-07 supxrre2  [--same--]  changed -. A = (/) to A =/= (/)
27-May-07 fodomfib  [--same--]  changed -. A = (/) to A =/= (/)
26-May-07 supxrre1  [--same--]  changed -. A = (/) to A =/= (/)
24-May-07 supxrgtmnf [--same--]  changed -. A = (/) to A =/= (/)
23-May-07 ltmsqt    ---         obsolete; use msqgt0t
23-May-07 msqgt0    [--same--]  changed -. A = (/) to A =/= (/)
22-May-07 supxrbnd  [--same--]  changed -. A = (/) to A =/= (/)
21-May-07 suprnub   [--same--]  changed -. A = (/) to A =/= (/)
21-May-07 19.3r     ---         obsolete; use 19.3
21-May-07 19.9rv    ---         obsolete; use 19.9v
20-May-07 19.9r     ---         obsolete; use 19.9
17-May-07 iunn0     [--same--]  changed -. ... = (/) to =/= (/)
17-May-07 iinon     [--same--]  changed -. A = (/) to A =/= (/)
17-May-07 map0      [--same--]  changed -. B = (/) to B =/= (/)
16-May-07 infmrcl   [--same--]  changed -. A = (/) to A =/= (/)
16-May-07 suprub    [--same--]  changed -. A = (/) to A =/= (/)
16-May-07 suprcli   [--same--]  changed -. A = (/) to A =/= (/)
16-May-07 suprubi   [--same--]  changed -. A = (/) to A =/= (/)
16-May-07 suprlubi  [--same--]  changed -. A = (/) to A =/= (/)
14-May-07 sup3i     [--same--]  changed -. A = (/) to A =/= (/)
13-May-07 kmlemxx   kmlem8      changed -. ... = (/) to =/= (/)
13-May-07 kmlem8    kmlem9
13-May-07 kmlem9    kmlem10
13-May-07 kmlem10   kmlem11
13-May-07 kmlem11   kmlem12     changed -. ... = to =/=
13-May-07 kmlem12   kmlem13     changed -. ... = to =/=
13-May-07 kmlem13   kmlemxx
13-May-07 supxrre   [--same--]  changed -. A = (/) to A =/= (/)
13-May-07 infmsup   [--same--]  changed -. A = (/) to A =/= (/)
13-May-07 suprcl    [--same--]  changed -. A = (/) to A =/= (/)
12-May-07 kmlem1    [--same--]  changed -. ... = to =/=
12-May-07 kmlem3    [--same--]  changed -. ... = to =/=
12-May-07 kmlem6    [--same--]  changed -. ... = to =/=
12-May-07 kmlem7    [--same--]  changed -. ... = to =/=
11-May-07 infm3     [--same--]  changed -. A = (/) to A =/= (/)
11-May-07 sup3      [--same--]  changed -. A = (/) to A =/= (/)
10-May-07 oneqmin   [--same--]  changed -. B = (/) to B =/= (/)
10-May-07 infmssuzcl [--same--]  changed -. S = (/) to S =/= (/)
 5-May-07 xpexr2    [--same--]  changed -. ... = (/) to =/= (/)
 5-May-07 tz7.49c   [--same--]  changed -. ... = to =/=
 4-May-07 tz7.49    [--same--]  changed -. ... = to =/=
 4-May-07 funimass2 [--same--]  conjoined antecedents in hypothesis
 3-May-07 ac4c      [--same--]  changed -. x = (/) to x =/= (/)
30-Apr-07 aceq6b    [--same--]  changed -. z = (/) to z =/= (/)
30-Apr-07 disjpss   [--same--]  changed -. B = (/) to B =/= (/)
30-Apr-07 infxpidmlem10 [--same--]  changed -. g = (/) to g =/= (/)
30-Apr-07 1ne0      [--same--]  changed -. 1o = (/) to 1o =/= (/)
30-Apr-07 ac5b      [--same--]  changed -. x = (/) to x =/= (/)
30-Apr-07 aceq6a    [--same--]  changed -. z = (/) to z =/= (/)
30-Apr-07 on0eln0   [--same--]  changed -. A = (/) to A =/= (/)
28-Apr-07 tz7.2     [--same--]  changed -. B = A to B =/= A; triple conjunction
25-Apr-07 ac5       [--same--]  changed -. x = (/) to x =/= (/)
23-Apr-07 ac4       [--same--]  changed -. z = (/) to z =/= (/)
22-Apr-07 ac8       [--same--]  changed -. ... = to =/=
22-Apr-07 uzwo2     [--same--]  changed -. S = (/) to S =/= (/)
21-Apr-07 aceq5     [--same--]  changed -. ... = to =/=
21-Apr-07 epfrc     [--same--]  -. B = (/) to B =/= (/); triple conjunction
20-Apr-07 dfepfr    [--same--]  changed -. x = (/) to x =/= (/)
19-Apr-07 xpnz      [--same--]  changed -. ... = (/) to =/= (/)
18-Apr-07 ltexprlem1 [--same--]  changed -. C = (/) to C =/= (/)
17-Apr-07 uzwo      [--same--]  changed -. S = (/) to S =/= (/)
17-Apr-07 aceq4     [--same--]  changed -. z = (/) to z =/= (/)
17-Apr-07 prn0      [--same--]  changed -. A = (/) to A =/= (/)
15-Apr-07 elni      [--same--]  changed -. A = (/) to A =/= (/)
14-Apr-07 aceq3lem  [--same--]  changed -. z = (/) to z =/= (/)
14-Apr-07 aceq3     [--same--]  changed -. z = (/) to z =/= (/)
13-Apr-07 tpnz      [--same--]  changed -. ... = (/) to =/= (/)
13-Apr-07 0nep0     [--same--]  changed -. (/) = { (/) } to (/) =/= { (/) }
12-Apr-07 1cn       ax1cn
12-Apr-07 ax1re     1re
11-Apr-07 zfreg     [--same--]  changed -. A = (/) to A =/= (/)
11-Apr-07 zfreg2    [--same--]  changed -. A = (/) to A =/= (/)
11-Apr-07 inf1      [--same--]  changed -. x = (/) to x =/= (/)
11-Apr-07 inf2      [--same--]  changed -. x = (/) to x =/= (/)
11-Apr-07 zorn2lem6  [--same--]  changed -. H = (/) to H =/= (/)
11-Apr-07 zorn2lem5  [--same--]  changed -. H = (/) to H =/= (/)
11-Apr-07 zorn2lem3  [--same--]  changed -. D = (/) to D =/= (/)
11-Apr-07 zorn2lem2  [--same--]  changed -. D = (/) to D =/= (/)
11-Apr-07 zorn2lem1  [--same--]  changed -. D = (/) to D =/= (/)
11-Apr-07 inf3lem2  [--same--]  changed -. ... = to =/=
11-Apr-07 inf3lem3  [--same--]  changed -. ... = to =/=
11-Apr-07 inf3lem4  [--same--]  changed -. -. x = (/) to x =/= (/)
11-Apr-07 inf3lem5  [--same--]  changed -. -. x = (/) to x =/= (/)
11-Apr-07 inf3lem6  [--same--]  changed -. -. x = (/) to x =/= (/)
11-Apr-07 inf3lem7  [--same--]  changed -. -. x = (/) to x =/= (/)
11-Apr-07 inf3      [--same--]  changed -. -. x = (/) to x =/= (/)
10-Apr-07 htalem    [--same--]  changed -. A = (/) to A =/= (/)
 9-Apr-07 ac3       [--same--]  changed -. z = (/) to z =/= (/)
 9-Apr-07 rnxp      [--same--]  changed -. A = (/) to A =/= (/)
 7-Apr-07 aceq2     [--same--]  changed -. z = (/) to z =/= (/)
 6-Apr-07 tz6.12i   [--same--]  changed -. B = (/) to B =/= (/)
 6-Apr-07 scott0s   [--same--]  changed -. .. = (/) to =/= { (/) }
 6-Apr-07 dmxp      [--same--]  changed -. A = (/) to A =/= (/)
 6-Apr-07 nnsuc     [--same--]  changed -. A = (/) to A =/= (/)
 5-Apr-07 onne0     [--same--]  changed -. On = (/) to On =/= (/)
 5-Apr-07 ord0eln0  [--same--]  changed -. A = (/) to A =/= (/)
 5-Apr-07 wereu     [--same--]  -. B = (/) to B =/= (/); triple conjunction
 3-Apr-07 aceq5lem5 [--same--]  changed -. u = (/) to u =/= (/)
 3-Apr-07 aceq5lem4 [--same--]  changed -. u = (/) to u =/= (/)
 3-Apr-07 aceq5lem3 [--same--]  changed -. u = (/) to u =/= (/)
 3-Apr-07 aceq5lem2 [--same--]  changed -. u = (/) to u =/= (/)
 3-Apr-07 pssdifn0  [--same--]  changed -. ... = to =/=
 3-Apr-07 fri       [--same--]  changed -. ... = (/) to ... =/= (/)
 2-Apr-07 cplem1    [--same--]  changed -. ... = (/) to =/= (/)
 2-Apr-07 cplem2    [--same--]  changed -. ... = (/) to =/= (/)
 2-Apr-07 0pss      [--same--]  changed -. A = (/) to A =/= (/)
 2-Apr-07 inelcm    [--same--]  changed -. ... = (/) to =/= (/)
 2-Apr-07 snnz      [--same--]  changed -. A = (/) to A =/= (/)
 2-Apr-07 inf0      [--same--]  changed conclusion to match ax-inf exactly
 2-Apr-07 n0f       ---         obsolete; use n0f
26-Mar-07 df-lim    [--same--]  changed -. A = (/) to A =/= (/)
26-Mar-07 pwen      [--same--]  eliminated redundant hypotheses
26-Mar-07 ssundif   undif
23-Mar-07 fo2       dffo2
23-Mar-07 fofv      dffo3
22-Mar-07 fnbr      [--same--]  eliminated redundant hypotheses
22-Mar-07 fnop      [--same--]  eliminated redundant hypotheses
21-Mar-07 kardex    [--same--]  eliminated redundant hypothesis
21-Mar-07 qsid      [--same--]  eliminated redundant hypothesis
21-Mar-07 0nelqs    [--same--]  eliminated redundant hypothesis
21-Mar-07 brecop2   [--same--]  eliminated redundant hypothesis
21-Mar-07 ecelqsdm  [--same--]  eliminated redundant hypothesis
18-Mar-07 map0b     [--same--]  changed -. A = (/) to A =/= (/)
17-Mar-07 oninton   [--same--]  changed -. A = (/) to A =/= (/)
17-Mar-07 wefrc     [--same--]  -. B = (/) to B =/= (/); triple conjunction
17-Mar-07 onint     [--same--]  changed -. A = (/) to A =/= (/)
17-Mar-07 tz7.5     [--same--]  -. B = (/) to B =/= (/); triple conjunction
17-Mar-07 fiint     [--same--]  changed -. x = (/) to x =/= (/)
16-Mar-07 ishlg     [--same--]  changed hypothesis from X = dom N to X = ran G
16-Mar-07 unitopt   ---         obsolete; use topopn
16-Mar-07 peano3nn0 nn0p1nnt
15-Mar-07 intex     [--same--]  changed -. A = (/) to A =/= (/)
 4-Mar-07 opthreg   [--same--]  added converse:  ->  to  <->
15-Feb-07 qbtwnre   [--same--]  antecedent changed to use triple conjunction
13-Feb-07 rcla42ev  [--same--]  antecedent changed to use triple conjunction
10-Feb-07 fodomb    [--same--]  changed -. A = (/) to A =/= (/)
 7-Feb-07 rabbidv   [--same--]  conjoined antecedents in hypothesis
 5-Feb-07 equidALT  equid
 5-Feb-07 ax-11     ax-11o
 2-Feb-07 ax11a     ax11v
 1-Feb-07 frc       [--same--]  -. = (/) to =/= (/); conjoined antecedents
31-Jan-07 itimesi   ixi
31-Jan-07 isqm1     i2
30-Jan-07 dffr2     [--same--]  changed -. ... = (/) to ... =/= (/)
30-Jan-07 df-fr     [--same--]  changed -. ... = (/) to ... =/= (/)
30-Jan-07 f1oeng    [--same--]  conjoined antecedents
29-Jan-07 2sumeq2d  ---         obsolete; use 2sumeq2dv
29-Jan-07 sumeq12d  ---         obsolete; use sumeq12dv
29-Jan-07 sumeq12rd ---         obsolete; use sumeq12rdv
29-Jan-07 eval      [--same--]  ( 1 ^ k ) changed to 1
22-Jan-07 ax11el    [--same--]  generalized with less restrictive variables
18-Jan-07 climcvgc1 ---         obsolete; use clmi1
18-Jan-07 climcvg1  ---         obsolete; use clmi2
18-Jan-07 clim1     ---         obsolete; use clm2
18-Jan-07 clim1a    ---         obsolete; use clm3
18-Jan-07 clim2a    ---         obsolete; use clm2
18-Jan-07 clim2     ---         obsolete; use clm4
18-Jan-07 climcvg2  ---         obsolete; use clmi2
18-Jan-07 climcvg2z ---         obsolete; use clmi2
18-Jan-07 climcvgc2z ---        obsolete; use clmi1
18-Jan-07 climcvg2zb ---        obsolete; use clmi2
18-Jan-07 clim2az   ---         obsolete; use clm3
18-Jan-07 clim3az   ---         obsolete; use clm3
18-Jan-07 clim3a    ---         obsolete; use clm3
18-Jan-07 clim3     ---         obsolete; use clm4
18-Jan-07 clim3b    ---         obsolete; use clm2
18-Jan-07 climcvg3  ---         obsolete; use clmi2
18-Jan-07 climcvg3z ---         obsolete; use clmi2
18-Jan-07 clim4a    ---         obsolete; use clm3
18-Jan-07 clim4     ---         obsolete; use clm4
18-Jan-07 climcvg4  ---         obsolete; use clmi2
18-Jan-07 climcvgc4z ---        obsolete; use clmi1
18-Jan-07 climcvg4z ---         obsolete; use clmi2
18-Jan-07 clim0cvg4z ---        obsolete; use clm0i
18-Jan-07 climcvgc5z ---        obsolete; use clmi1
18-Jan-07 climcvg5z ---         obsolete; use clmi2
18-Jan-07 clim0cvg5z ---        obsolete; use clm0i
18-Jan-07 climnn0   ---         obsolete; use clm4
18-Jan-07 climnn    ---         obsolete; use clm4
18-Jan-07 clim0nn   ---         obsolete; use clm0
18-Jan-07 climcvgnn ---         obsolete; use clmi2
18-Jan-07 climcvgnn0 ---        obsolete; use clmi2
18-Jan-07 clim0cvgnn0 ---       obsolete; use clm0i
18-Jan-07 climcvg2nn0 ---       obsolete; use clmi2
18-Jan-07 clim0cvg2nn0 ---      obsolete; use clm0i
18-Jan-07 climnn0le ---         obsolete; use clm4le
18-Jan-07 clim0nn0le ---        obsolete; use clm4le and clm0
16-Jan-07 abn0      [--same--]  changed -. ... = (/) to ... =/= (/)
16-Jan-07 rabn0     [--same--]  changed -. ... = (/) to ... =/= (/)
16-Jan-07 nsuceq0   [--same--]  changed -. ... = (/) to ... =/= (/)
16-Jan-07 iin0      [--same--]  changed -. A = (/) to A =/= (/)
16-Jan-07 fint      [--same--]  changed -. B = (/) to B =/= (/)
14-Jan-07 clim3z    clm4at
12-Jan-07 climconst [--same--]  made M e. ZZ a hypothesis instead of antecedent
11-Jan-07 climres2  ---         obsolete; use climres
 4-Jan-07 iunconst  [--same--]  changed -. A = (/) to A =/= (/)
21-Dec-06 intssuni2 [--same--]  changed -. A = (/) to A =/= (/)
21-Dec-06 intssuni  [--same--]  changed -. A = (/) to A =/= (/)
21-Dec-06 prer2     preqr2
20-Dec-06 ccms      cnms
20-Dec-06 ccims     cnims
20-Dec-06 ccmsval   cnimsval
18-Dec-06 cvgannn   ---         obsolete; use cvganuz
18-Dec-06 cvgannn0  ---         obsolete; use cvganuz
14-Dec-06 cleqreli  eqrelriv
14-Dec-06 cleqrel   eqrel
12-Dec-06 rnco      rncoss
12-Dec-06 dmco      dmcoss
 5-Dec-06 r19.2z    [--same--]  -. A = (/) to A =/= (/); conjoined antecedents
24-Nov-06 infn0     [--same--]  changed -. A = (/) to A =/= (/)
24-Nov-06 0sdom     [--same--]  changed -. A = (/) to A =/= (/)
24-Nov-06 0sdomg    [--same--]  changed -. A = (/) to A =/= (/)
24-Nov-06 infxpabs  [--same--]  -. B = (/) to B =/= (/); use w3a for antec.
24-Nov-06 xpdom3    [--same--]  changed antecedent from -. B = (/) to B =/= (/)
14-Nov-06 zfnul     axnul
14-Nov-06 zfaus     axsep
28-Oct-06 inv       inv1
25-Oct-06 orcana    ---         obsolete; use pm5.6
10-Oct-06 oprec     [--same--]  changed order of $f hypotheses
10-Oct-06 ecoprdi   [--same--]  changed order of $f hypotheses
10-Oct-06 ecoprass  [--same--]  changed order of $f hypotheses
 9-Oct-06 unisseq   ---         obsolete; use unimax
 8-Oct-06 notzfaus  [--same--]  more meaningful first hypothesis
 8-Oct-06 intmin    [--same--]  swapped arguments of = sign
 8-Oct-06 intmin2   [--same--]  swapped arguments of = sign
 5-Oct-06 expcant   [--same--]  generalized antecedent from e. NN to e. NN0
 5-Oct-06 expsubt   [--same--]  generalized antecedent from e. NN to e. NN0
 5-Oct-06 divexpt   [--same--]  generalized antecedent from e. NN to e. NN0
 5-Oct-06 expwordit [--same--]  generalized antecedent from e. NN to e. NN0
 5-Oct-06 explt1t   [--same--]  generalized antecedent from e. NN to e. NN0
 5-Oct-06 recexpt   [--same--]  generalized antecedent from e. NN to e. NN0
 5-Oct-06 expordt   [--same--]  generalized antecedent from e. NN to e. NN0
 5-Oct-06 iineq2dv  [--same--]  conjoined antecedents in hypothesis
 5-Oct-06 iuneq2dv  [--same--]  conjoined antecedents in hypothesis
 5-Oct-06 r19.9rzv  [--same--]  changed antecedent from -. A = (/) to A =/= (/)
 5-Oct-06 r19.45zv  [--same--]  changed antecedent from -. A = (/) to A =/= (/)
 5-Oct-06 r19.27zv  [--same--]  changed antecedent from -. A = (/) to A =/= (/)
 5-Oct-06 r19.36zv  [--same--]  changed antecedent from -. A = (/) to A =/= (/)
 5-Oct-06 iindif2   [--same--]  changed antecedent from -. A = (/) to A =/= (/)
 5-Oct-06 r19.28zv  [--same--]  changed antecedent from -. A = (/) to A =/= (/)
 5-Oct-06 r19.3rzv  [--same--]  changed antecedent from -. A = (/) to A =/= (/)
 2-Oct-06 phplem5   phplem4
 2-Oct-06 phplem4   phplem3
 2-Oct-06 phplem3   phplem2
 2-Oct-06 phplem2   phplem1
 2-Oct-06 phplem1   ---         obsolete; use difsnid
29-Sep-06 uniord    orduni
29-Sep-06 onunit    ssonuni
29-Sep-06 onuni     ssonunii
29-Sep-06 ac6s2     ac6s3
29-Sep-06 ac6c      ---         obsolete; use ac6s5
21-Sep-06 rankuni   rankuni2
20-Sep-06 npnz      [--same--]  strengthened by adding converse
20-Sep-06 onsucuni2 [--same--]  swapped arguments of = sign
19-Sep-06 nlimsuc   ---         obsolete; use nlimsucg
19-Sep-06 limuni2   limuni3
15-Sep-06 ranklon   rankval4
13-Sep-06 cbvop     rexxp
11-Sep-06 zfaus     zfauscl
10-Sep-06 fex       [--same--]  antecedent changed to use conjunction & swapped
10-Sep-06 f1dmex    [--same--]  antecedent changed to use conjunction & swapped
10-Sep-06 fnex      [--same--]  antecedent changed to use conjunction & swapped
10-Sep-06 ssexg     [--same--]  antecedent changed to use conjunction & swapped
10-Sep-06 funimaexg [--same--]  antecedent changed to use conjunction & swapped
10-Sep-06 resfunexg [--same--]  antecedent changed to use conjunction & swapped
 9-Sep-06 funex     [--same--]  antecedent changed to use conjunction & swapped
 8-Sep-06 cls       clsp
29-Aug-06 elab3g    elab3
26-Aug-06 unop      uniop
26-Aug-06 unpr      unipr
26-Aug-06 unictb    [--same--]  removed irrelevant hypothesis
16-Aug-06 ssrab     ssrab2
16-Aug-06 rabss     rabss2
16-Aug-06 ssab      ssab2
13-Aug-06 fvco3     [--same--]  antecedent changed to use triple conjunction
13-Aug-06 fvco2     [--same--]  antecedent changed to use triple conjunction
 6-Jun-06 sq0       sq00
 1-Jun-06 infpn     infpn2
27-May-06 ---       ---         exp was changed to ex to prevent matching
27-May-06 ---       ---           math token 'exp'.
27-May-06 exp       ex
26-May-06 f1ocnvfvb [--same--]  antecedent changed to use triple conjunction
22-Apr-06 fvco      [--same--]  antecedent changed to use triple conjunction
10-Apr-06 plus1let  p1let
10-Apr-06 leplus1t  lep1t
10-Apr-06 ltplus1   ltp1
10-Apr-06 ltplus1t  ltp1t
29-Mar-06 xpdom2    [--same--]  eliminated the A e. _V hypothesis
29-Mar-06 xpdom1    [--same--]  eliminated the A e. _V hypothesis
28-Mar-06 sspr      [--same--]  eliminated both $e hypotheses
26-Mar-06 fnfvop    fnopfvb
26-Mar-06 fnfvbr    fnbrfvb
26-Mar-06 eqri      eqriv
26-Mar-06 eqrd      eqrdv
26-Mar-06 nn0z      nn0zrab
26-Mar-06 nnz       nnzrab
24-Mar-06 fodomb    [--same--]  eliminated the B e. _V hypothesis
24-Mar-06 eldmg     eldm2g
22-Mar-06 prprc     prprc1
22-Mar-06 sqrsqet   sqrsqt
22-Mar-06 sqrsqe    sqrsq
22-Mar-06 sqrsq     sqrmsq2
21-Mar-06 nn0le2sqet nn0le2msqt
21-Mar-06 le2sqet   le2sqt
21-Mar-06 le2sqt    le2msqt
21-Mar-06 lt2sqet   lt2sqt
21-Mar-06 lt2sqt    lt2msqt
21-Mar-06 le2sqe    le2sq
21-Mar-06 le2sq     le2msq
21-Mar-06 lt2sqe    lt2sq
21-Mar-06 lt2sq     lt2msq
21-Mar-06 ltsqt     ltmsqt
13-Mar-06 sq11t     [--same--]  rearranged antecedent
11-Mar-06 sqrecl    resqcl
11-Mar-06 sqreclt   resqclt
11-Mar-06 ---       ---         'sq' is normal square (A ^ 2)
11-Mar-06 sqe0      sqeq0
11-Mar-06 sqe11     sq11
11-Mar-06 sqegt0    sqgt0
11-Mar-06 sqege0    sqge0
11-Mar-06 sqe11t    sq11t
11-Mar-06 sqege0t   sqge0t
11-Mar-06 ---       ---         'msq' is square represented by mult. (A x. A)
11-Mar-06 sqeq0      msq0
11-Mar-06 sqgt0     msqgt0
11-Mar-06 sqge0     msqge0
11-Mar-06 sq11      msq11
11-Mar-06 sqznn     msqznn
11-Mar-06 sqrsqid   sqrmsq
11-Mar-06 sqeq0      msq0
24-Feb-06 lerect    [--same--]  rearranged antecedent
24-Feb-06 ltrect    [--same--]  rearranged antecedent
24-Feb-06 lt2sqet   [--same--]  rearranged antecedent
24-Feb-06 le2sqet   [--same--]  rearranged antecedent
24-Feb-06 lt2sqt    [--same--]  rearranged antecedent
24-Feb-06 le2sqt    [--same--]  rearranged antecedent
20-Feb-06 funfvopi  funopfv
20-Feb-06 funopfv   funfvop
20-Feb-06 funfvop   funopfvb
 9-Feb-06 divneq0bt divne0bt
 9-Feb-06 divneq0   divne0
 9-Feb-06 recneq0z  recne0z
 9-Feb-06 pm2.61an2 pm2.61dan
 9-Feb-06 pm2.61an1 pm2.61ian
28-Jan-06 cleqfvf   eqfnfvf
26-Jan-06 fri       [--same--]  changed to closed theorem instead of inference
17-Jan-06 relin     relin1
17-Jan-06 ssrelqqq  relss
17-Jan-06 relss     ssrel
17-Jan-06 ssrel     ssrelqqq
16-Jan-06 elrnqqq   elrn2
16-Jan-06 elrn2     elrn
16-Jan-06 elrn      elrnqqq
12-Jan-06 df-ef     [--same--]  revised to use new df-sum
 9-Jan-06 rabeqbi2i rabeq2i
 9-Jan-06 abeqbi2   abeq2
 9-Jan-06 abeqbi1   abeq1
 9-Jan-06 abeqbi2i  abeq2i
 9-Jan-06 abeqbi1i  abeq1i
 9-Jan-06 abeqbi2d  abeq2d
 9-Jan-06 abbieq2i  abbi2i
 9-Jan-06 abbieqi   abbii
 9-Jan-06 abbieqd   abbid
 9-Jan-06 abbieqdv  abbidv
 9-Jan-06 abbieq2dv abbi2dv
 9-Jan-06 abbieq1dv abbi1dv
 9-Jan-06 rabbieqi  rabbii
 9-Jan-06 rabbieqdv rabbidv
 9-Jan-06 rabbieqsdv rabbisdv
 9-Jan-06 rabbieqrdv rabbirdv
 9-Jan-06 opabbieqd opabbid
 9-Jan-06 opabbieqdv opabbidv
 9-Jan-06 oprabbieqd oprabbid
 9-Jan-06 oprabbieqdv oprabbidv
 9-Jan-06 oprabbieqi oprabbii
 9-Jan-06 abeqbi2   abeq2
 9-Jan-06 abeqbi2i  abeq2i
 9-Jan-06 abeqbi1   abeq1
 9-Jan-06 abeqbi2d  abeq2d
 9-Jan-06 abeqbi1i  abeq1i
 9-Jan-06 rabeqbi2i rabeq2i
 9-Jan-06 oprabbieqi oprabbii
 7-Jan-06 divgt0lem divgt0i2
 5-Jan-06 lep1t  letrp1t
 4-Jan-06 nnegdift  ---         obsolete; use subge0t (swapped biconditional)
 2-Jan-06 opabbii.2 opabbii
 1-Jan-06 negdi2    negsubdi
 1-Jan-06 negdi2t   negsubdit
 1-Jan-06 negdi3    negsubdi2t
 1-Jan-06 negdi3t   negsubdi2t
17-Dec-05 msca      ---         obsolete; now embedded inside equs4 proof
16-Dec-05 1expt     [--same--]  antecedent extended from NN to NN0
16-Dec-05 nnexpclt  [--same--]  antecedent extended from NN to NN0
16-Dec-05 nn0expclt [--same--]  antecedent extended from NN to NN0
16-Dec-05 zexpclt   [--same--]  antecedent extended from NN to NN0
16-Dec-05 qexpclt   [--same--]  antecedent extended from NN to NN0
16-Dec-05 reexpclt  [--same--]  antecedent extended from NN to NN0
16-Dec-05 expclt    [--same--]  antecedent extended from NN to NN0
16-Dec-05 expcllem  [--same--]  antecedent extended from NN to NN0; + 3rd hyp.
16-Dec-05 expp1t    [--same--]  antecedent extended from NN to NN0
16-Dec-05 expvalt   expnnvalt
13-Dec-05 sbcco     sbccog
 1-Dec-05 subneg2t  subnegt
 1-Dec-05 subnegt   ---         obsolete; use negsubt (swapped equality)
 1-Dec-05 subneg    ---         obsolete; use negsub (swapped equality)
 1-Dec-05 reueq     reueq1
 1-Dec-05 rexeq     rexeq1
 1-Dec-05 raleq     raleq1
 1-Dec-05 reueqf    reueq1f
 1-Dec-05 rexeqf    rexeq1f
 1-Dec-05 raleqf    raleq1f
 1-Dec-05 ad2antxx  ad2antrr
 1-Dec-05 ad2antrr  ad2antll
 1-Dec-05 ad2antll  ad2antxx
29-Nov-05 sbcel2    sbcel2gv
29-Nov-05 sbcel1    sbcel1gv
28-Nov-05 sbcn      sbcng
28-Nov-05 sbcim     sbcimg
28-Nov-05 sbcbi     sbcbig
28-Nov-05 sbcor     sbcorg
28-Nov-05 sbcan     sbcang
28-Nov-05 sbcal     sbcalg
28-Nov-05 sbcex     sbcexg
28-Nov-05 sbceq1    sbceq1a
21-Nov-05 2o        2on
21-Nov-05 1o        1on
19-Nov-05 zfrep3    axrep5
19-Nov-05 zfrep2    axrep4
19-Nov-05 axrep     axrep2
18-Nov-05 hbsbcg    hbsbc1g
18-Nov-05 hbsbc     hbsbc1
18-Nov-05 hbsbcv    hbsbc1v
18-Nov-05 ---       ---         More changes to the bixx series below -
18-Nov-05 ---       ---         changed to xxbix to be analogous to the xxeqx
18-Nov-05 ---       ---         series e.g. uneq12d.  Also, the bi(r)abxx were
18-Nov-05 ---       ---         changed to (r)abbieqxx: "bi" in hyp. and
18-Nov-05 ---       ---         "eq" in conclusion.
18-Nov-05 bial      albii
18-Nov-05 bi2al     2albii
18-Nov-05 biex      exbii
18-Nov-05 bi2ex     2exbii
18-Nov-05 bi3ex     3exbi
18-Nov-05 biald     albid
18-Nov-05 biexd     exbid
18-Nov-05 bisb      sbbii
18-Nov-05 bisbd     sbbid
18-Nov-05 bialdv    albidv
18-Nov-05 biexdv    exbidv
18-Nov-05 bi2aldv   2albidv
18-Nov-05 bi2exdv   2exbidv
18-Nov-05 bi3exdv   3exbidv
18-Nov-05 bi4exdv   4exbidv
18-Nov-05 bieud     eubid
18-Nov-05 bieudv    eubidv
18-Nov-05 bieu      eubii
18-Nov-05 bimod     mobid
18-Nov-05 bimo      mobii
18-Nov-05 biralda   ralbida
18-Nov-05 birexda   rexbida
18-Nov-05 biraldva  ralbidva
18-Nov-05 birexdva  rexbidva
18-Nov-05 birald    ralbid
18-Nov-05 birexd    rexbid
18-Nov-05 biraldv   ralbidv
18-Nov-05 birexdv   rexbidv
18-Nov-05 biraldv2  ralbidv2
18-Nov-05 birexdv2  rexbidv2
18-Nov-05 biral     ralbii
18-Nov-05 birex     rexbii
18-Nov-05 bi2ral    2ralbii
18-Nov-05 bi2rex    2rexbii
18-Nov-05 biral2    ralbii2
18-Nov-05 birex2    rexbii2
18-Nov-05 birala    ralbiia
18-Nov-05 birexa    rexbiia
18-Nov-05 bi2rexa   2rexbiia
18-Nov-05 bi2ralda  2ralbida
18-Nov-05 bi2raldva 2ralbidva
18-Nov-05 bi2rexdva 2rexbidva
18-Nov-05 bireudva  reubidva
18-Nov-05 bireudv   reubidv
18-Nov-05 bireua    reubiia
18-Nov-05 bireu     reubii
18-Nov-05 bisbcdv   sbcbidv
18-Nov-05 bisbc     sbcbii
18-Nov-05 eqrabi    rabeqbi2i
18-Nov-05 eqab      abeqbi2
18-Nov-05 eqabr     abeqbi1
18-Nov-05 eqabi     abeqbi2i
18-Nov-05 eqabri    abeqbi1i
18-Nov-05 eqabd     abeqbi2d
18-Nov-05 biabri    abbieq2i
18-Nov-05 biabi     abbieqi
18-Nov-05 biabd     abbieqd
18-Nov-05 biabdv    abbieqdv
18-Nov-05 biabrdv   abbieq2dv
18-Nov-05 biabldv   abbieq1dv
18-Nov-05 birabi    rabbieqi
18-Nov-05 birabdv   rabbieqdv
18-Nov-05 birabsdv  rabbieqsdv
18-Nov-05 birabrdv  rabbieqrdv
18-Nov-05 biopabd   opabbieqd
18-Nov-05 biopabdv  opabbieqdv
18-Nov-05 bioprabd  oprabbieqd
18-Nov-05 bioprabdv oprabbieqdv
18-Nov-05 bioprabi  oprabbieqi
18-Nov-05 bicon1i   con1bii
18-Nov-05 bicon2i   con2bii
18-Nov-05 bicon4i   con4bii
18-Nov-05 bicon4d   con4bid
18-Nov-05 bicon2    con2bi
18-Nov-05 bicon2d   con2bid
18-Nov-05 bicon1d   con1bid
18-Nov-05 bisyl7    syl7ib
18-Nov-05 bisyl8    syl8ib
11-Nov-05 sbcbidv   [--same--]  swapped antecedents
21-Oct-05 ciin      [--same--]  "|^|" changed to "|^|_"
21-Oct-05 cuin      [--same--]  "U." changed to "U_"
21-Oct-05 ---SYMBOL CHANGE----  Changed "|^|" to "|^|_" in thm's using ciin
21-Oct-05 ---SYMBOL CHANGE----  Changed "U." to "U_" in thm's using ciun
20-Oct-05 rax5      ra5
20-Oct-05 rax4      ---         obsolete; use ra4sbc
20-Oct-05 reuuni2f  [--same--]  weakened its hypotheses
19-Oct-05 reuss     [--same--]  antecedent changed to use triple conjunction
10-Oct-05 uzwo      [--same--]  changed to use ZZ>= notation
10-Oct-05 uzwo2     [--same--]  changed to use ZZ>= notation
 1-Oct-05 nnncant   nnncan1t
13-Sep-05 leltnet   [--same--]  antecedent changed to use triple conjunction
10-Sep-05 ifel      ifcl
 6-Sep-05 dmopab2   dmopab3
 5-Sep-05 peano2uz  peano2uz2
 1-Sep-05 cleqfv    eqfnfv
 1-Sep-05 df-seq    df-seq1
 1-Sep-05 cseqz     cseq1
 1-Sep-05 serft     ser1ft
 1-Sep-05 serf      ser1f
 1-Sep-05 sercl     ser1cl
 1-Sep-05 serrecl   ser1recl
 1-Sep-05 serre     ser1re
 1-Sep-05 sercl2    ser1cl2
 1-Sep-05 serf2     ser1f2
 1-Sep-05 ser12     ser11
 1-Sep-05 sersuc2   ser1p1
 1-Sep-05 sermono   ser1mono
 1-Sep-05 seradd2   ser1add2
 1-Sep-05 seradd    ser1add
 1-Sep-05 serdir    ser1dir
 1-Sep-05 serabsdiflem ser1absdiflem
 1-Sep-05 serabsdif ser1absdif
 1-Sep-05 serre2    ser1re2
 1-Sep-05 sercj     ser1cj
 1-Sep-05 serconst  ser1const
 1-Sep-05 sertrunclem ser1trunclem
 1-Sep-05 sercmp    ser1cmp
 1-Sep-05 sercmp0   ser1cmp0
 1-Sep-05 sercmp2lem ser1cmp2lem
 1-Sep-05 sercmp2   ser1cmp2
 1-Sep-05 seqlem1   seq1lem1
 1-Sep-05 seqlem2   seq1lem2
 1-Sep-05 seqrval   seq1rval
 1-Sep-05 seqval    seq1val
 1-Sep-05 seqfnlem  seq1fnlem
 1-Sep-05 seqval2   seq1val2
 1-Sep-05 seq1lem   seq11lem
 1-Sep-05 seqsuclem seq1suclem
 1-Sep-05 seqp1     seq1p1
 1-Sep-05 seqm1     seq1m1
 1-Sep-05 seqfn     seq1fn
 1-Sep-05 seqrn     seq1rn2
 1-Sep-05 seqrn2    seq1rn
 1-Sep-05 seqcl     seq1cl
 1-Sep-05 seqres    seq1res
 1-Sep-05 seqbnd    seq1bnd
 1-Sep-05 sequblem  seq1ublem
 1-Sep-05 sequb     seq1ub
 1-Sep-05 seqhcau   seq1hcau
 1-Sep-05 ---SYMBOL CHANGE----  Changed math symbol 'seq' to 'seq1'
 1-Sep-05 seq1      seq11       Warning: do _before_ the symbol change above
17-Aug-05 df-clim   [--same--]  The old df-clim, df-shft, and df-seq0, and
17-Aug-05 df-shft   [--same--]      all derived theorems, have been scrapped
17-Aug-05 df-seq0   [--same--]      or rederived from the new definitions.
30-Jul-05 ---       ---         syl* changes below were sugg'ed by Scott Fenton
30-Jul-05 syl34d    imim12d
30-Jul-05 syl4d     imim1d
30-Jul-05 syl3d     imim2d
30-Jul-05 syl34     imim112i
30-Jul-05 syl4      imim1i
30-Jul-05 syl3      imim2i
30-Jul-05 syl2      imim1
30-Jul-05 syl1      imim2
27-Jul-05 uzind     [--same--]  weaker basis hyp.; different mand. hyp. order
13-Jul-05 mp3an11   mp3anl1
13-Jul-05 mp3an12   mp3anl2
13-Jul-05 mp3an13   mp3anl3
13-Jul-05 syl3an11  syl3anl1
13-Jul-05 syl3an12  syl3anl2
13-Jul-05 syl3an13  syl3anl3
13-Jul-05 mpan11    mpanl1
13-Jul-05 mpan12    mpanl2
13-Jul-05 mpan21    mpanr1
13-Jul-05 mpan22    mpanr2
13-Jul-05 sylan11   sylanl1
13-Jul-05 sylan12   sylanl2
13-Jul-05 sylan21   sylanr1
13-Jul-05 sylan22   sylanr2
13-Jul-05 mpan121   mpanlr1
13-Jul-05 ecased    ---         obsolete; use ecase23d (diff. hyp. order)
11-Jul-05 lelt      lenlt
11-Jul-05 leltt     lenltt
11-Jul-05 lenltt    eqleltt
10-Jul-05 bcpasc    bcpasc2
10-Jul-05 bcvalt    bcval2t
 9-Jul-05 sermconst ---         obsolete; use ser1mulc
 9-Jul-05 seqsuc    seq1p1
 3-Jul-05 peano5c   ---         obsolete; use peano5nn (restr. qntfr.)
 3-Jul-05 df-n      [--same--]  shortened with restricted quantifier
 2-Jul-05 mulge0t   [--same--]  conjoined antecedents
 2-Jul-05 prodgt02t [--same--]  swapped A e. RR and B e. RR
27-Jun-05 syl3an    [--same--]  changed order of hypotheses
25-Jun-05 ecoprcom  [--same--]  changed order of $f hypotheses
21-Jun-05 nn0ltlem1 nn0ltlem1t
21-Jun-05 subsub    subsub23
17-Jun-05 ecoprdist ---         obsolete; use ecoprdi
16-Jun-05 binom     binom2
12-Jun-05 oel       orabs
30-May-05 ltdiv23t  [--same--]  conjoined antecedents
30-May-05 ledivt    lediv1t
23-May-05 rcla42v   [--same--]  swapped antecedents
23-May-05 rcla4v    [--same--]  swapped antecedents
23-May-05 rcla4     [--same--]  swapped antecedents
10-May-05 mpbiranr  mpbiran2
 8-May-05 funfv2    [--same--]  changed to A F y instead of <. A , y >. e. F
 8-May-05 imasn     ---         obsolete; use relimasn (A R y instead of o.p.)
 3-May-05 nndiv     nndivt
 2-May-05 subaddeq  pncan3
 2-May-05 subaddeqt pncan3t
 1-May-05 divne0bt  [--same--]  changed antecedent to triple conjunction
 1-May-05 divcan2t  [--same--]  changed antecedent to triple conjunction
 1-May-05 divcan1t  [--same--]  changed antecedent to triple conjunction
30-Apr-05 divnegt   [--same--]  changed antecedent to triple conjunction
30-Apr-05 divrect   [--same--]  changed antecedent to triple conjunction
30-Apr-05 divcan3t  [--same--]  changed antecedent to triple conjunction
30-Apr-05 divcan4t  [--same--]  changed antecedent to triple conjunction
29-Apr-05 crut      [--same--]  generalized -> to <->
29-Apr-05 cru       [--same--]  generalized -> to <->
29-Apr-05 isqm1     itimesi
29-Apr-05 crmult    crmul       changed hypotheses from real to complex
29-Apr-05 redivclt  [--same--]  changed antecedent to triple conjunction
29-Apr-05 divclt    [--same--]  changed antecedent to triple conjunction
28-Apr-05 ine0      [--same--]  changed -. and = to =/=
27-Apr-05 ltdivt    ltdiv1t
27-Apr-05 ltdiv     ltdiv1
27-Apr-05 ltdivi    ltdiv1i
24-Apr-05 prodgt0   [--same--]  strengthened 0 < A to 0 <_ A
24-Apr-05 prodgt0i  prodgt0lem
 7-Apr-05 equs2     ---         obsolete; use equs5
 7-Apr-05 equs1     ---         obsolete; use equs4
 6-Apr-05 absltt    [--same--]  swapped & contraposed conjunct with -u
 6-Apr-05 absle     [--same--]  swapped & contraposed conjunct with -u
 6-Apr-05 abslt     [--same--]  swapped & contraposed conjunct with -u
26-Mar-05 abscj     [--same--]  swapped arguments of = sign
18-Mar-05 reim0     reim0b
18-Mar-05 rere      rereb
18-Mar-05 cjre      cjreb
18-Mar-05 negre     negreb
11-Mar-05 frsuc     frsuc
10-Mar-05 nn0addge2 [--same--]  Generalized 1st hyp from NN0 to RR
10-Mar-05 nn0addge1 [--same--]  Generalized 1st hyp from NN0 to RR
 5-Mar-05 chv       chvarv
 5-Mar-05 chv2      chvar
 4-Mar-05 divdistr  divdir
 4-Mar-05 divdistrz divdirz
 4-Mar-05 divge0t   [--same--]  conjoined the two left-most antecedents
 4-Mar-05 divgt0t   [--same--]  conjoined the two left-most antecedents
 4-Mar-05 absgt0t   [--same--]  changed  -. A = 0  to  A =/= 0
 4-Mar-05 absgt0    [--same--]  changed  -. A = 0  to  A =/= 0
24-Feb-05 absidt    [--same--]  conjoined the two left-most antecedents
27-Feb-05 del34     ---         obsolete; use dral1 instead
27-Feb-05 del35     ---         obsolete; use dral1 instead
27-Feb-05 del34b    dral1
27-Feb-05 del36     ---         obsolete; use dral2 instead
27-Feb-05 del40     ---         obsolete; use drex1 instead
27-Feb-05 del41     ---         obsolete; use drex1 instead
27-Feb-05 del42     ---         obsolete; use drex2 instead
27-Feb-05 del43     ---         obsolete; use drsb1 instead
27-Feb-05 del43b    drsb1
27-Feb-05 del44     ---         obsolete; use drsb2 instead
27-Feb-05 del45     ---         obsolete; use drsb2 instead
27-Feb-05 ddelimf2  dvelimf2
27-Feb-05 ddelimf   dvelimf
27-Feb-05 ddelimdf  dvelimdf
27-Feb-05 ddelim    dvelim
27-Feb-05 ddeeq1    dveeq1
27-Feb-05 ddeeq2    dveeq2
27-Feb-05 ddeel1    dveel1
27-Feb-05 ddeel2    dveel2
24-Feb-05 bi3ord    3orbi123d
24-Feb-05 im3ord    3orim123d
24-Feb-05 bi3or     3orbi123i
24-Feb-05 bi3an     3anbi123i
24-Feb-05 bi3and    3anbi123d
24-Feb-05 im3an     3anim123i
24-Feb-05 divdistrt divdirt
24-Feb-05 ltdiv1t   [--same--]  conjoined the two left-most antecedents
24-Feb-05 lediv1t   [--same--]  conjoined the two left-most antecedents
24-Feb-05 ltmuldivt [--same--]  conjoined the two left-most antecedents
24-Feb-05 ltdivmult [--same--]  conjoined the two left-most antecedents
24-Feb-05 ltmuldiv2t [--same--]  conjoined the two left-most antecedents
24-Feb-05 gt0ne0t   [--same--]  conjoined the two left-most antecedents
24-Feb-05 ltrect    [--same--]  conjoined the two left-most antecedents
24-Feb-05 recgt0t   [--same--]  conjoined the two left-most antecedents
24-Feb-05 lerect    [--same--]  conjoined the two left-most antecedents
21-Feb-05 nn0ge0i   nn0ge0
21-Feb-05 rdgzer    rdg0
21-Feb-05 rdgzert   rdg0g
21-Feb-05 frzer     fr0g
21-Feb-05 mulzer1   mul01
21-Feb-05 mulzer2   mul02
21-Feb-05 mulzer1t  mul01t
21-Feb-05 mulzer2t  mul02t
21-Feb-05 divzer    div0
19-Feb-05 ax0re     0re
13-Feb-05 cardcard  cardidm
13-Feb-05 exp2t     sqvalt
13-Feb-05 uzind2    ---         Obsolete; use uzind3
 5-Feb-05 ---       ---         We will adopt "equ" (vs. old "eq") for
 5-Feb-05 ---       ---         set variable equality and "eq" (vs. old
 5-Feb-05 ---       ---         "cleq") for class equality.  (Remember it
 5-Feb-05 ---       ---         is important to do these in REVERSE order
 5-Feb-05 ---       ---         below!)
 5-Feb-05 cleqri    eqri
 5-Feb-05 cleqrd    eqrd
 5-Feb-05 cleqid    eqid
 5-Feb-05 cleqcom   eqcom
 5-Feb-05 cleqcomi  eqcomi
 5-Feb-05 cleqcomd  eqcomd
 5-Feb-05 cleq1     eqeq1
 5-Feb-05 cleq2     eqeq2
 5-Feb-05 cleq1i    eqeq1i
 5-Feb-05 cleq2i    eqeq2i
 5-Feb-05 cleq1d    eqeq1d
 5-Feb-05 cleq2d    eqeq2d
 5-Feb-05 cleq12    eqeq12
 5-Feb-05 cleq12i   eqeq12i
 5-Feb-05 cleq12d   eqeq12d
 5-Feb-05 cleqan12d eqeqan12d
 5-Feb-05 cleqan12rd eqeqan12rd
 5-Feb-05 cleqtr    eqtr
 5-Feb-05 cleq2tr   eq2tri
 5-Feb-05 cleqab    abeqbi2
 5-Feb-05 cleqabi   abeqbi2i
 5-Feb-05 cleqabr   abeqbi1
 5-Feb-05 cleqabd   abeqbi2d
 5-Feb-05 cleqabri  abeqbi1i
 5-Feb-05 cleq2ab   eq2ab
 5-Feb-05 cleqrabi  rabeqbi2i
 5-Feb-05 clneq     nelneq
 5-Feb-05 clneq2    nelneq2
 5-Feb-05 sbeq2     equsb2
 5-Feb-05 sbeq1     equsb1
 5-Feb-05 eqvin.l2  ---           obsolete; use equvinv instead
 5-Feb-05 eqvin     equvin
 5-Feb-05 eqvin.l1  equvini
 5-Feb-05 eqsal     equsal
 5-Feb-05 eqsex     equsex
 5-Feb-05 eqs5      equs5
 5-Feb-05 eqs4      equs4
 5-Feb-05 eqs3      equs3
 5-Feb-05 eqs2      equs2
 5-Feb-05 eqs1      equs1
 5-Feb-05 eq6s      hbnaes
 5-Feb-05 eq6       hbnae
 5-Feb-05 eq5s      hbaes
 5-Feb-05 eq5       hbae
 5-Feb-05 eq4ds     nalequcoms
 5-Feb-05 eq4s      alequcoms
 5-Feb-05 eq4       ax-10
 5-Feb-05 a14b      elequ2
 5-Feb-05 a13b      elequ1
 5-Feb-05 eqt2b     equequ2
 5-Feb-05 a8b       equequ1
 5-Feb-05 eqt       equtr
 5-Feb-05 eqt2      equtrr
 5-Feb-05 eqan      equtr2
 5-Feb-05 eqcom     equcomi
 5-Feb-05 eqcomb    equcom
 5-Feb-05 eqcoms    equcoms
 5-Feb-05 eqid      equid
 3-Feb-05 sb5f1     sb6rf
21-Jan-05 mulcanxx  mulcant2
21-Jan-05 mulcant2  mulcant
21-Jan-05 mulcant   mulcanxx
10-Jan-05 add41r3   add42
10-Jan-05 caopr41r3 caopr42
10-Jan-05 an41r3s   an42s
10-Jan-05 an41r3    an42
 8-Jan-05 ---       ---         The imxx series was changed analogously
 8-Jan-05 ---       ---         to the bixx series change.
 8-Jan-05 im2an     anim12i
 8-Jan-05 imran     anim1i
 8-Jan-05 imlan     anim2i
 8-Jan-05 im2or     orim12i
 8-Jan-05 imror     orim1i
 8-Jan-05 imlor     orim2i
 8-Jan-05 im2and    anim12d
 8-Jan-05 imrand    anim1d
 8-Jan-05 imland    anim2d
 8-Jan-05 im2ord    orim12d
 8-Jan-05 imrord    orim1d
 8-Jan-05 imlord    orim2d
 8-Jan-05 ---       ---         The bixx series was changed to be analogous
 8-Jan-05 ---       ---         to the xxeqx series e.g. uneq12d.
 8-Jan-05 ---       ---         (Suggested by Raph Levien.)
 8-Jan-05 bi2and    anbi12d
 8-Jan-05 birand    anbi1d
 8-Jan-05 biland    anbi2d
 8-Jan-05 bi2imd    imbi12d
 8-Jan-05 birimd    imbi1d
 8-Jan-05 bilimd    imbi2d
 8-Jan-05 bi2ord    orbi12d
 8-Jan-05 birord    orbi1d
 8-Jan-05 bilord    orbi2d
 8-Jan-05 bi2bid    bibi12d
 8-Jan-05 birbid    bibi1d
 8-Jan-05 bilbid    bibi2d
 8-Jan-05 binegd    negbid
 8-Jan-05 bi2an     anbi12i
 8-Jan-05 biran     anbi1i
 8-Jan-05 bilan     anbi2i
 8-Jan-05 bi2im     imbi12i
 8-Jan-05 birim     imbi1i
 8-Jan-05 bilim     imbi2i
 8-Jan-05 bi2or     orbi12i
 8-Jan-05 biror     orbi1i
 8-Jan-05 bilor     orbi2i
 8-Jan-05 bi2bi     bibi12i
 8-Jan-05 birbi     bibi1i
 8-Jan-05 bilbi     bibi2i
 8-Jan-05 bineg     negbii
 3-Jan-05 pm5.41    imdi
 1-Jan-05 iundif    iundif2
 1-Jan-05 iindif    iindif2
 1-Jan-05 iunin     iunin2
 1-Jan-05 iinin     iinin2
 1-Jan-05 sylan13br sylancbr
 1-Jan-05 sylan13b  sylancb
 1-Jan-05 sylan13   sylanc
 1-Jan-05 syl13     sylc
26-Dec-04 0ne1o     ---         obsolete; use 1ne0
19-Dec-04 sbequ6    [--same--]  swapped biconditional order
19-Dec-04 sbequ5    [--same--]  swapped biconditional order
15-Dec-04 syl2and   syl2ani
15-Dec-04 sylan2d   sylan2i
15-Dec-04 syland    sylani
12-Dec-04 nnordex   nnaordex
12-Dec-04 nnwordex  nnawordex
12-Dec-04 mpand     mpdan
12-Dec-04 ontr      ontr1
 6-Dec-04 on0eqel   on0eqelt
30-Nov-04 exp2      sqvalt
30-Nov-04 1exp      1expt
30-Nov-04 0exp      0expt
30-Nov-04 exp1      exp1t
30-Nov-04 expp1     expp1t
18-Nov-04 divrclz   redivclz
18-Nov-04 divrclt   redivclt
18-Nov-04 subrclt   resubclt
18-Nov-04 negrclt   renegclt
18-Nov-04 mulrclt   remulclt
18-Nov-04 divrcl    redivcl
18-Nov-04 subrcl    resubcl
18-Nov-04 negrcl    renegcl
18-Nov-04 mulrcl    remulcl
18-Nov-04 addrcl    readdcl
18-Nov-04 ltdivmul  ---         obsolete; use ltmuldiv instead
18-Nov-04 ltdivmult ---         obsolete; use ltmuldivt instead (note: there
                                is a new ltdivmult that is unrelated)
18-Nov-04 distr2t   adddirt
18-Nov-04 distr2    adddir
18-Nov-04 distr     adddi
18-Nov-04 subdistr  subdir
17-Nov-04 nnrect    nnrecgt0t
17-Nov-04 posdif    [--same--]  swapped biconditional and variable order
15-Nov-04 negdistt3 negdi3t
15-Nov-04 negdistt2 negdi2t
15-Nov-04 negdistt  negdit
15-Nov-04 negdist3  negdi3
15-Nov-04 negdist2  negdi2
11-Nov-04 reuunis   reuuni2
11-Nov-04 reuuni    reuuni1
 9-Nov-04 zlelt1    zleltp1t
 9-Nov-04 zltle1    zltp1let
 7-Sep-04 arch      [--same--]  removed quantifier, changed set var. to class
 2-Nov-04 dfom2     dfom3
 2-Nov-04 dfom3     dfom4
29-Oct-04 df-ded    df-if
29-Oct-04 dedeq1    ifeq1
29-Oct-04 dedeq2    ifeq2
29-Oct-04 dedeq12   ifeq12
29-Oct-04 dedbi     ifbi
29-Oct-04 dedlem1   iftrue
29-Oct-04 dedlem2   iffalse
29-Oct-04 dedex     ifex
29-Oct-04 cded      cif
29-Oct-04 ---SYMBOL CHANGE----  Changed math symbol 'ded' to 'if'
28-Oct-04 cmulc     cmul
20-Oct-04 oprabex   oprabex2
14-Oct-04 nn0lelt1  nn0leltp1t
14-Oct-04 nn0ltle1  nn0ltp1let
14-Oct-04 nnlelt1   nnleltp1t
14-Oct-04 nnltle1   nnltp1let
14-Oct-04 rnoel3    rabn0
14-Oct-04 noel3     abn0
14-Oct-04 noel2     n0i
14-Oct-04 peano2c   peano2nn
12-Oct-04 supeu     supeui
12-Oct-04 supcl     supcli
12-Oct-04 supub     supubi
12-Oct-04 suplub    suplubi
12-Oct-04 supnub    supnubi
12-Oct-04 suprcl    suprcli
12-Oct-04 suprub    suprubi
12-Oct-04 pm4.12    con2bi
12-Oct-04 bicon4    con4bii
12-Oct-04 con2bi    con2bii
12-Oct-04 bicon1    con1bii
12-Oct-04 pm2.11    exmid
11-Oct-04 sbf1      ---         obsolete; use sbf instead
11-Oct-04 ceqsexg   ceqex
 9-Oct-04 fvco2     fvco3
 8-Oct-04 indif0    disjdif
 8-Oct-04 biopab    opabbii.2
 8-Oct-04 bioprab   oprabbieqi
 7-Oct-04 ssii      sselii
 6-Oct-04 op2nd     op2ndb
 6-Oct-04 op1st     op1stb
 3-Oct-04 ind       nnind
 3-Oct-04 sylan5    sylan2
 3-Oct-04 sylan5b   sylan2b
 3-Oct-04 sylan5br  sylan2br
 3-Oct-04 sylan5d   sylan2i
 3-Oct-04 zind      ---         obsolete; use uzind
30-Sep-04 fvop      funfvop
30-Sep-04 funfvop   funopfv
30-Sep-04 pm4.21    bicom
30-Sep-04 bicom     bicomi
30-Sep-04 entr      entri
30-Sep-04 sstr2qqq  sstr
30-Sep-04 sstr      sstr2
30-Sep-04 sstr2     sstr2qqq
29-Sep-04 xp0qqq    xp0r
29-Sep-04 xp0r      xp0
29-Sep-04 xp0       xp0qqq
28-Sep-04 xpdom     xpdom2      changed variable names
28-Sep-04 xpdom2    xpdom3
26-Sep-04 xpindi    inxp
26-Sep-04 xpun1     xpundi
26-Sep-04 xpun2     xpundir
25-Sep-04 entr      entrt
23-Sep-04 ssfnres   ---         obsolete; use fnssres instead
23-Sep-04 resun     resundi
21-Sep-04 f11       [--same--]  changed o.p. membership to binary relation
21-Sep-04 unisuc    [--same--]  swapped arguments of = sign
21-Sep-04 onunisuc  [--same--]  swapped arguments of = sign
21-Sep-04 undif3    ---         obsolete; use undif
21-Sep-04 ssequn2   [--same--]  swapped arguments of = sign
21-Sep-04 sseqin2   [--same--]  swapped arguments of = sign
21-Sep-04 onelun    [--same--]  swapped arguments of = sign
21-Sep-04 dfss4     [--same--]  swapped arguments of = sign
21-Sep-04 ordunisuc ordunisssuc
21-Sep-04 ssfun     funss
15-Sep-04 19.6      alex
15-Sep-04 alex      alexeq
15-Sep-04 19.11     excom
15-Sep-04 19.11a    excomim
15-Sep-04 19.5      alcom
15-Sep-04 19.7      alnex
15-Sep-04 19.14     exnal
15-Sep-04 alnex     alinexa
15-Sep-04 exnal     exanali
15-Sep-04 dmsn      dmsnop
15-Sep-04 rnsn      rnsnop
13-Sep-04 ppnull    pwpw0
13-Sep-04 pwnull    pw0
13-Sep-04 zfnull2   zfnul
13-Sep-04 nullpss   0pss
13-Sep-04 nullss    0ss
13-Sep-04 nulleq    eq0
13-Sep-04 nnull     n0
13-Sep-04 nnullf    n0f
13-Sep-04 xpdisj    xpsndisj
13-Sep-04 subdist   subdi
13-Sep-04 negdist   negdi
13-Sep-04 nndist    nndi
13-Sep-04 xpindist  inxp
11-Sep-04 ssd       sseld
11-Sep-04 ssi       sseli
11-Sep-04 vtoclab   elab2
11-Sep-04 vtoclabg  elab2g
11-Sep-04 elab2g    elab3g
 6-Sep-04 comm      com12
 4-Sep-04 opabval   fvopab3
 4-Sep-04 opabvalig fvopab3ig
 4-Sep-04 opabval2g fvopab4g
 4-Sep-04 opabval2  fvopab4
 3-Sep-04 undif2    difun2
 1-Sep-04 dedlem2   [--same--]  swapped arguments of = sign
 1-Sep-04 dedlem1   [--same--]  swapped arguments of = sign
31-Aug-04 pm2.16d   con3d
31-Aug-04 pm2.03d   con2d
31-Aug-04 pm2.15d   con1d
31-Aug-04 pm2.16    con3
31-Aug-04 pm2.03    con2
31-Aug-04 pm2.15    con1
31-Aug-04 con3      con3i
31-Aug-04 con2      con2i
31-Aug-04 con1      con1i
29-Aug-04 oprabelrn elrnoprab
27-Aug-04 ssequn1   [--same--]  swapped arguments of = sign
27-Aug-04 df-ss     dfss
27-Aug-04 imdistanb ---         obsolete; use imdistan
27-Aug-04 imdistan  [--same--]  now includes converse
17-Aug-04 difun2    [--same--]  swapped arguments of = sign
17-Aug-04 undif1    [--same--]  swapped arguments of = sign and union
17-Aug-04 difin     [--same--]  swapped arguments of = sign
17-Aug-04 unindistr undir
17-Aug-04 unindist  undi
17-Aug-04 inundistr indir
17-Aug-04 inundist  indi
17-Aug-04 indist    inindi
16-Aug-04 ss2un     unss12      order of variables changed
15-Aug-04 funmo,dffunmof,dffunmo
                    [--same--]  ordered pair membership -> binary relation
15-Aug-04 dfrel2    [--same--]  swapped arguments of = sign
12-Aug-04 unxp      xpundir
11-Aug-04 elima2    elima3
11-Aug-04 reluni    [--same--]  restricted quantifier and added converse
 9-Aug-04 imun      imaun
 3-Aug-04 1id       om1
 3-Aug-04 oalim     [--same--]  conjoined antecedents; now uses indexed union
 3-Aug-04 divdiv23  divdiv23z
 3-Aug-04 divdiv23i divdiv23
 2-Aug-04 divrec,divrecz [--same--] swapped A and B
 2-Aug-04 zq        zqt
 2-Aug-04 qre       qret
 1-Aug-04 mulcant  [--same--]  swapped conjunct in antecedent
 1-Aug-04 axrecex,axrrecex,divclt,divcan1t,divcan2t,recidt,divdistrt,divrclt
                    [--same--]  conjoined the two left-most antecedents
 1-Aug-04 peano1c   1nn
 1-Aug-04 1nn       1onn
28-Jul-04 sbco0     sbid2
28-Jul-04 sbid2     sbid2v
26-Jul-04 cardonval oncardval
15-Jun-04 ssin      [--same--]  swapped biconditional order
15-Jun-04 unss      [--same--]  swapped biconditional order
11-Jun-04 dfun2     df-un
11-Jun-04 df-un     dfun2
11-Jun-04 dfin2     df-in
11-Jun-04 df-in     dfin2
 3-Jun-04 ssintss   intss
 3-Jun-04 intss     intss1
30-May-04 r1clos    r1pwcl      now uses antecedent instead of hypothesis
30-May-04 r1powt    r1pw
28-May-04 sqvalt    ---         obsolete; use exp2
28-May-04 expntwo   exp2
28-May-04 expnone   ---         obsolete; use expp1t
28-May-04 expnsuc   ---         obsolete; use expp1t
28-May-04 expnzer   ---         obsolete; use exp0t
26-May-04 ontrt     ---         obsolete; use onelon instead
26-May-04 ddelim*   [--same--]  (*=wildcard) changed order of hypotheses
21-May-04 fvcnvb    f1ocnvfvb
21-May-04 fvcnv     f1ocnvfv
21-May-04 sbcb      sbcbig    now uses antecedent instead of hypothesis
21-May-04 sbci      sbcimg
21-May-04 sbb       sbbi
21-May-04 sbo       sbor
21-May-04 sbi       sbim
21-May-04 sbim      sbimi
21-May-04 sba       sban
21-May-04 fvelrn    [--same--]  changed to restricted quantifier
 8-Feb-04 zfpowb    pwexb
 8-Feb-04 zfpowcl   pwex
 8-Feb-04 zfnull    0ex
 8-Feb-04 limelon   [--same--]  changed first -> to /\ in antecedent


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  2. Quick "How To"
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

How to use this file under Windows 95/98/NT/2K/XP/Vista/7/10:

1. Download the program metamath.exe per the instructions on the
   Metamath home page (http://us.metamath.org) and put it in the same
   directory as this file (set.mm).
2. In Windows Explorer, double-click on metamath.exe.
3. Type "read set.mm" and press Enter.
4. Type "help" for a list of help topics, and "help demo" for some
   command examples.


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  3. Bibliography
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Bibliographical references are made by bracketing an identifier in a theorem's
comment, such as [RussellWhitehead].  These refer to HTML tags on the following
web pages:

  Logic and set theory - see http://us.metamath.org/mpeuni/mmset.html#bib
  Hilbert space - see http://us.metamath.org/mpeuni/mmhil.html#ref

A bracketed reference must be preceded by a theorem number, etc. and followed
by a page number.  See HELP WRITE BIBLIOGRAPHY for details.


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  4. Metamath syntax summary
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

The HELP LANGUAGE command in the Metamath program will give you a quick
overview of Metamath.  The official spec is found on pp. 92-95 of the
Metamath book.  The following syntax summary is provided for convenience
but may omit some details.

A Metamath database (set of one or more ASCII source files) is a sequence of
_tokens_, which are normally separated by spaces or line breaks.  The only
tokens that are built into the Metamath language are those (two-character
sequences) beginning with $, shown in the following. These tokens are called
_keywords_:

          $c ... $. - Constant declaration
          $v ... $. - Variable declaration
          $d ... $. - Disjoint (distinct) variable restriction
  <label> $f ... $. - "Floating" hypothesis (i.e. variable type declaration)
  <label> $e ... $. - "Essential" hypothesis (i.e. a logical assumption for a
                      theorem or axiom)
  <label> $a ... $. - Axiom or definition or syntax construction
  <label> $p ... $= ... $. - Theorem and its proof
          ${ ... $} - Block for defining the scope of the above statements
                      (except $a, $p which are forever active)
$)        $( ... $)
$(                  - Comments (may not be nested); see HELP LANGUAGE
                      for markup features.
          $[ ... $] - Include a file

The only "logic" Metamath uses in its proof verification algorithm is the
substitution of expressions for variables while checking for distinct variable
violations.  Everything else, including the axioms for logic, is defined in the
database.

All other tokens are user-defined, and their names are arbitrary.  There are
two kinds of user-defined tokens, called math symbols (or just symbols) and
labels.  A _symbol_ may contain any non-whitespace printable character except
"$".  A _label_ may contain only alphanumeric characters and the characters "."
(period), "-" (hyphen), and "_" (underscore).  Symbols and labels are
case-sensitive.  All labels (except in proofs) must be distinct.  A label may
not have the same name as a symbol (to simplify the coding of certain parsers
and translators).

Here is some more detail about the syntax.:

  $c <symbollist> $.
      <symbollist> is a (whitespace-separated) list of distinct symbols that
      haven't been used before.
  $v <symbollist> $.
      <symbollist> is a list of distinct symbols that haven't been used yet
      in the current scope (see ${ ... $} below).
  $d <symbollist> $.
      <symbollist> is a (whitespace-separated) list of distinct symbols
      previously declared with $v in current scope.  It means that
      substitutions into these symbols may not have variables in common.
  <label> $f <symbollist> $.
      <symbollist> is a list of 2 symbols, the first of which must be
      previously declared with $c in the current scope.
  <label> $e <symbollist> $.
      <symbollist> is a list of 2 or more symbols, the first of which must be
      previously declared with $c in the current scope.
  <label> $a <symbollist> $.
      <symbollist> is a list of 2 or more symbols, the first of which must be
      previously declared with $c in the current scope.
  <label> $p <symbollist> $= <proof> $.
      <symbollist> is a list of 2 or more symbols, the first of which must be
      previously declared with $c in the current scope.  <proof> is either a
      whitespace-delimited sequence of previous labels (created by
      SAVE PROOF <label> /NORMAL) or a compressed proof (created by
      SAVE PROOF <label> /COMPRESSED).  After using SAVE PROOF, use
      WRITE SOURCE to save the database file to disk.
  ${ ... $}
      Block for scoping the above statements (except $a, $p which are forever
      active).  Currently, $c may not occur inside of a block.
$)
  $( <any text> $)
$(    Comment.  Note: <any text> may not contain adjacent "$" and ")"
      characters.  The comment opening and closing delimiters must be
      surrounded by whitespace (space, tab, CR, LF, or FF).
  $[ <filename> $]
      Insert contents of <filename> at this point.  If <filename> is current
      file or has been already been inserted, it will not be inserted again.

Inside of comments, it is recommended that labels be preceded with a tilde (~)
and math symbol tokens be enclosed in grave accents (` `).  This way the LaTeX
and HTML rendition of comments will be accurate, and (future) tools to globally
change labels and math symbols will also change them in comments.  Note that
inside of grave accents a pair of grave accents is interpreted as a single
grave accent.  A special comment containing $ t defines LaTeX and HTML symbols.
See HELP LANGUAGE and HELP HTML for other markup features in comments.

The proofs in this file are in "compressed" format for storage efficiency.  The
Metamath program reads the compressed format directly.  This format is
described in an Appendix of the Metamath book.  It is not intended to be read
by humans.  For viewing proofs you should use the various SHOW PROOF commands
described in the Metamath book (or the on-line HELP).

The Metamath program does not normally affect any content of this file (set.mm)
other than proofs, i.e. the text between "$=" and "$.".  All other content is
user-created.  Proofs are created or modified with the PROVE command.


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  5. Other notes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

1. It is recommended that you be familiar with chapters 2 and 4 of the
'Metamath' book to understand the Metamath language.  Chapters 2, 3 and 5
explain how to use the program.  Chapter 3 gives you an informal overview of
what this source file is all about.  Appendix A shows you the standard
mathematical symbols corresponding to some of the ASCII tokens in this file.

The ASCII tokens may seem cryptic at first, even if you are familiar with set
theory, but a review of the definition summary in Chapter 3 should quickly
enable you to see the correspondence to standard mathematical notation.  To
easily find the definition of a token, search for the first occurrences of the
token surrounded by spaces.  Some odd-looking ones include "-." for "not", and
"C_" for "is a subset of."  (HELP TEX tells you how to obtain a LaTeX output to
see the real mathematical symbols.)  Let me know if you have better suggestions
for naming ASCII tokens.

2. Theorems can be written in different forms: "closed form", "deduction form"
or "inference form" (for details see ~ conventions ).  We prefer to write
theorems in "deduction form" - we call this approach "deduction style" - and
try to avoid theorems in "inference form" unless there are reasonable grounds
for it.

3. On providing new definitions and theorems, the conventions provided in the
comment of ~ conventions should be obeyed.

$)

$( End $[ set-header.mm $] $)


$( Begin $[ set-main.mm $] $)
$( Begin $[ set-pred.mm $] $)

$( The following header is the first to appear in the Theorem List contents,
because higher-level headers suppress all previous same- or lower-level headers
in the same comment area between $a and $p statements.  See HELP WRITE
THEOREM_LIST for information about headers. $)


$(
###############################################################################
  CLASSICAL FIRST-ORDER LOGIC WITH EQUALITY
###############################################################################

  Logic can be defined as the "study of the principles of correct reasoning"
  (Merrilee H. Salmon's 1991 "Informal Reasoning and Informal Logic" in
  _Informal Reasoning and Education_) or as "a formal system using symbolic
  techniques and mathematical methods to establish truth-values" (the Oxford
  English Dictionary).

  This section formally defines the logic system we will use.  In particular,
  it defines symbols for declaring truthful statements, along with rules for
  deriving truthful statements from other truthful statements.  The system
  defined here is classical first-order logic with equality (the most common
  logic system used by mathematicians).

  We begin with a few housekeeping items in pre-logic, and then introduce
  propositional calculus (both its axioms and important theorems that can be
  derived from them).  Propositional calculus deals with general truths about
  well-formed formulas (wffs) regardless of how they are constructed.  This is
  followed by proofs that other axiomatizations of classical propositional
  calculus can be derived from the axioms we have chosen to use.

  We then define predicate calculus, which adds additional symbols and rules
  useful for discussing objects (beyond simply true or false).  In particular,
  it introduces the symbols ` = ` ("equals"), ` e. ` ("is a member of"), and `
  A. ` ("for all").  The first two are called "predicates."  A predicate
  specifies a true or false relationship between its two arguments.

$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Pre-logic
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  This section includes a few "housekeeping" mechanisms before we begin
  defining the basics of logic.

$)

  $( Declare the primitive constant symbols for propositional calculus. $)
  $c ( $.  $( Left parenthesis $)
  $c ) $.  $( Right parenthesis $)
  $c -> $. $( Right arrow (read:  "implies") $)
  $c -. $. $( Right handle (read:  "not") $)
  $c wff $. $( Well-formed formula symbol (read:  "the following symbol
               sequence is a wff") $)
  $c |- $. $( Turnstile (read:  "the following symbol sequence is provable" or
              'a proof exists for") $)

  $( Define the syntax and logical typecodes, and declare that our grammar is
     unambiguous (verifiable using the KLR parser, with compositing depth 5).
     (This $ j comment need not be read by verifiers, but is useful for parsers
     like mmj2.) $)
  $( $j
    syntax 'wff';
    syntax '|-' as 'wff';
    unambiguous 'klr 5';
  $)

  $( Declare typographical constant symbols that are not directly used
     in the formalism, but *are* symbols we find useful when
     explaining the formalism. It is much easier to consistently use
     a single typographical system when generating text. $)

  $c & $. $( Ampersand (read: "and-also") $)
  $c => $. $( Big-to (read: "proves") $)

  $( wff variable sequence:  ph ps ch th ta et ze si rh mu la ka $)
  $( Introduce some variable names we will use to represent well-formed
     formulas (wff's). $)
  $v ph $.  $( Greek phi $)
  $v ps $.  $( Greek psi $)
  $v ch $.  $( Greek chi $)
  $v th $.  $( Greek theta $)
  $v ta $.  $( Greek tau $)
  $v et $.  $( Greek eta $)
  $v ze $.  $( Greek zeta $)
  $v si $.  $( Greek sigma $)
  $v rh $.  $( Greek rho $)
  $v mu $.  $( Greek mu $)
  $v la $.  $( Greek lambda $)
  $v ka $.  $( Greek kappa $)

  $( Specify some variables that we will use to represent wff's.
     The fact that a variable represents a wff is relevant only to a theorem
     referring to that variable, so we may use $f hypotheses.  The symbol
     ` wff ` specifies that the variable that follows it represents a wff. $)
  $( Let variable ` ph ` be a wff. $)
  wph $f wff ph $.
  $( Let variable ` ps ` be a wff. $)
  wps $f wff ps $.
  $( Let variable ` ch ` be a wff. $)
  wch $f wff ch $.
  $( Let variable ` th ` be a wff. $)
  wth $f wff th $.
  $( Let variable ` ta ` be a wff. $)
  wta $f wff ta $.
  $( Let variable ` et ` be a wff. $)
  wet $f wff et $.
  $( Let variable ` ze ` be a wff. $)
  wze $f wff ze $.
  $( Let variable ` si ` be a wff. $)
  wsi $f wff si $.
  $( Let variable ` rh ` be a wff. $)
  wrh $f wff rh $.
  $( Let variable ` mu ` be a wff. $)
  wmu $f wff mu $.
  $( Let variable ` la ` be a wff. $)
  wla $f wff la $.
  $( Let variable ` ka ` be a wff. $)
  wka $f wff ka $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Inferences for assisting proof development
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The inference rules in this section will normally never appear in a completed
  proof.  They can be ignored if you are using this database to assist learning
  logic - please start with the statement ~ wn instead.

$)

  ${
    a1ii.1 $e |- ph $.
    a1ii.2 $e |- ps $.
    $( (_Note_:  This inference rule and the next one, ~ idi , will normally
       never appear in a completed proof.  They can be ignored if you are using
       this database to assist learning logic - please start with the statement
       ~ wn instead.)

       This is a technical inference to assist proof development.  It provides
       a temporary way to add an independent subproof to a proof under
       development, for later assignment to a normal proof step.

       The metamath program's Proof Assistant requires proofs to be developed
       backwards from the conclusion with no gaps, and it has no mechanism that
       lets the user to work on isolated subproofs.  This inference provides a
       workaround for this limitation.  It can be inserted at any point in a
       proof to allow an independent subproof to be developed on the side, for
       later use as part of the final proof.

       _Instructions_:  (1) Assign this inference to any unknown step in the
       proof.  Typically, the last unknown step is the most convenient, since
       'assign last' can be used.  This step will be replicated in hypothesis
       a1ii.1, from where the development of the main proof can continue.  (2)
       Develop the independent subproof backwards from hypothesis a1ii.2.  If
       desired, use a 'let' command to pre-assign the conclusion of the
       independent subproof to a1ii.2.  (3) After the independent subproof is
       complete, use 'improve all' to assign it automatically to an unknown
       step in the main proof that matches it.  (4) After the entire proof is
       complete, use 'minimize *' to clean up (discard) all ~ a1ii references
       automatically.

       This inference was originally designed to assist importing partially
       completed Proof Worksheets from the mmj2 Proof Assistant GUI, but it can
       also be useful on its own.  Interestingly, no axioms are required for
       its proof.  It is the inference associated with ~ a1i .  (Contributed by
       NM, 7-Feb-2006.) $)
    a1ii $p |- ph $=
      (  ) C $.
  $}

  ${
    idi.1 $e |- ph $.
    $( This inference, which requires no axioms for its proof, is useful as a
       copy-paste mechanism during proof development in mmj2.  It is normally
       not referenced in the final version of a proof, since it is always
       redundant and can be removed using the 'minimize *' command in the
       metamath program's Proof Assistant.  It is the inference associated with
       ~ id .  (Contributed by Alan Sare, 31-Dec-2011.) $)
    idi $p |- ph $=
      (  ) B $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Propositional calculus
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  Propositional calculus deals with general truths about well-formed formulas
  (wffs) regardless of how they are constructed.  The simplest propositional
  truth is ` ( ph -> ph ) ` , which can be read "if something is true, then it
  is true" - rather trivial and obvious, but nonetheless it must be proved from
  the axioms (see theorem ~ id ).

  Our system of propositional calculus consists of three basic axioms and
  another axiom that defines the modus-ponens inference rule.  It is attributed
  to Jan Lukasiewicz (pronounced woo-kah-SHAY-vitch) and was popularized by
  Alonzo Church, who called it system P2.  (Thanks to Ted Ulrich for this
  information.)  These axioms are ~ ax-1 , ~ ax-2 , ~ ax-3 , and (for modus
  ponens) ~ ax-mp . Some closely followed texts include [Margaris] for the
  axioms and [WhiteheadRussell] for the theorems.

  The propositional calculus used here is the classical system widely used by
  mathematicians.  In particular, this logic system accepts the "law of the
  excluded middle" as proven in ~ exmid , which says that a logical statement
  is either true or not true.  This is an essential distinction of classical
  logic and is not a theorem of intuitionistic logic.

  All 194 axioms, definitions, and theorems for propositional calculus in
  _Principia Mathematica_ (specifically *1.2 through *5.75) are axioms or
  formally proven.  See the Bibliographic Cross-References at ~ mmbiblio.html
  for a complete cross-reference from sources used to its formalization in the
  Metamath Proof Explorer.

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Recursively define primitive wffs for propositional calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( If ` ph ` is a wff, so is ` -. ph ` or "not ` ph ` ."  Part of the
     recursive definition of a wff (well-formed formula).  In classical logic
     (which is our logic), a wff is interpreted as either true or false.  So if
     ` ph ` is true, then ` -. ph ` is false; if ` ph ` is false, then
     ` -. ph ` is true.  Traditionally, Greek letters are used to represent
     wffs, and we follow this convention.  In propositional calculus, we define
     only wffs built up from other wffs, i.e. there is no starting or "atomic"
     wff.  Later, in predicate calculus, we will extend the basic wff
     definition by including atomic wffs ( ~ weq and ~ wel ). $)
  wn $a wff -. ph $.

  $( If ` ph ` and ` ps ` are wff's, so is ` ( ph -> ps ) ` or " ` ph ` implies
     ` ps ` ."  Part of the recursive definition of a wff.  The resulting wff
     is (interpreted as) false when ` ph ` is true and ` ps ` is false; it is
     true otherwise.  Think of the truth table for an OR gate with input ` ph `
     connected through an inverter.  After we define the axioms of
     propositional calculus ( ~ ax-1 , ~ ax-2 , ~ ax-3 , and ~ ax-mp ), the
     biconditional ( ~ df-bi ), the constant true ` T. ` ( ~ df-tru ), and the
     constant false ` F. ` ( ~ df-fal ), we will be able to prove these truth
     table values: ` ( ( T. -> T. ) <-> T. ) ` ( ~ truimtru ),
     ` ( ( T. -> F. ) <-> F. ) ` ( ~ truimfal ), ` ( ( F. -> T. ) <-> T. ) `
     ( ~ falimtru ), and ` ( ( F. -> F. ) <-> T. ) ` ( ~ falimfal ).  These
     have straightforward meanings, for example, ` ( ( T. -> T. ) <-> T. ) `
     just means "the value of ` ( T. -> T. ) ` is ` T. ` ".

     The left-hand wff is called the antecedent, and the right-hand wff is
     called the consequent.  In the case of ` ( ph -> ( ps -> ch ) ) ` , the
     middle ` ps ` may be informally called either an antecedent or part of the
     consequent depending on context.  Contrast with ` <-> ` ( ~ df-bi ),
     ` /\ ` ( ~ df-an ), and ` \/ ` ( ~ df-or ).

     This is called "material implication" and the arrow is usually read as
     "implies."  However, material implication is not identical to the meaning
     of "implies" in natural language.  For example, the word "implies" may
     suggest a causal relationship in natural language.  Material implication
     does not require any causal relationship.  Also, note that in material
     implication, if the consequent is true then the wff is always true (even
     if the antecedent is false).  Thus, if "implies" means material
     implication, it is true that "if the moon is made of green cheese that
     implies that 5=5" (because 5=5).  Similarly, if the antecedent is false,
     the wff is always true.  Thus, it is true that, "if the moon is made of
     green cheese that implies that 5=7" (because the moon is not actually made
     of green cheese).  A contradiction implies anything ( ~ pm2.21i ).  In
     short, material implication has a very specific technical definition, and
     misunderstandings of it are sometimes called "paradoxes of logical
     implication." $)
  wi $a wff ( ph -> ps ) $.

  $( Register '-.' and '->' as primitive expressions (lacking definitions). $)
  $( $j primitive 'wn' 'wi'; $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The axioms of propositional calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Propositional calculus (axioms ~ ax-1 through ~ ax-3 and rule ~ ax-mp ) can
  be thought of as asserting formulas that are universally "true" when their
  variables are replaced by any combination of "true" and "false."
  Propositional calculus was first formalized by Frege in 1879, using as his
  axioms (in addition to rule ~ ax-mp ) the wffs ~ ax-1 , ~ ax-2 , ~ pm2.04 ,
  ~ con3 , ~ notnot , and ~ notnotr .  Around 1930, Lukasiewicz simplified the
  system by eliminating the third (which follows from the first two, as you can
  see by looking at the proof of ~ pm2.04 ) and replacing the last three with
  our ~ ax-3 .  (Thanks to Ted Ulrich for this information.)

  The theorems of propositional calculus are also called _tautologies_.
  Tautologies can be proved very simply using truth tables, based on the
  true/false interpretation of propositional calculus.  To do this, we assign
  all possible combinations of true and false to the wff variables and verify
  that the result (using the rules described in ~ wi and ~ wn ) always
  evaluates to true.  This is called the _semantic_ approach.  Our approach is
  called the _syntactic_ approach, in which everything is derived from axioms.
  A metatheorem called the Completeness Theorem for Propositional Calculus
  shows that the two approaches are equivalent and even provides an algorithm
  for automatically generating syntactic proofs from a truth table.  Those
  proofs, however, tend to be long, since truth tables grow exponentially with
  the number of variables, and the much shorter proofs that we show here were
  found manually.

$)

  ${
    $( Minor premise for modus ponens. $)
    min $e |- ph $.
    $( Major premise for modus ponens. $)
    maj $e |- ( ph -> ps ) $.
    $( Rule of Modus Ponens.  The postulated inference rule of propositional
       calculus.  See e.g.  Rule 1 of [Hamilton] p. 73.  The rule says, "if
       ` ph ` is true, and ` ph ` implies ` ps ` , then ` ps ` must also be
       true."  This rule is sometimes called "detachment," since it detaches
       the minor premise from the major premise.  "Modus ponens" is short for
       "modus ponendo ponens," a Latin phrase that means "the mode that by
       affirming affirms" - remark in [Sanford] p. 39.  This rule is similar to
       the rule of modus tollens ~ mto .

       Note:  In some web page displays such as the Statement List, the
       symbols " ` & ` " and " ` => ` " informally indicate the relationship
       between the hypotheses and the assertion (conclusion), abbreviating the
       English words "and" and "implies."  They are not part of the formal
       language.  (Contributed by NM, 30-Sep-1992.) $)
    ax-mp $a |- ps $.
  $}

  $( Axiom _Simp_.  Axiom A1 of [Margaris] p. 49.  One of the 3 axioms of
     propositional calculus.  The 3 axioms are also given as Definition 2.1 of
     [Hamilton] p. 28.  This axiom is called _Simp_ or "the principle of
     simplification" in _Principia Mathematica_ (Theorem *2.02 of
     [WhiteheadRussell] p. 100) because "it enables us to pass from the joint
     assertion of ` ph ` and ` ps ` to the assertion of ` ph ` simply."  It is
     Proposition 1 of [Frege1879] p. 26, its first axiom.  (Contributed by NM,
     30-Sep-1992.) $)
  ax-1 $a |- ( ph -> ( ps -> ph ) ) $.

  $( Axiom _Frege_.  Axiom A2 of [Margaris] p. 49.  One of the 3 axioms of
     propositional calculus.  It "distributes" an antecedent over two
     consequents.  This axiom was part of Frege's original system and is known
     as _Frege_ in the literature; see Proposition 2 of [Frege1879] p. 26.  It
     is also proved as Theorem *2.77 of [WhiteheadRussell] p. 108.  The other
     direction of this axiom also turns out to be true, as demonstrated by
     ~ pm5.41 .  (Contributed by NM, 30-Sep-1992.) $)
  ax-2 $a |- ( ( ph -> ( ps -> ch ) ) -> ( ( ph -> ps ) -> ( ph -> ch ) ) ) $.

  $( Axiom _Transp_.  Axiom A3 of [Margaris] p. 49.  One of the 3 axioms of
     propositional calculus.  It swaps or "transposes" the order of the
     consequents when negation is removed.  An informal example is that the
     statement "if there are no clouds in the sky, it is not raining" implies
     the statement "if it is raining, there are clouds in the sky."  This axiom
     is called _Transp_ or "the principle of transposition" in _Principia
     Mathematica_ (Theorem *2.17 of [WhiteheadRussell] p. 103).  We will also
     use the term "contraposition" for this principle, although the reader is
     advised that in the field of philosophical logic, "contraposition" has a
     different technical meaning.  (Contributed by NM, 30-Sep-1992.)  Use its
     alias ~ con4 instead.  (New usage is discouraged.) $)
  ax-3 $a |- ( ( -. ph -> -. ps ) -> ( ps -> ph ) ) $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Logical implication
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The results in this section are based on implication only, and avoid
  ~ ax-3 , so are intuitionistic.  The system { ~ ax-mp , ~ ax-1 , ~ ax-2 }
  axiomatizes what is sometimes called "intuitionistic implicational calculus"
  or "minimal implicational calculus."

  In an implication, the wff before the arrow is called the "antecedent" and
  the wff after the arrow is called the "consequent."

$)

  ${
    mp2.1 $e |- ph $.
    mp2.2 $e |- ps $.
    mp2.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A double modus ponens inference.  (Contributed by NM, 5-Apr-1994.) $)
    mp2 $p |- ch $=
      ( wi ax-mp ) BCEABCGDFHH $.
  $}

  ${
    mp2b.1 $e |- ph $.
    mp2b.2 $e |- ( ph -> ps ) $.
    mp2b.3 $e |- ( ps -> ch ) $.
    $( A double modus ponens inference.  (Contributed by Mario Carneiro,
       24-Jan-2013.) $)
    mp2b $p |- ch $=
      ( ax-mp ) BCABDEGFG $.
  $}

  ${
    a1i.1 $e |- ph $.
    $( Inference introducing an antecedent.  Inference associated with ~ ax-1 .
       Its associated inference is ~ a1ii .  See ~ conventions for a definition
       of "associated inference".  (Contributed by NM, 29-Dec-1992.) $)
    a1i $p |- ( ps -> ph ) $=
      ( wi ax-1 ax-mp ) ABADCABEF $.
  $}

  ${
    2a1i.1 $e |- ph $.
    $( Inference introducing two antecedents.  Two applications of ~ a1i .
       Inference associated with ~ 2a1 .  (Contributed by Jeff Hankins,
       4-Aug-2009.) $)
    2a1i $p |- ( ps -> ( ch -> ph ) ) $=
      ( wi a1i ) CAEBACDFF $.
  $}

  ${
    mp1i.1 $e |- ph $.
    mp1i.2 $e |- ( ph -> ps ) $.
    $( Inference detaching an antecedent and introducing a new one.
       (Contributed by Stefan O'Rear, 29-Jan-2015.) $)
    mp1i $p |- ( ch -> ps ) $=
      ( ax-mp a1i ) BCABDEFG $.
  $}

  ${
    a2i.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference distributing an antecedent.  Inference associated with
       ~ ax-2 .  Its associated inference is ~ mpd .  (Contributed by NM,
       29-Dec-1992.) $)
    a2i $p |- ( ( ph -> ps ) -> ( ph -> ch ) ) $=
      ( wi ax-2 ax-mp ) ABCEEABEACEEDABCFG $.
  $}

  ${
    mpd.1 $e |- ( ph -> ps ) $.
    mpd.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A modus ponens deduction.  A translation of natural deduction rule
       ` -> ` E ( ` -> ` elimination), see ~ natded .  Deduction form of
       ~ ax-mp .  Inference associated with ~ a2i .  Commuted form of ~ mpcom .
       (Contributed by NM, 29-Dec-1992.) $)
    mpd $p |- ( ph -> ch ) $=
      ( wi a2i ax-mp ) ABFACFDABCEGH $.
  $}

  ${
    imim2i.1 $e |- ( ph -> ps ) $.
    $( Inference adding common antecedents in an implication.  Inference
       associated with ~ imim2 .  Its associated inference is ~ syl .
       (Contributed by NM, 28-Dec-1992.) $)
    imim2i $p |- ( ( ch -> ph ) -> ( ch -> ps ) ) $=
      ( wi a1i a2i ) CABABECDFG $.
  $}

  ${
    $( First of 2 premises for ~ syl . $)
    syl.1 $e |- ( ph -> ps ) $.
    $( Second of 2 premises for ~ syl . $)
    syl.2 $e |- ( ps -> ch ) $.
    $( An inference version of the transitive laws for implication ~ imim2 and
       ~ imim1 (and ~ imim1i and ~ imim2i ), which Russell and Whitehead call
       "the principle of the syllogism...because...the syllogism in Barbara is
       derived from them" (quote after Theorem *2.06 of [WhiteheadRussell]
       p. 101).  Some authors call this law a "hypothetical syllogism."  Its
       associated inference is ~ mp2b .

       (A bit of trivia: this is the most commonly referenced assertion in our
       database (13449 times as of 22-Jul-2021).  In second place is ~ eqid
       (9597 times), followed by ~ adantr (8861 times), ~ syl2anc (7421 times),
       ~ adantl (6403 times), and ~ simpr (5829 times).  The Metamath program
       command 'show usage' shows the number of references.)

       (Contributed by NM, 30-Sep-1992.)  (Proof shortened by Mel L. O'Cat,
       20-Oct-2011.)  (Proof shortened by Wolf Lammen, 26-Jul-2012.) $)
    syl $p |- ( ph -> ch ) $=
      ( wi a1i mpd ) ABCDBCFAEGH $.
  $}

  ${
    3syl.1 $e |- ( ph -> ps ) $.
    3syl.2 $e |- ( ps -> ch ) $.
    3syl.3 $e |- ( ch -> th ) $.
    $( Inference chaining two syllogisms ~ syl .  Inference associated with
       ~ imim12i .  (Contributed by NM, 28-Dec-1992.) $)
    3syl $p |- ( ph -> th ) $=
      ( syl ) ACDABCEFHGH $.
  $}

  ${
    4syl.1 $e |- ( ph -> ps ) $.
    4syl.2 $e |- ( ps -> ch ) $.
    4syl.3 $e |- ( ch -> th ) $.
    4syl.4 $e |- ( th -> ta ) $.
    $( Inference chaining three syllogisms ~ syl .  (Contributed by BJ,
       14-Jul-2018.)  The use of this theorem is marked "discouraged" because
       it can cause the "minimize" command to have very long run times.
       However, feel free to use "minimize 4syl /override" if you wish.
       Remember to update the Travis "discouraged" file if it gets used.
       (New usage is discouraged.) $)
    4syl $p |- ( ph -> ta ) $=
      ( 3syl syl ) ADEABCDFGHJIK $.
  $}

  ${
    mpi.1 $e |- ps $.
    mpi.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A nested modus ponens inference.  Inference associated with ~ com12 .
       (Contributed by NM, 29-Dec-1992.)  (Proof shortened by Stefan Allan,
       20-Mar-2006.) $)
    mpi $p |- ( ph -> ch ) $=
      ( a1i mpd ) ABCBADFEG $.
  $}

  ${
    mpisyl.1 $e |- ( ph -> ps ) $.
    mpisyl.2 $e |- ch $.
    mpisyl.3 $e |- ( ps -> ( ch -> th ) ) $.
    $( A syllogism combined with a modus ponens inference.  (Contributed by
       Alan Sare, 25-Jul-2011.) $)
    mpisyl $p |- ( ph -> th ) $=
      ( mpi syl ) ABDEBCDFGHI $.
  $}

  $( Principle of identity.  Theorem *2.08 of [WhiteheadRussell] p. 101.  For
     another version of the proof directly from axioms, see ~ idALT .  Its
     associated inference, ~ idi , requires no axioms for its proof, contrary
     to ~ id .  Note that the second occurrences of ` ph ` in Steps 1 and 2 may
     be simultaneously replaced by any wff ` ps ` , which may ease the
     understanding of the proof.  (Contributed by NM, 29-Dec-1992.)  (Proof
     shortened by Stefan Allan, 20-Mar-2006.) $)
  id $p |- ( ph -> ph ) $=
    ( wi ax-1 mpd ) AAABZAAACAECD $.

  $( Alternate proof of ~ id .  This version is proved directly from the axioms
     for demonstration purposes.  This proof is a popular example in the
     literature and is identical, step for step, to the proofs of Theorem 1 of
     [Margaris] p. 51, Example 2.7(a) of [Hamilton] p. 31, Lemma 10.3 of
     [BellMachover] p. 36, and Lemma 1.8 of [Mendelson] p. 36.  It is also "Our
     first proof" in Hirst and Hirst's _A Primer for Logic and Proof_ p. 17
     (PDF p. 23) at ~ http://www.appstate.edu/~~hirstjl/primer/hirst.pdf .
     Note that the second occurrences of ` ph ` in Steps 1 to 4 and the sixth
     in Step 3 may be simultaneously replaced by any wff ` ps ` , which may
     ease the understanding of the proof.  For a shorter version of the proof
     that takes advantage of previously proved theorems, see ~ id .
     (Contributed by NM, 30-Sep-1992.)  (Proof modification is discouraged.)
     Use ~ id instead.  (New usage is discouraged.) $)
  idALT $p |- ( ph -> ph ) $=
    ( wi ax-1 ax-2 ax-mp ) AAABZBZFAACAFABBGFBAFCAFADEE $.

  $( Principle of identity ~ id with antecedent.  (Contributed by NM,
     26-Nov-1995.) $)
  idd $p |- ( ph -> ( ps -> ps ) ) $=
    ( wi id a1i ) BBCABDE $.

  ${
    a1d.1 $e |- ( ph -> ps ) $.
    $( Deduction introducing an embedded antecedent.  Deduction form of ~ ax-1
       and ~ a1i .  (Contributed by NM, 5-Jan-1993.)  (Proof shortened by
       Stefan Allan, 20-Mar-2006.) $)
    a1d $p |- ( ph -> ( ch -> ps ) ) $=
      ( wi ax-1 syl ) ABCBEDBCFG $.
  $}

  ${
    2a1d.1 $e |- ( ph -> ps ) $.
    $( Deduction introducing two antecedents.  Two applications of ~ a1d .
       Deduction associated with ~ 2a1 and ~ 2a1i .  (Contributed by BJ,
       10-Aug-2020.) $)
    2a1d $p |- ( ph -> ( ch -> ( th -> ps ) ) ) $=
      ( wi a1d ) ADBFCABDEGG $.
  $}

  ${
    a1i13.1 $e |- ( ps -> th ) $.
    $( Add two antecedents to a wff.  (Contributed by Jeff Hankins,
       4-Aug-2009.) $)
    a1i13 $p |- ( ph -> ( ps -> ( ch -> th ) ) ) $=
      ( wi a1d a1i ) BCDFFABDCEGH $.
  $}

  $( A double form of ~ ax-1 .  Its associated inference is ~ 2a1i .  Its
     associated deduction is ~ 2a1d .  (Contributed by BJ, 10-Aug-2020.)
     (Proof shortened by Wolf Lammen, 1-Sep-2020.) $)
  2a1 $p |- ( ph -> ( ps -> ( ch -> ph ) ) ) $=
    ( id 2a1d ) AABCADE $.

  ${
    a2d.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( Deduction distributing an embedded antecedent.  Deduction form of
       ~ ax-2 .  (Contributed by NM, 23-Jun-1994.) $)
    a2d $p |- ( ph -> ( ( ps -> ch ) -> ( ps -> th ) ) ) $=
      ( wi ax-2 syl ) ABCDFFBCFBDFFEBCDGH $.
  $}

  ${
    sylcom.1 $e |- ( ph -> ( ps -> ch ) ) $.
    sylcom.2 $e |- ( ps -> ( ch -> th ) ) $.
    $( Syllogism inference with commutation of antecedents.  (Contributed by
       NM, 29-Aug-2004.)  (Proof shortened by Mel L. O'Cat, 2-Feb-2006.)
       (Proof shortened by Stefan Allan, 23-Feb-2006.) $)
    sylcom $p |- ( ph -> ( ps -> th ) ) $=
      ( wi a2i syl ) ABCGBDGEBCDFHI $.
  $}

  ${
    syl5com.1 $e |- ( ph -> ps ) $.
    syl5com.2 $e |- ( ch -> ( ps -> th ) ) $.
    $( Syllogism inference with commuted antecedents.  (Contributed by NM,
       24-May-2005.) $)
    syl5com $p |- ( ph -> ( ch -> th ) ) $=
      ( a1d sylcom ) ACBDABCEGFH $.
  $}

  ${
    com12.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference that swaps (commutes) antecedents in an implication.
       Inference associated with ~ pm2.04 .  Its associated inference is
       ~ mpi .  (Contributed by NM, 29-Dec-1992.)  (Proof shortened by Wolf
       Lammen, 4-Aug-2012.) $)
    com12 $p |- ( ps -> ( ph -> ch ) ) $=
      ( id syl5com ) BBACBEDF $.
  $}

  ${
    syl11.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl11.2 $e |- ( th -> ph ) $.
    $( A syllogism inference.  Commuted form of an instance of ~ syl .
       (Contributed by BJ, 25-Oct-2021.) $)
    syl11 $p |- ( ps -> ( th -> ch ) ) $=
      ( wi syl com12 ) DBCDABCGFEHI $.
  $}

  ${
    syl5.1 $e |- ( ph -> ps ) $.
    syl5.2 $e |- ( ch -> ( ps -> th ) ) $.
    $( A syllogism rule of inference.  The first premise is used to replace the
       second antecedent of the second premise.  (Contributed by NM,
       27-Dec-1992.)  (Proof shortened by Wolf Lammen, 25-May-2013.) $)
    syl5 $p |- ( ch -> ( ph -> th ) ) $=
      ( syl5com com12 ) ACDABCDEFGH $.
  $}

  ${
    syl6.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6.2 $e |- ( ch -> th ) $.
    $( A syllogism rule of inference.  The second premise is used to replace
       the consequent of the first premise.  (Contributed by NM, 5-Jan-1993.)
       (Proof shortened by Wolf Lammen, 30-Jul-2012.) $)
    syl6 $p |- ( ph -> ( ps -> th ) ) $=
      ( wi a1i sylcom ) ABCDECDGBFHI $.
  $}

  ${
    syl56.1 $e |- ( ph -> ps ) $.
    syl56.2 $e |- ( ch -> ( ps -> th ) ) $.
    syl56.3 $e |- ( th -> ta ) $.
    $( Combine ~ syl5 and ~ syl6 .  (Contributed by NM, 14-Nov-2013.) $)
    syl56 $p |- ( ch -> ( ph -> ta ) ) $=
      ( syl6 syl5 ) ABCEFCBDEGHIJ $.
  $}

  ${
    syl6com.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6com.2 $e |- ( ch -> th ) $.
    $( Syllogism inference with commuted antecedents.  (Contributed by NM,
       25-May-2005.) $)
    syl6com $p |- ( ps -> ( ph -> th ) ) $=
      ( syl6 com12 ) ABDABCDEFGH $.
  $}

  ${
    mpcom.1 $e |- ( ps -> ph ) $.
    mpcom.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Modus ponens inference with commutation of antecedents.  Commuted form
       of ~ mpd .  (Contributed by NM, 17-Mar-1996.) $)
    mpcom $p |- ( ps -> ch ) $=
      ( com12 mpd ) BACDABCEFG $.
  $}

  ${
    syli.1 $e |- ( ps -> ( ph -> ch ) ) $.
    syli.2 $e |- ( ch -> ( ph -> th ) ) $.
    $( Syllogism inference with common nested antecedent.  (Contributed by NM,
       4-Nov-2004.) $)
    syli $p |- ( ps -> ( ph -> th ) ) $=
      ( com12 sylcom ) BACDECADFGH $.
  $}

  ${
    syl2im.1 $e |- ( ph -> ps ) $.
    syl2im.2 $e |- ( ch -> th ) $.
    syl2im.3 $e |- ( ps -> ( th -> ta ) ) $.
    $( Replace two antecedents.  Implication-only version of ~ syl2an .
       (Contributed by Wolf Lammen, 14-May-2013.) $)
    syl2im $p |- ( ph -> ( ch -> ta ) ) $=
      ( wi syl5 syl ) ABCEIFCDBEGHJK $.

    $( A commuted version of ~ syl2im .  Implication-only version of
       ~ syl2anr .  (Contributed by BJ, 20-Oct-2021.) $)
    syl2imc $p |- ( ch -> ( ph -> ta ) ) $=
      ( syl2im com12 ) ACEABCDEFGHIJ $.
  $}

  $( This theorem, called "Assertion," can be thought of as closed form of
     modus ponens ~ ax-mp .  Theorem *2.27 of [WhiteheadRussell] p. 104.
     (Contributed by NM, 15-Jul-1993.) $)
  pm2.27 $p |- ( ph -> ( ( ph -> ps ) -> ps ) ) $=
    ( wi id com12 ) ABCZABFDE $.

  ${
    mpdd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    mpdd.2 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( A nested modus ponens deduction.  Double deduction associated with
       ~ ax-mp .  Deduction associated with ~ mpd .  (Contributed by NM,
       12-Dec-2004.) $)
    mpdd $p |- ( ph -> ( ps -> th ) ) $=
      ( wi a2d mpd ) ABCGBDGEABCDFHI $.
  $}

  ${
    mpid.1 $e |- ( ph -> ch ) $.
    mpid.2 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( A nested modus ponens deduction.  Deduction associated with ~ mpi .
       (Contributed by NM, 14-Dec-2004.) $)
    mpid $p |- ( ph -> ( ps -> th ) ) $=
      ( a1d mpdd ) ABCDACBEGFH $.
  $}

  ${
    mpdi.1 $e |- ( ps -> ch ) $.
    mpdi.2 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( A nested modus ponens deduction.  (Contributed by NM, 16-Apr-2005.)
       (Proof shortened by Mel L. O'Cat, 15-Jan-2008.) $)
    mpdi $p |- ( ph -> ( ps -> th ) ) $=
      ( wi a1i mpdd ) ABCDBCGAEHFI $.
  $}

  ${
    mpii.1 $e |- ch $.
    mpii.2 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( A doubly nested modus ponens inference.  (Contributed by NM,
       31-Dec-1993.)  (Proof shortened by Wolf Lammen, 31-Jul-2012.) $)
    mpii $p |- ( ph -> ( ps -> th ) ) $=
      ( a1i mpdi ) ABCDCBEGFH $.
  $}

  ${
    syld.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syld.2 $e |- ( ph -> ( ch -> th ) ) $.
    $( Syllogism deduction.  Deduction associated with ~ syl .  See
       ~ conventions for the meaning of "associated deduction" or "deduction
       form".  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Mel L.
       O'Cat, 19-Feb-2008.)  (Proof shortened by Wolf Lammen, 3-Aug-2012.) $)
    syld $p |- ( ph -> ( ps -> th ) ) $=
      ( wi a1d mpdd ) ABCDEACDGBFHI $.
    $( Syllogism deduction.  Commuted form of ~ syld .  (Contributed by BJ,
       25-Oct-2021.) $)
    syldc $p |- ( ps -> ( ph -> th ) ) $=
      ( syld com12 ) ABDABCDEFGH $.
  $}

  ${
    mp2d.1 $e |- ( ph -> ps ) $.
    mp2d.2 $e |- ( ph -> ch ) $.
    mp2d.3 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( A double modus ponens deduction.  Deduction associated with ~ mp2 .
       (Contributed by NM, 23-May-2013.)  (Proof shortened by Wolf Lammen,
       23-Jul-2013.) $)
    mp2d $p |- ( ph -> th ) $=
      ( mpid mpd ) ABDEABCDFGHI $.
  $}

  ${
    a1dd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Double deduction introducing an antecedent.  Deduction associated with
       ~ a1d .  Double deduction associated with ~ ax-1 and ~ a1i .
       (Contributed by NM, 17-Dec-2004.)  (Proof shortened by Mel L. O'Cat,
       15-Jan-2008.) $)
    a1dd $p |- ( ph -> ( ps -> ( th -> ch ) ) ) $=
      ( wi ax-1 syl6 ) ABCDCFECDGH $.
  $}

  ${
    2a1dd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Double deduction introducing two antecedents.  Two applications of
       ~ 2a1dd .  Deduction associated with ~ 2a1d .  Double deduction
       associated with ~ 2a1 and ~ 2a1i .  (Contributed by Jeff Hankins,
       5-Aug-2009.) $)
    2a1dd $p |- ( ph -> ( ps -> ( th -> ( ta -> ch ) ) ) ) $=
      ( wi a1dd ) ABECGDABCEFHH $.
  $}

  ${
    pm2.43i.1 $e |- ( ph -> ( ph -> ps ) ) $.
    $( Inference absorbing redundant antecedent.  Inference associated with
       ~ pm2.43 .  (Contributed by NM, 10-Jan-1993.)  (Proof shortened by Mel
       L. O'Cat, 28-Nov-2008.) $)
    pm2.43i $p |- ( ph -> ps ) $=
      ( id mpd ) AABADCE $.
  $}

  ${
    pm2.43d.1 $e |- ( ph -> ( ps -> ( ps -> ch ) ) ) $.
    $( Deduction absorbing redundant antecedent.  Deduction associated with
       ~ pm2.43 and ~ pm2.43i .  (Contributed by NM, 18-Aug-1993.)  (Proof
       shortened by Mel L. O'Cat, 28-Nov-2008.) $)
    pm2.43d $p |- ( ph -> ( ps -> ch ) ) $=
      ( id mpdi ) ABBCBEDF $.
  $}

  ${
    pm2.43a.1 $e |- ( ps -> ( ph -> ( ps -> ch ) ) ) $.
    $( Inference absorbing redundant antecedent.  (Contributed by NM,
       7-Nov-1995.)  (Proof shortened by Mel L. O'Cat, 28-Nov-2008.) $)
    pm2.43a $p |- ( ps -> ( ph -> ch ) ) $=
      ( id mpid ) BABCBEDF $.
  $}

  ${
    pm2.43b.1 $e |- ( ps -> ( ph -> ( ps -> ch ) ) ) $.
    $( Inference absorbing redundant antecedent.  (Contributed by NM,
       31-Oct-1995.) $)
    pm2.43b $p |- ( ph -> ( ps -> ch ) ) $=
      ( pm2.43a com12 ) BACABCDEF $.
  $}

  $( Absorption of redundant antecedent.  Also called the "Contraction" or
     "Hilbert" axiom.  Theorem *2.43 of [WhiteheadRussell] p. 106.
     (Contributed by NM, 10-Jan-1993.)  (Proof shortened by Mel L. O'Cat,
     15-Aug-2004.) $)
  pm2.43 $p |- ( ( ph -> ( ph -> ps ) ) -> ( ph -> ps ) ) $=
    ( wi pm2.27 a2i ) AABCBABDE $.

  ${
    imim2d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction adding nested antecedents.  Deduction associated with ~ imim2
       and ~ imim2i .  (Contributed by NM, 10-Jan-1993.) $)
    imim2d $p |- ( ph -> ( ( th -> ps ) -> ( th -> ch ) ) ) $=
      ( wi a1d a2d ) ADBCABCFDEGH $.
  $}

  $( A closed form of syllogism (see ~ syl ).  Theorem *2.05 of
     [WhiteheadRussell] p. 100.  Its associated inference is ~ imim2i .  Its
     associated deduction is ~ imim2d .  (Contributed by NM, 29-Dec-1992.)
     (Proof shortened by Wolf Lammen, 6-Sep-2012.) $)
  imim2 $p |- ( ( ph -> ps ) -> ( ( ch -> ph ) -> ( ch -> ps ) ) ) $=
    ( wi id imim2d ) ABDZABCGEF $.

  ${
    embantd.1 $e |- ( ph -> ps ) $.
    embantd.2 $e |- ( ph -> ( ch -> th ) ) $.
    $( Deduction embedding an antecedent.  (Contributed by Wolf Lammen,
       4-Oct-2013.) $)
    embantd $p |- ( ph -> ( ( ps -> ch ) -> th ) ) $=
      ( wi imim2d mpid ) ABCGBDEACDBFHI $.
  $}

  ${
    3syld.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3syld.2 $e |- ( ph -> ( ch -> th ) ) $.
    3syld.3 $e |- ( ph -> ( th -> ta ) ) $.
    $( Triple syllogism deduction.  Deduction associated with ~ 3syld .
       (Contributed by Jeff Hankins, 4-Aug-2009.) $)
    3syld $p |- ( ph -> ( ps -> ta ) ) $=
      ( syld ) ABDEABCDFGIHI $.
  $}

  ${
    sylsyld.1 $e |- ( ph -> ps ) $.
    sylsyld.2 $e |- ( ph -> ( ch -> th ) ) $.
    sylsyld.3 $e |- ( ps -> ( th -> ta ) ) $.
    $( A double syllogism inference.  (Contributed by Alan Sare,
       20-Apr-2011.) $)
    sylsyld $p |- ( ph -> ( ch -> ta ) ) $=
      ( wi syl syld ) ACDEGABDEIFHJK $.
  $}

  ${
    imim12i.1 $e |- ( ph -> ps ) $.
    imim12i.2 $e |- ( ch -> th ) $.
    $( Inference joining two implications.  Inference associated with
       ~ imim12 .  Its associated inference is ~ 3syl .  (Contributed by NM,
       12-Mar-1993.)  (Proof shortened by Mel L. O'Cat, 29-Oct-2011.) $)
    imim12i $p |- ( ( ps -> ch ) -> ( ph -> th ) ) $=
      ( wi imim2i syl5 ) ABBCGDECDBFHI $.
  $}

  ${
    imim1i.1 $e |- ( ph -> ps ) $.
    $( Inference adding common consequents in an implication, thereby
       interchanging the original antecedent and consequent.  Inference
       associated with ~ imim1 .  Its associated inference is ~ syl .
       (Contributed by NM, 28-Dec-1992.)  (Proof shortened by Wolf Lammen,
       4-Aug-2012.) $)
    imim1i $p |- ( ( ps -> ch ) -> ( ph -> ch ) ) $=
      ( id imim12i ) ABCCDCEF $.
  $}

  ${
    imim3i.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference adding three nested antecedents.  (Contributed by NM,
       19-Dec-2006.) $)
    imim3i $p |- ( ( th -> ph ) -> ( ( th -> ps ) -> ( th -> ch ) ) ) $=
      ( wi imim2i a2d ) DAFDBCABCFDEGH $.
  $}

  ${
    sylc.1 $e |- ( ph -> ps ) $.
    sylc.2 $e |- ( ph -> ch ) $.
    sylc.3 $e |- ( ps -> ( ch -> th ) ) $.
    $( A syllogism inference combined with contraction.  (Contributed by NM,
       4-May-1994.)  (Revised by NM, 13-Jul-2013.) $)
    sylc $p |- ( ph -> th ) $=
      ( syl2im pm2.43i ) ADABACDEFGHI $.
  $}

  ${
    syl3c.1 $e |- ( ph -> ps ) $.
    syl3c.2 $e |- ( ph -> ch ) $.
    syl3c.3 $e |- ( ph -> th ) $.
    syl3c.4 $e |- ( ps -> ( ch -> ( th -> ta ) ) ) $.
    $( A syllogism inference combined with contraction.  (Contributed by Alan
       Sare, 7-Jul-2011.) $)
    syl3c $p |- ( ph -> ta ) $=
      ( wi sylc mpd ) ADEHABCDEJFGIKL $.
  $}

  ${
    syl6mpi.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6mpi.2 $e |- th $.
    syl6mpi.3 $e |- ( ch -> ( th -> ta ) ) $.
    $( A syllogism inference.  (Contributed by Alan Sare, 8-Jul-2011.)  (Proof
       shortened by Wolf Lammen, 13-Sep-2012.) $)
    syl6mpi $p |- ( ph -> ( ps -> ta ) ) $=
      ( mpi syl6 ) ABCEFCDEGHIJ $.
  $}

  ${
    mpsyl.1 $e |- ph $.
    mpsyl.2 $e |- ( ps -> ch ) $.
    mpsyl.3 $e |- ( ph -> ( ch -> th ) ) $.
    $( Modus ponens combined with a syllogism inference.  (Contributed by Alan
       Sare, 20-Apr-2011.) $)
    mpsyl $p |- ( ps -> th ) $=
      ( a1i sylc ) BACDABEHFGI $.
  $}

  ${
    mpsylsyld.1 $e |- ph $.
    mpsylsyld.2 $e |- ( ps -> ( ch -> th ) ) $.
    mpsylsyld.3 $e |- ( ph -> ( th -> ta ) ) $.
    $( Modus ponens combined with a double syllogism inference.  (Contributed
       by Alan Sare, 22-Jul-2012.) $)
    mpsylsyld $p |- ( ps -> ( ch -> ta ) ) $=
      ( a1i sylsyld ) BACDEABFIGHJ $.
  $}

  ${
    syl6c.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6c.2 $e |- ( ph -> ( ps -> th ) ) $.
    syl6c.3 $e |- ( ch -> ( th -> ta ) ) $.
    $( Inference combining ~ syl6 with contraction.  (Contributed by Alan Sare,
       2-May-2011.) $)
    syl6c $p |- ( ph -> ( ps -> ta ) ) $=
      ( wi syl6 mpdd ) ABDEGABCDEIFHJK $.
  $}

  ${
    syl6ci.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6ci.2 $e |- ( ph -> th ) $.
    syl6ci.3 $e |- ( ch -> ( th -> ta ) ) $.
    $( A syllogism inference combined with contraction.  (Contributed by Alan
       Sare, 18-Mar-2012.) $)
    syl6ci $p |- ( ph -> ( ps -> ta ) ) $=
      ( a1d syl6c ) ABCDEFADBGIHJ $.
  $}

  ${
    syldd.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    syldd.2 $e |- ( ph -> ( ps -> ( th -> ta ) ) ) $.
    $( Nested syllogism deduction.  Deduction associated with ~ syld .  Double
       deduction associated with ~ syl .  (Contributed by NM, 12-Dec-2004.)
       (Proof shortened by Wolf Lammen, 11-May-2013.) $)
    syldd $p |- ( ph -> ( ps -> ( ch -> ta ) ) ) $=
      ( wi imim2 syl6c ) ABDEHCDHCEHGFDECIJ $.
  $}

  ${
    syl5d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl5d.2 $e |- ( ph -> ( th -> ( ch -> ta ) ) ) $.
    $( A nested syllogism deduction.  Deduction associated with ~ syl5 .
       (Contributed by NM, 14-May-1993.)  (Proof shortened by Josh Purinton,
       29-Dec-2000.)  (Proof shortened by Mel L. O'Cat, 2-Feb-2006.) $)
    syl5d $p |- ( ph -> ( th -> ( ps -> ta ) ) ) $=
      ( wi a1d syldd ) ADBCEABCHDFIGJ $.
  $}

  ${
    syl7.1 $e |- ( ph -> ps ) $.
    syl7.2 $e |- ( ch -> ( th -> ( ps -> ta ) ) ) $.
    $( A syllogism rule of inference.  The first premise is used to replace the
       third antecedent of the second premise.  (Contributed by NM,
       12-Jan-1993.)  (Proof shortened by Wolf Lammen, 3-Aug-2012.) $)
    syl7 $p |- ( ch -> ( th -> ( ph -> ta ) ) ) $=
      ( wi a1i syl5d ) CABDEABHCFIGJ $.
  $}

  ${
    syl6d.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    syl6d.2 $e |- ( ph -> ( th -> ta ) ) $.
    $( A nested syllogism deduction.  Deduction associated with ~ syl6 .
       (Contributed by NM, 11-May-1993.)  (Proof shortened by Josh Purinton,
       29-Dec-2000.)  (Proof shortened by Mel L. O'Cat, 2-Feb-2006.) $)
    syl6d $p |- ( ph -> ( ps -> ( ch -> ta ) ) ) $=
      ( wi a1d syldd ) ABCDEFADEHBGIJ $.
  $}

  ${
    syl8.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    syl8.2 $e |- ( th -> ta ) $.
    $( A syllogism rule of inference.  The second premise is used to replace
       the consequent of the first premise.  (Contributed by NM, 1-Aug-1994.)
       (Proof shortened by Wolf Lammen, 3-Aug-2012.) $)
    syl8 $p |- ( ph -> ( ps -> ( ch -> ta ) ) ) $=
      ( wi a1i syl6d ) ABCDEFDEHAGIJ $.
  $}

  ${
    syl9.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl9.2 $e |- ( th -> ( ch -> ta ) ) $.
    $( A nested syllogism inference with different antecedents.  (Contributed
       by NM, 13-May-1993.)  (Proof shortened by Josh Purinton,
       29-Dec-2000.) $)
    syl9 $p |- ( ph -> ( th -> ( ps -> ta ) ) ) $=
      ( wi a1i syl5d ) ABCDEFDCEHHAGIJ $.
  $}

  ${
    syl9r.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl9r.2 $e |- ( th -> ( ch -> ta ) ) $.
    $( A nested syllogism inference with different antecedents.  (Contributed
       by NM, 14-May-1993.) $)
    syl9r $p |- ( th -> ( ph -> ( ps -> ta ) ) ) $=
      ( wi syl9 com12 ) ADBEHABCDEFGIJ $.
  $}

  ${
    syl10.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl10.2 $e |- ( ph -> ( ps -> ( th -> ta ) ) ) $.
    syl10.3 $e |- ( ch -> ( ta -> et ) ) $.
    $( A nested syllogism inference.  (Contributed by Alan Sare,
       17-Jul-2011.) $)
    syl10 $p |- ( ph -> ( ps -> ( th -> et ) ) ) $=
      ( wi syl6 syldd ) ABDEFHABCEFJGIKL $.
  $}

  ${
    a1ddd.1 $e |- ( ph -> ( ps -> ( ch -> ta ) ) ) $.
    $( Triple deduction introducing an antecedent to a wff.  Deduction
       associated with ~ a1dd .  Double deduction associated with ~ a1d .
       Triple deduction associated with ~ ax-1 and ~ a1i .  (Contributed by
       Jeff Hankins, 4-Aug-2009.) $)
    a1ddd $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi ax-1 syl8 ) ABCEDEGFEDHI $.
  $}

  ${
    imim12d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    imim12d.2 $e |- ( ph -> ( th -> ta ) ) $.
    $( Deduction combining antecedents and consequents.  Deduction associated
       with ~ imim12 and ~ imim12i .  (Contributed by NM, 7-Aug-1994.)  (Proof
       shortened by Mel L. O'Cat, 30-Oct-2011.) $)
    imim12d $p |- ( ph -> ( ( ch -> th ) -> ( ps -> ta ) ) ) $=
      ( wi imim2d syl5d ) ABCCDHEFADECGIJ $.
  $}

  ${
    imim1d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction adding nested consequents.  Deduction associated with ~ imim1
       and ~ imim1i .  (Contributed by NM, 3-Apr-1994.)  (Proof shortened by
       Wolf Lammen, 12-Sep-2012.) $)
    imim1d $p |- ( ph -> ( ( ch -> th ) -> ( ps -> th ) ) ) $=
      ( idd imim12d ) ABCDDEADFG $.
  $}

  $( A closed form of syllogism (see ~ syl ).  Theorem *2.06 of
     [WhiteheadRussell] p. 100.  Its associated inference is ~ imim1i .
     (Contributed by NM, 29-Dec-1992.)  (Proof shortened by Wolf Lammen,
     25-May-2013.) $)
  imim1 $p |- ( ( ph -> ps ) -> ( ( ps -> ch ) -> ( ph -> ch ) ) ) $=
    ( wi id imim1d ) ABDZABCGEF $.

  $( Theorem *2.83 of [WhiteheadRussell] p. 108.  Closed form of ~ syld .
     (Contributed by NM, 3-Jan-2005.) $)
  pm2.83 $p |- ( ( ph -> ( ps -> ch ) )
      -> ( ( ph -> ( ch -> th ) ) -> ( ph -> ( ps -> th ) ) ) ) $=
    ( wi imim1 imim3i ) BCECDEBDEABCDFG $.

  $( Over minimal implicational calculus, Peirce's axiom ~ peirce implies an
     axiom sometimes called "Roll",
     ` ( ( ( ph -> ps ) -> ch ) -> ( ( ch -> ph ) -> ph ) ) ` , of which
     ~ looinv is a special instance.  The converse also holds: substitute
     ` ( ph -> ps ) ` for ` ch ` in Roll and use ~ id and ~ ax-mp .
     (Contributed by BJ, 15-Jun-2021.) $)
  peirceroll $p |- ( ( ( ( ph -> ps ) -> ph ) -> ph )
                   -> ( ( ( ph -> ps ) -> ch ) -> ( ( ch -> ph ) -> ph ) ) ) $=
    ( wi imim1 imim2 syl5 ) ABDZCDCADZHADZDJADIADHCAEJAIFG $.

  ${
    com3.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( Commutation of antecedents.  Swap 2nd and 3rd.  Deduction associated
       with ~ com12 .  (Contributed by NM, 27-Dec-1992.)  (Proof shortened by
       Wolf Lammen, 4-Aug-2012.) $)
    com23 $p |- ( ph -> ( ch -> ( ps -> th ) ) ) $=
      ( wi pm2.27 syl9 ) ABCDFCDECDGH $.

    $( Commutation of antecedents.  Rotate right.  (Contributed by NM,
       25-Apr-1994.) $)
    com3r $p |- ( ch -> ( ph -> ( ps -> th ) ) ) $=
      ( wi com23 com12 ) ACBDFABCDEGH $.

    $( Commutation of antecedents.  Swap 1st and 3rd.  (Contributed by NM,
       25-Apr-1994.)  (Proof shortened by Wolf Lammen, 28-Jul-2012.) $)
    com13 $p |- ( ch -> ( ps -> ( ph -> th ) ) ) $=
      ( com3r com23 ) CABDABCDEFG $.

    $( Commutation of antecedents.  Rotate left.  (Contributed by NM,
       25-Apr-1994.)  (Proof shortened by Wolf Lammen, 28-Jul-2012.) $)
    com3l $p |- ( ps -> ( ch -> ( ph -> th ) ) ) $=
      ( com3r ) CABDABCDEFF $.
  $}

  $( Swap antecedents.  Theorem *2.04 of [WhiteheadRussell] p. 100.  This was
     the third axiom in Frege's logic system, specifically Proposition 8 of
     [Frege1879] p. 35.  Its associated inference is ~ com12 .  (Contributed by
     NM, 27-Dec-1992.)  (Proof shortened by Wolf Lammen, 12-Sep-2012.) $)
  pm2.04 $p |- ( ( ph -> ( ps -> ch ) ) -> ( ps -> ( ph -> ch ) ) ) $=
    ( wi id com23 ) ABCDDZABCGEF $.

  ${
    com4.1 $e |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $.
    $( Commutation of antecedents.  Swap 3rd and 4th.  Deduction associated
       with ~ com23 .  Double deduction associated with ~ com12 .  (Contributed
       by NM, 25-Apr-1994.) $)
    com34 $p |- ( ph -> ( ps -> ( th -> ( ch -> ta ) ) ) ) $=
      ( wi pm2.04 syl6 ) ABCDEGGDCEGGFCDEHI $.

    $( Commutation of antecedents.  Rotate left.  (Contributed by NM,
       25-Apr-1994.)  (Proof shortened by Mel L. O'Cat, 15-Aug-2004.) $)
    com4l $p |- ( ps -> ( ch -> ( th -> ( ph -> ta ) ) ) ) $=
      ( wi com3l com34 ) BCADEABCDEGFHI $.

    $( Commutation of antecedents.  Rotate twice.  (Contributed by NM,
       25-Apr-1994.) $)
    com4t $p |- ( ch -> ( th -> ( ph -> ( ps -> ta ) ) ) ) $=
      ( com4l ) BCDAEABCDEFGG $.

    $( Commutation of antecedents.  Rotate right.  (Contributed by NM,
       25-Apr-1994.) $)
    com4r $p |- ( th -> ( ph -> ( ps -> ( ch -> ta ) ) ) ) $=
      ( com4t com4l ) CDABEABCDEFGH $.

    $( Commutation of antecedents.  Swap 2nd and 4th.  Deduction associated
       with ~ com13 .  (Contributed by NM, 25-Apr-1994.)  (Proof shortened by
       Wolf Lammen, 28-Jul-2012.) $)
    com24 $p |- ( ph -> ( th -> ( ch -> ( ps -> ta ) ) ) ) $=
      ( wi com4t com13 ) CDABEGABCDEFHI $.

    $( Commutation of antecedents.  Swap 1st and 4th.  (Contributed by NM,
       25-Apr-1994.)  (Proof shortened by Wolf Lammen, 28-Jul-2012.) $)
    com14 $p |- ( th -> ( ps -> ( ch -> ( ph -> ta ) ) ) ) $=
      ( wi com4l com3r ) BCDAEGABCDEFHI $.
  $}

  ${
    com5.1 $e |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $.
    $( Commutation of antecedents.  Swap 4th and 5th.  Deduction associated
       with ~ com34 .  Double deduction associated with ~ com23 .  Triple
       deduction associated with ~ com12 .  (Contributed by Jeff Hankins,
       28-Jun-2009.) $)
    com45 $p |- ( ph -> ( ps -> ( ch -> ( ta -> ( th -> et ) ) ) ) ) $=
      ( wi pm2.04 syl8 ) ABCDEFHHEDFHHGDEFIJ $.

    $( Commutation of antecedents.  Swap 3rd and 5th.  Deduction associated
       with ~ com24 .  Double deduction associated with ~ com13 .  (Contributed
       by Jeff Hankins, 28-Jun-2009.) $)
    com35 $p |- ( ph -> ( ps -> ( ta -> ( th -> ( ch -> et ) ) ) ) ) $=
      ( wi com34 com45 ) ABDECFHABDCEFABCDEFHGIJI $.

    $( Commutation of antecedents.  Swap 2nd and 5th.  Deduction associated
       with ~ com14 .  (Contributed by Jeff Hankins, 28-Jun-2009.) $)
    com25 $p |- ( ph -> ( ta -> ( ch -> ( th -> ( ps -> et ) ) ) ) ) $=
      ( wi com24 com45 ) ADCEBFHADCBEFABCDEFHGIJI $.

    $( Commutation of antecedents.  Rotate left.  (Contributed by Jeff Hankins,
       28-Jun-2009.)  (Proof shortened by Wolf Lammen, 29-Jul-2012.) $)
    com5l $p |- ( ps -> ( ch -> ( th -> ( ta -> ( ph -> et ) ) ) ) ) $=
      ( wi com4l com45 ) BCDAEFABCDEFHGIJ $.

    $( Commutation of antecedents.  Swap 1st and 5th.  (Contributed by Jeff
       Hankins, 28-Jun-2009.)  (Proof shortened by Wolf Lammen,
       29-Jul-2012.) $)
    com15 $p |- ( ta -> ( ps -> ( ch -> ( th -> ( ph -> et ) ) ) ) ) $=
      ( wi com5l com4r ) BCDEAFHABCDEFGIJ $.

    $( Commutation of antecedents.  Rotate left twice.  (Contributed by Jeff
       Hankins, 28-Jun-2009.) $)
    com52l $p |- ( ch -> ( th -> ( ta -> ( ph -> ( ps -> et ) ) ) ) ) $=
      ( com5l ) BCDEAFABCDEFGHH $.

    $( Commutation of antecedents.  Rotate right twice.  (Contributed by Jeff
       Hankins, 28-Jun-2009.) $)
    com52r $p |- ( th -> ( ta -> ( ph -> ( ps -> ( ch -> et ) ) ) ) ) $=
      ( com52l com5l ) CDEABFABCDEFGHI $.

    $( Commutation of antecedents.  Rotate right.  (Contributed by Wolf Lammen,
       29-Jul-2012.) $)
    com5r $p |- ( ta -> ( ph -> ( ps -> ( ch -> ( th -> et ) ) ) ) ) $=
      ( com52l ) CDEABFABCDEFGHH $.
  $}

  $( Closed form of ~ imim12i and of ~ 3syl .  (Contributed by BJ,
     16-Jul-2019.) $)
  imim12 $p |- ( ( ph -> ps ) ->
                      ( ( ch -> th ) -> ( ( ps -> ch ) -> ( ph -> th ) ) ) ) $=
    ( wi imim2 com13 imim2i com24 ) ABEABCEZCDEZDBJKDEEAKJBDCDBFGHI $.

  $( Elimination of a nested antecedent as a partial converse of ~ ja (the
     other being ~ jarl ).  (Contributed by Wolf Lammen, 9-May-2013.) $)
  jarr $p |- ( ( ( ph -> ps ) -> ch ) -> ( ps -> ch ) ) $=
    ( wi ax-1 imim1i ) BABDCBAEF $.

  ${
    pm2.86d.1 $e |- ( ph -> ( ( ps -> ch ) -> ( ps -> th ) ) ) $.
    $( Deduction associated with ~ pm2.86 .  (Contributed by NM, 29-Jun-1995.)
       (Proof shortened by Wolf Lammen, 3-Apr-2013.) $)
    pm2.86d $p |- ( ph -> ( ps -> ( ch -> th ) ) ) $=
      ( wi ax-1 syl5 com23 ) ACBDCBCFABDFCBGEHI $.
  $}

  $( Converse of axiom ~ ax-2 .  Theorem *2.86 of [WhiteheadRussell] p. 108.
     (Contributed by NM, 25-Apr-1994.)  (Proof shortened by Wolf Lammen,
     3-Apr-2013.) $)
  pm2.86 $p |- ( ( ( ph -> ps ) -> ( ph -> ch ) ) ->
                                                    ( ph -> ( ps -> ch ) ) ) $=
    ( wi id pm2.86d ) ABDACDDZABCGEF $.

  ${
    pm2.86i.1 $e |- ( ( ph -> ps ) -> ( ph -> ch ) ) $.
    $( Inference associated with ~ pm2.86 .  (Contributed by NM, 5-Aug-1993.)
       (Proof shortened by Wolf Lammen, 3-Apr-2013.) $)
    pm2.86i $p |- ( ph -> ( ps -> ch ) ) $=
      ( wi ax-1 syl11 ) ABEACBDBAFG $.
  $}

  $( The Linearity Axiom of the infinite-valued sentential logic (L-infinity)
     of Lukasiewicz.  See ~ loowoz for an alternate axiom.  (Contributed by Mel
     L. O'Cat, 12-Aug-2004.) $)
  loolin $p |- ( ( ( ph -> ps ) -> ( ps -> ph ) ) -> ( ps -> ph ) ) $=
    ( wi jarr pm2.43d ) ABCBACZCBAABFDE $.

  $( An alternate for the Linearity Axiom of the infinite-valued sentential
     logic (L-infinity) of Lukasiewicz ~ loolin , due to Barbara Wozniakowska,
     _Reports on Mathematical Logic_ 10, 129-137 (1978).  (Contributed by Mel
     L. O'Cat, 8-Aug-2004.) $)
  loowoz $p |- ( ( ( ph -> ps ) -> ( ph -> ch ) )
      -> ( ( ps -> ph ) -> ( ps -> ch ) ) ) $=
    ( wi jarr a2d ) ABDACDZDBACABGEF $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Logical negation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This section makes our first use of the third axiom of propositional
  calculus, ~ ax-3 .

$)

  $( Alias for ~ ax-3 to be used instead of it for labeling consistency.  Its
     associated inference is ~ con4i and its associated deduction is ~ con4d .
     (Contributed by BJ, 24-Dec-2020.) $)
  con4 $p |- ( ( -. ph -> -. ps ) -> ( ps -> ph ) ) $=
    ( ax-3 ) ABC $.

  ${
    con4i.1 $e |- ( -. ph -> -. ps ) $.
    $( Inference associated with ~ con4 .  Its associated inference is ~ mt4 .

       Remark: this can also be proved using ~ notnot followed by ~ nsyl2 ,
       giving a shorter proof but depending on more axioms (namely, ~ ax-1 and
       ~ ax-2 ).  (Contributed by NM, 29-Dec-1992.) $)
    con4i $p |- ( ps -> ph ) $=
      ( wn wi con4 ax-mp ) ADBDEBAECABFG $.
  $}

  ${
    con4d.1 $e |- ( ph -> ( -. ps -> -. ch ) ) $.
    $( Deduction associated with ~ con4 .  (Contributed by NM, 26-Mar-1995.) $)
    con4d $p |- ( ph -> ( ch -> ps ) ) $=
      ( wn wi con4 syl ) ABECEFCBFDBCGH $.
  $}

  ${
    mt4.1 $e |- ph $.
    mt4.2 $e |- ( -. ps -> -. ph ) $.
    $( The rule of modus tollens.  Inference associated with ~ con4i .
       (Contributed by Wolf Lammen, 12-May-2013.) $)
    mt4 $p |- ps $=
      ( con4i ax-mp ) ABCBADEF $.
  $}

  ${
    pm2.21i.1 $e |- -. ph $.
    $( A contradiction implies anything.  Inference associated with ~ pm2.21 .
       Its associated inference is ~ pm2.24ii .  (Contributed by NM,
       16-Sep-1993.) $)
    pm2.21i $p |- ( ph -> ps ) $=
      ( wn a1i con4i ) BAADBDCEF $.
  $}

  ${
    pm2.24ii.1 $e |- ph $.
    pm2.24ii.2 $e |- -. ph $.
    $( A contradiction implies anything.  Inference associated with ~ pm2.21i
       and ~ pm2.24i .  (Contributed by NM, 27-Feb-2008.) $)
    pm2.24ii $p |- ps $=
      ( pm2.21i ax-mp ) ABCABDEF $.
  $}

  ${
    pm2.21d.1 $e |- ( ph -> -. ps ) $.
    $( A contradiction implies anything.  Deduction associated with ~ pm2.21 .
       (Contributed by NM, 10-Feb-1996.) $)
    pm2.21d $p |- ( ph -> ( ps -> ch ) ) $=
      ( wn a1d con4d ) ACBABECEDFG $.
  $}

  ${
    pm2.21ddALT.1 $e |- ( ph -> ps ) $.
    pm2.21ddALT.2 $e |- ( ph -> -. ps ) $.
    $( Alternate proof of ~ pm2.21dd .  (Contributed by Mario Carneiro,
       9-Feb-2017.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    pm2.21ddALT $p |- ( ph -> ch ) $=
      ( pm2.21d mpd ) ABCDABCEFG $.
  $}

  $( From a wff and its negation, anything is true.  Theorem *2.21 of
     [WhiteheadRussell] p. 104.  Also called the Duns Scotus law.  Its
     associated inference is ~ pm2.21i .  (Contributed by NM, 29-Dec-1992.)
     (Proof shortened by Wolf Lammen, 14-Sep-2012.) $)
  pm2.21 $p |- ( -. ph -> ( ph -> ps ) ) $=
    ( wn id pm2.21d ) ACZABFDE $.

  $( Theorem *2.24 of [WhiteheadRussell] p. 104.  Its associated inference is
     ~ pm2.24i .  (Contributed by NM, 3-Jan-2005.) $)
  pm2.24 $p |- ( ph -> ( -. ph -> ps ) ) $=
    ( wn pm2.21 com12 ) ACABABDE $.

  $( Proof by contradiction.  Theorem *2.18 of [WhiteheadRussell] p. 103.  Also
     called the Law of Clavius.  See also ~ pm2.01 .  (Contributed by NM,
     29-Dec-1992.) $)
  pm2.18 $p |- ( ( -. ph -> ph ) -> ph ) $=
    ( wn wi pm2.21 a2i con4d pm2.43i ) ABZACZAIAIHAIBZAJDEFG $.

  ${
    pm2.18i.1 $e |- ( -. ph -> ph ) $.
    $( Inference associated with ~ pm2.18 .  (Contributed by BJ,
       30-Mar-2020.) $)
    pm2.18i $p |- ph $=
      ( wn wi pm2.18 ax-mp ) ACADABAEF $.
  $}

  ${
    pm2.18d.1 $e |- ( ph -> ( -. ps -> ps ) ) $.
    $( Deduction based on reductio ad absurdum.  (Contributed by FL,
       12-Jul-2009.)  (Proof shortened by Andrew Salmon, 7-May-2011.) $)
    pm2.18d $p |- ( ph -> ps ) $=
      ( wn wi pm2.18 syl ) ABDBEBCBFG $.
  $}

  $( Double negation elimination.  Converse of ~ notnot and one implication of
     ~ notnotb .  Theorem *2.14 of [WhiteheadRussell] p. 102.  This was the
     fifth axiom of Frege, specifically Proposition 31 of [Frege1879] p. 44.
     In classical logic (our logic) this is always true.  In intuitionistic
     logic this is not always true, and formulas for which it is true are
     called "stable."  (Contributed by NM, 29-Dec-1992.)  (Proof shortened by
     David Harvey, 5-Sep-1999.)  (Proof shortened by Josh Purinton,
     29-Dec-2000.) $)
  notnotr $p |- ( -. -. ph -> ph ) $=
    ( wn pm2.21 pm2.18d ) ABZBAEACD $.

  ${
    notnotri.1 $e |- -. -. ph $.
    $( Inference associated with ~ notnotr .

       Remark: the proof via ~ notnotr and ~ ax-mp also has three essential
       steps, but has a total number of steps equal to 8, instead of the
       present 7, because it has to construct the formula ` ph ` twice and the
       formula ` -. -. ph ` , whereas the present proof has to construct the
       formula ` ph ` twice and the formula ` -. ph ` , and therefore makes
       only one use of ~ wn instead of two.  This can be checked by running the
       Metamath command "SHOW PROOF notnotri / NORMAL".  (Contributed by NM,
       27-Feb-2008.)  (Proof shortened by Wolf Lammen, 15-Jul-2021.) $)
    notnotri $p |- ph $=
      ( wn pm2.21i pm2.18i ) AACABDE $.

    $( Obsolete proof of ~ notnotri as of 15-Jul-2021 .  (Contributed by NM,
       27-Feb-2008.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    notnotriOLD $p |- ph $=
      ( wn notnotr ax-mp ) ACCABADE $.
  $}

  ${
    notnotrd.1 $e |- ( ph -> -. -. ps ) $.
    $( Deduction associated with ~ notnotr and ~ notnotri .  Double negation
       elimination rule.  A translation of the natural deduction rule ` -. -. `
       C , ` _G |- -. -. ps => _G |- ps ` ; see ~ natded .  This is Definition
       NNC in [Pfenning] p. 17.  This rule is valid in classical logic (our
       logic), but not in intuitionistic logic.  (Contributed by DAW,
       8-Feb-2017.) $)
    notnotrd $p |- ( ph -> ps ) $=
      ( wn notnotr syl ) ABDDBCBEF $.
  $}

  ${
    con2d.1 $e |- ( ph -> ( ps -> -. ch ) ) $.
    $( A contraposition deduction.  (Contributed by NM, 19-Aug-1993.) $)
    con2d $p |- ( ph -> ( ch -> -. ps ) ) $=
      ( wn notnotr syl5 con4d ) ABEZCIEBACEBFDGH $.
  $}

  $( Contraposition.  Theorem *2.03 of [WhiteheadRussell] p. 100.  (Contributed
     by NM, 29-Dec-1992.)  (Proof shortened by Wolf Lammen, 12-Feb-2013.) $)
  con2 $p |- ( ( ph -> -. ps ) -> ( ps -> -. ph ) ) $=
    ( wn wi id con2d ) ABCDZABGEF $.

  ${
    mt2d.1 $e |- ( ph -> ch ) $.
    mt2d.2 $e |- ( ph -> ( ps -> -. ch ) ) $.
    $( Modus tollens deduction.  (Contributed by NM, 4-Jul-1994.) $)
    mt2d $p |- ( ph -> -. ps ) $=
      ( wn con2d mpd ) ACBFDABCEGH $.
  $}

  ${
    mt2i.1 $e |- ch $.
    mt2i.2 $e |- ( ph -> ( ps -> -. ch ) ) $.
    $( Modus tollens inference.  (Contributed by NM, 26-Mar-1995.)  (Proof
       shortened by Wolf Lammen, 15-Sep-2012.) $)
    mt2i $p |- ( ph -> -. ps ) $=
      ( a1i mt2d ) ABCCADFEG $.
  $}

  ${
    nsyl3.1 $e |- ( ph -> -. ps ) $.
    nsyl3.2 $e |- ( ch -> ps ) $.
    $( A negated syllogism inference.  (Contributed by NM, 1-Dec-1995.) $)
    nsyl3 $p |- ( ch -> -. ph ) $=
      ( wn wi a1i mt2d ) CABEABFGCDHI $.
  $}

  ${
    con2i.a $e |- ( ph -> -. ps ) $.
    $( A contraposition inference.  Its associated inference is ~ mt2 .
       (Contributed by NM, 10-Jan-1993.)  (Proof shortened by Mel L. O'Cat,
       28-Nov-2008.)  (Proof shortened by Wolf Lammen, 13-Jun-2013.) $)
    con2i $p |- ( ps -> -. ph ) $=
      ( id nsyl3 ) ABBCBDE $.
  $}

  ${
    nsyl.1 $e |- ( ph -> -. ps ) $.
    nsyl.2 $e |- ( ch -> ps ) $.
    $( A negated syllogism inference.  (Contributed by NM, 31-Dec-1993.)
       (Proof shortened by Wolf Lammen, 2-Mar-2013.) $)
    nsyl $p |- ( ph -> -. ch ) $=
      ( nsyl3 con2i ) CAABCDEFG $.
  $}

  $( Double negation introduction.  Converse of ~ notnotr and one implication
     of ~ notnotb .  Theorem *2.12 of [WhiteheadRussell] p. 101.  This was the
     sixth axiom of Frege, specifically Proposition 41 of [Frege1879] p. 47.
     (Contributed by NM, 28-Dec-1992.)  (Proof shortened by Wolf Lammen,
     2-Mar-2013.) $)
  notnot $p |- ( ph -> -. -. ph ) $=
    ( wn id con2i ) ABZAECD $.

  ${
    notnoti.1 $e |- ph $.
    $( Inference associated with ~ notnot .  (Contributed by NM,
       27-Feb-2008.) $)
    notnoti $p |- -. -. ph $=
      ( wn notnot ax-mp ) AACCBADE $.
  $}

  ${
    notnotd.1 $e |- ( ph -> ps ) $.
    $( Deduction associated with ~ notnot and ~ notnoti .  (Contributed by
       Jarvin Udandy, 2-Sep-2016.)  Avoid biconditional.  (Revised by Wolf
       Lammen, 27-Mar-2021.) $)
    notnotd $p |- ( ph -> -. -. ps ) $=
      ( wn notnot syl ) ABBDDCBEF $.
  $}

  ${
    con1d.1 $e |- ( ph -> ( -. ps -> ch ) ) $.
    $( A contraposition deduction.  (Contributed by NM, 27-Dec-1992.) $)
    con1d $p |- ( ph -> ( -. ch -> ps ) ) $=
      ( wn notnot syl6 con4d ) ABCEZABECIEDCFGH $.
  $}

  ${
    mt3d.1 $e |- ( ph -> -. ch ) $.
    mt3d.2 $e |- ( ph -> ( -. ps -> ch ) ) $.
    $( Modus tollens deduction.  (Contributed by NM, 26-Mar-1995.) $)
    mt3d $p |- ( ph -> ps ) $=
      ( wn con1d mpd ) ACFBDABCEGH $.
  $}

  ${
    mt3i.1 $e |- -. ch $.
    mt3i.2 $e |- ( ph -> ( -. ps -> ch ) ) $.
    $( Modus tollens inference.  (Contributed by NM, 26-Mar-1995.)  (Proof
       shortened by Wolf Lammen, 15-Sep-2012.) $)
    mt3i $p |- ( ph -> ps ) $=
      ( wn a1i mt3d ) ABCCFADGEH $.
  $}

  ${
    nsyl2.1 $e |- ( ph -> -. ps ) $.
    nsyl2.2 $e |- ( -. ch -> ps ) $.
    $( A negated syllogism inference.  (Contributed by NM, 26-Jun-1994.) $)
    nsyl2 $p |- ( ph -> ch ) $=
      ( wn wi a1i mt3d ) ACBDCFBGAEHI $.
  $}

  $( Contraposition.  Theorem *2.15 of [WhiteheadRussell] p. 102.  Its
     associated inference is ~ con1i .  (Contributed by NM, 29-Dec-1992.)
     (Proof shortened by Wolf Lammen, 12-Feb-2013.) $)
  con1 $p |- ( ( -. ph -> ps ) -> ( -. ps -> ph ) ) $=
    ( wn wi id con1d ) ACBDZABGEF $.

  ${
    con1i.1 $e |- ( -. ph -> ps ) $.
    $( A contraposition inference.  Inference associated with ~ con1 .  Its
       associated inference is ~ mt3 .  (Contributed by NM, 3-Jan-1993.)
       (Proof shortened by Mel L. O'Cat, 28-Nov-2008.)  (Proof shortened by
       Wolf Lammen, 19-Jun-2013.) $)
    con1i $p |- ( -. ps -> ph ) $=
      ( wn id nsyl2 ) BDZBAGECF $.
  $}

  ${
    con4iOLD.1 $e |- ( -. ph -> -. ps ) $.
    $( Obsolete proof of ~ con4i as of 15-Jul-2021.  This shorter proof has
       been reverted to its original to avoid a dependency on ~ ax-1 and
       ~ ax-2 .  (Contributed by NM, 29-Dec-1992.)  (Proof shortened by Wolf
       Lammen, 21-Jun-2013.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    con4iOLD $p |- ( ps -> ph ) $=
      ( wn notnot nsyl2 ) BBDABECF $.
  $}

  ${
    pm2.24i.1 $e |- ph $.
    $( Inference associated with ~ pm2.24 .  Its associated inference is
       ~ pm2.24ii .  (Contributed by NM, 20-Aug-2001.) $)
    pm2.24i $p |- ( -. ph -> ps ) $=
      ( wn a1i con1i ) BAABDCEF $.
  $}

  ${
    pm2.24d.1 $e |- ( ph -> ps ) $.
    $( Deduction form of ~ pm2.24 .  (Contributed by NM, 30-Jan-2006.) $)
    pm2.24d $p |- ( ph -> ( -. ps -> ch ) ) $=
      ( wn a1d con1d ) ACBABCEDFG $.
  $}

  ${
    con3d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A contraposition deduction.  Deduction form of ~ con3 .  (Contributed by
       NM, 10-Jan-1993.) $)
    con3d $p |- ( ph -> ( -. ch -> -. ps ) ) $=
      ( wn notnotr syl5 con1d ) ABEZCIEBACBFDGH $.
  $}

  $( Contraposition.  Theorem *2.16 of [WhiteheadRussell] p. 103.  This was the
     fourth axiom of Frege, specifically Proposition 28 of [Frege1879] p. 43.
     Its associated inference is ~ con3i .  (Contributed by NM, 29-Dec-1992.)
     (Proof shortened by Wolf Lammen, 13-Feb-2013.) $)
  con3 $p |- ( ( ph -> ps ) -> ( -. ps -> -. ph ) ) $=
    ( wi id con3d ) ABCZABFDE $.

  ${
    con3i.a $e |- ( ph -> ps ) $.
    $( A contraposition inference.  Inference associated with ~ con3 .  Its
       associated inference is ~ mto .  (Contributed by NM, 3-Jan-1993.)
       (Proof shortened by Wolf Lammen, 20-Jun-2013.) $)
    con3i $p |- ( -. ps -> -. ph ) $=
      ( wn id nsyl ) BDZBAGECF $.
  $}

  ${
    con3rr3.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Rotate through consequent right.  (Contributed by Wolf Lammen,
       3-Nov-2013.) $)
    con3rr3 $p |- ( -. ch -> ( ph -> -. ps ) ) $=
      ( wn con3d com12 ) ACEBEABCDFG $.
  $}

  ${
    mt4d.1 $e |- ( ph -> ps ) $.
    mt4d.2 $e |- ( ph -> ( -. ch -> -. ps ) ) $.
    $( Modus tollens deduction.  Deduction form of ~ mt4 .  (Contributed by NM,
       9-Jun-2006.) $)
    mt4d $p |- ( ph -> ch ) $=
      ( con4d mpd ) ABCDACBEFG $.
  $}

  ${
    mt4i.1 $e |- ch $.
    mt4i.2 $e |- ( ph -> ( -. ps -> -. ch ) ) $.
    $( Modus tollens inference.  (Contributed by Wolf Lammen, 12-May-2013.) $)
    mt4i $p |- ( ph -> ps ) $=
      ( a1i mt4d ) ACBCADFEG $.
  $}

  ${
    nsyld.1 $e |- ( ph -> ( ps -> -. ch ) ) $.
    nsyld.2 $e |- ( ph -> ( ta -> ch ) ) $.
    $( A negated syllogism deduction.  (Contributed by NM, 9-Apr-2005.) $)
    nsyld $p |- ( ph -> ( ps -> -. ta ) ) $=
      ( wn con3d syld ) ABCGDGEADCFHI $.
  $}

  ${
    nsyli.1 $e |- ( ph -> ( ps -> ch ) ) $.
    nsyli.2 $e |- ( th -> -. ch ) $.
    $( A negated syllogism inference.  (Contributed by NM, 3-May-1994.) $)
    nsyli $p |- ( ph -> ( th -> -. ps ) ) $=
      ( wn con3d syl5 ) DCGABGFABCEHI $.
  $}

  ${
    nsyl4.1 $e |- ( ph -> ps ) $.
    nsyl4.2 $e |- ( -. ph -> ch ) $.
    $( A negated syllogism inference.  (Contributed by NM, 15-Feb-1996.) $)
    nsyl4 $p |- ( -. ch -> ps ) $=
      ( wn con1i syl ) CFABACEGDH $.
  $}

  $( Theorem *3.2 of [WhiteheadRussell] p. 111, expressed with primitive
     connectives (see ~ pm3.2 ).  (Contributed by NM, 29-Dec-1992.)  (Proof
     shortened by Josh Purinton, 29-Dec-2000.) $)
  pm3.2im $p |- ( ph -> ( ps -> -. ( ph -> -. ps ) ) ) $=
    ( wn wi pm2.27 con2d ) AABCZDBAGEF $.

  $( Theorem 8 of [Margaris] p. 60.  (Contributed by NM, 5-Aug-1993.)  (Proof
     shortened by Josh Purinton, 29-Dec-2000.) $)
  mth8 $p |- ( ph -> ( -. ps -> -. ( ph -> ps ) ) ) $=
    ( wi pm2.27 con3d ) AABCBABDE $.

  ${
    jc.1 $e |- ( ph -> ps ) $.
    jc.2 $e |- ( ph -> ch ) $.
    $( Deduction joining the consequents of two premises.  A deduction
       associated with ~ pm3.2im .  (Contributed by NM, 28-Dec-1992.) $)
    jc $p |- ( ph -> -. ( ps -> -. ch ) ) $=
      ( wn wi pm3.2im sylc ) ABCBCFGFDEBCHI $.
  $}

  ${
    impi.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( An importation inference.  (Contributed by NM, 29-Dec-1992.)  (Proof
       shortened by Wolf Lammen, 20-Jul-2013.) $)
    impi $p |- ( -. ( ph -> -. ps ) -> ch ) $=
      ( wn wi con3rr3 con1i ) CABEFABCDGH $.
  $}

  ${
    expi.1 $e |- ( -. ( ph -> -. ps ) -> ch ) $.
    $( An exportation inference.  (Contributed by NM, 29-Dec-1992.)  (Proof
       shortened by Mel L. O'Cat, 28-Nov-2008.) $)
    expi $p |- ( ph -> ( ps -> ch ) ) $=
      ( wn wi pm3.2im syl6 ) ABABEFECABGDH $.
  $}

  $( Simplification.  Similar to Theorem *3.27 (Simp) of [WhiteheadRussell]
     p. 112.  (Contributed by NM, 3-Jan-1993.)  (Proof shortened by Wolf
     Lammen, 13-Nov-2012.) $)
  simprim $p |- ( -. ( ph -> -. ps ) -> ps ) $=
    ( idd impi ) ABBABCD $.

  $( Simplification.  Similar to Theorem *3.26 (Simp) of [WhiteheadRussell]
     p. 112.  (Contributed by NM, 3-Jan-1993.)  (Proof shortened by Wolf
     Lammen, 21-Jul-2012.) $)
  simplim $p |- ( -. ( ph -> ps ) -> ph ) $=
    ( wi pm2.21 con1i ) AABCABDE $.

  $( Theorem *2.5 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 9-Oct-2012.) $)
  pm2.5 $p |- ( -. ( ph -> ps ) -> ( -. ph -> ps ) ) $=
    ( wi wn simplim pm2.24d ) ABCDABABEF $.

  $( Theorem *2.51 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.51 $p |- ( -. ( ph -> ps ) -> ( ph -> -. ps ) ) $=
    ( wi wn ax-1 con3i a1d ) ABCZDBDABHBAEFG $.

  $( Theorem *2.521 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 8-Oct-2012.) $)
  pm2.521 $p |- ( -. ( ph -> ps ) -> ( ps -> ph ) ) $=
    ( wi wn simplim a1d ) ABCDABABEF $.

  $( Theorem *2.52 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 8-Oct-2012.) $)
  pm2.52 $p |- ( -. ( ph -> ps ) -> ( -. ph -> -. ps ) ) $=
    ( wi wn pm2.521 con3d ) ABCDBAABEF $.

  $( Exportation theorem ~ ex expressed with primitive connectives.
     (Contributed by NM, 28-Dec-1992.) $)
  expt $p |- ( ( -. ( ph -> -. ps ) -> ch ) -> ( ph -> ( ps -> ch ) ) ) $=
    ( wn wi pm3.2im imim1d com12 ) AABDEDZCEBCEABICABFGH $.

  $( Importation theorem ~ imp expressed with primitive connectives.
     (Contributed by NM, 25-Apr-1994.)  (Proof shortened by Wolf Lammen,
     20-Jul-2013.) $)
  impt $p |- ( ( ph -> ( ps -> ch ) ) -> ( -. ( ph -> -. ps ) -> ch ) ) $=
    ( wi wn simprim simplim imim1i mpdi ) ABCDZDABEZDEZBCABFLAJAKGHI $.

  ${
    pm2.61d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    pm2.61d.2 $e |- ( ph -> ( -. ps -> ch ) ) $.
    $( Deduction eliminating an antecedent.  (Contributed by NM, 27-Apr-1994.)
       (Proof shortened by Wolf Lammen, 12-Sep-2013.) $)
    pm2.61d $p |- ( ph -> ch ) $=
      ( wn con1d syld pm2.18d ) ACACFBCABCEGDHI $.
  $}

  ${
    pm2.61d1.1 $e |- ( ph -> ( ps -> ch ) ) $.
    pm2.61d1.2 $e |- ( -. ps -> ch ) $.
    $( Inference eliminating an antecedent.  (Contributed by NM,
       15-Jul-2005.) $)
    pm2.61d1 $p |- ( ph -> ch ) $=
      ( wn wi a1i pm2.61d ) ABCDBFCGAEHI $.
  $}

  ${
    pm2.61d2.1 $e |- ( ph -> ( -. ps -> ch ) ) $.
    pm2.61d2.2 $e |- ( ps -> ch ) $.
    $( Inference eliminating an antecedent.  (Contributed by NM,
       18-Aug-1993.) $)
    pm2.61d2 $p |- ( ph -> ch ) $=
      ( wi a1i pm2.61d ) ABCBCFAEGDH $.
  $}

  ${
    ja.1 $e |- ( -. ph -> ch ) $.
    ja.2 $e |- ( ps -> ch ) $.
    $( Inference joining the antecedents of two premises.  For partial
       converses, see ~ jarr and ~ jarl .  (Contributed by NM, 24-Jan-1993.)
       (Proof shortened by Mel L. O'Cat, 19-Feb-2008.) $)
    ja $p |- ( ( ph -> ps ) -> ch ) $=
      ( wi imim2i pm2.61d1 ) ABFACBCAEGDH $.
  $}

  ${
    jad.1 $e |- ( ph -> ( -. ps -> th ) ) $.
    jad.2 $e |- ( ph -> ( ch -> th ) ) $.
    $( Deduction form of ~ ja .  (Contributed by Scott Fenton, 13-Dec-2010.)
       (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
    jad $p |- ( ph -> ( ( ps -> ch ) -> th ) ) $=
      ( wi wn com12 ja ) BCGADBCADGABHDEIACDFIJI $.
  $}

  $( Elimination of a nested antecedent as a partial converse of ~ ja (the
     other being ~ jarr ).  (Contributed by Wolf Lammen, 10-May-2013.) $)
  jarl $p |- ( ( ( ph -> ps ) -> ch ) -> ( -. ph -> ch ) ) $=
    ( wn wi pm2.21 imim1i ) ADABECABFG $.

  ${
    pm2.61i.1 $e |- ( ph -> ps ) $.
    pm2.61i.2 $e |- ( -. ph -> ps ) $.
    $( Inference eliminating an antecedent.  (Contributed by NM, 5-Apr-1994.)
       (Proof shortened by Wolf Lammen, 12-Sep-2013.) $)
    pm2.61i $p |- ps $=
      ( wi id ja ax-mp ) AAEBAFAABDCGH $.
  $}

  ${
    pm2.61ii.1 $e |- ( -. ph -> ( -. ps -> ch ) ) $.
    pm2.61ii.2 $e |- ( ph -> ch ) $.
    pm2.61ii.3 $e |- ( ps -> ch ) $.
    $( Inference eliminating two antecedents.  (Contributed by NM, 4-Jan-1993.)
       (Proof shortened by Josh Purinton, 29-Dec-2000.) $)
    pm2.61ii $p |- ch $=
      ( wn pm2.61d2 pm2.61i ) ACEAGBCDFHI $.
  $}

  ${
    pm2.61nii.1 $e |- ( ph -> ( ps -> ch ) ) $.
    pm2.61nii.2 $e |- ( -. ph -> ch ) $.
    pm2.61nii.3 $e |- ( -. ps -> ch ) $.
    $( Inference eliminating two antecedents.  (Contributed by NM,
       13-Jul-2005.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 13-Nov-2012.) $)
    pm2.61nii $p |- ch $=
      ( pm2.61d1 pm2.61i ) ACABCDFGEH $.
  $}

  ${
    pm2.61iii.1 $e |- ( -. ph -> ( -. ps -> ( -. ch -> th ) ) ) $.
    pm2.61iii.2 $e |- ( ph -> th ) $.
    pm2.61iii.3 $e |- ( ps -> th ) $.
    pm2.61iii.4 $e |- ( ch -> th ) $.
    $( Inference eliminating three antecedents.  (Contributed by NM,
       2-Jan-2002.)  (Proof shortened by Wolf Lammen, 22-Sep-2013.) $)
    pm2.61iii $p |- th $=
      ( wn wi a1d pm2.61ii pm2.61i ) CDHABCIZDJEADNFKBDNGKLM $.
  $}

  $( Reductio ad absurdum.  Theorem *2.01 of [WhiteheadRussell] p. 100.  Also
     called the weak Clavius law, and provable in minimal calculus, contrary to
     the Clavius law ~ pm2.18 .  (Contributed by NM, 18-Aug-1993.)  (Proof
     shortened by Mel L. O'Cat, 21-Nov-2008.)  (Proof shortened by Wolf Lammen,
     31-Oct-2012.) $)
  pm2.01 $p |- ( ( ph -> -. ph ) -> -. ph ) $=
    ( wn id ja ) AABZEECZFD $.

  ${
    pm2.01d.1 $e |- ( ph -> ( ps -> -. ps ) ) $.
    $( Deduction based on reductio ad absurdum.  (Contributed by NM,
       18-Aug-1993.)  (Proof shortened by Wolf Lammen, 5-Mar-2013.) $)
    pm2.01d $p |- ( ph -> -. ps ) $=
      ( wn id pm2.61d1 ) ABBDZCGEF $.
  $}

  $( Theorem *2.6 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.6 $p |- ( ( -. ph -> ps ) -> ( ( ph -> ps ) -> ps ) ) $=
    ( wn wi id idd jad ) ACBDZABBHEHBFG $.

  $( Theorem *2.61 of [WhiteheadRussell] p. 107.  Useful for eliminating an
     antecedent.  (Contributed by NM, 4-Jan-1993.)  (Proof shortened by Wolf
     Lammen, 22-Sep-2013.) $)
  pm2.61 $p |- ( ( ph -> ps ) -> ( ( -. ph -> ps ) -> ps ) ) $=
    ( wn wi pm2.6 com12 ) ACBDABDBABEF $.

  $( Theorem *2.65 of [WhiteheadRussell] p. 107.  Proof by contradiction.
     (Contributed by NM, 21-Jun-1993.)  (Proof shortened by Wolf Lammen,
     8-Mar-2013.) $)
  pm2.65 $p |- ( ( ph -> ps ) -> ( ( ph -> -. ps ) -> -. ph ) ) $=
    ( wi wn idd con3 jad ) ABCZABDADZHIEABFG $.

  ${
    pm2.65i.1 $e |- ( ph -> ps ) $.
    pm2.65i.2 $e |- ( ph -> -. ps ) $.
    $( Inference rule for proof by contradiction.  (Contributed by NM,
       18-May-1994.)  (Proof shortened by Wolf Lammen, 11-Sep-2013.) $)
    pm2.65i $p |- -. ph $=
      ( wn con2i con3i pm2.61i ) BAEABDFABCGH $.
  $}

  ${
    pm2.21dd.1 $e |- ( ph -> ps ) $.
    pm2.21dd.2 $e |- ( ph -> -. ps ) $.
    $( A contradiction implies anything.  Deduction from ~ pm2.21 .
       (Contributed by Mario Carneiro, 9-Feb-2017.)  (Proof shortened by Wolf
       Lammen, 22-Jul-2019.) $)
    pm2.21dd $p |- ( ph -> ch ) $=
      ( pm2.65i pm2.21i ) ACABDEFG $.
  $}

  ${
    pm2.65d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    pm2.65d.2 $e |- ( ph -> ( ps -> -. ch ) ) $.
    $( Deduction rule for proof by contradiction.  (Contributed by NM,
       26-Jun-1994.)  (Proof shortened by Wolf Lammen, 26-May-2013.) $)
    pm2.65d $p |- ( ph -> -. ps ) $=
      ( nsyld pm2.01d ) ABABCBEDFG $.
  $}

  ${
    mto.1 $e |- -. ps $.
    mto.2 $e |- ( ph -> ps ) $.
    $( The rule of modus tollens.  The rule says, "if ` ps ` is not true, and
       ` ph ` implies ` ps ` , then ` ph ` must also be not true."  Modus
       tollens is short for "modus tollendo tollens," a Latin phrase that means
       "the mode that by denying denies" - remark in [Sanford] p. 39.  It is
       also called denying the consequent.  Modus tollens is closely related to
       modus ponens ~ ax-mp .  Note that this rule is also valid in
       intuitionistic logic.  Inference associated with ~ con3i .  (Contributed
       by NM, 19-Aug-1993.)  (Proof shortened by Wolf Lammen, 11-Sep-2013.) $)
    mto $p |- -. ph $=
      ( wn a1i pm2.65i ) ABDBEACFG $.
  $}

  ${
    mtod.1 $e |- ( ph -> -. ch ) $.
    mtod.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Modus tollens deduction.  (Contributed by NM, 3-Apr-1994.)  (Proof
       shortened by Wolf Lammen, 11-Sep-2013.) $)
    mtod $p |- ( ph -> -. ps ) $=
      ( wn a1d pm2.65d ) ABCEACFBDGH $.
  $}

  ${
    mtoi.1 $e |- -. ch $.
    mtoi.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Modus tollens inference.  (Contributed by NM, 5-Jul-1994.)  (Proof
       shortened by Wolf Lammen, 15-Sep-2012.) $)
    mtoi $p |- ( ph -> -. ps ) $=
      ( wn a1i mtod ) ABCCFADGEH $.
  $}

  ${
    mt2.1 $e |- ps $.
    mt2.2 $e |- ( ph -> -. ps ) $.
    $( A rule similar to modus tollens.  Inference associated with ~ con2i .
       (Contributed by NM, 19-Aug-1993.)  (Proof shortened by Wolf Lammen,
       10-Sep-2013.) $)
    mt2 $p |- -. ph $=
      ( a1i pm2.65i ) ABBACEDF $.
  $}

  ${
    mt3.1 $e |- -. ps $.
    mt3.2 $e |- ( -. ph -> ps ) $.
    $( A rule similar to modus tollens.  Inference associated with ~ con1i .
       (Contributed by NM, 18-May-1994.)  (Proof shortened by Wolf Lammen,
       11-Sep-2013.) $)
    mt3 $p |- ph $=
      ( wn mto notnotri ) AAEBCDFG $.
  $}

  $( Peirce's axiom.  This odd-looking theorem is the "difference" between an
     intuitionistic system of propositional calculus and a classical system and
     is not accepted by intuitionists.  When Peirce's axiom is added to an
     intuitionistic system, the system becomes equivalent to our classical
     system ~ ax-1 through ~ ax-3 .  A notable fact about this theorem is that
     it requires ~ ax-3 for its proof even though the result has no negation
     connectives in it.  (Contributed by NM, 29-Dec-1992.)  (Proof shortened by
     Wolf Lammen, 9-Oct-2012.) $)
  peirce $p |- ( ( ( ph -> ps ) -> ph ) -> ph ) $=
    ( wi simplim id ja ) ABCAAABDAEF $.

  $( The Inversion Axiom of the infinite-valued sentential logic (L-infinity)
     of Lukasiewicz.  Using ~ dfor2 , we can see that this essentially
     expresses "disjunction commutes."  Theorem *2.69 of [WhiteheadRussell]
     p. 108.  It is a special instance of the axiom "Roll", see ~ peirceroll .
     (Contributed by NM, 12-Aug-2004.) $)
  looinv $p |- ( ( ( ph -> ps ) -> ps ) -> ( ( ps -> ph ) -> ph ) ) $=
    ( wi imim1 peirce syl6 ) ABCZBCBACGACAGBADABEF $.

  $( Theorem used to justify definition of biconditional ~ df-bi .
     (Contributed by NM, 11-May-1999.)  (Proof shortened by Josh Purinton,
     29-Dec-2000.) $)
  bijust $p |- -. ( ( -. ( ( ph -> ps ) -> -. ( ps -> ph ) )
                      -> -. ( ( ph -> ps ) -> -. ( ps -> ph ) ) )
               -> -. ( -. ( ( ph -> ps ) -> -. ( ps -> ph ) )
                      -> -. ( ( ph -> ps ) -> -. ( ps -> ph ) ) ) ) $=
    ( wi wn id pm2.01 mt2 ) ABCBACDCDZHCZIDCIHEIFG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Logical equivalence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The definition ~ df-bi in this section is our first definition, which
  introduces and defines the biconditional connective ` <-> ` .  We define a
  wff of the form ` ( ph <-> ps ) ` as an abbreviation for
  ` -. ( ( ph -> ps ) -> -. ( ps -> ph ) ) ` .

  Unlike most traditional developments, we have chosen not to have a separate
  symbol such as "Df." to mean "is defined as."  Instead, we will later use the
  biconditional connective for this purpose ( ~ df-or is its first use), as it
  allows us to use logic to manipulate definitions directly.  This greatly
  simplifies many proofs since it eliminates the need for a separate mechanism
  for introducing and eliminating definitions.

$)

  $( Declare the biconditional connective. $)
  $c <-> $. $( Double arrow (read:  'if and only if' or
               'is logically equivalent to') $)

  $( Extend our wff definition to include the biconditional connective. $)
  wb $a wff ( ph <-> ps ) $.

  $( Define the biconditional (logical 'iff').

     The definition ~ df-bi in this section is our first definition, which
     introduces and defines the biconditional connective ` <-> ` .  We define a
     wff of the form ` ( ph <-> ps ) ` as an abbreviation for
     ` -. ( ( ph -> ps ) -> -. ( ps -> ph ) ) ` .

     Unlike most traditional developments, we have chosen not to have a
     separate symbol such as "Df." to mean "is defined as."  Instead, we will
     later use the biconditional connective for this purpose ( ~ df-or is its
     first use), as it allows us to use logic to manipulate definitions
     directly.  This greatly simplifies many proofs since it eliminates the
     need for a separate mechanism for introducing and eliminating definitions.
     Of course, we cannot use this mechanism to define the biconditional
     itself, since it hasn't been introduced yet.  Instead, we use a more
     general form of definition, described as follows.

     In its most general form, a definition is simply an assertion that
     introduces a new symbol (or a new combination of existing symbols, as in
     ~ df-3an ) that is eliminable and does not strengthen the existing
     language.  The latter requirement means that the set of provable
     statements not containing the new symbol (or new combination) should
     remain exactly the same after the definition is introduced.  Our
     definition of the biconditional may look unusual compared to most
     definitions, but it strictly satisfies these requirements.

     The justification for our definition is that if we mechanically replace
     ` ( ph <-> ps ) ` (the definiendum i.e. the thing being defined) with
     ` -. ( ( ph -> ps ) -> -. ( ps -> ph ) ) ` (the definiens i.e. the
     defining expression) in the definition, the definition becomes the
     previously proved theorem ~ bijust .  It is impossible to use ~ df-bi to
     prove any statement expressed in the original language that can't be
     proved from the original axioms, because if we simply replace each
     instance of ~ df-bi in the proof with the corresponding ~ bijust instance,
     we will end up with a proof from the original axioms.

     Note that from Metamath's point of view, a definition is just another
     axiom - i.e. an assertion we claim to be true - but from our high level
     point of view, we are not strengthening the language.  To indicate this
     fact, we prefix definition labels with "df-" instead of "ax-".  (This
     prefixing is an informal convention that means nothing to the Metamath
     proof verifier; it is just a naming convention for human readability.)

     After we define the constant true ` T. ` ( ~ df-tru ) and the constant
     false ` F. ` ( ~ df-fal ), we will be able to prove these truth table
     values: ` ( ( T. <-> T. ) <-> T. ) ` ( ~ trubitru ),
     ` ( ( T. <-> F. ) <-> F. ) ` ( ~ trubifal ), ` ( ( F. <-> T. ) <-> F. ) `
     ( ~ falbitru ), and ` ( ( F. <-> F. ) <-> T. ) ` ( ~ falbifal ).

     See ~ dfbi1 , ~ dfbi2 , and ~ dfbi3 for theorems suggesting typical
     textbook definitions of ` <-> ` , showing that our definition has the
     properties we expect.  Theorem ~ dfbi1 is particularly useful if we want
     to eliminate ` <-> ` from an expression to convert it to primitives.
     Theorem ~ dfbi shows this definition rewritten in an abbreviated form
     after conjunction is introduced, for easier understanding.

     Contrast with ` \/ ` ( ~ df-or ), ` -> ` ( ~ wi ), ` -/\ ` ( ~ df-nan ),
     and ` \/_ ` ( ~ df-xor ) .  In some sense ` <-> ` returns true if two
     truth values are equal; ` = ` ( ~ df-cleq ) returns true if two classes
     are equal.  (Contributed by NM, 27-Dec-1992.) $)
  df-bi $a |- -. ( ( ( ph <-> ps ) -> -. ( ( ph -> ps ) -> -. ( ps -> ph ) ) )
        -> -. ( -. ( ( ph -> ps ) -> -. ( ps -> ph ) ) -> ( ph <-> ps ) ) ) $.

  $( $j justification 'bijust' for 'df-bi'; $)

  $( Property of the biconditional connective.  (Contributed by NM,
     11-May-1999.) $)
  impbi $p |- ( ( ph -> ps ) -> ( ( ps -> ph ) -> ( ph <-> ps ) ) ) $=
    ( wi wb wn df-bi simprim ax-mp expi ) ABCZBACZABDZLJKECEZCZMLCZECEOABFNOGHI
    $.

  ${
    impbii.1 $e |- ( ph -> ps ) $.
    impbii.2 $e |- ( ps -> ph ) $.
    $( Infer an equivalence from an implication and its converse.  Inference
       associated with ~ impbi .  (Contributed by NM, 29-Dec-1992.) $)
    impbii $p |- ( ph <-> ps ) $=
      ( wi wb impbi mp2 ) ABEBAEABFCDABGH $.
  $}

  ${
    impbidd.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    impbidd.2 $e |- ( ph -> ( ps -> ( th -> ch ) ) ) $.
    $( Deduce an equivalence from two implications.  Double deduction
       associated with ~ impbi and ~ impbii .  Deduction associated with
       ~ impbid .  (Contributed by Rodolfo Medina, 12-Oct-2010.) $)
    impbidd $p |- ( ph -> ( ps -> ( ch <-> th ) ) ) $=
      ( wi wb impbi syl6c ) ABCDGDCGCDHEFCDIJ $.
  $}

  ${
    impbid21d.1 $e |- ( ps -> ( ch -> th ) ) $.
    impbid21d.2 $e |- ( ph -> ( th -> ch ) ) $.
    $( Deduce an equivalence from two implications.  (Contributed by Wolf
       Lammen, 12-May-2013.) $)
    impbid21d $p |- ( ph -> ( ps -> ( ch <-> th ) ) ) $=
      ( wi a1i a1d impbidd ) ABCDBCDGGAEHADCGBFIJ $.
  $}

  ${
    impbid.1 $e |- ( ph -> ( ps -> ch ) ) $.
    impbid.2 $e |- ( ph -> ( ch -> ps ) ) $.
    $( Deduce an equivalence from two implications.  Deduction associated with
       ~ impbi and ~ impbii .  (Contributed by NM, 24-Jan-1993.)  Revised to
       prove it from ~ impbid21d .  (Revised by Wolf Lammen, 3-Nov-2012.) $)
    impbid $p |- ( ph -> ( ps <-> ch ) ) $=
      ( wb impbid21d pm2.43i ) ABCFAABCDEGH $.
  $}

  $( Relate the biconditional connective to primitive connectives.  See
     ~ dfbi1ALT for an unusual version proved directly from axioms.
     (Contributed by NM, 29-Dec-1992.) $)
  dfbi1 $p |- ( ( ph <-> ps ) <-> -. ( ( ph -> ps ) -> -. ( ps -> ph ) ) ) $=
    ( wb wi wn df-bi simplim ax-mp impbi impi impbii ) ABCZABDZBADZEDEZLODZOLDE
    ZDEPABFPQGHMNLABIJK $.

  $( Alternate proof of ~ dfbi1 .  This proof, discovered by Gregory Bush on
     8-Mar-2004, has several curious properties.  First, it has only 17 steps
     directly from the axioms and ~ df-bi , compared to over 800 steps were the
     proof of ~ dfbi1 expanded into axioms.  Second, step 2 demands only the
     property of "true"; any axiom (or theorem) could be used.  It might be
     thought, therefore, that it is in some sense redundant, but in fact no
     proof is shorter than this (measured by number of steps).  Third, it
     illustrates how intermediate steps can "blow up" in size even in short
     proofs.  Fourth, the compressed proof is only 182 bytes (or 17 bytes in
     D-proof notation), but the generated web page is over 200kB with
     intermediate steps that are essentially incomprehensible to humans (other
     than Gregory Bush).  If there were an obfuscated code contest for proofs,
     this would be a contender.  This "blowing up" and incomprehensibility of
     the intermediate steps vividly demonstrate the advantages of using many
     layered intermediate theorems, since each theorem is easier to understand.
     (Contributed by Gregory Bush, 10-Mar-2004.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  dfbi1ALT $p |-
                ( ( ph <-> ps ) <-> -. ( ( ph -> ps ) -> -. ( ps -> ph ) ) ) $=
    ( wch wth wb wi wn df-bi ax-1 ax-mp ax-3 ax-2 ) ABEZABFBAFGFGZFNMFGFGZMNEZA
    BHCDCFFZOPFZCDIRGZQGZFZQRFSPOFZSFZFZUASUBISUCTFZFZUDUAFUEUFTGZUCGZFZUEUHUIM
    NHUHUGIJTUCKJUESIJSUCTLJJRQKJJJ $.

  $( Property of the biconditional connective.  (Contributed by NM,
     11-May-1999.) $)
  biimp $p |- ( ( ph <-> ps ) -> ( ph -> ps ) ) $=
    ( wb wi wn df-bi simplim ax-mp syl ) ABCZABDZBADEZDEZKJMDZMJDEZDENABFNOGHKL
    GI $.

  ${
    biimpi.1 $e |- ( ph <-> ps ) $.
    $( Infer an implication from a logical equivalence.  Inference associated
       with ~ biimp .  (Contributed by NM, 29-Dec-1992.) $)
    biimpi $p |- ( ph -> ps ) $=
      ( wb wi biimp ax-mp ) ABDABECABFG $.
  $}

  ${
    sylbi.1 $e |- ( ph <-> ps ) $.
    sylbi.2 $e |- ( ps -> ch ) $.
    $( A mixed syllogism inference from a biconditional and an implication.
       Useful for substituting an antecedent with a definition.  (Contributed
       by NM, 3-Jan-1993.) $)
    sylbi $p |- ( ph -> ch ) $=
      ( biimpi syl ) ABCABDFEG $.
  $}

  ${
    sylib.1 $e |- ( ph -> ps ) $.
    sylib.2 $e |- ( ps <-> ch ) $.
    $( A mixed syllogism inference from an implication and a biconditional.
       (Contributed by NM, 3-Jan-1993.) $)
    sylib $p |- ( ph -> ch ) $=
      ( biimpi syl ) ABCDBCEFG $.
  $}

  ${
    sylbb.1 $e |- ( ph <-> ps ) $.
    sylbb.2 $e |- ( ps <-> ch ) $.
    $( A mixed syllogism inference from two biconditionals.  (Contributed by
       BJ, 30-Mar-2019.) $)
    sylbb $p |- ( ph -> ch ) $=
      ( biimpi sylbi ) ABCDBCEFG $.
  $}

  $( Property of the biconditional connective.  (Contributed by NM,
     11-May-1999.)  (Proof shortened by Wolf Lammen, 11-Nov-2012.) $)
  biimpr $p |- ( ( ph <-> ps ) -> ( ps -> ph ) ) $=
    ( wb wi wn dfbi1 simprim sylbi ) ABCABDZBADZEDEJABFIJGH $.

  $( Commutative law for the biconditional.  (Contributed by Wolf Lammen,
     10-Nov-2012.) $)
  bicom1 $p |- ( ( ph <-> ps ) -> ( ps <-> ph ) ) $=
    ( wb biimpr biimp impbid ) ABCBAABDABEF $.

  $( Commutative law for the biconditional.  Theorem *4.21 of
     [WhiteheadRussell] p. 117.  (Contributed by NM, 11-May-1993.) $)
  bicom $p |- ( ( ph <-> ps ) <-> ( ps <-> ph ) ) $=
    ( wb bicom1 impbii ) ABCBACABDBADE $.

  ${
    bicomd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Commute two sides of a biconditional in a deduction.  (Contributed by
       NM, 14-May-1993.) $)
    bicomd $p |- ( ph -> ( ch <-> ps ) ) $=
      ( wb bicom sylib ) ABCECBEDBCFG $.
  $}

  ${
    bicomi.1 $e |- ( ph <-> ps ) $.
    $( Inference from commutative law for logical equivalence.  (Contributed by
       NM, 3-Jan-1993.) $)
    bicomi $p |- ( ps <-> ph ) $=
      ( wb bicom1 ax-mp ) ABDBADCABEF $.
  $}

  ${
    impbid1.1 $e |- ( ph -> ( ps -> ch ) ) $.
    impbid1.2 $e |- ( ch -> ps ) $.
    $( Infer an equivalence from two implications.  (Contributed by NM,
       6-Mar-2007.) $)
    impbid1 $p |- ( ph -> ( ps <-> ch ) ) $=
      ( wi a1i impbid ) ABCDCBFAEGH $.
  $}

  ${
    impbid2.1 $e |- ( ps -> ch ) $.
    impbid2.2 $e |- ( ph -> ( ch -> ps ) ) $.
    $( Infer an equivalence from two implications.  (Contributed by NM,
       6-Mar-2007.)  (Proof shortened by Wolf Lammen, 27-Sep-2013.) $)
    impbid2 $p |- ( ph -> ( ps <-> ch ) ) $=
      ( impbid1 bicomd ) ACBACBEDFG $.
  $}

  ${
    impcon4bid.1 $e |- ( ph -> ( ps -> ch ) ) $.
    impcon4bid.2 $e |- ( ph -> ( -. ps -> -. ch ) ) $.
    $( A variation on ~ impbid with contraposition.  (Contributed by Jeff
       Hankins, 3-Jul-2009.) $)
    impcon4bid $p |- ( ph -> ( ps <-> ch ) ) $=
      ( con4d impbid ) ABCDABCEFG $.
  $}

  ${
    biimpri.1 $e |- ( ph <-> ps ) $.
    $( Infer a converse implication from a logical equivalence.  Inference
       associated with ~ biimpr .  (Contributed by NM, 29-Dec-1992.)  (Proof
       shortened by Wolf Lammen, 16-Sep-2013.) $)
    biimpri $p |- ( ps -> ph ) $=
      ( bicomi biimpi ) BAABCDE $.
  $}

  ${
    biimpd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduce an implication from a logical equivalence.  Deduction associated
       with ~ biimp and ~ biimpi .  (Contributed by NM, 11-Jan-1993.) $)
    biimpd $p |- ( ph -> ( ps -> ch ) ) $=
      ( wb wi biimp syl ) ABCEBCFDBCGH $.
  $}

  ${
    mpbi.min $e |- ph $.
    mpbi.maj $e |- ( ph <-> ps ) $.
    $( An inference from a biconditional, related to modus ponens.
       (Contributed by NM, 11-May-1993.) $)
    mpbi $p |- ps $=
      ( biimpi ax-mp ) ABCABDEF $.
  $}

  ${
    mpbir.min $e |- ps $.
    mpbir.maj $e |- ( ph <-> ps ) $.
    $( An inference from a biconditional, related to modus ponens.
       (Contributed by NM, 28-Dec-1992.) $)
    mpbir $p |- ph $=
      ( biimpri ax-mp ) BACABDEF $.
  $}

  ${
    mpbid.min $e |- ( ph -> ps ) $.
    mpbid.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( A deduction from a biconditional, related to modus ponens.  (Contributed
       by NM, 21-Jun-1993.) $)
    mpbid $p |- ( ph -> ch ) $=
      ( biimpd mpd ) ABCDABCEFG $.
  $}

  ${
    mpbii.min $e |- ps $.
    mpbii.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( An inference from a nested biconditional, related to modus ponens.
       (Contributed by NM, 16-May-1993.)  (Proof shortened by Wolf Lammen,
       25-Oct-2012.) $)
    mpbii $p |- ( ph -> ch ) $=
      ( a1i mpbid ) ABCBADFEG $.
  $}

  ${
    sylibr.1 $e |- ( ph -> ps ) $.
    sylibr.2 $e |- ( ch <-> ps ) $.
    $( A mixed syllogism inference from an implication and a biconditional.
       Useful for substituting a consequent with a definition.  (Contributed by
       NM, 3-Jan-1993.) $)
    sylibr $p |- ( ph -> ch ) $=
      ( biimpri syl ) ABCDCBEFG $.
  $}

  ${
    sylbir.1 $e |- ( ps <-> ph ) $.
    sylbir.2 $e |- ( ps -> ch ) $.
    $( A mixed syllogism inference from a biconditional and an implication.
       (Contributed by NM, 3-Jan-1993.) $)
    sylbir $p |- ( ph -> ch ) $=
      ( biimpri syl ) ABCBADFEG $.
  $}

  ${
    sylbbr.1 $e |- ( ph <-> ps ) $.
    sylbbr.2 $e |- ( ps <-> ch ) $.
    $( A mixed syllogism inference from two biconditionals.

       Note on the various syllogism-like statements in set.mm.  The
       hypothetical syllogism ~ syl infers an implication from two implications
       (and there are ~ 3syl and ~ 4syl for chaining more inferences).  There
       are four inferences inferring an implication from one implication and
       one biconditional: ~ sylbi , ~ sylib , ~ sylbir , ~ sylibr ; four
       inferences inferring an implication from two biconditionals: ~ sylbb ,
       ~ sylbbr , ~ sylbb1 , ~ sylbb2 ; four inferences inferring a
       biconditional from two biconditionals: ~ bitri , ~ bitr2i , ~ bitr3i ,
       ~ bitr4i (and more for chaining more biconditionals).  There are also
       closed forms and deduction versions of these, like, among many others,
       ~ syld , ~ syl5 , ~ syl6 , ~ mpbid , ~ bitrd , ~ syl5bb , ~ syl6bb and
       variants.  (Contributed by BJ, 21-Apr-2019.) $)
    sylbbr $p |- ( ch -> ph ) $=
      ( biimpri sylibr ) CBABCEFDG $.
  $}

  ${
    sylbb1.1 $e |- ( ph <-> ps ) $.
    sylbb1.2 $e |- ( ph <-> ch ) $.
    $( A mixed syllogism inference from two biconditionals.  (Contributed by
       BJ, 21-Apr-2019.) $)
    sylbb1 $p |- ( ps -> ch ) $=
      ( biimpri sylib ) BACABDFEG $.
  $}

  ${
    sylbb2.1 $e |- ( ph <-> ps ) $.
    sylbb2.2 $e |- ( ch <-> ps ) $.
    $( A mixed syllogism inference from two biconditionals.  (Contributed by
       BJ, 21-Apr-2019.) $)
    sylbb2 $p |- ( ph -> ch ) $=
      ( biimpri sylbi ) ABCDCBEFG $.
  $}

  ${
    sylibd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    sylibd.2 $e |- ( ph -> ( ch <-> th ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 3-Aug-1994.) $)
    sylibd $p |- ( ph -> ( ps -> th ) ) $=
      ( biimpd syld ) ABCDEACDFGH $.
  $}

  ${
    sylbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    sylbid.2 $e |- ( ph -> ( ch -> th ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 3-Aug-1994.) $)
    sylbid $p |- ( ph -> ( ps -> th ) ) $=
      ( biimpd syld ) ABCDABCEGFH $.
  $}

  ${
    mpbidi.min $e |- ( th -> ( ph -> ps ) ) $.
    mpbidi.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( A deduction from a biconditional, related to modus ponens.  (Contributed
       by NM, 9-Aug-1994.) $)
    mpbidi $p |- ( th -> ( ph -> ch ) ) $=
      ( biimpd sylcom ) DABCEABCFGH $.
  $}

  ${
    syl5bi.1 $e |- ( ph <-> ps ) $.
    syl5bi.2 $e |- ( ch -> ( ps -> th ) ) $.
    $( A mixed syllogism inference from a nested implication and a
       biconditional.  Useful for substituting an embedded antecedent with a
       definition.  (Contributed by NM, 12-Jan-1993.) $)
    syl5bi $p |- ( ch -> ( ph -> th ) ) $=
      ( biimpi syl5 ) ABCDABEGFH $.
  $}

  ${
    syl5bir.1 $e |- ( ps <-> ph ) $.
    syl5bir.2 $e |- ( ch -> ( ps -> th ) ) $.
    $( A mixed syllogism inference from a nested implication and a
       biconditional.  (Contributed by NM, 21-Jun-1993.) $)
    syl5bir $p |- ( ch -> ( ph -> th ) ) $=
      ( biimpri syl5 ) ABCDBAEGFH $.
  $}

  ${
    syl5ib.1 $e |- ( ph -> ps ) $.
    syl5ib.2 $e |- ( ch -> ( ps <-> th ) ) $.
    $( A mixed syllogism inference.  (Contributed by NM, 12-Jan-1993.) $)
    syl5ib $p |- ( ch -> ( ph -> th ) ) $=
      ( biimpd syl5 ) ABCDECBDFGH $.

    $( A mixed syllogism inference.  (Contributed by NM, 19-Jun-2007.) $)
    syl5ibcom $p |- ( ph -> ( ch -> th ) ) $=
      ( syl5ib com12 ) CADABCDEFGH $.
  $}

  ${
    syl5ibr.1 $e |- ( ph -> th ) $.
    syl5ibr.2 $e |- ( ch -> ( ps <-> th ) ) $.
    $( A mixed syllogism inference.  (Contributed by NM, 3-Apr-1994.) $)
    syl5ibr $p |- ( ch -> ( ph -> ps ) ) $=
      ( bicomd syl5ib ) ADCBECBDFGH $.

    $( A mixed syllogism inference.  (Contributed by NM, 20-Jun-2007.) $)
    syl5ibrcom $p |- ( ph -> ( ch -> ps ) ) $=
      ( syl5ibr com12 ) CABABCDEFGH $.
  $}

  ${
    biimprd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduce a converse implication from a logical equivalence.  Deduction
       associated with ~ biimpr and ~ biimpri .  (Contributed by NM,
       11-Jan-1993.)  (Proof shortened by Wolf Lammen, 22-Sep-2013.) $)
    biimprd $p |- ( ph -> ( ch -> ps ) ) $=
      ( id syl5ibr ) CBACCEDF $.
  $}

  ${
    biimpcd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduce a commuted implication from a logical equivalence.  (Contributed
       by NM, 3-May-1994.)  (Proof shortened by Wolf Lammen, 22-Sep-2013.) $)
    biimpcd $p |- ( ps -> ( ph -> ch ) ) $=
      ( id syl5ibcom ) BBACBEDF $.

    $( Deduce a converse commuted implication from a logical equivalence.
       (Contributed by NM, 3-May-1994.)  (Proof shortened by Wolf Lammen,
       20-Dec-2013.) $)
    biimprcd $p |- ( ch -> ( ph -> ps ) ) $=
      ( id syl5ibrcom ) CBACCEDF $.
  $}

  ${
    syl6ib.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6ib.2 $e |- ( ch <-> th ) $.
    $( A mixed syllogism inference from a nested implication and a
       biconditional.  (Contributed by NM, 21-Jun-1993.) $)
    syl6ib $p |- ( ph -> ( ps -> th ) ) $=
      ( biimpi syl6 ) ABCDECDFGH $.
  $}

  ${
    syl6ibr.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl6ibr.2 $e |- ( th <-> ch ) $.
    $( A mixed syllogism inference from a nested implication and a
       biconditional.  Useful for substituting an embedded consequent with a
       definition.  (Contributed by NM, 10-Jan-1993.) $)
    syl6ibr $p |- ( ph -> ( ps -> th ) ) $=
      ( biimpri syl6 ) ABCDEDCFGH $.
  $}

  ${
    syl6bi.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    syl6bi.2 $e |- ( ch -> th ) $.
    $( A mixed syllogism inference.  (Contributed by NM, 2-Jan-1994.) $)
    syl6bi $p |- ( ph -> ( ps -> th ) ) $=
      ( biimpd syl6 ) ABCDABCEGFH $.
  $}

  ${
    syl6bir.1 $e |- ( ph -> ( ch <-> ps ) ) $.
    syl6bir.2 $e |- ( ch -> th ) $.
    $( A mixed syllogism inference.  (Contributed by NM, 18-May-1994.) $)
    syl6bir $p |- ( ph -> ( ps -> th ) ) $=
      ( biimprd syl6 ) ABCDACBEGFH $.
  $}

  ${
    syl7bi.1 $e |- ( ph <-> ps ) $.
    syl7bi.2 $e |- ( ch -> ( th -> ( ps -> ta ) ) ) $.
    $( A mixed syllogism inference from a doubly nested implication and a
       biconditional.  (Contributed by NM, 14-May-1993.) $)
    syl7bi $p |- ( ch -> ( th -> ( ph -> ta ) ) ) $=
      ( biimpi syl7 ) ABCDEABFHGI $.
  $}

  ${
    syl8ib.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    syl8ib.2 $e |- ( th <-> ta ) $.
    $( A syllogism rule of inference.  The second premise is used to replace
       the consequent of the first premise.  (Contributed by NM,
       1-Aug-1994.) $)
    syl8ib $p |- ( ph -> ( ps -> ( ch -> ta ) ) ) $=
      ( biimpi syl8 ) ABCDEFDEGHI $.
  $}

  ${
    mpbird.min $e |- ( ph -> ch ) $.
    mpbird.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( A deduction from a biconditional, related to modus ponens.  (Contributed
       by NM, 5-Aug-1993.) $)
    mpbird $p |- ( ph -> ps ) $=
      ( biimprd mpd ) ACBDABCEFG $.
  $}

  ${
    mpbiri.min $e |- ch $.
    mpbiri.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( An inference from a nested biconditional, related to modus ponens.
       (Contributed by NM, 21-Jun-1993.)  (Proof shortened by Wolf Lammen,
       25-Oct-2012.) $)
    mpbiri $p |- ( ph -> ps ) $=
      ( a1i mpbird ) ABCCADFEG $.
  $}

  ${
    sylibrd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    sylibrd.2 $e |- ( ph -> ( th <-> ch ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 3-Aug-1994.) $)
    sylibrd $p |- ( ph -> ( ps -> th ) ) $=
      ( biimprd syld ) ABCDEADCFGH $.
  $}

  ${
    sylbird.1 $e |- ( ph -> ( ch <-> ps ) ) $.
    sylbird.2 $e |- ( ph -> ( ch -> th ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 3-Aug-1994.) $)
    sylbird $p |- ( ph -> ( ps -> th ) ) $=
      ( biimprd syld ) ABCDACBEGFH $.
  $}

  $( Principle of identity for logical equivalence.  Theorem *4.2 of
     [WhiteheadRussell] p. 117.  This is part of Frege's eighth axiom per
     Proposition 54 of [Frege1879] p. 50; see also ~ eqid .  (Contributed by
     NM, 2-Jun-1993.) $)
  biid $p |- ( ph <-> ph ) $=
    ( id impbii ) AAABZDC $.

  $( Principle of identity with antecedent.  (Contributed by NM,
     25-Nov-1995.) $)
  biidd $p |- ( ph -> ( ps <-> ps ) ) $=
    ( wb biid a1i ) BBCABDE $.

  $( Two propositions are equivalent if they are both true.  Closed form of
     ~ 2th .  Equivalent to a ~ biimp -like version of the xor-connective.
     This theorem stays true, no matter how you permute its operands.  This is
     evident from its sharper version ` ( ph <-> ( ps <-> ( ph <-> ps ) ) ) ` .
     (Contributed by Wolf Lammen, 12-May-2013.) $)
  pm5.1im $p |- ( ph -> ( ps -> ( ph <-> ps ) ) ) $=
    ( ax-1 impbid21d ) ABABBACABCD $.

  ${
    2th.1 $e |- ph $.
    2th.2 $e |- ps $.
    $( Two truths are equivalent.  (Contributed by NM, 18-Aug-1993.) $)
    2th $p |- ( ph <-> ps ) $=
      ( a1i impbii ) ABBADEABCEF $.
  $}

  ${
    2thd.1 $e |- ( ph -> ps ) $.
    2thd.2 $e |- ( ph -> ch ) $.
    $( Two truths are equivalent (deduction rule).  (Contributed by NM,
       3-Jun-2012.) $)
    2thd $p |- ( ph -> ( ps <-> ch ) ) $=
      ( wb pm5.1im sylc ) ABCBCFDEBCGH $.
  $}

  ${
    ibi.1 $e |- ( ph -> ( ph <-> ps ) ) $.
    $( Inference that converts a biconditional implied by one of its arguments,
       into an implication.  (Contributed by NM, 17-Oct-2003.) $)
    ibi $p |- ( ph -> ps ) $=
      ( biimpd pm2.43i ) ABAABCDE $.
  $}

  ${
    ibir.1 $e |- ( ph -> ( ps <-> ph ) ) $.
    $( Inference that converts a biconditional implied by one of its arguments,
       into an implication.  (Contributed by NM, 22-Jul-2004.) $)
    ibir $p |- ( ph -> ps ) $=
      ( bicomd ibi ) ABABACDE $.
  $}

  ${
    ibd.1 $e |- ( ph -> ( ps -> ( ps <-> ch ) ) ) $.
    $( Deduction that converts a biconditional implied by one of its arguments,
       into an implication.  Deduction associated with ~ ibi .  (Contributed by
       NM, 26-Jun-2004.) $)
    ibd $p |- ( ph -> ( ps -> ch ) ) $=
      ( wb biimp syli ) BABCECDBCFG $.
  $}

  $( Distribution of implication over biconditional.  Theorem *5.74 of
     [WhiteheadRussell] p. 126.  (Contributed by NM, 1-Aug-1994.)  (Proof
     shortened by Wolf Lammen, 11-Apr-2013.) $)
  pm5.74 $p |- ( ( ph -> ( ps <-> ch ) ) <->
               ( ( ph -> ps ) <-> ( ph -> ch ) ) ) $=
    ( wb wi biimp imim3i biimpr impbid pm2.86d impbidd impbii ) ABCDZEZABEZACEZ
    DZNOPMBCABCFGMCBABCHGIQABCQABCOPFJQACBOPHJKL $.

  ${
    pm5.74i.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Distribution of implication over biconditional (inference rule).
       (Contributed by NM, 1-Aug-1994.) $)
    pm5.74i $p |- ( ( ph -> ps ) <-> ( ph -> ch ) ) $=
      ( wb wi pm5.74 mpbi ) ABCEFABFACFEDABCGH $.
  $}

  ${
    pm5.74ri.1 $e |- ( ( ph -> ps ) <-> ( ph -> ch ) ) $.
    $( Distribution of implication over biconditional (reverse inference rule).
       (Contributed by NM, 1-Aug-1994.) $)
    pm5.74ri $p |- ( ph -> ( ps <-> ch ) ) $=
      ( wb wi pm5.74 mpbir ) ABCEFABFACFEDABCGH $.
  $}

  ${
    pm5.74d.1 $e |- ( ph -> ( ps -> ( ch <-> th ) ) ) $.
    $( Distribution of implication over biconditional (deduction rule).
       (Contributed by NM, 21-Mar-1996.) $)
    pm5.74d $p |- ( ph -> ( ( ps -> ch ) <-> ( ps -> th ) ) ) $=
      ( wb wi pm5.74 sylib ) ABCDFGBCGBDGFEBCDHI $.
  $}

  ${
    pm5.74rd.1 $e |- ( ph -> ( ( ps -> ch ) <-> ( ps -> th ) ) ) $.
    $( Distribution of implication over biconditional (deduction rule).
       (Contributed by NM, 19-Mar-1997.) $)
    pm5.74rd $p |- ( ph -> ( ps -> ( ch <-> th ) ) ) $=
      ( wi wb pm5.74 sylibr ) ABCFBDFGBCDGFEBCDHI $.
  $}

  ${
    bitri.1 $e |- ( ph <-> ps ) $.
    bitri.2 $e |- ( ps <-> ch ) $.
    $( An inference from transitive law for logical equivalence.  (Contributed
       by NM, 3-Jan-1993.)  (Proof shortened by Wolf Lammen, 13-Oct-2012.) $)
    bitri $p |- ( ph <-> ch ) $=
      ( sylbb sylbbr impbii ) ACABCDEFABCDEGH $.
  $}

  ${
    bitr2i.1 $e |- ( ph <-> ps ) $.
    bitr2i.2 $e |- ( ps <-> ch ) $.
    $( An inference from transitive law for logical equivalence.  (Contributed
       by NM, 12-Mar-1993.) $)
    bitr2i $p |- ( ch <-> ph ) $=
      ( bitri bicomi ) ACABCDEFG $.
  $}

  ${
    bitr3i.1 $e |- ( ps <-> ph ) $.
    bitr3i.2 $e |- ( ps <-> ch ) $.
    $( An inference from transitive law for logical equivalence.  (Contributed
       by NM, 2-Jun-1993.) $)
    bitr3i $p |- ( ph <-> ch ) $=
      ( bicomi bitri ) ABCBADFEG $.
  $}

  ${
    bitr4i.1 $e |- ( ph <-> ps ) $.
    bitr4i.2 $e |- ( ch <-> ps ) $.
    $( An inference from transitive law for logical equivalence.  (Contributed
       by NM, 3-Jan-1993.) $)
    bitr4i $p |- ( ph <-> ch ) $=
      ( bicomi bitri ) ABCDCBEFG $.
  $}

  $( Register '<->' as an equality for its type (wff). $)
  $( $j
    equality 'wb' from 'biid' 'bicomi' 'bitri';
    definition 'dfbi1' for 'wb';
  $)

  ${
    bitrd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bitrd.2 $e |- ( ph -> ( ch <-> th ) ) $.
    $( Deduction form of ~ bitri .  (Contributed by NM, 12-Mar-1993.)  (Proof
       shortened by Wolf Lammen, 14-Apr-2013.) $)
    bitrd $p |- ( ph -> ( ps <-> th ) ) $=
      ( wi pm5.74i bitri pm5.74ri ) ABDABGACGADGABCEHACDFHIJ $.
  $}

  ${
    bitr2d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bitr2d.2 $e |- ( ph -> ( ch <-> th ) ) $.
    $( Deduction form of ~ bitr2i .  (Contributed by NM, 9-Jun-2004.) $)
    bitr2d $p |- ( ph -> ( th <-> ps ) ) $=
      ( bitrd bicomd ) ABDABCDEFGH $.
  $}

  ${
    bitr3d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bitr3d.2 $e |- ( ph -> ( ps <-> th ) ) $.
    $( Deduction form of ~ bitr3i .  (Contributed by NM, 14-May-1993.) $)
    bitr3d $p |- ( ph -> ( ch <-> th ) ) $=
      ( bicomd bitrd ) ACBDABCEGFH $.
  $}

  ${
    bitr4d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bitr4d.2 $e |- ( ph -> ( th <-> ch ) ) $.
    $( Deduction form of ~ bitr4i .  (Contributed by NM, 30-Jun-1993.) $)
    bitr4d $p |- ( ph -> ( ps <-> th ) ) $=
      ( bicomd bitrd ) ABCDEADCFGH $.
  $}

  ${
    syl5bb.1 $e |- ( ph <-> ps ) $.
    syl5bb.2 $e |- ( ch -> ( ps <-> th ) ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       12-Mar-1993.) $)
    syl5bb $p |- ( ch -> ( ph <-> th ) ) $=
      ( wb a1i bitrd ) CABDABGCEHFI $.
  $}

  ${
    syl5rbb.1 $e |- ( ph <-> ps ) $.
    syl5rbb.2 $e |- ( ch -> ( ps <-> th ) ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       1-Aug-1993.) $)
    syl5rbb $p |- ( ch -> ( th <-> ph ) ) $=
      ( syl5bb bicomd ) CADABCDEFGH $.
  $}

  ${
    syl5bbr.1 $e |- ( ps <-> ph ) $.
    syl5bbr.2 $e |- ( ch -> ( ps <-> th ) ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       5-Aug-1993.) $)
    syl5bbr $p |- ( ch -> ( ph <-> th ) ) $=
      ( bicomi syl5bb ) ABCDBAEGFH $.
  $}

  ${
    syl5rbbr.1 $e |- ( ps <-> ph ) $.
    syl5rbbr.2 $e |- ( ch -> ( ps <-> th ) ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       25-Nov-1994.) $)
    syl5rbbr $p |- ( ch -> ( th <-> ph ) ) $=
      ( bicomi syl5rbb ) ABCDBAEGFH $.
  $}

  ${
    syl6bb.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    syl6bb.2 $e |- ( ch <-> th ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       12-Mar-1993.) $)
    syl6bb $p |- ( ph -> ( ps <-> th ) ) $=
      ( wb a1i bitrd ) ABCDECDGAFHI $.
  $}

  ${
    syl6rbb.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    syl6rbb.2 $e |- ( ch <-> th ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       5-Aug-1993.) $)
    syl6rbb $p |- ( ph -> ( th <-> ps ) ) $=
      ( syl6bb bicomd ) ABDABCDEFGH $.
  $}

  ${
    syl6bbr.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    syl6bbr.2 $e |- ( th <-> ch ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       12-Mar-1993.) $)
    syl6bbr $p |- ( ph -> ( ps <-> th ) ) $=
      ( bicomi syl6bb ) ABCDEDCFGH $.
  $}

  ${
    syl6rbbr.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    syl6rbbr.2 $e |- ( th <-> ch ) $.
    $( A syllogism inference from two biconditionals.  (Contributed by NM,
       25-Nov-1994.) $)
    syl6rbbr $p |- ( ph -> ( th <-> ps ) ) $=
      ( bicomi syl6rbb ) ABCDEDCFGH $.
  $}

  ${
    3imtr3.1 $e |- ( ph -> ps ) $.
    3imtr3.2 $e |- ( ph <-> ch ) $.
    3imtr3.3 $e |- ( ps <-> th ) $.
    $( A mixed syllogism inference, useful for removing a definition from both
       sides of an implication.  (Contributed by NM, 10-Aug-1994.) $)
    3imtr3i $p |- ( ch -> th ) $=
      ( sylbir sylib ) CBDCABFEHGI $.
  $}

  ${
    3imtr4.1 $e |- ( ph -> ps ) $.
    3imtr4.2 $e |- ( ch <-> ph ) $.
    3imtr4.3 $e |- ( th <-> ps ) $.
    $( A mixed syllogism inference, useful for applying a definition to both
       sides of an implication.  (Contributed by NM, 3-Jan-1993.) $)
    3imtr4i $p |- ( ch -> th ) $=
      ( sylbi sylibr ) CBDCABFEHGI $.
  $}

  ${
    3imtr3d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3imtr3d.2 $e |- ( ph -> ( ps <-> th ) ) $.
    3imtr3d.3 $e |- ( ph -> ( ch <-> ta ) ) $.
    $( More general version of ~ 3imtr3i .  Useful for converting conditional
       definitions in a formula.  (Contributed by NM, 8-Apr-1996.) $)
    3imtr3d $p |- ( ph -> ( th -> ta ) ) $=
      ( sylibd sylbird ) ADBEGABCEFHIJ $.
  $}

  ${
    3imtr4d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3imtr4d.2 $e |- ( ph -> ( th <-> ps ) ) $.
    3imtr4d.3 $e |- ( ph -> ( ta <-> ch ) ) $.
    $( More general version of ~ 3imtr4i .  Useful for converting conditional
       definitions in a formula.  (Contributed by NM, 26-Oct-1995.) $)
    3imtr4d $p |- ( ph -> ( th -> ta ) ) $=
      ( sylibrd sylbid ) ADBEGABCEFHIJ $.
  $}

  ${
    3imtr3g.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3imtr3g.2 $e |- ( ps <-> th ) $.
    3imtr3g.3 $e |- ( ch <-> ta ) $.
    $( More general version of ~ 3imtr3i .  Useful for converting definitions
       in a formula.  (Contributed by NM, 20-May-1996.)  (Proof shortened by
       Wolf Lammen, 20-Dec-2013.) $)
    3imtr3g $p |- ( ph -> ( th -> ta ) ) $=
      ( syl5bir syl6ib ) ADCEDBACGFIHJ $.
  $}

  ${
    3imtr4g.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3imtr4g.2 $e |- ( th <-> ps ) $.
    3imtr4g.3 $e |- ( ta <-> ch ) $.
    $( More general version of ~ 3imtr4i .  Useful for converting definitions
       in a formula.  (Contributed by NM, 20-May-1996.)  (Proof shortened by
       Wolf Lammen, 20-Dec-2013.) $)
    3imtr4g $p |- ( ph -> ( th -> ta ) ) $=
      ( syl5bi syl6ibr ) ADCEDBACGFIHJ $.
  $}

  ${
    3bitri.1 $e |- ( ph <-> ps ) $.
    3bitri.2 $e |- ( ps <-> ch ) $.
    3bitri.3 $e |- ( ch <-> th ) $.
    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 3-Jan-1993.) $)
    3bitri $p |- ( ph <-> th ) $=
      ( bitri ) ABDEBCDFGHH $.

    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 4-Aug-2006.) $)
    3bitrri $p |- ( th <-> ph ) $=
      ( bitr2i bitr3i ) DCAGABCEFHI $.
  $}

  ${
    3bitr2i.1 $e |- ( ph <-> ps ) $.
    3bitr2i.2 $e |- ( ch <-> ps ) $.
    3bitr2i.3 $e |- ( ch <-> th ) $.
    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 4-Aug-2006.) $)
    3bitr2i $p |- ( ph <-> th ) $=
      ( bitr4i bitri ) ACDABCEFHGI $.

    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 4-Aug-2006.) $)
    3bitr2ri $p |- ( th <-> ph ) $=
      ( bitr4i bitr2i ) ACDABCEFHGI $.
  $}

  ${
    3bitr3i.1 $e |- ( ph <-> ps ) $.
    3bitr3i.2 $e |- ( ph <-> ch ) $.
    3bitr3i.3 $e |- ( ps <-> th ) $.
    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 19-Aug-1993.) $)
    3bitr3i $p |- ( ch <-> th ) $=
      ( bitr3i bitri ) CBDCABFEHGI $.

    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 21-Jun-1993.) $)
    3bitr3ri $p |- ( th <-> ch ) $=
      ( bitr3i ) DBCGBACEFHH $.
  $}

  ${
    3bitr4i.1 $e |- ( ph <-> ps ) $.
    3bitr4i.2 $e |- ( ch <-> ph ) $.
    3bitr4i.3 $e |- ( th <-> ps ) $.
    $( A chained inference from transitive law for logical equivalence.  This
       inference is frequently used to apply a definition to both sides of a
       logical equivalence.  (Contributed by NM, 3-Jan-1993.) $)
    3bitr4i $p |- ( ch <-> th ) $=
      ( bitr4i bitri ) CADFABDEGHI $.

    $( A chained inference from transitive law for logical equivalence.
       (Contributed by NM, 2-Sep-1995.) $)
    3bitr4ri $p |- ( th <-> ch ) $=
      ( bitr4i bitr2i ) CADFABDEGHI $.
  $}

  ${
    3bitrd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3bitrd.2 $e |- ( ph -> ( ch <-> th ) ) $.
    3bitrd.3 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction from transitivity of biconditional.  (Contributed by NM,
       13-Aug-1999.) $)
    3bitrd $p |- ( ph -> ( ps <-> ta ) ) $=
      ( bitrd ) ABDEABCDFGIHI $.

    $( Deduction from transitivity of biconditional.  (Contributed by NM,
       4-Aug-2006.) $)
    3bitrrd $p |- ( ph -> ( ta <-> ps ) ) $=
      ( bitr2d bitr3d ) ADEBHABCDFGIJ $.
  $}

  ${
    3bitr2d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3bitr2d.2 $e |- ( ph -> ( th <-> ch ) ) $.
    3bitr2d.3 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction from transitivity of biconditional.  (Contributed by NM,
       4-Aug-2006.) $)
    3bitr2d $p |- ( ph -> ( ps <-> ta ) ) $=
      ( bitr4d bitrd ) ABDEABCDFGIHJ $.

    $( Deduction from transitivity of biconditional.  (Contributed by NM,
       4-Aug-2006.) $)
    3bitr2rd $p |- ( ph -> ( ta <-> ps ) ) $=
      ( bitr4d bitr2d ) ABDEABCDFGIHJ $.
  $}

  ${
    3bitr3d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3bitr3d.2 $e |- ( ph -> ( ps <-> th ) ) $.
    3bitr3d.3 $e |- ( ph -> ( ch <-> ta ) ) $.
    $( Deduction from transitivity of biconditional.  Useful for converting
       conditional definitions in a formula.  (Contributed by NM,
       24-Apr-1996.) $)
    3bitr3d $p |- ( ph -> ( th <-> ta ) ) $=
      ( bitr3d bitrd ) ADCEABDCGFIHJ $.

    $( Deduction from transitivity of biconditional.  (Contributed by NM,
       4-Aug-2006.) $)
    3bitr3rd $p |- ( ph -> ( ta <-> th ) ) $=
      ( bitr3d ) ACEDHABCDFGII $.
  $}

  ${
    3bitr4d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3bitr4d.2 $e |- ( ph -> ( th <-> ps ) ) $.
    3bitr4d.3 $e |- ( ph -> ( ta <-> ch ) ) $.
    $( Deduction from transitivity of biconditional.  Useful for converting
       conditional definitions in a formula.  (Contributed by NM,
       18-Oct-1995.) $)
    3bitr4d $p |- ( ph -> ( th <-> ta ) ) $=
      ( bitr4d bitrd ) ADBEGABCEFHIJ $.

    $( Deduction from transitivity of biconditional.  (Contributed by NM,
       4-Aug-2006.) $)
    3bitr4rd $p |- ( ph -> ( ta <-> th ) ) $=
      ( bitr4d ) AEBDAECBHFIGI $.
  $}

  ${
    3bitr3g.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3bitr3g.2 $e |- ( ps <-> th ) $.
    3bitr3g.3 $e |- ( ch <-> ta ) $.
    $( More general version of ~ 3bitr3i .  Useful for converting definitions
       in a formula.  (Contributed by NM, 4-Jun-1995.) $)
    3bitr3g $p |- ( ph -> ( th <-> ta ) ) $=
      ( syl5bbr syl6bb ) ADCEDBACGFIHJ $.
  $}

  ${
    3bitr4g.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3bitr4g.2 $e |- ( th <-> ps ) $.
    3bitr4g.3 $e |- ( ta <-> ch ) $.
    $( More general version of ~ 3bitr4i .  Useful for converting definitions
       in a formula.  (Contributed by NM, 11-May-1993.) $)
    3bitr4g $p |- ( ph -> ( th <-> ta ) ) $=
      ( syl5bb syl6bbr ) ADCEDBACGFIHJ $.
  $}

  $( Double negation.  Theorem *4.13 of [WhiteheadRussell] p. 117.
     (Contributed by NM, 3-Jan-1993.) $)
  notnotb $p |- ( ph <-> -. -. ph ) $=
    ( wn notnot notnotr impbii ) AABBACADE $.

  ${
    notnotdOLD.1 $e |- ( ph -> ps ) $.
    $( Obsolete proof of ~ notnotd as of 27-Mar-2021.  (Contributed by Jarvin
       Udandy, 2-Sep-2016.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    notnotdOLD $p |- ( ph -> -. -. ps ) $=
      ( wn notnotb sylib ) ABBDDCBEF $.
  $}

  $( A biconditional form of contraposition.  Theorem *4.1 of
     [WhiteheadRussell] p. 116.  (Contributed by NM, 11-May-1993.) $)
  con34b $p |- ( ( ph -> ps ) <-> ( -. ps -> -. ph ) ) $=
    ( wi wn con3 con4 impbii ) ABCBDADCABEBAFG $.

  ${
    con4bid.1 $e |- ( ph -> ( -. ps <-> -. ch ) ) $.
    $( A contraposition deduction.  (Contributed by NM, 21-May-1994.) $)
    con4bid $p |- ( ph -> ( ps <-> ch ) ) $=
      ( wn biimprd con4d biimpd impcon4bid ) ABCACBABEZCEZDFGAJKDHI $.
  $}

  ${
    notbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction negating both sides of a logical equivalence.  (Contributed by
       NM, 21-May-1994.) $)
    notbid $p |- ( ph -> ( -. ps <-> -. ch ) ) $=
      ( wn notnotb 3bitr3g con4bid ) ABEZCEZABCIEJEDBFCFGH $.
  $}

  $( Contraposition.  Theorem *4.11 of [WhiteheadRussell] p. 117.  (Contributed
     by NM, 21-May-1994.)  (Proof shortened by Wolf Lammen, 12-Jun-2013.) $)
  notbi $p |- ( ( ph <-> ps ) <-> ( -. ph <-> -. ps ) ) $=
    ( wb wn id notbid con4bid impbii ) ABCZADBDCZIABIEFJABJEGH $.

  ${
    notbii.1 $e |- ( ph <-> ps ) $.
    $( Negate both sides of a logical equivalence.  (Contributed by NM,
       3-Jan-1993.)  (Proof shortened by Wolf Lammen, 19-May-2013.) $)
    notbii $p |- ( -. ph <-> -. ps ) $=
      ( wb wn notbi mpbi ) ABDAEBEDCABFG $.

    $( Theorem notbii is the congruence law for negation. $)
    $( $j congruence 'notbii'; $)
  $}

  ${
    con4bii.1 $e |- ( -. ph <-> -. ps ) $.
    $( A contraposition inference.  (Contributed by NM, 21-May-1994.) $)
    con4bii $p |- ( ph <-> ps ) $=
      ( wb wn notbi mpbir ) ABDAEBEDCABFG $.
  $}

  ${
    mtbi.1 $e |- -. ph $.
    mtbi.2 $e |- ( ph <-> ps ) $.
    $( An inference from a biconditional, related to modus tollens.
       (Contributed by NM, 15-Nov-1994.)  (Proof shortened by Wolf Lammen,
       25-Oct-2012.) $)
    mtbi $p |- -. ps $=
      ( biimpri mto ) BACABDEF $.
  $}

  ${
    mtbir.1 $e |- -. ps $.
    mtbir.2 $e |- ( ph <-> ps ) $.
    $( An inference from a biconditional, related to modus tollens.
       (Contributed by NM, 15-Nov-1994.)  (Proof shortened by Wolf Lammen,
       14-Oct-2012.) $)
    mtbir $p |- -. ph $=
      ( bicomi mtbi ) BACABDEF $.
  $}

  ${
    mtbid.min $e |- ( ph -> -. ps ) $.
    mtbid.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( A deduction from a biconditional, similar to modus tollens.
       (Contributed by NM, 26-Nov-1995.) $)
    mtbid $p |- ( ph -> -. ch ) $=
      ( biimprd mtod ) ACBDABCEFG $.
  $}

  ${
    mtbird.min $e |- ( ph -> -. ch ) $.
    mtbird.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( A deduction from a biconditional, similar to modus tollens.
       (Contributed by NM, 10-May-1994.) $)
    mtbird $p |- ( ph -> -. ps ) $=
      ( biimpd mtod ) ABCDABCEFG $.
  $}

  ${
    mtbii.min $e |- -. ps $.
    mtbii.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( An inference from a biconditional, similar to modus tollens.
       (Contributed by NM, 27-Nov-1995.) $)
    mtbii $p |- ( ph -> -. ch ) $=
      ( biimprd mtoi ) ACBDABCEFG $.
  $}

  ${
    mtbiri.min $e |- -. ch $.
    mtbiri.maj $e |- ( ph -> ( ps <-> ch ) ) $.
    $( An inference from a biconditional, similar to modus tollens.
       (Contributed by NM, 24-Aug-1995.) $)
    mtbiri $p |- ( ph -> -. ps ) $=
      ( biimpd mtoi ) ABCDABCEFG $.
  $}

  ${
    sylnib.1 $e |- ( ph -> -. ps ) $.
    sylnib.2 $e |- ( ps <-> ch ) $.
    $( A mixed syllogism inference from an implication and a biconditional.
       (Contributed by Wolf Lammen, 16-Dec-2013.) $)
    sylnib $p |- ( ph -> -. ch ) $=
      ( wb a1i mtbid ) ABCDBCFAEGH $.
  $}

  ${
    sylnibr.1 $e |- ( ph -> -. ps ) $.
    sylnibr.2 $e |- ( ch <-> ps ) $.
    $( A mixed syllogism inference from an implication and a biconditional.
       Useful for substituting a consequent with a definition.  (Contributed by
       Wolf Lammen, 16-Dec-2013.) $)
    sylnibr $p |- ( ph -> -. ch ) $=
      ( bicomi sylnib ) ABCDCBEFG $.
  $}

  ${
    sylnbi.1 $e |- ( ph <-> ps ) $.
    sylnbi.2 $e |- ( -. ps -> ch ) $.
    $( A mixed syllogism inference from a biconditional and an implication.
       Useful for substituting an antecedent with a definition.  (Contributed
       by Wolf Lammen, 16-Dec-2013.) $)
    sylnbi $p |- ( -. ph -> ch ) $=
      ( wn notbii sylbi ) AFBFCABDGEH $.
  $}

  ${
    sylnbir.1 $e |- ( ps <-> ph ) $.
    sylnbir.2 $e |- ( -. ps -> ch ) $.
    $( A mixed syllogism inference from a biconditional and an implication.
       (Contributed by Wolf Lammen, 16-Dec-2013.) $)
    sylnbir $p |- ( -. ph -> ch ) $=
      ( bicomi sylnbi ) ABCBADFEG $.
  $}

  ${
    xchnxbi.1 $e |- ( -. ph <-> ps ) $.
    xchnxbi.2 $e |- ( ph <-> ch ) $.
    $( Replacement of a subexpression by an equivalent one.  (Contributed by
       Wolf Lammen, 27-Sep-2014.) $)
    xchnxbi $p |- ( -. ch <-> ps ) $=
      ( wn notbii bitr3i ) CFAFBACEGDH $.
  $}

  ${
    xchnxbir.1 $e |- ( -. ph <-> ps ) $.
    xchnxbir.2 $e |- ( ch <-> ph ) $.
    $( Replacement of a subexpression by an equivalent one.  (Contributed by
       Wolf Lammen, 27-Sep-2014.) $)
    xchnxbir $p |- ( -. ch <-> ps ) $=
      ( bicomi xchnxbi ) ABCDCAEFG $.
  $}

  ${
    xchbinx.1 $e |- ( ph <-> -. ps ) $.
    xchbinx.2 $e |- ( ps <-> ch ) $.
    $( Replacement of a subexpression by an equivalent one.  (Contributed by
       Wolf Lammen, 27-Sep-2014.) $)
    xchbinx $p |- ( ph <-> -. ch ) $=
      ( wn notbii bitri ) ABFCFDBCEGH $.
  $}

  ${
    xchbinxr.1 $e |- ( ph <-> -. ps ) $.
    xchbinxr.2 $e |- ( ch <-> ps ) $.
    $( Replacement of a subexpression by an equivalent one.  (Contributed by
       Wolf Lammen, 27-Sep-2014.) $)
    xchbinxr $p |- ( ph <-> -. ch ) $=
      ( bicomi xchbinx ) ABCDCBEFG $.
  $}

  ${
    imbi2i.1 $e |- ( ph <-> ps ) $.
    $( Introduce an antecedent to both sides of a logical equivalence.  This
       and the next three rules are useful for building up wff's around a
       definition, in order to make use of the definition.  (Contributed by NM,
       3-Jan-1993.)  (Proof shortened by Wolf Lammen, 6-Feb-2013.) $)
    imbi2i $p |- ( ( ch -> ph ) <-> ( ch -> ps ) ) $=
      ( wb a1i pm5.74i ) CABABECDFG $.
  $}

  ${
    bibi2i.1 $e |- ( ph <-> ps ) $.
    $( Inference adding a biconditional to the left in an equivalence.
       (Contributed by NM, 26-May-1993.)  (Proof shortened by Andrew Salmon,
       7-May-2011.)  (Proof shortened by Wolf Lammen, 16-May-2013.) $)
    bibi2i $p |- ( ( ch <-> ph ) <-> ( ch <-> ps ) ) $=
      ( wb id syl6bb syl6bbr impbii ) CAEZCBEZJCABJFDGKCBAKFDHI $.

    $( Inference adding a biconditional to the right in an equivalence.
       (Contributed by NM, 26-May-1993.) $)
    bibi1i $p |- ( ( ph <-> ch ) <-> ( ps <-> ch ) ) $=
      ( wb bicom bibi2i 3bitri ) ACECAECBEBCEACFABCDGCBFH $.

    ${
      bibi12i.2 $e |- ( ch <-> th ) $.
      $( The equivalence of two equivalences.  (Contributed by NM,
         26-May-1993.) $)
      bibi12i $p |- ( ( ph <-> ch ) <-> ( ps <-> th ) ) $=
        ( wb bibi2i bibi1i bitri ) ACGADGBDGCDAFHABDEIJ $.
    $}
  $}

  ${
    imbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction adding an antecedent to both sides of a logical equivalence.
       (Contributed by NM, 11-May-1993.) $)
    imbi2d $p |- ( ph -> ( ( th -> ps ) <-> ( th -> ch ) ) ) $=
      ( wb a1d pm5.74d ) ADBCABCFDEGH $.

    $( Deduction adding a consequent to both sides of a logical equivalence.
       (Contributed by NM, 11-May-1993.)  (Proof shortened by Wolf Lammen,
       17-Sep-2013.) $)
    imbi1d $p |- ( ph -> ( ( ps -> th ) <-> ( ch -> th ) ) ) $=
      ( wi biimprd imim1d biimpd impbid ) ABDFCDFACBDABCEGHABCDABCEIHJ $.

    $( Deduction adding a biconditional to the left in an equivalence.
       (Contributed by NM, 11-May-1993.)  (Proof shortened by Wolf Lammen,
       19-May-2013.) $)
    bibi2d $p |- ( ph -> ( ( th <-> ps ) <-> ( th <-> ch ) ) ) $=
      ( wb wi pm5.74i bibi2i pm5.74 3bitr4i pm5.74ri ) ADBFZDCFZADGZABGZFOACGZF
      AMGANGPQOABCEHIADBJADCJKL $.

    $( Deduction adding a biconditional to the right in an equivalence.
       (Contributed by NM, 11-May-1993.) $)
    bibi1d $p |- ( ph -> ( ( ps <-> th ) <-> ( ch <-> th ) ) ) $=
      ( wb bibi2d bicom 3bitr4g ) ADBFDCFBDFCDFABCDEGBDHCDHI $.
  $}

  ${
    imbi12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    imbi12d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction joining two equivalences to form equivalence of implications.
       (Contributed by NM, 16-May-1993.) $)
    imbi12d $p |- ( ph -> ( ( ps -> th ) <-> ( ch -> ta ) ) ) $=
      ( wi imbi1d imbi2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.

    $( Deduction joining two equivalences to form equivalence of
       biconditionals.  (Contributed by NM, 26-May-1993.) $)
    bibi12d $p |- ( ph -> ( ( ps <-> th ) <-> ( ch <-> ta ) ) ) $=
      ( wb bibi1d bibi2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  $( Closed form of ~ imbi12i .  Was automatically derived from its "Virtual
     Deduction" version and Metamath's "minimize" command.  (Contributed by
     Alan Sare, 18-Mar-2012.) $)
  imbi12 $p |- ( ( ph <-> ps ) ->
                    ( ( ch <-> th ) -> ( ( ph -> ch ) <-> ( ps -> th ) ) ) ) $=
    ( wb wi wn simplim simprim imbi12d expi ) ABEZCDEZACFBDFELMGZFGABCDLNHLMIJK
    $.

  $( Theorem *4.84 of [WhiteheadRussell] p. 122.  (Contributed by NM,
     3-Jan-2005.) $)
  imbi1 $p |- ( ( ph <-> ps ) -> ( ( ph -> ch ) <-> ( ps -> ch ) ) ) $=
    ( wb id imbi1d ) ABDZABCGEF $.

  $( Theorem *4.85 of [WhiteheadRussell] p. 122.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 19-May-2013.) $)
  imbi2 $p |- ( ( ph <-> ps ) -> ( ( ch -> ph ) <-> ( ch -> ps ) ) ) $=
    ( wb id imbi2d ) ABDZABCGEF $.

  ${
    imbi1i.1 $e |- ( ph <-> ps ) $.
    $( Introduce a consequent to both sides of a logical equivalence.
       (Contributed by NM, 3-Jan-1993.)  (Proof shortened by Wolf Lammen,
       17-Sep-2013.) $)
    imbi1i $p |- ( ( ph -> ch ) <-> ( ps -> ch ) ) $=
      ( wb wi imbi1 ax-mp ) ABEACFBCFEDABCGH $.
  $}

  ${
    imbi12i.1 $e |- ( ph <-> ps ) $.
    imbi12i.2 $e |- ( ch <-> th ) $.
    $( Join two logical equivalences to form equivalence of implications.
       (Contributed by NM, 1-Aug-1993.) $)
    imbi12i $p |- ( ( ph -> ch ) <-> ( ps -> th ) ) $=
      ( wb wi imbi12 mp2 ) ABGCDGACHBDHGEFABCDIJ $.

    $( Theorem imbi12i is the congruence law for implication. $)
    $( $j congruence 'imbi12i'; $)
  $}

  $( Theorem *4.86 of [WhiteheadRussell] p. 122.  (Contributed by NM,
     3-Jan-2005.) $)
  bibi1 $p |- ( ( ph <-> ps ) -> ( ( ph <-> ch ) <-> ( ps <-> ch ) ) ) $=
    ( wb id bibi1d ) ABDZABCGEF $.

  $( Closed nested implication form of ~ bitr3i .  Derived automatically from
     ~ bitr3VD .  (Contributed by Alan Sare, 31-Dec-2011.) $)
  bitr3 $p |- ( ( ph <-> ps ) -> ( ( ph <-> ch ) -> ( ps <-> ch ) ) ) $=
    ( wb bibi1 biimpd ) ABDACDBCDABCEF $.

  $( Contraposition.  Theorem *4.12 of [WhiteheadRussell] p. 117.  (Contributed
     by NM, 15-Apr-1995.)  (Proof shortened by Wolf Lammen, 3-Jan-2013.) $)
  con2bi $p |- ( ( ph <-> -. ps ) <-> ( ps <-> -. ph ) ) $=
    ( wn wb notbi notnotb bibi2i bicom 3bitr2i ) ABCZDACZJCZDKBDBKDAJEBLKBFGKBH
    I $.

  ${
    con2bid.1 $e |- ( ph -> ( ps <-> -. ch ) ) $.
    $( A contraposition deduction.  (Contributed by NM, 15-Apr-1995.) $)
    con2bid $p |- ( ph -> ( ch <-> -. ps ) ) $=
      ( wn wb con2bi sylibr ) ABCEFCBEFDCBGH $.
  $}

  ${
    con1bid.1 $e |- ( ph -> ( -. ps <-> ch ) ) $.
    $( A contraposition deduction.  (Contributed by NM, 9-Oct-1999.) $)
    con1bid $p |- ( ph -> ( -. ch <-> ps ) ) $=
      ( wn bicomd con2bid ) ABCEACBABECDFGF $.
  $}

  ${
    con1bii.1 $e |- ( -. ph <-> ps ) $.
    $( A contraposition inference.  (Contributed by NM, 12-Mar-1993.)  (Proof
       shortened by Wolf Lammen, 13-Oct-2012.) $)
    con1bii $p |- ( -. ps <-> ph ) $=
      ( wn notnotb xchbinx bicomi ) ABDAADBAECFG $.
  $}

  ${
    con2bii.1 $e |- ( ph <-> -. ps ) $.
    $( A contraposition inference.  (Contributed by NM, 12-Mar-1993.) $)
    con2bii $p |- ( ps <-> -. ph ) $=
      ( wn bicomi con1bii ) ADBBAABDCEFE $.
  $}

  $( Contraposition.  Bidirectional version of ~ con1 .  (Contributed by NM,
     3-Jan-1993.) $)
  con1b $p |- ( ( -. ph -> ps ) <-> ( -. ps -> ph ) ) $=
    ( wn wi con1 impbii ) ACBDBCADABEBAEF $.

  $( Contraposition.  Bidirectional version of ~ con2 .  (Contributed by NM,
     12-Mar-1993.) $)
  con2b $p |- ( ( ph -> -. ps ) <-> ( ps -> -. ph ) ) $=
    ( wn wi con2 impbii ) ABCDBACDABEBAEF $.

  $( A wff is equivalent to itself with true antecedent.  (Contributed by NM,
     28-Jan-1996.) $)
  biimt $p |- ( ph -> ( ps <-> ( ph -> ps ) ) ) $=
    ( wi ax-1 pm2.27 impbid2 ) ABABCBADABEF $.

  $( Theorem *5.5 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.5 $p |- ( ph -> ( ( ph -> ps ) <-> ps ) ) $=
    ( wi biimt bicomd ) ABABCABDE $.

  ${
    a1bi.1 $e |- ph $.
    $( Inference rule introducing a theorem as an antecedent.  (Contributed by
       NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 11-Nov-2012.) $)
    a1bi $p |- ( ps <-> ( ph -> ps ) ) $=
      ( wi wb biimt ax-mp ) ABABDECABFG $.
  $}

  ${
    mt2bi.1 $e |- ph $.
    $( A false consequent falsifies an antecedent.  (Contributed by NM,
       19-Aug-1993.)  (Proof shortened by Wolf Lammen, 12-Nov-2012.) $)
    mt2bi $p |- ( -. ps <-> ( ps -> -. ph ) ) $=
      ( wn wi a1bi con2b bitri ) BDZAIEBADEAICFABGH $.
  $}

  $( Modus-tollens-like theorem.  (Contributed by NM, 7-Apr-2001.)  (Proof
     shortened by Wolf Lammen, 12-Nov-2012.) $)
  mtt $p |- ( -. ph -> ( -. ps <-> ( ps -> ph ) ) ) $=
    ( wn wi biimt con34b syl6bbr ) ACZBCZHIDBADHIEBAFG $.

  $( If a proposition is false, then implying it is equivalent to being false.
     One of four theorems that can be used to simplify an implication
     ` ( ph -> ps ) ` , the other ones being ~ ax-1 (true consequent), ~ pm2.21
     (false antecedent), ~ pm5.5 (true antecedent).  (Contributed by Mario
     Carneiro, 26-Apr-2019.)  (Proof shortened by Wolf Lammen, 26-May-2019.) $)
  imnot $p |- ( -. ps -> ( ( ph -> ps ) <-> -. ph ) ) $=
    ( wn wi mtt bicomd ) BCACABDBAEF $.

  $( Theorem *5.501 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.501 $p |- ( ph -> ( ps <-> ( ph <-> ps ) ) ) $=
    ( wb pm5.1im biimp com12 impbid ) ABABCZABDHABABEFG $.

  $( Implication in terms of implication and biconditional.  (Contributed by
     NM, 31-Mar-1994.)  (Proof shortened by Wolf Lammen, 24-Jan-2013.) $)
  ibib $p |- ( ( ph -> ps ) <-> ( ph -> ( ph <-> ps ) ) ) $=
    ( wb pm5.501 pm5.74i ) ABABCABDE $.

  $( Implication in terms of implication and biconditional.  (Contributed by
     NM, 29-Apr-2005.)  (Proof shortened by Wolf Lammen, 21-Dec-2013.) $)
  ibibr $p |- ( ( ph -> ps ) <-> ( ph -> ( ps <-> ph ) ) ) $=
    ( wb pm5.501 bicom syl6bb pm5.74i ) ABBACZABABCHABDABEFG $.

  ${
    tbt.1 $e |- ph $.
    $( A wff is equivalent to its equivalence with a truth.  (Contributed by
       NM, 18-Aug-1993.)  (Proof shortened by Andrew Salmon, 13-May-2011.) $)
    tbt $p |- ( ps <-> ( ps <-> ph ) ) $=
      ( wb ibibr pm5.74ri ax-mp ) ABBADZDCABHABEFG $.
  $}

  $( The negation of a wff is equivalent to the wff's equivalence to falsehood.
     (Contributed by Juha Arpiainen, 19-Jan-2006.)  (Proof shortened by Wolf
     Lammen, 28-Jan-2013.) $)
  nbn2 $p |- ( -. ph -> ( -. ps <-> ( ph <-> ps ) ) ) $=
    ( wn wb pm5.501 notbi syl6bbr ) ACZBCZHIDABDHIEABFG $.

  $( Transfer negation via an equivalence.  (Contributed by NM, 3-Oct-2007.)
     (Proof shortened by Wolf Lammen, 28-Jan-2013.) $)
  bibif $p |- ( -. ps -> ( ( ph <-> ps ) <-> -. ph ) ) $=
    ( wn wb nbn2 bicom syl6rbb ) BCACBADABDBAEBAFG $.

  ${
    nbn.1 $e |- -. ph $.
    $( The negation of a wff is equivalent to the wff's equivalence to
       falsehood.  (Contributed by NM, 21-Jun-1993.)  (Proof shortened by Wolf
       Lammen, 3-Oct-2013.) $)
    nbn $p |- ( -. ps <-> ( ps <-> ph ) ) $=
      ( wb wn bibif ax-mp bicomi ) BADZBEZAEIJDCBAFGH $.
  $}

  ${
    nbn3.1 $e |- ph $.
    $( Transfer falsehood via equivalence.  (Contributed by NM,
       11-Sep-2006.) $)
    nbn3 $p |- ( -. ps <-> ( ps <-> -. ph ) ) $=
      ( wn notnoti nbn ) ADBACEF $.
  $}

  $( Two propositions are equivalent if they are both false.  Closed form of
     ~ 2false .  Equivalent to a ~ biimpr -like version of the xor-connective.
     (Contributed by Wolf Lammen, 13-May-2013.) $)
  pm5.21im $p |- ( -. ph -> ( -. ps -> ( ph <-> ps ) ) ) $=
    ( wn wb nbn2 biimpd ) ACBCABDABEF $.

  ${
    2false.1 $e |- -. ph $.
    2false.2 $e |- -. ps $.
    $( Two falsehoods are equivalent.  (Contributed by NM, 4-Apr-2005.)  (Proof
       shortened by Wolf Lammen, 19-May-2013.) $)
    2false $p |- ( ph <-> ps ) $=
      ( wn 2th con4bii ) ABAEBECDFG $.
  $}

  ${
    2falsed.1 $e |- ( ph -> -. ps ) $.
    2falsed.2 $e |- ( ph -> -. ch ) $.
    $( Two falsehoods are equivalent (deduction rule).  (Contributed by NM,
       11-Oct-2013.) $)
    2falsed $p |- ( ph -> ( ps <-> ch ) ) $=
      ( pm2.21d impbid ) ABCABCDFACBEFG $.
  $}

  ${
    pm5.21ni.1 $e |- ( ph -> ps ) $.
    pm5.21ni.2 $e |- ( ch -> ps ) $.
    $( Two propositions implying a false one are equivalent.  (Contributed by
       NM, 16-Feb-1996.)  (Proof shortened by Wolf Lammen, 19-May-2013.) $)
    pm5.21ni $p |- ( -. ps -> ( ph <-> ch ) ) $=
      ( wn con3i 2falsed ) BFACABDGCBEGH $.

    ${
      pm5.21nii.3 $e |- ( ps -> ( ph <-> ch ) ) $.
      $( Eliminate an antecedent implied by each side of a biconditional.
         (Contributed by NM, 21-May-1999.) $)
      pm5.21nii $p |- ( ph <-> ch ) $=
        ( wb pm5.21ni pm2.61i ) BACGFABCDEHI $.
    $}
  $}

  ${
    pm5.21ndd.1 $e |- ( ph -> ( ch -> ps ) ) $.
    pm5.21ndd.2 $e |- ( ph -> ( th -> ps ) ) $.
    pm5.21ndd.3 $e |- ( ph -> ( ps -> ( ch <-> th ) ) ) $.
    $( Eliminate an antecedent implied by each side of a biconditional,
       deduction version.  (Contributed by Paul Chapman, 21-Nov-2012.)  (Proof
       shortened by Wolf Lammen, 6-Oct-2013.) $)
    pm5.21ndd $p |- ( ph -> ( ch <-> th ) ) $=
      ( wb wn con3d pm5.21im syl6c pm2.61d ) ABCDHZGABICIDINACBEJADBFJCDKLM $.
  $}

  ${
    bija.1 $e |- ( ph -> ( ps -> ch ) ) $.
    bija.2 $e |- ( -. ph -> ( -. ps -> ch ) ) $.
    $( Combine antecedents into a single biconditional.  This inference,
       reminiscent of ~ ja , is reversible:  The hypotheses can be deduced from
       the conclusion alone (see ~ pm5.1im and ~ pm5.21im ).  (Contributed by
       Wolf Lammen, 13-May-2013.) $)
    bija $p |- ( ( ph <-> ps ) -> ch ) $=
      ( wb biimpr syli wn biimp con3d pm2.61d ) ABFZBCBMACABGDHBIMAICMABABJKEHL
      $.
  $}

  $( Theorem *5.18 of [WhiteheadRussell] p. 124.  This theorem says that
     logical equivalence is the same as negated "exclusive-or."  (Contributed
     by NM, 28-Jun-2002.)  (Proof shortened by Andrew Salmon, 20-Jun-2011.)
     (Proof shortened by Wolf Lammen, 15-Oct-2013.) $)
  pm5.18 $p |- ( ( ph <-> ps ) <-> -. ( ph <-> -. ps ) ) $=
    ( wb wn pm5.501 con1bid bitr2d nbn2 pm2.61i ) AABCZABDZCZDZCAMBJABLAKEFABEG
    ADZMKJNKLAKHFABHGI $.

  $( Two ways to express "exclusive or."  (Contributed by NM, 1-Jan-2006.) $)
  xor3 $p |- ( -. ( ph <-> ps ) <-> ( ph <-> -. ps ) ) $=
    ( wn wb pm5.18 con2bii bicomi ) ABCDZABDZCIHABEFG $.

  $( Move negation outside of biconditional.  Compare Theorem *5.18 of
     [WhiteheadRussell] p. 124.  (Contributed by NM, 27-Jun-2002.)  (Proof
     shortened by Wolf Lammen, 20-Sep-2013.) $)
  nbbn $p |- ( ( -. ph <-> ps ) <-> -. ( ph <-> ps ) ) $=
    ( wb wn xor3 con2bi bicom 3bitrri ) ABCDABDCBADZCIBCABEABFBIGH $.

  $( Associative law for the biconditional.  An axiom of system DS in Vladimir
     Lifschitz, "On calculational proofs", Annals of Pure and Applied Logic,
     113:207-224, 2002,
     ~ http://www.cs.utexas.edu/users/ai-lab/pub-view.php?PubID=26805 .
     Interestingly, this law was not included in _Principia Mathematica_ but
     was apparently first noted by Jan Lukasiewicz circa 1923.  (Contributed by
     NM, 8-Jan-2005.)  (Proof shortened by Juha Arpiainen, 19-Jan-2006.)
     (Proof shortened by Wolf Lammen, 21-Sep-2013.) $)
  biass $p |- ( ( ( ph <-> ps ) <-> ch ) <-> ( ph <-> ( ps <-> ch ) ) ) $=
    ( wb pm5.501 bibi1d bitr3d wn nbbn nbn2 syl5bbr pm2.61i ) AABDZCDZABCDZDZDA
    ONPABMCABEFAOEGAHZOHZNPRBHZCDQNBCIQSMCABJFKAOJGL $.

  $( Theorem *5.19 of [WhiteheadRussell] p. 124.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.19 $p |- -. ( ph <-> -. ph ) $=
    ( wb wn biid pm5.18 mpbi ) AABAACBCADAAEF $.

  $( Logical equivalence of commuted antecedents.  Part of Theorem *4.87 of
     [WhiteheadRussell] p. 122.  (Contributed by NM, 11-May-1993.) $)
  bi2.04 $p |- ( ( ph -> ( ps -> ch ) ) <-> ( ps -> ( ph -> ch ) ) ) $=
    ( wi pm2.04 impbii ) ABCDDBACDDABCEBACEF $.

  $( Antecedent absorption implication.  Theorem *5.4 of [WhiteheadRussell]
     p. 125.  (Contributed by NM, 5-Aug-1993.) $)
  pm5.4 $p |- ( ( ph -> ( ph -> ps ) ) <-> ( ph -> ps ) ) $=
    ( wi pm2.43 ax-1 impbii ) AABCZCGABDGAEF $.

  $( Distributive law for implication.  Compare Theorem *5.41 of
     [WhiteheadRussell] p. 125.  (Contributed by NM, 5-Aug-1993.) $)
  imdi $p |- ( ( ph -> ( ps -> ch ) ) <->
               ( ( ph -> ps ) -> ( ph -> ch ) ) ) $=
    ( wi ax-2 pm2.86 impbii ) ABCDDABDACDDABCEABCFG $.

  $( Theorem *5.41 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 12-Oct-2012.) $)
  pm5.41 $p |- ( ( ( ph -> ps ) -> ( ph -> ch ) ) <->
                ( ph -> ( ps -> ch ) ) ) $=
    ( wi imdi bicomi ) ABCDDABDACDDABCEF $.

  $( Theorem *4.8 of [WhiteheadRussell] p. 122.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.8 $p |- ( ( ph -> -. ph ) <-> -. ph ) $=
    ( wn wi pm2.01 ax-1 impbii ) AABZCGADGAEF $.

  $( Theorem *4.81 of [WhiteheadRussell] p. 122.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.81 $p |- ( ( -. ph -> ph ) <-> ph ) $=
    ( wn wi pm2.18 pm2.24 impbii ) ABACAADAAEF $.

  $( Simplify an implication between two implications when the antecedent of
     the first is a consequence of the antecedent of the second.  The reverse
     form is useful in producing the successor step in induction proofs.
     (Contributed by Paul Chapman, 22-Jun-2011.)  (Proof shortened by Wolf
     Lammen, 14-Sep-2013.) $)
  imim21b $p |- ( ( ps -> ph ) ->
           ( ( ( ph -> ch ) -> ( ps -> th ) ) <-> ( ps -> ( ch -> th ) ) ) ) $=
    ( wi bi2.04 wb pm5.5 imbi1d imim2i pm5.74d syl5bb ) ACEZBDEEBMDEZEBAEZBCDEZ
    EMBDFOBNPANPGBAMCDACHIJKL $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Logical disjunction and conjunction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Here we define disjunction (logical 'or') ` \/ ` ( ~ df-or ) and conjunction
  (logical 'and') ` /\ ` ( ~ df-an ). We also define various rules for
  simplifying and applying them, e.g., ~ olc , ~ orc , and ~ orcom .

$)

  $( Declare connectives for disjunction ('or') and conjunction ('and'). $)
  $c \/ $. $( Vee (read:  'or') $)
  $c /\ $. $( Wedge (read:  'and') $)

  $( Extend wff definition to include disjunction ('or'). $)
  wo $a wff ( ph \/ ps ) $.
  $( Extend wff definition to include conjunction ('and'). $)
  wa $a wff ( ph /\ ps ) $.

  $( Define disjunction (logical 'or').  Definition of [Margaris] p. 49.  When
     the left operand, right operand, or both are true, the result is true;
     when both sides are false, the result is false.  For example, it is true
     that ` ( 2 = 3 \/ 4 = 4 ) ` ( ~ ex-or ).  After we define the constant
     true ` T. ` ( ~ df-tru ) and the constant false ` F. ` ( ~ df-fal ), we
     will be able to prove these truth table values:
     ` ( ( T. \/ T. ) <-> T. ) ` ( ~ truortru ), ` ( ( T. \/ F. ) <-> T. ) `
     ( ~ truorfal ), ` ( ( F. \/ T. ) <-> T. ) ` ( ~ falortru ), and
     ` ( ( F. \/ F. ) <-> F. ) ` ( ~ falorfal ).

     This is our first use of the biconditional connective in a definition; we
     use the biconditional connective in place of the traditional "<=def=>",
     which means the same thing, except that we can manipulate the
     biconditional connective directly in proofs rather than having to rely on
     an informal definition substitution rule.  Note that if we mechanically
     substitute ` ( -. ph -> ps ) ` for ` ( ph \/ ps ) ` , we end up with an
     instance of previously proved theorem ~ biid .  This is the justification
     for the definition, along with the fact that it introduces a new symbol
     ` \/ ` .  Contrast with ` /\ ` ( ~ df-an ), ` -> ` ( ~ wi ), ` -/\ `
     ( ~ df-nan ), and ` \/_ ` ( ~ df-xor ) .  (Contributed by NM,
     27-Dec-1992.) $)
  df-or $a |- ( ( ph \/ ps ) <-> ( -. ph -> ps ) ) $.

  $( Define conjunction (logical 'and').  Definition of [Margaris] p. 49.  When
     both the left and right operand are true, the result is true; when either
     is false, the result is false.  For example, it is true that
     ` ( 2 = 2 /\ 3 = 3 ) ` .  After we define the constant true ` T. `
     ( ~ df-tru ) and the constant false ` F. ` ( ~ df-fal ), we will be able
     to prove these truth table values: ` ( ( T. /\ T. ) <-> T. ) `
     ( ~ truantru ), ` ( ( T. /\ F. ) <-> F. ) ` ( ~ truanfal ),
     ` ( ( F. /\ T. ) <-> F. ) ` ( ~ falantru ), and
     ` ( ( F. /\ F. ) <-> F. ) ` ( ~ falanfal ).

     Contrast with ` \/ ` ( ~ df-or ), ` -> ` ( ~ wi ), ` -/\ ` ( ~ df-nan ),
     and ` \/_ ` ( ~ df-xor ) .  (Contributed by NM, 5-Jan-1993.) $)
  df-an $a |- ( ( ph /\ ps ) <-> -. ( ph -> -. ps ) ) $.

  $( Theorem *4.64 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.64 $p |- ( ( -. ph -> ps ) <-> ( ph \/ ps ) ) $=
    ( wo wn wi df-or bicomi ) ABCADBEABFG $.

  $( Theorem *2.53 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.53 $p |- ( ( ph \/ ps ) -> ( -. ph -> ps ) ) $=
    ( wo wn wi df-or biimpi ) ABCADBEABFG $.

  $( Theorem *2.54 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.54 $p |- ( ( -. ph -> ps ) -> ( ph \/ ps ) ) $=
    ( wo wn wi df-or biimpri ) ABCADBEABFG $.

  ${
    ori.1 $e |- ( ph \/ ps ) $.
    $( Infer implication from disjunction.  (Contributed by NM,
       11-Jun-1994.) $)
    ori $p |- ( -. ph -> ps ) $=
      ( wo wn wi df-or mpbi ) ABDAEBFCABGH $.
  $}

  ${
    orri.1 $e |- ( -. ph -> ps ) $.
    $( Infer disjunction from implication.  (Contributed by NM,
       11-Jun-1994.) $)
    orri $p |- ( ph \/ ps ) $=
      ( wo wn wi df-or mpbir ) ABDAEBFCABGH $.
  $}

  ${
    ord.1 $e |- ( ph -> ( ps \/ ch ) ) $.
    $( Deduce implication from disjunction.  (Contributed by NM,
       18-May-1994.) $)
    ord $p |- ( ph -> ( -. ps -> ch ) ) $=
      ( wo wn wi df-or sylib ) ABCEBFCGDBCHI $.
  $}

  ${
    orrd.1 $e |- ( ph -> ( -. ps -> ch ) ) $.
    $( Deduce disjunction from implication.  (Contributed by NM,
       27-Nov-1995.) $)
    orrd $p |- ( ph -> ( ps \/ ch ) ) $=
      ( wn wi wo pm2.54 syl ) ABECFBCGDBCHI $.
  $}

  ${
    jaoi.1 $e |- ( ph -> ps ) $.
    jaoi.2 $e |- ( ch -> ps ) $.
    $( Inference disjoining the antecedents of two implications.  (Contributed
       by NM, 5-Apr-1994.) $)
    jaoi $p |- ( ( ph \/ ch ) -> ps ) $=
      ( wo wn pm2.53 syl6 pm2.61d2 ) ACFZABKAGCBACHEIDJ $.
  $}

  ${
    jaod.1 $e |- ( ph -> ( ps -> ch ) ) $.
    jaod.2 $e |- ( ph -> ( th -> ch ) ) $.
    $( Deduction disjoining the antecedents of two implications.  (Contributed
       by NM, 18-Aug-1994.) $)
    jaod $p |- ( ph -> ( ( ps \/ th ) -> ch ) ) $=
      ( wo wi com12 jaoi ) BDGACBACHDABCEIADCFIJI $.

    jaod.3 $e |- ( ph -> ( ps \/ th ) ) $.
    $( Eliminate a disjunction in a deduction.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    mpjaod $p |- ( ph -> ch ) $=
      ( wo jaod mpd ) ABDHCGABCDEFIJ $.
  $}

  $( Elimination of disjunction by denial of a disjunct.  Theorem *2.55 of
     [WhiteheadRussell] p. 107.  (Contributed by NM, 12-Aug-1994.)  (Proof
     shortened by Wolf Lammen, 21-Jul-2012.) $)
  orel1 $p |- ( -. ph -> ( ( ph \/ ps ) -> ps ) ) $=
    ( wo wn pm2.53 com12 ) ABCADBABEF $.

  $( Elimination of disjunction by denial of a disjunct.  Theorem *2.56 of
     [WhiteheadRussell] p. 107.  (Contributed by NM, 12-Aug-1994.)  (Proof
     shortened by Wolf Lammen, 5-Apr-2013.) $)
  orel2 $p |- ( -. ph -> ( ( ps \/ ph ) -> ps ) ) $=
    ( wn idd pm2.21 jaod ) ACZBBAGBDABEF $.

  $( Introduction of a disjunct.  Axiom *1.3 of [WhiteheadRussell] p. 96.
     (Contributed by NM, 30-Aug-1993.) $)
  olc $p |- ( ph -> ( ps \/ ph ) ) $=
    ( wn ax-1 orrd ) ABAABCDE $.

  $( Introduction of a disjunct.  Theorem *2.2 of [WhiteheadRussell] p. 104.
     (Contributed by NM, 30-Aug-1993.) $)
  orc $p |- ( ph -> ( ph \/ ps ) ) $=
    ( pm2.24 orrd ) AABABCD $.

  $( Axiom *1.4 of [WhiteheadRussell] p. 96.  (Contributed by NM,
     3-Jan-2005.) $)
  pm1.4 $p |- ( ( ph \/ ps ) -> ( ps \/ ph ) ) $=
    ( wo olc orc jaoi ) ABACBABDBAEF $.

  $( Commutative law for disjunction.  Theorem *4.31 of [WhiteheadRussell]
     p. 118.  (Contributed by NM, 3-Jan-1993.)  (Proof shortened by Wolf
     Lammen, 15-Nov-2012.) $)
  orcom $p |- ( ( ph \/ ps ) <-> ( ps \/ ph ) ) $=
    ( wo pm1.4 impbii ) ABCBACABDBADE $.

  ${
    orcomd.1 $e |- ( ph -> ( ps \/ ch ) ) $.
    $( Commutation of disjuncts in consequent.  (Contributed by NM,
       2-Dec-2010.) $)
    orcomd $p |- ( ph -> ( ch \/ ps ) ) $=
      ( wo orcom sylib ) ABCECBEDBCFG $.
  $}

  ${
    orcoms.1 $e |- ( ( ph \/ ps ) -> ch ) $.
    $( Commutation of disjuncts in antecedent.  (Contributed by NM,
       2-Dec-2012.) $)
    orcoms $p |- ( ( ps \/ ph ) -> ch ) $=
      ( wo pm1.4 syl ) BAEABECBAFDG $.
  $}

  ${
    orci.1 $e |- ph $.
    $( Deduction introducing a disjunct.  (Contributed by NM, 19-Jan-2008.)
       (Proof shortened by Wolf Lammen, 14-Nov-2012.) $)
    orci $p |- ( ph \/ ps ) $=
      ( pm2.24i orri ) ABABCDE $.

    $( Deduction introducing a disjunct.  (Contributed by NM, 19-Jan-2008.)
       (Proof shortened by Wolf Lammen, 14-Nov-2012.) $)
    olci $p |- ( ps \/ ph ) $=
      ( wn a1i orri ) BAABDCEF $.
  $}

  ${
    orcd.1 $e |- ( ph -> ps ) $.
    $( Deduction introducing a disjunct.  A translation of natural deduction
       rule ` \/ ` IR ( ` \/ ` insertion right), see ~ natded .  (Contributed
       by NM, 20-Sep-2007.) $)
    orcd $p |- ( ph -> ( ps \/ ch ) ) $=
      ( wo orc syl ) ABBCEDBCFG $.

    $( Deduction introducing a disjunct.  A translation of natural deduction
       rule ` \/ ` IL ( ` \/ ` insertion left), see ~ natded .  (Contributed by
       NM, 11-Apr-2008.)  (Proof shortened by Wolf Lammen, 3-Oct-2013.) $)
    olcd $p |- ( ph -> ( ch \/ ps ) ) $=
      ( orcd orcomd ) ABCABCDEF $.
  $}

  ${
    orcs.1 $e |- ( ( ph \/ ps ) -> ch ) $.
    $( Deduction eliminating disjunct. _Notational convention_:  We sometimes
       suffix with "s" the label of an inference that manipulates an
       antecedent, leaving the consequent unchanged.  The "s" means that the
       inference eliminates the need for a syllogism ( ~ syl ) -type inference
       in a proof.  (Contributed by NM, 21-Jun-1994.) $)
    orcs $p |- ( ph -> ch ) $=
      ( wo orc syl ) AABECABFDG $.
  $}

  ${
    olcs.1 $e |- ( ( ph \/ ps ) -> ch ) $.
    $( Deduction eliminating disjunct.  (Contributed by NM, 21-Jun-1994.)
       (Proof shortened by Wolf Lammen, 3-Oct-2013.) $)
    olcs $p |- ( ps -> ch ) $=
      ( orcoms orcs ) BACABCDEF $.
  $}

  $( Theorem *2.07 of [WhiteheadRussell] p. 101.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.07 $p |- ( ph -> ( ph \/ ph ) ) $=
    ( olc ) AAB $.

  $( Theorem *2.45 of [WhiteheadRussell] p. 106.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.45 $p |- ( -. ( ph \/ ps ) -> -. ph ) $=
    ( wo orc con3i ) AABCABDE $.

  $( Theorem *2.46 of [WhiteheadRussell] p. 106.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.46 $p |- ( -. ( ph \/ ps ) -> -. ps ) $=
    ( wo olc con3i ) BABCBADE $.

  $( Theorem *2.47 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.47 $p |- ( -. ( ph \/ ps ) -> ( -. ph \/ ps ) ) $=
    ( wo wn pm2.45 orcd ) ABCDADBABEF $.

  $( Theorem *2.48 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.48 $p |- ( -. ( ph \/ ps ) -> ( ph \/ -. ps ) ) $=
    ( wo wn pm2.46 olcd ) ABCDBDAABEF $.

  $( Theorem *2.49 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.49 $p |- ( -. ( ph \/ ps ) -> ( -. ph \/ -. ps ) ) $=
    ( wo wn pm2.46 olcd ) ABCDBDADABEF $.

  $( Slight generalization of Theorem *2.67 of [WhiteheadRussell] p. 107.
     (Contributed by NM, 3-Jan-2005.) $)
  pm2.67-2 $p |- ( ( ( ph \/ ch ) -> ps ) -> ( ph -> ps ) ) $=
    ( wo orc imim1i ) AACDBACEF $.

  $( Theorem *2.67 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.67 $p |- ( ( ( ph \/ ps ) -> ps ) -> ( ph -> ps ) ) $=
    ( pm2.67-2 ) ABBC $.

  $( Theorem *2.25 of [WhiteheadRussell] p. 104.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.25 $p |- ( ph \/ ( ( ph \/ ps ) -> ps ) ) $=
    ( wo wi orel1 orri ) AABCBDABEF $.

  $( A wff is equivalent to its disjunction with falsehood.  Theorem *4.74 of
     [WhiteheadRussell] p. 121.  (Contributed by NM, 23-Mar-1995.)  (Proof
     shortened by Wolf Lammen, 18-Nov-2012.) $)
  biorf $p |- ( -. ph -> ( ps <-> ( ph \/ ps ) ) ) $=
    ( wn wo olc orel1 impbid2 ) ACBABDBAEABFG $.

  $( A wff is equivalent to its negated disjunction with falsehood.
     (Contributed by NM, 9-Jul-2012.) $)
  biortn $p |- ( ph -> ( ps <-> ( -. ph \/ ps ) ) ) $=
    ( wn wo wb notnot biorf syl ) AACZCBIBDEAFIBGH $.

  ${
    biorfi.1 $e |- -. ph $.
    $( A wff is equivalent to its disjunction with falsehood.  (Contributed by
       NM, 23-Mar-1995.)  (Proof shortened by Wolf Lammen, 16-Jul-2021.) $)
    biorfi $p |- ( ps <-> ( ps \/ ph ) ) $=
      ( wo orc wn wi orel2 ax-mp impbii ) BBADZBAEAFKBGCABHIJ $.

    $( Obsolete proof of ~ biorfi as of 16-Jul-2021.  (Contributed by NM,
       23-Mar-1995.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    biorfiOLD $p |- ( ps <-> ( ps \/ ph ) ) $=
      ( wn wo wb orc orel2 impbid2 ax-mp ) ADZBBAEZFCKBLBAGABHIJ $.
  $}

  $( Theorem *2.621 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.621 $p |- ( ( ph -> ps ) -> ( ( ph \/ ps ) -> ps ) ) $=
    ( wi id idd jaod ) ABCZABBGDGBEF $.

  $( Theorem *2.62 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 13-Dec-2013.) $)
  pm2.62 $p |- ( ( ph \/ ps ) -> ( ( ph -> ps ) -> ps ) ) $=
    ( wi wo pm2.621 com12 ) ABCABDBABEF $.

  $( Theorem *2.68 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.68 $p |- ( ( ( ph -> ps ) -> ps ) -> ( ph \/ ps ) ) $=
    ( wi jarl orrd ) ABCBCABABBDE $.

  $( Logical 'or' expressed in terms of implication only.  Theorem *5.25 of
     [WhiteheadRussell] p. 124.  (Contributed by NM, 12-Aug-2004.)  (Proof
     shortened by Wolf Lammen, 20-Oct-2012.) $)
  dfor2 $p |- ( ( ph \/ ps ) <-> ( ( ph -> ps ) -> ps ) ) $=
    ( wo wi pm2.62 pm2.68 impbii ) ABCABDBDABEABFG $.

  $( Implication in terms of disjunction.  Theorem *4.6 of [WhiteheadRussell]
     p. 120.  (Contributed by NM, 3-Jan-1993.) $)
  imor $p |- ( ( ph -> ps ) <-> ( -. ph \/ ps ) ) $=
    ( wi wn wo notnotb imbi1i df-or bitr4i ) ABCADZDZBCJBEAKBAFGJBHI $.

  ${
    imori.1 $e |- ( ph -> ps ) $.
    $( Infer disjunction from implication.  (Contributed by NM,
       12-Mar-2012.) $)
    imori $p |- ( -. ph \/ ps ) $=
      ( wi wn wo imor mpbi ) ABDAEBFCABGH $.
  $}

  ${
    imorri.1 $e |- ( -. ph \/ ps ) $.
    $( Infer implication from disjunction.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.) $)
    imorri $p |- ( ph -> ps ) $=
      ( wi wn wo imor mpbir ) ABDAEBFCABGH $.
  $}

  $( Law of excluded middle, also called the principle of _tertium non datur_.
     Theorem *2.11 of [WhiteheadRussell] p. 101.  It says that something is
     either true or not true; there are no in-between values of truth.  This is
     an essential distinction of our classical logic and is not a theorem of
     intuitionistic logic.  In intuitionistic logic, if this statement is true
     for some ` ph ` , then ` ph ` is decideable.  (Contributed by NM,
     29-Dec-1992.) $)
  exmid $p |- ( ph \/ -. ph ) $=
    ( wn id orri ) AABZECD $.

  $( Law of excluded middle in a context.  (Contributed by Mario Carneiro,
     9-Feb-2017.) $)
  exmidd $p |- ( ph -> ( ps \/ -. ps ) ) $=
    ( wn wo exmid a1i ) BBCDABEF $.

  $( Theorem *2.1 of [WhiteheadRussell] p. 101.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 23-Nov-2012.) $)
  pm2.1 $p |- ( -. ph \/ ph ) $=
    ( id imori ) AAABC $.

  $( Theorem *2.13 of [WhiteheadRussell] p. 101.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.13 $p |- ( ph \/ -. -. -. ph ) $=
    ( wn notnot orri ) AABZBBECD $.

  $( Theorem *4.62 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.62 $p |- ( ( ph -> -. ps ) <-> ( -. ph \/ -. ps ) ) $=
    ( wn imor ) ABCD $.

  $( Theorem *4.66 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.66 $p |- ( ( -. ph -> -. ps ) <-> ( ph \/ -. ps ) ) $=
    ( wn pm4.64 ) ABCD $.

  $( Theorem *4.63 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.63 $p |- ( -. ( ph -> -. ps ) <-> ( ph /\ ps ) ) $=
    ( wa wn wi df-an bicomi ) ABCABDEDABFG $.

  $( Express implication in terms of conjunction.  (Contributed by NM,
     9-Apr-1994.) $)
  imnan $p |- ( ( ph -> -. ps ) <-> -. ( ph /\ ps ) ) $=
    ( wa wn wi df-an con2bii ) ABCABDEABFG $.

  ${
    imnani.1 $e |- -. ( ph /\ ps ) $.
    $( Infer implication from negated conjunction.  (Contributed by Mario
       Carneiro, 28-Sep-2015.) $)
    imnani $p |- ( ph -> -. ps ) $=
      ( wn wi wa imnan mpbir ) ABDEABFDCABGH $.
  $}

  $( Express implication in terms of conjunction.  Theorem 3.4(27) of [Stoll]
     p. 176.  (Contributed by NM, 12-Mar-1993.)  (Proof shortened by Wolf
     Lammen, 30-Oct-2012.) $)
  iman $p |- ( ( ph -> ps ) <-> -. ( ph /\ -. ps ) ) $=
    ( wi wn wa notnotb imbi2i imnan bitri ) ABCABDZDZCAJEDBKABFGAJHI $.

  $( Express conjunction in terms of implication.  (Contributed by NM,
     2-Aug-1994.) $)
  annim $p |- ( ( ph /\ -. ps ) <-> -. ( ph -> ps ) ) $=
    ( wi wn wa iman con2bii ) ABCABDEABFG $.

  $( Theorem *4.61 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.61 $p |- ( -. ( ph -> ps ) <-> ( ph /\ -. ps ) ) $=
    ( wn wa wi annim bicomi ) ABCDABECABFG $.

  $( Theorem *4.65 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.65 $p |- ( -. ( -. ph -> ps ) <-> ( -. ph /\ -. ps ) ) $=
    ( wn pm4.61 ) ACBD $.

  $( Theorem *4.67 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.67 $p |- ( -. ( -. ph -> -. ps ) <-> ( -. ph /\ ps ) ) $=
    ( wn pm4.63 ) ACBD $.

  ${
    imp.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Importation inference.  (Contributed by NM, 3-Jan-1993.)  (Proof
       shortened by Eric Schmidt, 22-Dec-2006.) $)
    imp $p |- ( ( ph /\ ps ) -> ch ) $=
      ( wa wn wi df-an impi sylbi ) ABEABFGFCABHABCDIJ $.

    $( Importation inference with commuted antecedents.  (Contributed by NM,
       25-May-2005.) $)
    impcom $p |- ( ( ps /\ ph ) -> ch ) $=
      ( com12 imp ) BACABCDEF $.
  $}

  ${
    impd.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( Importation deduction.  (Contributed by NM, 31-Mar-1994.) $)
    impd $p |- ( ph -> ( ( ps /\ ch ) -> th ) ) $=
      ( wa wi com3l imp com12 ) BCFADBCADGABCDEHIJ $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp31 $p |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $=
      ( wa wi imp ) ABFCDABCDGEHH $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp32 $p |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $=
      ( wa impd imp ) ABCFDABCDEGH $.
  $}

  ${
    ex.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Exportation inference.  (This theorem used to be labeled "exp" but was
       changed to "ex" so as not to conflict with the math token "exp", per the
       June 2006 Metamath spec change.)  A translation of natural deduction
       rule ` -> ` I ( ` -> ` introduction), see ~ natded .  (Contributed by
       NM, 3-Jan-1993.)  (Proof shortened by Eric Schmidt, 22-Dec-2006.) $)
    ex $p |- ( ph -> ( ps -> ch ) ) $=
      ( wn wi wa df-an sylbir expi ) ABCABEFEABGCABHDIJ $.

    $( Exportation inference with commuted antecedents.  (Contributed by NM,
       25-May-2005.) $)
    expcom $p |- ( ps -> ( ph -> ch ) ) $=
      ( ex com12 ) ABCABCDEF $.
  $}

  ${
    expd.1 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( Exportation deduction.  (Contributed by NM, 20-Aug-1993.) $)
    expd $p |- ( ph -> ( ps -> ( ch -> th ) ) ) $=
      ( wi wa com12 ex com3r ) BCADBCADFABCGDEHIJ $.

    $( A deduction version of exportation, followed by importation.
       (Contributed by NM, 6-Sep-2008.) $)
    expdimp $p |- ( ( ph /\ ps ) -> ( ch -> th ) ) $=
      ( wi expd imp ) ABCDFABCDEGH $.
  $}

  ${
    expcomd.1 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( Deduction form of ~ expcom .  (Contributed by Alan Sare,
       22-Jul-2012.) $)
    expcomd $p |- ( ph -> ( ch -> ( ps -> th ) ) ) $=
      ( expd com23 ) ABCDABCDEFG $.
  $}

  ${
    expdcom.1 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( Commuted form of ~ expd .  (Contributed by Alan Sare, 18-Mar-2012.) $)
    expdcom $p |- ( ps -> ( ch -> ( ph -> th ) ) ) $=
      ( expd com3l ) ABCDABCDEFG $.
  $}

  ${
    impancom.1 $e |- ( ( ph /\ ps ) -> ( ch -> th ) ) $.
    $( Mixed importation/commutation inference.  (Contributed by NM,
       22-Jun-2013.) $)
    impancom $p |- ( ( ph /\ ch ) -> ( ps -> th ) ) $=
      ( wi ex com23 imp ) ACBDFABCDABCDFEGHI $.
  $}

  ${
    con3dimp.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Variant of ~ con3d with importation.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.) $)
    con3dimp $p |- ( ( ph /\ -. ch ) -> -. ps ) $=
      ( wn con3d imp ) ACEBEABCDFG $.
  $}

  ${
    pm2.01da.1 $e |- ( ( ph /\ ps ) -> -. ps ) $.
    $( Deduction based on reductio ad absurdum.  (Contributed by Mario
       Carneiro, 9-Feb-2017.) $)
    pm2.01da $p |- ( ph -> -. ps ) $=
      ( wn ex pm2.01d ) ABABBDCEF $.
  $}

  ${
    pm2.18da.1 $e |- ( ( ph /\ -. ps ) -> ps ) $.
    $( Deduction based on reductio ad absurdum.  (Contributed by Mario
       Carneiro, 9-Feb-2017.) $)
    pm2.18da $p |- ( ph -> ps ) $=
      ( wn ex pm2.18d ) ABABDBCEF $.
  $}

  $( Theorem *3.3 (Exp) of [WhiteheadRussell] p. 112.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 24-Mar-2013.) $)
  pm3.3 $p |- ( ( ( ph /\ ps ) -> ch ) -> ( ph -> ( ps -> ch ) ) ) $=
    ( wa wi id expd ) ABDCEZABCHFG $.

  $( Theorem *3.31 (Imp) of [WhiteheadRussell] p. 112.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 24-Mar-2013.) $)
  pm3.31 $p |- ( ( ph -> ( ps -> ch ) ) -> ( ( ph /\ ps ) -> ch ) ) $=
    ( wi id impd ) ABCDDZABCGEF $.

  $( Import-export theorem.  Part of Theorem *4.87 of [WhiteheadRussell]
     p. 122.  (Contributed by NM, 10-Jan-1993.)  (Proof shortened by Wolf
     Lammen, 24-Mar-2013.) $)
  impexp $p |- ( ( ( ph /\ ps ) -> ch ) <-> ( ph -> ( ps -> ch ) ) ) $=
    ( wa wi pm3.3 pm3.31 impbii ) ABDCEABCEEABCFABCGH $.

  $( Join antecedents with conjunction ("conjunction introduction").  Theorem
     *3.2 of [WhiteheadRussell] p. 111.  See ~ pm3.2im for a version using only
     implication and negation.  (Contributed by NM, 5-Jan-1993.)  (Proof
     shortened by Wolf Lammen, 12-Nov-2012.) $)
  pm3.2 $p |- ( ph -> ( ps -> ( ph /\ ps ) ) ) $=
    ( wa id ex ) ABABCZFDE $.

  $( Join antecedents with conjunction.  Theorem *3.21 of [WhiteheadRussell]
     p. 111.  (Contributed by NM, 5-Aug-1993.) $)
  pm3.21 $p |- ( ph -> ( ps -> ( ps /\ ph ) ) ) $=
    ( wa pm3.2 com12 ) BABACBADE $.

  $( Theorem *3.22 of [WhiteheadRussell] p. 111.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 13-Nov-2012.) $)
  pm3.22 $p |- ( ( ph /\ ps ) -> ( ps /\ ph ) ) $=
    ( wa pm3.21 imp ) ABBACABDE $.

  $( Commutative law for conjunction.  Theorem *4.3 of [WhiteheadRussell]
     p. 118.  (Contributed by NM, 25-Jun-1998.)  (Proof shortened by Wolf
     Lammen, 4-Nov-2012.) $)
  ancom $p |- ( ( ph /\ ps ) <-> ( ps /\ ph ) ) $=
    ( wa pm3.22 impbii ) ABCBACABDBADE $.

  ${
    ancomd.1 $e |- ( ph -> ( ps /\ ch ) ) $.
    $( Commutation of conjuncts in consequent.  (Contributed by Jeff Hankins,
       14-Aug-2009.) $)
    ancomd $p |- ( ph -> ( ch /\ ps ) ) $=
      ( wa ancom sylib ) ABCECBEDBCFG $.
  $}

  $( Closed form of ~ ancoms .  (Contributed by Alan Sare, 31-Dec-2011.) $)
  ancomst $p |- ( ( ( ph /\ ps ) -> ch ) <-> ( ( ps /\ ph ) -> ch ) ) $=
    ( wa ancom imbi1i ) ABDBADCABEF $.

  ${
    ancoms.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Inference commuting conjunction in antecedent.  (Contributed by NM,
       21-Apr-1994.) $)
    ancoms $p |- ( ( ps /\ ph ) -> ch ) $=
      ( expcom imp ) BACABCDEF $.
  $}

  ${
    ancomsd.1 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( Deduction commuting conjunction in antecedent.  (Contributed by NM,
       12-Dec-2004.) $)
    ancomsd $p |- ( ph -> ( ( ch /\ ps ) -> th ) ) $=
      ( wa ancom syl5bi ) CBFBCFADCBGEH $.
  $}

  ${
    pm3.2i.1 $e |- ph $.
    pm3.2i.2 $e |- ps $.
    $( Infer conjunction of premises.  (Contributed by NM, 21-Jun-1993.) $)
    pm3.2i $p |- ( ph /\ ps ) $=
      ( wa pm3.2 mp2 ) ABABECDABFG $.
  $}

  $( Nested conjunction of antecedents.  (Contributed by NM, 4-Jan-1993.) $)
  pm3.43i $p |- ( ( ph -> ps )
      -> ( ( ph -> ch ) -> ( ph -> ( ps /\ ch ) ) ) ) $=
    ( wa pm3.2 imim3i ) BCBCDABCEF $.

  $( Elimination of a conjunct.  Theorem *3.26 (Simp) of [WhiteheadRussell]
     p. 112.  (Contributed by NM, 3-Jan-1993.)  (Proof shortened by Wolf
     Lammen, 13-Nov-2012.) $)
  simpl $p |- ( ( ph /\ ps ) -> ph ) $=
    ( ax-1 imp ) ABAABCD $.

  ${
    simpli.1 $e |- ( ph /\ ps ) $.
    $( Inference eliminating a conjunct.  (Contributed by NM, 15-Jun-1994.) $)
    simpli $p |- ph $=
      ( wa simpl ax-mp ) ABDACABEF $.
  $}

  ${
    simpld.1 $e |- ( ph -> ( ps /\ ch ) ) $.
    $( Deduction eliminating a conjunct.  A translation of natural deduction
       rule ` /\ ` EL ( ` /\ ` elimination left), see ~ natded .  (Contributed
       by NM, 26-May-1993.) $)
    simpld $p |- ( ph -> ps ) $=
      ( wa simpl syl ) ABCEBDBCFG $.
  $}

  ${
    simplbi.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Deduction eliminating a conjunct.  (Contributed by NM, 27-May-1998.) $)
    simplbi $p |- ( ph -> ps ) $=
      ( wa biimpi simpld ) ABCABCEDFG $.
  $}

  $( Elimination of a conjunct.  Theorem *3.27 (Simp) of [WhiteheadRussell]
     p. 112.  (Contributed by NM, 3-Jan-1993.)  (Proof shortened by Wolf
     Lammen, 13-Nov-2012.) $)
  simpr $p |- ( ( ph /\ ps ) -> ps ) $=
    ( idd imp ) ABBABCD $.

  ${
    simpri.1 $e |- ( ph /\ ps ) $.
    $( Inference eliminating a conjunct.  (Contributed by NM, 15-Jun-1994.) $)
    simpri $p |- ps $=
      ( wa simpr ax-mp ) ABDBCABEF $.
  $}

  ${
    simprd.1 $e |- ( ph -> ( ps /\ ch ) ) $.
    $( Deduction eliminating a conjunct.  (Contributed by NM, 14-May-1993.)  A
       translation of natural deduction rule ` /\ ` ER ( ` /\ ` elimination
       right), see ~ natded .  (Proof shortened by Wolf Lammen, 3-Oct-2013.) $)
    simprd $p |- ( ph -> ch ) $=
      ( ancomd simpld ) ACBABCDEF $.
  $}

  ${
    simprbi.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Deduction eliminating a conjunct.  (Contributed by NM, 27-May-1998.) $)
    simprbi $p |- ( ph -> ch ) $=
      ( wa biimpi simprd ) ABCABCEDFG $.
  $}

  ${
    adantr.1 $e |- ( ph -> ps ) $.
    $( Inference adding a conjunct to the right of an antecedent.  (Contributed
       by NM, 30-Aug-1993.) $)
    adantr $p |- ( ( ph /\ ch ) -> ps ) $=
      ( a1d imp ) ACBABCDEF $.
  $}

  ${
    adantl.1 $e |- ( ph -> ps ) $.
    $( Inference adding a conjunct to the left of an antecedent.  (Contributed
       by NM, 30-Aug-1993.)  (Proof shortened by Wolf Lammen, 23-Nov-2012.) $)
    adantl $p |- ( ( ch /\ ph ) -> ps ) $=
      ( adantr ancoms ) ACBABCDEF $.
  $}

  ${
    adantld.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction adding a conjunct to the left of an antecedent.  (Contributed
       by NM, 4-May-1994.)  (Proof shortened by Wolf Lammen, 20-Dec-2012.) $)
    adantld $p |- ( ph -> ( ( th /\ ps ) -> ch ) ) $=
      ( wa simpr syl5 ) DBFBACDBGEH $.
  $}

  ${
    adantrd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction adding a conjunct to the right of an antecedent.  (Contributed
       by NM, 4-May-1994.) $)
    adantrd $p |- ( ph -> ( ( ps /\ th ) -> ch ) ) $=
      ( wa simpl syl5 ) BDFBACBDGEH $.
  $}

  ${
    impel.1 $e |- ( ph -> ( ps -> ch ) ) $.
    impel.2 $e |- ( th -> ps ) $.
    $( An inference for implication elimination.  (Contributed by Giovanni
       Mascellani, 23-May-2019.)  (Proof shortened by Wolf Lammen,
       2-Sep-2020.) $)
    impel $p |- ( ( ph /\ th ) -> ch ) $=
      ( syl5 imp ) ADCDBACFEGH $.
  $}

  ${
    mpan9.1 $e |- ( ph -> ps ) $.
    mpan9.2 $e |- ( ch -> ( ps -> th ) ) $.
    $( Modus ponens conjoining dissimilar antecedents.  (Contributed by NM,
       1-Feb-2008.)  (Proof shortened by Andrew Salmon, 7-May-2011.) $)
    mpan9 $p |- ( ( ph /\ ch ) -> th ) $=
      ( syl5 impcom ) CADABCDEFGH $.
  $}

  ${
    syldan.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    syldan.2 $e |- ( ( ph /\ ch ) -> th ) $.
    $( A syllogism deduction with conjoined antecedents.  (Contributed by NM,
       24-Feb-2005.)  (Proof shortened by Wolf Lammen, 6-Apr-2013.) $)
    syldan $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa expcom adantrd mpcom ) CABGDECADBACDFHIJ $.
  $}

  ${
    sylan.1 $e |- ( ph -> ps ) $.
    sylan.2 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference.  (Contributed by NM, 21-Apr-1994.)  (Proof
       shortened by Wolf Lammen, 22-Nov-2012.) $)
    sylan $p |- ( ( ph /\ ch ) -> th ) $=
      ( expcom mpan9 ) ABCDEBCDFGH $.
  $}

  ${
    sylanb.1 $e |- ( ph <-> ps ) $.
    sylanb.2 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference.  (Contributed by NM, 18-May-1994.) $)
    sylanb $p |- ( ( ph /\ ch ) -> th ) $=
      ( biimpi sylan ) ABCDABEGFH $.
  $}

  ${
    sylanbr.1 $e |- ( ps <-> ph ) $.
    sylanbr.2 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference.  (Contributed by NM, 18-May-1994.) $)
    sylanbr $p |- ( ( ph /\ ch ) -> th ) $=
      ( biimpri sylan ) ABCDBAEGFH $.
  $}

  ${
    sylan2.1 $e |- ( ph -> ch ) $.
    sylan2.2 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference.  (Contributed by NM, 21-Apr-1994.)  (Proof
       shortened by Wolf Lammen, 22-Nov-2012.) $)
    sylan2 $p |- ( ( ps /\ ph ) -> th ) $=
      ( adantl syldan ) BACDACBEGFH $.
  $}

  ${
    sylan2b.1 $e |- ( ph <-> ch ) $.
    sylan2b.2 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference.  (Contributed by NM, 21-Apr-1994.) $)
    sylan2b $p |- ( ( ps /\ ph ) -> th ) $=
      ( biimpi sylan2 ) ABCDACEGFH $.
  $}

  ${
    sylan2br.1 $e |- ( ch <-> ph ) $.
    sylan2br.2 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference.  (Contributed by NM, 21-Apr-1994.) $)
    sylan2br $p |- ( ( ps /\ ph ) -> th ) $=
      ( biimpri sylan2 ) ABCDCAEGFH $.
  $}

  ${
    syl2an.1 $e |- ( ph -> ps ) $.
    syl2an.2 $e |- ( ta -> ch ) $.
    syl2an.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A double syllogism inference.  For an implication-only version, see
       ~ syl2im .  (Contributed by NM, 31-Jan-1997.) $)
    syl2an $p |- ( ( ph /\ ta ) -> th ) $=
      ( sylan sylan2 ) EACDGABCDFHIJ $.

    $( A double syllogism inference.  For an implication-only version, see
       ~ syl2imc .  (Contributed by NM, 17-Sep-2013.) $)
    syl2anr $p |- ( ( ta /\ ph ) -> th ) $=
      ( syl2an ancoms ) AEDABCDEFGHIJ $.
  $}

  ${
    syl2anb.1 $e |- ( ph <-> ps ) $.
    syl2anb.2 $e |- ( ta <-> ch ) $.
    syl2anb.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A double syllogism inference.  (Contributed by NM, 29-Jul-1999.) $)
    syl2anb $p |- ( ( ph /\ ta ) -> th ) $=
      ( sylanb sylan2b ) EACDGABCDFHIJ $.
  $}

  ${
    syl2anbr.1 $e |- ( ps <-> ph ) $.
    syl2anbr.2 $e |- ( ch <-> ta ) $.
    syl2anbr.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A double syllogism inference.  (Contributed by NM, 29-Jul-1999.) $)
    syl2anbr $p |- ( ( ph /\ ta ) -> th ) $=
      ( sylanbr sylan2br ) EACDGABCDFHIJ $.
  $}

  ${
    syland.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syland.2 $e |- ( ph -> ( ( ch /\ th ) -> ta ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 15-Dec-2004.) $)
    syland $p |- ( ph -> ( ( ps /\ th ) -> ta ) ) $=
      ( wi expd syld impd ) ABDEABCDEHFACDEGIJK $.
  $}

  ${
    sylan2d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    sylan2d.2 $e |- ( ph -> ( ( th /\ ch ) -> ta ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 15-Dec-2004.) $)
    sylan2d $p |- ( ph -> ( ( th /\ ps ) -> ta ) ) $=
      ( ancomsd syland ) ABDEABCDEFADCEGHIH $.
  $}

  ${
    syl2and.1 $e |- ( ph -> ( ps -> ch ) ) $.
    syl2and.2 $e |- ( ph -> ( th -> ta ) ) $.
    syl2and.3 $e |- ( ph -> ( ( ch /\ ta ) -> et ) ) $.
    $( A syllogism deduction.  (Contributed by NM, 15-Dec-2004.) $)
    syl2and $p |- ( ph -> ( ( ps /\ th ) -> et ) ) $=
      ( sylan2d syland ) ABCDFGADECFHIJK $.
  $}

  ${
    biimpa.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Importation inference from a logical equivalence.  (Contributed by NM,
       3-May-1994.) $)
    biimpa $p |- ( ( ph /\ ps ) -> ch ) $=
      ( biimpd imp ) ABCABCDEF $.

    $( Importation inference from a logical equivalence.  (Contributed by NM,
       3-May-1994.) $)
    biimpar $p |- ( ( ph /\ ch ) -> ps ) $=
      ( biimprd imp ) ACBABCDEF $.

    $( Importation inference from a logical equivalence.  (Contributed by NM,
       3-May-1994.) $)
    biimpac $p |- ( ( ps /\ ph ) -> ch ) $=
      ( biimpcd imp ) BACABCDEF $.

    $( Importation inference from a logical equivalence.  (Contributed by NM,
       3-May-1994.) $)
    biimparc $p |- ( ( ch /\ ph ) -> ps ) $=
      ( biimprcd imp ) CABABCDEF $.
  $}

  $( Conjunction implies disjunction with one common formula (1/4).
     (Contributed by BJ, 4-Oct-2019.) $)
  animorl $p |- ( ( ph /\ ps ) -> ( ph \/ ch ) ) $=
    ( wa simpl orcd ) ABDACABEF $.

  $( Conjunction implies disjunction with one common formula (2/4).
     (Contributed by BJ, 4-Oct-2019.) $)
  animorr $p |- ( ( ph /\ ps ) -> ( ch \/ ps ) ) $=
    ( wa simpr olcd ) ABDBCABEF $.

  $( Conjunction implies disjunction with one common formula (3/4).
     (Contributed by BJ, 4-Oct-2019.) $)
  animorlr $p |- ( ( ph /\ ps ) -> ( ch \/ ph ) ) $=
    ( wa simpl olcd ) ABDACABEF $.

  $( Conjunction implies disjunction with one common formula (4/4).
     (Contributed by BJ, 4-Oct-2019.) $)
  animorrl $p |- ( ( ph /\ ps ) -> ( ps \/ ch ) ) $=
    ( wa simpr orcd ) ABDBCABEF $.

  $( Negated conjunction in terms of disjunction (De Morgan's law).  Theorem
     *4.51 of [WhiteheadRussell] p. 120.  (Contributed by NM, 14-May-1993.)
     (Proof shortened by Andrew Salmon, 13-May-2011.) $)
  ianor $p |- ( -. ( ph /\ ps ) <-> ( -. ph \/ -. ps ) ) $=
    ( wa wn wi wo imnan pm4.62 bitr3i ) ABCDABDZEADJFABGABHI $.

  $( Conjunction in terms of disjunction (De Morgan's law).  Theorem *4.5 of
     [WhiteheadRussell] p. 120.  (Contributed by NM, 3-Jan-1993.)  (Proof
     shortened by Wolf Lammen, 3-Nov-2012.) $)
  anor $p |- ( ( ph /\ ps ) <-> -. ( -. ph \/ -. ps ) ) $=
    ( wn wo wa ianor bicomi con2bii ) ACBCDZABEZJCIABFGH $.

  $( Negated disjunction in terms of conjunction (De Morgan's law).  Compare
     Theorem *4.56 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-1993.)  (Proof shortened by Andrew Salmon, 7-May-2011.) $)
  ioran $p |- ( -. ( ph \/ ps ) <-> ( -. ph /\ -. ps ) ) $=
    ( wn wi wa wo pm4.65 pm4.64 xchnxbi ) ACZBDJBCEABFABGABHI $.

  $( Theorem *4.52 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 5-Nov-2012.) $)
  pm4.52 $p |- ( ( ph /\ -. ps ) <-> -. ( -. ph \/ ps ) ) $=
    ( wn wa wi wo annim imor xchbinx ) ABCDABEACBFABGABHI $.

  $( Theorem *4.53 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.53 $p |- ( -. ( ph /\ -. ps ) <-> ( -. ph \/ ps ) ) $=
    ( wn wo wa pm4.52 con2bii bicomi ) ACBDZABCEZCJIABFGH $.

  $( Theorem *4.54 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 5-Nov-2012.) $)
  pm4.54 $p |- ( ( -. ph /\ ps ) <-> -. ( ph \/ -. ps ) ) $=
    ( wn wa wi wo df-an pm4.66 xchbinx ) ACZBDJBCZEAKFJBGABHI $.

  $( Theorem *4.55 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.55 $p |- ( -. ( -. ph /\ ps ) <-> ( ph \/ -. ps ) ) $=
    ( wn wo wa pm4.54 con2bii bicomi ) ABCDZACBEZCJIABFGH $.

  $( Theorem *4.56 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.56 $p |- ( ( -. ph /\ -. ps ) <-> -. ( ph \/ ps ) ) $=
    ( wo wn wa ioran bicomi ) ABCDADBDEABFG $.

  $( Disjunction in terms of conjunction (De Morgan's law).  Compare Theorem
     *4.57 of [WhiteheadRussell] p. 120.  (Contributed by NM, 3-Jan-1993.)
     (Proof shortened by Andrew Salmon, 7-May-2011.) $)
  oran $p |- ( ( ph \/ ps ) <-> -. ( -. ph /\ -. ps ) ) $=
    ( wn wa wo pm4.56 con2bii ) ACBCDABEABFG $.

  $( Theorem *4.57 of [WhiteheadRussell] p. 120.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.57 $p |- ( -. ( -. ph /\ -. ps ) <-> ( ph \/ ps ) ) $=
    ( wo wn wa oran bicomi ) ABCADBDEDABFG $.

  $( Theorem *3.1 of [WhiteheadRussell] p. 111.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.1 $p |- ( ( ph /\ ps ) -> -. ( -. ph \/ -. ps ) ) $=
    ( wa wn wo anor biimpi ) ABCADBDEDABFG $.

  $( Theorem *3.11 of [WhiteheadRussell] p. 111.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.11 $p |- ( -. ( -. ph \/ -. ps ) -> ( ph /\ ps ) ) $=
    ( wa wn wo anor biimpri ) ABCADBDEDABFG $.

  $( Theorem *3.12 of [WhiteheadRussell] p. 111.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.12 $p |- ( ( -. ph \/ -. ps ) \/ ( ph /\ ps ) ) $=
    ( wn wo wa pm3.11 orri ) ACBCDABEABFG $.

  $( Theorem *3.13 of [WhiteheadRussell] p. 111.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.13 $p |- ( -. ( ph /\ ps ) -> ( -. ph \/ -. ps ) ) $=
    ( wn wo wa pm3.11 con1i ) ACBCDABEABFG $.

  $( Theorem *3.14 of [WhiteheadRussell] p. 111.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.14 $p |- ( ( -. ph \/ -. ps ) -> -. ( ph /\ ps ) ) $=
    ( wa wn wo pm3.1 con2i ) ABCADBDEABFG $.

  $( Introduction of antecedent as conjunct.  Theorem *4.73 of
     [WhiteheadRussell] p. 121.  (Contributed by NM, 30-Mar-1994.) $)
  iba $p |- ( ph -> ( ps <-> ( ps /\ ph ) ) ) $=
    ( wa pm3.21 simpl impbid1 ) ABBACABDBAEF $.

  $( Introduction of antecedent as conjunct.  (Contributed by NM,
     5-Dec-1995.) $)
  ibar $p |- ( ph -> ( ps <-> ( ph /\ ps ) ) ) $=
    ( wa pm3.2 simpr impbid1 ) ABABCABDABEF $.

  ${
    biantru.1 $e |- ph $.
    $( A wff is equivalent to its conjunction with truth.  (Contributed by NM,
       26-May-1993.) $)
    biantru $p |- ( ps <-> ( ps /\ ph ) ) $=
      ( wa wb iba ax-mp ) ABBADECABFG $.
  $}

  ${
    biantrur.1 $e |- ph $.
    $( A wff is equivalent to its conjunction with truth.  (Contributed by NM,
       3-Aug-1994.) $)
    biantrur $p |- ( ps <-> ( ph /\ ps ) ) $=
      ( wa wb ibar ax-mp ) ABABDECABFG $.
  $}

  ${
    biantrud.1 $e |- ( ph -> ps ) $.
    $( A wff is equivalent to its conjunction with truth.  (Contributed by NM,
       2-Aug-1994.)  (Proof shortened by Wolf Lammen, 23-Oct-2013.) $)
    biantrud $p |- ( ph -> ( ch <-> ( ch /\ ps ) ) ) $=
      ( wa wb iba syl ) ABCCBEFDBCGH $.

    $( A wff is equivalent to its conjunction with truth.  (Contributed by NM,
       1-May-1995.)  (Proof shortened by Andrew Salmon, 7-May-2011.) $)
    biantrurd $p |- ( ph -> ( ch <-> ( ps /\ ch ) ) ) $=
      ( wa wb ibar syl ) ABCBCEFDBCGH $.
  $}

  ${
    mpbirand.1 $e |- ( ph -> ch ) $.
    mpbirand.2 $e |- ( ph -> ( ps <-> ( ch /\ th ) ) ) $.
    $( Detach truth from conjunction in biconditional.  (Contributed by Glauco
       Siliprandi, 3-Mar-2021.) $)
    mpbirand $p |- ( ph -> ( ps <-> th ) ) $=
      ( wa biantrurd bitr4d ) ABCDGDFACDEHI $.
  $}

  ${
    jaao.1 $e |- ( ph -> ( ps -> ch ) ) $.
    jaao.2 $e |- ( th -> ( ta -> ch ) ) $.
    $( Inference conjoining and disjoining the antecedents of two implications.
       (Contributed by NM, 30-Sep-1999.) $)
    jaao $p |- ( ( ph /\ th ) -> ( ( ps \/ ta ) -> ch ) ) $=
      ( wa wi adantr adantl jaod ) ADHBCEABCIDFJDECIAGKL $.

    $( Inference disjoining and conjoining the antecedents of two implications.
       (Contributed by Stefan Allan, 1-Nov-2008.) $)
    jaoa $p |- ( ( ph \/ th ) -> ( ( ps /\ ta ) -> ch ) ) $=
      ( wa wi adantrd adantld jaoi ) ABEHCIDABCEFJDECBGKL $.
  $}

  $( Theorem *3.44 of [WhiteheadRussell] p. 113.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 3-Oct-2013.) $)
  pm3.44 $p |- ( ( ( ps -> ph ) /\ ( ch -> ph ) )
      -> ( ( ps \/ ch ) -> ph ) ) $=
    ( wi id jaao ) BADZBACADZCGEHEF $.

  $( Disjunction of antecedents.  Compare Theorem *3.44 of [WhiteheadRussell]
     p. 113.  (Contributed by NM, 5-Apr-1994.)  (Proof shortened by Wolf
     Lammen, 4-Apr-2013.) $)
  jao $p |- ( ( ph -> ps ) -> ( ( ch -> ps ) -> ( ( ph \/ ch ) -> ps ) ) ) $=
    ( wi wo pm3.44 ex ) ABDCBDACEBDBACFG $.

  $( Axiom *1.2 of [WhiteheadRussell] p. 96, which they call "Taut".
     (Contributed by NM, 3-Jan-2005.) $)
  pm1.2 $p |- ( ( ph \/ ph ) -> ph ) $=
    ( id jaoi ) AAAABZDC $.

  $( Idempotent law for disjunction.  Theorem *4.25 of [WhiteheadRussell]
     p. 117.  (Contributed by NM, 11-May-1993.)  (Proof shortened by Andrew
     Salmon, 16-Apr-2011.)  (Proof shortened by Wolf Lammen, 10-Mar-2013.) $)
  oridm $p |- ( ( ph \/ ph ) <-> ph ) $=
    ( wo pm1.2 pm2.07 impbii ) AABAACADE $.

  $( Theorem *4.25 of [WhiteheadRussell] p. 117.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.25 $p |- ( ph <-> ( ph \/ ph ) ) $=
    ( wo oridm bicomi ) AABAACD $.

  ${
    orim12i.1 $e |- ( ph -> ps ) $.
    orim12i.2 $e |- ( ch -> th ) $.
    $( Disjoin antecedents and consequents of two premises.  (Contributed by
       NM, 6-Jun-1994.)  (Proof shortened by Wolf Lammen, 25-Jul-2012.) $)
    orim12i $p |- ( ( ph \/ ch ) -> ( ps \/ th ) ) $=
      ( wo orcd olcd jaoi ) ABDGCABDEHCDBFIJ $.
  $}

  ${
    orim1i.1 $e |- ( ph -> ps ) $.
    $( Introduce disjunct to both sides of an implication.  (Contributed by NM,
       6-Jun-1994.) $)
    orim1i $p |- ( ( ph \/ ch ) -> ( ps \/ ch ) ) $=
      ( id orim12i ) ABCCDCEF $.

    $( Introduce disjunct to both sides of an implication.  (Contributed by NM,
       6-Jun-1994.) $)
    orim2i $p |- ( ( ch \/ ph ) -> ( ch \/ ps ) ) $=
      ( id orim12i ) CCABCEDF $.
  $}

  ${
    orbi2i.1 $e |- ( ph <-> ps ) $.
    $( Inference adding a left disjunct to both sides of a logical equivalence.
       (Contributed by NM, 3-Jan-1993.)  (Proof shortened by Wolf Lammen,
       12-Dec-2012.) $)
    orbi2i $p |- ( ( ch \/ ph ) <-> ( ch \/ ps ) ) $=
      ( wo biimpi orim2i biimpri impbii ) CAECBEABCABDFGBACABDHGI $.

    $( Inference adding a right disjunct to both sides of a logical
       equivalence.  (Contributed by NM, 3-Jan-1993.) $)
    orbi1i $p |- ( ( ph \/ ch ) <-> ( ps \/ ch ) ) $=
      ( wo orcom orbi2i 3bitri ) ACECAECBEBCEACFABCDGCBFH $.
  $}

  ${
    orbi12i.1 $e |- ( ph <-> ps ) $.
    orbi12i.2 $e |- ( ch <-> th ) $.
    $( Infer the disjunction of two equivalences.  (Contributed by NM,
       3-Jan-1993.) $)
    orbi12i $p |- ( ( ph \/ ch ) <-> ( ps \/ th ) ) $=
      ( wo orbi2i orbi1i bitri ) ACGADGBDGCDAFHABDEIJ $.
  $}

  $( Axiom *1.5 (Assoc) of [WhiteheadRussell] p. 96.  (Contributed by NM,
     3-Jan-2005.) $)
  pm1.5 $p |- ( ( ph \/ ( ps \/ ch ) ) -> ( ps \/ ( ph \/ ch ) ) ) $=
    ( wo orc olcd olc orim2i jaoi ) ABACDZDBCDAJBACEFCJBCAGHI $.

  $( Swap two disjuncts.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by
     Wolf Lammen, 14-Nov-2012.) $)
  or12 $p |- ( ( ph \/ ( ps \/ ch ) ) <-> ( ps \/ ( ph \/ ch ) ) ) $=
    ( wo pm1.5 impbii ) ABCDDBACDDABCEBACEF $.

  $( Associative law for disjunction.  Theorem *4.33 of [WhiteheadRussell]
     p. 118.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew
     Salmon, 26-Jun-2011.) $)
  orass $p |- ( ( ( ph \/ ps ) \/ ch ) <-> ( ph \/ ( ps \/ ch ) ) ) $=
    ( wo orcom or12 orbi2i 3bitri ) ABDZCDCIDACBDZDABCDZDICECABFJKACBEGH $.

  $( Theorem *2.31 of [WhiteheadRussell] p. 104.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.31 $p |- ( ( ph \/ ( ps \/ ch ) ) -> ( ( ph \/ ps ) \/ ch ) ) $=
    ( wo orass biimpri ) ABDCDABCDDABCEF $.

  $( Theorem *2.32 of [WhiteheadRussell] p. 105.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.32 $p |- ( ( ( ph \/ ps ) \/ ch ) -> ( ph \/ ( ps \/ ch ) ) ) $=
    ( wo orass biimpi ) ABDCDABCDDABCEF $.

  $( A rearrangement of disjuncts.  (Contributed by NM, 18-Oct-1995.)  (Proof
     shortened by Andrew Salmon, 26-Jun-2011.) $)
  or32 $p |- ( ( ( ph \/ ps ) \/ ch ) <-> ( ( ph \/ ch ) \/ ps ) ) $=
    ( wo orass or12 orcom 3bitri ) ABDCDABCDDBACDZDIBDABCEABCFBIGH $.

  $( Rearrangement of 4 disjuncts.  (Contributed by NM, 12-Aug-1994.) $)
  or4 $p |- ( ( ( ph \/ ps ) \/ ( ch \/ th ) ) <->
                ( ( ph \/ ch ) \/ ( ps \/ th ) ) ) $=
    ( wo or12 orbi2i orass 3bitr4i ) ABCDEZEZEACBDEZEZEABEJEACELEKMABCDFGABJHAC
    LHI $.

  $( Rearrangement of 4 disjuncts.  (Contributed by NM, 10-Jan-2005.) $)
  or42 $p |- ( ( ( ph \/ ps ) \/ ( ch \/ th ) ) <->
                 ( ( ph \/ ch ) \/ ( th \/ ps ) ) ) $=
    ( wo or4 orcom orbi2i bitri ) ABECDEEACEZBDEZEJDBEZEABCDFKLJBDGHI $.

  $( Distribution of disjunction over disjunction.  (Contributed by NM,
     25-Feb-1995.) $)
  orordi $p |- ( ( ph \/ ( ps \/ ch ) ) <->
               ( ( ph \/ ps ) \/ ( ph \/ ch ) ) ) $=
    ( wo oridm orbi1i or4 bitr3i ) ABCDZDAADZIDABDACDDJAIAEFAABCGH $.

  $( Distribution of disjunction over disjunction.  (Contributed by NM,
     25-Feb-1995.) $)
  orordir $p |- ( ( ( ph \/ ps ) \/ ch ) <->
               ( ( ph \/ ch ) \/ ( ps \/ ch ) ) ) $=
    ( wo oridm orbi2i or4 bitr3i ) ABDZCDICCDZDACDBCDDJCICEFABCCGH $.

  ${
    jca.1 $e |- ( ph -> ps ) $.
    jca.2 $e |- ( ph -> ch ) $.
    $( Deduce conjunction of the consequents of two implications ("join
       consequents with 'and'").  Equivalent to the natural deduction rule
       ` /\ ` I ( ` /\ ` introduction), see ~ natded .  (Contributed by NM,
       3-Jan-1993.)  (Proof shortened by Wolf Lammen, 25-Oct-2012.) $)
    jca $p |- ( ph -> ( ps /\ ch ) ) $=
      ( wa pm3.2 sylc ) ABCBCFDEBCGH $.
  $}

  ${
    jcad.1 $e |- ( ph -> ( ps -> ch ) ) $.
    jcad.2 $e |- ( ph -> ( ps -> th ) ) $.
    $( Deduction conjoining the consequents of two implications.  (Contributed
       by NM, 15-Jul-1993.)  (Proof shortened by Wolf Lammen, 23-Jul-2013.) $)
    jcad $p |- ( ph -> ( ps -> ( ch /\ th ) ) ) $=
      ( wa pm3.2 syl6c ) ABCDCDGEFCDHI $.
  $}

  ${
    jca2.1 $e |- ( ph -> ( ps -> ch ) ) $.
    jca2.2 $e |- ( ps -> th ) $.
    $( Inference conjoining the consequents of two implications.  (Contributed
       by Rodolfo Medina, 12-Oct-2010.) $)
    jca2 $p |- ( ph -> ( ps -> ( ch /\ th ) ) ) $=
      ( wi a1i jcad ) ABCDEBDGAFHI $.
  $}

  ${
    jca31.1 $e |- ( ph -> ps ) $.
    jca31.2 $e |- ( ph -> ch ) $.
    jca31.3 $e |- ( ph -> th ) $.
    $( Join three consequents.  (Contributed by Jeff Hankins, 1-Aug-2009.) $)
    jca31 $p |- ( ph -> ( ( ps /\ ch ) /\ th ) ) $=
      ( wa jca ) ABCHDABCEFIGI $.

    $( Join three consequents.  (Contributed by FL, 1-Aug-2009.) $)
    jca32 $p |- ( ph -> ( ps /\ ( ch /\ th ) ) ) $=
      ( wa jca ) ABCDHEACDFGII $.
  $}

  ${
    jcai.1 $e |- ( ph -> ps ) $.
    jcai.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction replacing implication with conjunction.  (Contributed by NM,
       15-Jul-1993.) $)
    jcai $p |- ( ph -> ( ps /\ ch ) ) $=
      ( mpd jca ) ABCDABCDEFG $.
  $}

  ${
    jctil.1 $e |- ( ph -> ps ) $.
    jctil.2 $e |- ch $.
    $( Inference conjoining a theorem to left of consequent in an implication.
       (Contributed by NM, 31-Dec-1993.) $)
    jctil $p |- ( ph -> ( ch /\ ps ) ) $=
      ( a1i jca ) ACBCAEFDG $.

    $( Inference conjoining a theorem to right of consequent in an implication.
       (Contributed by NM, 31-Dec-1993.) $)
    jctir $p |- ( ph -> ( ps /\ ch ) ) $=
      ( a1i jca ) ABCDCAEFG $.
  $}

  ${
    jccir.1 $e |- ( ph -> ps ) $.
    jccir.2 $e |- ( ps -> ch ) $.
    $( Inference conjoining a consequent of a consequent to the right of the
       consequent in an implication.  See also ~ ex-natded5.3i .  (Contributed
       by Mario Carneiro, 9-Feb-2017.)  (Revised by AV, 20-Aug-2019.) $)
    jccir $p |- ( ph -> ( ps /\ ch ) ) $=
      ( syl jca ) ABCDABCDEFG $.

    $( Inference conjoining a consequent of a consequent to the left of the
       consequent in an implication.  Remark:  One can also prove this theorem
       using ~ syl and ~ jca (as done in ~ jccir ), which would be 4 bytes
       shorter, but one step longer than the current proof.
       (Proof modification is discouraged.)  (Contributed by AV,
       20-Aug-2019.) $)
    jccil $p |- ( ph -> ( ch /\ ps ) ) $=
      ( jccir ancomd ) ABCABCDEFG $.
  $}

  ${
    jctl.1 $e |- ps $.
    $( Inference conjoining a theorem to the left of a consequent.
       (Contributed by NM, 31-Dec-1993.)  (Proof shortened by Wolf Lammen,
       24-Oct-2012.) $)
    jctl $p |- ( ph -> ( ps /\ ph ) ) $=
      ( id jctil ) AABADCE $.

    $( Inference conjoining a theorem to the right of a consequent.
       (Contributed by NM, 18-Aug-1993.)  (Proof shortened by Wolf Lammen,
       24-Oct-2012.) $)
    jctr $p |- ( ph -> ( ph /\ ps ) ) $=
      ( id jctir ) AABADCE $.
  $}

  ${
    jctild.1 $e |- ( ph -> ( ps -> ch ) ) $.
    jctild.2 $e |- ( ph -> th ) $.
    $( Deduction conjoining a theorem to left of consequent in an implication.
       (Contributed by NM, 21-Apr-2005.) $)
    jctild $p |- ( ph -> ( ps -> ( th /\ ch ) ) ) $=
      ( a1d jcad ) ABDCADBFGEH $.
  $}

  ${
    jctird.1 $e |- ( ph -> ( ps -> ch ) ) $.
    jctird.2 $e |- ( ph -> th ) $.
    $( Deduction conjoining a theorem to right of consequent in an implication.
       (Contributed by NM, 21-Apr-2005.) $)
    jctird $p |- ( ph -> ( ps -> ( ch /\ th ) ) ) $=
      ( a1d jcad ) ABCDEADBFGH $.
  $}

  ${
    syl6an.1 $e |- ( ph -> ps ) $.
    syl6an.2 $e |- ( ph -> ( ch -> th ) ) $.
    syl6an.3 $e |- ( ( ps /\ th ) -> ta ) $.
    $( A syllogism deduction combined with conjoining antecedents.
       (Contributed by Alan Sare, 28-Oct-2011.) $)
    syl6an $p |- ( ph -> ( ch -> ta ) ) $=
      ( wa jctild syl6 ) ACBDIEACDBGFJHK $.
  $}

  $( Conjoin antecedent to left of consequent.  (Contributed by NM,
     15-Aug-1994.) $)
  ancl $p |- ( ( ph -> ps ) -> ( ph -> ( ph /\ ps ) ) ) $=
    ( wa pm3.2 a2i ) ABABCABDE $.

  $( Conjoin antecedent to left of consequent.  Theorem *4.7 of
     [WhiteheadRussell] p. 120.  (Contributed by NM, 25-Jul-1999.)  (Proof
     shortened by Wolf Lammen, 24-Mar-2013.) $)
  anclb $p |- ( ( ph -> ps ) <-> ( ph -> ( ph /\ ps ) ) ) $=
    ( wa ibar pm5.74i ) ABABCABDE $.

  $( Theorem *5.42 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.42 $p |- ( ( ph -> ( ps -> ch ) ) <->
                ( ph -> ( ps -> ( ph /\ ch ) ) ) ) $=
    ( wi wa ibar imbi2d pm5.74i ) ABCDBACEZDACIBACFGH $.

  $( Conjoin antecedent to right of consequent.  (Contributed by NM,
     15-Aug-1994.) $)
  ancr $p |- ( ( ph -> ps ) -> ( ph -> ( ps /\ ph ) ) ) $=
    ( wa pm3.21 a2i ) ABBACABDE $.

  $( Conjoin antecedent to right of consequent.  (Contributed by NM,
     25-Jul-1999.)  (Proof shortened by Wolf Lammen, 24-Mar-2013.) $)
  ancrb $p |- ( ( ph -> ps ) <-> ( ph -> ( ps /\ ph ) ) ) $=
    ( wa iba pm5.74i ) ABBACABDE $.

  ${
    ancli.1 $e |- ( ph -> ps ) $.
    $( Deduction conjoining antecedent to left of consequent.  (Contributed by
       NM, 12-Aug-1993.) $)
    ancli $p |- ( ph -> ( ph /\ ps ) ) $=
      ( id jca ) AABADCE $.
  $}

  ${
    ancri.1 $e |- ( ph -> ps ) $.
    $( Deduction conjoining antecedent to right of consequent.  (Contributed by
       NM, 15-Aug-1994.) $)
    ancri $p |- ( ph -> ( ps /\ ph ) ) $=
      ( id jca ) ABACADE $.
  $}

  ${
    ancld.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction conjoining antecedent to left of consequent in nested
       implication.  (Contributed by NM, 15-Aug-1994.)  (Proof shortened by
       Wolf Lammen, 1-Nov-2012.) $)
    ancld $p |- ( ph -> ( ps -> ( ps /\ ch ) ) ) $=
      ( idd jcad ) ABBCABEDF $.
  $}

  ${
    ancrd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction conjoining antecedent to right of consequent in nested
       implication.  (Contributed by NM, 15-Aug-1994.)  (Proof shortened by
       Wolf Lammen, 1-Nov-2012.) $)
    ancrd $p |- ( ph -> ( ps -> ( ch /\ ps ) ) ) $=
      ( idd jcad ) ABCBDABEF $.
  $}

  $( Conjoin antecedent to left of consequent in nested implication.
     (Contributed by NM, 10-Aug-1994.)  (Proof shortened by Wolf Lammen,
     14-Jul-2013.) $)
  anc2l $p |- ( ( ph -> ( ps -> ch ) ) -> ( ph -> ( ps -> ( ph /\ ch ) ) ) ) $=
    ( wi wa pm5.42 biimpi ) ABCDDABACEDDABCFG $.

  $( Conjoin antecedent to right of consequent in nested implication.
     (Contributed by NM, 15-Aug-1994.) $)
  anc2r $p |- ( ( ph -> ( ps -> ch ) ) -> ( ph -> ( ps -> ( ch /\ ph ) ) ) ) $=
    ( wi wa pm3.21 imim2d a2i ) ABCDBCAEZDACIBACFGH $.

  ${
    anc2li.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction conjoining antecedent to left of consequent in nested
       implication.  (Contributed by NM, 10-Aug-1994.)  (Proof shortened by
       Wolf Lammen, 7-Dec-2012.) $)
    anc2li $p |- ( ph -> ( ps -> ( ph /\ ch ) ) ) $=
      ( id jctild ) ABCADAEF $.
  $}

  ${
    anc2ri.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction conjoining antecedent to right of consequent in nested
       implication.  (Contributed by NM, 15-Aug-1994.)  (Proof shortened by
       Wolf Lammen, 7-Dec-2012.) $)
    anc2ri $p |- ( ph -> ( ps -> ( ch /\ ph ) ) ) $=
      ( id jctird ) ABCADAEF $.
  $}

  $( Theorem *3.41 of [WhiteheadRussell] p. 113.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.41 $p |- ( ( ph -> ch ) -> ( ( ph /\ ps ) -> ch ) ) $=
    ( wa simpl imim1i ) ABDACABEF $.

  $( Theorem *3.42 of [WhiteheadRussell] p. 113.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.42 $p |- ( ( ps -> ch ) -> ( ( ph /\ ps ) -> ch ) ) $=
    ( wa simpr imim1i ) ABDBCABEF $.

  $( Conjunction implies implication.  Theorem *3.4 of [WhiteheadRussell]
     p. 113.  (Contributed by NM, 31-Jul-1995.) $)
  pm3.4 $p |- ( ( ph /\ ps ) -> ( ph -> ps ) ) $=
    ( wa simpr a1d ) ABCBAABDE $.

  $( Conjunction with implication.  Compare Theorem *4.45 of [WhiteheadRussell]
     p. 119.  (Contributed by NM, 17-May-1998.) $)
  pm4.45im $p |- ( ph <-> ( ph /\ ( ps -> ph ) ) ) $=
    ( wi wa ax-1 ancli simpl impbii ) AABACZDAIABEFAIGH $.

  ${
    anim12d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    anim12d.2 $e |- ( ph -> ( th -> ta ) ) $.
    $( Conjoin antecedents and consequents in a deduction.  (Contributed by NM,
       3-Apr-1994.)  (Proof shortened by Wolf Lammen, 18-Dec-2013.) $)
    anim12d $p |- ( ph -> ( ( ps /\ th ) -> ( ch /\ ta ) ) ) $=
      ( wa idd syl2and ) ABCDECEHZFGAKIJ $.
  $}

  ${
    anim12d1.1 $e |- ( ph -> ( ps -> ch ) ) $.
    anim12d1.2 $e |- ( th -> ta ) $.
    $( Variant of ~ anim12d where the second implication does not depend on the
       antecedent.  (Contributed by Rodolfo Medina, 12-Oct-2010.) $)
    anim12d1 $p |- ( ph -> ( ( ps /\ th ) -> ( ch /\ ta ) ) ) $=
      ( wi a1i anim12d ) ABCDEFDEHAGIJ $.
  $}

  ${
    anim1d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Add a conjunct to right of antecedent and consequent in a deduction.
       (Contributed by NM, 3-Apr-1994.) $)
    anim1d $p |- ( ph -> ( ( ps /\ th ) -> ( ch /\ th ) ) ) $=
      ( idd anim12d ) ABCDDEADFG $.

    $( Add a conjunct to left of antecedent and consequent in a deduction.
       (Contributed by NM, 14-May-1993.) $)
    anim2d $p |- ( ph -> ( ( th /\ ps ) -> ( th /\ ch ) ) ) $=
      ( idd anim12d ) ADDBCADFEG $.
  $}

  ${
    anim12i.1 $e |- ( ph -> ps ) $.
    anim12i.2 $e |- ( ch -> th ) $.
    $( Conjoin antecedents and consequents of two premises.  (Contributed by
       NM, 3-Jan-1993.)  (Proof shortened by Wolf Lammen, 14-Dec-2013.) $)
    anim12i $p |- ( ( ph /\ ch ) -> ( ps /\ th ) ) $=
      ( wa id syl2an ) ABDBDGZCEFJHI $.

    $( Variant of ~ anim12i with commutation.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    anim12ci $p |- ( ( ph /\ ch ) -> ( th /\ ps ) ) $=
      ( wa anim12i ancoms ) CADBGCDABFEHI $.
  $}

  ${
    anim1i.1 $e |- ( ph -> ps ) $.
    $( Introduce conjunct to both sides of an implication.  (Contributed by NM,
       5-Aug-1993.) $)
    anim1i $p |- ( ( ph /\ ch ) -> ( ps /\ ch ) ) $=
      ( id anim12i ) ABCCDCEF $.

    $( Introduce conjunct to both sides of an implication.  (Contributed by NM,
       3-Jan-1993.) $)
    anim2i $p |- ( ( ch /\ ph ) -> ( ch /\ ps ) ) $=
      ( id anim12i ) CCABCEDF $.
  $}

  ${
    anim12ii.1 $e |- ( ph -> ( ps -> ch ) ) $.
    anim12ii.2 $e |- ( th -> ( ps -> ta ) ) $.
    $( Conjoin antecedents and consequents in a deduction.  (Contributed by NM,
       11-Nov-2007.)  (Proof shortened by Wolf Lammen, 19-Jul-2013.) $)
    anim12ii $p |- ( ( ph /\ th ) -> ( ps -> ( ch /\ ta ) ) ) $=
      ( wa wi adantr adantl jcad ) ADHBCEABCIDFJDBEIAGKL $.
  $}

  $( Conjoin antecedents and consequents of two premises.  This is the closed
     theorem form of ~ anim12d .  Theorem *3.47 of [WhiteheadRussell] p. 113.
     It was proved by Leibniz, and it evidently pleased him enough to call it
     _praeclarum theorema_ (splendid theorem).  (Contributed by NM,
     12-Aug-1993.)  (Proof shortened by Wolf Lammen, 7-Apr-2013.) $)
  prth $p |- ( ( ( ph -> ps ) /\ ( ch -> th ) )
       -> ( ( ph /\ ch ) -> ( ps /\ th ) ) ) $=
    ( wi wa simpl simpr anim12d ) ABEZCDEZFABCDJKGJKHI $.

  $( Theorem *2.3 of [WhiteheadRussell] p. 104.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.3 $p |- ( ( ph \/ ( ps \/ ch ) ) -> ( ph \/ ( ch \/ ps ) ) ) $=
    ( wo pm1.4 orim2i ) BCDCBDABCEF $.

  $( Theorem *2.41 of [WhiteheadRussell] p. 106.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.41 $p |- ( ( ps \/ ( ph \/ ps ) ) -> ( ph \/ ps ) ) $=
    ( wo olc id jaoi ) BABCZGBADGEF $.

  $( Theorem *2.42 of [WhiteheadRussell] p. 106.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.42 $p |- ( ( -. ph \/ ( ph -> ps ) ) -> ( ph -> ps ) ) $=
    ( wn wi pm2.21 id jaoi ) ACABDZHABEHFG $.

  $( Theorem *2.4 of [WhiteheadRussell] p. 106.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.4 $p |- ( ( ph \/ ( ph \/ ps ) ) -> ( ph \/ ps ) ) $=
    ( wo orc id jaoi ) AABCZGABDGEF $.

  ${
    pm2.65da.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    pm2.65da.2 $e |- ( ( ph /\ ps ) -> -. ch ) $.
    $( Deduction rule for proof by contradiction.  (Contributed by NM,
       12-Jun-2014.) $)
    pm2.65da $p |- ( ph -> -. ps ) $=
      ( ex wn pm2.65d ) ABCABCDFABCGEFH $.
  $}

  $( Theorem *4.44 of [WhiteheadRussell] p. 119.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.44 $p |- ( ph <-> ( ph \/ ( ph /\ ps ) ) ) $=
    ( wa wo orc id simpl jaoi impbii ) AAABCZDAJEAAJAFABGHI $.

  $( Theorem *4.14 of [WhiteheadRussell] p. 117.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 23-Oct-2012.) $)
  pm4.14 $p |- ( ( ( ph /\ ps ) -> ch ) <-> ( ( ph /\ -. ch ) -> -. ps ) ) $=
    ( wi wn wa con34b imbi2i impexp 3bitr4i ) ABCDZDACEZBEZDZDABFCDALFMDKNABCGH
    ABCIALMIJ $.

  $( Theorem *3.37 (Transp) of [WhiteheadRussell] p. 112.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 23-Oct-2012.) $)
  pm3.37 $p |- ( ( ( ph /\ ps ) -> ch ) -> ( ( ph /\ -. ch ) -> -. ps ) ) $=
    ( wa wi wn pm4.14 biimpi ) ABDCEACFDBFEABCGH $.

  $( Theorem to move a conjunct in and out of a negation.  (Contributed by NM,
     9-Nov-2003.) $)
  nan $p |- ( ( ph -> -. ( ps /\ ch ) ) <-> ( ( ph /\ ps ) -> -. ch ) ) $=
    ( wa wn wi impexp imnan imbi2i bitr2i ) ABDCEZFABKFZFABCDEZFABKGLMABCHIJ $.

  $( Theorem *4.15 of [WhiteheadRussell] p. 117.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 18-Nov-2012.) $)
  pm4.15 $p |- ( ( ( ph /\ ps ) -> -. ch ) <-> ( ( ps /\ ch ) -> -. ph ) ) $=
    ( wa wn wi con2b nan bitr2i ) BCDZAEFAJEFABDCEFJAGABCHI $.

  $( Implication distributes over disjunction.  Theorem *4.78 of
     [WhiteheadRussell] p. 121.  (Contributed by NM, 3-Jan-2005.)  (Proof
     shortened by Wolf Lammen, 19-Nov-2012.) $)
  pm4.78 $p |- ( ( ( ph -> ps ) \/ ( ph -> ch ) ) <->
                ( ph -> ( ps \/ ch ) ) ) $=
    ( wn wo wi orordi imor orbi12i 3bitr4ri ) ADZBCEZEKBEZKCEZEALFABFZACFZEKBCG
    ALHOMPNABHACHIJ $.

  $( Theorem *4.79 of [WhiteheadRussell] p. 121.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 27-Jun-2013.) $)
  pm4.79 $p |- ( ( ( ps -> ph ) \/ ( ch -> ph ) ) <->
                ( ( ps /\ ch ) -> ph ) ) $=
    ( wi wo wa id jaoa wn simplim pm3.3 syl5 orrd impbii ) BADZCADZEBCFADZOBAPC
    OGPGHQOPOIBQPBAJBCAKLMN $.

  $( Theorem *4.87 of [WhiteheadRussell] p. 122.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Eric Schmidt, 26-Oct-2006.) $)
  pm4.87 $p |- ( ( ( ( ( ph /\ ps ) -> ch ) <-> ( ph -> ( ps -> ch ) ) ) /\
                ( ( ph -> ( ps -> ch ) ) <-> ( ps -> ( ph -> ch ) ) ) ) /\
                ( ( ps -> ( ph -> ch ) ) <-> ( ( ps /\ ph ) -> ch ) ) ) $=
    ( wa wi wb impexp bi2.04 pm3.2i bicomi ) ABDCEABCEEZFZKBACEEZFZDMBADCEZFLNA
    BCGABCHIOMBACGJI $.

  $( Theorem *3.33 (Syll) of [WhiteheadRussell] p. 112.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.33 $p |- ( ( ( ph -> ps ) /\ ( ps -> ch ) ) -> ( ph -> ch ) ) $=
    ( wi imim1 imp ) ABDBCDACDABCEF $.

  $( Theorem *3.34 (Syll) of [WhiteheadRussell] p. 112.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.34 $p |- ( ( ( ps -> ch ) /\ ( ph -> ps ) ) -> ( ph -> ch ) ) $=
    ( wi imim2 imp ) BCDABDACDBCAEF $.

  $( Conjunctive detachment.  Theorem *3.35 of [WhiteheadRussell] p. 112.
     (Contributed by NM, 14-Dec-2002.) $)
  pm3.35 $p |- ( ( ph /\ ( ph -> ps ) ) -> ps ) $=
    ( wi pm2.27 imp ) AABCBABDE $.

  $( Theorem *5.31 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.31 $p |- ( ( ch /\ ( ph -> ps ) ) -> ( ph -> ( ps /\ ch ) ) ) $=
    ( wi wa pm3.21 imim2d imp ) CABDABCEZDCBIACBFGH $.

  ${
    imp4.1 $e |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $.
    $( An importation inference.  (Contributed by NM, 26-Apr-1994.)  Shorten
       ~ imp4a .  (Revised by Wolf Lammen, 19-Jul-2021.) $)
    imp4b $p |- ( ( ph /\ ps ) -> ( ( ch /\ th ) -> ta ) ) $=
      ( wa wi imp impd ) ABGCDEABCDEHHFIJ $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.)  (Proof
       shortened by Wolf Lammen, 19-Jul-2021.) $)
    imp4a $p |- ( ph -> ( ps -> ( ( ch /\ th ) -> ta ) ) ) $=
      ( wa wi imp4b ex ) ABCDGEHABCDEFIJ $.

    $( Obsolete proof of ~ imp4a as of 19-Jul-2021.  (Contributed by NM,
       26-Apr-1994.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    imp4aOLD $p |- ( ph -> ( ps -> ( ( ch /\ th ) -> ta ) ) ) $=
      ( wi wa impexp syl6ibr ) ABCDEGGCDHEGFCDEIJ $.

    $( Obsolete proof of ~ imp4b as of 19-Jul-2021.  (Contributed by NM,
       26-Apr-1994.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    imp4bOLD $p |- ( ( ph /\ ps ) -> ( ( ch /\ th ) -> ta ) ) $=
      ( wa wi imp4a imp ) ABCDGEHABCDEFIJ $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp4c $p |- ( ph -> ( ( ( ps /\ ch ) /\ th ) -> ta ) ) $=
      ( wa wi impd ) ABCGDEABCDEHFII $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp4d $p |- ( ph -> ( ( ps /\ ( ch /\ th ) ) -> ta ) ) $=
      ( wa imp4a impd ) ABCDGEABCDEFHI $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp41 $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) -> ta ) $=
      ( wa wi imp imp31 ) ABGCDEABCDEHHFIJ $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp42 $p |- ( ( ( ph /\ ( ps /\ ch ) ) /\ th ) -> ta ) $=
      ( wa wi imp32 imp ) ABCGGDEABCDEHFIJ $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp43 $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) -> ta ) $=
      ( wa imp4b imp ) ABGCDGEABCDEFHI $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp44 $p |- ( ( ph /\ ( ( ps /\ ch ) /\ th ) ) -> ta ) $=
      ( wa imp4c imp ) ABCGDGEABCDEFHI $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp45 $p |- ( ( ph /\ ( ps /\ ( ch /\ th ) ) ) -> ta ) $=
      ( wa imp4d imp ) ABCDGGEABCDEFHI $.
  $}

  ${
    imp5.1 $e |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $.
    $( An importation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    imp5a $p |- ( ph -> ( ps -> ( ch -> ( ( th /\ ta ) -> et ) ) ) ) $=
      ( wi wa pm3.31 syl8 ) ABCDEFHHDEIFHGDEFJK $.

    $( An importation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    imp5d $p |- ( ( ( ph /\ ps ) /\ ch ) -> ( ( th /\ ta ) -> et ) ) $=
      ( wa wi imp31 impd ) ABHCHDEFABCDEFIIGJK $.

    $( An importation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    imp5g $p |- ( ( ph /\ ps ) -> ( ( ( ch /\ th ) /\ ta ) -> et ) ) $=
      ( wa wi imp imp4c ) ABHCDEFABCDEFIIIGJK $.

    $( An importation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    imp55 $p |- ( ( ( ph /\ ( ps /\ ( ch /\ th ) ) ) /\ ta ) -> et ) $=
      ( wa wi imp4a imp42 ) ABCDHEFABCDEFIGJK $.

    $( An importation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    imp511 $p |- ( ( ph /\ ( ( ps /\ ( ch /\ th ) ) /\ ta ) ) -> et ) $=
      ( wa wi imp4a imp44 ) ABCDHEFABCDEFIGJK $.
  $}

  ${
    expimpd.1 $e |- ( ( ph /\ ps ) -> ( ch -> th ) ) $.
    $( Exportation followed by a deduction version of importation.
       (Contributed by NM, 6-Sep-2008.) $)
    expimpd $p |- ( ph -> ( ( ps /\ ch ) -> th ) ) $=
      ( wi ex impd ) ABCDABCDFEGH $.
  $}

  ${
    exp31.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp31 $p |- ( ph -> ( ps -> ( ch -> th ) ) ) $=
      ( wi wa ex ) ABCDFABGCDEHH $.
  $}

  ${
    exp32.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp32 $p |- ( ph -> ( ps -> ( ch -> th ) ) ) $=
      ( wa ex expd ) ABCDABCFDEGH $.
  $}

  ${
    exp4b.1 $e |- ( ( ph /\ ps ) -> ( ( ch /\ th ) -> ta ) ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.)  (Proof
       shortened by Wolf Lammen, 23-Nov-2012.)  Shorten ~ exp4a .  (Revised by
       Wolf Lammen, 20-Jul-2021.) $)
    exp4b $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi wa expd ex ) ABCDEGGABHCDEFIJ $.
  $}

  ${
    exp4a.1 $e |- ( ph -> ( ps -> ( ( ch /\ th ) -> ta ) ) ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.)  (Proof
       shortened by Wolf Lammen, 20-Jul-2021.) $)
    exp4a $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wa wi imp exp4b ) ABCDEABCDGEHFIJ $.
  $}

  ${
    exp4aOLD.1 $e |- ( ph -> ( ps -> ( ( ch /\ th ) -> ta ) ) ) $.
    $( Obsolete proof of ~ exp4a as of 20-Jul-2021.  (Contributed by NM,
       26-Apr-1994.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    exp4aOLD $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wa wi impexp syl6ib ) ABCDGEHCDEHHFCDEIJ $.
  $}

  ${
    exp4bOLD.1 $e |- ( ( ph /\ ps ) -> ( ( ch /\ th ) -> ta ) ) $.
    $( Obsolete proof of ~ exp4b as of 20-Jul-2021.  (Contributed by NM,
       26-Apr-1994.)  (Proof shortened by Wolf Lammen, 23-Nov-2012.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    exp4bOLD $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wa wi ex exp4a ) ABCDEABCDGEHFIJ $.
  $}

  ${
    exp4c.1 $e |- ( ph -> ( ( ( ps /\ ch ) /\ th ) -> ta ) ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp4c $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi wa expd ) ABCDEGABCHDEFII $.
  $}

  ${
    exp4d.1 $e |- ( ph -> ( ( ps /\ ( ch /\ th ) ) -> ta ) ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp4d $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wa expd exp4a ) ABCDEABCDGEFHI $.
  $}

  ${
    exp41.1 $e |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) -> ta ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp41 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi wa ex exp31 ) ABCDEGABHCHDEFIJ $.
  $}

  ${
    exp42.1 $e |- ( ( ( ph /\ ( ps /\ ch ) ) /\ th ) -> ta ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp42 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi wa exp31 expd ) ABCDEGABCHDEFIJ $.
  $}

  ${
    exp43.1 $e |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) -> ta ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp43 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wa ex exp4b ) ABCDEABGCDGEFHI $.
  $}

  ${
    exp44.1 $e |- ( ( ph /\ ( ( ps /\ ch ) /\ th ) ) -> ta ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp44 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi wa exp32 expd ) ABCDEGABCHDEFIJ $.
  $}

  ${
    exp45.1 $e |- ( ( ph /\ ( ps /\ ( ch /\ th ) ) ) -> ta ) $.
    $( An exportation inference.  (Contributed by NM, 26-Apr-1994.) $)
    exp45 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wa exp32 exp4a ) ABCDEABCDGEFHI $.
  $}

  ${
    expr.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Export a wff from a right conjunct.  (Contributed by Jeff Hankins,
       30-Aug-2009.) $)
    expr $p |- ( ( ph /\ ps ) -> ( ch -> th ) ) $=
      ( wi exp32 imp ) ABCDFABCDEGH $.
  $}

  ${
    exp5c.1 $e |- ( ph -> ( ( ps /\ ch ) -> ( ( th /\ ta ) -> et ) ) ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    exp5c $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wi wa exp4a expd ) ABCDEFHHABCIDEFGJK $.
  $}

  ${
    exp5j.1 $e |- ( ph -> ( ( ( ( ps /\ ch ) /\ th ) /\ ta ) -> et ) ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    exp5j $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wi wa expd exp4c ) ABCDEFHABCIDIEFGJK $.
  $}

  ${
    exp5l.1 $e |- ( ph -> ( ( ( ps /\ ch ) /\ ( th /\ ta ) ) -> et ) ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    exp5l $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wa expd exp5c ) ABCDEFABCHDEHFGIJ $.
  $}

  ${
    exp53.1 $e |- ( ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) /\ ta ) -> et ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins,
       30-Aug-2009.) $)
    exp53 $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wi wa ex exp43 ) ABCDEFHABICDIIEFGJK $.
  $}

  ${
    expl.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( Export a wff from a left conjunct.  (Contributed by Jeff Hankins,
       28-Aug-2009.) $)
    expl $p |- ( ph -> ( ( ps /\ ch ) -> th ) ) $=
      ( exp31 impd ) ABCDABCDEFG $.
  $}

  ${
    impr.1 $e |- ( ( ph /\ ps ) -> ( ch -> th ) ) $.
    $( Import a wff into a right conjunct.  (Contributed by Jeff Hankins,
       30-Aug-2009.) $)
    impr $p |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $=
      ( wi ex imp32 ) ABCDABCDFEGH $.
  $}

  ${
    impl.1 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( Export a wff from a left conjunct.  (Contributed by Mario Carneiro,
       9-Jul-2014.) $)
    impl $p |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $=
      ( expd imp31 ) ABCDABCDEFG $.
  $}

  ${
    impac.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Importation with conjunction in consequent.  (Contributed by NM,
       9-Aug-1994.) $)
    impac $p |- ( ( ph /\ ps ) -> ( ch /\ ps ) ) $=
      ( wa ancrd imp ) ABCBEABCDFG $.
  $}

  ${
    exbiri.1 $e |- ( ( ph /\ ps ) -> ( ch <-> th ) ) $.
    $( Inference form of ~ exbir .  This proof is ~ exbiriVD automatically
       translated and minimized.  (Contributed by Alan Sare, 31-Dec-2011.)
       (Proof shortened by Wolf Lammen, 27-Jan-2013.) $)
    exbiri $p |- ( ph -> ( ps -> ( th -> ch ) ) ) $=
      ( wa biimpar exp31 ) ABDCABFCDEGH $.
  $}

  ${
    pm3.26bda.1 $e |- ( ph -> ( ps <-> ( ch /\ th ) ) ) $.
    $( Deduction eliminating a conjunct.  (Contributed by NM, 22-Oct-2007.) $)
    simprbda $p |- ( ( ph /\ ps ) -> ch ) $=
      ( wa biimpa simpld ) ABFCDABCDFEGH $.

    $( Deduction eliminating a conjunct.  (Contributed by NM, 22-Oct-2007.) $)
    simplbda $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa biimpa simprd ) ABFCDABCDFEGH $.
  $}

  ${
    simplbi2.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Deduction eliminating a conjunct.  (Contributed by Alan Sare,
       31-Dec-2011.) $)
    simplbi2 $p |- ( ps -> ( ch -> ph ) ) $=
      ( wa biimpri ex ) BCAABCEDFG $.
  $}

  $( Closed form of ~ simplbi2com .  (Contributed by Alan Sare,
     22-Jul-2012.) $)
  simplbi2comt $p |- ( ( ph <-> ( ps /\ ch ) ) -> ( ch -> ( ps -> ph ) ) ) $=
    ( wa wb biimpr expcomd ) ABCDZEBCAAHFG $.

  ${
    simplbi2com.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( A deduction eliminating a conjunct, similar to ~ simplbi2 .
       (Contributed by Alan Sare, 22-Jul-2012.)  (Proof shortened by Wolf
       Lammen, 10-Nov-2012.) $)
    simplbi2com $p |- ( ch -> ( ps -> ph ) ) $=
      ( simplbi2 com12 ) BCAABCDEF $.
  $}

  ${
    simpl2im.1 $e |- ( ph -> ( ps /\ ch ) ) $.
    simpl2im.2 $e |- ( ch -> th ) $.
    $( Implication from an eliminated conjunct implied by the antecedent.
       (Contributed by BJ/AV, 5-Apr-2021.) $)
    simpl2im $p |- ( ph -> th ) $=
      ( wa simpr 3syl ) ABCGCDEBCHFI $.
  $}

  ${
    simplbiim.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    simplbiim.2 $e |- ( ch -> th ) $.
    $( Implication from an eliminated conjunct equivalent to the antecedent.
       (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) $)
    simplbiim $p |- ( ph -> th ) $=
      ( wa adantl sylbi ) ABCGDECDBFHI $.
  $}

  $( A theorem similar to the standard definition of the biconditional.
     Definition of [Margaris] p. 49.  (Contributed by NM, 24-Jan-1993.) $)
  dfbi2 $p |- ( ( ph <-> ps ) <-> ( ( ph -> ps ) /\ ( ps -> ph ) ) ) $=
    ( wb wi wn wa dfbi1 df-an bitr4i ) ABCABDZBADZEDEJKFABGJKHI $.

  $( Definition ~ df-bi rewritten in an abbreviated form to help intuitive
     understanding of that definition.  Note that it is a conjunction of two
     implications; one which asserts properties that follow from the
     biconditional and one which asserts properties that imply the
     biconditional.  (Contributed by NM, 15-Aug-2008.) $)
  dfbi $p |- ( ( ( ph <-> ps ) -> ( ( ph -> ps ) /\ ( ps -> ph ) ) )
        /\ ( ( ( ph -> ps ) /\ ( ps -> ph ) ) -> ( ph <-> ps ) ) ) $=
    ( wb wi wa dfbi2 biimpi biimpri pm3.2i ) ABCZABDBADEZDKJDJKABFZGJKLHI $.

  $( Implication in terms of biconditional and conjunction.  Theorem *4.71 of
     [WhiteheadRussell] p. 120.  (Contributed by NM, 21-Jun-1993.)  (Proof
     shortened by Wolf Lammen, 2-Dec-2012.) $)
  pm4.71 $p |- ( ( ph -> ps ) <-> ( ph <-> ( ph /\ ps ) ) ) $=
    ( wa wi wb simpl biantru anclb dfbi2 3bitr4i ) AABCZDZLKADZCABDAKEMLABFGABH
    AKIJ $.

  $( Implication in terms of biconditional and conjunction.  Theorem *4.71 of
     [WhiteheadRussell] p. 120 (with conjunct reversed).  (Contributed by NM,
     25-Jul-1999.) $)
  pm4.71r $p |- ( ( ph -> ps ) <-> ( ph <-> ( ps /\ ph ) ) ) $=
    ( wi wa wb pm4.71 ancom bibi2i bitri ) ABCAABDZEABADZEABFJKAABGHI $.

  ${
    pm4.71i.1 $e |- ( ph -> ps ) $.
    $( Inference converting an implication to a biconditional with conjunction.
       Inference from Theorem *4.71 of [WhiteheadRussell] p. 120.  (Contributed
       by NM, 4-Jan-2004.) $)
    pm4.71i $p |- ( ph <-> ( ph /\ ps ) ) $=
      ( wi wa wb pm4.71 mpbi ) ABDAABEFCABGH $.
  $}

  ${
    pm4.71ri.1 $e |- ( ph -> ps ) $.
    $( Inference converting an implication to a biconditional with conjunction.
       Inference from Theorem *4.71 of [WhiteheadRussell] p. 120 (with conjunct
       reversed).  (Contributed by NM, 1-Dec-2003.) $)
    pm4.71ri $p |- ( ph <-> ( ps /\ ph ) ) $=
      ( wi wa wb pm4.71r mpbi ) ABDABAEFCABGH $.
  $}

  ${
    pm4.71rd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction converting an implication to a biconditional with conjunction.
       Deduction from Theorem *4.71 of [WhiteheadRussell] p. 120.  (Contributed
       by Mario Carneiro, 25-Dec-2016.) $)
    pm4.71d $p |- ( ph -> ( ps <-> ( ps /\ ch ) ) ) $=
      ( wi wa wb pm4.71 sylib ) ABCEBBCFGDBCHI $.

    $( Deduction converting an implication to a biconditional with conjunction.
       Deduction from Theorem *4.71 of [WhiteheadRussell] p. 120.  (Contributed
       by NM, 10-Feb-2005.) $)
    pm4.71rd $p |- ( ph -> ( ps <-> ( ch /\ ps ) ) ) $=
      ( wi wa wb pm4.71r sylib ) ABCEBCBFGDBCHI $.
  $}

  $( Distribution of implication over biconditional.  Theorem *5.32 of
     [WhiteheadRussell] p. 125.  (Contributed by NM, 1-Aug-1994.) $)
  pm5.32 $p |- ( ( ph -> ( ps <-> ch ) ) <->
               ( ( ph /\ ps ) <-> ( ph /\ ch ) ) ) $=
    ( wb wi wn wa notbi imbi2i pm5.74 3bitri df-an bibi12i bitr4i ) ABCDZEZABFZ
    EZFZACFZEZFZDZABGZACGZDPAQTDZERUADUCOUFABCHIAQTJRUAHKUDSUEUBABLACLMN $.

  ${
    pm5.32i.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Distribution of implication over biconditional (inference rule).
       (Contributed by NM, 1-Aug-1994.) $)
    pm5.32i $p |- ( ( ph /\ ps ) <-> ( ph /\ ch ) ) $=
      ( wb wi wa pm5.32 mpbi ) ABCEFABGACGEDABCHI $.

    $( Distribution of implication over biconditional (inference rule).
       (Contributed by NM, 12-Mar-1995.) $)
    pm5.32ri $p |- ( ( ps /\ ph ) <-> ( ch /\ ph ) ) $=
      ( wa pm5.32i ancom 3bitr4i ) ABEACEBAECAEABCDFBAGCAGH $.
  $}

  ${
    pm5.32d.1 $e |- ( ph -> ( ps -> ( ch <-> th ) ) ) $.
    $( Distribution of implication over biconditional (deduction rule).
       (Contributed by NM, 29-Oct-1996.) $)
    pm5.32d $p |- ( ph -> ( ( ps /\ ch ) <-> ( ps /\ th ) ) ) $=
      ( wb wi wa pm5.32 sylib ) ABCDFGBCHBDHFEBCDIJ $.

    $( Distribution of implication over biconditional (deduction rule).
       (Contributed by NM, 25-Dec-2004.) $)
    pm5.32rd $p |- ( ph -> ( ( ch /\ ps ) <-> ( th /\ ps ) ) ) $=
      ( wa pm5.32d ancom 3bitr4g ) ABCFBDFCBFDBFABCDEGCBHDBHI $.
  $}

  ${
    pm5.32da.1 $e |- ( ( ph /\ ps ) -> ( ch <-> th ) ) $.
    $( Distribution of implication over biconditional (deduction rule).
       (Contributed by NM, 9-Dec-2006.) $)
    pm5.32da $p |- ( ph -> ( ( ps /\ ch ) <-> ( ps /\ th ) ) ) $=
      ( wb ex pm5.32d ) ABCDABCDFEGH $.
  $}

  ${
    biadan2.1 $e |- ( ph -> ps ) $.
    biadan2.2 $e |- ( ps -> ( ph <-> ch ) ) $.
    $( Add a conjunction to an equivalence.  (Contributed by Jeff Madsen,
       20-Jun-2011.) $)
    biadan2 $p |- ( ph <-> ( ps /\ ch ) ) $=
      ( wa pm4.71ri pm5.32i bitri ) ABAFBCFABDGBACEHI $.
  $}

  $( Theorem *4.24 of [WhiteheadRussell] p. 117.  (Contributed by NM,
     11-May-1993.) $)
  pm4.24 $p |- ( ph <-> ( ph /\ ph ) ) $=
    ( id pm4.71i ) AAABC $.

  $( Idempotent law for conjunction.  (Contributed by NM, 8-Jan-2004.)  (Proof
     shortened by Wolf Lammen, 14-Mar-2014.) $)
  anidm $p |- ( ( ph /\ ph ) <-> ph ) $=
    ( wa pm4.24 bicomi ) AAABACD $.

  ${
    anidms.1 $e |- ( ( ph /\ ph ) -> ps ) $.
    $( Inference from idempotent law for conjunction.  (Contributed by NM,
       15-Jun-1994.) $)
    anidms $p |- ( ph -> ps ) $=
      ( ex pm2.43i ) ABAABCDE $.
  $}

  $( Conjunction idempotence with antecedent.  (Contributed by Roy F. Longton,
     8-Aug-2005.) $)
  anidmdbi $p |- ( ( ph -> ( ps /\ ps ) ) <-> ( ph -> ps ) ) $=
    ( wa anidm imbi2i ) BBCBABDE $.

  ${
    anasss.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( Associative law for conjunction applied to antecedent (eliminates
       syllogism).  (Contributed by NM, 15-Nov-2002.) $)
    anasss $p |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $=
      ( exp31 imp32 ) ABCDABCDEFG $.
  $}

  ${
    anassrs.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Associative law for conjunction applied to antecedent (eliminates
       syllogism).  (Contributed by NM, 15-Nov-2002.) $)
    anassrs $p |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $=
      ( exp32 imp31 ) ABCDABCDEFG $.
  $}

  $( Associative law for conjunction.  Theorem *4.32 of [WhiteheadRussell]
     p. 118.  (Contributed by NM, 21-Jun-1993.)  (Proof shortened by Wolf
     Lammen, 24-Nov-2012.) $)
  anass $p |- ( ( ( ph /\ ps ) /\ ch ) <-> ( ph /\ ( ps /\ ch ) ) ) $=
    ( wa id anassrs anasss impbii ) ABDCDZABCDDZABCJJEFABCIIEGH $.

  ${
    sylanl1.1 $e |- ( ph -> ps ) $.
    sylanl1.2 $e |- ( ( ( ps /\ ch ) /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 10-Mar-2005.) $)
    sylanl1 $p |- ( ( ( ph /\ ch ) /\ th ) -> ta ) $=
      ( wa anim1i sylan ) ACHBCHDEABCFIGJ $.
  $}

  ${
    sylanl2.1 $e |- ( ph -> ch ) $.
    sylanl2.2 $e |- ( ( ( ps /\ ch ) /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 1-Jan-2005.) $)
    sylanl2 $p |- ( ( ( ps /\ ph ) /\ th ) -> ta ) $=
      ( wa anim2i sylan ) BAHBCHDEACBFIGJ $.
  $}

  ${
    sylanr1.1 $e |- ( ph -> ch ) $.
    sylanr1.2 $e |- ( ( ps /\ ( ch /\ th ) ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 9-Apr-2005.) $)
    sylanr1 $p |- ( ( ps /\ ( ph /\ th ) ) -> ta ) $=
      ( wa anim1i sylan2 ) ADHBCDHEACDFIGJ $.
  $}

  ${
    sylanr2.1 $e |- ( ph -> th ) $.
    sylanr2.2 $e |- ( ( ps /\ ( ch /\ th ) ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 9-Apr-2005.) $)
    sylanr2 $p |- ( ( ps /\ ( ch /\ ph ) ) -> ta ) $=
      ( wa anim2i sylan2 ) CAHBCDHEADCFIGJ $.
  $}

  ${
    sylani.1 $e |- ( ph -> ch ) $.
    sylani.2 $e |- ( ps -> ( ( ch /\ th ) -> ta ) ) $.
    $( A syllogism inference.  (Contributed by NM, 2-May-1996.) $)
    sylani $p |- ( ps -> ( ( ph /\ th ) -> ta ) ) $=
      ( wi a1i syland ) BACDEACHBFIGJ $.
  $}

  ${
    sylan2i.1 $e |- ( ph -> th ) $.
    sylan2i.2 $e |- ( ps -> ( ( ch /\ th ) -> ta ) ) $.
    $( A syllogism inference.  (Contributed by NM, 1-Aug-1994.) $)
    sylan2i $p |- ( ps -> ( ( ch /\ ph ) -> ta ) ) $=
      ( wi a1i sylan2d ) BADCEADHBFIGJ $.
  $}

  ${
    syl2ani.1 $e |- ( ph -> ch ) $.
    syl2ani.2 $e |- ( et -> th ) $.
    syl2ani.3 $e |- ( ps -> ( ( ch /\ th ) -> ta ) ) $.
    $( A syllogism inference.  (Contributed by NM, 3-Aug-1999.) $)
    syl2ani $p |- ( ps -> ( ( ph /\ et ) -> ta ) ) $=
      ( sylan2i sylani ) ABCFEGFBCDEHIJK $.
  $}

  ${
    sylan9.1 $e |- ( ph -> ( ps -> ch ) ) $.
    sylan9.2 $e |- ( th -> ( ch -> ta ) ) $.
    $( Nested syllogism inference conjoining dissimilar antecedents.
       (Contributed by NM, 14-May-1993.)  (Proof shortened by Andrew Salmon,
       7-May-2011.) $)
    sylan9 $p |- ( ( ph /\ th ) -> ( ps -> ta ) ) $=
      ( wi syl9 imp ) ADBEHABCDEFGIJ $.
  $}

  ${
    sylan9r.1 $e |- ( ph -> ( ps -> ch ) ) $.
    sylan9r.2 $e |- ( th -> ( ch -> ta ) ) $.
    $( Nested syllogism inference conjoining dissimilar antecedents.
       (Contributed by NM, 14-May-1993.) $)
    sylan9r $p |- ( ( th /\ ph ) -> ( ps -> ta ) ) $=
      ( wi syl9r imp ) DABEHABCDEFGIJ $.
  $}

  ${
    mtand.1 $e |- ( ph -> -. ch ) $.
    mtand.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( A modus tollens deduction.  (Contributed by Jeff Hankins,
       19-Aug-2009.) $)
    mtand $p |- ( ph -> -. ps ) $=
      ( ex mtod ) ABCDABCEFG $.
  $}

  ${
    mtord.1 $e |- ( ph -> -. ch ) $.
    mtord.2 $e |- ( ph -> -. th ) $.
    mtord.3 $e |- ( ph -> ( ps -> ( ch \/ th ) ) ) $.
    $( A modus tollens deduction involving disjunction.  (Contributed by Jeff
       Hankins, 15-Jul-2009.) $)
    mtord $p |- ( ph -> -. ps ) $=
      ( wn wo wi df-or syl6ib mpid mtod ) ABDFABCHZDEABCDIODJGCDKLMN $.
  $}

  ${
    syl2anc.1 $e |- ( ph -> ps ) $.
    syl2anc.2 $e |- ( ph -> ch ) $.
    syl2anc.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( Syllogism inference combined with contraction.  (Contributed by NM,
       16-Mar-2012.) $)
    syl2anc $p |- ( ph -> th ) $=
      ( ex sylc ) ABCDEFBCDGHI $.
  $}

  ${
    sylancl.1 $e |- ( ph -> ps ) $.
    sylancl.2 $e |- ch $.
    sylancl.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( Syllogism inference combined with modus ponens.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    sylancl $p |- ( ph -> th ) $=
      ( a1i syl2anc ) ABCDECAFHGI $.
  $}

  ${
    sylancr.1 $e |- ps $.
    sylancr.2 $e |- ( ph -> ch ) $.
    sylancr.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( Syllogism inference combined with modus ponens.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    sylancr $p |- ( ph -> th ) $=
      ( a1i syl2anc ) ABCDBAEHFGI $.
  $}

  ${
    sylanblc.1 $e |- ( ph -> ps ) $.
    sylanblc.2 $e |- ch $.
    sylanblc.3 $e |- ( ( ps /\ ch ) <-> th ) $.
    $( Syllogism inference combined with a biconditional.  (Contributed by BJ,
       25-Apr-2019.) $)
    sylanblc $p |- ( ph -> th ) $=
      ( wa biimpi sylancl ) ABCDEFBCHDGIJ $.
  $}

  ${
    sylanblrc.1 $e |- ( ph -> ps ) $.
    sylanblrc.2 $e |- ch $.
    sylanblrc.3 $e |- ( th <-> ( ps /\ ch ) ) $.
    $( Syllogism inference combined with a biconditional.  (Contributed by BJ,
       25-Apr-2019.) $)
    sylanblrc $p |- ( ph -> th ) $=
      ( wa biimpri sylancl ) ABCDEFDBCHGIJ $.
  $}

  ${
    sylanbrc.1 $e |- ( ph -> ps ) $.
    sylanbrc.2 $e |- ( ph -> ch ) $.
    sylanbrc.3 $e |- ( th <-> ( ps /\ ch ) ) $.
    $( Syllogism inference.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    sylanbrc $p |- ( ph -> th ) $=
      ( wa jca sylibr ) ABCHDABCEFIGJ $.
  $}

  ${
    sylancb.1 $e |- ( ph <-> ps ) $.
    sylancb.2 $e |- ( ph <-> ch ) $.
    sylancb.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference combined with contraction.  (Contributed by NM,
       3-Sep-2004.) $)
    sylancb $p |- ( ph -> th ) $=
      ( syl2anb anidms ) ADABCDAEFGHI $.
  $}

  ${
    sylancbr.1 $e |- ( ps <-> ph ) $.
    sylancbr.2 $e |- ( ch <-> ph ) $.
    sylancbr.3 $e |- ( ( ps /\ ch ) -> th ) $.
    $( A syllogism inference combined with contraction.  (Contributed by NM,
       3-Sep-2004.) $)
    sylancbr $p |- ( ph -> th ) $=
      ( syl2anbr anidms ) ADABCDAEFGHI $.
  $}

  ${
    sylancom.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    sylancom.2 $e |- ( ( ch /\ ps ) -> th ) $.
    $( Syllogism inference with commutation of antecedents.  (Contributed by
       NM, 2-Jul-2008.) $)
    sylancom $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa simpr syl2anc ) ABGCBDEABHFI $.
  $}

  ${
    mpdan.1 $e |- ( ph -> ps ) $.
    mpdan.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 23-May-1999.)
       (Proof shortened by Wolf Lammen, 22-Nov-2012.) $)
    mpdan $p |- ( ph -> ch ) $=
      ( id syl2anc ) AABCAFDEG $.
  $}

  ${
    mpancom.1 $e |- ( ps -> ph ) $.
    mpancom.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( An inference based on modus ponens with commutation of antecedents.
       (Contributed by NM, 28-Oct-2003.)  (Proof shortened by Wolf Lammen,
       7-Apr-2013.) $)
    mpancom $p |- ( ps -> ch ) $=
      ( id syl2anc ) BABCDBFEG $.
  $}

  ${
    mpidan.1 $e |- ( ph -> ch ) $.
    mpidan.2 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( A deduction which "stacks" a hypothesis.  (Contributed by Stanislas
       Polu, 9-Mar-2020.)  (Proof shortened by Wolf Lammen, 28-Mar-2021.) $)
    mpidan $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa adantr mpdan ) ABGCDACBEHFI $.

    $( Obsolete proof of ~ mpidan as of 28-Mar-2021.  (Contributed by Stanislas
       Polu, 9-Mar-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    hypstkdOLD $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa id adantr syl2anc ) ABGZKCDKHACBEIFJ $.
  $}

  ${
    mpan.1 $e |- ph $.
    mpan.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 30-Aug-1993.)
       (Proof shortened by Wolf Lammen, 7-Apr-2013.) $)
    mpan $p |- ( ps -> ch ) $=
      ( a1i mpancom ) ABCABDFEG $.
  $}

  ${
    mpan2.1 $e |- ps $.
    mpan2.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 16-Sep-1993.)
       (Proof shortened by Wolf Lammen, 19-Nov-2012.) $)
    mpan2 $p |- ( ph -> ch ) $=
      ( a1i mpdan ) ABCBADFEG $.
  $}

  ${
    mp2an.1 $e |- ph $.
    mp2an.2 $e |- ps $.
    mp2an.3 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       13-Apr-1995.) $)
    mp2an $p |- ch $=
      ( mpan ax-mp ) BCEABCDFGH $.
  $}

  ${
    mp4an.1 $e |- ph $.
    mp4an.2 $e |- ps $.
    mp4an.3 $e |- ch $.
    mp4an.4 $e |- th $.
    mp4an.5 $e |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by Jeff Madsen,
       15-Jun-2010.) $)
    mp4an $p |- ta $=
      ( wa pm3.2i mp2an ) ABKCDKEABFGLCDHILJM $.
  $}

  ${
    mpan2d.1 $e |- ( ph -> ch ) $.
    mpan2d.2 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( A deduction based on modus ponens.  (Contributed by NM, 12-Dec-2004.) $)
    mpan2d $p |- ( ph -> ( ps -> th ) ) $=
      ( expd mpid ) ABCDEABCDFGH $.
  $}

  ${
    mpand.1 $e |- ( ph -> ps ) $.
    mpand.2 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( A deduction based on modus ponens.  (Contributed by NM, 12-Dec-2004.)
       (Proof shortened by Wolf Lammen, 7-Apr-2013.) $)
    mpand $p |- ( ph -> ( ch -> th ) ) $=
      ( ancomsd mpan2d ) ACBDEABCDFGH $.
  $}

  ${
    mpani.1 $e |- ps $.
    mpani.2 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 10-Apr-1994.)
       (Proof shortened by Wolf Lammen, 19-Nov-2012.) $)
    mpani $p |- ( ph -> ( ch -> th ) ) $=
      ( a1i mpand ) ABCDBAEGFH $.
  $}

  ${
    mpan2i.1 $e |- ch $.
    mpan2i.2 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 10-Apr-1994.)
       (Proof shortened by Wolf Lammen, 19-Nov-2012.) $)
    mpan2i $p |- ( ph -> ( ps -> th ) ) $=
      ( a1i mpan2d ) ABCDCAEGFH $.
  $}

  ${
    mp2ani.1 $e |- ps $.
    mp2ani.2 $e |- ch $.
    mp2ani.3 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       12-Dec-2004.) $)
    mp2ani $p |- ( ph -> th ) $=
      ( mpani mpi ) ACDFABCDEGHI $.
  $}

  ${
    mp2and.1 $e |- ( ph -> ps ) $.
    mp2and.2 $e |- ( ph -> ch ) $.
    mp2and.3 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( A deduction based on modus ponens.  (Contributed by NM, 12-Dec-2004.) $)
    mp2and $p |- ( ph -> th ) $=
      ( mpand mpd ) ACDFABCDEGHI $.
  $}

  ${
    mpanl1.1 $e |- ph $.
    mpanl1.2 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 16-Aug-1994.)
       (Proof shortened by Wolf Lammen, 7-Apr-2013.) $)
    mpanl1 $p |- ( ( ps /\ ch ) -> th ) $=
      ( wa jctl sylan ) BABGCDBAEHFI $.
  $}

  ${
    mpanl2.1 $e |- ps $.
    mpanl2.2 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 16-Aug-1994.)
       (Proof shortened by Andrew Salmon, 7-May-2011.) $)
    mpanl2 $p |- ( ( ph /\ ch ) -> th ) $=
      ( wa jctr sylan ) AABGCDABEHFI $.
  $}

  ${
    mpanl12.1 $e |- ph $.
    mpanl12.2 $e |- ps $.
    mpanl12.3 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       13-Jul-2005.) $)
    mpanl12 $p |- ( ch -> th ) $=
      ( mpanl1 mpan ) BCDFABCDEGHI $.
  $}

  ${
    mpanr1.1 $e |- ps $.
    mpanr1.2 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 3-May-1994.)
       (Proof shortened by Andrew Salmon, 7-May-2011.) $)
    mpanr1 $p |- ( ( ph /\ ch ) -> th ) $=
      ( anassrs mpanl2 ) ABCDEABCDFGH $.
  $}

  ${
    mpanr2.1 $e |- ch $.
    mpanr2.2 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 3-May-1994.)
       (Proof shortened by Andrew Salmon, 7-May-2011.)  (Proof shortened by
       Wolf Lammen, 7-Apr-2013.) $)
    mpanr2 $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa jctr sylan2 ) BABCGDBCEHFI $.
  $}

  ${
    mpanr12.1 $e |- ps $.
    mpanr12.2 $e |- ch $.
    mpanr12.3 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       24-Jul-2009.) $)
    mpanr12 $p |- ( ph -> th ) $=
      ( mpanr1 mpan2 ) ACDFABCDEGHI $.
  $}

  ${
    mpanlr1.1 $e |- ps $.
    mpanlr1.2 $e |- ( ( ( ph /\ ( ps /\ ch ) ) /\ th ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 30-Dec-2004.)
       (Proof shortened by Wolf Lammen, 7-Apr-2013.) $)
    mpanlr1 $p |- ( ( ( ph /\ ch ) /\ th ) -> ta ) $=
      ( wa jctl sylanl2 ) CABCHDECBFIGJ $.
  $}

  ${
    pm5.74da.1 $e |- ( ( ph /\ ps ) -> ( ch <-> th ) ) $.
    $( Distribution of implication over biconditional (deduction rule).
       (Contributed by NM, 4-May-2007.) $)
    pm5.74da $p |- ( ph -> ( ( ps -> ch ) <-> ( ps -> th ) ) ) $=
      ( wb ex pm5.74d ) ABCDABCDFEGH $.
  $}

  $( Theorem *4.45 of [WhiteheadRussell] p. 119.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.45 $p |- ( ph <-> ( ph /\ ( ph \/ ps ) ) ) $=
    ( wo orc pm4.71i ) AABCABDE $.

  $( Distribution of implication with conjunction.  (Contributed by NM,
     31-May-1999.)  (Proof shortened by Wolf Lammen, 6-Dec-2012.) $)
  imdistan $p |- ( ( ph -> ( ps -> ch ) ) <->
                ( ( ph /\ ps ) -> ( ph /\ ch ) ) ) $=
    ( wi wa pm5.42 impexp bitr4i ) ABCDDABACEZDDABEIDABCFABIGH $.

  ${
    imdistani.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Distribution of implication with conjunction.  (Contributed by NM,
       1-Aug-1994.) $)
    imdistani $p |- ( ( ph /\ ps ) -> ( ph /\ ch ) ) $=
      ( wa anc2li imp ) ABACEABCDFG $.
  $}

  ${
    imdistanri.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Distribution of implication with conjunction.  (Contributed by NM,
       8-Jan-2002.) $)
    imdistanri $p |- ( ( ps /\ ph ) -> ( ch /\ ph ) ) $=
      ( com12 impac ) BACABCDEF $.
  $}

  ${
    imdistand.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( Distribution of implication with conjunction (deduction rule).
       (Contributed by NM, 27-Aug-2004.) $)
    imdistand $p |- ( ph -> ( ( ps /\ ch ) -> ( ps /\ th ) ) ) $=
      ( wi wa imdistan sylib ) ABCDFFBCGBDGFEBCDHI $.
  $}

  ${
    imdistanda.1 $e |- ( ( ph /\ ps ) -> ( ch -> th ) ) $.
    $( Distribution of implication with conjunction (deduction version with
       conjoined antecedent).  (Contributed by Jeff Madsen, 19-Jun-2011.) $)
    imdistanda $p |- ( ph -> ( ( ps /\ ch ) -> ( ps /\ th ) ) ) $=
      ( wi ex imdistand ) ABCDABCDFEGH $.
  $}

  ${
    anbi.1 $e |- ( ph <-> ps ) $.
    $( Introduce a left conjunct to both sides of a logical equivalence.
       (Contributed by NM, 3-Jan-1993.)  (Proof shortened by Wolf Lammen,
       16-Nov-2013.) $)
    anbi2i $p |- ( ( ch /\ ph ) <-> ( ch /\ ps ) ) $=
      ( wb a1i pm5.32i ) CABABECDFG $.

    $( Introduce a right conjunct to both sides of a logical equivalence.
       (Contributed by NM, 12-Mar-1993.)  (Proof shortened by Wolf Lammen,
       16-Nov-2013.) $)
    anbi1i $p |- ( ( ph /\ ch ) <-> ( ps /\ ch ) ) $=
      ( wb a1i pm5.32ri ) CABABECDFG $.

    $( Variant of ~ anbi2i with commutation.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.)  (Proof shortened by Andrew Salmon,
       14-Jun-2011.) $)
    anbi2ci $p |- ( ( ph /\ ch ) <-> ( ch /\ ps ) ) $=
      ( wa anbi1i ancom bitri ) ACEBCECBEABCDFBCGH $.
  $}

  ${
    anbi12.1 $e |- ( ph <-> ps ) $.
    anbi12.2 $e |- ( ch <-> th ) $.
    $( Conjoin both sides of two equivalences.  (Contributed by NM,
       12-Mar-1993.) $)
    anbi12i $p |- ( ( ph /\ ch ) <-> ( ps /\ th ) ) $=
      ( wa anbi1i anbi2i bitri ) ACGBCGBDGABCEHCDBFIJ $.

    $( Variant of ~ anbi12i with commutation.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    anbi12ci $p |- ( ( ph /\ ch ) <-> ( th /\ ps ) ) $=
      ( wa anbi12i ancom bitri ) ACGBDGDBGABCDEFHBDIJ $.
  $}

  ${
    syldanl.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    syldanl.2 $e |- ( ( ( ph /\ ch ) /\ th ) -> ta ) $.
    $( A syllogism deduction with conjoined antecedents.  (Contributed by Jeff
       Madsen, 20-Jun-2011.) $)
    syldanl $p |- ( ( ( ph /\ ps ) /\ th ) -> ta ) $=
      ( wa ex imdistani sylan ) ABHACHDEABCABCFIJGK $.
  $}

  ${
    sylan9bb.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    sylan9bb.2 $e |- ( th -> ( ch <-> ta ) ) $.
    $( Nested syllogism inference conjoining dissimilar antecedents.
       (Contributed by NM, 4-Mar-1995.) $)
    sylan9bb $p |- ( ( ph /\ th ) -> ( ps <-> ta ) ) $=
      ( wa wb adantr adantl bitrd ) ADHBCEABCIDFJDCEIAGKL $.
  $}

  ${
    sylan9bbr.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    sylan9bbr.2 $e |- ( th -> ( ch <-> ta ) ) $.
    $( Nested syllogism inference conjoining dissimilar antecedents.
       (Contributed by NM, 4-Mar-1995.) $)
    sylan9bbr $p |- ( ( th /\ ph ) -> ( ps <-> ta ) ) $=
      ( wb sylan9bb ancoms ) ADBEHABCDEFGIJ $.
  $}

  ${
    bid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction adding a left disjunct to both sides of a logical equivalence.
       (Contributed by NM, 21-Jun-1993.) $)
    orbi2d $p |- ( ph -> ( ( th \/ ps ) <-> ( th \/ ch ) ) ) $=
      ( wn wi wo imbi2d df-or 3bitr4g ) ADFZBGLCGDBHDCHABCLEIDBJDCJK $.

    $( Deduction adding a right disjunct to both sides of a logical
       equivalence.  (Contributed by NM, 21-Jun-1993.) $)
    orbi1d $p |- ( ph -> ( ( ps \/ th ) <-> ( ch \/ th ) ) ) $=
      ( wo orbi2d orcom 3bitr4g ) ADBFDCFBDFCDFABCDEGBDHCDHI $.

    $( Deduction adding a left conjunct to both sides of a logical equivalence.
       (Contributed by NM, 11-May-1993.)  (Proof shortened by Wolf Lammen,
       16-Nov-2013.) $)
    anbi2d $p |- ( ph -> ( ( th /\ ps ) <-> ( th /\ ch ) ) ) $=
      ( wb a1d pm5.32d ) ADBCABCFDEGH $.

    $( Deduction adding a right conjunct to both sides of a logical
       equivalence.  (Contributed by NM, 11-May-1993.)  (Proof shortened by
       Wolf Lammen, 16-Nov-2013.) $)
    anbi1d $p |- ( ph -> ( ( ps /\ th ) <-> ( ch /\ th ) ) ) $=
      ( wb a1d pm5.32rd ) ADBCABCFDEGH $.
  $}

  $( Theorem *4.37 of [WhiteheadRussell] p. 118.  (Contributed by NM,
     3-Jan-2005.) $)
  orbi1 $p |- ( ( ph <-> ps ) -> ( ( ph \/ ch ) <-> ( ps \/ ch ) ) ) $=
    ( wb id orbi1d ) ABDZABCGEF $.

  $( Introduce a right conjunct to both sides of a logical equivalence.
     Theorem *4.36 of [WhiteheadRussell] p. 118.  (Contributed by NM,
     3-Jan-2005.) $)
  anbi1 $p |- ( ( ph <-> ps ) -> ( ( ph /\ ch ) <-> ( ps /\ ch ) ) ) $=
    ( wb id anbi1d ) ABDZABCGEF $.

  $( Introduce a left conjunct to both sides of a logical equivalence.
     (Contributed by NM, 16-Nov-2013.) $)
  anbi2 $p |- ( ( ph <-> ps ) -> ( ( ch /\ ph ) <-> ( ch /\ ps ) ) ) $=
    ( wb id anbi2d ) ABDZABCGEF $.

  $( Theorem *4.22 of [WhiteheadRussell] p. 117.  (Contributed by NM,
     3-Jan-2005.) $)
  bitr $p |- ( ( ( ph <-> ps ) /\ ( ps <-> ch ) ) -> ( ph <-> ch ) ) $=
    ( wb bibi1 biimpar ) ABDACDBCDABCEF $.

  ${
    bi12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bi12d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction joining two equivalences to form equivalence of disjunctions.
       (Contributed by NM, 21-Jun-1993.) $)
    orbi12d $p |- ( ph -> ( ( ps \/ th ) <-> ( ch \/ ta ) ) ) $=
      ( wo orbi1d orbi2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.

    $( Deduction joining two equivalences to form equivalence of conjunctions.
       (Contributed by NM, 26-May-1993.) $)
    anbi12d $p |- ( ph -> ( ( ps /\ th ) <-> ( ch /\ ta ) ) ) $=
      ( wa anbi1d anbi2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  $( Theorem *5.3 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Andrew Salmon, 7-May-2011.) $)
  pm5.3 $p |- ( ( ( ph /\ ps ) -> ch ) <->
               ( ( ph /\ ps ) -> ( ph /\ ch ) ) ) $=
    ( wa wi impexp imdistan bitri ) ABDZCEABCEEIACDEABCFABCGH $.

  $( Theorem *5.61 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 30-Jun-2013.) $)
  pm5.61 $p |- ( ( ( ph \/ ps ) /\ -. ps ) <-> ( ph /\ -. ps ) ) $=
    ( wn wo biorf orcom syl6rbb pm5.32ri ) BCZABDZAIABADJBAEBAFGH $.

  ${
    adant2.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       4-May-1994.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    adantll $p |- ( ( ( th /\ ph ) /\ ps ) -> ch ) $=
      ( wa simpr sylan ) DAFABCDAGEH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       4-May-1994.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    adantlr $p |- ( ( ( ph /\ th ) /\ ps ) -> ch ) $=
      ( wa simpl sylan ) ADFABCADGEH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       4-May-1994.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    adantrl $p |- ( ( ph /\ ( th /\ ps ) ) -> ch ) $=
      ( wa simpr sylan2 ) DBFABCDBGEH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       4-May-1994.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    adantrr $p |- ( ( ph /\ ( ps /\ th ) ) -> ch ) $=
      ( wa simpl sylan2 ) BDFABCBDGEH $.
  $}

  ${
    adantl2.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 2-Dec-2012.) $)
    adantlll $p |- ( ( ( ( ta /\ ph ) /\ ps ) /\ ch ) -> th ) $=
      ( wa simpr sylanl1 ) EAGABCDEAHFI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantllr $p |- ( ( ( ( ph /\ ta ) /\ ps ) /\ ch ) -> th ) $=
      ( wa simpl sylanl1 ) AEGABCDAEHFI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantlrl $p |- ( ( ( ph /\ ( ta /\ ps ) ) /\ ch ) -> th ) $=
      ( wa simpr sylanl2 ) EBGABCDEBHFI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantlrr $p |- ( ( ( ph /\ ( ps /\ ta ) ) /\ ch ) -> th ) $=
      ( wa simpl sylanl2 ) BEGABCDBEHFI $.
  $}

  ${
    adantr2.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantrll $p |- ( ( ph /\ ( ( ta /\ ps ) /\ ch ) ) -> th ) $=
      ( wa simpr sylanr1 ) EBGABCDEBHFI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantrlr $p |- ( ( ph /\ ( ( ps /\ ta ) /\ ch ) ) -> th ) $=
      ( wa simpl sylanr1 ) BEGABCDBEHFI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantrrl $p |- ( ( ph /\ ( ps /\ ( ta /\ ch ) ) ) -> th ) $=
      ( wa simpr sylanr2 ) ECGABCDECHFI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       26-Dec-2004.)  (Proof shortened by Wolf Lammen, 4-Dec-2012.) $)
    adantrrr $p |- ( ( ph /\ ( ps /\ ( ch /\ ta ) ) ) -> th ) $=
      ( wa simpl sylanr2 ) CEGABCDCEHFI $.
  $}

  ${
    ad2ant.1 $e |- ( ph -> ps ) $.
    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       19-Oct-1999.)  (Proof shortened by Wolf Lammen, 20-Nov-2012.) $)
    ad2antrr $p |- ( ( ( ph /\ ch ) /\ th ) -> ps ) $=
      ( adantr adantlr ) ADBCABDEFG $.

    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       19-Oct-1999.)  (Proof shortened by Wolf Lammen, 20-Nov-2012.) $)
    ad2antlr $p |- ( ( ( ch /\ ph ) /\ th ) -> ps ) $=
      ( adantr adantll ) ADBCABDEFG $.

    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       19-Oct-1999.) $)
    ad2antrl $p |- ( ( ch /\ ( ph /\ th ) ) -> ps ) $=
      ( wa adantr adantl ) ADFBCABDEGH $.

    $( Deduction adding conjuncts to antecedent.  (Contributed by NM,
       19-Oct-1999.) $)
    ad2antll $p |- ( ( ch /\ ( th /\ ph ) ) -> ps ) $=
      ( wa adantl ) DAFBCABDEGG $.

    $( Deduction adding three conjuncts to antecedent.  (Contributed by NM,
       28-Jul-2012.) $)
    ad3antrrr $p |- ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) -> ps ) $=
      ( wa adantr ad2antrr ) ACGBDEABCFHI $.

    $( Deduction adding three conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad3antlr $p |- ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) -> ps ) $=
      ( wa ad2antlr adantr ) CAGDGBEABCDFHI $.

    $( Deduction adding 4 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad4antr $p |- ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et ) -> ps ) $=
      ( wa ad3antrrr adantr ) ACHDHEHBFABCDEGIJ $.

    $( Deduction adding 4 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad4antlr $p |- ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et ) -> ps ) $=
      ( wa ad3antlr adantr ) CAHDHEHBFABCDEGIJ $.

    $( Deduction adding 5 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad5antr $p |- ( ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et )
      /\ ze ) -> ps ) $=
      ( wa ad4antr adantr ) ACIDIEIFIBGABCDEFHJK $.

    $( Deduction adding 5 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad5antlr $p |- ( ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et )
      /\ ze ) -> ps ) $=
      ( wa ad4antlr adantr ) CAIDIEIFIBGABCDEFHJK $.

    $( Deduction adding 6 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad6antr $p |- ( ( ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) -> ps ) $=
      ( wa ad5antr adantr ) ACJDJEJFJGJBHABCDEFGIKL $.

    $( Deduction adding 6 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad6antlr $p |- ( ( ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) -> ps ) $=
      ( wa ad5antlr adantr ) CAJDJEJFJGJBHABCDEFGIKL $.

    $( Deduction adding 7 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad7antr $p |- ( ( ( ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) -> ps ) $=
      ( wa ad6antr adantr ) ACKDKEKFKGKHKBIABCDEFGHJLM $.

    $( Deduction adding 7 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad7antlr $p |- ( ( ( ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) -> ps ) $=
      ( wa ad6antlr adantr ) CAKDKEKFKGKHKBIABCDEFGHJLM $.

    $( Deduction adding 8 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad8antr $p |- ( ( ( ( ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) /\ mu ) -> ps ) $=
      ( wa ad7antr adantr ) ACLDLELFLGLHLILBJABCDEFGHIKMN $.

    $( Deduction adding 8 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad8antlr $p |- ( ( ( ( ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) /\ mu ) -> ps ) $=
      ( wa ad7antlr adantr ) CALDLELFLGLHLILBJABCDEFGHIKMN $.

    $( Deduction adding 9 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad9antr $p |- ( ( ( ( ( ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la ) -> ps ) $=
      ( wa ad8antr adantr ) ACMDMEMFMGMHMIMJMBKABCDEFGHIJLNO $.

    $( Deduction adding 9 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad9antlr $p |- ( ( ( ( ( ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la ) -> ps ) $=
      ( wa ad8antlr adantr ) CAMDMEMFMGMHMIMJMBKABCDEFGHIJLNO $.

    $( Deduction adding 10 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    ad10antr $p |- ( ( ( ( ( ( ( ( ( ( ( ph /\ ch ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la ) /\ ka ) -> ps ) $=
      ( wa ad9antr adantr ) ACNDNENFNGNHNINJNKNBLABCDEFGHIJKMOP $.

    $( Deduction adding 10 conjuncts to antecedent.  (Contributed by Mario
       Carneiro, 5-Jan-2017.) $)
    ad10antlr $p |- ( ( ( ( ( ( ( ( ( ( ( ch /\ ph ) /\ th ) /\ ta ) /\ et )
      /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la ) /\ ka ) -> ps ) $=
      ( wa ad9antlr adantr ) CANDNENFNGNHNINJNKNBLABCDEFGHIJKMOP $.
  $}

  ${
    ad2ant2.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    ad2ant2l $p |- ( ( ( th /\ ph ) /\ ( ta /\ ps ) ) -> ch ) $=
      ( wa adantrl adantll ) AEBGCDABCEFHI $.

    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    ad2ant2r $p |- ( ( ( ph /\ th ) /\ ( ps /\ ta ) ) -> ch ) $=
      ( wa adantrr adantlr ) ABEGCDABCEFHI $.

    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       23-Nov-2007.) $)
    ad2ant2lr $p |- ( ( ( th /\ ph ) /\ ( ps /\ ta ) ) -> ch ) $=
      ( wa adantrr adantll ) ABEGCDABCEFHI $.

    $( Deduction adding two conjuncts to antecedent.  (Contributed by NM,
       24-Nov-2007.) $)
    ad2ant2rl $p |- ( ( ( ph /\ th ) /\ ( ta /\ ps ) ) -> ch ) $=
      ( wa adantrl adantlr ) AEBGCDABCEFHI $.
  $}

  ${
    adantl3r.1 $e |- ( ( ( ( ph /\ rh ) /\ mu ) /\ la ) -> ka ) $.
    $( Deduction adding 1 conjunct to antecedent.  (Contributed by Thierry
       Arnoux, 11-Feb-2018.) $)
    adantl3r $p |- ( ( ( ( ( ph /\ si ) /\ rh ) /\ mu ) /\ la ) -> ka ) $=
      ( wa wi ex adantllr imp ) ABHCHDHEFACDEFIBACHDHEFGJKL $.
  $}

  ${
    adantl4r.1 $e |- ( ( ( ( ( ph /\ si ) /\ rh ) /\ mu ) /\ la ) -> ka ) $.
    $( Deduction adding 1 conjunct to antecedent.  (Contributed by Thierry
       Arnoux, 11-Feb-2018.) $)
    adantl4r $p |- ( ( ( ( ( ( ph /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la )
      -> ka ) $=
      ( wa wi ex adantl3r imp ) ABICIDIEIFGABCDEFGJACIDIEIFGHKLM $.
  $}

  ${
    adantl5r.1 $e |- ( ( ( ( ( ( ph /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la )
      -> ka ) $.
    $( Deduction adding 1 conjunct to antecedent.  (Contributed by Thierry
       Arnoux, 11-Feb-2018.) $)
    adantl5r $p |- ( ( ( ( ( ( ( ph /\ et ) /\ ze ) /\ si ) /\ rh ) /\ mu )
      /\ la ) -> ka ) $=
      ( wa wi ex adantl4r imp ) ABJCJDJEJFJGHABCDEFGHKACJDJEJFJGHILMN $.
  $}

  ${
    adantl6r.1 $e |- ( ( ( ( ( ( ( ph /\ et ) /\ ze ) /\ si ) /\ rh ) /\ mu )
      /\ la ) -> ka ) $.
    $( Deduction adding 1 conjunct to antecedent.  (Contributed by Thierry
       Arnoux, 11-Feb-2018.) $)
    adantl6r $p |- ( ( ( ( ( ( ( ( ph /\ ta ) /\ et ) /\ ze ) /\ si ) /\ rh )
      /\ mu ) /\ la ) -> ka ) $=
      ( wa wi ex adantl5r imp ) ABKCKDKEKFKGKHIABCDEFGHILACKDKEKFKGKHIJMNO $.
  $}

  $( Simplification of a conjunction.  (Contributed by NM, 18-Mar-2007.) $)
  simpll $p |- ( ( ( ph /\ ps ) /\ ch ) -> ph ) $=
    ( id ad2antrr ) AABCADE $.

  ${
    simplld.1 $e |- ( ph -> ( ( ps /\ ch ) /\ th ) ) $.
    $( Deduction form of ~ simpll , eliminating a double conjunct.
       (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
    simplld $p |- ( ph -> ps ) $=
      ( wa simpld ) ABCABCFDEGG $.
  $}

  $( Simplification of a conjunction.  (Contributed by NM, 20-Mar-2007.) $)
  simplr $p |- ( ( ( ph /\ ps ) /\ ch ) -> ps ) $=
    ( id ad2antlr ) BBACBDE $.

  ${
    simplrd.1 $e |- ( ph -> ( ( ps /\ ch ) /\ th ) ) $.
    $( Deduction eliminating a double conjunct.  (Contributed by Glauco
       Siliprandi, 11-Dec-2019.) $)
    simplrd $p |- ( ph -> ch ) $=
      ( wa simpld simprd ) ABCABCFDEGH $.
  $}

  $( Simplification of a conjunction.  (Contributed by NM, 21-Mar-2007.) $)
  simprl $p |- ( ( ph /\ ( ps /\ ch ) ) -> ps ) $=
    ( id ad2antrl ) BBACBDE $.

  ${
    simprld.1 $e |- ( ph -> ( ps /\ ( ch /\ th ) ) ) $.
    $( Deduction eliminating a double conjunct.  (Contributed by Glauco
       Siliprandi, 11-Dec-2019.) $)
    simprld $p |- ( ph -> ch ) $=
      ( wa simprd simpld ) ACDABCDFEGH $.
  $}

  $( Simplification of a conjunction.  (Contributed by NM, 21-Mar-2007.) $)
  simprr $p |- ( ( ph /\ ( ps /\ ch ) ) -> ch ) $=
    ( id ad2antll ) CCABCDE $.

  ${
    simprrd.1 $e |- ( ph -> ( ps /\ ( ch /\ th ) ) ) $.
    $( Deduction form of ~ simprr , eliminating a double conjunct.
       (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
    simprrd $p |- ( ph -> th ) $=
      ( wa simprd ) ACDABCDFEGG $.
  $}

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simplll $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) -> ph ) $=
    ( wa simpl ad2antrr ) ABEACDABFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simpllr $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) -> ps ) $=
    ( wa simpr ad2antrr ) ABEBCDABFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simplrl $p |- ( ( ( ph /\ ( ps /\ ch ) ) /\ th ) -> ps ) $=
    ( wa simpl ad2antlr ) BCEBADBCFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simplrr $p |- ( ( ( ph /\ ( ps /\ ch ) ) /\ th ) -> ch ) $=
    ( wa simpr ad2antlr ) BCECADBCFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simprll $p |- ( ( ph /\ ( ( ps /\ ch ) /\ th ) ) -> ps ) $=
    ( wa simpl ad2antrl ) BCEBADBCFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simprlr $p |- ( ( ph /\ ( ( ps /\ ch ) /\ th ) ) -> ch ) $=
    ( wa simpr ad2antrl ) BCECADBCFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simprrl $p |- ( ( ph /\ ( ps /\ ( ch /\ th ) ) ) -> ch ) $=
    ( wa simpl ad2antll ) CDECABCDFG $.

  $( Simplification of a conjunction.  (Contributed by Jeff Hankins,
     28-Jul-2009.) $)
  simprrr $p |- ( ( ph /\ ( ps /\ ( ch /\ th ) ) ) -> th ) $=
    ( wa simpr ad2antll ) CDEDABCDFG $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-4l $p |- ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta ) -> ph ) $=
    ( wa simplll adantr ) ABFCFDFAEABCDGH $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-4r $p |- ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta ) -> ps ) $=
    ( wa simpllr adantr ) ABFCFDFBEABCDGH $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-5l $p |- ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) -> ph ) $=
    ( wa simp-4l adantr ) ABGCGDGEGAFABCDEHI $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-5r $p |- ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) -> ps ) $=
    ( wa simp-4r adantr ) ABGCGDGEGBFABCDEHI $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-6l $p |- ( ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) /\ ze ) -> ph ) $=
    ( wa simp-5l adantr ) ABHCHDHEHFHAGABCDEFIJ $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-6r $p |- ( ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) /\ ze ) -> ps ) $=
    ( wa simp-5r adantr ) ABHCHDHEHFHBGABCDEFIJ $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-7l $p |- ( ( ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) /\ ze ) /\ si ) -> ph ) $=
    ( wa simp-6l adantr ) ABICIDIEIFIGIAHABCDEFGJK $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-7r $p |- ( ( ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) /\ ze ) /\ si ) -> ps ) $=
    ( wa simp-6r adantr ) ABICIDIEIFIGIBHABCDEFGJK $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-8l $p |- ( ( ( ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) /\ ze ) /\ si ) /\ rh ) -> ph ) $=
    ( wa simp-7l adantr ) ABJCJDJEJFJGJHJAIABCDEFGHKL $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-8r $p |- ( ( ( ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) /\ ze ) /\ si ) /\ rh ) -> ps ) $=
    ( wa simp-7r adantr ) ABJCJDJEJFJGJHJBIABCDEFGHKL $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-9l $p |- ( ( ( ( ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) /\ ze ) /\ si ) /\ rh ) /\ mu ) -> ph ) $=
    ( wa simp-8l adantr ) ABKCKDKEKFKGKHKIKAJABCDEFGHILM $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-9r $p |- ( ( ( ( ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) /\ ze ) /\ si ) /\ rh ) /\ mu ) -> ps ) $=
    ( wa simp-8r adantr ) ABKCKDKEKFKGKHKIKBJABCDEFGHILM $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-10l $p |- ( ( ( ( ( ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la ) -> ph ) $=
    ( wa simp-9l adantr ) ABLCLDLELFLGLHLILJLAKABCDEFGHIJMN $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-10r $p |- ( ( ( ( ( ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la ) -> ps ) $=
    ( wa simp-9r adantr ) ABLCLDLELFLGLHLILJLBKABCDEFGHIJMN $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-11l $p |- ( ( ( ( ( ( ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la ) /\ ka ) -> ph ) $=
    ( wa simp-10l adantr ) ABMCMDMEMFMGMHMIMJMKMALABCDEFGHIJKNO $.

  $( Simplification of a conjunction.  (Contributed by Mario Carneiro,
     4-Jan-2017.) $)
  simp-11r $p |- ( ( ( ( ( ( ( ( ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) /\ ta )
    /\ et ) /\ ze ) /\ si ) /\ rh ) /\ mu ) /\ la ) /\ ka ) -> ps ) $=
    ( wa simp-10r adantr ) ABMCMDMEMFMGMHMIMJMKMBLABCDEFGHIJKNO $.

  $( Disjunction of antecedents.  Compare Theorem *4.77 of [WhiteheadRussell]
     p. 121.  (Contributed by NM, 30-May-1994.)  (Proof shortened by Wolf
     Lammen, 9-Dec-2012.) $)
  jaob $p |- ( ( ( ph \/ ch ) -> ps ) <-> ( ( ph -> ps ) /\ ( ch -> ps ) ) ) $=
    ( wo wi wa pm2.67-2 olc imim1i jca pm3.44 impbii ) ACDZBEZABEZCBEZFNOPABCGC
    MBCAHIJBACKL $.

  ${
    adant423.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Obsolete as of 2-Oct-2021.  (Contributed by Glauco Siliprandi,
       11-Dec-2019.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    adant423OLD $p |- ( ( ( ( ph /\ th ) /\ ta ) /\ ps ) -> ch ) $=
      ( wa simplll sylancom ) ADGEGBACADEBHFI $.
  $}

  ${
    jaoian.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    jaoian.2 $e |- ( ( th /\ ps ) -> ch ) $.
    $( Inference disjoining the antecedents of two implications.  (Contributed
       by NM, 23-Oct-2005.) $)
    jaoian $p |- ( ( ( ph \/ th ) /\ ps ) -> ch ) $=
      ( wo wi ex jaoi imp ) ADGBCABCHDABCEIDBCFIJK $.
  $}

  ${
    jao1i.1 $e |- ( ps -> ( ch -> ph ) ) $.
    $( Add a disjunct in the antecedent of an implication.  (Contributed by
       Rodolfo Medina, 24-Sep-2010.) $)
    jao1i $p |- ( ( ph \/ ps ) -> ( ch -> ph ) ) $=
      ( wi ax-1 jaoi ) ACAEBACFDG $.
  $}

  ${
    jaodan.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    jaodan.2 $e |- ( ( ph /\ th ) -> ch ) $.
    $( Deduction disjoining the antecedents of two implications.  (Contributed
       by NM, 14-Oct-2005.) $)
    jaodan $p |- ( ( ph /\ ( ps \/ th ) ) -> ch ) $=
      ( wo ex jaod imp ) ABDGCABCDABCEHADCFHIJ $.

    jaodan.3 $e |- ( ph -> ( ps \/ th ) ) $.
    $( Eliminate a disjunction in a deduction.  A translation of natural
       deduction rule ` \/ ` E ( ` \/ ` elimination), see ~ natded .
       (Contributed by Mario Carneiro, 29-May-2016.) $)
    mpjaodan $p |- ( ph -> ch ) $=
      ( wo jaodan mpdan ) ABDHCGABCDEFIJ $.
  $}

  $( Theorem *4.77 of [WhiteheadRussell] p. 121.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.77 $p |- ( ( ( ps -> ph ) /\ ( ch -> ph ) ) <->
                ( ( ps \/ ch ) -> ph ) ) $=
    ( wo wi wa jaob bicomi ) BCDAEBAECAEFBACGH $.

  $( Theorem *2.63 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.63 $p |- ( ( ph \/ ps ) -> ( ( -. ph \/ ps ) -> ps ) ) $=
    ( wo wn pm2.53 idd jaod ) ABCZADBBABEHBFG $.

  $( Theorem *2.64 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.64 $p |- ( ( ph \/ ps ) -> ( ( ph \/ -. ps ) -> ph ) ) $=
    ( wn wo orel2 jao1i com12 ) ABCZDABDZAAHIBAEFG $.

  ${
    pm2.61ian.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    pm2.61ian.2 $e |- ( ( -. ph /\ ps ) -> ch ) $.
    $( Elimination of an antecedent.  (Contributed by NM, 1-Jan-2005.) $)
    pm2.61ian $p |- ( ps -> ch ) $=
      ( wi ex wn pm2.61i ) ABCFABCDGAHBCEGI $.
  $}

  ${
    pm2.61dan.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    pm2.61dan.2 $e |- ( ( ph /\ -. ps ) -> ch ) $.
    $( Elimination of an antecedent.  (Contributed by NM, 1-Jan-2005.) $)
    pm2.61dan $p |- ( ph -> ch ) $=
      ( ex wn pm2.61d ) ABCABCDFABGCEFH $.
  $}

  ${
    pm2.61ddan.1 $e |- ( ( ph /\ ps ) -> th ) $.
    pm2.61ddan.2 $e |- ( ( ph /\ ch ) -> th ) $.
    pm2.61ddan.3 $e |- ( ( ph /\ ( -. ps /\ -. ch ) ) -> th ) $.
    $( Elimination of two antecedents.  (Contributed by NM, 9-Jul-2013.) $)
    pm2.61ddan $p |- ( ph -> th ) $=
      ( wn wa adantlr anassrs pm2.61dan ) ABDEABHZICDACDMFJAMCHDGKLL $.
  $}

  ${
    pm2.61dda.1 $e |- ( ( ph /\ -. ps ) -> th ) $.
    pm2.61dda.2 $e |- ( ( ph /\ -. ch ) -> th ) $.
    pm2.61dda.3 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Elimination of two antecedents.  (Contributed by NM, 9-Jul-2013.) $)
    pm2.61dda $p |- ( ph -> th ) $=
      ( wa anassrs wn adantlr pm2.61dan ) ABDABHCDABCDGIACJDBFKLEL $.
  $}

  ${
    condan.1 $e |- ( ( ph /\ -. ps ) -> ch ) $.
    condan.2 $e |- ( ( ph /\ -. ps ) -> -. ch ) $.
    $( Proof by contradiction.  (Contributed by NM, 9-Feb-2006.)  (Proof
       shortened by Wolf Lammen, 19-Jun-2014.) $)
    condan $p |- ( ph -> ps ) $=
      ( wn pm2.65da notnotrd ) ABABFCDEGH $.
  $}

  $( Introduce one conjunct as an antecedent to the other.  "abai" stands for
     "and, biconditional, and, implication".  (Contributed by NM, 12-Aug-1993.)
     (Proof shortened by Wolf Lammen, 7-Dec-2012.) $)
  abai $p |- ( ( ph /\ ps ) <-> ( ph /\ ( ph -> ps ) ) ) $=
    ( wi biimt pm5.32i ) ABABCABDE $.

  $( Theorem *5.53 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.53 $p |- ( ( ( ( ph \/ ps ) \/ ch ) -> th ) <->
                ( ( ( ph -> th ) /\ ( ps -> th ) ) /\ ( ch -> th ) ) ) $=
    ( wo wi wa jaob anbi1i bitri ) ABEZCEDFKDFZCDFZGADFBDFGZMGKDCHLNMADBHIJ $.

  $( Swap two conjuncts.  Note that the first digit (1) in the label refers to
     the outer conjunct position, and the next digit (2) to the inner conjunct
     position.  (Contributed by NM, 12-Mar-1995.) $)
  an12 $p |- ( ( ph /\ ( ps /\ ch ) ) <-> ( ps /\ ( ph /\ ch ) ) ) $=
    ( wa ancom anbi1i anass 3bitr3i ) ABDZCDBADZCDABCDDBACDDIJCABEFABCGBACGH $.

  $( A rearrangement of conjuncts.  (Contributed by NM, 12-Mar-1995.)  (Proof
     shortened by Wolf Lammen, 25-Dec-2012.) $)
  an32 $p |- ( ( ( ph /\ ps ) /\ ch ) <-> ( ( ph /\ ch ) /\ ps ) ) $=
    ( wa anass an12 ancom 3bitri ) ABDCDABCDDBACDZDIBDABCEABCFBIGH $.

  $( A rearrangement of conjuncts.  (Contributed by NM, 24-Jun-2012.)  (Proof
     shortened by Wolf Lammen, 31-Dec-2012.) $)
  an13 $p |- ( ( ph /\ ( ps /\ ch ) ) <-> ( ch /\ ( ps /\ ph ) ) ) $=
    ( wa an12 anass ancom 3bitr2i ) ABCDDBACDDBADZCDCIDABCEBACFICGH $.

  $( A rearrangement of conjuncts.  (Contributed by NM, 24-Jun-2012.)  (Proof
     shortened by Wolf Lammen, 31-Dec-2012.) $)
  an31 $p |- ( ( ( ph /\ ps ) /\ ch ) <-> ( ( ch /\ ps ) /\ ph ) ) $=
    ( wa an13 anass 3bitr4i ) ABCDDCBADDABDCDCBDADABCEABCFCBAFG $.


  ${
    bianass.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( An inference to merge two lists of conjuncts.  (Contributed by Giovanni
       Mascellani, 23-May-2019.) $)
    bianass $p |- ( ( et /\ ph ) <-> ( ( et /\ ps ) /\ ch ) ) $=
      ( wa anbi2i anass bitr4i ) DAFDBCFZFDBFCFAJDEGDBCHI $.
  $}

  ${
    an12s.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Swap two conjuncts in antecedent.  The label suffix "s" means that
       ~ an12 is combined with ~ syl (or a variant).  (Contributed by NM,
       13-Mar-1996.) $)
    an12s $p |- ( ( ps /\ ( ph /\ ch ) ) -> th ) $=
      ( wa an12 sylbi ) BACFFABCFFDBACGEH $.

    $( Inference commuting a nested conjunction in antecedent.  (Contributed by
       NM, 24-May-2006.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    ancom2s $p |- ( ( ph /\ ( ch /\ ps ) ) -> th ) $=
      ( wa pm3.22 sylan2 ) CBFABCFDCBGEH $.

    $( Swap two conjuncts in antecedent.  (Contributed by NM, 31-May-2006.) $)
    an13s $p |- ( ( ch /\ ( ps /\ ph ) ) -> th ) $=
      ( exp32 com13 imp32 ) CBADABCDABCDEFGH $.
  $}

  ${
    an32s.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( Swap two conjuncts in antecedent.  (Contributed by NM, 13-Mar-1996.) $)
    an32s $p |- ( ( ( ph /\ ch ) /\ ps ) -> th ) $=
      ( wa an32 sylbi ) ACFBFABFCFDACBGEH $.

    $( Inference commuting a nested conjunction in antecedent.  (Contributed by
       NM, 24-May-2006.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    ancom1s $p |- ( ( ( ps /\ ph ) /\ ch ) -> th ) $=
      ( wa pm3.22 sylan ) BAFABFCDBAGEH $.

    $( Swap two conjuncts in antecedent.  (Contributed by NM, 31-May-2006.) $)
    an31s $p |- ( ( ( ch /\ ps ) /\ ph ) -> th ) $=
      ( exp31 com13 imp31 ) CBADABCDABCDEFGH $.
  $}

  ${
    anass1rs.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Commutative-associative law for conjunction in an antecedent.
       (Contributed by Jeff Madsen, 19-Jun-2011.) $)
    anass1rs $p |- ( ( ( ph /\ ch ) /\ ps ) -> th ) $=
      ( anassrs an32s ) ABCDABCDEFG $.
  $}

  $( Absorption into embedded conjunct.  (Contributed by NM, 4-Sep-1995.)
     (Proof shortened by Wolf Lammen, 16-Nov-2013.) $)
  anabs1 $p |- ( ( ( ph /\ ps ) /\ ph ) <-> ( ph /\ ps ) ) $=
    ( wa simpl pm4.71i bicomi ) ABCZGACGAABDEF $.

  $( Absorption into embedded conjunct.  (Contributed by NM, 20-Jul-1996.)
     (Proof shortened by Wolf Lammen, 9-Dec-2012.) $)
  anabs5 $p |- ( ( ph /\ ( ph /\ ps ) ) <-> ( ph /\ ps ) ) $=
    ( wa ibar bicomd pm5.32i ) AABCZBABGABDEF $.

  $( Absorption into embedded conjunct.  (Contributed by NM, 20-Jul-1996.)
     (Proof shortened by Wolf Lammen, 17-Nov-2013.) $)
  anabs7 $p |- ( ( ps /\ ( ph /\ ps ) ) <-> ( ph /\ ps ) ) $=
    ( wa simpr pm4.71ri bicomi ) ABCZBGCGBABDEF $.

  ${
    a2and.1 $e |- ( ph -> ( ( ps /\ rh ) -> ( ta -> th ) ) ) $.
    a2and.2 $e |- ( ph -> ( ( ps /\ rh ) -> ch ) ) $.
    $( Deduction distributing a conjunction as embedded antecedent.
       (Contributed by AV, 25-Oct-2019.)  (Proof shortened by Wolf Lammen,
       19-Jan-2020.) $)
    a2and $p |- ( ph -> ( ( ( ps /\ ch ) -> ta )
                            -> ( ( ps /\ rh ) -> th ) ) ) $=
      ( wa wi expd imdistand imp embantd ex com23 ) ABFIZBCIZEJZDAQSDJAQIREDAQR
      ABFCABFCHKLMAQEDJGMNOP $.
  $}

  ${
    anabsan.1 $e |- ( ( ( ph /\ ph ) /\ ps ) -> ch ) $.
    $( Absorption of antecedent with conjunction.  (Contributed by NM,
       24-Mar-1996.) $)
    anabsan $p |- ( ( ph /\ ps ) -> ch ) $=
      ( wa pm4.24 sylanb ) AAAEBCAFDG $.
  $}

  ${
    anabss1.1 $e |- ( ( ( ph /\ ps ) /\ ph ) -> ch ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       20-Jul-1996.)  (Proof shortened by Wolf Lammen, 31-Dec-2012.) $)
    anabss1 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( an32s anabsan ) ABCABACDEF $.
  $}

  ${
    anabss4.1 $e |- ( ( ( ps /\ ph ) /\ ps ) -> ch ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       20-Jul-1996.) $)
    anabss4 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( anabss1 ancoms ) BACBACDEF $.
  $}

  ${
    anabss5.1 $e |- ( ( ph /\ ( ph /\ ps ) ) -> ch ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       10-May-1994.)  (Proof shortened by Wolf Lammen, 1-Jan-2013.) $)
    anabss5 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( anassrs anabsan ) ABCAABCDEF $.
  $}

  ${
    anabsi5.1 $e |- ( ph -> ( ( ph /\ ps ) -> ch ) ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       11-Jun-1995.)  (Proof shortened by Wolf Lammen, 18-Nov-2013.) $)
    anabsi5 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( wa imp anabss5 ) ABCAABECDFG $.
  $}

  ${
    anabsi6.1 $e |- ( ph -> ( ( ps /\ ph ) -> ch ) ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       14-Aug-2000.) $)
    anabsi6 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( ancomsd anabsi5 ) ABCABACDEF $.
  $}

  ${
    anabsi7.1 $e |- ( ps -> ( ( ph /\ ps ) -> ch ) ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       20-Jul-1996.)  (Proof shortened by Wolf Lammen, 18-Nov-2013.) $)
    anabsi7 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( anabsi6 ancoms ) BACBACDEF $.
  $}

  ${
    anabsi8.1 $e |- ( ps -> ( ( ps /\ ph ) -> ch ) ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       26-Sep-1999.) $)
    anabsi8 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( anabsi5 ancoms ) BACBACDEF $.
  $}

  ${
    anabss7.1 $e |- ( ( ps /\ ( ph /\ ps ) ) -> ch ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       20-Jul-1996.)  (Proof shortened by Wolf Lammen, 19-Nov-2013.) $)
    anabss7 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( anassrs anabss4 ) ABCBABCDEF $.
  $}

  ${
    anabsan2.1 $e |- ( ( ph /\ ( ps /\ ps ) ) -> ch ) $.
    $( Absorption of antecedent with conjunction.  (Contributed by NM,
       10-May-2004.) $)
    anabsan2 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( an12s anabss7 ) ABCABBCDEF $.
  $}

  ${
    anabss3.1 $e |- ( ( ( ph /\ ps ) /\ ps ) -> ch ) $.
    $( Absorption of antecedent into conjunction.  (Contributed by NM,
       20-Jul-1996.)  (Proof shortened by Wolf Lammen, 1-Jan-2013.) $)
    anabss3 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( anasss anabsan2 ) ABCABBCDEF $.
  $}

  $( Rearrangement of 4 conjuncts.  (Contributed by NM, 10-Jul-1994.) $)
  an4 $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) <->
              ( ( ph /\ ch ) /\ ( ps /\ th ) ) ) $=
    ( wa an12 anbi2i anass 3bitr4i ) ABCDEZEZEACBDEZEZEABEJEACELEKMABCDFGABJHAC
    LHI $.

  $( Rearrangement of 4 conjuncts.  (Contributed by NM, 7-Feb-1996.) $)
  an42 $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) <->
                 ( ( ph /\ ch ) /\ ( th /\ ps ) ) ) $=
    ( wa an4 ancom anbi2i bitri ) ABECDEEACEZBDEZEJDBEZEABCDFKLJBDGHI $.

  $( Rearrangement of 4 conjuncts.  (Contributed by Rodolfo Medina,
     24-Sep-2010.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
  an43 $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) <->
               ( ( ph /\ th ) /\ ( ps /\ ch ) ) ) $=
    ( wa an42 bicomi ) ADEBCEEABECDEEADBCFG $.

  $( A rearrangement of conjuncts.  (Contributed by Rodolfo Medina,
     25-Sep-2010.) $)
  an3 $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) -> ( ph /\ th ) ) $=
    ( wa an43 simplbi ) ABECDEEADEBCEABCDFG $.

  ${
    an4s.1 $e |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) -> ta ) $.
    $( Inference rearranging 4 conjuncts in antecedent.  (Contributed by NM,
       10-Aug-1995.) $)
    an4s $p |- ( ( ( ph /\ ch ) /\ ( ps /\ th ) ) -> ta ) $=
      ( wa an4 sylbi ) ACGBDGGABGCDGGEACBDHFI $.
  $}

  ${
    an41r3s.1 $e |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) -> ta ) $.
    $( Inference rearranging 4 conjuncts in antecedent.  (Contributed by NM,
       10-Aug-1995.) $)
    an42s $p |- ( ( ( ph /\ ch ) /\ ( th /\ ps ) ) -> ta ) $=
      ( wa an4s ancom2s ) ACGBDEABCDEFHI $.
  $}

  $( Distribution of conjunction over conjunction.  (Contributed by NM,
     14-Aug-1995.) $)
  anandi $p |- ( ( ph /\ ( ps /\ ch ) ) <->
               ( ( ph /\ ps ) /\ ( ph /\ ch ) ) ) $=
    ( wa anidm anbi1i an4 bitr3i ) ABCDZDAADZIDABDACDDJAIAEFAABCGH $.

  $( Distribution of conjunction over conjunction.  (Contributed by NM,
     24-Aug-1995.) $)
  anandir $p |- ( ( ( ph /\ ps ) /\ ch ) <->
               ( ( ph /\ ch ) /\ ( ps /\ ch ) ) ) $=
    ( wa anidm anbi2i an4 bitr3i ) ABDZCDICCDZDACDBCDDJCICEFABCCGH $.

  ${
    anandis.1 $e |- ( ( ( ph /\ ps ) /\ ( ph /\ ch ) ) -> ta ) $.
    $( Inference that undistributes conjunction in the antecedent.
       (Contributed by NM, 7-Jun-2004.) $)
    anandis $p |- ( ( ph /\ ( ps /\ ch ) ) -> ta ) $=
      ( wa an4s anabsan ) ABCFDABACDEGH $.
  $}

  ${
    anandirs.1 $e |- ( ( ( ph /\ ch ) /\ ( ps /\ ch ) ) -> ta ) $.
    $( Inference that undistributes conjunction in the antecedent.
       (Contributed by NM, 7-Jun-2004.) $)
    anandirs $p |- ( ( ( ph /\ ps ) /\ ch ) -> ta ) $=
      ( wa an4s anabsan2 ) ABFCDACBCDEGH $.
  $}

  ${
    syl2an2.1 $e |- ( ph -> ps ) $.
    syl2an2.2 $e |- ( ( ch /\ ph ) -> th ) $.
    syl2an2.3 $e |- ( ( ps /\ th ) -> ta ) $.
    $( ~ syl2an with antecedents in standard conjunction form.  (Contributed by
       Alan Sare, 27-Aug-2016.) $)
    syl2an2 $p |- ( ( ch /\ ph ) -> ta ) $=
      ( wa syl2an anabss7 ) CAEABDECAIFGHJK $.
  $}

  ${
    syl2an2r.1 $e |- ( ph -> ps ) $.
    syl2an2r.2 $e |- ( ( ph /\ ch ) -> th ) $.
    syl2an2r.3 $e |- ( ( ps /\ th ) -> ta ) $.
    $( ~ syl2anr with antecedents in standard conjunction form.  (Contributed
       by Alan Sare, 27-Aug-2016.) $)
    syl2an2r $p |- ( ( ph /\ ch ) -> ta ) $=
      ( wa syl2an anabss5 ) ACEABDEACIFGHJK $.
  $}

  ${
    impbida.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    impbida.2 $e |- ( ( ph /\ ch ) -> ps ) $.
    $( Deduce an equivalence from two implications.  (Contributed by NM,
       17-Feb-2007.) $)
    impbida $p |- ( ph -> ( ps <-> ch ) ) $=
      ( ex impbid ) ABCABCDFACBEFG $.
  $}

  $( Theorem *3.48 of [WhiteheadRussell] p. 114.  (Contributed by NM,
     28-Jan-1997.) $)
  pm3.48 $p |- ( ( ( ph -> ps ) /\ ( ch -> th ) )
      -> ( ( ph \/ ch ) -> ( ps \/ th ) ) ) $=
    ( wi wo orc imim2i olc jaao ) ABEABDFZCDECBKABDGHDKCDBIHJ $.

  $( Theorem *3.45 (Fact) of [WhiteheadRussell] p. 113.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.45 $p |- ( ( ph -> ps ) -> ( ( ph /\ ch ) -> ( ps /\ ch ) ) ) $=
    ( wi id anim1d ) ABDZABCGEF $.

  ${
    im2an9.1 $e |- ( ph -> ( ps -> ch ) ) $.
    im2an9.2 $e |- ( th -> ( ta -> et ) ) $.
    $( Deduction joining nested implications to form implication of
       conjunctions.  (Contributed by NM, 29-Feb-1996.) $)
    im2anan9 $p |- ( ( ph /\ th ) -> ( ( ps /\ ta ) -> ( ch /\ et ) ) ) $=
      ( wa wi adantr adantl anim12d ) ADIBCEFABCJDGKDEFJAHLM $.

    $( Deduction joining nested implications to form implication of
       conjunctions.  (Contributed by NM, 29-Feb-1996.) $)
    im2anan9r $p |- ( ( th /\ ph ) -> ( ( ps /\ ta ) -> ( ch /\ et ) ) ) $=
      ( wa wi im2anan9 ancoms ) ADBEICFIJABCDEFGHKL $.
  $}

  ${
    anim12dan.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    anim12dan.2 $e |- ( ( ph /\ th ) -> ta ) $.
    $( Conjoin antecedents and consequents in a deduction.  (Contributed by
       Mario Carneiro, 12-May-2014.) $)
    anim12dan $p |- ( ( ph /\ ( ps /\ th ) ) -> ( ch /\ ta ) ) $=
      ( wa ex anim12d imp ) ABDHCEHABCDEABCFIADEGIJK $.
  $}

  ${
    orim12d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    orim12d.2 $e |- ( ph -> ( th -> ta ) ) $.
    $( Disjoin antecedents and consequents in a deduction.  (Contributed by NM,
       10-May-1994.) $)
    orim12d $p |- ( ph -> ( ( ps \/ th ) -> ( ch \/ ta ) ) ) $=
      ( wi wo pm3.48 syl2anc ) ABCHDEHBDICEIHFGBCDEJK $.
  $}

  ${
    orim1d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Disjoin antecedents and consequents in a deduction.  (Contributed by NM,
       23-Apr-1995.) $)
    orim1d $p |- ( ph -> ( ( ps \/ th ) -> ( ch \/ th ) ) ) $=
      ( idd orim12d ) ABCDDEADFG $.

    $( Disjoin antecedents and consequents in a deduction.  (Contributed by NM,
       23-Apr-1995.) $)
    orim2d $p |- ( ph -> ( ( th \/ ps ) -> ( th \/ ch ) ) ) $=
      ( idd orim12d ) ADDBCADFEG $.
  $}

  $( Axiom *1.6 (Sum) of [WhiteheadRussell] p. 97.  (Contributed by NM,
     3-Jan-2005.) $)
  orim2 $p |- ( ( ps -> ch ) -> ( ( ph \/ ps ) -> ( ph \/ ch ) ) ) $=
    ( wi id orim2d ) BCDZBCAGEF $.

  $( Theorem *2.38 of [WhiteheadRussell] p. 105.  (Contributed by NM,
     6-Mar-2008.) $)
  pm2.38 $p |- ( ( ps -> ch ) -> ( ( ps \/ ph ) -> ( ch \/ ph ) ) ) $=
    ( wi id orim1d ) BCDZBCAGEF $.

  $( Theorem *2.36 of [WhiteheadRussell] p. 105.  (Contributed by NM,
     6-Mar-2008.) $)
  pm2.36 $p |- ( ( ps -> ch ) -> ( ( ph \/ ps ) -> ( ch \/ ph ) ) ) $=
    ( wo wi pm1.4 pm2.38 syl5 ) ABDBADBCECADABFABCGH $.

  $( Theorem *2.37 of [WhiteheadRussell] p. 105.  (Contributed by NM,
     6-Mar-2008.) $)
  pm2.37 $p |- ( ( ps -> ch ) -> ( ( ps \/ ph ) -> ( ph \/ ch ) ) ) $=
    ( wi wo pm2.38 pm1.4 syl6 ) BCDBAECAEACEABCFCAGH $.

  $( Theorem *2.73 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.73 $p |- ( ( ph -> ps )
       -> ( ( ( ph \/ ps ) \/ ch ) -> ( ps \/ ch ) ) ) $=
    ( wi wo pm2.621 orim1d ) ABDABEBCABFG $.

  $( Theorem *2.74 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Andrew Salmon, 7-May-2011.) $)
  pm2.74 $p |- ( ( ps -> ph )
      -> ( ( ( ph \/ ps ) \/ ch ) -> ( ph \/ ch ) ) ) $=
    ( wi wo orel2 ax-1 ja orim1d ) BADABEZACBAJADBAFAJGHI $.

  $( Disjunction distributes over implication.  (Contributed by Wolf Lammen,
     5-Jan-2013.) $)
  orimdi $p |- ( ( ph \/ ( ps -> ch ) )
        <-> ( ( ph \/ ps ) -> ( ph \/ ch ) ) ) $=
    ( wn wi wo imdi df-or imbi12i 3bitr4i ) ADZBCEZEKBEZKCEZEALFABFZACFZEKBCGAL
    HOMPNABHACHIJ $.

  $( Theorem *2.76 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.76 $p |- ( ( ph \/ ( ps -> ch ) )
      -> ( ( ph \/ ps ) -> ( ph \/ ch ) ) ) $=
    ( wi wo orimdi biimpi ) ABCDEABEACEDABCFG $.

  $( Theorem *2.75 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 4-Jan-2013.) $)
  pm2.75 $p |- ( ( ph \/ ps )
       -> ( ( ph \/ ( ps -> ch ) ) -> ( ph \/ ch ) ) ) $=
    ( wi wo pm2.76 com12 ) ABCDEABEACEABCFG $.

  $( Theorem *2.8 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 5-Jan-2013.) $)
  pm2.8 $p |- ( ( ph \/ ps ) -> ( ( -. ps \/ ch ) -> ( ph \/ ch ) ) ) $=
    ( wo wn pm2.53 con1d orim1d ) ABDZBEACIABABFGH $.

  $( Theorem *2.81 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.81 $p |- ( ( ps -> ( ch -> th ) )
      -> ( ( ph \/ ps ) -> ( ( ph \/ ch ) -> ( ph \/ th ) ) ) ) $=
    ( wi wo orim2 pm2.76 syl6 ) BCDEZEABFAJFACFADFEABJGACDHI $.

  $( Theorem *2.82 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.82 $p |- ( ( ( ph \/ ps ) \/ ch ) -> ( ( ( ph \/ -. ch ) \/ th )
      -> ( ( ph \/ ps ) \/ th ) ) ) $=
    ( wo wn pm2.24 orim2d jao1i orim1d ) ABEZCEACFZEZKDKCMCLBACBGHIJ $.

  $( Theorem *2.85 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 5-Jan-2013.) $)
  pm2.85 $p |- ( ( ( ph \/ ps ) -> ( ph \/ ch ) )
      -> ( ph \/ ( ps -> ch ) ) ) $=
    ( wi wo orimdi biimpri ) ABCDEABEACEDABCFG $.

  ${
    pm3.2ni.1 $e |- -. ph $.
    pm3.2ni.2 $e |- -. ps $.
    $( Infer negated disjunction of negated premises.  (Contributed by NM,
       4-Apr-1995.) $)
    pm3.2ni $p |- -. ( ph \/ ps ) $=
      ( wo id pm2.21i jaoi mto ) ABEACAABAFBADGHI $.
  $}

  $( Absorption of redundant internal disjunct.  Compare Theorem *4.45 of
     [WhiteheadRussell] p. 119.  (Contributed by NM, 21-Jun-1993.)  (Proof
     shortened by Wolf Lammen, 28-Feb-2014.) $)
  orabs $p |- ( ph <-> ( ( ph \/ ps ) /\ ph ) ) $=
    ( wo orc pm4.71ri ) AABCABDE $.

  $( Absorb a disjunct into a conjunct.  (Contributed by Roy F. Longton,
     23-Jun-2005.)  (Proof shortened by Wolf Lammen, 10-Nov-2013.) $)
  oranabs $p |- ( ( ( ph \/ -. ps ) /\ ps ) <-> ( ph /\ ps ) ) $=
    ( wn wo biortn orcom syl6rbb pm5.32ri ) BABCZDZABAIADJBAEIAFGH $.

  $( Two propositions are equivalent if they are both true.  Theorem *5.1 of
     [WhiteheadRussell] p. 123.  (Contributed by NM, 21-May-1994.) $)
  pm5.1 $p |- ( ( ph /\ ps ) -> ( ph <-> ps ) ) $=
    ( wb pm5.501 biimpa ) ABABCABDE $.

  $( Two propositions are equivalent if they are both false.  Theorem *5.21 of
     [WhiteheadRussell] p. 124.  (Contributed by NM, 21-May-1994.) $)
  pm5.21 $p |- ( ( -. ph /\ -. ps ) -> ( ph <-> ps ) ) $=
    ( wn wb pm5.21im imp ) ACBCABDABEF $.

  $( If neither of two propositions is true, then these propositions are
     equivalent.  (Contributed by BJ, 26-Apr-2019.) $)
  norbi $p |- ( -. ( ph \/ ps ) -> ( ph <-> ps ) ) $=
    ( wo orc olc pm5.21ni ) AABCBABDBAEF $.

  $( If two propositions are not equivalent, then at least one is true.
     (Contributed by BJ, 19-Apr-2019.)  (Proof shortened by Wolf Lammen,
     19-Jan-2020.) $)
  nbior $p |- ( -. ( ph <-> ps ) -> ( ph \/ ps ) ) $=
    ( wo wb norbi con1i ) ABCABDABEF $.

  $( Theorem *3.43 (Comp) of [WhiteheadRussell] p. 113.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.43 $p |- ( ( ( ph -> ps ) /\ ( ph -> ch ) )
      -> ( ph -> ( ps /\ ch ) ) ) $=
    ( wi wa pm3.43i imp ) ABDACDABCEDABCFG $.

  $( Distributive law for implication over conjunction.  Compare Theorem *4.76
     of [WhiteheadRussell] p. 121.  (Contributed by NM, 3-Apr-1994.)  (Proof
     shortened by Wolf Lammen, 27-Nov-2013.) $)
  jcab $p |- ( ( ph -> ( ps /\ ch ) )
      <-> ( ( ph -> ps ) /\ ( ph -> ch ) ) ) $=
    ( wa wi simpl imim2i simpr jca pm3.43 impbii ) ABCDZEZABEZACEZDMNOLBABCFGLC
    ABCHGIABCJK $.

  $( Distributive law for disjunction.  Theorem *4.41 of [WhiteheadRussell]
     p. 119.  (Contributed by NM, 5-Jan-1993.)  (Proof shortened by Andrew
     Salmon, 7-May-2011.)  (Proof shortened by Wolf Lammen, 28-Nov-2013.) $)
  ordi $p |- ( ( ph \/ ( ps /\ ch ) ) <-> ( ( ph \/ ps ) /\ ( ph \/ ch ) ) ) $=
    ( wn wa wi wo jcab df-or anbi12i 3bitr4i ) ADZBCEZFLBFZLCFZEAMGABGZACGZELBC
    HAMIPNQOABIACIJK $.

  $( Distributive law for disjunction.  (Contributed by NM, 12-Aug-1994.) $)
  ordir $p |- ( ( ( ph /\ ps ) \/ ch ) <->
              ( ( ph \/ ch ) /\ ( ps \/ ch ) ) ) $=
    ( wa wo ordi orcom anbi12i 3bitr4i ) CABDZECAEZCBEZDJCEACEZBCEZDCABFJCGMKNL
    ACGBCGHI $.

  $( Theorem *4.76 of [WhiteheadRussell] p. 121.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.76 $p |- ( ( ( ph -> ps ) /\ ( ph -> ch ) ) <->
                ( ph -> ( ps /\ ch ) ) ) $=
    ( wa wi jcab bicomi ) ABCDEABEACEDABCFG $.

  $( Distributive law for conjunction.  Theorem *4.4 of [WhiteheadRussell]
     p. 118.  (Contributed by NM, 21-Jun-1993.)  (Proof shortened by Wolf
     Lammen, 5-Jan-2013.) $)
  andi $p |- ( ( ph /\ ( ps \/ ch ) ) <-> ( ( ph /\ ps ) \/ ( ph /\ ch ) ) ) $=
    ( wo wa orc olc jaodan anim2i jaoi impbii ) ABCDZEZABEZACEZDZABPCNOFONGHNMO
    BLABCFICLACBGIJK $.

  $( Distributive law for conjunction.  (Contributed by NM, 12-Aug-1994.) $)
  andir $p |- ( ( ( ph \/ ps ) /\ ch ) <->
              ( ( ph /\ ch ) \/ ( ps /\ ch ) ) ) $=
    ( wo wa andi ancom orbi12i 3bitr4i ) CABDZECAEZCBEZDJCEACEZBCEZDCABFJCGMKNL
    ACGBCGHI $.

  $( Double distributive law for disjunction.  (Contributed by NM,
     12-Aug-1994.) $)
  orddi $p |- ( ( ( ph /\ ps ) \/ ( ch /\ th ) ) <->
              ( ( ( ph \/ ch ) /\ ( ph \/ th ) ) /\
              ( ( ps \/ ch ) /\ ( ps \/ th ) ) ) ) $=
    ( wa wo ordir ordi anbi12i bitri ) ABECDEZFAKFZBKFZEACFADFEZBCFBDFEZEABKGLN
    MOACDHBCDHIJ $.

  $( Double distributive law for conjunction.  (Contributed by NM,
     12-Aug-1994.) $)
  anddi $p |- ( ( ( ph \/ ps ) /\ ( ch \/ th ) ) <->
              ( ( ( ph /\ ch ) \/ ( ph /\ th ) ) \/
              ( ( ps /\ ch ) \/ ( ps /\ th ) ) ) ) $=
    ( wo wa andir andi orbi12i bitri ) ABECDEZFAKFZBKFZEACFADFEZBCFBDFEZEABKGLN
    MOACDHBCDHIJ $.

  $( Prove formula-building rules for the biconditional connective. $)

  $( Theorem *4.39 of [WhiteheadRussell] p. 118.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.39 $p |- ( ( ( ph <-> ch ) /\ ( ps <-> th ) ) ->
                ( ( ph \/ ps ) <-> ( ch \/ th ) ) ) $=
    ( wb wa simpl simpr orbi12d ) ACEZBDEZFACBDJKGJKHI $.

  $( Theorem *4.38 of [WhiteheadRussell] p. 118.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.38 $p |- ( ( ( ph <-> ch ) /\ ( ps <-> th ) ) ->
                ( ( ph /\ ps ) <-> ( ch /\ th ) ) ) $=
    ( wb wa simpl simpr anbi12d ) ACEZBDEZFACBDJKGJKHI $.

  ${
    bi2an9.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bi2an9.2 $e |- ( th -> ( ta <-> et ) ) $.
    $( Deduction joining two equivalences to form equivalence of conjunctions.
       (Contributed by NM, 31-Jul-1995.) $)
    bi2anan9 $p |- ( ( ph /\ th ) -> ( ( ps /\ ta ) <-> ( ch /\ et ) ) ) $=
      ( wa anbi1d anbi2d sylan9bb ) ABEICEIDCFIABCEGJDEFCHKL $.

    $( Deduction joining two equivalences to form equivalence of conjunctions.
       (Contributed by NM, 19-Feb-1996.) $)
    bi2anan9r $p |- ( ( th /\ ph ) -> ( ( ps /\ ta ) <-> ( ch /\ et ) ) ) $=
      ( wa wb bi2anan9 ancoms ) ADBEICFIJABCDEFGHKL $.

    $( Deduction joining two biconditionals with different antecedents.
       (Contributed by NM, 12-May-2004.) $)
    bi2bian9 $p |- ( ( ph /\ th ) -> ( ( ps <-> ta ) <-> ( ch <-> et ) ) ) $=
      ( wa wb adantr adantl bibi12d ) ADIBCEFABCJDGKDEFJAHLM $.
  $}

  $( Implication in terms of biconditional and disjunction.  Theorem *4.72 of
     [WhiteheadRussell] p. 121.  (Contributed by NM, 30-Aug-1993.)  (Proof
     shortened by Wolf Lammen, 30-Jan-2013.) $)
  pm4.72 $p |- ( ( ph -> ps ) <-> ( ps <-> ( ph \/ ps ) ) ) $=
    ( wi wo wb olc pm2.621 impbid2 orc biimpr syl5 impbii ) ABCZBABDZEZMBNBAFAB
    GHANOBABIBNJKL $.

  $( Simplify an implication between implications.  (Contributed by Paul
     Chapman, 17-Nov-2012.)  (Proof shortened by Wolf Lammen, 3-Apr-2013.) $)
  imimorb $p |- ( ( ( ps -> ch ) -> ( ph -> ch ) ) <->
                  ( ph -> ( ps \/ ch ) ) ) $=
    ( wi wo bi2.04 dfor2 imbi2i bitr4i ) BCDZACDDAJCDZDABCEZDJACFLKABCGHI $.

  $( Theorem *5.33 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.33 $p |- ( ( ph /\ ( ps -> ch ) ) <->
                ( ph /\ ( ( ph /\ ps ) -> ch ) ) ) $=
    ( wi wa ibar imbi1d pm5.32i ) ABCDABEZCDABICABFGH $.

  $( Theorem *5.36 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.36 $p |- ( ( ph /\ ( ph <-> ps ) ) <-> ( ps /\ ( ph <-> ps ) ) ) $=
    ( wb id pm5.32ri ) ABCZABFDE $.

  ${
    bianabs.1 $e |- ( ph -> ( ps <-> ( ph /\ ch ) ) ) $.
    $( Absorb a hypothesis into the second member of a biconditional.
       (Contributed by FL, 15-Feb-2007.) $)
    bianabs $p |- ( ph -> ( ps <-> ch ) ) $=
      ( wa ibar bitr4d ) ABACECDACFG $.
  $}

  $( Absorption of disjunction into equivalence.  (Contributed by NM,
     6-Aug-1995.)  (Proof shortened by Wolf Lammen, 3-Nov-2013.) $)
  oibabs $p |- ( ( ( ph \/ ps ) -> ( ph <-> ps ) ) <-> ( ph <-> ps ) ) $=
    ( wo wb wi norbi id ja ax-1 impbii ) ABCZABDZELKLLABFLGHLKIJ $.

  $( Law of noncontradiction.  Theorem *3.24 of [WhiteheadRussell] p. 111 (who
     call it the "law of contradiction").  (Contributed by NM, 16-Sep-1993.)
     (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
  pm3.24 $p |- -. ( ph /\ -. ph ) $=
    ( wi wn wa id iman mpbi ) AABAACDCAEAAFG $.

  $( Theorem *2.26 of [WhiteheadRussell] p. 104.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 23-Nov-2012.) $)
  pm2.26 $p |- ( -. ph \/ ( ( ph -> ps ) -> ps ) ) $=
    ( wi pm2.27 imori ) AABCBCABDE $.

  $( Theorem *5.11 of [WhiteheadRussell] p. 123.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.11 $p |- ( ( ph -> ps ) \/ ( -. ph -> ps ) ) $=
    ( wi wn pm2.5 orri ) ABCADBCABEF $.

  $( Theorem *5.12 of [WhiteheadRussell] p. 123.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.12 $p |- ( ( ph -> ps ) \/ ( ph -> -. ps ) ) $=
    ( wi wn pm2.51 orri ) ABCABDCABEF $.

  $( Theorem *5.14 of [WhiteheadRussell] p. 123.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.14 $p |- ( ( ph -> ps ) \/ ( ps -> ch ) ) $=
    ( wi wn ax-1 con3i pm2.21d orri ) ABDZBCDJEBCBJBAFGHI $.

  $( Theorem *5.13 of [WhiteheadRussell] p. 123.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 14-Nov-2012.) $)
  pm5.13 $p |- ( ( ph -> ps ) \/ ( ps -> ph ) ) $=
    ( pm5.14 ) ABAC $.

  $( Theorem *5.17 of [WhiteheadRussell] p. 124.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 3-Jan-2013.) $)
  pm5.17 $p |- ( ( ( ph \/ ps ) /\ -. ( ph /\ ps ) ) <-> ( ph <-> -. ps ) ) $=
    ( wn wb wi wa wo bicom dfbi2 orcom df-or bitr2i imnan anbi12i 3bitrri ) ABC
    ZDPADPAEZAPEZFABGZABFCZFAPHPAIQSRTSBAGQABJBAKLABMNO $.

  $( Theorem *5.15 of [WhiteheadRussell] p. 124.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 15-Oct-2013.) $)
  pm5.15 $p |- ( ( ph <-> ps ) \/ ( ph <-> -. ps ) ) $=
    ( wb wn xor3 biimpi orri ) ABCZABDCZHDIABEFG $.

  $( Theorem *5.16 of [WhiteheadRussell] p. 124.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 17-Oct-2013.) $)
  pm5.16 $p |- -. ( ( ph <-> ps ) /\ ( ph <-> -. ps ) ) $=
    ( wb wn wi wa pm5.18 biimpi imnan mpbi ) ABCZABDCZDZEKLFDKMABGHKLIJ $.

  $( Two ways to express "exclusive or."  Theorem *5.22 of [WhiteheadRussell]
     p. 124.  (Contributed by NM, 3-Jan-2005.)  (Proof shortened by Wolf
     Lammen, 22-Jan-2013.) $)
  xor $p |- ( -. ( ph <-> ps ) <->
                ( ( ph /\ -. ps ) \/ ( ps /\ -. ph ) ) ) $=
    ( wn wa wo wb wi iman anbi12i dfbi2 ioran 3bitr4ri con1bii ) ABCDZBACDZEZAB
    FZABGZBAGZDNCZOCZDQPCRTSUAABHBAHIABJNOKLM $.

  $( Two ways to express "exclusive or."  (Contributed by NM, 3-Jan-2005.)
     (Proof shortened by Wolf Lammen, 24-Jan-2013.) $)
  nbi2 $p |- ( -. ( ph <-> ps ) <-> ( ( ph \/ ps ) /\ -. ( ph /\ ps ) ) ) $=
    ( wb wn wo wa xor3 pm5.17 bitr4i ) ABCDABDCABEABFDFABGABHI $.

  $( Conjunction distributes over exclusive-or, using ` -. ( ph <-> ps ) ` to
     express exclusive-or.  This is one way to interpret the distributive law
     of multiplication over addition in modulo 2 arithmetic.  This is not
     necessarily true in intuitionistic logic, though ~ anxordi does hold in
     it.  (Contributed by NM, 3-Oct-2008.) $)
  xordi $p |- ( ( ph /\ -. ( ps <-> ch ) ) <->
                -. ( ( ph /\ ps ) <-> ( ph /\ ch ) ) ) $=
    ( wb wn wa wi annim pm5.32 xchbinx ) ABCDZEFAKGABFACFDAKHABCIJ $.

  $( A wff disjoined with truth is true.  (Contributed by NM, 23-May-1999.) $)
  biort $p |- ( ph -> ( ph <-> ( ph \/ ps ) ) ) $=
    ( wo orc ax-1 impbid2 ) AAABCZABDAGEF $.

  $( Theorem *5.55 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 20-Jan-2013.) $)
  pm5.55 $p |- ( ( ( ph \/ ps ) <-> ph ) \/ ( ( ph \/ ps ) <-> ps ) ) $=
    ( wo wb biort bicomd wn biorf nsyl4 con1i orri ) ABCZADZLBDZNMAMNAALABEFAGB
    LABHFIJK $.

  $( Selecting one statement from a disjunction if one of the disjuncted
     statements is false.  (Contributed by AV, 6-Sep-2018.)  (Proof shortened
     by AV, 13-Oct-2018.)  (Proof shortened by Wolf Lammen, 19-Jan-2020.) $)
  ornld $p |- ( ph -> ( ( ( ph -> ( th \/ ta ) ) /\ -. th ) -> ta ) ) $=
    ( wo wi wn wa pm3.35 ord expimpd ) AABCDZEZBFCALGBCAKHIJ $.

  ${
    pm5.21nd.1 $e |- ( ( ph /\ ps ) -> th ) $.
    pm5.21nd.2 $e |- ( ( ph /\ ch ) -> th ) $.
    pm5.21nd.3 $e |- ( th -> ( ps <-> ch ) ) $.
    $( Eliminate an antecedent implied by each side of a biconditional.
       (Contributed by NM, 20-Nov-2005.)  (Proof shortened by Wolf Lammen,
       4-Nov-2013.) $)
    pm5.21nd $p |- ( ph -> ( ps <-> ch ) ) $=
      ( ex wb wi a1i pm5.21ndd ) ADBCABDEHACDFHDBCIJAGKL $.
  $}

  $( Theorem *5.35 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.35 $p |- ( ( ( ph -> ps ) /\ ( ph -> ch ) ) ->
                ( ph -> ( ps <-> ch ) ) ) $=
    ( wi wa pm5.1 pm5.74rd ) ABDZACDZEABCHIFG $.

  $( Theorem *5.54 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 7-Nov-2013.) $)
  pm5.54 $p |- ( ( ( ph /\ ps ) <-> ph ) \/ ( ( ph /\ ps ) <-> ps ) ) $=
    ( wa wb iba bicomd adantl pm5.21ni orri ) ABCZADZJBDJKBBKABAJBAEFZGLHI $.

  ${
    baib.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Move conjunction outside of biconditional.  (Contributed by NM,
       13-May-1999.) $)
    baib $p |- ( ps -> ( ph <-> ch ) ) $=
      ( wa ibar syl6rbbr ) BCBCEABCFDG $.

    $( Move conjunction outside of biconditional.  (Contributed by NM,
       11-Jul-1994.) $)
    baibr $p |- ( ps -> ( ch <-> ph ) ) $=
      ( baib bicomd ) BACABCDEF $.

    $( Move conjunction outside of biconditional.  (Contributed by Mario
       Carneiro, 11-Sep-2015.)  (Proof shortened by Wolf Lammen,
       19-Jan-2020.) $)
    rbaibr $p |- ( ch -> ( ps <-> ph ) ) $=
      ( wa iba syl6bbr ) CBBCEACBFDG $.

    $( Move conjunction outside of biconditional.  (Contributed by Mario
       Carneiro, 11-Sep-2015.)  (Proof shortened by Wolf Lammen,
       19-Jan-2020.) $)
    rbaib $p |- ( ch -> ( ph <-> ps ) ) $=
      ( rbaibr bicomd ) CBAABCDEF $.
  $}

  ${
    baibd.1 $e |- ( ph -> ( ps <-> ( ch /\ th ) ) ) $.
    $( Move conjunction outside of biconditional.  (Contributed by Mario
       Carneiro, 11-Sep-2015.) $)
    baibd $p |- ( ( ph /\ ch ) -> ( ps <-> th ) ) $=
      ( wa ibar bicomd sylan9bb ) ABCDFZCDECDJCDGHI $.

    $( Move conjunction outside of biconditional.  (Contributed by Mario
       Carneiro, 11-Sep-2015.) $)
    rbaibd $p |- ( ( ph /\ th ) -> ( ps <-> ch ) ) $=
      ( wa iba bicomd sylan9bb ) ABCDFZDCEDCJDCGHI $.
  $}

  $( Theorem *5.44 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.44 $p |- ( ( ph -> ps ) -> ( ( ph -> ch ) <->
                ( ph -> ( ps /\ ch ) ) ) ) $=
    ( wa wi jcab baibr ) ABCDEABEACEABCFG $.

  $( Conjunction in antecedent versus disjunction in consequent.  Theorem *5.6
     of [WhiteheadRussell] p. 125.  (Contributed by NM, 8-Jun-1994.) $)
  pm5.6 $p |- ( ( ( ph /\ -. ps ) -> ch ) <-> ( ph -> ( ps \/ ch ) ) ) $=
    ( wn wa wi wo impexp df-or imbi2i bitr4i ) ABDZECFALCFZFABCGZFALCHNMABCIJK
    $.

  ${
    orcanai.1 $e |- ( ph -> ( ps \/ ch ) ) $.
    $( Change disjunction in consequent to conjunction in antecedent.
       (Contributed by NM, 8-Jun-1994.) $)
    orcanai $p |- ( ( ph /\ -. ps ) -> ch ) $=
      ( wn ord imp ) ABECABCDFG $.
  $}

  ${
    mpbiran.1 $e |- ps $.
    mpbiran.2 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Detach truth from conjunction in biconditional.  (Contributed by NM,
       27-Feb-1996.) $)
    mpbiran $p |- ( ph <-> ch ) $=
      ( wa biantrur bitr4i ) ABCFCEBCDGH $.
  $}

  ${
    mpbiran2.1 $e |- ch $.
    mpbiran2.2 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Detach truth from conjunction in biconditional.  (Contributed by NM,
       22-Feb-1996.) $)
    mpbiran2 $p |- ( ph <-> ps ) $=
      ( wa biantru bitr4i ) ABCFBECBDGH $.
  $}

  ${
    mpbir2an.1 $e |- ps $.
    mpbir2an.2 $e |- ch $.
    mpbiran2an.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Detach a conjunction of truths in a biconditional.  (Contributed by NM,
       10-May-2005.) $)
    mpbir2an $p |- ph $=
      ( mpbiran mpbir ) ACEABCDFGH $.
  $}

  ${
    mpbi2and.1 $e |- ( ph -> ps ) $.
    mpbi2and.2 $e |- ( ph -> ch ) $.
    mpbi2and.3 $e |- ( ph -> ( ( ps /\ ch ) <-> th ) ) $.
    $( Detach a conjunction of truths in a biconditional.  (Contributed by NM,
       6-Nov-2011.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    mpbi2and $p |- ( ph -> th ) $=
      ( wa jca mpbid ) ABCHDABCEFIGJ $.
  $}

  ${
    mpbir2and.1 $e |- ( ph -> ch ) $.
    mpbir2and.2 $e |- ( ph -> th ) $.
    mpbir2and.3 $e |- ( ph -> ( ps <-> ( ch /\ th ) ) ) $.
    $( Detach a conjunction of truths in a biconditional.  (Contributed by NM,
       6-Nov-2011.)  (Proof shortened by Wolf Lammen, 24-Nov-2012.) $)
    mpbir2and $p |- ( ph -> ps ) $=
      ( wa jca mpbird ) ABCDHACDEFIGJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Miscellaneous theorems of propositional calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This subsection gathers miscellaneous theorems of propositional calculus,
  including proofs by cases and other theorems with negated wffs.

$)

  $( Theorem *5.62 of [WhiteheadRussell] p. 125.  (Contributed by Roy F.
     Longton, 21-Jun-2005.) $)
  pm5.62 $p |- ( ( ( ph /\ ps ) \/ -. ps ) <-> ( ph \/ -. ps ) ) $=
    ( wa wn wo exmid ordir mpbiran2 ) ABCBDZEAIEBIEBFABIGH $.

  $( Theorem *5.63 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 25-Dec-2012.) $)
  pm5.63 $p |- ( ( ph \/ ps ) <-> ( ph \/ ( -. ph /\ ps ) ) ) $=
    ( wn wa wo exmid ordi mpbiran bicomi ) AACZBDEZABEZKAJELAFAJBGHI $.

  ${
    intnan.1 $e |- -. ph $.
    $( Introduction of conjunct inside of a contradiction.  (Contributed by NM,
       16-Sep-1993.) $)
    intnan $p |- -. ( ps /\ ph ) $=
      ( wa simpr mto ) BADACBAEF $.

    $( Introduction of conjunct inside of a contradiction.  (Contributed by NM,
       3-Apr-1995.) $)
    intnanr $p |- -. ( ph /\ ps ) $=
      ( wa simpl mto ) ABDACABEF $.
  $}

  ${
    intnand.1 $e |- ( ph -> -. ps ) $.
    $( Introduction of conjunct inside of a contradiction.  (Contributed by NM,
       10-Jul-2005.) $)
    intnand $p |- ( ph -> -. ( ch /\ ps ) ) $=
      ( wa simpr nsyl ) ABCBEDCBFG $.

    $( Introduction of conjunct inside of a contradiction.  (Contributed by NM,
       10-Jul-2005.) $)
    intnanrd $p |- ( ph -> -. ( ps /\ ch ) ) $=
      ( wa simpl nsyl ) ABBCEDBCFG $.
  $}

  ${
    niabn.1 $e |- ph $.
    $( Miscellaneous inference relating falsehoods.  (Contributed by NM,
       31-Mar-1994.) $)
    niabn $p |- ( -. ps -> ( ( ch /\ ps ) <-> -. ph ) ) $=
      ( wa wn simpr pm2.24i pm5.21ni ) CBEBAFCBGABDHI $.
  $}

  ${
    ninba.1 $e |- ph $.
    $( Miscellaneous inference relating falsehoods.  (Contributed by NM,
       31-Mar-1994.) $)
    ninba $p |- ( -. ps -> ( -. ph <-> ( ch /\ ps ) ) ) $=
      ( wn wa niabn bicomd ) BECBFAEABCDGH $.
  $}

  ${
    bianfi.1 $e |- -. ph $.
    $( A wff conjoined with falsehood is false.  (Contributed by NM,
       21-Jun-1993.)  (Proof shortened by Wolf Lammen, 26-Nov-2012.) $)
    bianfi $p |- ( ph <-> ( ps /\ ph ) ) $=
      ( wa intnan 2false ) ABADCABCEF $.
  $}

  ${
    bianfd.1 $e |- ( ph -> -. ps ) $.
    $( A wff conjoined with falsehood is false.  (Contributed by NM,
       27-Mar-1995.)  (Proof shortened by Wolf Lammen, 5-Nov-2013.) $)
    bianfd $p |- ( ph -> ( ps <-> ( ps /\ ch ) ) ) $=
      ( wa intnanrd 2falsed ) ABBCEDABCDFG $.
  $}

  $( Theorem *4.43 of [WhiteheadRussell] p. 119.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Wolf Lammen, 26-Nov-2012.) $)
  pm4.43 $p |- ( ph <-> ( ( ph \/ ps ) /\ ( ph \/ -. ps ) ) ) $=
    ( wn wa wo pm3.24 biorfi ordi bitri ) AABBCZDZEABEAJEDKABFGABJHI $.

  $( Theorem *4.82 of [WhiteheadRussell] p. 122.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.82 $p |- ( ( ( ph -> ps ) /\ ( ph -> -. ps ) ) <-> -. ph ) $=
    ( wi wn wa pm2.65 imp pm2.21 jca impbii ) ABCZABDZCZEADZKMNABFGNKMABHALHIJ
    $.

  $( Theorem *4.83 of [WhiteheadRussell] p. 122.  (Contributed by NM,
     3-Jan-2005.) $)
  pm4.83 $p |- ( ( ( ph -> ps ) /\ ( -. ph -> ps ) ) <-> ps ) $=
    ( wn wo wi wa exmid a1bi jaob bitr2i ) BAACZDZBEABEKBEFLBAGHABKIJ $.

  $( Negation inferred from embedded conjunct.  (Contributed by NM,
     20-Aug-1993.)  (Proof shortened by Wolf Lammen, 25-Nov-2012.) $)
  pclem6 $p |- ( ( ph <-> ( ps /\ -. ph ) ) -> -. ps ) $=
    ( wn wa wb ibar nbbn sylib con2i ) BABACZDZEZBJKELCBJFAKGHI $.

  $( A transitive law of equivalence.  Compare Theorem *4.22 of
     [WhiteheadRussell] p. 117.  (Contributed by NM, 18-Aug-1993.) $)
  biantr $p |- ( ( ( ph <-> ps ) /\ ( ch <-> ps ) ) -> ( ph <-> ch ) ) $=
    ( wb id bibi2d biimparc ) CBDZACDABDHCBAHEFG $.

  $( Disjunction distributes over the biconditional.  An axiom of system DS in
     Vladimir Lifschitz, "On calculational proofs" (1998),
     ~ http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.25.3384 .
     (Contributed by NM, 8-Jan-2005.)  (Proof shortened by Wolf Lammen,
     4-Feb-2013.) $)
  orbidi $p |- ( ( ph \/ ( ps <-> ch ) ) <->
                ( ( ph \/ ps ) <-> ( ph \/ ch ) ) ) $=
    ( wn wb wi wo pm5.74 df-or bibi12i 3bitr4i ) ADZBCEZFLBFZLCFZEAMGABGZACGZEL
    BCHAMIPNQOABIACIJK $.

  $( Lukasiewicz's shortest axiom for equivalential calculus.  Storrs McCall,
     ed., _Polish Logic 1920-1939_ (Oxford, 1967), p. 96.  (Contributed by NM,
     10-Jan-2005.) $)
  biluk $p |- ( ( ph <-> ps ) <-> ( ( ch <-> ps ) <-> ( ph <-> ch ) ) ) $=
    ( wb bicom bibi1i biass bitri mpbi bitr4i ) ABDZCBACDZDZDZCBDLDKCDZMDKNDOBA
    DZCDMKPCABEFBACGHKCMGICBLGJ $.

  $( Disjunction distributes over the biconditional.  Theorem *5.7 of
     [WhiteheadRussell] p. 125.  This theorem is similar to ~ orbidi .
     (Contributed by Roy F. Longton, 21-Jun-2005.) $)
  pm5.7 $p |- ( ( ( ph \/ ch ) <-> ( ps \/ ch ) ) <->
               ( ch \/ ( ph <-> ps ) ) ) $=
    ( wb wo orbidi orcom bibi12i bitr2i ) CABDECAEZCBEZDACEZBCEZDCABFJLKMCAGCBG
    HI $.

  $( Dijkstra-Scholten's Golden Rule for calculational proofs.  (Contributed by
     NM, 10-Jan-2005.) $)
  bigolden $p |- ( ( ( ph /\ ps ) <-> ph ) <-> ( ps <-> ( ph \/ ps ) ) ) $=
    ( wi wa wb wo pm4.71 pm4.72 bicom 3bitr3ri ) ABCAABDZEBABFEKAEABGABHAKIJ $.

  $( Theorem *5.71 of [WhiteheadRussell] p. 125.  (Contributed by Roy F.
     Longton, 23-Jun-2005.) $)
  pm5.71 $p |- ( ( ps -> -. ch ) -> ( ( ( ph \/ ps ) /\ ch ) <->
                ( ph /\ ch ) ) ) $=
    ( wn wo wa wb orel2 orc impbid1 anbi1d pm2.21 pm5.32rd ja ) BCDZABEZCFACFGB
    DZPACQPABAHABIJKOCPACPAGLMN $.

  $( Theorem *5.75 of [WhiteheadRussell] p. 126.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Andrew Salmon, 7-May-2011.)  (Proof
     shortened by Wolf Lammen, 23-Dec-2012.)  (Proof shortened by Kyle Wyonch,
     12-Feb-2021.) $)
  pm5.75 $p |- ( ( ( ch -> -. ps ) /\ ( ph <-> ( ps \/ ch ) ) )
      -> ( ( ph /\ -. ps ) <-> ch ) ) $=
    ( wo wb wn wa wi anbi1 biorf bicomd pm5.32ri syl6bb pm4.71 biimpi sylan9bbr
    ) ABCDZEZABFZGZCSGZCSHZCRTQSGUAAQSISQCSCQBCJKLMUBCUAUBCUAECSNOKP $.

  $( Obsolete proof of ~ pm5.75 as of 12-Feb-2021.  (Contributed by NM,
     3-Jan-2005.)  (Proof shortened by Andrew Salmon, 7-May-2011.)  (Proof
     shortened by Wolf Lammen, 23-Dec-2012.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  pm5.75OLD $p |- ( ( ( ch -> -. ps ) /\ ( ph <-> ( ps \/ ch ) ) ) ->
                ( ( ph /\ -. ps ) <-> ch ) ) $=
    ( wo wb wn wa wi anbi1 anbi1i pm5.61 syl6bb pm4.71 biimpi bicomd sylan9bbr
    orcom bitri ) ABCDZEZABFZGZCUAGZCUAHZCTUBSUAGZUCASUAIUECBDZUAGUCSUFUABCQJCB
    KRLUDCUCUDCUCECUAMNOP $.

  $( Removal of conjunct from one side of an equivalence.  (Contributed by NM,
     21-Jun-1993.) $)
  bimsc1 $p |- ( ( ( ph -> ps ) /\ ( ch <-> ( ps /\ ph ) ) )
               -> ( ch <-> ph ) ) $=
    ( wi wa wb simpr ancr impbid2 bibi2d biimpa ) ABDZCBAEZFCAFLMACLMABAGABHIJK
    $.

  ${
    ecase2d.1 $e |- ( ph -> ps ) $.
    ecase2d.2 $e |- ( ph -> -. ( ps /\ ch ) ) $.
    ecase2d.3 $e |- ( ph -> -. ( ps /\ th ) ) $.
    ecase2d.4 $e |- ( ph -> ( ta \/ ( ch \/ th ) ) ) $.
    $( Deduction for elimination by cases.  (Contributed by NM, 21-Apr-1994.)
       (Proof shortened by Wolf Lammen, 22-Dec-2012.) $)
    ecase2d $p |- ( ph -> ta ) $=
      ( wo idd wa pm2.21d mpand jaod mpjaod ) AEECDJAEKACEDABCEFABCLEGMNABDEFAB
      DLEHMNOIP $.
  $}

  ${
    ecase3.1 $e |- ( ph -> ch ) $.
    ecase3.2 $e |- ( ps -> ch ) $.
    ecase3.3 $e |- ( -. ( ph \/ ps ) -> ch ) $.
    $( Inference for elimination by cases.  (Contributed by NM, 23-Mar-1995.)
       (Proof shortened by Wolf Lammen, 26-Nov-2012.) $)
    ecase3 $p |- ch $=
      ( wo jaoi pm2.61i ) ABGCACBDEHFI $.
  $}

  ${
    ecase.1 $e |- ( -. ph -> ch ) $.
    ecase.2 $e |- ( -. ps -> ch ) $.
    ecase.3 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Inference for elimination by cases.  (Contributed by NM,
       13-Jul-2005.) $)
    ecase $p |- ch $=
      ( ex pm2.61nii ) ABCABCFGDEH $.
  $}

  ${
    ecase3d.1 $e |- ( ph -> ( ps -> th ) ) $.
    ecase3d.2 $e |- ( ph -> ( ch -> th ) ) $.
    ecase3d.3 $e |- ( ph -> ( -. ( ps \/ ch ) -> th ) ) $.
    $( Deduction for elimination by cases.  (Contributed by NM, 2-May-1996.)
       (Proof shortened by Andrew Salmon, 7-May-2011.) $)
    ecase3d $p |- ( ph -> th ) $=
      ( wo jaod pm2.61d ) ABCHDABDCEFIGJ $.
  $}

  ${
    ecased.1 $e |- ( ph -> ( -. ps -> th ) ) $.
    ecased.2 $e |- ( ph -> ( -. ch -> th ) ) $.
    ecased.3 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( Deduction for elimination by cases.  (Contributed by NM, 8-Oct-2012.) $)
    ecased $p |- ( ph -> th ) $=
      ( wn wo wa pm3.11 syl5 ecase3d ) ABHZCHZDEFNOIHBCJADBCKGLM $.
  $}

  ${
    ecase3ad.1 $e |- ( ph -> ( ps -> th ) ) $.
    ecase3ad.2 $e |- ( ph -> ( ch -> th ) ) $.
    ecase3ad.3 $e |- ( ph -> ( ( -. ps /\ -. ch ) -> th ) ) $.
    $( Deduction for elimination by cases.  (Contributed by NM,
       24-May-2013.) $)
    ecase3ad $p |- ( ph -> th ) $=
      ( wn notnotr syl5 ecased ) ABHZCHZDLHBADBIEJMHCADCIFJGK $.
  $}

  ${
    ccase.1 $e |- ( ( ph /\ ps ) -> ta ) $.
    ccase.2 $e |- ( ( ch /\ ps ) -> ta ) $.
    ccase.3 $e |- ( ( ph /\ th ) -> ta ) $.
    ccase.4 $e |- ( ( ch /\ th ) -> ta ) $.
    $( Inference for combining cases.  (Contributed by NM, 29-Jul-1999.)
       (Proof shortened by Wolf Lammen, 6-Jan-2013.) $)
    ccase $p |- ( ( ( ph \/ ch ) /\ ( ps \/ th ) ) -> ta ) $=
      ( wo jaoian jaodan ) ACJBEDABECFGKADECHIKL $.
  $}

  ${
    ccased.1 $e |- ( ph -> ( ( ps /\ ch ) -> et ) ) $.
    ccased.2 $e |- ( ph -> ( ( th /\ ch ) -> et ) ) $.
    ccased.3 $e |- ( ph -> ( ( ps /\ ta ) -> et ) ) $.
    ccased.4 $e |- ( ph -> ( ( th /\ ta ) -> et ) ) $.
    $( Deduction for combining cases.  (Contributed by NM, 9-May-2004.) $)
    ccased $p |- ( ph -> ( ( ( ps \/ th ) /\ ( ch \/ ta ) ) -> et ) ) $=
      ( wo wa wi com12 ccase ) BDKCEKLAFBCDEAFMABCLFGNADCLFHNABELFINADELFJNON
      $.
  $}

  ${
    ccase2.1 $e |- ( ( ph /\ ps ) -> ta ) $.
    ccase2.2 $e |- ( ch -> ta ) $.
    ccase2.3 $e |- ( th -> ta ) $.
    $( Inference for combining cases.  (Contributed by NM, 29-Jul-1999.) $)
    ccase2 $p |- ( ( ( ph \/ ch ) /\ ( ps \/ th ) ) -> ta ) $=
      ( adantr adantl ccase ) ABCDEFCEBGIDEAHJDECHJK $.
  $}

  ${
    4cases.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    4cases.2 $e |- ( ( ph /\ -. ps ) -> ch ) $.
    4cases.3 $e |- ( ( -. ph /\ ps ) -> ch ) $.
    4cases.4 $e |- ( ( -. ph /\ -. ps ) -> ch ) $.
    $( Inference eliminating two antecedents from the four possible cases that
       result from their true/false combinations.  (Contributed by NM,
       25-Oct-2003.) $)
    4cases $p |- ch $=
      ( pm2.61ian wn pm2.61i ) BCABCDFHABICEGHJ $.
  $}

  ${
    4casesdan.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    4casesdan.2 $e |- ( ( ph /\ ( ps /\ -. ch ) ) -> th ) $.
    4casesdan.3 $e |- ( ( ph /\ ( -. ps /\ ch ) ) -> th ) $.
    4casesdan.4 $e |- ( ( ph /\ ( -. ps /\ -. ch ) ) -> th ) $.
    $( Deduction eliminating two antecedents from the four possible cases that
       result from their true/false combinations.  (Contributed by NM,
       19-Mar-2013.) $)
    4casesdan $p |- ( ph -> th ) $=
      ( wi wa expcom wn 4cases ) BCADIABCJDEKABCLZJDFKABLZCJDGKAONJDHKM $.
  $}

  ${
    cases.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    cases.2 $e |- ( -. ph -> ( ps <-> th ) ) $.
    $( Case disjunction according to the value of ` ph ` .  (Contributed by NM,
       25-Apr-2019.) $)
    cases $p |- ( ps <-> ( ( ph /\ ch ) \/ ( -. ph /\ th ) ) ) $=
      ( wn wo wa exmid biantrur andir pm5.32i orbi12i 3bitri ) BAAGZHZBIABIZPBI
      ZHACIZPDIZHQBAJKAPBLRTSUAABCEMPBDFMNO $.
  $}

  $( Case disjunction according to the value of ` ph ` .  (Contributed by BJ,
     6-Apr-2019.)  (Proof shortened by Wolf Lammen, 2-Jan-2020.) $)
  cases2 $p |- ( ( ( ph /\ ps ) \/ ( -. ph /\ ch ) )
                                   <-> ( ( ph -> ps ) /\ ( -. ph -> ch ) ) ) $=
    ( wa wn wo wi pm3.4 pm2.24 adantr pm2.21 jaoi pm2.27 imdistani orcd adantrr
    jca olcd adantrl pm2.61ian impbii ) ABDZAEZCDZFZABGZUCCGZDZUBUHUDUBUFUGABHA
    UGBACIJQUDUFUGUCUFCABKJUCCHQLAUHUEAUFUEUGAUFDUBUDAUFBABMNOPUCUGUEUFUCUGDUDU
    BUCUGCUCCMNRSTUA $.

  $( An alternate definition of the biconditional.  Theorem *5.23 of
     [WhiteheadRussell] p. 124.  (Contributed by NM, 27-Jun-2002.)  (Proof
     shortened by Wolf Lammen, 3-Nov-2013.)  (Proof shortened by NM,
     29-Oct-2021.) $)
  dfbi3 $p |- ( ( ph <-> ps ) <-> ( ( ph /\ ps ) \/ ( -. ph /\ -. ps ) ) ) $=
    ( wi wa wn wb wo con34b anbi2i dfbi2 cases2 3bitr4i ) ABCZBACZDMAEZBEZCZDAB
    FABDOPDGNQMBAHIABJABPKL $.

  $( Obsolete proof of ~ dfbi3 as of 29-Oct-2021.  (Contributed by NM,
     27-Jun-2002.)  (Proof shortened by Wolf Lammen, 3-Nov-2013.)
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  dfbi3OLD $p |- ( ( ph <-> ps )
         <-> ( ( ph /\ ps ) \/ ( -. ph /\ -. ps ) ) ) $=
    ( wn wb wa wo xor pm5.18 notnotb anbi2i ancom orbi12i 3bitr4i ) ABCZDCANCZE
    ZNACZEZFABDABEZQNEZFANGABHSPTRBOABIJQNKLM $.

  $( Theorem *5.24 of [WhiteheadRussell] p. 124.  (Contributed by NM,
     3-Jan-2005.) $)
  pm5.24 $p |- ( -. ( ( ph /\ ps ) \/ ( -. ph /\ -. ps ) ) <->
                ( ( ph /\ -. ps ) \/ ( ps /\ -. ph ) ) ) $=
    ( wb wn wa wo xor dfbi3 xchnxbi ) ABCABDZEBADZEFABEKJEFABGABHI $.

  $( The disjunction of the four possible combinations of two wffs and their
     negations is always true.  A four-way excluded middle (see ~ exmid ).
     (Contributed by David Abernethy, 28-Jan-2014.)  (Proof shortened by NM,
     29-Oct-2021.) $)
  4exmid $p |- ( ( ( ph /\ ps ) \/ ( -. ph /\ -. ps ) )
              \/ ( ( ph /\ -. ps ) \/ ( ps /\ -. ph ) ) ) $=
    ( wa wn wo pm5.24 biimpi orri ) ABCADZBDZCEZAJCBICEZKDLABFGH $.

  $( Obsolete proof of ~ 4exmid as of 29-Oct-2021.  (Contributed by David
     Abernethy, 28-Jan-2014.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  4exmidOLD $p |- ( ( ( ph /\ ps ) \/ ( -. ph /\ -. ps ) )
              \/ ( ( ph /\ -. ps ) \/ ( ps /\ -. ph ) ) ) $=
    ( wb wn wo wa exmid dfbi3 xor orbi12i mpbi ) ABCZLDZEABFADZBDZFEZAOFBNFEZEL
    GLPMQABHABIJK $.

  $( The consensus theorem.  This theorem and its dual (with ` \/ ` and ` /\ `
     interchanged) are commonly used in computer logic design to eliminate
     redundant terms from Boolean expressions.  Specifically, we prove that the
     term ` ( ps /\ ch ) ` on the left-hand side is redundant.  (Contributed by
     NM, 16-May-2003.)  (Proof shortened by Andrew Salmon, 13-May-2011.)
     (Proof shortened by Wolf Lammen, 20-Jan-2013.) $)
  consensus $p |- ( ( ( ( ph /\ ps ) \/ ( -. ph /\ ch ) ) \/ ( ps /\ ch ) ) <->
                      ( ( ph /\ ps ) \/ ( -. ph /\ ch ) ) ) $=
    ( wa wn wo id orc adantrr olc adantrl pm2.61ian jaoi impbii ) ABDZAEZCDZFZB
    CDZFRRRSRGASRABRCOQHIPCRBQOJKLMRSHN $.

  $( Lemma for an alternate version of weak deduction theorem.  (Contributed by
     NM, 2-Apr-1994.)  (Proof shortened by Andrew Salmon, 7-May-2011.)  (Proof
     shortened by Wolf Lammen, 4-Dec-2012.) $)
  dedlem0a $p |- ( ph -> ( ps <-> ( ( ch -> ph ) -> ( ps /\ ph ) ) ) ) $=
    ( wa wi iba wb ax-1 biimt syl bitrd ) ABBADZCAEZLEZABFAMLNGACHMLIJK $.

  $( Lemma for an alternate version of weak deduction theorem.  (Contributed by
     NM, 2-Apr-1994.) $)
  dedlem0b $p |- ( -. ph -> ( ps <-> ( ( ps -> ph ) -> ( ch /\ ph ) ) ) ) $=
    ( wn wi wa pm2.21 imim2d com23 simpr imim12i con1d com12 impbid ) ADZBBAEZC
    AFZEZOPBQOAQBAQGHIROBRBABDPQABAGCAJKLMN $.

  $( Lemma for weak deduction theorem.  See also ~ ifptru .  (Contributed by
     NM, 26-Jun-2002.)  (Proof shortened by Andrew Salmon, 7-May-2011.) $)
  dedlema $p |- ( ph -> ( ps <-> ( ( ps /\ ph ) \/ ( ch /\ -. ph ) ) ) ) $=
    ( wa wn wo orc expcom wi simpl a1i pm2.24 adantld jaod impbid ) ABBADZCAEZD
    ZFZBASPRGHAPBRPBIABAJKAQBCABLMNO $.

  $( Lemma for weak deduction theorem.  See also ~ ifpfal .  (Contributed by
     NM, 15-May-1999.)  (Proof shortened by Andrew Salmon, 7-May-2011.) $)
  dedlemb $p |- ( -. ph -> ( ch <-> ( ( ps /\ ph ) \/ ( ch /\ -. ph ) ) ) ) $=
    ( wn wa wo olc expcom pm2.21 adantld wi simpl a1i jaod impbid ) ADZCBAEZCPE
    ZFZCPSRQGHPQCRPACBACIJRCKPCPLMNO $.

  $( Theorem *4.42 of [WhiteheadRussell] p. 119.  See also ~ ifpid .
     (Contributed by Roy F. Longton, 21-Jun-2005.) $)
  pm4.42 $p |- ( ph <-> ( ( ph /\ ps ) \/ ( ph /\ -. ps ) ) ) $=
    ( wa wn wo wb dedlema dedlemb pm2.61i ) BAABCABDCEFBAAGBAAHI $.

  ${
    prlem1.1 $e |- ( ph -> ( et <-> ch ) ) $.
    prlem1.2 $e |- ( ps -> -. th ) $.
    $( A specialized lemma for set theory (to derive the Axiom of Pairing).
       (Contributed by NM, 18-Oct-1995.)  (Proof shortened by Andrew Salmon,
       13-May-2011.)  (Proof shortened by Wolf Lammen, 5-Jan-2013.) $)
    prlem1 $p |- ( ph -> ( ps ->
                  ( ( ( ps /\ ch ) \/ ( th /\ ta ) ) -> et ) ) ) $=
      ( wa wo wi biimprd adantld pm2.21d adantrd jaao ex ) ABBCIZDEIZJFKARFBSAC
      FBAFCGLMBDFEBDFHNOPQ $.
  $}

  $( A specialized lemma for set theory (to derive the Axiom of Pairing).
     (Contributed by NM, 21-Jun-1993.)  (Proof shortened by Andrew Salmon,
     13-May-2011.)  (Proof shortened by Wolf Lammen, 9-Dec-2012.) $)
  prlem2 $p |- ( ( ( ph /\ ps ) \/ ( ch /\ th ) ) <->
              ( ( ph \/ ch ) /\ ( ( ph /\ ps ) \/ ( ch /\ th ) ) ) ) $=
    ( wa wo simpl orim12i pm4.71ri ) ABEZCDEZFACFJAKCABGCDGHI $.

  ${
    oplem1.1 $e |- ( ph -> ( ps \/ ch ) ) $.
    oplem1.2 $e |- ( ph -> ( th \/ ta ) ) $.
    oplem1.3 $e |- ( ps <-> th ) $.
    oplem1.4 $e |- ( ch -> ( th <-> ta ) ) $.
    $( A specialized lemma for set theory (ordered pair theorem).  (Contributed
       by NM, 18-Oct-1995.)  (Proof shortened by Wolf Lammen, 8-Dec-2012.) $)
    oplem1 $p |- ( ph -> ps ) $=
      ( wn wa notbii ord syl5bir jcad biimpar syl6 pm2.18d sylibr ) ADBADADJZCE
      KDATCETBJACBDHLABCFMNADEGMOCDEIPQRHS $.
  $}

  $( A single axiom for Boolean algebra known as DN_1.  See McCune, Veroff,
     Fitelson, Harris, Feist, Wos, Short single axioms for Boolean algebra,
     Journal of Automated Reasoning, 29(1):1--16, 2002.
     ( ~ https://www.cs.unm.edu/~~mccune/papers/basax/v12.pdf ).  (Contributed
     by Jeff Hankins, 3-Jul-2009.)  (Proof shortened by Andrew Salmon,
     13-May-2011.)  (Proof shortened by Wolf Lammen, 6-Jan-2013.) $)
  dn1 $p |- ( -. ( -. ( -. ( ph \/ ps ) \/ ch ) \/
            -. ( ph \/ -. ( -. ch \/ -. ( ch \/ th ) ) ) ) <-> ch ) $=
    ( wo wn wa wi pm2.45 imnan mpbi biorfi orcom ordir bitri pm4.45 anor orbi2i
    anbi2i 3bitrri ) CABEFZCEZACEZGZUBACFCDEZFEFZEZGUBFUGFEFCCUAAGZEZUDUHCUAAFH
    UHFABIUAAJKLUIUHCEUDCUHMUAACNOOUCUGUBCUFACCUEGUFCDPCUEQORSUBUGQT $.

  $( A closed form of ~ mpbir , analogous to ~ pm2.27 (assertion).
     (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)  (Proof shortened by Roger
     Witte, 17-Aug-2020.) $)
  bianir $p |- ( ( ph /\ ( ps <-> ph ) ) -> ps ) $=
    ( wb biimpr impcom ) BACABBADE $.

  ${
    jaoi2.1 $e |- ( ( ph \/ ( -. ph /\ ch ) ) -> ps ) $.
    $( Inference removing a negated conjunct in a disjunction of an antecedent
       if this conjunct is part of the disjunction.  (Contributed by Alexander
       van der Vekens, 3-Nov-2017.)  (Proof shortened by Wolf Lammen,
       21-Sep-2018.) $)
    jaoi2 $p |- ( ( ph \/ ch ) -> ps ) $=
      ( wo wn wa pm5.63 sylbi ) ACEAAFCGEBACHDI $.
  $}

  ${
    jaoi3.1 $e |- ( ph -> ps ) $.
    jaoi3.2 $e |- ( ( -. ph /\ ch ) -> ps ) $.
    $( Inference separating a disjunct of an antecedent.  (Contributed by
       Alexander van der Vekens, 25-May-2018.) $)
    jaoi3 $p |- ( ( ph \/ ch ) -> ps ) $=
      ( wn wa jaoi jaoi2 ) ABCABAFCGDEHI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The conditional operator for propositions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This subsection introduces the conditional operator for propositions, denoted
  by ` if- ` (see ~ df-ifp ).  It is the analogue for propositions of the
  conditional operator for classes ` if ` (see ~ df-if ).

$)

  $( Comma.  Also used later for adders, pairs, tuples, etc. $)
  $c , $.

  $( Symbol for the conditional operator for propositions. $)
  $c if- $.

  $( Extend class notation to include the conditional operator for
     propositions. $)
  wif $a wff if- ( ph , ps , ch ) $.

  $( Definition of the conditional operator for propositions.  The value of
     ` if- ( ph , ps , ch ) ` is ` ps ` if ` ph ` is true and ` ch ` if ` ph `
     false.  See ~ dfifp2 , ~ dfifp3 , ~ dfifp4 , ~ dfifp5 , ~ dfifp6 and
     ~ dfifp7 for alternate definitions.

     This definition (in the form of ~ dfifp2 ) appears in Section II.24 of
     [Church] p. 129 (Definition D12 page 132), where it is called "conditioned
     disjunction".  Church's ` [ ps , ph , ch ] ` corresponds to our
     ` if- ( ph , ps , ch ) ` (note the permutation of the first two
     variables).

     Church uses the conditional operator as an intermediate step to prove
     completeness of some systems of connectives.  The first result is that the
     system ` { if- , T. , F. } ` is complete: for the induction step, consider
     a wff with n+1 variables; single out one variable, say ` ph ` ; when one
     sets ` ph ` to True (resp.  False), then what remains is a wff of n
     variables, so by the induction hypothesis it corresponds to a formula
     using only ` { if- , T. , F. } ` , say ` ps ` (resp. ` ch ` ); therefore,
     the formula ` if- ( ph , ps , ch ) ` represents the initial wff.  Now,
     since ` { -> , -. } ` and similar systems suffice to express
     ` if- , T. , F. ` , they are also complete.

     (Contributed by BJ, 22-Jun-2019.) $)
  df-ifp $a |-
            ( if- ( ph , ps , ch ) <-> ( ( ph /\ ps ) \/ ( -. ph /\ ch ) ) ) $.

  $( Alternate definition of the conditional operator for propositions.  The
     value of ` if- ( ph , ps , ch ) ` is "if ` ph ` then ` ps ` , and if not
     ` ph ` then ` ch ` ."  This is the definition used in Section II.24 of
     [Church] p. 129 (Definition D12 page 132) (see comment of ~ df-ifp ).
     (Contributed by BJ, 22-Jun-2019.) $)
  dfifp2 $p |-
            ( if- ( ph , ps , ch ) <-> ( ( ph -> ps ) /\ ( -. ph -> ch ) ) ) $=
    ( wif wa wn wo wi df-ifp cases2 bitri ) ABCDABEAFZCEGABHLCHEABCIABCJK $.

  $( Alternate definition of the conditional operator for propositions.
     (Contributed by BJ, 30-Sep-2019.) $)
  dfifp3 $p |- ( if- ( ph , ps , ch ) <-> ( ( ph -> ps ) /\ ( ph \/ ch ) ) ) $=
    ( wif wi wn wa wo dfifp2 pm4.64 anbi2i bitri ) ABCDABEZAFCEZGMACHZGABCINOMA
    CJKL $.

  $( Alternate definition of the conditional operator for propositions.
     (Contributed by BJ, 30-Sep-2019.) $)
  dfifp4 $p |-
            ( if- ( ph , ps , ch ) <-> ( ( -. ph \/ ps ) /\ ( ph \/ ch ) ) ) $=
    ( wif wi wo wa wn dfifp3 imor anbi1i bitri ) ABCDABEZACFZGAHBFZNGABCIMONABJ
    KL $.

  $( Alternate definition of the conditional operator for propositions.
     (Contributed by BJ, 2-Oct-2019.) $)
  dfifp5 $p |-
         ( if- ( ph , ps , ch ) <-> ( ( -. ph \/ ps ) /\ ( -. ph -> ch ) ) ) $=
    ( wif wi wn wa wo dfifp2 imor anbi1i bitri ) ABCDABEZAFZCEZGNBHZOGABCIMPOAB
    JKL $.

  $( Alternate definition of the conditional operator for propositions.
     (Contributed by BJ, 2-Oct-2019.) $)
  dfifp6 $p |-
            ( if- ( ph , ps , ch ) <-> ( ( ph /\ ps ) \/ -. ( ch -> ph ) ) ) $=
    ( wif wa wn wo wi df-ifp ancom annim bitri orbi2i ) ABCDABEZAFZCEZGNCAHFZGA
    BCIPQNPCOEQOCJCAKLML $.

  $( Alternate definition of the conditional operator for propositions.
     (Contributed by BJ, 2-Oct-2019.) $)
  dfifp7 $p |- ( if- ( ph , ps , ch ) <-> ( ( ch -> ph ) -> ( ph /\ ps ) ) ) $=
    ( wa wi wn wo wif orcom dfifp6 imor 3bitr4i ) ABDZCAEZFZGOMGABCHNMEMOIABCJN
    MKL $.

  $( The conditional operator is implied by the conjunction of its possible
     outputs.  Dual statement of ~ ifpor .  (Contributed by BJ,
     30-Sep-2019.) $)
  anifp $p |- ( ( ps /\ ch ) -> if- ( ph , ps , ch ) ) $=
    ( wa wn wo wif olc anim12i dfifp4 sylibr ) BCDAEZBFZACFZDABCGBMCNBLHCAHIABC
    JK $.

  $( The conditional operator implies the disjunction of its possible outputs.
     Dual statement of ~ anifp .  (Contributed by BJ, 1-Oct-2019.) $)
  ifpor $p |- ( if- ( ph , ps , ch ) -> ( ps \/ ch ) ) $=
    ( wif wa wn wo df-ifp simpr orim12i sylbi ) ABCDABEZAFZCEZGBCGABCHLBNCABIMC
    IJK $.

  $( Conditional operator for the negation of a proposition.  (Contributed by
     BJ, 30-Sep-2019.) $)
  ifpn $p |- ( if- ( ph , ps , ch ) <-> if- ( -. ph , ch , ps ) ) $=
    ( wi wn wa wif notnotb imbi1i anbi2ci dfifp2 3bitr4i ) ABDZAEZCDZFONEZBDZFA
    BCGNCBGMQOAPBAHIJABCKNCBKL $.

  $( Value of the conditional operator for propositions when its first argument
     is true.  Analogue for propositions of ~ iftrue .  This is essentially
     ~ dedlema .  (Contributed by BJ, 20-Sep-2019.)  (Proof shortened by Wolf
     Lammen, 10-Jul-2020.) $)
  ifptru $p |- ( ph -> ( if- ( ph , ps , ch ) <-> ps ) ) $=
    ( wi wif biimt wo wa orc biantrud dfifp3 syl6bbr bitr2d ) ABABDZABCEZABFANN
    ACGZHOAPNACIJABCKLM $.

  $( Value of the conditional operator for propositions when its first argument
     is false.  Analogue for propositions of ~ iffalse .  This is essentially
     ~ dedlemb .  (Contributed by BJ, 20-Sep-2019.)  (Proof shortened by Wolf
     Lammen, 25-Jun-2020.) $)
  ifpfal $p |- ( -. ph -> ( if- ( ph , ps , ch ) <-> ch ) ) $=
    ( wif wn ifpn ifptru syl5bb ) ABCDAEZCBDICABCFICBGH $.

  $( Value of the conditional operator for propositions when the same
     proposition is returned in either case.  Analogue for propositions of
     ~ ifid .  This is essentially ~ pm4.42 .  (Contributed by BJ,
     20-Sep-2019.) $)
  ifpid $p |- ( if- ( ph , ps , ps ) <-> ps ) $=
    ( wif wb ifptru ifpfal pm2.61i ) AABBCBDABBEABBFG $.

  ${
    casesifp.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    casesifp.2 $e |- ( -. ph -> ( ps <-> th ) ) $.
    $( Version of ~ cases expressed using ` if- ` .  Case disjunction according
       to the value of ` ph ` .  One can see this as a proof that the two
       hypotheses characterize the conditional operator for propositions.  For
       the converses, see ~ ifptru and ~ ifpfal .  (Contributed by BJ,
       20-Sep-2019.) $)
    casesifp $p |- ( ps <-> if- ( ph , ch , th ) ) $=
      ( wa wn wo wif cases df-ifp bitr4i ) BACGAHDGIACDJABCDEFKACDLM $.
  $}

  ${
    ifpbi123d.1 $e |- ( ph -> ( ps <-> ta ) ) $.
    ifpbi123d.2 $e |- ( ph -> ( ch <-> et ) ) $.
    ifpbi123d.3 $e |- ( ph -> ( th <-> ze ) ) $.
    $( Equality deduction for conditional operator for propositions.
       (Contributed by AV, 30-Dec-2020.) $)
    ifpbi123d $p |- ( ph -> ( if- ( ps , ch , th )
                              <-> if- ( ta , et , ze ) ) ) $=
      ( wa wn wo wif anbi12d notbid orbi12d df-ifp 3bitr4g ) ABCKZBLZDKZMEFKZEL
      ZGKZMBCDNEFGNATUCUBUEABECFHIOAUAUDDGABEHPJOQBCDREFGRS $.
  $}

  ${
    ifpimpda.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    ifpimpda.2 $e |- ( ( ph /\ -. ps ) -> th ) $.
    $( Separation of the values of the conditional operator for propositions.
       (Contributed by AV, 30-Dec-2020.)  (Proof shortened by Wolf Lammen,
       27-Feb-2021.) $)
    ifpimpda $p |- ( ph -> if- ( ps , ch , th ) ) $=
      ( wi wn wif ex dfifp2 sylanbrc ) ABCGBHZDGBCDIABCEJAMDFJBCDKL $.
  $}

  ${
    1fpid3.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( The value of the conditional operator for propositions is its third
       argument if the first and second argument imply the third argument.
       (Contributed by AV, 4-Apr-2021.) $)
    1fpid3 $p |- ( if- ( ph , ps , ch ) -> ch ) $=
      ( wif wa wn wo df-ifp simpr jaoi sylbi ) ABCEABFZAGZCFZHCABCIMCODNCJKL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The weak deduction theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This subsection contains a few results related to the weak deduction theorem.
  For more information, see the Weak Deduction Theorem page
  ~ mmdeduction.html .

$)

  ${
    elimh.1 $e |- ( ( if- ( ch , ph , ps ) <-> ph ) -> ( ch <-> ta ) ) $.
    elimh.2 $e |- ( ( if- ( ch , ph , ps ) <-> ps ) -> ( th <-> ta ) ) $.
    elimh.3 $e |- th $.
    $( Hypothesis builder for the weak deduction theorem.  For more
       information, see the Weak Deduction Theorem page ~ mmdeduction.html .
       (Contributed by NM, 26-Jun-2002.)  Revised to use the conditional
       operator.  (Revised by BJ, 30-Sep-2019.) $)
    elimh $p |- ta $=
      ( wif wb ifptru syl ibi wn ifpfal mpbii pm2.61i ) CECECCABIZAJCEJCABKFLMC
      NZDEHSRBJDEJCABOGLPQ $.
  $}

  ${
    dedt.1 $e |- ( ( if- ( ch , ph , ps ) <-> ph ) -> ( th <-> ta ) ) $.
    dedt.2 $e |- ta $.
    $( The weak deduction theorem.  For more information, see the Weak
       Deduction Theorem page ~ mmdeduction.html .  (Contributed by NM,
       26-Jun-2002.)  Revised to use the conditional operator.  (Revised by BJ,
       30-Sep-2019.) $)
    dedt $p |- ( ch -> th ) $=
      ( wif wb ifptru mpbiri syl ) CCABHAIZDCABJMDEGFKL $.
  $}

  $( Proof of ~ con3 from its associated inference ~ con3i that illustrates the
     use of the weak deduction theorem ~ dedt .  (Contributed by NM,
     27-Jun-2002.)  Revised to use the conditional operator.  (Revised by BJ,
     30-Sep-2019.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  con3ALT $p |- ( ( ph -> ps ) -> ( -. ps -> -. ph ) ) $=
    ( wi wn wif wb bicom1 notbid imbi1d imbi2d id elimh con3i dedt ) BAABCZBDZA
    DZCOBAEZDZQCRBFZPSQTBRRBGZHIARBAOAACARCTBRAUAJRAFARARAGJAKLMN $.

  ${
    elimhOLD.1 $e |- ( ( ph <-> ( ( ph /\ ch ) \/ ( ps /\ -. ch ) ) )
                     -> ( ch <-> ta ) ) $.
    elimhOLD.2 $e |- ( ( ps <-> ( ( ph /\ ch ) \/ ( ps /\ -. ch ) ) )
                     -> ( th <-> ta ) ) $.
    elimhOLD.3 $e |- th $.
    $( Old version of ~ elimh .  Obsolete as of 16-Mar-2021.  (Contributed by
       NM, 26-Jun-2002.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    elimhOLD $p |- ta $=
      ( wa wn wo wb dedlema syl ibi dedlemb mpbii pm2.61i ) CECECAACIBCJZIKZLCE
      LCABMFNOSDEHSBTLDELCABPGNQR $.
  $}

  ${
    dedtOLD.1 $e |- ( ( ph <-> ( ( ph /\ ch ) \/ ( ps /\ -. ch ) ) )
                     -> ( th <-> ta ) ) $.
    dedtOLD.2 $e |- ta $.
    $( Old version of ~ dedt .  Obsolete as of 16-Mar-2021.  (Contributed by
       NM, 26-Jun-2002.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    dedtOLD $p |- ( ch -> th ) $=
      ( wa wn wo wb dedlema mpbiri syl ) CAACHBCIHJKZDCABLODEGFMN $.
  $}

  $( Old version of ~ con3ALT .  Obsolete as of 16-Mar-2021.  (Contributed by
     NM, 27-Jun-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  con3OLD $p |- ( ( ph -> ps ) -> ( -. ps -> -. ph ) ) $=
    ( wi wn wa wo wb id notbid imbi1d imbi2d elimhOLD con3i dedtOLD ) BAABCZBDZ
    ADZCBOEAODEFZDZQCBRGZPSQTBRTHZIJARBAOAACARCTBRAUAKARGZARAUBHKAHLMN $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Abbreviated conjunction and disjunction of three wff's
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend wff definition to include three-way disjunction ('or'). $)
  w3o $a wff ( ph \/ ps \/ ch ) $.
  $( Extend wff definition to include three-way conjunction ('and'). $)
  w3a $a wff ( ph /\ ps /\ ch ) $.

  $( These abbreviations help eliminate parentheses to aid readability. $)

  $( Define disjunction ('or') of three wff's.  Definition *2.33 of
     [WhiteheadRussell] p. 105.  This abbreviation reduces the number of
     parentheses and emphasizes that the order of bracketing is not important
     by virtue of the associative law ~ orass .  (Contributed by NM,
     8-Apr-1994.) $)
  df-3or $a |- ( ( ph \/ ps \/ ch ) <-> ( ( ph \/ ps ) \/ ch ) ) $.

  $( Define conjunction ('and') of three wff's.  Definition *4.34 of
     [WhiteheadRussell] p. 118.  This abbreviation reduces the number of
     parentheses and emphasizes that the order of bracketing is not important
     by virtue of the associative law ~ anass .  (Contributed by NM,
     8-Apr-1994.) $)
  df-3an $a |- ( ( ph /\ ps /\ ch ) <-> ( ( ph /\ ps ) /\ ch ) ) $.

  $( Associative law for triple disjunction.  (Contributed by NM,
     8-Apr-1994.) $)
  3orass $p |- ( ( ph \/ ps \/ ch ) <-> ( ph \/ ( ps \/ ch ) ) ) $=
    ( w3o wo df-3or orass bitri ) ABCDABECEABCEEABCFABCGH $.

  $( Partial elimination of a triple disjunction by denial of a disjunct.
     (Contributed by Scott Fenton, 26-Mar-2011.) $)
  3orel1 $p |- ( -. ph -> ( ( ph \/ ps \/ ch ) -> ( ps \/ ch ) ) ) $=
    ( w3o wo wn 3orass orel1 syl5bi ) ABCDABCEZEAFJABCGAJHI $.

  $( Associative law for triple conjunction.  (Contributed by NM,
     8-Apr-1994.) $)
  3anass $p |- ( ( ph /\ ps /\ ch ) <-> ( ph /\ ( ps /\ ch ) ) ) $=
    ( w3a wa df-3an anass bitri ) ABCDABECEABCEEABCFABCGH $.

  $( Rotation law for triple conjunction.  (Contributed by NM, 8-Apr-1994.) $)
  3anrot $p |- ( ( ph /\ ps /\ ch ) <-> ( ps /\ ch /\ ph ) ) $=
    ( wa w3a ancom 3anass df-3an 3bitr4i ) ABCDZDJADABCEBCAEAJFABCGBCAHI $.

  $( Rotation law for triple disjunction.  (Contributed by NM, 4-Apr-1995.) $)
  3orrot $p |- ( ( ph \/ ps \/ ch ) <-> ( ps \/ ch \/ ph ) ) $=
    ( wo w3o orcom 3orass df-3or 3bitr4i ) ABCDZDJADABCEBCAEAJFABCGBCAHI $.

  $( Commutation law for triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  3ancoma $p |- ( ( ph /\ ps /\ ch ) <-> ( ps /\ ph /\ ch ) ) $=
    ( wa w3a ancom anbi1i df-3an 3bitr4i ) ABDZCDBADZCDABCEBACEJKCABFGABCHBACHI
    $.

  $( Commutation law for triple disjunction.  (Contributed by Mario Carneiro,
     4-Sep-2016.) $)
  3orcoma $p |- ( ( ph \/ ps \/ ch ) <-> ( ps \/ ph \/ ch ) ) $=
    ( wo w3o or12 3orass 3bitr4i ) ABCDDBACDDABCEBACEABCFABCGBACGH $.

  $( Commutation law for triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  3ancomb $p |- ( ( ph /\ ps /\ ch ) <-> ( ph /\ ch /\ ps ) ) $=
    ( w3a 3ancoma 3anrot bitri ) ABCDBACDACBDABCEBACFG $.

  $( Commutation law for triple disjunction.  (Contributed by Scott Fenton,
     20-Apr-2011.) $)
  3orcomb $p |- ( ( ph \/ ps \/ ch ) <-> ( ph \/ ch \/ ps ) ) $=
    ( wo w3o orcom orbi2i 3orass 3bitr4i ) ABCDZDACBDZDABCEACBEJKABCFGABCHACBHI
    $.

  $( Reversal law for triple conjunction.  (Contributed by NM, 21-Apr-1994.) $)
  3anrev $p |- ( ( ph /\ ps /\ ch ) <-> ( ch /\ ps /\ ph ) ) $=
    ( w3a 3ancoma 3anrot bitr4i ) ABCDBACDCBADABCECBAFG $.

  $( Convert triple conjunction to conjunction, then commute.  (Contributed by
     Jonathan Ben-Naim, 3-Jun-2011.) $)
  3anan32 $p |- ( ( ph /\ ps /\ ch ) <-> ( ( ph /\ ch ) /\ ps ) ) $=
    ( w3a wa df-3an an32 bitri ) ABCDABECEACEBEABCFABCGH $.

  $( Convert triple conjunction to conjunction, then commute.  (Contributed by
     Jonathan Ben-Naim, 3-Jun-2011.)  (Proof shortened by Andrew Salmon,
     14-Jun-2011.) $)
  3anan12 $p |- ( ( ph /\ ps /\ ch ) <-> ( ps /\ ( ph /\ ch ) ) ) $=
    ( w3a wa 3ancoma 3anass bitri ) ABCDBACDBACEEABCFBACGH $.

  $( Distribution of triple conjunction over conjunction.  (Contributed by
     David A. Wheeler, 4-Nov-2018.) $)
  anandi3 $p |- ( ( ph /\ ps /\ ch ) <-> ( ( ph /\ ps ) /\ ( ph /\ ch ) ) ) $=
    ( w3a wa 3anass anandi bitri ) ABCDABCEEABEACEEABCFABCGH $.

  $( Distribution of triple conjunction over conjunction.  (Contributed by
     David A. Wheeler, 4-Nov-2018.) $)
  anandi3r $p |- ( ( ph /\ ps /\ ch ) <-> ( ( ph /\ ps ) /\ ( ch /\ ps ) ) ) $=
    ( w3a wa 3anan32 anandir bitri ) ABCDACEBEABECBEEABCFACBGH $.

  $( Triple conjunction expressed in terms of triple disjunction.  (Contributed
     by Jeff Hankins, 15-Aug-2009.) $)
  3anor $p |- ( ( ph /\ ps /\ ch ) <-> -. ( -. ph \/ -. ps \/ -. ch ) ) $=
    ( w3a wa wn w3o df-3an wo anor ianor orbi1i xchbinx df-3or xchbinxr bitri )
    ABCDABEZCEZAFZBFZCFZGZFABCHRSTIZUAIZUBRQFZUAIUDQCJUEUCUAABKLMSTUANOP $.

  $( Negated triple conjunction expressed in terms of triple disjunction.
     (Contributed by Jeff Hankins, 15-Aug-2009.)  (Proof shortened by Andrew
     Salmon, 13-May-2011.) $)
  3ianor $p |- ( -. ( ph /\ ps /\ ch ) <-> ( -. ph \/ -. ps \/ -. ch ) ) $=
    ( wn w3o w3a 3anor con2bii bicomi ) ADBDCDEZABCFZDKJABCGHI $.

  $( Negated triple disjunction as triple conjunction.  (Contributed by Scott
     Fenton, 19-Apr-2011.) $)
  3ioran $p |- ( -. ( ph \/ ps \/ ch ) <-> ( -. ph /\ -. ps /\ -. ch ) ) $=
    ( wo wn wa w3o w3a ioran anbi1i df-3or xchnxbir df-3an 3bitr4i ) ABDZEZCEZF
    ZAEZBEZFZQFABCGZESTQHPUAQABIJOCDRUBOCIABCKLSTQMN $.

  $( Triple disjunction in terms of triple conjunction.  (Contributed by NM,
     8-Oct-2012.) $)
  3oran $p |- ( ( ph \/ ps \/ ch ) <-> -. ( -. ph /\ -. ps /\ -. ch ) ) $=
    ( wn w3a w3o 3ioran con1bii bicomi ) ADBDCDEZDABCFZKJABCGHI $.

  $( Simplification of triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  3simpa $p |- ( ( ph /\ ps /\ ch ) -> ( ph /\ ps ) ) $=
    ( w3a wa df-3an simplbi ) ABCDABECABCFG $.

  $( Simplification of triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  3simpb $p |- ( ( ph /\ ps /\ ch ) -> ( ph /\ ch ) ) $=
    ( w3a wa 3ancomb 3simpa sylbi ) ABCDACBDACEABCFACBGH $.

  $( Simplification of triple conjunction.  (Contributed by NM, 21-Apr-1994.)
     (Proof shortened by Andrew Salmon, 13-May-2011.) $)
  3simpc $p |- ( ( ph /\ ps /\ ch ) -> ( ps /\ ch ) ) $=
    ( w3a wa 3anrot 3simpa sylbi ) ABCDBCADBCEABCFBCAGH $.

  $( Simplification of triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  simp1 $p |- ( ( ph /\ ps /\ ch ) -> ph ) $=
    ( w3a 3simpa simpld ) ABCDABABCEF $.

  $( Simplification of triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  simp2 $p |- ( ( ph /\ ps /\ ch ) -> ps ) $=
    ( w3a 3simpa simprd ) ABCDABABCEF $.

  $( Simplification of triple conjunction.  (Contributed by NM,
     21-Apr-1994.) $)
  simp3 $p |- ( ( ph /\ ps /\ ch ) -> ch ) $=
    ( w3a 3simpc simprd ) ABCDBCABCEF $.

  $( Simplification rule.  (Contributed by Jeff Hankins, 17-Nov-2009.) $)
  simpl1 $p |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ph ) $=
    ( w3a simp1 adantr ) ABCEADABCFG $.

  $( Simplification rule.  (Contributed by Jeff Hankins, 17-Nov-2009.) $)
  simpl2 $p |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ps ) $=
    ( w3a simp2 adantr ) ABCEBDABCFG $.

  $( Simplification rule.  (Contributed by Jeff Hankins, 17-Nov-2009.) $)
  simpl3 $p |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ch ) $=
    ( w3a simp3 adantr ) ABCECDABCFG $.

  $( Simplification rule.  (Contributed by Jeff Hankins, 17-Nov-2009.) $)
  simpr1 $p |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ps ) $=
    ( w3a simp1 adantl ) BCDEBABCDFG $.

  $( Simplification rule.  (Contributed by Jeff Hankins, 17-Nov-2009.) $)
  simpr2 $p |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ch ) $=
    ( w3a simp2 adantl ) BCDECABCDFG $.

  $( Simplification rule.  (Contributed by Jeff Hankins, 17-Nov-2009.) $)
  simpr3 $p |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> th ) $=
    ( w3a simp3 adantl ) BCDEDABCDFG $.

  ${
    3simp1i.1 $e |- ( ph /\ ps /\ ch ) $.
    $( Infer a conjunct from a triple conjunction.  (Contributed by NM,
       19-Apr-2005.) $)
    simp1i $p |- ph $=
      ( w3a simp1 ax-mp ) ABCEADABCFG $.

    $( Infer a conjunct from a triple conjunction.  (Contributed by NM,
       19-Apr-2005.) $)
    simp2i $p |- ps $=
      ( w3a simp2 ax-mp ) ABCEBDABCFG $.

    $( Infer a conjunct from a triple conjunction.  (Contributed by NM,
       19-Apr-2005.) $)
    simp3i $p |- ch $=
      ( w3a simp3 ax-mp ) ABCECDABCFG $.
  $}

  ${
    3simp1d.1 $e |- ( ph -> ( ps /\ ch /\ th ) ) $.
    $( Deduce a conjunct from a triple conjunction.  (Contributed by NM,
       4-Sep-2005.) $)
    simp1d $p |- ( ph -> ps ) $=
      ( w3a simp1 syl ) ABCDFBEBCDGH $.

    $( Deduce a conjunct from a triple conjunction.  (Contributed by NM,
       4-Sep-2005.) $)
    simp2d $p |- ( ph -> ch ) $=
      ( w3a simp2 syl ) ABCDFCEBCDGH $.

    $( Deduce a conjunct from a triple conjunction.  (Contributed by NM,
       4-Sep-2005.) $)
    simp3d $p |- ( ph -> th ) $=
      ( w3a simp3 syl ) ABCDFDEBCDGH $.
  $}

  ${
    3simp1bi.1 $e |- ( ph <-> ( ps /\ ch /\ th ) ) $.
    $( Deduce a conjunct from a triple conjunction.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    simp1bi $p |- ( ph -> ps ) $=
      ( w3a biimpi simp1d ) ABCDABCDFEGH $.

    $( Deduce a conjunct from a triple conjunction.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    simp2bi $p |- ( ph -> ch ) $=
      ( w3a biimpi simp2d ) ABCDABCDFEGH $.

    $( Deduce a conjunct from a triple conjunction.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    simp3bi $p |- ( ph -> th ) $=
      ( w3a biimpi simp3d ) ABCDABCDFEGH $.
  $}

  ${
    3adant.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       16-Jul-1995.) $)
    3adant1 $p |- ( ( th /\ ph /\ ps ) -> ch ) $=
      ( w3a wa 3simpc syl ) DABFABGCDABHEI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       16-Jul-1995.) $)
    3adant2 $p |- ( ( ph /\ th /\ ps ) -> ch ) $=
      ( w3a wa 3simpb syl ) ADBFABGCADBHEI $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       16-Jul-1995.) $)
    3adant3 $p |- ( ( ph /\ ps /\ th ) -> ch ) $=
      ( w3a wa 3simpa syl ) ABDFABGCABDHEI $.
  $}

  ${
    3ad2ant.1 $e |- ( ph -> ch ) $.
    $( Deduction adding conjuncts to an antecedent.  (Contributed by NM,
       21-Apr-2005.) $)
    3ad2ant1 $p |- ( ( ph /\ ps /\ th ) -> ch ) $=
      ( adantr 3adant2 ) ADCBACDEFG $.

    $( Deduction adding conjuncts to an antecedent.  (Contributed by NM,
       21-Apr-2005.) $)
    3ad2ant2 $p |- ( ( ps /\ ph /\ th ) -> ch ) $=
      ( adantr 3adant1 ) ADCBACDEFG $.

    $( Deduction adding conjuncts to an antecedent.  (Contributed by NM,
       21-Apr-2005.) $)
    3ad2ant3 $p |- ( ( ps /\ th /\ ph ) -> ch ) $=
      ( adantl 3adant1 ) DACBACDEFG $.
  $}

  $( Simplification of triple conjunction.  (Contributed by NM, 9-Nov-2011.) $)
  simp1l $p |- ( ( ( ph /\ ps ) /\ ch /\ th ) -> ph ) $=
    ( wa simpl 3ad2ant1 ) ABECADABFG $.

  $( Simplification of triple conjunction.  (Contributed by NM, 9-Nov-2011.) $)
  simp1r $p |- ( ( ( ph /\ ps ) /\ ch /\ th ) -> ps ) $=
    ( wa simpr 3ad2ant1 ) ABECBDABFG $.

  $( Simplification of triple conjunction.  (Contributed by NM, 9-Nov-2011.) $)
  simp2l $p |- ( ( ph /\ ( ps /\ ch ) /\ th ) -> ps ) $=
    ( wa simpl 3ad2ant2 ) BCEABDBCFG $.

  $( Simplification of triple conjunction.  (Contributed by NM, 9-Nov-2011.) $)
  simp2r $p |- ( ( ph /\ ( ps /\ ch ) /\ th ) -> ch ) $=
    ( wa simpr 3ad2ant2 ) BCEACDBCFG $.

  $( Simplification of triple conjunction.  (Contributed by NM, 9-Nov-2011.) $)
  simp3l $p |- ( ( ph /\ ps /\ ( ch /\ th ) ) -> ch ) $=
    ( wa simpl 3ad2ant3 ) CDEACBCDFG $.

  $( Simplification of triple conjunction.  (Contributed by NM, 9-Nov-2011.) $)
  simp3r $p |- ( ( ph /\ ps /\ ( ch /\ th ) ) -> th ) $=
    ( wa simpr 3ad2ant3 ) CDEADBCDFG $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp11 $p |- ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) -> ph ) $=
    ( w3a simp1 3ad2ant1 ) ABCFDAEABCGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp12 $p |- ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) -> ps ) $=
    ( w3a simp2 3ad2ant1 ) ABCFDBEABCGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp13 $p |- ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) -> ch ) $=
    ( w3a simp3 3ad2ant1 ) ABCFDCEABCGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp21 $p |- ( ( ph /\ ( ps /\ ch /\ th ) /\ ta ) -> ps ) $=
    ( w3a simp1 3ad2ant2 ) BCDFABEBCDGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp22 $p |- ( ( ph /\ ( ps /\ ch /\ th ) /\ ta ) -> ch ) $=
    ( w3a simp2 3ad2ant2 ) BCDFACEBCDGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp23 $p |- ( ( ph /\ ( ps /\ ch /\ th ) /\ ta ) -> th ) $=
    ( w3a simp3 3ad2ant2 ) BCDFADEBCDGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp31 $p |- ( ( ph /\ ps /\ ( ch /\ th /\ ta ) ) -> ch ) $=
    ( w3a simp1 3ad2ant3 ) CDEFACBCDEGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp32 $p |- ( ( ph /\ ps /\ ( ch /\ th /\ ta ) ) -> th ) $=
    ( w3a simp2 3ad2ant3 ) CDEFADBCDEGH $.

  $( Simplification of doubly triple conjunction.  (Contributed by NM,
     17-Nov-2011.) $)
  simp33 $p |- ( ( ph /\ ps /\ ( ch /\ th /\ ta ) ) -> ta ) $=
    ( w3a simp3 3ad2ant3 ) CDEFAEBCDEGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpll1 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th ) /\ ta ) -> ph ) $=
    ( w3a wa simpl1 adantr ) ABCFDGAEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpll2 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th ) /\ ta ) -> ps ) $=
    ( w3a wa simpl2 adantr ) ABCFDGBEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpll3 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th ) /\ ta ) -> ch ) $=
    ( w3a wa simpl3 adantr ) ABCFDGCEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simplr1 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) ) /\ ta ) -> ph ) $=
    ( w3a wa simpr1 adantr ) DABCFGAEDABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simplr2 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) ) /\ ta ) -> ps ) $=
    ( w3a wa simpr2 adantr ) DABCFGBEDABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simplr3 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) ) /\ ta ) -> ch ) $=
    ( w3a wa simpr3 adantr ) DABCFGCEDABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simprl1 $p |- ( ( ta /\ ( ( ph /\ ps /\ ch ) /\ th ) ) -> ph ) $=
    ( w3a wa simpl1 adantl ) ABCFDGAEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simprl2 $p |- ( ( ta /\ ( ( ph /\ ps /\ ch ) /\ th ) ) -> ps ) $=
    ( w3a wa simpl2 adantl ) ABCFDGBEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simprl3 $p |- ( ( ta /\ ( ( ph /\ ps /\ ch ) /\ th ) ) -> ch ) $=
    ( w3a wa simpl3 adantl ) ABCFDGCEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simprr1 $p |- ( ( ta /\ ( th /\ ( ph /\ ps /\ ch ) ) ) -> ph ) $=
    ( w3a wa simpr1 adantl ) DABCFGAEDABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simprr2 $p |- ( ( ta /\ ( th /\ ( ph /\ ps /\ ch ) ) ) -> ps ) $=
    ( w3a wa simpr2 adantl ) DABCFGBEDABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simprr3 $p |- ( ( ta /\ ( th /\ ( ph /\ ps /\ ch ) ) ) -> ch ) $=
    ( w3a wa simpr3 adantl ) DABCFGCEDABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl1l $p |- ( ( ( ( ph /\ ps ) /\ ch /\ th ) /\ ta ) -> ph ) $=
    ( wa w3a simp1l adantr ) ABFCDGAEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl1r $p |- ( ( ( ( ph /\ ps ) /\ ch /\ th ) /\ ta ) -> ps ) $=
    ( wa w3a simp1r adantr ) ABFCDGBEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl2l $p |- ( ( ( ch /\ ( ph /\ ps ) /\ th ) /\ ta ) -> ph ) $=
    ( wa w3a simp2l adantr ) CABFDGAECABDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl2r $p |- ( ( ( ch /\ ( ph /\ ps ) /\ th ) /\ ta ) -> ps ) $=
    ( wa w3a simp2r adantr ) CABFDGBECABDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl3l $p |- ( ( ( ch /\ th /\ ( ph /\ ps ) ) /\ ta ) -> ph ) $=
    ( wa w3a simp3l adantr ) CDABFGAECDABHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl3r $p |- ( ( ( ch /\ th /\ ( ph /\ ps ) ) /\ ta ) -> ps ) $=
    ( wa w3a simp3r adantr ) CDABFGBECDABHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr1l $p |- ( ( ta /\ ( ( ph /\ ps ) /\ ch /\ th ) ) -> ph ) $=
    ( wa w3a simp1l adantl ) ABFCDGAEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr1r $p |- ( ( ta /\ ( ( ph /\ ps ) /\ ch /\ th ) ) -> ps ) $=
    ( wa w3a simp1r adantl ) ABFCDGBEABCDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr2l $p |- ( ( ta /\ ( ch /\ ( ph /\ ps ) /\ th ) ) -> ph ) $=
    ( wa w3a simp2l adantl ) CABFDGAECABDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr2r $p |- ( ( ta /\ ( ch /\ ( ph /\ ps ) /\ th ) ) -> ps ) $=
    ( wa w3a simp2r adantl ) CABFDGBECABDHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr3l $p |- ( ( ta /\ ( ch /\ th /\ ( ph /\ ps ) ) ) -> ph ) $=
    ( wa w3a simp3l adantl ) CDABFGAECDABHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr3r $p |- ( ( ta /\ ( ch /\ th /\ ( ph /\ ps ) ) ) -> ps ) $=
    ( wa w3a simp3r adantl ) CDABFGBECDABHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1ll $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th /\ ta ) -> ph ) $=
    ( wa simpll 3ad2ant1 ) ABFCFDAEABCGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1lr $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th /\ ta ) -> ps ) $=
    ( wa simplr 3ad2ant1 ) ABFCFDBEABCGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1rl $p |- ( ( ( ch /\ ( ph /\ ps ) ) /\ th /\ ta ) -> ph ) $=
    ( wa simprl 3ad2ant1 ) CABFFDAECABGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1rr $p |- ( ( ( ch /\ ( ph /\ ps ) ) /\ th /\ ta ) -> ps ) $=
    ( wa simprr 3ad2ant1 ) CABFFDBECABGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2ll $p |- ( ( th /\ ( ( ph /\ ps ) /\ ch ) /\ ta ) -> ph ) $=
    ( wa simpll 3ad2ant2 ) ABFCFDAEABCGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2lr $p |- ( ( th /\ ( ( ph /\ ps ) /\ ch ) /\ ta ) -> ps ) $=
    ( wa simplr 3ad2ant2 ) ABFCFDBEABCGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2rl $p |- ( ( th /\ ( ch /\ ( ph /\ ps ) ) /\ ta ) -> ph ) $=
    ( wa simprl 3ad2ant2 ) CABFFDAECABGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2rr $p |- ( ( th /\ ( ch /\ ( ph /\ ps ) ) /\ ta ) -> ps ) $=
    ( wa simprr 3ad2ant2 ) CABFFDBECABGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3ll $p |- ( ( th /\ ta /\ ( ( ph /\ ps ) /\ ch ) ) -> ph ) $=
    ( wa simpll 3ad2ant3 ) ABFCFDAEABCGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3lr $p |- ( ( th /\ ta /\ ( ( ph /\ ps ) /\ ch ) ) -> ps ) $=
    ( wa simplr 3ad2ant3 ) ABFCFDBEABCGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3rl $p |- ( ( th /\ ta /\ ( ch /\ ( ph /\ ps ) ) ) -> ph ) $=
    ( wa simprl 3ad2ant3 ) CABFFDAECABGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3rr $p |- ( ( th /\ ta /\ ( ch /\ ( ph /\ ps ) ) ) -> ps ) $=
    ( wa simprr 3ad2ant3 ) CABFFDBECABGH $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl11 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ et ) -> ph ) $=
    ( w3a simp11 adantr ) ABCGDEGAFABCDEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl12 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ et ) -> ps ) $=
    ( w3a simp12 adantr ) ABCGDEGBFABCDEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl13 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ et ) -> ch ) $=
    ( w3a simp13 adantr ) ABCGDEGCFABCDEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl21 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ et ) -> ph ) $=
    ( w3a simp21 adantr ) DABCGEGAFDABCEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl22 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ et ) -> ps ) $=
    ( w3a simp22 adantr ) DABCGEGBFDABCEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl23 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ et ) -> ch ) $=
    ( w3a simp23 adantr ) DABCGEGCFDABCEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl31 $p |- ( ( ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ et ) -> ph ) $=
    ( w3a simp31 adantr ) DEABCGGAFDEABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl32 $p |- ( ( ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ et ) -> ps ) $=
    ( w3a simp32 adantr ) DEABCGGBFDEABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpl33 $p |- ( ( ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ et ) -> ch ) $=
    ( w3a simp33 adantr ) DEABCGGCFDEABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr11 $p |- ( ( et /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) ) -> ph ) $=
    ( w3a simp11 adantl ) ABCGDEGAFABCDEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr12 $p |- ( ( et /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) ) -> ps ) $=
    ( w3a simp12 adantl ) ABCGDEGBFABCDEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr13 $p |- ( ( et /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) ) -> ch ) $=
    ( w3a simp13 adantl ) ABCGDEGCFABCDEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr21 $p |- ( ( et /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) ) -> ph ) $=
    ( w3a simp21 adantl ) DABCGEGAFDABCEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr22 $p |- ( ( et /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) ) -> ps ) $=
    ( w3a simp22 adantl ) DABCGEGBFDABCEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr23 $p |- ( ( et /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) ) -> ch ) $=
    ( w3a simp23 adantl ) DABCGEGCFDABCEHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr31 $p |- ( ( et /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) ) -> ph ) $=
    ( w3a simp31 adantl ) DEABCGGAFDEABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr32 $p |- ( ( et /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) ) -> ps ) $=
    ( w3a simp32 adantl ) DEABCGGBFDEABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simpr33 $p |- ( ( et /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) ) -> ch ) $=
    ( w3a simp33 adantl ) DEABCGGCFDEABCHI $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1l1 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th ) /\ ta /\ et ) -> ph ) $=
    ( w3a wa simpl1 3ad2ant1 ) ABCGDHEAFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1l2 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th ) /\ ta /\ et ) -> ps ) $=
    ( w3a wa simpl2 3ad2ant1 ) ABCGDHEBFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1l3 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th ) /\ ta /\ et ) -> ch ) $=
    ( w3a wa simpl3 3ad2ant1 ) ABCGDHECFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1r1 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) ) /\ ta /\ et ) -> ph ) $=
    ( w3a wa simpr1 3ad2ant1 ) DABCGHEAFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1r2 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) ) /\ ta /\ et ) -> ps ) $=
    ( w3a wa simpr2 3ad2ant1 ) DABCGHEBFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp1r3 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) ) /\ ta /\ et ) -> ch ) $=
    ( w3a wa simpr3 3ad2ant1 ) DABCGHECFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2l1 $p |- ( ( ta /\ ( ( ph /\ ps /\ ch ) /\ th ) /\ et ) -> ph ) $=
    ( w3a wa simpl1 3ad2ant2 ) ABCGDHEAFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2l2 $p |- ( ( ta /\ ( ( ph /\ ps /\ ch ) /\ th ) /\ et ) -> ps ) $=
    ( w3a wa simpl2 3ad2ant2 ) ABCGDHEBFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2l3 $p |- ( ( ta /\ ( ( ph /\ ps /\ ch ) /\ th ) /\ et ) -> ch ) $=
    ( w3a wa simpl3 3ad2ant2 ) ABCGDHECFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2r1 $p |- ( ( ta /\ ( th /\ ( ph /\ ps /\ ch ) ) /\ et ) -> ph ) $=
    ( w3a wa simpr1 3ad2ant2 ) DABCGHEAFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2r2 $p |- ( ( ta /\ ( th /\ ( ph /\ ps /\ ch ) ) /\ et ) -> ps ) $=
    ( w3a wa simpr2 3ad2ant2 ) DABCGHEBFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp2r3 $p |- ( ( ta /\ ( th /\ ( ph /\ ps /\ ch ) ) /\ et ) -> ch ) $=
    ( w3a wa simpr3 3ad2ant2 ) DABCGHECFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3l1 $p |- ( ( ta /\ et /\ ( ( ph /\ ps /\ ch ) /\ th ) ) -> ph ) $=
    ( w3a wa simpl1 3ad2ant3 ) ABCGDHEAFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3l2 $p |- ( ( ta /\ et /\ ( ( ph /\ ps /\ ch ) /\ th ) ) -> ps ) $=
    ( w3a wa simpl2 3ad2ant3 ) ABCGDHEBFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3l3 $p |- ( ( ta /\ et /\ ( ( ph /\ ps /\ ch ) /\ th ) ) -> ch ) $=
    ( w3a wa simpl3 3ad2ant3 ) ABCGDHECFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3r1 $p |- ( ( ta /\ et /\ ( th /\ ( ph /\ ps /\ ch ) ) ) -> ph ) $=
    ( w3a wa simpr1 3ad2ant3 ) DABCGHEAFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3r2 $p |- ( ( ta /\ et /\ ( th /\ ( ph /\ ps /\ ch ) ) ) -> ps ) $=
    ( w3a wa simpr2 3ad2ant3 ) DABCGHEBFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp3r3 $p |- ( ( ta /\ et /\ ( th /\ ( ph /\ ps /\ ch ) ) ) -> ch ) $=
    ( w3a wa simpr3 3ad2ant3 ) DABCGHECFDABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp11l $p |- ( ( ( ( ph /\ ps ) /\ ch /\ th ) /\ ta /\ et ) -> ph ) $=
    ( wa w3a simp1l 3ad2ant1 ) ABGCDHEAFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp11r $p |- ( ( ( ( ph /\ ps ) /\ ch /\ th ) /\ ta /\ et ) -> ps ) $=
    ( wa w3a simp1r 3ad2ant1 ) ABGCDHEBFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp12l $p |- ( ( ( ch /\ ( ph /\ ps ) /\ th ) /\ ta /\ et ) -> ph ) $=
    ( wa w3a simp2l 3ad2ant1 ) CABGDHEAFCABDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp12r $p |- ( ( ( ch /\ ( ph /\ ps ) /\ th ) /\ ta /\ et ) -> ps ) $=
    ( wa w3a simp2r 3ad2ant1 ) CABGDHEBFCABDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp13l $p |- ( ( ( ch /\ th /\ ( ph /\ ps ) ) /\ ta /\ et ) -> ph ) $=
    ( wa w3a simp3l 3ad2ant1 ) CDABGHEAFCDABIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp13r $p |- ( ( ( ch /\ th /\ ( ph /\ ps ) ) /\ ta /\ et ) -> ps ) $=
    ( wa w3a simp3r 3ad2ant1 ) CDABGHEBFCDABIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp21l $p |- ( ( ta /\ ( ( ph /\ ps ) /\ ch /\ th ) /\ et ) -> ph ) $=
    ( wa w3a simp1l 3ad2ant2 ) ABGCDHEAFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp21r $p |- ( ( ta /\ ( ( ph /\ ps ) /\ ch /\ th ) /\ et ) -> ps ) $=
    ( wa w3a simp1r 3ad2ant2 ) ABGCDHEBFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp22l $p |- ( ( ta /\ ( ch /\ ( ph /\ ps ) /\ th ) /\ et ) -> ph ) $=
    ( wa w3a simp2l 3ad2ant2 ) CABGDHEAFCABDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp22r $p |- ( ( ta /\ ( ch /\ ( ph /\ ps ) /\ th ) /\ et ) -> ps ) $=
    ( wa w3a simp2r 3ad2ant2 ) CABGDHEBFCABDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp23l $p |- ( ( ta /\ ( ch /\ th /\ ( ph /\ ps ) ) /\ et ) -> ph ) $=
    ( wa w3a simp3l 3ad2ant2 ) CDABGHEAFCDABIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp23r $p |- ( ( ta /\ ( ch /\ th /\ ( ph /\ ps ) ) /\ et ) -> ps ) $=
    ( wa w3a simp3r 3ad2ant2 ) CDABGHEBFCDABIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp31l $p |- ( ( ta /\ et /\ ( ( ph /\ ps ) /\ ch /\ th ) ) -> ph ) $=
    ( wa w3a simp1l 3ad2ant3 ) ABGCDHEAFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp31r $p |- ( ( ta /\ et /\ ( ( ph /\ ps ) /\ ch /\ th ) ) -> ps ) $=
    ( wa w3a simp1r 3ad2ant3 ) ABGCDHEBFABCDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp32l $p |- ( ( ta /\ et /\ ( ch /\ ( ph /\ ps ) /\ th ) ) -> ph ) $=
    ( wa w3a simp2l 3ad2ant3 ) CABGDHEAFCABDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp32r $p |- ( ( ta /\ et /\ ( ch /\ ( ph /\ ps ) /\ th ) ) -> ps ) $=
    ( wa w3a simp2r 3ad2ant3 ) CABGDHEBFCABDIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp33l $p |- ( ( ta /\ et /\ ( ch /\ th /\ ( ph /\ ps ) ) ) -> ph ) $=
    ( wa w3a simp3l 3ad2ant3 ) CDABGHEAFCDABIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp33r $p |- ( ( ta /\ et /\ ( ch /\ th /\ ( ph /\ ps ) ) ) -> ps ) $=
    ( wa w3a simp3r 3ad2ant3 ) CDABGHEBFCDABIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp111 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ et /\ ze ) -> ph ) $=
    ( w3a simp11 3ad2ant1 ) ABCHDEHFAGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp112 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ et /\ ze ) -> ps ) $=
    ( w3a simp12 3ad2ant1 ) ABCHDEHFBGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp113 $p |- ( ( ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ et /\ ze ) -> ch ) $=
    ( w3a simp13 3ad2ant1 ) ABCHDEHFCGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp121 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ et /\ ze ) -> ph ) $=
    ( w3a simp21 3ad2ant1 ) DABCHEHFAGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp122 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ et /\ ze ) -> ps ) $=
    ( w3a simp22 3ad2ant1 ) DABCHEHFBGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp123 $p |- ( ( ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ et /\ ze ) -> ch ) $=
    ( w3a simp23 3ad2ant1 ) DABCHEHFCGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp131 $p |- ( ( ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ et /\ ze ) -> ph ) $=
    ( w3a simp31 3ad2ant1 ) DEABCHHFAGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp132 $p |- ( ( ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ et /\ ze ) -> ps ) $=
    ( w3a simp32 3ad2ant1 ) DEABCHHFBGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp133 $p |- ( ( ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ et /\ ze ) -> ch ) $=
    ( w3a simp33 3ad2ant1 ) DEABCHHFCGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp211 $p |- ( ( et /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ ze ) -> ph ) $=
    ( w3a simp11 3ad2ant2 ) ABCHDEHFAGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp212 $p |- ( ( et /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ ze ) -> ps ) $=
    ( w3a simp12 3ad2ant2 ) ABCHDEHFBGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp213 $p |- ( ( et /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) /\ ze ) -> ch ) $=
    ( w3a simp13 3ad2ant2 ) ABCHDEHFCGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp221 $p |- ( ( et /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ ze ) -> ph ) $=
    ( w3a simp21 3ad2ant2 ) DABCHEHFAGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp222 $p |- ( ( et /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ ze ) -> ps ) $=
    ( w3a simp22 3ad2ant2 ) DABCHEHFBGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp223 $p |- ( ( et /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) /\ ze ) -> ch ) $=
    ( w3a simp23 3ad2ant2 ) DABCHEHFCGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp231 $p |- ( ( et /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ ze ) -> ph ) $=
    ( w3a simp31 3ad2ant2 ) DEABCHHFAGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp232 $p |- ( ( et /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ ze ) -> ps ) $=
    ( w3a simp32 3ad2ant2 ) DEABCHHFBGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp233 $p |- ( ( et /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) /\ ze ) -> ch ) $=
    ( w3a simp33 3ad2ant2 ) DEABCHHFCGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp311 $p |- ( ( et /\ ze /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) ) -> ph ) $=
    ( w3a simp11 3ad2ant3 ) ABCHDEHFAGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp312 $p |- ( ( et /\ ze /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) ) -> ps ) $=
    ( w3a simp12 3ad2ant3 ) ABCHDEHFBGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp313 $p |- ( ( et /\ ze /\ ( ( ph /\ ps /\ ch ) /\ th /\ ta ) ) -> ch ) $=
    ( w3a simp13 3ad2ant3 ) ABCHDEHFCGABCDEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp321 $p |- ( ( et /\ ze /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) ) -> ph ) $=
    ( w3a simp21 3ad2ant3 ) DABCHEHFAGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp322 $p |- ( ( et /\ ze /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) ) -> ps ) $=
    ( w3a simp22 3ad2ant3 ) DABCHEHFBGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp323 $p |- ( ( et /\ ze /\ ( th /\ ( ph /\ ps /\ ch ) /\ ta ) ) -> ch ) $=
    ( w3a simp23 3ad2ant3 ) DABCHEHFCGDABCEIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp331 $p |- ( ( et /\ ze /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) ) -> ph ) $=
    ( w3a simp31 3ad2ant3 ) DEABCHHFAGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp332 $p |- ( ( et /\ ze /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) ) -> ps ) $=
    ( w3a simp32 3ad2ant3 ) DEABCHHFBGDEABCIJ $.

  $( Simplification of conjunction.  (Contributed by NM, 9-Mar-2012.) $)
  simp333 $p |- ( ( et /\ ze /\ ( th /\ ta /\ ( ph /\ ps /\ ch ) ) ) -> ch ) $=
    ( w3a simp33 3ad2ant3 ) DEABCHHFCGDEABCIJ $.

  ${
    3adantl.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       24-Feb-2005.) $)
    3adantl1 $p |- ( ( ( ta /\ ph /\ ps ) /\ ch ) -> th ) $=
      ( w3a wa 3simpc sylan ) EABGABHCDEABIFJ $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       24-Feb-2005.) $)
    3adantl2 $p |- ( ( ( ph /\ ta /\ ps ) /\ ch ) -> th ) $=
      ( w3a wa 3simpb sylan ) AEBGABHCDAEBIFJ $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       24-Feb-2005.) $)
    3adantl3 $p |- ( ( ( ph /\ ps /\ ta ) /\ ch ) -> th ) $=
      ( w3a wa 3simpa sylan ) ABEGABHCDABEIFJ $.
  $}

  ${
    3adantr.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       27-Apr-2005.) $)
    3adantr1 $p |- ( ( ph /\ ( ta /\ ps /\ ch ) ) -> th ) $=
      ( w3a wa 3simpc sylan2 ) EBCGABCHDEBCIFJ $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       27-Apr-2005.) $)
    3adantr2 $p |- ( ( ph /\ ( ps /\ ta /\ ch ) ) -> th ) $=
      ( w3a wa 3simpb sylan2 ) BECGABCHDBECIFJ $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       27-Apr-2005.) $)
    3adantr3 $p |- ( ( ph /\ ( ps /\ ch /\ ta ) ) -> th ) $=
      ( w3a wa 3simpa sylan2 ) BCEGABCHDBCEIFJ $.
  $}

  ${
    3ad2antl.1 $e |- ( ( ph /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by NM,
       4-Aug-2007.) $)
    3ad2antl1 $p |- ( ( ( ph /\ ps /\ ta ) /\ ch ) -> th ) $=
      ( adantlr 3adantl2 ) AECDBACDEFGH $.

    $( Deduction adding conjuncts to antecedent.  (Contributed by NM,
       4-Aug-2007.) $)
    3ad2antl2 $p |- ( ( ( ps /\ ph /\ ta ) /\ ch ) -> th ) $=
      ( adantlr 3adantl1 ) AECDBACDEFGH $.

    $( Deduction adding conjuncts to antecedent.  (Contributed by NM,
       4-Aug-2007.) $)
    3ad2antl3 $p |- ( ( ( ps /\ ta /\ ph ) /\ ch ) -> th ) $=
      ( adantll 3adantl1 ) EACDBACDEFGH $.

    $( Deduction adding conjuncts to antecedent.  (Contributed by NM,
       25-Dec-2007.) $)
    3ad2antr1 $p |- ( ( ph /\ ( ch /\ ps /\ ta ) ) -> th ) $=
      ( adantrr 3adantr3 ) ACBDEACDBFGH $.

    $( Deduction adding conjuncts to antecedent.  (Contributed by NM,
       27-Dec-2007.) $)
    3ad2antr2 $p |- ( ( ph /\ ( ps /\ ch /\ ta ) ) -> th ) $=
      ( adantrl 3adantr3 ) ABCDEACDBFGH $.

    $( Deduction adding conjuncts to antecedent.  (Contributed by NM,
       30-Dec-2007.) $)
    3ad2antr3 $p |- ( ( ph /\ ( ps /\ ta /\ ch ) ) -> th ) $=
      ( adantrl 3adantr1 ) AECDBACDEFGH $.
  $}

  ${
    3anibar.1 $e |- ( ( ph /\ ps /\ ch ) -> ( th <-> ( ch /\ ta ) ) ) $.
    $( Remove a hypothesis from the second member of a biimplication.
       (Contributed by FL, 22-Jul-2008.) $)
    3anibar $p |- ( ( ph /\ ps /\ ch ) -> ( th <-> ta ) ) $=
      ( w3a simp3 mpbirand ) ABCGDCEABCHFI $.
  $}

  $( Introduction in triple disjunction.  (Contributed by NM, 4-Apr-1995.) $)
  3mix1 $p |- ( ph -> ( ph \/ ps \/ ch ) ) $=
    ( wo w3o orc 3orass sylibr ) AABCDZDABCEAIFABCGH $.

  $( Introduction in triple disjunction.  (Contributed by NM, 4-Apr-1995.) $)
  3mix2 $p |- ( ph -> ( ps \/ ph \/ ch ) ) $=
    ( w3o 3mix1 3orrot sylibr ) AACBDBACDACBEBACFG $.

  $( Introduction in triple disjunction.  (Contributed by NM, 4-Apr-1995.) $)
  3mix3 $p |- ( ph -> ( ps \/ ch \/ ph ) ) $=
    ( w3o 3mix1 3orrot sylib ) AABCDBCADABCEABCFG $.

  ${
    3mixi.1 $e |- ph $.
    $( Introduction in triple disjunction.  (Contributed by Mario Carneiro,
       6-Oct-2014.) $)
    3mix1i $p |- ( ph \/ ps \/ ch ) $=
      ( w3o 3mix1 ax-mp ) AABCEDABCFG $.

    $( Introduction in triple disjunction.  (Contributed by Mario Carneiro,
       6-Oct-2014.) $)
    3mix2i $p |- ( ps \/ ph \/ ch ) $=
      ( w3o 3mix2 ax-mp ) ABACEDABCFG $.

    $( Introduction in triple disjunction.  (Contributed by Mario Carneiro,
       6-Oct-2014.) $)
    3mix3i $p |- ( ps \/ ch \/ ph ) $=
      ( w3o 3mix3 ax-mp ) ABCAEDABCFG $.
  $}

  ${
    3mixd.1 $e |- ( ph -> ps ) $.
    $( Deduction introducing triple disjunction.  (Contributed by Scott Fenton,
       8-Jun-2011.) $)
    3mix1d $p |- ( ph -> ( ps \/ ch \/ th ) ) $=
      ( w3o 3mix1 syl ) ABBCDFEBCDGH $.

    $( Deduction introducing triple disjunction.  (Contributed by Scott Fenton,
       8-Jun-2011.) $)
    3mix2d $p |- ( ph -> ( ch \/ ps \/ th ) ) $=
      ( w3o 3mix2 syl ) ABCBDFEBCDGH $.

    $( Deduction introducing triple disjunction.  (Contributed by Scott Fenton,
       8-Jun-2011.) $)
    3mix3d $p |- ( ph -> ( ch \/ th \/ ps ) ) $=
      ( w3o 3mix3 syl ) ABCDBFEBCDGH $.
  $}

  ${
    3pm3.2i.1 $e |- ph $.
    3pm3.2i.2 $e |- ps $.
    3pm3.2i.3 $e |- ch $.
    $( Infer conjunction of premises.  (Contributed by NM, 10-Feb-1995.) $)
    3pm3.2i $p |- ( ph /\ ps /\ ch ) $=
      ( w3a wa pm3.2i df-3an mpbir2an ) ABCGABHCABDEIFABCJK $.
  $}

  $( Version of ~ pm3.2 for a triple conjunction.  (Contributed by Alan Sare,
     24-Oct-2011.)  (Proof shortened by Kyle Wyonch, 24-Apr-2021.) $)
  pm3.2an3 $p |- ( ph -> ( ps -> ( ch -> ( ph /\ ps /\ ch ) ) ) ) $=
    ( w3a wa df-3an biimpri exp31 ) ABCABCDZIABECEABCFGH $.

  $( Obsolete proof of ~ pm3.2an3 as of 24-Apr-2021.  (Contributed by Alan
     Sare, 24-Oct-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  pm3.2an3OLD $p |- ( ph -> ( ps -> ( ch -> ( ph /\ ps /\ ch ) ) ) ) $=
    ( wa w3a wi pm3.2 ex df-3an bicomi syl8ib ) ABCABDZCDZABCEZABCMFLCGHNMABCIJ
    K $.

  ${
    3jca.1 $e |- ( ph -> ps ) $.
    3jca.2 $e |- ( ph -> ch ) $.
    3jca.3 $e |- ( ph -> th ) $.
    $( Join consequents with conjunction.  (Contributed by NM, 9-Apr-1994.) $)
    3jca $p |- ( ph -> ( ps /\ ch /\ th ) ) $=
      ( wa w3a jca31 df-3an sylibr ) ABCHDHBCDIABCDEFGJBCDKL $.
  $}

  ${
    3jcad.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3jcad.2 $e |- ( ph -> ( ps -> th ) ) $.
    3jcad.3 $e |- ( ph -> ( ps -> ta ) ) $.
    $( Deduction conjoining the consequents of three implications.
       (Contributed by NM, 25-Sep-2005.) $)
    3jcad $p |- ( ph -> ( ps -> ( ch /\ th /\ ta ) ) ) $=
      ( w3a wa imp 3jca ex ) ABCDEIABJCDEABCFKABDGKABEHKLM $.
  $}

  ${
    mpbir3an.1 $e |- ps $.
    mpbir3an.2 $e |- ch $.
    mpbir3an.3 $e |- th $.
    mpbir3an.4 $e |- ( ph <-> ( ps /\ ch /\ th ) ) $.
    $( Detach a conjunction of truths in a biconditional.  (Contributed by NM,
       16-Sep-2011.) $)
    mpbir3an $p |- ph $=
      ( w3a 3pm3.2i mpbir ) ABCDIBCDEFGJHK $.
  $}

  ${
    mpbir3and.1 $e |- ( ph -> ch ) $.
    mpbir3and.2 $e |- ( ph -> th ) $.
    mpbir3and.3 $e |- ( ph -> ta ) $.
    mpbir3and.4 $e |- ( ph -> ( ps <-> ( ch /\ th /\ ta ) ) ) $.
    $( Detach a conjunction of truths in a biconditional.  (Contributed by
       Mario Carneiro, 11-May-2014.)  (Revised by Mario Carneiro,
       9-Jan-2015.) $)
    mpbir3and $p |- ( ph -> ps ) $=
      ( w3a 3jca mpbird ) ABCDEJACDEFGHKIL $.
  $}

  ${
    syl3anbrc.1 $e |- ( ph -> ps ) $.
    syl3anbrc.2 $e |- ( ph -> ch ) $.
    syl3anbrc.3 $e |- ( ph -> th ) $.
    syl3anbrc.4 $e |- ( ta <-> ( ps /\ ch /\ th ) ) $.
    $( Syllogism inference.  (Contributed by Mario Carneiro, 11-May-2014.) $)
    syl3anbrc $p |- ( ph -> ta ) $=
      ( w3a 3jca sylibr ) ABCDJEABCDFGHKIL $.
  $}

  ${
    3anim123i.1 $e |- ( ph -> ps ) $.
    3anim123i.2 $e |- ( ch -> th ) $.
    3anim123i.3 $e |- ( ta -> et ) $.
    $( Join antecedents and consequents with conjunction.  (Contributed by NM,
       8-Apr-1994.) $)
    3anim123i $p |- ( ( ph /\ ch /\ ta ) -> ( ps /\ th /\ et ) ) $=
      ( w3a 3ad2ant1 3ad2ant2 3ad2ant3 3jca ) ACEJBDFACBEGKCADEHLEAFCIMN $.
  $}

  ${
    3animi.1 $e |- ( ph -> ps ) $.
    $( Add two conjuncts to antecedent and consequent.  (Contributed by Jeff
       Hankins, 16-Aug-2009.) $)
    3anim1i $p |- ( ( ph /\ ch /\ th ) -> ( ps /\ ch /\ th ) ) $=
      ( id 3anim123i ) ABCCDDECFDFG $.

    $( Add two conjuncts to antecedent and consequent.  (Contributed by AV,
       21-Nov-2019.) $)
    3anim2i $p |- ( ( ch /\ ph /\ th ) -> ( ch /\ ps /\ th ) ) $=
      ( id 3anim123i ) CCABDDCFEDFG $.

    $( Add two conjuncts to antecedent and consequent.  (Contributed by Jeff
       Hankins, 19-Aug-2009.) $)
    3anim3i $p |- ( ( ch /\ th /\ ph ) -> ( ch /\ th /\ ps ) ) $=
      ( id 3anim123i ) CCDDABCFDFEG $.
  $}

  ${
    bi3.1 $e |- ( ph <-> ps ) $.
    bi3.2 $e |- ( ch <-> th ) $.
    bi3.3 $e |- ( ta <-> et ) $.
    $( Join 3 biconditionals with conjunction.  (Contributed by NM,
       21-Apr-1994.) $)
    3anbi123i $p |- ( ( ph /\ ch /\ ta ) <-> ( ps /\ th /\ et ) ) $=
      ( wa w3a anbi12i df-3an 3bitr4i ) ACJZEJBDJZFJACEKBDFKOPEFABCDGHLILACEMBD
      FMN $.

    $( Join 3 biconditionals with disjunction.  (Contributed by NM,
       17-May-1994.) $)
    3orbi123i $p |- ( ( ph \/ ch \/ ta ) <-> ( ps \/ th \/ et ) ) $=
      ( wo w3o orbi12i df-3or 3bitr4i ) ACJZEJBDJZFJACEKBDFKOPEFABCDGHLILACEMBD
      FMN $.
  $}

  ${
    3anbi1i.1 $e |- ( ph <-> ps ) $.
    $( Inference adding two conjuncts to each side of a biconditional.
       (Contributed by NM, 8-Sep-2006.) $)
    3anbi1i $p |- ( ( ph /\ ch /\ th ) <-> ( ps /\ ch /\ th ) ) $=
      ( biid 3anbi123i ) ABCCDDECFDFG $.

    $( Inference adding two conjuncts to each side of a biconditional.
       (Contributed by NM, 8-Sep-2006.) $)
    3anbi2i $p |- ( ( ch /\ ph /\ th ) <-> ( ch /\ ps /\ th ) ) $=
      ( biid 3anbi123i ) CCABDDCFEDFG $.

    $( Inference adding two conjuncts to each side of a biconditional.
       (Contributed by NM, 8-Sep-2006.) $)
    3anbi3i $p |- ( ( ch /\ th /\ ph ) <-> ( ch /\ th /\ ps ) ) $=
      ( biid 3anbi123i ) CCDDABCFDFEG $.
  $}

  ${
    3imp.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( Importation inference.  (Contributed by NM, 8-Apr-1994.) $)
    3imp $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( w3a wa df-3an imp31 sylbi ) ABCFABGCGDABCHABCDEIJ $.

    $( The importation inference ~ 3imp with commutation of the first and third
       conjuncts of the assertion relative to the hypothesis.  (Contributed by
       Alan Sare, 11-Sep-2016.) $)
    3imp31 $p |- ( ( ch /\ ps /\ ph ) -> th ) $=
      ( com13 3imp ) CBADABCDEFG $.

    $( Importation inference.  (Contributed by Alan Sare, 17-Oct-2017.) $)
    3imp231 $p |- ( ( ps /\ ch /\ ph ) -> th ) $=
      ( com3l 3imp ) BCADABCDEFG $.
  $}

  ${
    3impa.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $.
    $( Importation from double to triple conjunction.  (Contributed by NM,
       20-Aug-1995.) $)
    3impa $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( exp31 3imp ) ABCDABCDEFG $.
  $}

  ${
    3impb.1 $e |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $.
    $( Importation from double to triple conjunction.  (Contributed by NM,
       20-Aug-1995.) $)
    3impb $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( exp32 3imp ) ABCDABCDEFG $.
  $}

  ${
    3impia.1 $e |- ( ( ph /\ ps ) -> ( ch -> th ) ) $.
    $( Importation to triple conjunction.  (Contributed by NM, 13-Jun-2006.) $)
    3impia $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( wi ex 3imp ) ABCDABCDFEGH $.
  $}

  ${
    3impib.1 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    $( Importation to triple conjunction.  (Contributed by NM, 13-Jun-2006.) $)
    3impib $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( expd 3imp ) ABCDABCDEFG $.
  $}

  ${
    ex3.1 $e |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) -> ta ) $.
    $( Apply ~ ex to a hypothesis with a 3-right-nested conjunction antecedent,
       with the antecedent of the assertion being a triple conjunction rather
       than a 2-right-nested conjunction.  (Contributed by Alan Sare,
       22-Apr-2018.) $)
    ex3 $p |- ( ( ph /\ ps /\ ch ) -> ( th -> ta ) ) $=
      ( wi wa ex 3impa ) ABCDEGABHCHDEFIJ $.
  $}

  ${
    3exp.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Exportation inference.  (Contributed by NM, 30-May-1994.) $)
    3exp $p |- ( ph -> ( ps -> ( ch -> th ) ) ) $=
      ( w3a pm3.2an3 syl8 ) ABCABCFDABCGEH $.

    $( Exportation from triple to double conjunction.  (Contributed by NM,
       20-Aug-1995.) $)
    3expa $p |- ( ( ( ph /\ ps ) /\ ch ) -> th ) $=
      ( 3exp imp31 ) ABCDABCDEFG $.

    $( Exportation from triple to double conjunction.  (Contributed by NM,
       20-Aug-1995.) $)
    3expb $p |- ( ( ph /\ ( ps /\ ch ) ) -> th ) $=
      ( 3exp imp32 ) ABCDABCDEFG $.

    $( Exportation from triple conjunction.  (Contributed by NM,
       19-May-2007.) $)
    3expia $p |- ( ( ph /\ ps ) -> ( ch -> th ) ) $=
      ( wi 3exp imp ) ABCDFABCDEGH $.

    $( Exportation from triple conjunction.  (Contributed by NM,
       19-May-2007.) $)
    3expib $p |- ( ph -> ( ( ps /\ ch ) -> th ) ) $=
      ( 3exp impd ) ABCDABCDEFG $.

    $( Commutation in antecedent.  Swap 1st and 2nd.  (Contributed by NM,
       28-Jan-1996.)  (Proof shortened by Andrew Salmon, 13-May-2011.) $)
    3com12 $p |- ( ( ps /\ ph /\ ch ) -> th ) $=
      ( w3a 3ancoma sylbi ) BACFABCFDBACGEH $.

    $( Commutation in antecedent.  Swap 1st and 3rd.  (Contributed by NM,
       28-Jan-1996.) $)
    3com13 $p |- ( ( ch /\ ps /\ ph ) -> th ) $=
      ( w3a 3anrev sylbi ) CBAFABCFDCBAGEH $.

    $( Commutation in antecedent.  Swap 2nd and 3rd.  (Contributed by NM,
       28-Jan-1996.) $)
    3com23 $p |- ( ( ph /\ ch /\ ps ) -> th ) $=
      ( 3exp com23 3imp ) ACBDABCDABCDEFGH $.

    $( Commutation in antecedent.  Rotate left.  (Contributed by NM,
       28-Jan-1996.) $)
    3coml $p |- ( ( ps /\ ch /\ ph ) -> th ) $=
      ( 3com23 3com13 ) ACBDABCDEFG $.

    $( Commutation in antecedent.  Rotate right.  (Contributed by NM,
       28-Jan-1996.) $)
    3comr $p |- ( ( ch /\ ph /\ ps ) -> th ) $=
      ( 3coml ) BCADABCDEFF $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       16-Feb-2008.) $)
    3adant3r1 $p |- ( ( ph /\ ( ta /\ ps /\ ch ) ) -> th ) $=
      ( 3expb 3adantr1 ) ABCDEABCDFGH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       17-Feb-2008.) $)
    3adant3r2 $p |- ( ( ph /\ ( ps /\ ta /\ ch ) ) -> th ) $=
      ( 3expb 3adantr2 ) ABCDEABCDFGH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       18-Feb-2008.) $)
    3adant3r3 $p |- ( ( ph /\ ( ps /\ ch /\ ta ) ) -> th ) $=
      ( 3expb 3adantr3 ) ABCDEABCDFGH $.
  $}

  ${
    3imp21.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( The importation inference ~ 3imp with commutation of the first and
       second conjuncts of the assertion relative to the hypothesis.
       (Contributed by Alan Sare, 11-Sep-2016.) $)
    3imp21 $p |- ( ( ps /\ ph /\ ch ) -> th ) $=
      ( 3imp 3com12 ) ABCDABCDEFG $.
  $}

  ${
    3imp3i2an.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    3imp3i2an.2 $e |- ( ( ph /\ ch ) -> ta ) $.
    3imp3i2an.3 $e |- ( ( th /\ ta ) -> et ) $.
    $( An elimination deduction.  (Contributed by Alan Sare, 17-Oct-2017.) $)
    3imp3i2an $p |- ( ( ph /\ ps /\ ch ) -> et ) $=
      ( wi wa 3exp ex syl8 com4r syl pm2.43b pm2.43i 3imp231 ) CABFCABFJJCABCFC
      ABCFJJZACATJZACKEUAHABCEFABCDEFJABCDGLDEFIMNOPMQORS $.
  $}

  ${
    3an1rs.1 $e |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $.
    $( Swap conjuncts.  (Contributed by NM, 16-Dec-2007.) $)
    3an1rs $p |- ( ( ( ph /\ ps /\ th ) /\ ch ) -> ta ) $=
      ( w3a wi ex 3exp com34 3imp imp ) ABDGCEABDCEHABCDEABCDEHABCGDEFIJKLM $.
  $}

  ${
    3imp1.1 $e |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $.
    $( Importation to left triple conjunction.  (Contributed by NM,
       24-Feb-2005.) $)
    3imp1 $p |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $=
      ( w3a wi 3imp imp ) ABCGDEABCDEHFIJ $.

    $( Importation deduction for triple conjunction.  (Contributed by NM,
       26-Oct-2006.) $)
    3impd $p |- ( ph -> ( ( ps /\ ch /\ th ) -> ta ) ) $=
      ( w3a wi com4l 3imp com12 ) BCDGAEBCDAEHABCDEFIJK $.

    $( Importation to right triple conjunction.  (Contributed by NM,
       26-Oct-2006.) $)
    3imp2 $p |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $=
      ( w3a 3impd imp ) ABCDGEABCDEFHI $.
  $}

  ${
    3exp1.1 $e |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $.
    $( Exportation from left triple conjunction.  (Contributed by NM,
       24-Feb-2005.) $)
    3exp1 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi w3a ex 3exp ) ABCDEGABCHDEFIJ $.
  $}

  ${
    3expd.1 $e |- ( ph -> ( ( ps /\ ch /\ th ) -> ta ) ) $.
    $( Exportation deduction for triple conjunction.  (Contributed by NM,
       26-Oct-2006.) $)
    3expd $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi w3a com12 3exp com4r ) BCDAEBCDAEGABCDHEFIJK $.
  $}

  ${
    3exp2.1 $e |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $.
    $( Exportation from right triple conjunction.  (Contributed by NM,
       26-Oct-2006.) $)
    3exp2 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( w3a ex 3expd ) ABCDEABCDGEFHI $.
  $}

  ${
    exp5o.1 $e |- ( ( ph /\ ps /\ ch ) -> ( ( th /\ ta ) -> et ) ) $.
    $( A triple exportation inference.  (Contributed by Jeff Hankins,
       8-Jul-2009.) $)
    exp5o $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wi w3a expd 3exp ) ABCDEFHHABCIDEFGJK $.
  $}

  ${
    exp516.1 $e |- ( ( ( ph /\ ( ps /\ ch /\ th ) ) /\ ta ) -> et ) $.
    $( A triple exportation inference.  (Contributed by Jeff Hankins,
       8-Jul-2009.) $)
    exp516 $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wi w3a exp31 3expd ) ABCDEFHABCDIEFGJK $.
  $}

  ${
    exp520.1 $e |- ( ( ( ph /\ ps /\ ch ) /\ ( th /\ ta ) ) -> et ) $.
    $( A triple exportation inference.  (Contributed by Jeff Hankins,
       8-Jul-2009.) $)
    exp520 $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( w3a wa ex exp5o ) ABCDEFABCHDEIFGJK $.
  $}

  $( Version of ~ impexp for a triple conjunction.  (Contributed by Alan Sare,
     31-Dec-2011.) $)
  3impexp $p |- ( ( ( ph /\ ps /\ ch ) -> th ) <->
                ( ph -> ( ps -> ( ch -> th ) ) ) ) $=
    ( w3a wi id 3expd 3impd impbii ) ABCEDFZABCDFFFZKABCDKGHLABCDLGIJ $.

  ${
    3anassrs.1 $e |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $.
    $( Associative law for conjunction applied to antecedent (eliminates
       syllogism).  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    3anassrs $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) -> ta ) $=
      ( 3exp2 imp41 ) ABCDEABCDEFGH $.
  $}

  $( Associative law for four conjunctions with a triple conjunction.
     (Contributed by Alexander van der Vekens, 24-Jun-2018.) $)
  3an4anass $p |- ( ( ( ph /\ ps /\ ch ) /\ th )
                    <-> ( ( ph /\ ps ) /\ ( ch /\ th ) ) ) $=
    ( w3a wa df-3an anbi1i anass bitri ) ABCEZDFABFZCFZDFLCDFFKMDABCGHLCDIJ $.

  ${
    ad4ant13.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad4ant13 $p |- ( ( ( ( ph /\ th ) /\ ps ) /\ ta ) -> ch ) $=
      ( wi ex a1dd a1d imp41 ) ADBECABECGGDABCEABCFHIJK $.
  $}

  ${
    ad4ant14.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad4ant14 $p |- ( ( ( ( ph /\ th ) /\ ta ) /\ ps ) -> ch ) $=
      ( wi ex 2a1d imp41 ) ADEBCABCGDEABCFHIJ $.
  $}

  ${
    ad4ant123.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad4ant123 $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ ta ) -> th ) $=
      ( 3exp a1ddd imp41 ) ABCEDABCEDABCDFGHI $.
  $}

  ${
    ad4ant124.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad4ant124 $p |- ( ( ( ( ph /\ ps ) /\ ta ) /\ ch ) -> th ) $=
      ( wi 3exp a1dd imp41 ) ABECDABCDGEABCDFHIJ $.
  $}

  ${
    ad4ant134.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad4ant134 $p |- ( ( ( ( ph /\ ta ) /\ ps ) /\ ch ) -> th ) $=
      ( wi 3exp a1d imp41 ) AEBCDABCDGGEABCDFHIJ $.
  $}

  ${
    ad4ant23.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad4ant23 $p |- ( ( ( ( th /\ ph ) /\ ps ) /\ ta ) -> ch ) $=
      ( wi ex a1dd a1i imp41 ) DABECABECGGGDABCEABCFHIJK $.
  $}

  ${
    ad4ant24.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad4ant24 $p |- ( ( ( ( th /\ ph ) /\ ta ) /\ ps ) -> ch ) $=
      ( wi ex a1i13 imp41 ) DAEBCDAEBCGABCFHIJ $.
  $}

  ${
    ad4ant234.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad4ant234 $p |- ( ( ( ( ta /\ ph ) /\ ps ) /\ ch ) -> th ) $=
      ( wi 3exp a1i imp41 ) EABCDABCDGGGEABCDFHIJ $.
  $}

  ${
    ad5ant12.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant12 $p |- ( ( ( ( ( ph /\ ps ) /\ th ) /\ ta ) /\ et ) -> ch ) $=
      ( wa ad3antrrr ) ABHCDEFGI $.
  $}

  ${
    ad5ant13.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant13 $p |- ( ( ( ( ( ph /\ th ) /\ ps ) /\ ta ) /\ et ) -> ch ) $=
      ( wa wi ex 2a1dd a1ddd com45 com23 imp imp41 ) ADHBEFCADBEFCIIZIABDQABDFE
      CABDFECIABCDEABCGJKLMNOP $.
  $}

  ${
    ad5ant14.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant14 $p |- ( ( ( ( ( ph /\ th ) /\ ta ) /\ ps ) /\ et ) -> ch ) $=
      ( wa wi ex 2a1dd a1ddd com45 com23 com34 imp imp41 ) ADHEBFCADEBFCIZIIADB
      ERABDERIABDFECABDFECIABCDEABCGJKLMNOPQ $.
  $}

  ${
    ad5ant15.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant15 $p |- ( ( ( ( ( ph /\ th ) /\ ta ) /\ et ) /\ ps ) -> ch ) $=
      ( wa wi ex 2a1dd a1ddd com45 com23 com34 imp imp41 ) ADHEFBCADEFBCIIIADEB
      FCADBEFCIZABDERIABDFECABDFECIABCDEABCGJKLMNOMPQ $.
  $}

  ${
    ad5ant23.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant23 $p |- ( ( ( ( ( th /\ ph ) /\ ps ) /\ ta ) /\ et ) -> ch ) $=
      ( wa wi ex 2a1dd a1ddd com45 com3r imp imp41 ) DAHBEFCDABEFCIIZIABDQABDFE
      CABDFECIABCDEABCGJKLMNOP $.
  $}

  ${
    ad5ant24.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant24 $p |- ( ( ( ( ( th /\ ph ) /\ ta ) /\ ps ) /\ et ) -> ch ) $=
      ( wa wi ex 2a1dd a1ddd com45 com3r com34 imp imp41 ) DAHEBFCDAEBFCIZIIDAB
      ERABDERIABDFECABDFECIABCDEABCGJKLMNOPQ $.
  $}

  ${
    ad5ant25.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant25 $p |- ( ( ( ( ( th /\ ph ) /\ ta ) /\ et ) /\ ps ) -> ch ) $=
      ( wa wi ex 2a1dd a1ddd com45 com3r com34 imp imp41 ) DAHEFBCDAEFBCIIIDAEB
      FCDABEFCIZABDERIABDFECABDFECIABCDEABCGJKLMNOMPQ $.
  $}

  ${
    ad5ant245.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant245 $p |- ( ( ( ( ( ta /\ ph ) /\ et ) /\ ps ) /\ ch ) -> th ) $=
      ( wa wi 3exp a1i13 imp imp41 ) EAHFBCDEAFBCDIIZIEAFNABCDGJKLM $.
  $}

  ${
    ad5ant234.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant234 $p |- ( ( ( ( ( ta /\ ph ) /\ ps ) /\ ch ) /\ et ) -> th ) $=
      ( wa wi 3exp a1ddd com5r imp imp41 ) EAHBCFDEABCFDIIIABCFEDABCFEDIABCEDAB
      CDGJKKLMN $.
  $}

  ${
    ad5ant235.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant235 $p |- ( ( ( ( ( ta /\ ph ) /\ ps ) /\ et ) /\ ch ) -> th ) $=
      ( wa wi 3exp a1ddd com5r com45 imp imp41 ) EAHBFCDEABFCDIIIEABCFDABCFEDAB
      CFEDIABCEDABCDGJKKLMNO $.
  $}

  ${
    ad5ant123.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant123 $p |- ( ( ( ( ( ph /\ ps ) /\ ch ) /\ ta ) /\ et ) -> th ) $=
      ( wa wi 3exp a1ddd com45 imp imp41 ) ABHCEFDABCEFDIIIABCFEDABCFEDIABCEDAB
      CDGJKKLMN $.
  $}

  ${
    ad5ant124.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant124 $p |- ( ( ( ( ( ph /\ ps ) /\ ta ) /\ ch ) /\ et ) -> th ) $=
      ( wa wi 3exp a1ddd com45 com34 imp imp41 ) ABHECFDABECFDIZIIABCEPABCFEDAB
      CFEDIABCEDABCDGJKKLMNO $.
  $}

  ${
    ad5ant125.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant125 $p |- ( ( ( ( ( ph /\ ps ) /\ ta ) /\ et ) /\ ch ) -> th ) $=
      ( wa wi 3exp 2a1dd imp imp41 ) ABHEFCDABEFCDIZIIABNEFABCDGJKLM $.
  $}

  ${
    ad5ant134.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant134 $p |- ( ( ( ( ( ph /\ ta ) /\ ps ) /\ ch ) /\ et ) -> th ) $=
      ( wa wi 3exp a1ddd com45 com34 com23 imp imp41 ) AEHBCFDAEBCFDIZIZIABERAB
      CEQABCFEDABCFEDIABCEDABCDGJKKLMNOP $.
  $}

  ${
    ad5ant135.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant135 $p |- ( ( ( ( ( ph /\ ta ) /\ ps ) /\ et ) /\ ch ) -> th ) $=
      ( wa wi 3exp a1ddd com45 com34 com23 imp imp41 ) AEHBFCDAEBFCDIIIAEBCFDAB
      ECFDIZIABCEQABCFEDABCFEDIABCEDABCDGJKKLMNLOP $.
  $}

  ${
    ad5ant145.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant145 $p |- ( ( ( ( ( ph /\ ta ) /\ et ) /\ ps ) /\ ch ) -> th ) $=
      ( wa wi 3exp 2a1d imp imp41 ) AEHFBCDAEFBCDIIZIANEFABCDGJKLM $.
  $}

  ${
    ad5ant1345.1 $e |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) -> ta ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant1345 $p |- ( ( ( ( ( ph /\ et ) /\ ps ) /\ ch ) /\ th ) -> ta ) $=
      ( adantl3r ) AFBCDEGH $.
  $}

  ${
    ad5ant2345.1 $e |- ( ( ( ( ph /\ ps ) /\ ch ) /\ th ) -> ta ) $.
    $( Deduction adding conjuncts to antecedent.  (Contributed by Alan Sare,
       17-Oct-2017.) $)
    ad5ant2345 $p |- ( ( ( ( ( et /\ ph ) /\ ps ) /\ ch ) /\ th ) -> ta ) $=
      ( wa wi exp41 adantl imp41 ) FAHBCDEABCDEIIIFABCDEGJKL $.
  $}

  ${
    3adant1l.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    3adant1l $p |- ( ( ( ta /\ ph ) /\ ps /\ ch ) -> th ) $=
      ( wa 3expb adantll 3impb ) EAGBCDABCGDEABCDFHIJ $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    3adant1r $p |- ( ( ( ph /\ ta ) /\ ps /\ ch ) -> th ) $=
      ( wa 3expb adantlr 3impb ) AEGBCDABCGDEABCDFHIJ $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    3adant2l $p |- ( ( ph /\ ( ta /\ ps ) /\ ch ) -> th ) $=
      ( wa 3com12 3adant1l ) EBGACDBACDEABCDFHIH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    3adant2r $p |- ( ( ph /\ ( ps /\ ta ) /\ ch ) -> th ) $=
      ( wa 3com12 3adant1r ) BEGACDBACDEABCDFHIH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    3adant3l $p |- ( ( ph /\ ps /\ ( ta /\ ch ) ) -> th ) $=
      ( wa 3com13 3adant1l ) ECGBADCBADEABCDFHIH $.

    $( Deduction adding a conjunct to antecedent.  (Contributed by NM,
       8-Jan-2006.) $)
    3adant3r $p |- ( ( ph /\ ps /\ ( ch /\ ta ) ) -> th ) $=
      ( wa 3com13 3adant1r ) CEGBADCBADEABCDFHIH $.
  $}

  ${
    syl12anc.1 $e |- ( ph -> ps ) $.
    syl12anc.2 $e |- ( ph -> ch ) $.
    syl12anc.3 $e |- ( ph -> th ) $.
    ${
      syl12anc.4 $e |- ( ( ps /\ ( ch /\ th ) ) -> ta ) $.
      $( Syllogism combined with contraction.  (Contributed by Jeff Hankins,
         1-Aug-2009.) $)
      syl12anc $p |- ( ph -> ta ) $=
        ( wa jca32 syl ) ABCDJJEABCDFGHKIL $.
    $}

    ${
      syl21anc.4 $e |- ( ( ( ps /\ ch ) /\ th ) -> ta ) $.
      $( Syllogism combined with contraction.  (Contributed by Jeff Hankins,
         1-Aug-2009.) $)
      syl21anc $p |- ( ph -> ta ) $=
        ( wa jca31 syl ) ABCJDJEABCDFGHKIL $.
    $}

    ${
      syl3anc.4 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl3anc $p |- ( ph -> ta ) $=
        ( w3a 3jca syl ) ABCDJEABCDFGHKIL $.
    $}

    syl22anc.4 $e |- ( ph -> ta ) $.
    ${
      syl22anc.5 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta ) ) -> et ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl22anc $p |- ( ph -> et ) $=
        ( wa jca syl12anc ) ABCLDEFABCGHMIJKN $.
    $}

    ${
      syl13anc.5 $e |- ( ( ps /\ ( ch /\ th /\ ta ) ) -> et ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl13anc $p |- ( ph -> et ) $=
        ( w3a 3jca syl2anc ) ABCDELFGACDEHIJMKN $.
    $}

    ${
      syl31anc.5 $e |- ( ( ( ps /\ ch /\ th ) /\ ta ) -> et ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl31anc $p |- ( ph -> et ) $=
        ( w3a 3jca syl2anc ) ABCDLEFABCDGHIMJKN $.
    $}

    ${
      syl112anc.5 $e |- ( ( ps /\ ch /\ ( th /\ ta ) ) -> et ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl112anc $p |- ( ph -> et ) $=
        ( wa jca syl3anc ) ABCDELFGHADEIJMKN $.
    $}

    ${
      syl121anc.5 $e |- ( ( ps /\ ( ch /\ th ) /\ ta ) -> et ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl121anc $p |- ( ph -> et ) $=
        ( wa jca syl3anc ) ABCDLEFGACDHIMJKN $.
    $}

    ${
      syl211anc.5 $e |- ( ( ( ps /\ ch ) /\ th /\ ta ) -> et ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl211anc $p |- ( ph -> et ) $=
        ( wa jca syl3anc ) ABCLDEFABCGHMIJKN $.
    $}

    syl23anc.5 $e |- ( ph -> et ) $.
    ${
      syl23anc.6 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta /\ et ) ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl23anc $p |- ( ph -> ze ) $=
        ( wa jca syl13anc ) ABCNDEFGABCHIOJKLMP $.
    $}

    ${
      syl32anc.6 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et ) ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl32anc $p |- ( ph -> ze ) $=
        ( wa jca syl31anc ) ABCDEFNGHIJAEFKLOMP $.
    $}

    ${
      syl122anc.6 $e |- ( ( ps /\ ( ch /\ th ) /\ ( ta /\ et ) ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl122anc $p |- ( ph -> ze ) $=
        ( wa jca syl121anc ) ABCDEFNGHIJAEFKLOMP $.
    $}

    ${
      syl212anc.6 $e |- ( ( ( ps /\ ch ) /\ th /\ ( ta /\ et ) ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl212anc $p |- ( ph -> ze ) $=
        ( wa jca syl211anc ) ABCDEFNGHIJAEFKLOMP $.
    $}

    ${
      syl221anc.6 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta ) /\ et ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl221anc $p |- ( ph -> ze ) $=
        ( wa jca syl211anc ) ABCDENFGHIADEJKOLMP $.
    $}

    ${
      syl113anc.6 $e |- ( ( ps /\ ch /\ ( th /\ ta /\ et ) ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl113anc $p |- ( ph -> ze ) $=
        ( w3a 3jca syl3anc ) ABCDEFNGHIADEFJKLOMP $.
    $}

    ${
      syl131anc.6 $e |- ( ( ps /\ ( ch /\ th /\ ta ) /\ et ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl131anc $p |- ( ph -> ze ) $=
        ( w3a 3jca syl3anc ) ABCDENFGHACDEIJKOLMP $.
    $}

    ${
      syl311anc.6 $e |- ( ( ( ps /\ ch /\ th ) /\ ta /\ et ) -> ze ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl311anc $p |- ( ph -> ze ) $=
        ( w3a 3jca syl3anc ) ABCDNEFGABCDHIJOKLMP $.
    $}

    syl33anc.6 $e |- ( ph -> ze ) $.
    ${
      syl33anc.7 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et /\ ze ) )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl33anc $p |- ( ph -> si ) $=
        ( w3a 3jca syl13anc ) ABCDPEFGHABCDIJKQLMNOR $.
    $}

    ${
      syl222anc.7 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta ) /\ ( et /\ ze ) )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl222anc $p |- ( ph -> si ) $=
        ( wa jca syl221anc ) ABCDEFGPHIJKLAFGMNQOR $.
    $}

    ${
      syl123anc.7 $e |- ( ( ps /\ ( ch /\ th ) /\ ( ta /\ et /\ ze ) )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl123anc $p |- ( ph -> si ) $=
        ( wa jca syl113anc ) ABCDPEFGHIACDJKQLMNOR $.
    $}

    ${
      syl132anc.7 $e |- ( ( ps /\ ( ch /\ th /\ ta ) /\ ( et /\ ze ) )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Jul-2012.) $)
      syl132anc $p |- ( ph -> si ) $=
        ( wa jca syl131anc ) ABCDEFGPHIJKLAFGMNQOR $.
    $}

    ${
      syl213anc.7 $e |- ( ( ( ps /\ ch ) /\ th /\ ( ta /\ et /\ ze ) )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl213anc $p |- ( ph -> si ) $=
        ( wa jca syl113anc ) ABCPDEFGHABCIJQKLMNOR $.
    $}

    ${
      syl231anc.7 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta /\ et ) /\ ze )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl231anc $p |- ( ph -> si ) $=
        ( wa jca syl131anc ) ABCPDEFGHABCIJQKLMNOR $.
    $}

    ${
      syl312anc.7 $e |- ( ( ( ps /\ ch /\ th ) /\ ta /\ ( et /\ ze ) )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Jul-2012.) $)
      syl312anc $p |- ( ph -> si ) $=
        ( wa jca syl311anc ) ABCDEFGPHIJKLAFGMNQOR $.
    $}

    ${
      syl321anc.7 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et ) /\ ze )
           -> si ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Jul-2012.) $)
      syl321anc $p |- ( ph -> si ) $=
        ( wa jca syl311anc ) ABCDEFPGHIJKAEFLMQNOR $.
    $}

    syl133anc.7 $e |- ( ph -> si ) $.
    ${
      syl133anc.8 $e |- ( ( ps /\ ( ch /\ th /\ ta ) /\ ( et /\ ze /\ si ) )
           -> rh ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl133anc $p |- ( ph -> rh ) $=
        ( w3a 3jca syl131anc ) ABCDEFGHRIJKLMAFGHNOPSQT $.
    $}

    ${
      syl313anc.8 $e |- ( ( ( ps /\ ch /\ th ) /\ ta /\ ( et /\ ze /\ si ) )
           -> rh ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl313anc $p |- ( ph -> rh ) $=
        ( w3a 3jca syl311anc ) ABCDEFGHRIJKLMAFGHNOPSQT $.
    $}

    ${
      syl331anc.8 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et /\ ze ) /\ si )
           -> rh ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl331anc $p |- ( ph -> rh ) $=
        ( w3a 3jca syl311anc ) ABCDEFGRHIJKLAEFGMNOSPQT $.
    $}

    ${
      syl223anc.8 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta ) /\ ( et /\ ze /\ si )
          ) -> rh ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl223anc $p |- ( ph -> rh ) $=
        ( wa jca syl213anc ) ABCDERFGHIJKADELMSNOPQT $.
    $}

    ${
      syl232anc.8 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta /\ et ) /\ ( ze /\ si )
          ) -> rh ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl232anc $p |- ( ph -> rh ) $=
        ( wa jca syl231anc ) ABCDEFGHRIJKLMNAGHOPSQT $.
    $}

    ${
      syl322anc.8 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et ) /\ ( ze /\ si )
          ) -> rh ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl322anc $p |- ( ph -> rh ) $=
        ( wa jca syl321anc ) ABCDEFGHRIJKLMNAGHOPSQT $.
    $}

    syl233anc.8 $e |- ( ph -> rh ) $.
    ${
      syl233anc.9 $e |- ( ( ( ps /\ ch ) /\ ( th /\ ta /\ et ) /\ ( ze /\ si /\
          rh ) ) -> mu ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl233anc $p |- ( ph -> mu ) $=
        ( wa jca syl133anc ) ABCTDEFGHIJABCKLUAMNOPQRSUB $.
    $}

    ${
      syl323anc.9 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et ) /\ ( ze /\ si /\
          rh ) ) -> mu ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl323anc $p |- ( ph -> mu ) $=
        ( wa jca syl313anc ) ABCDEFTGHIJKLMAEFNOUAPQRSUB $.
    $}

    ${
      syl332anc.9 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et /\ ze ) /\ ( si /\
          rh ) ) -> mu ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl332anc $p |- ( ph -> mu ) $=
        ( wa jca syl331anc ) ABCDEFGHITJKLMNOPAHIQRUASUB $.
    $}

    syl333anc.9 $e |- ( ph -> mu ) $.
    ${
      syl333anc.10 $e |- ( ( ( ps /\ ch /\ th ) /\ ( ta /\ et /\ ze )
          /\ ( si /\ rh /\ mu ) ) -> la ) $.
      $( A syllogism inference combined with contraction.  (Contributed by NM,
         10-Mar-2012.) $)
      syl333anc $p |- ( ph -> la ) $=
        ( w3a 3jca syl331anc ) ABCDEFGHIJUBKLMNOPQAHIJRSTUCUAUD $.
    $}
  $}

  ${
    syl3an1.1 $e |- ( ph -> ps ) $.
    syl3an1.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an1 $p |- ( ( ph /\ ch /\ th ) -> ta ) $=
      ( w3a 3anim1i syl ) ACDHBCDHEABCDFIGJ $.
  $}

  ${
    syl3an2.1 $e |- ( ph -> ch ) $.
    syl3an2.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an2 $p |- ( ( ps /\ ph /\ th ) -> ta ) $=
      ( wi 3exp syl5 3imp ) BADEACBDEHFBCDEGIJK $.
  $}

  ${
    syl3an3.1 $e |- ( ph -> th ) $.
    syl3an3.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an3 $p |- ( ( ps /\ ch /\ ph ) -> ta ) $=
      ( 3exp syl7 3imp ) BCAEADBCEFBCDEGHIJ $.
  $}

  ${
    syl3an1b.1 $e |- ( ph <-> ps ) $.
    syl3an1b.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an1b $p |- ( ( ph /\ ch /\ th ) -> ta ) $=
      ( biimpi syl3an1 ) ABCDEABFHGI $.
  $}

  ${
    syl3an2b.1 $e |- ( ph <-> ch ) $.
    syl3an2b.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an2b $p |- ( ( ps /\ ph /\ th ) -> ta ) $=
      ( biimpi syl3an2 ) ABCDEACFHGI $.
  $}

  ${
    syl3an3b.1 $e |- ( ph <-> th ) $.
    syl3an3b.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an3b $p |- ( ( ps /\ ch /\ ph ) -> ta ) $=
      ( biimpi syl3an3 ) ABCDEADFHGI $.
  $}

  ${
    syl3an1br.1 $e |- ( ps <-> ph ) $.
    syl3an1br.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an1br $p |- ( ( ph /\ ch /\ th ) -> ta ) $=
      ( biimpri syl3an1 ) ABCDEBAFHGI $.
  $}

  ${
    syl3an2br.1 $e |- ( ch <-> ph ) $.
    syl3an2br.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an2br $p |- ( ( ps /\ ph /\ th ) -> ta ) $=
      ( biimpri syl3an2 ) ABCDECAFHGI $.
  $}

  ${
    syl3an3br.1 $e |- ( th <-> ph ) $.
    syl3an3br.2 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 22-Aug-1995.) $)
    syl3an3br $p |- ( ( ps /\ ch /\ ph ) -> ta ) $=
      ( biimpri syl3an3 ) ABCDEDAFHGI $.
  $}

  ${
    syl3an.1 $e |- ( ph -> ps ) $.
    syl3an.2 $e |- ( ch -> th ) $.
    syl3an.3 $e |- ( ta -> et ) $.
    syl3an.4 $e |- ( ( ps /\ th /\ et ) -> ze ) $.
    $( A triple syllogism inference.  (Contributed by NM, 13-May-2004.) $)
    syl3an $p |- ( ( ph /\ ch /\ ta ) -> ze ) $=
      ( w3a 3anim123i syl ) ACELBDFLGABCDEFHIJMKN $.
  $}

  ${
    syl3anb.1 $e |- ( ph <-> ps ) $.
    syl3anb.2 $e |- ( ch <-> th ) $.
    syl3anb.3 $e |- ( ta <-> et ) $.
    syl3anb.4 $e |- ( ( ps /\ th /\ et ) -> ze ) $.
    $( A triple syllogism inference.  (Contributed by NM, 15-Oct-2005.) $)
    syl3anb $p |- ( ( ph /\ ch /\ ta ) -> ze ) $=
      ( w3a 3anbi123i sylbi ) ACELBDFLGABCDEFHIJMKN $.
  $}

  ${
    syl3anbr.1 $e |- ( ps <-> ph ) $.
    syl3anbr.2 $e |- ( th <-> ch ) $.
    syl3anbr.3 $e |- ( et <-> ta ) $.
    syl3anbr.4 $e |- ( ( ps /\ th /\ et ) -> ze ) $.
    $( A triple syllogism inference.  (Contributed by NM, 29-Dec-2011.) $)
    syl3anbr $p |- ( ( ph /\ ch /\ ta ) -> ze ) $=
      ( bicomi syl3anb ) ABCDEFGBAHLDCILFEJLKM $.
  $}

  ${
    syld3an3.1 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    syld3an3.2 $e |- ( ( ph /\ ps /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 20-May-2007.) $)
    syld3an3 $p |- ( ( ph /\ ps /\ ch ) -> ta ) $=
      ( w3a simp1 simp2 syl3anc ) ABCHABDEABCIABCJFGK $.
  $}

  ${
    syld3an1.1 $e |- ( ( ch /\ ps /\ th ) -> ph ) $.
    syld3an1.2 $e |- ( ( ph /\ ps /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 7-Jul-2008.) $)
    syld3an1 $p |- ( ( ch /\ ps /\ th ) -> ta ) $=
      ( 3com13 syld3an3 ) DBCEDBCAECBDAFHABDEGHIH $.
  $}

  ${
    syld3an2.1 $e |- ( ( ph /\ ch /\ th ) -> ps ) $.
    syld3an2.2 $e |- ( ( ph /\ ps /\ th ) -> ta ) $.
    $( A syllogism inference.  (Contributed by NM, 20-May-2007.) $)
    syld3an2 $p |- ( ( ph /\ ch /\ th ) -> ta ) $=
      ( 3com23 syld3an3 ) ADCEADCBEACDBFHABDEGHIH $.
  $}

  ${
    syl3anl1.1 $e |- ( ph -> ps ) $.
    syl3anl1.2 $e |- ( ( ( ps /\ ch /\ th ) /\ ta ) -> et ) $.
    $( A syllogism inference.  (Contributed by NM, 24-Feb-2005.) $)
    syl3anl1 $p |- ( ( ( ph /\ ch /\ th ) /\ ta ) -> et ) $=
      ( w3a 3anim1i sylan ) ACDIBCDIEFABCDGJHK $.
  $}

  ${
    syl3anl2.1 $e |- ( ph -> ch ) $.
    syl3anl2.2 $e |- ( ( ( ps /\ ch /\ th ) /\ ta ) -> et ) $.
    $( A syllogism inference.  (Contributed by NM, 24-Feb-2005.) $)
    syl3anl2 $p |- ( ( ( ps /\ ph /\ th ) /\ ta ) -> et ) $=
      ( w3a wi ex syl3an2 imp ) BADIEFABCDEFJGBCDIEFHKLM $.
  $}

  ${
    syl3anl3.1 $e |- ( ph -> th ) $.
    syl3anl3.2 $e |- ( ( ( ps /\ ch /\ th ) /\ ta ) -> et ) $.
    $( A syllogism inference.  (Contributed by NM, 24-Feb-2005.) $)
    syl3anl3 $p |- ( ( ( ps /\ ch /\ ph ) /\ ta ) -> et ) $=
      ( w3a 3anim3i sylan ) BCAIBCDIEFADBCGJHK $.
  $}

  ${
    syl3anl.1 $e |- ( ph -> ps ) $.
    syl3anl.2 $e |- ( ch -> th ) $.
    syl3anl.3 $e |- ( ta -> et ) $.
    syl3anl.4 $e |- ( ( ( ps /\ th /\ et ) /\ ze ) -> si ) $.
    $( A triple syllogism inference.  (Contributed by NM, 24-Dec-2006.) $)
    syl3anl $p |- ( ( ( ph /\ ch /\ ta ) /\ ze ) -> si ) $=
      ( w3a 3anim123i sylan ) ACEMBDFMGHABCDEFIJKNLO $.
  $}

  ${
    syl3anr1.1 $e |- ( ph -> ps ) $.
    syl3anr1.2 $e |- ( ( ch /\ ( ps /\ th /\ ta ) ) -> et ) $.
    $( A syllogism inference.  (Contributed by NM, 31-Jul-2007.) $)
    syl3anr1 $p |- ( ( ch /\ ( ph /\ th /\ ta ) ) -> et ) $=
      ( w3a 3anim1i sylan2 ) ADEICBDEIFABDEGJHK $.
  $}

  ${
    syl3anr2.1 $e |- ( ph -> th ) $.
    syl3anr2.2 $e |- ( ( ch /\ ( ps /\ th /\ ta ) ) -> et ) $.
    $( A syllogism inference.  (Contributed by NM, 1-Aug-2007.) $)
    syl3anr2 $p |- ( ( ch /\ ( ps /\ ph /\ ta ) ) -> et ) $=
      ( w3a ancoms syl3anl2 ) BAEICFABDECFGCBDEIFHJKJ $.
  $}

  ${
    syl3anr3.1 $e |- ( ph -> ta ) $.
    syl3anr3.2 $e |- ( ( ch /\ ( ps /\ th /\ ta ) ) -> et ) $.
    $( A syllogism inference.  (Contributed by NM, 23-Aug-2007.) $)
    syl3anr3 $p |- ( ( ch /\ ( ps /\ th /\ ph ) ) -> et ) $=
      ( w3a 3anim3i sylan2 ) BDAICBDEIFAEBDGJHK $.
  $}

  ${
    3impdi.1 $e |- ( ( ( ph /\ ps ) /\ ( ph /\ ch ) ) -> th ) $.
    $( Importation inference (undistribute conjunction).  (Contributed by NM,
       14-Aug-1995.) $)
    3impdi $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( anandis 3impb ) ABCDABCDEFG $.
  $}

  ${
    3impdir.1 $e |- ( ( ( ph /\ ps ) /\ ( ch /\ ps ) ) -> th ) $.
    $( Importation inference (undistribute conjunction).  (Contributed by NM,
       20-Aug-1995.) $)
    3impdir $p |- ( ( ph /\ ch /\ ps ) -> th ) $=
      ( anandirs 3impa ) ACBDACBDEFG $.
  $}

  ${
    3anidm12.1 $e |- ( ( ph /\ ph /\ ps ) -> ch ) $.
    $( Inference from idempotent law for conjunction.  (Contributed by NM,
       7-Mar-2008.) $)
    3anidm12 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( 3expib anabsi5 ) ABCAABCDEF $.
  $}

  ${
    3anidm13.1 $e |- ( ( ph /\ ps /\ ph ) -> ch ) $.
    $( Inference from idempotent law for conjunction.  (Contributed by NM,
       7-Mar-2008.) $)
    3anidm13 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( 3com23 3anidm12 ) ABCABACDEF $.
  $}

  ${
    3anidm23.1 $e |- ( ( ph /\ ps /\ ps ) -> ch ) $.
    $( Inference from idempotent law for conjunction.  (Contributed by NM,
       1-Feb-2007.) $)
    3anidm23 $p |- ( ( ph /\ ps ) -> ch ) $=
      ( 3expa anabss3 ) ABCABBCDEF $.
  $}

  ${
    syl2an3an.1 $e |- ( ph -> ps ) $.
    syl2an3an.2 $e |- ( ph -> ch ) $.
    syl2an3an.3 $e |- ( th -> ta ) $.
    syl2an3an.4 $e |- ( ( ps /\ ch /\ ta ) -> et ) $.
    $( ~ syl3an with antecedents in standard conjunction form.  (Contributed by
       Alan Sare, 31-Aug-2016.) $)
    syl2an3an $p |- ( ( ph /\ th ) -> et ) $=
      ( syl3an 3anidm12 ) ADFABACDEFGHIJKL $.
  $}

  ${
    syl2an23an.1 $e |- ( ph -> ps ) $.
    syl2an23an.2 $e |- ( ph -> ch ) $.
    syl2an23an.3 $e |- ( ( th /\ ph ) -> ta ) $.
    syl2an23an.4 $e |- ( ( ps /\ ch /\ ta ) -> et ) $.
    $( Deduction related to ~ syl3an with antecedents in standard conjunction
       form.  (Contributed by Alan Sare, 31-Aug-2016.) $)
    syl2an23an $p |- ( ( th /\ ph ) -> et ) $=
      ( wa wi 3exp sylc syl5 anabsi7 ) DAFDAKEAFIABCEFLGHBCEFJMNOP $.
  $}

  ${
    3ori.1 $e |- ( ph \/ ps \/ ch ) $.
    $( Infer implication from triple disjunction.  (Contributed by NM,
       26-Sep-2006.) $)
    3ori $p |- ( ( -. ph /\ -. ps ) -> ch ) $=
      ( wn wa wo ioran w3o df-3or mpbi ori sylbir ) AEBEFABGZECABHNCABCINCGDABC
      JKLM $.
  $}

  $( Disjunction of three antecedents.  (Contributed by NM, 8-Apr-1994.) $)
  3jao $p |- ( ( ( ph -> ps ) /\ ( ch -> ps ) /\ ( th -> ps ) ) ->
              ( ( ph \/ ch \/ th ) -> ps ) ) $=
    ( w3o wo wi w3a df-3or jao syl6 3imp syl5bi ) ACDEACFZDFZABGZCBGZDBGZHBACDI
    PQROBGZPQNBGRSGABCJNBDJKLM $.

  $( Disjunction of three antecedents.  (Contributed by NM, 13-Sep-2011.) $)
  3jaob $p |- ( ( ( ph \/ ch \/ th ) -> ps ) <->
              ( ( ph -> ps ) /\ ( ch -> ps ) /\ ( th -> ps ) ) ) $=
    ( w3o wi w3a 3mix1 imim1i 3mix2 3mix3 3jca 3jao impbii ) ACDEZBFZABFZCBFZDB
    FZGPQRSAOBACDHICOBCADJIDOBDACKILABCDMN $.

  ${
    3jaoi.1 $e |- ( ph -> ps ) $.
    3jaoi.2 $e |- ( ch -> ps ) $.
    3jaoi.3 $e |- ( th -> ps ) $.
    $( Disjunction of three antecedents (inference).  (Contributed by NM,
       12-Sep-1995.) $)
    3jaoi $p |- ( ( ph \/ ch \/ th ) -> ps ) $=
      ( wi w3a w3o 3pm3.2i 3jao ax-mp ) ABHZCBHZDBHZIACDJBHNOPEFGKABCDLM $.
  $}

  ${
    3jaod.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3jaod.2 $e |- ( ph -> ( th -> ch ) ) $.
    3jaod.3 $e |- ( ph -> ( ta -> ch ) ) $.
    $( Disjunction of three antecedents (deduction).  (Contributed by NM,
       14-Oct-2005.) $)
    3jaod $p |- ( ph -> ( ( ps \/ th \/ ta ) -> ch ) ) $=
      ( wi w3o 3jao syl3anc ) ABCIDCIECIBDEJCIFGHBCDEKL $.
  $}

  ${
    3jaoian.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    3jaoian.2 $e |- ( ( th /\ ps ) -> ch ) $.
    3jaoian.3 $e |- ( ( ta /\ ps ) -> ch ) $.
    $( Disjunction of three antecedents (inference).  (Contributed by NM,
       14-Oct-2005.) $)
    3jaoian $p |- ( ( ( ph \/ th \/ ta ) /\ ps ) -> ch ) $=
      ( w3o wi ex 3jaoi imp ) ADEIBCABCJDEABCFKDBCGKEBCHKLM $.
  $}

  ${
    3jaodan.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    3jaodan.2 $e |- ( ( ph /\ th ) -> ch ) $.
    3jaodan.3 $e |- ( ( ph /\ ta ) -> ch ) $.
    $( Disjunction of three antecedents (deduction).  (Contributed by NM,
       14-Oct-2005.) $)
    3jaodan $p |- ( ( ph /\ ( ps \/ th \/ ta ) ) -> ch ) $=
      ( w3o ex 3jaod imp ) ABDEICABCDEABCFJADCGJAECHJKL $.
  $}

  ${
    mpjao3dan.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    mpjao3dan.2 $e |- ( ( ph /\ th ) -> ch ) $.
    mpjao3dan.3 $e |- ( ( ph /\ ta ) -> ch ) $.
    mpjao3dan.4 $e |- ( ph -> ( ps \/ th \/ ta ) ) $.
    $( Eliminate a three-way disjunction in a deduction.  (Contributed by
       Thierry Arnoux, 13-Apr-2018.) $)
    mpjao3dan $p |- ( ph -> ch ) $=
      ( wo jaodan w3o df-3or sylib mpjaodan ) ABDJZCEABCDFGKHABDELPEJIBDEMNO $.
  $}

  ${
    3jaao.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3jaao.2 $e |- ( th -> ( ta -> ch ) ) $.
    3jaao.3 $e |- ( et -> ( ze -> ch ) ) $.
    $( Inference conjoining and disjoining the antecedents of three
       implications.  (Contributed by Jeff Hankins, 15-Aug-2009.)  (Proof
       shortened by Andrew Salmon, 13-May-2011.) $)
    3jaao $p |- ( ( ph /\ th /\ et ) -> ( ( ps \/ ta \/ ze ) -> ch ) ) $=
      ( w3a wi 3ad2ant1 3ad2ant2 3ad2ant3 3jaod ) ADFKBCEGADBCLFHMDAECLFINFAGCL
      DJOP $.
  $}

  ${
    syl3an9b.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    syl3an9b.2 $e |- ( th -> ( ch <-> ta ) ) $.
    syl3an9b.3 $e |- ( et -> ( ta <-> ze ) ) $.
    $( Nested syllogism inference conjoining 3 dissimilar antecedents.
       (Contributed by NM, 1-May-1995.) $)
    syl3an9b $p |- ( ( ph /\ th /\ et ) -> ( ps <-> ze ) ) $=
      ( wb wa sylan9bb 3impa ) ADFBGKADLBEFGABCDEHIMJMN $.
  $}

  ${
    bi3d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bi3d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    bi3d.3 $e |- ( ph -> ( et <-> ze ) ) $.
    $( Deduction joining 3 equivalences to form equivalence of disjunctions.
       (Contributed by NM, 20-Apr-1994.) $)
    3orbi123d $p |- ( ph -> ( ( ps \/ th \/ et ) <-> ( ch \/ ta \/ ze ) ) ) $=
      ( wo w3o orbi12d df-3or 3bitr4g ) ABDKZFKCEKZGKBDFLCEGLAPQFGABCDEHIMJMBDF
      NCEGNO $.

    $( Deduction joining 3 equivalences to form equivalence of conjunctions.
       (Contributed by NM, 22-Apr-1994.) $)
    3anbi123d $p |- ( ph -> ( ( ps /\ th /\ et ) <-> ( ch /\ ta /\ ze ) ) ) $=
      ( wa w3a anbi12d df-3an 3bitr4g ) ABDKZFKCEKZGKBDFLCEGLAPQFGABCDEHIMJMBDF
      NCEGNO $.
  $}

  ${
    3anbi12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    3anbi12d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction conjoining and adding a conjunct to equivalences.
       (Contributed by NM, 8-Sep-2006.) $)
    3anbi12d $p |- ( ph -> ( ( ps /\ th /\ et ) <-> ( ch /\ ta /\ et ) ) ) $=
      ( biidd 3anbi123d ) ABCDEFFGHAFIJ $.

    $( Deduction conjoining and adding a conjunct to equivalences.
       (Contributed by NM, 8-Sep-2006.) $)
    3anbi13d $p |- ( ph -> ( ( ps /\ et /\ th ) <-> ( ch /\ et /\ ta ) ) ) $=
      ( biidd 3anbi123d ) ABCFFDEGAFIHJ $.

    $( Deduction conjoining and adding a conjunct to equivalences.
       (Contributed by NM, 8-Sep-2006.) $)
    3anbi23d $p |- ( ph -> ( ( et /\ ps /\ th ) <-> ( et /\ ch /\ ta ) ) ) $=
      ( biidd 3anbi123d ) AFFBCDEAFIGHJ $.
  $}

  ${
    3anbi1d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction adding conjuncts to an equivalence.  (Contributed by NM,
       8-Sep-2006.) $)
    3anbi1d $p |- ( ph -> ( ( ps /\ th /\ ta ) <-> ( ch /\ th /\ ta ) ) ) $=
      ( biidd 3anbi12d ) ABCDDEFADGH $.

    $( Deduction adding conjuncts to an equivalence.  (Contributed by NM,
       8-Sep-2006.) $)
    3anbi2d $p |- ( ph -> ( ( th /\ ps /\ ta ) <-> ( th /\ ch /\ ta ) ) ) $=
      ( biidd 3anbi12d ) ADDBCEADGFH $.

    $( Deduction adding conjuncts to an equivalence.  (Contributed by NM,
       8-Sep-2006.) $)
    3anbi3d $p |- ( ph -> ( ( th /\ ta /\ ps ) <-> ( th /\ ta /\ ch ) ) ) $=
      ( biidd 3anbi13d ) ADDBCEADGFH $.
  $}

  ${
    3anim123d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    3anim123d.2 $e |- ( ph -> ( th -> ta ) ) $.
    3anim123d.3 $e |- ( ph -> ( et -> ze ) ) $.
    $( Deduction joining 3 implications to form implication of conjunctions.
       (Contributed by NM, 24-Feb-2005.) $)
    3anim123d $p |- ( ph -> ( ( ps /\ th /\ et ) -> ( ch /\ ta /\ ze ) ) ) $=
      ( wa w3a anim12d df-3an 3imtr4g ) ABDKZFKCEKZGKBDFLCEGLAPQFGABCDEHIMJMBDF
      NCEGNO $.

    $( Deduction joining 3 implications to form implication of disjunctions.
       (Contributed by NM, 4-Apr-1997.) $)
    3orim123d $p |- ( ph -> ( ( ps \/ th \/ et ) -> ( ch \/ ta \/ ze ) ) ) $=
      ( wo w3o orim12d df-3or 3imtr4g ) ABDKZFKCEKZGKBDFLCEGLAPQFGABCDEHIMJMBDF
      NCEGNO $.
  $}

  $( Rearrangement of 6 conjuncts.  (Contributed by NM, 13-Mar-1995.) $)
  an6 $p |- ( ( ( ph /\ ps /\ ch ) /\ ( th /\ ta /\ et ) ) <->
              ( ( ph /\ th ) /\ ( ps /\ ta ) /\ ( ch /\ et ) ) ) $=
    ( wa w3a an4 anbi1i bitri df-3an anbi12i 3bitr4i ) ABGZCGZDEGZFGZGZADGZBEGZ
    GZCFGZGZABCHZDEFHZGTUAUCHSOQGZUCGUDOCQFIUGUBUCABDEIJKUEPUFRABCLDEFLMTUAUCLN
    $.

  $( Analogue of ~ an4 for triple conjunction.  (Contributed by Scott Fenton,
     16-Mar-2011.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
  3an6 $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) /\ ( ta /\ et ) ) <->
                ( ( ph /\ ch /\ ta ) /\ ( ps /\ th /\ et ) ) ) $=
    ( w3a wa an6 bicomi ) ACEGBDFGHABHCDHEFHGACEBDFIJ $.

  $( Analogue of ~ or4 for triple conjunction.  (Contributed by Scott Fenton,
     16-Mar-2011.) $)
  3or6 $p |- ( ( ( ph \/ ps ) \/ ( ch \/ th ) \/ ( ta \/ et ) ) <->
                ( ( ph \/ ch \/ ta ) \/ ( ps \/ th \/ et ) ) ) $=
    ( wo w3o or4 orbi1i bitr2i df-3or orbi12i 3bitr4i ) ABGZCDGZGZEFGZGZACGZEGZ
    BDGZFGZGZOPRHACEHZBDFHZGUDTUBGZRGSTEUBFIUGQRACBDIJKOPRLUEUAUFUCACELBDFLMN
    $.

  ${
    mp3an1.1 $e |- ph $.
    mp3an1.2 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       21-Nov-1994.) $)
    mp3an1 $p |- ( ( ps /\ ch ) -> th ) $=
      ( wa 3expb mpan ) ABCGDEABCDFHI $.
  $}

  ${
    mp3an2.1 $e |- ps $.
    mp3an2.2 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       21-Nov-1994.) $)
    mp3an2 $p |- ( ( ph /\ ch ) -> th ) $=
      ( 3expa mpanl2 ) ABCDEABCDFGH $.
  $}

  ${
    mp3an3.1 $e |- ch $.
    mp3an3.2 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       21-Nov-1994.) $)
    mp3an3 $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa 3expia mpi ) ABGCDEABCDFHI $.
  $}

  ${
    mp3an12.1 $e |- ph $.
    mp3an12.2 $e |- ps $.
    mp3an12.3 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       13-Jul-2005.) $)
    mp3an12 $p |- ( ch -> th ) $=
      ( mp3an1 mpan ) BCDFABCDEGHI $.
  $}

  ${
    mp3an13.1 $e |- ph $.
    mp3an13.2 $e |- ch $.
    mp3an13.3 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       14-Jul-2005.) $)
    mp3an13 $p |- ( ps -> th ) $=
      ( mp3an3 mpan ) ABDEABCDFGHI $.
  $}

  ${
    mp3an23.1 $e |- ps $.
    mp3an23.2 $e |- ch $.
    mp3an23.3 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       14-Jul-2005.) $)
    mp3an23 $p |- ( ph -> th ) $=
      ( mp3an3 mpan2 ) ABDEABCDFGHI $.
  $}

  ${
    mp3an1i.1 $e |- ps $.
    mp3an1i.2 $e |- ( ph -> ( ( ps /\ ch /\ th ) -> ta ) ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 5-Jul-2005.) $)
    mp3an1i $p |- ( ph -> ( ( ch /\ th ) -> ta ) ) $=
      ( wa wi w3a com12 mp3an1 ) CDHAEBCDAEIFABCDJEGKLK $.
  $}

  ${
    mp3anl1.1 $e |- ph $.
    mp3anl1.2 $e |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       24-Feb-2005.) $)
    mp3anl1 $p |- ( ( ( ps /\ ch ) /\ th ) -> ta ) $=
      ( wa wi w3a ex mp3an1 imp ) BCHDEABCDEIFABCJDEGKLM $.
  $}

  ${
    mp3anl2.1 $e |- ps $.
    mp3anl2.2 $e |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       24-Feb-2005.) $)
    mp3anl2 $p |- ( ( ( ph /\ ch ) /\ th ) -> ta ) $=
      ( wa wi w3a ex mp3an2 imp ) ACHDEABCDEIFABCJDEGKLM $.
  $}

  ${
    mp3anl3.1 $e |- ch $.
    mp3anl3.2 $e |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       24-Feb-2005.) $)
    mp3anl3 $p |- ( ( ( ph /\ ps ) /\ th ) -> ta ) $=
      ( wa wi w3a ex mp3an3 imp ) ABHDEABCDEIFABCJDEGKLM $.
  $}

  ${
    mp3anr1.1 $e |- ps $.
    mp3anr1.2 $e |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 4-Nov-2006.) $)
    mp3anr1 $p |- ( ( ph /\ ( ch /\ th ) ) -> ta ) $=
      ( wa w3a ancoms mp3anl1 ) CDHAEBCDAEFABCDIEGJKJ $.
  $}

  ${
    mp3anr2.1 $e |- ch $.
    mp3anr2.2 $e |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       24-Nov-2006.) $)
    mp3anr2 $p |- ( ( ph /\ ( ps /\ th ) ) -> ta ) $=
      ( wa w3a ancoms mp3anl2 ) BDHAEBCDAEFABCDIEGJKJ $.
  $}

  ${
    mp3anr3.1 $e |- th $.
    mp3anr3.2 $e |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       19-Oct-2007.) $)
    mp3anr3 $p |- ( ( ph /\ ( ps /\ ch ) ) -> ta ) $=
      ( wa w3a ancoms mp3anl3 ) BCHAEBCDAEFABCDIEGJKJ $.
  $}

  ${
    mp3an.1 $e |- ph $.
    mp3an.2 $e |- ps $.
    mp3an.3 $e |- ch $.
    mp3an.4 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM,
       14-May-1999.) $)
    mp3an $p |- th $=
      ( mp3an1 mp2an ) BCDFGABCDEHIJ $.
  $}

  ${
    mpd3an3.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    mpd3an3.3 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 8-Nov-2007.) $)
    mpd3an3 $p |- ( ( ph /\ ps ) -> th ) $=
      ( wa 3expa mpdan ) ABGCDEABCDFHI $.
  $}

  ${
    mpd3an23.1 $e |- ( ph -> ps ) $.
    mpd3an23.2 $e |- ( ph -> ch ) $.
    mpd3an23.3 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( An inference based on modus ponens.  (Contributed by NM, 4-Dec-2006.) $)
    mpd3an23 $p |- ( ph -> th ) $=
      ( id syl3anc ) AABCDAHEFGI $.
  $}

  ${
    mp3and.1 $e |- ( ph -> ps ) $.
    mp3and.2 $e |- ( ph -> ch ) $.
    mp3and.3 $e |- ( ph -> th ) $.
    mp3and.4 $e |- ( ph -> ( ( ps /\ ch /\ th ) -> ta ) ) $.
    $( A deduction based on modus ponens.  (Contributed by Mario Carneiro,
       24-Dec-2016.) $)
    mp3and $p |- ( ph -> ta ) $=
      ( w3a 3jca mpd ) ABCDJEABCDFGHKIL $.
  $}

  ${
    mp3an12i.1 $e |- ph $.
    mp3an12i.2 $e |- ps $.
    mp3an12i.3 $e |- ( ch -> th ) $.
    mp3an12i.4 $e |- ( ( ph /\ ps /\ th ) -> ta ) $.
    $( ~ mp3an with antecedents in standard conjunction form and with one
       hypothesis an implication.  (Contributed by Alan Sare, 28-Aug-2016.) $)
    mp3an12i $p |- ( ch -> ta ) $=
      ( mp3an12 syl ) CDEHABDEFGIJK $.
  $}

  ${
    mp3an2i.1 $e |- ph $.
    mp3an2i.2 $e |- ( ps -> ch ) $.
    mp3an2i.3 $e |- ( ps -> th ) $.
    mp3an2i.4 $e |- ( ( ph /\ ch /\ th ) -> ta ) $.
    $( ~ mp3an with antecedents in standard conjunction form and with two
       hypotheses which are implications.  (Contributed by Alan Sare,
       28-Aug-2016.) $)
    mp3an2i $p |- ( ps -> ta ) $=
      ( mp3an1 syl2anc ) BCDEGHACDEFIJK $.
  $}

  ${
    mp3an3an.1 $e |- ph $.
    mp3an3an.2 $e |- ( ps -> ch ) $.
    mp3an3an.3 $e |- ( th -> ta ) $.
    mp3an3an.4 $e |- ( ( ph /\ ch /\ ta ) -> et ) $.
    $( ~ mp3an with antecedents in standard conjunction form and with two
       hypotheses which are implications.  (Contributed by Alan Sare,
       28-Aug-2016.) $)
    mp3an3an $p |- ( ( ps /\ th ) -> et ) $=
      ( mp3an1 syl2an ) BCEFDHIACEFGJKL $.
  $}

  ${
    mp3an2ani.1 $e |- ph $.
    mp3an2ani.2 $e |- ( ps -> ch ) $.
    mp3an2ani.3 $e |- ( ( ps /\ th ) -> ta ) $.
    mp3an2ani.4 $e |- ( ( ph /\ ch /\ ta ) -> et ) $.
    $( An elimination deduction.  (Contributed by Alan Sare, 17-Oct-2017.) $)
    mp3an2ani $p |- ( ( ps /\ th ) -> et ) $=
      ( wa mp3an3an anabss5 ) BDFABCBDKEFGHIJLM $.
  $}

  ${
    biimp3a.1 $e |- ( ( ph /\ ps ) -> ( ch <-> th ) ) $.
    $( Infer implication from a logical equivalence.  Similar to ~ biimpa .
       (Contributed by NM, 4-Sep-2005.) $)
    biimp3a $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( wa biimpa 3impa ) ABCDABFCDEGH $.

    $( Infer implication from a logical equivalence.  Similar to ~ biimpar .
       (Contributed by NM, 2-Jan-2009.) $)
    biimp3ar $p |- ( ( ph /\ ps /\ th ) -> ch ) $=
      ( exbiri 3imp ) ABDCABCDEFG $.
  $}

  ${
    3anandis.1 $e |- ( ( ( ph /\ ps ) /\ ( ph /\ ch ) /\ ( ph /\ th ) )
                      -> ta ) $.
    $( Inference that undistributes a triple conjunction in the antecedent.
       (Contributed by NM, 18-Apr-2007.) $)
    3anandis $p |- ( ( ph /\ ( ps /\ ch /\ th ) ) -> ta ) $=
      ( w3a wa simpl simpr1 simpr2 simpr3 syl222anc ) ABCDGZHABACADEANIZABCDJOA
      BCDKOABCDLFM $.
  $}

  ${
    3anandirs.1 $e |- ( ( ( ph /\ th ) /\ ( ps /\ th ) /\ ( ch /\ th ) )
                      -> ta ) $.
    $( Inference that undistributes a triple conjunction in the antecedent.
       (Contributed by NM, 25-Jul-2006.) $)
    3anandirs $p |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $=
      ( w3a wa simpl1 simpr simpl2 simpl3 syl222anc ) ABCGZDHADBDCDEABCDINDJZAB
      CDKOABCDLOFM $.
  $}

  ${
    ecase23d.1 $e |- ( ph -> -. ch ) $.
    ecase23d.2 $e |- ( ph -> -. th ) $.
    ecase23d.3 $e |- ( ph -> ( ps \/ ch \/ th ) ) $.
    $( Deduction for elimination by cases.  (Contributed by NM,
       22-Apr-1994.) $)
    ecase23d $p |- ( ph -> ps ) $=
      ( wo wn ioran sylanbrc w3o 3orass sylib ord mt3d ) ABCDHZACIDIQIEFCDJKABQ
      ABCDLBQHGBCDMNOP $.
  $}

  ${
    3ecase.1 $e |- ( -. ph -> th ) $.
    3ecase.2 $e |- ( -. ps -> th ) $.
    3ecase.3 $e |- ( -. ch -> th ) $.
    3ecase.4 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Inference for elimination by cases.  (Contributed by NM,
       13-Jul-2005.) $)
    3ecase $p |- th $=
      ( wi 3exp wn 2a1d pm2.61i pm2.61nii ) BCDABCDIIABCDHJAKDBCELMFGN $.
  $}

  ${
    3biorfd.1 $e |- ( ph -> -. th ) $.
    $( A disjunction is equivalent to a threefold disjunction with single
       falsehood, analogous to ~ biorf .  (Contributed by Alexander van der
       Vekens, 8-Sep-2017.) $)
    3bior1fd $p |- ( ph -> ( ( ch \/ ps ) <-> ( th \/ ch \/ ps ) ) ) $=
      ( wo w3o wn wb biorf syl 3orass syl6bbr ) ACBFZDNFZDCBGADHNOIEDNJKDCBLM
      $.

    $( A disjunction is equivalent to a threefold disjunction with single
       falsehood of a conjunction.  (Contributed by Alexander van der Vekens,
       8-Sep-2017.) $)
    3bior1fand $p |- ( ph -> ( ( ch \/ ps )
                       <-> ( ( th /\ ta ) \/ ch \/ ps ) ) ) $=
      ( wa intnanrd 3bior1fd ) ABCDEGADEFHI $.

    3biorfd.2 $e |- ( ph -> -. ch ) $.
    $( A wff is equivalent to its threefold disjunction with double falsehood,
       analogous to ~ biorf .  (Contributed by Alexander van der Vekens,
       8-Sep-2017.) $)
    3bior2fd $p |- ( ph -> ( ps <-> ( th \/ ch \/ ps ) ) ) $=
      ( wo w3o wn wb biorf syl 3bior1fd bitrd ) ABCBGZDCBHACIBOJFCBKLABCDEMN $.
  $}

  ${
    3biantd.1 $e |- ( ph -> th ) $.
    $( A conjunction is equivalent to a threefold conjunction with single
       truth, analogous to ~ biantrud .  (Contributed by Alexander van der
       Vekens, 26-Sep-2017.) $)
    3biant1d $p |- ( ph -> ( ( ch /\ ps ) <-> ( th /\ ch /\ ps ) ) ) $=
      ( wa w3a biantrurd 3anass syl6bbr ) ACBFZDKFDCBGADKEHDCBIJ $.
  $}

  ${
    intn3and.1 $e |- ( ph -> -. ps ) $.
    $( Introduction of a triple conjunct inside a contradiction.  (Contributed
       by FL, 27-Dec-2007.)  (Proof shortened by Andrew Salmon,
       26-Jun-2011.) $)
    intn3an1d $p |- ( ph -> -. ( ps /\ ch /\ th ) ) $=
      ( w3a simp1 nsyl ) ABBCDFEBCDGH $.

    $( Introduction of a triple conjunct inside a contradiction.  (Contributed
       by FL, 27-Dec-2007.)  (Proof shortened by Andrew Salmon,
       26-Jun-2011.) $)
    intn3an2d $p |- ( ph -> -. ( ch /\ ps /\ th ) ) $=
      ( w3a simp2 nsyl ) ABCBDFECBDGH $.

    $( Introduction of a triple conjunct inside a contradiction.  (Contributed
       by FL, 27-Dec-2007.)  (Proof shortened by Andrew Salmon,
       26-Jun-2011.) $)
    intn3an3d $p |- ( ph -> -. ( ch /\ th /\ ps ) ) $=
      ( w3a simp3 nsyl ) ABCDBFECDBGH $.
  $}

  $( Distribution of conjunction over threefold conjunction.  (Contributed by
     Thierry Arnoux, 8-Apr-2019.) $)
  an3andi $p |- ( ( ph /\ ( ps /\ ch /\ th ) ) <->
               ( ( ph /\ ps ) /\ ( ph /\ ch ) /\ ( ph /\ th ) ) ) $=
    ( w3a wa df-3an anbi2i anandi anbi1i 3bitri bitr4i ) ABCDEZFZABFZACFZFZADFZ
    FZOPRENABCFZDFZFATFZRFSMUAABCDGHATDIUBQRABCIJKOPRGL $.

  $( Rearrange a 9-fold conjunction.  (Contributed by Thierry Arnoux,
     14-Apr-2019.) $)
  an33rean $p |- (
        ( ( ph /\ ps /\ ch ) /\ ( th /\ ta /\ et ) /\ ( ze /\ si /\ rh ) ) <->
    ( ( ph /\ ta /\ rh ) /\ ( ( ps /\ th ) /\ ( et /\ si ) /\ ( ch /\ ze ) ) )
    ) $=
    ( w3a wa 3anass 3anan12 3an6 an4 anbi2i 3bitr4i anbi1i df-3an 3bitri 3anrev
    bitri 3anbi123i 3ancomb ) ABCJZDEFJZGHIJZJABCKZKZEDFKZKZIHGKZKZJAEIJZUHUJUL
    JZKUNBDKZFHKCGKJZKUEUIUFUKUGUMABCLDEFMUGIHGJUMGHIUAIHGLUBUCAUHEUJIULNUOUQUN
    UOUHDHKZFGKZJZUPCHKZUSJZUQUHUJULKZKUHURUSKZKUOUTVCVDUHDFHGOPUHUJULLUHURUSLQ
    UHURKZUSKUPVAKZUSKUTVBVEVFUSBCDHORUHURUSSUPVAUSSQBCFJZDHGJZKBFCJZVHKVBUQVGV
    IVHBCFUDRBDCHFGNBDFHCGNQTPT $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Logical 'nand' (Sheffer stroke)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare connective for alternative denial ('nand'). $)
  $c -/\ $. $( Overlined 'wedge' (read:  'nand') $)

  $( Extend wff definition to include alternative denial ('nand'). $)
  wnan $a wff ( ph -/\ ps ) $.

  $( Define incompatibility, or alternative denial ('not-and' or 'nand').  This
     is also called the Sheffer stroke, represented by a vertical bar, but we
     use a different symbol to avoid ambiguity with other uses of the vertical
     bar.  In the second edition of Principia Mathematica (1927), Russell and
     Whitehead used the Sheffer stroke and suggested it as a replacement for
     the "or" and "not" operations of the first edition.  However, in practice,
     "or" and "not" are more widely used.  After we define the constant true
     ` T. ` ( ~ df-tru ) and the constant false ` F. ` ( ~ df-fal ), we will be
     able to prove these truth table values: ` ( ( T. -/\ T. ) <-> F. ) `
     ( ~ trunantru ), ` ( ( T. -/\ F. ) <-> T. ) ` ( ~ trunanfal ),
     ` ( ( F. -/\ T. ) <-> T. ) ` ( ~ falnantru ), and
     ` ( ( F. -/\ F. ) <-> T. ) ` ( ~ falnanfal ).  Contrast with ` /\ `
     ( ~ df-an ), ` \/ ` ( ~ df-or ), ` -> ` ( ~ wi ), and ` \/_ `
     ( ~ df-xor ) .  (Contributed by Jeff Hoffman, 19-Nov-2007.) $)
  df-nan $a |- ( ( ph -/\ ps ) <-> -. ( ph /\ ps ) ) $.

  $( Write 'and' in terms of 'nand'.  (Contributed by Mario Carneiro,
     9-May-2015.) $)
  nanan $p |- ( ( ph /\ ps ) <-> -. ( ph -/\ ps ) ) $=
    ( wnan wa df-nan con2bii ) ABCABDABEF $.

  $( The 'nand' operator commutes.  (Contributed by Mario Carneiro,
     9-May-2015.)  (Proof shortened by Wolf Lammen, 7-Mar-2020.) $)
  nancom $p |- ( ( ph -/\ ps ) <-> ( ps -/\ ph ) ) $=
    ( wnan wa wn df-nan ancom xchbinx bitr4i ) ABCZBADZEBACJABDKABFABGHBAFI $.

  $( Lemma for handling nested 'nand's.  (Contributed by Jeff Hoffman,
     19-Nov-2007.)  (Proof shortened by Wolf Lammen, 7-Mar-2020.) $)
  nannan $p |- ( ( ph -/\ ( ch -/\ ps ) ) <-> ( ph -> ( ch /\ ps ) ) ) $=
    ( wnan wn wi wa imnan nanan imbi2i df-nan 3bitr4ri ) ACBDZEZFAMGEACBGZFAMDA
    MHONACBIJAMKL $.

  $( Show equivalence between implication and the Nicod version.  To derive
     ~ nic-dfim , apply ~ nanbi .  (Contributed by Jeff Hoffman,
     19-Nov-2007.) $)
  nanim $p |- ( ( ph -> ps ) <-> ( ph -/\ ( ps -/\ ps ) ) ) $=
    ( wnan wa wi nannan anidmdbi bitr2i ) ABBCCABBDEABEABBFABGH $.

  $( Show equivalence between negation and the Nicod version.  To derive
     ~ nic-dfneg , apply ~ nanbi .  (Contributed by Jeff Hoffman,
     19-Nov-2007.) $)
  nannot $p |- ( -. ps <-> ( ps -/\ ps ) ) $=
    ( wnan wn wa df-nan anidm xchbinx bicomi ) AABZACIAADAAAEAFGH $.

  $( Show equivalence between the biconditional and the Nicod version.
     (Contributed by Jeff Hoffman, 19-Nov-2007.)  (Proof shortened by Wolf
     Lammen, 27-Jun-2020.) $)
  nanbi $p |- ( ( ph <-> ps ) <->
          ( ( ph -/\ ps ) -/\ ( ( ph -/\ ph ) -/\ ( ps -/\ ps ) ) ) ) $=
    ( wb wnan wa wi wn dfbi3 df-nan bicomi nannot anbi12i imbi12i 3bitri nannan
    wo df-or bitr4i ) ABCZABDZAADZBBDZEZFZTUAUBDDSABEZAGZBGZEZPUEGZUHFUDABHUEUH
    QUITUHUCTUIABIJUFUAUGUBAKBKLMNTUBUAOR $.

  $( Introduce a right anti-conjunct to both sides of a logical equivalence.
     (Contributed by SF, 2-Jan-2018.) $)
  nanbi1 $p |- ( ( ph <-> ps ) -> ( ( ph -/\ ch ) <-> ( ps -/\ ch ) ) ) $=
    ( wb wa wn wnan anbi1 notbid df-nan 3bitr4g ) ABDZACEZFBCEZFACGBCGLMNABCHIA
    CJBCJK $.

  $( Introduce a left anti-conjunct to both sides of a logical equivalence.
     (Contributed by SF, 2-Jan-2018.) $)
  nanbi2 $p |- ( ( ph <-> ps ) -> ( ( ch -/\ ph ) <-> ( ch -/\ ps ) ) ) $=
    ( wb wnan nanbi1 nancom 3bitr4g ) ABDACEBCECAECBEABCFCAGCBGH $.

  $( Join two logical equivalences with anti-conjunction.  (Contributed by SF,
     2-Jan-2018.) $)
  nanbi12 $p |- ( ( ( ph <-> ps ) /\ ( ch <-> th ) ) ->
     ( ( ph -/\ ch ) <-> ( ps -/\ th ) ) ) $=
    ( wb wnan nanbi1 nanbi2 sylan9bb ) ABEACFBCFCDEBDFABCGCDBHI $.

  ${
    nanbii.1 $e |- ( ph <-> ps ) $.
    $( Introduce a right anti-conjunct to both sides of a logical equivalence.
       (Contributed by SF, 2-Jan-2018.) $)
    nanbi1i $p |- ( ( ph -/\ ch ) <-> ( ps -/\ ch ) ) $=
      ( wb wnan nanbi1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Introduce a left anti-conjunct to both sides of a logical equivalence.
       (Contributed by SF, 2-Jan-2018.) $)
    nanbi2i $p |- ( ( ch -/\ ph ) <-> ( ch -/\ ps ) ) $=
      ( wb wnan nanbi2 ax-mp ) ABECAFCBFEDABCGH $.

    nanbi12i.2 $e |- ( ch <-> th ) $.
    $( Join two logical equivalences with anti-conjunction.  (Contributed by
       SF, 2-Jan-2018.) $)
    nanbi12i $p |- ( ( ph -/\ ch ) <-> ( ps -/\ th ) ) $=
      ( wb wnan nanbi12 mp2an ) ABGCDGACHBDHGEFABCDIJ $.
  $}

  ${
    nanbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Introduce a right anti-conjunct to both sides of a logical equivalence.
       (Contributed by SF, 2-Jan-2018.) $)
    nanbi1d $p |- ( ph -> ( ( ps -/\ th ) <-> ( ch -/\ th ) ) ) $=
      ( wb wnan nanbi1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Introduce a left anti-conjunct to both sides of a logical equivalence.
       (Contributed by SF, 2-Jan-2018.) $)
    nanbi2d $p |- ( ph -> ( ( th -/\ ps ) <-> ( th -/\ ch ) ) ) $=
      ( wb wnan nanbi2 syl ) ABCFDBGDCGFEBCDHI $.

    nanbi12d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Join two logical equivalences with anti-conjunction.  (Contributed by
       Scott Fenton, 2-Jan-2018.) $)
    nanbi12d $p |- ( ph -> ( ( ps -/\ th ) <-> ( ch -/\ ta ) ) ) $=
      ( wb wnan nanbi12 syl2anc ) ABCHDEHBDICEIHFGBCDEJK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Logical 'xor'
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare connective for exclusive disjunction ('xor'). $)
  $c \/_ $. $( Underlined 'vee' (read:  'xor') $)

  $( Extend wff definition to include exclusive disjunction ('xor'). $)
  wxo $a wff ( ph \/_ ps ) $.

  $( Define exclusive disjunction (logical 'xor').  Return true if either the
     left or right, but not both, are true.  After we define the constant true
     ` T. ` ( ~ df-tru ) and the constant false ` F. ` ( ~ df-fal ), we will be
     able to prove these truth table values: ` ( ( T. \/_ T. ) <-> F. ) `
     ( ~ truxortru ), ` ( ( T. \/_ F. ) <-> T. ) ` ( ~ truxorfal ),
     ` ( ( F. \/_ T. ) <-> T. ) ` ( ~ falxortru ), and
     ` ( ( F. \/_ F. ) <-> F. ) ` ( ~ falxorfal ).  Contrast with ` /\ `
     ( ~ df-an ), ` \/ ` ( ~ df-or ), ` -> ` ( ~ wi ), and ` -/\ `
     ( ~ df-nan ) .  (Contributed by FL, 22-Nov-2010.) $)
  df-xor $a |- ( ( ph \/_ ps ) <-> -. ( ph <-> ps ) ) $.

  $( Two ways to write XNOR. (Contributed by Mario Carneiro, 4-Sep-2016.) $)
  xnor $p |- ( ( ph <-> ps ) <-> -. ( ph \/_ ps ) ) $=
    ( wxo wb df-xor con2bii ) ABCABDABEF $.

  $( The connector ` \/_ ` is commutative.  (Contributed by Mario Carneiro,
     4-Sep-2016.) $)
  xorcom $p |- ( ( ph \/_ ps ) <-> ( ps \/_ ph ) ) $=
    ( wb wn wxo bicom notbii df-xor 3bitr4i ) ABCZDBACZDABEBAEJKABFGABHBAHI $.

  $( The connector ` \/_ ` is associative.  (Contributed by FL, 22-Nov-2010.)
     (Proof shortened by Andrew Salmon, 8-Jun-2011.)  (Proof shortened by Wolf
     Lammen, 20-Jun-2020.) $)
  xorass $p |- ( ( ( ph \/_ ps ) \/_ ch ) <-> ( ph \/_ ( ps \/_ ch ) ) ) $=
    ( wxo wb xor3 biass xnor bibi1i bibi2i 3bitr3i nbbn 3bitr2ri df-xor 3bitr4i
    wn ) ABDZCEPZABCDZEPZQCDASDTASPZEZQPZCEZRASFABEZCEABCEZEUDUBABCGUEUCCABHIUF
    UAABCHJKQCLMQCNASNO $.

  $( This tautology shows that xor is really exclusive.  (Contributed by FL,
     22-Nov-2010.) $)
  excxor $p |- ( ( ph \/_ ps ) <->
       ( ( ph /\ -. ps ) \/ ( -. ph /\ ps ) ) ) $=
    ( wxo wb wn wa wo df-xor xor ancom orbi2i 3bitri ) ABCABDEABEFZBAEZFZGMNBFZ
    GABHABIOPMBNJKL $.

  $( Two ways to express "exclusive or."  (Contributed by Mario Carneiro,
     4-Sep-2016.) $)
  xor2 $p |- ( ( ph \/_ ps ) <->
       ( ( ph \/ ps ) /\ -. ( ph /\ ps ) ) ) $=
    ( wxo wb wn wo wa df-xor nbi2 bitri ) ABCABDEABFABGEGABHABIJ $.

  $( XOR implies OR. (Contributed by BJ, 19-Apr-2019.) $)
  xoror $p |- ( ( ph \/_ ps ) -> ( ph \/ ps ) ) $=
    ( wxo wo wa wn xor2 simplbi ) ABCABDABEFABGH $.

  $( XOR implies NAND. (Contributed by BJ, 19-Apr-2019.) $)
  xornan $p |- ( ( ph \/_ ps ) -> -. ( ph /\ ps ) ) $=
    ( wxo wo wa wn xor2 simprbi ) ABCABDABEFABGH $.

  $( XOR implies NAND (written with the ` -/\ ` connector).  (Contributed by
     BJ, 19-Apr-2019.) $)
  xornan2 $p |- ( ( ph \/_ ps ) -> ( ph -/\ ps ) ) $=
    ( wxo wa wn wnan xornan df-nan sylibr ) ABCABDEABFABGABHI $.

  $( The connector ` \/_ ` is negated under negation of one argument.
     (Contributed by Mario Carneiro, 4-Sep-2016.)  (Proof shortened by Wolf
     Lammen, 27-Jun-2020.) $)
  xorneg2 $p |- ( ( ph \/_ -. ps ) <-> -. ( ph \/_ ps ) ) $=
    ( wn wxo wb df-xor pm5.18 xnor 3bitr2i ) ABCZDAJECABEABDCAJFABGABHI $.

  $( The connector ` \/_ ` is negated under negation of one argument.
     (Contributed by Mario Carneiro, 4-Sep-2016.)  (Proof shortened by Wolf
     Lammen, 27-Jun-2020.) $)
  xorneg1 $p |- ( ( -. ph \/_ ps ) <-> -. ( ph \/_ ps ) ) $=
    ( wn wxo xorcom xorneg2 xchbinx bitri ) ACZBDBIDZABDZCIBEJBADKBAFBAEGH $.

  $( The connector ` \/_ ` is unchanged under negation of both arguments.
     (Contributed by Mario Carneiro, 4-Sep-2016.) $)
  xorneg $p |- ( ( -. ph \/_ -. ps ) <-> ( ph \/_ ps ) ) $=
    ( wn wxo xorneg1 xorneg2 con2bii bitr4i ) ACBCZDAIDZCABDZAIEJKABFGH $.

  ${
    xorbi12.1 $e |- ( ph <-> ps ) $.
    xorbi12.2 $e |- ( ch <-> th ) $.
    $( Equality property for XOR. (Contributed by Mario Carneiro,
       4-Sep-2016.) $)
    xorbi12i $p |- ( ( ph \/_ ch ) <-> ( ps \/_ th ) ) $=
      ( wb wn wxo bibi12i notbii df-xor 3bitr4i ) ACGZHBDGZHACIBDINOABCDEFJKACL
      BDLM $.
  $}

  ${
    xor12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    xor12d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Equality property for XOR. (Contributed by Mario Carneiro,
       4-Sep-2016.) $)
    xorbi12d $p |- ( ph -> ( ( ps \/_ th ) <-> ( ch \/_ ta ) ) ) $=
      ( wb wn wxo bibi12d notbid df-xor 3bitr4g ) ABDHZICEHZIBDJCEJAOPABCDEFGKL
      BDMCEMN $.
  $}

  $( Conjunction distributes over exclusive-or.  In intuitionistic logic this
     assertion is also true, even though ~ xordi does not necessarily hold, in
     part because the usual definition of xor is subtly different in
     intuitionistic logic.  (Contributed by David A. Wheeler, 7-Oct-2018.) $)
  anxordi $p |- ( ( ph /\ ( ps \/_ ch ) ) <->
      ( ( ph /\ ps ) \/_ ( ph /\ ch ) ) ) $=
    ( wb wn wa wxo xordi df-xor anbi2i 3bitr4i ) ABCDEZFABFZACFZDEABCGZFMNGABCH
    OLABCIJMNIK $.

  $( Exclusive-or variant of the law of the excluded middle ( ~ exmid ).  This
     statement is ancient, going back to at least Stoic logic.  This statement
     does not necessarily hold in intuitionistic logic.  (Contributed by David
     A. Wheeler, 23-Feb-2019.) $)
  xorexmid $p |- ( ph \/_ -. ph ) $=
    ( wn wxo wb pm5.19 df-xor mpbir ) AABZCAHDBAEAHFG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  True and false constants
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Universal quantifier for use by df-tru
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Even though it isn't ordinarily part of propositional calculus, the universal
  quantifier ` A. ` is introduced here so that the soundness of definition
  ~ df-tru can be checked by the same algorithm that is used for predicate
  calculus.  Its first real use is in definition ~ df-ex in the predicate
  calculus section below.  For those who want propositional calculus to be
  self-contained i.e. to use wff variables only, the alternate definition
  ~ dftru2 may be adopted and this subsection moved down to the start of the
  subsection with ~ wex below.  However, the use of ~ dftru2 as a definition
  requires a more elaborate definition checking algorithm that we prefer to
  avoid.

$)

  $( Declare new symbols needed for predicate calculus. $)
  $c A. $. $( "inverted A" universal quantifier (read:  "for all") $)
  $c setvar $. $( Individual variable type (read:  "the following is an
             individual (set) variable" $)

  $( Add 'setvar' as a typecode for bound variables. $)
  $( $j syntax 'setvar'; bound 'setvar'; $)

  ${
    $v x $.
    $( Let ` x ` be an individual variable (temporary declaration). $)
    vx.wal $f setvar x $.
    $( Extend wff definition to include the universal quantifier ('for all').
       ` A. x ph ` is read " ` ph ` (phi) is true for all ` x ` ."  Typically,
       in its final application ` ph ` would be replaced with a wff containing
       a (free) occurrence of the variable ` x ` , for example ` x = y ` .  In
       a universe with a finite number of objects, "for all" is equivalent to a
       big conjunction (AND) with one wff for each possible case of ` x ` .
       When the universe is infinite (as with set theory), such a
       propositional-calculus equivalent is not possible because an infinitely
       long formula has no meaning, but conceptually the idea is the same. $)
    wal $a wff A. x ph $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Equality predicate for use by df-tru
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Even though it isn't ordinarily part of propositional calculus, the equality
  predicate ` = ` is introduced here so that the soundness of definition
  ~ df-tru can be checked by the same algorithm as is used for predicate
  calculus.  Its first real use is in theorem ~ equs3 in the predicate calculus
  section below.  For those who want propositional calculus to be
  self-contained i.e. to use wff variables only, the alternate definition
  ~ dftru2 may be adopted and this subsection moved down to just above ~ weq
  below.  However, the use of ~ dftru2 as a definition requires a more
  elaborate definition checking algorithm that we prefer to avoid.

$)

  $c class $.

  $( Add 'class' as a typecode. $)
  $( $j syntax 'class'; $)

  ${
    $v x $.
    $( Let ` x ` be an individual variable (temporary declaration). $)
    vx.cv $f setvar x $.
    $( This syntax construction states that a variable ` x ` , which has been
       declared to be a setvar variable by $f statement vx, is also a class
       expression.  This can be justified informally as follows.  We know that
       the class builder ` { y | y e. x } ` is a class by ~ cab .  Since (when
       ` y ` is distinct from ` x ` ) we have ` x = { y | y e. x } ` by
       ~ cvjust , we can argue that the syntax " ` class x ` " can be viewed as
       an abbreviation for " ` class { y | y e. x } ` ".  See the discussion
       under the definition of class in [Jech] p. 4 showing that "Every set can
       be considered to be a class."

       While it is tempting and perhaps occasionally useful to view ~ cv as a
       "type conversion" from a setvar variable to a class variable, keep in
       mind that ~ cv is intrinsically no different from any other
       class-building syntax such as ~ cab , ~ cun , or ~ c0 .

       For a general discussion of the theory of classes and the role of ~ cv ,
       see ~ mmset.html#class .

       (The description above applies to set theory, not predicate calculus.
       The purpose of introducing ` class x ` here, and not in set theory where
       it belongs, is to allow us to express i.e.  "prove" the ~ weq of
       predicate calculus from the ~ wceq of set theory, so that we don't
       overload the ` = ` connective with two syntax definitions.  This is done
       to prevent ambiguity that would complicate some Metamath parsers.) $)
    cv $a class x $.
  $}

  $( Declare the equality predicate symbol. $)
  $c = $.  $( Equal sign (read:  'is equal to') $)

  ${
    $v A $.
    $v B $.
    $( Temporary declarations of ` A ` and ` B ` . $)
    cA.wceq $f class A $.
    cB.wceq $f class B $.
    $( Extend wff definition to include class equality.

       For a general discussion of the theory of classes, see
       ~ mmset.html#class .

       (The purpose of introducing ` wff A = B ` here, and not in set theory
       where it belongs, is to allow us to express i.e.  "prove" the ~ weq of
       predicate calculus in terms of the ~ wceq of set theory, so that we
       don't "overload" the ` = ` connective with two syntax definitions.  This
       is done to prevent ambiguity that would complicate some Metamath
       parsers.  For example, some parsers - although not the Metamath program
       - stumble on the fact that the ` = ` in ` x = y ` could be the ` = ` of
       either ~ weq or ~ wceq , although mathematically it makes no difference.
       The class variables ` A ` and ` B ` are introduced temporarily for the
       purpose of this definition but otherwise not used in predicate calculus.
       See ~ df-cleq for more information on the set theory usage of
       ~ wceq .) $)
    wceq $a wff A = B $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Define the true and false constants
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c T. $.

  $( The constant ` T. ` is a wff. $)
  wtru $a wff T. $.

  ${
    $v x $.
    $v y $.
    $( Temporary declarations of ` x ` and ` y ` for local use by ~ df-tru .
       These will be redeclared globally in the predicate calculus section. $)
    vx.tru $f setvar x $.
    vy.tru $f setvar y $.
    $( Soundness justification theorem for ~ df-tru .  (Contributed by Mario
       Carneiro, 17-Nov-2013.)  (Revised by NM, 11-Jul-2019.) $)
    trujust $p |- ( ( A. x x = x -> A. x x = x )
              <-> ( A. y y = y -> A. y y = y ) ) $=
      ( cv wceq wal wi id 2th ) ACZIDAEZJFBCZKDBEZLFJGLGH $.

    $( Definition of the truth value "true", or "verum", denoted by ` T. ` .
       This is a tautology, as proved by ~ tru .  In this definition, an
       instance of ~ id is used as the definiens, although any tautology, such
       as an axiom, can be used in its place.  This particular ~ id instance
       was chosen so this definition can be checked by the same algorithm that
       is used for predicate calculus.  This definition should be referenced
       directly only by ~ tru , and other proofs should depend on ~ tru
       (directly or indirectly) instead of this definition, since there are
       many alternate ways to define ` T. ` .  (Contributed by Anthony Hart,
       13-Oct-2010.)  (Revised by NM, 11-Jul-2019.)  Use ~ tru instead.
       (New usage is discouraged.) $)
    df-tru $a |- ( T. <-> ( A. x x = x -> A. x x = x ) ) $.

    $( The truth value ` T. ` is provable.  (Contributed by Anthony Hart,
       13-Oct-2010.) $)
    tru $p |- T. $=
      ( vx.tru wtru cv wceq wal wi id df-tru mpbir ) BACZJDAEZKFKGAHI $.
  $}

  $c F. $.

  $( The constant ` F. ` is a wff. $)
  wfal $a wff F. $.

  $( Definition of the truth value "false", or "falsum", denoted by ` F. ` .
     See also ~ df-tru .  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  df-fal $a |- ( F. <-> -. T. ) $.

  $( The truth value ` F. ` is refutable.  (Contributed by Anthony Hart,
     22-Oct-2010.)  (Proof shortened by Mel L. O'Cat, 11-Mar-2012.) $)
  fal $p |- -. F. $=
    ( wfal wtru wn tru notnoti df-fal mtbir ) ABCBDEFG $.

  $( An alternate definition of "true".  (Contributed by Anthony Hart,
     13-Oct-2010.)  (Revised by BJ, 12-Jul-2019.)
     (New usage is discouraged.) $)
  dftru2 $p |- ( T. <-> ( ph -> ph ) ) $=
    ( wtru wi tru id 2th ) BAACDAEF $.

  $( A proposition is equivalent to it being implied by ` T. ` .  Closed form
     of ~ trud .  Dual of ~ dfnot .  It is to ~ tbtru what ~ a1bi is to ~ tbt .
     (Contributed by BJ, 26-Oct-2019.) $)
  trut $p |- ( ph <-> ( T. -> ph ) ) $=
    ( wtru tru a1bi ) BACD $.

  ${
    trud.1 $e |- ( T. -> ph ) $.
    $( Eliminate ` T. ` as an antecedent.  A proposition implied by ` T. ` is
       true.  (Contributed by Mario Carneiro, 13-Mar-2014.) $)
    trud $p |- ph $=
      ( wtru tru ax-mp ) CADBE $.
  $}

  $( A proposition is equivalent to itself being equivalent to ` T. ` .
     (Contributed by Anthony Hart, 14-Aug-2011.) $)
  tbtru $p |- ( ph <-> ( ph <-> T. ) ) $=
    ( wtru tru tbt ) BACD $.

  $( The negation of a proposition is equivalent to itself being equivalent to
     ` F. ` .  (Contributed by Anthony Hart, 14-Aug-2011.) $)
  nbfal $p |- ( -. ph <-> ( ph <-> F. ) ) $=
    ( wfal fal nbn ) BACD $.

  ${
    bitru.1 $e |- ph $.
    $( A theorem is equivalent to truth.  (Contributed by Mario Carneiro,
       9-May-2015.) $)
    bitru $p |- ( ph <-> T. ) $=
      ( wtru tru 2th ) ACBDE $.
  $}

  ${
    bifal.1 $e |- -. ph $.
    $( A contradiction is equivalent to falsehood.  (Contributed by Mario
       Carneiro, 9-May-2015.) $)
    bifal $p |- ( ph <-> F. ) $=
      ( wfal fal 2false ) ACBDE $.
  $}

  $( The truth value ` F. ` implies anything.  Also called the "principle of
     explosion", or "ex falso [[sequitur]] quodlibet" (Latin for "from
     falsehood, anything [[follows]]").  (Contributed by FL, 20-Mar-2011.)
     (Proof shortened by Anthony Hart, 1-Aug-2011.) $)
  falim $p |- ( F. -> ph ) $=
    ( wfal fal pm2.21i ) BACD $.

  $( The truth value ` F. ` implies anything.  (Contributed by Mario Carneiro,
     9-Feb-2017.) $)
  falimd $p |- ( ( ph /\ F. ) -> ps ) $=
    ( wfal falim adantl ) CBABDE $.

  $( Anything implies ` T. ` .  (Contributed by FL, 20-Mar-2011.)  (Proof
     shortened by Anthony Hart, 1-Aug-2011.) $)
  a1tru $p |- ( ph -> T. ) $=
    ( wtru tru a1i ) BACD $.

  $( True can be removed from a conjunction.  (Contributed by FL, 20-Mar-2011.)
     (Proof shortened by Wolf Lammen, 21-Jul-2019.) $)
  truan $p |- ( ( T. /\ ph ) <-> ph ) $=
    ( wtru wa tru biantrur bicomi ) ABACBADEF $.

  $( Given falsum ` F. ` , we can define the negation of a wff ` ph ` as the
     statement that ` F. ` follows from assuming ` ph ` .  (Contributed by
     Mario Carneiro, 9-Feb-2017.)  (Proof shortened by Wolf Lammen,
     21-Jul-2019.) $)
  dfnot $p |- ( -. ph <-> ( ph -> F. ) ) $=
    ( wfal wn wi wb fal mtt ax-mp ) BCACABDEFBAGH $.

  ${
    inegd.1 $e |- ( ( ph /\ ps ) -> F. ) $.
    $( Negation introduction rule from natural deduction.  (Contributed by
       Mario Carneiro, 9-Feb-2017.) $)
    inegd $p |- ( ph -> -. ps ) $=
      ( wfal wi wn ex dfnot sylibr ) ABDEBFABDCGBHI $.
  $}

  ${
    efald.1 $e |- ( ( ph /\ -. ps ) -> F. ) $.
    $( Deduction based on reductio ad absurdum.  (Contributed by Mario
       Carneiro, 9-Feb-2017.) $)
    efald $p |- ( ph -> ps ) $=
      ( wn inegd notnotrd ) ABABDCEF $.
  $}

  ${
    pm2.21fal.1 $e |- ( ph -> ps ) $.
    pm2.21fal.2 $e |- ( ph -> -. ps ) $.
    $( If a wff and its negation are provable, then falsum is provable.
       (Contributed by Mario Carneiro, 9-Feb-2017.) $)
    pm2.21fal $p |- ( ph -> F. ) $=
      ( wfal pm2.21dd ) ABECDF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Truth tables
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Some sources define operations on true/false values using truth tables.
  These tables show the results of their operations for all possible
  combinations of true ( ` T. ` ) and false ( ` F. ` ).
  Here we show that our definitions and axioms produce equivalent results for
  ` /\ ` (conjunction aka logical 'and') ~ df-an ,
  ` \/ ` (disjunction aka logical inclusive 'or') ~ df-or ,
  ` -> ` (implies) ~ wi ,
  ` -. ` (not) ~ wn ,
  ` <-> ` (logical equivalence) ~ df-bi ,
  ` -/\ ` (nand aka Sheffer stroke) ~ df-nan , and
  ` \/_ ` (exclusive or) ~ df-xor .

$)

  $( A ` /\ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  truantru $p |- ( ( T. /\ T. ) <-> T. ) $=
    ( wtru anidm ) AB $.

  $( A ` /\ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  truanfal $p |- ( ( T. /\ F. ) <-> F. ) $=
    ( wfal truan ) AB $.

  $( A ` /\ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  falantru $p |- ( ( F. /\ T. ) <-> F. ) $=
    ( wfal wtru wa fal intnanr bifal ) ABCABDEF $.

  $( A ` /\ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  falanfal $p |- ( ( F. /\ F. ) <-> F. ) $=
    ( wfal anidm ) AB $.

  $( A ` \/ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  truortru $p |- ( ( T. \/ T. ) <-> T. ) $=
    ( wtru oridm ) AB $.

  $( A ` \/ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  truorfal $p |- ( ( T. \/ F. ) <-> T. ) $=
    ( wtru wfal wo tru orci bitru ) ABCABDEF $.

  $( A ` \/ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  falortru $p |- ( ( F. \/ T. ) <-> T. ) $=
    ( wfal wtru wo tru olci bitru ) ABCBADEF $.

  $( A ` \/ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  falorfal $p |- ( ( F. \/ F. ) <-> F. ) $=
    ( wfal oridm ) AB $.

  $( A ` -> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  truimtru $p |- ( ( T. -> T. ) <-> T. ) $=
    ( wtru wi id bitru ) AABACD $.

  $( A ` -> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  truimfal $p |- ( ( T. -> F. ) <-> F. ) $=
    ( wfal wtru wi trut bicomi ) ABACADE $.

  $( A ` -> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  falimtru $p |- ( ( F. -> T. ) <-> T. ) $=
    ( wfal wtru wi falim bitru ) ABCBDE $.

  $( A ` -> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  falimfal $p |- ( ( F. -> F. ) <-> T. ) $=
    ( wfal wi id bitru ) AABACD $.

  $( A ` -. ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.) $)
  nottru $p |- ( -. T. <-> F. ) $=
    ( wfal wtru wn df-fal bicomi ) ABCDE $.

  $( A ` -. ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  notfal $p |- ( -. F. <-> T. ) $=
    ( wfal wn fal bitru ) ABCD $.

  $( A ` <-> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  trubitru $p |- ( ( T. <-> T. ) <-> T. ) $=
    ( wtru wb biid bitru ) AABACD $.

  $( A ` <-> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.)  (Proof shortened by Wolf
     Lammen, 10-Jul-2020.) $)
  falbitru $p |- ( ( F. <-> T. ) <-> F. ) $=
    ( wfal wtru wb tbtru bicomi ) AABCADE $.

  $( A ` <-> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.)  (Proof shortened by Wolf
     Lammen, 10-Jul-2020.) $)
  trubifal $p |- ( ( T. <-> F. ) <-> F. ) $=
    ( wtru wfal wb bicom falbitru bitri ) ABCBACBABDEF $.

  $( A ` <-> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  falbifal $p |- ( ( F. <-> F. ) <-> T. ) $=
    ( wfal wb biid bitru ) AABACD $.

  $( A ` -/\ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  trunantru $p |- ( ( T. -/\ T. ) <-> F. ) $=
    ( wtru wnan wn wfal nannot nottru bitr3i ) AABACDAEFG $.

  $( A ` -/\ ` identity.  (Contributed by Anthony Hart, 23-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.)  (Proof shortened by Wolf
     Lammen, 10-Jul-2020.) $)
  trunanfal $p |- ( ( T. -/\ F. ) <-> T. ) $=
    ( wtru wfal wnan wn wa df-nan truanfal xchbinx notfal bitri ) ABCZBDAKABEBA
    BFGHIJ $.

  $( A ` -/\ ` identity.  (Contributed by Anthony Hart, 23-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  falnantru $p |- ( ( F. -/\ T. ) <-> T. ) $=
    ( wfal wtru wnan nancom trunanfal bitri ) ABCBACBABDEF $.

  $( A ` -/\ ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  falnanfal $p |- ( ( F. -/\ F. ) <-> T. ) $=
    ( wfal wnan wn wtru nannot notfal bitr3i ) AABACDAEFG $.

  $( A ` \/_ ` identity.  (Contributed by David A. Wheeler, 8-May-2015.) $)
  truxortru $p |- ( ( T. \/_ T. ) <-> F. ) $=
    ( wtru wxo wn wfal wb df-xor trubitru xchbinx nottru bitri ) AABZACDKAAEAAA
    FGHIJ $.

  $( A ` \/_ ` identity.  (Contributed by David A. Wheeler, 8-May-2015.) $)
  truxorfal $p |- ( ( T. \/_ F. ) <-> T. ) $=
    ( wtru wfal wxo wn wb df-xor trubifal xchbinx notfal bitri ) ABCZBDAKABEBAB
    FGHIJ $.

  $( A ` \/_ ` identity.  (Contributed by David A. Wheeler, 9-May-2015.)
     (Proof shortened by Wolf Lammen, 10-Jul-2020.) $)
  falxortru $p |- ( ( F. \/_ T. ) <-> T. ) $=
    ( wfal wtru wxo xorcom truxorfal bitri ) ABCBACBABDEF $.

  $( A ` \/_ ` identity.  (Contributed by David A. Wheeler, 9-May-2015.) $)
  falxorfal $p |- ( ( F. \/_ F. ) <-> F. ) $=
    ( wfal wxo wtru wn wb df-xor falbifal xchbinx nottru bitri ) AABZCDAKAAECAA
    FGHIJ $.

  $( Add support for natural deduction, indicating the constants used to
     indicate implication, context conjunction, and empty context. $)
  $( $j natded_init 'wi' 'wa' 'wtru'; $)

  $( These are variations on the assumption rule of natural deduction.
     They have the form ` Gamma -> ph ` where ` Gamma ` is composed entirely
     of (binary) conjunctions and one of the conjuncts is ` ph ` . $)
  $( $j natded_assume 'id' 'simpl' 'simpr'
          'simpll' 'simplr' 'simprl' 'simprr'
          'simplll' 'simpllr' 'simplrl' 'simplrr'
          'simprll' 'simprlr' 'simprrl' 'simprrr'
          'simp-4l' 'simp-4r' 'simp-5l' 'simp-5r'
          'simp-6l' 'simp-6r' 'simp-7l' 'simp-7r'
          'simp-8l' 'simp-8r' 'simp-9l' 'simp-9r'
          'simp-10l' 'simp-10r' 'simp-11l' 'simp-11r'; $)

  $( These are variations on the weakening lemma of natural deduction.
     They have the form ` _D -> ph |- _G -> ph ` where ` _G `
     and ` _D ` are composed entirely of (binary) conjunctions and
     ` _D C_ _G ` . $)
  $( $j natded_weak 'a1i' 'adantl' 'adantr'
          'adantll' 'adantlr' 'adantrl' 'adantrr'
          'adantlll' 'adantllr' 'adantlrl' 'adantlrr'
          'adantrll' 'adantrlr' 'adantrrl' 'adantrrr'
          'ad2antll' 'ad2antlr' 'ad2antrl' 'ad2antrr'
          'ad2ant2l' 'ad2ant2lr' 'ad2ant2rl' 'ad2ant2r'
          'ad3antlr' 'ad3antrrr' 'ad4antlr' 'ad4antr'
          'ad4antlr' 'ad4antr' 'ad5antlr' 'ad5antr'
          'ad6antlr' 'ad6antr' 'ad7antlr' 'ad7antr'
          'ad8antlr' 'ad8antr' 'ad9antlr' 'ad9antr'
          'ad10antlr' 'ad10antr'
          'anidms' 'ancoms' 'anasss' 'anassrs' 'an12s'  'ancom2s' 'an13s'
          'an32s' 'ancom1s' 'an31s' 'anass1rs' 'anabsan'  'anabss1' 'anabss4'
          'anabss5' 'anabss7' 'anabsan2' 'anabss3' 'an4s' 'an42s'
          'anandis' 'anandirs'; $)

  $( These are variations on the cut axiom (modus ponens) of natural deduction.
     All assumptions and the consequent have the form ` ph ` or ` _G -> ph `
     where ` _G ` is composed entirely of (binary) conjunctions, and possibly
     some intermediate statements are cancelled. (This does not include the
     "natded_assume" and "natded_weak" lists, which also count in this
     category.) $)
  $( $j natded_cut 'mp2b' 'mp1i' 'syl' '3syl' '4syl' 'syldan' 'sylan' 'sylan2'
          'syl2an' 'syl2anr' 'sylanl1' 'sylanl2' 'sylanr1' 'sylanr2' 'syl2anc'
          'sylancl' 'sylancr' 'sylancom' 'mpdan' 'mpancom' 'mpan' 'mpan2'
          'mp2an' 'mp4an' 'mpanl1' 'mpanl2' 'mpanl12' 'mpanr1' 'mpanr2'
          'mpanr12' 'mpanlr1' 'syl12anc' 'syl21anc' 'syl22anc'; $)

  $( Natural deduction rules for the logical connectives, defining the
     connective itself and natural deduction rules pertaining to it.
     These don't have a fixed form, except that all the statements should be
     parseable as natural deduction statements, i.e. ` ph ` or ` _G -> ph `
     where _G is a nested conjunction. $)
  $( $j natded_true 'wtru' with 'trud' 'tru' 'a1tru';
        natded_imp 'wi' with 'ex' 'imp' 'mpd' 'ax-mp' 'syl' 'mpi';
        natded_and 'wa' with 'jca' 'pm3.2i' 'jca31' 'jca32' 'jctil' 'jctir'
          'jctl' 'jctr' 'ancli' 'ancri';
        natded_or 'wo' with 'olc' 'orc' 'olci' 'orci' 'olcd' 'orcd' 'olcs'
          'orcs' 'jaoi' 'jaod' 'jaodan' 'mpjaodan';
        natded_not 'wn' 'wfal' with 'falim' 'falimd' 'inegd' 'mtand' 'pm2.65da'
          'pm2.01da' 'pm2.18da' 'pm2.21dd' 'pm2.21fal' 'efald' 'pm2.18da'
          'notnotr' 'notnotrd'; $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Half adder and full adder in propositional calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Propositional calculus deals with truth values, which can be interpreted as
  bits.  Using this, we can define the half adder and the full adder in pure
  propositional calculus, and show their basic properties.

  The half adder adds two 1-bit numbers.  Its two outputs are the "sum" S and
  the "carry" C.  The real sum is then given by 2C+S.  The sum and carry
  correspond respectively to the logical exclusive disjunction ( ~ df-xor ) and
  the logical conjunction ( ~ df-an ).

  The full adder takes into account an "input carry", so it has three inputs
  and again two outputs, corresponding to the "sum" ( ~ df-had ) and "updated
  carry" ( ~ df-cad ).
  Here is a short description.  We code the bit 0 by ` F. ` and 1 by ` T. ` .
  Even though ` hadd ` and ` cadd ` are invariant under permutation of their
  arguments, assume for the sake of concreteness that ` ph ` (resp. ` ps ` ) is
  the i^th bit of the first (resp. second) number to add (with the convention
  that the i^th bit is the multiple of 2^i in the base-2 representation), and
  that ` ch ` is the i^th carry (with the convention that the 0^th carry is 0).
  Then, ` hadd ( ph , ps , ch ) ` gives the i^th bit of the sum, and
  ` cadd ( ph , ps , ch ) ` gives the (i+1)^th carry.
  Then, addition is performed by iteration from i = 0 to
  i = 1 + (max of the number of digits of the two summands) by "updating" the
  carry.

$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Full adder: sum
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c hadd $.

  $( Syntax for the "sum" output of the full adder.  (Contributed by Mario
     Carneiro, 4-Sep-2016.) $)
  whad $a wff hadd ( ph , ps , ch ) $.

  $( Definition of the "sum" output of the full adder (triple exclusive
     disjunction, or XOR3).  (Contributed by Mario Carneiro, 4-Sep-2016.) $)
  df-had $a |- ( hadd ( ph , ps , ch ) <-> ( ( ph \/_ ps ) \/_ ch ) ) $.

  ${
    hadbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    hadbid.2 $e |- ( ph -> ( th <-> ta ) ) $.
    hadbid.3 $e |- ( ph -> ( et <-> ze ) ) $.
    $( Equality theorem for the adder sum.  (Contributed by Mario Carneiro,
       4-Sep-2016.) $)
    hadbi123d $p |- ( ph ->
      ( hadd ( ps , th , et ) <-> hadd ( ch , ta , ze ) ) ) $=
      ( wxo whad xorbi12d df-had 3bitr4g ) ABDKZFKCEKZGKBDFLCEGLAPQFGABCDEHIMJM
      BDFNCEGNO $.
  $}

  ${
    hadbii.1 $e |- ( ph <-> ps ) $.
    hadbii.2 $e |- ( ch <-> th ) $.
    hadbii.3 $e |- ( ta <-> et ) $.
    $( Equality theorem for the adder sum.  (Contributed by Mario Carneiro,
       4-Sep-2016.) $)
    hadbi123i $p |- ( hadd ( ph , ch , ta ) <-> hadd ( ps , th , et ) ) $=
      ( whad wb wtru a1i hadbi123d trud ) ACEJBDFJKLABCDEFABKLGMCDKLHMEFKLIMNO
      $.
  $}

  $( Associative law for the adder sum.  (Contributed by Mario Carneiro,
     4-Sep-2016.) $)
  hadass $p |- ( hadd ( ph , ps , ch ) <-> ( ph \/_ ( ps \/_ ch ) ) ) $=
    ( whad wxo df-had xorass bitri ) ABCDABECEABCEEABCFABCGH $.

  $( The adder sum is the same as the triple biconditional.  (Contributed by
     Mario Carneiro, 4-Sep-2016.) $)
  hadbi $p |- ( hadd ( ph , ps , ch ) <-> ( ( ph <-> ps ) <-> ch ) ) $=
    ( wxo wb wn whad df-xor df-had xnor bibi1i nbbn bitri 3bitr4i ) ABDZCDOCEFZ
    ABCGABEZCEZOCHABCIROFZCEPQSCABJKOCLMN $.

  $( Commutative law for the adder sum.  (Contributed by Mario Carneiro,
     4-Sep-2016.) $)
  hadcoma $p |- ( hadd ( ph , ps , ch ) <-> hadd ( ps , ph , ch ) ) $=
    ( wxo whad xorcom biid xorbi12i df-had 3bitr4i ) ABDZCDBADZCDABCEBACEKLCCAB
    FCGHABCIBACIJ $.

  $( Commutative law for the adders sum.  (Contributed by Mario Carneiro,
     4-Sep-2016.) $)
  hadcomb $p |- ( hadd ( ph , ps , ch ) <-> hadd ( ph , ch , ps ) ) $=
    ( wxo whad biid xorcom xorbi12i hadass 3bitr4i ) ABCDZDACBDZDABCEACBEAAKLAF
    BCGHABCIACBIJ $.

  $( Rotation law for the adder sum.  (Contributed by Mario Carneiro,
     4-Sep-2016.) $)
  hadrot $p |- ( hadd ( ph , ps , ch ) <-> hadd ( ps , ch , ph ) ) $=
    ( whad hadcoma hadcomb bitri ) ABCDBACDBCADABCEBACFG $.

  $( The adder sum distributes over negation.  (Contributed by Mario Carneiro,
     4-Sep-2016.)  (Proof shortened by Wolf Lammen, 11-Jul-2020.) $)
  hadnot $p |- ( -. hadd ( ph , ps , ch ) <->
    hadd ( -. ph , -. ps , -. ch ) ) $=
    ( wb wn whad notbi bibi1i xor3 hadbi xchnxbir 3bitr4i ) ABDZCEZDZAEZBEZDZND
    ABCFZEPQNFMRNABGHMCDOSMCIABCJKPQNJL $.

  $( If the first input is true, then the adder sum is equivalent to the
     biconditionality of the other two inputs.  (Contributed by Mario Carneiro,
     4-Sep-2016.)  (Proof shortened by Wolf Lammen, 11-Jul-2020.) $)
  had1 $p |- ( ph -> ( hadd ( ph , ps , ch ) <-> ( ps <-> ch ) ) ) $=
    ( whad wb hadrot hadbi bitri biass mpbir biimpri ) ABCDZBCEZEZANAELMAEZELBC
    ADOABCFBCAGHLMAIJK $.

  $( If the first input is false, then the adder sum is equivalent to the
     exclusive disjunction of the other two inputs.  (Contributed by Mario
     Carneiro, 4-Sep-2016.)  (Proof shortened by Wolf Lammen, 12-Jul-2020.) $)
  had0 $p |- ( -. ph -> ( hadd ( ph , ps , ch ) <-> ( ps \/_ ch ) ) ) $=
    ( wn whad wxo wb had1 hadnot xnor notbi bitr3i 3bitr4g con4bid ) ADZABCEZBC
    FZOOBDZCDZERSGZPDQDZORSHABCIUABCGTBCJBCKLMN $.

  $( The value of the adder sum is, if the first input is true, the
     biconditionality, and if the first input is false, the exclusive
     disjunction, of the other two inputs.  (Contributed by BJ,
     11-Aug-2020.) $)
  hadifp $p |-
    ( hadd ( ph , ps , ch ) <-> if- ( ph , ( ps <-> ch ) , ( ps \/_ ch ) ) ) $=
    ( whad wb wxo had1 had0 casesifp ) AABCDBCEBCFABCGABCHI $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Full adder: carry
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c cadd $.

  $( Syntax for the "carry" output of the full adder.  (Contributed by Mario
     Carneiro, 4-Sep-2016.) $)
  wcad $a wff cadd ( ph , ps , ch ) $.

  $( Definition of the "carry" output of the full adder.  It is true when at
     least two arguments are true, so it is equal to the "majority" function on
     three variables.  See ~ cador and ~ cadan for alternate definitions.
     (Contributed by Mario Carneiro, 4-Sep-2016.) $)
  df-cad $a |- ( cadd ( ph , ps , ch ) <->
    ( ( ph /\ ps ) \/ ( ch /\ ( ph \/_ ps ) ) ) ) $.

  $( The adder carry in disjunctive normal form.  (Contributed by Mario
     Carneiro, 4-Sep-2016.)  (Proof shortened by Wolf Lammen, 11-Jul-2020.) $)
  cador $p |- ( cadd ( ph , ps , ch ) <->
        ( ( ph /\ ps ) \/ ( ph /\ ch ) \/ ( ps /\ ch ) ) ) $=
    ( wa wxo wo wcad w3o wn xor2 rbaib anbi1d ancom andir 3bitr3g pm5.74i df-or
    wi 3bitr4i df-cad 3orass ) ABDZCABEZDZFZUBACDZBCDZFZFZABCGUBUFUGHUBIZUDRUJU
    HRUEUIUJUDUHUJUCCDABFZCDUDUHUJUCUKCUCUKUJABJKLUCCMABCNOPUBUDQUBUHQSABCTUBUF
    UGUAS $.

  $( The adder carry in conjunctive normal form.  (Contributed by Mario
     Carneiro, 4-Sep-2016.)  (Proof shortened by Wolf Lammen, 25-Sep-2018.) $)
  cadan $p |- ( cadd ( ph , ps , ch ) <->
        ( ( ph \/ ps ) /\ ( ph \/ ch ) /\ ( ps \/ ch ) ) ) $=
    ( wcad wo w3a w3o df-3or cador andi orbi1i 3bitr4i ordir ordi orcom animorl
    wa wi wb bitr4i pm4.72 mpbi anbi12i 3bitri df-3an ) ABCDZABEZACEZQZBCEZQZUG
    UHUJFUFAUJQZBCQZEZAUMEZUJUMEZQUKABQZACQZUMGUQUREZUMEUFUNUQURUMHABCIULUSUMAB
    CJKLAUJUMMUOUIUPUJABCNUPUMUJEZUJUJUMOUMUJRUJUTSBCCPUMUJUAUBTUCUDUGUHUJUET
    $.

  ${
    cadbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    cadbid.2 $e |- ( ph -> ( th <-> ta ) ) $.
    cadbid.3 $e |- ( ph -> ( et <-> ze ) ) $.
    $( Equality theorem for the adder carry.  (Contributed by Mario Carneiro,
       4-Sep-2016.) $)
    cadbi123d $p |- ( ph ->
      ( cadd ( ps , th , et ) <-> cadd ( ch , ta , ze ) ) ) $=
      ( wa wxo wo wcad anbi12d xorbi12d orbi12d df-cad 3bitr4g ) ABDKZFBDLZKZMC
      EKZGCELZKZMBDFNCEGNATUCUBUEABCDEHIOAFGUAUDJABCDEHIPOQBDFRCEGRS $.
  $}

  ${
    cadbii.1 $e |- ( ph <-> ps ) $.
    cadbii.2 $e |- ( ch <-> th ) $.
    cadbii.3 $e |- ( ta <-> et ) $.
    $( Equality theorem for the adder carry.  (Contributed by Mario Carneiro,
       4-Sep-2016.) $)
    cadbi123i $p |- ( cadd ( ph , ch , ta ) <-> cadd ( ps , th , et ) ) $=
      ( wcad wb wtru a1i cadbi123d trud ) ACEJBDFJKLABCDEFABKLGMCDKLHMEFKLIMNO
      $.
  $}

  $( Commutative law for the adder carry.  (Contributed by Mario Carneiro,
     4-Sep-2016.) $)
  cadcoma $p |- ( cadd ( ph , ps , ch ) <-> cadd ( ps , ph , ch ) ) $=
    ( wa wxo wo wcad ancom xorcom anbi2i orbi12i df-cad 3bitr4i ) ABDZCABEZDZFB
    ADZCBAEZDZFABCGBACGNQPSABHORCABIJKABCLBACLM $.

  $( Commutative law for the adder carry.  (Contributed by Mario Carneiro,
     4-Sep-2016.)  (Proof shortened by Wolf Lammen, 11-Jul-2020.) $)
  cadcomb $p |- ( cadd ( ph , ps , ch ) <-> cadd ( ph , ch , ps ) ) $=
    ( wcad wo w3a cadan 3ancoma orcom 3anbi3i 3bitri bitr4i ) ABCDZACEZABEZCBEZ
    FZACBDMONBCEZFNORFQABCGONRHRPNOBCIJKACBGL $.

  $( Rotation law for the adder carry.  (Contributed by Mario Carneiro,
     4-Sep-2016.) $)
  cadrot $p |- ( cadd ( ph , ps , ch ) <-> cadd ( ps , ch , ph ) ) $=
    ( wcad cadcoma cadcomb bitri ) ABCDBACDBCADABCEBACFG $.

  $( The adder carry distributes over negation.  (Contributed by Mario
     Carneiro, 4-Sep-2016.)  (Proof shortened by Wolf Lammen, 11-Jul-2020.) $)
  cadnot $p |- ( -. cadd ( ph , ps , ch ) <->
    cadd ( -. ph , -. ps , -. ch ) ) $=
    ( wa wn w3a wo wcad ianor 3anbi123i w3o 3ioran cador xchnxbir cadan 3bitr4i
    ) ABDZEZACDZEZBCDZEZFZAEZBEZGZUDCEZGZUEUGGZFABCHZEUDUEUGHRUFTUHUBUIABIACIBC
    IJQSUAKUCUJQSUALABCMNUDUEUGOP $.

  $( If one input is true, then the adder carry is true exactly when at least
     one of the other two inputs is true.  (Contributed by Mario Carneiro,
     8-Sep-2016.)  (Proof shortened by Wolf Lammen, 19-Jun-2020.) $)
  cad1 $p |- ( ch -> ( cadd ( ph , ps , ch ) <-> ( ph \/ ps ) ) ) $=
    ( wo wa wcad olc jca biantrud w3a cadan 3anass bitri syl6rbbr ) CABDZOACDZB
    CDZEZEZABCFZCROCPQCAGCBGHITOPQJSABCKOPQLMN $.

  $( If one input is false, then the adder carry is true exactly when both of
     the other two inputs are true.  (Contributed by Mario Carneiro,
     8-Sep-2016.) $)
  cad0 $p |- ( -. ch -> ( cadd ( ph , ps , ch ) <-> ( ph /\ ps ) ) ) $=
    ( wcad wa wxo wo wn df-cad idd pm2.21 adantrd jaod orc impbid1 syl5bb ) ABC
    DABEZCABFZEZGZCHZQABCIUATQUAQQSUAQJUACQRCQKLMQSNOP $.

  $( The value of the carry is, if the input carry is true, the disjunction,
     and if the input carry is false, the conjunction, of the other two inputs.
     (Contributed by BJ, 8-Oct-2019.) $)
  cadifp $p |-
      ( cadd ( ph , ps , ch ) <-> if- ( ch , ( ph \/ ps ) , ( ph /\ ps ) ) ) $=
    ( wcad wo wa cad1 cad0 casesifp ) CABCDABEABFABCGABCHI $.

  $( If (at least) two inputs are true, then the adder carry is true.
     (Contributed by Mario Carneiro, 4-Sep-2016.) $)
  cad11 $p |- ( ( ph /\ ps ) -> cadd ( ph , ps , ch ) ) $=
    ( wa wxo wo wcad orc df-cad sylibr ) ABDZKCABEDZFABCGKLHABCIJ $.

  $( The adder carry is true as soon as its first two inputs are the truth
     constant.  (Contributed by Mario Carneiro, 4-Sep-2016.) $)
  cadtru $p |- cadd ( T. , T. , ph ) $=
    ( wtru wcad tru cad11 mp2an ) BBBBACDDBBAEF $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Other axiomatizations related to classical propositional calculus
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Minimal implicational calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Minimal implicational calculus, or intuitionistic implicational calculus, or
  positive implicational calculus, is the implicational fragment of minimal
  calculus (which is also the implicational fragment of intuitionistic calculus
  and of positive calculus).  It is sometimes called "C-pure intuitionism"
  since the letter C is sometimes used to denote implication, especially in
  prefix notation.  It can be axiomatized by the inference rule of modus ponens
  ~ ax-mp together with the axioms { ~ ax-1 , ~ ax-2 } (sometimes written KS),
  or with { ~ imim1 , ~ ax-1 , ~ pm2.43 } (written B'KW), or with { ~ imim2 ,
  ~ pm2.04 , ~ ax-1 , ~ pm2.43 } (written BCKW), or with the single axiom
  ~ minimp .  This section proves ~ minimp from { ~ ax-1 , ~ ax-2 }, and then
  the converse, due to Ivo Thomas.

  Sources for this section are the webpage
  ~ https://web.ics.purdue.edu/~~dulrich/C-pure-intuitionism-page.htm
  on Ted Ulrich's website, and the articles
  C. A. Meredith,
  _A single axiom of positive logic_,
  Journal of computing systems, vol. 1 (1953), 169--170,
  and
  C. A. Meredith, A. N. Prior,
  _Notes on the axiomatics of the propositional calculus_,
  Notre Dame Journal of Formal Logic, vol. 4 (1963), 171--187.

  We may use a compact notation for derivations known as the D-notation where
  "D" stands for "condensed Detachment".  For instance, "D21" means detaching
  ~ ax-1 from ~ ax-2 , that is, using modus ponens ~ ax-mp with ~ ax-1 as minor
  premise and ~ ax-2 as major premise.  D-strings are accepted by the grammar
  Dstr := digit | "D" Dstr Dstr.

  (Contributed by BJ, 11-Apr-2021.)

$)

  $( A single axiom for minimal implicational calculus, due to Meredith.  Other
     single axioms of the same length are known, but it is thought to be the
     minimal length.  (Contributed by BJ, 4-Apr-2021.) $)
  minimp $p |- ( ph ->
  ( ( ps -> ch ) -> ( ( ( th -> ps ) -> ( ch -> ta ) ) -> ( ps -> ta ) ) ) ) $=
    ( wi jarr a2d com12 a1i ) BCFZDBFCEFZFZBEFZFFAMKNMBCEDBLGHIJ $.

  $( Derivation of sylsimp ( ~ jarr ) from ~ ax-mp and ~ minimp .  (Contributed
     by BJ, 4-Apr-2021.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  minimp-sylsimp $p |- ( ( ( ph -> ps ) -> ch ) -> ( ps -> ch ) ) $=
    ( wi minimp ax-mp mp2 mp2b ) ABDZIDZJJDJDDZICDZDZLDZILCDZDZLBCDZDZJLIDZJDJD
    DZKDZITDZMDTLDDZNTIIIIETTTDZUDUDDUDDDDZUAUCDTTTTTEUETKILEFMMMDZUFUFDUFDDDZM
    TDUCNDMMMMMEMIILIEUGMTUBLEGHIKDZINDSNODDZPDDZNPDZIIIIIEUHINLOENNNDZULULDULD
    DDZNUIDUJUKDNNNNNENLIKCEUMNUIIPEGHLLLDZUNUNDUNDDDZLPDBLDPQDDZRDDZPRDZLLLLLE
    UOLPBQEPPPDZUSUSDUSDDDZPUPDUQURDPPPPPEPBLACEUTPUPLREGHH $.

  $( Derivation of ~ ax-1 from ~ ax-mp and ~ minimp .  (Contributed by BJ,
     4-Apr-2021.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  minimp-ax1 $p |- ( ph -> ( ps -> ph ) ) $=
    ( wi minimp-sylsimp ax-mp ) ABCZACBACZCAGCABADFAGDE $.

  $( Derivation of a commuted form of ~ ax-2 from ~ ax-mp and ~ minimp .
     (Contributed by BJ, 4-Apr-2021.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  minimp-ax2c $p |- ( ( ph -> ps ) ->
                                ( ( ph -> ( ps -> ch ) ) -> ( ph -> ch ) ) ) $=
    ( wi minimp ax-mp mp2 minimp-sylsimp ) ABDZAADZJJDJDDZADZBCDZDZACDZDZDZPAMD
    ZODZDZISDZAKDZQAAAAAEUBABKCEFRRDZPDSDZTRUCUCUCDUCDDDZRNDZUDRRRRRELLDZRDNDZU
    FLUGUGUGDUGDDDZLADZUHLLLLLEZLKDZUBLDLDZUJLAAAAEKKKDZUNUNDUNDDDZUNUMKKKKKEKA
    AAAEUOKKAAEGUIULUMUJDDUKUILKUBAEFGUILALMEGUGRNHFUERNROEGUCPSHFSQDZIIDZTDUAD
    ZTUADZDZDQUSDZDZUTVAQQQDZVCVCDVCDDDZQURDZVBQQQQQEIUQUQUQDUQDDDZVEIIIIIEVFIP
    ISEFVDQURSUSEGUQTUAHUPUTVAHGG $.

  $( Derivation of ~ ax-2 from ~ ax-mp and ~ minimp .  (Contributed by BJ,
     4-Apr-2021.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  minimp-ax2 $p |- ( ( ph -> ( ps -> ch ) ) ->
                                          ( ( ph -> ps ) -> ( ph -> ch ) ) ) $=
    ( wi minimp-ax2c minimp-sylsimp ax-mp mp2 ) ABDZABCDDZACDZDDZJLIKDZDZDZJMDZ
    ABCEIJDNDOIJKEIJNFGJLDOPDZDLQDJLMEJLQFGH $.

  $( Derivation of ~ pm2.43 (also called "hilbert" or W) from ~ ax-mp and
     ~ minimp .  It uses the classical derivation from ~ ax-1 and ~ ax-2
     written DD22D21 in D-notation (see head comment for an explanation) and
     shortens the proof using ~ mp2 (which only requires ~ ax-mp ).
     (Contributed by BJ, 31-May-2021.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  minimp-pm2.43 $p |- ( ( ph -> ( ph -> ps ) ) -> ( ph -> ps ) ) $=
    ( wi minimp-ax2 minimp-ax1 ax-mp mp2 ) AABCZCZAACZHCCIJCZIHCAABDAHACCKAHEAH
    ADFIJHDG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the Lukasiewicz axioms from Meredith's sole axiom
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Carew Meredith's sole axiom for propositional calculus.  This amazing
     formula is thought to be the shortest possible single axiom for
     propositional calculus with inference rule ~ ax-mp , where negation and
     implication are primitive.  Here we prove Meredith's axiom from ~ ax-1 ,
     ~ ax-2 , and ~ ax-3 .  Then from it we derive the Lukasiewicz axioms
     ~ luk-1 , ~ luk-2 , and ~ luk-3 .  Using these we finally rederive our
     axioms as ~ ax1 , ~ ax2 , and ~ ax3 , thus proving the equivalence of all
     three systems.  C. A. Meredith, "Single Axioms for the Systems (C,N),
     (C,O) and (A,N) of the Two-Valued Propositional Calculus," _The Journal of
     Computing Systems_ vol. 1 (1953), pp. 155-164.  Meredith claimed to be
     close to a proof that this axiom is the shortest possible, but the proof
     was apparently never completed.

     An obscure Irish lecturer, Meredith (1904-1976) became enamored with logic
     somewhat late in life after attending talks by Lukasiewicz and produced
     many remarkable results such as this axiom.  From his obituary:  "He did
     logic whenever time and opportunity presented themselves, and he did it on
     whatever materials came to hand: in a pub, his favored pint of porter
     within reach, he would use the inside of cigarette packs to write proofs
     for logical colleagues."  (Contributed by NM, 14-Dec-2002.)  (Proof
     shortened by Andrew Salmon, 25-Jul-2011.)  (Proof shortened by Wolf
     Lammen, 28-May-2013.) $)
  meredith $p |- ( ( ( ( ( ph -> ps ) -> ( -. ch -> -. th ) ) -> ch ) ->
       ta ) -> ( ( ta -> ph ) -> ( th -> ph ) ) ) $=
    ( wi wn pm2.21 con4 imim12i com13 con1d com12 a1d ax-1 imim1d ja ) ABFZCGDG
    FZFZCFZEEAFZDAFZFUAGZUCUBDUDADAUATAGZDCUERSDCFABHCDIJKLMNEDEAEDOPQ $.

  $( Step 3 of Meredith's proof of Lukasiewicz axioms from his sole axiom.
     (The step numbers refer to Meredith's original paper.)  (Contributed by
     NM, 14-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  merlem1 $p |- ( ( ( ch -> ( -. ph -> ps ) ) -> ta ) -> ( ph -> ta ) ) $=
    ( wn wi meredith ax-mp ) DAEZFIBFZEZIFFZJFCJFZFZMDFADFFJDECEFZEKEFZFOFDFLFN
    IBOKDGJPDCLGHDIJAMGH $.

  $( Step 4 of Meredith's proof of Lukasiewicz axioms from his sole axiom.
     (Contributed by NM, 14-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  merlem2 $p |- ( ( ( ph -> ph ) -> ch ) -> ( th -> ch ) ) $=
    ( wi wn merlem1 meredith ax-mp ) BBDZAECEZDDADAADZDKBDCBDDAJIAFBBACKGH $.

  $( Step 7 of Meredith's proof of Lukasiewicz axioms from his sole axiom.
     (Contributed by NM, 14-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  merlem3 $p |- ( ( ( ps -> ch ) -> ph ) -> ( ch -> ph ) ) $=
    ( wi wn merlem2 ax-mp meredith ) AADZCEZJDZDZCDBCDZDZMADCADZDOBEZPDDBDZLDZN
    KKDLDRJKIFKLQFGCABBLHGAACCMHG $.

  $( Step 8 of Meredith's proof of Lukasiewicz axioms from his sole axiom.
     (Contributed by NM, 14-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  merlem4 $p |- ( ta -> ( ( ta -> ph ) -> ( th -> ph ) ) ) $=
    ( wi wn meredith merlem3 ax-mp ) AADBEZIDDBDZCDCADBADDZDCKDAABBCFKJCGH $.

  $( Step 11 of Meredith's proof of Lukasiewicz axioms from his sole axiom.
     (Contributed by NM, 14-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  merlem5 $p |- ( ( ph -> ps ) -> ( -. -. ph -> ps ) ) $=
    ( wi wn meredith merlem1 merlem4 ax-mp ) BBCZBDZJCCBCBCIICCZABCZADZDZBCCZBB
    BBBEIJNDCCBCZACZOCZKOCZBBBNAEOKDZCMTCCZACQCZRSCUAUBMBLTFAPUAGHOTAKQEHHH $.

  $( Step 12 of Meredith's proof of Lukasiewicz axioms from his sole axiom.
     (Contributed by NM, 14-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  merlem6 $p |- ( ch -> ( ( ( ps -> ch ) -> ph ) -> ( th -> ph ) ) ) $=
    ( wi merlem4 merlem3 ax-mp ) BCEZIAEDAEEZECJEADIFJBCGH $.

  $( Between steps 14 and 15 of Meredith's proof of Lukasiewicz axioms from his
     sole axiom.  (Contributed by NM, 22-Dec-2002.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merlem7 $p |- ( ph -> ( ( ( ps -> ch ) -> th ) -> ( ( ( ch -> ta ) ->
                  ( -. th -> -. ps ) ) -> th ) ) ) $=
    ( wi wn merlem4 merlem6 meredith ax-mp ) BCFZLDFZCEFDGBGFFZDFZFZFZAPFZDNLHP
    AGZFCGZSFFZCFLFZQRFOUAFUBSMOTICEDBUAJKPSCALJKK $.

  $( Step 15 of Meredith's proof of Lukasiewicz axioms from his sole axiom.
     (Contributed by NM, 22-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  merlem8 $p |- ( ( ( ps -> ch ) -> th ) -> ( ( ( ch -> ta ) ->
                  ( -. th -> -. ps ) ) -> th ) ) $=
    ( wph wi wn meredith merlem7 ax-mp ) EEFZEGZLFFEFEFKKFFZABFCFBDFCGAGFFCFFEE
    EEEHMABCDIJ $.

  $( Step 18 of Meredith's proof of Lukasiewicz axioms from his sole axiom.
     (Contributed by NM, 22-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  merlem9 $p |- ( ( ( ph -> ps ) -> ( ch -> ( th -> ( ps -> ta ) ) ) ) ->
                    ( et -> ( ch -> ( th -> ( ps -> ta ) ) ) ) ) $=
    ( wi wn merlem6 merlem8 ax-mp meredith ) CDBEGZGZGZFHZGBHZPGGZBGABGZGZSOGFO
    GGMRHDHGZHAHGZGUAGRGZTNRGUCPCNQIDMRUBJKBEUAARLKOPBFSLK $.

  $( Step 19 of Meredith's proof of Lukasiewicz axioms from his sole axiom.
     (Contributed by NM, 14-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  merlem10 $p |- ( ( ph -> ( ph -> ps ) ) -> ( th -> ( ph -> ps ) ) ) $=
    ( wi wn meredith merlem9 ax-mp ) AADZAEZJDDADADIIDDZAABDZDZCLDDZAAAAAFLADJC
    EDDADZADNDKNDLAACAFOAMCBKGHH $.

  $( Step 20 of Meredith's proof of Lukasiewicz axioms from his sole axiom.
     (Contributed by NM, 14-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  merlem11 $p |- ( ( ph -> ( ph -> ps ) ) -> ( ph -> ps ) ) $=
    ( wi wn meredith merlem10 ax-mp ) AACZADZICCACACHHCCZAABCZCZKCZAAAAAELMCJMC
    ABLFLKJFGG $.

  $( Step 28 of Meredith's proof of Lukasiewicz axioms from his sole axiom.
     (Contributed by NM, 14-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  merlem12 $p |- ( ( ( th -> ( -. -. ch -> ch ) ) -> ph ) -> ph ) $=
    ( wn wi merlem5 merlem2 ax-mp merlem4 merlem11 ) CBDDBEZEZAEZMAEZEZNLOBBEKE
    LBBFBKCGHAMLIHMAJH $.

  $( Step 35 of Meredith's proof of Lukasiewicz axioms from his sole axiom.
     (Contributed by NM, 14-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  merlem13 $p |- ( ( ph -> ps ) ->
              ( ( ( th -> ( -. -. ch -> ch ) ) -> -. -. ph ) -> ps ) ) $=
    ( wi wn merlem12 merlem5 ax-mp merlem6 meredith merlem11 ) BBEZAFZDCFFCEEZN
    FZEZFZEZEAEZAEZABEQBEETUAEZUASUBOREZREZSRCDGRBEZRFPEZEREUCEZUDSEUFUGQPEUFPC
    DGQPHIRUEUFOJIRBRNUCKIIAMSTJITALIBBAQAKI $.

  $( 1 of 3 axioms for propositional calculus due to Lukasiewicz, derived from
     Meredith's sole axiom.  (Contributed by NM, 14-Dec-2002.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  luk-1 $p |- ( ( ph -> ps ) -> ( ( ps -> ch ) -> ( ph -> ch ) ) ) $=
    ( wi wn meredith merlem13 ax-mp ) CCDZAEZEZEJDDKDBDZBCDACDDZDZABDZMDZCCKABF
    MADZOEZEZERDDSDLDZNPDOLDTABJIGOLRQGHMASOLFHH $.

  $( 2 of 3 axioms for propositional calculus due to Lukasiewicz, derived from
     Meredith's sole axiom.  (Contributed by NM, 14-Dec-2002.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  luk-2 $p |- ( ( -. ph -> ph ) -> ph ) $=
    ( wn wi merlem5 merlem4 ax-mp merlem11 meredith ) ABZACZJACZCZKAJBZCIBMCCZI
    CZICZLOPCZPNQAMDIONEFOIGFAMIJIHFJAGF $.

  $( 3 of 3 axioms for propositional calculus due to Lukasiewicz, derived from
     Meredith's sole axiom.  (Contributed by NM, 14-Dec-2002.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  luk-3 $p |- ( ph -> ( -. ph -> ps ) ) $=
    ( wn wi merlem11 merlem1 ax-mp ) ACZHBDZDIDAIDHBEABHIFG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the standard axioms from the Lukasiewicz axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    luklem1.1 $e |- ( ph -> ps ) $.
    luklem1.2 $e |- ( ps -> ch ) $.
    $( Used to rederive standard propositional axioms from Lukasiewicz'.
       (Contributed by NM, 23-Dec-2002.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    luklem1 $p |- ( ph -> ch ) $=
      ( wi luk-1 ax-mp ) BCFZACFZEABFIJFDABCGHH $.
  $}

  $( Used to rederive standard propositional axioms from Lukasiewicz'.
     (Contributed by NM, 22-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  luklem2 $p |- ( ( ph -> -. ps ) ->
                ( ( ( ph -> ch ) -> th ) -> ( ps -> th ) ) ) $=
    ( wn wi luk-1 luk-3 ax-mp luklem1 ) ABEZFZBACFZFZMDFBDFFLKCFZMFZNAKCGBOFPNF
    BCHBOMGIJBMDGJ $.

  $( Used to rederive standard propositional axioms from Lukasiewicz'.
     (Contributed by NM, 22-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  luklem3 $p |- ( ph -> ( ( ( -. ph -> ps ) -> ch ) -> ( th -> ch ) ) ) $=
    ( wn wi luk-3 luklem2 luklem1 ) AAEZDEZFJBFCFDCFFAKGJDBCHI $.

  $( Used to rederive standard propositional axioms from Lukasiewicz'.
     (Contributed by NM, 22-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  luklem4 $p |- ( ( ( ( -. ph -> ph ) -> ph ) -> ps ) -> ps ) $=
    ( wn wi luk-2 luklem3 ax-mp luk-1 luklem1 ) ACADADZBDZBCZBDZBLJDZKMDJCJDJDZ
    NJEJONDAEJJJLFGGLJBHGBEI $.

  $( Used to rederive standard propositional axioms from Lukasiewicz'.
     (Contributed by NM, 22-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  luklem5 $p |- ( ph -> ( ps -> ph ) ) $=
    ( wn wi luklem3 luklem4 luklem1 ) AACADADBADZDHAAABEAHFG $.

  $( Used to rederive standard propositional axioms from Lukasiewicz'.
     (Contributed by NM, 22-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  luklem6 $p |- ( ( ph -> ( ph -> ps ) ) -> ( ph -> ps ) ) $=
    ( wi luk-1 wn luklem5 luklem2 luklem4 luklem1 ax-mp ) AABCZCKBCZKCZKAKBDKEZ
    KCZKCMKCZCZPMOCZQNLCRNBEZNCZLNSFTSBCBCLCLSKBBGBLHIINLKDJMOKDJKPHJI $.

  $( Used to rederive standard propositional axioms from Lukasiewicz'.
     (Contributed by NM, 22-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  luklem7 $p |- ( ( ph -> ( ps -> ch ) ) -> ( ps -> ( ph -> ch ) ) ) $=
    ( wi luk-1 luklem5 luklem1 luklem6 ax-mp ) ABCDZDJCDZACDZDZBLDZAJCEBKDMNDBJ
    KDZKBJBDOBJFJBCEGJCHGBKLEIG $.

  $( Used to rederive standard propositional axioms from Lukasiewicz'.
     (Contributed by NM, 22-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  luklem8 $p |- ( ( ph -> ps ) -> ( ( ch -> ph ) -> ( ch -> ps ) ) ) $=
    ( wi luk-1 luklem7 ax-mp ) CADZABDZCBDZDDIHJDDCABEHIJFG $.

  $( Standard propositional axiom derived from Lukasiewicz axioms.
     (Contributed by NM, 22-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  ax1 $p |- ( ph -> ( ps -> ph ) ) $=
    ( luklem5 ) ABC $.

  $( Standard propositional axiom derived from Lukasiewicz axioms.
     (Contributed by NM, 22-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  ax2 $p |- ( ( ph -> ( ps -> ch ) ) -> ( ( ph -> ps ) -> ( ph -> ch ) ) ) $=
    ( wi luklem7 luklem8 luklem6 ax-mp luklem1 ) ABCDDBACDZDZABDZJDZABCEKLAJDZD
    ZMBJAFNJDOMDACGNJLFHII $.

  $( Standard propositional axiom derived from Lukasiewicz axioms.
     (Contributed by NM, 22-Dec-2002.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  ax3 $p |- ( ( -. ph -> -. ps ) -> ( ps -> ph ) ) $=
    ( wn wi luklem2 luklem4 luklem1 ) ACZBCDHADADBADZDIHBAAEAIFG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive Nicod's axiom from the standard axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Prove Nicod's axiom and implication and negation definitions.

$)

  $( Define implication in terms of 'nand'.  Analogous to
     ` ( ( ph -/\ ( ps -/\ ps ) ) <-> ( ph -> ps ) ) ` .  In a pure
     (standalone) treatment of Nicod's axiom, this theorem would be changed to
     a definition ($a statement).  (Contributed by NM, 11-Dec-2008.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  nic-dfim $p |- ( ( ( ph -/\ ( ps -/\ ps ) ) -/\ ( ph -> ps ) ) -/\
                   ( ( ( ph -/\ ( ps -/\ ps ) ) -/\ ( ph -/\ ( ps -/\ ps ) ) )
                          -/\
                     ( ( ph -> ps ) -/\ ( ph -> ps ) ) ) ) $=
    ( wnan wi wb nanim bicomi nanbi mpbi ) ABBCCZABDZEJKCJJCKKCCCKJABFGJKHI $.

  $( Define negation in terms of 'nand'.  Analogous to
     ` ( ( ph -/\ ph ) <-> -. ph ) ` .  In a pure (standalone) treatment of
     Nicod's axiom, this theorem would be changed to a definition ($a
     statement).  (Contributed by NM, 11-Dec-2008.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  nic-dfneg $p |- ( ( ( ph -/\ ph ) -/\ -. ph ) -/\
                    ( ( ( ph -/\ ph ) -/\ ( ph -/\ ph ) ) -/\
                      ( -. ph -/\ -. ph ) ) ) $=
    ( wnan wn wb nannot bicomi nanbi mpbi ) AABZACZDIJBIIBJJBBBJIAEFIJGH $.

  ${
    $( Minor premise. $)
    nic-jmin $e |- ph $.
    $( Major premise. $)
    nic-jmaj $e |- ( ph -/\ ( ch -/\ ps ) ) $.
    $( Derive Nicod's rule of modus ponens using 'nand', from the standard one.
       Although the major and minor premise together also imply ` ch ` , this
       form is necessary for useful derivations from ~ nic-ax .  In a pure
       (standalone) treatment of Nicod's axiom, this theorem would be changed
       to an axiom ($a statement).  (Contributed by Jeff Hoffman, 19-Nov-2007.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nic-mp $p |- ps $=
      ( wnan wa wi nannan mpbi simprd ax-mp ) ABDACBACBFFACBGHEABCIJKL $.

    $( A direct proof of ~ nic-mp .  (Contributed by NM, 30-Dec-2008.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nic-mpALT $p |- ps $=
      ( wa wi wn wnan df-nan anbi2i xchbinx mpbi iman mpbir simprd ax-mp ) ABDA
      CBACBFZGARHZFZHZACBIZIZUAEUCAUBFTAUBJUBSACBJKLMARNOPQ $.
  $}

  $( Nicod's axiom derived from the standard ones.  See _Introduction to
     Mathematical Philosophy_ by B. Russell, p. 152.  Like ~ meredith , the
     usual axioms can be derived from this and vice versa.  Unlike ~ meredith ,
     Nicod uses a different connective ('nand'), so another form of modus
     ponens must be used in proofs, e.g. ` { ` ~ nic-ax , ~ nic-mp ` } ` is
     equivalent to ` { ` ~ luk-1 , ~ luk-2 , ~ luk-3 , ~ ax-mp ` } ` .  In a
     pure (standalone) treatment of Nicod's axiom, this theorem would be
     changed to an axiom ($a statement).  (Contributed by Jeff Hoffman,
     19-Nov-2007.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nic-ax $p |- ( ( ph -/\ ( ch -/\ ps ) ) -/\
                   ( ( ta -/\ ( ta -/\ ta ) ) -/\
                     ( ( th -/\ ch ) -/\
                       ( ( ph -/\ th ) -/\ ( ph -/\ th ) ) ) ) ) $=
    ( wnan wa wi nannan biimpi simpl imim2i wn imnan df-nan bitr4i imim2d con2b
    con3 mpbir 3bitr4ri syl6ibr syl5bir nanim sylib 3syl pm4.24 jctil ) ACBFFZE
    EEFFZDCFZADFZULFFZFFUIUJUMGHUIUMUJUIACBGZHZACHZUMUIUOABCIJUNCACBKLUPUKULHUM
    UKDCMZHZUPULURDCGMUKDCNDCOPUPURDAMZHZULUPUQUSDACSQADMHADGMUTULADNDARADOUAUB
    UCUKULUDUEUFUJEEEGZHEVAEUGJEEEITUHUIUMUJIT $.

  $( A direct proof of ~ nic-ax .  (Contributed by NM, 11-Dec-2008.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  nic-axALT $p |- ( ( ph -/\ ( ch -/\ ps ) ) -/\ ( ( ta -/\ ( ta -/\ ta ) )
          -/\ ( ( th -/\ ch ) -/\ ( ( ph -/\ th ) -/\ ( ph -/\ th ) ) ) ) ) $=
    ( wnan wa wn anidm df-nan anbi2i notbii iman 3bitr4i bitr4i xchbinx anbi12i
    wi imnan mpbir simpl imim2i con3 imim2d biimpri jctil con2b bitr3i 3bitri
    syl ) ACBFZFZEEEFZFZDCFZADFZUPFZFZFZFULUSGZHZVAACBGZRZEEEGZRZDCHZRZDAHZRZRZ
    GZRZVCVJVEVCACRZVJVBCACBUAUBVMVFVHDACUCUDUJVDEEIUEUFVAVCVKHZGZHVLUTVOULVCUS
    VNAUKGZHAVBHZGZHULVCVPVRUKVQACBJKLAUKJAVBMNUSUNURGVKUNURJUNVEURVJEUMGZHEVDH
    ZGZHUNVEVSWAUMVTEEEJKLEUMJEVDMNUOUQGZHVGVIHZGZHURVJWBWDUOVGUQWCUODCGHVGDCJD
    CSOUQUPUPGZVIUPUPJWEUPADGHZVIUPIADJWFADHRVIADSADUGUHUIPQLUOUQJVGVIMNQPQLVCV
    KMOTULUSJT $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the Lukasiewicz axioms from Nicod's axiom
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $( Minor premise. $)
    nic-imp.1 $e |- ( ph -/\ ( ch -/\ ps ) ) $.
    $( Inference for ~ nic-mp using ~ nic-ax as major premise.  (Contributed by
       Jeff Hoffman, 17-Nov-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nic-imp $p |- ( ( th -/\ ch ) -/\ ( ( ph -/\ th ) -/\ ( ph -/\ th ) ) ) $=
      ( wta wnan nic-ax nic-mp ) ACBGGDCGADGZJGGFFFGGEABCDFHI $.
  $}

  $( Lemma for ~ nic-id .  (Contributed by Jeff Hoffman, 17-Nov-2007.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  nic-idlem1 $p |- ( ( th -/\ ( ta -/\ ( ta -/\ ta ) ) ) -/\
                 ( ( ( ph -/\ ( ch -/\ ps ) ) -/\ th ) -/\
                   ( ( ph -/\ ( ch -/\ ps ) ) -/\ th ) ) ) $=
    ( wnan nic-ax nic-imp ) ACBFFACFAAFZIFFEEEFFDABCAEGH $.

  ${
    nic-idlem2.1 $e |- ( et -/\ ( ( ph -/\ ( ch -/\ ps ) ) -/\ th ) ) $.
    $( Lemma for ~ nic-id .  Inference used by ~ nic-id .  (Contributed by Jeff
       Hoffman, 17-Nov-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nic-idlem2 $p |- ( ( th -/\ ( ta -/\ ( ta -/\ ta ) ) ) -/\ et ) $=
      ( wnan nic-ax nic-imp nic-mp ) FACBHHZDHZHDEEEHHZHZFHZPGOMMFLACHAAHZQHHND
      ABCAEIJJK $.
  $}

  $( Theorem ~ id expressed with ` -/\ ` .  (Contributed by Jeff Hoffman,
     17-Nov-2007.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nic-id $p |- ( ta -/\ ( ta -/\ ta ) ) $=
    ( wph wps wch wth wnan nic-ax nic-idlem2 nic-idlem1 nic-mp ) BCFZCBFZLFFZDD
    DFZFZFZCCCFFZFAAAFFZOEEEMDQCCCBEGHMNDPCORFKLLOAIHJ $.

  $( The connector ` -/\ ` is symmetric.  (Contributed by Jeff Hoffman,
     17-Nov-2007.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nic-swap $p |- ( ( th -/\ ph ) -/\ ( ( ph -/\ th ) -/\ ( ph -/\ th ) ) ) $=
    ( wta wnan nic-id nic-ax nic-mp ) AAADDBADABDZHDDCCCDDAEAAABCFG $.

  ${
    nic-isw1.1 $e |- ( th -/\ ph ) $.
    $( Inference version of ~ nic-swap .  (Contributed by Jeff Hoffman,
       17-Nov-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nic-isw1 $p |- ( ph -/\ th ) $=
      ( wnan nic-swap nic-mp ) BADABDZGCABEF $.
  $}

  ${
    nic-isw2.1 $e |- ( ps -/\ ( th -/\ ph ) ) $.
    $( Inference for swapping nested terms.  (Contributed by Jeff Hoffman,
       17-Nov-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nic-isw2 $p |- ( ps -/\ ( ph -/\ th ) ) $=
      ( wnan nic-swap nic-imp nic-mp nic-isw1 ) BACEZBCAEZEJBEZLDJKKBCAFGHI $.
  $}

  ${
    nic-iimp1.1 $e |- ( ph -/\ ( ch -/\ ps ) ) $.
    nic-iimp1.2 $e |- ( th -/\ ch ) $.
    $( Inference version of ~ nic-imp using right-handed term.  (Contributed by
       Jeff Hoffman, 17-Nov-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nic-iimp1 $p |- ( th -/\ ph ) $=
      ( wnan nic-imp nic-mp nic-isw1 ) DADCGADGZKFABCDEHIJ $.
  $}

  ${
    nic-iimp2.1 $e |- ( ( ph -/\ ps ) -/\ ( ch -/\ ch ) ) $.
    nic-iimp2.2 $e |- ( th -/\ ph ) $.
    $( Inference version of ~ nic-imp using left-handed term.  (Contributed by
       Jeff Hoffman, 17-Nov-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nic-iimp2 $p |- ( th -/\ ( ch -/\ ch ) ) $=
      ( wnan nic-isw1 nic-iimp1 ) CCGZBADJABGEHFI $.
  $}

  ${
    nic-idel.1 $e |- ( ph -/\ ( ch -/\ ps ) ) $.
    $( Inference to remove the trailing term.  (Contributed by Jeff Hoffman,
       17-Nov-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nic-idel $p |- ( ph -/\ ( ch -/\ ch ) ) $=
      ( wnan nic-id nic-isw1 nic-imp nic-mp ) CCEZCEAJEZKJCCFGABCJDHI $.
  $}

  ${
    nic-ich.1 $e |- ( ph -/\ ( ps -/\ ps ) ) $.
    nic-ich.2 $e |- ( ps -/\ ( ch -/\ ch ) ) $.
    $( Chained inference.  (Contributed by Jeff Hoffman, 17-Nov-2007.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nic-ich $p |- ( ph -/\ ( ch -/\ ch ) ) $=
      ( wnan nic-isw1 nic-imp nic-mp ) CCFZBFAJFZKJBEGABBJDHI $.
  $}

  ${
    nic-idbl.1 $e |- ( ph -/\ ( ps -/\ ps ) ) $.
    $( Double the terms.  Since doubling is the same as negation, this can be
       viewed as a contraposition inference.  (Contributed by Jeff Hoffman,
       17-Nov-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nic-idbl $p |- ( ( ps -/\ ps ) -/\ ( ( ph -/\ ph ) -/\ ( ph -/\ ph ) ) ) $=
      ( wnan nic-imp nic-ich ) BBDABDAADABBBCEABBACEF $.
  $}

  $( Biconditional justification from Nicod's axiom.  For nic-* definitions,
     the biconditional connective is not used.  Instead, definitions are made
     based on this form. ~ nic-bi1 and ~ nic-bi2 are used to convert the
     definitions into usable theorems about one side of the implication.
     (Contributed by Jeff Hoffman, 18-Nov-2007.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  nic-bijust $p |- ( ( ta -/\ ta ) -/\ ( ( ta -/\ ta ) -/\ ( ta -/\ ta ) ) ) $=
    ( nic-swap ) AAB $.

  ${
    $( 'Biconditional' premise. $)
    nic-bi1.1 $e |- ( ( ph -/\ ps ) -/\ ( ( ph -/\ ph )
         -/\ ( ps -/\ ps ) ) ) $.
    $( Inference to extract one side of an implication from a definition.
       (Contributed by Jeff Hoffman, 18-Nov-2007.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nic-bi1 $p |- ( ph -/\ ( ps -/\ ps ) ) $=
      ( wnan nic-id nic-iimp1 nic-isw2 nic-idel ) AABBAAABDBBDAADACAEFGH $.
  $}

  ${
    $( 'Biconditional' premise. $)
    nic-bi2.1 $e |- ( ( ph -/\ ps ) -/\ ( ( ph -/\ ph )
         -/\ ( ps -/\ ps ) ) ) $.
    $( Inference to extract the other side of an implication from a
       'biconditional' definition.  (Contributed by Jeff Hoffman, 18-Nov-2007.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nic-bi2 $p |- ( ps -/\ ( ph -/\ ph ) ) $=
      ( wnan nic-isw2 nic-id nic-iimp1 nic-idel ) BBAABDZAADZBBDZBKIJCEBFGH $.
  $}

  ${
    $( Minor premise. $)
    nic-smin $e |- ph $.
    $( Major premise. $)
    nic-smaj $e |- ( ph -> ps ) $.
    $( Derive the standard modus ponens from ~ nic-mp .  (Contributed by Jeff
       Hoffman, 18-Nov-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nic-stdmp $p |- ps $=
      ( wi wnan nic-dfim nic-bi2 nic-mp ) ABBCABEZABBFFZKDKJABGHII $.
  $}

  $( Proof of ~ luk-1 from ~ nic-ax and ~ nic-mp (and definitions ~ nic-dfim
     and ~ nic-dfneg ).  Note that the standard axioms ~ ax-1 , ~ ax-2 , and
     ~ ax-3 are proved from the Lukasiewicz axioms by theorems ~ ax1 , ~ ax2 ,
     and ~ ax3 .  (Contributed by Jeff Hoffman, 18-Nov-2007.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  nic-luk1 $p |- ( ( ph -> ps ) -> ( ( ps -> ch ) -> ( ph -> ch ) ) ) $=
    ( wta wi nic-dfim nic-bi2 nic-ax nic-isw2 nic-idel nic-bi1 nic-idbl nic-imp
    wnan nic-swap nic-ich nic-mp ) ABEZBCEZACEZEZUANNZRUAEZUCRABBNNZUAUDRABFGUD
    STTNZNZUAUDCCNZBNZAUGNZUINZNZUFUDDDDNNZUKUKUDULABBUGDHIJUKUEUHNUFUEUJUJUHUI
    TUITACFKLMSUHUHUESBUGNZUHUMSBCFGUGBOPMPPUFUASTFKPPUBUCRUAFKQ $.

  $( Proof of ~ luk-2 from ~ nic-ax and ~ nic-mp .  (Contributed by Jeff
     Hoffman, 18-Nov-2007.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nic-luk2 $p |- ( ( -. ph -> ph ) -> ph ) $=
    ( wn wi wnan nic-dfim nic-bi2 nic-dfneg nic-iimp1 nic-isw2 nic-isw1 nic-bi1
    nic-id nic-mp ) ABZACZAADZDZOACZROPONPDZSPSONAEFNPPPNDNNDPPDPAGPLHIHJQROAEK
    M $.

  $( Proof of ~ luk-3 from ~ nic-ax and ~ nic-mp .  (Contributed by Jeff
     Hoffman, 18-Nov-2007.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nic-luk3 $p |- ( ph -> ( -. ph -> ps ) ) $=
    ( wnan nic-dfim nic-bi1 nic-dfneg nic-bi2 nic-id nic-iimp1 nic-iimp2 nic-mp
    wn wi ) AALZBMZOCCZAOMZQNBBCZOANRCONBDENAACZSASNAFGAHIJPQAODEK $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive Nicod's Axiom from Lukasiewicz's First Sheffer Stroke Axiom
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( This alternative axiom for propositional calculus using the Sheffer Stroke
     was offered by Lukasiewicz in his Selected Works.  It improves on Nicod's
     axiom by reducing its number of variables by one.

     This axiom also uses ~ nic-mp for its constructions.

     Here, the axiom is proved as a substitution instance of ~ nic-ax .
     (Contributed by Anthony Hart, 31-Jul-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  lukshef-ax1 $p |- ( ( ph -/\ ( ch -/\ ps ) ) -/\ ( ( th -/\ ( th -/\ th ) )
          -/\ ( ( th -/\ ch ) -/\ ( ( ph -/\ th ) -/\ ( ph -/\ th ) ) ) ) ) $=
    ( nic-ax ) ABCDDE $.

  $( Lemma for ~ renicax .  (Contributed by NM, 31-Jul-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  lukshefth1 $p |- ( ( ( ( ta -/\ ps ) -/\ ( ( ph -/\ ta ) -/\ ( ph
          -/\ ta ) ) ) -/\ ( th -/\ ( th -/\ th ) ) ) -/\ ( ph -/\ ( ps
          -/\ ch ) ) ) $=
    ( wnan lukshef-ax1 nic-mp ) ABCFFZEEEFFZEBFAEFZKFFZFZFZLDDDFFZFZIFZQACBEGPM
    MFFZNQQFFIIIFFJODEFEDFZSFFZFFRLLLFFEEEDGJTOLGHPMMIGHH $.

  $( Lemma for ~ renicax .  (Contributed by NM, 31-Jul-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  lukshefth2 $p |- ( ( ta -/\ th ) -/\ ( ( th -/\ ta ) -/\ ( th
          -/\ ta ) ) ) $=
    ( wps wch wph wnan lukshef-ax1 nic-mp lukshefth1 ) AAAFFZBAFABFZKFFBBBFFAJF
    ZCDEFFZAFZNFFZJBEFEBFZPFFZMJADFCAFZRFFZFFOJCEDAGMSJAGHQJFZEEEFFZFZOTFZUCEEE
    ABIOUAENFLEFZUDFFZFFUBUCUCFFTTTFFLNNEGOUEUATGHHHAAABGH $.

  $( A rederivation of ~ nic-ax from ~ lukshef-ax1 , proving that ~ lukshef-ax1
     with ~ nic-mp can be used as a complete axiomatization of propositional
     calculus.  (Contributed by Anthony Hart, 31-Jul-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  renicax $p |- ( ( ph -/\ ( ch -/\ ps ) ) -/\ ( ( ta -/\ ( ta -/\ ta ) )
          -/\ ( ( th -/\ ch ) -/\ ( ( ph -/\ th ) -/\ ( ph -/\ th ) ) ) ) ) $=
    ( wnan lukshefth1 lukshefth2 nic-mp lukshef-ax1 ) EEEFFZDCFADFZLFFZFZACBFFZ
    FZONFZQOMKFZFZPPROFSSACBEDGORHINRRFFSPPFFOOOFFMKHNRROJIIONHI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the Lukasiewicz Axioms from the Tarski-Bernays-Wajsberg Axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Justification for ~ tbw-negdf .  (Contributed by Anthony Hart,
     15-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  tbw-bijust $p |- ( ( ph <-> ps ) <-> ( ( ( ph -> ps )
    -> ( ( ps -> ph ) -> F. ) ) -> F. ) ) $=
    ( wb wi wn wfal dfbi1 pm2.21 imim2i falim impbii notbii ax-1 pm2.43i 3bitri
    id ja ) ABCABDZBADZEZDZERSFDZDZEZUCFDZABGUAUCUAUCTUBRSFHIUBTRSFTTPTJQIKLUDU
    EUCFHUEUDUCFUEUDDZUDUEMUFJQNKO $.

  $( The definition of negation, in terms of ` -> ` and ` F. ` .  (Contributed
     by Anthony Hart, 15-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  tbw-negdf $p |- ( ( ( -. ph -> ( ph -> F. ) )
    -> ( ( ( ph -> F. ) -> -. ph ) -> F. ) ) -> F. ) $=
    ( wn wfal wi wb pm2.21 ax-1 falim ja pm2.43i impbii tbw-bijust mpbi ) ABZAC
    DZENODONDZCDDCDNOACFONACPNOGPHIJKNOLM $.

  $( The first of four axioms in the Tarski-Bernays-Wajsberg system.
     (Contributed by Anthony Hart, 13-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  tbw-ax1 $p |- ( ( ph -> ps ) -> ( ( ps -> ch ) -> ( ph -> ch ) ) ) $=
    ( imim1 ) ABCD $.

  $( The second of four axioms in the Tarski-Bernays-Wajsberg system.
     (Contributed by Anthony Hart, 13-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  tbw-ax2 $p |- ( ph -> ( ps -> ph ) ) $=
    ( ax-1 ) ABC $.

  $( The third of four axioms in the Tarski-Bernays-Wajsberg system.
     (Contributed by Anthony Hart, 13-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  tbw-ax3 $p |- ( ( ( ph -> ps ) -> ph ) -> ph ) $=
    ( peirce ) ABC $.

  $( The fourth of four axioms in the Tarski-Bernays-Wajsberg system.

     This axiom was added to the Tarski-Bernays axiom system (see ~ tb-ax1 ,
     ~ tb-ax2 , and ~ tb-ax3 ) by Wajsberg for completeness.  (Contributed by
     Anthony Hart, 13-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  tbw-ax4 $p |- ( F. -> ph ) $=
    ( falim ) AB $.

  ${
    tbwsyl.1 $e |- ( ph -> ps ) $.
    tbwsyl.2 $e |- ( ps -> ch ) $.
    $( Used to rederive the Lukasiewicz axioms from Tarski-Bernays-Wajsberg'.
       (Contributed by Anthony Hart, 16-Aug-2011.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    tbwsyl $p |- ( ph -> ch ) $=
      ( wi tbw-ax1 ax-mp ) BCFZACFZEABFIJFDABCGHH $.
  $}

  $( Used to rederive the Lukasiewicz axioms from Tarski-Bernays-Wajsberg'.
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  tbwlem1 $p |- ( ( ph -> ( ps -> ch ) ) -> ( ps -> ( ph -> ch ) ) ) $=
    ( wi tbw-ax2 tbw-ax1 tbwsyl tbw-ax3 mpsyl ) BBCDZCDZDAJDKACDZDBLDBJKDZKBJBD
    MBJEJBCFGMKCDKDKJKCFKCHGGAJCFBKLFI $.

  $( Used to rederive the Lukasiewicz axioms from Tarski-Bernays-Wajsberg'.
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  tbwlem2 $p |- ( ( ph -> ( ps -> F. ) ) -> ( ( ( ph -> ch ) -> th )
    -> ( ps -> th ) ) ) $=
    ( wfal wi tbw-ax4 tbw-ax1 tbwlem1 ax-mp mpsyl tbwsyl ) ABEFZFZBACFZFZODFBDF
    FBMCFZFZNQOFPMBCFZFZRECFZTCGMUASFFUATFBECHMUASIJJMBCIJAMCHBQOHKBODHL $.

  $( Used to rederive the Lukasiewicz axioms from Tarski-Bernays-Wajsberg'.
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  tbwlem3 $p |- ( ( ( ( ( ph -> F. ) -> ph ) -> ph ) -> ps ) -> ps ) $=
    ( wfal wi tbw-ax3 tbw-ax2 tbw-ax1 tbwsyl ax-mp ) ACDADADZBDZKBDZDZLJMACEJKJ
    DMJKFKJBGHIMLBDLDLKLBGLBEHI $.

  $( Used to rederive the Lukasiewicz axioms from Tarski-Bernays-Wajsberg'.
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  tbwlem4 $p |- ( ( ( ph -> F. ) -> ps ) -> ( ( ps -> F. ) -> ph ) ) $=
    ( wfal wi tbw-ax4 tbw-ax1 tbwlem1 ax-mp tbwlem2 tbwlem3 tbwsyl ) ACDZBDZLBC
    DZCDZDZNADZBODZMPDZNNDZRCCDZTCENUANDDUATDBCCFNUANGHHNBCGHMRPDDRSDLBOFMRPGHH
    PLADADQDQLNAAIAQJKK $.

  $( Used to rederive the Lukasiewicz axioms from Tarski-Bernays-Wajsberg'.
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  tbwlem5 $p |- ( ( ( ph -> ( ps -> F. ) ) -> F. ) -> ph ) $=
    ( wfal wi tbw-ax2 tbw-ax1 tbwsyl tbwlem1 ax-mp tbwlem4 ) ACDZABCDZDZDZMCDAD
    AKLDZDNABADOABEBACFGAKLHIAMJI $.

  $( ~ luk-1 derived from the Tarski-Bernays-Wajsberg axioms.  (Contributed by
     Anthony Hart, 16-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  re1luk1 $p |- ( ( ph -> ps ) -> ( ( ps -> ch ) -> ( ph -> ch ) ) ) $=
    ( tbw-ax1 ) ABCD $.

  $( ~ luk-2 derived from the Tarski-Bernays-Wajsberg axioms.  (Contributed by
     Anthony Hart, 16-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  re1luk2 $p |- ( ( -. ph -> ph ) -> ph ) $=
    ( wn wi wfal tbw-negdf tbw-ax2 tbwlem4 ax-mp tbw-ax1 tbw-ax3 tbwsyl ) ABZAC
    ZADCZACZANLCZMOCLNCZPDCZCZDCZPAERSCTPCRQFPSGHHNLAIHADJK $.

  $( ~ luk-3 derived from the Tarski-Bernays-Wajsberg axioms.

     This theorem, along with ~ re1luk1 and ~ re1luk2 proves that ~ tbw-ax1 ,
     ~ tbw-ax2 , ~ tbw-ax3 , and ~ tbw-ax4 , with ~ ax-mp can be used as a
     complete axiom system for all of propositional calculus.  (Contributed by
     Anthony Hart, 16-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  re1luk3 $p |- ( ph -> ( -. ph -> ps ) ) $=
    ( wn wfal wi tbw-negdf tbwlem5 ax-mp tbw-ax4 tbw-ax1 tbwlem1 mpsyl ) ACZADE
    ZEZANBEZMBEONMEZDEEDEOAFOQGHNABEZEZAPEDBEZSBINTREETSEADBJNTRKHHNABKHMNBJL
    $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the Tarski-Bernays-Wajsberg axioms from Meredith's First CO Axiom
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( A single axiom for propositional calculus offered by Meredith.

     This axiom is worthy of note, due to it having only 19 symbols, not
     counting parentheses.  The more well-known ~ meredith has 21 symbols, sans
     parentheses.

     See ~ merco2 for another axiom of equal length.  (Contributed by Anthony
     Hart, 13-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  merco1 $p |- ( ( ( ( ( ph -> ps ) -> ( ch -> F. ) ) -> th ) -> ta )
         -> ( ( ta -> ph ) -> ( ch -> ph ) ) ) $=
    ( wi wfal wn ax-1 falim ja imim2i imim1i meredith syl ) ABFZCGFZFZDFZEFPDHZ
    CHZFZFZDFZEFEAFCAFFUDSERUCDQUBPCGUBUATIUBJKLMMABDCENO $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 17-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem1 $p |- ( ph -> ( F. -> ch ) ) $=
    ( wfal wi merco1 ax-mp ) AACADZDZDZACBDZDZHGDZHDZIGCDACDZDZGDHDZMGNDZNDZGDO
    DPCAANGEGNAGOEFGCAGHEFHCDZNDZGDLDZMIDQSDHDTDUACAASHEGNHHTEFHCAGLEFFHJDZKDZI
    KDZJCDNDZGDHDZUCRJDUEDUFCAANJEGNAJUEEFJCAGHEFKCDICDZDZJDUBDZUCUDDJUGDSDKDUH
    DUICBISKEJUGHKUHEFKCIJUBEFFF $.

  $( ~ tbw-ax4 rederived from ~ merco1 .  (Contributed by Anthony Hart,
     17-Sep-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  retbwax4 $p |- ( F. -> ph ) $=
    ( wfal wi merco1lem1 ax-mp ) ABACZCZFAADGADE $.

  $( ~ tbw-ax2 rederived from ~ merco1 .  (Contributed by Anthony Hart,
     17-Sep-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  retbwax2 $p |- ( ph -> ( ps -> ph ) ) $=
    ( wi wfal merco1lem1 merco1 ax-mp ) AAAACZCZCZABACZCZDACZHCZICZJHACADCZCACZ
    MCOQAEHAAAMFGIPCPCDCNCOJCAHAPDFIPADNFGGMKCZLCZJLCZKACPCACZMCSUAAEKAAAMFGLBD
    CZCJDCZCDCRCSTCAKBUCDFLUBJDRFGGG $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 17-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem2 $p |- ( ( ( ph -> ps ) -> ch ) -> ( ( ( ps -> ta ) -> ( ph ->
    F. ) ) -> ch ) ) $=
    ( wi wfal retbwax2 merco1 ax-mp ) CAEZBDEAFEEZFEZEZBEABEZEZNCEKCEELMEOLJGBD
    AFMHICAKBNHI $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 17-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem3 $p |- ( ( ( ph -> ps ) -> ( ch -> F. ) ) -> ( ch -> ph ) ) $=
    ( wi wfal merco1lem2 retbwax2 ax-mp ) AAADZAEDDZIDZDZABDCEDDZCADZDZIEDJEDDZ
    LAAEAFKLDPLDKAGJILEFHHNEDMEDDZLODZCAEBFORDQRDOLGMNREFHHH $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 17-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem4 $p |- ( ( ( ph -> ps ) -> ch ) -> ( ps -> ch ) ) $=
    ( wi wfal merco1lem3 merco1 ax-mp ) CADZBEDZDZBDABDZDZLCDBCDDJAEDZDIEDZDKDM
    JNIFBEAOKGHCABBLGH $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 17-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem5 $p |- ( ( ( ( ph -> F. ) -> ch ) -> ta ) -> ( ph -> ta ) ) $=
    ( wi wfal merco1lem4 merco1 ax-mp ) CADZAEDZDBDJBDZDKCDACDDIJBFCAABKGH $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 17-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem6 $p |- ( ( ph -> ( ph -> ps ) ) -> ( ch -> ( ph -> ps ) ) ) $=
    ( wi wfal merco1lem5 merco1lem3 ax-mp merco1 ) ABDZEDCEDZDZEDZADZAJDCJDDJME
    DZDZNLODZPOEDMDQLEEFOELGHJKOFHABMGHJECEAIH $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 17-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem7 $p |- ( ph -> ( ( ( ps -> ch ) -> ps ) -> ps ) ) $=
    ( wi wfal merco1lem5 merco1 ax-mp merco1lem6 ) BCDZBDZKBDZDZALDBEDKEDZDCDJD
    MBNCFBEKCJGHKBAIH $.

  $( ~ tbw-ax3 rederived from ~ merco1 .  (Contributed by Anthony Hart,
     17-Sep-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  retbwax3 $p |- ( ( ( ph -> ps ) -> ph ) -> ph ) $=
    ( wi retbwax2 merco1lem7 ax-mp ) AAACCZABCACACAADGABEF $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 17-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem8 $p |- ( ph -> ( ( ps -> ( ps -> ch ) ) -> ( ps -> ch ) ) ) $=
    ( wi merco1lem6 ax-mp ) BBCDZDZHGDZDAIDBCHEHGAEF $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 18-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem9 $p |- ( ( ph -> ( ph -> ps ) ) -> ( ph -> ps ) ) $=
    ( wfal wi merco1lem8 ax-mp ) CADZAABDZDHDZDZIGABEJABEF $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 18-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem10 $p |- ( ( ( ( ( ph -> ps ) -> ch ) -> ( ta -> ch ) ) -> ph ) ->
    ( th -> ph ) ) $=
    ( wi wfal merco1 merco1lem2 ax-mp ) ABFZDGFZFCAFEGFFAFZGFZFKCFECFFZFZOAFDAF
    FMKFOFPCAEAKHMKOLIJABDNOHJ $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 18-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem11 $p |- ( ( ph -> ps ) -> ( ( ( ch -> ( ph -> ta ) ) -> F. ) -> ps
    ) ) $=
    ( wi wfal merco1lem5 merco1lem3 ax-mp merco1lem4 merco1 merco1lem2 ) ADEZBA
    EZCMEZFEZFEZEZFEZFEZEZABEPBEEZOTEZUAQTEZUCRTEZUDTFESEUERFFGTFRHINQTJIOFTGIC
    MTJISAEUBEUAUBEBAPFAKSAUBDLII $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 18-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem12 $p |- ( ( ph -> ps ) -> ( ( ( ch -> ( ph -> ta ) ) -> ph ) -> ps
    ) ) $=
    ( wi wfal merco1lem3 merco1 ax-mp merco1lem9 merco1lem11 ) BAEZCADEZEZAEZFE
    ZEFEAEZABEOBEEOAEZQOREZRMPECFEZENESMPCGADOTNHIOAJIOALFKIBAOFAHI $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 18-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem13 $p |- ( ( ( ( ph -> ps ) -> ( ch -> ps ) ) -> ta ) -> ( ph ->
    ta ) ) $=
    ( wi wfal merco1 merco1lem4 ax-mp merco1lem12 ) DAEZAFEEAEABECBEEZEZLDEADEE
    ALEZMBAECFEEAEZAELENBACAAGOALHIALKFJIDAAALGI $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 18-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem14 $p |- ( ( ( ( ph -> ps ) -> ps ) -> ch ) -> ( ph -> ch ) ) $=
    ( wi wfal merco1lem13 merco1lem8 merco1 ax-mp merco1lem9 merco1lem12 ) CADZ
    AEDDADABDZBDZDZNCDACDDANDZOMNDNDZPDZPABMNFRRPDZDZSPADREDDADZQDTUAMBGPARAQHI
    RPJIIANLEKICAAANHI $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 18-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem15 $p |- ( ( ph -> ps ) -> ( ph -> ( ch -> ps ) ) ) $=
    ( wi merco1lem14 merco1lem13 ax-mp ) ABDZBDCBDZDAIDZDHJDABIEHBCJFG $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 18-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem16 $p |- ( ( ( ph -> ( ps -> ch ) ) -> ta ) -> ( ( ph -> ch ) -> ta
    ) ) $=
    ( wi wfal merco1lem15 merco1lem11 ax-mp merco1 ) DAEZACEZFEEFEABCEEZEZMDELD
    EELMENACBGLMKFHIDALFMJI $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 18-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem17 $p |- ( ( ( ( ( ph -> ps ) -> ph ) -> ch ) -> ta ) -> ( ( ph ->
    ch ) -> ta ) ) $=
    ( wfal merco1lem11 merco1lem7 ax-mp merco1lem9 merco1lem4 merco1lem16 mpsyl
    wi merco1 ) DAMZACMZEMZMCMZABMAMZCMZMTDMPDMMQPMZTMZRQCMTPTMZUBCAMZSEMMEMAMZ
    UCSAMZUEMZUESAUDEFUGUGUEMZMZUHUEAMUGEMMAMZUFMUIUJABGUEAUGAUFNHUGUEIHHCASEAN
    HTAMZUAEMMEMPMZUCUBMUAPMZULMZULUAPUKEFUNUNULMZMZUOULAMUNEMMAMZUMMUPUQPEGULA
    UNAUMNHUNULIHHTAUAEPNHHOQCJQACTKLDAPCTNH $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco1 .
     (Contributed by Anthony Hart, 18-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco1lem18 $p |- ( ( ph -> ( ps -> ch ) ) -> ( ( ps -> ph ) -> ( ps ->
    ch ) ) ) $=
    ( wfal merco1 merco1lem17 ax-mp merco1lem5 merco1lem3 merco1lem4 merco1lem2
    wi merco1lem9 ) BALZABCLZLZNOLZLZLZROBLZALRLZSTNDLZLTLALRLUAOBNTAETUBARFGBC
    ARFGSSRLZLZUCQRDLSDLZLZDLZDLZLZUDRUHLZUIUFUHLZUJUHDLUGLUKUFDDHUHDUFIGRUEUHH
    GPQUHJGUGNLUDLUIUDLRDSDNEUGNUDOKGGSRMGG $.

  $( ~ tbw-ax1 rederived from ~ merco1 .

     This theorem, along with ~ retbwax2 , ~ retbwax3 , and ~ retbwax4 , shows
     that ~ merco1 with ~ ax-mp can be used as a complete axiomatization of
     propositional calculus.  (Contributed by Anthony Hart, 18-Sep-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  retbwax1 $p |- ( ( ph -> ps ) -> ( ( ps -> ch ) -> ( ph -> ch ) ) ) $=
    ( wi merco1lem18 merco1lem16 ax-mp merco1lem15 merco1lem14 wfal merco1lem10
    merco1 merco1lem9 merco1lem13 ) BCDZABDZACDZDZDZPOQDZDZBQDRDSBACEBACRFGOSUA
    DZDZUBSRDUBDZUCRUBDZUDRUADUEPQOHRUASHGRSUAEGORUBIGUCUBDZJDZUADZUFUGTDZUHUFQ
    DZTDZUIOUBQITADZUGJDZDZQDUJDZUKUIDQADZUGDZUMDUNDZUOUMJDULJDDUGDUQDURUGJJUPU
    LKUMJULUGUQLGQAUFUMUNLGTAUGQUJLGGUGTPHGUHUBDUFDZUFDZUHUFDUSUTDUTUFJUAUSSKUS
    UFMGUHUBUCUFNGGGG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the Tarski-Bernays-Wajsberg axioms from Meredith's Second CO Axiom
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( A single axiom for propositional calculus offered by Meredith.

     This axiom has 19 symbols, sans auxiliaries.  See notes in ~ merco1 .
     (Contributed by Anthony Hart, 7-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  merco2 $p |- ( ( ( ph -> ps ) -> ( ( F. -> ch ) -> th ) ) -> ( ( th
         -> ph ) -> ( ta -> ( et -> ph ) ) ) ) $=
    ( wi wfal falim pm2.04 mpi jarl idd jad looinv 3syl a1dd a1i com4l ) FABGZH
    CGZDGGZDAGZEAUBUCEAGGGFUBUCAEUBTDGZADGDGUCAGUBUAUDCITUADJKUDADDABDLUDDMNADO
    PQRS $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco2 .
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  mercolem1 $p |- ( ( ( ph -> ps ) -> ch ) -> ( ps -> ( th -> ch ) ) ) $=
    ( wi wfal merco2 ax-mp ) AAEZFAEZAEEIAIEEEZABEZCEZBDCEZEZEZAAAAAAGZKKPEZQCA
    EZJLEZEZPEZKREZCAALBDGPTEJUAEEZUBUCETOEJPEEZUDOJFEZEFBETEEUEBNAFJAGOUFBTJMG
    HTOAPJSGHPTAUAKKGHHHH $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco2 .
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  mercolem2 $p |- ( ( ( ph -> ps ) -> ph ) -> ( ch -> ( th -> ph ) ) ) $=
    ( wi wfal merco2 ax-mp ) AAEZFAEZAEEIAIEEEZABEZAEZCDAEEZEZAAAAAAGZKKOEZPIJL
    EZEZOEZKQEZAAALCDGOREJSEEZTUAERNEJOEEZUBNLEJREEZUCLJFEZEJNEEUDABAFCDGLUEANJ
    JGHNLARJMGHRNAOJIGHORASKKGHHHH $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco2 .
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  mercolem3 $p |- ( ( ps -> ch ) -> ( ps -> ( ph -> ch ) ) ) $=
    ( wi wfal merco2 mercolem2 ax-mp ) AADZEADZADDIAIDDDZBCDZBACDZDZDZAAAAAAFZK
    KODZPCADZJBDZDZODZKQDZCAABBAFOSDJTDDZUAUBDSNDJODDZUCNBDJSDDUDBMJJGNBASJLFHS
    NAOJRFHOSATKKFHHHH $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco2 .
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  mercolem4 $p |- ( ( th -> ( et -> ph ) ) -> ( ( ( th -> ch )
  -> ph ) -> ( ta -> ( et -> ph ) ) ) ) $=
    ( wi wfal merco2 mercolem1 ax-mp mercolem3 ) AAFZGAFZAFFLALFFFZCEAFZFZCBFZA
    FZDOFFZFZAAAAAAHZNNTFZUAOAFZMCFFZTFZNUBFZOAACRDHTCFZMUDFFZUEUFFUGUDFZUHQMTF
    FZUIMQFZTFZUJLUKFSFULAAAQDEHLUKSPIJMQTMIJCBATUCMHJMUGUDKJTCAUDNNHJJJJ $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco2 .
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  mercolem5 $p |- ( th -> ( ( th -> ph ) -> ( ta -> ( ch -> ph ) ) ) ) $=
    ( wi wfal merco2 mercolem1 ax-mp mercolem2 ) AAEZFAEZAEEKAKEEEZCCAEDBAEEEZE
    ZAAAAAAGZMMOEZPLCEZOEZMQEZKRENESAAACDBGKRNCHIOCELREESTECNLLJOCARMMGIIII $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco2 .
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  mercolem6 $p |- ( ( ph -> ( ps -> ( ph -> ch ) ) )
  -> ( ps -> ( ph -> ch ) ) ) $=
    ( wi wfal merco2 mercolem1 ax-mp mercolem5 mercolem4 ) AADZEADADDKAKDDDZABA
    CDZDZDZNDZAAAAAAFZLLPDZQLLRDZQORDZLSDZLTQMRDZLTDZAODZMDPDUBAOMBGUDMPLGHATDU
    BUCDNOALIRCALOJHHHLTUADZQPUADZLUEDZALDZPDSDUFALPLGUHPSLGHOUEDUFUGDRLOLIUANO
    LTJHHHHHHH $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco2 .
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  mercolem7 $p |- ( ( ph -> ps ) -> ( ( ( ph -> ch )
  -> ( th -> ps ) ) -> ( th -> ps ) ) ) $=
    ( wi wfal merco2 mercolem3 mercolem6 ax-mp mercolem5 mercolem4 ) AAEZFAEAEE
    MAMEEEZABEZACEZDBEZEZQEZEZAAAAAAGPSEZNTEZRUAEUARPQHRPQIJATEUAUBEBDARKSCANOL
    JJJ $.

  $( Used to rederive the Tarski-Bernays-Wajsberg axioms from ~ merco2 .
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  mercolem8 $p |- ( ( ph -> ps ) -> ( ( ps -> ( ph -> ch ) )
  -> ( ta -> ( th -> ( ph -> ch ) ) ) ) ) $=
    ( wi wfal merco2 mercolem3 ax-mp mercolem7 ) AAFZGAFZAFFLALFFFZABFZBACFZFED
    PFFFZFZAAAAAAHZNNRFZSPMBFZFUAFZRFZNTFZUBQFUCPUAABEDHOUBQIJRMUBFZFUEFZUCUDFO
    UBFUFABCMKOUBQMKJRUEAUBNNHJJJJ $.

  $( ~ tbw-ax1 rederived from ~ merco2 .  (Contributed by Anthony Hart,
     16-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  re1tbw1 $p |- ( ( ph -> ps ) -> ( ( ps -> ch ) -> ( ph -> ch ) ) ) $=
    ( wi mercolem8 mercolem3 mercolem6 mpsyl ax-mp ) BCDZABDZJACDZDZDZDNKBLDZND
    DJONABCJKEABCFKOMGHJKLGI $.

  $( ~ tbw-ax2 rederived from ~ merco2 .  (Contributed by Anthony Hart,
     16-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  re1tbw2 $p |- ( ph -> ( ps -> ph ) ) $=
    ( wi mercolem1 ax-mp mercolem6 ) BABACZCZCZHAICZIAACZACHCJAAABDKAHBDEABGFEB
    AAFE $.

  $( ~ tbw-ax3 rederived from ~ merco2 .  (Contributed by Anthony Hart,
     16-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  re1tbw3 $p |- ( ( ( ph -> ps ) -> ph ) -> ph ) $=
    ( wi mercolem2 mercolem6 ax-mp ) AACZACAGCCZABCACZACZAAAADIHJCZCKABHIDIHAEF
    F $.

  $( ~ tbw-ax4 rederived from ~ merco2 .

     This theorem, along with ~ re1tbw1 , ~ re1tbw2 , and ~ re1tbw3 , shows
     that ~ merco2 , along with ~ ax-mp , can be used as a complete
     axiomatization of propositional calculus.  (Contributed by Anthony Hart,
     16-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  re1tbw4 $p |- ( F. -> ph ) $=
    ( wi wfal re1tbw3 re1tbw2 re1tbw1 ax-mp mercolem3 merco2 ) AABZCABZJABZABZJ
    AADALBMJBAJEALAFGGZJJKBZNKKBZJOBZKABZKBZKBZPKADKSBTPBKREKSKFGGRPBPQBCKAHKAA
    KJJIGGGG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the Lukasiewicz axioms from the Russell-Bernays Axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Justification for ~ rb-imdf .  (Contributed by Anthony Hart, 17-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  rb-bijust $p |- ( ( ph <-> ps ) <-> -. ( -. ( -. ph \/ ps )
    \/ -. ( -. ps \/ ph ) ) ) $=
    ( wb wi wn wo dfbi1 imor notbii imbi12i pm4.62 3bitri ) ABCABDZBADZEZDZEAEB
    FZBEAFZEZDZEQESFZEABGPTMQOSABHNRBAHIJITUAQRKIL $.

  $( The definition of implication, in terms of ` \/ ` and ` -. ` .
     (Contributed by Anthony Hart, 17-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  rb-imdf $p |- -. ( -. ( -. ( ph -> ps ) \/ ( -. ph \/ ps ) )
    \/ -. ( -. ( -. ph \/ ps ) \/ ( ph -> ps ) ) ) $=
    ( wi wn wo wb imor rb-bijust mpbi ) ABCZADBEZFJDKEDKDJEDEDABGJKHI $.

  ${
    anmp.min $e |- ph $.
    anmp.maj $e |- ( -. ph \/ ps ) $.
    $( Modus ponens for ` \/ ` ` -. ` axiom systems.  (Contributed by Anthony
       Hart, 12-Aug-2011.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    anmp $p |- ps $=
      ( imorri ax-mp ) ABCABDEF $.
  $}

  $( The first of four axioms in the Russell-Bernays axiom system.
     (Contributed by Anthony Hart, 13-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  rb-ax1 $p |- ( -. ( -. ps \/ ch ) \/ ( -. ( ph \/ ps ) \/ ( ph \/ ch ) ) ) $=
    ( wn wo wi orim2 imor 3imtr3i imori ) BDCEZABEZDACEZEZBCFLMFKNABCGBCHLMHIJ
    $.

  $( The second of four axioms in the Russell-Bernays axiom system.
     (Contributed by Anthony Hart, 13-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  rb-ax2 $p |- ( -. ( ph \/ ps ) \/ ( ps \/ ph ) ) $=
    ( wo wn pm1.4 con3i con1i orri ) ABCZDZBACZKJIKABEFGH $.

  $( The third of four axioms in the Russell-Bernays axiom system.
     (Contributed by Anthony Hart, 13-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  rb-ax3 $p |- ( -. ph \/ ( ps \/ ph ) ) $=
    ( wn wo pm2.46 con1i orri ) ACZBADZIHBAEFG $.

  $( The fourth of four axioms in the Russell-Bernays axiom system.
     (Contributed by Anthony Hart, 13-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  rb-ax4 $p |- ( -. ( ph \/ ph ) \/ ph ) $=
    ( wo wn pm1.2 con3i con1i orri ) AABZCZAAIHAADEFG $.

  ${
    rbsyl.1 $e |- ( -. ps \/ ch ) $.
    rbsyl.2 $e |- ( ph \/ ps ) $.
    $( Used to rederive the Lukasiewicz axioms from Russell-Bernays'.
       (Contributed by Anthony Hart, 18-Aug-2011.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    rbsyl $p |- ( ph \/ ch ) $=
      ( wo wn rb-ax1 anmp ) ABFZACFZEBGCFJGKFDABCHII $.
  $}

  ${
    rblem1.1 $e |- ( -. ph \/ ps ) $.
    rblem1.2 $e |- ( -. ch \/ th ) $.
    $( Used to rederive the Lukasiewicz axioms from Russell-Bernays'.
       (Contributed by Anthony Hart, 18-Aug-2011.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    rblem1 $p |- ( -. ( ph \/ ch ) \/ ( ps \/ th ) ) $=
      ( wo wn rb-ax1 anmp rb-ax2 rbsyl ) ACGHZBCGZBDGZCHDGNHOGFBCDIJMCBGZNCBKMC
      AGZPAHBGQHPGECABIJACKLLL $.
  $}

  $( Used to rederive the Lukasiewicz axioms from Russell-Bernays'.
     (Contributed by Anthony Hart, 18-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  rblem2 $p |- ( -. ( ch \/ ph ) \/ ( ch \/ ( ph \/ ps ) ) ) $=
    ( wn wo rb-ax2 rb-ax3 rbsyl rb-ax1 anmp ) ADZABEZECAEDCLEEKBAELBAFABGHCALIJ
    $.

  $( Used to rederive the Lukasiewicz axioms from Russell-Bernays'.
     (Contributed by Anthony Hart, 18-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  rblem3 $p |- ( -. ( ch \/ ph ) \/ ( ( ch \/ ps ) \/ ph ) ) $=
    ( wo wn rb-ax2 rblem2 rbsyl ) CADEZACBDZDZJADAJFIACDKCBAGCAFHH $.

  ${
    rblem4.1 $e |- ( -. ph \/ th ) $.
    rblem4.2 $e |- ( -. ps \/ ta ) $.
    rblem4.3 $e |- ( -. ch \/ et ) $.
    $( Used to rederive the Lukasiewicz axioms from Russell-Bernays'.
       (Contributed by Anthony Hart, 18-Aug-2011.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    rblem4 $p |- ( -. ( ( ph \/ ps ) \/ ch ) \/ ( ( et \/ ta ) \/ th ) ) $=
      ( wo wn rblem1 rb-ax2 rb-ax1 anmp rbsyl rb-ax4 rblem2 rb-ax3 ) ABJZCJKZCB
      JZAJZFEJZDJUBUDADCFBEIHLGLUABCJZAJZUCUFKZAUBJZUCAUBMUGAUEJZUHUEKUBJUIKUHJ
      BCMAUEUBNOUEAMPPUAUFUFJUFUFQTUFCUFTKUIUFAUEMBCARPCKZUEJUJUFJCBSUEAUJROLPP
      P $.
  $}

  $( Used to rederive the Lukasiewicz axioms from Russell-Bernays'.
     (Contributed by Anthony Hart, 19-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  rblem5 $p |- ( -. ( -. -. ph \/ ps ) \/ ( -. -. ps \/ ph ) ) $=
    ( wn wo rb-ax2 rb-ax4 rb-ax3 rbsyl anmp rblem1 ) ACZCZBDCABCZCZDNADANELABNK
    ADLCZADKAADAAFAAGHZKOAAOLDLODOLLDLLFLLGHOLEIPJINMDMNDNMMDMMFMMGHNMEIJH $.

  ${
    rblem6.1 $e |- -. ( -. ( -. ph \/ ps ) \/ -. ( -. ps \/ ph ) ) $.
    $( Used to rederive the Lukasiewicz axioms from Russell-Bernays'.
       (Contributed by Anthony Hart, 19-Aug-2011.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    rblem6 $p |- ( -. ph \/ ps ) $=
      ( wn wo rb-ax4 rb-ax3 rbsyl rb-ax2 anmp rblem3 rblem5 ) ADBEZDZBDAEDZEZDZ
      MCNDZPEZQDMEPREZSNREZTRNEUARNNENNFNNGHRNIJRONKJPRIJMPLJJ $.
  $}

  ${
    rblem7.1 $e |- -. ( -. ( -. ph \/ ps ) \/ -. ( -. ps \/ ph ) ) $.
    $( Used to rederive the Lukasiewicz axioms from Russell-Bernays'.
       (Contributed by Anthony Hart, 19-Aug-2011.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    rblem7 $p |- ( -. ps \/ ph ) $=
      ( wn wo rb-ax3 rblem5 anmp ) ADBEDZBDAEZDZEZDZJCKDLEMDJEKIFJLGHH $.
  $}

  ${
    re1axmp.min $e |- ph $.
    re1axmp.maj $e |- ( ph -> ps ) $.
    $( ~ ax-mp derived from Russell-Bernays'.  (Contributed by Anthony Hart,
       19-Aug-2011.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    re1axmp $p |- ps $=
      ( wi wn wo rb-imdf rblem6 anmp ) ABCABEZAFBGZDKLABHIJJ $.
  $}

  $( ~ luk-1 derived from Russell-Bernays'.  (Contributed by Anthony Hart,
     19-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  re2luk1 $p |- ( ( ph -> ps ) -> ( ( ps -> ch ) -> ( ph -> ch ) ) ) $=
    ( wi wn rb-imdf rblem7 rblem6 rb-ax2 rb-ax4 rb-ax3 rbsyl anmp rblem1 rb-ax1
    wo rblem4 ) ABDZEZBCDZACDZDZPZRUBDZSTEZUAPZUBUBUFTUAFGSAEZBPZUFUHEZBECPZEZU
    GCPZPZUFUKUEULUAUEUJPZUKEZUEPZTUJBCFHUNEUEUOPUPUEUOIUEUEUJUOUEEUEUEPUEUEJUE
    UEKLUOUKPUKUOPUOUKUKPUKUKJUKUKKLZUOUKIMNLMUAULACFGNUKUIULPZPZUIUMPZUGBCOUSE
    ZUMUIPZUTUMUIIVAURUKPVBUIULUKUIULUKUIEUIUIPUIUIJUIUIKLULEULULPULULJULULKLUQ
    QUKURILLMLRUHABFHLLUDUCRUBFGM $.

  $( ~ luk-2 derived from Russell-Bernays'.  (Contributed by Anthony Hart,
     19-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  re2luk2 $p |- ( ( -. ph -> ph ) -> ph ) $=
    ( wn wi wo rb-ax4 rb-ax3 rbsyl rb-ax2 anmp rblem1 rb-imdf rblem6 rblem7 ) A
    BZACZBZADZOACZPNBZADZATBAADZAAEZSAAANADSBZADNUAAUBAAFGZNUCAAUCSDSUCDUCSSDSS
    ESSFGUCSHIUDJIUDJGOTNAKLGRQOAKMI $.

  $( ~ luk-3 derived from Russell-Bernays'.

     This theorem, along with ~ re1axmp , ~ re2luk1 , and ~ re2luk2 shows that
     ~ rb-ax1 , ~ rb-ax2 , ~ rb-ax3 , and ~ rb-ax4 , along with ~ anmp , can be
     used as a complete axiomatization of propositional calculus.  (Contributed
     by Anthony Hart, 19-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  re2luk3 $p |- ( ph -> ( -. ph -> ps ) ) $=
    ( wn wi wo rb-imdf rblem7 rb-ax4 rb-ax3 rbsyl rb-ax2 anmp rblem2 ) ACZNBDZE
    ZAODZNNCZBEZOOSNBFGNREZNSERNETRNNENNHNNIJRNKLRBNMLJQPAOFGL $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Stoic logic non-modal portion (Chrysippus of Soli)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The Greek Stoics developed a system of logic called Stoic logic.  The Stoic
  Chrysippus, in particular, was often considered one of the greatest logicians
  of antiquity.  Stoic logic is different from Aristotle's system, since it
  focuses on propositional logic, though later thinkers did combine the systems
  of the Stoics with Aristotle.  Jan Lukasiewicz reports, "For anybody familiar
  with mathematical logic it is self-evident that the Stoic dialectic is the
  ancient form of modern propositional logic"
  ( _On the history of the logic of proposition_ by Jan Lukasiewicz (1934),
  translated in: _Selected Works_ - Edited by Ludwik Borkowski -
  Amsterdam, North-Holland, 1970 pp. 197-217,
  referenced in "History of Logic"
  ~ https://www.historyoflogic.com/logic-stoics.htm ).

  In this section we show that the propositional logic system we use (which is
  non-modal) is at least as strong as the non-modal portion of Stoic logic.  We
  show this by showing that our system assumes or proves all of key features of
  Stoic logic's non-modal portion (specifically the Stoic logic
  indemonstrables, themata, and principles).

  "In terms of contemporary logic, Stoic syllogistic is best understood as a
  substructural backwards-working Gentzen-style natural-deduction system that
  consists of five kinds of axiomatic arguments (the indemonstrables) and four
  inference rules, called themata.  An argument is a syllogism precisely if it
  either is an indemonstrable or can be reduced to one by means of the themata
  (Diogenes Laertius (D. L. 7.78))." (_Ancient Logic_, Stanford Encyclopedia of
  Philosophy ~ https://plato.stanford.edu/entries/logic-ancient/ ).  There are
  also a few "principles" that support logical reasoning, discussed below.  For
  more information, see "Stoic Logic" by Susanne Bobzien, especially
  [Bobzien] p. 110-120, especially for a discussion about the themata
  (including how they were reconstructed and how they were used).  There are
  differences in the systems we can only partly represent, for example, in
  Stoic logic "truth and falsehood are temporal properties of assertibles...
  They can belong to an assertible at one time but not at another"
  ([Bobzien] p. 87).  Stoic logic also included various kinds of modalities,
  which we do not include here since our basic propositional logic does not
  include modalities.

  A key part of the Stoic logic system is a set of five "indemonstrables"
  assigned to Chrysippus of Soli by Diogenes Laertius, though in general it is
  difficult to assign specific ideas to specific thinkers.  The indemonstrables
  are described in, for example, [Lopez-Astorga] p. 11 , [Sanford] p. 39, and
  [Hitchcock] p. 5.  These indemonstrables are modus ponendo ponens (modus
  ponens) ~ ax-mp , modus tollendo tollens (modus tollens) ~ mto , modus
  ponendo tollens I ~ mptnan , modus ponendo tollens II ~ mptxor , and modus
  tollendo ponens (exclusive-or version) ~ mtpxor .  The first is an axiom, the
  second is already proved; in this section we prove the other three.  Note
  that modus tollendo ponens ~ mtpxor originally used exclusive-or, but over
  time the name modus tollendo ponens has increasingly referred to an
  inclusive-or variation, which is proved in ~ mtpor .

  After we prove the indemonstratables, we then prove all the Stoic logic
  themata (the inference rules of Stoic logic; "thema" is singular).  This is
  straightforward for thema 1 ( ~ stoic1a and ~ stoic1b ) and thema 3
  ( ~ stoic3 ).  However, while Stoic logic was once a leading logic system,
  most direct information about Stoic logic has since been lost, including the
  exact texts of thema 2 and thema 4.  There are, however, enough references
  and specific examples to support reconstruction.  Themata 2 and 4 have been
  reconstructed; see statements T2 and T4 in [Bobzien] p. 110-120 and our
  proofs of them in ~ stoic2a , ~ stoic2b , ~ stoic4a , and ~ stoic4b .

  Stoic logic also had a set of principles involving assertibles.  Statements
  in [Bobzien] p. 99 express the known principles.  The following paragraphs
  discuss these principles and our proofs of them.

  "A principle of double negation, expressed by saying that a double-negation
  (Not: not: p) is equivalent to the assertible that is doubly negated (p) (DL
  VII 69)."  In other words, ` ( ph <-> -. -. ph ) ` as proven in ~ notnotb .

  "The principle that all conditionals that are formed by using the same
  assertible twice (like 'If p, p') are true (Cic. Acad. II 98)."  In other
  words, ` ( ph -> ph ) ` as proven in ~ id .

  "The principle that all disjunctions formed by a contradiction (like 'Either
  p or not: p') are true (S. E. M VIII 282)".  Remember that in Stoic logic,
  'or' means 'exclusive or'.  In other words, ` ( ph \/_ -. ph ) ` as proven in
  ~ xorexmid .

  [Bobzien] p. 99 also suggests that Stoic logic may have dealt with
  commutativity (see ~ xorcom and ~ ancom ) and the principle of contraposition
  ( ~ con4 ) (pointing to DL VII 194).

  In short, the non-modal propositional logic system we use is at least as
  strong as the non-modal portion of Stoic logic.

  For more about Aristotle's system, see ~ barbara and related theorems.

$)

  ${
    $( Minor premise for modus ponendo tollens 1. $)
    mptnan.min $e |- ph $.
    $( Major premise for modus ponendo tollens 1. $)
    mptnan.maj $e |- -. ( ph /\ ps ) $.
    $( Modus ponendo tollens 1, one of the "indemonstrables" in Stoic logic.
       See rule 1 on [Lopez-Astorga] p. 12 , rule 1 on [Sanford] p. 40, and
       rule A3 in [Hitchcock] p. 5.  Sanford describes this rule second (after
       ~ mptxor ) as a "safer, and these days much more common" version of
       modus ponendo tollens because it avoids confusion between inclusive-or
       and exclusive-or.  (Contributed by David A. Wheeler, 3-Jul-2016.) $)
    mptnan $p |- -. ps $=
      ( wn imnani ax-mp ) ABECABDFG $.
  $}

  ${
    $( Minor premise for modus ponendo tollens 2. $)
    mptxor.min $e |- ph $.
    $( Major premise for modus ponendo tollens 2. $)
    mptxor.maj $e |- ( ph \/_ ps ) $.
    $( Modus ponendo tollens 2, one of the "indemonstrables" in Stoic logic.
       Note that this uses exclusive-or ` \/_ ` .  See rule 2 on
       [Lopez-Astorga] p. 12 , rule 4 on [Sanford] p. 39 and rule A4 in
       [Hitchcock] p. 5 .  (Contributed by David A. Wheeler, 3-Jul-2016.)
       (Proof shortened by Wolf Lammen, 12-Nov-2017.)  (Proof shortened by BJ,
       19-Apr-2019.) $)
    mptxor $p |- -. ps $=
      ( wxo wa wn xornan ax-mp mptnan ) ABCABEABFGDABHIJ $.
  $}

  ${
    $( Minor premise for modus tollendo ponens (inclusive-or version). $)
    mtpor.min $e |- -. ph $.
    $( Major premise for modus tollendo ponens (inclusive-or version). $)
    mtpor.max $e |- ( ph \/ ps ) $.
    $( Modus tollendo ponens (inclusive-or version), aka disjunctive syllogism.
       This is similar to ~ mtpxor , one of the five original "indemonstrables"
       in Stoic logic.  However, in Stoic logic this rule used exclusive-or,
       while the name modus tollendo ponens often refers to a variant of the
       rule that uses inclusive-or instead.  The rule says, "if ` ph ` is not
       true, and ` ph ` or ` ps ` (or both) are true, then ` ps ` must be
       true."  An alternative phrasing is, "Once you eliminate the impossible,
       whatever remains, no matter how improbable, must be the truth." --
       Sherlock Holmes (Sir Arthur Conan Doyle, 1890:  The Sign of the Four,
       ch. 6).  (Contributed by David A. Wheeler, 3-Jul-2016.)  (Proof
       shortened by Wolf Lammen, 11-Nov-2017.) $)
    mtpor $p |- ps $=
      ( wn ori ax-mp ) AEBCABDFG $.
  $}

  ${
    $( Minor premise for modus tollendo ponens (original exclusive-or version).
    $)
    mtpxor.min $e |- -. ph $.
    $( Major premise for modus tollendo ponens (original exclusive-or version).
    $)
    mtpxor.maj $e |- ( ph \/_ ps ) $.
    $( Modus tollendo ponens (original exclusive-or version), aka disjunctive
       syllogism, similar to ~ mtpor , one of the five "indemonstrables" in
       Stoic logic.  The rule says, "if ` ph ` is not true, and either ` ph `
       or ` ps ` (exclusively) are true, then ` ps ` must be true."  Today the
       name "modus tollendo ponens" often refers to a variant, the inclusive-or
       version as defined in ~ mtpor .  See rule 3 on [Lopez-Astorga] p. 12
       (note that the "or" is the same as ~ mptxor , that is, it is
       exclusive-or ~ df-xor ), rule 3 of [Sanford] p. 39 (where it is not as
       clearly stated which kind of "or" is used but it appears to be in the
       same sense as ~ mptxor ), and rule A5 in [Hitchcock] p. 5 (exclusive-or
       is expressly used).  (Contributed by David A. Wheeler, 4-Jul-2016.)
       (Proof shortened by Wolf Lammen, 11-Nov-2017.)  (Proof shortened by BJ,
       19-Apr-2019.) $)
    mtpxor $p |- ps $=
      ( wxo wo xoror ax-mp mtpor ) ABCABEABFDABGHI $.
  $}

  ${
    $( Premise for Stoic logic thema 1. $)
    stoic1.1 $e |- ( ( ph /\ ps ) -> th ) $.
    $( Stoic logic Thema 1 (part a).

       The first thema of the four Stoic logic themata, in its basic form, was:

       "When from two (assertibles) a third follows, then from either of them
       together with the contradictory of the conclusion the contradictory of
       the other follows."  (Apuleius Int. 209.9-14), see [Bobzien] p. 117 and
       ~ https://plato.stanford.edu/entries/logic-ancient/

       We will represent thema 1 as two very similar rules ~ stoic1a and
       ~ stoic1b to represent each side.  (Contributed by David A. Wheeler,
       16-Feb-2019.)  (Proof shortened by Wolf Lammen, 21-May-2020.) $)
    stoic1a $p |- ( ( ph /\ -. th ) -> -. ps ) $=
      ( ex con3dimp ) ABCABCDEF $.

    $( Stoic logic Thema 1 (part b).  The other part of thema 1 of Stoic logic;
       see ~ stoic1a .  (Contributed by David A. Wheeler, 16-Feb-2019.) $)
    stoic1b $p |- ( ( ps /\ -. th ) -> -. ph ) $=
      ( ancoms stoic1a ) BACABCDEF $.
  $}

  ${
    $( Premise 1 for Stoic logic Thema 2 version a. $)
    stoic2a.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Premise 2 for Stoic logic Thema 2 version a. $)
    stoic2a.2 $e |- ( ( ph /\ ch ) -> th ) $.
    $( Stoic logic Thema 2 version a.  Statement T2 of [Bobzien] p. 117 shows a
       reconstructed version of Stoic logic thema 2 as follows:  "When from two
       assertibles a third follows, and from the third and one (or both) of the
       two another follows, then this other follows from the first two."
       Bobzien uses constructs such as ` ph , ps |- ch ` ; in Metamath we will
       represent that construct as ` ph /\ ps -> ch ` .  This version a is
       without the phrase "or both"; see ~ stoic2b for the version with the
       phrase "or both".  We already have this rule as ~ syldan , so here we
       show the equivalence and discourage its use.
       (New usage is discouraged.)  (Contributed by David A. Wheeler,
       17-Feb-2019.) $)
    stoic2a $p |- ( ( ph /\ ps ) -> th ) $=
      ( syldan ) ABCDEFG $.
  $}

  ${
    $( Premise 1 for Stoic logic Thema 2 version b. $)
    stoic2b.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Premise 2 for Stoic logic Thema 2 version b. $)
    stoic2b.2 $e |- ( ( ph /\ ps /\ ch ) -> th ) $.
    $( Stoic logic Thema 2 version b.  See ~ stoic2a .  Version b is with the
       phrase "or both".  We already have this rule as ~ mpd3an3 , so here we
       prove the equivalence and discourage its use.
       (New usage is discouraged.)  (Contributed by David A. Wheeler,
       17-Feb-2019.) $)
    stoic2b $p |- ( ( ph /\ ps ) -> th ) $=
      ( mpd3an3 ) ABCDEFG $.
  $}

  ${
    $( Premise 1 for Stoic logic Thema 3. $)
    stoic3.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Premise 2 for Stoic logic Thema 3. $)
    stoic3.2 $e |- ( ( ch /\ th ) -> ta ) $.
    $( Stoic logic Thema 3.  Statement T3 of [Bobzien] p. 116-117 discusses
       Stoic logic Thema 3.  "When from two (assemblies) a third follows, and
       from the one that follows (i.e., the third) together with another,
       external assumption, another follows, then other follows from the first
       two and the externally co-assumed one.  (Simp.  Cael. 237.2-4)"
       (Contributed by David A. Wheeler, 17-Feb-2019.) $)
    stoic3 $p |- ( ( ph /\ ps /\ th ) -> ta ) $=
      ( wa sylan 3impa ) ABDEABHCDEFGIJ $.
  $}

  ${
    $( Premise 1 for Stoic logic Thema 4a. $)
    stoic4a.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Premise 2 for Stoic logic Thema 4a. $)
    stoic4a.2 $e |- ( ( ch /\ ph /\ th ) -> ta ) $.
    $( Stoic logic Thema 4 version a.  Statement T4 of [Bobzien] p. 117 shows a
       reconstructed version of Stoic logic Thema 4:  "When from two
       assertibles a third follows, and from the third and one (or both) of the
       two and one (or more) external assertible(s) another follows, then this
       other follows from the first two and the external(s)."

       We use ` th ` to represent the "external" assertibles.  This is version
       a, which is without the phrase "or both"; see ~ stoic4b for the version
       with the phrase "or both".  (Contributed by David A. Wheeler,
       17-Feb-2019.) $)
    stoic4a $p |- ( ( ph /\ ps /\ th ) -> ta ) $=
      ( w3a 3adant3 simp1 simp3 syl3anc ) ABDHCADEABCDFIABDJABDKGL $.
  $}

  ${
    $( Premise 1 for Stoic logic Thema 4b. $)
    stoic4b.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Premise 2 for Stoic logic Thema 4b. $)
    stoic4b.2 $e |- ( ( ( ch /\ ph /\ ps ) /\ th ) -> ta ) $.
    $( Stoic logic Thema 4 version b.  This is version b, which is with the
       phrase "or both".  See ~ stoic4a for more information.  (Contributed by
       David A. Wheeler, 17-Feb-2019.) $)
    stoic4b $p |- ( ( ph /\ ps /\ th ) -> ta ) $=
      ( w3a 3adant3 simp1 simp2 simp3 syl31anc ) ABDHCABDEABCDFIABDJABDKABDLGM
      $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Predicate calculus with equality:  Tarski's system S2 (1 rule, 6 schemes)
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  Here we extend the language of wffs with predicate calculus, which allows us
  to talk about individual objects in a domain of discussion (which for us will
  be the universe of all sets, so we call them "setvar variables") and make
  true/false statements about predicates, which are relationships between
  objects, such as whether or not two objects are equal.  In addition, we
  introduce universal quantification ("for all", e.g. ~ ax-4 ) in order to
  make statements about whether a wff holds for every object in the domain of
  discussion.  Later we introduce existential quantification ("there exists",
  ~ df-ex ) which is defined in terms of universal quantification.

  Our axioms are really axiom _schemes_, and our wff and setvar variables are
  metavariables ranging over expressions in an underlying "object language."
  This is explained here:  ~ mmset.html#axiomnote .

  Our axiom system starts with the predicate calculus axiom schemes system S2
  of Tarski defined in his 1965 paper, "A Simplified Formalization of Predicate
  Logic with Identity" [Tarski].  System S2 is defined in the last paragraph on
  p. 77, and repeated on p. 81 of [KalishMontague].  We do not include scheme
  B5 (our ~ sp ) of system S2 since [KalishMontague] shows it to be logically
  redundant (Lemma 9, p. 87, which we prove as theorem ~ spw below).

  Theorem ~ spw can be used to prove any _instance_ of ~ sp having mutually
  distinct setvar variables and no wff metavariables.  However, it seems that
  ~ sp in its general form cannot be derived from only Tarski's schemes.  We do
  not include B5 i.e. ~ sp as part of what we call "Tarski's system" because we
  want it to be the smallest set of axioms that is logically complete with
  no redundancies.  We later prove ~ sp as theorem ~ axc5 using the auxiliary
  axiom schemes that make our system metalogically complete.

  Our version of Tarski's system S2 consists of propositional calculus
  ( ~ ax-mp , ~ ax-1 , ~ ax-2 , ~ ax-3 ) plus ~ ax-gen , ~ ax-4 , ~ ax-5 ,
  ~ ax-6 , ~ ax-7 , ~ ax-8 , and ~ ax-9 .  The last three are equality axioms
  that represent three sub-schemes of Tarski's scheme B8.  Due to its
  side-condition ("where ` ph ` is an atomic formula and ` ps ` is obtained by
  replacing an occurrence of the variable ` x ` by the variable ` y ` "), we
  cannot represent his B8 directly without greatly complicating our scheme
  language, but the simpler schemes ~ ax-7 , ~ ax-8 , and ~ ax-9 are sufficient
  for set theory and much easier to work with.

  Tarski's system is exactly equivalent to the traditional axiom system in most
  logic textbooks but has the advantage of being easy to manipulate with a
  computer program, and its simpler metalogic (with no built-in notions of
  "free variable" and "proper substitution") is arguably easier for a
  non-logician human to follow step by step in a proof (where "follow" means
  being able to identify the substitutions that were made, without necessarily
  a higher-level understanding).  In particular, it is logically complete in
  that it can derive all possible object-language theorems of predicate
  calculus with equality, i.e. the same theorems as the traditional system can
  derive.

  However, for efficiency (and indeed a key feature that makes Metamath
  successful), our system is designed to derive reusable theorem schemes
  (rather than object-language theorems) from other schemes.  From this
  "metalogical" point of view, Tarski's S2 is not complete.  For example, we
  cannot derive scheme ~ sp , even though (using ~ spw ) we can derive all
  instances of it that don't involve wff metavariables or bundled setvar
  variables.  (Two setvar variables are "bundled" if they can be substituted
  with the same setvar variable i.e. do not have a $d distinct variable
  proviso.)  Later we will introduce auxiliary axiom schemes ~ ax-10 ,
  ~ ax-11 , ~ ax-12 , and ~ ax-13 that are metatheorems of Tarski's system
  (i.e. are logically redundant) but which give our system the property of
  "scheme completeness," allowing us to prove directly (instead of, say,
  by induction on formula length) all possible schemes that can be expressed in
  our language.

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Universal quantifier (continued); define "exists" and "not free"
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The universal quantifier was introduced above in ~ wal for use by ~ df-tru .
  See the comments in that section.  In this section, we continue with the
  first "real" use of it.

$)

  $( Declare some names for individual variables. $)
  $v x $.
  $v y $.
  $v z $.
  $v w $.
  $v v $.
  $v u $.
  $v t $.
  $( Let ` x ` be an individual variable. $)
  vx $f setvar x $.
  $( Let ` y ` be an individual variable. $)
  vy $f setvar y $.
  $( Let ` z ` be an individual variable. $)
  vz $f setvar z $.
  $( Let ` w ` be an individual variable. $)
  vw $f setvar w $.
  $( Let ` v ` be an individual variable. $)
  vv $f setvar v $.
  $( Let ` u ` be an individual variable. $)
  vu $f setvar u $.
  $( Let ` t ` be an individual variable. $)
  vt $f setvar t $.

  $( Register 'A.' as a primitive expression (lacking a definition). $)
  $( $j primitive 'wal'; $)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Existential quantifier
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Declare the existential quantifier symbol. $)
  $c E. $.  $( Backwards E (read:  "there exists") $)

  $( Extend wff definition to include the existential quantifier ("there
     exists"). $)
  wex $a wff E. x ph $.

  $( Define existential quantification. ` E. x ph ` means "there exists at
     least one set ` x ` such that ` ph ` is true."  Definition of [Margaris]
     p. 49.  (Contributed by NM, 10-Jan-1993.) $)
  df-ex $a |- ( E. x ph <-> -. A. x -. ph ) $.

  $( Theorem 19.7 of [Margaris] p. 89.  (Contributed by NM, 12-Mar-1993.) $)
  alnex $p |- ( A. x -. ph <-> -. E. x ph ) $=
    ( wex wn wal df-ex con2bii ) ABCADBEABFG $.

  $( A utility theorem.  An interesting case is when the same formula is
     substituted for both ` ph ` and ` ps ` , since then both implications
     express a type of non-freeness.  See also ~ alimex .  (Contributed by BJ,
     12-May-2019.) $)
  eximal $p |- ( ( E. x ph -> ps ) <-> ( -. ps -> A. x -. ph ) ) $=
    ( wex wi wn wal df-ex imbi1i con1b bitri ) ACDZBEAFCGZFZBEBFMELNBACHIMBJK
    $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Non-freeness predicate
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c F/ $.  $( The not-free symbol. $)

  $c nfOLD $.  $( The old not-free symbol.  Obsolete as of 16-Sep-2021. $)

  $( Extend wff definition to include the not-free predicate. $)
  wnf $a wff F/ x ph $.

  $( Extend wff definition to include the old not-free predicate.  Obsolete as
     of 16-Sep-2021.  (New usage is discouraged.) $)
  wnfOLD $a wff nfOLD x ph $.

  $( Define the not-free predicate for wffs.  This is read " ` x ` is not free
     in ` ph ` ".  Not-free means that the value of ` x ` cannot affect the
     value of ` ph ` , e.g., any occurrence of ` x ` in ` ph ` is effectively
     bound by a "for all" or something that expands to one (such as "there
     exists").  In particular, substitution for a variable not free in a wff
     does not affect its value ( ~ sbf ).  An example of where this is used is
     ~ stdpc5 .  See ~ nf5 for an alternate definition which involves nested
     quantifiers on the same variable.

     Not-free is a commonly used constraint, so it is useful to have a notation
     for it.  Surprisingly, there is no common formal notation for it, so here
     we devise one.  Our definition lets us work with the not-free notion
     within the logic itself rather than as a metalogical side condition.

     To be precise, our definition really means "effectively not free," because
     it is slightly less restrictive than the usual textbook definition for
     not-free (which only considers syntactic freedom).  For example, ` x ` is
     effectively not free in the formula ` x = x ` (see ~ nfequid ), even
     though ` x ` would be considered free in the usual textbook definition,
     because the value of ` x ` in the formula ` x = x ` cannot affect the
     truth of that formula (and thus substitutions will not change the result).

     This definition of not-free tightly ties to the quantifier ` A. x ` .  At
     this state (no axioms restricting quantifiers yet) 'non-free' appears
     quite arbitrary.  Its intended semantics expresses single-valuedness
     (constness) across a parameter, but is only evolved as much as later
     axioms assign properties to quantifiers.  It seems the definition here is
     best suited in situations, where axioms are only partially in effect.  In
     particular, this definition more easily carries over to other logic models
     with weaker axiomization.

     The reverse implication of the definiens (the right hand side of the
     biconditional) always holds, see ~ 19.2 .

     This predicate only applies to wffs.  See ~ df-nfc for a not-free
     predicate for class variables.  (Contributed by Mario Carneiro,
     24-Sep-2016.)  Converted to definition.  (Revised by BJ, 6-May-2019.) $)
  df-nf $a |- ( F/ x ph <-> ( E. x ph -> A. x ph ) ) $.

  $( Alternate definition of non-freeness.  (Contributed by BJ,
     16-Sep-2021.) $)
  nf2 $p |- ( F/ x ph <-> ( A. x ph \/ -. E. x ph ) ) $=
    ( wnf wex wal wi wn wo df-nf imor orcom 3bitri ) ABCABDZABEZFMGZNHNOHABIMNJ
    ONKL $.

  $( Alternate definition of non-freeness.  (Contributed by BJ,
     16-Sep-2021.) $)
  nf3 $p |- ( F/ x ph <-> ( A. x ph \/ A. x -. ph ) ) $=
    ( wnf wal wex wn wo nf2 alnex orbi2i bitr4i ) ABCABDZABEFZGLAFBDZGABHNMLABI
    JK $.

  $( Alternate definition of non-freeness.  This definition uses only primitive
     symbols.  (Contributed by BJ, 16-Sep-2021.) $)
  nf4 $p |- ( F/ x ph <-> ( -. A. x ph -> A. x -. ph ) ) $=
    ( wnf wal wn wo wi nf3 df-or bitri ) ABCABDZAEBDZFKELGABHKLIJ $.

  ${
    nfi.1 $e |- ( E. x ph -> A. x ph ) $.
    $( Deduce that ` x ` is not free in ` ph ` from the definition.
       (Contributed by Wolf Lammen, 15-Sep-2021.) $)
    nfi $p |- F/ x ph $=
      ( wnf wex wal wi df-nf mpbir ) ABDABEABFGCABHI $.
  $}

  ${
    nfri.1 $e |- F/ x ph $.
    $( Consequence of the definition of not-free.  (Contributed by Wolf Lammen,
       16-Sep-2021.) $)
    nfri $p |- ( E. x ph -> A. x ph ) $=
      ( wnf wex wal wi df-nf mpbi ) ABDABEABFGCABHI $.
  $}

  ${
    nfd.1 $e |- ( ph -> ( E. x ps -> A. x ps ) ) $.
    $( Deduce that ` x ` is not free in ` ps ` in a context.  (Contributed by
       Wolf Lammen, 16-Sep-2021.) $)
    nfd $p |- ( ph -> F/ x ps ) $=
      ( wex wal wi wnf df-nf sylibr ) ABCEBCFGBCHDBCIJ $.
  $}

  ${
    nfrd.1 $e |- ( ph -> F/ x ps ) $.
    $( Consequence of the definition of not-free in a context.  (Contributed by
       Wolf Lammen, 15-Oct-2021.) $)
    nfrd $p |- ( ph -> ( E. x ps -> A. x ps ) ) $=
      ( wnf wex wal wi df-nf sylib ) ABCEBCFBCGHDBCIJ $.
  $}

  $( Closed form of ~ nfth .  (Contributed by Wolf Lammen, 19-Aug-2018.)
     (Proof shortened by BJ, 16-Sep-2021.) $)
  nftht $p |- ( A. x ph -> F/ x ph ) $=
    ( wal wex wi wnf ax-1 df-nf sylibr ) ABCZABDZJEABFJKGABHI $.

  $( Closed form of ~ nfnth .  (Contributed by BJ, 16-Sep-2021.) $)
  nfntht $p |- ( -. E. x ph -> F/ x ph ) $=
    ( wex wn wal wo wnf olc nf2 sylibr ) ABCDZABEZKFABGKLHABIJ $.

  $( Closed form of ~ nfnth .  (Contributed by BJ, 16-Sep-2021.) $)
  nfntht2 $p |- ( A. x -. ph -> F/ x ph ) $=
    ( wn wal wo wnf olc nf3 sylibr ) ACBDZABDZJEABFJKGABHI $.

  $( Obsolete definition replaced by ~ nf5 as of 3-Oct-2021.  This definition
     is less suitable than ~ df-nf when ~ ax-10 and ~ ax-12 are not in effect.
     (Contributed by Mario Carneiro, 11-Aug-2016.)
     (New usage is discouraged.) $)
  df-nfOLD $a |- ( nfOLD x ph <-> A. x ( ph -> A. x ph ) ) $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Rule scheme ax-gen (Generalization)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    ax-gen.1 $e |- ph $.
    $( Rule of Generalization.  The postulated inference rule of predicate
       calculus.  See e.g.  Rule 2 of [Hamilton] p. 74.  This rule says that if
       something is unconditionally true, then it is true for all values of a
       variable.  For example, if we have proved ` x = x ` , we can conclude
       ` A. x x = x ` or even ` A. y x = x ` .  Theorem ~ allt shows the
       special case ` A. x T. ` .  Theorem ~ spi shows we can go the other way
       also: in other words we can add or remove universal quantifiers from the
       beginning of any theorem as required.  (Contributed by NM,
       3-Jan-1993.) $)
    ax-gen $a |- A. x ph $.
  $}

  ${
    gen2.1 $e |- ph $.
    $( Generalization applied twice.  (Contributed by NM, 30-Apr-1998.) $)
    gen2 $p |- A. x A. y ph $=
      ( wal ax-gen ) ACEBACDFF $.
  $}

  ${
    mpg.1 $e |- ( A. x ph -> ps ) $.
    mpg.2 $e |- ph $.
    $( Modus ponens combined with generalization.  (Contributed by NM,
       24-May-1994.) $)
    mpg $p |- ps $=
      ( wal ax-gen ax-mp ) ACFBACEGDH $.
  $}

  ${
    mpgbi.1 $e |- ( A. x ph <-> ps ) $.
    mpgbi.2 $e |- ph $.
    $( Modus ponens on biconditional combined with generalization.
       (Contributed by NM, 24-May-1994.)  (Proof shortened by Stefan Allan,
       28-Oct-2008.) $)
    mpgbi $p |- ps $=
      ( wal ax-gen mpbi ) ACFBACEGDH $.
  $}

  ${
    mpgbir.1 $e |- ( ph <-> A. x ps ) $.
    mpgbir.2 $e |- ps $.
    $( Modus ponens on biconditional combined with generalization.
       (Contributed by NM, 24-May-1994.)  (Proof shortened by Stefan Allan,
       28-Oct-2008.) $)
    mpgbir $p |- ph $=
      ( wal ax-gen mpbir ) ABCFBCEGDH $.
  $}

  ${
    nfth.1 $e |- ph $.
    $( No variable is (effectively) free in a theorem.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) ~ df-nf changed.  (Revised by Wolf Lammen,
       12-Sep-2021.) $)
    nfth $p |- F/ x ph $=
      ( wnf nftht mpg ) AABDBABECF $.
  $}

  ${
    nfnth.1 $e |- -. ph $.
    $( No variable is (effectively) free in a non-theorem.  (Contributed by
       Mario Carneiro, 6-Dec-2016.) ~ df-nf changed.  (Revised by Wolf Lammen,
       12-Sep-2021.) $)
    nfnth $p |- F/ x ph $=
      ( wn wnf nfntht2 mpg ) ADABEBABFCG $.
  $}

  ${
    hbth.1 $e |- ph $.
    $( No variable is (effectively) free in a theorem.

       This and later "hypothesis-building" lemmas, with labels starting
       "hb...", allow us to construct proofs of formulas of the form
       ` |- ( ph -> A. x ph ) ` from smaller formulas of this form.  These are
       useful for constructing hypotheses that state " ` x ` is (effectively)
       not free in ` ph ` ."  (Contributed by NM, 11-May-1993.) $)
    hbth $p |- ( ph -> A. x ph ) $=
      ( wal ax-gen a1i ) ABDAABCEF $.
  $}

  $( The true constant has no free variables.  (This can also be proven in one
     step with ~ nfv , but this proof does not use ~ ax-5 .)  (Contributed by
     Mario Carneiro, 6-Oct-2016.) $)
  nftru $p |- F/ x T. $=
    ( wtru tru nfth ) BACD $.

  ${
    nex.1 $e |- -. ph $.
    $( Generalization rule for negated wff.  (Contributed by NM,
       18-May-1994.) $)
    nex $p |- -. E. x ph $=
      ( wn wex alnex mpgbi ) ADABEDBABFCG $.
  $}

  $( The false constant has no free variables (see ~ nftru ).  (Contributed by
     BJ, 6-May-2019.) $)
  nffal $p |- F/ x F. $=
    ( wfal fal nfnth ) BACD $.

  ${
    sptruw.1 $e |- ph $.
    $( Version of ~ sp when ` ph ` is true.  Uses only Tarski's FOL axiom
       schemes.  (Contributed by NM, 23-Apr-2017.) $)
    sptruw $p |- ( A. x ph -> ph ) $=
      ( wal a1i ) AABDCE $.
  $}

  ${
    nfiOLD.1 $e |- ( ph -> A. x ph ) $.
    $( Obsolete proof of ~ nf5i as of 5-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    nfiOLD $p |- nfOLD x ph $=
      ( wnfOLD wal wi df-nfOLD mpgbir ) ABDAABEFBABGCH $.
  $}

  ${
    nfthOLD.1 $e |- ph $.
    $( Obsolete proof of ~ nfth as of 5-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    nfthOLD $p |- nfOLD x ph $=
      ( hbth nfiOLD ) ABABCDE $.
  $}

  ${
    nfnthOLD.1 $e |- -. ph $.
    $( Obsolete proof of ~ nfnth as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 6-Dec-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nfnthOLD $p |- nfOLD x ph $=
      ( wal pm2.21i nfiOLD ) ABAABDCEF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom scheme ax-4 (Quantified Implication)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom of Quantified Implication.  Axiom C4 of [Monk2] p. 105 and Theorem
     19.20 of [Margaris] p. 90.  It is restated as ~ alim for labeling
     consistency.  It should be used only by ~ alim .  (Contributed by NM,
     21-May-2008.)  Use ~ alim instead.  (New usage is discouraged.) $)
  ax-4 $a |- ( A. x ( ph -> ps ) -> ( A. x ph -> A. x ps ) ) $.

  $( Restatement of Axiom ~ ax-4 , for labeling consistency.  It should be the
     only theorem using ~ ax-4 .  (Contributed by NM, 10-Jan-1993.) $)
  alim $p |- ( A. x ( ph -> ps ) -> ( A. x ph -> A. x ps ) ) $=
    ( ax-4 ) ABCD $.

  ${
    alimi.1 $e |- ( ph -> ps ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 5-Jan-1993.) $)
    alimi $p |- ( A. x ph -> A. x ps ) $=
      ( wi wal alim mpg ) ABEACFBCFECABCGDH $.

    $( Inference doubly quantifying both antecedent and consequent.
       (Contributed by NM, 3-Feb-2005.) $)
    2alimi $p |- ( A. x A. y ph -> A. x A. y ps ) $=
      ( wal alimi ) ADFBDFCABDEGG $.
  $}

  $( Add an antecedent in a universally quantified formula.  (Contributed by
     BJ, 6-Oct-2018.) $)
  ala1 $p |- ( A. x ph -> A. x ( ps -> ph ) ) $=
    ( wi ax-1 alimi ) ABADCABEF $.

  $( Closed form of ~ al2imi .  Version of ~ alim for a nested implication.
     (Contributed by Alan Sare, 31-Dec-2011.) $)
  al2im $p |- ( A. x ( ph -> ( ps -> ch ) ) ->
                                     ( A. x ph -> ( A. x ps -> A. x ch ) ) ) $=
    ( wi wal alim syl6 ) ABCEZEDFADFIDFBDFCDFEAIDGBCDGH $.

  ${
    al2imi.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference quantifying antecedent, nested antecedent, and consequent.
       (Contributed by NM, 10-Jan-1993.) $)
    al2imi $p |- ( A. x ph -> ( A. x ps -> A. x ch ) ) $=
      ( wi wal al2im mpg ) ABCFFADGBDGCDGFFDABCDHEI $.
  $}

  ${
    alanimi.1 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Variant of ~ al2imi with conjunctive antecedent.  (Contributed by Andrew
       Salmon, 8-Jun-2011.) $)
    alanimi $p |- ( ( A. x ph /\ A. x ps ) -> A. x ch ) $=
      ( wal ex al2imi imp ) ADFBDFCDFABCDABCEGHI $.
  $}

  ${
    alimdh.1 $e |- ( ph -> A. x ph ) $.
    alimdh.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction form of Theorem 19.20 of [Margaris] p. 90, see ~ alim .
       (Contributed by NM, 4-Jan-2002.) $)
    alimdh $p |- ( ph -> ( A. x ps -> A. x ch ) ) $=
      ( wal wi al2imi syl ) AADGBDGCDGHEABCDFIJ $.
  $}

  $( Theorem 19.15 of [Margaris] p. 90.  (Contributed by NM, 24-Jan-1993.) $)
  albi $p |- ( A. x ( ph <-> ps ) -> ( A. x ph <-> A. x ps ) ) $=
    ( wb wal biimp al2imi biimpr impbid ) ABDZCEACEBCEJABCABFGJBACABHGI $.

  ${
    albii.1 $e |- ( ph <-> ps ) $.
    $( Inference adding universal quantifier to both sides of an equivalence.
       (Contributed by NM, 7-Aug-1994.) $)
    albii $p |- ( A. x ph <-> A. x ps ) $=
      ( wb wal albi mpg ) ABEACFBCFECABCGDH $.

    $( Theorem albii is the congruence law for universal quantification. $)
    $( $j congruence 'albii'; $)

    $( Inference adding two universal quantifiers to both sides of an
       equivalence.  (Contributed by NM, 9-Mar-1997.) $)
    2albii $p |- ( A. x A. y ph <-> A. x A. y ps ) $=
      ( wal albii ) ADFBDFCABDEGG $.
  $}

  $( Closed form of ~ sylg .  (Contributed by BJ, 2-May-2019.) $)
  sylgt $p |- ( A. x ( ps -> ch ) ->
                                ( ( ph -> A. x ps ) -> ( ph -> A. x ch ) ) ) $=
    ( wi wal alim imim2d ) BCEDFBDFCDFABCDGH $.

  ${
    sylg.1 $e |- ( ph -> A. x ps ) $.
    sylg.2 $e |- ( ps -> ch ) $.
    $( A syllogism combined with generalization.  Inference associated with
       ~ sylgt .  General form of ~ alrimih .  (Contributed by BJ,
       4-Oct-2019.) $)
    sylg $p |- ( ph -> A. x ch ) $=
      ( wal alimi syl ) ABDGCDGEBCDFHI $.
  $}

  ${
    alrimih.1 $e |- ( ph -> A. x ph ) $.
    alrimih.2 $e |- ( ph -> ps ) $.
    $( Inference form of Theorem 19.21 of [Margaris] p. 90.  See ~ 19.21 and
       ~ 19.21h .  Instance of ~ sylg .  (Contributed by NM, 9-Jan-1993.)
       (Revised by BJ, 31-Mar-2021.) $)
    alrimih $p |- ( ph -> A. x ps ) $=
      ( sylg ) AABCDEF $.
  $}

  ${
    hbxfrbi.1 $e |- ( ph <-> ps ) $.
    hbxfrbi.2 $e |- ( ps -> A. x ps ) $.
    $( A utility lemma to transfer a bound-variable hypothesis builder into a
       definition.  See ~ hbxfreq for equality version.  (Contributed by
       Jonathan Ben-Naim, 3-Jun-2011.) $)
    hbxfrbi $p |- ( ph -> A. x ph ) $=
      ( wal albii 3imtr4i ) BBCFAACFEDABCDGH $.
  $}

  $( Universal quantifier in terms of existential quantifier and negation.
     Theorem 19.6 of [Margaris] p. 89.  (Contributed by NM, 12-Mar-1993.) $)
  alex $p |- ( A. x ph <-> -. E. x -. ph ) $=
    ( wal wn wex notnotb albii alnex bitri ) ABCADZDZBCJBEDAKBAFGJBHI $.

  $( Theorem 19.14 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
  exnal $p |- ( E. x -. ph <-> -. A. x ph ) $=
    ( wal wn wex alex con2bii ) ABCADBEABFG $.

  $( Part of theorem *11.5 in [WhiteheadRussell] p. 164.  (Contributed by
     Andrew Salmon, 24-May-2011.) $)
  2nalexn $p |- ( -. A. x A. y ph <-> E. x E. y -. ph ) $=
    ( wn wex wal df-ex alex albii xchbinxr bicomi ) ADCEZBEZACFZBFZDMLDZBFOLBGN
    PBACHIJK $.

  $( Theorem *11.22 in [WhiteheadRussell] p. 160.  (Contributed by Andrew
     Salmon, 24-May-2011.) $)
  2exnaln $p |- ( E. x E. y ph <-> -. A. x A. y -. ph ) $=
    ( wex wn wal df-ex alnex albii xchbinxr ) ACDZBDKEZBFAECFZBFKBGMLBACHIJ $.

  $( Theorem *11.25 in [WhiteheadRussell] p. 160.  (Contributed by Andrew
     Salmon, 24-May-2011.) $)
  2nexaln $p |- ( -. E. x E. y ph <-> A. x A. y -. ph ) $=
    ( wn wal wex 2exnaln bicomi con1bii ) ADCEBEZACFBFZKJDABCGHI $.

  $( A utility theorem.  An interesting case is when the same formula is
     substituted for both ` ph ` and ` ps ` , since then both implications
     express a type of non-freeness.  See also ~ eximal .  (Contributed by BJ,
     12-May-2019.) $)
  alimex $p |- ( ( ph -> A. x ps ) <-> ( E. x -. ps -> -. ph ) ) $=
    ( wal wi wn wex alex imbi2i con2b bitri ) ABCDZEABFCGZFZEMAFELNABCHIAMJK $.

  ${
    aleximi.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A variant of ~ al2imi : instead of applying ` A. x ` quantifiers to the
       final implication, replace them with ` E. x ` .  A shorter proof is
       possible using ~ nfa1 , ~ sps and ~ eximd , but it depends on more
       axioms.  (Contributed by Wolf Lammen, 18-Aug-2019.) $)
    aleximi $p |- ( A. x ph -> ( E. x ps -> E. x ch ) ) $=
      ( wal wex wn con3d al2imi alnex 3imtr3g con4d ) ADFZCDGZBDGZNCHZDFBHZDFOH
      PHAQRDABCEIJCDKBDKLM $.
  $}

  ${
    alexbii.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Biconditional form of ~ aleximi .  (Contributed by BJ, 16-Nov-2020.) $)
    alexbii $p |- ( A. x ph -> ( E. x ps <-> E. x ch ) ) $=
      ( wal wex biimpd aleximi biimprd impbid ) ADFBDGCDGABCDABCEHIACBDABCEJIK
      $.
  $}

  $( Theorem 19.22 of [Margaris] p. 90.  (Contributed by NM, 10-Jan-1993.)
     (Proof shortened by Wolf Lammen, 4-Jul-2014.) $)
  exim $p |- ( A. x ( ph -> ps ) -> ( E. x ph -> E. x ps ) ) $=
    ( wi id aleximi ) ABDZABCGEF $.

  ${
    eximi.1 $e |- ( ph -> ps ) $.
    $( Inference adding existential quantifier to antecedent and consequent.
       (Contributed by NM, 10-Jan-1993.) $)
    eximi $p |- ( E. x ph -> E. x ps ) $=
      ( wi wex exim mpg ) ABEACFBCFECABCGDH $.

    $( Inference adding two existential quantifiers to antecedent and
       consequent.  (Contributed by NM, 3-Feb-2005.) $)
    2eximi $p |- ( E. x E. y ph -> E. x E. y ps ) $=
      ( wex eximi ) ADFBDFCABDEGG $.
  $}

  ${
    eximii.1 $e |- E. x ph $.
    eximii.2 $e |- ( ph -> ps ) $.
    $( Inference associated with ~ eximi .  (Contributed by BJ, 3-Feb-2018.) $)
    eximii $p |- E. x ps $=
      ( wex eximi ax-mp ) ACFBCFDABCEGH $.
  $}

  $( Add an antecedent in an existentially quantified formula.  (Contributed by
     BJ, 6-Oct-2018.) $)
  exa1 $p |- ( E. x ph -> E. x ( ps -> ph ) ) $=
    ( wi ax-1 eximi ) ABADCABEF $.

  $( Theorem 19.38 of [Margaris] p. 90.  The converse holds under non-freeness
     conditions, see ~ 19.38a and ~ 19.38b .  (Contributed by NM, 12-Mar-1993.)
     Allow a shortening of ~ 19.21t .  (Revised by Wolf Lammen, 2-Jan-2018.) $)
  19.38 $p |- ( ( E. x ph -> A. x ps ) -> A. x ( ph -> ps ) ) $=
    ( wex wal wi wn alnex pm2.21 alimi sylbir ala1 ja ) ACDZBCEABFZCEZNGAGZCEPA
    CHQOCABIJKBACLM $.

  $( Under a non-freeness hypothesis, the implication ~ 19.38 can be
     strengthened to an equivalence.  See also ~ 19.38b .  (Contributed by BJ,
     3-Nov-2021.) $)
  19.38a $p |-
             ( F/ x ph -> ( ( E. x ph -> A. x ps ) <-> A. x ( ph -> ps ) ) ) $=
    ( wnf wex wal wi 19.38 df-nf alim imim1 syl5 sylbi impbid2 ) ACDZACEZBCFZGZ
    ABGCFZABCHOPACFZGZSRGACISTQGUARABCJPTQKLMN $.

  $( Under a non-freeness hypothesis, the implication ~ 19.38 can be
     strengthened to an equivalence.  See also ~ 19.38a .  (Contributed by BJ,
     3-Nov-2021.) $)
  19.38b $p |-
             ( F/ x ps -> ( ( E. x ph -> A. x ps ) <-> A. x ( ph -> ps ) ) ) $=
    ( wnf wex wal wi 19.38 df-nf exim imim2 syl5 sylbi impbid2 ) BCDZACEZBCFZGZ
    ABGCFZABCHOBCEZQGZSRGBCISPTGUARABCJTQPKLMN $.

  $( Quantified implication in terms of quantified negation of conjunction.
     (Contributed by BJ, 16-Jul-2021.) $)
  imnang $p |- ( A. x ( ph -> -. ps ) <-> A. x -. ( ph /\ ps ) ) $=
    ( wn wi wa imnan albii ) ABDEABFDCABGH $.

  $( A transformation of quantifiers and logical connectives.  (Contributed by
     NM, 19-Aug-1993.) $)
  alinexa $p |- ( A. x ( ph -> -. ps ) <-> -. E. x ( ph /\ ps ) ) $=
    ( wn wi wal wa wex imnang alnex bitri ) ABDECFABGZDCFLCHDABCILCJK $.

  $( A relationship between two quantifiers and negation.  (Contributed by NM,
     18-Aug-1993.) $)
  alexn $p |- ( A. x E. y -. ph <-> -. E. x A. y ph ) $=
    ( wn wex wal exnal albii alnex bitri ) ADCEZBFACFZDZBFLBEDKMBACGHLBIJ $.

  $( Theorem *11.51 in [WhiteheadRussell] p. 164.  (Contributed by Andrew
     Salmon, 24-May-2011.)  (Proof shortened by Wolf Lammen, 25-Sep-2014.) $)
  2exnexn $p |- ( E. x A. y ph <-> -. A. x E. y -. ph ) $=
    ( wn wex wal alexn con2bii ) ADCEBFACFBEABCGH $.

  $( Theorem 19.18 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
  exbi $p |- ( A. x ( ph <-> ps ) -> ( E. x ph <-> E. x ps ) ) $=
    ( wb id alexbii ) ABDZABCGEF $.

  ${
    exbii.1 $e |- ( ph <-> ps ) $.
    $( Inference adding existential quantifier to both sides of an equivalence.
       (Contributed by NM, 24-May-1994.) $)
    exbii $p |- ( E. x ph <-> E. x ps ) $=
      ( wb wex exbi mpg ) ABEACFBCFECABCGDH $.
  $}

  ${
    2exbii.1 $e |- ( ph <-> ps ) $.
    $( Inference adding two existential quantifiers to both sides of an
       equivalence.  (Contributed by NM, 16-Mar-1995.) $)
    2exbii $p |- ( E. x E. y ph <-> E. x E. y ps ) $=
      ( wex exbii ) ADFBDFCABDEGG $.
  $}

  ${
    3exbii.1 $e |- ( ph <-> ps ) $.
    $( Inference adding three existential quantifiers to both sides of an
       equivalence.  (Contributed by NM, 2-May-1995.) $)
    3exbii $p |- ( E. x E. y E. z ph <-> E. x E. y E. z ps ) $=
      ( wex exbii 2exbii ) AEGBEGCDABEFHI $.
  $}

  $( Equivalence theorem for the non-freeness predicate.  Closed form of
     ~ nfbii .  (Contributed by BJ, 6-May-2019.) $)
  nfbiit $p |- ( A. x ( ph <-> ps ) -> ( F/ x ph <-> F/ x ps ) ) $=
    ( wb wal wex wi wnf exbi albi imbi12d df-nf 3bitr4g ) ABDCEZACFZACEZGBCFZBC
    EZGACHBCHNOQPRABCIABCJKACLBCLM $.

  ${
    nfbii.1 $e |- ( ph <-> ps ) $.
    $( Equality theorem for the non-freeness predicate.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) ~ df-nf changed.  (Revised by Wolf Lammen,
       12-Sep-2021.) $)
    nfbii $p |- ( F/ x ph <-> F/ x ps ) $=
      ( wb wnf nfbiit mpg ) ABEACFBCFECABCGDH $.

    ${
      nfxfr.2 $e |- F/ x ps $.
      $( A utility lemma to transfer a bound-variable hypothesis builder into a
         definition.  (Contributed by Mario Carneiro, 11-Aug-2016.) $)
      nfxfr $p |- F/ x ph $=
        ( wnf nfbii mpbir ) ACFBCFEABCDGH $.
    $}

    ${
      nfxfrd.2 $e |- ( ch -> F/ x ps ) $.
      $( A utility lemma to transfer a bound-variable hypothesis builder into a
         definition.  (Contributed by Mario Carneiro, 24-Sep-2016.) $)
      nfxfrd $p |- ( ch -> F/ x ph ) $=
        ( wnf nfbii sylibr ) CBDGADGFABDEHI $.
    $}
  $}

  $( A variable is non-free in a proposition if and only if it is so in its
     negation.  (Contributed by BJ, 6-May-2019.) $)
  nfnbi $p |- ( F/ x ph <-> F/ x -. ph ) $=
    ( wal wn wo wnf notnotb albii orbi1i orcom bitri nf3 3bitr4i ) ABCZADZBCZEZ
    PODZBCZEZABFOBFQSPETNSPARBAGHISPJKABLOBLM $.

  $( If a variable is non-free in a proposition, then it is non-free in its
     negation.  (Contributed by Mario Carneiro, 24-Sep-2016.)  (Proof shortened
     by Wolf Lammen, 28-Dec-2017.)  (Revised by BJ, 24-Jul-2019.) ~ df-nf
     changed.  (Revised by Wolf Lammen, 4-Oct-2021.) $)
  nfnt $p |- ( F/ x ph -> F/ x -. ph ) $=
    ( wnf wn nfnbi biimpi ) ABCADBCABEF $.

  $( Obsolete proof of ~ nfnt as of 3-Nov-2021.  (Contributed by Mario
     Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf Lammen, 28-Dec-2017.)
     (Revised by BJ, 24-Jul-2019.) ~ df-nf changed.  (Revised by Wolf Lammen,
     4-Oct-2021.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nfntOLDOLD $p |- ( F/ x ph -> F/ x -. ph ) $=
    ( wal wn wo wnf notnot alimi orim1i pm1.4 syl nf3 3imtr4i ) ABCZADZBCZEZPOD
    ZBCZEZABFOBFQSPETNSPARBAGHISPJKABLOBLM $.

  ${
    nfn.1 $e |- F/ x ph $.
    $( Inference associated with ~ nfnt .  (Contributed by Mario Carneiro,
       11-Aug-2016.) ~ df-nf changed.  (Revised by Wolf Lammen,
       18-Sep-2021.) $)
    nfn $p |- F/ x -. ph $=
      ( wnf wn nfnt ax-mp ) ABDAEBDCABFG $.
  $}

  ${
    nfnd.1 $e |- ( ph -> F/ x ps ) $.
    $( Deduction associated with ~ nfnt .  (Contributed by Mario Carneiro,
       24-Sep-2016.) $)
    nfnd $p |- ( ph -> F/ x -. ps ) $=
      ( wnf wn nfnt syl ) ABCEBFCEDBCGH $.
  $}

  $( A transformation of quantifiers and logical connectives.  (Contributed by
     NM, 25-Mar-1996.)  (Proof shortened by Wolf Lammen, 4-Sep-2014.) $)
  exanali $p |- ( E. x ( ph /\ -. ps ) <-> -. A. x ( ph -> ps ) ) $=
    ( wn wa wex wi wal annim exbii exnal bitri ) ABDEZCFABGZDZCFNCHDMOCABIJNCKL
    $.

  $( Commutation of conjunction inside an existential quantifier.  (Contributed
     by NM, 18-Aug-1993.) $)
  exancom $p |- ( E. x ( ph /\ ps ) <-> E. x ( ps /\ ph ) ) $=
    ( wa ancom exbii ) ABDBADCABEF $.

  ${
    exan.1 $e |- ( E. x ph /\ ps ) $.
    $( Place a conjunct in the scope of an existential quantifier.
       (Contributed by NM, 18-Aug-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.)  (Proof shortened by Wolf Lammen, 13-Jan-2018.)  Reduce
       axiom dependencies.  (Revised by BJ, 7-Jul-2021.)  (Proof shortened by
       Wolf Lammen, 8-Oct-2021.) $)
    exan $p |- E. x ( ph /\ ps ) $=
      ( wex wa simpli wi simpri pm3.21 ax-mp eximi ) ACEZABFZCEMBDGANCBANHMBDIB
      AJKLK $.

    $( Obsolete proof of ~ exan as of 8-Oct-2021.  (Contributed by NM,
       18-Aug-1993.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 13-Jan-2018.)  Reduce axiom dependencies.
       (Revised by BJ, 7-Jul-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    exanOLD $p |- E. x ( ph /\ ps ) $=
      ( wex wa simpli wi pm3.21 aleximi simpri mpg ax-mp ) ACEZABFZCEZNBDGBNPHC
      BAOCBAIJNBDKLM $.
  $}

  ${
    alrimdh.1 $e |- ( ph -> A. x ph ) $.
    alrimdh.2 $e |- ( ps -> A. x ps ) $.
    alrimdh.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction form of Theorem 19.21 of [Margaris] p. 90, see ~ 19.21 and
       ~ 19.21h .  (Contributed by NM, 10-Feb-1997.)  (Proof shortened by
       Andrew Salmon, 13-May-2011.) $)
    alrimdh $p |- ( ph -> ( ps -> A. x ch ) ) $=
      ( wal alimdh syl5 ) BBDHACDHFABCDEGIJ $.
  $}

  ${
    eximdh.1 $e |- ( ph -> A. x ph ) $.
    eximdh.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Contributed by NM,
       20-May-1996.) $)
    eximdh $p |- ( ph -> ( E. x ps -> E. x ch ) ) $=
      ( wal wex wi aleximi syl ) AADGBDHCDHIEABCDFJK $.
  $}

  ${
    nexdh.1 $e |- ( ph -> A. x ph ) $.
    nexdh.2 $e |- ( ph -> -. ps ) $.
    $( Deduction for generalization rule for negated wff.  (Contributed by NM,
       2-Jan-2002.) $)
    nexdh $p |- ( ph -> -. E. x ps ) $=
      ( wn wal wex alrimih alnex sylib ) ABFZCGBCHFALCDEIBCJK $.
  $}

  ${
    albidh.1 $e |- ( ph -> A. x ph ) $.
    albidh.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for universal quantifier (deduction rule).
       (Contributed by NM, 26-May-1993.) $)
    albidh $p |- ( ph -> ( A. x ps <-> A. x ch ) ) $=
      ( wb wal alrimih albi syl ) ABCGZDHBDHCDHGALDEFIBCDJK $.
  $}

  ${
    exbidh.1 $e |- ( ph -> A. x ph ) $.
    exbidh.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for existential quantifier (deduction rule).
       (Contributed by NM, 26-May-1993.) $)
    exbidh $p |- ( ph -> ( E. x ps <-> E. x ch ) ) $=
      ( wal wex wb alexbii syl ) AADGBDHCDHIEABCDFJK $.
  $}

  $( Simplification of an existentially quantified conjunction.  (Contributed
     by Rodolfo Medina, 25-Sep-2010.)  (Proof shortened by Andrew Salmon,
     29-Jun-2011.) $)
  exsimpl $p |- ( E. x ( ph /\ ps ) -> E. x ph ) $=
    ( wa simpl eximi ) ABDACABEF $.

  $( Simplification of an existentially quantified conjunction.  (Contributed
     by Rodolfo Medina, 25-Sep-2010.)  (Proof shortened by Andrew Salmon,
     29-Jun-2011.) $)
  exsimpr $p |- ( E. x ( ph /\ ps ) -> E. x ps ) $=
    ( wa simpr eximi ) ABDBCABEF $.

  $( Theorem 19.40 of [Margaris] p. 90.  (Contributed by NM, 26-May-1993.) $)
  19.40 $p |- ( E. x ( ph /\ ps ) -> ( E. x ph /\ E. x ps ) ) $=
    ( wa wex exsimpl exsimpr jca ) ABDCEACEBCEABCFABCGH $.

  $( Theorem 19.26 of [Margaris] p. 90.  Also Theorem *10.22 of
     [WhiteheadRussell] p. 147.  (Contributed by NM, 12-Mar-1993.)  (Proof
     shortened by Wolf Lammen, 4-Jul-2014.) $)
  19.26 $p |- ( A. x ( ph /\ ps ) <-> ( A. x ph /\ A. x ps ) ) $=
    ( wa wal simpl alimi simpr jca id alanimi impbii ) ABDZCEZACEZBCEZDNOPMACAB
    FGMBCABHGIABMCMJKL $.

  $( Theorem ~ 19.26 with two quantifiers.  (Contributed by NM, 3-Feb-2005.) $)
  19.26-2 $p |- ( A. x A. y ( ph /\ ps ) <->
                ( A. x A. y ph /\ A. x A. y ps ) ) $=
    ( wa wal 19.26 albii bitri ) ABEDFZCFADFZBDFZEZCFKCFLCFEJMCABDGHKLCGI $.

  $( Theorem ~ 19.26 with triple conjunction.  (Contributed by NM,
     13-Sep-2011.) $)
  19.26-3an $p |- ( A. x ( ph /\ ps /\ ch )
                   <-> ( A. x ph /\ A. x ps /\ A. x ch ) ) $=
    ( wa wal w3a 19.26 anbi1i bitri df-3an albii 3bitr4i ) ABEZCEZDFZADFZBDFZEZ
    CDFZEZABCGZDFQRTGPNDFZTEUANCDHUCSTABDHIJUBODABCKLQRTKM $.

  $( Theorem 19.29 of [Margaris] p. 90.  See also ~ 19.29r .  (Contributed by
     NM, 21-Jun-1993.)  (Proof shortened by Andrew Salmon, 13-May-2011.) $)
  19.29 $p |- ( ( A. x ph /\ E. x ps ) -> E. x ( ph /\ ps ) ) $=
    ( wal wex wa pm3.2 aleximi imp ) ACDBCEABFZCEABJCABGHI $.

  $( Variation of ~ 19.29 .  (Contributed by NM, 18-Aug-1993.)  (Proof
     shortened by Wolf Lammen, 12-Nov-2020.) $)
  19.29r $p |- ( ( E. x ph /\ A. x ps ) -> E. x ( ph /\ ps ) ) $=
    ( wal wex wa pm3.21 aleximi impcom ) BCDACEABFZCEBAJCBAGHI $.

  $( Variation of ~ 19.29r with double quantification.  (Contributed by NM,
     3-Feb-2005.) $)
  19.29r2 $p |- ( ( E. x E. y ph /\ A. x A. y ps ) ->
             E. x E. y ( ph /\ ps ) ) $=
    ( wex wal wa 19.29r eximi syl ) ADEZCEBDFZCFGKLGZCEABGDEZCEKLCHMNCABDHIJ $.

  $( Variation of ~ 19.29 with mixed quantification.  (Contributed by NM,
     11-Feb-2005.) $)
  19.29x $p |- ( ( E. x A. y ph /\ A. x E. y ps ) ->
             E. x E. y ( ph /\ ps ) ) $=
    ( wal wex wa 19.29r 19.29 eximi syl ) ADEZCFBDFZCEGLMGZCFABGDFZCFLMCHNOCABD
    IJK $.

  $( Theorem 19.35 of [Margaris] p. 90.  This theorem is useful for moving an
     implication (in the form of the right-hand side) into the scope of a
     single existential quantifier.  (Contributed by NM, 12-Mar-1993.)  (Proof
     shortened by Wolf Lammen, 27-Jun-2014.) $)
  19.35 $p |- ( E. x ( ph -> ps ) <-> ( A. x ph -> E. x ps ) ) $=
    ( wi wex wal pm2.27 aleximi com12 wn exnal pm2.21 eximi sylbir exa1 impbii
    ja ) ABDZCEZACFZBCEZDTSUAARBCABGHITUASTJAJZCESACKUBRCABLMNBACOQP $.

  ${
    19.35i.1 $e |- E. x ( ph -> ps ) $.
    $( Inference associated with ~ 19.35 .  (Contributed by NM,
       21-Jun-1993.) $)
    19.35i $p |- ( A. x ph -> E. x ps ) $=
      ( wi wex wal 19.35 mpbi ) ABECFACGBCFEDABCHI $.
  $}

  ${
    19.35ri.1 $e |- ( A. x ph -> E. x ps ) $.
    $( Inference associated with ~ 19.35 .  (Contributed by NM,
       12-Mar-1993.) $)
    19.35ri $p |- E. x ( ph -> ps ) $=
      ( wi wex wal 19.35 mpbir ) ABECFACGBCFEDABCHI $.
  $}

  $( Theorem 19.25 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
  19.25 $p |- ( A. y E. x ( ph -> ps ) ->
              ( E. y A. x ph -> E. y E. x ps ) ) $=
    ( wi wex wal 19.35 biimpi aleximi ) ABECFZACGZBCFZDKLMEABCHIJ $.

  $( Theorem 19.30 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.)
     (Proof shortened by Andrew Salmon, 25-May-2011.) $)
  19.30 $p |- ( A. x ( ph \/ ps ) -> ( A. x ph \/ E. x ps ) ) $=
    ( wo wal wex wn exnal pm2.53 aleximi syl5bir orrd ) ABDZCEZACEZBCFZOGAGZCFN
    PACHMQBCABIJKL $.

  $( Theorem 19.43 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.)
     (Proof shortened by Wolf Lammen, 27-Jun-2014.) $)
  19.43 $p |- ( E. x ( ph \/ ps ) <-> ( E. x ph \/ E. x ps ) ) $=
    ( wo wex wn wi wal df-or exbii 19.35 alnex imbi1i 3bitri bitr4i ) ABDZCEZAC
    EZFZBCEZGZRTDQAFZBGZCEUBCHZTGUAPUCCABIJUBBCKUDSTACLMNRTIO $.

  $( Obsolete proof of ~ 19.43 .  Do not delete as it is referenced on the
     ~ mmrecent.html page and in ~ conventions-label .  (Contributed by NM,
     5-Aug-1993.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  19.43OLD $p |- ( E. x ( ph \/ ps ) <-> ( E. x ph \/ E. x ps ) ) $=
    ( wo wn wal wex wa ioran albii 19.26 alnex anbi12i 3bitri notbii df-ex oran
    3bitr4i ) ABDZEZCFZEACGZEZBCGZEZHZESCGUBUDDUAUFUAAEZBEZHZCFUGCFZUHCFZHUFTUI
    CABIJUGUHCKUJUCUKUEACLBCLMNOSCPUBUDQR $.

  $( Theorem 19.33 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
  19.33 $p |- ( ( A. x ph \/ A. x ps ) -> A. x ( ph \/ ps ) ) $=
    ( wal wo orc alimi olc jaoi ) ACDABEZCDBCDAJCABFGBJCBAHGI $.

  $( The antecedent provides a condition implying the converse of ~ 19.33 .
     (Contributed by NM, 27-Mar-2004.)  (Proof shortened by Andrew Salmon,
     25-May-2011.)  (Proof shortened by Wolf Lammen, 5-Jul-2014.) $)
  19.33b $p |- ( -. ( E. x ph /\ E. x ps ) ->
               ( A. x ( ph \/ ps ) <-> ( A. x ph \/ A. x ps ) ) ) $=
    ( wex wa wn wo wal ianor alnex pm2.53 al2imi syl5bir olc syl6com orcomd ord
    wi 19.30 orc jaoi sylbi 19.33 impbid1 ) ACDZBCDZEFZABGZCHZACHZBCHZGZUGUEFZU
    FFZGUIULRZUEUFIUMUOUNUIUMUKULUMAFZCHUIUKACJUHUPBCABKLMUKUJNOUIUNUJULUIUFUJU
    IUJUFABCSPQUJUKTOUAUBABCUCUD $.

  $( Theorem *11.42 in [WhiteheadRussell] p. 163.  Theorem 19.40 of [Margaris]
     p. 90 with two quantifiers.  (Contributed by Andrew Salmon,
     24-May-2011.) $)
  19.40-2 $p |- ( E. x E. y ( ph /\ ps ) ->
        ( E. x E. y ph /\ E. x E. y ps ) ) $=
    ( wa wex 19.40 eximi syl ) ABEDFZCFADFZBDFZEZCFKCFLCFEJMCABDGHKLCGI $.

  $( The antecedent provides a condition implying the converse of ~ 19.40 .
     This is to ~ 19.40 what ~ 19.33b is to ~ 19.33 .  (Contributed by BJ,
     6-May-2019.)  (Proof shortened by Wolf Lammen, 13-Nov-2020.) $)
  19.40b $p |- ( ( A. x ph \/ A. x ps ) ->
                          ( ( E. x ph /\ E. x ps ) <-> E. x ( ph /\ ps ) ) ) $=
    ( wal wo wex wa wi pm3.21 aleximi pm3.2 jaoa orcoms 19.40 impbid1 ) ACDZBCD
    ZEACFZBCFZGZABGZCFZQPTUBHQRUBPSBAUACBAIJABUACABKJLMABCNO $.

  $( Split a biconditional and distribute quantifier.  (Contributed by NM,
     18-Aug-1993.) $)
  albiim $p |- ( A. x ( ph <-> ps ) <->
             ( A. x ( ph -> ps ) /\ A. x ( ps -> ph ) ) ) $=
    ( wb wal wi wa dfbi2 albii 19.26 bitri ) ABDZCEABFZBAFZGZCEMCENCEGLOCABHIMN
    CJK $.

  $( Split a biconditional and distribute two quantifiers.  (Contributed by NM,
     3-Feb-2005.) $)
  2albiim $p |- ( A. x A. y ( ph <-> ps ) <->
             ( A. x A. y ( ph -> ps ) /\ A. x A. y ( ps -> ph ) ) ) $=
    ( wb wal wi wa albiim albii 19.26 bitri ) ABEDFZCFABGDFZBAGDFZHZCFNCFOCFHMP
    CABDIJNOCKL $.

  $( Add/remove a conjunct in the scope of an existential quantifier.
     (Contributed by Raph Levien, 3-Jul-2006.) $)
  exintrbi $p |- ( A. x ( ph -> ps ) -> ( E. x ph <-> E. x ( ph /\ ps ) ) ) $=
    ( wi wa abai rbaibr alexbii ) ABDZAABEZCJAIABFGH $.

  $( Introduce a conjunct in the scope of an existential quantifier.
     (Contributed by NM, 11-Aug-1993.) $)
  exintr $p |- ( A. x ( ph -> ps ) -> ( E. x ph -> E. x ( ph /\ ps ) ) ) $=
    ( wi wal wex wa exintrbi biimpd ) ABDCEACFABGCFABCHI $.

  $( Universally quantified and uncurried (imported) form of syllogism.
     Theorem *10.3 in [WhiteheadRussell] p. 150.  (Contributed by Andrew
     Salmon, 8-Jun-2011.) $)
  alsyl $p |- ( ( A. x ( ph -> ps ) /\ A. x ( ps -> ch ) ) ->
        A. x ( ph -> ch ) ) $=
    ( wi pm3.33 alanimi ) ABEBCEACEDABCFG $.

  $( Closed form of ~ nfim and curried (exported) form of ~ nfimt2 .
     (Contributed by BJ, 20-Oct-2021.) $)
  nfimt $p |- ( F/ x ph -> ( F/ x ps -> F/ x ( ph -> ps ) ) ) $=
    ( wnf wi wex wal 19.35 df-nf biimpi imim1d imim2d syl9 19.38 syl7bi syl6ibr
    syl8 ) ACDZBCDZABEZCFZTCGZETCDUAACGZBCFZEZRSUBABCHRSUEACFZBCGZEZUBRUEUFUDES
    UHRUFUCUDRUFUCEACIJKSUDUGUFSUDUGEBCIJLMABCNQOTCIP $.

  $( Closed form of ~ nfim and uncurried (imported) form of ~ nfimt .
     (Contributed by BJ, 20-Oct-2021.) $)
  nfimt2 $p |- ( ( F/ x ph /\ F/ x ps ) -> F/ x ( ph -> ps ) ) $=
    ( wnf wi nfimt imp ) ACDBCDABECDABCFG $.

  ${
    nfimd.1 $e |- ( ph -> F/ x ps ) $.
    nfimd.2 $e |- ( ph -> F/ x ch ) $.
    $( If in a context ` x ` is not free in ` ps ` and ` ch ` , it is not free
       in ` ( ps -> ch ) ` .  Deduction form of ~ nfimt .  (Contributed by
       Mario Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf Lammen,
       30-Dec-2017.) ~ df-nf changed.  (Revised by Wolf Lammen,
       18-Sep-2021.) $)
    nfimd $p |- ( ph -> F/ x ( ps -> ch ) ) $=
      ( wnf wi nfimt2 syl2anc ) ABDGCDGBCHDGEFBCDIJ $.

    $( Obsolete proof of ~ nfimd as of 3-Nov-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf Lammen, 30-Dec-2017.)
       ~ df-nf changed.  (Revised by Wolf Lammen, 18-Sep-2021.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nfimdOLDOLD $p |- ( ph -> F/ x ( ps -> ch ) ) $=
      ( wi wex wal 19.35 wn wnf nf4 sylib pm2.21 alimi syl6 nfrd ala1 jad nfd
      syl5bi ) ABCGZDUCDHBDIZCDHZGAUCDIZBCDJAUDUEUFAUDKZBKZDIZUFABDLUGUIGEBDMNU
      HUCDBCOPQAUECDIUFACDFRCBDSQTUBUA $.
  $}

  ${
    nfim.1 $e |- F/ x ph $.
    nfim.2 $e |- F/ x ps $.
    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph -> ps ) ` .  Inference associated with ~ nfimt .  (Contributed by
       Mario Carneiro, 11-Aug-2016.)  (Proof shortened by Wolf Lammen,
       2-Jan-2018.) ~ df-nf changed.  (Revised by Wolf Lammen, 17-Sep-2021.) $)
    nfim $p |- F/ x ( ph -> ps ) $=
      ( wnf wi nfimt2 mp2an ) ACFBCFABGCFDEABCHI $.
  $}

  ${
    nfand.1 $e |- ( ph -> F/ x ps ) $.
    nfand.2 $e |- ( ph -> F/ x ch ) $.
    $( If in a context ` x ` is not free in ` ps ` and ` ch ` , it is not free
       in ` ( ps /\ ch ) ` .  (Contributed by Mario Carneiro, 7-Oct-2016.) $)
    nfand $p |- ( ph -> F/ x ( ps /\ ch ) ) $=
      ( wa wn wi df-an nfnd nfimd nfxfrd ) BCGBCHZIZHADBCJAODABNDEACDFKLKM $.

    nfand.3 $e |- ( ph -> F/ x th ) $.
    $( Deduction form of bound-variable hypothesis builder ~ nf3an .
       (Contributed by NM, 17-Feb-2013.)  (Revised by Mario Carneiro,
       16-Oct-2016.) $)
    nf3and $p |- ( ph -> F/ x ( ps /\ ch /\ th ) ) $=
      ( w3a wa df-3an nfand nfxfrd ) BCDIBCJZDJAEBCDKANDEABCEFGLHLM $.
  $}

  ${
    nfan.1 $e |- F/ x ph $.
    nfan.2 $e |- F/ x ps $.
    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph /\ ps ) ` .  (Contributed by Mario Carneiro, 11-Aug-2016.)
       (Proof shortened by Wolf Lammen, 13-Jan-2018.)  (Proof shortened by Wolf
       Lammen, 9-Oct-2021.) $)
    nfan $p |- F/ x ( ph /\ ps ) $=
      ( wa wnf wtru a1i nfand trud ) ABFCGHABCACGHDIBCGHEIJK $.

    $( Obsolete proof of ~ nfan as of 9-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (Proof shortened by Wolf Lammen, 13-Jan-2018.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    nfanOLD $p |- F/ x ( ph /\ ps ) $=
      ( wa wn wi df-an nfn nfim nfxfr ) ABFABGZHZGCABINCAMCDBCEJKJL $.

    $( If ` x ` is not free in ` ph ` and ` ps ` , then it is not free in
       ` ( ph -/\ ps ) ` .  (Contributed by Scott Fenton, 2-Jan-2018.) $)
    nfnan $p |- F/ x ( ph -/\ ps ) $=
      ( wnan wa wn df-nan nfan nfn nfxfr ) ABFABGZHCABIMCABCDEJKL $.

    nfan.3 $e |- F/ x ch $.
    $( If ` x ` is not free in ` ph ` , ` ps ` , and ` ch ` , it is not free in
       ` ( ph /\ ps /\ ch ) ` .  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nf3an $p |- F/ x ( ph /\ ps /\ ch ) $=
      ( w3a wa df-3an nfan nfxfr ) ABCHABIZCIDABCJMCDABDEFKGKL $.
  $}

  ${
    nfbid.1 $e |- ( ph -> F/ x ps ) $.
    nfbid.2 $e |- ( ph -> F/ x ch ) $.
    $( If in a context ` x ` is not free in ` ps ` and ` ch ` , it is not free
       in ` ( ps <-> ch ) ` .  (Contributed by Mario Carneiro, 24-Sep-2016.)
       (Proof shortened by Wolf Lammen, 29-Dec-2017.) $)
    nfbid $p |- ( ph -> F/ x ( ps <-> ch ) ) $=
      ( wb wi wa dfbi2 nfimd nfand nfxfrd ) BCGBCHZCBHZIADBCJANODABCDEFKACBDFEK
      LM $.
  $}

  ${
    nf.1 $e |- F/ x ph $.
    nf.2 $e |- F/ x ps $.
    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph <-> ps ) ` .  (Contributed by NM, 26-May-1993.)  (Revised by
       Mario Carneiro, 11-Aug-2016.)  (Proof shortened by Wolf Lammen,
       2-Jan-2018.) $)
    nfbi $p |- F/ x ( ph <-> ps ) $=
      ( wb wnf wtru a1i nfbid trud ) ABFCGHABCACGHDIBCGHEIJK $.

    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph \/ ps ) ` .  (Contributed by NM, 5-Aug-1993.)  (Revised by Mario
       Carneiro, 11-Aug-2016.) $)
    nfor $p |- F/ x ( ph \/ ps ) $=
      ( wo wn wi df-or nfn nfim nfxfr ) ABFAGZBHCABIMBCACDJEKL $.

    nf.3 $e |- F/ x ch $.
    $( If ` x ` is not free in ` ph ` , ` ps ` , and ` ch ` , it is not free in
       ` ( ph \/ ps \/ ch ) ` .  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nf3or $p |- F/ x ( ph \/ ps \/ ch ) $=
      ( w3o wo df-3or nfor nfxfr ) ABCHABIZCIDABCJMCDABDEFKGKL $.
  $}

  ${
    nfbiiOLD.1 $e |- ( ph <-> ps ) $.
    $( Obsolete proof of ~ nfbii as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nfbiiOLD $p |- ( nfOLD x ph <-> nfOLD x ps ) $=
      ( wal wi wnfOLD albii imbi12i df-nfOLD 3bitr4i ) AACEZFZCEBBCEZFZCEACGBCG
      MOCABLNDABCDHIHACJBCJK $.

    ${
      nfxfrOLD.2 $e |- nfOLD x ps $.
      $( Obsolete proof of ~ nfxfr as of 6-Oct-2021.  (Contributed by Mario
         Carneiro, 11-Aug-2016.)  (Proof modification is discouraged.)
         (New usage is discouraged.) $)
      nfxfrOLD $p |- nfOLD x ph $=
        ( wnfOLD nfbiiOLD mpbir ) ACFBCFEABCDGH $.
    $}

    ${
      nfxfrdOLD.2 $e |- ( ch -> nfOLD x ps ) $.
      $( Obsolete proof of ~ nfxfrd as of 6-Oct-2021.  (Contributed by Mario
         Carneiro, 24-Sep-2016.)  (Proof modification is discouraged.)
         (New usage is discouraged.) $)
      nfxfrdOLD $p |- ( ch -> nfOLD x ph ) $=
        ( wnfOLD nfbiiOLD sylibr ) CBDGADGFABDEHI $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom scheme ax-5 (Distinctness) - first use of $d
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x ph $.
    $( Axiom of Distinctness.  This axiom quantifies a variable over a formula
       in which it does not occur.  Axiom C5 in [Megill] p. 444 (p. 11 of the
       preprint).  Also appears as Axiom B6 (p. 75) of system S2 of [Tarski]
       p. 77 and Axiom C5-1 of [Monk2] p. 113.

       (See comments in ~ ax5ALT about the logical redundancy of ~ ax-5 in the
       presence of our obsolete axioms.)

       This axiom essentially says that if ` x ` does not occur in ` ph ` ,
       i.e. ` ph ` does not depend on ` x ` in any way, then we can add the
       quantifier ` A. x ` to ` ph ` with no further assumptions.  By ~ sp , we
       can also remove the quantifier (unconditionally).  (Contributed by NM,
       10-Jan-1993.) $)
    ax-5 $a |- ( ph -> A. x ph ) $.
  $}

  ${
    $d x ps $.
    $( ~ ax-5 with antecedent.  Useful in proofs of deduction versions of
       bound-variable hypothesis builders.  (Contributed by NM, 1-Mar-2013.) $)
    ax5d $p |- ( ph -> ( ps -> A. x ps ) ) $=
      ( wal wi ax-5 a1i ) BBCDEABCFG $.
  $}

  ${
    $d x ph $.
    $( A rephrasing of ~ ax-5 using the existential quantifier.  (Contributed
       by Wolf Lammen, 4-Dec-2017.) $)
    ax5e $p |- ( E. x ph -> ph ) $=
      ( wex wi wn wal ax-5 eximal mpbir ) ABCADAEZJBFDJBGAABHI $.
  $}

  ${
    $d x ph $.
    $( If a formula holds for some value of a variable not occurring in it,
       then it holds for all values of that variable.  (Contributed by BJ,
       28-Dec-2020.) $)
    ax5ea $p |- ( E. x ph -> A. x ph ) $=
      ( wex wal ax5e ax-5 syl ) ABCAABDABEABFG $.
  $}

  ${
    $d x ph $.
    $( If ` x ` is not present in ` ph ` , then ` x ` is not free in ` ph ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.)  Definition change.
       (Revised by Wolf Lammen, 12-Sep-2021.) $)
    nfv $p |- F/ x ph $=
      ( ax5ea nfi ) ABABCD $.
  $}

  ${
    $d x ps $.
    $( ~ nfv with antecedent.  Useful in proofs of deduction versions of
       bound-variable hypothesis builders such as ~ nfimd .  (Contributed by
       Mario Carneiro, 6-Oct-2016.) $)
    nfvd $p |- ( ph -> F/ x ps ) $=
      ( wnf nfv a1i ) BCDABCEF $.
  $}

  ${
    $d x ph $.
    alimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction form of Theorem 19.20 of [Margaris] p. 90, see ~ alim .
       (Contributed by NM, 3-Apr-1994.) $)
    alimdv $p |- ( ph -> ( A. x ps -> A. x ch ) ) $=
      ( ax-5 alimdh ) ABCDADFEG $.

    $( Deduction form of Theorem 19.22 of [Margaris] p. 90, see ~ exim .
       (Contributed by NM, 27-Apr-1994.) $)
    eximdv $p |- ( ph -> ( E. x ps -> E. x ch ) ) $=
      ( ax-5 eximdh ) ABCDADFEG $.
  $}

  ${
    $d x ph $.  $d y ph $.
    2alimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction form of Theorem 19.20 of [Margaris] p. 90 with two
       quantifiers, see ~ alim .  (Contributed by NM, 27-Apr-2004.) $)
    2alimdv $p |- ( ph -> ( A. x A. y ps -> A. x A. y ch ) ) $=
      ( wal alimdv ) ABEGCEGDABCEFHH $.

    $( Deduction form of Theorem 19.22 of [Margaris] p. 90 with two
       quantifiers, see ~ exim .  (Contributed by NM, 3-Aug-1995.) $)
    2eximdv $p |- ( ph -> ( E. x E. y ps -> E. x E. y ch ) ) $=
      ( wex eximdv ) ABEGCEGDABCEFHH $.
  $}

  ${
    $d x ph $.
    albidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for universal quantifier (deduction rule).
       (Contributed by NM, 26-May-1993.) $)
    albidv $p |- ( ph -> ( A. x ps <-> A. x ch ) ) $=
      ( ax-5 albidh ) ABCDADFEG $.

    $( Formula-building rule for existential quantifier (deduction rule).
       (Contributed by NM, 26-May-1993.) $)
    exbidv $p |- ( ph -> ( E. x ps <-> E. x ch ) ) $=
      ( ax-5 exbidh ) ABCDADFEG $.
  $}

  ${
    $d x ph $.  $d y ph $.
    2albidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for two universal quantifiers (deduction rule).
       (Contributed by NM, 4-Mar-1997.) $)
    2albidv $p |- ( ph -> ( A. x A. y ps <-> A. x A. y ch ) ) $=
      ( wal albidv ) ABEGCEGDABCEFHH $.

    $( Formula-building rule for two existential quantifiers (deduction rule).
       (Contributed by NM, 1-May-1995.) $)
    2exbidv $p |- ( ph -> ( E. x E. y ps <-> E. x E. y ch ) ) $=
      ( wex exbidv ) ABEGCEGDABCEFHH $.
  $}

  ${
    $d x ph $.  $d y ph $.  $d z ph $.
    3exbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for three existential quantifiers (deduction
       rule).  (Contributed by NM, 1-May-1995.) $)
    3exbidv $p |- ( ph -> ( E. x E. y E. z ps <-> E. x E. y E. z ch ) ) $=
      ( wex exbidv 2exbidv ) ABFHCFHDEABCFGIJ $.
  $}

  ${
    $d x ph $.  $d y ph $.  $d z ph $.  $d w ph $.
    4exbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for four existential quantifiers (deduction rule).
       (Contributed by NM, 3-Aug-1995.) $)
    4exbidv $p |- ( ph ->
                     ( E. x E. y E. z E. w ps <-> E. x E. y E. z E. w ch ) ) $=
      ( wex 2exbidv ) ABGIFICGIFIDEABCFGHJJ $.
  $}

  ${
    $d x ph $.
    alrimiv.1 $e |- ( ph -> ps ) $.
    $( Inference form of Theorem 19.21 of [Margaris] p. 90.  See ~ 19.21 and
       ~ 19.21v .  (Contributed by NM, 21-Jun-1993.) $)
    alrimiv $p |- ( ph -> A. x ps ) $=
      ( ax-5 alrimih ) ABCACEDF $.
  $}

  ${
    $d x ph $.  $d y ph $.
    alrimivv.1 $e |- ( ph -> ps ) $.
    $( Inference form of Theorem 19.21 of [Margaris] p. 90.  See ~ 19.21 and
       ~ 19.21v .  (Contributed by NM, 31-Jul-1995.) $)
    alrimivv $p |- ( ph -> A. x A. y ps ) $=
      ( wal alrimiv ) ABDFCABDEGG $.
  $}

  ${
    $d x ph $.  $d x ps $.
    alrimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction form of Theorem 19.21 of [Margaris] p. 90.  See ~ 19.21 and
       ~ 19.21v .  (Contributed by NM, 10-Feb-1997.) $)
    alrimdv $p |- ( ph -> ( ps -> A. x ch ) ) $=
      ( ax-5 alrimdh ) ABCDADFBDFEG $.
  $}

  ${
    $d x ps $.
    exlimiv.1 $e |- ( ph -> ps ) $.
    $( Inference form of Theorem 19.23 of [Margaris] p. 90, see ~ 19.23 .

       See ~ exlimi for a more general version requiring more axioms.

       This inference, along with its many variants such as ~ rexlimdv , is
       used to implement a metatheorem called "Rule C" that is given in many
       logic textbooks.  See, for example, Rule C in [Mendelson] p. 81, Rule C
       in [Margaris] p. 40, or Rule C in Hirst and Hirst's _A Primer for Logic
       and Proof_ p. 59 (PDF p. 65) at
       ~ http://www.appstate.edu/~~hirstjl/primer/hirst.pdf .  In informal
       proofs, the statement "Let ` C ` be an element such that..." almost
       always means an implicit application of Rule C.

       In essence, Rule C states that if we can prove that some element ` x `
       exists satisfying a wff, i.e. ` E. x ph ( x ) ` where ` ph ( x ) ` has
       ` x ` free, then we can use ` ph ( C ) ` as a hypothesis for the proof
       where ` C ` is a new (fictitious) constant not appearing previously in
       the proof, nor in any axioms used, nor in the theorem to be proved.  The
       purpose of Rule C is to get rid of the existential quantifier.

       We cannot do this in Metamath directly.  Instead, we use the original
       ` ph ` (containing ` x ` ) as an antecedent for the main part of the
       proof.  We eventually arrive at ` ( ph -> ps ) ` where ` ps ` is the
       theorem to be proved and does not contain ` x ` .  Then we apply
       ~ exlimiv to arrive at ` ( E. x ph -> ps ) ` .  Finally, we separately
       prove ` E. x ph ` and detach it with modus ponens ~ ax-mp to arrive at
       the final theorem ` ps ` .  (Contributed by NM, 21-Jun-1993.)  Remove
       dependencies on ~ ax-6 and ~ ax-8 .  (Revised by Wolf Lammen,
       4-Dec-2017.) $)
    exlimiv $p |- ( E. x ph -> ps ) $=
      ( wex eximi ax5e syl ) ACEBCEBABCDFBCGH $.

    exlimiiv.2 $e |- E. x ph $.
    $( Inference associated with ~ exlimiv .  (Contributed by BJ,
       19-Dec-2020.) $)
    exlimiiv $p |- ps $=
      ( wex exlimiv ax-mp ) ACFBEABCDGH $.
  $}

  ${
    $d x ps $.  $d y ps $.
    exlimivv.1 $e |- ( ph -> ps ) $.
    $( Inference form of Theorem 19.23 of [Margaris] p. 90, see ~ 19.23 .
       (Contributed by NM, 1-Aug-1995.) $)
    exlimivv $p |- ( E. x E. y ph -> ps ) $=
      ( wex exlimiv ) ADFBCABDEGG $.
  $}

  ${
    $d x ch $.  $d x ph $.
    exlimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction form of Theorem 19.23 of [Margaris] p. 90, see ~ 19.23 .
       (Contributed by NM, 27-Apr-1994.)  Remove dependencies on ~ ax-6 ,
       ~ ax-7 .  (Revised by Wolf Lammen, 4-Dec-2017.) $)
    exlimdv $p |- ( ph -> ( E. x ps -> ch ) ) $=
      ( wex eximdv ax5e syl6 ) ABDFCDFCABCDEGCDHI $.
  $}

  ${
    $d x ch $.  $d x ph $.  $d y ch $.  $d y ph $.
    exlimdvv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction form of Theorem 19.23 of [Margaris] p. 90, see ~ 19.23 .
       (Contributed by NM, 31-Jul-1995.) $)
    exlimdvv $p |- ( ph -> ( E. x E. y ps -> ch ) ) $=
      ( wex exlimdv ) ABEGCDABCEFHH $.
  $}

  ${
    $d x ch $.  $d x ph $.
    exlimddv.1 $e |- ( ph -> E. x ps ) $.
    exlimddv.2 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Existential elimination rule of natural deduction.  (Contributed by
       Mario Carneiro, 15-Jun-2016.) $)
    exlimddv $p |- ( ph -> ch ) $=
      ( wex ex exlimdv mpd ) ABDGCEABCDABCFHIJ $.
  $}

  ${
    $d x ph $.
    nexdv.1 $e |- ( ph -> -. ps ) $.
    $( Deduction for generalization rule for negated wff.  (Contributed by NM,
       5-Aug-1993.)  Reduce dependencies on axioms.  (Revised by Wolf Lammen,
       13-Jul-2020.)  (Proof shortened by Wolf Lammen, 10-Oct-2021.) $)
    nexdv $p |- ( ph -> -. E. x ps ) $=
      ( ax-5 nexdh ) ABCACEDF $.

    $( Obsolete proof of ~ nexdv as of 10-Oct-2021.  (Contributed by NM,
       5-Aug-1993.)  Reduce dependencies on axioms.  (Revised by Wolf Lammen,
       13-Jul-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nexdvOLD $p |- ( ph -> -. E. x ps ) $=
      ( wn wal wex alrimiv alnex sylib ) ABEZCFBCGEAKCDHBCIJ $.
  $}

  ${
    $d x ph $.  $d y ph $.
    $( Quantification of two variables over a formula in which they do not
       occur.  (Contributed by Alan Sare, 12-Apr-2011.) $)
    2ax5 $p |- ( ph -> A. x A. y ph ) $=
      ( id alrimivv ) AABCADE $.
  $}

  ${
    $d x ph $.
    $( Version of ~ stdpc5 with a dv condition, requiring fewer axioms.
       (Contributed by BJ, 7-Mar-2020.)  Revised to shorten ~ 19.21v .
       (Revised by Wolf Lammen, 12-Jul-2020.) $)
    stdpc5v $p |- ( A. x ( ph -> ps ) -> ( ph -> A. x ps ) ) $=
      ( wal wi ax-5 alim syl5 ) AACDABECDBCDACFABCGH $.

    $( Version of ~ 19.21 with a dv condition, requiring fewer axioms.

       _Notational convention_:  We sometimes suffix with "v" the label of a
       theorem using a distinct variable ("dv") condition instead of a
       non-freeness hypothesis such as ` F/ x ph ` .  Conversely, we sometimes
       suffix with "f" the label of a theorem introducing such a non-freeness
       hypothesis ("f" stands for "not free in", see ~ df-nf ) instead of a dv
       condition.  For instance, ~ 19.21v versus ~ 19.21 and ~ vtoclf versus
       ~ vtocl .  Note that "not free in" is less restrictive than "does not
       occur in."  Note that the version with a dv condition is easily proved
       from the version with the corresponding non-freeness hypothesis, by
       using ~ nfv .  However, the dv version can often be proved from fewer
       axioms.  (Contributed by NM, 21-Jun-1993.)  Reduce dependencies on
       axioms.  (Revised by Wolf Lammen, 2-Jan-2020.)  (Proof shortened by Wolf
       Lammen, 12-Jul-2020.) $)
    19.21v $p |- ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) $=
      ( wi wal stdpc5v wex ax5e imim1i 19.38 syl impbii ) ABDCEZABCEZDZABCFOACG
      ZNDMPANACHIABCJKL $.
  $}

  ${
    $d x ph $.
    $( Version of ~ 19.32 with a dv condition, requiring fewer axioms.
       (Contributed by BJ, 7-Mar-2020.) $)
    19.32v $p |- ( A. x ( ph \/ ps ) <-> ( ph \/ A. x ps ) ) $=
      ( wn wi wal wo 19.21v df-or albii 3bitr4i ) ADZBEZCFLBCFZEABGZCFANGLBCHOM
      CABIJANIK $.
  $}

  ${
    $d x ps $.
    $( Version of ~ 19.31 with a dv condition, requiring fewer axioms.
       (Contributed by BJ, 7-Mar-2020.) $)
    19.31v $p |- ( A. x ( ph \/ ps ) <-> ( A. x ph \/ ps ) ) $=
      ( wo wal 19.32v orcom albii 3bitr4i ) BADZCEBACEZDABDZCEKBDBACFLJCABGHKBG
      I $.
  $}

  ${
    $d x ph $.
    $( Obsolete proof of ~ nfv as of 5-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nfvOLD $p |- nfOLD x ph $=
      ( ax-5 nfiOLD ) ABABCD $.
  $}

  ${
    $d x ps $.
    $( Obsolete proof of ~ nfvd as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 6-Oct-2016.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    nfvdOLD $p |- ( ph -> nfOLD x ps ) $=
      ( wnfOLD nfvOLD a1i ) BCDABCEF $.
  $}

  ${
    $d x ph $.
    nfdvOLD.1 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Obsolete proof of ~ nf5dv as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nfdvOLD $p |- ( ph -> nfOLD x ps ) $=
      ( wal wi wnfOLD alrimiv df-nfOLD sylibr ) ABBCEFZCEBCGAKCDHBCIJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Equality predicate (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The equality predicate was introduced above in ~ wceq for use by ~ df-tru .
  See the comments in that section.  In this section, we continue with the
  first "real" use of it.

$)

  $( Extend wff definition to include atomic formulas using the equality
     predicate.

     (Instead of introducing ~ weq as an axiomatic statement, as was done in an
     older version of this database, we introduce it by "proving" a special
     case of set theory's more general ~ wceq .  This lets us avoid overloading
     the ` = ` connective, thus preventing ambiguity that would complicate
     certain Metamath parsers.  However, logically ~ weq is considered to be a
     primitive syntax, even though here it is artificially "derived" from
     ~ wceq .  Note:  To see the proof steps of this syntax proof, type "show
     proof weq /all" in the Metamath program.)  (Contributed by NM,
     24-Jan-2006.) $)
  weq $p wff x = y $=
    ( cv wceq ) ACBCD $.

  $( Lemma used in proofs of substitution properties.  (Contributed by NM,
     10-May-1993.) $)
  equs3 $p |- ( E. x ( x = y /\ ph ) <-> -. A. x ( x = y -> -. ph ) ) $=
    ( weq wn wi wal wa wex alinexa con2bii ) BCDZAEFBGLAHBILABJK $.

  ${
    speimfw.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Specialization, with additional weakening (compared to ~ 19.2 ) to allow
       bundling of ` x ` and ` y ` .  Uses only Tarski's FOL axiom schemes.
       (Contributed by NM, 23-Apr-2017.)  (Proof shortened by Wolf Lammen,
       5-Dec-2017.) $)
    speimfw $p |- ( -. A. x -. x = y -> ( A. x ph -> E. x ps ) ) $=
      ( weq wn wal wex df-ex biimpri com12 aleximi syl5com ) CDFZGCHGZOCIZACHBC
      IQPOCJKAOBCOABELMN $.

    $( Alternate proof of ~ speimfw (longer compressed proof, but fewer
       essential steps).  (Contributed by NM, 23-Apr-2017.)  (Proof shortened
       by Wolf Lammen, 5-Aug-2017.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    speimfwALT $p |- ( -. A. x -. x = y -> ( A. x ph -> E. x ps ) ) $=
      ( weq wex wi wn wal eximi df-ex 19.35 3imtr3i ) CDFZCGABHZCGOICJIACJBCGHO
      PCEKOCLABCMN $.
  $}

  ${
    spimfw.1 $e |- ( -. ps -> A. x -. ps ) $.
    spimfw.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Specialization, with additional weakening (compared to ~ sp ) to allow
       bundling of ` x ` and ` y ` .  Uses only Tarski's FOL axiom schemes.
       (Contributed by NM, 23-Apr-2017.)  (Proof shortened by Wolf Lammen,
       7-Aug-2017.) $)
    spimfw $p |- ( -. A. x -. x = y -> ( A. x ph -> ps ) ) $=
      ( weq wn wal wex speimfw df-ex con1i sylbi syl6 ) CDGHCIHACIBCJZBABCDFKPB
      HCIZHBBCLBQEMNO $.
  $}

  ${
    ax12i.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    ax12i.2 $e |- ( ps -> A. x ps ) $.
    $( Inference that has ~ ax-12 (without ` A. y ` ) as its conclusion.  Uses
       only Tarski's FOL axiom schemes.  The hypotheses may be eliminable
       without using ~ ax-12 in special cases.  Proof similar to Lemma 16 of
       [Tarski] p. 70.  (Contributed by NM, 20-May-2008.) $)
    ax12i $p |- ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) $=
      ( weq wi wal biimprcd alrimih syl6bi ) CDGZABMAHZCIEBNCFMABEJKL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Define proper substitution
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c [ $. $( Left bracket $)
  $c / $. $( Slash. $)
  $c ] $.  $( Right bracket $)

  $( Extend wff definition to include proper substitution (read "the wff that
     results when ` y ` is properly substituted for ` x ` in wff ` ph ` ").
     (Contributed by NM, 24-Jan-2006.) $)
  wsb $a wff [ y / x ] ph $.

  $( Indicate that the variable "y" is free in wsb even though it could
     potentially bind occurrences in "ph". $)
  $( $j free_var 'wsb' with 'y'; $)

  $( Define proper substitution.  Remark 9.1 in [Megill] p. 447 (p. 15 of the
     preprint).  For our notation, we use ` [ y / x ] ph ` to mean "the wff
     that results from the proper substitution of ` y ` for ` x ` in the wff
     ` ph ` ."  That is, ` y ` properly replaces ` x ` .  For example,
     ` [ x / y ] z e. y ` is the same as ` z e. x ` , as shown in ~ elsb4 .  We
     can also use ` [ y / x ] ph ` in place of the "free for" side condition
     used in traditional predicate calculus; see, for example, ~ stdpc4 .

     Our notation was introduced in Haskell B. Curry's _Foundations of
     Mathematical Logic_ (1977), p. 316 and is frequently used in textbooks of
     lambda calculus and combinatory logic.  This notation improves the common
     but ambiguous notation, " ` ph ( y ) ` is the wff that results when ` y `
     is properly substituted for ` x ` in ` ph ( x ) ` ."  For example, if the
     original ` ph ( x ) ` is ` x = y ` , then ` ph ( y ) ` is ` y = y ` , from
     which we obtain that ` ph ( x ) ` is ` x = x ` .  So what exactly does
     ` ph ( x ) ` mean?  Curry's notation solves this problem.

     In most books, proper substitution has a somewhat complicated recursive
     definition with multiple cases based on the occurrences of free and bound
     variables in the wff.  Instead, we use a single formula that is exactly
     equivalent and gives us a direct definition.  We later prove that our
     definition has the properties we expect of proper substitution (see
     theorems ~ sbequ , ~ sbcom2 and ~ sbid2v ).

     Note that our definition is valid even when ` x ` and ` y ` are replaced
     with the same variable, as ~ sbid shows.  We achieve this by having ` x `
     free in the first conjunct and bound in the second.  We can also achieve
     this by using a dummy variable, as the alternate definition ~ dfsb7 shows
     (which some logicians may prefer because it doesn't mix free and bound
     variables).  Another version that mixes free and bound variables is
     ~ dfsb3 .  When ` x ` and ` y ` are distinct, we can express proper
     substitution with the simpler expressions of ~ sb5 and ~ sb6 .

     There are no restrictions on any of the variables, including what
     variables may occur in wff ` ph ` .  (Contributed by NM, 10-May-1993.) $)
  df-sb $a |- ( [ y / x ] ph <->
              ( ( x = y -> ph ) /\ E. x ( x = y /\ ph ) ) ) $.

  $( An equality theorem for substitution.  (Contributed by NM, 16-May-1993.)
     (Proof shortened by Wolf Lammen, 25-Feb-2018.) $)
  sbequ2 $p |- ( x = y -> ( [ y / x ] ph -> ph ) ) $=
    ( wsb weq wi wa wex df-sb simplbi com12 ) ABCDZBCEZALMAFMAGBHABCIJK $.

  $( One direction of a simplified definition of substitution.  The converse
     requires either a dv condition ( ~ sb5 ) or a non-freeness hypothesis
     ( ~ sb5f ).  (Contributed by NM, 13-May-1993.) $)
  sb1 $p |- ( [ y / x ] ph -> E. x ( x = y /\ ph ) ) $=
    ( wsb weq wi wa wex df-sb simprbi ) ABCDBCEZAFKAGBHABCIJ $.

  $( A specialization theorem.  (Contributed by NM, 29-Jun-1993.)  (Proof
     shortened by Wolf Lammen, 3-May-2018.) $)
  spsbe $p |- ( [ y / x ] ph -> E. x ph ) $=
    ( wsb weq wa wex sb1 exsimpr syl ) ABCDBCEZAFBGABGABCHKABIJ $.

  $( Elimination of equality from antecedent after substitution.  (Contributed
     by NM, 5-Aug-1993.)  Reduce dependencies on axioms.  (Revised by Wolf
     Lammen, 28-Jul-2018.) $)
  sbequ8 $p |- ( [ y / x ] ph <-> [ y / x ] ( x = y -> ph ) ) $=
    ( weq wi wa wex wsb pm5.4 bicomi abai exbii anbi12i df-sb 3bitr4i ) BCDZAEZ
    PAFZBGZFPQEZPQFZBGZFABCHQBCHQTSUBTQPAIJRUABPAKLMABCNQBCNO $.

  ${
    sbimi.1 $e |- ( ph -> ps ) $.
    $( Infer substitution into antecedent and consequent of an implication.
       (Contributed by NM, 25-Jun-1998.) $)
    sbimi $p |- ( [ y / x ] ph -> [ y / x ] ps ) $=
      ( weq wi wa wex wsb imim2i anim2i eximi anim12i df-sb 3imtr4i ) CDFZAGZQA
      HZCIZHQBGZQBHZCIZHACDJBCDJRUATUCABQEKSUBCABQELMNACDOBCDOP $.
  $}

  ${
    sbbii.1 $e |- ( ph <-> ps ) $.
    $( Infer substitution into both sides of a logical equivalence.
       (Contributed by NM, 14-May-1993.) $)
    sbbii $p |- ( [ y / x ] ph <-> [ y / x ] ps ) $=
      ( wsb biimpi sbimi biimpri impbii ) ACDFBCDFABCDABEGHBACDABEIHJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom scheme ax-6 (Existence)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom of Existence.  One of the equality and substitution axioms of
     predicate calculus with equality.  This axiom tells us is that at least
     one thing exists.  In this form (not requiring that ` x ` and ` y ` be
     distinct) it was used in an axiom system of Tarski (see Axiom B7' in
     footnote 1 of [KalishMontague] p. 81.)  It is equivalent to axiom scheme
     C10' in [Megill] p. 448 (p. 16 of the preprint); the equivalence is
     established by ~ axc10 and ~ ax6fromc10 .  A more convenient form of this
     axiom is ~ ax6e , which has additional remarks.

     Raph Levien proved the independence of this axiom from the other logical
     axioms on 12-Apr-2005.  See item 16 at
     ~ http://us.metamath.org/award2003.html .

     ~ ax-6 can be proved from the weaker version ~ ax6v requiring that the
     variables be distinct; see theorem ~ ax6 .

     ~ ax-6 can also be proved from the Axiom of Separation (in the form that
     we use that axiom, where free variables are not universally quantified).
     See theorem ~ ax6vsep .

     Except by ~ ax6v , this axiom should not be referenced directly.  Instead,
     use theorem ~ ax6 .  (Contributed by NM, 10-Jan-1993.)
     (New usage is discouraged.) $)
  ax-6 $a |- -. A. x -. x = y $.

  ${
    $d x y $.
    $( Axiom B7 of [Tarski] p. 75, which requires that ` x ` and ` y ` be
       distinct.  This trivial proof is intended merely to weaken axiom ~ ax-6
       by adding a distinct variable restriction ($d).  From here on, ~ ax-6
       should not be referenced directly by any other proof, so that theorem
       ~ ax6 will show that we can recover ~ ax-6 from this weaker version if
       it were an axiom (as it is in the case of Tarski).

       Note:  Introducing ` x , y ` as a distinct variable group "out of the
       blue" with no apparent justification has puzzled some people, but it is
       perfectly sound.  All we are doing is adding an additional prerequisite,
       similar to adding an unnecessary logical hypothesis, that results in a
       weakening of the theorem.  This means that any _future_ theorem that
       references ~ ax6v must have a $d specified for the two variables that
       get substituted for ` x ` and ` y ` .  The $d does not propagate
       "backwards" i.e. it does not impose a requirement on ~ ax-6 .

       When possible, use of this theorem rather than ~ ax6 is preferred since
       its derivation is much shorter and requires fewer axioms.  (Contributed
       by NM, 7-Aug-2015.) $)
    ax6v $p |- -. A. x -. x = y $=
      ( ax-6 ) ABC $.
  $}

  ${
    $d x y $.
    $( At least one individual exists.  Weaker version of ~ ax6e .  When
       possible, use of this theorem rather than ~ ax6e is preferred since its
       derivation is much shorter and requires fewer axioms.  (Contributed by
       NM, 3-Aug-2017.) $)
    ax6ev $p |- E. x x = y $=
      ( weq wex wn wal ax6v df-ex mpbir ) ABCZADJEAFEABGJAHI $.
  $}

  ${
    $d x y $.
    exiftru.1 $e |- ph $.
    $( Rule of existential generalization, similar to universal generalization
       ~ ax-gen , but valid only if an individual exists.  Its proof requires
       ~ ax-6 but the equality predicate does not occur in its statement.  Some
       fundamental theorems of predicate logic can be proven from ~ ax-gen ,
       ~ ax-4 and this theorem alone, not requiring ~ ax-7 or excessive
       distinct variable conditions.  (Contributed by Wolf Lammen,
       12-Nov-2017.)  (Proof shortened by Wolf Lammen, 9-Dec-2017.) $)
    exiftru $p |- E. x ph $=
      ( vy weq ax6ev a1i eximii ) BDEZABBDFAICGH $.
  $}

  $( Theorem 19.2 of [Margaris] p. 89.  This corresponds to the axiom (D) of
     modal logic.  Note:  This proof is very different from Margaris' because
     we only have Tarski's FOL axiom schemes available at this point.  See the
     later ~ 19.2g for a more conventional proof of a more general result,
     which uses additional axioms.  The reverse implication is the defining
     property of effective non-freeness (see ~ df-nf ).  (Contributed by NM,
     2-Aug-2017.)  Remove dependency on ~ ax-7 .  (Revised by Wolf Lammen,
     4-Dec-2017.) $)
  19.2 $p |- ( A. x ph -> E. x ph ) $=
    ( wi id exiftru 19.35i ) AABAACBADEF $.

  ${
    19.2d.1 $e |- ( ph -> A. x ps ) $.
    $( Deduction associated with ~ 19.2 .  (Contributed by BJ, 12-May-2019.) $)
    19.2d $p |- ( ph -> E. x ps ) $=
      ( wal wex 19.2 syl ) ABCEBCFDBCGH $.
  $}

  ${
    19.8w.1 $e |- ( ph -> A. x ph ) $.
    $( Weak version of ~ 19.8a and instance of ~ 19.2d .  (Contributed by NM,
       1-Aug-2017.)  (Proof shortened by Wolf Lammen, 4-Dec-2017.)  (Revised by
       BJ, 31-Mar-2021.) $)
    19.8w $p |- ( ph -> E. x ph ) $=
      ( 19.2d ) AABCD $.
  $}

  ${
    $d x ph $.
    $( Version of ~ 19.8a with a dv condition, requiring fewer axioms.
       Converse of ~ ax5e .  (Contributed by BJ, 12-Mar-2020.) $)
    19.8v $p |- ( ph -> E. x ph ) $=
      ( ax-5 19.8w ) ABABCD $.

    $( Version of ~ 19.9 with a dv condition, requiring fewer axioms.  Any
       formula can be existentially quantified using a variable which it does
       not contain.  See also ~ 19.3v .  (Contributed by NM, 28-May-1995.)
       Remove dependency on ~ ax-7 .  (Revised by Wolf Lammen, 4-Dec-2017.) $)
    19.9v $p |- ( E. x ph <-> ph ) $=
      ( wex ax5e 19.8v impbii ) ABCAABDABEF $.

    $( Version of ~ 19.3 with a dv condition, requiring fewer axioms.  Any
       formula can be universally quantified using a variable which it does not
       contain.  See also ~ 19.9v .  (Contributed by Anthony Hart,
       13-Sep-2011.)  Remove dependency on ~ ax-7 .  (Revised by Wolf Lammen,
       4-Dec-2017.) $)
    19.3v $p |- ( A. x ph <-> ph ) $=
      ( wal wn wex alex 19.9v con2bii bitr4i ) ABCADZBEZDAABFKAJBGHI $.

    $( Version of ~ sp when ` x ` does not occur in ` ph ` .  Converse of
       ~ ax-5 .  Uses only Tarski's FOL axiom schemes.  (Contributed by NM,
       10-Apr-2017.)  (Proof shortened by Wolf Lammen, 4-Dec-2017.) $)
    spvw $p |- ( A. x ph -> ph ) $=
      ( wal 19.3v biimpi ) ABCAABDE $.
  $}

  $( Theorem 19.39 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
  19.39 $p |- ( ( E. x ph -> E. x ps ) -> E. x ( ph -> ps ) ) $=
    ( wex wi wal 19.2 imim1i 19.35 sylibr ) ACDZBCDZEACFZLEABECDMKLACGHABCIJ $.

  $( Theorem 19.24 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
  19.24 $p |- ( ( A. x ph -> A. x ps ) -> E. x ( ph -> ps ) ) $=
    ( wal wi wex 19.2 imim2i 19.35 sylibr ) ACDZBCDZEKBCFZEABECFLMKBCGHABCIJ $.

  $( Theorem 19.34 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
  19.34 $p |- ( ( A. x ph \/ E. x ps ) -> E. x ( ph \/ ps ) ) $=
    ( wal wex wo 19.2 orim1i 19.43 sylibr ) ACDZBCEZFACEZLFABFCEKMLACGHABCIJ $.

  ${
    $d x ps $.
    $( Version of ~ 19.23 with a dv condition instead of a non-freeness
       hypothesis.  (Contributed by NM, 28-Jun-1998.)  Reduce dependencies on
       axioms.  (Revised by Wolf Lammen, 11-Jan-2020.) $)
    19.23v $p |- ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) $=
      ( wi wal wex exim 19.9v syl6ib ax-5 imim2i 19.38 syl impbii ) ABDCEZACFZB
      DZOPBCFBABCGBCHIQPBCEZDOBRPBCJKABCLMN $.
  $}

  ${
    $d x ps $.  $d y ps $.
    $( Theorem ~ 19.23v extended to two variables.  (Contributed by NM,
       10-Aug-2004.) $)
    19.23vv $p |- ( A. x A. y ( ph -> ps ) <-> ( E. x E. y ph -> ps ) ) $=
      ( wi wal wex 19.23v albii bitri ) ABEDFZCFADGZBEZCFLCGBEKMCABDHILBCHJ $.
  $}

  ${
    $d x ps $.
    $( Version of ~ 19.36 with a dv condition instead of a non-freeness
       hypothesis.  (Contributed by NM, 18-Aug-1993.)  Reduce dependencies on
       axioms.  (Revised by Wolf Lammen, 17-Jan-2020.) $)
    19.36v $p |- ( E. x ( ph -> ps ) <-> ( A. x ph -> ps ) ) $=
      ( wi wex wal 19.35 19.9v imbi2i bitri ) ABDCEACFZBCEZDKBDABCGLBKBCHIJ $.
  $}

  ${
    $d x ps $.
    19.36iv.1 $e |- E. x ( ph -> ps ) $.
    $( Inference associated with ~ 19.36v .  Version of ~ 19.36i with a dv
       condition.  (Contributed by NM, 5-Aug-1993.)  Reduce dependencies on
       axioms.  (Revised by Wolf Lammen, 17-Jan-2020.) $)
    19.36iv $p |- ( A. x ph -> ps ) $=
      ( wi wex wal 19.36v mpbi ) ABECFACGBEDABCHI $.
  $}

  ${
    $d ph y $.  $d ps x $.  $d x y $.
    $( Version of ~ pm11.53 with a dv condition, requiring fewer axioms.
       (Contributed by BJ, 7-Mar-2020.) $)
    pm11.53v $p |- ( A. x A. y ( ph -> ps ) <-> ( E. x ph -> A. y ps ) ) $=
      ( wi wal wex 19.21v albii 19.23v bitri ) ABEDFZCFABDFZEZCFACGMELNCABDHIAM
      CJK $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x y $.
    $( Version of ~ 19.12vv with a dv condition, requiring fewer axioms.  See
       also ~ 19.12 .  (Contributed by BJ, 18-Mar-2020.) $)
    19.12vvv $p |- ( E. x A. y ( ph -> ps ) <-> A. y E. x ( ph -> ps ) ) $=
      ( wi wal wex 19.21v exbii 19.36v albii bitr2i 3bitri ) ABEZDFZCGABDFZEZCG
      ACFZPEZNCGZDFZOQCABDHIAPCJUARBEZDFSTUBDABCJKRBDHLM $.
  $}

  ${
    $d x ps $.
    $( Version of ~ 19.27 with a dv condition, requiring fewer axioms.
       (Contributed by NM, 3-Jun-2004.) $)
    19.27v $p |- ( A. x ( ph /\ ps ) <-> ( A. x ph /\ ps ) ) $=
      ( wa wal 19.26 19.3v anbi2i bitri ) ABDCEACEZBCEZDJBDABCFKBJBCGHI $.
  $}

  ${
    $d x ph $.
    $( Version of ~ 19.28 with a dv condition, requiring fewer axioms.
       (Contributed by NM, 25-Mar-2004.) $)
    19.28v $p |- ( A. x ( ph /\ ps ) <-> ( ph /\ A. x ps ) ) $=
      ( wa wal 19.26 19.3v anbi1i bitri ) ABDCEACEZBCEZDAKDABCFJAKACGHI $.
  $}

  ${
    $d x ph $.
    $( Version of ~ 19.37 with a dv condition, requiring fewer axioms.
       (Contributed by NM, 21-Jun-1993.) $)
    19.37v $p |- ( E. x ( ph -> ps ) <-> ( ph -> E. x ps ) ) $=
      ( wi wex wal 19.35 19.3v imbi1i bitri ) ABDCEACFZBCEZDALDABCGKALACHIJ $.
  $}

  ${
    $d x ph $.
    19.37iv.1 $e |- E. x ( ph -> ps ) $.
    $( Inference associated with ~ 19.37v .  (Contributed by NM,
       5-Aug-1993.) $)
    19.37iv $p |- ( ph -> E. x ps ) $=
      ( wi wex 19.37v mpbi ) ABECFABCFEDABCGH $.
  $}

  ${
    $d x ps $.
    $( Version of ~ 19.44 with a dv condition, requiring fewer axioms.
       (Contributed by NM, 12-Mar-1993.) $)
    19.44v $p |- ( E. x ( ph \/ ps ) <-> ( E. x ph \/ ps ) ) $=
      ( wo wex 19.43 19.9v orbi2i bitri ) ABDCEACEZBCEZDJBDABCFKBJBCGHI $.
  $}

  ${
    $d x ph $.
    $( Version of ~ 19.45 with a dv condition, requiring fewer axioms.
       (Contributed by NM, 12-Mar-1993.) $)
    19.45v $p |- ( E. x ( ph \/ ps ) <-> ( ph \/ E. x ps ) ) $=
      ( wo wex 19.43 19.9v orbi1i bitri ) ABDCEACEZBCEZDAKDABCFJAKACGHI $.
  $}

  ${
    $d x ps $.
    $( Version of ~ 19.41 with a dv condition, requiring fewer axioms.
       (Contributed by NM, 21-Jun-1993.) $)
    19.41v $p |- ( E. x ( ph /\ ps ) <-> ( E. x ph /\ ps ) ) $=
      ( wa wex 19.40 19.9v anbi2i sylib pm3.21 eximdv impcom impbii ) ABDZCEZAC
      EZBDZOPBCEZDQABCFRBPBCGHIBPOBANCBAJKLM $.
  $}

  ${
    $d x ps $.  $d y ps $.
    $( Version of ~ 19.41 with two quantifiers and a dv condition requiring
       fewer axioms.  (Contributed by NM, 30-Apr-1995.) $)
    19.41vv $p |- ( E. x E. y ( ph /\ ps ) <-> ( E. x E. y ph /\ ps ) ) $=
      ( wa wex 19.41v exbii bitri ) ABEDFZCFADFZBEZCFKCFBEJLCABDGHKBCGI $.
  $}

  ${
    $d x ps $.  $d y ps $.  $d z ps $.
    $( Version of ~ 19.41 with three quantifiers and a dv condition requiring
       fewer axioms.  (Contributed by NM, 30-Apr-1995.) $)
    19.41vvv $p |- ( E. x E. y E. z ( ph /\ ps ) <->
                     ( E. x E. y E. z ph /\ ps ) ) $=
      ( wa wex 19.41vv exbii 19.41v bitri ) ABFEGDGZCGAEGDGZBFZCGMCGBFLNCABDEHI
      MBCJK $.
  $}

  ${
    $d w ps $.  $d x ps $.  $d y ps $.  $d z ps $.
    $( Version of ~ 19.41 with four quantifiers and a dv condition requiring
       fewer axioms.  (Contributed by FL, 14-Jul-2007.) $)
    19.41vvvv $p |- ( E. w E. x E. y E. z ( ph /\ ps ) <->
                     ( E. w E. x E. y E. z ph /\ ps ) ) $=
      ( wa wex 19.41vvv exbii 19.41v bitri ) ABGEHDHCHZFHAEHDHCHZBGZFHNFHBGMOFA
      BCDEIJNBFKL $.
  $}

  ${
    $d x ph $.
    $( Version of ~ 19.42 with a dv condition requiring fewer axioms.
       (Contributed by NM, 21-Jun-1993.) $)
    19.42v $p |- ( E. x ( ph /\ ps ) <-> ( ph /\ E. x ps ) ) $=
      ( wa wex 19.41v exancom ancom 3bitr4i ) BADCEBCEZADABDCEAJDBACFABCGAJHI
      $.
  $}

  ${
    $d y ph $.
    $( Distribution of existential quantifiers.  (Contributed by NM,
       9-Mar-1995.) $)
    exdistr $p |- ( E. x E. y ( ph /\ ps ) <-> E. x ( ph /\ E. y ps ) ) $=
      ( wa wex 19.42v exbii ) ABEDFABDFECABDGH $.
  $}

  ${
    $d x ph $.  $d y ph $.
    $( Version of ~ 19.42 with two quantifiers and a dv condition requiring
       fewer axioms.  (Contributed by NM, 16-Mar-1995.) $)
    19.42vv $p |- ( E. x E. y ( ph /\ ps ) <-> ( ph /\ E. x E. y ps ) ) $=
      ( wa wex exdistr 19.42v bitri ) ABEDFCFABDFZECFAJCFEABCDGAJCHI $.
  $}

  ${
    $d x ph $.  $d y ph $.  $d z ph $.
    $( Version of ~ 19.42 with three quantifiers and a dv condition requiring
       fewer axioms.  (Contributed by NM, 21-Sep-2011.) $)
    19.42vvv $p |- ( E. x E. y E. z ( ph /\ ps )
                       <-> ( ph /\ E. x E. y E. z ps ) ) $=
      ( wa wex 19.42vv exbii 19.42v bitri ) ABFEGDGZCGABEGDGZFZCGAMCGFLNCABDEHI
      AMCJK $.
  $}

  ${
    $d y ph $.  $d z ph $.
    $( Distribution of existential quantifiers.  (Contributed by NM,
       17-Mar-1995.) $)
    exdistr2 $p |- ( E. x E. y E. z ( ph /\ ps ) <->
                   E. x ( ph /\ E. y E. z ps ) ) $=
      ( wa wex 19.42vv exbii ) ABFEGDGABEGDGFCABDEHI $.
  $}

  ${
    $d y ph $.  $d z ph $.  $d z ps $.
    $( Distribution of existential quantifiers in a triple conjunction.
       (Contributed by NM, 9-Mar-1995.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    3exdistr $p |- ( E. x E. y E. z ( ph /\ ps /\ ch ) <->
                E. x ( ph /\ E. y ( ps /\ E. z ch ) ) ) $=
      ( w3a wex wa 3anass 2exbii 19.42vv exdistr anbi2i 3bitri exbii ) ABCGZFHE
      HZABCFHIEHZIZDRABCIZIZFHEHAUAFHEHZITQUBEFABCJKAUAEFLUCSABCEFMNOP $.
  $}

  ${
    $d y ph $.  $d z ph $.  $d w ph $.  $d z ps $.  $d w ps $.  $d w ch $.
    $( Distribution of existential quantifiers in a quadruple conjunction.
       (Contributed by NM, 9-Mar-1995.)  (Proof shortened by Wolf Lammen,
       20-Jan-2018.) $)
    4exdistr $p |- ( E. x E. y E. z E. w ( ( ph /\ ps ) /\ ( ch /\ th ) ) <->
                E. x ( ph /\ E. y ( ps /\ E. z ( ch /\ E. w th ) ) ) ) $=
      ( wa wex w3a 19.42v anbi2i df-3an 3bitr4i 3exbii 3exdistr bitri ) ABIZCDI
      ZIHJZGJFJEJABCDHJIZKZGJFJEJABUBGJIFJIEJUAUCEFGSTHJZISUBIUAUCUDUBSCDHLMSTH
      LABUBNOPABUBEFGQR $.
  $}

  ${
    $d x y $.
    spimeh.1 $e |- ( ph -> A. x ph ) $.
    spimeh.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Existential introduction, using implicit substitution.  Compare Lemma 14
       of [Tarski] p. 70.  (Contributed by NM, 7-Aug-1994.)  (Proof shortened
       by Wolf Lammen, 10-Dec-2017.) $)
    spimeh $p |- ( ph -> E. x ps ) $=
      ( wal wex weq wi ax6ev eximii 19.35i syl ) AACGBCHEABCCDIABJCCDKFLMN $.
  $}

  ${
    $d x y $.
    spimw.1 $e |- ( -. ps -> A. x -. ps ) $.
    spimw.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Specialization.  Lemma 8 of [KalishMontague] p. 87.  Uses only Tarski's
       FOL axiom schemes.  (Contributed by NM, 19-Apr-2017.)  (Proof shortened
       by Wolf Lammen, 7-Aug-2017.) $)
    spimw $p |- ( A. x ph -> ps ) $=
      ( weq wn wal wi ax6v spimfw ax-mp ) CDGHCIHACIBJCDKABCDEFLM $.
  $}

  ${
    $d x y $.  $d x ps $.
    spimvw.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Specialization.  Lemma 8 of [KalishMontague] p. 87.  Uses only Tarski's
       FOL axiom schemes.  (Contributed by NM, 9-Apr-2017.) $)
    spimvw $p |- ( A. x ph -> ps ) $=
      ( wn ax-5 spimw ) ABCDBFCGEH $.
  $}

  ${
    $d x y $.  $d y ph $.
    spnfw.1 $e |- ( -. ph -> A. x -. ph ) $.
    $( Weak version of ~ sp .  Uses only Tarski's FOL axiom schemes.
       (Contributed by NM, 1-Aug-2017.)  (Proof shortened by Wolf Lammen,
       13-Aug-2017.) $)
    spnfw $p |- ( A. x ph -> ph ) $=
      ( vy weq idd spimw ) AABDCBDEAFG $.
  $}

  ${
    spfalw.1 $e |- -. ph $.
    $( Version of ~ sp when ` ph ` is false.  Uses only Tarski's FOL axiom
       schemes.  (Contributed by NM, 23-Apr-2017.)  (Proof shortened by Wolf
       Lammen, 25-Dec-2017.) $)
    spfalw $p |- ( A. x ph -> ph ) $=
      ( wn hbth spnfw ) ABADBCEF $.
  $}

  ${
    $d x y $.
    $( Version of ~ equs4 with a dv condition, which requires fewer axioms.
       (Contributed by BJ, 31-May-2019.) $)
    equs4v $p |- ( A. x ( x = y -> ph ) -> E. x ( x = y /\ ph ) ) $=
      ( weq wi wal wex wa ax6ev exintr mpi ) BCDZAEBFLBGLAHBGBCILABJK $.
  $}

  ${
    $d x y $.  $d x ps $.
    equsalvw.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Version of ~ equsalv with a dv condition, and of ~ equsal with two dv
       conditions, which requires fewer axioms.  See also the dual form
       ~ equsexvw .  (Contributed by BJ, 31-May-2019.) $)
    equsalvw $p |- ( A. x ( x = y -> ph ) <-> ps ) $=
      ( weq wi wal wex 19.23v pm5.74i albii ax6ev a1bi 3bitr4i ) CDFZBGZCHPCIZB
      GPAGZCHBPBCJSQCPABEKLRBCDMNO $.

    $( Version of ~ equsexv with a dv condition, and of ~ equsex with two dv
       conditions, which requires fewer axioms.  See also the dual form
       ~ equsalvw .  (Contributed by BJ, 31-May-2019.) $)
    equsexvw $p |- ( E. x ( x = y /\ ph ) <-> ps ) $=
      ( weq wa wex pm5.32i exbii ax6ev 19.41v mpbiran bitri ) CDFZAGZCHOBGZCHZB
      PQCOABEIJROCHBCDKOBCLMN $.
  $}

  ${
    $d x y $.
    cbvaliw.1 $e |- ( A. x ph -> A. y A. x ph ) $.
    cbvaliw.2 $e |- ( -. ps -> A. x -. ps ) $.
    cbvaliw.3 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Change bound variable.  Uses only Tarski's FOL axiom schemes.  Part of
       Lemma 7 of [KalishMontague] p. 86.  (Contributed by NM, 19-Apr-2017.) $)
    cbvaliw $p |- ( A. x ph -> A. y ps ) $=
      ( wal spimw alrimih ) ACHBDEABCDFGIJ $.
  $}

  ${
    $d x y $.  $d x ps $.  $d y ph $.
    cbvalivw.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Change bound variable.  Uses only Tarski's FOL axiom schemes.  Part of
       Lemma 7 of [KalishMontague] p. 86.  (Contributed by NM, 9-Apr-2017.) $)
    cbvalivw $p |- ( A. x ph -> A. y ps ) $=
      ( wal spimvw alrimiv ) ACFBDABCDEGH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom scheme ax-7 (Equality)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom of Equality.  One of the equality and substitution axioms of
     predicate calculus with equality.  It states that equality is a
     right-Euclidean binary relation (this is similar, but not identical, to
     being transitive, which is proved as ~ equtr ).  This axiom scheme is a
     sub-scheme of Axiom Scheme B8 of system S2 of [Tarski], p. 75, whose
     general form cannot be represented with our notation.  Also appears as
     Axiom C7 of [Monk2] p. 105 and Axiom Scheme C8' in [Megill] p. 448 (p. 16
     of the preprint).

     The equality symbol was invented in 1557 by Robert Recorde.  He chose a
     pair of parallel lines of the same length because "noe .2. thynges, can be
     moare equalle."

     We prove in ~ ax7 that this axiom can be recovered from its weakened
     version ~ ax7v where ` x ` and ` y ` are assumed to be disjoint variables.
     In particular, the only theorem referencing ~ ax-7 should be ~ ax7v .  See
     the comment of ~ ax7v for more details on these matters.  (Contributed by
     NM, 10-Jan-1993.)  (Revised by BJ, 7-Dec-2020.)  Use ~ ax7 instead.
     (New usage is discouraged.) $)
  ax-7 $a |- ( x = y -> ( x = z -> y = z ) ) $.

  ${
    $d x y $.
    $( Weakened version of ~ ax-7 , with a dv condition on ` x , y ` .  This
       should be the only proof referencing ~ ax-7 , and it should be
       referenced only by its two weakened versions ~ ax7v1 and ~ ax7v2 , from
       which ~ ax-7 is then rederived as ~ ax7 , which shows that either ~ ax7v
       or the conjunction of ~ ax7v1 and ~ ax7v2 is sufficient.

       In ~ ax7v , it is still allowed to substitute the same variable for
       ` x ` and ` z ` , or the same variable for ` y ` and ` z ` .  Therefore,
       ~ ax7v "bundles" (a term coined by Raph Levien) its "principal instance"
       ` ( x = y -> ( x = z -> y = z ) ) ` with ` x , y , z ` distinct, and its
       "degenerate instances" ` ( x = y -> ( x = x -> y = x ) ) ` and
       ` ( x = y -> ( x = y -> y = y ) ) ` with ` x , y ` distinct.  These
       degenerate instances are for instance used in the proofs of ~ equcomiv
       and ~ equid respectively.  (Contributed by BJ, 7-Dec-2020.)  Use ~ ax7
       instead.  (New usage is discouraged.) $)
    ax7v $p |- ( x = y -> ( x = z -> y = z ) ) $=
      ( ax-7 ) ABCD $.
  $}

  ${
    $d x y $.  $d x z $.
    $( First of two weakened versions of ~ ax7v , with an extra dv condition on
       ` x , z ` , see comments there.  (Contributed by BJ, 7-Dec-2020.) $)
    ax7v1 $p |- ( x = y -> ( x = z -> y = z ) ) $=
      ( ax7v ) ABCD $.
  $}

  ${
    $d x y $.  $d y z $.
    $( Second of two weakened versions of ~ ax7v , with an extra dv condition
       on ` y , z ` , see comments there.  (Contributed by BJ, 7-Dec-2020.) $)
    ax7v2 $p |- ( x = y -> ( x = z -> y = z ) ) $=
      ( ax7v ) ABCD $.
  $}

  ${
    $d x y $.
    $( Identity law for equality.  Lemma 2 of [KalishMontague] p. 85.  See also
       Lemma 6 of [Tarski] p. 68.  (Contributed by NM, 1-Apr-2005.)  (Revised
       by NM, 9-Apr-2017.)  (Proof shortened by Wolf Lammen, 5-Feb-2018.)
       (Proof shortened by Wolf Lammen, 22-Aug-2020.) $)
    equid $p |- x = x $=
      ( vy weq ax7v1 pm2.43i ax6ev exlimiiv ) BACZAACZBHIBAADEBAFG $.
  $}

  $( Bound-variable hypothesis builder for ` x = x ` .  This theorem tells us
     that any variable, including ` x ` , is effectively not free in
     ` x = x ` , even though ` x ` is technically free according to the
     traditional definition of free variable.  (Contributed by NM,
     13-Jan-2011.)  (Revised by NM, 21-Aug-2017.) $)
  nfequid $p |- F/ y x = x $=
    ( weq equid nfth ) AACBADE $.

  ${
    $d x y $.
    $( Weaker form of ~ equcomi with a dv condition on ` x , y ` .  This is an
       intermediate step and ~ equcomi is fully recovered later.  (Contributed
       by BJ, 7-Dec-2020.) $)
    equcomiv $p |- ( x = y -> y = x ) $=
      ( weq equid ax7v2 mpi ) ABCAACBACADABAEF $.
  $}

  ${
    $d x y $.
    $( A commuted form of ~ ax6ev .  (Contributed by BJ, 7-Dec-2020.) $)
    ax6evr $p |- E. x y = x $=
      ( weq ax6ev equcomiv eximii ) ABCBACAABDABEF $.
  $}

  ${
    $d t x $.  $d t y $.  $d t z $.
    $( Proof of ~ ax-7 from ~ ax7v1 and ~ ax7v2 , proving sufficiency of the
       conjunction of the latter two weakened versions of ~ ax7v , which is
       itself a weakened version of ~ ax-7 .

       Note that the weakened version of ~ ax-7 obtained by adding a dv
       condition on ` x , z ` (resp. on ` y , z ` ) does not permit, together
       with the other axioms, to prove reflexivity (resp. symmetry).
       (Contributed by BJ, 7-Dec-2020.) $)
    ax7 $p |- ( x = y -> ( x = z -> y = z ) ) $=
      ( vt weq wi ax7v2 wa ax7v1 imp a1i syl2and expd ax6evr exlimiiv ) ADEZABE
      ZACEZBCEZFFDPQRSPQDBEZRDCEZSADBGADCGTUAHSFPTUASDBCIJKLMDANO $.
  $}

  $( Commutative law for equality.  Equality is a symmetric relation.  Lemma 3
     of [KalishMontague] p. 85.  See also Lemma 7 of [Tarski] p. 69.
     (Contributed by NM, 10-Jan-1993.)  (Revised by NM, 9-Apr-2017.) $)
  equcomi $p |- ( x = y -> y = x ) $=
    ( weq equid ax7 mpi ) ABCAACBACADABAEF $.

  $( Commutative law for equality.  Equality is a symmetric relation.
     (Contributed by NM, 20-Aug-1993.) $)
  equcom $p |- ( x = y <-> y = x ) $=
    ( weq equcomi impbii ) ABCBACABDBADE $.

  ${
    equcomd.1 $e |- ( ph -> x = y ) $.
    $( Deduction form of ~ equcom , symmetry of equality.  For the versions for
       classes, see ~ eqcom and ~ eqcomd .  (Contributed by BJ, 6-Oct-2019.) $)
    equcomd $p |- ( ph -> y = x ) $=
      ( weq equcom sylib ) ABCECBEDBCFG $.
  $}

  ${
    equcoms.1 $e |- ( x = y -> ph ) $.
    $( An inference commuting equality in antecedent.  Used to eliminate the
       need for a syllogism.  (Contributed by NM, 10-Jan-1993.) $)
    equcoms $p |- ( y = x -> ph ) $=
      ( weq equcomi syl ) CBEBCEACBFDG $.
  $}

  $( A transitive law for equality.  (Contributed by NM, 23-Aug-1993.) $)
  equtr $p |- ( x = y -> ( y = z -> x = z ) ) $=
    ( weq wi ax7 equcoms ) BCDACDEBABACFG $.

  $( A transitive law for equality.  Lemma L17 in [Megill] p. 446 (p. 14 of the
     preprint).  (Contributed by NM, 23-Aug-1993.) $)
  equtrr $p |- ( x = y -> ( z = x -> z = y ) ) $=
    ( weq equtr com12 ) CADABDCBDCABEF $.

  $( Commuted version of ~ equeucl (equality is left-Euclidean).  (Contributed
     by BJ, 12-Apr-2021.) $)
  equeuclr $p |- ( x = z -> ( y = z -> y = x ) ) $=
    ( weq wi equtrr equcoms ) BCDBADECACABFG $.

  $( Equality is a left-Euclidean binary relation.  (Right-Euclideanness is
     stated in ~ ax-7 .)  Curried (exported) form of ~ equtr2 .  (Contributed
     by BJ, 11-Apr-2021.) $)
  equeucl $p |- ( x = z -> ( y = z -> x = y ) ) $=
    ( weq equeuclr com12 ) BCDACDABDBACEF $.

  $( An equivalence law for equality.  (Contributed by NM, 1-Aug-1993.)  (Proof
     shortened by Wolf Lammen, 10-Dec-2017.) $)
  equequ1 $p |- ( x = y -> ( x = z <-> y = z ) ) $=
    ( weq ax7 equtr impbid ) ABDACDBCDABCEABCFG $.

  $( An equivalence law for equality.  (Contributed by NM, 21-Jun-1993.)
     (Proof shortened by Wolf Lammen, 4-Aug-2017.)  (Proof shortened by BJ,
     12-Apr-2021.) $)
  equequ2 $p |- ( x = y -> ( z = x <-> z = y ) ) $=
    ( weq equtrr equeuclr impbid ) ABDCADCBDABCEACBFG $.

  $( Equality is a left-Euclidean binary relation.  Uncurried (imported) form
     of ~ equeucl .  (Contributed by NM, 12-Aug-1993.)  (Proof shortened by
     Andrew Salmon, 25-May-2011.)  (Proof shortened by BJ, 11-Apr-2021.) $)
  equtr2 $p |- ( ( x = z /\ y = z ) -> x = y ) $=
    ( weq equeucl imp ) ACDBCDABDABCEF $.

  $( Obsolete proof of ~ equequ2 as of 12-Apr-2021.  (Contributed by NM,
     21-Jun-1993.)  (Proof shortened by Wolf Lammen, 4-Aug-2017.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  equequ2OLD $p |- ( x = y -> ( z = x <-> z = y ) ) $=
    ( weq equequ1 equcom 3bitr3g ) ABDACDBCDCADCBDABCEACFBCFG $.

  $( Obsolete proof of ~ equtr2 as of 11-Apr-2021.  (Contributed by NM,
     12-Aug-1993.)  (Proof shortened by Andrew Salmon, 25-May-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  equtr2OLD $p |- ( ( x = z /\ y = z ) -> x = y ) $=
    ( weq wi equtrr equcoms impcom ) BCDACDZABDZIJECBCBAFGH $.

  $( One of the two equality axioms of standard predicate calculus, called
     reflexivity of equality.  (The other one is ~ stdpc7 .)  Axiom 6 of
     [Mendelson] p. 95.  Mendelson doesn't say why he prepended the redundant
     quantifier, but it was probably to be compatible with free logic (which is
     valid in the empty domain).  (Contributed by NM, 16-Feb-2005.) $)
  stdpc6 $p |- A. x x = x $=
    ( weq equid ax-gen ) AABAACD $.

  $( One of the two equality axioms of standard predicate calculus, called
     substitutivity of equality.  (The other one is ~ stdpc6 .)  Translated to
     traditional notation, it can be read:
      " ` x = y -> ( ph ( x , x ) -> ph ( x , y ) ) ` , provided that ` y ` is
     free for ` x ` in ` ph ( x , x ) ` ."  Axiom 7 of [Mendelson] p. 95.
     (Contributed by NM, 15-Feb-2005.) $)
  stdpc7 $p |- ( x = y -> ( [ x / y ] ph -> ph ) ) $=
    ( wsb wi sbequ2 equcoms ) ACBDAECBACBFG $.

  ${
    $d x z $.  $d y z $.
    $( A variable introduction law for equality.  Lemma 15 of [Monk2] p. 109.
       (Contributed by NM, 9-Jan-1993.)  Remove dependencies on ~ ax-10 ,
       ~ ax-13 .  (Revised by Wolf Lammen, 10-Jun-2019.)  Move the quantified
       variable ( ` z ` ) to the left of the equality signs.  (Revised by Wolf
       Lammen, 11-Apr-2021.) $)
    equvinv $p |- ( x = y <-> E. z ( z = x /\ z = y ) ) $=
      ( weq wa wex ax6ev equtrr ancld eximdv mpi ax7 imp exlimiv impbii ) ABDZC
      ADZCBDZEZCFZPQCFTCAGPQSCPQRABCHIJKSPCQRPCABLMNO $.

    $( A modified version of the forward implication of ~ equvinv adapted to
       common usage.  (Contributed by Wolf Lammen, 8-Sep-2018.) $)
    equviniva $p |- ( x = y -> E. z ( x = z /\ y = z ) ) $=
      ( weq wex wa ax6evr equtr ancrd eximdv mpi ) ABDZBCDZCEACDZMFZCECBGLMOCLM
      NABCHIJK $.

    $( The forward implication of ~ equvinv .  Obsolete as of 11-Apr-2021.  Use
       ~ equvinv instead.  (Contributed by Wolf Lammen, 11-Apr-2021.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    equvinivOLD $p |- ( x = y -> E. z ( z = x /\ z = y ) ) $=
      ( weq wex wa ax6ev equtrr ancld eximdv mpi ) ABDZCADZCEMCBDZFZCECAGLMOCLM
      NABCHIJK $.

    $( Obsolete version of ~ equvinv as of 11-Apr-2021.  (Contributed by NM,
       9-Jan-1993.)  Remove dependencies on ~ ax-10 , ~ ax-13 .  (Revised by
       Wolf Lammen, 10-Jun-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    equvinvOLD $p |- ( x = y <-> E. z ( x = z /\ y = z ) ) $=
      ( weq wa wex equviniva wi equtrr equcoms impcom exlimiv impbii ) ABDZACDZ
      BCDZEZCFABCGQNCPONONHCBCBAIJKLM $.

    $( A specialized version of ~ equvel with distinct variable restrictions
       and fewer axiom usage.  (Contributed by Wolf Lammen, 10-Apr-2021.) $)
    equvelv $p |- ( x = y <-> A. z ( z = x -> z = y ) ) $=
      ( weq wi wal equtrr alrimiv wa wex equs4v equvinv sylibr impbii ) ABDZCAD
      ZCBDZEZCFZORCABCGHSPQICJOQCAKABCLMN $.
  $}

  $( An equivalence between two ways of expressing ~ ax-13 .  See the comment
     for ~ ax-13 .  (Contributed by NM, 2-May-2017.)  (Proof shortened by Wolf
     Lammen, 26-Feb-2018.)  (Revised by BJ, 15-Sep-2020.) $)
  ax13b $p |- ( ( -. x = y -> ( y = z -> ph ) )
                       <-> ( -. x = y -> ( -. x = z -> ( y = z -> ph ) ) ) ) $=
    ( weq wn wi ax-1 equeuclr con3rr3 imim1d pm2.43 syl6 impbid2 pm5.74i ) BCEZ
    FZCDEZAGZBDEZFZSGZQSUBSUAHQUBRSGSQRUASRTPCBDIJKRALMNO $.

  ${
    $d x y $.
    spfw.1 $e |- ( -. ps -> A. x -. ps ) $.
    spfw.2 $e |- ( A. x ph -> A. y A. x ph ) $.
    spfw.3 $e |- ( -. ph -> A. y -. ph ) $.
    spfw.4 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Weak version of ~ sp .  Uses only Tarski's FOL axiom schemes.  Lemma 9
       of [KalishMontague] p. 87.  This may be the best we can do with minimal
       distinct variable conditions.  (Contributed by NM, 19-Apr-2017.)  (Proof
       shortened by Wolf Lammen, 10-Oct-2021.) $)
    spfw $p |- ( A. x ph -> ph ) $=
      ( wal weq biimpd cbvaliw wi biimprd equcoms spimw syl ) ACIBDIAABCDFECDJZ
      ABHKLBADCGBAMCDRABHNOPQ $.

    $( Obsolete proof of ~ spfw as of 10-Oct-2021.  (Contributed by NM,
       19-Apr-2017.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    spfwOLD $p |- ( A. x ph -> ph ) $=
      ( wal wi alim weq biimprd equcoms spimw syl56 biimpd mpg ) ACIZBJZSAJDSSD
      ITDIBDIAFSBDKBADCGBAJCDCDLZABHMNOPABCDEUAABHQOR $.
  $}

  ${
    $d x y $.  $d x ps $.  $d y ph $.
    spw.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Weak version of the specialization scheme ~ sp .  Lemma 9 of
       [KalishMontague] p. 87.  While it appears that ~ sp in its general form
       does not follow from Tarski's FOL axiom schemes, from this theorem we
       can prove any _instance_ of ~ sp having mutually distinct setvar
       variables and no wff metavariables (see ~ ax12wdemo for an example of
       the procedure to eliminate the hypothesis).  Other approximations of
       ~ sp are ~ spfw (minimal distinct variable requirements), ~ spnfw (when
       ` x ` is not free in ` -. ph ` ), ~ spvw (when ` x ` does not appear in
       ` ph ` ), ~ sptruw (when ` ph ` is true), and ~ spfalw (when ` ph ` is
       false).  (Contributed by NM, 9-Apr-2017.)  (Proof shortened by Wolf
       Lammen, 27-Feb-2018.) $)
    spw $p |- ( A. x ph -> ph ) $=
      ( wn ax-5 wal spfw ) ABCDBFCGACHDGAFDGEI $.
  $}

  ${
    $d x y $.
    cbvalw.1 $e |- ( A. x ph -> A. y A. x ph ) $.
    cbvalw.2 $e |- ( -. ps -> A. x -. ps ) $.
    cbvalw.3 $e |- ( A. y ps -> A. x A. y ps ) $.
    cbvalw.4 $e |- ( -. ph -> A. y -. ph ) $.
    cbvalw.5 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change bound variable.  Uses only Tarski's FOL axiom schemes.
       (Contributed by NM, 9-Apr-2017.) $)
    cbvalw $p |- ( A. x ph <-> A. y ps ) $=
      ( wal weq biimpd cbvaliw wi biimprd equcoms impbii ) ACJBDJABCDEFCDKZABIL
      MBADCGHBANCDRABIOPMQ $.
  $}

  ${
    $d x y $.  $d x ps $.  $d y ph $.
    cbvalvw.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change bound variable.  Uses only Tarski's FOL axiom schemes.
       (Contributed by NM, 9-Apr-2017.)  (Proof shortened by Wolf Lammen,
       28-Feb-2018.) $)
    cbvalvw $p |- ( A. x ph <-> A. y ps ) $=
      ( wal ax-5 wn cbvalw ) ABCDACFDGBHCGBDFCGAHDGEI $.

    $( Change bound variable.  Uses only Tarski's FOL axiom schemes.
       (Contributed by NM, 19-Apr-2017.) $)
    cbvexvw $p |- ( E. x ph <-> E. y ps ) $=
      ( wn wal wex weq notbid cbvalvw notbii df-ex 3bitr4i ) AFZCGZFBFZDGZFACHB
      DHPROQCDCDIABEJKLACMBDMN $.
  $}

  ${
    $d y z $.  $d x y $.  $d z ph $.  $d y ps $.
    alcomiw.1 $e |- ( y = z -> ( ph <-> ps ) ) $.
    $( Weak version of ~ alcom .  Uses only Tarski's FOL axiom schemes.
       (Contributed by NM, 10-Apr-2017.) $)
    alcomiw $p |- ( A. x A. y ph -> A. y A. x ph ) $=
      ( wal weq biimpd cbvalivw alimi ax-5 wi biimprd equcoms spimvw 3syl ) ADG
      ZCGBEGZCGZTDGACGZDGRSCABDEDEHZABFIJKTDLTUADSACBAEDBAMDEUBABFNOPKKQ $.
  $}

  ${
    $d x y $.
    hbn1fw.1 $e |- ( A. x ph -> A. y A. x ph ) $.
    hbn1fw.2 $e |- ( -. ps -> A. x -. ps ) $.
    hbn1fw.3 $e |- ( A. y ps -> A. x A. y ps ) $.
    hbn1fw.4 $e |- ( -. ph -> A. y -. ph ) $.
    hbn1fw.5 $e |- ( -. A. y ps -> A. x -. A. y ps ) $.
    hbn1fw.6 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Weak version of ~ ax-10 from which we can prove any ~ ax-10 instance not
       involving wff variables or bundling.  Uses only Tarski's FOL axiom
       schemes.  (Contributed by NM, 19-Apr-2017.)  (Proof shortened by Wolf
       Lammen, 28-Feb-2018.) $)
    hbn1fw $p |- ( -. A. x ph -> A. x -. A. x ph ) $=
      ( wal wn cbvalw notbii hbxfrbi ) ACKZLBDKZLCPQABCDEFGHJMNIO $.
  $}

  ${
    $d y ph $.  $d x ps $.  $d x y $.
    hbn1w.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Weak version of ~ hbn1 .  Uses only Tarski's FOL axiom schemes.
       (Contributed by NM, 9-Apr-2017.) $)
    hbn1w $p |- ( -. A. x ph -> A. x -. A. x ph ) $=
      ( wal ax-5 wn hbn1fw ) ABCDACFDGBHCGBDFZCGAHDGJHCGEI $.

    $( Weak version of ~ hba1 .  See comments for ~ ax10w .  Uses only Tarski's
       FOL axiom schemes.  (Contributed by NM, 9-Apr-2017.)  (Proof shortened
       by Wolf Lammen, 10-Oct-2021.) $)
    hba1w $p |- ( A. x ph -> A. x A. x ph ) $=
      ( wal wn wb weq cbvalvw notbii a1i spw con2i hbn1w con1i alimi 3syl ) ACF
      ZSGZCFZGZUBCFSCFUASTBDFZGZCDTUDHCDISUCABCDEJKLZMNTUDCDUEOUBSCSUAABCDEOPQR
      $.

    $( Obsolete proof of ~ hba1w as of 10-Oct-2021.  (Contributed by NM,
       9-Apr-2017.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    hba1wOLD $p |- ( A. x ph -> A. x A. x ph ) $=
      ( wal wn weq wb cbvalvw a1i notbid spw con2i hbn1w con1i alimi 3syl ) ACF
      ZSGZCFZGZUBCFSCFUASTBDFZGZCDCDHZSUCSUCIUEABCDEJKLZMNTUDCDUFOUBSCSUAABCDEO
      PQR $.

    $( Weak version of ~ hbe1 .  See comments for ~ ax10w .  Uses only Tarski's
       FOL axiom schemes.  (Contributed by NM, 19-Apr-2017.) $)
    hbe1w $p |- ( E. x ph -> A. x E. x ph ) $=
      ( wex wn wal df-ex weq notbid hbn1w hbxfrbi ) ACFAGZCHGCACINBGCDCDJABEKLM
      $.
  $}

  ${
    $d x z $.  $d x y $.  $d z ph $.  $d x ps $.
    hbalw.1 $e |- ( x = z -> ( ph <-> ps ) ) $.
    hbalw.2 $e |- ( ph -> A. x ph ) $.
    $( Weak version of ~ hbal .  Uses only Tarski's FOL axiom schemes.  Unlike
       ~ hbal , this theorem requires that ` x ` and ` y ` be distinct, i.e.
       not be bundled.  (Contributed by NM, 19-Apr-2017.) $)
    hbalw $p |- ( A. y ph -> A. x A. y ph ) $=
      ( wal alimi alcomiw syl ) ADHZACHZDHLCHAMDGIABDCEFJK $.
  $}

  ${
    $d x y z $.
    $( A special instance of ~ sp applied to an equality with a dv condition.
       Unlike the more general ~ sp , we can prove this without ~ ax-12 .
       Instance of ~ aeveq .

       The antecedent ` A. x x = y ` with distinct ` x ` and ` y ` is a
       characteristic of a degenerate universe, in which just one object
       exists.  Actually more than one object may still exist, but if so, we
       give up on equality as a discriminating term.

       Separating this degenerate case from a richer universe, where inequality
       is possible, is a common proof idea.  The name of this theorem follows a
       convention, where the condition ` A. x x = y ` is denoted by 'aev', a
       shorthand for 'all equal, with a distinct variable condition'.
       (Contributed by Wolf Lammen, 14-Mar-2021.) $)
    spaev $p |- ( A. x x = y -> x = y ) $=
      ( vz weq equequ1 spw ) ABDCBDACACBEF $.
  $}

  ${
    $d x y t $.  $d y z t $.
    $( Change bound variable in an equality with a dv condition.  Instance of
       ~ aev .  (Contributed by NM, 22-Jul-2015.)  (Revised by BJ,
       18-Jun-2019.) $)
    cbvaev $p |- ( A. x x = y -> A. z z = y ) $=
      ( vt weq wal ax7 cbvalivw syl ) ABEZAFDBEZDFCBEZCFJKADADBGHKLDCDCBGHI $.
  $}

  ${
    $d x y z $.
    $( Lemma for ~ aevlem .  Instance of ~ aev .  (Contributed by NM,
       8-Jul-2016.)  (Proof shortened by Wolf Lammen, 17-Feb-2018.)  Remove
       dependency on ~ ax-12 .  (Revised by Wolf Lammen, 14-Mar-2021.)
       (Revised by BJ, 29-Mar-2021.)  (Proof shortened by Wolf Lammen,
       30-Mar-2021.) $)
    aevlem0 $p |- ( A. x x = y -> A. z z = x ) $=
      ( weq wal spaev alrimiv cbvaev equeuclr al2imi sylc ) ABDZAEZLCECBDZCECAD
      ZCEMLCABFGABCHLNOCACBIJK $.
  $}

  ${
    $d x y u $.  $d z t u $.
    $( Lemma for ~ aev and ~ axc16g .  Change free and bound variables.
       Instance of ~ aev .  (Contributed by NM, 22-Jul-2015.)  (Proof shortened
       by Wolf Lammen, 17-Feb-2018.)  Remove dependency on ~ ax-13 , along an
       idea of BJ. (Revised by Wolf Lammen, 30-Nov-2019.)  (Revised by BJ,
       29-Mar-2021.) $)
    aevlem $p |- ( A. x x = y -> A. z z = t ) $=
      ( vu weq wal cbvaev aevlem0 4syl ) ABFAGEBFEGAEFAGDEFDGCDFCGABEHEBAIAEDHD
      ECIJ $.
  $}

  ${
    $d x y $.  $d u z $.  $d u t $.
    $( The antecedent ` A. x x = y ` with a dv condition (typical of a
       one-object universe) forces equality of everything.  (Contributed by
       Wolf Lammen, 19-Mar-2021.) $)
    aeveq $p |- ( A. x x = y -> z = t ) $=
      ( vu weq wal wex aevlem ax6ev ax7 aleximi mpi ax5e 3syl ) ABFAGECFZEGZCDF
      ZEHZRABECIQEDFZEHSEDJPTREECDKLMRENO $.
  $}

  ${
    $d x y $.  $d v w z $.
    $( A "distinctor elimination" lemma with no restrictions on variables in
       the consequent.  (Contributed by NM, 8-Nov-2006.)  Remove dependency on
       ~ ax-11 .  (Revised by Wolf Lammen, 7-Sep-2018.)  Remove dependency on
       ~ ax-13 , inspired by an idea of BJ. (Revised by Wolf Lammen,
       30-Nov-2019.)  Remove dependency on ~ ax-12 .  (Revised by Wolf Lammen,
       19-Mar-2021.) $)
    aev $p |- ( A. x x = y -> A. z t = u ) $=
      ( vv vw weq wal aevlem aeveq alrimiv syl ) ABHAIFGHFIZEDHZCIABFGJNOCFGEDK
      LM $.
  $}

  ${
    $d x y $.  $d t u $.  $d z v w $.
    $( Generalization of ~ hbaev , proved at no extra cost.  Instance of
       ~ aev2 .  (Contributed by Wolf Lammen, 22-Mar-2021.)  (Revised by BJ,
       29-Mar-2021.) $)
    hbaevg $p |- ( A. x x = y -> A. z A. t t = u ) $=
      ( vv vw weq wal aevlem alrimiv syl ) ABHAIFGHFIZEDHEIZCIABFGJMNCFGEDJKL
      $.
  $}

  ${
    $d x y $.
    $( Version of ~ hbae with a DV condition, requiring fewer axioms.  Instance
       of ~ hbaevg and ~ aev2 .  (Contributed by Wolf Lammen, 22-Mar-2021.) $)
    hbaev $p |- ( A. x x = y -> A. z A. x x = y ) $=
      ( hbaevg ) ABCBAD $.
  $}

  ${
    $v s $.
    $( Define temporary individual variable s. $)
    v.vs $f setvar s $.
    $d x y $.  $d w s $.
    $( A version of ~ aev with two universal quantifiers in the consequent, and
       a generalization of ~ hbaevg .  One can prove similar statements with
       arbitrary numbers of universal quantifiers in the consequent (the series
       begins with ~ aeveq , ~ aev , ~ aev2 ).

       Using ~ aev and ~ alrimiv (as in ~ aev2ALT ), one can actually prove
       (with no more axioms) any scheme of the form ` ( A. x x = y -> ` PHI) ,
       DV ` ( x , y ) ` where PHI involves only setvar variables and the
       connectors ` -> ` , ` <-> ` , ` /\ ` , ` \/ ` , ` T. ` , ` = ` ,
       ` A. ` , ` E. ` , ` E* ` , ` E! ` , ` F/ ` .  An example is given by
       ~ aevdemo .  This list cannot be extended to ` -. ` or ` F. ` since the
       scheme ` A. x x = y ` is consistent with ~ ax-mp , ~ ax-gen , ~ ax-1 --
       ~ ax-13 (as the one-element universe shows).

       (Contributed by BJ, 29-Mar-2021.) $)
    aev2 $p |- ( A. x x = y -> A. z A. t u = v ) $=
      ( vw v.vs weq wal hbaevg aev sylg ) ABIAJGHIGJEDIFJCABCHGKGHFDELM $.

    $d w s z $.
    $( Alternate proof of ~ aev2 , bypassing ~ hbaevg .  (Contributed by BJ,
       23-Mar-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    aev2ALT $p |- ( A. x x = y -> A. z A. t u = v ) $=
      ( vw v.vs weq wal aev alrimiv syl ) ABIAJGHIGJZEDIFJZCJABGHGKNOCGHFDEKLM
      $.
  $}

  ${
    $d x z $.  $d y z $.
    axc11nlemOLD2.1 $e |- ( -. A. y y = x -> ( x = z -> A. y x = z ) ) $.
    $( Lemma for ~ axc11n .  Change bound variable in an equality.  Obsolete as
       of 29-Mar-2021.  Use ~ aev instead.  (Contributed by NM, 8-Jul-2016.)
       (Proof shortened by Wolf Lammen, 17-Feb-2018.)  Restructure to ease
       either bundling, or reducing dependencies on axioms.  (Revised by Wolf
       Lammen, 30-Nov-2019.)  Remove dependency on ~ ax-12 .  (Revised by Wolf
       Lammen, 14-Mar-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    axc11nlemOLD2 $p |- ( A. x x = z -> A. y y = x ) $=
      ( weq wal cbvaev equequ2 biimprd al2imi syl5com wn spaev con1d pm2.61d )
      ACEZAFZPBFZBAEZBFZQBCEZBFRTACBGPUASBPSUAACBHIJKQTRQPTLRACMDKNO $.
  $}

  ${
    $d v w z $.  $d v x y $.
    $( Old proof of ~ aevlem .  Obsolete as of 29-Mar-2021.  (Contributed by
       NM, 22-Jul-2015.)  (Proof shortened by Wolf Lammen, 17-Feb-2018.)
       Remove dependency on ~ ax-13 , along an idea of BJ. (Revised by Wolf
       Lammen, 30-Nov-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    aevlemOLD $p |- ( A. z z = w -> A. y y = x ) $=
      ( vv weq wal cbvaev wn ax5d axc11nlemOLD2 4syl ) CDFCGEDFZEGCEFCGZAEFZAGB
      AFBGZCDEHECDNIMCJKCEAHABEPIOBJKL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Membership predicate
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare the membership predicate symbol. $)
  $c e. $. $( Stylized epsilon $)

  ${
    $v A $.
    $v B $.
    wcel.cA $f class A $.
    wcel.cB $f class B $.
    $( Extend wff definition to include the membership connective between
       classes.

       For a general discussion of the theory of classes, see
       ~ mmset.html#class .

       (The purpose of introducing ` wff A e. B ` here is to allow us to
       express i.e.  "prove" the ~ wel of predicate calculus in terms of the
       ~ wcel of set theory, so that we don't "overload" the ` e. ` connective
       with two syntax definitions.  This is done to prevent ambiguity that
       would complicate some Metamath parsers.  The class variables ` A ` and
       ` B ` are introduced temporarily for the purpose of this definition but
       otherwise not used in predicate calculus.  See ~ df-clab for more
       information on the set theory usage of ~ wcel .) $)
    wcel $a wff A e. B $.
  $}

  $( Extend wff definition to include atomic formulas with the epsilon
     (membership) predicate.  This is read " ` x ` is an element of
     ` y ` ," " ` x ` is a member of ` y ` ," " ` x ` belongs to ` y ` ,"
     or " ` y ` contains ` x ` ."  Note:  The phrase " ` y ` includes
     ` x ` " means " ` x ` is a subset of ` y ` ;" to use it also for
     ` x e. y ` , as some authors occasionally do, is poor form and causes
     confusion, according to George Boolos (1992 lecture at MIT).

     This syntactic construction introduces a binary non-logical predicate
     symbol ` e. ` (epsilon) into our predicate calculus.  We will eventually
     use it for the membership predicate of set theory, but that is irrelevant
     at this point: the predicate calculus axioms for ` e. ` apply to any
     arbitrary binary predicate symbol.  "Non-logical" means that the predicate
     is presumed to have additional properties beyond the realm of predicate
     calculus, although these additional properties are not specified by
     predicate calculus itself but rather by the axioms of a theory (in our
     case set theory) added to predicate calculus.  "Binary" means that the
     predicate has two arguments.

     (Instead of introducing ~ wel as an axiomatic statement, as was done in an
     older version of this database, we introduce it by "proving" a special
     case of set theory's more general ~ wcel .  This lets us avoid overloading
     the ` e. ` connective, thus preventing ambiguity that would complicate
     certain Metamath parsers.  However, logically ~ wel is considered to be a
     primitive syntax, even though here it is artificially "derived" from
     ~ wcel .  Note:  To see the proof steps of this syntax proof, type "show
     proof wel /all" in the Metamath program.)  (Contributed by NM,
     24-Jan-2006.) $)
  wel $p wff x e. y $=
    ( cv wcel ) ACBCD $.

  $( Register class-to-set promotion and class equality and membership as
     primitive expressions. Although these are actually definitions, the above
     ambiguity prevention necessitates our taking class equality as the
     primitive, instead of set equality. $)
  $( $j primitive 'weq' 'wel'; $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom scheme ax-8 (Left Equality for Binary Predicate)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom of Left Equality for Binary Predicate.  One of the equality and
     substitution axioms for a non-logical predicate in our predicate calculus
     with equality.  It substitutes equal variables into the left-hand side of
     an arbitrary binary predicate ` e. ` , which we will use for the set
     membership relation when set theory is introduced.  This axiom scheme is a
     sub-scheme of Axiom Scheme B8 of system S2 of [Tarski], p. 75, whose
     general form cannot be represented with our notation.  Also appears as
     Axiom scheme C12' in [Megill] p. 448 (p. 16 of the preprint).
     "Non-logical" means that the predicate is not a primitive of predicate
     calculus proper but instead is an extension to it.  "Binary" means that
     the predicate has two arguments.  In a system of predicate calculus with
     equality, like ours, equality is not usually considered to be a
     non-logical predicate.  In systems of predicate calculus without equality,
     it typically would be.

     We prove in ~ ax8 that this axiom can be recovered from its weakened
     version ~ ax8v where ` x ` and ` y ` are assumed to be disjoint variables.
     In particular, the only theorem referencing ~ ax-8 should be ~ ax8v .  See
     the comment of ~ ax8v for more details on these matters.  (Contributed by
     NM, 30-Jun-1993.)  (Revised by BJ, 7-Dec-2020.)  Use ~ ax8 instead.
     (New usage is discouraged.) $)
  ax-8 $a |- ( x = y -> ( x e. z -> y e. z ) ) $.

  ${
    $d x y $.
    $( Weakened version of ~ ax-8 , with a dv condition on ` x , y ` .  This
       should be the only proof referencing ~ ax-8 , and it should be
       referenced only by its two weakened versions ~ ax8v1 and ~ ax8v2 , from
       which ~ ax-8 is then rederived as ~ ax8 , which shows that either ~ ax8v
       or the conjunction of ~ ax8v1 and ~ ax8v2 is sufficient.  (Contributed
       by BJ, 7-Dec-2020.)  Use ~ ax8 instead.  (New usage is discouraged.) $)
    ax8v $p |- ( x = y -> ( x e. z -> y e. z ) ) $=
      ( ax-8 ) ABCD $.
  $}

  ${
    $d x y $.  $d x z $.
    $( First of two weakened versions of ~ ax8v , with an extra dv condition on
       ` x , z ` , see comments there.  (Contributed by BJ, 7-Dec-2020.) $)
    ax8v1 $p |- ( x = y -> ( x e. z -> y e. z ) ) $=
      ( ax8v ) ABCD $.
  $}

  ${
    $d x y $.  $d y z $.
    $( Second of two weakened versions of ~ ax8v , with an extra dv condition
       on ` y , z ` see comments there.  (Contributed by BJ, 7-Dec-2020.) $)
    ax8v2 $p |- ( x = y -> ( x e. z -> y e. z ) ) $=
      ( ax8v ) ABCD $.
  $}

  ${
    $d t x $.  $d t y $.  $d t z $.
    $( Proof of ~ ax-8 from ~ ax8v1 and ~ ax8v2 , proving sufficiency of the
       conjunction of the latter two weakened versions of ~ ax8v , which is
       itself a weakened version of ~ ax-8 .  (Contributed by BJ, 7-Dec-2020.)
       (Proof shortened by Wolf Lammen, 11-Apr-2021.) $)
    ax8 $p |- ( x = y -> ( x e. z -> y e. z ) ) $=
      ( vt weq wa wex wel wi equvinv ax8v2 equcoms ax8v1 sylan9 exlimiv sylbi )
      ABEDAEZDBEZFZDGACHZBCHZIZABDJSUBDQTDCHZRUATUCIADADCKLDBCMNOP $.
  $}

  $( An identity law for the non-logical predicate.  (Contributed by NM,
     30-Jun-1993.) $)
  elequ1 $p |- ( x = y -> ( x e. z <-> y e. z ) ) $=
    ( weq wel ax8 wi equcoms impbid ) ABDACEZBCEZABCFKJGBABACFHI $.

  ${
    $d x z $.  $d y z $.
    $( When the class variables in definition ~ df-clel are replaced with
       setvar variables, this theorem of predicate calculus is the result.
       This theorem provides part of the justification for the consistency of
       that definition, which "overloads" the setvar variables in ~ wel with
       the class variables in ~ wcel .  (Contributed by NM, 28-Jan-2004.)
       Revised to use ~ equsexvw in order to remove dependencies on ~ ax-10 ,
       ~ ax-12 , ~ ax-13 .  Note that there is no DV condition on ` x , y ` ,
       that is, on the variables of the left-hand side.  (Revised by BJ,
       29-Dec-2020.) $)
    cleljust $p |- ( x e. y <-> E. z ( z = x /\ z e. y ) ) $=
      ( weq wel wa wex elequ1 equsexvw bicomi ) CADCBEZFCGABEZKLCACABHIJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom scheme ax-9 (Right Equality for Binary Predicate)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom of Right Equality for Binary Predicate.  One of the equality and
     substitution axioms for a non-logical predicate in our predicate calculus
     with equality.  It substitutes equal variables into the right-hand side of
     an arbitrary binary predicate ` e. ` , which we will use for the set
     membership relation when set theory is introduced.  This axiom scheme is a
     sub-scheme of Axiom Scheme B8 of system S2 of [Tarski], p. 75, whose
     general form cannot be represented with our notation.  Also appears as
     Axiom scheme C13' in [Megill] p. 448 (p. 16 of the preprint).

     We prove in ~ ax9 that this axiom can be recovered from its weakened
     version ~ ax9v where ` x ` and ` y ` are assumed to be disjoint variables.
     In particular, the only theorem referencing ~ ax-9 should be ~ ax9v .  See
     the comment of ~ ax9v for more details on these matters.  (Contributed by
     NM, 21-Jun-1993.)  (Revised by BJ, 7-Dec-2020.)  Use ~ ax9 instead.
     (New usage is discouraged.) $)
  ax-9 $a |- ( x = y -> ( z e. x -> z e. y ) ) $.

  ${
    $d x y $.
    $( Weakened version of ~ ax-9 , with a dv condition on ` x , y ` .  This
       should be the only proof referencing ~ ax-9 , and it should be
       referenced only by its two weakened versions ~ ax9v1 and ~ ax9v2 , from
       which ~ ax-9 is then rederived as ~ ax9 , which shows that either ~ ax9v
       or the conjunction of ~ ax9v1 and ~ ax9v2 is sufficient.  (Contributed
       by BJ, 7-Dec-2020.)  Use ~ ax9 instead.  (New usage is discouraged.) $)
    ax9v $p |- ( x = y -> ( z e. x -> z e. y ) ) $=
      ( ax-9 ) ABCD $.
  $}

  ${
    $d x y $.  $d x z $.
    $( First of two weakened versions of ~ ax9v , with an extra dv condition on
       ` x , z ` , see comments there.  (Contributed by BJ, 7-Dec-2020.) $)
    ax9v1 $p |- ( x = y -> ( z e. x -> z e. y ) ) $=
      ( ax9v ) ABCD $.
  $}

  ${
    $d x y $.  $d y z $.
    $( Second of two weakened versions of ~ ax9v , with an extra dv condition
       on ` y , z ` see comments there.  (Contributed by BJ, 7-Dec-2020.) $)
    ax9v2 $p |- ( x = y -> ( z e. x -> z e. y ) ) $=
      ( ax9v ) ABCD $.
  $}

  ${
    $d t x $.  $d t y $.  $d t z $.
    $( Proof of ~ ax-9 from ~ ax9v1 and ~ ax9v2 , proving sufficiency of the
       conjunction of the latter two weakened versions of ~ ax9v , which is
       itself a weakened version of ~ ax-9 .  (Contributed by BJ, 7-Dec-2020.)
       (Proof shortened by Wolf Lammen, 11-Apr-2021.) $)
    ax9 $p |- ( x = y -> ( z e. x -> z e. y ) ) $=
      ( vt weq wa wex wel wi equvinv ax9v2 equcoms ax9v1 sylan9 exlimiv sylbi )
      ABEDAEZDBEZFZDGCAHZCBHZIZABDJSUBDQTCDHZRUATUCIADADCKLDBCMNOP $.
  $}

  $( An identity law for the non-logical predicate.  (Contributed by NM,
     21-Jun-1993.) $)
  elequ2 $p |- ( x = y -> ( z e. x <-> z e. y ) ) $=
    ( weq wel ax9 wi equcoms impbid ) ABDCAEZCBEZABCFKJGBABACFHI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Logical redundancy of ax-10 , ax-11 , ax-12 , ax-13
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The original axiom schemes of Tarski's predicate calculus are ~ ax-4 ,
  ~ ax-5 , ~ ax6v , ~ ax-7 , ~ ax-8 , and ~ ax-9 , together with rule
  ~ ax-gen .  See ~ mmset.html#compare .  They are given as axiom schemes B4
  through B8 in [KalishMontague] p. 81.  These are shown to be logically
  complete by Theorem 1 of [KalishMontague] p. 85.

  The axiom system of set.mm includes the auxiliary axiom schemes ~ ax-10 ,
  ~ ax-11 , ~ ax-12 , and ~ ax-13 , which are not part of Tarski's axiom
  schemes.  Each object-language instance of them is provable from Tarski's
  axioms, so they are logically redundant.  However, they are conjectured not
  to be provable directly _as schemes_ from Tarski's axiom schemes using only
  Metamath's direct substitution rule.  They are used to make our system
  "metalogically complete" i.e. able to prove directly all possible schemes
  with wff and setvar variables, bundled or not, whose object-language
  instances are valid.  ( ~ ax-12 has been proved to be required; see
  ~ http://us.metamath.org/award2003.html#9a .  Metalogical independence of the
  other three are open problems.)

  (There are additional predicate calculus axiom schemes included in set.mm
  such as ~ ax-c5 , but they can all be proved as theorems from the above.)

  Terminology:  Two setvar (individual) metavariables are "bundled" in an axiom
  or theorem scheme when there is no distinct variable constraint ($d) imposed
  on them.  (The term "bundled" is due to Raph Levien.)  For example, the ` x `
  and ` y ` in ~ ax-6 are bundled, but they are not in ~ ax6v . We also say
  that a scheme is bundled when it has at least one pair of bundled setvar
  variables.  If distinct variable conditions are added to all setvar variable
  pairs in a bundled scheme, we call that the "principal" instance
  of the bundled scheme.  For example, ~ ax6v is the principal instance of
  ~ ax-6 . Whenever a common variable is substituted for two or more bundled
  variables in an axiom or theorem scheme, we call the substitution instance
  "degenerate".  For example, the instance ` -. A. x -. x = x ` of ~ ax-6 is
  degenerate.  An advantage of bundling is ease of use since there are fewer
  distinct variable restrictions ($d) to be concerned with, and theorems
  are more general.  There may be some
  economy in being able to prove facts about principal and degenerate instances
  simultaneously.  A disadvantage is that bundling may present difficulties in
  translations to other proof languages, which typically lack the concept (in
  part because their variables often represent the variables of the
  object language rather than metavariables ranging over them).

  Because Tarski's axiom schemes are logically complete, they can be used to
  prove any object-language instance of ~ ax-10 , ~ ax-11 , ~ ax-12 , and
  ~ ax-13 . "Translating" this to Metamath, it means that Tarski's axioms can
  prove any substitution instance of ~ ax-10 , ~ ax-11 , ~ ax-12 , or ~ ax-13
  in which (1) there are no wff metavariables and (2) all setvar variables
  are mutually distinct i.e. are not bundled.  In effect this is mimicking the
  object language by pretending that each setvar variable is an
  object-language variable.  (There may also be specific instances with wff
  metavariables and/or bundling that are directly provable from Tarski's axiom
  schemes, but it isn't guaranteed.  Whether all of them are possible is part
  of the still open metalogical independence problem for our additional axiom
  schemes.)

  It can be useful to see how this can be done, both to show that our
  additional schemes are valid metatheorems of Tarski's system and to be able
  to translate object-language instances of our proofs into proofs that would
  work with a system using only Tarski's original schemes.  In addition, it may
  (or may not) provide insight into the conjectured metalogical independence of
  our additional schemes.

  The theorem schemes ~ ax10w , ~ ax11w , ~ ax12w , and ~ ax13w are derived
  using only Tarski's axiom schemes, showing that Tarski's schemes can be used
  to derive all substitution instances of ~ ax-10 , ~ ax-11 , ~ ax-12 , and
  ~ ax-13 meeting Conditions (1) and (2).  (The "w" suffix stands for "weak
  version".)  Each hypothesis of ~ ax10w , ~ ax11w , and ~ ax12w is of the form
  ` ( x = y -> ( ph <-> ps ) ) ` where ` ps ` is an auxiliary or "dummy" wff
  metavariable in which ` x ` doesn't occur.  We can show by induction on
  formula length that the hypotheses can be eliminated in all cases meeting
  Conditions (1) and (2).  The example ~ ax12wdemo illustrates the techniques
  (equality theorems and bound variable renaming) used to achieve this.

  We also show the degenerate instances for axioms with bundled variables in
  ~ ax11dgen , ~ ax12dgen , ~ ax13dgen1 , ~ ax13dgen2 , ~ ax13dgen3 , and
  ~ ax13dgen4 . (Their proofs are trivial, but we include them to be thorough.)
  Combining the principal and degenerate cases _outside_ of Metamath, we show
  that the bundled schemes ~ ax-10 , ~ ax-11 , ~ ax-12 , and ~ ax-13 are
  schemes of Tarski's system, meaning that all object-language instances they
  generate are theorems of Tarski's system.

  It is interesting that Tarski used the bundled scheme ~ ax-6 in an older
  system, so it seems the main purpose of his later ~ ax6v was just to show
  that the weaker unbundled form is sufficient rather than an aesthetic
  objection to bundled free and bound variables.  Since we adopt the
  bundled ~ ax-6 as our official axiom, we show that the degenerate
  instance holds in ~ ax6dgen .  (Recall that in set.mm, the only statement
  referencing ~ ax-6 is ~ ax6v .)

  The case of ~ sp is curious:  originally an axiom scheme of Tarski's system,
  it was proved logically redundant by Lemma 9 of [KalishMontague] p. 86.
  However, the proof is by induction on formula length, and the scheme form
  ` A. x ph -> ph ` apparently cannot be proved directly from Tarski's other
  axiom schemes.  The best we can do seems to be ~ spw , again requiring
  substitution instances of ` ph ` that meet Conditions (1) and (2) above.
  Note that our direct proof ~ sp requires ~ ax-12 , which is not part of
  Tarski's system.

$)

  $( Tarski's system uses the weaker ~ ax6v instead of the bundled ~ ax-6 , so
     here we show that the degenerate case of ~ ax-6 can be derived.  Even
     though ~ ax-6 is in the list of axioms used, recall that in set.mm, the
     only statement referencing ~ ax-6 is ~ ax6v .  We later rederive from
     ~ ax6v the bundled form as ~ ax6 with the help of the auxiliary axiom
     schemes.  (Contributed by NM, 23-Apr-2017.) $)
  ax6dgen $p |- -. A. x -. x = x $=
    ( weq wn wal equid notnoti spfalw mt2 ) AABZCZADIAEZJAIKFGH $.

  ${
    $d y ph $.  $d x ps $.  $d x y $.
    ax10w.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Weak version of ~ ax-10 from which we can prove any ~ ax-10 instance not
       involving wff variables or bundling.  Uses only Tarski's FOL axiom
       schemes.  It is an alias of ~ hbn1w introduced for labeling consistency.
       (Contributed by NM, 9-Apr-2017.)  Use ~ hbn1w instead.
       (New usage is discouraged.) $)
    ax10w $p |- ( -. A. x ph -> A. x -. A. x ph ) $=
      ( hbn1w ) ABCDEF $.
  $}

  ${
    $d y z $.  $d x y $.  $d z ph $.  $d y ps $.
    ax11w.1 $e |- ( y = z -> ( ph <-> ps ) ) $.
    $( Weak version of ~ ax-11 from which we can prove any ~ ax-11 instance not
       involving wff variables or bundling.  Uses only Tarski's FOL axiom
       schemes.  Unlike ~ ax-11 , this theorem requires that ` x ` and ` y ` be
       distinct i.e. are not bundled.  It is an alias of ~ alcomiw introduced
       for labeling consistency.  (Contributed by NM, 10-Apr-2017.)  Use
       ~ alcomiw instead.  (New usage is discouraged.) $)
    ax11w $p |- ( A. x A. y ph -> A. y A. x ph ) $=
      ( alcomiw ) ABCDEFG $.
  $}

  $( Degenerate instance of ~ ax-11 where bundled variables ` x ` and ` y `
     have a common substitution.  Uses only Tarski's FOL axiom schemes.
     (Contributed by NM, 13-Apr-2017.) $)
  ax11dgen $p |- ( A. x A. x ph -> A. x A. x ph ) $=
    ( wal id ) ABCBCD $.

  ${
    $d x ps $.
    ax12wlemw.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Lemma for weak version of ~ ax-12 .  Uses only Tarski's FOL axiom
       schemes.  In some cases, this lemma may lead to shorter proofs than
       ~ ax12w .  (Contributed by NM, 10-Apr-2017.) $)
    ax12wlem $p |- ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) $=
      ( ax-5 ax12i ) ABCDEBCFG $.
  $}

  ${
    $d y z $.  $d x ps $.  $d z ph $.  $d y ch $.
    ax12w.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    ax12w.2 $e |- ( y = z -> ( ph <-> ch ) ) $.
    $( Weak version of ~ ax-12 from which we can prove any ~ ax-12 instance not
       involving wff variables or bundling.  Uses only Tarski's FOL axiom
       schemes.  An instance of the first hypothesis will normally require that
       ` x ` and ` y ` be distinct (unless ` x ` does not occur in ` ph ` ).
       For an example of how the hypotheses can be eliminated when we
       substitute an expression without wff variables for ` ph ` , see
       ~ ax12wdemo .  (Contributed by NM, 10-Apr-2017.) $)
    ax12w $p |- ( x = y -> ( A. y ph -> A. x ( x = y -> ph ) ) ) $=
      ( wal weq wi spw ax12wlem syl5 ) AEIADEJZOAKDIACEFHLABDEGMN $.
  $}

  $( Degenerate instance of ~ ax-12 where bundled variables ` x ` and ` y `
     have a common substitution.  Uses only Tarski's FOL axiom schemes.
     (Contributed by NM, 13-Apr-2017.) $)
  ax12dgen $p |- ( x = x -> ( A. x ph -> A. x ( x = x -> ph ) ) ) $=
    ( wal weq wi ala1 a1i ) ABCBBDZAEBCEHAHBFG $.

  ${
    $d x y z w v $.
    $( Example of an application of ~ ax12w that results in an instance of
       ~ ax-12 for a contrived formula with mixed free and bound variables,
       ` ( x e. y /\ A. x z e. x /\ A. y A. z y e. x ) ` , in place of ` ph ` .
       The proof illustrates bound variable renaming with ~ cbvalvw to obtain
       fresh variables to avoid distinct variable clashes.  Uses only Tarski's
       FOL axiom schemes.  (Contributed by NM, 14-Apr-2017.) $)
    ax12wdemo $p |- ( x = y
              -> ( A. y ( x e. y /\ A. x z e. x /\ A. y A. z y e. x )
     -> A. x ( x = y -> ( x e. y /\ A. x z e. x /\ A. y A. z y e. x ) ) ) ) $=
      ( vw vv wel wal w3a weq elequ1 elequ2 cbvalvw a1i albidv syl5bb 3anbi123d
      wb 3anbi13d ax12w ) ABFZCAFZAGZBAFZCGZBGZHBBFZCDFZDGZEBFZCGZEGZHAEFZUBEAF
      ZCGZEGZHABEABIZTUFUBUHUEUKABBJUBUHQUPUAUGADADCKLMUEUOUPUKUDUNBEBEIZUCUMCB
      EAJNLZUPUNUJEUPUMUICABEKNNOPUQTULUEUOUBBEAKUEUOQUQURMRS $.
  $}

  ${
    $d x y $.  $d x z $.
    $( Weak version (principal instance) of ~ ax-13 .  (Because ` y ` and ` z `
       don't need to be distinct, this actually bundles the principal instance
       and the degenerate instance
       ` ( -. x = y -> ( y = y -> A. x y = y ) ) ` .)  Uses only Tarski's FOL
       axiom schemes.  The proof is trivial but is included to complete the set
       ~ ax10w , ~ ax11w , and ~ ax12w .  (Contributed by NM, 10-Apr-2017.) $)
    ax13w $p |- ( -. x = y -> ( y = z -> A. x y = z ) ) $=
      ( weq wn ax5d ) ABDEBCDAF $.
  $}

  $( Degenerate instance of ~ ax-13 where bundled variables ` x ` and ` y `
     have a common substitution.  Uses only Tarski's FOL axiom schemes.
     (Contributed by NM, 13-Apr-2017.) $)
  ax13dgen1 $p |- ( -. x = x -> ( x = z -> A. x x = z ) ) $=
    ( weq wal wi equid pm2.24i ) AACABCZHADEAFG $.

  $( Degenerate instance of ~ ax-13 where bundled variables ` x ` and ` z `
     have a common substitution.  Uses only Tarski's FOL axiom schemes.
     (Contributed by NM, 13-Apr-2017.) $)
  ax13dgen2 $p |- ( -. x = y -> ( y = x -> A. x y = x ) ) $=
    ( weq wn wal equcomi pm2.21 syl5 ) BACZABCZJDIAEZBAFJKGH $.

  $( Degenerate instance of ~ ax-13 where bundled variables ` y ` and ` z `
     have a common substitution.  Uses only Tarski's FOL axiom schemes.
     (Contributed by NM, 13-Apr-2017.) $)
  ax13dgen3 $p |- ( -. x = y -> ( y = y -> A. x y = y ) ) $=
    ( weq wal wn equid ax-gen 2a1i ) BBCZADABCEIIABFGH $.

  $( Degenerate instance of ~ ax-13 where bundled variables ` x ` , ` y ` , and
     ` z ` have a common substitution.  Uses only Tarski's FOL axiom schemes.
     (Contributed by NM, 13-Apr-2017.)  Reduce axiom usage.  (Revised by Wolf
     Lammen, 10-Oct-2021.) $)
  ax13dgen4 $p |- ( -. x = x -> ( x = x -> A. x x = x ) ) $=
    ( weq wal pm2.21 ) AABZEACD $.

  $( Obsolete proof of ~ ax13dgen4 as of 10-Oct-2021.  (Contributed by NM,
     13-Apr-2017.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  ax13dgen4OLD $p |- ( -. x = x -> ( x = x -> A. x x = x ) ) $=
    ( ax13dgen1 ) AAB $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Predicate calculus with equality:  Auxiliary axiom schemes (4 schemes)
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  In this section we introduce four additional schemes ~ ax-10 , ~ ax-11 ,
  ~ ax-12 , and ~ ax-13 that are not part of Tarski's system but can be proved
  (outside of Metamath) as theorem schemes of Tarski's system.  These are
  needed to give our system the property of "scheme completeness," which
  means that we can prove (with Metamath) all possible theorem schemes
  expressible in our language of wff metavariables ranging over object-language
  wffs, and setvar variables ranging over object-language individual variables.

  To show that these schemes are valid metatheorems of Tarski's system S2,
  above we proved from Tarski's system theorems ~ ax10w , ~ ax11w , ~ ax12w ,
  and ~ ax13w , which show that any object-language instance of these schemes
  (emulated by having no wff metavariables and requiring all setvar variables
  to be mutually distinct) can be proved using only the schemes in Tarski's
  system S2.

  An open problem is to show that these four additional schemes are mutually
  _metalogically_ independent and metalogically independent from Tarski's.  So
  far, independence of ~ ax-12 from all others has been shown, and
  independence of Tarski's ~ ax-6 from all others has been shown; see
  items 9a and 11 on ~ http://us.metamath.org/award2003.html .

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom scheme ax-10 (Quantified Negation)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom of Quantified Negation.  Axiom C5-2 of [Monk2] p. 113.  This axiom
     scheme is logically redundant (see ~ ax10w ) but is used as an auxiliary
     axiom scheme to achieve scheme completeness.  It means that ` x ` is not
     free in ` -. A. x ph ` .  (Contributed by NM, 21-May-2008.)  Use its alias
     ~ hbn1 instead if you must use it.  Any theorem in first order logic (FOL)
     that contains only set variables that are all mutually distinct, and has
     no wff variables, can be proved *without* using ~ ax-10 through ~ ax-13 ,
     by invoking ~ ax10w through ~ ax13w .  We encourage proving theorems
     *without* ~ ax-10 through ~ ax-13 and moving them up to the ~ ax-4 through
     ~ ax-9 section.  (New usage is discouraged.) $)
  ax-10 $a |- ( -. A. x ph -> A. x -. A. x ph ) $.

  $( Alias for ~ ax-10 to be used instead of it.  (Contributed by NM,
     24-Jan-1993.)  (Proof shortened by Wolf Lammen, 18-Aug-2014.) $)
  hbn1 $p |- ( -. A. x ph -> A. x -. A. x ph ) $=
    ( ax-10 ) ABC $.

  $( The setvar ` x ` is not free in ` E. x ph ` .  (Contributed by NM,
     24-Jan-1993.) $)
  hbe1 $p |- ( E. x ph -> A. x E. x ph ) $=
    ( wex wn wal df-ex hbn1 hbxfrbi ) ABCADZBEDBABFIBGH $.

  $( Dual statement of ~ hbe1 .  Modified version of ~ axc7e with a universally
     quantified consequent.  (Contributed by Wolf Lammen, 15-Sep-2021.) $)
  hbe1a $p |- ( E. x A. x ph -> A. x ph ) $=
    ( wal wex wn df-ex hbn1 con1i sylbi ) ABCZBDJEBCZEJJBFJKABGHI $.

  $( One direction of ~ nf5 can be proved with a smaller footprint on axiom
     usage.  (Contributed by Wolf Lammen, 16-Sep-2021.) $)
  nf5-1 $p |- ( A. x ( ph -> A. x ph ) -> F/ x ph ) $=
    ( wal wi wex exim hbe1a syl6 nfd ) AABCZDBCZABKABEJBEJAJBFABGHI $.

  ${
    nf5i.1 $e |- ( ph -> A. x ph ) $.
    $( Deduce that ` x ` is not free in ` ph ` from the definition.
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nf5i $p |- F/ x ph $=
      ( wal wi wnf nf5-1 mpg ) AABDEABFBABGCH $.
  $}

  ${
    $d x ph $.
    nf5dv.1 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Apply the definition of not-free in a context.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) ~ df-nf changed.  (Revised by Wolf Lammen,
       18-Sep-2021.) $)
    nf5dv $p |- ( ph -> F/ x ps ) $=
      ( wal wi wnf alrimiv nf5-1 syl ) ABBCEFZCEBCGAKCDHBCIJ $.
  $}

  ${
    nf5dh.1 $e |- ( ph -> A. x ph ) $.
    nf5dh.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Deduce that ` x ` is not free in ` ps ` in a context.  (Contributed by
       Mario Carneiro, 24-Sep-2016.) ~ df-nf changed.  (Revised by Wolf Lammen,
       11-Oct-2021.) $)
    nf5dh $p |- ( ph -> F/ x ps ) $=
      ( wal wi wnf alrimih nf5-1 syl ) ABBCFGZCFBCHALCDEIBCJK $.
  $}

  $( The setvar ` x ` is not free in ` E. x ph ` .  (Contributed by Mario
     Carneiro, 11-Aug-2016.) $)
  nfe1 $p |- F/ x E. x ph $=
    ( wex hbe1 nf5i ) ABCBABDE $.

  $( The setvar ` x ` is not free in ` A. x ph ` .  (Contributed by Mario
     Carneiro, 11-Aug-2016.) ~ df-nf changed.  (Revised by Wolf Lammen,
     11-Sep-2021.)  Remove dependency on ~ ax-12 .  (Revised by Wolf Lammen,
     12-Oct-2021.) $)
  nfa1 $p |- F/ x A. x ph $=
    ( wal wn wex alex nfe1 nfn nfxfr ) ABCADZBEZDBABFKBJBGHI $.

  $( A convenience theorem particularly designed to remove dependencies on
     ~ ax-11 in conjunction with distinctors.  (Contributed by Wolf Lammen,
     2-Sep-2018.) $)
  nfna1 $p |- F/ x -. A. x ph $=
    ( wal nfa1 nfn ) ABCBABDE $.

  $( Lemma 23 of [Monk2] p. 114.  (Contributed by Mario Carneiro,
     24-Sep-2016.) $)
  nfia1 $p |- F/ x ( A. x ph -> A. x ps ) $=
    ( wal nfa1 nfim ) ACDBCDCACEBCEF $.

  $( The setvar ` x ` is not free in ` F/ x ph ` .  (Contributed by Mario
     Carneiro, 11-Aug-2016.)  Remove dependency on ~ ax-12 .  (Revised by Wolf
     Lammen, 12-Oct-2021.) $)
  nfnf1 $p |- F/ x F/ x ph $=
    ( wnf wex wal wi df-nf nfe1 nfa1 nfim nfxfr ) ABCABDZABEZFBABGLMBABHABIJK
    $.

  $( The analogue in our predicate calculus of axiom (5) of modal logic S5.
     (Contributed by NM, 5-Oct-2005.) $)
  modal-5 $p |- ( -. A. x -. ph -> A. x -. A. x -. ph ) $=
    ( wn hbn1 ) ACBD $.

  $( Obsolete proof of ~ nfe1 as of 6-Oct-2021.  (Contributed by Mario
     Carneiro, 11-Aug-2016.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nfe1OLD $p |- nfOLD x E. x ph $=
    ( wex hbe1 nfiOLD ) ABCBABDE $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom scheme ax-11 (Quantifier Commutation)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom of Quantifier Commutation.  This axiom says universal quantifiers
     can be swapped.  Axiom scheme C6' in [Megill] p. 448 (p. 16 of the
     preprint).  Also appears as Lemma 12 of [Monk2] p. 109 and Axiom C5-3 of
     [Monk2] p. 113.  This axiom scheme is logically redundant (see ~ ax11w )
     but is used as an auxiliary axiom scheme to achieve metalogical
     completeness.  (Contributed by NM, 12-Mar-1993.) $)
  ax-11 $a |- ( A. x A. y ph -> A. y A. x ph ) $.

  ${
    alcoms.1 $e |- ( A. x A. y ph -> ps ) $.
    $( Swap quantifiers in an antecedent.  (Contributed by NM, 11-May-1993.) $)
    alcoms $p |- ( A. y A. x ph -> ps ) $=
      ( wal ax-11 syl ) ACFDFADFCFBADCGEH $.
  $}

  ${
    hbal.1 $e |- ( ph -> A. x ph ) $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` A. y ph ` .
       (Contributed by NM, 12-Mar-1993.) $)
    hbal $p |- ( A. y ph -> A. x A. y ph ) $=
      ( wal alimi ax-11 syl ) ACEZABEZCEIBEAJCDFACBGH $.
  $}

  $( Theorem 19.5 of [Margaris] p. 89.  (Contributed by NM, 30-Jun-1993.) $)
  alcom $p |- ( A. x A. y ph <-> A. y A. x ph ) $=
    ( wal ax-11 impbii ) ACDBDABDCDABCEACBEF $.

  $( Theorem *11.21 in [WhiteheadRussell] p. 160.  (Contributed by Andrew
     Salmon, 24-May-2011.) $)
  alrot3 $p |- ( A. x A. y A. z ph <-> A. y A. z A. x ph ) $=
    ( wal alcom albii bitri ) ADEZCEBEIBEZCEABEDEZCEIBCFJKCABDFGH $.

  $( Rotate four universal quantifiers twice.  (Contributed by NM, 2-Feb-2005.)
     (Proof shortened by Fan Zheng, 6-Jun-2016.) $)
  alrot4 $p |- ( A. x A. y A. z A. w ph <-> A. z A. w A. x A. y ph ) $=
    ( wal alrot3 albii bitri ) AEFDFCFZBFACFZEFDFZBFKBFEFDFJLBACDEGHKBDEGI $.

  $( Lemma 24 of [Monk2] p. 114.  (Contributed by Mario Carneiro, 24-Sep-2016.)
     Remove dependency on ~ ax-12 .  (Revised by Wolf Lammen, 18-Oct-2021.) $)
  nfa2 $p |- F/ x A. y A. x ph $=
    ( wal alcom nfa1 nfxfr ) ABDCDACDZBDBACBEHBFG $.

  ${
    hbald.1 $e |- ( ph -> A. y ph ) $.
    hbald.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hbal .
       (Contributed by NM, 2-Jan-2002.) $)
    hbald $p |- ( ph -> ( A. y ps -> A. x A. y ps ) ) $=
      ( wal alimdh ax-11 syl6 ) ABDGZBCGZDGKCGABLDEFHBDCIJ $.
  $}

  $( Theorem 19.11 of [Margaris] p. 89.  (Contributed by NM, 5-Aug-1993.)
     Remove dependencies on ~ ax-5 , ~ ax-6 , ~ ax-7 , ~ ax-10 , ~ ax-12 .
     (Revised by Wolf Lammen, 8-Jan-2018.)  (Proof shortened by Wolf Lammen,
     22-Aug-2020.) $)
  excom $p |- ( E. x E. y ph <-> E. y E. x ph ) $=
    ( wn wal wex alcom notbii 2exnaln 3bitr4i ) ADZCEBEZDKBECEZDACFBFABFCFLMKBC
    GHABCIACBIJ $.

  $( One direction of Theorem 19.11 of [Margaris] p. 89.  (Contributed by NM,
     5-Aug-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)  Remove
     dependencies on ~ ax-5 , ~ ax-6 , ~ ax-7 , ~ ax-10 , ~ ax-12 .  (Revised
     by Wolf Lammen, 8-Jan-2018.) $)
  excomim $p |- ( E. x E. y ph -> E. y E. x ph ) $=
    ( wex excom biimpi ) ACDBDABDCDABCEF $.

  $( Swap 1st and 3rd existential quantifiers.  (Contributed by NM,
     9-Mar-1995.) $)
  excom13 $p |- ( E. x E. y E. z ph <-> E. z E. y E. x ph ) $=
    ( wex excom exbii 3bitri ) ADEZCEBEIBEZCEABEZDEZCEKCEDEIBCFJLCABDFGKCDFH $.

  $( Rotate existential quantifiers.  (Contributed by NM, 17-Mar-1995.) $)
  exrot3 $p |- ( E. x E. y E. z ph <-> E. y E. z E. x ph ) $=
    ( wex excom13 excom bitri ) ADECEBEABEZCEDEIDECEABCDFIDCGH $.

  $( Rotate existential quantifiers twice.  (Contributed by NM, 9-Mar-1995.) $)
  exrot4 $p |- ( E. x E. y E. z E. w ph <-> E. z E. w E. x E. y ph ) $=
    ( wex excom13 exbii bitri ) AEFDFCFZBFACFZDFEFZBFKBFEFDFJLBACDEGHKBEDGI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom scheme ax-12 (Substitution)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom of Substitution.  One of the 5 equality axioms of predicate
     calculus.  The final consequent ` A. x ( x = y -> ph ) ` is a way of
     expressing " ` y ` substituted for ` x ` in wff ` ph ` " (cf. ~ sb6 ).  It
     is based on Lemma 16 of [Tarski] p. 70 and Axiom C8 of [Monk2] p. 105,
     from which it can be proved by cases.

     The original version of this axiom was ~ ax-c15 and was replaced with this
     shorter ~ ax-12 in Jan. 2007.  The old axiom is proved from this one as
     theorem ~ axc15 .  Conversely, this axiom is proved from ~ ax-c15 as
     theorem ~ ax12 .

     Juha Arpiainen proved the metalogical independence of this axiom (in the
     form of the older axiom ~ ax-c15 ) from the others on 19-Jan-2006.  See
     item 9a at ~ http://us.metamath.org/award2003.html .

     See ~ ax12v and ~ ax12v2 for other equivalents of this axiom that (unlike
     this axiom) have distinct variable restrictions.

     This axiom scheme is logically redundant (see ~ ax12w ) but is used as an
     auxiliary axiom scheme to achieve scheme completeness.  (Contributed by
     NM, 22-Jan-2007.)  (New usage is discouraged.) $)
  ax-12 $a |- ( x = y -> ( A. y ph -> A. x ( x = y -> ph ) ) ) $.

  ${
    $d x y $.  $d y ph $.
    $( This is essentially axiom ~ ax-12 weakened by additional restrictions on
       variables.  Besides ~ axc11r , this theorem should be the only one
       referencing ~ ax-12 directly.

       Both restrictions on variables have their own value.  If for a moment we
       assume ` y ` could be set to ` x ` , then, after elimination of the
       tautology ` x = x ` , immediately we have ` ph -> A. x ph ` for all
       ` ph ` and ` x ` , that is ~ ax-5 , a degenerate result.

       The second restriction is not necessary, but a simplification that makes
       the following interpretation easier to see.  Since ` ph ` textually at
       most depends on ` x ` , we can look at it at some given 'fixed' ` y ` .
       This theorem now states that the truth value of ` ph ` will stay
       constant, as long as we 'vary ` x ` around ` y ` ' only such that
       ` x = y ` still holds.  Or in other words, equality is the finest
       grained logical expression.  If you cannot differ two sets by ` = ` ,
       you won't find a whatever sophisticated expression that does.  One might
       wonder how the described variation of ` x ` is possible at all.  Note
       that Metamath is a text processor that easily sees a difference between
       text chunks ` { x | -. x = x } ` and ` { y | -. y = y } ` .  Our usual
       interpretation is to abstract from textual variations of the same set,
       but we are free to interpret Metamath's formalism differently, and in
       fact let ` x ` run through all textual representations of sets.

       Had we allowed ` ph ` to depend also on ` y ` , this idea is both harder
       to see, and it is less clear that this extra freedom introduces effects
       not covered by other axioms.  (Contributed by Wolf Lammen,
       8-Aug-2020.) $)
    ax12v $p |- ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) $=
      ( wal weq wi ax-5 ax-12 syl5 ) AACDBCEZJAFBDACGABCHI $.
  $}

  ${
    $d x y z $.  $d z ph $.
    $( It is possible to remove any restriction on ` ph ` in ~ ax12v .  Same as
       Axiom C8 of [Monk2] p. 105.  Use ~ ax12v instead when sufficient.
       (Contributed by NM, 5-Aug-1993.)  Removed dependencies on ~ ax-10 and
       ~ ax-13 .  (Revised by Jim Kingdon, 15-Dec-2017.)  (Proof shortened by
       Wolf Lammen, 8-Dec-2019.) $)
    ax12v2 $p |- ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) $=
      ( vz weq wi wal equtrr ax12v imim1d alimdv syl9r syld ax6evr exlimiiv ) C
      DEZBCEZAQAFZBGZFZFDPQBDEZTCDBHZUAAUAAFZBGPSABDIPUCRBPQUAAUBJKLMDCNO $.
  $}

  ${
    $d x y z $.  $d ph z $.
    $( Obsolete proof of ~ ax12v2 as of 24-Mar-2021.  (Contributed by NM,
       5-Aug-1993.)  Removed dependencies on ~ ax-10 and ~ ax-13 .  (Revised by
       Jim Kingdon, 15-Dec-2017.)  (Proof shortened by Wolf Lammen,
       8-Dec-2019.)  (Proof shortened by Wolf Lammen, 7-Mar-2021.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    ax12vOLD $p |- ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) $=
      ( vz weq wi wal equtrr ax-5 ax-12 syl5 imim1d alimdv syld ax6evr exlimiiv
      syl9r ) CDEZBCEZASAFZBGZFZFDRSBDEZUBCDBHZUCAUCAFZBGZRUAAADGUCUFADIABDJKRU
      ETBRSUCAUDLMQNDCOP $.

    $( Obsolete proof of ~ ax12v as of 7-Mar-2021.  (Contributed by NM,
       5-Aug-1993.)  Removed dependencies on ~ ax-10 and ~ ax-13 .  (Revised by
       Jim Kingdon, 15-Dec-2017.)  (Proof shortened by Wolf Lammen,
       8-Dec-2019.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    ax12vOLDOLD $p |- ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) $=
      ( vz weq wi wal equequ2 biimprd ax-5 ax-12 syl5 imim1d alimdv syl9r ax6ev
      syld exlimiiv ) DCEZBCEZATAFZBGZFZFDSTBDEZUCSUDTDCBHIZUDAUDAFZBGZSUBAADGU
      DUGADJABDKLSUFUABSTUDAUEMNOQDCPR $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( If a wff is true, it is true for at least one instance.  Special case of
       Theorem 19.8 of [Margaris] p. 89.  See ~ 19.8v for a version with a dv
       condition requiring fewer axioms.  (Contributed by NM, 9-Jan-1993.)
       Allow a shortening of ~ sp .  (Revised by Wolf Lammen, 13-Jan-2018.)
       (Proof shortened by Wolf Lammen, 8-Dec-2019.) $)
    19.8a $p |- ( ph -> E. x ph ) $=
      ( vy weq wex wi wal ax12v ax6ev exim syl6mpi ax6evr exlimiiv ) BCDZAABEZF
      CNANAFBGNBEOABCHBCINABJKCBLM $.
  $}

  $( Specialization.  A universally quantified wff implies the wff without a
     quantifier Axiom scheme B5 of [Tarski] p. 67 (under his system S2, defined
     in the last paragraph on p. 77).  Also appears as Axiom scheme C5' in
     [Megill] p. 448 (p. 16 of the preprint).  This corresponds to the axiom
     (T) of modal logic.

     For the axiom of specialization presented in many logic textbooks, see
     theorem ~ stdpc4 .

     This theorem shows that our obsolete axiom ~ ax-c5 can be derived from the
     others.  The proof uses ideas from the proof of Lemma 21 of [Monk2]
     p. 114.

     It appears that this scheme cannot be derived directly from Tarski's
     axioms without auxiliary axiom scheme ~ ax-12 .  It is thought the best we
     can do using only Tarski's axioms is ~ spw .  (Contributed by NM,
     21-May-2008.)  (Proof shortened by Scott Fenton, 24-Jan-2011.)  (Proof
     shortened by Wolf Lammen, 13-Jan-2018.) $)
  sp $p |- ( A. x ph -> ph ) $=
    ( wal wn wex alex 19.8a con1i sylbi ) ABCADZBEZDAABFAKJBGHI $.

  ${
    spi.1 $e |- A. x ph $.
    $( Inference rule reversing generalization.  (Contributed by NM,
       5-Aug-1993.) $)
    spi $p |- ph $=
      ( wal sp ax-mp ) ABDACABEF $.
  $}

  ${
    sps.1 $e |- ( ph -> ps ) $.
    $( Generalization of antecedent.  (Contributed by NM, 5-Jan-1993.) $)
    sps $p |- ( A. x ph -> ps ) $=
      ( wal sp syl ) ACEABACFDG $.
  $}

  $( A double specialization (see ~ sp ).  Another double specialization,
     closer to PM*11.1, is ~ 2stdpc4 .  (Contributed by BJ, 15-Sep-2018.) $)
  2sp $p |- ( A. x A. y ph -> ph ) $=
    ( wal sp sps ) ACDABACEF $.

  ${
    spsd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction generalizing antecedent.  (Contributed by NM, 17-Aug-1994.) $)
    spsd $p |- ( ph -> ( A. x ps -> ch ) ) $=
      ( wal sp syl5 ) BDFBACBDGEH $.
  $}

  $( Theorem 19.2 of [Margaris] p. 89, generalized to use two setvar variables.
     Use ~ 19.2 when sufficient.  (Contributed by Mel L. O'Cat,
     31-Mar-2008.) $)
  19.2g $p |- ( A. x ph -> E. y ph ) $=
    ( wex 19.8a sps ) AACDBACEF $.

  ${
    19.21bi.1 $e |- ( ph -> A. x ps ) $.
    $( Inference form of ~ 19.21 and also deduction form of ~ sp .
       (Contributed by NM, 26-May-1993.) $)
    19.21bi $p |- ( ph -> ps ) $=
      ( wal sp syl ) ABCEBDBCFG $.
  $}

  ${
    19.21bbi.1 $e |- ( ph -> A. x A. y ps ) $.
    $( Inference removing double quantifier.  Version of ~ 19.21bi with two
       quanditiers.  (Contributed by NM, 20-Apr-1994.) $)
    19.21bbi $p |- ( ph -> ps ) $=
      ( wal 19.21bi ) ABDABDFCEGG $.
  $}

  ${
    19.23bi.1 $e |- ( E. x ph -> ps ) $.
    $( Inference form of Theorem 19.23 of [Margaris] p. 90, see ~ 19.23 .
       (Contributed by NM, 12-Mar-1993.) $)
    19.23bi $p |- ( ph -> ps ) $=
      ( wex 19.8a syl ) AACEBACFDG $.
  $}

  ${
    nexr.1 $e |- -. E. x ph $.
    $( Inference associated with the contrapositive of ~ 19.8a .  (Contributed
       by Jeff Hankins, 26-Jul-2009.) $)
    nexr $p |- -. ph $=
      ( wex 19.8a mto ) AABDCABEF $.
  $}

  $( Quantified excluded middle (see ~ exmid ).  Also known as the drinker
     paradox (if ` ph ( x ) ` is interpreted as " ` x ` drinks", then this
     theorem tells that there exists a person such that, if this person drinks,
     then everyone drinks).  Exercise 9.2a of Boolos, p. 111, _Computability
     and Logic_.  (Contributed by NM, 10-Dec-2000.) $)
  qexmid $p |- E. x ( ph -> A. x ph ) $=
    ( wal 19.8a 19.35ri ) AABCZBFBDE $.

  $( Consequence of the definition of not-free.  (Contributed by Mario
     Carneiro, 26-Sep-2016.) ~ df-nf changed.  (Revised by Wolf Lammen,
     11-Sep-2021.) $)
  nf5r $p |- ( F/ x ph -> ( ph -> A. x ph ) ) $=
    ( wex wnf wal 19.8a wi df-nf biimpi syl5 ) AABCZABDZABEZABFLKMGABHIJ $.

  ${
    nf5ri.1 $e |- F/ x ph $.
    $( Consequence of the definition of not-free.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    nf5ri $p |- ( ph -> A. x ph ) $=
      ( wnf wal wi nf5r ax-mp ) ABDAABEFCABGH $.
  $}

  ${
    nf5rd.1 $e |- ( ph -> F/ x ps ) $.
    $( Consequence of the definition of not-free in a context.  (Contributed by
       Mario Carneiro, 11-Aug-2016.) $)
    nf5rd $p |- ( ph -> ( ps -> A. x ps ) ) $=
      ( wnf wal wi nf5r syl ) ABCEBBCFGDBCHI $.
  $}

  ${
    nfim1.1 $e |- F/ x ph $.
    nfim1.2 $e |- ( ph -> F/ x ps ) $.
    $( A closed form of ~ nfim .  (Contributed by NM, 2-Jun-1993.)  (Revised by
       Mario Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf Lammen,
       2-Jan-2018.) ~ df-nf changed.  (Revised by Wolf Lammen, 18-Sep-2021.) $)
    nfim1 $p |- F/ x ( ph -> ps ) $=
      ( wal wn wo wi wnf nf3 mpbi nftht sps nfimd pm2.21 alimi syl jaoi ax-mp )
      ACFZAGZCFZHZABIZCJZACJUDDACKLUAUFUCUAABCACMABCJCENOUCUECFUFUBUECABPQUECMR
      ST $.

    $( A closed form of ~ nfan .  (Contributed by Mario Carneiro, 3-Oct-2016.)
       ~ df-nf changed.  (Revised by Wolf Lammen, 18-Sep-2021.) $)
    nfan1 $p |- F/ x ( ph /\ ps ) $=
      ( wa wn wi df-an wnf nfnt syl nfim1 nfn nfxfr ) ABFABGZHZGCABIQCAPCDABCJP
      CJEBCKLMNO $.
  $}

  ${
    19.3.1 $e |- F/ x ph $.
    $( A wff may be quantified with a variable not free in it.  Theorem 19.3 of
       [Margaris] p. 89.  See ~ 19.3v for a version requiring fewer axioms.
       (Contributed by NM, 12-Mar-1993.)  (Revised by Mario Carneiro,
       24-Sep-2016.) $)
    19.3 $p |- ( A. x ph <-> ph ) $=
      ( wal sp nf5ri impbii ) ABDAABEABCFG $.
  $}

  ${
    19.9d.1 $e |- ( ps -> F/ x ph ) $.
    $( A deduction version of one direction of ~ 19.9 .  (Contributed by NM,
       14-May-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)  Revised to
       shorten other proofs.  (Revised by Wolf Lammen, 14-Jul-2020.) ~ df-nf
       changed.  (Revised by Wolf Lammen, 11-Sep-2021.) $)
    19.9d $p |- ( ps -> ( E. x ph -> ph ) ) $=
      ( wex wal wnf wi df-nf sylib sp syl6 ) BACEZACFZABACGMNHDACIJACKL $.
  $}

  $( A closed version of ~ 19.9 .  (Contributed by NM, 13-May-1993.)  (Revised
     by Mario Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf Lammen,
     30-Dec-2017.)  (Proof shortened by Wolf Lammen, 14-Jul-2020.) $)
  19.9t $p |- ( F/ x ph -> ( E. x ph <-> ph ) ) $=
    ( wnf wex id 19.9d 19.8a impbid1 ) ABCZABDAAIBIEFABGH $.

  ${
    19.9.1 $e |- F/ x ph $.
    $( A wff may be existentially quantified with a variable not free in it.
       Theorem 19.9 of [Margaris] p. 89.  See ~ 19.9v for a version requiring
       fewer axioms.  (Contributed by FL, 24-Mar-2007.)  (Revised by Mario
       Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf Lammen, 30-Dec-2017.)
       Revised to shorten other proofs.  (Revised by Wolf Lammen,
       14-Jul-2020.) $)
    19.9 $p |- ( E. x ph <-> ph ) $=
      ( wnf wex wb 19.9t ax-mp ) ABDABEAFCABGH $.
  $}

  $( Closed form of Theorem 19.21 of [Margaris] p. 90, see ~ 19.21 .
     (Contributed by NM, 27-May-1997.)  (Revised by Mario Carneiro,
     24-Sep-2016.)  (Proof shortened by Wolf Lammen, 3-Jan-2018.) ~ df-nf
     changed.  (Revised by Wolf Lammen, 11-Sep-2021.)  (Proof shortened by BJ,
     3-Nov-2021.) $)
  19.21t $p |- ( F/ x ph -> ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) ) $=
    ( wnf wex wal wi 19.38a 19.9t imbi1d bitr3d ) ACDZACEZBCFZGABGCFANGABCHLMAN
    ACIJK $.

  $( Obsolete proof of ~ 19.21t as of 3-Nov-2021.  (Contributed by NM,
     27-May-1997.)  (Revised by Mario Carneiro, 24-Sep-2016.)  (Proof shortened
     by Wolf Lammen, 3-Jan-2018.) ~ df-nf changed.  (Revised by Wolf Lammen,
     11-Sep-2021.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  19.21tOLDOLD $p |-
                  ( F/ x ph -> ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) ) $=
    ( wnf wi wal nf5r alim syl9 wex 19.9t imbi1d 19.38 syl6bir impbid ) ACDZABE
    CFZABCFZEZPAACFQRACGABCHIPSACJZREQPTARACKLABCMNO $.

  ${
    19.21.1 $e |- F/ x ph $.
    $( Theorem 19.21 of [Margaris] p. 90.  The hypothesis can be thought of
       as " ` x ` is not free in ` ph ` ."  See ~ 19.21v for a version
       requiring fewer axioms.  See also ~ 19.21h .  (Contributed by NM,
       14-May-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.) ~ df-nf
       changed.  (Revised by Wolf Lammen, 18-Sep-2021.) $)
    19.21 $p |- ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) $=
      ( wnf wi wal wb 19.21t ax-mp ) ACEABFCGABCGFHDABCIJ $.
  $}

  ${
    stdpc5.1 $e |- F/ x ph $.
    $( An axiom scheme of standard predicate calculus that emulates Axiom 5 of
       [Mendelson] p. 69.  The hypothesis ` F/ x ph ` can be thought of as
       emulating " ` x ` is not free in ` ph ` ."  With this definition, the
       meaning of "not free" is less restrictive than the usual textbook
       definition; for example ` x ` would not (for us) be free in ` x = x ` by
       ~ nfequid .  This theorem scheme can be proved as a metatheorem of
       Mendelson's axiom system, even though it is slightly stronger than his
       Axiom 5.  See ~ stdpc5v for a version requiring fewer axioms.
       (Contributed by NM, 22-Sep-1993.)  (Revised by Mario Carneiro,
       12-Oct-2016.)  (Proof shortened by Wolf Lammen, 1-Jan-2018.)  Remove
       dependency on ~ ax-10 .  (Revised by Wolf Lammen, 4-Jul-2021.)  (Proof
       shortened by Wolf Lammen, 11-Oct-2021.) $)
    stdpc5 $p |- ( A. x ( ph -> ps ) -> ( ph -> A. x ps ) ) $=
      ( wi wal 19.21 biimpi ) ABECFABCFEABCDGH $.

    $( Obsolete proof of ~ stdpc5 as of 11-Oct-2021.  (Contributed by NM,
       22-Sep-1993.)  (Revised by Mario Carneiro, 12-Oct-2016.)  (Proof
       shortened by Wolf Lammen, 1-Jan-2018.)  Remove dependency on ~ ax-10 .
       (Revised by Wolf Lammen, 4-Jul-2021.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    stdpc5OLD $p |- ( A. x ( ph -> ps ) -> ( ph -> A. x ps ) ) $=
      ( wnf wi wal 19.21t biimpd ax-mp ) ACEZABFCGZABCGFZFDKLMABCHIJ $.
  $}

  ${
    19.21-2.1 $e |- F/ x ph $.
    19.21-2.2 $e |- F/ y ph $.
    $( Version of ~ 19.21 with two quantifiers.  (Contributed by NM,
       4-Feb-2005.) $)
    19.21-2 $p |- ( A. x A. y ( ph -> ps ) <-> ( ph -> A. x A. y ps ) ) $=
      ( wi wal 19.21 albii bitri ) ABGDHZCHABDHZGZCHAMCHGLNCABDFIJAMCEIK $.
  $}

  $( Closed form of Theorem 1977.23 of [Margaris] p. 90.  See ~ 19.23 .
     (Contributed by NM, 7-Nov-2005.)  (Proof shortened by Wolf Lammen,
     2-Jan-2018.)  (Proof shortened by Wolf Lammen, 13-Aug-2020.) ~ df-nf
     changed.  (Revised by Wolf Lammen, 11-Sep-2021.) $)
  19.23t $p |- ( F/ x ps -> ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) ) $=
    ( wnf wn wi wal wex wb nfnt 19.21t syl con34b albii eximal 3bitr4g ) BCDZBE
    ZAEZFZCGZRSCGFZABFZCGACHBFQRCDUAUBIBCJRSCKLUCTCABMNABCOP $.

  ${
    19.23.1 $e |- F/ x ps $.
    $( Theorem 19.23 of [Margaris] p. 90.  See ~ 19.23v for a version requiring
       fewer axioms.  (Contributed by NM, 24-Jan-1993.)  (Revised by Mario
       Carneiro, 24-Sep-2016.) $)
    19.23 $p |- ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) $=
      ( wnf wi wal wex wb 19.23t ax-mp ) BCEABFCGACHBFIDABCJK $.
  $}

  ${
    alimd.1 $e |- F/ x ph $.
    alimd.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction form of Theorem 19.20 of [Margaris] p. 90, see ~ alim .
       (Contributed by Mario Carneiro, 24-Sep-2016.) $)
    alimd $p |- ( ph -> ( A. x ps -> A. x ch ) ) $=
      ( nf5ri alimdh ) ABCDADEGFH $.
  $}

  ${
    alrimi.1 $e |- F/ x ph $.
    alrimi.2 $e |- ( ph -> ps ) $.
    $( Inference form of Theorem 19.21 of [Margaris] p. 90, see ~ 19.21 .
       (Contributed by Mario Carneiro, 24-Sep-2016.) $)
    alrimi $p |- ( ph -> A. x ps ) $=
      ( nf5ri alrimih ) ABCACDFEG $.
  $}

  ${
    alrimdd.1 $e |- F/ x ph $.
    alrimdd.2 $e |- ( ph -> F/ x ps ) $.
    alrimdd.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction form of Theorem 19.21 of [Margaris] p. 90, see ~ 19.21 .
       (Contributed by Mario Carneiro, 24-Sep-2016.) $)
    alrimdd $p |- ( ph -> ( ps -> A. x ch ) ) $=
      ( wal nf5rd alimd syld ) ABBDHCDHABDFIABCDEGJK $.
  $}

  ${
    alrimd.1 $e |- F/ x ph $.
    alrimd.2 $e |- F/ x ps $.
    alrimd.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction form of Theorem 19.21 of [Margaris] p. 90, see ~ 19.21 .
       (Contributed by Mario Carneiro, 24-Sep-2016.) $)
    alrimd $p |- ( ph -> ( ps -> A. x ch ) ) $=
      ( wnf a1i alrimdd ) ABCDEBDHAFIGJ $.
  $}

  ${
    eximd.1 $e |- F/ x ph $.
    eximd.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction form of Theorem 19.22 of [Margaris] p. 90, see ~ exim .
       (Contributed by NM, 29-Jun-1993.)  (Revised by Mario Carneiro,
       24-Sep-2016.) $)
    eximd $p |- ( ph -> ( E. x ps -> E. x ch ) ) $=
      ( nf5ri eximdh ) ABCDADEGFH $.
  $}

  ${
    exlimi.1 $e |- F/ x ps $.
    exlimi.2 $e |- ( ph -> ps ) $.
    $( Inference associated with ~ 19.23 .  See ~ exlimiv for a version with a
       dv condition requiring fewer axioms.  (Contributed by NM, 10-Jan-1993.)
       (Revised by Mario Carneiro, 24-Sep-2016.) $)
    exlimi $p |- ( E. x ph -> ps ) $=
      ( wi wex 19.23 mpgbi ) ABFACGBFCABCDHEI $.
  $}

  ${
    exlimd.1 $e |- F/ x ph $.
    exlimd.2 $e |- F/ x ch $.
    exlimd.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction form of Theorem 19.9 of [Margaris] p. 89.  (Contributed by NM,
       23-Jan-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)  (Proof
       shortened by Wolf Lammen, 12-Jan-2018.) $)
    exlimd $p |- ( ph -> ( E. x ps -> ch ) ) $=
      ( wex eximd 19.9 syl6ib ) ABDHCDHCABCDEGICDFJK $.
  $}

  ${
    exlimdd.1 $e |- F/ x ph $.
    exlimdd.2 $e |- F/ x ch $.
    exlimdd.3 $e |- ( ph -> E. x ps ) $.
    exlimdd.4 $e |- ( ( ph /\ ps ) -> ch ) $.
    $( Existential elimination rule of natural deduction.  (Contributed by
       Mario Carneiro, 9-Feb-2017.) $)
    exlimdd $p |- ( ph -> ch ) $=
      ( wex ex exlimd mpd ) ABDICGABCDEFABCHJKL $.
  $}

  ${
    nexd.1 $e |- F/ x ph $.
    nexd.2 $e |- ( ph -> -. ps ) $.
    $( Deduction for generalization rule for negated wff.  (Contributed by
       Mario Carneiro, 24-Sep-2016.) $)
    nexd $p |- ( ph -> -. E. x ps ) $=
      ( nf5ri nexdh ) ABCACDFEG $.
  $}

  ${
    albid.1 $e |- F/ x ph $.
    albid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for universal quantifier (deduction rule).
       (Contributed by Mario Carneiro, 24-Sep-2016.) $)
    albid $p |- ( ph -> ( A. x ps <-> A. x ch ) ) $=
      ( nf5ri albidh ) ABCDADEGFH $.

    $( Formula-building rule for existential quantifier (deduction rule).
       (Contributed by Mario Carneiro, 24-Sep-2016.) $)
    exbid $p |- ( ph -> ( E. x ps <-> E. x ch ) ) $=
      ( nf5ri exbidh ) ABCDADEGFH $.

    $( An equality theorem for effectively not free.  (Contributed by Mario
       Carneiro, 4-Oct-2016.) ~ df-nf changed.  (Revised by Wolf Lammen,
       18-Sep-2021.) $)
    nfbidf $p |- ( ph -> ( F/ x ps <-> F/ x ch ) ) $=
      ( wex wal wi wnf exbid albid imbi12d df-nf 3bitr4g ) ABDGZBDHZICDGZCDHZIB
      DJCDJAPRQSABCDEFKABCDEFLMBDNCDNO $.
  $}

  ${
    19.16.1 $e |- F/ x ph $.
    $( Theorem 19.16 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
    19.16 $p |- ( A. x ( ph <-> ps ) -> ( ph <-> A. x ps ) ) $=
      ( wal wb 19.3 albi syl5bbr ) AACEABFCEBCEACDGABCHI $.
  $}

  ${
    19.17.1 $e |- F/ x ps $.
    $( Theorem 19.17 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
    19.17 $p |- ( A. x ( ph <-> ps ) -> ( A. x ph <-> ps ) ) $=
      ( wb wal albi 19.3 syl6bb ) ABECFACFBCFBABCGBCDHI $.
  $}

  ${
    19.27.1 $e |- F/ x ps $.
    $( Theorem 19.27 of [Margaris] p. 90.  See ~ 19.27v for a version requiring
       fewer axioms.  (Contributed by NM, 21-Jun-1993.) $)
    19.27 $p |- ( A. x ( ph /\ ps ) <-> ( A. x ph /\ ps ) ) $=
      ( wa wal 19.26 19.3 anbi2i bitri ) ABECFACFZBCFZEKBEABCGLBKBCDHIJ $.
  $}

  ${
    19.28.1 $e |- F/ x ph $.
    $( Theorem 19.28 of [Margaris] p. 90.  See ~ 19.28v for a version requiring
       fewer axioms.  (Contributed by NM, 1-Aug-1993.) $)
    19.28 $p |- ( A. x ( ph /\ ps ) <-> ( ph /\ A. x ps ) ) $=
      ( wa wal 19.26 19.3 anbi1i bitri ) ABECFACFZBCFZEALEABCGKALACDHIJ $.
  $}

  ${
    19.19.1 $e |- F/ x ph $.
    $( Theorem 19.19 of [Margaris] p. 90.  (Contributed by NM, 12-Mar-1993.) $)
    19.19 $p |- ( A. x ( ph <-> ps ) -> ( ph <-> E. x ps ) ) $=
      ( wex wb wal 19.9 exbi syl5bbr ) AACEABFCGBCEACDHABCIJ $.
  $}

  ${
    19.36.1 $e |- F/ x ps $.
    $( Theorem 19.36 of [Margaris] p. 90.  See ~ 19.36v for a version requiring
       fewer axioms.  (Contributed by NM, 24-Jun-1993.) $)
    19.36 $p |- ( E. x ( ph -> ps ) <-> ( A. x ph -> ps ) ) $=
      ( wi wex wal 19.35 19.9 imbi2i bitri ) ABECFACGZBCFZELBEABCHMBLBCDIJK $.

    19.36i.2 $e |- E. x ( ph -> ps ) $.
    $( Inference associated with ~ 19.36 .  See ~ 19.36iv for a version
       requiring fewer axioms.  (Contributed by NM, 24-Jun-1993.) $)
    19.36i $p |- ( A. x ph -> ps ) $=
      ( wi wex wal 19.36 mpbi ) ABFCGACHBFEABCDIJ $.
  $}

  ${
    19.37.1 $e |- F/ x ph $.
    $( Theorem 19.37 of [Margaris] p. 90.  See ~ 19.37v for a version requiring
       fewer axioms.  (Contributed by NM, 21-Jun-1993.) $)
    19.37 $p |- ( E. x ( ph -> ps ) <-> ( ph -> E. x ps ) ) $=
      ( wi wex wal 19.35 19.3 imbi1i bitri ) ABECFACGZBCFZEAMEABCHLAMACDIJK $.
  $}

  ${
    19.32.1 $e |- F/ x ph $.
    $( Theorem 19.32 of [Margaris] p. 90.  See ~ 19.32v for a version requiring
       fewer axioms.  (Contributed by NM, 14-May-1993.)  (Revised by Mario
       Carneiro, 24-Sep-2016.) $)
    19.32 $p |- ( A. x ( ph \/ ps ) <-> ( ph \/ A. x ps ) ) $=
      ( wn wi wal wo nfn 19.21 df-or albii 3bitr4i ) AEZBFZCGNBCGZFABHZCGAPHNBC
      ACDIJQOCABKLAPKM $.
  $}

  ${
    19.31.1 $e |- F/ x ps $.
    $( Theorem 19.31 of [Margaris] p. 90.  See ~ 19.31v for a version requiring
       fewer axioms.  (Contributed by NM, 14-May-1993.) $)
    19.31 $p |- ( A. x ( ph \/ ps ) <-> ( A. x ph \/ ps ) ) $=
      ( wo wal 19.32 orcom albii 3bitr4i ) BAEZCFBACFZEABEZCFLBEBACDGMKCABHILBH
      J $.
  $}

  ${
    19.41.1 $e |- F/ x ps $.
    $( Theorem 19.41 of [Margaris] p. 90.  See ~ 19.41v for a version requiring
       fewer axioms.  (Contributed by NM, 14-May-1993.)  (Proof shortened by
       Andrew Salmon, 25-May-2011.)  (Proof shortened by Wolf Lammen,
       12-Jan-2018.) $)
    19.41 $p |- ( E. x ( ph /\ ps ) <-> ( E. x ph /\ ps ) ) $=
      ( wa wex 19.40 19.9 anbi2i sylib pm3.21 eximd impcom impbii ) ABEZCFZACFZ
      BEZPQBCFZERABCGSBQBCDHIJBQPBAOCDBAKLMN $.
  $}

  ${
    19.42.1 $e |- F/ x ph $.
    $( One direction of ~ 19.42 .  (Contributed by Wolf Lammen,
       10-Jul-2021.) $)
    19.42-1 $p |- ( ( ph /\ E. x ps ) -> E. x ( ph /\ ps ) ) $=
      ( wex wa pm3.2 eximd imp ) ABCEABFZCEABJCDABGHI $.

    $( Theorem 19.42 of [Margaris] p. 90.  See ~ 19.42v for a version requiring
       fewer axioms.  See ~ exan for an immediate version.  (Contributed by NM,
       18-Aug-1993.) $)
    19.42 $p |- ( E. x ( ph /\ ps ) <-> ( ph /\ E. x ps ) ) $=
      ( wa wex 19.41 exancom ancom 3bitr4i ) BAECFBCFZAEABECFAKEBACDGABCHAKIJ
      $.
  $}

  ${
    19.44.1 $e |- F/ x ps $.
    $( Theorem 19.44 of [Margaris] p. 90.  See ~ 19.44v for a version requiring
       fewer axioms.  (Contributed by NM, 12-Mar-1993.) $)
    19.44 $p |- ( E. x ( ph \/ ps ) <-> ( E. x ph \/ ps ) ) $=
      ( wo wex 19.43 19.9 orbi2i bitri ) ABECFACFZBCFZEKBEABCGLBKBCDHIJ $.
  $}

  ${
    19.45.1 $e |- F/ x ph $.
    $( Theorem 19.45 of [Margaris] p. 90.  See ~ 19.45v for a version requiring
       fewer axioms.  (Contributed by NM, 12-Mar-1993.) $)
    19.45 $p |- ( E. x ( ph \/ ps ) <-> ( ph \/ E. x ps ) ) $=
      ( wo wex 19.43 19.9 orbi1i bitri ) ABECFACFZBCFZEALEABCGKALACDHIJ $.
  $}

  ${
    $d x y $.
    equsalv.nf $e |- F/ x ps $.
    equsalv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Version of ~ equsal with a dv condition, which does not require
       ~ ax-13 .  See ~ equsalvw for a version with two dv conditions requiring
       fewer axioms.  See also the dual form ~ equsexv .  (Contributed by BJ,
       31-May-2019.) $)
    equsalv $p |- ( A. x ( x = y -> ph ) <-> ps ) $=
      ( weq wi wal wex 19.23 pm5.74i albii ax6ev a1bi 3bitr4i ) CDGZBHZCIQCJZBH
      QAHZCIBQBCEKTRCQABFLMSBCDNOP $.

    $( Version of ~ equsex with a dv condition, which does not require
       ~ ax-13 .  See ~ equsexvw for a version with two dv conditions requiring
       fewer axioms.  See also the dual form ~ equsalv .  (Contributed by BJ,
       31-May-2019.) $)
    equsexv $p |- ( E. x ( x = y /\ ph ) <-> ps ) $=
      ( weq wa wex pm5.32i exbii ax6ev 19.41 mpbiran bitri ) CDGZAHZCIPBHZCIZBQ
      RCPABFJKSPCIBCDLPBCEMNO $.
  $}

  $( An equality theorem for substitution.  (Contributed by NM,
     16-May-1993.) $)
  sbequ1 $p |- ( x = y -> ( ph -> [ y / x ] ph ) ) $=
    ( weq wsb wa wi wex pm3.4 19.8a df-sb sylanbrc ex ) BCDZAABCEZNAFZNAGPBHONA
    IPBJABCKLM $.

  $( An equality theorem for substitution.  (Contributed by NM,
     14-May-1993.) $)
  sbequ12 $p |- ( x = y -> ( ph <-> [ y / x ] ph ) ) $=
    ( weq wsb sbequ1 sbequ2 impbid ) BCDAABCEABCFABCGH $.

  $( An equality theorem for substitution.  (Contributed by NM, 6-Oct-2004.)
     (Proof shortened by Andrew Salmon, 21-Jun-2011.) $)
  sbequ12r $p |- ( x = y -> ( [ x / y ] ph <-> ph ) ) $=
    ( wsb wb weq sbequ12 bicomd equcoms ) ACBDZAECBCBFAJACBGHI $.

  $( An equality theorem for substitution.  (Contributed by NM, 2-Jun-1993.)
     (Proof shortened by Wolf Lammen, 23-Jun-2019.) $)
  sbequ12a $p |- ( x = y -> ( [ y / x ] ph <-> [ x / y ] ph ) ) $=
    ( weq wsb sbequ12r sbequ12 bitr2d ) BCDACBEAABCEABCFABCGH $.

  $( An identity theorem for substitution.  Remark 9.1 in [Megill] p. 447 (p.
     15 of the preprint).  (Contributed by NM, 26-May-1993.)  (Proof shortened
     by Wolf Lammen, 30-Sep-2018.) $)
  sbid $p |- ( [ x / x ] ph <-> ph ) $=
    ( weq wsb wb equid sbequ12r ax-mp ) BBCABBDAEBFABBGH $.

  ${
    $d x y $.
    spimv1.nf $e |- F/ x ps $.
    spimv1.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Version of ~ spim with a dv condition, which does not require ~ ax-13 .
       See ~ spimvw for a version with two dv conditions, requiring fewer
       axioms, and ~ spimv for another variant.  (Contributed by BJ,
       31-May-2019.) $)
    spimv1 $p |- ( A. x ph -> ps ) $=
      ( weq wi ax6ev eximii 19.36i ) ABCECDGABHCCDIFJK $.
  $}

  $( Alternate definition of ~ df-nf .  (Contributed by Mario Carneiro,
     11-Aug-2016.) ~ df-nf changed.  (Revised by Wolf Lammen, 11-Sep-2021.) $)
  nf5 $p |- ( F/ x ph <-> A. x ( ph -> A. x ph ) ) $=
    ( wnf wex wal wi df-nf nfa1 19.23 bitr4i ) ABCABDABEZFAKFBEABGAKBABHIJ $.

  $( An alternate definition of ~ df-nf .  (Contributed by Mario Carneiro,
     24-Sep-2016.) $)
  nf6 $p |- ( F/ x ph <-> A. x ( E. x ph -> ph ) ) $=
    ( wnf wex wal wi df-nf nfe1 19.21 bitr4i ) ABCABDZABEFKAFBEABGKABABHIJ $.

  ${
    nf5d.1 $e |- F/ x ph $.
    nf5d.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Deduce that ` x ` is not free in ` ps ` in a context.  (Contributed by
       Mario Carneiro, 24-Sep-2016.) $)
    nf5d $p |- ( ph -> F/ x ps ) $=
      ( wal wi wnf alrimi nf5-1 syl ) ABBCFGZCFBCHALCDEIBCJK $.
  $}

  ${
    nf5di.1 $e |- ( ph -> F/ x ph ) $.
    $( Since the converse holds by ~ a1i , this inference shows that we can
       represent a not-free hypothesis with either ` F/ x ph ` (inference form)
       or ` ( ph -> F/ x ph ) ` (deduction form).  (Contributed by NM,
       17-Aug-2018.)  (Proof shortened by Wolf Lammen, 10-Jul-2019.) $)
    nf5di $p |- F/ x ph $=
      ( wal nf5rd pm2.43i nf5i ) ABAABDAABCEFG $.
  $}

  ${
    19.9h.1 $e |- ( ph -> A. x ph ) $.
    $( A wff may be existentially quantified with a variable not free in it.
       Theorem 19.9 of [Margaris] p. 89.  (Contributed by FL, 24-Mar-2007.)
       (Proof shortened by Wolf Lammen, 5-Jan-2018.)  (Proof shortened by Wolf
       Lammen, 14-Jul-2020.) $)
    19.9h $p |- ( E. x ph <-> ph ) $=
      ( nf5i 19.9 ) ABABCDE $.
  $}

  ${
    19.21h.1 $e |- ( ph -> A. x ph ) $.
    $( Theorem 19.21 of [Margaris] p. 90.  The hypothesis can be thought of
       as " ` x ` is not free in ` ph ` ."  See also ~ 19.21 and ~ 19.21v .
       (Contributed by NM, 1-Aug-2017.)  (Proof shortened by Wolf Lammen,
       1-Jan-2018.) $)
    19.21h $p |- ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) $=
      ( nf5i 19.21 ) ABCACDEF $.
  $}

  ${
    19.23h.1 $e |- ( ps -> A. x ps ) $.
    $( Theorem 19.23 of [Margaris] p. 90.  See ~ 19.23 .  (Contributed by NM,
       24-Jan-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)  (Proof
       shortened by Wolf Lammen, 1-Jan-2018.) $)
    19.23h $p |- ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) $=
      ( nf5i 19.23 ) ABCBCDEF $.
  $}

  ${
    $d x y $.
    equsalhw.1 $e |- ( ps -> A. x ps ) $.
    equsalhw.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Weaker version of ~ equsalh with a dv condition which does not require
       ~ ax-13 .  (Contributed by NM, 29-Nov-2015.)  (Proof shortened by Wolf
       Lammen, 28-Dec-2017.) $)
    equsalhw $p |- ( A. x ( x = y -> ph ) <-> ps ) $=
      ( weq wi wal wex 19.23h pm5.74i albii ax6ev a1bi 3bitr4i ) CDGZBHZCIQCJZB
      HQAHZCIBQBCEKTRCQABFLMSBCDNOP $.

    $( Version of ~ equsexh with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 31-May-2019.) $)
    equsexhv $p |- ( E. x ( x = y /\ ph ) <-> ps ) $=
      ( nf5i equsexv ) ABCDBCEGFH $.
  $}

  ${
    hbim1.1 $e |- ( ph -> A. x ph ) $.
    hbim1.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( A closed form of ~ hbim .  (Contributed by NM, 2-Jun-1993.) $)
    hbim1 $p |- ( ( ph -> ps ) -> A. x ( ph -> ps ) ) $=
      ( wi wal a2i 19.21h sylibr ) ABFZABCGZFKCGABLEHABCDIJ $.
  $}

  ${
    hbimd.1 $e |- ( ph -> A. x ph ) $.
    hbimd.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    hbimd.3 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hbim .
       (Contributed by NM, 14-May-1993.)  (Proof shortened by Wolf Lammen,
       3-Jan-2018.) $)
    hbimd $p |- ( ph -> ( ( ps -> ch ) -> A. x ( ps -> ch ) ) ) $=
      ( wi nf5dh nfimd nf5rd ) ABCHDABCDABDEFIACDEGIJK $.
  $}

  ${
    hbim.1 $e |- ( ph -> A. x ph ) $.
    hbim.2 $e |- ( ps -> A. x ps ) $.
    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph -> ps ) ` .  (Contributed by NM, 24-Jan-1993.)  (Proof shortened
       by Mel L. O'Cat, 3-Mar-2008.)  (Proof shortened by Wolf Lammen,
       1-Jan-2018.) $)
    hbim $p |- ( ( ph -> ps ) -> A. x ( ph -> ps ) ) $=
      ( wal wi a1i hbim1 ) ABCDBBCFGAEHI $.
  $}

  ${
    hb.1 $e |- ( ph -> A. x ph ) $.
    hb.2 $e |- ( ps -> A. x ps ) $.
    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph /\ ps ) ` .  (Contributed by NM, 14-May-1993.)  (Proof shortened
       by Wolf Lammen, 2-Jan-2018.) $)
    hban $p |- ( ( ph /\ ps ) -> A. x ( ph /\ ps ) ) $=
      ( wa nf5i nfan nf5ri ) ABFCABCACDGBCEGHI $.
    hb.3 $e |- ( ch -> A. x ch ) $.
    $( If ` x ` is not free in ` ph ` , ` ps ` , and ` ch ` , it is not free in
       ` ( ph /\ ps /\ ch ) ` .  (Contributed by NM, 14-Sep-2003.)  (Proof
       shortened by Wolf Lammen, 2-Jan-2018.) $)
    hb3an $p |- ( ( ph /\ ps /\ ch ) -> A. x ( ph /\ ps /\ ch ) ) $=
      ( w3a nf5i nf3an nf5ri ) ABCHDABCDADEIBDFICDGIJK $.
  $}

  $( Show that the original axiom ~ ax-c4 can be derived from ~ ax-4
     ( ~ alim ), ~ ax-10 ( ~ hbn1 ), ~ sp and propositional calculus.  See
     ~ ax4fromc4 for the rederivation of ~ ax-4 from ~ ax-c4 .

     Part of the proof is based on the proof of Lemma 22 of [Monk2] p. 114.
     (Contributed by NM, 21-May-2008.)  (Proof modification is discouraged.) $)
  axc4 $p |- ( A. x ( A. x ph -> ps ) -> ( A. x ph -> A. x ps ) ) $=
    ( wal wi wn sp con2i hbn1 con1i alimi 3syl alim syl5 ) ACDZOCDZOBECDBCDOOFZ
    CDZFZSCDPROQCGHQCISOCORACIJKLOBCMN $.

  ${
    axc4i.1 $e |- ( A. x ph -> ps ) $.
    $( Inference version of ~ axc4 .  (Contributed by NM, 3-Jan-1993.) $)
    axc4i $p |- ( A. x ph -> A. x ps ) $=
      ( wal nfa1 alrimi ) ACEBCACFDG $.
  $}

  $( Show that the original axiom ~ ax-c7 can be derived from ~ ax-10
     ( ~ hbn1 ) , ~ sp and propositional calculus.  See ~ ax10fromc7 for the
     rederivation of ~ ax-10 from ~ ax-c7 .

     Normally, ~ axc7 should be used rather than ~ ax-c7 , except by theorems
     specifically studying the latter's properties.  (Contributed by NM,
     21-May-2008.) $)
  axc7 $p |- ( -. A. x -. A. x ph -> ph ) $=
    ( wal wn sp hbn1 nsyl4 ) ABCZAHDBCABEABFG $.

  $( Abbreviated version of ~ axc7 using the existential quantifier.
     (Contributed by NM, 5-Aug-1993.) $)
  axc7e $p |- ( E. x A. x ph -> ph ) $=
    ( wal wex hbe1a sp syl ) ABCZBDHAABEABFG $.

  ${
    $d w x y $.  $d w z $.  $d w ph $.
    $( Generalization of ~ axc16 .  Use the latter when sufficient.  This proof
       only requires, on top of { ~ ax-1 -- ~ ax-7 }, theorem ~ ax12v .
       (Contributed by NM, 15-May-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.)  (Proof shortened by Wolf Lammen, 18-Feb-2018.)  Remove
       dependency on ~ ax-13 , along an idea of BJ. (Revised by Wolf Lammen,
       30-Nov-2019.)  (Revised by BJ, 7-Jul-2021.)  Shorten ~ axc11rv .
       (Revised by Wolf Lammen, 11-Oct-2021.) $)
    axc16g $p |- ( A. x x = y -> ( ph -> A. z ph ) ) $=
      ( vw weq wal wi aevlem ax12v sps pm2.27 al2imi syld syl ) BCFBGDEFZDGZAAD
      GZHBCDEIQAPAHZDGZRPATHDADEJKPSADPALMNO $.
  $}

  ${
    $d x y $.
    $( Proof of older axiom ~ ax-c16 .  (Contributed by NM, 8-Nov-2006.)
       (Revised by NM, 22-Sep-2017.) $)
    axc16 $p |- ( A. x x = y -> ( ph -> A. x ph ) ) $=
      ( axc16g ) ABCBD $.
  $}

  ${
    $d x y $.
    $( Biconditional strengthening of ~ axc16g .  (Contributed by NM,
       15-May-1993.) $)
    axc16gb $p |- ( A. x x = y -> ( ph <-> A. z ph ) ) $=
      ( weq wal axc16g sp impbid1 ) BCEBFAADFABCDGADHI $.
  $}

  ${
    $d x y $.
    $( If ~ dtru is false, then there is only one element in the universe, so
       everything satisfies ` F/ ` .  (Contributed by Mario Carneiro,
       7-Oct-2016.)  Remove dependency on ~ ax-11 .  (Revised by Wolf Lammen,
       9-Sep-2018.)  (Proof shortened by BJ, 14-Jun-2019.)  Remove dependency
       on ~ ax-10 .  (Revised by Wolf lammen, 12-Oct-2021.) $)
    axc16nf $p |- ( A. x x = y -> F/ z ph ) $=
      ( weq wal wex wn df-ex axc16g con1d syl5bi syld nfd ) BCEBFZADOADGZAADFPA
      HZDFZHOAADIOARQBCDJKLABCDJMN $.
  $}

  ${
    $d x y $.
    $( Version of ~ axc11 with a disjoint variable condition on ` x ` and
       ` y ` , which is provable, on top of { ~ ax-1 -- ~ ax-7 }, from ~ ax12v
       (contrary to ~ axc11 which seems to require the full ~ ax-12 and
       ~ ax-13 ).  (Contributed by BJ, 6-Jul-2021.)  (Proof shortened by Wolf
       Lammen, 11-Oct-2021.) $)
    axc11v $p |- ( A. x x = y -> ( A. x ph -> A. y ph ) ) $=
      ( weq wal axc16g spsd ) BCDBEAACEBABCCFG $.

    $( Version of ~ axc11r with a disjoint variable condition on ` x ` and
       ` y ` , which is provable, on top of { ~ ax-1 -- ~ ax-7 }, from ~ ax12v
       (contrary to ~ axc11 which seems to require the full ~ ax-12 ).
       (Contributed by BJ, 6-Jul-2021.)  (Proof shortened by Wolf Lammen,
       11-Oct-2021.) $)
    axc11rv $p |- ( A. x x = y -> ( A. y ph -> A. x ph ) ) $=
      ( weq wal axc16g spsd ) BCDBEAABECABCBFG $.

    $( Obsolete proof of ~ axc11rv as of 11-Oct-2021.  (Contributed by BJ,
       6-Jul-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    axc11rvOLD $p |- ( A. x x = y -> ( A. y ph -> A. x ph ) ) $=
      ( weq wal wi ax12v2 sps pm2.27 al2imi syld spsd ) BCDZBEZAABEZCNAMAFZBEZO
      MAQFBABCGHMPABMAIJKL $.

    $( Obsolete proof of ~ axc11v as of 11-Oct-2021.  (Contributed by BJ,
       6-Jul-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    axc11vOLD $p |- ( A. x x = y -> ( A. x ph -> A. y ph ) ) $=
      ( weq wal wi aevlem axc11rv syl ) BCDBECBDCEABEACEFBCCBGACBHI $.
  $}

  $( The analogue in our predicate calculus of the Brouwer axiom (B) of modal
     logic S5.  (Contributed by NM, 5-Oct-2005.) $)
  modal-b $p |- ( ph -> A. x -. A. x -. ph ) $=
    ( wn wal axc7 con4i ) ACZBDCBDAGBEF $.

  $( A closed version of ~ 19.9 .  (Contributed by NM, 13-May-1993.)  (Proof
     shortened by Wolf Lammen, 3-Mar-2018.) $)
  19.9ht $p |- ( A. x ( ph -> A. x ph ) -> ( E. x ph -> ph ) ) $=
    ( wal wi wex exim axc7e syl6 ) AABCZDBCABEIBEAAIBFABGH $.

  $( Closed theorem version of bound-variable hypothesis builder ~ hbn .
     (Contributed by NM, 10-May-1993.)  (Proof shortened by Wolf Lammen,
     3-Mar-2018.)  (Proof shortened by Wolf Lammen, 14-Oct-2021.) $)
  hbnt $p |- ( A. x ( ph -> A. x ph ) -> ( -. ph -> A. x -. ph ) ) $=
    ( wal wi wn nf5-1 nfnd nf5rd ) AABCDBCZAEBIABABFGH $.

  $( Obsolete proof of ~ hbnt as of 13-Oct-2021.  (Contributed by NM,
     10-May-1993.)  (Proof shortened by Wolf Lammen, 3-Mar-2018.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  hbntOLD $p |- ( A. x ( ph -> A. x ph ) -> ( -. ph -> A. x -. ph ) ) $=
    ( wal wi wn wex df-ex 19.9ht syl5bir con1d ) AABCDBCZAEBCZALEABFKAABGABHIJ
    $.

  ${
    hbn.1 $e |- ( ph -> A. x ph ) $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` -. ph ` .
       (Contributed by NM, 10-Jan-1993.)  (Proof shortened by Wolf Lammen,
       17-Dec-2017.) $)
    hbn $p |- ( -. ph -> A. x -. ph ) $=
      ( wal wi wn hbnt mpg ) AABDEAFZIBDEBABGCH $.
  $}

  ${
    hbnd.1 $e |- ( ph -> A. x ph ) $.
    hbnd.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hbn .
       (Contributed by NM, 3-Jan-2002.) $)
    hbnd $p |- ( ph -> ( -. ps -> A. x -. ps ) ) $=
      ( wal wi wn alrimih hbnt syl ) ABBCFGZCFBHZMCFGALCDEIBCJK $.
  $}

  ${
    exlimih.1 $e |- ( ps -> A. x ps ) $.
    exlimih.2 $e |- ( ph -> ps ) $.
    $( Inference associated with ~ 19.23 .  See ~ exlimiv for a version with a
       dv condition requiring fewer axioms.  (Contributed by NM, 10-Jan-1993.)
       (Proof shortened by Andrew Salmon, 13-May-2011.)  (Proof shortened by
       Wolf Lammen, 1-Jan-2018.) $)
    exlimih $p |- ( E. x ph -> ps ) $=
      ( nf5i exlimi ) ABCBCDFEG $.
  $}

  ${
    exlimdh.1 $e |- ( ph -> A. x ph ) $.
    exlimdh.2 $e |- ( ch -> A. x ch ) $.
    exlimdh.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction form of Theorem 19.9 of [Margaris] p. 89.  (Contributed by NM,
       28-Jan-1997.) $)
    exlimdh $p |- ( ph -> ( E. x ps -> ch ) ) $=
      ( nf5i exlimd ) ABCDADEHCDFHGI $.
  $}

  ${
    $d x y $.
    $( Two equivalent ways of expressing the proper substitution of ` y ` for
       ` x ` in ` ph ` , when ` x ` and ` y ` are distinct.  Theorem 6.2 of
       [Quine] p. 40.  The proof does not involve ~ df-sb .  The implication
       "to the left" is ~ equs4 and does not require any dv condition (but the
       version with a dv condition, ~ equs4v , requires fewer axioms).  Theorem
       ~ equs45f replaces the dv condition with a non-freeness hypothesis and
       ~ equs5 replaces it with a distinctor as antecedent.  (Contributed by
       NM, 14-Apr-2008.)  Revised to use ~ equsexv in place of ~ equsex in
       order to remove dependency on ~ ax-13 .  (Revised by BJ,
       20-Dec-2020.) $)
    sb56 $p |- ( E. x ( x = y /\ ph ) <-> A. x ( x = y -> ph ) ) $=
      ( weq wi wal nfa1 ax12v2 sp com12 impbid equsexv ) ABCDZAEZBFZBCNBGMAOABC
      HOMANBIJKL $.
  $}

  $( The setvar ` x ` is not free in ` A. x ph ` .  This corresponds to the
     axiom (4) of modal logic.  Example in Appendix in [Megill] p. 450 (p. 19
     of the preprint).  Also Lemma 22 of [Monk2] p. 114.  (Contributed by NM,
     24-Jan-1993.)  (Proof shortened by Wolf Lammen, 15-Dec-2017.)  (Proof
     shortened by Wolf Lammen, 12-Oct-2021.) $)
  hba1 $p |- ( A. x ph -> A. x A. x ph ) $=
    ( wal nfa1 nf5ri ) ABCBABDE $.

  ${
    hbexOLD.1 $e |- ( ph -> A. x ph ) $.
    $( Obsolete proof of ~ hbex as of 16-Oct-2021.  (Contributed by NM,
       12-Mar-1993.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    hbexOLD $p |- ( E. y ph -> A. x E. y ph ) $=
      ( wex wn wal df-ex hbn hbal hbxfrbi ) ACEAFZCGZFBACHMBLBCABDIJIK $.
  $}

  ${
    nfal.1 $e |- F/ x ph $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` A. y ph ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfal $p |- F/ x A. y ph $=
      ( wal nf5ri hbal nf5i ) ACEBABCABDFGH $.
  $}

  ${
    nfex.1 $e |- F/ x ph $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` E. y ph ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.)  (Proof shortened by Wolf
       Lammen, 30-Dec-2017.)  Reduce symbol count in ~ nfex , ~ hbex .
       (Revised by Wolf Lammen, 16-Oct-2021.) $)
    nfex $p |- F/ x E. y ph $=
      ( wex wn wal df-ex nfn nfal nfxfr ) ACEAFZCGZFBACHMBLBCABDIJIK $.
  $}

  ${
    nfexOLD.1 $e |- F/ x ph $.
    $( Obsolete proof of ~ nfex as of 16-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (Proof shortened by Wolf Lammen, 30-Dec-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nfexOLD $p |- F/ x E. y ph $=
      ( wex nf5ri hbexOLD nf5i ) ACEBABCABDFGH $.
  $}

  ${
    hbex.1 $e |- ( ph -> A. x ph ) $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` E. y ph ` .
       (Contributed by NM, 12-Mar-1993.)  Reduce symbol count in ~ nfex ,
       ~ hbex .  (Revised by Wolf Lammen, 16-Oct-2021.) $)
    hbex $p |- ( E. y ph -> A. x E. y ph ) $=
      ( wex nf5i nfex nf5ri ) ACEBABCABDFGH $.
  $}

  $( Obsolete proof of ~ nfa1 as of 12-Oct-2021.  (Contributed by Mario
     Carneiro, 11-Aug-2016.) ~ df-nf changed.  (Revised by Wolf Lammen,
     11-Sep-2021.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nfa1OLD $p |- F/ x A. x ph $=
    ( wal hba1 nf5i ) ABCBABDE $.

  ${
    nfnf.1 $e |- F/ x ph $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` F/ y ph ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.)  (Proof shortened by Wolf
       Lammen, 30-Dec-2017.) $)
    nfnf $p |- F/ x F/ y ph $=
      ( wnf wex wal wi df-nf nfex nfal nfim nfxfr ) ACEACFZACGZHBACINOBABCDJABC
      DKLM $.
  $}

  $( Obsolete proof of ~ nfnf1 as of 12-Oct-2021.  (Contributed by Mario
     Carneiro, 11-Aug-2016.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nfnf1OLD $p |- F/ x F/ x ph $=
    ( wnf wal wi nf5 nfa1 nfxfr ) ABCAABDEZBDBABFIBGH $.

  ${
    $d x z $.  $d y z $.
    axc11nlemOLD.1 $e |- ( -. A. y y = x -> ( x = z -> A. y x = z ) ) $.
    $( Obsolete proof of ~ axc11nlemOLD2 as of 14-Mar-2021.  (Contributed by
       NM, 8-Jul-2016.)  (Proof shortened by Wolf Lammen, 17-Feb-2018.)
       Restructure to ease either bundling, or reducing dependencies on axioms.
       (Revised by Wolf Lammen, 30-Nov-2019.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    axc11nlemOLD $p |- ( A. x x = z -> A. y y = x ) $=
      ( weq wal cbvaev equequ2 biimprd al2imi syl5com spsd com12 con1d pm2.61d
      wn ) ACEZAFZQBFZBAEZBFZRBCEZBFSUAACBGQUBTBQTUBACBHIJKRUASUAPZRSUCQSADLMNO
      $.
  $}

  ${
    $d w x y $.  $d w z $.  $d w ph $.
    $( Obsolete proof of ~ axc16g as of 11-Oct-2021.  (Contributed by NM,
       15-May-1993.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 18-Feb-2018.)  Remove dependency on ~ ax-13 ,
       along an idea of BJ. (Revised by Wolf Lammen, 30-Nov-2019.)  (Revised by
       BJ, 7-Jul-2021.)  Shorten ~ axc11rv .  (Revised by Wolf Lammen,
       11-Oct-2021.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    axc16gOLD $p |- ( A. x x = y -> ( ph -> A. z ph ) ) $=
      ( vw weq wal aevlem ax-5 axc11rvOLD syl2im ) BCFBGDEFDGAAEGADGBCDEHAEIADE
      JK $.
  $}

  ${
    $d u v $.  $d u x y $.  $d u w $.
    $( Obsolete proof of ~ aev as of 19-Mar-2021.  (Contributed by NM,
       8-Nov-2006.)  Remove dependency on ~ ax-11 .  (Revised by Wolf Lammen,
       7-Sep-2018.)  Remove dependency on ~ ax-13 , inspired by an idea of BJ.
       (Revised by Wolf Lammen, 30-Nov-2019.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    aevOLD $p |- ( A. x x = y -> A. z w = v ) $=
      ( vu weq wal wex aevlem ax6ev ax7 aleximi mpi ax5e 3syl axc16g mpd ) ABGA
      HZDEGZTCHSFDGZFHZTFIZTABFDJUBFEGZFIUCFEKUAUDTFFDELMNTFOPTABCQR $.
  $}

  ${
    $d x y $.  $d z w $.
    $( Obsolete proof of ~ axc16nf as of 12-Oct-2021.  (Contributed by Mario
       Carneiro, 7-Oct-2016.)  Remove dependency on ~ ax-11 .  (Revised by Wolf
       Lammen, 9-Sep-2018.)  (Proof shortened by BJ, 14-Jun-2019.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    axc16nfOLD $p |- ( A. x x = y -> F/ z ph ) $=
      ( vw weq wal wnf aev nfa1 axc16 nf5d syl ) BCFBGDEFZDGZADHBCDEDIOADNDJADE
      KLM $.
  $}

  $( Theorem 19.12 of [Margaris] p. 89.  Assuming the converse is a mistake
     sometimes made by beginners!  But sometimes the converse does hold, as in
     ~ 19.12vv and ~ r19.12sn .  (Contributed by NM, 12-Mar-1993.)  (Proof
     shortened by Wolf Lammen, 3-Jan-2018.) $)
  19.12 $p |- ( E. x A. y ph -> A. y E. x ph ) $=
    ( wal wex nfa1 nfex sp eximi alrimi ) ACDZBEABECKCBACFGKABACHIJ $.

  ${
    nfald.1 $e |- F/ y ph $.
    nfald.2 $e |- ( ph -> F/ x ps ) $.
    $( Deduction form of ~ nfal .  (Contributed by Mario Carneiro,
       24-Sep-2016.)  (Proof shortened by Wolf Lammen, 6-Jan-2018.)  (Proof
       shortened by Wolf Lammen, 16-Oct-2021.) $)
    nfald $p |- ( ph -> F/ x A. y ps ) $=
      ( wal wex 19.12 nfrd alimd ax-11 syl56 nfd ) ABDGZCOCHBCHZDGABCGZDGOCGBCD
      IAPQDEABCFJKBDCLMN $.

    $( Obsolete proof of ~ nfald as of 16-Oct-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf Lammen, 6-Jan-2018.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nfaldOLD $p |- ( ph -> F/ x A. y ps ) $=
      ( wnf wal alrimi nfnf1 nfal hba1 sp nf5rd hbald nf5d syl ) ABCGZDHZBDHZCG
      ARDEFISTCRCDBCJKSBCDRDLSBCRDMNOPQ $.

    $( If ` x ` is not free in ` ps ` , it is not free in ` E. y ps ` .
       (Contributed by Mario Carneiro, 24-Sep-2016.) $)
    nfexd $p |- ( ph -> F/ x E. y ps ) $=
      ( wex wn wal df-ex nfnd nfald nfxfrd ) BDGBHZDIZHACBDJAOCANCDEABCFKLKM $.
  $}

  $( Obsolete proof of ~ nfa2 as of 18-Oct-2021.  (Contributed by Mario
     Carneiro, 24-Sep-2016.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nfa2OLD $p |- F/ x A. y A. x ph $=
    ( wal nfa1 nfal ) ABDBCABEF $.

  ${
    exanOLDOLD.1 $e |- ( E. x ph /\ ps ) $.
    $( Obsolete proof of ~ exan as of 7-Jul-2021.  (Contributed by NM,
       18-Aug-1993.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 13-Jan-2018.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    exanOLDOLD $p |- E. x ( ph /\ ps ) $=
      ( wa wex simpri nfth 19.41 mpbir ) ABECFACFZBEDABCBCKBDGHIJ $.
  $}

  ${
    aaan.1 $e |- F/ y ph $.
    aaan.2 $e |- F/ x ps $.
    $( Rearrange universal quantifiers.  (Contributed by NM, 12-Aug-1993.) $)
    aaan $p |- ( A. x A. y ( ph /\ ps ) <-> ( A. x ph /\ A. y ps ) ) $=
      ( wa wal 19.28 albii nfal 19.27 bitri ) ABGDHZCHABDHZGZCHACHOGNPCABDEIJAO
      CBCDFKLM $.
  $}

  ${
    eeor.1 $e |- F/ y ph $.
    eeor.2 $e |- F/ x ps $.
    $( Rearrange existential quantifiers.  (Contributed by NM, 8-Aug-1994.) $)
    eeor $p |- ( E. x E. y ( ph \/ ps ) <-> ( E. x ph \/ E. y ps ) ) $=
      ( wo wex 19.45 exbii nfex 19.44 bitri ) ABGDHZCHABDHZGZCHACHOGNPCABDEIJAO
      CBCDFKLM $.
  $}

  ${
    $d x y $.
    cbv3v.nf1 $e |- F/ y ph $.
    cbv3v.nf2 $e |- F/ x ps $.
    cbv3v.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Version of ~ cbv3 with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 31-May-2019.) $)
    cbv3v $p |- ( A. x ph -> A. y ps ) $=
      ( wal nfal spimv1 alrimi ) ACHBDADCEIABCDFGJK $.
  $}

  ${
    $d x z $.  $d y z $.
    dvelimhw.1 $e |- ( ph -> A. x ph ) $.
    dvelimhw.2 $e |- ( ps -> A. z ps ) $.
    dvelimhw.3 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( dvelimhw.4 $e |- ( -. A. x x = y -> ( z = y -> A. x z = y ) ) $. $)
    dvelimhw.4 $e |- ( -. A. x x = y -> ( y = z -> A. x y = z ) ) $.
    $( Proof of ~ dvelimh without using ~ ax-13 but with additional distinct
       variable conditions.  (Contributed by Andrew Salmon, 21-Jul-2011.)
       (Revised by NM, 1-Aug-2017.)  (Proof shortened by Wolf Lammen,
       23-Dec-2018.) $)
    dvelimhw $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( weq wal wn wi wnf nfv equcom nfna1 nf5d nfxfrd nf5i a1i nfimd equsalhw
      nfald nfbii sylib nf5rd ) CDJZCKLZBCUIEDJZAMZEKZCNBCNUIUKCEUIEOUIUJACUJDE
      JZUICEDPUIUMCUHCQIRSACNUIACFTUAUBUDULBCABEDGHUCUEUFUG $.
  $}

  ${
    $d x y $.
    cbv3hv.nf1 $e |- ( ph -> A. y ph ) $.
    cbv3hv.nf2 $e |- ( ps -> A. x ps ) $.
    cbv3hv.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Version of ~ cbv3h with a dv condition on ` x , y ` , which does not
       require ~ ax-13 .  Was used in a proof of ~ axc11n (but of independent
       interest).  (Contributed by NM, 25-Jul-2015.)  (Proof shortened by Wolf
       Lammen, 29-Nov-2020.)  (Proof shortened by BJ, 30-Nov-2020.) $)
    cbv3hv $p |- ( A. x ph -> A. y ps ) $=
      ( nf5i cbv3v ) ABCDADEHBCFHGI $.
  $}

  ${
    $d x y $.
    cbvalv1.nf1 $e |- F/ y ph $.
    cbvalv1.nf2 $e |- F/ x ps $.
    cbvalv1.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Version of ~ cbval with a dv condition, which does not require ~ ax-13 .
       See ~ cbvalvw for a version with two dv conditions, requiring fewer
       axioms, and ~ cbvalv for another variant.  (Contributed by BJ,
       31-May-2019.) $)
    cbvalv1 $p |- ( A. x ph <-> A. y ps ) $=
      ( wal weq biimpd cbv3v wi biimprd equcoms impbii ) ACHBDHABCDEFCDIZABGJKB
      ADCFEBALCDPABGMNKO $.

    $( Version of ~ cbvex with a dv condition, which does not require ~ ax-13 .
       See ~ cbvexvw for a version with two dv conditions, requiring fewer
       axioms, and ~ cbvexv for another variant.  (Contributed by BJ,
       31-May-2019.) $)
    cbvexv1 $p |- ( E. x ph <-> E. y ps ) $=
      ( wn wal wex nfn weq notbid cbvalv1 notbii df-ex 3bitr4i ) AHZCIZHBHZDIZH
      ACJBDJSUARTCDADEKBCFKCDLABGMNOACPBDPQ $.
  $}

  $( Alternate proof of ~ equs5a .  Uses ~ ax-12 but not ~ ax-13 .
     (Contributed by NM, 2-Feb-2007.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  equs5aALT $p |- ( E. x ( x = y /\ A. y ph ) -> A. x ( x = y -> ph ) ) $=
    ( weq wal wa wi nfa1 ax-12 imp exlimi ) BCDZACEZFLAGZBEZBNBHLMOABCIJK $.

  $( Alternate proof of ~ equs5e .  Uses ~ ax-12 but not ~ ax-13 .
     (Contributed by NM, 2-Feb-2007.)  (Proof shortened by Wolf Lammen,
     15-Jan-2018.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  equs5eALT $p |- ( E. x ( x = y /\ ph ) -> A. x ( x = y -> E. y ph ) ) $=
    ( weq wa wex wi wal nfa1 hbe1 19.23bi ax-12 syl5 imp exlimi ) BCDZAEPACFZGZ
    BHZBRBIPASAQCHZPSATCACJKQBCLMNO $.

  ${
    $d ph y $.  $d ps x $.
    $( Theorem *11.53 in [WhiteheadRussell] p. 164.  See ~ pm11.53v for a
       version requiring fewer axioms.  (Contributed by Andrew Salmon,
       24-May-2011.) $)
    pm11.53 $p |- ( A. x A. y ( ph -> ps ) <-> ( E. x ph -> A. y ps ) ) $=
      ( wi wal wex 19.21v albii nfv nfal 19.23 bitri ) ABEDFZCFABDFZEZCFACGOENP
      CABDHIAOCBCDBCJKLM $.
  $}

  ${
    $d x ps $.  $d y ph $.
    $( Special case of ~ 19.12 where its converse holds.  See ~ 19.12vvv for a
       version with a dv condition requiring fewer axioms.  (Contributed by NM,
       18-Jul-2001.)  (Revised by Andrew Salmon, 11-Jul-2011.) $)
    19.12vv $p |- ( E. x A. y ( ph -> ps ) <-> A. y E. x ( ph -> ps ) ) $=
      ( wi wal wex 19.21v exbii nfv nfal 19.36 19.36v albii 19.21 bitr2i 3bitri
      ) ABEZDFZCGABDFZEZCGACFZTEZRCGZDFZSUACABDHIATCBCDBCJKLUEUBBEZDFUCUDUFDABC
      MNUBBDADCADJKOPQ $.
  $}

  ${
    eean.1 $e |- F/ y ph $.
    eean.2 $e |- F/ x ps $.
    $( Rearrange existential quantifiers.  (Contributed by NM, 27-Oct-2010.)
       (Revised by Mario Carneiro, 6-Oct-2016.) $)
    eean $p |- ( E. x E. y ( ph /\ ps ) <-> ( E. x ph /\ E. y ps ) ) $=
      ( wa wex 19.42 exbii nfex 19.41 bitri ) ABGDHZCHABDHZGZCHACHOGNPCABDEIJAO
      CBCDFKLM $.
  $}

  ${
    $d y ph $.  $d x ps $.
    $( Rearrange existential quantifiers.  (Contributed by NM, 26-Jul-1995.) $)
    eeanv $p |- ( E. x E. y ( ph /\ ps ) <-> ( E. x ph /\ E. y ps ) ) $=
      ( nfv eean ) ABCDADEBCEF $.
  $}

  ${
    $d y ph $.  $d z ph $.  $d x ps $.  $d z ps $.  $d x ch $.  $d y ch $.
    $( Rearrange existential quantifiers.  (Contributed by NM, 26-Jul-1995.)
       (Proof shortened by Andrew Salmon, 25-May-2011.)  Reduce distinct
       variable restrictions.  (Revised by Wolf Lammen, 20-Jan-2018.) $)
    eeeanv $p |- ( E. x E. y E. z ( ph /\ ps /\ ch ) <->
                 ( E. x ph /\ E. y ps /\ E. z ch ) ) $=
      ( wa wex w3a eeanv anbi1i df-3an exbii 19.42v bitri 2exbii nfv nfex 19.41
      3bitri 3bitr4i ) ABGZEHZDHZCFHZGZADHZBEHZGZUEGABCIZFHZEHDHZUGUHUEIUDUIUEA
      BDEJKULUBUEGZEHZDHUCUEGZDHUFUKUMDEUKUBCGZFHUMUJUPFABCLMUBCFNOPUNUODUBUEEC
      EFCEQRSMUCUEDCDFCDQRSTUGUHUELUA $.
  $}

  ${
    $d z ph $.  $d w ph $.  $d x ps $.  $d y ps $.  $d y z $.  $d w x $.
    $( Rearrange existential quantifiers.  (Contributed by NM, 31-Jul-1995.) $)
    ee4anv $p |- ( E. x E. y E. z E. w ( ph /\ ps ) <->
                  ( E. x E. y ph /\ E. z E. w ps ) ) $=
      ( wa wex excom exbii eeanv 2exbii 3bitri ) ABGFHZEHDHZCHNDHZEHZCHADHZBFHZ
      GZEHCHRCHSEHGOQCNDEIJPTCEABDFKLRSCEKM $.
  $}

  ${
    $d x z $.  $d y z $.
    $( Alternate proof of ~ cleljust .  It is kept here and should not be
       modified because it is referenced on the Metamath Proof Explorer Home
       Page (mmset.html) as an example of how DV conditions are inherited by
       substitutions.  (Contributed by NM, 28-Jan-2004.)  (Revised by BJ,
       29-Dec-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    cleljustALT $p |- ( x e. y <-> E. z ( z = x /\ z e. y ) ) $=
      ( weq wel wa wex ax-5 elequ1 equsexhv bicomi ) CADCBEZFCGABEZLMCAMCHCABIJ
      K $.

    $( Alternate proof of ~ cleljust .  Compared with ~ cleljustALT , it uses
       ~ nfv followed by ~ equsexv instead of ~ ax-5 followed by ~ equsexhv ,
       so it uses the idiom ` F/ x ph ` instead of ` ph -> A. x ph ` to express
       non-freeness.  This style is generally preferred for later theorems.
       (Contributed by NM, 28-Jan-2004.)  (Revised by Mario Carneiro,
       21-Dec-2016.)  (Revised by BJ, 29-Dec-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    cleljustALT2 $p |- ( x e. y <-> E. z ( z = x /\ z e. y ) ) $=
      ( weq wel wa wex nfv elequ1 equsexv bicomi ) CADCBEZFCGABEZLMCAMCHCABIJK
      $.
  $}

  $( Same as ~ axc11 but with reversed antecedent.  Note the use of ~ ax-12
     (and not merely ~ ax12v ).  (Contributed by NM, 25-Jul-2015.) $)
  axc11r $p |- ( A. y y = x -> ( A. x ph -> A. y ph ) ) $=
    ( weq wal wi ax-12 sps pm2.27 al2imi syld ) CBDZCEABEZLAFZCEZACELMOFCACBGHL
    NACLAIJK $.

  $( Obsolete proof of ~ nf5r as of 6-Oct-2021.  (Contributed by Mario
     Carneiro, 26-Sep-2016.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nfrOLD $p |- ( nfOLD x ph -> ( ph -> A. x ph ) ) $=
    ( wnfOLD wal wi df-nfOLD sp sylbi ) ABCAABDEZBDIABFIBGH $.

  ${
    nfriOLD.1 $e |- nfOLD x ph $.
    $( Obsolete proof of ~ nf5ri as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nfriOLD $p |- ( ph -> A. x ph ) $=
      ( wnfOLD wal wi nfrOLD ax-mp ) ABDAABEFCABGH $.
  $}

  ${
    nfrdOLD.1 $e |- ( ph -> nfOLD x ps ) $.
    $( Obsolete proof of ~ nf5rd as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    nfrdOLD $p |- ( ph -> ( ps -> A. x ps ) ) $=
      ( wnfOLD wal wi nfrOLD syl ) ABCEBBCFGDBCHI $.
  $}

  ${
    alimdOLD.1 $e |- nfOLD x ph $.
    alimdOLD.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Obsolete proof of ~ alimd as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    alimdOLD $p |- ( ph -> ( A. x ps -> A. x ch ) ) $=
      ( nfriOLD alimdh ) ABCDADEGFH $.
  $}

  ${
    alrimiOLD.1 $e |- nfOLD x ph $.
    alrimiOLD.2 $e |- ( ph -> ps ) $.
    $( Obsolete proof of ~ alrimi as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    alrimiOLD $p |- ( ph -> A. x ps ) $=
      ( nfriOLD alrimih ) ABCACDFEG $.
  $}

  ${
    nfdOLD.1 $e |- nfOLD x ph $.
    nfdOLD.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Obsolete proof of ~ nf5d as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nfdOLD $p |- ( ph -> nfOLD x ps ) $=
      ( wal wi wnfOLD alrimiOLD df-nfOLD sylibr ) ABBCFGZCFBCHALCDEIBCJK $.
  $}

  ${
    nfdhOLD.1 $e |- ( ph -> A. x ph ) $.
    nfdhOLD.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Obsolete proof of ~ nf5dh as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nfdhOLD $p |- ( ph -> nfOLD x ps ) $=
      ( nfiOLD nfdOLD ) ABCACDFEG $.
  $}

  ${
    alrimddOLD.1 $e |- nfOLD x ph $.
    alrimddOLD.2 $e |- ( ph -> nfOLD x ps ) $.
    alrimddOLD.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Obsolete proof of ~ alrimdd as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    alrimddOLD $p |- ( ph -> ( ps -> A. x ch ) ) $=
      ( wal nfrdOLD alimdOLD syld ) ABBDHCDHABDFIABCDEGJK $.
  $}

  ${
    alrimdOLD.1 $e |- nfOLD x ph $.
    alrimdOLD.2 $e |- nfOLD x ps $.
    alrimdOLD.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Obsolete proof of ~ alrimd as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    alrimdOLD $p |- ( ph -> ( ps -> A. x ch ) ) $=
      ( wnfOLD a1i alrimddOLD ) ABCDEBDHAFIGJ $.
  $}

  ${
    eximdOLD.1 $e |- nfOLD x ph $.
    eximdOLD.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Obsolete proof of ~ eximd as of 6-Oct-2021.  (Contributed by NM,
       29-Jun-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    eximdOLD $p |- ( ph -> ( E. x ps -> E. x ch ) ) $=
      ( nfriOLD eximdh ) ABCDADEGFH $.
  $}

  ${
    nexdOLD.1 $e |- nfOLD x ph $.
    nexdOLD.2 $e |- ( ph -> -. ps ) $.
    $( Obsolete proof of ~ nexd as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nexdOLD $p |- ( ph -> -. E. x ps ) $=
      ( nfriOLD nexdh ) ABCACDFEG $.
  $}

  ${
    albidOLD.1 $e |- nfOLD x ph $.
    albidOLD.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Obsolete proof of ~ albid as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    albidOLD $p |- ( ph -> ( A. x ps <-> A. x ch ) ) $=
      ( nfriOLD albidh ) ABCDADEGFH $.
  $}

  ${
    exbidOLD.1 $e |- nfOLD x ph $.
    exbidOLD.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Obsolete proof of ~ exbid as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    exbidOLD $p |- ( ph -> ( E. x ps <-> E. x ch ) ) $=
      ( nfriOLD exbidh ) ABCDADEGFH $.
  $}

  ${
    nfbidfOLD.1 $e |- nfOLD x ph $.
    nfbidfOLD.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Obsolete proof of ~ nfbidf as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 4-Oct-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nfbidfOLD $p |- ( ph -> ( nfOLD x ps <-> nfOLD x ch ) ) $=
      ( wal wi wnfOLD albidOLD imbi12d df-nfOLD 3bitr4g ) ABBDGZHZDGCCDGZHZDGBD
      ICDIAOQDEABCNPFABCDEFJKJBDLCDLM $.
  $}

  ${
    19.3OLD.1 $e |- nfOLD x ph $.
    $( Obsolete proof of ~ 19.3 as of 6-Oct-2021.  (Contributed by NM,
       12-Mar-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    19.3OLD $p |- ( A. x ph <-> ph ) $=
      ( wal sp nfriOLD impbii ) ABDAABEABCFG $.
  $}

  ${
    19.9dOLD.1 $e |- ( ps -> nfOLD x ph ) $.
    $( Obsolete proof of ~ 19.9d as of 6-Oct-2021.  (Contributed by NM,
       14-May-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)  Revised to
       shorten other proofs.  (Revised by Wolf Lammen, 14-Jul-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    19.9dOLD $p |- ( ps -> ( E. x ph -> ph ) ) $=
      ( wal wi wex wnfOLD df-nfOLD sylib 19.9ht syl ) BAACEFCEZACGAFBACHMDACIJA
      CKL $.
  $}

  $( Obsolete proof of ~ 19.9t as of 6-Oct-2021.  (Contributed by NM,
     13-May-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)  (Proof shortened
     by Wolf Lammen, 30-Dec-2017.)  (Proof shortened by Wolf Lammen,
     14-Jul-2020.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  19.9tOLD $p |- ( nfOLD x ph -> ( E. x ph <-> ph ) ) $=
    ( wnfOLD wex id 19.9dOLD 19.8a impbid1 ) ABCZABDAAIBIEFABGH $.

  ${
    19.9OLD.1 $e |- nfOLD x ph $.
    $( Obsolete proof of ~ 19.9 as of 6-Oct-2021.  (Contributed by FL,
       24-Mar-2007.)  (Revised by Mario Carneiro, 24-Sep-2016.)  (Proof
       shortened by Wolf Lammen, 30-Dec-2017.)  Revised to shorten other
       proofs.  (Revised by Wolf Lammen, 14-Jul-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    19.9OLD $p |- ( E. x ph <-> ph ) $=
      ( wnfOLD wex wb 19.9tOLD ax-mp ) ABDABEAFCABGH $.
  $}

  ${
    19.9hOLD.1 $e |- ( ph -> A. x ph ) $.
    $( Obsolete proof of ~ 19.9h as of 6-Oct-2021.  (Contributed by FL,
       24-Mar-2007.)  (Proof shortened by Wolf Lammen, 5-Jan-2018.)  (Proof
       shortened by Wolf Lammen, 14-Jul-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    19.9hOLD $p |- ( E. x ph <-> ph ) $=
      ( nfiOLD 19.9OLD ) ABABCDE $.
  $}

  $( Obsolete proof of ~ nfa1 as of 6-Oct-2021.  (Contributed by Mario
     Carneiro, 11-Aug-2016.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nfa1OLDOLD $p |- nfOLD x A. x ph $=
    ( wal hba1 nfiOLD ) ABCBABDE $.

  $( Obsolete proof of ~ nfnf1 as of 6-Oct-2021.  (Contributed by Mario
     Carneiro, 11-Aug-2016.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nfnf1OLDOLD $p |- nfOLD x nfOLD x ph $=
    ( wnfOLD wal wi df-nfOLD nfa1OLDOLD nfxfrOLD ) ABCAABDEZBDBABFIBGH $.

  $( Obsolete proof of ~ nfnt as of 6-Oct-2021.  (Contributed by Mario
     Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf Lammen, 28-Dec-2017.)
     (Revised by BJ, 24-Jul-2019.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nfntOLD $p |- ( nfOLD x ph -> nfOLD x -. ph ) $=
    ( wnfOLD wn nfnf1OLDOLD wal wi df-nfOLD hbnt sylbi nfdOLD ) ABCZADZBABELAAB
    FGBFMMBFGABHABIJK $.

  ${
    nfnOLD.1 $e |- nfOLD x ph $.
    $( Obsolete proof of ~ nfn as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nfnOLD $p |- nfOLD x -. ph $=
      ( wnfOLD wn nfntOLD ax-mp ) ABDAEBDCABFG $.
  $}

  ${
    nfndOLD.1 $e |- ( ph -> nfOLD x ps ) $.
    $( Obsolete proof of ~ nfnd as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nfndOLD $p |- ( ph -> nfOLD x -. ps ) $=
      ( wnfOLD wn nfntOLD syl ) ABCEBFCEDBCGH $.
  $}

  $( One direction of the bi-conditional in ~ 19.21t .  Unlike the reverse
     implication, it does not depend on ~ ax-10 .  Obsolete as of 6-Oct-2021
     (Contributed by Wolf Lammen, 4-Jul-2021.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  19.21t-1OLD $p |- ( nfOLD x ph ->
                                ( A. x ( ph -> ps ) -> ( ph -> A. x ps ) ) ) $=
    ( wnfOLD wal wi nfrOLD alim syl9 ) ACDAACEABFCEBCEACGABCHI $.

  $( Obsolete proof of ~ 19.21t as of 6-Oct-2021.  (Contributed by NM,
     27-May-1997.)  (Revised by Mario Carneiro, 24-Sep-2016.)  (Proof shortened
     by Wolf Lammen, 3-Jan-2018.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  19.21tOLD $p |- ( nfOLD x ph ->
                            ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) ) $=
    ( wnfOLD wi wal 19.21t-1OLD wex 19.9tOLD imbi1d 19.38 syl6bir impbid ) ACDZ
    ABECFZABCFZEZABCGNQACHZPEONRAPACIJABCKLM $.

  ${
    19.21OLD.1 $e |- nfOLD x ph $.
    $( Obsolete proof of ~ 19.21 as of 6-Oct-2021.  (Contributed by NM,
       14-May-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    19.21OLD $p |- ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) $=
      ( wnfOLD wi wal wb 19.21tOLD ax-mp ) ACEABFCGABCGFHDABCIJ $.
  $}

  ${
    19.21-2OLD.1 $e |- nfOLD x ph $.
    19.21-2OLD.2 $e |- nfOLD y ph $.
    $( Obsolete proof of ~ 19.21-2 as of 6-Oct-2021.  (Contributed by NM,
       4-Feb-2005.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    19.21-2OLD $p |- ( A. x A. y ( ph -> ps ) <-> ( ph -> A. x A. y ps ) ) $=
      ( wi wal 19.21OLD albii bitri ) ABGDHZCHABDHZGZCHAMCHGLNCABDFIJAMCEIK $.
  $}

  ${
    19.21hOLD.1 $e |- ( ph -> A. x ph ) $.
    $( Obsolete proof of ~ 19.21h as of 6-Oct-2021.  (Contributed by NM,
       1-Aug-2017.)  (Proof shortened by Wolf Lammen, 1-Jan-2018.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    19.21hOLD $p |- ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) $=
      ( nfiOLD 19.21OLD ) ABCACDEF $.
  $}

  ${
    stdpc5OLDOLD.1 $e |- nfOLD x ph $.
    $( Obsolete proof of ~ stdpc5 as of 6-Oct-2021.  (Contributed by NM,
       22-Sep-1993.)  (Revised by Mario Carneiro, 12-Oct-2016.)  (Proof
       shortened by Wolf Lammen, 1-Jan-2018.)  Remove dependency on ~ ax-10 .
       (Revised by Wolf Lammen, 4-Jul-2021.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    stdpc5OLDOLD $p |- ( A. x ( ph -> ps ) -> ( ph -> A. x ps ) ) $=
      ( wnfOLD wi wal 19.21t-1OLD ax-mp ) ACEABFCGABCGFFDABCHI $.
  $}

  $( Obsolete proof of ~ 19.23t as of 6-Oct-2021.  (Contributed by NM,
     7-Nov-2005.)  (Proof shortened by Wolf Lammen, 2-Jan-2018.)  (Proof
     shortened by Wolf Lammen, 13-Aug-2020.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  19.23tOLD $p |- ( nfOLD x ps ->
                               ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) ) $=
    ( wnfOLD wn wi wal wex wb nfntOLD 19.21tOLD syl con34b albii eximal 3bitr4g
    ) BCDZBEZAEZFZCGZRSCGFZABFZCGACHBFQRCDUAUBIBCJRSCKLUCTCABMNABCOP $.

  ${
    19.23OLD.1 $e |- nfOLD x ps $.
    $( Obsolete proof of ~ 19.23 as of 6-Oct-2021.  (Contributed by NM,
       24-Jan-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    19.23OLD $p |- ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) $=
      ( wnfOLD wi wal wex wb 19.23tOLD ax-mp ) BCEABFCGACHBFIDABCJK $.
  $}

  ${
    19.23hOLD.1 $e |- ( ps -> A. x ps ) $.
    $( Obsolete proof of ~ 19.23h as of 6-Oct-2021.  (Contributed by NM,
       24-Jan-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)  (Proof
       shortened by Wolf Lammen, 1-Jan-2018.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    19.23hOLD $p |- ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) $=
      ( nfiOLD 19.23OLD ) ABCBCDEF $.
  $}

  ${
    exlimiOLD.1 $e |- nfOLD x ps $.
    exlimiOLD.2 $e |- ( ph -> ps ) $.
    $( Obsolete proof of ~ exlimi as of 6-Oct-2021.  (Contributed by NM,
       10-Jan-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    exlimiOLD $p |- ( E. x ph -> ps ) $=
      ( wi wex 19.23OLD mpgbi ) ABFACGBFCABCDHEI $.
  $}

  ${
    exlimihOLD.1 $e |- ( ps -> A. x ps ) $.
    exlimihOLD.2 $e |- ( ph -> ps ) $.
    $( Obsolete proof of ~ exlimih as of 6-Oct-2021.  (Contributed by NM,
       10-Jan-1993.)  (Proof shortened by Andrew Salmon, 13-May-2011.)  (Proof
       shortened by Wolf Lammen, 1-Jan-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    exlimihOLD $p |- ( E. x ph -> ps ) $=
      ( nfiOLD exlimiOLD ) ABCBCDFEG $.
  $}

  ${
    exlimdOLD.1 $e |- nfOLD x ph $.
    exlimdOLD.2 $e |- nfOLD x ch $.
    exlimdOLD.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Obsolete proof of ~ exlimd as of 6-Oct-2021.  (Contributed by NM,
       23-Jan-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)  (Proof
       shortened by Wolf Lammen, 12-Jan-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    exlimdOLD $p |- ( ph -> ( E. x ps -> ch ) ) $=
      ( wex eximdOLD 19.9OLD syl6ib ) ABDHCDHCABCDEGICDFJK $.
  $}

  ${
    exlimdhOLD.1 $e |- ( ph -> A. x ph ) $.
    exlimdhOLD.2 $e |- ( ch -> A. x ch ) $.
    exlimdhOLD.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Obsolete proof of ~ exlimdh as of 6-Oct-2021.  (Contributed by NM,
       28-Jan-1997.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    exlimdhOLD $p |- ( ph -> ( E. x ps -> ch ) ) $=
      ( nfiOLD exlimdOLD ) ABCDADEHCDFHGI $.
  $}

  ${
    nfdiOLD.1 $e |- ( ph -> nfOLD x ph ) $.
    $( Obsolete proof of ~ nf5di as of 6-Oct-2021.  (Contributed by NM,
       17-Aug-2018.)  (Proof shortened by Wolf Lammen, 10-Jul-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nfdiOLD $p |- nfOLD x ph $=
      ( wal nfrdOLD pm2.43i nfiOLD ) ABAABDAABCEFG $.
  $}

  ${
    nfimdOLD.1 $e |- ( ph -> nfOLD x ps ) $.
    nfimdOLD.2 $e |- ( ph -> nfOLD x ch ) $.
    $( Obsolete proof of ~ nfimd as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf Lammen, 30-Dec-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nfimdOLD $p |- ( ph -> nfOLD x ( ps -> ch ) ) $=
      ( wnfOLD wal nfnf1OLDOLD nfrOLD imim2d 19.21tOLD syl9r alrimdOLD df-nfOLD
      wi biimprd syl6ibr sylc ) ABDGZCDGZBCPZDGZEFTUAUBUBDHZPZDHUCTUAUEDBDICDIU
      AUBBCDHZPZTUDUACUFBCDJKTUDUGBCDLQMNUBDORS $.
  $}

  ${
    hbim1OLD.1 $e |- ( ph -> A. x ph ) $.
    hbim1OLD.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Obsolete proof of ~ hbim as of 6-Oct-2021.  (Contributed by NM,
       2-Jun-1993.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    hbim1OLD $p |- ( ( ph -> ps ) -> A. x ( ph -> ps ) ) $=
      ( wi wal a2i 19.21hOLD sylibr ) ABFZABCGZFKCGABLEHABCDIJ $.
  $}

  ${
    nfim1OLD.1 $e |- nfOLD x ph $.
    nfim1OLD.2 $e |- ( ph -> nfOLD x ps ) $.
    $( Obsolete proof of ~ nfim1 as of 6-Oct-2021.  (Contributed by NM,
       2-Jun-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.)  (Proof
       shortened by Wolf Lammen, 2-Jan-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    nfim1OLD $p |- nfOLD x ( ph -> ps ) $=
      ( wi nfriOLD nfrdOLD hbim1OLD nfiOLD ) ABFCABCACDGABCEHIJ $.
  $}

  ${
    nfimOLD.1 $e |- nfOLD x ph $.
    nfimOLD.2 $e |- nfOLD x ps $.
    $( Obsolete proof of ~ nfim as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (Proof shortened by Wolf Lammen, 2-Jan-2018.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nfimOLD $p |- nfOLD x ( ph -> ps ) $=
      ( wnfOLD a1i nfim1OLD ) ABCDBCFAEGH $.
  $}

  ${
    hbimdOLD.1 $e |- ( ph -> A. x ph ) $.
    hbimdOLD.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    hbimdOLD.3 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    $( Obsolete proof of ~ hbimd as of 6-Oct-2021.  (Contributed by NM,
       14-May-1993.)  (Proof shortened by Wolf Lammen, 3-Jan-2018.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    hbimdOLD $p |- ( ph -> ( ( ps -> ch ) -> A. x ( ps -> ch ) ) ) $=
      ( wi nfdhOLD nfimdOLD nfrdOLD ) ABCHDABCDABDEFIACDEGIJK $.
  $}

  ${
    hbimOLD.1 $e |- ( ph -> A. x ph ) $.
    hbimOLD.2 $e |- ( ps -> A. x ps ) $.
    $( Obsolete proof of ~ hbim as of 6-Oct-2021.  (Contributed by NM,
       24-Jan-1993.)  (Proof shortened by Mel L. O'Cat, 3-Mar-2008.)  (Proof
       shortened by Wolf Lammen, 1-Jan-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    hbimOLD $p |- ( ( ph -> ps ) -> A. x ( ph -> ps ) ) $=
      ( wal wi a1i hbim1OLD ) ABCDBBCFGAEHI $.
  $}

  ${
    nfandOLD.1 $e |- ( ph -> nfOLD x ps ) $.
    nfandOLD.2 $e |- ( ph -> nfOLD x ch ) $.
    $( Obsolete proof of ~ nfand as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 7-Oct-2016.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    nfandOLD $p |- ( ph -> nfOLD x ( ps /\ ch ) ) $=
      ( wa wn wi df-an nfndOLD nfimdOLD nfxfrdOLD ) BCGBCHZIZHADBCJAODABNDEACDF
      KLKM $.

    nfand.3OLD $e |- ( ph -> nfOLD x th ) $.
    $( Obsolete proof of ~ nf3and as of 6-Oct-2021.  (Contributed by NM,
       17-Feb-2013.)  (Revised by Mario Carneiro, 16-Oct-2016.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nf3andOLD $p |- ( ph -> nfOLD x ( ps /\ ch /\ th ) ) $=
      ( w3a wa df-3an nfandOLD nfxfrdOLD ) BCDIBCJZDJAEBCDKANDEABCEFGLHLM $.
  $}

  ${
    19.27OLD.1 $e |- nfOLD x ps $.
    $( Obsolete proof of ~ 19.27 as of 6-Oct-2021.  (Contributed by NM,
       21-Jun-1993.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    19.27OLD $p |- ( A. x ( ph /\ ps ) <-> ( A. x ph /\ ps ) ) $=
      ( wa wal 19.26 19.3OLD anbi2i bitri ) ABECFACFZBCFZEKBEABCGLBKBCDHIJ $.
  $}

  ${
    19.28OLD.1 $e |- nfOLD x ph $.
    $( Obsolete proof of ~ 19.28 as of 6-Oct-2021.  (Contributed by NM,
       1-Aug-1993.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    19.28OLD $p |- ( A. x ( ph /\ ps ) <-> ( ph /\ A. x ps ) ) $=
      ( wa wal 19.26 19.3OLD anbi1i bitri ) ABECFACFZBCFZEALEABCGKALACDHIJ $.
  $}

  ${
    nfan1OLD.1 $e |- nfOLD x ph $.
    nfan1OLD.2 $e |- ( ph -> nfOLD x ps ) $.
    $( Obsolete proof of ~ nfan1 as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 3-Oct-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nfan1OLD $p |- nfOLD x ( ph /\ ps ) $=
      ( wa wal nfrdOLD imdistani 19.28OLD sylibr nfiOLD ) ABFZCMABCGZFMCGABNABC
      EHIABCDJKL $.
  $}

  ${
    nfanOLDOLD.1 $e |- nfOLD x ph $.
    nfanOLDOLD.2 $e |- nfOLD x ps $.
    $( Obsolete proof of ~ nfan as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (Proof shortened by Wolf Lammen, 13-Jan-2018.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nfanOLDOLD $p |- nfOLD x ( ph /\ ps ) $=
      ( wnfOLD a1i nfan1OLD ) ABCDBCFAEGH $.

    $( Obsolete proof of ~ nfnan as of 6-Oct-2021.  (Contributed by Scott
       Fenton, 2-Jan-2018.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nfnanOLD $p |- nfOLD x ( ph -/\ ps ) $=
      ( wnan wa wn df-nan nfanOLDOLD nfnOLD nfxfrOLD ) ABFABGZHCABIMCABCDEJKL
      $.

    nfanOLD.3 $e |- nfOLD x ch $.
    $( Obsolete proof of ~ nf3an as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nf3anOLD $p |- nfOLD x ( ph /\ ps /\ ch ) $=
      ( w3a wa df-3an nfanOLDOLD nfxfrOLD ) ABCHABIZCIDABCJMCDABDEFKGKL $.
  $}

  ${
    hbOLD.1 $e |- ( ph -> A. x ph ) $.
    hbOLD.2 $e |- ( ps -> A. x ps ) $.
    $( Obsolete proof of ~ hban as of 6-Oct-2021.  (Contributed by NM,
       14-May-1993.)  (Proof shortened by Wolf Lammen, 2-Jan-2018.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    hbanOLD $p |- ( ( ph /\ ps ) -> A. x ( ph /\ ps ) ) $=
      ( wa nfiOLD nfanOLDOLD nfriOLD ) ABFCABCACDGBCEGHI $.
    hbOLD.3 $e |- ( ch -> A. x ch ) $.
    $( Obsolete proof of ~ hb3an as of 6-Oct-2021.  (Contributed by NM,
       14-Sep-2003.)  (Proof shortened by Wolf Lammen, 2-Jan-2018.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    hb3anOLD $p |- ( ( ph /\ ps /\ ch ) -> A. x ( ph /\ ps /\ ch ) ) $=
      ( w3a nfiOLD nf3anOLD nfriOLD ) ABCHDABCDADEIBDFICDGIJK $.
  $}

  ${
    nfbidOLD.1 $e |- ( ph -> nfOLD x ps ) $.
    nfbidOLD.2 $e |- ( ph -> nfOLD x ch ) $.
    $( Obsolete proof of ~ nfbid as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf Lammen, 29-Dec-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nfbidOLD $p |- ( ph -> nfOLD x ( ps <-> ch ) ) $=
      ( wb wi wa dfbi2 nfimdOLD nfandOLD nfxfrdOLD ) BCGBCHZCBHZIADBCJANODABCDE
      FKACBDFEKLM $.
  $}

  ${
    nfOLD.1 $e |- nfOLD x ph $.
    nfOLD.2 $e |- nfOLD x ps $.
    $( Obsolete proof of ~ nfbi as of 6-Oct-2021.  (Contributed by NM,
       26-May-1993.)  (Revised by Mario Carneiro, 11-Aug-2016.)  (Proof
       shortened by Wolf Lammen, 2-Jan-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    nfbiOLD $p |- nfOLD x ( ph <-> ps ) $=
      ( wb wnfOLD wtru a1i nfbidOLD trud ) ABFCGHABCACGHDIBCGHEIJK $.

    $( Obsolete proof of ~ nfor as of 6-Oct-2021.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 11-Aug-2016.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nforOLD $p |- nfOLD x ( ph \/ ps ) $=
      ( wo wn wi df-or nfnOLD nfimOLD nfxfrOLD ) ABFAGZBHCABIMBCACDJEKL $.

    nfOLD.3 $e |- nfOLD x ch $.
    $( Obsolete proof of ~ nf3or as of 6-Oct-2021.  (Contributed by Mario
       Carneiro, 11-Aug-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nf3orOLD $p |- nfOLD x ( ph \/ ps \/ ch ) $=
      ( w3o wo df-3or nforOLD nfxfrOLD ) ABCHABIZCIDABCJMCDABDEFKGKL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom scheme ax-13 (Quantified Equality)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom of Quantified Equality.  One of the equality and substitution axioms
     of predicate calculus with equality.

     An equivalent way to express this axiom that may be easier to understand
     is ` ( -. x = y -> ( -. x = z -> ( y = z -> A. x y = z ) ) ) ` (see
     ~ ax13b ).  Recall that in the intended interpretation, our variables are
     metavariables ranging over the variables of predicate calculus (the object
     language).  In order for the first antecedent ` -. x = y ` to hold, ` x `
     and ` y ` must have different values and thus cannot be the same
     object-language variable (so they are effectively "distinct variables"
     even though no $d is present).  Similarly, ` x ` and ` z ` cannot be the
     same object-language variable.  Therefore, ` x ` will not occur in the wff
     ` y = z ` when the first two antecedents hold, so analogous to ~ ax-5 ,
     the conclusion ` ( y = z -> A. x y = z ) ` follows.  Note that ~ ax-5
     cannot prove this because its distinct variable ($d) requirement is not
     satisfied directly but only indirectly (outside of Metamath) by the
     argument above.

     The original version of this axiom was ~ ax-c9 and was replaced with this
     shorter ~ ax-13 in December 2015.  The old axiom is proved from this one
     as theorem ~ axc9 .

     The primary purpose of this axiom is to provide a way to introduce the
     quantifier ` A. x ` on ` y = z ` even when ` x ` and ` y ` are substituted
     with the same variable.  In this case, the first antecedent becomes
     ` -. x = x ` and the axiom still holds.

     Although this version is shorter, the original version ~ axc9 may be more
     practical to work with because of the "distinctor" form of its
     antecedents.  A typical application of ~ axc9 is in ~ dvelimh which
     converts a distinct variable pair to the distinctor antecedent
     ` -. A. x x = y ` .  In particular, it is conjectured that it is not
     possible to prove ~ ax6 from ~ ax6v without this axiom.

     This axiom can be weakened if desired by adding distinct variable
     restrictions on pairs ` x , z ` and ` y , z ` .  To show that, we add
     these restrictions to theorem ~ ax13v and use only ~ ax13v for further
     derivations.  Thus, ~ ax13v should be the only theorem referencing this
     axiom.  Other theorems can reference either ~ ax13v (preferred) or ~ ax13
     (if the stronger form is needed).

     This axiom scheme is logically redundant (see ~ ax13w ) but is used as an
     auxiliary axiom scheme to achieve scheme completeness (i.e. so that all
     possible cases of bundling can be proved; see text linked at
     ~ mmtheorems.html#ax6dgen ).  It is not known whether this axiom can be
     derived from the others.  (Contributed by NM, 21-Dec-2015.)
     (New usage is discouraged.) $)
  ax-13 $a |- ( -. x = y -> ( y = z -> A. x y = z ) ) $.

  ${
    $d x z $.  $d y z $.
    $( A weaker version of ~ ax-13 with distinct variable restrictions on pairs
       ` x , z ` and ` y , z ` .  In order to show (with ~ ax13 ) that this
       weakening is still adequate, this should be the only theorem referencing
       ~ ax-13 directly.

       Had we additionally required ` x ` and ` y ` be distinct, too, this
       theorem would have been a direct consequence of ~ ax-5 .  So essentially
       this theorem states, that a distinct variable condition can be replaced
       with an inequality between set variables.  (Contributed by NM,
       30-Jun-2016.) $)
    ax13v $p |- ( -. x = y -> ( y = z -> A. x y = z ) ) $=
      ( ax-13 ) ABCD $.
  $}

  ${
    $d x z w $.  $d y w $.
    $( A version of ~ ax13v with one distinct variable restriction dropped.
       For convenience, ` y ` is kept on the right side of equations.  The
       proof of ~ ax13 bases on ideas from NM, 24-Dec-2015.  (Contributed by
       Wolf Lammen, 8-Sep-2018.)  (New usage is discouraged.) $)
    ax13lem1 $p |- ( -. x = y -> ( z = y -> A. x z = y ) ) $=
      ( vw weq wa wex wal equviniva ax13v equeucl alimdv syl9 impd exlimdv syl5
      wn ) CBEZCDEZBDEZFZDGABEQZRAHZCBDIUBUAUCDUBSTUCUBTTAHSUCABDJSTRACBDKLMNOP
      $.
  $}

  ${
    $d x w $.  $d z w $.  $d y w $.
    $( Derive ~ ax-13 from ~ ax13v and Tarski's FOL. This shows that the
       weakening in ~ ax13v is still sufficient for a complete system.
       (Contributed by NM, 21-Dec-2015.)  (Proof shortened by Wolf Lammen,
       31-Jan-2018.)  Reduce axiom usage (Revised by Wolf Lammen,
       2-Jun-2021.) $)
    ax13 $p |- ( -. x = y -> ( y = z -> A. x y = z ) ) $=
      ( vw weq wn wal wi wa wex equvinv ax13lem1 imp ax7v1 alanimi an4s exlimdv
      syl2an ex syl5bi ax13b mpbir ) ABEFZBCEZUDAGZHZHUCACEFZUFHHUCUGUFUDDBEZDC
      EZIZDJUCUGIZUEBCDKUKUJUEDUKUJUEUCUHUGUIUEUCUHIUHAGZUIAGZUEUGUIIUCUHULABDL
      MUGUIUMACDLMUHUIUDAUHUIUDDBCNMORPSQTSUEABCUAUB $.
  $}

  ${
    $d y w $.  $d x w $.
    $( At least one individual exists.  This is not a theorem of free logic,
       which is sound in empty domains.  For such a logic, we would add this
       theorem as an axiom of set theory (Axiom 0 of [Kunen] p. 10).  In the
       system consisting of ~ ax-4 through ~ ax-9 , all axioms other than
       ~ ax-6 are believed to be theorems of free logic, although the system
       without ~ ax-6 is not complete in free logic.

       It is preferred to use ~ ax6ev when it is sufficient.  (Contributed by
       NM, 14-May-1993.)  Shortened after ~ ax13lem1 became available.
       (Revised by Wolf Lammen, 8-Sep-2018.) $)
    ax6e $p |- E. x x = y $=
      ( vw weq wex 19.8a wn wi wal ax13lem1 ax6ev equtr eximii syl6com exlimiiv
      19.35i pm2.61i ) ABDZRAEZRAFCBDZRGZSHCUATTAISABCJTRAACDTRHAACKACBLMPNCBKO
      Q $.
  $}

  $( Theorem showing that ~ ax-6 follows from the weaker version ~ ax6v .
     (Even though this theorem depends on ~ ax-6 , all references of ~ ax-6 are
     made via ~ ax6v .  An earlier version stated ~ ax6v as a separate axiom,
     but having two axioms caused some confusion.)

     This theorem should be referenced in place of ~ ax-6 so that all proofs
     can be traced back to ~ ax6v .  When possible, use the weaker ~ ax6v
     rather than ~ ax6 since the ~ ax6v derivation is much shorter and requires
     fewer axioms.  (Contributed by NM, 12-Nov-2013.)  (Revised by NM,
     25-Jul-2015.)  (Proof shortened by Wolf Lammen, 4-Feb-2018.) $)
  ax6 $p |- -. A. x -. x = y $=
    ( weq wex wn wal ax6e df-ex mpbi ) ABCZADJEAFEABGJAHI $.

  $( Show that the original axiom ~ ax-c10 can be derived from ~ ax6 and ~ axc7
     (on top of propositional calculus, ~ ax-gen , and ~ ax-4 ).  See
     ~ ax6fromc10 for the rederivation of ~ ax6 from ~ ax-c10 .

     Normally, ~ axc10 should be used rather than ~ ax-c10 , except by theorems
     specifically studying the latter's properties.  (Contributed by NM,
     5-Aug-1993.)  (Proof modification is discouraged.) $)
  axc10 $p |- ( A. x ( x = y -> A. x ph ) -> ph ) $=
    ( weq wal wi wn ax6 con3 al2imi mtoi axc7 syl ) BCDZABEZFZBEZOGZBEZGAQSNGZB
    EBCHPRTBNOIJKABLM $.

  $( Closed theorem form of ~ spim .  (Contributed by NM, 15-Jan-2008.)
     (Revised by Mario Carneiro, 17-Oct-2016.)  (Proof shortened by Wolf
     Lammen, 24-Feb-2018.) $)
  spimt $p |- ( ( F/ x ps /\ A. x ( x = y -> ( ph -> ps ) ) ) ->
                                                         ( A. x ph -> ps ) ) $=
    ( weq wi wal wex wnf ax6e exim mpi 19.35 sylib 19.9t biimpd sylan9r ) CDEZA
    BFZFCGZACGZBCHZBCIZBTSCHZUAUBFTRCHUDCDJRSCKLABCMNUCUBBBCOPQ $.

  ${
    spim.1 $e |- F/ x ps $.
    spim.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Specialization, using implicit substitution.  Compare Lemma 14 of
       [Tarski] p. 70.  The ~ spim series of theorems requires that only one
       direction of the substitution hypothesis hold.  (Contributed by NM,
       10-Jan-1993.)  (Revised by Mario Carneiro, 3-Oct-2016.)  (Proof
       shortened by Wolf Lammen, 18-Feb-2018.) $)
    spim $p |- ( A. x ph -> ps ) $=
      ( weq wi ax6e eximii 19.36i ) ABCECDGABHCCDIFJK $.
  $}

  ${
    spimed.1 $e |- ( ch -> F/ x ph ) $.
    spimed.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Deduction version of ~ spime .  (Contributed by NM, 14-May-1993.)
       (Revised by Mario Carneiro, 3-Oct-2016.)  (Proof shortened by Wolf
       Lammen, 19-Feb-2018.) $)
    spimed $p |- ( ch -> ( ph -> E. x ps ) ) $=
      ( wal wex nf5rd weq wi ax6e eximii 19.35i syl6 ) CAADHBDICADFJABDDEKABLDD
      EMGNOP $.
  $}

  ${
    spime.1 $e |- F/ x ph $.
    spime.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Existential introduction, using implicit substitution.  Compare Lemma 14
       of [Tarski] p. 70.  (Contributed by NM, 7-Aug-1994.)  (Revised by Mario
       Carneiro, 3-Oct-2016.)  (Proof shortened by Wolf Lammen, 6-Mar-2018.) $)
    spime $p |- ( ph -> E. x ps ) $=
      ( wex wi wtru wnf a1i spimed trud ) ABCGHABICDACJIEKFLM $.
  $}

  ${
    $d x ps $.
    spimv.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( A version of ~ spim with a distinct variable requirement instead of a
       bound variable hypothesis.  See also ~ spimv1 and ~ spimvw .  See also
       ~ spimvALT .  (Contributed by NM, 31-Jul-1993.)  Removed dependency on
       ~ ax-10 .  (Revised by BJ, 29-Nov-2020.) $)
    spimv $p |- ( A. x ph -> ps ) $=
      ( weq wi ax6e eximii 19.36iv ) ABCCDFABGCCDHEIJ $.

    $( Alternate proof of ~ spimv .  Shorter but requires more axioms.
       (Contributed by NM, 31-Jul-1993.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    spimvALT $p |- ( A. x ph -> ps ) $=
      ( nfv spim ) ABCDBCFEG $.
  $}

  ${
    $d x ph $.
    spimev.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Distinct-variable version of ~ spime .  (Contributed by NM,
       10-Jan-1993.) $)
    spimev $p |- ( ph -> E. x ps ) $=
      ( nfv spime ) ABCDACFEG $.
  $}

  ${
    $d x ps $.
    spv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Specialization, using implicit substitution.  (Contributed by NM,
       30-Aug-1993.) $)
    spv $p |- ( A. x ph -> ps ) $=
      ( weq biimpd spimv ) ABCDCDFABEGH $.
  $}

  ${
    spei.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    spei.2 $e |- ps $.
    $( Inference from existential specialization, using implicit substitution.
       Remove a distinct variable constraint.  (Contributed by NM,
       19-Aug-1993.)  (Proof shortened by Wolf Lammen, 12-May-2018.) $)
    spei $p |- E. x ph $=
      ( weq ax6e mpbiri eximii ) CDGZACCDHKABFEIJ $.
  $}

  ${
    chvar.1 $e |- F/ x ps $.
    chvar.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    chvar.3 $e |- ph $.
    $( Implicit substitution of ` y ` for ` x ` into a theorem.  (Contributed
       by Raph Levien, 9-Jul-2003.)  (Revised by Mario Carneiro,
       3-Oct-2016.) $)
    chvar $p |- ps $=
      ( weq biimpd spim mpg ) ABCABCDECDHABFIJGK $.
  $}

  ${
    $d x ps $.
    chvarv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    chvarv.2 $e |- ph $.
    $( Implicit substitution of ` y ` for ` x ` into a theorem.  (Contributed
       by NM, 20-Apr-1994.)  (Proof shortened by Wolf Lammen, 22-Apr-2018.)
       Remove dependency on ~ ax-10 .  (Revised by Wolf Lammen,
       14-Jul-2021.) $)
    chvarv $p |- ps $=
      ( spv mpg ) ABCABCDEGFH $.

    $( Obsolete proof of ~ chvarv as of 14-Jul-2021.  (Contributed by NM,
       20-Apr-1994.)  (Proof shortened by Wolf Lammen, 22-Apr-2018.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    chvarvOLD $p |- ps $=
      ( nfv chvar ) ABCDBCGEFH $.
  $}

  ${
    cbv3.1 $e |- F/ y ph $.
    cbv3.2 $e |- F/ x ps $.
    cbv3.3 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution, that
       does not use ~ ax-c9 .  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by Wolf Lammen, 12-May-2018.) $)
    cbv3 $p |- ( A. x ph -> A. y ps ) $=
      ( wal nfal spim alrimi ) ACHBDADCEIABCDFGJK $.
  $}

  ${
    cbv3h.1 $e |- ( ph -> A. y ph ) $.
    cbv3h.2 $e |- ( ps -> A. x ps ) $.
    cbv3h.3 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 8-Jun-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.)  (Proof shortened by Wolf Lammen, 12-May-2018.) $)
    cbv3h $p |- ( A. x ph -> A. y ps ) $=
      ( nf5i cbv3 ) ABCDADEHBCFHGI $.
  $}

  ${
    cbv1.1 $e |- F/ x ph $.
    cbv1.2 $e |- F/ y ph $.
    cbv1.3 $e |- ( ph -> F/ y ps ) $.
    cbv1.4 $e |- ( ph -> F/ x ch ) $.
    cbv1.5 $e |- ( ph -> ( x = y -> ( ps -> ch ) ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
       3-Oct-2016.)  Format hypotheses to common style.  (Revised by Wolf
       Lammen, 13-May-2018.) $)
    cbv1 $p |- ( ph -> ( A. x ps -> A. y ch ) ) $=
      ( wal wi nfim1 weq com12 a2d cbv3 19.21 3imtr3i pm2.86i ) ABDKZCEKZABLZDK
      ACLZEKAUALAUBLUCUDDEABEGHMACDFIMDENZABCAUEBCLJOPQABDFRACEGRST $.
  $}

  ${
    cbv1h.1 $e |- ( ph -> ( ps -> A. y ps ) ) $.
    cbv1h.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    cbv1h.3 $e |- ( ph -> ( x = y -> ( ps -> ch ) ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 11-May-1993.)  (Proof shortened by Wolf Lammen,
       13-May-2018.) $)
    cbv1h $p |- ( A. x A. y ph -> ( A. x ps -> A. y ch ) ) $=
      ( wal nfa1 nfa2 wi 2sp syl nf5d weq cbv1 ) AEIZDIZBCDERDJZAEDKZSBEUASABBE
      ILADEMZFNOSCDTSACCDILUBGNOSADEPBCLLUBHNQ $.
  $}

  ${
    cbv2h.1 $e |- ( ph -> ( ps -> A. y ps ) ) $.
    cbv2h.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    cbv2h.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 11-May-1993.) $)
    cbv2h $p |- ( A. x A. y ph -> ( A. x ps <-> A. y ch ) ) $=
      ( wal weq wb wi biimp syl6 cbv1h equcomi biimpr syl56 alcoms impbid ) AEI
      DIBDIZCEIZABCDEFGADEJZBCKZBCLHBCMNOAUBUALEDACBEDGFEDJUCAUDCBLEDPHBCQROST
      $.
  $}

  ${
    cbv2.1 $e |- F/ x ph $.
    cbv2.2 $e |- F/ y ph $.
    cbv2.3 $e |- ( ph -> F/ y ps ) $.
    cbv2.4 $e |- ( ph -> F/ x ch ) $.
    cbv2.5 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
       3-Oct-2016.)  Format hypotheses to common style.  (Revised by Wolf
       Lammen, 13-May-2018.) $)
    cbv2 $p |- ( ph -> ( A. x ps <-> A. y ch ) ) $=
      ( wal wb nf5ri alrimi nf5rd cbv2h syl ) AAEKZDKBDKCEKLARDFAEGMNABCDEABEHO
      ACDIOJPQ $.
  $}

  ${
    cbval.1 $e |- F/ y ph $.
    cbval.2 $e |- F/ x ps $.
    cbval.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 13-May-1993.)  (Revised by Mario Carneiro,
       3-Oct-2016.) $)
    cbval $p |- ( A. x ph <-> A. y ps ) $=
      ( wal weq biimpd cbv3 wi biimprd equcoms impbii ) ACHBDHABCDEFCDIZABGJKBA
      DCFEBALCDPABGMNKO $.

    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 21-Jun-1993.) $)
    cbvex $p |- ( E. x ph <-> E. y ps ) $=
      ( wn wal wex nfn weq notbid cbval notbii df-ex 3bitr4i ) AHZCIZHBHZDIZHAC
      JBDJSUARTCDADEKBCFKCDLABGMNOACPBDPQ $.
  $}

  ${
    $d y ph $.  $d x ps $.
    cbvalv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 5-Aug-1993.)  Remove dependency on ~ ax-10 .
       (Revised by Wolf Lammen, 17-Jul-2021.) $)
    cbvalv $p |- ( A. x ph <-> A. y ps ) $=
      ( wal ax-5 hbal spv alrimih weq wb equcoms bicomd impbii ) ACFZBDFZPBDADC
      ADGHABCDEIJQACBCDBCGHBADCDCKABABLCDEMNIJO $.

    $( Obsolete proof of ~ cbvalv as of 17-Jul-2021.  (Contributed by NM,
       5-Aug-1993.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    cbvalvOLD $p |- ( A. x ph <-> A. y ps ) $=
      ( nfv cbval ) ABCDADFBCFEG $.

    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 21-Jun-1993.)  Remove dependency on ~ ax-10 .
       (Revised by Wolf Lammen, 17-Jul-2021.) $)
    cbvexv $p |- ( E. x ph <-> E. y ps ) $=
      ( wn wal wex weq notbid cbvalv notbii df-ex 3bitr4i ) AFZCGZFBFZDGZFACHBD
      HPROQCDCDIABEJKLACMBDMN $.

    $( Obsolete proof of ~ cbvexv as of 17-Jul-2021.  (Contributed by NM,
       21-Jun-1993.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    cbvexvOLD $p |- ( E. x ph <-> E. y ps ) $=
      ( nfv cbvex ) ABCDADFBCFEG $.
  $}

  ${
    $d x ph $.  $d x ch $.
    cbvald.1 $e |- F/ y ph $.
    cbvald.2 $e |- ( ph -> F/ y ps ) $.
    cbvald.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Deduction used to change bound variables, using implicit substitution,
       particularly useful in conjunction with ~ dvelim .  (Contributed by NM,
       2-Jan-2002.)  (Revised by Mario Carneiro, 6-Oct-2016.)  (Revised by Wolf
       Lammen, 13-May-2018.) $)
    cbvald $p |- ( ph -> ( A. x ps <-> A. y ch ) ) $=
      ( nfv nfvd cbv2 ) ABCDEADIFGACDJHK $.

    $( Deduction used to change bound variables, using implicit substitution,
       particularly useful in conjunction with ~ dvelim .  (Contributed by NM,
       2-Jan-2002.)  (Revised by Mario Carneiro, 6-Oct-2016.) $)
    cbvexd $p |- ( ph -> ( E. x ps <-> E. y ch ) ) $=
      ( wn wal wex nfnd weq wb notbi syl6ib cbvald notbid df-ex 3bitr4g ) ABIZD
      JZICIZEJZIBDKCEKAUBUDAUAUCDEFABEGLADEMBCNUAUCNHBCOPQRBDSCEST $.
  $}

  ${
    $d y x $.  $d y z $.  $d w x $.  $d w z $.
    cbval2.1 $e |- F/ z ph $.
    cbval2.2 $e |- F/ w ph $.
    cbval2.3 $e |- F/ x ps $.
    cbval2.4 $e |- F/ y ps $.
    cbval2.5 $e |- ( ( x = z /\ y = w ) -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 22-Dec-2003.)  (Revised by Mario Carneiro,
       6-Oct-2016.)  (Proof shortened by Wolf Lammen, 22-Apr-2018.) $)
    cbval2 $p |- ( A. x A. y ph <-> A. z A. w ps ) $=
      ( wal nfal weq wi nfv nfim wb cbval 19.21v pm5.74d 3bitr3i pm5.74ri
      expcom ) ADLZBFLZCEAEDGMBCFIMCENZUEUFUGAOZDLUGBOZFLUGUEOUGUFOUHUIDFUGAFUG
      FPHQUGBDUGDPJQDFNZUGABUGUJABRKUDUASUGADTUGBFTUBUCS $.

    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 14-Sep-2003.)  (Revised by Mario Carneiro,
       6-Oct-2016.)  (Proof shortened by Wolf Lammen, 16-Jun-2019.) $)
    cbvex2 $p |- ( E. x E. y ph <-> E. z E. w ps ) $=
      ( wn wal wex nfn weq wa notbid cbval2 2exnaln notbii 3bitr4i ) ALZDMCMZLB
      LZFMEMZLADNCNBFNENUDUFUCUECDEFAEGOAFHOBCIOBDJOCEPDFPQABKRSUAACDTBEFTUB $.
  $}

  ${
    $d ps y $.  $d ch x $.  $d ph x $.  $d ph y $.
    cbvaldva.1 $e |- ( ( ph /\ x = y ) -> ( ps <-> ch ) ) $.
    $( Rule used to change the bound variable in a universal quantifier with
       implicit substitution.  Deduction form.  (Contributed by David Moews,
       1-May-2017.)  Remove dependency on ~ ax-10 .  (Revised by Wolf Lammen,
       18-Jul-2021.) $)
    cbvaldva $p |- ( ph -> ( A. x ps <-> A. y ch ) ) $=
      ( wal wi weq wb expcom pm5.74d cbvalv 19.21v 3bitr3i pm5.74ri ) ABDGZCEGZ
      ABHZDGACHZEGAQHARHSTDEDEIZABCAUABCJFKLMABDNACENOP $.

    $( Obsolete proof of ~ cbvaldva as of 18-Jul-2021.  (Contributed by David
       Moews, 1-May-2017.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    cbvaldvaOLD $p |- ( ph -> ( A. x ps <-> A. y ch ) ) $=
      ( nfv nfvd weq wb ex cbvald ) ABCDEAEGABEHADEIBCJFKL $.

    $( Rule used to change the bound variable in an existential quantifier with
       implicit substitution.  Deduction form.  (Contributed by David Moews,
       1-May-2017.)  Remove dependency on ~ ax-10 .  (Revised by Wolf Lammen,
       18-Jul-2021.) $)
    cbvexdva $p |- ( ph -> ( E. x ps <-> E. y ch ) ) $=
      ( wex wn wal weq wa notbid cbvaldva alnex 3bitr3g con4bid ) ABDGZCEGZABHZ
      DICHZEIQHRHASTDEADEJKBCFLMBDNCENOP $.

    $( Obsolete proof of ~ cbvexdva as of 18-Jul-2021.  (Contributed by David
       Moews, 1-May-2017.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    cbvexdvaOLD $p |- ( ph -> ( E. x ps <-> E. y ch ) ) $=
      ( nfv nfvd weq wb ex cbvexd ) ABCDEAEGABEHADEIBCJFKL $.
  $}

  ${
    $d z w ph $.  $d x y ps $.  $d x w $.  $d z y $.
    cbval2v.1 $e |- ( ( x = z /\ y = w ) -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 4-Feb-2005.)  Remove dependency on ~ ax-10 .
       (Revised by Wolf Lammen, 18-Jul-2021.) $)
    cbval2v $p |- ( A. x A. y ph <-> A. z A. w ps ) $=
      ( wal weq cbvaldva cbvalv ) ADHBFHCECEIABDFGJK $.

    $( Obsolete proof of ~ cbval2v as of 18-Jul-2021.  (Contributed by NM,
       4-Feb-2005.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    cbval2vOLD $p |- ( A. x A. y ph <-> A. z A. w ps ) $=
      ( nfv cbval2 ) ABCDEFAEHAFHBCHBDHGI $.

    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 26-Jul-1995.)  Remove dependency on ~ ax-10 .
       (Revised by Wolf Lammen, 18-Jul-2021.) $)
    cbvex2v $p |- ( E. x E. y ph <-> E. z E. w ps ) $=
      ( wex weq cbvexdva cbvexv ) ADHBFHCECEIABDFGJK $.

    $( Obsolete proof of ~ cbvex2v as of 18-Jul-2021.  (Contributed by NM,
       26-Jul-1995.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    cbvex2vOLD $p |- ( E. x E. y ph <-> E. z E. w ps ) $=
      ( nfv cbvex2 ) ABCDEFAEHAFHBCHBDHGI $.
  $}

  ${
    $v f $.
    $v g $.
    $( Define temporary individual variables. $)
    cbvex4v.vf $f setvar f $.
    cbvex4v.vg $f setvar g $.
    $d w z ch $.  $d u v ph $.  $d x y ps $.  $d f g ps $.  $d f w $.
    $d g z $.  $d u v w x y z $.
    cbvex4v.1 $e |- ( ( x = v /\ y = u ) -> ( ph <-> ps ) ) $.
    cbvex4v.2 $e |- ( ( z = f /\ w = g ) -> ( ps <-> ch ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 26-Jul-1995.) $)
    cbvex4v $p |- ( E. x E. y E. z E. w ph <-> E. v E. u E. f E. g ch ) $=
      ( wex weq wa 2exbidv cbvex2v 2exbii bitri ) AGNFNZENDNBGNFNZINHNCKNJNZINH
      NUAUBDEHIDHOEIOPABFGLQRUBUCHIBCFGJKMRST $.
  $}

  $( Lemma used in proofs of implicit substitution properties.  The converse
     requires either a dv condition ( ~ sb56 ) or a non-freeness hypothesis
     ( ~ equs45f ).  See ~ equs4v for a version requiring fewer axioms.
     (Contributed by NM, 10-May-1993.)  (Proof shortened by Mario Carneiro,
     20-May-2014.)  (Proof shortened by Wolf Lammen, 5-Feb-2018.) $)
  equs4 $p |- ( A. x ( x = y -> ph ) -> E. x ( x = y /\ ph ) ) $=
    ( weq wi wal wex wa ax6e exintr mpi ) BCDZAEBFLBGLAHBGBCILABJK $.

  ${
    equsal.1 $e |- F/ x ps $.
    equsal.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( An equivalence related to implicit substitution.  See ~ equsalvw and
       ~ equsalv for versions with dv conditions proved from fewer axioms.  See
       also the dual form ~ equsex .  (Contributed by NM, 2-Jun-1993.)  (Proof
       shortened by Andrew Salmon, 12-Aug-2011.)  (Revised by Mario Carneiro,
       3-Oct-2016.)  (Proof shortened by Wolf Lammen, 5-Feb-2018.) $)
    equsal $p |- ( A. x ( x = y -> ph ) <-> ps ) $=
      ( weq wi wal wex 19.23 pm5.74i albii ax6e a1bi 3bitr4i ) CDGZBHZCIQCJZBHQ
      AHZCIBQBCEKTRCQABFLMSBCDNOP $.

    $( An equivalence related to implicit substitution.  See ~ equsexvw and
       ~ equsexv for versions with dv conditions proved from fewer axioms.  See
       also the dual form ~ equsal .  See ~ equsexALT for an alternate proof.
       (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
       3-Oct-2016.)  (Proof shortened by Wolf Lammen, 6-Feb-2018.) $)
    equsex $p |- ( E. x ( x = y /\ ph ) <-> ps ) $=
      ( weq wa wex biimpa exlimi wi wal equsal equs4 sylbir impbii ) CDGZAHZCIZ
      BSBCERABFJKBRALCMTABCDEFNACDOPQ $.

    $( Alternate proof of ~ equsex .  This proves the result directly, instead
       of as a corollary of ~ equsal via ~ equs4 .  Note in particular that
       only existential quantifiers appear in the proof and that the only step
       requiring ~ ax-13 is ~ ax6e .  This proof mimics that of ~ equsal (in
       particular, note that ~ pm5.32i , ~ exbii , ~ 19.41 , ~ mpbiran
       correspond respectively to ~ pm5.74i , ~ albii , ~ 19.23 , ~ a1bi ).
       (Contributed by BJ, 20-Aug-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    equsexALT $p |- ( E. x ( x = y /\ ph ) <-> ps ) $=
      ( weq wa wex pm5.32i exbii ax6e 19.41 mpbiran bitri ) CDGZAHZCIPBHZCIZBQR
      CPABFJKSPCIBCDLPBCEMNO $.
  $}

  ${
    equsalh.1 $e |- ( ps -> A. x ps ) $.
    equsalh.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( An equivalence related to implicit substitution.  See ~ equsalhw for a
       version with a dv condition requiring fewer axioms.  (Contributed by NM,
       2-Jun-1993.) $)
    equsalh $p |- ( A. x ( x = y -> ph ) <-> ps ) $=
      ( nf5i equsal ) ABCDBCEGFH $.

    $( An equivalence related to implicit substitution.  See ~ equsexhv for a
       version with a dv condition which does not require ~ ax-13 .
       (Contributed by NM, 5-Aug-1993.) $)
    equsexh $p |- ( E. x ( x = y /\ ph ) <-> ps ) $=
      ( nf5i equsex ) ABCDBCEGFH $.
  $}

  ${
    $d w x z $.  $d w y $.
    $( Lemma for ~ nfeqf2 .  This lemma is equivalent to ~ ax13v with one
       distinct variable constraint removed.  (Contributed by Wolf Lammen,
       8-Sep-2018.)  Reduce axiom usage.  (Revised by Wolf Lammen,
       18-Oct-2020.)  (New usage is discouraged.) $)
    ax13lem2 $p |- ( -. x = y -> ( E. x z = y -> z = y ) ) $=
      ( vw weq wn wex wi wal ax13lem1 equeucl eximi 19.36v syl9 alrimdv equequ2
      sylib equsalvw syl6ib ) ABEFZCBEZAGZDBEZCDEZHZDIUATUBUEDTUCUCAIZUBUDABDJU
      BUEAGUFUDHUAUEACDBKLUCUDAMQNOUDUADBDBCPRS $.
  $}

  ${
    $d x z $.
    $( An equation between setvar is free of any other setvar.  (Contributed by
       Wolf Lammen, 9-Jun-2019.) $)
    nfeqf2 $p |- ( -. A. x x = y -> F/ x z = y ) $=
      ( weq wal wn wex wnf exnal nfnf1 wi ax13lem2 ax13lem1 df-nf sylibr exlimi
      syld sylbir ) ABDZAEFSFZAGCBDZAHZSAITUBAUAAJTUAAGZUAAEZKUBTUCUAUDABCLABCM
      QUAANOPR $.
  $}

  ${
    $d x z $.
    $( Quantifier introduction when one pair of variables is distinct.
       (Contributed by NM, 2-Jan-2002.)  (Revised by NM, 20-Jul-2015.)  Remove
       dependency on ~ ax-11 .  (Revised by Wolf Lammen, 8-Sep-2018.) $)
    dveeq2 $p |- ( -. A. x x = y -> ( z = y -> A. x z = y ) ) $=
      ( weq wal wn nfeqf2 nf5rd ) ABDAEFCBDAABCGH $.
  $}

  ${
    $d x z $.
    $( An equation between setvar is free of any other setvar.  (Contributed by
       Wolf Lammen, 10-Jun-2019.) $)
    nfeqf1 $p |- ( -. A. x x = y -> F/ x y = z ) $=
      ( weq wal wn wnf nfeqf2 equcom nfbii sylib ) ABDAEFCBDZAGBCDZAGABCHLMACBI
      JK $.
  $}

  ${
    $d x z $.
    $( Quantifier introduction when one pair of variables is distinct.
       (Contributed by NM, 2-Jan-2002.)  Remove dependency on ~ ax-11 .
       (Revised by Wolf Lammen, 8-Sep-2018.) $)
    dveeq1 $p |- ( -. A. x x = y -> ( y = z -> A. x y = z ) ) $=
      ( weq wal wn nfeqf1 nf5rd ) ABDAEFBCDAABCGH $.
  $}

  ${
    $d x w $.  $d y w $.  $d z w $.
    $( A variable is effectively not free in an equality if it is not either of
       the involved variables. ` F/ ` version of ~ ax-c9 .  (Contributed by
       Mario Carneiro, 6-Oct-2016.)  Remove dependency on ~ ax-11 .  (Revised
       by Wolf Lammen, 6-Sep-2018.) $)
    nfeqf $p |- ( ( -. A. z z = x /\ -. A. z z = y ) -> F/ z x = y ) $=
      ( vw weq wal wn nfna1 nfan wex equviniva dveeq1 imp equtr2 alanimi syl2an
      wa an4s ex exlimdv syl5 nf5d ) CAEZCFGZCBEZCFGZQZABEZCUDUFCUCCHUECHIUHADE
      ZBDEZQZDJUGUHCFZABDKUGUKULDUGUKULUDUIUFUJULUDUIQUICFZUJCFZULUFUJQUDUIUMCA
      DLMUFUJUNCBDLMUIUJUHCABDNOPRSTUAUB $.
  $}

  $( Derive set.mm's original ~ ax-c9 from the shorter ~ ax-13 .  (Contributed
     by NM, 29-Nov-2015.)  (Revised by NM, 24-Dec-2015.)  (Proof shortened by
     Wolf Lammen, 29-Apr-2018.) $)
  axc9 $p |- ( -. A. z z = x -> ( -. A. z z = y
              -> ( x = y -> A. z x = y ) ) ) $=
    ( weq wal wn wi wa nfeqf nf5rd ex ) CADCEFZCBDCEFZABDZNCEGLMHNCABCIJK $.

  ${
    $d x z $.  $d y z $.  $d z ph $.
    $( Derivation of set.mm's original ~ ax-c15 from ~ ax-c11n and the shorter
       ~ ax-12 that has replaced it.

       Theorem ~ ax12 shows the reverse derivation of ~ ax-12 from ~ ax-c15 .

       Normally, ~ axc15 should be used rather than ~ ax-c15 , except by
       theorems specifically studying the latter's properties.  (Contributed by
       NM, 2-Feb-2007.)  (Proof shortened by Wolf Lammen, 21-Apr-2018.) $)
    axc15 $p |- ( -. A. x x = y ->
                 ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $=
      ( vz weq wal wn wex wi ax6ev dveeq2 ax12v equequ2 sps imbi1d albid imbi2d
      wb nfa1 imbi12d mpbii syl6 exlimdv mpi ) BCEZBFGZDCEZDHUEAUEAIZBFZIZIZDCJ
      UFUGUKDUFUGUGBFZUKBCDKULBDEZAUMAIZBFZIZIUKABDLULUMUEUPUJUGUMUERBDCBMNZULU
      OUIAULUNUHBUGBSULUMUEAUQOPQTUAUBUCUD $.
  $}

  $( Rederivation of axiom ~ ax-12 from ~ ax12v (used only via ~ sp ) ,
     ~ axc11r , and ~ axc15 (on top of Tarski's FOL).  (Contributed by NM,
     22-Jan-2007.)  Proof uses contemporary axioms.  (Revised by Wolf Lammen,
     8-Aug-2020.)  (Proof shortened by BJ, 4-Jul-2021.) $)
  ax12 $p |- ( x = y -> ( A. y ph -> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wi axc11r ala1 syl6 a1d wn sp axc15 syl7 pm2.61i ) BCDZBEZPACEZPA
    FBEZFZFQTPQRABESACBGAPBHIJRAQKPSACLABCMNO $.

  $( Alternate proof of ~ ax13 from FOL, ~ sp , and ~ axc9 .  (Contributed by
     NM, 21-Dec-2015.)  (Proof shortened by Wolf Lammen, 31-Jan-2018.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  ax13ALT $p |- ( -. x = y -> ( y = z -> A. x y = z ) ) $=
    ( weq wn wal wi sp con3i axc9 syl2im ax13b mpbir ) ABDZEZBCDZPAFZGZGOACDZEZ
    RGGONAFZETSAFZERUANNAHIUBSSAHIBCAJKQABCLM $.

  ${
    $d w x $.  $d w y $.
    $( Alternate version of ~ axc11nlemOLD2 used in an older proof.
       (Contributed by NM, 8-Jul-2016.)  (Proof shortened by Wolf Lammen,
       17-Feb-2018.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    axc11nlemALT $p |- ( A. x x = w -> A. y y = x ) $=
      ( weq wal cbvaev equequ2 biimprd al2imi syl5com dveeq1 spsd com12 pm2.61d
      wn con1d ) ACDZAEZQBEZBADZBEZRBCDZBESUAACBFQUBTBQTUBACBGHIJRUASUAOZRSUCQS
      ABACKLMPN $.
  $}

  ${
    $d x z $.  $d y z $.
    $( Derive set.mm's original ~ ax-c11n from others.  Commutation law for
       identical variable specifiers.  The antecedent and consequent are true
       when ` x ` and ` y ` are substituted with the same variable.  Lemma L12
       in [Megill] p. 445 (p. 12 of the preprint).  If a disjoint variable
       condition is added on ` x ` and ` y ` , then this becomes an instance of
       ~ aevlem .  Use ~ aecom instead when this does not lengthen the proof.
       (Contributed by NM, 10-May-1993.)  (Revised by NM, 7-Nov-2015.)  (Proof
       shortened by Wolf Lammen, 6-Mar-2018.)  (Revised by Wolf Lammen,
       30-Nov-2019.)  (Proof shortened by BJ, 29-Mar-2021.)  (Proof shortened
       by Wolf Lammen, 2-Jul-2021.) $)
    axc11n $p |- ( A. x x = y -> A. y y = x ) $=
      ( vz weq wal wn dveeq1 com12 axc11r aev syl6 syl9 ax6evr exlimiiv pm2.18d
      wi ) ABDAEZBADBEZACDZQRFZRPPCSTSBEZQRTSUABACGHQUASAERSBAIACBABJKLCAMNO $.

    $( Obsolete proof of ~ axc11n as of 2-Jul-2021.  (Contributed by NM,
       10-May-1993.)  (Revised by NM, 7-Nov-2015.)  (Proof shortened by Wolf
       Lammen, 6-Mar-2018.)  (Revised by Wolf Lammen, 30-Nov-2019.)  (Proof
       shortened by BJ, 29-Mar-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    axc11nOLD $p |- ( A. x x = y -> A. y y = x ) $=
      ( vz weq wal wn wi equcomi dveeq1 syl5com axc11r syl6 syl9 ax6ev exlimiiv
      aev pm2.18d ) ABDAEZBADBEZCADZRSFZSGGCTUAACDZBEZRSTUBUAUCCAHBACIJRUCUBAES
      UBBAKACBABPLMCANOQ $.

    $( Old proof of ~ axc11n .  Obsolete as of 29-Mar-2021.  (Contributed by
       NM, 10-May-1993.)  (Revised by NM, 7-Nov-2015.)  (Proof shortened by
       Wolf Lammen, 6-Mar-2018.)  Adapt to a modification of ~ axc11nlemOLD2 .
       (Revised by Wolf Lammen, 30-Nov-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    axc11nOLDOLD $p |- ( A. x x = y -> A. y y = x ) $=
      ( vz weq wal wn wi equcomi dveeq1 syl5com axc11r axc11nlemOLD2 syl6 ax6ev
      syl9 exlimiiv pm2.18d ) ABDAEZBADBEZCADZRSFZSGGCTUAACDZBEZRSTUBUAUCCAHBAC
      IZJRUCUBAESUBBAKABCUDLMOCANPQ $.
  $}

  ${
    $d x z $.  $d y z $.
    $( Alternate proof of ~ axc11n from ~ axc11nlemALT .  (Contributed by NM,
       10-May-1993.)  (Revised by NM, 7-Nov-2015.)  (Proof shortened by Wolf
       Lammen, 6-Mar-2018.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    axc11nALT $p |- ( A. x x = y -> A. y y = x ) $=
      ( vz weq wn wi equcomi dveeq1 syl5com axc11r axc11nlemALT syl6 syl9 ax6ev
      wal exlimiiv pm2.18d ) ABDAOZBADBOZCADZRSEZSFFCTUAACDZBOZRSTUBUAUCCAGBACH
      IRUCUBAOSUBBAJABCKLMCANPQ $.
  $}

  $( Commutation law for identical variable specifiers.  Both sides of the
     biconditional are true when ` x ` and ` y ` are substituted with the same
     variable.  (Contributed by NM, 10-May-1993.)  Changed to a biconditional.
     (Revised by BJ, 26-Sep-2019.) $)
  aecom $p |- ( A. x x = y <-> A. y y = x ) $=
    ( weq wal axc11n impbii ) ABCADBACBDABEBAEF $.

  ${
    aecoms.1 $e |- ( A. x x = y -> ph ) $.
    $( A commutation rule for identical variable specifiers.  (Contributed by
       NM, 10-May-1993.) $)
    aecoms $p |- ( A. y y = x -> ph ) $=
      ( weq wal aecom sylbi ) CBECFBCEBFACBGDH $.
  $}

  ${
    naecoms.1 $e |- ( -. A. x x = y -> ph ) $.
    $( A commutation rule for distinct variable specifiers.  (Contributed by
       NM, 2-Jan-2002.) $)
    naecoms $p |- ( -. A. y y = x -> ph ) $=
      ( weq wal aecom sylnbir ) CBECFBCEBFABCGDH $.
  $}

  $( Show that ~ ax-c11 can be derived from ~ ax-c11n in the form of ~ axc11n .
     Normally, ~ axc11 should be used rather than ~ ax-c11 , except by theorems
     specifically studying the latter's properties.  (Contributed by NM,
     16-May-2008.)  (Proof shortened by Wolf Lammen, 21-Apr-2018.) $)
  axc11 $p |- ( A. x x = y -> ( A. x ph -> A. y ph ) ) $=
    ( wal wi axc11r aecoms ) ABDACDECBABCFG $.

  $( All variables are effectively bound in an identical variable specifier.
     (Contributed by NM, 13-May-1993.)  (Proof shortened by Wolf Lammen,
     21-Apr-2018.) $)
  hbae $p |- ( A. x x = y -> A. z A. x x = y ) $=
    ( weq wal wi wn sp axc9 syl7 axc11r axc11 pm2.43i syl5 pm2.61ii axc4i ax-11
    syl ) ABDZAEZSCEZAETCESUAACADCEZCBDCEZTUAFTSUBGUCGUASAHABCIJSACKTSBEZUCUATU
    DSABLMSBCKNOPSACQR $.

  $( All variables are effectively bound in an identical variable specifier.
     (Contributed by Mario Carneiro, 11-Aug-2016.) $)
  nfae $p |- F/ z A. x x = y $=
    ( weq wal hbae nf5i ) ABDAECABCFG $.

  $( All variables are effectively bound in a distinct variable specifier.
     Lemma L19 in [Megill] p. 446 (p. 14 of the preprint).  (Contributed by NM,
     13-May-1993.) $)
  hbnae $p |- ( -. A. x x = y -> A. z -. A. x x = y ) $=
    ( weq wal hbae hbn ) ABDAECABCFG $.

  $( All variables are effectively bound in a distinct variable specifier.
     (Contributed by Mario Carneiro, 11-Aug-2016.) $)
  nfnae $p |- F/ z -. A. x x = y $=
    ( weq wal nfae nfn ) ABDAECABCFG $.

  ${
    hbnaes.1 $e |- ( A. z -. A. x x = y -> ph ) $.
    $( Rule that applies ~ hbnae to antecedent.  (Contributed by NM,
       15-May-1993.) $)
    hbnaes $p |- ( -. A. x x = y -> ph ) $=
      ( weq wal wn hbnae syl ) BCFBGHZKDGABCDIEJ $.
  $}

  ${
    $d v w z $.  $d v x $.  $d v y $.
    $( Older alternate version of ~ aevlem .  Obsolete as of 30-Mar-2021.
       (Contributed by NM, 22-Jul-2015.)  (Proof shortened by Wolf Lammen,
       17-Feb-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    aevlemALTOLD $p |- ( A. z z = w -> A. y y = x ) $=
      ( vv weq wal cbvaev axc11nlemALT 4syl ) CDFCGEDFEGCEFCGAEFAGBAFBGCDEHECDI
      CEAHABEIJ $.
  $}

  ${
    $d u v $.  $d u x y $.  $d u w $.
    $( Older alternate proof of ~ aev .  Obsolete as of 30-Mar-2021.
       (Contributed by NM, 8-Nov-2006.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    aevALTOLD $p |- ( A. x x = y -> A. z w = v ) $=
      ( vu weq wal hbae aevlem ax7 spimv syl alrimih ) ABGAHZDEGZCABCIOFEGZFHPA
      BFEJQPFDFDEKLMN $.
  $}

  ${
    $d x y z $.  $d z ph $.
    axc16i.1 $e |- ( x = z -> ( ph <-> ps ) ) $.
    axc16i.2 $e |- ( ps -> A. x ps ) $.
    $( Inference with ~ axc16 as its conclusion.  (Contributed by NM,
       20-May-2008.)  (Proof modification is discouraged.) $)
    axc16i $p |- ( A. x x = y -> ( ph -> A. x ph ) ) $=
      ( weq wal wi nfv ax7 cbv3 spimv equcomi syl syl5com alimdv mpcom alimi
      biimpcd nf5i biimprd syl6com 3syl ) CDHZCIEDHZEIZCEHZEIZAACIZJUFUGCEUFEKU
      GCKCEDLMUHECHZEIZUJUFUHUMUGUFECECDLNUFUGULEUFDCHZUGULCDOUGDEHUNULJEDODECL
      PQRSULUIEECOZTPAUJBEIUKAUIBEUIABFUARBAECBCGUBAEKULUIBAJUOUIABFUCPMUDUE $.
  $}

  ${
    $d x y $.
    $( Alternate proof of ~ axc16nf , shorter but requiring ~ ax-11 and
       ~ ax-13 .  (Contributed by Mario Carneiro, 7-Oct-2016.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    axc16nfALT $p |- ( A. x x = y -> F/ z ph ) $=
      ( weq wal nfae axc16g nf5d ) BCEBFADBCDGABCDHI $.
  $}

  ${
    dral1.1 $e |- ( A. x x = y -> ( ph <-> ps ) ) $.
    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).
       (Contributed by NM, 27-Feb-2005.)  Allow a shortening of ~ dral1 .
       (Revised by Wolf Lammen, 4-Mar-2018.) $)
    dral2 $p |- ( A. x x = y -> ( A. z ph <-> A. z ps ) ) $=
      ( weq wal nfae albid ) CDGCHABECDEIFJ $.

    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).
       (Contributed by NM, 24-Nov-1994.)  Remove dependency on ~ ax-11 .
       (Revised by Wolf Lammen, 6-Sep-2018.) $)
    dral1 $p |- ( A. x x = y -> ( A. x ph <-> A. y ps ) ) $=
      ( weq wal nfa1 albid axc11 axc11r impbid bitrd ) CDFZCGZACGBCGZBDGZOABCNC
      HEIOPQBCDJBDCKLM $.

    $( Alternate proof of ~ dral1 , shorter but requiring ~ ax-11 .
       (Contributed by NM, 24-Nov-1994.)  (Proof shortened by Wolf Lammen,
       22-Apr-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    dral1ALT $p |- ( A. x x = y -> ( A. x ph <-> A. y ps ) ) $=
      ( weq wal dral2 axc11 axc11r impbid bitrd ) CDFCGZACGBCGZBDGZABCDCEHMNOBC
      DIBDCJKL $.

    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).
       (Contributed by NM, 27-Feb-2005.) $)
    drex1 $p |- ( A. x x = y -> ( E. x ph <-> E. y ps ) ) $=
      ( weq wal wn wex notbid dral1 df-ex 3bitr4g ) CDFCGZAHZCGZHBHZDGZHACIBDIN
      PROQCDNABEJKJACLBDLM $.

    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).
       (Contributed by NM, 27-Feb-2005.) $)
    drex2 $p |- ( A. x x = y -> ( E. z ph <-> E. z ps ) ) $=
      ( weq wal hbae exbidh ) CDGCHABECDEIFJ $.

    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       (Contributed by Mario Carneiro, 4-Oct-2016.) $)
    drnf1 $p |- ( A. x x = y -> ( F/ x ph <-> F/ y ps ) ) $=
      ( weq wal wi wnf dral1 imbi12d nf5 3bitr4g ) CDFCGZAACGZHZCGBBDGZHZDGACIB
      DIPRCDNABOQEABCDEJKJACLBDLM $.

    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       (Contributed by Mario Carneiro, 4-Oct-2016.)  (Proof shortened by Wolf
       Lammen, 5-May-2018.) $)
    drnf2 $p |- ( A. x x = y -> ( F/ z ph <-> F/ z ps ) ) $=
      ( weq wal nfae nfbidf ) CDGCHABECDEIFJ $.
  $}

  ${
    nfald2.1 $e |- F/ y ph $.
    nfald2.2 $e |- ( ( ph /\ -. A. x x = y ) -> F/ x ps ) $.
    $( Variation on ~ nfald which adds the hypothesis that ` x ` and ` y ` are
       distinct in the inner subproof.  (Contributed by Mario Carneiro,
       8-Oct-2016.) $)
    nfald2 $p |- ( ph -> F/ x A. y ps ) $=
      ( weq wal wnf wn wa nfnae nfan nfald ex nfa1 biidd drnf1 mpbiri pm2.61d2
      ) ACDGCHZBDHZCIZAUAJZUCAUDKBCDAUDDECDDLMFNOUAUCUBDIBDPUBUBCDUAUBQRST $.

    $( Variation on ~ nfexd which adds the hypothesis that ` x ` and ` y ` are
       distinct in the inner subproof.  (Contributed by Mario Carneiro,
       8-Oct-2016.) $)
    nfexd2 $p |- ( ph -> F/ x E. y ps ) $=
      ( wex wn wal df-ex weq wa nfnd nfald2 nfxfrd ) BDGBHZDIZHACBDJAQCAPCDEACD
      KCIHLBCFMNMO $.
  $}

  ${
    exdistrf.1 $e |- ( -. A. x x = y -> F/ y ph ) $.
    $( Distribution of existential quantifiers, with a bound-variable
       hypothesis saying that ` y ` is not free in ` ph ` , but ` x ` can be
       free in ` ph ` (and there is no distinct variable condition on ` x ` and
       ` y ` ).  (Contributed by Mario Carneiro, 20-Mar-2013.)  (Proof
       shortened by Wolf Lammen, 14-May-2018.) $)
    exdistrf $p |- ( E. x E. y ( ph /\ ps ) -> E. x ( ph /\ E. y ps ) ) $=
      ( wa wex weq wal wi 19.8a anim2i eximi biidd drex1 syl5ibr wn 19.40 19.9d
      nfe1 anim1d syl56 pm2.61i exlimi ) ABFZDGZABDGZFZCGZCUHCTCDHCIZUFUIJUFUIU
      JUHDGUEUHDBUGABDKLMUHUHCDUJUHNOPUFADGZUGFUJQZUHUIABDRULUKAUGAULDESUAUHCKU
      BUCUD $.
  $}

  ${
    dvelimf.1 $e |- F/ x ph $.
    dvelimf.2 $e |- F/ z ps $.
    dvelimf.3 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( Version of ~ dvelimv without any variable restrictions.  (Contributed by
       NM, 1-Oct-2002.)  (Revised by Mario Carneiro, 6-Oct-2016.)  (Proof
       shortened by Wolf Lammen, 11-May-2018.) $)
    dvelimf $p |- ( -. A. x x = y -> F/ x ps ) $=
      ( weq wi wal wn equsal bicomi nfnae wa wnf nfeqf ancoms a1i nfald2 nfxfrd
      nfimd ) BEDIZAJZEKZCDICKLZCUFBABEDGHMNUGUECECDEOUGCEICKLZPZUDACUHUGUDCQED
      CRSACQUIFTUCUAUB $.
  $}

  ${
    dvelimdf.1 $e |- F/ x ph $.
    dvelimdf.2 $e |- F/ z ph $.
    dvelimdf.3 $e |- ( ph -> F/ x ps ) $.
    dvelimdf.4 $e |- ( ph -> F/ z ch ) $.
    dvelimdf.5 $e |- ( ph -> ( z = y -> ( ps <-> ch ) ) ) $.
    $( Deduction form of ~ dvelimf .  (Contributed by NM, 7-Apr-2004.)
       (Revised by Mario Carneiro, 6-Oct-2016.)  (Proof shortened by Wolf
       Lammen, 11-May-2018.) $)
    dvelimdf $p |- ( ph -> ( -. A. x x = y -> F/ x ch ) ) $=
      ( weq wal wn wi wnf nfim1 wb com12 pm5.74d dvelimf pm5.5 nfbidf syl5ib )
      DELDMNACOZDPACDPABOUEDEFABDGIQACFHJQFELZABCAUFBCRKSTUAAUECDGACUBUCUD $.
  $}

  ${
    dvelimh.1 $e |- ( ph -> A. x ph ) $.
    dvelimh.2 $e |- ( ps -> A. z ps ) $.
    dvelimh.3 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( Version of ~ dvelim without any variable restrictions.  (Contributed by
       NM, 1-Oct-2002.)  (Proof shortened by Wolf Lammen, 11-May-2018.) $)
    dvelimh $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( weq wal wn nf5i dvelimf nf5rd ) CDICJKBCABCDEACFLBEGLHMN $.
  $}

  ${
    $d z ps $.
    dvelim.1 $e |- ( ph -> A. x ph ) $.
    dvelim.2 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( This theorem can be used to eliminate a distinct variable restriction on
       ` x ` and ` z ` and replace it with the "distinctor" ` -. A. x x = y `
       as an antecedent. ` ph ` normally has ` z ` free and can be read
       ` ph ( z ) ` , and ` ps ` substitutes ` y ` for ` z ` and can be read
       ` ph ( y ) ` .  We do not require that ` x ` and ` y ` be distinct: if
       they are not, the distinctor will become false (in multiple-element
       domains of discourse) and "protect" the consequent.

       To obtain a closed-theorem form of this inference, prefix the hypotheses
       with ` A. x A. z ` , conjoin them, and apply ~ dvelimdf .

       Other variants of this theorem are ~ dvelimh (with no distinct variable
       restrictions) and ~ dvelimhw (that avoids ~ ax-13 ).  (Contributed by
       NM, 23-Nov-1994.) $)
    dvelim $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( ax-5 dvelimh ) ABCDEFBEHGI $.
  $}

  ${
    $d x ph $.  $d z ps $.
    dvelimv.1 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( Similar to ~ dvelim with first hypothesis replaced by a distinct
       variable condition.  (Contributed by NM, 25-Jul-2015.)  (Proof shortened
       by Wolf Lammen, 30-Apr-2018.) $)
    dvelimv $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( ax-5 dvelim ) ABCDEACGFH $.
  $}

  ${
    $d z ps $.
    dvelimnf.1 $e |- F/ x ph $.
    dvelimnf.2 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( Version of ~ dvelim using "not free" notation.  (Contributed by Mario
       Carneiro, 9-Oct-2016.) $)
    dvelimnf $p |- ( -. A. x x = y -> F/ x ps ) $=
      ( nfv dvelimf ) ABCDEFBEHGI $.
  $}

  ${
    $d w x z $.  $d w y $.
    $( Alternate proof of ~ dveeq2 , shorter but requiring ~ ax-11 .
       (Contributed by NM, 2-Jan-2002.)  (Revised by NM, 20-Jul-2015.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    dveeq2ALT $p |- ( -. A. x x = y -> ( z = y -> A. x z = y ) ) $=
      ( vw weq equequ2 dvelimv ) CDECBEABDDBCFG $.
  $}

  $( Obsolete proof of ~ ax12 as of 4-Jul-2021 .  Rederivation of axiom ~ ax-12
     from ~ ax12v , ~ axc11r , and other axioms.  (Contributed by NM,
     22-Jan-2007.)  Proof uses contemporary axioms.  (Revised by Wolf Lammen,
     8-Aug-2020.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  ax12OLD $p |- ( x = y -> ( A. y ph -> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wi biidd dral1 ax-1 alimi syl6bir a1d wn sp axc15 syl7 pm2.61i )
    BCDZBEZRACEZRAFZBEZFZFSUCRSTABEUBAABCSAGHAUABARIJKLTASMRUBACNABCOPQ $.

  ${
    $d x z $.  $d y z $.  $d z ph $.
    ax12v2OLD.1 $e |- ( x = z -> ( ph -> A. x ( x = z -> ph ) ) ) $.
    $( Obsolete proof of ~ ax12v as of 24-Mar-2021.  (Contributed by NM,
       12-Feb-2007.)  (Proof shortened by Wolf Lammen, 21-Apr-2018.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    ax12v2OLD $p |- ( -. A. x x = y ->
                 ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $=
      ( weq wal wn wex wi ax6ev dveeq2 wb equequ2 sps nfa1 imbi1d albid imbi12d
      imbi2d mpbii syl6 exlimdv mpi ) BCFZBGHZDCFZDIUEAUEAJZBGZJZJZDCKUFUGUKDUF
      UGUGBGZUKBCDLULBDFZAUMAJZBGZJZJUKEULUMUEUPUJUGUMUEMBDCBNOZULUOUIAULUNUHBU
      GBPULUMUEAUQQRTSUAUBUCUD $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    ax12a2OLD.1 $e |- ( x = z -> ( A. z ph -> A. x ( x = z -> ph ) ) ) $.
    $( Obsolete proof of ~ ax12v as of 24-Mar-2021.  (Contributed by NM,
       12-Feb-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ax12a2OLD $p |- ( -. A. x x = y ->
                 ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $=
      ( ax12v ax12v2OLD ) ABCDABDFG $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    $( Obsolete proof of ~ axc15 as of 24-Mar-2021.  (Contributed by NM,
       3-Feb-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    axc15OLD $p |- ( -. A. x x = y ->
               ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $=
      ( vz ax-12 ax12a2OLD ) ABCDABDEF $.
  $}

  $( A bidirectional version of ~ axc15 .  (Contributed by NM, 30-Jun-2006.) $)
  ax12b $p |- ( ( -. A. x x = y /\ x = y ) ->
              ( ph <-> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wn wa wi axc15 imp sp com12 adantl impbid ) BCDZBEFZOGAOAHZBEZPOA
    RHABCIJORAHPROAQBKLMN $.

  $( A variable introduction law for equality.  Lemma 15 of [Monk2] p. 109,
     however we do not require ` z ` to be distinct from ` x ` and ` y ` .  See
     ~ equvinv for a shorter proof requiring fewer axioms when ` z ` is
     required to be distinct from ` x ` and ` y ` .  (Contributed by NM,
     10-Jan-1993.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
     shortened by Wolf Lammen, 15-Sep-2018.) $)
  equvini $p |- ( x = y -> E. z ( x = z /\ z = y ) ) $=
    ( weq wa wex wi equtr equeuclr anc2ri syli 19.8a syl6 wn ax13 eximii 19.35i
    wal ax6e pm2.61i ) CADZABDZACDZCBDZEZCFZGUAUBUEUFUBUAUDUECABHUDUBUCCABIJZKU
    ECLMUANUBUBCRUFCABOUBUECUDUBUEGCCBSUGPQMT $.

  $( A variable elimination law for equality with no distinct variable
     requirements.  Compare ~ equvini .  (Contributed by NM, 1-Mar-2013.)
     (Proof shortened by Mario Carneiro, 17-Oct-2016.)  (Proof shortened by
     Wolf Lammen, 15-Jun-2019.) $)
  equvel $p |- ( A. z ( z = x <-> z = y ) -> x = y ) $=
    ( weq wb wal wex albi wi ax6e biimpr ax7 syli com12 eximii 19.35i spsd a1dd
    sps wn wa nfeqf 19.9d ex bija sylc ) CADZCBDZEZCFUGCFZUHCFZEABDZCGZULUGUHCH
    UIULCUHUIULICCBJUIUHULUHUIUGULUGUHKCABLZMNOPUJUKUMULIZUJUKULUMUGUKULICUGUHU
    LCUNQSRUJTZUKTZUOULUPUQUACABCUBUCUDUEUF $.

  $( A property related to substitution that unlike ~ equs5 does not require a
     distinctor antecedent.  See ~ equs5aALT for an alternate proof using
     ~ ax-12 but not ~ ax13 .  (Contributed by NM, 2-Feb-2007.) $)
  equs5a $p |- ( E. x ( x = y /\ A. y ph ) -> A. x ( x = y -> ph ) ) $=
    ( weq wal wa wi nfa1 ax12 imp exlimi ) BCDZACEZFLAGZBEZBNBHLMOABCIJK $.

  $( A property related to substitution that unlike ~ equs5 does not require a
     distinctor antecedent.  See ~ equs5eALT for an alternate proof using
     ~ ax-12 but not ~ ax13 .  (Contributed by NM, 2-Feb-2007.)  (Proof
     shortened by Wolf Lammen, 15-Jan-2018.) $)
  equs5e $p |- ( E. x ( x = y /\ ph ) -> A. x ( x = y -> E. y ph ) ) $=
    ( weq wa wex wi wal nfa1 ax12 hbe1 19.23bi impel exlimi ) BCDZAEOACFZGZBHZB
    QBIOPCHZRAPBCJASCACKLMN $.

  ${
    equs45f.1 $e |- F/ y ph $.
    $( Two ways of expressing substitution when ` y ` is not free in ` ph ` .
       The implication "to the left" is ~ equs4 and does not require the
       non-freeness hypothesis.  Theorem ~ sb56 replaces the non-freeness
       hypothesis with a dv condition and ~ equs5 replaces it with a distinctor
       as antecedent.  (Contributed by NM, 25-Apr-2008.)  (Revised by Mario
       Carneiro, 4-Oct-2016.) $)
    equs45f $p |- ( E. x ( x = y /\ ph ) <-> A. x ( x = y -> ph ) ) $=
      ( weq wa wex wi wal nf5ri anim2i eximi equs5a syl equs4 impbii ) BCEZAFZB
      GZQAHBIZSQACIZFZBGTRUBBAUAQACDJKLABCMNABCOP $.
  $}

  $( Lemma used in proofs of substitution properties.  If there is a dv
     condition on ` x , y ` , then ~ sb56 can be used instead; if ` y ` is not
     free in ` ph ` , then ~ equs45f can be used.  (Contributed by NM,
     14-May-1993.)  (Revised by BJ, 1-Oct-2018.) $)
  equs5 $p |- ( -. A. x x = y ->
             ( E. x ( x = y /\ ph ) <-> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wn wa wex wi nfna1 nfa1 axc15 impd exlimd equs4 impbid1 ) BCDZBEF
    ZQAGZBHQAIZBEZRSUABQBJTBKRQAUAABCLMNABCOP $.

  $( One direction of a simplified definition of substitution.  The converse
     requires either a dv condition ( ~ sb6 ) or a non-freeness hypothesis
     ( ~ sb6f ).  (Contributed by NM, 13-May-1993.) $)
  sb2 $p |- ( A. x ( x = y -> ph ) -> [ y / x ] ph ) $=
    ( weq wi wal wa wex wsb sp equs4 df-sb sylanbrc ) BCDZAEZBFONAGBHABCIOBJABC
    KABCLM $.

  $( The specialization axiom of standard predicate calculus.  It states that
     if a statement ` ph ` holds for all ` x ` , then it also holds for the
     specific case of ` y ` (properly) substituted for ` x ` .  Translated to
     traditional notation, it can be read:  " ` A. x ph ( x ) -> ph ( y ) ` ,
     provided that ` y ` is free for ` x ` in ` ph ( x ) ` ."  Axiom 4 of
     [Mendelson] p. 69.  See also ~ spsbc and ~ rspsbc .  (Contributed by NM,
     14-May-1993.) $)
  stdpc4 $p |- ( A. x ph -> [ y / x ] ph ) $=
    ( wal weq wi wsb ala1 sb2 syl ) ABDBCEZAFBDABCGAKBHABCIJ $.

  $( A double specialization using explicit substitution.  This is Theorem
     PM*11.1 in [WhiteheadRussell] p. 159.  See ~ stdpc4 for the analogous
     single specialization.  See ~ 2sp for another double specialization.
     (Contributed by Andrew Salmon, 24-May-2011.)  (Revised by BJ,
     21-Oct-2018.) $)
  2stdpc4 $p |- ( A. x A. y ph -> [ z / x ] [ w / y ] ph ) $=
    ( wal wsb stdpc4 alimi syl ) ACFZBFACEGZBFLBDGKLBACEHILBDHJ $.

  $( One direction of a simplified definition of substitution when variables
     are distinct.  (Contributed by NM, 5-Aug-1993.) $)
  sb3 $p |- ( -. A. x x = y -> ( E. x ( x = y /\ ph ) -> [ y / x ] ph ) ) $=
    ( weq wal wn wa wex wi wsb equs5 sb2 syl6bi ) BCDZBEFNAGBHNAIBEABCJABCKABCL
    M $.

  $( One direction of a simplified definition of substitution when variables
     are distinct.  (Contributed by NM, 14-May-1993.) $)
  sb4 $p |- ( -. A. x x = y -> ( [ y / x ] ph -> A. x ( x = y -> ph ) ) ) $=
    ( wsb weq wa wex wal wn wi sb1 equs5 syl5ib ) ABCDBCEZAFBGNBHINAJBHABCKABCL
    M $.

  $( A version of ~ sb4 that doesn't require a distinctor antecedent.
     (Contributed by NM, 2-Feb-2007.) $)
  sb4a $p |- ( [ y / x ] A. y ph -> A. x ( x = y -> ph ) ) $=
    ( wal wsb weq wa wex wi sb1 equs5a syl ) ACDZBCEBCFZMGBHNAIBDMBCJABCKL $.

  $( Simplified definition of substitution when variables are distinct.
     (Contributed by NM, 27-May-1997.) $)
  sb4b $p |- ( -. A. x x = y -> ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wn wsb wi sb4 sb2 impbid1 ) BCDZBEFABCGLAHBEABCIABCJK $.

  $( Bound-variable hypothesis builder for substitution.  (Contributed by NM,
     14-May-1993.) $)
  hbsb2 $p |- ( -. A. x x = y -> ( [ y / x ] ph -> A. x [ y / x ] ph ) ) $=
    ( weq wal wn wsb wi sb4 sb2 axc4i syl6 ) BCDZBEFABCGZMAHZBENBEABCIONBABCJKL
    $.

  $( Bound-variable hypothesis builder for substitution.  (Contributed by Mario
     Carneiro, 4-Oct-2016.) $)
  nfsb2 $p |- ( -. A. x x = y -> F/ x [ y / x ] ph ) $=
    ( weq wal wn wsb nfna1 hbsb2 nf5d ) BCDZBEFABCGBKBHABCIJ $.

  $( Special case of a bound-variable hypothesis builder for substitution.
     (Contributed by NM, 2-Feb-2007.) $)
  hbsb2a $p |- ( [ y / x ] A. y ph -> A. x [ y / x ] ph ) $=
    ( wal wsb weq wi sb4a sb2 axc4i syl ) ACDBCEBCFAGZBDABCEZBDABCHLMBABCIJK $.

  $( One direction of a simplified definition of substitution that unlike ~ sb4
     doesn't require a distinctor antecedent.  (Contributed by NM,
     2-Feb-2007.) $)
  sb4e $p |- ( [ y / x ] ph -> A. x ( x = y -> E. y ph ) ) $=
    ( wsb weq wa wex wi wal sb1 equs5e syl ) ABCDBCEZAFBGMACGHBIABCJABCKL $.

  $( Special case of a bound-variable hypothesis builder for substitution.
     (Contributed by NM, 2-Feb-2007.) $)
  hbsb2e $p |- ( [ y / x ] ph -> A. x [ y / x ] E. y ph ) $=
    ( wsb weq wex wi wal sb4e sb2 axc4i syl ) ABCDBCEACFZGZBHMBCDZBHABCINOBMBCJ
    KL $.

  ${
    hbsb3.1 $e |- ( ph -> A. y ph ) $.
    $( If ` y ` is not free in ` ph ` , ` x ` is not free in ` [ y / x ] ph ` .
       (Contributed by NM, 14-May-1993.) $)
    hbsb3 $p |- ( [ y / x ] ph -> A. x [ y / x ] ph ) $=
      ( wsb wal sbimi hbsb2a syl ) ABCEZACFZBCEJBFAKBCDGABCHI $.
  $}

  ${
    nfs1.1 $e |- F/ y ph $.
    $( If ` y ` is not free in ` ph ` , ` x ` is not free in ` [ y / x ] ph ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfs1 $p |- F/ x [ y / x ] ph $=
      ( wsb nf5ri hbsb3 nf5i ) ABCEBABCACDFGH $.
  $}

  ${
    $d x y z $.  $d z ph $.
    $( Alternate proof of ~ axc16 , shorter but requiring ~ ax-10 , ~ ax-11 ,
       ~ ax-13 and using ~ df-nf and ~ df-sb .  (Contributed by NM,
       17-May-2008.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    axc16ALT $p |- ( A. x x = y -> ( ph -> A. x ph ) ) $=
      ( vz wsb sbequ12 ax-5 hbsb3 axc16i ) AABDEBCDABDFABDADGHI $.
  $}

  ${
    $d x y $.
    $( Alternate proof of ~ axc16g that uses ~ df-sb and requires ~ ax-10 ,
       ~ ax-11 , ~ ax-13 .  (Contributed by NM, 15-May-1993.)  (Proof shortened
       by Andrew Salmon, 25-May-2011.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    axc16gALT $p |- ( A. x x = y -> ( ph -> A. z ph ) ) $=
      ( weq wal aev axc16ALT biidd dral1 biimprd sylsyld ) BCEBFDBEDFZAABFZADFZ
      BCDBDGABCHMONAADBMAIJKL $.
  $}

  $( Substitution applied to an atomic wff.  (Contributed by NM,
     10-May-1993.) $)
  equsb1 $p |- [ y / x ] x = y $=
    ( weq wi wsb sb2 id mpg ) ABCZIDIABEAIABFIGH $.

  $( Substitution applied to an atomic wff.  (Contributed by NM,
     10-May-1993.) $)
  equsb2 $p |- [ y / x ] y = x $=
    ( weq wi wsb sb2 equcomi mpg ) ABCBACZDIABEAIABFABGH $.

  ${
    $d w z x $.  $d w y $.
    $( Quantifier introduction when one pair of variables is distinct.
       (Contributed by NM, 2-Jan-2002.) $)
    dveel1 $p |- ( -. A. x x = y -> ( y e. z -> A. x y e. z ) ) $=
      ( vw wel elequ1 dvelimv ) DCEBCEABDDBCFG $.

    $( Quantifier introduction when one pair of variables is distinct.
       (Contributed by NM, 2-Jan-2002.) $)
    dveel2 $p |- ( -. A. x x = y -> ( z e. y -> A. x z e. y ) ) $=
      ( vw wel elequ2 dvelimv ) CDECBEABDDBCFG $.
  $}

  ${
    $d w y $.  $d w z $.  $d w x $.
    $( Axiom ~ ax-c14 is redundant if we assume ~ ax-5 .  Remark 9.6 in
       [Megill] p. 448 (p. 16 of the preprint), regarding axiom scheme C14'.

       Note that ` w ` is a dummy variable introduced in the proof.  Its
       purpose is to satisfy the distinct variable requirements of ~ dveel2 and
       ~ ax-5 .  By the end of the proof it has vanished, and the final theorem
       has no distinct variable requirements.  (Contributed by NM,
       29-Jun-1995.)  (Proof modification is discouraged.) $)
    axc14 $p |- ( -. A. z z = x -> ( -. A. z z = y ->
              ( x e. y -> A. z x e. y ) ) ) $=
      ( vw weq wal wn wel hbn1 dveel2 hbim1 elequ1 imbi2d dvelim nfa1 nfn 19.21
      wi syl6ib pm2.86d ) CAECFGZCBEZCFZGZABHZUECFZUAUDUERZUGCFUDUFRUDDBHZRUGCA
      DUDUHCUBCICBDJKDAEUHUEUDDABLMNUDUECUCCUBCOPQST $.
  $}

  $( An alternate definition of proper substitution that, like ~ df-sb , mixes
     free and bound variables to avoid distinct variable requirements.
     (Contributed by NM, 17-Feb-2005.) $)
  dfsb2 $p |- ( [ y / x ] ph <->
              ( ( x = y /\ ph ) \/ A. x ( x = y -> ph ) ) ) $=
    ( wsb weq wa wi wal wo sp sbequ2 sps orc syl6an sb4 olc syl6 pm2.61i sbequ1
    wn imp sb2 jaoi impbii ) ABCDZBCEZAFZUFAGBHZIZUFBHZUEUIGUJUFUEAUIUFBJUFUEAG
    BABCKLUGUHMNUJTUEUHUIABCOUHUGPQRUGUEUHUFAUEABCSUAABCUBUCUD $.

  $( An alternate definition of proper substitution ~ df-sb that uses only
     primitive connectives (no defined terms) on the right-hand side.
     (Contributed by NM, 6-Mar-2007.) $)
  dfsb3 $p |- ( [ y / x ] ph <->
              ( ( x = y -> -. ph ) -> A. x ( x = y -> ph ) ) ) $=
    ( weq wa wi wal wo wn wsb df-or dfsb2 imnan imbi1i 3bitr4i ) BCDZAEZPAFBGZH
    QIZRFABCJPAIFZRFQRKABCLTSRPAMNO $.

  $( An equality theorem for substitution.  (Contributed by NM, 14-May-1993.)
     (Proof shortened by Wolf Lammen, 15-Sep-2018.) $)
  sbequi $p |- ( x = y -> ( [ x / z ] ph -> [ y / z ] ph ) ) $=
    ( weq wsb wi equtr sbequ2 sbequ1 syl9 syld wn wal sp con3i sb4 syl equeuclr
    ax13 imim1d al2imi sb2 syl6 pm2.61i ) DBEZBCEZADBFZADCFZGZGUFUGDCEZUJDBCHUF
    UHAUKUIADBIADCJKLUFMZUGUGDNZUJDBCTULUHUFAGZDNZUMUIULUFDNZMUHUOGUPUFUFDOPADB
    QRUMUOUKAGZDNUIUGUNUQDUGUKUFABDCSUAUBADCUCUDKLUE $.

  $( An equality theorem for substitution.  Used in proof of Theorem 9.7 in
     [Megill] p. 449 (p. 16 of the preprint).  (Contributed by NM,
     14-May-1993.) $)
  sbequ $p |- ( x = y -> ( [ x / z ] ph <-> [ y / z ] ph ) ) $=
    ( weq wsb sbequi wi equcoms impbid ) BCEADBFZADCFZABCDGLKHCBACBDGIJ $.

  $( Formula-building lemma for use with the Distinctor Reduction Theorem.
     Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).  (Contributed
     by NM, 2-Jun-1993.) $)
  drsb1 $p |- ( A. x x = y -> ( [ z / x ] ph <-> [ z / y ] ph ) ) $=
    ( weq wal wi wa wex wsb wb equequ1 sps imbi1d anbi1d drex1 anbi12d 3bitr4g
    df-sb ) BCEZBFZBDEZAGZUBAHZBIZHCDEZAGZUFAHZCIZHABDJACDJUAUCUGUEUIUAUBUFATUB
    UFKBBCDLMZNUDUHBCUAUBUFAUJOPQABDSACDSR $.

  $( Formula-building lemma for use with the Distinctor Reduction Theorem.
     Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).  (Contributed
     by NM, 27-Feb-2005.) $)
  drsb2 $p |- ( A. x x = y -> ( [ x / z ] ph <-> [ y / z ] ph ) ) $=
    ( weq wsb wb sbequ sps ) BCEADBFADCFGBABCDHI $.

  $( Substitution has no effect on a non-free variable.  (Contributed by NM,
     30-May-2009.)  (Revised by Mario Carneiro, 12-Oct-2016.)  (Proof shortened
     by Wolf Lammen, 3-May-2018.) $)
  sbft $p |- ( F/ x ph -> ( [ y / x ] ph <-> ph ) ) $=
    ( wnf wsb wex spsbe 19.9t syl5ib wal nf5r stdpc4 syl6 impbid ) ABDZABCEZAPA
    BFOAABCGABHIOAABJPABKABCLMN $.

  ${
    sbf.1 $e |- F/ x ph $.
    $( Substitution for a variable not free in a wff does not affect it.
       (Contributed by NM, 14-May-1993.)  (Revised by Mario Carneiro,
       4-Oct-2016.) $)
    sbf $p |- ( [ y / x ] ph <-> ph ) $=
      ( wnf wsb wb sbft ax-mp ) ABEABCFAGDABCHI $.
  $}

  ${
    sbh.1 $e |- ( ph -> A. x ph ) $.
    $( Substitution for a variable not free in a wff does not affect it.
       (Contributed by NM, 14-May-1993.) $)
    sbh $p |- ( [ y / x ] ph <-> ph ) $=
      ( nf5i sbf ) ABCABDEF $.
  $}

  $( Substitution has no effect on a bound variable.  (Contributed by NM,
     1-Jul-2005.) $)
  sbf2 $p |- ( [ y / x ] A. x ph <-> A. x ph ) $=
    ( wal nfa1 sbf ) ABDBCABEF $.

  ${
    nfs1f.1 $e |- F/ x ph $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` [ y / x ] ph ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfs1f $p |- F/ x [ y / x ] ph $=
      ( wsb sbf nfxfr ) ABCEABABCDFDG $.
  $}

  ${
    sb6x.1 $e |- F/ x ph $.
    $( Equivalence involving substitution for a variable not free.
       (Contributed by NM, 2-Jun-1993.)  (Revised by Mario Carneiro,
       4-Oct-2016.) $)
    sb6x $p |- ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) $=
      ( wsb weq wi wal sbf biidd equsal bitr4i ) ABCEABCFZAGBHABCDIAABCDMAJKL
      $.
  $}

  ${
    sb6f.1 $e |- F/ y ph $.
    $( Equivalence for substitution when ` y ` is not free in ` ph ` .  The
       implication "to the left" is ~ sb2 and does not require the non-freeness
       hypothesis.  Theorem ~ sb6 replaces the non-freeness hypothesis with a
       dv condition.  (Contributed by NM, 2-Jun-1993.)  (Revised by Mario
       Carneiro, 4-Oct-2016.) $)
    sb6f $p |- ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) $=
      ( wsb weq wi wal nf5ri sbimi sb4a syl sb2 impbii ) ABCEZBCFAGBHZOACHZBCEP
      AQBCACDIJABCKLABCMN $.

    $( Equivalence for substitution when ` y ` is not free in ` ph ` .  The
       implication "to the right" is ~ sb1 and does not require the
       non-freeness hypothesis.  Theorem ~ sb5 replaces the non-freeness
       hypothesis with a dv condition.  (Contributed by NM, 5-Aug-1993.)
       (Revised by Mario Carneiro, 4-Oct-2016.) $)
    sb5f $p |- ( [ y / x ] ph <-> E. x ( x = y /\ ph ) ) $=
      ( wsb weq wi wal wa wex sb6f equs45f bitr4i ) ABCEBCFZAGBHNAIBJABCDKABCDL
      M $.
  $}

  $( Substitution does not change an identical variable specifier.
     (Contributed by NM, 15-May-1993.) $)
  sbequ5 $p |- ( [ w / z ] A. x x = y <-> A. x x = y ) $=
    ( weq wal nfae sbf ) ABEAFCDABCGH $.

  $( Substitution does not change a distinctor.  (Contributed by NM,
     5-Aug-1993.) $)
  sbequ6 $p |- ( [ w / z ] -. A. x x = y <-> -. A. x x = y ) $=
    ( weq wal wn nfnae sbf ) ABEAFGCDABCHI $.

  $( A variable not free remains so after substitution with a distinct variable
     (closed form of ~ nfsb4 ).  (Contributed by NM, 7-Apr-2004.)  (Revised by
     Mario Carneiro, 4-Oct-2016.)  (Proof shortened by Wolf Lammen,
     11-May-2018.) $)
  nfsb4t $p |- ( A. x F/ z ph ->
                 ( -. A. z z = y -> F/ z [ y / x ] ph ) ) $=
    ( wnf wal weq wn wsb wi wa sbequ12 sps drnf2 biimpd spsd impcom nfnae nfan
    wb a1d nfnf1 nfal nfa1 sp adantr nfsb2 adantl a1i dvelimdf pm2.61dan ) ADEZ
    BFZBCGZBFZDCGDFHZABCIZDEZJUMUOKURUPUOUMURUOULURBUOULURAUQBCDUNAUQTZBABCLZMN
    OPQUAUMUOHZKZAUQDCBUMVADULDBADUBUCBCDRSUMVABULBUDBCBRSUMULVAULBUEUFVAUQBEUM
    ABCUGUHUNUSJVBUTUIUJUK $.

  ${
    nfsb4.1 $e |- F/ z ph $.
    $( A variable not free remains so after substitution with a distinct
       variable.  (Contributed by NM, 14-May-1993.)  (Revised by Mario
       Carneiro, 4-Oct-2016.) $)
    nfsb4 $p |- ( -. A. z z = y -> F/ z [ y / x ] ph ) $=
      ( wnf weq wal wn wsb wi nfsb4t mpg ) ADFDCGDHIABCJDFKBABCDLEM $.
  $}

  $( Negation inside and outside of substitution are equivalent.  (Contributed
     by NM, 14-May-1993.)  (Proof shortened by Wolf Lammen, 30-Apr-2018.) $)
  sbn $p |- ( [ y / x ] -. ph <-> -. [ y / x ] ph ) $=
    ( wn wsb weq wi wal wa wex df-sb exanali anbi2i annim 3bitri dfsb3 xchbinxr
    ) ADZBCEZBCFZRGZTAGBHZGZABCESUATRIBJZIUAUBDZIUCDRBCKUDUEUATABLMUAUBNOABCPQ
    $.

  $( Removal of implication from substitution.  (Contributed by NM,
     14-May-1993.) $)
  sbi1 $p |- ( [ y / x ] ( ph -> ps ) -> ( [ y / x ] ph -> [ y / x ] ps ) ) $=
    ( weq wal wi wsb sbequ2 syl5d sbequ1 syl6d sps sb4 ax-2 al2imi syl6 pm2.61i
    wn sb2 ) CDEZCFZABGZCDHZACDHZBCDHZGGZUAUGCUAUDUEBUFUAUEAUDBACDIUCCDIJBCDKLM
    UBSZUEUAAGZCFZUDUFACDNUHUDUAUCGZCFZUJUFGUCCDNULUJUABGZCFUFUKUIUMCUAABOPBCDT
    QQJR $.

  $( Introduction of implication into substitution.  (Contributed by NM,
     14-May-1993.) $)
  sbi2 $p |- ( ( [ y / x ] ph -> [ y / x ] ps ) -> [ y / x ] ( ph -> ps ) ) $=
    ( wsb wi wn sbn pm2.21 sbimi sylbir ax-1 ja ) ACDEZBCDEABFZCDEZNGAGZCDEPACD
    HQOCDABIJKBOCDBALJM $.

  $( Specialization of implication.  (Contributed by NM, 5-Aug-1993.)  (Proof
     shortened by Andrew Salmon, 25-May-2011.) $)
  spsbim $p |- ( A. x ( ph -> ps ) -> ( [ y / x ] ph -> [ y / x ] ps ) ) $=
    ( wi wal wsb stdpc4 sbi1 syl ) ABEZCFKCDGACDGBCDGEKCDHABCDIJ $.

  $( Implication inside and outside of substitution are equivalent.
     (Contributed by NM, 14-May-1993.) $)
  sbim $p |- ( [ y / x ] ( ph -> ps ) <-> ( [ y / x ] ph -> [ y / x ] ps ) ) $=
    ( wi wsb sbi1 sbi2 impbii ) ABECDFACDFBCDFEABCDGABCDHI $.

  ${
    sbrim.1 $e |- F/ x ph $.
    $( Substitution with a variable not free in antecedent affects only the
       consequent.  (Contributed by NM, 2-Jun-1993.)  (Revised by Mario
       Carneiro, 4-Oct-2016.) $)
    sbrim $p |- ( [ y / x ] ( ph -> ps ) <-> ( ph -> [ y / x ] ps ) ) $=
      ( wi wsb sbim sbf imbi1i bitri ) ABFCDGACDGZBCDGZFAMFABCDHLAMACDEIJK $.
  $}

  ${
    sblim.1 $e |- F/ x ps $.
    $( Substitution with a variable not free in consequent affects only the
       antecedent.  (Contributed by NM, 14-Nov-2013.)  (Revised by Mario
       Carneiro, 4-Oct-2016.) $)
    sblim $p |- ( [ y / x ] ( ph -> ps ) <-> ( [ y / x ] ph -> ps ) ) $=
      ( wi wsb sbim sbf imbi2i bitri ) ABFCDGACDGZBCDGZFLBFABCDHMBLBCDEIJK $.
  $}

  $( Logical OR inside and outside of substitution are equivalent.
     (Contributed by NM, 29-Sep-2002.) $)
  sbor $p |- ( [ y / x ] ( ph \/ ps ) <-> ( [ y / x ] ph \/ [ y / x ] ps ) ) $=
    ( wn wi wsb wo sbim sbn imbi1i bitri df-or sbbii 3bitr4i ) AEZBFZCDGZACDGZE
    ZBCDGZFZABHZCDGSUAHRPCDGZUAFUBPBCDIUDTUAACDJKLUCQCDABMNSUAMO $.

  $( Conjunction inside and outside of a substitution are equivalent.
     (Contributed by NM, 14-May-1993.) $)
  sban $p |- ( [ y / x ] ( ph /\ ps ) <-> ( [ y / x ] ph /\ [ y / x ] ps ) ) $=
    ( wn wi wsb wa sbn sbim imbi2i bitri xchbinx df-an sbbii 3bitr4i ) ABEZFZEZ
    CDGZACDGZBCDGZEZFZEABHZCDGUAUBHTRCDGZUDRCDIUFUAQCDGZFUDAQCDJUGUCUABCDIKLMUE
    SCDABNOUAUBNP $.

  $( Conjunction inside and outside of a substitution are equivalent.
     (Contributed by NM, 14-Dec-2006.) $)
  sb3an $p |- ( [ y / x ] ( ph /\ ps /\ ch ) <->
              ( [ y / x ] ph /\ [ y / x ] ps /\ [ y / x ] ch ) ) $=
    ( w3a wsb wa df-3an sbbii sban anbi1i bitr4i 3bitri ) ABCFZDEGABHZCHZDEGPDE
    GZCDEGZHZADEGZBDEGZSFZOQDEABCIJPCDEKTUAUBHZSHUCRUDSABDEKLUAUBSIMN $.

  $( Equivalence inside and outside of a substitution are equivalent.
     (Contributed by NM, 14-May-1993.) $)
  sbbi $p |- ( [ y / x ] ( ph <-> ps )
     <-> ( [ y / x ] ph <-> [ y / x ] ps ) ) $=
    ( wb wsb wi wa dfbi2 sbbii sbim anbi12i sban 3bitr4i bitri ) ABEZCDFABGZBAG
    ZHZCDFZACDFZBCDFZEZPSCDABIJQCDFZRCDFZHUAUBGZUBUAGZHTUCUDUFUEUGABCDKBACDKLQR
    CDMUAUBINO $.

  $( Specialization of biconditional.  (Contributed by NM, 2-Jun-1993.) $)
  spsbbi $p |- ( A. x ( ph <-> ps ) -> ( [ y / x ] ph <-> [ y / x ] ps ) ) $=
    ( wb wal wsb stdpc4 sbbi sylib ) ABEZCFKCDGACDGBCDGEKCDHABCDIJ $.

  ${
    sbbid.1 $e |- F/ x ph $.
    sbbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction substituting both sides of a biconditional.  (Contributed by
       NM, 30-Jun-1993.) $)
    sbbid $p |- ( ph -> ( [ y / x ] ps <-> [ y / x ] ch ) ) $=
      ( wb wal wsb alrimi spsbbi syl ) ABCHZDIBDEJCDEJHANDFGKBCDELM $.
  $}

  ${
    sblbis.1 $e |- ( [ y / x ] ph <-> ps ) $.
    $( Introduce left biconditional inside of a substitution.  (Contributed by
       NM, 19-Aug-1993.) $)
    sblbis $p |- ( [ y / x ] ( ch <-> ph ) <-> ( [ y / x ] ch <-> ps ) ) $=
      ( wb wsb sbbi bibi2i bitri ) CAGDEHCDEHZADEHZGLBGCADEIMBLFJK $.
  $}

  ${
    sbrbis.1 $e |- ( [ y / x ] ph <-> ps ) $.
    $( Introduce right biconditional inside of a substitution.  (Contributed by
       NM, 18-Aug-1993.) $)
    sbrbis $p |- ( [ y / x ] ( ph <-> ch ) <-> ( ps <-> [ y / x ] ch ) ) $=
      ( wb wsb sbbi bibi1i bitri ) ACGDEHADEHZCDEHZGBMGACDEILBMFJK $.
  $}

  ${
    sbrbif.1 $e |- F/ x ch $.
    sbrbif.2 $e |- ( [ y / x ] ph <-> ps ) $.
    $( Introduce right biconditional inside of a substitution.  (Contributed by
       NM, 18-Aug-1993.)  (Revised by Mario Carneiro, 4-Oct-2016.) $)
    sbrbif $p |- ( [ y / x ] ( ph <-> ch ) <-> ( ps <-> ch ) ) $=
      ( wb wsb sbrbis sbf bibi2i bitri ) ACHDEIBCDEIZHBCHABCDEGJNCBCDEFKLM $.
  $}

  $( Alternate proof of ~ sbequ8 , shorter but requiring more axioms.
     (Contributed by NM, 5-Aug-1993.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  sbequ8ALT $p |- ( [ y / x ] ph <-> [ y / x ] ( x = y -> ph ) ) $=
    ( wsb weq wi equsb1 a1bi sbim bitr4i ) ABCDZBCEZBCDZKFLAFBCDMKBCGHLABCIJ $.

  ${
    sbie.1 $e |- F/ x ps $.
    sbie.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit substitution.
       (Contributed by NM, 30-Jun-1994.)  (Revised by Mario Carneiro,
       4-Oct-2016.)  (Proof shortened by Wolf Lammen, 13-Jul-2019.) $)
    sbie $p |- ( [ y / x ] ph <-> ps ) $=
      ( wb wsb weq equsb1 sbimi ax-mp sbf sblbis mpbi ) ABGZCDHZACDHBGCDIZCDHQC
      DJRPCDFKLBBACDBCDEMNO $.
  $}

  ${
    sbied.1 $e |- F/ x ph $.
    sbied.2 $e |- ( ph -> F/ x ch ) $.
    sbied.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Conversion of implicit substitution to explicit substitution (deduction
       version of ~ sbie ).  (Contributed by NM, 30-Jun-1994.)  (Revised by
       Mario Carneiro, 4-Oct-2016.)  (Proof shortened by Wolf Lammen,
       24-Jun-2018.) $)
    sbied $p |- ( ph -> ( [ y / x ] ps <-> ch ) ) $=
      ( wsb wi sbrim nfim1 weq wb com12 pm5.74d sbie bitr3i pm5.74ri ) ABDEIZCA
      TJABJZDEIACJZABDEFKUAUBDEACDFGLDEMZABCAUCBCNHOPQRS $.
  $}

  ${
    $d x ph $.  $d x ch $.
    sbiedv.1 $e |- ( ( ph /\ x = y ) -> ( ps <-> ch ) ) $.
    $( Conversion of implicit substitution to explicit substitution (deduction
       version of ~ sbie ).  (Contributed by NM, 7-Jan-2017.) $)
    sbiedv $p |- ( ph -> ( [ y / x ] ps <-> ch ) ) $=
      ( nfv nfvd weq wb ex sbied ) ABCDEADGACDHADEIBCJFKL $.
  $}

  $( Substituting ` y ` for ` x ` and then ` z ` for ` y ` is equivalent to
     substituting ` z ` for both ` x ` and ` y ` .  (Contributed by Giovanni
     Mascellani, 8-Apr-2018.)  Remove dependency on ~ ax-11 .  (Revised by Wolf
     Lammen, 16-Sep-2018.)  (Proof shortened by Wolf Lammen, 16-Sep-2018.) $)
  sbcom3 $p |- ( [ z / y ] [ y / x ] ph <-> [ z / y ] [ z / x ] ph ) $=
    ( weq wal wsb wb nfa1 drsb2 sbbid wn sb4b sbequ pm5.74i albii syl6bb bitr4d
    wi pm2.61i ) CDEZCFZABCGZCDGZABDGZCDGZHUBUCUECDUACIACDBJKUBLZUDUAUESZCFZUFU
    GUDUAUCSZCFUIUCCDMUJUHCUAUCUEACDBNOPQUECDMRT $.

  $( A composition law for substitution.  (Contributed by NM, 14-May-1993.)
     (Proof shortened by Wolf Lammen, 21-Sep-2018.) $)
  sbco $p |- ( [ y / x ] [ x / y ] ph <-> [ y / x ] ph ) $=
    ( wsb sbcom3 sbid sbbii bitri ) ACBDBCDACCDZBCDABCDACBCEIABCACFGH $.

  ${
    sbid2.1 $e |- F/ x ph $.
    $( An identity law for substitution.  (Contributed by NM, 14-May-1993.)
       (Revised by Mario Carneiro, 6-Oct-2016.) $)
    sbid2 $p |- ( [ y / x ] [ x / y ] ph <-> ph ) $=
      ( wsb sbco sbf bitri ) ACBEBCEABCEAABCFABCDGH $.
  $}

  $( An idempotent law for substitution.  (Contributed by NM, 30-Jun-1994.)
     (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof shortened by Wolf
     Lammen, 13-Jul-2019.) $)
  sbidm $p |- ( [ y / x ] [ y / x ] ph <-> [ y / x ] ph ) $=
    ( wsb sbcom3 sbid sbbii bitr3i ) ABCDZBCDABBDZBCDIABBCEJABCABFGH $.

  ${
    sbco2.1 $e |- F/ z ph $.
    $( A composition law for substitution.  (Contributed by NM, 30-Jun-1994.)
       (Revised by Mario Carneiro, 6-Oct-2016.)  (Proof shortened by Wolf
       Lammen, 17-Sep-2018.) $)
    sbco2 $p |- ( [ y / z ] [ z / x ] ph <-> [ y / x ] ph ) $=
      ( weq wal wsb wb sbequ12 sbequ bitr3d sps wn nfnae nfsb4 wi sbied pm2.61i
      a1i ) DCFZDGZABDHZDCHZABCHZIZUAUFDUAUCUDUEUCDCJADCBKZLMUBNZUCUEDCDCDOABCD
      EPUAUCUEIQUHUGTRS $.
  $}

  ${
    sbco2d.1 $e |- F/ x ph $.
    sbco2d.2 $e |- F/ z ph $.
    sbco2d.3 $e |- ( ph -> F/ z ps ) $.
    $( A composition law for substitution.  (Contributed by NM, 2-Jun-1993.)
       (Revised by Mario Carneiro, 6-Oct-2016.) $)
    sbco2d $p |- ( ph -> ( [ y / z ] [ z / x ] ps <-> [ y / x ] ps ) ) $=
      ( wsb wi nfim1 sbco2 sbrim sbbii bitri 3bitr3i pm5.74ri ) ABCEIZEDIZBCDIZ
      ABJZCEIZEDIZUACDIASJZATJUACDEABEGHKLUCARJZEDIUDUBUEEDABCEFMNAREDGMOABCDFM
      PQ $.
  $}

  $( A composition law for substitution.  (Contributed by NM, 2-Jun-1993.)
     (Proof shortened by Wolf Lammen, 18-Sep-2018.) $)
  sbco3 $p |- ( [ z / y ] [ y / x ] ph <-> [ z / x ] [ x / y ] ph ) $=
    ( weq wal wsb wb drsb1 nfae sbequ12a sbbid bitr3d wn sbco sbbii nfnae nfsb2
    sps sbco2d syl5rbbr pm2.61i ) BCEZBFZABCGZCDGZACBGZBDGZHUDUEBDGUFUHUEBCDIUD
    UEUGBDBCBJUCUEUGHBABCKSLMUHUECBGZBDGUDNZUFUIUGBDACBOPUJUECDBBCCQBCBQABCRTUA
    UB $.

  $( A commutativity law for substitution.  (Contributed by NM, 27-May-1997.)
     (Proof shortened by Wolf Lammen, 20-Sep-2018.) $)
  sbcom $p |- ( [ y / z ] [ y / x ] ph <-> [ y / x ] [ y / z ] ph ) $=
    ( wsb sbco3 sbcom3 3bitr3i ) ABDEDCEADBEBCEABCEDCEADCEBCEABDCFABDCGADBCGH
    $.

  ${
    sbt.1 $e |- ph $.
    $( A substitution into a theorem yields a theorem.  (See ~ chvar and
       ~ chvarv for versions using implicit substitution.)  (Contributed by NM,
       21-Jan-2004.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 20-Jul-2018.) $)
    sbt $p |- [ y / x ] ph $=
      ( wsb stdpc4 mpg ) AABCEBABCFDG $.
  $}

  ${
    sbtrt.nf $e |- F/ y ph $.
    $( Partially closed form of ~ sbtr .  (Contributed by BJ, 4-Jun-2019.) $)
    sbtrt $p |- ( A. y [ y / x ] ph -> ph ) $=
      ( wsb wal stdpc4 sbid2 sylib ) ABCEZCFJCBEAJCBGACBDHI $.
  $}

  ${
    sbtr.nf $e |- F/ y ph $.
    sbtr.1 $e |- [ y / x ] ph $.
    $( A partial converse to ~ sbt .  If the substitution of a variable for a
       non-free one in a wff gives a theorem, then the original wff is a
       theorem.  (Contributed by BJ, 15-Sep-2018.) $)
    sbtr $p |- ph $=
      ( wsb sbtrt mpg ) ABCFACABCDGEH $.
  $}

  ${
    sb5rf.1 $e |- F/ y ph $.
    $( Reversed substitution.  (Contributed by NM, 3-Feb-2005.)  (Revised by
       Mario Carneiro, 6-Oct-2016.)  (Proof shortened by Wolf Lammen,
       20-Sep-2018.) $)
    sb5rf $p |- ( ph <-> E. y ( y = x /\ [ y / x ] ph ) ) $=
      ( weq wsb wa wex sbequ12r equsex bicomi ) CBEABCFZGCHALACBDACBIJK $.

    $( Reversed substitution.  (Contributed by NM, 1-Aug-1993.)  (Revised by
       Mario Carneiro, 6-Oct-2016.)  (Proof shortened by Wolf Lammen,
       21-Sep-2018.) $)
    sb6rf $p |- ( ph <-> A. y ( y = x -> [ y / x ] ph ) ) $=
      ( weq wsb wi wal sbequ12r equsal bicomi ) CBEABCFZGCHALACBDACBIJK $.

    $( Substitution of variable in universal quantifier.  (Contributed by NM,
       16-May-1993.)  (Revised by Mario Carneiro, 6-Oct-2016.)  (Proof
       shortened by Jim Kingdon, 15-Jan-2018.) $)
    sb8 $p |- ( A. x ph <-> A. y [ y / x ] ph ) $=
      ( wsb nfs1 sbequ12 cbval ) AABCEBCDABCDFABCGH $.

    $( Substitution of variable in existential quantifier.  (Contributed by NM,
       12-Aug-1993.)  (Revised by Mario Carneiro, 6-Oct-2016.)  (Proof
       shortened by Jim Kingdon, 15-Jan-2018.) $)
    sb8e $p |- ( E. x ph <-> E. y [ y / x ] ph ) $=
      ( wsb nfs1 sbequ12 cbvex ) AABCEBCDABCDFABCGH $.
  $}

  $( Commutation of quantification and substitution variables.  (Contributed by
     NM, 5-Aug-1993.)  Allow a shortening of ~ sb9i .  (Revised by Wolf Lammen,
     15-Jun-2019.) $)
  sb9 $p |- ( A. x [ x / y ] ph <-> A. y [ y / x ] ph ) $=
    ( weq wal wsb wb sbequ12a equcoms sps dral1 wn nfnae wnf nfsb2 naecoms cbv2
    wi a1i pm2.61i ) BCDZBEZACBFZBEABCFZCEGUCUDBCUAUCUDGZBUECBACBHIZJKUBLZUCUDB
    CBCBMBCCMUCCNCBACBOPABCOUAUERUGUFSQT $.

  $( Commutation of quantification and substitution variables.  (Contributed by
     NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 15-Jun-2019.) $)
  sb9i $p |- ( A. x [ x / y ] ph -> A. y [ y / x ] ph ) $=
    ( wsb wal sb9 biimpi ) ACBDBEABCDCEABCFG $.

  ${
    $d x y $.
    $( Alternate proof of ~ ax12v2 , shorter, but depending on more axioms.
       (Contributed by NM, 5-Aug-1993.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    ax12vALT $p |- ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) $=
      ( weq wal wi ax-1 axc16 syl5 a1d axc15 pm2.61i ) BCDZBEZMAMAFZBEZFZFNQMAO
      NPAMGOBCHIJABCKL $.
  $}

  ${
    $d x y $.
    $( Equivalence for substitution.  Compare Theorem 6.2 of [Quine] p. 40.
       Also proved as Lemmas 16 and 17 of [Tarski] p. 70.  The implication "to
       the left" is ~ sb2 and does not require any dv condition.  Theorem
       ~ sb6f replaces the dv condition with a non-freeness hypothesis.
       (Contributed by NM, 18-Aug-1993.)  (Proof shortened by Wolf Lammen,
       21-Sep-2018.) $)
    sb6 $p |- ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) $=
      ( wsb weq wi wal wa wex sb1 sb56 sylib sb2 impbii ) ABCDZBCEZAFBGZOPAHBIQ
      ABCJABCKLABCMN $.
  $}

  ${
    $d x y $.
    $( Equivalence for substitution.  Similar to Theorem 6.1 of [Quine] p. 40.
       The implication "to the right" is ~ sb1 and does not require any dv
       condition.  Theorem ~ sb5f replaces the dv condition with a non-freeness
       hypothesis.  (Contributed by NM, 18-Aug-1993.) $)
    sb5 $p |- ( [ y / x ] ph <-> E. x ( x = y /\ ph ) ) $=
      ( wsb weq wi wal wa wex sb6 sb56 bitr4i ) ABCDBCEZAFBGMAHBIABCJABCKL $.
  $}

  ${
    $d y z $.  $d x y $.
    $( Lemma for ~ equsb3 .  (Contributed by Raph Levien and FL, 4-Dec-2005.)
       (Proof shortened by Andrew Salmon, 14-Jun-2011.) $)
    equsb3lem $p |- ( [ x / y ] y = z <-> x = z ) $=
      ( weq nfv equequ1 sbie ) BCDACDZBAHBEBACFG $.
  $}

  ${
    $d y w z $.  $d x w $.
    $( Substitution applied to an atomic wff.  (Contributed by Raph Levien and
       FL, 4-Dec-2005.)  Remove dependency on ~ ax-11 .  (Revised by Wolf
       Lammen, 21-Sep-2018.) $)
    equsb3 $p |- ( [ x / y ] y = z <-> x = z ) $=
      ( vw weq wsb equsb3lem sbbii sbcom3 nfv sbf bitri 3bitr3i ) BCEZBDFZDAFZD
      CEZDAFNBAFZACEOQDADBCGHPRDAFRNBDAIRDARDJKLADCGM $.
  $}

  ${
    $d w y z $.  $d w x $.
    $( Alternate proof of ~ equsb3 , shorter but requiring ~ ax-11 .
       (Contributed by Raph Levien and FL, 4-Dec-2005.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    equsb3ALT $p |- ( [ x / y ] y = z <-> x = z ) $=
      ( vw weq wsb equsb3lem sbbii nfv sbco2 3bitr3i ) BCEZBDFZDAFDCEZDAFLBAFAC
      EMNDADBCGHLBADLDIJADCGK $.
  $}

  ${
    $d w y z $.  $d w x $.
    $( Substitution applied to an atomic membership wff.  (Contributed by NM,
       7-Nov-2006.)  (Proof shortened by Andrew Salmon, 14-Jun-2011.) $)
    elsb3 $p |- ( [ x / y ] y e. z <-> x e. z ) $=
      ( vw wel wsb nfv sbco2 elequ1 sbie sbbii 3bitr3i ) DCEZDBFZBAFMDAFBCEZBAF
      ACEZMDABMBGHNOBAMODBODGDBCIJKMPDAPDGDACIJL $.
  $}

  ${
    $d w y z $.  $d w x $.
    $( Substitution applied to an atomic membership wff.  (Contributed by
       Rodolfo Medina, 3-Apr-2010.)  (Proof shortened by Andrew Salmon,
       14-Jun-2011.) $)
    elsb4 $p |- ( [ x / y ] z e. y <-> z e. x ) $=
      ( vw wel wsb nfv sbco2 elequ2 sbie sbbii 3bitr3i ) CDEZDBFZBAFMDAFCBEZBAF
      CAEZMDABMBGHNOBAMODBODGDBCIJKMPDAPDGDACIJL $.
  $}

  ${
    $d x y $.
    $( The setvar ` x ` is not free in ` [ y / x ] ph ` when ` x ` and ` y `
       are distinct.  (Contributed by NM, 26-May-1993.) $)
    hbs1 $p |- ( [ y / x ] ph -> A. x [ y / x ] ph ) $=
      ( weq wal wsb wi axc16 hbsb2 pm2.61i ) BCDBEABCFZKBEGKBCHABCIJ $.

    $( The setvar ` x ` is not free in ` [ y / x ] ph ` when ` x ` and ` y `
       are distinct.  (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfs1v $p |- F/ x [ y / x ] ph $=
      ( wsb hbs1 nf5i ) ABCDBABCEF $.
  $}

  ${
    $d y ph $.
    $( Two ways of expressing " ` x ` is (effectively) not free in ` ph ` ."
       (Contributed by NM, 29-May-2009.) $)
    sbhb $p |- ( ( ph -> A. x ph ) <-> A. y ( ph -> [ y / x ] ph ) ) $=
      ( wal wi wsb nfv sb8 imbi2i 19.21v bitr4i ) AABDZEAABCFZCDZEAMECDLNAABCAC
      GHIAMCJK $.
  $}

  ${
    $d x y z $.  $d y z ph $.
    $( Two ways of expressing " ` x ` is (effectively) not free in ` ph ` ."
       (Contributed by G&eacute;rard Lang, 14-Nov-2013.)  (Revised by Mario
       Carneiro, 6-Oct-2016.)  (Proof shortened by Wolf Lammen,
       22-Sep-2018.) $)
    sbnf2 $p |- ( F/ x ph
       <-> A. y A. z ( [ y / x ] ph <-> [ z / x ] ph ) ) $=
      ( wnf wa wsb wi wal wb wex nfv sb8e imbi12i df-nf pm11.53v 3bitr4i bitr4i
      sb8 alcom 3bitri anbi12i pm4.24 2albiim ) ABEZUEFABCGZABDGZHDICIZUGUFHZDI
      CIZFUEUFUGJDICIUEUHUEUJABKZABIZHZUFCKZUGDIZHUEUHUKUNULUOABCACLZMABDADLZSN
      ABOZUFUGCDPQUEUMUICIDIZUJURUMUGDKZUFCIZHUSUKUTULVAABDUQMABCUPSNUGUFDCPRUI
      DCTUAUBUEUCUFUGCDUDQ $.
  $}

  ${
    $d y z $.
    nfsb.1 $e |- F/ z ph $.
    $( If ` z ` is not free in ` ph ` , it is not free in ` [ y / x ] ph ` when
       ` y ` and ` z ` are distinct.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfsb $p |- F/ z [ y / x ] ph $=
      ( weq wal wsb wnf axc16nf nfsb4 pm2.61i ) DCFDGABCHZDIMDCDJABCDEKL $.
  $}

  ${
    $d y z $.
    hbsb.1 $e |- ( ph -> A. z ph ) $.
    $( If ` z ` is not free in ` ph ` , it is not free in ` [ y / x ] ph ` when
       ` y ` and ` z ` are distinct.  (Contributed by NM, 12-Aug-1993.) $)
    hbsb $p |- ( [ y / x ] ph -> A. z [ y / x ] ph ) $=
      ( wsb nf5i nfsb nf5ri ) ABCFDABCDADEGHI $.
  $}

  ${
    $d y z $.
    nfsbd.1 $e |- F/ x ph $.
    nfsbd.2 $e |- ( ph -> F/ z ps ) $.
    $( Deduction version of ~ nfsb .  (Contributed by NM, 15-Feb-2013.) $)
    nfsbd $p |- ( ph -> F/ z [ y / x ] ps ) $=
      ( weq wal wsb wnf wn wi alrimi nfsb4t syl axc16nf pm2.61d2 ) AEDHEIZBCDJZ
      EKZABEKZCISLUAMAUBCFGNBCDEOPTEDEQR $.
  $}

  ${
    $d x y z $.  $d w y $.
    $( Equivalence for double substitution.  (Contributed by NM,
       3-Feb-2005.) $)
    2sb5 $p |- ( [ z / x ] [ w / y ] ph <->
               E. x E. y ( ( x = z /\ y = w ) /\ ph ) ) $=
      ( wsb weq wa wex sb5 19.42v anass exbii anbi2i 3bitr4ri bitri ) ACEFZBDFB
      DGZQHZBIRCEGZHAHZCIZBIQBDJSUBBRTAHZHZCIRUCCIZHUBSRUCCKUAUDCRTALMQUERACEJN
      OMP $.

    $( Equivalence for double substitution.  (Contributed by NM,
       3-Feb-2005.) $)
    2sb6 $p |- ( [ z / x ] [ w / y ] ph <->
               A. x A. y ( ( x = z /\ y = w ) -> ph ) ) $=
      ( wsb weq wi wal wa sb6 19.21v impexp albii imbi2i 3bitr4ri bitri ) ACEFZ
      BDFBDGZRHZBISCEGZJAHZCIZBIRBDKTUCBSUAAHZHZCISUDCIZHUCTSUDCLUBUECSUAAMNRUF
      SACEKOPNQ $.
  $}

  ${
    $d x z $.  $d u v x w $.  $d u v y z $.  $d u v ph $.
    $( Commutativity law for substitution.  Used in proof of Theorem 9.7 of
       [Megill] p. 449 (p. 16 of the preprint).  (Contributed by NM,
       27-May-1997.)  (Proof shortened by Wolf Lammen, 24-Sep-2018.) $)
    sbcom2 $p |- ( [ w / z ] [ y / x ] ph <-> [ y / x ] [ w / z ] ph ) $=
      ( vu vv weq wex wsb wb ax6ev wi wa wal 2sb6 alcom nfv sbequ sbbid ancomst
      2albii 3bitri bitr4i syl5bbr sylan9bb sylan9bbr bitr3d ex exlimdv exlimiv
      mp2 ) FCHZFIGEHZGIZABCJZDEJZADEJZBCJZKZFCLGELUMUOUTMFUMUNUTGUMUNUTUMUNNAD
      GJZBFJZUQUSUMVBUPDGJZUNUQVBABFJZDGJZUMVCVEBFHZDGHZNAMZDOBOZVBVEVGVFNAMZBO
      DOVJDOBOVIADBGFPVJDBQVJVHBDVGVFAUAUBUCABDFGPUDUMVDUPDGUMDRAFCBSTUEUPGEDSU
      FUNVBURBFJUMUSUNVAURBFUNBRAGEDSTURFCBSUGUHUIUJUKUL $.
  $}

  ${
    $d ph x y z $.  $d w x z $.
    $( Commutativity law for substitution.  This theorem was incorrectly used
       as our previous version of ~ pm11.07 but may still be useful.
       (Contributed by Andrew Salmon, 17-Jun-2011.)  (Proof shortened by Jim
       Kingdon, 22-Jan-2018.) $)
    sbcom4 $p |- ( [ w / x ] [ y / z ] ph <-> [ y / x ] [ w / z ] ph ) $=
      ( wsb nfv sbf sbbii bitri 3bitr4i ) ABEFAADCFZBEFADEFZBCFZABEABGZHLABEADC
      ADGZHINABCFAMABCADEPHIABCOHJK $.
  $}

  ${
    pm11.07.1 $e |- ph $.
    $( Axiom *11.07 in [WhiteheadRussell] p. 159.  The original reads: *11.07
       "Whatever possible argument ` x ` may be, ` ph ( x , y ) ` is true
       whatever possible argument ` y ` may be" implies the corresponding
       statement with ` x ` and ` y ` interchanged except
       in " ` ph ( x , y ) ` ".  Under our formalism this appears to correspond
       to ~ idi and not to ~ sbcom4 as earlier thought.  See
       ~ https://groups.google.com/d/msg/metamath/iS0fOvSemC8/M1zTH8wxCAAJ .
       (Contributed by BJ, 16-Sep-2018.)  (New usage is discouraged.) $)
    pm11.07 $p |- ph $=
      (  ) B $.
  $}

  ${
    $d x y $.
    $( Equivalence for substitution.  (Contributed by NM, 2-Jun-1993.)  (Proof
       shortened by Wolf Lammen, 23-Sep-2018.) $)
    sb6a $p |- ( [ y / x ] ph <-> A. x ( x = y -> [ x / y ] ph ) ) $=
      ( wsb weq wi wal sbco sb6 bitr3i ) ABCDACBDZBCDBCEKFBGABCHKBCIJ $.
  $}

  $( We can always find values matching ` x ` and ` y ` , as long as they are
     represented by distinct variables.  This theorem merges two ~ ax6e
     instances ` E. z z = x ` and ` E. w w = y ` into a common expression.
     Alan Sare contributed a variant of this theorem with distinct variable
     conditions before, see ~ ax6e2nd .  (Contributed by Wolf Lammen,
     27-Sep-2018.) $)
  2ax6elem $p |- ( -. A. w w = z -> E. z E. w ( z = x /\ w = y ) ) $=
    ( weq wal wn wex ax6e nfnae nfan nfeqf pm3.21 spimed eximd mpi nfae equvini
    wa ex equtrr anim1d aleximi syl5 pm2.61d2 ) DCEDFGZDAEZDFZCAEZDBEZSZDHZCHZU
    FUHGZUMUFUNSZUICHUMCAIUOUIULCUFUNCDCCJDACJKUIUKUODBCADLUJUIMNOPTUHCBEZCHUMC
    BIUHUPULCDACQUPCDEZUJSZDHUHULCBDRUGURUKDUGUQUIUJDACUAUBUCUDOPUE $.

  ${
    $d w z $.
    $( We can always find values matching ` x ` and ` y ` , as long as they are
       represented by distinct variables.  Version of ~ 2ax6elem with a
       distinct variable constraint.  (Contributed by Wolf Lammen,
       28-Sep-2018.) $)
    2ax6e $p |- E. z E. w ( z = x /\ w = y ) $=
      ( weq wal wa wex aeveq jca 19.8a 3syl 2ax6elem pm2.61i ) DCEDFZCAEZDBEZGZ
      DHZCHZORSTOPQDCCAIDCDBIJRDKSCKLABCDMN $.
  $}

  ${
    $d w z $.
    2sb5rf.1 $e |- F/ z ph $.
    2sb5rf.2 $e |- F/ w ph $.
    $( Reversed double substitution.  (Contributed by NM, 3-Feb-2005.)
       (Revised by Mario Carneiro, 6-Oct-2016.)  Remove distinct variable
       constraints.  (Revised by Wolf Lammen, 28-Sep-2018.) $)
    2sb5rf $p |- ( ph <->
                E. z E. w ( ( z = x /\ w = y ) /\ [ z / x ] [ w / y ] ph ) ) $=
      ( weq wa wex wsb 19.41 exbii bitri sbequ12r sylan9bb pm5.32i 2exbii 2ax6e
      biantrur 3bitr4ri ) DBHZECHZIZAIZEJZDJZUDEJZDJZAIZUDACEKZBDKZIZEJDJAUGUHA
      IZDJUJUFUNDUDAEGLMUHADFLNUMUEDEUDULAUBULUKUCAUKDBOAECOPQRUIABCDESTUA $.

    $( Reversed double substitution.  (Contributed by NM, 3-Feb-2005.)
       (Revised by Mario Carneiro, 6-Oct-2016.)  Remove variable constraints.
       (Revised by Wolf Lammen, 28-Sep-2018.) $)
    2sb6rf $p |- ( ph <->
                A. z A. w ( ( z = x /\ w = y ) -> [ z / x ] [ w / y ] ph ) ) $=
      ( weq wa wsb wal wex sbequ12r sylan9bb pm5.74i 2albii 19.23 albii bitri
      wi wb 2ax6e pm5.5 ax-mp 3bitrri ) DBHZECHZIZACEJZBDJZTZEKDKUHATZEKZDKZUHE
      LZDLZATZAUKULDEUHUJAUFUJUIUGAUIDBMAECMNOPUNUOATZDKUQUMURDUHAEGQRUOADFQSUP
      UQAUABCDEUBUPAUCUDUE $.
  $}

  ${
    $d y z $.
    sb7f.1 $e |- F/ z ph $.
    $( This version of ~ dfsb7 does not require that ` ph ` and ` z ` be
       distinct.  This permits it to be used as a definition for substitution
       in a formalization that omits the logically redundant axiom ~ ax-5 i.e.
       that doesn't have the concept of a variable not occurring in a wff.
       ( ~ df-sb is also suitable, but its mixing of free and bound variables
       is distasteful to some logicians.)  (Contributed by NM, 26-Jul-2006.)
       (Revised by Mario Carneiro, 6-Oct-2016.) $)
    sb7f $p |- ( [ y / x ] ph <->
               E. z ( z = y /\ E. x ( x = z /\ ph ) ) ) $=
      ( wsb weq wa wex sb5f sbbii sbco2 sb5 3bitr3i ) ABDFZDCFBDGAHBIZDCFABCFDC
      GPHDIOPDCABDEJKABCDELPDCMN $.
  $}

  ${
    $d y z $.
    sb7h.1 $e |- ( ph -> A. z ph ) $.
    $( This version of ~ dfsb7 does not require that ` ph ` and ` z ` be
       distinct.  This permits it to be used as a definition for substitution
       in a formalization that omits the logically redundant axiom ~ ax-5 i.e.
       that doesn't have the concept of a variable not occurring in a wff.
       ( ~ df-sb is also suitable, but its mixing of free and bound variables
       is distasteful to some logicians.)  (Contributed by NM, 26-Jul-2006.)
       (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    sb7h $p |- ( [ y / x ] ph <->
               E. z ( z = y /\ E. x ( x = z /\ ph ) ) ) $=
      ( nf5i sb7f ) ABCDADEFG $.
  $}

  ${
    $d y z $.  $d z ph $.
    $( An alternate definition of proper substitution ~ df-sb .  By introducing
       a dummy variable ` z ` in the definiens, we are able to eliminate any
       distinct variable restrictions among the variables ` x ` , ` y ` , and
       ` ph ` of the definiendum.  No distinct variable conflicts arise because
       ` z ` effectively insulates ` x ` from ` y ` .  To achieve this, we use
       a chain of two substitutions in the form of ~ sb5 , first ` z ` for
       ` x ` then ` y ` for ` z ` .  Compare Definition 2.1'' of [Quine] p. 17,
       which is obtained from this theorem by applying ~ df-clab .  Theorem
       ~ sb7h provides a version where ` ph ` and ` z ` don't have to be
       distinct.  (Contributed by NM, 28-Jan-2004.) $)
    dfsb7 $p |- ( [ y / x ] ph <-> E. z ( z = y /\ E. x ( x = z /\ ph ) ) ) $=
      ( nfv sb7f ) ABCDADEF $.
  $}

  ${
    $d x y $.
    sb10f.1 $e |- F/ x ph $.
    $( Hao Wang's identity axiom P6 in Irving Copi, _Symbolic Logic_ (5th ed.,
       1979), p. 328.  In traditional predicate calculus, this is a sole axiom
       for identity from which the usual ones can be derived.  (Contributed by
       NM, 9-May-2005.)  (Revised by Mario Carneiro, 6-Oct-2016.) $)
    sb10f $p |- ( [ y / z ] ph <-> E. x ( x = y /\ [ x / z ] ph ) ) $=
      ( weq wsb wa wex nfsb sbequ equsexv bicomi ) BCFADBGZHBIADCGZNOBCADCBEJAB
      CDKLM $.
  $}

  ${
    $d x ph $.
    $( An identity law for substitution.  Used in proof of Theorem 9.7 of
       [Megill] p. 449 (p. 16 of the preprint).  (Contributed by NM,
       5-Aug-1993.) $)
    sbid2v $p |- ( [ y / x ] [ x / y ] ph <-> ph ) $=
      ( nfv sbid2 ) ABCABDE $.
  $}

  ${
    $d x y $.  $d x ph $.
    $( Elimination of substitution.  (Contributed by NM, 5-Aug-1993.) $)
    sbelx $p |- ( ph <-> E. x ( x = y /\ [ x / y ] ph ) ) $=
      ( wsb weq wa wex sbid2v sb5 bitr3i ) AACBDZBCDBCEKFBGABCHKBCIJ $.
  $}

  ${
    $d x y ph $.
    $( Elimination of double substitution.  (Contributed by NM, 5-Aug-1993.)
       (Proof shortened by Wolf Lammen, 29-Sep-2018.) $)
    sbel2x $p |- ( ph <-> E. x E. y ( ( x = z /\ y = w ) /\
                     [ y / w ] [ x / z ] ph ) ) $=
      ( weq wa wsb wex nfv 2sb5rf ancom anbi1i 2exbii excom 3bitri ) ACEFZBDFZG
      ZADBHECHZGZBICIRQGZTGZBICIUCCIBIAEDCBACJABJKUAUCCBSUBTQRLMNUCCBOP $.
  $}

  ${
    $d x y $.
    $( A theorem used in elimination of disjoint variable restriction on ` x `
       and ` y ` by replacing it with a distinctor ` -. A. x x = z ` .
       (Contributed by NM, 15-May-1993.)  (Proof shortened by Wolf Lammen,
       3-Oct-2018.) $)
    sbal1 $p |- ( -. A. x x = z ->
             ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) ) $=
      ( weq wal wn wsb wb wa wi sb4b nfnae wnf nfeqf2 19.21t bicomd sbequ12 sps
      albid syl sylan9bbr alcom syl6bb adantl bitr4d ex dral2 bitr3d pm2.61d2 )
      BDEBFGZCDEZCFZABFZCDHZACDHZBFZIZUKUMGZURUKUSJUOULAKZBFZCFZUQUSUOULUNKZCFU
      KVBUNCDLUKVCVACBDCMUKULBNZVCVAIBDCOVDVAVCULABPQUATUBUSUQVBIUKUSUQUTCFZBFV
      BUSUPVEBCDBMACDLTUTBCUCUDUEUFUGUMUNUOUQULUNUOICUNCDRSAUPCDBULAUPICACDRSUH
      UIUJ $.
  $}

  ${
    $d z x $.
    $( Move quantifier in and out of substitution.  (Contributed by NM,
       2-Jan-2002.)  Remove a distinct variable constraint.  (Revised by Wolf
       Lammen, 3-Oct-2018.) $)
    sbal2 $p |- ( -. A. x x = y ->
             ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) ) $=
      ( weq wal wn wsb wb wa wi sb4b adantl nfnae albid alcom wnf drsb2 syl5bbr
      sbid nfeqf1 19.21t syl syl5bb sylan9bbr bitr4d ex dral2 bitr3d pm2.61d2 )
      BCEBFGZCDEZCFZABFZCDHZACDHZBFZIZUKUMGZURUKUSJUOULUNKZCFZUQUSUOVAIUKUNCDLM
      USUQULAKZCFZBFZUKVAUSUPVCBCDBNACDLOVDVBBFZCFUKVAVBBCPUKVEUTCBCCNUKULBQVEU
      TIBCDUAULABUBUCOUDUEUFUGUMUNUOUQUNUNCCHUMUOUNCTUNCDCRSAUPCDBAACCHUMUPACTA
      CDCRSUHUIUJ $.
  $}

  ${
    $d x y $.  $d x z $.
    $( Move universal quantifier in and out of substitution.  (Contributed by
       NM, 16-May-1993.)  (Proof shortened by Wolf Lammen, 29-Sep-2018.) $)
    sbal $p |- ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) $=
      ( weq wal wsb wb nfae axc16gb sbbid bitr3d sbal1 pm2.61i ) BDEBFZABFZCDGZ
      ACDGZBFZHORQSOAPCDBDCIABDBJKRBDBJLABCDMN $.
  $}

  ${
    $d x y $.  $d x z $.
    $( Move existential quantifier in and out of substitution.  (Contributed by
       NM, 27-Sep-2003.) $)
    sbex $p |- ( [ z / y ] E. x ph <-> E. x [ z / y ] ph ) $=
      ( wn wal wsb wex sbn sbal albii bitri xchbinx df-ex sbbii 3bitr4i ) AEZBF
      ZEZCDGZACDGZEZBFZEABHZCDGUABHTRCDGZUCRCDIUEQCDGZBFUCQBCDJUFUBBACDIKLMUDSC
      DABNOUABNP $.
  $}

  ${
    $d x z $.  $d y z $.
    sbalv.1 $e |- ( [ y / x ] ph <-> ps ) $.
    $( Quantify with new variable inside substitution.  (Contributed by NM,
       18-Aug-1993.) $)
    sbalv $p |- ( [ y / x ] A. z ph <-> A. z ps ) $=
      ( wal wsb sbal albii bitri ) AEGCDHACDHZEGBEGAECDILBEFJK $.
  $}

  ${
    $d v w ph $.  $d v w x $.  $d v w y $.
    $( Lemma for ~ sbco4 .  It replaces the temporary variable ` v ` with
       another temporary variable ` w ` .  (Contributed by Jim Kingdon,
       26-Sep-2018.) $)
    sbco4lem $p |- ( [ x / v ] [ y / x ] [ v / y ] ph <->
        [ x / w ] [ y / x ] [ w / y ] ph ) $=
      ( wsb sbcom2 sbbii nfv sbco2 bitri sbid2v 3bitr3i ) ACDFZDEFZBCFZEDFZDBFZ
      OEDFZBCFZDBFACEFZBCFZEBFZNBCFZDBFQTDBOBCEDGHRUBEDFZDBFUCQUEDBPUBEDOUABCAC
      EDADIJHHHUBEBDUBDIJKTUDDBSNBCNEDLHHM $.
  $}

  ${
    $d t u v ph $.  $d t u v x $.  $d t u v y $.  $d w ph $.  $d w x $.
    $d w y $.  $d t w $.
    $( Two ways of exchanging two variables.  Both sides of the biconditional
       exchange ` x ` and ` y ` , either via two temporary variables ` u ` and
       ` v ` , or a single temporary ` w ` .  (Contributed by Jim Kingdon,
       25-Sep-2018.) $)
    sbco4 $p |- ( [ y / u ] [ x / v ] [ u / x ] [ v / y ] ph <->
        [ x / w ] [ y / x ] [ w / y ] ph ) $=
      ( vt wsb sbcom2 nfv sbco2 sbbii bitr3i sbco4lem 3bitri ) ACEHZBFHZEBHFCHZ
      PBCHZEBHZACGHBCHGBHACDHBCHDBHRQFCHZEBHTQFCEBIUASEBPBCFPFJKLMABCGENABCDGNO
      $.
  $}

  ${
    $d z w ph $.
    $( An equivalent expression for double existence.  (Contributed by Wolf
       Lammen, 2-Nov-2019.) $)
    2sb8e $p |- ( E. x E. y ph <->
                  E. z E. w [ z / x ] [ w / y ] ph ) $=
      ( wex wsb nfv sb8e exbii excom bitri nfsb 3bitri ) ACFZBFZACEGZBFZEFZQBDG
      ZDFZEFTEFDFPQEFZBFSOUBBACEAEHIJQBEKLRUAEQBDACEDADHMIJTEDKN $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( An equivalent expression for existence.  (Contributed by NM,
       2-Feb-2005.) $)
    exsb $p |- ( E. x ph <-> E. y A. x ( x = y -> ph ) ) $=
      ( weq wi wal nfv nfa1 ax12v sp com12 impbid cbvex ) ABCDZAEZBFZBCACGOBHNA
      PABCIPNAOBJKLM $.
  $}

  ${
    $d x y z $.  $d y w $.  $d z w ph $.
    $( An equivalent expression for double existence.  (Contributed by NM,
       2-Feb-2005.)  (Proof shortened by Wolf Lammen, 30-Sep-2018.) $)
    2exsb $p |- ( E. x E. y ph <->
                  E. z E. w A. x A. y ( ( x = z /\ y = w ) -> ph ) ) $=
      ( wex wsb weq wa wi wal 2sb8e 2sb6 2exbii bitri ) ACFBFACEGBDGZEFDFBDHCEH
      IAJCKBKZEFDFABCDELPQDEABCDEMNO $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Existential uniqueness
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  $( Declare new symbols needed for uniqueness notation. $)
  $c E! $.  $( Backwards E exclamation point. $)
  $c E* $.  $( Backwards E superscript *. $)

  $( Extend wff definition to include existential uniqueness ("there exists a
     unique ` x ` such that ` ph ` "). $)
  weu $a wff E! x ph $.

  $( Extend wff definition to include uniqueness ("there exists at most one
     ` x ` such that ` ph ` "). $)
  wmo $a wff E* x ph $.

  ${
    $d w x y $.  $d x z $.  $d y ph $.  $d w z ph $.
    $( A soundness justification theorem for ~ df-eu , showing that the
       definition is equivalent to itself with its dummy variable renamed.
       Note that ` y ` and ` z ` needn't be distinct variables.  See
       ~ eujustALT for a proof that provides an example of how it can be
       achieved through the use of ~ dvelim .  (Contributed by NM,
       11-Mar-2010.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    eujust $p |- ( E. y A. x ( ph <-> x = y )
        <-> E. z A. x ( ph <-> x = z ) ) $=
      ( vw weq wb wal wex equequ2 bibi2d albidv cbvexv bitri ) ABCFZGZBHZCIABEF
      ZGZBHZEIABDFZGZBHZDIQTCECEFZPSBUDORACEBJKLMTUCEDEDFZSUBBUERUAAEDBJKLMN $.

    $( Alternate proof of ~ eujust illustrating the use of ~ dvelim .
       (Contributed by NM, 11-Mar-2010.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    eujustALT $p |- ( E. y A. x ( ph <-> x = y )
        <-> E. z A. x ( ph <-> x = z ) ) $=
      ( vw weq wal wb wex equequ2 bibi2d albidv sps wn hbnae ax-5 notbid dvelim
      wi df-ex drex1 alrimih naecoms a1i cbv2h syl 3bitr4g pm2.61i ) CDFZCGZABC
      FZHZBGZCIZABDFZHZBGZDIZHUMUQCDUIUMUQHCUIULUPBUIUKUOACDBJKLZMUAUJNZUMNZCGZ
      NUQNZDGZNUNURUTVBVDUTUTDGZCGVBVDHUTVECCDCOCDDOUBUTVAVCCDVAVADGSDCABEFZHZB
      GZNZVADCEVIDPECFZVHUMVJVGULBVJVFUKAECBJKLQRUCVIVCCDEVICPEDFZVHUQVKVGUPBVK
      VFUOAEDBJKLQRUIVAVCHSUTUIUMUQUSQUDUEUFQUMCTUQDTUGUH $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Define existential uniqueness, i.e.  "there exists exactly one ` x `
       such that ` ph ` ."  Definition 10.1 of [BellMachover] p. 97; also
       Definition *14.02 of [WhiteheadRussell] p. 175.  Other possible
       definitions are given by ~ eu1 , ~ eu2 , ~ eu3v , and ~ eu5 (which in
       some cases we show with a hypothesis ` ph -> A. y ph ` in place of a
       distinct variable condition on ` y ` and ` ph ` ).  Double uniqueness is
       tricky: ` E! x E! y ph ` does not mean "exactly one ` x ` and one
       ` y ` " (see ~ 2eu4 ).  (Contributed by NM, 12-Aug-1993.) $)
    df-eu $a |- ( E! x ph <-> E. y A. x ( ph <-> x = y ) ) $.
  $}

  $( Define "there exists at most one ` x ` such that ` ph ` ."  Here we define
     it in terms of existential uniqueness.  Notation of [BellMachover] p. 460,
     whose definition we show as ~ mo3 .  For other possible definitions see
     ~ mo2 and ~ mo4 .  (Contributed by NM, 8-Mar-1995.) $)
  df-mo $a |- ( E* x ph <-> ( E. x ph -> E! x ph ) ) $.

  ${
    $d x y z $.
    $( Equality has existential uniqueness.  Special case of ~ eueq1 proved
       using only predicate calculus.  The proof needs ` y = z ` be free of
       ` x ` .  This is ensured by having ` x ` and ` y ` be distinct.
       Alternately, a distinctor ` -. A. x x = y ` could have been used
       instead.  (Contributed by Stefan Allan, 4-Dec-2008.)  (Proof shortened
       by Wolf Lammen, 8-Sep-2019.) $)
    euequ1 $p |- E! x x = y $=
      ( vz weq weu wb wal wex ax6evr equequ2 alrimiv eximii df-eu mpbir ) ABDZA
      EOACDFZAGZCHBCDZQCCBIRPABCAJKLOACMN $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Alternate definition of "at most one."  Unlike ~ mo2 , which is slightly
       more general, it does not depend on ~ ax-11 and ~ ax-13 , whence it is
       preferable within predicate logic.  Elsewhere, most theorems depend on
       these axioms anyway, so this advantage is no longer important.
       (Contributed by Wolf Lammen, 27-May-2019.)  (Proof shortened by Wolf
       Lammen, 10-Nov-2019.) $)
    mo2v $p |- ( E* x ph <-> E. y A. x ( ph -> x = y ) ) $=
      ( wmo wex weu wi wb df-mo df-eu imbi2i wn alnex pm2.21 alimi sylbir eximi
      weq wal com12 19.23bi biimp ja nfia1 wa ax12v embantd spsd albiim syl6ibr
      id ancld exlimi eximdv impbii 3bitri ) ABDABEZABFZGUQABCRZHZBSZCEZGZAUSGZ
      BSZCEZABIURVBUQABCJKVCVFUQVBVFUQLZVFCVGVECVGALZBSVEABMVHVDBAUSNOPQUAVAVEC
      UTVDBAUSUBOQUCUQVFVBUQVEVACAVEVAGBVDUTBUDAVEVEUSAGBSZUEVAAVEVIAVDVIBAAUSV
      IAUKUSAVIABCUFTUGUHULAUSBUIUJUMUNTUOUP $.
  $}

  ${
    $d x y z $.  $d ph z $.
    euf.1 $e |- F/ y ph $.
    $( A version of the existential uniqueness definition with a hypothesis
       instead of a distinct variable condition.  (Contributed by NM,
       12-Aug-1993.)  (Proof shortened by Wolf Lammen, 30-Oct-2018.) $)
    euf $p |- ( E! x ph <-> E. y A. x ( ph <-> x = y ) ) $=
      ( vz weu weq wb wal wex df-eu nfbi nfal equequ2 bibi2d albidv cbvex bitri
      nfv ) ABFABEGZHZBIZEJABCGZHZBIZCJABEKUBUEECUACBATCDTCSLMUEESECGZUAUDBUFTU
      CAECBNOPQR $.
  $}

  ${
    $d x y z $.  $d ph z $.
    mo2.1 $e |- F/ y ph $.
    $( Alternate definition of "at most one."  (Contributed by NM, 8-Mar-1995.)
       Restrict dummy variable z.  (Revised by Wolf Lammen, 28-May-2019.) $)
    mo2 $p |- ( E* x ph <-> E. y A. x ( ph -> x = y ) ) $=
      ( vz wmo weq wal wex mo2v nfv nfim nfal equequ2 imbi2d albidv cbvex bitri
      wi ) ABFABEGZSZBHZEIABCGZSZBHZCIABEJUBUEECUACBATCDTCKLMUEEKECGZUAUDBUFTUC
      AECBNOPQR $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Bound-variable hypothesis builder for uniqueness.  (Contributed by NM,
       9-Jul-1994.)  (Revised by Mario Carneiro, 7-Oct-2016.) $)
    nfeu1 $p |- F/ x E! x ph $=
      ( vy weu weq wb wal wex df-eu nfa1 nfex nfxfr ) ABDABCEFZBGZCHBABCINBCMBJ
      KL $.
  $}

  $( Bound-variable hypothesis builder for "at most one."  (Contributed by NM,
     8-Mar-1995.)  (Revised by Mario Carneiro, 7-Oct-2016.) $)
  nfmo1 $p |- F/ x E* x ph $=
    ( wmo wex weu wi df-mo nfe1 nfeu1 nfim nfxfr ) ABCABDZABEZFBABGLMBABHABIJK
    $.

  ${
    $d x z $.  $d y z $.  $d z ph $.  $d z ps $.
    nfeud2.1 $e |- F/ y ph $.
    nfeud2.2 $e |- ( ( ph /\ -. A. x x = y ) -> F/ x ps ) $.
    $( Bound-variable hypothesis builder for uniqueness.  (Contributed by Mario
       Carneiro, 14-Nov-2016.)  (Proof shortened by Wolf Lammen,
       4-Oct-2018.) $)
    nfeud2 $p |- ( ph -> F/ x E! y ps ) $=
      ( vz weu weq wb wal wex df-eu nfv wn wa wnf nfeqf1 adantl nfbid nfald2
      nfexd nfxfrd ) BDHBDGIZJZDKZGLACBDGMAUFCGAGNAUECDEACDICKOZPBUDCFUGUDCQACD
      GRSTUAUBUC $.
  $}

  ${
    nfmod2.1 $e |- F/ y ph $.
    nfmod2.2 $e |- ( ( ph /\ -. A. x x = y ) -> F/ x ps ) $.
    $( Bound-variable hypothesis builder for "at most one."  (Contributed by
       Mario Carneiro, 14-Nov-2016.) $)
    nfmod2 $p |- ( ph -> F/ x E* y ps ) $=
      ( wmo wex weu wi df-mo nfexd2 nfeud2 nfimd nfxfrd ) BDGBDHZBDIZJACBDKAPQC
      ABCDEFLABCDEFMNO $.
  $}

  ${
    nfeud.1 $e |- F/ y ph $.
    nfeud.2 $e |- ( ph -> F/ x ps ) $.
    $( Deduction version of ~ nfeu .  (Contributed by NM, 15-Feb-2013.)
       (Revised by Mario Carneiro, 7-Oct-2016.) $)
    nfeud $p |- ( ph -> F/ x E! y ps ) $=
      ( wnf weq wal wn adantr nfeud2 ) ABCDEABCGCDHCIJFKL $.

    $( Bound-variable hypothesis builder for "at most one."  (Contributed by
       Mario Carneiro, 14-Nov-2016.) $)
    nfmod $p |- ( ph -> F/ x E* y ps ) $=
      ( wnf weq wal wn adantr nfmod2 ) ABCDEABCGCDHCIJFKL $.
  $}

  ${
    nfeu.1 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for uniqueness.  Note that ` x ` and
       ` y ` needn't be distinct.  (Contributed by NM, 8-Mar-1995.)  (Revised
       by Mario Carneiro, 7-Oct-2016.) $)
    nfeu $p |- F/ x E! y ph $=
      ( weu wnf wtru nftru a1i nfeud trud ) ACEBFGABCCHABFGDIJK $.

    $( Bound-variable hypothesis builder for "at most one."  (Contributed by
       NM, 9-Mar-1995.) $)
    nfmo $p |- F/ x E* y ph $=
      ( wmo wnf wtru nftru a1i nfmod trud ) ACEBFGABCCHABFGDIJK $.
  $}

  ${
    $d x y $.  $d y ph $.  $d y ps $.  $d y ch $.
    eubid.1 $e |- F/ x ph $.
    eubid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for uniqueness quantifier (deduction rule).
       (Contributed by NM, 9-Jul-1994.) $)
    eubid $p |- ( ph -> ( E! x ps <-> E! x ch ) ) $=
      ( vy weq wb wal wex weu bibi1d albid exbidv df-eu 3bitr4g ) ABDGHZIZDJZGK
      CRIZDJZGKBDLCDLATUBGASUADEABCRFMNOBDGPCDGPQ $.
  $}

  ${
    mobid.1 $e |- F/ x ph $.
    mobid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for "at most one" quantifier (deduction rule).
       (Contributed by NM, 8-Mar-1995.) $)
    mobid $p |- ( ph -> ( E* x ps <-> E* x ch ) ) $=
      ( wex weu wi wmo exbid eubid imbi12d df-mo 3bitr4g ) ABDGZBDHZICDGZCDHZIB
      DJCDJAPRQSABCDEFKABCDEFLMBDNCDNO $.
  $}

  ${
    $d x ph $.
    eubidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for uniqueness quantifier (deduction rule).
       (Contributed by NM, 9-Jul-1994.) $)
    eubidv $p |- ( ph -> ( E! x ps <-> E! x ch ) ) $=
      ( nfv eubid ) ABCDADFEG $.
  $}

  ${
    $d x ph $.
    mobidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for "at most one" quantifier (deduction rule).
       (Contributed by Mario Carneiro, 7-Oct-2016.) $)
    mobidv $p |- ( ph -> ( E* x ps <-> E* x ch ) ) $=
      ( nfv mobid ) ABCDADFEG $.
  $}

  ${
    eubii.1 $e |- ( ph <-> ps ) $.
    $( Introduce uniqueness quantifier to both sides of an equivalence.
       (Contributed by NM, 9-Jul-1994.)  (Revised by Mario Carneiro,
       6-Oct-2016.) $)
    eubii $p |- ( E! x ph <-> E! x ps ) $=
      ( weu wb wtru a1i eubidv trud ) ACEBCEFGABCABFGDHIJ $.
  $}

  ${
    mobii.1 $e |- ( ps <-> ch ) $.
    $( Formula-building rule for "at most one" quantifier (inference rule).
       (Contributed by NM, 9-Mar-1995.)  (Revised by Mario Carneiro,
       17-Oct-2016.) $)
    mobii $p |- ( E* x ps <-> E* x ch ) $=
      ( wmo wb wtru a1i mobidv trud ) ACEBCEFGABCABFGDHIJ $.
  $}

  ${
    $d x y $.  $d ph y $.
    $( Existential uniqueness implies existence.  For a shorter proof using
       more axioms, see ~ euexALT .  (Contributed by NM, 15-Sep-1993.)  (Proof
       shortened by Andrew Salmon, 9-Jul-2011.)  (Proof shortened by Wolf
       Lammen, 4-Dec-2018.) $)
    euex $p |- ( E! x ph -> E. x ph ) $=
      ( vy weu weq wb wal wex df-eu wi ax6ev biimpr com12 eximii 19.35i exlimiv
      sylbi ) ABDABCEZFZBGZCHABHZABCITUACSABRSAJBBCKSRAARLMNOPQ $.
  $}

  $( Something exists or at most one exists.  (Contributed by NM,
     8-Mar-1995.) $)
  exmo $p |- ( E. x ph \/ E* x ph ) $=
    ( wex wmo wn weu wi pm2.21 df-mo sylibr orri ) ABCZABDZLELABFZGMLNHABIJK $.

  $( Uniqueness in terms of "at most one."  Revised to reduce dependencies on
     axioms.  (Contributed by NM, 23-Mar-1995.)  (Proof shortened by Wolf
     Lammen, 25-May-2019.) $)
  eu5 $p |- ( E! x ph <-> ( E. x ph /\ E* x ph ) ) $=
    ( wex weu wa wi wmo abai euex pm4.71ri df-mo anbi2i 3bitr4i ) ABCZABDZENNOF
    ZEONABGZENOHONABIJQPNABKLM $.

  $( Existence implies "at most one" is equivalent to uniqueness.  (Contributed
     by NM, 5-Apr-2004.) $)
  exmoeu2 $p |- ( E. x ph -> ( E* x ph <-> E! x ph ) ) $=
    ( weu wex wmo eu5 baibr ) ABCABDABEABFG $.

  ${
    $d x y $.  $d ph y $.
    $( An alternate way to express existential uniqueness.  (Contributed by NM,
       8-Jul-1994.)  Add a distinct variable condition on ` ph ` .  (Revised by
       Wolf Lammen, 29-May-2019.) $)
    eu3v $p |- ( E! x ph <-> ( E. x ph /\ E. y A. x ( ph -> x = y ) ) ) $=
      ( weu wex wmo wa weq wi wal eu5 mo2v anbi2i bitri ) ABDABEZABFZGOABCHIBJC
      EZGABKPQOABCLMN $.
  $}

  $( Existential uniqueness implies "at most one."  (Contributed by NM,
     23-Mar-1995.)  Reduce axiom usage.  (Revised by GL, 19-Feb-2022.) $)
  eumo $p |- ( E! x ph -> E* x ph ) $=
    ( weu wex wi wmo ax-1 df-mo sylibr ) ABCZABDZJEABFJKGABHI $.

  $( Obsolete proof of ~ eumo as of 19-Feb-2022.  (Contributed by NM,
     23-Mar-1995.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  eumoOLD $p |- ( E! x ph -> E* x ph ) $=
    ( weu wex wmo eu5 simprbi ) ABCABDABEABFG $.

  ${
    eumoi.1 $e |- E! x ph $.
    $( "At most one" inferred from existential uniqueness.  (Contributed by NM,
       5-Apr-1995.) $)
    eumoi $p |- E* x ph $=
      ( weu wmo eumo ax-mp ) ABDABECABFG $.
  $}

  $( Absorption of existence condition by "at most one."  (Contributed by NM,
     4-Nov-2002.) $)
  moabs $p |- ( E* x ph <-> ( E. x ph -> E* x ph ) ) $=
    ( wex weu wi wmo pm5.4 df-mo imbi2i 3bitr4ri ) ABCZKABDZEZEMKABFZENKLGNMKAB
    HZIOJ $.

  $( Existence in terms of "at most one" and uniqueness.  (Contributed by NM,
     5-Apr-2004.)  (Proof shortened by Wolf Lammen, 5-Dec-2018.) $)
  exmoeu $p |- ( E. x ph <-> ( E* x ph -> E! x ph ) ) $=
    ( wex wmo weu wi df-mo biimpi com12 exmo ori con1i euex ja impbii ) ABCZABD
    ZABEZFQPRQPRFABGHIQRPPQPQABJKLABMNO $.

  ${
    $d w y z $.  $d ph z w $.  $d w x z $.
    sb8eu.1 $e |- F/ y ph $.
    $( Variable substitution in uniqueness quantifier.  (Contributed by NM,
       7-Aug-1994.)  (Revised by Mario Carneiro, 7-Oct-2016.)  (Proof shortened
       by Wolf Lammen, 24-Aug-2019.) $)
    sb8eu $p |- ( E! x ph <-> E! y [ y / x ] ph ) $=
      ( vz vw weq wal wex wsb weu nfv sb8 equsb3 sblbis albii nfsb nfbi df-eu
      wb sbequ equequ1 bibi12d cbval 3bitri exbii 3bitr4i ) ABEGZTZBHZEIABCJZCE
      GZTZCHZEIABKUKCKUJUNEUJUIBFJZFHABFJZFEGZTZFHUNUIBFUIFLMUOURFUHUQABFFBENOP
      URUMFCUPUQCABFCDQUQCLRUMFLFCGUPUKUQULAFCBUAFCEUBUCUDUEUFABESUKCESUG $.

    $( Variable substitution for "at most one."  (Contributed by Alexander van
       der Vekens, 17-Jun-2017.) $)
    sb8mo $p |- ( E* x ph <-> E* y [ y / x ] ph ) $=
      ( wex weu wi wsb wmo sb8e sb8eu imbi12i df-mo 3bitr4i ) ABEZABFZGABCHZCEZ
      QCFZGABIQCIORPSABCDJABCDKLABMQCMN $.
  $}

  ${
    cbveu.1 $e |- F/ y ph $.
    cbveu.2 $e |- F/ x ps $.
    cbveu.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 25-Nov-1994.)  (Revised by Mario Carneiro,
       7-Oct-2016.) $)
    cbveu $p |- ( E! x ph <-> E! y ps ) $=
      ( weu wsb sb8eu sbie eubii bitri ) ACHACDIZDHBDHACDEJNBDABCDFGKLM $.
  $}

  ${
    cbvmo.1 $e |- F/ y ph $.
    cbvmo.2 $e |- F/ x ps $.
    cbvmo.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 9-Mar-1995.)  (Revised by Andrew Salmon,
       8-Jun-2011.) $)
    cbvmo $p |- ( E* x ph <-> E* y ps ) $=
      ( wex weu wi wmo cbvex cbveu imbi12i df-mo 3bitr4i ) ACHZACIZJBDHZBDIZJAC
      KBDKQSRTABCDEFGLABCDEFGMNACOBDOP $.
  $}

  ${
    $d x y z $.  $d ph z $.
    mo3.1 $e |- F/ y ph $.
    $( Alternate definition of "at most one."  Definition of [BellMachover]
       p. 460, except that definition has the side condition that ` y ` not
       occur in ` ph ` in place of our hypothesis.  (Contributed by NM,
       8-Mar-1995.)  (Proof shortened by Wolf Lammen, 18-Aug-2019.) $)
    mo3 $p |- ( E* x ph <->
               A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) $=
      ( vz wmo wsb wa weq wi wal nfmo1 nfmo mo2v sp spsbim equsb3 syl6ib alrimi
      wex anim12d equtr2 syl6 exlimiv sylbi nfs1v pm3.21 imim1d alimd com12 mo2
      aleximi sb8e 3imtr4g moabs sylibr alcoms impbii ) ABFZAABCGZHZBCIZJZCKZBK
      USVDBABLUSVCCACBDMUSABEIZJZBKZETVCABENVGVCEVGVAVECEIZHVBVGAVEUTVHVFBOVGUT
      VEBCGVHAVEBCPCBEQRUABCEUBUCUDUESSVCUSCBVCBKZCKZABTZUSJUSVJUTCTAVBJZBKZCTV
      KUSVIUTVMCUTVIVMUTVCVLBABCUFUTAVAVBUTAUGUHUIUJULABCDUMABCDUKUNABUOUPUQUR
      $.
  $}

  ${
    $d x y $.
    mo.1 $e |- F/ y ph $.
    $( Equivalent definitions of "there exists at most one."  (Contributed by
       NM, 7-Aug-1994.)  (Revised by Mario Carneiro, 7-Oct-2016.)  (Proof
       shortened by Wolf Lammen, 2-Dec-2018.) $)
    mo $p |- ( E. y A. x ( ph -> x = y ) <->
               A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) $=
      ( weq wi wal wex wmo wsb wa mo2 mo3 bitr3i ) ABCEZFBGCHABIAABCJKOFCGBGABC
      DLABCDMN $.
  $}

  ${
    $d x y $.
    eu2.1 $e |- F/ y ph $.
    $( An alternate way of defining existential uniqueness.  Definition 6.10 of
       [TakeutiZaring] p. 26.  (Contributed by NM, 8-Jul-1994.)  (Proof
       shortened by Wolf Lammen, 2-Dec-2018.) $)
    eu2 $p |- ( E! x ph <->
    ( E. x ph /\ A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) ) $=
      ( weu wex wmo wa wsb weq wi wal eu5 mo3 anbi2i bitri ) ABEABFZABGZHQAABCI
      HBCJKCLBLZHABMRSQABCDNOP $.
  $}

  ${
    $d x y $.
    eu1.1 $e |- F/ y ph $.
    $( An alternate way to express uniqueness used by some authors.  Exercise
       2(b) of [Margaris] p. 110.  (Contributed by NM, 20-Aug-1993.)  (Revised
       by Mario Carneiro, 7-Oct-2016.)  (Proof shortened by Wolf Lammen,
       29-Oct-2018.) $)
    eu1 $p |- ( E! x ph <->
                E. x ( ph /\ A. y ( [ y / x ] ph -> x = y ) ) ) $=
      ( wsb weu weq wb wal wi wa nfs1v sb8eu sb6rf equcom imbi2i albii anbi12ci
      wex euf albiim bitr4i exbii 3bitr4i ) ABCEZCFUECBGZHCIZBSABFAUEBCGZJZCIZK
      ZBSUECBABCLTABCDMUKUGBUKUEUFJZCIZUFUEJCIZKUGAUNUJUMABCDNUIULCUHUFUEBCOPQR
      UEUFCUAUBUCUD $.
  $}

  ${
    $d x y $.  $d ph y $.
    $( Alternate proof of ~ euex .  Shorter but uses more axioms.  (Contributed
       by NM, 15-Sep-1993.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    euexALT $p |- ( E! x ph -> E. x ph ) $=
      ( vy weu wsb weq wi wal wa wex nfv eu1 exsimpl sylbi ) ABDAABCEBCFGCHZIBJ
      ABJABCACKLAOBMN $.
  $}

  ${
    euor.1 $e |- F/ x ph $.
    $( Introduce a disjunct into a uniqueness quantifier.  (Contributed by NM,
       21-Oct-2005.) $)
    euor $p |- ( ( -. ph /\ E! x ps ) -> E! x ( ph \/ ps ) ) $=
      ( wn weu wo nfn biorf eubid biimpa ) AEZBCFABGZCFLBMCACDHABIJK $.
  $}

  ${
    $d x ph $.
    $( Introduce a disjunct into a uniqueness quantifier.  (Contributed by NM,
       23-Mar-1995.) $)
    euorv $p |- ( ( -. ph /\ E! x ps ) -> E! x ( ph \/ ps ) ) $=
      ( nfv euor ) ABCACDE $.
  $}

  $( Introduce or eliminate a disjunct in a uniqueness quantifier.
     (Contributed by NM, 21-Oct-2005.)  (Proof shortened by Andrew Salmon,
     9-Jul-2011.)  (Proof shortened by Wolf Lammen, 27-Dec-2018.) $)
  euor2 $p |- ( -. E. x ph -> ( E! x ( ph \/ ps ) <-> E! x ps ) ) $=
    ( wex wn wo nfe1 nfn wb 19.8a con3i biorf bicomd syl eubid ) ACDZEZABFZBCPC
    ACGHQAEZRBIAPACJKSBRABLMNO $.

  ${
    $d w x z $.  $d w y z $.  $d w ph $.
    $( Substitution into "at most one".  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    sbmo $p |- ( [ y / x ] E* z ph <-> E* z [ y / x ] ph ) $=
      ( vw weq wi wal wex wsb wmo sbex nfv sblim sbalv exbii bitri mo2v 3bitr4i
      sbbii ) ADEFZGZDHZEIZBCJZABCJZUAGZDHZEIZADKZBCJUFDKUEUCBCJZEIUIUCEBCLUKUH
      EUBUGBCDAUABCUABMNOPQUJUDBCADERTUFDERS $.
  $}

  ${
    $d x y $.  $d y ph $.
    mo4f.1 $e |- F/ x ps $.
    mo4f.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( "At most one" expressed using implicit substitution.  (Contributed by
       NM, 10-Apr-2004.) $)
    mo4f $p |- ( E* x ph <-> A. x A. y ( ( ph /\ ps ) -> x = y ) ) $=
      ( wmo wsb wa weq wi wal nfv mo3 sbie anbi2i imbi1i 2albii bitri ) ACGAACD
      HZIZCDJZKZDLCLABIZUBKZDLCLACDADMNUCUECDUAUDUBTBAABCDEFOPQRS $.
  $}

  ${
    $d x y $.  $d y ph $.  $d x ps $.
    mo4.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( "At most one" expressed using implicit substitution.  (Contributed by
       NM, 26-Jul-1995.) $)
    mo4 $p |- ( E* x ph <-> A. x A. y ( ( ph /\ ps ) -> x = y ) ) $=
      ( nfv mo4f ) ABCDBCFEG $.
  $}

  ${
    $d x y $.  $d y ph $.  $d x ps $.
    eu4.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Uniqueness using implicit substitution.  (Contributed by NM,
       26-Jul-1995.) $)
    eu4 $p |- ( E! x ph <-> ( E. x ph /\
             A. x A. y ( ( ph /\ ps ) -> x = y ) ) ) $=
      ( weu wex wmo wa weq wi wal eu5 mo4 anbi2i bitri ) ACFACGZACHZIQABICDJKDL
      CLZIACMRSQABCDENOP $.
  $}

  ${
    $d x y $.  $d y ph $.  $d y ps $.
    $( "At most one" reverses implication.  (Contributed by NM,
       22-Apr-1995.) $)
    moim $p |- ( A. x ( ph -> ps ) -> ( E* x ps -> E* x ph ) ) $=
      ( vy wi wal weq wex wmo imim1 al2imi eximdv mo2v 3imtr4g ) ABEZCFZBCDGZEZ
      CFZDHAQEZCFZDHBCIACIPSUADORTCABQJKLBCDMACDMN $.
  $}

  ${
    moimi.1 $e |- ( ph -> ps ) $.
    $( "At most one" reverses implication.  (Contributed by NM,
       15-Feb-2006.) $)
    moimi $p |- ( E* x ps -> E* x ph ) $=
      ( wi wmo moim mpg ) ABEBCFACFECABCGDH $.
  $}

  $( If an implication holds for at most one value, then its consequent holds
     for at most one value.  See also ~ ala1 and ~ exa1 .  (Contributed by NM,
     28-Jul-1995.)  (Proof shortened by Wolf Lammen, 22-Dec-2018.)  (Revised by
     BJ, 29-Mar-2021.) $)
  moa1 $p |- ( E* x ( ph -> ps ) -> E* x ps ) $=
    ( wi ax-1 moimi ) BABDCBAEF $.

  $( Uniqueness implies "at most one" through reverse implication.
     (Contributed by NM, 22-Apr-1995.) $)
  euimmo $p |- ( A. x ( ph -> ps ) -> ( E! x ps -> E* x ph ) ) $=
    ( weu wmo wi wal eumo moim syl5 ) BCDBCEABFCGACEBCHABCIJ $.

  $( Add existential uniqueness quantifiers to an implication.  Note the
     reversed implication in the antecedent.  (Contributed by NM, 19-Oct-2005.)
     (Proof shortened by Andrew Salmon, 14-Jun-2011.) $)
  euim $p |- ( ( E. x ph /\ A. x ( ph -> ps ) ) -> ( E! x ps -> E! x ph ) ) $=
    ( wex wi wal wa weu wmo ax-1 euimmo anim12ii eu5 syl6ibr ) ACDZABECFZGBCHZO
    ACIZGACHOQOPROQJABCKLACMN $.

  $( "At most one" is still the case when a conjunct is added.  (Contributed by
     NM, 22-Apr-1995.) $)
  moan $p |- ( E* x ph -> E* x ( ps /\ ph ) ) $=
    ( wa simpr moimi ) BADACBAEF $.

  ${
    moani.1 $e |- E* x ph $.
    $( "At most one" is still true when a conjunct is added.  (Contributed by
       NM, 9-Mar-1995.) $)
    moani $p |- E* x ( ps /\ ph ) $=
      ( wmo wa moan ax-mp ) ACEBAFCEDABCGH $.
  $}

  $( "At most one" is still the case when a disjunct is removed.  (Contributed
     by NM, 5-Apr-2004.) $)
  moor $p |- ( E* x ( ph \/ ps ) -> E* x ph ) $=
    ( wo orc moimi ) AABDCABEF $.

  $( "At most one" imports disjunction to conjunction.  (Contributed by NM,
     5-Apr-2004.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
  mooran1 $p |- ( ( E* x ph \/ E* x ps ) -> E* x ( ph /\ ps ) ) $=
    ( wmo wa simpl moimi moan jaoi ) ACDABEZCDBCDJACABFGBACHI $.

  $( "At most one" exports disjunction to conjunction.  (Contributed by NM,
     5-Apr-2004.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
  mooran2 $p |- ( E* x ( ph \/ ps ) -> ( E* x ph /\ E* x ps ) ) $=
    ( wo wmo moor olc moimi jca ) ABDZCEACEBCEABCFBJCBAGHI $.

  ${
    moanim.1 $e |- F/ x ph $.
    $( Introduction of a conjunct into "at most one" quantifier.  (Contributed
       by NM, 3-Dec-2001.)  (Proof shortened by Wolf Lammen, 24-Dec-2018.) $)
    moanim $p |- ( E* x ( ph /\ ps ) <-> ( ph -> E* x ps ) ) $=
      ( wa wmo wi ibar mobid biimprcd wex simpl exlimi exmo nsyl4 con1i moan ja
      ori impbii ) ABEZCFZABCFZGAUCUBABUACDABHIJAUCUBUBAUACKZAUBUAACDABLMUDUBUA
      CNSOPBACQRT $.

    $( Introduction of a conjunct into uniqueness quantifier.  (Contributed by
       NM, 19-Feb-2005.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.)
       (Proof shortened by Wolf Lammen, 24-Dec-2018.) $)
    euan $p |- ( E! x ( ph /\ ps ) <-> ( ph /\ E! x ps ) ) $=
      ( wa weu wex euex simpl exlimi syl ibar eubid biimprcd jcai biimpa impbii
      ) ABEZCFZABCFZESATSRCGARCHRACDABIJKATSABRCDABLMZNOATSUAPQ $.
  $}

  ${
    $d x ph $.
    $( Introduction of a conjunct into "at most one" quantifier.  (Contributed
       by NM, 23-Mar-1995.) $)
    moanimv $p |- ( E* x ( ph /\ ps ) <-> ( ph -> E* x ps ) ) $=
      ( nfv moanim ) ABCACDE $.
  $}

  $( Nested "at most one" quantifiers.  (Contributed by NM, 25-Jan-2006.) $)
  moanmo $p |- E* x ( ph /\ E* x ph ) $=
    ( wmo wa wi id nfmo1 moanim mpbir ancom mobii ) AABCZDZBCLADZBCZOLLELFLABAB
    GHIMNBALJKI $.

  $( Nested "at most one" and uniqueness quantifiers.  (Contributed by NM,
     25-Jan-2006.)  (Proof shortened by Wolf Lammen, 27-Dec-2018.) $)
  moaneu $p |- E* x ( ph /\ E! x ph ) $=
    ( wmo wa weu moanmo eumo anim2i moimi ax-mp ) AABCZDZBCAABEZDZBCABFNLBMKAAB
    GHIJ $.

  ${
    $d x ph $.
    $( Introduction of a conjunct into uniqueness quantifier.  (Contributed by
       NM, 23-Mar-1995.) $)
    euanv $p |- ( E! x ( ph /\ ps ) <-> ( ph /\ E! x ps ) ) $=
      ( nfv euan ) ABCACDE $.
  $}

  ${
    $d x y $.  $d y ph $.  $d y ps $.
    $( "At most one" picks a variable value, eliminating an existential
       quantifier.  (Contributed by NM, 27-Jan-1997.)  (Proof shortened by Wolf
       Lammen, 17-Sep-2019.) $)
    mopick $p |- ( ( E* x ph /\ E. x ( ph /\ ps ) ) -> ( ph -> ps ) ) $=
      ( vy wmo wa wex wi weq wal mo2v sp pm3.45 aleximi sb56 sylbi syl6 exlimiv
      syl5d imp ) ACEZABFZCGZABHZUAACDIZHZCJZDGUCUDHZACDKUGUHDUGAUEUCBUFCLUGUCU
      EBFZCGZUEBHZUFUBUICAUEBMNUJUKCJUKBCDOUKCLPQSRPT $.
  $}

  $( Existential uniqueness "picks" a variable value for which another wff is
     true.  If there is only one thing ` x ` such that ` ph ` is true, and
     there is also an ` x ` (actually the same one) such that ` ph ` and ` ps `
     are both true, then ` ph ` implies ` ps ` regardless of ` x ` .  This
     theorem can be useful for eliminating existential quantifiers in a
     hypothesis.  Compare Theorem *14.26 in [WhiteheadRussell] p. 192.
     (Contributed by NM, 10-Jul-1994.) $)
  eupick $p |- ( ( E! x ph /\ E. x ( ph /\ ps ) ) -> ( ph -> ps ) ) $=
    ( weu wmo wa wex wi eumo mopick sylan ) ACDACEABFCGABHACIABCJK $.

  $( Version of ~ eupick with closed formulas.  (Contributed by NM,
     6-Sep-2008.) $)
  eupicka $p |- ( ( E! x ph /\ E. x ( ph /\ ps ) ) -> A. x ( ph -> ps ) ) $=
    ( weu wa wex wi nfeu1 nfe1 nfan eupick alrimi ) ACDZABEZCFZEABGCMOCACHNCIJA
    BCKL $.

  $( Existential uniqueness "pick" showing wff equivalence.  (Contributed by
     NM, 25-Nov-1994.)  (Proof shortened by Wolf Lammen, 27-Dec-2018.) $)
  eupickb $p |- ( ( E! x ph /\ E! x ps /\ E. x ( ph /\ ps ) ) ->
               ( ph <-> ps ) ) $=
    ( weu wa wex w3a wi eupick 3adant2 exancom sylan2b 3adant1 impbid ) ACDZBCD
    ZABECFZGABOQABHPABCIJPQBAHZOQPBAECFRABCKBACILMN $.

  $( Theorem *14.26 in [WhiteheadRussell] p. 192.  (Contributed by Andrew
     Salmon, 11-Jul-2011.)  (Proof shortened by Wolf Lammen, 27-Dec-2018.) $)
  eupickbi $p |- ( E! x ph -> ( E. x ( ph /\ ps ) <-> A. x ( ph -> ps ) ) ) $=
    ( weu wa wex wi wal eupicka ex euex exintr syl5com impbid ) ACDZABECFZABGCH
    ZOPQABCIJOACFQPACKABCLMN $.

  $( "At most one" can show the existence of a common value.  In this case we
     can infer existence of conjunction from a conjunction of existence, and it
     is one way to achieve the converse of ~ 19.40 .  (Contributed by NM,
     5-Apr-2004.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
  mopick2 $p |- ( ( E* x ph /\ E. x ( ph /\ ps ) /\ E. x ( ph /\ ch ) ) ->
                E. x ( ph /\ ps /\ ch ) ) $=
    ( wmo wa wex w3a nfmo1 nfe1 mopick ancld anim1d df-3an syl6ibr eximd 3impia
    nfan ) ADEZABFZDGZACFZDGABCHZDGSUAFZUBUCDSUADADITDJRUDUBTCFUCUDATCUDABABDKL
    MABCNOPQ $.

  ${
    moexex.1 $e |- F/ y ph $.
    $( "At most one" double quantification.  (Contributed by NM, 3-Dec-2001.)
       (Proof shortened by Wolf Lammen, 28-Dec-2018.) $)
    moexex $p |- ( ( E* x ph /\ A. x E* y ps ) -> E* y E. x ( ph /\ ps ) ) $=
      ( wmo wal wa wex wi nfmo1 nfa1 nfe1 nfmo nfim mopick ex com23 alrimd moim
      spsd syl6 exlimd wn nfex exsimpl exlimi exmo ori nsyl4 con1i a1d pm2.61d1
      imp ) ACFZBDFZCGZABHZCIZDFZUOACIZUQUTJZUOAVBCACKUQUTCUPCLUSCDURCMNOUOAUSB
      JZDGZVBUOAVCDADCENEUOUSABUOUSABJABCPQRSVDUPUTCUSBDTUAUBUCVAUDUTUQUTVAUSDI
      ZVAUTUSVADADCEUEABCUFUGVEUTUSDUHUIUJUKULUMUN $.
  $}

  ${
    $d y ph $.
    $( "At most one" double quantification.  (Contributed by NM,
       26-Jan-1997.) $)
    moexexv $p |- ( ( E* x ph /\ A. x E* y ps ) -> E* y E. x ( ph /\ ps ) ) $=
      ( nfv moexex ) ABCDADEF $.
  $}

  $( Double quantification with "at most one."  (Contributed by NM,
     3-Dec-2001.) $)
  2moex $p |- ( E* x E. y ph -> A. y E* x ph ) $=
    ( wex wmo nfe1 nfmo 19.8a moimi alrimi ) ACDZBEABECKCBACFGAKBACHIJ $.

  $( Double quantification with existential uniqueness.  (Contributed by NM,
     3-Dec-2001.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
  2euex $p |- ( E! x E. y ph -> E. y E! x ph ) $=
    ( wex weu wmo wa eu5 excom nfe1 19.8a moimi df-mo sylib eximd syl5bi impcom
    nfmo wi sylbi ) ACDZBEUABDZUABFZGABEZCDZUABHUCUBUEUBABDZCDUCUEABCIUCUFUDCUA
    CBACJRUCABFUFUDSAUABACKLABMNOPQT $.

  $( Double quantification with existential uniqueness and "at most one."
     (Contributed by NM, 3-Dec-2001.) $)
  2eumo $p |- ( E! x E* y ph -> E* x E! y ph ) $=
    ( weu wmo wi euimmo eumo mpg ) ACDZACEZFKBDJBEFBJKBGACHI $.

  $( Double existential uniqueness.  (Contributed by NM, 3-Dec-2001.) $)
  2eu2ex $p |- ( E! x E! y ph -> E. x E. y ph ) $=
    ( weu wex euex eximi syl ) ACDZBDIBEACEZBEIBFIJBACFGH $.

  $( A condition allowing swap of "at most one" and existential quantifiers.
     (Contributed by NM, 10-Apr-2004.) $)
  2moswap $p |- ( A. x E* y ph -> ( E* x E. y ph -> E* y E. x ph ) ) $=
    ( wmo wal wex wa nfe1 moexex expcom 19.8a pm4.71ri exbii mobii syl6ibr ) AC
    DBEZACFZBDZQAGZBFZCDZABFZCDRPUAQABCACHIJUBTCASBAQACKLMNO $.

  $( A condition allowing swap of uniqueness and existential quantifiers.
     (Contributed by NM, 10-Apr-2004.) $)
  2euswap $p |- ( A. x E* y ph -> ( E! x E. y ph -> E! y E. x ph ) ) $=
    ( wmo wal wex wa weu wi excomim a1i 2moswap anim12d eu5 3imtr4g ) ACDBEZACF
    ZBFZQBDZGABFZCFZTCDZGQBHTCHPRUASUBRUAIPABCJKABCLMQBNTCNO $.

  $( Double existential uniqueness implies double uniqueness quantification.
     (Contributed by NM, 3-Dec-2001.)  (Proof shortened by Mario Carneiro,
     22-Dec-2016.) $)
  2exeu $p |- ( ( E! x E. y ph /\ E! y E. x ph ) -> E! x E! y ph ) $=
    ( wex weu wa wmo eumo euex moimi syl 2euex anim12ci eu5 sylibr ) ACDZBEZABD
    CEZFACEZBDZSBGZFSBEQUARTQPBGUAPBHSPBACIJKACBLMSBNO $.

  ${
    $d x y z w $.  $d z w ph $.
    $( This theorem extends the idea of "at most one" to expressions in two set
       variables ("at most one pair ` x ` and ` y ` ".  Note: this is not
       expressed by ` E* x E* y ph ` ). ~ 2eu4 relates this extension to double
       existential uniqueness, if at least one pair exists.  (Contributed by
       Wolf Lammen, 26-Oct-2019.) $)
    2mo2 $p |- ( ( E* x E. y ph /\ E* y E. x ph ) <->
               E. z E. w A. x A. y ( ph -> ( x = z /\ y = w ) ) ) $=
      ( wex weq wi wal wmo eeanv jcab 2albii 19.26-2 19.23v albii alcom anbi12i
      wa mo2v bitri 3bitri 2exbii 3bitr4ri ) ACFZBDGZHZBIZABFZCEGZHZCIZSZEFDFUH
      DFZULEFZSAUFUJSHZCIBIZEFDFUEBJZUICJZSUHULDEKUQUMDEUQAUFHZAUJHZSZCIBIUTCIZ
      BIZVACIBIZSUMUPVBBCAUFUJLMUTVABCNVDUHVEULVCUGBAUFCOPVEVABIZCIULVABCQVFUKC
      AUJBOPUARUBUCURUNUSUOUEBDTUICETRUD $.
  $}

  ${
    $d x y z w $.  $d z w ph $.
    $( Two equivalent expressions for double "at most one."  (Contributed by
       NM, 2-Feb-2005.)  (Revised by Mario Carneiro, 17-Oct-2016.)  (Proof
       shortened by Wolf Lammen, 2-Nov-2019.) $)
    2mo $p |- ( E. z E. w A. x A. y ( ph -> ( x = z /\ y = w ) ) <->
              A. x A. y A. z A. w ( ( ph /\ [ z / x ] [ w / y ] ph ) ->
                   ( x = z /\ y = w ) ) ) $=
      ( weq wa wi wal wex wsb wmo nfmo1 nfe1 nfmo nfan 19.8a spsbe sbimi nfv wn
      2mo2 biimpi 19.21bbi syl2ani sbcom2 sylbi anim12ii alrimi alrimivv sylbir
      nfs1v nfsb pm3.21 imim1d alimd com12 aleximi 2nexaln 2sb8e xchnxbi pm2.21
      mo3 2alimi 2eximi 19.23bi pm2.61d1 impbii alrot4 bitri ) ABDFZCEFZGZHZCIZ
      BIZEJZDJZAACEKZBDKZGZVMHZCIZBIZEIZDIZWBEIDICIBIVRWFVRACJZBLZABJZCLZGZWFAB
      CDEUBWKWDDEWKWCBWHWJBWGBMWIBCABNOPWKWBCWHWJCWGCBACNOWICMPWHWAVKWJVLAWHWGW
      GBDKZVKVTACQVSWGBDACERSWHWGWLGVKHZBDWHWMDIBIWGBDWGDTVCUCUDUEAWJWIWICEKZVL
      VTABQVTABDKZCEKWNACEBDUFWOWICEABDRSUGWJWIWNGVLHZCEWJWPEICIWICEWIETVCUCUDU
      EUHUIUIUJUKWFVTEJZDJZVRWEWQVQDWDVTVPEVTWDVPVTWCVOBVSBDULVTWBVNCVSBDCACEUL
      UMVTAWAVMVTAUNUOUPUPUQURURWRUAAUAZCIBIZVRWGBJWTWRABCUSABCDEUTVAWTVREWTEJV
      RDWTVPDEWSVNBCAVMVBVDVEVFVFUGVGVHWBDEBCVIVJ $.
  $}

  ${
    $d z w ph $.  $d x y ps $.  $d x y z w $.
    2mos.1 $e |- ( ( x = z /\ y = w ) -> ( ph <-> ps ) ) $.
    $( Double "exists at most one", using implicit substitution.  (Contributed
       by NM, 10-Feb-2005.) $)
    2mos $p |- ( E. z E. w A. x A. y ( ph -> ( x = z /\ y = w ) ) <->
             A. x A. y A. z A. w ( ( ph /\ ps ) -> ( x = z /\ y = w ) ) ) $=
      ( weq wa wi wal wex wsb 2mo nfv sbiedv sbie anbi2i imbi1i 2albii bitri )
      ACEHZDFHIZJDKCKFLELAADFMZCEMZIZUCJZFKEKZDKCKABIZUCJZFKEKZDKCKACDEFNUHUKCD
      UGUJEFUFUIUCUEBAUDBCEBCOUBABDFGPQRSTTUA $.
  $}

  $( Double existential uniqueness.  This theorem shows a condition under which
     a "naive" definition matches the correct one.  (Contributed by NM,
     3-Dec-2001.)  (Proof shortened by Wolf Lammen, 11-Nov-2019.) $)
  2eu1 $p |- ( A. x E* y ph ->
        ( E! x E! y ph <-> ( E! x E. y ph /\ E! y E. x ph ) ) ) $=
    ( wmo wal weu wex wa wi 2eu2ex df-mo albii euim syl5bi pm2.43b 2euswap syld
    ex syl jcad 2exeu impbid1 ) ACDZBEZACFZBFZACGZBFZABGCFZHUDUFUHUIUDUFUHUFUGB
    GZUDUFUHIZIABCJUDUGUEIZBEZUJUKUCULBACKLUJUMUKUGUEBMRNSOZUDUFUHUIUNABCPQTABC
    UAUB $.

  $( Double existential uniqueness.  (Contributed by NM, 3-Dec-2001.) $)
  2eu2 $p |- ( E! y E. x ph -> ( E! x E! y ph <-> E! x E. y ph ) ) $=
    ( wex weu wmo wal wi eumo 2moex 2eu1 simpl syl6bi 3syl 2exeu expcom impbid
    wa ) ABDZCEZACEBEZACDBEZTSCFACFBGZUAUBHSCIACBJUCUAUBTRUBABCKUBTLMNUBTUAABCO
    PQ $.

  $( Double existential uniqueness.  (Contributed by NM, 3-Dec-2001.) $)
  2eu3 $p |- ( A. x A. y ( E* x ph \/ E* y ph ) ->
 ( ( E! x E! y ph /\ E! y E! x ph ) <-> ( E! x E. y ph /\ E! y E. x ph ) ) ) $=
    ( wmo wo wal weu wa wex wb nfmo1 19.31 albii nfal 19.32 bitri wi 2eu1 2exeu
    biimpd ancom syl6ib adantld adantrd jaoi ancoms jca impbid1 sylbi ) ABDZACD
    ZECFZBFZUJCFZUKBFZEZACGBGZABGCGZHZACIBGZABICGZHZJUMUNUKEZBFUPULVCBUJUKCACKL
    MUNUKBUJBCABKNOPUPUSVBUNUSVBQUOUNURVBUQUNURVAUTHZVBUNURVDACBRTVAUTUAUBUCUOU
    QVBURUOUQVBABCRTUDUEVBUQURABCSVAUTURACBSUFUGUHUI $.

  ${
    $d x y z w $.  $d z w ph $.
    $( This theorem provides us with a definition of double existential
       uniqueness ("exactly one ` x ` and exactly one ` y ` ").  Naively one
       might think (incorrectly) that it could be defined by ` E! x E! y ph ` .
       See ~ 2eu1 for a condition under which the naive definition holds and
       ~ 2exeu for a one-way implication.  See ~ 2eu5 and ~ 2eu8 for alternate
       definitions.  (Contributed by NM, 3-Dec-2001.)  (Proof shortened by Wolf
       Lammen, 14-Sep-2019.) $)
    2eu4 $p |- ( ( E! x E. y ph /\ E! y E. x ph ) <->
      ( E. x E. y ph /\ E. z E. w A. x A. y ( ph -> ( x = z /\ y = w ) ) ) ) $=
      ( wex weu wa wmo weq wi wal excom anbi1i bitri anbi12i anandi 2mo2 anbi2i
      eu5 3bitr2i ) ACFZBGZABFZCGZHUBBFZUBBIZHZUFUDCIZHZHUFUGUIHZHUFABDJCEJHKCL
      BLEFDFZHUCUHUEUJUBBTUEUDCFZUIHUJUDCTUMUFUIACBMNOPUFUGUIQUKULUFABCDERSUA
      $.

    $( An alternate definition of double existential uniqueness (see ~ 2eu4 ).
       A mistake sometimes made in the literature is to use ` E! x E! y ` to
       mean "exactly one ` x ` and exactly one ` y ` ."  (For example, see
       Proposition 7.53 of [TakeutiZaring] p. 53.)  It turns out that this is
       actually a weaker assertion, as can be seen by expanding out the formal
       definitions.  This theorem shows that the erroneous definition can be
       repaired by conjoining ` A. x E* y ph ` as an additional condition.  The
       correct definition apparently has never been published.  ( ` E* ` means
       "exists at most one.").  (Contributed by NM, 26-Oct-2003.) $)
    2eu5 $p |- ( ( E! x E! y ph /\ A. x E* y ph ) <->
      ( E. x E. y ph /\ E. z E. w A. x A. y ( ph -> ( x = z /\ y = w ) ) ) ) $=
      ( weu wmo wal wa wex weq 2eu1 pm5.32ri eumo adantl 2moex syl pm4.71i 2eu4
      wi 3bitr2i ) ACFBFZACGBHZIACJZBFZABJZCFZIZUCIUHUDBJABDKCEKITCHBHEJDJIUCUB
      UHABCLMUHUCUHUFCGZUCUGUIUEUFCNOACBPQRABCDESUA $.
  $}

  ${
    $d x y z w $.  $d z w ph $.
    $( Two equivalent expressions for double existential uniqueness.
       (Contributed by NM, 2-Feb-2005.)  (Revised by Mario Carneiro,
       17-Oct-2016.)  (Proof shortened by Wolf Lammen, 2-Oct-2019.) $)
    2eu6 $p |- ( ( E! x E. y ph /\ E! y E. x ph ) <->
               E. z E. w A. x A. y ( ph <-> ( x = z /\ y = w ) ) ) $=
      ( wex weu wa weq wi wal wb 2eu4 imim2i sps exlimd syli wsb 2alimi 2eximi
      nfia1 nfa1 nfv simpl ax12v com12 spsd nfs1v sbequ1 imim2d al2imi sb6 2sb6
      simpr bitr3i syl6ib sylcom ancld 2albiim syl6ibr exlimi 2eximdv imp 2exsb
      biimpr sylibr biimp jca impbii bitri ) ACFZBGABFCGHVKBFZABDIZCEIZHZJZCKZB
      KZEFDFZHZAVOLZCKZBKZEFDFZABCDEMVTWDVLVSWDVLVRWCDEVKVRWCJBVQWBBUAVKVRVRVOA
      JZCKBKZHWCVKVRWFVKVRVMVKJZBKZWFVKVQWHBVQVKWHVKVQVMWHVQAVMCVPCUBZVMCUCVPAV
      MJCVOVMAVMVNUDNOPVKBDUEQUFUGVRWHVMACERZJZBKZWFVQWGWKBVQVKWJVMVQAWJCWIACEU
      HVPAWJJCAVPVNWJVOVNAVMVNUNNACEUIQOPUJUKWLWJBDRWFWJBDULABCDEUMUOUPUQURAVOB
      CUSUTVAVBVCWDVLVSWDWFEFDFVLWCWFDEWAWEBCAVOVESTABCDEVDVFWCVRDEWAVPBCAVOVGS
      TVHVIVJ $.
  $}

  $( Two equivalent expressions for double existential uniqueness.
     (Contributed by NM, 19-Feb-2005.) $)
  2eu7 $p |- ( ( E! x E. y ph /\ E! y E. x ph ) <->
             E! x E! y ( E. x ph /\ E. y ph ) ) $=
    ( wex weu wa nfe1 nfeu euan ancom eubii 3bitri 3bitr4ri ) ABDZCEZACDZFZBEOP
    BEZFNPFZCEZBEROFOPBNBCABGHITQBTPNFZCEPOFQSUACNPJKPNCACGIPOJLKROJM $.

  $( Two equivalent expressions for double existential uniqueness.  Curiously,
     we can put ` E! ` on either of the internal conjuncts but not both.  We
     can also commute ` E! x E! y ` using ~ 2eu7 .  (Contributed by NM,
     20-Feb-2005.) $)
  2eu8 $p |- ( E! x E! y ( E. x ph /\ E. y ph ) <->
                E! x E! y ( E! x ph /\ E. y ph ) ) $=
    ( wex wa 2eu2 pm5.32i nfeu1 nfeu euan ancom eubii nfe1 3bitri 3bitr4ri 2eu7
    weu 3bitr3ri ) ACDZBQZABQZCQZEZTABDZCQZEUASEZCQZBQZUDSECQBQTUBUEACBFGUBSEZB
    QUBTEUHUCUBSBUABCABHIJUGUIBUGSUAEZCQSUBEUIUFUJCUASKLSUACACMJSUBKNLTUBKOABCP
    R $.

  ${
    $d x y $.
    $( Two ways to express "only one thing exists."  The left-hand side
       requires only one variable to express this.  Both sides are false in set
       theory; see theorem ~ dtru .  (Contributed by NM, 5-Apr-2004.) $)
    exists1 $p |- ( E! x x = x <-> A. x x = y ) $=
      ( weq weu wb wal wex df-eu equid tbt bicom bitri albii exbii nfae 3bitr2i
      19.9 ) AACZADRABCZEZAFZBGSAFZBGUBRABHUBUABSTASSRETRSAIJSRKLMNUBBABBOQP $.

    $( A condition implying that at least two things exist.  (Contributed by
       NM, 10-Apr-2004.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    exists2 $p |- ( ( E. x ph /\ E. x -. ph ) -> -. E! x x = x ) $=
      ( vy wex wn weq weu nfeu1 nfa1 wi exists1 axc16 sylbi exlimd com12 syl6ib
      wal alex con2d imp ) ABDZAEBDZBBFZBGZEUAUDUBUAUDABQZUBEUDUAUEUDAUEBUCBHAB
      IUDBCFBQAUEJBCKABCLMNOABRPST $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Other axiomatizations related to classical predicate calculus
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Aristotelian logic: Assertic syllogisms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Model the Aristotelian assertic syllogisms using modern notation.  This
  section shows that the Aristotelian assertic syllogisms can be proven with
  our axioms of logic, and also provides generally useful theorems.

  In antiquity Aristotelian logic and Stoic logic (see ~ mptnan ) were the
  leading logical systems.  Aristotelian logic became the leading system in
  medieval Europe.  This section models this system (including later
  refinements).  Aristotle defined syllogisms very generally ("a discourse in
  which certain (specific) things having been supposed, something different
  from the things supposed results of necessity because these things are so")
  Aristotle, _Prior Analytics_ 24b18-20.  However, in _Prior Analytics_ he
  limits himself to categorical syllogisms that consist of three categorical
  propositions with specific structures.  The syllogisms are the valid subset
  of the possible combinations of these structures.  The medieval schools used
  vowels to identify the types of terms (a=all, e=none, i=some, and o=some are
  not), and named the different syllogisms with Latin words that had the vowels
  in the intended order.

  "There is a surprising amount of scholarly debate about how best to formalize
  Aristotle's syllogisms..." according to _Aristotle's Modal Proofs: Prior
  Analytics A8-22 in Predicate Logic_, Adriane Rini, Springer, 2011,
  ISBN 978-94-007-0049-9, page 28.  For example, Lukasiewicz believes it is
  important to note that "Aristotle does not introduce singular terms or
  premisses into his system".  Lukasiewicz also believes that Aristotelian
  syllogisms are predicates (having a true/false value), not inference rules:
  "The characteristic sign of an inference is the word 'therefore'... no
  syllogism is formulated by Aristotle primarily as an inference, but they are
  all implications."  Jan Lukasiewicz, _Aristotle's Syllogistic from the
  Standpoint of Modern Formal Logic_, Second edition, Oxford, 1957, page 1-2.
  Lukasiewicz devised a specialized prefix notation for representing
  Aristotelian syllogisms instead of using standard predicate logic notation.

  We instead translate each Aristotelian syllogism into an inference rule, and
  each rule is defined using standard predicate logic notation and predicates.
  The predicates are represented by wff variables that may depend on the
  quantified variable ` x ` .  Our translation is essentially identical to the
  one used in Rini page 18, Table 2 "Non-Modal Syllogisms in Lower Predicate
  Calculus (LPC)", which uses standard predicate logic with predicates.  Rini
  states, "the crucial point is that we capture the meaning Aristotle intends,
  and the method by which we represent that meaning is less important."  There
  are two differences: we make the existence criteria explicit, and we use
  ` ph ` , ` ps ` , and ` ch ` in the order they appear (a common Metamath
  convention).  Patzig also uses standard predicate logic notation and
  predicates (though he interprets them as conditional propositions, not as
  inference rules); see Gunther Patzig, _Aristotle's Theory of the Syllogism_
  second edition, 1963, English translation by Jonathan Barnes, 1968, page 38.
  Terms such as "all" and "some" are translated into predicate logic using the
  approach devised by Frege and Russell.  "Frege (and Russell) devised an
  ingenious procedure for regimenting binary quantifiers like "every" and
  "some" in terms of unary quantifiers like "everything" and "something": they
  formalized sentences of the form "Some A is B" and "Every A is B" as
  exists x (Ax and Bx) and all x (Ax implies Bx), respectively."
  "Quantifiers and Quantification", _Stanford Encyclopedia of Philosophy_,
  ~ http://plato.stanford.edu/entries/quantification/ .
  See _Principia Mathematica_ page 22 and *10 for more information
  (especially *10.3 and *10.26).

  Expressions of the form "no ` ph ` is ` ps ` " are consistently translated as
  ` A. x ( ph -> -. ps ) ` .  These can also be expressed as
  ` -. E. x ( ph /\ ps ) ` , per ~ alinexa .
  We translate "all ` ph ` is ` ps ` " to ` A. x ( ph -> ps ) ` ,
  "some ` ph ` is ` ps ` " to ` E. x ( ph /\ ps ) ` , and
  "some ` ph ` is not ` ps ` " to ` E. x ( ph /\ -. ps ) ` .
  It is traditional to use the singular form "is", not the plural form "are",
  in the generic expressions.  By convention the major premise is listed first.

  In traditional Aristotelian syllogisms the predicates have a restricted form
  ("x is a ..."); those predicates could be modeled in modern notation by more
  specific constructs such as ` x = A ` , ` x e. A ` , or ` x C_ A ` .  Here we
  use wff variables instead of specialized restricted forms.  This
  generalization makes the syllogisms more useful in more circumstances.  In
  addition, these expressions make it clearer that the syllogisms of
  Aristotelian logic are the forerunners of predicate calculus.  If we used
  restricted forms like ` x e. A ` instead, we would not only unnecessarily
  limit their use, but we would also need to use set and class axioms, making
  their relationship to predicate calculus less clear.  Using such specific
  constructs would also be anti-historical; Aristotle and others who directly
  followed his work focused on relating wholes to their parts, an approach now
  called part-whole theory.  The work of Cantor and Peano (over 2,000 years
  later) led to a sharper distinction between inclusion ( ` C_ ` ) and
  membership ( ` e. ` ); this distinction was not directly made in Aristotle's
  work.

  There are some widespread misconceptions about the existential assumptions
  made by Aristotle (aka "existential import").  Aristotle was not trying to
  develop something exactly corresponding to modern logic.  Aristotle devised
  "a companion-logic for science.  He relegates fictions like fairy godmothers
  and mermaids and unicorns to the realms of poetry and literature.  In his
  mind, they exist outside the ambit of science.  This is why he leaves no room
  for such non-existent entities in his logic.  This is a thoughtful choice,
  not an inadvertent omission.  Technically, Aristotelian science is a search
  for definitions, where a definition is "a phrase signifying a thing's
  essence."  (Topics, I.5.102a37, Pickard-Cambridge.)...  Because non-existent
  entities cannot be anything, they do not, in Aristotle's mind, possess an
  essence...  This is why he leaves no place for fictional entities like
  goat-stags (or unicorns)."  Source: Louis F. Groarke, "Aristotle: Logic",
  section 7. (Existential Assumptions),
  _Internet Encyclopedia of Philosophy_ (A Peer-Reviewed Academic Resource),
  ~ http://www.iep.utm.edu/aris-log/ .
  Thus, some syllogisms have "extra" existence hypotheses that do not directly
  appear in Aristotle's original materials (since they were always assumed);
  they are added where they are needed.  This affects ~ barbari , ~ celaront ,
  ~ cesaro , ~ camestros , ~ felapton , ~ darapti , ~ calemos , ~ fesapo , and
  ~ bamalip .

  These are only the _assertic_ syllogisms.  Aristotle also defined modal
  syllogisms that deal with modal qualifiers such as "necessarily" and
  "possibly".  Historically, Aristotelian modal syllogisms were not as widely
  used.  For more about modal syllogisms in a modern context, see Rini as well
  as _Aristotle's Modal Syllogistic_ by Marko Malink, Harvard University Press,
  November 2013.  We do not treat them further here.

  Aristotelian logic is essentially the forerunner of predicate calculus (as
  well as set theory since it discusses membership in groups), while Stoic
  logic is essentially the forerunner of propositional calculus.

$)

  $( Figure 1.  Aristotelian syllogisms are grouped by "figures", which does
     not matter for our purposes but is a reasonable way to order them. $)

  ${
    $( Major premise for the Aristotelian syllogism "Barbara", e.g., "All men
       are mortal".  By convention, the major premise is first. $)
    barbara.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Barbara, e.g., "Socrates is a man". $)
    barbara.min $e |- A. x ( ch -> ph ) $.
    $( "Barbara", one of the fundamental syllogisms of Aristotelian logic.  All
       ` ph ` is ` ps ` , and all ` ch ` is ` ph ` , therefore all ` ch ` is
       ` ps ` .  (In Aristotelian notation, AAA-1:  MaP and SaM therefore SaP.)
       For example, given "All men are mortal" and "Socrates is a man", we can
       prove "Socrates is mortal".  If H is the set of men, M is the set of
       mortal beings, and S is Socrates, these word phrases can be represented
       as ` A. x ( x e. H -> x e. M ) ` (all men are mortal) and
       ` A. x ( x = S -> x e. H ) ` (Socrates is a man) therefore
       ` A. x ( x = S -> x e. M ) ` (Socrates is mortal).  Russell and
       Whitehead note that the "syllogism in Barbara is derived..." from
       ~ syl .  (quote after Theorem *2.06 of [WhiteheadRussell] p. 101).  Most
       of the proof is in ~ alsyl .  There are a legion of sources for Barbara,
       including ~ http://www.friesian.com/aristotl.htm ,
       ~ http://plato.stanford.edu/entries/aristotle-logic/ , and
       ~ https://en.wikipedia.org/wiki/Syllogism .  (Contributed by David A.
       Wheeler, 24-Aug-2016.) $)
    barbara $p |- A. x ( ch -> ps ) $=
      ( wi wal alsyl mp2an ) CAGDHABGDHCBGDHFECABDIJ $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Celarent", e.g.,
       "No reptiles have fur". $)
    celarent.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Celarent, e.g., "All snakes are reptiles". $)
    celarent.min $e |- A. x ( ch -> ph ) $.
    $( "Celarent", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , and all ` ch ` is ` ph ` , therefore no ` ch ` is ` ps ` .  (In
       Aristotelian notation, EAE-1:  MeP and SaM therefore SeP.) For example,
       given the "No reptiles have fur" and "All snakes are reptiles",
       therefore "No snakes have fur".  Example from
       ~ https://en.wikipedia.org/wiki/Syllogism .  (Contributed by David A.
       Wheeler, 24-Aug-2016.)  (Revised by David A. Wheeler, 2-Sep-2016.) $)
    celarent $p |- A. x ( ch -> -. ps ) $=
      ( wn barbara ) ABGCDEFH $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Darii", e.g.,
       "All rabbits have fur". $)
    darii.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Darii, e.g., "Some pets are rabbits." $)
    darii.min $e |- E. x ( ch /\ ph ) $.
    $( "Darii", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , and some ` ch ` is ` ph ` , therefore some ` ch ` is ` ps ` .
       (In Aristotelian notation, AII-1:  MaP and SiM therefore SiP.) For
       example, given "All rabbits have fur" and "Some pets are rabbits",
       therefore "Some pets have fur".  Example from
       ~ https://en.wikipedia.org/wiki/Syllogism .  (Contributed by David A.
       Wheeler, 24-Aug-2016.) $)
    darii $p |- E. x ( ch /\ ps ) $=
      ( wa wi spi anim2i eximii ) CAGCBGDFABCABHDEIJK $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Ferio" ("Ferioque"),
       e.g., "No homework is fun". $)
    ferio.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Ferio, e.g., "Some reading is homework." $)
    ferio.min $e |- E. x ( ch /\ ph ) $.
    $( "Ferio" ("Ferioque"), one of the syllogisms of Aristotelian logic.  No
       ` ph ` is ` ps ` , and some ` ch ` is ` ph ` , therefore some ` ch ` is
       not ` ps ` .  (In Aristotelian notation, EIO-1:  MeP and SiM therefore
       SoP.) For example, given "No homework is fun" and "Some reading is
       homework", therefore "Some reading is not fun".  This is essentially a
       logical axiom in Aristotelian logic.  Example from
       ~ https://en.wikipedia.org/wiki/Syllogism .  (Contributed by David A.
       Wheeler, 24-Aug-2016.)  (Revised by David A. Wheeler, 2-Sep-2016.) $)
    ferio $p |- E. x ( ch /\ -. ps ) $=
      ( wn darii ) ABGCDEFH $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Barbari", e.g.,
       e.g., "All men are mortal". $)
    barbari.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Barbari, e.g., "All Greeks are men." $)
    barbari.min $e |- A. x ( ch -> ph ) $.
    $( Existence premise for Barbari, e.g., "Greeks exist." $)
    barbari.e $e |- E. x ch $.
    $( "Barbari", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , all ` ch ` is ` ph ` , and some ` ch ` exist, therefore some
       ` ch ` is ` ps ` .  (In Aristotelian notation, AAI-1:  MaP and SaM
       therefore SiP.) For example, given "All men are mortal", "All Greeks are
       men", and "Greeks exist", therefore "Some Greeks are mortal".  Note the
       existence hypothesis (to prove the "some" in the conclusion).  Example
       from ~ https://en.wikipedia.org/wiki/Syllogism .  (Contributed by David
       A. Wheeler, 27-Aug-2016.)  (Revised by David A. Wheeler,
       30-Aug-2016.) $)
    barbari $p |- E. x ( ch /\ ps ) $=
      ( wa wi barbara spi ancli eximii ) CCBHDGCBCBIDABCDEFJKLM $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Celaront", e.g.,
       e.g., "No reptiles have fur". $)
    celaront.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Celaront, e.g., "All Snakes are reptiles." $)
    celaront.min $e |- A. x ( ch -> ph ) $.
    $( Existence premise for Celaront, e.g., "Snakes exist." $)
    celaront.e $e |- E. x ch $.
    $( "Celaront", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , all ` ch ` is ` ph ` , and some ` ch ` exist, therefore some
       ` ch ` is not ` ps ` .  (In Aristotelian notation, EAO-1:  MeP and SaM
       therefore SoP.) For example, given "No reptiles have fur", "All snakes
       are reptiles.", and "Snakes exist.", prove "Some snakes have no fur".
       Note the existence hypothesis.  Example from
       ~ https://en.wikipedia.org/wiki/Syllogism .  (Contributed by David A.
       Wheeler, 27-Aug-2016.)  (Revised by David A. Wheeler, 2-Sep-2016.) $)
    celaront $p |- E. x ( ch /\ -. ps ) $=
      ( wn barbari ) ABHCDEFGI $.
  $}

  $( Figure 2 $)

  ${
    $( Major premise for the Aristotelian syllogism "Cesare" $)
    cesare.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Cesare $)
    cesare.min $e |- A. x ( ch -> ps ) $.
    $( "Cesare", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , and all ` ch ` is ` ps ` , therefore no ` ch ` is ` ph ` .  (In
       Aristotelian notation, EAE-2:  PeM and SaM therefore SeP.) Related to
       ~ celarent .  (Contributed by David A. Wheeler, 27-Aug-2016.)  (Revised
       by David A. Wheeler, 13-Nov-2016.) $)
    cesare $p |- A. x ( ch -> -. ph ) $=
      ( wn wi spi nsyl3 ax-gen ) CAGHDABCABGHDEICBHDFIJK $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Camestres" $)
    camestres.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Camestres $)
    camestres.min $e |- A. x ( ch -> -. ps ) $.
    $( "Camestres", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , and no ` ch ` is ` ps ` , therefore no ` ch ` is ` ph ` .  (In
       Aristotelian notation, AEE-2:  PaM and SeM therefore SeP.) (Contributed
       by David A. Wheeler, 28-Aug-2016.)  (Revised by David A. Wheeler,
       2-Sep-2016.) $)
    camestres $p |- A. x ( ch -> -. ph ) $=
      ( wn wi spi nsyl ax-gen ) CAGHDCBACBGHDFIABHDEIJK $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Festino" $)
    festino.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Festino $)
    festino.min $e |- E. x ( ch /\ ps ) $.
    $( "Festino", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , and some ` ch ` is ` ps ` , therefore some ` ch ` is not
       ` ph ` .  (In Aristotelian notation, EIO-2:  PeM and SiM therefore SoP.)
       (Contributed by David A. Wheeler, 25-Nov-2016.) $)
    festino $p |- E. x ( ch /\ -. ph ) $=
      ( wa wn wi spi con2i anim2i eximii ) CBGCAHZGDFBNCABABHIDEJKLM $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Baroco" $)
    baroco.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Baroco $)
    baroco.min $e |- E. x ( ch /\ -. ps ) $.
    $( "Baroco", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , and some ` ch ` is not ` ps ` , therefore some ` ch ` is not
       ` ph ` .  (In Aristotelian notation, AOO-2:  PaM and SoM therefore SoP.)
       For example, "All informative things are useful", "Some websites are not
       useful", therefore "Some websites are not informative."  (Contributed by
       David A. Wheeler, 28-Aug-2016.) $)
    baroco $p |- E. x ( ch /\ -. ph ) $=
      ( wn wa wi spi con3i anim2i eximii ) CBGZHCAGZHDFNOCABABIDEJKLM $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Cesaro" $)
    cesaro.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Cesaro $)
    cesaro.min $e |- A. x ( ch -> ps ) $.
    $( Existence premise for Cesaro $)
    cesaro.e $e |- E. x ch $.
    $( "Cesaro", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , all ` ch ` is ` ps ` , and ` ch ` exist, therefore some ` ch `
       is not ` ph ` .  (In Aristotelian notation, EAO-2:  PeM and SaM
       therefore SoP.) (Contributed by David A. Wheeler, 28-Aug-2016.)
       (Revised by David A. Wheeler, 2-Sep-2016.) $)
    cesaro $p |- E. x ( ch /\ -. ph ) $=
      ( wn wa wi spi nsyl3 ancli eximii ) CCAHZIDGCOABCABHJDEKCBJDFKLMN $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Camestros" $)
    camestros.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Camestros $)
    camestros.min $e |- A. x ( ch -> -. ps ) $.
    $( Existence premise for Camestros $)
    camestros.e $e |- E. x ch $.
    $( "Camestros", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , no ` ch ` is ` ps ` , and ` ch ` exist, therefore some ` ch `
       is not ` ph ` .  (In Aristotelian notation, AEO-2:  PaM and SeM
       therefore SoP.) For example, "All horses have hooves", "No humans have
       hooves", and humans exist, therefore "Some humans are not horses".
       (Contributed by David A. Wheeler, 28-Aug-2016.)  (Revised by David A.
       Wheeler, 2-Sep-2016.) $)
    camestros $p |- E. x ( ch /\ -. ph ) $=
      ( wn wa wi spi nsyl ancli eximii ) CCAHZIDGCOCBACBHJDFKABJDEKLMN $.
  $}

  $( Figure 3 $)

  ${
    $( Major premise for the Aristotelian syllogism "Datisi" $)
    datisi.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Datisi $)
    datisi.min $e |- E. x ( ph /\ ch ) $.
    $( "Datisi", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , and some ` ph ` is ` ch ` , therefore some ` ch ` is ` ps ` .
       (In Aristotelian notation, AII-3:  MaP and MiS therefore SiP.)
       (Contributed by David A. Wheeler, 28-Aug-2016.) $)
    datisi $p |- E. x ( ch /\ ps ) $=
      ( wa simpr wi spi adantr jca eximii ) ACGZCBGDFNCBACHABCABIDEJKLM $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Disamis" $)
    disamis.maj $e |- E. x ( ph /\ ps ) $.
    $( Minor premise for Disamis $)
    disamis.min $e |- A. x ( ph -> ch ) $.
    $( "Disamis", one of the syllogisms of Aristotelian logic.  Some ` ph ` is
       ` ps ` , and all ` ph ` is ` ch ` , therefore some ` ch ` is ` ps ` .
       (In Aristotelian notation, IAI-3:  MiP and MaS therefore SiP.)
       (Contributed by David A. Wheeler, 28-Aug-2016.) $)
    disamis $p |- E. x ( ch /\ ps ) $=
      ( wa wi spi anim1i eximii ) ABGCBGDEACBACHDFIJK $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Ferison" $)
    ferison.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Ferison $)
    ferison.min $e |- E. x ( ph /\ ch ) $.
    $( "Ferison", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , and some ` ph ` is ` ch ` , therefore some ` ch ` is not
       ` ps ` .  (In Aristotelian notation, EIO-3:  MeP and MiS therefore SoP.)
       (Contributed by David A. Wheeler, 28-Aug-2016.)  (Revised by David A.
       Wheeler, 2-Sep-2016.) $)
    ferison $p |- E. x ( ch /\ -. ps ) $=
      ( wn datisi ) ABGCDEFH $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Bocardo" $)
    bocardo.maj $e |- E. x ( ph /\ -. ps ) $.
    $( Minor premise for Bocardo $)
    bocardo.min $e |- A. x ( ph -> ch ) $.
    $( "Bocardo", one of the syllogisms of Aristotelian logic.  Some ` ph ` is
       not ` ps ` , and all ` ph ` is ` ch ` , therefore some ` ch ` is not
       ` ps ` .  (In Aristotelian notation, OAO-3:  MoP and MaS therefore SoP.)
       For example, "Some cats have no tails", "All cats are mammals",
       therefore "Some mammals have no tails".  A reorder of ~ disamis ; prefer
       using that instead.  (Contributed by David A. Wheeler, 28-Aug-2016.)
       (New usage is discouraged.) $)
    bocardo $p |- E. x ( ch /\ -. ps ) $=
      ( wn disamis ) ABGCDEFH $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Felapton" $)
    felapton.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Felapton $)
    felapton.min $e |- A. x ( ph -> ch ) $.
    $( Existence premise for Felapton $)
    felapton.e $e |- E. x ph $.
    $( "Felapton", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , all ` ph ` is ` ch ` , and some ` ph ` exist, therefore some
       ` ch ` is not ` ps ` .  (In Aristotelian notation, EAO-3:  MeP and MaS
       therefore SoP.) For example, "No flowers are animals" and "All flowers
       are plants", therefore "Some plants are not animals".  (Contributed by
       David A. Wheeler, 28-Aug-2016.)  (Revised by David A. Wheeler,
       2-Sep-2016.) $)
    felapton $p |- E. x ( ch /\ -. ps ) $=
      ( wn wa wi spi jca eximii ) ACBHZIDGACNACJDFKANJDEKLM $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Darapti" $)
    darapti.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Darapti $)
    darapti.min $e |- A. x ( ph -> ch ) $.
    $( Existence premise for Darapti $)
    darapti.e $e |- E. x ph $.
    $( "Darapti", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , all ` ph ` is ` ch ` , and some ` ph ` exist, therefore some
       ` ch ` is ` ps ` .  (In Aristotelian notation, AAI-3:  MaP and MaS
       therefore SiP.) For example, "All squares are rectangles" and "All
       squares are rhombuses", therefore "Some rhombuses are rectangles".
       (Contributed by David A. Wheeler, 28-Aug-2016.) $)
    darapti $p |- E. x ( ch /\ ps ) $=
      ( wa wi spi jca eximii ) ACBHDGACBACIDFJABIDEJKL $.
  $}

  $( Figure 4 $)

  ${
    $( Major premise for the Aristotelian syllogism "Calemes" $)
    calemes.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Calemes $)
    calemes.min $e |- A. x ( ps -> -. ch ) $.
    $( "Calemes", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , and no ` ps ` is ` ch ` , therefore no ` ch ` is ` ph ` .  (In
       Aristotelian notation, AEE-4:  PaM and MeS therefore SeP.) (Contributed
       by David A. Wheeler, 28-Aug-2016.)  (Revised by David A. Wheeler,
       2-Sep-2016.) $)
    calemes $p |- A. x ( ch -> -. ph ) $=
      ( wn wi spi con2i nsyl ax-gen ) CAGHDCBABCBCGHDFIJABHDEIKL $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Dimatis" $)
    dimatis.maj $e |- E. x ( ph /\ ps ) $.
    $( Minor premise for Dimatis $)
    dimatis.min $e |- A. x ( ps -> ch ) $.
    $( "Dimatis", one of the syllogisms of Aristotelian logic.  Some ` ph ` is
       ` ps ` , and all ` ps ` is ` ch ` , therefore some ` ch ` is ` ph ` .
       (In Aristotelian notation, IAI-4:  PiM and MaS therefore SiP.) For
       example, "Some pets are rabbits.", "All rabbits have fur", therefore
       "Some fur bearing animals are pets".  Like ~ darii with positions
       interchanged.  (Contributed by David A. Wheeler, 28-Aug-2016.) $)
    dimatis $p |- E. x ( ch /\ ph ) $=
      ( wa wi spi adantl simpl jca eximii ) ABGZCAGDENCABCABCHDFIJABKLM $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Fresison" $)
    fresison.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Fresison $)
    fresison.min $e |- E. x ( ps /\ ch ) $.
    $( "Fresison", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` (PeM), and some ` ps ` is ` ch ` (MiS), therefore some ` ch ` is
       not ` ph ` (SoP).  (In Aristotelian notation, EIO-4:  PeM and MiS
       therefore SoP.) (Contributed by David A. Wheeler, 28-Aug-2016.)
       (Revised by David A. Wheeler, 2-Sep-2016.) $)
    fresison $p |- E. x ( ch /\ -. ph ) $=
      ( wa wn simpr wi spi con2i adantr jca eximii ) BCGZCAHZGDFPCQBCIBQCABABHJ
      DEKLMNO $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Calemos" $)
    calemos.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Calemos $)
    calemos.min $e |- A. x ( ps -> -. ch ) $.
    $( Existence premise for Calemos $)
    calemos.e $e |- E. x ch $.
    $( "Calemos", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` (PaM), no ` ps ` is ` ch ` (MeS), and ` ch ` exist, therefore
       some ` ch ` is not ` ph ` (SoP).  (In Aristotelian notation, AEO-4:  PaM
       and MeS therefore SoP.) (Contributed by David A. Wheeler, 28-Aug-2016.)
       (Revised by David A. Wheeler, 2-Sep-2016.) $)
    calemos $p |- E. x ( ch /\ -. ph ) $=
      ( wn wa wi spi con2i nsyl ancli eximii ) CCAHZIDGCPCBABCBCHJDFKLABJDEKMNO
      $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Fesapo" $)
    fesapo.maj $e |- A. x ( ph -> -. ps ) $.
    $( Minor premise for Fesapo $)
    fesapo.min $e |- A. x ( ps -> ch ) $.
    $( Existence premise for Fesapo $)
    fesapo.e $e |- E. x ps $.
    $( "Fesapo", one of the syllogisms of Aristotelian logic.  No ` ph ` is
       ` ps ` , all ` ps ` is ` ch ` , and ` ps ` exist, therefore some ` ch `
       is not ` ph ` .  (In Aristotelian notation, EAO-4:  PeM and MaS
       therefore SoP.) (Contributed by David A. Wheeler, 28-Aug-2016.)
       (Revised by David A. Wheeler, 2-Sep-2016.) $)
    fesapo $p |- E. x ( ch /\ -. ph ) $=
      ( wn wa wi spi con2i jca eximii ) BCAHZIDGBCOBCJDFKABABHJDEKLMN $.
  $}

  ${
    $( Major premise for the Aristotelian syllogism "Bamalip" $)
    bamalip.maj $e |- A. x ( ph -> ps ) $.
    $( Minor premise for Bamalip $)
    bamalip.min $e |- A. x ( ps -> ch ) $.
    $( Existence premise for Bamalip $)
    bamalip.e $e |- E. x ph $.
    $( "Bamalip", one of the syllogisms of Aristotelian logic.  All ` ph ` is
       ` ps ` , all ` ps ` is ` ch ` , and ` ph ` exist, therefore some ` ch `
       is ` ph ` .  (In Aristotelian notation, AAI-4:  PaM and MaS therefore
       SiP.) Like ~ barbari .  (Contributed by David A. Wheeler,
       28-Aug-2016.) $)
    bamalip $p |- E. x ( ch /\ ph ) $=
      ( wa wi spi syl ancri eximii ) ACAHDGACABCABIDEJBCIDFJKLM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Intuitionistic logic
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Intuitionistic (constructive) logic is similar to classical logic with the
  notable omission of ~ ax-3 and theorems such as ~ exmid or ~ peirce .  We
  mostly treat intuitionistic logic in a separate file, iset.mm, which is known
  as the Intuitionistic Logic Explorer on the web site.  However, iset.mm has a
  number of additional axioms (mainly to replace definitions like ~ df-or and
  ~ df-ex which are not valid in intuitionistic logic) and we want to prove
  those axioms here to demonstrate that adding those axioms in iset.mm does not
  make iset.mm any less consistent than set.mm.

  The following axioms are unchanged between set.mm and iset.mm: ~ ax-1 ,
  ~ ax-2 , ~ ax-mp , ~ ax-4 , ~ ax-11 , ~ ax-gen , ~ ax-7 , ~ ax-12 , ~ ax-8 ,
  ~ ax-9 , and ~ ax-5 .

  In this list of axioms, the ones that repeat earlier theorems are marked
  "(New usage is discouraged.)" so that the earlier theorems will be used
  consistently in other proofs.

$)

  $( Left 'and' elimination (intuitionistic logic axiom ax-ia1).  (Contributed
     by Jim Kingdon, 21-May-2018.)  (New usage is discouraged.) $)
  axia1 $p |- ( ( ph /\ ps ) -> ph ) $=
    ( simpl ) ABC $.

  $( Right 'and' elimination (intuitionistic logic axiom ax-ia2).  (Contributed
     by Jim Kingdon, 21-May-2018.)  (New usage is discouraged.) $)
  axia2 $p |- ( ( ph /\ ps ) -> ps ) $=
    ( simpr ) ABC $.

  $( 'And' introduction (intuitionistic logic axiom ax-ia3).  (Contributed by
     Jim Kingdon, 21-May-2018.)  (New usage is discouraged.) $)
  axia3 $p |- ( ph -> ( ps -> ( ph /\ ps ) ) ) $=
    ( pm3.2 ) ABC $.

  $( 'Not' introduction (intuitionistic logic axiom ax-in1).  (Contributed by
     Jim Kingdon, 21-May-2018.)  (New usage is discouraged.) $)
  axin1 $p |- ( ( ph -> -. ph ) -> -. ph ) $=
    ( pm2.01 ) AB $.

  $( 'Not' elimination (intuitionistic logic axiom ax-in2).  (Contributed by
     Jim Kingdon, 21-May-2018.)  (New usage is discouraged.) $)
  axin2 $p |- ( -. ph -> ( ph -> ps ) ) $=
    ( pm2.21 ) ABC $.

  $( Definition of 'or' (intuitionistic logic axiom ax-io).  (Contributed by
     Jim Kingdon, 21-May-2018.)  (New usage is discouraged.) $)
  axio $p |- ( ( ( ph \/ ch ) -> ps ) <->
      ( ( ph -> ps ) /\ ( ch -> ps ) ) ) $=
    ( jaob ) ABCD $.

  $( Specialization (intuitionistic logic axiom ax-4).  This is just ~ sp by
     another name.  (Contributed by Jim Kingdon, 31-Dec-2017.)
     (New usage is discouraged.) $)
  axi4 $p |- ( A. x ph -> ph ) $=
    ( sp ) ABC $.

  $( Converse of ax-c4 (intuitionistic logic axiom ax-i5r).  (Contributed by
     Jim Kingdon, 31-Dec-2017.) $)
  axi5r $p |- ( ( A. x ph -> A. x ps ) -> A. x ( A. x ph -> ps ) ) $=
    ( wal wi hba1 hbim sp imim2i alrimih ) ACDZBCDZEKBECKLCACFBCFGLBKBCHIJ $.

  $( The setvar ` x ` is not free in ` A. x ph ` (intuitionistic logic axiom
     ax-ial).  (Contributed by Jim Kingdon, 31-Dec-2017.)
     (New usage is discouraged.) $)
  axial $p |- ( A. x ph -> A. x A. x ph ) $=
    ( hba1 ) ABC $.

  $( The setvar ` x ` is not free in ` E. x ph ` (intuitionistic logic axiom
     ax-ie1).  (Contributed by Jim Kingdon, 31-Dec-2017.)
     (New usage is discouraged.) $)
  axie1 $p |- ( E. x ph -> A. x E. x ph ) $=
    ( hbe1 ) ABC $.

  $( A key property of existential quantification (intuitionistic logic axiom
     ax-ie2).  (Contributed by Jim Kingdon, 31-Dec-2017.) $)
  axie2 $p |- ( A. x ( ps -> A. x ps ) ->
              ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) ) $=
    ( wal wi wnf wex wb nf5 19.23t sylbir ) BBCDECDBCFABECDACGBEHBCIABCJK $.

  $( Axiom of existence (intuitionistic logic axiom ax-i9).  In classical
     logic, this is equivalent to ~ ax-6 but in intuitionistic logic it needs
     to be stated using the existential quantifier.  (Contributed by Jim
     Kingdon, 31-Dec-2017.)  (New usage is discouraged.) $)
  axi9 $p |- E. x x = y $=
    ( ax6e ) ABC $.

  $( Axiom of Quantifier Substitution (intuitionistic logic axiom ax-10).  This
     is just ~ axc11n by another name.  (Contributed by Jim Kingdon,
     31-Dec-2017.)  (New usage is discouraged.) $)
  axi10 $p |- ( A. x x = y -> A. y y = x ) $=
    ( axc11n ) ABC $.

  $( Axiom of Quantifier Introduction (intuitionistic logic axiom ax-i12).  In
     classical logic, this is mostly a restatement of ~ axc9 (with one
     additional quantifier).  But in intuitionistic logic, changing the
     negations and implications to disjunctions makes it stronger.
     (Contributed by Jim Kingdon, 31-Dec-2017.) $)
  axi12 $p |- ( A. z z = x \/ ( A. z z = y \/
                A. z ( x = y -> A. z x = y ) ) ) $=
    ( weq wal wo wi nfae nfor 19.32 wn axc9 orrd orri orass mpbir mpgbi mpbi )
    CADCEZCBDCEZFZABDZUBCEGZCEZFZSTUDFFUAUCFZUECUAUCCSTCCACHCBCHIJUFSTUCFZFSUGS
    KTUCABCLMNSTUCOPQSTUDOR $.

  $( Axiom of Bundling (intuitionistic logic axiom ax-bnd).  In classical
     logic, this and ~ axi12 are fairly straightforward consequences of
     ~ axc9 .  But in intuitionistic logic, it is not easy to add the extra
     ` A. x ` to ~ axi12 and so we treat the two as separate axioms.
     (Contributed by Jim Kingdon, 22-Mar-2018.) $)
  axbnd $p |- ( A. z z = x \/ ( A. z z = y \/
                 A. x A. z ( x = y -> A. z x = y ) ) ) $=
    ( weq wal wi wo wn wa nfnae nfan axc9 imp alrimi ex orrd orri ) CADCEZCBDCE
    ZABDZTCEFZCEZAEZGRHZSUCUDSHZUCUDUEIZUBAUDUEACAAJCBAJKUFUACUDUECCACJCBCJKUDU
    EUAABCLMNNOPQ $.

$( End $[ set-pred.mm $] $)


$( Begin $[ set-class.mm $] $)
$(
###############################################################################
  ZF (ZERMELO-FRAENKEL) SET THEORY
###############################################################################

  Set theory uses the formalism of propositional and predicate calculus to
  assert properties of arbitrary mathematical objects called "sets."  A set can
  be an element of another set, and this relationship is indicated by the
  ` e. ` symbol.  Starting with the simplest mathematical object, called the
  empty set, set theory builds up more and more complex structures whose
  existence follows from the axioms, eventually resulting in extremely
  complicated sets that we identify with the real numbers and other familiar
  mathematical objects.

  A simplistic concept of sets, sometimes called "naive set theory", is
  vulnerable to a paradox called "Russell's Paradox" ( ~ ru ), a discovery that
  revolutionized the foundations of mathematics and logic.  Russell's Paradox
  spawned the development of set theories that countered the paradox, including
  the ZF set theory that is most widely used and is defined here.

  Except for Extensionality, the axioms basically say, "given an arbitrary set
  x (and, in the cases of Replacement and Regularity, provided that an
  antecedent is satisfied), there exists another set y based on or constructed
  from it, with the stated properties."  (The axiom of Extensionality can also
  be restated this way as shown by ~ axext2 .) The individual axiom links
  provide more detailed descriptions.  We derive the redundant ZF axioms of
  Separation, Null Set, and Pairing from the others as theorems.

$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Zermelo-Fraenkel Set Theory
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  ZF Set Theory - start with the Axiom of Extensionality
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Extensionality
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( Axiom of Extensionality.  An axiom of Zermelo-Fraenkel set theory.  It
       states that two sets are identical if they contain the same elements.
       Axiom Ext of [BellMachover] p. 461.

       Set theory can also be formulated with a _single_ primitive predicate
       ` e. ` on top of traditional predicate calculus _without_ equality.  In
       that case the Axiom of Extensionality becomes
       ` ( A. w ( w e. x <-> w e. y ) -> ( x e. z -> y e. z ) ) ` , and
       equality ` x = y ` is _defined_ as ` A. w ( w e. x <-> w e. y ) ` .  All
       of the usual axioms of equality then become theorems of set theory.
       See, for example, Axiom 1 of [TakeutiZaring] p. 8.

       To use the above "equality-free" version of Extensionality with
       Metamath's predicate calculus axioms, we would rewrite all axioms
       involving equality with equality expanded according to the above
       definition.  Some of those axioms may be provable from ax-ext and would
       become redundant, but this hasn't been studied carefully.

       _General remarks_:  Our set theory axioms are presented using defined
       connectives ( ` <-> ` , ` E. ` , etc.) for convenience.  However, it is
       implicitly understood that the actual axioms use only the primitive
       connectives ` -> ` , ` -. ` , ` A. ` , ` = ` , and ` e. ` .  It is
       straightforward to establish the equivalence between the actual axioms
       and the ones we display, and we will not do so.

       It is important to understand that strictly speaking, all of our set
       theory axioms are really schemes that represent an infinite number of
       actual axioms.  This is inherent in the design of Metamath
       ("metavariable math"), which manipulates only metavariables.  For
       example, the metavariable ` x ` in ~ ax-ext can represent any actual
       variable _v1_, _v2_, _v3_,... .  Distinct variable restrictions ($d)
       prevent us from substituting say _v1_ for both ` x ` and ` z ` .  This
       is in contrast to typical textbook presentations that present actual
       axioms (except for Replacement ~ ax-rep , which involves a wff
       metavariable).  In practice, though, the theorems and proofs are
       essentially the same.  The $d restrictions make each of the infinite
       axioms generated by the ~ ax-ext scheme exactly logically equivalent to
       each other and in particular to the actual axiom of the textbook
       version.  (Contributed by NM, 21-May-1993.) $)
    ax-ext $a |- ( A. z ( z e. x <-> z e. y ) -> x = y ) $.

    $( The Axiom of Extensionality ( ~ ax-ext ) restated so that it postulates
       the existence of a set ` z ` given two arbitrary sets ` x ` and ` y ` .
       This way to express it follows the general idea of the other ZFC axioms,
       which is to postulate the existence of sets given other sets.
       (Contributed by NM, 28-Sep-2003.) $)
    axext2 $p |- E. z ( ( z e. x <-> z e. y ) -> x = y ) $=
      ( wel wb weq wi wex wal ax-ext 19.36v mpbir ) CADCBDEZABFZGCHMCINGABCJMNC
      KL $.
  $}

  ${
    $d z x w $.  $d z y w $.
    $( A generalization of the Axiom of Extensionality in which ` x ` and ` y `
       need not be distinct.  (Contributed by NM, 15-Sep-1993.)  (Proof
       shortened by Andrew Salmon, 12-Aug-2011.)  Remove dependencies on
       ~ ax-10 , ~ ax-12 , ~ ax-13 .  (Revised by Wolf Lammen, 9-Dec-2019.) $)
    axext3 $p |- ( A. z ( z e. x <-> z e. y ) -> x = y ) $=
      ( vw weq wel wb wal wi elequ2 bibi1d albidv ax-ext syl6bir ax7 syld ax6ev
      exlimiiv ) DAEZCAFZCBFZGZCHZABEZIDSUCDBEZUDSUCCDFZUAGZCHUESUGUBCSUFTUADAC
      JKLDBCMNDABOPDAQR $.

    $d z x w $.  $d z y w $.
    $( Alternate proof of ~ axext3 , shorter but uses more axioms.
       (Contributed by NM, 15-Sep-1993.)  (Proof shortened by Andrew Salmon,
       12-Aug-2011.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    axext3ALT $p |- ( A. z ( z e. x <-> z e. y ) -> x = y ) $=
      ( vw wel wb wal weq wi elequ2 bibi1d albidv equequ1 imbi12d ax-ext chvarv
      ) CDEZCBEZFZCGZDBHZICAEZRFZCGZABHZIDADAHZTUDUAUEUFSUCCUFQUBRDACJKLDABMNDB
      COP $.

    $( A bidirectional version of Extensionality.  Although this theorem
       "looks" like it is just a definition of equality, it requires the Axiom
       of Extensionality for its proof under our axiomatization.  See the
       comments for ~ ax-ext and ~ df-cleq .  (Contributed by NM,
       14-Nov-2008.) $)
    axext4 $p |- ( x = y <-> A. z ( z e. x <-> z e. y ) ) $=
      ( weq wel wb wal elequ2 alrimiv axext3 impbii ) ABDZCAECBEFZCGLMCABCHIABC
      JK $.
  $}

  ${
    $d x y z $.  $d ph z $.
    bm1.1.1 $e |- F/ x ph $.
    $( Any set defined by a property is the only set defined by that property.
       Theorem 1.1 of [BellMachover] p. 462.  (Contributed by NM, 30-Jun-1994.)
       (Proof shortened by Wolf Lammen, 13-Nov-2019.) $)
    bm1.1 $p |- ( E. x A. y ( y e. x <-> ph ) ->
                  E! x A. y ( y e. x <-> ph ) ) $=
      ( vz wel wb wal wa weq wi wex weu biantr alanimi ax-ext syl gen2 wmo nfv
      nfbi nfal elequ2 bibi1d albidv mo4f df-mo bitr3i mpbi ) CBFZAGZCHZCEFZAGZ
      CHZIZBEJZKZEHBHZULBLULBMKZURBEUPUJUMGZCHUQUKUNVACUJAUMNOBECPQRUSULBSUTULU
      OBEUNBCUMABUMBTDUAUBUQUKUNCUQUJUMABECUCUDUEUFULBUGUHUI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Class abstractions (a.k.a. class builders)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constants use in class definition. $)
  $c { $. $( Left brace $)
  $c | $.  $( Vertical bar $)
  $c } $. $( Right brace $)

  $( Declare symbols as variables $)
  $v ./\ $.
  $v .\/ $.
  $v .<_ $.
  $v .< $.
  $v .+ $.
  $v .- $.
  $v .X. $.
  $v ./ $.
  $v .^ $.
  $v .0. $.
  $v .1. $.
  $v .|| $.
  $v .~ $.
  $v ._|_ $.
  $v .+^ $.
  $v .+b $.
  $v .(+) $.
  $v .* $.
  $v .x. $.
  $v .xb $.
  $v ., $.
  $v .(x) $.
  $v .o. $.
  $v .0b $.

  $( Declare variable symbols that will be used to represent classes.  Note
     that later on ` R ` , ` S ` , ` F ` and ` G ` denote relations and
     functions, but these letters serve as mnemonics only and in fact behave
     no differently from the variables ` A ` through ` D ` . $)
  $v A $.
  $v B $.
  $v C $.
  $v D $.
  $v P $.
  $v Q $.
  $v R $.
  $v S $.
  $v T $.
  $v U $.

  $( Introduce the class builder or class abstraction notation ("the class of
     sets ` x ` such that ` ph ` is true").  Our class variables ` A ` ,
     ` B ` , etc. range over class builders (implicitly in the case of defined
     class terms such as ~ df-nul ).  Note that a setvar variable can be
     expressed as a class builder per theorem ~ cvjust , justifying the
     assignment of setvar variables to class variables via the use of ~ cv . $)
  cab $a class { x | ph } $.

  $( $j primitive 'cv' 'wceq' 'wcel' 'cab'; $)

  $( Let ` A ` be a class variable. $)
  cA $f class A $.
  $( Let ` B ` be a class variable. $)
  cB $f class B $.
  $( Let ` C ` be a class variable. $)
  cC $f class C $.

  $( Define a connective symbol for use as a class variable. $)
  c.pa $f class .|| $.

  $( Let ` D ` be a class variable. $)
  cD $f class D $.

  $( Define a connective symbol for use as a class variable. $)
  c.dv $f class ./ $.

  $( Let ` P ` be a class variable. $)
  cP $f class P $.

  $( Define a connective symbol for use as a class variable. $)
  c.pl $f class .+ $.

  $( Define a connective symbol for use as a class variable. $)
  c.pd $f class .+^ $.

  $( Define a connective symbol for use as a class variable. $)
  c.pb $f class .+b $.

  $( Define a connective symbol for use as a class variable. $)
  c.po $f class .(+) $.

  $( Let ` Q ` be a class variable. $)
  cQ $f class Q $.

  $( Define a connective symbol for use as a class variable. $)
  c.sm $f class .~ $.

  $( Let ` R ` be a class variable. $)
  cR $f class R $.
  $( Let ` S ` be a class variable. $)
  cS $f class S $.

  $( Define a connective symbol for use as a class variable. $)
  c.lt $f class .< $.

  $( Define a connective symbol for use as a class variable. $)
  c.xb $f class .xb $.

  $( Let ` T ` be a class variable. $)
  cT $f class T $.

  $( Define a connective symbol for use as a class variable. $)
  c.x $f class .x. $.

  $( Define a connective symbol for use as a class variable. $)
  c.xp $f class .X. $.

  $( Define a connective symbol for use as a class variable. $)
  c.xo $f class .(x) $.

  $( Let ` U ` be a class variable. $)
  cU $f class U $.

  $( Define a connective symbol for use as a class variable. $)
  c.1 $f class .1. $.

  $v e $.
  $v f $.
  $v g $.
  $v h $.
  $v i $.
  $v j $.
  $v k $.
  $v m $.
  $v n $.
  $v o $.
  $v E $.
  $v F $.
  $v G $.
  $v H $.
  $v I $.
  $v J $.
  $v K $.
  $v L $.
  $v M $.
  $v N $.
  $v V $.
  $v W $.
  $v X $.
  $v Y $.
  $v Z $.
  $v O $.
  $v s $.
  $v r $.
  $v q $.
  $v p $.
  $v a $.
  $v b $.
  $v c $.
  $v d $.
  $v l $.

  $( Let ` e ` be an individual variable. $)
  ve $f setvar e $.
  $( Let ` f ` be an individual variable. $)
  vf $f setvar f $.
  $( Let ` g ` be an individual variable. $)
  vg $f setvar g $.
  $( Let ` h ` be an individual variable. $)
  vh $f setvar h $.
  $( Let ` i ` be an individual variable. $)
  vi $f setvar i $.
  $( Let ` j ` be an individual variable. $)
  vj $f setvar j $.
  $( Let ` k ` be an individual variable. $)
  vk $f setvar k $.
  $( Let ` m ` be an individual variable. $)
  vm $f setvar m $.
  $( Let ` n ` be an individual variable. $)
  vn $f setvar n $.
  $( Let ` o ` be an individual variable. $)
  vo $f setvar o $.
  $( Let ` E ` be a class variable. $)
  cE $f class E $.

  $( Define a connective symbol for use as a class variable. $)
  c.ex $f class .^ $.

  $( Let ` F ` be a class variable. $)
  cF $f class F $.
  $( Let ` G ` be a class variable. $)
  cG $f class G $.
  $( Let ` H ` be a class variable. $)
  cH $f class H $.

  $( Define a connective symbol for use as a class variable. $)
  c.xi $f class ., $.

  $( Let ` I ` be a class variable. $)
  cI $f class I $.

  $( Define a connective symbol for use as a class variable. $)
  c.as $f class .* $.

  $( Let ` J ` be a class variable. $)
  cJ $f class J $.

  $( Define a connective symbol for use as a class variable. $)
  c.or $f class .\/ $.

  $( Let ` K ` be a class variable. $)
  cK $f class K $.

  $( Let ` L ` be a class variable. $)
  cL $f class L $.

  $( Define a connective symbol for use as a class variable. $)
  c.le $f class .<_ $.

  $( Let ` M ` be a class variable. $)
  cM $f class M $.

  $( Define a connective symbol for use as a class variable. $)
  c.an $f class ./\ $.

  $( Define a connective symbol for use as a class variable. $)
  c.mi $f class .- $.

  $( Let ` N ` be a class variable. $)
  cN $f class N $.

  $( Define a connective symbol for use as a class variable. $)
  c.pe $f class ._|_ $.

  $( Let ` O ` be a class variable. $)
  cO $f class O $.
  $( Let ` V ` be a class variable. $)
  cV $f class V $.
  $( Let ` W ` be a class variable. $)
  cW $f class W $.
  $( Let ` X ` be a class variable. $)
  cX $f class X $.
  $( Let ` Y ` be a class variable. $)
  cY $f class Y $.

  $( Define a connective symbol for use as a class variable. $)
  c.0 $f class .0. $.

  $( Define a connective symbol for use as a class variable. $)
  c.0b $f class .0b $.

  $( Define a connective symbol for use as a class variable. $)
  c.op $f class .o. $.

  $( Let ` Z ` be a class variable. $)
  cZ $f class Z $.
  $( Let ` s ` be an individual variable. $)
  vs $f setvar s $.
  $( Let ` r ` be an individual variable. $)
  vr $f setvar r $.
  $( Let ` q ` be an individual variable. $)
  vq $f setvar q $.
  $( Let ` p ` be an individual variable. $)
  vp $f setvar p $.
  $( Let ` a ` be an individual variable. $)
  va $f setvar a $.
  $( Let ` b ` be an individual variable. $)
  vb $f setvar b $.
  $( Let ` c ` be an individual variable. $)
  vc $f setvar c $.
  $( Let ` d ` be an individual variable. $)
  vd $f setvar d $.
  $( Let ` l ` be an individual variable. $)
  vl $f setvar l $.

  $( Define class abstraction notation (so-called by Quine), also called a
     "class builder" in the literature. ` x ` and ` y ` need not be distinct.
     Definition 2.1 of [Quine] p. 16.  Typically, ` ph ` will have ` y ` as a
     free variable, and " ` { y | ph } ` " is read "the class of all sets ` y `
     such that ` ph ( y ) ` is true."  We do not define ` { y | ph } ` in
     isolation but only as part of an expression that extends or "overloads"
     the ` e. ` relationship.

     This is our first use of the ` e. ` symbol to connect classes instead of
     sets.  The syntax definition ~ wcel , which extends or "overloads" the
     ~ wel definition connecting setvar variables, requires that both sides of
     ` e. ` be classes.  In ~ df-cleq and ~ df-clel , we introduce a new kind
     of variable (class variable) that can be substituted with expressions such
     as ` { y | ph } ` .  In the present definition, the ` x ` on the left-hand
     side is a setvar variable.  Syntax definition ~ cv allows us to substitute
     a setvar variable ` x ` for a class variable: all sets are classes by
     ~ cvjust (but not necessarily vice-versa).  For a full description of how
     classes are introduced and how to recover the primitive language, see the
     discussion in Quine (and under ~ abeq2 for a quick overview).

     Because class variables can be substituted with compound expressions and
     setvar variables cannot, it is often useful to convert a theorem
     containing a free setvar variable to a more general version with a class
     variable.  This is done with theorems such as ~ vtoclg which is used, for
     example, to convert ~ elirrv to ~ elirr .

     This is called the "axiom of class comprehension" by [Levy] p. 338, who
     treats the theory of classes as an extralogical extension to our logic and
     set theory axioms.  He calls the construction ` { y | ph } ` a "class
     term".

     While the three class definitions ~ df-clab , ~ df-cleq , and ~ df-clel
     are eliminable and conservative and thus meet the requirements for sound
     definitions, they are technically axioms in that they do not satisfy the
     requirements for the current definition checker.  The proofs of
     conservativity require external justification that is beyond the scope of
     the definition checker.

     For a general discussion of the theory of classes, see
     ~ mmset.html#class .  (Contributed by NM, 26-May-1993.) $)
  df-clab $a |- ( x e. { y | ph } <-> [ x / y ] ph ) $.

  $( Simplification of class abstraction notation when the free and bound
     variables are identical.  (Contributed by NM, 26-May-1993.) $)
  abid $p |- ( x e. { x | ph } <-> ph ) $=
    ( cv cab wcel wsb df-clab sbid bitri ) BCABDEABBFAABBGABHI $.

  ${
    $d x y $.
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by NM, 26-May-1993.) $)
    hbab1 $p |- ( y e. { x | ph } -> A. x y e. { x | ph } ) $=
      ( cv cab wcel wsb df-clab hbs1 hbxfrbi ) CDABEFABCGBACBHABCIJ $.

    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by Mario Carneiro, 11-Aug-2016.) $)
    nfsab1 $p |- F/ x y e. { x | ph } $=
      ( cv cab wcel hbab1 nf5i ) CDABEFBABCGH $.
  $}

  ${
    $d x z $.
    hbab.1 $e |- ( ph -> A. x ph ) $.
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by NM, 1-Mar-1995.) $)
    hbab $p |- ( z e. { y | ph } -> A. x z e. { y | ph } ) $=
      ( cv cab wcel wsb df-clab hbsb hbxfrbi ) DFACGHACDIBADCJACDBEKL $.
  $}

  ${
    $d x z $.
    nfsab.1 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by Mario Carneiro, 11-Aug-2016.) $)
    nfsab $p |- F/ x z e. { y | ph } $=
      ( cv cab wcel nf5ri hbab nf5i ) DFACGHBABCDABEIJK $.
  $}

  ${
    $d x A $.  $d x B $.  $d x y z $.
    df-cleq.1 $e |- ( A. x ( x e. y <-> x e. z ) -> y = z ) $.
    $( Define the equality connective between classes.  Definition 2.7 of
       [Quine] p. 18.  Also Definition 4.5 of [TakeutiZaring] p. 13; Chapter 4
       provides its justification and methods for eliminating it.  Note that
       its elimination will not necessarily result in a single wff in the
       original language but possibly a "scheme" of wffs.

       This is an example of a somewhat "risky" definition, meaning that it has
       a more complex than usual soundness justification (outside of Metamath),
       because it "overloads" or reuses the existing equality symbol rather
       than introducing a new symbol.  This allows us to make statements that
       may not hold for the original symbol.  For example, it permits us to
       deduce ` y = z <-> A. x ( x e. y <-> x e. z ) ` , which is not a theorem
       of logic but rather presupposes the Axiom of Extensionality (see theorem
       ~ axext4 ).  We therefore include this axiom as a hypothesis, so that
       the use of Extensionality is properly indicated.

       See also comments under ~ df-clab , ~ df-clel , and ~ abeq2 .

       In the form of ~ dfcleq , this is called the "axiom of extensionality"
       by [Levy] p. 338, who treats the theory of classes as an extralogical
       extension to our logic and set theory axioms.

       While the three class definitions ~ df-clab , ~ df-cleq , and ~ df-clel
       are eliminable and conservative and thus meet the requirements for sound
       definitions, they are technically axioms in that they do not satisfy the
       requirements for the current definition checker.  The proofs of
       conservativity require external justification that is beyond the scope
       of the definition checker.

       For a general discussion of the theory of classes, see
       ~ mmset.html#class .  (Contributed by NM, 15-Sep-1993.) $)
    df-cleq $a |- ( A = B <-> A. x ( x e. A <-> x e. B ) ) $.
  $}

  ${
    $d x A $.  $d x B $.  $d x y z $.
    $( The same as ~ df-cleq with the hypothesis removed using the Axiom of
       Extensionality ~ ax-ext .  (Contributed by NM, 15-Sep-1993.)  Revised to
       make use of ~ axext3 instead of ~ ax-ext , so that ~ ax-9 will appear in
       lists of axioms used by a proof, since ~ df-cleq implies ~ ax-9 by
       theorem ~ bj-ax9 .  We may revisit this in the future.  (Revised by NM,
       28-Oct-2021.)  (Proof modification is discouraged.) $)
    dfcleq $p |- ( A = B <-> A. x ( x e. A <-> x e. B ) ) $=
      ( vy vz axext3 df-cleq ) ADEBCDEAFG $.
  $}

  ${
    $d x y z $.
    $( Every set is a class.  Proposition 4.9 of [TakeutiZaring] p. 13.  This
       theorem shows that a setvar variable can be expressed as a class
       abstraction.  This provides a motivation for the class syntax
       construction ~ cv , which allows us to substitute a setvar variable for
       a class variable.  See also ~ cab and ~ df-clab .  Note that this is not
       a rigorous justification, because ~ cv is used as part of the proof of
       this theorem, but a careful argument can be made outside of the
       formalism of Metamath, for example as is done in Chapter 4 of Takeuti
       and Zaring.  See also the discussion under the definition of class in
       [Jech] p. 4 showing that "Every set can be considered to be a class."
       (Contributed by NM, 7-Nov-2006.) $)
    cvjust $p |- x = { y | y e. x } $=
      ( vz cv wcel cab wceq wb dfcleq wsb df-clab elsb3 bitr2i mpgbir ) ADZBDOE
      ZBFZGCDZOEZRQEZHCCOQITPBCJSPCBKCBALMN $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Define the membership connective between classes.  Theorem 6.3 of
       [Quine] p. 41, or Proposition 4.6 of [TakeutiZaring] p. 13, which we
       adopt as a definition.  See these references for its metalogical
       justification.  Note that like ~ df-cleq it extends or "overloads" the
       use of the existing membership symbol, but unlike ~ df-cleq it does not
       strengthen the set of valid wffs of logic when the class variables are
       replaced with setvar variables (see ~ cleljust ), so we don't include
       any set theory axiom as a hypothesis.  See also comments about the
       syntax under ~ df-clab .  Alternate definitions of ` A e. B ` (but that
       require either ` A ` or ` B ` to be a set) are shown by ~ clel2 ,
       ~ clel3 , and ~ clel4 .

       This is called the "axiom of membership" by [Levy] p. 338, who treats
       the theory of classes as an extralogical extension to our logic and set
       theory axioms.

       While the three class definitions ~ df-clab , ~ df-cleq , and ~ df-clel
       are eliminable and conservative and thus meet the requirements for sound
       definitions, they are technically axioms in that they do not satisfy the
       requirements for the current definition checker.  The proofs of
       conservativity require external justification that is beyond the scope
       of the definition checker.

       For a general discussion of the theory of classes, see
       ~ mmset.html#class .  (Contributed by NM, 26-May-1993.) $)
    df-clel $a |- ( A e. B <-> E. x ( x = A /\ x e. B ) ) $.
  $}

  ${
    $d x A $.  $d x B $.
    eqriv.1 $e |- ( x e. A <-> x e. B ) $.
    $( Infer equality of classes from equivalence of membership.  (Contributed
       by NM, 21-Jun-1993.) $)
    eqriv $p |- A = B $=
      ( wceq cv wcel wb dfcleq mpgbir ) BCEAFZBGKCGHAABCIDJ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    eqrdv.1 $e |- ( ph -> ( x e. A <-> x e. B ) ) $.
    $( Deduce equality of classes from equivalence of membership.  (Contributed
       by NM, 17-Mar-1996.) $)
    eqrdv $p |- ( ph -> A = B ) $=
      ( cv wcel wb wal wceq alrimiv dfcleq sylibr ) ABFZCGNDGHZBICDJAOBEKBCDLM
      $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    eqrdav.1 $e |- ( ( ph /\ x e. A ) -> x e. C ) $.
    eqrdav.2 $e |- ( ( ph /\ x e. B ) -> x e. C ) $.
    eqrdav.3 $e |- ( ( ph /\ x e. C ) -> ( x e. A <-> x e. B ) ) $.
    $( Deduce equality of classes from an equivalence of membership that
       depends on the membership variable.  (Contributed by NM, 7-Nov-2008.)
       (Proof shortened by Wolf Lammen, 19-Nov-2019.) $)
    eqrdav $p |- ( ph -> A = B ) $=
      ( cv wcel wa biimpd impancom mpd biimprd impbida eqrdv ) ABCDABIZCJZRDJZA
      SKREJZTFAUASTAUAKZSTHLMNATKUASGAUATSUBSTHOMNPQ $.
  $}

  ${
    $d x A $.
    $( Law of identity (reflexivity of class equality).  Theorem 6.4 of [Quine]
       p. 41.

       This is part of Frege's eighth axiom per Proposition 54 of [Frege1879]
       p. 50; see also ~ biid .  An early mention of this law can be found in
       Aristotle, _Metaphysics_, Z.17, 1041a10-20.  (Thanks to Stefan Allan and
       BJ for this information.)  (Contributed by NM, 21-Jun-1993.)  (Revised
       by BJ, 14-Oct-2017.) $)
    eqid $p |- A = A $=
      ( vx cv wcel biid eqriv ) BAABCADEF $.
  $}

  $( Class identity law with antecedent.  (Contributed by NM, 21-Aug-2008.) $)
  eqidd $p |- ( ph -> A = A ) $=
    ( wceq eqid a1i ) BBCABDE $.

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.
    eqeq1d.1 $e |- ( ph -> A = B ) $.
    $( Deduction from equality to equivalence of equalities.  (Contributed by
       NM, 27-Dec-1993.)  Reduce dependencies on axioms.  (Revised by Wolf
       Lammen, 5-Dec-2019.) $)
    eqeq1d $p |- ( ph -> ( A = C <-> B = C ) ) $=
      ( vx cv wcel wb wal wceq dfcleq biimpi bibi1 alimi albi 4syl 3bitr4g ) AF
      GZBHZSDHZIZFJZSCHZUAIZFJZBDKCDKABCKZTUDIZFJZUBUEIZFJUCUFIEUGUIFBCLMUHUJFT
      UDUANOUBUEFPQFBDLFCDLR $.

    $( Shorter proof of ~ eqeq1d based on more axioms.  (Contributed by NM,
       27-Dec-1993.)  (Revised by Wolf Lammen, 19-Nov-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    eqeq1dALT $p |- ( ph -> ( A = C <-> B = C ) ) $=
      ( vx cv wcel wb wal wceq dfcleq sylib 19.21bi bibi1d albidv 3bitr4g ) AFG
      ZBHZRDHZIZFJRCHZTIZFJBDKCDKAUAUCFASUBTASUBIZFABCKUDFJEFBCLMNOPFBDLFCDLQ
      $.
  $}

  $( Equality implies equivalence of equalities.  (Contributed by NM,
     26-May-1993.)  (Proof shortened by Wolf Lammen, 19-Nov-2019.) $)
  eqeq1 $p |- ( A = B -> ( A = C <-> B = C ) ) $=
    ( wceq id eqeq1d ) ABDZABCGEF $.

  ${
    eqeq1i.1 $e |- A = B $.
    $( Inference from equality to equivalence of equalities.  (Contributed by
       NM, 15-Jul-1993.) $)
    eqeq1i $p |- ( A = C <-> B = C ) $=
      ( wceq wb eqeq1 ax-mp ) ABEACEBCEFDABCGH $.
  $}

  ${
    eqcomd.1 $e |- ( ph -> A = B ) $.
    $( Deduction from commutative law for class equality.  (Contributed by NM,
       15-Aug-1994.)  Allow shortening of ~ eqcom .  (Revised by Wolf Lammen,
       19-Nov-2019.) $)
    eqcomd $p |- ( ph -> B = A ) $=
      ( wceq eqid eqeq1d mpbii ) ABBECBEBFABCBDGH $.
  $}

  $( Commutative law for class equality.  Theorem 6.5 of [Quine] p. 41.
     (Contributed by NM, 26-May-1993.)  (Proof shortened by Wolf Lammen,
     19-Nov-2019.) $)
  eqcom $p |- ( A = B <-> B = A ) $=
    ( wceq id eqcomd impbii ) ABCZBACZGABGDEHBAHDEF $.

  ${
    eqcoms.1 $e |- ( A = B -> ph ) $.
    $( Inference applying commutative law for class equality to an antecedent.
       (Contributed by NM, 24-Jun-1993.) $)
    eqcoms $p |- ( B = A -> ph ) $=
      ( wceq eqcom sylbi ) CBEBCEACBFDG $.
  $}

  ${
    eqcomi.1 $e |- A = B $.
    $( Inference from commutative law for class equality.  (Contributed by NM,
       26-May-1993.) $)
    eqcomi $p |- B = A $=
      ( wceq eqcom mpbi ) ABDBADCABEF $.
  $}

  ${
    eqeq2d.1 $e |- ( ph -> A = B ) $.
    $( Deduction from equality to equivalence of equalities.  (Contributed by
       NM, 27-Dec-1993.)  Allow shortening of ~ eqeq2 .  (Revised by Wolf
       Lammen, 19-Nov-2019.) $)
    eqeq2d $p |- ( ph -> ( C = A <-> C = B ) ) $=
      ( wceq eqeq1d eqcom 3bitr4g ) ABDFCDFDBFDCFABCDEGDBHDCHI $.
  $}

  $( Equality implies equivalence of equalities.  (Contributed by NM,
     26-May-1993.)  (Proof shortened by Wolf Lammen, 19-Nov-2019.) $)
  eqeq2 $p |- ( A = B -> ( C = A <-> C = B ) ) $=
    ( wceq id eqeq2d ) ABDZABCGEF $.

  ${
    eqeq2i.1 $e |- A = B $.
    $( Inference from equality to equivalence of equalities.  (Contributed by
       NM, 26-May-1993.) $)
    eqeq2i $p |- ( C = A <-> C = B ) $=
      ( wceq wb eqeq2 ax-mp ) ABECAECBEFDABCGH $.
  $}

  $( Equality relationship among 4 classes.  (Contributed by NM,
     3-Aug-1994.) $)
  eqeq12 $p |- ( ( A = B /\ C = D ) -> ( A = C <-> B = D ) ) $=
    ( wceq eqeq1 eqeq2 sylan9bb ) ABEACEBCECDEBDEABCFCDBGH $.

  ${
    eqeq12i.1 $e |- A = B $.
    eqeq12i.2 $e |- C = D $.
    $( A useful inference for substituting definitions into an equality.
       (Contributed by NM, 15-Jul-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.)  (Proof shortened by Wolf Lammen, 20-Nov-2019.) $)
    eqeq12i $p |- ( A = C <-> B = D ) $=
      ( wceq eqeq1i eqeq2i bitri ) ACGBCGBDGABCEHCDBFIJ $.

    $( Theorem eqeq12i is the congruence law for equality. $)
    $( $j congruence 'eqeq12i'; $)
  $}

  ${
    eqeq12d.1 $e |- ( ph -> A = B ) $.
    eqeq12d.2 $e |- ( ph -> C = D ) $.
    $( A useful inference for substituting definitions into an equality.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    eqeq12d $p |- ( ph -> ( A = C <-> B = D ) ) $=
      ( wceq wb eqeq12 syl2anc ) ABCHDEHBDHCEHIFGBCDEJK $.
  $}

  ${
    eqeqan12d.1 $e |- ( ph -> A = B ) $.
    eqeqan12d.2 $e |- ( ps -> C = D ) $.
    $( A useful inference for substituting definitions into an equality.  See
       also ~ eqeqan12dALT .  (Contributed by NM, 9-Aug-1994.)  (Proof
       shortened by Andrew Salmon, 25-May-2011.)  (Proof shortened by Wolf
       Lammen, 20-Nov-2019.) $)
    eqeqan12d $p |- ( ( ph /\ ps ) -> ( A = C <-> B = D ) ) $=
      ( wa wceq adantr adantl eqeq12d ) ABICDEFACDJBGKBEFJAHLM $.

    $( Alternate proof of ~ eqeqan12d .  This proof has one more step but one
       fewer essential step.  (Contributed by NM, 9-Aug-1994.)  (Proof
       shortened by Andrew Salmon, 25-May-2011.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    eqeqan12dALT $p |- ( ( ph /\ ps ) -> ( A = C <-> B = D ) ) $=
      ( wceq wb eqeq12 syl2an ) ACDIEFICEIDFIJBGHCDEFKL $.
  $}

  ${
    eqeqan12rd.1 $e |- ( ph -> A = B ) $.
    eqeqan12rd.2 $e |- ( ps -> C = D ) $.
    $( A useful inference for substituting definitions into an equality.
       (Contributed by NM, 9-Aug-1994.) $)
    eqeqan12rd $p |- ( ( ps /\ ph ) -> ( A = C <-> B = D ) ) $=
      ( wceq wb eqeqan12d ancoms ) ABCEIDFIJABCDEFGHKL $.
  $}

  $( Transitive law for class equality.  Proposition 4.7(3) of [TakeutiZaring]
     p. 13.  (Contributed by NM, 25-Jan-2004.) $)
  eqtr $p |- ( ( A = B /\ B = C ) -> A = C ) $=
    ( wceq eqeq1 biimpar ) ABDACDBCDABCEF $.

  $( A transitive law for class equality.  (Contributed by NM, 20-May-2005.)
     (Proof shortened by Andrew Salmon, 25-May-2011.) $)
  eqtr2 $p |- ( ( A = B /\ A = C ) -> B = C ) $=
    ( wceq eqcom eqtr sylanb ) ABDBADACDBCDABEBACFG $.

  $( A transitive law for class equality.  (Contributed by NM, 20-May-2005.) $)
  eqtr3 $p |- ( ( A = C /\ B = C ) -> A = B ) $=
    ( wceq eqcom eqtr sylan2b ) BCDACDCBDABDBCEACBFG $.

  ${
    eqtri.1 $e |- A = B $.
    eqtri.2 $e |- B = C $.
    $( An equality transitivity inference.  (Contributed by NM,
       26-May-1993.) $)
    eqtri $p |- A = C $=
      ( wceq eqeq2i mpbi ) ABFACFDBCAEGH $.
  $}

  ${
    eqtr2i.1 $e |- A = B $.
    eqtr2i.2 $e |- B = C $.
    $( An equality transitivity inference.  (Contributed by NM,
       21-Feb-1995.) $)
    eqtr2i $p |- C = A $=
      ( eqtri eqcomi ) ACABCDEFG $.
  $}

  ${
    eqtr3i.1 $e |- A = B $.
    eqtr3i.2 $e |- A = C $.
    $( An equality transitivity inference.  (Contributed by NM, 6-May-1994.) $)
    eqtr3i $p |- B = C $=
      ( eqcomi eqtri ) BACABDFEG $.
  $}

  ${
    eqtr4i.1 $e |- A = B $.
    eqtr4i.2 $e |- C = B $.
    $( An equality transitivity inference.  (Contributed by NM,
       26-May-1993.) $)
    eqtr4i $p |- A = C $=
      ( eqcomi eqtri ) ABCDCBEFG $.
  $}

  $( Register '=' as an equality for its type (class). $)
  $( $j equality 'wceq' from 'eqid' 'eqcomi' 'eqtri'; $)

  ${
    3eqtri.1 $e |- A = B $.
    3eqtri.2 $e |- B = C $.
    3eqtri.3 $e |- C = D $.
    $( An inference from three chained equalities.  (Contributed by NM,
       29-Aug-1993.) $)
    3eqtri $p |- A = D $=
      ( eqtri ) ABDEBCDFGHH $.

    $( An inference from three chained equalities.  (Contributed by NM,
       3-Aug-2006.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtrri $p |- D = A $=
      ( eqtri eqtr2i ) ACDABCEFHGI $.
  $}

  ${
    3eqtr2i.1 $e |- A = B $.
    3eqtr2i.2 $e |- C = B $.
    3eqtr2i.3 $e |- C = D $.
    $( An inference from three chained equalities.  (Contributed by NM,
       3-Aug-2006.) $)
    3eqtr2i $p |- A = D $=
      ( eqtr4i eqtri ) ACDABCEFHGI $.

    $( An inference from three chained equalities.  (Contributed by NM,
       3-Aug-2006.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtr2ri $p |- D = A $=
      ( eqtr4i eqtr2i ) ACDABCEFHGI $.
  $}

  ${
    3eqtr3i.1 $e |- A = B $.
    3eqtr3i.2 $e |- A = C $.
    3eqtr3i.3 $e |- B = D $.
    $( An inference from three chained equalities.  (Contributed by NM,
       6-May-1994.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtr3i $p |- C = D $=
      ( eqtr3i ) BCDABCEFHGH $.

    $( An inference from three chained equalities.  (Contributed by NM,
       15-Aug-2004.) $)
    3eqtr3ri $p |- D = C $=
      ( eqtr3i ) BDCGABCEFHH $.
  $}

  ${
    3eqtr4i.1 $e |- A = B $.
    3eqtr4i.2 $e |- C = A $.
    3eqtr4i.3 $e |- D = B $.
    $( An inference from three chained equalities.  (Contributed by NM,
       26-May-1993.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtr4i $p |- C = D $=
      ( eqtr4i ) CADFDBAGEHH $.

    $( An inference from three chained equalities.  (Contributed by NM,
       2-Sep-1995.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtr4ri $p |- D = C $=
      ( eqtr4i ) DACDBAGEHFH $.
  $}

  ${
    eqtrd.1 $e |- ( ph -> A = B ) $.
    eqtrd.2 $e |- ( ph -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM,
       21-Jun-1993.) $)
    eqtrd $p |- ( ph -> A = C ) $=
      ( wceq eqeq2d mpbid ) ABCGBDGEACDBFHI $.
  $}

  ${
    eqtr2d.1 $e |- ( ph -> A = B ) $.
    eqtr2d.2 $e |- ( ph -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM,
       18-Oct-1999.) $)
    eqtr2d $p |- ( ph -> C = A ) $=
      ( eqtrd eqcomd ) ABDABCDEFGH $.
  $}

  ${
    eqtr3d.1 $e |- ( ph -> A = B ) $.
    eqtr3d.2 $e |- ( ph -> A = C ) $.
    $( An equality transitivity equality deduction.  (Contributed by NM,
       18-Jul-1995.) $)
    eqtr3d $p |- ( ph -> B = C ) $=
      ( eqcomd eqtrd ) ACBDABCEGFH $.
  $}

  ${
    eqtr4d.1 $e |- ( ph -> A = B ) $.
    eqtr4d.2 $e |- ( ph -> C = B ) $.
    $( An equality transitivity equality deduction.  (Contributed by NM,
       18-Jul-1995.) $)
    eqtr4d $p |- ( ph -> A = C ) $=
      ( eqcomd eqtrd ) ABCDEADCFGH $.
  $}

  ${
    3eqtrd.1 $e |- ( ph -> A = B ) $.
    3eqtrd.2 $e |- ( ph -> B = C ) $.
    3eqtrd.3 $e |- ( ph -> C = D ) $.
    $( A deduction from three chained equalities.  (Contributed by NM,
       29-Oct-1995.) $)
    3eqtrd $p |- ( ph -> A = D ) $=
      ( eqtrd ) ABCEFACDEGHII $.

    $( A deduction from three chained equalities.  (Contributed by NM,
       4-Aug-2006.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtrrd $p |- ( ph -> D = A ) $=
      ( eqtrd eqtr2d ) ABDEABCDFGIHJ $.
  $}

  ${
    3eqtr2d.1 $e |- ( ph -> A = B ) $.
    3eqtr2d.2 $e |- ( ph -> C = B ) $.
    3eqtr2d.3 $e |- ( ph -> C = D ) $.
    $( A deduction from three chained equalities.  (Contributed by NM,
       4-Aug-2006.) $)
    3eqtr2d $p |- ( ph -> A = D ) $=
      ( eqtr4d eqtrd ) ABDEABCDFGIHJ $.

    $( A deduction from three chained equalities.  (Contributed by NM,
       4-Aug-2006.) $)
    3eqtr2rd $p |- ( ph -> D = A ) $=
      ( eqtr4d eqtr2d ) ABDEABCDFGIHJ $.
  $}

  ${
    3eqtr3d.1 $e |- ( ph -> A = B ) $.
    3eqtr3d.2 $e |- ( ph -> A = C ) $.
    3eqtr3d.3 $e |- ( ph -> B = D ) $.
    $( A deduction from three chained equalities.  (Contributed by NM,
       4-Aug-1995.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtr3d $p |- ( ph -> C = D ) $=
      ( eqtr3d ) ACDEABCDFGIHI $.

    $( A deduction from three chained equalities.  (Contributed by NM,
       14-Jan-2006.) $)
    3eqtr3rd $p |- ( ph -> D = C ) $=
      ( eqtr3d ) ACEDHABCDFGII $.
  $}

  ${
    3eqtr4d.1 $e |- ( ph -> A = B ) $.
    3eqtr4d.2 $e |- ( ph -> C = A ) $.
    3eqtr4d.3 $e |- ( ph -> D = B ) $.
    $( A deduction from three chained equalities.  (Contributed by NM,
       4-Aug-1995.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    3eqtr4d $p |- ( ph -> C = D ) $=
      ( eqtr4d ) ADBEGAECBHFII $.

    $( A deduction from three chained equalities.  (Contributed by NM,
       21-Sep-1995.) $)
    3eqtr4rd $p |- ( ph -> D = C ) $=
      ( eqtr4d ) AEBDAECBHFIGI $.
  $}

  ${
    syl5eq.1 $e |- A = B $.
    syl5eq.2 $e |- ( ph -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM,
       21-Jun-1993.) $)
    syl5eq $p |- ( ph -> A = C ) $=
      ( wceq a1i eqtrd ) ABCDBCGAEHFI $.
  $}

  ${
    syl5req.1 $e |- A = B $.
    syl5req.2 $e |- ( ph -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM,
       29-Mar-1998.) $)
    syl5req $p |- ( ph -> C = A ) $=
      ( syl5eq eqcomd ) ABDABCDEFGH $.
  $}

  ${
    syl5eqr.1 $e |- B = A $.
    syl5eqr.2 $e |- ( ph -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM, 5-Aug-1993.) $)
    syl5eqr $p |- ( ph -> A = C ) $=
      ( eqcomi syl5eq ) ABCDCBEGFH $.
  $}

  ${
    syl5reqr.1 $e |- B = A $.
    syl5reqr.2 $e |- ( ph -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM,
       29-Mar-1998.) $)
    syl5reqr $p |- ( ph -> C = A ) $=
      ( eqcomi syl5req ) ABCDCBEGFH $.
  $}

  ${
    syl6eq.1 $e |- ( ph -> A = B ) $.
    syl6eq.2 $e |- B = C $.
    $( An equality transitivity deduction.  (Contributed by NM,
       21-Jun-1993.) $)
    syl6eq $p |- ( ph -> A = C ) $=
      ( wceq a1i eqtrd ) ABCDECDGAFHI $.
  $}

  ${
    syl6req.1 $e |- ( ph -> A = B ) $.
    syl6req.2 $e |- B = C $.
    $( An equality transitivity deduction.  (Contributed by NM,
       29-Mar-1998.) $)
    syl6req $p |- ( ph -> C = A ) $=
      ( syl6eq eqcomd ) ABDABCDEFGH $.
  $}

  ${
    syl6eqr.1 $e |- ( ph -> A = B ) $.
    syl6eqr.2 $e |- C = B $.
    $( An equality transitivity deduction.  (Contributed by NM,
       21-Jun-1993.) $)
    syl6eqr $p |- ( ph -> A = C ) $=
      ( eqcomi syl6eq ) ABCDEDCFGH $.
  $}

  ${
    syl6reqr.1 $e |- ( ph -> A = B ) $.
    syl6reqr.2 $e |- C = B $.
    $( An equality transitivity deduction.  (Contributed by NM,
       29-Mar-1998.) $)
    syl6reqr $p |- ( ph -> C = A ) $=
      ( eqcomi syl6req ) ABCDEDCFGH $.
  $}

  ${
    sylan9eq.1 $e |- ( ph -> A = B ) $.
    sylan9eq.2 $e |- ( ps -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM, 8-May-1994.)
       (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    sylan9eq $p |- ( ( ph /\ ps ) -> A = C ) $=
      ( wceq eqtr syl2an ) ACDHDEHCEHBFGCDEIJ $.
  $}

  ${
    sylan9req.1 $e |- ( ph -> B = A ) $.
    sylan9req.2 $e |- ( ps -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM,
       23-Jun-2007.) $)
    sylan9req $p |- ( ( ph /\ ps ) -> A = C ) $=
      ( eqcomd sylan9eq ) ABCDEADCFHGI $.
  $}

  ${
    sylan9eqr.1 $e |- ( ph -> A = B ) $.
    sylan9eqr.2 $e |- ( ps -> B = C ) $.
    $( An equality transitivity deduction.  (Contributed by NM, 8-May-1994.) $)
    sylan9eqr $p |- ( ( ps /\ ph ) -> A = C ) $=
      ( wceq sylan9eq ancoms ) ABCEHABCDEFGIJ $.
  $}

  ${
    3eqtr3g.1 $e |- ( ph -> A = B ) $.
    3eqtr3g.2 $e |- A = C $.
    3eqtr3g.3 $e |- B = D $.
    $( A chained equality inference, useful for converting from definitions.
       (Contributed by NM, 15-Nov-1994.) $)
    3eqtr3g $p |- ( ph -> C = D ) $=
      ( syl5eqr syl6eq ) ADCEADBCGFIHJ $.
  $}

  ${
    3eqtr3a.1 $e |- A = B $.
    3eqtr3a.2 $e |- ( ph -> A = C ) $.
    3eqtr3a.3 $e |- ( ph -> B = D ) $.
    $( A chained equality inference, useful for converting from definitions.
       (Contributed by Mario Carneiro, 6-Nov-2015.) $)
    3eqtr3a $p |- ( ph -> C = D ) $=
      ( syl5eq eqtr3d ) ABDEGABCEFHIJ $.
  $}

  ${
    3eqtr4g.1 $e |- ( ph -> A = B ) $.
    3eqtr4g.2 $e |- C = A $.
    3eqtr4g.3 $e |- D = B $.
    $( A chained equality inference, useful for converting to definitions.
       (Contributed by NM, 21-Jun-1993.) $)
    3eqtr4g $p |- ( ph -> C = D ) $=
      ( syl5eq syl6eqr ) ADCEADBCGFIHJ $.
  $}

  ${
    3eqtr4a.1 $e |- A = B $.
    3eqtr4a.2 $e |- ( ph -> C = A ) $.
    3eqtr4a.3 $e |- ( ph -> D = B ) $.
    $( A chained equality inference, useful for converting to definitions.
       (Contributed by NM, 2-Feb-2007.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    3eqtr4a $p |- ( ph -> C = D ) $=
      ( syl6eq eqtr4d ) ADCEADBCGFIHJ $.
  $}

  ${
    eq2tr.1 $e |- ( A = C -> D = F ) $.
    eq2tr.2 $e |- ( B = D -> C = G ) $.
    $( A compound transitive inference for class equality.  (Contributed by NM,
       22-Jan-2004.) $)
    eq2tri $p |- ( ( A = C /\ B = F ) <-> ( B = D /\ A = G ) ) $=
      ( wceq wa ancom eqeq2d pm5.32i 3bitr3i ) ACIZBDIZJPOJOBEIZJPAFIZJOPKOPQOD
      EBGLMPORPCFAHLMN $.
  $}

  ${
    $d z x $.  $d z y $.  $d z A $.
    $( Weaker version of ~ eleq1 (but more general than ~ elequ1 ) not
       depending on ~ ax-ext nor ~ df-cleq .  (Contributed by BJ,
       24-Jun-2019.) $)
    eleq1w $p |- ( x = y -> ( x e. A <-> y e. A ) ) $=
      ( vz weq cv wcel wa wex equequ2 anbi1d exbidv df-clel 3bitr4g ) ABEZDAEZD
      FCGZHZDIDBEZQHZDIAFZCGBFZCGORTDOPSQABDJKLDUACMDUBCMN $.

    $( Weaker version of ~ eleq2 (but more general than ~ elequ2 ) not
       depending on ~ ax-ext nor ~ df-cleq .  (Contributed by BJ,
       29-Sep-2019.) $)
    eleq2w $p |- ( x = y -> ( A e. x <-> A e. y ) ) $=
      ( vz cv wceq wcel wa wex elequ2 anbi2d exbidv df-clel 3bitr4g ) AEZBEZFZD
      EZCFZROGZHZDISRPGZHZDICOGCPGQUAUCDQTUBSABDJKLDCOMDCPMN $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.
    eleq1d.1 $e |- ( ph -> A = B ) $.
    $( Deduction from equality to equivalence of membership.  (Contributed by
       NM, 21-Jun-1993.)  Allow shortening of ~ eleq1 .  (Revised by Wolf
       Lammen, 20-Nov-2019.) $)
    eleq1d $p |- ( ph -> ( A e. C <-> B e. C ) ) $=
      ( vx cv wceq wcel wa wex eqeq2d anbi1d exbidv df-clel 3bitr4g ) AFGZBHZQD
      IZJZFKQCHZSJZFKBDICDIATUBFARUASABCQELMNFBDOFCDOP $.

    $( Deduction from equality to equivalence of membership.  (Contributed by
       NM, 27-Dec-1993.)  Reduce dependencies on axioms.  (Revised by Wolf
       Lammen, 5-Dec-2019.) $)
    eleq2d $p |- ( ph -> ( C e. A <-> C e. B ) ) $=
      ( vx cv wceq wa wex wb wal dfcleq sylib anbi2 alexbii syl df-clel 3bitr4g
      wcel ) AFGZDHZUABTZIZFJZUBUACTZIZFJZDBTDCTAUCUFKZFLZUEUHKABCHUJEFBCMNUIUD
      UGFUCUFUBOPQFDBRFDCRS $.

    $( Alternate proof of ~ eleq2d , shorter at the expense of using more
       axioms.  (Contributed by NM, 27-Dec-1993.)  (Revised by Wolf Lammen,
       20-Nov-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    eleq2dALT $p |- ( ph -> ( C e. A <-> C e. B ) ) $=
      ( vx cv wceq wcel wa wex wal dfcleq 19.21bi anbi2d exbidv df-clel 3bitr4g
      wb sylib ) AFGZDHZUABIZJZFKUBUACIZJZFKDBIDCIAUDUFFAUCUEUBAUCUESZFABCHUGFL
      EFBCMTNOPFDBQFDCQR $.
  $}

  $( Equality implies equivalence of membership.  (Contributed by NM,
     26-May-1993.)  (Proof shortened by Wolf Lammen, 20-Nov-2019.) $)
  eleq1 $p |- ( A = B -> ( A e. C <-> B e. C ) ) $=
    ( wceq id eleq1d ) ABDZABCGEF $.

  $( Equality implies equivalence of membership.  (Contributed by NM,
     26-May-1993.)  (Proof shortened by Wolf Lammen, 20-Nov-2019.) $)
  eleq2 $p |- ( A = B -> ( C e. A <-> C e. B ) ) $=
    ( wceq id eleq2d ) ABDZABCGEF $.

  $( Equality implies equivalence of membership.  (Contributed by NM,
     31-May-1999.) $)
  eleq12 $p |- ( ( A = B /\ C = D ) -> ( A e. C <-> B e. D ) ) $=
    ( wceq wcel eleq1 eleq2 sylan9bb ) ABEACFBCFCDEBDFABCGCDBHI $.

  ${
    eleq1i.1 $e |- A = B $.
    $( Inference from equality to equivalence of membership.  (Contributed by
       NM, 21-Jun-1993.) $)
    eleq1i $p |- ( A e. C <-> B e. C ) $=
      ( wceq wcel wb eleq1 ax-mp ) ABEACFBCFGDABCHI $.

    $( Inference from equality to equivalence of membership.  (Contributed by
       NM, 26-May-1993.) $)
    eleq2i $p |- ( C e. A <-> C e. B ) $=
      ( wceq wcel wb eleq2 ax-mp ) ABECAFCBFGDABCHI $.

    ${
      eleq12i.2 $e |- C = D $.
      $( Inference from equality to equivalence of membership.  (Contributed by
         NM, 31-May-1994.) $)
      eleq12i $p |- ( A e. C <-> B e. D ) $=
        ( wcel eleq2i eleq1i bitri ) ACGADGBDGCDAFHABDEIJ $.

      $( Theorem eleq12i is the congruence law for elementhood. $)
      $( $j congruence 'eleq12i'; $)
    $}
  $}

  ${
    eleq12d.1 $e |- ( ph -> A = B ) $.
    eleq12d.2 $e |- ( ph -> C = D ) $.
    $( Deduction from equality to equivalence of membership.  (Contributed by
       NM, 31-May-1994.) $)
    eleq12d $p |- ( ph -> ( A e. C <-> B e. D ) ) $=
      ( wcel eleq2d eleq1d bitrd ) ABDHBEHCEHADEBGIABCEFJK $.
  $}

  $( A transitive-type law relating membership and equality.  (Contributed by
     NM, 9-Apr-1994.) $)
  eleq1a $p |- ( A e. B -> ( C = A -> C e. B ) ) $=
    ( wceq wcel eleq1 biimprcd ) CADCBEABECABFG $.

  ${
    eqeltr.1 $e |- A = B $.
    eqeltr.2 $e |- B e. C $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       NM, 21-Jun-1993.) $)
    eqeltri $p |- A e. C $=
      ( wcel eleq1i mpbir ) ACFBCFEABCDGH $.
  $}

  ${
    eqeltrr.1 $e |- A = B $.
    eqeltrr.2 $e |- A e. C $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       NM, 21-Jun-1993.) $)
    eqeltrri $p |- B e. C $=
      ( eqcomi eqeltri ) BACABDFEG $.
  $}

  ${
    eleqtr.1 $e |- A e. B $.
    eleqtr.2 $e |- B = C $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       NM, 15-Jul-1993.) $)
    eleqtri $p |- A e. C $=
      ( wcel eleq2i mpbi ) ABFACFDBCAEGH $.
  $}

  ${
    eleqtrr.1 $e |- A e. B $.
    eleqtrr.2 $e |- C = B $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       NM, 15-Jul-1993.) $)
    eleqtrri $p |- A e. C $=
      ( eqcomi eleqtri ) ABCDCBEFG $.
  $}

  ${
    eqeltrd.1 $e |- ( ph -> A = B ) $.
    eqeltrd.2 $e |- ( ph -> B e. C ) $.
    $( Substitution of equal classes into membership relation, deduction form.
       (Contributed by Raph Levien, 10-Dec-2002.) $)
    eqeltrd $p |- ( ph -> A e. C ) $=
      ( wcel eleq1d mpbird ) ABDGCDGFABCDEHI $.
  $}

  ${
    eqeltrrd.1 $e |- ( ph -> A = B ) $.
    eqeltrrd.2 $e |- ( ph -> A e. C ) $.
    $( Deduction that substitutes equal classes into membership.  (Contributed
       by NM, 14-Dec-2004.) $)
    eqeltrrd $p |- ( ph -> B e. C ) $=
      ( eqcomd eqeltrd ) ACBDABCEGFH $.
  $}

  ${
    eleqtrd.1 $e |- ( ph -> A e. B ) $.
    eleqtrd.2 $e |- ( ph -> B = C ) $.
    $( Deduction that substitutes equal classes into membership.  (Contributed
       by NM, 14-Dec-2004.) $)
    eleqtrd $p |- ( ph -> A e. C ) $=
      ( wcel eleq2d mpbid ) ABCGBDGEACDBFHI $.
  $}

  ${
    eleqtrrd.1 $e |- ( ph -> A e. B ) $.
    eleqtrrd.2 $e |- ( ph -> C = B ) $.
    $( Deduction that substitutes equal classes into membership.  (Contributed
       by NM, 14-Dec-2004.) $)
    eleqtrrd $p |- ( ph -> A e. C ) $=
      ( eqcomd eleqtrd ) ABCDEADCFGH $.
  $}

  ${
    syl5eqel.1 $e |- A = B $.
    syl5eqel.2 $e |- ( ph -> B e. C ) $.
    $( A membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl5eqel $p |- ( ph -> A e. C ) $=
      ( wceq a1i eqeltrd ) ABCDBCGAEHFI $.
  $}

  ${
    syl5eqelr.1 $e |- B = A $.
    syl5eqelr.2 $e |- ( ph -> B e. C ) $.
    $( A membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl5eqelr $p |- ( ph -> A e. C ) $=
      ( eqcomi syl5eqel ) ABCDCBEGFH $.
  $}

  ${
    syl5eleq.1 $e |- A e. B $.
    syl5eleq.2 $e |- ( ph -> B = C ) $.
    $( A membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl5eleq $p |- ( ph -> A e. C ) $=
      ( wcel a1i eleqtrd ) ABCDBCGAEHFI $.
  $}

  ${
    syl5eleqr.1 $e |- A e. B $.
    syl5eleqr.2 $e |- ( ph -> C = B ) $.
    $( A membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl5eleqr $p |- ( ph -> A e. C ) $=
      ( eqcomd syl5eleq ) ABCDEADCFGH $.
  $}

  ${
    syl6eqel.1 $e |- ( ph -> A = B ) $.
    syl6eqel.2 $e |- B e. C $.
    $( A membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl6eqel $p |- ( ph -> A e. C ) $=
      ( wcel a1i eqeltrd ) ABCDECDGAFHI $.
  $}

  ${
    syl6eqelr.1 $e |- ( ph -> B = A ) $.
    syl6eqelr.2 $e |- B e. C $.
    $( A membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl6eqelr $p |- ( ph -> A e. C ) $=
      ( eqcomd syl6eqel ) ABCDACBEGFH $.
  $}

  ${
    syl6eleq.1 $e |- ( ph -> A e. B ) $.
    syl6eleq.2 $e |- B = C $.
    $( A membership and equality inference.  (Contributed by NM,
       4-Jan-2006.) $)
    syl6eleq $p |- ( ph -> A e. C ) $=
      ( wceq a1i eleqtrd ) ABCDECDGAFHI $.
  $}

  ${
    syl6eleqr.1 $e |- ( ph -> A e. B ) $.
    syl6eleqr.2 $e |- C = B $.
    $( A membership and equality inference.  (Contributed by NM,
       24-Apr-2005.) $)
    syl6eleqr $p |- ( ph -> A e. C ) $=
      ( eqcomi syl6eleq ) ABCDEDCFGH $.
  $}

  ${
    3eltr3.1 $e |- A e. B $.
    3eltr3.2 $e |- A = C $.
    3eltr3.3 $e |- B = D $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    3eltr3i $p |- C e. D $=
      ( eleqtri eqeltrri ) ACDFABDEGHI $.
  $}

  ${
    3eltr4.1 $e |- A e. B $.
    3eltr4.2 $e |- C = A $.
    3eltr4.3 $e |- D = B $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    3eltr4i $p |- C e. D $=
      ( eleqtrri eqeltri ) CADFABDEGHI $.
  $}

  ${
    3eltr3d.1 $e |- ( ph -> A e. B ) $.
    3eltr3d.2 $e |- ( ph -> A = C ) $.
    3eltr3d.3 $e |- ( ph -> B = D ) $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    3eltr3d $p |- ( ph -> C e. D ) $=
      ( eleqtrd eqeltrrd ) ABDEGABCEFHIJ $.
  $}

  ${
    3eltr4d.1 $e |- ( ph -> A e. B ) $.
    3eltr4d.2 $e |- ( ph -> C = A ) $.
    3eltr4d.3 $e |- ( ph -> D = B ) $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    3eltr4d $p |- ( ph -> C e. D ) $=
      ( eleqtrrd eqeltrd ) ADBEGABCEFHIJ $.
  $}

  ${
    3eltr3g.1 $e |- ( ph -> A e. B ) $.
    3eltr3g.2 $e |- A = C $.
    3eltr3g.3 $e |- B = D $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       Mario Carneiro, 6-Jan-2017.)  (Proof shortened by Wolf Lammen,
       23-Nov-2019.) $)
    3eltr3g $p |- ( ph -> C e. D ) $=
      ( syl5eqelr syl6eleq ) ADCEADBCGFIHJ $.
  $}

  ${
    3eltr4g.1 $e |- ( ph -> A e. B ) $.
    3eltr4g.2 $e |- C = A $.
    3eltr4g.3 $e |- D = B $.
    $( Substitution of equal classes into membership relation.  (Contributed by
       Mario Carneiro, 6-Jan-2017.)  (Proof shortened by Wolf Lammen,
       23-Nov-2019.) $)
    3eltr4g $p |- ( ph -> C e. D ) $=
      ( syl5eqel syl6eleqr ) ADCEADBCGFIHJ $.
  $}

  ${
    eleq2s.1 $e |- ( A e. B -> ph ) $.
    eleq2s.2 $e |- C = B $.
    $( Substitution of equal classes into a membership antecedent.
       (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) $)
    eleq2s $p |- ( A e. C -> ph ) $=
      ( wcel eleq2i sylbi ) BDGBCGADCBFHEI $.
  $}

  ${
    eqneltrd.1 $e |- ( ph -> A = B ) $.
    eqneltrd.2 $e |- ( ph -> -. B e. C ) $.
    $( If a class is not an element of another class, an equal class is also
       not an element.  Deduction form.  (Contributed by David Moews,
       1-May-2017.) $)
    eqneltrd $p |- ( ph -> -. A e. C ) $=
      ( wcel eleq1d mtbird ) ABDGCDGFABCDEHI $.
  $}

  ${
    eqneltrrd.1 $e |- ( ph -> A = B ) $.
    eqneltrrd.2 $e |- ( ph -> -. A e. C ) $.
    $( If a class is not an element of another class, an equal class is also
       not an element.  Deduction form.  (Contributed by David Moews,
       1-May-2017.)  (Proof shortened by Wolf Lammen, 13-Nov-2019.) $)
    eqneltrrd $p |- ( ph -> -. B e. C ) $=
      ( eqcomd eqneltrd ) ACBDABCEGFH $.
  $}

  ${
    neleqtrd.1 $e |- ( ph -> -. C e. A ) $.
    neleqtrd.2 $e |- ( ph -> A = B ) $.
    $( If a class is not an element of another class, it is also not an element
       of an equal class.  Deduction form.  (Contributed by David Moews,
       1-May-2017.) $)
    neleqtrd $p |- ( ph -> -. C e. B ) $=
      ( wcel eleq2d mtbid ) ADBGDCGEABCDFHI $.
  $}

  ${
    neleqtrrd.1 $e |- ( ph -> -. C e. B ) $.
    neleqtrrd.2 $e |- ( ph -> A = B ) $.
    $( If a class is not an element of another class, it is also not an element
       of an equal class.  Deduction form.  (Contributed by David Moews,
       1-May-2017.)  (Proof shortened by Wolf Lammen, 13-Nov-2019.) $)
    neleqtrrd $p |- ( ph -> -. C e. A ) $=
      ( eqcomd neleqtrd ) ACBDEABCFGH $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    cleqh.1 $e |- ( y e. A -> A. x y e. A ) $.
    cleqh.2 $e |- ( y e. B -> A. x y e. B ) $.
    $( Establish equality between classes, using bound-variable hypotheses
       instead of distinct variable conditions.  See also ~ cleqf .
       (Contributed by NM, 26-May-1993.)  (Proof shortened by Wolf Lammen,
       14-Nov-2019.)  Remove dependency on ~ ax-13 .  (Revised by BJ,
       30-Nov-2020.) $)
    cleqh $p |- ( A = B <-> A. x ( x e. A <-> x e. B ) ) $=
      ( wceq cv wcel wal dfcleq nfv nf5i nfbi weq eleq1 bibi12d cbvalv1 bitr4i
      wb ) CDGBHZCIZUADIZTZBJAHZCIZUEDIZTZAJBCDKUHUDABUHBLUBUCAUBAEMUCAFMNABOUF
      UBUGUCUEUACPUEUADPQRS $.
  $}

  $( A way of showing two classes are not equal.  (Contributed by NM,
     1-Apr-1997.) $)
  nelneq $p |- ( ( A e. C /\ -. B e. C ) -> -. A = B ) $=
    ( wcel wceq eleq1 biimpcd con3dimp ) ACDZABEZBCDZJIKABCFGH $.

  $( A way of showing two classes are not equal.  (Contributed by NM,
     12-Jan-2002.) $)
  nelneq2 $p |- ( ( A e. B /\ -. A e. C ) -> -. B = C ) $=
    ( wcel wceq eleq2 biimpcd con3dimp ) ABDZBCEZACDZJIKBCAFGH $.

  ${
    $d x y $.  $d y A $.
    $( Lemma for ~ eqsb3 .  (Contributed by Rodolfo Medina, 28-Apr-2010.)
       (Proof shortened by Andrew Salmon, 14-Jun-2011.) $)
    eqsb3lem $p |- ( [ x / y ] y = A <-> x = A ) $=
      ( cv wceq nfv eqeq1 sbie ) BDZCEADZCEZBAKBFIJCGH $.
  $}

  ${
    $d y A $.  $d w y $.  $d w A $.  $d x w $.
    $( Substitution applied to an atomic wff (class version of ~ equsb3 ).
       (Contributed by Rodolfo Medina, 28-Apr-2010.) $)
    eqsb3 $p |- ( [ x / y ] y = A <-> x = A ) $=
      ( vw cv wceq wsb eqsb3lem sbbii nfv sbco2 3bitr3i ) BECFZBDGZDAGDECFZDAGM
      BAGAECFNODADBCHIMBADMDJKADCHL $.
  $}

  ${
    $d y A $.  $d w y $.  $d w A $.  $d w x $.
    $( Substitution applied to an atomic wff (class version of ~ elsb3 ).
       (Contributed by Rodolfo Medina, 28-Apr-2010.)  (Proof shortened by
       Andrew Salmon, 14-Jun-2011.) $)
    clelsb3 $p |- ( [ x / y ] y e. A <-> x e. A ) $=
      ( vw cv wcel wsb nfv sbco2 eleq1 sbie sbbii 3bitr3i ) DEZCFZDBGZBAGODAGBE
      ZCFZBAGAEZCFZODABOBHIPRBAORDBRDHNQCJKLOTDATDHNSCJKM $.
  $}

  ${
    hbxfr.1 $e |- A = B $.
    hbxfr.2 $e |- ( y e. B -> A. x y e. B ) $.
    $( A utility lemma to transfer a bound-variable hypothesis builder into a
       definition.  See ~ hbxfrbi for equivalence version.  (Contributed by NM,
       21-Aug-2007.) $)
    hbxfreq $p |- ( y e. A -> A. x y e. A ) $=
      ( cv wcel eleq2i hbxfrbi ) BGZCHKDHACDKEIFJ $.
  $}

  ${
    $d y A $.  $d x z $.
    hblem.1 $e |- ( y e. A -> A. x y e. A ) $.
    $( Change the free variable of a hypothesis builder.  Lemma for ~ nfcrii .
       (Contributed by NM, 21-Jun-1993.)  (Revised by Andrew Salmon,
       11-Jul-2011.) $)
    hblem $p |- ( z e. A -> A. x z e. A ) $=
      ( cv wcel wsb wal hbsb clelsb3 albii 3imtr3i ) BFDGZBCHZOAICFDGZPAINBCAEJ
      CBDKZOPAQLM $.
  $}

  ${
    $d x A y $.  $d ph y $.
    $( Equality of a class variable and a class abstraction (also called a
       class builder).  Theorem 5.1 of [Quine] p. 34.  This theorem shows the
       relationship between expressions with class abstractions and expressions
       with class variables.  Note that ~ abbi and its relatives are among
       those useful for converting theorems with class variables to equivalent
       theorems with wff variables, by first substituting a class abstraction
       for each class variable.

       Class variables can always be eliminated from a theorem to result in an
       equivalent theorem with wff variables, and vice-versa.  The idea is
       roughly as follows.  To convert a theorem with a wff variable ` ph `
       (that has a free variable ` x ` ) to a theorem with a class variable
       ` A ` , we substitute ` x e. A ` for ` ph ` throughout and simplify,
       where ` A ` is a new class variable not already in the wff.  An example
       is the conversion of ~ zfauscl to ~ inex1 (look at the instance of
       ~ zfauscl that occurs in the proof of ~ inex1 ).  Conversely, to convert
       a theorem with a class variable ` A ` to one with ` ph ` , we substitute
       ` { x | ph } ` for ` A ` throughout and simplify, where ` x ` and ` ph `
       are new setvar and wff variables not already in the wff.  Examples
       include ~ dfsymdif2 and ~ cp ; the latter derives a formula containing
       wff variables from substitution instances of the class variables in its
       equivalent formulation ~ cplem2 .  For more information on class
       variables, see Quine pp. 15-21 and/or Takeuti and Zaring pp. 10-13.
       (Contributed by NM, 26-May-1993.) $)
    abeq2 $p |- ( A = { x | ph } <-> A. x ( x e. A <-> ph ) ) $=
      ( vy cab wceq cv wcel wb wal ax-5 hbab1 cleqh abid bibi2i albii bitri ) C
      ABEZFBGZCHZSRHZIZBJTAIZBJBDCRDGCHBKABDLMUBUCBUAATABNOPQ $.
  $}

  ${
    $d x A $.
    $( Equality of a class variable and a class abstraction.  Commuted form of
       ~ abeq2 .  (Contributed by NM, 20-Aug-1993.) $)
    abeq1 $p |- ( { x | ph } = A <-> A. x ( ph <-> x e. A ) ) $=
      ( cab wceq cv wcel wb wal abeq2 eqcom bicom albii 3bitr4i ) CABDZEBFCGZAH
      ZBIOCEAPHZBIABCJOCKRQBAPLMN $.
  $}

  ${
    abeq2d.1 $e |- ( ph -> A = { x | ps } ) $.
    $( Equality of a class variable and a class abstraction (deduction form of
       ~ abeq2 ).  (Contributed by NM, 16-Nov-1995.) $)
    abeq2d $p |- ( ph -> ( x e. A <-> ps ) ) $=
      ( cv wcel cab eleq2d abid syl6bb ) ACFZDGLBCHZGBADMLEIBCJK $.
  $}

  ${
    abeq2i.1 $e |- A = { x | ph } $.
    $( Equality of a class variable and a class abstraction (inference rule).
       (Contributed by NM, 3-Apr-1996.)  (Proof shortened by Wolf Lammen,
       15-Nov-2019.) $)
    abeq2i $p |- ( x e. A <-> ph ) $=
      ( cv wcel wb wtru cab wceq a1i abeq2d trud ) BECFAGHABCCABIJHDKLM $.
  $}

  ${
    abeq1i.1 $e |- { x | ph } = A $.
    $( Equality of a class variable and a class abstraction (inference rule).
       (Contributed by NM, 31-Jul-1994.)  (Proof shortened by Wolf Lammen,
       15-Nov-2019.) $)
    abeq1i $p |- ( ph <-> x e. A ) $=
      ( cv wcel cab eqcomi abeq2i bicomi ) BECFAABCABGCDHIJ $.
  $}

  ${
    $d ph y $.  $d ps y $.  $d x y $.
    $( Equivalent wff's correspond to equal class abstractions.  (Contributed
       by NM, 25-Nov-2013.)  (Revised by Mario Carneiro, 11-Aug-2016.)  (Proof
       shortened by Wolf Lammen, 16-Nov-2019.) $)
    abbi $p |- ( A. x ( ph <-> ps ) <-> { x | ph } = { x | ps } ) $=
      ( vy cab wceq cv wcel wb wal hbab1 cleqh abid bibi12i albii bitr2i ) ACEZ
      BCEZFCGZQHZSRHZIZCJABIZCJCDQRACDKBCDKLUBUCCTAUABACMBCMNOP $.
  $}

  ${
    $d x A $.
    abbi2i.1 $e |- ( x e. A <-> ph ) $.
    $( Equality of a class variable and a class abstraction (inference rule).
       (Contributed by NM, 26-May-1993.) $)
    abbi2i $p |- A = { x | ph } $=
      ( cab wceq cv wcel wb abeq2 mpgbir ) CABEFBGCHAIBABCJDK $.
  $}

  ${
    abbii.1 $e |- ( ph <-> ps ) $.
    $( Equivalent wff's yield equal class abstractions (inference rule).
       (Contributed by NM, 26-May-1993.) $)
    abbii $p |- { x | ph } = { x | ps } $=
      ( wb cab wceq abbi mpgbi ) ABEACFBCFGCABCHDI $.

    $( Theorem abbii is the congruence law for class abstraction. $)
    $( $j congruence 'abbii'; $)
  $}

  ${
    abbid.1 $e |- F/ x ph $.
    abbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal class abstractions (deduction rule).
       (Contributed by NM, 21-Jun-1993.)  (Revised by Mario Carneiro,
       7-Oct-2016.) $)
    abbid $p |- ( ph -> { x | ps } = { x | ch } ) $=
      ( wb wal cab wceq alrimi abbi sylib ) ABCGZDHBDICDIJANDEFKBCDLM $.
  $}

  ${
    $d x ph $.
    abbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal class abstractions (deduction rule).
       (Contributed by NM, 10-Aug-1993.) $)
    abbidv $p |- ( ph -> { x | ps } = { x | ch } ) $=
      ( nfv abbid ) ABCDADFEG $.
  $}

  ${
    $d x A $.  $d ph x $.
    abbi2dv.1 $e |- ( ph -> ( x e. A <-> ps ) ) $.
    $( Deduction from a wff to a class abstraction.  (Contributed by NM,
       9-Jul-1994.) $)
    abbi2dv $p |- ( ph -> A = { x | ps } ) $=
      ( cv wcel wb wal cab wceq alrimiv abeq2 sylibr ) ACFDGBHZCIDBCJKAOCELBCDM
      N $.
  $}

  ${
    $d x A $.  $d ph x $.
    abbi1dv.1 $e |- ( ph -> ( ps <-> x e. A ) ) $.
    $( Deduction from a wff to a class abstraction.  (Contributed by NM,
       9-Jul-1994.)  (Proof shortened by Wolf Lammen, 16-Nov-2019.) $)
    abbi1dv $p |- ( ph -> { x | ps } = A ) $=
      ( cab cv wcel bicomd abbi2dv eqcomd ) ADBCFABCDABCGDHEIJK $.
  $}

  ${
    $d x A $.
    $( Every class is equal to a class abstraction (the class of sets belonging
       to it).  Theorem 5.2 of [Quine] p. 35.  This is a generalization to
       classes of ~ cvjust .  The proof does not rely on ~ cvjust , so ~ cvjust
       could be proved as a special instance of it.  Note however that ~ abid1
       necessarily relies on ~ df-clel , whereas ~ cvjust does not.

       This theorem requires ~ ax-ext , ~ df-clab , ~ df-cleq , ~ df-clel , but
       to prove that any specific class term not containing class variables is
       a setvar or can be written as (is equal to) a class abstraction does not
       require these $a-statements.  This last fact is a metatheorem,
       consequence of the fact that the only $a-statements with typecode
       ` class ` are ~ cv , ~ cab and statements corresponding to defined class
       constructors.

       Note on the simultaneous presence in set.mm of this ~ abid1 and its
       commuted form ~ abid2 :  It is rare that two forms so closely related
       both appear in set.mm.  Indeed, such equalities are generally used in
       later proofs as parts of transitive inferences, and with the many
       variants of ~ eqtri (search for *eqtr*), it would be rare that either
       one would shorten a proof compared to the other.  There is typically a
       choice between (what we call) a "definitional form" where the shorter
       expression is on the lhs, and a "computational form" where the shorter
       expression is on the rhs.  An example is ~ df-2 versus ~ 1p1e2 .  We do
       not need ~ 1p1e2 , but because it occurs "naturally" in computations, it
       can be useful to have it directly, together with a uniform set of
       1-digit operations like ~ 1p2e3 , etc.  In most cases, we do not need
       both a definitional and a computational forms.  A definitional form
       would favor consistency with genuine definitions, while a computationa
       form is often more natural.  The situation is similar with
       biconditionals in propositional calculus: see for instance ~ pm4.24 and
       ~ anidm , while other biconditionals generally appear in a single form
       (either definitional, but more often computational).  In the present
       case, the equality is important enough that both ~ abid1 and ~ abid2 are
       in set.mm.

       (Contributed by NM, 26-Dec-1993.)  (Revised by BJ, 10-Nov-2020.) $)
    abid1 $p |- A = { x | x e. A } $=
      ( cv wcel biid abbi2i ) ACBDZABGEF $.
  $}

  ${
    $d x A $.
    $( A simplification of class abstraction.  Commuted form of ~ abid1 .  See
       comments there.  (Contributed by NM, 26-Dec-1993.) $)
    abid2 $p |- { x | x e. A } = A $=
      ( cv wcel cab abid1 eqcomi ) BACBDAEABFG $.
  $}

  ${
    $d x z $.  $d y z $.  $d ph z $.  $d ps z $.
    cbvab.1 $e |- F/ y ph $.
    cbvab.2 $e |- F/ x ps $.
    cbvab.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by Andrew Salmon, 11-Jul-2011.)  (Proof shortened by Wolf
       Lammen, 16-Nov-2019.) $)
    cbvab $p |- { x | ph } = { y | ps } $=
      ( vz cab wsb cv wcel sbco2 sbie sbbii bitr3i df-clab 3bitr4i eqriv ) HACI
      ZBDIZACHJZBDHJZHKZTLUDUALUBACDJZDHJUCACHDEMUEBDHABCDFGNOPAHCQBHDQRS $.
  $}

  ${
    $d y ph $.  $d x ps $.
    cbvabv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 26-May-1999.) $)
    cbvabv $p |- { x | ph } = { y | ps } $=
      ( nfv cbvab ) ABCDADFBCFEG $.
  $}

  ${
    $d x A y $.  $d ph y $.
    $( Membership of a class variable in a class abstraction.  (Contributed by
       NM, 23-Dec-1993.)  (Proof shortened by Wolf Lammen, 16-Nov-2019.) $)
    clelab $p |- ( A e. { x | ph } <-> E. x ( x = A /\ ph ) ) $=
      ( vy cab wcel cv wceq wa wex df-clel nfv nfsab1 weq eqeq1 sbequ12 df-clab
      nfan wsb syl6bbr anbi12d cbvex bitr4i ) CABEZFDGZCHZUEUDFZIZDJBGZCHZAIZBJ
      DCUDKUKUHBDUKDLUFUGBUFBLABDMRBDNZUJUFAUGUIUECOULAABDSUGABDPADBQTUAUBUC $.
  $}

  ${
    $d y A $.  $d y ph $.  $d x y $.
    $( Membership of a class abstraction in another class.  (Contributed by NM,
       17-Jan-2006.) $)
    clabel $p |- ( { x | ph } e. A <->
                 E. y ( y e. A /\ A. x ( x e. y <-> ph ) ) ) $=
      ( cab wcel cv wceq wa wex wb wal df-clel abeq2 anbi2ci exbii bitri ) ABEZ
      DFCGZRHZSDFZIZCJUABGSFAKBLZIZCJCRDMUBUDCTUCUAABSNOPQ $.
  $}

  ${
    $d z A $.  $d z x $.  $d z y $.
    $( The right-hand side of the second equality is a way of representing
       proper substitution of ` y ` for ` x ` into a class variable.
       (Contributed by NM, 14-Sep-2003.) $)
    sbab $p |- ( x = y -> A = { z | [ y / x ] z e. A } ) $=
      ( weq cv wcel wsb sbequ12 abbi2dv ) ABECFDGZABHCDKABIJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Class form not-free predicate
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c F/_ $.  $( Underlined not-free symbol. $)

  $( Extend wff definition to include the not-free predicate for classes. $)
  wnfc $a wff F/_ x A $.

  ${
    $d x y z $.  $d y z A $.
    $( Justification theorem for ~ df-nfc .  (Contributed by Mario Carneiro,
       13-Oct-2016.) $)
    nfcjust $p |- ( A. y F/ x y e. A <-> A. z F/ x z e. A ) $=
      ( cv wcel wnf weq nfv eleq1 nfbidf cbvalv ) BEZDFZAGCEZDFZAGBCBCHZNPAQAIM
      ODJKL $.
  $}

  ${
    $d x y $.  $d y A $.
    $( Define the not-free predicate for classes.  This is read " ` x ` is not
       free in ` A ` ".  Not-free means that the value of ` x ` cannot affect
       the value of ` A ` , e.g., any occurrence of ` x ` in ` A ` is
       effectively bound by a "for all" or something that expands to one (such
       as "there exists").  It is defined in terms of the not-free predicate
       ~ df-nf for wffs; see that definition for more information.
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    df-nfc $a |- ( F/_ x A <-> A. y F/ x y e. A ) $.

    ${
      nfci.1 $e |- F/ x y e. A $.
      $( Deduce that a class ` A ` does not have ` x ` free in it.
         (Contributed by Mario Carneiro, 11-Aug-2016.) $)
      nfci $p |- F/_ x A $=
        ( wnfc cv wcel wnf df-nfc mpgbir ) ACEBFCGAHBABCIDJ $.
    $}

    ${
      nfcii.1 $e |- ( y e. A -> A. x y e. A ) $.
      $( Deduce that a class ` A ` does not have ` x ` free in it.
         (Contributed by Mario Carneiro, 11-Aug-2016.) $)
      nfcii $p |- F/_ x A $=
        ( cv wcel nf5i nfci ) ABCBECFADGH $.
    $}

    $( Consequence of the not-free predicate.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfcr $p |- ( F/_ x A -> F/ x y e. A ) $=
      ( wnfc cv wcel wnf wal df-nfc sp sylbi ) ACDBECFAGZBHLABCILBJK $.
  $}

  ${
    $d x y z $.  $d z A $.
    nfcri.1 $e |- F/_ x A $.
    $( Consequence of the not-free predicate.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfcrii $p |- ( y e. A -> A. x y e. A ) $=
      ( vz cv wcel wnfc wnf nfcr ax-mp nf5ri hblem ) AEBCEFCGZAACHNAIDAECJKLM
      $.

    $( Consequence of the not-free predicate.  (Note that unlike ~ nfcr , this
       does not require ` y ` and ` A ` to be disjoint.)  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    nfcri $p |- F/ x y e. A $=
      ( cv wcel nfcrii nf5i ) BECFAABCDGH $.
  $}

  ${
    $d x y $.  $d y A $.
    nfcd.1 $e |- F/ y ph $.
    nfcd.2 $e |- ( ph -> F/ x y e. A ) $.
    $( Deduce that a class ` A ` does not have ` x ` free in it.  (Contributed
       by Mario Carneiro, 11-Aug-2016.) $)
    nfcd $p |- ( ph -> F/_ x A ) $=
      ( cv wcel wnf wal wnfc alrimi df-nfc sylibr ) ACGDHBIZCJBDKAOCEFLBCDMN $.
  $}

  ${
    $d x y $.  $d A y $.  $d B y $.  $d ph y $.
    nfceqdf.1 $e |- F/ x ph $.
    nfceqdf.2 $e |- ( ph -> A = B ) $.
    $( An equality theorem for effectively not free.  (Contributed by Mario
       Carneiro, 14-Oct-2016.) $)
    nfceqdf $p |- ( ph -> ( F/_ x A <-> F/_ x B ) ) $=
      ( vy cv wcel wnf wal wnfc eleq2d nfbidf albidv df-nfc 3bitr4g ) AGHZCIZBJ
      ZGKRDIZBJZGKBCLBDLATUBGASUABEACDRFMNOBGCPBGDPQ $.
  $}

  ${
    nfceqi.1 $e |- A = B $.
    $( Equality theorem for class not-free.  (Contributed by Mario Carneiro,
       11-Aug-2016.)  (Proof shortened by Wolf Lammen, 16-Nov-2019.) $)
    nfceqi $p |- ( F/_ x A <-> F/_ x B ) $=
      ( wnfc wb wtru nftru wceq a1i nfceqdf trud ) ABEACEFGABCAHBCIGDJKL $.

    ${
      nfcxfr.2 $e |- F/_ x B $.
      $( A utility lemma to transfer a bound-variable hypothesis builder into a
         definition.  (Contributed by Mario Carneiro, 11-Aug-2016.) $)
      nfcxfr $p |- F/_ x A $=
        ( wnfc nfceqi mpbir ) ABFACFEABCDGH $.
    $}

    ${
      nfcxfrd.2 $e |- ( ph -> F/_ x B ) $.
      $( A utility lemma to transfer a bound-variable hypothesis builder into a
         definition.  (Contributed by Mario Carneiro, 11-Aug-2016.) $)
      nfcxfrd $p |- ( ph -> F/_ x A ) $=
        ( wnfc nfceqi sylibr ) ABDGBCGFBCDEHI $.
    $}
  $}

  ${
    $d x y A $.
    $( If ` x ` is disjoint from ` A ` , then ` x ` is not free in ` A ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfcv $p |- F/_ x A $=
      ( vy cv wcel nfv nfci ) ACBCDBEAFG $.

    $( If ` x ` is disjoint from ` A ` , then ` x ` is not free in ` A ` .
       (Contributed by Mario Carneiro, 7-Oct-2016.) $)
    nfcvd $p |- ( ph -> F/_ x A ) $=
      ( wnfc nfcv a1i ) BCDABCEF $.
  $}

  ${
    $d x y $.  $d y A $.  $d y ph $.
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by Mario Carneiro, 11-Aug-2016.) $)
    nfab1 $p |- F/_ x { x | ph } $=
      ( vy cab nfsab1 nfci ) BCABDABCEF $.

    $( The setvar ` x ` is bound in ` F/_ x A ` .  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    nfnfc1 $p |- F/ x F/_ x A $=
      ( vy wnfc cv wcel wnf wal df-nfc nfnf1 nfal nfxfr ) ABDCEBFZAGZCHAACBINAC
      MAJKL $.
  $}

  ${
    $d w y $.  $d w A $.  $d w x $.
    clelsb3f.1 $e |- F/_ y A $.
    $( Substitution applied to an atomic wff (class version of ~ elsb3 ).
       (Contributed by Rodolfo Medina, 28-Apr-2010.)  (Proof shortened by
       Andrew Salmon, 14-Jun-2011.)  (Revised by Thierry Arnoux,
       13-Mar-2017.) $)
    clelsb3f $p |- ( [ x / y ] y e. A <-> x e. A ) $=
      ( vw cv wcel wsb nfcri sbco2 nfv eleq1 sbie sbbii 3bitr3i ) EFZCGZEBHZBAH
      QEAHBFZCGZBAHAFZCGZQEABBECDIJRTBAQTEBTEKPSCLMNQUBEAUBEKPUACLMO $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    nfab.1 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by Mario Carneiro, 11-Aug-2016.) $)
    nfab $p |- F/_ x { y | ph } $=
      ( vz cab nfsab nfci ) BEACFABCEDGH $.
  $}

  $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
     by Mario Carneiro, 14-Oct-2016.) $)
  nfaba1 $p |- F/_ x { y | A. x ph } $=
    ( wal nfa1 nfab ) ABDBCABEF $.

  ${
    $d x y $.  $d y A $.  $d y B $.
    nfeqd.1 $e |- ( ph -> F/_ x A ) $.
    $( Consequence of the not-free predicate.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfcrd $p |- ( ph -> F/ x y e. A ) $=
      ( wnfc cv wcel wnf nfcr syl ) ABDFCGDHBIEBCDJK $.

    $d y ph $.
    nfeqd.2 $e |- ( ph -> F/_ x B ) $.
    $( Hypothesis builder for equality.  (Contributed by Mario Carneiro,
       7-Oct-2016.) $)
    nfeqd $p |- ( ph -> F/ x A = B ) $=
      ( vy wceq cv wcel wb wal dfcleq nfv nfcrd nfbid nfald nfxfrd ) CDHGIZCJZS
      DJZKZGLABGCDMAUBBGAGNATUABABGCEOABGDFOPQR $.

    $( Hypothesis builder for elementhood.  (Contributed by Mario Carneiro,
       7-Oct-2016.) $)
    nfeld $p |- ( ph -> F/ x A e. B ) $=
      ( vy wcel cv wceq wa wex df-clel nfv nfcvd nfeqd nfcrd nfand nfexd nfxfrd
      ) CDHGIZCJZUADHZKZGLABGCDMAUDBGAGNAUBUCBABUACABUAOEPABGDFQRST $.
  $}

  ${
    $d x z $.  $d y z $.  $d z A $.  $d z B $.
    nfnfc.1 $e |- F/_ x A $.
    $( Hypothesis builder for ` F/_ y A ` .  (Contributed by Mario Carneiro,
       11-Aug-2016.)  Remove dependency on ~ ax-13 .  (Revised by Wolf Lammen,
       10-Dec-2019.) $)
    nfnfc $p |- F/ x F/_ y A $=
      ( vz wnfc cv wcel wnf wal df-nfc nfcr ax-mp nfnf nfal nfxfr ) BCFEGCHZBIZ
      EJABECKRAEQABACFQAIDAECLMNOP $.

    $( Alternate proof of ~ nfnfc .  Shorter but requiring more axioms.
       (Contributed by Mario Carneiro, 11-Aug-2016.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nfnfcALT $p |- F/ x F/_ y A $=
      ( vz wnfc cv wcel wnf wal df-nfc nfcri nfnf nfal nfxfr ) BCFEGCHZBIZEJABE
      CKQAEPABAECDLMNO $.

    nfeq.2 $e |- F/_ x B $.
    $( Hypothesis builder for equality.  (Contributed by NM, 21-Jun-1993.)
       (Revised by Mario Carneiro, 11-Aug-2016.)  (Proof shortened by Wolf
       Lammen, 16-Nov-2019.) $)
    nfeq $p |- F/ x A = B $=
      ( wceq wnf wtru wnfc a1i nfeqd trud ) BCFAGHABCABIHDJACIHEJKL $.

    $( Hypothesis builder for elementhood.  (Contributed by NM, 1-Aug-1993.)
       (Revised by Mario Carneiro, 11-Aug-2016.)  (Proof shortened by Wolf
       Lammen, 16-Nov-2019.) $)
    nfel $p |- F/ x A e. B $=
      ( wcel wnf wtru wnfc a1i nfeld trud ) BCFAGHABCABIHDJACIHEJKL $.
  $}

  ${
    $d x B $.
    nfeq1.1 $e |- F/_ x A $.
    $( Hypothesis builder for equality, special case.  (Contributed by Mario
       Carneiro, 10-Oct-2016.) $)
    nfeq1 $p |- F/ x A = B $=
      ( nfcv nfeq ) ABCDACEF $.

    $( Hypothesis builder for elementhood, special case.  (Contributed by Mario
       Carneiro, 10-Oct-2016.) $)
    nfel1 $p |- F/ x A e. B $=
      ( nfcv nfel ) ABCDACEF $.
  $}

  ${
    $d x A $.
    nfeq2.1 $e |- F/_ x B $.
    $( Hypothesis builder for equality, special case.  (Contributed by Mario
       Carneiro, 10-Oct-2016.) $)
    nfeq2 $p |- F/ x A = B $=
      ( nfcv nfeq ) ABCABEDF $.

    $( Hypothesis builder for elementhood, special case.  (Contributed by Mario
       Carneiro, 10-Oct-2016.) $)
    nfel2 $p |- F/ x A e. B $=
      ( nfcv nfel ) ABCABEDF $.
  $}

  ${
    $d w x $.  $d w y $.  $d w z $.  $d w A $.  $d w B $.
    drnfc1.1 $e |- ( A. x x = y -> A = B ) $.
    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       (Contributed by Mario Carneiro, 8-Oct-2016.) $)
    drnfc1 $p |- ( A. x x = y -> ( F/_ x A <-> F/_ y B ) ) $=
      ( vw weq wal cv wcel wnf wnfc eleq2d drnf1 dral2 df-nfc 3bitr4g ) ABGAHZF
      IZCJZAKZFHSDJZBKZFHACLBDLUAUCABFTUBABRCDSEMNOAFCPBFDPQ $.

    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       (Contributed by Mario Carneiro, 8-Oct-2016.) $)
    drnfc2 $p |- ( A. x x = y -> ( F/_ z A <-> F/_ z B ) ) $=
      ( vw weq wal cv wcel wnf wnfc eleq2d drnf2 dral2 df-nfc 3bitr4g ) ABHAIZG
      JZDKZCLZGITEKZCLZGICDMCEMUBUDABGUAUCABCSDETFNOPCGDQCGEQR $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.  $d z ps $.
    nfabd2.1 $e |- F/ y ph $.
    nfabd2.2 $e |- ( ( ph /\ -. A. x x = y ) -> F/ x ps ) $.
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by Mario Carneiro, 8-Oct-2016.) $)
    nfabd2 $p |- ( ph -> F/_ x { y | ps } ) $=
      ( vz weq wal cab wnfc wn wa nfv cv wcel wsb df-clab nfnae nfan nfsbd nfcd
      nfxfrd ex nfab1 eqidd drnfc1 mpbiri pm2.61d2 ) ACDHCIZCBDJZKZAUJLZULAUMMZ
      CGUKUNGNGOUKPBDGQUNCBGDRUNBDGCAUMDECDDSTFUAUCUBUDUJULDUKKBDUECDUKUKUJUKUF
      UGUHUI $.
  $}

  ${
    nfabd.1 $e |- F/ y ph $.
    nfabd.2 $e |- ( ph -> F/ x ps ) $.
    $( Bound-variable hypothesis builder for a class abstraction.  (Contributed
       by Mario Carneiro, 8-Oct-2016.) $)
    nfabd $p |- ( ph -> F/_ x { y | ps } ) $=
      ( wnf weq wal wn adantr nfabd2 ) ABCDEABCGCDHCIJFKL $.
  $}

  ${
    $d w x $.  $d w y $.  $d w z $.  $d w A $.  $d w B $.  $d w ph $.
    dvelimdc.1 $e |- F/ x ph $.
    dvelimdc.2 $e |- F/ z ph $.
    dvelimdc.3 $e |- ( ph -> F/_ x A ) $.
    dvelimdc.4 $e |- ( ph -> F/_ z B ) $.
    dvelimdc.5 $e |- ( ph -> ( z = y -> A = B ) ) $.
    $( Deduction form of ~ dvelimc .  (Contributed by Mario Carneiro,
       8-Oct-2016.) $)
    dvelimdc $p |- ( ph -> ( -. A. x x = y -> F/_ x B ) ) $=
      ( vw weq wal wn wnfc wa nfv wcel nfcrd cv wnf wceq wb eleq2 syl6 dvelimdf
      imp nfcd ex ) ABCMBNOZBFPAUKQZBLFULLRAUKLUAZFSZBUBAUMESZUNBCDGHABLEITADLF
      JTADCMEFUCUOUNUDKEFUMUEUFUGUHUIUJ $.
  $}

  ${
    dvelimc.1 $e |- F/_ x A $.
    dvelimc.2 $e |- F/_ z B $.
    dvelimc.3 $e |- ( z = y -> A = B ) $.
    $( Version of ~ dvelim for classes.  (Contributed by Mario Carneiro,
       8-Oct-2016.) $)
    dvelimc $p |- ( -. A. x x = y -> F/_ x B ) $=
      ( weq wal wn wnfc wi wtru nftru a1i wceq dvelimdc trud ) ABIAJKAELMNABCDE
      AOCOADLNFPCELNGPCBIDEQMNHPRS $.
  $}

  ${
    $d x z $.  $d y z $.
    $( If ` x ` and ` y ` are distinct, then ` x ` is not free in ` y ` .
       (Contributed by Mario Carneiro, 8-Oct-2016.) $)
    nfcvf $p |- ( -. A. x x = y -> F/_ x y ) $=
      ( vz cv nfcv weq id dvelimc ) ABCCDZBDZAIECJECBFGH $.

    $( If ` x ` and ` y ` are distinct, then ` y ` is not free in ` x ` .
       (Contributed by Mario Carneiro, 5-Dec-2016.) $)
    nfcvf2 $p |- ( -. A. x x = y -> F/_ y x ) $=
      ( cv wnfc nfcvf naecoms ) BACDBABAEF $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    cleqf.1 $e |- F/_ x A $.
    cleqf.2 $e |- F/_ x B $.
    $( Establish equality between classes, using bound-variable hypotheses
       instead of distinct variable conditions.  See also ~ cleqh .
       (Contributed by NM, 26-May-1993.)  (Revised by Mario Carneiro,
       7-Oct-2016.)  (Proof shortened by Wolf Lammen, 17-Nov-2019.) $)
    cleqf $p |- ( A = B <-> A. x ( x e. A <-> x e. B ) ) $=
      ( vy nfcrii cleqh ) AFBCAFBDGAFCEGH $.
  $}

  ${
    abid2f.1 $e |- F/_ x A $.
    $( A simplification of class abstraction.  Theorem 5.2 of [Quine] p. 35.
       (Contributed by NM, 5-Sep-2011.)  (Revised by Mario Carneiro,
       7-Oct-2016.)  (Proof shortened by Wolf Lammen, 17-Nov-2019.) $)
    abid2f $p |- { x | x e. A } = A $=
      ( cv wcel cab wceq wb nfab1 cleqf abid mpgbir ) ADZBEZAFZBGMOENHAAOBNAICJ
      NAKL $.
  $}

  ${
    $d x y $.  $d y A $.  $d y ph $.
    abeq2f.0 $e |- F/_ x A $.
    $( Equality of a class variable and a class abstraction.  In this version,
       the fact that ` x ` is a non-free variable in ` A ` is explicitly stated
       as a hypothesis.  (Contributed by Thierry Arnoux, 11-May-2017.) $)
    abeq2f $p |- ( A = { x | ph } <-> A. x ( x e. A <-> ph ) ) $=
      ( vy cab wceq cv wcel wb wal nfcrii hbab1 cleqh abid bibi2i albii bitri )
      CABFZGBHZCIZTSIZJZBKUAAJZBKBECSBECDLABEMNUCUDBUBAUAABOPQR $.
  $}

  ${
    $d v A $.  $d x z v $.  $d y z v $.  $d v ph $.
    sbabel.1 $e |- F/_ x A $.
    $( Theorem to move a substitution in and out of a class abstraction.
       (Contributed by NM, 27-Sep-2003.)  (Revised by Mario Carneiro,
       7-Oct-2016.)  (Proof shortened by Wolf Lammen, 26-Dec-2019.) $)
    sbabel $p |- ( [ y / x ] { z | ph } e. A <-> { z | [ y / x ] ph } e. A ) $=
      ( vv cv wcel wel wb wal wa wex wsb cab sbex sbf bitri clabel nfcri sbrbis
      sban nfv sbalv anbi12i exbii sbbii 3bitr4i ) GHEIZDGJZAKZDLZMZGNZBCOZUJUK
      ABCOZKZDLZMZGNZADPEIZBCOUQDPEIUPUNBCOZGNVAUNGBCQVCUTGVCUJBCOZUMBCOZMUTUJU
      MBCUCVDUJVEUSUJBCBGEFUARULURBCDUKUKABCUKBCUKBUDRUBUEUFSUGSVBUOBCADGETUHUQ
      DGETUI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Negated equality and membership
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Negated equality
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c =/= $. $( Not equal to (equal sign with slash through it). $)

  $( Extend wff notation to include inequality. $)
  wne $a wff A =/= B $.

  $( Define inequality.  (Contributed by NM, 26-May-1993.) $)
  df-ne $a |- ( A =/= B <-> -. A = B ) $.

  ${
    neii.1 $e |- A =/= B $.
    $( Inference associated with ~ df-ne .  (Contributed by BJ, 7-Jul-2018.) $)
    neii $p |- -. A = B $=
      ( wne wceq wn df-ne mpbi ) ABDABEFCABGH $.
  $}

  ${
    neir.1 $e |- -. A = B $.
    $( Inference associated with ~ df-ne .  (Contributed by BJ, 7-Jul-2018.) $)
    neir $p |- A =/= B $=
      ( wne wceq wn df-ne mpbir ) ABDABEFCABGH $.
  $}

  $( Negation of inequality.  (Contributed by NM, 9-Jun-2006.) $)
  nne $p |- ( -. A =/= B <-> A = B ) $=
    ( wceq wne wn df-ne con2bii bicomi ) ABCZABDZEJIABFGH $.

  ${
    neneqd.1 $e |- ( ph -> A =/= B ) $.
    $( Deduction eliminating inequality definition.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    neneqd $p |- ( ph -> -. A = B ) $=
      ( wne wceq wn df-ne sylib ) ABCEBCFGDBCHI $.
  $}

  $( From inequality to non equality.  (Contributed by Glauco Siliprandi,
     11-Dec-2019.) $)
  neneq $p |- ( A =/= B -> -. A = B ) $=
    ( wne id neneqd ) ABCZABFDE $.

  ${
    neqned.1 $e |- ( ph -> -. A = B ) $.
    $( If it is not the case that two classes are equal, they are unequal.
       Converse of ~ neneqd .  One-way deduction form of ~ df-ne .
       (Contributed by David Moews, 28-Feb-2017.)  Allow a shortening of
       ~ necon3bi .  (Revised by Wolf Lammen, 22-Nov-2019.) $)
    neqned $p |- ( ph -> A =/= B ) $=
      ( wceq wn wne df-ne sylibr ) ABCEFBCGDBCHI $.
  $}

  $( From non equality to inequality.  (Contributed by Glauco Siliprandi,
     11-Dec-2019.) $)
  neqne $p |- ( -. A = B -> A =/= B ) $=
    ( wceq wn id neqned ) ABCDZABGEF $.

  $( No class is unequal to itself.  Inequality is irreflexive.  (Contributed
     by Stefan O'Rear, 1-Jan-2015.) $)
  neirr $p |- -. A =/= A $=
    ( wne wn wceq eqid nne mpbir ) AABCAADAEAAFG $.

  $( Excluded middle with equality and inequality.  (Contributed by NM,
     3-Feb-2012.)  (Proof shortened by Wolf Lammen, 17-Nov-2019.) $)
  exmidne $p |- ( A = B \/ A =/= B ) $=
    ( wceq wne neqne orri ) ABCABDABEF $.

  $( A contradiction concerning equality implies anything.  (Contributed by
     Alexander van der Vekens, 25-Jan-2018.) $)
  eqneqall $p |- ( A = B -> ( A =/= B -> ph ) ) $=
    ( wne wceq wn df-ne pm2.24 syl5bi ) BCDBCEZFJABCGJAHI $.

  $( Law of noncontradiction with equality and inequality.  (Contributed by NM,
     3-Feb-2012.)  (Proof shortened by Wolf Lammen, 21-Dec-2019.) $)
  nonconne $p |- -. ( A = B /\ A =/= B ) $=
    ( wceq wne wa wfal fal eqneqall imp mto ) ABCZABDZEFGKLFFABHIJ $.

  ${
    necon3ad.1 $e |- ( ph -> ( ps -> A = B ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by NM,
       2-Apr-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 23-Nov-2019.) $)
    necon3ad $p |- ( ph -> ( A =/= B -> -. ps ) ) $=
      ( wceq wne neneq nsyli ) ABCDFCDGECDHI $.
  $}

  ${
    necon3bd.1 $e |- ( ph -> ( A = B -> ps ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by NM,
       2-Apr-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    necon3bd $p |- ( ph -> ( -. ps -> A =/= B ) ) $=
      ( wne wn wceq nne syl5bi con1d ) ACDFZBLGCDHABCDIEJK $.
  $}

  ${
    necon2ad.1 $e |- ( ph -> ( A = B -> -. ps ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       19-Apr-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 23-Nov-2019.) $)
    necon2ad $p |- ( ph -> ( ps -> A =/= B ) ) $=
      ( wn wne notnot necon3bd syl5 ) BBFZFACDGBHAKCDEIJ $.
  $}

  ${
    necon2bd.1 $e |- ( ph -> ( ps -> A =/= B ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       13-Apr-2007.) $)
    necon2bd $p |- ( ph -> ( A = B -> -. ps ) ) $=
      ( wceq wne wn df-ne syl6ib con2d ) ABCDFZABCDGLHECDIJK $.
  $}

  ${
    necon1ad.1 $e |- ( ph -> ( -. ps -> A = B ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by NM,
       2-Apr-2007.)  (Proof shortened by Wolf Lammen, 23-Nov-2019.) $)
    necon1ad $p |- ( ph -> ( A =/= B -> ps ) ) $=
      ( wne wn necon3ad notnotr syl6 ) ACDFBGZGBAKCDEHBIJ $.
  $}

  ${
    necon1bd.1 $e |- ( ph -> ( A =/= B -> ps ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by NM,
       21-Mar-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 23-Nov-2019.) $)
    necon1bd $p |- ( ph -> ( -. ps -> A = B ) ) $=
      ( wceq wn wne df-ne syl5bir con1d ) ACDFZBLGCDHABCDIEJK $.
  $}

  ${
    necon4ad.1 $e |- ( ph -> ( A =/= B -> -. ps ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       2-Apr-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 23-Nov-2019.) $)
    necon4ad $p |- ( ph -> ( ps -> A = B ) ) $=
      ( wn wceq notnot necon1bd syl5 ) BBFZFACDGBHAKCDEIJ $.
  $}

  ${
    necon4bd.1 $e |- ( ph -> ( -. ps -> A =/= B ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       1-Jun-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 23-Nov-2019.) $)
    necon4bd $p |- ( ph -> ( A = B -> ps ) ) $=
      ( wceq wn necon2bd notnotr syl6 ) ACDFBGZGBAKCDEHBIJ $.
  $}

  ${
    necon3d.1 $e |- ( ph -> ( A = B -> C = D ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by NM,
       10-Jun-2006.) $)
    necon3d $p |- ( ph -> ( C =/= D -> A =/= B ) ) $=
      ( wne wceq wn necon3ad df-ne syl6ibr ) ADEGBCHZIBCGAMDEFJBCKL $.
  $}

  ${
    necon1d.1 $e |- ( ph -> ( A =/= B -> C = D ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by NM,
       28-Dec-2008.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    necon1d $p |- ( ph -> ( C =/= D -> A = B ) ) $=
      ( wne wceq wn nne syl6ibr necon4ad ) ADEGZBCABCGDEHMIFDEJKL $.
  $}

  ${
    necon2d.1 $e |- ( ph -> ( A = B -> C =/= D ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       28-Dec-2008.) $)
    necon2d $p |- ( ph -> ( C = D -> A =/= B ) ) $=
      ( wceq wne wn df-ne syl6ib necon2ad ) ADEGZBCABCGDEHMIFDEJKL $.
  $}

  ${
    necon4d.1 $e |- ( ph -> ( A =/= B -> C =/= D ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       2-Apr-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    necon4d $p |- ( ph -> ( C = D -> A = B ) ) $=
      ( wceq wne wn necon2bd nne syl6ib ) ADEGBCHZIBCGAMDEFJBCKL $.
  $}

  ${
    necon3ai.1 $e |- ( ph -> A = B ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       23-May-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    necon3ai $p |- ( A =/= B -> -. ph ) $=
      ( wne wceq wn nne sylibr con2i ) ABCEZABCFKGDBCHIJ $.
  $}

  ${
    necon3bi.1 $e |- ( A = B -> ph ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       1-Jun-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 22-Nov-2019.) $)
    necon3bi $p |- ( -. ph -> A =/= B ) $=
      ( wn wceq con3i neqned ) AEBCBCFADGH $.
  $}

  ${
    necon1ai.1 $e |- ( -. ph -> A = B ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       12-Feb-2007.)  (Proof shortened by Wolf Lammen, 22-Nov-2019.) $)
    necon1ai $p |- ( A =/= B -> ph ) $=
      ( wne wn necon3ai notnotrd ) BCEAAFBCDGH $.
  $}

  ${
    necon1bi.1 $e |- ( A =/= B -> ph ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       18-Mar-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 22-Nov-2019.) $)
    necon1bi $p |- ( -. ph -> A = B ) $=
      ( wceq wn wne df-ne sylbir con1i ) BCEZAKFBCGABCHDIJ $.
  $}

  ${
    necon2ai.1 $e |- ( A = B -> -. ph ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       16-Jan-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 22-Nov-2019.) $)
    necon2ai $p |- ( ph -> A =/= B ) $=
      ( wceq con2i neqned ) ABCBCEADFG $.
  $}

  ${
    necon2bi.1 $e |- ( ph -> A =/= B ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       1-Apr-2007.) $)
    necon2bi $p |- ( A = B -> -. ph ) $=
      ( wceq neneqd con2i ) ABCEABCDFG $.
  $}

  ${
    necon4ai.1 $e |- ( A =/= B -> -. ph ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       16-Jan-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 22-Nov-2019.) $)
    necon4ai $p |- ( ph -> A = B ) $=
      ( wn wceq notnot necon1bi syl ) AAEZEBCFAGJBCDHI $.
  $}

  ${
    necon3i.1 $e |- ( A = B -> C = D ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       9-Aug-2006.)  (Proof shortened by Wolf Lammen, 22-Nov-2019.) $)
    necon3i $p |- ( C =/= D -> A =/= B ) $=
      ( wne wceq necon3ai neqned ) CDFABABGCDEHI $.
  $}

  ${
    necon1i.1 $e |- ( A =/= B -> C = D ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       18-Mar-2007.) $)
    necon1i $p |- ( C =/= D -> A = B ) $=
      ( wceq wn wne df-ne sylbir necon1ai ) ABFZCDLGABHCDFABIEJK $.
  $}

  ${
    necon2i.1 $e |- ( A = B -> C =/= D ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       18-Mar-2007.) $)
    necon2i $p |- ( C = D -> A =/= B ) $=
      ( wceq neneqd necon2ai ) CDFABABFCDEGH $.
  $}

  ${
    necon4i.1 $e |- ( A =/= B -> C =/= D ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       17-Mar-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Wolf Lammen, 24-Nov-2019.) $)
    necon4i $p |- ( C = D -> A = B ) $=
      ( wceq wne neneqd necon4ai ) CDFABABGCDEHI $.
  $}

  ${
    necon3abid.1 $e |- ( ph -> ( A = B <-> ps ) ) $.
    $( Deduction from equality to inequality.  (Contributed by NM,
       21-Mar-2007.) $)
    necon3abid $p |- ( ph -> ( A =/= B <-> -. ps ) ) $=
      ( wne wceq wn df-ne notbid syl5bb ) CDFCDGZHABHCDIALBEJK $.
  $}

  ${
    necon3bbid.1 $e |- ( ph -> ( ps <-> A = B ) ) $.
    $( Deduction from equality to inequality.  (Contributed by NM,
       2-Jun-2007.) $)
    necon3bbid $p |- ( ph -> ( -. ps <-> A =/= B ) ) $=
      ( wne wn wceq bicomd necon3abid ) ACDFBGABCDABCDHEIJI $.
  $}

  ${
    necon1abid.1 $e |- ( ph -> ( -. ps <-> A = B ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by NM,
       21-Aug-2007.)  (Proof shortened by Wolf Lammen, 24-Nov-2019.) $)
    necon1abid $p |- ( ph -> ( A =/= B <-> ps ) ) $=
      ( wn wne notnotb necon3bbid syl5rbb ) BBFZFACDGBHAKCDEIJ $.
  $}

  ${
    necon1bbid.1 $e |- ( ph -> ( A =/= B <-> ps ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       31-Jan-2008.) $)
    necon1bbid $p |- ( ph -> ( -. ps <-> A = B ) ) $=
      ( wceq wn wne df-ne syl5bbr con1bid ) ACDFZBLGCDHABCDIEJK $.
  $}

  ${
    necon4abid.1 $e |- ( ph -> ( A =/= B <-> -. ps ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by NM,
       11-Jan-2008.)  (Proof shortened by Wolf Lammen, 24-Nov-2019.) $)
    necon4abid $p |- ( ph -> ( A = B <-> ps ) ) $=
      ( wn wceq notnotb necon1bbid syl5rbb ) BBFZFACDGBHAKCDEIJ $.
  $}

  ${
    necon4bbid.1 $e |- ( ph -> ( -. ps <-> A =/= B ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by NM,
       9-May-2012.) $)
    necon4bbid $p |- ( ph -> ( ps <-> A = B ) ) $=
      ( wceq wn wne bicomd necon4abid ) ACDFBABCDABGCDHEIJI $.
  $}

  ${
    necon2abid.1 $e |- ( ph -> ( A = B <-> -. ps ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by NM,
       18-Jul-2007.)  (Proof shortened by Wolf Lammen, 24-Nov-2019.) $)
    necon2abid $p |- ( ph -> ( ps <-> A =/= B ) ) $=
      ( wne wn necon3abid notnotb syl6rbbr ) ACDFBGZGBAKCDEHBIJ $.
  $}

  ${
    necon2bbid.1 $e |- ( ph -> ( ps <-> A =/= B ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by NM,
       13-Apr-2007.)  (Proof shortened by Wolf Lammen, 24-Nov-2019.) $)
    necon2bbid $p |- ( ph -> ( A = B <-> -. ps ) ) $=
      ( wn wne notnotb syl5rbbr necon4abid ) ABFZCDKFBACDGBHEIJ $.
  $}

  ${
    necon3bid.1 $e |- ( ph -> ( A = B <-> C = D ) ) $.
    $( Deduction from equality to inequality.  (Contributed by NM,
       23-Feb-2005.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    necon3bid $p |- ( ph -> ( A =/= B <-> C =/= D ) ) $=
      ( wne wceq wn df-ne necon3bbid syl5bb ) BCGBCHZIADEGBCJAMDEFKL $.
  $}

  ${
    necon4bid.1 $e |- ( ph -> ( A =/= B <-> C =/= D ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by NM,
       29-Jun-2007.) $)
    necon4bid $p |- ( ph -> ( A = B <-> C = D ) ) $=
      ( wceq wne wn necon2bbid nne syl6rbb ) ADEGBCHZIBCGAMDEFJBCKL $.
  $}

  ${
    necon3abii.1 $e |- ( A = B <-> ph ) $.
    $( Deduction from equality to inequality.  (Contributed by NM,
       9-Nov-2007.) $)
    necon3abii $p |- ( A =/= B <-> -. ph ) $=
      ( wne wceq df-ne xchbinx ) BCEBCFABCGDH $.
  $}

  ${
    necon3bbii.1 $e |- ( ph <-> A = B ) $.
    $( Deduction from equality to inequality.  (Contributed by NM,
       13-Apr-2007.) $)
    necon3bbii $p |- ( -. ph <-> A =/= B ) $=
      ( wne wn wceq bicomi necon3abii ) BCEAFABCABCGDHIH $.
  $}

  ${
    necon1abii.1 $e |- ( -. ph <-> A = B ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       17-Mar-2007.)  (Proof shortened by Wolf Lammen, 25-Nov-2019.) $)
    necon1abii $p |- ( A =/= B <-> ph ) $=
      ( wn wne notnotb necon3bbii bitr2i ) AAEZEBCFAGJBCDHI $.
  $}

  ${
    necon1bbii.1 $e |- ( A =/= B <-> ph ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       17-Mar-2007.)  (Proof shortened by Wolf Lammen, 24-Nov-2019.) $)
    necon1bbii $p |- ( -. ph <-> A = B ) $=
      ( wne wceq nne xchnxbi ) BCEBCFABCGDH $.
  $}

  ${
    necon2abii.1 $e |- ( A = B <-> -. ph ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       2-Mar-2007.) $)
    necon2abii $p |- ( ph <-> A =/= B ) $=
      ( wne wceq wn bicomi necon1abii ) BCEAABCBCFAGDHIH $.
  $}

  ${
    necon2bbii.1 $e |- ( ph <-> A =/= B ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       13-Apr-2007.) $)
    necon2bbii $p |- ( A = B <-> -. ph ) $=
      ( wn wceq wne bicomi necon1bbii ) AEBCFABCABCGDHIH $.
  $}

  ${
    necon3bii.1 $e |- ( A = B <-> C = D ) $.
    $( Inference from equality to inequality.  (Contributed by NM,
       23-Feb-2005.) $)
    necon3bii $p |- ( A =/= B <-> C =/= D ) $=
      ( wne wceq wn necon3abii df-ne bitr4i ) ABFCDGZHCDFLABEICDJK $.
  $}

  $( Commutation of inequality.  (Contributed by NM, 14-May-1999.) $)
  necom $p |- ( A =/= B <-> B =/= A ) $=
    ( eqcom necon3bii ) ABBAABCD $.

  ${
    necomi.1 $e |- A =/= B $.
    $( Inference from commutative law for inequality.  (Contributed by NM,
       17-Oct-2012.) $)
    necomi $p |- B =/= A $=
      ( wne necom mpbi ) ABDBADCABEF $.
  $}

  ${
    necomd.1 $e |- ( ph -> A =/= B ) $.
    $( Deduction from commutative law for inequality.  (Contributed by NM,
       12-Feb-2008.) $)
    necomd $p |- ( ph -> B =/= A ) $=
      ( wne necom sylib ) ABCECBEDBCFG $.
  $}

  $( Characterization of inequality in terms of reversed equality (see
     ~ bicom ).  (Contributed by BJ, 7-Jul-2018.) $)
  nesym $p |- ( A =/= B <-> -. B = A ) $=
    ( wceq eqcom necon3abii ) BACABABDE $.

  ${
    nesymi.1 $e |- A =/= B $.
    $( Inference associated with ~ nesym .  (Contributed by BJ, 7-Jul-2018.)
       (Proof shortened by Wolf Lammen, 25-Nov-2019.) $)
    nesymi $p |- -. B = A $=
      ( necomi neii ) BAABCDE $.
  $}

  ${
    nesymir.1 $e |- -. A = B $.
    $( Inference associated with ~ nesym .  (Contributed by BJ, 7-Jul-2018.)
       (Proof shortened by Wolf Lammen, 25-Nov-2019.) $)
    nesymir $p |- B =/= A $=
      ( neir necomi ) ABABCDE $.
  $}

  ${
    neeq1d.1 $e |- ( ph -> A = B ) $.
    $( Deduction for inequality.  (Contributed by NM, 25-Oct-1999.)  (Proof
       shortened by Wolf Lammen, 19-Nov-2019.) $)
    neeq1d $p |- ( ph -> ( A =/= C <-> B =/= C ) ) $=
      ( eqeq1d necon3bid ) ABDCDABCDEFG $.

    $( Deduction for inequality.  (Contributed by NM, 25-Oct-1999.)  (Proof
       shortened by Wolf Lammen, 19-Nov-2019.) $)
    neeq2d $p |- ( ph -> ( C =/= A <-> C =/= B ) ) $=
      ( eqeq2d necon3bid ) ADBDCABCDEFG $.

    neeq12d.2 $e |- ( ph -> C = D ) $.
    $( Deduction for inequality.  (Contributed by NM, 24-Jul-2012.)  (Proof
       shortened by Wolf Lammen, 25-Nov-2019.) $)
    neeq12d $p |- ( ph -> ( A =/= C <-> B =/= D ) ) $=
      ( eqeq12d necon3bid ) ABDCEABCDEFGHI $.
  $}

  $( Equality theorem for inequality.  (Contributed by NM, 19-Nov-1994.)
     (Proof shortened by Wolf Lammen, 18-Nov-2019.) $)
  neeq1 $p |- ( A = B -> ( A =/= C <-> B =/= C ) ) $=
    ( wceq id neeq1d ) ABDZABCGEF $.

  $( Equality theorem for inequality.  (Contributed by NM, 19-Nov-1994.)
     (Proof shortened by Wolf Lammen, 18-Nov-2019.) $)
  neeq2 $p |- ( A = B -> ( C =/= A <-> C =/= B ) ) $=
    ( wceq id neeq2d ) ABDZABCGEF $.

  ${
    neeq1i.1 $e |- A = B $.
    $( Inference for inequality.  (Contributed by NM, 29-Apr-2005.)  (Proof
       shortened by Wolf Lammen, 19-Nov-2019.) $)
    neeq1i $p |- ( A =/= C <-> B =/= C ) $=
      ( eqeq1i necon3bii ) ACBCABCDEF $.

    $( Inference for inequality.  (Contributed by NM, 29-Apr-2005.)  (Proof
       shortened by Wolf Lammen, 19-Nov-2019.) $)
    neeq2i $p |- ( C =/= A <-> C =/= B ) $=
      ( eqeq2i necon3bii ) CACBABCDEF $.

    neeq12i.2 $e |- C = D $.
    $( Inference for inequality.  (Contributed by NM, 24-Jul-2012.)  (Proof
       shortened by Wolf Lammen, 25-Nov-2019.) $)
    neeq12i $p |- ( A =/= C <-> B =/= D ) $=
      ( eqeq12i necon3bii ) ACBDABCDEFGH $.
  $}

  ${
    eqnetrd.1 $e |- ( ph -> A = B ) $.
    eqnetrd.2 $e |- ( ph -> B =/= C ) $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    eqnetrd $p |- ( ph -> A =/= C ) $=
      ( wne neeq1d mpbird ) ABDGCDGFABCDEHI $.
  $}

  ${
    eqnetrrd.1 $e |- ( ph -> A = B ) $.
    eqnetrrd.2 $e |- ( ph -> A =/= C ) $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    eqnetrrd $p |- ( ph -> B =/= C ) $=
      ( eqcomd eqnetrd ) ACBDABCEGFH $.
  $}

  ${
    neeqtrd.1 $e |- ( ph -> A =/= B ) $.
    neeqtrd.2 $e |- ( ph -> B = C ) $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    neeqtrd $p |- ( ph -> A =/= C ) $=
      ( wne neeq2d mpbid ) ABCGBDGEACDBFHI $.
  $}

  ${
    eqnetr.1 $e |- A = B $.
    eqnetr.2 $e |- B =/= C $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    eqnetri $p |- A =/= C $=
      ( wne neeq1i mpbir ) ACFBCFEABCDGH $.
  $}

  ${
    eqnetrr.1 $e |- A = B $.
    eqnetrr.2 $e |- A =/= C $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    eqnetrri $p |- B =/= C $=
      ( eqcomi eqnetri ) BACABDFEG $.
  $}

  ${
    neeqtr.1 $e |- A =/= B $.
    neeqtr.2 $e |- B = C $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    neeqtri $p |- A =/= C $=
      ( wne neeq2i mpbi ) ABFACFDBCAEGH $.
  $}

  ${
    neeqtrr.1 $e |- A =/= B $.
    neeqtrr.2 $e |- C = B $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    neeqtrri $p |- A =/= C $=
      ( eqcomi neeqtri ) ABCDCBEFG $.
  $}

  ${
    neeqtrrd.1 $e |- ( ph -> A =/= B ) $.
    neeqtrrd.2 $e |- ( ph -> C = B ) $.
    $( Substitution of equal classes into an inequality.  (Contributed by NM,
       4-Jul-2012.) $)
    neeqtrrd $p |- ( ph -> A =/= C ) $=
      ( eqcomd neeqtrd ) ABCDEADCFGH $.
  $}

  ${
    syl5eqner.1 $e |- B = A $.
    syl5eqner.2 $e |- ( ph -> B =/= C ) $.
    $( A chained equality inference for inequality.  (Contributed by NM,
       6-Jun-2012.)  (Proof shortened by Wolf Lammen, 19-Nov-2019.) $)
    syl5eqner $p |- ( ph -> A =/= C ) $=
      ( wceq a1i eqnetrrd ) ACBDCBGAEHFI $.
  $}

  ${
    3netr3d.1 $e |- ( ph -> A =/= B ) $.
    3netr3d.2 $e |- ( ph -> A = C ) $.
    3netr3d.3 $e |- ( ph -> B = D ) $.
    $( Substitution of equality into both sides of an inequality.  (Contributed
       by NM, 24-Jul-2012.)  (Proof shortened by Wolf Lammen, 19-Nov-2019.) $)
    3netr3d $p |- ( ph -> C =/= D ) $=
      ( neeqtrd eqnetrrd ) ABDEGABCEFHIJ $.
  $}

  ${
    3netr4d.1 $e |- ( ph -> A =/= B ) $.
    3netr4d.2 $e |- ( ph -> C = A ) $.
    3netr4d.3 $e |- ( ph -> D = B ) $.
    $( Substitution of equality into both sides of an inequality.  (Contributed
       by NM, 24-Jul-2012.)  (Proof shortened by Wolf Lammen, 21-Nov-2019.) $)
    3netr4d $p |- ( ph -> C =/= D ) $=
      ( eqnetrd neeqtrrd ) ADCEADBCGFIHJ $.
  $}

  ${
    3netr3g.1 $e |- ( ph -> A =/= B ) $.
    3netr3g.2 $e |- A = C $.
    3netr3g.3 $e |- B = D $.
    $( Substitution of equality into both sides of an inequality.  (Contributed
       by NM, 24-Jul-2012.) $)
    3netr3g $p |- ( ph -> C =/= D ) $=
      ( wne neeq12i sylib ) ABCIDEIFBDCEGHJK $.
  $}

  ${
    3netr4g.1 $e |- ( ph -> A =/= B ) $.
    3netr4g.2 $e |- C = A $.
    3netr4g.3 $e |- D = B $.
    $( Substitution of equality into both sides of an inequality.  (Contributed
       by NM, 14-Jun-2012.) $)
    3netr4g $p |- ( ph -> C =/= D ) $=
      ( wne neeq12i sylibr ) ABCIDEIFDBECGHJK $.
  $}

  $( Contraposition law for inequality.  (Contributed by NM, 28-Dec-2008.) $)
  nebi $p |- ( ( A = B <-> C = D ) <-> ( A =/= B <-> C =/= D ) ) $=
    ( wceq wb wne id necon3bid necon4bid impbii ) ABECDEFZABGCDGFZLABCDLHIMABCD
    MHJK $.

  $( Theorem *13.18 in [WhiteheadRussell] p. 178.  (Contributed by Andrew
     Salmon, 3-Jun-2011.) $)
  pm13.18 $p |- ( ( A = B /\ A =/= C ) -> B =/= C ) $=
    ( wceq wne eqeq1 biimprd necon3d imp ) ABDZACEBCEJBCACJACDBCDABCFGHI $.

  $( Theorem *13.181 in [WhiteheadRussell] p. 178.  (Contributed by Andrew
     Salmon, 3-Jun-2011.) $)
  pm13.181 $p |- ( ( A = B /\ B =/= C ) -> A =/= C ) $=
    ( wceq wne eqcom pm13.18 sylanb ) ABDBADBCEACEABFBACGH $.

  ${
    pm2.61ine.1 $e |- ( A = B -> ph ) $.
    pm2.61ine.2 $e |- ( A =/= B -> ph ) $.
    $( Inference eliminating an inequality in an antecedent.  (Contributed by
       NM, 16-Jan-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    pm2.61ine $p |- ph $=
      ( wne wn wceq nne sylbi pm2.61i ) BCFZAELGBCHABCIDJK $.
  $}

  ${
    pm2.21ddne.1 $e |- ( ph -> A = B ) $.
    pm2.21ddne.2 $e |- ( ph -> A =/= B ) $.
    $( A contradiction implies anything.  Equality/inequality deduction form.
       (Contributed by David Moews, 28-Feb-2017.) $)
    pm2.21ddne $p |- ( ph -> ps ) $=
      ( wceq neneqd pm2.21dd ) ACDGBEACDFHI $.
  $}

  ${
    pm2.61ne.1 $e |- ( A = B -> ( ps <-> ch ) ) $.
    pm2.61ne.2 $e |- ( ( ph /\ A =/= B ) -> ps ) $.
    pm2.61ne.3 $e |- ( ph -> ch ) $.
    $( Deduction eliminating an inequality in an antecedent.  (Contributed by
       NM, 24-May-2006.)  (Proof shortened by Andrew Salmon, 25-May-2011.)
       (Proof shortened by Wolf Lammen, 25-Nov-2019.) $)
    pm2.61ne $p |- ( ph -> ps ) $=
      ( wi wceq syl5ibr wne expcom pm2.61ine ) ABIDEABDEJCHFKADELBGMN $.
  $}

  ${
    pm2.61dne.1 $e |- ( ph -> ( A = B -> ps ) ) $.
    pm2.61dne.2 $e |- ( ph -> ( A =/= B -> ps ) ) $.
    $( Deduction eliminating an inequality in an antecedent.  (Contributed by
       NM, 1-Jun-2007.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    pm2.61dne $p |- ( ph -> ps ) $=
      ( wne wn wceq nne syl5bi pm2.61d ) ACDGZBFMHCDIABCDJEKL $.
  $}

  ${
    pm2.61dane.1 $e |- ( ( ph /\ A = B ) -> ps ) $.
    pm2.61dane.2 $e |- ( ( ph /\ A =/= B ) -> ps ) $.
    $( Deduction eliminating an inequality in an antecedent.  (Contributed by
       NM, 30-Nov-2011.) $)
    pm2.61dane $p |- ( ph -> ps ) $=
      ( wceq ex wne pm2.61dne ) ABCDACDGBEHACDIBFHJ $.
  $}

  ${
    pm2.61da2ne.1 $e |- ( ( ph /\ A = B ) -> ps ) $.
    pm2.61da2ne.2 $e |- ( ( ph /\ C = D ) -> ps ) $.
    pm2.61da2ne.3 $e |- ( ( ph /\ ( A =/= B /\ C =/= D ) ) -> ps ) $.
    $( Deduction eliminating two inequalities in an antecedent.  (Contributed
       by NM, 29-May-2013.) $)
    pm2.61da2ne $p |- ( ph -> ps ) $=
      ( wne wa wceq adantlr anassrs pm2.61dane ) ABCDGACDJZKBEFAEFLBPHMAPEFJBIN
      OO $.
  $}

  ${
    pm2.61da3ne.1 $e |- ( ( ph /\ A = B ) -> ps ) $.
    pm2.61da3ne.2 $e |- ( ( ph /\ C = D ) -> ps ) $.
    pm2.61da3ne.3 $e |- ( ( ph /\ E = F ) -> ps ) $.
    pm2.61da3ne.4 $e |- ( ( ph /\ ( A =/= B /\ C =/= D /\ E =/= F ) )
          -> ps ) $.
    $( Deduction eliminating three inequalities in an antecedent.  (Contributed
       by NM, 15-Jun-2013.)  (Proof shortened by Wolf Lammen, 25-Nov-2019.) $)
    pm2.61da3ne $p |- ( ph -> ps ) $=
      ( wne wa wi wceq a1d 3exp2 imp4b pm2.61dane imp pm2.61da2ne ) ABEFGHJKAEF
      MZGHMZNZBAUEBOCDACDPNBUEIQACDMZUCUDBAUFUCUDBLRSTUAUB $.
  $}

  ${
    pm2.61iine.1 $e |- ( ( A =/= C /\ B =/= D ) -> ph ) $.
    pm2.61iine.2 $e |- ( A = C -> ph ) $.
    pm2.61iine.3 $e |- ( B = D -> ph ) $.
    $( Equality version of ~ pm2.61ii .  (Contributed by Scott Fenton,
       13-Jun-2013.)  (Proof shortened by Wolf Lammen, 25-Nov-2019.) $)
    pm2.61iine $p |- ph $=
      ( wne wceq adantl pm2.61dane pm2.61ine ) ABDGBDIZACECEJANHKFLM $.
  $}

  $( Logical OR with an equality.  (Contributed by NM, 29-Apr-2007.) $)
  neor $p |- ( ( A = B \/ ps ) <-> ( A =/= B -> ps ) ) $=
    ( wceq wo wn wi wne df-or df-ne imbi1i bitr4i ) BCDZAEMFZAGBCHZAGMAIONABCJK
    L $.

  $( A De Morgan's law for inequality.  (Contributed by NM, 18-May-2007.) $)
  neanior $p |- ( ( A =/= B /\ C =/= D ) <-> -. ( A = B \/ C = D ) ) $=
    ( wne wa wceq wn wo df-ne anbi12i pm4.56 bitri ) ABEZCDEZFABGZHZCDGZHZFPRIH
    NQOSABJCDJKPRLM $.

  $( A De Morgan's law for inequality.  (Contributed by NM, 30-Sep-2013.) $)
  ne3anior $p |- ( ( A =/= B /\ C =/= D /\ E =/= F )
        <-> -. ( A = B \/ C = D \/ E = F ) ) $=
    ( wne w3a wn w3o wceq 3anor nne 3orbi123i xchbinx ) ABGZCDGZEFGZHPIZQIZRIZJ
    ABKZCDKZEFKZJPQRLSUBTUCUAUDABMCDMEFMNO $.

  $( A De Morgan's law for inequality.  (Contributed by NM, 18-May-2007.) $)
  neorian $p |- ( ( A =/= B \/ C =/= D ) <-> -. ( A = B /\ C = D ) ) $=
    ( wne wo wceq wn wa df-ne orbi12i ianor bitr4i ) ABEZCDEZFABGZHZCDGZHZFPRIH
    NQOSABJCDJKPRLM $.

  ${
    nemtbir.1 $e |- A =/= B $.
    nemtbir.2 $e |- ( ph <-> A = B ) $.
    $( An inference from an inequality, related to modus tollens.  (Contributed
       by NM, 13-Apr-2007.) $)
    nemtbir $p |- -. ph $=
      ( wceq neii mtbir ) ABCFBCDGEH $.
  $}

  $( Two classes are different if they don't contain the same element.
     (Contributed by NM, 3-Feb-2012.) $)
  nelne1 $p |- ( ( A e. B /\ -. A e. C ) -> B =/= C ) $=
    ( wcel wn wne wceq eleq2 biimpcd necon3bd imp ) ABDZACDZEBCFLMBCBCGLMBCAHIJ
    K $.

  $( Two classes are different if they don't belong to the same class.
     (Contributed by NM, 25-Jun-2012.) $)
  nelne2 $p |- ( ( A e. C /\ -. B e. C ) -> A =/= B ) $=
    ( wcel wn wne wceq eleq1 biimpcd necon3bd imp ) ACDZBCDZEABFLMABABGLMABCHIJ
    K $.

  $( Two classes are different if they don't belong to the same class.
     (Contributed by Rodolfo Medina, 17-Oct-2010.)  (Proof shortened by AV,
     10-May-2020.) $)
  nelelne $p |- ( -. A e. B -> ( C e. B -> C =/= A ) ) $=
    ( wcel wn wne nelne2 expcom ) CBDABDECAFCABGH $.

  $( If two classes are different, a third class must be different of at least
     one of them.  (Contributed by Thierry Arnoux, 8-Aug-2020.) $)
  neneor $p |- ( A =/= B -> ( A =/= C \/ B =/= C ) ) $=
    ( wne wceq wa wn wo eqtr3 necon3ai neorian sylibr ) ABDACEBCEFZGACDBCDHMABA
    BCIJACBCKL $.

  ${
    nfne.1 $e |- F/_ x A $.
    nfne.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for inequality.  (Contributed by NM,
       10-Nov-2007.)  (Revised by Mario Carneiro, 7-Oct-2016.) $)
    nfne $p |- F/ x A =/= B $=
      ( wne wceq wn df-ne nfeq nfn nfxfr ) BCFBCGZHABCIMAABCDEJKL $.
  $}

  ${
    nfned.1 $e |- ( ph -> F/_ x A ) $.
    nfned.2 $e |- ( ph -> F/_ x B ) $.
    $( Bound-variable hypothesis builder for inequality.  (Contributed by NM,
       10-Nov-2007.)  (Revised by Mario Carneiro, 7-Oct-2016.) $)
    nfned $p |- ( ph -> F/ x A =/= B ) $=
      ( wne wceq wn df-ne nfeqd nfnd nfxfrd ) CDGCDHZIABCDJANBABCDEFKLM $.
  $}

  $( Not equivalent wff's correspond to not equal class abstractions.
     (Contributed by AV, 7-Apr-2019.)  (Proof shortened by Wolf Lammen,
     25-Nov-2019.) $)
  nabbi $p |- ( E. x ( ph <-> -. ps ) <-> { x | ph } =/= { x | ps } ) $=
    ( cab wne wceq wn wex df-ne wal exnal xor3 exbii bitr3i abbi xchnxbi bitr2i
    wb ) ACDZBCDZESTFZGABGRZCHZSTIABRZCJZUCUAUEGUDGZCHUCUDCKUFUBCABLMNABCOPQ $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Negated membership
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c e/ $. $( Not an element of (epsilon with slash through it). $)

  $( Extend wff notation to include negated membership. $)
  wnel $a wff A e/ B $.

  $( Define negated membership.  (Contributed by NM, 7-Aug-1994.) $)
  df-nel $a |- ( A e/ B <-> -. A e. B ) $.

  ${
    neli.1 $e |- A e/ B $.
    $( Inference associated with ~ df-nel .  (Contributed by BJ,
       7-Jul-2018.) $)
    neli $p |- -. A e. B $=
      ( wnel wcel wn df-nel mpbi ) ABDABEFCABGH $.
  $}

  ${
    nelir.1 $e |- -. A e. B $.
    $( Inference associated with ~ df-nel .  (Contributed by BJ,
       7-Jul-2018.) $)
    nelir $p |- A e/ B $=
      ( wnel wcel wn df-nel mpbir ) ABDABEFCABGH $.
  $}

  ${
    neleq12d.1 $e |- ( ph -> A = B ) $.
    neleq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality theorem for negated membership.  (Contributed by FL,
       10-Aug-2016.)  (Proof shortened by Wolf Lammen, 25-Nov-2019.) $)
    neleq12d $p |- ( ph -> ( A e/ C <-> B e/ D ) ) $=
      ( wcel wn wnel eleq12d notbid df-nel 3bitr4g ) ABDHZICEHZIBDJCEJAOPABCDEF
      GKLBDMCEMN $.
  $}

  $( Equality theorem for negated membership.  (Contributed by NM,
     20-Nov-1994.)  (Proof shortened by Wolf Lammen, 25-Nov-2019.) $)
  neleq1 $p |- ( A = B -> ( A e/ C <-> B e/ C ) ) $=
    ( wceq id eqidd neleq12d ) ABDZABCCHEHCFG $.

  $( Equality theorem for negated membership.  (Contributed by NM,
     20-Nov-1994.)  (Proof shortened by Wolf Lammen, 25-Nov-2019.) $)
  neleq2 $p |- ( A = B -> ( C e/ A <-> C e/ B ) ) $=
    ( wceq eqidd id neleq12d ) ABDZCCABHCEHFG $.

  ${
    nfnel.1 $e |- F/_ x A $.
    nfnel.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for negated membership.  (Contributed
       by David Abernethy, 26-Jun-2011.)  (Revised by Mario Carneiro,
       7-Oct-2016.) $)
    nfnel $p |- F/ x A e/ B $=
      ( wnel wcel wn df-nel nfel nfn nfxfr ) BCFBCGZHABCIMAABCDEJKL $.
  $}

  ${
    nfneld.1 $e |- ( ph -> F/_ x A ) $.
    nfneld.2 $e |- ( ph -> F/_ x B ) $.
    $( Bound-variable hypothesis builder for negated membership.  (Contributed
       by David Abernethy, 26-Jun-2011.)  (Revised by Mario Carneiro,
       7-Oct-2016.) $)
    nfneld $p |- ( ph -> F/ x A e/ B ) $=
      ( wnel wcel wn df-nel nfeld nfnd nfxfrd ) CDGCDHZIABCDJANBABCDEFKLM $.
  $}

  $( Negation of negated membership, analogous to ~ nne .  (Contributed by
     Alexander van der Vekens, 18-Jan-2018.)  (Proof shortened by Wolf Lammen,
     25-Nov-2019.) $)
  nnel $p |- ( -. A e/ B <-> A e. B ) $=
    ( wcel wnel wn df-nel bicomi con1bii ) ABCZABDZJIEABFGH $.

  $( Two classes are different if they don't contain the same element.
     (Contributed by AV, 28-Jan-2020.) $)
  elnelne1 $p |- ( ( A e. B /\ A e/ C ) -> B =/= C ) $=
    ( wnel wcel wn wne df-nel nelne1 sylan2b ) ACDABEACEFBCGACHABCIJ $.

  $( Two classes are different if they don't belong to the same class.
     (Contributed by AV, 28-Jan-2020.) $)
  elnelne2 $p |- ( ( A e. C /\ B e/ C ) -> A =/= B ) $=
    ( wnel wcel wn wne df-nel nelne2 sylan2b ) BCDACEBCEFABGBCHABCIJ $.

  ${
    nelcon3d.1 $e |- ( ph -> ( A e. B -> C e. D ) ) $.
    $( Contrapositive law deduction for negated membership.  (Contributed by
       AV, 28-Jan-2020.) $)
    nelcon3d $p |- ( ph -> ( C e/ D -> A e/ B ) ) $=
      ( wcel wn wnel con3d df-nel 3imtr4g ) ADEGZHBCGZHDEIBCIANMFJDEKBCKL $.
  $}

  $( A contradiction concerning membership implies anything.  (Contributed by
     Alexander van der Vekens, 25-Jan-2018.) $)
  elnelall $p |- ( A e. B -> ( A e/ B -> ph ) ) $=
    ( wnel wcel wn df-nel pm2.24 syl5bi ) BCDBCEZFJABCGJAHI $.

  ${
    pm2.61danel.1 $e |- ( ( ph /\ A e. B ) -> ps ) $.
    pm2.61danel.2 $e |- ( ( ph /\ A e/ B ) -> ps ) $.
    $( Deduction eliminating an elementhood in an antecedent.  (Contributed by
       AV, 5-Dec-2021.) $)
    pm2.61danel $p |- ( ph -> ps ) $=
      ( wcel wn wnel df-nel sylan2br pm2.61dan ) ACDGZBEMHACDIBCDJFKL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Restricted quantification
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend wff notation to include restricted universal quantification. $)
  wral $a wff A. x e. A ph $.

  $( Extend wff notation to include restricted existential quantification. $)
  wrex $a wff E. x e. A ph $.

  $( Extend wff notation to include restricted existential uniqueness. $)
  wreu $a wff E! x e. A ph $.

  $( Extend wff notation to include restricted "at most one." $)
  wrmo $a wff E* x e. A ph $.

  $( Extend class notation to include the restricted class abstraction (class
     builder). $)
  crab $a class { x e. A | ph } $.

  $( Define restricted universal quantification.  Special case of Definition
     4.15(3) of [TakeutiZaring] p. 22.  (Contributed by NM, 19-Aug-1993.) $)
  df-ral $a |- ( A. x e. A ph <-> A. x ( x e. A -> ph ) ) $.

  $( Define restricted existential quantification.  Special case of Definition
     4.15(4) of [TakeutiZaring] p. 22.  (Contributed by NM, 30-Aug-1993.) $)
  df-rex $a |- ( E. x e. A ph <-> E. x ( x e. A /\ ph ) ) $.

  $( Define restricted existential uniqueness.  (Contributed by NM,
     22-Nov-1994.) $)
  df-reu $a |- ( E! x e. A ph <-> E! x ( x e. A /\ ph ) ) $.

  $( Define restricted "at most one".  (Contributed by NM, 16-Jun-2017.) $)
  df-rmo $a |- ( E* x e. A ph <-> E* x ( x e. A /\ ph ) ) $.

  $( Define a restricted class abstraction (class builder), which is the class
     of all ` x ` in ` A ` such that ` ph ` is true.  Definition of
     [TakeutiZaring] p. 20.  (Contributed by NM, 22-Nov-1994.) $)
  df-rab $a |- { x e. A | ph } = { x | ( x e. A /\ ph ) } $.

  ${
    rgen.1 $e |- ( x e. A -> ph ) $.
    $( Generalization rule for restricted quantification.  (Contributed by NM,
       19-Nov-1994.) $)
    rgen $p |- A. x e. A ph $=
      ( wral cv wcel wi df-ral mpgbir ) ABCEBFCGAHBABCIDJ $.
  $}

  $( All elements of a class are elements of the class.  (Contributed by AV,
     30-Oct-2020.) $)
  ralel $p |- A. x e. A x e. A $=
    ( cv wcel id rgen ) ACBDZABGEF $.

  ${
    rgenw.1 $e |- ph $.
    $( Generalization rule for restricted quantification.  (Contributed by NM,
       18-Jun-2014.) $)
    rgenw $p |- A. x e. A ph $=
      ( cv wcel a1i rgen ) ABCABECFDGH $.

    $( Generalization rule for restricted quantification.  Note that ` x ` and
       ` y ` needn't be distinct.  (Contributed by NM, 18-Jun-2014.) $)
    rgen2w $p |- A. x e. A A. y e. B ph $=
      ( wral rgenw ) ACEGBDACEFHH $.
  $}

  ${
    mprg.1 $e |- ( A. x e. A ph -> ps ) $.
    mprg.2 $e |- ( x e. A -> ph ) $.
    $( Modus ponens combined with restricted generalization.  (Contributed by
       NM, 10-Aug-2004.) $)
    mprg $p |- ps $=
      ( wral rgen ax-mp ) ACDGBACDFHEI $.
  $}

  ${
    mprgbir.1 $e |- ( ph <-> A. x e. A ps ) $.
    mprgbir.2 $e |- ( x e. A -> ps ) $.
    $( Modus ponens on biconditional combined with restricted generalization.
       (Contributed by NM, 21-Mar-2004.) $)
    mprgbir $p |- ph $=
      ( wral rgen mpbir ) ABCDGBCDFHEI $.
  $}

  $( Universal quantification implies restricted quantification.  (Contributed
     by NM, 20-Oct-2006.) $)
  alral $p |- ( A. x ph -> A. x e. A ph ) $=
    ( wal cv wcel wi wral ala1 df-ral sylibr ) ABDBECFZAGBDABCHALBIABCJK $.

  $( Restricted specialization.  (Contributed by NM, 17-Oct-1996.) $)
  rsp $p |- ( A. x e. A ph -> ( x e. A -> ph ) ) $=
    ( wral cv wcel wi wal df-ral sp sylbi ) ABCDBECFAGZBHLABCILBJK $.

  $( Restricted specialization.  (Contributed by Glauco Siliprandi,
     11-Dec-2019.) $)
  rspa $p |- ( ( A. x e. A ph /\ x e. A ) -> ph ) $=
    ( wral cv wcel rsp imp ) ABCDBECFAABCGH $.

  ${
    rspec.1 $e |- A. x e. A ph $.
    $( Specialization rule for restricted quantification.  (Contributed by NM,
       19-Nov-1994.) $)
    rspec $p |- ( x e. A -> ph ) $=
      ( wral cv wcel wi rsp ax-mp ) ABCEBFCGAHDABCIJ $.
  $}

  ${
    r19.21bi.1 $e |- ( ph -> A. x e. A ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 20-Nov-1994.)  (Proof
       shortened by Wolf Lammen, 1-Jan-2020.) $)
    r19.21bi $p |- ( ( ph /\ x e. A ) -> ps ) $=
      ( cv wcel wral wi rsp syl imp ) ACFDGZBABCDHMBIEBCDJKL $.
  $}

  ${
    r19.21be.1 $e |- ( ph -> A. x e. A ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 21-Nov-1994.) $)
    r19.21be $p |- A. x e. A ( ph -> ps ) $=
      ( wi cv wcel r19.21bi expcom rgen ) ABFCDACGDHBABCDEIJK $.
  $}

  ${
    rspec2.1 $e |- A. x e. A A. y e. B ph $.
    $( Specialization rule for restricted quantification, with two quantifiers.
       (Contributed by NM, 20-Nov-1994.) $)
    rspec2 $p |- ( ( x e. A /\ y e. B ) -> ph ) $=
      ( cv wcel wral rspec r19.21bi ) BGDHACEACEIBDFJK $.
  $}

  ${
    rspec3.1 $e |- A. x e. A A. y e. B A. z e. C ph $.
    $( Specialization rule for restricted quantification, with three
       quantifiers.  (Contributed by NM, 20-Nov-1994.) $)
    rspec3 $p |- ( ( x e. A /\ y e. B /\ z e. C ) -> ph ) $=
      ( cv wcel wa wral rspec2 r19.21bi 3impa ) BIEJZCIFJZDIGJAPQKADGADGLBCEFHM
      NO $.
  $}

  $( Restricted specialization, with two quantifiers.  (Contributed by NM,
     11-Feb-1997.) $)
  rsp2 $p |- ( A. x e. A A. y e. B ph -> ( ( x e. A /\ y e. B ) -> ph ) ) $=
    ( wral cv wcel wi rsp syl6 impd ) ACEFZBDFZBGDHZCGEHZANOMPAIMBDJACEJKL $.

  ${
    r2allem.1 $e |- ( A. y ( x e. A -> ( y e. B -> ph ) )
                      <-> ( x e. A -> A. y ( y e. B -> ph ) ) ) $.
    $( Lemma factoring out common proof steps of ~ r2alf and ~ r2al .
       Introduced to reduce dependencies on axioms.  (Contributed by Wolf
       Lammen, 9-Jan-2020.) $)
    r2allem $p |- ( A. x e. A A. y e. B ph <->
               A. x A. y ( ( x e. A /\ y e. B ) -> ph ) ) $=
      ( wral cv wcel wi wal wa df-ral impexp albii imbi2i 3bitr4i bitr4i ) ACEG
      ZBDGBHDIZSJZBKTCHEIZLAJZCKZBKSBDMUDUABTUBAJZJZCKTUECKZJUDUAFUCUFCTUBANOSU
      GTACEMPQOR $.
  $}

  ${
    $d x y $.
    r2alf.1 $e |- F/_ y A $.
    $( Double restricted universal quantification.  (Contributed by Mario
       Carneiro, 14-Oct-2016.)  Use ~ r2allem .  (Revised by Wolf Lammen,
       9-Jan-2020.) $)
    r2alf $p |- ( A. x e. A A. y e. B ph <->
               A. x A. y ( ( x e. A /\ y e. B ) -> ph ) ) $=
      ( cv wcel wi nfcri 19.21 r2allem ) ABCDEBGDHCGEHAICCBDFJKL $.
  $}

  ${
    $d x y $.  $d y A $.
    $( Double restricted universal quantification.  (Contributed by NM,
       19-Nov-1995.)  Reduce dependencies on axioms.  (Revised by Wolf Lammen,
       9-Jan-2020.) $)
    r2al $p |- ( A. x e. A A. y e. B ph <->
               A. x A. y ( ( x e. A /\ y e. B ) -> ph ) ) $=
      ( cv wcel wi 19.21v r2allem ) ABCDEBFDGCFEGAHCIJ $.
  $}

  ${
    $d x y z $.  $d y z A $.  $d z B $.
    $( Triple restricted universal quantification.  (Contributed by NM,
       19-Nov-1995.)  (Proof shortened by Wolf Lammen, 30-Dec-2019.) $)
    r3al $p |- ( A. x e. A A. y e. B A. z e. C ph <->
               A. x A. y A. z ( ( x e. A /\ y e. B /\ z e. C ) -> ph ) ) $=
      ( wral cv wcel wa wi wal w3a r2al 19.21v df-3an imbi1i impexp bitri albii
      df-ral imbi2i 3bitr4ri 2albii ) ADGHZCFHBEHBIEJZCIFJZKZUFLZCMBMUGUHDIGJZN
      ZALZDMZCMBMUFBCEFOUJUNBCUIUKALZLZDMUIUODMZLUNUJUIUODPUMUPDUMUIUKKZALUPULU
      RAUGUHUKQRUIUKASTUAUFUQUIADGUBUCUDUET $.
  $}

  $( The setvar ` x ` is not free in ` A. x e. A ph ` .  (Contributed by NM,
     18-Oct-1996.)  (Revised by Mario Carneiro, 7-Oct-2016.) $)
  nfra1 $p |- F/ x A. x e. A ph $=
    ( wral cv wcel wi wal df-ral nfa1 nfxfr ) ABCDBECFAGZBHBABCILBJK $.

  $( The setvar ` x ` is not free in ` A. x e. A ph ` .  (Contributed by NM,
     18-Oct-1996.)  (Proof shortened by Wolf Lammen, 7-Dec-2019.) $)
  hbra1 $p |- ( A. x e. A ph -> A. x A. x e. A ph ) $=
    ( wral nfra1 nf5ri ) ABCDBABCEF $.

  ${
    hbral.1 $e |- ( y e. A -> A. x y e. A ) $.
    hbral.2 $e |- ( ph -> A. x ph ) $.
    $( Bound-variable hypothesis builder for restricted quantification.
       (Contributed by NM, 1-Sep-1999.)  (Revised by David Abernethy,
       13-Dec-2009.) $)
    hbral $p |- ( A. y e. A ph -> A. x A. y e. A ph ) $=
      ( wral cv wcel wi wal df-ral hbim hbal hbxfrbi ) ACDGCHDIZAJZCKBACDLQBCPA
      BEFMNO $.
  $}

  ${
    nfrald.1 $e |- F/ y ph $.
    nfrald.2 $e |- ( ph -> F/_ x A ) $.
    nfrald.3 $e |- ( ph -> F/ x ps ) $.
    $( Deduction version of ~ nfral .  (Contributed by NM, 15-Feb-2013.)
       (Revised by Mario Carneiro, 7-Oct-2016.) $)
    nfrald $p |- ( ph -> F/ x A. y e. A ps ) $=
      ( wral cv wcel wi wal df-ral weq wn wa wnfc nfcvf adantr adantl nfeld wnf
      nfimd nfald2 nfxfrd ) BDEIDJZEKZBLZDMACBDENAUICDFACDOCMPZQZUHBCUKCUGEUJCU
      GRACDSUAACERUJGTUBABCUCUJHTUDUEUF $.
  $}

  ${
    nfral.1 $e |- F/_ x A $.
    nfral.2 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for restricted quantification.
       (Contributed by NM, 1-Sep-1999.)  (Revised by Mario Carneiro,
       7-Oct-2016.) $)
    nfral $p |- F/ x A. y e. A ph $=
      ( wral wnf wtru nftru wnfc a1i nfrald trud ) ACDGBHIABCDCJBDKIELABHIFLMN
      $.
  $}

  ${
    $d A y $.
    $( Similar to Lemma 24 of [Monk2] p. 114, except the quantification of the
       antecedent is restricted.  Derived automatically from ~ hbra2VD .
       Contributed by Alan Sare 31-Dec-2011.  (Contributed by NM,
       31-Dec-2011.) $)
    nfra2 $p |- F/ y A. x e. A A. y e. B ph $=
      ( wral nfcv nfra1 nfral ) ACEFCBDCDGACEHI $.
  $}

  ${
    ral2imi.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference quantifying antecedent, nested antecedent, and consequent,
       with a strong hypothesis.  (Contributed by NM, 19-Dec-2006.)  Allow
       shortening of ~ ralim .  (Revised by Wolf Lammen, 1-Dec-2019.) $)
    ral2imi $p |- ( A. x e. A ph -> ( A. x e. A ps -> A. x e. A ch ) ) $=
      ( wral cv wcel wi wal df-ral imim3i al2imi 3imtr4g sylbi ) ADEGDHEIZAJZDK
      ZBDEGZCDEGZJADELSQBJZDKQCJZDKTUARUBUCDABCQFMNBDELCDELOP $.
  $}

  $( Distribution of restricted quantification over implication.  (Contributed
     by NM, 9-Feb-1997.)  (Proof shortened by Wolf Lammen, 1-Dec-2019.) $)
  ralim $p |- ( A. x e. A ( ph -> ps ) ->
               ( A. x e. A ph -> A. x e. A ps ) ) $=
    ( wi id ral2imi ) ABEZABCDHFG $.

  ${
    ralimi2.1 $e |- ( ( x e. A -> ph ) -> ( x e. B -> ps ) ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 22-Feb-2004.) $)
    ralimi2 $p |- ( A. x e. A ph -> A. x e. B ps ) $=
      ( cv wcel wi wal wral alimi df-ral 3imtr4i ) CGZDHAIZCJOEHBIZCJACDKBCEKPQ
      CFLACDMBCEMN $.
  $}

  ${
    ralimia.1 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 19-Jul-1996.) $)
    ralimia $p |- ( A. x e. A ph -> A. x e. A ps ) $=
      ( cv wcel a2i ralimi2 ) ABCDDCFDGABEHI $.
  $}

  ${
    ralimiaa.1 $e |- ( ( x e. A /\ ph ) -> ps ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 4-Aug-2007.) $)
    ralimiaa $p |- ( A. x e. A ph -> A. x e. A ps ) $=
      ( cv wcel ex ralimia ) ABCDCFDGABEHI $.
  $}

  ${
    ralimi.1 $e |- ( ph -> ps ) $.
    $( Inference quantifying both antecedent and consequent, with strong
       hypothesis.  (Contributed by NM, 4-Mar-1997.) $)
    ralimi $p |- ( A. x e. A ph -> A. x e. A ps ) $=
      ( wi cv wcel a1i ralimia ) ABCDABFCGDHEIJ $.

    $( Inference quantifying both antecedent and consequent two times, with
       strong hypothesis.  (Contributed by AV, 3-Dec-2021.) $)
    2ralimi $p |- ( A. x e. A A. y e. B ph -> A. x e. A A. y e. B ps ) $=
      ( wral ralimi ) ADFHBDFHCEABDFGII $.
  $}

  ${
    hbralrimi.1 $e |- ( ph -> A. x ph ) $.
    hbralrimi.2 $e |- ( ph -> ( x e. A -> ps ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90 (restricted quantifier
       version).  This theorem contains the common proof steps for ~ ralrimi
       and ~ ralrimiv .  Its main advantage over these two is its minimal
       references to axioms.  The proof is extracted from NM's previous work.
       (Contributed by Wolf Lammen, 4-Dec-2019.) $)
    hbralrimi $p |- ( ph -> A. x e. A ps ) $=
      ( cv wcel wi wal wral alrimih df-ral sylibr ) ACGDHBIZCJBCDKAOCEFLBCDMN
      $.
  $}

  $( Restricted quantifier version of ~ 19.21t ; closed form of ~ r19.21 .
     (Contributed by NM, 1-Mar-2008.)  (Proof shortened by Wolf Lammen,
     2-Jan-2020.) $)
  r19.21t $p |- ( F/ x ph ->
           ( A. x e. A ( ph -> ps ) <-> ( ph -> A. x e. A ps ) ) ) $=
    ( wnf cv wcel wi wal wral 19.21t df-ral bi2.04 albii bitri imbi2i 3bitr4g )
    ACEACFDGZBHZHZCIZASCIZHABHZCDJZABCDJZHASCKUDRUCHZCIUAUCCDLUFTCRABMNOUEUBABC
    DLPQ $.

  ${
    r19.21.1 $e |- F/ x ph $.
    $( Restricted quantifier version of ~ 19.21 .  (Contributed by Scott
       Fenton, 30-Mar-2011.) $)
    r19.21 $p |- ( A. x e. A ( ph -> ps ) <-> ( ph -> A. x e. A ps ) ) $=
      ( wnf wi wral wb r19.21t ax-mp ) ACFABGCDHABCDHGIEABCDJK $.
  $}

  ${
    ralrimi.1 $e |- F/ x ph $.
    ralrimi.2 $e |- ( ph -> ( x e. A -> ps ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 10-Oct-1999.)  Shortened after
       introduction of ~ hbralrimi .  (Revised by Wolf Lammen, 4-Dec-2019.) $)
    ralrimi $p |- ( ph -> A. x e. A ps ) $=
      ( nf5ri hbralrimi ) ABCDACEGFH $.
  $}

  ${
    ralimdaa.1 $e |- F/ x ph $.
    ralimdaa.2 $e |- ( ( ph /\ x e. A ) -> ( ps -> ch ) ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.20 of [Margaris] p. 90.  (Contributed by NM, 22-Sep-2003.)  (Proof
       shortened by Wolf Lammen, 29-Dec-2019.) $)
    ralimdaa $p |- ( ph -> ( A. x e. A ps -> A. x e. A ch ) ) $=
      ( wi wral cv wcel ex ralrimi ralim syl ) ABCHZDEIBDEICDEIHAPDEFADJEKPGLMB
      CDENO $.
  $}

  ${
    ralrimd.1 $e |- F/ x ph $.
    ralrimd.2 $e |- F/ x ps $.
    ralrimd.3 $e |- ( ph -> ( ps -> ( x e. A -> ch ) ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 16-Feb-2004.) $)
    ralrimd $p |- ( ph -> ( ps -> A. x e. A ch ) ) $=
      ( cv wcel wi wal wral alrimd df-ral syl6ibr ) ABDIEJCKZDLCDEMABQDFGHNCDEO
      P $.
  $}

  ${
    $d x ph $.
    $( Restricted quantifier version of ~ 19.21v .  (Contributed by NM,
       15-Oct-2003.)  (Proof shortened by Andrew Salmon, 30-May-2011.)  Reduce
       dependencies on axioms.  (Revised by Wolf Lammen, 2-Jan-2020.) $)
    r19.21v $p |- ( A. x e. A ( ph -> ps ) <-> ( ph -> A. x e. A ps ) ) $=
      ( cv wcel wi wal wral bi2.04 albii 19.21v bitri df-ral imbi2i 3bitr4i ) C
      EDFZABGZGZCHZAQBGZCHZGZRCDIABCDIZGTAUAGZCHUCSUECQABJKAUACLMRCDNUDUBABCDNO
      P $.
  $}

  ${
    $d x ph $.
    ralimdv2.1 $e |- ( ph -> ( ( x e. A -> ps ) -> ( x e. B -> ch ) ) ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 1-Feb-2005.) $)
    ralimdv2 $p |- ( ph -> ( A. x e. A ps -> A. x e. B ch ) ) $=
      ( cv wcel wi wal wral alimdv df-ral 3imtr4g ) ADHZEIBJZDKPFICJZDKBDELCDFL
      AQRDGMBDENCDFNO $.
  $}

  ${
    $d x ph $.
    ralimdva.1 $e |- ( ( ph /\ x e. A ) -> ( ps -> ch ) ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.20 of [Margaris] p. 90.  (Contributed by NM, 22-May-1999.)  Reduce
       dependencies on axioms.  (Revised by Wolf Lammen, 5-Dec-2019.) $)
    ralimdva $p |- ( ph -> ( A. x e. A ps -> A. x e. A ch ) ) $=
      ( cv wcel wi ex a2d ralimdv2 ) ABCDEEADGEHZBCAMBCIFJKL $.
  $}

  ${
    $d x ph $.
    ralimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.20 of [Margaris] p. 90 ( ~ alim ).  (Contributed by NM,
       8-Oct-2003.) $)
    ralimdv $p |- ( ph -> ( A. x e. A ps -> A. x e. A ch ) ) $=
      ( wi cv wcel adantr ralimdva ) ABCDEABCGDHEIFJK $.
  $}

  ${
    $d y A $.  $d x y ph $.
    ralimdvva.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> ( ps -> ch ) ) $.
    $( Deduction doubly quantifying both antecedent and consequent, based on
       Theorem 19.20 of [Margaris] p. 90 ( ~ alim ).  (Contributed by AV,
       27-Nov-2019.) $)
    ralimdvva $p |- ( ph
                   -> ( A. x e. A A. y e. B ps -> A. x e. A A. y e. B ch ) ) $=
      ( wral cv wcel wa wi anassrs ralimdva ) ABEGICEGIDFADJFKZLBCEGAPEJGKBCMHN
      OO $.
  $}

  ${
    $d x ph $.
    ralrimiv.1 $e |- ( ph -> ( x e. A -> ps ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 22-Nov-1994.)  Reduce
       dependencies on axioms.  (Revised by Wolf Lammen, 4-Dec-2019.) $)
    ralrimiv $p |- ( ph -> A. x e. A ps ) $=
      ( ax-5 hbralrimi ) ABCDACFEG $.
  $}

  ${
    $d x ph $.
    ralrimiva.1 $e |- ( ( ph /\ x e. A ) -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 2-Jan-2006.) $)
    ralrimiva $p |- ( ph -> A. x e. A ps ) $=
      ( cv wcel ex ralrimiv ) ABCDACFDGBEHI $.
  $}

  ${
    $d x ph $.
    ralrimivw.1 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 18-Jun-2014.) $)
    ralrimivw $p |- ( ph -> A. x e. A ps ) $=
      ( cv wcel a1d ralrimiv ) ABCDABCFDGEHI $.
  $}

  ${
    $d x ph $.  $d x ps $.
    ralrimdv.1 $e |- ( ph -> ( ps -> ( x e. A -> ch ) ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 27-May-1998.)  Reduce
       dependencies on axioms.  (Revised by Wolf Lammen, 28-Dec-2019.) $)
    ralrimdv $p |- ( ph -> ( ps -> A. x e. A ch ) ) $=
      ( wral wa cv wcel wi imp ralrimiv ex ) ABCDEGABHCDEABDIEJCKFLMN $.
  $}

  ${
    $d x ph $.  $d x ps $.
    ralrimdva.1 $e |- ( ( ph /\ x e. A ) -> ( ps -> ch ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 2-Feb-2008.)  (Proof shortened
       by Wolf Lammen, 28-Dec-2019.) $)
    ralrimdva $p |- ( ph -> ( ps -> A. x e. A ch ) ) $=
      ( cv wcel expimpd expcomd ralrimdv ) ABCDEADGEHZBCALBCFIJK $.
  $}

  ${
    $d x y ph $.  $d y A $.
    ralrimivv.1 $e |- ( ph -> ( ( x e. A /\ y e. B ) -> ps ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version with double quantification.)  (Contributed by NM,
       24-Jul-2004.) $)
    ralrimivv $p |- ( ph -> A. x e. A A. y e. B ps ) $=
      ( wral cv wcel expd ralrimdv ralrimiv ) ABDFHCEACIEJZBDFANDIFJBGKLM $.
  $}

  ${
    $d ph x y $.  $d A y $.
    ralrimivva.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version with double quantification.)  (Contributed by Jeff
       Madsen, 19-Jun-2011.) $)
    ralrimivva $p |- ( ph -> A. x e. A A. y e. B ps ) $=
      ( cv wcel wa ex ralrimivv ) ABCDEFACHEIDHFIJBGKL $.
  $}

  ${
    $d ph x y z $.  $d A y z $.  $d B z $.
    ralrimivvva.1 $e |- ( ( ph /\ ( x e. A /\ y e. B /\ z e. C ) ) -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version with triple quantification.)  (Contributed by Mario
       Carneiro, 9-Jul-2014.) $)
    ralrimivvva $p |- ( ph -> A. x e. A A. y e. B A. z e. C ps ) $=
      ( wral cv wcel wa 3anassrs ralrimiva ) ABEHJZDGJCFACKFLZMZPDGRDKGLZMBEHAQ
      SEKHLBINOOO $.
  $}

  ${
    $d x y ph $.  $d x y ps $.  $d y A $.
    ralrimdvv.1 $e |- ( ph -> ( ps -> ( ( x e. A /\ y e. B ) -> ch ) ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version with double quantification.)  (Contributed by NM,
       1-Jun-2005.) $)
    ralrimdvv $p |- ( ph -> ( ps -> A. x e. A A. y e. B ch ) ) $=
      ( wral wa cv wcel wi imp ralrimivv ex ) ABCEGIDFIABJCDEFGABDKFLEKGLJCMHNO
      P $.
  $}

  ${
    $d x y ph $.  $d x y ps $.  $d y A $.
    ralrimdvva.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> ( ps -> ch ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version with double quantification.)  (Contributed by NM,
       2-Feb-2008.) $)
    ralrimdvva $p |- ( ph -> ( ps -> A. x e. A A. y e. B ch ) ) $=
      ( cv wcel wa wi ex com23 ralrimdvv ) ABCDEFGADIFJEIGJKZBCAPBCLHMNO $.
  $}

  ${
    $d x y $.  $d y A $.
    rgen2.1 $e |- ( ( x e. A /\ y e. B ) -> ph ) $.
    $( Generalization rule for restricted quantification, with two quantifiers.
       (Contributed by NM, 30-May-1999.) $)
    rgen2 $p |- A. x e. A A. y e. B ph $=
      ( wral cv wcel ralrimiva rgen ) ACEGBDBHDIACEFJK $.
  $}

  ${
    $d y z A $.  $d z B $.  $d x y z $.
    rgen3.1 $e |- ( ( x e. A /\ y e. B /\ z e. C ) -> ph ) $.
    $( Generalization rule for restricted quantification, with three
       quantifiers.  (Contributed by NM, 12-Jan-2008.) $)
    rgen3 $p |- A. x e. A A. y e. B A. z e. C ph $=
      ( wral cv wcel wa 3expa ralrimiva rgen2 ) ADGIBCEFBJEKZCJFKZLADGPQDJGKAHM
      NO $.
  $}

  ${
    $d y z A $.  $d x z $.
    rgen2a.1 $e |- ( ( x e. A /\ y e. A ) -> ph ) $.
    $( Generalization rule for restricted quantification.  Note that ` x ` and
       ` y ` are not required to be disjoint.  This proof illustrates the use
       of ~ dvelim .  (Contributed by NM, 23-Nov-1994.)  (Proof shortened by
       Andrew Salmon, 25-May-2011.)  (Proof shortened by Wolf Lammen,
       1-Jan-2020.)  (Proof modification is discouraged.) $)
    rgen2a $p |- A. x e. A A. y e. A ph $=
      ( vz wral cv wcel wi wal weq wn eleq1 dvelimv alimi syl6com biimpd syli
      ex pm2.61d2 df-ral sylibr rgen ) ACDGZBDBHZDIZCHZDIZAJZCKZUEUGCBLZCKZUKUM
      MUGUGCKUKFHZDIUGCBFUNUFDNOUGUJCUGUIAETZPQULUJCUIULUGAULUIUGUHUFDNRUOSPUAA
      CDUBUCUD $.
  $}

  ${
    ralbii2.1 $e |- ( ( x e. A -> ph ) <-> ( x e. B -> ps ) ) $.
    $( Inference adding different restricted universal quantifiers to each side
       of an equivalence.  (Contributed by NM, 15-Aug-2005.) $)
    ralbii2 $p |- ( A. x e. A ph <-> A. x e. B ps ) $=
      ( cv wcel wi wal wral albii df-ral 3bitr4i ) CGZDHAIZCJOEHBIZCJACDKBCEKPQ
      CFLACDMBCEMN $.
  $}

  ${
    ralbiia.1 $e |- ( x e. A -> ( ph <-> ps ) ) $.
    $( Inference adding restricted universal quantifier to both sides of an
       equivalence.  (Contributed by NM, 26-Nov-2000.) $)
    ralbiia $p |- ( A. x e. A ph <-> A. x e. A ps ) $=
      ( cv wcel pm5.74i ralbii2 ) ABCDDCFDGABEHI $.
  $}

  ${
    ralbii.1 $e |- ( ph <-> ps ) $.
    $( Inference adding restricted universal quantifier to both sides of an
       equivalence.  (Contributed by NM, 23-Nov-1994.)  (Revised by Mario
       Carneiro, 17-Oct-2016.)  (Proof shortened by Wolf Lammen,
       4-Dec-2019.) $)
    ralbii $p |- ( A. x e. A ph <-> A. x e. A ps ) $=
      ( cv wcel imbi2i ralbii2 ) ABCDDABCFDGEHI $.

    $( Inference adding two restricted universal quantifiers to both sides of
       an equivalence.  (Contributed by NM, 1-Aug-2004.) $)
    2ralbii $p |- ( A. x e. A A. y e. B ph <-> A. x e. A A. y e. B ps ) $=
      ( wral ralbii ) ADFHBDFHCEABDFGII $.
  $}

  ${
    ralbida.1 $e |- F/ x ph $.
    ralbida.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 6-Oct-2003.) $)
    ralbida $p |- ( ph -> ( A. x e. A ps <-> A. x e. A ch ) ) $=
      ( cv wcel wi wal wral pm5.74da albid df-ral 3bitr4g ) ADHEIZBJZDKQCJZDKBD
      ELCDELARSDFAQBCGMNBDEOCDEOP $.
  $}

  ${
    ralbid.1 $e |- F/ x ph $.
    ralbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 27-Jun-1998.) $)
    ralbid $p |- ( ph -> ( A. x e. A ps <-> A. x e. A ch ) ) $=
      ( wb cv wcel adantr ralbida ) ABCDEFABCHDIEJGKL $.
  $}

  ${
    $d x ph $.
    ralbidv2.1 $e |- ( ph -> ( ( x e. A -> ps ) <-> ( x e. B -> ch ) ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 6-Apr-1997.) $)
    ralbidv2 $p |- ( ph -> ( A. x e. A ps <-> A. x e. B ch ) ) $=
      ( cv wcel wi wal wral albidv df-ral 3bitr4g ) ADHZEIBJZDKPFICJZDKBDELCDFL
      AQRDGMBDENCDFNO $.
  $}

  ${
    $d x ph $.
    ralbidva.1 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 4-Mar-1997.)  Reduce dependencies on axioms.
       (Revised by Wolf Lammen, 29-Dec-2019.) $)
    ralbidva $p |- ( ph -> ( A. x e. A ps <-> A. x e. A ch ) ) $=
      ( cv wcel pm5.74da ralbidv2 ) ABCDEEADGEHBCFIJ $.
  $}

  ${
    $d x ph $.
    ralbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 20-Nov-1994.)  Reduce dependencies on
       axioms.  (Revised by Wolf Lammen, 5-Dec-2019.) $)
    ralbidv $p |- ( ph -> ( A. x e. A ps <-> A. x e. A ch ) ) $=
      ( wb cv wcel adantr ralbidva ) ABCDEABCGDHEIFJK $.
  $}

  ${
    $d x y $.  $d y A $.
    2ralbida.1 $e |- F/ x ph $.
    2ralbida.2 $e |- F/ y ph $.
    2ralbida.3 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 24-Feb-2004.) $)
    2ralbida $p |- ( ph ->
                     ( A. x e. A A. y e. B ps <-> A. x e. A A. y e. B ch ) ) $=
      ( wral cv wcel wa nfv nfan wb anassrs ralbida ) ABEGKCEGKDFHADLFMZNBCEGAT
      EITEOPATELGMBCQJRSS $.
  $}

  ${
    $d x y ph $.  $d y A $.
    2ralbidva.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifiers (deduction
       rule).  (Contributed by NM, 4-Mar-1997.)  Reduce dependencies on axioms.
       (Revised by Wolf Lammen, 9-Dec-2019.) $)
    2ralbidva $p |- ( ph ->
                     ( A. x e. A A. y e. B ps <-> A. x e. A A. y e. B ch ) ) $=
      ( wral cv wcel wa wb anassrs ralbidva ) ABEGICEGIDFADJFKZLBCEGAPEJGKBCMHN
      OO $.
  $}

  ${
    $d x ph $.  $d y ph $.
    2ralbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifiers (deduction
       rule).  (Contributed by NM, 28-Jan-2006.)  (Revised by Szymon
       Jaroszewicz, 16-Mar-2007.) $)
    2ralbidv $p |- ( ph ->
                     ( A. x e. A A. y e. B ps <-> A. x e. A A. y e. B ch ) ) $=
      ( wral ralbidv ) ABEGICEGIDFABCEGHJJ $.
  $}

  ${
    raleqbii.1 $e |- A = B $.
    raleqbii.2 $e |- ( ps <-> ch ) $.
    $( Equality deduction for restricted universal quantifier, changing both
       formula and quantifier domain.  Inference form.  (Contributed by David
       Moews, 1-May-2017.) $)
    raleqbii $p |- ( A. x e. A ps <-> A. x e. B ch ) $=
      ( cv wcel eleq2i imbi12i ralbii2 ) ABCDECHZDIMEIABDEMFJGKL $.
  $}

  $( Restricted universally quantified negation expressed as a universally
     quantified negation.  (Contributed by BJ, 16-Jul-2021.) $)
  raln $p |- ( A. x e. A -. ph <-> A. x -. ( x e. A /\ ph ) ) $=
    ( wn wral cv wcel wi wal wa df-ral imnang bitri ) ADZBCEBFCGZNHBIOAJDBINBCK
    OABLM $.

  $( Relationship between restricted universal and existential quantifiers.
     (Contributed by NM, 21-Jan-1997.)  (Proof shortened by BJ,
     16-Jul-2021.) $)
  ralnex $p |- ( A. x e. A -. ph <-> -. E. x e. A ph ) $=
    ( wn wral cv wcel wa wal wrex raln wex alnex df-rex xchbinxr bitri ) ADBCEB
    FCGAHZDBIZABCJZDABCKRQBLSQBMABCNOP $.

  $( Obsolete proof of ~ ralnex as of 16-Jul-2021.  (Contributed by NM,
     21-Jan-1997.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  ralnexOLD $p |- ( A. x e. A -. ph <-> -. E. x e. A ph ) $=
    ( wn wral cv wcel wi wal wrex df-ral wa wex alinexa df-rex xchbinxr bitri )
    ADZBCEBFCGZRHBIZABCJZDRBCKTSALBMUASABNABCOPQ $.

  $( Relationship between restricted universal and existential quantifiers.
     (Contributed by NM, 21-Jan-1997.)  Allow shortening of ~ rexnal .
     (Revised by Wolf Lammen, 9-Dec-2019.) $)
  dfral2 $p |- ( A. x e. A ph <-> -. E. x e. A -. ph ) $=
    ( wral wn wrex notnotb ralbii ralnex bitri ) ABCDAEZEZBCDKBCFEALBCAGHKBCIJ
    $.

  $( Relationship between restricted universal and existential quantifiers.
     (Contributed by NM, 21-Jan-1997.)  (Proof shortened by Wolf Lammen,
     9-Dec-2019.) $)
  rexnal $p |- ( E. x e. A -. ph <-> -. A. x e. A ph ) $=
    ( wral wn wrex dfral2 con2bii ) ABCDAEBCFABCGH $.

  $( Relationship between restricted universal and existential quantifiers.
     (Contributed by NM, 21-Jan-1997.)  (Proof shortened by Wolf Lammen,
     26-Nov-2019.) $)
  dfrex2 $p |- ( E. x e. A ph <-> -. A. x e. A -. ph ) $=
    ( wn wral wrex ralnex con2bii ) ADBCEABCFABCGH $.

  $( A transformation of restricted quantifiers and logical connectives.
     (Contributed by NM, 4-Sep-2005.) $)
  ralinexa $p |- ( A. x e. A ( ph -> -. ps ) <-> -. E. x e. A ( ph /\ ps ) ) $=
    ( wn wi wral wa wrex imnan ralbii ralnex bitri ) ABEFZCDGABHZEZCDGOCDIENPCD
    ABJKOCDLM $.

  $( A transformation of restricted quantifiers and logical connectives.
     (Contributed by NM, 4-Sep-2005.)  (Proof shortened by Wolf Lammen,
     27-Dec-2019.) $)
  rexanali $p |- ( E. x e. A ( ph /\ -. ps ) <-> -. A. x e. A ( ph -> ps ) ) $=
    ( wn wa wrex wral wi dfrex2 iman ralbii xchbinxr ) ABEFZCDGNEZCDHABIZCDHNCD
    JPOCDABKLM $.

  $( Negation of a complex predicate calculus formula.  (Contributed by FL,
     31-Jul-2009.) $)
  nrexralim $p |- ( -. E. x e. A A. y e. B ( ph -> ps )
     <-> A. x e. A E. y e. B ( ph /\ -. ps ) ) $=
    ( wn wa wrex wral wi rexanali ralbii ralnex bitr2i ) ABGHDFIZCEJABKDFJZGZCE
    JQCEIGPRCEABDFLMQCENO $.

  ${
    nrex.1 $e |- ( x e. A -> -. ps ) $.
    $( Inference adding restricted existential quantifier to negated wff.
       (Contributed by NM, 16-Oct-2003.) $)
    nrex $p |- -. E. x e. A ps $=
      ( wn wral wrex rgen ralnex mpbi ) AEZBCFABCGEKBCDHABCIJ $.
  $}

  ${
    $d x ph $.
    nrexdv.1 $e |- ( ( ph /\ x e. A ) -> -. ps ) $.
    $( Deduction adding restricted existential quantifier to negated wff.
       (Contributed by NM, 16-Oct-2003.)  (Proof shortened by Wolf Lammen,
       5-Jan-2020.) $)
    nrexdv $p |- ( ph -> -. E. x e. A ps ) $=
      ( wn wral wrex ralrimiva ralnex sylib ) ABFZCDGBCDHFALCDEIBCDJK $.
  $}

  $( Restricted existence implies existence.  (Contributed by NM,
     11-Nov-1995.) $)
  rexex $p |- ( E. x e. A ph -> E. x ph ) $=
    ( wrex cv wcel wa wex df-rex exsimpr sylbi ) ABCDBECFZAGBHABHABCILABJK $.

  $( Restricted specialization.  (Contributed by NM, 12-Oct-1999.) $)
  rspe $p |- ( ( x e. A /\ ph ) -> E. x e. A ph ) $=
    ( cv wcel wa wex wrex 19.8a df-rex sylibr ) BDCEAFZLBGABCHLBIABCJK $.

  $( Restricted specialization.  (Contributed by FL, 4-Jun-2012.)  (Proof
     shortened by Wolf Lammen, 7-Jan-2020.) $)
  rsp2e $p |- ( ( x e. A /\ y e. B /\ ph ) -> E. x e. A E. y e. B ph ) $=
    ( cv wcel wrex wa rspe sylan2 3impb ) BFDGZCFEGZAACEHZBDHZNAIMOPACEJOBDJKL
    $.

  $( The setvar ` x ` is not free in ` E. x e. A ph ` .  (Contributed by NM,
     19-Mar-1997.)  (Revised by Mario Carneiro, 7-Oct-2016.) $)
  nfre1 $p |- F/ x E. x e. A ph $=
    ( wrex cv wcel wa wex df-rex nfe1 nfxfr ) ABCDBECFAGZBHBABCILBJK $.

  ${
    nfrexd.1 $e |- F/ y ph $.
    nfrexd.2 $e |- ( ph -> F/_ x A ) $.
    nfrexd.3 $e |- ( ph -> F/ x ps ) $.
    $( Deduction version of ~ nfrex .  (Contributed by Mario Carneiro,
       14-Oct-2016.) $)
    nfrexd $p |- ( ph -> F/ x E. y e. A ps ) $=
      ( wrex wn wral dfrex2 nfnd nfrald nfxfrd ) BDEIBJZDEKZJACBDELAQCAPCDEFGAB
      CHMNMO $.
  $}

  ${
    nfrex.1 $e |- F/_ x A $.
    nfrex.2 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for restricted quantification.
       (Contributed by NM, 1-Sep-1999.)  (Revised by Mario Carneiro,
       7-Oct-2016.)  (Proof shortened by Wolf Lammen, 30-Dec-2019.) $)
    nfrex $p |- F/ x E. y e. A ph $=
      ( wrex wnf wtru nftru wnfc a1i nfrexd trud ) ACDGBHIABCDCJBDKIELABHIFLMN
      $.
  $}

  $( Theorem 19.22 of [Margaris] p. 90.  (Restricted quantifier version.)
     (Contributed by NM, 22-Nov-1994.)  (Proof shortened by Andrew Salmon,
     30-May-2011.) $)
  rexim $p |- ( A. x e. A ( ph -> ps ) ->
               ( E. x e. A ph -> E. x e. A ps ) ) $=
    ( wi wral wn wrex con3 ral2imi con3d dfrex2 3imtr4g ) ABEZCDFZAGZCDFZGBGZCD
    FZGACDHBCDHOSQNRPCDABIJKACDLBCDLM $.

  ${
    reximia.1 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 10-Feb-1997.) $)
    reximia $p |- ( E. x e. A ph -> E. x e. A ps ) $=
      ( wi wrex rexim mprg ) ABFACDGBCDGFCDABCDHEI $.
  $}

  ${
    reximi2.1 $e |- ( ( x e. A /\ ph ) -> ( x e. B /\ ps ) ) $.
    $( Inference quantifying both antecedent and consequent, based on Theorem
       19.22 of [Margaris] p. 90.  (Contributed by NM, 8-Nov-2004.) $)
    reximi2 $p |- ( E. x e. A ph -> E. x e. B ps ) $=
      ( cv wcel wa wex wrex eximi df-rex 3imtr4i ) CGZDHAIZCJOEHBIZCJACDKBCEKPQ
      CFLACDMBCEMN $.
  $}

  ${
    reximi.1 $e |- ( ph -> ps ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 18-Oct-1996.) $)
    reximi $p |- ( E. x e. A ph -> E. x e. A ps ) $=
      ( wi cv wcel a1i reximia ) ABCDABFCGDHEIJ $.
  $}

  ${
    reximdai.1 $e |- F/ x ph $.
    reximdai.2 $e |- ( ph -> ( x e. A -> ( ps -> ch ) ) ) $.
    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 31-Aug-1999.) $)
    reximdai $p |- ( ph -> ( E. x e. A ps -> E. x e. A ch ) ) $=
      ( wi wral wrex ralrimi rexim syl ) ABCHZDEIBDEJCDEJHANDEFGKBCDELM $.
  $}

  ${
    reximd2a.1 $e |- F/ x ph $.
    reximd2a.2 $e |- ( ( ( ph /\ x e. A ) /\ ps ) -> x e. B ) $.
    reximd2a.3 $e |- ( ( ( ph /\ x e. A ) /\ ps ) -> ch ) $.
    reximd2a.4 $e |- ( ph -> E. x e. A ps ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.22 of [Margaris] p. 90.  (Contributed by Thierry Arnoux,
       27-Jan-2020.) $)
    reximd2a $p |- ( ph -> E. x e. B ch ) $=
      ( wrex cv wcel wa wex jca expl eximd df-rex 3imtr4g mpd ) ABDEKZCDFKZJADL
      ZEMZBNZDOUDFMZCNZDOUBUCAUFUHDGAUEBUHAUENBNUGCHIPQRBDESCDFSTUA $.
  $}

  ${
    $d x ph $.
    reximdv2.1 $e |- ( ph -> ( ( x e. A /\ ps ) -> ( x e. B /\ ch ) ) ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.22 of [Margaris] p. 90.  (Contributed by NM, 17-Sep-2003.) $)
    reximdv2 $p |- ( ph -> ( E. x e. A ps -> E. x e. B ch ) ) $=
      ( cv wcel wa wex wrex eximdv df-rex 3imtr4g ) ADHZEIBJZDKPFICJZDKBDELCDFL
      AQRDGMBDENCDFNO $.
  $}

  ${
    $d x ph $.
    reximdvai.1 $e |- ( ph -> ( x e. A -> ( ps -> ch ) ) ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.22 of [Margaris] p. 90.  (Contributed by NM, 14-Nov-2002.)  Reduce
       dependencies on axioms.  (Revised by Wolf Lammen, 8-Jan-2020.) $)
    reximdvai $p |- ( ph -> ( E. x e. A ps -> E. x e. A ch ) ) $=
      ( wi wral wrex ralrimiv rexim syl ) ABCGZDEHBDEICDEIGAMDEFJBCDEKL $.
  $}

  ${
    $d x ph $.
    reximdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Restricted
       quantifier version with strong hypothesis.)  (Contributed by NM,
       24-Jun-1998.) $)
    reximdv $p |- ( ph -> ( E. x e. A ps -> E. x e. A ch ) ) $=
      ( wi cv wcel a1d reximdvai ) ABCDEABCGDHEIFJK $.
  $}

  ${
    $d x ph $.
    reximdva.1 $e |- ( ( ph /\ x e. A ) -> ( ps -> ch ) ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.22 of [Margaris] p. 90.  (Contributed by NM, 22-May-1999.) $)
    reximdva $p |- ( ph -> ( E. x e. A ps -> E. x e. A ch ) ) $=
      ( cv wcel wi ex reximdvai ) ABCDEADGEHBCIFJK $.
  $}

  ${
    $d x ph $.
    reximddva.1 $e |- ( ( ph /\ ( x e. A /\ ps ) ) -> ch ) $.
    reximddva.2 $e |- ( ph -> E. x e. A ps ) $.
    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Contributed by
       Thierry Arnoux, 7-Dec-2016.) $)
    reximddv $p |- ( ph -> E. x e. A ch ) $=
      ( wrex cv wcel expr reximdva mpd ) ABDEHCDEHGABCDEADIEJBCFKLM $.
  $}

  ${
    $d y A $.  $d x y ph $.
    reximdvva.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> ( ps -> ch ) ) $.
    $( Deduction doubly quantifying both antecedent and consequent, based on
       Theorem 19.22 of [Margaris] p. 90.  (Contributed by AV, 5-Jan-2022.) $)
    reximdvva $p |- ( ph
                   -> ( E. x e. A E. y e. B ps -> E. x e. A E. y e. B ch ) ) $=
      ( wrex cv wcel wa wi anassrs reximdva ) ABEGICEGIDFADJFKZLBCEGAPEJGKBCMHN
      OO $.
  $}

  ${
    $d A y $.  $d ph x y $.
    reximddv2.1 $e |- ( ( ( ( ph /\ x e. A ) /\ y e. B ) /\ ps ) -> ch ) $.
    reximddv2.2 $e |- ( ph -> E. x e. A E. y e. B ps ) $.
    $( Double deduction from Theorem 19.22 of [Margaris] p. 90.  (Contributed
       by Thierry Arnoux, 15-Dec-2019.) $)
    reximddv2 $p |- ( ph -> E. x e. A E. y e. B ch ) $=
      ( wrex cv wcel wa ex reximdva impr reximddv ) ABEGJZCEGJZDFADKFLZRSATMZBC
      EGUAEKGLMBCHNOPIQ $.
  $}

  $( Closed theorem form of ~ r19.23 .  (Contributed by NM, 4-Mar-2013.)
     (Revised by Mario Carneiro, 8-Oct-2016.) $)
  r19.23t $p |- ( F/ x ps ->
    ( A. x e. A ( ph -> ps ) <-> ( E. x e. A ph -> ps ) ) ) $=
    ( wnf cv wcel wa wal wex wral wrex 19.23t df-ral impexp albii bitr4i df-rex
    wi imbi1i 3bitr4g ) BCECFDGZAHZBSZCIZUCCJZBSABSZCDKZACDLZBSUCBCMUHUBUGSZCIU
    EUGCDNUDUJCUBABOPQUIUFBACDRTUA $.

  ${
    r19.23.1 $e |- F/ x ps $.
    $( Restricted quantifier version of ~ 19.23 .  See ~ r19.23v for a version
       requiring fewer axioms.  (Contributed by NM, 22-Oct-2010.)  (Proof
       shortened by Mario Carneiro, 8-Oct-2016.) $)
    r19.23 $p |- ( A. x e. A ( ph -> ps ) <-> ( E. x e. A ph -> ps ) ) $=
      ( wnf wi wral wrex wb r19.23t ax-mp ) BCFABGCDHACDIBGJEABCDKL $.
  $}

  ${
    $d x ps $.
    $( Restricted quantifier version of ~ 19.23v .  Version of ~ r19.23 with a
       dv condition.  (Contributed by NM, 31-Aug-1999.)  Reduce dependencies on
       axioms.  (Revised by Wolf Lammen, 14-Jan-2020.) $)
    r19.23v $p |- ( A. x e. A ( ph -> ps ) <-> ( E. x e. A ph -> ps ) ) $=
      ( wi wral wn wrex con34b ralbii r19.21v dfrex2 imbi1i con1b bitr2i 3bitri
      ) ABEZCDFBGZAGZEZCDFRSCDFZEZACDHZBEZQTCDABIJRSCDKUDUAGZBEUBUCUEBACDLMUABN
      OP $.
  $}

  ${
    rexlimi.1 $e |- F/ x ps $.
    rexlimi.2 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Restricted quantifier version of ~ exlimi .  (Contributed by NM,
       30-Nov-2003.)  (Proof shortened by Andrew Salmon, 30-May-2011.) $)
    rexlimi $p |- ( E. x e. A ph -> ps ) $=
      ( wi wral wrex rgen r19.23 mpbi ) ABGZCDHACDIBGMCDFJABCDEKL $.
  $}

  ${
    rexlimd2.1 $e |- F/ x ph $.
    rexlimd2.2 $e |- ( ph -> F/ x ch ) $.
    rexlimd2.3 $e |- ( ph -> ( x e. A -> ( ps -> ch ) ) ) $.
    $( Version of ~ rexlimd with deduction version of second hypothesis.
       (Contributed by NM, 21-Jul-2013.)  (Revised by Mario Carneiro,
       8-Oct-2016.) $)
    rexlimd2 $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( wi wral wrex ralrimi wnf wb r19.23t syl mpbid ) ABCIZDEJZBDEKCIZARDEFHL
      ACDMSTNGBCDEOPQ $.
  $}

  ${
    rexlimd.1 $e |- F/ x ph $.
    rexlimd.2 $e |- F/ x ch $.
    rexlimd.3 $e |- ( ph -> ( x e. A -> ( ps -> ch ) ) ) $.
    $( Deduction form of ~ rexlimd .  (Contributed by NM, 27-May-1998.)  (Proof
       shortened by Andrew Salmon, 30-May-2011.)  (Proof shortened by Wolf
       Lammen, 14-Jan-2020.) $)
    rexlimd $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( wnf a1i rexlimd2 ) ABCDEFCDIAGJHK $.
  $}

  ${
    $d x ps $.
    rexlimiv.1 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 20-Nov-1994.)  Reduce
       dependencies on axioms.  (Revised by Wolf Lammen, 14-Jan-2020.) $)
    rexlimiv $p |- ( E. x e. A ph -> ps ) $=
      ( wi wral wrex rgen r19.23v mpbi ) ABFZCDGACDHBFLCDEIABCDJK $.
  $}

  ${
    $d x ps $.
    rexlimiva.1 $e |- ( ( x e. A /\ ph ) -> ps ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 18-Dec-2006.) $)
    rexlimiva $p |- ( E. x e. A ph -> ps ) $=
      ( cv wcel ex rexlimiv ) ABCDCFDGABEHI $.
  $}

  ${
    $d ps x $.
    rexlimivw.1 $e |- ( ph -> ps ) $.
    $( Weaker version of ~ rexlimiv .  (Contributed by FL, 19-Sep-2011.) $)
    rexlimivw $p |- ( E. x e. A ph -> ps ) $=
      ( wi cv wcel a1i rexlimiv ) ABCDABFCGDHEIJ $.
  $}

  ${
    $d x ph $.  $d x ch $.
    rexlimdv.1 $e |- ( ph -> ( x e. A -> ( ps -> ch ) ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 14-Nov-2002.)  (Proof shortened by Eric
       Schmidt, 22-Dec-2006.)  Reduce dependencies on axioms.  (Revised by Wolf
       Lammen, 14-Jan-2020.) $)
    rexlimdv $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( wrex wi cv wcel com3l rexlimiv com12 ) BDEGACBACHDEADIEJBCFKLM $.
  $}

  ${
    $d x ph $.  $d x ch $.
    rexlimdva.1 $e |- ( ( ph /\ x e. A ) -> ( ps -> ch ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 20-Jan-2007.) $)
    rexlimdva $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( cv wcel wi ex rexlimdv ) ABCDEADGEHBCIFJK $.
  $}

  ${
    $d x ph $.  $d x ch $.
    rexlimdvaa.1 $e |- ( ( ph /\ ( x e. A /\ ps ) ) -> ch ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by Mario Carneiro, 15-Jun-2016.) $)
    rexlimdvaa $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( cv wcel expr rexlimdva ) ABCDEADGEHBCFIJ $.
  $}

  ${
    $d x ph $.  $d x ch $.
    rexlimdv3a.1 $e |- ( ( ph /\ x e. A /\ ps ) -> ch ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  Frequently-used variant of ~ rexlimdv .  (Contributed by NM,
       7-Jun-2015.) $)
    rexlimdv3a $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( cv wcel 3exp rexlimdv ) ABCDEADGEHBCFIJ $.
  $}

  ${
    $d x ph $.  $d x ch $.
    rexlimdvw.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 18-Jun-2014.) $)
    rexlimdvw $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( wi cv wcel a1d rexlimdv ) ABCDEABCGDHEIFJK $.
  $}

  ${
    $d x ph $.  $d x ch $.
    rexlimddv.1 $e |- ( ph -> E. x e. A ps ) $.
    rexlimddv.2 $e |- ( ( ph /\ ( x e. A /\ ps ) ) -> ch ) $.
    $( Restricted existential elimination rule of natural deduction.
       (Contributed by Mario Carneiro, 15-Jun-2016.) $)
    rexlimddv $p |- ( ph -> ch ) $=
      ( wrex rexlimdvaa mpd ) ABDEHCFABCDEGIJ $.
  $}

  ${
    $d x y ps $.  $d y A $.
    rexlimivv.1 $e |- ( ( x e. A /\ y e. B ) -> ( ph -> ps ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 17-Feb-2004.) $)
    rexlimivv $p |- ( E. x e. A E. y e. B ph -> ps ) $=
      ( wrex cv wcel rexlimdva rexlimiv ) ADFHBCECIEJABDFGKL $.
  $}

  ${
    $d x y ph $.  $d x y ch $.  $d y A $.
    rexlimdvv.1 $e |- ( ph -> ( ( x e. A /\ y e. B ) -> ( ps -> ch ) ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 22-Jul-2004.) $)
    rexlimdvv $p |- ( ph -> ( E. x e. A E. y e. B ps -> ch ) ) $=
      ( wrex cv wcel wa wi expdimp rexlimdv rexlimdva ) ABEGICDFADJFKZLBCEGAQEJ
      GKBCMHNOP $.
  $}

  ${
    $d x y ph $.  $d x y ch $.  $d y A $.
    rexlimdvva.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> ( ps -> ch ) ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (Contributed by NM, 18-Jun-2014.) $)
    rexlimdvva $p |- ( ph -> ( E. x e. A E. y e. B ps -> ch ) ) $=
      ( cv wcel wa wi ex rexlimdvv ) ABCDEFGADIFJEIGJKBCLHMN $.
  $}

  ${
    rexbii2.1 $e |- ( ( x e. A /\ ph ) <-> ( x e. B /\ ps ) ) $.
    $( Inference adding different restricted existential quantifiers to each
       side of an equivalence.  (Contributed by NM, 4-Feb-2004.) $)
    rexbii2 $p |- ( E. x e. A ph <-> E. x e. B ps ) $=
      ( cv wcel wa wex wrex exbii df-rex 3bitr4i ) CGZDHAIZCJOEHBIZCJACDKBCEKPQ
      CFLACDMBCEMN $.
  $}

  ${
    rexbiia.1 $e |- ( x e. A -> ( ph <-> ps ) ) $.
    $( Inference adding restricted existential quantifier to both sides of an
       equivalence.  (Contributed by NM, 26-Oct-1999.) $)
    rexbiia $p |- ( E. x e. A ph <-> E. x e. A ps ) $=
      ( cv wcel pm5.32i rexbii2 ) ABCDDCFDGABEHI $.
  $}

  ${
    rexbii.1 $e |- ( ph <-> ps ) $.
    $( Inference adding restricted existential quantifier to both sides of an
       equivalence.  (Contributed by NM, 23-Nov-1994.)  (Revised by Mario
       Carneiro, 17-Oct-2016.)  (Proof shortened by Wolf Lammen,
       6-Dec-2019.) $)
    rexbii $p |- ( E. x e. A ph <-> E. x e. A ps ) $=
      ( cv wcel anbi2i rexbii2 ) ABCDDABCFDGEHI $.

    $( Inference adding two restricted existential quantifiers to both sides of
       an equivalence.  (Contributed by NM, 11-Nov-1995.) $)
    2rexbii $p |- ( E. x e. A E. y e. B ph <-> E. x e. A E. y e. B ps ) $=
      ( wrex rexbii ) ADFHBDFHCEABDFGII $.
  $}

  $( Relationship between two restricted universal and existential quantifiers.
     (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
  rexnal2 $p |- ( E. x e. A E. y e. B -. ph <-> -. A. x e. A A. y e. B ph ) $=
    ( wn wrex wral rexnal rexbii bitri ) AFCEGZBDGACEHZFZBDGMBDHFLNBDACEIJMBDIK
    $.

  $( Relationship between three restricted universal and existential
     quantifiers.  (Contributed by Thierry Arnoux, 12-Jul-2020.) $)
  rexnal3 $p |- ( E. x e. A E. y e. B E. z e. C -. ph
    <-> -. A. x e. A A. y e. B A. z e. C ph ) $=
    ( wn wrex wral rexnal 2rexbii rexnal2 bitri ) AHDGIZCFIBEIADGJZHZCFIBEIPCFJ
    BEJHOQBCEFADGKLPBCEFMN $.

  $( Relationship between two restricted universal and existential quantifiers.
     (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
  ralnex2 $p |- ( A. x e. A A. y e. B -. ph <-> -. E. x e. A E. y e. B ph ) $=
    ( wn wral wrex notnotb 2rexbii rexnal2 bitr2i xchbinx ) AFZCEGBDGZOFZACEHBD
    HZOIQNFZCEHBDHPARBCDEAIJNBCDEKLM $.

  $( Relationship between three restricted universal and existential
     quantifiers.  (Contributed by Thierry Arnoux, 12-Jul-2020.) $)
  ralnex3 $p |- ( A. x e. A A. y e. B A. z e. C -. ph
    <-> -. E. x e. A E. y e. B E. z e. C ph ) $=
    ( wn wral wrex notnotb rexbii 2rexbii rexnal3 bitr2i xchbinx ) AHZDGICFIBEI
    ZRHZADGJZCFJBEJZRKUAQHZDGJZCFJBEJSTUCBCEFAUBDGAKLMQBCDEFGNOP $.

  ${
    rexbida.1 $e |- F/ x ph $.
    rexbida.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 6-Oct-2003.) $)
    rexbida $p |- ( ph -> ( E. x e. A ps <-> E. x e. A ch ) ) $=
      ( cv wcel wa wex wrex pm5.32da exbid df-rex 3bitr4g ) ADHEIZBJZDKQCJZDKBD
      ELCDELARSDFAQBCGMNBDEOCDEOP $.
  $}

  ${
    $d x ph $.
    rexbidv2.1 $e |- ( ph -> ( ( x e. A /\ ps ) <-> ( x e. B /\ ch ) ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 22-May-1999.) $)
    rexbidv2 $p |- ( ph -> ( E. x e. A ps <-> E. x e. B ch ) ) $=
      ( cv wcel wa wex wrex exbidv df-rex 3bitr4g ) ADHZEIBJZDKPFICJZDKBDELCDFL
      AQRDGMBDENCDFNO $.
  $}

  ${
    $d x ph $.
    rexbidva.1 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 9-Mar-1997.)  Reduce dependencies on axioms.
       (Revised by Wolf Lammen, 6-Dec-2019.)  (Proof shortened by Wolf Lammen,
       10-Dec-2019.) $)
    rexbidva $p |- ( ph -> ( E. x e. A ps <-> E. x e. A ch ) ) $=
      ( cv wcel pm5.32da rexbidv2 ) ABCDEEADGEHBCFIJ $.

    $( Alternate proof of ~ rexbida , shorter but requires more axioms.
       (Contributed by NM, 9-Mar-1997.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    rexbidvaALT $p |- ( ph -> ( E. x e. A ps <-> E. x e. A ch ) ) $=
      ( nfv rexbida ) ABCDEADGFH $.
  $}

  ${
    rexbid.1 $e |- F/ x ph $.
    rexbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 27-Jun-1998.) $)
    rexbid $p |- ( ph -> ( E. x e. A ps <-> E. x e. A ch ) ) $=
      ( wb cv wcel adantr rexbida ) ABCDEFABCHDIEJGKL $.
  $}

  ${
    $d x ph $.
    rexbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 20-Nov-1994.)  Reduce dependencies on
       axioms.  (Revised by Wolf Lammen, 6-Dec-2019.) $)
    rexbidv $p |- ( ph -> ( E. x e. A ps <-> E. x e. A ch ) ) $=
      ( wb cv wcel adantr rexbidva ) ABCDEABCGDHEIFJK $.

    $( Alternate proof of ~ rexbidv , shorter but requires more axioms.
       (Contributed by NM, 20-Nov-1994.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    rexbidvALT $p |- ( ph -> ( E. x e. A ps <-> E. x e. A ch ) ) $=
      ( nfv rexbid ) ABCDEADGFH $.
  $}

  ${
    rexeqbii.1 $e |- A = B $.
    rexeqbii.2 $e |- ( ps <-> ch ) $.
    $( Equality deduction for restricted existential quantifier, changing both
       formula and quantifier domain.  Inference form.  (Contributed by David
       Moews, 1-May-2017.) $)
    rexeqbii $p |- ( E. x e. A ps <-> E. x e. B ch ) $=
      ( cv wcel eleq2i anbi12i rexbii2 ) ABCDECHZDIMEIABDEMFJGKL $.
  $}

  ${
    $d x y $.  $d y A $.
    2rexbiia.1 $e |- ( ( x e. A /\ y e. B ) -> ( ph <-> ps ) ) $.
    $( Inference adding two restricted existential quantifiers to both sides of
       an equivalence.  (Contributed by NM, 1-Aug-2004.) $)
    2rexbiia $p |- ( E. x e. A E. y e. B ph <-> E. x e. A E. y e. B ps ) $=
      ( wrex cv wcel rexbidva rexbiia ) ADFHBDFHCECIEJABDFGKL $.
  $}

  ${
    $d x y ph $.  $d y A $.
    2rexbidva.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifiers (deduction
       rule).  (Contributed by NM, 15-Dec-2004.) $)
    2rexbidva $p |- ( ph ->
                    ( E. x e. A E. y e. B ps <-> E. x e. A E. y e. B ch ) ) $=
      ( wrex cv wcel wa wb anassrs rexbidva ) ABEGICEGIDFADJFKZLBCEGAPEJGKBCMHN
      OO $.
  $}

  ${
    $d x ph $.  $d y ph $.
    2rexbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifiers (deduction
       rule).  (Contributed by NM, 28-Jan-2006.) $)
    2rexbidv $p |- ( ph ->
                    ( E. x e. A E. y e. B ps <-> E. x e. A E. y e. B ch ) ) $=
      ( wrex rexbidv ) ABEGICEGIDFABCEGHJJ $.

    $( Formula-building rule for restricted quantifiers (deduction rule).
       (Contributed by NM, 28-Jan-2006.) $)
    rexralbidv $p |- ( ph ->
                    ( E. x e. A A. y e. B ps <-> E. x e. A A. y e. B ch ) ) $=
      ( wral ralbidv rexbidv ) ABEGICEGIDFABCEGHJK $.
  $}

  ${
    r2exlem.1 $e |- ( A. x e. A A. y e. B -. ph <->
               A. x A. y ( ( x e. A /\ y e. B ) -> -. ph ) ) $.
    $( Lemma factoring out common proof steps in ~ r2exf an ~ r2ex .
       Introduced to reduce dependencies on axioms.  (Contributed by Wolf
       Lammen, 10-Jan-2020.) $)
    r2exlem $p |- ( E. x e. A E. y e. B ph <->
                E. x E. y ( ( x e. A /\ y e. B ) /\ ph ) ) $=
      ( cv wcel wa wn wi wal wex wral wrex exnal xchbinxr alinexa con2bii exbii
      ralnex2 3bitr4ri ) BGDHCGEHIZAJZKCLZJZBMZUDCENBDNZJUCAICMZBMACEOBDOZUGUEB
      LUHUEBPFQUIUFBUEUIUCACRSTUHUJABCDEUASUB $.
  $}

  ${
    $d x y $.
    r2exf.1 $e |- F/_ y A $.
    $( Double restricted existential quantification.  (Contributed by Mario
       Carneiro, 14-Oct-2016.)  Use ~ r2exlem .  (Revised by Wolf Lammen,
       10-Jan-2020.) $)
    r2exf $p |- ( E. x e. A E. y e. B ph <->
               E. x E. y ( ( x e. A /\ y e. B ) /\ ph ) ) $=
      ( wn r2alf r2exlem ) ABCDEAGBCDEFHI $.
  $}

  ${
    $d x y $.  $d y A $.
    $( Double restricted existential quantification.  (Contributed by NM,
       11-Nov-1995.)  Reduce dependencies on axioms.  (Revised by Wolf Lammen,
       10-Jan-2020.) $)
    r2ex $p |- ( E. x e. A E. y e. B ph <->
               E. x E. y ( ( x e. A /\ y e. B ) /\ ph ) ) $=
      ( wn r2al r2exlem ) ABCDEAFBCDEGH $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Two ways to say " ` A ` belongs to ` B ` ."  (Contributed by NM,
       22-Nov-1994.) $)
    risset $p |- ( A e. B <-> E. x e. B x = A ) $=
      ( cv wcel wceq wa wex wrex exancom df-rex df-clel 3bitr4ri ) ADZCEZNBFZGA
      HPOGAHPACIBCEOPAJPACKABCLM $.
  $}

  ${
    $d x y $.  $d y A $.  $d x B $.
    $( Restricted quantifier version of ~ 19.12 .  (Contributed by NM,
       15-Oct-2003.)  (Proof shortened by Andrew Salmon, 30-May-2011.) $)
    r19.12 $p |- ( E. x e. A A. y e. B ph -> A. y e. B E. x e. A ph ) $=
      ( wral wrex nfcv nfra1 nfrex cv wcel ax-1 ralrimi rsp reximdv ralimia syl
      com12 ) ACEFZBDGZUACEFABDGZCEFUAUACETCBDCDHACEIJUACKELZMNUAUBCEUCTABDTUCA
      ACEOSPQR $.
  $}

  $( Restricted quantifier version of ~ 19.26 .  (Contributed by NM,
     28-Jan-1997.)  (Proof shortened by Andrew Salmon, 30-May-2011.) $)
  r19.26 $p |- ( A. x e. A ( ph /\ ps ) <->
               ( A. x e. A ph /\ A. x e. A ps ) ) $=
    ( wa wral simpl ralimi simpr jca pm3.2 ral2imi imp impbii ) ABEZCDFZACDFZBC
    DFZEPQROACDABGHOBCDABIHJQRPABOCDABKLMN $.

  $( Restricted quantifier version of ~ 19.26-2 .  Version of ~ r19.26 with two
     quantifiers.  (Contributed by NM, 10-Aug-2004.) $)
  r19.26-2 $p |- ( A. x e. A A. y e. B ( ph /\ ps ) <->
               ( A. x e. A A. y e. B ph /\ A. x e. A A. y e. B ps ) ) $=
    ( wa wral r19.26 ralbii bitri ) ABGDFHZCEHADFHZBDFHZGZCEHMCEHNCEHGLOCEABDFI
    JMNCEIK $.

  $( Version of ~ r19.26 with three quantifiers.  (Contributed by FL,
     22-Nov-2010.) $)
  r19.26-3 $p |- ( A. x e. A ( ph /\ ps /\ ch ) <->
               ( A. x e. A ph /\ A. x e. A ps /\ A. x e. A ch ) ) $=
    ( w3a wral wa df-3an ralbii r19.26 anbi1i bitr4i 3bitri ) ABCFZDEGABHZCHZDE
    GPDEGZCDEGZHZADEGZBDEGZSFZOQDEABCIJPCDEKTUAUBHZSHUCRUDSABDEKLUAUBSIMN $.

  $( Version of ~ 19.26 and ~ r19.26 with restricted quantifiers ranging over
     different classes.  (Contributed by NM, 22-Feb-2004.) $)
  r19.26m $p |- ( A. x ( ( x e. A -> ph ) /\ ( x e. B -> ps ) ) <->
               ( A. x e. A ph /\ A. x e. B ps ) ) $=
    ( cv wcel wi wa wal wral 19.26 df-ral anbi12i bitr4i ) CFZDGAHZPEGBHZICJQCJ
    ZRCJZIACDKZBCEKZIQRCLUASUBTACDMBCEMNO $.

  $( Distribute a restricted universal quantifier over a biconditional.
     Restricted quantification version of ~ albi .  (Contributed by NM,
     6-Oct-2003.) $)
  ralbi $p |- ( A. x e. A ( ph <-> ps ) ->
               ( A. x e. A ph <-> A. x e. A ps ) ) $=
    ( wb wral nfra1 rspa ralbida ) ABEZCDFABCDJCDGJCDHI $.

  $( Split a biconditional and distribute quantifier.  Restricted quantifier
     version of ~ albiim .  (Contributed by NM, 3-Jun-2012.) $)
  ralbiim $p |- ( A. x e. A ( ph <-> ps ) <->
             ( A. x e. A ( ph -> ps ) /\ A. x e. A ( ps -> ph ) ) ) $=
    ( wb wral wi wa dfbi2 ralbii r19.26 bitri ) ABEZCDFABGZBAGZHZCDFNCDFOCDFHMP
    CDABIJNOCDKL $.

  ${
    $d x ps $.
    $( Restricted quantitifer version of one direction of ~ 19.27 .  (The other
       direction holds when ` A ` is nonempty, see ~ r19.27zv .)  (Contributed
       by NM, 3-Jun-2004.)  (Proof shortened by Andrew Salmon, 30-May-2011.) $)
    r19.27v $p |- ( ( A. x e. A ph /\ ps ) -> A. x e. A ( ph /\ ps ) ) $=
      ( wral wa cv wcel ax-1 ralrimiv anim2i r19.26 sylibr ) ACDEZBFNBCDEZFABFC
      DEBONBBCDBCGDHIJKABCDLM $.
  $}

  ${
    $d x ph $.
    $( Restricted quantifier version of one direction of ~ 19.28 .  (The other
       direction holds when ` A ` is nonempty, see ~ r19.28zv .)  (Contributed
       by NM, 2-Apr-2004.) $)
    r19.28v $p |- ( ( ph /\ A. x e. A ps ) -> A. x e. A ( ph /\ ps ) ) $=
      ( wral wa r19.27v ancom ralbii 3imtr4i ) BCDEZAFBAFZCDEAKFABFZCDEBACDGAKH
      MLCDABHIJ $.
  $}

  $( Restricted quantifier version of ~ 19.29 .  See also ~ r19.29r .
     (Contributed by NM, 31-Aug-1999.)  (Proof shortened by Andrew Salmon,
     30-May-2011.) $)
  r19.29 $p |- ( ( A. x e. A ph /\ E. x e. A ps ) ->
               E. x e. A ( ph /\ ps ) ) $=
    ( wral wrex wa wi pm3.2 ralimi rexim syl imp ) ACDEZBCDFZABGZCDFZNBPHZCDEOQ
    HARCDABIJBPCDKLM $.

  $( Restricted quantifier version of ~ 19.29r ; variation of ~ r19.29 .
     (Contributed by NM, 31-Aug-1999.) $)
  r19.29r $p |- ( ( E. x e. A ph /\ A. x e. A ps ) ->
                E. x e. A ( ph /\ ps ) ) $=
    ( wral wrex wa r19.29 ancom rexbii 3imtr4i ) BCDEZACDFZGBAGZCDFMLGABGZCDFBA
    CDHMLIONCDABIJK $.

  ${
    r19.29imd.1 $e |- ( ph -> E. x e. A ps ) $.
    r19.29imd.2 $e |- ( ph -> A. x e. A ( ps -> ch ) ) $.
    $( Theorem 19.29 of [Margaris] p. 90 with an implication in the hypothesis
       containing the generalization, deduction version.  (Contributed by AV,
       19-Jan-2019.) $)
    r19.29imd $p |- ( ph -> E. x e. A ( ps /\ ch ) ) $=
      ( wi wa wrex wral r19.29r syl2anc abai rexbii sylibr ) ABBCHZIZDEJZBCIZDE
      JABDEJQDEKSFGBQDELMTRDEBCNOP $.
  $}

  ${
    r19.29af2.p $e |- F/ x ph $.
    r19.29af2.c $e |- F/ x ch $.
    r19.29af2.1 $e |- ( ( ( ph /\ x e. A ) /\ ps ) -> ch ) $.
    r19.29af2.2 $e |- ( ph -> E. x e. A ps ) $.
    $( A commonly used pattern based on ~ r19.29 .  (Contributed by Thierry
       Arnoux, 17-Dec-2017.)  (Proof shortened by OpenAI, 25-Mar-2020.) $)
    r19.29af2 $p |- ( ph -> ch ) $=
      ( wrex cv wcel exp31 rexlimd mpd ) ABDEJCIABCDEFGADKELBCHMNO $.
  $}

  ${
    $d x ch $.
    r19.29af.0 $e |- F/ x ph $.
    r19.29af.1 $e |- ( ( ( ph /\ x e. A ) /\ ps ) -> ch ) $.
    r19.29af.2 $e |- ( ph -> E. x e. A ps ) $.
    $( A commonly used pattern based on ~ r19.29 .  (Contributed by Thierry
       Arnoux, 29-Nov-2017.) $)
    r19.29af $p |- ( ph -> ch ) $=
      ( nfv r19.29af2 ) ABCDEFCDIGHJ $.
  $}

  ${
    $d x ch $.  $d x ph $.
    r19.29an.1 $e |- ( ( ( ph /\ x e. A ) /\ ps ) -> ch ) $.
    $( A commonly used pattern based on ~ r19.29 .  (Contributed by Thierry
       Arnoux, 29-Dec-2019.) $)
    r19.29an $p |- ( ( ph /\ E. x e. A ps ) -> ch ) $=
      ( wrex wa nfv nfre1 nfan cv wcel adantllr simpr r19.29af ) ABDEGZHBCDEAQD
      ADIBDEJKADLEMBCQFNAQOP $.
  $}

  ${
    $d x ch $.  $d x ph $.
    r19.29a.1 $e |- ( ( ( ph /\ x e. A ) /\ ps ) -> ch ) $.
    r19.29a.2 $e |- ( ph -> E. x e. A ps ) $.
    $( A commonly used pattern based on ~ r19.29 .  (Contributed by Thierry
       Arnoux, 22-Nov-2017.) $)
    r19.29a $p |- ( ph -> ch ) $=
      ( nfv r19.29af ) ABCDEADHFGI $.
  $}

  $( Theorem ~ r19.29 with two quantifiers.  (Contributed by Rodolfo Medina,
     25-Sep-2010.) $)
  2r19.29 $p |- ( ( A. x e. A A. y e. B ph /\ E. x e. A E. y e. B ps )
                        -> E. x e. A E. y e. B ( ph /\ ps ) ) $=
    ( wral wrex wa r19.29 reximi syl ) ADFGZCEGBDFHZCEHIMNIZCEHABIDFHZCEHMNCEJO
    PCEABDFJKL $.

  ${
    r19.29d2r.1 $e |- ( ph -> A. x e. A A. y e. B ps ) $.
    r19.29d2r.2 $e |- ( ph -> E. x e. A E. y e. B ch ) $.
    $( Theorem 19.29 of [Margaris] p. 90 with two restricted quantifiers,
       deduction version.  (Contributed by Thierry Arnoux, 30-Jan-2017.) $)
    r19.29d2r $p |- ( ph -> E. x e. A E. y e. B ( ps /\ ch ) ) $=
      ( wral wrex wa r19.29 syl2anc reximi syl ) ABEGJZCEGKZLZDFKZBCLEGKZDFKAQD
      FJRDFKTHIQRDFMNSUADFBCEGMOP $.
  $}

  ${
    $d y A $.  $d x y ch $.  $d x y ph $.
    r19.29vva.1 $e |- ( ( ( ( ph /\ x e. A ) /\ y e. B ) /\ ps ) -> ch ) $.
    r19.29vva.2 $e |- ( ph -> E. x e. A E. y e. B ps ) $.
    $( A commonly used pattern based on ~ r19.29 , version with two restricted
       quantifiers.  (Contributed by Thierry Arnoux, 26-Nov-2017.) $)
    r19.29vva $p |- ( ph -> ch ) $=
      ( wi wa wrex wral cv wcel ex ralrimiva r19.29d2r pm3.35 rexlimivw ancoms
      syl ) ABCJZBKZEGLZDFLCAUCBDEFGAUCEGMDFADNFOKZUCEGUFENGOKBCHPQQIRUECDFUDCE
      GBUCCBCSUATTUB $.
  $}

  $( Restricted quantifier version of ~ 19.30 .  (Contributed by Scott Fenton,
     25-Feb-2011.) $)
  r19.30 $p |- ( A. x e. A ( ph \/ ps ) ->
                 ( A. x e. A ph \/ E. x e. A ps ) ) $=
    ( wn wi wral wrex ralim orcom df-or bitri ralbii dfrex2 orbi2i imor 3bitr4i
    wo 3imtr4i ) BEZAFZCDGTCDGZACDGZFZABRZCDGUCBCDHZRZTACDIUEUACDUEBARUAABJBAKL
    MUCUBEZRUHUCRUGUDUCUHJUFUHUCBCDNOUBUCPQS $.

  ${
    $d x ph $.
    $( Restricted quantifier version of ~ 19.32v .  (Contributed by NM,
       25-Nov-2003.) $)
    r19.32v $p |- ( A. x e. A ( ph \/ ps ) <-> ( ph \/ A. x e. A ps ) ) $=
      ( wn wi wral wo r19.21v df-or ralbii 3bitr4i ) AEZBFZCDGMBCDGZFABHZCDGAOH
      MBCDIPNCDABJKAOJL $.
  $}

  $( Restricted quantifier version of ~ 19.35 .  (Contributed by NM,
     20-Sep-2003.) $)
  r19.35 $p |- ( E. x e. A ( ph -> ps ) <->
               ( A. x e. A ph -> E. x e. A ps ) ) $=
    ( wral wn wi wrex r19.26 annim ralbii df-an 3bitr3i con2bii dfrex2 3bitr4ri
    wa imbi2i ) ACDEZBFZCDEZFZGZABGZFZCDEZFSBCDHZGUDCDHUFUCATQZCDESUAQUFUCFATCD
    IUHUECDABJKSUALMNUGUBSBCDORUDCDOP $.

  ${
    $d x ps $.
    $( Restricted quantifier version of one direction of ~ 19.36 .  (The other
       direction holds iff ` A ` is nonempty, see ~ r19.36zv .)  (Contributed
       by NM, 22-Oct-2003.) $)
    r19.36v $p |- ( E. x e. A ( ph -> ps ) -> ( A. x e. A ph -> ps ) ) $=
      ( wi wrex wral r19.35 id rexlimivw imim2i sylbi ) ABECDFACDGZBCDFZEMBEABC
      DHNBMBBCDBIJKL $.
  $}

  ${
    r19.37.1 $e |- F/ x ph $.
    $( Restricted quantifier version of one direction of ~ 19.37 .  (The other
       direction does not hold when ` A ` is empty.)  (Contributed by FL,
       13-May-2012.)  (Revised by Mario Carneiro, 11-Dec-2016.) $)
    r19.37 $p |- ( E. x e. A ( ph -> ps ) -> ( ph -> E. x e. A ps ) ) $=
      ( wi wrex wral r19.35 cv wcel ax-1 ralrimi imim1i sylbi ) ABFCDGACDHZBCDG
      ZFAQFABCDIAPQAACDEACJDKLMNO $.
  $}

  ${
    $d x ph $.
    $( Restricted quantifier version of one direction of ~ 19.37v .  (The other
       direction holds iff ` A ` is nonempty, see ~ r19.37zv .)  (Contributed
       by NM, 2-Apr-2004.) $)
    r19.37v $p |- ( E. x e. A ( ph -> ps ) -> ( ph -> E. x e. A ps ) ) $=
      ( nfv r19.37 ) ABCDACEF $.
  $}

  $( Restricted quantifier version of Theorem 19.40 of [Margaris] p. 90.
     (Contributed by NM, 2-Apr-2004.) $)
  r19.40 $p |- ( E. x e. A ( ph /\ ps )
        -> ( E. x e. A ph /\ E. x e. A ps ) ) $=
    ( wa wrex simpl reximi simpr jca ) ABEZCDFACDFBCDFKACDABGHKBCDABIHJ $.

  ${
    $d x ps $.
    $( Restricted quantifier version ~ 19.41v .  Version of ~ r19.41 with a dv
       condition, requiring fewer axioms.  (Contributed by NM, 17-Dec-2003.)
       Reduce dependencies on axioms.  (Revised by BJ, 29-Mar-2020.) $)
    r19.41v $p |- ( E. x e. A ( ph /\ ps ) <-> ( E. x e. A ph /\ ps ) ) $=
      ( cv wcel wa wex wrex anass exbii 19.41v bitr3i df-rex anbi1i 3bitr4i ) C
      EDFZABGZGZCHZQAGZCHZBGZRCDIACDIZBGTUABGZCHUCUESCQABJKUABCLMRCDNUDUBBACDNO
      P $.
  $}

  ${
    r19.41.1 $e |- F/ x ps $.
    $( Restricted quantifier version of ~ 19.41 .  See ~ r19.41v for a version
       with a dv condition, requiring fewer axioms.  (Contributed by NM,
       1-Nov-2010.) $)
    r19.41 $p |- ( E. x e. A ( ph /\ ps ) <-> ( E. x e. A ph /\ ps ) ) $=
      ( cv wcel wa wex wrex anass exbii 19.41 bitr3i df-rex anbi1i 3bitr4i ) CF
      DGZABHZHZCIZRAHZCIZBHZSCDJACDJZBHUAUBBHZCIUDUFTCRABKLUBBCEMNSCDOUEUCBACDO
      PQ $.
  $}

  ${
    $d x ps $.  $d y ps $.
    $( Version of ~ r19.41v with two quantifiers.  (Contributed by Thierry
       Arnoux, 25-Jan-2017.) $)
    r19.41vv $p |- ( E. x e. A E. y e. B ( ph /\ ps )
         <-> ( E. x e. A E. y e. B ph /\ ps ) ) $=
      ( wa wrex r19.41v rexbii bitri ) ABGDFHZCEHADFHZBGZCEHMCEHBGLNCEABDFIJMBC
      EIK $.
  $}

  ${
    $d x ph $.
    $( Restricted quantifier version of ~ 19.42v (see also ~ 19.42 ).
       (Contributed by NM, 27-May-1998.) $)
    r19.42v $p |- ( E. x e. A ( ph /\ ps ) <-> ( ph /\ E. x e. A ps ) ) $=
      ( wa wrex r19.41v ancom rexbii 3bitr4i ) BAEZCDFBCDFZAEABEZCDFALEBACDGMKC
      DABHIALHJ $.
  $}

  $( Restricted quantifier version of ~ 19.43 .  (Contributed by NM,
     27-May-1998.)  (Proof shortened by Andrew Salmon, 30-May-2011.) $)
  r19.43 $p |- ( E. x e. A ( ph \/ ps )
         <-> ( E. x e. A ph \/ E. x e. A ps ) ) $=
    ( wn wi wrex wral wo r19.35 df-or rexbii ralnex imbi1i bitr4i 3bitr4i ) AEZ
    BFZCDGQCDHZBCDGZFZABIZCDGACDGZTIZQBCDJUBRCDABKLUDUCEZTFUAUCTKSUETACDMNOP $.

  ${
    $d x ps $.
    $( One direction of a restricted quantifier version of ~ 19.44 .  The other
       direction holds when ` A ` is nonempty, see ~ r19.44zv .  (Contributed
       by NM, 2-Apr-2004.) $)
    r19.44v $p |- ( E. x e. A ( ph \/ ps ) -> ( E. x e. A ph \/ ps ) ) $=
      ( wo wrex r19.43 id rexlimivw orim2i sylbi ) ABECDFACDFZBCDFZELBEABCDGMBL
      BBCDBHIJK $.
  $}

  ${
    $d x ph $.
    $( Restricted quantifier version of one direction of ~ 19.45 .  The other
       direction holds when ` A ` is nonempty, see ~ r19.45zv .  (Contributed
       by NM, 2-Apr-2004.) $)
    r19.45v $p |- ( E. x e. A ( ph \/ ps ) -> ( ph \/ E. x e. A ps ) ) $=
      ( wo wrex r19.43 id rexlimivw orim1i sylbi ) ABECDFACDFZBCDFZEAMEABCDGLAM
      AACDAHIJK $.
  $}

  ${
    $d x y $.
    ralcomf.1 $e |- F/_ y A $.
    ralcomf.2 $e |- F/_ x B $.
    $( Commutation of restricted universal quantifiers.  (Contributed by Mario
       Carneiro, 14-Oct-2016.) $)
    ralcomf $p |- ( A. x e. A A. y e. B ph <-> A. y e. B A. x e. A ph ) $=
      ( cv wcel wa wi wal wral ancomst 2albii alcom bitri r2alf 3bitr4i ) BHDIZ
      CHEIZJAKZCLBLZUATJAKZBLCLZACEMBDMABDMCEMUCUDCLBLUEUBUDBCTUAANOUDBCPQABCDE
      FRACBEDGRS $.

    $( Commutation of restricted existential quantifiers.  (Contributed by
       Mario Carneiro, 14-Oct-2016.) $)
    rexcomf $p |- ( E. x e. A E. y e. B ph <-> E. y e. B E. x e. A ph ) $=
      ( cv wcel wa wex wrex ancom anbi1i 2exbii excom bitri r2exf 3bitr4i ) BHD
      IZCHEIZJZAJZCKBKZUATJZAJZBKCKZACELBDLABDLCELUDUFCKBKUGUCUFBCUBUEATUAMNOUF
      BCPQABCDEFRACBEDGRS $.
  $}

  ${
    $d x y $.  $d x B $.  $d y A $.
    $( Commutation of restricted universal quantifiers.  See ~ ralcom2 for a
       version without DV condition on ` x , y ` .  (Contributed by NM,
       13-Oct-1999.)  (Revised by Mario Carneiro, 14-Oct-2016.) $)
    ralcom $p |- ( A. x e. A A. y e. B ph <-> A. y e. B A. x e. A ph ) $=
      ( nfcv ralcomf ) ABCDECDFBEFG $.

    $( Commutation of restricted existential quantifiers.  (Contributed by NM,
       19-Nov-1995.)  (Revised by Mario Carneiro, 14-Oct-2016.) $)
    rexcom $p |- ( E. x e. A E. y e. B ph <-> E. y e. B E. x e. A ph ) $=
      ( nfcv rexcomf ) ABCDECDFBEFG $.
  $}

  ${
    $d y z A $.  $d x z B $.  $d x y C $.
    $( Swap first and third restricted universal quantifiers.  (Contributed by
       AV, 3-Dec-2021.) $)
    ralcom13 $p |- ( A. x e. A A. y e. B A. z e. C ph
         <-> A. z e. C A. y e. B A. x e. A ph ) $=
      ( wral ralcom ralbii 3bitri ) ADGHZCFHBEHLBEHZCFHABEHZDGHZCFHNCFHDGHLBCEF
      IMOCFABDEGIJNCDFGIK $.

    $( Swap first and third restricted existential quantifiers.  (Contributed
       by NM, 8-Apr-2015.) $)
    rexcom13 $p |- ( E. x e. A E. y e. B E. z e. C ph
         <-> E. z e. C E. y e. B E. x e. A ph ) $=
      ( wrex rexcom rexbii 3bitri ) ADGHZCFHBEHLBEHZCFHABEHZDGHZCFHNCFHDGHLBCEF
      IMOCFABDEGIJNCDFGIK $.
  $}

  ${
    $d w z A $.  $d w z B $.  $d w x y C $.  $d x y z D $.
    $( Rotate three restricted universal quantifiers.  (Contributed by AV,
       3-Dec-2021.) $)
    ralrot3 $p |- ( A. x e. A A. y e. B A. z e. C ph
                    <-> A. z e. C A. x e. A A. y e. B ph ) $=
      ( wral ralcom ralbii bitri ) ADGHCFHZBEHACFHZDGHZBEHMBEHDGHLNBEACDFGIJMBD
      EGIK $.
  $}

  ${
    $d w z A $.  $d w z B $.  $d w x y C $.  $d x y z D $.
    $( Rotate four restricted existential quantifiers twice.  (Contributed by
       NM, 8-Apr-2015.) $)
    rexrot4 $p |- ( E. x e. A E. y e. B E. z e. C E. w e. D ph
        <-> E. z e. C E. w e. D E. x e. A E. y e. B ph ) $=
      ( wrex rexcom13 rexbii bitri ) AEIJDHJCGJZBFJACGJZDHJEIJZBFJOBFJEIJDHJNPB
      FACDEGHIKLOBEDFIHKM $.
  $}

  ${
    $d y A $.  $d x A $.
    $( Commutation of restricted universal quantifiers.  Note that ` x ` and
       ` y ` need not be disjoint (this makes the proof longer).  If ` x ` and
       ` y ` are disjoint, then one may use ~ ralcom .  (Contributed by NM,
       24-Nov-1994.)  (Proof shortened by Mario Carneiro, 17-Oct-2016.) $)
    ralcom2 $p |- ( A. x e. A A. y e. A ph -> A. y e. A A. x e. A ph ) $=
      ( weq wral wi cv wcel wb eleq1 dral1 df-ral 3bitr4g wa nfnae nfan ralrimi
      wal ex sps imbi1d bicomd imbi12d biimpd wn nfra2 nfra1 nfcvf adantr nfcvd
      wnfc nfeld nfan1 rsp2 ancomsd expdimp adantll pm2.61i ) BCEZBSZACDFZBDFZA
      BDFZCDFZGVAVCVEVABHZDIZVBGZBSCHZDIZVDGZCSVCVEVHVKBCVAVGVJVBVDUTVGVJJBVFVI
      DKUAZVAVJAGZCSZVGAGZBSZVBVDVAVPVNVOVMBCVAVGVJAVLUBLUCACDMABDMNUDLVBBDMVDC
      DMNUEVAUFZVCVEVQVCOZVDCDVQVCCBCCPABCDDUGQVRVJVDVRVJOABDVRVJBVQVCBBCBPVBBD
      UHQVRBVIDVQBVIULVCBCUIUJVRBDUKUMUNVCVJVOVQVCVJVGAVCVGVJAABCDDUOUPUQURRTRT
      US $.
  $}

  $( A commutation law for restricted universal quantifiers that swaps the
     domains of the restriction.  (Contributed by NM, 22-Feb-2004.) $)
  ralcom3 $p |- ( A. x e. A ( x e. B -> ph ) <->
                  A. x e. B ( x e. A -> ph ) ) $=
    ( cv wcel wi wral pm2.04 ralimi2 impbii ) BEZDFZAGZBCHLCFZAGZBDHNPBCDOMAIJP
    NBDCMOAIJK $.

  ${
    $d y A $.  $d x B $.  $d x y $.
    reean.1 $e |- F/ y ph $.
    reean.2 $e |- F/ x ps $.
    $( Rearrange restricted existential quantifiers.  (Contributed by NM,
       27-Oct-2010.)  (Proof shortened by Andrew Salmon, 30-May-2011.) $)
    reean $p |- ( E. x e. A E. y e. B ( ph /\ ps ) <->
                 ( E. x e. A ph /\ E. y e. B ps ) ) $=
      ( cv wcel wa wex wrex an4 2exbii nfv nfan eean bitri df-rex r2ex anbi12i
      3bitr4i ) CIEJZDIFJZKABKZKZDLCLZUDAKZCLZUEBKZDLZKZUFDFMCEMACEMZBDFMZKUHUI
      UKKZDLCLUMUGUPCDUDUEABNOUIUKCDUDADUDDPGQUEBCUECPHQRSUFCDEFUAUNUJUOULACETB
      DFTUBUC $.
  $}

  ${
    $d y ph $.  $d x ps $.  $d x y $.  $d y A $.  $d x B $.
    $( Rearrange restricted existential quantifiers.  (Contributed by NM,
       9-May-1999.) $)
    reeanv $p |- ( E. x e. A E. y e. B ( ph /\ ps ) <->
                 ( E. x e. A ph /\ E. y e. B ps ) ) $=
      ( nfv reean ) ABCDEFADGBCGH $.
  $}

  ${
    $d ph y z $.  $d ps x z $.  $d ch x y $.  $d A y $.  $d B x z $.
    $d C x y $.
    $( Rearrange three restricted existential quantifiers.  (Contributed by
       Jeff Madsen, 11-Jun-2010.) $)
    3reeanv $p |- ( E. x e. A E. y e. B E. z e. C ( ph /\ ps /\ ch )
                      <-> ( E. x e. A ph /\ E. y e. B ps /\ E. z e. C ch ) ) $=
      ( wa wrex w3a r19.41v reeanv anbi1i bitri df-3an 2rexbii rexbii 3bitr4i )
      ABJZEHKZCFIKZJZDGKZADGKZBEHKZJZUCJZABCLZFIKEHKZDGKUFUGUCLUEUBDGKZUCJUIUBU
      CDGMULUHUCABDEGHNOPUKUDDGUKUACJZFIKEHKUDUJUMEFHIABCQRUACEFHINPSUFUGUCQT
      $.
  $}

  ${
    $d ph y $.  $d ps x $.  $d A y $.  $d B x $.  $d x y $.
    $( Distribute restricted universal quantification over "or".  (Contributed
       by Jeff Madsen, 19-Jun-2010.) $)
    2ralor $p |- ( A. x e. A A. y e. B ( ph \/ ps ) <->
                  ( A. x e. A ph \/ A. y e. B ps ) ) $=
      ( wo wral wn wrex wa rexnal anbi12i rexbii bitr3i reeanv 3bitr3ri 3bitr4i
      ioran con4bii ) ABGZDFHZCEHZACEHZBDFHZGZAIZCEJZBIZDFJZKZUDIZUEIZKUCIZUFIU
      HULUJUMACELBDFLMUGUIKZDFJZCEJUBIZCEJUKUNUPUQCEUPUAIZDFJUQURUODFABSNUADFLO
      NUGUICDEFPUBCELQUDUESRT $.
  $}

  $( The setvar ` x ` is not free in ` E! x e. A ph ` .  (Contributed by NM,
     19-Mar-1997.) $)
  nfreu1 $p |- F/ x E! x e. A ph $=
    ( wreu cv wcel wa weu df-reu nfeu1 nfxfr ) ABCDBECFAGZBHBABCILBJK $.

  $( The setvar ` x ` is not free in ` E* x e. A ph ` .  (Contributed by NM,
     16-Jun-2017.) $)
  nfrmo1 $p |- F/ x E* x e. A ph $=
    ( wrmo cv wcel wa wmo df-rmo nfmo1 nfxfr ) ABCDBECFAGZBHBABCILBJK $.

  ${
    nfreud.1 $e |- F/ y ph $.
    nfreud.2 $e |- ( ph -> F/_ x A ) $.
    nfreud.3 $e |- ( ph -> F/ x ps ) $.
    $( Deduction version of ~ nfreu .  (Contributed by NM, 15-Feb-2013.)
       (Revised by Mario Carneiro, 8-Oct-2016.) $)
    nfreud $p |- ( ph -> F/ x E! y e. A ps ) $=
      ( wreu cv wcel wa weu df-reu weq wal wn wnfc nfcvf adantr nfeld wnf nfand
      adantl nfeud2 nfxfrd ) BDEIDJZEKZBLZDMACBDENAUICDFACDOCPQZLZUHBCUKCUGEUJC
      UGRACDSUDACERUJGTUAABCUBUJHTUCUEUF $.

    $( Deduction version of ~ nfrmo .  (Contributed by NM, 17-Jun-2017.) $)
    nfrmod $p |- ( ph -> F/ x E* y e. A ps ) $=
      ( wrmo cv wcel wa wmo df-rmo weq wal wn wnfc nfcvf adantr nfeld wnf nfand
      adantl nfmod2 nfxfrd ) BDEIDJZEKZBLZDMACBDENAUICDFACDOCPQZLZUHBCUKCUGEUJC
      UGRACDSUDACERUJGTUAABCUBUJHTUCUEUF $.
  $}

  ${
    nfreu.1 $e |- F/_ x A $.
    nfreu.2 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for restricted unique existence.
       (Contributed by NM, 30-Oct-2010.)  (Revised by Mario Carneiro,
       8-Oct-2016.) $)
    nfreu $p |- F/ x E! y e. A ph $=
      ( wreu wnf wtru nftru wnfc a1i nfreud trud ) ACDGBHIABCDCJBDKIELABHIFLMN
      $.

    $( Bound-variable hypothesis builder for restricted uniqueness.
       (Contributed by NM, 16-Jun-2017.) $)
    nfrmo $p |- F/ x E* y e. A ph $=
      ( wrmo cv wcel wa wmo df-rmo wnf wtru nftru weq wal wn nfcvf a1i adantl
      wnfc nfeld nfand nfmod2 trud nfxfr ) ACDGCHZDIZAJZCKZBACDLUKBMNUJBCCOBCPB
      QRZUJBMNULUIABULBUHDBCSBDUBULETUCABMULFTUDUAUEUFUG $.
  $}

  $( An "identity" law of concretion for restricted abstraction.  Special case
     of Definition 2.1 of [Quine] p. 16.  (Contributed by NM, 9-Oct-2003.) $)
  rabid $p |- ( x e. { x e. A | ph } <-> ( x e. A /\ ph ) ) $=
    ( cv wcel wa crab df-rab abeq2i ) BDCEAFBABCGABCHI $.

  $( Membership in a restricted abstraction, implication.  (Contributed by
     Glauco Siliprandi, 26-Jun-2021.) $)
  rabidim1 $p |- ( x e. { x e. A | ph } -> x e. A ) $=
    ( cv crab wcel rabid simplbi ) BDZABCEFICFAABCGH $.

  ${
    $d x A $.
    $( An "identity" law for restricted class abstraction.  (Contributed by NM,
       9-Oct-2003.)  (Proof shortened by Andrew Salmon, 30-May-2011.) $)
    rabid2 $p |- ( A = { x e. A | ph } <-> A. x e. A ph ) $=
      ( cv wcel wa cab wceq wi wal crab abeq2 pm4.71 albii bitr4i df-rab eqeq2i
      wral wb df-ral 3bitr4i ) CBDCEZAFZBGZHZUBAIZBJZCABCKZHABCRUEUBUCSZBJUGUCB
      CLUFUIBUBAMNOUHUDCABCPQABCTUA $.
  $}

  ${
    rabid2f.1 $e |- F/_ x A $.
    $( An "identity" law for restricted class abstraction.  (Contributed by NM,
       9-Oct-2003.)  (Proof shortened by Andrew Salmon, 30-May-2011.)  (Revised
       by Thierry Arnoux, 13-Mar-2017.) $)
    rabid2f $p |- ( A = { x e. A | ph } <-> A. x e. A ph ) $=
      ( cv wcel wa cab wceq wi wal crab wral abeq2f pm4.71 bitr4i df-rab eqeq2i
      wb albii df-ral 3bitr4i ) CBECFZAGZBHZIZUCAJZBKZCABCLZIABCMUFUCUDSZBKUHUD
      BCDNUGUJBUCAOTPUIUECABCQRABCUAUB $.
  $}

  $( Equivalent wff's correspond to equal restricted class abstractions.
     Closed theorem form of ~ rabbidva .  (Contributed by NM, 25-Nov-2013.) $)
  rabbi $p |- ( A. x e. A ( ps <-> ch )
       <-> { x e. A | ps } = { x e. A | ch } ) $=
    ( cv wcel wa wb wal wceq wral crab abbi wi df-ral pm5.32 albii bitri df-rab
    cab eqeq12i 3bitr4i ) CEDFZAGZUCBGZHZCIZUDCTZUECTZJABHZCDKZACDLZBCDLZJUDUEC
    MUKUCUJNZCIUGUJCDOUNUFCUCABPQRULUHUMUIACDSBCDSUAUB $.

  $( Swap with a membership relation in a restricted class abstraction.
     (Contributed by NM, 4-Jul-2005.) $)
  rabswap $p |- { x e. A | x e. B } = { x e. B | x e. A } $=
    ( cv wcel wa cab crab ancom abbii df-rab 3eqtr4i ) ADZBEZMCEZFZAGONFZAGOABH
    NACHPQANOIJOABKNACKL $.

  $( The abstraction variable in a restricted class abstraction isn't free.
     (Contributed by NM, 19-Mar-1997.) $)
  nfrab1 $p |- F/_ x { x e. A | ph } $=
    ( crab cv wcel wa cab df-rab nfab1 nfcxfr ) BABCDBECFAGZBHABCILBJK $.

  ${
    $d x z $.  $d y z $.  $d z A $.
    nfrab.1 $e |- F/ x ph $.
    nfrab.2 $e |- F/_ x A $.
    $( A variable not free in a wff remains so in a restricted class
       abstraction.  (Contributed by NM, 13-Oct-2003.)  (Revised by Mario
       Carneiro, 9-Oct-2016.) $)
    nfrab $p |- F/_ x { y e. A | ph } $=
      ( vz crab cv wcel wa cab df-rab wnfc wtru nftru weq wal wn wnf a1i adantl
      nfcri eleq1 dvelimnf nfand nfabd2 trud nfcxfr ) BACDHCIZDJZAKZCLZACDMBUMN
      OULBCCPBCQBRSZULBTOUNUKABGIZDJUKBCGBGDFUCUOUJDUDUEABTUNEUAUFUBUGUHUI $.
  $}

  ${
    reubida.1 $e |- F/ x ph $.
    reubida.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by Mario Carneiro, 19-Nov-2016.) $)
    reubida $p |- ( ph -> ( E! x e. A ps <-> E! x e. A ch ) ) $=
      ( cv wcel wa weu wreu pm5.32da eubid df-reu 3bitr4g ) ADHEIZBJZDKQCJZDKBD
      ELCDELARSDFAQBCGMNBDEOCDEOP $.
  $}

  ${
    $d x ph $.
    reubidva.1 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 13-Nov-2004.) $)
    reubidva $p |- ( ph -> ( E! x e. A ps <-> E! x e. A ch ) ) $=
      ( nfv reubida ) ABCDEADGFH $.
  $}

  ${
    $d x ph $.
    reubidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 17-Oct-1996.) $)
    reubidv $p |- ( ph -> ( E! x e. A ps <-> E! x e. A ch ) ) $=
      ( wb cv wcel adantr reubidva ) ABCDEABCGDHEIFJK $.
  $}

  ${
    reubiia.1 $e |- ( x e. A -> ( ph <-> ps ) ) $.
    $( Formula-building rule for restricted existential quantifier (inference
       rule).  (Contributed by NM, 14-Nov-2004.) $)
    reubiia $p |- ( E! x e. A ph <-> E! x e. A ps ) $=
      ( cv wcel wa weu wreu pm5.32i eubii df-reu 3bitr4i ) CFDGZAHZCIOBHZCIACDJ
      BCDJPQCOABEKLACDMBCDMN $.
  $}

  ${
    reubii.1 $e |- ( ph <-> ps ) $.
    $( Formula-building rule for restricted existential quantifier (inference
       rule).  (Contributed by NM, 22-Oct-1999.) $)
    reubii $p |- ( E! x e. A ph <-> E! x e. A ps ) $=
      ( wb cv wcel a1i reubiia ) ABCDABFCGDHEIJ $.
  $}

  ${
    rmobida.1 $e |- F/ x ph $.
    rmobida.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 16-Jun-2017.) $)
    rmobida $p |- ( ph -> ( E* x e. A ps <-> E* x e. A ch ) ) $=
      ( cv wcel wa wmo wrmo pm5.32da mobid df-rmo 3bitr4g ) ADHEIZBJZDKQCJZDKBD
      ELCDELARSDFAQBCGMNBDEOCDEOP $.
  $}

  ${
    $d x ph $.
    rmobidva.1 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 16-Jun-2017.) $)
    rmobidva $p |- ( ph -> ( E* x e. A ps <-> E* x e. A ch ) ) $=
      ( nfv rmobida ) ABCDEADGFH $.
  $}

  ${
    $d x ph $.
    rmobidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 16-Jun-2017.) $)
    rmobidv $p |- ( ph -> ( E* x e. A ps <-> E* x e. A ch ) ) $=
      ( wb cv wcel adantr rmobidva ) ABCDEABCGDHEIFJK $.
  $}

  ${
    rmobiia.1 $e |- ( x e. A -> ( ph <-> ps ) ) $.
    $( Formula-building rule for restricted existential quantifier (inference
       rule).  (Contributed by NM, 16-Jun-2017.) $)
    rmobiia $p |- ( E* x e. A ph <-> E* x e. A ps ) $=
      ( cv wcel wa wmo wrmo pm5.32i mobii df-rmo 3bitr4i ) CFDGZAHZCIOBHZCIACDJ
      BCDJPQCOABEKLACDMBCDMN $.
  $}

  ${
    rmobii.1 $e |- ( ph <-> ps ) $.
    $( Formula-building rule for restricted existential quantifier (inference
       rule).  (Contributed by NM, 16-Jun-2017.) $)
    rmobii $p |- ( E* x e. A ph <-> E* x e. A ps ) $=
      ( wb cv wcel a1i rmobiia ) ABCDABFCGDHEIJ $.
  $}

  ${
    raleq1f.1 $e |- F/_ x A $.
    raleq1f.2 $e |- F/_ x B $.
    $( Equality theorem for restricted universal quantifier, with
       bound-variable hypotheses instead of distinct variable restrictions.
       (Contributed by NM, 7-Mar-2004.)  (Revised by Andrew Salmon,
       11-Jul-2011.) $)
    raleqf $p |- ( A = B -> ( A. x e. A ph <-> A. x e. B ph ) ) $=
      ( wceq cv wcel wi wal wral nfeq eleq2 imbi1d albid df-ral 3bitr4g ) CDGZB
      HZCIZAJZBKTDIZAJZBKABCLABDLSUBUDBBCDEFMSUAUCACDTNOPABCQABDQR $.

    $( Equality theorem for restricted existential quantifier, with
       bound-variable hypotheses instead of distinct variable restrictions.
       (Contributed by NM, 9-Oct-2003.)  (Revised by Andrew Salmon,
       11-Jul-2011.) $)
    rexeqf $p |- ( A = B -> ( E. x e. A ph <-> E. x e. B ph ) ) $=
      ( wceq cv wcel wa wex wrex nfeq eleq2 anbi1d exbid df-rex 3bitr4g ) CDGZB
      HZCIZAJZBKTDIZAJZBKABCLABDLSUBUDBBCDEFMSUAUCACDTNOPABCQABDQR $.

    $( Equality theorem for restricted uniqueness quantifier, with
       bound-variable hypotheses instead of distinct variable restrictions.
       (Contributed by NM, 5-Apr-2004.)  (Revised by Andrew Salmon,
       11-Jul-2011.) $)
    reueq1f $p |- ( A = B -> ( E! x e. A ph <-> E! x e. B ph ) ) $=
      ( wceq cv wcel wa weu wreu nfeq eleq2 anbi1d eubid df-reu 3bitr4g ) CDGZB
      HZCIZAJZBKTDIZAJZBKABCLABDLSUBUDBBCDEFMSUAUCACDTNOPABCQABDQR $.

    $( Equality theorem for restricted uniqueness quantifier, with
       bound-variable hypotheses instead of distinct variable restrictions.
       (Contributed by Alexander van der Vekens, 17-Jun-2017.) $)
    rmoeq1f $p |- ( A = B -> ( E* x e. A ph <-> E* x e. B ph ) ) $=
      ( wceq cv wcel wa wmo wrmo nfeq eleq2 anbi1d mobid df-rmo 3bitr4g ) CDGZB
      HZCIZAJZBKTDIZAJZBKABCLABDLSUBUDBBCDEFMSUAUCACDTNOPABCQABDQR $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Equality theorem for restricted universal quantifier.  (Contributed by
       NM, 16-Nov-1995.) $)
    raleq $p |- ( A = B -> ( A. x e. A ph <-> A. x e. B ph ) ) $=
      ( nfcv raleqf ) ABCDBCEBDEF $.

    $( Equality theorem for restricted existential quantifier.  (Contributed by
       NM, 29-Oct-1995.) $)
    rexeq $p |- ( A = B -> ( E. x e. A ph <-> E. x e. B ph ) ) $=
      ( nfcv rexeqf ) ABCDBCEBDEF $.

    $( Equality theorem for restricted uniqueness quantifier.  (Contributed by
       NM, 5-Apr-2004.) $)
    reueq1 $p |- ( A = B -> ( E! x e. A ph <-> E! x e. B ph ) ) $=
      ( nfcv reueq1f ) ABCDBCEBDEF $.

    $( Equality theorem for restricted uniqueness quantifier.  (Contributed by
       Alexander van der Vekens, 17-Jun-2017.) $)
    rmoeq1 $p |- ( A = B -> ( E* x e. A ph <-> E* x e. B ph ) ) $=
      ( nfcv rmoeq1f ) ABCDBCEBDEF $.
  $}

  ${
    $d A x $.  $d B x $.
    raleq1i.1 $e |- A = B $.
    $( Equality inference for restricted universal qualifier.  (Contributed by
       Paul Chapman, 22-Jun-2011.) $)
    raleqi $p |- ( A. x e. A ph <-> A. x e. B ph ) $=
      ( wceq wral wb raleq ax-mp ) CDFABCGABDGHEABCDIJ $.

    $( Equality inference for restricted existential qualifier.  (Contributed
       by Mario Carneiro, 23-Apr-2015.) $)
    rexeqi $p |- ( E. x e. A ph <-> E. x e. B ph ) $=
      ( wceq wrex wb rexeq ax-mp ) CDFABCGABDGHEABCDIJ $.
  $}

  ${
    $d x A $.  $d x B $.
    raleq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for restricted universal quantifier.  (Contributed by
       NM, 13-Nov-2005.) $)
    raleqdv $p |- ( ph -> ( A. x e. A ps <-> A. x e. B ps ) ) $=
      ( wceq wral wb raleq syl ) ADEGBCDHBCEHIFBCDEJK $.

    $( Equality deduction for restricted existential quantifier.  (Contributed
       by NM, 14-Jan-2007.) $)
    rexeqdv $p |- ( ph -> ( E. x e. A ps <-> E. x e. B ps ) ) $=
      ( wceq wrex wb rexeq syl ) ADEGBCDHBCEHIFBCDEJK $.
  $}

  ${
    $d x A $.  $d x B $.
    raleqd.1 $e |- ( A = B -> ( ph <-> ps ) ) $.
    $( Equality deduction for restricted universal quantifier.  (Contributed by
       NM, 16-Nov-1995.) $)
    raleqbi1dv $p |- ( A = B -> ( A. x e. A ph <-> A. x e. B ps ) ) $=
      ( wceq wral raleq ralbidv bitrd ) DEGZACDHACEHBCEHACDEILABCEFJK $.

    $( Equality deduction for restricted existential quantifier.  (Contributed
       by NM, 18-Mar-1997.) $)
    rexeqbi1dv $p |- ( A = B -> ( E. x e. A ph <-> E. x e. B ps ) ) $=
      ( wceq wrex rexeq rexbidv bitrd ) DEGZACDHACEHBCEHACDEILABCEFJK $.

    $( Equality deduction for restricted uniqueness quantifier.  (Contributed
       by NM, 5-Apr-2004.) $)
    reueqd $p |- ( A = B -> ( E! x e. A ph <-> E! x e. B ps ) ) $=
      ( wceq wreu reueq1 reubidv bitrd ) DEGZACDHACEHBCEHACDEILABCEFJK $.

    $( Equality deduction for restricted uniqueness quantifier.  (Contributed
       by Alexander van der Vekens, 17-Jun-2017.) $)
    rmoeqd $p |- ( A = B -> ( E* x e. A ph <-> E* x e. B ps ) ) $=
      ( wceq wrmo rmoeq1 rmobidv bitrd ) DEGZACDHACEHBCEHACDEILABCEFJK $.
  $}

  ${
    raleqbid.0 $e |- F/ x ph $.
    raleqbid.1 $e |- F/_ x A $.
    raleqbid.2 $e |- F/_ x B $.
    raleqbid.3 $e |- ( ph -> A = B ) $.
    raleqbid.4 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equality deduction for restricted universal quantifier.  (Contributed by
       Thierry Arnoux, 8-Mar-2017.) $)
    raleqbid $p |- ( ph -> ( A. x e. A ps <-> A. x e. B ch ) ) $=
      ( wral wceq wb raleqf syl ralbid bitrd ) ABDELZBDFLZCDFLAEFMSTNJBDEFHIOPA
      BCDFGKQR $.

    $( Equality deduction for restricted existential quantifier.  (Contributed
       by Thierry Arnoux, 8-Mar-2017.) $)
    rexeqbid $p |- ( ph -> ( E. x e. A ps <-> E. x e. B ch ) ) $=
      ( wrex wceq wb rexeqf syl rexbid bitrd ) ABDELZBDFLZCDFLAEFMSTNJBDEFHIOPA
      BCDFGKQR $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    raleqbidv.1 $e |- ( ph -> A = B ) $.
    raleqbidv.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equality deduction for restricted universal quantifier.  (Contributed by
       NM, 6-Nov-2007.) $)
    raleqbidv $p |- ( ph -> ( A. x e. A ps <-> A. x e. B ch ) ) $=
      ( wral raleqdv ralbidv bitrd ) ABDEIBDFICDFIABDEFGJABCDFHKL $.

    $( Equality deduction for restricted universal quantifier.  (Contributed by
       NM, 6-Nov-2007.) $)
    rexeqbidv $p |- ( ph -> ( E. x e. A ps <-> E. x e. B ch ) ) $=
      ( wrex rexeqdv rexbidv bitrd ) ABDEIBDFICDFIABDEFGJABCDFHKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    raleqbidva.1 $e |- ( ph -> A = B ) $.
    raleqbidva.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Equality deduction for restricted universal quantifier.  (Contributed by
       Mario Carneiro, 5-Jan-2017.) $)
    raleqbidva $p |- ( ph -> ( A. x e. A ps <-> A. x e. B ch ) ) $=
      ( wral ralbidva raleqdv bitrd ) ABDEICDEICDFIABCDEHJACDEFGKL $.

    $( Equality deduction for restricted universal quantifier.  (Contributed by
       Mario Carneiro, 5-Jan-2017.) $)
    rexeqbidva $p |- ( ph -> ( E. x e. A ps <-> E. x e. B ch ) ) $=
      ( wrex rexbidva rexeqdv bitrd ) ABDEICDEICDFIABCDEHJACDEFGKL $.
  $}

  ${
    $d A x $.  $d B x $.
    $( All elements of a class are elements of a class equal to this class.
       (Contributed by AV, 30-Oct-2020.) $)
    raleleq $p |- ( A = B -> A. x e. A x e. B ) $=
      ( wceq cv wcel eleq2 biimpd ralrimiv ) BCDZAEZCFZABJKBFLBCKGHI $.

    $( Alternate proof of ~ raleleq using ~ ralel , being longer and using more
       axioms.  (Contributed by AV, 30-Oct-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    raleleqALT $p |- ( A = B -> A. x e. A x e. B ) $=
      ( wceq cv wcel wral ralel id raleqdv mpbiri ) BCDZAECFZABGMACGACHLMABCLIJ
      K $.
  $}

  $( Unrestricted "at most one" implies restricted "at most one".  (Contributed
     by NM, 16-Jun-2017.) $)
  mormo $p |- ( E* x ph -> E* x e. A ph ) $=
    ( wmo cv wcel wa wrmo moan df-rmo sylibr ) ABDBECFZAGBDABCHALBIABCJK $.

  $( Restricted uniqueness in terms of "at most one."  (Contributed by NM,
     23-May-1999.)  (Revised by NM, 16-Jun-2017.) $)
  reu5 $p |- ( E! x e. A ph <-> ( E. x e. A ph /\ E* x e. A ph ) ) $=
    ( cv wcel wa weu wex wmo wreu wrex eu5 df-reu df-rex df-rmo anbi12i 3bitr4i
    wrmo ) BDCEAFZBGSBHZSBIZFABCJABCKZABCRZFSBLABCMUBTUCUAABCNABCOPQ $.

  $( Restricted unique existence implies restricted existence.  (Contributed by
     NM, 19-Aug-1999.) $)
  reurex $p |- ( E! x e. A ph -> E. x e. A ph ) $=
    ( wreu wrex wrmo reu5 simplbi ) ABCDABCEABCFABCGH $.

  $( Restricted existential uniqueness implies restricted "at most one."
     (Contributed by NM, 16-Jun-2017.) $)
  reurmo $p |- ( E! x e. A ph -> E* x e. A ph ) $=
    ( wreu wrex wrmo reu5 simprbi ) ABCDABCEABCFABCGH $.

  $( Restricted "at most one" in term of uniqueness.  (Contributed by NM,
     16-Jun-2017.) $)
  rmo5 $p |- ( E* x e. A ph <-> ( E. x e. A ph -> E! x e. A ph ) ) $=
    ( cv wcel wa wmo wex weu wrmo wrex wreu df-mo df-rmo df-rex imbi12i 3bitr4i
    wi df-reu ) BDCEAFZBGTBHZTBIZRABCJABCKZABCLZRTBMABCNUCUAUDUBABCOABCSPQ $.

  $( Nonexistence implies restricted "at most one".  (Contributed by NM,
     17-Jun-2017.) $)
  nrexrmo $p |- ( -. E. x e. A ph -> E* x e. A ph ) $=
    ( wrex wn wreu wi wrmo pm2.21 rmo5 sylibr ) ABCDZELABCFZGABCHLMIABCJK $.

  ${
    $d ph x $.
    reueubd.1 $e |- ( ( ph /\ ps ) -> x e. V ) $.
    $( Restricted existential uniqueness is equivalent with existential
       uniqueness if the unique element is in the restricting class.
       (Contributed by AV, 4-Jan-2021.) $)
    reueubd $p |- ( ph -> ( E! x e. V ps <-> E! x ps ) ) $=
      ( weu cv wcel wa wreu ex pm4.71rd eubidv df-reu syl6rbbr ) ABCFCGDHZBIZCF
      BCDJABQCABPABPEKLMBCDNO $.
  $}

  ${
    $d x z $.  $d y z $.  $d z A $.  $d z ps $.  $d z ph $.
    cbvralf.1 $e |- F/_ x A $.
    cbvralf.2 $e |- F/_ y A $.
    cbvralf.3 $e |- F/ y ph $.
    cbvralf.4 $e |- F/ x ps $.
    cbvralf.5 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 7-Mar-2004.)  (Revised by Mario Carneiro,
       9-Oct-2016.) $)
    cbvralf $p |- ( A. x e. A ph <-> A. y e. A ps ) $=
      ( vz cv wcel wi wal wral wsb nfv nfcri nfim nfs1v weq eleq1 sbequ12 cbval
      imbi12d nfsb sbequ sbie syl6bb bitri df-ral 3bitr4i ) CLZEMZANZCOZDLZEMZB
      NZDOZACEPBDEPUQKLZEMZACKQZNZKOVAUPVECKUPKRVCVDCCKEFSACKUATCKUBUOVCAVDUNVB
      EUCACKUDUFUEVEUTKDVCVDDDKEGSACKDHUGTUTKRKDUBZVCUSVDBVBUREUCVFVDACDQBAKDCU
      HABCDIJUIUJUFUEUKACEULBDEULUM $.

    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by FL, 27-Apr-2008.)  (Revised by Mario Carneiro,
       9-Oct-2016.) $)
    cbvrexf $p |- ( E. x e. A ph <-> E. y e. A ps ) $=
      ( wn wral wrex nfn weq notbid cbvralf notbii dfrex2 3bitr4i ) AKZCELZKBKZ
      DELZKACEMBDEMUBUDUAUCCDEFGADHNBCINCDOABJPQRACESBDEST $.
  $}

  ${
    $d x z A $.  $d y z A $.  $d z ph $.  $d z ps $.
    cbvral.1 $e |- F/ y ph $.
    cbvral.2 $e |- F/ x ps $.
    cbvral.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 31-Jul-2003.) $)
    cbvral $p |- ( A. x e. A ph <-> A. y e. A ps ) $=
      ( nfcv cbvralf ) ABCDECEIDEIFGHJ $.

    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 31-Jul-2003.)  (Proof shortened by Andrew Salmon,
       8-Jun-2011.) $)
    cbvrex $p |- ( E. x e. A ph <-> E. y e. A ps ) $=
      ( nfcv cbvrexf ) ABCDECEIDEIFGHJ $.

    $( Change the bound variable of a restricted uniqueness quantifier using
       implicit substitution.  (Contributed by Mario Carneiro, 15-Oct-2016.) $)
    cbvreu $p |- ( E! x e. A ph <-> E! y e. A ps ) $=
      ( vz cv wcel wa weu wreu wsb nfv sb8eu sban eubii df-reu anbi1i nfsb nfan
      clelsb3 weq eleq1 sbequ sbie syl6bb anbi12d cbveu bitri 3bitri 3bitr4i )
      CJEKZALZCMZDJZEKZBLZDMZACENBDENUQUPCIOZIMUOCIOZACIOZLZIMZVAUPCIUPIPQVBVEI
      UOACIRSVFIJZEKZVDLZIMVAVEVIIVCVHVDICEUDUASVIUTIDVHVDDVHDPACIDFUBUCUTIPIDU
      EZVHUSVDBVGUREUFVJVDACDOBAIDCUGABCDGHUHUIUJUKULUMACETBDETUN $.

    $( Change the bound variable of restricted "at most one" using implicit
       substitution.  (Contributed by NM, 16-Jun-2017.) $)
    cbvrmo $p |- ( E* x e. A ph <-> E* y e. A ps ) $=
      ( wrex wreu wi wrmo cbvrex cbvreu imbi12i rmo5 3bitr4i ) ACEIZACEJZKBDEIZ
      BDEJZKACELBDELRTSUAABCDEFGHMABCDEFGHNOACEPBDEPQ $.
  $}

  ${
    $d x A $.  $d y A $.  $d y ph $.  $d x ps $.
    cbvralv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change the bound variable of a restricted universal quantifier using
       implicit substitution.  (Contributed by NM, 28-Jan-1997.) $)
    cbvralv $p |- ( A. x e. A ph <-> A. y e. A ps ) $=
      ( nfv cbvral ) ABCDEADGBCGFH $.

    $( Change the bound variable of a restricted existential quantifier using
       implicit substitution.  (Contributed by NM, 2-Jun-1998.) $)
    cbvrexv $p |- ( E. x e. A ph <-> E. y e. A ps ) $=
      ( nfv cbvrex ) ABCDEADGBCGFH $.

    $( Change the bound variable of a restricted uniqueness quantifier using
       implicit substitution.  (Contributed by NM, 5-Apr-2004.)  (Revised by
       Mario Carneiro, 15-Oct-2016.) $)
    cbvreuv $p |- ( E! x e. A ph <-> E! y e. A ps ) $=
      ( nfv cbvreu ) ABCDEADGBCGFH $.

    $( Change the bound variable of a restricted uniqueness quantifier using
       implicit substitution.  (Contributed by Alexander van der Vekens,
       17-Jun-2017.) $)
    cbvrmov $p |- ( E* x e. A ph <-> E* y e. A ps ) $=
      ( nfv cbvrmo ) ABCDEADGBCGFH $.
  $}

  ${
    $d A y $.  $d ps y $.  $d B x $.  $d ch x $.  $d x ph y $.
    cbvraldva2.1 $e |- ( ( ph /\ x = y ) -> ( ps <-> ch ) ) $.
    cbvraldva2.2 $e |- ( ( ph /\ x = y ) -> A = B ) $.
    $( Rule used to change the bound variable in a restricted universal
       quantifier with implicit substitution which also changes the quantifier
       domain.  Deduction form.  (Contributed by David Moews, 1-May-2017.) $)
    cbvraldva2 $p |- ( ph -> ( A. x e. A ps <-> A. y e. B ch ) ) $=
      ( cv wcel wi wal wral weq wa simpr eleq12d imbi12d df-ral cbvaldva
      3bitr4g ) ADJZFKZBLZDMEJZGKZCLZEMBDFNCEGNAUEUHDEADEOZPZUDUGBCUJUCUFFGAUIQ
      IRHSUABDFTCEGTUB $.

    $( Rule used to change the bound variable in a restricted existential
       quantifier with implicit substitution which also changes the quantifier
       domain.  Deduction form.  (Contributed by David Moews, 1-May-2017.) $)
    cbvrexdva2 $p |- ( ph -> ( E. x e. A ps <-> E. y e. B ch ) ) $=
      ( cv wcel wa wex wrex weq simpr eleq12d anbi12d cbvexdva df-rex 3bitr4g )
      ADJZFKZBLZDMEJZGKZCLZEMBDFNCEGNAUDUGDEADEOZLZUCUFBCUIUBUEFGAUHPIQHRSBDFTC
      EGTUA $.
  $}

  ${
    $d ps y $.  $d ch x $.  $d A x y $.  $d x ph y $.
    cbvraldva.1 $e |- ( ( ph /\ x = y ) -> ( ps <-> ch ) ) $.
    $( Rule used to change the bound variable in a restricted universal
       quantifier with implicit substitution.  Deduction form.  (Contributed by
       David Moews, 1-May-2017.) $)
    cbvraldva $p |- ( ph -> ( A. x e. A ps <-> A. y e. A ch ) ) $=
      ( weq wa eqidd cbvraldva2 ) ABCDEFFGADEHIFJK $.

    $( Rule used to change the bound variable in a restricted existential
       quantifier with implicit substitution.  Deduction form.  (Contributed by
       David Moews, 1-May-2017.) $)
    cbvrexdva $p |- ( ph -> ( E. x e. A ps <-> E. y e. A ch ) ) $=
      ( weq wa eqidd cbvrexdva2 ) ABCDEFFGADEHIFJK $.
  $}

  ${
    $d x A $.  $d z A $.  $d x y B $.  $d z y B $.  $d w B $.  $d z ph $.
    $d y ps $.  $d x ch $.  $d w ch $.
    cbvral2v.1 $e |- ( x = z -> ( ph <-> ch ) ) $.
    cbvral2v.2 $e |- ( y = w -> ( ch <-> ps ) ) $.
    $( Change bound variables of double restricted universal quantification,
       using implicit substitution.  (Contributed by NM, 10-Aug-2004.) $)
    cbvral2v $p |- ( A. x e. A A. y e. B ph <-> A. z e. A A. w e. B ps ) $=
      ( wral weq ralbidv cbvralv ralbii bitri ) AEILZDHLCEILZFHLBGILZFHLRSDFHDF
      MACEIJNOSTFHCBEGIKOPQ $.
  $}

  ${
    $d A x $.  $d A z $.  $d B w $.  $d B x y $.  $d B z y $.  $d ch w $.
    $d ch x $.  $d ph z $.  $d ps y $.
    cbvrex2v.1 $e |- ( x = z -> ( ph <-> ch ) ) $.
    cbvrex2v.2 $e |- ( y = w -> ( ch <-> ps ) ) $.
    $( Change bound variables of double restricted universal quantification,
       using implicit substitution.  (Contributed by FL, 2-Jul-2012.) $)
    cbvrex2v $p |- ( E. x e. A E. y e. B ph <-> E. z e. A E. w e. B ps ) $=
      ( wrex weq rexbidv cbvrexv rexbii bitri ) AEILZDHLCEILZFHLBGILZFHLRSDFHDF
      MACEIJNOSTFHCBEGIKOPQ $.
  $}

  ${
    $d w ph $.  $d z ps $.  $d x ch $.  $d v ch $.  $d y u th $.  $d x A $.
    $d w A $.  $d x y B $.  $d w y B $.  $d v B $.  $d x y z C $.
    $d w y z C $.  $d v z C $.  $d z y C $.  $d z C $.  $d u C $.
    cbvral3v.1 $e |- ( x = w -> ( ph <-> ch ) ) $.
    cbvral3v.2 $e |- ( y = v -> ( ch <-> th ) ) $.
    cbvral3v.3 $e |- ( z = u -> ( th <-> ps ) ) $.
    $( Change bound variables of triple restricted universal quantification,
       using implicit substitution.  (Contributed by NM, 10-May-2005.) $)
    cbvral3v $p |- ( A. x e. A A. y e. B A. z e. C ph <->
                     A. w e. A A. v e. B A. u e. C ps ) $=
      ( wral weq 2ralbidv cbvralv cbvral2v ralbii bitri ) AGMQFLQZEKQCGMQFLQZHK
      QBJMQILQZHKQUDUEEHKEHRACFGLMNSTUEUFHKCBDFGIJLMOPUAUBUC $.
  $}

  ${
    $d z x A $.  $d y A $.  $d z y ph $.
    $( Change bound variable by using a substitution.  (Contributed by NM,
       20-Nov-2005.)  (Revised by Andrew Salmon, 11-Jul-2011.) $)
    cbvralsv $p |- ( A. x e. A ph <-> A. y e. A [ y / x ] ph ) $=
      ( vz wral wsb nfv nfs1v sbequ12 cbvral nfsb sbequ bitri ) ABDFABEGZEDFABC
      GZCDFAOBEDAEHABEIABEJKOPECDABECACHLPEHAECBMKN $.
  $}

  ${
    $d z x A $.  $d y z ph $.  $d y A $.
    $( Change bound variable by using a substitution.  (Contributed by NM,
       2-Mar-2008.)  (Revised by Andrew Salmon, 11-Jul-2011.) $)
    cbvrexsv $p |- ( E. x e. A ph <-> E. y e. A [ y / x ] ph ) $=
      ( vz wrex wsb nfv nfs1v sbequ12 cbvrex nfsb sbequ bitri ) ABDFABEGZEDFABC
      GZCDFAOBEDAEHABEIABEJKOPECDABECACHLPEHAECBMKN $.
  $}

  ${
    $d x y z $.  $d y z ph $.  $d x z ps $.
    sbralie.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Implicit to explicit substitution that swaps variables in a quantified
       expression.  (Contributed by NM, 5-Sep-2004.) $)
    sbralie $p |- ( [ x / y ] A. x e. y ph <-> A. y e. x ps ) $=
      ( vz cv wral wsb cbvralsv sbbii nfv raleq sbie bitri sbco2 ralbii ) ACDGZ
      HZDCIZACFIZFCGZHZBDUBHZTUAFRHZDCIUCSUEDCACFRJKUEUCDCUCDLUAFRUBMNOUCUAFDIZ
      DUBHUDUAFDUBJUFBDUBUFACDIBACDFAFLPABCDBCLENOQOO $.
  $}

  ${
    rabbiia.1 $e |- ( x e. A -> ( ph <-> ps ) ) $.
    $( Equivalent wff's yield equal restricted class abstractions (inference
       rule).  (Contributed by NM, 22-May-1999.) $)
    rabbiia $p |- { x e. A | ph } = { x e. A | ps } $=
      ( cv wcel wa cab crab pm5.32i abbii df-rab 3eqtr4i ) CFDGZAHZCIOBHZCIACDJ
      BCDJPQCOABEKLACDMBCDMN $.
  $}

  ${
    $d x ph $.
    rabbidva2.1 $e |- ( ph -> ( ( x e. A /\ ps ) <-> ( x e. B /\ ch ) ) ) $.
    $( Equivalent wff's yield equal restricted class abstractions.
       (Contributed by Thierry Arnoux, 4-Feb-2017.) $)
    rabbidva2 $p |- ( ph -> { x e. A | ps } = { x e. B | ch } ) $=
      ( cv wcel wa cab crab abbidv df-rab 3eqtr4g ) ADHZEIBJZDKPFICJZDKBDELCDFL
      AQRDGMBDENCDFNO $.
  $}

  ${
    rabbia2.1 $e |- ( ( x e. A /\ ps ) <-> ( x e. B /\ ch ) ) $.
    $( Equivalent wff's yield equal restricted class abstractions.
       (Contributed by Glauco Siliprandi, 26-Jun-2021.) $)
    rabbia2 $p |- { x e. A | ps } = { x e. B | ch } $=
      ( crab wceq wtru cv wcel wa wb a1i rabbidva2 trud ) ACDGBCEGHIABCDECJZDKA
      LQEKBLMIFNOP $.
  $}

  ${
    $d x ph $.
    rabbidva.1 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal restricted class abstractions (deduction
       rule).  (Contributed by NM, 28-Nov-2003.) $)
    rabbidva $p |- ( ph -> { x e. A | ps } = { x e. A | ch } ) $=
      ( wb wral crab wceq ralrimiva rabbi sylib ) ABCGZDEHBDEICDEIJANDEFKBCDELM
      $.
  $}

  ${
    $d x ph $.
    rabbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal restricted class abstractions (deduction
       rule).  (Contributed by NM, 10-Feb-1995.) $)
    rabbidv $p |- ( ph -> { x e. A | ps } = { x e. A | ch } ) $=
      ( wb cv wcel adantr rabbidva ) ABCDEABCGDHEIFJK $.
  $}

  ${
    rabeqf.1 $e |- F/_ x A $.
    rabeqf.2 $e |- F/_ x B $.
    $( Equality theorem for restricted class abstractions, with bound-variable
       hypotheses instead of distinct variable restrictions.  (Contributed by
       NM, 7-Mar-2004.) $)
    rabeqf $p |- ( A = B -> { x e. A | ph } = { x e. B | ph } ) $=
      ( wceq cv wcel wa cab crab nfeq eleq2 anbi1d abbid df-rab 3eqtr4g ) CDGZB
      HZCIZAJZBKTDIZAJZBKABCLABDLSUBUDBBCDEFMSUAUCACDTNOPABCQABDQR $.

    rabeqif.3 $e |- A = B $.
    $( Equality theorem for restricted class abstractions.  Inference form of
       ~ rabeqf .  (Contributed by Glauco Siliprandi, 26-Jun-2021.) $)
    rabeqif $p |- { x e. A | ph } = { x e. B | ph } $=
      ( wceq crab rabeqf ax-mp ) CDHABCIABDIHGABCDEFJK $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Equality theorem for restricted class abstractions.  (Contributed by NM,
       15-Oct-2003.) $)
    rabeq $p |- ( A = B -> { x e. A | ph } = { x e. B | ph } ) $=
      ( nfcv rabeqf ) ABCDBCEBDEF $.

    ${
      rabeqi.1 $e |- A = B $.
      $( Equality theorem for restricted class abstractions.  Inference form of
         ~ rabeq .  (Contributed by Glauco Siliprandi, 26-Jun-2021.) $)
      rabeqi $p |- { x e. A | ph } = { x e. B | ph } $=
        ( nfcv rabeqif ) ABCDBCFBDFEG $.
    $}

    $d ph x $.
    rabeqdv.1 $e |- ( ph -> A = B ) $.
    $( Equality of restricted class abstractions.  Deduction form of ~ rabeq .
       (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    rabeqdv $p |- ( ph -> { x e. A | ps } = { x e. B | ps } ) $=
      ( wceq crab rabeq syl ) ADEGBCDHBCEHGFBCDEIJ $.
  $}

  ${
    $d A x $.  $d B x $.  $d ph x $.
    rabeqbidv.1 $e |- ( ph -> A = B ) $.
    rabeqbidv.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equality of restricted class abstractions.  (Contributed by Jeff Madsen,
       1-Dec-2009.) $)
    rabeqbidv $p |- ( ph -> { x e. A | ps } = { x e. B | ch } ) $=
      ( crab rabeqdv rabbidv eqtrd ) ABDEIBDFICDFIABDEFGJABCDFHKL $.
  $}

  ${
    $d A x $.  $d B x $.  $d ph x $.
    rabeqbidva.1 $e |- ( ph -> A = B ) $.
    rabeqbidva.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Equality of restricted class abstractions.  (Contributed by Mario
       Carneiro, 26-Jan-2017.) $)
    rabeqbidva $p |- ( ph -> { x e. A | ps } = { x e. B | ch } ) $=
      ( crab rabbidva rabeqdv eqtrd ) ABDEICDEICDFIABCDEHJACDEFGKL $.
  $}

  ${
    rabeq2i.1 $e |- A = { x e. B | ph } $.
    $( Inference rule from equality of a class variable and a restricted class
       abstraction.  (Contributed by NM, 16-Feb-2004.) $)
    rabeq2i $p |- ( x e. A <-> ( x e. B /\ ph ) ) $=
      ( cv wcel crab wa eleq2i rabid bitri ) BFZCGMABDHZGMDGAICNMEJABDKL $.
  $}

  ${
    $d x z $.  $d y z $.  $d A z $.  $d ph z $.  $d ps z $.
    cbvrab.1 $e |- F/_ x A $.
    cbvrab.2 $e |- F/_ y A $.
    cbvrab.3 $e |- F/ y ph $.
    cbvrab.4 $e |- F/ x ps $.
    cbvrab.5 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule to change the bound variable in a restricted class abstraction,
       using implicit substitution.  This version has bound-variable hypotheses
       in place of distinct variable conditions.  (Contributed by Andrew
       Salmon, 11-Jul-2011.)  (Revised by Mario Carneiro, 9-Oct-2016.) $)
    cbvrab $p |- { x e. A | ph } = { y e. A | ps } $=
      ( vz cv wcel wa cab crab wsb nfv nfcri nfan nfs1v weq eleq1 sbequ12 cbvab
      anbi12d nfsb sbequ sbie syl6bb eqtri df-rab 3eqtr4i ) CLZEMZANZCOZDLZEMZB
      NZDOZACEPBDEPUQKLZEMZACKQZNZKOVAUPVECKUPKRVCVDCCKEFSACKUATCKUBUOVCAVDUNVB
      EUCACKUDUFUEVEUTKDVCVDDDKEGSACKDHUGTUTKRKDUBZVCUSVDBVBUREUCVFVDACDQBAKDCU
      HABCDIJUIUJUFUEUKACEULBDEULUM $.
  $}

  ${
    $d x y A $.  $d y ph $.  $d x ps $.
    cbvrabv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule to change the bound variable in a restricted class abstraction,
       using implicit substitution.  (Contributed by NM, 26-May-1999.) $)
    cbvrabv $p |- { x e. A | ph } = { y e. A | ps } $=
      ( nfcv nfv cbvrab ) ABCDECEGDEGADHBCHFI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The universal class
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare the symbol for the universal class. $)
  $c _V $. $( Letter V (for the universal class) $)

  $( Extend class notation to include the universal class symbol. $)
  cvv $a class _V $.

  ${
    $d z x $.  $d z y $.
    $( Soundness justification theorem for ~ df-v .  (Contributed by Rodolfo
       Medina, 27-Apr-2010.) $)
    vjust $p |- { x | x = x } = { y | y = y } $=
      ( vz weq cab wsb cv wcel equid sbt 2th df-clab 3bitr4i eqriv ) CAADZAEZBB
      DZBEZOACFZQBCFZCGZPHUARHSTOACAIJQBCBIJKOCALQCBLMN $.
  $}

  $( Define the universal class.  Definition 5.20 of [TakeutiZaring] p. 21.
     Also Definition 2.9 of [Quine] p. 19.  The class ` _V ` can be described
     as the "class of all sets"; ~ vprc proves that ` _V ` is not itself a set
     in ZFC. We will frequently use the expression ` A e. _V ` as a short way
     to say " ` A ` is a set", and ~ isset proves that this expression has the
     same meaning as ` E. x x = A ` .  The class ` _V ` is called the "von
     Neumann universe", however, the letter "V" is not a tribute to the name of
     von Neumann.  The letter "V" was used earlier by Peano in 1889 for the
     universe of sets, where the letter V is derived from the word "Verum".
     Peano's notation V was adopted by Whitehead and Russell in Principia
     Mathematica for the class of all sets in 1910.  For a general discussion
     of the theory of classes, see ~ mmset.html#class .  (Contributed by NM,
     26-May-1993.) $)
  df-v $a |- _V = { x | x = x } $.

  $( All setvar variables are sets (see ~ isset ).  Theorem 6.8 of [Quine]
     p. 43.  (Contributed by NM, 26-May-1993.) $)
  vex $p |- x e. _V $=
    ( cv cvv wcel weq equid df-v abeq2i mpbir ) ABCDAAEZAFJACAGHI $.

  ${
    eqvf.1 $e |- F/_ x A $.
    $( The universe contains every set.  (Contributed by BJ, 15-Jul-2021.) $)
    eqvf $p |- ( A = _V <-> A. x x e. A ) $=
      ( cvv wceq cv wcel wb wal nfcv cleqf vex tbt albii bitr4i ) BDEAFZBGZPDGZ
      HZAIQAIABDCADJKQSARQALMNO $.
  $}

  ${
    $d x A $.
    $( The universe contains every set.  (Contributed by NM, 11-Sep-2006.) $)
    eqv $p |- ( A = _V <-> A. x x e. A ) $=
      ( nfcv eqvf ) ABABCD $.
  $}

  ${
    $d y x $.  $d y ph $.
    $( The class of sets verifying a property is the universal class if and
       only if that property is a tautology.  (Contributed by BJ,
       19-Mar-2021.) $)
    abv $p |- ( { x | ph } = _V <-> A. x ph ) $=
      ( vy cv cab wcel wal wsb cvv wceq df-clab albii eqv nfv sb8 3bitr4i ) CDA
      BEZFZCGABCHZCGQIJABGRSCACBKLCQMABCACNOP $.
  $}

  ${
    $d x A $.
    $( Two ways to say " ` A ` is a set":  A class ` A ` is a member of the
       universal class ` _V ` (see ~ df-v ) if and only if the class ` A `
       exists (i.e. there exists some set ` x ` equal to class ` A ` ).
       Theorem 6.9 of [Quine] p. 43. _Notational convention_:  We will use the
       notational device " ` A e. _V ` " to mean " ` A ` is a set" very
       frequently, for example in ~ uniex .  Note the when ` A ` is not a set,
       it is called a proper class.  In some theorems, such as ~ uniexg , in
       order to shorten certain proofs we use the more general antecedent
       ` A e. V ` instead of ` A e. _V ` to mean " ` A ` is a set."

       Note that a constant is implicitly considered distinct from all
       variables.  This is why ` _V ` is not included in the distinct variable
       list, even though ~ df-clel requires that the expression substituted for
       ` B ` not contain ` x ` .  (Also, the Metamath spec does not allow
       constants in the distinct variable list.)  (Contributed by NM,
       26-May-1993.) $)
    isset $p |- ( A e. _V <-> E. x x = A ) $=
      ( cvv wcel cv wceq wa wex df-clel vex biantru exbii bitr4i ) BCDAEZBFZNCD
      ZGZAHOAHABCIOQAPOAJKLM $.
  $}

  ${
    $d A y $.  $d x y $.
    issetf.1 $e |- F/_ x A $.
    $( A version of ~ isset that does not require ` x ` and ` A ` to be
       distinct.  (Contributed by Andrew Salmon, 6-Jun-2011.)  (Revised by
       Mario Carneiro, 10-Oct-2016.) $)
    issetf $p |- ( A e. _V <-> E. x x = A ) $=
      ( vy cvv wcel cv wceq wex isset nfeq2 nfv eqeq1 cbvex bitri ) BEFDGZBHZDI
      AGZBHZAIDBJQSDAAPBCKSDLPRBMNO $.
  $}

  ${
    $d x A $.
    isseti.1 $e |- A e. _V $.
    $( A way to say " ` A ` is a set" (inference rule).  (Contributed by NM,
       24-Jun-1993.) $)
    isseti $p |- E. x x = A $=
      ( cvv wcel cv wceq wex isset mpbi ) BDEAFBGAHCABIJ $.
  $}

  ${
    $d x A $.
    issetri.1 $e |- E. x x = A $.
    $( A way to say " ` A ` is a set" (inference rule).  (Contributed by NM,
       21-Jun-1993.) $)
    issetri $p |- A e. _V $=
      ( cvv wcel cv wceq wex isset mpbir ) BDEAFBGAHCABIJ $.
  $}

  $( A class equal to a variable is a set.  Note the absence of dv condition,
     contrary to ~ isset and ~ issetri .  (Contributed by BJ, 27-Apr-2019.) $)
  eqvisset $p |- ( x = A -> A e. _V ) $=
    ( cv wceq cvv wcel vex eleq1 mpbii ) ACZBDJEFBEFAGJBEHI $.

  ${
    $d x A $.  $d x B $.
    $( If a class is a member of another class, it is a set.  Theorem 6.12 of
       [Quine] p. 44.  (Contributed by NM, 26-May-1993.)  (Proof shortened by
       Andrew Salmon, 8-Jun-2011.) $)
    elex $p |- ( A e. B -> A e. _V ) $=
      ( vx cv wceq wcel wa wex cvv exsimpl df-clel isset 3imtr4i ) CDZAEZNBFZGC
      HOCHABFAIFOPCJCABKCALM $.
  $}

  ${
    elexi.1 $e |- A e. B $.
    $( If a class is a member of another class, it is a set.  (Contributed by
       NM, 11-Jun-1994.) $)
    elexi $p |- A e. _V $=
      ( wcel cvv elex ax-mp ) ABDAEDCABFG $.
  $}

  ${
    elexd.1 $e |- ( ph -> A e. V ) $.
    $( If a class is a member of another class, it is a set.  (Contributed by
       Glauco Siliprandi, 11-Oct-2020.) $)
    elexd $p |- ( ph -> A e. _V ) $=
      ( wcel cvv elex syl ) ABCEBFEDBCGH $.
  $}

  ${
    $d x A $.
    $( An element of a class exists.  (Contributed by NM, 1-May-1995.) $)
    elisset $p |- ( A e. V -> E. x x = A ) $=
      ( wcel cvv cv wceq wex elex isset sylib ) BCDBEDAFBGAHBCIABJK $.
  $}

  ${
    $d x A $.  $d x B $.
    $( If a class contains another class, then it contains some set.
       (Contributed by Alan Sare, 25-Sep-2011.) $)
    elex2 $p |- ( A e. B -> E. x x e. B ) $=
      ( wcel cv wceq wi wal wex eleq1a alrimiv elisset exim sylc ) BCDZAEZBFZPC
      DZGZAHQAIRAIOSABCPJKABCLQRAMN $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( If two classes each contain another class, then both contain some set.
       (Contributed by Alan Sare, 24-Oct-2011.) $)
    elex22 $p |- ( ( A e. B /\ A e. C ) -> E. x ( x e. B /\ x e. C ) ) $=
      ( wcel wa cv wceq wi wal eleq1a anim12ii alrimiv elisset adantr exim sylc
      wex ) BCEZBDEZFZAGZBHZUBCEZUBDEZFZIZAJUCARZUFARUAUGASUCUDTUEBCUBKBDUBKLMS
      UHTABCNOUCUFAPQ $.
  $}

  $( A proper class doesn't belong to any class.  (Contributed by Glauco
     Siliprandi, 17-Aug-2020.)  (Proof shortened by AV, 14-Nov-2020.) $)
  prcnel $p |- ( -. A e. _V -> -. A e. V ) $=
    ( wcel cvv elex con3i ) ABCADCABEF $.

  $( A universal quantifier restricted to the universe is unrestricted.
     (Contributed by NM, 26-Mar-2004.) $)
  ralv $p |- ( A. x e. _V ph <-> A. x ph ) $=
    ( cvv wral cv wcel wi wal df-ral vex a1bi albii bitr4i ) ABCDBECFZAGZBHABHA
    BCIAOBNABJKLM $.

  $( An existential quantifier restricted to the universe is unrestricted.
     (Contributed by NM, 26-Mar-2004.) $)
  rexv $p |- ( E. x e. _V ph <-> E. x ph ) $=
    ( cvv wrex cv wcel wa wex df-rex vex biantrur exbii bitr4i ) ABCDBECFZAGZBH
    ABHABCIAOBNABJKLM $.

  $( A uniqueness quantifier restricted to the universe is unrestricted.
     (Contributed by NM, 1-Nov-2010.) $)
  reuv $p |- ( E! x e. _V ph <-> E! x ph ) $=
    ( cvv wreu cv wcel wa weu df-reu vex biantrur eubii bitr4i ) ABCDBECFZAGZBH
    ABHABCIAOBNABJKLM $.

  $( A uniqueness quantifier restricted to the universe is unrestricted.
     (Contributed by Alexander van der Vekens, 17-Jun-2017.) $)
  rmov $p |- ( E* x e. _V ph <-> E* x ph ) $=
    ( cvv wrmo cv wcel wa wmo df-rmo vex biantrur mobii bitr4i ) ABCDBECFZAGZBH
    ABHABCIAOBNABJKLM $.

  $( A class abstraction restricted to the universe is unrestricted.
     (Contributed by NM, 27-Dec-2004.)  (Proof shortened by Andrew Salmon,
     8-Jun-2011.) $)
  rabab $p |- { x e. _V | ph } = { x | ph } $=
    ( cvv crab cv wcel wa cab df-rab vex biantrur abbii eqtr4i ) ABCDBECFZAGZBH
    ABHABCIAOBNABJKLM $.

  ${
    $d x y $.  $d y A $.
    $( Commutation of restricted and unrestricted universal quantifiers.
       (Contributed by NM, 26-Mar-2004.)  (Proof shortened by Andrew Salmon,
       8-Jun-2011.) $)
    ralcom4 $p |- ( A. x e. A A. y ph <-> A. y A. x e. A ph ) $=
      ( cvv wral wal ralcom ralv ralbii 3bitr3i ) ACEFZBDFABDFZCEFACGZBDFMCGABC
      DEHLNBDACIJMCIK $.

    $( Commutation of restricted and unrestricted existential quantifiers.
       (Contributed by NM, 12-Apr-2004.)  (Proof shortened by Andrew Salmon,
       8-Jun-2011.) $)
    rexcom4 $p |- ( E. x e. A E. y ph <-> E. y E. x e. A ph ) $=
      ( cvv wrex wex rexcom rexv rexbii 3bitr3i ) ACEFZBDFABDFZCEFACGZBDFMCGABC
      DEHLNBDACIJMCIK $.
  $}

  ${
    $d A x $.  $d x y $.  $d ph x $.
    $( Specialized existential commutation lemma.  (Contributed by Jeff Madsen,
       1-Jun-2011.) $)
    rexcom4a $p |- ( E. x E. y e. A ( ph /\ ps )
                          <-> E. y e. A ( ph /\ E. x ps ) ) $=
      ( wa wrex wex rexcom4 19.42v rexbii bitr3i ) ABFZDEGCHMCHZDEGABCHFZDEGMDC
      EINODEABCJKL $.

    $d B x $.
    rexcom4b.1 $e |- B e. _V $.
    $( Specialized existential commutation lemma.  (Contributed by Jeff Madsen,
       1-Jun-2011.) $)
    rexcom4b $p |- ( E. x E. y e. A ( ph /\ x = B ) <-> E. y e. A ph ) $=
      ( cv wceq wa wrex wex rexcom4a isseti biantru rexbii bitr4i ) ABGEHZICDJB
      KAQBKZIZCDJACDJAQBCDLASCDRABEFMNOP $.
  $}

  ${
    $d x A $.
    $( Closed theorem version of ~ ceqsalg .  (Contributed by NM, 28-Feb-2013.)
       (Revised by Mario Carneiro, 10-Oct-2016.) $)
    ceqsalt $p |- ( ( F/ x ps /\ A. x ( x = A -> ( ph <-> ps ) ) /\ A e. V )
         -> ( A. x ( x = A -> ph ) <-> ps ) ) $=
      ( wnf cv wceq wb wi wal wcel w3a elisset 3ad2ant3 biimp 3ad2ant2 3ad2ant1
      wex imim3i al2imi 19.23t sylibd biimpr imim2i com23 alimi 19.21t impbid
      mpid mpbid ) BCFZCGDHZABIZJZCKZDELZMZUMAJZCKZBURUTUMCSZBUQULVAUPCDENOURUT
      UMBJZCKZVABJZUPULUTVCJUQUOUSVBCUNABUMABPTUAQULUPVCVDIUQUMBCUBRUCUJURBUSJZ
      CKZBUTJZUPULVFUQUOVECUOUMBAUNBAJUMABUDUEUFUGQULUPVFVGIUQBUSCUHRUKUI $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Restricted quantifier version of ~ ceqsalt .  (Contributed by NM,
       28-Feb-2013.)  (Revised by Mario Carneiro, 10-Oct-2016.) $)
    ceqsralt $p |- ( ( F/ x ps
              /\ A. x ( x = A -> ( ph <-> ps ) ) /\ A e. B )
         -> ( A. x e. B ( x = A -> ph ) <-> ps ) ) $=
      ( wnf cv wceq wb wi wal wcel w3a wral df-ral eleq1 pm5.32ri imbi1i impexp
      wa 3bitr3i albii 19.21v 3bitri a1i biimt 3ad2ant3 ceqsalt 3bitr2d ) BCFZC
      GZDHZABIJCKZDELZMZULAJZCENZUNUPCKZJZURBUQUSIUOUQUKELZUPJZCKUNUPJZCKUSUPCE
      OVAVBCUTULTZAJUNULTZAJVAVBVCVDAULUTUNUKDEPQRUTULASUNULASUAUBUNUPCUCUDUEUN
      UJURUSIUMUNURUFUGABCDEUHUI $.
  $}

  ${
    $d x A $.
    ceqsalg.1 $e |- F/ x ps $.
    ceqsalg.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( A representation of explicit substitution of a class for a variable,
       inferred from an implicit substitution hypothesis.  For an alternate
       proof, see ~ ceqsalgALT .  (Contributed by NM, 29-Oct-2003.)  (Proof
       shortened by BJ, 29-Sep-2019.) $)
    ceqsalg $p |- ( A e. V -> ( A. x ( x = A -> ph ) <-> ps ) ) $=
      ( wnf cv wceq wb wi wal wcel ax-gen ceqsalt mp3an12 ) BCHCIDJZABKLZCMDENR
      ALCMBKFSCGOABCDEPQ $.

    $( Alternate proof of ~ ceqsalg , not using ~ ceqsalt .  (Contributed by
       NM, 29-Oct-2003.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.)
       (Revised by BJ, 29-Sep-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ceqsalgALT $p |- ( A e. V -> ( A. x ( x = A -> ph ) <-> ps ) ) $=
      ( wcel cv wceq wi wal wex elisset nfa1 biimpd a2i sps exlimd syl5com
      biimprcd alrimi impbid1 ) DEHZCIDJZAKZCLZBUDUECMUGBCDENUGUEBCUFCOFUFUEBKC
      UEABUEABGPQRSTBUFCFUEABGUAUBUC $.
  $}

  ${
    $d x A $.
    ceqsal.1 $e |- F/ x ps $.
    ceqsal.2 $e |- A e. _V $.
    ceqsal.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( A representation of explicit substitution of a class for a variable,
       inferred from an implicit substitution hypothesis.  (Contributed by NM,
       18-Aug-1993.) $)
    ceqsal $p |- ( A. x ( x = A -> ph ) <-> ps ) $=
      ( cvv wcel cv wceq wi wal wb ceqsalg ax-mp ) DHICJDKALCMBNFABCDHEGOP $.
  $}

  ${
    $d x A $.  $d x ps $.
    ceqsalv.1 $e |- A e. _V $.
    ceqsalv.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( A representation of explicit substitution of a class for a variable,
       inferred from an implicit substitution hypothesis.  (Contributed by NM,
       18-Aug-1993.) $)
    ceqsalv $p |- ( A. x ( x = A -> ph ) <-> ps ) $=
      ( nfv ceqsal ) ABCDBCGEFH $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    ceqsralv.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Restricted quantifier version of ~ ceqsalv .  (Contributed by NM,
       21-Jun-2013.) $)
    ceqsralv $p |- ( A e. B -> ( A. x e. B ( x = A -> ph ) <-> ps ) ) $=
      ( wnf cv wceq wb wi wal wcel wral nfv ax-gen ceqsralt mp3an12 ) BCGCHDIZA
      BJKZCLDEMSAKCENBJBCOTCFPABCDEQR $.
  $}

  ${
    $d x ps $.
    gencl.1 $e |- ( th <-> E. x ( ch /\ A = B ) ) $.
    gencl.2 $e |- ( A = B -> ( ph <-> ps ) ) $.
    gencl.3 $e |- ( ch -> ph ) $.
    $( Implicit substitution for class with embedded variable.  (Contributed by
       NM, 17-May-1996.) $)
    gencl $p |- ( th -> ps ) $=
      ( wceq wa wex syl5ib impcom exlimiv sylbi ) DCFGKZLZEMBHSBERCBCARBJINOPQ
      $.
  $}

  ${
    $d x y $.  $d x R $.  $d x ps $.  $d y C $.  $d y S $.  $d y ch $.
    2gencl.1 $e |- ( C e. S <-> E. x e. R A = C ) $.
    2gencl.2 $e |- ( D e. S <-> E. y e. R B = D ) $.
    2gencl.3 $e |- ( A = C -> ( ph <-> ps ) ) $.
    2gencl.4 $e |- ( B = D -> ( ps <-> ch ) ) $.
    2gencl.5 $e |- ( ( x e. R /\ y e. R ) -> ph ) $.
    $( Implicit substitution for class with embedded variable.  (Contributed by
       NM, 17-May-1996.) $)
    2gencl $p |- ( ( C e. S /\ D e. S ) -> ch ) $=
      ( wcel wi cv wceq wrex wa wex df-rex bitri imbi2d ex gencl com12 impcom )
      IKQZHKQZCULBRULCRESJQZUKEGIUKGITZEJUAUMUNUBEUCMUNEJUDUEUNBCULOUFULUMBUMAR
      UMBRDSJQZULDFHULFHTZDJUAUOUPUBDUCLUPDJUDUEUPABUMNUFUOUMAPUGUHUIUHUJ $.
  $}

  ${
    $d x y z $.  $d y z D $.  $d z F $.  $d x y R $.  $d y z S $.  $d x ps $.
    $d y ch $.  $d z th $.
    3gencl.1 $e |- ( D e. S <-> E. x e. R A = D ) $.
    3gencl.2 $e |- ( F e. S <-> E. y e. R B = F ) $.
    3gencl.3 $e |- ( G e. S <-> E. z e. R C = G ) $.
    3gencl.4 $e |- ( A = D -> ( ph <-> ps ) ) $.
    3gencl.5 $e |- ( B = F -> ( ps <-> ch ) ) $.
    3gencl.6 $e |- ( C = G -> ( ch <-> th ) ) $.
    3gencl.7 $e |- ( ( x e. R /\ y e. R /\ z e. R ) -> ph ) $.
    $( Implicit substitution for class with embedded variable.  (Contributed by
       NM, 17-May-1996.) $)
    3gencl $p |- ( ( D e. S /\ F e. S /\ G e. S ) -> th ) $=
      ( wcel wa wi wceq wrex wex df-rex bitri imbi2d 3expia 2gencl com12 3impia
      cv gencl ) KMUCZNMUCZOMUCZDUTURUSUDZDVACUEVADUEGUPLUCZUTGJOUTJOUFZGLUGVBV
      CUDGUHRVCGLUIUJVCCDVAUAUKVAVBCVBAUEVBBUEVBCUEEFHIKNLMPQHKUFABVBSUKINUFBCV
      BTUKEUPLUCFUPLUCVBAUBULUMUNUQUNUO $.
  $}

  ${
    $d x A $.  $d x ps $.
    cgsexg.1 $e |- ( x = A -> ch ) $.
    cgsexg.2 $e |- ( ch -> ( ph <-> ps ) ) $.
    $( Implicit substitution inference for general classes.  (Contributed by
       NM, 26-Aug-2007.) $)
    cgsexg $p |- ( A e. V ->
                     ( E. x ( ch /\ ph ) <-> ps ) ) $=
      ( wcel wa wex biimpa exlimiv cv wceq elisset eximi syl biimprcd ancld
      eximdv syl5com impbid2 ) EFIZCAJZDKZBUEBDCABHLMUDCDKZBUFUDDNEOZDKUGDEFPUH
      CDGQRBCUEDBCACABHSTUAUBUC $.
  $}

  ${
    $d x y ps $.  $d x y A $.  $d x y B $.
    cgsex2g.1 $e |- ( ( x = A /\ y = B ) -> ch ) $.
    cgsex2g.2 $e |- ( ch -> ( ph <-> ps ) ) $.
    $( Implicit substitution inference for general classes.  (Contributed by
       NM, 26-Jul-1995.) $)
    cgsex2g $p |- ( ( A e. V /\ B e. W ) ->
                     ( E. x E. y ( ch /\ ph ) <-> ps ) ) $=
      ( wcel wa wex biimpa exlimivv cv wceq elisset anim12i eeanv sylibr 2eximi
      syl biimprcd ancld 2eximdv syl5com impbid2 ) FHLZGILZMZCAMZENDNZBUMBDECAB
      KOPULCENDNZBUNULDQFRZEQGRZMZENDNZUOULUPDNZUQENZMUSUJUTUKVADFHSEGISTUPUQDE
      UAUBURCDEJUCUDBCUMDEBCACABKUEUFUGUHUI $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.  $d x y z w D $.
    $d x y z w ps $.
    cgsex4g.1 $e |- ( ( ( x = A /\ y = B ) /\ ( z = C /\ w = D ) ) -> ch ) $.
    cgsex4g.2 $e |- ( ch -> ( ph <-> ps ) ) $.
    $( An implicit substitution inference for 4 general classes.  (Contributed
       by NM, 5-Aug-1995.) $)
    cgsex4g $p |- ( ( ( A e. R /\ B e. S ) /\ ( C e. R /\ D e. S ) ) ->
                    ( E. x E. y E. z E. w ( ch /\ ph ) <-> ps ) ) $=
      ( wcel wa wex cv wceq biimpa exlimivv elisset anim12i eeanv sylibr ee4anv
      2eximi syl biimprcd ancld 2eximdv syl5com impbid2 ) HLPZIMPZQZJLPZKMPZQZQ
      ZCAQZGRFRZERDRZBVCBDEVBBFGCABOUAUBUBVACGRFRZERDRZBVDVADSHTZESITZQZFSJTZGS
      KTZQZQZGRFRZERDRZVFVAVIERDRZVLGRFRZQVOUQVPUTVQUQVGDRZVHERZQVPUOVRUPVSDHLU
      CEIMUCUDVGVHDEUEUFUTVJFRZVKGRZQVQURVTUSWAFJLUCGKMUCUDVJVKFGUEUFUDVIVLDEFG
      UGUFVNVEDEVMCFGNUHUHUIBVEVCDEBCVBFGBCACABOUJUKULULUMUN $.
  $}

  ${
    $d x A $.
    ceqsex.1 $e |- F/ x ps $.
    ceqsex.2 $e |- A e. _V $.
    ceqsex.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Elimination of an existential quantifier, using implicit substitution.
       (Contributed by NM, 2-Mar-1995.)  (Revised by Mario Carneiro,
       10-Oct-2016.) $)
    ceqsex $p |- ( E. x ( x = A /\ ph ) <-> ps ) $=
      ( cv wceq wa wex biimpa exlimi wal biimprcd alrimi isseti exintr mpisyl
      wi impbii ) CHDIZAJZCKZBUCBCEUBABGLMBUBATZCNUBCKUDBUECEUBABGOPCDFQUBACRSU
      A $.
  $}

  ${
    $d x A $.  $d x ps $.
    ceqsexv.1 $e |- A e. _V $.
    ceqsexv.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Elimination of an existential quantifier, using implicit substitution.
       (Contributed by NM, 2-Mar-1995.) $)
    ceqsexv $p |- ( E. x ( x = A /\ ph ) <-> ps ) $=
      ( nfv ceqsex ) ABCDBCGEFH $.
  $}

  ${
    $d x A $.  $d x ps $.
    ceqsexv2d.1 $e |- A e. _V $.
    ceqsexv2d.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsexv2d.3 $e |- ps $.
    $( Elimination of an existential quantifier, using implicit substitution.
       (Contributed by Thierry Arnoux, 10-Sep-2016.) $)
    ceqsexv2d $p |- E. x ph $=
      ( cv wceq wa wex ceqsexv biimpri exsimpr mp2b ) BCHDIZAJCKZACKGQBABCDEFLM
      PACNO $.
  $}

  ${
    $d x y A $.  $d x y B $.
    ceqsex2.1 $e |- F/ x ps $.
    ceqsex2.2 $e |- F/ y ch $.
    ceqsex2.3 $e |- A e. _V $.
    ceqsex2.4 $e |- B e. _V $.
    ceqsex2.5 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsex2.6 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( Elimination of two existential quantifiers, using implicit substitution.
       (Contributed by Scott Fenton, 7-Jun-2006.) $)
    ceqsex2 $p |- ( E. x E. y ( x = A /\ y = B /\ ph ) <-> ch ) $=
      ( cv wceq w3a wex wa exbii ceqsex 3anass 19.42v nfan anbi2d exbidv 3bitri
      bitri nfv nfex ) DNFOZENGOZAPZEQZDQUJUKARZEQZRZDQUKBRZEQZCUMUPDUMUJUNRZEQ
      UPULUSEUJUKAUASUJUNEUBUGSUOURDFUQDEUKBDUKDUHHUCUIJUJUNUQEUJABUKLUDUETBCEG
      IKMTUF $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x ps $.  $d y ch $.
    ceqsex2v.1 $e |- A e. _V $.
    ceqsex2v.2 $e |- B e. _V $.
    ceqsex2v.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsex2v.4 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( Elimination of two existential quantifiers, using implicit substitution.
       (Contributed by Scott Fenton, 7-Jun-2006.) $)
    ceqsex2v $p |- ( E. x E. y ( x = A /\ y = B /\ ph ) <-> ch ) $=
      ( nfv ceqsex2 ) ABCDEFGBDLCELHIJKM $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x ps $.  $d y ch $.
    $d z th $.
    ceqsex3v.1 $e |- A e. _V $.
    ceqsex3v.2 $e |- B e. _V $.
    ceqsex3v.3 $e |- C e. _V $.
    ceqsex3v.4 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsex3v.5 $e |- ( y = B -> ( ps <-> ch ) ) $.
    ceqsex3v.6 $e |- ( z = C -> ( ch <-> th ) ) $.
    $( Elimination of three existential quantifiers, using implicit
       substitution.  (Contributed by NM, 16-Aug-2011.) $)
    ceqsex3v $p |- ( E. x E. y E. z ( ( x = A /\ y = B /\ z = C ) /\ ph )
                 <-> th ) $=
      ( cv wceq wa wex anass 3anass anbi1i df-3an anbi2i 3bitr4i 2exbii 19.42vv
      w3a bitri exbii 3anbi3d 2exbidv ceqsexv ceqsex2v ) EQHRZFQIRZGQJRZUIZASZG
      TFTZETUPUQURAUIZGTFTZSZETZDVAVDEVAUPVBSZGTFTVDUTVFFGUPUQURSZSZASUPVGASZSU
      TVFUPVGAUAUSVHAUPUQURUBUCVBVIUPUQURAUDUEUFUGUPVBFGUHUJUKVEUQURBUIZGTFTZDV
      CVKEHKUPVBVJFGUPABUQURNULUMUNBCDFGIJLMOPUOUJUJ $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.  $d x y z w D $.
    $d x ps $.  $d y ch $.  $d z th $.  $d w ta $.
    ceqsex4v.1 $e |- A e. _V $.
    ceqsex4v.2 $e |- B e. _V $.
    ceqsex4v.3 $e |- C e. _V $.
    ceqsex4v.4 $e |- D e. _V $.
    ceqsex4v.7 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsex4v.8 $e |- ( y = B -> ( ps <-> ch ) ) $.
    ceqsex4v.9 $e |- ( z = C -> ( ch <-> th ) ) $.
    ceqsex4v.10 $e |- ( w = D -> ( th <-> ta ) ) $.
    $( Elimination of four existential quantifiers, using implicit
       substitution.  (Contributed by NM, 23-Sep-2011.) $)
    ceqsex4v $p |- ( E. x E. y E. z E. w
          ( ( x = A /\ y = B ) /\ ( z = C /\ w = D ) /\ ph ) <-> ta ) $=
      ( wceq w3a wex 19.42vv 3anass df-3an anbi2i bitr4i 2exbii 3bitr4i 3anbi3d
      cv wa 2exbidv ceqsex2v 3bitri ) FUMJUBZGUMKUBZUNZHUMLUBZIUMMUBZUNZAUCZIUD
      HUDZGUDFUDURUSVAVBAUCZIUDHUDZUCZGUDFUDVAVBCUCZIUDHUDZEVEVHFGUTVFUNZIUDHUD
      UTVGUNVEVHUTVFHIUEVDVKHIVDUTVCAUNZUNVKUTVCAUFVFVLUTVAVBAUGUHUIUJURUSVGUGU
      KUJVGVAVBBUCZIUDHUDVJFGJKNOURVFVMHIURABVAVBRULUOUSVMVIHIUSBCVAVBSULUOUPCD
      EHILMPQTUAUPUQ $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u D $.  $d x y z w v u E $.  $d x y z w v u F $.  $d x ps $.
    $d y ch $.  $d z th $.  $d w ta $.  $d v et $.  $d u ze $.
    ceqsex6v.1 $e |- A e. _V $.
    ceqsex6v.2 $e |- B e. _V $.
    ceqsex6v.3 $e |- C e. _V $.
    ceqsex6v.4 $e |- D e. _V $.
    ceqsex6v.5 $e |- E e. _V $.
    ceqsex6v.6 $e |- F e. _V $.
    ceqsex6v.7 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsex6v.8 $e |- ( y = B -> ( ps <-> ch ) ) $.
    ceqsex6v.9 $e |- ( z = C -> ( ch <-> th ) ) $.
    ceqsex6v.10 $e |- ( w = D -> ( th <-> ta ) ) $.
    ceqsex6v.11 $e |- ( v = E -> ( ta <-> et ) ) $.
    ceqsex6v.12 $e |- ( u = F -> ( et <-> ze ) ) $.
    $( Elimination of six existential quantifiers, using implicit substitution.
       (Contributed by NM, 21-Sep-2011.) $)
    ceqsex6v $p |- ( E. x E. y E. z E. w E. v E. u
          ( ( x = A /\ y = B /\ z = C ) /\ ( w = D /\ v = E /\ u = F ) /\ ph )
                 <-> ze ) $=
      ( cv wceq w3a wex wa 3anass 3exbii 19.42vvv bitri anbi2d 3exbidv ceqsex3v
      ) HULNUMZIULOUMZJULPUMZUNZKULQUMLULRUMMULSUMUNZAUNZMUOLUOKUOZJUOIUOHUOVGV
      HAUPZMUOLUOKUOZUPZJUOIUOHUOZGVJVMHIJVJVGVKUPZMUOLUOKUOVMVIVOKLMVGVHAUQURV
      GVKKLMUSUTURVNVHDUPZMUOLUOKUOZGVLVHBUPZMUOLUOKUOVHCUPZMUOLUOKUOVQHIJNOPTU
      AUBVDVKVRKLMVDABVHUFVAVBVEVRVSKLMVEBCVHUGVAVBVFVSVPKLMVFCDVHUHVAVBVCDEFGK
      LMQRSUCUDUEUIUJUKVCUTUT $.
  $}

  ${
    $d x y z w v u t s A $.  $d x y z w v u t s B $.  $d x y z w v u t s C $.
    $d x y z w v u t s D $.  $d x y z w v u t s E $.  $d x y z w v u t s F $.
    $d x y z w v u t s G $.  $d x y z w v u t s H $.  $d x ps $.  $d y ch $.
    $d z th $.  $d w ta $.  $d v et $.  $d u ze $.  $d t si $.  $d s rh $.
    ceqsex8v.1 $e |- A e. _V $.
    ceqsex8v.2 $e |- B e. _V $.
    ceqsex8v.3 $e |- C e. _V $.
    ceqsex8v.4 $e |- D e. _V $.
    ceqsex8v.5 $e |- E e. _V $.
    ceqsex8v.6 $e |- F e. _V $.
    ceqsex8v.7 $e |- G e. _V $.
    ceqsex8v.8 $e |- H e. _V $.
    ceqsex8v.9 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsex8v.10 $e |- ( y = B -> ( ps <-> ch ) ) $.
    ceqsex8v.11 $e |- ( z = C -> ( ch <-> th ) ) $.
    ceqsex8v.12 $e |- ( w = D -> ( th <-> ta ) ) $.
    ceqsex8v.13 $e |- ( v = E -> ( ta <-> et ) ) $.
    ceqsex8v.14 $e |- ( u = F -> ( et <-> ze ) ) $.
    ceqsex8v.15 $e |- ( t = G -> ( ze <-> si ) ) $.
    ceqsex8v.16 $e |- ( s = H -> ( si <-> rh ) ) $.
    $( Elimination of eight existential quantifiers, using implicit
       substitution.  (Contributed by NM, 23-Sep-2011.) $)
    ceqsex8v $p |- ( E. x E. y E. z E. w E. v E. u E. t E. s
              ( ( ( x = A /\ y = B ) /\ ( z = C /\ w = D ) )
         /\ ( ( v = E /\ u = F ) /\ ( t = G /\ s = H ) ) /\ ph ) <-> rh ) $=
      ( cv wceq wa w3a 19.42vv 2exbii bitri 3anass df-3an anbi2i bitr4i 3bitr4i
      wex 3anbi3d 4exbidv ceqsex4v ) JVBQVCZKVBRVCZVDZLVBSVCZMVBTVCZVDZVDZNVBUA
      VCOVBUBVCVDZPVBUCVCUEVBUDVCVDZVDZAVEZUEVNPVNZOVNNVNZMVNLVNZKVNJVNVTWCWEWF
      AVEZUEVNPVNZOVNNVNZVEZMVNLVNZKVNJVNZIWKWPJKWJWOLMWDWLVDZUEVNPVNZOVNNVNZWD
      WNVDZWJWOWTWDWMVDZOVNNVNXAWSXBNOWDWLPUEVFVGWDWMNOVFVHWIWSNOWHWRPUEWHWDWGA
      VDZVDWRWDWGAVIWLXCWDWEWFAVJVKVLVGVGVTWCWNVJVMVGVGWQWEWFEVEZUEVNPVNOVNNVNZ
      IWNWEWFBVEZUEVNPVNOVNNVNWEWFCVEZUEVNPVNOVNNVNWEWFDVEZUEVNPVNOVNNVNXEJKLMQ
      RSTUFUGUHUIVRWLXFNOPUEVRABWEWFUNVOVPVSXFXGNOPUEVSBCWEWFUOVOVPWAXGXHNOPUEW
      ACDWEWFUPVOVPWBXHXDNOPUEWBDEWEWFUQVOVPVQEFGHINOPUEUAUBUCUDUJUKULUMURUSUTV
      AVQVHVH $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x th $.  $d y ch $.  $d y A $.
    gencbvex.1 $e |- A e. _V $.
    gencbvex.2 $e |- ( A = y -> ( ph <-> ps ) ) $.
    gencbvex.3 $e |- ( A = y -> ( ch <-> th ) ) $.
    gencbvex.4 $e |- ( th <-> E. x ( ch /\ A = y ) ) $.
    $( Change of bound variable using implicit substitution.  (Contributed by
       NM, 17-May-1996.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    gencbvex $p |- ( E. x ( ch /\ ph ) <-> E. y ( th /\ ps ) ) $=
      ( cv wceq wa wex excom wb anbi12d bicomd exbii eqcoms ceqsexv simpr eqcom
      19.41v biimpi adantl eximi sylbi adantr ancri impbii bitri 3bitr3i ) FLZG
      MZDBNZNZFOZEOUREOZFOCANZEOUQFOUREFPUSVAEUQVAFGHUQVAQGUOGUOMZVAUQVBCDABJIR
      SUAUBTUTUQFUTUPEOZUQNZUQUPUQEUEVDUQVCUQUCUQVCDVCBDCVBNZEOVCKVEUPEVBUPCVBU
      PGUOUDUFUGUHUIUJUKULUMTUN $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x th $.  $d y ch $.  $d y A $.
    gencbvex2.1 $e |- A e. _V $.
    gencbvex2.2 $e |- ( A = y -> ( ph <-> ps ) ) $.
    gencbvex2.3 $e |- ( A = y -> ( ch <-> th ) ) $.
    gencbvex2.4 $e |- ( th -> E. x ( ch /\ A = y ) ) $.
    $( Restatement of ~ gencbvex with weaker hypotheses.  (Contributed by Jeff
       Hankins, 6-Dec-2006.) $)
    gencbvex2 $p |- ( E. x ( ch /\ ph ) <-> E. y ( th /\ ps ) ) $=
      ( cv wceq wa wex biimpac exlimiv impbii gencbvex ) ABCDEFGHIJDCGFLMZNZEOK
      UADETCDJPQRS $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x th $.  $d y ch $.  $d y A $.
    gencbval.1 $e |- A e. _V $.
    gencbval.2 $e |- ( A = y -> ( ph <-> ps ) ) $.
    gencbval.3 $e |- ( A = y -> ( ch <-> th ) ) $.
    gencbval.4 $e |- ( th <-> E. x ( ch /\ A = y ) ) $.
    $( Change of bound variable using implicit substitution.  (Contributed by
       NM, 17-May-1996.) $)
    gencbval $p |- ( A. x ( ch -> ph ) <-> A. y ( th -> ps ) ) $=
      ( wi wal wn wa wex cv wceq notbid exanali gencbvex 3bitr3i con4bii ) CALE
      MZDBLFMZCANZOEPDBNZOFPUDNUENUFUGCDEFGHGFQRABISJKUACAETDBFTUBUC $.
  $}

  ${
    $d A x $.  $d x y $.
    sbhypf.1 $e |- F/ x ps $.
    sbhypf.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Introduce an explicit substitution into an implicit substitution
       hypothesis.  See also ~ csbhypf .  (Contributed by Raph Levien,
       10-Apr-2004.) $)
    sbhypf $p |- ( y = A -> ( [ y / x ] ph <-> ps ) ) $=
      ( cv wceq wa wex wsb wb eqeq1 equsexvw nfs1v nfbi sbequ12 bicomd sylan9bb
      exlimi sylbir ) DHZEIZCHZUCIZUEEIZJZCKACDLZBMZUGUDCDUEUCENOUHUJCUIBCACDPF
      QUFUIAUGBUFAUIACDRSGTUAUB $.
  $}

  ${
    $d z A $.  $d x z $.
    $( Closed theorem form of ~ vtoclgf .  (Contributed by NM, 17-Feb-2013.)
       (Revised by Mario Carneiro, 12-Oct-2016.)  (Proof shortened by JJ,
       11-Aug-2021.) $)
    vtoclgft $p |- ( ( ( F/_ x A /\ F/ x ps )
                  /\ ( A. x ( x = A -> ( ph <-> ps ) )
                     /\ A. x ph ) /\ A e. V ) -> ps ) $=
      ( vz wnfc wnf wa cv wceq wb wi wal wcel w3a wex elisset syl5ib imp nfnfc1
      nfcvd id nfeqd weq eqeq1 cbvexd ad2antrr 3impia biimp imim2i com23 19.23t
      a1i alanimi adantl 3adant3 mpd ) CDGZBCHZIZCJZDKZABLZMZCNACNIZDEOZPVCCQZB
      VAVFVGVHUSVGVHMUTVFVGFJZDKZFQUSVHFDERUSVJVCFCCDUAUSCVIDUSCVIUBUSUCUDFCUEV
      JVCLMUSVIVBDUFUNUGSUHUIVAVFVHBMZVGVAVFVKVFVCBMZCNZVAVKVEAVLCVEAVLVEVCABVD
      ABMVCABUJUKULTUOUTVMVKLUSVCBCUMUPSTUQUR $.

    $( Obsolete proof of ~ vtoclgft as of 11-Aug-2021.  (Contributed by NM,
       17-Feb-2013.)  (Revised by Mario Carneiro, 12-Oct-2016.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    vtoclgftOLD $p |- ( ( ( F/_ x A /\ F/ x ps )
                  /\ ( A. x ( x = A -> ( ph <-> ps ) )
                     /\ A. x ph ) /\ A e. V ) -> ps ) $=
      ( vz wcel wnfc wnf wa cv wceq wb wi wal cvv elex w3a wex mpbid elisset id
      3ad2ant3 nfnfc1 nfcvd nfeqd eqeq1 a1i cbvexd ad2antrr 3adant3 biimp com23
      imim2i imp alanimi 3ad2ant2 simp1r 19.23t syl mpd syl3an3 ) DEGCDHZBCIZJZ
      CKZDLZABMZNZCOACOJZDPGZBDEQVEVJVKRZVGCSZBVLFKZDLZFSZVMVKVEVPVJFDPUAUCVEVJ
      VPVMMZVKVCVQVDVJVCVOVGFCCDUDVCCVNDVCCVNUEVCUBUFVNVFLVOVGMNVCVNVFDUGUHUIUJ
      UKTVLVGBNZCOZVMBNZVJVEVSVKVIAVRCVIAVRVIVGABVHABNVGABULUNUMUOUPUQVLVDVSVTM
      VCVDVJVKURVGBCUSUTTVAVB $.
  $}

  ${
    vtocld.1 $e |- ( ph -> A e. V ) $.
    vtocld.2 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    vtocld.3 $e |- ( ph -> ps ) $.
    ${
      vtocldf.4 $e |- F/ x ph $.
      vtocldf.5 $e |- ( ph -> F/_ x A ) $.
      vtocldf.6 $e |- ( ph -> F/ x ch ) $.
      $( Implicit substitution of a class for a setvar variable.  (Contributed
         by Mario Carneiro, 15-Oct-2016.) $)
      vtocldf $p |- ( ph -> ch ) $=
        ( wnfc wnf cv wceq wb wi wal alrimi wcel ex vtoclgft syl221anc ) ADEMCD
        NDOEPZBCQZRZDSBDSEFUACKLAUGDJAUEUFHUBTABDJITGBCDEFUCUD $.
    $}

    $d x A $.  $d x ph $.  $d x ch $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       Mario Carneiro, 15-Oct-2016.) $)
    vtocld $p |- ( ph -> ch ) $=
      ( nfv nfcvd nfvd vtocldf ) ABCDEFGHIADJADEKACDLM $.
  $}

  ${
    $d x A $.
    vtoclf.1 $e |- F/ x ps $.
    vtoclf.2 $e |- A e. _V $.
    vtoclf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtoclf.4 $e |- ph $.
    $( Implicit substitution of a class for a setvar variable.  This is a
       generalization of ~ chvar .  (Contributed by NM, 30-Aug-1993.) $)
    vtoclf $p |- ps $=
      ( cv wceq wi isseti biimpd eximii 19.36i mpg ) ABCABCECIDJZABKCCDFLQABGMN
      OHP $.
  $}

  ${
    $d x A $.  $d x ps $.
    vtocl.1 $e |- A e. _V $.
    vtocl.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl.3 $e |- ph $.
    $( Implicit substitution of a class for a setvar variable.  See also
       ~ vtoclALT .  (Contributed by NM, 30-Aug-1993.)  Removed dependency on
       ~ ax-10 .  (Revised by BJ, 29-Nov-2020.) $)
    vtocl $p |- ps $=
      ( cv wceq wi isseti biimpd eximii 19.36iv mpg ) ABCABCCHDIZABJCCDEKPABFLM
      NGO $.

    $( Alternate proof of ~ vtocl .  Shorter but requires more axioms.
       (Contributed by NM, 30-Aug-1993.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    vtoclALT $p |- ps $=
      ( nfv vtoclf ) ABCDBCHEFGI $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ps $.
    vtocl2.1 $e |- A e. _V $.
    vtocl2.2 $e |- B e. _V $.
    vtocl2.3 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    vtocl2.4 $e |- ph $.
    $( Implicit substitution of classes for setvar variables.  (Contributed by
       NM, 26-Jul-1995.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    vtocl2 $p |- ps $=
      ( wal wi wex cv wceq isseti wa eeanv biimpd 2eximi sylbir mp2an exbii mpg
      19.36v mpbi 19.36iv ax-gen ) ADKZBCUIBCABLZDMZCMZUIBLZCMCNEOZCMZDNFOZDMZU
      LCEGPDFHPUOUQQUNUPQZDMCMULUNUPCDRURUJCDURABISTUAUBUKUMCABDUEUCUFUGADJUHUD
      $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z ps $.
    vtocl3.1 $e |- A e. _V $.
    vtocl3.2 $e |- B e. _V $.
    vtocl3.3 $e |- C e. _V $.
    vtocl3.4 $e |- ( ( x = A /\ y = B /\ z = C ) -> ( ph <-> ps ) ) $.
    vtocl3.5 $e |- ph $.
    $( Implicit substitution of classes for setvar variables.  (Contributed by
       NM, 3-Jun-1995.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    vtocl3 $p |- ps $=
      ( wal wi wex cv wceq isseti w3a eeeanv biimpd 2eximi sylbir 19.36v 2exbii
      eximi mp3an mpbi exbii 19.36iv gen2 mpg ) AENZDNZBCUOBCUNBOZDPZCPZUOBOZCP
      ABOZEPZDPCPZURCQFRZCPZDQGRZDPZEQHRZEPZVBCFISDGJSEHKSVDVFVHTVCVEVGTZEPZDPC
      PVBVCVEVGCDEUAVJVACDVIUTEVIABLUBUGUCUDUHVAUPCDABEUEUFUIUQUSCUNBDUEUJUIUKA
      DEMULUM $.
  $}

  ${
    $d x A $.  $d x ch $.  $d x th $.
    vtoclb.1 $e |- A e. _V $.
    vtoclb.2 $e |- ( x = A -> ( ph <-> ch ) ) $.
    vtoclb.3 $e |- ( x = A -> ( ps <-> th ) ) $.
    vtoclb.4 $e |- ( ph <-> ps ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 23-Dec-1993.) $)
    vtoclb $p |- ( ch <-> th ) $=
      ( wb cv wceq bibi12d vtocl ) ABKCDKEFGELFMACBDHINJO $.
  $}

  ${
    vtoclgf.1 $e |- F/_ x A $.
    vtoclgf.2 $e |- F/ x ps $.
    vtoclgf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtoclgf.4 $e |- ph $.
    $( Implicit substitution of a class for a setvar variable, with
       bound-variable hypotheses in place of disjoint variable restrictions.
       (Contributed by NM, 21-Sep-2003.)  (Proof shortened by Mario Carneiro,
       10-Oct-2016.) $)
    vtoclgf $p |- ( A e. V -> ps ) $=
      ( wcel cvv elex cv wceq wex issetf mpbii exlimi sylbi syl ) DEJDKJZBDELUA
      CMDNZCOBCDFPUBBCGUBABIHQRST $.
  $}

  ${
    $d x A $.
    vtoclg1f.nf $e |- F/ x ps $.
    vtoclg1f.maj $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtoclg1f.min $e |- ph $.
    $( Version of ~ vtoclgf with one non-freeness hypothesis replaced with a dv
       condition, thus avoiding dependency on ~ ax-11 and ~ ax-13 .
       (Contributed by BJ, 1-May-2019.) $)
    vtoclg1f $p |- ( A e. V -> ps ) $=
      ( wcel cvv elex cv wceq wex isset mpbii exlimi sylbi syl ) DEIDJIZBDEKTCL
      DMZCNBCDOUABCFUAABHGPQRS $.
  $}

  ${
    $d x A $.  $d x ps $.
    vtoclg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtoclg.2 $e |- ph $.
    $( Implicit substitution of a class expression for a setvar variable.
       (Contributed by NM, 17-Apr-1995.) $)
    vtoclg $p |- ( A e. V -> ps ) $=
      ( nfv vtoclg1f ) ABCDEBCHFGI $.
  $}

  ${
    $d x A $.  $d x ch $.  $d x th $.
    vtoclbg.1 $e |- ( x = A -> ( ph <-> ch ) ) $.
    vtoclbg.2 $e |- ( x = A -> ( ps <-> th ) ) $.
    vtoclbg.3 $e |- ( ph <-> ps ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 29-Apr-1994.) $)
    vtoclbg $p |- ( A e. V -> ( ch <-> th ) ) $=
      ( wb cv wceq bibi12d vtoclg ) ABKCDKEFGELFMACBDHINJO $.
  $}

  ${
    vtocl2gf.1 $e |- F/_ x A $.
    vtocl2gf.2 $e |- F/_ y A $.
    vtocl2gf.3 $e |- F/_ y B $.
    vtocl2gf.4 $e |- F/ x ps $.
    vtocl2gf.5 $e |- F/ y ch $.
    vtocl2gf.6 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl2gf.7 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl2gf.8 $e |- ph $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 25-Apr-1995.) $)
    vtocl2gf $p |- ( ( A e. V /\ B e. W ) -> ch ) $=
      ( wcel cvv wi elex nfel1 nfim cv wceq imbi2d vtoclgf mpan9 ) FHRFSRZGIRCF
      HUAUIBTUICTEGILUICEEFSKUBNUCEUDGUEBCUIPUFABDFSJMOQUGUGUH $.
  $}

  ${
    vtocl3gf.a $e |- F/_ x A $.
    vtocl3gf.b $e |- F/_ y A $.
    vtocl3gf.c $e |- F/_ z A $.
    vtocl3gf.d $e |- F/_ y B $.
    vtocl3gf.e $e |- F/_ z B $.
    vtocl3gf.f $e |- F/_ z C $.
    vtocl3gf.1 $e |- F/ x ps $.
    vtocl3gf.2 $e |- F/ y ch $.
    vtocl3gf.3 $e |- F/ z th $.
    vtocl3gf.4 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl3gf.5 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl3gf.6 $e |- ( z = C -> ( ch <-> th ) ) $.
    vtocl3gf.7 $e |- ph $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 10-Aug-2013.)  (Revised by Mario Carneiro, 10-Oct-2016.) $)
    vtocl3gf $p |- ( ( A e. V /\ B e. W /\ C e. X ) -> th ) $=
      ( wcel cvv wa elex wi nfel1 nfim wceq imbi2d vtoclgf vtocl2gf mpan9 3impb
      cv ) HKUGZILUGZJMUGZDVAHUHUGZVBVCUIDHKUJVDBUKVDCUKVDDUKFGIJLMQRSVDCFFHUHO
      ULUAUMVDDGGHUHPULUBUMFUTIUNBCVDUDUOGUTJUNCDVDUEUOABEHUHNTUCUFUPUQURUS $.
  $}

  ${
    $d x A $.  $d y A $.  $d y B $.  $d x ps $.  $d y ch $.
    vtocl2g.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl2g.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl2g.3 $e |- ph $.
    $( Implicit substitution of 2 classes for 2 setvar variables.  (Contributed
       by NM, 25-Apr-1995.) $)
    vtocl2g $p |- ( ( A e. V /\ B e. W ) -> ch ) $=
      ( nfcv nfv vtocl2gf ) ABCDEFGHIDFMEFMEGMBDNCENJKLO $.
  $}

  ${
    $d x B $.
    vtoclgaf.1 $e |- F/_ x A $.
    vtoclgaf.2 $e |- F/ x ps $.
    vtoclgaf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtoclgaf.4 $e |- ( x e. B -> ph ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 17-Feb-2006.)  (Revised by Mario Carneiro, 10-Oct-2016.) $)
    vtoclgaf $p |- ( A e. B -> ps ) $=
      ( wcel cv wi nfel1 nfim wceq eleq1 imbi12d vtoclgf pm2.43i ) DEJZBCKZEJZA
      LTBLCDEFTBCCDEFMGNUADOUBTABUADEPHQIRS $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    vtoclga.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtoclga.2 $e |- ( x e. B -> ph ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 20-Aug-1995.) $)
    vtoclga $p |- ( A e. B -> ps ) $=
      ( nfcv nfv vtoclgaf ) ABCDECDHBCIFGJ $.
  $}

  ${
    $d x y C $.  $d x y D $.
    vtocl2gaf.a $e |- F/_ x A $.
    vtocl2gaf.b $e |- F/_ y A $.
    vtocl2gaf.c $e |- F/_ y B $.
    vtocl2gaf.1 $e |- F/ x ps $.
    vtocl2gaf.2 $e |- F/ y ch $.
    vtocl2gaf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl2gaf.4 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl2gaf.5 $e |- ( ( x e. C /\ y e. D ) -> ph ) $.
    $( Implicit substitution of 2 classes for 2 setvar variables.  (Contributed
       by NM, 10-Aug-2013.) $)
    vtocl2gaf $p |- ( ( A e. C /\ B e. D ) -> ch ) $=
      ( wcel wa wi cv nfel1 nfan nfim wceq eleq1 anbi1d imbi12d anbi2d vtocl2gf
      nfv pm2.43i ) FHRZGIRZSZCDUAZHRZEUAZIRZSZATUMUSSZBTUOCTDEFGHIJKLVABDUMUSD
      DFHJUBUSDUKUCMUDUOCEUMUNEEFHKUBEGILUBUCNUDUPFUEZUTVAABVBUQUMUSUPFHUFUGOUH
      URGUEZVAUOBCVCUSUNUMURGIUFUIPUHQUJUL $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d x y D $.  $d x ps $.  $d y ch $.
    vtocl2ga.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl2ga.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl2ga.3 $e |- ( ( x e. C /\ y e. D ) -> ph ) $.
    $( Implicit substitution of 2 classes for 2 setvar variables.  (Contributed
       by NM, 20-Aug-1995.) $)
    vtocl2ga $p |- ( ( A e. C /\ B e. D ) -> ch ) $=
      ( nfcv nfv vtocl2gaf ) ABCDEFGHIDFMEFMEGMBDNCENJKLO $.
  $}

  ${
    $d x y z R $.  $d x y z S $.  $d x y z T $.
    vtocl3gaf.a $e |- F/_ x A $.
    vtocl3gaf.b $e |- F/_ y A $.
    vtocl3gaf.c $e |- F/_ z A $.
    vtocl3gaf.d $e |- F/_ y B $.
    vtocl3gaf.e $e |- F/_ z B $.
    vtocl3gaf.f $e |- F/_ z C $.
    vtocl3gaf.1 $e |- F/ x ps $.
    vtocl3gaf.2 $e |- F/ y ch $.
    vtocl3gaf.3 $e |- F/ z th $.
    vtocl3gaf.4 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl3gaf.5 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl3gaf.6 $e |- ( z = C -> ( ch <-> th ) ) $.
    vtocl3gaf.7 $e |- ( ( x e. R /\ y e. S /\ z e. T ) -> ph ) $.
    $( Implicit substitution of 3 classes for 3 setvar variables.  (Contributed
       by NM, 10-Aug-2013.)  (Revised by Mario Carneiro, 11-Oct-2016.) $)
    vtocl3gaf $p |- ( ( A e. R /\ B e. S /\ C e. T ) -> th ) $=
      ( wcel w3a cv nfel1 nf3an nfim wceq eleq1 3anbi1d imbi12d 3anbi2d 3anbi3d
      wi nfv vtocl3gf pm2.43i ) HKUGZILUGZJMUGZUHZDEUIZKUGZFUIZLUGZGUIZMUGZUHZA
      USVCVJVLUHZBUSVCVDVLUHZCUSVFDUSEFGHIJKLMNOPQRSVNBEVCVJVLEEHKNUJVJEUTVLEUT
      UKTULVOCFVCVDVLFFHKOUJFILQUJVLFUTUKUAULVFDGVCVDVEGGHKPUJGILRUJGJMSUJUKUBU
      LVGHUMZVMVNABVPVHVCVJVLVGHKUNUOUCUPVIIUMZVNVOBCVQVJVDVCVLVIILUNUQUDUPVKJU
      MZVOVFCDVRVLVEVCVDVKJMUNURUEUPUFVAVB $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d z C $.  $d x y z D $.  $d x y z R $.
    $d x y z S $.  $d x ps $.  $d y ch $.  $d z th $.
    vtocl3ga.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl3ga.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl3ga.3 $e |- ( z = C -> ( ch <-> th ) ) $.
    vtocl3ga.4 $e |- ( ( x e. D /\ y e. R /\ z e. S ) -> ph ) $.
    $( Implicit substitution of 3 classes for 3 setvar variables.  (Contributed
       by NM, 20-Aug-1995.) $)
    vtocl3ga $p |- ( ( A e. D /\ B e. R /\ C e. S ) -> th ) $=
      ( nfcv nfv vtocl3gaf ) ABCDEFGHIJKLMEHRFHRGHRFIRGIRGJRBESCFSDGSNOPQT $.
  $}

  ${
    $d w x y z A $.  $d w y z B $.  $d w z C $.  $d w D $.  $d w x y z R $.
    $d w x y z S $.  $d w x y z T $.  $d w x y z Q $.  $d x ps $.  $d z rh $.
    $d w th $.  $d y ch $.
    vtocl4ga.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtocl4ga.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    vtocl4ga.3 $e |- ( z = C -> ( ch <-> rh ) ) $.
    vtocl4ga.4 $e |- ( w = D -> ( rh <-> th ) ) $.
    ${
      vtocl4g.5 $e |- ph $.
      $( Implicit substitution of 4 classes for 4 setvar variables.
         (Contributed by AV, 22-Jan-2019.) $)
      vtocl4g $p |- ( ( ( A e. Q /\ B e. R )
                       /\ ( C e. S /\ D e. T ) ) -> th ) $=
        ( wcel wa wi cv wceq imbi2d vtocl2g impcom ) LPUCMQUCUDJNUCKOUCUDZDUKCU
        EUKEUEUKDUEHILMPQHUFLUGCEUKTUHIUFMUGEDUKUAUHABCFGJKNORSUBUIUIUJ $.
    $}

    vtocl4ga.5 $e |- ( ( ( x e. Q /\ y e. R )
                         /\ ( z e. S /\ w e. T ) ) -> ph ) $.
    $( Implicit substitution of 4 classes for 4 setvar variables.  (Contributed
       by AV, 22-Jan-2019.) $)
    vtocl4ga $p |- ( ( ( A e. Q /\ B e. R )
                       /\ ( C e. S /\ D e. T ) ) -> th ) $=
      ( wcel wa cv wi wceq eleq1 anbi1d imbi12d anbi2d vtocl4g pm2.43i ) JNUCZK
      OUCZUDZLPUCZMQUCZUDZUDZDFUEZNUCZGUEZOUCZUDZHUEZPUCZIUEZQUCZUDZUDZAUFUNVDU
      DZVJUDZBUFUPVJUDZCUFUTDUFUPUQVIUDZUDZEUFFGHIJKLMNOPQVAJUGZVKVMABVQVEVLVJV
      QVBUNVDVAJNUHUIUIRUJVCKUGZVMVNBCVRVLUPVJVRVDUOUNVCKOUHUKUISUJVFLUGZVNVPCE
      VSVJVOUPVSVGUQVIVFLPUHUIUKTUJVHMUGZVPUTEDVTVOUSUPVTVIURUQVHMQUHUKUKUAUJUB
      ULUM $.
  $}

  ${
    $d x A $.  $d x ph $.
    vtocleg.1 $e |- ( x = A -> ph ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 21-Jun-1993.) $)
    vtocleg $p |- ( A e. V -> ph ) $=
      ( wcel cv wceq wex elisset exlimiv syl ) CDFBGCHZBIABCDJMABEKL $.
  $}

  ${
    $d x A $.
    $( Implicit substitution of a class for a setvar variable.  (Closed theorem
       version of ~ vtoclef .)  (Contributed by NM, 7-Nov-2005.)  (Revised by
       Mario Carneiro, 11-Oct-2016.) $)
    vtoclegft $p |- ( ( A e. B /\ F/ x ph /\
                   A. x ( x = A -> ph ) ) -> ph ) $=
      ( wcel wnf cv wceq wi wal w3a wex elisset mpan9 3adant2 wb 19.9t 3ad2ant2
      exim mpbid ) CDEZABFZBGCHZAIBJZKABLZAUAUDUEUBUAUCBLUDUEBCDMUCABSNOUBUAUEA
      PUDABQRT $.
  $}

  ${
    $d x A $.
    vtoclef.1 $e |- F/ x ph $.
    vtoclef.2 $e |- A e. _V $.
    vtoclef.3 $e |- ( x = A -> ph ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 18-Aug-1993.) $)
    vtoclef $p |- ph $=
      ( cv wceq wex isseti exlimi ax-mp ) BGCHZBIABCEJMABDFKL $.
  $}

  ${
    $d x A $.  $d x ph $.
    vtocle.1 $e |- A e. _V $.
    vtocle.2 $e |- ( x = A -> ph ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 9-Sep-1993.) $)
    vtocle $p |- ph $=
      ( cvv wcel vtocleg ax-mp ) CFGADABCFEHI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    vtoclri.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    vtoclri.2 $e |- A. x e. B ph $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 21-Nov-1994.) $)
    vtoclri $p |- ( A e. B -> ps ) $=
      ( rspec vtoclga ) ABCDEFACEGHI $.
  $}

  ${
    spcimgft.1 $e |- F/ x ps $.
    spcimgft.2 $e |- F/_ x A $.
    $( A closed version of ~ spcimgf .  (Contributed by Mario Carneiro,
       4-Jan-2017.) $)
    spcimgft $p |- ( A. x ( x = A -> ( ph -> ps ) ) -> ( A e. B ->
                      ( A. x ph -> ps ) ) ) $=
      ( wcel cvv cv wceq wi wal elex wex issetf exim syl5bi 19.36 syl6ib syl5 )
      DEHDIHZCJDKZABLZLCMZACMBLZDENUEUBUDCOZUFUBUCCOUEUGCDGPUCUDCQRABCFSTUA $.

    $( A closed version of ~ spcgf .  (Contributed by Andrew Salmon,
       6-Jun-2011.)  (Revised by Mario Carneiro, 4-Jan-2017.) $)
    spcgft $p |- ( A. x ( x = A -> ( ph <-> ps ) ) -> ( A e. B ->
                      ( A. x ph -> ps ) ) ) $=
      ( cv wceq wb wi wal wcel biimp imim2i alimi spcimgft syl ) CHDIZABJZKZCLS
      ABKZKZCLDEMACLBKKUAUCCTUBSABNOPABCDEFGQR $.
  $}

  ${
    spcimgf.1 $e |- F/_ x A $.
    spcimgf.2 $e |- F/ x ps $.
    ${
      spcimgf.3 $e |- ( x = A -> ( ph -> ps ) ) $.
      $( Rule of specialization, using implicit substitution.  Compare Theorem
         7.3 of [Quine] p. 44.  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
      spcimgf $p |- ( A e. V -> ( A. x ph -> ps ) ) $=
        ( cv wceq wi wcel wal spcimgft mpg ) CIDJABKKDELACMBKKCABCDEGFNHO $.
    $}

    spcimegf.3 $e |- ( x = A -> ( ps -> ph ) ) $.
    $( Existential specialization, using implicit substitution.  (Contributed
       by Mario Carneiro, 4-Jan-2017.) $)
    spcimegf $p |- ( A e. V -> ( ps -> E. x ph ) ) $=
      ( wcel wn wal wex nfn cv wceq con3d spcimgf con2d df-ex syl6ibr ) DEIZBAJ
      ZCKZJACLUAUCBUBBJCDEFBCGMCNDOBAHPQRACST $.
  $}

  ${
    spcgf.1 $e |- F/_ x A $.
    spcgf.2 $e |- F/ x ps $.
    spcgf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Rule of specialization, using implicit substitution.  Compare Theorem
       7.3 of [Quine] p. 44.  (Contributed by NM, 2-Feb-1997.)  (Revised by
       Andrew Salmon, 12-Aug-2011.) $)
    spcgf $p |- ( A e. V -> ( A. x ph -> ps ) ) $=
      ( cv wceq wb wi wcel wal spcgft mpg ) CIDJABKLDEMACNBLLCABCDEGFOHP $.

    $( Existential specialization, using implicit substitution.  (Contributed
       by NM, 2-Feb-1997.) $)
    spcegf $p |- ( A e. V -> ( ps -> E. x ph ) ) $=
      ( wcel wn wal wex nfn cv wceq notbid spcgf con2d df-ex syl6ibr ) DEIZBAJZ
      CKZJACLUAUCBUBBJCDEFBCGMCNDOABHPQRACST $.
  $}

  ${
    $d x A $.  $d x ph $.  $d x ch $.
    spcimdv.1 $e |- ( ph -> A e. B ) $.
    ${
      spcimdv.2 $e |- ( ( ph /\ x = A ) -> ( ps -> ch ) ) $.
      $( Restricted specialization, using implicit substitution.  (Contributed
         by Mario Carneiro, 4-Jan-2017.) $)
      spcimdv $p |- ( ph -> ( A. x ps -> ch ) ) $=
        ( cv wceq wi wal wcel ex alrimiv nfv nfcv spcimgft sylc ) ADIEJZBCKZKZD
        LEFMBDLCKAUBDATUAHNOGBCDEFCDPDEQRS $.
    $}

    ${
      spcdv.2 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
      $( Rule of specialization, using implicit substitution.  Analogous to
         ~ rspcdv .  (Contributed by David Moews, 1-May-2017.) $)
      spcdv $p |- ( ph -> ( A. x ps -> ch ) ) $=
        ( cv wceq wa biimpd spcimdv ) ABCDEFGADIEJKBCHLM $.
    $}

    spcimedv.2 $e |- ( ( ph /\ x = A ) -> ( ch -> ps ) ) $.
    $( Restricted existential specialization, using implicit substitution.
       (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    spcimedv $p |- ( ph -> ( ch -> E. x ps ) ) $=
      ( wn wal wex cv wceq wa con3d spcimdv con2d df-ex syl6ibr ) ACBIZDJZIBDKA
      UACATCIDEFGADLEMNCBHOPQBDRS $.
  $}

  ${
    $d x ps $.  $d x A $.
    spcgv.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Rule of specialization, using implicit substitution.  Compare Theorem
       7.3 of [Quine] p. 44.  (Contributed by NM, 22-Jun-1994.) $)
    spcgv $p |- ( A e. V -> ( A. x ph -> ps ) ) $=
      ( nfcv nfv spcgf ) ABCDECDGBCHFI $.

    $( Existential specialization, using implicit substitution.  (Contributed
       by NM, 14-Aug-1994.) $)
    spcegv $p |- ( A e. V -> ( ps -> E. x ph ) ) $=
      ( nfcv nfv spcegf ) ABCDECDGBCHFI $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ps $.
    spc2egv.1 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( Existential specialization with two quantifiers, using implicit
       substitution.  (Contributed by NM, 3-Aug-1995.) $)
    spc2egv $p |- ( ( A e. V /\ B e. W ) -> ( ps -> E. x E. y ph ) ) $=
      ( wcel wa cv wceq wex elisset anim12i eeanv sylibr biimprcd 2eximdv
      syl5com ) EGJZFHJZKZCLEMZDLFMZKZDNCNZBADNCNUDUECNZUFDNZKUHUBUIUCUJCEGODFH
      OPUEUFCDQRBUGACDUGABISTUA $.

    $( Specialization with two quantifiers, using implicit substitution.
       (Contributed by NM, 27-Apr-2004.) $)
    spc2gv $p |- ( ( A e. V /\ B e. W ) -> ( A. x A. y ph -> ps ) ) $=
      ( wcel wa wal wn wex cv wceq notbid spc2egv 2nalexn syl6ibr con4d ) EGJFH
      JKZBADLCLZUBBMZAMZDNCNUCMUEUDCDEFGHCOEPDOFPKABIQRACDSTUA $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z ps $.
    spc3egv.1 $e |- ( ( x = A /\ y = B /\ z = C ) -> ( ph <-> ps ) ) $.
    $( Existential specialization with three quantifiers, using implicit
       substitution.  (Contributed by NM, 12-May-2008.) $)
    spc3egv $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
               ( ps -> E. x E. y E. z ph ) ) $=
      ( wcel w3a cv wceq wex elisset 3anim123i eeeanv biimprcd 2eximdv syl5com
      sylibr eximdv ) FIMZGJMZHKMZNZCOFPZDOGPZEOHPZNZEQZDQCQZBAEQZDQCQUIUJCQZUK
      DQZULEQZNUOUFUQUGURUHUSCFIRDGJREHKRSUJUKULCDETUDBUNUPCDBUMAEUMABLUAUEUBUC
      $.

    $( Specialization with three quantifiers, using implicit substitution.
       (Contributed by NM, 12-May-2008.) $)
    spc3gv $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
               ( A. x A. y A. z ph -> ps ) ) $=
      ( wcel w3a wal wn wex cv wceq exnal notbid spc3egv exbii bitr2i syl6ibr
      bitri con4d ) FIMGJMHKMNZBAEOZDOZCOZUHBPZAPZEQZDQZCQZUKPZUMULCDEFGHIJKCRF
      SDRGSERHSNABLUAUBUPUJPZCQUQUOURCUOUIPZDQURUNUSDAETUCUIDTUFUCUJCTUDUEUG $.
  $}

  ${
    $d x A $.  $d x ps $.
    spcv.1 $e |- A e. _V $.
    spcv.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Rule of specialization, using implicit substitution.  (Contributed by
       NM, 22-Jun-1994.) $)
    spcv $p |- ( A. x ph -> ps ) $=
      ( cvv wcel wal wi spcgv ax-mp ) DGHACIBJEABCDGFKL $.

    $( Existential specialization, using implicit substitution.  (Contributed
       by NM, 31-Dec-1993.)  (Proof shortened by Eric Schmidt, 22-Dec-2006.) $)
    spcev $p |- ( ps -> E. x ph ) $=
      ( cvv wcel wex wi spcegv ax-mp ) DGHBACIJEABCDGFKL $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ps $.
    spc2ev.1 $e |- A e. _V $.
    spc2ev.2 $e |- B e. _V $.
    spc2ev.3 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( Existential specialization, using implicit substitution.  (Contributed
       by NM, 3-Aug-1995.) $)
    spc2ev $p |- ( ps -> E. x E. y ph ) $=
      ( cvv wcel wex wi spc2egv mp2an ) EJKFJKBADLCLMGHABCDEFJJINO $.
  $}

  ${
    $d x A $.  $d x B $.
    rspct.1 $e |- F/ x ps $.
    $( A closed version of ~ rspc .  (Contributed by Andrew Salmon,
       6-Jun-2011.) $)
    rspct $p |- ( A. x ( x = A -> ( ph <-> ps ) ) -> ( A e. B ->
                   ( A. x e. B ph -> ps ) ) ) $=
      ( cv wceq wb wi wal wcel wral df-ral wa eleq1 adantr simpr imbi12d ex a2i
      alimi nfv nfim nfcv spcgft syl syl7bi com34 pm2.43d ) CGZDHZABIZJZCKZDELZ
      ACEMZBJUOUPUQUPBUQUKELZAJZCKZUOUPUPBJZACENUOULUSVAIZJZCKUPUTVAJJUNVCCULUM
      VBULUMVBULUMOURUPABULURUPIUMUKDEPQULUMRSTUAUBUSVACDEUPBCUPCUCFUDCDUEUFUGU
      HUIUJ $.
  $}

  ${
    $d x A $.  $d x B $.
    rspc.1 $e |- F/ x ps $.
    rspc.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Restricted specialization, using implicit substitution.  (Contributed by
       NM, 19-Apr-2005.)  (Revised by Mario Carneiro, 11-Oct-2016.) $)
    rspc $p |- ( A e. B -> ( A. x e. B ph -> ps ) ) $=
      ( wral cv wcel wi wal df-ral nfcv nfv nfim wceq eleq1 imbi12d spcgf
      pm2.43a syl5bi ) ACEHCIZEJZAKZCLZDEJZBACEMUFUGBUEUGBKCDECDNUGBCUGCOFPUCDQ
      UDUGABUCDERGSTUAUB $.

    $( Restricted existential specialization, using implicit substitution.
       (Contributed by NM, 26-May-1998.)  (Revised by Mario Carneiro,
       11-Oct-2016.) $)
    rspce $p |- ( ( A e. B /\ ps ) -> E. x e. B ph ) $=
      ( wcel wa cv wex wrex nfcv nfv nfan wceq eleq1 anbi12d spcegf anabsi5
      df-rex sylibr ) DEHZBIZCJZEHZAIZCKZACELUCBUHUGUDCDECDMUCBCUCCNFOUEDPUFUCA
      BUEDEQGRSTACEUAUB $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    rspcv.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Restricted specialization, using implicit substitution.  (Contributed by
       NM, 26-May-1998.) $)
    rspcv $p |- ( A e. B -> ( A. x e. B ph -> ps ) ) $=
      ( nfv rspc ) ABCDEBCGFH $.

    $( Restricted specialization, using implicit substitution.  (Contributed by
       NM, 2-Feb-2006.) $)
    rspccv $p |- ( A. x e. B ph -> ( A e. B -> ps ) ) $=
      ( wcel wral rspcv com12 ) DEGACEHBABCDEFIJ $.

    $( Restricted specialization, using implicit substitution.  (Contributed by
       NM, 13-Sep-2005.) $)
    rspcva $p |- ( ( A e. B /\ A. x e. B ph ) -> ps ) $=
      ( wcel wral rspcv imp ) DEGACEHBABCDEFIJ $.

    $( Restricted specialization, using implicit substitution.  (Contributed by
       NM, 26-Jul-2006.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    rspccva $p |- ( ( A. x e. B ph /\ A e. B ) -> ps ) $=
      ( wcel wral rspcv impcom ) DEGACEHBABCDEFIJ $.

    $( Restricted existential specialization, using implicit substitution.
       (Contributed by NM, 26-May-1998.) $)
    rspcev $p |- ( ( A e. B /\ ps ) -> E. x e. B ph ) $=
      ( nfv rspce ) ABCDEBCGFH $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.  $d x ch $.
    rspcimdv.1 $e |- ( ph -> A e. B ) $.
    ${
      rspcimdv.2 $e |- ( ( ph /\ x = A ) -> ( ps -> ch ) ) $.
      $( Restricted specialization, using implicit substitution.  (Contributed
         by Mario Carneiro, 4-Jan-2017.) $)
      rspcimdv $p |- ( ph -> ( A. x e. B ps -> ch ) ) $=
        ( wral cv wcel wi wal df-ral wceq wa simpr eleq1d biimprd imim12d mpid
        spcimdv syl5bi ) BDFIDJZFKZBLZDMZACBDFNAUGEFKZCGAUFUHCLDEFGAUDEOZPZUHUE
        BCUJUEUHUJUDEFAUIQRSHTUBUAUC $.
    $}

    rspcimedv.2 $e |- ( ( ph /\ x = A ) -> ( ch -> ps ) ) $.
    $( Restricted existential specialization, using implicit substitution.
       (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    rspcimedv $p |- ( ph -> ( ch -> E. x e. B ps ) ) $=
      ( wn wral wrex cv wceq wa con3d rspcimdv con2d dfrex2 syl6ibr ) ACBIZDFJZ
      IBDFKAUACATCIDEFGADLEMNCBHOPQBDFRS $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.  $d x ch $.
    rspcdv.1 $e |- ( ph -> A e. B ) $.
    rspcdv.2 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    $( Restricted specialization, using implicit substitution.  (Contributed by
       NM, 17-Feb-2007.)  (Revised by Mario Carneiro, 4-Jan-2017.) $)
    rspcdv $p |- ( ph -> ( A. x e. B ps -> ch ) ) $=
      ( cv wceq wa biimpd rspcimdv ) ABCDEFGADIEJKBCHLM $.

    $( Restricted existential specialization, using implicit substitution.
       (Contributed by FL, 17-Apr-2007.)  (Revised by Mario Carneiro,
       4-Jan-2017.) $)
    rspcedv $p |- ( ph -> ( ch -> E. x e. B ps ) ) $=
      ( cv wceq wa biimprd rspcimedv ) ABCDEFGADIEJKBCHLM $.

    rspcebdv.1 $e |- ( ( ph /\ ps ) -> x = A ) $.
    $( Restricted existential specialization, using implicit substitution in
       both directions.  (Contributed by AV, 8-Jan-2022.) $)
    rspcebdv $p |- ( ph -> ( E. x e. B ps <-> ch ) ) $=
      ( wrex wi wa cv wceq wb syldan biimpd expcom pm2.43b rexlimdvw rspcedv
      impbid ) ABDFJCABCDFABCABBCKABLBCABDMENBCOIHPQRSTABCDEFGHUAUB $.
  $}

  ${
    $d A x $.  $d C x $.  $d ch x $.
    rspcdva.1 $e |- ( x = C -> ( ps <-> ch ) ) $.
    rspcdva.2 $e |- ( ph -> A. x e. A ps ) $.
    rspcdva.3 $e |- ( ph -> C e. A ) $.
    ${
      rspcda.1 $e |- F/ x ph $.
      $( Restricted specialization, using implicit substitution.  (Contributed
         by Thierry Arnoux, 29-Jun-2020.) $)
      rspcda $p |- ( ph -> ch ) $=
        ( wcel wral rspcv sylc ) AFEKBDELCIHBCDFEGMN $.
    $}

    $d ph x $.
    $( Restricted specialization, using implicit substitution.  (Contributed by
       Thierry Arnoux, 21-Jun-2020.) $)
    rspcdva $p |- ( ph -> ch ) $=
      ( wral cv wceq wb adantl rspcdv mpd ) ABDEJCHABCDFEIDKFLBCMAGNOP $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.  $d x ch $.
    rspcedvd.1 $e |- ( ph -> A e. B ) $.
    rspcedvd.2 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    rspcedvd.3 $e |- ( ph -> ch ) $.
    $( Restricted existential specialization, using implicit substitution.
       Variant of ~ rspcedv .  (Contributed by AV, 27-Nov-2019.) $)
    rspcedvd $p |- ( ph -> E. x e. B ps ) $=
      ( wrex rspcedv mpd ) ACBDFJIABCDEFGHKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    rspcedeqvd.1 $e |- ( ph -> A e. B ) $.
    rspcedeqvd.2 $e |- ( ( ph /\ x = A ) -> C = D ) $.
    ${
      $d x D $.
      $( Restricted existential specialization, using implicit substitution.
         Variant of ~ rspcedvd for equations, in which the left hand side
         depends on the quantified variable.  (Contributed by AV,
         24-Dec-2019.) $)
      rspcedeq1vd $p |- ( ph -> E. x e. B C = D ) $=
        ( wceq cv wa eqeq1d eqidd rspcedvd ) AEFIFFIBCDGABJCIKEFFHLAFMN $.
    $}

    $d x C $.
    $( Restricted existential specialization, using implicit substitution.
       Variant of ~ rspcedvd for equations, in which the right hand side
       depends on the quantified variable.  (Contributed by AV,
       24-Dec-2019.) $)
    rspcedeq2vd $p |- ( ph -> E. x e. B C = D ) $=
      ( wceq cv wa eqcomd eqeq2d eqidd rspcedvd ) AEFIEEIBCDGABJCIKZFEEPEFHLMAE
      NO $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x C $.  $d x y D $.
    rspc2.1 $e |- F/ x ch $.
    rspc2.2 $e |- F/ y ps $.
    rspc2.3 $e |- ( x = A -> ( ph <-> ch ) ) $.
    rspc2.4 $e |- ( y = B -> ( ch <-> ps ) ) $.
    $( Restricted specialization with two quantifiers, using implicit
       substitution.  (Contributed by NM, 9-Nov-2012.) $)
    rspc2 $p |- ( ( A e. C /\ B e. D ) -> ( A. x e. C A. y e. D ph ->
                  ps ) ) $=
      ( wcel wral nfcv nfral cv wceq rspc ralbidv sylan9 ) FHNAEIOZDHOCEIOZGINB
      UCUDDFHCDEIDIPJQDRFSACEILUATCBEGIKMTUB $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y V $.  $d x y W $.  $d x y ps $.
    rspc2gv.1 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( Restricted specialization with two quantifiers, using implicit
       substitution.  (Contributed by BJ, 2-Dec-2021.) $)
    rspc2gv $p |- ( ( A e. V /\ B e. W ) ->
                                          ( A. x e. V A. y e. W ph -> ps ) ) $=
      ( wral cv wcel wi wal wa df-ral albii wceq eleq1 syl5bi bi2anan9 imbi12d
      imbi2i 19.21v bicomi impexp syl5bbr spc2gv pm2.43a ) ADHJZCGJCKZGLZUJMZCN
      ZEGLZFHLZOZBUJCGPUNULDKZHLZAMZDNZMZCNZUQBUMVBCUJVAULADHPUCQVCULUTMZDNZCNZ
      UQBVBVECVEVBULUTDUDUEQVFUQBVDUQBMZCDEFGHVDULUSOZAMUKERZURFRZOZVGULUSAUFVK
      VHUQABVIULUOVJUSUPUKEGSURFHSUAIUBUGUHUITTT $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x C $.  $d x y D $.  $d x ch $.  $d y ps $.
    rspc2v.1 $e |- ( x = A -> ( ph <-> ch ) ) $.
    rspc2v.2 $e |- ( y = B -> ( ch <-> ps ) ) $.
    $( 2-variable restricted specialization, using implicit substitution.
       (Contributed by NM, 13-Sep-1999.) $)
    rspc2v $p |- ( ( A e. C /\ B e. D ) -> ( A. x e. C A. y e. D ph ->
                  ps ) ) $=
      ( nfv rspc2 ) ABCDEFGHICDLBELJKM $.

    $( 2-variable restricted specialization, using implicit substitution.
       (Contributed by NM, 18-Jun-2014.) $)
    rspc2va $p |- ( ( ( A e. C /\ B e. D ) /\ A. x e. C A. y e. D ph ) ->
                  ps ) $=
      ( wcel wa wral rspc2v imp ) FHLGILMAEINDHNBABCDEFGHIJKOP $.

    $( 2-variable restricted existential specialization, using implicit
       substitution.  (Contributed by NM, 16-Oct-1999.) $)
    rspc2ev $p |- ( ( A e. C /\ B e. D /\ ps ) -> E. x e. C E. y e. D ph ) $=
      ( wcel w3a wrex wa rspcev anim2i 3impb cv wceq rexbidv syl ) FHLZGILZBMUC
      CEINZOZAEINZDHNUCUDBUFUDBOUEUCCBEGIKPQRUGUEDFHDSFTACEIJUAPUB $.
  $}

  ${
    $d z ps $.  $d x ch $.  $d y th $.  $d x y z A $.  $d y z B $.  $d z C $.
    $d x R $.  $d x y S $.  $d x y z T $.
    rspc3v.1 $e |- ( x = A -> ( ph <-> ch ) ) $.
    rspc3v.2 $e |- ( y = B -> ( ch <-> th ) ) $.
    rspc3v.3 $e |- ( z = C -> ( th <-> ps ) ) $.
    $( 3-variable restricted specialization, using implicit substitution.
       (Contributed by NM, 10-May-2005.) $)
    rspc3v $p |- ( ( A e. R /\ B e. S /\ C e. T ) ->
                  ( A. x e. R A. y e. S A. z e. T ph -> ps ) ) $=
      ( wcel wral cv wceq wi wa ralbidv rspc2v rspcv sylan9 3impa ) HKQZILQZJMQ
      ZAGMRZFLREKRZBUAUHUIUBULDGMRZUJBUKUMCGMREFHIKLESHTACGMNUCFSITCDGMOUCUDDBG
      JMPUEUFUG $.

    $( 3-variable restricted existential specialization, using implicit
       substitution.  (Contributed by NM, 25-Jul-2012.) $)
    rspc3ev $p |- ( ( ( A e. R /\ B e. S /\ C e. T ) /\ ps ) ->
                  E. x e. R E. y e. S E. z e. T ph ) $=
      ( wcel wrex cv wceq w3a wa simpl1 simpl2 rspcev 3ad2antl3 rexbidv rspc2ev
      syl3anc ) HKQZILQZJMQZUABUBUJUKDGMRZAGMRZFLREKRUJUKULBUCUJUKULBUDULUJBUMU
      KDBGJMPUEUFUNUMCGMREFHIKLESHTACGMNUGFSITCDGMOUGUHUI $.
  $}

  ${
    $d ph x z $.  $d ph x y $.  $d ps y $.  $d ps z $.  $d A x $.  $d C x $.
    $d D x $.  $d ch x $.
    ralxpxfr2d.a $e |- A e. _V $.
    ralxpxfr2d.b $e |- ( ph -> ( x e. B <-> E. y e. C E. z e. D x = A ) ) $.
    ralxpxfr2d.c $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    $( Transfer a universal quantifier between one variable with pair-like
       semantics and two.  (Contributed by Stefan O'Rear, 27-Feb-2015.) $)
    ralxpxfr2d $p |- ( ph -> ( A. x e. B ps <-> A. y e. C A. z e. D ch ) ) $=
      ( wral wi wal wrex albidv ralcom4 ralbii wceq df-ral imbi1d syl5bb bitr2i
      wcel r19.23v albii 3bitr4ri syl6bb pm5.74da biidd ceqsalv 2ralbidv bitrd
      cv ) ABDHNZDUPZGUAZBOZDPZFJNZEINZCFJNEINAUQUSFJQZEIQZBOZDPZVCUQURHUFZBOZD
      PAVGBDHUBAVIVFDAVHVEBLUCRUDUTFJNZDPZEINVJEINZDPVCVGVJEDISVBVKEIUTFDJSTVFV
      LDVLVDBOZEINVFVJVMEIUSBFJUGTVDBEIUGUEUHUIUJAVACEFIJAVAUSCOZDPCAUTVNDAUSBC
      MUKRCCDGKUSCULUMUJUNUO $.
  $}

  ${
    $d A x z $.  $d Y x z $.  $d ph x $.  $d ps z $.  $d th z $.
    rexraleqim.1 $e |- ( x = z -> ( ps <-> ph ) ) $.
    rexraleqim.2 $e |- ( z = Y -> ( ph <-> th ) ) $.
    $( Statement following from existence and generalization with equality.
       (Contributed by AV, 9-Feb-2019.) $)
    rexraleqim $p |- ( ( E. z e. A ph /\ A. x e. A ( ps -> x = Y ) ) -> th ) $=
      ( wrex cv wceq wi wral wcel wa weq eqeq1 imbi12d rspcva syli impancom imp
      biimpd rexlimiva ) AEFJBDKZGLZMZDFNZCAUICMEFEKZFOZUIACAUKUIPUJGLZCUHAULMD
      UJFDEQBAUGULHUFUJGRSTULACIUDUAUBUEUC $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A variable introduction law for class equality, closed form.
       (Contributed by Thierry Arnoux, 2-Mar-2017.) $)
    eqvincg $p |- ( A e. V -> ( A = B <-> E. x ( x = A /\ x = B ) ) ) $=
      ( wcel wceq cv wa wex wi elisset ax-1 eqtr ex jca eximi pm3.43 3syl sylib
      19.37v eqtr2 exlimiv impbid1 ) BDEZBCFZAGZBFZUFCFZHZAIZUDUEUIJZAIZUEUJJUD
      UGAIUEUGJZUEUHJZHZAIULABDKUGUOAUGUMUNUGUELUGUEUHUFBCMNOPUOUKAUEUGUHQPRUEU
      IATSUIUEAUFBCUAUBUC $.

    eqvinc.1 $e |- A e. _V $.
    $( A variable introduction law for class equality.  (Contributed by NM,
       14-Apr-1995.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.)  (Proof
       shortened by Thierry Arnoux, 23-Jan-2022.) $)
    eqvinc $p |- ( A = B <-> E. x ( x = A /\ x = B ) ) $=
      ( cvv wcel wceq cv wa wex wb eqvincg ax-mp ) BEFBCGAHZBGNCGIAJKDABCELM $.
  $}

  ${
    $d A y $.  $d B y $.  $d x y $.
    eqvincf.1 $e |- F/_ x A $.
    eqvincf.2 $e |- F/_ x B $.
    eqvincf.3 $e |- A e. _V $.
    $( A variable introduction law for class equality, using bound-variable
       hypotheses instead of distinct variable conditions.  (Contributed by NM,
       14-Sep-2003.) $)
    eqvincf $p |- ( A = B <-> E. x ( x = A /\ x = B ) ) $=
      ( vy wceq cv wa wex eqvinc nfeq2 nfan nfv eqeq1 anbi12d cbvex bitri ) BCH
      GIZBHZTCHZJZGKAIZBHZUDCHZJZAKGBCFLUCUGGAUAUBAATBDMATCEMNUGGOTUDHUAUEUBUFT
      UDBPTUDCPQRS $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( Two ways to express substitution of ` A ` for ` x ` in ` ph ` .  This is
       the analogue for classes of ~ sb56 .  (Contributed by NM, 2-Mar-1995.)
       (Revised by BJ, 27-Apr-2019.) $)
    alexeqg $p |- ( A e. V -> ( A. x ( x = A -> ph )
                                                <-> E. x ( x = A /\ ph ) ) ) $=
      ( vy wcel cv wceq wa wex wi wal eqeq2 anbi1d exbidv imbi1d albidv vtoclbg
      sb56 bicomd ) CDFBGZCHZAIZBJZUBAKZBLZUAEGZHZAIZBJUHAKZBLUDUFECDUGCHZUIUCB
      UKUHUBAUGCUAMZNOUKUJUEBUKUHUBAULPQABESRT $.
  $}

  ${
    $d x A $.
    $( Equality implies equivalence with substitution.  (Contributed by NM,
       2-Mar-1995.)  (Proof shortened by BJ, 1-May-2019.) $)
    ceqex $p |- ( x = A -> ( ph <-> E. x ( x = A /\ ph ) ) ) $=
      ( cv wceq wa wex 19.8a ex wi wal cvv wcel wb eqvisset alexeqg syl sylbird
      sp com12 impbid ) BDCEZAUBAFZBGZUBAUDUCBHIUBUDUBAJZBKZAUBCLMUFUDNBCOABCLP
      QUFUBAUEBSTRUA $.
  $}

  ${
    $d x A $.
    ceqsexg.1 $e |- F/ x ps $.
    ceqsexg.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( A representation of explicit substitution of a class for a variable,
       inferred from an implicit substitution hypothesis.  (Contributed by NM,
       11-Oct-2004.) $)
    ceqsexg $p |- ( A e. V -> ( E. x ( x = A /\ ph ) <-> ps ) ) $=
      ( wb cv wceq wa wex nfe1 nfbi ceqex bibi12d biid vtoclg1f ) AAHCIDJZAKZCL
      ZBHCDEUABCTCMFNSAUAABACDOGPAQR $.
  $}

  ${
    $d x A $.  $d x ps $.
    ceqsexgv.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Elimination of an existential quantifier, using implicit substitution.
       (Contributed by NM, 29-Dec-1996.) $)
    ceqsexgv $p |- ( A e. V -> ( E. x ( x = A /\ ph ) <-> ps ) ) $=
      ( nfv ceqsexg ) ABCDEBCGFH $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    ceqsrexv.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Elimination of a restricted existential quantifier, using implicit
       substitution.  (Contributed by NM, 30-Apr-2004.) $)
    ceqsrexv $p |- ( A e. B -> ( E. x e. B ( x = A /\ ph ) <-> ps ) ) $=
      ( cv wceq wa wrex wcel wex df-rex an12 exbii bitr4i eleq1 anbi12d bianabs
      ceqsexgv syl5bb ) CGZDHZAIZCEJZUCUBEKZAIZIZCLZDEKZBUEUFUDIZCLUIUDCEMUHUKC
      UCUFANOPUJUIBUGUJBICDEUCUFUJABUBDEQFRTSUA $.

    $( Elimination of a restricted existential quantifier, using implicit
       substitution.  (Contributed by Mario Carneiro, 14-Mar-2014.) $)
    ceqsrexbv $p |- ( E. x e. B ( x = A /\ ph ) <-> ( A e. B /\ ps ) ) $=
      ( wcel cv wceq wa wrex r19.42v eleq1 adantr pm5.32ri bicomi baib ceqsrexv
      wb rexbiia pm5.32i 3bitr3i ) DEGZCHZDIZAJZJZCEKUCUFCEKZJUHUCBJUCUFCELUGUF
      CEUGUDEGZUFUIUFJUGUFUIUCUEUIUCSAUDDEMNOPQTUCUHBABCDEFRUAUB $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x C $.  $d x y D $.  $d x ps $.  $d y ch $.
    ceqsrex2v.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ceqsrex2v.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( Elimination of a restricted existential quantifier, using implicit
       substitution.  (Contributed by NM, 29-Oct-2005.) $)
    ceqsrex2v $p |- ( ( A e. C /\ B e. D ) ->
      ( E. x e. C E. y e. D ( ( x = A /\ y = B ) /\ ph ) <-> ch ) ) $=
      ( wcel cv wceq wa wrex anass rexbii r19.42v ceqsrexv bitri anbi2d rexbidv
      syl5bb sylan9bb ) FHLZDMFNZEMGNZOAOZEIPZDHPZUHBOZEIPZGILCUKUGUHAOZEIPZOZD
      HPUFUMUJUPDHUJUGUNOZEIPUPUIUQEIUGUHAQRUGUNEISUARUOUMDFHUGUNULEIUGABUHJUBU
      CTUDBCEGIKTUE $.
  $}

  ${
    $d x A $.  $d x B $.
    $( An alternate definition of class membership when the class is a set.
       (Contributed by NM, 18-Aug-1993.)  (Revised by BJ, 12-Feb-2022.) $)
    clel2g $p |- ( A e. V -> ( A e. B <-> A. x ( x = A -> x e. B ) ) ) $=
      ( wcel cv wceq wi wal nfv eleq1 ceqsalg bicomd ) BDEAFZBGNCEZHAIBCEZOPABD
      PAJNBCKLM $.
  $}

  ${
    $d x A $.  $d x B $.
    clel2.1 $e |- A e. _V $.
    $( An alternate definition of class membership when the class is a set.
       (Contributed by NM, 18-Aug-1993.) $)
    clel2 $p |- ( A e. B <-> A. x ( x = A -> x e. B ) ) $=
      ( cvv wcel cv wceq wi wal wb clel2g ax-mp ) BEFBCFAGZBHNCFIAJKDABCELM $.
  $}

  ${
    $d x A $.  $d x B $.
    $( An alternate definition of class membership when the class is a set.
       (Contributed by NM, 13-Aug-2005.) $)
    clel3g $p |- ( B e. V -> ( A e. B <-> E. x ( x = B /\ A e. x ) ) ) $=
      ( wcel cv wceq wa wex eleq2 ceqsexgv bicomd ) CDEAFZCGBMEZHAIBCEZNOACDMCB
      JKL $.
  $}

  ${
    $d x A $.  $d x B $.
    clel3.1 $e |- B e. _V $.
    $( An alternate definition of class membership when the class is a set.
       (Contributed by NM, 18-Aug-1993.) $)
    clel3 $p |- ( A e. B <-> E. x ( x = B /\ A e. x ) ) $=
      ( cvv wcel cv wceq wa wex wb clel3g ax-mp ) CEFBCFAGZCHBNFIAJKDABCELM $.
  $}

  ${
    $d x A $.  $d x B $.
    clel4.1 $e |- B e. _V $.
    $( An alternate definition of class membership when the class is a set.
       (Contributed by NM, 18-Aug-1993.) $)
    clel4 $p |- ( A e. B <-> A. x ( x = B -> A e. x ) ) $=
      ( cv wceq wcel wi wal eleq2 ceqsalv bicomi ) AEZCFBMGZHAIBCGZNOACDMCBJKL
      $.
  $}

  ${
    $d A x $.  $d X x $.
    $( Alternate definition of class membership: a class ` X ` is an element of
       another class ` A ` iff there is an element of ` A ` equal to ` X ` .
       (Contributed by AV, 13-Nov-2020.) $)
    clel5 $p |- ( X e. A <-> E. x e. A X = x ) $=
      ( wcel cv wceq wrex id eqeq2 adantl eqidd rspcedvd eleq1a rexlimiv impbii
      wb ) CBDZCAEZFZABGQSCCFZACBQHRCFSTPQRCCIJQCKLSQABRBCMNO $.
  $}

  ${
    $d y A z $.  $d y B z $.
    $( Compare theorem *13.183 in [WhiteheadRussell] p. 178.  Only ` A ` is
       required to be a set.  (Contributed by Andrew Salmon, 3-Jun-2011.) $)
    pm13.183 $p |- ( A e. V -> ( A = B <-> A. z ( z = A <-> z = B ) ) ) $=
      ( vy cv wceq wal eqeq1 eqeq2 bibi1d albidv alrimiv wsb stdpc4 sbbi bibi2i
      wb eqsb3 sylbi equsb1 biimp mpi syl impbii vtoclbg ) EFZCGZAFZUGGZUICGZRZ
      AHZBCGUIBGZUKRZAHEBDUGBCIUGBGZULUOAUPUJUNUKUGBUIJKLUHUMUHULAUGCUIJMUMULAE
      NZUHULAEOUQUJAENZUKAENZRZUHUJUKAEPUTURUHRZUHUSUHUREACSQVAURUHAEUAURUHUBUC
      TTUDUEUF $.
  $}

  ${
    $d y A $.  $d x y $.  $d y ph $.
    $( Restricted quantifier version of Theorem 19.3 of [Margaris] p. 89.  We
       don't need the nonempty class condition of ~ r19.3rzv when there is an
       outer quantifier.  (Contributed by NM, 25-Oct-2012.) $)
    rr19.3v $p |- ( A. x e. A A. y e. A ph <-> A. x e. A ph ) $=
      ( wral cv weq biidd rspcv ralimia wcel ax-1 ralrimiv ralimi impbii ) ACDE
      ZBDEABDEPABDAACBFDCBGAHIJAPBDAACDACFDKLMNO $.

    $( Restricted quantifier version of Theorem 19.28 of [Margaris] p. 90.  We
       don't need the nonempty class condition of ~ r19.28zv when there is an
       outer quantifier.  (Contributed by NM, 29-Oct-2012.) $)
    rr19.28v $p |- ( A. x e. A A. y e. A ( ph /\ ps )
                      <-> A. x e. A ( ph /\ A. y e. A ps ) ) $=
      ( wa wral cv wcel simpl ralimi weq biidd rspcv syl5 wi simpr jcad ralimia
      a1i r19.28v impbii ) ABFZDEGZCEGABDEGZFZCEGUDUFCECHZEIZUDAUEUDADEGUHAUCAD
      EABJKAADUGEDCLAMNOUDUEPUHUCBDEABQKTRSUFUDCEABDEUAKUB $.
  $}

  ${
    $d x A $.  $d x ps $.
    $( Membership in a class abstraction, using implicit substitution.  (Closed
       theorem version of ~ elabg .)  (Contributed by NM, 7-Nov-2005.)  (Proof
       shortened by Andrew Salmon, 8-Jun-2011.) $)
    elabgt $p |- ( ( A e. B /\ A. x ( x = A -> ( ph <-> ps ) ) ) ->
                 ( A e. { x | ph } <-> ps ) ) $=
      ( wcel cv wceq cab wb wi wal nfcv nfab1 nfel2 nfv nfbi pm5.5 spcgf abid
      eleq1 syl5bbr bibi1d biimpd a2i alimi impel ) DEFCGZDHZDACIZFZBJZKZCLULUI
      ABJZKZCLUMULCDECDMUKBCCDUJACNOBCPQUIULRSUOUMCUIUNULUIUNULUIAUKBAUHUJFUIUK
      ACTUHDUJUAUBUCUDUEUFUG $.
  $}

  ${
    elabgf.1 $e |- F/_ x A $.
    elabgf.2 $e |- F/ x ps $.
    elabgf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction, using implicit substitution.  Compare
       Theorem 6.13 of [Quine] p. 44.  This version has bound-variable
       hypotheses in place of distinct variable restrictions.  (Contributed by
       NM, 21-Sep-2003.)  (Revised by Mario Carneiro, 12-Oct-2016.) $)
    elabgf $p |- ( A e. B -> ( A e. { x | ph } <-> ps ) ) $=
      ( cv cab wcel wb nfab1 nfel nfbi wceq eleq1 bibi12d abid vtoclgf ) CIZACJ
      ZKZALDUBKZBLCDEFUDBCCDUBFACMNGOUADPUCUDABUADUBQHRACST $.
  $}

  ${
    $d x A $.
    elabf.1 $e |- F/ x ps $.
    elabf.2 $e |- A e. _V $.
    elabf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction, using implicit substitution.
       (Contributed by NM, 1-Aug-1994.)  (Revised by Mario Carneiro,
       12-Oct-2016.) $)
    elabf $p |- ( A e. { x | ph } <-> ps ) $=
      ( cvv wcel cab wb nfcv elabgf ax-mp ) DHIDACJIBKFABCDHCDLEGMN $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab.1 $e |- A e. _V $.
    elab.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction, using implicit substitution.  Compare
       Theorem 6.13 of [Quine] p. 44.  (Contributed by NM, 1-Aug-1994.) $)
    elab $p |- ( A e. { x | ph } <-> ps ) $=
      ( nfv elabf ) ABCDBCGEFH $.
  $}

  ${
    $d x ps $.  $d x A $.
    elabg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction, using implicit substitution.  Compare
       Theorem 6.13 of [Quine] p. 44.  (Contributed by NM, 14-Apr-1995.) $)
    elabg $p |- ( A e. V -> ( A e. { x | ph } <-> ps ) ) $=
      ( nfcv nfv elabgf ) ABCDECDGBCHFI $.
  $}

  ${
    elab.xex $e |- ( ph -> X e. _V ) $.
    elab.xmaj $e |- ( ph -> ch ) $.
    elab.xsub $e |- ( x = X -> ( ps <-> ch ) ) $.
    $d x ch $.  $d x X $.
    $( Explicit demonstration the class ` { x | ps } ` is not empty by the
       example ` X ` .  (Contributed by RP, 12-Aug-2020.) $)
    elabd $p |- ( ph -> E. x ps ) $=
      ( cvv wcel wex spcegv sylc ) AEIJCBDKFGBCDEIHLM $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab2g.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    elab2g.2 $e |- B = { x | ph } $.
    $( Membership in a class abstraction, using implicit substitution.
       (Contributed by NM, 13-Sep-1995.) $)
    elab2g $p |- ( A e. V -> ( A e. B <-> ps ) ) $=
      ( wcel cab eleq2i elabg syl5bb ) DEIDACJZIDFIBENDHKABCDFGLM $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab2.1 $e |- A e. _V $.
    elab2.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    elab2.3 $e |- B = { x | ph } $.
    $( Membership in a class abstraction, using implicit substitution.
       (Contributed by NM, 13-Sep-1995.) $)
    elab2 $p |- ( A e. B <-> ps ) $=
      ( cvv wcel wb elab2g ax-mp ) DIJDEJBKFABCDEIGHLM $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab4g.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    elab4g.2 $e |- B = { x | ph } $.
    $( Membership in a class abstraction, using implicit substitution.
       (Contributed by NM, 17-Oct-2012.) $)
    elab4g $p |- ( A e. B <-> ( A e. _V /\ ps ) ) $=
      ( wcel cvv elex elab2g biadan2 ) DEHDIHBDEJABCDEIFGKL $.
  $}

  ${
    elab3gf.1 $e |- F/_ x A $.
    elab3gf.2 $e |- F/ x ps $.
    elab3gf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction, with a weaker antecedent than
       ~ elabgf .  (Contributed by NM, 6-Sep-2011.) $)
    elab3gf $p |- ( ( ps -> A e. B ) -> ( A e. { x | ph } <-> ps ) ) $=
      ( wcel cab wb wn elabgf ibi pm2.21 impbid2 ja ) BDEIDACJZIZBKBLSBSBABCDRF
      GHMNBSOPABCDEFGHMQ $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab3g.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction, with a weaker antecedent than
       ~ elabg .  (Contributed by NM, 29-Aug-2006.) $)
    elab3g $p |- ( ( ps -> A e. B ) -> ( A e. { x | ph } <-> ps ) ) $=
      ( nfcv nfv elab3gf ) ABCDECDGBCHFI $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab3.1 $e |- ( ps -> A e. _V ) $.
    elab3.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction using implicit substitution.
       (Contributed by NM, 10-Nov-2000.) $)
    elab3 $p |- ( A e. { x | ph } <-> ps ) $=
      ( cvv wcel wi cab wb elab3g ax-mp ) BDGHIDACJHBKEABCDGFLM $.
  $}

  ${
    $d A x $.  $d V x $.
    $( Implication for the membership in a restricted class abstraction.
       (Contributed by Alexander van der Vekens, 31-Dec-2017.) $)
    elrabi $p |- ( A e. { x e. V | ph } -> A e. V ) $=
      ( wcel cv wa cab crab wceq wex clelab eleq1 anbi1d simprbda exlimiv sylbi
      df-rab eleq2s ) CDEZCBFZDEZAGZBHZABDICUDEUACJZUCGZBKTUCBCLUFTBUEUCTAUEUBT
      AUACDMNOPQABDRS $.
  $}

  ${
    elrabf.1 $e |- F/_ x A $.
    elrabf.2 $e |- F/_ x B $.
    elrabf.3 $e |- F/ x ps $.
    elrabf.4 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a restricted class abstraction, using implicit
       substitution.  This version has bound-variable hypotheses in place of
       distinct variable restrictions.  (Contributed by NM, 21-Sep-2003.) $)
    elrabf $p |- ( A e. { x e. B | ph } <-> ( A e. B /\ ps ) ) $=
      ( crab wcel cvv wa elex adantr cv cab df-rab eleq2i nfel nfan wceq elabgf
      eleq1 anbi12d syl5bb pm5.21nii ) DACEJZKZDLKZDEKZBMZDUHNUKUJBDENOUIDCPZEK
      ZAMZCQZKUJULUHUPDACERSUOULCDLFUKBCCDEFGTHUAUMDUBUNUKABUMDEUDIUEUCUFUG $.
  $}

  ${
    $d x y $.  $d A y $.
    rabtru.1 $e |- F/_ x A $.
    $( Abstract builder using the constant wff ` T. ` (Contributed by Thierry
       Arnoux, 4-May-2020.) $)
    rabtru $p |- { x e. A | T. } = A $=
      ( vy wtru crab cv wcel wa nfcv nftru wceq biidd elrabf tru biantru bitr4i
      eqriv ) DEABFZBDGZSHTBHZEIUAEEATBATJCAKAGTLEMNEUAOPQR $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    $( Membership in a restricted class abstraction, using implicit
       substitution.  (Closed theorem version of ~ elrab3 .)  (Contributed by
       Thierry Arnoux, 31-Aug-2017.) $)
    elrab3t $p |- ( ( A. x ( x = A -> ( ph <-> ps ) ) /\ A e. B ) ->
                                           ( A e. { x e. B | ph } <-> ps ) ) $=
      ( crab wcel cv wa cab wceq wb wi wal df-rab eleq2i id nfa1 nfv nfan eleq1
      sp biimparc biantrurd bibi1d pm5.74da syl5ibcom imp alrimi elabgt syl2an2
      syl5bb ) DACEFZGDCHZEGZAIZCJZGZUNDKZABLZMZCNZDEGZIZBUMUQDACEOPVCVCVBUSUPB
      LZMZCNURBLVCQVDVFCVBVCCVACRVCCSTVBVCVFVBVAVCVFVACUBVCUSUTVEVCUSIZAUPBVGUO
      AUSUOVCUNDEUAUCUDUEUFUGUHUIUPBCDEUJUKUL $.
  $}

  ${
    $d x ps $.  $d x A $.  $d x B $.
    elrab.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a restricted class abstraction, using implicit
       substitution.  (Contributed by NM, 21-May-1999.) $)
    elrab $p |- ( A e. { x e. B | ph } <-> ( A e. B /\ ps ) ) $=
      ( nfcv nfv elrabf ) ABCDECDGCEGBCHFI $.

    $( Membership in a restricted class abstraction, using implicit
       substitution.  (Contributed by NM, 5-Oct-2006.) $)
    elrab3 $p |- ( A e. B -> ( A e. { x e. B | ph } <-> ps ) ) $=
      ( crab wcel elrab baib ) DACEGHDEHBABCDEFIJ $.
  $}

  ${
    $d A x $.  $d B x $.  $d ch x $.
    elrabd.1 $e |- ( x = A -> ( ps <-> ch ) ) $.
    elrabd.2 $e |- ( ph -> A e. B ) $.
    elrabd.3 $e |- ( ph -> ch ) $.
    $( Membership in a restricted class abstraction, using implicit
       substitution.  Deduction version of ~ elrab .  (Contributed by Glauco
       Siliprandi, 23-Oct-2021.) $)
    elrabd $p |- ( ph -> A e. { x e. B | ps } ) $=
      ( wcel wa crab jca elrab sylibr ) AEFJZCKEBDFLJAPCHIMBCDEFGNO $.
  $}

  ${
    $d x ps $.  $d x A $.  $d x B $.
    elrab2.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    elrab2.2 $e |- C = { x e. B | ph } $.
    $( Membership in a class abstraction, using implicit substitution.
       (Contributed by NM, 2-Nov-2006.) $)
    elrab2 $p |- ( A e. C <-> ( A e. B /\ ps ) ) $=
      ( wcel crab wa eleq2i elrab bitri ) DFIDACEJZIDEIBKFODHLABCDEGMN $.
  $}

  ${
    $d x y $.  $d y A $.  $d y ps $.
    ralab.1 $e |- ( y = x -> ( ph <-> ps ) ) $.
    $( Universal quantification over a class abstraction.  (Contributed by Jeff
       Madsen, 10-Jun-2010.) $)
    ralab $p |- ( A. x e. { y | ph } ch <-> A. x ( ps -> ch ) ) $=
      ( cab wral cv wcel wi wal df-ral vex elab imbi1i albii bitri ) CDAEGZHDIZ
      SJZCKZDLBCKZDLCDSMUBUCDUABCABETDNFOPQR $.

    $( Universal quantification over a restricted class abstraction.
       (Contributed by Jeff Madsen, 10-Jun-2010.) $)
    ralrab $p |- ( A. x e. { y e. A | ph } ch <-> A. x e. A ( ps -> ch ) ) $=
      ( wi crab cv wcel wa elrab imbi1i impexp bitri ralbii2 ) CBCHZDAEFIZFDJZS
      KZCHTFKZBLZCHUBRHUAUCCABETFGMNUBBCOPQ $.

    $( Existential quantification over a class abstraction.  (Contributed by
       Mario Carneiro, 23-Jan-2014.)  (Revised by Mario Carneiro,
       3-Sep-2015.) $)
    rexab $p |- ( E. x e. { y | ph } ch <-> E. x ( ps /\ ch ) ) $=
      ( cab wrex cv wcel wa wex df-rex vex elab anbi1i exbii bitri ) CDAEGZHDIZ
      SJZCKZDLBCKZDLCDSMUBUCDUABCABETDNFOPQR $.

    $( Existential quantification over a class abstraction.  (Contributed by
       Jeff Madsen, 17-Jun-2011.)  (Revised by Mario Carneiro, 3-Sep-2015.) $)
    rexrab $p |- ( E. x e. { y e. A | ph } ch <-> E. x e. A ( ps /\ ch ) ) $=
      ( wa crab cv wcel elrab anbi1i anass bitri rexbii2 ) CBCHZDAEFIZFDJZRKZCH
      SFKZBHZCHUAQHTUBCABESFGLMUABCNOP $.
  $}

  ${
    $d x y $.  $d x A $.  $d x ch $.  $d x ph $.  $d y ps $.
    ralab2.1 $e |- ( x = y -> ( ps <-> ch ) ) $.
    $( Universal quantification over a class abstraction.  (Contributed by
       Mario Carneiro, 3-Sep-2015.) $)
    ralab2 $p |- ( A. x e. { y | ph } ps <-> A. y ( ph -> ch ) ) $=
      ( cab wral cv wcel wi wal df-ral nfsab1 nfv nfim weq eleq1 abid syl6bb
      imbi12d cbval bitri ) BDAEGZHDIZUDJZBKZDLACKZELBDUDMUGUHDEUFBEAEDNBEOPUHD
      ODEQZUFABCUIUFEIZUDJAUEUJUDRAESTFUAUBUC $.

    $( Universal quantification over a restricted class abstraction.
       (Contributed by Mario Carneiro, 3-Sep-2015.) $)
    ralrab2 $p |- ( A. x e. { y e. A | ph } ps <-> A. y e. A ( ph -> ch ) ) $=
      ( crab wral cv wcel wa cab wi wal df-rab raleqi ralab2 impexp albii
      df-ral bitr4i 3bitri ) BDAEFHZIBDEJFKZALZEMZIUFCNZEOZACNZEFIZBDUDUGAEFPQU
      FBCDEGRUIUEUJNZEOUKUHULEUEACSTUJEFUAUBUC $.

    $( Existential quantification over a class abstraction.  (Contributed by
       Mario Carneiro, 3-Sep-2015.) $)
    rexab2 $p |- ( E. x e. { y | ph } ps <-> E. y ( ph /\ ch ) ) $=
      ( cab wrex cv wcel wa wex df-rex nfsab1 nfv nfan weq eleq1 abid syl6bb
      anbi12d cbvex bitri ) BDAEGZHDIZUDJZBKZDLACKZELBDUDMUGUHDEUFBEAEDNBEOPUHD
      ODEQZUFABCUIUFEIZUDJAUEUJUDRAESTFUAUBUC $.

    $( Existential quantification over a class abstraction.  (Contributed by
       Mario Carneiro, 3-Sep-2015.) $)
    rexrab2 $p |- ( E. x e. { y e. A | ph } ps <-> E. y e. A ( ph /\ ch ) ) $=
      ( crab wrex cv wcel wa cab wex df-rab rexeqi rexab2 anass exbii df-rex
      bitr4i 3bitri ) BDAEFHZIBDEJFKZALZEMZIUECLZENZACLZEFIZBDUCUFAEFOPUEBCDEGQ
      UHUDUILZENUJUGUKEUDACRSUIEFTUAUB $.
  $}

  ${
    $d x z $.  $d A z $.
    $( Identity used to create closed-form versions of bound-variable
       hypothesis builders for class expressions.  (Contributed by NM,
       10-Nov-2005.)  (Proof shortened by Mario Carneiro, 12-Oct-2016.) $)
    abidnf $p |- ( F/_ x A -> { z | A. x z e. A } = A ) $=
      ( wnfc cv wcel wal sp nfcr nf5rd impbid2 abbi1dv ) ACDZBECFZAGZBCMONNAHMN
      AABCIJKL $.
  $}

  ${
    $d x z $.  $d z A $.
    dedhb.1 $e |- ( A = { z | A. x z e. A } -> ( ph <-> ps ) ) $.
    dedhb.2 $e |- ps $.
    $( A deduction theorem for converting the inference ` |- F/_ x A ` =>
       ` |- ph ` into a closed theorem.  Use ~ nfa1 and ~ nfab to eliminate the
       hypothesis of the substitution instance ` ps ` of the inference.  For
       converting the inference form into a deduction form, ~ abidnf is useful.
       (Contributed by NM, 8-Dec-2006.) $)
    dedhb $p |- ( F/_ x A -> ph ) $=
      ( wnfc cv wcel wal cab wceq wb abidnf eqcomd syl mpbiri ) CEHZABGSEDIEJCK
      DLZMABNSTECDEOPFQR $.
  $}

  ${
    $d y ph $.  $d x y ps $.  $d x y A $.
    eqeu.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( A condition which implies existential uniqueness.  (Contributed by Jeff
       Hankins, 8-Sep-2009.) $)
    eqeu $p |- ( ( A e. B /\ ps /\ A. x ( ph -> x = A ) ) -> E! x ph ) $=
      ( vy wcel cv wceq wi wal w3a wex weq weu spcegv imp 3adant3 eqeq2 3adant2
      imbi2d albidv eu3v sylanbrc ) DEHZBACIZDJZKZCLZMACNZACGOZKZCLZGNZACPUFBUK
      UJUFBUKABCDEFQRSUFUJUOBUFUJUOUNUJGDEGIZDJZUMUICUQULUHAUPDUGTUBUCQRUAACGUD
      UE $.
  $}

  ${
    $d x y A $.
    $( Equality has existential uniqueness.  (Contributed by NM,
       25-Nov-1994.) $)
    eueq $p |- ( A e. _V <-> E! x x = A ) $=
      ( vy cv wceq wex wa wi wal cvv wcel weu eqtr3 biantru isset eqeq1 3bitr4i
      gen2 eu4 ) ADZBEZAFZUBUACDZBEZGTUCEHZCIAIZGBJKUAALUFUBUEACTUCBMRNABOUAUDA
      CTUCBPSQ $.
  $}

  ${
    $d x A $.
    eueq1.1 $e |- A e. _V $.
    $( Equality has existential uniqueness.  (Contributed by NM,
       5-Apr-1995.) $)
    eueq1 $p |- E! x x = A $=
      ( cvv wcel cv wceq weu eueq mpbi ) BDEAFBGAHCABIJ $.
  $}

  ${
    $d x ph $.  $d x A $.  $d x B $.
    eueq2.1 $e |- A e. _V $.
    eueq2.2 $e |- B e. _V $.
    $( Equality has existential uniqueness (split into 2 cases).  (Contributed
       by NM, 5-Apr-1995.) $)
    eueq2 $p |- E! x ( ( ph /\ x = A ) \/ ( -. ph /\ x = B ) ) $=
      ( cv wceq wa wn weu eueq1 euanv biimpri mpan2 euorv bianfd eubidv mpbid
      wo notnot syl2anc orcom orbi2d syl5bb mpdan id orbi1d pm2.61i ) AABGZCHZI
      ZAJZUJDHZIZTZBKZAUMULTZBKZUQAUMJULBKZUSAUAZAUKBKZUTBCELUTAVBIAUKBMNOUMULB
      PUBAURUPBURULUMTAUPUMULUCAUMUOULAUMUNVAQUDUERSUMAUOTZBKZUQUMUOBKZVDUMUNBK
      ZVEBDFLVEUMVFIUMUNBMNOAUOBPUFUMVCUPBUMAULUOUMAUKUMUGQUHRSUI $.
  $}

  ${
    $d x ph $.  $d x ps $.  $d x A $.  $d x B $.  $d x C $.
    eueq3.1 $e |- A e. _V $.
    eueq3.2 $e |- B e. _V $.
    eueq3.3 $e |- C e. _V $.
    eueq3.4 $e |- -. ( ph /\ ps ) $.
    $( Equality has existential uniqueness (split into 3 cases).  (Contributed
       by NM, 5-Apr-1995.)  (Proof shortened by Mario Carneiro,
       28-Sep-2015.) $)
    eueq3 $p |- E! x ( ( ph /\ x = A ) \/ ( -. ( ph \/ ps ) /\ x = B )
                \/ ( ps /\ x = C ) ) $=
      ( wceq wa wo wn w3o weu eueq1 ibar wb con2i cv pm2.45 imnani jaoi orbi12d
      bianfd mtbid biorf bitrd 3orrot df-3or bitri syl6bbr eubidv adantr pm2.46
      syl mpbii simpl orim12i con3i 3orcomb ecase3 ) ABACUAZDKZLZABMZNZVDEKZLZB
      VDFKZLZOZCPZAVECPVNCDGQAVEVMCAVEVJVLMZVFMZVMAVEVFVPAVERAVONVFVPSAVHBMZVOV
      QAVHANBABUBZABABJUCZTUDTAVHVJBVLAVHVIVHAVRTUFABVKVSUFUEUGVOVFUHUQUIVMVJVL
      VFOVPVFVJVLUJVJVLVFUKULUMUNURBVKCPVNCFIQBVKVMCBVKVFVJMZVLMZVMBVKVLWABVKRB
      VTNVLWASVTBVFBNZVJAWBVEVSUOVHWBVIABUPUOUDTVTVLUHUQUIVFVJVLUKUMUNURVHVICPV
      NCEHQVHVIVMCVHVIVFVLMZVJMZVMVHVIVJWDVHVIRVHWCNVJWDSWCVGVFAVLBAVEUSBVKUSUT
      VAWCVJUHUQUIVMVFVLVJOWDVFVJVLVBVFVLVJUKULUMUNURVC $.
  $}

  ${
    $d x A $.
    $( There is at most one set equal to a class.  (Contributed by NM,
       8-Mar-1995.) $)
    moeq $p |- E* x x = A $=
      ( cv wceq wmo wex weu wi cvv wcel isset eueq sylbb1 df-mo mpbir ) ACBDZAE
      PAFZPAGZHBIJQRABKABLMPANO $.
  $}

  ${
    $d x y ph $.  $d x y ps $.  $d x y A $.  $d x y B $.  $d x y C $.
    moeq3.1 $e |- B e. _V $.
    moeq3.2 $e |- C e. _V $.
    moeq3.3 $e |- -. ( ph /\ ps ) $.
    $( "At most one" property of equality (split into 3 cases).  (The first two
       hypotheses could be eliminated with longer proof.)  (Contributed by NM,
       23-Apr-1995.) $)
    moeq3 $p |- E* x ( ( ph /\ x = A ) \/ ( -. ( ph \/ ps ) /\ x = B )
                \/ ( ps /\ x = C ) ) $=
      ( vy cvv cv wceq wa wo wn w3o weu biidd 3orass wmo eqeq2 anbi2d 3orbi123d
      wcel eubidv vex vtoclg eumo syl wi wal eqvisset pm2.21 syl5 anim2d orim1d
      eueq3 3imtr4g alrimiv euimmo mpisyl pm2.61i ) DKUEZACLZDMZNZABOPVEEMNZBVE
      FMNZQZCUAZVDVJCRZVKAVEJLZMZNZVHVIQZCRZVLJDKVMDMZVPVJCVRVOVGVHVHVIVIVRVNVF
      AVMDVEUBUCVRVHSVRVISUDUFABCVMEFJUGGHIURZUHVJCUIUJVDPZVJVPUKZCULVQVKVTWACV
      TVGVHVIOZOVOWBOVJVPVTVGVOWBVTVFVNAVFVDVTVNCDUMVDVNUNUOUPUQVGVHVITVOVHVITU
      SUTVSVJVPCVAVBVC $.
  $}

  ${
    $d x y A $.
    mosub.1 $e |- E* x ph $.
    $( "At most one" remains true after substitution.  (Contributed by NM,
       9-Mar-1995.) $)
    mosub $p |- E* x E. y ( y = A /\ ph ) $=
      ( cv wceq wmo wal wa wex moeq ax-gen moexexv mp2an ) CFDGZCHABHZCIPAJCKBH
      CDLQCEMPACBNO $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( Theorem for inferring "at most one."  (Contributed by NM,
       17-Oct-1996.) $)
    mo2icl $p |- ( A. x ( ph -> x = A ) -> E* x ph ) $=
      ( vy cvv wcel cv wceq wi wal wmo weq eqeq2 imbi2d albidv imbi1d wex 19.8a
      mo2v wn sylibr vtoclg eqvisset imim2i con3rr3 alimdv alnex exmo ori sylbi
      syl6 pm2.61i ) CEFZABGZCHZIZBJZABKZIZABDLZIZBJZURIUSDCEDGZCHZVBUQURVDVAUP
      BVDUTUOAVCCUNMNOPVBVBDQURVBDRABDSUAUBUMTZUQATZBJZURVEUPVFBUPAUMUOUMABCUCU
      DUEUFVGABQZTURABUGVHURABUHUIUJUKUL $.
  $}

  ${
    $d x y A $.  $d y ph $.  $d x y ps $.
    moi2.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Consequence of "at most one."  (Contributed by NM, 2-Jan-2015.) $)
    mob2 $p |- ( ( A e. B /\ E* x ph /\ ph ) -> ( x = A <-> ps ) ) $=
      ( vy wcel wmo w3a cv wceq simp3 syl5ibcom wi wa wsb wal nfv sbhypf anbi2d
      eqeq2 imbi12d spcgv nfs1v sbequ12 mo4f sp sylbi impel expd 3impia impbid
      ) DEHZACIZAJZCKZDLZBUPAURBUNUOAMFNUNUOABUROUNUOPABURUNAACGQZPZUQGKZLZOZGR
      ZABPZUROZUOVCVFGDEVADLZUTVEVBURVGUSBAABCGDBCSFTUAVADUQUBUCUDUOVDCRVDAUSCG
      ACGUEACGUFUGVDCUHUIUJUKULUM $.

    $( Consequence of "at most one."  (Contributed by NM, 29-Jun-2008.) $)
    moi2 $p |- ( ( ( A e. B /\ E* x ph ) /\ ( ph /\ ps ) ) -> x = A ) $=
      ( wcel wmo wa cv wceq wb mob2 3expa biimprd impr ) DEGZACHZIZABCJDKZSAITB
      QRATBLABCDEFMNOP $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ch $.  $d x ps $.
    moi.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    moi.2 $e |- ( x = B -> ( ph <-> ch ) ) $.
    $( Equality implied by "at most one."  (Contributed by NM, 18-Feb-2006.) $)
    mob $p |- ( ( ( A e. C /\ B e. D ) /\ E* x ph /\ ps ) ->
                ( A = B <-> ch ) ) $=
      ( wcel wa wmo wceq wb wi cvv elex w3a nfv nfmo1 nf3an nfim 3anbi3d bibi1d
      cv eqeq1 imbi12d mob2 vtoclg1f com12 3expib syl com3r imp 3impib ) EGKZFH
      KZLADMZBEFNZCOZUQURUSBLZVAPURVBUQVAURFQKZVBUQVAPZPFHRVCUSBVDUQVCUSBSZVAVC
      USASZDUFZFNZCOZPVEVAPDEGVEVADVCUSBDVCDTADUABDTUBVADTUCVGENZVFVEVIVAVJABVC
      USIUDVJVHUTCVGEFUGUEUHACDFQJUIUJUKULUMUNUOUP $.

    $( Equality implied by "at most one."  (Contributed by NM, 18-Feb-2006.) $)
    moi $p |- ( ( ( A e. C /\ B e. D ) /\ E* x ph /\ ( ps /\ ch ) ) ->
              A = B ) $=
      ( wcel wa wmo wceq wi w3a mob biimprd 3expia impd 3impia ) EGKFHKLZADMZBC
      LEFNZUBUCLBCUDUBUCBCUDOUBUCBPUDCABCDEFGHIJQRSTUA $.
  $}

  ${
    $d B x $.  $d A x $.  $d ps x $.
    morex.1 $e |- B e. _V $.
    morex.2 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( Derive membership from uniqueness.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    morex $p |- ( ( E. x e. A ph /\ E* x ph ) -> ( ps -> B e. A ) ) $=
      ( wmo wrex wcel wi cv wa wex df-rex exancom bitri wal nfmo1 nfe1 nfan syl
      mopick alrimi wceq eleq1 imbi12d spcv sylan2b ancoms ) ACHZACDIZBEDJZKZUL
      UKACLZDJZMZCNZUNULUPAMCNURACDOUPACPQUKURMZAUPKZCRUNUSUTCUKURCACSUQCTUAAUP
      CUCUDUTUNCEFUOEUEABUPUMGUOEDUFUGUHUBUIUJ $.
  $}

  ${
    $d x ph $.  $d x A $.
    euxfr2.1 $e |- A e. _V $.
    euxfr2.2 $e |- E* y x = A $.
    $( Transfer existential uniqueness from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by NM,
       14-Nov-2004.) $)
    euxfr2 $p |- ( E! x E. y ( x = A /\ ph ) <-> E! y ph ) $=
      ( cv wceq wa wex weu wmo wi 2euswap moani ancom mobii mpbi mpg moeq biidd
      impbii ceqsexv eubii bitri ) BGDHZAIZCJBKZUGBJZCKZACKUHUJUGCLZUHUJMBUGBCN
      AUFIZCLUKUFACFOULUGCAUFPZQRSUGBLZUJUHMCUGCBNULBLUNUFABBDTOULUGBUMQRSUBUIA
      CAABDEUFAUAUCUDUE $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x A $.
    euxfr.1 $e |- A e. _V $.
    euxfr.2 $e |- E! y x = A $.
    euxfr.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Transfer existential uniqueness from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by NM,
       14-Nov-2004.) $)
    euxfr $p |- ( E! x ph <-> E! y ps ) $=
      ( weu cv wceq wa wex euex ax-mp biantrur 19.41v pm5.32i exbii 3bitr2i
      eubii eumoi euxfr2 bitri ) ACICJEKZBLZDMZCIBDIAUGCAUEDMZALUEALZDMUGUHAUED
      IUHGUEDNOPUEADQUIUFDUEABHRSTUABCDEFUEDGUBUCUD $.
  $}

  ${
    $d y z w ph $.  $d x z ps $.  $d y z w A $.  $d x z B $.  $d x y w $.
    euind.1 $e |- B e. _V $.
    euind.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    euind.3 $e |- ( x = y -> A = B ) $.
    $( Existential uniqueness via an indirect equality.  (Contributed by NM,
       11-Oct-2010.) $)
    euind $p |- ( ( A. x A. y ( ( ph /\ ps ) -> A = B ) /\ E. x ph )
                 -> E! z A. x ( ph -> z = A ) ) $=
      ( vw wa wceq wi wal wex cv exbii bitri sylib cbvexv isseti biantrur excom
      weu 19.41v 3bitr2i wb imim2i biimpr an31 imbi1i impexp 3bitr3i syl 2alimi
      eqeq2 19.23v albii 19.21v eximdv syl5bi pm4.24 biimpi eqtr3 syl56 alanimi
      imp prth com12 alrimivv adantl eqeq1 imbi2d albidv eu4 sylanbrc ) ABLZFGM
      ZNZDOCOZACPZLAEQZFMZNZCOZEPZWFAKQZFMZNZCOZLZWCWHMZNZKOEOZWFEUEWAWBWGWBWCG
      MZBLZDPZEPZWAWGWBBDPZWSABCDIUAWTWPEPZBLZDPWQEPZDPWSBXBDXABEGHUBUCRXCXBDWP
      BEUFRWQDEUDUGSWAWRWFEWAWQWENZDOZCOZWRWFNZVTXDCDVTVRWDWPUHZNZXDVSXHVRFGWCU
      QUIXIVRWPWDNZNZXDXHXJVRWDWPUJUIVRWPLZWDNWQALZWDNXKXDXLXMWDABWPUKULVRWPWDU
      MWQAWDUMUNTUOUPXFWRWENZCOXGXEXNCWQWEDURUSWRWECUTSTVAVBVHWBWOWAWBWNEKWLWBW
      MWLAWMNZCOWBWMNWEWJXOCAAALZWEWJLWDWILWMAXPAVCVDAWDAWIVIWCWHFVEVFVGAWMCURT
      VJVKVLWFWKEKWMWEWJCWMWDWIAWCWHFVMVNVOVPVQ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y ph $.  $d x ps $.
    $( A way to express restricted uniqueness.  (Contributed by NM,
       22-Nov-1994.) $)
    reu2 $p |- ( E! x e. A ph <-> ( E. x e. A ph /\
               A. x e. A A. y e. A ( ( ph /\ [ y / x ] ph ) -> x = y ) ) ) $=
      ( cv wcel wa weu wex wsb weq wi wal wreu wral df-ral impexp albii 3bitr4i
      nfv wrex eu2 df-reu df-rex 19.21v nfs1v nfan eleq1 sbequ12 anbi12d anbi2i
      sbie an4 bitri imbi1i 3bitri imbi2i bitr4i anbi12i ) BEZDFZAGZBHVBBIZVBVB
      BCJZGZBCKZLZCMZBMZGABDNABDUAZAABCJZGZVFLZCDOZBDOZGVBBCVBCTUBABDUCVJVCVOVI
      ABDUDVOVAVNLZBMVIVNBDPVHVPBVACEZDFZVMLZLZCMVAVSCMZLVHVPVAVSCUEVGVTCVGVAVR
      GZVLGZVFLWBVMLVTVEWCVFVEVBVRVKGZGWCVDWDVBVBWDBCVRVKBVRBTABCUFUGVFVAVRAVKU
      TVQDUHABCUIUJULUKVAAVRVKUMUNUOWBVLVFQVAVRVMQUPRVNWAVAVMCDPUQSRURUSS $.

    $( A way to express restricted uniqueness.  (Contributed by NM,
       20-Oct-2006.) $)
    reu6 $p |- ( E! x e. A ph <-> E. y e. A A. x e. A ( ph <-> x = y ) ) $=
      ( wreu cv wcel wa weu weq wb wral wrex df-reu wal wex imim2i imp 3bitr4i
      wi 19.28v eleq1 sbequ12 anbi12d equequ1 bibi12d equid simpl sylbir syl6bi
      wsb tbt spimv ibar bibi1d biimprcd sps jca axc4i biimp impd adantl eleq1a
      adantr biimpr com23 adantll impbid alimi impbii df-ral anbi2i exbii df-eu
      jcai ex df-rex bitri ) ABDEBFZDGZAHZBIZABCJZKZBDLZCDMZABDNWAWCKZBOZCPCFZD
      GZWEHZCPWBWFWHWKCWJVTWDTZHZBOZWJWLBOZHWHWKWJWLBUAWHWNWGWMBWHWJWLWGWJBCWCW
      GWJABCUKZHZCCJZKZWJWCWAWQWCWRWCVTWJAWPVSWIDUBABCUCUDBCCUEUFWSWQWJWRWQCUGU
      LWJWPUHUIUJUMWGWLBVTWDWGVTAWAWCVTAUNUOUPUQURUSWMWGBWMWAWCWLWAWCTWJWLVTAWC
      WDAWCTVTAWCUTQVAVBWMWCWAWMWCHVTAWMWCVTWJWCVTTWLWIDVSVCVDRWLWCVTATZWJWLWCW
      TWLVTWCAWDWCATVTAWCVEQVFRVGVOVPVHVIVJWEWOWJWDBDVKVLSVMWABCVNWECDVQSVR $.

    $( A way to express restricted uniqueness.  (Contributed by NM,
       24-Oct-2006.) $)
    reu3 $p |- ( E! x e. A ph <->
               ( E. x e. A ph /\ E. y e. A A. x e. A ( ph -> x = y ) ) ) $=
      ( wreu wrex weq wi wral wa reurex wb reu6 biimp ralimi reximi jca wex wal
      sylbi rexex anim2i wcel weu eu3v df-reu df-rex df-ral impexp albii bitr4i
      cv exbii anbi12i 3bitr4i sylibr impbii ) ABDEZABDFZABCGZHZBDIZCDFZJZURUSV
      CABDKURAUTLZBDIZCDFVCABCDMVFVBCDVEVABDAUTNOPTQVDUSVBCRZJZURVCVGUSVBCDUAUB
      BULDUCZAJZBUDVJBRZVJUTHZBSZCRZJURVHVJBCUEABDUFUSVKVGVNABDUGVBVMCVBVIVAHZB
      SVMVABDUHVLVOBVIAUTUIUJUKUMUNUOUPUQ $.

    $( A condition which implies existential uniqueness.  (Contributed by Mario
       Carneiro, 2-Oct-2015.) $)
    reu6i $p |- ( ( B e. A /\ A. x e. A ( ph <-> x = B ) ) -> E! x e. A ph ) $=
      ( vy wcel cv wceq wb wral wa wrex wreu eqeq2 bibi2d ralbidv rspcev sylibr
      reu6 ) DCFABGZDHZIZBCJZKATEGZHZIZBCJZECLABCMUGUCEDCUDDHZUFUBBCUHUEUAAUDDT
      NOPQABECSR $.

    eqreu.1 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( A condition which implies existential uniqueness.  (Contributed by Mario
       Carneiro, 2-Oct-2015.) $)
    eqreu $p |- ( ( B e. A /\ ps /\ A. x e. A ( ph -> x = B ) ) ->
      E! x e. A ph ) $=
      ( wcel cv wceq wi wral wreu wa wb ralbiim ceqsralv anbi2d syl5bb reu6i ex
      sylbird 3impib 3com23 ) EDGZACHEIZJCDKZBACDLZUDUFBUGUDUFBMZAUENCDKZUGUIUF
      UEAJCDKZMUDUHAUECDOUDUJBUFABCEDFPQRUDUIUGACDESTUAUBUC $.
  $}

  ${
    $d x y z A $.  $d y z ph $.  $d x z ps $.
    rmo4.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Restricted "at most one" using implicit substitution.  (Contributed by
       NM, 24-Oct-2006.)  (Revised by NM, 16-Jun-2017.) $)
    rmo4 $p |- ( E* x e. A ph <->
               A. x e. A A. y e. A ( ( ph /\ ps ) -> x = y ) ) $=
      ( wrmo cv wcel wa wmo weq wi wral df-rmo wal bitri impexp albii df-ral
      an4 ancom anbi1i imbi1i 3bitri r19.21v 3bitr2i eleq1 anbi12d mo4 3bitr4i
      ) ACEGCHZEIZAJZCKZABJZCDLZMZDENZCENZACEOUNDHZEIZBJZJZUQMZDPZCPUMUSMZCPUOU
      TVFVGCVFVBUMURMZMZDPVHDENVGVEVIDVEVBUMJZUPJZUQMVJURMVIVDVKUQVDUMVBJZUPJVK
      UMAVBBUAVLVJUPUMVBUBUCQUDVJUPUQRVBUMURRUESVHDETUMURDEUFUGSUNVCCDUQUMVBABU
      LVAEUHFUIUJUSCETUKQ $.

    $( Restricted uniqueness using implicit substitution.  (Contributed by NM,
       23-Nov-1994.) $)
    reu4 $p |- ( E! x e. A ph <-> ( E. x e. A ph /\
             A. x e. A A. y e. A ( ( ph /\ ps ) -> x = y ) ) ) $=
      ( wreu wrex wrmo wa weq wi wral reu5 rmo4 anbi2i bitri ) ACEGACEHZACEIZJR
      ABJCDKLDEMCEMZJACENSTRABCDEFOPQ $.

    $( Restricted uniqueness using implicit substitution.  (Contributed by NM,
       24-Oct-2006.) $)
    reu7 $p |- ( E! x e. A ph <-> ( E. x e. A ph /\
             E. x e. A A. y e. A ( ps -> x = y ) ) ) $=
      ( vz wreu wrex weq wi wral wa equequ1 equcom syl6bb imbi12d cbvralv bitri
      reu3 rexbii imbi2d ralbidv cbvrexv anbi2i ) ACEHACEIZACGJZKZCELZGEIZMUFBC
      DJZKZDELZCEIZMACGETUJUNUFUJBGDJZKZDELZGEIUNUIUQGEUHUPCDEUKABUGUOFUKUGDGJU
      OCDGNDGOPQRUAUQUMGCEGCJZUPULDEURUOUKBGCDNUBUCUDSUES $.

    $( Restricted uniqueness using implicit substitution.  (Contributed by NM,
       24-Oct-2006.) $)
    reu8 $p |- ( E! x e. A ph <-> E. x e. A ( ph /\
                A. y e. A ( ps -> x = y ) ) ) $=
      ( wreu weq wb wral wrex wi wa cbvreuv reu6 cv wcel ralbii wal syl5bb a1i
      dfbi2 ancom equcom imbi2i biimt df-ral bi2.04 albii eleq1w imbi12d bicomd
      equcoms equsalvw 3bitrri syl6bb anbi12d r19.26 syl6rbbr rexbiia 3bitri )
      ACEGBDEGBDCHZIZDEJZCEKABCDHZLZDEJZMZCEKABCDEFNBDCEOVDVHCEVDBVBLZVBBLZMZDE
      JZCPEQZVHVCVKDEBVBUBRVMVHVIDEJZVJDEJZMZVLVHVGAMVMVPAVGUCVMVGVNAVOVGVNIVMV
      FVIDEVEVBBCDUDUERUAVMAVMALZVOVMAUFVODPEQZVJLZDSVBVRBLZLZDSVQVJDEUGVSWADVR
      VBBUHUIVTVQDCVTVQICDVEVQVTVEVMVRABCDEUJFUKULUMUNUOUPUQTVIVJDEURUSTUTVA $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C x y $.  $d ch x y $.  $d ps y $.
    $d th x y $.
    reu2eqd.1 $e |- ( x = B -> ( ps <-> ch ) ) $.
    reu2eqd.2 $e |- ( x = C -> ( ps <-> th ) ) $.
    reu2eqd.3 $e |- ( ph -> E! x e. A ps ) $.
    reu2eqd.4 $e |- ( ph -> B e. A ) $.
    reu2eqd.5 $e |- ( ph -> C e. A ) $.
    reu2eqd.6 $e |- ( ph -> ch ) $.
    reu2eqd.7 $e |- ( ph -> th ) $.
    $( Deduce equality from restricted uniqueness, deduction version.
       (Contributed by Thierry Arnoux, 27-Nov-2019.) $)
    reu2eqd $p |- ( ph -> B = C ) $=
      ( vy wceq wa wi nfv wsb cv wral wrex wreu reu2 sylib wcel nfs1v nfan nfim
      simprd anbi1d eqeq1 imbi12d sbhypf anbi2d eqeq2 rspc2 syl2anc mpd mp2and
      ) ACDGHQZNOABBEPUAZRZEUBZPUBZQZSZPFUCEFUCZCDRZVCSZABEFUDZVJABEFUEVMVJRKBE
      PFUFUGULAGFUHHFUHVJVLSLMVIVLCVDRZGVGQZSEPGHFFVNVOECVDECETBEPUIUJVOETUKVLP
      TVFGQZVEVNVHVOVPBCVDIUMVFGVGUNUOVGHQZVNVKVOVCVQVDDCBDEPHDETJUPUQVGHGURUOU
      SUTVAVB $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Equality has existential uniqueness.  (Contributed by Mario Carneiro,
       1-Sep-2015.) $)
    reueq $p |- ( B e. A <-> E! x e. A x = B ) $=
      ( wcel cv wceq wrex wreu risset wrmo wmo moeq mormo ax-mp mpbiran2 bitr4i
      reu5 ) CBDAECFZABGZRABHZACBITSRABJZRAKUAACLRABMNRABQOP $.
  $}

  ${
    $d x A $.
    $( Equality's restricted existential "at most one" property.  (Contributed
       by Thierry Arnoux, 30-Mar-2018.)  (Revised by AV, 27-Oct-2020.)  (Proof
       shortened by NM, 29-Oct-2020.) $)
    rmoeq $p |- E* x e. B x = A $=
      ( cv wceq wrmo wcel wa wmo moeq moani df-rmo mpbir ) ADZBEZACFNCGZOHAIOPA
      ABJKOACLM $.
  $}

  $( Restricted "at most one" still holds when a conjunct is added.
     (Contributed by NM, 16-Jun-2017.) $)
  rmoan $p |- ( E* x e. A ph -> E* x e. A ( ps /\ ph ) ) $=
    ( cv wcel wa wmo wrmo moan an12 mobii sylib df-rmo 3imtr4i ) CEDFZAGZCHZPBA
    GZGZCHZACDISCDIRBQGZCHUAQBCJUBTCBPAKLMACDNSCDNO $.

  $( Restricted "at most one" is preserved through implication (note wff
     reversal).  (Contributed by Alexander van der Vekens, 17-Jun-2017.) $)
  rmoim $p |- ( A. x e. A ( ph -> ps )
        -> ( E* x e. A ps -> E* x e. A ph ) ) $=
    ( wi wral cv wcel wa wal wrmo df-ral imdistan albii wmo moim df-rmo 3imtr4g
    bitri sylbi ) ABEZCDFZCGDHZAIZUCBIZEZCJZBCDKZACDKZEUBUCUAEZCJUGUACDLUJUFCUC
    ABMNSUGUECOUDCOUHUIUDUECPBCDQACDQRT $.

  ${
    rmoimia.1 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Restricted "at most one" is preserved through implication (note wff
       reversal).  (Contributed by Alexander van der Vekens, 17-Jun-2017.) $)
    rmoimia $p |- ( E* x e. A ps -> E* x e. A ph ) $=
      ( wi wrmo rmoim mprg ) ABFBCDGACDGFCDABCDHEI $.
  $}

  ${
    rmoimi2.1 $e |- A. x ( ( x e. A /\ ph ) -> ( x e. B /\ ps ) ) $.
    $( Restricted "at most one" is preserved through implication (note wff
       reversal).  (Contributed by Alexander van der Vekens, 17-Jun-2017.) $)
    rmoimi2 $p |- ( E* x e. B ps -> E* x e. A ph ) $=
      ( cv wcel wa wmo wrmo wi wal moim ax-mp df-rmo 3imtr4i ) CGZEHBIZCJZRDHAI
      ZCJZBCEKACDKUASLCMTUBLFUASCNOBCEPACDPQ $.
  $}

  ${
    $d x y A $.  $d x B $.
    $( A condition allowing swap of uniqueness and existential quantifiers.
       (Contributed by Thierry Arnoux, 7-Apr-2017.)  (Revised by NM,
       16-Jun-2017.) $)
    2reuswap $p |- ( A. x e. A E* y e. B ph ->
                   ( E! x e. A E. y e. B ph -> E! y e. B E. x e. A ph ) ) $=
      ( wral cv wcel wa wmo wrex wreu wal wex weu df-reu r19.42v df-rex bitri
      wi wrmo df-rmo ralbii df-ral moanimv albii bitr4i bitr3i an12 exbii eubii
      2euswap 3imtr4g sylbi ) ACEUAZBDFCGEHZAIZCJZBDFZACEKZBDLZABDKZCELZTZUOURB
      DACEUBUCUSBGDHZUQIZCJZBMZVDUSVEURTZBMVHURBDUDVGVIBVEUQCUEUFUGVHVFCNZBOZVF
      BNZCOZVAVCVFBCULVAVEUTIZBOVKUTBDPVNVJBVNUPVEAIZIZCNZVJVNVOCEKVQVEACEQVOCE
      RUHVPVFCUPVEAUIUJSUKSVCUPVBIZCOVMVBCEPVRVLCVRUQBDKVLUPABDQUQBDRUHUKSUMUNU
      N $.
  $}

  ${
    $d w y z A $.  $d x z B $.  $d w x y z C $.  $d w y z ph $.  $d x z ps $.
    reuind.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    reuind.2 $e |- ( x = y -> A = B ) $.
    $( Existential uniqueness via an indirect equality.  (Contributed by NM,
       16-Oct-2010.) $)
    reuind $p |- ( ( A. x A. y ( ( ( A e. C /\ ph ) /\ ( B e. C /\ ps ) )
         -> A = B ) /\ E. x ( A e. C /\ ph ) )
                 -> E! z e. C A. x ( ( A e. C /\ ph ) -> z = A ) ) $=
      ( vw wcel wa wceq wi wal wex cv wrex bitri wral wreu eleq1d anbi12d exbii
      cbvexv r19.41v rexcom4 risset anbi1i 3bitr4ri wb eqeq2 imim2i biimpr an31
      imbi1i impexp 3bitr3i sylib syl 2alimi 19.23v an12 adantr pm5.32ri bitr4i
      eleq1 19.42v albii 19.21v expd reximdvai syl5bi pm4.24 biimpi eqtr3 syl56
      imp prth alanimi com12 ralrimivv adantl eqeq1 imbi2d albidv reu4 sylanbrc
      a1d ) FHLZAMZGHLZBMZMZFGNZOZDPCPZWLCQZMWLERZFNZOZCPZEHSZXCWLKRZFNZOZCPZMZ
      WTXENZOZKHUAEHUAZXCEHUBWRWSXDWSWTGNZBMZDQZEHSZWRXDWSWNDQZXPWLWNCDCRDRNZWK
      WMABXRFGHJUCIUDUFXNEHSZDQXMEHSZBMZDQXPXQXSYADXMBEHUGUEXNEDHUHWNYADWMXTBEG
      HUIUJUEUKTWRXOXCEHWRWTHLZXOXCWRXMWNMZXBOZDPZCPZYBXOMZXCOZWQYDCDWQWOXAXMUL
      ZOZYDWPYIWOFGWTUMUNYJWOXMXAOZOZYDYIYKWOXAXMUOUNWOXMMZXAOYCWLMZXAOYLYDYMYN
      XAWLWNXMUPUQWOXMXAURYCWLXAURUSUTVAVBYFYGXBOZCPYHYEYOCYEYCDQZXBOYOYCXBDVCY
      PYGXBYPYBXNMZDQYGYCYQDYCWMXNMYQXMWMBVDXNYBWMXMYBWMULBWTGHVHVEVFVGUEYBXNDV
      ITUQTVJYGXBCVKTUTVLVMVNVSWSXLWRWSXKEKHHWSXKYBXEHLMXIWSXJXIWLXJOZCPWSXJOXB
      XGYRCWLWLWLMZXBXGMXAXFMXJWLYSWLVOVPWLXAWLXFVTWTXEFVQVRWAWLXJCVCUTWBWJWCWD
      XCXHEKHXJXBXGCXJXAXFWLWTXEFWEWFWGWHWI $.
  $}

  ${
    $d y A $.  $d x B $.  $d x y $.
    $( Double restricted quantification with "at most one," analogous to
       ~ 2moex .  (Contributed by Alexander van der Vekens, 17-Jun-2017.) $)
    2rmorex $p |- ( E* x e. A E. y e. B ph -> A. y e. B E* x e. A ph ) $=
      ( wrex wrmo nfcv nfre1 nfrmo wi wral cv wcel rmoim rspe ralrimivw ralrimi
      ex syl11 ) ACEFZBDGZABDGZCEUACBDCDHACEIJAUAKZBDLUBUCCMENZAUABDOUEUDBDUEAU
      AACEPSQTR $.

    $( Lemma for ~ 2reu5 .  Note that ` E! x e. A E! y e. B ph ` does not mean
       "there is exactly one ` x ` in ` A ` and exactly one ` y ` in ` B ` such
       that ` ph ` holds;" see comment for ~ 2eu5 .  (Contributed by Alexander
       van der Vekens, 17-Jun-2017.) $)
    2reu5lem1 $p |- ( E! x e. A E! y e. B ph <->
                   E! x E! y ( x e. A /\ y e. B /\ ph ) ) $=
      ( wreu cv wcel wa weu w3a df-reu reubii euanv bicomi 3anass eubii bitri )
      ACEFZBDFCGEHZAIZCJZBDFZBGDHZTAKZCJZBJZSUBBDACELMUCUDUBIZBJUGUBBDLUHUFBUHU
      DUAIZCJZUFUJUHUDUACNOUIUECUEUIUDTAPOQRQRR $.

    $( Lemma for ~ 2reu5 .  (Contributed by Alexander van der Vekens,
       17-Jun-2017.) $)
    2reu5lem2 $p |- ( A. x e. A E* y e. B ph <->
                   A. x E* y ( x e. A /\ y e. B /\ ph ) ) $=
      ( wrmo wral cv wcel wa wmo w3a wal df-rmo ralbii wi df-ral moanimv bicomi
      bitri 3anass mobii albii ) ACEFZBDGCHEIZAJZCKZBDGZBHDIZUEALZCKZBMZUDUGBDA
      CENOUHUIUGPZBMULUGBDQUMUKBUMUIUFJZCKZUKUOUMUIUFCRSUNUJCUJUNUIUEAUASUBTUCT
      T $.
  $}

  ${
    $d w y z A $.  $d w x z B $.  $d x y $.  $d ph w $.  $d ph z $.
    $( Lemma for ~ 2reu5 .  This lemma is interesting in its own right, showing
       that existential restriction in the last conjunct (the "at most one"
       part) is optional; compare ~ rmo2 .  (Contributed by Alexander van der
       Vekens, 17-Jun-2017.) $)
    2reu5lem3 $p |- ( ( E! x e. A E! y e. B ph /\ A. x e. A E* y e. B ph )
                   <-> ( E. x e. A E. y e. B ph
                         /\ E. z E. w A. x e. A A. y e. B
                            ( ph -> ( x = z /\ y = w ) ) ) ) $=
      ( wreu wral wa cv wcel weu wal wex weq wi wrex exbii 3bitri w3a 2reu5lem1
      wrmo wmo 2reu5lem2 anbi12i 2eu5 3anass 19.42v df-rex bicomi anbi2i bitr4i
      3anan12 imbi1i impexp imbi2i albii df-ral r19.21v 3bitr2i ) ACGHBFHZACGUC
      BFIZJBKFLZCKGLZAUAZCMBMZVFCUDBNZJVFCOZBOZVFBDPCEPJZQZCNZBNZEOZDOZJACGRZBF
      RZAVKQZCGIZBFIZEOZDOZJVBVGVCVHABCFGUBABCFGUEUFVFBCDEUGVJVRVPWCVJVDVQJZBOV
      RVIWDBVIVDVEAJZJZCOVDWECOZJWDVFWFCVDVEAUHSVDWECUIWGVQVDVQWGACGUJUKULTSVQB
      FUJUMVOWBDVNWAEVNVDVTQZBNWAVMWHBVMVEVDVSQZQZCNWICGIWHVLWJCVLVEVDAJZJZVKQV
      EWKVKQZQWJVFWLVKVDVEAUNUOVEWKVKUPWMWIVEVDAVKUPUQTURWICGUSVDVSCGUTVAURVTBF
      USUMSSUFT $.

    $d x A $.  $d y B $.
    $( Double restricted existential uniqueness in terms of restricted
       existential quantification and restricted universal quantification,
       analogous to ~ 2eu5 and ~ reu3 .  (Contributed by Alexander van der
       Vekens, 17-Jun-2017.) $)
    2reu5 $p |- ( ( E! x e. A E! y e. B ph /\ A. x e. A E* y e. B ph )
                  <-> ( E. x e. A E. y e. B ph
                        /\ E. z e. A E. w e. B A. x e. A A. y e. B
                           ( ph -> ( x = z /\ y = w ) ) ) ) $=
      ( wrex weq wa wral wex cv wcel wreu r19.29r reximi eleq1 ex df-rex pm3.35
      wrmo bi2anan9 biimpac ancomd rexlimivv 4syl pm4.71rd anass syl6bb 2exbidv
      wi pm5.32i 2reu5lem3 r19.42v bitr3i exbii bitri anbi2i 3bitr4i ) ACGHZBFH
      ZABDIZCEIZJZULZCGKZBFKZELDLZJVBEMZGNZDMZFNZVHJZJZELZDLZJACGOBFOACGUBBFKJV
      BVHEGHZDFHZJVBVIVQVBVHVODEVBVHVKVMJZVHJVOVBVHVTVBVHVTVBVHJVAVGJZBFHAVFJZC
      GHZBFHVECGHZBFHVTVAVGBFPWAWCBFAVFCGPQWCWDBFWBVECGAVEUAQQVEVTBCFGBMZFNZCMZ
      GNZJZVEVTWIVEJVMVKVEWIVMVKJVCWFVMVDWHVKWEVLFRWGVJGRUCUDUESUFUGSUHVKVMVHUI
      UJUKUMABCDEFGUNVSVQVBVSVMVRJZDLVQVRDFTWJVPDWJVNEGHVPVMVHEGUOVNEGTUPUQURUS
      UT $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    nelrdva.1 $e |- ( ( ph /\ x e. A ) -> x =/= B ) $.
    $( Deduce negative membership from an implication.  (Contributed by Thierry
       Arnoux, 27-Nov-2017.) $)
    nelrdva $p |- ( ph -> -. B e. A ) $=
      ( wcel wceq wa eqidd wne cv wi eleq1 anbi2d imbi12d vtoclg anabsi7 neneqd
      neeq1 pm2.65da ) ADCFZDDGAUAHZDIUBDDAUADDJZABKZCFZHZUDDJZLUBUCLBDCUDDGZUF
      UBUGUCUHUEUAAUDDCMNUDDDSOEPQRT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Conditional equality (experimental)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This is a very useless definition, which "abbreviates" ` ( x = y -> ph ) ` as
  ` CondEq ( x = y -> ph ) ` . What this display hides, though, is that the
  first expression, even though it has a shorter constant string, is actually
  much more complicated in its parse tree: it is parsed as
  (wi (wceq (cv vx) (cv vy)) wph), while the ` CondEq ` version is parsed as
  (wcdeq vx vy wph).  It also allows us to give a name to the specific ternary
  operation ` ( x = y -> ph ) ` .

  This is all used as part of a metatheorem: we want to say that
  ` |- ( x = y -> ( ph ( x ) <-> ph ( y ) ) ) ` and
  ` |- ( x = y -> A ( x ) = A ( y ) ) ` are provable, for any expressions
  ` ph ( x ) ` or ` A ( x ) ` in the language.  The proof is by induction, so
  the base case is each of the primitives, which is why you will see a theorem
  for each of the set.mm primitive operations.

  The metatheorem comes with a disjoint variables assumption: every variable in
  ` ph ( x ) ` is assumed disjoint from ` x ` except ` x ` itself.  For such a
  proof by induction, we must consider each of the possible forms of
  ` ph ( x ) ` .  If it is a variable other than ` x ` , then we have
  ` CondEq ( x = y -> A = A ) ` or ` CondEq ( x = y -> ( ph <-> ph ) ) ` ,
  which is provable by ~ cdeqth and reflexivity.  Since we are only working
  with class and wff expressions, it can't be ` x ` itself in set.mm, but if it
  was we'd have to also prove ` CondEq ( x = y -> x = y ) ` (where _set_
  equality is being used on the right).

  Otherwise, it is a primitive operation applied to smaller expressions.  In
  these cases, for each setvar variable parameter to the operation, we must
  consider if it is equal to ` x ` or not, which yields 2^n proof obligations.
  Luckily, all primitive operations in set.mm have either zero or one setvar
  variable, so we only need to prove one statement for the non-set constructors
  (like implication) and two for the constructors taking a set (the forall and
  the class builder).

  In each of the primitive proofs, we are allowed to assume that ` y ` is
  disjoint from ` ph ( x ) ` and vice versa, because this is maintained through
  the induction.  This is how we satisfy the dv conditions of ~ cdeqab1 and
  ~ cdeqab .

$)

  $c CondEq $. $( conditional equality $)

  $( Extend wff notation to include conditional equality.  This is a technical
     device used in the proof that ` F/ ` is the not-free predicate, and that
     definitions are conservative as a result. $)
  wcdeq $a wff CondEq ( x = y -> ph ) $.

  $( Indicate that the variables "x" and "y" are free in wcdeq. $)
  $( $j free_var 'wcdeq' with 'x' 'y'; $)

  $( Define conditional equality.  All the notation to the left of the ` <-> `
     is fake; the parentheses and arrows are all part of the notation, which
     could equally well be written ` CondEq x y ph ` .  On the right side is
     the actual implication arrow.  The reason for this definition is to
     "flatten" the structure on the right side (whose tree structure is
     something like (wi (wceq (cv vx) (cv vy)) wph) ) into just (wcdeq vx vy
     wph).  (Contributed by Mario Carneiro, 11-Aug-2016.) $)
  df-cdeq $a |- ( CondEq ( x = y -> ph ) <-> ( x = y -> ph ) ) $.

  ${
    cdeqi.1 $e |- ( x = y -> ph ) $.
    $( Deduce conditional equality.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    cdeqi $p |- CondEq ( x = y -> ph ) $=
      ( wcdeq weq wi df-cdeq mpbir ) ABCEBCFAGDABCHI $.
  $}

  ${
    cdeqri.1 $e |- CondEq ( x = y -> ph ) $.
    $( Property of conditional equality.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    cdeqri $p |- ( x = y -> ph ) $=
      ( wcdeq weq wi df-cdeq mpbi ) ABCEBCFAGDABCHI $.
  $}

  ${
    cdeqth.1 $e |- ph $.
    $( Deduce conditional equality from a theorem.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    cdeqth $p |- CondEq ( x = y -> ph ) $=
      ( weq a1i cdeqi ) ABCABCEDFG $.
  $}

  ${
    cdeqnot.1 $e |- CondEq ( x = y -> ( ph <-> ps ) ) $.
    $( Distribute conditional equality over negation.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    cdeqnot $p |- CondEq ( x = y -> ( -. ph <-> -. ps ) ) $=
      ( wn wb weq cdeqri notbid cdeqi ) AFBFGCDCDHABABGCDEIJK $.

    ${
      $d x z $.  $d y z $.
      $( Distribute conditional equality over quantification.  (Contributed by
         Mario Carneiro, 11-Aug-2016.) $)
      cdeqal $p |- CondEq ( x = y -> ( A. z ph <-> A. z ps ) ) $=
        ( wal wb weq cdeqri albidv cdeqi ) AEGBEGHCDCDIABEABHCDFJKL $.

      $( Distribute conditional equality over abstraction.  (Contributed by
         Mario Carneiro, 11-Aug-2016.) $)
      cdeqab $p |- CondEq ( x = y -> { z | ph } = { z | ps } ) $=
        ( cab wceq weq wb cdeqri abbidv cdeqi ) AEGBEGHCDCDIABEABJCDFKLM $.
    $}

    ${
      $d x ps $.  $d y ph $.
      $( Distribute conditional equality over quantification.  (Contributed by
         Mario Carneiro, 11-Aug-2016.) $)
      cdeqal1 $p |- CondEq ( x = y -> ( A. x ph <-> A. y ps ) ) $=
        ( wal wb cdeqri cbvalv cdeqth ) ACFBDFGCDABCDABGCDEHIJ $.

      $( Distribute conditional equality over abstraction.  (Contributed by
         Mario Carneiro, 11-Aug-2016.) $)
      cdeqab1 $p |- CondEq ( x = y -> { x | ph } = { y | ps } ) $=
        ( cab wceq wb cdeqri cbvabv cdeqth ) ACFBDFGCDABCDABHCDEIJK $.
    $}

    cdeqim.1 $e |- CondEq ( x = y -> ( ch <-> th ) ) $.
    $( Distribute conditional equality over implication.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    cdeqim $p |- CondEq ( x = y -> ( ( ph -> ch ) <-> ( ps -> th ) ) ) $=
      ( wi wb weq cdeqri imbi12d cdeqi ) ACIBDIJEFEFKABCDABJEFGLCDJEFHLMN $.
  $}

  $( Conditional equality for set-to-class promotion.  (Contributed by Mario
     Carneiro, 11-Aug-2016.) $)
  cdeqcv $p |- CondEq ( x = y -> x = y ) $=
    ( weq id cdeqi ) ABCZABFDE $.

  ${
    cdeqeq.1 $e |- CondEq ( x = y -> A = B ) $.
    cdeqeq.2 $e |- CondEq ( x = y -> C = D ) $.
    $( Distribute conditional equality over equality.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    cdeqeq $p |- CondEq ( x = y -> ( A = C <-> B = D ) ) $=
      ( wceq wb weq cdeqri eqeq12d cdeqi ) CEIDFIJABABKCDEFCDIABGLEFIABHLMN $.

    $( Distribute conditional equality over elementhood.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    cdeqel $p |- CondEq ( x = y -> ( A e. C <-> B e. D ) ) $=
      ( wcel wb weq wceq cdeqri eleq12d cdeqi ) CEIDFIJABABKCDEFCDLABGMEFLABHMN
      O $.
  $}

  ${
    $d x ps $.  $d y ph $.
    nfcdeq.1 $e |- F/ x ph $.
    nfcdeq.2 $e |- CondEq ( x = y -> ( ph <-> ps ) ) $.
    $( If we have a conditional equality proof, where ` ph ` is ` ph ( x ) `
       and ` ps ` is ` ph ( y ) ` , and ` ph ( x ) ` in fact does not have
       ` x ` free in it according to ` F/ ` , then ` ph ( x ) <-> ph ( y ) `
       unconditionally.  This proves that ` F/ x ph ` is actually a not-free
       predicate.  (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfcdeq $p |- ( ph <-> ps ) $=
      ( wsb sbf nfv wb cdeqri sbie bitr3i ) AACDGBACDEHABCDBCIABJCDFKLM $.
  $}

  ${
    $d x z B $.  $d y z A $.
    nfccdeq.1 $e |- F/_ x A $.
    nfccdeq.2 $e |- CondEq ( x = y -> A = B ) $.
    $( Variation of ~ nfcdeq for classes.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfccdeq $p |- A = B $=
      ( vz cv wcel nfcri weq equid cdeqth cdeqel nfcdeq eqriv ) GCDGHZCIQDIABAG
      CEJABQQCDGGKABGLMFNOP $.
  $}

  $( Let the computer know the theorems to look for to prove the metatheorem $)
  $( $j
    condequality 'wcdeq' from 'cdeqth';
    condcongruence 'cdeqnot' 'cdeqim' 'cdeqal1' 'cdeqal' 'cdeqcv' 'cdeqeq'
      'cdeqel' 'cdeqab1' 'cdeqab';
    notfree 'wnf' from 'nfcdeq';
    notfree 'wnfc' from 'nfccdeq';
  $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Russell's Paradox
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    $( Russell's Paradox.  Proposition 4.14 of [TakeutiZaring] p. 14.

       In the late 1800s, Frege's Axiom of (unrestricted) Comprehension,
       expressed in our notation as ` A e. _V ` , asserted that any collection
       of sets ` A ` is a set i.e. belongs to the universe ` _V ` of all sets.
       In particular, by substituting ` { x | x e/ x } ` (the "Russell class")
       for ` A ` , it asserted ` { x | x e/ x } e. _V ` , meaning that the
       "collection of all sets which are not members of themselves" is a set.
       However, here we prove ` { x | x e/ x } e/ _V ` .  This contradiction
       was discovered by Russell in 1901 (published in 1903), invalidating the
       Comprehension Axiom and leading to the collapse of Frege's system.

       In 1908, Zermelo rectified this fatal flaw by replacing Comprehension
       with a weaker Subset (or Separation) Axiom ~ ssex asserting that ` A `
       is a set only when it is smaller than some other set ` B ` .  However,
       Zermelo was then faced with a "chicken and egg" problem of how to show
       ` B ` is a set, leading him to introduce the set-building axioms of Null
       Set ~ 0ex , Pairing ~ prex , Union ~ uniex , Power Set ~ pwex , and
       Infinity ~ omex to give him some starting sets to work with (all of
       which, before Russell's Paradox, were immediate consequences of Frege's
       Comprehension).  In 1922 Fraenkel strengthened the Subset Axiom with our
       present Replacement Axiom ~ funimaex (whose modern formalization is due
       to Skolem, also in 1922).  Thus, in a very real sense Russell's Paradox
       spawned the invention of ZF set theory and completely revised the
       foundations of mathematics!

       Another mainstream formalization of set theory, devised by von Neumann,
       Bernays, and Goedel, uses class variables rather than setvar variables
       as its primitives.  The axiom system NBG in [Mendelson] p. 225 is
       suitable for a Metamath encoding.  NBG is a conservative extension of ZF
       in that it proves exactly the same theorems as ZF that are expressible
       in the language of ZF. An advantage of NBG is that it is finitely
       axiomatizable - the Axiom of Replacement can be broken down into a
       finite set of formulas that eliminate its wff metavariable.  Finite
       axiomatizability is required by some proof languages (although not by
       Metamath).  There is a stronger version of NBG called Morse-Kelley
       (axiom system MK in [Mendelson] p. 287).

       Russell himself continued in a different direction, avoiding the paradox
       with his "theory of types."  Quine extended Russell's ideas to formulate
       his New Foundations set theory (axiom system NF of [Quine] p. 331).  In
       NF, the collection of all sets is a set, contradicting ZF and NBG set
       theories, and it has other bizarre consequences: when sets become too
       huge (beyond the size of those used in standard mathematics), the Axiom
       of Choice ~ ac4 and Cantor's Theorem ~ canth are provably false!  (See
       ~ ncanth for some intuition behind the latter.)  Recent results (as of
       2014) seem to show that NF is equiconsistent to Z (ZF in which ~ ax-sep
       replaces ~ ax-rep ) with ~ ax-sep restricted to only bounded
       quantifiers.  NF is finitely axiomatizable and can be encoded in
       Metamath using the axioms from T. Hailperin, "A set of axioms for
       logic," _J. Symb.  Logic_ 9:1-19 (1944).

       Under our ZF set theory, every set is a member of the Russell class by
       ~ elirrv (derived from the Axiom of Regularity), so for us the Russell
       class equals the universe ` _V ` (theorem ~ ruv ).  See ~ ruALT for an
       alternate proof of ~ ru derived from that fact.  (Contributed by NM,
       7-Aug-1994.) $)
    ru $p |- { x | x e/ x } e/ _V $=
      ( vy cv wnel cab cvv wcel wceq wex wel wb wal pm5.19 eleq1 df-nel eleq12d
      wn id notbid mtbir syl5bb bibi12d spv mto abeq2 nex isset nelir ) ACZUIDZ
      AEZFUKFGBCZUKHZBIUMBUMABJZUJKZALZUPBBJZUQQZKZUQMUOUSABUIULHZUNUQUJURUIULU
      LNUJAAJZQUTURUIUIOUTVAUQUTUIULUIULUTRZVBPSUAUBUCUDUJAULUETUFBUKUGTUH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Proper substitution of classes for sets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c [. $.
  $c ]. $.

  $( Extend wff notation to include the proper substitution of a class for a
     set.  Read this notation as "the proper substitution of class ` A ` for
     setvar variable ` x ` in wff ` ph ` ." $)
  wsbc $a wff [. A / x ]. ph $.

  $( Indicate that "x" is not bound in "A" in the definition of wsbc.
     This is similar to $d x A $. $)
  $( $j free_var_in 'wsbc' with 'A' 'x'; $)

  $( Define the proper substitution of a class for a set.

     When ` A ` is a proper class, our definition evaluates to false.  This is
     somewhat arbitrary: we could have, instead, chosen the conclusion of
     ~ sbc6 for our definition, which always evaluates to true for proper
     classes.

     Our definition also does not produce the same results as discussed in the
     proof of Theorem 6.6 of [Quine] p. 42 (although Theorem 6.6 itself does
     hold, as shown by ~ dfsbcq below).  For example, if ` A ` is a proper
     class, Quine's substitution of ` A ` for ` y ` in ` 0 e. y ` evaluates to
     ` 0 e. A ` rather than our falsehood.  (This can be seen by substituting
     ` A ` , ` y ` , and ` 0 ` for alpha, beta, and gamma in Subcase 1 of
     Quine's discussion on p. 42.)  Unfortunately, Quine's definition requires
     a recursive syntactic breakdown of ` ph ` , and it does not seem possible
     to express it with a single closed formula.

     If we did not want to commit to any specific proper class behavior, we
     could use this definition _only_ to prove theorem ~ dfsbcq , which holds
     for both our definition and Quine's, and from which we can derive a weaker
     version of ~ df-sbc in the form of ~ sbc8g .  However, the behavior of
     Quine's definition at proper classes is similarly arbitrary, and for
     practical reasons (to avoid having to prove sethood of ` A ` in every use
     of this definition) we allow direct reference to ~ df-sbc and assert that
     ` [. A / x ]. ph ` is always false when ` A ` is a proper class.

     The theorem ~ sbc2or shows the apparently "strongest" statement we can
     make regarding behavior at proper classes if we start from ~ dfsbcq .

     The related definition ~ df-csb defines proper substitution into a class
     variable (as opposed to a wff variable).  (Contributed by NM,
     14-Apr-1995.)  (Revised by NM, 25-Dec-2016.) $)
  df-sbc $a |- ( [. A / x ]. ph <-> A e. { x | ph } ) $.

  $( Proper substitution of a class for a set in a wff given equal classes.
     This is the essence of the sixth axiom of Frege, specifically Proposition
     52 of [Frege1879] p. 50.

     This theorem, which is similar to Theorem 6.7 of [Quine] p. 42 and holds
     under both our definition and Quine's, provides us with a weak definition
     of the proper substitution of a class for a set.  Since our ~ df-sbc does
     not result in the same behavior as Quine's for proper classes, if we
     wished to avoid conflict with Quine's definition we could start with this
     theorem and ~ dfsbcq2 instead of ~ df-sbc .  ( ~ dfsbcq2 is needed because
     unlike Quine we do not overload the ~ df-sb syntax.)  As a consequence of
     these theorems, we can derive ~ sbc8g , which is a weaker version of
     ~ df-sbc that leaves substitution undefined when ` A ` is a proper class.

     However, it is often a nuisance to have to prove the sethood hypothesis of
     ~ sbc8g , so we will allow direct use of ~ df-sbc after theorem ~ sbc2or
     below.  Proper substitution with a proper class is rarely needed, and when
     it is, we can simply use the expansion of Quine's definition.
     (Contributed by NM, 14-Apr-1995.) $)
  dfsbcq $p |- ( A = B -> ( [. A / x ]. ph <-> [. B / x ]. ph ) ) $=
    ( wceq cab wcel wsbc eleq1 df-sbc 3bitr4g ) CDECABFZGDLGABCHABDHCDLIABCJABD
    JK $.

  $( This theorem, which is similar to Theorem 6.7 of [Quine] p. 42 and holds
     under both our definition and Quine's, relates logic substitution ~ df-sb
     and substitution for class variables ~ df-sbc .  Unlike Quine, we use a
     different syntax for each in order to avoid overloading it.  See remarks
     in ~ dfsbcq .  (Contributed by NM, 31-Dec-2016.) $)
  dfsbcq2 $p |- ( y = A -> ( [ y / x ] ph <-> [. A / x ]. ph ) ) $=
    ( cv wceq cab wcel wsb wsbc eleq1 df-clab df-sbc bicomi 3bitr3g ) CEZDFPABG
    ZHDQHZABCIABDJZPDQKACBLSRABDMNO $.

  $( Show that ~ df-sb and ~ df-sbc are equivalent when the class term ` A ` in
     ~ df-sbc is a setvar variable.  This theorem lets us reuse theorems based
     on ~ df-sb for proofs involving ~ df-sbc .  (Contributed by NM,
     31-Dec-2016.)  (Proof modification is discouraged.) $)
  sbsbc $p |- ( [ y / x ] ph <-> [. y / x ]. ph ) $=
    ( weq wsb cv wsbc wb eqid dfsbcq2 ax-mp ) CCDABCEABCFZGHLIABCLJK $.

  ${
    sbceq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for class substitution.  (Contributed by Mario
       Carneiro, 9-Feb-2017.)  (Revised by NM, 30-Jun-2018.) $)
    sbceq1d $p |- ( ph -> ( [. A / x ]. ps <-> [. B / x ]. ps ) ) $=
      ( wceq wsbc wb dfsbcq syl ) ADEGBCDHBCEHIFBCDEJK $.

    sbceq1dd.2 $e |- ( ph -> [. A / x ]. ps ) $.
    $( Equality theorem for class substitution.  (Contributed by Mario
       Carneiro, 9-Feb-2017.)  (Revised by NM, 30-Jun-2018.) $)
    sbceq1dd $p |- ( ph -> [. B / x ]. ps ) $=
      ( wsbc sbceq1d mpbid ) ABCDHBCEHGABCDEFIJ $.
  $}

  ${
    $d x ph $.
    sbceqbid.1 $e |- ( ph -> A = B ) $.
    sbceqbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equality theorem for class substitution.  (Contributed by Thierry
       Arnoux, 4-Sep-2018.) $)
    sbceqbid $p |- ( ph -> ( [. A / x ]. ps <-> [. B / x ]. ch ) ) $=
      ( cab wcel wsbc abbidv eleq12d df-sbc 3bitr4g ) AEBDIZJFCDIZJBDEKCDFKAEFP
      QGABCDHLMBDENCDFNO $.
  $}

  ${
    $d y A $.  $d y ph $.  $d x y $.
    $( This is the closest we can get to ~ df-sbc if we start from ~ dfsbcq
       (see its comments) and ~ dfsbcq2 .  (Contributed by NM, 18-Nov-2008.)
       (Proof shortened by Andrew Salmon, 29-Jun-2011.)
       (Proof modification is discouraged.) $)
    sbc8g $p |- ( A e. V -> ( [. A / x ]. ph <-> A e. { x | ph } ) ) $=
      ( vy cv wsbc cab wcel dfsbcq eleq1 wsb df-clab weq wb equid dfsbcq2 ax-mp
      bitr2i vtoclbg ) ABEFZGZUAABHZIZABCGCUCIECDABUACJUACUCKUDABELZUBAEBMEENUE
      UBOEPABEUAQRST $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( The disjunction of two equivalences for class substitution does not
       require a class existence hypothesis.  This theorem tells us that there
       are only 2 possibilities for ` [ A / x ] ph ` behavior at proper
       classes, matching the ~ sbc5 (false) and ~ sbc6 (true) conclusions.
       This is interesting since ~ dfsbcq and ~ dfsbcq2 (from which it is
       derived) do not appear to say anything obvious about proper class
       behavior.  Note that this theorem does not tell us that it is always one
       or the other at proper classes; it could "flip" between false (the first
       disjunct) and true (the second disjunct) as a function of some other
       variable ` y ` that ` ph ` or ` A ` may contain.  (Contributed by NM,
       11-Oct-2004.)  (Proof modification is discouraged.) $)
    sbc2or $p |- ( ( [. A / x ]. ph <-> E. x ( x = A /\ ph ) ) \/
                  ( [. A / x ]. ph <-> A. x ( x = A -> ph ) ) ) $=
      ( vy cvv wcel wsbc cv wceq wa wex wb wi wal wo wsb weq wn mpbii con3i sb5
      dfsbcq2 eqeq2 anbi1d exbidv vtoclbg pm5.15 vex eleq1 adantr nexdv pm2.21d
      orcd alrimiv 2thd bibi2d orbi2d pm2.61i ) CEFZABCGZBHZCIZAJZBKZLZUTVBAMZB
      NZLZOZUSVEVHABDPBDQZAJZBKUTVDDCEABDCUBDHZCIZVKVCBVMVJVBAVLCVAUCUDUEABDUAU
      FUMUSRZVEUTVDRZLZOVIUTVDUGVNVPVHVEVNVOVGUTVNVOVGVNVCBVCUSVBUSAVBVAEFUSBUH
      VACEUISZUJTUKVNVFBVNVBAVBUSVQTULUNUOUPUQSUR $.
  $}

  $( Direct use of ~ df-sbc is allowed from here on. -NM $)

  $( By our definition of proper substitution, it can only be true if the
     substituted expression is a set.  (Contributed by Mario Carneiro,
     13-Oct-2016.) $)
  sbcex $p |- ( [. A / x ]. ph -> A e. _V ) $=
    ( wsbc cab wcel cvv df-sbc elex sylbi ) ABCDCABEZFCGFABCHCKIJ $.

  $( Equality theorem for class substitution.  Class version of ~ sbequ12 .
     (Contributed by NM, 26-Sep-2003.) $)
  sbceq1a $p |- ( x = A -> ( ph <-> [. A / x ]. ph ) ) $=
    ( wsb cv wceq wsbc sbid dfsbcq2 syl5bbr ) AABBDBECFABCGABHABBCIJ $.

  $( Equality theorem for class substitution.  Class version of ~ sbequ12r .
     (Contributed by NM, 4-Jan-2017.) $)
  sbceq2a $p |- ( A = x -> ( [. A / x ]. ph <-> ph ) ) $=
    ( cv wceq wsbc wb sbceq1a eqcoms bicomd ) CBDZEAABCFZALGKCABCHIJ $.

  ${
    $d ph y $.  $d A y $.  $d x y $.
    $( Specialization: if a formula is true for all sets, it is true for any
       class which is a set.  Similar to Theorem 6.11 of [Quine] p. 44.  This
       is Frege's ninth axiom per Proposition 58 of [Frege1879] p. 51.  See
       also ~ stdpc4 and ~ rspsbc .  (Contributed by NM, 16-Jan-2004.) $)
    spsbc $p |- ( A e. V -> ( A. x ph -> [. A / x ]. ph ) ) $=
      ( vy wal wsbc wi cv wceq wsb stdpc4 sbsbc sylib dfsbcq syl5ib vtocleg ) A
      BFZABCGZHECDRABEIZGZTCJSRABEKUAABELABEMNABTCOPQ $.

    spsbcd.1 $e |- ( ph -> A e. V ) $.
    spsbcd.2 $e |- ( ph -> A. x ps ) $.
    $( Specialization: if a formula is true for all sets, it is true for any
       class which is a set.  Similar to Theorem 6.11 of [Quine] p. 44.  See
       also ~ stdpc4 and ~ rspsbc .  (Contributed by Mario Carneiro,
       9-Feb-2017.) $)
    spsbcd $p |- ( ph -> [. A / x ]. ps ) $=
      ( wcel wal wsbc spsbc sylc ) ADEHBCIBCDJFGBCDEKL $.
  $}

  ${
    sbcth.1 $e |- ph $.
    $( A substitution into a theorem remains true (when ` A ` is a set).
       (Contributed by NM, 5-Nov-2005.) $)
    sbcth $p |- ( A e. V -> [. A / x ]. ph ) $=
      ( wcel wal wsbc ax-gen spsbc mpi ) CDFABGABCHABEIABCDJK $.
  $}

  ${
    $d x ph $.
    sbcthdv.1 $e |- ( ph -> ps ) $.
    $( Deduction version of ~ sbcth .  (Contributed by NM, 30-Nov-2005.)
       (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    sbcthdv $p |- ( ( ph /\ A e. V ) -> [. A / x ]. ps ) $=
      ( wal wcel wsbc alrimiv spsbc mpan9 ) ABCGDEHBCDIABCFJBCDEKL $.
  $}

  $( An identity theorem for substitution.  See ~ sbid .  (Contributed by Mario
     Carneiro, 18-Feb-2017.) $)
  sbcid $p |- ( [. x / x ]. ph <-> ph ) $=
    ( cv wsbc wsb sbsbc sbid bitr3i ) ABBCDABBEAABBFABGH $.

  ${
    nfsbc1d.2 $e |- ( ph -> F/_ x A ) $.
    $( Deduction version of ~ nfsbc1 .  (Contributed by NM, 23-May-2006.)
       (Revised by Mario Carneiro, 12-Oct-2016.) $)
    nfsbc1d $p |- ( ph -> F/ x [. A / x ]. ps ) $=
      ( wsbc cab wcel df-sbc wnfc nfab1 a1i nfeld nfxfrd ) BCDFDBCGZHACBCDIACDO
      ECOJABCKLMN $.
  $}

  ${
    nfsbc1.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for class substitution.  (Contributed
       by NM, 5-Aug-1993.)  (Revised by Mario Carneiro, 12-Oct-2016.) $)
    nfsbc1 $p |- F/ x [. A / x ]. ph $=
      ( wsbc wnf wtru wnfc a1i nfsbc1d trud ) ABCEBFGABCBCHGDIJK $.
  $}

  ${
    $d x A $.
    $( Bound-variable hypothesis builder for class substitution.  (Contributed
       by Mario Carneiro, 12-Oct-2016.) $)
    nfsbc1v $p |- F/ x [. A / x ]. ph $=
      ( nfcv nfsbc1 ) ABCBCDE $.
  $}

  ${
    nfsbcd.1 $e |- F/ y ph $.
    nfsbcd.2 $e |- ( ph -> F/_ x A ) $.
    nfsbcd.3 $e |- ( ph -> F/ x ps ) $.
    $( Deduction version of ~ nfsbc .  (Contributed by NM, 23-Nov-2005.)
       (Revised by Mario Carneiro, 12-Oct-2016.) $)
    nfsbcd $p |- ( ph -> F/ x [. A / y ]. ps ) $=
      ( wsbc cab wcel df-sbc nfabd nfeld nfxfrd ) BDEIEBDJZKACBDELACEPGABCDFHMN
      O $.
  $}

  ${
    nfsbc.1 $e |- F/_ x A $.
    nfsbc.2 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for class substitution.  (Contributed
       by NM, 7-Sep-2014.)  (Revised by Mario Carneiro, 12-Oct-2016.) $)
    nfsbc $p |- F/ x [. A / y ]. ph $=
      ( wsbc wnf wtru nftru wnfc a1i nfsbcd trud ) ACDGBHIABCDCJBDKIELABHIFLMN
      $.
  $}

  ${
    $d x z $.  $d z A $.  $d y z ph $.
    $( A composition law for class substitution.  (Contributed by NM,
       26-Sep-2003.)  (Revised by Mario Carneiro, 13-Oct-2016.) $)
    sbcco $p |- ( [. A / y ]. [. y / x ]. ph <-> [. A / x ]. ph ) $=
      ( vz cv wsbc cvv wcel sbcex dfsbcq wsb sbsbc sbbii sbco2 3bitr3ri vtoclbg
      nfv bitri pm5.21nii ) ABCFGZCDGZDHIABDGZUACDJABDJUACEFZGZABUDGZUBUCEDHUAC
      UDDKABUDDKUEABELZUFABCLZCELUACELUGUEUHUACEABCMNABECACROUACEMPABEMSQT $.
  $}

  ${
    $d x y $.  $d y ph $.  $d A y $.
    sbcco2.1 $e |- ( x = y -> A = B ) $.
    $( A composition law for class substitution.  Importantly, ` x ` may occur
       free in the class expression substituted for ` A ` .  (Contributed by
       NM, 5-Sep-2004.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    sbcco2 $p |- ( [. x / y ]. [. B / x ]. ph <-> [. A / x ]. ph ) $=
      ( wsbc cv wsb sbsbc nfv weq wceq wb equcoms dfsbcq bicomd syl sbie bitr3i
      ) ABEGZCBHGUACBIABDGZUACBJUAUBCBUBCKCBLDEMZUAUBNUCBCFOUCUBUAABDEPQRST $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( An equivalence for class substitution.  (Contributed by NM,
       23-Aug-1993.)  (Revised by Mario Carneiro, 12-Oct-2016.) $)
    sbc5 $p |- ( [. A / x ]. ph <-> E. x ( x = A /\ ph ) ) $=
      ( vy wsbc cvv wcel cv wceq wex sbcex exsimpl isset sylibr wsb weq dfsbcq2
      wa eqeq2 anbi1d exbidv sb5 vtoclbg pm5.21nii ) ABCEZCFGZBHZCIZARZBJZABCKU
      JUHBJUFUHABLBCMNABDOBDPZARZBJUEUJDCFABDCQDHZCIZULUIBUNUKUHAUMCUGSTUAABDUB
      UCUD $.
  $}

  ${
    $d x A $.
    $( An equivalence for class substitution.  (Contributed by NM,
       11-Oct-2004.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    sbc6g $p |- ( A e. V -> ( [. A / x ]. ph <-> A. x ( x = A -> ph ) ) ) $=
      ( wcel cv wceq wi wal wa wex wsbc alexeqg sbc5 syl6rbbr ) CDEBFCGZAHBIPAJ
      BKABCLABCDMABCNO $.
  $}

  ${
    $d x A $.
    sbc6.1 $e |- A e. _V $.
    $( An equivalence for class substitution.  (Contributed by NM,
       23-Aug-1993.)  (Proof shortened by Eric Schmidt, 17-Jan-2007.) $)
    sbc6 $p |- ( [. A / x ]. ph <-> A. x ( x = A -> ph ) ) $=
      ( cvv wcel wsbc cv wceq wi wal wb sbc6g ax-mp ) CEFABCGBHCIAJBKLDABCEMN
      $.
  $}

  ${
    $d y A $.  $d y ph $.  $d x y $.
    $( An equivalence for class substitution in the spirit of ~ df-clab .  Note
       that ` x ` and ` A ` don't have to be distinct.  (Contributed by NM,
       18-Nov-2008.)  (Revised by Mario Carneiro, 13-Oct-2016.) $)
    sbc7 $p |- ( [. A / x ]. ph <-> E. y ( y = A /\ [. y / x ]. ph ) ) $=
      ( wsbc cv wceq wa wex sbcco sbc5 bitr3i ) ABDEABCFZEZCDEMDGNHCIABCDJNCDKL
      $.
  $}

  ${
    cbvsbc.1 $e |- F/ y ph $.
    cbvsbc.2 $e |- F/ x ps $.
    cbvsbc.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change bound variables in a wff substitution.  (Contributed by Jeff
       Hankins, 19-Sep-2009.)  (Proof shortened by Andrew Salmon,
       8-Jun-2011.) $)
    cbvsbc $p |- ( [. A / x ]. ph <-> [. A / y ]. ps ) $=
      ( cab wcel wsbc cbvab eleq2i df-sbc 3bitr4i ) EACIZJEBDIZJACEKBDEKPQEABCD
      FGHLMACENBDENO $.
  $}

  ${
    $d y ph $.  $d x ps $.
    cbvsbcv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change the bound variable of a class substitution using implicit
       substitution.  (Contributed by NM, 30-Sep-2008.)  (Revised by Mario
       Carneiro, 13-Oct-2016.) $)
    cbvsbcv $p |- ( [. A / x ]. ph <-> [. A / y ]. ps ) $=
      ( nfv cbvsbc ) ABCDEADGBCGFH $.
  $}

  ${
    $d x A $.
    $( Conversion of implicit substitution to explicit class substitution,
       using a bound-variable hypothesis instead of distinct variables.
       (Closed theorem version of ~ sbciegf .)  (Contributed by NM,
       10-Nov-2005.)  (Revised by Mario Carneiro, 13-Oct-2016.) $)
    sbciegft $p |- ( ( A e. V /\ F/ x ps /\
            A. x ( x = A -> ( ph <-> ps ) ) ) -> ( [. A / x ]. ph <-> ps ) ) $=
      ( wcel wnf cv wceq wb wi wal w3a wsbc imim2i alimi biimpa sylan2 3adant1
      wa wex sbc5 biimp impd 19.23t syl5bi biimpr com23 19.21t 3ad2ant1 sylibrd
      sbc6g impbid ) DEFZBCGZCHDIZABJZKZCLZMZACDNZBVAUPATZCUAZUTBACDUBUOUSVCBKZ
      UNUSUOVBBKZCLZVDURVECURUPABUQABKUPABUCOUDPUOVFVDVBBCUEQRSUFUTBUPAKZCLZVAU
      OUSBVHKZUNUSUOBVGKZCLZVIURVJCURUPBAUQBAKUPABUGOUHPUOVKVIBVGCUIQRSUNUOVAVH
      JUSACDEULUJUKUM $.
  $}

  ${
    $d x A $.
    sbciegf.1 $e |- F/ x ps $.
    sbciegf.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by NM, 14-Dec-2005.)  (Revised by Mario Carneiro,
       13-Oct-2016.) $)
    sbciegf $p |- ( A e. V -> ( [. A / x ]. ph <-> ps ) ) $=
      ( wcel wnf cv wceq wb wi wal wsbc ax-gen sbciegft mp3an23 ) DEHBCICJDKABL
      MZCNACDOBLFSCGPABCDEQR $.
  $}

  ${
    $d x A $.  $d x ps $.
    sbcieg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by NM, 10-Nov-2005.) $)
    sbcieg $p |- ( A e. V -> ( [. A / x ]. ph <-> ps ) ) $=
      ( nfv sbciegf ) ABCDEBCGFH $.
  $}

  ${
    $d x y $.  $d A y $.  $d ch y $.  $d ph y $.  $d ps x $.
    sbcie2g.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    sbcie2g.2 $e |- ( y = A -> ( ps <-> ch ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       This version of ~ sbcie avoids a disjointness condition on ` x , A ` by
       substituting twice.  (Contributed by Mario Carneiro, 15-Oct-2016.) $)
    sbcie2g $p |- ( A e. V -> ( [. A / x ]. ph <-> ch ) ) $=
      ( cv wsbc dfsbcq wsb sbsbc nfv sbie bitr3i vtoclbg ) ADEJZKZBADFKCEFGADSF
      LITADEMBADENABDEBDOHPQR $.
  $}

  ${
    $d x A $.  $d x ps $.
    sbcie.1 $e |- A e. _V $.
    sbcie.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by NM, 4-Sep-2004.) $)
    sbcie $p |- ( [. A / x ]. ph <-> ps ) $=
      ( cvv wcel wsbc wb sbcieg ax-mp ) DGHACDIBJEABCDGFKL $.
  $}

  ${
    $d x A $.
    sbcied.1 $e |- ( ph -> A e. V ) $.
    sbcied.2 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    ${
      sbciedf.3 $e |- F/ x ph $.
      sbciedf.4 $e |- ( ph -> F/ x ch ) $.
      $( Conversion of implicit substitution to explicit class substitution,
         deduction form.  (Contributed by NM, 29-Dec-2014.) $)
      sbciedf $p |- ( ph -> ( [. A / x ]. ps <-> ch ) ) $=
        ( wcel wnf cv wceq wb wi wal wsbc ex alrimi sbciegft syl3anc ) AEFKCDLD
        MENZBCOZPZDQBDERCOGJAUEDIAUCUDHSTBCDEFUAUB $.
    $}

    $d x ph $.  $d x ch $.
    $( Conversion of implicit substitution to explicit class substitution,
       deduction form.  (Contributed by NM, 13-Dec-2014.) $)
    sbcied $p |- ( ph -> ( [. A / x ]. ps <-> ch ) ) $=
      ( nfv nfvd sbciedf ) ABCDEFGHADIACDJK $.
  $}

  ${
    $d x A $.  $d x ph $.  $d x ch $.
    sbcied2.1 $e |- ( ph -> A e. V ) $.
    sbcied2.2 $e |- ( ph -> A = B ) $.
    sbcied2.3 $e |- ( ( ph /\ x = B ) -> ( ps <-> ch ) ) $.
    $( Conversion of implicit substitution to explicit class substitution,
       deduction form.  (Contributed by NM, 13-Dec-2014.) $)
    sbcied2 $p |- ( ph -> ( [. A / x ]. ps <-> ch ) ) $=
      ( cv wceq wb id sylan9eqr syldan sbcied ) ABCDEGHADKZELZRFLBCMSAREFSNIOJP
      Q $.
  $}

  ${
    $d y A $.  $d y B $.  $d y ph $.  $d x y $.
    elrabsf.1 $e |- F/_ x B $.
    $( Membership in a restricted class abstraction, expressed with explicit
       class substitution.  (The variation ~ elrabf has implicit substitution).
       The hypothesis specifies that ` x ` must not be a free variable in
       ` B ` .  (Contributed by NM, 30-Sep-2003.)  (Proof shortened by Mario
       Carneiro, 13-Oct-2016.) $)
    elrabsf $p |- ( A e. { x e. B | ph }
          <-> ( A e. B /\ [. A / x ]. ph ) ) $=
      ( vy cv wsbc crab dfsbcq nfcv nfv nfsbc1v sbceq1a cbvrab elrab2 ) ABFGZHZ
      ABCHFCDABDIABQCJARBFDEFDKAFLABQMABQNOP $.
  $}

  ${
    $d x y B $.  $d y A $.
    $( Substitution applied to an atomic wff.  Set theory version of ~ eqsb3 .
       (Contributed by Andrew Salmon, 29-Jun-2011.) $)
    eqsbc3 $p |- ( A e. V -> ( [. A / x ]. x = B <-> A = B ) ) $=
      ( vy cv wceq wsbc dfsbcq eqeq1 wsb sbsbc eqsb3 bitr3i vtoclbg ) AFCGZAEFZ
      HZQCGZPABHBCGEBDPAQBIQBCJRPAEKSPAELEACMNO $.
  $}

  ${
    $d x y $.  $d y A $.  $d y ph $.  $d y ps $.
    $( Move negation in and out of class substitution.  (Contributed by NM,
       16-Jan-2004.) $)
    sbcng $p |- ( A e. V -> ( [. A / x ]. -. ph <-> -. [. A / x ]. ph ) ) $=
      ( vy wn wsb wsbc dfsbcq2 cv wceq notbid sbn vtoclbg ) AFZBEGABEGZFOBCHABC
      HZFECDOBECIEJCKPQABECILABEMN $.

    $( Distribution of class substitution over implication.  (Contributed by
       NM, 16-Jan-2004.) $)
    sbcimg $p |- ( A e. V ->
     ( [. A / x ]. ( ph -> ps ) <-> ( [. A / x ]. ph -> [. A / x ]. ps ) ) ) $=
      ( vy wi wsb wsbc dfsbcq2 cv wceq imbi12d sbim vtoclbg ) ABGZCFHACFHZBCFHZ
      GPCDIACDIZBCDIZGFDEPCFDJFKDLQSRTACFDJBCFDJMABCFNO $.

    $( Distribution of class substitution over conjunction.  (Contributed by
       NM, 31-Dec-2016.)  (Revised by NM, 17-Aug-2018.) $)
    sbcan $p |- ( [. A / x ]. ( ph /\ ps )
        <-> ( [. A / x ]. ph /\ [. A / x ]. ps ) ) $=
      ( vy wa wsbc cvv wcel sbcex adantl dfsbcq2 cv wceq anbi12d sban pm5.21nii
      wsb vtoclbg ) ABFZCDGZDHIZACDGZBCDGZFZTCDJUDUBUCBCDJKTCERACERZBCERZFUAUEE
      DHTCEDLEMDNUFUCUGUDACEDLBCEDLOABCEPSQ $.

    $( Distribution of class substitution over disjunction.  (Contributed by
       NM, 31-Dec-2016.)  (Revised by NM, 17-Aug-2018.) $)
    sbcor $p |- ( [. A / x ]. ( ph \/ ps )
         <-> ( [. A / x ]. ph \/ [. A / x ]. ps ) ) $=
      ( vy wo wsbc cvv wcel sbcex jaoi wsb dfsbcq2 cv wceq orbi12d sbor vtoclbg
      pm5.21nii ) ABFZCDGZDHIZACDGZBCDGZFZTCDJUCUBUDACDJBCDJKTCELACELZBCELZFUAU
      EEDHTCEDMENDOUFUCUGUDACEDMBCEDMPABCEQRS $.

    $( Distribution of class substitution over biconditional.  (Contributed by
       Raph Levien, 10-Apr-2004.) $)
    sbcbig $p |- ( A e. V ->
   ( [. A / x ]. ( ph <-> ps ) <-> ( [. A / x ]. ph <-> [. A / x ]. ps ) ) ) $=
      ( vy wb wsb wsbc dfsbcq2 cv wceq bibi12d sbbi vtoclbg ) ABGZCFHACFHZBCFHZ
      GPCDIACDIZBCDIZGFDEPCFDJFKDLQSRTACFDJBCFDJMABCFNO $.
  $}

  $( Move negation in and out of class substitution.  One direction of ~ sbcng
     that holds for proper classes.  (Contributed by NM, 17-Aug-2018.) $)
  sbcn1 $p |- ( [. A / x ]. -. ph -> -. [. A / x ]. ph ) $=
    ( cvv wcel wn wsbc sbcex sbcng biimpd mpcom ) CDEZAFZBCGZABCGFZMBCHLNOABCDI
    JK $.

  $( Distribution of class substitution over implication.  One direction of
     ~ sbcimg that holds for proper classes.  (Contributed by NM,
     17-Aug-2018.) $)
  sbcim1 $p |- ( [. A / x ]. ( ph -> ps )
          -> ( [. A / x ]. ph -> [. A / x ]. ps ) ) $=
    ( cvv wcel wi wsbc sbcex sbcimg biimpd mpcom ) DEFZABGZCDHZACDHBCDHGZNCDIMO
    PABCDEJKL $.

  $( Distribution of class substitution over biconditional.  One direction of
     ~ sbcbig that holds for proper classes.  (Contributed by NM,
     17-Aug-2018.) $)
  sbcbi1 $p |- ( [. A / x ]. ( ph <-> ps )
       -> ( [. A / x ]. ph <-> [. A / x ]. ps ) ) $=
    ( cvv wcel wb wsbc sbcex sbcbig biimpd mpcom ) DEFZABGZCDHZACDHBCDHGZNCDIMO
    PABCDEJKL $.

  $( Substituting into equivalent wff's gives equivalent results.  (Contributed
     by Giovanni Mascellani, 9-Apr-2018.) $)
  sbcbi2 $p |- ( A. x ( ph <-> ps ) ->
       ( [. A / x ]. ph <-> [. A / x ]. ps ) ) $=
    ( wb wal cab wcel wsbc wceq abbi eleq2 sylbi df-sbc 3bitr4g ) ABECFZDACGZHZ
    DBCGZHZACDIBCDIPQSJRTEABCKQSDLMACDNBCDNO $.

  ${
    $d x z A $.  $d x y z $.  $d z ph $.
    $( Move universal quantifier in and out of class substitution.
       (Contributed by NM, 31-Dec-2016.)  (Revised by NM, 18-Aug-2018.) $)
    sbcal $p |- ( [. A / y ]. A. x ph <-> A. x [. A / y ]. ph ) $=
      ( vz wal wsbc cvv wcel sbcex sps dfsbcq2 cv wceq albidv vtoclbg pm5.21nii
      wsb sbal ) ABFZCDGZDHIZACDGZBFZTCDJUCUBBACDJKTCERACERZBFUAUDEDHTCEDLEMDNU
      EUCBACEDLOABCESPQ $.

    $( Move existential quantifier in and out of class substitution.
       (Contributed by NM, 21-May-2004.)  (Revised by NM, 18-Aug-2018.) $)
    sbcex2 $p |- ( [. A / y ]. E. x ph <-> E. x [. A / y ]. ph ) $=
      ( vz wex wsbc cvv wcel sbcex exlimiv wsb dfsbcq2 wceq exbidv sbex vtoclbg
      cv pm5.21nii ) ABFZCDGZDHIZACDGZBFZTCDJUCUBBACDJKTCELACELZBFUAUDEDHTCEDME
      RDNUEUCBACEDMOABCEPQS $.
  $}

  ${
    $d x B $.  $d x A $.
    $( Set theory version of ~ sbeqal1 .  (Contributed by Andrew Salmon,
       28-Jun-2011.) $)
    sbceqal $p |- ( A e. V -> ( A. x ( x = A -> x = B ) -> A = B ) ) $=
      ( wcel cv wceq wi wal wsbc spsbc sbcimg wb eqsbc3 mpbiri pm5.5 syl 3bitrd
      eqid sylibd ) BDEZAFZBGZUBCGZHZAIUEABJZBCGZUEABDKUAUFUCABJZUDABJZHZUIUGUC
      UDABDLUAUHUJUIMUAUHBBGBSABBDNOUHUIPQABCDNRT $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Theorem *14.121 in [WhiteheadRussell] p. 185.  (Contributed by Andrew
       Salmon, 28-Jun-2011.)  (Proof shortened by Wolf Lammen, 9-May-2013.) $)
    sbeqalb $p |- ( A e. V -> ( ( A. x ( ph <-> x = A ) /\ A. x ( ph <->
      x = B ) ) -> A = B ) ) $=
      ( cv wceq wb wal wa wi wcel bibi1 biimpa biimpd alanimi sbceqal syl5 ) AB
      FZCGZHZBIASDGZHZBIJTUBKZBICELCDGUAUCUDBUAUCJTUBUAUCTUBHATUBMNOPBCDEQR $.
  $}

  ${
    sbcbid.1 $e |- F/ x ph $.
    sbcbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building deduction rule for class substitution.  (Contributed by
       NM, 29-Dec-2014.) $)
    sbcbid $p |- ( ph -> ( [. A / x ]. ps <-> [. A / x ]. ch ) ) $=
      ( cab wcel wsbc abbid eleq2d df-sbc 3bitr4g ) AEBDHZIECDHZIBDEJCDEJAOPEAB
      CDFGKLBDEMCDEMN $.
  $}

  ${
    $d x ph $.
    sbcbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building deduction rule for class substitution.  (Contributed by
       NM, 29-Dec-2014.) $)
    sbcbidv $p |- ( ph -> ( [. A / x ]. ps <-> [. A / x ]. ch ) ) $=
      ( nfv sbcbid ) ABCDEADGFH $.
  $}

  ${
    sbcbii.1 $e |- ( ph <-> ps ) $.
    $( Formula-building inference rule for class substitution.  (Contributed by
       NM, 11-Nov-2005.) $)
    sbcbii $p |- ( [. A / x ]. ph <-> [. A / x ]. ps ) $=
      ( wsbc wb wtru a1i sbcbidv trud ) ACDFBCDFGHABCDABGHEIJK $.
  $}

  ${
    $d x B $.
    $( ~ eqsbc3 with setvar variable on right side of equals sign.
       (Contributed by Alan Sare, 24-Oct-2011.)  (Proof shortened by JJ,
       7-Jul-2021.) $)
    eqsbc3r $p |- ( A e. V -> ( [. A / x ]. B = x <-> B = A ) ) $=
      ( wcel cv wceq wsbc eqsbc3 eqcom sbcbii 3bitr4g ) BDEAFZCGZABHBCGCMGZABHC
      BGABCDIONABCMJKCBJL $.

    $( Obsolete proof of ~ eqsbc3r as of 7-Jul-2021.  This proof was
       automatically generated from the virtual deduction proof ~ eqsbc3rVD
       using a translation program.  (Contributed by Alan Sare, 24-Oct-2011.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    eqsbc3rOLD $p |- ( A e. V -> ( [. A / x ]. B = x <-> B = A ) ) $=
      ( wcel wceq wsbc eqcom sbcbii biimpi eqsbc3 syl5ib syl6ib syl6ibr sylibrd
      cv idd impbid ) BDEZCAPZFZABGZCBFZSUBBCFZUCUBTCFZABGZSUDUBUFUAUEABCTHIZJA
      BCDKZLBCHZMSUCUFUBSUCUDUFSUCUCUDSUCQUINUHOUGNR $.
  $}

  $( Distribution of class substitution over triple conjunction.  (Contributed
     by NM, 14-Dec-2006.)  (Revised by NM, 17-Aug-2018.) $)
  sbc3an $p |- ( [. A / x ]. ( ph /\ ps /\ ch ) <->
              ( [. A / x ]. ph /\ [. A / x ]. ps /\ [. A / x ]. ch ) ) $=
    ( w3a wsbc wa df-3an sbcbii sbcan anbi1i 3bitri bitr4i ) ABCFZDEGZADEGZBDEG
    ZHZCDEGZHZQRTFPABHZCHZDEGUBDEGZTHUAOUCDEABCIJUBCDEKUDSTABDEKLMQRTIN $.

  ${
    $d y A $.  $d x y B $.
    $( Class substitution into a membership relation.  (Contributed by NM,
       17-Aug-2018.) $)
    sbcel1v $p |- ( [. A / x ]. x e. B <-> A e. B ) $=
      ( vy wcel wsbc cvv sbcex elex wsb dfsbcq2 eleq1 clelsb3 vtoclbg pm5.21nii
      cv ) APCEZABFZBGEBCEZQABHBCIQADJDPZCERSDBGQADBKTBCLDACMNO $.
  $}

  ${
    $d y B $.  $d x y A $.
    $( Class substitution into a membership relation.  (Contributed by NM,
       17-Nov-2006.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    sbcel2gv $p |- ( B e. V -> ( [. B / x ]. A e. x <-> A e. B ) ) $=
      ( vy cv wcel eleq2 sbcie2g ) BAFZGBEFZGBCGAECDJKBHKCBHI $.

    $( Class substitution into a membership relation.  One direction of
       ~ sbcel2gv that holds for proper classes.  (Contributed by NM,
       17-Aug-2018.) $)
    sbcel21v $p |- ( [. B / x ]. A e. x -> A e. B ) $=
      ( cvv wcel cv wsbc sbcex sbcel2gv biimpd mpcom ) CDEZBAFEZACGZBCEZMACHLNO
      ABCDIJK $.
  $}

  ${
    $d x ph $.
    sbcimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Substitution analogue of Theorem 19.20 of [Margaris] p. 90 ( ~ alim ).
       (Contributed by NM, 11-Nov-2005.)  (Revised by NM, 17-Aug-2018.)  (Proof
       shortened by JJ, 7-Jul-2021.) $)
    sbcimdv $p |- ( ph -> ( [. A / x ]. ps -> [. A / x ]. ch ) ) $=
      ( wsbc cvv wcel sbcex wi wal alrimiv spsbc sbcim1 syl56 com3l mpdi ) ABDE
      GZEHIZCDEGZBDEJTASUAABCKZDLTUBDEGSUAKAUBDFMUBDEHNBCDEOPQR $.

    $( Obsolete proof of ~ sbcimdv as of 7-Jul-2021.  (Contributed by NM,
       11-Nov-2005.)  (Revised by NM, 17-Aug-2018.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    sbcimdvOLD $p |- ( ph -> ( [. A / x ]. ps -> [. A / x ]. ch ) ) $=
      ( cvv wcel wsbc wi wal alrimiv spsbc sbcim1 syl56 sbcex con3i pm2.21d a1d
      wn pm2.61i ) EGHZABDEIZCDEIZJZJABCJZDKUBUFDEIUEAUFDFLUFDEGMBCDENOUBTZUEAU
      GUCUDUCUBBDEPQRSUA $.
  $}

  ${
    $d x y $.  $d y A $.  $d y ph $.
    $( Substitution for a variable not free in a wff does not affect it.
       (Contributed by Mario Carneiro, 14-Oct-2016.) $)
    sbctt $p |- ( ( A e. V /\ F/ x ph ) -> ( [. A / x ]. ph <-> ph ) ) $=
      ( vy wcel wnf wsbc wb wsb wi wceq dfsbcq2 bibi1d imbi2d sbft vtoclg imp
      cv ) CDFABGZABCHZAIZTABEJZAIZKTUBKECDESCLZUDUBTUEUCUAAABECMNOABEPQR $.
  $}

  ${
    sbcgf.1 $e |- F/ x ph $.
    $( Substitution for a variable not free in a wff does not affect it.
       (Contributed by NM, 11-Oct-2004.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    sbcgf $p |- ( A e. V -> ( [. A / x ]. ph <-> ph ) ) $=
      ( wcel wnf wsbc wb sbctt mpan2 ) CDFABGABCHAIEABCDJK $.

    $( Substitution for a variable not free in antecedent affects only the
       consequent.  (Contributed by NM, 11-Oct-2004.) $)
    sbc19.21g $p |- ( A e. V ->
            ( [. A / x ]. ( ph -> ps ) <-> ( ph -> [. A / x ]. ps ) ) ) $=
      ( wcel wi wsbc sbcimg sbcgf imbi1d bitrd ) DEGZABHCDIACDIZBCDIZHAPHABCDEJ
      NOAPACDEFKLM $.
  $}

  ${
    $d x ph $.
    $( Substitution for a variable not occurring in a wff does not affect it.
       Distinct variable form of ~ sbcgf .  (Contributed by Alan Sare,
       10-Nov-2012.) $)
    sbcg $p |- ( A e. V -> ( [. A / x ]. ph <-> ph ) ) $=
      ( nfv sbcgf ) ABCDABEF $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x V $.  $d y W $.
    sbc2iegf.1 $e |- F/ x ps $.
    sbc2iegf.2 $e |- F/ y ps $.
    sbc2iegf.3 $e |- F/ x B e. W $.
    sbc2iegf.4 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by Mario Carneiro, 19-Dec-2013.) $)
    sbc2iegf $p |- ( ( A e. V /\ B e. W ) ->
            ( [. A / x ]. [. B / y ]. ph <-> ps ) ) $=
      ( wcel wa simpl cv wceq wb adantll nfv wsbc wnf a1i sbciedf nfan ) EGMZFH
      MZNZADFUAZBCEGUFUGOUGCPEQZUIBRUFUGUJNZABDFHUGUJOUJDPFQABRUGLSUKDTBDUBUKJU
      CUDSUFUGCUFCTKUEBCUBUHIUCUD $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y ps $.
    sbc2ie.1 $e |- A e. _V $.
    sbc2ie.2 $e |- B e. _V $.
    sbc2ie.3 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by NM, 16-Dec-2008.)  (Revised by Mario Carneiro,
       19-Dec-2013.) $)
    sbc2ie $p |- ( [. A / x ]. [. B / y ]. ph <-> ps ) $=
      ( cvv wcel wsbc wb nfv nfth sbc2iegf mp2an ) EJKFJKZADFLCELBMGHABCDEFJJBC
      NBDNRCHOIPQ $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y ph $.  $d x y ch $.
    sbc2iedv.1 $e |- A e. _V $.
    sbc2iedv.2 $e |- B e. _V $.
    sbc2iedv.3 $e |- ( ph -> ( ( x = A /\ y = B ) -> ( ps <-> ch ) ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by NM, 16-Dec-2008.)  (Proof shortened by Mario Carneiro,
       18-Oct-2016.) $)
    sbc2iedv $p |- ( ph -> ( [. A / x ]. [. B / y ]. ps <-> ch ) ) $=
      ( wsbc cvv wcel a1i cv wceq wa wb impl sbcied ) ABEGKCDFLFLMAHNADOFPZQZBC
      EGLGLMUBINAUAEOGPBCRJSTT $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d z C $.  $d x y z ps $.
    sbc3ie.1 $e |- A e. _V $.
    sbc3ie.2 $e |- B e. _V $.
    sbc3ie.3 $e |- C e. _V $.
    sbc3ie.4 $e |- ( ( x = A /\ y = B /\ z = C ) -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by Mario Carneiro, 19-Jun-2014.)  (Revised by Mario
       Carneiro, 29-Dec-2014.) $)
    sbc3ie $p |- ( [. A / x ]. [. B / y ]. [. C / z ]. ph <-> ps ) $=
      ( wsbc cv wceq wa cvv wcel a1i wb 3expa sbcied sbc2ie ) AEHMBCDFGIJCNFOZD
      NGOZPZABEHQHQRUFKSUDUEENHOABTLUAUBUC $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Lemma for ~ sbccom .  (Contributed by NM, 14-Nov-2005.)  (Revised by
       Mario Carneiro, 18-Oct-2016.) $)
    sbccomlem $p |- ( [. A / x ]. [. B / y ]. ph
         <-> [. B / y ]. [. A / x ]. ph ) $=
      ( cv wceq wa wex wsbc excom exdistr an12 exbii bitri 3bitr3i sbc5 3bitr4i
      19.42v sbcbii ) CFEGZAHZCIZBDJZBFDGZAHZBIZCEJZACEJZBDJABDJZCEJUEUCHBIZUAU
      GHZCIZUDUHUEUBHZCIBIUNBIZCIUKUMUNBCKUEUBBCLUOULCUOUAUFHZBIULUNUPBUEUAAMNU
      AUFBSONPUCBDQUGCEQRUIUCBDACEQTUJUGCEABDQTR $.
  $}

  ${
    $d w y z A $.  $d w x z B $.  $d w z ph $.  $d x y $.
    $( Commutative law for double class substitution.  (Contributed by NM,
       15-Nov-2005.)  (Proof shortened by Mario Carneiro, 18-Oct-2016.) $)
    sbccom $p |- ( [. A / x ]. [. B / y ]. ph
          <-> [. B / y ]. [. A / x ]. ph ) $=
      ( vw vz cv wsbc sbccomlem sbcbii bitri 3bitr3i sbcco ) ACFHZIZFEIZBDIZABG
      HZIZGDIZCEIZACEIZBDIABDIZCEIQBSIZGDIZUACOIZFEIZRUBTCOIZFEIZGDIUIGDIZFEIUF
      UHUIGFDEJUJUEGDUJPBSIZFEIUEUIULFEACBOSJKPFBESJLKUKUGFETGCDOJKMQBGDNUACFEN
      MQUCBDACFENKUAUDCEABGDNKM $.
  $}

  ${
    $d x y z $.  $d A z $.  $d B x z $.  $d V z $.  $d ph z $.
    $( Interchange class substitution and restricted quantifier.  (Contributed
       by NM, 1-Mar-2008.)  (Revised by David Abernethy, 22-Feb-2010.) $)
    sbcralt $p |- ( ( A e. V /\ F/_ y A ) ->
           ( [. A / x ]. A. y e. B ph <-> A. y e. B [. A / x ]. ph ) ) $=
      ( vz wral wsbc cv wcel wnfc wa sbcco simpl wsb wceq sbsbc nfcv wb sbequ12
      nfs1v nfral weq ralbidv bitr3i nfnfc1 nfcvd id nfeqd nfan1 dfsbcq2 adantl
      sbie ralbid adantll syl5bb sbcied syl5bbr ) ACEHZBDIUTBGJZIZGDIDFKZCDLZMZ
      ABDIZCEHZUTBGDNVEVBVGGDFVCVDOVBABGPZCEHZVEVADQZMVGVBUTBGPVIUTBGRUTVIBGVHB
      CEBESABGUBUCBGUDAVHCEABGUAUEUNUFVDVJVIVGTVCVDVJMVHVFCEVDVJCCDUGVDCVADVDCV
      AUHVDUIUJUKVJVHVFTVDABGDULUMUOUPUQURUS $.

    $( Interchange class substitution and restricted existential quantifier.
       (Contributed by NM, 1-Mar-2008.)  (Proof shortened by Mario Carneiro,
       13-Oct-2016.)  (Revised by NM, 18-Aug-2018.)  (Proof shortened by JJ,
       7-Jul-2021.) $)
    sbcrext $p |- ( F/_ y A ->
          ( [. A / x ]. E. y e. B ph <-> E. y e. B [. A / x ]. ph ) ) $=
      ( wnfc cvv wcel wrex wsbc wi sbcex a1i wb wral sbcng adantl bitrd dfrex2
      wn nfnfc1 id nfcvd nfeld cv 2a1i rexlimd2 wa sbcralt ancoms ralbid notbid
      nfan1 sbcbii 3bitr4g ex pm5.21ndd ) CDFZDGHZACEIZBDJZABDJZCEIZVAUSKURUTBD
      LMURVBUSCECDUAZURCDGURUBURCGUCUDZVBUSKURCUEEHABDLUFUGURUSVAVCNURUSUHZATZC
      EOZTZBDJZVBTZCEOZTZVAVCVFVJVHBDJZTZVMUSVJVONURVHBDGPQVFVNVLVFVNVGBDJZCEOZ
      VLUSURVNVQNVGBCDEGUIUJVFVPVKCEURUSCVDVEUMUSVPVKNURABDGPQUKRULRUTVIBDACESU
      NVBCESUOUPUQ $.

    $( Obsolete proof of ~ sbcrext as of 7-Jul-2021.  (Contributed by NM,
       1-Mar-2008.)  (Proof shortened by Mario Carneiro, 13-Oct-2016.)
       (Revised by NM, 18-Aug-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    sbcrextOLD $p |- ( F/_ y A ->
          ( [. A / x ]. E. y e. B ph <-> E. y e. B [. A / x ]. ph ) ) $=
      ( cvv wcel wnfc wrex wsbc wb wa wn wral sbcng adantr sbcralt bitrd dfrex2
      sbcex nfnfc1 nfcvd nfeld nfan1 adantl ralbid ancoms notbid sbcbii 3bitr4g
      id con3i wi cv 2a1i rexlimd2 con3rr3 imp 2falsed pm2.61ian ) DFGZCDHZACEI
      ZBDJZABDJZCEIZKVAVBLZAMZCENZMZBDJZVEMZCENZMZVDVFVGVKVIBDJZMZVNVAVKVPKVBVI
      BDFOPVGVOVMVGVOVHBDJZCENZVMVHBCDEFQVBVAVRVMKVBVALVQVLCEVBVACCDUAZVBCDFVBU
      KVBCFUBUCZUDVAVQVLKVBABDFOUEUFUGRUHRVCVJBDACESUIVECESUJVAMZVBLVDVFWAVDMVB
      VDVAVCBDTULPWAVBVFMVBVFVAVBVEVACEVSVTVEVAUMVBCUNEGABDTUOUPUQURUSUT $.
  $}

  ${
    $d y z A $.  $d x B $.  $d x y z $.  $d ph z $.  $d B z $.
    $( Interchange class substitution and restricted quantifier.  (Contributed
       by NM, 15-Nov-2005.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    sbcralg $p |- ( A e. V ->
                 ( [. A / x ]. A. y e. B ph <-> A. y e. B [. A / x ]. ph ) ) $=
      ( wcel wnfc wral wsbc wb nfcv sbcralt mpan2 ) DFGCDHACEIBDJABDJCEIKCDLABC
      DEFMN $.

    $( Interchange class substitution and restricted existential quantifier.
       (Contributed by NM, 15-Nov-2005.)  (Revised by NM, 18-Aug-2018.) $)
    sbcrex $p |- ( [. A / x ]. E. y e. B ph <-> E. y e. B [. A / x ]. ph ) $=
      ( wnfc wrex wsbc wb nfcv sbcrext ax-mp ) CDFACEGBDHABDHCEGICDJABCDEKL $.

    $( Interchange class substitution and restricted uniqueness quantifier.
       (Contributed by NM, 24-Feb-2013.)  (Revised by NM, 18-Aug-2018.) $)
    sbcreu $p |- ( [. A / x ]. E! y e. B ph <-> E! y e. B [. A / x ]. ph ) $=
      ( vz wreu wsbc cvv wcel sbcex reurex rexlimivw syl wsb dfsbcq2 cv reubidv
      wrex wceq nfcv nfs1v nfreu weq sbequ12 sbie vtoclbg pm5.21nii ) ACEGZBDHZ
      DIJZABDHZCEGZUIBDKUMULCESUKULCELULUKCEABDKMNUIBFOABFOZCEGZUJUMFDIUIBFDPFQ
      DTUNULCEABFDPRUIUOBFUNBCEBEUAABFUBUCBFUDAUNCEABFUERUFUGUH $.
  $}

  ${
    $d w x y A $.  $d x y z A $.  $d y z ph $.  $d w ph $.  $d z ps $.
    $d w ps $.  $d y ch $.
    reu8nf.1 $e |- F/ x ps $.
    reu8nf.2 $e |- F/ x ch $.
    reu8nf.3 $e |- ( x = w -> ( ph <-> ch ) ) $.
    reu8nf.4 $e |- ( w = y -> ( ch <-> ps ) ) $.
    $( Restricted uniqueness using implicit substitution.  This version of
       ~ reu8 uses a non-freeness hypothesis for ` x ` and ` ps ` instead of
       distinct variable conditions.  (Contributed by AV, 21-Jan-2022.) $)
    reu8nf $p |- ( E! x e. A ph <-> E. x e. A ( ph /\
                A. y e. A ( ps -> x = y ) ) ) $=
      ( wreu weq wi wral wa wrex nfv cbvreu reu8 nfcv nfim nfral nfan wb bicomd
      equcoms equequ1 imbi2d ralbidv anbi12d cbvrex 3bitri ) ADGLCFGLCBFEMZNZEG
      OZPZFGQABDEMZNZEGOZPZDGQACDFGAFRIJSCBFEGKTUQVAFDGCUPDIUODEGDGUABUNDHUNDRU
      BUCUDVAFRFDMZCAUPUTCAUEDFDFMACJUFUGVBUOUSEGVBUNURBFDEUHUIUJUKULUM $.
  $}

  ${
    $d y w A $.  $d w B $.  $d w ph $.  $d x y $.  $d w x $.
    sbcabel.1 $e |- F/_ x B $.
    $( Interchange class substitution and class abstraction.  (Contributed by
       NM, 5-Nov-2005.) $)
    sbcabel $p |- ( A e. V -> ( [. A / x ]. { y | ph } e. B <->
                  { y | [. A / x ]. ph } e. B ) ) $=
      ( vw wcel cvv cab wsbc wb cv wceq wa wex wal syl5bb abeq2 elex sbcan sbcg
      sbcex2 sbcal sbcbig bibi1d bitrd albidv sbcbii 3bitr4g nfcri sbcgf exbidv
      anbi12d df-clel syl ) DFIDJIZACKZEIZBDLZABDLZCKZEIZMDFUAURHNZUSOZVEEIZPZH
      QZBDLZVEVCOZVGPZHQZVAVDVJVHBDLZHQURVMVHHBDUDURVNVLHVNVFBDLZVGBDLZPURVLVFV
      GBDUBURVOVKVPVGURCNVEIZAMZCRZBDLZVQVBMZCRZVOVKVTVRBDLZCRURWBVRCBDUEURWCWA
      CURWCVQBDLZVBMWAVQABDJUFURWDVQVBVQBDJUCUGUHUISVFVSBDACVETUJVBCVETUKVGBDJB
      HEGULUMUOSUNSUTVIBDHUSEUPUJHVCEUPUKUQ $.
  $}

  ${
    $d y A $.  $d x y B $.  $d y ph $.
    $( Restricted quantifier version of Axiom 4 of [Mendelson] p. 69.  This
       provides an axiom for a predicate calculus for a restricted domain.
       This theorem generalizes the unrestricted ~ stdpc4 and ~ spsbc .  See
       also ~ rspsbca and ~ rspcsbela .  (Contributed by NM, 17-Nov-2006.)
       (Proof shortened by Mario Carneiro, 13-Oct-2016.) $)
    rspsbc $p |- ( A e. B -> ( A. x e. B ph -> [. A / x ]. ph ) ) $=
      ( vy wral wsb wcel wsbc cbvralsv dfsbcq2 rspcv syl5bi ) ABDFABEGZEDFCDHAB
      CIZABEDJNOECDABECKLM $.

    $( Restricted quantifier version of Axiom 4 of [Mendelson] p. 69.
       (Contributed by NM, 14-Dec-2005.) $)
    rspsbca $p |- ( ( A e. B /\ A. x e. B ph ) -> [. A / x ]. ph ) $=
      ( wcel wral wsbc rspsbc imp ) CDEABDFABCGABCDHI $.

    $( Existence form of ~ rspsbca .  (Contributed by NM, 29-Feb-2008.)  (Proof
       shortened by Mario Carneiro, 13-Oct-2016.) $)
    rspesbca $p |- ( ( A e. B /\ [. A / x ]. ph ) -> E. x e. B ph ) $=
      ( vy wcel wsbc wa wsb wrex dfsbcq2 rspcev cbvrexsv sylibr ) CDFABCGZHABEI
      ZEDJABDJPOECDABECKLABEDMN $.

    $( Existence form of ~ spsbc .  (Contributed by Mario Carneiro,
       18-Nov-2016.) $)
    spesbc $p |- ( [. A / x ]. ph -> E. x ph ) $=
      ( wsbc cvv wrex wex wcel sbcex rspesbca mpancom rexv sylib ) ABCDZABEFZAB
      GCEHNOABCIABCEJKABLM $.

    spesbcd.1 $e |- ( ph -> [. A / x ]. ps ) $.
    $( form of ~ spsbc .  (Contributed by Mario Carneiro, 9-Feb-2017.) $)
    spesbcd $p |- ( ph -> E. x ps ) $=
      ( wsbc wex spesbc syl ) ABCDFBCGEBCDHI $.
  $}

  ${
    $d x B $.
    sbcth2.1 $e |- ( x e. B -> ph ) $.
    $( A substitution into a theorem.  (Contributed by NM, 1-Mar-2008.)  (Proof
       shortened by Mario Carneiro, 13-Oct-2016.) $)
    sbcth2 $p |- ( A e. B -> [. A / x ]. ph ) $=
      ( wcel wral wsbc rgen rspsbc mpi ) CDFABDGABCHABDEIABCDJK $.
  $}

  ${
    $d x ph $.
    $( Version of ~ ra4 with a dv condition, requiring fewer axioms.  This is
       ~ stdpc5v for a restricted domain.  (Contributed by BJ, 27-Mar-2020.) $)
    ra4v $p |- ( A. x e. A ( ph -> ps ) -> ( ph -> A. x e. A ps ) ) $=
      ( wi wral r19.21v biimpi ) ABECDFABCDFEABCDGH $.
  $}

  ${
    ra4.1 $e |- F/ x ph $.
    $( Restricted quantifier version of Axiom 5 of [Mendelson] p. 69.  This is
       the axiom ~ stdpc5 of standard predicate calculus for a restricted
       domain.  See ~ ra4v for a version requiring fewer axioms.  (Contributed
       by NM, 16-Jan-2004.)  (Proof shortened by BJ, 27-Mar-2020.) $)
    ra4 $p |- ( A. x e. A ( ph -> ps ) -> ( ph -> A. x e. A ps ) ) $=
      ( wi wral r19.21 biimpi ) ABFCDGABCDGFABCDEHI $.
  $}

  ${
    $d x y A $.
    rmo2.1 $e |- F/ y ph $.
    $( Alternate definition of restricted "at most one."  Note that
       ` E* x e. A ph ` is not equivalent to
       ` E. y e. A A. x e. A ( ph -> x = y ) ` (in analogy to ~ reu6 ); to see
       this, let ` A ` be the empty set.  However, one direction of this
       pattern holds; see ~ rmo2i .  (Contributed by NM, 17-Jun-2017.) $)
    rmo2 $p |- ( E* x e. A ph <-> E. y A. x e. A ( ph -> x = y ) ) $=
      ( wrmo cv wcel wa wmo weq wi wal wex wral df-rmo nfv nfan mo2 impexp
      albii df-ral bitr4i exbii 3bitri ) ABDFBGDHZAIZBJUGBCKZLZBMZCNAUHLZBDOZCN
      ABDPUGBCUFACUFCQERSUJULCUJUFUKLZBMULUIUMBUFAUHTUAUKBDUBUCUDUE $.

    $( Condition implying restricted "at most one."  (Contributed by NM,
       17-Jun-2017.) $)
    rmo2i $p |- ( E. y e. A A. x e. A ( ph -> x = y ) -> E* x e. A ph ) $=
      ( weq wi wral wrex wex wrmo rexex rmo2 sylibr ) ABCFGBDHZCDIOCJABDKOCDLAB
      CDEMN $.

    $( Restricted "at most one" using explicit substitution.  (Contributed by
       NM, 4-Nov-2012.)  (Revised by NM, 16-Jun-2017.) $)
    rmo3 $p |- ( E* x e. A ph <->
               A. x e. A A. y e. A ( ( ph /\ [ y / x ] ph ) -> x = y ) ) $=
      ( wrmo cv wcel wa wmo wsb wi wral anbi1i bitri 3bitri impexp albii df-ral
      wal weq df-rmo sban clelsb3 anbi2i an4 ancom r19.21v 3bitr2i nfv nfan mo3
      imbi1i 3bitr4i ) ABDFBGDHZAIZBJZAABCKZIZBCUAZLZCDMZBDMZABDUBUPUPBCKZIZUTL
      ZCTZBTUOVBLZBTUQVCVGVHBVGCGDHZUOVALZLZCTVJCDMVHVFVKCVFVIUOIZUSIZUTLVLVALV
      KVEVMUTVEUPVIURIZIUOVIIZUSIVMVDVNUPVDUOBCKZURIVNUOABCUCVPVIURCBDUDNOUEUOA
      VIURUFVOVLUSUOVIUGNPUMVLUSUTQVIUOVAQPRVJCDSUOVACDUHUIRUPBCUOACUOCUJEUKULV
      BBDSUNO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ps $.  $d x ch $.
    rmoi.b $e |- ( x = B -> ( ph <-> ps ) ) $.
    rmoi.c $e |- ( x = C -> ( ph <-> ch ) ) $.
    $( Consequence of "at most one", using implicit substitution.  (Contributed
       by NM, 2-Jan-2015.)  (Revised by NM, 16-Jun-2017.) $)
    rmob $p |- ( ( E* x e. A ph /\ ( B e. A /\ ps ) ) ->
        ( B = C <-> ( C e. A /\ ch ) ) ) $=
      ( wrmo cv wcel wa wmo wceq wb df-rmo simprl eleq1 anbi12d syl5ibcom simpl
      wi a1i anim1i simpll simplr mob syl3anc ex pm5.21ndd sylanb ) ADEJDKZELZA
      MZDNZFELZBMZFGOZGELZCMZPZADEQUPURMZUTUSVAVCUQUSUTUPUQBRZFGESUAVAUTUCVCUTC
      UBUDVCUTVBVCUTMUQUTMUPURVBVCUQUTVDUEUPURUTUFUPURUTUGUOURVADFGEEUMFOUNUQAB
      UMFESHTUMGOUNUTACUMGESITUHUIUJUKUL $.

    $( Consequence of "at most one", using implicit substitution.  (Contributed
       by NM, 4-Nov-2012.)  (Revised by NM, 16-Jun-2017.) $)
    rmoi $p |- ( ( E* x e. A ph
          /\ ( B e. A /\ ps ) /\ ( C e. A /\ ch ) ) -> B = C ) $=
      ( wrmo wcel wa wceq rmob biimp3ar ) ADEJFEKBLFGMGEKCLABCDEFGHINO $.
  $}

  ${
    $d A x $.  $d B x $.  $d ch x $.
    rmoi2.1 $e |- ( x = B -> ( ps <-> ch ) ) $.
    rmoi2.2 $e |- ( ph -> B e. A ) $.
    rmoi2.3 $e |- ( ph -> E* x e. A ps ) $.
    rmoi2.4 $e |- ( ph -> x e. A ) $.
    rmoi2.5 $e |- ( ph -> ps ) $.
    $( Consequence of "restricted at most one."  (Contributed by Thierry
       Arnoux, 9-Dec-2019.) $)
    rmob2 $p |- ( ph -> ( x = B <-> ch ) ) $=
      ( cv wceq wcel wa wmo wb wrmo df-rmo sylib eleq1 mob2 syl112anc mpbirand
      anbi12d ) ADLZFMZFENZCHAUHUFENZBOZDPZUIBUGUHCOZQHABDERUKIBDESTJKUJULDFEUG
      UIUHBCUFFEUAGUEUBUCUD $.

    rmoi2.6 $e |- ( ph -> ch ) $.
    $( Consequence of "restricted at most one."  (Contributed by Thierry
       Arnoux, 9-Dec-2019.) $)
    rmoi2 $p |- ( ph -> x = B ) $=
      ( cv wceq rmob2 mpbird ) ADMFNCLABCDEFGHIJKOP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Proper substitution of classes for sets into classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c [_ $.  $( Underlined left bracket $)
  $c ]_ $.  $( Underlined right bracket $)

  $( Extend class notation to include the proper substitution of a class for a
     set into another class. $)
  csb $a class [_ A / x ]_ B $.

  $( Indicate that "x" is not bound in "A" in the definition of csb.
     This is similar to $d x A $. $)
  $( $j free_var_in 'csb' with 'A' 'x'; $)

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( Define the proper substitution of a class for a set into another class.
       The underlined brackets distinguish it from the substitution into a wff,
       ~ wsbc , to prevent ambiguity.  Theorem ~ sbcel1g shows an example of
       how ambiguity could arise if we didn't use distinguished brackets.
       Theorem ~ sbccsb recreates substitution into a wff from this definition.
       (Contributed by NM, 10-Nov-2005.) $)
    df-csb $a |- [_ A / x ]_ B = { y | [. A / x ]. y e. B } $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y $.
    $( Alternate expression for the proper substitution into a class, without
       referencing substitution into a wff.  Note that ` x ` can be free in
       ` B ` but cannot occur in ` A ` .  (Contributed by NM, 2-Dec-2013.) $)
    csb2 $p |- [_ A / x ]_ B = { y | E. x ( x = A /\ y e. B ) } $=
      ( csb cv wcel wsbc cab wceq wa wex df-csb sbc5 abbii eqtri ) ACDEBFDGZACH
      ZBIAFCJQKALZBIABCDMRSBQACNOP $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    $( Analogue of ~ dfsbcq for proper substitution into a class.  (Contributed
       by NM, 10-Nov-2005.) $)
    csbeq1 $p |- ( A = B -> [_ A / x ]_ C = [_ B / x ]_ C ) $=
      ( vy wceq cv wcel wsbc cab csb dfsbcq abbidv df-csb 3eqtr4g ) BCFZEGDHZAB
      IZEJQACIZEJABDKACDKPRSEQABCLMAEBDNAECDNO $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    $( Substituting into equivalent classes gives equivalent results.
       (Contributed by Giovanni Mascellani, 9-Apr-2018.) $)
    csbeq2 $p |- ( A. x B = C -> [_ A / x ]_ B = [_ A / x ]_ C ) $=
      ( vy wceq wal cv wcel cab csb wb eleq2 alimi sbcbi2 abbidv df-csb 3eqtr4g
      wsbc syl ) CDFZAGZEHZCIZABSZEJUCDIZABSZEJABCKABDKUBUEUGEUBUDUFLZAGUEUGLUA
      UHACDUCMNUDUFABOTPAEBCQAEBDQR $.
  $}

  ${
    $d x z $.  $d y z $.  $d z A $.  $d z C $.  $d z D $.
    cbvcsb.1 $e |- F/_ y C $.
    cbvcsb.2 $e |- F/_ x D $.
    cbvcsb.3 $e |- ( x = y -> C = D ) $.
    $( Change bound variables in a class substitution.  Interestingly, this
       does not require any bound variable conditions on ` A ` .  (Contributed
       by Jeff Hankins, 13-Sep-2009.)  (Revised by Mario Carneiro,
       11-Dec-2016.) $)
    cbvcsb $p |- [_ A / x ]_ C = [_ A / y ]_ D $=
      ( vz cv wcel wsbc cab csb nfcri weq eleq2d cbvsbc abbii df-csb 3eqtr4i )
      IJZDKZACLZIMUBEKZBCLZIMACDNBCENUDUFIUCUEABCBIDFOAIEGOABPDEUBHQRSAICDTBICE
      TUA $.
  $}

  ${
    $d x y $.  $d y B $.  $d x C $.
    cbvcsbv.1 $e |- ( x = y -> B = C ) $.
    $( Change the bound variable of a proper substitution into a class using
       implicit substitution.  (Contributed by NM, 30-Sep-2008.)  (Revised by
       Mario Carneiro, 13-Oct-2016.) $)
    cbvcsbv $p |- [_ A / x ]_ B = [_ A / y ]_ C $=
      ( nfcv cbvcsb ) ABCDEBDGAEGFH $.
  $}

  ${
    csbeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for proper substitution into a class.  (Contributed
       by NM, 3-Dec-2005.) $)
    csbeq1d $p |- ( ph -> [_ A / x ]_ C = [_ B / x ]_ C ) $=
      ( wceq csb csbeq1 syl ) ACDGBCEHBDEHGFBCDEIJ $.
  $}

  ${
    $d x y $.  $d y A $.
    $( Analogue of ~ sbid for proper substitution into a class.  (Contributed
       by NM, 10-Nov-2005.) $)
    csbid $p |- [_ x / x ]_ A = A $=
      ( vy cv csb wcel wsbc cab df-csb sbcid abbii abid2 3eqtri ) AADZBECDBFZAN
      GZCHOCHBACNBIPOCOAJKCBLM $.
  $}

  $( Equality theorem for proper substitution into a class.  (Contributed by
     NM, 10-Nov-2005.) $)
  csbeq1a $p |- ( x = A -> B = [_ A / x ]_ B ) $=
    ( cv wceq csb csbid csbeq1 syl5eqr ) ADZBECAJCFABCFACGAJBCHI $.

  ${
    $d z A $.  $d y z B $.  $d x z $.
    $( Composition law for chained substitutions into a class.  (Contributed by
       NM, 10-Nov-2005.) $)
    csbco $p |- [_ A / y ]_ [_ y / x ]_ B = [_ A / x ]_ B $=
      ( vz cv csb wcel wsbc cab df-csb abeq2i sbcbii sbcco bitri abbii 3eqtr4i
      ) EFZABFZDGZHZBCIZEJRDHZACIZEJBCTGACDGUBUDEUBUCASIZBCIUDUAUEBCUEETAESDKLM
      UCABCNOPBECTKAECDKQ $.
  $}

  ${
    $d y A $.  $d y B $.  $d y V $.  $d x y $.
    $( Substitution doesn't affect a constant ` B ` (in which ` x ` is not
       free).  (Contributed by Mario Carneiro, 14-Oct-2016.) $)
    csbtt $p |- ( ( A e. V /\ F/_ x B ) -> [_ A / x ]_ B = B ) $=
      ( vy wcel wnfc wa csb cv wsbc cab df-csb wnf wb nfcr sbctt sylan2 abbi1dv
      syl5eq ) BDFZACGZHZABCIEJCFZABKZELCAEBCMUCUEECUBUAUDANUEUDOAECPUDABDQRST
      $.
  $}

  ${
    csbconstgf.1 $e |- F/_ x B $.
    $( Substitution doesn't affect a constant ` B ` (in which ` x ` is not
       free).  (Contributed by NM, 10-Nov-2005.) $)
    csbconstgf $p |- ( A e. V -> [_ A / x ]_ B = B ) $=
      ( wcel wnfc csb wceq csbtt mpan2 ) BDFACGABCHCIEABCDJK $.
  $}

  ${
    $d B x $.
    $( Substitution doesn't affect a constant ` B ` (in which ` x ` does not
       occur). ~ csbconstgf with distinct variable requirement.  (Contributed
       by Alan Sare, 22-Jul-2012.) $)
    csbconstg $p |- ( A e. V -> [_ A / x ]_ B = B ) $=
      ( nfcv csbconstgf ) ABCDACEF $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y ph $.
    nfcsb1d.1 $e |- ( ph -> F/_ x A ) $.
    $( Bound-variable hypothesis builder for substitution into a class.
       (Contributed by Mario Carneiro, 12-Oct-2016.) $)
    nfcsb1d $p |- ( ph -> F/_ x [_ A / x ]_ B ) $=
      ( vy csb cv wcel wsbc cab df-csb nfv nfsbc1d nfabd nfcxfrd ) ABBCDGFHDIZB
      CJZFKBFCDLARBFAFMAQBCENOP $.
  $}

  ${
    nfcsb1.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for substitution into a class.
       (Contributed by Mario Carneiro, 12-Oct-2016.) $)
    nfcsb1 $p |- F/_ x [_ A / x ]_ B $=
      ( csb wnfc wtru a1i nfcsb1d trud ) AABCEFGABCABFGDHIJ $.
  $}

  ${
    $d x A $.
    $( Bound-variable hypothesis builder for substitution into a class.
       (Contributed by NM, 17-Aug-2006.)  (Revised by Mario Carneiro,
       12-Oct-2016.) $)
    nfcsb1v $p |- F/_ x [_ A / x ]_ B $=
      ( nfcv nfcsb1 ) ABCABDE $.
  $}

  ${
    $d x z $.  $d y z $.  $d z A $.  $d z B $.  $d z ph $.
    nfcsbd.1 $e |- F/ y ph $.
    nfcsbd.2 $e |- ( ph -> F/_ x A ) $.
    nfcsbd.3 $e |- ( ph -> F/_ x B ) $.
    $( Deduction version of ~ nfcsb .  (Contributed by NM, 21-Nov-2005.)
       (Revised by Mario Carneiro, 12-Oct-2016.) $)
    nfcsbd $p |- ( ph -> F/_ x [_ A / y ]_ B ) $=
      ( vz csb cv wcel wsbc cab df-csb nfv nfcrd nfsbcd nfabd nfcxfrd ) ABCDEJI
      KELZCDMZINCIDEOAUBBIAIPAUABCDFGABIEHQRST $.
  $}

  ${
    nfcsb.1 $e |- F/_ x A $.
    nfcsb.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for substitution into a class.
       (Contributed by Mario Carneiro, 12-Oct-2016.) $)
    nfcsb $p |- F/_ x [_ A / y ]_ B $=
      ( csb wnfc wtru nftru a1i nfcsbd trud ) ABCDGHIABCDBJACHIEKADHIFKLM $.
  $}

  ${
    $d x y $.
    csbhypf.1 $e |- F/_ x A $.
    csbhypf.2 $e |- F/_ x C $.
    csbhypf.3 $e |- ( x = A -> B = C ) $.
    $( Introduce an explicit substitution into an implicit substitution
       hypothesis.  See ~ sbhypf for class substitution version.  (Contributed
       by NM, 19-Dec-2008.) $)
    csbhypf $p |- ( y = A -> [_ y / x ]_ B = C ) $=
      ( cv wceq wi csb nfeq2 nfcsb1v nfeq nfim eqeq1 csbeq1a eqeq1d imbi12d
      chvar ) AIZCJZDEJZKBIZCJZAUEDLZEJZKABUFUHAAUECFMAUGEAUEDNGOPUBUEJZUCUFUDU
      HUBUECQUIDUGEAUEDRSTHUA $.
  $}

  ${
    $d x A $.
    $( Conversion of implicit substitution to explicit substitution into a
       class.  (Closed theorem version of ~ csbiegf .)  (Contributed by NM,
       11-Nov-2005.) $)
    csbiebt $p |- ( ( A e. V /\ F/_ x C ) ->
                 ( A. x ( x = A -> B = C ) <-> [_ A / x ]_ B = C ) ) $=
      ( wcel cvv wnfc cv wceq wi wal csb wb elex wa wsbc adantl a1i nfeqd spsbc
      adantr simpl biimt csbeq1a eqeq1d bitr3d nfv nfnfc1 nfcsb1v simpr sbciedf
      nfan sylibd id nfan1 biimprcd alrimi ex impbid sylan ) BEFBGFZADHZAIBJZCD
      JZKZALZABCMZDJZNBEOVBVCPZVGVIVJVGVFABQZVIVBVGVKKVCVFABGUAUBVJVFVIABGVBVCU
      CVDVFVINVJVDVEVFVIVDVEUDVDCVHDABCUEUFZUGRVBVCAVBAUHADUIZUMVJAVHDAVHHZVJAB
      CUJZSVBVCUKTULUNVCVIVGKVBVCVIVGVCVIPVFAVCVIAVMVCAVHDVNVCVOSVCUOTUPVIVFVCV
      DVEVIVLUQRURUSRUTVA $.

    csbiedf.1 $e |- F/ x ph $.
    csbiedf.2 $e |- ( ph -> F/_ x C ) $.
    csbiedf.3 $e |- ( ph -> A e. V ) $.
    csbiedf.4 $e |- ( ( ph /\ x = A ) -> B = C ) $.
    $( Conversion of implicit substitution to explicit substitution into a
       class.  (Contributed by Mario Carneiro, 13-Oct-2016.) $)
    csbiedf $p |- ( ph -> [_ A / x ]_ B = C ) $=
      ( cv wceq wi wal csb ex alrimi wcel wnfc wb csbiebt syl2anc mpbid ) ABKCL
      ZDELZMZBNZBCDOELZAUFBGAUDUEJPQACFRBESUGUHTIHBCDEFUAUBUC $.
  $}

  ${
    $d x A $.
    csbieb.1 $e |- A e. _V $.
    csbieb.2 $e |- F/_ x C $.
    $( Bidirectional conversion between an implicit class substitution
       hypothesis ` x = A -> B = C ` and its explicit substitution equivalent.
       (Contributed by NM, 2-Mar-2008.) $)
    csbieb $p |- ( A. x ( x = A -> B = C ) <-> [_ A / x ]_ B = C ) $=
      ( cvv wcel wnfc cv wceq wi wal csb wb csbiebt mp2an ) BGHADIAJBKCDKLAMABC
      NDKOEFABCDGPQ $.
  $}

  ${
    $d a x A $.  $d a B $.  $d a C $.
    csbiebg.2 $e |- F/_ x C $.
    $( Bidirectional conversion between an implicit class substitution
       hypothesis ` x = A -> B = C ` and its explicit substitution equivalent.
       (Contributed by NM, 24-Mar-2013.)  (Revised by Mario Carneiro,
       11-Dec-2016.) $)
    csbiebg $p |- ( A e. V ->
          ( A. x ( x = A -> B = C ) <-> [_ A / x ]_ B = C ) ) $=
      ( va cv wceq wal csb eqeq2 imbi1d albidv csbeq1 eqeq1d vex csbieb vtoclbg
      wi ) AHZGHZIZCDIZTZAJAUBCKZDIUABIZUDTZAJABCKZDIGBEUBBIZUEUHAUJUCUGUDUBBUA
      LMNUJUFUIDAUBBCOPAUBCDGQFRS $.
  $}

  ${
    $d x A $.  $d x V $.
    csbiegf.1 $e |- ( A e. V -> F/_ x C ) $.
    csbiegf.2 $e |- ( x = A -> B = C ) $.
    $( Conversion of implicit substitution to explicit substitution into a
       class.  (Contributed by NM, 11-Nov-2005.)  (Revised by Mario Carneiro,
       13-Oct-2016.) $)
    csbiegf $p |- ( A e. V -> [_ A / x ]_ B = C ) $=
      ( wcel cv wceq wi wal csb ax-gen wnfc wb csbiebt mpdan mpbii ) BEHZAIBJCD
      JKZALZABCMDJZUAAGNTADOUBUCPFABCDEQRS $.
  $}

  ${
    $d x A $.
    csbief.1 $e |- A e. _V $.
    csbief.2 $e |- F/_ x C $.
    csbief.3 $e |- ( x = A -> B = C ) $.
    $( Conversion of implicit substitution to explicit substitution into a
       class.  (Contributed by NM, 26-Nov-2005.)  (Revised by Mario Carneiro,
       13-Oct-2016.) $)
    csbief $p |- [_ A / x ]_ B = C $=
      ( cvv wcel csb wceq wnfc a1i csbiegf ax-mp ) BHIZABCJDKEABCDHADLPFMGNO $.
  $}

  ${
    $d x A $.  $d x C $.
    csbie.1 $e |- A e. _V $.
    csbie.2 $e |- ( x = A -> B = C ) $.
    $( Conversion of implicit substitution to explicit substitution into a
       class.  (Contributed by AV, 2-Dec-2019.) $)
    csbie $p |- [_ A / x ]_ B = C $=
      ( nfcv csbief ) ABCDEADGFH $.
  $}

  ${
    $d x A $.  $d x C $.  $d x ph $.
    csbied.1 $e |- ( ph -> A e. V ) $.
    csbied.2 $e |- ( ( ph /\ x = A ) -> B = C ) $.
    $( Conversion of implicit substitution to explicit substitution into a
       class.  (Contributed by Mario Carneiro, 2-Dec-2014.)  (Revised by Mario
       Carneiro, 13-Oct-2016.) $)
    csbied $p |- ( ph -> [_ A / x ]_ B = C ) $=
      ( nfv nfcvd csbiedf ) ABCDEFABIABEJGHK $.
  $}

  ${
    $d x A $.  $d x ph $.  $d x D $.
    csbied2.1 $e |- ( ph -> A e. V ) $.
    csbied2.2 $e |- ( ph -> A = B ) $.
    csbied2.3 $e |- ( ( ph /\ x = B ) -> C = D ) $.
    $( Conversion of implicit substitution to explicit class substitution,
       deduction form.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    csbied2 $p |- ( ph -> [_ A / x ]_ C = D ) $=
      ( cv wceq id sylan9eqr syldan csbied ) ABCEFGHABKZCLZQDLEFLRAQCDRMINJOP
      $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y D $.
    csbie2t.1 $e |- A e. _V $.
    csbie2t.2 $e |- B e. _V $.
    $( Conversion of implicit substitution to explicit substitution into a
       class (closed form of ~ csbie2 ).  (Contributed by NM, 3-Sep-2007.)
       (Revised by Mario Carneiro, 13-Oct-2016.) $)
    csbie2t $p |- ( A. x A. y ( ( x = A /\ y = B ) -> C = D ) ->
                  [_ A / x ]_ [_ B / y ]_ C = D ) $=
      ( cv wceq wa wi wal csb cvv nfa1 nfcvd wcel a1i csbiedf nfa2 nfv nfan 2sp
      impl ) AICJZBIDJZKEFJZLZBMZAMZACBDENFOUJAPUKAFQCORUKGSUKUFKZBDEFOUKUFBUIB
      AUAUFBUBUCULBFQDORULHSUKUFUGUHUIABUDUETT $.

    csbie2.3 $e |- ( ( x = A /\ y = B ) -> C = D ) $.
    $( Conversion of implicit substitution to explicit substitution into a
       class.  (Contributed by NM, 27-Aug-2007.) $)
    csbie2 $p |- [_ A / x ]_ [_ B / y ]_ C = D $=
      ( cv wceq wa wi wal csb gen2 csbie2t ax-mp ) AJCKBJDKLEFKMZBNANACBDEOOFKS
      ABIPABCDEFGHQR $.
  $}

  ${
    $d x y z $.  $d A y z $.  $d B y z $.  $d C x $.  $d D y z $.  $d V z $.
    csbie2g.1 $e |- ( x = y -> B = C ) $.
    csbie2g.2 $e |- ( y = A -> C = D ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       This version of ~ csbie avoids a disjointness condition on ` x , A ` and
       ` x , D ` by substituting twice.  (Contributed by Mario Carneiro,
       11-Nov-2016.) $)
    csbie2g $p |- ( A e. V -> [_ A / x ]_ B = D ) $=
      ( vz wcel csb cv wsbc cab df-csb wceq eleq2d sbcie2g abbi1dv syl5eq ) CGK
      ZACDLJMZDKZACNZJOFAJCDPUBUEJFUDUCEKUCFKABCGAMBMZQDEUCHRUFCQEFUCIRSTUA $.
  $}

  ${
    $d x v z $.  $d y v z $.  $d A v z $.  $d B v z $.  $d ph v z $.
    $d ps v z $.
    cbvralcsf.1 $e |- F/_ y A $.
    cbvralcsf.2 $e |- F/_ x B $.
    cbvralcsf.3 $e |- F/ y ph $.
    cbvralcsf.4 $e |- F/ x ps $.
    cbvralcsf.5 $e |- ( x = y -> A = B ) $.
    cbvralcsf.6 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( A more general version of ~ cbvralf that doesn't require ` A ` and ` B `
       to be distinct from ` x ` or ` y ` .  Changes bound variables using
       implicit substitution.  (Contributed by Andrew Salmon, 13-Jul-2011.) $)
    cbvralcsf $p |- ( A. x e. A ph <-> A. y e. B ps ) $=
      ( vz vv cv wcel wi wal wsbc nfcri wral csb nfv nfcsb1v nfsbc1v id csbeq1a
      nfim weq eleq12d sbceq1a imbi12d cbval nfcv nfcsb nfsbc csbeq1 cab df-csb
      eleq2d sbie sbsbc bitr3i abbi2i eqtr4i syl6eq dfsbcq syl6bb bitri 3bitr4i
      wsb df-ral ) COZEPZAQZCRZDOZFPZBQZDRZACEUABDFUAVPMOZCWAEUBZPZACWASZQZMRVT
      VOWECMVOMUCWCWDCCMWBCWAEUDTACWAUEUHCMUIZVNWCAWDWFVMWAEWBWFUFCWAEUGUJACWAU
      KULUMWEVSMDWCWDDDMWBDCWAEDWAUNZGUOTADCWAWGIUPUHVSMUCMDUIZWCVRWDBWHWAVQWBF
      WHUFWHWBCVQEUBZFCWAVQEUQWINOZEPZCVQSZNURFCNVQEUSWLNFWJFPZWKCDVKWLWKWMCDCN
      FHTCDUIEFWJKUTVAWKCDVBVCVDVEVFUJWHWDACVQSZBACWAVQVGWNACDVKBACDVBABCDJLVAV
      CVHULUMVIACEVLBDFVLVJ $.

    $( A more general version of ~ cbvrexf that has no distinct variable
       restrictions.  Changes bound variables using implicit substitution.
       (Contributed by Andrew Salmon, 13-Jul-2011.)  (Proof shortened by Mario
       Carneiro, 7-Dec-2014.) $)
    cbvrexcsf $p |- ( E. x e. A ph <-> E. y e. B ps ) $=
      ( wn wral wrex nfn weq notbid cbvralcsf dfrex2 notbii 3bitr4i ) AMZCENZMB
      MZDFNZMACEOBDFOUDUFUCUECDEFGHADIPBCJPKCDQABLRSUAACETBDFTUB $.

    $( A more general version of ~ cbvreuv that has no distinct variable
       restrictions.  Changes bound variables using implicit substitution.
       (Contributed by Andrew Salmon, 13-Jul-2011.) $)
    cbvreucsf $p |- ( E! x e. A ph <-> E! y e. B ps ) $=
      ( vz vv cv wcel wa weu wsb nfcri wreu csb nfv nfcsb1v nfan weq id csbeq1a
      nfs1v eleq12d sbequ12 anbi12d cbveu nfcv nfcsb nfsb csbeq1 cab wsbc sbsbc
      abbii eleq2d sbie bicomi abbi2i df-csb 3eqtr4ri syl6eq sbequ syl6bb bitri
      df-reu 3bitr4i ) COZEPZAQZCRZDOZFPZBQZDRZACEUABDFUAVQMOZCWBEUBZPZACMSZQZM
      RWAVPWFCMVPMUCWDWECCMWCCWBEUDTACMUIUECMUFZVOWDAWEWGVNWBEWCWGUGCWBEUHUJACM
      UKULUMWFVTMDWDWEDDMWCDCWBEDWBUNGUOTACMDIUPUEVTMUCMDUFZWDVSWEBWHWBVRWCFWHU
      GWHWCCVREUBZFCWBVREUQNOZEPZCDSZNURWKCVRUSZNURFWIWLWMNWKCDUTVAWLNFWLWJFPZW
      KWNCDCNFHTCDUFEFWJKVBVCVDVECNVREVFVGVHUJWHWEACDSBAMDCVIABCDJLVCVJULUMVKAC
      EVLBDFVLVM $.

    $( A more general version of ~ cbvrab with no distinct variable
       restrictions.  (Contributed by Andrew Salmon, 13-Jul-2011.) $)
    cbvrabcsf $p |- { x e. A | ph } = { y e. B | ps } $=
      ( vz vv cv wcel wa cab wsb nfcri crab csb nfv nfcsb1v nfan weq id csbeq1a
      nfs1v eleq12d sbequ12 anbi12d cbvab nfcv nfcsb csbeq1 df-csb eleq2d sbsbc
      nfsb wsbc bitr3i abbi2i eqtr4i syl6eq sbequ syl6bb eqtri df-rab 3eqtr4i
      sbie ) COZEPZAQZCRZDOZFPZBQZDRZACEUABDFUAVOMOZCVTEUBZPZACMSZQZMRVSVNWDCMV
      NMUCWBWCCCMWACVTEUDTACMUIUECMUFZVMWBAWCWEVLVTEWAWEUGCVTEUHUJACMUKULUMWDVR
      MDWBWCDDMWADCVTEDVTUNGUOTACMDIUTUEVRMUCMDUFZWBVQWCBWFVTVPWAFWFUGWFWACVPEU
      BZFCVTVPEUPWGNOZEPZCVPVAZNRFCNVPEUQWJNFWHFPZWICDSWJWIWKCDCNFHTCDUFEFWHKUR
      VKWICDUSVBVCVDVEUJWFWCACDSBAMDCVFABCDJLVKVGULUMVHACEVIBDFVIVJ $.
  $}

  ${
    $d A y $.  $d ps y $.  $d B x $.  $d ch x $.
    cbvralv2.1 $e |- ( x = y -> ( ps <-> ch ) ) $.
    cbvralv2.2 $e |- ( x = y -> A = B ) $.
    $( Rule used to change the bound variable in a restricted universal
       quantifier with implicit substitution which also changes the quantifier
       domain.  (Contributed by David Moews, 1-May-2017.) $)
    cbvralv2 $p |- ( A. x e. A ps <-> A. y e. B ch ) $=
      ( nfcv nfv cbvralcsf ) ABCDEFDEICFIADJBCJHGK $.

    $( Rule used to change the bound variable in a restricted existential
       quantifier with implicit substitution which also changes the quantifier
       domain.  (Contributed by David Moews, 1-May-2017.) $)
    cbvrexv2 $p |- ( E. x e. A ps <-> E. y e. B ch ) $=
      ( nfcv nfv cbvrexcsf ) ABCDEFDEICFIADJBCJHGK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Define basic set operations and relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new symbols. $)
  $c \ $. $( Backslash (difference) $)
  $c u. $. $( Cup (union) $)
  $c i^i $. $( Cap (intersection) $)
  $c C_ $. $( Subclass or subset symbol $)
  $c C. $. $( Proper subclass or subset symbol $)

  $( Extend class notation to include class difference (read:  " ` A ` minus
     ` B ` "). $)
  cdif $a class ( A \ B ) $.

  $( Extend class notation to include union of two classes (read:  " ` A `
     union ` B ` "). $)
  cun $a class ( A u. B ) $.

  $( Extend class notation to include the intersection of two classes (read:
      " ` A ` intersect ` B ` "). $)
  cin $a class ( A i^i B ) $.

  $( Extend wff notation to include the subclass relation.  This is
     read " ` A ` is a subclass of ` B ` " or " ` B ` includes ` A ` ."  When
     ` A ` exists as a set, it is also read " ` A ` is a subset of ` B ` ." $)
  wss $a wff A C_ B $.

  $( Extend wff notation with proper subclass relation. $)
  wpss $a wff A C. B $.

  ${
    $d x A $.  $d x B $.  $d y A $.  $d y B $.  $d z x $.  $d z y $.  $d z A $.
    $d z B $.
    $( Soundness justification theorem for ~ df-dif .  (Contributed by Rodolfo
       Medina, 27-Apr-2010.)  (Proof shortened by Andrew Salmon,
       9-Jul-2011.) $)
    difjust $p |- { x | ( x e. A /\ -. x e. B ) }
                  = { y | ( y e. A /\ -. y e. B ) } $=
      ( vz cv wcel wn wa cab weq eleq1 notbid anbi12d cbvabv eqtri ) AFZCGZQDGZ
      HZIZAJEFZCGZUBDGZHZIZEJBFZCGZUGDGZHZIZBJUAUFAEAEKZRUCTUEQUBCLULSUDQUBDLMN
      OUFUKEBEBKZUCUHUEUJUBUGCLUMUDUIUBUGDLMNOP $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Define class difference, also called relative complement.  Definition
       5.12 of [TakeutiZaring] p. 20.  For example,
       ` ( { 1 , 3 } \ { 1 , 8 } ) = { 3 } ` ( ~ ex-dif ).  Contrast this
       operation with union ` ( A u. B ) ` ( ~ df-un ) and intersection
       ` ( A i^i B ) ` ( ~ df-in ).  Several notations are used in the
       literature; we chose the ` \ ` convention used in Definition 5.3 of
       [Eisenberg] p. 67 instead of the more common minus sign to reserve the
       latter for later use in, e.g., arithmetic.  We will use the
       terminology " ` A ` excludes ` B ` " to mean ` A \ B ` .  We will
       use " ` B ` is removed from ` A ` " to mean ` A \ { B } ` i.e. the
       removal of an element or equivalently the exclusion of a singleton.
       (Contributed by NM, 29-Apr-1994.) $)
    df-dif $a |- ( A \ B ) = { x | ( x e. A /\ -. x e. B ) } $.
  $}

  ${
    $d x A $.  $d x B $.  $d y A $.  $d y B $.  $d z x $.  $d z y $.  $d z A $.
    $d z B $.
    $( Soundness justification theorem for ~ df-un .  (Contributed by Rodolfo
       Medina, 28-Apr-2010.)  (Proof shortened by Andrew Salmon,
       9-Jul-2011.) $)
    unjust $p |- { x | ( x e. A \/ x e. B ) } = { y | ( y e. A \/ y e. B ) } $=
      ( vz cv wcel wo cab weq eleq1 orbi12d cbvabv eqtri ) AFZCGZODGZHZAIEFZCGZ
      SDGZHZEIBFZCGZUCDGZHZBIRUBAEAEJPTQUAOSCKOSDKLMUBUFEBEBJTUDUAUESUCCKSUCDKL
      MN $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Define the union of two classes.  Definition 5.6 of [TakeutiZaring]
       p. 16.  For example, ` ( { 1 , 3 } u. { 1 , 8 } ) = { 1 , 3 , 8 } `
       ( ~ ex-un ).  Contrast this operation with difference ` ( A \ B ) `
       ( ~ df-dif ) and intersection ` ( A i^i B ) ` ( ~ df-in ).  For an
       alternate definition in terms of class difference, requiring no dummy
       variables, see ~ dfun2 .  For union defined in terms of intersection,
       see ~ dfun3 .  (Contributed by NM, 23-Aug-1993.) $)
    df-un $a |- ( A u. B ) = { x | ( x e. A \/ x e. B ) } $.
  $}

  ${
    $d x A $.  $d x B $.  $d y A $.  $d y B $.  $d z x $.  $d z y $.  $d z A $.
    $d z B $.
    $( Soundness justification theorem for ~ df-in .  (Contributed by Rodolfo
       Medina, 28-Apr-2010.)  (Proof shortened by Andrew Salmon,
       9-Jul-2011.) $)
    injust $p |- { x | ( x e. A /\ x e. B ) }
                  = { y | ( y e. A /\ y e. B ) } $=
      ( vz cv wcel wa cab weq eleq1 anbi12d cbvabv eqtri ) AFZCGZODGZHZAIEFZCGZ
      SDGZHZEIBFZCGZUCDGZHZBIRUBAEAEJPTQUAOSCKOSDKLMUBUFEBEBJTUDUAUESUCCKSUCDKL
      MN $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Define the intersection of two classes.  Definition 5.6 of
       [TakeutiZaring] p. 16.  For example,
       ` ( { 1 , 3 } i^i { 1 , 8 } ) = { 1 } ` ( ~ ex-in ).  Contrast this
       operation with union ` ( A u. B ) ` ( ~ df-un ) and difference
       ` ( A \ B ) ` ( ~ df-dif ).  For alternate definitions in terms of class
       difference, requiring no dummy variables, see ~ dfin2 and ~ dfin4 .  For
       intersection defined in terms of union, see ~ dfin3 .  (Contributed by
       NM, 29-Apr-1994.) $)
    df-in $a |- ( A i^i B ) = { x | ( x e. A /\ x e. B ) } $.

    $( Alternate definition for the intersection of two classes.  (Contributed
       by NM, 6-Jul-2005.) $)
    dfin5 $p |- ( A i^i B ) = { x e. A | x e. B } $=
      ( cin cv wcel wa cab crab df-in df-rab eqtr4i ) BCDAEZBFMCFZGAHNABIABCJNA
      BKL $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Alternate definition of class difference.  (Contributed by NM,
       25-Mar-2004.) $)
    dfdif2 $p |- ( A \ B ) = { x e. A | -. x e. B } $=
      ( cdif cv wcel wn wa cab crab df-dif df-rab eqtr4i ) BCDAEZBFNCFGZHAIOABJ
      ABCKOABLM $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Expansion of membership in a class difference.  (Contributed by NM,
       29-Apr-1994.) $)
    eldif $p |- ( A e. ( B \ C ) <-> ( A e. B /\ -. A e. C ) ) $=
      ( vx cdif wcel cvv wn wa elex adantr cv wceq notbid anbi12d df-dif elab2g
      eleq1 pm5.21nii ) ABCEZFAGFZABFZACFZHZIZATJUBUAUDABJKDLZBFZUFCFZHZIUEDATG
      UFAMZUGUBUIUDUFABRUJUHUCUFACRNODBCPQS $.
  $}

  ${
    eldifd.1 $e |- ( ph -> A e. B ) $.
    eldifd.2 $e |- ( ph -> -. A e. C ) $.
    $( If a class is in one class and not another, it is also in their
       difference.  One-way deduction form of ~ eldif .  (Contributed by David
       Moews, 1-May-2017.) $)
    eldifd $p |- ( ph -> A e. ( B \ C ) ) $=
      ( wcel wn cdif eldif sylanbrc ) ABCGBDGHBCDIGEFBCDJK $.
  $}

  ${
    eldifad.1 $e |- ( ph -> A e. ( B \ C ) ) $.
    $( If a class is in the difference of two classes, it is also in the
       minuend.  One-way deduction form of ~ eldif .  (Contributed by David
       Moews, 1-May-2017.) $)
    eldifad $p |- ( ph -> A e. B ) $=
      ( wcel wn cdif wa eldif sylib simpld ) ABCFZBDFGZABCDHFMNIEBCDJKL $.
  $}

  ${
    eldifbd.1 $e |- ( ph -> A e. ( B \ C ) ) $.
    $( If a class is in the difference of two classes, it is not in the
       subtrahend.  One-way deduction form of ~ eldif .  (Contributed by David
       Moews, 1-May-2017.) $)
    eldifbd $p |- ( ph -> -. A e. C ) $=
      ( wcel wn cdif wa eldif sylib simprd ) ABCFZBDFGZABCDHFMNIEBCDJKL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subclasses and subsets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Define the subclass relationship.  Exercise 9 of [TakeutiZaring] p. 18.
     For example, ` { 1 , 2 } C_ { 1 , 2 , 3 } ` ( ~ ex-ss ).  Note that
     ` A C_ A ` (proved in ~ ssid ).  Contrast this relationship with the
     relationship ` A C. B ` (as will be defined in ~ df-pss ).  For a more
     traditional definition, but requiring a dummy variable, see ~ dfss2 .
     Other possible definitions are given by ~ dfss3 , ~ dfss4 , ~ sspss ,
     ~ ssequn1 , ~ ssequn2 , ~ sseqin2 , and ~ ssdif0 .

     We prefer the label "ss" ("subset") for ` C_ ` , despite the fact that it
     applies to classes.  It is much more common to refer to this as the subset
     relation than subclass, especially since most of the time the arguments
     are in fact sets (and for pragmatic reasons we don't want to need to use
     different operations for sets).  The way set.mm is set up, many things are
     technically classes despite morally (and provably) being sets, like ` 1 `
     (cf. ~ df-1 and ~ 1ex ) or ` RR ` ( cf. ~ df-r and ~ reex ) .  This has to
     do with the fact that there are no "set expressions": classes are
     expressions but there are only set variables in set.mm (cf.
     ~ http://us.metamath.org/downloads/grammar-ambiguity.txt ).  This is why
     we use ` C_ ` both for subclass relations and for subset relations and
     call it "subset".  (Contributed by NM, 27-Apr-1994.) $)
  df-ss $a |- ( A C_ B <-> ( A i^i B ) = A ) $.

  $( Variant of subclass definition ~ df-ss .  (Contributed by NM,
     21-Jun-1993.) $)
  dfss $p |- ( A C_ B <-> A = ( A i^i B ) ) $=
    ( wss cin wceq df-ss eqcom bitri ) ABCABDZAEAIEABFIAGH $.

  $( Define proper subclass relationship between two classes.  Definition 5.9
     of [TakeutiZaring] p. 17.  For example, ` { 1 , 2 } C. { 1 , 2 , 3 } `
     ( ~ ex-pss ).  Note that ` -. A C. A ` (proved in ~ pssirr ).  Contrast
     this relationship with the relationship ` A C_ B ` (as defined in
     ~ df-ss ).  Other possible definitions are given by ~ dfpss2 and
     ~ dfpss3 .  (Contributed by NM, 7-Feb-1996.) $)
  df-pss $a |- ( A C. B <-> ( A C_ B /\ A =/= B ) ) $.

  ${
    $d x A $.  $d x B $.
    $( Alternate definition of the subclass relationship between two classes.
       Definition 5.9 of [TakeutiZaring] p. 17.  (Contributed by NM,
       8-Jan-2002.) $)
    dfss2 $p |- ( A C_ B <-> A. x ( x e. A -> x e. B ) ) $=
      ( wss cv wcel wa wb wal wi cin wceq dfss df-in eqeq2i abeq2 3bitri pm4.71
      cab albii bitr4i ) BCDZAEZBFZUDUCCFZGZHZAIZUDUEJZAIUBBBCKZLBUFASZLUHBCMUJ
      UKBABCNOUFABPQUIUGAUDUERTUA $.

    $( Alternate definition of subclass relationship.  (Contributed by NM,
       14-Oct-1999.) $)
    dfss3 $p |- ( A C_ B <-> A. x e. A x e. B ) $=
      ( wss cv wcel wi wal wral dfss2 df-ral bitr4i ) BCDAEZBFMCFZGAHNABIABCJNA
      BKL $.

    $( Alternate definition of subclass relationship.  (Contributed by RP,
       16-Apr-2020.) $)
    dfss6 $p |- ( A C_ B <-> -. E. x ( x e. A /\ -. x e. B ) ) $=
      ( wss cv wcel wi wal wn wa wex dfss2 notnotb bitri exanali xchbinxr ) BCD
      ZAEZBFZRCFZGAHZIZSTIJAKQUAUBIABCLUAMNSTAOP $.
  $}

  ${
    $d z A $.  $d z B $.  $d x z $.
    dfss2f.1 $e |- F/_ x A $.
    dfss2f.2 $e |- F/_ x B $.
    $( Equivalence for subclass relation, using bound-variable hypotheses
       instead of distinct variable conditions.  (Contributed by NM,
       3-Jul-1994.)  (Revised by Andrew Salmon, 27-Aug-2011.) $)
    dfss2f $p |- ( A C_ B <-> A. x ( x e. A -> x e. B ) ) $=
      ( vz wss cv wcel wal dfss2 nfcri nfim nfv weq eleq1 imbi12d cbval bitri
      wi ) BCGFHZBIZUACIZTZFJAHZBIZUECIZTZAJFBCKUDUHFAUBUCAAFBDLAFCELMUHFNFAOUB
      UFUCUGUAUEBPUAUECPQRS $.

    $( Equivalence for subclass relation, using bound-variable hypotheses
       instead of distinct variable conditions.  (Contributed by NM,
       20-Mar-2004.) $)
    dfss3f $p |- ( A C_ B <-> A. x e. A x e. B ) $=
      ( wss cv wcel wi wal wral dfss2f df-ral bitr4i ) BCFAGZBHOCHZIAJPABKABCDE
      LPABMN $.

    $( If ` x ` is not free in ` A ` and ` B ` , it is not free in ` A C_ B ` .
       (Contributed by NM, 27-Dec-1996.) $)
    nfss $p |- F/ x A C_ B $=
      ( wss cv wcel wral dfss3f nfra1 nfxfr ) BCFAGCHZABIAABCDEJMABKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Membership relationships follow from a subclass relationship.
       (Contributed by NM, 5-Aug-1993.) $)
    ssel $p |- ( A C_ B -> ( C e. A -> C e. B ) ) $=
      ( vx wss cv wceq wa wex wi wal dfss2 biimpi 19.21bi anim2d eximdv df-clel
      wcel 3imtr4g ) ABEZDFZCGZUAARZHZDIUBUABRZHZDICARCBRTUDUFDTUCUEUBTUCUEJZDT
      UGDKDABLMNOPDCAQDCBQS $.
  $}

  $( Membership relationships follow from a subclass relationship.
     (Contributed by NM, 7-Jun-2004.) $)
  ssel2 $p |- ( ( A C_ B /\ C e. A ) -> C e. B ) $=
    ( wss wcel ssel imp ) ABDCAECBEABCFG $.

  ${
    sseli.1 $e |- A C_ B $.
    $( Membership inference from subclass relationship.  (Contributed by NM,
       5-Aug-1993.) $)
    sseli $p |- ( C e. A -> C e. B ) $=
      ( wss wcel wi ssel ax-mp ) ABECAFCBFGDABCHI $.

    ${
      sselii.2 $e |- C e. A $.
      $( Membership inference from subclass relationship.  (Contributed by NM,
         31-May-1999.) $)
      sselii $p |- C e. B $=
        ( wcel sseli ax-mp ) CAFCBFEABCDGH $.
    $}

    ${
      sseldi.2 $e |- ( ph -> C e. A ) $.
      $( Membership inference from subclass relationship.  (Contributed by NM,
         25-Jun-2014.) $)
      sseldi $p |- ( ph -> C e. B ) $=
        ( wcel sseli syl ) ADBGDCGFBCDEHI $.
    $}
  $}

  ${
    sseld.1 $e |- ( ph -> A C_ B ) $.
    $( Membership deduction from subclass relationship.  (Contributed by NM,
       15-Nov-1995.) $)
    sseld $p |- ( ph -> ( C e. A -> C e. B ) ) $=
      ( wss wcel wi ssel syl ) ABCFDBGDCGHEBCDIJ $.

    $( Membership deduction from subclass relationship.  (Contributed by NM,
       26-Jun-2014.) $)
    sselda $p |- ( ( ph /\ C e. A ) -> C e. B ) $=
      ( wcel sseld imp ) ADBFDCFABCDEGH $.

    ${
      sseldd.2 $e |- ( ph -> C e. A ) $.
      $( Membership inference from subclass relationship.  (Contributed by NM,
         14-Dec-2004.) $)
      sseldd $p |- ( ph -> C e. B ) $=
        ( wcel sseld mpd ) ADBGDCGFABCDEHI $.
    $}
  $}

  ${
    ssneld.1 $e |- ( ph -> A C_ B ) $.
    $( If a class is not in another class, it is also not in a subclass of that
       class.  Deduction form.  (Contributed by David Moews, 1-May-2017.) $)
    ssneld $p |- ( ph -> ( -. C e. B -> -. C e. A ) ) $=
      ( wcel sseld con3d ) ADBFDCFABCDEGH $.

    ssneldd.2 $e |- ( ph -> -. C e. B ) $.
    $( If an element is not in a class, it is also not in a subclass of that
       class.  Deduction form.  (Contributed by David Moews, 1-May-2017.) $)
    ssneldd $p |- ( ph -> -. C e. A ) $=
      ( wcel wn ssneld mpd ) ADCGHDBGHFABCDEIJ $.
  $}

  ${
    $d x A $.  $d x B $.
    ssriv.1 $e |- ( x e. A -> x e. B ) $.
    $( Inference rule based on subclass definition.  (Contributed by NM,
       21-Jun-1993.) $)
    ssriv $p |- A C_ B $=
      ( wss cv wcel wi dfss2 mpgbir ) BCEAFZBGKCGHAABCIDJ $.
  $}

  ${
    ssrd.0 $e |- F/ x ph $.
    ssrd.1 $e |- F/_ x A $.
    ssrd.2 $e |- F/_ x B $.
    ssrd.3 $e |- ( ph -> ( x e. A -> x e. B ) ) $.
    $( Deduction rule based on subclass definition.  (Contributed by Thierry
       Arnoux, 8-Mar-2017.) $)
    ssrd $p |- ( ph -> A C_ B ) $=
      ( cv wcel wi wal wss alrimi dfss2f sylibr ) ABIZCJQDJKZBLCDMARBEHNBCDFGOP
      $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    ssrdv.1 $e |- ( ph -> ( x e. A -> x e. B ) ) $.
    $( Deduction rule based on subclass definition.  (Contributed by NM,
       15-Nov-1995.) $)
    ssrdv $p |- ( ph -> A C_ B ) $=
      ( cv wcel wi wal wss alrimiv dfss2 sylibr ) ABFZCGNDGHZBICDJAOBEKBCDLM $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Transitivity of subclasses.  Exercise 5 of [TakeutiZaring] p. 17.
       (Contributed by NM, 24-Jun-1993.)  (Proof shortened by Andrew Salmon,
       14-Jun-2011.) $)
    sstr2 $p |- ( A C_ B -> ( B C_ C -> A C_ C ) ) $=
      ( vx wss cv wcel wi wal ssel imim1d alimdv dfss2 3imtr4g ) ABEZDFZBGZPCGZ
      HZDIPAGZRHZDIBCEACEOSUADOTQRABPJKLDBCMDACMN $.
  $}

  $( Transitivity of subclasses.  Theorem 6 of [Suppes] p. 23.  (Contributed by
     NM, 5-Sep-2003.) $)
  sstr $p |- ( ( A C_ B /\ B C_ C ) -> A C_ C ) $=
    ( wss sstr2 imp ) ABDBCDACDABCEF $.

  ${
    sstri.1 $e |- A C_ B $.
    sstri.2 $e |- B C_ C $.
    $( Subclass transitivity inference.  (Contributed by NM, 5-May-2000.) $)
    sstri $p |- A C_ C $=
      ( wss sstr2 mp2 ) ABFBCFACFDEABCGH $.
  $}

  ${
    sstrd.1 $e |- ( ph -> A C_ B ) $.
    sstrd.2 $e |- ( ph -> B C_ C ) $.
    $( Subclass transitivity deduction.  (Contributed by NM, 2-Jun-2004.) $)
    sstrd $p |- ( ph -> A C_ C ) $=
      ( wss sstr syl2anc ) ABCGCDGBDGEFBCDHI $.
  $}

  ${
    syl5ss.1 $e |- A C_ B $.
    syl5ss.2 $e |- ( ph -> B C_ C ) $.
    $( Subclass transitivity deduction.  (Contributed by NM, 6-Feb-2014.) $)
    syl5ss $p |- ( ph -> A C_ C ) $=
      ( wss a1i sstrd ) ABCDBCGAEHFI $.
  $}

  ${
    syl6ss.1 $e |- ( ph -> A C_ B ) $.
    syl6ss.2 $e |- B C_ C $.
    $( Subclass transitivity deduction.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.) $)
    syl6ss $p |- ( ph -> A C_ C ) $=
      ( wss a1i sstrd ) ABCDECDGAFHI $.
  $}

  ${
    sylan9ss.1 $e |- ( ph -> A C_ B ) $.
    sylan9ss.2 $e |- ( ps -> B C_ C ) $.
    $( A subclass transitivity deduction.  (Contributed by NM, 27-Sep-2004.)
       (Proof shortened by Andrew Salmon, 14-Jun-2011.) $)
    sylan9ss $p |- ( ( ph /\ ps ) -> A C_ C ) $=
      ( wss sstr syl2an ) ACDHDEHCEHBFGCDEIJ $.
  $}

  ${
    sylan9ssr.1 $e |- ( ph -> A C_ B ) $.
    sylan9ssr.2 $e |- ( ps -> B C_ C ) $.
    $( A subclass transitivity deduction.  (Contributed by NM, 27-Sep-2004.) $)
    sylan9ssr $p |- ( ( ps /\ ph ) -> A C_ C ) $=
      ( wss sylan9ss ancoms ) ABCEHABCDEFGIJ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The subclass relationship is antisymmetric.  Compare Theorem 4 of
       [Suppes] p. 22.  (Contributed by NM, 21-May-1993.) $)
    eqss $p |- ( A = B <-> ( A C_ B /\ B C_ A ) ) $=
      ( vx cv wcel wb wal wi wa wceq wss albiim dfcleq dfss2 anbi12i 3bitr4i )
      CDZAEZQBEZFCGRSHCGZSRHCGZIABJABKZBAKZIRSCLCABMUBTUCUACABNCBANOP $.
  $}

  ${
    eqssi.1 $e |- A C_ B $.
    eqssi.2 $e |- B C_ A $.
    $( Infer equality from two subclass relationships.  Compare Theorem 4 of
       [Suppes] p. 22.  (Contributed by NM, 9-Sep-1993.) $)
    eqssi $p |- A = B $=
      ( wceq wss eqss mpbir2an ) ABEABFBAFCDABGH $.
  $}

  ${
    eqssd.1 $e |- ( ph -> A C_ B ) $.
    eqssd.2 $e |- ( ph -> B C_ A ) $.
    $( Equality deduction from two subclass relationships.  Compare Theorem 4
       of [Suppes] p. 22.  (Contributed by NM, 27-Jun-2004.) $)
    eqssd $p |- ( ph -> A = B ) $=
      ( wss wceq eqss sylanbrc ) ABCFCBFBCGDEBCHI $.
  $}

  $( If a class is a subclass of another class, the classes are equal iff the
     other class is a subclass of the first class.  (Contributed by AV,
     23-Dec-2020.) $)
  sssseq $p |- ( B C_ A -> ( A C_ B <-> A = B ) ) $=
    ( wceq wss eqss rbaibr ) ABCABDBADABEF $.

  ${
    eqrd.0 $e |- F/ x ph $.
    eqrd.1 $e |- F/_ x A $.
    eqrd.2 $e |- F/_ x B $.
    eqrd.3 $e |- ( ph -> ( x e. A <-> x e. B ) ) $.
    $( Deduce equality of classes from equivalence of membership.  (Contributed
       by Thierry Arnoux, 21-Mar-2017.)  (Proof shortened by BJ,
       1-Dec-2021.) $)
    eqrd $p |- ( ph -> A = B ) $=
      ( cv wcel wb wal wceq alrimi cleqf sylibr ) ABIZCJQDJKZBLCDMARBEHNBCDFGOP
      $.

    $( Obsolete proof of ~ eqrd as of 1-Dec-2021.  (Contributed by Thierry
       Arnoux, 21-Mar-2017.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    eqrdOLD $p |- ( ph -> A = B ) $=
      ( cv wcel biimpd ssrd biimprd eqssd ) ACDABCDEFGABIZCJZODJZHKLABDCEGFAPQH
      MLN $.
  $}

  ${
    $d A x $.
    $( Any class is a subclass of itself.  Exercise 10 of [TakeutiZaring]
       p. 18.  (Contributed by NM, 21-Jun-1993.)  (Proof shortened by Andrew
       Salmon, 14-Jun-2011.) $)
    ssid $p |- A C_ A $=
      ( vx cv wcel id ssriv ) BAABCADEF $.
  $}

  ${
    $d A x $.
    $( Any class is a subclass of the universal class.  (Contributed by NM,
       31-Oct-1995.) $)
    ssv $p |- A C_ _V $=
      ( vx cvv cv elex ssriv ) BACBDAEF $.
  $}

  $( Equality theorem for subclasses.  (Contributed by NM, 24-Jun-1993.)
     (Proof shortened by Andrew Salmon, 21-Jun-2011.) $)
  sseq1 $p |- ( A = B -> ( A C_ C <-> B C_ C ) ) $=
    ( wceq wss wa wb eqss wi sstr2 adantl adantr impbid sylbi ) ABDABEZBAEZFZAC
    EZBCEZGABHQRSPRSIOBACJKOSRIPABCJLMN $.

  $( Equality theorem for the subclass relationship.  (Contributed by NM,
     25-Jun-1998.) $)
  sseq2 $p |- ( A = B -> ( C C_ A <-> C C_ B ) ) $=
    ( wss wa wi wceq wb sstr2 com12 anim12i eqss dfbi2 3imtr4i ) ABDZBADZECADZC
    BDZFZRQFZEABGQRHOSPTQORCABIJRPQCBAIJKABLQRMN $.

  $( Equality theorem for the subclass relationship.  (Contributed by NM,
     31-May-1999.) $)
  sseq12 $p |- ( ( A = B /\ C = D ) -> ( A C_ C <-> B C_ D ) ) $=
    ( wceq wss sseq1 sseq2 sylan9bb ) ABEACFBCFCDEBDFABCGCDBHI $.

  ${
    sseq1i.1 $e |- A = B $.
    $( An equality inference for the subclass relationship.  (Contributed by
       NM, 18-Aug-1993.) $)
    sseq1i $p |- ( A C_ C <-> B C_ C ) $=
      ( wceq wss wb sseq1 ax-mp ) ABEACFBCFGDABCHI $.

    $( An equality inference for the subclass relationship.  (Contributed by
       NM, 30-Aug-1993.) $)
    sseq2i $p |- ( C C_ A <-> C C_ B ) $=
      ( wceq wss wb sseq2 ax-mp ) ABECAFCBFGDABCHI $.

    ${
      sseq12i.2 $e |- C = D $.
      $( An equality inference for the subclass relationship.  (Contributed by
         NM, 31-May-1999.)  (Proof shortened by Eric Schmidt, 26-Jan-2007.) $)
      sseq12i $p |- ( A C_ C <-> B C_ D ) $=
        ( wceq wss wb sseq12 mp2an ) ABGCDGACHBDHIEFABCDJK $.
    $}
  $}

  ${
    sseq1d.1 $e |- ( ph -> A = B ) $.
    $( An equality deduction for the subclass relationship.  (Contributed by
       NM, 14-Aug-1994.) $)
    sseq1d $p |- ( ph -> ( A C_ C <-> B C_ C ) ) $=
      ( wceq wss wb sseq1 syl ) ABCFBDGCDGHEBCDIJ $.

    $( An equality deduction for the subclass relationship.  (Contributed by
       NM, 14-Aug-1994.) $)
    sseq2d $p |- ( ph -> ( C C_ A <-> C C_ B ) ) $=
      ( wceq wss wb sseq2 syl ) ABCFDBGDCGHEBCDIJ $.

    ${
      sseq12d.2 $e |- ( ph -> C = D ) $.
      $( An equality deduction for the subclass relationship.  (Contributed by
         NM, 31-May-1999.) $)
      sseq12d $p |- ( ph -> ( A C_ C <-> B C_ D ) ) $=
        ( wss sseq1d sseq2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
    $}
  $}

  ${
    eqsstr.1 $e |- A = B $.
    eqsstr.2 $e |- B C_ C $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 16-Jul-1995.) $)
    eqsstri $p |- A C_ C $=
      ( wss sseq1i mpbir ) ACFBCFEABCDGH $.
  $}

  ${
    eqsstr3.1 $e |- B = A $.
    eqsstr3.2 $e |- B C_ C $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 19-Oct-1999.) $)
    eqsstr3i $p |- A C_ C $=
      ( eqcomi eqsstri ) ABCBADFEG $.
  $}

  ${
    sseqtr.1 $e |- A C_ B $.
    sseqtr.2 $e |- B = C $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 28-Jul-1995.) $)
    sseqtri $p |- A C_ C $=
      ( wss sseq2i mpbi ) ABFACFDBCAEGH $.
  $}

  ${
    sseqtr4.1 $e |- A C_ B $.
    sseqtr4.2 $e |- C = B $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 4-Apr-1995.) $)
    sseqtr4i $p |- A C_ C $=
      ( eqcomi sseqtri ) ABCDCBEFG $.
  $}

  ${
    eqsstrd.1 $e |- ( ph -> A = B ) $.
    eqsstrd.2 $e |- ( ph -> B C_ C ) $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 25-Apr-2004.) $)
    eqsstrd $p |- ( ph -> A C_ C ) $=
      ( wss sseq1d mpbird ) ABDGCDGFABCDEHI $.
  $}

  ${
    eqsstr3d.1 $e |- ( ph -> B = A ) $.
    eqsstr3d.2 $e |- ( ph -> B C_ C ) $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 25-Apr-2004.) $)
    eqsstr3d $p |- ( ph -> A C_ C ) $=
      ( eqcomd eqsstrd ) ABCDACBEGFH $.
  $}

  ${
    sseqtrd.1 $e |- ( ph -> A C_ B ) $.
    sseqtrd.2 $e |- ( ph -> B = C ) $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 25-Apr-2004.) $)
    sseqtrd $p |- ( ph -> A C_ C ) $=
      ( wss sseq2d mpbid ) ABCGBDGEACDBFHI $.
  $}

  ${
    sseqtr4d.1 $e |- ( ph -> A C_ B ) $.
    sseqtr4d.2 $e |- ( ph -> C = B ) $.
    $( Substitution of equality into a subclass relationship.  (Contributed by
       NM, 25-Apr-2004.) $)
    sseqtr4d $p |- ( ph -> A C_ C ) $=
      ( eqcomd sseqtrd ) ABCDEADCFGH $.
  $}

  ${
    3sstr3.1 $e |- A C_ B $.
    3sstr3.2 $e |- A = C $.
    3sstr3.3 $e |- B = D $.
    $( Substitution of equality in both sides of a subclass relationship.
       (Contributed by NM, 13-Jan-1996.)  (Proof shortened by Eric Schmidt,
       26-Jan-2007.) $)
    3sstr3i $p |- C C_ D $=
      ( wss sseq12i mpbi ) ABHCDHEACBDFGIJ $.
  $}

  ${
    3sstr4.1 $e |- A C_ B $.
    3sstr4.2 $e |- C = A $.
    3sstr4.3 $e |- D = B $.
    $( Substitution of equality in both sides of a subclass relationship.
       (Contributed by NM, 13-Jan-1996.)  (Proof shortened by Eric Schmidt,
       26-Jan-2007.) $)
    3sstr4i $p |- C C_ D $=
      ( wss sseq12i mpbir ) CDHABHECADBFGIJ $.
  $}

  ${
    3sstr3g.1 $e |- ( ph -> A C_ B ) $.
    3sstr3g.2 $e |- A = C $.
    3sstr3g.3 $e |- B = D $.
    $( Substitution of equality into both sides of a subclass relationship.
       (Contributed by NM, 1-Oct-2000.) $)
    3sstr3g $p |- ( ph -> C C_ D ) $=
      ( wss sseq12i sylib ) ABCIDEIFBDCEGHJK $.
  $}

  ${
    3sstr4g.1 $e |- ( ph -> A C_ B ) $.
    3sstr4g.2 $e |- C = A $.
    3sstr4g.3 $e |- D = B $.
    $( Substitution of equality into both sides of a subclass relationship.
       (Contributed by NM, 16-Aug-1994.)  (Proof shortened by Eric Schmidt,
       26-Jan-2007.) $)
    3sstr4g $p |- ( ph -> C C_ D ) $=
      ( wss sseq12i sylibr ) ABCIDEIFDBECGHJK $.
  $}

  ${
    3sstr3d.1 $e |- ( ph -> A C_ B ) $.
    3sstr3d.2 $e |- ( ph -> A = C ) $.
    3sstr3d.3 $e |- ( ph -> B = D ) $.
    $( Substitution of equality into both sides of a subclass relationship.
       (Contributed by NM, 1-Oct-2000.) $)
    3sstr3d $p |- ( ph -> C C_ D ) $=
      ( wss sseq12d mpbid ) ABCIDEIFABDCEGHJK $.
  $}

  ${
    3sstr4d.1 $e |- ( ph -> A C_ B ) $.
    3sstr4d.2 $e |- ( ph -> C = A ) $.
    3sstr4d.3 $e |- ( ph -> D = B ) $.
    $( Substitution of equality into both sides of a subclass relationship.
       (Contributed by NM, 30-Nov-1995.)  (Proof shortened by Eric Schmidt,
       26-Jan-2007.) $)
    3sstr4d $p |- ( ph -> C C_ D ) $=
      ( wss sseq12d mpbird ) ADEIBCIFADBECGHJK $.
  $}

  ${
    syl5eqss.1 $e |- A = B $.
    syl5eqss.2 $e |- ( ph -> B C_ C ) $.
    $( A chained subclass and equality deduction.  (Contributed by NM,
       25-Apr-2004.) $)
    syl5eqss $p |- ( ph -> A C_ C ) $=
      ( wss sseq1i sylibr ) ACDGBDGFBCDEHI $.
  $}

  ${
    syl5eqssr.1 $e |- B = A $.
    syl5eqssr.2 $e |- ( ph -> B C_ C ) $.
    $( A chained subclass and equality deduction.  (Contributed by NM,
       25-Apr-2004.) $)
    syl5eqssr $p |- ( ph -> A C_ C ) $=
      ( eqcomi syl5eqss ) ABCDCBEGFH $.
  $}

  ${
    syl6sseq.1 $e |- ( ph -> A C_ B ) $.
    syl6sseq.2 $e |- B = C $.
    $( A chained subclass and equality deduction.  (Contributed by NM,
       25-Apr-2004.) $)
    syl6sseq $p |- ( ph -> A C_ C ) $=
      ( wss sseq2i sylib ) ABCGBDGECDBFHI $.
  $}

  ${
    syl6ssr.1 $e |- ( ph -> A C_ B ) $.
    syl6ssr.2 $e |- C = B $.
    $( A chained subclass and equality deduction.  (Contributed by NM,
       25-Apr-2004.) $)
    syl6sseqr $p |- ( ph -> A C_ C ) $=
      ( eqcomi syl6sseq ) ABCDEDCFGH $.
  $}

  ${
    syl5sseq.1 $e |- B C_ A $.
    syl5sseq.2 $e |- ( ph -> A = C ) $.
    $( Subclass transitivity deduction.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.) $)
    syl5sseq $p |- ( ph -> B C_ C ) $=
      ( wceq wss sseq2 biimpa sylancl ) ABDGZCBHZCDHZFELMNBDCIJK $.
  $}

  ${
    syl5sseqr.1 $e |- B C_ A $.
    syl5sseqr.2 $e |- ( ph -> C = A ) $.
    $( Subclass transitivity deduction.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.) $)
    syl5sseqr $p |- ( ph -> B C_ C ) $=
      ( wss a1i sseqtr4d ) ACBDCBGAEHFI $.
  $}

  ${
    syl6eqss.1 $e |- ( ph -> A = B ) $.
    syl6eqss.2 $e |- B C_ C $.
    $( A chained subclass and equality deduction.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    syl6eqss $p |- ( ph -> A C_ C ) $=
      ( wss a1i eqsstrd ) ABCDECDGAFHI $.
  $}

  ${
    syl6eqssr.1 $e |- ( ph -> B = A ) $.
    syl6eqssr.2 $e |- B C_ C $.
    $( A chained subclass and equality deduction.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    syl6eqssr $p |- ( ph -> A C_ C ) $=
      ( eqcomd syl6eqss ) ABCDACBEGFH $.
  $}

  $( Equality implies the subclass relation.  (Contributed by NM, 21-Jun-1993.)
     (Proof shortened by Andrew Salmon, 21-Jun-2011.) $)
  eqimss $p |- ( A = B -> A C_ B ) $=
    ( wceq wss eqss simplbi ) ABCABDBADABEF $.

  $( Equality implies the subclass relation.  (Contributed by NM,
     23-Nov-2003.) $)
  eqimss2 $p |- ( B = A -> A C_ B ) $=
    ( wss eqimss eqcoms ) ABCABABDE $.

  ${
    eqimssi.1 $e |- A = B $.
    $( Infer subclass relationship from equality.  (Contributed by NM,
       6-Jan-2007.) $)
    eqimssi $p |- A C_ B $=
      ( ssid sseqtri ) AABADCE $.

    $( Infer subclass relationship from equality.  (Contributed by NM,
       7-Jan-2007.) $)
    eqimss2i $p |- B C_ A $=
      ( ssid sseqtr4i ) BBABDCE $.
  $}

  $( Two classes are different if they don't include the same class.
     (Contributed by NM, 23-Apr-2015.) $)
  nssne1 $p |- ( ( A C_ B /\ -. A C_ C ) -> B =/= C ) $=
    ( wss wn wne wceq sseq2 biimpcd necon3bd imp ) ABDZACDZEBCFLMBCBCGLMBCAHIJK
    $.

  $( Two classes are different if they are not subclasses of the same class.
     (Contributed by NM, 23-Apr-2015.) $)
  nssne2 $p |- ( ( A C_ C /\ -. B C_ C ) -> A =/= B ) $=
    ( wss wn wne wceq sseq1 biimpcd necon3bd imp ) ACDZBCDZEABFLMABABGLMABCHIJK
    $.

  ${
    $d x A $.  $d x B $.
    $( Negation of subclass relationship.  Exercise 13 of [TakeutiZaring]
       p. 18.  (Contributed by NM, 25-Feb-1996.)  (Proof shortened by Andrew
       Salmon, 21-Jun-2011.) $)
    nss $p |- ( -. A C_ B <-> E. x ( x e. A /\ -. x e. B ) ) $=
      ( cv wcel wn wa wex wss wi wal exanali dfss2 xchbinxr bicomi ) ADZBEZPCEZ
      FGAHZBCIZFSQRJAKTQRALABCMNO $.
  $}

  $( Demonstrate by witnesses that two classes lack a subclass relation.
     (Contributed by Stefan O'Rear, 5-Feb-2015.) $)
  nelss $p |- ( ( A e. B /\ -. A e. C ) -> -. B C_ C ) $=
    ( wcel wss ssel com12 con3dimp ) ABDZBCEZACDZJIKBCAFGH $.

  ${
    ssrexf.1 $e |- F/_ x A $.
    ssrexf.2 $e |- F/_ x B $.
    $( restricted existential quantification follows from a subclass
       relationship.  (Contributed by Glauco Siliprandi, 20-Apr-2017.) $)
    ssrexf $p |- ( A C_ B -> ( E. x e. A ph -> E. x e. B ph ) ) $=
      ( wss cv wcel wa wex wrex nfss ssel anim1d eximd df-rex 3imtr4g ) CDGZBHZ
      CIZAJZBKTDIZAJZBKABCLABDLSUBUDBBCDEFMSUAUCACDTNOPABCQABDQR $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Quantification restricted to a subclass.  (Contributed by NM,
       11-Mar-2006.) $)
    ssralv $p |- ( A C_ B -> ( A. x e. B ph -> A. x e. A ph ) ) $=
      ( wss cv wcel ssel imim1d ralimdv2 ) CDEZAABDCKBFZCGLDGACDLHIJ $.

    $( Existential quantification restricted to a subclass.  (Contributed by
       NM, 11-Jan-2007.) $)
    ssrexv $p |- ( A C_ B -> ( E. x e. A ph -> E. x e. B ph ) ) $=
      ( wss cv wcel ssel anim1d reximdv2 ) CDEZAABCDKBFZCGLDGACDLHIJ $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Restricted universal quantification on a subset in terms of superset.
       (Contributed by Stefan O'Rear, 3-Apr-2015.) $)
    ralss $p |- ( A C_ B -> ( A. x e. A ph <->
          A. x e. B ( x e. A -> ph ) ) ) $=
      ( wss cv wcel wi wa ssel pm4.71rd imbi1d impexp syl6bb ralbidv2 ) CDEZABF
      ZCGZAHZBCDPSQDGZRIZAHTSHPRUAAPRTCDQJKLTRAMNO $.

    $( Restricted existential quantification on a subset in terms of superset.
       (Contributed by Stefan O'Rear, 3-Apr-2015.) $)
    rexss $p |- ( A C_ B -> ( E. x e. A ph <->
          E. x e. B ( x e. A /\ ph ) ) ) $=
      ( wss cv wcel wa ssel pm4.71rd anbi1d anass syl6bb rexbidv2 ) CDEZABFZCGZ
      AHZBCDORPDGZQHZAHSRHOQTAOQSCDPIJKSQALMN $.
  $}

  $( Class abstractions in a subclass relationship.  (Contributed by NM,
     3-Jul-1994.) $)
  ss2ab $p |- ( { x | ph } C_ { x | ps } <-> A. x ( ph -> ps ) ) $=
    ( cab wss cv wcel wi wal nfab1 dfss2f abid imbi12i albii bitri ) ACDZBCDZEC
    FZPGZRQGZHZCIABHZCICPQACJBCJKUAUBCSATBACLBCLMNO $.

  ${
    $d x A $.
    $( Class abstraction in a subclass relationship.  (Contributed by NM,
       16-Aug-2006.) $)
    abss $p |- ( { x | ph } C_ A <-> A. x ( ph -> x e. A ) ) $=
      ( cab wss cv wcel wi wal abid2 sseq2i ss2ab bitr3i ) ABDZCENBFCGZBDZEAOHB
      IPCNBCJKAOBLM $.

    $( Subclass of a class abstraction.  (Contributed by NM, 16-Aug-2006.) $)
    ssab $p |- ( A C_ { x | ph } <-> A. x ( x e. A -> ph ) ) $=
      ( cab wss cv wcel wi wal abid2 sseq1i ss2ab bitr3i ) CABDZEBFCGZBDZNEOAHB
      IPCNBCJKOABLM $.

    $( The relation for a subclass of a class abstraction is equivalent to
       restricted quantification.  (Contributed by NM, 6-Sep-2006.) $)
    ssabral $p |- ( A C_ { x | ph } <-> A. x e. A ph ) $=
      ( cab wss cv wcel wi wal wral ssab df-ral bitr4i ) CABDEBFCGAHBIABCJABCKA
      BCLM $.
  $}

  ${
    ss2abi.1 $e |- ( ph -> ps ) $.
    $( Inference of abstraction subclass from implication.  (Contributed by NM,
       31-Mar-1995.) $)
    ss2abi $p |- { x | ph } C_ { x | ps } $=
      ( cab wss wi ss2ab mpgbir ) ACEBCEFABGCABCHDI $.
  $}

  ${
    $d x ph $.
    ss2abdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction of abstraction subclass from implication.  (Contributed by NM,
       29-Jul-2011.) $)
    ss2abdv $p |- ( ph -> { x | ps } C_ { x | ch } ) $=
      ( wi wal cab wss alrimiv ss2ab sylibr ) ABCFZDGBDHCDHIAMDEJBCDKL $.
  $}

  ${
    $d x ph $.  $d x A $.
    abssdv.1 $e |- ( ph -> ( ps -> x e. A ) ) $.
    $( Deduction of abstraction subclass from implication.  (Contributed by NM,
       20-Jan-2006.) $)
    abssdv $p |- ( ph -> { x | ps } C_ A ) $=
      ( cv wcel wi wal cab wss alrimiv abss sylibr ) ABCFDGHZCIBCJDKAOCELBCDMN
      $.
  $}

  ${
    $d x A $.
    abssi.1 $e |- ( ph -> x e. A ) $.
    $( Inference of abstraction subclass from implication.  (Contributed by NM,
       20-Jan-2006.) $)
    abssi $p |- { x | ph } C_ A $=
      ( cab cv wcel ss2abi abid2 sseqtri ) ABEBFCGZBECAKBDHBCIJ $.
  $}

  $( Restricted abstraction classes in a subclass relationship.  (Contributed
     by NM, 30-May-1999.) $)
  ss2rab $p |- ( { x e. A | ph } C_ { x e. A | ps } <->
               A. x e. A ( ph -> ps ) ) $=
    ( crab wss cv wcel wa cab wi wal df-rab sseq12i ss2ab df-ral imdistan albii
    wral bitr2i 3bitri ) ACDEZBCDEZFCGDHZAIZCJZUDBIZCJZFUEUGKZCLZABKZCDSZUBUFUC
    UHACDMBCDMNUEUGCOULUDUKKZCLUJUKCDPUMUICUDABQRTUA $.

  ${
    $d x B $.
    $( Restricted class abstraction in a subclass relationship.  (Contributed
       by NM, 16-Aug-2006.) $)
    rabss $p |- ( { x e. A | ph } C_ B <-> A. x e. A ( ph -> x e. B ) ) $=
      ( crab wss cv wcel wa cab wal wral df-rab sseq1i abss impexp albii df-ral
      wi bitr4i 3bitri ) ABCEZDFBGZCHZAIZBJZDFUEUCDHZSZBKZAUGSZBCLZUBUFDABCMNUE
      BDOUIUDUJSZBKUKUHULBUDAUGPQUJBCRTUA $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Subclass of a restricted class abstraction.  (Contributed by NM,
       16-Aug-2006.) $)
    ssrab $p |- ( B C_ { x e. A | ph } <-> ( B C_ A /\ A. x e. B ph ) ) $=
      ( crab wss cv wcel wa cab wal wral df-rab sseq2i ssab dfss3 anbi1i r19.26
      wi df-ral 3bitr2ri 3bitri ) DABCEZFDBGZCHZAIZBJZFUDDHUFSBKZDCFZABDLZIZUCU
      GDABCMNUFBDOUKUEBDLZUJIUFBDLUHUIULUJBDCPQUEABDRUFBDTUAUB $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    ssrabdv.1 $e |- ( ph -> B C_ A ) $.
    ssrabdv.2 $e |- ( ( ph /\ x e. B ) -> ps ) $.
    $( Subclass of a restricted class abstraction (deduction rule).
       (Contributed by NM, 31-Aug-2006.) $)
    ssrabdv $p |- ( ph -> B C_ { x e. A | ps } ) $=
      ( wss wral crab ralrimiva ssrab sylanbrc ) AEDHBCEIEBCDJHFABCEGKBCDELM $.
  $}

  ${
    $d x B $.  $d x ph $.
    rabssdv.1 $e |- ( ( ph /\ x e. A /\ ps ) -> x e. B ) $.
    $( Subclass of a restricted class abstraction (deduction rule).
       (Contributed by NM, 2-Feb-2015.) $)
    rabssdv $p |- ( ph -> { x e. A | ps } C_ B ) $=
      ( cv wcel wi wral crab wss 3exp ralrimiv rabss sylibr ) ABCGZEHZIZCDJBCDK
      ELASCDAQDHBRFMNBCDEOP $.
  $}

  ${
    $d x ph $.
    ss2rabdv.1 $e |- ( ( ph /\ x e. A ) -> ( ps -> ch ) ) $.
    $( Deduction of restricted abstraction subclass from implication.
       (Contributed by NM, 30-May-2006.) $)
    ss2rabdv $p |- ( ph -> { x e. A | ps } C_ { x e. A | ch } ) $=
      ( wi wral crab wss ralrimiva ss2rab sylibr ) ABCGZDEHBDEICDEIJANDEFKBCDEL
      M $.
  $}

  ${
    ss2rabi.1 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Inference of restricted abstraction subclass from implication.
       (Contributed by NM, 14-Oct-1999.) $)
    ss2rabi $p |- { x e. A | ph } C_ { x e. A | ps } $=
      ( crab wss wi ss2rab mprgbir ) ACDFBCDFGABHCDABCDIEJ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Subclass law for restricted abstraction.  (Contributed by NM,
       18-Dec-2004.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    rabss2 $p |- ( A C_ B -> { x e. A | ph } C_ { x e. B | ph } ) $=
      ( wss cv wcel wa cab crab wi wal pm3.45 alimi dfss2 ss2ab 3imtr4i 3sstr4g
      df-rab ) CDEZBFZCGZAHZBIZUADGZAHZBIZABCJABDJUBUEKZBLUCUFKZBLTUDUGEUHUIBUB
      UEAMNBCDOUCUFBPQABCSABDSR $.

    $( Subclass relation for the restriction of a class abstraction.
       (Contributed by NM, 31-Mar-1995.) $)
    ssab2 $p |- { x | ( x e. A /\ ph ) } C_ A $=
      ( cv wcel wa simpl abssi ) BDCEZAFBCIAGH $.

    $( Subclass relation for a restricted class.  (Contributed by NM,
       19-Mar-1997.) $)
    ssrab2 $p |- { x e. A | ph } C_ A $=
      ( crab cv wcel wa cab df-rab ssab2 eqsstri ) ABCDBECFAGBHCABCIABCJK $.
  $}

  ${
    $d A x $.
    ssrab3.1 $e |- B = { x e. A | ph } $.
    $( Subclass relation for a restricted class abstraction.  (Contributed by
       Jonathan Ben-Naim, 3-Jun-2011.) $)
    ssrab3 $p |- B C_ A $=
      ( crab ssrab2 eqsstri ) DABCFCEABCGH $.
  $}

  ${
    $d V x $.
    $( If the restricting class of a restricted class abstraction is a subset
       of this restricted class abstraction, it is equal to this restricted
       class abstraction.  (Contributed by Alexander van der Vekens,
       31-Dec-2017.) $)
    ssrabeq $p |- ( V C_ { x e. V | ph } <-> V = { x e. V | ph } ) $=
      ( crab wss wa wceq ssrab2 biantru eqss bitr4i ) CABCDZEZMLCEZFCLGNMABCHIC
      LJK $.
  $}

  $( A restricted class is a subclass of the corresponding unrestricted class.
     (Contributed by Mario Carneiro, 23-Dec-2016.) $)
  rabssab $p |- { x e. A | ph } C_ { x | ph } $=
    ( crab cv wcel wa cab df-rab simpr ss2abi eqsstri ) ABCDBECFZAGZBHABHABCINA
    BMAJKL $.

  ${
    $d x y $.  $d y z A $.  $d y z B $.  $d x z C $.
    $( A subset relationship useful for converting union to indexed union using
       ~ dfiun2 or ~ dfiun2g and intersection to indexed intersection using
       ~ dfiin2 .  (Contributed by NM, 5-Oct-2006.)  (Proof shortened by Mario
       Carneiro, 26-Sep-2015.) $)
    uniiunlem $p |- ( A. x e. A B e. D ->
                     ( A. x e. A B e. C <-> { y | E. x e. A y = B } C_ C ) ) $=
      ( vz cv wceq wrex cab wss wcel wi wal wral eqeq1 rexbidv cbvabv wb sseq1i
      r19.23v albii ralcom4 abss 3bitr4i bitr4i nfv eleq1 ceqsalg ralbi syl5rbb
      ralimi syl ) BHZDIZACJZBKZELZGHZDIZUTEMZNZGOZACPZDFMZACPZDEMZACPZUSVAACJZ
      GKZELZVEURVKEUQVJBGUOUTIUPVAACUOUTDQRSUAVCACPZGOVJVBNZGOVEVLVMVNGVAVBACUB
      UCVCAGCUDVJGEUEUFUGVGVDVHTZACPVEVITVFVOACVBVHGDFVHGUHUTDEUIUJUMVDVHACUKUN
      UL $.
  $}

  $( Alternate definition of proper subclass.  (Contributed by NM,
     7-Feb-1996.) $)
  dfpss2 $p |- ( A C. B <-> ( A C_ B /\ -. A = B ) ) $=
    ( wpss wss wne wa wceq wn df-pss df-ne anbi2i bitri ) ABCABDZABEZFMABGHZFAB
    INOMABJKL $.

  $( Alternate definition of proper subclass.  (Contributed by NM, 7-Feb-1996.)
     (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
  dfpss3 $p |- ( A C. B <-> ( A C_ B /\ -. B C_ A ) ) $=
    ( wpss wss wceq wn wa dfpss2 eqss baib notbid pm5.32i bitri ) ABCABDZABEZFZ
    GNBADZFZGABHNPRNOQONQABIJKLM $.

  $( Equality theorem for proper subclass.  (Contributed by NM, 7-Feb-1996.) $)
  psseq1 $p |- ( A = B -> ( A C. C <-> B C. C ) ) $=
    ( wceq wss wne wa wpss sseq1 neeq1 anbi12d df-pss 3bitr4g ) ABDZACEZACFZGBC
    EZBCFZGACHBCHNOQPRABCIABCJKACLBCLM $.

  $( Equality theorem for proper subclass.  (Contributed by NM, 7-Feb-1996.) $)
  psseq2 $p |- ( A = B -> ( C C. A <-> C C. B ) ) $=
    ( wceq wss wne wa wpss sseq2 neeq2 anbi12d df-pss 3bitr4g ) ABDZCAEZCAFZGCB
    EZCBFZGCAHCBHNOQPRABCIABCJKCALCBLM $.

  ${
    psseq1i.1 $e |- A = B $.
    $( An equality inference for the proper subclass relationship.
       (Contributed by NM, 9-Jun-2004.) $)
    psseq1i $p |- ( A C. C <-> B C. C ) $=
      ( wceq wpss wb psseq1 ax-mp ) ABEACFBCFGDABCHI $.

    $( An equality inference for the proper subclass relationship.
       (Contributed by NM, 9-Jun-2004.) $)
    psseq2i $p |- ( C C. A <-> C C. B ) $=
      ( wceq wpss wb psseq2 ax-mp ) ABECAFCBFGDABCHI $.

    ${
      psseq12i.2 $e |- C = D $.
      $( An equality inference for the proper subclass relationship.
         (Contributed by NM, 9-Jun-2004.) $)
      psseq12i $p |- ( A C. C <-> B C. D ) $=
        ( wpss psseq1i psseq2i bitri ) ACGBCGBDGABCEHCDBFIJ $.
    $}
  $}

  ${
    psseq1d.1 $e |- ( ph -> A = B ) $.
    $( An equality deduction for the proper subclass relationship.
       (Contributed by NM, 9-Jun-2004.) $)
    psseq1d $p |- ( ph -> ( A C. C <-> B C. C ) ) $=
      ( wceq wpss wb psseq1 syl ) ABCFBDGCDGHEBCDIJ $.

    $( An equality deduction for the proper subclass relationship.
       (Contributed by NM, 9-Jun-2004.) $)
    psseq2d $p |- ( ph -> ( C C. A <-> C C. B ) ) $=
      ( wceq wpss wb psseq2 syl ) ABCFDBGDCGHEBCDIJ $.

    ${
      psseq12d.2 $e |- ( ph -> C = D ) $.
      $( An equality deduction for the proper subclass relationship.
         (Contributed by NM, 9-Jun-2004.) $)
      psseq12d $p |- ( ph -> ( A C. C <-> B C. D ) ) $=
        ( wpss psseq1d psseq2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
    $}
  $}

  $( A proper subclass is a subclass.  Theorem 10 of [Suppes] p. 23.
     (Contributed by NM, 7-Feb-1996.) $)
  pssss $p |- ( A C. B -> A C_ B ) $=
    ( wpss wss wne df-pss simplbi ) ABCABDABEABFG $.

  $( Two classes in a proper subclass relationship are not equal.  (Contributed
     by NM, 16-Feb-2015.) $)
  pssne $p |- ( A C. B -> A =/= B ) $=
    ( wpss wss wne df-pss simprbi ) ABCABDABEABFG $.

  ${
    pssssd.1 $e |- ( ph -> A C. B ) $.
    $( Deduce subclass from proper subclass.  (Contributed by NM,
       29-Feb-1996.) $)
    pssssd $p |- ( ph -> A C_ B ) $=
      ( wpss wss pssss syl ) ABCEBCFDBCGH $.

    $( Proper subclasses are unequal.  Deduction form of ~ pssne .
       (Contributed by David Moews, 1-May-2017.) $)
    pssned $p |- ( ph -> A =/= B ) $=
      ( wpss wne pssne syl ) ABCEBCFDBCGH $.
  $}

  $( Subclass in terms of proper subclass.  (Contributed by NM,
     25-Feb-1996.) $)
  sspss $p |- ( A C_ B <-> ( A C. B \/ A = B ) ) $=
    ( wss wpss wceq wo wn dfpss2 simplbi2 con1d orrd pssss eqimss jaoi impbii )
    ABCZABDZABEZFPQRPRQQPRGABHIJKQPRABLABMNO $.

  $( Proper subclass is irreflexive.  Theorem 7 of [Suppes] p. 23.
     (Contributed by NM, 7-Feb-1996.) $)
  pssirr $p |- -. A C. A $=
    ( wpss wss wn wa pm3.24 dfpss3 mtbir ) AABAACZIDEIFAAGH $.

  $( Proper subclass has no 2-cycle loops.  Compare Theorem 8 of [Suppes]
     p. 23.  (Contributed by NM, 7-Feb-1996.)  (Proof shortened by Andrew
     Salmon, 26-Jun-2011.) $)
  pssn2lp $p |- -. ( A C. B /\ B C. A ) $=
    ( wpss wn wi wa wss dfpss3 simprbi pssss nsyl imnan mpbi ) ABCZBACZDENOFDNB
    AGZONABGPDABHIBAJKNOLM $.

  $( Two ways of stating trichotomy with respect to inclusion.  (Contributed by
     NM, 12-Aug-2004.) $)
  sspsstri $p |- ( ( A C_ B \/ B C_ A ) <-> ( A C. B \/ A = B \/ B C. A ) ) $=
    ( wpss wo wceq wss w3o or32 sspss eqcom orbi2i bitri orbi12i orordir bitr4i
    df-3or 3bitr4i ) ABCZBACZDABEZDZRTDZSDABFZBAFZDZRTSGRSTHUEUBSTDZDUAUCUBUDUF
    ABIUDSBAEZDUFBAIUGTSBAJKLMRSTNORTSPQ $.

  $( Partial trichotomy law for subclasses.  (Contributed by NM, 16-May-1996.)
     (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
  ssnpss $p |- ( A C_ B -> -. B C. A ) $=
    ( wpss wss wn dfpss3 simprbi con2i ) BACZABDZIBADJEBAFGH $.

  $( Transitive law for proper subclass.  Theorem 9 of [Suppes] p. 23.
     (Contributed by NM, 7-Feb-1996.) $)
  psstr $p |- ( ( A C. B /\ B C. C ) -> A C. C ) $=
    ( wpss wa wss wceq pssss sylan9ss pssn2lp psseq1 anbi1d mtbiri con2i dfpss2
    wn sylanbrc ) ABDZBCDZEZACFACGZPACDRSABCABHBCHIUATUATCBDZSECBJUARUBSACBKLMN
    ACOQ $.

  $( Transitive law for subclass and proper subclass.  (Contributed by NM,
     3-Apr-1996.) $)
  sspsstr $p |- ( ( A C_ B /\ B C. C ) -> A C. C ) $=
    ( wss wpss wceq wo sspss wi psstr ex psseq1 biimprd jaoi imp sylanb ) ABDAB
    EZABFZGZBCEZACEZABHSTUAQTUAIRQTUAABCJKRUATABCLMNOP $.

  $( Transitive law for subclass and proper subclass.  (Contributed by NM,
     3-Apr-1996.) $)
  psssstr $p |- ( ( A C. B /\ B C_ C ) -> A C. C ) $=
    ( wss wpss wceq wo sspss psstr ex psseq2 biimpcd jaod imp sylan2b ) BCDABEZ
    BCEZBCFZGZACEZBCHPSTPQTRPQTABCIJRPTBCAKLMNO $.

  ${
    psstrd.1 $e |- ( ph -> A C. B ) $.
    psstrd.2 $e |- ( ph -> B C. C ) $.
    $( Proper subclass inclusion is transitive.  Deduction form of ~ psstr .
       (Contributed by David Moews, 1-May-2017.) $)
    psstrd $p |- ( ph -> A C. C ) $=
      ( wpss psstr syl2anc ) ABCGCDGBDGEFBCDHI $.
  $}

  ${
    sspsstrd.1 $e |- ( ph -> A C_ B ) $.
    sspsstrd.2 $e |- ( ph -> B C. C ) $.
    $( Transitivity involving subclass and proper subclass inclusion.
       Deduction form of ~ sspsstr .  (Contributed by David Moews,
       1-May-2017.) $)
    sspsstrd $p |- ( ph -> A C. C ) $=
      ( wss wpss sspsstr syl2anc ) ABCGCDHBDHEFBCDIJ $.
  $}

  ${
    psssstrd.1 $e |- ( ph -> A C. B ) $.
    psssstrd.2 $e |- ( ph -> B C_ C ) $.
    $( Transitivity involving subclass and proper subclass inclusion.
       Deduction form of ~ psssstr .  (Contributed by David Moews,
       1-May-2017.) $)
    psssstrd $p |- ( ph -> A C. C ) $=
      ( wpss wss psssstr syl2anc ) ABCGCDHBDGEFBCDIJ $.
  $}

  $( A class is not a proper subclass of another iff it satisfies a
     one-directional form of ~ eqss .  (Contributed by Mario Carneiro,
     15-May-2015.) $)
  npss $p |- ( -. A C. B <-> ( A C_ B -> A = B ) ) $=
    ( wss wceq wi wpss wn wa pm4.61 dfpss2 bitr4i con1bii ) ABCZABDZEZABFZOGMNG
    HPMNIABJKL $.

  $( A subclass missing a member is a proper subclass.  (Contributed by NM,
     12-Jan-2002.) $)
  ssnelpss $p |- ( A C_ B -> ( ( C e. B /\ -. C e. A ) -> A C. B ) ) $=
    ( wcel wn wa wceq wss wpss nelneq2 eqcom sylnib dfpss2 baibr syl5ib ) CBDCA
    DEFZABGZEZABHZABIZPBAGQCBAJBAKLTSRABMNO $.

  ${
    ssnelpssd.1 $e |- ( ph -> A C_ B ) $.
    ssnelpssd.2 $e |- ( ph -> C e. B ) $.
    ssnelpssd.3 $e |- ( ph -> -. C e. A ) $.
    $( Subclass inclusion with one element of the superclass missing is proper
       subclass inclusion.  Deduction form of ~ ssnelpss .  (Contributed by
       David Moews, 1-May-2017.) $)
    ssnelpssd $p |- ( ph -> A C. B ) $=
      ( wcel wn wpss wss wa wi ssnelpss syl mp2and ) ADCHZDBHIZBCJZFGABCKQRLSME
      BCDNOP $.
  $}

  ${
    $d A x $.  $d B x $.
    $( If there is an element of a class which is not contained in a subclass,
       the subclass is a proper subclass.  (Contributed by AV, 29-Jan-2020.) $)
    ssexnelpss $p |- ( ( A C_ B /\ E. x e. B x e/ A ) -> A C. B ) $=
      ( wss cv wnel wrex wpss wcel df-nel ssnelpss expdimp syl5bi rexlimdva imp
      wn wa ) BCDZAEZBFZACGBCHZRTUAACTSBIPZRSCIZQUASBJRUCUBUABCSKLMNO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The difference, union, and intersection of two classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The difference of two classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Equality theorem for class difference.  (Contributed by NM,
       10-Feb-1997.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    difeq1 $p |- ( A = B -> ( A \ C ) = ( B \ C ) ) $=
      ( vx wceq cv wcel wn crab cdif rabeq dfdif2 3eqtr4g ) ABEDFCGHZDAINDBIACJ
      BCJNDABKDACLDBCLM $.

    $( Equality theorem for class difference.  (Contributed by NM,
       10-Feb-1997.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    difeq2 $p |- ( A = B -> ( C \ A ) = ( C \ B ) ) $=
      ( vx wceq cv wcel wn crab cdif eleq2 notbid rabbidv dfdif2 3eqtr4g ) ABEZ
      DFZAGZHZDCIQBGZHZDCICAJCBJPSUADCPRTABQKLMDCANDCBNO $.
  $}

  $( Equality theorem for class difference.  (Contributed by FL,
     31-Aug-2009.) $)
  difeq12 $p |- ( ( A = B /\ C = D ) -> ( A \ C ) = ( B \ D ) ) $=
    ( wceq cdif difeq1 difeq2 sylan9eq ) ABECDEACFBCFBDFABCGCDBHI $.

  ${
    difeq1i.1 $e |- A = B $.
    $( Inference adding difference to the right in a class equality.
       (Contributed by NM, 15-Nov-2002.) $)
    difeq1i $p |- ( A \ C ) = ( B \ C ) $=
      ( wceq cdif difeq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Inference adding difference to the left in a class equality.
       (Contributed by NM, 15-Nov-2002.) $)
    difeq2i $p |- ( C \ A ) = ( C \ B ) $=
      ( wceq cdif difeq2 ax-mp ) ABECAFCBFEDABCGH $.

    ${
      difeq12i.2 $e |- C = D $.
      $( Equality inference for class difference.  (Contributed by NM,
         29-Aug-2004.) $)
      difeq12i $p |- ( A \ C ) = ( B \ D ) $=
        ( cdif difeq1i difeq2i eqtri ) ACGBCGBDGABCEHCDBFIJ $.
    $}
  $}

  ${
    difeq1d.1 $e |- ( ph -> A = B ) $.
    $( Deduction adding difference to the right in a class equality.
       (Contributed by NM, 15-Nov-2002.) $)
    difeq1d $p |- ( ph -> ( A \ C ) = ( B \ C ) ) $=
      ( wceq cdif difeq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Deduction adding difference to the left in a class equality.
       (Contributed by NM, 15-Nov-2002.) $)
    difeq2d $p |- ( ph -> ( C \ A ) = ( C \ B ) ) $=
      ( wceq cdif difeq2 syl ) ABCFDBGDCGFEBCDHI $.
  $}

  ${
    difeq12d.1 $e |- ( ph -> A = B ) $.
    difeq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for class difference.  (Contributed by FL,
       29-May-2014.) $)
    difeq12d $p |- ( ph -> ( A \ C ) = ( B \ D ) ) $=
      ( cdif difeq1d difeq2d eqtrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    difeqri.1 $e |- ( ( x e. A /\ -. x e. B ) <-> x e. C ) $.
    $( Inference from membership to difference.  (Contributed by NM,
       17-May-1998.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    difeqri $p |- ( A \ B ) = C $=
      ( cdif cv wcel wn wa eldif bitri eqriv ) ABCFZDAGZNHOBHOCHIJODHOBCKELM $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    nfdif.1 $e |- F/_ x A $.
    nfdif.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for class difference.  (Contributed by
       NM, 3-Dec-2003.)  (Revised by Mario Carneiro, 13-Oct-2016.) $)
    nfdif $p |- F/_ x ( A \ B ) $=
      ( vy cdif cv wcel wn crab dfdif2 nfcri nfn nfrab nfcxfr ) ABCGFHCIZJZFBKF
      BCLRAFBQAAFCEMNDOP $.
  $}

  $( Implication of membership in a class difference.  (Contributed by NM,
     29-Apr-1994.) $)
  eldifi $p |- ( A e. ( B \ C ) -> A e. B ) $=
    ( cdif wcel wn eldif simplbi ) ABCDEABEACEFABCGH $.

  $( Implication of membership in a class difference.  (Contributed by NM,
     3-May-1994.) $)
  eldifn $p |- ( A e. ( B \ C ) -> -. A e. C ) $=
    ( cdif wcel wn eldif simprbi ) ABCDEABEACEFABCGH $.

  $( A set does not belong to a class excluding it.  (Contributed by NM,
     27-Jun-1994.) $)
  elndif $p |- ( A e. B -> -. A e. ( C \ B ) ) $=
    ( cdif wcel eldifn con2i ) ACBDEABEACBFG $.

  $( Implication of membership in a class difference.  (Contributed by NM,
     28-Jun-1994.) $)
  neldif $p |- ( ( A e. B /\ -. A e. ( B \ C ) ) -> A e. C ) $=
    ( wcel cdif wn eldif simplbi2 con1d imp ) ABDZABCEDZFACDZKMLLKMFABCGHIJ $.

  ${
    $d x A $.  $d x B $.
    $( Double class difference.  Exercise 11 of [TakeutiZaring] p. 22.
       (Contributed by NM, 17-May-1998.) $)
    difdif $p |- ( A \ ( B \ A ) ) = A $=
      ( vx cdif cv wcel wi wa wn pm4.45im eldif xchbinxr anbi2i bitr2i difeqri
      iman ) CABADZACEZAFZSRBFZSGZHSRQFZIZHSTJUAUCSUATSIHUBTSPRBAKLMNO $.

    $( Subclass relationship for class difference.  Exercise 14 of
       [TakeutiZaring] p. 22.  (Contributed by NM, 29-Apr-1994.) $)
    difss $p |- ( A \ B ) C_ A $=
      ( vx cdif cv eldifi ssriv ) CABDACEABFG $.
  $}

  $( A difference of two classes is contained in the minuend.  Deduction form
     of ~ difss .  (Contributed by David Moews, 1-May-2017.) $)
  difssd $p |- ( ph -> ( A \ B ) C_ A ) $=
    ( cdif wss difss a1i ) BCDBEABCFG $.

  $( If a class is contained in a difference, it is contained in the minuend.
     (Contributed by David Moews, 1-May-2017.) $)
  difss2 $p |- ( A C_ ( B \ C ) -> A C_ B ) $=
    ( cdif wss id difss syl6ss ) ABCDZEZAIBJFBCGH $.

  ${
    difss2d.1 $e |- ( ph -> A C_ ( B \ C ) ) $.
    $( If a class is contained in a difference, it is contained in the minuend.
       Deduction form of ~ difss2 .  (Contributed by David Moews,
       1-May-2017.) $)
    difss2d $p |- ( ph -> A C_ B ) $=
      ( cdif wss difss2 syl ) ABCDFGBCGEBCDHI $.
  $}

  $( Preservation of a subclass relationship by class difference.  (Contributed
     by NM, 15-Feb-2007.) $)
  ssdifss $p |- ( A C_ B -> ( A \ C ) C_ B ) $=
    ( cdif wss difss sstr mpan ) ACDZAEABEIBEACFIABGH $.

  ${
    $d x A $.
    $( Double complement under universal class.  Exercise 4.10(s) of
       [Mendelson] p. 231.  (Contributed by NM, 8-Jan-2002.) $)
    ddif $p |- ( _V \ ( _V \ A ) ) = A $=
      ( vx cvv cdif cv wcel wn wa eldif mpbiran con2bii biantrur bitr2i difeqri
      vex ) BCCADZABEZAFZQPFZGZQCFZTHSRSUARGBOZQCAIJKUATUBLMN $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Contraposition law for subsets.  (Contributed by NM, 22-Mar-1998.) $)
    ssconb $p |- ( ( A C_ C /\ B C_ C ) ->
                  ( A C_ ( C \ B ) <-> B C_ ( C \ A ) ) ) $=
      ( vx wss wa cv wcel cdif wi wal wn wb ssel pm5.1 jcab 3bitr4g eldif dfss2
      imbi2i syl2an con2b a1i anbi12d albidv ) ACEZBCEZFZDGZAHZUICBIZHZJZDKUIBH
      ZUICAIZHZJZDKAUKEBUOEUHUMUQDUHUJUICHZUNLZFZJZUNURUJLZFZJZUMUQUHUJURJZUJUS
      JZFUNURJZUNVBJZFVAVDUHVEVGVFVHUFVEVGVEVGMUGACUINBCUINVEVGOUAVFVHMUHUJUNUB
      UCUDUJURUSPUNURVBPQULUTUJUICBRTUPVCUNUICARTQUEDAUKSDBUOSQ $.

    $( Contraposition law for subsets.  Exercise 15 of [TakeutiZaring] p. 22.
       (Contributed by NM, 22-Mar-1998.) $)
    sscon $p |- ( A C_ B -> ( C \ B ) C_ ( C \ A ) ) $=
      ( vx wss cdif cv wcel wn wa ssel con3d anim2d eldif 3imtr4g ssrdv ) ABEZD
      CBFZCAFZQDGZCHZTBHZIZJUATAHZIZJTRHTSHQUCUEUAQUDUBABTKLMTCBNTCANOP $.

    $( Difference law for subsets.  (Contributed by NM, 28-May-1998.) $)
    ssdif $p |- ( A C_ B -> ( A \ C ) C_ ( B \ C ) ) $=
      ( vx wss cdif cv wcel wn wa ssel anim1d eldif 3imtr4g ssrdv ) ABEZDACFZBC
      FZPDGZAHZSCHIZJSBHZUAJSQHSRHPTUBUAABSKLSACMSBCMNO $.
  $}

  ${
    ssdifd.1 $e |- ( ph -> A C_ B ) $.
    $( If ` A ` is contained in ` B ` , then ` ( A \ C ) ` is contained in
       ` ( B \ C ) ` .  Deduction form of ~ ssdif .  (Contributed by David
       Moews, 1-May-2017.) $)
    ssdifd $p |- ( ph -> ( A \ C ) C_ ( B \ C ) ) $=
      ( wss cdif ssdif syl ) ABCFBDGCDGFEBCDHI $.

    $( If ` A ` is contained in ` B ` , then ` ( C \ B ) ` is contained in
       ` ( C \ A ) ` .  Deduction form of ~ sscon .  (Contributed by David
       Moews, 1-May-2017.) $)
    sscond $p |- ( ph -> ( C \ B ) C_ ( C \ A ) ) $=
      ( wss cdif sscon syl ) ABCFDCGDBGFEBCDHI $.

    $( If ` A ` is contained in ` B ` , then ` ( A \ C ) ` is also contained in
       ` B ` .  Deduction form of ~ ssdifss .  (Contributed by David Moews,
       1-May-2017.) $)
    ssdifssd $p |- ( ph -> ( A \ C ) C_ B ) $=
      ( wss cdif ssdifss syl ) ABCFBDGCFEBCDHI $.

    ssdif2d.2 $e |- ( ph -> C C_ D ) $.
    $( If ` A ` is contained in ` B ` and ` C ` is contained in ` D ` , then
       ` ( A \ D ) ` is contained in ` ( B \ C ) ` .  Deduction form.
       (Contributed by David Moews, 1-May-2017.) $)
    ssdif2d $p |- ( ph -> ( A \ D ) C_ ( B \ C ) ) $=
      ( cdif sscond ssdifd sstrd ) ABEHBDHCDHADEBGIABCDFJK $.
  $}

  $( Restricted universal quantification on a class difference in terms of an
     implication.  (Contributed by Alexander van der Vekens, 3-Jan-2018.) $)
  raldifb $p |- ( A. x e. A ( x e/ B -> ph ) <-> A. x e. ( A \ B ) ph ) $=
    ( cv wnel wi cdif wcel wa impexp df-nel anbi2i bitr4i imbi1i bitr3i ralbii2
    wn eldif ) BEZDFZAGZABCCDHZTCIZUBGUDUAJZAGTUCIZAGUDUAAKUEUFAUEUDTDIRZJUFUAU
    GUDTDLMTCDSNOPQ $.

  $( Complementation reverses inclusion.  (Contributed by Andrew Salmon,
     15-Jul-2011.)  (Proof shortened by BJ, 19-Mar-2021.) $)
  complss $p |- ( A C_ B <-> ( _V \ B ) C_ ( _V \ A ) ) $=
    ( wss cvv cdif sscon ddif 3sstr3g impbii ) ABCDBEZDAEZCZABDFLDKEDJEABJKDFAG
    BGHI $.

  $( Two classes are equal if and only if their complements are equal.
     (Contributed by BJ, 19-Mar-2021.) $)
  compleq $p |- ( A = B <-> ( _V \ A ) = ( _V \ B ) ) $=
    ( wss wa cvv cdif wceq complss anbi12ci eqss 3bitr4i ) ABCZBACZDEAFZEBFZCZO
    NCZDABGNOGLQMPABHBAHIABJNOJK $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The union of two classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Expansion of membership in class union.  Theorem 12 of [Suppes] p. 25.
       (Contributed by NM, 7-Aug-1994.) $)
    elun $p |- ( A e. ( B u. C ) <-> ( A e. B \/ A e. C ) ) $=
      ( vx cun wcel cvv wo elex jaoi wceq eleq1 orbi12d df-un elab2g pm5.21nii
      cv ) ABCEZFAGFZABFZACFZHZARITSUAABIACIJDQZBFZUCCFZHUBDARGUCAKUDTUEUAUCABL
      UCACLMDBCNOP $.
  $}

  $( A member of a union that is not member of the first class, is member of
     the second class.  (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
  elunnel1 $p |- ( ( A e. ( B u. C ) /\ -. A e. B ) -> A e. C ) $=
    ( cun wcel wo elun biimpi orcanai ) ABCDEZABEZACEZJKLFABCGHI $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    uneqri.1 $e |- ( ( x e. A \/ x e. B ) <-> x e. C ) $.
    $( Inference from membership to union.  (Contributed by NM,
       21-Jun-1993.) $)
    uneqri $p |- ( A u. B ) = C $=
      ( cun cv wcel wo elun bitri eqriv ) ABCFZDAGZMHNBHNCHINDHNBCJEKL $.
  $}

  ${
    $d x A $.
    $( Idempotent law for union of classes.  Theorem 23 of [Suppes] p. 27.
       (Contributed by NM, 21-Jun-1993.) $)
    unidm $p |- ( A u. A ) = A $=
      ( vx cv wcel oridm uneqri ) BAAABCADEF $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Commutative law for union of classes.  Exercise 6 of [TakeutiZaring]
       p. 17.  (Contributed by NM, 25-Jun-1998.)  (Proof shortened by Andrew
       Salmon, 26-Jun-2011.) $)
    uncom $p |- ( A u. B ) = ( B u. A ) $=
      ( vx cun cv wcel wo orcom elun bitr4i uneqri ) CABBADZCEZAFZMBFZGONGMLFNO
      HMBAIJK $.
  $}

  $( If a class equals the union of two other classes, then it equals the union
     of those two classes commuted. ~ equncom was automatically derived from
     ~ equncomVD using the tools program translate_without_overwriting.cmd and
     minimizing.  (Contributed by Alan Sare, 18-Feb-2012.) $)
  equncom $p |- ( A = ( B u. C ) <-> A = ( C u. B ) ) $=
    ( cun uncom eqeq2i ) BCDCBDABCEF $.

  ${
    equncomi.1 $e |- A = ( B u. C ) $.
    $( Inference form of ~ equncom . ~ equncomi was automatically derived from
       ~ equncomiVD using the tools program translate_without_overwriting.cmd
       and minimizing.  (Contributed by Alan Sare, 18-Feb-2012.) $)
    equncomi $p |- A = ( C u. B ) $=
      ( cun wceq equncom mpbi ) ABCEFACBEFDABCGH $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Equality theorem for the union of two classes.  (Contributed by NM,
       15-Jul-1993.) $)
    uneq1 $p |- ( A = B -> ( A u. C ) = ( B u. C ) ) $=
      ( vx wceq cun cv wcel wo eleq2 orbi1d elun 3bitr4g eqrdv ) ABEZDACFZBCFZO
      DGZAHZRCHZIRBHZTIRPHRQHOSUATABRJKRACLRBCLMN $.
  $}

  $( Equality theorem for the union of two classes.  (Contributed by NM,
     5-Aug-1993.) $)
  uneq2 $p |- ( A = B -> ( C u. A ) = ( C u. B ) ) $=
    ( wceq cun uneq1 uncom 3eqtr4g ) ABDACEBCECAECBEABCFCAGCBGH $.

  $( Equality theorem for the union of two classes.  (Contributed by NM,
     29-Mar-1998.) $)
  uneq12 $p |- ( ( A = B /\ C = D ) -> ( A u. C ) = ( B u. D ) ) $=
    ( wceq cun uneq1 uneq2 sylan9eq ) ABECDEACFBCFBDFABCGCDBHI $.

  ${
    uneq1i.1 $e |- A = B $.
    $( Inference adding union to the right in a class equality.  (Contributed
       by NM, 30-Aug-1993.) $)
    uneq1i $p |- ( A u. C ) = ( B u. C ) $=
      ( wceq cun uneq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Inference adding union to the left in a class equality.  (Contributed by
       NM, 30-Aug-1993.) $)
    uneq2i $p |- ( C u. A ) = ( C u. B ) $=
      ( wceq cun uneq2 ax-mp ) ABECAFCBFEDABCGH $.

    ${
      uneq12i.2 $e |- C = D $.
      $( Equality inference for the union of two classes.  (Contributed by NM,
         12-Aug-2004.)  (Proof shortened by Eric Schmidt, 26-Jan-2007.) $)
      uneq12i $p |- ( A u. C ) = ( B u. D ) $=
        ( wceq cun uneq12 mp2an ) ABGCDGACHBDHGEFABCDIJ $.
    $}
  $}

  ${
    uneq1d.1 $e |- ( ph -> A = B ) $.
    $( Deduction adding union to the right in a class equality.  (Contributed
       by NM, 29-Mar-1998.) $)
    uneq1d $p |- ( ph -> ( A u. C ) = ( B u. C ) ) $=
      ( wceq cun uneq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Deduction adding union to the left in a class equality.  (Contributed by
       NM, 29-Mar-1998.) $)
    uneq2d $p |- ( ph -> ( C u. A ) = ( C u. B ) ) $=
      ( wceq cun uneq2 syl ) ABCFDBGDCGFEBCDHI $.

    ${
      uneq12d.2 $e |- ( ph -> C = D ) $.
      $( Equality deduction for the union of two classes.  (Contributed by NM,
         29-Sep-2004.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
      uneq12d $p |- ( ph -> ( A u. C ) = ( B u. D ) ) $=
        ( wceq cun uneq12 syl2anc ) ABCHDEHBDICEIHFGBCDEJK $.
    $}
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    nfun.1 $e |- F/_ x A $.
    nfun.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for the union of classes.
       (Contributed by NM, 15-Sep-2003.)  (Revised by Mario Carneiro,
       14-Oct-2016.) $)
    nfun $p |- F/_ x ( A u. B ) $=
      ( vy cun cv wcel wo cab df-un nfcri nfor nfab nfcxfr ) ABCGFHZBIZQCIZJZFK
      FBCLTAFRSAAFBDMAFCEMNOP $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Associative law for union of classes.  Exercise 8 of [TakeutiZaring]
       p. 17.  (Contributed by NM, 3-May-1994.)  (Proof shortened by Andrew
       Salmon, 26-Jun-2011.) $)
    unass $p |- ( ( A u. B ) u. C ) = ( A u. ( B u. C ) ) $=
      ( vx cun cv wcel wo elun orbi2i orbi1i orass bitr2i 3bitrri uneqri ) DABE
      ZCABCEZEZDFZRGSAGZSQGZHTSBGZSCGZHZHZSPGZUCHZSAQIUAUDTSBCIJUGTUBHZUCHUEUFU
      HUCSABIKTUBUCLMNO $.
  $}

  $( A rearrangement of union.  (Contributed by NM, 12-Aug-2004.) $)
  un12 $p |- ( A u. ( B u. C ) ) = ( B u. ( A u. C ) ) $=
    ( cun uncom uneq1i unass 3eqtr3i ) ABDZCDBADZCDABCDDBACDDIJCABEFABCGBACGH
    $.

  $( A rearrangement of union.  (Contributed by NM, 12-Aug-2004.)  (Proof
     shortened by Andrew Salmon, 26-Jun-2011.) $)
  un23 $p |- ( ( A u. B ) u. C ) = ( ( A u. C ) u. B ) $=
    ( cun unass un12 uncom 3eqtri ) ABDCDABCDDBACDZDIBDABCEABCFBIGH $.

  $( A rearrangement of the union of 4 classes.  (Contributed by NM,
     12-Aug-2004.) $)
  un4 $p |- ( ( A u. B ) u. ( C u. D ) ) =
            ( ( A u. C ) u. ( B u. D ) ) $=
    ( cun un12 uneq2i unass 3eqtr4i ) ABCDEZEZEACBDEZEZEABEJEACELEKMABCDFGABJHA
    CLHI $.

  $( Union distributes over itself.  (Contributed by NM, 17-Aug-2004.) $)
  unundi $p |- ( A u. ( B u. C ) ) = ( ( A u. B ) u. ( A u. C ) ) $=
    ( cun unidm uneq1i un4 eqtr3i ) AADZBCDZDAJDABDACDDIAJAEFAABCGH $.

  $( Union distributes over itself.  (Contributed by NM, 17-Aug-2004.) $)
  unundir $p |- ( ( A u. B ) u. C ) = ( ( A u. C ) u. ( B u. C ) ) $=
    ( cun unidm uneq2i un4 eqtr3i ) ABDZCCDZDICDACDBCDDJCICEFABCCGH $.

  ${
    $d x A $.  $d x B $.
    $( Subclass relationship for union of classes.  Theorem 25 of [Suppes]
       p. 27.  (Contributed by NM, 5-Aug-1993.) $)
    ssun1 $p |- A C_ ( A u. B ) $=
      ( vx cun cv wcel wo orc elun sylibr ssriv ) CAABDZCEZAFZNMBFZGMLFNOHMABIJ
      K $.
  $}

  $( Subclass relationship for union of classes.  (Contributed by NM,
     30-Aug-1993.) $)
  ssun2 $p |- A C_ ( B u. A ) $=
    ( cun ssun1 uncom sseqtri ) AABCBACABDABEF $.

  $( Subclass law for union of classes.  (Contributed by NM, 5-Aug-1993.) $)
  ssun3 $p |- ( A C_ B -> A C_ ( B u. C ) ) $=
    ( wss cun ssun1 sstr2 mpi ) ABDBBCEZDAIDBCFABIGH $.

  $( Subclass law for union of classes.  (Contributed by NM, 14-Aug-1994.) $)
  ssun4 $p |- ( A C_ B -> A C_ ( C u. B ) ) $=
    ( wss cun ssun2 sstr2 mpi ) ABDBCBEZDAIDBCFABIGH $.

  $( Membership law for union of classes.  (Contributed by NM, 5-Aug-1993.) $)
  elun1 $p |- ( A e. B -> A e. ( B u. C ) ) $=
    ( cun ssun1 sseli ) BBCDABCEF $.

  $( Membership law for union of classes.  (Contributed by NM, 30-Aug-1993.) $)
  elun2 $p |- ( A e. B -> A e. ( C u. B ) ) $=
    ( cun ssun2 sseli ) BCBDABCEF $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Subclass law for union of classes.  (Contributed by NM, 14-Oct-1999.)
       (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    unss1 $p |- ( A C_ B -> ( A u. C ) C_ ( B u. C ) ) $=
      ( vx wss cun cv wcel wo ssel orim1d elun 3imtr4g ssrdv ) ABEZDACFZBCFZODG
      ZAHZRCHZIRBHZTIRPHRQHOSUATABRJKRACLRBCLMN $.

    $( A relationship between subclass and union.  Theorem 26 of [Suppes]
       p. 27.  (Contributed by NM, 30-Aug-1993.)  (Proof shortened by Andrew
       Salmon, 26-Jun-2011.) $)
    ssequn1 $p |- ( A C_ B <-> ( A u. B ) = B ) $=
      ( vx cv wcel wi wal cun wb wceq wo bicom pm4.72 elun bibi1i 3bitr4i albii
      wss dfss2 dfcleq ) CDZAEZUABEZFZCGUAABHZEZUCIZCGABRUEBJUDUGCUCUBUCKZIUHUC
      IUDUGUCUHLUBUCMUFUHUCUAABNOPQCABSCUEBTP $.
  $}

  $( Subclass law for union of classes.  Exercise 7 of [TakeutiZaring] p. 18.
     (Contributed by NM, 14-Oct-1999.) $)
  unss2 $p |- ( A C_ B -> ( C u. A ) C_ ( C u. B ) ) $=
    ( wss cun unss1 uncom 3sstr4g ) ABDACEBCECAECBEABCFCAGCBGH $.

  $( Subclass law for union of classes.  (Contributed by NM, 2-Jun-2004.) $)
  unss12 $p |- ( ( A C_ B /\ C C_ D ) -> ( A u. C ) C_ ( B u. D ) ) $=
    ( wss cun unss1 unss2 sylan9ss ) ABECDEACFBCFBDFABCGCDBHI $.

  $( A relationship between subclass and union.  (Contributed by NM,
     13-Jun-1994.) $)
  ssequn2 $p |- ( A C_ B <-> ( B u. A ) = B ) $=
    ( wss cun wceq ssequn1 uncom eqeq1i bitri ) ABCABDZBEBADZBEABFJKBABGHI $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( The union of two subclasses is a subclass.  Theorem 27 of [Suppes] p. 27
       and its converse.  (Contributed by NM, 11-Jun-2004.) $)
    unss $p |- ( ( A C_ C /\ B C_ C ) <-> ( A u. B ) C_ C ) $=
      ( vx cun wss cv wcel wi wal wa dfss2 19.26 elun imbi1i jaob bitri anbi12i
      wo albii 3bitr4i bitr2i ) ABEZCFDGZUCHZUDCHZIZDJZACFZBCFZKZDUCCLUDAHZUFIZ
      UDBHZUFIZKZDJUMDJZUODJZKUHUKUMUODMUGUPDUGULUNSZUFIUPUEUSUFUDABNOULUFUNPQT
      UIUQUJURDACLDBCLRUAUB $.
  $}

  ${
    unssi.1 $e |- A C_ C $.
    unssi.2 $e |- B C_ C $.
    $( An inference showing the union of two subclasses is a subclass.
       (Contributed by Raph Levien, 10-Dec-2002.) $)
    unssi $p |- ( A u. B ) C_ C $=
      ( wss wa cun pm3.2i unss mpbi ) ACFZBCFZGABHCFLMDEIABCJK $.
  $}

  ${
    unssd.1 $e |- ( ph -> A C_ C ) $.
    unssd.2 $e |- ( ph -> B C_ C ) $.
    $( A deduction showing the union of two subclasses is a subclass.
       (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) $)
    unssd $p |- ( ph -> ( A u. B ) C_ C ) $=
      ( wss cun wa unss biimpi syl2anc ) ABDGZCDGZBCHDGZEFMNIOBCDJKL $.
  $}

  ${
    unssad.1 $e |- ( ph -> ( A u. B ) C_ C ) $.
    $( If ` ( A u. B ) ` is contained in ` C ` , so is ` A ` .  One-way
       deduction form of ~ unss .  Partial converse of ~ unssd .  (Contributed
       by David Moews, 1-May-2017.) $)
    unssad $p |- ( ph -> A C_ C ) $=
      ( wss cun wa unss sylibr simpld ) ABDFZCDFZABCGDFLMHEBCDIJK $.

    $( If ` ( A u. B ) ` is contained in ` C ` , so is ` B ` .  One-way
       deduction form of ~ unss .  Partial converse of ~ unssd .  (Contributed
       by David Moews, 1-May-2017.) $)
    unssbd $p |- ( ph -> B C_ C ) $=
      ( wss cun wa unss sylibr simprd ) ABDFZCDFZABCGDFLMHEBCDIJK $.
  $}

  $( A condition that implies inclusion in the union of two classes.
     (Contributed by NM, 23-Nov-2003.) $)
  ssun $p |- ( ( A C_ B \/ A C_ C ) -> A C_ ( B u. C ) ) $=
    ( wss cun ssun3 ssun4 jaoi ) ABDABCEDACDABCFACBGH $.

  $( Restricted existential quantification over union.  (Contributed by Jeff
     Madsen, 5-Jan-2011.) $)
  rexun $p |- ( E. x e. ( A u. B ) ph <->
                          ( E. x e. A ph \/ E. x e. B ph ) ) $=
    ( cun wrex cv wcel wa wo df-rex 19.43 elun anbi1i andir bitri exbii orbi12i
    wex 3bitr4i ) ABCDEZFBGZUAHZAIZBSZABCFZABDFZJZABUAKUBCHZAIZUBDHZAIZJZBSUJBS
    ZULBSZJUEUHUJULBLUDUMBUDUIUKJZAIUMUCUPAUBCDMNUIUKAOPQUFUNUGUOABCKABDKRTP $.

  $( Restricted quantification over a union.  (Contributed by Scott Fenton,
     12-Apr-2011.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
  ralunb $p |- ( A. x e. ( A u. B ) ph <->
                 ( A. x e. A ph /\ A. x e. B ph ) ) $=
    ( cv cun wcel wi wal wa wral wo elun imbi1i jaob bitri albii df-ral anbi12i
    19.26 3bitr4i ) BEZCDFZGZAHZBIZUBCGZAHZBIZUBDGZAHZBIZJZABUCKABCKZABDKZJUFUH
    UKJZBIUMUEUPBUEUGUJLZAHUPUDUQAUBCDMNUGAUJOPQUHUKBTPABUCRUNUIUOULABCRABDRSUA
    $.

  $( Restricted quantification over union.  (Contributed by Jeff Madsen,
     2-Sep-2009.) $)
  ralun $p |- ( ( A. x e. A ph /\ A. x e. B ph ) -> A. x e. ( A u. B ) ph ) $=
    ( cun wral wa ralunb biimpri ) ABCDEFABCFABDFGABCDHI $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The intersection of two classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Expansion of membership in an intersection of two classes.  Theorem 12
       of [Suppes] p. 25.  (Contributed by NM, 29-Apr-1994.) $)
    elin $p |- ( A e. ( B i^i C ) <-> ( A e. B /\ A e. C ) ) $=
      ( vx cin wcel wa elex adantl cv wceq eleq1 anbi12d df-in elab2g pm5.21nii
      cvv ) ABCEZFAQFZABFZACFZGZARHUASTACHIDJZBFZUCCFZGUBDARQUCAKUDTUEUAUCABLUC
      ACLMDBCNOP $.
  $}

  ${
    elini.1 $e |- A e. B $.
    elini.2 $e |- A e. C $.
    $( Membership in an intersection of two classes.  (Contributed by Glauco
       Siliprandi, 17-Aug-2020.) $)
    elini $p |- A e. ( B i^i C ) $=
      ( cin wcel elin mpbir2an ) ABCFGABGACGDEABCHI $.
  $}

  ${
    elind.1 $e |- ( ph -> X e. A ) $.
    elind.2 $e |- ( ph -> X e. B ) $.
    $( Deduce membership in an intersection of two classes.  (Contributed by
       Jonathan Ben-Naim, 3-Jun-2011.) $)
    elind $p |- ( ph -> X e. ( A i^i B ) ) $=
      ( wcel cin elin sylanbrc ) ADBGDCGDBCHGEFDBCIJ $.
  $}

  $( Membership in an intersection implies membership in the first set.
     (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
  elinel1 $p |- ( A e. ( B i^i C ) -> A e. B ) $=
    ( cin wcel elin simplbi ) ABCDEABEACEABCFG $.

  $( Membership in an intersection implies membership in the second set.
     (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
  elinel2 $p |- ( A e. ( B i^i C ) -> A e. C ) $=
    ( cin wcel elin simprbi ) ABCDEABEACEABCFG $.

  ${
    elin2.x $e |- X = ( B i^i C ) $.
    $( Membership in a class defined as an intersection.  (Contributed by
       Stefan O'Rear, 29-Mar-2015.) $)
    elin2 $p |- ( A e. X <-> ( A e. B /\ A e. C ) ) $=
      ( wcel cin wa eleq2i elin bitri ) ADFABCGZFABFACFHDLAEIABCJK $.
  $}

  ${
    elin1d.1 $e |- ( ph -> X e. ( A i^i B ) ) $.
    $( Elementhood in the first set of an intersection - deduction version.
       (Contributed by Thierry Arnoux, 3-May-2020.) $)
    elin1d $p |- ( ph -> X e. A ) $=
      ( cin wcel elinel1 syl ) ADBCFGDBGEDBCHI $.

    $( Elementhood in the first set of an intersection - deduction version.
       (Contributed by Thierry Arnoux, 3-May-2020.) $)
    elin2d $p |- ( ph -> X e. B ) $=
      ( cin wcel elinel2 syl ) ADBCFGDCGEDBCHI $.
  $}

  ${
    elin3.x $e |- X = ( ( B i^i C ) i^i D ) $.
    $( Membership in a class defined as a ternary intersection.  (Contributed
       by Stefan O'Rear, 29-Mar-2015.) $)
    elin3 $p |- ( A e. X <-> ( A e. B /\ A e. C /\ A e. D ) ) $=
      ( cin wcel wa w3a elin anbi1i elin2 df-3an 3bitr4i ) ABCGZHZADHZIABHZACHZ
      IZRIAEHSTRJQUARABCKLAPDEFMSTRNO $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Commutative law for intersection of classes.  Exercise 7 of
       [TakeutiZaring] p. 17.  (Contributed by NM, 21-Jun-1993.) $)
    incom $p |- ( A i^i B ) = ( B i^i A ) $=
      ( vx cin cv wcel wa ancom elin 3bitr4i eqriv ) CABDZBADZCEZAFZNBFZGPOGNLF
      NMFOPHNABINBAIJK $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    ineqri.1 $e |- ( ( x e. A /\ x e. B ) <-> x e. C ) $.
    $( Inference from membership to intersection.  (Contributed by NM,
       21-Jun-1993.) $)
    ineqri $p |- ( A i^i B ) = C $=
      ( cin cv wcel wa elin bitri eqriv ) ABCFZDAGZMHNBHNCHINDHNBCJEKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Equality theorem for intersection of two classes.  (Contributed by NM,
       14-Dec-1993.) $)
    ineq1 $p |- ( A = B -> ( A i^i C ) = ( B i^i C ) ) $=
      ( vx wceq cin cv wcel wa eleq2 anbi1d elin 3bitr4g eqrdv ) ABEZDACFZBCFZO
      DGZAHZRCHZIRBHZTIRPHRQHOSUATABRJKRACLRBCLMN $.
  $}

  $( Equality theorem for intersection of two classes.  (Contributed by NM,
     26-Dec-1993.) $)
  ineq2 $p |- ( A = B -> ( C i^i A ) = ( C i^i B ) ) $=
    ( wceq cin ineq1 incom 3eqtr4g ) ABDACEBCECAECBEABCFCAGCBGH $.

  $( Equality theorem for intersection of two classes.  (Contributed by NM,
     8-May-1994.) $)
  ineq12 $p |- ( ( A = B /\ C = D ) -> ( A i^i C ) = ( B i^i D ) ) $=
    ( wceq cin ineq1 ineq2 sylan9eq ) ABECDEACFBCFBDFABCGCDBHI $.

  ${
    ineq1i.1 $e |- A = B $.
    $( Equality inference for intersection of two classes.  (Contributed by NM,
       26-Dec-1993.) $)
    ineq1i $p |- ( A i^i C ) = ( B i^i C ) $=
      ( wceq cin ineq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality inference for intersection of two classes.  (Contributed by NM,
       26-Dec-1993.) $)
    ineq2i $p |- ( C i^i A ) = ( C i^i B ) $=
      ( wceq cin ineq2 ax-mp ) ABECAFCBFEDABCGH $.

    ${
      ineq12i.2 $e |- C = D $.
      $( Equality inference for intersection of two classes.  (Contributed by
         NM, 24-Jun-2004.)  (Proof shortened by Eric Schmidt, 26-Jan-2007.) $)
      ineq12i $p |- ( A i^i C ) = ( B i^i D ) $=
        ( wceq cin ineq12 mp2an ) ABGCDGACHBDHGEFABCDIJ $.
    $}
  $}

  ${
    ineq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for intersection of two classes.  (Contributed by NM,
       10-Apr-1994.) $)
    ineq1d $p |- ( ph -> ( A i^i C ) = ( B i^i C ) ) $=
      ( wceq cin ineq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality deduction for intersection of two classes.  (Contributed by NM,
       10-Apr-1994.) $)
    ineq2d $p |- ( ph -> ( C i^i A ) = ( C i^i B ) ) $=
      ( wceq cin ineq2 syl ) ABCFDBGDCGFEBCDHI $.

    ${
      ineq12d.2 $e |- ( ph -> C = D ) $.
      $( Equality deduction for intersection of two classes.  (Contributed by
         NM, 24-Jun-2004.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
      ineq12d $p |- ( ph -> ( A i^i C ) = ( B i^i D ) ) $=
        ( wceq cin ineq12 syl2anc ) ABCHDEHBDICEIHFGBCDEJK $.
    $}

    ${
      ineqan12d.2 $e |- ( ps -> C = D ) $.
      $( Equality deduction for intersection of two classes.  (Contributed by
         NM, 7-Feb-2007.) $)
      ineqan12d $p |- ( ( ph /\ ps ) -> ( A i^i C ) = ( B i^i D ) ) $=
        ( wceq cin ineq12 syl2an ) ACDIEFICEJDFJIBGHCDEFKL $.
    $}
  $}

  $( A relationship between subclass and intersection.  Similar to Exercise 9
     of [TakeutiZaring] p. 18.  (Contributed by NM, 17-May-1994.) $)
  sseqin2 $p |- ( A C_ B <-> ( B i^i A ) = A ) $=
    ( wss cin wceq df-ss incom eqeq1i bitri ) ABCABDZAEBADZAEABFJKAABGHI $.

  $( Obsolete as of 22-Jul-2021.  (Contributed by NM, 10-Jan-2015.)
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  dfss1OLD $p |- ( A C_ B <-> ( B i^i A ) = A ) $=
    ( wss cin wceq df-ss incom eqeq1i bitri ) ABCABDZAEBADZAEABFJKAABGHI $.

  $( Obsolete as of 22-Jul-2021.  (Contributed by David Moews, 1-May-2017.)
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  dfss5OLD $p |- ( A C_ B <-> A = ( B i^i A ) ) $=
    ( wss cin wceq sseqin2 eqcom bitri ) ABCBADZAEAIEABFIAGH $.

  ${
    $d x y $.  $d y A $.  $d y B $.
    nfin.1 $e |- F/_ x A $.
    nfin.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for the intersection of classes.
       (Contributed by NM, 15-Sep-2003.)  (Revised by Mario Carneiro,
       14-Oct-2016.) $)
    nfin $p |- F/_ x ( A i^i B ) $=
      ( vy cin cv wcel crab dfin5 nfcri nfrab nfcxfr ) ABCGFHCIZFBJFBCKOAFBAFCE
      LDMN $.
  $}

  ${
    $d x ph $.  $d x A $.  $d x B $.
    rabbi2dva.1 $e |- ( ( ph /\ x e. A ) -> ( x e. B <-> ps ) ) $.
    $( Deduction from a wff to a restricted class abstraction.  (Contributed by
       NM, 14-Jan-2014.) $)
    rabbi2dva $p |- ( ph -> ( A i^i B ) = { x e. A | ps } ) $=
      ( cin cv wcel crab dfin5 rabbidva syl5eq ) ADEGCHEIZCDJBCDJCDEKANBCDFLM
      $.
  $}

  ${
    $d x A $.
    $( Idempotent law for intersection of classes.  Theorem 15 of [Suppes]
       p. 26.  (Contributed by NM, 5-Aug-1993.) $)
    inidm $p |- ( A i^i A ) = A $=
      ( vx cv wcel anidm ineqri ) BAAABCADEF $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Associative law for intersection of classes.  Exercise 9 of
       [TakeutiZaring] p. 17.  (Contributed by NM, 3-May-1994.) $)
    inass $p |- ( ( A i^i B ) i^i C ) = ( A i^i ( B i^i C ) ) $=
      ( vx cin cv wcel wa anass elin anbi2i bitr4i anbi1i 3bitr4i ineqri ) DABE
      ZCABCEZEZDFZAGZSBGZHZSCGZHZTSQGZHZSPGZUCHSRGUDTUAUCHZHUFTUAUCIUEUHTSBCJKL
      UGUBUCSABJMSAQJNO $.
  $}

  $( A rearrangement of intersection.  (Contributed by NM, 21-Apr-2001.) $)
  in12 $p |- ( A i^i ( B i^i C ) ) = ( B i^i ( A i^i C ) ) $=
    ( cin incom ineq1i inass 3eqtr3i ) ABDZCDBADZCDABCDDBACDDIJCABEFABCGBACGH
    $.

  $( A rearrangement of intersection.  (Contributed by NM, 21-Apr-2001.)
     (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
  in32 $p |- ( ( A i^i B ) i^i C ) = ( ( A i^i C ) i^i B ) $=
    ( cin inass in12 incom 3eqtri ) ABDCDABCDDBACDZDIBDABCEABCFBIGH $.

  $( A rearrangement of intersection.  (Contributed by NM, 27-Aug-2012.) $)
  in13 $p |- ( A i^i ( B i^i C ) ) = ( C i^i ( B i^i A ) ) $=
    ( cin in32 incom 3eqtr4i ) BCDZADBADZCDAHDCIDBCAEAHFCIFG $.

  $( A rearrangement of intersection.  (Contributed by NM, 27-Aug-2012.) $)
  in31 $p |- ( ( A i^i B ) i^i C ) = ( ( C i^i B ) i^i A ) $=
    ( cin in12 incom 3eqtr4i ) CABDZDACBDZDHCDIADCABEHCFIAFG $.

  $( Rotate the intersection of 3 classes.  (Contributed by NM,
     27-Aug-2012.) $)
  inrot $p |- ( ( A i^i B ) i^i C ) = ( ( C i^i A ) i^i B ) $=
    ( cin in31 in32 eqtri ) ABDCDCBDADCADBDABCECBAFG $.

  $( Rearrangement of intersection of 4 classes.  (Contributed by NM,
     21-Apr-2001.) $)
  in4 $p |- ( ( A i^i B ) i^i ( C i^i D ) ) =
            ( ( A i^i C ) i^i ( B i^i D ) ) $=
    ( cin in12 ineq2i inass 3eqtr4i ) ABCDEZEZEACBDEZEZEABEJEACELEKMABCDFGABJHA
    CLHI $.

  $( Intersection distributes over itself.  (Contributed by NM, 6-May-1994.) $)
  inindi $p |- ( A i^i ( B i^i C ) ) = ( ( A i^i B ) i^i ( A i^i C ) ) $=
    ( cin inidm ineq1i in4 eqtr3i ) AADZBCDZDAJDABDACDDIAJAEFAABCGH $.

  $( Intersection distributes over itself.  (Contributed by NM,
     17-Aug-2004.) $)
  inindir $p |- ( ( A i^i B ) i^i C ) = ( ( A i^i C ) i^i ( B i^i C ) ) $=
    ( cin inidm ineq2i in4 eqtr3i ) ABDZCCDZDICDACDBCDDJCICEFABCCGH $.

  $( Obsolete proof of ~ sseqin2 as of 22-Jul-2021.  (Contributed by NM,
     17-May-1994.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  sseqin2OLD $p |- ( A C_ B <-> ( B i^i A ) = A ) $=
    ( sseqin2 ) ABC $.

  ${
    $d x A $.  $d x B $.
    $( The intersection of two classes is a subset of one of them.  Part of
       Exercise 12 of [TakeutiZaring] p. 18.  (Contributed by NM,
       27-Apr-1994.) $)
    inss1 $p |- ( A i^i B ) C_ A $=
      ( vx cin cv elinel1 ssriv ) CABDACEABFG $.
  $}

  $( The intersection of two classes is a subset of one of them.  Part of
     Exercise 12 of [TakeutiZaring] p. 18.  (Contributed by NM,
     27-Apr-1994.) $)
  inss2 $p |- ( A i^i B ) C_ B $=
    ( cin incom inss1 eqsstr3i ) ABCBACBBADBAEF $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Subclass of intersection.  Theorem 2.8(vii) of [Monk1] p. 26.
       (Contributed by NM, 15-Jun-2004.)  (Proof shortened by Andrew Salmon,
       26-Jun-2011.) $)
    ssin $p |- ( ( A C_ B /\ A C_ C ) <-> A C_ ( B i^i C ) ) $=
      ( vx cv wcel wi wal wa cin wss elin imbi2i albii jcab 19.26 3bitrri dfss2
      anbi12i 3bitr4i ) DEZAFZUABFZGZDHZUBUACFZGZDHZIZUBUABCJZFZGZDHZABKZACKZIA
      UJKUMUBUCUFIZGZDHUDUGIZDHUIULUQDUKUPUBUABCLMNUQURDUBUCUFONUDUGDPQUNUEUOUH
      DABRDACRSDAUJRT $.
  $}

  ${
    ssini.1 $e |- A C_ B $.
    ssini.2 $e |- A C_ C $.
    $( An inference showing that a subclass of two classes is a subclass of
       their intersection.  (Contributed by NM, 24-Nov-2003.) $)
    ssini $p |- A C_ ( B i^i C ) $=
      ( wss wa cin pm3.2i ssin mpbi ) ABFZACFZGABCHFLMDEIABCJK $.
  $}

  ${
    ssind.1 $e |- ( ph -> A C_ B ) $.
    ssind.2 $e |- ( ph -> A C_ C ) $.
    $( A deduction showing that a subclass of two classes is a subclass of
       their intersection.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) $)
    ssind $p |- ( ph -> A C_ ( B i^i C ) ) $=
      ( wss wa cin jca ssin sylib ) ABCGZBDGZHBCDIGAMNEFJBCDKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Add right intersection to subclass relation.  (Contributed by NM,
       16-Aug-1994.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    ssrin $p |- ( A C_ B -> ( A i^i C ) C_ ( B i^i C ) ) $=
      ( vx wss cin cv wcel wa ssel anim1d elin 3imtr4g ssrdv ) ABEZDACFZBCFZODG
      ZAHZRCHZIRBHZTIRPHRQHOSUATABRJKRACLRBCLMN $.

    $( Add left intersection to subclass relation.  (Contributed by NM,
       19-Oct-1999.) $)
    sslin $p |- ( A C_ B -> ( C i^i A ) C_ ( C i^i B ) ) $=
      ( wss cin ssrin incom 3sstr4g ) ABDACEBCECAECBEABCFCAGCBGH $.
  $}

  $( Intersection of subclasses.  (Contributed by NM, 5-May-2000.) $)
  ss2in $p |- ( ( A C_ B /\ C C_ D ) -> ( A i^i C ) C_ ( B i^i D ) ) $=
    ( wss cin ssrin sslin sylan9ss ) ABECDEACFBCFBDFABCGCDBHI $.

  $( Intersection preserves subclass relationship.  (Contributed by NM,
     14-Sep-1999.) $)
  ssinss1 $p |- ( A C_ C -> ( A i^i B ) C_ C ) $=
    ( cin wss wi inss1 sstr2 ax-mp ) ABDZAEACEJCEFABGJACHI $.

  $( Inclusion of an intersection of two classes.  (Contributed by NM,
     30-Oct-2014.) $)
  inss $p |- ( ( A C_ C \/ B C_ C ) -> ( A i^i B ) C_ C ) $=
    ( wss cin ssinss1 incom syl5eqss jaoi ) ACDABEZCDBCDZABCFKJBAECABGBACFHI $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The symmetric difference of two classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c /_\ $. $( Symmetric difference $)

  $( Declare the syntax for symmetric difference. $)
  csymdif $a class ( A /_\ B ) $.

  $( Define the symmetric difference of two classes.  (Contributed by Scott
     Fenton, 31-Mar-2012.) $)
  df-symdif $a |- ( A /_\ B ) = ( ( A \ B ) u. ( B \ A ) ) $.

  $( Symmetric difference commutes.  (Contributed by Scott Fenton,
     24-Apr-2012.) $)
  symdifcom $p |- ( A /_\ B ) = ( B /_\ A ) $=
    ( cdif cun csymdif uncom df-symdif 3eqtr4i ) ABCZBACZDJIDABEBAEIJFABGBAGH
    $.

  $( Equality theorem for symmetric difference.  (Contributed by Scott Fenton,
     24-Apr-2012.) $)
  symdifeq1 $p |- ( A = B -> ( A /_\ C ) = ( B /_\ C ) ) $=
    ( wceq cdif cun csymdif difeq1 difeq2 uneq12d df-symdif 3eqtr4g ) ABDZACEZC
    AEZFBCEZCBEZFACGBCGMNPOQABCHABCIJACKBCKL $.

  $( Equality theorem for symmetric difference.  (Contributed by Scott Fenton,
     24-Apr-2012.) $)
  symdifeq2 $p |- ( A = B -> ( C /_\ A ) = ( C /_\ B ) ) $=
    ( wceq csymdif symdifeq1 symdifcom 3eqtr4g ) ABDACEBCECAECBEABCFCAGCBGH $.

  ${
    nfsymdif.1 $e |- F/_ x A $.
    nfsymdif.2 $e |- F/_ x B $.
    $( Hypothesis builder for symmetric difference.  (Contributed by Scott
       Fenton, 19-Feb-2013.)  (Revised by Mario Carneiro, 11-Dec-2016.) $)
    nfsymdif $p |- F/_ x ( A /_\ B ) $=
      ( csymdif cdif cun df-symdif nfdif nfun nfcxfr ) ABCFBCGZCBGZHBCIAMNABCDE
      JACBEDJKL $.
  $}

  $( Membership in a symmetric difference.  (Contributed by Scott Fenton,
     31-Mar-2012.) $)
  elsymdif $p |- ( A e. ( B /_\ C ) <-> -. ( A e. B <-> A e. C ) ) $=
    ( cdif cun wcel wn wa wo csymdif wb elun eldif orbi12i df-symdif eleq2i xor
    bitri 3bitr4i ) ABCDZCBDZEZFZABFZACFZGHZUEUDGHZIZABCJZFUDUEKGUCATFZAUAFZIUH
    ATUALUJUFUKUGABCMACBMNRUIUBABCOPUDUEQS $.

  $( Membership in a symmetric difference is an exclusive-or relationship.
     (Contributed by David A. Wheeler, 26-Apr-2020.) $)
  elsymdifxor $p |- ( A e. ( B /_\ C ) <-> ( A e. B \/_ A e. C ) ) $=
    ( wcel wb wn wxo csymdif xnor notbii elsymdif notnotb 3bitr4i ) ABDZACDZEZF
    NOGZFZFABCHDQPRNOIJABCKQLM $.

  ${
    $d x A $.  $d x B $.
    $( Alternate definition of the symmetric difference.  (Contributed by BJ,
       30-Apr-2020.) $)
    dfsymdif2 $p |- ( A /_\ B ) = { x | ( x e. A \/_ x e. B ) } $=
      ( cv wcel wxo csymdif elsymdifxor abbi2i ) ADZBEJCEFABCGJBCHI $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Two ways to express symmetric difference.  (Contributed by NM,
       17-Aug-2004.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    symdif2 $p |- ( ( A \ B ) u. ( B \ A ) ) =
                  { x | -. ( x e. A <-> x e. B ) } $=
      ( cv wcel wb wn cdif cun wo wa eldif orbi12i elun xor 3bitr4i abbi2i ) AD
      ZBEZRCEZFGZABCHZCBHZIZRUBEZRUCEZJSTGKZTSGKZJRUDEUAUEUGUFUHRBCLRCBLMRUBUCN
      STOPQ $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Symmetric difference associates.  (Contributed by Scott Fenton,
       24-Apr-2012.) $)
    symdifass $p |- ( A /_\ ( B /_\ C ) ) = ( ( A /_\ B ) /_\ C ) $=
      ( vx csymdif cv wcel wb biass notbii xor3 notbi con1bii 3bitr3ri elsymdif
      wn bitr4i bibi2i bibi1i 3bitr4i eqriv ) DABCEZEZABEZCEZDFZAGZUFUBGZHZPUFU
      DGZUFCGZHZPUFUCGUFUEGUIULUGUFBGZUKHZPZHZUGUMHZPZUKHZUIULUQUKHZPUGUNHZPUSU
      PUTVAUGUMUKIJUSUTUSPURUKPHUTURUKKUQUKLQMUGUNKNUHUOUGUFBCORUJURUKUFABOSTJU
      FAUBOUFUDCOTUA $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Combinations of difference, union, and intersection of two classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Absorption law for union.  (Contributed by NM, 16-Apr-2006.) $)
  unabs $p |- ( A u. ( A i^i B ) ) = A $=
    ( cin wss cun wceq inss1 ssequn2 mpbi ) ABCZADAJEAFABGJAHI $.

  $( Absorption law for intersection.  (Contributed by NM, 16-Apr-2006.) $)
  inabs $p |- ( A i^i ( A u. B ) ) = A $=
    ( cun wss cin wceq ssun1 df-ss mpbi ) AABCZDAJEAFABGAJHI $.

  $( Negation of subclass expressed in terms of intersection and proper
     subclass.  (Contributed by NM, 30-Jun-2004.)  (Proof shortened by Andrew
     Salmon, 26-Jun-2011.) $)
  nssinpss $p |- ( -. A C_ B <-> ( A i^i B ) C. A ) $=
    ( cin wne wss wa wn wpss inss1 biantrur df-ss necon3bbii df-pss 3bitr4i ) A
    BCZADZOAEZPFABEZGOAHQPABIJROAABKLOAMN $.

  $( Negation of subclass expressed in terms of proper subclass and union.
     (Contributed by NM, 15-Sep-2004.) $)
  nsspssun $p |- ( -. A C_ B <-> B C. ( A u. B ) ) $=
    ( wss wn cun wa wpss ssun2 biantrur ssid biantru unss bitri xchnxbir dfpss3
    bitr4i ) ABCZDBABEZCZRBCZDZFZBRGTUBQSUABAHIQQBBCZFTUCQBJKABBLMNBROP $.

  ${
    $d x A $.  $d x B $.
    $( Subclass defined in terms of class difference.  See comments under
       ~ dfun2 .  (Contributed by NM, 22-Mar-1998.)  (Proof shortened by Andrew
       Salmon, 26-Jun-2011.) $)
    dfss4 $p |- ( A C_ B <-> ( B \ ( B \ A ) ) = A ) $=
      ( vx wss wceq cdif sseqin2 cv wcel wn wa eldif notbii anbi2i wi elin abai
      cin iman bitr4i 3bitri difeqri eqeq1i ) ABDBARZAEBBAFZFZAEABGUFUDACBUEUDC
      HZBIZUGUEIZJZKUHUHUGAIZJKZJZKZUGUDIZUJUMUHUIULUGBALMNUOUHUKKUHUHUKOZKUNUG
      BAPUHUKQUPUMUHUHUKSNUATUBUCT $.

    $( An alternate definition of the union of two classes in terms of class
       difference, requiring no dummy variables.  Along with ~ dfin2 and
       ~ dfss4 it shows we can express union, intersection, and subset directly
       in terms of the single "primitive" operation ` \ ` (class difference).
       (Contributed by NM, 10-Jun-2004.) $)
    dfun2 $p |- ( A u. B ) = ( _V \ ( ( _V \ A ) \ B ) ) $=
      ( vx cvv cdif cv wcel wo wn wa eldif mpbiran anbi1i ioran 3bitr4i con2bii
      vex bitr4i uneqri ) CABDDAEZBEZEZCFZAGZUCBGZHZUCUAGZIZUCUBGZUGUFUCTGZUEIZ
      JUDIZUKJUGUFIUJULUKUJUCDGZULCQZUCDAKLMUCTBKUDUENOPUIUMUHUNUCDUAKLRS $.

    $( An alternate definition of the intersection of two classes in terms of
       class difference, requiring no dummy variables.  See comments under
       ~ dfun2 .  Another version is given by ~ dfin4 .  (Contributed by NM,
       10-Jun-2004.) $)
    dfin2 $p |- ( A i^i B ) = ( A \ ( _V \ B ) ) $=
      ( vx cvv cdif cv wcel wa vex eldif mpbiran con2bii anbi2i bitr4i ineqri
      wn ) CABADBEZEZCFZAGZSBGZHTSQGZPZHSRGUAUCTUBUAUBSDGUAPCISDBJKLMSAQJNO $.

    $( Difference with intersection.  Theorem 33 of [Suppes] p. 29.
       (Contributed by NM, 31-Mar-1998.)  (Proof shortened by Andrew Salmon,
       26-Jun-2011.) $)
    difin $p |- ( A \ ( A i^i B ) ) = ( A \ B ) $=
      ( vx cin cdif cv wcel wi wn pm4.61 anclb elin imbi2i iman 3bitr2i con2bii
      wa eldif 3bitr4i difeqri ) CAABDZABEZCFZAGZUCBGZHZIUDUEIQUDUCUAGZIQZUCUBG
      UDUEJUFUHUFUDUDUEQZHUDUGHUHIUDUEKUGUIUDUCABLMUDUGNOPUCABRST $.
  $}

  $( Implication of a class difference with a subclass.  (Contributed by AV,
     3-Jan-2022.) $)
  ssdifim $p |- ( ( A C_ V /\ B = ( V \ A ) ) -> A = ( V \ B ) ) $=
    ( wss cdif wceq dfss4 eqcom sylbb difeq2 eqcomd sylan9eq ) ACDZBCAEZFZACNEZ
    CBEZMPAFAPFACGPAHIOQPBNCJKL $.

  $( Symmetric class differences for subclasses.  (Contributed by AV,
     3-Jan-2022.) $)
  ssdifsym $p |- ( ( A C_ V /\ B C_ V )
                   -> ( B = ( V \ A ) <-> A = ( V \ B ) ) ) $=
    ( wss wa cdif wceq wi ssdifim ex adantr adantl impbid ) ACDZBCDZEBCAFGZACBF
    GZNPQHONPQABCIJKOQPHNOQPBACIJLM $.

  ${
    $d A x $.  $d B x y $.
    $( Alternate definition of subclass relationship: a class ` A ` is a
       subclass of another class ` B ` iff each element of ` A ` is equal to an
       element of ` B ` .  (Contributed by AV, 13-Nov-2020.) $)
    dfss5 $p |- ( A C_ B <-> A. x e. A E. y e. B x = y ) $=
      ( wss cv wcel wral weq wrex dfss3 clel5 ralbii bitri ) CDEAFZDGZACHABIBDJ
      ZACHACDKPQACBDOLMN $.
  $}

  $( Union defined in terms of intersection (De Morgan's law).  Definition of
     union in [Mendelson] p. 231.  (Contributed by NM, 8-Jan-2002.) $)
  dfun3 $p |- ( A u. B ) = ( _V \ ( ( _V \ A ) i^i ( _V \ B ) ) ) $=
    ( cun cvv cdif cin dfun2 dfin2 ddif difeq2i eqtr2i eqtri ) ABCDDAEZBEZEDMDB
    EZFZEABGNPDPMDOEZENMOHQBMBIJKJL $.

  $( Intersection defined in terms of union (De Morgan's law).  Similar to
     Exercise 4.10(n) of [Mendelson] p. 231.  (Contributed by NM,
     8-Jan-2002.) $)
  dfin3 $p |- ( A i^i B ) = ( _V \ ( ( _V \ A ) u. ( _V \ B ) ) ) $=
    ( cvv cdif cun cin ddif dfun2 difeq1i difeq2i eqtri dfin2 3eqtr4ri ) CCACBD
    ZDZDZDOCCADZNEZDABFOGRPCRCCQDZNDZDPQNHTOCSANAGIJKJABLM $.

  $( Alternate definition of the intersection of two classes.  Exercise 4.10(q)
     of [Mendelson] p. 231.  (Contributed by NM, 25-Nov-2003.) $)
  dfin4 $p |- ( A i^i B ) = ( A \ ( A \ B ) ) $=
    ( cin cdif wss wceq inss1 dfss4 mpbi difin difeq2i eqtr3i ) AAABCZDZDZMAABD
    ZDMAEOMFABGMAHINPAABJKL $.

  $( Intersection with universal complement.  Remark in [Stoll] p. 20.
     (Contributed by NM, 17-Aug-2004.) $)
  invdif $p |- ( A i^i ( _V \ B ) ) = ( A \ B ) $=
    ( cvv cdif cin dfin2 ddif difeq2i eqtri ) ACBDZEACJDZDABDAJFKBABGHI $.

  $( Intersection with class difference.  Theorem 34 of [Suppes] p. 29.
     (Contributed by NM, 17-Aug-2004.) $)
  indif $p |- ( A i^i ( A \ B ) ) = ( A \ B ) $=
    ( cdif cin dfin4 difeq2i difin 3eqtr2i ) AABCZDAAICZCAABDZCIAIEKJAABEFABGH
    $.

  $( Bring an intersection in and out of a class difference.  (Contributed by
     Jeff Hankins, 15-Jul-2009.) $)
  indif2 $p |- ( A i^i ( B \ C ) ) = ( ( A i^i B ) \ C ) $=
    ( cin cvv cdif inass invdif ineq2i 3eqtr3ri ) ABDZECFZDABLDZDKCFABCFZDABLGK
    CHMNABCHIJ $.

  $( Bring an intersection in and out of a class difference.  (Contributed by
     Mario Carneiro, 15-May-2015.) $)
  indif1 $p |- ( ( A \ C ) i^i B ) = ( ( A i^i B ) \ C ) $=
    ( cdif cin indif2 incom difeq1i 3eqtr3i ) BACDZEBAEZCDJBEABEZCDBACFBJGKLCBA
    GHI $.

  $( Commutation law for intersection and difference.  (Contributed by Scott
     Fenton, 18-Feb-2013.) $)
  indifcom $p |- ( A i^i ( B \ C ) ) = ( B i^i ( A \ C ) ) $=
    ( cin cdif incom difeq1i indif2 3eqtr4i ) ABDZCEBADZCEABCEDBACEDJKCABFGABCH
    BACHI $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Distributive law for intersection over union.  Exercise 10 of
       [TakeutiZaring] p. 17.  (Contributed by NM, 30-Sep-2002.)  (Proof
       shortened by Andrew Salmon, 26-Jun-2011.) $)
    indi $p |- ( A i^i ( B u. C ) ) = ( ( A i^i B ) u. ( A i^i C ) ) $=
      ( vx cun cin cv wcel wo wa andi elin orbi12i bitr4i anbi2i 3bitr4i ineqri
      elun ) DABCEZABFZACFZEZDGZAHZUCBHZUCCHZIZJZUCTHZUCUAHZIZUDUCSHZJUCUBHUHUD
      UEJZUDUFJZIUKUDUEUFKUIUMUJUNUCABLUCACLMNULUGUDUCBCROUCTUARPQ $.

    $( Distributive law for union over intersection.  Exercise 11 of
       [TakeutiZaring] p. 17.  (Contributed by NM, 30-Sep-2002.)  (Proof
       shortened by Andrew Salmon, 26-Jun-2011.) $)
    undi $p |- ( A u. ( B i^i C ) ) = ( ( A u. B ) i^i ( A u. C ) ) $=
      ( vx cin cv wcel wo wa elin orbi2i ordi elun anbi12i bitr2i 3bitri uneqri
      cun ) DABCEZABRZACRZEZDFZAGZUCSGZHUDUCBGZUCCGZIZHUDUFHZUDUGHZIZUCUBGZUEUH
      UDUCBCJKUDUFUGLULUCTGZUCUAGZIUKUCTUAJUMUIUNUJUCABMUCACMNOPQ $.
  $}

  $( Distributive law for intersection over union.  Theorem 28 of [Suppes]
     p. 27.  (Contributed by NM, 30-Sep-2002.) $)
  indir $p |- ( ( A u. B ) i^i C ) = ( ( A i^i C ) u. ( B i^i C ) ) $=
    ( cun cin indi incom uneq12i 3eqtr4i ) CABDZECAEZCBEZDJCEACEZBCEZDCABFJCGMK
    NLACGBCGHI $.

  $( Distributive law for union over intersection.  Theorem 29 of [Suppes]
     p. 27.  (Contributed by NM, 30-Sep-2002.) $)
  undir $p |- ( ( A i^i B ) u. C ) = ( ( A u. C ) i^i ( B u. C ) ) $=
    ( cin cun undi uncom ineq12i 3eqtr4i ) CABDZECAEZCBEZDJCEACEZBCEZDCABFJCGMK
    NLACGBCGHI $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Infer equality from equalities of union and intersection.  Exercise 20
       of [Enderton] p. 32 and its converse.  (Contributed by NM,
       10-Aug-2004.) $)
    unineq $p |- ( ( ( A u. C ) = ( B u. C ) /\ ( A i^i C ) = ( B i^i C ) )
                 <-> A = B ) $=
      ( vx cun wceq cin wa wcel wb eleq2 elin 3bitr3g iba bibi12d syl5ibr uncom
      wo elun biorf cv wi adantld eqeq12i sylbi adantrd pm2.61i eqrdv uneq1 jca
      wn ineq1 impbii ) ACEZBCEZFZACGZBCGZFZHZABFZUTDABDUAZCIZUTVBAIZVBBIZJZUBV
      CUSVFUPUSVFVCVDVCHZVEVCHZJUSVBUQIVBURIVGVHUQURVBKVBACLVBBCLMVCVDVGVEVHVCV
      DNVCVENOPUCVCUKZUPVFUSUPVFVIVCVDRZVCVERZJUPVBCAEZIZVBCBEZIZVJVKUPVLVNFVMV
      OJUNVLUOVNACQBCQUDVLVNVBKUEVBCASVBCBSMVIVDVJVEVKVCVDTVCVETOPUFUGUHVAUPUSA
      BCUIABCULUJUM $.
  $}

  $( Equality of union and intersection implies equality of their arguments.
     (Contributed by NM, 16-Apr-2006.)  (Proof shortened by Andrew Salmon,
     26-Jun-2011.) $)
  uneqin $p |- ( ( A u. B ) = ( A i^i B ) <-> A = B ) $=
    ( cun cin wceq wss wa eqimss unss ssin sstr sylbir simpl anim12i syl sylibr
    eqss unidm inidm eqtr4i uneq2 ineq2 3eqtr3a impbii ) ABCZABDZEZABEZUGABFZBA
    FZGZUHUGUEUFFZUKUEUFHULAUFFZBUFFZGUKABUFIUMUIUNUJUMAAFUIGUIAABJAABKLUNUJBBF
    ZGUJBABJUJUOMLNLOABQPUHAACZAADZUEUFUPAUQARASTABAUAABAUBUCUD $.

  $( Distributive law for class difference.  Theorem 39 of [Suppes] p. 29.
     (Contributed by NM, 17-Aug-2004.) $)
  difundi $p |- ( A \ ( B u. C ) ) = ( ( A \ B ) i^i ( A \ C ) ) $=
    ( cun cdif cvv cin dfun3 difeq2i inindi dfin2 invdif ineq12i 3eqtr3i eqtri
    ) ABCDZEAFFBEZFCEZGZEZEZABEZACEZGZPTABCHIASGAQGZARGZGUAUDAQRJASKUEUBUFUCABL
    ACLMNO $.

  $( Distributive law for class difference.  (Contributed by NM,
     17-Aug-2004.) $)
  difundir $p |- ( ( A u. B ) \ C ) = ( ( A \ C ) u. ( B \ C ) ) $=
    ( cun cvv cdif cin indir invdif uneq12i 3eqtr3i ) ABDZECFZGAMGZBMGZDLCFACFZ
    BCFZDABMHLCINPOQACIBCIJK $.

  $( Distributive law for class difference.  Theorem 40 of [Suppes] p. 29.
     (Contributed by NM, 17-Aug-2004.) $)
  difindi $p |- ( A \ ( B i^i C ) ) = ( ( A \ B ) u. ( A \ C ) ) $=
    ( cin cdif cvv cun dfin3 difeq2i indi dfin2 invdif uneq12i 3eqtr3i eqtri )
    ABCDZEAFFBEZFCEZGZEZEZABEZACEZGZPTABCHIASDAQDZARDZGUAUDAQRJASKUEUBUFUCABLAC
    LMNO $.

  $( Distributive law for class difference.  (Contributed by NM,
     17-Aug-2004.) $)
  difindir $p |- ( ( A i^i B ) \ C ) = ( ( A \ C ) i^i ( B \ C ) ) $=
    ( cin cvv cdif inindir invdif ineq12i 3eqtr3i ) ABDZECFZDALDZBLDZDKCFACFZBC
    FZDABLGKCHMONPACHBCHIJ $.

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Distribute intersection over difference.  (Contributed by Scott Fenton,
       14-Apr-2011.) $)
    indifdir $p |- ( ( A \ B ) i^i C ) = ( ( A i^i C ) \ ( B i^i C ) ) $=
      ( vx cdif cin cv wcel wn wa pm3.24 intnan anass mtbir biorfi 3bitr4i elin
      wo eldif bitri an32 andi ianor anbi2i bitr4i anbi1i notbii anbi12i eqriv
      ) DABEZCFZACFZBCFZEZDGZAHZUOBHZIZJZUOCHZJZUPUTJZUQUTJZIZJZUOUKHZUOUNHZVAV
      BURUTIZRZJZVEVBURJZVKVBVHJZRVAVJVLVKVLUPUTVHJZJVMUPUTKLUPUTVHMNOUPURUTUAV
      BURVHUBPVDVIVBUQUTUCUDUEVFUOUJHZUTJVAUOUJCQVNUSUTUOABSUFTVGUOULHZUOUMHZIZ
      JVEUOULUMSVOVBVQVDUOACQVPVCUOBCQUGUHTPUI $.
  $}

  $( Class difference by a class difference.  (Contributed by Thierry Arnoux,
     18-Dec-2017.) $)
  difdif2 $p |- ( A \ ( B \ C ) ) = ( ( A \ B ) u. ( A i^i C ) ) $=
    ( cvv cdif cin cun difindi invdif eqcomi difeq2i dfin2 uneq2i 3eqtr4i ) ABD
    CEZFZEABEZAOEZGABCEZEQACFZGABOHSPAPSBCIJKTRQACLMN $.

  $( De Morgan's law for union.  Theorem 5.2(13) of [Stoll] p. 19.
     (Contributed by NM, 18-Aug-2004.) $)
  undm $p |- ( _V \ ( A u. B ) ) = ( ( _V \ A ) i^i ( _V \ B ) ) $=
    ( cvv difundi ) CABD $.

  $( De Morgan's law for intersection.  Theorem 5.2(13') of [Stoll] p. 19.
     (Contributed by NM, 18-Aug-2004.) $)
  indm $p |- ( _V \ ( A i^i B ) ) = ( ( _V \ A ) u. ( _V \ B ) ) $=
    ( cvv difindi ) CABD $.

  $( A relationship involving double difference and union.  (Contributed by NM,
     29-Aug-2004.) $)
  difun1 $p |- ( A \ ( B u. C ) ) = ( ( A \ B ) \ C ) $=
    ( cvv cdif cin cun inass invdif eqtr3i undm ineq2i difeq1i ) ADBEZFZCEZABCG
    ZEZABEZCEANDCEZFZFZPROTFUBPANTHOCIJADQEZFUBRUCUAABCKLAQIJJOSCABIMJ $.

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( An equality involving class union and class difference.  The first
       equality of Exercise 13 of [TakeutiZaring] p. 22.  (Contributed by Alan
       Sare, 17-Apr-2012.)  (Proof shortened by JJ, 13-Jul-2021.) $)
    undif3 $p |- ( A u. ( B \ C ) ) = ( ( A u. B ) \ ( C \ A ) ) $=
      ( vx cdif cv wcel wn wa wo elun pm4.53 eldif xchnxbir anbi12i orbi2i ordi
      cun orcom anbi2i bitri 3bitri 3bitr4ri eqriv ) DABCEZRZABRZCAEZEZDFZUGGZU
      JUHGZHZIUJAGZUJBGZJZUJCGZHZUNJZIZUJUIGUJUFGZUKUPUMUSUJABKUQUNHIUSULUQUNLU
      JCAMNOUJUGUHMVAUNUJUEGZJUNUOURIZJZUTUJAUEKVBVCUNUJBCMPVDUPUNURJZIUTUNUOUR
      QVEUSUPUNURSTUAUBUCUD $.

    $( Obsolete proof of ~ undif3 as of 13-Jul-2021.  (Contributed by Alan
       Sare, 17-Apr-2012.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    undif3OLD $p |- ( A u. ( B \ C ) ) = ( ( A u. B ) \ ( C \ A ) ) $=
      ( vx cdif cun cv wcel wn wa elun pm4.53 eldif xchnxbir anbi12i orbi2i orc
      wo olc jca anim12i simpl adantr adantl ccase impbii 3bitri 3bitr4ri eqriv
      jaoi orcd ) DABCEZFZABFZCAEZEZDGZUNHZUQUOHZIZJUQAHZUQBHZRZUQCHZIZVARZJZUQ
      UPHUQUMHZURVCUTVFUQABKVDVAIJVFUSVDVALUQCAMNOUQUNUOMVHVAUQULHZRVAVBVEJZRZV
      GUQAULKVIVJVAUQBCMPVKVGVAVGVJVAVCVFVAVBQVAVESTVBVCVEVFVBVASVEVAQUAUJVAVEV
      BVAVKVAVEJVAVJVAVEUBUKVJVASVAVKVAVAVJQZUCVAVKVBVLUDUEUFUGUHUI $.

    $( Represent a class difference as an intersection with a larger
       difference.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    difin2 $p |- ( A C_ C -> ( A \ B ) = ( ( C \ B ) i^i A ) ) $=
      ( vx wss cdif cin cv wcel wn ssel pm4.71d anbi1d eldif anbi1i ancom anass
      wa elin bitr4i 3bitri 3bitr4g eqrdv ) ACEZDABFZCBFZAGZUDDHZAIZUHBIJZRUIUH
      CIZRZUJRZUHUEIUHUGIZUDUIULUJUDUIUKACUHKLMUHABNUNUHUFIZUIRUKUJRZUIRZUMUHUF
      ASUOUPUIUHCBNOUQUIUPRUMUPUIPUIUKUJQTUAUBUC $.
  $}

  $( Swap second and third argument of double difference.  (Contributed by NM,
     18-Aug-2004.) $)
  dif32 $p |- ( ( A \ B ) \ C ) = ( ( A \ C ) \ B ) $=
    ( cun cdif uncom difeq2i difun1 3eqtr3i ) ABCDZEACBDZEABECEACEBEJKABCFGABCH
    ACBHI $.

  $( Absorption-like law for class difference: you can remove a class only
     once.  (Contributed by FL, 2-Aug-2009.) $)
  difabs $p |- ( ( A \ B ) \ B ) = ( A \ B ) $=
    ( cun cdif difun1 unidm difeq2i eqtr3i ) ABBCZDABDZBDJABBEIBABFGH $.

  $( Alternate definition of the symmetric difference, given in Example 4.1 of
     [Stoll] p. 262 (the original definition corresponds to [Stoll] p. 13).
     (Contributed by NM, 17-Aug-2004.)  (Revised by BJ, 30-Apr-2020.) $)
  dfsymdif3 $p |- ( A /_\ B ) = ( ( A u. B ) \ ( A i^i B ) ) $=
    ( cin cdif cun csymdif difin incom difeq2i eqtri uneq12i difundir df-symdif
    3eqtr4ri ) AABCZDZBODZEABDZBADZEABEODABFPRQSABGQBBACZDSOTBABHIBAGJKABOLABMN
    $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Class abstractions with difference, union, and intersection of two classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y $.  $d ph y $.  $d ps y $.
    $( Union of two class abstractions.  (Contributed by NM, 29-Sep-2002.)
       (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    unab $p |- ( { x | ph } u. { x | ps } ) = { x | ( ph \/ ps ) } $=
      ( vy cab wo wsb cv wcel sbor df-clab orbi12i 3bitr4ri uneqri ) DACEZBCEZA
      BFZCEZQCDGACDGZBCDGZFDHZRIUAOIZUAPIZFABCDJQDCKUBSUCTADCKBDCKLMN $.

    $( Intersection of two class abstractions.  (Contributed by NM,
       29-Sep-2002.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    inab $p |- ( { x | ph } i^i { x | ps } ) = { x | ( ph /\ ps ) } $=
      ( vy cab wa wsb cv wcel sban df-clab anbi12i 3bitr4ri ineqri ) DACEZBCEZA
      BFZCEZQCDGACDGZBCDGZFDHZRIUAOIZUAPIZFABCDJQDCKUBSUCTADCKBDCKLMN $.

    $( Difference of two class abstractions.  (Contributed by NM, 23-Oct-2004.)
       (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    difab $p |- ( { x | ph } \ { x | ps } ) = { x | ( ph /\ -. ps ) } $=
      ( vy cab wn wcel wsb df-clab sban bicomi xchbinxr anbi12i 3bitrri difeqri
      wa cv sbn ) DACEZBCEZABFZPZCEZDQZUCGUBCDHACDHZUACDHZPUDSGZUDTGZFZPUBDCIAU
      ACDJUEUGUFUIUGUEADCIKUFBCDHUHBCDRBDCILMNO $.
  $}

  $( A class builder defined by a negation.  (Contributed by FL,
     18-Sep-2010.) $)
  notab $p |- { x | -. ph } = ( _V \ { x | ph } ) $=
    ( cv cvv wcel wn wa cab cdif crab df-rab rabab eqtr3i difab abid2 difeq1i )
    BCDEZAFZGBHZRBHZDABHZIZRBDJSTRBDKRBLMQBHZUAISUBQABNUCDUABDOPMM $.

  $( Union of two restricted class abstractions.  (Contributed by NM,
     25-Mar-2004.) $)
  unrab $p |- ( { x e. A | ph } u. { x e. A | ps } ) =
              { x e. A | ( ph \/ ps ) } $=
    ( crab cun cv wcel wa cab wo df-rab uneq12i unab andi abbii eqtr4i ) ACDEZB
    CDEZFCGDHZAIZCJZTBIZCJZFZABKZCDEZRUBSUDACDLBCDLMUGTUFIZCJZUEUFCDLUEUAUCKZCJ
    UIUAUCCNUHUJCTABOPQQQ $.

  $( Intersection of two restricted class abstractions.  (Contributed by NM,
     1-Sep-2006.) $)
  inrab $p |- ( { x e. A | ph } i^i { x e. A | ps } ) =
              { x e. A | ( ph /\ ps ) } $=
    ( crab cin cv wcel wa cab df-rab ineq12i inab anandi abbii eqtr4i ) ACDEZBC
    DEZFCGDHZAIZCJZSBIZCJZFZABIZCDEZQUARUCACDKBCDKLUFSUEIZCJZUDUECDKUDTUBIZCJUH
    TUBCMUGUICSABNOPPP $.

  ${
    $d x B $.
    $( Intersection with a restricted class abstraction.  (Contributed by NM,
       19-Nov-2007.) $)
    inrab2 $p |- ( { x e. A | ph } i^i B ) = { x e. ( A i^i B ) | ph } $=
      ( crab cin cv wcel wa cab df-rab abid1 ineq12i inab elin an32 bitri abbii
      anbi1i eqtr4i ) ABCEZDFBGZCHZAIZBJZUBDHZBJZFZABCDFZEZUAUEDUGABCKBDLMUJUBU
      IHZAIZBJZUHABUIKUHUDUFIZBJUMUDUFBNULUNBULUCUFIZAIUNUKUOAUBCDOSUCUFAPQRTTT
      $.
  $}

  $( Difference of two restricted class abstractions.  (Contributed by NM,
     23-Oct-2004.) $)
  difrab $p |- ( { x e. A | ph } \ { x e. A | ps } ) =
              { x e. A | ( ph /\ -. ps ) } $=
    ( crab cdif cv wcel wa wn df-rab difeq12i difab anass simpr con3i anim2i wi
    cab eqtr4i pm3.2 adantr con3d imdistani impbii bitr3i abbii ) ACDEZBCDEZFCG
    DHZAIZCSZUJBIZCSZFZABJZIZCDEZUHULUIUNACDKBCDKLURUJUQIZCSZUOUQCDKUOUKUMJZIZC
    SUTUKUMCMUSVBCUSUKUPIZVBUJAUPNVCVBUPVAUKUMBUJBOPQUKVAUPUKBUMUJBUMRAUJBUAUBU
    CUDUEUFUGTTT $.

  ${
    $d x A $.  $d x B $.

    $( Alternate definition of restricted class abstraction.  (Contributed by
       Mario Carneiro, 8-Sep-2013.) $)
    dfrab3 $p |- { x e. A | ph } = ( A i^i { x | ph } ) $=
      ( crab cv wcel wa cab cin df-rab inab abid2 ineq1i 3eqtr2i ) ABCDBECFZAGB
      HOBHZABHZICQIABCJOABKPCQBCLMN $.

    $( Alternate definition of restricted class abstraction.  (Contributed by
       NM, 20-Sep-2003.)  (Proof shortened by BJ, 22-Apr-2019.) $)
    dfrab2 $p |- { x e. A | ph } = ( { x | ph } i^i A ) $=
      ( crab cab cin dfrab3 incom eqtri ) ABCDCABEZFJCFABCGCJHI $.

    $( Complementation of restricted class abstractions.  (Contributed by Mario
       Carneiro, 3-Sep-2015.) $)
    notrab $p |- ( A \ { x e. A | ph } ) = { x e. A | -. ph } $=
      ( cv wcel cab cdif wn crab difab cin difin dfrab3 difeq2i difeq1i 3eqtr4i
      wa abid2 df-rab ) BDCEZBFZABFZGZTAHZQBFCABCIZGZUDBCITABJCCUBKZGCUBGUFUCCU
      BLUEUGCABCMNUACUBBCROPUDBCSP $.

    $( Restricted class abstraction with a common superset.  (Contributed by
       Stefan O'Rear, 12-Sep-2015.)  (Proof shortened by Mario Carneiro,
       8-Nov-2015.) $)
    dfrab3ss $p |- ( A C_ B -> { x e. A | ph } = ( A i^i { x e. B | ph } ) ) $=
      ( wss cab crab wceq df-ss ineq1 eqcomd sylbi dfrab3 ineq2i eqtr4i 3eqtr4g
      cin inass ) CDEZCABFZQZCDQZTQZABCGCABDGZQZSUBCHZUAUCHCDIUFUCUAUBCTJKLABCM
      UECDTQZQUCUDUGCABDMNCDTROP $.
  $}

  $( Abstraction restricted to a union.  (Contributed by Stefan O'Rear,
     5-Feb-2015.) $)
  rabun2 $p |- { x e. ( A u. B ) | ph } =
      ( { x e. A | ph } u. { x e. B | ph } ) $=
    ( cun crab cv wcel wa cab df-rab uneq12i elun anbi1i andir bitri abbii unab
    wo eqtr4i ) ABCDEZFBGZUAHZAIZBJZABCFZABDFZEZABUAKUHUBCHZAIZBJZUBDHZAIZBJZEZ
    UEUFUKUGUNABCKABDKLUEUJUMSZBJUOUDUPBUDUIULSZAIUPUCUQAUBCDMNUIULAOPQUJUMBRTT
    T $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Restricted uniqueness with difference, union, and intersection
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x A $.  $d x B $.
    $( Transfer uniqueness to a smaller subclass.  (Contributed by NM,
       20-Oct-2005.) $)
    reuss2 $p |- ( ( ( A C_ B /\ A. x e. A ( ph -> ps ) ) /\
                 ( E. x e. A ph /\ E! x e. B ps ) ) -> E! x e. A ph ) $=
      ( wrex wreu wa wss wi wral wcel wex weu df-rex df-reu anbi12i wal sylan2b
      cv wmo df-ral ssel pm3.2 imim2d syl6 a2d imp4a alimdv imp euimmo simplbi2
      syl eu5 syl9 imp32 sylibr ) ACDFZBCEGZHDEIZABJZCDKZHZCTZDLZAHZCMZVDELZBHZ
      CNZHZACDGZURVGUSVJACDOBCEPQVCVKHVFCNZVLVCVGVJVMVCVJVFCUAZVGVMVCVFVIJZCRZV
      JVNJVBUTVEVAJZCRZVPVACDUBUTVRVPUTVQVOCUTVQVEAVIUTVEVAAVIJZUTVEVHVAVSJDEVD
      UCVHBVIAVHBUDUEUFUGUHUIUJSVFVICUKUMVMVGVNVFCUNULUOUPACDPUQS $.

    $( Transfer uniqueness to a smaller subclass.  (Contributed by NM,
       21-Aug-1999.) $)
    reuss $p |- ( ( A C_ B /\ E. x e. A ph /\ E! x e. B ph ) ->
                E! x e. A ph ) $=
      ( wss wrex wreu wi wral wa id rgenw reuss2 mpanl2 3impb ) CDEZABCFZABDGZA
      BCGZPAAHZBCIQRJSTBCAKLAABCDMNO $.

    $( Transfer uniqueness to a smaller class.  (Contributed by NM,
       21-Oct-2005.) $)
    reuun1 $p |- ( ( E. x e. A ph /\ E! x e. ( A u. B ) ( ph \/ ps ) )
                 -> E! x e. A ph ) $=
      ( cun wss wo wi wral wrex wreu wa ssun1 orc rgenw reuss2 mpanl12 ) DDEFZG
      AABHZIZCDJACDKTCSLMACDLDENUACDABOPATCDSQR $.

    $( Transfer uniqueness to a smaller or larger class.  (Contributed by NM,
       21-Oct-2005.) $)
    reuun2 $p |- ( -. E. x e. B ph ->
             ( E! x e. ( A u. B ) ph <-> E! x e. A ph ) ) $=
      ( wrex wn cv wcel wa wo weu cun wreu wex df-rex euor2 sylnbi df-reu bitri
      wb elun anbi1i andir orcom eubii 3bitr4g ) ABDEZFBGZDHZAIZUHCHZAIZJZBKZUL
      BKZABCDLZMZABCMUGUJBNUNUOTABDOUJULBPQUQUHUPHZAIZBKUNABUPRUSUMBUSUKUIJZAIZ
      UMURUTAUHCDUAUBVAULUJJUMUKUIAUCULUJUDSSUESABCRUF $.

    $( Restricted uniqueness "picks" a member of a subclass.  (Contributed by
       NM, 21-Aug-1999.) $)
    reupick $p |- ( ( ( A C_ B /\ ( E. x e. A ph /\ E! x e. B ph ) ) /\ ph ) ->
                  ( x e. A <-> x e. B ) ) $=
      ( wss wrex wreu wa cv wcel wi ssel ad2antrr wex weu df-rex df-reu anbi12i
      ancrd anim1d an32 syl6ib eximdv eupick ex com23 imp32 sylan2b expcomd imp
      syl9 impbid ) CDEZABCFZABDGZHZHZAHBIZCJZURDJZUMUSUTKUPACDURLZMUQAUTUSKUQU
      TAUSUPUMUSAHZBNZUTAHZBOZHVDUSKZUNVCUOVEABCPABDQRUMVCVEVFUMVEVCVFUMVCVDUSH
      ZBNZVEVFUMVBVGBUMVBUTUSHZAHVGUMUSVIAUMUSUTVASTUTUSAUAUBUCVEVHVFVDUSBUDUEU
      KUFUGUHUIUJUL $.

    $( Restricted uniqueness "picks" a member of a subclass.  (Contributed by
       Mario Carneiro, 19-Nov-2016.) $)
    reupick3 $p |- ( ( E! x e. A ph /\ E. x e. A ( ph /\ ps ) /\ x e. A ) ->
       ( ph -> ps ) ) $=
      ( wreu wa wrex cv wcel wi weu wex df-reu df-rex anass exbii bitr4i eupick
      syl2anb expd 3impia ) ACDEZABFZCDGZCHDIZABJUBUDFUEABUBUEAFZCKUFBFZCLZUFBJ
      UDACDMUDUEUCFZCLUHUCCDNUGUICUEABOPQUFBCRSTUA $.

    $( Restricted uniqueness "picks" a member of a subclass.  (Contributed by
       Mario Carneiro, 15-Dec-2013.)  (Proof shortened by Mario Carneiro,
       19-Nov-2016.) $)
    reupick2 $p |- ( ( ( A. x e. A ( ps -> ph ) /\ E. x e. A ps /\
                       E! x e. A ph ) /\ x e. A ) -> ( ph <-> ps ) ) $=
      ( wi wral wrex wreu w3a cv wcel ancr ralimi rexim syl reupick3 3exp com12
      wa syl6 3imp1 rsp 3ad2ant1 imp impbid ) BAEZCDFZBCDGZACDHZIZCJDKZSABUGUHU
      IUKABEZUGUHABSZCDGZUIUKULEZEUGBUMEZCDFUHUNEUFUPCDBALMBUMCDNOUIUNUOUIUNUKU
      LABCDPQRTUAUJUKUFUGUHUKUFEUIUFCDUBUCUDUE $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Transfer uniqueness of an element to a smaller subclass.  (Contributed
       by AV, 14-Apr-2020.) $)
    euelss $p |- ( ( A C_ B /\ E. x x e. A /\ E! x x e. B ) -> E! x x e. A ) $=
      ( wss cv wcel wex weu w3a wtru wa wreu id ancom truan bitri sylbbr df-reu
      wrex eubii df-rex exbii reuss syl3an sylib bitr3i sylibr ) BCDZAEZBFZAGZU
      ICFZAHZIZUJJKZAHZUJAHUNJABLZUPUHUHUKJABSZUMJACLZUQUHMURUOAGUKJABUAUOUJAUO
      JUJKZUJUJJNUJOZPUBQUSULJKZAHUMJACRVBULAVBJULKULULJNULOPTQJABCUCUDJABRUEUJ
      UOAUJUTUOVAJUJNUFTUG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The empty set
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare the symbol for the empty or null set. $)
  $c (/) $. $( null set $)

  $( Extend class notation to include the empty set. $)
  c0 $a class (/) $.

  $( Define the empty set.  Special case of Exercise 4.10(o) of [Mendelson]
     p. 231.  For a more traditional definition, but requiring a dummy
     variable, see ~ dfnul2 .  (Contributed by NM, 17-Jun-1993.) $)
  df-nul $a |- (/) = ( _V \ _V ) $.

  $( Alternate definition of the empty set.  Definition 5.14 of [TakeutiZaring]
     p. 20.  (Contributed by NM, 26-Dec-1996.) $)
  dfnul2 $p |- (/) = { x | -. x = x } $=
    ( cv wceq wn c0 wcel cvv cdif wa df-nul eleq2i eldif eqid pm3.24 2th 3bitri
    con2bii abbi2i ) ABZSCZDZAESEFSGGHZFSGFZUCDIZUAEUBSJKSGGLTUDTUDDSMUCNOQPR
    $.

  $( Alternate definition of the empty set.  (Contributed by NM,
     25-Mar-2004.) $)
  dfnul3 $p |- (/) = { x e. A | -. x e. A } $=
    ( weq wn cab cv wcel wa crab pm3.24 equid 2th con1bii dfnul2 df-rab 3eqtr4i
    c0 abbii ) AACZDZAEAFBGZUADZHZAEQUBABITUCAUCSUCDSUAJAKLMRANUBABOP $.

  $( The empty set has no elements.  Theorem 6.14 of [Quine] p. 44.
     (Contributed by NM, 21-Jun-1993.)  (Proof shortened by Mario Carneiro,
     1-Sep-2015.) $)
  noel $p |- -. A e. (/) $=
    ( c0 wcel cvv cdif eldifi eldifn pm2.65i df-nul eleq2i mtbir ) ABCADDEZCZMA
    DCADDFADDGHBLAIJK $.

  $( If a set has elements, then it is not empty.  (Contributed by NM,
     31-Dec-1993.) $)
  n0i $p |- ( B e. A -> -. A = (/) ) $=
    ( c0 wceq wcel noel eleq2 mtbiri con2i ) ACDZBAEZJKBCEBFACBGHI $.

  $( If a set has elements, then it is not empty.  (Contributed by NM,
     31-Dec-1993.) $)
  ne0i $p |- ( B e. A -> A =/= (/) ) $=
    ( wcel c0 n0i neqned ) BACADABEF $.

  ${
    n0ii.1 $e |- A e. B $.
    $( If a set has elements, then it is not empty.  Inference associated with
       ~ n0i .  (Contributed by BJ, 15-Jul-2021.) $)
    n0ii $p |- -. B = (/) $=
      ( wcel c0 wceq wn n0i ax-mp ) ABDBEFGCBAHI $.

    $( If a set has elements, then it is not empty.  Inference associated with
       ~ ne0i .  (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
    ne0ii $p |- B =/= (/) $=
      ( wcel c0 wne ne0i ax-mp ) ABDBEFCBAGH $.
  $}

  $( The universal class is not equal to the empty set.  (Contributed by NM,
     11-Sep-2008.) $)
  vn0 $p |- _V =/= (/) $=
    ( vx cv cvv vex ne0ii ) ABCADE $.

  ${
    eq0f.1 $e |- F/_ x A $.
    $( The empty set has no elements.  Theorem 2 of [Suppes] p. 22.
       (Contributed by BJ, 15-Jul-2021.) $)
    eq0f $p |- ( A = (/) <-> A. x -. x e. A ) $=
      ( c0 wceq cv wcel wb wal wn nfcv cleqf noel nbn albii bitr4i ) BDEAFZBGZQ
      DGZHZAIRJZAIABDCADKLUATASRQMNOP $.

    $( A nonempty class has at least one element.  Proposition 5.17(1) of
       [TakeutiZaring] p. 20.  This version of ~ neq0 requires only that ` x `
       not be free in, rather than not occur in, ` A ` .  (Contributed by BJ,
       15-Jul-2021.) $)
    neq0f $p |- ( -. A = (/) <-> E. x x e. A ) $=
      ( c0 wceq wn cv wcel wal wex eq0f notbii df-ex bitr4i ) BDEZFAGBHZFAIZFPA
      JOQABCKLPAMN $.

    $( A nonempty class has at least one element.  Proposition 5.17(1) of
       [TakeutiZaring] p. 20.  This version of ~ n0 requires only that ` x `
       not be free in, rather than not occur in, ` A ` .  (Contributed by NM,
       17-Oct-2003.) $)
    n0f $p |- ( A =/= (/) <-> E. x x e. A ) $=
      ( c0 wne wceq wn cv wcel wex df-ne neq0f bitri ) BDEBDFGAHBIAJBDKABCLM $.

    $( Obsolete proof of ~ n0f as of 15-Jul-2021.  (Contributed by NM,
       17-Oct-2003.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    n0fOLD $p |- ( A =/= (/) <-> E. x x e. A ) $=
      ( c0 wne cv wcel wn wal wex wceq wb nfcv cleqf noel nbn bitr4i necon3abii
      albii df-ex ) BDEAFZBGZHZAIZHUBAJUDBDBDKUBUADGZLZAIUDABDCADMNUCUFAUEUBUAO
      PSQRUBATQ $.
  $}

  ${
    $d x A $.
    $( The empty set has no elements.  Theorem 2 of [Suppes] p. 22.
       (Contributed by NM, 29-Aug-1993.) $)
    eq0 $p |- ( A = (/) <-> A. x -. x e. A ) $=
      ( nfcv eq0f ) ABABCD $.

    $( A nonempty class has at least one element.  Proposition 5.17(1) of
       [TakeutiZaring] p. 20.  (Contributed by NM, 21-Jun-1993.) $)
    neq0 $p |- ( -. A = (/) <-> E. x x e. A ) $=
      ( nfcv neq0f ) ABABCD $.

    $( A nonempty class has at least one element.  Proposition 5.17(1) of
       [TakeutiZaring] p. 20.  (Contributed by NM, 29-Sep-2006.) $)
    n0 $p |- ( A =/= (/) <-> E. x x e. A ) $=
      ( nfcv n0f ) ABABCD $.
  $}

  ${
    $d x A $.
    nel0.1 $e |- -. x e. A $.
    $( From the general negation of membership in ` A ` , infer that ` A ` is
       the empty set.  (Contributed by BJ, 6-Oct-2018.) $)
    nel0 $p |- A = (/) $=
      ( c0 wceq cv wcel wn eq0 mpgbir ) BDEAFBGHAABICJ $.
  $}

  ${
    $d x A $.  $d x ph $.
    reximdva0.1 $e |- ( ( ph /\ x e. A ) -> ps ) $.
    $( Restricted existence deduced from nonempty class.  (Contributed by NM,
       1-Feb-2012.) $)
    reximdva0 $p |- ( ( ph /\ A =/= (/) ) -> E. x e. A ps ) $=
      ( c0 wne wa cv wcel wex wrex n0 ex ancld eximdv imp sylan2b df-rex sylibr
      ) ADFGZHCIDJZBHZCKZBCDLUAAUBCKZUDCDMAUEUDAUBUCCAUBBAUBBENOPQRBCDST $.
  $}

  ${
    $d A x $.  $d ph x $.
    $( Specialization for restricted generalization with a nonempty set.
       (Contributed by Alexander van der Vekens, 6-Sep-2018.) $)
    rspn0 $p |- ( A =/= (/) -> ( A. x e. A ph -> ph ) ) $=
      ( c0 wne cv wcel wex wral wi n0 nfra1 nfv nfim rsp com12 exlimi sylbi ) C
      DEBFCGZBHABCIZAJZBCKSUABTABABCLABMNTSAABCOPQR $.
  $}

  ${
    $d A x $.
    $( There is an element in a nonempty class which is an element of the
       class.  (Contributed by AV, 17-Dec-2020.) $)
    n0rex $p |- ( A =/= (/) -> E. x e. A x e. A ) $=
      ( cv wcel wex wa c0 wne wrex id ancli eximi n0 df-rex 3imtr4i ) ACBDZAEPP
      FZAEBGHPABIPQAPPPJKLABMPABNO $.

    $d B x $.
    $( There is an element in a class with a nonempty subclass which is an
       element of the subclass.  (Contributed by AV, 17-Dec-2020.) $)
    ssn0rex $p |- ( ( A C_ B /\ A =/= (/) ) -> E. x e. B x e. A ) $=
      ( wss cv wcel wrex c0 wne ssrexv n0rex impel ) BCDAEBFZABGMACGBHIMABCJABK
      L $.
  $}

  ${
    $d A x $.
    $( A case of equivalence of "at most one" and "only one".  (Contributed by
       FL, 6-Dec-2010.) $)
    n0moeu $p |- ( A =/= (/) -> ( E* x x e. A <-> E! x x e. A ) ) $=
      ( c0 wne cv wcel wmo wex wa weu n0 biimpi biantrurd eu5 syl6bbr ) BCDZAEB
      FZAGZQAHZRIQAJPSRPSABKLMQANO $.
  $}

  $( Vacuous existential quantification is false.  (Contributed by NM,
     15-Oct-2003.) $)
  rex0 $p |- -. E. x e. (/) ph $=
    ( c0 cv wcel wn noel pm2.21i nrex ) ABCBDZCEAFJGHI $.

  ${
    $d x A $.  $d x y $.
    $( Membership of the empty set in another class.  (Contributed by NM,
       29-Jun-2004.) $)
    0el $p |- ( (/) e. A <-> E. x e. A A. y -. y e. x ) $=
      ( c0 wcel cv wceq wrex wn wal risset eq0 rexbii bitri ) DCEAFZDGZACHBFOEI
      BJZACHADCKPQACBOLMN $.
  $}

  ${
    $d x A $.  $d x u $.
    $( Negated membership of the empty set in another class.  (Contributed by
       Rodolfo Medina, 25-Sep-2010.) $)
    n0el $p |- ( -. (/) e. A <-> A. x e. A E. u u e. x ) $=
      ( cv wcel wn wal wral wi wex c0 df-ral df-ex ralbii alnex imnang wrex 0el
      wa 3bitr4ri df-rex bitri notbii ) BDADZEZFBGZFZACHUDCEZUGIAGZUEBJZACHKCEZ
      FZUGACLUJUGACUEBMNUHUFSZFAGUMAJZFUIULUMAOUHUFAPUKUNUKUFACQUNABCRUFACUAUBU
      CTT $.
  $}

  ${
    $d x y A $.
    $( A condition which implies the existence of a unique element of a class.
       (Contributed by AV, 4-Jan-2022.) $)
    eqeuel $p |- ( ( A =/= (/) /\ A. x A. y ( ( x e. A /\ y e. A ) -> x = y ) )
                   -> E! x x e. A ) $=
      ( c0 wne cv wcel wa weq wi wal wex weu n0 biimpi anim1i eleq1w eu4 sylibr
      ) CDEZAFCGZBFCGZHABIJBKAKZHUAALZUCHUAAMTUDUCTUDACNOPUAUBABABCQRS $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Subclass expressed in terms of difference.  Exercise 7 of
       [TakeutiZaring] p. 22.  (Contributed by NM, 29-Apr-1994.) $)
    ssdif0 $p |- ( A C_ B <-> ( A \ B ) = (/) ) $=
      ( vx cv wcel wi wal cdif wn wss c0 wceq wa eldif xchbinxr albii dfss2 eq0
      iman 3bitr4i ) CDZAEZUABEZFZCGUAABHZEZIZCGABJUEKLUDUGCUDUBUCIMUFUBUCSUAAB
      NOPCABQCUERT $.
  $}

  $( If the difference of two sets is not empty, then the sets are not equal.
     (Contributed by Thierry Arnoux, 28-Feb-2017.) $)
  difn0 $p |- ( ( A \ B ) =/= (/) -> A =/= B ) $=
    ( cdif c0 wceq wss eqimss ssdif0 sylib necon3i ) ABABCZDABEABFKDEABGABHIJ
    $.

  $( A proper subclass has a nonempty difference.  (Contributed by NM,
     3-May-1994.) $)
  pssdifn0 $p |- ( ( A C_ B /\ A =/= B ) -> ( B \ A ) =/= (/) ) $=
    ( wss wne cdif c0 wceq ssdif0 eqss simplbi2 syl5bir necon3d imp ) ABCZABDBA
    EZFDNOFABOFGBACZNABGZBAHQNPABIJKLM $.

  $( A proper subclass has a nonempty difference.  (Contributed by Mario
     Carneiro, 27-Apr-2016.) $)
  pssdif $p |- ( A C. B -> ( B \ A ) =/= (/) ) $=
    ( wpss wss wne wa cdif c0 df-pss pssdifn0 sylbi ) ABCABDABEFBAGHEABIABJK $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Difference, intersection, and subclass relationship.  (Contributed by
       NM, 30-Apr-1994.)  (Proof shortened by Wolf Lammen, 30-Sep-2014.) $)
    difin0ss $p |- ( ( ( A \ B ) i^i C ) = (/) -> ( C C_ A -> C C_ B ) ) $=
      ( vx cdif cin c0 wceq cv wcel wn wal wss wi eq0 wa iman elin eldif dfss2
      anbi2ci annim anbi2i 3bitri xchbinxr ax-2 sylbir al2imi 3imtr4g sylbi ) A
      BEZCFZGHDIZULJZKZDLZCAMZCBMZNDULOUPUMCJZUMAJZNZDLUSUMBJZNZDLUQURUOVAVCDUO
      USUTVBNZNZVAVCNVEUSVDKZPZUNUSVDQUNUMUKJZUSPUSUTVBKPZPVGUMUKCRVHVIUSUMABSU
      AVIVFUSUTVBUBUCUDUEUSUTVBUFUGUHDCATDCBTUIUJ $.

    $( Intersection, subclass, and difference relationship.  (Contributed by
       NM, 27-Oct-1996.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.)
       (Proof shortened by Wolf Lammen, 30-Sep-2014.) $)
    inssdif0 $p |- ( ( A i^i B ) C_ C <-> ( A i^i ( B \ C ) ) = (/) ) $=
      ( vx cv cin wcel wi wal cdif wn wss c0 wceq elin imbi1i iman bitri eldif
      wa anbi2i anass 3bitr4ri xchbinx albii dfss2 eq0 3bitr4i ) DEZABFZGZUICGZ
      HZDIUIABCJZFZGZKZDIUJCLUOMNUMUQDUMUIAGZUIBGZTZULKZTZUPUMUTULHVBKUKUTULUIA
      BOPUTULQRURUIUNGZTURUSVATZTUPVBVCVDURUIBCSUAUIAUNOURUSVAUBUCUDUEDUJCUFDUO
      UGUH $.
  $}

  $( The difference between a class and itself is the empty set.  Proposition
     5.15 of [TakeutiZaring] p. 20.  Also Theorem 32 of [Suppes] p. 28.
     (Contributed by NM, 22-Apr-2004.) $)
  difid $p |- ( A \ A ) = (/) $=
    ( wss cdif c0 wceq ssid ssdif0 mpbi ) AABAACDEAFAAGH $.

  ${
    $d x A $.
    $( Alternate proof of ~ difid .  (Contributed by David Abernethy,
       17-Jun-2012.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    difidALT $p |- ( A \ A ) = (/) $=
      ( vx cdif cv wcel wn crab c0 dfdif2 dfnul3 eqtr4i ) AACBDAEFBAGHBAAIBAJK
      $.
  $}

  $( The difference between a class and the empty set.  Part of Exercise 4.4 of
     [Stoll] p. 16.  (Contributed by NM, 17-Aug-2004.) $)
  dif0 $p |- ( A \ (/) ) = A $=
    ( cdif c0 difid difeq2i difdif eqtr3i ) AAABZBACBAHCAADEAAFG $.

  $( The class of sets verifying a property is the empty class if and only if
     that property is a contradiction.  See also ~ abn0 (from which it could be
     proved using as many essential proof steps but one fewer syntactic step,
     at the cost of depending on ~ df-ne ).  (Contributed by BJ,
     19-Mar-2021.) $)
  ab0 $p |- ( { x | ph } = (/) <-> A. x -. ph ) $=
    ( cab c0 wceq cv wcel wn wal nfab1 eq0f abid notbii albii bitri ) ABCZDEBFP
    GZHZBIAHZBIBPABJKRSBQAABLMNO $.

  $( Characterization of non-freeness in a formula in terms of its extension.
     (Contributed by BJ, 19-Mar-2021.) $)
  dfnf5 $p |- ( F/ x ph <-> ( { x | ph } = (/) \/ { x | ph } = _V ) ) $=
    ( wex wal wi wn wo wnf cab wceq cvv df-ex imbi1i pm4.64 bitri df-nf ab0 abv
    c0 orbi12i 3bitr4i ) ABCZABDZEZAFBDZUCGZABHABIZSJZUGKJZGUDUEFZUCEUFUBUJUCAB
    LMUEUCNOABPUHUEUIUCABQABRTUA $.

  ${
    $d x ph $.
    $( The class builder of a wff not containing the abstraction variable is
       either the empty set or the universal class.  (Contributed by Mario
       Carneiro, 29-Aug-2013.)  (Revised by BJ, 22-Mar-2020.) $)
    ab0orv $p |- ( { x | ph } = (/) \/ { x | ph } = _V ) $=
      ( wnf cab c0 wceq cvv wo nfv dfnf5 mpbi ) ABCABDZEFLGFHABIABJK $.
  $}

  $( Nonempty class abstraction.  See also ~ ab0 .  (Contributed by NM,
     26-Dec-1996.)  (Proof shortened by Mario Carneiro, 11-Nov-2016.) $)
  abn0 $p |- ( { x | ph } =/= (/) <-> E. x ph ) $=
    ( cab c0 wne cv wcel wex nfab1 n0f abid exbii bitri ) ABCZDEBFNGZBHABHBNABI
    JOABABKLM $.

  $( Any restricted class abstraction restricted to the empty set is empty.
     (Contributed by NM, 15-Oct-2003.)  (Proof shortened by Andrew Salmon,
     26-Jun-2011.)  (Proof shortened by JJ, 14-Jul-2021.) $)
  rab0 $p |- { x e. (/) | ph } = (/) $=
    ( c0 crab cv wcel wa cab df-rab wceq wn ab0 noel intnanr mpgbir eqtri ) ABC
    DBEZCFZAGZBHZCABCITCJSKBSBLRAQMNOP $.

  $( Obsolete proof of ~ rab0 as of 14-Jul-2021.  (Contributed by NM,
     15-Oct-2003.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  rab0OLD $p |- { x e. (/) | ph } = (/) $=
    ( cv c0 wcel wa cab weq wn crab equid noel intnanr 2th con2bii abbii df-rab
    dfnul2 3eqtr4i ) BCZDEZAFZBGBBHZIZBGABDJDUBUDBUCUBUCUBIBKUAATLMNOPABDQBRS
    $.

  $( Condition for a restricted class abstraction to be empty.  (Contributed by
     Jeff Madsen, 7-Jun-2010.)  (Revised by BJ, 16-Jul-2021.) $)
  rabeq0 $p |- ( { x e. A | ph } = (/) <-> A. x e. A -. ph ) $=
    ( cv wcel wa cab c0 wceq wn wal crab wral ab0 df-rab eqeq1i raln 3bitr4i )
    BDCEAFZBGZHISJBKABCLZHIAJBCMSBNUATHABCOPABCQR $.

  $( Nonempty restricted class abstraction.  (Contributed by NM, 29-Aug-1999.)
     (Revised by BJ, 16-Jul-2021.) $)
  rabn0 $p |- ( { x e. A | ph } =/= (/) <-> E. x e. A ph ) $=
    ( crab c0 wne wn wral wrex rabeq0 necon3abii dfrex2 bitr4i ) ABCDZEFAGBCHZG
    ABCIONEABCJKABCLM $.

  $( Obsolete proof of ~ rabn0 as of 16-Jul-2021.  (Contributed by NM,
     29-Aug-1999.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  rabn0OLD $p |- ( { x e. A | ph } =/= (/) <-> E. x e. A ph ) $=
    ( cv wcel wa cab c0 wne wex crab wrex abn0 df-rab neeq1i df-rex 3bitr4i ) B
    DCEAFZBGZHIRBJABCKZHIABCLRBMTSHABCNOABCPQ $.

  $( Obsolete proof of ~ rabeq0 as of 16-Jul-2021.  (Contributed by Jeff
     Madsen, 7-Jun-2010.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  rabeq0OLD $p |- ( { x e. A | ph } = (/) <-> A. x e. A -. ph ) $=
    ( wn wral wrex crab c0 wceq ralnex rabn0OLD necon1bbii bitr2i ) ADBCEABCFZD
    ABCGZHIABCJNOHABCKLM $.

  ${
    $d A x $.
    $( Law of excluded middle, in terms of restricted class abstractions.
       (Contributed by Jeff Madsen, 20-Jun-2011.) $)
    rabxm $p |- A = ( { x e. A | ph } u. { x e. A | -. ph } ) $=
      ( wn wo crab cun wceq rabid2 cv wcel exmidd mprgbir unrab eqtr4i ) CAADZE
      ZBCFZABCFPBCFGCRHQBCQBCIBJCKALMAPBCNO $.

    $( Law of noncontradiction, in terms of restricted class abstractions.
       (Contributed by Jeff Madsen, 20-Jun-2011.) $)
    rabnc $p |- ( { x e. A | ph } i^i { x e. A | -. ph } ) = (/) $=
      ( crab wn cin wa c0 inrab wceq wral pm3.24 rgenw rabeq0 mpbir eqtri ) ABC
      DAEZBCDFAQGZBCDZHAQBCISHJREZBCKTBCALMRBCNOP $.
  $}

  ${
    $d A s $.
    elneldisj.e $e |- E = { s e. A | B e. C } $.
    elneldisj.n $e |- N = { s e. A | B e/ C } $.
    $( The set of elements ` s ` determining classes ` C ` (which may depend on
       ` s ` ) containing a special element and the set of elements ` s `
       determining classes ` C ` not containing the special element are
       disjoint.  (Contributed by Alexander van der Vekens, 11-Jan-2018.)
       (Revised by AV, 9-Nov-2020.)  (Revised by AV, 17-Dec-2021.) $)
    elneldisj $p |- ( E i^i N ) = (/) $=
      ( cin wcel crab wn c0 wnel wb cv df-nel a1i rabbiia eqtri ineq12i rabnc )
      DEIBCJZFAKZUCLZFAKZIMDUDEUFGEBCNZFAKUFHUGUEFAUGUEOFPAJBCQRSTUAUCFAUBT $.

    $( The union of the set of elements ` s ` determining classes ` C ` (which
       may depend on ` s ` ) containing a special element and the set of
       elements ` s ` determining classes ` C ` not containing the special
       element yields the original set.  (Contributed by Alexander van der
       Vekens, 11-Jan-2018.)  (Revised by AV, 9-Nov-2020.)  (Revised by AV,
       17-Dec-2021.) $)
    elnelun $p |- ( E u. N ) = A $=
      ( cun wcel crab wn wnel wb cv df-nel a1i rabbiia eqtri uneq12i eqtr4i
      rabxm ) DEIBCJZFAKZUCLZFAKZIADUDEUFGEBCMZFAKUFHUGUEFAUGUENFOAJBCPQRSTUCFA
      UBUA $.
  $}

  ${
    $d A s $.
    elneldisjOLD.e $e |- E = { s e. A | B e. s } $.
    elneldisjOLD.f $e |- N = { s e. A | B e/ s } $.
    $( Obsolete version of ~ elneldisj as of 17-Dec-2021.  (Contributed by
       Alexander van der Vekens, 11-Jan-2018.)  (Revised by AV, 9-Nov-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    elneldisjOLD $p |- ( E i^i N ) = (/) $=
      ( cin cv wcel crab wn c0 wnel wb df-nel a1i rabbiia eqtri ineq12i rabnc )
      CDHBEIZJZEAKZUCLZEAKZHMCUDDUFFDBUBNZEAKUFGUGUEEAUGUEOUBAJBUBPQRSTUCEAUAS
      $.

    $( Obsolete version of ~ elnelun as of 17-Dec-2021.  (Contributed by
       Alexander van der Vekens, 11-Jan-2018.)  (Revised by AV, 9-Nov-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    elnelunOLD $p |- ( E u. N ) = A $=
      ( cun cv wcel crab wn wnel wb df-nel a1i rabbiia eqtri uneq12i rabxm
      eqtr4i ) CDHBEIZJZEAKZUCLZEAKZHACUDDUFFDBUBMZEAKUFGUGUEEAUGUENUBAJBUBOPQR
      SUCEATUA $.
  $}

  ${
    $d x A $.
    $( The union of a class with the empty set is itself.  Theorem 24 of
       [Suppes] p. 27.  (Contributed by NM, 15-Jul-1993.) $)
    un0 $p |- ( A u. (/) ) = A $=
      ( vx c0 cv wcel wo noel biorfi bicomi uneqri ) BACABDZAEZLKCEZFMLKGHIJ $.

    $( The intersection of a class with the empty set is the empty set.
       Theorem 16 of [Suppes] p. 26.  (Contributed by NM, 21-Jun-1993.) $)
    in0 $p |- ( A i^i (/) ) = (/) $=
      ( vx c0 cv wcel wa noel bianfi bicomi ineqri ) BACCBDZCEZKAEZLFLMKGHIJ $.
  $}

  $( The intersection of the empty set with a class is the empty set.
     (Contributed by Glauco Siliprandi, 17-Aug-2020.) $)
  0in $p |- ( (/) i^i A ) = (/) $=
    ( c0 cin incom in0 eqtri ) BACABCBBADAEF $.

  $( The intersection of a class with the universal class is itself.  Exercise
     4.10(k) of [Mendelson] p. 231.  (Contributed by NM, 17-May-1998.) $)
  inv1 $p |- ( A i^i _V ) = A $=
    ( cvv cin inss1 ssid ssv ssini eqssi ) ABCAABDAABAEAFGH $.

  $( The union of a class with the universal class is the universal class.
     Exercise 4.10(l) of [Mendelson] p. 231.  (Contributed by NM,
     17-May-1998.) $)
  unv $p |- ( A u. _V ) = _V $=
    ( cvv cun ssv ssun2 eqssi ) ABCZBGDBAEF $.

  ${
    $d A x $.
    $( The null set is a subset of any class.  Part of Exercise 1 of
       [TakeutiZaring] p. 22.  (Contributed by NM, 21-Jun-1993.) $)
    0ss $p |- (/) C_ A $=
      ( vx c0 cv wcel noel pm2.21i ssriv ) BCABDZCEIAEIFGH $.
  $}

  $( Any subset of the empty set is empty.  Theorem 5 of [Suppes] p. 23 and its
     converse.  (Contributed by NM, 17-Sep-2003.) $)
  ss0b $p |- ( A C_ (/) <-> A = (/) ) $=
    ( c0 wceq wss 0ss eqss mpbiran2 bicomi ) ABCZABDZIJBADAEABFGH $.

  $( Any subset of the empty set is empty.  Theorem 5 of [Suppes] p. 23.
     (Contributed by NM, 13-Aug-1994.) $)
  ss0 $p |- ( A C_ (/) -> A = (/) ) $=
    ( c0 wss wceq ss0b biimpi ) ABCABDAEF $.

  $( A subclass of an empty class is empty.  (Contributed by NM, 7-Mar-2007.)
     (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
  sseq0 $p |- ( ( A C_ B /\ B = (/) ) -> A = (/) ) $=
    ( c0 wceq wss sseq2 ss0 syl6bi impcom ) BCDZABEZACDZJKACELBCAFAGHI $.

  $( A class with a nonempty subclass is nonempty.  (Contributed by NM,
     17-Feb-2007.) $)
  ssn0 $p |- ( ( A C_ B /\ A =/= (/) ) -> B =/= (/) ) $=
    ( wss c0 wne wceq sseq0 ex necon3d imp ) ABCZADEBDEKBDADKBDFADFABGHIJ $.

  $( The difference between the empty set and a class.  Part of Exercise 4.4 of
     [Stoll] p. 16.  (Contributed by NM, 17-Aug-2004.) $)
  0dif $p |- ( (/) \ A ) = (/) $=
    ( c0 cdif wss wceq difss ss0 ax-mp ) BACZBDIBEBAFIGH $.

  ${
    abf.1 $e |- -. ph $.
    $( A class builder with a false argument is empty.  (Contributed by NM,
       20-Jan-2012.) $)
    abf $p |- { x | ph } = (/) $=
      ( cab c0 wceq wn ab0 mpgbir ) ABDEFAGBABHCI $.
  $}

  ${
    $d x A $.  $d x ph $.
    eq0rdv.1 $e |- ( ph -> -. x e. A ) $.
    $( Deduction rule for equality to the empty set.  (Contributed by NM,
       11-Jul-2014.) $)
    eq0rdv $p |- ( ph -> A = (/) ) $=
      ( c0 wss wceq cv wcel pm2.21d ssrdv ss0 syl ) ACEFCEGABCEABHZCINEIDJKCLM
      $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    $( The proper substitution of a proper class for a set into a class results
       in the empty set.  (Contributed by NM, 17-Aug-2018.)  (Proof shortened
       by JJ, 27-Aug-2021.) $)
    csbprc $p |- ( -. A e. _V -> [_ A / x ]_ B = (/) ) $=
      ( vy cvv wcel wn cv wsbc cab wfal csb c0 sbcex pm5.21ni abbidv df-csb fal
      falim abf eqcomi 3eqtr4g ) BEFZGZDHCFZABIZDJKDJZABCLMUDUFKDUFUCKUEABNUCSO
      PADBCQUGMKDRTUAUB $.

    $( Obsolete proof of ~ csbprc as of 27-Aug-2021.  (Contributed by NM,
       17-Aug-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    csbprcOLD $p |- ( -. A e. _V -> [_ A / x ]_ B = (/) ) $=
      ( vy cvv wcel wn csb cv wsbc cab c0 df-csb wfal sbcex con3i pm2.21d falim
      impbid1 abbidv fal abf syl6eq syl5eq ) BEFZGZABCHDICFZABJZDKZLADBCMUFUIND
      KLUFUHNDUFUHNUFUHNUHUEUGABOPQUHRSTNDUAUBUCUD $.
  $}

  $( The proper substitution of a class into the empty set is empty.
     (Contributed by NM, 18-Aug-2018.) $)
  csb0 $p |- [_ A / x ]_ (/) = (/) $=
    ( cvv wcel c0 csb wceq csbconstg csbprc pm2.61i ) BCDABEFEGABECHABEIJ $.

  ${
    $d x y z $.  $d y z A $.  $d y z B $.  $d y z C $.
    $( Distribute proper substitution through a membership relation.
       (Contributed by NM, 10-Nov-2005.)  (Revised by NM, 18-Aug-2018.) $)
    sbcel12 $p |- ( [. A / x ]. B e. C <-> [_ A / x ]_ B e. [_ A / x ]_ C ) $=
      ( vy vz cvv wcel wsbc csb cv cab dfsbcq2 abbidv eleq12d nfs1v nfab df-csb
      wsb sbab wb wceq nfel sbie vtoclbg eleq12i syl6bbr wn sbcex con3i c0 noel
      weq csbprc eleq2d mtbiri 2falsed pm2.61i ) BGHZCDHZABIZABCJZABDJZHZUAUSVA
      EKZCHZABIZELZVEDHZABIZELZHZVDUTAFSVFAFSZELZVIAFSZELZHZVAVLFBGUTAFBMFKBUBZ
      VNVHVPVKVRVMVGEVFAFBMNVRVOVJEVIAFBMNOUTVQAFAVNVPVMAEVFAFPQVOAEVIAFPQUCAFU
      MCVNDVPAFECTAFEDTOUDUEVBVHVCVKAEBCRAEBDRUFUGUSUHZVAVDVAUSUTABUIUJVSVDVBUK
      HVBULVSVCUKVBABDUNUOUPUQUR $.

    $( Distribute proper substitution through an equality relation.
       (Contributed by NM, 10-Nov-2005.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    sbceqg $p |- ( A e. V -> ( [. A / x ]. B = C <->
                   [_ A / x ]_ B = [_ A / x ]_ C ) ) $=
      ( vy vz wcel wceq wsbc cab csb wsb dfsbcq2 abbidv eqeq12d nfs1v nfab sbab
      cv nfeq weq sbie vtoclbg df-csb eqeq12i syl6bbr ) BEHCDIZABJZFTZCHZABJZFK
      ZUJDHZABJZFKZIZABCLZABDLZIUHAGMUKAGMZFKZUNAGMZFKZIZUIUQGBEUHAGBNGTBIZVAUM
      VCUPVEUTULFUKAGBNOVEVBUOFUNAGBNOPUHVDAGAVAVCUTAFUKAGQRVBAFUNAGQRUAAGUBCVA
      DVCAGFCSAGFDSPUCUDURUMUSUPAFBCUEAFBDUEUFUG $.
  $}

  $( Distribute proper substitution through negated membership.  (Contributed
     by Andrew Salmon, 18-Jun-2011.) $)
  sbcnel12g $p |- ( A e. V
        -> ( [. A / x ]. B e/ C <-> [_ A / x ]_ B e/ [_ A / x ]_ C ) ) $=
    ( wcel wn wsbc wnel csb sbcng df-nel sbcbii sbcel12 xchbinxr 3bitr4g ) BEFC
    DFZGZABHQABHZGCDIZABHABCJZABDJZIZQABEKTRABCDLMUCUAUBFSUAUBLABCDNOP $.

  $( Distribute proper substitution through an inequality.  (Contributed by
     Andrew Salmon, 18-Jun-2011.)  (Revised by NM, 18-Aug-2018.) $)
  sbcne12 $p |- ( [. A / x ]. B =/= C <-> [_ A / x ]_ B =/= [_ A / x ]_ C ) $=
    ( cvv wcel wne wsbc csb wb wceq nne sbcbii a1i sbcng sbceqg syl6bbr 3bitr3d
    wn csbprc con4bid sbcex con3i c0 eqtr4d sylibr 2falsed pm2.61i ) BEFZCDGZAB
    HZABCIZABDIZGZJUIUKUNUIUJSZABHZCDKZABHZUKSUNSZUPURJUIUOUQABCDLMNUJABEOUIURU
    LUMKZUSABCDEPULUMLZQRUAUISZUKUNUKUIUJABUBUCVBUTUSVBULUDUMABCTABDTUEVAUFUGUH
    $.

  ${
    $d x C $.
    $( Move proper substitution in and out of a membership relation.  Note that
       the scope of ` [. A / x ]. ` is the wff ` B e. C ` , whereas the scope
       of ` [_ A / x ]_ ` is the class ` B ` .  (Contributed by NM,
       10-Nov-2005.) $)
    sbcel1g $p |- ( A e. V -> ( [. A / x ]. B e. C <->
                    [_ A / x ]_ B e. C ) ) $=
      ( wcel wsbc csb sbcel12 csbconstg eleq2d syl5bb ) CDFABGABCHZABDHZFBEFZMD
      FABCDIONDMABDEJKL $.

    $( Move proper substitution to first argument of an equality.  (Contributed
       by NM, 30-Nov-2005.) $)
    sbceq1g $p |- ( A e. V -> ( [. A / x ]. B = C <->
                    [_ A / x ]_ B = C ) ) $=
      ( wcel wceq wsbc csb sbceqg csbconstg eqeq2d bitrd ) BEFZCDGABHABCIZABDIZ
      GODGABCDEJNPDOABDEKLM $.
  $}

  ${
    $d x B $.
    $( Move proper substitution in and out of a membership relation.
       (Contributed by NM, 14-Nov-2005.)  (Revised by NM, 18-Aug-2018.) $)
    sbcel2 $p |- ( [. A / x ]. B e. C <-> B e. [_ A / x ]_ C ) $=
      ( cvv wcel wsbc wb sbcel12 csbconstg eleq1d syl5bb wn sbcex con3i c0 noel
      csb csbprc eleq2d mtbiri 2falsed pm2.61i ) BEFZCDFZABGZCABDRZFZHUFABCRZUG
      FUDUHABCDIUDUICUGABCEJKLUDMZUFUHUFUDUEABNOUJUHCPFCQUJUGPCABDSTUAUBUC $.

    $( Move proper substitution to second argument of an equality.
       (Contributed by NM, 30-Nov-2005.) $)
    sbceq2g $p |- ( A e. V -> ( [. A / x ]. B = C <->
                    B = [_ A / x ]_ C ) ) $=
      ( wcel wceq wsbc csb sbceqg csbconstg eqeq1d bitrd ) BEFZCDGABHABCIZABDIZ
      GCPGABCDEJNOCPABCEKLM $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.  $d y ph $.
    csbeq2d.1 $e |- F/ x ph $.
    csbeq2d.2 $e |- ( ph -> B = C ) $.
    $( Formula-building deduction rule for class substitution.  (Contributed by
       NM, 22-Nov-2005.)  (Revised by Mario Carneiro, 1-Sep-2015.) $)
    csbeq2d $p |- ( ph -> [_ A / x ]_ B = [_ A / x ]_ C ) $=
      ( vy cv wcel wsbc cab csb eleq2d sbcbid abbidv df-csb 3eqtr4g ) AHIZDJZBC
      KZHLSEJZBCKZHLBCDMBCEMAUAUCHATUBBCFADESGNOPBHCDQBHCEQR $.
  $}

  ${
    $d x ph $.
    csbeq2dv.1 $e |- ( ph -> B = C ) $.
    $( Formula-building deduction rule for class substitution.  (Contributed by
       NM, 10-Nov-2005.)  (Revised by Mario Carneiro, 1-Sep-2015.) $)
    csbeq2dv $p |- ( ph -> [_ A / x ]_ B = [_ A / x ]_ C ) $=
      ( nfv csbeq2d ) ABCDEABGFH $.
  $}

  ${
    csbeq2i.1 $e |- B = C $.
    $( Formula-building inference rule for class substitution.  (Contributed by
       NM, 10-Nov-2005.)  (Revised by Mario Carneiro, 1-Sep-2015.) $)
    csbeq2i $p |- [_ A / x ]_ B = [_ A / x ]_ C $=
      ( csb wceq wtru a1i csbeq2dv trud ) ABCFABDFGHABCDCDGHEIJK $.
  $}

  ${
    $d y z A $.  $d x z B $.  $d z C $.  $d x y $.
    $( Commutative law for double substitution into a class.  (Contributed by
       NM, 14-Nov-2005.)  (Revised by NM, 18-Aug-2018.) $)
    csbcom $p |- [_ A / x ]_ [_ B / y ]_ C = [_ B / y ]_ [_ A / x ]_ C $=
      ( vz csb cv wcel wsbc sbccom sbcel2 sbcbii 3bitr3i eqriv ) FACBDEGZGZBDAC
      EGZGZFHZPIZACJZTRIZBDJZTQITSITEIZBDJZACJUEACJZBDJUBUDUEABCDKUFUAACBDTELMU
      GUCBDACTELMNACTPLBDTRLNO $.
  $}

  ${
    $d x z $.  $d y z $.  $d z A $.  $d z B $.  $d z C $.  $d z ph $.
    $( Nest the composition of two substitutions.  (Contributed by Mario
       Carneiro, 11-Nov-2016.) $)
    sbcnestgf $p |- ( ( A e. V /\ A. y F/ x ph ) ->
         ( [. A / x ]. [. B / y ]. ph <-> [. [_ A / x ]_ B / y ]. ph ) ) $=
      ( vz wcel wnf wal wsbc csb wb cv wi wceq dfsbcq sbceq1d cvv a1i vex nfnf1
      csbeq1 bibi12d imbi2d csbeq1a adantl nfal nfa1 wnfc nfcsb1v nfsbcd vtoclg
      sp sbciedf imp ) DFHABIZCJZACEKZBDKZACBDELZKZMZURUSBGNZKZACBVDELZKZMZOURV
      COGDFVDDPZVHVCURVIVEUTVGVBUSBVDDQVIACVFVABVDDEUCRUDUEURUSVGBVDSVDSHURGUAT
      BNVDPZUSVGMURVJACEVFBVDEUFRUGUQBCABUBUHURABCVFUQCUIBVFUJURBVDEUKTUQCUNULU
      OUMUP $.

    $( Nest the composition of two substitutions.  (Contributed by NM,
       23-Nov-2005.)  (Proof shortened by Mario Carneiro, 10-Nov-2016.) $)
    csbnestgf $p |- ( ( A e. V /\ A. y F/_ x C ) ->
         [_ A / x ]_ [_ B / y ]_ C = [_ [_ A / x ]_ B / y ]_ C ) $=
      ( vz wcel wnfc wal wa cv csb wsbc cab cvv wceq elex df-csb abeq2i wb nfcr
      sbcbii wnf alimi sbcnestgf sylan2 syl5bb abbidv sylan 3eqtr4g ) CFHZAEIZB
      JZKGLZBDEMZHZACNZGOZUOEHZBACDMZNZGOZACUPMBVAEMULCPHZUNUSVCQCFRVDUNKZURVBG
      URUTBDNZACNZVEVBUQVFACVFGUPBGDESTUCUNVDUTAUDZBJVGVBUAUMVHBAGEUBUEUTABCDPU
      FUGUHUIUJAGCUPSBGVAESUK $.

    $d x ph $.
    $( Nest the composition of two substitutions.  (Contributed by NM,
       27-Nov-2005.)  (Proof shortened by Mario Carneiro, 11-Nov-2016.) $)
    sbcnestg $p |- ( A e. V ->
          ( [. A / x ]. [. B / y ]. ph <-> [. [_ A / x ]_ B / y ]. ph ) ) $=
      ( wcel wnf wal wsbc csb wb nfv ax-gen sbcnestgf mpan2 ) DFGABHZCIACEJBDJA
      CBDEKJLQCABMNABCDEFOP $.

    $d x C $.
    $( Nest the composition of two substitutions.  (Contributed by NM,
       23-Nov-2005.)  (Proof shortened by Mario Carneiro, 10-Nov-2016.) $)
    csbnestg $p |- ( A e. V ->
          [_ A / x ]_ [_ B / y ]_ C = [_ [_ A / x ]_ B / y ]_ C ) $=
      ( wcel wnfc wal csb wceq nfcv ax-gen csbnestgf mpan2 ) CFGAEHZBIACBDEJJBA
      CDJEJKPBAELMABCDEFNO $.
  $}

  ${
    $d x A $.  $d x ph $.  $d x C $.  $d x D $.
    sbcco3g.1 $e |- ( x = A -> B = C ) $.
    $( Composition of two substitutions.  (Contributed by NM, 27-Nov-2005.)
       (Revised by Mario Carneiro, 11-Nov-2016.) $)
    sbcco3g $p |- ( A e. V ->
         ( [. A / x ]. [. B / y ]. ph <-> [. C / y ]. ph ) ) $=
      ( wcel wsbc csb sbcnestg cvv wceq wb elex nfcvd csbiegf dfsbcq 3syl bitrd
      ) DGIZACEJBDJACBDEKZJZACFJZABCDEGLUBDMIZUCFNUDUEODGPBDEFMUFBFQHRACUCFSTUA
      $.

    $( Composition of two class substitutions.  (Contributed by NM,
       27-Nov-2005.)  (Revised by Mario Carneiro, 11-Nov-2016.) $)
    csbco3g $p |- ( A e. V ->
                 [_ A / x ]_ [_ B / y ]_ D = [_ C / y ]_ D ) $=
      ( wcel csb csbnestg cvv wceq elex nfcvd csbiegf syl csbeq1d eqtrd ) CGIZA
      CBDFJJBACDJZFJBEFJABCDFGKTBUAEFTCLIZUAEMCGNACDELUBAEOHPQRS $.
  $}

  ${
    $d x y $.  $d y C $.
    $( Nest the composition of two substitutions.  (Contributed by NM,
       23-May-2006.)  (Proof shortened by Mario Carneiro, 11-Nov-2016.) $)
    csbnest1g $p |- ( A e. V ->
         [_ A / x ]_ [_ B / x ]_ C = [_ [_ A / x ]_ B / x ]_ C ) $=
      ( vy wcel cv csb wnfc wceq nfcsb1v ax-gen csbnestgf mpan2 csbeq2i 3eqtr3g
      wal csbco ) BEGZABFCAFHZDIZIZIZFABCIZUBIZABACDIZIAUEDITAUBJZFRUDUFKUHFAUA
      DLMAFBCUBENOABUCUGAFCDSPAFUEDSQ $.
  $}

  ${
    $d x A $.
    $( Idempotent law for class substitutions.  (Contributed by NM,
       1-Mar-2008.)  (Revised by NM, 18-Aug-2018.) $)
    csbidm $p |- [_ A / x ]_ [_ A / x ]_ B = [_ A / x ]_ B $=
      ( cvv wcel csb wceq csbnest1g csbconstg csbeq1d eqtrd wn c0 csbprc eqtr4d
      pm2.61i ) BDEZABABCFZFZRGQSAABBFZCFRABBCDHQATBCABBDIJKQLSMRABRNABCNOP $.
  $}

  ${
    $d y z A $.  $d x y z $.
    $( The proper substitution of a class for setvar variable results in the
       class (if the class exists).  (Contributed by NM, 10-Nov-2005.) $)
    csbvarg $p |- ( A e. V -> [_ A / x ]_ x = A ) $=
      ( vz vy wcel cvv cv csb wceq elex wsbc cab df-csb sbcel2gv abbi1dv syl5eq
      vex ax-mp csbeq2i csbco 3eqtr3i syl ) BCFBGFZABAHZIZBJBCKUDUFDHZEHZFEBLZD
      MZBEBAUHUEIZIEBUHIUFUJEBUKUHUHGFZUKUHJERULUKUGUEFAUHLZDMUHADUHUENULUMDUHA
      UGUHGOPQSTAEBUEUAEDBUHNUBUDUIDBEUGBGOPQUC $.
  $}

  ${
    $d x y $.
    $( Substitution into a wff expressed in terms of substitution into a class.
       (Contributed by NM, 15-Aug-2007.)  (Revised by NM, 18-Aug-2018.) $)
    sbccsb $p |- ( [. A / x ]. ph <-> y e. [_ A / x ]_ { y | ph } ) $=
      ( wsbc cv cab wcel csb abid sbcbii sbcel2 bitr3i ) ABDECFZACGZHZBDENBDOIH
      PABDACJKBDNOLM $.
  $}

  $( Substitution into a wff expressed in using substitution into a class.
     (Contributed by NM, 27-Nov-2005.)  (Revised by NM, 18-Aug-2018.) $)
  sbccsb2 $p |- ( [. A / x ]. ph <-> A e. [_ A / x ]_ { x | ph } ) $=
    ( wsbc cvv wcel cab sbcex elex cv abid sbcbii sbcel12 csbvarg eleq1d syl5bb
    csb syl5bbr pm5.21nii ) ABCDZCEFZCBCABGZQZFZABCHCUCITBJZUBFZBCDZUAUDUFABCAB
    KLUGBCUEQZUCFUAUDBCUEUBMUAUHCUCBCENOPRS $.

  ${
    $d x B $.  $d x D $.
    $( Special case related to ~ rspsbc .  (Contributed by NM, 10-Dec-2005.)
       (Proof shortened by Eric Schmidt, 17-Jan-2007.) $)
    rspcsbela $p |- ( ( A e. B /\ A. x e. B C e. D ) -> [_ A / x ]_ C e. D ) $=
      ( wcel wral csb wsbc rspsbc sbcel1g sylibd imp ) BCFZDEFZACGZABDHEFZNPOAB
      IQOABCJABDECKLM $.
  $}

  ${
    $d w x y z $.  $d w y z A $.
    $( Two ways of expressing " ` x ` is (effectively) not free in ` A ` ."
       (Contributed by Mario Carneiro, 14-Oct-2016.) $)
    sbnfc2 $p |- ( F/_ x A <-> A. y A. z [_ y / x ]_ A = [_ z / x ]_ A ) $=
      ( vw wnfc cv csb wceq wal cvv wcel vex csbtt mpan wsbc sbsbc sbcel2 bitri
      wsb eqtr4d alrimivv nfv wnf eleq2 3bitr4g 2alimi sbnf2 sylibr nfcd impbii
      wb ) ADFZABGZDHZACGZDHZIZCJBJZUMURBCUMUODUQUNKLUMUODIBMAUNDKNOUPKLUMUQDIC
      MAUPDKNOUAUBUSAEDUSEUCUSEGZDLZABTZVAACTZULZCJBJVAAUDURVDBCURUTUOLZUTUQLZV
      BVCUOUQUTUEVBVAAUNPVEVAABQAUNUTDRSVCVAAUPPVFVAACQAUPUTDRSUFUGVAABCUHUIUJU
      K $.
  $}

  ${
    $d y z A $.  $d z ph $.  $d x y z $.
    $( Move substitution into a class abstraction.  (Contributed by NM,
       13-Dec-2005.)  (Revised by NM, 19-Aug-2018.) $)
    csbab $p |- [_ A / x ]_ { y | ph } = { y | [. A / x ]. ph } $=
      ( vz cab csb wsbc cv wcel df-clab sbsbc bitri sbccom sbcbii bitr4i sbcel2
      wsb 3bitrri eqriv ) EBDACFZGZABDHZCFZEIZUDJZUCCUEHZUEUAJZBDHZUEUBJUFUCCER
      UGUCECKUCCELMUGACUEHZBDHUIACBUEDNUHUJBDUHACERUJAECKACELMOPBDUEUAQST $.
  $}

  ${
    $d A y $.  $d B y $.  $d C y $.  $d x y $.
    $( Distribution of class substitution over union of two classes.
       (Contributed by Drahflow, 23-Sep-2015.)  (Revised by Mario Carneiro,
       11-Dec-2016.)  (Revised by NM, 13-Sep-2018.) $)
    csbun $p |- [_ A / x ]_ ( B u. C ) = ( [_ A / x ]_ B u. [_ A / x ]_ C ) $=
      ( vy cvv wcel cun csb wceq cv csbeq1 uneq12d eqeq12d nfcsb1v nfun csbeq1a
      vex c0 csbprc weq csbief vtoclg wn un0 a1i 3eqtr4rd pm2.61i ) BFGZABCDHZI
      ZABCIZABDIZHZJZAEKZUJIZAUPCIZAUPDIZHZJUOEBFUPBJZUQUKUTUNAUPBUJLVAURULUSUM
      AUPBCLAUPBDLMNAUPUJUTERAURUSAUPCOAUPDOPAEUACURDUSAUPCQAUPDQMUBUCUIUDZSSHZ
      SUNUKVCSJVBSUEUFVBULSUMSABCTABDTMABUJTUGUH $.
  $}

  ${
    $d A y $.  $d B y $.  $d C y $.  $d x y $.
    $( Distribute proper substitution into a class through an intersection
       relation.  (Contributed by Alan Sare, 22-Jul-2012.)  (Revised by NM,
       18-Aug-2018.) $)
    csbin $p |- [_ A / x ]_ ( B i^i C )
                 = ( [_ A / x ]_ B i^i [_ A / x ]_ C ) $=
      ( vy cvv wcel cin csb wceq cv csbeq1 ineq12d eqeq12d nfcsb1v nfin csbeq1a
      vex c0 csbprc weq csbief vtoclg wn in0 syl6req eqtrd pm2.61i ) BFGZABCDHZ
      IZABCIZABDIZHZJZAEKZUJIZAUPCIZAUPDIZHZJUOEBFUPBJZUQUKUTUNAUPBUJLVAURULUSU
      MAUPBCLAUPBDLMNAUPUJUTERAURUSAUPCOAUPDOPAEUACURDUSAUPCQAUPDQMUBUCUIUDZUKS
      UNABUJTVBUNSSHSVBULSUMSABCTABDTMSUEUFUGUH $.
  $}

  $( Two classes are empty iff their union is empty.  (Contributed by NM,
     11-Aug-2004.) $)
  un00 $p |- ( ( A = (/) /\ B = (/) ) <-> ( A u. B ) = (/) ) $=
    ( c0 wceq wa cun uneq12 un0 syl6eq wss ssun1 sseq2 mpbii sylib ssun2 impbii
    ss0b jca ) ACDZBCDZEZABFZCDZUAUBCCFCACBCGCHIUCSTUCACJZSUCAUBJUDABKUBCALMAQN
    UCBCJZTUCBUBJUEBAOUBCBLMBQNRP $.

  $( Only the universal class has the universal class as a subclass.
     (Contributed by NM, 17-Sep-2003.)  (Proof shortened by Andrew Salmon,
     26-Jun-2011.) $)
  vss $p |- ( _V C_ A <-> A = _V ) $=
    ( cvv wss wa wceq ssv biantrur eqss bitr4i ) BACZABCZJDABEKJAFGABHI $.

  $( The null set is a proper subset of any nonempty set.  (Contributed by NM,
     27-Feb-1996.) $)
  0pss $p |- ( (/) C. A <-> A =/= (/) ) $=
    ( c0 wpss wne wss 0ss df-pss mpbiran necom bitri ) BACZBADZABDKBAELAFBAGHBA
    IJ $.

  $( No set is a proper subset of the empty set.  (Contributed by NM,
     17-Jun-1998.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.)  (Proof
     shortened by JJ, 14-Jul-2021.) $)
  npss0 $p |- -. A C. (/) $=
    ( c0 wss wpss wn 0ss ssnpss ax-mp ) BACABDEAFBAGH $.

  $( Obsolete proof of ~ npss0 as of 14-Jul-2021.  (Contributed by NM,
     17-Jun-1998.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.)
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  npss0OLD $p |- -. A C. (/) $=
    ( c0 wpss wss wn wa wi 0ss a1i iman mpbi dfpss3 mtbir ) ABCABDZBADZEFZNOGPE
    ONAHINOJKABLM $.

  $( Any non-universal class is a proper subclass of the universal class.
     (Contributed by NM, 17-May-1998.) $)
  pssv $p |- ( A C. _V <-> -. A = _V ) $=
    ( cvv wpss wss wceq wn ssv dfpss2 mpbiran ) ABCABDABEFAGABHI $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Two ways of saying that two classes are disjoint (have no members in
       common).  (Contributed by NM, 17-Feb-2004.) $)
    disj $p |- ( ( A i^i B ) = (/) <-> A. x e. A -. x e. B ) $=
      ( cin c0 wceq cv wcel wn wi wal wral wa cab df-in eqeq1i abeq1 imnan noel
      wb nbn bitr2i albii 3bitri df-ral bitr4i ) BCDZEFZAGZBHZUICHZIZJZAKZULABL
      UHUJUKMZANZEFUOUIEHZTZAKUNUGUPEABCOPUOAEQURUMAUMUOIURUJUKRUQUOUISUAUBUCUD
      ULABUEUF $.

    $( Two ways of saying that two classes are disjoint.  (Contributed by Jeff
       Madsen, 19-Jun-2011.) $)
    disjr $p |- ( ( A i^i B ) = (/) <-> A. x e. B -. x e. A ) $=
      ( cin c0 wceq cv wcel wn wral incom eqeq1i disj bitri ) BCDZEFCBDZEFAGBHI
      ACJOPEBCKLACBMN $.

    $( Two ways of saying that two classes are disjoint (have no members in
       common).  (Contributed by NM, 19-Aug-1993.) $)
    disj1 $p |- ( ( A i^i B ) = (/) <-> A. x ( x e. A -> -. x e. B ) ) $=
      ( cin c0 wceq cv wcel wn wral wi wal disj df-ral bitri ) BCDEFAGZCHIZABJP
      BHQKALABCMQABNO $.

    $( Two ways of saying that two classes are disjoint, using the complement
       of ` B ` relative to a universe ` C ` .  (Contributed by NM,
       15-Feb-2007.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    reldisj $p |- ( A C_ C -> ( ( A i^i B ) = (/) <-> A C_ ( C \ B ) ) ) $=
      ( vx wss cv wcel wn wi wal cdif cin c0 wceq wb dfss2 pm5.44 eldif imbi2i
      wa syl6bbr sps sylbi albidv disj1 3bitr4g ) ACEZDFZAGZUHBGHZIZDJUIUHCBKZG
      ZIZDJABLMNAULEUGUKUNDUGUIUHCGZIZDJUKUNOZDACPUPUQDUPUKUIUOUJTZIUNUIUOUJQUM
      URUIUHCBRSUAUBUCUDDABUEDAULPUF $.

    $( Two ways of saying that two classes are disjoint.  (Contributed by NM,
       19-May-1998.) $)
    disj3 $p |- ( ( A i^i B ) = (/) <-> A = ( A \ B ) ) $=
      ( vx cv wcel wn wi wal cdif wb cin c0 wa pm4.71 eldif bibi2i bitr4i albii
      wceq disj1 dfcleq 3bitr4i ) CDZAEZUCBEFZGZCHUDUCABIZEZJZCHABKLSAUGSUFUICU
      FUDUDUEMZJUIUDUENUHUJUDUCABOPQRCABTCAUGUAUB $.

    $( Members of disjoint sets are not equal.  (Contributed by NM,
       28-Mar-2007.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    disjne $p |- ( ( ( A i^i B ) = (/) /\ C e. A /\ D e. B ) -> C =/= D ) $=
      ( vx cin c0 wceq wcel wne cv wn wral wi disj eleq1 notbid rspccva eleq1a
      wa necon3bd syl5com sylanb 3impia ) ABFGHZCAIZDBIZCDJZUEEKZBIZLZEAMZUFUGU
      HNEABOULUFTCBIZLZUGUHUKUNECAUICHUJUMUICBPQRUGUMCDDBCSUAUBUCUD $.
  $}

  $( A set can't belong to both members of disjoint classes.  (Contributed by
     NM, 28-Feb-2015.) $)
  disjel $p |- ( ( ( A i^i B ) = (/) /\ C e. A ) -> -. C e. B ) $=
    ( cin c0 wceq wcel wn cdif wi disj3 eleq2 eldifn syl6bi sylbi imp ) ABDEFZC
    AGZCBGHZQAABIZFZRSJABKUARCTGSATCLCABMNOP $.

  $( Two ways of saying that two classes are disjoint.  (Contributed by NM,
     17-May-1998.) $)
  disj2 $p |- ( ( A i^i B ) = (/) <-> A C_ ( _V \ B ) ) $=
    ( cvv wss cin c0 wceq cdif wb ssv reldisj ax-mp ) ACDABEFGACBHDIAJABCKL $.

  $( Two ways of saying that two classes are disjoint.  (Contributed by NM,
     21-Mar-2004.) $)
  disj4 $p |- ( ( A i^i B ) = (/) <-> -. ( A \ B ) C. A ) $=
    ( cin c0 wceq cdif wpss disj3 eqcom wss difss dfpss2 mpbiran con2bii 3bitri
    wn ) ABCDEAABFZEQAEZQAGZPABHAQISRSQAJRPABKQALMNO $.

  $( Intersection with a subclass of a disjoint class.  (Contributed by FL,
     24-Jan-2007.)  (Proof shortened by JJ, 14-Jul-2021.) $)
  ssdisj $p |- ( ( A C_ B /\ ( B i^i C ) = (/) ) -> ( A i^i C ) = (/) ) $=
    ( wss cin c0 wceq wa ssrin eqimss sylan9ss ss0 syl ) ABDZBCEZFGZHACEZFDQFGN
    PQOFABCIOFJKQLM $.

  $( Obsolete proof of ~ ssdisj as of 14-Jul-2021.  (Contributed by FL,
     24-Jan-2007.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  ssdisjOLD $p |- ( ( A C_ B /\ ( B i^i C ) = (/) ) -> ( A i^i C ) = (/) ) $=
    ( wss cin c0 wceq wa ss0b wi ssrin sstr2 syl syl5bir imp ss0 ) ABDZBCEZFGZH
    ACEZFDZTFGQSUASRFDZQUARIQTRDUBUAJABCKTRFLMNOTPM $.

  $( A class is a proper subset of its union with a disjoint nonempty class.
     (Contributed by NM, 15-Sep-2004.) $)
  disjpss $p |- ( ( ( A i^i B ) = (/) /\ B =/= (/) ) -> A C. ( A u. B ) ) $=
    ( cin c0 wceq wne wa wss wn cun wpss ssid biantru bitri sseq2 syl5bb syl6bi
    ssin ss0 necon3ad imp nsspssun uncom psseq2i sylib ) ABCZDEZBDFZGBAHZIZAABJ
    ZKZUGUHUJUGUIBDUGUIBDHZBDEUIBUFHZUGUMUIUIBBHZGUNUOUIBLMBABRNUFDBOPBSQTUAUJA
    BAJZKULBAUBUPUKABAUCUDNUE $.

  $( The union of disjoint classes is disjoint.  (Contributed by NM,
     26-Sep-2004.) $)
  undisj1 $p |- ( ( ( A i^i C ) = (/) /\ ( B i^i C ) = (/) ) <->
               ( ( A u. B ) i^i C ) = (/) ) $=
    ( cin c0 wceq wa cun un00 indir eqeq1i bitr4i ) ACDZEFBCDZEFGMNHZEFABHCDZEF
    MNIPOEABCJKL $.

  $( The union of disjoint classes is disjoint.  (Contributed by NM,
     13-Sep-2004.) $)
  undisj2 $p |- ( ( ( A i^i B ) = (/) /\ ( A i^i C ) = (/) ) <->
               ( A i^i ( B u. C ) ) = (/) ) $=
    ( cin c0 wceq wa cun un00 indi eqeq1i bitr4i ) ABDZEFACDZEFGMNHZEFABCHDZEFM
    NIPOEABCJKL $.

  $( Subclass expressed in terms of intersection with difference from the
     universal class.  (Contributed by NM, 17-Sep-2003.) $)
  ssindif0 $p |- ( A C_ B <-> ( A i^i ( _V \ B ) ) = (/) ) $=
    ( cvv cdif cin c0 wceq wss disj2 ddif sseq2i bitr2i ) ACBDZEFGACMDZHABHAMIN
    BABJKL $.

  $( The intersection of classes with a common member is nonempty.
     (Contributed by NM, 7-Apr-1994.) $)
  inelcm $p |- ( ( A e. B /\ A e. C ) -> ( B i^i C ) =/= (/) ) $=
    ( wcel wa cin c0 wne elin ne0i sylbir ) ABDACDEABCFZDLGHABCILAJK $.

  $( A minimum element of a class has no elements in common with the class.
     (Contributed by NM, 22-Jun-1994.)  (Proof shortened by JJ,
     14-Jul-2021.) $)
  minel $p |- ( ( A e. B /\ ( C i^i B ) = (/) ) -> -. A e. C ) $=
    ( wcel cin c0 wceq wn wne inelcm expcom necon2bd imp ) ABDZCBEZFGACDZHNPOFP
    NOFIACBJKLM $.

  $( Obsolete proof of ~ minel as of 14-Jul-2021.  (Contributed by NM,
     22-Jun-1994.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  minelOLD $p |- ( ( A e. B /\ ( C i^i B ) = (/) ) -> -. A e. C ) $=
    ( cin c0 wceq wcel wn wa wi inelcm necon2bi imnan sylibr con2d impcom ) CBD
    ZEFZABGZACGZHRTSRTSIZHTSHJUAQEACBKLTSMNOP $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Distribute union over difference.  (Contributed by NM, 17-May-1998.)
       (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    undif4 $p |- ( ( A i^i C ) = (/) ->
                 ( A u. ( B \ C ) ) = ( ( A u. B ) \ C ) ) $=
      ( vx cv wcel wn wi wal cdif cun wb cin c0 wceq wo wa eldif elun 3bitr4g
      pm2.621 olc impbid1 anbi2d orbi2i bitri anbi1i alimi disj1 dfcleq 3imtr4i
      ordi ) DEZAFZUMCFGZHZDIUMABCJZKZFZUMABKZCJZFZLZDIACMNOURVAOUPVCDUPUNUMUQF
      ZPZUMUTFZUOQZUSVBUPUNUMBFZPZUNUOPZQZVIUOQVEVGUPVJUOVIUPVJUOUNUOUAUOUNUBUC
      UDVEUNVHUOQZPVKVDVLUNUMBCRUEUNVHUOULUFVFVIUOUMABSUGTUMAUQSUMUTCRTUHDACUID
      URVAUJUK $.

    $( Subset relation for disjoint classes.  (Contributed by NM, 25-Oct-2005.)
       (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    disjssun $p |- ( ( A i^i B ) = (/) -> ( A C_ ( B u. C ) <-> A C_ C ) ) $=
      ( cin c0 wceq cun wss uneq2 indi equncomi un0 eqcomi 3eqtr4g eqeq1d df-ss
      3bitr4g ) ABDZEFZABCGZDZAFACDZAFATHACHSUAUBASUBRGUBEGZUAUBREUBIUARUBABCJK
      UCUBUBLMNOATPACPQ $.
  $}

  $( Universal class equality in terms of empty difference.  (Contributed by
     NM, 17-Sep-2003.) $)
  vdif0 $p |- ( A = _V <-> ( _V \ A ) = (/) ) $=
    ( cvv wceq wss cdif c0 vss ssdif0 bitr3i ) ABCBADBAEFCAGBAHI $.

  ${
    $d V x $.
    $( If the difference between the restricting class of a restricted class
       abstraction and the restricted class abstraction is empty, the
       restricting class is equal to this restricted class abstraction.
       (Contributed by Alexander van der Vekens, 31-Dec-2017.) $)
    difrab0eq $p |- ( ( V \ { x e. V | ph } ) = (/)
                      <-> V = { x e. V | ph } ) $=
      ( crab cdif c0 wceq wss ssdif0 ssrabeq bitr3i ) CABCDZEFGCLHCLGCLIABCJK
      $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A proper subclass has a member in one argument that's not in both.
       (Contributed by NM, 29-Feb-1996.) $)
    pssnel $p |- ( A C. B -> E. x ( x e. B /\ -. x e. A ) ) $=
      ( wpss cv cdif wcel wex wn wa c0 wne pssdif n0 sylib eldif exbii ) BCDZAE
      ZCBFZGZAHZSCGSBGIJZAHRTKLUBBCMATNOUAUCASCBPQO $.
  $}

  $( A class and its relative complement are disjoint.  Theorem 38 of [Suppes]
     p. 29.  (Contributed by NM, 24-Mar-1998.) $)
  disjdif $p |- ( A i^i ( B \ A ) ) = (/) $=
    ( cin wss cdif c0 wceq inss1 inssdif0 mpbi ) ABCADABAECFGABHABAIJ $.

  $( The difference of a class from its intersection is empty.  Theorem 37 of
     [Suppes] p. 29.  (Contributed by NM, 17-Aug-2004.)  (Proof shortened by
     Andrew Salmon, 26-Jun-2011.) $)
  difin0 $p |- ( ( A i^i B ) \ B ) = (/) $=
    ( cin wss cdif c0 wceq inss2 ssdif0 mpbi ) ABCZBDKBEFGABHKBIJ $.

  $( The union of a class and its complement is the universe.  Theorem 5.1(5)
     of [Stoll] p. 17.  (Contributed by NM, 17-Aug-2004.) $)
  unvdif $p |- ( A u. ( _V \ A ) ) = _V $=
    ( cvv cdif cun cin c0 dfun3 disjdif difeq2i dif0 3eqtri ) ABACZDBLBLCEZCBFC
    BALGMFBLBHIBJK $.

  $( Absorption of difference by union.  This decomposes a union into two
     disjoint classes (see ~ disjdif ).  Theorem 35 of [Suppes] p. 29.
     (Contributed by NM, 19-May-1998.) $)
  undif1 $p |- ( ( A \ B ) u. B ) = ( A u. B ) $=
    ( cvv cdif cin undir invdif uneq1i uncom unvdif eqtri ineq2i inv1 3eqtr3i
    cun ) ACBDZEZBOABOZPBOZEZABDZBORAPBFQUABABGHTRCERSCRSBPOCPBIBJKLRMKN $.

  $( Absorption of difference by union.  This decomposes a union into two
     disjoint classes (see ~ disjdif ).  Part of proof of Corollary 6K of
     [Enderton] p. 144.  (Contributed by NM, 19-May-1998.) $)
  undif2 $p |- ( A u. ( B \ A ) ) = ( A u. B ) $=
    ( cdif cun uncom undif1 3eqtri ) ABACZDHADBADABDAHEBAFBAEG $.

  $( Absorption of difference by union.  (Contributed by NM, 18-Aug-2013.) $)
  undifabs $p |- ( A u. ( A \ B ) ) = A $=
    ( cdif cun undif3 unidm difeq1i difdif 3eqtri ) AABCDAADZBACZCAKCAAABEJAKAF
    GABHI $.

  ${
    $d x A $.  $d x B $.
    $( The intersection and class difference of a class with another class
       unite to give the original class.  (Contributed by Paul Chapman,
       5-Jun-2009.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    inundif $p |- ( ( A i^i B ) u. ( A \ B ) ) = A $=
      ( vx cin cdif cv wcel wo wa wn elin eldif orbi12i pm4.42 bitr4i uneqri )
      CABDZABEZACFZQGZSRGZHSAGZSBGZIZUBUCJIZHUBTUDUAUESABKSABLMUBUCNOP $.
  $}

  $( The difference of a class and a class disjoint from it is the original
     class.  (Contributed by BJ, 21-Apr-2019.) $)
  disjdif2 $p |- ( ( A i^i B ) = (/) -> ( A \ B ) = A ) $=
    ( cin c0 wceq cdif difeq2 difin dif0 3eqtr3g ) ABCZDEAKFADFABFAKDAGABHAIJ
    $.

  $( Absorption of union by difference.  Theorem 36 of [Suppes] p. 29.
     (Contributed by NM, 19-May-1998.) $)
  difun2 $p |- ( ( A u. B ) \ B ) = ( A \ B ) $=
    ( cun cdif c0 difundir difid uneq2i un0 3eqtri ) ABCBDABDZBBDZCKECKABBFLEKB
    GHKIJ $.

  $( Union of complementary parts into whole.  (Contributed by NM,
     22-Mar-1998.) $)
  undif $p |- ( A C_ B <-> ( A u. ( B \ A ) ) = B ) $=
    ( wss cun wceq cdif ssequn1 undif2 eqeq1i bitr4i ) ABCABDZBEABAFDZBEABGLKBA
    BHIJ $.

  $( A subset of a difference does not intersect the subtrahend.  (Contributed
     by Jeff Hankins, 1-Sep-2013.)  (Proof shortened by Mario Carneiro,
     24-Aug-2015.) $)
  ssdifin0 $p |- ( A C_ ( B \ C ) -> ( A i^i C ) = (/) ) $=
    ( cdif wss cin c0 wceq ssrin incom disjdif eqtri sseq0 sylancl ) ABCDZEACFZ
    OCFZEQGHPGHAOCIQCOFGOCJCBKLPQMN $.

  $( A class is a subclass of itself subtracted from another iff it is the
     empty set.  (Contributed by Steve Rodriguez, 20-Nov-2015.) $)
  ssdifeq0 $p |- ( A C_ ( B \ A ) <-> A = (/) ) $=
    ( cdif wss wceq cin inidm ssdifin0 syl5eqr 0ss difeq2 sseq12d mpbiri impbii
    c0 id ) ABACZDZAOEZRAAAFOAGABAHISROBOCZDTJSAOQTSPAOBKLMN $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( A condition equivalent to inclusion in the union of two classes.
       (Contributed by NM, 26-Mar-2007.) $)
    ssundif $p |- ( A C_ ( B u. C ) <-> ( A \ B ) C_ C ) $=
      ( vx cv wcel cun wi wal cdif wss wn wa wo pm5.6 eldif imbi1i imbi2i dfss2
      elun 3bitr4ri albii 3bitr4i ) DEZAFZUDBCGZFZHZDIUDABJZFZUDCFZHZDIAUFKUICK
      UHULDUEUDBFZLMZUKHUEUMUKNZHULUHUEUMUKOUJUNUKUDABPQUGUOUEUDBCTRUAUBDAUFSDU
      ICSUC $.
  $}

  $( Swap the arguments of a class difference.  (Contributed by NM,
     29-Mar-2007.) $)
  difcom $p |- ( ( A \ B ) C_ C <-> ( A \ C ) C_ B ) $=
    ( cun wss cdif uncom sseq2i ssundif 3bitr3i ) ABCDZEACBDZEABFCEACFBEKLABCGH
    ABCIACBIJ $.

  $( Two ways to express overlapping subsets.  (Contributed by Stefan O'Rear,
     31-Oct-2014.) $)
  pssdifcom1 $p |- ( ( A C_ C /\ B C_ C ) ->
    ( ( C \ A ) C. B <-> ( C \ B ) C. A ) ) $=
    ( wss wa cdif wn wpss wb difcom ssconb ancoms notbid anbi12d dfpss3 3bitr4g
    a1i ) ACDZBCDZEZCAFZBDZBUADZGZECBFZADZAUEDZGZEUABHUEAHTUBUFUDUHUBUFITCABJQT
    UCUGSRUCUGIBACKLMNUABOUEAOP $.

  $( Two ways to express non-covering pairs of subsets.  (Contributed by Stefan
     O'Rear, 31-Oct-2014.) $)
  pssdifcom2 $p |- ( ( A C_ C /\ B C_ C ) ->
    ( B C. ( C \ A ) <-> A C. ( C \ B ) ) ) $=
    ( wss wa cdif wn wpss wb ssconb ancoms difcom notbii anbi12d dfpss3 3bitr4g
    a1i ) ACDZBCDZEZBCAFZDZUABDZGZEACBFZDZUEADZGZEBUAHAUEHTUBUFUDUHSRUBUFIBACJK
    UDUHITUCUGCABLMQNBUAOAUEOP $.

  $( Distributive law for class difference.  Exercise 4.8 of [Stoll] p. 16.
     (Contributed by NM, 18-Aug-2004.) $)
  difdifdir $p |- ( ( A \ B ) \ C ) = ( ( A \ C ) \ ( B \ C ) ) $=
    ( cdif cvv cun cin dif32 invdif eqtr4i un0 indi disjdif incom eqtr3i uneq2i
    c0 ddif indm difeq2i ineq2i 3eqtri ) ABDCDZACDZEBDZCFZGZUDEBCDZDZGUDUHDUCUD
    UEGZQFZUGUCUJUKUCUDBDUJABCHUDBIJUJKJUGUJUDCGZFUKUDUECLQULUJCUDGQULCAMCUDNOP
    JJUFUIUDUEEECDZDZFZUFUIUNCUECRPEBUMGZDUOUIBUMSUPUHEBCITOOUAUDUHIUB $.

  $( Two ways to say that ` A ` and ` B ` partition ` C ` (when ` A ` and ` B `
     don't overlap and ` A ` is a part of ` C ` ).  (Contributed by FL,
     17-Nov-2008.)  (Proof shortened by JJ, 14-Jul-2021.) $)
  uneqdifeq $p |- ( ( A C_ C /\ ( A i^i B ) = (/) )
     -> ( ( A u. B ) = C <-> ( C \ A ) = B ) ) $=
    ( wss cin c0 wceq wa cun cdif uncom eqcomd difeq1 difun2 incom eqeq1i disj3
    wi eqtr adantl bitri expcom eqcoms sylbi syl5com sylancl com12 simpl difssd
    syl mpan sseq1 mpbid unssd eqimss ssundif sylibr eqssd ex adantr impbid ) A
    CDZABEZFGZHABIZCGZCAJZBGZVDVFVHRVBVFVDVHBAIZVEGZVFVDVHRZBAKVJVFHZCVIGZVKVLV
    ICVIVECSLVMVGVIAJZGZVNBAJZGZVKCVIAMBANVOVQHVGVPGZVDVHVGVNVPSVDBVPGZVRVHRZVD
    BAEZFGVSVCWAFABOPBAQUAVTVPBVRVPBGVHVGVPBSUBUCUDUEUFUJUKUGTVBVHVFRVDVBVHVFVB
    VHHZVECWBABCVBVHUHVHBCDZVBVHVGCDWCVHCAUIVGBCULUMTUNVHCVEDZVBVHVGBDWDVGBUOCA
    BUPUQTURUSUTVA $.

  $( Obsolete proof of ~ uneqdifeq as of 14-Jul-2021.  (Contributed by FL,
     17-Nov-2008.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  uneqdifeqOLD $p |- ( ( A C_ C /\ ( A i^i B ) = (/) )
     -> ( ( A u. B ) = C <-> ( C \ A ) = B ) ) $=
    ( wss cin c0 wceq wa cun cdif uncom eqcomd difeq1 difun2 incom expcom com12
    wi eqtr adantl eqeq1i disj3 bitri eqcoms sylbi syl5com syl mpan difss sseq1
    sylancl biimpi syl6bi mpi adantr imp eqimss ssundif sylibr adantlr eqssd ex
    unss impbid ) ACDZABEZFGZHZABIZCGZCAJZBGZVGVJVLRVEVJVGVLBAIZVIGZVJVGVLRZBAK
    VNVJHZCVMGZVOVPVMCVMVICSLVQVKVMAJZGZVRBAJZGZVOCVMAMBANVSWAHVKVTGZVGVLVKVRVT
    SVGBVTGZWBVLRZVGBAEZFGWCVFWEFABOUABAUBUCWDVTBWBVTBGVLVKVTBSPUDUEUFUKUGUHQTV
    HVLVJVHVLHVICVHVLVICDZVEVLWFRVGVLVEWFVLVKCDZVEWFRZCAUIVLWGBCDZWHVKBCUJVEWIW
    FVEWIHWFABCVCULPUMUNQUOUPVEVLCVIDZVGVEVLHVKBDZWJVLWKVEVKBUQTCABURUSUTVAVBVD
    $.

  ${
    $d A x $.  $d B x $.
    raldifeq.1 $e |- ( ph -> A C_ B ) $.
    raldifeq.2 $e |- ( ph -> A. x e. ( B \ A ) ps ) $.
    $( Equality theorem for restricted universal quantifier.  (Contributed by
       Thierry Arnoux, 6-Jul-2019.) $)
    raldifeq $p |- ( ph -> ( A. x e. A ps <-> A. x e. B ps ) ) $=
      ( wral cdif cun wa biantrud ralunb syl6bbr wceq undif sylib raleqdv bitrd
      wss ) ABCDHZBCDEDIZJZHZBCEHAUAUABCUBHZKUDAUEUAGLBCDUBMNABCUCEADETUCEOFDEP
      QRS $.
  $}

  ${
    $d x A $.
    $( Theorem 19.2 of [Margaris] p. 89 with restricted quantifiers (compare
       ~ 19.2 ).  The restricted version is valid only when the domain of
       quantification is not empty.  (Contributed by NM, 15-Nov-2003.) $)
    r19.2z $p |- ( ( A =/= (/) /\ A. x e. A ph ) -> E. x e. A ph ) $=
      ( wral c0 wne wrex cv wex wa wi wal df-ral exintr sylbi n0 df-rex 3imtr4g
      wcel impcom ) ABCDZCEFZABCGZUABHCSZBIZUDAJBIZUBUCUAUDAKBLUEUFKABCMUDABNOB
      CPABCQRT $.

    $( A response to the notion that the condition ` A =/= (/) ` can be removed
       in ~ r19.2z .  Interestingly enough, ` ph ` does not figure in the
       left-hand side.  (Contributed by Jeff Hankins, 24-Aug-2009.) $)
    r19.2zb $p |- ( A =/= (/) <-> ( A. x e. A ph -> E. x e. A ph ) ) $=
      ( c0 wral wrex wi r19.2z ex wceq cv wcel noel pm2.21i rgen raleq necon3bi
      wne mpbiri wex wa exsimpl df-rex n0 3imtr4i ja impbii ) CDRZABCEZABCFZGUH
      UIUJABCHIUIUJUHUICDCDJUIABDEABDBKZDLAUKMNOABCDPSQUKCLZAUABTULBTUJUHULABUB
      ABCUCBCUDUEUFUG $.
  $}

  ${
    $d x A $.
    r19.3rz.1 $e |- F/ x ph $.
    $( Restricted quantification of wff not containing quantified variable.
       (Contributed by FL, 3-Jan-2008.) $)
    r19.3rz $p |- ( A =/= (/) -> ( ph <-> A. x e. A ph ) ) $=
      ( c0 wne cv wcel wex wi wral wb n0 biimt sylbi df-ral 19.23 bitri syl6bbr
      wal ) CEFZABGCHZBIZAJZABCKZUAUCAUDLBCMUCANOUEUBAJBTUDABCPUBABDQRS $.

    $( Restricted quantifier version of Theorem 19.28 of [Margaris] p. 90.  It
       is valid only when the domain of quantification is not empty.
       (Contributed by NM, 26-Oct-2010.) $)
    r19.28z $p |- ( A =/= (/) ->
                   ( A. x e. A ( ph /\ ps ) <-> ( ph /\ A. x e. A ps ) ) ) $=
      ( c0 wne wral wa r19.3rz anbi1d r19.26 syl6rbbr ) DFGZABCDHZIACDHZOIABICD
      HNAPOACDEJKABCDLM $.
  $}

  ${
    $d x A $.  $d x ph $.
    $( Restricted quantification of wff not containing quantified variable.
       (Contributed by NM, 10-Mar-1997.) $)
    r19.3rzv $p |- ( A =/= (/) -> ( ph <-> A. x e. A ph ) ) $=
      ( nfv r19.3rz ) ABCABDE $.

    $( Restricted quantification of wff not containing quantified variable.
       (Contributed by NM, 27-May-1998.) $)
    r19.9rzv $p |- ( A =/= (/) -> ( ph <-> E. x e. A ph ) ) $=
      ( wrex wn wral c0 wne dfrex2 r19.3rzv con1bid syl5rbb ) ABCDAEZBCFZECGHZA
      ABCIOANMBCJKL $.

    $( Restricted quantifier version of Theorem 19.28 of [Margaris] p. 90.  It
       is valid only when the domain of quantification is not empty.
       (Contributed by NM, 19-Aug-2004.) $)
    r19.28zv $p |- ( A =/= (/) ->
                   ( A. x e. A ( ph /\ ps ) <-> ( ph /\ A. x e. A ps ) ) ) $=
      ( nfv r19.28z ) ABCDACEF $.

    $( Restricted quantifier version of Theorem 19.37 of [Margaris] p. 90.  It
       is valid only when the domain of quantification is not empty.
       (Contributed by Paul Chapman, 8-Oct-2007.) $)
    r19.37zv $p |- ( A =/= (/) ->
                   ( E. x e. A ( ph -> ps ) <-> ( ph -> E. x e. A ps ) ) ) $=
      ( c0 wne wrex wi wral r19.3rzv imbi1d r19.35 syl6rbbr ) DEFZABCDGZHACDIZO
      HABHCDGNAPOACDJKABCDLM $.

    $( Restricted version of Theorem 19.45 of [Margaris] p. 90.  (Contributed
       by NM, 27-May-1998.) $)
    r19.45zv $p |- ( A =/= (/) ->
                   ( E. x e. A ( ph \/ ps ) <-> ( ph \/ E. x e. A ps ) ) ) $=
      ( c0 wne wrex wo r19.9rzv orbi1d r19.43 syl6rbbr ) DEFZABCDGZHACDGZNHABHC
      DGMAONACDIJABCDKL $.
  $}

  ${
    $d x A $.  $d x ps $.
    $( Restricted version of Theorem 19.44 of [Margaris] p. 90.  (Contributed
       by NM, 27-May-1998.) $)
    r19.44zv $p |- ( A =/= (/) ->
                   ( E. x e. A ( ph \/ ps ) <-> ( E. x e. A ph \/ ps ) ) ) $=
      ( c0 wne wrex wo r19.9rzv orbi2d r19.43 syl6rbbr ) DEFZACDGZBHNBCDGZHABHC
      DGMBONBCDIJABCDKL $.
  $}

  ${
    $d x A $.
    r19.27z.1 $e |- F/ x ps $.
    $( Restricted quantifier version of Theorem 19.27 of [Margaris] p. 90.  It
       is valid only when the domain of quantification is not empty.
       (Contributed by NM, 26-Oct-2010.) $)
    r19.27z $p |- ( A =/= (/) ->
                   ( A. x e. A ( ph /\ ps ) <-> ( A. x e. A ph /\ ps ) ) ) $=
      ( c0 wne wral wa r19.3rz anbi2d r19.26 syl6rbbr ) DFGZACDHZBIOBCDHZIABICD
      HNBPOBCDEJKABCDLM $.
  $}

  ${
    $d x A $.  $d x ps $.
    $( Restricted quantifier version of Theorem 19.27 of [Margaris] p. 90.  It
       is valid only when the domain of quantification is not empty.
       (Contributed by NM, 19-Aug-2004.) $)
    r19.27zv $p |- ( A =/= (/) ->
                   ( A. x e. A ( ph /\ ps ) <-> ( A. x e. A ph /\ ps ) ) ) $=
      ( nfv r19.27z ) ABCDBCEF $.

    $( Restricted quantifier version of Theorem 19.36 of [Margaris] p. 90.  It
       is valid only when the domain of quantification is not empty.
       (Contributed by NM, 20-Sep-2003.) $)
    r19.36zv $p |- ( A =/= (/) ->
                   ( E. x e. A ( ph -> ps ) <-> ( A. x e. A ph -> ps ) ) ) $=
      ( c0 wne wral wi wrex r19.9rzv imbi2d r19.35 syl6rbbr ) DEFZACDGZBHOBCDIZ
      HABHCDINBPOBCDJKABCDLM $.
  $}

  ${
    $d x A $.
    $( Vacuous quantification is always true.  (Contributed by NM,
       11-Mar-1997.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
    rzal $p |- ( A = (/) -> A. x e. A ph ) $=
      ( c0 wceq cv wcel ne0i necon2bi pm2.21d ralrimiv ) CDEZABCLBFZCGZANCDCMHI
      JK $.

    $( Restricted existential quantification implies its restriction is
       nonempty.  (Contributed by Szymon Jaroszewicz, 3-Apr-2007.) $)
    rexn0 $p |- ( E. x e. A ph -> A =/= (/) ) $=
      ( c0 wne cv wcel ne0i a1d rexlimiv ) ACDEZBCBFZCGKACLHIJ $.

    $( Idempotent law for restricted quantifier.  (Contributed by NM,
       28-Mar-1997.) $)
    ralidm $p |- ( A. x e. A A. x e. A ph <-> A. x e. A ph ) $=
      ( c0 wceq wral wb rzal 2thd wn cv wcel wex neq0 wi biimt wal df-ral nfra1
      19.23 bitri syl6rbbr sylbi pm2.61i ) CDEZABCFZBCFZUFGZUEUGUFUFBCHABCHIUEJ
      BKCLZBMZUHBCNUJUFUJUFOZUGUJUFPUGUIUFOBQUKUFBCRUIUFBABCSTUAUBUCUD $.
  $}

  $( Vacuous universal quantification is always true.  (Contributed by NM,
     20-Oct-2005.) $)
  ral0 $p |- A. x e. (/) ph $=
    ( c0 cv wcel noel pm2.21i rgen ) ABCBDZCEAIFGH $.

  ${
    $d x A $.
    rgenzOLD.1 $e |- ( ( A =/= (/) /\ x e. A ) -> ph ) $.
    $( Obsolete as of 22-Jul-2021.  (Contributed by NM, 8-Dec-2012.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    rgenzOLD $p |- A. x e. A ph $=
      ( wral c0 rzal wne ralrimiva pm2.61ine ) ABCECFABCGCFHABCDIJ $.
  $}

  ${
    $d x A $.
    ralf0.1 $e |- -. ph $.
    $( The quantification of a falsehood is vacuous when true.  (Contributed by
       NM, 26-Nov-2005.)  (Proof shortened by JJ, 14-Jul-2021.) $)
    ralf0 $p |- ( A. x e. A ph <-> A = (/) ) $=
      ( cv wcel wn wal wi c0 wceq wral wb mtt ax-mp albii eq0 df-ral 3bitr4ri )
      BECFZGZBHTAIZBHCJKABCLUAUBBAGUAUBMDATNOPBCQABCRS $.

    $( Obsolete proof of ~ ralf0 as of 14-Jul-2021.  (Contributed by NM,
       26-Nov-2005.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    ralf0OLD $p |- ( A. x e. A ph <-> A = (/) ) $=
      ( wral c0 wceq cv wcel wi wal wn con3 mpi alimi df-ral eq0 3imtr4i impbii
      rzal ) ABCEZCFGZBHCIZAJZBKUCLZBKUAUBUDUEBUDALUEDUCAMNOABCPBCQRABCTS $.
  $}

  ${
    $d A x $.
    $( A contradiction concerning restricted generalization for a nonempty set
       implies anything.  (Contributed by Alexander van der Vekens,
       4-Sep-2018.) $)
    ralnralall $p |- ( A =/= (/)
                       -> ( ( A. x e. A ph /\ A. x e. A -. ph ) -> ps ) ) $=
      ( wral wn wa c0 wne r19.26 wfal pm3.24 bifal ralbii r19.3rzv falim syl5bi
      syl6bir syl5bir ) ACDEAFZCDEGATGZCDEZDHIZBATCDJUBKCDEZUCBUAKCDUAALMNUCUDK
      BKCDOBPRQS $.

    $( A false statement can only be true for elements of an empty set.
       (Contributed by AV, 30-Oct-2020.) $)
    falseral0 $p |- ( ( A. x -. ph /\ A. x e. A ph ) -> A = (/) ) $=
      ( wral wn wal cv wcel wi c0 wceq df-ral 19.26 wex con3 impcom alimi alnex
      wa sylib notnotb neq0 xchbinx sylibr sylbir sylan2b ) ABCDAEZBFZBGCHZAIZB
      FZCJKZABCLUHUKSUGUJSZBFZULUGUJBMUNUIBNZEZULUNUIEZBFUPUMUQBUJUGUQUIAOPQUIB
      RTULULEUOULUABCUBUCUDUEUF $.
  $}

  ${
    $d x y A $.
    raaan.1 $e |- F/ y ph $.
    raaan.2 $e |- F/ x ps $.
    $( Rearrange restricted quantifiers.  (Contributed by NM, 26-Oct-2010.) $)
    raaan $p |- ( A. x e. A A. y e. A ( ph /\ ps ) <->
                  ( A. x e. A ph /\ A. y e. A ps ) ) $=
      ( wa wral wb c0 wceq rzal pm5.1 syl12anc wne r19.28z ralbidv nfcv nfral
      r19.27z bitrd pm2.61ine ) ABHDEIZCEIZACEIZBDEIZHZJZEKEKLUEUFUGUIUDCEMACEM
      BDEMUEUHNOEKPZUEAUGHZCEIUHUJUDUKCEABDEFQRAUGCEBCDECESGTUAUBUC $.
  $}

  ${
    $d y ph $.  $d x ps $.  $d x y A $.
    $( Rearrange restricted quantifiers.  (Contributed by NM, 11-Mar-1997.) $)
    raaanv $p |- ( A. x e. A A. y e. A ( ph /\ ps ) <->
                  ( A. x e. A ph /\ A. y e. A ps ) ) $=
      ( nfv raaan ) ABCDEADFBCFG $.
  $}

  ${
    $d z y $.  $d z x A $.
    $( Set substitution into the first argument of a subset relation.
       (Contributed by Rodolfo Medina, 7-Jul-2010.)  (Proof shortened by Mario
       Carneiro, 14-Nov-2016.) $)
    sbss $p |- ( [ y / x ] x C_ A <-> y C_ A ) $=
      ( vz cv wss wsb vex sbequ sseq1 nfv sbie vtoclb ) AEZCFZADGDEZCFZOABGBEZC
      FDRBHODBAIPRCJOQADQAKNPCJLM $.
  $}

  ${
    $d A y $.  $d B y $.  $d C y $.  $d V y $.  $d x y $.
    $( Distribute proper substitution through a subclass relation.
       (Contributed by Alan Sare, 22-Jul-2012.)  (Proof shortened by Alexander
       van der Vekens, 23-Jul-2017.) $)
    sbcssg $p |- ( A e. V -> ( [. A / x ]. B C_ C <->
      [_ A / x ]_ B C_ [_ A / x ]_ C ) ) $=
      ( vy wcel cv wi wal wsbc csb wss sbcal sbcimg sbcel2 imbi12i syl6bb dfss2
      albidv syl5bb sbcbii 3bitr4g ) BEGZFHZCGZUEDGZIZFJZABKZUEABCLZGZUEABDLZGZ
      IZFJZCDMZABKUKUMMUJUHABKZFJUDUPUHFABNUDURUOFUDURUFABKZUGABKZIUOUFUGABEOUS
      ULUTUNABUECPABUEDPQRTUAUQUIABFCDSUBFUKUMSUC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  "Weak deduction theorem" for set theory
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In a Hilbert system of logic (which consists of a set of axioms, modus
  ponens, and the generalization rule), converting a deduction to a proof using
  the Deduction Theorem (taught in introductory logic books) involves an
  exponential increase of the number of steps as hypotheses are successively
  eliminated.  Here is a trick that is not as general as the Deduction Theorem
  but requires only a linear increase in the number of steps.

  The general problem:  We want to convert a deduction
    P |- Q
  into a proof of the theorem
    |- P -> Q
  i.e., we want to eliminate the hypothesis P.  Normally this is done using the
  Deduction (meta)Theorem, which looks at the microscopic steps of the
  deduction and usually doubles or triples the number of these microscopic
  steps for each hypothesis that is eliminated.  We will look at a special case
  of this problem, without appealing to the Deduction Theorem.

  We assume ZF with class notation.  A and B are arbitrary (possibly proper)
  classes.  P, Q, R, S and T are wffs.

  We define the conditional operator, if(P, A, B), as follows:
    if(P, A, B) =def= { x | (x \in A & P) v (x \in B & -. P) }
  (where x does not occur in A, B, or P).

  Lemma 1.
    A = if(P, A, B) -> (P <-> R), B = if(P, A, B) -> (S <-> R), S |- R
  Proof:  Logic and Axiom of Extensionality.

  Lemma 2.
    A = if(P, A, B) -> (Q <-> T), T |- P -> Q
  Proof:  Logic and Axiom of Extensionality.

  Here's a simple example that illustrates how it works.  Suppose we have a
  deduction
    Ord A |- Tr A
  which means, "Assume A is an ordinal class.  Then A is a transitive class."
  Note that A is a class variable that may be substituted with any class
  expression, so this is really a deduction scheme.

  We want to convert this to a proof of the theorem (scheme)
    |- Ord A -> Tr A.

  The catch is that we must be able to prove "Ord A" for at least one object A
  (and this is what makes it weaker than the ordinary Deduction Theorem).
  However, it is easy to prove |- Ord 0 (the empty set is ordinal).  (For a
  typical textbook "theorem," i.e. deduction, there is usually at least one
  object satisfying each hypothesis, otherwise the theorem would not be very
  useful.  We can always go back to the standard Deduction Theorem for those
  hypotheses where this is not the case.)  Continuing with the example:

  Equality axioms (and Extensionality) yield
    |- A = if(Ord A, A, 0) -> (Ord A <-> Ord if(Ord A, A, 0))    (1)
    |- 0 = if(Ord A, A, 0) -> (Ord 0 <-> Ord if(Ord A, A, 0))    (2)
  From (1), (2) and |- Ord 0, Lemma 1 yields
    |- Ord if(Ord A, A, 0)                                       (3)
  From (3) and substituting if(Ord A, A, 0) for
  A in the original deduction,
    |- Tr if(Ord A, A, 0)                                        (4)
  Equality axioms (and Extensionality) yield
    |- A = if(Ord A, A, 0) -> (Tr A <-> Tr if(Ord A, A, 0))      (5)
  From (4) and (5), Lemma 2 yields
    |- Ord A -> Tr A                                             (Q.E.D.)

$)

  $( These lemmas are used to convert hypotheses into antecedents, when there
     is at least one class making the hypothesis true. $)

  $( Declare new constant symbols. $)
  $c if $.  $( Conditional operator (was "ded" for "deduction class"). $)

  $( Extend class notation to include the conditional operator.  See ~ df-if
     for a description.  (In older databases this was denoted "ded".) $)
  cif $a class if ( ph , A , B ) $.

  ${
    $d x ph $.  $d x A $.  $d x B $.
    $( Define the conditional operator.  Read ` if ( ph , A , B ) ` as "if
       ` ph ` then ` A ` else ` B ` ."  See ~ iftrue and ~ iffalse for its
       values.  In mathematical literature, this operator is rarely defined
       formally but is implicit in informal definitions such as "let f(x)=0 if
       x=0 and 1/x otherwise."  (In older versions of this database, this
       operator was denoted "ded" and called the "deduction class.")

       An important use for us is in conjunction with the weak deduction
       theorem, which converts a hypothesis into an antecedent.  In that role,
       ` A ` is a class variable in the hypothesis and ` B ` is a class
       (usually a constant) that makes the hypothesis true when it is
       substituted for ` A ` .  See ~ dedth for the main part of the weak
       deduction theorem, ~ elimhyp to eliminate a hypothesis, and ~ keephyp to
       keep a hypothesis.  See the Deduction Theorem link on the Metamath Proof
       Explorer Home Page for a description of the weak deduction theorem.
       (Contributed by NM, 15-May-1999.) $)
    df-if $a |- if ( ph , A , B ) =
                 { x | ( ( x e. A /\ ph ) \/ ( x e. B /\ -. ph ) ) } $.
  $}

  ${
    $d x ph $.  $d x A $.  $d x B $.  $d x C $.
    $( An alternate definition of the conditional operator ~ df-if with one
       fewer connectives (but probably less intuitive to understand).
       (Contributed by NM, 30-Jan-2006.) $)
    dfif2 $p |- if ( ph , A , B ) =
                 { x | ( ( x e. B -> ph ) -> ( x e. A /\ ph ) ) } $=
      ( cif cv wcel wa wn wo cab wi df-if df-or orcom iman imbi1i 3bitr4i abbii
      eqtri ) ACDEBFZCGAHZUADGZAIHZJZBKUCALZUBLZBKABCDMUEUGBUDUBJUDIZUBLUEUGUDU
      BNUBUDOUFUHUBUCAPQRST $.

    $( An alternate definition of the conditional operator ~ df-if as a simple
       class abstraction.  (Contributed by Mario Carneiro, 8-Sep-2013.) $)
    dfif6 $p |- if ( ph , A , B ) =
                 ( { x e. A | ph } u. { x e. B | -. ph } ) $=
      ( cv wcel wa cab wn cun wo crab cif unab df-rab uneq12i df-if 3eqtr4ri )
      BEZCFAGZBHZSDFAIZGZBHZJTUCKBHABCLZUBBDLZJACDMTUCBNUEUAUFUDABCOUBBDOPABCDQ
      R $.

    $( Equality theorem for conditional operator.  (Contributed by NM,
       1-Sep-2004.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    ifeq1 $p |- ( A = B -> if ( ph , A , C ) = if ( ph , B , C ) ) $=
      ( vx wceq crab wn cun cif rabeq uneq1d dfif6 3eqtr4g ) BCFZAEBGZAHEDGZIAE
      CGZQIABDJACDJOPRQAEBCKLAEBDMAECDMN $.

    $( Equality theorem for conditional operator.  (Contributed by NM,
       1-Sep-2004.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    ifeq2 $p |- ( A = B -> if ( ph , C , A ) = if ( ph , C , B ) ) $=
      ( vx wceq crab wn cun cif rabeq uneq2d dfif6 3eqtr4g ) BCFZAEDGZAHZEBGZIP
      QECGZIADBJADCJORSPQEBCKLAEDBMAEDCMN $.

    $( Value of the conditional operator when its first argument is true.
       (Contributed by NM, 15-May-1999.)  (Proof shortened by Andrew Salmon,
       26-Jun-2011.) $)
    iftrue $p |- ( ph -> if ( ph , A , B ) = A ) $=
      ( vx cv wcel wi wa cab cif dedlem0a abbi2dv dfif2 syl6reqr ) ABDEZCFZAGOB
      FZAHGZDIABCJARDBAQPKLADBCMN $.
  $}

  ${
    iftruei.1 $e |- ph $.
    $( Inference associated with ~ iftrue .  (Contributed by BJ,
       7-Oct-2018.) $)
    iftruei $p |- if ( ph , A , B ) = A $=
      ( cif wceq iftrue ax-mp ) AABCEBFDABCGH $.
  $}

  ${
    iftrued.1 $e |- ( ph -> ch ) $.
    $( Value of the conditional operator when its first argument is true.
       (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
    iftrued $p |- ( ph -> if ( ch , A , B ) = A ) $=
      ( cif wceq iftrue syl ) ABBCDFCGEBCDHI $.
  $}

  ${
    $d x ph $.  $d x A $.  $d x B $.
    $( Value of the conditional operator when its first argument is false.
       (Contributed by NM, 14-Aug-1999.) $)
    iffalse $p |- ( -. ph -> if ( ph , A , B ) = B ) $=
      ( vx wn cv wcel wa wo cab cif dedlemb abbi2dv df-if syl6reqr ) AEZCDFZBGZ
      AHQCGZPHIZDJABCKPTDCARSLMADBCNO $.
  $}

  ${
    iffalsei.1 $e |- -. ph $.
    $( Inference associated with ~ iffalse .  (Contributed by BJ,
       7-Oct-2018.) $)
    iffalsei $p |- if ( ph , A , B ) = B $=
      ( wn cif wceq iffalse ax-mp ) AEABCFCGDABCHI $.
  $}

  ${
    iffalsed.1 $e |- ( ph -> -. ch ) $.
    $( Value of the conditional operator when its first argument is false.
       (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
    iffalsed $p |- ( ph -> if ( ch , A , B ) = B ) $=
      ( wn cif wceq iffalse syl ) ABFBCDGDHEBCDIJ $.
  $}

  $( When values are unequal, but an "if" condition checks if they are equal,
     then the "false" branch results.  This is a simple utility to provide a
     slight shortening and simplification of proofs vs. applying ~ iffalse
     directly in this case.  It happens, e.g., in ~ oevn0 .  (Contributed by
     David A. Wheeler, 15-May-2015.) $)
  ifnefalse $p |- ( A =/= B -> if ( A = B , C , D ) = D ) $=
    ( wne wceq wn cif df-ne iffalse sylbi ) ABEABFZGLCDHDFABILCDJK $.

  ${
    ifsb.1 $e |- ( if ( ph , A , B ) = A -> C = D ) $.
    ifsb.2 $e |- ( if ( ph , A , B ) = B -> C = E ) $.
    $( Distribute a function over an if-clause.  (Contributed by Mario
       Carneiro, 14-Aug-2013.) $)
    ifsb $p |- C = if ( ph , D , E ) $=
      ( cif wceq iftrue syl eqtr4d wn iffalse pm2.61i ) ADAEFIZJADEQAABCIZBJDEJ
      ABCKGLAEFKMANZDFQSRCJDFJABCOHLAEFOMP $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y ph $.
    dfif3.1 $e |- C = { x | ph } $.
    $( Alternate definition of the conditional operator ~ df-if .  Note that
       ` ph ` is independent of ` x ` i.e. a constant true or false.
       (Contributed by NM, 25-Aug-2013.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    dfif3 $p |- if ( ph , A , B )
                  = ( ( A i^i C ) u. ( B i^i ( _V \ C ) ) ) $=
      ( vy cif crab wn cun cin cvv cdif dfif6 cab weq ineq2i dfrab3 eqtr4i
      biidd cbvabv eqtri notab difeq2i eqtr2i uneq12i ) ACDHAGCIZAJZGDIZKCELZDM
      ENZLZKAGCDOUKUHUMUJUKCAGPZLUHEUNCEABPUNFAABGBGQAUAUBUCZRAGCSTUJDUIGPZLUMU
      IGDSUPULDUPMUNNULAGUDEUNMUOUETRUFUGT $.

    $( Alternate definition of the conditional operator ~ df-if .  Note that
       ` ph ` is independent of ` x ` i.e. a constant true or false.
       (Contributed by NM, 25-Aug-2013.) $)
    dfif4 $p |- if ( ph , A , B )
        = ( ( A u. B ) i^i ( ( A u. ( _V \ C ) ) i^i ( B u. C ) ) ) $=
      ( cif cin cvv cdif cun dfif3 undir undi uncom unvdif ineq12i 3eqtri inass
      inv1 eqtri ) ACDGCEHDIEJZHZKCUCKZEUCKZHZCDKZCUBKZDEKZHHZABCDEFLCEUCMUFUGU
      HHZUIHUJUDUKUEUICDUBNUEEDKZEUBKZHUIIHUIEDUBNULUIUMIEDOEPQUITRQUGUHUISUAR
      $.

    $( Alternate definition of the conditional operator ~ df-if .  Note that
       ` ph ` is independent of ` x ` i.e. a constant true or false (see also
       ~ ab0orv ).  (Contributed by G&eacute;rard Lang, 18-Aug-2013.) $)
    dfif5 $p |- if ( ph , A , B ) = ( ( A i^i B )
          u. ( ( ( A \ B ) i^i C ) u. ( ( B \ A ) i^i ( _V \ C ) ) ) ) $=
      ( cun cdif undir unidm unass undi 3eqtr3ri undifabs ineq1i undif2 3eqtr4i
      cin inabs eqtr4i cvv cif inindi dfif4 uneq1i 3eqtri uneq12i uncom 3eqtrri
      unundi uneq2i ineq2i ineq12i ) CDGZCUAEHZGZDEGZRRUNUPRZUNUQRZRZACDUBCDRCD
      HZERZDCHZUORZGZGZUNUPUQUCABCDEFUDVFCVEGZDVEGZRUTCDVEIURVGUSVHURCVBGZCVDGZ
      GZVGURCCDUORZGZGZVKCCGZVLGVMVNURVOCVLCJUECCVLKCDUOLZMVICVJVMVICVAGZCEGZRC
      VRRCCVAELVQCVRCDNOCESUFCVCGZUPRURVJVMVSUNUPCDPOCVCUOLVPQUGTCVBVDUJTCERZDG
      ZDVBGZDVDGZGZUSVHWADGVTDDGZGWDWAVTDDKWAWBDWCWADVAGZUQRZWBDVTGDCGZUQRWAWGD
      CELVTDUHWFWHUQDCPOQDVAELTWCDVCGZDUOGZRDWJRDDVCUOLWIDWJDCNODUOSUIUGWEDVTDJ
      UKMUSUNEDGZRWAUQWKUNDEUHULCEDITDVBVDUJQUMTQ $.
  $}

  $( Equality theorem for conditional operators.  (Contributed by NM,
     1-Sep-2004.) $)
  ifeq12 $p |- ( ( A = B /\ C = D ) ->
                if ( ph , A , C ) = if ( ph , B , D ) ) $=
    ( wceq cif ifeq1 ifeq2 sylan9eq ) BCFDEFABDGACDGACEGABCDHADECIJ $.

  ${
    ifeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for conditional operator.  (Contributed by NM,
       16-Feb-2005.) $)
    ifeq1d $p |- ( ph -> if ( ps , A , C ) = if ( ps , B , C ) ) $=
      ( wceq cif ifeq1 syl ) ACDGBCEHBDEHGFBCDEIJ $.

    $( Equality deduction for conditional operator.  (Contributed by NM,
       16-Feb-2005.) $)
    ifeq2d $p |- ( ph -> if ( ps , C , A ) = if ( ps , C , B ) ) $=
      ( wceq cif ifeq2 syl ) ACDGBECHBEDHGFBCDEIJ $.

    ifeq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for conditional operator.  (Contributed by NM,
       24-Mar-2015.) $)
    ifeq12d $p |- ( ph -> if ( ps , A , C ) = if ( ps , B , D ) ) $=
      ( cif ifeq1d ifeq2d eqtrd ) ABCEIBDEIBDFIABCDEGJABEFDHKL $.
  $}

  $( Equivalence theorem for conditional operators.  (Contributed by Raph
     Levien, 15-Jan-2004.) $)
  ifbi $p |- ( ( ph <-> ps ) -> if ( ph , A , B ) = if ( ps , A , B ) ) $=
    ( wb wa wn wo cif wceq dfbi3 iftrue eqcomd sylan9eq iffalse jaoi sylbi ) AB
    EABFZAGZBGZFZHACDIZBCDIZJZABKRUDUAABUBCUCACDLBUCCBCDLMNSTUBDUCACDOTUCDBCDOM
    NPQ $.

  ${
    ifbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalence deduction for conditional operators.  (Contributed by NM,
       18-Apr-2005.) $)
    ifbid $p |- ( ph -> if ( ps , A , B ) = if ( ch , A , B ) ) $=
      ( wb cif wceq ifbi syl ) ABCGBDEHCDEHIFBCDEJK $.
  $}

  ${
    ifbieq1d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    ifbieq1d.2 $e |- ( ph -> A = B ) $.
    $( Equivalence/equality deduction for conditional operators.  (Contributed
       by JJ, 25-Sep-2018.) $)
    ifbieq1d $p |- ( ph -> if ( ps , A , C ) = if ( ch , B , C ) ) $=
      ( cif ifbid ifeq1d eqtrd ) ABDFICDFICEFIABCDFGJACDEFHKL $.
  $}

  ${
    ifbieq2i.1 $e |- ( ph <-> ps ) $.
    ifbieq2i.2 $e |- A = B $.
    $( Equivalence/equality inference for conditional operators.  (Contributed
       by Paul Chapman, 22-Jun-2011.) $)
    ifbieq2i $p |- if ( ph , C , A ) = if ( ps , C , B ) $=
      ( cif wb wceq ifbi ax-mp ifeq2 eqtri ) AECHZBECHZBEDHZABIOPJFABECKLCDJPQJ
      GBCDEMLN $.
  $}

  ${
    ifbieq2d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    ifbieq2d.2 $e |- ( ph -> A = B ) $.
    $( Equivalence/equality deduction for conditional operators.  (Contributed
       by Paul Chapman, 22-Jun-2011.) $)
    ifbieq2d $p |- ( ph -> if ( ps , C , A ) = if ( ch , C , B ) ) $=
      ( cif ifbid ifeq2d eqtrd ) ABFDICFDICFEIABCFDGJACDEFHKL $.
  $}

  ${
    ifbieq12i.1 $e |- ( ph <-> ps ) $.
    ifbieq12i.2 $e |- A = C $.
    ifbieq12i.3 $e |- B = D $.
    $( Equivalence deduction for conditional operators.  (Contributed by NM,
       18-Mar-2013.) $)
    ifbieq12i $p |- if ( ph , A , B ) = if ( ps , C , D ) $=
      ( cif wceq ifeq1 ax-mp ifbieq2i eqtri ) ACDJZAEDJZBEFJCEKPQKHACEDLMABDFEG
      INO $.
  $}

  ${
    ifbieq12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    ifbieq12d.2 $e |- ( ph -> A = C ) $.
    ifbieq12d.3 $e |- ( ph -> B = D ) $.
    $( Equivalence deduction for conditional operators.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    ifbieq12d $p |- ( ph -> if ( ps , A , B ) = if ( ch , C , D ) ) $=
      ( cif ifbid ifeq12d eqtrd ) ABDEKCDEKCFGKABCDEHLACDFEGIJMN $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y ph $.  $d y ps $.
    nfifd.2 $e |- ( ph -> F/ x ps ) $.
    nfifd.3 $e |- ( ph -> F/_ x A ) $.
    nfifd.4 $e |- ( ph -> F/_ x B ) $.
    $( Deduction version of ~ nfif .  (Contributed by NM, 15-Feb-2013.)
       (Revised by Mario Carneiro, 13-Oct-2016.) $)
    nfifd $p |- ( ph -> F/_ x if ( ps , A , B ) ) $=
      ( vy cif cv wcel wi wa cab dfif2 nfv nfcrd nfimd nfand nfabd nfcxfrd ) AC
      BDEJIKZELZBMZUCDLZBNZMZIOBIDEPAUHCIAIQAUEUGCAUDBCACIEHRFSAUFBCACIDGRFTSUA
      UB $.
  $}

  ${
    nfif.1 $e |- F/ x ph $.
    nfif.2 $e |- F/_ x A $.
    nfif.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for a conditional operator.
       (Contributed by NM, 16-Feb-2005.)  (Proof shortened by Andrew Salmon,
       26-Jun-2011.) $)
    nfif $p |- F/_ x if ( ph , A , B ) $=
      ( cif wnfc wtru wnf a1i nfifd trud ) BACDHIJABCDABKJELBCIJFLBDIJGLMN $.
  $}

  ${
    ifeq1da.1 $e |- ( ( ph /\ ps ) -> A = B ) $.
    $( Conditional equality.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    ifeq1da $p |- ( ph -> if ( ps , A , C ) = if ( ps , B , C ) ) $=
      ( cif wceq wa ifeq1d wn iffalse eqtr4d adantl pm2.61dan ) ABBCEGZBDEGZHZA
      BIBCDEFJBKZRASPEQBCELBDELMNO $.
  $}

  ${
    ifeq2da.1 $e |- ( ( ph /\ -. ps ) -> A = B ) $.
    $( Conditional equality.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    ifeq2da $p |- ( ph -> if ( ps , C , A ) = if ( ps , C , B ) ) $=
      ( cif wceq iftrue eqtr4d adantl wn wa ifeq2d pm2.61dan ) ABBECGZBEDGZHZBR
      ABPEQBECIBEDIJKABLMBCDEFNO $.
  $}

  ${
    ifeq12da.1 $e |- ( ( ph /\ ps ) -> A = C ) $.
    ifeq12da.2 $e |- ( ( ph /\ -. ps ) -> B = D ) $.
    $( Equivalence deduction for conditional operators.  (Contributed by Wolf
       Lammen, 24-Jun-2021.) $)
    ifeq12da $p |- ( ph -> if ( ps , A , B ) = if ( ps , C , D ) ) $=
      ( cif wceq ifeq1da iftrue eqtr4d sylan9eq wn ifeq2da iffalse pm2.61dan )
      ABBCDIZBEFIZJABSBEDIZTABCEDGKBUAETBEDLBEFLMNABOZSBCFIZTABDFCHPUBUCFTBCFQB
      EFQMNR $.
  $}

  ${
    ifbieq12d2.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    ifbieq12d2.2 $e |- ( ( ph /\ ps ) -> A = C ) $.
    ifbieq12d2.3 $e |- ( ( ph /\ -. ps ) -> B = D ) $.
    $( Equivalence deduction for conditional operators.  (Contributed by
       Thierry Arnoux, 14-Feb-2017.)  (Proof shortened by Wolf Lammen,
       24-Jun-2021.) $)
    ifbieq12d2 $p |- ( ph -> if ( ps , A , B ) = if ( ch , C , D ) ) $=
      ( cif ifeq12da ifbid eqtrd ) ABDEKBFGKCFGKABDEFGIJLABCFGHMN $.
  $}


  ${
    ifclda.1 $e |- ( ( ph /\ ps ) -> A e. C ) $.
    ifclda.2 $e |- ( ( ph /\ -. ps ) -> B e. C ) $.
    $( Conditional closure.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    ifclda $p |- ( ph -> if ( ps , A , B ) e. C ) $=
      ( cif wcel wa wceq iftrue adantl eqeltrd wn iffalse pm2.61dan ) ABBCDHZEI
      ABJRCEBRCKABCDLMFNABOZJRDESRDKABCDPMGNQ $.
  $}

  ${
    ifeqda.1 $e |- ( ( ph /\ ps ) -> A = C ) $.
    ifeqda.2 $e |- ( ( ph /\ -. ps ) -> B = C ) $.
    $( Separation of the values of the conditional operator.  (Contributed by
       Alexander van der Vekens, 13-Apr-2018.) $)
    ifeqda $p |- ( ph -> if ( ps , A , B ) = C ) $=
      ( cif wceq wa iftrue adantl eqtrd wn iffalse pm2.61dan ) ABBCDHZEIABJQCEB
      QCIABCDKLFMABNZJQDERQDIABCDOLGMP $.
  $}

  ${
    elimif.1 $e |- ( if ( ph , A , B ) = A -> ( ps <-> ch ) ) $.
    elimif.2 $e |- ( if ( ph , A , B ) = B -> ( ps <-> th ) ) $.
    $( Elimination of a conditional operator contained in a wff ` ps ` .
       (Contributed by NM, 15-Feb-2005.)  (Proof shortened by NM,
       25-Apr-2019.) $)
    elimif $p |- ( ps <-> ( ( ph /\ ch ) \/ ( -. ph /\ th ) ) ) $=
      ( cif wceq wb iftrue syl wn iffalse cases ) ABCDAAEFIZEJBCKAEFLGMANQFJBDK
      AEFOHMP $.
  $}

  ${
    ifboth.1 $e |- ( A = if ( ph , A , B ) -> ( ps <-> th ) ) $.
    ifboth.2 $e |- ( B = if ( ph , A , B ) -> ( ch <-> th ) ) $.
    ${
      ifbothda.3 $e |- ( ( et /\ ph ) -> ps ) $.
      ifbothda.4 $e |- ( ( et /\ -. ph ) -> ch ) $.
      $( A wff ` th ` containing a conditional operator is true when both of
         its cases are true.  (Contributed by NM, 15-Feb-2015.) $)
      ifbothda $p |- ( et -> th ) $=
        ( wa wb cif wceq iftrue eqcomd syl adantl mpbid wn iffalse pm2.61dan )
        EADEALBDJABDMZEAFAFGNZOUDAUEFAFGPQHRSTEAUAZLCDKUFCDMZEUFGUEOUGUFUEGAFGU
        BQIRSTUC $.
    $}

    $( A wff ` th ` containing a conditional operator is true when both of its
       cases are true.  (Contributed by NM, 3-Sep-2006.)  (Revised by Mario
       Carneiro, 15-Feb-2015.) $)
    ifboth $p |- ( ( ps /\ ch ) -> th ) $=
      ( wa simpll wn simplr ifbothda ) ABCDBCIEFGHBCAJBCAKLM $.
  $}

  $( Identical true and false arguments in the conditional operator.
     (Contributed by NM, 18-Apr-2005.) $)
  ifid $p |- if ( ph , A , A ) = A $=
    ( cif wceq iftrue iffalse pm2.61i ) AABBCBDABBEABBFG $.

  $( Expansion of an equality with a conditional operator.  (Contributed by NM,
     14-Feb-2005.) $)
  eqif $p |- ( A = if ( ph , B , C ) <->
             ( ( ph /\ A = B ) \/ ( -. ph /\ A = C ) ) ) $=
    ( cif wceq eqeq2 elimif ) ABACDEZFBCFBDFCDICBGIDBGH $.

  $( Another expression of the value of the ` if ` predicate, analogous to
     ~ eqif .  See also the more specialized ~ iftrue and ~ iffalse .
     (Contributed by BJ, 6-Apr-2019.) $)
  ifval $p |- ( A = if ( ph , B , C )
                             <-> ( ( ph -> A = B ) /\ ( -. ph -> A = C ) ) ) $=
    ( cif wceq wa wn wo wi eqif cases2 bitri ) BACDEFABCFZGAHZBDFZGIANJOPJGABCD
    KANPLM $.

  $( Membership in a conditional operator.  (Contributed by NM,
     14-Feb-2005.) $)
  elif $p |- ( A e. if ( ph , B , C ) <->
             ( ( ph /\ A e. B ) \/ ( -. ph /\ A e. C ) ) ) $=
    ( cif wcel eleq2 elimif ) ABACDEZFBCFBDFCDICBGIDBGH $.

  $( Membership of a conditional operator.  (Contributed by NM,
     10-Sep-2005.) $)
  ifel $p |- ( if ( ph , A , B ) e. C <->
             ( ( ph /\ A e. C ) \/ ( -. ph /\ B e. C ) ) ) $=
    ( cif wcel eleq1 elimif ) AABCEZDFBDFCDFBCIBDGICDGH $.

  $( Membership (closure) of a conditional operator.  (Contributed by NM,
     4-Apr-2005.) $)
  ifcl $p |- ( ( A e. C /\ B e. C ) -> if ( ph , A , B ) e. C ) $=
    ( wcel cif eleq1 ifboth ) ABDECDEABCFZDEBCBIDGCIDGH $.

  ${
    ifcld.a $e |- ( ph -> A e. C ) $.
    ifcld.b $e |- ( ph -> B e. C ) $.
    $( Membership (closure) of a conditional operator, deduction form.
       (Contributed by SO, 16-Jul-2018.) $)
    ifcld $p |- ( ph -> if ( ps , A , B ) e. C ) $=
      ( wcel cif ifcl syl2anc ) ACEHDEHBCDIEHFGBCDEJK $.
  $}

  $( The possible values of a conditional operator.  (Contributed by NM,
     17-Jun-2007.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
  ifeqor $p |- ( if ( ph , A , B ) = A \/ if ( ph , A , B ) = B ) $=
    ( cif wceq wn iftrue con3i iffalsed orri ) ABCDZBEZKCELFABCALABCGHIJ $.

  $( Negating the first argument swaps the last two arguments of a conditional
     operator.  (Contributed by NM, 21-Jun-2007.) $)
  ifnot $p |- if ( -. ph , A , B ) = if ( ph , B , A ) $=
    ( wn cif wceq notnot iffalsed iftrue eqtr4d iffalse pm2.61i ) AADZBCEZACBEZ
    FANCOAMBCAGHACBIJMNBOMBCIACBKJL $.

  $( Rewrite a conjunction in an if statement as two nested conditionals.
     (Contributed by Mario Carneiro, 28-Jul-2014.) $)
  ifan $p |- if ( ( ph /\ ps ) , A , B ) = if ( ph , if ( ps , A , B ) , B ) $=
    ( wa cif wceq iftrue ibar ifbid eqtr2d simpl con3i iffalsed iffalse pm2.61i
    wn eqtr4d ) AABEZCDFZABCDFZDFZGAUBUATAUADHABSCDABIJKAQZTDUBUCSCDSAABLMNAUAD
    ORP $.

  $( Rewrite a disjunction in an if statement as two nested conditionals.
     (Contributed by Mario Carneiro, 28-Jul-2014.) $)
  ifor $p |- if ( ( ph \/ ps ) , A , B ) = if ( ph , A , if ( ps , A , B ) ) $=
    ( wo cif wceq iftrue orcs eqtr4d wn iffalse biorf ifbid eqtr2d pm2.61i ) AA
    BEZCDFZACBCDFZFZGARCTABRCGQCDHIACSHJAKZTSRACSLUABQCDABMNOP $.

  ${
    2if2.1 $e |- ( ( ph /\ ps ) -> D = A ) $.
    2if2.2 $e |- ( ( ph /\ -. ps /\ th ) -> D = B ) $.
    2if2.3 $e |- ( ( ph /\ -. ps /\ -. th ) -> D = C ) $.
    $( Resolve two nested conditionals.  (Contributed by Alexander van der
       Vekens, 27-Mar-2018.) $)
    2if2 $p |- ( ph -> D = if ( ps , A , if ( th , B , C ) ) ) $=
      ( cif wceq wa iftrue adantl eqtr4d wn 3expa iffalse pm2.61dan eqcomd
      eqtrd ) ABGBDCEFKZKZLABMGDUDHBUDDLABDUCNOPABQZMZGUCUDUFCGUCLUFCMGEUCAUECG
      ELIRCUCELUFCEFNOPUFCQZMGFUCAUEUGGFLJRUGFUCLUFUGUCFCEFSUAOUBTUEUDUCLABDUCS
      OPT $.
  $}

  $( Commute the conditions in two nested conditionals if both conditions are
     not simultaneously true.  (Contributed by SO, 15-Jul-2018.) $)
  ifcomnan $p |- ( -. ( ph /\ ps ) -> if ( ph , A , if ( ps , B , C ) ) =
      if ( ps , B , if ( ph , A , C ) ) ) $=
    ( wa wn wo cif wceq pm3.13 iffalse ifeq2d eqtr4d jaoi syl ) ABFGAGZBGZHACBD
    EIZIZBDACEIZIZJZABKQUCRQTSUBACSLQBUAEDACELMNRTUAUBRASECBDELMBDUALNOP $.

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y ph $.  $d x y $.
    $( Distribute proper substitution through the conditional operator.
       (Contributed by NM, 24-Feb-2013.)  (Revised by NM, 19-Aug-2018.) $)
    csbif $p |- [_ A / x ]_ if ( ph , B , C )
          = if ( [. A / x ]. ph , [_ A / x ]_ B , [_ A / x ]_ C ) $=
      ( vy cvv wcel cif csb wsbc cv wsb csbeq1 ifbieq12d nfcsb1v csbeq1a csbprc
      wceq c0 dfsbcq2 eqeq12d vex nfs1v nfif sbequ12 csbief vtoclg ifeq12d ifid
      weq wn syl6req eqtrd pm2.61i ) CGHZBCADEIZJZABCKZBCDJZBCEJZIZSZBFLZUQJZAB
      FMZBVDDJZBVDEJZIZSVCFCGVDCSZVEURVIVBBVDCUQNVJVFUSVGVHUTVAABFCUABVDCDNBVDC
      ENOUBBVDUQVIFUCVFBVGVHABFUDBVDDPBVDEPUEBFUKAVFDEVGVHABFUFBVDDQBVDEQOUGUHU
      PULZURTVBBCUQRVKVBUSTTITVKUSUTTVATBCDRBCERUIUSTUJUMUNUO $.
  $}

  ${
    dedth.1 $e |- ( A = if ( ph , A , B ) -> ( ps <-> ch ) ) $.
    dedth.2 $e |- ch $.
    $( Weak deduction theorem that eliminates a hypothesis ` ph ` , making it
       become an antecedent.  We assume that a proof exists for ` ph ` when the
       class variable ` A ` is replaced with a specific class ` B ` .  The
       hypothesis ` ch ` should be assigned to the inference, and the
       inference's hypothesis eliminated with ~ elimhyp .  If the inference has
       other hypotheses with class variable ` A ` , these can be kept by
       assigning ~ keephyp to them.  For more information, see the Weak
       Deduction Theorem page ~ mmdeduction.html .  (Contributed by NM,
       15-May-1999.) $)
    dedth $p |- ( ph -> ps ) $=
      ( cif wceq wb iftrue eqcomd syl mpbiri ) ABCGADADEHZIBCJAODADEKLFMN $.
  $}

  ${
    dedth2h.1 $e |- ( A = if ( ph , A , C ) -> ( ch <-> th ) ) $.
    dedth2h.2 $e |- ( B = if ( ps , B , D ) -> ( th <-> ta ) ) $.
    dedth2h.3 $e |- ta $.
    $( Weak deduction theorem eliminating two hypotheses.  This theorem is
       simpler to use than ~ dedth2v but requires that each hypothesis has
       exactly one class variable.  See also comments in ~ dedth .
       (Contributed by NM, 15-May-1999.) $)
    dedth2h $p |- ( ( ph /\ ps ) -> ch ) $=
      ( wi cif wceq imbi2d dedth imp ) ABCABCMBDMFHFAFHNOCDBJPBDEGIKLQQR $.
  $}

  ${
    dedth3h.1 $e |- ( A = if ( ph , A , D ) -> ( th <-> ta ) ) $.
    dedth3h.2 $e |- ( B = if ( ps , B , R ) -> ( ta <-> et ) ) $.
    dedth3h.3 $e |- ( C = if ( ch , C , S ) -> ( et <-> ze ) ) $.
    dedth3h.4 $e |- ze $.
    $( Weak deduction theorem eliminating three hypotheses.  See comments in
       ~ dedth2h .  (Contributed by NM, 15-May-1999.) $)
    dedth3h $p |- ( ( ph /\ ps /\ ch ) -> th ) $=
      ( wa wi cif wceq imbi2d dedth2h dedth 3impib ) ABCDABCRZDSUFESHKHAHKTUADE
      UFNUBBCEFGIJLMOPQUCUDUE $.
  $}

  ${
    dedth4h.1 $e |- ( A = if ( ph , A , R ) -> ( ta <-> et ) ) $.
    dedth4h.2 $e |- ( B = if ( ps , B , S ) -> ( et <-> ze ) ) $.
    dedth4h.3 $e |- ( C = if ( ch , C , F ) -> ( ze <-> si ) ) $.
    dedth4h.4 $e |- ( D = if ( th , D , G ) -> ( si <-> rh ) ) $.
    dedth4h.5 $e |- rh $.
    $( Weak deduction theorem eliminating four hypotheses.  See comments in
       ~ dedth2h .  (Contributed by NM, 16-May-1999.) $)
    dedth4h $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) -> ta ) $=
      ( wa wi cif wceq imbi2d dedth2h imp ) ABUCCDUCZEABUJEUDUJFUDUJGUDJKNOJAJN
      UEUFEFUJRUGKBKOUEUFFGUJSUGCDGHILMPQTUAUBUHUHUI $.
  $}

  ${
    dedth2v.1 $e |- ( A = if ( ph , A , C ) -> ( ps <-> ch ) ) $.
    dedth2v.2 $e |- ( B = if ( ph , B , D ) -> ( ch <-> th ) ) $.
    dedth2v.3 $e |- th $.
    $( Weak deduction theorem for eliminating a hypothesis with 2 class
       variables.  Note: if the hypothesis can be separated into two
       hypotheses, each with one class variable, then ~ dedth2h is simpler to
       use.  See also comments in ~ dedth .  (Contributed by NM, 13-Aug-1999.)
       (Proof shortened by Eric Schmidt, 28-Jul-2009.) $)
    dedth2v $p |- ( ph -> ps ) $=
      ( dedth2h anidms ) ABAABCDEFGHIJKLM $.
  $}

  ${
    dedth3v.1 $e |- ( A = if ( ph , A , D ) -> ( ps <-> ch ) ) $.
    dedth3v.2 $e |- ( B = if ( ph , B , R ) -> ( ch <-> th ) ) $.
    dedth3v.3 $e |- ( C = if ( ph , C , S ) -> ( th <-> ta ) ) $.
    dedth3v.4 $e |- ta $.
    $( Weak deduction theorem for eliminating a hypothesis with 3 class
       variables.  See comments in ~ dedth2v .  (Contributed by NM,
       13-Aug-1999.)  (Proof shortened by Eric Schmidt, 28-Jul-2009.) $)
    dedth3v $p |- ( ph -> ps ) $=
      ( dedth3h 3anidm12 anidms ) ABAABAAABCDEFGHIJKLMNOPQR $.
  $}

  ${
    dedth4v.1 $e |- ( A = if ( ph , A , R ) -> ( ps <-> ch ) ) $.
    dedth4v.2 $e |- ( B = if ( ph , B , S ) -> ( ch <-> th ) ) $.
    dedth4v.3 $e |- ( C = if ( ph , C , T ) -> ( th <-> ta ) ) $.
    dedth4v.4 $e |- ( D = if ( ph , D , U ) -> ( ta <-> et ) ) $.
    dedth4v.5 $e |- et $.
    $( Weak deduction theorem for eliminating a hypothesis with 4 class
       variables.  See comments in ~ dedth2v .  (Contributed by NM,
       21-Apr-2007.)  (Proof shortened by Eric Schmidt, 28-Jul-2009.) $)
    dedth4v $p |- ( ph -> ps ) $=
      ( anidms wa dedth4h ) ABAAUABAAAABCDEFGHIJKLMNOPQRSUBTT $.
  $}

  ${
    elimhyp.1 $e |- ( A = if ( ph , A , B ) -> ( ph <-> ps ) ) $.
    elimhyp.2 $e |- ( B = if ( ph , A , B ) -> ( ch <-> ps ) ) $.
    elimhyp.3 $e |- ch $.
    $( Eliminate a hypothesis containing class variable ` A ` when it is known
       for a specific class ` B ` .  For more information, see comments in
       ~ dedth .  (Contributed by NM, 15-May-1999.) $)
    elimhyp $p |- ps $=
      ( cif wceq wb iftrue eqcomd syl ibi wn iffalse mpbii pm2.61i ) ABABADADEI
      ZJABKATDADELMFNOAPZCBHUAETJCBKUATEADEQMGNRS $.
  $}

  ${
    elimhyp2v.1 $e |- ( A = if ( ph , A , C ) -> ( ph <-> ch ) ) $.
    elimhyp2v.2 $e |- ( B = if ( ph , B , D ) -> ( ch <-> th ) ) $.
    elimhyp2v.3 $e |- ( C = if ( ph , A , C ) -> ( ta <-> et ) ) $.
    elimhyp2v.4 $e |- ( D = if ( ph , B , D ) -> ( et <-> th ) ) $.
    elimhyp2v.5 $e |- ta $.
    $( Eliminate a hypothesis containing 2 class variables.  (Contributed by
       NM, 14-Aug-1999.) $)
    elimhyp2v $p |- th $=
      ( cif wceq wb iftrue eqcomd syl bitrd ibi wn iffalse mpbii pm2.61i ) ACAC
      AABCAFAFHOZPABQAUGFAFHRSJTAGAGIOZPBCQAUHGAGIRSKTUAUBAUCZDCNUIDECUIHUGPDEQ
      UIUGHAFHUDSLTUIIUHPECQUIUHIAGIUDSMTUAUEUF $.
  $}

  ${
    elimhyp3v.1 $e |- ( A = if ( ph , A , D ) -> ( ph <-> ch ) ) $.
    elimhyp3v.2 $e |- ( B = if ( ph , B , R ) -> ( ch <-> th ) ) $.
    elimhyp3v.3 $e |- ( C = if ( ph , C , S ) -> ( th <-> ta ) ) $.
    elimhyp3v.4 $e |- ( D = if ( ph , A , D ) -> ( et <-> ze ) ) $.
    elimhyp3v.5 $e |- ( R = if ( ph , B , R ) -> ( ze <-> si ) ) $.
    elimhyp3v.6 $e |- ( S = if ( ph , C , S ) -> ( si <-> ta ) ) $.
    elimhyp3v.7 $e |- et $.
    $( Eliminate a hypothesis containing 3 class variables.  (Contributed by
       NM, 14-Aug-1999.) $)
    elimhyp3v $p |- ta $=
      ( cif wceq wb iftrue eqcomd syl 3bitrd ibi wn iffalse mpbii pm2.61i ) ADA
      DAABCDAHAHKUAZUBABUCAUMHAHKUDUENUFAIAILUAZUBBCUCAUNIAILUDUEOUFAJAJMUAZUBC
      DUCAUOJAJMUDUEPUFUGUHAUIZEDTUPEFGDUPKUMUBEFUCUPUMKAHKUJUEQUFUPLUNUBFGUCUP
      UNLAILUJUERUFUPMUOUBGDUCUPUOMAJMUJUESUFUGUKUL $.
  $}

  ${
    elimhyp4v.1 $e |- ( A = if ( ph , A , D ) -> ( ph <-> ch ) ) $.
    elimhyp4v.2 $e |- ( B = if ( ph , B , R ) -> ( ch <-> th ) ) $.
    elimhyp4v.3 $e |- ( C = if ( ph , C , S ) -> ( th <-> ta ) ) $.
    elimhyp4v.4 $e |- ( F = if ( ph , F , G ) -> ( ta <-> ps ) ) $.
    elimhyp4v.5 $e |- ( D = if ( ph , A , D ) -> ( et <-> ze ) ) $.
    elimhyp4v.6 $e |- ( R = if ( ph , B , R ) -> ( ze <-> si ) ) $.
    elimhyp4v.7 $e |- ( S = if ( ph , C , S ) -> ( si <-> rh ) ) $.
    elimhyp4v.8 $e |- ( G = if ( ph , F , G ) -> ( rh <-> ps ) ) $.
    elimhyp4v.9 $e |- et $.
    $( Eliminate a hypothesis containing 4 class variables (for use with the
       weak deduction theorem ~ dedth ).  (Contributed by NM, 16-Apr-2005.) $)
    elimhyp4v $p |- ps $=
      ( cif wceq wb iftrue eqcomd syl bitrd 3bitrd ibi wn iffalse mpbii pm2.61i
      ) ABABAADEBAACDAJAJMUGZUHACUIAUTJAJMUJUKRULAKAKNUGZUHCDUIAVAKAKNUJUKSULUM
      ALALOUGZUHDEUIAVBLALOUJUKTULAPAPQUGZUHEBUIAVCPAPQUJUKUAULUNUOAUPZFBUFVDFH
      IBVDFGHVDMUTUHFGUIVDUTMAJMUQUKUBULVDNVAUHGHUIVDVANAKNUQUKUCULUMVDOVBUHHIU
      IVDVBOALOUQUKUDULVDQVCUHIBUIVDVCQAPQUQUKUEULUNURUS $.
  $}

  ${
    elimel.1 $e |- B e. C $.
    $( Eliminate a membership hypothesis for weak deduction theorem, when
       special case ` B e. C ` is provable.  (Contributed by NM,
       15-May-1999.) $)
    elimel $p |- if ( A e. C , A , B ) e. C $=
      ( wcel cif eleq1 elimhyp ) ACEZIABFZCEBCEABAJCGBJCGDH $.
  $}

  ${
    elimdhyp.1 $e |- ( ph -> ps ) $.
    elimdhyp.2 $e |- ( A = if ( ph , A , B ) -> ( ps <-> ch ) ) $.
    elimdhyp.3 $e |- ( B = if ( ph , A , B ) -> ( th <-> ch ) ) $.
    elimdhyp.4 $e |- th $.
    $( Version of ~ elimhyp where the hypothesis is deduced from the final
       antecedent.  See ~ divalg for an example of its use.  (Contributed by
       Paul Chapman, 25-Mar-2008.) $)
    elimdhyp $p |- ch $=
      ( cif wceq wb iftrue eqcomd syl mpbid wn iffalse mpbii pm2.61i ) ACABCGAE
      AEFKZLBCMAUBEAEFNOHPQARZDCJUCFUBLDCMUCUBFAEFSOIPTUA $.
  $}

  ${
    keephyp.1 $e |- ( A = if ( ph , A , B ) -> ( ps <-> th ) ) $.
    keephyp.2 $e |- ( B = if ( ph , A , B ) -> ( ch <-> th ) ) $.
    keephyp.3 $e |- ps $.
    keephyp.4 $e |- ch $.
    $( Transform a hypothesis ` ps ` that we want to keep (but contains the
       same class variable ` A ` used in the eliminated hypothesis) for use
       with the weak deduction theorem.  (Contributed by NM, 15-May-1999.) $)
    keephyp $p |- th $=
      ( ifboth mp2an ) BCDIJABCDEFGHKL $.
  $}

  ${
    keephyp2v.1 $e |- ( A = if ( ph , A , C ) -> ( ps <-> ch ) ) $.
    keephyp2v.2 $e |- ( B = if ( ph , B , D ) -> ( ch <-> th ) ) $.
    keephyp2v.3 $e |- ( C = if ( ph , A , C ) -> ( ta <-> et ) ) $.
    keephyp2v.4 $e |- ( D = if ( ph , B , D ) -> ( et <-> th ) ) $.
    keephyp2v.5 $e |- ps $.
    keephyp2v.6 $e |- ta $.
    $( Keep a hypothesis containing 2 class variables (for use with the weak
       deduction theorem ~ dedth ).  (Contributed by NM, 16-Apr-2005.) $)
    keephyp2v $p |- th $=
      ( wceq wb eqcomd syl cif iftrue bitrd mpbii wn iffalse pm2.61i ) ADABDOAB
      CDAGAGIUAZQBCRAUHGAGIUBSKTAHAHJUAZQCDRAUIHAHJUBSLTUCUDAUEZEDPUJEFDUJIUHQE
      FRUJUHIAGIUFSMTUJJUIQFDRUJUIJAHJUFSNTUCUDUG $.
  $}

  ${
    keephyp3v.1 $e |- ( A = if ( ph , A , D ) -> ( rh <-> ch ) ) $.
    keephyp3v.2 $e |- ( B = if ( ph , B , R ) -> ( ch <-> th ) ) $.
    keephyp3v.3 $e |- ( C = if ( ph , C , S ) -> ( th <-> ta ) ) $.
    keephyp3v.4 $e |- ( D = if ( ph , A , D ) -> ( et <-> ze ) ) $.
    keephyp3v.5 $e |- ( R = if ( ph , B , R ) -> ( ze <-> si ) ) $.
    keephyp3v.6 $e |- ( S = if ( ph , C , S ) -> ( si <-> ta ) ) $.
    keephyp3v.7 $e |- rh $.
    keephyp3v.8 $e |- et $.
    $( Keep a hypothesis containing 3 class variables.  (Contributed by NM,
       27-Sep-1999.) $)
    keephyp3v $p |- ta $=
      ( cif wceq wb iftrue eqcomd syl 3bitrd mpbii wn iffalse pm2.61i ) ADAHDUA
      AHBCDAIAILUCZUDHBUEAUNIAILUFUGOUHAJAJMUCZUDBCUEAUOJAJMUFUGPUHAKAKNUCZUDCD
      UEAUPKAKNUFUGQUHUIUJAUKZEDUBUQEFGDUQLUNUDEFUEUQUNLAILULUGRUHUQMUOUDFGUEUQ
      UOMAJMULUGSUHUQNUPUDGDUEUQUPNAKNULUGTUHUIUJUM $.
  $}

  ${
    keepel.1 $e |- A e. C $.
    keepel.2 $e |- B e. C $.
    $( Keep a membership hypothesis for weak deduction theorem, when special
       case ` B e. C ` is provable.  (Contributed by NM, 14-Aug-1999.) $)
    keepel $p |- if ( ph , A , B ) e. C $=
      ( wcel cif eleq1 keephyp ) ABDGCDGABCHZDGBCBKDICKDIEFJ $.
  $}

  ${
    dedex.1 $e |- A e. _V $.
    dedex.2 $e |- B e. _V $.
    $( Conditional operator existence.  (Contributed by NM, 2-Sep-2004.) $)
    ifex $p |- if ( ph , A , B ) e. _V $=
      ( cvv keepel ) ABCFDEG $.
  $}

  ${
    $d A x y $.  $d B y $.  $d ph x y $.
    $( Conditional operator existence.  (Contributed by NM, 21-Mar-2011.) $)
    ifexg $p |- ( ( A e. V /\ B e. W ) -> if ( ph , A , B ) e. _V ) $=
      ( vx vy cv cif cvv wcel wceq ifeq1 eleq1d ifeq2 vex ifex vtocl2g ) AFHZGH
      ZIZJKABTIZJKABCIZJKFGBCDESBLUAUBJASBTMNTCLUBUCJATCBONASTFPGPQR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Power classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare the symbol for power class. $)
  $c ~P $.  $( Calligraphic P $)

  $( Extend class notation to include power class.  (The tilde in the Metamath
     token is meant to suggest the calligraphic font of the P.) $)
  cpw $a class ~P A $.

  ${
    $d x A $.  $d y A $.  $d z x $.  $d z y $.  $d z A $.
    $( Soundness justification theorem for ~ df-pw .  (Contributed by Rodolfo
       Medina, 28-Apr-2010.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    pwjust $p |- { x | x C_ A } = { y | y C_ A } $=
      ( vz cv wss cab sseq1 cbvabv eqtri ) AEZCFZAGDEZCFZDGBEZCFZBGLNADKMCHINPD
      BMOCHIJ $.
  $}

  ${
    $d x A $.
    $( Define power class.  Definition 5.10 of [TakeutiZaring] p. 17, but we
       also let it apply to proper classes, i.e. those that are not members of
       ` _V ` .  When applied to a set, this produces its power set.  A power
       set of S is the set of all subsets of S, including the empty set and S
       itself.  For example, if ` A = { 3 , 5 , 7 } ` , then
       ` ~P A = { (/) , { 3 } , { 5 } , { 7 } , { 3 , 5 } , `
       ` { 3 , 7 } , { 5 , 7 } , { 3 , 5 , 7 } } ` ( ~ ex-pw ).  We will later
       introduce the Axiom of Power Sets ~ ax-pow , which can be expressed in
       class notation per ~ pwexg .  Still later we will prove, in ~ hashpw ,
       that the size of the power set of a finite set is 2 raised to the power
       of the size of the set.  (Contributed by NM, 24-Jun-1993.) $)
    df-pw $a |- ~P A = { x | x C_ A } $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Equality theorem for power class.  (Contributed by NM, 21-Jun-1993.) $)
    pweq $p |- ( A = B -> ~P A = ~P B ) $=
      ( vx wceq cv wss cab cpw sseq2 abbidv df-pw 3eqtr4g ) ABDZCEZAFZCGNBFZCGA
      HBHMOPCABNIJCAKCBKL $.
  $}

  ${
    pweqi.1 $e |- A = B $.
    $( Equality inference for power class.  (Contributed by NM,
       27-Nov-2013.) $)
    pweqi $p |- ~P A = ~P B $=
      ( wceq cpw pweq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    pweqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for power class.  (Contributed by NM,
       27-Nov-2013.) $)
    pweqd $p |- ( ph -> ~P A = ~P B ) $=
      ( wceq cpw pweq syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d A x $.  $d B x $.
    ${
      elpw.1 $e |- A e. _V $.
      $( Membership in a power class.  Theorem 86 of [Suppes] p. 47.
         (Contributed by NM, 31-Dec-1993.) $)
      elpw $p |- ( A e. ~P B <-> A C_ B ) $=
        ( vx cv wss cpw sseq1 df-pw elab2 ) DEZBFABFDABGCKABHDBIJ $.
    $}

    $( Setvar variable membership in a power class (common case).  See ~ elpw .
       (Contributed by David A. Wheeler, 8-Dec-2018.) $)
    selpw $p |- ( x e. ~P A <-> x C_ A ) $=
      ( cv vex elpw ) ACBADE $.

    $( Membership in a power class.  Theorem 86 of [Suppes] p. 47.  See also
       ~ elpw2g .  (Contributed by NM, 6-Aug-2000.) $)
    elpwg $p |- ( A e. V -> ( A e. ~P B <-> A C_ B ) ) $=
      ( vx cv cpw wcel wss eleq1 sseq1 selpw vtoclbg ) DEZBFZGMBHANGABHDACMANIM
      ABJDBKL $.
  $}


  ${
    elpwd.1 $e |- ( ph -> A e. V ) $.
    elpwd.2 $e |- ( ph -> A C_ B ) $.
    $( Membership in a power class.  (Contributed by Glauco Siliprandi,
       11-Oct-2020.) $)
    elpwd $p |- ( ph -> A e. ~P B ) $=
      ( cpw wcel wss wb elpwg syl mpbird ) ABCGHZBCIZFABDHNOJEBCDKLM $.
  $}

  $( Subset relation implied by membership in a power class.  (Contributed by
     NM, 17-Feb-2007.) $)
  elpwi $p |- ( A e. ~P B -> A C_ B ) $=
    ( cpw wcel wss elpwg ibi ) ABCZDABEABHFG $.

  $( Characterization of the elements of a power class.  (Contributed by BJ,
     29-Apr-2021.) $)
  elpwb $p |- ( A e. ~P B <-> ( A e. _V /\ A C_ B ) ) $=
    ( cpw wcel cvv wss elex elpwg biadan2 ) ABCZDAEDABFAJGABEHI $.

  ${
    elpwid.1 $e |- ( ph -> A e. ~P B ) $.
    $( An element of a power class is a subclass.  Deduction form of ~ elpwi .
       (Contributed by David Moews, 1-May-2017.) $)
    elpwid $p |- ( ph -> A C_ B ) $=
      ( cpw wcel wss elpwi syl ) ABCEFBCGDBCHI $.
  $}

  $( If ` A ` belongs to a part of ` C ` then ` A ` belongs to ` C ` .
     (Contributed by FL, 3-Aug-2009.) $)
  elelpwi $p |- ( ( A e. B /\ B e. ~P C ) -> A e. C ) $=
    ( cpw wcel elpwi sseld impcom ) BCDEZABEACEIBCABCFGH $.

  ${
    $d y A $.  $d x y $.
    nfpw.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for power class.  (Contributed by NM,
       28-Oct-2003.)  (Revised by Mario Carneiro, 13-Oct-2016.) $)
    nfpw $p |- F/_ x ~P A $=
      ( vy cpw cv wss cab df-pw nfcv nfss nfab nfcxfr ) ABEDFZBGZDHDBIOADANBANJ
      CKLM $.
  $}

  $( Membership of the original in a power set.  (Contributed by Stefan O'Rear,
     1-Feb-2015.) $)
  pwidg $p |- ( A e. V -> A e. ~P A ) $=
    ( wcel cpw wss ssid elpwg mpbiri ) ABCAADCAAEAFAABGH $.

  ${
    pwid.1 $e |- A e. _V $.
    $( A set is a member of its power class.  Theorem 87 of [Suppes] p. 47.
       (Contributed by NM, 5-Aug-1993.) $)
    pwid $p |- A e. ~P A $=
      ( cvv wcel cpw pwidg ax-mp ) ACDAAEDBACFG $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Subclass relationship for power class.  (Contributed by NM,
       21-Jun-2009.) $)
    pwss $p |- ( ~P A C_ B <-> A. x ( x C_ A -> x e. B ) ) $=
      ( cpw wss cv wcel wi wal dfss2 selpw imbi1i albii bitri ) BDZCEAFZOGZPCGZ
      HZAIPBEZRHZAIAOCJSUAAQTRABKLMN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Unordered and ordered pairs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new symbols needed. $)
  $c <. $.  $( Bracket (the period distinguishes it from 'less than') $)
  $c >. $.  $( Bracket (the period distinguishes it from 'greater than') $)

  ${
    $d x A $.  $d y A $.  $d z x $.  $d z y $.  $d z A $.
    $( Soundness justification theorem for ~ df-sn .  (Contributed by Rodolfo
       Medina, 28-Apr-2010.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    snjust $p |- { x | x = A } = { y | y = A } $=
      ( vz cv wceq cab eqeq1 cbvabv eqtri ) AEZCFZAGDEZCFZDGBEZCFZBGLNADKMCHINP
      DBMOCHIJ $.
  $}

  $( Extend class notation to include singleton. $)
  csn $a class { A } $.

  ${
    $d x A $.
    $( Define the singleton of a class.  Definition 7.1 of [Quine] p. 48.  For
       convenience, it is well-defined for proper classes, i.e., those that are
       not elements of ` _V ` , although it is not very meaningful in this
       case.  For an alternate definition see ~ dfsn2 .  (Contributed by NM,
       21-Jun-1993.) $)
    df-sn $a |- { A } = { x | x = A } $.
  $}

  $( Extend class notation to include unordered pair. $)
  cpr $a class { A , B } $.

  $( Define unordered pair of classes.  Definition 7.1 of [Quine] p. 48.  For
     example, ` A e. { 1 , -u 1 } -> ( A ^ 2 ) = 1 ` ( ~ ex-pr ).  They are
     unordered, so ` { A , B } = { B , A } ` as proven by ~ prcom .  For a more
     traditional definition, but requiring a dummy variable, see ~ dfpr2 .
     ` { A , A } ` is also an unordered pair, but also a singleton because of
     ` { A } = { A , A } ` (see ~ dfsn2 ).  Therefore, ` { A , B } ` is called
     a _proper (unordered) pair_ iff ` A =/= B ` and ` A ` and ` B ` are sets.
     (Contributed by NM, 21-Jun-1993.) $)
  df-pr $a |- { A , B } = ( { A } u. { B } ) $.

  $( Extend class notation to include unordered triplet. $)
  ctp $a class { A , B , C } $.

  $( Define unordered triple of classes.  Definition of [Enderton] p. 19.
     (Contributed by NM, 9-Apr-1994.) $)
  df-tp $a |- { A , B , C } = ( { A , B } u. { C } ) $.

  $( Extend class notation to include ordered pair. $)
  cop $a class <. A , B >. $.

  ${
    $d x A $.  $d x B $.
    $( Definition of an ordered pair, equivalent to Kuratowski's definition
       ` { { A } , { A , B } } ` when the arguments are sets.  Since the
       behavior of Kuratowski definition is not very useful for proper classes,
       we define it to be empty in this case (see ~ opprc1 , ~ opprc2 , and
       ~ 0nelop ).  For Kuratowski's actual definition when the arguments are
       sets, see ~ dfop .  For the justifying theorem (for sets) see ~ opth .
       See ~ dfopif for an equivalent formulation using the ` if ` operation.

       Definition 9.1 of [Quine] p. 58 defines an ordered pair unconditionally
       as ` <. A , B >. = { { A } , { A , B } } ` , which has different
       behavior from our ~ df-op when the arguments are proper classes.
       Ordinarily this difference is not important, since neither definition is
       meaningful in that case.  Our ~ df-op was chosen because it often makes
       proofs shorter by eliminating unnecessary sethood hypotheses.

       There are other ways to define ordered pairs.  The basic requirement is
       that two ordered pairs are equal iff their respective members are equal.
       In 1914 Norbert Wiener gave the first successful definition
       ` <. A , B >. ` _2 ` = { { { A } , (/) } , { { B } } } ` , justified by
       ~ opthwiener .  This was simplified by Kazimierz Kuratowski in 1921 to
       our present definition.  An even simpler definition ` <. A , B >. ` _3
       ` = { A , { A , B } } ` is justified by ~ opthreg , but it requires the
       Axiom of Regularity for its justification and is not commonly used.  A
       definition that also works for proper classes is ` <. A , B >. ` _4
       ` = ( ( A X. { (/) } ) u. ( B X. { { (/) } } ) ) ` , justified by
       ~ opthprc .  If we restrict our sets to nonnegative integers, an ordered
       pair definition that involves only elementary arithmetic is provided by
       ~ nn0opthi .  An ordered pair of real numbers can also be represented by
       a complex number as shown by ~ cru .  Kuratowski's ordered pair
       definition is standard for ZFC set theory, but it is very inconvenient
       to use in New Foundations theory because it is not type-level; a common
       alternate definition in New Foundations is the definition from [Rosser]
       p. 281.

       Since there are other ways to define ordered pairs, we discourage direct
       use of this definition so that most theorems won't depend on this
       particular construction; theorems will instead rely on ~ dfopif .
       (Contributed by NM, 28-May-1995.)  (Revised by Mario Carneiro,
       26-Apr-2015.)  (Avoid depending on this detail.) $)
    df-op $a |- <. A , B >. = { x |
      ( A e. _V /\ B e. _V /\ x e. { { A } , { A , B } } ) } $.
  $}

  $( Extend class notation to include ordered triple. $)
  cotp $a class <. A , B , C >. $.

  $( Define ordered triple of classes.  Definition of ordered triple in [Stoll]
     p. 25.  (Contributed by NM, 3-Apr-2015.) $)
  df-ot $a |- <. A , B , C >. = <. <. A , B >. , C >. $.

  ${
    $d x A $.  $d x B $.
    $( Equality theorem for singletons.  Part of Exercise 4 of [TakeutiZaring]
       p. 15.  (Contributed by NM, 21-Jun-1993.) $)
    sneq $p |- ( A = B -> { A } = { B } ) $=
      ( vx wceq cv cab csn eqeq2 abbidv df-sn 3eqtr4g ) ABDZCEZADZCFMBDZCFAGBGL
      NOCABMHICAJCBJK $.
  $}

  ${
    sneqi.1 $e |- A = B $.
    $( Equality inference for singletons.  (Contributed by NM, 22-Jan-2004.) $)
    sneqi $p |- { A } = { B } $=
      ( wceq csn sneq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    sneqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for singletons.  (Contributed by NM, 22-Jan-2004.) $)
    sneqd $p |- ( ph -> { A } = { B } ) $=
      ( wceq csn sneq syl ) ABCEBFCFEDBCGH $.
  $}

  $( Alternate definition of singleton.  Definition 5.1 of [TakeutiZaring]
     p. 15.  (Contributed by NM, 24-Apr-1994.) $)
  dfsn2 $p |- { A } = { A , A } $=
    ( cpr csn cun df-pr unidm eqtr2i ) AABACZHDHAAEHFG $.

  ${
    $d A x $.  $d B x $.
    $( There is exactly one element in a singleton.  Exercise 2 of
       [TakeutiZaring] p. 15 (generalized).  (Contributed by NM, 13-Sep-1995.)
       (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    elsng $p |- ( A e. V -> ( A e. { B } <-> A = B ) ) $=
      ( vx cv wceq csn eqeq1 df-sn elab2g ) DEZBFABFDABGCKABHDBIJ $.
  $}

  ${
    elsn.1 $e |- A e. _V $.
    $( There is exactly one element in a singleton.  Exercise 2 of
       [TakeutiZaring] p. 15.  (Contributed by NM, 13-Sep-1995.) $)
    elsn $p |- ( A e. { B } <-> A = B ) $=
      ( cvv wcel csn wceq wb elsng ax-mp ) ADEABFEABGHCABDIJ $.
  $}

  $( There is only one element in a singleton.  Exercise 2 of [TakeutiZaring]
     p. 15.  (Contributed by NM, 21-Jun-1993.) $)
  velsn $p |- ( x e. { A } <-> x = A ) $=
    ( cv vex elsn ) ACBADE $.

  $( There is only one element in a singleton.  (Contributed by NM,
     5-Jun-1994.) $)
  elsni $p |- ( A e. { B } -> A = B ) $=
    ( csn wcel wceq elsng ibi ) ABCZDABEABHFG $.

  ${
    $d x A $.  $d x B $.
    $( Alternate definition of unordered pair.  Definition 5.1 of
       [TakeutiZaring] p. 15.  (Contributed by NM, 24-Apr-1994.) $)
    dfpr2 $p |- { A , B } = { x | ( x = A \/ x = B ) } $=
      ( cpr csn cun cv wceq wo df-pr wcel elun velsn orbi12i bitri abbi2i eqtri
      cab ) BCDBEZCEZFZAGZBHZUBCHZIZARBCJUEAUAUBUAKUBSKZUBTKZIUEUBSTLUFUCUGUDAB
      MACMNOPQ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( A member of an unordered pair of classes is one or the other of them.
       Exercise 1 of [TakeutiZaring] p. 15, generalized.  (Contributed by NM,
       13-Sep-1995.) $)
    elprg $p |- ( A e. V -> ( A e. { B , C } <-> ( A = B \/ A = C ) ) ) $=
      ( vx cv wceq wo cpr eqeq1 orbi12d dfpr2 elab2g ) EFZBGZNCGZHABGZACGZHEABC
      IDNAGOQPRNABJNACJKEBCLM $.
  $}

  $( If a class is an element of a pair, then it is one of the two paired
     elements.  (Contributed by Scott Fenton, 1-Apr-2011.) $)
  elpri $p |- ( A e. { B , C } -> ( A = B \/ A = C ) ) $=
    ( cpr wcel wceq wo elprg ibi ) ABCDZEABFACFGABCJHI $.

  ${
    elpr.1 $e |- A e. _V $.
    $( A member of an unordered pair of classes is one or the other of them.
       Exercise 1 of [TakeutiZaring] p. 15.  (Contributed by NM,
       13-Sep-1995.) $)
    elpr $p |- ( A e. { B , C } <-> ( A = B \/ A = C ) ) $=
      ( cvv wcel cpr wceq wo wb elprg ax-mp ) AEFABCGFABHACHIJDABCEKL $.
  $}

  ${
    elpr2.1 $e |- B e. _V $.
    elpr2.2 $e |- C e. _V $.
    $( A member of an unordered pair of classes is one or the other of them.
       Exercise 1 of [TakeutiZaring] p. 15.  (Contributed by NM, 14-Oct-2005.)
       (Proof shortened by JJ, 23-Jul-2021.) $)
    elpr2 $p |- ( A e. { B , C } <-> ( A = B \/ A = C ) ) $=
      ( cpr wcel cvv wceq wo elex eleq1 mpbiri jaoi elprg pm5.21nii ) ABCFZGAHG
      ZABIZACIZJAQKSRTSRBHGDABHLMTRCHGEACHLMNABCHOP $.

    $( Obsolete proof of ~ elpr2 as of 23-Jul-2021.  (Contributed by NM,
       14-Oct-2005.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    elpr2OLD $p |- ( A e. { B , C } <-> ( A = B \/ A = C ) ) $=
      ( cpr wcel wceq wo elpri cvv wb eleq1 mpbiri jaoi elprg syl ibir impbii )
      ABCFGZABHZACHZIZABCJUCTUCAKGZTUCLUAUDUBUAUDBKGDABKMNUBUDCKGEACKMNOABCKPQR
      S $.
  $}

  ${
    nelpri.1 $e |- A =/= B $.
    nelpri.2 $e |- A =/= C $.
    $( If an element doesn't match the items in an unordered pair, it is not in
       the unordered pair.  (Contributed by David A. Wheeler, 10-May-2015.) $)
    nelpri $p |- -. A e. { B , C } $=
      ( wne cpr wcel wn wa wceq wo neanior elpri con3i sylbi mp2an ) ABFZACFZAB
      CGHZIZDERSJABKACKLZIUAABACMTUBABCNOPQ $.
  $}

  ${
    prneli.1 $e |- A =/= B $.
    prneli.2 $e |- A =/= C $.
    $( If an element doesn't match the items in an unordered pair, it is not in
       the unordered pair, using ` e/ ` .  (Contributed by David A. Wheeler,
       10-May-2015.) $)
    prneli $p |- A e/ { B , C } $=
      ( cpr nelpri nelir ) ABCFABCDEGH $.
  $}

  ${
    nelprd.1 $e |- ( ph -> A =/= B ) $.
    nelprd.2 $e |- ( ph -> A =/= C ) $.
    $( If an element doesn't match the items in an unordered pair, it is not in
       the unordered pair, deduction version.  (Contributed by Alexander van
       der Vekens, 25-Jan-2018.) $)
    nelprd $p |- ( ph -> -. A e. { B , C } ) $=
      ( wne cpr wcel wn wa wceq wo neanior elpri con3i sylbi syl2anc ) ABCGZBDG
      ZBCDHIZJZEFSTKBCLBDLMZJUBBCBDNUAUCBCDOPQR $.
  $}

  $( Membership in a set with two elements removed.  Similar to ~ eldifsn and
     ~ eldiftp .  (Contributed by Mario Carneiro, 18-Jul-2017.) $)
  eldifpr $p |- ( A e. ( B \ { C , D } ) <->
                ( A e. B /\ A =/= C /\ A =/= D ) ) $=
    ( wcel cpr wn wa wne cdif w3a wo elprg notbid neanior syl6bbr pm5.32i eldif
    wceq 3anass 3bitr4i ) ABEZACDFZEZGZHUBACIZADIZHZHABUCJEUBUFUGKUBUEUHUBUEACS
    ADSLZGUHUBUDUIACDBMNACADOPQABUCRUBUFUGTUA $.

  $( Restricted existential quantification over a set with two elements
     removed.  (Contributed by Alexander van der Vekens, 7-Feb-2018.) $)
  rexdifpr $p |- ( E. x e. ( A \ { B , C } ) ph
      <-> E. x e. A ( x =/= B /\ x =/= C /\ ph ) ) $=
    ( cv wne w3a cpr cdif wcel eldifpr 3anass bitri anbi1i df-3an bicomi anbi2i
    wa anass rexbii2 ) ABFZDGZUBEGZAHZBCDEIJZCUBUFKZASUBCKZUCUDSZSZASZUHUESZUGU
    JAUGUHUCUDHUJUBCDELUHUCUDMNOUKUHUIASZSULUHUIATUMUEUHUEUMUCUDAPQRNNUA $.

  $( A set is a member of its singleton.  Part of Theorem 7.6 of [Quine] p. 49.
     (Contributed by NM, 28-Oct-2003.) $)
  snidg $p |- ( A e. V -> A e. { A } ) $=
    ( wcel csn wceq eqid elsng mpbiri ) ABCAADCAAEAFAABGH $.

  $( A class is a set iff it is a member of its singleton.  (Contributed by NM,
     5-Apr-2004.) $)
  snidb $p |- ( A e. _V <-> A e. { A } ) $=
    ( cvv wcel csn snidg elex impbii ) ABCAADZCABEAHFG $.

  ${
    snid.1 $e |- A e. _V $.
    $( A set is a member of its singleton.  Part of Theorem 7.6 of [Quine]
       p. 49.  (Contributed by NM, 31-Dec-1993.) $)
    snid $p |- A e. { A } $=
      ( cvv wcel csn snidb mpbi ) ACDAAEDBAFG $.
  $}

  $( A setvar variable is a member of its singleton (common case).
     (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  vsnid $p |- x e. { x } $=
    ( cv vex snid ) ABACD $.

  $( There is exactly one element in a singleton.  Exercise 2 of
     [TakeutiZaring] p. 15.  This variation requires only that ` B ` , rather
     than ` A ` , be a set.  (Contributed by NM, 28-Oct-2003.) $)
  elsn2g $p |- ( B e. V -> ( A e. { B } <-> A = B ) ) $=
    ( wcel csn wceq elsni snidg eleq1 syl5ibrcom impbid2 ) BCDZABEZDZABFZABGLNO
    BMDBCHABMIJK $.

  ${
    elsn2.1 $e |- B e. _V $.
    $( There is exactly one element in a singleton.  Exercise 2 of
       [TakeutiZaring] p. 15.  This variation requires only that ` B ` , rather
       than ` A ` , be a set.  (Contributed by NM, 12-Jun-1994.) $)
    elsn2 $p |- ( A e. { B } <-> A = B ) $=
      ( cvv wcel csn wceq wb elsn2g ax-mp ) BDEABFEABGHCABDIJ $.
  $}

  $( If a class is not equal to the class in a singleton, then it is not in the
     singleton.  (Contributed by Glauco Siliprandi, 17-Aug-2020.)  (Proof
     shortened by BJ, 4-May-2021.) $)
  nelsn $p |- ( A =/= B -> -. A e. { B } ) $=
    ( csn wcel elsni necon3ai ) ABCDABABEF $.

  $( Obsolete proof of ~ nelsn as of 4-May-2021.  (Contributed by Glauco
     Siliprandi, 17-Aug-2020.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nelsnOLD $p |- ( A =/= B -> -. A e. { B } ) $=
    ( wne cvv wcel csn wn wa wceq neneq adantr wb elsng adantl mtbird pm2.61dan
    prcnel ) ABCZADEZABFZEZGZRSHUAABIZRUCGSABJKSUAUCLRABDMNOSGUBRATQNP $.

  ${
    $d X x $.
    $( Conditions for a restricted class abstraction to be a singleton.
       (Contributed by AV, 18-Apr-2019.) $)
    rabeqsn $p |- ( { x e. V | ph } = { X }
                    <-> A. x ( ( x e. V /\ ph ) <-> x = X ) ) $=
      ( crab csn wceq cv wcel wa cab wb wal df-rab df-sn eqeq12i abbi bitr4i )
      ABCEZDFZGBHZCIAJZBKZUADGZBKZGUBUDLBMSUCTUEABCNBDOPUBUDBQR $.

    $( Conditions for a restricted class abstraction to be a subset of a
       singleton, i.e. to be a singleton or the empty set.  (Contributed by AV,
       18-Apr-2019.) $)
    rabsssn $p |- ( { x e. V | ph } C_ { X } <-> A. x e. V ( ph -> x = X ) ) $=
      ( crab csn wss cv wcel wa cab wceq wi wal wral df-rab df-sn sseq12i ss2ab
      impexp albii df-ral bitr4i 3bitri ) ABCEZDFZGBHZCIZAJZBKZUGDLZBKZGUIUKMZB
      NZAUKMZBCOZUEUJUFULABCPBDQRUIUKBSUNUHUOMZBNUPUMUQBUHAUKTUAUOBCUBUCUD $.
  $}

  ${
    $d A x $.  $d ps x $.
    $( Substitution expressed in terms of quantification over a singleton.
       (Contributed by NM, 14-Dec-2005.)  (Revised by Mario Carneiro,
       23-Apr-2015.) $)
    ralsnsg $p |- ( A e. V -> ( A. x e. { A } ph <-> [. A / x ]. ph ) ) $=
      ( wcel wsbc cv wceq wi wal csn wral sbc6g df-ral velsn imbi1i albii bitri
      syl6rbbr ) CDEABCFBGZCHZAIZBJZABCKZLZABCDMUETUDEZAIZBJUCABUDNUGUBBUFUAABC
      OPQRS $.

    $( Restricted existential quantification over a singleton.  (Contributed by
       Mario Carneiro, 23-Apr-2015.)  (Revised by NM, 22-Aug-2018.) $)
    rexsns $p |- ( E. x e. { A } ph <-> [. A / x ]. ph ) $=
      ( cv csn wcel wex wceq wrex wsbc velsn anbi1i exbii df-rex sbc5 3bitr4i
      wa ) BDZCEZFZAQZBGRCHZAQZBGABSIABCJUAUCBTUBABCKLMABSNABCOP $.

    ralsng.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Substitution expressed in terms of quantification over a singleton.
       (Contributed by NM, 14-Dec-2005.)  (Revised by Mario Carneiro,
       23-Apr-2015.) $)
    ralsng $p |- ( A e. V -> ( A. x e. { A } ph <-> ps ) ) $=
      ( wcel csn wral wsbc ralsnsg sbcieg bitrd ) DEGACDHIACDJBACDEKABCDEFLM $.

    $( Restricted existential quantification over a singleton.  (Contributed by
       NM, 29-Jan-2012.) $)
    rexsng $p |- ( A e. V -> ( E. x e. { A } ph <-> ps ) ) $=
      ( csn wrex wsbc wcel rexsns sbcieg syl5bb ) ACDGHACDIDEJBACDKABCDEFLM $.

    $d A y $.  $d B x y $.  $d ch y $.
    2ralsng.1 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( Substitution expressed in terms of two quantifications over singletons.
       (Contributed by AV, 22-Dec-2019.) $)
    2ralsng $p |- ( ( A e. V /\ B e. W )
                    -> ( A. x e. { A } A. y e. { B } ph <-> ch ) ) $=
      ( wcel csn wral cv wceq ralbidv ralsng sylan9bb ) FHLAEGMZNZDFMNBETNZGILC
      UAUBDFHDOFPABETJQRBCEGIKRS $.
  $}

  $( There is a set being the element of a singleton if and only if there is an
     element of the singleton.  (Contributed by Alexander van der Vekens,
     1-Jan-2018.) $)
  exsnrex $p |- ( E. x M = { x } <-> E. x e. M M = { x } ) $=
    ( cv csn wceq wex wcel wrex vsnid eleq2 mpbiri pm4.71ri exbii df-rex bitr4i
    wa ) BACZDZEZAFQBGZSPZAFSABHSUAASTSTQRGAIBRQJKLMSABNO $.

  ${
    $d A x $.  $d ps x $.
    ralsn.1 $e |- A e. _V $.
    ralsn.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Convert a quantification over a singleton to a substitution.
       (Contributed by NM, 27-Apr-2009.) $)
    ralsn $p |- ( A. x e. { A } ph <-> ps ) $=
      ( cvv wcel csn wral wb ralsng ax-mp ) DGHACDIJBKEABCDGFLM $.

    $( Restricted existential quantification over a singleton.  (Contributed by
       Jeff Madsen, 5-Jan-2011.) $)
    rexsn $p |- ( E. x e. { A } ph <-> ps ) $=
      ( cvv wcel csn wrex wb rexsng ax-mp ) DGHACDIJBKEABCDGFLM $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Membership in an extension of a power class.  (Contributed by NM,
       26-Mar-2007.) $)
    elpwunsn $p |- ( A e. ( ~P ( B u. { C } ) \ ~P B ) -> C e. A ) $=
      ( vx csn cun cpw cdif wcel wn wa eldif cv wrex wral wss elpwg dfss3 sylbi
      wi syl6bb notbid biimpa rexnal sylibr wceq elpwi ssel wo elsni orim2i ord
      elun imim2i impd 3syl eleq1 biimpd syl6 com4r pm2.43b rexlimdv imp syldan
      expd ) ABCEZFZGZBGZHIAVHIZAVIIZJZKZCAIZAVHVILVJVLDMZBIZJZDANZVNVMVPDAOZJZ
      VRVJVLVTVJVKVSVJVKABPVSABVHQDABRUAUBUCVPDAUDUEVJVRVNVJVQVNDAVJVOAIZVQVNTV
      JWAVQWAVNVJWAVQWAVNTZVJWAVQKZVOCUFZWBVJAVGPWAVOVGIZTZWCWDTAVGUGAVGVOUHWFW
      AVQWDWEVQWDTZWAWEVPVOVFIZUIZWGVOBVFUMWIVPWDWHWDVPVOCUJUKULSUNUOUPWDWAVNVO
      CAUQURUSVEUTVAVBVCVDS $.
  $}

  $( An element of a set is either equal to another element of the set or a
     member of the difference of the set and the singleton containing the other
     element.  (Contributed by AV, 25-Aug-2020.)  (Proof shortened by JJ,
     23-Jul-2021.) $)
  eqoreldif $p |- ( B e. C
                    -> ( A e. C <-> ( A = B \/ A e. ( C \ { B } ) ) ) ) $=
    ( wcel wceq cdif wo wn wa simpl elsni con3i adantl eldifd ex orrd eleq1a wi
    csn eldifi a1i jaod impbid2 ) BCDZACDZABEZACBSZFDZGUEUFUHUEUFHZUHUEUIIACUGU
    EUIJUIAUGDZHUEUJUFABKLMNOPUDUFUEUHBCAQUHUERUDACUGTUAUBUC $.

  $( Obsolete proof of ~ eqoreldif as of 23-Jul-2021.  (Contributed by AV,
     25-Aug-2020.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  eqoreldifOLD $p |- ( B e. C
                    -> ( A e. C <-> ( A = B \/ A e. ( C \ { B } ) ) ) ) $=
    ( wcel wceq csn wo wa wi orc a1d wn simprr elsni a1i con3d impcom eldifd ex
    cdif olcd pm2.61i eleq1 biimprd eldifi jaoi com12 impbid ) BCDZACDZABEZACBF
    ZTDZGZUIUJUNUKUIUJHZUNIUKUNUOUKUMJKUKLZUOUNUPUOHZUMUKUQACULUPUIUJMUOUPAULDZ
    LUOURUKURUKIUOABNOPQRUASUBSUNUIUJUKUIUJIUMUKUJUIABCUCUDUMUJUIACULUEKUFUGUH
    $.

  $( Members of an unordered triple of classes.  (Contributed by FL,
     2-Feb-2014.)  (Proof shortened by Mario Carneiro, 11-Feb-2015.) $)
  eltpg $p |- ( A e. V -> ( A e. { B , C , D } <->
     ( A = B \/ A = C \/ A = D ) ) ) $=
    ( wcel cpr csn wceq ctp w3o elprg elsng orbi12d cun df-tp eleq2i elun bitri
    wo df-3or 3bitr4g ) AEFZABCGZFZADHZFZTZABIZACIZTZADIZTABCDJZFZUIUJULKUCUEUK
    UGULABCELADEMNUNAUDUFOZFUHUMUOABCDPQAUDUFRSUIUJULUAUB $.

  $( Membership in a set with three elements removed.  Similar to ~ eldifsn and
     ~ eldifpr .  (Contributed by David A. Wheeler, 22-Jul-2017.) $)
  eldiftp $p |- ( A e. ( B \ { C , D , E } ) <->
                ( A e. B /\ ( A =/= C /\ A =/= D /\ A =/= E ) ) ) $=
    ( ctp cdif wcel wn wa wne w3a eldif wceq w3o eltpg ne3anior syl6bbr pm5.32i
    notbid bitri ) ABCDEFZGHABHZAUBHZIZJUCACKADKAEKLZJABUBMUCUEUFUCUEACNADNAENO
    ZIUFUCUDUGACDEBPTACADAEQRSUA $.

  $( A member of an unordered triple of classes is one of them.  (Contributed
     by Mario Carneiro, 11-Feb-2015.) $)
  eltpi $p |- ( A e. { B , C , D } -> ( A = B \/ A = C \/ A = D ) ) $=
    ( ctp wcel wceq w3o eltpg ibi ) ABCDEZFABGACGADGHABCDKIJ $.

  ${
    eltp.1 $e |- A e. _V $.
    $( A member of an unordered triple of classes is one of them.  Special case
       of Exercise 1 of [TakeutiZaring] p. 17.  (Contributed by NM,
       8-Apr-1994.)  (Revised by Mario Carneiro, 11-Feb-2015.) $)
    eltp $p |- ( A e. { B , C , D } <-> ( A = B \/ A = C \/ A = D ) ) $=
      ( cvv wcel ctp wceq w3o wb eltpg ax-mp ) AFGABCDHGABIACIADIJKEABCDFLM $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Alternate definition of unordered triple of classes.  Special case of
       Definition 5.3 of [TakeutiZaring] p. 16.  (Contributed by NM,
       8-Apr-1994.) $)
    dftp2 $p |- { A , B , C } = { x | ( x = A \/ x = B \/ x = C ) } $=
      ( cv wceq w3o ctp vex eltp abbi2i ) AEZBFLCFLDFGABCDHLBCDAIJK $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    nfpr.1 $e |- F/_ x A $.
    nfpr.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for unordered pairs.  (Contributed by
       NM, 14-Nov-1995.) $)
    nfpr $p |- F/_ x { A , B } $=
      ( vy cpr cv wceq wo cab dfpr2 nfeq2 nfor nfab nfcxfr ) ABCGFHZBIZQCIZJZFK
      FBCLTAFRSAAQBDMAQCEMNOP $.
  $}

  $( Membership of a conditional operator in an unordered pair.  (Contributed
     by NM, 17-Jun-2007.) $)
  ifpr $p |- ( ( A e. C /\ B e. D ) -> if ( ph , A , B ) e. { A , B } ) $=
    ( wcel cvv cif cpr elex wa ifcl wceq wo ifeqor elprg mpbiri syl syl2an ) BD
    FBGFZCGFZABCHZBCIFZCEFBDJCEJTUAKUBGFZUCABCGLUDUCUBBMUBCMNABCOUBBCGPQRS $.

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ps $.  $d x ch $.  $d x th $.
    ralprg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ralprg.2 $e |- ( x = B -> ( ph <-> ch ) ) $.
    $( Convert a quantification over a pair to a conjunction.  (Contributed by
       NM, 17-Sep-2011.)  (Revised by Mario Carneiro, 23-Apr-2015.) $)
    ralprg $p |- ( ( A e. V /\ B e. W ) ->
      ( A. x e. { A , B } ph <-> ( ps /\ ch ) ) ) $=
      ( cpr wral csn wa wcel cun df-pr raleqi ralunb ralsng bi2anan9 syl5bb
      bitri ) ADEFKZLZADEMZLZADFMZLZNZEGOZFHOZNBCNUEADUFUHPZLUJADUDUMEFQRADUFUH
      SUCUKUGBULUICABDEGITACDFHJTUAUB $.

    $( Convert a quantification over a pair to a disjunction.  (Contributed by
       NM, 17-Sep-2011.)  (Revised by Mario Carneiro, 23-Apr-2015.) $)
    rexprg $p |- ( ( A e. V /\ B e. W ) ->
      ( E. x e. { A , B } ph <-> ( ps \/ ch ) ) ) $=
      ( cpr wrex csn wo wcel wa cun df-pr rexeqi rexsng orbi1d orbi2d sylan9bb
      rexun bitri syl5bb ) ADEFKZLZADEMZLZADFMZLZNZEGOZFHOZPBCNZUHADUIUKQZLUMAD
      UGUQEFRSADUIUKUDUEUNUMBULNUOUPUNUJBULABDEGITUAUOULCBACDFHJTUBUCUF $.

    raltpg.3 $e |- ( x = C -> ( ph <-> th ) ) $.
    $( Convert a quantification over a triple to a conjunction.  (Contributed
       by NM, 17-Sep-2011.)  (Revised by Mario Carneiro, 23-Apr-2015.) $)
    raltpg $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
      ( A. x e. { A , B , C } ph <-> ( ps /\ ch /\ th ) ) ) $=
      ( wcel w3a cpr wral csn wa ctp wb ralprg ralsng bi2anan9 3impa cun raleqi
      df-tp ralunb bitri df-3an 3bitr4g ) FIOZGJOZHKOZPAEFGQZRZAEHSZRZTZBCTZDTZ
      AEFGHUAZRZBCDPUNUOUPVAVCUBUNUOTURVBUPUTDABCEFGIJLMUCADEHKNUDUEUFVEAEUQUSU
      GZRVAAEVDVFFGHUIUHAEUQUSUJUKBCDULUM $.

    $( Convert a quantification over a triple to a disjunction.  (Contributed
       by Mario Carneiro, 23-Apr-2015.) $)
    rextpg $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
      ( E. x e. { A , B , C } ph <-> ( ps \/ ch \/ th ) ) ) $=
      ( wcel w3a cpr wrex csn wo ctp wb wa rexprg orbi1d rexsng orbi2d sylan9bb
      w3o 3impa cun df-tp rexeqi rexun bitri df-3or 3bitr4g ) FIOZGJOZHKOZPAEFG
      QZRZAEHSZRZTZBCTZDTZAEFGHUAZRZBCDUIURUSUTVEVGUBURUSUCZVEVFVDTUTVGVJVBVFVD
      ABCEFGIJLMUDUEUTVDDVFADEHKNUFUGUHUJVIAEVAVCUKZRVEAEVHVKFGHULUMAEVAVCUNUOB
      CDUPUQ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.  $d x ch $.
    ralpr.1 $e |- A e. _V $.
    ralpr.2 $e |- B e. _V $.
    ralpr.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ralpr.4 $e |- ( x = B -> ( ph <-> ch ) ) $.
    $( Convert a quantification over a pair to a conjunction.  (Contributed by
       NM, 3-Jun-2007.)  (Revised by Mario Carneiro, 23-Apr-2015.) $)
    ralpr $p |- ( A. x e. { A , B } ph <-> ( ps /\ ch ) ) $=
      ( cvv wcel cpr wral wa wb ralprg mp2an ) EKLFKLADEFMNBCOPGHABCDEFKKIJQR
      $.

    $( Convert an existential quantification over a pair to a disjunction.
       (Contributed by NM, 3-Jun-2007.)  (Revised by Mario Carneiro,
       23-Apr-2015.) $)
    rexpr $p |- ( E. x e. { A , B } ph <-> ( ps \/ ch ) ) $=
      ( cvv wcel cpr wrex wo wb rexprg mp2an ) EKLFKLADEFMNBCOPGHABCDEFKKIJQR
      $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ps $.  $d x ch $.  $d x th $.
    raltp.1 $e |- A e. _V $.
    raltp.2 $e |- B e. _V $.
    raltp.3 $e |- C e. _V $.
    raltp.4 $e |- ( x = A -> ( ph <-> ps ) ) $.
    raltp.5 $e |- ( x = B -> ( ph <-> ch ) ) $.
    raltp.6 $e |- ( x = C -> ( ph <-> th ) ) $.
    $( Convert a quantification over a triple to a conjunction.  (Contributed
       by NM, 13-Sep-2011.)  (Revised by Mario Carneiro, 23-Apr-2015.) $)
    raltp $p |- ( A. x e. { A , B , C } ph <-> ( ps /\ ch /\ th ) ) $=
      ( cvv wcel ctp wral w3a wb raltpg mp3an ) FOPGOPHOPAEFGHQRBCDSTIJKABCDEFG
      HOOOLMNUAUB $.

    $( Convert a quantification over a triple to a disjunction.  (Contributed
       by Mario Carneiro, 23-Apr-2015.) $)
    rextp $p |- ( E. x e. { A , B , C } ph <-> ( ps \/ ch \/ th ) ) $=
      ( cvv wcel ctp wrex w3o wb rextpg mp3an ) FOPGOPHOPAEFGHQRBCDSTIJKABCDEFG
      HOOOLMNUAUB $.
  $}

  ${
    nfsn.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for singletons.  (Contributed by NM,
       14-Nov-1995.) $)
    nfsn $p |- F/_ x { A } $=
      ( csn cpr dfsn2 nfpr nfcxfr ) ABDBBEBFABBCCGH $.
  $}

  ${
    $d A y $.  $d B y $.  $d V y $.  $d x y $.
    $( Distribute proper substitution through the singleton of a class.
       ~ csbsng is derived from the virtual deduction proof ~ csbsngVD .
       (Contributed by Alan Sare, 10-Nov-2012.) $)
    csbsng $p |- ( A e. V -> [_ A / x ]_ { B } = { [_ A / x ]_ B } ) $=
      ( vy wcel wceq cab csb csn wsbc csbab sbceq2g abbidv syl5eq df-sn csbeq2i
      cv 3eqtr4g ) BDFZABERZCGZEHZIZUAABCIZGZEHZABCJZIUEJTUDUBABKZEHUGUBAEBLTUI
      UFEABUACDMNOABUHUCECPQEUEPS $.
  $}

  $( Distribute proper substitution through a pair of classes.  (Contributed by
     Alexander van der Vekens, 4-Sep-2018.) $)
  csbprg $p |- ( C e. V
            -> [_ C / x ]_ { A , B } = { [_ C / x ]_ A , [_ C / x ]_ B } ) $=
    ( wcel csn cun csb cpr csbun csbsng uneq12d syl5eq df-pr csbeq2i 3eqtr4g )
    DEFZADBGZCGZHZIZADBIZGZADCIZGZHZADBCJZIUCUEJRUBADSIZADTIZHUGADSTKRUIUDUJUFA
    DBELADCELMNADUHUABCOPUCUEOQ $.

  $( If the intersection of two classes is a (proper) singleton, then the
     singleton element is a member of both classes.  (Contributed by AV,
     30-Dec-2021.) $)
  elinsn $p |- ( ( A e. V /\ ( B i^i C ) = { A } ) -> ( A e. B /\ A e. C ) ) $=
    ( wcel csn cin wceq wa snidg eleq2 elin biimpi syl6bir mpan9 ) ADEAAFZEZBCG
    ZPHZABEACEIZADJSQAREZTRPAKUATABCLMNO $.

  ${
    $d x A $.  $d x B $.
    $( Intersection with the singleton of a non-member is disjoint.
       (Contributed by NM, 22-May-1998.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.)  (Proof shortened by Wolf Lammen, 30-Sep-2014.) $)
    disjsn $p |- ( ( A i^i { B } ) = (/) <-> -. B e. A ) $=
      ( vx csn cin c0 wceq cv wcel wn wi wal wa disj1 con2b velsn imbi1i 3bitri
      imnan albii wex alnex df-clel xchbinxr ) ABDZEFGCHZAIZUFUEIZJKZCLUFBGZUGM
      ZJZCLZBAIZJCAUENUIULCUIUHUGJZKUJUOKULUGUHOUHUJUOCBPQUJUGSRTUMUKCUAUNUKCUB
      CBAUCUDR $.
  $}

  $( Two distinct singletons are disjoint.  (Contributed by NM,
     25-May-1998.) $)
  disjsn2 $p |- ( A =/= B -> ( { A } i^i { B } ) = (/) ) $=
    ( wne csn wcel wn cin c0 wceq elsni eqcomd necon3ai disjsn sylibr ) ABCBADZ
    EZFOBDGHIPABPBABAJKLOBMN $.

  $( Two completely distinct unordered pairs are disjoint.  (Contributed by
     Alexander van der Vekens, 11-Nov-2017.)  (Proof shortened by JJ,
     23-Jul-2021.) $)
  disjpr2 $p |- ( ( ( A =/= C /\ B =/= C ) /\ ( A =/= D /\ B =/= D ) )
                  -> ( { A , B } i^i { C , D } ) = (/) ) $=
    ( wne wa cpr cin csn cun df-pr eqtri wceq ineq1i indir disjsn2 anim12i un00
    c0 syl5eq ineq2i indi sylib adantr adantl uneq12d un0 syl6eq ) ACEZBCEZFZAD
    EZBDEZFZFZABGZCDGZHZUPCIZHZUPDIZHZJZSURUPUSVAJZHVCUQVDUPCDKUAUPUSVAUBLUOVCS
    SJSUOUTSVBSUKUTSMUNUKUTAIZUSHZBIZUSHZJZSUTVEVGJZUSHVIUPVJUSABKZNVEVGUSOLUKV
    FSMZVHSMZFVISMUIVLUJVMACPBCPQVFVHRUCTUDUNVBSMUKUNVBVEVAHZVGVAHZJZSVBVJVAHVP
    UPVJVAVKNVEVGVAOLUNVNSMZVOSMZFVPSMULVQUMVRADPBDPQVNVORUCTUEUFSUGUHT $.

  $( Obsolete proof of ~ disjpr2 as of 23-Jul-2021.  (Contributed by Alexander
     van der Vekens, 11-Nov-2017.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  disjpr2OLD $p |- ( ( ( A =/= C /\ B =/= C ) /\ ( A =/= D /\ B =/= D ) )
                  -> ( { A , B } i^i { C , D } ) = (/) ) $=
    ( wne wa cpr cin csn c0 wceq df-pr ineq1i indir eqtri disjsn2 adantr adantl
    cun syl5eq a1i ineq2d indi jca un00 sylib uneq12d un0 syl6eq eqtrd ) ACEZBC
    EZFZADEZBDEZFZFZABGZCDGZHURCIZDIZSZHZJUQUSVBURUSVBKUQCDLUAUBUQVCURUTHZURVAH
    ZSZJURUTVAUCUQVFJJSJUQVDJVEJUQVDAIZUTHZBIZUTHZSZJVDVGVISZUTHVKURVLUTABLZMVG
    VIUTNOUQVHJKZVJJKZFVKJKUQVNVOUMVNUPUKVNULACPQQUMVOUPULVOUKBCPRQUDVHVJUEUFTU
    QVEVGVAHZVIVAHZSZJVEVLVAHVRURVLVAVMMVGVIVANOUQVPJKZVQJKZFVRJKUQVSVTUPVSUMUN
    VSUOADPQRUPVTUMUOVTUNBDPRRUDVPVQUEUFTUGJUHUITUJ $.

  $( The disjoint intersection of an unordered pair and a singleton.
     (Contributed by AV, 23-Jan-2021.) $)
  disjprsn $p |- ( ( A =/= C /\ B =/= C ) -> ( { A , B } i^i { C } ) = (/) ) $=
    ( wne wa cpr csn cin c0 dfsn2 ineq2i wceq disjpr2 anidms syl5eq ) ACDBCDEZA
    BFZCGZHQCCFZHZIRSQCJKPTILABCCMNO $.

  $( The disjoint intersection of an unordered triple and a singleton.
     (Contributed by AV, 14-Nov-2021.) $)
  disjtpsn $p |- ( ( A =/= D /\ B =/= D /\ C =/= D )
                   -> ( { A , B , C } i^i { D } ) = (/) ) $=
    ( wne w3a ctp csn cin cpr cun c0 df-tp ineq1i wceq disjprsn 3adant3 disjsn2
    wa 3ad2ant3 jca undisj1 sylib syl5eq ) ADEZBDEZCDEZFZABCGZDHZIABJZCHZKZUJIZ
    LUIUMUJABCMNUHUKUJILOZULUJILOZSUNLOUHUOUPUEUFUOUGABDPQUGUEUPUFCDRTUAUKULUJU
    BUCUD $.

  $( Two completely distinct unordered triples are disjoint.  (Contributed by
     AV, 14-Nov-2021.) $)
  disjtp2 $p |- ( ( ( A =/= D /\ B =/= D /\ C =/= D )
                    /\ ( A =/= E /\ B =/= E /\ C =/= E )
                    /\ ( A =/= F /\ B =/= F /\ C =/= F ) )
                  -> ( { A , B , C } i^i { D , E , F } ) = (/) ) $=
    ( wne w3a ctp cin cpr csn cun c0 df-tp wceq wa 3simpa 3ad2ant3 syl5eq incom
    ineq2i ineq1i disjpr2 syl2an 3adant3 necom biimpi disjprsn undisj1 disjtpsn
    jca sylib undisj2 ) ADGZBDGZCDGZHZAEGZBEGZCEGZHZAFGBFGCFGHZHZABCIZDEFIZJVED
    EKZFLZMZJZNVFVIVEDEFOUBVDVEVGJZNPZVEVHJNPZQVJNPVDVLVMVDVKABKZCLZMZVGJZNVEVP
    VGABCOUCVDVNVGJNPZVOVGJZNPZQVQNPVDVRVTURVBVRVCURUOUPQUSUTQVRVBUOUPUQRUSUTVA
    RABDEUDUEUFVDVSVGVOJZNVOVGUAURVBWANPZVCURDCGZECGZWBVBUQUOWCUPUQWCCDUGUHSVAU
    SWDUTVAWDCEUGUHSDECUIUEUFTULVNVOVGUJUMTVCURVMVBABCFUKSULVEVGVHUNUMT $.

  ${
    $d x A $.
    $( The singleton of a proper class (one that doesn't exist) is the empty
       set.  Theorem 7.2 of [Quine] p. 48.  (Contributed by NM,
       21-Jun-1993.) $)
    snprc $p |- ( -. A e. _V <-> { A } = (/) ) $=
      ( vx csn c0 wceq cvv wcel cv wex velsn exbii neq0 isset 3bitr4i con1bii
      wn ) ACZDEZAFGZBHZQGZBITAEZBIRPSUAUBBBAJKBQLBAMNO $.
  $}

  $( A singleton is nonempty iff its argument is a set.  (Contributed by Scott
     Fenton, 8-May-2018.) $)
  snnzb $p |- ( A e. _V <-> { A } =/= (/) ) $=
    ( cvv wcel csn c0 wne wn wceq snprc df-ne con2bii bitri con4bii ) ABCZADZEF
    ZNGOEHZPGAIPQOEJKLM $.

  ${
    $d x y A $.  $d x B $.
    $( Special case of ~ r19.12 where its converse holds.  (Contributed by NM,
       19-May-2008.)  (Revised by Mario Carneiro, 23-Apr-2015.)  (Revised by
       BJ, 18-Mar-2020.) $)
    r19.12sn $p |- ( A e. V -> ( E. x e. { A } A. y e. B ph
                                         <-> A. y e. B E. x e. { A } ph ) ) $=
      ( wcel wral wsbc csn wrex sbcralg rexsns ralbii 3bitr4g ) DFGACEHZBDIABDI
      ZCEHPBDJZKABRKZCEHABCDEFLPBDMSQCEABDMNO $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Condition where a restricted class abstraction is a singleton.
       (Contributed by NM, 28-May-2006.) $)
    rabsn $p |- ( B e. A -> { x e. A | x = B } = { B } ) $=
      ( wcel cv wceq wa cab crab csn eleq1 pm5.32ri abbidv df-rab df-sn 3eqtr4g
      baib ) CBDZAEZBDZSCFZGZAHUAAHUAABICJRUBUAAUBRUAUATRSCBKLQMUAABNACOP $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( A restricted class abstraction restricted to a singleton is either the
       empty set or the singleton itself.  (Contributed by AV, 21-Jul-2019.) $)
    rabsnifsb $p |- { x e. { A } | ph }
                    = if ( [. A / x ]. ph , { A } , (/) ) $=
      ( vy cv csn wcel wa cab wsbc c0 wn wo syl imdistani nfv nfan eleq1 anbi1d
      wi crab wceq elsni sbceq1a biimpd orcd biimprd noel pm2.21i adantr impbii
      cif jaoi abbii nfsbc1v nfn nfor orbi12d cbvab eqtri df-rab df-if 3eqtr4i
      weq ) BEZCFZGZAHZBIZDEZVFGZABCJZHZVJKGZVLLZHZMZDIZABVFUAVLVFKULVIVGVLHZVE
      KGZVOHZMZBIVRVHWBBVHWBVHVSWAVGAVLVGVECUBZAVLTVECUCZWCAVLABCUDZUENOUFVSVHW
      AVGVLAVGWCVLATWDWCAVLWEUGNOVTVHVOVTVHVEUHUIUJUMUKUNWBVQBDWBDPVMVPBVKVLBVK
      BPABCUOZQVNVOBVNBPVLBWFUPQUQBDVDZVSVMWAVPWGVGVKVLVEVJVFRSWGVTVNVOVEVJKRSU
      RUSUTABVFVAVLDVFKVBVC $.
  $}

  ${
    $d x A $.  $d x ps $.
    rabsnif.f $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( A restricted class abstraction restricted to a singleton is either the
       empty set or the singleton itself.  (Contributed by AV, 12-Apr-2019.)
       (Proof shortened by AV, 21-Jul-2019.) $)
    rabsnif $p |- { x e. { A } | ph } = if ( ps , { A } , (/) ) $=
      ( cvv wcel csn crab cif wceq wsbc rabsnifsb sbcieg ifbid syl5eq rab0 ifid
      c0 wn eqtr4i snprc biimpi rabeqdv ifeq1d 3eqtr4a pm2.61i ) DFGZACDHZIZBUI
      SJZKUHUJACDLZUISJUKACDMUHULBUISABCDFENOPUHTZACSIZBSSJZUJUKUNSUOACQBSRUAUM
      ACUISUMUISKDUBUCZUDUMBUISSUPUEUFUG $.
  $}

  ${
    $d x A $.
    $( A restricted class abstraction restricted to a singleton is either the
       empty set or the singleton itself.  (Contributed by Alexander van der
       Vekens, 22-Dec-2017.)  (Proof shortened by AV, 21-Jul-2019.) $)
    rabrsn $p |- ( M = { x e. { A } | ph } -> ( M = (/) \/ M = { A } ) ) $=
      ( csn crab wceq wsbc c0 cif wo rabsnifsb eqeq2i ifeqor orcom mpbi orbi12d
      eqeq1 mpbiri sylbi ) DABCEZFZGDABCHZUAIJZGZDIGZDUAGZKZUBUDDABCLMUEUHUDIGZ
      UDUAGZKZUJUIKUKUCUAINUJUIOPUEUFUIUGUJDUDIRDUDUARQST $.
  $}

  ${
    $d x y $.  $d y ph $.  $d y A $.
    $( Another way to express existential uniqueness of a wff: its class
       abstraction is a singleton.  (Contributed by Mario Carneiro,
       14-Nov-2016.) $)
    euabsn2 $p |- ( E! x ph <-> E. y { x | ph } = { y } ) $=
      ( weu cv wceq wb wal wex cab csn df-eu wcel abeq1 velsn albii bitri exbii
      bibi2i bitr4i ) ABDABEZCEZFZGZBHZCIABJUBKZFZCIABCLUGUECUGAUAUFMZGZBHUEABU
      FNUIUDBUHUCABUBOSPQRT $.

    $( Another way to express existential uniqueness of a wff: its class
       abstraction is a singleton.  (Contributed by NM, 22-Feb-2004.) $)
    euabsn $p |- ( E! x ph <-> E. x { x | ph } = { x } ) $=
      ( vy weu cab cv csn wceq wex euabsn2 nfab1 nfeq1 sneq eqeq2d cbvex bitr4i
      nfv ) ABDABEZCFZGZHZCIRBFZGZHZBIABCJUDUABCUDCQBRTABKLUBSHUCTRUBSMNOP $.

    $( A way to express restricted existential uniqueness of a wff: its
       restricted class abstraction is a singleton.  (Contributed by NM,
       30-May-2006.)  (Proof shortened by Mario Carneiro, 14-Nov-2016.) $)
    reusn $p |- ( E! x e. A ph <-> E. y { x e. A | ph } = { y } ) $=
      ( cv wcel wa weu cab csn wceq wex wreu euabsn2 df-reu df-rab eqeq1i exbii
      crab 3bitr4i ) BEDFAGZBHUABIZCEJZKZCLABDMABDSZUCKZCLUABCNABDOUFUDCUEUBUCA
      BDPQRT $.

    $( Restricted existential uniqueness determined by a singleton.
       (Contributed by NM, 29-May-2006.) $)
    absneu $p |- ( ( A e. V /\ { x | ph } = { A } ) -> E! x ph ) $=
      ( vy wcel cab csn wceq wa wex weu sneq eqeq2d spcegv imp euabsn2 sylibr
      cv ) CDFZABGZCHZIZJUAESZHZIZEKZABLTUCUGUFUCECDUDCIUEUBUAUDCMNOPABEQR $.

    $( Restricted existential uniqueness determined by a singleton.
       (Contributed by NM, 29-May-2006.)  (Revised by Mario Carneiro,
       23-Dec-2016.) $)
    rabsneu $p |- ( ( A e. V /\ { x e. B | ph } = { A } ) -> E! x e. B ph ) $=
      ( wcel crab csn wceq wa cv weu df-rab eqeq1i absneu sylan2b df-reu sylibr
      wreu cab ) CEFZABDGZCHZIZJBKDFAJZBLZABDSUDUAUEBTZUCIUFUBUGUCABDMNUEBCEOPA
      BDQR $.
  $}

  ${
    $d x A $.
    $( Two ways to express " ` A ` is a singleton."  (Contributed by NM,
       30-Oct-2010.) $)
    eusn $p |- ( E! x x e. A <-> E. x A = { x } ) $=
      ( cv wcel weu cab csn wceq wex euabsn abid2 eqeq1i exbii bitri ) ACZBDZAE
      PAFZOGZHZAIBRHZAIPAJSTAQBRABKLMN $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    rabsnt.1 $e |- B e. _V $.
    rabsnt.2 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( Truth implied by equality of a restricted class abstraction and a
       singleton.  (Contributed by NM, 29-May-2006.)  (Proof shortened by Mario
       Carneiro, 23-Dec-2016.) $)
    rabsnt $p |- ( { x e. A | ph } = { B } -> ps ) $=
      ( crab csn wceq wcel snid id syl5eleqr elrab simprbi syl ) ACDHZEIZJZERKZ
      BTESREFLTMNUAEDKBABCEDGOPQ $.
  $}

  $( Commutative law for unordered pairs.  (Contributed by NM, 15-Jul-1993.) $)
  prcom $p |- { A , B } = { B , A } $=
    ( csn cun cpr uncom df-pr 3eqtr4i ) ACZBCZDJIDABEBAEIJFABGBAGH $.

  $( Equality theorem for unordered pairs.  (Contributed by NM,
     29-Mar-1998.) $)
  preq1 $p |- ( A = B -> { A , C } = { B , C } ) $=
    ( wceq csn cun cpr sneq uneq1d df-pr 3eqtr4g ) ABDZAEZCEZFBEZNFACGBCGLMONAB
    HIACJBCJK $.

  $( Equality theorem for unordered pairs.  (Contributed by NM,
     15-Jul-1993.) $)
  preq2 $p |- ( A = B -> { C , A } = { C , B } ) $=
    ( wceq cpr preq1 prcom 3eqtr4g ) ABDACEBCECAECBEABCFCAGCBGH $.

  $( Equality theorem for unordered pairs.  (Contributed by NM,
     19-Oct-2012.) $)
  preq12 $p |- ( ( A = C /\ B = D ) -> { A , B } = { C , D } ) $=
    ( wceq cpr preq1 preq2 sylan9eq ) ACEBDEABFCBFCDFACBGBDCHI $.

  ${
    preq1i.1 $e |- A = B $.
    $( Equality inference for unordered pairs.  (Contributed by NM,
       19-Oct-2012.) $)
    preq1i $p |- { A , C } = { B , C } $=
      ( wceq cpr preq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality inference for unordered pairs.  (Contributed by NM,
       19-Oct-2012.) $)
    preq2i $p |- { C , A } = { C , B } $=
      ( wceq cpr preq2 ax-mp ) ABECAFCBFEDABCGH $.

    ${
      preq12i.2 $e |- C = D $.
      $( Equality inference for unordered pairs.  (Contributed by NM,
         19-Oct-2012.) $)
      preq12i $p |- { A , C } = { B , D } $=
        ( wceq cpr preq12 mp2an ) ABGCDGACHBDHGEFACBDIJ $.
    $}
  $}

  ${
    preq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for unordered pairs.  (Contributed by NM,
       19-Oct-2012.) $)
    preq1d $p |- ( ph -> { A , C } = { B , C } ) $=
      ( wceq cpr preq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality deduction for unordered pairs.  (Contributed by NM,
       19-Oct-2012.) $)
    preq2d $p |- ( ph -> { C , A } = { C , B } ) $=
      ( wceq cpr preq2 syl ) ABCFDBGDCGFEBCDHI $.

    preq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for unordered pairs.  (Contributed by NM,
       19-Oct-2012.) $)
    preq12d $p |- ( ph -> { A , C } = { B , D } ) $=
      ( wceq cpr preq12 syl2anc ) ABCHDEHBDICEIHFGBDCEJK $.
  $}

  $( Equality theorem for unordered triples.  (Contributed by NM,
     13-Sep-2011.) $)
  tpeq1 $p |- ( A = B -> { A , C , D } = { B , C , D } ) $=
    ( wceq cpr csn cun ctp preq1 uneq1d df-tp 3eqtr4g ) ABEZACFZDGZHBCFZPHACDIB
    CDINOQPABCJKACDLBCDLM $.

  $( Equality theorem for unordered triples.  (Contributed by NM,
     13-Sep-2011.) $)
  tpeq2 $p |- ( A = B -> { C , A , D } = { C , B , D } ) $=
    ( wceq cpr csn cun ctp preq2 uneq1d df-tp 3eqtr4g ) ABEZCAFZDGZHCBFZPHCADIC
    BDINOQPABCJKCADLCBDLM $.

  $( Equality theorem for unordered triples.  (Contributed by NM,
     13-Sep-2011.) $)
  tpeq3 $p |- ( A = B -> { C , D , A } = { C , D , B } ) $=
    ( wceq cpr csn cun ctp sneq uneq2d df-tp 3eqtr4g ) ABEZCDFZAGZHOBGZHCDAICDB
    INPQOABJKCDALCDBLM $.

  ${
    tpeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for unordered triples.  (Contributed by NM,
       22-Jun-2014.) $)
    tpeq1d $p |- ( ph -> { A , C , D } = { B , C , D } ) $=
      ( wceq ctp tpeq1 syl ) ABCGBDEHCDEHGFBCDEIJ $.

    $( Equality theorem for unordered triples.  (Contributed by NM,
       22-Jun-2014.) $)
    tpeq2d $p |- ( ph -> { C , A , D } = { C , B , D } ) $=
      ( wceq ctp tpeq2 syl ) ABCGDBEHDCEHGFBCDEIJ $.

    $( Equality theorem for unordered triples.  (Contributed by NM,
       22-Jun-2014.) $)
    tpeq3d $p |- ( ph -> { C , D , A } = { C , D , B } ) $=
      ( wceq ctp tpeq3 syl ) ABCGDEBHDECHGFBCDEIJ $.

    tpeq123d.2 $e |- ( ph -> C = D ) $.
    tpeq123d.3 $e |- ( ph -> E = F ) $.
    $( Equality theorem for unordered triples.  (Contributed by NM,
       22-Jun-2014.) $)
    tpeq123d $p |- ( ph -> { A , C , E } = { B , D , F } ) $=
      ( ctp tpeq1d tpeq2d tpeq3d 3eqtrd ) ABDFKCDFKCEFKCEGKABCDFHLADECFIMAFGCEJ
      NO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Rotation of the elements of an unordered triple.  (Contributed by Alan
       Sare, 24-Oct-2011.) $)
    tprot $p |- { A , B , C } = { B , C , A } $=
      ( vx cv wceq w3o cab ctp 3orrot abbii dftp2 3eqtr4i ) DEZAFZNBFZNCFZGZDHP
      QOGZDHABCIBCAIRSDOPQJKDABCLDBCALM $.
  $}

  $( Swap 1st and 2nd members of an unordered triple.  (Contributed by NM,
     22-May-2015.) $)
  tpcoma $p |- { A , B , C } = { B , A , C } $=
    ( cpr csn cun ctp prcom uneq1i df-tp 3eqtr4i ) ABDZCEZFBADZMFABCGBACGLNMABH
    IABCJBACJK $.

  $( Swap 2nd and 3rd members of an unordered triple.  (Contributed by NM,
     22-May-2015.) $)
  tpcomb $p |- { A , B , C } = { A , C , B } $=
    ( ctp tpcoma tprot 3eqtr4i ) BCADCBADABCDACBDBCAEABCFACBFG $.

  $( Split off the first element of an unordered triple.  (Contributed by Mario
     Carneiro, 5-Jan-2016.) $)
  tpass $p |- { A , B , C } = ( { A } u. { B , C } ) $=
    ( ctp cpr csn cun df-tp tprot uncom 3eqtr4i ) BCADBCEZAFZGABCDMLGBCAHABCIML
    JK $.

  $( Two ways to write an unordered quadruple.  (Contributed by Mario Carneiro,
     5-Jan-2016.) $)
  qdass $p |- ( { A , B } u. { C , D } ) = ( { A , B , C } u. { D } ) $=
    ( cpr csn cun ctp unass df-tp uneq1i df-pr uneq2i 3eqtr4ri ) ABEZCFZGZDFZGO
    PRGZGABCHZRGOCDEZGOPRITQRABCJKUASOCDLMN $.

  $( Two ways to write an unordered quadruple.  (Contributed by Mario Carneiro,
     5-Jan-2016.) $)
  qdassr $p |- ( { A , B } u. { C , D } ) = ( { A } u. { B , C , D } ) $=
    ( csn cun cpr ctp unass df-pr uneq1i tpass uneq2i 3eqtr4i ) AEZBEZFZCDGZFOP
    RFZFABGZRFOBCDHZFOPRITQRABJKUASOBCDLMN $.

  $( Unordered triple ` { A , A , B } ` is just an overlong way to write
     ` { A , B } ` .  (Contributed by David A. Wheeler, 10-May-2015.) $)
  tpidm12 $p |- { A , A , B } = { A , B } $=
    ( csn cun cpr ctp dfsn2 uneq1i df-pr df-tp 3eqtr4ri ) ACZBCZDAAEZMDABEAABFL
    NMAGHABIAABJK $.

  $( Unordered triple ` { A , B , A } ` is just an overlong way to write
     ` { A , B } ` .  (Contributed by David A. Wheeler, 10-May-2015.) $)
  tpidm13 $p |- { A , B , A } = { A , B } $=
    ( ctp cpr tprot tpidm12 eqtr3i ) AABCABACABDAABEABFG $.

  $( Unordered triple ` { A , B , B } ` is just an overlong way to write
     ` { A , B } ` .  (Contributed by David A. Wheeler, 10-May-2015.) $)
  tpidm23 $p |- { A , B , B } = { A , B } $=
    ( ctp cpr tprot tpidm12 prcom 3eqtri ) ABBCBBACBADABDABBEBAFBAGH $.

  $( Unordered triple ` { A , A , A } ` is just an overlong way to write
     ` { A } ` .  (Contributed by David A. Wheeler, 10-May-2015.) $)
  tpidm $p |- { A , A , A } = { A } $=
    ( ctp cpr csn tpidm12 dfsn2 eqtr4i ) AAABAACADAAEAFG $.

  $( An unordered triple is an unordered pair if one of its elements is
     identical with another element.  (Contributed by Alexander van der Vekens,
     6-Oct-2017.) $)
  tppreq3 $p |- ( B = C -> { A , B , C } = { A , B } ) $=
    ( wceq ctp cpr tpeq3 eqcoms tpidm23 syl6eq ) BCDABCEZABBEZABFKLDCBCBABGHABI
    J $.

  $( An unordered pair contains its first member.  Part of Theorem 7.6 of
     [Quine] p. 49.  (Contributed by Stefan Allan, 8-Nov-2008.) $)
  prid1g $p |- ( A e. V -> A e. { A , B } ) $=
    ( wcel cpr wceq wo eqid orci elprg mpbiri ) ACDAABEDAAFZABFZGLMAHIAABCJK $.

  $( An unordered pair contains its second member.  Part of Theorem 7.6 of
     [Quine] p. 49.  (Contributed by Stefan Allan, 8-Nov-2008.) $)
  prid2g $p |- ( B e. V -> B e. { A , B } ) $=
    ( wcel cpr prid1g prcom syl6eleq ) BCDBBAEABEBACFBAGH $.

  ${
    prid1.1 $e |- A e. _V $.
    $( An unordered pair contains its first member.  Part of Theorem 7.6 of
       [Quine] p. 49.  (Contributed by NM, 24-Jun-1993.) $)
    prid1 $p |- A e. { A , B } $=
      ( cvv wcel cpr prid1g ax-mp ) ADEAABFECABDGH $.
  $}

  ${
    prid2.1 $e |- B e. _V $.
    $( An unordered pair contains its second member.  Part of Theorem 7.6 of
       [Quine] p. 49.  (Note: the proof from ~ prid2g and ~ ax-mp has one fewer
       essential step but one more total step.)  (Contributed by NM,
       5-Aug-1993.) $)
    prid2 $p |- B e. { A , B } $=
      ( cpr prid1 prcom eleqtri ) BBADABDBACEBAFG $.
  $}

  $( An unordered pair is a singleton or a subset of itself.  This theorem is
     helpful to convert theorems about walks in arbitrary graphs into theorems
     about walks in pseudographs.  (Contributed by AV, 27-Feb-2021.) $)
  ifpprsnss $p |- ( P = { A , B }
                    -> if- ( A = B , P = { A } , { A , B } C_ P ) ) $=
    ( cpr wceq csn wss preq2 dfsn2 syl6eqr eqcoms eqeq2d biimpac eqimss2 adantr
    wn ifpimpda ) CABDZEZABEZCAFZEZRCGZTSUBTRUACRUAEBABAERAADUABAAHAIJKLMSUCTPR
    CNOQ $.

  $( A proper class vanishes in an unordered pair.  (Contributed by NM,
     15-Jul-1993.) $)
  prprc1 $p |- ( -. A e. _V -> { A , B } = { B } ) $=
    ( cvv wcel wn csn c0 wceq cpr snprc cun uneq1 df-pr uncom un0 3eqtr4g sylbi
    eqtr2i ) ACDEAFZGHZABIZBFZHAJTSUBKGUBKZUAUBSGUBLABMUCUBGKUBGUBNUBORPQ $.

  $( A proper class vanishes in an unordered pair.  (Contributed by NM,
     22-Mar-2006.) $)
  prprc2 $p |- ( -. B e. _V -> { A , B } = { A } ) $=
    ( cvv wcel wn cpr csn prcom prprc1 syl5eq ) BCDEABFBAFAGABHBAIJ $.

  $( An unordered pair containing two proper classes is the empty set.
     (Contributed by NM, 22-Mar-2006.) $)
  prprc $p |- ( ( -. A e. _V /\ -. B e. _V ) -> { A , B } = (/) ) $=
    ( cvv wcel wn cpr csn c0 prprc1 wceq snprc biimpi sylan9eq ) ACDEBCDEZABFBG
    ZHABINOHJBKLM $.

  ${
    tpid1.1 $e |- A e. _V $.
    $( One of the three elements of an unordered triple.  (Contributed by NM,
       7-Apr-1994.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    tpid1 $p |- A e. { A , B , C } $=
      ( ctp wcel wceq w3o eqid 3mix1i eltp mpbir ) AABCEFAAGZABGZACGZHMNOAIJAAB
      CDKL $.
  $}

  ${
    tpid2.1 $e |- B e. _V $.
    $( One of the three elements of an unordered triple.  (Contributed by NM,
       7-Apr-1994.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    tpid2 $p |- B e. { A , B , C } $=
      ( ctp wcel wceq w3o eqid 3mix2i eltp mpbir ) BABCEFBAGZBBGZBCGZHNMOBIJBAB
      CDKL $.
  $}

  $( Closed theorem form of ~ tpid3 .  (Contributed by Alan Sare, 24-Oct-2011.)
     (Proof shortened by JJ, 30-Apr-2021.) $)
  tpid3g $p |- ( A e. B -> A e. { C , D , A } ) $=
    ( wcel ctp wceq w3o eqid 3mix3i eltpg mpbiri ) ABEACDAFEACGZADGZAAGZHOMNAIJ
    ACDABKL $.

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.
    $( Obsolete proof of ~ tpid3g as of 30-Apr-2021.  Closed theorem form of
       ~ tpid3 .  This proof was automatically generated from the virtual
       deduction proof ~ tpid3gVD using a translation program.  (Contributed by
       Alan Sare, 24-Oct-2011.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    tpid3gOLD $p |- ( A e. B -> A e. { C , D , A } ) $=
      ( vx wcel cv wceq wex ctp elisset w3o cab wi 3mix3 a1i abid syl6ibr dftp2
      eleq2i eleq1 mpbidi exlimdv mpd ) ABFZEGZAHZEIACDAJZFZEABKUEUGUIEUGUFUHFZ
      UIUEUEUGUFUFCHZUFDHZUGLZEMZFZUJUEUGUMUOUGUMNUEUGUKULOPUMEQRUHUNUFECDASTRU
      FAUHUAUBUCUD $.
  $}

  ${
    tpid3.1 $e |- C e. _V $.
    $( One of the three elements of an unordered triple.  (Contributed by NM,
       7-Apr-1994.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.)  (Proof
       shortened by JJ, 30-Apr-2021.) $)
    tpid3 $p |- C e. { A , B , C } $=
      ( cvv wcel ctp tpid3g ax-mp ) CEFCABCGFDCEABHI $.
  $}

  $( The singleton of a set is not empty.  (Contributed by NM, 14-Dec-2008.) $)
  snnzg $p |- ( A e. V -> { A } =/= (/) ) $=
    ( wcel csn c0 wne snidg ne0i syl ) ABCAADZCJEFABGJAHI $.

  ${
    snnz.1 $e |- A e. _V $.
    $( The singleton of a set is not empty.  (Contributed by NM,
       10-Apr-1994.) $)
    snnz $p |- { A } =/= (/) $=
      ( cvv wcel csn c0 wne snnzg ax-mp ) ACDAEFGBACHI $.
  $}

  ${
    prnz.1 $e |- A e. _V $.
    $( A pair containing a set is not empty.  (Contributed by NM,
       9-Apr-1994.) $)
    prnz $p |- { A , B } =/= (/) $=
      ( cpr prid1 ne0ii ) AABDABCEF $.
  $}

  $( A pair containing a set is not empty.  (Contributed by FL, 19-Sep-2011.)
     (Proof shortened by JJ, 23-Jul-2021.) $)
  prnzg $p |- ( A e. V -> { A , B } =/= (/) ) $=
    ( wcel cpr c0 wne prid1g ne0i syl ) ACDAABEZDKFGABCHKAIJ $.

  ${
    $d x A $.  $d x B $.
    $( Obsolete proof of ~ prnzg as of 23-Jul-2021.  (Contributed by FL,
       19-Sep-2011.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    prnzgOLD $p |- ( A e. V -> { A , B } =/= (/) ) $=
      ( vx cv cpr c0 wne wceq preq1 neeq1d vex prnz vtoclg ) DEZBFZGHABFZGHDACO
      AIPQGOABJKOBDLMN $.
  $}

  ${
    tpnz.1 $e |- A e. _V $.
    $( A triplet containing a set is not empty.  (Contributed by NM,
       10-Apr-1994.) $)
    tpnz $p |- { A , B , C } =/= (/) $=
      ( ctp tpid1 ne0ii ) AABCEABCDFG $.
  $}

  ${
    tpnzd.1 $e |- ( ph -> A e. V ) $.
    $( A triplet containing a set is not empty.  (Contributed by Thierry
       Arnoux, 8-Apr-2019.) $)
    tpnzd $p |- ( ph -> { A , B , C } =/= (/) ) $=
      ( wcel ctp c0 wne tpid3g tprot syl6eleqr ne0i 3syl ) ABEGZBBCDHZGQIJFPBCD
      BHQBECDKBCDLMQBNO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.  $d x ch $.  $d x th $.
    $d x ta $.
    ralprd.1 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    ralprd.2 $e |- ( ( ph /\ x = B ) -> ( ps <-> th ) ) $.
    raltpd.3 $e |- ( ( ph /\ x = C ) -> ( ps <-> ta ) ) $.
    ralprd.a $e |- ( ph -> A e. V ) $.
    ralprd.b $e |- ( ph -> B e. W ) $.
    raltpd.c $e |- ( ph -> C e. X ) $.
    $( Convert a quantification over a triple to a conjunction.  (Contributed
       by Thierry Arnoux, 8-Apr-2019.) $)
    raltpd $p |- ( ph -> ( A. x e. { A , B , C } ps <-> ( ch /\ th /\ ta ) ) )
      $=
      ( wa wb ctp wral w3a an3andi a1i wcel cv expcom pm5.32d raltpg syl3anc c0
      wceq wne tpnzd r19.28zv syl 3bitr2d bianabs bicomd ) ABFGHIUAZUBZCDEUCZAA
      VCSZVBAVDVBAVDACSZADSZAESZUCZABSZFVAUBZAVBSZVDVHTAACDEUDUEAGJUFHKUFILUFVJ
      VHTPQRVIVEVFVGFGHIJKLFUGZGUMZABCAVMBCTMUHUIVLHUMZABDAVNBDTNUHUIVLIUMZABEA
      VOBETOUHUIUJUKAVAULUNVJVKTAGHIJPUOABFVAUPUQURUSUTUS $.
  $}

  ${
    $d A x $.  $d B x $.
    $( The singleton of an element of a class is a subset of the class (general
       form of ~ snss ).  Theorem 7.4 of [Quine] p. 49.  (Contributed by NM,
       22-Jul-2001.) $)
    snssg $p |- ( A e. V -> ( A e. B <-> { A } C_ B ) ) $=
      ( vx wcel cv csn wi wal wceq wss wb velsn imbi1i albii a1i dfss2 3bitr4rd
      clel2g ) ACEZDFZAGZEZUABEZHZDIZUAAJZUDHZDIZUBBKZABEUFUILTUEUHDUCUGUDDAMNO
      PUJUFLTDUBBQPDABCSR $.
  $}

  ${
    $d A x $.  $d B x $.
    snss.1 $e |- A e. _V $.
    $( The singleton of an element of a class is a subset of the class
       (inference form of ~ snssg ).  Theorem 7.4 of [Quine] p. 49.
       (Contributed by NM, 21-Jun-1993.) $)
    snss $p |- ( A e. B <-> { A } C_ B ) $=
      ( cvv wcel csn wss wb snssg ax-mp ) ADEABEAFBGHCABDIJ $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Obsolete proof of ~ snssg as of 12-Feb-2022.  (Contributed by NM,
       22-Jul-2001.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    snssgOLD $p |- ( A e. V -> ( A e. B <-> { A } C_ B ) ) $=
      ( vx cv wcel csn wss eleq1 wceq sneq sseq1d vex snss vtoclbg ) DEZBFPGZBH
      ABFAGZBHDACPABIPAJQRBPAKLPBDMNO $.
  $}

  $( Membership in a set with an element removed.  (Contributed by NM,
     10-Oct-2007.) $)
  eldifsn $p |- ( A e. ( B \ { C } ) <-> ( A e. B /\ A =/= C ) ) $=
    ( csn cdif wcel wn wa wne eldif elsng necon3bbid pm5.32i bitri ) ABCDZEFABF
    ZAOFZGZHPACIZHABOJPRSPQACACBKLMN $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Subset of a set with an element removed.  (Contributed by Emmett Weisz,
       7-Jul-2021.) $)
    ssdifsn $p |- ( A C_ ( B \ { C } ) <-> ( A C_ B /\ -. C e. A ) ) $=
      ( vx csn cdif wss cv wcel wral wne wa wn dfss3 ralbii bitri r19.26 bicomi
      eldifsn neirr neeq1 rspccv mtoi nelelne ralrimiv impbii anbi12i ) ABCEFZG
      ZDHZBIZDAJZUJCKZDAJZLZABGZCAIZMZLUIUKUMLZDAJZUOUIUJUHIZDAJUTDAUHNVAUSDAUJ
      BCSOPUKUMDAQPULUPUNURUPULDABNRUNURUNUQCCKZCTUMVBDCAUJCCUAUBUCURUMDACAUJUD
      UEUFUGP $.
  $}

  ${
    $d A x $.  $d S x $.  $d V x $.  $d W x $.
    $( A subset of a set is an element of the power set of the difference of
       the set with a singleton if the subset does not contain the singleton
       element.  (Contributed by AV, 10-Jan-2020.) $)
    elpwdifsn $p |- ( ( S e. W /\ S C_ V /\ A e/ S )
                      -> S e. ~P ( V \ { A } ) ) $=
      ( vx wcel wss wnel w3a csn cdif cpw cv wa wne simp2 sselda df-nel biimpi
      wn 3ad2ant3 anim1i ancomd nelne2 eldifsn sylanbrc ex ssrdv elpwg 3ad2ant1
      syl wb mpbird ) BDFZBCGZABHZIZBCAJKZLFZBURGZUQEBURUQEMZBFZVAURFZUQVBNZVAC
      FVAAOZVCUQBCVAUNUOUPPQVDVBABFTZNVEVDVFVBUQVFVBUPUNVFUOUPVFABRSUAUBUCVAABU
      DUKVACAUEUFUGUHUNUOUSUTULUPBURDUIUJUM $.
  $}

  $( Membership in a set with an element removed.  (Contributed by NM,
     10-Mar-2015.) $)
  eldifsni $p |- ( A e. ( B \ { C } ) -> A =/= C ) $=
    ( csn cdif wcel wne eldifsn simprbi ) ABCDEFABFACGABCHI $.

  $( The class ` A ` is not in ` ( B \ { A } ) ` .  (Contributed by David
     Moews, 1-May-2017.) $)
  neldifsn $p |- -. A e. ( B \ { A } ) $=
    ( csn cdif wcel wne neirr eldifsni mto ) ABACDEAAFAGABAHI $.

  $( The class ` A ` is not in ` ( B \ { A } ) ` .  Deduction form.
     (Contributed by David Moews, 1-May-2017.) $)
  neldifsnd $p |- ( ph -> -. A e. ( B \ { A } ) ) $=
    ( csn cdif wcel wn neldifsn a1i ) BCBDEFGABCHI $.

  $( Restricted existential quantification over a set with an element removed.
     (Contributed by NM, 4-Feb-2015.) $)
  rexdifsn $p |- ( E. x e. ( A \ { B } ) ph
      <-> E. x e. A ( x =/= B /\ ph ) ) $=
    ( cv wne wa csn cdif wcel eldifsn anbi1i anass bitri rexbii2 ) ABEZDFZAGZBC
    DHIZCPSJZAGPCJZQGZAGUARGTUBAPCDKLUAQAMNO $.

  $( Rearrangement of a property of a singleton difference.  (Contributed by
     Stefan O'Rear, 27-Feb-2015.) $)
  raldifsni $p |- ( A. x e. ( A \ { B } ) -. ph <->
      A. x e. A ( ph -> x = B ) ) $=
    ( wn cv wceq wi csn cdif wcel wne eldifsn imbi1i impexp df-ne con34b bitr4i
    wa imbi2i 3bitri ralbii2 ) AEZABFZDGZHZBCDIJZCUDUGKZUCHUDCKZUDDLZSZUCHUIUJU
    CHZHUIUFHUHUKUCUDCDMNUIUJUCOULUFUIULUEEZUCHUFUJUMUCUDDPNAUEQRTUAUB $.

  ${
    $d x Y $.
    $( Restricted universal quantification on a class difference with a
       singleton in terms of an implication.  (Contributed by Alexander van der
       Vekens, 26-Jan-2018.) $)
    raldifsnb $p |- ( A. x e. A ( x =/= Y -> ph )
                      <-> A. x e. ( A \ { Y } ) ph ) $=
      ( cv wne wi wral csn wnel cdif wcel wceq wn velsn nnel nne con4bii imbi1i
      3bitr4ri ralbii raldifb bitri ) BEZDFZAGZBCHUDDIZJZAGZBCHABCUGKHUFUIBCUEU
      HAUEUHUDUGLUDDMUHNUENBDOUDUGPUDDQTRSUAABCUGUBUC $.
  $}

  $( A set is an element of the universal class excluding a singleton iff it is
     not the singleton element.  (Contributed by AV, 7-Apr-2019.) $)
  eldifvsn $p |- ( A e. V -> ( A e. ( _V \ { B } ) <-> A =/= B ) ) $=
    ( wcel wne cvv wa csn cdif elex biantrurd eldifsn syl6rbbr ) ACDZABEZAFDZOG
    AFBHIDNPOACJKAFBLM $.

  ${
    $d A x $.  $d B x $.
    $( An element not in a set can be removed without affecting the set.
       (Contributed by NM, 16-Mar-2006.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    difsn $p |- ( -. A e. B -> ( B \ { A } ) = B ) $=
      ( vx wcel wn csn cdif cv wne wa eldifsn simpl nelelne ancld impbid2 eqrdv
      syl5bb ) ABDEZCBAFGZBCHZSDTBDZTAIZJZRUATBAKRUCUAUAUBLRUAUBABTMNOQP $.

    $( Removal of a singleton from an unordered pair.  (Contributed by NM,
       16-Mar-2006.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    difprsnss $p |- ( { A , B } \ { A } ) C_ { B } $=
      ( vx cpr csn cdif cv wcel wn wa wceq vex elpr velsn notbii biorf biimparc
      wo syl2anb eldif 3imtr4i ssriv ) CABDZAEZFZBEZCGZUCHZUGUDHZIZJUGBKZUGUEHU
      GUFHUHUGAKZUKRZULIZUKUJUGABCLMUIULCANOUNUKUMULUKPQSUGUCUDTCBNUAUB $.
  $}

  $( Removal of a singleton from an unordered pair.  (Contributed by Thierry
     Arnoux, 4-Feb-2017.) $)
  difprsn1 $p |- ( A =/= B -> ( { A , B } \ { A } ) = { B } ) $=
    ( wne cpr csn cdif wceq necom cin c0 disjsn2 disj3 sylib cun df-pr equncomi
    difeq1i difun2 eqtri syl6reqr sylbir ) ABCBACZABDZAEZFZBEZGBAHUBUFUFUDFZUEU
    BUFUDIJGUFUGGBAKUFUDLMUEUFUDNZUDFUGUCUHUDUCUDUFABOPQUFUDRSTUA $.

  $( Removal of a singleton from an unordered pair.  (Contributed by Alexander
     van der Vekens, 5-Oct-2017.) $)
  difprsn2 $p |- ( A =/= B -> ( { A , B } \ { B } ) = { A } ) $=
    ( wne cpr csn cdif prcom difeq1i wceq necom difprsn1 sylbi syl5eq ) ABCZABD
    ZBEZFBADZPFZAEZOQPABGHNBACRSIABJBAKLM $.

  $( Removal of a singleton from an unordered triple.  (Contributed by
     Alexander van der Vekens, 5-Oct-2017.)  (Proof shortened by JJ,
     23-Jul-2021.) $)
  diftpsn3 $p |- ( ( A =/= C /\ B =/= C )
                    -> ( { A , B , C } \ { C } ) = { A , B } ) $=
    ( wne wa cpr csn cdif cun c0 ctp cin wceq disjprsn disj3 sylib eqcomd difid
    a1i uneq12d df-tp difeq1i difundir eqtr2i un0 3eqtr3g ) ACDBCDEZABFZCGZHZUI
    UIHZIZUHJIABCKZUIHZUHUGUJUHUKJUGUHUJUGUHUILJMUHUJMABCNUHUIOPQUKJMUGUIRSTUNU
    HUIIZUIHULUMUOUIABCUAUBUHUIUIUCUDUHUEUF $.

  $( Obsolete proof of ~ diftpsn3 as of 23-Jul-2021.  (Contributed by Alexander
     van der Vekens, 5-Oct-2017.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  diftpsn3OLD $p |- ( ( A =/= C /\ B =/= C )
                    -> ( { A , B , C } \ { C } ) = { A , B } ) $=
    ( wne wa ctp csn cdif cpr cun a1i c0 cin necom disjsn2 sylbi uneq12d syl6eq
    wceq 3eqtrd df-tp difeq1d df-pr ineq1d incom indi eqtri adantr adantl unidm
    difundir disj3 sylib eqcomd difid un0 ) ACDZBCDZEZABCFZCGZHABIZVAJZVAHZVBVA
    HZVAVAHZJZVBUSUTVCVAUTVCSUSABCUAKUBVDVGSUSVBVAVAUKKUSVGVBLJVBUSVEVBVFLUSVBV
    EUSVBVAMZLSVBVESUSVHAGZBGZJZVAMZVAVIMZVAVJMZJZLUSVBVKVAVBVKSUSABUCKUDVLVOSU
    SVLVAVKMVOVKVAUEVAVIVJUFUGKUSVOLLJLUSVMLVNLUQVMLSZURUQCADVPACNCAOPUHURVNLSZ
    UQURCBDVQBCNCBOPUIQLUJRTVBVAULUMUNVFLSUSVAUOKQVBUPRT $.

  $( Removing two elements as pair of elements corresponds to removing each of
     the two elements as singletons.  (Contributed by Alexander van der Vekens,
     13-Jul-2018.) $)
  difpr $p |- ( A \ { B , C } ) = ( ( A \ { B } ) \ { C } ) $=
    ( cpr cdif csn cun df-pr difeq2i difun1 eqtri ) ABCDZEABFZCFZGZEAMENELOABCH
    IAMNJK $.

  $( An unordered triple is an unordered pair if one of its elements is a
     proper class or is identical with another element.  (Contributed by
     Alexander van der Vekens, 6-Oct-2017.) $)
  tpprceq3 $p |- ( -. ( C e. _V /\ C =/= B ) -> { A , B , C } = { A , B } ) $=
    ( cvv wcel wne wa wn wo ctp cpr wceq ianor csn cun prprc2 tprot eqtri sylbi
    uneq1d df-tp prcom df-pr 3eqtr4g nne tppreq3 eqcoms jaoi ) CDEZCBFZGHUIHZUJ
    HZIABCJZABKZLZUIUJMUKUOULUKBCKZANZOZBNZUQOZUMUNUKUPUSUQBCPTUMBCAJURABCQBCAU
    ARUNBAKUTABUBBAUCRUDULCBLUOCBUEUOBCABCUFUGSUHS $.

  $( An unordered triple is an unordered pair if and only if one of its
     elements is a proper class or is identical with one of the another
     elements.  (Contributed by Alexander van der Vekens, 15-Jan-2018.) $)
  tppreqb $p |- ( -. ( C e. _V /\ C =/= A /\ C =/= B )
                     <-> { A , B , C } = { A , B } ) $=
    ( cvv wcel wne w3a wn ctp cpr wceq wo w3o wa ianor tpprceq3 sylbir jaoi nne
    sylbi 3ianor df-3or bitri orass tpcoma prcom 3eqtr3g orcom bitr4i csn df-tp
    cun eqeq1i wss ssequn2 wi snssg elpri 3mix2 3mix3 syl syl6bir 3mix1 pm2.61i
    orcs a1d sylibr impbii ) CDEZCAFZCBFZGHZABCIZABJZKZVLVIHZVJHZLZVKHZLZVOVLVP
    VQVSMZVTVIVJVKUAZVPVQVSUBUCVTVPVOVTVPLVRVSVPLZLVOVRVSVPUDVRVOWCVRBACIZBAJZV
    MVNVRVIVJNHWDWEKVIVJOBACPQBACUEBAUFUGWCVIVKNHZVOWCVPVSLWFVSVPUHVIVKOUIABCPT
    RTVETVOVNCUJZULZVNKZVLVMWHVNABCUKUMWIWGVNUNZVLWGVNUOWJWAVLVIWJWAUPVIWJCVNEZ
    WACVNDUQWKCAKZCBKZLWACABURWLWAWMWLVQWACASVQVPVSUSQWMVSWACBSVSVPVQUTQRVAVBVP
    WAWJVPVQVSVCVFVDWBVGQTVH $.

  $( ` ( B \ { A } ) ` equals ` B ` if and only if ` A ` is not a member of
     ` B ` .  Generalization of ~ difsn .  (Contributed by David Moews,
     1-May-2017.) $)
  difsnb $p |- ( -. A e. B <-> ( B \ { A } ) = B ) $=
    ( wcel wn csn cdif wceq difsn neldifsnd nelne1 mpdan necomd necon2bi impbii
    wne ) ABCZDBAEFZBGABHPQBPBQPAQCDBQOPABIABQJKLMN $.

  $( ` ( B \ { A } ) ` is a proper subclass of ` B ` if and only if ` A ` is a
     member of ` B ` .  (Contributed by David Moews, 1-May-2017.) $)
  difsnpss $p |- ( A e. B <-> ( B \ { A } ) C. B ) $=
    ( wcel wn csn cdif wpss notnotb wne wss wa difss biantrur difsnb necon3bbii
    df-pss 3bitr4i bitri ) ABCZSDZDZBAEZFZBGZSHUCBIZUCBJZUEKUAUDUFUEBUBLMTUCBAB
    NOUCBPQR $.

  $( The singleton of an element of a class is a subset of the class.
     (Contributed by NM, 6-Jun-1994.) $)
  snssi $p |- ( A e. B -> { A } C_ B ) $=
    ( wcel csn wss snssg ibi ) ABCADBEABBFG $.

  ${
    snssd.1 $e |- ( ph -> A e. B ) $.
    $( The singleton of an element of a class is a subset of the class
       (deduction rule).  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) $)
    snssd $p |- ( ph -> { A } C_ B ) $=
      ( wcel csn wss snssi syl ) ABCEBFCGDBCHI $.
  $}

  $( If we remove a single element from a class then put it back in, we end up
     with the original class.  (Contributed by NM, 2-Oct-2006.) $)
  difsnid $p |- ( B e. A -> ( ( A \ { B } ) u. { B } ) = A ) $=
    ( wcel csn cdif cun uncom wss wceq snssi undif sylib syl5eq ) BACZABDZEZOFO
    PFZAPOGNOAHQAIBAJOAKLM $.

  $( An element of a difference set is an element of the difference with a
     singleton.  (Contributed by AV, 2-Jan-2022.) $)
  eldifeldifsn $p |- ( ( X e. A /\ Y e. ( B \ A ) ) -> Y e. ( B \ { X } ) ) $=
    ( wcel cdif csn snssi sscond sselda ) CAEZBAFBCGZFDKLABCAHIJ $.

  $( Compute the power set of the empty set.  Theorem 89 of [Suppes] p. 47.
     (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
     29-Jun-2011.) $)
  pw0 $p |- ~P (/) = { (/) } $=
    ( vx cv c0 wss cab wceq cpw csn ss0b abbii df-pw df-sn 3eqtr4i ) ABZCDZAENC
    FZAECGCHOPANIJACKACLM $.

  ${
    $d x y $.
    $( Compute the power set of the power set of the empty set.  (See ~ pw0 for
       the power set of the empty set.)  Theorem 90 of [Suppes] p. 48.
       Although this theorem is a special case of ~ pwsn , we have chosen to
       show a direct elementary proof.  (Contributed by NM, 7-Aug-1994.) $)
    pwpw0 $p |- ~P { (/) } = { (/) , { (/) } } $=
      ( vx vy cv c0 csn wss cab wceq wo cpw cpr wn wa wcel wi dfss2 velsn sylbi
      wal wex imbi2i albii bitri neq0 exintr syl5bi exancom df-clel bitr4i syl6
      snssi anc2li eqss syl6ibr orrd 0ss sseq1 mpbiri eqimss impbii abbii df-pw
      jaoi dfpr2 3eqtr4i ) ACZDEZFZAGVFDHZVFVGHZIZAGVGJDVGKVHVKAVHVKVHVIVJVHVIL
      ZVHVGVFFZMVJVHVLVMVHBCZVFNZVNDHZOZBSZVLVMOVHVOVNVGNZOZBSVRBVFVGPVTVQBVSVP
      VOBDQUAUBUCVRVLVOVPMBTZVMVLVOBTVRWABVFUDVOVPBUEUFWADVFNZVMWAVPVOMBTWBVOVP
      BUGBDVFUHUIDVFUKRUJRULVFVGUMUNUOVIVHVJVIVHDVGFVGUPVFDVGUQURVFVGUSVCUTVAAV
      GVBADVGVDVE $.
  $}

  $( A singleton is a subset of an unordered pair containing its member.
     (Contributed by NM, 27-Aug-2004.) $)
  snsspr1 $p |- { A } C_ { A , B } $=
    ( csn cun cpr ssun1 df-pr sseqtr4i ) ACZIBCZDABEIJFABGH $.

  $( A singleton is a subset of an unordered pair containing its member.
     (Contributed by NM, 2-May-2009.) $)
  snsspr2 $p |- { B } C_ { A , B } $=
    ( csn cun cpr ssun2 df-pr sseqtr4i ) BCZACZIDABEIJFABGH $.

  $( A singleton is a subset of an unordered triple containing its member.
     (Contributed by NM, 9-Oct-2013.) $)
  snsstp1 $p |- { A } C_ { A , B , C } $=
    ( csn cpr cun ctp snsspr1 ssun1 sstri df-tp sseqtr4i ) ADZABEZCDZFZABCGMNPA
    BHNOIJABCKL $.

  $( A singleton is a subset of an unordered triple containing its member.
     (Contributed by NM, 9-Oct-2013.) $)
  snsstp2 $p |- { B } C_ { A , B , C } $=
    ( csn cpr cun ctp snsspr2 ssun1 sstri df-tp sseqtr4i ) BDZABEZCDZFZABCGMNPA
    BHNOIJABCKL $.

  $( A singleton is a subset of an unordered triple containing its member.
     (Contributed by NM, 9-Oct-2013.) $)
  snsstp3 $p |- { C } C_ { A , B , C } $=
    ( csn cpr cun ctp ssun2 df-tp sseqtr4i ) CDZABEZKFABCGKLHABCIJ $.

  $( A pair of elements of a class is a subset of the class.  Theorem 7.5 of
     [Quine] p. 49.  (Contributed by NM, 22-Mar-2006.)  (Proof shortened by
     Andrew Salmon, 29-Jun-2011.) $)
  prssg $p |- ( ( A e. V /\ B e. W )
              -> ( ( A e. C /\ B e. C ) <-> { A , B } C_ C ) ) $=
    ( wcel wa csn wss cpr snssg bi2anan9 cun unss df-pr sseq1i bitr4i syl6bb )
    ADFZBEFZGACFZBCFZGAHZCIZBHZCIZGZABJZCIZSUAUDTUBUFACDKBCEKLUGUCUEMZCIUIUCUEC
    NUHUJCABOPQR $.

  ${
    prss.1 $e |- A e. _V $.
    prss.2 $e |- B e. _V $.
    $( A pair of elements of a class is a subset of the class.  Theorem 7.5 of
       [Quine] p. 49.  (Contributed by NM, 30-May-1994.)  (Proof shortened by
       Andrew Salmon, 29-Jun-2011.)  (Proof shortened by JJ, 23-Jul-2021.) $)
    prss $p |- ( ( A e. C /\ B e. C ) <-> { A , B } C_ C ) $=
      ( cvv wcel wa cpr wss wb prssg mp2an ) AFGBFGACGBCGHABICJKDEABCFFLM $.

    $( Obsolete proof of ~ prss as of 23-Jul-2021.  (Contributed by NM,
       30-May-1994.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    prssOLD $p |- ( ( A e. C /\ B e. C ) <-> { A , B } C_ C ) $=
      ( csn wss wa cun wcel cpr unss snss anbi12i df-pr sseq1i 3bitr4i ) AFZCGZ
      BFZCGZHRTIZCGACJZBCJZHABKZCGRTCLUCSUDUAACDMBCEMNUEUBCABOPQ $.
  $}

  $( A pair of elements of a class is a subset of the class.  (Contributed by
     NM, 16-Jan-2015.) $)
  prssi $p |- ( ( A e. C /\ B e. C ) -> { A , B } C_ C ) $=
    ( wcel wa cpr wss prssg ibi ) ACDBCDEABFCGABCCCHI $.

  ${
    prssd.1 $e |- ( ph -> A e. C ) $.
    prssd.2 $e |- ( ph -> B e. C ) $.
    $( Deduction version of ~ prssi :  A pair of elements of a class is a
       subset of the class.  (Contributed by Glauco Siliprandi,
       17-Aug-2020.) $)
    prssd $p |- ( ph -> { A , B } C_ C ) $=
      ( wcel cpr wss prssi syl2anc ) ABDGCDGBCHDIEFBCDJK $.
  $}

  $( An unordered pair belongs to the power class of a class iff each member
     belongs to the class.  (Contributed by Thierry Arnoux, 3-Oct-2016.)
     (Revised by NM, 18-Jan-2018.) $)
  prsspwg $p |- ( ( A e. V /\ B e. W ) -> ( { A , B } C_ ~P C
      <-> ( A C_ C /\ B C_ C ) ) ) $=
    ( wcel wa cpw cpr wss prssg elpwg bi2anan9 bitr3d ) ADFZBEFZGACHZFZBQFZGABI
    QJACJZBCJZGABQDEKORTPSUAACDLBCELMN $.

  $( A pair as subset of a pair.  (Contributed by AV, 26-Oct-2020.) $)
  ssprss $p |- ( ( A e. V /\ B e. W ) -> ( { A , B } C_ { C , D }
                        <-> ( ( A = C \/ A = D ) /\ ( B = C \/ B = D ) ) ) ) $=
    ( wcel wa cpr wss wceq wo prssg elprg bi2anan9 bitr3d ) AEGZBFGZHACDIZGZBSG
    ZHABISJACKADKLZBCKBDKLZHABSEFMQTUBRUAUCACDENBCDFNOP $.

  $( A proper pair is a subset of a pair iff it is equal to the superset.
     (Contributed by AV, 26-Oct-2020.) $)
  ssprsseq $p |- ( ( A e. V /\ B e. W /\ A =/= B ) -> ( { A , B } C_ { C , D }
                                               <-> { A , B } = { C , D } ) ) $=
    ( wcel wne w3a cpr wceq wo wa wi eqtr3 syl11 3ad2ant3 com12 preq12 a1d wss
    wb ssprss 3adant3 eqneqall prcom syl6eq ccase sylbid eqimss impbid1 ) AEGZB
    FGZABHZIZABJZCDJZUAZUPUQKZUOURACKZADKZLBCKZBDKZLMZUSULUMURVDUBUNABCDEFUCUDV
    DUOUSUTVBVAVCUOUSNUOUTVBMZUSUNULVEUSNUMABKZUNUSVEUSABUEZABCOPQRVAVBMZUSUOVH
    UPDCJUQABDCSDCUFUGTUTVCMUSUOABCDSTUOVAVCMZUSUNULVIUSNUMVFUNUSVIVGABDOPQRUHR
    UIUPUQUJUK $.

  ${
    $d x A $.  $d x B $.
    $( The subsets of a singleton.  (Contributed by NM, 24-Apr-2004.) $)
    sssn $p |- ( A C_ { B } <-> ( A = (/) \/ A = { B } ) ) $=
      ( vx csn wss c0 wceq wo wn wa wcel cv wex neq0 ssel elsni syl6 eleq1 ibd
      wb exlimdv syl5bi snssi anc2li eqss syl6ibr orrd sseq1 mpbiri eqimss jaoi
      0ss impbii ) ABDZEZAFGZAUNGZHUOUPUQUOUPIZUOUNAEZJUQUOURUSUOURBAKZUSURCLZA
      KZCMUOUTCANUOVBUTCUOVBUTUOVBVABGZVBUTTUOVBVAUNKVCAUNVAOVABPQVABARQSUAUBBA
      UCQUDAUNUEUFUGUPUOUQUPUOFUNEUNULAFUNUHUIAUNUJUKUM $.

    $( The property of being sandwiched between two sets naturally splits under
       union with a singleton.  This is the induction hypothesis for the
       determination of large powersets such as ~ pwtp .  (Contributed by Mario
       Carneiro, 2-Jul-2016.) $)
    ssunsn2 $p |- ( ( B C_ A /\ A C_ ( C u. { D } ) )
                    <-> ( ( B C_ A /\ A C_ C ) \/
                      ( ( B u. { D } ) C_ A /\ A C_ ( C u. { D } ) ) ) ) $=
      ( wcel wss csn cun wa wo wb syl wi anim12d pm4.72 sylib bitrd wceq bitr3i
      a1i snssi unss bicomi rbaibr anbi1d biimpi expcom ssun3 wn cdif c0 disjsn
      cin disj3 sseq1 sylbi uncom sseq2i ssundif syl6rbbr anbi2d simplbi biimpd
      orcom syl6bb pm2.61i ) DAEZBAFZACDGZHZFZIZVHACFZIZBVIHAFZVKIZJZKVGVLVPVQV
      GVHVOVKVGVIAFZVHVOKDAUAZVOVHVRVHVRIZVOBVIAUBZUCZUDLUEVGVNVPMVPVQKVGVHVOVM
      VKVGVRVHVOMVSVHVRVOVTVOWAUFUGLVMVKMVGACVIUHTNVNVPOPQVGUIZVLVNVQWCVKVMVHWC
      VMAVIUJZCFZVKWCAWDRZVMWEKWCAVIUMUKRWFADULAVIUNSAWDCUOUPVKAVICHZFWEWGVJAVI
      CUQURAVICUSSUTZVAWCVNVPVNJZVQWCVPVNMVNWIKWCVOVHVKVMVOVHMWCVOVHVRWBVBTWCVK
      VMWHVCNVPVNOPVPVNVDVEQVF $.

    $( Possible values for a set sandwiched between another set and it plus a
       singleton.  (Contributed by Mario Carneiro, 2-Jul-2016.) $)
    ssunsn $p |- ( ( B C_ A /\ A C_ ( B u. { C } ) )
        <-> ( A = B \/ A = ( B u. { C } ) ) ) $=
      ( wss csn cun wa wo wceq ssunsn2 ancom eqss bitr4i orbi12i bitri ) BADZAB
      CEFZDZGPABDZGZQADZRGZHABIZAQIZHABBCJTUCUBUDTSPGUCPSKABLMUBRUAGUDUARKAQLMN
      O $.

    $( Two ways to express that a nonempty set equals a singleton.
       (Contributed by NM, 15-Dec-2007.)  (Proof shortened by JJ,
       23-Jul-2021.) $)
    eqsn $p |- ( A =/= (/) -> ( A = { B } <-> A. x e. A x = B ) ) $=
      ( c0 wne csn wceq wo cv wral wn wb df-ne biorf sylbi wss wcel dfss3 velsn
      sssn ralbii 3bitr3i syl6bb ) BDEZBCFZGZBDGZUFHZAIZCGZABJZUDUGKUFUHLBDMUGU
      FNOBUEPUIUEQZABJUHUKABUERBCTULUJABACSUAUBUC $.

    $( Obsolete proof of ~ eqsn as of 23-Jul-2021.  (Contributed by NM,
       15-Dec-2007.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    eqsnOLD $p |- ( A =/= (/) -> ( A = { B } <-> A. x e. A x = B ) ) $=
      ( c0 wne csn wceq wss cv wral eqimss wn df-ne wo sssn biimpi syl5bi com12
      ord impbid2 wcel dfss3 velsn ralbii bitri syl6bb ) BDEZBCFZGZBUHHZAIZCGZA
      BJZUGUIUJBUHKUJUGUIUGBDGZLUJUIBDMUJUNUIUJUNUINBCOPSQRTUJUKUHUAZABJUMABUHU
      BUOULABACUCUDUEUF $.
  $}

  ${
    $d A w x y z $.
    $( A sufficient condition for a (nonempty) set to be a singleton.
       (Contributed by AV, 20-Sep-2020.) $)
    issn $p |- ( E. x e. A A. y e. A x = y -> E. z A = { z } ) $=
      ( weq wral cv csn wceq wex wcel wb equcom a1i ralbidv wne ne0i eqsn syl
      c0 bitr4d sneq eqeq2d spcegv sylbid rexlimiv ) ABEZBDFZDCGZHZIZCJZADAGZDK
      ZUHDUMHZIZULUNUHBAEZBDFZUPUNUGUQBDUGUQLUNABMNOUNDTPUPURLDUMQBDUMRSUAUKUPC
      UMDCAEUJUODUIUMUBUCUDUEUF $.

    $( A nonempty set is either a singleton or contains at least two different
       elements.  (Contributed by AV, 20-Sep-2020.) $)
    n0snor2el $p |- ( A =/= (/)
                      -> ( E. x e. A E. y e. A x =/= y \/ E. z A = { z } ) ) $=
      ( vw weq wral wrex c0 wne cv csn wceq wex wo wi issn olcd wn bitri rexbii
      a1d df-ne rexnal ralbii ralnex wa neeq1 rexbidv rspccva reximdva0 orcd ex
      sylbir pm2.61i ) EBFZBDGZEDHZDIJZAKZBKZJZBDHZADHZDCKLMCNZOZPZURVFUSURVEVD
      EBCDQRUBURSZEKZVAJZBDHZEDGZVGVLUQSZEDGVHVKVMEDVKUPSZBDHVMVJVNBDVIVAUCUAUP
      BDUDTUEUQEDUFTVLUSVFVLUSUGVDVEVLVCADVKVCEUTDEAFVJVBBDVIUTVAUHUIUJUKULUMUN
      UO $.
  $}

  $( Possible values for a set sandwiched between another set and it plus a
     singleton.  (Contributed by Mario Carneiro, 2-Jul-2016.) $)
  ssunpr $p |- ( ( B C_ A /\ A C_ ( B u. { C , D } ) )
      <-> ( ( A = B \/ A = ( B u. { C } ) ) \/
        ( A = ( B u. { D } ) \/ A = ( B u. { C , D } ) ) ) ) $=
    ( wss cpr cun wa csn wo wceq df-pr uneq2i unass eqtr4i sseq2i anbi2i ssunsn
    ssunsn2 3bitri un23 eqtr2i eqeq2i orbi2i orbi12i ) BAEZABCDFZGZEZHUFABCIZGZ
    DIZGZEZHUFAUKEHZBULGZAEZUNHZJABKAUKKJZAUPKZAUHKZJZJUIUNUFUHUMAUHBUJULGZGUMU
    GVCBCDLMBUJULNOZPQABUKDSUOUSURVBABCRURUQAUPUJGZEZHUTAVEKZJVBUNVFUQUMVEABUJU
    LUAZPQAUPCRVGVAUTVEUHAUHUMVEVDVHUBUCUDTUET $.

  $( The subsets of a pair.  (Contributed by NM, 16-Mar-2006.)  (Proof
     shortened by Mario Carneiro, 2-Jul-2016.) $)
  sspr $p |- ( A C_ { B , C }
        <-> ( ( A = (/) \/ A = { B } ) \/ ( A = { C } \/ A = { B , C } ) ) ) $=
    ( cpr wss c0 cun wa wceq csn wo uncom un0 sseq2i 0ss biantrur bitr3i eqeq2i
    eqtri orbi12i ssunpr orbi2i 3bitri ) ABCDZEZFAEZAFUDGZEZHZAFIZAFBJZGZIZKZAF
    CJZGZIZAUGIZKZKUJAUKIZKZAUOIZAUDIZKZKUEUHUIUGUDAUGUDFGUDFUDLUDMSZNUFUHAOPQA
    FBCUAUNVAUSVDUMUTUJULUKAULUKFGUKFUKLUKMSRUBUQVBURVCUPUOAUPUOFGUOFUOLUOMSRUG
    UDAVERTTUC $.

  $( The subsets of a triple.  (Contributed by Mario Carneiro, 2-Jul-2016.) $)
  sstp $p |- ( A C_ { B , C , D }
        <-> ( ( ( A = (/) \/ A = { B } ) \/ ( A = { C } \/ A = { B , C } ) ) \/
          ( ( A = { D } \/ A = { B , D } ) \/
            ( A = { C , D } \/ A = { B , C , D } ) ) ) ) $=
    ( wss cpr csn cun c0 wa wceq wo sseq2i biantrur uncom eqtr4i eqeq2i orbi12i
    df-pr 3bitri ctp df-tp 0ss ssunsn2 sspr bitr3i sseq1i anbi12i ssunpr orbi2i
    un0 eqtri eqtr2i bitri ) ABCDUAZEABCFZDGZHZEZIAEZUSJZAIKABGZKLACGZKAUPKLLZA
    UQKZABDFZKZLZACDFZKZAUOKZLZLZLZUOURABCDUBZMUTUSAUCZNVAUTAUPEZJZIUQHZAEZUSJZ
    LVNAIUPDUDVRVDWAVMVRVQVDUTVQVPNABCUEUFWAUQAEZAUQUPHZEZJVEAUQVBHZKZLZAUQVCHZ
    KZAWCKZLZLVMVTWBUSWDVSUQAVSUQIHUQIUQOUQUKULUGURWCAUPUQOZMUHAUQBCUIWGVHWKVLW
    FVGVEWEVFAWEVBUQHVFUQVBOBDSPQUJWIVJWJVKWHVIAWHVCUQHVIUQVCOCDSPQWCUOAUOURWCV
    OWLUMQRRTRUNT $.

  ${
    tpss.1 $e |- A e. _V $.
    tpss.2 $e |- B e. _V $.
    tpss.3 $e |- C e. _V $.
    $( A triplet of elements of a class is a subset of the class.  (Contributed
       by NM, 9-Apr-1994.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    tpss $p |- ( ( A e. D /\ B e. D /\ C e. D ) <-> { A , B , C } C_ D ) $=
      ( cpr wss csn wa cun wcel w3a ctp unss df-3an prss snss anbi12i 3bitr4i
      bitri df-tp sseq1i ) ABHZDIZCJZDIZKZUEUGLZDIADMZBDMZCDMZNZABCOZDIUEUGDPUN
      UKULKZUMKUIUKULUMQUPUFUMUHABDEFRCDGSTUBUOUJDABCUCUDUA $.
  $}

  $( A triple of elements of a class is a subset of the class.  (Contributed by
     Alexander van der Vekens, 1-Feb-2018.) $)
  tpssi $p |- ( ( A e. D /\ B e. D /\ C e. D ) -> { A , B , C } C_ D ) $=
    ( w3a ctp cpr csn cun df-tp wss prssi 3adant3 snssi 3ad2ant3 unssd syl5eqss
    wcel ) ADRZBDRZCDRZEZABCFABGZCHZIDABCJUBUCUDDSTUCDKUAABDLMUASUDDKTCDNOPQ $.

  $( Closed form of ~ sneqr .  (Contributed by Scott Fenton, 1-Apr-2011.)
     (Proof shortened by JJ, 23-Jul-2021.) $)
  sneqrg $p |- ( A e. V -> ( { A } = { B } -> A = B ) ) $=
    ( wcel csn wceq snidg eleq2 syl5ibcom elsng sylibd ) ACDZAEZBEZFZANDZABFLAM
    DOPACGMNAHIABCJK $.

  ${
    sneqr.1 $e |- A e. _V $.
    $( If the singletons of two sets are equal, the two sets are equal.  Part
       of Exercise 4 of [TakeutiZaring] p. 15.  (Contributed by NM,
       27-Aug-1993.) $)
    sneqr $p |- ( { A } = { B } -> A = B ) $=
      ( cvv wcel csn wceq wi sneqrg ax-mp ) ADEAFBFGABGHCABDIJ $.

    $( If a singleton is a subset of another, their members are equal.
       (Contributed by NM, 28-May-2006.) $)
    snsssn $p |- ( { A } C_ { B } -> A = B ) $=
      ( csn wss c0 wceq wo sssn snnz neii pm2.21i sneqr jaoi sylbi ) ADZBDZEPFG
      ZPQGZHABGZPBIRTSRTPFACJKLABCMNO $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Obsolete proof of ~ sneqrg as of 23-Jul-2021.  (Contributed by Scott
       Fenton, 1-Apr-2011.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    sneqrgOLD $p |- ( A e. V -> ( { A } = { B } -> A = B ) ) $=
      ( vx cv csn wceq wi sneq eqeq1d eqeq1 imbi12d vex sneqr vtoclg ) DEZFZBFZ
      GZPBGZHAFZRGZABGZHDACPAGZSUBTUCUDQUARPAIJPABKLPBDMNO $.
  $}

  $( Two singletons of sets are equal iff their elements are equal.
     (Contributed by Scott Fenton, 16-Apr-2012.) $)
  sneqbg $p |- ( A e. V -> ( { A } = { B } <-> A = B ) ) $=
    ( wcel csn wceq sneqrg sneq impbid1 ) ACDAEBEFABFABCGABHI $.

  ${
    $d x A $.
    $( The singleton of a class is a subset of its power class.  (Contributed
       by NM, 21-Jun-1993.) $)
    snsspw $p |- { A } C_ ~P A $=
      ( vx csn cpw cv wceq wss wcel eqimss velsn selpw 3imtr4i ssriv ) BACZADZB
      EZAFPAGPNHPOHPAIBAJBAKLM $.
  $}

  ${
    prsspw.1 $e |- A e. _V $.
    prsspw.2 $e |- B e. _V $.
    $( An unordered pair belongs to the power class of a class iff each member
       belongs to the class.  (Contributed by NM, 10-Dec-2003.)  (Proof
       shortened by Andrew Salmon, 26-Jun-2011.)  (Proof shortened by OpenAI,
       25-Mar-2020.) $)
    prsspw $p |- ( { A , B } C_ ~P C <-> ( A C_ C /\ B C_ C ) ) $=
      ( cvv wcel cpr cpw wss wa wb prsspwg mp2an ) AFGBFGABHCIJACJBCJKLDEABCFFM
      N $.
  $}

  ${
    preq1b.a $e |- ( ph -> A e. V ) $.
    preq1b.b $e |- ( ph -> B e. W ) $.
    $( Biconditional equality lemma for unordered pairs, deduction form.  Two
       unordered pairs have the same second element iff the first elements are
       equal.  (Contributed by AV, 18-Dec-2020.) $)
    preq1b $p |- ( ph -> ( { A , C } = { B , C } <-> A = B ) ) $=
      ( cpr wceq wa wo wcel prid1g syl eleq2 wb elprg sylibd imp eqcom eqeq2 ex
      syl5ibcom syl5ibrcom oplem1 preq1 impbid1 ) ABDIZCDIZJZBCJZAUKULAUKKULBDJ
      ZCBJZCDJZAUKULUMLZAUKBUJMZUPABUIMZUKUQABEMZURGBDENOUIUJBPUDAUSUQUPQGBCDER
      OSTAUKUNUOLZAUKCUIMZUTAVAUKCUJMZACFMZVBHCDFNOUIUJCPUEAVCVAUTQHCBDFROSTBCU
      ABDCUBUFUCBCDUGUH $.

    $( Biconditional equality lemma for unordered pairs, deduction form.  Two
       unordered pairs have the same first element iff the second elements are
       equal.  (Contributed by AV, 18-Dec-2020.) $)
    preq2b $p |- ( ph -> ( { C , A } = { C , B } <-> A = B ) ) $=
      ( cpr wceq prcom eqeq12i preq1b syl5bb ) DBIZDCIZJBDIZCDIZJABCJOQPRDBKDCK
      LABCDEFGHMN $.
  $}

  ${
    preqr1.a $e |- A e. _V $.
    preqr1.b $e |- B e. _V $.
    $( Reverse equality lemma for unordered pairs.  If two unordered pairs have
       the same second element, the first elements are equal.  (Contributed by
       NM, 18-Oct-1995.) $)
    preqr1 $p |- ( { A , C } = { B , C } -> A = B ) $=
      ( cpr wceq cvv wcel wb id a1i preq1b ax-mp biimpi ) ACFBCFGZABGZAHIZPQJDR
      ABCHHRKBHIRELMNO $.

    $( Reverse equality lemma for unordered pairs.  If two unordered pairs have
       the same second element, the first elements are equal.  (Contributed by
       NM, 18-Oct-1995.)  Obsolete version of ~ preqr1 as of 18-Dec-2020.
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    preqr1OLD $p |- ( { A , C } = { B , C } -> A = B ) $=
      ( cpr wceq wcel wo prid1 eleq2 mpbii elpr sylib mpbiri eqcom eqeq2 oplem1
      ) ACFZBCFZGZABGZACGZBAGZBCGZUAATHZUBUCIUAASHUFACDJSTAKLABCDMNUABSHZUDUEIU
      AUGBTHBCEJSTBKOBACEMNABPACBQR $.

    $( Reverse equality lemma for unordered pairs.  If two unordered pairs have
       the same first element, the second elements are equal.  (Contributed by
       NM, 15-Jul-1993.) $)
    preqr2 $p |- ( { C , A } = { C , B } -> A = B ) $=
      ( cpr wceq prcom eqeq12i preqr1 sylbi ) CAFZCBFZGACFZBCFZGABGLNMOCAHCBHIA
      BCDEJK $.

    preq12b.c $e |- C e. _V $.
    preq12b.d $e |- D e. _V $.
    $( Equality relationship for two unordered pairs.  (Contributed by NM,
       17-Oct-1996.) $)
    preq12b $p |- ( { A , B } = { C , D } <->
                   ( ( A = C /\ B = D ) \/ ( A = D /\ B = C ) ) ) $=
      ( cpr wceq wa wo wcel preq1 eqeq1d preqr2 syl6bi com12 ancld prcom eqeq2i
      prid1 eleq2 mpbii elpr sylib sylbi orim12d mpd preq12 syl6eq jaoi impbii
      wi ) ABIZCDIZJZACJZBDJZKZADJZBCJZKZLZUQURVALZVDUQAUPMZVEUQAUOMVFABEUBUOUP
      AUCUDACDEUEUFUQURUTVAVCUQURUSURUQUSURUQCBIZUPJUSURUOVGUPACBNOBDCFHPQRSUQV
      AVBUQUODCIZJZVAVBUNUPVHUOCDTUAVAVIVBVAVIDBIZVHJVBVAUOVJVHADBNOBCDFGPQRUGS
      UHUIUTUQVCABCDUJVCUOVHUPABDCUJDCTUKULUM $.

    $( Equality of two unordered pairs.  (Contributed by NM, 17-Oct-1996.) $)
    prel12 $p |- ( -. A = B -> ( { A , B } = { C , D } <->
                   ( A e. { C , D } /\ B e. { C , D } ) ) ) $=
      ( wceq wn cpr wcel wa eleq2 mpbii wo wi elpr eqeq2 impd prid1 prid2 orel2
      jca notbid syl6bi com12 ancrd orel1 orim12d orcom bitri preq12b ex syl5bi
      3imtr4g impbid2 ) ABIZJZABKZCDKZIZAVALZBVALZMVBVCVDVBAUTLVCABEUAUTVAANOVB
      BUTLVDABFUBUTVABNOUDUSVCVDVBVCACIZADIZPZUSVDVBQZACDERUSVGVHUSVGMZBDIZBCIZ
      PZVEVJMZVFVKMZPVDVBVIVJVMVKVNVIVJVEVJVIVEVJUSVGVEVJUSVFJVGVEQVJURVFBDASUE
      VFVEUCUFTUGUHVIVKVFVKVIVFVKUSVGVFVKUSVEJVGVFQVKURVEBCASUEVEVFUIUFTUGUHUJV
      DVKVJPVLBCDFRVKVJUKULABCDEFGHUMUPUNUOTUQ $.

    $( An unordered pair has the ordered pair property (compare ~ opth ) under
       certain conditions.  (Contributed by NM, 27-Mar-2007.) $)
    opthpr $p |- ( A =/= D ->
                 ( { A , B } = { C , D } <-> ( A = C /\ B = D ) ) ) $=
      ( cpr wceq wa wo wne preq12b idd wn wi df-ne pm2.21 sylbi impd orc syl5bb
      jaod impbid1 ) ABICDIJACJBDJKZADJZBCJZKZLZADMZUFABCDEFGHNUKUJUFUKUFUFUIUK
      UFOUKUGUHUFUKUGPUGUHUFQZQADRUGULSTUAUDUFUIUBUEUC $.
  $}

  $( Reverse equality lemma for unordered pairs.  If two unordered pairs have
     the same second element, the first elements are equal.  Closed form of
     ~ preqr1 .  (Contributed by AV, 29-Jan-2021.)  (Revised by AV,
     18-Sep-2021.) $)
  preqr1g $p |- ( ( A e. V /\ B e. W )
                  -> ( { A , C } = { B , C } -> A = B ) ) $=
    ( wcel wa cpr wceq simpl simpr preq1b biimpd ) ADFZBEFZGZACHBCHIABIPABCDENO
    JNOKLM $.

  ${
    $d A x y z w $.  $d B x y z w $.  $d C x y z w $.  $d D x y z w $.
    $d V x y z w $.  $d W x y z w $.  $d X x y z w $.  $d Y x y z w $.
    $( Closed form of ~ preq12b .  (Contributed by Scott Fenton,
       28-Mar-2014.) $)
    preq12bg $p |- ( ( ( A e. V /\ B e. W ) /\ ( C e. X /\ D e. Y ) ) ->
       ( { A , B } = { C , D } <->
         ( ( A = C /\ B = D ) \/ ( A = D /\ B = C ) ) ) ) $=
      ( vx vy vz vw wcel wa cpr wceq wo wb wi cv weq preq1 eqeq1d eqeq1 orbi12d
      anbi1d bibi12d imbi2d preq2 anbi2d eqeq2 w3a vex preq12b vtoclbg vtocl3ga
      eqeq2d a1i 3expa impr ) AEMZBFMZNCGMZDHMZABOZCDOZPZACPZBDPZNZADPZBCPZNZQZ
      RZVAVBVCVDVOSZVDITZJTZOZKTZDOZPZIKUAZVRDPZNZVQDPZJKUAZNZQZRZSZVDAVROZWAPZ
      AVTPZWDNZVKWGNZQZRZSVDVEWAPZWNVINZVKBVTPZNZQZRZSVPIJKABCEFGVQAPZWJWRVDXEW
      BWMWIWQXEVSWLWAVQAVRUBUCXEWEWOWHWPXEWCWNWDVQAVTUDUFXEWFVKWGVQADUDUFUEUGUH
      VRBPZWRXDVDXFWMWSWQXCXFWLVEWAVRBAUIUCXFWOWTWPXBXFWDVIWNVRBDUDUJXFWGXAVKVR
      BVTUDUJUEUGUHVTCPZXDVOVDXGWSVGXCVNXGWAVFVEVTCDUBUQXGWTVJXBVMXGWNVHVIVTCAU
      KUFXGXAVLVKVTCBUKUJUEUGUHWKVQEMVRFMVTGMULVSVTLTZOZPWCJLUAZNZILUAZWGNZQWBW
      ILDHXHDPZXIWAVSXHDVTUIUQXNXKWEXMWHXNXJWDWCXHDVRUKUJXNXLWFWGXHDVQUKUFUEVQV
      RVTXHIUMJUMKUMLUMUNUOURUPUSUT $.

    $( Closed form of ~ prel12 .  (Contributed by AV, 9-Dec-2018.) $)
    prel12g $p |- ( ( ( A e. V /\ B e. W ) /\ ( C e. X /\ D e. Y ) ) ->
       ( -. A = B -> ( { A , B } = { C , D } <->
                   ( A e. { C , D } /\ B e. { C , D } ) ) ) ) $=
      ( vx vy wcel wa wceq cpr wb wi cv bibi12d imbi2d eleq2d vz vw eqeq1 preq1
      wn weq notbid eqeq1d eleq1 anbi1d imbi12d eqeq2 anbi2d eqeq2d anbi12d w3a
      preq2 vex prel12 vtoclg a1i vtocl3ga 3expa impr ) AEKZBFKZLCGKZDHKZABMZUE
      ZABNZCDNZMZAVLKZBVLKZLZOZPZVEVFVGVHVRPZVHIJUFZUEZIQZJQZNZUAQZDNZMZWBWFKZW
      CWFKZLZOZPZPZVHAWCMZUEZAWCNZWFMZAWFKZWILZOZPZPVHVJVKWFMZWRBWFKZLZOZPZPVSI
      JUAABCEFGWBAMZWLXAVHXGWAWOWKWTXGVTWNWBAWCUCUGXGWGWQWJWSXGWDWPWFWBAWCUDUHX
      GWHWRWIWBAWFUIUJRUKSWCBMZXAXFVHXHWOVJWTXEXHWNVIWCBAULUGXHWQXBWSXDXHWPVKWF
      WCBAUQUHXHWIXCWRWCBWFUIUMRUKSWECMZXFVRVHXIXEVQVJXIXBVMXDVPXIWFVLVKWECDUDZ
      UNXIWRVNXCVOXIWFVLAXJTXIWFVLBXJTUORSSWMWBEKWCFKWEGKUPWAWDWEUBQZNZMZWBXLKZ
      WCXLKZLZOZPWLUBDHXKDMZXQWKWAXRXMWGXPWJXRXLWFWDXKDWEUQZUNXRXNWHXOWIXRXLWFW
      BXSTXRXLWFWCXSTUORSWBWCWEXKIURJURUAURUBURUSUTVAVBVCVD $.
  $}

  $( Two pairs are not equal if at least one element of the first pair is not
     contained in the second pair.  (Contributed by Alexander van der Vekens,
     13-Aug-2017.) $)
  prneimg $p |- ( ( ( A e. U /\ B e. V ) /\ ( C e. X /\ D e. Y ) )
                  -> ( ( ( A =/= C /\ A =/= D ) \/ ( B =/= C /\ B =/= D ) )
                       -> { A , B } =/= { C , D } ) ) $=
    ( wcel wa wne wo cpr wceq wn ianor nne orbi12i bitr2i syl6ib preq12bg orddi
    simpll pm1.4 ad2antll jca sylbi syl6bi anbi12i pm4.56 necon2ad ) AEIBFIJCGI
    DHIJJZACKZADKZJZBCKZBDKZJZLZABMZCDMZULUTVANZUOOZUROZJZUSOULVBACNZADNZLZBCNZ
    BDNZLZJZVEULVBVFVJJVGVIJLZVLABCDEFGHUAVMVHVFVILZJZVJVGLZVJVILZJZJZVLVFVJVGV
    IUBVSVHVKVHVNVRUCVQVKVOVPVJVIUDUEUFUGUHVHVCVKVDVCUMOZUNOZLVHUMUNPVTVFWAVGAC
    QADQRSVDUPOZUQOZLVKUPUQPWBVIWCVJBCQBDQRSUITUOURUJTUK $.

  $( A (proper) pair is not equal to another (maybe improper) pair if and only
     if an element of the first pair is not contained in the second pair.
     (Contributed by Alexander van der Vekens, 16-Jan-2018.) $)
  prnebg $p |- ( ( ( A e. U /\ B e. V ) /\ ( C e. X /\ D e. Y ) /\ A =/= B )
                  -> ( ( ( A =/= C /\ A =/= D ) \/ ( B =/= C /\ B =/= D ) )
                       <-> { A , B } =/= { C , D } ) ) $=
    ( wcel wa wne wo cpr wi wn wceq ianor nne bitri jaoi prneimg ioran eqneqall
    w3a 3adant3 orbi12i anbi12i anddi eqtr3 syl preq12 a1d prcom com12 3ad2ant3
    syl6eq syl5bi necon1ad impbid ) AEIBFIJZCGIDHIJZABKZUDZACKZADKZJZBCKZBDKZJZ
    LZABMZCDMZKZUTVAVJVMNVBABCDEFGHUAUEVCVJVKVLVJOZACPZADPZLZBCPZBDPZLZJZVCVKVL
    PZVNVFOZVIOZJWAVFVIUBWCVQWDVTWCVDOZVEOZLVQVDVEQWEVOWFVPACRADRUFSWDVGOZVHOZL
    VTVGVHQWGVRWHVSBCRBDRUFSUGSWAVOVRJZVOVSJZLZVPVRJZVPVSJZLZLZVCWBVOVPVRVSUHVB
    UTWOWBNVAWOVBWBWKVBWBNZWNWIWPWJWIABPZWPABCUIWBABUCZUJWJWBVBABCDUKULTWLWPWMW
    LWBVBWLVKDCMVLABDCUKDCUMUPULWMWQWPABDUIWRUJTTUNUOUQUQURUS $.

  $( A (proper) pair is equal to another (maybe improper) pair containing one
     element of the first pair if and only if the other element of the first
     pair is contained in the second pair.  (Contributed by Alexander van der
     Vekens, 26-Jan-2018.) $)
  pr1eqbg $p |- ( ( ( A e. U /\ B e. V /\ C e. X ) /\ A =/= B )
                  -> ( A = C <-> { A , B } = { B , C } ) ) $=
    ( wcel w3a wne wa wceq wo cpr wb eqid biantru orbi2i a1i wn syl neneq biorf
    adantl intnanrd 3simpa 3simpc jca adantr preq12bg 3bitr4d ) ADGZBEGZCFGZHZA
    BIZJZABKZBCKZJZACKZLZUSUTBBKZJZLZUTABMBCMKZVAVDNUPUTVCUSVBUTBOPQRUPUSSUTVAN
    UPUQURUOUQSUNABUAUCUDUSUTUBTUPUKULJZULUMJZJZVEVDNUNVHUOUNVFVGUKULUMUEUKULUM
    UFUGUHABBCDEEFUITUJ $.

  $( A (proper) pair is not equal to another (maybe improper) pair containing
     one element of the first pair if and only if the other element of the
     first pair is not contained in the second pair.  (Contributed by Alexander
     van der Vekens, 26-Jan-2018.) $)
  pr1nebg $p |- ( ( ( A e. U /\ B e. V /\ C e. X ) /\ A =/= B )
                  -> ( A =/= C <-> { A , B } =/= { B , C } ) ) $=
    ( wcel w3a wne wa cpr pr1eqbg necon3bid ) ADGBEGCFGHABIJACABKBCKABCDEFLM $.

  ${
    preqsnd.1 $e |- ( ph -> A e. _V ) $.
    preqsnd.2 $e |- ( ph -> B e. _V ) $.
    preqsnd.3 $e |- ( ph -> C e. _V ) $.
    $( Equivalence for a pair equal to a singleton, deduction form.
       (Contributed by Thierry Arnoux, 27-Dec-2016.) $)
    preqsnd $p |- ( ph -> ( { A , B } = { C } <-> ( A = C /\ B = C ) ) ) $=
      ( cvv wcel cpr csn wceq wa wb dfsn2 eqeq2i wo preq12bg oridm syl6bb
      syl5bb syl22anc ) ABHIZCHIZDHIZUEBCJZDKZLZBDLCDLMZNEFGGUHUFDDJZLZUCUDMUEU
      EMMZUIUGUJUFDOPULUKUIUIQUIBCDDHHHHRUISTUAUB $.
  $}

  ${
    preqsn.1 $e |- A e. _V $.
    preqsn.2 $e |- B e. _V $.
    preqsn.3 $e |- C e. _V $.
    $( Equivalence for a pair equal to a singleton.  (Contributed by NM,
       3-Jun-2008.)  (Proof shortened by JJ, 23-Jul-2021.) $)
    preqsn $p |- ( { A , B } = { C } <-> ( A = B /\ B = C ) ) $=
      ( cpr csn wceq wa dfsn2 eqeq2i oridm preq12b eqeq2 pm5.32ri 3bitr4i bitri
      wo ) ABGZCHZITCCGZIZABIZBCIZJZUAUBTCKLACIZUEJZUHSUHUCUFUHMABCCDEFFNUEUDUG
      BCAOPQR $.

    $( Obsolete proof of ~ preqsn as of 23-Jul-2021.  (Contributed by NM,
       3-Jun-2008.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    preqsnOLD $p |- ( { A , B } = { C } <-> ( A = B /\ B = C ) ) $=
      ( cpr csn wceq wa dfsn2 eqeq2i preq12b oridm eqtr3 simpr jca eqtr bitri
      wo impbii ) ABGZCHZIUBCCGZIZABIZBCIZJZUCUDUBCKLUEACIZUGJZUJTZUHABCCDEFFMU
      KUJUHUJNUJUHUJUFUGABCOUIUGPQUHUIUGABCRUFUGPQUASSS $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Lemma for ~ elpreqpr .  (Contributed by Scott Fenton, 7-Dec-2020.)
       (Revised by AV, 9-Dec-2020.) $)
    elpreqprlem $p |- ( B e. V -> E. x { B , C } = { B , x } ) $=
      ( cvv wcel cpr cv wceq wex wi eqid preq2 eqeq2d spcegv mpi a1d csn dfsn2
      wn prprc2 eqeq1d exbidv syl5ibr pm2.61i ) CEFZBDFZBCGZBAHZGZIZAJZKUFULUGU
      FUHUHIZULUHLUKUMACEUICIUJUHUHUICBMNOPQUGULUFTZBRZUJIZAJZUGUOBBGZIZUQBSUPU
      SABDUIBIUJURUOUIBBMNOPUNUKUPAUNUHUOUJBCUAUBUCUDUE $.

    $( Equality and membership rule for pairs.  (Contributed by Scott Fenton,
       7-Dec-2020.) $)
    elpreqpr $p |- ( A e. { B , C } -> E. x { B , C } = { A , x } ) $=
      ( cpr wcel wo cvv cv wex wi elpreqprlem eleq1 preq1 eqeq2d exbidv imbi12d
      wceq mpbiri imp elpri elex prcom eqeq1i exbii sylib jaoian syl2anc ) BCDE
      ZFBCRZBDRZGBHFZUIBAIZEZRZAJZBCDUABUIUBUJULUPUKUJULUPUJULUPKZCHFZUICUMEZRZ
      AJZKACDHLUJULURUPVABCHMUJUOUTAUJUNUSUIBCUMNOPQSTUKULUPUKUQDHFZUIDUMEZRZAJ
      ZKVBDCEZVCRZAJVEADCHLVGVDAVFUIVCDCUCUDUEUFUKULVBUPVEBDHMUKUOVDAUKUNVCUIBD
      UMNOPQSTUGUH $.

    $d V x $.
    $( A set is an element of an unordered pair iff there is another (maybe the
       same) set which is an element of the unordered pair.  (Proposed by BJ,
       8-Dec-2020.)  (Contributed by AV, 9-Dec-2020.) $)
    elpreqprb $p |- ( A e. V
                      -> ( A e. { B , C } <-> E. x { B , C } = { A , x } ) ) $=
      ( wcel cpr cv wceq wex elpreqpr prid1g eleq2 syl5ibrcom exlimdv impbid2 )
      BEFZBCDGZFZRBAHZGZIZAJABCDKQUBSAQSUBBUAFBTELRUABMNOP $.
  $}

  ${
    $d A b $.  $d V b $.  $d X b $.  $d Y b $.
    $( For an element ` A ` of an unordered pair which is a subset of a given
       set ` V ` , there is another (maybe the same) element ` b ` of the given
       set ` V ` being an element of the unordered pair.  (Contributed by AV,
       5-Dec-2020.) $)
    elpr2elpr $p |- ( ( X e. V /\ Y e. V /\ A e. { X , Y } )
                      -> E. b e. V { X , Y } = { A , b } ) $=
      ( wcel cpr cv wceq wo wa wb preq2 eqeq2d adantl eqcoms adantr rspcedvd ex
      wrex wi simprr preq1 simprl prcom syl6eq jaoi elpri syl11 3impia ) CBFZDB
      FZACDGZFZUMAEHZGZIZEBTZACIZADIZJUKULKZURUNUSVAURUAUTUSVAURUSVAKZUQUMADGZI
      ZEDBUSUKULUBUODIZUQVDLVBVEUPVCUMUODAMNOUSVDVAVDCACADUCPQRSUTVAURUTVAKZUQU
      MACGZIZECBUTUKULUDUOCIZUQVHLVFVIUPVGUMUOCAMNOUTVHVAUTUMCAGZVGUMVJIDADACMP
      CAUEUFQRSUGACDUHUIUJ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Rewrite ~ df-op using ` if ` .  When both arguments are sets, it reduces
       to the standard Kuratowski definition; otherwise, it is defined to be
       the empty set.  Avoid directly depending on this detail so that theorems
       will not depend on the Kuratowski construction.  (Contributed by Mario
       Carneiro, 26-Apr-2015.)  (Avoid depending on this detail.) $)
    dfopif $p |- <. A , B >. =
      if ( ( A e. _V /\ B e. _V ) , { { A } , { A , B } } , (/) ) $=
      ( vx cop cvv wcel cv csn cpr w3a cab wa c0 df-op df-3an abbii wceq iftrue
      cif ibar abbi2dv eqtr2d wss pm2.21 adantrd abssdv ss0 syl iffalse pm2.61i
      wn eqtr4d 3eqtri ) ABDAEFZBEFZCGZAHABIIZFZJZCKUNUOLZURLZCKZUTUQMSZCABNUSV
      ACUNUOUROPUTVBVCQUTVCUQVBUTUQMRUTVACUQUTURTUAUBUTUKZVBMVCVDVBMUCVBMQVDVAC
      MVDUTUPMFZURUTVEUDUEUFVBUGUHUTUQMUIULUJUM $.
  $}

  $( Value of the ordered pair when the arguments are sets.  (Contributed by
     Mario Carneiro, 26-Apr-2015.)  (Avoid depending on this detail.) $)
  dfopg $p |- ( ( A e. V /\ B e. W ) ->
    <. A , B >. = { { A } , { A , B } } ) $=
    ( wcel cvv cop csn cpr wceq elex wa c0 cif dfopif iftrue syl5eq syl2an ) AC
    EAFEZBFEZABGZAHABIIZJBDEACKBDKSTLZUAUCUBMNUBABOUCUBMPQR $.

  ${
    dfop.1 $e |- A e. _V $.
    dfop.2 $e |- B e. _V $.
    $( Value of an ordered pair when the arguments are sets, with the
       conclusion corresponding to Kuratowski's original definition.
       (Contributed by NM, 25-Jun-1998.)  (Avoid depending on this detail.) $)
    dfop $p |- <. A , B >. = { { A } , { A , B } } $=
      ( cvv wcel cop csn cpr wceq dfopg mp2an ) AEFBEFABGAHABIIJCDABEEKL $.
  $}

  $( Equality theorem for ordered pairs.  (Contributed by NM, 25-Jun-1998.)
     (Revised by Mario Carneiro, 26-Apr-2015.) $)
  opeq1 $p |- ( A = B -> <. A , C >. = <. B , C >. ) $=
    ( wceq cvv wcel wa csn cpr cif cop eleq1 anbi1d sneq preq1 preq12d ifbieq1d
    c0 dfopif 3eqtr4g ) ABDZAEFZCEFZGZAHZACIZIZRJBEFZUCGZBHZBCIZIZRJACKBCKUAUDU
    IUGULRUAUBUHUCABELMUAUEUJUFUKABNABCOPQACSBCST $.

  $( Equality theorem for ordered pairs.  (Contributed by NM, 25-Jun-1998.)
     (Revised by Mario Carneiro, 26-Apr-2015.) $)
  opeq2 $p |- ( A = B -> <. C , A >. = <. C , B >. ) $=
    ( wceq cvv wcel wa csn cpr c0 cif eleq1 anbi2d preq2 preq2d ifbieq1d dfopif
    cop 3eqtr4g ) ABDZCEFZAEFZGZCHZCAIZIZJKUABEFZGZUDCBIZIZJKCARCBRTUCUHUFUJJTU
    BUGUAABELMTUEUIUDABCNOPCAQCBQS $.

  $( Equality theorem for ordered pairs.  (Contributed by NM, 28-May-1995.) $)
  opeq12 $p |- ( ( A = C /\ B = D ) -> <. A , B >. = <. C , D >. ) $=
    ( wceq cop opeq1 opeq2 sylan9eq ) ACEBDEABFCBFCDFACBGBDCHI $.

  ${
    opeq1i.1 $e |- A = B $.
    $( Equality inference for ordered pairs.  (Contributed by NM,
       16-Dec-2006.) $)
    opeq1i $p |- <. A , C >. = <. B , C >. $=
      ( wceq cop opeq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality inference for ordered pairs.  (Contributed by NM,
       16-Dec-2006.) $)
    opeq2i $p |- <. C , A >. = <. C , B >. $=
      ( wceq cop opeq2 ax-mp ) ABECAFCBFEDABCGH $.

    ${
      opeq12i.2 $e |- C = D $.
      $( Equality inference for ordered pairs.  (Contributed by NM,
         16-Dec-2006.)  (Proof shortened by Eric Schmidt, 4-Apr-2007.) $)
      opeq12i $p |- <. A , C >. = <. B , D >. $=
        ( wceq cop opeq12 mp2an ) ABGCDGACHBDHGEFACBDIJ $.
    $}
  $}

  ${
    opeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for ordered pairs.  (Contributed by NM,
       16-Dec-2006.) $)
    opeq1d $p |- ( ph -> <. A , C >. = <. B , C >. ) $=
      ( wceq cop opeq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality deduction for ordered pairs.  (Contributed by NM,
       16-Dec-2006.) $)
    opeq2d $p |- ( ph -> <. C , A >. = <. C , B >. ) $=
      ( wceq cop opeq2 syl ) ABCFDBGDCGFEBCDHI $.

    opeq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for ordered pairs.  (Contributed by NM, 16-Dec-2006.)
       (Proof shortened by Andrew Salmon, 29-Jun-2011.) $)
    opeq12d $p |- ( ph -> <. A , C >. = <. B , D >. ) $=
      ( wceq cop opeq12 syl2anc ) ABCHDEHBDICEIHFGBDCEJK $.
  $}

  $( Equality theorem for ordered triples.  (Contributed by NM, 3-Apr-2015.) $)
  oteq1 $p |- ( A = B -> <. A , C , D >. = <. B , C , D >. ) $=
    ( wceq cop cotp opeq1 opeq1d df-ot 3eqtr4g ) ABEZACFZDFBCFZDFACDGBCDGLMNDAB
    CHIACDJBCDJK $.

  $( Equality theorem for ordered triples.  (Contributed by NM, 3-Apr-2015.) $)
  oteq2 $p |- ( A = B -> <. C , A , D >. = <. C , B , D >. ) $=
    ( wceq cop cotp opeq2 opeq1d df-ot 3eqtr4g ) ABEZCAFZDFCBFZDFCADGCBDGLMNDAB
    CHICADJCBDJK $.

  $( Equality theorem for ordered triples.  (Contributed by NM, 3-Apr-2015.) $)
  oteq3 $p |- ( A = B -> <. C , D , A >. = <. C , D , B >. ) $=
    ( wceq cop cotp opeq2 df-ot 3eqtr4g ) ABECDFZAFKBFCDAGCDBGABKHCDAICDBIJ $.

  ${
    oteq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for ordered triples.  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    oteq1d $p |- ( ph -> <. A , C , D >. = <. B , C , D >. ) $=
      ( wceq cotp oteq1 syl ) ABCGBDEHCDEHGFBCDEIJ $.

    $( Equality deduction for ordered triples.  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    oteq2d $p |- ( ph -> <. C , A , D >. = <. C , B , D >. ) $=
      ( wceq cotp oteq2 syl ) ABCGDBEHDCEHGFBCDEIJ $.

    $( Equality deduction for ordered triples.  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    oteq3d $p |- ( ph -> <. C , D , A >. = <. C , D , B >. ) $=
      ( wceq cotp oteq3 syl ) ABCGDEBHDECHGFBCDEIJ $.

    oteq123d.2 $e |- ( ph -> C = D ) $.
    oteq123d.3 $e |- ( ph -> E = F ) $.
    $( Equality deduction for ordered triples.  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    oteq123d $p |- ( ph -> <. A , C , E >. = <. B , D , F >. ) $=
      ( cotp oteq1d oteq2d oteq3d 3eqtrd ) ABDFKCDFKCEFKCEGKABCDFHLADECFIMAFGCE
      JNO $.
  $}

  ${
    nfop.1 $e |- F/_ x A $.
    nfop.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for ordered pairs.  (Contributed by
       NM, 14-Nov-1995.) $)
    nfop $p |- F/_ x <. A , B >. $=
      ( cop cvv wcel wa csn cpr c0 cif dfopif nfel1 nfan nfsn nfpr nfcv nfif
      nfcxfr ) ABCFBGHZCGHZIZBJZBCKZKZLMBCNUDAUGLUBUCAABGDOACGEOPAUEUFABDQABCDE
      RRALSTUA $.
  $}

  ${
    $d z B $.  $d z A $.  $d x z $.
    nfopd.2 $e |- ( ph -> F/_ x A ) $.
    nfopd.3 $e |- ( ph -> F/_ x B ) $.
    $( Deduction version of bound-variable hypothesis builder ~ nfop .  This
       shows how the deduction version of a not-free theorem such as ~ nfop can
       be created from the corresponding not-free inference theorem.
       (Contributed by NM, 4-Feb-2008.) $)
    nfopd $p |- ( ph -> F/_ x <. A , B >. ) $=
      ( vz cv wcel wal cab cop wnfc nfaba1 nfop wb wa nfnfc1 wceq abidnf adantr
      nfan adantl opeq12d nfceqdf syl2anc mpbii ) ABGHZCIZBJGKZUHDIZBJGKZLZMZBC
      DLZMZBUJULUIBGNUKBGNOABCMZBDMZUNUPPEFUQURQZBUMUOUQURBBCRBDRUBUSUJCULDUQUJ
      CSURBGCTUAURULDSUQBGDTUCUDUEUFUG $.
  $}

  $( Distribution of class substitution over ordered pairs.  (Contributed by
     Drahflow, 25-Sep-2015.)  (Revised by Mario Carneiro, 29-Oct-2015.)
     (Revised by ML, 25-Oct-2020.) $)
  csbopg $p |- ( A e. V -> [_ A / x ]_ <. C , D >. =
                         <. [_ A / x ]_ C , [_ A / x ]_ D >. ) $=
    ( wcel cvv wa csn cpr c0 cif csb cop wsbc csbif sbcan sbcel1g csbprg dfopif
    anbi12d syl5bb csbsng preq12d csbconstg ifbieq12d syl5eq csbeq2i 3eqtr4g
    eqtrd ) BEFZABCGFZDGFZHZCIZCDJZJZKLZMZABCMZGFZABDMZGFZHZUTIZUTVBJZJZKLZABCD
    NZMUTVBNUKUSUNABOZABUQMZABKMZLVHUNABUQKPUKVJVDVKVLVGKVJULABOZUMABOZHUKVDULU
    MABQUKVMVAVNVCABCGERABDGERUAUBUKVKABUOMZABUPMZJVGAUOUPBESUKVOVEVPVFABCEUCAC
    DBESUDUJABKEUEUFUGABVIURCDTUHUTVBTUI $.

  $( The ordered pair ` <. A , A >. ` in Kuratowski's representation.  Closed
     form of ~ opid .  (Contributed by Peter Mazsa, 22-Jul-2019.)  (Avoid
     depending on this detail.) $)
  opidg $p |- ( A e. V -> <. A , A >. = { { A } } ) $=
    ( wcel cop csn cpr wceq dfopg anidms dfsn2 eqcomi preq2i eqtr4i syl6eq ) AB
    CZAADZAEZAAFZFZQEZOPSGAABBHISQQFTRQQQRAJKLQJMN $.

  ${
    opid.1 $e |- A e. _V $.
    $( The ordered pair ` <. A , A >. ` in Kuratowski's representation.
       Inference form of ~ opidg .  (Contributed by FL, 28-Dec-2011.)  (Prove
       shortened by AV, 16-Feb-2022.)  (Avoid depending on this detail.) $)
    opid $p |- <. A , A >. = { { A } } $=
      ( cvv wcel cop csn wceq opidg ax-mp ) ACDAAEAFFGBACHI $.
  $}

  ${
    $d B x $.  $d ps x $.
    ralunsn.1 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( Restricted quantification over the union of a set and a singleton, using
       implicit substitution.  (Contributed by Paul Chapman, 17-Nov-2012.)
       (Revised by Mario Carneiro, 23-Apr-2015.) $)
    ralunsn $p |- ( B e. C -> ( A. x e. ( A u. { B } ) ph <->
                                ( A. x e. A ph /\ ps ) ) ) $=
      ( csn cun wral wa wcel ralunb ralsng anbi2d syl5bb ) ACDEHZIJACDJZACQJZKE
      FLZRBKACDQMTSBRABCEFGNOP $.
  $}

  ${
    $d A x $.  $d B x y $.  $d C x $.  $d ch x $.  $d ps y $.  $d th x $.
    2ralunsn.1 $e |- ( x = B -> ( ph <-> ch ) ) $.
    2ralunsn.2 $e |- ( y = B -> ( ph <-> ps ) ) $.
    2ralunsn.3 $e |- ( x = B -> ( ps <-> th ) ) $.
    $( Double restricted quantification over the union of a set and a
       singleton, using implicit substitution.  (Contributed by Paul Chapman,
       17-Nov-2012.) $)
    2ralunsn $p |- ( B e. C ->
                     ( A. x e. ( A u. { B } ) A. y e. ( A u. { B } ) ph <->
                       ( ( A. x e. A A. y e. A ph /\ A. x e. A ps ) /\
                         ( A. y e. A ch /\ th ) ) ) ) $=
      ( wcel csn cun wral wa ralunsn ralbidv cv wceq r19.26 anbi1i syl6bb bitrd
      anbi12d ) HIMZAFGHNOZPZEUHPAFGPZBQZEUHPZUJEGPBEGPQZCFGPZDQZQZUGUIUKEUHABF
      GHIKRSUGULUKEGPZUOQUPUKUOEGHIETHUAZUJUNBDURACFGJSLUFRUQUMUOUJBEGUBUCUDUE
      $.
  $}

  $( Expansion of an ordered pair when either member is a proper class.
     (Contributed by Mario Carneiro, 26-Apr-2015.) $)
  opprc $p |- ( -. ( A e. _V /\ B e. _V ) -> <. A , B >. = (/) ) $=
    ( cvv wcel wa wn cop csn cpr c0 cif dfopif iffalse syl5eq ) ACDBCDEZFABGOAH
    ABIIZJKJABLOPJMN $.

  $( Expansion of an ordered pair when the first member is a proper class.  See
     also ~ opprc .  (Contributed by NM, 10-Apr-2004.)  (Revised by Mario
     Carneiro, 26-Apr-2015.) $)
  opprc1 $p |- ( -. A e. _V -> <. A , B >. = (/) ) $=
    ( cvv wcel wn wa cop c0 wceq simpl con3i opprc syl ) ACDZENBCDZFZEABGHIPNNO
    JKABLM $.

  $( Expansion of an ordered pair when the second member is a proper class.
     See also ~ opprc .  (Contributed by NM, 15-Nov-1994.)  (Revised by Mario
     Carneiro, 26-Apr-2015.) $)
  opprc2 $p |- ( -. B e. _V -> <. A , B >. = (/) ) $=
    ( cvv wcel wn wa cop c0 wceq simpr con3i opprc syl ) BCDZEACDZNFZEABGHIPNON
    JKABLM $.

  $( If an ordered pair has an element, then its arguments are sets.
     (Contributed by Mario Carneiro, 26-Apr-2015.) $)
  oprcl $p |- ( C e. <. A , B >. -> ( A e. _V /\ B e. _V ) ) $=
    ( cop wcel c0 wceq cvv wa n0i opprc nsyl2 ) CABDZEMFGAHEBHEIMCJABKL $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( The power set of a singleton.  (Contributed by NM, 5-Jun-2006.) $)
    pwsn $p |- ~P { A } = { (/) , { A } } $=
      ( vx cv csn wss cab c0 wceq wo cpw cpr sssn abbii df-pw dfpr2 3eqtr4i ) B
      CZADZEZBFQGHQRHIZBFRJGRKSTBQALMBRNBGROP $.

    $d x y $.  $d y A $.
    $( Alternate proof of ~ pwsn , more direct.  (Contributed by NM,
       5-Jun-2006.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    pwsnALT $p |- ~P { A } = { (/) , { A } } $=
      ( vx vy cv csn wss cab c0 wceq wo cpw cpr wn wa wcel wal dfss2 wex sylbi
      wi velsn imbi2i albii bitri neq0 exintr syl5bi df-clel exancom snssi syl6
      bitr2i anc2li eqss syl6ibr orrd 0ss sseq1 mpbiri eqimss jaoi impbii abbii
      df-pw dfpr2 3eqtr4i ) BDZAEZFZBGVGHIZVGVHIZJZBGVHKHVHLVIVLBVIVLVIVJVKVIVJ
      MZVIVHVGFZNVKVIVMVNVICDZVGOZVOAIZTZCPZVMVNTVIVPVOVHOZTZCPVSCVGVHQWAVRCVTV
      QVPCAUAUBUCUDVSVMVPVQNCRZVNVMVPCRVSWBCVGUEVPVQCUFUGWBAVGOZVNWCVQVPNCRWBCA
      VGUHVQVPCUIULAVGUJSUKSUMVGVHUNUOUPVJVIVKVJVIHVHFVHUQVGHVHURUSVGVHUTVAVBVC
      BVHVDBHVHVEVF $.

    $( The power set of an unordered pair.  (Contributed by NM, 1-May-2009.) $)
    pwpr $p |- ~P { A , B } = ( { (/) , { A } } u. { { B } , { A , B } } ) $=
      ( vx cpr cpw c0 csn cun cv wss wcel wo wceq sspr vex orbi12i bitr4i selpw
      elpr elun 3bitr4i eqriv ) CABDZEZFAGZDZBGZUCDZHZCIZUCJZUJUFKZUJUHKZLZUJUD
      KUJUIKUKUJFMUJUEMLZUJUGMUJUCMLZLUNUJABNULUOUMUPUJFUECOZSUJUGUCUQSPQCUCRUJ
      UFUHTUAUB $.

    $( The power set of an unordered triple.  (Contributed by Mario Carneiro,
       2-Jul-2016.) $)
    pwtp $p |- ~P { A , B , C } =
      ( ( { (/) , { A } } u. { { B } , { A , B } } ) u.
        ( { { C } , { A , C } } u. { { B , C } , { A , B , C } } ) ) $=
      ( vx ctp cpw c0 csn cpr cun cv wcel selpw wo wceq elun elpr orbi12i bitri
      wss vex sstp 3bitr4ri eqriv ) DABCEZFZGAHZIZBHZABIZIZJZCHZACIZIZBCIZUEIZJ
      ZJZDKZUFLUTUETZUTUSLZDUEMUTULLZUTURLZNUTGOUTUGONZUTUIOUTUJONZNZUTUMOUTUNO
      NZUTUPOUTUEONZNZNVBVAVCVGVDVJVCUTUHLZUTUKLZNVGUTUHUKPVKVEVLVFUTGUGDUAZQUT
      UIUJVMQRSVDUTUOLZUTUQLZNVJUTUOUQPVNVHVOVIUTUMUNVMQUTUPUEVMQRSRUTULURPUTAB
      CUBUCSUD $.
  $}

  $( Compute the power set of the power set of the power set of the empty set.
     (See also ~ pw0 and ~ pwpw0 .)  (Contributed by NM, 2-May-2009.) $)
  pwpwpw0 $p |- ~P { (/) , { (/) } } =
                ( { (/) , { (/) } } u. { { { (/) } } , { (/) , { (/) } } } ) $=
    ( c0 csn pwpr ) AABC $.

  $( The power class of the universe is the universe.  Exercise 4.12(d) of
     [Mendelson] p. 235.  (Contributed by NM, 14-Sep-2003.) $)
  pwv $p |- ~P _V = _V $=
    ( vx cvv cpw cv wcel wss ssv selpw mpbir vex 2th eqriv ) ABCZBADZMEZNBEONBF
    NGABHIAJKL $.

  ${
    $d A v $.  $d B v $.  $d C v $.  $d V v $.
    $( For an element of a proper unordered pair of elements of a class ` V ` ,
       there is another (different) element of the class ` V ` which is an
       element of the proper pair.  (Contributed by AV, 18-Dec-2021.) $)
    prproe $p |- ( ( C e. { A , B } /\ A =/= B /\ ( A e. V /\ B e. V ) )
                   -> E. v e. ( V \ { C } ) v e. { A , B } ) $=
      ( wcel wne wa wceq wi neeq2 eqcoms biimpcd adantr impcom eldifsn sylanbrc
      wb eleq1 adantl cpr cv csn cdif wrex wo elpri necom sylbi prid2g rspcedvd
      simprrr ex simprrl prid1g jaoi syl 3impib ) DBCUAZFZBCGZBEFZCEFZHZAUBZUSF
      ZAEDUCUDZUEZUTDBIZDCIZUFVAVDHZVHJZDBCUGVIVLVJVIVKVHVIVKHZVFCUSFZACVGVMVCC
      DGZCVGFVIVAVBVCULVKVIVOVAVIVOJZVDVACBGZVPBCUHVIVQVOVQVORBDBDCKLMUINOCEDPQ
      VECIVFVNRVMVECUSSTVKVNVIVDVNVAVCVNVBBCEUJTTTUKUMVJVKVHVJVKHZVFBUSFZABVGVR
      VBBDGZBVGFVJVAVBVCUNVKVJVTVAVJVTJVDVJVAVTVAVTRCDCDBKLMNOBEDPQVEBIVFVSRVRV
      EBUSSTVKVSVJVDVSVAVBVSVCBCEUONTTUKUMUPUQUR $.
  $}

  $( If there are three elements in a proper unordered pair, and two of them
     are different from the third one, the two must be equal.  (Contributed by
     AV, 19-Dec-2021.) $)
  3elpr2eq $p |- ( ( ( X e. { A , B } /\ Y e. { A , B } /\ Z e. { A , B } )
                     /\ ( Y =/= X /\ Z =/= X ) ) -> Y = Z ) $=
    ( wcel wne wa wceq wo wi elpri eqtr3 eqneqall syl adantld ex a1d impd jaoi
    cpr w3a 2a1d com12 com13 3imp syl3an imp ) CABUAZFZDUIFZEUIFZUBDCGZECGZHZDE
    IZUJCAIZCBIZJZUKDAIZDBIZJZULEAIZEBIZJZUOUPKZCABLDABLEABLUSVBVEVFUQVBVEVFKKU
    RVEVBUQVFVCVBUQVFKZKVDVCVGVBVCUQVFVCUQHZUNUPUMVHECIZUNUPKZECAMUPECNZOPQRVBV
    DVGUTVDVGKVAUTVGVDUTUQVFUTUQHZUMUNUPVLDCIZUMVJKZDCAMVJDCNZOSQRVAVDVGVAVDHUP
    UQUODEBMUCQTUDTUEVEVBURVFVCVBURVFKZKVDVBVCVPUTVCVPKVAUTVCVPUTVCHUPURUODEAMU
    CQVAVPVCVAURVFVAURHZUMUNUPVQVMVNDCBMVOOSQRTUDVDVPVBVDURVFVDURHZUNUPUMVRVIVJ
    ECBMVKOPQRTUETUFUGUH $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The union of a class
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare class union symbol. $)
  $c U. $. $( Big cup $)

  $( Extend class notation to include the union of a class (read:  'union
     ` A ` ') $)
  cuni $a class U. A $.

  ${
    $d x y A $.
    $( Define the union of a class i.e. the collection of all members of the
       members of the class.  Definition 5.5 of [TakeutiZaring] p. 16.  For
       example, ` U. { { 1 , 3 } , { 1 , 8 } } = { 1 , 3 , 8 } ` ( ~ ex-uni ).
       This is similar to the union of two classes ~ df-un .  (Contributed by
       NM, 23-Aug-1993.) $)
    df-uni $a |- U. A = { x | E. y ( x e. y /\ y e. A ) } $.
  $}

  ${
    $d x y A $.
    $( Alternate definition of class union.  (Contributed by NM,
       28-Jun-1998.) $)
    dfuni2 $p |- U. A = { x | E. y e. A x e. y } $=
      ( cuni cv wcel wa wex cab wrex df-uni exancom df-rex bitr4i abbii eqtri )
      CDAEBEZFZQCFZGBHZAIRBCJZAIABCKTUAATSRGBHUARSBLRBCMNOP $.
  $}

  ${
    $d x A y $.  $d x B y $.
    $( Membership in class union.  (Contributed by NM, 22-May-1994.) $)
    eluni $p |- ( A e. U. B <-> E. x ( A e. x /\ x e. B ) ) $=
      ( vy cuni wcel cvv cv wa wex elex adantr exlimiv wceq eleq1 anbi1d exbidv
      df-uni elab2g pm5.21nii ) BCEZFBGFZBAHZFZUCCFZIZAJZBUAKUFUBAUDUBUEBUCKLMD
      HZUCFZUEIZAJUGDBUAGUHBNZUJUFAUKUIUDUEUHBUCOPQDACRST $.

    $( Membership in class union.  Restricted quantifier version.  (Contributed
       by NM, 31-Aug-1999.) $)
    eluni2 $p |- ( A e. U. B <-> E. x e. B A e. x ) $=
      ( cv wcel wa wex cuni wrex exancom eluni df-rex 3bitr4i ) BADZEZNCEZFAGPO
      FAGBCHEOACIOPAJABCKOACLM $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Membership in class union.  (Contributed by NM, 24-Mar-1995.) $)
    elunii $p |- ( ( A e. B /\ B e. C ) -> A e. U. C ) $=
      ( vx wcel wa cv cuni wceq eleq2 eleq1 anbi12d spcegv anabsi7 eluni sylibr
      wex ) ABEZBCEZFZADGZEZUACEZFZDQZACHERSUEUDTDBCUABIUBRUCSUABAJUABCKLMNDACO
      P $.
  $}

  ${
    $d y z A $.  $d x y z $.
    nfuni.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for union.  (Contributed by NM,
       30-Dec-1996.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    nfuni $p |- F/_ x U. A $=
      ( vy vz cuni wel wrex cab dfuni2 nfv nfrex nfab nfcxfr ) ABFDEGZEBHZDIDEB
      JPADOAEBCOAKLMN $.
  $}

  ${
    $d y z A $.  $d x y z $.  $d y z ph $.
    nfunid.3 $e |- ( ph -> F/_ x A ) $.
    $( Deduction version of ~ nfuni .  (Contributed by NM, 18-Feb-2013.) $)
    nfunid $p |- ( ph -> F/_ x U. A ) $=
      ( vy vz cuni wel wrex cab dfuni2 nfv nfvd nfrexd nfabd nfcxfrd ) ABCGEFHZ
      FCIZEJEFCKARBEAELAQBFCAFLDAQBMNOP $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Equality theorem for class union.  Exercise 15 of [TakeutiZaring] p. 18.
       (Contributed by NM, 10-Aug-1993.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    unieq $p |- ( A = B -> U. A = U. B ) $=
      ( vy vx wceq wel wrex cab cuni rexeq abbidv dfuni2 3eqtr4g ) ABEZCDFZDAGZ
      CHODBGZCHAIBINPQCODABJKCDALCDBLM $.
  $}

  ${
    unieqi.1 $e |- A = B $.
    $( Inference of equality of two class unions.  (Contributed by NM,
       30-Aug-1993.) $)
    unieqi $p |- U. A = U. B $=
      ( wceq cuni unieq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    unieqd.1 $e |- ( ph -> A = B ) $.
    $( Deduction of equality of two class unions.  (Contributed by NM,
       21-Apr-1995.) $)
    unieqd $p |- ( ph -> U. A = U. B ) $=
      ( wceq cuni unieq syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d x A y $.  $d ph y $.
    $( Membership in union of a class abstraction.  (Contributed by NM,
       11-Aug-1994.)  (Revised by Mario Carneiro, 14-Nov-2016.) $)
    eluniab $p |- ( A e. U. { x | ph } <-> E. x ( A e. x /\ ph ) ) $=
      ( vy cab cuni wcel cv wa wex eluni nfv nfsab1 nfan weq eleq2 eleq1 syl6bb
      abid anbi12d cbvex bitri ) CABEZFGCDHZGZUDUCGZIZDJCBHZGZAIZBJDCUCKUGUJDBU
      EUFBUEBLABDMNUJDLDBOZUEUIUFAUDUHCPUKUFUHUCGAUDUHUCQABSRTUAUB $.

    $( Membership in union of a class abstraction.  (Contributed by NM,
       4-Oct-2006.) $)
    elunirab $p |- ( A e. U. { x e. B | ph } <->
                   E. x e. B ( A e. x /\ ph ) ) $=
      ( cv wcel cab cuni wex crab wrex eluniab df-rab unieqi eleq2i df-rex an12
      wa exbii bitri 3bitr4i ) CBEZDFZARZBGZHZFCUBFZUDRZBIZCABDJZHZFUGARZBDKZUD
      BCLUKUFCUJUEABDMNOUMUCULRZBIUIULBDPUNUHBUCUGAQSTUA $.
  $}

  ${
    $d x y A $.  $d x y B $.
    unipr.1 $e |- A e. _V $.
    unipr.2 $e |- B e. _V $.
    $( The union of a pair is the union of its members.  Proposition 5.7 of
       [TakeutiZaring] p. 16.  (Contributed by NM, 23-Aug-1993.) $)
    unipr $p |- U. { A , B } = ( A u. B ) $=
      ( vx vy cv wcel wo cab cpr wa wex cun cuni wceq 19.43 bitri clel3 exancom
      vex elpr anbi2i andi exbii orbi12i 3bitr4ri abbii df-un df-uni 3eqtr4ri )
      EGZAHZULBHZIZEJULFGZHZUPABKZHZLZFMZEJABNUROUOVAEUQUPAPZLZUQUPBPZLZIZFMVCF
      MZVEFMZIVAUOVCVEFQUTVFFUTUQVBVDIZLVFUSVIUQUPABFUAUBUCUQVBVDUDRUEUMVGUNVHU
      MVBUQLFMVGFULACSVBUQFTRUNVDUQLFMVHFULBDSVDUQFTRUFUGUHEABUIEFURUJUK $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( The union of a pair is the union of its members.  Proposition 5.7 of
       [TakeutiZaring] p. 16.  (Contributed by NM, 25-Aug-2006.) $)
    uniprg $p |- ( ( A e. V /\ B e. W ) -> U. { A , B } = ( A u. B ) ) $=
      ( vx vy cv cpr cuni cun wceq preq1 unieqd uneq1 eqeq12d preq2 uneq2 unipr
      vex vtocl2g ) EGZFGZHZIZUAUBJZKAUBHZIZAUBJZKABHZIZABJZKEFABCDUAAKZUDUGUEU
      HULUCUFUAAUBLMUAAUBNOUBBKZUGUJUHUKUMUFUIUBBAPMUBBAQOUAUBESFSRT $.
  $}

  ${
    unisn.1 $e |- A e. _V $.
    $( A set equals the union of its singleton.  Theorem 8.2 of [Quine] p. 53.
       (Contributed by NM, 30-Aug-1993.) $)
    unisn $p |- U. { A } = A $=
      ( csn cuni cpr cun dfsn2 unieqi unipr unidm 3eqtri ) ACZDAAEZDAAFALMAGHAA
      BBIAJK $.
  $}

  ${
    $d x A $.
    $( A set equals the union of its singleton.  Theorem 8.2 of [Quine] p. 53.
       (Contributed by NM, 13-Aug-2002.) $)
    unisng $p |- ( A e. V -> U. { A } = A ) $=
      ( vx cv csn cuni wceq sneq unieqd id eqeq12d vex unisn vtoclg ) CDZEZFZOG
      AEZFZAGCABOAGZQSOATPROAHITJKOCLMN $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Union of a singleton in the form of a restricted class abstraction.
       (Contributed by NM, 3-Jul-2008.) $)
    unisn3 $p |- ( A e. B -> U. { x e. B | x = A } = A ) $=
      ( wcel cv wceq crab cuni csn rabsn unieqd unisng eqtrd ) BCDZAEBFACGZHBIZ
      HBNOPACBJKBCLM $.
  $}

  ${
    $d x y $.  $d y A $.
    $( An alternative statement of the effective freeness of a class ` A ` ,
       when it is a set.  (Contributed by Mario Carneiro, 14-Oct-2016.)  (Proof
       shortened by JJ, 26-Jul-2021.) $)
    dfnfc2 $p |- ( A. x A e. V -> ( F/_ x A <-> A. y F/ x y = A ) ) $=
      ( wcel wal wnfc cv wceq wnf nfcvd id nfeqd alrimiv csn df-nfc velsn nfbii
      cuni albii sylbbr nfunid nfa1 unisng sps nfceqdf syl5ib impbid2 ) CDEZAFZ
      ACGZBHZCIZAJZBFZUKUNBUKAULCUKAULKUKLMNUOACOZSZGUJUKUOAUPAUPGULUPEZAJZBFUO
      ABUPPUSUNBURUMABCQRTUAUBUJAUQCUIAUCUIUQCIACDUDUEUFUGUH $.

    $( Obsolete proof of ~ dfnfc2 as of 26-Jul-2021.  (Contributed by Mario
       Carneiro, 14-Oct-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    dfnfc2OLD $p |- ( A. x A e. V -> ( F/_ x A <-> A. y F/ x y = A ) ) $=
      ( wcel wal wnfc cv wceq wnf nfcvd id nfeqd alrimiv csn simpr df-nfc velsn
      wa cuni nfbii albii bitri sylibr nfunid nfa1 nfnf1 nfal unisng sps adantr
      nfan nfceqdf mpbid ex impbid2 ) CDEZAFZACGZBHZCIZAJZBFZUSVBBUSAUTCUSAUTKU
      SLMNURVCUSURVCSZACOZTZGUSVDAVEVDVCAVEGZURVCPVGUTVEEZAJZBFVCABVEQVIVBBVHVA
      ABCRUAUBUCUDUEVDAVFCURVCAUQAUFVBABVAAUGUHULURVFCIZVCUQVJACDUIUJUKUMUNUOUP
      $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The class union of the union of two classes.  Theorem 8.3 of [Quine]
       p. 53.  (Contributed by NM, 20-Aug-1993.) $)
    uniun $p |- U. ( A u. B ) = ( U. A u. U. B ) $=
      ( vx vy cun cuni cv wcel wa wo 19.43 elun anbi2i andi bitri exbii orbi12i
      wex eluni 3bitr4i eqriv ) CABEZFZAFZBFZEZCGZDGZHZUHUBHZIZDRZUGUDHZUGUEHZJ
      ZUGUCHUGUFHUIUHAHZIZUIUHBHZIZJZDRUQDRZUSDRZJULUOUQUSDKUKUTDUKUIUPURJZIUTU
      JVCUIUHABLMUIUPURNOPUMVAUNVBDUGASDUGBSQTDUGUBSUGUDUELTUA $.

    $( The class union of the intersection of two classes.  Exercise 4.12(n) of
       [Mendelson] p. 235.  See ~ uniinqs for a condition where equality holds.
       (Contributed by NM, 4-Dec-2003.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    uniin $p |- U. ( A i^i B ) C_ ( U. A i^i U. B ) $=
      ( vx vy cin cuni cv wcel wex 19.40 elin anbi2i anandi bitri exbii anbi12i
      wa eluni 3imtr4i ssriv ) CABEZFZAFZBFZEZCGZDGZHZUGUAHZQZDIZUFUCHZUFUDHZQZ
      UFUBHUFUEHUHUGAHZQZUHUGBHZQZQZDIUPDIZURDIZQUKUNUPURDJUJUSDUJUHUOUQQZQUSUI
      VBUHUGABKLUHUOUQMNOULUTUMVADUFARDUFBRPSDUFUARUFUCUDKST $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Subclass relationship for class union.  Theorem 61 of [Suppes] p. 39.
       (Contributed by NM, 22-Mar-1998.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    uniss $p |- ( A C_ B -> U. A C_ U. B ) $=
      ( vx vy wss cuni cv wcel wa wex ssel anim2d eximdv eluni 3imtr4g ssrdv )
      ABEZCAFZBFZQCGZDGZHZUAAHZIZDJUBUABHZIZDJTRHTSHQUDUFDQUCUEUBABUAKLMDTANDTB
      NOP $.

    $( Subclass relationship for class union.  (Contributed by NM,
       24-May-1994.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.)  (Proof
       shortened by JJ, 26-Jul-2021.) $)
    ssuni $p |- ( ( A C_ B /\ B e. C ) -> A C_ U. C ) $=
      ( vy wcel wss cuni cv wi elunii expcom imim2d alimdv dfss2 3imtr4g impcom
      wal ) BCEZABFZACGZFZRDHZAEZUBBEZIZDQUCUBTEZIZDQSUARUEUGDRUDUFUCUDRUFUBBCJ
      KLMDABNDATNOP $.

    $( Obsolete proof of ~ ssuni as of 26-Jul-2021.  (Contributed by NM,
       24-May-1994.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ssuniOLD $p |- ( ( A C_ B /\ B e. C ) -> A C_ U. C ) $=
      ( vy vx wcel wss cuni cv wi wal eleq2 imbi1d elunii expcom vtoclga imim2d
      wceq alimdv dfss2 3imtr4g impcom ) BCFZABGZACHZGZUCDIZAFZUGBFZJZDKUHUGUEF
      ZJZDKUDUFUCUJULDUCUIUKUHUGEIZFZUKJUIUKJEBCUMBRUNUIUKUMBUGLMUNUMCFUKUGUMCN
      OPQSDABTDAUETUAUB $.
  $}

  ${
    unissi.1 $e |- A C_ B $.
    $( Subclass relationship for subclass union.  Inference form of ~ uniss .
       (Contributed by David Moews, 1-May-2017.) $)
    unissi $p |- U. A C_ U. B $=
      ( wss cuni uniss ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    unissd.1 $e |- ( ph -> A C_ B ) $.
    $( Subclass relationship for subclass union.  Deduction form of ~ uniss .
       (Contributed by David Moews, 1-May-2017.) $)
    unissd $p |- ( ph -> U. A C_ U. B ) $=
      ( wss cuni uniss syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d x y A $.
    $( The union of a set is empty iff the set is included in the singleton of
       the empty set.  (Contributed by NM, 12-Sep-2004.) $)
    uni0b $p |- ( U. A = (/) <-> A C_ { (/) } ) $=
      ( vx vy cv c0 csn wcel wral wceq wss cuni velsn ralbii dfss3 wn wrex neq0
      wex rexcom4 3bitr4ri rexbii eluni2 exbii rexnal 3bitri con4bii ) BDZEFZGZ
      BAHUGEIZBAHZAUHJAKZEIZUIUJBABELMBAUHNUMUKUMOCDZULGZCRZUJOZBAPZUKOCULQUNUG
      GZCRZBAPUSBAPZCRURUPUSBCASUQUTBACUGQUAUOVACBUNAUBUCTUJBAUDUEUFT $.

    $( The union of a set is empty iff all of its members are empty.
       (Contributed by NM, 16-Aug-2006.) $)
    uni0c $p |- ( U. A = (/) <-> A. x e. A x = (/) ) $=
      ( cuni c0 wceq csn wss cv wcel wral uni0b dfss3 velsn ralbii 3bitri ) BCD
      EBDFZGAHZPIZABJQDEZABJBKABPLRSABADMNO $.
  $}

  $( The union of the empty set is the empty set.  Theorem 8.7 of [Quine]
     p. 54.  (Reproved without relying on ~ ax-nul by Eric Schmidt.)
     (Contributed by NM, 16-Sep-1993.)  (Revised by Eric Schmidt,
     4-Apr-2007.) $)
  uni0 $p |- U. (/) = (/) $=
    ( c0 cuni wceq csn wss 0ss uni0b mpbir ) ABACAADZEIFAGH $.

  ${
    $d A y z $.  $d B y z $.  $d x y z $.
    $( Distribute proper substitution through the union of a class.
       (Contributed by Alan Sare, 10-Nov-2012.)  (Revised by NM,
       22-Aug-2018.) $)
    csbuni $p |- [_ A / x ]_ U. B = U. [_ A / x ]_ B $=
      ( vz vy cvv wcel cuni csb wceq wel cv wa wex wsbc syl5bb df-uni c0 csbprc
      cab csbab sbcex2 anbi1d sbcel2 anbi2i syl6bb exbidv abbidv syl5eq csbeq2i
      sbcan sbcg 3eqtr4g wn unieqd uni0 syl6req eqtrd pm2.61i ) BFGZABCHZIZABCI
      ZHZJUTABDEKZELZCGZMZENZDTZIZVEVFVCGZMZENZDTZVBVDUTVKVIABOZDTVOVIADBUAUTVP
      VNDVPVHABOZENUTVNVHEABUBUTVQVMEVQVEABOZVGABOZMZUTVMVEVGABUKUTVTVEVSMVMUTV
      RVEVSVEABFULUCVSVLVEABVFCUDUEUFPUGPUHUIABVAVJDECQUJDEVCQUMUTUNZVBRVDABVAS
      WAVDRHRWAVCRABCSUOUPUQURUS $.
  $}

  $( An element of a class is a subclass of its union.  Theorem 8.6 of [Quine]
     p. 54.  Also the basis for Proposition 7.20 of [TakeutiZaring] p. 40.
     (Contributed by NM, 6-Jun-1994.) $)
  elssuni $p |- ( A e. B -> A C_ U. B ) $=
    ( wss wcel cuni ssid ssuni mpan ) AACABDABECAFAABGH $.

  $( Condition turning a subclass relationship for union into an equality.
     (Contributed by NM, 18-Jul-2006.) $)
  unissel $p |- ( ( U. A C_ B /\ B e. A ) -> U. A = B ) $=
    ( cuni wss wcel wa simpl elssuni adantl eqssd ) ACZBDZBAEZFKBLMGMBKDLBAHIJ
    $.

  ${
    $d x y A $.  $d x y B $.
    $( Relationship involving membership, subset, and union.  Exercise 5 of
       [Enderton] p. 26 and its converse.  (Contributed by NM, 20-Sep-2003.) $)
    unissb $p |- ( U. A C_ B <-> A. x e. A x C_ B ) $=
      ( vy cv cuni wcel wi wal wss wa wex eluni imbi1i 19.23v albii bitri dfss2
      wral 3bitr4i bitr4i alcom 19.21v impexp bi2.04 imbi2i df-ral ) DEZBFZGZUH
      CGZHZDIZAEZBGZUNCJZHZAIZUICJUPABSUMUHUNGZUOKZUKHZAIZDIZURULVBDULUTALZUKHV
      BUJVDUKAUHBMNUTUKAOUAPVCVADIZAIURVADAUBVEUQAUOUSUKHZHZDIUOVFDIZHVEUQUOVFD
      UCVAVGDVAUSUOUKHHVGUSUOUKUDUSUOUKUEQPUPVHUODUNCRUFTPQQDUICRUPABUGT $.
  $}

  ${
    $d x A $.  $d x y B $.
    $( A subclass condition on the members of two classes that implies a
       subclass relation on their unions.  Proposition 8.6 of [TakeutiZaring]
       p. 59.  See ~ iunss2 for a generalization to indexed unions.
       (Contributed by NM, 22-Mar-2004.) $)
    uniss2 $p |- ( A. x e. A E. y e. B x C_ y -> U. A C_ U. B ) $=
      ( cv wss wrex wral cuni wcel ssuni expcom rexlimiv ralimi unissb sylibr )
      AEZBEZFZBDGZACHQDIZFZACHCIUAFTUBACSUBBDSRDJUBQRDKLMNACUAOP $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( If the difference ` A \ B ` contains the largest members of ` A ` , then
       the union of the difference is the union of ` A ` .  (Contributed by NM,
       22-Mar-2004.) $)
    unidif $p |- ( A. x e. A E. y e. ( A \ B ) x C_ y ->
               U. ( A \ B ) = U. A ) $=
      ( cv wss cdif wrex wral cuni wceq uniss2 difss unissi jctil eqss sylibr
      wa ) AEBEFBCDGZHACIZSJZCJZFZUBUAFZRUAUBKTUDUCABCSLSCCDMNOUAUBPQ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Relationship implying union.  (Contributed by NM, 10-Nov-1999.) $)
    ssunieq $p |- ( ( A e. B /\ A. x e. B x C_ A ) -> A = U. B ) $=
      ( wcel cv wss wral cuni wceq elssuni unissb biimpri anim12i eqss sylibr
      wa ) BCDZAEBFACGZPBCHZFZSBFZPBSIQTRUABCJUARACBKLMBSNO $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Any member of a class is the largest of those members that it includes.
       (Contributed by NM, 13-Aug-2002.) $)
    unimax $p |- ( A e. B -> U. { x e. B | x C_ A } = A ) $=
      ( vy wcel cv wss crab wral cuni wceq ssid sseq1 elrab3 elrab simprbi rgen
      mpbiri wa ssunieq eqcomd sylancl ) BCEZBAFZBGZACHZEZDFZBGZDUFIZUFJZBKUCUG
      BBGZBLUEULABCUDBBMNRUIDUFUHUFEUHCEUIUEUIAUHCUDUHBMOPQUGUJSBUKDBUFTUAUB $.
  $}

  ${
    $d A x $.
    $( A class is a subclass of the power class of its union.  Exercise 6(b) of
       [Enderton] p. 38.  (Contributed by NM, 14-Oct-1996.) $)
    pwuni $p |- A C_ ~P U. A $=
      ( vx cuni cpw cv wcel wss elssuni selpw sylibr ssriv ) BAACZDZBEZAFNLGNMF
      NAHBLIJK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The intersection of a class
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare class intersection symbol. $)
  $c |^| $. $( Big cap $)

  $( Extend class notation to include the intersection of a class (read:
     'intersect ` A ` '). $)
  cint $a class |^| A $.

  ${
    $d x y A $.
    $( Define the intersection of a class.  Definition 7.35 of [TakeutiZaring]
       p. 44.  For example, ` |^| { { 1 , 3 } , { 1 , 8 } } = { 1 } ` .
       Compare this with the intersection of two classes, ~ df-in .
       (Contributed by NM, 18-Aug-1993.) $)
    df-int $a |- |^| A = { x | A. y ( y e. A -> x e. y ) } $.
  $}

  ${
    $d x y A $.
    $( Alternate definition of class intersection.  (Contributed by NM,
       28-Jun-1998.) $)
    dfint2 $p |- |^| A = { x | A. y e. A x e. y } $=
      ( cint cv wcel wi wal cab wral df-int df-ral abbii eqtr4i ) CDBEZCFAEOFZG
      BHZAIPBCJZAIABCKRQAPBCLMN $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Equality law for intersection.  (Contributed by NM, 13-Sep-1999.) $)
    inteq $p |- ( A = B -> |^| A = |^| B ) $=
      ( vx vy wceq wel wral cab cint raleq abbidv dfint2 3eqtr4g ) ABEZCDFZDAGZ
      CHODBGZCHAIBINPQCODABJKCDALCDBLM $.
  $}

  ${
    inteqi.1 $e |- A = B $.
    $( Equality inference for class intersection.  (Contributed by NM,
       2-Sep-2003.) $)
    inteqi $p |- |^| A = |^| B $=
      ( wceq cint inteq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    inteqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for class intersection.  (Contributed by NM,
       2-Sep-2003.) $)
    inteqd $p |- ( ph -> |^| A = |^| B ) $=
      ( wceq cint inteq syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d x A y $.  $d x B y $.
    elint.1 $e |- A e. _V $.
    $( Membership in class intersection.  (Contributed by NM, 21-May-1994.) $)
    elint $p |- ( A e. |^| B <-> A. x ( x e. B -> A e. x ) ) $=
      ( vy cv wcel wi wal cint wceq eleq1 imbi2d albidv df-int elab2 ) AFZCGZEF
      ZQGZHZAIRBQGZHZAIEBCJDSBKZUAUCAUDTUBRSBQLMNEACOP $.
  $}

  ${
    $d x A $.  $d x B $.
    elint2.1 $e |- A e. _V $.
    $( Membership in class intersection.  (Contributed by NM, 14-Oct-1999.) $)
    elint2 $p |- ( A e. |^| B <-> A. x e. B A e. x ) $=
      ( cint wcel cv wi wal wral elint df-ral bitr4i ) BCEFAGZCFBNFZHAIOACJABCD
      KOACLM $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Membership in class intersection, with the sethood requirement expressed
       as an antecedent.  (Contributed by NM, 20-Nov-2003.)  (Proof shortened
       by JJ, 26-Jul-2021.) $)
    elintg $p |- ( A e. V -> ( A e. |^| B <-> A. x e. B A e. x ) ) $=
      ( vy wel wral cv wcel cint wceq eleq1 ralbidv dfint2 elab2g ) EAFZACGBAHZ
      IZACGEBCJDEHZBKPRACSBQLMEACNO $.

    $( Obsolete proof of ~ elintg as of 26-Jul-2021.  (Contributed by NM,
       20-Nov-2003.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    elintgOLD $p |- ( A e. V -> ( A e. |^| B <-> A. x e. B A e. x ) ) $=
      ( vy cv cint wcel wral eleq1 wceq ralbidv vex elint2 vtoclbg ) EFZCGZHPAF
      ZHZACIBQHBRHZACIEBDPBQJPBKSTACPBRJLAPCEMNO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Membership in class intersection.  (Contributed by NM, 14-Oct-1999.)
       (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    elinti $p |- ( A e. |^| B -> ( C e. B -> A e. C ) ) $=
      ( vx cint wcel wi cv wral elintg eleq2 rspccv syl6bi pm2.43i ) ABEZFZCBFA
      CFZGZPPADHZFZDBIRDABOJTQDCBSCAKLMN $.
  $}

  ${
    $d y z A $.  $d x y z $.
    nfint.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for intersection.  (Contributed by NM,
       2-Feb-1997.)  (Proof shortened by Andrew Salmon, 12-Aug-2011.) $)
    nfint $p |- F/_ x |^| A $=
      ( vy vz cint wel wral cab dfint2 nfv nfral nfab nfcxfr ) ABFDEGZEBHZDIDEB
      JPADOAEBCOAKLMN $.
  $}

  ${
    $d A x y $.  $d ph y $.
    inteqab.1 $e |- A e. _V $.
    $( Membership in the intersection of a class abstraction.  (Contributed by
       NM, 30-Aug-1993.) $)
    elintab $p |- ( A e. |^| { x | ph } <-> A. x ( ph -> A e. x ) ) $=
      ( vy cab cint wcel cv wi wal elint nfsab1 nfv nfim weq eleq1 syl6bb eleq2
      abid imbi12d cbval bitri ) CABFZGHEIZUDHZCUEHZJZEKACBIZHZJZBKECUDDLUHUKEB
      UFUGBABEMUGBNOUKENEBPZUFAUGUJULUFUIUDHAUEUIUDQABTRUEUICSUAUBUC $.

    $( Membership in the intersection of a class abstraction.  (Contributed by
       NM, 17-Oct-1999.) $)
    elintrab $p |- ( A e. |^| { x e. B | ph } <->
                 A. x e. B ( ph -> A e. x ) ) $=
      ( cv wcel wa cab cint wi wal crab wral elintab impexp albii df-rab inteqi
      bitri eleq2i df-ral 3bitr4i ) CBFZDGZAHZBIZJZGZUEACUDGZKZKZBLZCABDMZJZGUK
      BDNUIUFUJKZBLUMUFBCEOUPULBUEAUJPQTUOUHCUNUGABDRSUAUKBDUBUC $.
  $}

  ${
    $d x y A $.  $d y B $.  $d y ph $.
    $( Membership in the intersection of a class abstraction.  (Contributed by
       NM, 17-Feb-2007.) $)
    elintrabg $p |- ( A e. V -> ( A e. |^| { x e. B | ph } <->
                 A. x e. B ( ph -> A e. x ) ) ) $=
      ( vy cv crab cint wcel wi wral eleq1 wceq imbi2d ralbidv elintrab vtoclbg
      vex ) FGZABDHIZJATBGZJZKZBDLCUAJACUBJZKZBDLFCETCUAMTCNZUDUFBDUGUCUEATCUBM
      OPABTDFSQR $.
  $}

  ${
    $d x y $.
    $( The intersection of the empty set is the universal class.  Exercise 2 of
       [TakeutiZaring] p. 44.  (Contributed by NM, 18-Aug-1993.)  (Proof
       shortened by JJ, 26-Jul-2021.) $)
    int0 $p |- |^| (/) = _V $=
      ( vy vx c0 cint cvv cv wcel wel wral ral0 vex elint2 mpbir 2th eqriv ) AC
      DZEAFZPGZQEGRABHZBCISBJBQCAKZLMTNO $.

    $( Obsolete proof of ~ int0 as of 26-Jul-2021.  (Contributed by NM,
       18-Aug-1993.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    int0OLD $p |- |^| (/) = _V $=
      ( vy vx cv c0 wcel wi wal cab weq cint cvv pm2.21i ax-gen equid 2th abbii
      noel df-int df-v 3eqtr4i ) ACZDEZBCUAEZFZAGZBHBBIZBHDJKUEUFBUEUFUDAUBUCUA
      QLMBNOPBADRBST $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y ph $.
    $( An element of a class includes the intersection of the class.  Exercise
       4 of [TakeutiZaring] p. 44 (with correction), generalized to classes.
       (Contributed by NM, 18-Nov-1995.) $)
    intss1 $p |- ( A e. B -> |^| B C_ A ) $=
      ( vx vy wcel cint cv wal vex elint wceq eleq1 eleq2 imbi12d spcgv pm2.43a
      wi syl5bi ssrdv ) ABEZCBFZACGZUAEDGZBEZUBUCEZQZDHZTUBAEZDUBBCIJUGTUHUFTUH
      QDABUCAKUDTUEUHUCABLUCAUBMNOPRS $.

    $( Subclass of a class intersection.  Theorem 5.11(viii) of [Monk1] p. 52
       and its converse.  (Contributed by NM, 14-Oct-1999.) $)
    ssint $p |- ( A C_ |^| B <-> A. x e. B A C_ x ) $=
      ( vy cint wss cv wcel wral dfss3 vex elint2 ralbii ralcom bitr4i 3bitri )
      BCEZFDGZQHZDBIRAGZHZACIZDBIZBTFZACIZDBQJSUBDBARCDKLMUCUADBIZACIUEUADABCNU
      DUFACDBTJMOP $.

    $( Subclass of the intersection of a class abstraction.  (Contributed by
       NM, 31-Jul-2006.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    ssintab $p |- ( A C_ |^| { x | ph } <-> A. x ( ph -> A C_ x ) ) $=
      ( vy cab cint wss cv wral wi wal ssint sseq2 ralab2 bitri ) CABEZFGCDHZGZ
      DPIACBHZGZJBKDCPLARTDBQSCMNO $.

    $( Subclass of the least upper bound.  (Contributed by NM, 8-Aug-2000.) $)
    ssintub $p |- A C_ |^| { x e. B | A C_ x } $=
      ( vy cv wss crab cint ssint wcel sseq2 elrab simprbi mprgbir ) BBAEZFZACG
      ZHFBDEZFZDQDBQIRQJRCJSPSARCORBKLMN $.

    $( Subclass of the minimum value of class of supersets.  (Contributed by
       NM, 10-Aug-2006.) $)
    ssmin $p |- A C_ |^| { x | ( A C_ x /\ ph ) } $=
      ( cv wss wa cab cint wi ssintab simpl mpgbir ) CCBDEZAFZBGHENMIBNBCJMAKL
      $.

    $( Any member of a class is the smallest of those members that include it.
       (Contributed by NM, 13-Aug-2002.)  (Proof shortened by Andrew Salmon,
       9-Jul-2011.) $)
    intmin $p |- ( A e. B -> |^| { x e. B | A C_ x } = A ) $=
      ( vy wcel cv wss crab cint wi wral elintrab ssid wceq sseq2 eleq2 imbi12d
      vex rspcv mpii syl5bi ssrdv ssintub a1i eqssd ) BCEZBAFZGZACHIZBUFDUIBDFZ
      UIEUHUJUGEZJZACKZUFUJBEZUHAUJCDRLUFUMBBGZUNBMULUOUNJABCUGBNUHUOUKUNUGBBOU
      GBUJPQSTUAUBBUIGUFABCUCUDUE $.

    $( Intersection of subclasses.  (Contributed by NM, 14-Oct-1999.)  (Proof
       shortened by OpenAI, 25-Mar-2020.) $)
    intss $p |- ( A C_ B -> |^| B C_ |^| A ) $=
      ( vy vx wss wel wral cab cint ssralv ss2abdv dfint2 3sstr4g ) ABEZCDFZDBG
      ZCHODAGZCHBIAINPQCODABJKCDBLCDALM $.

    $( The intersection of a nonempty set is a subclass of its union.
       (Contributed by NM, 29-Jul-2006.) $)
    intssuni $p |- ( A =/= (/) -> |^| A C_ U. A ) $=
      ( vx vy c0 wne cint cuni cv wcel wral r19.2z ex vex elint2 eluni2 3imtr4g
      wrex ssrdv ) ADEZBAFZAGZSBHZCHIZCAJZUCCAQZUBTIUBUAISUDUEUCCAKLCUBABMNCUBA
      OPR $.
  $}

  ${
    $d x A $.
    $( Subclass of the intersection of a restricted class builder.
       (Contributed by NM, 30-Jan-2015.) $)
    ssintrab $p |- ( A C_ |^| { x e. B | ph }
           <-> A. x e. B ( ph -> A C_ x ) ) $=
      ( crab cint wss cv wcel wa cab wral df-rab inteqi sseq2i wal impexp albii
      wi ssintab df-ral 3bitr4i bitri ) CABDEZFZGCBHZDIZAJZBKZFZGZACUFGZSZBDLZU
      EUJCUDUIABDMNOUHULSZBPUGUMSZBPUKUNUOUPBUGAULQRUHBCTUMBDUAUBUC $.
  $}

  $( If the union of a class is included in its intersection, the class is
     either the empty set or a singleton ( ~ uniintsn ).  (Contributed by NM,
     30-Oct-2010.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
  unissint $p |- ( U. A C_ |^| A <-> ( A = (/) \/ U. A = |^| A ) ) $=
    ( cuni cint wss c0 wo wn wa simpl wne df-ne intssuni sylbir adantl eqssd ex
    wceq orrd cvv ssv int0 sseqtr4i inteq syl5sseqr eqimss jaoi impbii ) ABZACZ
    DZAEQZUHUIQZFUJUKULUJUKGZULUJUMHUHUIUJUMIUMUIUHDZUJUMAEJUNAEKALMNOPRUKUJULU
    KECZUHUIUHSUOUHTUAUBAEUCUDUHUIUEUFUG $.

  $( Subclass relationship for intersection and union.  (Contributed by NM,
     29-Jul-2006.) $)
  intssuni2 $p |- ( ( A C_ B /\ A =/= (/) ) -> |^| A C_ U. B ) $=
    ( c0 wne wss cint cuni intssuni uniss sylan9ssr ) ACDABEAFAGBGAHABIJ $.

  ${
    $d x A $.  $d x B $.  $d x ps $.
    intminss.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Under subset ordering, the intersection of a restricted class
       abstraction is less than or equal to any of its members.  (Contributed
       by NM, 7-Sep-2013.) $)
    intminss $p |- ( ( A e. B /\ ps ) -> |^| { x e. B | ph } C_ A ) $=
      ( wcel wa crab cint wss elrab intss1 sylbir ) DEGBHDACEIZGOJDKABCDEFLDOMN
      $.
  $}

  ${
    $d x A $.
    intmin2.1 $e |- A e. _V $.
    $( Any set is the smallest of all sets that include it.  (Contributed by
       NM, 20-Sep-2003.) $)
    intmin2 $p |- |^| { x | A C_ x } = A $=
      ( cv wss cvv crab cint cab rabab inteqi wcel wceq intmin ax-mp eqtr3i ) B
      ADEZAFGZHZQAIZHBRTQAJKBFLSBMCABFNOP $.
  $}

  ${
    $d x A $.  $d x ps $.
    intmin3.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    intmin3.3 $e |- ps $.
    $( Under subset ordering, the intersection of a class abstraction is less
       than or equal to any of its members.  (Contributed by NM,
       3-Jul-2005.) $)
    intmin3 $p |- ( A e. V -> |^| { x | ph } C_ A ) $=
      ( wcel cab cint wss elabg mpbiri intss1 syl ) DEHZDACIZHZQJDKPRBGABCDEFLM
      DQNO $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( Elimination of a conjunct in a class intersection.  (Contributed by NM,
       31-Jul-2006.) $)
    intmin4 $p |- ( A C_ |^| { x | ph } ->
                  |^| { x | ( A C_ x /\ ph ) } = |^| { x | ph } ) $=
      ( vy cab cint wss cv wa wcel wi wal wb ssintab simpr impbid2 imbi1d alimi
      ancr elintab albi syl sylbi vex 3bitr4g eqrdv ) CABEFZGZDCBHZGZAIZBEFZUGU
      HUKDHZUIJZKZBLZAUNKZBLZUMULJUMUGJUHAUJKZBLZUPURMZABCNUTUOUQMZBLVAUSVBBUSU
      KAUNUSUKAUJAOAUJSPQRUOUQBUAUBUCUKBUMDUDZTABUMVCTUEUF $.
  $}

  ${
    $d x z A $.  $d x z ph $.  $d x y z $.
    intab.1 $e |- A e. _V $.
    intab.2 $e |- { x | E. y ( ph /\ x = A ) } e. _V $.
    $( The intersection of a special case of a class abstraction. ` y ` may be
       free in ` ph ` and ` A ` , which can be thought of a ` ph ( y ) ` and
       ` A ( y ) ` .  Typically, ~ abrexex2 or ~ abexssex can be used to
       satisfy the second hypothesis.  (Contributed by NM, 28-Jul-2006.)
       (Proof shortened by Mario Carneiro, 14-Nov-2016.) $)
    intab $p |- |^| { x | A. y ( ph -> A e. x ) } =
                { x | E. y ( ph /\ x = A ) } $=
      ( vz cv wcel wi wal cab cint wceq wa wex wss ex alrimiv sylibr cvv anbi2d
      eqeq1 exbidv cbvabv eqeltri nfe1 nfab nfeq2 eleq2 imbi2d albid elab 19.8a
      wsbc sbc6 df-sbc sylib mpgbir intss1 19.29r simplr pm3.35 adantlr eqeltrd
      ax-mp exlimiv syl vex elintab abssi eqssi eqtri ) ADBHZIZJZCKZBLZMZAGHZDN
      ZOZCPZGLZAVNDNZOZCPZBLZVSWDWDVRIZVSWDQWIADWDIZJZCVQWKCKBWDWDWHUAWCWGGBVTV
      NNZWBWFCWLWAWEAVTVNDUCUBUDUEZFUFVNWDNZVPWKCCVNWDWCCGWBCUGUHUIWNVOWJAVNWDD
      UJUKULUMAWCGDUOZWJAWAWCJZGKWOAWPGAWAWCWBCUNRSWCGDEUPTWCGDUQURUSWDVRUTVFWC
      GVSWCVQVTVNIZJZBKVTVSIWCWRBWCVQWQWCVQOWBVPOZCPWQWBVPCVAWSWQCWSVTDVNAWAVPV
      BAVPVOWAAVOVCVDVEVGVHRSVQBVTGVIVJTVKVLWMVM $.
  $}

  $( The intersection of a class containing the empty set is empty.
     (Contributed by NM, 24-Apr-2004.) $)
  int0el $p |- ( (/) e. A -> |^| A = (/) ) $=
    ( c0 wcel cint intss1 wss 0ss a1i eqssd ) BACZADZBBAEBKFJKGHI $.

  ${
    $d x y A $.  $d x y B $.
    $( The class intersection of the union of two classes.  Theorem 78 of
       [Suppes] p. 42.  (Contributed by NM, 22-Sep-2002.) $)
    intun $p |- |^| ( A u. B ) = ( |^| A i^i |^| B ) $=
      ( vx vy cun cint cin cv wcel wi wal wa 19.26 elun imbi1i jaob bitri elint
      wo 3bitr4i albii vex anbi12i elin eqriv ) CABEZFZAFZBFZGZDHZUFIZCHZUKIZJZ
      DKZUMUHIZUMUIIZLZUMUGIUMUJIUKAIZUNJZUKBIZUNJZLZDKVADKZVCDKZLUPUSVAVCDMUOV
      DDUOUTVBSZUNJVDULVGUNUKABNOUTUNVBPQUAUQVEURVFDUMACUBZRDUMBVHRUCTDUMUFVHRU
      MUHUIUDTUE $.
  $}

  ${
    $d x y A $.  $d x y B $.
    intpr.1 $e |- A e. _V $.
    intpr.2 $e |- B e. _V $.
    $( The intersection of a pair is the intersection of its members.  Theorem
       71 of [Suppes] p. 42.  (Contributed by NM, 14-Oct-1999.) $)
    intpr $p |- |^| { A , B } = ( A i^i B ) $=
      ( vx vy cpr cint cin cv wcel wi wal wa wceq 19.26 wo vex clel4 3bitr4i
      elpr imbi1i jaob bitri albii anbi12i elint elin eqriv ) EABGZHZABIZFJZUJK
      ZEJZUMKZLZFMZUOAKZUOBKZNZUOUKKUOULKUMAOZUPLZUMBOZUPLZNZFMVCFMZVEFMZNURVAV
      CVEFPUQVFFUQVBVDQZUPLVFUNVIUPUMABFRUAUBVBUPVDUCUDUEUSVGUTVHFUOACSFUOBDSUF
      TFUOUJERUGUOABUHTUI $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( The intersection of a pair is the intersection of its members.  Closed
       form of ~ intpr .  Theorem 71 of [Suppes] p. 42.  (Contributed by FL,
       27-Apr-2008.) $)
    intprg $p |- ( ( A e. V /\ B e. W ) -> |^| { A , B } = ( A i^i B ) ) $=
      ( vx vy cv cpr cint cin wceq preq1 inteqd ineq1 eqeq12d preq2 ineq2 intpr
      vex vtocl2g ) EGZFGZHZIZUAUBJZKAUBHZIZAUBJZKABHZIZABJZKEFABCDUAAKZUDUGUEU
      HULUCUFUAAUBLMUAAUBNOUBBKZUGUJUHUKUMUFUIUBBAPMUBBAQOUAUBESFSRT $.
  $}

  $( Intersection of a singleton.  (Contributed by Stefan O'Rear,
     22-Feb-2015.) $)
  intsng $p |- ( A e. V -> |^| { A } = A ) $=
    ( wcel csn cint cpr dfsn2 inteqi cin wceq intprg anidms inidm syl6eq syl5eq
    ) ABCZADZEAAFZEZAQRAGHPSAAIZAPSTJAABBKLAMNO $.

  ${
    intsn.1 $e |- A e. _V $.
    $( The intersection of a singleton is its member.  Theorem 70 of [Suppes]
       p. 41.  (Contributed by NM, 29-Sep-2002.) $)
    intsn $p |- |^| { A } = A $=
      ( cvv wcel csn cint wceq intsng ax-mp ) ACDAEFAGBACHI $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( Two ways to express " ` A ` is a singleton."  See also ~ en1 , ~ en1b ,
       ~ card1 , and ~ eusn .  (Contributed by NM, 2-Aug-2010.) $)
    uniintsn $p |- ( U. A = |^| A <-> E. x A = { x } ) $=
      ( vy cuni cint wceq cv wex wcel wa wal c0 inteq syl6eq adantl unieq sylib
      wne cvv wss csn wi vn0 int0 eqeq1 syl5ib imp eqtr3d ex necon3d mpi n0 cpr
      uni0 vex prss cun cin uniss simpl sseqtrd intss sstrd unipr intpr 3sstr3g
      inss1 ssun1 sstri jctir eqss uneqin bitr3i syl5bi alrimivv jca weu euabsn
      cab eleq1 abid2 eqeq1i exbii 3bitr3i unisn intsn 3eqtr4a exlimiv impbii
      eu4 ) BDZBEZFZBAGZUAZFZAHZWMWNBIZAHZWRCGZBIZJZWNWTFZUBZCKAKZJZWQWMWSXEWMB
      LRZWSWMSLRXGUCWMBLSLWMBLFZSLFWMXHJWLSLXHWLSFWMXHWLLESBLMUDNOWMXHWLLFZXHWK
      LFWMXIXHWKLDLBLPUNNWKWLLUEUFUGUHUIUJUKABULQWMXDACXBWNWTUMZBTZWMXCWNWTBAUO
      ZCUOZUPWMXKXCWMXKJZWNWTUQZWNWTURZTZXPXOTZJZXCXNXQXRXNXJDZXJEZXOXPXNXTWLYA
      XNXTWKWLXKXTWKTWMXJBUSOWMXKUTVAXKWLYATWMXJBVBOVCWNWTXLXMVDWNWTXLXMVEVFXPW
      NXOWNWTVGWNWTVHVIVJXSXOXPFXCXOXPVKWNWTVLVMQUIVNVOVPWRAVQWRAVSZWOFZAHXFWQW
      RAVRWRXAACWNWTBVTWJYCWPAYBBWOABWAWBWCWDQWPWMAWPWODWNWKWLWNXLWEBWOPWPWLWOE
      WNBWOMWNXLWFNWGWHWI $.

    $( The union and the intersection of a class abstraction are equal exactly
       when there is a unique satisfying value of ` ph ( x ) ` .  (Contributed
       by Mario Carneiro, 24-Dec-2016.) $)
    uniintab $p |- ( E! x ph <-> U. { x | ph } = |^| { x | ph } ) $=
      ( vy weu cab cv csn wceq wex cuni cint euabsn2 uniintsn bitr4i ) ABDABEZC
      FGHCIOJOKHABCLCOMN $.
  $}

  ${
    intunsn.1 $e |- B e. _V $.
    $( Theorem joining a singleton to an intersection.  (Contributed by NM,
       29-Sep-2002.) $)
    intunsn $p |- |^| ( A u. { B } ) = ( |^| A i^i B ) $=
      ( csn cun cint cin intun intsn ineq2i eqtri ) ABDZEFAFZLFZGMBGALHNBMBCIJK
      $.
  $}

  $( Relative intersection of an empty set.  (Contributed by Stefan O'Rear,
     3-Apr-2015.) $)
  rint0 $p |- ( X = (/) -> ( A i^i |^| X ) = A ) $=
    ( c0 wceq cint cin inteq ineq2d cvv int0 ineq2i inv1 eqtri syl6eq ) BCDZABE
    ZFACEZFZAOPQABCGHRAIFAQIAJKALMN $.

  ${
    $d B y $.  $d X y $.
    $( Membership in a restricted intersection.  (Contributed by Stefan O'Rear,
       3-Apr-2015.) $)
    elrint $p |- ( X e. ( A i^i |^| B ) <-> ( X e. A /\ A. y e. B X e. y ) ) $=
      ( cint cin wcel wa cv wral elin elintg pm5.32i bitri ) DBCEZFGDBGZDOGZHPD
      AIGACJZHDBOKPQRADCBLMN $.

    $( Membership in a restricted intersection.  (Contributed by Stefan O'Rear,
       3-Apr-2015.) $)
    elrint2 $p |- ( X e. A -> ( X e. ( A i^i |^| B ) <->
          A. y e. B X e. y ) ) $=
      ( cint cin wcel cv wral elrint baib ) DBCEFGDBGDAHGACIABCDJK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Indexed union and intersection
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c U_ $. $( Underlined big cup. $)
  $c |^|_ $. $( Underlined big cap. $)

  $( Extend class notation to include indexed union.  Note:  Historically
     (prior to 21-Oct-2005), set.mm used the notation ` U. x e. A B ` , with
     the same union symbol as ~ cuni .  While that syntax was unambiguous, it
     did not allow for LALR parsing of the syntax constructions in set.mm.  The
     new syntax uses a distinguished symbol ` U_ ` instead of ` U. ` and does
     allow LALR parsing.  Thanks to Peter Backes for suggesting this change. $)
  ciun $a class U_ x e. A B $.

  $( Extend class notation to include indexed intersection.  Note:
     Historically (prior to 21-Oct-2005), set.mm used the notation
     ` |^| x e. A B ` , with the same intersection symbol as ~ cint .  Although
     that syntax was unambiguous, it did not allow for LALR parsing of the
     syntax constructions in set.mm.  The new syntax uses a distinguished
     symbol ` |^|_ ` instead of ` |^| ` and does allow LALR parsing.  Thanks to
     Peter Backes for suggesting this change. $)
  ciin $a class |^|_ x e. A B $.

  ${
    $d x y $.  $d y A $.  $d y B $.
    $( Define indexed union.  Definition indexed union in [Stoll] p. 45.  In
       most applications, ` A ` is independent of ` x ` (although this is not
       required by the definition), and ` B ` depends on ` x ` i.e. can be read
       informally as ` B ( x ) ` .  We call ` x ` the index, ` A ` the index
       set, and ` B ` the indexed set.  In most books, ` x e. A ` is written as
       a subscript or underneath a union symbol ` U. ` .  We use a special
       union symbol ` U_ ` to make it easier to distinguish from plain class
       union.  In many theorems, you will see that ` x ` and ` A ` are in the
       same distinct variable group (meaning ` A ` cannot depend on ` x ` ) and
       that ` B ` and ` x ` do not share a distinct variable group (meaning
       that can be thought of as ` B ( x ) ` i.e. can be substituted with a
       class expression containing ` x ` ).  An alternate definition tying
       indexed union to ordinary union is ~ dfiun2 .  Theorem ~ uniiun provides
       a definition of ordinary union in terms of indexed union.  Theorems
       ~ fniunfv and ~ funiunfv are useful when ` B ` is a function.
       (Contributed by NM, 27-Jun-1998.) $)
    df-iun $a |- U_ x e. A B = { y | E. x e. A y e. B } $.

    $( Define indexed intersection.  Definition of [Stoll] p. 45.  See the
       remarks for its sibling operation of indexed union ~ df-iun .  An
       alternate definition tying indexed intersection to ordinary intersection
       is ~ dfiin2 .  Theorem ~ intiin provides a definition of ordinary
       intersection in terms of indexed intersection.  (Contributed by NM,
       27-Jun-1998.) $)
    df-iin $a |- |^|_ x e. A B = { y | A. x e. A y e. B } $.
  $}

  ${
    $d x y A $.  $d y B $.  $d y C $.
    $( Membership in indexed union.  (Contributed by NM, 3-Sep-2003.) $)
    eliun $p |- ( A e. U_ x e. B C <-> E. x e. B A e. C ) $=
      ( vy ciun wcel wrex elex rexlimivw cv wceq eleq1 rexbidv df-iun pm5.21nii
      cvv elab2g ) BACDFZGBQGZBDGZACHZBSIUATACBDIJEKZDGZACHUBEBSQUCBLUDUAACUCBD
      MNAECDORP $.

    $( Membership in indexed intersection.  (Contributed by NM, 3-Sep-2003.) $)
    eliin $p |- ( A e. V -> ( A e. |^|_ x e. B C <-> A. x e. B A e. C ) ) $=
      ( vy cv wcel wral ciin wceq eleq1 ralbidv df-iin elab2g ) FGZDHZACIBDHZAC
      IFBACDJEPBKQRACPBDLMAFCDNO $.
  $}

  ${
    $d x A $.  $d x C $.  $d x D $.  $d x E $.
    eliuni.1 $e |- ( x = A -> B = C ) $.
    $( Membership in an indexed union, one way.  (Contributed by JJ,
       27-Jul-2021.) $)
    eliuni $p |- ( ( A e. D /\ E e. C ) -> E e. U_ x e. D B ) $=
      ( wcel wa wrex ciun cv wceq eleq2d rspcev eliun sylibr ) BEHFDHZIFCHZAEJF
      AECKHSRABEALBMCDFGNOAFECPQ $.
  $}

  ${
    $d y z A $.  $d x z B $.  $d z C $.  $d x y $.
    $( Commutation of indexed unions.  (Contributed by NM, 18-Dec-2008.) $)
    iuncom $p |- U_ x e. A U_ y e. B C = U_ y e. B U_ x e. A C $=
      ( vz ciun cv wcel wrex rexcom eliun rexbii 3bitr4i eqriv ) FACBDEGZGZBDAC
      EGZGZFHZPIZACJZTRIZBDJZTQITSITEIZBDJZACJUEACJZBDJUBUDUEABCDKUAUFACBTDELMU
      CUGBDATCELMNATCPLBTDRLNO $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d x y z $.
    $( Commutation of union with indexed union.  (Contributed by Mario
       Carneiro, 18-Jan-2014.) $)
    iuncom4 $p |- U_ x e. A U. B = U. U_ x e. A B $=
      ( vy vz cuni ciun cv wcel wa wex df-rex rexbii rexcom4 bitri exbii eluni2
      wrex eliun 3bitr4i r19.41v anbi1i eqriv ) DABCFZGZABCGZFZDHZUDIZABRZUHEHZ
      IZEUFRZUHUEIUHUGIULECRZABRZUKCIZABRZULJZEKZUJUMUOUPULJZABRZEKZUSUOUTEKZAB
      RVBUNVCABULECLMUTAEBNOVAUREUPULABUAPOUIUNABEUHCQMUMUKUFIZULJZEKUSULEUFLVE
      UREVDUQULAUKBCSUBPOTAUHBUDSEUHUFQTUC $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Indexed union of a constant class, i.e. where ` B ` does not depend on
       ` x ` .  (Contributed by NM, 5-Sep-2004.)  (Proof shortened by Andrew
       Salmon, 25-Jul-2011.) $)
    iunconst $p |- ( A =/= (/) -> U_ x e. A B = B ) $=
      ( vy c0 wne ciun cv wcel wrex r19.9rzv eliun syl6rbbr eqrdv ) BEFZDABCGZC
      ODHZCIZRABJQPIRABKAQBCLMN $.

    $( Indexed intersection of a constant class, i.e. where ` B ` does not
       depend on ` x ` .  (Contributed by Mario Carneiro, 6-Feb-2015.) $)
    iinconst $p |- ( A =/= (/) -> |^|_ x e. A B = B ) $=
      ( vy c0 wne ciin cv wcel wral r19.3rzv cvv vex eliin ax-mp syl6rbbr eqrdv
      wb ) BEFZDABCGZCSDHZCIZUBABJZUATIZUBABKUALIUDUCRDMAUABCLNOPQ $.
  $}

  ${
    $d x y $.  $d y z A $.  $d x z B $.  $d z C $.
    $( Law combining indexed union with indexed intersection.  Eq. 14 in
       [KuratowskiMostowski] p. 109.  This theorem also appears as the last
       example at ~ http://en.wikipedia.org/wiki/Union%5F%28set%5Ftheory%29 .
       (Contributed by NM, 17-Aug-2004.)  (Proof shortened by Andrew Salmon,
       25-Jul-2011.) $)
    iuniin $p |- U_ x e. A |^|_ y e. B C C_ |^|_ y e. B U_ x e. A C $=
      ( vz ciin ciun cv wcel wrex wral r19.12 cvv vex eliin ax-mp eliun 3imtr4i
      wb rexbii ralbii ssriv ) FACBDEGZHZBDACEHZGZFIZUDJZACKZUHUFJZBDLZUHUEJUHU
      GJZUHEJZBDLZACKUNACKZBDLUJULUNABCDMUIUOACUHNJZUIUOTFOZBUHDENPQUAUKUPBDAUH
      CERUBSAUHCUDRUQUMULTURBUHDUFNPQSUC $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.
    $( Subclass theorem for indexed union.  (Contributed by NM, 10-Dec-2004.)
       (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    iunss1 $p |- ( A C_ B -> U_ x e. A C C_ U_ x e. B C ) $=
      ( vy wss ciun cv wcel wrex ssrexv eliun 3imtr4g ssrdv ) BCFZEABDGZACDGZOE
      HZDIZABJSACJRPIRQISABCKARBDLARCDLMN $.

    $( Subclass theorem for indexed intersection.  (Contributed by NM,
       24-Jan-2012.) $)
    iinss1 $p |- ( A C_ B -> |^|_ x e. B C C_ |^|_ x e. A C ) $=
      ( vy wss ciin cv wcel wral ssralv cvv wb vex eliin ax-mp 3imtr4g ssrdv )
      BCFZEACDGZABDGZSEHZDIZACJZUCABJZUBTIZUBUAIZUCABCKUBLIZUFUDMENZAUBCDLOPUHU
      GUEMUIAUBBDLOPQR $.

    $( Equality theorem for indexed union.  (Contributed by NM,
       27-Jun-1998.) $)
    iuneq1 $p |- ( A = B -> U_ x e. A C = U_ x e. B C ) $=
      ( wss wa ciun wceq iunss1 anim12i eqss 3imtr4i ) BCEZCBEZFABDGZACDGZEZPOE
      ZFBCHOPHMQNRABCDIACBDIJBCKOPKL $.

    $( Equality theorem for indexed intersection.  (Contributed by NM,
       27-Jun-1998.) $)
    iineq1 $p |- ( A = B -> |^|_ x e. A C = |^|_ x e. B C ) $=
      ( vy wceq cv wcel wral cab ciin raleq abbidv df-iin 3eqtr4g ) BCFZEGDHZAB
      IZEJQACIZEJABDKACDKPRSEQABCLMAEBDNAECDNO $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    $( Subclass theorem for indexed union.  (Contributed by NM, 26-Nov-2003.)
       (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    ss2iun $p |- ( A. x e. A B C_ C -> U_ x e. A B C_ U_ x e. A C ) $=
      ( vy wss wral ciun cv wcel wrex ssel ralimi rexim syl eliun 3imtr4g ssrdv
      wi ) CDFZABGZEABCHZABDHZUAEIZCJZABKZUDDJZABKZUDUBJUDUCJUAUEUGSZABGUFUHSTU
      IABCDUDLMUEUGABNOAUDBCPAUDBDPQR $.

    $( Equality theorem for indexed union.  (Contributed by NM,
       22-Oct-2003.) $)
    iuneq2 $p |- ( A. x e. A B = C -> U_ x e. A B = U_ x e. A C ) $=
      ( wss wral wa ciun wceq ss2iun anim12i eqss ralbii r19.26 bitri 3imtr4i )
      CDEZABFZDCEZABFZGZABCHZABDHZEZUCUBEZGCDIZABFZUBUCIRUDTUEABCDJABDCJKUGQSGZ
      ABFUAUFUHABCDLMQSABNOUBUCLP $.

    $( Equality theorem for indexed intersection.  (Contributed by NM,
       22-Oct-2003.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    iineq2 $p |- ( A. x e. A B = C -> |^|_ x e. A B = |^|_ x e. A C ) $=
      ( vy wceq wral cv wcel cab ciin wb eleq2 ralimi syl abbidv df-iin 3eqtr4g
      ralbi ) CDFZABGZEHZCIZABGZEJUBDIZABGZEJABCKABDKUAUDUFEUAUCUELZABGUDUFLTUG
      ABCDUBMNUCUEABSOPAEBCQAEBDQR $.
  $}

  ${
    iuneq2i.1 $e |- ( x e. A -> B = C ) $.
    $( Equality inference for indexed union.  (Contributed by NM,
       22-Oct-2003.) $)
    iuneq2i $p |- U_ x e. A B = U_ x e. A C $=
      ( wceq ciun iuneq2 mprg ) CDFABCGABDGFABABCDHEI $.

    $( Equality inference for indexed intersection.  (Contributed by NM,
       22-Oct-2003.) $)
    iineq2i $p |- |^|_ x e. A B = |^|_ x e. A C $=
      ( wceq ciin iineq2 mprg ) CDFABCGABDGFABABCDHEI $.
  $}

  ${
    iineq2d.1 $e |- F/ x ph $.
    iineq2d.2 $e |- ( ( ph /\ x e. A ) -> B = C ) $.
    $( Equality deduction for indexed intersection.  (Contributed by NM,
       7-Dec-2011.) $)
    iineq2d $p |- ( ph -> |^|_ x e. A B = |^|_ x e. A C ) $=
      ( wceq wral ciin cv wcel ex ralrimi iineq2 syl ) ADEHZBCIBCDJBCEJHAQBCFAB
      KCLQGMNBCDEOP $.
  $}

  ${
    $d x ph $.
    iuneq2dv.1 $e |- ( ( ph /\ x e. A ) -> B = C ) $.
    $( Equality deduction for indexed union.  (Contributed by NM,
       3-Aug-2004.) $)
    iuneq2dv $p |- ( ph -> U_ x e. A B = U_ x e. A C ) $=
      ( wceq wral ciun ralrimiva iuneq2 syl ) ADEGZBCHBCDIBCEIGAMBCFJBCDEKL $.

    $( Equality deduction for indexed intersection.  (Contributed by NM,
       3-Aug-2004.) $)
    iineq2dv $p |- ( ph -> |^|_ x e. A B = |^|_ x e. A C ) $=
      ( nfv iineq2d ) ABCDEABGFH $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.  $d y D $.  $d y ph $.
    iuneq12df.1 $e |- F/ x ph $.
    iuneq12df.2 $e |- F/_ x A $.
    iuneq12df.3 $e |- F/_ x B $.
    iuneq12df.4 $e |- ( ph -> A = B ) $.
    iuneq12df.5 $e |- ( ph -> C = D ) $.
    $( Equality deduction for indexed union, deduction version.  (Contributed
       by Thierry Arnoux, 31-Dec-2016.) $)
    iuneq12df $p |- ( ph -> U_ x e. A C = U_ x e. B D ) $=
      ( vy cv wcel wrex wb ciun wceq cab df-iun eleq2d rexeqbid alrimiv eqeq12i
      wal abbi bitr4i sylib ) ALMZENZBCOZUIFNZBDOZPZLUEZBCEQZBDFQZRZAUNLAUJULBC
      DGHIJAEFUIKUAUBUCUOUKLSZUMLSZRURUKUMLUFUPUSUQUTBLCETBLDFTUDUGUH $.
  $}

  ${
    $d x A $.  $d x B $.
    iuneq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for indexed union, deduction version.  (Contributed by
       Drahflow, 22-Oct-2015.) $)
    iuneq1d $p |- ( ph -> U_ x e. A C = U_ x e. B C ) $=
      ( wceq ciun iuneq1 syl ) ACDGBCEHBDEHGFBCDEIJ $.

    ${
      $d x ph $.
      iuneq12d.2 $e |- ( ph -> C = D ) $.
      $( Equality deduction for indexed union, deduction version.  (Contributed
         by Drahflow, 22-Oct-2015.) $)
      iuneq12d $p |- ( ph -> U_ x e. A C = U_ x e. B D ) $=
        ( ciun iuneq1d wceq cv wcel adantr iuneq2dv eqtrd ) ABCEIBDEIBDFIABCDEG
        JABDEFAEFKBLDMHNOP $.
    $}
  $}

  ${
    $d x ph $.  $d x A $.
    iuneq2d.2 $e |- ( ph -> B = C ) $.
    $( Equality deduction for indexed union.  (Contributed by Drahflow,
       22-Oct-2015.) $)
    iuneq2d $p |- ( ph -> U_ x e. A B = U_ x e. A C ) $=
      ( wceq cv wcel adantr iuneq2dv ) ABCDEADEGBHCIFJK $.
  $}

  ${
    $d z A $.  $d z B $.  $d x z $.  $d y z $.
    nfiun.1 $e |- F/_ y A $.
    nfiun.2 $e |- F/_ y B $.
    $( Bound-variable hypothesis builder for indexed union.  (Contributed by
       Mario Carneiro, 25-Jan-2014.) $)
    nfiun $p |- F/_ y U_ x e. A B $=
      ( vz ciun cv wcel wrex cab df-iun nfcri nfrex nfab nfcxfr ) BACDHGIDJZACK
      ZGLAGCDMSBGRBACEBGDFNOPQ $.

    $( Bound-variable hypothesis builder for indexed intersection.
       (Contributed by Mario Carneiro, 25-Jan-2014.) $)
    nfiin $p |- F/_ y |^|_ x e. A B $=
      ( vz ciin cv wcel wral cab df-iin nfcri nfral nfab nfcxfr ) BACDHGIDJZACK
      ZGLAGCDMSBGRBACEBGDFNOPQ $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( Bound-variable hypothesis builder for indexed union.  (Contributed by
       NM, 12-Oct-2003.) $)
    nfiu1 $p |- F/_ x U_ x e. A B $=
      ( vy ciun cv wcel wrex cab df-iun nfre1 nfab nfcxfr ) AABCEDFCGZABHZDIADB
      CJOADNABKLM $.

    $( Bound-variable hypothesis builder for indexed intersection.
       (Contributed by NM, 15-Oct-2003.) $)
    nfii1 $p |- F/_ x |^|_ x e. A B $=
      ( vy ciin cv wcel wral cab df-iin nfra1 nfab nfcxfr ) AABCEDFCGZABHZDIADB
      CJOADNABKLM $.
  $}

  ${
    $d y z w A $.  $d y z w B $.  $d w C z $.  $d w x y z $.
    $( Alternate definition of indexed union when ` B ` is a set.  Definition
       15(a) of [Suppes] p. 44.  (Contributed by NM, 23-Mar-2006.)  (Proof
       shortened by Andrew Salmon, 25-Jul-2011.) $)
    dfiun2g $p |- ( A. x e. A B e. C ->
                  U_ x e. A B = U. { y | E. x e. A y = B } ) $=
      ( vz wcel wral ciun cv wceq wrex cab cuni wa wex nfra1 wb rsp syl6bb syl6
      clel3g rexbida rexcom4 r19.41v exbii exancom bitri eliun eluniab 3bitr4g
      imp eqrdv ) DEGZACHZFACDIZBJZDKZACLZBMNZUOFJZDGZACLZVAUQGZUSOBPZVAUPGVAUT
      GUOVCURVDOZACLZBPZVEUOVCVFBPZACLVHUOVBVIACUNACQUOAJCGZVBVIRZUOVJUNVKUNACS
      BVADEUBUAULUCVFABCUDTVHUSVDOZBPVEVGVLBURVDACUEUFUSVDBUGUHTAVACDUIUSBVAUJU
      KUM $.

    $( Alternate definition of indexed intersection when ` B ` is a set.
       (Contributed by Jeff Hankins, 27-Aug-2009.) $)
    dfiin2g $p |- ( A. x e. A B e. C
               -> |^|_ x e. A B = |^| { y | E. x e. A y = B } ) $=
      ( vw vz wcel wral cv cab wceq wrex wi wal df-ral wb eqeq1 albii bitr4i
      ciin cint eleq2 biimprcd alrimiv eqid imbi12d mpii impbid2 imim2i pm5.74d
      spcgv alimi albi syl sylbi alcom r19.23v vex rexbidv elab imbi1i 3bitr3ri
      19.21v syl6bb syl5bb abbidv df-iin df-int 3eqtr4g ) DEHZACIZFJZDHZACIZFKG
      JZBJZDLZACMZBKZHZVMVPHZNZGOZFKACDUAVTUBVLVOWDFVOAJCHZVNNZAOZVLWDVNACPVLWG
      WEVPDLZWBNZGOZNZAOZWDVLWEVKNZAOZWGWLQZVKACPWNWFWKQZAOWOWMWPAWMWEVNWJVKVNW
      JQWEVKVNWJVNWIGWHWBVNVPDVMUCZUDUEVKWJDDLZVNDUFWIWRVNNGDEWHWHWRWBVNVPDDRWQ
      UGULUHUIUJUKUMWFWKAUNUOUPWIACIZGOZWEWINZGOZAOZWDWLWTXAAOZGOXCWSXDGWIACPSX
      AAGUQTWSWCGWSWHACMZWBNWCWHWBACURWAXEWBVSXEBVPGUSVQVPLVRWHACVQVPDRUTVAVBTS
      XBWKAWEWIGVDSVCVEVFVGAFCDVHFGVTVIVJ $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    dfiun2.1 $e |- B e. _V $.
    $( Alternate definition of indexed union when ` B ` is a set.  Definition
       15(a) of [Suppes] p. 44.  (Contributed by NM, 27-Jun-1998.)  (Revised by
       David Abernethy, 19-Jun-2012.) $)
    dfiun2 $p |- U_ x e. A B = U. { y | E. x e. A y = B } $=
      ( cvv wcel ciun cv wceq wrex cab cuni dfiun2g a1i mprg ) DFGZACDHBIDJACKB
      LMJACABCDFNQAICGEOP $.

    $( Alternate definition of indexed intersection when ` B ` is a set.
       Definition 15(b) of [Suppes] p. 44.  (Contributed by NM, 28-Jun-1998.)
       (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    dfiin2 $p |- |^|_ x e. A B = |^| { y | E. x e. A y = B } $=
      ( cvv wcel ciin cv wceq wrex cab cint dfiin2g a1i mprg ) DFGZACDHBIDJACKB
      LMJACABCDFNQAICGEOP $.
  $}

  ${
    $d x z $.  $d y z w $.  $d z A $.  $d z w B $.  $d z w C $.
    $( Define double indexed union.  (Contributed by FL, 6-Nov-2013.) $)
    dfiunv2 $p |- U_ x e. A U_ y e. B C =
      { z | E. x e. A E. y e. B z e. C } $=
      ( vw ciun cv wcel wrex cab wceq df-iun a1i iuneq2i vex weq eleq1 rexbidv
      elab rexbii abbii 3eqtri ) ADBEFHZHADGIZFJZBEKZGLZHCIZUIJZADKZCLUJFJZBEKZ
      ADKZCLADUEUIUEUIMAIDJBGEFNOPACDUINULUOCUKUNADUHUNGUJCQGCRUGUMBEUFUJFSTUAU
      BUCUD $.
  $}

  ${
    $d z y A $.  $d z x A $.  $d z B $.  $d z C $.
    cbviun.1 $e |- F/_ y B $.
    cbviun.2 $e |- F/_ x C $.
    cbviun.3 $e |- ( x = y -> B = C ) $.
    $( Rule used to change the bound variables in an indexed union, with the
       substitution specified implicitly by the hypothesis.  (Contributed by
       NM, 26-Mar-2006.)  (Revised by Andrew Salmon, 25-Jul-2011.) $)
    cbviun $p |- U_ x e. A B = U_ y e. A C $=
      ( vz cv wcel wrex cab ciun nfcri weq eleq2d cbvrex abbii df-iun 3eqtr4i )
      IJZDKZACLZIMUBEKZBCLZIMACDNBCENUDUFIUCUEABCBIDFOAIEGOABPDEUBHQRSAICDTBICE
      TUA $.

    $( Change bound variables in an indexed intersection.  (Contributed by Jeff
       Hankins, 26-Aug-2009.)  (Revised by Mario Carneiro, 14-Oct-2016.) $)
    cbviin $p |- |^|_ x e. A B = |^|_ y e. A C $=
      ( vz cv wcel wral cab ciin nfcri weq eleq2d cbvral abbii df-iin 3eqtr4i )
      IJZDKZACLZIMUBEKZBCLZIMACDNBCENUDUFIUCUEABCBIDFOAIEGOABPDEUBHQRSAICDTBICE
      TUA $.
  $}

  ${
    $d x A $.  $d y A $.  $d y B $.  $d x C $.
    cbviunv.1 $e |- ( x = y -> B = C ) $.
    $( Rule used to change the bound variables in an indexed union, with the
       substitution specified implicitly by the hypothesis.  (Contributed by
       NM, 15-Sep-2003.) $)
    cbviunv $p |- U_ x e. A B = U_ y e. A C $=
      ( nfcv cbviun ) ABCDEBDGAEGFH $.

    $( Change bound variables in an indexed intersection.  (Contributed by Jeff
       Hankins, 26-Aug-2009.) $)
    cbviinv $p |- |^|_ x e. A B = |^|_ y e. A C $=
      ( nfcv cbviin ) ABCDEBDGAEGFH $.
  $}

  ${
    $d x y C $.  $d y A $.  $d y B $.
    $( Subset theorem for an indexed union.  (Contributed by NM, 13-Sep-2003.)
       (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    iunss $p |- ( U_ x e. A B C_ C <-> A. x e. A B C_ C ) $=
      ( vy ciun wss cv wcel wrex cab wal wral df-iun sseq1i abss ralbii ralcom4
      wi dfss2 r19.23v albii 3bitrri 3bitri ) ABCFZDGEHZCIZABJZEKZDGUHUFDIZSZEL
      ZCDGZABMZUEUIDAEBCNOUHEDPUNUGUJSZELZABMUOABMZELULUMUPABECDTQUOAEBRUQUKEUG
      UJABUAUBUCUD $.
  $}

  ${
    $d x y C $.  $d y A $.  $d y B $.
    $( Subset implication for an indexed union.  (Contributed by NM,
       3-Sep-2003.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    ssiun $p |- ( E. x e. A C C_ B -> C C_ U_ x e. A B ) $=
      ( vy wss wrex ciun cv wcel wi ssel reximi r19.37v syl eliun syl6ibr ssrdv
      ) DCFZABGZEDABCHZTEIZDJZUBCJZABGZUBUAJTUCUDKZABGUCUEKSUFABDCUBLMUCUDABNOA
      UBBCPQR $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( Identity law for subset of an indexed union.  (Contributed by NM,
       12-Oct-2003.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    ssiun2 $p |- ( x e. A -> B C_ U_ x e. A B ) $=
      ( vy cv wcel ciun wrex rspe ex eliun syl6ibr ssrdv ) AEBFZDCABCGZNDEZCFZQ
      ABHZPOFNQRQABIJAPBCKLM $.
  $}

  ${
    $d x A $.  $d x C $.  $d x D $.
    ssiun2s.1 $e |- ( x = C -> B = D ) $.
    $( Subset relationship for an indexed union.  (Contributed by NM,
       26-Oct-2003.) $)
    ssiun2s $p |- ( C e. A -> D C_ U_ x e. A B ) $=
      ( ciun wss nfcv nfiu1 nfss cv wceq sseq1d ssiun2 vtoclgaf ) CABCGZHEQHADB
      ADIAEQAEIABCJKALDMCEQFNABCOP $.
  $}

  ${
    $d x y $.  $d x B $.  $d y C $.  $d x D $.
    $( A subclass condition on the members of two indexed classes ` C ( x ) `
       and ` D ( y ) ` that implies a subclass relation on their indexed
       unions.  Generalization of Proposition 8.6 of [TakeutiZaring] p. 59.
       Compare ~ uniss2 .  (Contributed by NM, 9-Dec-2004.) $)
    iunss2 $p |- ( A. x e. A E. y e. B C C_ D ->
                 U_ x e. A C C_ U_ y e. B D ) $=
      ( wss wrex wral ciun ssiun ralimi iunss sylibr ) EFGBDHZACIEBDFJZGZACIACE
      JPGOQACBDFEKLACEPMN $.
  $}

  ${
    $d y A $.  $d x y $.  $d x B $.
    $( The indexed union of a class abstraction.  (Contributed by NM,
       27-Dec-2004.) $)
    iunab $p |- U_ x e. A { y | ph } = { y | E. x e. A ph } $=
      ( cab ciun wrex wceq cv wcel wb nfcv nfab1 nfiun cleqf abid eliun 3bitr4i
      rexbii mpgbir ) BDACEZFZABDGZCEZHCIZUBJZUEUDJZKCCUBUDBCDUACDLACMNUCCMOUEU
      AJZBDGUCUFUGUHABDACPSBUEDUAQUCCPRT $.

    $( The indexed union of a restricted class abstraction.  (Contributed by
       NM, 3-Jan-2004.)  (Proof shortened by Mario Carneiro, 14-Nov-2016.) $)
    iunrab $p |- U_ x e. A { y e. B | ph } = { y e. B | E. x e. A ph } $=
      ( cv wcel cab ciun wrex crab iunab wceq df-rab a1i iuneq2i r19.42v eqtr4i
      wa abbii 3eqtr4i ) BDCFEGZASZCHZIUCBDJZCHZBDACEKZIABDJZCEKZUCBCDLBDUGUDUG
      UDMBFDGACENOPUIUBUHSZCHUFUHCENUEUJCUBABDQTRUA $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.
    iunxdif2.1 $e |- ( x = y -> C = D ) $.
    $( Indexed union with a class difference as its index.  (Contributed by NM,
       10-Dec-2004.) $)
    iunxdif2 $p |- ( A. x e. A E. y e. ( A \ B ) C C_ D ->
                 U_ y e. ( A \ B ) D = U_ x e. A C ) $=
      ( wss cdif wrex wral ciun wceq iunss2 difss iunss1 ax-mp cbviunv sseqtr4i
      wa jctil eqss sylibr ) EFHBCDIZJACKZBUDFLZACELZHZUGUFHZTUFUGMUEUIUHABCUDE
      FNUFBCFLZUGUDCHUFUJHCDOBUDCFPQABCEFGRSUAUFUGUBUC $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d x y $.
    ssiinf.1 $e |- F/_ x C $.
    $( Subset theorem for an indexed intersection.  (Contributed by FL,
       15-Oct-2012.)  (Proof shortened by Mario Carneiro, 14-Oct-2016.) $)
    ssiinf $p |- ( C C_ |^|_ x e. A B <-> A. x e. A C C_ B ) $=
      ( vy cv ciin wcel wral wss cvv vex eliin ax-mp ralbii nfcv ralcomf dfss3
      wb bitri 3bitr4i ) FGZABCHZIZFDJZUCCIZFDJZABJZDUDKDCKZABJUFUGABJZFDJUIUEU
      KFDUCLIUEUKTFMAUCBCLNOPUGFADBEFBQRUAFDUDSUJUHABFDCSPUB $.
  $}

  ${
    $d x C $.
    $( Subset theorem for an indexed intersection.  (Contributed by NM,
       15-Oct-2003.) $)
    ssiin $p |- ( C C_ |^|_ x e. A B <-> A. x e. A C C_ B ) $=
      ( nfcv ssiinf ) ABCDADEF $.
  $}

  ${
    $d x y C $.  $d y A $.  $d y B $.
    $( Subset implication for an indexed intersection.  (Contributed by NM,
       15-Oct-2003.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    iinss $p |- ( E. x e. A B C_ C -> |^|_ x e. A B C_ C ) $=
      ( vy wss wrex ciin cv wcel wral cvv wb eliin ax-mp wi ssel reximi r19.36v
      vex syl syl5bi ssrdv ) CDFZABGZEABCHZDEIZUFJZUGCJZABKZUEUGDJZUGLJUHUJMETA
      UGBCLNOUEUIUKPZABGUJUKPUDULABCDUGQRUIUKABSUAUBUC $.
  $}

  ${
    $d A y $.  $d B y $.  $d x y $.
    $( An indexed intersection is included in any of its members.  (Contributed
       by FL, 15-Oct-2012.) $)
    iinss2 $p |- ( x e. A -> |^|_ x e. A B C_ B ) $=
      ( vy cv wcel ciin wral cvv wb vex eliin ax-mp rsp com12 syl5bi ssrdv ) AE
      BFZDABCGZCDEZSFZTCFZABHZRUBTIFUAUCJDKATBCILMUCRUBUBABNOPQ $.
  $}

  ${
    $d x y A $.
    $( Class union in terms of indexed union.  Definition in [Stoll] p. 43.
       (Contributed by NM, 28-Jun-1998.) $)
    uniiun $p |- U. A = U_ x e. A x $=
      ( vy cuni wel wrex cab cv ciun dfuni2 df-iun eqtr4i ) BDCAEABFCGABAHZICAB
      JACBMKL $.

    $( Class intersection in terms of indexed intersection.  Definition in
       [Stoll] p. 44.  (Contributed by NM, 28-Jun-1998.) $)
    intiin $p |- |^| A = |^|_ x e. A x $=
      ( vy cint wel wral cab cv ciin dfint2 df-iin eqtr4i ) BDCAEABFCGABAHZICAB
      JACBMKL $.

    $( An indexed union of singletons recovers the index set.  (Contributed by
       NM, 6-Sep-2005.) $)
    iunid $p |- U_ x e. A { x } = A $=
      ( vy cv csn ciun wceq cab wcel df-sn equcom abbii eqtri a1i iuneq2i iunab
      wrex risset abid2 3eqtr2i ) ABADZEZFABUACDZGZCHZFZBABUBUEUBUEGUABIUBUCUAG
      ZCHUECUAJUGUDCCAKLMNOUFUDABQZCHUCBIZCHBUDACBPUIUHCAUCBRLCBSTM $.
  $}

  ${
    $d x y $.  $d y A $.
    $( An indexed union of the empty set is empty.  (Contributed by NM,
       26-Mar-2003.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    iun0 $p |- U_ x e. A (/) = (/) $=
      ( vy c0 ciun cv wcel wrex wn noel a1i nrex eliun mtbir nel0 ) CABDEZCFZPG
      QDGZABHRABRIAFBGQJKLAQBDMNO $.

    $( An empty indexed union is empty.  (Contributed by NM, 4-Dec-2004.)
       (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    0iun $p |- U_ x e. (/) A = (/) $=
      ( vy c0 ciun cv wcel wrex rex0 eliun mtbir nel0 ) CADBEZCFZMGNBGZADHOAIAN
      DBJKL $.

    $( An empty indexed intersection is the universal class.  (Contributed by
       NM, 20-Oct-2005.) $)
    0iin $p |- |^|_ x e. (/) A = _V $=
      ( vy c0 ciin cv wcel wral cab cvv df-iin vex ral0 2th abbi2i eqtr4i ) ADB
      ECFZBGZADHZCIJACDBKSCJQJGSCLRAMNOP $.

    $( Indexed intersection with a universal index class.  When ` A ` doesn't
       depend on ` x ` , this evaluates to ` A ` by ~ 19.3 and ~ abid2 .  When
       ` A = x ` , this evaluates to ` (/) ` by ~ intiin and ~ intv .
       (Contributed by NM, 11-Sep-2008.) $)
    viin $p |- |^|_ x e. _V A = { y | A. x y e. A } $=
      ( cvv ciin cv wcel wral cab wal df-iin ralv abbii eqtri ) ADCEBFCGZADHZBI
      OAJZBIABDCKPQBOALMN $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( There is a nonempty class in an indexed collection ` B ( x ) ` iff the
       indexed union of them is nonempty.  (Contributed by NM, 15-Oct-2003.)
       (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    iunn0 $p |- ( E. x e. A B =/= (/) <-> U_ x e. A B =/= (/) ) $=
      ( vy cv wcel wex wrex c0 wne rexcom4 eliun exbii bitr4i n0 rexbii 3bitr4i
      ciun ) DEZCFZDGZABHZSABCRZFZDGZCIJZABHUCIJUBTABHZDGUETADBKUDUGDASBCLMNUFU
      AABDCOPDUCOQ $.
  $}

  ${
    $d y A $.  $d x y $.
    $( Indexed intersection of a class builder.  (Contributed by NM,
       6-Dec-2011.) $)
    iinab $p |- |^|_ x e. A { y | ph } = { y | A. x e. A ph } $=
      ( cab ciin wral wceq cv wcel nfcv nfab1 nfiin cleqf abid ralbii cvv eliin
      wb vex ax-mp 3bitr4i mpgbir ) BDACEZFZABDGZCEZHCIZUEJZUHUGJZSCCUEUGBCDUDC
      DKACLMUFCLNUHUDJZBDGZUFUIUJUKABDACOPUHQJUIULSCTBUHDUDQRUAUFCOUBUC $.

    $d x A $.  $d x B $.
    $( Indexed intersection of a restricted class builder.  (Contributed by NM,
       6-Dec-2011.) $)
    iinrab $p |- ( A =/= (/)
          -> |^|_ x e. A { y e. B | ph } = { y e. B | A. x e. A ph } ) $=
      ( c0 wne cv wcel wa wral cab crab ciin r19.28zv abbidv df-rab a1i iineq2i
      wceq iinab eqtri 3eqtr4g ) DFGZCHEIZAJZBDKZCLZUEABDKZJZCLBDACEMZNZUICEMUD
      UGUJCUEABDOPULBDUFCLZNUHBDUKUMUKUMTBHDIACEQRSUFBCDUAUBUICEQUC $.

    $d y B $.
    $( Indexed intersection of a restricted class builder.  (Contributed by NM,
       6-Dec-2011.) $)
    iinrab2 $p |- ( |^|_ x e. A { y e. B | ph } i^i B )
                      = { y e. B | A. x e. A ph } $=
      ( crab ciin cin wral wceq c0 cvv iineq1 0iin syl6eq incom inv1 eqtri rzal
      ineq1d rabid2 ralcom bitr2i sylib wne iinrab wss ssrab2 dfss mpbi syl6eqr
      eqtrd pm2.61ine ) BDACEFZGZEHZABDIZCEFZJDKDKJZUPEURUSUPLEHZEUSUOLEUSUOBKU
      NGLBDKUNMBUNNOTUTELHELEPEQROUSACEIZBDIZEURJZVABDSVCUQCEIVBUQCEUAACBEDUBUC
      UDULDKUEZUPUREHZURVDUOUREABCDEUFTUREUGURVEJUQCEUHUREUIUJUKUM $.
  $}

  ${
    $d y A $.  $d x y B $.  $d y C $.
    $( Indexed union of intersection.  Generalization of half of theorem
       "Distributive laws" in [Enderton] p. 30.  Use ~ uniiun to recover
       Enderton's theorem.  (Contributed by NM, 26-Mar-2004.) $)
    iunin2 $p |- U_ x e. A ( B i^i C ) = ( B i^i U_ x e. A C ) $=
      ( vy cin ciun cv wcel wrex r19.42v elin rexbii eliun anbi2i 3bitr4i eqriv
      wa ) EABCDFZGZCABDGZFZEHZSIZABJZUCCIZUCUAIZRZUCTIUCUBIUFUCDIZRZABJUFUIABJ
      ZRUEUHUFUIABKUDUJABUCCDLMUGUKUFAUCBDNOPAUCBSNUCCUALPQ $.

    $( Indexed union of intersection.  Generalization of half of theorem
       "Distributive laws" in [Enderton] p. 30.  Use ~ uniiun to recover
       Enderton's theorem.  (Contributed by Mario Carneiro, 30-Aug-2015.) $)
    iunin1 $p |- U_ x e. A ( C i^i B ) = ( U_ x e. A C i^i B ) $=
      ( cin ciun iunin2 wceq cv wcel incom a1i iuneq2i 3eqtr4i ) ABCDEZFCABDFZE
      ABDCEZFPCEABCDGABQOQOHAIBJDCKLMPCKN $.

    $( Indexed intersection of union.  Generalization of half of theorem
       "Distributive laws" in [Enderton] p. 30.  Use ~ intiin to recover
       Enderton's theorem.  (Contributed by NM, 19-Aug-2004.) $)
    iinun2 $p |- |^|_ x e. A ( B u. C ) = ( B u. |^|_ x e. A C ) $=
      ( vy cun ciin cv wcel wral wo r19.32v elun ralbii cvv eliin ax-mp 3bitr4i
      wb vex orbi2i eqriv ) EABCDFZGZCABDGZFZEHZUCIZABJZUGCIZUGUEIZKZUGUDIZUGUF
      IUJUGDIZKZABJUJUNABJZKUIULUJUNABLUHUOABUGCDMNUKUPUJUGOIZUKUPSETZAUGBDOPQU
      ARUQUMUISURAUGBUCOPQUGCUEMRUB $.

    $( Indexed union of class difference.  Generalization of half of theorem
       "De Morgan's laws" in [Enderton] p. 31.  Use ~ intiin to recover
       Enderton's theorem.  (Contributed by NM, 19-Aug-2004.) $)
    iundif2 $p |- U_ x e. A ( B \ C ) = ( B \ |^|_ x e. A C ) $=
      ( vy cdif ciun ciin cv wcel wrex wn wa eldif rexbii r19.42v rexnal cvv wb
      wral vex eliin ax-mp xchbinxr anbi2i 3bitri eliun 3bitr4i eqriv ) EABCDFZ
      GZCABDHZFZEIZUJJZABKZUNCJZUNULJZLZMZUNUKJUNUMJUPUQUNDJZLZMZABKUQVBABKZMUT
      UOVCABUNCDNOUQVBABPVDUSUQVDVAABTZURVAABQUNRJURVESEUAAUNBDRUBUCUDUEUFAUNBU
      JUGUNCULNUHUI $.
  $}

  ${
    $d x B $.  $d y C $.  $d x D $.  $d x y $.
    $( Rearrange indexed unions over intersection.  (Contributed by NM,
       18-Dec-2008.) $)
    2iunin $p |- U_ x e. A U_ y e. B ( C i^i D )
        = ( U_ x e. A C i^i U_ y e. B D ) $=
      ( cin ciun wceq cv wcel iunin2 a1i iuneq2i iunin1 eqtri ) ACBDEFGHZHACEBD
      FHZGZHACEHRGACQSQSIAJCKBDEFLMNACREOP $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.
    $( Indexed intersection of class difference.  Generalization of half of
       theorem "De Morgan's laws" in [Enderton] p. 31.  Use ~ uniiun to recover
       Enderton's theorem.  (Contributed by NM, 5-Oct-2006.) $)
    iindif2 $p |- ( A =/= (/) ->
                 |^|_ x e. A ( B \ C ) = ( B \ U_ x e. A C ) ) $=
      ( vy c0 wne cdif ciin ciun cv wcel wn wa r19.28zv eldif bicomi ralbii cvv
      wral wrex ralnex eliun xchbinxr anbi2i 3bitr3g wb vex eliin ax-mp 3bitr4g
      eqrdv ) BFGZEABCDHZIZCABDJZHZUMEKZUNLZABTZURCLZURUPLZMZNZURUOLZURUQLUMVAU
      RDLZMZNZABTVAVGABTZNUTVDVAVGABOVHUSABUSVHURCDPQRVIVCVAVIVFABUAVBVFABUBAUR
      BDUCUDUEUFURSLVEUTUGEUHAURBUNSUIUJURCUPPUKUL $.

    $( Indexed intersection of intersection.  Generalization of half of theorem
       "Distributive laws" in [Enderton] p. 30.  Use ~ intiin to recover
       Enderton's theorem.  (Contributed by Mario Carneiro, 19-Mar-2015.) $)
    iinin2 $p |- ( A =/= (/) ->
      |^|_ x e. A ( B i^i C ) = ( B i^i |^|_ x e. A C ) ) $=
      ( vy c0 wne cin ciin cv wcel wral wa r19.28zv elin wb eliin ax-mp 3bitr4g
      cvv ralbii vex anbi2i eqrdv ) BFGZEABCDHZIZCABDIZHZUEEJZUFKZABLZUJCKZUJUH
      KZMZUJUGKZUJUIKUEUMUJDKZMZABLUMUQABLZMULUOUMUQABNUKURABUJCDOUAUNUSUMUJTKZ
      UNUSPEUBZAUJBDTQRUCSUTUPULPVAAUJBUFTQRUJCUHOSUD $.

    $( Indexed intersection of intersection.  Generalization of half of theorem
       "Distributive laws" in [Enderton] p. 30.  Use ~ intiin to recover
       Enderton's theorem.  (Contributed by Mario Carneiro, 19-Mar-2015.) $)
    iinin1 $p |- ( A =/= (/) ->
      |^|_ x e. A ( C i^i B ) = ( |^|_ x e. A C i^i B ) ) $=
      ( c0 wne cin ciin iinin2 wceq cv wcel incom a1i iineq2i 3eqtr4g ) BEFABCD
      GZHCABDHZGABDCGZHRCGABCDIABSQSQJAKBLDCMNORCMP $.
  $}

  ${
    $d x A $.
    $( The indexed intersection of a complement.  (Contributed by G&eacute;rard
       Lang, 5-Aug-2018.) $)
    iinvdif $p |- |^|_ x e. A ( _V \ B ) = ( _V \ U_ x e. A B ) $=
      ( cvv cdif ciin ciun wceq c0 dif0 0iun difeq2i 0iin iineq1 iuneq1 difeq2d
      3eqtr4ri 3eqtr4a iindif2 pm2.61ine ) ABDCEZFZDABCGZEZHBIBIHZAIUAFZDAICGZE
      ZUBUDDIEDUHUFDJUGIDACKLAUAMQABIUANUEUCUGDABICOPRABDCST $.
  $}

  ${
    $d A x y $.  $d X x y $.  $d B x $.
    $( Elementhood in a relative intersection.  (Contributed by Mario Carneiro,
       30-Dec-2016.) $)
    elriin $p |- ( B e. ( A i^i |^|_ x e. X S ) <->
      ( B e. A /\ A. x e. X B e. S ) ) $=
      ( ciin cin wcel wa wral elin eliin pm5.32i bitri ) CBAEDFZGHCBHZCOHZIPCDH
      AEJZICBOKPQRACEDBLMN $.

    $( Relative intersection of an empty family.  (Contributed by Stefan
       O'Rear, 3-Apr-2015.) $)
    riin0 $p |- ( X = (/) -> ( A i^i |^|_ x e. X S ) = A ) $=
      ( c0 wceq ciin cin iineq1 ineq2d cvv 0iin ineq2i inv1 eqtri syl6eq ) DEFZ
      BADCGZHBAECGZHZBQRSBADECIJTBKHBSKBACLMBNOP $.

    $( Relative intersection of a nonempty family.  (Contributed by Stefan
       O'Rear, 3-Apr-2015.) $)
    riinn0 $p |- ( ( A. x e. X S C_ A /\ X =/= (/) ) ->
        ( A i^i |^|_ x e. X S ) = |^|_ x e. X S ) $=
      ( wss wral c0 wne wa ciin incom wceq wrex r19.2z ancoms iinss df-ss sylib
      cin syl syl5eq ) CBEZADFZDGHZIZBADCJZSUFBSZUFBUFKUEUFBEZUGUFLUEUBADMZUHUD
      UCUIUBADNOADCBPTUFBQRUA $.

    $( Relative intersection of a relative abstraction.  (Contributed by Stefan
       O'Rear, 3-Apr-2015.) $)
    riinrab $p |- ( A i^i |^|_ x e. X { y e. A | ph } ) =
        { y e. A | A. x e. X ph } $=
      ( crab ciin cin wral wceq c0 riin0 rzal ralrimivw rabid2 sylibr eqtrd wne
      wss ssrab2 rgenw riinn0 mpan iinrab pm2.61ine ) DBEACDFZGZHZABEIZCDFZJEKE
      KJZUHDUJBDUFELUKUICDIDUJJUKUICDABEMNUICDOPQEKRZUHUGUJUFDSZBEIULUHUGJUMBEA
      CDTUABDUFEUBUCABCEDUDQUE $.
  $}

  $( Symmetric difference with the empty class.  (Contributed by Scott Fenton,
     24-Apr-2012.) $)
  symdif0 $p |- ( A /_\ (/) ) = A $=
    ( c0 csymdif cdif cun df-symdif dif0 0dif uneq12i un0 3eqtri ) ABCABDZBADZE
    ABEAABFLAMBAGAHIAJK $.

  $( Symmetric difference with the universal class.  (Contributed by Scott
     Fenton, 24-Apr-2012.) $)
  symdifv $p |- ( A /_\ _V ) = ( _V \ A ) $=
    ( cvv csymdif cdif cun df-symdif c0 wss wceq ssdif0 mpbi uneq1i uncom eqtri
    ssv un0 ) ABCABDZBADZEZRABFSGREZRQGRABHQGIAOABJKLTRGERGRMRPNNN $.

  $( Symmetric difference with self yields the empty class.  (Contributed by
     Scott Fenton, 25-Apr-2012.) $)
  symdifid $p |- ( A /_\ A ) = (/) $=
    ( csymdif cdif cun c0 df-symdif difid uneq12i un0 3eqtri ) AABAACZKDEEDEAAF
    KEKEAGZLHEIJ $.

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d y V $.
    iinxsng.1 $e |- ( x = A -> B = C ) $.
    $( A singleton index picks out an instance of an indexed intersection's
       argument.  (Contributed by NM, 15-Jan-2012.)  (Proof shortened by Mario
       Carneiro, 17-Nov-2016.) $)
    iinxsng $p |- ( A e. V -> |^|_ x e. { A } B = C ) $=
      ( vy wcel csn ciin cv wral cab df-iin wceq eleq2d ralsng abbi1dv syl5eq )
      BEHZABIZCJGKZCHZAUALZGMDAGUACNTUDGDUCUBDHABEAKBOCDUBFPQRS $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x y D $.  $d x y E $.  $d y V $.
    $d y W $.
    iinxprg.1 $e |- ( x = A -> C = D ) $.
    iinxprg.2 $e |- ( x = B -> C = E ) $.
    $( Indexed intersection with an unordered pair index.  (Contributed by NM,
       25-Jan-2012.) $)
    iinxprg $p |- ( ( A e. V /\ B e. W )
        -> |^|_ x e. { A , B } C = ( D i^i E ) ) $=
      ( vy wcel wa cv cpr wral cab ciin wceq eleq2d ralprg abbidv df-in 3eqtr4g
      cin df-iin ) BGLCHLMZKNZDLZABCOZPZKQUHELZUHFLZMZKQAUJDREFUEUGUKUNKUIULUMA
      BCGHANZBSDEUHITUOCSDFUHJTUAUBAKUJDUFKEFUCUD $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d y V $.
    iunxsng.1 $e |- ( x = A -> B = C ) $.
    $( A singleton index picks out an instance of an indexed union's argument.
       (Contributed by Mario Carneiro, 25-Jun-2016.) $)
    iunxsng $p |- ( A e. V -> U_ x e. { A } B = C ) $=
      ( vy wcel csn ciun cv wrex eliun wceq eleq2d rexsng syl5bb eqrdv ) BEHZGA
      BIZCJZDGKZUAHUBCHZATLSUBDHZAUBTCMUCUDABEAKBNCDUBFOPQR $.
  $}

  ${
    $d x A $.  $d x C $.
    iunxsn.1 $e |- A e. _V $.
    iunxsn.2 $e |- ( x = A -> B = C ) $.
    $( A singleton index picks out an instance of an indexed union's argument.
       (Contributed by NM, 26-Mar-2004.)  (Proof shortened by Mario Carneiro,
       25-Jun-2016.) $)
    iunxsn $p |- U_ x e. { A } B = C $=
      ( cvv wcel csn ciun wceq iunxsng ax-mp ) BGHABICJDKEABCDGFLM $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    $( Separate a union in an indexed union.  (Contributed by NM, 27-Dec-2004.)
       (Proof shortened by Mario Carneiro, 17-Nov-2016.) $)
    iunun $p |- U_ x e. A ( B u. C ) = ( U_ x e. A B u. U_ x e. A C ) $=
      ( vy cun ciun cv wcel wrex r19.43 elun rexbii eliun orbi12i 3bitr4i eqriv
      wo ) EABCDFZGZABCGZABDGZFZEHZSIZABJZUDUAIZUDUBIZRZUDTIUDUCIUDCIZUDDIZRZAB
      JUJABJZUKABJZRUFUIUJUKABKUEULABUDCDLMUGUMUHUNAUDBCNAUDBDNOPAUDBSNUDUAUBLP
      Q $.

    $( Separate a union in the index of an indexed union.  (Contributed by NM,
       26-Mar-2004.)  (Proof shortened by Mario Carneiro, 17-Nov-2016.) $)
    iunxun $p |- U_ x e. ( A u. B ) C = ( U_ x e. A C u. U_ x e. B C ) $=
      ( vy cun ciun cv wcel wrex rexun eliun orbi12i bitr4i elun 3bitr4i eqriv
      wo ) EABCFZDGZABDGZACDGZFZEHZDIZASJZUDUAIZUDUBIZRZUDTIUDUCIUFUEABJZUEACJZ
      RUIUEABCKUGUJUHUKAUDBDLAUDCDLMNAUDSDLUDUAUBOPQ $.
  $}

  ${
    $d A x y $.  $d B y $.  $d E y $.
    iunxdif3.1 $e |- F/_ x E $.
    $( An indexed union where some terms are the empty set.  See ~ iunxdif2 .
       (Contributed by Thierry Arnoux, 4-May-2020.) $)
    iunxdif3 $p |- ( A. x e. E B = (/) -> U_ x e. ( A \ E ) B = U_ x e. A B )
      $=
      ( vy c0 wceq wral cin ciun cdif cun wss inss2 wcel wrex eliun ax-mp a1i
      nfcv nfin ssrexf 3imtr4g ssrdv iuneq2 iun0 syl6eq syl5sseq ss0 syl uneq1d
      cv iunxun inundif nfth nfdif id eqidd iuneq12df eqtr3i uncom un0 3eqtr3rd
      nfun eqtri ) CGHADIZABDJZCKZABDLZCKZMZGVKMZABCKZVKVGVIGVKVGVIGNVIGHVGADCK
      ZVIGVHDNZVIVONBDOVPFVIVOVPFUMZCPZAVHQVRADQVQVIPVQVOPVRAVHDABDABUAZEUBZEUC
      AVQVHCRAVQDCRUDUESVGVOADGKGADCGUFADUGUHUIVIUJUKULVLVNHVGAVHVJMZCKZVLVNAVH
      VJCUNWABHZWBVNHBDUOZWCAWABCCWCAWDUPAVHVJVTABDVSEUQVEVSWCURWCCUSUTSVATVMVK
      HVGVMVKGMVKGVKVBVKVCVFTVD $.
  $}

  ${
    $d x A $.  $d x B $.  $d x D $.  $d x E $.
    iunxprg.1 $e |- ( x = A -> C = D ) $.
    iunxprg.2 $e |- ( x = B -> C = E ) $.
    $( A pair index picks out two instances of an indexed union's argument.
       (Contributed by Alexander van der Vekens, 2-Feb-2018.) $)
    iunxprg $p |- ( ( A e. V /\ B e. W )
                    -> U_ x e. { A , B } C = ( D u. E ) ) $=
      ( wcel wa cpr ciun csn cun wceq df-pr iuneq1 iunxsng iunxun adantr adantl
      ax-mp eqtri uneq12d syl5eq ) BGKZCHKZLZABCMZDNZABOZDNZACOZDNZPZEFPULAUMUO
      PZDNZUQUKURQULUSQBCRAUKURDSUDAUMUODUAUEUJUNEUPFUHUNEQUIABDEGITUBUIUPFQUHA
      CDFHJTUCUFUG $.
  $}

  ${
    $d x y z $.  $d x z A $.  $d z B $.  $d y z C $.
    $( Separate an indexed union in the index of an indexed union.
       (Contributed by Mario Carneiro, 5-Dec-2016.) $)
    iunxiun $p |- U_ x e. U_ y e. A B C = U_ y e. A U_ x e. B C $=
      ( vz ciun cv wcel wa wex eliun anbi1i r19.41v bitr4i exbii rexcom4 df-rex
      wrex 3bitr4i bitri rexbii eqriv ) FABCDGZEGZBCADEGZGZFHZEIZAUDSZUHUFIZBCS
      ZUHUEIUHUGIAHZUDIZUIJZAKZUMDIZUIJZAKZBCSZUJULUPURBCSZAKUTUOVAAUOUQBCSZUIJ
      VAUNVBUIBUMCDLMUQUIBCNOPURBACQOUIAUDRUKUSBCUKUIADSUSAUHDELUIADRUAUBTAUHUD
      ELBUHCUFLTUC $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( A relationship involving union and indexed intersection.  Exercise 23 of
       [Enderton] p. 33.  (Contributed by NM, 25-Nov-2003.)  (Proof shortened
       by Mario Carneiro, 17-Nov-2016.) $)
    iinuni $p |- ( A u. |^| B ) = |^|_ x e. B ( A u. x ) $=
      ( vy cv wcel cint cab cun wral ciin r19.32v elun ralbii vex elint2 orbi2i
      wo 3bitr4ri abbii df-un df-iin 3eqtr4i ) DEZBFZUDCGZFZRZDHUDBAEZIZFZACJZD
      HBUFIACUJKUHULDUEUDUIFZRZACJUEUMACJZRULUHUEUMACLUKUNACUDBUIMNUGUOUEAUDCDO
      PQSTDBUFUAADCUJUBUC $.

    $( A relationship involving union and indexed union.  Exercise 25 of
       [Enderton] p. 33.  (Contributed by NM, 25-Nov-2003.)  (Proof shortened
       by Mario Carneiro, 17-Nov-2016.) $)
    iununi $p |- ( ( B = (/) -> A = (/) ) <->
                ( A u. U. B ) = U_ x e. B ( A u. x ) ) $=
      ( c0 wceq wi cuni cun cv ciun wn wne iunconst sylbir iun0 iuneq2d 3eqtr4a
      df-ne id syl6eq ja eqcomd uneq1d uniiun uneq2i iunun 3eqtr4g unieq uneq2d
      uni0 un0 iuneq1 0iun eqeq12d biimpcd impbii ) CDEZBDEZFZBCGZHZACBAIZHZJZE
      ZUSBACVBJZHACBJZVFHVAVDUSBVGVFUSVGBUQURVGBEZUQKCDLVHCDRACBMNURACDJDVGBACO
      URACBDURSZPVIQUAUBUCUTVFBACUDUEACBVBUFUGUQVEURUQVABVDDUQVABDHBUQUTDBUQUTD
      GDCDUHUJTUIBUKTUQVDADVCJDACDVCULAVCUMTUNUOUP $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Subclass relationship for power class and union.  (Contributed by NM,
       18-Jul-2006.) $)
    sspwuni $p |- ( A C_ ~P B <-> U. A C_ B ) $=
      ( vx cv cpw wcel wral wss cuni selpw ralbii dfss3 unissb 3bitr4i ) CDZBEZ
      FZCAGOBHZCAGAPHAIBHQRCACBJKCAPLCABMN $.

    $( Two ways to express a collection of subclasses.  (Contributed by NM,
       19-Jul-2006.) $)
    pwssb $p |- ( A C_ ~P B <-> A. x e. A x C_ B ) $=
      ( cpw wss cuni cv wral sspwuni unissb bitri ) BCDEBFCEAGCEABHBCIABCJK $.
  $}

  $( Characterization of the elements of a double power class: they are exactly
     the sets whose union is included in that class.  (Contributed by BJ,
     29-Apr-2021.) $)
  elpwpw $p |- ( A e. ~P ~P B <-> ( A e. _V /\ U. A C_ B ) ) $=
    ( cpw wcel cvv wss wa cuni elpwb sspwuni anbi2i bitri ) ABCZCDAEDZAMFZGNAHB
    FZGAMIOPNABJKL $.

  ${
    $d A x $.
    $( The double power class written as a class abstraction: the class of sets
       whose union is included in the given class.  (Contributed by BJ,
       29-Apr-2021.) $)
    pwpwab $p |- ~P ~P A = { x | U. x C_ A } $=
      ( cv cuni wss cpw wcel cvv vex elpwpw mpbiran abbi2i ) ACZDBEZABFFZMOGMHG
      NAIMBJKL $.
  $}

  ${
    $d A x $.
    $( The class of sets whose union is equal to a given class is included in
       the double power class of that class.  (Contributed by BJ,
       29-Apr-2021.) $)
    pwpwssunieq $p |- { x | U. x = A } C_ ~P ~P A $=
      ( cv cuni wceq cab wss cpw eqimss ss2abi pwpwab sseqtr4i ) ACDZBEZAFMBGZA
      FBHHNOAMBIJABKL $.
  $}

  $( Relationship for power class and union.  (Contributed by NM,
     18-Jul-2006.) $)
  elpwuni $p |- ( B e. A -> ( A C_ ~P B <-> U. A = B ) ) $=
    ( cpw wss cuni wcel wceq sspwuni unissel expcom eqimss impbid1 syl5bb ) ABC
    DAEZBDZBAFZNBGZABHPOQOPQABIJNBKLM $.

  ${
    $d x y A $.
    $( The power class of an intersection in terms of indexed intersection.
       Exercise 24(a) of [Enderton] p. 33.  (Contributed by NM,
       29-Nov-2003.) $)
    iinpw $p |- ~P |^| A = |^|_ x e. A ~P x $=
      ( vy cint cpw cv ciin wss wcel ssint selpw ralbii bitr4i cvv wb vex eliin
      wral ax-mp 3bitr4i eqriv ) CBDZEZABAFZEZGZCFZUBHZUGUEIZABRZUGUCIUGUFIZUHU
      GUDHZABRUJAUGBJUIULABCUDKLMCUBKUGNIUKUJOCPAUGBUENQSTUA $.

    $( Inclusion of an indexed union of a power class in the power class of the
       union of its index.  Part of Exercise 24(b) of [Enderton] p. 33.
       (Contributed by NM, 25-Nov-2003.) $)
    iunpwss $p |- U_ x e. A ~P x C_ ~P U. A $=
      ( vy cv cpw ciun cuni wss wrex wcel ssiun eliun selpw rexbii bitri uniiun
      sseq2i 3imtr4i ssriv ) CABADZEZFZBGZEZCDZTHZABIZUEABTFZHZUEUBJZUEUDJZABTU
      EKUJUEUAJZABIUGAUEBUALULUFABCTMNOUKUEUCHUICUCMUCUHUEABPQORS $.
  $}

  $( Relative intersection of a nonempty set.  (Contributed by Stefan O'Rear,
     3-Apr-2015.)  (Revised by Mario Carneiro, 5-Jun-2015.) $)
  rintn0 $p |- ( ( X C_ ~P A /\ X =/= (/) ) -> ( A i^i |^| X ) = |^| X ) $=
    ( cpw wss wne cint cin wceq cuni intssuni2 ssid sspwuni mpbi syl6ss sseqin2
    c0 wa sylib ) BACZDBPEQZBFZADAUAGUAHTUASIZABSJSSDUBADSKSALMNUAAOR $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Disjointness
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Disj_ $.

  $( Extend wff notation to include the statement that a family of classes
     ` B ( x ) ` , for ` x e. A ` , is a disjoint family. $)
  wdisj $a wff Disj_ x e. A B $.

  ${
    $d x y $.  $d y A $.  $d y B $.
    $( A collection of classes ` B ( x ) ` is disjoint when for each element
       ` y ` , it is in ` B ( x ) ` for at most one ` x ` .  (Contributed by
       Mario Carneiro, 14-Nov-2016.)  (Revised by NM, 16-Jun-2017.) $)
    df-disj $a |- ( Disj_ x e. A B <-> A. y E* x e. A y e. B ) $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    $( Alternate definition for disjoint classes.  (Contributed by NM,
       17-Jun-2017.) $)
    dfdisj2 $p |- ( Disj_ x e. A B <-> A. y E* x ( x e. A /\ y e. B ) ) $=
      ( wdisj cv wcel wrmo wal wa wmo df-disj df-rmo albii bitri ) ACDEBFDGZACH
      ZBIAFCGPJAKZBIABCDLQRBPACMNO $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    $( If each element of a collection is contained in a disjoint collection,
       the original collection is also disjoint.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    disjss2 $p |- ( A. x e. A B C_ C ->
      ( Disj_ x e. A C -> Disj_ x e. A B ) ) $=
      ( vy wss wral cv wcel wrmo wal wdisj ssel ralimi rmoim syl alimdv df-disj
      wi 3imtr4g ) CDFZABGZEHZDIZABJZEKUCCIZABJZEKABDLABCLUBUEUGEUBUFUDSZABGUEU
      GSUAUHABCDUCMNUFUDABOPQAEBDRAEBCRT $.
  $}

  $( Equality theorem for disjoint collection.  (Contributed by Mario Carneiro,
     14-Nov-2016.) $)
  disjeq2 $p |- ( A. x e. A B = C ->
    ( Disj_ x e. A B <-> Disj_ x e. A C ) ) $=
    ( wceq wral wdisj wss wi eqimss2 ralimi disjss2 syl eqimss impbid ) CDEZABF
    ZABCGZABDGZQDCHZABFRSIPTABDCJKABDCLMQCDHZABFSRIPUAABCDNKABCDLMO $.

  ${
    $d x ph $.
    disjeq2dv.1 $e |- ( ( ph /\ x e. A ) -> B = C ) $.
    $( Equality deduction for disjoint collection.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    disjeq2dv $p |- ( ph -> ( Disj_ x e. A B <-> Disj_ x e. A C ) ) $=
      ( wceq wral wdisj wb ralrimiva disjeq2 syl ) ADEGZBCHBCDIBCEIJANBCFKBCDEL
      M $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.
    $( A subset of a disjoint collection is disjoint.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    disjss1 $p |- ( A C_ B -> ( Disj_ x e. B C -> Disj_ x e. A C ) ) $=
      ( vy wss cv wcel wa wmo wal wdisj wi ssel anim1d alrimiv moim syl dfdisj2
      alimdv 3imtr4g ) BCFZAGZCHZEGDHZIZAJZEKUCBHZUEIZAJZEKACDLABDLUBUGUJEUBUIU
      FMZAKUGUJMUBUKAUBUHUDUEBCUCNOPUIUFAQRTAECDSAEBDSUA $.

    $( Equality theorem for disjoint collection.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    disjeq1 $p |- ( A = B -> ( Disj_ x e. A C <-> Disj_ x e. B C ) ) $=
      ( wceq wdisj wss wi eqimss2 disjss1 syl eqimss impbid ) BCEZABDFZACDFZNCB
      GOPHCBIACBDJKNBCGPOHBCLABCDJKM $.

    disjeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for disjoint collection.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    disjeq1d $p |- ( ph -> ( Disj_ x e. A C <-> Disj_ x e. B C ) ) $=
      ( wceq wdisj wb disjeq1 syl ) ACDGBCEHBDEHIFBCDEJK $.

    $d x ph $.
    disjeq12d.1 $e |- ( ph -> C = D ) $.
    $( Equality theorem for disjoint collection.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    disjeq12d $p |- ( ph -> ( Disj_ x e. A C <-> Disj_ x e. B D ) ) $=
      ( wdisj disjeq1d wceq cv wcel adantr disjeq2dv bitrd ) ABCEIBDEIBDFIABCDE
      GJABDEFAEFKBLDMHNOP $.
  $}

  ${
    $d x y z A $.  $d z B $.  $d z C $.
    cbvdisj.1 $e |- F/_ y B $.
    cbvdisj.2 $e |- F/_ x C $.
    cbvdisj.3 $e |- ( x = y -> B = C ) $.
    $( Change bound variables in a disjoint collection.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    cbvdisj $p |- ( Disj_ x e. A B <-> Disj_ y e. A C ) $=
      ( vz cv wcel wrmo wal wdisj nfcri weq eleq2d cbvrmo albii df-disj 3bitr4i
      ) IJZDKZACLZIMUBEKZBCLZIMACDNBCENUDUFIUCUEABCBIDFOAIEGOABPDEUBHQRSAICDTBI
      CETUA $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x C $.
    cbvdisjv.1 $e |- ( x = y -> B = C ) $.
    $( Change bound variables in a disjoint collection.  (Contributed by Mario
       Carneiro, 11-Dec-2016.) $)
    cbvdisjv $p |- ( Disj_ x e. A B <-> Disj_ y e. A C ) $=
      ( nfcv cbvdisj ) ABCDEBDGAEGFH $.
  $}

  ${
    $d z A $.  $d z B $.  $d x z $.  $d y z $.
    nfdisj.1 $e |- F/_ y A $.
    nfdisj.2 $e |- F/_ y B $.
    $( Bound-variable hypothesis builder for disjoint collection.  (Contributed
       by Mario Carneiro, 14-Nov-2016.) $)
    nfdisj $p |- F/ y Disj_ x e. A B $=
      ( vz wdisj cv wcel wa wmo wal dfdisj2 wnf wtru nftru weq wn a1i wnfc trud
      nfcvf nfeld nfcri nfand adantl nfmod2 nfal nfxfr ) ACDHAIZCJZGIDJZKZALZGM
      BAGCDNUOBGUOBOPUNBAAQBARBMSZUNBOPUPULUMBUPBUKCBAUCBCUAUPETUDUMBOUPBGDFUET
      UFUGUHUBUIUJ $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( Bound-variable hypothesis builder for disjoint collection.  (Contributed
       by Mario Carneiro, 14-Nov-2016.) $)
    nfdisj1 $p |- F/ x Disj_ x e. A B $=
      ( vy wdisj cv wcel wrmo wal df-disj nfrmo1 nfal nfxfr ) ABCEDFCGZABHZDIAA
      DBCJOADNABKLM $.
  $}

  ${
    $d i j x A $.  $d j x B $.  $d i x C $.
    disjor.1 $e |- ( i = j -> B = C ) $.
    $( Two ways to say that a collection ` B ( i ) ` for ` i e. A ` is
       disjoint.  (Contributed by Mario Carneiro, 26-Mar-2015.)  (Revised by
       Mario Carneiro, 14-Nov-2016.) $)
    disjor $p |- ( Disj_ i e. A B <->
      A. i e. A A. j e. A ( i = j \/ ( B i^i C ) = (/) ) ) $=
      ( vx wdisj cv wcel wrmo wal wo wral wi ralcom4 wex bitri bitr4i ralbii c0
      weq cin wceq df-disj wa orcom df-or neq0 elin imbi1i 19.23v 3bitri eleq2d
      wn exbii rmo4 albii 3bitr4i ) DABHGIZBJZDAKZGLZDEUBZBCUCZUAUDZMZEANZDANZD
      GABUEVAUTCJZUFZVDOZEANZGLZDANVMDANZGLVIVCVMDGAPVHVNDAVHVLGLZEANVNVGVPEAVG
      VFVDMVFUOZVDOZVPVDVFUGVFVDUHVRVKGQZVDOVPVQVSVDVQUTVEJZGQVSGVEUIVTVKGUTBCU
      JUPRUKVKVDGULSUMTVLEGAPRTVBVOGVAVJDEAVDBCUTFUNUQURUSS $.
  $}

  ${
    $d i j x A $.  $d i j B $.
    $( Two ways to say that a collection ` B ( i ) ` for ` i e. A ` is
       disjoint.  (Contributed by Mario Carneiro, 14-Nov-2016.) $)
    disjors $p |- ( Disj_ x e. A B <-> A. i e. A A. j e. A
      ( i = j \/ ( [_ i / x ]_ B i^i [_ j / x ]_ B ) = (/) ) ) $=
      ( wdisj cv csb wceq c0 wo wral nfcv nfcsb1v csbeq1a cbvdisj csbeq1 disjor
      cin bitri ) ABCFDBADGZCHZFUAEGZIUBAUCCHZSJIKEBLDBLADBCUBDCMAUACNAUACOPBUB
      UDDEAUAUCCQRT $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d x y z C $.  $d x z D $.  $d x y z X $.
    $d x z Y $.
    disji.1 $e |- ( x = X -> B = C ) $.
    disji.2 $e |- ( x = Y -> B = D ) $.
    $( Property of a disjoint collection: if ` B ( X ) = C ` and
       ` B ( Y ) = D ` , and ` X =/= Y ` , then ` C ` and ` D ` are disjoint.
       (Contributed by Mario Carneiro, 14-Nov-2016.) $)
    disji2 $p |- ( ( Disj_ x e. A B /\ ( X e. A /\ Y e. A ) /\
      X =/= Y ) -> ( C i^i D ) = (/) ) $=
      ( vy vz wcel wa cin c0 wceq wo cv csb nfcv wdisj df-ne wral disjors eqeq1
      wn csbhypf ineq1d eqeq1d orbi12d eqeq2 ineq2d rspc2v syl5bi impcom 3impia
      wne ord ) ABCUAZFBLGBLMZFGUQZDENZOPZVAFGPZUFUSUTMZVCFGUBVEVDVCUTUSVDVCQZU
      SJRZKRZPZAVGCSZAVHCSZNZOPZQZKBUCJBUCUTVFABCJKUDVNVFFVHPZDVKNZOPZQJKFGBBVG
      FPZVIVOVMVQVGFVHUEVRVLVPOVRVJDVKAJFCDAFTADTHUGUHUIUJVHGPZVOVDVQVCVHGFUKVS
      VPVBOVSVKEDAKGCEAGTAETIUGULUIUJUMUNUOURUNUP $.

    $( Property of a disjoint collection: if ` B ( X ) = C ` and
       ` B ( Y ) = D ` have a common element ` Z ` , then ` X = Y ` .
       (Contributed by Mario Carneiro, 14-Nov-2016.) $)
    disji $p |- ( ( Disj_ x e. A B /\ ( X e. A /\ Y e. A ) /\
      ( Z e. C /\ Z e. D ) ) -> X = Y ) $=
      ( wcel wa wdisj cin c0 wne wceq inelcm disji2 3expia necon1d syl3an3
      3impia ) HDKHEKLABCMZFBKGBKLZDENZOPZFGQZHDERUDUEUGUHUDUELFGUFOUDUEFGPUFOQ
      ABCDEFGIJSTUAUCUB $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d x C $.
    $( If there is a function ` C ( y ) ` such that ` C ( y ) = x ` for all
       ` y e. B ( x ) ` , then the sets ` B ( x ) ` for distinct ` x e. A ` are
       disjoint.  (Contributed by Mario Carneiro, 10-Dec-2016.) $)
    invdisj $p |- ( A. x e. A A. y e. B C = x -> Disj_ x e. A B ) $=
      ( cv wceq wral wcel wa wmo wal wdisj nfra2 df-ral rsp eqcom syl6ib imim2i
      wi impd alimi sylbi mo2icl syl alrimi dfdisj2 sylibr ) EAFZGZBDHZACHZUICI
      ZBFDIZJZAKZBLACDMULUPBUJABCDNULUOUIEGZTZALZUPULUMUKTZALUSUKACOUTURAUTUMUN
      UQUKUNUQTUMUKUNUJUQUJBDPEUIQRSUAUBUCUOAEUDUEUFABCDUGUH $.
  $}

  ${
    $d A z $.  $d B x z $.  $d C y z $.  $d x y z $.
    $( The restricted class abstractions ` { x e. B | C = y } ` for distinct
       ` y e. A ` are disjoint.  (Contributed by AV, 6-May-2020.) $)
    invdisjrab $p |- Disj_ y e. A { x e. B | C = y } $=
      ( vz cv csb wceq crab wral wdisj wcel wi nfcsb1v nfeq1 weq csbeq1a eqeq1d
      nfcv elrabf ax-1 simplbiim impcom rgen2 invdisj ax-mp ) AFGZEHZBGZIZFEUJI
      ZADJZKBCKBCUMLUKBFCUMUHUMMZUJCMZUKUNUHDMUKUOUKNULUKAUHDAUHTADTAUIUJAUHEOP
      AFQEUIUJAUHERSUAUKUOUBUCUDUEBFCUMUIUFUG $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d x y z C $.  $d x y z D $.
    $( A disjoint collection yields disjoint indexed unions for disjoint index
       sets.  (Contributed by Mario Carneiro, 26-Mar-2015.)  (Revised by Mario
       Carneiro, 14-Nov-2016.) $)
    disjiun $p |- ( ( Disj_ x e. A B /\
      ( C C_ A /\ D C_ A /\ ( C i^i D ) = (/) ) ) ->
        ( U_ x e. C B i^i U_ x e. D B ) = (/) ) $=
      ( vy vz wss cin c0 wceq wa cv wcel wi wrex wral impcom syl syl5bi ciun wn
      wdisj w3a wal wrmo df-disj wne elin eliun anbi12i weq wex nfv rmo2 ssralv
      bitri an4 r19.29 id imp eleq1d biimpcd rexlimiv ex expimpd anim12d inelcm
      syl6 exlimiv expd sylbi necon2bd impancom 3impa alimdv eq0 sylibr ) ABCUC
      ZDBHZEBHZDEIZJKZUDZLFMZADCUAZAECUAZIZNZUBZFUEZWHJKWDVSWKVSWECNZABUFZFUEWD
      WKAFBCUGWDWMWJFVTWAWCWMWJOVTWALZWMWCWJWNWMLZWIWBJWIWLADPZWLAEPZLZWOWBJUHZ
      WIWEWFNZWEWGNZLWRWEWFWGUIWTWPXAWQAWEDCUJAWEECUJUKUQWMWNWRWSOZWMWLAGULZOZA
      BQZGUMZWNXBOWLAGBWLGUNUOXFWNWRWSWNWRLVTWPLZWAWQLZLZXFWSVTWAWPWQURXEXIWSOG
      XEXIGMZDNZXJENZLWSXEXGXKXHXLXEVTWPXKXEVTLXDADQZWPXKOVTXEXMXDADBUPRXMWPXKX
      MWPLXDWLLZADPXKXDWLADUSXNXKADXNAMZDNXKXNXOXJDXDWLXCXDUTVAZVBVCVDSVESVFXEW
      AWQXLXEWALXDAEQZWQXLOWAXEXQXDAEBUPRXQWQXLXQWQLXNAEPXLXDWLAEUSXNXLAEXNXOEN
      XLXNXOXJEXPVBVCVDSVESVFVGXJDEVHVIVJTVKVLRTVMVNVOVPTRFWHVQVR $.
  $}

  ${
    $d A b x $.  $d B a x $.  $d V a b x $.  $d ph a b x $.
    disjord.1 $e |- ( a = b -> A = B ) $.
    disjord.2 $e |- ( ( ph /\ x e. A /\ x e. B ) -> a = b ) $.
    $( Conditions for a collection of sets ` A ( a ) ` for ` a e. V ` to be
       disjoint.  (Contributed by AV, 9-Jan-2022.) $)
    disjord $p |- ( ph -> Disj_ a e. V A ) $=
      ( weq cin c0 wceq wo wral cv wcel wa wn sylibr wdisj orc a1d 3expia con3d
      wi impancom ralrimiv disj olcd expcom pm2.61i adantr ralrimivva disjor )
      AFGJZCDKLMZNZGEOFEOFECUAAURFGEEAURFPEQGPEQRUPAURUFUPURAUPUQUBUCAUPSZURAUS
      RZUQUPUTBPZDQZSZBCOUQUTVCBCAVACQZUSVCAVDRVBUPAVDVBUPIUDUEUGUHBCDUITUJUKUL
      UMUNECDFGHUOT $.
  $}

  ${
    $d A i j $.  $d B j x $.  $d C j $.  $d E i $.  $d D i x $.  $d i j x $.
    disjiunb.1 $e |- ( i = j -> B = D ) $.
    disjiunb.2 $e |- ( i = j -> C = E ) $.
    $( Two ways to say that a collection of index unions ` C ( i , x ) ` for
       ` i e. A ` and ` x e. B ` is disjoint.  (Contributed by AV,
       9-Jan-2022.) $)
    disjiunb $p |- ( Disj_ i e. A U_ x e. B C <-> A. i e. A A. j e. A
                        ( i = j \/ ( U_ x e. B C i^i U_ x e. D E ) = (/) ) ) $=
      ( ciun weq iuneq12d disjor ) BACDKAEHKFGFGLACEDHIJMN $.
  $}

  ${
    $d A c d x $.  $d C a d x $.  $d D b $.  $d V a c $.  $d W b c d x $.
    $d X a b d x $.  $d ph a b c d x $.
    disjiund.1 $e |- ( a = c -> A = C ) $.
    disjiund.2 $e |- ( b = d -> C = D ) $.
    disjiund.3 $e |- ( a = c -> W = X ) $.
    disjiund.4 $e |- ( ( ph /\ x e. A /\ x e. D ) -> a = c ) $.
    $( Conditions for a collection of index unions of sets ` A ( a , b ) ` for
       ` a e. V ` and ` b e. W ` to be disjoint.  (Contributed by AV,
       9-Jan-2022.) $)
    disjiund $p |- ( ph -> Disj_ a e. V U_ b e. W A ) $=
      ( cv wceq wral wcel ciun c0 wo wdisj wa wn wrex eliun eleq2d cbvrexv 3exp
      cin wi rexlimdvw imp syl5bi con3d impancom ralrimiv disj sylibr ralrimivv
      ex orrd a1d disjiunb ) AIQZKQZRZJGCUAZJHDUAZULUBRZUCZKFSIFSIFVJUDAVMIKFFA
      VMVGFTVHFTUEAVIVLAVIUFZVLAVNUEZBQZVKTZUFZBVJSVLVOVRBVJVPVJTVPCTZJGUGZVOVR
      JVPGCUHAVTVNVRAVTUEZVQVIVQVPDTZJHUGZWAVIJVPHDUHWCVPETZLHUGWAVIWBWDJLHJQLQ
      RDEVPNUIUJWAWDVILHAVTWDVIUMZAVSWEJGAVSWDVIPUKUNUOUNUPUPUQURUPUSBVJVKUTVAV
      CVDVEVBJFGCHIKDOMVFVA $.
  $}

  ${
    $d x y $.  $d y A $.
    $( Any collection of singletons is disjoint.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    sndisj $p |- Disj_ x e. A { x } $=
      ( vy cv csn wdisj wcel wa wmo dfdisj2 weq simpr velsn sylib equcomd moimi
      moeq ax-mp mpgbir ) ABADZEZFTBGZCDZUAGZHZAIZCACBUAJACKZAIUFAUCQUEUGAUECAU
      EUDCAKUBUDLCTMNOPRS $.
  $}

  $( Any collection of empty sets is disjoint.  (Contributed by Mario Carneiro,
     14-Nov-2016.) $)
  0disj $p |- Disj_ x e. A (/) $=
    ( c0 cv csn wss wral wdisj 0ss rgenw sndisj disjss2 mp2 ) CADEZFZABGABNHABC
    HOABNIJABKABCNLM $.

  ${
    $d x y A $.  $d y B $.
    $( A singleton collection is disjoint.  (Contributed by Mario Carneiro,
       14-Nov-2016.) $)
    disjxsn $p |- Disj_ x e. { A } B $=
      ( vy csn wdisj cv wcel wa wmo dfdisj2 wceq moeq elsni adantr moimi mpgbir
      ax-mp ) ABEZCFAGZSHZDGCHZIZAJZDADSCKTBLZAJUDABMUCUEAUAUEUBTBNOPRQ $.

    $( An empty collection is disjoint.  (Contributed by Mario Carneiro,
       14-Nov-2016.) $)
    disjx0 $p |- Disj_ x e. (/) B $=
      ( c0 csn wss wdisj 0ss disjxsn disjss1 mp2 ) CCDZEAKBFACBFKGACBHACKBIJ $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d y z C $.  $d x y z D $.  $d x y z E $.
    disjprg.1 $e |- ( x = A -> C = D ) $.
    disjprg.2 $e |- ( x = B -> C = E ) $.
    $( A pair collection is disjoint iff the two sets in the family have empty
       intersection.  (Contributed by Mario Carneiro, 14-Nov-2016.) $)
    disjprg $p |- ( ( A e. V /\ B e. V /\ A =/= B ) ->
      ( Disj_ x e. { A , B } C <-> ( D i^i E ) = (/) ) ) $=
      ( vy vz wceq cin c0 wo wral wa wb nfcv wtru wcel wne w3a cv csb cpr wdisj
      eqeq1 csbhypf ineq1d eqeq1d orbi12d ralbidv ralprg 3adant3 id eqcomd orcd
      a1tru 2thd eqeq2 ineq2d simp3 neneqd biorf syl tru biantrur syl6bb bitr4d
      wn eqcom incom syl6eq biantru anbi12d bitrd disjors pm4.24 3bitr4g ) BGUA
      ZCGUAZBCUBZUCZJUDZKUDZLZAWEDUEZAWFDUEZMZNLZOZKBCUFZPZJWMPZEFMZNLZWQQZAWMD
      UGWQWDWOBWFLZEWIMZNLZOZKWMPZCWFLZFWIMZNLZOZKWMPZQZWRWAWBWOXIRWCWNXCXHJBCG
      GWEBLZWLXBKWMXJWGWSWKXAWEBWFUHXJWJWTNXJWHEWIAJBDEABSZAESZHUIUJUKULUMWECLZ
      WLXGKWMXMWGXDWKXFWECWFUHXMWJXENXMWHFWIAJCDFACSZAFSZIUIUJUKULUMUNUOWDXCWQX
      HWQWDXCTBCLZWQOZQZWQWAWBXCXRRWCXBTXQKBCGGWFBLZXBTXSWSXAXSWFBXSUPUQURXSUSU
      TWFCLZWSXPXAWQWFCBVAXTWTWPNXTWIFEAKCDFXNXOIUIVBUKULUNUOWDWQXQXRWDXPVKWQXQ
      RWDBCWAWBWCVCVDXPWQVEVFZTXQVGVHVIVJWDXHXQTQZWQWAWBXHYBRWCXGXQTKBCGGXSXDXP
      XFWQXSXDCBLXPWFBCVACBVLVIXSXEWPNXSXEFEMWPXSWIEFAKBDEXKXLHUIVBFEVMVNUKULXT
      XGTXTXDXFXTWFCXTUPUQURXTUSUTUNUOWDWQXQYBYATXQVGVOVIVJVPVQAWMDJKVRWQVSVT
      $.
  $}

  ${
    $d r s u v x y z A $.  $d r s u v x z B $.  $d r s u v y z C $.
    $( An indexed union of a disjoint collection of disjoint collections is
       disjoint if each component is disjoint, and the disjoint unions in the
       collection are also disjoint.  Note that ` B ( y ) ` and ` C ( x ) ` may
       have the displayed free variables.  (Contributed by Mario Carneiro,
       14-Nov-2016.)  (Proof shortened by JJ, 27-May-2021.) $)
    disjxiun $p |- ( Disj_ y e. A B -> ( Disj_ x e. U_ y e. A B C <->
      ( A. y e. A Disj_ x e. B C /\ Disj_ y e. A U_ x e. B C ) ) ) $=
      ( vu vv vr vs vz wdisj ciun wral wa nfcv wss cv wcel csb weq nfiu1 nfdisj
      wi disjss1 ssiun2 syl11 ralrimi a1i cin c0 wceq wo simplr nfcsb1v csbeq1a
      cbviun syl6sseqr adantr csbeq1 sseq1d vtoclga adantl cbvdisj disjor sylbb
      ad2antrl rsp2 syl imp ord impr adantlr disjiun syl13anc expr orrd iuneq1d
      wn ralrimivva sylibr nfiun ex jcad wrex eleq2i eliun bitri anbi12i reeanv
      bitr4i simplrr disjeq1d rspc impcom disjors ad2ant2r simplrl eleqtrrd jca
      sylib syl2an2r adantlrr mpd wne ss2in syl2an biimpi ad3antlr id syl2an3an
      disji2 sseq0 pm2.61dane rexlimdvva syl5bi ralrimivv impbid1 ) BCDKZABCDLZ
      EKZADEKZBCMZBCADELZKZNZXRXTYBYDXTYBUCXRXTYABCABXSEBCDUABEOZUBDXSPXTYABQCR
      ADXSEUDBCDUEUFUGUHXRXTYDXRXTNZFCABFQZDSZELZKZYDYGFGTZYJABGQZDSZELZUIZUJUK
      ZULZGCMFCMYKYGYRFGCCYGYHCRZYMCRZNZNYLYQYGUUAYLVRZYQYGUUAUUBNZNXTYIXSPZYNX
      SPZYIYNUIUJUKZYQXRXTUUCUMUUAUUDYGUUBYSUUDYTYSYIFCYILZXSFCYIUEBFCDYIFDOZBY
      HDUNZBYHDUOZUPZUQZURVFUUAUUEYGUUBYTUUEYSUUDUUEFYMCYLYIYNXSBYHYMDUSZUTUULV
      AVBVFXRUUCUUFXTXRUUAUUBUUFXRUUANYLUUFXRUUAYLUUFULZXRUUNGCMFCMZUUAUUNUCXRF
      CYIKUUOBFCDYIUUHUUIUUJVCCYIYNFGUUMVDVEUUNFGCCVGVHVIVJVKVLAXSEYIYNVMVNVOVP
      VSCYJYOFGYLAYIYNEUUMVQVDVTBFCYCYJFYCOABYIEUUIYFWABFTZADYIEUUJVQVCVTWBWCYE
      HITZAHQZESZAIQZESZUIZUJUKZULZIXSMHXSMXTYEUVDHIXSXSUURXSRZUUTXSRZNZUURYIRZ
      UUTYNRZNZGCWDFCWDZYEUVDUVGUVHFCWDZUVIGCWDZNUVKUVEUVLUVFUVMUVEUURUUGRUVLXS
      UUGUURUUKWEFUURCYIWFWGUVFUUTGCYNLZRUVMXSUVNUUTBGCDYNGDOBYMDUNBYMDUOUPWEGU
      UTCYNWFWGWHUVHUVIFGCCWIWJYEUVJUVDFGCCYEUUANZUVJUVDUVOUVJNZUUQUVCUVOUVJUUQ
      VRZUVCUVOUVJUVQNZNZUVCYHYMUVSYLNZUVQUVCUVOUVJUVQYLWKUVTUUQUVCUVOUVJYLUVDU
      VQUVPUVDIYIMHYIMZYLUVHUUTYIRZNZUVDUVOUWAUVJYBYSUWAYDYTYBYSNAYIEKZUWAYSYBU
      WDYAUWDBYHCABYIEUUIYFUBUUPADYIEUUJWLWMWNAYIEHIWOWTWPURUVPYLNZUVHUWBUVOUVH
      UVIYLWQUWEUUTYNYIUVOUVHUVIYLWKYLYIYNUKUVPUUMVBWRWSUWAUWCUVDUVDHIYIYIVGVIX
      AXBVJXCUVSUVBYPPZYHYMXDZYQUVCUVJUWFUVOUVQUVHUUSYJPUVAYOPUWFUVIUVHUUSHYIUU
      SLYJHYIUUSUEAHYIEUUSHEOAUUREUNAUUREUOUPUQUVIUVAIYNUVALYOIYNUVAUEAIYNEUVAI
      EOAUUTEUNAUUTEUOUPUQUUSYJUVAYOXEXFVFUVSJCABJQZDSZELZKZUUAUWGUWGYQYDUWKYBU
      UAUVRYDUWKBJCYCUWJJYCOABUWIEBUWHDUNYFWABJTADUWIEBUWHDUOVQVCXGXHYEUUAUVRUM
      UWGXIJCUWJYJYOYHYMJFTAUWIYIEBUWHYHDUSVQJGTAUWIYNEBUWHYMDUSVQXKXJUVBYPXLXA
      XMVOVPWBXNXOXPAXSEHIWOVTXQ $.

    $( Obsolete proof of ~ disjxiun as of 27-May-2021.  An indexed union of a
       disjoint collection of disjoint collections is disjoint if each
       component is disjoint, and the disjoint unions in the collection are
       also disjoint.  Note that ` B ( y ) ` and ` C ( x ) ` may have the
       displayed free variables.  (Contributed by Mario Carneiro, 14-Nov-2016.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    disjxiunOLD $p |- ( Disj_ y e. A B -> ( Disj_ x e. U_ y e. A B C <->
      ( A. y e. A Disj_ x e. B C /\ Disj_ y e. A U_ x e. B C ) ) ) $=
      ( vu vv vr vs vz wdisj ciun wral wa nfcv cv wcel wss syl weq nfiu1 nfdisj
      wi ssiun2 disjss1 com12 ralrimi a1i csb cin c0 wceq wo wn simprll nfcsb1v
      simplr csbeq1a cbviun syl6sseqr simprlr csbeq1 sseq1d vtoclga simpl sylib
      cbvdisj disjor rsp2 imp ord impr disjiun syl13anc expr ralrimivva iuneq1d
      orrd sylibr nfiun ex jcad wrex eleq2i eliun anbi12i reeanv bitr4i simplrr
      simprl simplrl disjeq1d rspc sylc ad2antrr disjors simpld simprd eleqtrrd
      bitri adantl jca mpd wne ss2in syl2anc simprr disji2 syl121anc pm2.61dane
      simpr sseq0 rexlimdvva syl5bi ralrimivv impbid ) BCDKZABCDLZEKZADEKZBCMZB
      CADELZKZNZXQXSYAYCXSYAUCXQXSXTBCABXREBCDUABEOZUBBPCQZXSXTYFDXRRXSXTUCBCDU
      DADXREUESUFUGUHXQXSYCXQXSNZFCABFPZDUIZELZKZYCYGFGTZYJABGPZDUIZELZUJZUKULZ
      UMZGCMFCMYKYGYRFGCCYGYHCQZYMCQZNZNZYLYQYGUUAYLUNZYQYGUUAUUCNZNZXSYIXRRZYN
      XRRZYIYNUJUKULZYQXQXSUUDUQUUEYSUUFYGYSYTUUCUOYSYIFCYILZXRFCYIUDBFCDYIFDOZ
      BYHDUPZBYHDURZUSZUTZSUUEYTUUGYGYSYTUUCVAUUFUUGFYMCYLYIYNXRBYHYMDVBZVCUUNV
      DSYGUUAUUCUUHUUBYLUUHYGUUAYLUUHUMZYGUUPGCMFCMZUUAUUPUCYGFCYIKZUUQYGXQUURX
      QXSVEBFCDYIUUJUUKUULVGVFCYIYNFGUUOVHVFUUPFGCCVISVJVKVLAXREYIYNVMVNVOVRVPC
      YJYOFGYLAYIYNEUUOVQVHVSBFCYBYJFYBOABYIEUUKYEVTBFTZADYIEUULVQVGVSWAWBXQYDX
      SXQYDNZHITZAHPZEUIZAIPZEUIZUJZUKULZUMZIXRMHXRMXSUUTUVHHIXRXRUVBXRQZUVDXRQ
      ZNZUVBYIQZUVDYNQZNZGCWCFCWCZUUTUVHUVKUVLFCWCZUVMGCWCZNUVOUVIUVPUVJUVQUVIU
      VBUUIQUVPXRUUIUVBUUMWDFUVBCYIWEWTUVJUVDGCYNLZQUVQXRUVRUVDBGCDYNGDOBYMDUPB
      YMDURUSWDGUVDCYNWEWTWFUVLUVMFGCCWGWHUUTUVNUVHFGCCUUTUUANZUVNUVHUVSUVNNUVA
      UVGUVSUVNUVAUNZUVGUVSUVNUVTNZNZUVGYHYMUWBYLNZUVTUVGUVSUVNUVTYLWIUWCUVAUVG
      UWCUVHIYIMHYIMZUVLUVDYIQZNUVHUWCAYIEKZUWDUVSUWFUWAYLUVSYSYAUWFUUTYSYTWJZX
      QYAYCUUAWKXTUWFBYHCABYIEUUKYEUBUUSADYIEUULWLWMWNWOAYIEHIWPVFUWCUVLUWEUWCU
      VLUVMUVSUVNUVTYLWKZWQUWCUVDYNYIUWCUVLUVMUWHWRYLYIYNULUWBUUOXAWSXBUVHHIYIY
      IVIWNVKXCUWBYHYMXDZNZUVFYPRZYQUVGUWJUVCYJRZUVEYORZUWKUWJUVLUWLUWJUVLUVMUV
      SUVNUVTUWIWKZWQUVLUVCHYIUVCLYJHYIUVCUDAHYIEUVCHEOAUVBEUPAUVBEURUSUTSUWJUV
      MUWMUWJUVLUVMUWNWRUVMUVEIYNUVELYOIYNUVEUDAIYNEUVEIEOAUVDEUPAUVDEURUSUTSUV
      CYJUVEYOXEXFUWJJCABJPZDUIZELZKZYSYTUWIYQUWJYCUWRUVSYCUWAUWIXQYAYCUUAWIWOB
      JCYBUWQJYBOABUWPEBUWODUPYEVTBJTADUWPEBUWODURVQVGVFUVSYSUWAUWIUWGWOUVSYTUW
      AUWIUUTYSYTXGWOUWBUWIXKJCUWQYJYOYHYMJFTAUWPYIEBUWOYHDVBVQJGTAUWPYNEBUWOYM
      DVBVQXHXIUVFYPXLXFXJVOVRWAXMXNXOAXREHIWPVSWAXP $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w y z C $.  $d w x z D $.
    disjxun.1 $e |- ( x = y -> C = D ) $.
    $( The union of two disjoint collections.  (Contributed by Mario Carneiro,
       14-Nov-2016.) $)
    disjxun $p |- ( ( A i^i B ) = (/) -> ( Disj_ x e. ( A u. B ) C <->
      ( Disj_ x e. A C /\ Disj_ x e. B C /\
        A. x e. A A. y e. B ( C i^i D ) = (/) ) ) ) $=
      ( vz vw cin c0 wceq weq cv wo wral wa eqeq1d orbi12d bitri csb wdisj wcel
      cun wn wb disjel eleq1 notbid syl5ibcom con2d impr biorf bicomd 2ralbidva
      w3a syl anbi2d ralunb ralbii nfcv nfcsb1v nfin nfeq1 nfor equequ2 csbhypf
      nfral ineq2d cbvralv equequ1 csbeq1a ineq1d ralbidv syl5bbr cbvral r19.26
      nfv 3bitr3i disjor anbi1i equcom syl6bb incom syl6eq ralcom syl5bb anbi1d
      3bitr4g disjors anbi2ci anbi12d df-3an anandir ) CDJKLZHIMZAHNZEUAZAINZEU
      AZJZKLZOZICDUDZPZHCPZXEHDPZQZACEUBZEFJZKLZBDPACPZQZADEUBZXLQZQZAXDEUBZXIX
      NXLUPZWOXFXMXGXOWOABMZXKOZBCPZACPZXTBDPZACPZQZYBXLQXFXMWOYDXLYBWOXTXKABCD
      WOANZCUCZBNZDUCZQQZXKXTYJXSUEZXKXTUFWOYGYIYKWOYGQZXSYIYLYFDUCZUEXSYIUECDY
      FUGXSYMYIYFYHDUHUIUJUKULXSXKUMUQUNUOZURXTBXDPZACPYAYCQZACPXFYEYOYPACXTBCD
      USUTYOXEAHCYOHVRXCAIXDAXDVAWPXBAWPAVRAXAKAWRWTAWQEVBAWSEVBVCVDVEZVHYOAIMZ
      EWTJZKLZOZIXDPAHMZXEUUAXTIBXDIBMZYRXSYTXKIBAVFUUCYSXJKUUCWTFEAIYHEFAYHVAZ
      AFVAZGVGVIRSVJUUBUUAXCIXDUUBYRWPYTXBAHIVKUUBYSXAKUUBEWRWTAWQEVLVMRSVNVOVP
      YAYCACVQVSXIYBXLCEFABGVTWAWIWOXCICPZHDPZXCIDPZHDPZQZXLUUIQXGXOWOUUGXLUUIU
      UGYDWOXLUUGXTACPZBDPYDUUFUUKHBDUUFHAMZWREJZKLZOZACPHBMZUUKUUOXCAICUUOIVRY
      QYRUULWPUUNXBAIHVFYRUUMXAKYREWTWRAWSEVLVIRSVPUUPUUOXTACUUPUULXSUUNXKUUPUU
      LBAMXSHBAVKBAWBWCUUPUUMXJKUUPUUMFEJXJUUPWRFEAHYHEFUUDUUEGVGVMFEWDWERSVNVO
      VJXTBADCWFTYNWGWHXGUUFUUHQZHDPUUJXEUUQHDXCICDUSUTUUFUUHHDVQTXNUUIXLADEHIW
      JWKWIWLXQXEHXDPXHAXDEHIWJXEHCDUSTXRXIXNQXLQXPXIXNXLWMXIXNXLWNTWI $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.
    $( Expand a disjoint collection with any number of empty sets.
       (Contributed by Mario Carneiro, 15-Nov-2016.) $)
    disjss3 $p |- ( ( A C_ B /\ A. x e. ( B \ A ) C = (/) ) ->
      ( Disj_ x e. A C <-> Disj_ x e. B C ) ) $=
      ( vy wss c0 wceq wa wdisj wi cv wcel wmo wal wn syl simpl adantl dfdisj2
      cdif wral df-ral simprr n0i eldif syl5bir mpand mt3d jca alimi sylbi moim
      ex alimdv 3imtr4g disjss1 adantr impbid ) BCFZDGHZACBUAZUBZIABDJZACDJZVCV
      DVEKUTVCALZBMZELZDMZIZANZEOVFCMZVIIZANZEOVDVEVCVKVNEVCVMVJKZAOZVKVNKVCVFV
      BMZVAKZAOVPVAAVBUCVRVOAVRVMVJVRVMIZVGVIVSVGVAVSVIVAPVRVLVIUDZDVHUEQVSVLVG
      PZVAVMVLVRVLVIRSVLWAIVQVSVAVFCBUFVRVMRUGUHUIVTUJUNUKULVMVJAUMQUOAEBDTAECD
      TUPSUTVEVDKVCABCDUQURUS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Binary relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend wff notation to include the general binary relation predicate.
     Note that the syntax is simply three class symbols in a row.  Since binary
     relations are the only possible wff expressions consisting of three class
     expressions in a row, the syntax is unambiguous.  (For an example of how
     syntax could become ambiguous if we are not careful, see the comment in
     ~ cneg .) $)
  wbr $a wff A R B $.

  $( Define a general binary relation.  Note that the syntax is simply three
     class symbols in a row.  Definition 6.18 of [TakeutiZaring] p. 29
     generalized to arbitrary classes.  Class ` R ` often denotes a relation
     such as " ` < ` " that compares two classes ` A ` and ` B ` , which might
     be numbers such as ` 1 ` and ` 2 ` (see ~ df-ltxr for the specific
     definition of ` < ` ).  As a wff, relations are true or false.  For
     example, ` ( R = { <. 2 , 6 >. , <. 3 , 9 >. } -> 3 R 9 ) ` ( ~ ex-br ).
     Often class ` R ` meets the ` Rel ` criteria to be defined in ~ df-rel ,
     and in particular ` R ` may be a function (see ~ df-fun ).  This
     definition of relations is well-defined, although not very meaningful,
     when classes ` A ` and/or ` B ` are proper classes (i.e. are not sets).
     On the other hand, we often find uses for this definition when ` R ` is a
     proper class (see for example ~ iprc ).  (Contributed by NM,
     31-Dec-1993.) $)
  df-br $a |- ( A R B <-> <. A , B >. e. R ) $.

  $( Equality theorem for binary relations.  (Contributed by NM,
     4-Jun-1995.) $)
  breq $p |- ( R = S -> ( A R B <-> A S B ) ) $=
    ( wceq cop wcel wbr eleq2 df-br 3bitr4g ) CDEABFZCGLDGABCHABDHCDLIABCJABDJK
    $.

  $( Equality theorem for a binary relation.  (Contributed by NM,
     31-Dec-1993.) $)
  breq1 $p |- ( A = B -> ( A R C <-> B R C ) ) $=
    ( wceq cop wcel wbr opeq1 eleq1d df-br 3bitr4g ) ABEZACFZDGBCFZDGACDHBCDHMN
    ODABCIJACDKBCDKL $.

  $( Equality theorem for a binary relation.  (Contributed by NM,
     31-Dec-1993.) $)
  breq2 $p |- ( A = B -> ( C R A <-> C R B ) ) $=
    ( wceq cop wcel wbr opeq2 eleq1d df-br 3bitr4g ) ABEZCAFZDGCBFZDGCADHCBDHMN
    ODABCIJCADKCBDKL $.

  $( Equality theorem for a binary relation.  (Contributed by NM,
     8-Feb-1996.) $)
  breq12 $p |- ( ( A = B /\ C = D ) -> ( A R C <-> B R D ) ) $=
    ( wceq wbr breq1 breq2 sylan9bb ) ABFACEGBCEGCDFBDEGABCEHCDBEIJ $.

  ${
    breqi.1 $e |- R = S $.
    $( Equality inference for binary relations.  (Contributed by NM,
       19-Feb-2005.) $)
    breqi $p |- ( A R B <-> A S B ) $=
      ( wceq wbr wb breq ax-mp ) CDFABCGABDGHEABCDIJ $.
  $}

  ${
    breq1i.1 $e |- A = B $.
    $( Equality inference for a binary relation.  (Contributed by NM,
       8-Feb-1996.) $)
    breq1i $p |- ( A R C <-> B R C ) $=
      ( wceq wbr wb breq1 ax-mp ) ABFACDGBCDGHEABCDIJ $.

    $( Equality inference for a binary relation.  (Contributed by NM,
       8-Feb-1996.) $)
    breq2i $p |- ( C R A <-> C R B ) $=
      ( wceq wbr wb breq2 ax-mp ) ABFCADGCBDGHEABCDIJ $.

    ${
      breq12i.2 $e |- C = D $.
      $( Equality inference for a binary relation.  (Contributed by NM,
         8-Feb-1996.)  (Proof shortened by Eric Schmidt, 4-Apr-2007.) $)
      breq12i $p |- ( A R C <-> B R D ) $=
        ( wceq wbr wb breq12 mp2an ) ABHCDHACEIBDEIJFGABCDEKL $.
    $}
  $}

  ${
    breq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for a binary relation.  (Contributed by NM,
       8-Feb-1996.) $)
    breq1d $p |- ( ph -> ( A R C <-> B R C ) ) $=
      ( wceq wbr wb breq1 syl ) ABCGBDEHCDEHIFBCDEJK $.

    $( Equality deduction for a binary relation.  (Contributed by NM,
       29-Oct-2011.) $)
    breqd $p |- ( ph -> ( C A D <-> C B D ) ) $=
      ( wceq wbr wb breq syl ) ABCGDEBHDECHIFDEBCJK $.

    $( Equality deduction for a binary relation.  (Contributed by NM,
       8-Feb-1996.) $)
    breq2d $p |- ( ph -> ( C R A <-> C R B ) ) $=
      ( wceq wbr wb breq2 syl ) ABCGDBEHDCEHIFBCDEJK $.

    ${
      breq12d.2 $e |- ( ph -> C = D ) $.
      $( Equality deduction for a binary relation.  (Contributed by NM,
         8-Feb-1996.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
      breq12d $p |- ( ph -> ( A R C <-> B R D ) ) $=
        ( wceq wbr wb breq12 syl2anc ) ABCIDEIBDFJCEFJKGHBCDEFLM $.
    $}

    ${
      breq123d.2 $e |- ( ph -> R = S ) $.
      breq123d.3 $e |- ( ph -> C = D ) $.
      $( Equality deduction for a binary relation.  (Contributed by NM,
         29-Oct-2011.) $)
      breq123d $p |- ( ph -> ( A R C <-> B S D ) ) $=
        ( wbr breq12d breqd bitrd ) ABDFKCEFKCEGKABCDEFHJLAFGCEIMN $.
    $}

    ${
      breqdi.1 $e |- ( ph -> C A D ) $.
      $( Equality deduction for a binary relation.  (Contributed by Thierry
         Arnoux, 5-Oct-2020.) $)
      breqdi $p |- ( ph -> C B D ) $=
        ( wbr breqd mpbid ) ADEBHDECHGABCDEFIJ $.
    $}

    ${
      breqan12i.2 $e |- ( ps -> C = D ) $.
      $( Equality deduction for a binary relation.  (Contributed by NM,
         8-Feb-1996.) $)
      breqan12d $p |- ( ( ph /\ ps ) -> ( A R C <-> B R D ) ) $=
        ( wceq wbr wb breq12 syl2an ) ACDJEFJCEGKDFGKLBHICDEFGMN $.

      $( Equality deduction for a binary relation.  (Contributed by NM,
         8-Feb-1996.) $)
      breqan12rd $p |- ( ( ps /\ ph ) -> ( A R C <-> B R D ) ) $=
        ( wbr wb breqan12d ancoms ) ABCEGJDFGJKABCDEFGHILM $.
    $}
  $}

  ${
    eqnbrtrd.1 $e |- ( ph -> A = B ) $.
    eqnbrtrd.2 $e |- ( ph -> -. B R C ) $.
    $( Substitution of equal classes into the negation of a binary relation.
       (Contributed by Glauco Siliprandi, 3-Jan-2021.) $)
    eqnbrtrd $p |- ( ph -> -. A R C ) $=
      ( wbr breq1d mtbird ) ABDEHCDEHGABCDEFIJ $.
  $}

  $( Two classes are different if they don't have the same relationship to a
     third class.  (Contributed by NM, 3-Jun-2012.) $)
  nbrne1 $p |- ( ( A R B /\ -. A R C ) -> B =/= C ) $=
    ( wbr wn wne wceq breq2 biimpcd necon3bd imp ) ABDEZACDEZFBCGMNBCBCHMNBCADI
    JKL $.

  $( Two classes are different if they don't have the same relationship to a
     third class.  (Contributed by NM, 3-Jun-2012.) $)
  nbrne2 $p |- ( ( A R C /\ -. B R C ) -> A =/= B ) $=
    ( wbr wn wne wceq breq1 biimpcd necon3bd imp ) ACDEZBCDEZFABGMNABABHMNABCDI
    JKL $.

  ${
    eqbrtr.1 $e |- A = B $.
    eqbrtr.2 $e |- B R C $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 1-Aug-1999.) $)
    eqbrtri $p |- A R C $=
      ( wbr breq1i mpbir ) ACDGBCDGFABCDEHI $.
  $}

  ${
    eqbrtrd.1 $e |- ( ph -> A = B ) $.
    eqbrtrd.2 $e |- ( ph -> B R C ) $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 8-Oct-1999.) $)
    eqbrtrd $p |- ( ph -> A R C ) $=
      ( wbr breq1d mpbird ) ABDEHCDEHGABCDEFIJ $.
  $}

  ${
    eqbrtrr.1 $e |- A = B $.
    eqbrtrr.2 $e |- A R C $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 1-Aug-1999.) $)
    eqbrtrri $p |- B R C $=
      ( eqcomi eqbrtri ) BACDABEGFH $.
  $}

  ${
    eqbrtrrd.1 $e |- ( ph -> A = B ) $.
    eqbrtrrd.2 $e |- ( ph -> A R C ) $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 24-Oct-1999.) $)
    eqbrtrrd $p |- ( ph -> B R C ) $=
      ( eqcomd eqbrtrd ) ACBDEABCFHGI $.
  $}

  ${
    breqtr.1 $e |- A R B $.
    breqtr.2 $e |- B = C $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 1-Aug-1999.) $)
    breqtri $p |- A R C $=
      ( wbr breq2i mpbi ) ABDGACDGEBCADFHI $.
  $}

  ${
    breqtrd.1 $e |- ( ph -> A R B ) $.
    breqtrd.2 $e |- ( ph -> B = C ) $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 24-Oct-1999.) $)
    breqtrd $p |- ( ph -> A R C ) $=
      ( wbr breq2d mpbid ) ABCEHBDEHFACDBEGIJ $.
  $}

  ${
    breqtrr.1 $e |- A R B $.
    breqtrr.2 $e |- C = B $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 1-Aug-1999.) $)
    breqtrri $p |- A R C $=
      ( eqcomi breqtri ) ABCDECBFGH $.
  $}

  ${
    breqtrrd.1 $e |- ( ph -> A R B ) $.
    breqtrrd.2 $e |- ( ph -> C = B ) $.
    $( Substitution of equal classes into a binary relation.  (Contributed by
       NM, 24-Oct-1999.) $)
    breqtrrd $p |- ( ph -> A R C ) $=
      ( eqcomd breqtrd ) ABCDEFADCGHI $.
  $}

  ${
    3brtr3.1 $e |- A R B $.
    3brtr3.2 $e |- A = C $.
    3brtr3.3 $e |- B = D $.
    $( Substitution of equality into both sides of a binary relation.
       (Contributed by NM, 11-Aug-1999.) $)
    3brtr3i $p |- C R D $=
      ( eqbrtrri breqtri ) CBDEACBEGFIHJ $.
  $}

  ${
    3brtr4.1 $e |- A R B $.
    3brtr4.2 $e |- C = A $.
    3brtr4.3 $e |- D = B $.
    $( Substitution of equality into both sides of a binary relation.
       (Contributed by NM, 11-Aug-1999.) $)
    3brtr4i $p |- C R D $=
      ( eqbrtri breqtrri ) CBDECABEGFIHJ $.
  $}

  ${
    3brtr3d.1 $e |- ( ph -> A R B ) $.
    3brtr3d.2 $e |- ( ph -> A = C ) $.
    3brtr3d.3 $e |- ( ph -> B = D ) $.
    $( Substitution of equality into both sides of a binary relation.
       (Contributed by NM, 18-Oct-1999.) $)
    3brtr3d $p |- ( ph -> C R D ) $=
      ( wbr breq12d mpbid ) ABCFJDEFJGABDCEFHIKL $.
  $}

  ${
    3brtr4d.1 $e |- ( ph -> A R B ) $.
    3brtr4d.2 $e |- ( ph -> C = A ) $.
    3brtr4d.3 $e |- ( ph -> D = B ) $.
    $( Substitution of equality into both sides of a binary relation.
       (Contributed by NM, 21-Feb-2005.) $)
    3brtr4d $p |- ( ph -> C R D ) $=
      ( wbr breq12d mpbird ) ADEFJBCFJGADBECFHIKL $.
  $}

  ${
    3brtr3g.1 $e |- ( ph -> A R B ) $.
    3brtr3g.2 $e |- A = C $.
    3brtr3g.3 $e |- B = D $.
    $( Substitution of equality into both sides of a binary relation.
       (Contributed by NM, 16-Jan-1997.) $)
    3brtr3g $p |- ( ph -> C R D ) $=
      ( wbr breq12i sylib ) ABCFJDEFJGBDCEFHIKL $.
  $}

  ${
    3brtr4g.1 $e |- ( ph -> A R B ) $.
    3brtr4g.2 $e |- C = A $.
    3brtr4g.3 $e |- D = B $.
    $( Substitution of equality into both sides of a binary relation.
       (Contributed by NM, 16-Jan-1997.) $)
    3brtr4g $p |- ( ph -> C R D ) $=
      ( wbr breq12i sylibr ) ABCFJDEFJGDBECFHIKL $.
  $}

  ${
    syl5eqbr.1 $e |- A = B $.
    syl5eqbr.2 $e |- ( ph -> B R C ) $.
    $( A chained equality inference for a binary relation.  (Contributed by NM,
       11-Oct-1999.) $)
    syl5eqbr $p |- ( ph -> A R C ) $=
      ( eqid 3brtr4g ) ACDBDEGFDHI $.
  $}

  ${
    syl5eqbrr.1 $e |- B = A $.
    syl5eqbrr.2 $e |- ( ph -> B R C ) $.
    $( A chained equality inference for a binary relation.  (Contributed by NM,
       17-Sep-2004.) $)
    syl5eqbrr $p |- ( ph -> A R C ) $=
      ( eqid 3brtr3g ) ACDBDEGFDHI $.
  $}

  ${
    syl5breq.1 $e |- A R B $.
    syl5breq.2 $e |- ( ph -> B = C ) $.
    $( A chained equality inference for a binary relation.  (Contributed by NM,
       11-Oct-1999.) $)
    syl5breq $p |- ( ph -> A R C ) $=
      ( wbr a1i breqtrd ) ABCDEBCEHAFIGJ $.
  $}

  ${
    syl5breqr.1 $e |- A R B $.
    syl5breqr.2 $e |- ( ph -> C = B ) $.
    $( A chained equality inference for a binary relation.  (Contributed by NM,
       24-Apr-2005.) $)
    syl5breqr $p |- ( ph -> A R C ) $=
      ( eqcomd syl5breq ) ABCDEFADCGHI $.
  $}

  ${
    syl6eqbr.1 $e |- ( ph -> A = B ) $.
    syl6eqbr.2 $e |- B R C $.
    $( A chained equality inference for a binary relation.  (Contributed by NM,
       12-Oct-1999.) $)
    syl6eqbr $p |- ( ph -> A R C ) $=
      ( wbr breq1d mpbiri ) ABDEHCDEHGABCDEFIJ $.
  $}

  ${
    syl6eqbrr.1 $e |- ( ph -> B = A ) $.
    syl6eqbrr.2 $e |- B R C $.
    $( A chained equality inference for a binary relation.  (Contributed by NM,
       4-Jan-2006.) $)
    syl6eqbrr $p |- ( ph -> A R C ) $=
      ( eqcomd syl6eqbr ) ABCDEACBFHGI $.
  $}

  ${
    syl6breq.1 $e |- ( ph -> A R B ) $.
    syl6breq.2 $e |- B = C $.
    $( A chained equality inference for a binary relation.  (Contributed by NM,
       11-Oct-1999.) $)
    syl6breq $p |- ( ph -> A R C ) $=
      ( eqid 3brtr3g ) ABCBDEFBHGI $.
  $}

  ${
    syl6breqr.1 $e |- ( ph -> A R B ) $.
    syl6breqr.2 $e |- C = B $.
    $( A chained equality inference for a binary relation.  (Contributed by NM,
       24-Apr-2005.) $)
    syl6breqr $p |- ( ph -> A R C ) $=
      ( eqcomi syl6breq ) ABCDEFDCGHI $.
  $}

  ${
    ssbrd.1 $e |- ( ph -> A C_ B ) $.
    $( Deduction from a subclass relationship of binary relations.
       (Contributed by NM, 30-Apr-2004.) $)
    ssbrd $p |- ( ph -> ( C A D -> C B D ) ) $=
      ( cop wcel wbr sseld df-br 3imtr4g ) ADEGZBHMCHDEBIDECIABCMFJDEBKDECKL $.
  $}

  $( Implication from a subclass relationship of binary relations.
     (Contributed by Peter Mazsa, 11-Nov-2019.) $)
  ssbr $p |- ( A C_ B -> ( C A D -> C B D ) ) $=
    ( wss id ssbrd ) ABEZABCDHFG $.

  ${
    ssbri.1 $e |- A C_ B $.
    $( Inference from a subclass relationship of binary relations.
       (Contributed by NM, 28-Mar-2007.)  (Revised by Mario Carneiro,
       8-Feb-2015.) $)
    ssbri $p |- ( C A D -> C B D ) $=
      ( wss wbr wi ssbr ax-mp ) ABFCDAGCDBGHEABCDIJ $.
  $}

  ${
    nfbrd.2 $e |- ( ph -> F/_ x A ) $.
    nfbrd.3 $e |- ( ph -> F/_ x R ) $.
    nfbrd.4 $e |- ( ph -> F/_ x B ) $.
    $( Deduction version of bound-variable hypothesis builder ~ nfbr .
       (Contributed by NM, 13-Dec-2005.)  (Revised by Mario Carneiro,
       14-Oct-2016.) $)
    nfbrd $p |- ( ph -> F/ x A R B ) $=
      ( wbr cop wcel df-br nfopd nfeld nfxfrd ) CDEICDJZEKABCDELABPEABCDFHMGNO
      $.
  $}

  ${
    nfbr.1 $e |- F/_ x A $.
    nfbr.2 $e |- F/_ x R $.
    nfbr.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for binary relation.  (Contributed by
       NM, 1-Sep-1999.)  (Revised by Mario Carneiro, 14-Oct-2016.) $)
    nfbr $p |- F/ x A R B $=
      ( wbr wnf wtru wnfc a1i nfbrd trud ) BCDHAIJABCDABKJELADKJFLACKJGLMN $.
  $}

  ${
    $d x y $.  $d y z A $.  $d y z R $.
    $( Relationship between a binary relation and a class abstraction.
       (Contributed by Andrew Salmon, 8-Jul-2011.) $)
    brab1 $p |- ( x R A <-> x e. { z | z R A } ) $=
      ( vy cv wbr wsbc cab wcel cvv wb vex breq1 sbcie2g ax-mp df-sbc bitr3i )
      AFZCDGZBFZCDGZBSHZSUBBIJSKJUCTLAMUBEFZCDGTBESKUAUDCDNUDSCDNOPUBBSQR $.
  $}

  $( The empty binary relation never holds.  (Contributed by NM,
     23-Aug-2018.) $)
  br0 $p |- -. A (/) B $=
    ( c0 wbr cop wcel noel df-br mtbir ) ABCDABEZCFJGABCHI $.

  $( If two sets are in a binary relation, the relation cannot be empty.
     (Contributed by Alexander van der Vekens, 7-Jul-2018.) $)
  brne0 $p |- ( A R B -> R =/= (/) ) $=
    ( wbr cop wcel c0 wne df-br ne0i sylbi ) ABCDABEZCFCGHABCICLJK $.

  $( The union of two binary relations.  (Contributed by NM, 21-Dec-2008.) $)
  brun $p |- ( A ( R u. S ) B <-> ( A R B \/ A S B ) ) $=
    ( cop cun wcel wo wbr elun df-br orbi12i 3bitr4i ) ABEZCDFZGNCGZNDGZHABOIAB
    CIZABDIZHNCDJABOKRPSQABCKABDKLM $.

  $( The intersection of two relations.  (Contributed by FL, 7-Oct-2008.) $)
  brin $p |- ( A ( R i^i S ) B <-> ( A R B /\ A S B ) ) $=
    ( cop cin wcel wa wbr elin df-br anbi12i 3bitr4i ) ABEZCDFZGNCGZNDGZHABOIAB
    CIZABDIZHNCDJABOKRPSQABCKABDKLM $.

  $( The difference of two binary relations.  (Contributed by Scott Fenton,
     11-Apr-2011.) $)
  brdif $p |- ( A ( R \ S ) B <-> ( A R B /\ -. A S B ) ) $=
    ( cop cdif wcel wn wa wbr eldif df-br notbii anbi12i 3bitr4i ) ABEZCDFZGPCG
    ZPDGZHZIABQJABCJZABDJZHZIPCDKABQLUARUCTABCLUBSABDLMNO $.

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y R $.  $d x y $.
    $( Move substitution in and out of a binary relation.  (Contributed by NM,
       13-Dec-2005.)  (Modified by NM, 22-Aug-2018.) $)
    sbcbr123 $p |- ( [. A / x ]. B R C
           <-> [_ A / x ]_ B [_ A / x ]_ R [_ A / x ]_ C ) $=
      ( vy wbr wsbc cvv wcel csb sbcex wn c0 br0 csbprc csbeq1 breq123d nfcsb1v
      csbeq1a breqd mtbiri con4i wsb cv dfsbcq2 wceq nfbr weq vtoclbg pm5.21nii
      sbie ) CDEGZABHZBIJZABCKZABDKZABEKZGZUMABLUOUSUOMZUSUPUQNGUPUQOUTURNUPUQA
      BEPUAUBUCUMAFUDAFUEZCKZAVADKZAVAEKZGZUNUSFBIUMAFBUFVABUGVBUPVCUQVDURAVABC
      QAVABEQAVABDQRUMVEAFAVBVCVDAVACSAVAESAVADSUHAFUICVBDVCEVDAVACTAVAETAVADTR
      ULUJUK $.
  $}

  ${
    $d x B $.  $d x C $.
    $( Move substitution in and out of a binary relation.  (Contributed by NM,
       23-Aug-2018.) $)
    sbcbr $p |- ( [. A / x ]. B R C <-> B [_ A / x ]_ R C ) $=
      ( wbr wsbc csb sbcbr123 cvv wcel wb csbconstg breq12d wn br0 csbprc breqd
      c0 mtbiri 2falsed pm2.61i bitri ) CDEFABGABCHZABDHZABEHZFZCDUFFZABCDEIBJK
      ZUGUHLUIUDCUEDUFABCJMABDJMNUIOZUGUHUJUGUDUESFUDUEPUJUFSUDUEABEQZRTUJUHCDS
      FCDPUJUFSCDUKRTUAUBUC $.
  $}

  ${
    $d x R $.
    $( Move substitution in and out of a binary relation.  (Contributed by NM,
       13-Dec-2005.) $)
    sbcbr12g $p |- ( A e. V ->
                 ( [. A / x ]. B R C <-> [_ A / x ]_ B R [_ A / x ]_ C ) ) $=
      ( wbr wsbc csb wcel sbcbr123 csbconstg breqd syl5bb ) CDEGABHABCIZABDIZAB
      EIZGBFJZOPEGABCDEKRQEOPABEFLMN $.
  $}

  ${
    $d x C $.  $d x R $.
    $( Move substitution in and out of a binary relation.  (Contributed by NM,
       13-Dec-2005.) $)
    sbcbr1g $p |- ( A e. V -> ( [. A / x ]. B R C <-> [_ A / x ]_ B R C ) ) $=
      ( wcel wbr wsbc csb sbcbr12g csbconstg breq2d bitrd ) BFGZCDEHABIABCJZABD
      JZEHPDEHABCDEFKOQDPEABDFLMN $.
  $}

  ${
    $d x B $.  $d x R $.
    $( Move substitution in and out of a binary relation.  (Contributed by NM,
       13-Dec-2005.) $)
    sbcbr2g $p |- ( A e. V -> ( [. A / x ]. B R C <-> B R [_ A / x ]_ C ) ) $=
      ( wcel wbr wsbc csb sbcbr12g csbconstg breq1d bitrd ) BFGZCDEHABIABCJZABD
      JZEHCQEHABCDEFKOPCQEABCFLMN $.
  $}

  $( Characterization of the symmetric difference of two binary relations.
     (Contributed by Scott Fenton, 11-Apr-2012.) $)
  brsymdif $p |- ( A ( R /_\ S ) B <-> -. ( A R B <-> A S B ) ) $=
    ( csymdif wbr cop wcel wb wn df-br elsymdif bibi12i xchbinxr bitri ) ABCDEZ
    FABGZPHZABCFZABDFZIZJABPKRQCHZQDHZIUAQCDLSUBTUCABCKABDKMNO $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordered-pair class abstractions (class builders)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend class notation to include ordered-pair class abstraction (class
     builder). $)
  copab $a class { <. x , y >. | ph } $.

  ${
    $d x z $.  $d y z $.  $d z ph $.
    $( Define the class abstraction of a collection of ordered pairs.
       Definition 3.3 of [Monk1] p. 34.  Usually ` x ` and ` y ` are distinct,
       although the definition doesn't strictly require it (see ~ dfid2 for a
       case where they are not distinct).  The brace notation is called "class
       abstraction" by Quine; it is also (more commonly) called a "class
       builder" in the literature.  An alternate definition using no
       existential quantifiers is shown by ~ dfopab2 .  For example,
       ` R = { <. x , y >. | ( x e. CC /\ y e. CC /\ ( x + 1 ) = y ) } `
       ` -> 3 R 4 ` ( ~ ex-opab ).  (Contributed by NM, 4-Jul-1994.) $)
    df-opab $a |- { <. x , y >. | ph } =
                  { z | E. x E. y ( z = <. x , y >. /\ ph ) } $.
  $}

  ${
    $d x z R $.  $d y z R $.
    $( The collection of ordered pairs in a class is a subclass of it.
       (Contributed by NM, 27-Dec-1996.)  (Proof shortened by Andrew Salmon,
       9-Jul-2011.) $)
    opabss $p |- { <. x , y >. | x R y } C_ R $=
      ( vz cv wbr copab cop wceq wa wex cab df-opab df-br eleq1 biimpar sylan2b
      wcel exlimivv abssi eqsstri ) AEZBEZCFZABGDEZUBUCHZIZUDJZBKAKZDLCUDABDMUI
      DCUHUECRZABUDUGUFCRZUJUBUCCNUGUJUKUEUFCOPQSTUA $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.  $d z ps $.  $d z ch $.
    opabbid.1 $e |- F/ x ph $.
    opabbid.2 $e |- F/ y ph $.
    opabbid.3 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal ordered-pair class abstractions (deduction
       rule).  (Contributed by NM, 21-Feb-2004.)  (Proof shortened by Andrew
       Salmon, 9-Jul-2011.) $)
    opabbid $p |- ( ph -> { <. x , y >. | ps } = { <. x , y >. | ch } ) $=
      ( vz cv cop wceq wa wex cab copab anbi2d exbid abbidv df-opab 3eqtr4g ) A
      IJDJEJKLZBMZENZDNZIOUBCMZENZDNZIOBDEPCDEPAUEUHIAUDUGDFAUCUFEGABCUBHQRRSBD
      EITCDEITUA $.
  $}

  ${
    $d x ph $.  $d y ph $.
    opabbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal ordered-pair class abstractions (deduction
       rule).  (Contributed by NM, 15-May-1995.) $)
    opabbidv $p |- ( ph -> { <. x , y >. | ps } = { <. x , y >. | ch } ) $=
      ( nfv opabbid ) ABCDEADGAEGFH $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.  $d z ps $.
    opabbii.1 $e |- ( ph <-> ps ) $.
    $( Equivalent wff's yield equal class abstractions.  (Contributed by NM,
       15-May-1995.) $)
    opabbii $p |- { <. x , y >. | ph } = { <. x , y >. | ps } $=
      ( vz cv wceq copab eqid wb a1i opabbidv ax-mp ) FGZOHZACDIBCDIHOJPABCDABK
      PELMN $.
  $}

  ${
    $d x z w $.  $d y z w $.  $d ph w $.
    nfopab.1 $e |- F/ z ph $.
    $( Bound-variable hypothesis builder for class abstraction.  (Contributed
       by NM, 1-Sep-1999.)  (Unnecessary distinct variable restrictions were
       removed by Andrew Salmon, 11-Jul-2011.) $)
    nfopab $p |- F/_ z { <. x , y >. | ph } $=
      ( vw copab cv cop wceq wa wex cab df-opab nfv nfan nfex nfab nfcxfr ) DAB
      CGFHBHCHIJZAKZCLZBLZFMABCFNUCDFUBDBUADCTADTDOEPQQRS $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    $( The first abstraction variable in an ordered-pair class abstraction
       (class builder) is effectively not free.  (Contributed by NM,
       16-May-1995.)  (Revised by Mario Carneiro, 14-Oct-2016.) $)
    nfopab1 $p |- F/_ x { <. x , y >. | ph } $=
      ( vz copab cv cop wceq wa wex cab df-opab nfe1 nfab nfcxfr ) BABCEDFBFCFG
      HAICJZBJZDKABCDLQBDPBMNO $.

    $( The second abstraction variable in an ordered-pair class abstraction
       (class builder) is effectively not free.  (Contributed by NM,
       16-May-1995.)  (Revised by Mario Carneiro, 14-Oct-2016.) $)
    nfopab2 $p |- F/_ y { <. x , y >. | ph } $=
      ( vz copab cv cop wceq wa wex cab df-opab nfe1 nfex nfab nfcxfr ) CABCEDF
      BFCFGHAIZCJZBJZDKABCDLSCDRCBQCMNOP $.
  $}

  ${
    $d x y z w v $.  $d v ph $.  $d v ps $.
    cbvopab.1 $e |- F/ z ph $.
    cbvopab.2 $e |- F/ w ph $.
    cbvopab.3 $e |- F/ x ps $.
    cbvopab.4 $e |- F/ y ps $.
    cbvopab.5 $e |- ( ( x = z /\ y = w ) -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables in an ordered-pair class
       abstraction, using implicit substitution.  (Contributed by NM,
       14-Sep-2003.) $)
    cbvopab $p |- { <. x , y >. | ph } = { <. z , w >. | ps } $=
      ( vv cv cop wceq wa wex cab nfv nfan opeq12 eqeq2d anbi12d cbvex2 df-opab
      copab abbii 3eqtr4i ) LMZCMZDMZNZOZAPZDQCQZLRUIEMZFMZNZOZBPZFQEQZLRACDUFB
      EFUFUOVALUNUTCDEFUMAEUMESGTUMAFUMFSHTUSBCUSCSITUSBDUSDSJTUJUPOUKUQOPZUMUS
      ABVBULURUIUJUKUPUQUAUBKUCUDUGACDLUEBEFLUEUH $.
  $}

  ${
    $d x y z w $.  $d z w ph $.  $d x y ps $.
    cbvopabv.1 $e |- ( ( x = z /\ y = w ) -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables in an ordered-pair class
       abstraction, using implicit substitution.  (Contributed by NM,
       15-Oct-1996.) $)
    cbvopabv $p |- { <. x , y >. | ph } = { <. z , w >. | ps } $=
      ( nfv cbvopab ) ABCDEFAEHAFHBCHBDHGI $.
  $}

  ${
    $d v w x y $.  $d v w y z $.  $d v w ph $.  $d v w ps $.
    cbvopab1.1 $e |- F/ z ph $.
    cbvopab1.2 $e |- F/ x ps $.
    cbvopab1.3 $e |- ( x = z -> ( ph <-> ps ) ) $.
    $( Change first bound variable in an ordered-pair class abstraction, using
       explicit substitution.  (Contributed by NM, 6-Oct-2004.)  (Revised by
       Mario Carneiro, 14-Oct-2016.) $)
    cbvopab1 $p |- { <. x , y >. | ph } = { <. z , y >. | ps } $=
      ( vw vv cv cop wceq wa wex cab copab wsb nfv nfan nfs1v nfex opeq1 eqeq2d
      sbequ12 anbi12d exbidv cbvex nfsb sbequ sbie syl6bb bitri df-opab 3eqtr4i
      abbii ) IKZCKZDKZLZMZANZDOZCOZIPUQEKZUSLZMZBNZDOZEOZIPACDQBEDQVDVJIVDUQJK
      ZUSLZMZACJRZNZDOZJOVJVCVPCJVCJSVOCDVMVNCVMCSACJUATUBURVKMZVBVODVQVAVMAVNV
      QUTVLUQURVKUSUCUDACJUEUFUGUHVPVIJEVOEDVMVNEVMESACJEFUITUBVIJSVKVEMZVOVHDV
      RVMVGVNBVRVLVFUQVKVEUSUCUDVRVNACERBAJECUJABCEGHUKULUFUGUHUMUPACDIUNBEDIUN
      UO $.
  $}

  ${
    $d w x y z $.  $d w ph $.  $d w ps $.
    cbvopab2.1 $e |- F/ z ph $.
    cbvopab2.2 $e |- F/ y ps $.
    cbvopab2.3 $e |- ( y = z -> ( ph <-> ps ) ) $.
    $( Change second bound variable in an ordered-pair class abstraction, using
       explicit substitution.  (Contributed by NM, 22-Aug-2013.) $)
    cbvopab2 $p |- { <. x , y >. | ph } = { <. x , z >. | ps } $=
      ( vw cv cop wceq wa wex cab copab nfv nfan opeq2 df-opab anbi12d 3eqtr4i
      eqeq2d cbvex exbii abbii ) IJZCJZDJZKZLZAMZDNZCNZIOUGUHEJZKZLZBMZENZCNZIO
      ACDPBCEPUNUTIUMUSCULURDEUKAEUKEQFRUQBDUQDQGRUIUOLZUKUQABVAUJUPUGUIUOUHSUC
      HUAUDUEUFACDITBCEITUB $.
  $}

  ${
    $d x y z w $.  $d z w ph $.
    $( Change first bound variable in an ordered-pair class abstraction, using
       explicit substitution.  (Contributed by NM, 31-Jul-2003.) $)
    cbvopab1s $p |- { <. x , y >. | ph } = { <. z , y >. | [ z / x ] ph } $=
      ( vw cv cop wceq wa wex cab wsb copab nfv nfs1v nfan opeq1 eqeq2d df-opab
      nfex sbequ12 anbi12d exbidv cbvex abbii 3eqtr4i ) EFZBFZCFZGZHZAIZCJZBJZE
      KUGDFZUIGZHZABDLZIZCJZDJZEKABCMURDCMUNVAEUMUTBDUMDNUSBCUQURBUQBNABDOPTUHU
      OHZULUSCVBUKUQAURVBUJUPUGUHUOUIQRABDUAUBUCUDUEABCESURDCESUF $.
  $}

  ${
    $d x y $.  $d y z $.  $d z ph $.  $d x ps $.
    cbvopab1v.1 $e |- ( x = z -> ( ph <-> ps ) ) $.
    $( Rule used to change the first bound variable in an ordered pair
       abstraction, using implicit substitution.  (Contributed by NM,
       31-Jul-2003.)  (Proof shortened by Eric Schmidt, 4-Apr-2007.) $)
    cbvopab1v $p |- { <. x , y >. | ph } = { <. z , y >. | ps } $=
      ( nfv cbvopab1 ) ABCDEAEGBCGFH $.
  $}

  ${
    $d x y z w $.  $d z w ph $.  $d y w ps $.
    cbvopab2v.1 $e |- ( y = z -> ( ph <-> ps ) ) $.
    $( Rule used to change the second bound variable in an ordered pair
       abstraction, using implicit substitution.  (Contributed by NM,
       2-Sep-1999.) $)
    cbvopab2v $p |- { <. x , y >. | ph } = { <. x , z >. | ps } $=
      ( vw cv cop wceq wex cab copab opeq2 eqeq2d anbi12d cbvexv exbii df-opab
      wa abbii 3eqtr4i ) GHZCHZDHZIZJZATZDKZCKZGLUCUDEHZIZJZBTZEKZCKZGLACDMBCEM
      UJUPGUIUOCUHUNDEUEUKJZUGUMABUQUFULUCUEUKUDNOFPQRUAACDGSBCEGSUB $.
  $}

  ${
    $d x z $.  $d y z $.  $d ph z $.  $d ps z $.
    $( Union of two ordered pair class abstractions.  (Contributed by NM,
       30-Sep-2002.) $)
    unopab $p |- ( { <. x , y >. | ph } u. { <. x , y >. | ps } ) =
               { <. x , y >. | ( ph \/ ps ) } $=
      ( vz cv cop wceq wa wex cab wo copab unab 19.43 andi exbii bitr2i df-opab
      cun bitr3i abbii eqtri uneq12i 3eqtr4i ) EFCFDFGHZAIZDJZCJZEKZUFBIZDJZCJZ
      EKZTZUFABLZIZDJZCJZEKZACDMZBCDMZTUPCDMUOUIUMLZEKUTUIUMENVCUSEVCUHULLZCJUS
      UHULCOVDURCURUGUKLZDJVDUQVEDUFABPQUGUKDORQUAUBUCVAUJVBUNACDESBCDESUDUPCDE
      SUE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Functions in "maps-to" notation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c |-> $.  $( Maps-to symbol $)

  $( Extend the definition of a class to include maps-to notation for defining
     a function via a rule. $)
  cmpt $a class ( x e. A |-> B ) $.

  ${
    $d x y $.  $d y A $.  $d y B $.
    $( Define maps-to notation for defining a function via a rule.  Read as
       "the function defined by the map from ` x ` (in ` A ` ) to
       ` B ( x ) ` ."  The class expression ` B ` is the value of the function
       at ` x ` and normally contains the variable ` x ` .  An example is the
       square function for complex numbers, ` ( x e. CC |-> ( x ^ 2 ) ) ` .
       Similar to the definition of mapping in [ChoquetDD] p. 2.  (Contributed
       by NM, 17-Feb-2008.) $)
    df-mpt $a |- ( x e. A |-> B ) =
                    { <. x , y >. | ( x e. A /\ y = B ) } $.
  $}

  ${
    $d x y ph $.  $d y A $.  $d y B $.  $d y C $.  $d y D $.
    $( An equality theorem for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.) $)
    mpteq12f $p |- ( ( A. x A = C /\ A. x e. A B = D ) ->
                    ( x e. A |-> B ) = ( x e. C |-> D ) ) $=
      ( vy wceq wal wral wa cv wcel copab cmpt nfa1 nfra1 nfan nfv rspa df-mpt
      eqeq2d pm5.32da sp eleq2d anbi1d sylan9bbr opabbid 3eqtr4g ) BDGZAHZCEGZA
      BIZJZAKZBLZFKZCGZJZAFMUNDLZUPEGZJZAFMABCNADENUMURVAAFUJULAUIAOUKABPQUMFRU
      LURUOUTJUJVAULUOUQUTULUOJCEUPUKABSUAUBUJUOUSUTUJBDUNUIAUCUDUEUFUGAFBCTAFD
      ETUH $.

    mpteq12dv.1 $e |- ( ph -> A = C ) $.
    ${
      mpteq12dva.2 $e |- ( ( ph /\ x e. A ) -> B = D ) $.
      $( An equality inference for the maps to notation.  (Contributed by Mario
         Carneiro, 26-Jan-2017.) $)
      mpteq12dva $p |- ( ph -> ( x e. A |-> B ) = ( x e. C |-> D ) ) $=
        ( wceq wal wral cmpt alrimiv ralrimiva mpteq12f syl2anc ) ACEIZBJDFIZBC
        KBCDLBEFLIAQBGMARBCHNBCDEFOP $.
    $}

    mpteq12dv.2 $e |- ( ph -> B = D ) $.
    $( An equality inference for the maps to notation.  (Contributed by NM,
       24-Aug-2011.)  (Revised by Mario Carneiro, 16-Dec-2013.) $)
    mpteq12dv $p |- ( ph -> ( x e. A |-> B ) = ( x e. C |-> D ) ) $=
      ( wceq cv wcel adantr mpteq12dva ) ABCDEFGADFIBJCKHLM $.
  $}

  ${
    $d A y $.  $d B y $.  $d C y $.  $d D y $.  $d ph y $.  $d x y $.
    mpteq12d.1 $e |- F/ x ph $.
    mpteq12d.3 $e |- ( ph -> A = C ) $.
    mpteq12d.4 $e |- ( ph -> B = D ) $.
    $( An equality inference for the maps to notation.  Compare ~ mpteq12dv .
       (Contributed by Scott Fenton, 8-Aug-2013.)  (Revised by Mario Carneiro,
       11-Dec-2016.) $)
    mpteq12d $p |- ( ph -> ( x e. A |-> B ) = ( x e. C |-> D ) ) $=
      ( vy cv wcel wceq wa copab cmpt nfv eleq2d eqeq2d df-mpt anbi12d opabbid
      3eqtr4g ) ABKZCLZJKZDMZNZBJOUDELZUFFMZNZBJOBCDPBEFPAUHUKBJGAJQAUEUIUGUJAC
      EUDHRADFUFISUAUBBJCDTBJEFTUC $.
  $}

  ${
    $d x y $.  $d A y $.  $d B y $.  $d C y $.  $d D y $.  $d ph y $.
    mpteq12df.0 $e |- F/ x ph $.
    mpteq12df.1 $e |- F/_ x A $.
    mpteq12df.2 $e |- F/_ x C $.
    mpteq12df.3 $e |- ( ph -> A = C ) $.
    mpteq12df.4 $e |- ( ph -> B = D ) $.
    $( An equality theorem for the maps to notation.  (Contributed by Thierry
       Arnoux, 30-May-2020.) $)
    mpteq12df $p |- ( ph -> ( x e. A |-> B ) = ( x e. C |-> D ) ) $=
      ( vy cv wcel wceq wa copab cmpt nfv df-mpt eleq2d anbi12d opabbid 3eqtr4g
      eqeq2d ) ABMZCNZLMZDOZPZBLQUFENZUHFOZPZBLQBCDRBEFRAUJUMBLGALSAUGUKUIULACE
      UFJUAADFUHKUEUBUCBLCDTBLEFTUD $.
  $}

  ${
    $d x A $.  $d x C $.
    $( An equality theorem for the maps to notation.  (Contributed by NM,
       16-Dec-2013.) $)
    mpteq12 $p |- ( ( A = C /\ A. x e. A B = D ) ->
                    ( x e. A |-> B ) = ( x e. C |-> D ) ) $=
      ( wceq wal wral cmpt ax-5 mpteq12f sylan ) BDFZMAGCEFABHABCIADEIFMAJABCDE
      KL $.
  $}

  ${
    $d x A $.  $d x B $.
    $( An equality theorem for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.) $)
    mpteq1 $p |- ( A = B -> ( x e. A |-> C ) = ( x e. B |-> C ) ) $=
      ( wceq wral cmpt cv wcel eqidd rgen mpteq12 mpan2 ) BCEDDEZABFABDGACDGENA
      BAHBIDJKABDCDLM $.

    mpteq1d.1 $e |- ( ph -> A = B ) $.
    $( An equality theorem for the maps to notation.  (Contributed by Mario
       Carneiro, 11-Jun-2016.) $)
    mpteq1d $p |- ( ph -> ( x e. A |-> C ) = ( x e. B |-> C ) ) $=
      ( wceq cmpt mpteq1 syl ) ACDGBCEHBDEHGFBCDEIJ $.
  $}

  ${
    $d A x $.  $d B x $.
    mpteq1i.1 $e |- A = B $.
    $( An equality theorem for the maps to notation.  (Contributed by Glauco
       Siliprandi, 17-Aug-2020.) $)
    mpteq1i $p |- ( x e. A |-> C ) = ( x e. B |-> C ) $=
      ( wceq cmpt mpteq1 ax-mp ) BCFABDGACDGFEABCDHI $.
  $}

  ${
    mpteq2ia.1 $e |- ( x e. A -> B = C ) $.
    $( An equality inference for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.) $)
    mpteq2ia $p |- ( x e. A |-> B ) = ( x e. A |-> C ) $=
      ( wceq wal wral cmpt eqid ax-gen rgen mpteq12f mp2an ) BBFZAGCDFZABHABCIA
      BDIFOABJKPABELABCBDMN $.
  $}

  ${
    mpteq2i.1 $e |- B = C $.
    $( An equality inference for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.) $)
    mpteq2i $p |- ( x e. A |-> B ) = ( x e. A |-> C ) $=
      ( wceq cv wcel a1i mpteq2ia ) ABCDCDFAGBHEIJ $.
  $}

  ${
    mpteq12i.1 $e |- A = C $.
    mpteq12i.2 $e |- B = D $.
    $( An equality inference for the maps to notation.  (Contributed by Scott
       Fenton, 27-Oct-2010.)  (Revised by Mario Carneiro, 16-Dec-2013.) $)
    mpteq12i $p |- ( x e. A |-> B ) = ( x e. C |-> D ) $=
      ( cmpt wceq wtru a1i mpteq12dv trud ) ABCHADEHIJABCDEBDIJFKCEIJGKLM $.
  $}

  ${
    mpteq2da.1 $e |- F/ x ph $.
    mpteq2da.2 $e |- ( ( ph /\ x e. A ) -> B = C ) $.
    $( Slightly more general equality inference for the maps to notation.
       (Contributed by FL, 14-Sep-2013.)  (Revised by Mario Carneiro,
       16-Dec-2013.) $)
    mpteq2da $p |- ( ph -> ( x e. A |-> B ) = ( x e. A |-> C ) ) $=
      ( wceq wal wral cmpt eqid ax-gen cv wcel ex ralrimi mpteq12f sylancr ) AC
      CHZBIDEHZBCJBCDKBCEKHTBCLMAUABCFABNCOUAGPQBCDCERS $.
  $}

  ${
    $d x ph $.
    mpteq2dva.1 $e |- ( ( ph /\ x e. A ) -> B = C ) $.
    $( Slightly more general equality inference for the maps to notation.
       (Contributed by Scott Fenton, 25-Apr-2012.) $)
    mpteq2dva $p |- ( ph -> ( x e. A |-> B ) = ( x e. A |-> C ) ) $=
      ( nfv mpteq2da ) ABCDEABGFH $.
  $}

  ${
    $d x ph $.
    mpteq2dv.1 $e |- ( ph -> B = C ) $.
    $( An equality inference for the maps to notation.  (Contributed by Mario
       Carneiro, 23-Aug-2014.) $)
    mpteq2dv $p |- ( ph -> ( x e. A |-> B ) = ( x e. A |-> C ) ) $=
      ( wceq cv wcel adantr mpteq2dva ) ABCDEADEGBHCIFJK $.
  $}

  ${
    $d z A $.  $d z B $.  $d x y z $.
    nfmpt.1 $e |- F/_ x A $.
    nfmpt.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for the maps-to notation.
       (Contributed by NM, 20-Feb-2013.) $)
    nfmpt $p |- F/_ x ( y e. A |-> B ) $=
      ( vz cmpt cv wcel wceq wa copab df-mpt nfcri nfeq2 nfan nfopab nfcxfr ) A
      BCDHBICJZGIZDKZLZBGMBGCDNUCBGATUBAABCEOAUADFPQRS $.
  $}

  ${
    $d A z $.  $d B z $.  $d x z $.
    $( Bound-variable hypothesis builder for the maps-to notation.
       (Contributed by FL, 17-Feb-2008.) $)
    nfmpt1 $p |- F/_ x ( x e. A |-> B ) $=
      ( vz cmpt cv wcel wceq wa copab df-mpt nfopab1 nfcxfr ) AABCEAFBGDFCHIZAD
      JADBCKNADLM $.
  $}

  ${
    $d w x y z $.  $d w z A $.  $d w z A $.  $d w z B $.  $d w z C $.
    cbvmptf.1 $e |- F/_ x A $.
    cbvmptf.2 $e |- F/_ y A $.
    cbvmptf.3 $e |- F/_ y B $.
    cbvmptf.4 $e |- F/_ x C $.
    cbvmptf.5 $e |- ( x = y -> B = C ) $.
    $( Rule to change the bound variable in a maps-to function, using implicit
       substitution.  This version has bound-variable hypotheses in place of
       distinct variable conditions.  (Contributed by Thierry Arnoux,
       9-Mar-2017.) $)
    cbvmptf $p |- ( x e. A |-> B ) = ( y e. A |-> C ) $=
      ( vz vw cv wcel wceq wa copab cmpt nfv weq nfcri nfs1v nfan eleq1 sbequ12
      wsb anbi12d cbvopab1 nfeq2 nfsb eqeq2d sbhypf eqtri df-mpt 3eqtr4i ) AMZC
      NZKMZDOZPZAKQZBMZCNZUREOZPZBKQZACDRBCERVALMZCNZUSALUFZPZLKQVFUTVJAKLUTLSV
      HVIAALCFUAUSALUBUCALTUQVHUSVIUPVGCUDUSALUEUGUHVJVELKBVHVIBBLCGUAUSALBBURD
      HUIUJUCVELSLBTVHVCVIVDVGVBCUDUSVDALVBAUREIUIABTDEURJUKULUGUHUMAKCDUNBKCEU
      NUO $.
  $}

  ${
    $d w z x A $.  $d w z y A $.  $d w z B $.  $d w z C $.
    cbvmpt.1 $e |- F/_ y B $.
    cbvmpt.2 $e |- F/_ x C $.
    cbvmpt.3 $e |- ( x = y -> B = C ) $.
    $( Rule to change the bound variable in a maps-to function, using implicit
       substitution.  This version has bound-variable hypotheses in place of
       distinct variable conditions.  (Contributed by NM, 11-Sep-2011.) $)
    cbvmpt $p |- ( x e. A |-> B ) = ( y e. A |-> C ) $=
      ( vz vw cv wcel wceq wa copab cmpt wsb nfv nfan weq nfs1v sbequ12 anbi12d
      eleq1 cbvopab1 nfeq2 nfsb sbequ eqeq2d sbie syl6bb eqtri df-mpt 3eqtr4i )
      AKZCLZIKZDMZNZAIOZBKZCLZUQEMZNZBIOZACDPBCEPUTJKZCLZURAJQZNZJIOVEUSVIAIJUS
      JRVGVHAVGARURAJUASAJTUPVGURVHUOVFCUDURAJUBUCUEVIVDJIBVGVHBVGBRURAJBBUQDFU
      FUGSVDJRJBTZVGVBVHVCVFVACUDVJVHURABQVCURJBAUHURVCABAUQEGUFABTDEUQHUIUJUKU
      CUEULAICDUMBICEUMUN $.
  $}

  ${
    $d A x $.  $d A y $.  $d B y $.  $d C x $.
    cbvmptv.1 $e |- ( x = y -> B = C ) $.
    $( Rule to change the bound variable in a maps-to function, using implicit
       substitution.  (Contributed by Mario Carneiro, 19-Feb-2013.) $)
    cbvmptv $p |- ( x e. A |-> B ) = ( y e. A |-> C ) $=
      ( nfcv cbvmpt ) ABCDEBDGAEGFH $.
  $}

  ${
    $d x y $.  $d y B $.
    $( Function with universal domain in maps-to notation.  (Contributed by NM,
       16-Aug-2013.) $)
    mptv $p |- ( x e. _V |-> B ) = { <. x , y >. | y = B } $=
      ( cvv cmpt cv wcel wceq wa copab df-mpt vex biantrur opabbii eqtr4i ) ADC
      EAFDGZBFCHZIZABJQABJABDCKQRABPQALMNO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Transitive classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare a new symbol. $)
  $c Tr $. $( Transitive predicate (read:  "the following class is
              transitive") $)

  $( Extend wff notation to include transitive classes.  Notation from
     [TakeutiZaring] p. 35. $)
  wtr $a wff Tr A $.

  $( Define the transitive class predicate.  Not to be confused with a
     transitive relation (see ~ cotr ).  Definition of [Enderton] p. 71
     extended to arbitrary classes.  For alternate definitions, see ~ dftr2
     (which is suggestive of the word "transitive"), ~ dftr3 , ~ dftr4 ,
     ~ dftr5 , and (when ` A ` is a set) ~ unisuc .  The term "complete" is
     used instead of "transitive" in Definition 3 of [Suppes] p. 130.
     (Contributed by NM, 29-Aug-1993.) $)
  df-tr $a |- ( Tr A <-> U. A C_ A ) $.

  ${
    $d x y A $.
    $( An alternate way of defining a transitive class.  Exercise 7 of
       [TakeutiZaring] p. 40.  (Contributed by NM, 24-Apr-1994.) $)
    dftr2 $p |- ( Tr A <-> A. x A. y ( ( x e. y /\ y e. A ) -> x e. A ) ) $=
      ( cuni wss cv wcel wi wal wa dfss2 df-tr 19.23v eluni imbi1i bitr4i albii
      wtr wex 3bitr4i ) CDZCEAFZUAGZUBCGZHZAICRUBBFZGUFCGJZUDHBIZAIAUACKCLUHUEA
      UHUGBSZUDHUEUGUDBMUCUIUDBUBCNOPQT $.

    $( An alternate way of defining a transitive class.  (Contributed by NM,
       20-Mar-2004.) $)
    dftr5 $p |- ( Tr A <-> A. x e. A A. y e. x y e. A ) $=
      ( wtr cv wcel wa wi wal wral dftr2 alcom impexp albii df-ral bitr4i bitri
      r19.21v ) CDBEZAEZFZTCFZGSCFZHZAIBIZUCBTJZACJZBACKUEUDBIZAIZUGUDBALUIUBUF
      HZAIUGUHUJAUHUBUCHZBTJZUJUHUAUKHZBIULUDUMBUAUBUCMNUKBTOPUBUCBTRQNUFACOPQQ
      $.

    $( An alternate way of defining a transitive class.  Definition 7.1 of
       [TakeutiZaring] p. 35.  (Contributed by NM, 29-Aug-1993.) $)
    dftr3 $p |- ( Tr A <-> A. x e. A x C_ A ) $=
      ( vy wtr cv wcel wral wss dftr5 dfss3 ralbii bitr4i ) BDCEBFCAEZGZABGMBHZ
      ABGACBIONABCMBJKL $.
  $}

  $( An alternate way of defining a transitive class.  Definition of [Enderton]
     p. 71.  (Contributed by NM, 29-Aug-1993.) $)
  dftr4 $p |- ( Tr A <-> A C_ ~P A ) $=
    ( wtr cuni wss cpw df-tr sspwuni bitr4i ) ABACADAAEDAFAAGH $.

  $( Equality theorem for the transitive class predicate.  (Contributed by NM,
     17-Sep-1993.) $)
  treq $p |- ( A = B -> ( Tr A <-> Tr B ) ) $=
    ( wceq cuni wss wtr unieq sseq1d sseq2 bitrd df-tr 3bitr4g ) ABCZADZAEZBDZB
    EZAFBFMOPAEQMNPAABGHABPIJAKBKL $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( In a transitive class, the membership relation is transitive.
       (Contributed by NM, 19-Apr-1994.)  (Proof shortened by Andrew Salmon,
       9-Jul-2011.) $)
    trel $p |- ( Tr A -> ( ( B e. C /\ C e. A ) -> B e. A ) ) $=
      ( vy vx wtr cv wcel wa wi wal dftr2 eleq12 wb eleq1 adantl anbi12d adantr
      wceq imbi12d spc2gv pm2.43b sylbi ) AFDGZEGZHZUEAHZIZUDAHZJZEKDKZBCHZCAHZ
      IZBAHZJZDEALUKUNUOUJUPDEBCCAUDBSZUECSZIZUHUNUIUOUSUFULUGUMUDBUECMURUGUMNU
      QUECAOPQUQUIUONURUDBAORTUAUBUC $.
  $}

  $( In a transitive class, the membership relation is transitive.
     (Contributed by NM, 19-Apr-1994.) $)
  trel3 $p |- ( Tr A -> ( ( B e. C /\ C e. D /\ D e. A ) -> B e. A ) ) $=
    ( wtr wcel w3a wa 3anass trel anim2d syl5bi syld ) AEZBCFZCDFZDAFZGZOCAFZHZ
    BAFROPQHZHNTOPQINUASOACDJKLABCJM $.

  ${
    $d x A $.  $d x B $.
    $( An element of a transitive class is a subset of the class.  (Contributed
       by NM, 7-Aug-1994.)  (Proof shortened by JJ, 26-Jul-2021.) $)
    trss $p |- ( Tr A -> ( B e. A -> B C_ A ) ) $=
      ( vx wtr cv wss wral wcel wi dftr3 sseq1 rspccv sylbi ) ADCEZAFZCAGBAHBAF
      ZICAJOPCBANBAKLM $.

    $( Obsolete proof of ~ trss as of 26-Jul-2021.  (Contributed by NM,
       7-Aug-1994.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    trssOLD $p |- ( Tr A -> ( B e. A -> B C_ A ) ) $=
      ( vx wtr wcel wss cv wceq eleq1 sseq1 imbi12d imbi2d wral dftr3 rsp sylbi
      wi vtoclg pm2.43b ) ADZBAEZBAFZTCGZAEZUCAFZQZQTUAUBQZQCBAUCBHZUFUGTUHUDUA
      UEUBUCBAIUCBAJKLTUECAMUFCANUECAOPRS $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The intersection of transitive classes is transitive.  (Contributed by
       NM, 9-May-1994.) $)
    trin $p |- ( ( Tr A /\ Tr B ) -> Tr ( A i^i B ) ) $=
      ( vx wtr cin wss wral wcel elin trss im2anan9 syl5bi ssin syl6ib ralrimiv
      wa cv dftr3 sylibr ) ADZBDZPZCQZABEZFZCUDGUDDUBUECUDUBUCUDHZUCAFZUCBFZPZU
      EUFUCAHZUCBHZPUBUIUCABITUJUGUAUKUHAUCJBUCJKLUCABMNOCUDRS $.
  $}

  $( The empty set is transitive.  (Contributed by NM, 16-Sep-1993.) $)
  tr0 $p |- Tr (/) $=
    ( c0 wtr cpw wss 0ss dftr4 mpbir ) ABAACZDHEAFG $.

  $( The universe is transitive.  (Contributed by NM, 14-Sep-2003.) $)
  trv $p |- Tr _V $=
    ( cvv wtr cuni wss ssv df-tr mpbir ) ABACZADHEAFG $.

  ${
    $d x y A $.  $d y B $.
    $( The indexed union of a class of transitive sets is transitive.
       (Contributed by Mario Carneiro, 16-Nov-2014.) $)
    triun $p |- ( A. x e. A Tr B -> Tr U_ x e. A B ) $=
      ( vy wtr wral cv ciun wss wcel wrex eliun r19.29 nfcv nfiu1 nfss trss imp
      wa ssiun2 sstr2 syl2imc rexlimi syl sylan2b ralrimiva dftr3 sylibr ) CEZA
      BFZDGZABCHZIZDULFULEUJUMDULUKULJUJUKCJZABKZUMAUKBCLUJUOSUIUNSZABKUMUIUNAB
      MUPUMABAUKULAUKNABCOPUPUKCIZAGBJCULIUMUIUNUQCUKQRABCTUKCULUAUBUCUDUEUFDUL
      UGUH $.

    $( The union of a class of transitive sets is transitive.  Exercise 5(a) of
       [Enderton] p. 73.  (Contributed by Scott Fenton, 21-Feb-2011.)  (Proof
       shortened by Mario Carneiro, 26-Apr-2014.) $)
    truni $p |- ( A. x e. A Tr x -> Tr U. A ) $=
      ( cv wtr wral ciun cuni triun wceq wb uniiun treq ax-mp sylibr ) ACZDABEA
      BOFZDZBGZDZABOHRPISQJABKRPLMN $.

    $( The intersection of a class of transitive sets is transitive.  Exercise
       5(b) of [Enderton] p. 73.  (Contributed by Scott Fenton,
       25-Feb-2011.) $)
    trint $p |- ( A. x e. A Tr x -> Tr |^| A ) $=
      ( vy cv wtr wral wel wss wal cint dftr3 ralbii df-ral ralcom4 bitri sylbb
      wi ralim sylg wcel vex elint2 ssint imbi12i albii sylibr ) ADZEZABFZCAGZA
      BFZCDZUGHZABFZQZCIZBJZEZUIUJUMQZABFZUOCUIUMCUGFZABFZUTCIZUHVAABCUGKLVBUSC
      IZABFVCVAVDABUMCUGMLUSACBNOPUJUMABRSURULUQHZCUQFZUPCUQKVFULUQTZVEQZCIUPVE
      CUQMVHUOCVGUKVEUNAULBCUAUBAULBUCUDUEOOUF $.

    $( Any nonempty transitive class includes its intersection.  Exercise 3 in
       [TakeutiZaring] p. 44 (which mistakenly does not include the
       nonemptiness hypothesis).  (Contributed by Scott Fenton, 3-Mar-2011.)
       (Proof shortened by Andrew Salmon, 14-Nov-2011.) $)
    trintss $p |- ( ( Tr A /\ A =/= (/) ) -> |^| A C_ A ) $=
      ( vx c0 wne wtr cint wss cv wcel wex wi intss1 trss com12 sylsyld exlimiv
      n0 sstr2 sylbi impcom ) ACDZAEZAFZAGZUABHZAIZBJUBUDKZBAQUFUGBUFUCUEGUBUEA
      GZUDUEALUBUFUHAUEMNUCUEAROPST $.

    $( Obsolete version of ~ trintss as of 30-Oct-2021.  (Contributed by Scott
       Fenton, 3-Mar-2011.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    trintssOLD $p |- ( ( A =/= (/) /\ Tr A ) -> |^| A C_ A ) $=
      ( vy vx c0 wne wtr wa cint cv wcel wel wral elint2 wrex r19.2z ex expcomd
      vex trel rexlimdv sylan9 syl5bi ssrdv ) ADEZAFZGZBAHZABIZUGJBCKZCALZUFUHA
      JZCUHABRMUDUJUICANZUEUKUDUJULUICAOPUEUIUKCAUEUICIZAJUKAUHUMSQTUAUBUC $.
  $}

$( End $[ set-class.mm $] $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  ZF Set Theory - add the Axiom of Replacement
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Replacement
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w $.
    $( Axiom of Replacement.  An axiom scheme of Zermelo-Fraenkel set theory.
       Axiom 5 of [TakeutiZaring] p. 19.  It tells us that the image of any set
       under a function is also a set (see the variant ~ funimaex ).  Although
       ` ph ` may be any wff whatsoever, this axiom is useful (i.e. its
       antecedent is satisfied) when we are given some function and ` ph `
       encodes the predicate "the value of the function at ` w ` is ` z ` ."
       Thus, ` ph ` will ordinarily have free variables ` w ` and ` z ` - think
       of it informally as ` ph ( w , z ) ` .  We prefix ` ph ` with the
       quantifier ` A. y ` in order to "protect" the axiom from any ` ph `
       containing ` y ` , thus allowing us to eliminate any restrictions on
       ` ph ` .  Another common variant is derived as ~ axrep5 , where you can
       find some further remarks.  A slightly more compact version is shown as
       ~ axrep2 .  A quite different variant is ~ zfrep6 , which if used in
       place of ~ ax-rep would also require that the Separation Scheme ~ axsep
       be stated as a separate axiom.

       There is a very strong generalization of Replacement that doesn't demand
       function-like behavior of ` ph ` .  Two versions of this generalization
       are called the Collection Principle ~ cp and the Boundedness Axiom
       ~ bnd .

       Many developments of set theory distinguish the uses of Replacement from
       uses of the weaker axioms of Separation ~ axsep , Null Set ~ axnul , and
       Pairing ~ axpr , all of which we derive from Replacement.  In order to
       make it easier to identify the uses of those redundant axioms, we
       restate them as axioms ~ ax-sep , ~ ax-nul , and ~ ax-pr below the
       theorems that prove them.  (Contributed by NM, 23-Dec-1993.) $)
    ax-rep $a |- ( A. w E. y A. z ( A. y ph -> z = y ) ->
                     E. y A. z ( z e. y <-> E. w ( w e. x /\ A. y ph ) ) ) $.
  $}

  ${
    $d w y ph $.  $d w x y z $.
    $( The version of the Axiom of Replacement used in the Metamath Solitaire
       applet ~ http://us.metamath.org/mmsolitaire/mms.html .  Equivalence is
       shown via the path ~ ax-rep ` -> ` ~ axrep1 ` -> ` ~ axrep2 ` -> `
       ~ axrepnd ` -> ` ~ zfcndrep = ~ ax-rep .  (Contributed by NM,
       19-Nov-2005.)  (Proof shortened by Mario Carneiro, 17-Nov-2016.) $)
    axrep1 $p |- E. x ( E. y A. z ( ph -> z = y ) ->
                 A. z ( z e. x <-> E. x ( x e. y /\ ph ) ) ) $=
      ( vw weq wi wal wex wel wa elequ2 anbi1d exbidv bibi2d albidv albii exbii
      wb nfv imbi2d ax-rep 19.3v imbi1i nfe1 nfbi nfal anbi2i a1i bibi12d cbvex
      3imtr3i chvarv 19.35ri ) ADCFZGZDHZCIZDBJZBCJZAKZBIZSZDHZBURBHZUSBEJZAKZB
      IZSZDHZBIZGVEVDBIZGECECFZVKVLVEVMVJVDBVMVIVCDVMVHVBUSVMVGVABVMVFUTAECBLMN
      OPNUAACHZUOGZDHZCIZBHDCJZVFVNKZBIZSZDHZCIVEVKAECDBUBVQURBVPUQCVOUPDVNAUOA
      CUCZUDQRQWBVJCBWABDVRVTBVRBTVSBUEUFUGVJCTCBFZWAVIDWDVRUSVTVHCBDLVTVHSWDVS
      VGBVNAVFWCUHRUIUJPUKULUMUN $.
  $}

  ${
    $d w ph $.  $d w x y z $.
    $( Axiom of Replacement expressed with the fewest number of different
       variables and without any restrictions on ` ph ` .  (Contributed by NM,
       15-Aug-2003.) $)
    axrep2 $p |- E. x ( E. y A. z ( ph -> z = y ) ->
                        A. z ( z e. x <-> E. x ( x e. y /\ A. y ph ) ) ) $=
      ( vw wal weq wi wex wel wa nfe1 nfv nfim nfex exbidv albidv imbi2d imim1i
      wb elequ2 anbi1d bibi2d axrep1 chvar sp alimi eximi nfa1 nfal cbvex sylib
      equequ2 eximii ) ACFZDEGZHZDFZEIZDBJZBCJZUOKZBIZTZDFZHZADCGZHZDFZCIZVEHBU
      SUTBEJZUOKZBIZTZDFZHZBIVFBIECVFEBUSVEEURELVEEMNOECGZVPVFBVQVOVEUSVQVNVDDV
      QVMVCUTVQVLVBBVQVKVAUOECBUAUBPUCQRPUOBEDUDUEVJUSVEVJUOVGHZDFZCIUSVIVSCVHV
      RDUOAVGACUFSUGUHVSURCEVSEMUQCDUOUPCACUIUPCMNUJCEGZVRUQDVTVGUPUOCEDUMRQUKU
      LSUN $.
  $}

  ${
    $d w x y z $.
    $( Axiom of Replacement slightly strengthened from ~ axrep2 ; ` w ` may
       occur free in ` ph ` .  (Contributed by NM, 2-Jan-1997.) $)
    axrep3 $p |- E. x ( E. y A. z ( ph -> z = y ) ->
                 A. z ( z e. x <-> E. x ( x e. w /\ A. y ph ) ) ) $=
      ( weq wi wal wex wel wa wb nfe1 nfv nfa1 nfan nfex nfbi nfal exbidv chvar
      nfim elequ2 anbi1d bibi2d albidv imbi2d axrep2 ) ADCFGDHZCIZDBJZBCJZACHZK
      ZBIZLZDHZGZBIUJUKBEJZUMKZBIZLZDHZGZBICEVDCBUJVCCUICMVBCDUKVACUKCNUTCBUSUM
      CUSCNACOPQRSUBQCEFZURVDBVEUQVCUJVEUPVBDVEUOVAUKVEUNUTBVEULUSUMCEBUCUDTUEU
      FUGTABCDUHUA $.
  $}

  ${
    $d x y z w $.
    axrep4.1 $e |- F/ z ph $.
    $( A more traditional version of the Axiom of Replacement.  (Contributed by
       NM, 14-Aug-1994.) $)
    axrep4 $p |- ( A. x E. z A. y ( ph -> y = z ) ->
                E. z A. y ( y e. z <-> E. x ( x e. w /\ ph ) ) ) $=
      ( weq wi wal wex wel wa wb axrep3 19.35i nfv nfa1 nfan nfbi nfal nfex a1i
      nfe1 elequ2 19.3 anbi2i exbii bibi12d albidv cbvex sylib ) ACDGHCIDJZBICB
      KZBEKZADIZLZBJZMZCIZBJCDKZUNALZBJZMZCIZDJULUSBABDCENOUSVDBDURDCUMUQDUMDPU
      PDBUNUODUNDPADQRUASTVCBCUTVBBUTBPVABUCSTBDGZURVCCVEUMUTUQVBBDCUDUQVBMVEUP
      VABUOAUNADFUEUFUGUBUHUIUJUK $.
  $}

  ${
    $d x y z w $.
    axrep5.1 $e |- F/ z ph $.
    $( Axiom of Replacement (similar to Axiom Rep of [BellMachover] p. 463).
       The antecedent tells us ` ph ` is analogous to a "function" from ` x `
       to ` y ` (although it is not really a function since it is a wff and not
       a class).  In the consequent we postulate the existence of a set ` z `
       that corresponds to the "image" of ` ph ` restricted to some other set
       ` w ` .  The hypothesis says ` z ` must not be free in ` ph ` .
       (Contributed by NM, 26-Nov-1995.)  (Revised by Mario Carneiro,
       14-Oct-2016.) $)
    axrep5 $p |- ( A. x ( x e. w -> E. z A. y ( ph -> y = z ) ) ->
                E. z A. y ( y e. z <-> E. x ( x e. w /\ ph ) ) ) $=
      ( wel weq wi wal wex wa wb 19.37v impexp albii 19.21v bitr2i exbii bitr3i
      nfv nfan axrep4 sylbi anabs5 bibi2i sylib ) BEGZACDHZIZCJZDKIZBJZCDGZUHUH
      ALZLZBKZMZCJZDKZUNUOBKZMZCJZDKUMUOUIIZCJZDKZBJUTULVFBULUHUKIZDKVFUHUKDNVG
      VEDVEUHUJIZCJVGVDVHCUHAUIOPUHUJCQRSTPUOBCDEUHADUHDUAFUBUCUDUSVCDURVBCUQVA
      UNUPUOBUHAUESUFPSUG $.
  $}

  ${
    $d y z A v $.  $d z ph v $.  $d x y z v $.
    zfrepclf.1 $e |- F/_ x A $.
    zfrepclf.2 $e |- A e. _V $.
    zfrepclf.3 $e |- ( x e. A -> E. z A. y ( ph -> y = z ) ) $.
    $( An inference rule based on the Axiom of Replacement.  Typically, ` ph `
       defines a function from ` x ` to ` y ` .  (Contributed by NM,
       26-Nov-1995.) $)
    zfrepclf $p |- E. z A. y ( y e. z <-> E. x ( x e. A /\ ph ) ) $=
      ( vv wel cv wcel wa wex wb wal wceq wi nfeq2 eleq2 syl6bi nfv exbid mpbid
      alrimi axrep5 syl anbi1d bibi2d albidv exbidv vtocle ) CDJZBKZELZAMZBNZOZ
      CPZDNZIEGIKZEQZUMBIJZAMZBNZOZCPZDNZUTVBVCACKDKQRCPDNZRZBPVHVBVJBBVAEFSZVB
      VCUOVIVAEUNTZHUAUEABCDIADUBUFUGVBVGUSDVBVFURCVBVEUQUMVBVDUPBVKVBVCUOAVLUH
      UCUIUJUKUDUL $.
  $}

  ${
    $d x y z A $.  $d z ph $.
    zfrep3cl.1 $e |- A e. _V $.
    zfrep3cl.2 $e |- ( x e. A -> E. z A. y ( ph -> y = z ) ) $.
    $( An inference rule based on the Axiom of Replacement.  Typically, ` ph `
       defines a function from ` x ` to ` y ` .  (Contributed by NM,
       26-Nov-1995.) $)
    zfrep3cl $p |- E. z A. y ( y e. z <-> E. x ( x e. A /\ ph ) ) $=
      ( nfcv zfrepclf ) ABCDEBEHFGI $.
  $}

  ${
    $d ph y z $.  $d ps z $.  $d x y z $.
    zfrep4.1 $e |- { x | ph } e. _V $.
    zfrep4.2 $e |- ( ph -> E. z A. y ( ps -> y = z ) ) $.
    $( A version of Replacement using class abstractions.  (Contributed by NM,
       26-Nov-1995.) $)
    zfrep4 $p |- { y | E. x ( ph /\ ps ) } e. _V $=
      ( cv cab wcel wa wex cvv abid anbi1i exbii abbii wceq wb wal nfab1 sylbi
      wi zfrepclf abeq2 mpbir issetri eqeltrri ) CHACIZJZBKZCLZDIZABKZCLZDIMULU
      ODUKUNCUJABACNZOPQEUMEHZUMRZELDHZUQJULSDTZELBCDEUIACUAFUJABUSUQRUCDTELUPG
      UBUDURUTEULDUQUEPUFUGUH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the Axiom of Separation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w $.  $d y z ph w $.
    $( Separation Scheme, which is an axiom scheme of Zermelo's original
       theory.  Scheme Sep of [BellMachover] p. 463.  As we show here, it is
       redundant if we assume Replacement in the form of ~ ax-rep .  Some
       textbooks present Separation as a separate axiom scheme in order to show
       that much of set theory can be derived without the stronger Replacement.
       The Separation Scheme is a weak form of Frege's Axiom of Comprehension,
       conditioning it (with ` x e. z ` ) so that it asserts the existence of a
       collection only if it is smaller than some other collection ` z ` that
       already exists.  This prevents Russell's paradox ~ ru .  In some texts,
       this scheme is called "Aussonderung" or the Subset Axiom.

       The variable ` x ` can appear free in the wff ` ph ` , which in
       textbooks is often written ` ph ( x ) ` .  To specify this in the
       Metamath language, we _omit_ the distinct variable requirement ($d) that
       ` x ` not appear in ` ph ` .

       For a version using a class variable, see ~ zfauscl , which requires the
       Axiom of Extensionality as well as Separation for its derivation.

       If we omit the requirement that ` y ` not occur in ` ph ` , we can
       derive a contradiction, as ~ notzfaus shows (contradicting ~ zfauscl ).
       However, as ~ axsep2 shows, we can eliminate the restriction that ` z `
       not occur in ` ph ` .

       Note: the distinct variable restriction that ` z ` not occur in ` ph `
       is actually redundant in this particular proof, but we keep it since its
       purpose is to demonstrate the derivation of the exact ~ ax-sep from
       ~ ax-rep .

       This theorem should not be referenced by any proof.  Instead, use
       ~ ax-sep below so that the uses of the Axiom of Separation can be more
       easily identified.  (Contributed by NM, 11-Sep-2006.)
       (New usage is discouraged.) $)
    axsep $p |- E. y A. x ( x e. y <-> ( x e. z /\ ph ) ) $=
      ( vw wel weq wa wex wb wal wi nfv axrep5 equtr equcomi syl6 adantrd exbii
      alrimiv a1d spimev an12 elequ1 anbi1d equsexvw bitr3i bibi2i albii mpbi
      mpg ) BCFZEDFZEBGZAHZHZEIZJZBKZCIZULBDFZAHZJZBKZCIUMUOBCGZLZBKZCILUTEUOEB
      CDUOCMNUMVGCECEGZVGUMVHVFBVHUNVEAVHUNCBGVECEBOCBPQRTUAUBUKUSVDCURVCBUQVBU
      LUQUNUMAHZHZEIVBVJUPEUNUMAUCSVIVBEBUNUMVAAEBDUDUEUFUGUHUISUJ $.

    $( The Axiom of Separation of ZF set theory.  See ~ axsep for more
       information.  It was derived as ~ axsep above and is therefore
       redundant, but we state it as a separate axiom here so that its uses can
       be identified more easily.  (Contributed by NM, 11-Sep-2006.) $)
    ax-sep $a |- E. y A. x ( x e. y <-> ( x e. z /\ ph ) ) $.
    $( $j restatement 'ax-sep' of 'axsep'; $)
  $}

  ${
    $d x y z w $.  $d y ph w $.  $d z w $.
    $( A less restrictive version of the Separation Scheme ~ axsep , where
       variables ` x ` and ` z ` can both appear free in the wff ` ph ` , which
       can therefore be thought of as ` ph ( x , z ) ` .  This version was
       derived from the more restrictive ~ ax-sep with no additional set theory
       axioms.  (Contributed by NM, 10-Dec-2006.)  (Proof shortened by Mario
       Carneiro, 17-Nov-2016.) $)
    axsep2 $p |- E. y A. x ( x e. y <-> ( x e. z /\ ph ) ) $=
      ( wel wal wex weq elequ2 anbi1d anabs5 syl6bb bibi2d albidv exbidv ax-sep
      vw wa wb chvarv ) BCEZBQEZBDEZARZRZSZBFZCGUAUDSZBFZCGQDQDHZUGUICUJUFUHBUJ
      UEUDUAUJUEUCUDRUDUJUBUCUDQDBIJUCAKLMNOUDBCQPT $.
  $}

  ${
    $d x y A z $.  $d y ph z $.
    zfauscl.1 $e |- A e. _V $.
    $( Separation Scheme (Aussonderung) using a class variable.  To derive this
       from ~ ax-sep , we invoke the Axiom of Extensionality (indirectly via
       ~ vtocl ), which is needed for the justification of class variable
       notation.

       If we omit the requirement that ` y ` not occur in ` ph ` , we can
       derive a contradiction, as ~ notzfaus shows.  (Contributed by NM,
       21-Jun-1993.) $)
    zfauscl $p |- E. y A. x ( x e. y <-> ( x e. A /\ ph ) ) $=
      ( vz cv wcel wa wb wal wex eleq2 anbi1d bibi2d albidv exbidv ax-sep vtocl
      wceq ) BGZCGHZUAFGZHZAIZJZBKZCLUBUADHZAIZJZBKZCLFDEUCDTZUGUKCULUFUJBULUEU
      IUBULUDUHAUCDUAMNOPQABCFRS $.
  $}

  ${
    $d x ph z $.  $d x y z $.
    bm1.3ii.1 $e |- E. x A. y ( ph -> y e. x ) $.
    $( Convert implication to equivalence using the Separation Scheme
       (Aussonderung) ~ ax-sep .  Similar to Theorem 1.3ii of [BellMachover]
       p. 463.  (Contributed by NM, 21-Jun-1993.) $)
    bm1.3ii $p |- E. x A. y ( y e. x <-> ph ) $=
      ( vz wel wi wal wa wb wex 19.42v bimsc1 eximi sylbir elequ2 imbi2d albidv
      alanimi weq cbvexv mpbi ax-sep pm3.2i exan exlimiiv ) ACEFZGZCHZCBFZUGAIJ
      ZCHZBKZIZUJAJZCHZBKZEUNUIULIZBKUQUIULBLURUPBUHUKUOCAUGUJMSNOUIUMEUIEKZUMA
      UJGZCHZBKUSDVAUIBEBETZUTUHCVBUJUGABECPQRUAUBACBEUCUDUEUF $.
  $}

  ${
    $d x y z $.
    $( Derive ~ ax6v (a weakened version of ~ ax-6 where ` x ` and ` y ` must
       be distinct), from Separation ~ ax-sep and Extensionality ~ ax-ext .
       See ~ ax6 for the derivation of ~ ax-6 from ~ ax6v .  (Contributed by
       NM, 12-Nov-2013.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ax6vsep $p |- -. A. x -. x = y $=
      ( vz cv wceq wex wn wal wcel wi wa wb ax-sep biantru bibi2i biimpri alimi
      id ax-ext syl eximi ax-mp df-ex mpbi ) ADZBDZEZAFZUGGAHGCDZUEIZUIUFIZUIUI
      EZULJZKZLZCHZAFUHUMCABMUPUGAUPUJUKLZCHUGUOUQCUQUOUKUNUJUMUKULRNOPQABCSTUA
      UBUGAUCUD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the Null Set Axiom
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    zfnuleu.1 $e |- E. x A. y -. y e. x $.
    $( Show the uniqueness of the empty set (using the Axiom of Extensionality
       via ~ bm1.1 to strengthen the hypothesis in the form of ~ axnul ).
       (Contributed by NM, 22-Dec-2007.) $)
    zfnuleu $p |- E! x A. y -. y e. x $=
      ( wel wn wal weu wfal wb wex nbfal albii exbii mpbi nfv bm1.1 ax-mp eubii
      mpbir ) BADZEZBFZAGTHIZBFZAGZUDAJZUEUBAJUFCUBUDAUAUCBTKLZMNHABHAOPQUBUDAU
      GRS $.
  $}

  ${
    $d x y z w $.
    $( Alternate proof of ~ axnul , proved from propositional calculus,
       ~ ax-gen , ~ ax-4 , ~ sp , and ~ ax-rep .  To check this, replace ~ sp
       with the obsolete axiom ~ ax-c5 in the proof of ~ axnulALT and type the
       Metamath command 'SHOW TRACE_BACK axnulALT / AXIOMS'.  (Contributed by
       Jeff Hoffman, 3-Feb-2008.)  (Proof shortened by Mario Carneiro,
       17-Nov-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    axnulALT $p |- E. x A. y -. y e. x $=
      ( vw vz cv wcel wn wal wex wfal wa wb wi ax-rep sp con2i df-ex sylibr mpg
      wceq fal mto pm2.21i intnan nex nbn albii exbii mpbir ) BEZAEZFZGZBHZAIUL
      CEDEFZJAHZKZCIZLZBHZAIZUPUJUKTZMZBHZAIZVACJDABCNVCVEBVDVDGZAHZGVEVGVDVFAO
      PVDAQRUPVBUPJUAJAOUBZUCSSUNUTAUMUSBURULUQCUPUOVHUDUEUFUGUHUI $.

    $( The Null Set Axiom of ZF set theory: there exists a set with no
       elements.  Axiom of Empty Set of [Enderton] p. 18.  In some textbooks,
       this is presented as a separate axiom; here we show it can be derived
       from Separation ~ ax-sep .  This version of the Null Set Axiom tells us
       that at least one empty set exists, but does not tell us that it is
       unique - we need the Axiom of Extensionality to do that (see
       ~ zfnuleu ).

       This proof, suggested by Jeff Hoffman, uses only ~ ax-4 and ~ ax-gen
       from predicate calculus, which are valid in "free logic" i.e. logic
       holding in an empty domain (see Axiom A5 and Rule R2 of [LeBlanc]
       p. 277).  Thus, our ~ ax-sep implies the existence of at least one set.
       Note that Kunen's version of ~ ax-sep (Axiom 3 of [Kunen] p. 11) does
       not imply the existence of a set because his is universally closed i.e.
       prefixed with universal quantifiers to eliminate all free variables.
       His existence is provided by a separate axiom stating ` E. x x = x `
       (Axiom 0 of [Kunen] p. 10).

       See ~ axnulALT for a proof directly from ~ ax-rep .

       This theorem should not be referenced by any proof.  Instead, use
       ~ ax-nul below so that the uses of the Null Set Axiom can be more easily
       identified.  (Contributed by Jeff Hoffman, 3-Feb-2008.)  (Revised by NM,
       4-Feb-2008.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    axnul $p |- E. x A. y -. y e. x $=
      ( vz wel wfal wa wb wal wn ax-sep fal intnan id mtbiri alimi eximii ) BAD
      ZBCDZEFZGZBHQIZBHAEBACJTUABTQSERKLTMNOP $.

    $( The Null Set Axiom of ZF set theory.  It was derived as ~ axnul above
       and is therefore redundant, but we state it as a separate axiom here so
       that its uses can be identified more easily.  (Contributed by NM,
       7-Aug-2003.) $)
    ax-nul $a |- E. x A. y -. y e. x $.
    $( $j restatement 'ax-nul' of 'axnul'; $)

    $( The Null Set Axiom of ZF set theory: the empty set exists.  Corollary
       5.16 of [TakeutiZaring] p. 20.  For the unabbreviated version, see
       ~ ax-nul .  (Contributed by NM, 21-Jun-1993.)  (Proof shortened by
       Andrew Salmon, 9-Jul-2011.) $)
    0ex $p |- (/) e. _V $=
      ( vx vy c0 cv wceq wex wel wn wal ax-nul eq0 exbii mpbir issetri ) ACADZC
      EZAFBAGHBIZAFABJPQABOKLMN $.
  $}

  ${
    sseliALT.1 $e |- A C_ B $.
    $( Alternate proof of ~ sseli illustrating the use of the weak deduction
       theorem to prove it from the inference ~ sselii .  (Contributed by NM,
       24-Aug-2018.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    sseliALT $p |- ( C e. A -> C e. B ) $=
      ( wcel csn cif wceq biidd eleq2 eleq1 wss sseq1 sseq2 ssid keephyp3v snid
      c0 0ex elimhyp3v sselii dedth3v ) CAEZCBEZUDCUCBRFZGZEUCCRGZUFEABCUEUERAU
      CAUEGZHUDIBUFCJCUGUFKUHUFUGUCUHBLUHUFLZUIUEUELUHUELUIABLABCUEUERAUHBMBUFU
      HNCUGHUIIUEUHUEMUEUFUHNRUGHUIIDUEOPUCCUHEZUJUGUHERUEERUHEZUKABCUEUERAUHCJ
      BUFHUJICUGUHKUEUHRJUEUFHUKIRUGUHKRSQTUAUB $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( The existence of proper substitution into a class.  (Contributed by NM,
       10-Nov-2005.)  (Revised by NM, 17-Aug-2018.) $)
    csbexg $p |- ( A. x B e. W -> [_ A / x ]_ B e. _V ) $=
      ( vy cvv wcel wal csb wa cv wsbc cab abid2 elex syl5eqel alimi spsbc syl5
      df-csb nfcv sbcabel sylibd imp wn c0 csbprc 0ex syl6eqel adantr pm2.61ian
      ) BFGZCDGZAHZABCIZFGZULUNJUOEKCGZABLEMZFAEBCTULUNURFGZULUNUQEMZFGZABLZUSU
      NVAAHULVBUMVAAUMUTCFECNCDOPQVAABFRSUQAEBFFAFUAUBUCUDPULUEZUPUNVCUOUFFABCU
      GUHUIUJUK $.
  $}

  ${
    csbex.1 $e |- B e. _V $.
    $( The existence of proper substitution into a class.  (Contributed by NM,
       7-Aug-2007.)  (Proof shortened by Andrew Salmon, 29-Jun-2011.)  (Revised
       by NM, 17-Aug-2018.) $)
    csbex $p |- [_ A / x ]_ B e. _V $=
      ( cvv wcel csb csbexg mpg ) CEFABCGEFAABCEHDI $.
  $}

  $( A version of ~ unisn without the ` A e. _V ` hypothesis.  (Contributed by
     Stefan Allan, 14-Mar-2006.) $)
  unisn2 $p |- U. { A } e. { (/) , A } $=
    ( cvv wcel csn cuni c0 cpr unisng prid2g eqeltrd wn wceq biimpi unieqd uni0
    snprc 0ex prid1 eqeltri syl6eqel pm2.61i ) ABCZADZEZFAGZCUBUDAUEABHFABIJUBK
    ZUDFEZUEUFUCFUFUCFLAPMNUGFUEOFAQRSTUA $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Theorems requiring subset and intersection existence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( No set contains all sets.  Theorem 41 of [Suppes] p. 30.  (Contributed
       by NM, 23-Aug-1993.) $)
    nalset $p |- -. E. x A. y y e. x $=
      ( vz wel wn wex wal alexn wa wb ax-sep elequ1 elequ2 bitrd notbid anbi12d
      weq bibi12d spv pclem6 syl eximii mpgbi ) BADZEZBFUDBGAFEAUDABHCBDZCADZCC
      DZEZIZJZCGZUEBUICBAKULBBDZUDUMEZIZJZUEUKUPCBCBQZUFUMUJUOCBBLUQUGUDUIUNCBA
      LUQUHUMUQUHBCDUMCBCLCBBMNOPRSUMUDTUAUBUC $.
  $}

  ${
    $d x y $.
    $( The universal class is not a member of itself (and thus is not a set).
       Proposition 5.21 of [TakeutiZaring] p. 21; our proof, however, does not
       depend on the Axiom of Regularity.  (Contributed by NM, 23-Aug-1993.) $)
    vprc $p |- -. _V e. _V $=
      ( vx vy cvv wcel cv wceq wex wal nalset vex tbt albii dfcleq bitr4i exbii
      wb mtbi isset mtbir ) CCDAEZCFZAGZBEZTDZBHZAGUBABIUEUAAUEUDUCCDZPZBHUAUDU
      GBUFUDBJKLBTCMNOQACRS $.
  $}

  $( The universal class doesn't belong to any class.  (Contributed by FL,
     31-Dec-2006.) $)
  nvel $p |- -. _V e. A $=
    ( cvv wcel vprc elex mto ) BACBBCDBAEF $.

  $( The universal class does not exist.  (Contributed by NM, 4-Jul-2005.) $)
  vnex $p |- -. E. x x = _V $=
    ( cvv wcel cv wceq wex vprc isset mtbi ) BBCADBEAFGABHI $.

  ${
    $d A x y $.  $d B x y $.
    inex1.1 $e |- A e. _V $.
    $( Separation Scheme (Aussonderung) using class notation.  Compare Exercise
       4 of [TakeutiZaring] p. 22.  (Contributed by NM, 21-Jun-1993.) $)
    inex1 $p |- ( A i^i B ) e. _V $=
      ( vx vy cin cv wceq wex wcel wa wb zfauscl dfcleq elin bibi2i albii bitri
      wal exbii mpbir issetri ) DABFZDGZUCHZDIEGZUDJZUFAJUFBJZKZLZESZDIUHEDACMU
      EUKDUEUGUFUCJZLZESUKEUDUCNUMUJEULUIUGUFABOPQRTUAUB $.
  $}

  ${
    inex2.1 $e |- A e. _V $.
    $( Separation Scheme (Aussonderung) using class notation.  (Contributed by
       NM, 27-Apr-1994.) $)
    inex2 $p |- ( B i^i A ) e. _V $=
      ( cin cvv incom inex1 eqeltri ) BADABDEBAFABCGH $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Closed-form, generalized Separation Scheme.  (Contributed by NM,
       7-Apr-1995.) $)
    inex1g $p |- ( A e. V -> ( A i^i B ) e. _V ) $=
      ( vx cv cin cvv wcel wceq ineq1 eleq1d vex inex1 vtoclg ) DEZBFZGHABFZGHD
      ACOAIPQGOABJKOBDLMN $.
  $}

  ${
    ssex.1 $e |- B e. _V $.
    $( The subset of a set is also a set.  Exercise 3 of [TakeutiZaring] p. 22.
       This is one way to express the Axiom of Separation ~ ax-sep (a.k.a.
       Subset Axiom).  (Contributed by NM, 27-Apr-1994.) $)
    ssex $p |- ( A C_ B -> A e. _V ) $=
      ( wss cin wceq cvv wcel df-ss inex2 eleq1 mpbii sylbi ) ABDABEZAFZAGHZABI
      ONGHPBACJNAGKLM $.
  $}

  ${
    ssexi.1 $e |- B e. _V $.
    ssexi.2 $e |- A C_ B $.
    $( The subset of a set is also a set.  (Contributed by NM, 9-Sep-1993.) $)
    ssexi $p |- A e. _V $=
      ( wss cvv wcel ssex ax-mp ) ABEAFGDABCHI $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The subset of a set is also a set.  Exercise 3 of [TakeutiZaring] p. 22
       (generalized).  (Contributed by NM, 14-Aug-1994.) $)
    ssexg $p |- ( ( A C_ B /\ B e. C ) -> A e. _V ) $=
      ( vx wcel wss cvv cv wi wceq sseq2 imbi1d vex ssex vtoclg impcom ) BCEABF
      ZAGEZADHZFZRIQRIDBCSBJTQRSBAKLASDMNOP $.
  $}

  ${
    ssexd.1 $e |- ( ph -> B e. C ) $.
    ssexd.2 $e |- ( ph -> A C_ B ) $.
    $( A subclass of a set is a set.  Deduction form of ~ ssexg .  (Contributed
       by David Moews, 1-May-2017.) $)
    ssexd $p |- ( ph -> A e. _V ) $=
      ( wss wcel cvv ssexg syl2anc ) ABCGCDHBIHFEBCDJK $.
  $}

  $( The superclass of a proper class is a proper class.  (Contributed by AV,
     27-Dec-2020.) $)
  prcssprc $p |- ( ( A C_ B /\ A e/ _V ) -> B e/ _V ) $=
    ( wss cvv wnel wcel ssexg ex nelcon3d imp ) ABCZADEBDEKBDADKBDFADFABDGHIJ
    $.

  ${
    sselpwd.1 $e |- ( ph -> B e. V ) $.
    sselpwd.2 $e |- ( ph -> A C_ B ) $.
    $( Elementhood to a power set.  (Contributed by Thierry Arnoux,
       18-May-2020.) $)
    sselpwd $p |- ( ph -> A e. ~P B ) $=
      ( cpw wcel wss cvv wb ssexd elpwg syl mpbird ) ABCGHZBCIZFABJHPQKABCDEFLB
      CJMNO $.
  $}

  $( Existence of a difference.  (Contributed by NM, 26-May-1998.) $)
  difexg $p |- ( A e. V -> ( A \ B ) e. _V ) $=
    ( cdif wss wcel cvv difss ssexg mpan ) ABDZAEACFKGFABHKACIJ $.

  ${
    difexi.1 $e |- A e. _V $.
    $( Existence of a difference, inference version of ~ difexg .  (Contributed
       by Glauco Siliprandi, 3-Mar-2021.)  (Revised by AV, 26-Mar-2021.) $)
    difexi $p |- ( A \ B ) e. _V $=
      ( cvv wcel cdif difexg ax-mp ) ADEABFDECABDGH $.
  $}

  ${
    difexOLD.1 $e |- A e. V $.
    $( Obsolete version of ~ difexi as of 26-Mar-2021.  (Contributed by Glauco
       Siliprandi, 3-Mar-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    difexOLD $p |- ( A \ B ) e. _V $=
      ( wcel cdif cvv difexg ax-mp ) ACEABFGEDABCHI $.
  $}

  ${
    $d x A $.
    zfausab.1 $e |- A e. _V $.
    $( Separation Scheme (Aussonderung) in terms of a class abstraction.
       (Contributed by NM, 8-Jun-1994.) $)
    zfausab $p |- { x | ( x e. A /\ ph ) } e. _V $=
      ( cv wcel wa cab ssab2 ssexi ) BECFAGBHCDABCIJ $.
  $}

  ${
    $d x A $.
    $( Separation Scheme in terms of a restricted class abstraction.
       (Contributed by NM, 23-Oct-1999.) $)
    rabexg $p |- ( A e. V -> { x e. A | ph } e. _V ) $=
      ( crab wss wcel cvv ssrab2 ssexg mpan ) ABCEZCFCDGLHGABCILCDJK $.
  $}

  ${
    $d x A $.
    rabex.1 $e |- A e. _V $.
    $( Separation Scheme in terms of a restricted class abstraction.
       (Contributed by NM, 19-Jul-1996.) $)
    rabex $p |- { x e. A | ph } e. _V $=
      ( cvv wcel crab rabexg ax-mp ) CEFABCGEFDABCEHI $.
  $}

  ${
    $d x A $.
    rabexd.1 $e |- B = { x e. A | ps } $.
    rabexd.2 $e |- ( ph -> A e. V ) $.
    $( Separation Scheme in terms of a restricted class abstraction, deduction
       form of ~ rabex2 .  (Contributed by AV, 16-Jul-2019.) $)
    rabexd $p |- ( ph -> B e. _V ) $=
      ( crab cvv wcel rabexg syl syl5eqel ) AEBCDIZJGADFKOJKHBCDFLMN $.
  $}

  ${
    $d x A $.
    rabex2.1 $e |- B = { x e. A | ps } $.
    rabex2.2 $e |- A e. _V $.
    $( Separation Scheme in terms of a restricted class abstraction.
       (Contributed by AV, 16-Jul-2019.)  (Revised by AV, 26-Mar-2021.) $)
    rabex2 $p |- B e. _V $=
      ( cvv wcel id rabexd ax-mp ) CGHZDGHFLABCDGELIJK $.
  $}

  ${
    $d x B $.  $d y A $.
    rab2ex.1 $e |- B = { y e. A | ps } $.
    rab2ex.2 $e |- A e. _V $.
    $( A class abstraction based on a class abstraction based on a set is a
       set.  (Contributed by AV, 16-Jul-2019.)  (Revised by AV,
       26-Mar-2021.) $)
    rab2ex $p |- { x e. B | ph } e. _V $=
      ( rabex2 rabex ) ACFBDEFGHIJ $.
  $}

  ${
    $d x A $.
    rabex2OLD.1 $e |- B = { x e. A | ps } $.
    rabex2OLD.2 $e |- A e. V $.
    $( Obsolete version of ~ rabex2 as of 26-Mar-2021.  (Contributed by AV,
       16-Jul-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    rabex2OLD $p |- B e. _V $=
      ( wcel cvv id rabexd ax-mp ) CEHZDIHGMABCDEFMJKL $.
  $}

  ${
    $d x B $.  $d y A $.
    rab2exOLD.1 $e |- B = { y e. A | ps } $.
    rab2exOLD.2 $e |- A e. V $.
    $( Obsolete version of ~ rab2ex as of 26-Mar-2021.  (Contributed by AV,
       16-Jul-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    rab2exOLD $p |- { x e. B | ph } e. _V $=
      ( rabex2OLD rabex ) ACFBDEFGHIJK $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ps $.
    elssabg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Membership in a class abstraction involving a subset.  Unlike ~ elabg ,
       ` A ` does not have to be a set.  (Contributed by NM, 29-Aug-2006.) $)
    elssabg $p |- ( B e. V ->
                  ( A e. { x | ( x C_ B /\ ph ) } <-> ( A C_ B /\ ps ) ) ) $=
      ( wcel wss wa cvv wi cv cab wb ssexg expcom adantrd wceq sseq1 elab3g syl
      anbi12d ) EFHZDEIZBJZDKHZLDCMZEIZAJZCNHUFOUDUEUGBUEUDUGDEFPQRUJUFCDKUHDSU
      IUEABUHDETGUCUAUB $.
  $}

  ${
    $d x A $.
    $( The intersection of a nonempty class exists.  Exercise 5 of
       [TakeutiZaring] p. 44 and its converse.  (Contributed by NM,
       13-Aug-2002.) $)
    intex $p |- ( A =/= (/) <-> |^| A e. _V ) $=
      ( vx c0 wne cint cvv wcel cv wex n0 wss intss1 vex ssex syl exlimiv sylbi
      wceq vprc inteq int0 syl6eq eleq1d mtbiri necon2ai impbii ) ACDZAEZFGZUGB
      HZAGZBIUIBAJUKUIBUKUHUJKUIUJALUHUJBMNOPQUIACACRZUIFFGSULUHFFULUHCEFACTUAU
      BUCUDUEUF $.
  $}

  $( If a class intersection is not a set, it must be the universe.
     (Contributed by NM, 3-Jul-2005.) $)
  intnex $p |- ( -. |^| A e. _V <-> |^| A = _V ) $=
    ( cint cvv wcel wn wceq intex necon1bbii inteq int0 syl6eq sylbi vprc eleq1
    c0 mtbiri impbii ) ABZCDZEZRCFZTAOFZUASAOAGHUBROBCAOIJKLUASCCDMRCCNPQ $.

  $( The intersection of a nonempty class abstraction exists.  (Contributed by
     NM, 21-Oct-2003.) $)
  intexab $p |- ( E. x ph <-> |^| { x | ph } e. _V ) $=
    ( wex cab c0 wne cint cvv wcel abn0 intex bitr3i ) ABCABDZEFMGHIABJMKL $.

  $( The intersection of a nonempty restricted class abstraction exists.
     (Contributed by NM, 21-Oct-2003.) $)
  intexrab $p |- ( E. x e. A ph <-> |^| { x e. A | ph } e. _V ) $=
    ( cv wcel wa wex cab cint cvv wrex crab intexab df-rex df-rab inteqi eleq1i
    3bitr4i ) BDCEAFZBGSBHZIZJEABCKABCLZIZJESBMABCNUCUAJUBTABCOPQR $.

  ${
    $d A x y $.  $d B y $.
    $( The existence of a class intersection. ` x ` is normally a free-variable
       parameter in ` B ` , which should be read ` B ( x ) ` .  (Contributed by
       FL, 19-Sep-2011.) $)
    iinexg $p |- ( ( A =/= (/) /\ A. x e. A B e. C )
    -> |^|_ x e. A B e. _V ) $=
      ( vy c0 wne wcel wral wa ciin cv wceq wrex cab cint cvv wex wi sylib abn0
      dfiin2g adantl elisset rgenw r19.2z mpan2 r19.35 imp rexcom4 sylibr intex
      eqeltrd ) BFGZCDHZABIZJZABCKZELCMZABNZEOZPZQUPURVBMUNAEBCDUBUCUQVAFGZVBQH
      UQUTERZVCUQUSERZABNZVDUNUPVFUNUOVESZABNZUPVFSUNVGABIVHVGABECDUDUEVGABUFUG
      UOVEABUHTUIUSAEBUJTUTEUAUKVAULTUM $.
  $}

  ${
    $d x y $.  $d x A $.  $d y ph $.  $d x ps $.  $d x ch $.
    intabs.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    intabs.2 $e |- ( x = |^| { y | ps } -> ( ph <-> ch ) ) $.
    intabs.3 $e |- ( |^| { y | ps } C_ A /\ ch ) $.
    $( Absorption of a redundant conjunct in the intersection of a class
       abstraction.  (Contributed by NM, 3-Jul-2005.) $)
    intabs $p |- |^| { x | ( x C_ A /\ ph ) } = |^| { x | ph } $=
      ( cv wss wa cab cint cvv wcel wceq sseq1 anbi12d intmin3 intnex ssv sseq2
      wn mpbiri sylbi pm2.61i cbvabv inteqi sseqtr4i simpr ss2abi intss ax-mp
      eqssi ) DJZFKZALZDMZNZADMZNZUTBEMZNZVBVDOPZUTVDKZURVDFKZCLDVDOUPVDQUQVGAC
      UPVDFRHSITVEUDVDOQZVFVCUAVHVFUTOKUTUBVDOUTUCUEUFUGVAVCABDEGUHUIUJUSVAKVBU
      TKURADUQAUKULUSVAUMUNUO $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    $( The intersection of a union ` U. A ` with a class ` B ` is equal to the
       union of the intersections of each element of ` A ` with ` B ` .
       (Contributed by FL, 24-Mar-2007.) $)
    inuni $p |- ( U. A i^i B ) = U. { x | E. y e. A x = ( y i^i B ) } $=
      ( vz cuni cin cv wceq wrex cab wcel wex eluni2 anbi1i elin r19.41v bitr4i
      wa bitri ancom exbii rexcom4 vex inex1 eleq2 ceqsexv rexbii 3bitr4i eqriv
      eluniab ) ECFZDGZAHZBHZDGZIZBCJZAKFZEHZUMLZUTUNLZURSZAMZUTUSLUTULLZUTDLZS
      UTUOLZBCJZVFSZVAVDVEVHVFBUTCNOUTULDPVDUQVBSZAMZBCJZVIVDVJBCJZAMVLVCVMAVCU
      RVBSVMVBURUAUQVBBCQRUBVJBACUCRVLVGVFSZBCJVIVKVNBCVKUTUPLZVNVBVOAUPUODBUDU
      EUNUPUTUFUGUTUODPTUHVGVFBCQTTUIURAUTUKRUJ $.
  $}

  $( Membership in a power class.  Theorem 86 of [Suppes] p. 47.  (Contributed
     by NM, 7-Aug-2000.) $)
  elpw2g $p |- ( B e. V -> ( A e. ~P B <-> A C_ B ) ) $=
    ( wcel cpw wss elpwi cvv ssexg elpwg biimparc syldan expcom impbid2 ) BCDZA
    BEDZABFZABGQOPQOAHDZPABCIRPQABHJKLMN $.

  ${
    elpw2.1 $e |- B e. _V $.
    $( Membership in a power class.  Theorem 86 of [Suppes] p. 47.
       (Contributed by NM, 11-Oct-2007.) $)
    elpw2 $p |- ( A e. ~P B <-> A C_ B ) $=
      ( cvv wcel cpw wss wb elpw2g ax-mp ) BDEABFEABGHCABDIJ $.
  $}

  ${
    elpwi2.1 $e |- B e. V $.
    elpwi2.2 $e |- A C_ B $.
    $( Membership in a power class.  (Contributed by Glauco Siliprandi,
       3-Mar-2021.) $)
    elpwi2 $p |- A e. ~P B $=
      ( cpw wcel wss wb elpw2g ax-mp mpbir ) ABFGZABHZEBCGMNIDABCJKL $.
  $}


  ${
    $d A x y $.  $d V x y $.
    $( The power set of a set is never a subset.  (Contributed by Stefan
       O'Rear, 22-Feb-2015.) $)
    pwnss $p |- ( A e. V -> -. ~P A C_ A ) $=
      ( vx vy cpw cv wnel crab wcel wn wa wb eleq12 anidms notbid df-nel syl5bb
      wss wceq cbvrabv elrab2 pclem6 ax-mp ssel mtoi ssrab2 elpw2g mpbiri nsyl3
      ) AEZARZCFZULGZCAHZUJIZABIZUKUOUNAIZUNUNIZUQURJZKLUQJDFZUTIZJZUSDUNAUNUTU
      NSZVAURVCVAURLUTUNUTUNMNOUMVBCDAUMULULIZJULUTSZVBULULPVEVDVAVEVDVALULUTUL
      UTMNOQTUAURUQUBUCUJAUNUDUEUPUOUNARUMCAUFUNABUGUHUI $.
  $}

  $( No set equals its power set.  The sethood antecedent is necessary; compare
     ~ pwv .  (Contributed by NM, 17-Nov-2008.)  (Proof shortened by Mario
     Carneiro, 23-Dec-2016.) $)
  pwne $p |- ( A e. V -> ~P A =/= A ) $=
    ( wcel cpw wss wn wne pwnss eqimss necon3bi syl ) ABCADZAEZFLAGABHMLALAIJK
    $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Theorems requiring empty set existence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.
    $( Construct, from any class ` A ` , a set equal to it when the class
       exists and equal to the empty set when the class is proper.  This
       theorem shows that the constructed set always exists.  (Contributed by
       NM, 16-Oct-2003.) $)
    class2set $p |- { x e. A | A e. _V } e. _V $=
      ( wcel crab rabexg wn c0 wrex wceq cv simpl nrexdv rabn0 necon1bbii sylib
      cvv 0ex syl6eqel pm2.61i ) BPCZTABDZPCTABPETFZUAGPUBTABHZFUAGIUBTABUBAJBC
      KLUCUAGTABMNOQRS $.

    $( Equality theorem based on ~ class2set .  (Contributed by NM,
       13-Dec-2005.)  (Proof shortened by Raph Levien, 30-Jun-2006.) $)
    class2seteq $p |- ( A e. V -> { x e. A | A e. _V } = A ) $=
      ( wcel cvv crab wceq elex wral cv ax-1 ralrimiv rabid2 sylibr eqcomd syl
      ) BCDBEDZQABFZBGBCHQBRQQABIBRGQQABQAJBDKLQABMNOP $.
  $}

  $( Every power class contains the empty set.  (Contributed by NM,
     25-Oct-2007.) $)
  0elpw $p |- (/) e. ~P A $=
    ( c0 cpw wcel wss 0ss 0ex elpw mpbir ) BACDBAEAFBAGHI $.
  $( A power class is never empty.  (Contributed by NM, 3-Sep-2018.) $)
  pwne0 $p |- ~P A =/= (/) $=
    ( c0 cpw 0elpw ne0ii ) BACADE $.

  $( The empty set and its power set are not equal.  (Contributed by NM,
     23-Dec-1993.) $)
  0nep0 $p |- (/) =/= { (/) } $=
    ( c0 csn 0ex snnz necomi ) ABAACDE $.

  $( Something cannot be equal to both the null set and the power set of the
     null set.  (Contributed by NM, 21-Jun-1993.) $)
  0inp0 $p |- ( A = (/) -> -. A = { (/) } ) $=
    ( c0 wceq csn wne 0nep0 neeq1 mpbiri neneqd ) ABCZABDZJAKEBKEFABKGHI $.

  $( The removal of the empty set from a class does not affect its union.
     (Contributed by NM, 22-Mar-2004.) $)
  unidif0 $p |- U. ( A \ { (/) } ) = U. A $=
    ( c0 csn cdif cuni cun uniun undif1 uncom eqtr2i unieqi 0ex uneq2i 3eqtr4ri
    unisn un0 uneq1i 3eqtri ) ABCZDZEZBAEZFZUBBFUBUASAFZEZSEZUBFUCTSFZEUAUFFZUE
    UATSGUDUGUGASFUDASHASIJKUHUABFUAUFBUABLOZMUAPJNSAGUFBUBUIQRBUBIUBPR $.

  ${
    $d x A $.
    $( An indexed intersection of the empty set, with a nonempty index set, is
       empty.  (Contributed by NM, 20-Oct-2005.) $)
    iin0 $p |- ( A =/= (/) <-> |^|_ x e. A (/) = (/) ) $=
      ( c0 wne ciin wceq iinconst cvv 0ex n0ii 0iin eqeq1i iineq1 eqeq1d mtbiri
      mtbir necon2ai impbii ) BCDABCEZCFZABCGTBCBCFZTACCEZCFZUCHCFCHIJUBHCACKLP
      UASUBCABCCMNOQR $.
  $}

  ${
    $d x A $.
    notzfaus.1 $e |- A = { (/) } $.
    notzfaus.2 $e |- ( ph <-> -. x e. y ) $.
    $( In the Separation Scheme ~ zfauscl , we require that ` y ` not occur in
       ` ph ` (which can be generalized to "not be free in").  Here we show
       special cases of ` A ` and ` ph ` that result in a contradiction by
       violating this requirement.  (Contributed by NM, 8-Feb-2006.) $)
    notzfaus $p |- -. E. y A. x ( x e. y <-> ( x e. A /\ ph ) ) $=
      ( cv wcel wa wb wal wn wex c0 wne csn 0ex snnz eqnetri mpbi n0 biimt iman
      wi anbi2i xchbinxr syl6bb xor3 sylibr eximii exnal nex ) BGZCGHZUMDHZAIZJ
      ZBKZCUQLZBMURLUOUSBDNOUOBMDNPNENQRSBDUATUOUNUPLZJUSUOUNUOUNUDZUTUOUNUBVAU
      OUNLZIUPUOUNUCAVBUOFUEUFUGUNUPUHUIUJUQBUKTUL $.
  $}

  $( The intersection of the universal class is empty.  (Contributed by NM,
     11-Sep-2008.) $)
  intv $p |- |^| _V = (/) $=
    ( c0 cvv wcel cint wceq 0ex int0el ax-mp ) ABCBDAEFBGH $.

  ${
    $d x y z A $.
    axpweq.1 $e |- A e. _V $.
    $( Two equivalent ways to express the Power Set Axiom.  Note that ~ ax-pow
       is not used by the proof.  (Contributed by NM, 22-Jun-2009.) $)
    axpweq $p |- ( ~P A e. _V
                <-> E. x A. y ( A. z ( z e. y -> z e. A ) -> y e. x ) ) $=
      ( cpw cvv wcel cv wex wel wi wal pwidg wceq pweq eleq2d spcegv wss bitri
      mpd elex exlimiv impbii vex elpw2 pwss dfss2 imbi1i albii exbii ) DFZGHZU
      LAIZFZHZAJZCBKCIDHLCMZBAKZLZBMZAJUMUQUMULULFZHZUQULGNUPVCAULGUNULOUOVBULU
      NULPQRUAUPUMAULUOUBUCUDUPVAAUPULUNSZVAULUNAUEUFVDBIZDSZUSLZBMVABDUNUGVGUT
      BVFURUSCVEDUHUIUJTTUKT $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  ZF Set Theory - add the Axiom of Power Sets
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Power Sets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w $.
    $( Axiom of Power Sets.  An axiom of Zermelo-Fraenkel set theory.  It
       states that a set ` y ` exists that includes the power set of a given
       set ` x ` i.e. contains every subset of ` x ` .  The variant ~ axpow2
       uses explicit subset notation.  A version using class notation is
       ~ pwex .  (Contributed by NM, 21-Jun-1993.) $)
    ax-pow $a |- E. y A. z ( A. w ( w e. z -> w e. x ) -> z e. y ) $.

    $( Axiom of Power Sets expressed with the fewest number of different
       variables.  (Contributed by NM, 14-Aug-2003.) $)
    zfpow $p |- E. x A. y ( A. x ( x e. y -> x e. z ) -> y e. x ) $=
      ( vw wel wal wex ax-pow weq elequ1 imbi12d cbvalv imbi1i albii exbii mpbi
      wi ) DBEZDCEZQZDFZBAEZQZBFZAGABEZACEZQZAFZUBQZBFZAGCABDHUDUJAUCUIBUAUHUBT
      UGDADAIRUESUFDABJDACJKLMNOP $.

    $( A variant of the Axiom of Power Sets ~ ax-pow using subset notation.
       Problem in [BellMachover] p. 466.  (Contributed by NM, 4-Jun-2006.) $)
    axpow2 $p |- E. y A. z ( z C_ x -> z e. y ) $=
      ( vw cv wss wel wi wal wex ax-pow dfss2 imbi1i albii exbii mpbir ) CEZAEZ
      FZCBGZHZCIZBJDCGDAGHDIZTHZCIZBJABCDKUBUEBUAUDCSUCTDQRLMNOP $.

    $( A variant of the Axiom of Power Sets ~ ax-pow .  For any set ` x ` ,
       there exists a set ` y ` whose members are exactly the subsets of ` x `
       i.e. the power set of ` x ` .  Axiom Pow of [BellMachover] p. 466.
       (Contributed by NM, 4-Jun-2006.) $)
    axpow3 $p |- E. y A. z ( z C_ x <-> z e. y ) $=
      ( cv wss wel wb wal wex axpow2 bm1.3ii bicom albii exbii mpbir ) CDADEZCB
      FZGZCHZBIQPGZCHZBIPBCABCJKSUABRTCPQLMNO $.
  $}

  ${
    $d x y z $.
    $( Every set is an element of some other set.  See ~ elALT for a shorter
       proof using more axioms.  (Contributed by NM, 4-Jan-2002.)  (Proof
       shortened by Andrew Salmon, 25-Jul-2011.) $)
    el $p |- E. y x e. y $=
      ( vz wel wi wal zfpow weq ax9 alrimiv ax8 embantd spimv eximii ) BCDBADEZ
      BFZCBDZEZCFABDZBBCAGRSCACAHZPQSTOBCABIJCABKLMN $.
  $}

  ${
    $d A x y z $.
    zfpowcl.1 $e |- A e. _V $.
    $( Power set axiom expressed in class notation.  Axiom 4 of [TakeutiZaring]
       p. 17.  (Contributed by NM, 21-Jun-1993.)  (Proof shortened by Andrew
       Salmon, 25-Jul-2011.) $)
    pwex $p |- ~P A e. _V $=
      ( vz vy vx cv cpw cvv wcel wceq pweq eleq1d wss cab df-pw wex wal bm1.3ii
      wb axpow2 abeq2 exbii mpbir issetri eqeltri vtocl ) CFZGZHIAGZHICABUGAJUH
      UIHUGAKLUHDFZUGMZDNZHDUGOEULEFZULJZEPUJUMIUKSDQZEPUKEDCEDTRUNUOEUKDUMUAUB
      UCUDUEUF $.
  $}

  $( The powerset of a setvar is a set.  (Contributed by BJ, 3-May-2021.) $)
  vpwex $p |- ~P x e. _V $=
    ( cv vex pwex ) ABACD $.

  ${
    $d x A $.
    $( Power set axiom expressed in class notation, with the sethood
       requirement as an antecedent.  Axiom 4 of [TakeutiZaring] p. 17.
       (Contributed by NM, 30-Oct-2003.) $)
    pwexg $p |- ( A e. V -> ~P A e. _V ) $=
      ( vx cv cpw cvv wcel wceq pweq eleq1d vpwex vtoclg ) CDZEZFGAEZFGCABMAHNO
      FMAIJCKL $.

    $( Existence of a class of subsets.  (Contributed by NM, 15-Jul-2006.)
       (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    abssexg $p |- ( A e. V -> { x | ( x C_ A /\ ph ) } e. _V ) $=
      ( wcel cpw cvv cv wss wa pwexg df-pw eleq1i simpl ss2abi ssexg mpan sylbi
      cab syl ) CDECFZGEZBHCIZAJZBSZGEZCDKUBUCBSZGEZUFUAUGGBCLMUEUGIUHUFUDUCBUC
      ANOUEUGGPQRT $.
  $}

  $( Alternate proof of ~ snex using Power Set ( ~ ax-pow ) instead of Pairing
     ( ~ ax-pr ).  Unlike in the proof of ~ zfpair , Replacement ( ~ ax-rep )
     is not needed.  (Contributed by NM, 7-Aug-1994.)  (Proof shortened by
     Andrew Salmon, 25-Jul-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  snexALT $p |- { A } e. _V $=
    ( cpw cvv wcel csn wss snsspw ssexg mpan wn pwexg con3i c0 snprc biimpi 0ex
    wceq syl6eqel syl pm2.61i ) ABZCDZAEZCDZUCUAFUBUDAGUCUACHIUBJACDZJZUDUEUBAC
    KLUFUCMCUFUCMQANOPRST $.

  $( The power set of the empty set (the ordinal 1) is a set.  See also
     ~ p0exALT .  (Contributed by NM, 23-Dec-1993.) $)
  p0ex $p |- { (/) } e. _V $=
    ( c0 cpw csn cvv pw0 0ex pwex eqeltrri ) ABACDEAFGH $.

  $( Alternate proof of ~ p0ex which is quite different and longer if ~ snexALT
     is expanded.  (Contributed by NM, 23-Dec-1993.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  p0exALT $p |- { (/) } e. _V $=
    ( c0 snexALT ) AB $.

  $( The power set of the power set of the empty set (the ordinal 2) is a set.
     (Contributed by NM, 24-Jun-1993.) $)
  pp0ex $p |- { (/) , { (/) } } e. _V $=
    ( c0 csn cpw cpr cvv pwpw0 p0ex pwex eqeltrri ) ABZCAJDEFJGHI $.

  $( The ordinal number 3 is a set, proved without the Axiom of Union ~ ax-un .
     (Contributed by NM, 2-May-2009.) $)
  ord3ex $p |- { (/) , { (/) } , { (/) , { (/) } } } e. _V $=
    ( c0 csn cpr ctp cun cvv df-tp cpw pwpr pp0ex pwex eqeltrri wss unss2 ax-mp
    snsspr2 ssexi eqeltri ) AABZASCZDTTBZEZFASTGUBTSBZTCZEZTHUEFASITJKLUAUDMUBU
    EMUCTPUAUDTNOQR $.

  ${
    $d w x y z $.
    $( At least two sets exist (or in terms of first-order logic, the universe
       of discourse has two or more objects).  Note that we may not substitute
       the same variable for both ` x ` and ` y ` (as indicated by the distinct
       variable requirement), for otherwise we would contradict ~ stdpc6 .

       This theorem is proved directly from set theory axioms (no set theory
       definitions) and does not use ~ ax-ext or ~ ax-sep .  See ~ dtruALT for
       a shorter proof using these axioms.

       The proof makes use of dummy variables ` z ` and ` w ` which do not
       appear in the final theorem.  They must be distinct from each other and
       from ` x ` and ` y ` .  In other words, if we were to substitute ` x `
       for ` z ` throughout the proof, the proof would fail.  (Contributed by
       NM, 7-Nov-2006.) $)
    dtru $p |- -. A. x x = y $=
      ( vw vz weq wn wex wal wel wa el ax-nul sp eximii mpbir2an ax9 ax7 spimev
      eeanv con3d con3dimp 2eximi wi equequ2 notbid syl6bi a1d pm2.61i exlimivv
      com12 mp2b exnal mpbi ) ABEZFZAGZUNAHFACIZADIZFZJZDGCGZCDEZFZDGCGUPVAUQCG
      USDGACKUSAHUSDDALUSAMNUQUSCDSOUTVCCDUQVBURVBUQURCDAPUJUAUBVCUPCDDBEZVCUPU
      CVDVCCBEZFZUPVDVBVEDBCUDUEVFUOACACEUNVEACBQTRUFVDFZUPVCVGUOADADEUNVDADBQT
      RUGUHUIUKUNAULUM $.
  $}

  ${
    $d x y $.
    $( This theorem shows that axiom ~ ax-c16 is redundant in the presence of
       theorem ~ dtru , which states simply that at least two things exist.
       This justifies the remark at ~ mmzfcnd.html#twoness (which links to this
       theorem).  (Proof modification is discouraged.)
       (New usage is discouraged.)  (Contributed by NM, 7-Nov-2006.) $)
    axc16b $p |- ( A. x x = y -> ( ph -> A. x ph ) ) $=
      ( weq wal wi dtru pm2.21i ) BCDBEAABEFBCGH $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Existential uniqueness implies there is a value for which the wff
       argument is false.  (Contributed by NM, 24-Oct-2010.) $)
    eunex $p |- ( E! x ph -> E. x -. ph ) $=
      ( vy wex weq wi wal wa wn weu dtru alim mtoi exlimiv adantl exnal 3imtr4i
      eu3v ) ABDZABCEZFBGZCDZHABGZIZABJAIBDUBUDSUAUDCUAUCTBGBCKATBLMNOABCRABPQ
      $.
  $}

  ${
    $d x y z $.  $d A y z $.
    $( Two ways to express single-valuedness of a class expression
       ` A ( x ) ` .  (Contributed by NM, 14-Oct-2010.) $)
    eusv1 $p |- ( E! y A. x y = A <-> E. y A. x y = A ) $=
      ( vz cv wceq wal weu wex wa wi sp eqtr3 syl2an gen2 eqeq1 albidv mpbiran2
      eu4 ) BEZCFZAGZBHUBBIUBDEZCFZAGZJTUCFZKZDGBGUGBDUBUAUDUFUEUAALUDALTUCCMNO
      UBUEBDUFUAUDATUCCPQSR $.
  $}

  ${
    $d x y z w $.  $d A y z w $.
    $( Even if ` x ` is free in ` A ` , it is effectively bound when
       ` A ( x ) ` is single-valued.  (Contributed by NM, 14-Oct-2010.)
       (Revised by Mario Carneiro, 14-Oct-2016.) $)
    eusvnf $p |- ( E! y A. x y = A -> F/_ x A ) $=
      ( vz vw cv wceq wal csb cvv wcel wi vex nfcv nfcsb1v nfeq2 csbeq1a eqeq2d
      spcgf ax-mp weu wex wnfc euex eqtr3d alrimivv sbnfc2 sylibr exlimiv syl )
      BFZCGZAHZBUAUMBUBACUCZUMBUDUMUNBUMADFZCIZAEFZCIZGZEHDHUNUMUSDEUMUKUPURUOJ
      KUMUKUPGZLDMULUTAUOJAUONAUKUPAUOCOPAFZUOGCUPUKAUOCQRSTUQJKUMUKURGZLEMULVB
      AUQJAUQNAUKURAUQCOPVAUQGCURUKAUQCQRSTUEUFADECUGUHUIUJ $.

    $( Two ways to say that ` A ( x ) ` is a set expression that does not
       depend on ` x ` .  (Contributed by Mario Carneiro, 18-Nov-2016.) $)
    eusvnfb $p |- ( E! y A. x y = A <-> ( F/_ x A /\ A e. _V ) ) $=
      ( wceq wal weu wnfc cvv wcel eusvnf wex euex eqvisset sps exlimiv syl jca
      cv wa isset nfcvd id nfeqd nf5rd eximdv syl5bi imp eusv1 sylibr impbii )
      BRZCDZAEZBFZACGZCHIZSZUNUOUPABCJUNUMBKZUPUMBLUMUPBULUPABCMNOPQUQURUNUOUPU
      RUPULBKUOURBCTUOULUMBUOULAUOAUKCUOAUKUAUOUBUCUDUEUFUGABCUHUIUJ $.
  $}

  ${
    $d x y $.  $d A y $.
    $( Two ways to express single-valuedness of a class expression
       ` A ( x ) ` .  (Contributed by NM, 14-Oct-2010.)  (Revised by Mario
       Carneiro, 18-Nov-2016.) $)
    eusv2i $p |- ( E! y A. x y = A -> E! y E. x y = A ) $=
      ( wceq wal weu wex nfeu1 nfcvd eusvnf nfeqd nfrd 19.2 impbid1 eubid ibir
      cv ) BQZCDZAEZBFZSAGZBFUAUBTBTBHUAUBTUASAUAARCUAARIABCJKLSAMNOP $.
  $}

  ${
    $d x y $.  $d A y $.
    eusv2.1 $e |- A e. _V $.
    $( Two ways to express single-valuedness of a class expression
       ` A ( x ) ` .  (Contributed by Mario Carneiro, 18-Nov-2016.) $)
    eusv2nf $p |- ( E! y E. x y = A <-> F/_ x A ) $=
      ( cv wceq wex weu wnfc wnf wal nfeu1 wi nfe1 nfeu wa isseti alrimi sylibr
      cvv 19.8a ancri eximii eupick mpan2 nf6 wcel wb dfnfc2 mpg eusvnfb eusv2i
      mpbiran2 sylbir impbii ) BECFZAGZBHZACIZURUPAJZBKZUSURUTBUQBLURUQUPMZAKUT
      URVBAUQABUPANOURUQUPPZBGVBUPVCBBCDQUPUQUPAUAUBUCUQUPBUDUERUPAUFSRCTUGZUSV
      AUHAABCTUIDUJSUSUPAKBHZURVEUSVDDABCUKUMABCULUNUO $.

    $( Two ways to express single-valuedness of a class expression
       ` A ( x ) ` .  (Contributed by NM, 15-Oct-2010.)  (Proof shortened by
       Mario Carneiro, 18-Nov-2016.) $)
    eusv2 $p |- ( E! y E. x y = A <-> E! y A. x y = A ) $=
      ( cv wceq wex weu wnfc wal eusv2nf cvv wcel eusvnfb mpbiran2 bitr4i ) BEC
      FZAGBHACIZQAJBHZABCDKSRCLMDABCNOP $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.  $d x y $.
    $( Two ways to express single-valuedness of a class expression
       ` C ( y ) ` .  (Contributed by NM, 16-Dec-2012.)  (Proof shortened by
       Mario Carneiro, 18-Nov-2016.)  (Proof shortened by JJ, 7-Aug-2021.) $)
    reusv1 $p |- ( E. y e. B ph -> ( E! x e. A A. y e. B ( ph -> x = C )
                   <-> E. x e. A A. y e. B ( ph -> x = C ) ) ) $=
      ( wrex cv wceq wi wral wmo wrmo wreu wb nfra1 nfmo wcel wal rsp syl6 reu5
      com3l alrimdv mo2icl rexlimi mormo rbaib 3syl ) ACEGABHFIZJZCEKZBLZULBDMZ
      ULBDNZULBDGZOAUMCEULCBUKCEPQCHERZAULUJJZBSUMUQAURBULUQAUJUKCETUCUDULBFUEU
      AUFULBDUGUOUPUNULBDUBUHUI $.

    $( Obsolete proof of ~ reusv1 as of 7-Aug-2021.  (Contributed by NM,
       16-Dec-2012.)  (Proof shortened by Mario Carneiro, 18-Nov-2016.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    reusv1OLD $p |- ( E. y e. B ph -> ( E! x e. A A. y e. B ( ph -> x = C )
                   <-> E. x e. A A. y e. B ( ph -> x = C ) ) ) $=
      ( wrex cv wceq wi wral wmo wrmo wreu wb nfra1 nfmo wcel wa wal impd com12
      rsp alrimiv moeq moim mpisyl ex rexlimi mormo reu5 rbaib 3syl ) ACEGABHFI
      ZJZCEKZBLZUPBDMZUPBDNZUPBDGZOAUQCEUPCBUOCEPQCHERZAUQVAASZUPUNJZBTUNBLUQVB
      VCBUPVBUNUPVAAUNUOCEUCUAUBUDBFUEUPUNBUFUGUHUIUPBDUJUSUTURUPBDUKULUM $.
  $}

  ${
    $d x y z A $.  $d x z B $.  $d x z C $.  $d x z ph $.
    $( Lemma for ~ reusv2 .  (Contributed by NM, 22-Oct-2010.)  (Proof
       shortened by Mario Carneiro, 19-Nov-2016.) $)
    reusv2lem1 $p |- ( A =/= (/) -> ( E! x A. y e. A x = B
                     <-> E. x A. y e. A x = B ) ) $=
      ( c0 wne cv wceq wral wmo weu wex wb wcel n0 nfra1 nfmo wi wal syl mo2icl
      rsp com12 alrimiv exlimi sylbi eu5 rbaib ) CEFZAGDHZBCIZAJZUKAKZUKALZMUIB
      GCNZBLULBCOUOULBUKBAUJBCPQUOUKUJRZASULUOUPAUKUOUJUJBCUBUCUDUKADUATUEUFUMU
      NULUKAUGUHT $.

    $( Lemma for ~ reusv2 .  (Contributed by NM, 27-Oct-2010.)  (Proof
       shortened by Mario Carneiro, 19-Nov-2016.)  (Proof shortened by JJ,
       7-Aug-2021.) $)
    reusv2lem2 $p |- ( E! x A. y e. A x = B -> E! x E. y e. A x = B ) $=
      ( vz cv wceq wral weu wrex wi c0 wn wex sylib wa simpr nfra1 adantr ex wb
      wal eunex exnal rzal alrimiv nsyl3 pm2.21d wcel rspa eqtr4d eqeq1 ralbidv
      wne biimprcd ad2antrr mpd exp31 rexlimd adantl r19.2z impbid exlimdv euex
      eubidv cbvexv impel mpbird pm2.61ine ) AFZDGZBCHZAIZVKBCJZAIZKCLCLGZVMVOV
      MVLAUBZVPVMVLMANVQMVLAUCVLAUDOVPVLAVKBCUEUFUGUHCLUNZVMVOVRVMPVOVMVRVMQVRE
      FZDGZBCHZENZVOVMUAZVMVRWAWCEVRWAWCVRWAPZVNVLAWDVNVLWAVNVLKVRWAVKVLBCVTBCR
      VKBCRWABFCUIZVKVLWAWEPZVKPZVJVSGZVLWGVJDVSWFVKQWFVTVKVTBCUJSUKWAWHVLKWEVK
      WHVLWAWHVKVTBCVJVSDULUMZUOUPUQURUSUTVRVLVNKWAVRVLVNVKBCVATSVBVETVCVMVLANW
      BVLAVDVLWAAEWIVFOVGVHTVI $.

    $( Obsolete proof of ~ reusv2lem2 as of 7-Aug-2021.  (Contributed by NM,
       27-Oct-2010.)  (Proof shortened by Mario Carneiro, 19-Nov-2016.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    reusv2lem2OLD $p |- ( E! x A. y e. A x = B -> E! x E. y e. A x = B ) $=
      ( vz cv wceq wral weu wrex wi c0 wal wn wex eunex sylib wa nfra1 ex exnal
      rzal alrimiv nsyl3 pm2.21d wne simpr wb euex ralbidv cbvexv nfv nfan wcel
      eqeq1 simprr rspa ad2ant2lr eqtr4d simplr syl5ibrcom exp32 rexlimd r19.2z
      mpd adantr impbid eubidv exlimdv syl5 imp mpbird pm2.61ine ) AFZDGZBCHZAI
      ZVOBCJZAIZKCLCLGZVQVSVQVPAMZVTVQVPNAOWANVPAPVPAUAQVTVPAVOBCUBUCUDUECLUFZV
      QVSWBVQRVSVQWBVQUGWBVQVSVQUHZVQEFZDGZBCHZEOZWBWCVQVPAOWGVPAUIVPWFAEVNWDGZ
      VOWEBCVNWDDUOUJZUKQWBWFWCEWBWFWCWBWFRZVRVPAWJVRVPWJVOVPBCWBWFBWBBULWEBCSU
      MVOBCSWJBFCUNZVOVPWJWKVORZRZWHVPWMVNDWDWJWKVOUPWFWKWEWBVOWEBCUQURUSWMVPWH
      WFWBWFWLUTWIVAVEVBVCWBVPVRKWFWBVPVRVOBCVDTVFVGVHTVIVJVKVLTVM $.

    $( Lemma for ~ reusv2 .  (Contributed by NM, 14-Dec-2012.)  (Proof
       shortened by Mario Carneiro, 19-Nov-2016.) $)
    reusv2lem3 $p |- ( A. y e. A B e. _V ->
          ( E! x E. y e. A x = B <-> E! x A. y e. A x = B ) ) $=
      ( cvv wcel wral cv wceq wrex weu wa simpr nfv nfeu1 nfan wi wex c0 ex wne
      euex rexn0 exlimiv r19.2z 3syl adantl nfra1 nfre1 nfeu impcom isset sylib
      rsp adantrr ancrd eximdv syldan eupick syl2an2 com3l ralrimd impbid eubid
      rspe imp mpbird reusv2lem2 impbid1 ) DEFZBCGZAHDIZBCJZAKZVLBCGZAKZVKVNVPV
      KVNLZVPVNVKVNMZVQVOVMAVKVNAVKANVMAOPVQVOVMVNVOVMQZVKVNVMARCSUAZVSVMAUBVMV
      TAVLBCUCUDVTVOVMVLBCUETUFUGVQVMVLBCVKVNBVJBCUHVMBAVLBCUIZUJPWABHCFZVQVMVL
      WBVQVMVLQZVQVNWBVMVLLZARZWCVRWBVQVLARZWEWBVKWFVNWBVKLVJWFVKWBVJVJBCUNUKAD
      ULUMUOWBWFWEWBVLWDAWBVLVMWBVLVMVLBCVETUPUQVFURVMVLAUSUTTVAVBVCVDVGTABCDVH
      VI $.

    $( Lemma for ~ reusv2 .  (Contributed by NM, 13-Dec-2012.) $)
    reusv2lem4 $p |- ( E! x e. A E. y e. B ( ph /\ x = C )
            <-> E! x A. y e. B ( ( C e. A /\ ph ) -> x = C ) ) $=
      ( vz cv wceq wa wrex wcel weu wi wral anass eleq1 nfv cvv wal wreu df-reu
      crab anbi1i anbi1d pm5.32ri bitr3i anbi2i 3bitr4ri rexbii2 r19.42v nfrab1
      csb rabid nfcv nfcsb1v nfeq2 csbeq1a eqeq2d cbvrexf 3bitr3i eubii wb elex
      ad2antrl sylbi rgen nfel1 eleq1d cbvralf mpbi reusv2lem3 ax-mp nfcri nfim
      df-ral imbi12d cbval imbi1i impexp bitri albii bitr4i 3bitr2i 3bitri ) AB
      HZFIZJZCEKZBDUAWFDLZWIJZBMWFCGHZFUMZIZGFDLZAJZCEUCZKZBMZWPWGNZCEOZBMZWIBD
      UBWKWRBWJWHJZCEKWGCWQKWKWRXCWGCEWQCHZELZWPJZWGJXEWPWGJZJXDWQLZWGJXEXCJXEW
      PWGPXHXFWGWPCEUNZUDXCXGXEXCWJAJZWGJXGWJAWGPWGXJWPWGWJWOAWFFDQUEUFUGUHUIUJ
      WJWHCEUKWGWNCGWQWPCEULZGWQUOZWGGRCWFWMCWLFUPZUQZXDWLIZFWMWFCWLFURZUSZUTVA
      VBWSWNGWQOZBMZXBWMSLZGWQOZWSXSVCFSLZCWQOYAYBCWQXHXFYBXIWOYBXEAFDVDVEVFVGY
      BXTCGWQXKXLYBGRCWMSXMVHXOFWMSXPVIVJVKBGWQWMVLVMXRXABXRWLWQLZWNNZGTXHWGNZC
      TZXAWNGWQVPYEYDCGYEGRYCWNCCGWQXKVNXNVOXOXHYCWGWNXDWLWQQXQVQVRYFXEWTNZCTXA
      YEYGCYEXFWGNYGXHXFWGXIVSXEWPWGVTWAWBWTCEVPWCWDVBWAWE $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x C $.
    $( Lemma for ~ reusv2 .  (Contributed by NM, 4-Jan-2013.)  (Proof shortened
       by Mario Carneiro, 19-Nov-2016.) $)
    reusv2lem5 $p |- ( ( A. y e. B C e. A /\ B =/= (/) )
          -> ( E! x e. A E. y e. B x = C <-> E! x e. A A. y e. B x = C ) ) $=
      ( wcel wral c0 wne wa wtru cv wceq wi weu wrex wreu wb tru eubidv syl6bbr
      biimt mpan2 ibar bitr3d eleq1 pm5.32ri ralimi ralbi syl r19.28zv sylan9bb
      biantrur rexbii reubii reusv2lem4 bitri df-reu 3bitr4g ) ECFZBDGZDHIZJUTK
      JZALZEMZNZBDGZAOZVDCFZVEBDGZJZAOZVEBDPZACQZVJACQVAVHVIVEJZBDGZAOVBVLVAVGV
      PAVAVFVORZBDGVGVPRUTVQBDUTVFUTVEJZVOUTVEVFVRUTKVEVFRSVCVEUBUCUTVEUDUEVEVI
      UTVDECUFUGUAUHVFVOBDUIUJTVBVPVKAVIVEBDUKTULVNKVEJZBDPZACQVHVMVTACVEVSBDKV
      ESUMUNUOKABCDEUPUQVJACURUS $.
  $}

  ${
    $d x y z A $.  $d x z B $.  $d x z C $.  $d x z ph $.
    $( Two ways to express single-valuedness of a class expression ` C ( y ) `
       that is constant for those ` y e. B ` such that ` ph ` .  The first
       antecedent ensures that the constant value belongs to the existential
       uniqueness domain ` A ` , and the second ensures that ` C ( y ) ` is
       evaluated for at least one ` y ` .  (Contributed by NM, 4-Jan-2013.)
       (Proof shortened by Mario Carneiro, 19-Nov-2016.) $)
    reusv2 $p |- ( ( A. y e. B ( ph -> C e. A ) /\ E. y e. B ph )
          -> ( E! x e. A E. y e. B ( ph /\ x = C )
                   <-> E! x e. A A. y e. B ( ph -> x = C ) ) ) $=
      ( vz wcel wi wral cv wceq wa wrex wreu nfv cbvralf imbi1i bitri bitr3i c0
      csb crab wb nfrab1 nfcv nfcsb1v nfel1 csbeq1a eleq1d rabid impexp ralbii2
      rabn0 reusv2lem5 nfeq2 eqeq2d cbvrexf anbi1i anass rexbii2 reubii 3bitr3g
      wne syl2anbr ) AFDHZIZCEJZCGKZFUBZDHZGACEUCZJZVLUAVDZABKZFLZMZCENZBDOZAVP
      IZCEJZBDOZUDACENVMVFCVLJVHVFVKCGVLACEUEZGVLUFZVFGPCVJDCVIFUGZUHCKZVILZFVJ
      DCVIFUIZUJQVFVGCVLEWFVLHZVFIWFEHZAMZVFIWJVGIWIWKVFACEUKZRWJAVFULSUMTACEUN
      VMVNMVOVJLZGVLNZBDOWMGVLJZBDOVSWBBGDVLVJUOWNVRBDWNVPCVLNVRVPWMCGVLWCWDVPG
      PZCVOVJWEUPZWGFVJVOWHUQZURVPVQCVLEWIVPMWKVPMWJVQMWIWKVPWLUSWJAVPUTSVATVBW
      OWABDWOVPCVLJWAVPWMCGVLWCWDWPWQWRQVPVTCVLEWIVPIWKVPIWJVTIWIWKVPWLRWJAVPUL
      SUMTVBVCVE $.
  $}

  ${
    $d x y z B $.  $d x z C $.  $d x y D $.  $d x z ph $.  $d x y ps $.
    reusv3.1 $e |- ( y = z -> ( ph <-> ps ) ) $.
    reusv3.2 $e |- ( y = z -> C = D ) $.
    $( Two ways of expressing existential uniqueness via an indirect equality.
       (Contributed by NM, 23-Dec-2012.) $)
    reusv3i $p |- ( E. x e. A A. y e. B ( ph -> x = C )
            -> A. y e. B A. z e. B ( ( ph /\ ps ) -> C = D ) ) $=
      ( cv wceq wi wral wa eqeq2d imbi12d cbvralv biimpi raaanv prth eqtr2 syl6
      2ralimi sylbir mpdan rexlimivw ) ACLZHMZNZDGOZABPZHIMZNZEGODGOZCFULBUIIMZ
      NZEGOZUPULUSUKURDEGDLELMZABUJUQJUTHIUIKQRSTULUSPUKURPZEGODGOUPUKURDEGUAVA
      UODEGGVAUMUJUQPUNAUJBUQUBUIHIUCUDUEUFUGUH $.

    $d x y z A $.
    $( Two ways to express single-valuedness of a class expression
       ` C ( y ) ` .  See ~ reusv1 for the connection to uniqueness.
       (Contributed by NM, 27-Dec-2012.) $)
    reusv3 $p |- ( E. y e. B ( ph /\ C e. A )
          -> ( A. y e. B A. z e. B ( ( ph /\ ps ) -> C = D )
                   <-> E. x e. A A. y e. B ( ph -> x = C ) ) ) $=
      ( wcel wa wrex wceq wi wral cv bitri ralbii eleq1d anbi12d nfra2 nfv nfim
      cbvrexv risset ralcom impexp bi2.04 r19.21v sylbi com3l imp31 eqeq1 eqcom
      rsp syl6bb imbi2d ralbidv syl5ibrcom reximdv com23 syl5bi expimpd rexlimi
      ex reusv3i impbid1 ) AHFLZMZDGNZABMHIOZPZEGQDGQZACRZHOZPZDGQZCFNZVLBIFLZM
      ZEGNVOVTPZVKWBDEGDRERZOZABVJWAJWEHIFKUAUBUFWBWCEGVOVTEVNDEGGUCVTEUDUEWDGL
      ZBWAWCWAVPIOZCFNZWFBMZWCCIFUGWIVOWHVTWIVOWHVTPWIVOMZWGVSCFWJVSWGAVMPZDGQZ
      WFBVOWLVOWFBWLVOBWLPZEGQZWFWMPVOVNDGQZEGQWNVNDEGGUHWOWMEGWOBWKPZDGQWMVNWP
      DGVNABVMPPWPABVMUIABVMUJSTBWKDGUKSTSWMEGUQULUMUNWGVRWKDGWGVQVMAWGVQIHOVMV
      PIHUOIHUPURUSUTVAVBVGVCVDVEVFULABCDEFGHIJKVHVI $.
  $}

  ${
    $d x y A $.  $d x B $.
    eusv4.1 $e |- B e. _V $.
    $( Two ways to express single-valuedness of a class expression
       ` B ( x ) ` .  (Contributed by NM, 27-Oct-2010.) $)
    eusv4 $p |- ( E! x E. y e. A x = B <-> E! x A. y e. A x = B ) $=
      ( cvv wcel cv wceq wrex weu wral wb reusv2lem3 a1i mprg ) DFGZAHDIZBCJAKR
      BCLAKMBCABCDNQBHCGEOP $.
  $}

  ${
    $d x A $.  $d y ph $.  $d x ps $.  $d x y $.
    alxfr.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by NM,
       18-Feb-2007.) $)
    alxfr $p |- ( ( A. y A e. B /\ A. x E. y x = A ) ->
                ( A. x ph <-> A. y ps ) ) $=
      ( wcel wal cv wceq wex wa wi spcgv com12 alimdv adantr nfa1 nfv sp exlimd
      syl5ibrcom adantl impbid ) EFHZDIZCJEKZDLZCIZMACIZBDIZUGUKULNUJUKUGULUKUF
      BDUFUKBABCEFGOPQPRUJULUKNUGULUJUKULUIACULUHADBDSADTULAUHBBDUAGUCUBQPUDUE
      $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x C $.  $d x ch $.  $d x y ph $.  $d y ps $.
    ralxfrd.1 $e |- ( ( ph /\ y e. C ) -> A e. B ) $.
    ralxfrd.2 $e |- ( ( ph /\ x e. B ) -> E. y e. C x = A ) $.
    ralxfrd.3 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by NM,
       15-Aug-2014.)  (Proof shortened by Mario Carneiro, 19-Nov-2016.)  (Proof
       shortened by JJ, 7-Aug-2021.) $)
    ralxfrd $p |- ( ph -> ( A. x e. B ps <-> A. y e. C ch ) ) $=
      ( wral cv wcel wa wceq wb adantlr ralrimdva wrex rspcdv r19.29 com23 impd
      wi exbiri rexlimdvw syl5 adantr mpan2d impbid ) ABDGLZCEHLZAULCEHAEMHNZOB
      CDFGIADMZFPZBCQUNKRUASAUMBDGAUOGNZOUMUPEHTZBJAUMUROZBUEUQUSCUPOZEHTABCUPE
      HUBAUTBEHACUPBAUPCBAUPBCKUFUCUDUGUHUIUJSUK $.

    $( Obsolete proof of ~ ralxfrd as of 7-Aug-2021.  (Contributed by NM,
       15-Aug-2014.)  (Proof shortened by Mario Carneiro, 19-Nov-2016.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    ralxfrdOLD $p |- ( ph -> ( A. x e. B ps <-> A. y e. C ch ) ) $=
      ( wral cv wcel wa wceq wb adantlr ralrimdva wrex rspcdv r19.29 wi biimprd
      expimpd ancomsd ad2antrr rexlimdva syl5 mpan2d impbid ) ABDGLZCEHLZAULCEH
      AEMHNZOBCDFGIADMZFPZBCQUNKRUASAUMBDGAUOGNZOZUMUPEHTZBJUMUSOCUPOZEHTURBCUP
      EHUBURUTBEHAUTBUCUQUNAUPCBAUPCBAUPOBCKUDUEUFUGUHUIUJSUK $.

    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by FL,
       10-Apr-2007.)  (Revised by Mario Carneiro, 15-Aug-2014.) $)
    rexxfrd $p |- ( ph -> ( E. x e. B ps <-> E. y e. C ch ) ) $=
      ( wn wral wrex cv wceq wa notbid ralxfrd dfrex2 3bitr4g ) ABLZDGMZLCLZEHM
      ZLBDGNCEHNAUCUEAUBUDDEFGHIJADOFPQBCKRSRBDGTCEHTUA $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x C $.  $d x ch $.  $d x y ph $.  $d y ps $.
    ralxfr2d.1 $e |- ( ( ph /\ y e. C ) -> A e. V ) $.
    ralxfr2d.2 $e |- ( ph -> ( x e. B <-> E. y e. C x = A ) ) $.
    ralxfr2d.3 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by Mario
       Carneiro, 20-Aug-2014.) $)
    ralxfr2d $p |- ( ph -> ( A. x e. B ps <-> A. y e. C ch ) ) $=
      ( cv wcel wa wceq wex elisset syl wi wrex biimprd r19.23v sylibr r19.21bi
      wral eleq1 mpbidi exlimdv mpd biimpa ralxfrd ) ABCDEFGHAEMHNOZDMZFPZDQZFG
      NZUMFINUPJDFIRSUMUOUQDUOUNGNZUQUMAUOURTZEHAUOEHUAZURTUSEHUFAURUTKUBUOUREH
      UCUDUEUNFGUGUHUIUJAURUTKUKLUL $.

    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by Mario
       Carneiro, 20-Aug-2014.)  (Proof shortened by Mario Carneiro,
       19-Nov-2016.) $)
    rexxfr2d $p |- ( ph -> ( E. x e. B ps <-> E. y e. C ch ) ) $=
      ( wn wral wrex cv wceq wa notbid dfrex2 ralxfr2d 3bitr4g ) ABMZDGNZMCMZEH
      NZMBDGOCEHOAUDUFAUCUEDEFGHIJKADPFQRBCLSUASBDGTCEHTUB $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x C $.  $d x ch $.  $d x y ph $.  $d y ps $.
    ralxfrd2.1 $e |- ( ( ph /\ y e. C ) -> A e. B ) $.
    ralxfrd2.2 $e |- ( ( ph /\ x e. B ) -> E. y e. C x = A ) $.
    ralxfrd2.3 $e |- ( ( ph /\ y e. C /\ x = A ) -> ( ps <-> ch ) ) $.
    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  Variant of ~ ralxfrd .
       (Contributed by Alexander van der Vekens, 25-Apr-2018.) $)
    ralxfrd2 $p |- ( ph -> ( A. x e. B ps <-> A. y e. C ch ) ) $=
      ( wral cv wcel wa wceq wb 3expa ralrimdva wrex rspcdv r19.29 exbiri com23
      ad4ant134 impd rexlimdva syl5 mpan2d impbid ) ABDGLZCEHLZAUKCEHAEMHNZOBCD
      FGIAUMDMZFPZBCQZKRUASAULBDGAUNGNZOZULUOEHTZBJULUSOCUOOZEHTURBCUOEHUBURUTB
      EHURUMOZCUOBVAUOCBVAUOBCAUMUOUPUQKUEUCUDUFUGUHUISUJ $.

    $( Transfer existence from a variable ` x ` to another variable ` y `
       contained in expression ` A ` .  Variant of ~ rexxfrd .  (Contributed by
       Alexander van der Vekens, 25-Apr-2018.) $)
    rexxfrd2 $p |- ( ph -> ( E. x e. B ps <-> E. y e. C ch ) ) $=
      ( wn wral wrex cv wcel wceq w3a notbid dfrex2 ralxfrd2 3bitr4g ) ABLZDGMZ
      LCLZEHMZLBDGNCEHNAUDUFAUCUEDEFGHIJAEOHPDOFQRBCKSUASBDGTCEHTUB $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x A $.  $d x y B $.  $d x C $.
    ralxfr.1 $e |- ( y e. C -> A e. B ) $.
    ralxfr.2 $e |- ( x e. B -> E. y e. C x = A ) $.
    ralxfr.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by NM,
       10-Jun-2005.)  (Revised by Mario Carneiro, 15-Aug-2014.) $)
    ralxfr $p |- ( A. x e. B ph <-> A. y e. C ps ) $=
      ( wral wb wtru cv wcel adantl wceq wrex ralxfrd trud ) ACFKBDGKLMABCDEFGD
      NGOEFOMHPCNZFOUAEQZDGRMIPUBABLMJPST $.

    $( Alternate proof of ~ ralxfr which does not use ~ ralxfrd .  (Contributed
       by NM, 10-Jun-2005.)  (Revised by Mario Carneiro, 15-Aug-2014.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ralxfrALT $p |- ( A. x e. B ph <-> A. y e. C ps ) $=
      ( wral cv wcel wi rspcv syl com12 ralrimiv wceq wrex nfv biimprcd rexlimd
      nfra1 rsp syl6 syl5 impbii ) ACFKZBDGKZUIBDGDLGMZUIBUKEFMUIBNHABCEFJOPQRU
      JACFCLZFMULESZDGTUJAIUJUMADGBDGUDADUAUJUKBUMANBDGUEUMABJUBUFUCUGRUH $.

    $( Transfer existence from a variable ` x ` to another variable ` y `
       contained in expression ` A ` .  (Contributed by NM, 10-Jun-2005.)
       (Revised by Mario Carneiro, 15-Aug-2014.) $)
    rexxfr $p |- ( E. x e. B ph <-> E. y e. C ps ) $=
      ( wrex wn wral dfrex2 cv wceq notbid ralxfr xchbinxr bitr4i ) ACFKALZCFMZ
      LBDGKZACFNUCBLZDGMUBBDGNUAUDCDEFGHICOEPABJQRST $.
  $}

  ${
    $d x A $.  $d x y D $.  $d y ph $.  $d y ps $.  $d x ch $.
    rabxfrd.1 $e |- F/_ y B $.
    rabxfrd.2 $e |- F/_ y C $.
    rabxfrd.3 $e |- ( ( ph /\ y e. D ) -> A e. D ) $.
    rabxfrd.4 $e |- ( x = A -> ( ps <-> ch ) ) $.
    rabxfrd.5 $e |- ( y = B -> A = C ) $.
    $( Class builder membership after substituting an expression ` A `
       (containing ` y ` ) for ` x ` in the class expression ` ch ` .
       (Contributed by NM, 16-Jan-2012.) $)
    rabxfrd $p |- ( ( ph /\ B e. D ) ->
                 ( C e. { x e. D | ps } <-> B e. { y e. D | ch } ) ) $=
      ( wcel crab wb wa wi imp cv ibibr sylib anbi1d elrab rabid 3bitr4g eleq2d
      ex rabbidva nfcv nfel1 wceq eleq1d elrabf nfrab1 nfel eleq1 pm5.32 sylibr
      3bitr3g ) AGIOZHBDIPZOZGCEIPZOZQZAVBVDRZVBVFRZQVBVGSAGFVCOZEIPZOGEUAZVEOZ
      EIPZOVHVIAVKVNGAVJVMEIAVLIOZRZFIOZCRVOCRVJVMVPVQVOCAVOVQVOQZAVOVQSVOVRSAV
      OVQLUIVOVQUBUCTUDBCDFIMUECEIUFUGUJUHVJVDEGIJEIUKZEHVCKULVLGUMFHVCNUNUOVMV
      FEGIJVSEGVEJCEIUPUQVLGVEURUOVAVBVDVFUSUTT $.
  $}

  ${
    $d x A $.  $d x y D $.  $d y ph $.  $d x ps $.
    rabxfr.1 $e |- F/_ y B $.
    rabxfr.2 $e |- F/_ y C $.
    rabxfr.3 $e |- ( y e. D -> A e. D ) $.
    rabxfr.4 $e |- ( x = A -> ( ph <-> ps ) ) $.
    rabxfr.5 $e |- ( y = B -> A = C ) $.
    $( Class builder membership after substituting an expression ` A `
       (containing ` y ` ) for ` x ` in the class expression ` ph ` .
       (Contributed by NM, 10-Jun-2005.) $)
    rabxfr $p |- ( B e. D ->
                 ( C e. { x e. D | ph } <-> B e. { y e. D | ps } ) ) $=
      ( wtru wcel crab wb tru cv adantl rabxfrd mpan ) NFHOGACHPOFBDHPOQRNABCDE
      FGHIJDSHOEHONKTLMUAUB $.
  $}

  ${
    $d x y ph $.  $d x ps $.  $d x A $.  $d x y B $.
    reuxfr2d.1 $e |- ( ( ph /\ y e. B ) -> A e. B ) $.
    reuxfr2d.2 $e |- ( ( ph /\ x e. B ) -> E* y e. B x = A ) $.
    $( Transfer existential uniqueness from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by NM,
       16-Jan-2012.)  (Revised by NM, 16-Jun-2017.) $)
    reuxfr2d $p |- ( ph
        -> ( E! x e. B E. y e. B ( x = A /\ ps ) <-> E! y e. B ps ) ) $=
      ( cv wa wrex wreu wrmo wral wi wcel syl ancom 2reuswap wmo wceq ralrimiva
      rmoan rmobii sylib df-rmo ralbii moeq moani an12 bitri mobii mpbi impbid1
      sylbir a1i mprg wb biidd ceqsrexv reubidva bitrd ) ACIZEUAZBJZDFKCFLZVECF
      KZDFLZBDFLAVFVHAVEDFMZCFNVFVHOAVICFAVCFPZJZBVDJZDFMZVIVKVDDFMVMHVDBDFUCQV
      LVEDFBVDRUDUEUBVECDFFSQVJVEJZCTZVHVFOZDFVODFNVECFMZDFNVPVQVODFVECFUFUGVED
      CFFSUOVODIFPZVJBJZVDJZCTVOVDVSCCEUHUIVTVNCVTVDVSJVNVSVDRVDVJBUJUKULUMUPUQ
      UNAVGBDFAVRJEFPVGBURGBBCEFVDBUSUTQVAVB $.
  $}

  ${
    $d x ph $.  $d x A $.  $d x y B $.
    reuxfr2.1 $e |- ( y e. B -> A e. B ) $.
    reuxfr2.2 $e |- ( x e. B -> E* y e. B x = A ) $.
    $( Transfer existential uniqueness from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  (Contributed by NM,
       14-Nov-2004.)  (Revised by NM, 16-Jun-2017.) $)
    reuxfr2 $p |- ( E! x e. B E. y e. B ( x = A /\ ph ) <-> E! y e. B ph ) $=
      ( cv wceq wa wrex wreu wb wtru wcel adantl wrmo reuxfr2d trud ) BHZDIZAJC
      EKBELACELMNABCDECHEODEONFPTEOUACEQNGPRS $.
  $}

  ${
    $d x y ph $.  $d y ps $.  $d x ch $.  $d x A $.  $d x y B $.
    reuxfrd.1 $e |- ( ( ph /\ y e. B ) -> A e. B ) $.
    reuxfrd.2 $e |- ( ( ph /\ x e. B ) -> E! y e. B x = A ) $.
    reuxfrd.3 $e |- ( x = A -> ( ps <-> ch ) ) $.
    $( Transfer existential uniqueness from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  Use ~ reuhypd to
       eliminate the second hypothesis.  (Contributed by NM, 16-Jan-2012.) $)
    reuxfrd $p |- ( ph -> ( E! x e. B ps <-> E! y e. B ch ) ) $=
      ( wreu cv wceq wa wrex wcel reurex syl biantrurd r19.41v pm5.32i reubidva
      rexbii bitr3i syl6bb wrmo reurmo reuxfr2d bitrd ) ABDGKDLZFMZCNZEGOZDGKCE
      GKABUMDGAUJGPNZBUKEGOZBNZUMUNUOBUNUKEGKZUOIUKEGQRSUPUKBNZEGOUMUKBEGTURULE
      GUKBCJUAUCUDUEUBACDEFGHUNUQUKEGUFIUKEGUGRUHUI $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x A $.  $d x y B $.
    reuxfr.1 $e |- ( y e. B -> A e. B ) $.
    reuxfr.2 $e |- ( x e. B -> E! y e. B x = A ) $.
    reuxfr.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Transfer existential uniqueness from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  Use ~ reuhyp to
       eliminate the second hypothesis.  (Contributed by NM, 14-Nov-2004.) $)
    reuxfr $p |- ( E! x e. B ph <-> E! y e. B ps ) $=
      ( wreu wb wtru cv wcel adantl wceq reuxfrd trud ) ACFJBDFJKLABCDEFDMFNEFN
      LGOCMZFNSEPDFJLHOIQR $.
  $}

  ${
    $d y ph $.  $d y B $.  $d y C $.  $d x y $.
    reuhypd.1 $e |- ( ( ph /\ x e. C ) -> B e. C ) $.
    reuhypd.2 $e |- ( ( ph /\ x e. C /\ y e. C ) -> ( x = A <-> y = B ) ) $.
    $( A theorem useful for eliminating the restricted existential uniqueness
       hypotheses in ~ riotaxfrd .  (Contributed by NM, 16-Jan-2012.) $)
    reuhypd $p |- ( ( ph /\ x e. C ) -> E! y e. C x = A ) $=
      ( cv wcel wa wceq weu wreu cvv elexd eueq sylib eleq1 syl5ibrcom pm4.71rd
      wb 3expa pm5.32da bitr4d eubidv mpbid df-reu sylibr ) ABIZFJZKZCIZFJZUJDL
      ZKZCMZUOCFNULUMELZCMZUQULEOJUSULEFGPCEQRULURUPCULURUNURKUPULURUNULUNUREFJ
      GUMEFSTUAULUNUOURAUKUNUOURUBHUCUDUEUFUGUOCFUHUI $.
  $}

  ${
    $d y B $.  $d y C $.  $d x y $.
    reuhyp.1 $e |- ( x e. C -> B e. C ) $.
    reuhyp.2 $e |- ( ( x e. C /\ y e. C ) -> ( x = A <-> y = B ) ) $.
    $( A theorem useful for eliminating the restricted existential uniqueness
       hypotheses in ~ reuxfr .  (Contributed by NM, 15-Nov-2004.) $)
    reuhyp $p |- ( x e. C -> E! y e. C x = A ) $=
      ( wtru cv wcel wceq wreu tru adantl wb 3adant1 reuhypd mpan ) HAIZEJZSCKZ
      BELMHABCDETDEJHFNTBIZEJUAUBDKOHGPQR $.
  $}

  ${
    $d w x y z $.
    $( A setvar variable is not free from itself.  The proof relies on ~ dtru ,
       that is, it is not true in a one-element domain.  (Contributed by Mario
       Carneiro, 8-Oct-2016.) $)
    nfnid $p |- -. F/_ x x $=
      ( vy vz vw cv wnfc wel wal weq dtru ax-ext sps alimi mto wnf df-nfc sbnf2
      wb wsb elsb4 bibi12i 2albii bitri albii alrot3 3bitri mtbir ) AAEZFZBCGZB
      DGZRZBHZDHZCHZUOCDIZCHCDJUNUPCUMUPDCDBKLMNUIBAGZAOZBHULDHCHZBHUOABUHPURUS
      BURUQACSZUQADSZRZDHCHUSUQACDQVBULCDUTUJVAUKCABTDABTUAUBUCUDULBCDUEUFUG $.
  $}

  $( The "distinctor" expression ` -. A. x x = y ` , stating that ` x ` and
     ` y ` are not the same variable, can be written in terms of ` F/ ` in the
     obvious way.  This theorem is not true in a one-element domain, because
     then ` F/_ x y ` and ` A. x x = y ` will both be true.  (Contributed by
     Mario Carneiro, 8-Oct-2016.) $)
  nfcvb $p |- ( F/_ x y <-> -. A. x x = y ) $=
    ( cv wnfc weq wal wn nfnid eqidd drnfc1 mtbiri con2i nfcvf impbii ) ABCZDZA
    BEAFZGQPQPBODBHABOOQOIJKLABMN $.

  ${
    $d x y $.
    $( Alternate proof of ~ dtru which requires more axioms but is shorter and
       may be easier to understand.

       Assuming that ZF set theory is consistent, we cannot prove this theorem
       unless we specify that ` x ` and ` y ` be distinct.  Specifically,
       theorem ~ spcev requires that ` x ` must not occur in the subexpression
       ` -. y = { (/) } ` in step 4 nor in the subexpression ` -. y = (/) ` in
       step 9.  The proof verifier will require that ` x ` and ` y ` be in a
       distinct variable group to ensure this.  You can check this by deleting
       the $d statement in set.mm and rerunning the verifier, which will print
       a detailed explanation of the distinct variable violation.  (Contributed
       by NM, 15-Jul-1994.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    dtruALT $p |- -. A. x x = y $=
      ( cv wceq wn wex wal c0 csn 0inp0 p0ex eqeq2 notbid spcev syl 0ex pm2.61i
      exnal eqcom albii xchbinx mpbi ) BCZACZDZEZAFZUDUCDZAGZEUCHDZUGUJUCHIZDZE
      ZUGUCJUFUMAUKKUDUKDUEULUDUKUCLMNOUFUJEAHPUDHDUEUJUDHUCLMNQUGUEAGUIUEARUEU
      HAUCUDSTUAUB $.
  $}

  ${
    $d x y $.
    dtrucor.1 $e |- x = y $.
    $( Corollary of ~ dtru .  This example illustrates the danger of blindly
       trusting the standard Deduction Theorem without accounting for free
       variables: the theorem form of this deduction is not valid, as shown by
       ~ dtrucor2 .  (Contributed by NM, 27-Jun-2002.) $)
    dtrucor $p |- x =/= y $=
      ( weq cv wne wal dtru pm2.21i mpg ) ABDZAEBEFZAKAGLABHICJ $.
  $}

  ${
    dtrucor2.1 $e |- ( x = y -> x =/= y ) $.
    $( The theorem form of the deduction ~ dtrucor leads to a contradiction, as
       mentioned in the "Wrong!" example at ~ mmdeduction.html#bad .
       (Contributed by NM, 20-Oct-2007.) $)
    dtrucor2 $p |- ( ph /\ -. ph ) $=
      ( weq wex wn wa ax6e wi cv necon2bi pm2.01 ax-mp nex pm2.24ii ) BCEZBFAAG
      HBCIQBQQGZJRQBKCKDLQMNOP $.
  $}

  ${
    $d x y $.
    $( Demonstration of a theorem (scheme) that requires (meta)variables ` x `
       and ` y ` to be distinct, but no others.  It bundles the theorem schemes
       ` E. x ( x = y -> x e. x ) ` and ` E. x ( x = y -> y e. x ) ` .  Compare
       ~ dvdemo2 .  ("Bundles" is a term introduced by Raph Levien.)
       (Contributed by NM, 1-Dec-2006.) $)
    dvdemo1 $p |- E. x ( x = y -> z e. x ) $=
      ( weq wn wel wi wex wal dtru exnal mpbir pm2.21 eximii ) ABDZEZOCAFZGAPAH
      OAIEABJOAKLOQMN $.
  $}

  ${
    $d x z $.
    $( Demonstration of a theorem (scheme) that requires (meta)variables ` x `
       and ` z ` to be distinct, but no others.  It bundles the theorem schemes
       ` E. x ( x = x -> z e. x ) ` and ` E. x ( x = y -> y e. x ) ` .  Compare
       ~ dvdemo1 .  (Contributed by NM, 1-Dec-2006.) $)
    dvdemo2 $p |- E. x ( x = y -> z e. x ) $=
      ( wel weq wi el ax-1 eximii ) CADZABEZJFACAGJKHI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the Axiom of Pairing
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x z w v $.  $d y z w v $.
    $( The Axiom of Pairing of Zermelo-Fraenkel set theory.  Axiom 2 of
       [TakeutiZaring] p. 15.  In some textbooks this is stated as a separate
       axiom; here we show it is redundant since it can be derived from the
       other axioms.

       This theorem should not be referenced by any proof other than ~ axpr .
       Instead, use ~ zfpair2 below so that the uses of the Axiom of Pairing
       can be more easily identified.  (Contributed by NM, 18-Oct-1995.)
       (New usage is discouraged.) $)
    zfpair $p |- { x , y } e. _V $=
      ( vw vz vv cv cpr weq wo cab cvv dfpr2 c0 wceq wex isseti mpbiran equequ2
      wa 19.41v csn 19.43 prlem2 exbii 0ex p0ex orbi12i 3bitr3ri abbii eqeltrri
      pp0ex wi wal 0inp0 prlem1 alrimdv spimev orcom syl7bi jaoi zfrep4 eqeltri
      con2i ) AFZBFZGCAHZCBHZIZCJZKCVDVELVIDFZMNZVJMUAZNZIZVKVFSZVMVGSZIZSZDOZC
      JKVHVSCVQDOVODOZVPDOZIVSVHVOVPDUBVQVRDVKVFVMVGUCUDVTVFWAVGVTVKDOVFDMUEPVK
      VFDTQWAVMDOVGDVLUFPVMVGDTQUGUHUIVNVQDCEMVLGVNDJKDMVLLUKUJVKVQCEHZULZCUMZE
      OVMVKWDEAEAHZVKWCCWEVKVFVMVGWBEACRVJUNZUOUPUQVMWDEBEBHZVMWCCVQVPVOIWGVMWB
      VOVPURWGVMVGVKVFWBEBCRVKVMWFVCUOUSUPUQUTVAVBVB $.

    $( Unabbreviated version of the Axiom of Pairing of ZF set theory, derived
       as a theorem from the other axioms.

       This theorem should not be referenced by any proof.  Instead, use
       ~ ax-pr below so that the uses of the Axiom of Pairing can be more
       easily identified.  (Contributed by NM, 14-Nov-2006.)
       (New usage is discouraged.) $)
    axpr $p |- E. z A. w ( ( w = x \/ w = y ) -> w e. z ) $=
      ( cv cpr wceq wo wcel wi wal zfpair isseti dfcleq vex bibi2i biimpr sylbi
      wb elpr alimi eximii ) CEZAEZBEZFZGZDEZUDGUHUEGHZUHUCIZJZDKZCCUFABLMUGUJU
      HUFIZSZDKULDUCUFNUNUKDUNUJUISUKUMUIUJUHUDUEDOTPUJUIQRUARUB $.

    $( The Axiom of Pairing of ZF set theory.  It was derived as theorem ~ axpr
       above and is therefore redundant, but we state it as a separate axiom
       here so that its uses can be identified more easily.  (Contributed by
       NM, 14-Nov-2006.) $)
    ax-pr $a |- E. z A. w ( ( w = x \/ w = y ) -> w e. z ) $.
    $( $j restatement 'ax-pr' of 'axpr'; $)

    $( Derive the abbreviated version of the Axiom of Pairing from ~ ax-pr .
       See ~ zfpair for its derivation from the other axioms.  (Contributed by
       NM, 14-Nov-2006.) $)
    zfpair2 $p |- { x , y } e. _V $=
      ( vz vw cv cpr wceq wex wcel wo wal ax-pr bm1.3ii dfcleq vex bibi2i albii
      wb elpr bitri exbii mpbir issetri ) CAEZBEZFZCEZUFGZCHDEZUGIZUIUDGUIUEGJZ
      RZDKZCHUKCDABCDLMUHUMCUHUJUIUFIZRZDKUMDUGUFNUOULDUNUKUJUIUDUEDOSPQTUAUBUC
      $.
  $}

  ${
    $d x A $.
    $( A singleton is a set.  Theorem 7.12 of [Quine] p. 51, proved using
       Extensionality, Separation, Null Set, and Pairing.  See also ~ snexALT .
       (Contributed by NM, 7-Aug-1994.)  (Revised by Mario Carneiro,
       19-May-2013.)  (Proof modification is discouraged.) $)
    snex $p |- { A } e. _V $=
      ( vx cvv wcel csn cpr dfsn2 cv wceq preq12 anidms eleq1d zfpair2 syl5eqel
      vtoclg wn c0 snprc biimpi 0ex syl6eqel pm2.61i ) ACDZAEZCDUCUDAAFZCAGBHZU
      FFZCDUECDBACUFAIZUGUECUHUGUEIUFUFAAJKLBBMONUCPZUDQCUIUDQIARSTUAUB $.
  $}

  ${
    $d x A $.  $d x y B $.
    $( The Axiom of Pairing using class variables.  Theorem 7.13 of [Quine]
       p. 51.  By virtue of its definition, an unordered pair remains a set
       (even though no longer a pair) even when its components are proper
       classes (see ~ prprc ), so we can dispense with hypotheses requiring
       them to be sets.  (Contributed by NM, 15-Jul-1993.) $)
    prex $p |- { A , B } e. _V $=
      ( vx vy cvv wcel cpr wi wceq preq2 eleq1d zfpair2 vtoclg preq1 syl5ib csn
      cv wn snex syl6eqel vtocleg prprc1 prprc2 pm2.61nii ) AEFZBEFZABGZEFZUFUH
      HCAEUFCQZBGZEFZUIAIZUHUIDQZGZEFUKDBEUMBIUNUJEUMBUIJKCDLMULUJUGEUIABNKOUAU
      ERUGBPEABUBBSTUFRUGAPEABUCASTUD $.
  $}

  ${
    $d x y $.
    $( Alternate proof of ~ el , shorter but requiring more axioms.
       (Contributed by NM, 4-Jan-2002.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    elALT $p |- E. y x e. y $=
      ( cv csn wcel wex vex snid snex eleq2 spcev ax-mp ) ACZMDZEZMBCZEZBFMAGHQ
      OBNMIPNMJKL $.
  $}

  ${
    $d x y $.
    $( Alternate proof of ~ dtru using ~ ax-pr instead of ~ ax-pow .
       (Contributed by Mario Carneiro, 31-Aug-2015.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    dtruALT2 $p |- -. A. x x = y $=
      ( cv wceq wn wex wal c0 csn 0inp0 snex eqeq2 notbid spcev syl 0ex pm2.61i
      exnal eqcom albii xchbinx mpbi ) BCZACZDZEZAFZUDUCDZAGZEUCHDZUGUJUCHIZDZE
      ZUGUCJUFUMAUKHKUDUKDUEULUDUKUCLMNOUFUJEAHPUDHDUEUJUDHUCLMNQUGUEAGUIUEARUE
      UHAUCUDSTUAUB $.
  $}

  $( A singleton of a set belongs to the power class of a class containing the
     set.  (Contributed by Alan Sare, 25-Aug-2011.) $)
  snelpwi $p |- ( A e. B -> { A } e. ~P B ) $=
    ( wcel csn wss cpw snssi snex elpw sylibr ) ABCADZBEKBFCABGKBAHIJ $.

  ${
    snelpw.1 $e |- A e. _V $.
    $( A singleton of a set belongs to the power class of a class containing
       the set.  (Contributed by NM, 1-Apr-1998.) $)
    snelpw $p |- ( A e. B <-> { A } e. ~P B ) $=
      ( wcel csn wss cpw snss snex elpw bitr4i ) ABDAEZBFLBGDABCHLBAIJK $.
  $}

  $( A pair of two sets belongs to the power class of a class containing those
     two sets and vice versa.  (Contributed by AV, 8-Jan-2020.) $)
  prelpw $p |- ( ( A e. V /\ B e. W )
                 -> ( ( A e. C /\ B e. C ) <-> { A , B } e. ~P C ) ) $=
    ( wcel wa cpr wss cpw prssg prex elpw syl6bbr ) ADFBEFGACFBCFGABHZCIOCJFABC
    DEKOCABLMN $.


  $( A pair of two sets belongs to the power class of a class containing those
     two sets.  (Contributed by Thierry Arnoux, 10-Mar-2017.)  (Proof shortened
     by AV, 23-Oct-2021.) $)
  prelpwi $p |- ( ( A e. C /\ B e. C ) -> { A , B } e. ~P C ) $=
    ( wcel wa cpr cpw prelpw ibi ) ACDBCDEABFCGDABCCCHI $.

  ${
    $d x y z $.
    $( A theorem similar to extensionality, requiring the existence of a
       singleton.  Exercise 8 of [TakeutiZaring] p. 16.  (Contributed by NM,
       10-Aug-1993.) $)
    rext $p |- ( A. z ( x e. z -> y e. z ) -> x = y ) $=
      ( cv wcel wi wal csn wceq vsnid snex eleq2 imbi12d spcv mpi velsn equcomi
      sylbi syl ) ADZCDZEZBDZUAEZFZCGZUCTHZEZTUCIZUFTUGEZUHAJUEUJUHFCUGTKUAUGIU
      BUJUDUHUAUGTLUAUGUCLMNOUHUCTIUIBTPBAQRS $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Classes are subclasses if and only if their power classes are
       subclasses.  Exercise 18 of [TakeutiZaring] p. 18.  (Contributed by NM,
       13-Oct-1996.) $)
    sspwb $p |- ( A C_ B <-> ~P A C_ ~P B ) $=
      ( vx wss cpw wcel sstr2 com12 vex elpw 3imtr4g ssrdv csn ssel snex bitr4i
      cv snss 3imtr3g impbii ) ABDZAEZBEZDZUACUBUCUACQZADZUEBDZUEUBFUEUCFUFUAUG
      UEABGHUEACIZJUEBUHJKLUDCABUDUEMZUBFZUIUCFZUEAFZUEBFZUBUCUINUJUIADULUIAUEO
      ZJUEAUHRPUKUIBDUMUIBUNJUEBUHRPSLT $.
  $}

  ${
    $d A x y $.
    $( A class equals the union of its power class.  Exercise 6(a) of
       [Enderton] p. 38.  (Contributed by NM, 14-Oct-1996.)  (Proof shortened
       by Alan Sare, 28-Dec-2008.) $)
    unipw $p |- U. ~P A = A $=
      ( vx vy cpw cuni cv wcel wa wex eluni elelpwi exlimiv sylbi vsnid snelpwi
      csn elunii sylancr impbii eqriv ) BADZEZABFZUBGZUCAGZUDUCCFZGUFUAGHZCIUEC
      UCUAJUGUECUCUFAKLMUEUCUCPZGUHUAGUDBNUCAOUCUHUAQRST $.
  $}

  $( The union of the universe is the universe.  Exercise 4.12(c) of
     [Mendelson] p. 235.  (Contributed by NM, 14-Sep-2003.) $)
  univ $p |- U. _V = _V $=
    ( cvv cpw cuni pwv unieqi unipw eqtr3i ) ABZCACAHADEAFG $.

  $( Membership of a power class.  Exercise 10 of [Enderton] p. 26.
     (Contributed by NM, 13-Jan-2007.) $)
  pwel $p |- ( A e. B -> ~P A e. ~P ~P U. B ) $=
    ( wcel cpw cuni wss elssuni sspwb sylib cvv wb pwexg elpwg syl mpbird ) ABC
    ZADZBEZDZDCZQSFZPARFUAABGARHIPQJCTUAKABLQSJMNO $.

  $( A class is transitive iff its power class is transitive.  (Contributed by
     Alan Sare, 25-Aug-2011.)  (Revised by Mario Carneiro, 15-Jun-2014.) $)
  pwtr $p |- ( Tr A <-> Tr ~P A ) $=
    ( cpw cuni wss wtr unipw sseq1i df-tr dftr4 3bitr4ri ) ABZCZKDAKDKEAELAKAFG
    KHAIJ $.

  ${
    $d A x $.  $d B x $.
    $( An extensionality-like principle defining subclass in terms of subsets.
       (Contributed by NM, 30-Jun-2004.) $)
    ssextss $p |- ( A C_ B <-> A. x ( x C_ A -> x C_ B ) ) $=
      ( wss cpw cv wcel wi wal sspwb dfss2 selpw imbi12i albii 3bitri ) BCDBEZC
      EZDAFZPGZRQGZHZAIRBDZRCDZHZAIBCJAPQKUAUDASUBTUCABLACLMNO $.

    $( An extensionality-like principle that uses the subset instead of the
       membership relation: two classes are equal iff they have the same
       subsets.  (Contributed by NM, 30-Jun-2004.) $)
    ssext $p |- ( A = B <-> A. x ( x C_ A <-> x C_ B ) ) $=
      ( wss wa cv wi wal wceq wb ssextss anbi12i eqss albiim 3bitr4i ) BCDZCBDZ
      EAFZBDZRCDZGAHZTSGAHZEBCISTJAHPUAQUBABCKACBKLBCMSTANO $.

    $( Negation of subclass relationship.  Compare ~ nss .  (Contributed by NM,
       30-Jun-2004.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    nssss $p |- ( -. A C_ B <-> E. x ( x C_ A /\ -. x C_ B ) ) $=
      ( cv wss wn wa wex wi wal exanali ssextss xchbinxr bicomi ) ADZBEZOCEZFGA
      HZBCEZFRPQIAJSPQAKABCLMN $.
  $}

  $( Classes are equal if and only if their power classes are equal.  Exercise
     19 of [TakeutiZaring] p. 18.  (Contributed by NM, 13-Oct-1996.) $)
  pweqb $p |- ( A = B <-> ~P A = ~P B ) $=
    ( wss wa cpw wceq sspwb anbi12i eqss 3bitr4i ) ABCZBACZDAEZBEZCZNMCZDABFMNF
    KOLPABGBAGHABIMNIJ $.

  ${
    $d x A $.
    intid.1 $e |- A e. _V $.
    $( The intersection of all sets to which a set belongs is the singleton of
       that set.  (Contributed by NM, 5-Jun-2009.) $)
    intid $p |- |^| { x | A e. x } = { A } $=
      ( cv wcel cab cint csn cvv wss snex eleq2 intmin3 ax-mp wi elintab mpgbir
      snid id snssi eqssi ) BADZEZAFGZBHZUEIEUDUEJBKUCBUEEAUEIUBUEBLBCRMNBUDEZU
      EUDJUFUCUCOAUCABCPUCSQBUDTNUA $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( "At most one" existence implies a class abstraction exists.
       (Contributed by NM, 30-Dec-1996.) $)
    moabex $p |- ( E* x ph -> { x | ph } e. _V ) $=
      ( vy wmo weq wi wal wex cab cvv wcel mo2v csn wss abss velsn imbi2i albii
      cv bitri snex ssex sylbir exlimiv sylbi ) ABDABCEZFZBGZCHABIZJKZABCLUHUJC
      UHUICSZMZNZUJUMABSULKZFZBGUHABULOUOUGBUNUFABUKPQRTUIULUKUAUBUCUDUE $.
  $}

  $( Restricted "at most one" existence implies a restricted class abstraction
     exists.  (Contributed by NM, 17-Jun-2017.) $)
  rmorabex $p |- ( E* x e. A ph -> { x e. A | ph } e. _V ) $=
    ( cv wcel wa wmo cab cvv wrmo crab moabex df-rmo df-rab eleq1i 3imtr4i ) BD
    CEAFZBGQBHZIEABCJABCKZIEQBLABCMSRIABCNOP $.

  $( The abstraction of a wff with existential uniqueness exists.  (Contributed
     by NM, 25-Nov-1994.) $)
  euabex $p |- ( E! x ph -> { x | ph } e. _V ) $=
    ( weu wmo cab cvv wcel eumo moabex syl ) ABCABDABEFGABHABIJ $.

  ${
    $d x y A $.
    $( A nonempty class (even if proper) has a nonempty subset.  (Contributed
       by NM, 23-Aug-2003.) $)
    nnullss $p |- ( A =/= (/) -> E. x ( x C_ A /\ x =/= (/) ) ) $=
      ( vy c0 wne cv wcel wex wss wa n0 csn vex snss snnz snex wceq sseq1 neeq1
      sylbi anbi12d spcev mpan2 exlimiv ) BDECFZBGZCHAFZBIZUGDEZJZAHZCBKUFUKCUF
      UELZBIZUKUEBCMZNUMULDEZUKUEUNOUJUMUOJAULUEPUGULQUHUMUIUOUGULBRUGULDSUAUBU
      CTUDT $.
  $}

  ${
    $d x y z A $.  $d y z ph $.
    $( Restricted existence in a class (even if proper) implies restricted
       existence in a subset.  (Contributed by NM, 23-Aug-2003.) $)
    exss $p |- ( E. x e. A ph -> E. y ( y C_ A /\ E. x e. y ph ) ) $=
      ( vz wrex cv wcel wa cab wex wss crab c0 wne df-rab rabn0 sylbi wsb bitri
      neeq1i 3bitr3i csn vex snss ssab2 sstr2 mpi simpr wceq equsb1 velsn sbbii
      mpbir jctil df-clab sban eleq2i 3imtr4i ne0i syl sylib snex sseq1 anbi12d
      n0 rexeq spcev syl2anc exlimiv ) ABDFZEGZBGZDHZAIZBJZHZEKZCGZDLZABVSFZIZC
      KZABDMZNOVPNOVKVRWDVPNABDPUAABDQEVPVFUBVQWCEVQVLUCZDLZABWEFZWCVQWEVPLZWFV
      LVPEUDUEWHVPDLWFABDUFWEVPDUGUHRVQABWEMZNOZWGVQVLWIHZWJVNBESZABESZIZVMWEHZ
      BESZWMIZVQWKWNWMWPWLWMUIWPVMVLUJZBESBEUKWOWRBEBVLULUMUNUOVQVOBESWNVOEBUPV
      NABEUQTWKVLWOAIZBJZHZWQWIWTVLABWEPURXAWSBESWQWSEBUPWOABEUQTTUSWIVLUTVAABW
      EQVBWBWFWGICWEVLVCVSWEUJVTWFWAWGVSWEDVDABVSWEVGVEVHVIVJR $.
  $}

  $( An ordered pair of classes is a set.  Exercise 7 of [TakeutiZaring] p. 16.
     (Contributed by NM, 18-Aug-1993.)  (Revised by Mario Carneiro,
     26-Apr-2015.) $)
  opex $p |- <. A , B >. e. _V $=
    ( cop cvv wcel wa csn cpr c0 cif dfopif prex 0ex ifex eqeltri ) ABCADEBDEFZ
    AGZABHZHZIJDABKPSIQRLMNO $.

  $( An ordered triple of classes is a set.  (Contributed by NM,
     3-Apr-2015.) $)
  otex $p |- <. A , B , C >. e. _V $=
    ( cotp cop cvv df-ot opex eqeltri ) ABCDABEZCEFABCGJCHI $.

  $( Characterization of the elements of an ordered pair.  Closed form of
     ~ elop .  (Contributed by BJ, 22-Jun-2019.)  (Avoid depending on this
     detail.) $)
  elopg $p |- ( ( A e. V /\ B e. W ) ->
                   ( C e. <. A , B >. <-> ( C = { A } \/ C = { A , B } ) ) ) $=
    ( wcel wa cop csn cpr wceq wo wb dfopg eleq2 snex prex elpr2 syl6bb syl ) A
    DFBEFGABHZAIZABJZJZKZCUAFZCUBKCUCKLZMABDENUEUFCUDFUGUAUDCOCUBUCAPABQRST $.

  ${
    elop.1 $e |- B e. _V $.
    elop.2 $e |- C e. _V $.
    $( Characterization of the elements of an ordered pair.  Exercise 3 of
       [TakeutiZaring] p. 15.  (Contributed by NM, 15-Jul-1993.)  (Revised by
       Mario Carneiro, 26-Apr-2015.)  Remove an extraneous hypothesis.
       (Revised by BJ, 25-Dec-2020.)  (Avoid depending on this detail.) $)
    elop $p |- ( A e. <. B , C >. <-> ( A = { B } \/ A = { B , C } ) ) $=
      ( cvv wcel cop csn wceq cpr wo wb elopg mp2an ) BFGCFGABCHGABIJABCKJLMDEB
      CAFFNO $.
  $}

  ${
    opi1.1 $e |- A e. _V $.
    opi1.2 $e |- B e. _V $.
    $( One of the two elements in an ordered pair.  (Contributed by NM,
       15-Jul-1993.)  (Revised by Mario Carneiro, 26-Apr-2015.)  (Avoid
       depending on this detail.) $)
    opi1 $p |- { A } e. <. A , B >. $=
      ( csn cpr cop snex prid1 dfop eleqtrri ) AEZLABFZFABGLMAHIABCDJK $.

    $( One of the two elements of an ordered pair.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 26-Apr-2015.)  (Avoid
       depending on this detail.) $)
    opi2 $p |- { A , B } e. <. A , B >. $=
      ( cpr csn cop prex prid2 dfop eleqtrri ) ABEZAFZLEABGMLABHIABCDJK $.
  $}

  ${
    opeluu.1 $e |- A e. _V $.
    opeluu.2 $e |- B e. _V $.
    $( Each member of an ordered pair belongs to the union of the union of a
       class to which the ordered pair belongs.  Lemma 3D of [Enderton] p. 41.
       (Contributed by NM, 31-Mar-1995.)  (Revised by Mario Carneiro,
       27-Feb-2016.) $)
    opeluu $p |- ( <. A , B >. e. C ->
                 ( A e. U. U. C /\ B e. U. U. C ) ) $=
      ( cop wcel cuni cpr prid1 opi2 elunii mpan sylancr prid2 jca ) ABFZCGZACH
      ZHZGZBTGZRAABIZGUCSGZUAABDJUCQGRUDABDEKUCQCLMZAUCSLNRBUCGUDUBABEOUEBUCSLN
      P $.
  $}

  ${
    op1stb.1 $e |- A e. _V $.
    op1stb.2 $e |- B e. _V $.
    $( Extract the first member of an ordered pair.  Theorem 73 of [Suppes]
       p. 42.  (See ~ op2ndb to extract the second member, ~ op1sta for an
       alternate version, and ~ op1st for the preferred version.)  (Contributed
       by NM, 25-Nov-2003.) $)
    op1stb $p |- |^| |^| <. A , B >. = A $=
      ( cop cint csn cpr dfop inteqi cin snex prex intpr wss wceq snsspr1 df-ss
      mpbi eqtri intsn ) ABEZFZFAGZFAUCUDUCUDABHZHZFZUDUBUFABCDIJUGUDUEKZUDUDUE
      ALABMNUDUEOUHUDPABQUDUERSTTJACUAT $.
  $}

  $( Two classes are always in relation by ` _V ` .  This is simply equivalent
     to ` <. A , B >. e. _V ` , and does not imply that ` _V ` is a relation:
     see ~ nrelv .  (Contributed by Scott Fenton, 11-Apr-2012.) $)
  brv $p |- A _V B $=
    ( cvv wbr cop wcel opex df-br mpbir ) ABCDABECFABGABCHI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordered pair theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( An ordered pair is nonempty iff the arguments are sets.  (Contributed by
     NM, 24-Jan-2004.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  opnz $p |- ( <. A , B >. =/= (/) <-> ( A e. _V /\ B e. _V ) ) $=
    ( cop c0 wne cvv wcel wa opprc necon1ai csn cpr dfopg snex prnz a1i eqnetrd
    impbii ) ABCZDEAFGBFGHZTSDABIJTSAKZABLZLZDABFFMUCDETUAUBANOPQR $.

  ${
    opth1.1 $e |- A e. _V $.
    opth1.2 $e |- B e. _V $.
    $( An ordered pair is nonempty if the arguments are sets.  (Contributed by
       Mario Carneiro, 26-Apr-2015.) $)
    opnzi $p |- <. A , B >. =/= (/) $=
      ( cop c0 wne cvv wcel opnz mpbir2an ) ABEFGAHIBHICDABJK $.

    $( Equality of the first members of equal ordered pairs.  (Contributed by
       NM, 28-May-2008.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    opth1 $p |- ( <. A , B >. = <. C , D >. -> A = C ) $=
      ( cop wceq csn wcel opi1 id syl5eleq cpr wi sneqr a1i cvv oprcl syl eleq2
      simpld prid1g syl5ibrcom elsni eqcomd syl6 wo dfopg eleqtrd elpri mpjaod
      wa ) ABGZCDGZHZAIZUOJZACHZUPUQUNUOABEFKUPLMURUQCIZHZUSUQCDNZHZVAUSOURACEP
      QURVCCUQJZUSURVDVCCVBJZURCRJZVEURVFDRJZCDUQSZUBCDRUCTUQVBCUAUDVDCACAUEUFU
      GURUQUTVBNZJVAVCUHURUQUOVIURLURVFVGUMUOVIHVHCDRRUITUJUQUTVBUKTULT $.

    $d x B $.  $d x C $.  $d x D $.
    $( The ordered pair theorem.  If two ordered pairs are equal, their first
       elements are equal and their second elements are equal.  Exercise 6 of
       [TakeutiZaring] p. 16.  Note that ` C ` and ` D ` are not required to be
       sets due our specific ordered pair definition.  (Contributed by NM,
       28-May-1995.) $)
    opth $p |- ( <. A , B >. = <. C , D >. <-> ( A = C /\ B = D ) ) $=
      ( vx cop wceq wa cvv wcel cpr csn syl eqtr3d dfopg prex preqr2 wi opi1 id
      opth1 syl5eleq oprcl simprd opeq1d simpld sylancl cv preq2 eqeq2d imbi12d
      eqeq2 vex vtoclg sylc jca opeq12 impbii ) ABHZCDHZIZACIZBDIZJVCVDVEABCDEF
      UCZVCDKLZCBMZCDMZIZVEVCCKLZVGVCANZVBLVKVGJZVCVLVAVBABEFUAVCUBZUDCDVLUEOZU
      FVCCNZVHMZVPVIMZIVJVCVBVQVRVCCBHZVBVQVCVAVSVBVCACBVFUGVNPVCVKBKLVSVQIVCVK
      VGVOUHFCBKKQUIPVCVMVBVRIVOCDKKQOPVHVIVPCBRCDRSOVHCGUJZMZIZBVTIZTVJVETGDKV
      TDIZWBVJWCVEWDWAVIVHVTDCUKULVTDBUNUMBVTCFGUOSUPUQURABCDUSUT $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d x y D $.
    $( Ordered pair theorem. ` C ` and ` D ` are not required to be sets under
       our specific ordered pair definition.  (Contributed by NM, 14-Oct-2005.)
       (Revised by Mario Carneiro, 26-Apr-2015.) $)
    opthg $p |- ( ( A e. V /\ B e. W ) ->
                 ( <. A , B >. = <. C , D >. <-> ( A = C /\ B = D ) ) ) $=
      ( vx vy cv cop wceq wa wb opeq1 eqeq1d eqeq1 anbi1d bibi12d opeq2 vex
      anbi2d opth vtocl2g ) GIZHIZJZCDJZKZUDCKZUEDKZLZMAUEJZUGKZACKZUJLZMABJZUG
      KZUNBDKZLZMGHABEFUDAKZUHUMUKUOUTUFULUGUDAUENOUTUIUNUJUDACPQRUEBKZUMUQUOUS
      VAULUPUGUEBASOVAUJURUNUEBDPUARUDUECDGTHTUBUC $.
  $}

  $( Equality of the first members of equal ordered pairs.  Closed form of
     ~ opth1 .  (Contributed by AV, 14-Oct-2018.) $)
  opth1g $p |- ( ( A e. V /\ B e. W )
                 -> ( <. A , B >. = <. C , D >. -> A = C ) ) $=
    ( wcel wa cop wceq opthg simpl syl6bi ) AEGBFGHABICDIJACJZBDJZHNABCDEFKNOLM
    $.

  $( Ordered pair theorem.  (Contributed by NM, 14-Oct-2005.)  (Revised by
     Mario Carneiro, 26-Apr-2015.) $)
  opthg2 $p |- ( ( C e. V /\ D e. W ) ->
               ( <. A , B >. = <. C , D >. <-> ( A = C /\ B = D ) ) ) $=
    ( wcel wa cop wceq opthg eqcom anbi12i 3bitr4g ) CEGDFGHCDIZABIZJCAJZDBJZHP
    OJACJZBDJZHCDABEFKPOLSQTRACLBDLMN $.

  ${
    opth2.1 $e |- C e. _V $.
    opth2.2 $e |- D e. _V $.
    $( Ordered pair theorem.  (Contributed by NM, 21-Sep-2014.) $)
    opth2 $p |- ( <. A , B >. = <. C , D >. <-> ( A = C /\ B = D ) ) $=
      ( cvv wcel cop wceq wa wb opthg2 mp2an ) CGHDGHABICDIJACJBDJKLEFABCDGGMN
      $.
  $}

  $( Two ordered pairs are not equal iff their first components or their second
     components are not equal.  (Contributed by AV, 13-Dec-2018.) $)
  opthneg $p |- ( ( A e. V /\ B e. W ) -> ( <. A , B >. =/= <. C , D >.
                                            <-> ( A =/= C \/ B =/= D ) ) ) $=
    ( cop wne wceq wn wcel wa wo df-ne opthg notbid ianor orbi12i bitr4i syl6bb
    syl5bb ) ABGZCDGZHUBUCIZJZAEKBFKLZACHZBDHZMZUBUCNUFUEACIZBDIZLZJZUIUFUDULAB
    CDEFOPUMUJJZUKJZMUIUJUKQUGUNUHUOACNBDNRSTUA $.

  ${
    opthne.1 $e |- A e. _V $.
    opthne.2 $e |- B e. _V $.
    $( Two ordered pairs are not equal iff their first components or their
       second components are not equal.  (Contributed by AV, 13-Dec-2018.) $)
    opthne $p |- ( <. A , B >. =/= <. C , D >. <-> ( A =/= C \/ B =/= D ) ) $=
      ( cvv wcel cop wne wo wb opthneg mp2an ) AGHBGHABICDIJACJBDJKLEFABCDGGMN
      $.
  $}

  ${
    otth.1 $e |- A e. _V $.
    otth.2 $e |- B e. _V $.
    otth.3 $e |- R e. _V $.
    $( Ordered triple theorem, with triple expressed with ordered pairs.
       (Contributed by NM, 1-May-1995.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    otth2 $p |- ( <. <. A , B >. , R >. = <. <. C , D >. , S >. <->
                ( A = C /\ B = D /\ R = S ) ) $=
      ( cop wceq wa w3a opth anbi1i opex df-3an 3bitr4i ) ABJZCDJZKZEFKZLACKZBD
      KZLZUBLSEJTFJKUCUDUBMUAUEUBABCDGHNOSETFABPINUCUDUBQR $.

    $( Ordered triple theorem.  (Contributed by NM, 25-Sep-2014.)  (Revised by
       Mario Carneiro, 26-Apr-2015.) $)
    otth $p |- ( <. A , B , R >. = <. C , D , S >. <->
      ( A = C /\ B = D /\ R = S ) ) $=
      ( cotp wceq cop w3a df-ot eqeq12i otth2 bitri ) ABEJZCDFJZKABLELZCDLFLZKA
      CKBDKEFKMRTSUAABENCDFNOABCDEFGHIPQ $.
  $}

  $( Ordered triple theorem, closed form.  (Contributed by Alexander van der
     Vekens, 10-Mar-2018.) $)
  otthg $p |- ( ( A e. U /\ B e. V /\ C e. W )
                  -> ( <. A , B , C >. = <. D , E , F >.
                       <-> ( A = D /\ B = E /\ C = F ) ) ) $=
    ( cotp wceq cop wcel w3a df-ot eqeq12i wb wa cvv opthg anbi1d syl6bbr 3impa
    opex mpan df-3an sylan9bbr syl5bb ) ABCJZDFGJZKABLZCLZDFLZGLZKZAEMZBHMZCIMZ
    NADKZBFKZCGKZNZUIULUJUNABCODFGOPUPUQURUOVBQURUOUKUMKZVARZUPUQRZVBUKSMURUOVD
    QABUDUKCUMGSITUEVEVDUSUTRZVARVBVEVCVFVAABDFEHTUAUSUTVAUFUBUGUCUH $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    eqvinop.1 $e |- B e. _V $.
    eqvinop.2 $e |- C e. _V $.
    $( A variable introduction law for ordered pairs.  Analogue of Lemma 15 of
       [Monk2] p. 109.  (Contributed by NM, 28-May-1995.) $)
    eqvinop $p |- ( A = <. B , C >. <-> E. x E. y ( A = <. x , y >. /\
                  <. x , y >. = <. B , C >. ) ) $=
      ( cv cop wceq wa wex opth2 anbi2i ancom anass 3bitri exbii eqeq2d ceqsexv
      19.42v opeq2 opeq1 bitr2i ) CAHZBHZIZJZUGDEIZJZKZBLZALUEDJZCUEEIZJZKZALCU
      IJZULUPAULUMUFEJZUHKZKZBLUMUSBLZKUPUKUTBUKUHUMURKZKVBUHKUTUJVBUHUEUFDEFGM
      NUHVBOUMURUHPQRUMUSBUAVAUOUMUHUOBEGURUGUNCUFEUEUBSTNQRUOUQADFUMUNUICUEDEU
      CSTUD $.
  $}

  ${
    $d x z w A $.  $d y z w A $.  $d z w ph $.
    $( Substitution of class ` A ` for ordered pair ` <. x , y >. ` .
       (Contributed by NM, 27-Dec-1996.)  (Revised by Andrew Salmon,
       11-Jul-2011.)  (Proof shortened by Wolf Lammen, 25-Aug-2019.) $)
    copsexg $p |- ( A = <. x , y >. ->
                  ( ph <-> E. x E. y ( A = <. x , y >. /\ ph ) ) ) $=
      ( vz vw cv cop wceq wa wex wb wi vex 19.8a weq syl5 syl5bi weu euequ1 wal
      eqvinop 19.23bi opth anbi1i 2exbii nfe1 anim2i anassrs eximi biidd syl5ib
      ex drex1 anass exbii 19.40 nfeqf2 19.9d anim1d syl6 pm2.61i exlimi equcom
      wn eubii mpbi eupick mpan com12 sylan9 sylbi impbid anbi1d 2exbidv bibi2d
      eqeq1 imbi12d mpbiri adantr exlimivv pm2.43i ) DBGZCGZHZIZAWFAJZCKBKZLZWF
      DEGZFGZHZIZWLWEIZJZFKEKWFWIMZEFDWCWDBNCNUBWOWPEFWMWPWNWMWPWNAWNAJZCKZBKZL
      ZMWNAWSWNAWSWQWSCWRBOUCUMWNEBPZFCPZJZWSAMWJWKWCWDENFNUDZWSXCAJZCKZBKZXCAW
      QXEBCWNXCAXDUEUFXGXAXBAJZCKZJZBKZXCAXFXKBXJBUGCBPCUAZXFXKMXFXJCKXLXKXEXJC
      XAXBAXJXHXIXAXHCOUHUIUJXJXJCBXLXJUKUNULXLVEZXFXJXKXFXAXHJZCKZXMXJXEXNCXAX
      BAUOUPXOXACKZXIJXMXJXAXHCUQXMXPXAXIXAXMCCBEURUSUTQRXJBOVAVBVCXAXKXIXBAXKX
      AXIXABSZXKXAXIMBEPZBSXQBETXRXABBEVDVFVGXAXIBVHVIVJXIXBAXBCSZXIXBAMCFPZCSX
      SCFTXTXBCCFVDVFVGXBACVHVIVJVKQRVLVMWMWFWNWIWTDWLWEVQZWMWHWSAWMWGWQBCWMWFW
      NAYAVNVOVPVRVSVTWAVLWB $.
  $}

  ${
    $d x y ps $.  $d x y A $.  $d x y B $.
    $( Closed theorem form of ~ copsex2g .  (Contributed by NM,
       17-Feb-2013.) $)
    copsex2t $p |- ( ( A. x A. y ( ( x = A /\ y = B ) -> ( ph <-> ps ) )
      /\ ( A e. V /\ B e. W ) ) ->
                  ( E. x E. y ( <. A , B >. = <. x , y >. /\ ph ) <-> ps ) ) $=
      ( cv wceq wa wb wal wex cop wcel nfe1 nfv nfbi exlimd wi nfa1 nfa2 opeq12
      nfex copsexg eqcoms syl adantl 2sp bitr3d ex elisset anim12i eeanv sylibr
      imp impel ) CIZEJZDIZFJZKZABLZUAZDMZCMZVCDNZCNZEFOZUSVAOZJAKZDNZCNZBLZEGP
      ZFHPZKZVGVHVOCVFCUBVNBCVMCQBCRSVGVCVODVEDCUCVNBDVMDCVLDQUEBDRSVGVCVOVGVCK
      AVNBVCAVNLZVGVCVKVJJVSUSVAEFUDVSVJVKACDVJUFUGUHUIVGVCVDVECDUJUQUKULTTVRUT
      CNZVBDNZKVIVPVTVQWACEGUMDFHUMUNUTVBCDUOUPUR $.
  $}

  ${
    $d x y ps $.  $d x y A $.  $d x y B $.
    copsex2g.1 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( Implicit substitution inference for ordered pairs.  (Contributed by NM,
       28-May-1995.) $)
    copsex2g $p |- ( ( A e. V /\ B e. W ) ->
                  ( E. x E. y ( <. A , B >. = <. x , y >. /\ ph ) <-> ps ) ) $=
      ( wcel cv wceq wex cop wa wb elisset nfe1 nfv nfbi eeanv nfex copsexg syl
      opeq12 eqcoms bitr3d exlimi sylbir syl2an ) EGJCKZELZCMZDKZFLZDMZEFNZUKUN
      NZLAOZDMZCMZBPZFHJCEGQDFHQUMUPOULUOOZDMZCMVBULUOCDUAVDVBCVABCUTCRBCSTVCVB
      DVABDUTDCUSDRUBBDSTVCAVABVCURUQLAVAPZUKUNEFUEVEUQURACDUQUCUFUDIUGUHUHUIUJ
      $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.  $d x y z w D $.
    $d x y z w ps $.  $d x y z w R $.  $d x y z w S $.
    copsex4g.1 $e |- ( ( ( x = A /\ y = B ) /\ ( z = C /\ w = D ) ) ->
                     ( ph <-> ps ) ) $.
    $( An implicit substitution inference for 2 ordered pairs.  (Contributed by
       NM, 5-Aug-1995.) $)
    copsex4g $p |- ( ( ( A e. R /\ B e. S ) /\ ( C e. R /\ D e. S ) ) ->
                      ( E. x E. y E. z E. w ( ( <. A , B >. = <. x , y >. /\
                      <. C , D >. = <. z , w >. ) /\ ph ) <-> ps ) ) $=
      ( wcel wa cop cv wceq wex vex eqcom opth bitri anbi12i anbi1i a1i 4exbidv
      wb id cgsex4g bitrd ) GKNHLNOIKNJLNOOZGHPZCQZDQZPZRZIJPZEQZFQZPZRZOZAOZFS
      ESDSCSUNGRUOHROZUSIRUTJROZOZAOZFSESDSCSBULVDVHCDEFVDVHUHULVCVGAUQVEVBVFUQ
      UPUMRVEUMUPUAUNUOGHCTDTUBUCVBVAURRVFURVAUAUSUTIJETFTUBUCUDUEUFUGABVGCDEFG
      HIJKLVGUIMUJUK $.
  $}

  $( A property of ordered pairs.  (Contributed by Mario Carneiro,
     26-Apr-2015.) $)
  0nelop $p |- -. (/) e. <. A , B >. $=
    ( c0 cop wcel csn cpr wo id cvv wa oprcl dfopg syl eleqtrd elpri wne necomd
    wceq wn simpld snnzg prnzg jca neanior sylib pm2.65i ) CABDZEZCAFZSCABGZSHZ
    UICUJUKGZEULUICUHUMUIIUIAJEZBJEZKUHUMSABCLZABJJMNOCUJUKPNUICUJQZCUKQZKULTUI
    UQURUIUJCUIUNUJCQUIUNUOUPUAZAJUBNRUIUKCUIUNUKCQUSABJUCNRUDCUJCUKUEUFUG $.

  $( An ordered pair is equal to the ordered pair without the empty set.  This
     is because no ordered pair contains the empty set.  (Contributed by AV,
     15-Nov-2021.) $)
  opwo0id $p |- <. X , Y >. = ( <. X , Y >. \ { (/) } ) $=
    ( cop c0 csn cdif cin wceq wcel 0nelop disjsn mpbir disjdif2 ax-mp eqcomi
    wn ) ABCZDEZFZQQRGDHZSQHTDQIPABJQDKLQRMNO $.

  $( Equivalence of existence implied by equality of ordered pairs.
     (Contributed by NM, 28-May-2008.) $)
  opeqex $p |- ( <. A , B >. = <. C , D >. ->
    ( ( A e. _V /\ B e. _V ) <-> ( C e. _V /\ D e. _V ) ) ) $=
    ( cop wceq c0 wne cvv wcel wa neeq1 opnz 3bitr3g ) ABEZCDEZFOGHPGHAIJBIJKCI
    JDIJKOPGLABMCDMN $.

  $( Equivalence of existence implied by equality of ordered triples.
     (Contributed by NM, 26-Apr-2015.) $)
  oteqex2 $p |- ( <. <. A , B >. , C >. = <. <. R , S >. , T >. ->
    ( C e. _V <-> T e. _V ) ) $=
    ( cop wceq cvv wcel wa opeqex opex biantrur 3bitr4g ) ABGZCGDEGZFGHPIJZCIJZ
    KQIJZFIJZKSUAPCQFLRSABMNTUADEMNO $.

  $( Equivalence of existence implied by equality of ordered triples.
     (Contributed by NM, 28-May-2008.)  (Revised by Mario Carneiro,
     26-Apr-2015.) $)
  oteqex $p |- ( <. <. A , B >. , C >. = <. <. R , S >. , T >. ->
    ( ( A e. _V /\ B e. _V /\ C e. _V ) <->
      ( R e. _V /\ S e. _V /\ T e. _V ) ) ) $=
    ( cop wceq cvv wcel w3a wi simp3 a1i oteqex2 syl5ibr wb wa opex df-3an mpan
    opthg simprbda opeqex syl adantl anbi12d 3bitr4g expcom pm5.21ndd ) ABGZCGD
    EGZFGHZCIJZAIJZBIJZUNKZDIJZEIJZFIJZKZUQUNLUMUOUPUNMNVAUNUMUTURUSUTMABCDEFOZ
    PUNUMUQVAQUNUMRZUOUPRZUNRURUSRZUTRUQVAVCVDVEUNUTVCUKULHZVDVEQUNUMVFCFHZUKIJ
    UNUMVFVGRQABSUKCULFIIUBUAUCABDEUDUEUMUNUTQUNVBUFUGUOUPUNTURUSUTTUHUIUJ $.

  ${
    opcom.1 $e |- A e. _V $.
    opcom.2 $e |- B e. _V $.
    $( An ordered pair commutes iff its members are equal.  (Contributed by NM,
       28-May-2009.) $)
    opcom $p |- ( <. A , B >. = <. B , A >. <-> A = B ) $=
      ( cop wceq wa opth eqcom anbi2i anidm 3bitri ) ABEBAEFABFZBAFZGMMGMABBACD
      HNMMBAIJMKL $.
  $}

  ${
    $d x y A $.  $d y B $.
    moop2.1 $e |- B e. _V $.
    $( "At most one" property of an ordered pair.  (Contributed by NM,
       11-Apr-2004.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    moop2 $p |- E* x A = <. B , x >. $=
      ( vy cv cop wceq wmo csb wa wal eqtr2 vex opth simprbi syl gen2 nfcsb1v
      wi nfcv nfop nfeq2 csbeq1a id opeq12d eqeq2d mo4f mpbir ) BCAFZGZHZAIULBA
      EFZCJZUMGZHZKZUJUMHZTZELALUSAEUQUKUOHZURBUKUOMUTCUNHURCUJUNUMDANOPQRULUPA
      EABUOAUNUMAUMCSAUMUAUBUCURUKUOBURCUNUJUMAUMCUDURUEUFUGUHUI $.
  $}

  ${
    opeqsn.1 $e |- A e. _V $.
    opeqsn.2 $e |- B e. _V $.
    opeqsn.3 $e |- C e. _V $.
    $( Equivalence for an ordered pair equal to a singleton.  (Contributed by
       NM, 3-Jun-2008.) $)
    opeqsn $p |- ( <. A , B >. = { C } <-> ( A = B /\ C = { A } ) ) $=
      ( cop csn wceq cpr dfop eqeq1i snex prex preqsn eqcom anbi2i bitri 3bitri
      wa anidm anbi1i dfsn2 preq2 syl5req eqeq1d syl6bb pm5.32i ) ABGZCHZIAHZAB
      JZJZUJIUKULIZULCIZTZABIZCUKIZTZUIUMUJABDEKLUKULCAMABNFOUPUQUOTUSUNUQUOUNU
      LUKIUQBAIZTZUQUKULPABADEDOVAUQUQTUQUTUQUQBAPQUQUARSUBUQUOURUQUOUKCIURUQUL
      UKCUQUKAAJULAUCABAUDUEUFUKCPUGUHRS $.
  $}

  ${
    opeqpr.1 $e |- A e. _V $.
    opeqpr.2 $e |- B e. _V $.
    opeqpr.3 $e |- C e. _V $.
    opeqpr.4 $e |- D e. _V $.
    $( Equivalence for an ordered pair equal to an unordered pair.
       (Contributed by NM, 3-Jun-2008.)  (Avoid depending on this detail.) $)
    opeqpr $p |- ( <. A , B >. = { C , D }
  <-> ( ( C = { A } /\ D = { A , B } ) \/ ( C = { A , B } /\ D = { A } ) ) ) $=
      ( cop cpr wceq csn wa wo eqcom dfop eqeq2i snex prex preq12b 3bitri ) ABI
      ZCDJZKUCUBKUCALZABJZJZKCUDKDUEKMCUEKDUDKMNUBUCOUBUFUCABEFPQCDUDUEGHARABST
      UA $.
  $}

  ${
    snopeqop.a $e |- A e. _V $.
    snopeqop.b $e |- B e. _V $.
    snopeqop.c $e |- C e. _V $.
    snopeqop.d $e |- D e. _V $.
    $( Equivalence for an ordered pair equal to a singleton of an ordered pair.
       (Contributed by AV, 18-Sep-2020.) $)
    snopeqop $p |- ( { <. A , B >. } = <. C , D >.
                     <-> ( A = B /\ C = D /\ C = { A } ) ) $=
      ( wceq cop csn wa w3a opeqsn anbi2i eqcom opex bitri 3anan12 3bitr4i ) CD
      IZABJZCKIZLZUAABIZCAKIZLZLUBKZCDJZIZUEUAUFMUCUGUAABCEFGNOUJUIUHIUDUHUIPCD
      UBGHABQNRUEUAUFST $.

    propeqop.e $e |- E e. _V $.
    propeqop.f $e |- F e. _V $.
    $( Equivalence for an ordered pair equal to a pair of ordered pairs.
       (Contributed by AV, 18-Sep-2020.) $)
    propeqop $p |- ( { <. A , B >. , <. C , D >. } = <. E , F >.
                     <-> ( ( A = C /\ E = { A } ) /\
                           ( ( A = B /\ F = { A , D } )
                             \/ ( A = D /\ F = { A , B } ) ) ) ) $=
      ( wceq wa wi adantr imp jca ex impcom cop csn cpr wo opeqsn anbi12i eqcom
      opeqpr orbi12i opex bitri simpl anim12i sneq eqeq2d biimpa adantl biimpcd
      simpr preq1 orcd ancoms eqeq1d biimpd a1dd olcd eqeq1 sneqr eqcomd syl6bi
      jaoi preqsn eqtr sylbi com12 preq1d impancom sylanbrc com23 com13 orim12d
      biimpi syl a1d com14 syl5bi sylbid com24 dfsn2 preq2 syl5eq anim1d orcoms
      a1i impbii 3bitr4i ) ABUAZEUBZMZCDUAZEFUCZMZNZWQXAMZWTWRMZNZUDZABMZEAUBZM
      ZNZECUBZMZFCDUCZMZNZEXNMZFXLMZNZUDZNZXJFABUCZMZNZEYBMZFXIMZNZUDZCDMZXMNZN
      ZUDZWQWTUCZEFUAZMZACMZXJNZXHFADUCZMZNZADMZYCNZUDZNZXCYAXFYKWSXKXBXTABEGHK
      UECDEFIJKLUHUFXDYHXEYJABEFGHKLUHCDEIJKUEUFUIYOYNYMMXGYMYNUGEFWQWTKLABUJCD
      UJUHUKUUDYLUUCYQYLYTYQYLOUUBYTYQYLYTYQNZYAYKUUEXKXTYTXHYQXJXHYSULYPXJUSZU
      MUUEXPXSUUEXMXOYQXMYTYPXJXMYPXIXLEACUNUOZUPUQYTYQXOYSYQXOOXHYQYSXOYQYRXNF
      YPYRXNMXJACDUTPUOURUQQRVARVASUUBYQYLUUBYQNZYKYAUUHYHYJUUHYDYGYQUUBYDYQXJU
      UBYCUUFUUAYCUSUMVBVAUUHYIXMUUBYQYIUUAYQYIOYCYQUUAYIYQACDYPXJULVCURPQYQUUB
      XMYPXJUUBXMOYPXJXMUUBYPXJXMUUGVDVEQTRRVFSVKTYAUUDYKXTXKUUDXTXKNZYQUUCUUIY
      PXJXKXTYPXJXTYPOXHXTXJYPXPXJYPOZXSXMUUJXOXMXJXLXIMZYPEXLXIVGUUKCACAIVHVIV
      JZPXQUUJXRXQXJXNXIMZYPEXNXIVGZUUMYIDAMZNZYPCDAIJGVLZUUPCACDAVMVIZVNVJPVKV
      OUQTXKXJXTXHXJUSUQRXKXTUUCXKXPYTXSUUBXKXPYTXKXPNXHYSXKXHXPXHXJULPXPXKYSXM
      XKXOYSXMXKNZXOYSUUSXNYRFUUSCADXKXMCAMZXJXMUUTOXHXJXMXIXLMZUUTEXIXLVGUVAAC
      ACGVHVIVJZUQTVPUOVDVQTRSXHXJXSUUBOXSXJXHUUBXQXRXJXHUUBOZOXQXJXRUVCXQXJUUM
      XRUVCOZUUNUUMUUPUVDUUQUUPXHXRUUBUUPXHXRUUBOUUPXHNZXRUUBUVEXRNUUAYCUVEUUAX
      RUUPUUAXHUUOUUAYIUUOUUADAUGWBUQPPUVEXRYCUVEXLYBFUVEYBXLUVEXHBCMZYBXLMZUUP
      XHUSUVECBUUPXHCBMUUPACBUURVCUPVIABCGHIVLZVRVIUOUPRSSVSVNVJVSQVTQWATRVBYHY
      JUUDYGYDYJUUDOYJYGYDUDZUUDYJUVIUUDYJUVINYQUUCUVIYJYQYGYJYQOZYDYEYFUVJYJYF
      YEYQXMYIYFYEYQOOXMYEYFYIYQXMYEXLYBMZYFYIYQOOZEXLYBVGUVKXHUVFNZXMUVLUVKUVG
      UVMXLYBUGUVHUKYIUVMYFXMYQUVMYFXMYQOZOOYIUVMUVNYFUVMXMYQUVMXMNYPXJUVMYPXMA
      BCVMZPUVMXMXJUVMXLXIEUVMUUTUUKUVMACUVOVICAUNWCUOUPRSWDWNWEWFWGWHTVTQYDYJY
      QYDYJNYPXJYDYJYPXJYJYPOYCYJXJYPXMUUJYIUULUQVOPQYDXJYJXJYCULPRSVKTYJUVIUUC
      YJYGYTYDUUBYIXMYGYTOYGXMYIYTYEYFXMYIYTOZOYEXMYFUVPYEXMUVGYFUVPOZEYBXLVGUV
      GUVMUVQUVHUVMYIYFYTUVMYIYFYTOUVMYINZYFYTUVRYFNXHYSUVRXHYFUVMXHYIXHUVFULPP
      UVRYFYSUVRXIYRFUVMYIXIYRMZUVMYPYIUVSOUVOYPYIUVSYPYINUUAUVSACDVMUUAXIAAUCY
      RAWIADAWJWKWCSWCQUOUPRSSVSVNVJVSQVTQYJXJUUAYCYIXMXJUUAOXJXMYIUUAXJXMYIUUA
      OXJXMNZYIUUAUVTCADXJXMUUTUVBQVCVDSVTQWLWAQRSVOWMQVKWOWP $.

    $( If a pair of ordered pairs is a subset of an ordered pair, their first
       components are equal.  (Contributed by AV, 20-Sep-2020.) $)
    propssopi $p |- ( { <. A , B >. , <. C , D >. } C_ <. E , F >.
                      -> A = C ) $=
      ( cop cpr csn wceq c0 wo wa sylbi wss dfop sseq2i sspr opex prnz eqneqall
      wne mpi snex preqsn opth simpl adantr jaoi prex wi eqcomi eqeq2i propeqop
      a1d imp bitri simpll ) ABMZCDMZNZEFMZUAVGEOZEFNZNZUAZACPZVHVKVGEFKLUBZUCV
      LVGQPZVGVIOPZRZVGVJOPZVGVKPZRZRVMVGVIVJUDVQVMVTVOVMVPVOVGQUHVMVEVFABUEZUF
      VMVGQUGUIVPVEVFPZVFVIPZSVMVEVFVIWACDUEZEUJUKWBVMWCWBVMBDPZSZVMABCDGHULZVM
      WEUMZTUNTUOVRVMVSVRWBVFVJPZSVMVEVFVJWAWDEFUPUKWBWIVMWBWFWIVMUQWGWFVMWIWHV
      ATVBTVSVMEAOPZSABPFADNPSADPFABNPSRZSZVMVSVGVHPWLVKVHVGVHVKVNURUSABCDEFGHI
      JKLUTVCVMWJWKVDTUOUOTT $.
  $}

  ${
    $d x y z A $.
    $( "At most one" remains true inside ordered pair quantification.
       (Contributed by NM, 28-Aug-2007.) $)
    mosubopt $p |- ( A. y A. z E* x ph ->
                 E* x E. y E. z ( A = <. y , z >. /\ ph ) ) $=
      ( wmo wal cv cop wceq wex wa nfa1 nfe1 nfmo wi nfex sps exlimd wn copsexg
      mobidv biimpcd simpl 2eximi exlimiv con3i exmo ori syl pm2.61d1 ) ABFZDGZ
      CGZECHDHIJZDKZCKZUOALZDKZCKZBFZUNUPVACUMCMUTCBUSCNOUMUPVAPCUMUOVADULDMUTD
      BUSDCURDNQOULUOVAPDUOULVAUOAUTBACDEUAUBUCRSRSUQTUTBKZTVAVBUQUTUQBURUOCDUO
      AUDUEUFUGVBVAUTBUHUIUJUK $.
  $}

  ${
    $d x y z A $.
    mosubop.1 $e |- E* x ph $.
    $( "At most one" remains true inside ordered pair quantification.
       (Contributed by NM, 28-May-1995.) $)
    mosubop $p |- E* x E. y E. z ( A = <. y , z >. /\ ph ) $=
      ( wmo wal cv cop wceq wa wex gen2 mosubopt ax-mp ) ABGZDHCHECIDIJKALDMCMB
      GQCDFNABCDEOP $.
  $}

  ${
    $d x ph $.  $d x A $.  $d x y $.
    euop2.1 $e |- A e. _V $.
    $( Transfer existential uniqueness to second member of an ordered pair.
       (Contributed by NM, 10-Apr-2004.) $)
    euop2 $p |- ( E! x E. y ( x = <. A , y >. /\ ph ) <-> E! y ph ) $=
      ( cv cop opex moop2 euxfr2 ) ABCDCFZGDKHCBFDEIJ $.
  $}

  ${
    $d a b c x y A $.  $d a b c x y B $.  $d a b c x y C $.  $d a b c x ph $.
    $d y ps $.
    euotd.1 $e |- ( ph -> A e. _V ) $.
    euotd.2 $e |- ( ph -> B e. _V ) $.
    euotd.3 $e |- ( ph -> C e. _V ) $.
    euotd.4 $e |- ( ph -> ( ps <-> ( a = A /\ b = B /\ c = C ) ) ) $.
    $( Prove existential uniqueness for an ordered triple.  (Contributed by
       Mario Carneiro, 20-May-2015.) $)
    euotd $p |- ( ph -> E! x E. a E. b E. c ( x = <. a , b , c >. /\ ps ) ) $=
      ( vy cv wceq wa wex cvv wtru cotp wb wal weu w3a biimpa vex sylibr eqeq2d
      otth biimpd impancom expimpd exlimdvv wcel wsbc tru adantr ad2antrr simpr
      exlimdv eqcomd biimpar jca a1tru 2thd 3anassrs sbcied mpbiri spesbcd nfcv
      nfsbc1v nfex sbceq1a exbidv spcegf 2exbidv excom13 sylib eqeq1 syl5ibrcom
      sylc anbi1d 3exbidv impbid alrimiv otex eqeq2 bibi2d albidv spcev df-eu
      syl ) ACOZGOZHOZIOZUAZPZBQZIRZHRGRZWNNOZPZUBZCUCZNRZXBCUDAXBWNDEFUAZPZUBZ
      CUCZXGAXJCAXBXIAXAXIGHAWTXIIAWSBXIABWSXIABQZWSXIXLWRXHWNXLWODPZWPEPZWQFPZ
      UEZWRXHPZABXPMUFWOWPDEWQFGUGHUGIUGUJZUHUIUKULUMVAUNAXBXIXHWRPZBQZIRHRGRZA
      XTGRHRZIRZYAAFSUOZXTIFUPZGRZHRZYCLAESUOZYEHEUPZGRZYGKAYIGDAYIGDUPTUQAYITG
      DSJAXMQZYETHESAYHXMKURYKXNQXTTIFSAYDXMXNLUSAXMXNXOXTTUBAXPQZXTTYLXSBYLWRX
      HYLXPXQAXPUTXRUHVBABXPMVCVDYLVEVFVGVHVHVHVIVJYFYJHESHEVKYIHGYEHEVLVMXNYEY
      IGYEHEVNVOVPWBYBYGIFSIFVKYFIHYEIGXTIFVLVMVMXOXTYEHGXTIFVNVQVPWBXTIHGVRVSX
      IWTXTGHIXIWSXSBWNXHWRVTWCWDWAWEWFXFXKNXHDEFWGXCXHPZXEXJCYMXDXIXBXCXHWNWHW
      IWJWKWMXBCNWLUH $.
  $}

  ${
    opthw.1 $e |- A e. _V $.
    opthw.2 $e |- B e. _V $.
    $( Justification theorem for the ordered pair definition in Norbert Wiener,
       "A simplification of the logic of relations," _Proc. of the Cambridge
       Philos.  Soc_., 1914, vol. 17, pp.387-390.  It is also shown as a
       definition in [Enderton] p. 36 and as Exercise 4.8(b) of [Mendelson]
       p. 230.  It is meaningful only for classes that exist as sets (i.e. are
       not proper classes).  See ~ df-op for other ordered pair definitions.
       (Contributed by NM, 28-Sep-2003.) $)
    opthwiener $p |- ( { { { A } , (/) } , { { B } } } =
                    { { { C } , (/) } , { { D } } } <-> ( A = C /\ B = D ) ) $=
      ( csn c0 cpr wceq wcel snex prid2 wn 0ex eqcom preq2d syl sneqr sneq elpr
      wa id wo eleq2 mpbii sylib wb snnz elsn bitri nemtbir nelneq2 mp2an biorf
      mtbi ax-mp sylibr eqtr4d prex preqr1 jca preq1d sylan9eq impbii ) AGZHIZB
      GZGZIZCGZHIZDGZGZIZJZACJZBDJZUBVPVQVRVPVFVKJZVQVPVGVLJZVSVPVJVLVIIZJVTVPV
      JVOWAVPUCVPVIVNVLVPVIVLJZVIVNJZUDZWCVPVIVOKZWDVPVIVJKWEVGVIVHLZMVJVOVIUEU
      FVIVLVNWFUAUGWBNWCWDUHVLVIJZWBHVLKHVIKZNWGNVKHOMWHVHHBFUIWHHVHJVHHJHVHOUJ
      HVHPUKULHVLVIUMUNVLVIPUPWBWCUOUQURZQUSVGVLVIVFHUTVKHUTVARVFVKHALCLVARACES
      RVPVHVMJZVRVPWCWJWIVHVMBLSRBDFSRVBVQVRVJWAVOVQVGVLVIVQVFVKHACTVCVCVRVIVNV
      LVRWJWCBDTVHVMTRQVDVE $.

    $( The union of an ordered pair.  Theorem 65 of [Suppes] p. 39.
       (Contributed by NM, 17-Aug-2004.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    uniop $p |- U. <. A , B >. = { A , B } $=
      ( cop cuni csn cpr cun dfop snex prex unipr wss wceq snsspr1 ssequn1 mpbi
      unieqi 3eqtri ) ABEZFAGZABHZHZFUBUCIZUCUAUDABCDJSUBUCAKABLMUBUCNUEUCOABPU
      BUCQRT $.

    $( Ordered pair membership is inherited by class union.  (Contributed by
       NM, 13-May-2008.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    uniopel $p |- ( <. A , B >. e. C -> U. <. A , B >. e. U. C ) $=
      ( cop wcel cuni cpr uniop opi2 eqeltri elssuni sseld mpi ) ABFZCGZPHZPGRC
      HZGRABIPABDEJABDEKLQPSRPCMNO $.
  $}

  ${
    $d A c d $.  $d B c d $.  $d V c d $.  $d X c d $.  $d Y c d $.
    $( The singletons consisting of ordered triples which have distinct third
       components are disjoint.  (Contributed by Alexander van der Vekens,
       10-Mar-2018.) $)
    otsndisj $p |- ( ( A e. X /\ B e. Y )
                   -> Disj_ c e. V { <. A , B , c >. } ) $=
      ( vd wcel wa weq cv cotp csn cin c0 wceq wo wral wdisj wn wne otthg 3expa
      w3a wb simp3 syl6bi con3rr3 imp neqned disjsn2 syl expcom orrd ralrimivva
      adantrr oteq3 sneqd disjor sylibr ) ADHZBEHZIZFGJZABFKZLZMZABGKZLZMZNOPZQ
      ZGCRFCRFCVGSVCVLFGCCVCVECHZVLVHCHVCVMIZVDVKVDTZVNVKVOVNIZVFVIUAVKVPVFVIVO
      VNVFVIPZTVNVQVDVNVQAAPZBBPZVDUDZVDVAVBVMVQVTUEABVEADBVHECUBUCVRVSVDUFUGUH
      UIUJVFVIUKULUMUNUPUOCVGVJFGVDVFVIVEVHABUQURUSUT $.
  $}

  ${
    $d B a c d e s $.  $d V a c d e s $.  $d W a c d e s $.  $d X a c d e s $.
    $( The union of singletons consisting of ordered triples which have
       distinct first and third components are disjoint.  (Contributed by
       Alexander van der Vekens, 10-Mar-2018.) $)
    otiunsndisj $p |- ( B e. X
                 -> Disj_ a e. V U_ c e. ( W \ { a } ) { <. a , B , c >. } ) $=
      ( vd vs ve wcel weq cv csn cotp ciun wceq wral wa wn sylibr cdif c0 wdisj
      cin wo wrex eliun wi w3a otthg simp1 syl6bi con3d 3exp impcom com3r imp31
      wb velsn eqeq1 notbid sylbi syl5ibrcom sylnibr adantr nrexdv ex rexlimdva
      syl5bi ralrimiv oteq3 sneqd cbviunv eleq2i notbii ralbii disj expcom orrd
      imp adantrr ralrimivva sneq difeq2d oteq1 iuneq12d disjor ) ADJZEGKZFCELZ
      MZUAZWJAFLZNZMZOZFCGLZMZUAZWQAWMNZMZOZUDUBPZUEZGBQEBQEBWPUCWHXDEGBBWHWJBJ
      ZXDWQBJWHXERZWIXCWISZXFXCXGXFRZHLZXBJZSZHWPQZXCXHXIIWSWQAILZNZMZOZJZSZHWP
      QXLXHXRHWPXIWPJXIWOJZFWLUFXHXRFXIWLWOUGXHXSXRFWLXHWMWLJZRZXSXRYAXSRZXIXOJ
      ZIWSUFXQYBYCIWSYBYCSXMWSJYBXIXNPZYCYAXSYDSZYAYEXSWNXNPZSZXGXFXTYGXFXTXGYG
      XEWHXTXGYGUHZUHXEWHXTYHXEWHXTUIZYFWIYIYFWIAAPZFIKZUIWIWJAWMWQBAXMDWLUJWIY
      JYKUKULUMUNUOUPUQXSXIWNPZYEYGURHWNUSYLYDYFXIWNXNUTVAVBVCVTHXNUSVDVEVFIXIW
      SXOUGVDVGVHVIVJXKXRHWPXJXQXBXPXIFIWSXAXOYKWTXNWMXMWQAVKVLVMVNVOVPTHWPXBVQ
      TVRVSWAWBBWPXBEGWIFWLWSWOXAWIWKWRCWJWQWCWDWIWNWTWJWQAWMWEVLWFWGT $.
  $}

  ${
    $d A x y z $.  $d B y $.  $d C x y $.  $d D x y $.
    iunopeqop.b $e |- B e. _V $.
    iunopeqop.c $e |- C e. _V $.
    iunopeqop.d $e |- D e. _V $.
    $( Implication of an ordered pair being equal to an indexed union of
       singletons of ordered pairs.  (Contributed by AV, 20-Sep-2020.) $)
    iunopeqop $p |- ( A =/= (/) -> ( U_ x e. A { <. x , B >. } = <. C , D >.
                                     -> E. z A = { z } ) ) $=
      ( vy wne cv wrex csn wceq cop wi wcel wa wss c0 wex n0snor2el nfiu1 nfeq1
      wo ciun nfv nfim ssiun2 nfcv nfcsb1v nfop nfsn nfss csbeq1a opeq12d sneqd
      csb id sseq1d vtoclgaf anim12i cun unss sseq2 cpr df-pr eqcomi sseq1i vex
      csbex propssopi eqneqall syl sylbi syl6bi com14 syl5bi mpd rexlimdva ax-1
      rexlimi jaoi ) CUAKALZJLZKZJCMZACMZCBLNOBUBZUFACWEDPZNZUGZEFPZOZWJQZAJBCU
      CWIWPWJWHWPACWOWJAAWMWNACWLUDZUEWJAUHUIWECRZWGWPJCWRWFCRZSZWLWMTZWFAWFDUS
      ZPZNZWMTZSZWGWPQZWRXAWSXEACWLUJZXAXEAWFCAWFUKZAXDWMAXCAWFXBXIAWFDULUMUNWQ
      UOWEWFOZWLXDWMXJWKXCXJWEWFDXBXJUTAWFDUPUQURVAXHVBVCXFWLXDVDZWMTZWTXGWLXDW
      MVEWOXLWGWTWJWOXLXKWNTZWGWTWJQZQZWMWNXKVFXMWKXCVGZWNTZXOXKXPWNXPXKWKXCVHV
      IVJXQXJXOWEDWFXBEFAVKGJVKAWFDGVLHIVMXNWEWFVNVOVPVQVRVSVTWAWCWJWOWBWDVO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordered-pair class abstractions (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x z $.  $d y z $.  $d ph z $.
    $( The law of concretion.  Special case of Theorem 9.5 of [Quine] p. 61.
       (Contributed by NM, 14-Apr-1995.)  (Proof shortened by Andrew Salmon,
       25-Jul-2011.) $)
    opabid $p |- ( <. x , y >. e. { <. x , y >. | ph } <-> ph ) $=
      ( vz cv cop wceq wa wex copab opex copsexg bicomd df-opab elab2 ) DEZBEZC
      EZFZGZAHCIBIZADSABCJQRKTAUAABCPLMABCDNO $.
  $}

  ${
    $d x z A $.  $d y z A $.  $d z ph $.
    $( Membership in a class abstraction of pairs.  (Contributed by NM,
       24-Mar-1998.) $)
    elopab $p |- ( A e. { <. x , y >. | ph } <->
                 E. x E. y ( A = <. x , y >. /\ ph ) ) $=
      ( vz copab wcel cvv cv cop wceq wa elex opex eleq1 mpbiri adantr exlimivv
      wex eqeq1 anbi1d 2exbidv df-opab elab2g pm5.21nii ) DABCFZGDHGZDBIZCIZJZK
      ZALZCSBSZDUFMULUGBCUKUGAUKUGUJHGUHUINDUJHOPQREIZUJKZALZCSBSUMEDUFHUNDKZUP
      ULBCUQUOUKAUNDUJTUAUBABCEUCUDUE $.
  $}

  ${
    $d x y z $.  $d x y w $.
    $( The law of concretion in terms of substitutions.  Less general than
       ~ opelopabsb , but having a much shorter proof.  (Contributed by NM,
       30-Sep-2002.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    opelopabsbALT $p |- ( <. z , w >. e. { <. x , y >. | ph }
                 <-> [ w / y ] [ z / x ] ph ) $=
      ( cv cop wceq wa wex copab wcel wsb excom vex opth equcom anbi12ci anbi1i
      bitri 2exbii elopab 2sb5 3bitr4i ) DFZEFZGZBFZCFZGHZAIZCJBJZUIUFHZUHUEHZI
      ZAIZBJCJZUGABCKLABDMCEMULUKBJCJUQUKBCNUKUPCBUJUOAUJUEUHHZUFUIHZIUOUEUFUHU
      IDOEOPURUNUSUMDBQECQRTSUATABCUGUBACBEDUCUD $.
  $}

  ${
    $d x y z w $.  $d w z A $.  $d w x B $.  $d w z ph $.
    $( The law of concretion in terms of substitutions.  (Contributed by NM,
       30-Sep-2002.)  (Revised by Mario Carneiro, 18-Nov-2016.) $)
    opelopabsb $p |- ( <. A , B >. e. { <. x , y >. | ph }
                 <-> [. A / x ]. [. B / y ]. ph ) $=
      ( vz vw cop wcel cvv wa wsbc c0 wne wceq cv wex wb eleq1d bibi12d vex nex
      copab wn opnzi simpl eqcomd necon3ai ax-mp elopab mtbir eleq1 mtbiri opnz
      necon2ai sylib sbcex spesbc exlimiv syl jca opeq1 dfsbcq2 sbcbidv nfopab1
      wsb opeq2 nfel2 nfs1v nfbi sbequ12 nfopab2 opabid chvar vtocl2g pm5.21nii
      weq ) DEHZABCUCZIZDJIZEJIZKZACELZBDLZVTVRMNWCVTVRMVRMOVTMVSIZWFMBPZCPZHZO
      ZAKZCQZBQWLBWKCWIMNWKUDWGWHBUACUAUEWKWIMWKMWIWJAUFUGUHUIUBUBABCMUJUKVRMVS
      ULUMUODEUNUPWEWAWBWDBDUQWEWDBQWBWDBDURWDWBBACEUQUSUTVAFPZGPZHZVSIZACGVFZB
      FVFZRZDWNHZVSIZWQBDLZRVTWERFGDEJJWMDOZWPXAWRXBXCWOWTVSWMDWNVBSWQBFDVCTWNE
      OZXAVTXBWEXDWTVRVSWNEDVGSXDWQWDBDACGEVCVDTWGWNHZVSIZWQRZWSBFWPWRBBWOVSABC
      VEVHWQBFVIVJBFVQZXFWPWQWRXHXEWOVSWGWMWNVBSWQBFVKTWIVSIZARXGCGXFWQCCXEVSAB
      CVLVHACGVIVJCGVQZXIXFAWQXJWIXEVSWHWNWGVGSACGVKTABCVMVNVNVOVP $.

    brabsb.1 $e |- R = { <. x , y >. | ph } $.
    $( The law of concretion in terms of substitutions.  (Contributed by NM,
       17-Mar-2008.) $)
    brabsb $p |- ( A R B <-> [. A / x ]. [. B / y ]. ph ) $=
      ( wbr cop wcel copab wsbc df-br eleq2i opelopabsb 3bitri ) DEFHDEIZFJQABC
      KZJACELBDLDEFMFRQGNABCDEOP $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ch $.
    $( Closed theorem form of ~ opelopab .  (Contributed by NM,
       19-Feb-2013.) $)
    opelopabt $p |- ( ( A. x A. y ( x = A -> ( ph <-> ps ) )
                     /\ A. x A. y ( y = B -> ( ps <-> ch ) )
                     /\ ( A e. V /\ B e. W ) ) ->
                    ( <. A , B >. e. { <. x , y >. | ph } <-> ch ) ) $=
      ( cop copab wcel cv wceq wa wex wb wi wal w3a elopab prth 2alimi copsex2t
      19.26-2 bitr syl6 sylbir stoic3 syl5bb ) FGJZADEKLUKDMZEMZJNAOEPDPZULFNZA
      BQZRZESDSZUMGNZBCQZRZESDSZFHLGILOZTCADEUKUAURVBUOUSOZACQZRZESDSZVCUNCQURV
      BOUQVAOZESDSVGUQVADEUEVHVFDEVHVDUPUTOVEUOUPUSUTUBABCUFUGUCUHACDEFGHIUDUIU
      J $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ps $.
    opelopabga.1 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( The law of concretion.  Theorem 9.5 of [Quine] p. 61.  (Contributed by
       Mario Carneiro, 19-Dec-2013.) $)
    opelopabga $p |- ( ( A e. V /\ B e. W ) ->
                    ( <. A , B >. e. { <. x , y >. | ph } <-> ps ) ) $=
      ( cop copab wcel cv wceq wa wex elopab copsex2g syl5bb ) EFJZACDKLTCMDMJN
      AODPCPEGLFHLOBACDTQABCDEFGHIRS $.

    ${
      brabga.2 $e |- R = { <. x , y >. | ph } $.
      $( The law of concretion for a binary relation.  (Contributed by Mario
         Carneiro, 19-Dec-2013.) $)
      brabga $p |- ( ( A e. V /\ B e. W ) -> ( A R B <-> ps ) ) $=
        ( wbr cop copab wcel wa df-br eleq2i bitri opelopabga syl5bb ) EFGLZEFM
        ZACDNZOZEHOFIOPBUBUCGOUEEFGQGUDUCKRSABCDEFHIJTUA $.
    $}

    $d x y C $.  $d x y D $.
    $( Ordered pair membership in an ordered pair class abstraction.
       (Contributed by Mario Carneiro, 19-Dec-2013.) $)
    opelopab2a $p |- ( ( A e. C /\ B e. D ) -> ( <. A , B >. e.
                 { <. x , y >. | ( ( x e. C /\ y e. D ) /\ ph ) } <-> ps ) ) $=
      ( wcel wa cop cv copab wceq eleq1 bi2anan9 anbi12d opelopabga bianabs ) E
      GJZFHJZKZEFLCMZGJZDMZHJZKZAKZCDNJBUIUCBKCDEFGHUDEOZUFFOZKUHUCABUJUEUAUKUG
      UBUDEGPUFFHPQIRST $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ps $.
    opelopaba.1 $e |- A e. _V $.
    opelopaba.2 $e |- B e. _V $.
    opelopaba.3 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( The law of concretion.  Theorem 9.5 of [Quine] p. 61.  (Contributed by
       Mario Carneiro, 19-Dec-2013.) $)
    opelopaba $p |- ( <. A , B >. e. { <. x , y >. | ph } <-> ps ) $=
      ( cvv wcel cop copab wb opelopabga mp2an ) EJKFJKEFLACDMKBNGHABCDEFJJIOP
      $.

    ${
      braba.4 $e |- R = { <. x , y >. | ph } $.
      $( The law of concretion for a binary relation.  (Contributed by NM,
         19-Dec-2013.) $)
      braba $p |- ( A R B <-> ps ) $=
        ( cvv wcel wbr wb brabga mp2an ) ELMFLMEFGNBOHIABCDEFGLLJKPQ $.
    $}
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ch $.
    opelopabg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    opelopabg.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( The law of concretion.  Theorem 9.5 of [Quine] p. 61.  (Contributed by
       NM, 28-May-1995.)  (Revised by Mario Carneiro, 19-Dec-2013.) $)
    opelopabg $p |- ( ( A e. V /\ B e. W ) ->
                    ( <. A , B >. e. { <. x , y >. | ph } <-> ch ) ) $=
      ( cv wceq sylan9bb opelopabga ) ACDEFGHIDLFMABELGMCJKNO $.

    ${
      brabg.5 $e |- R = { <. x , y >. | ph } $.
      $( The law of concretion for a binary relation.  (Contributed by NM,
         16-Aug-1999.)  (Revised by Mario Carneiro, 19-Dec-2013.) $)
      brabg $p |- ( ( A e. C /\ B e. D ) -> ( A R B <-> ch ) ) $=
        ( cv wceq sylan9bb brabga ) ACDEFGJHIDNFOABENGOCKLPMQ $.
    $}
  $}

  ${
    $d x y A $.  $d x y B $.
    opelopabgf.x $e |- F/ x ps $.
    opelopabgf.y $e |- F/ y ch $.
    opelopabgf.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    opelopabgf.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( The law of concretion.  Theorem 9.5 of [Quine] p. 61.  This version of
       ~ opelopabg uses bound-variable hypotheses in place of distinct variable
       conditions.  (Contributed by Alexander van der Vekens, 8-Jul-2018.) $)
    opelopabgf $p |- ( ( A e. V /\ B e. W )
                       -> ( <. A , B >. e. { <. x , y >. | ph } <-> ch ) ) $=
      ( cop copab wcel wsbc wa opelopabsb sbciegf nfcv cv wceq sbcbidv sylan9bb
      nfsbc syl5bb ) FGNADEOPAEGQZDFQZFHPZGIPZRCADEFGSUJUIBEGQZUKCUHULDFHBDEGDG
      UAJUFDUBFUCABEGLUDTBCEGIKMTUEUG $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y ch $.
    opelopab2.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    opelopab2.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( Ordered pair membership in an ordered pair class abstraction.
       (Contributed by NM, 14-Oct-2007.)  (Revised by Mario Carneiro,
       19-Dec-2013.) $)
    opelopab2 $p |- ( ( A e. C /\ B e. D ) -> ( <. A , B >. e.
                 { <. x , y >. | ( ( x e. C /\ y e. D ) /\ ph ) } <-> ch ) ) $=
      ( cv wceq sylan9bb opelopab2a ) ACDEFGHIDLFMABELGMCJKNO $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ch $.
    opelopab.1 $e |- A e. _V $.
    opelopab.2 $e |- B e. _V $.
    opelopab.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    opelopab.4 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( The law of concretion.  Theorem 9.5 of [Quine] p. 61.  (Contributed by
       NM, 16-May-1995.) $)
    opelopab $p |- ( <. A , B >. e. { <. x , y >. | ph } <-> ch ) $=
      ( cvv wcel cop copab wb opelopabg mp2an ) FLMGLMFGNADEOMCPHIABCDEFGLLJKQR
      $.

    ${
      brab.5 $e |- R = { <. x , y >. | ph } $.
      $( The law of concretion for a binary relation.  (Contributed by NM,
         16-Aug-1999.) $)
      brab $p |- ( A R B <-> ch ) $=
        ( cvv wcel wbr wb brabg mp2an ) FNOGNOFGHPCQIJABCDEFGNNHKLMRS $.
    $}
  $}

  ${
    $d x y A $.  $d x y B $.
    opelopabaf.x $e |- F/ x ps $.
    opelopabaf.y $e |- F/ y ps $.
    opelopabaf.1 $e |- A e. _V $.
    opelopabaf.2 $e |- B e. _V $.
    opelopabaf.3 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( The law of concretion.  Theorem 9.5 of [Quine] p. 61.  This version of
       ~ opelopab uses bound-variable hypotheses in place of distinct variable
       conditions."  (Contributed by Mario Carneiro, 19-Dec-2013.)  (Proof
       shortened by Mario Carneiro, 18-Nov-2016.) $)
    opelopabaf $p |- ( <. A , B >. e. { <. x , y >. | ph } <-> ps ) $=
      ( cop copab wcel wsbc opelopabsb cvv wb nfv sbc2iegf mp2an bitri ) EFLACD
      MNADFOCEOZBACDEFPEQNFQNZUCBRIJABCDEFQQGHUDCSKTUAUB $.
  $}

  ${
    $d x y A $.  $d x y B $.
    opelopabf.x $e |- F/ x ps $.
    opelopabf.y $e |- F/ y ch $.
    opelopabf.1 $e |- A e. _V $.
    opelopabf.2 $e |- B e. _V $.
    opelopabf.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    opelopabf.4 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( The law of concretion.  Theorem 9.5 of [Quine] p. 61.  This version of
       ~ opelopab uses bound-variable hypotheses in place of distinct variable
       conditions."  (Contributed by NM, 19-Dec-2008.) $)
    opelopabf $p |- ( <. A , B >. e. { <. x , y >. | ph } <-> ch ) $=
      ( cop wcel wsbc cvv wb sbciegf ax-mp copab opelopabsb nfcv cv wceq 3bitri
      nfsbc sbcbidv ) FGNADEUAOAEGPZDFPZBEGPZCADEFGUBFQOUJUKRJUIUKDFQBDEGDGUCHU
      GDUDFUEABEGLUHSTGQOUKCRKBCEGQIMSTUF $.
  $}

  ${
    $d ph z $.  $d ps z $.  $d x z $.  $d y z $.
    $( Equivalence of ordered pair abstraction subclass and implication.
       (Contributed by NM, 27-Dec-1996.)  (Revised by Mario Carneiro,
       19-May-2013.) $)
    ssopab2 $p |- ( A. x A. y ( ph -> ps ) ->
        { <. x , y >. | ph } C_ { <. x , y >. | ps } ) $=
      ( vz wi wal cv cop wceq wa wex cab anim2d aleximi ss2abdv df-opab 3sstr4g
      copab id ) ABFZDGZCGZEHCHDHIJZAKZDLZCLZEMUDBKZDLZCLZEMACDSBCDSUCUGUJEUBUF
      UICUAUEUHDUAABUDUATNOOPACDEQBCDEQR $.
  $}

  $( Equivalence of ordered pair abstraction subclass and implication.
     (Contributed by NM, 27-Dec-1996.)  (Proof shortened by Mario Carneiro,
     18-Nov-2016.) $)
  ssopab2b $p |- ( { <. x , y >. | ph } C_ { <. x , y >. | ps } <->
               A. x A. y ( ph -> ps ) ) $=
    ( copab wss wi wal nfopab1 nfss nfopab2 cop wcel ssel opabid 3imtr3g alrimi
    cv ssopab2 impbii ) ACDEZBCDEZFZABGZDHZCHUCUECCUAUBACDIBCDIJUCUDDDUAUBACDKB
    CDKJUCCRDRLZUAMUFUBMABUAUBUFNACDOBCDOPQQABCDST $.

  ${
    ssopab2i.1 $e |- ( ph -> ps ) $.
    $( Inference of ordered pair abstraction subclass from implication.
       (Contributed by NM, 5-Apr-1995.) $)
    ssopab2i $p |- { <. x , y >. | ph } C_ { <. x , y >. | ps } $=
      ( wi wal copab wss ssopab2 ax-gen mpg ) ABFZDGACDHBCDHICABCDJMDEKL $.
  $}

  ${
    $d x ph $.  $d y ph $.
    ssopab2dv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference of ordered pair abstraction subclass from implication.
       (Contributed by NM, 19-Jan-2014.)  (Revised by Mario Carneiro,
       24-Jun-2014.) $)
    ssopab2dv $p |- ( ph -> { <. x , y >. | ps } C_ { <. x , y >. | ch } ) $=
      ( wi wal copab wss alrimivv ssopab2 syl ) ABCGZEHDHBDEICDEIJANDEFKBCDELM
      $.
  $}

  $( Equivalence of ordered pair abstraction equality and biconditional.
     (Contributed by Mario Carneiro, 4-Jan-2017.) $)
  eqopab2b $p |- ( { <. x , y >. | ph } = { <. x , y >. | ps }
                <-> A. x A. y ( ph <-> ps ) ) $=
    ( copab wss wa wi wal wceq wb ssopab2b anbi12i eqss 2albiim 3bitr4i ) ACDEZ
    BCDEZFZRQFZGABHDICIZBAHDICIZGQRJABKDICISUATUBABCDLBACDLMQRNABCDOP $.

  ${
    $d z ph $.  $d z x $.  $d z y $.
    $( Nonempty ordered pair class abstraction.  (Contributed by NM,
       10-Oct-2007.) $)
    opabn0 $p |- ( { <. x , y >. | ph } =/= (/) <-> E. x E. y ph ) $=
      ( vz copab c0 wne cv wcel wex n0 cop wceq elopab exbii exrot3 opex isseti
      wa bitri 19.41v mpbiran 2exbii ) ABCEZFGDHZUDIZDJZACJBJZDUDKUGUEBHZCHZLZM
      ZASZCJBJZDJZUHUFUNDABCUENOUOUMDJZCJBJUHUMDBCPUPABCUPULDJADUKUIUJQRULADUAU
      BUCTTT $.
  $}

  $( Empty ordered pair class abstraction.  (Contributed by AV,
     29-Oct-2021.) $)
  opab0 $p |- ( { <. x , y >. | ph } = (/) <-> A. x A. y -. ph ) $=
    ( copab c0 wceq wn wal wne wex opabn0 df-ne 2exnaln 3bitr3i con4bii ) ABCDZ
    EFZAGCHBHZPEIACJBJQGRGABCKPELABCMNO $.

  ${
    $d w y z A $.  $d w ph $.  $d w x y z $.
    $( Move substitution into a class abstraction.  Version of ~ csbopabgALT
       without a sethood antecedent but depending on more axioms.  (Contributed
       by NM, 6-Aug-2007.)  (Revised by NM, 23-Aug-2018.) $)
    csbopab $p |- [_ A / x ]_ { <. y , z >. | ph }
              = { <. y , z >. | [. A / x ]. ph } $=
      ( vw cvv wcel copab csb wsbc wceq cv wsb csbeq1 opabbidv wn c0 wex nexdv
      dfsbcq2 eqeq12d vex nfs1v nfopab sbequ12 csbief vtoclg csbprc sbcex con3i
      weq opabn0 necon1bbii sylib eqtr4d pm2.61i ) EGHZBEACDIZJZABEKZCDIZLZBFMZ
      USJZABFNZCDIZLVCFEGVDELZVEUTVGVBBVDEUSOVHVFVACDABFEUAPUBBVDUSVGFUCVFCDBAB
      FUDUEBFULAVFCDABFUFPUGUHURQZUTRVBBEUSUIVIVADSZCSZQVBRLVIVJCVIVADVAURABEUJ
      UKTTVKVBRVACDUMUNUOUPUQ $.

    $( Move substitution into a class abstraction.  Version of ~ csbopab with a
       sethood antecedent but depending on fewer axioms.  (Contributed by NM,
       6-Aug-2007.)  (Proof shortened by Mario Carneiro, 17-Nov-2016.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    csbopabgALT $p |- ( A e. V -> [_ A / x ]_ { <. y , z >. | ph }
              = { <. y , z >. | [. A / x ]. ph } ) $=
      ( vw cv copab csb wsb wceq wsbc csbeq1 dfsbcq2 opabbidv eqeq12d vex nfs1v
      nfopab sbequ12 csbief vtoclg ) BGHZACDIZJZABGKZCDIZLBEUEJZABEMZCDIZLGEFUD
      ELZUFUIUHUKBUDEUENULUGUJCDABGEOPQBUDUEUHGRUGCDBABGSTBHUDLAUGCDABGUAPUBUC
      $.
  $}

  ${
    $d A y z $.  $d V y z $.  $d Y y z $.  $d Z z $.  $d x y z $.
    $( Move substitution into a maps-to notation.  (Contributed by AV,
       26-Sep-2019.) $)
    csbmpt12 $p |- ( A e. V -> [_ A / x ]_ ( y e. Y |-> Z )
                             = ( y e. [_ A / x ]_ Y |-> [_ A / x ]_ Z ) ) $=
      ( vz wcel cv wceq copab csb cmpt wsbc csbopab sbcan sbcel12 syl5bb df-mpt
      wa csbconstg eleq1d sbceq2g anbi12d opabbidv syl5eq csbeq2i 3eqtr4g ) CDH
      ZACBIZEHZGIZFJZTZBGKZLZUJACELZHZULACFLZJZTZBGKZACBEFMZLBUQUSMUIUPUNACNZBG
      KVBUNABGCOUIVDVABGVDUKACNZUMACNZTUIVAUKUMACPUIVEURVFUTVEACUJLZUQHUIURACUJ
      EQUIVGUJUQACUJDUAUBRACULFDUCUDRUEUFACVCUOBGEFSUGBGUQUSSUH $.

    $d Y x $.
    $( Move substitution into the second part of a maps-to notation.
       (Contributed by AV, 26-Sep-2019.) $)
    csbmpt2 $p |- ( A e. V -> [_ A / x ]_ ( y e. Y |-> Z )
                              = ( y e. Y |-> [_ A / x ]_ Z ) ) $=
      ( wcel cmpt csb csbmpt12 csbconstg mpteq1d eqtrd ) CDGZACBEFHIBACEIZACFIZ
      HBEPHABCDEFJNBOEPACEDKLM $.
  $}

  ${
    $d ph w $.  $d A w x $.  $d A y $.  $d w y z $.  $d x z $.
    $( Move indexed union inside an ordered-pair abstraction.  (Contributed by
       Stefan O'Rear, 20-Feb-2015.) $)
    iunopab $p |- U_ z e. A { <. x , y >. | ph } =
        { <. x , y >. | E. z e. A ph } $=
      ( vw cv copab wcel wrex cab cop wceq wex ciun elopab rexcom4 exbii bitri
      wa rexbii r19.42v abbii df-iun df-opab 3eqtr4i ) FGZABCHZIZDEJZFKUGBGCGLM
      ZADEJZTZCNZBNZFKDEUHOULBCHUJUOFUJUKATZCNZBNZDEJZUOUIURDEABCUGPUAUSUQDEJZB
      NUOUQDBEQUTUNBUTUPDEJZCNUNUPDCEQVAUMCUKADEUBRSRSSUCDFEUHUDULBCFUEUF $.
  $}

  ${
    $d A x y $.  $d R x y $.
    $( Membership in a class abstraction of pairs, defined by a binary
       relation.  (Contributed by AV, 16-Feb-2021.) $)
    elopabr $p |- ( A e. { <. x , y >. | x R y } -> A e. R ) $=
      ( cv wbr copab wcel cop wceq wa wex elopab df-br biimpi eleq1 syl5ibr imp
      exlimivv sylbi ) CAEZBEZDFZABGHCUAUBIZJZUCKZBLALCDHZUCABCMUFUGABUEUCUGUCU
      GUEUDDHZUCUHUAUBDNOCUDDPQRST $.

    $( Membership in a class abstraction of pairs, defined by a restricted
       binary relation.  (Contributed by AV, 16-Feb-2021.) $)
    elopabran $p |- ( A e. { <. x , y >. | ( x R y /\ ps ) } -> A e. R ) $=
      ( cv wbr wa copab wcel simpl ssopab2i sseli elopabr syl ) DBFCFEGZAHZBCIZ
      JDPBCIZJDEJRSDQPBCPAKLMBCDENO $.
  $}

  ${
    $d F f p $.  $d P f p $.  $d W f p $.  $d ch f p $.
    rbropapd.1 $e |- ( ph -> M = { <. f , p >. | ( f W p /\ ps ) } ) $.
    rbropapd.2 $e |- ( ( f = F /\ p = P ) -> ( ps <-> ch ) ) $.
    $( Properties of a pair in an extended binary relation.  (Contributed by
       Alexander van der Vekens, 30-Oct-2017.) $)
    rbropapd $p |- ( ph -> ( ( F e. X /\ P e. Y )
                     -> ( F M P <-> ( F W P /\ ch ) ) ) ) $=
      ( wcel wa wbr wb cop cv wceq copab df-br eleq2d syl5bb anbi12d opelopabga
      breq12 sylan9bb ex ) AFINDJNOZFDGPZFDHPZCOZQAUKFDRZESZKSZHPZBOZEKUAZNZUJU
      MUKUNGNAUTFDGUBAGUSUNLUCUDURUMEKFDIJUOFTUPDTOUQULBCUOFUPDHUGMUEUFUHUI $.

    $( Properties of a pair in a restricted binary relation ` M ` expressed as
       an ordered-pair class abstraction: ` M ` is the binary relation ` W `
       restricted by the condition ` ps ` .  (Contributed by AV,
       31-Jan-2021.) $)
    rbropap $p |- ( ( ph /\ F e. X /\ P e. Y )
                    -> ( F M P <-> ( F W P /\ ch ) ) ) $=
      ( wcel wbr wa wb rbropapd 3impib ) AFINDJNFDGOFDHOCPQABCDEFGHIJKLMRS $.
  $}

  ${
    $d F f p $.  $d P f p $.  $d W f p $.  $d ch f p $.  $d th f p $.
    2rbropap.1 $e |- ( ph -> M = { <. f , p >. | ( f W p /\ ps /\ ta ) } ) $.
    2rbropap.2 $e |- ( ( f = F /\ p = P ) -> ( ps <-> ch ) ) $.
    2rbropap.3 $e |- ( ( f = F /\ p = P ) -> ( ta <-> th ) ) $.
    $( Properties of a pair in a restricted binary relation ` M ` expressed as
       an ordered-pair class abstraction: ` M ` is the binary relation ` W `
       restricted by the conditions ` ps ` and ` ta ` .  (Contributed by AV,
       31-Jan-2021.) $)
    2rbropap $p |- ( ( ph /\ F e. X /\ P e. Y )
                    -> ( F M P <-> ( F W P /\ ch /\ th ) ) ) $=
      ( wcel w3a wbr wa cv copab 3anass opabbii syl6eq anbi12d rbropap syl6bbr
      wceq ) AHKQFLQRHFISHFJSZCDTZTUJCDRABETZUKFGHIJKLMAIGUAZMUAZJSZBERZGMUBUOU
      LTZGMUBNUPUQGMUOBEUCUDUEUMHUIUNFUITBCEDOPUFUGUJCDUCUH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Power class of union and intersection
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x y $.  $d B x y $.
    $( The power class of the intersection of two classes is the intersection
       of their power classes.  Exercise 4.12(j) of [Mendelson] p. 235.
       (Contributed by NM, 23-Nov-2003.) $)
    pwin $p |- ~P ( A i^i B ) = ( ~P A i^i ~P B ) $=
      ( vx cpw cin cv wss wa wcel ssin selpw anbi12i 3bitr4i ineqri eqcomi ) AD
      ZBDZEABEZDZCPQSCFZAGZTBGZHTRGTPIZTQIZHTSITABJUCUAUDUBCAKCBKLCRKMNO $.

    $( The power class of the union of two classes includes the union of their
       power classes.  Exercise 4.12(k) of [Mendelson] p. 235.  (Contributed by
       NM, 23-Nov-2003.) $)
    pwunss $p |- ( ~P A u. ~P B ) C_ ~P ( A u. B ) $=
      ( vx cpw cun cv wss wo wcel ssun elun selpw orbi12i bitri 3imtr4i ssriv )
      CADZBDZEZABEZDZCFZAGZUBBGZHZUBTGUBSIZUBUAIUBABJUFUBQIZUBRIZHUEUBQRKUGUCUH
      UDCALCBLMNCTLOP $.

    $( The power class of the union of two classes is a subset of the union of
       their power classes, iff one class is a subclass of the other.  Exercise
       4.12(l) of [Mendelson] p. 235.  (Contributed by NM, 23-Nov-2003.) $)
    pwssun $p |- ( ( A C_ B \/ B C_ A ) <->
               ~P ( A u. B ) C_ ( ~P A u. ~P B ) ) $=
      ( vy vx wss wo cun cpw wceq pweq eqimss syl sylbi orim12i wn wa wcel elpw
      cv wi ssequn2 ssequn1 orcoms ssun cpr csn vex snss unss12 syl2anb zfpair2
      df-pr sseq1i bitr2i sylib ssel syl5 expcomd imp31 elun bitr4i simprbi ord
      prss simplbi impancom ssrdv exp31 con1b syl6ib com23 imp ex orrd impbii )
      ABEZBAEZFZABGZHZAHZBHZGZEZVRVTWAEZVTWBEZFZWDVQVPWGVQWEVPWFVQVSAIZWEBAUAWH
      VTWAIWEVSAJVTWAKLMVPVSBIZWFABUBWIVTWBIWFVSBJVTWBKLMNUCVTWAWBUDLWDVPVQWDVP
      OZVQWDWJPCBAWDWJCSZBQZWKAQZTWDWLWJWMWDWLWMOZVPTWJWMTWDWLWNVPWDWLPZWNPDABW
      ODSZAQZWNWPBQZWOWQPZWMWRWSWPWKUEZWAQZWTWBQZFZWMWRFWSWTWCQZXCWDWLWQXDWDWQW
      LXDWQWLPZWTVTQZWDXDXEWPUFZWKUFZGZVSEZXFWQXGAEXHBEXJWLWPADUGZUHWKBCUGZUHXG
      AXHBUIUJXFWTVSEXJWTVSDCUKZRWTXIVSWPWKULUMUNUOVTWCWTUPUQURUSWTWAWBUTUOXAWM
      XBWRXAWQWMXAWTAEWQWMPWTAXMRWPWKAXKXLVDVAVBXBWRWLXBWTBEWRWLPWTBXMRWPWKBXKX
      LVDVAVENLVCVFVGVHWMVPVIVJVKVLVGVMVNVO $.
  $}

  $( Break up the power class of a union into a union of smaller classes.
     (Contributed by NM, 25-Mar-2007.)  (Proof shortened by Thierry Arnoux,
     20-Dec-2016.) $)
  pwundif $p |- ~P ( A u. B ) =
                ( ( ~P ( A u. B ) \ ~P A ) u. ~P A ) $=
    ( cun cpw cdif undif1 wss wceq pwunss unss mpbir simpli ssequn2 mpbi eqtr2i
    wa ) ABCDZADZERCQRCZQQRFRQGZSQHTBDZQGZTUBPRUACQGABIRUAQJKLRQMNO $.

  $( The power class of the union of two classes equals the union of their
     power classes, iff one class is a subclass of the other.  Part of Exercise
     7(b) of [Enderton] p. 28.  (Contributed by NM, 23-Nov-2003.) $)
  pwun $p |- ( ( A C_ B \/ B C_ A ) <->
             ~P ( A u. B ) = ( ~P A u. ~P B ) ) $=
    ( cun cpw wss wa wo wceq pwunss biantru pwssun eqss 3bitr4i ) ABCDZADBDCZEZ
    PONEZFABEBAEGNOHQPABIJABKNOLM $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The identity relation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c _I $.  $( Letter I (for the identity relation). $)

  $( Extend the definition of a class to include the identity relation. $)
  cid $a class _I $.

  ${
    $d x y $.
    $( Define the identity relation.  Definition 9.15 of [Quine] p. 64.  For
       example, ` 5 _I 5 ` and ` -. 4 _I 5 ` ( ~ ex-id ).  (Contributed by NM,
       13-Aug-1995.) $)
    df-id $a |- _I = { <. x , y >. | x = y } $.
  $}

  ${
    $d w z x $.  $d w z y $.
    $( A stronger version of ~ df-id that doesn't require ` x ` and ` y ` to be
       distinct.  Ordinarily, we wouldn't use this as a definition, since
       non-distinct dummy variables would make soundness verification more
       difficult (as the proof here shows).  The proof can be instructive in
       showing how distinct variable requirements may be eliminated, a task
       that is not necessarily obvious.  (Contributed by NM, 5-Feb-2008.)
       (Revised by Mario Carneiro, 18-Nov-2016.) $)
    dfid3 $p |- _I = { <. x , y >. | x = y } $=
      ( vz vw weq copab cv cop wa wex cab wb exbii opeq2 eqeq2d equequ2 anbi12d
      wceq nfnae nfcvd cid df-id wal ancom equcom anbi1i bitri equsexvw biantru
      equid 3bitri nfe1 19.9 bitr4i sps drex1 drex2 syl5bb wn nfopd nfeqd nfand
      nfcvf2 wi a1i cbvexd exbid pm2.61i abbii df-opab 3eqtr4i eqtri ) UAACEZAC
      FZABEZABFZACUBDGZAGZCGZHZRZVMIZCJZAJZDKVQVRBGZHZRZVOIZBJZAJZDKVNVPWDWJDVO
      AUCZWDWJLWDVQVRVRHZRZAAEZIZAJZAJZWKWJWDWPWQWCWOAWCCAEZWAIZCJWMWOWBWSCWBVM
      WAIWSWAVMUDVMWRWAACUEUFUGMWAWMCAWRVTWLVQVSVRVRNOUHWNWMAUJUIUKMWPAWOAULUMU
      NWPWIABAWOWHABVOWOWHLAVOWMWGWNVOVOWLWFVQVRWEVRNOABAPQUOUPUQURWKUSZWCWIAAB
      ASWTWBWHCBABBSWTWAVMBWTBVQVTWTBVQTWTBVRVSABVCZWTBVSTZUTVAWTBVRVSXAXBVAVBC
      BEZWBWHLVDWTXCWAWGVMVOXCVTWFVQVSWEVRNOCBAPQVEVFVGVHVIVMACDVJVOABDVJVKVL
      $.
  $}

  ${
    $d x y $.
    $( The identity function using maps-to notation.  (Contributed by Scott
       Fenton, 15-Dec-2017.) $)
    dfid4 $p |- _I = ( x e. _V |-> x ) $=
      ( vy weq copab cv cvv wcel wa cid equcom vex biantrur bitri opabbii df-id
      cmpt df-mpt 3eqtr4i ) ABCZABDAEZFGZBACZHZABDIAFTPSUCABSUBUCABJUAUBAKLMNAB
      OABFTQR $.
  $}

  $( Alternate definition of the identity relation.  (Contributed by NM,
     15-Mar-2007.) $)
  dfid2 $p |- _I = { <. x , x >. | x = x } $=
    ( dfid3 ) AAB $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The membership (or epsilon) relation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c _E $. $( Letter E (for the membership/epsilon relation). $)


  $( Extend class notation to include the membership/epsilon relation. $)
  cep $a class _E $.

  ${
    $d x y $.
    $( Define the membership relation, or epsilon relation.  Similar to
       Definition 6.22 of [TakeutiZaring] p. 30.  The epsilon relation and set
       membership are the same, that is, ` ( A _E B <-> A e. B ) ` when ` B `
       is a set by ~ epelg .  Thus, ` 5 _E { 1 , 5 } ` ( ~ ex-eprel ).
       (Contributed by NM, 13-Aug-1995.) $)
    df-eprel $a |- _E = { <. x , y >. | x e. y } $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( The epsilon relation and membership are the same.  General version of
       ~ epel .  (Contributed by Scott Fenton, 27-Mar-2011.)  (Revised by Mario
       Carneiro, 28-Apr-2015.) $)
    epelg $p |- ( B e. V -> ( A _E B <-> A e. B ) ) $=
      ( vx vy wcel cvv cep wbr wi cop df-br cv copab wceq wa wex vex sylbi a1i
      elopab pm3.2i opeqex mpbiri simpld adantr exlimivv df-eprel eleq2s eleq12
      elex wb brabga expcom pm5.21ndd ) BCFZAGFZABHIZABFZURUQJUPURABKZHFUQABHLU
      QUTDMZEMZFZDENZHUTVDFUTVAVBKOZVCPZEQDQUQVCDEUTUAVFUQDEVEUQVCVEUQBGFZVEUQV
      GPVAGFZVBGFZPVHVIDRERUBABVAVBUCUDUEUFUGSDEUHZUISTUSUQJUPABUKTUQUPURUSULVC
      USDEABHGCVAAVBBUJVJUMUNUO $.
  $}

  ${
    epelc.1 $e |- B e. _V $.
    $( The epsilon relationship and the membership relation are the same.
       (Contributed by Scott Fenton, 11-Apr-2012.) $)
    epelc $p |- ( A _E B <-> A e. B ) $=
      ( cvv wcel cep wbr wb epelg ax-mp ) BDEABFGABEHCABDIJ $.
  $}

  $( The epsilon relation and the membership relation are the same.
     (Contributed by NM, 13-Aug-1995.) $)
  epel $p |- ( x _E y <-> x e. y ) $=
    ( cv vex epelc ) ACBCBDE $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Partial and complete ordering
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
We have not yet defined relations ( ~ df-rel ), but here we introduce a
few related notions we will use to develop ordinals.  The class variable
` R ` is no different from other class variables, but it reminds us that
normally it represents what we will later call a "relation."
$)

  $( Declare new constant symbols. $)
  $c Po $.  $( Partial ordering predicate symbol (read: 'partial ordering'). $)
  $c Or $.  $( Strict complete ordering predicate symbol (read: 'orders'). $)

  $( Extend wff notation to include the strict partial ordering predicate.
     Read:  ' ` R ` is a partial order on ` A ` .' $)
  wpo $a wff R Po A $.

  $( Extend wff notation to include the strict complete ordering predicate.
     Read:  ' ` R ` orders ` A ` .' $)
  wor $a wff R Or A $.

  ${
    $d x y z R $.  $d x y z A $.
    $( Define the strict partial order predicate.  Definition of [Enderton]
       p. 168.  The expression ` R Po A ` means ` R ` is a partial order on
       ` A ` .  For example, ` < Po RR ` is true, while ` <_ Po RR ` is false
       ( ~ ex-po ).  (Contributed by NM, 16-Mar-1997.) $)
    df-po $a |- ( R Po A <-> A. x e. A A. y e. A A. z e. A
                ( -. x R x /\ ( ( x R y /\ y R z ) -> x R z ) ) ) $.

    $( Define the strict complete (linear) order predicate.  The expression
       ` R Or A ` is true if relationship ` R ` orders ` A ` .  For example,
       ` < Or RR ` is true ( ~ ltso ).  Equivalent to Definition 6.19(1) of
       [TakeutiZaring] p. 29.  (Contributed by NM, 21-Jan-1996.) $)
    df-so $a |- ( R Or A <-> ( R Po A /\ A. x e. A A. y e. A
                ( x R y \/ x = y \/ y R x ) ) ) $.
  $}

  ${
    $d x y z R $.  $d x y z A $.  $d x y z B $.
    $( Subset theorem for the partial ordering predicate.  (Contributed by NM,
       27-Mar-1997.)  (Proof shortened by Mario Carneiro, 18-Nov-2016.) $)
    poss $p |- ( A C_ B -> ( R Po B -> R Po A ) ) $=
      ( vx vy vz wss cv wbr wn wa wi wral wpo ssralv ralimdv syld df-po 3imtr4g
      ) ABGZDHZUACIJUAEHZCIUBFHZCIKUAUCCILKZFBMZEBMZDBMZUDFAMZEAMZDAMZBCNACNTUG
      UFDAMUJUFDABOTUFUIDATUFUEEAMUIUEEABOTUEUHEAUDFABOPQPQDEFBCRDEFACRS $.
  $}

  ${
    $d x y z R $.  $d x y z S $.  $d x y z A $.
    $( Equality theorem for partial ordering predicate.  (Contributed by NM,
       27-Mar-1997.) $)
    poeq1 $p |- ( R = S -> ( R Po A <-> S Po A ) ) $=
      ( vx vy vz wceq cv wbr wn wa wral wpo breq notbid anbi12d imbi12d ralbidv
      wi df-po 2ralbidv 3bitr4g ) BCGZDHZUDBIZJZUDEHZBIZUGFHZBIZKZUDUIBIZSZKZFA
      LZEALDALUDUDCIZJZUDUGCIZUGUICIZKZUDUICIZSZKZFALZEALDALABMACMUCUOVDDEAAUCU
      NVCFAUCUFUQUMVBUCUEUPUDUDBCNOUCUKUTULVAUCUHURUJUSUDUGBCNUGUIBCNPUDUIBCNQP
      RUADEFABTDEFACTUB $.
  $}

  $( Equality theorem for partial ordering predicate.  (Contributed by NM,
     27-Mar-1997.) $)
  poeq2 $p |- ( A = B -> ( R Po A <-> R Po B ) ) $=
    ( wceq wpo wss wi eqimss2 poss syl eqimss impbid ) ABDZACEZBCEZMBAFNOGBAHBA
    CIJMABFONGABKABCIJL $.

  ${
    $d R a b c $.  $d A a b c $.  $d x a b c $.
    nfpo.r $e |- F/_ x R $.
    nfpo.a $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for partial orders.  (Contributed by
       Stefan O'Rear, 20-Jan-2015.) $)
    nfpo $p |- F/ x R Po A $=
      ( va vb vc wpo cv wbr wn wa wi wral df-po nfcv nfbr nfan nfral nfim nfxfr
      nfn ) BCIFJZUDCKZLZUDGJZCKZUGHJZCKZMZUDUICKZNZMZHBOZGBOZFBOAFGHBCPUPAFBEU
      OAGBEUNAHBEUFUMAUEAAUDUDCAUDQZDUQRUCUKULAUHUJAAUDUGCUQDAUGQZRAUGUICURDAUI
      QZRSAUDUICUQDUSRUASTTTUB $.

    $( Bound-variable hypothesis builder for total orders.  (Contributed by
       Stefan O'Rear, 20-Jan-2015.) $)
    nfso $p |- F/ x R Or A $=
      ( va vb wor wpo cv wbr weq w3o wral wa df-so nfpo nfcv nfbr nfral nf3or
      nfv nfan nfxfr ) BCHBCIZFJZGJZCKZFGLZUGUFCKZMZGBNZFBNZOAFGBCPUEUMAABCDEQU
      LAFBEUKAGBEUHUIUJAAUFUGCAUFRZDAUGRZSUIAUBAUGUFCUODUNSUATTUCUD $.
  $}

  ${
    $d x y z R $.  $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.
    $( Properties of partial order relation in class notation.  (Contributed by
       NM, 27-Mar-1997.) $)
    pocl $p |- ( R Po A -> ( ( B e. A /\ C e. A /\ D e. A ) ->
               ( -. B R B /\ ( ( B R C /\ C R D ) -> B R D ) ) ) ) $=
      ( vx vy vz wcel wbr wa wi cv wceq breq1 imbi2d breq2 anbi2d wal wral r3al
      w3a wpo wn id breq12d notbid anbi1d imbi12d anbi12d imbi1d df-po 19.21bbi
      sylbb 19.21bi com12 vtocl3ga ) BAICAIDAIUBAEUCZBBEJZUDZBCEJZCDEJZKZBDEJZL
      ZKZURFMZVGEJZUDZVGGMZEJZVJHMZEJZKZVGVLEJZLZKZLURUTBVJEJZVMKZBVLEJZLZKZLUR
      UTVACVLEJZKZVTLZKZLURVFLFGHBCDAAAVGBNZVQWBURWGVIUTVPWAWGVHUSWGVGBVGBEWGUE
      ZWHUFUGWGVNVSVOVTWGVKVRVMVGBVJEOUHVGBVLEOUIUJPVJCNZWBWFURWIWAWEUTWIVSWDVT
      WIVRVAVMWCVJCBEQVJCVLEOUJUKRPVLDNZWFVFURWJWEVEUTWJWDVCVTVDWJWCVBVAVLDCEQR
      VLDBEQUIRPURVGAIVJAIVLAIUBZVQURWKVQLZHURWLHSZFGURVQHATGATFATWMGSFSFGHAEUL
      VQFGHAAAUAUNUMUOUPUQUP $.
  $}

  ${
    $d x y z A $.  $d x y z R $.  $d x y z ph $.
    ispod.1 $e |- ( ( ph /\ x e. A ) -> -. x R x ) $.
    ispod.2 $e |- ( ( ph /\ ( x e. A /\ y e. A /\ z e. A ) ) ->
                    ( ( x R y /\ y R z ) -> x R z ) ) $.
    $( Sufficient conditions for a partial order.  (Contributed by NM,
       9-Jul-2014.) $)
    ispod $p |- ( ph -> R Po A ) $=
      ( cv wbr wn wa wi wral wpo wcel w3a 3ad2antr1 jca ralrimivvva sylibr
      df-po ) ABIZUCFJKZUCCIZFJUEDIZFJLUCUFFJMZLZDENCENBENEFOAUHBCDEEEAUCEPZUEE
      PZUFEPZQLUDUGAUJUIUDUKGRHSTBCDEFUBUA $.
  $}

  ${
    $d x y z A $.  $d x y z ph $.  $d x y z R $.  $d x y z X $.  $d y z Y $.
    $d z Z $.
    swopolem.1 $e |- ( ( ph /\ ( x e. A /\ y e. A /\ z e. A ) ) ->
                    ( x R y -> ( x R z \/ z R y ) ) ) $.
    $( Perform the substitutions into the strict weak ordering law.
       (Contributed by Mario Carneiro, 31-Dec-2014.) $)
    swopolem $p |- ( ( ph /\ ( X e. A /\ Y e. A /\ Z e. A ) ) ->
                    ( X R Y -> ( X R Z \/ Z R Y ) ) ) $=
      ( cv wbr wo wi wral wcel wceq breq1 imbi12d breq2 w3a ralrimivvva orbi12d
      orbi1d orbi2d imbi2d rspc3v mpan9 ) ABKZCKZFLZUIDKZFLZULUJFLZMZNZDEOCEOBE
      OGEPHEPIEPUAGHFLZGIFLZIHFLZMZNZAUPBCDEEEJUBUPVAGUJFLZGULFLZUNMZNUQVCULHFL
      ZMZNBCDGHIEEEUIGQZUKVBUOVDUIGUJFRVGUMVCUNUIGULFRUDSUJHQZVBUQVDVFUJHGFTVHU
      NVEVCUJHULFTUESULIQZVFUTUQVIVCURVEUSULIGFTULIHFRUCUFUGUH $.
  $}

  ${
    $d x y z A $.  $d x y z R $.  $d x y z ph $.
    swopo.1 $e |- ( ( ph /\ ( y e. A /\ z e. A ) ) ->
                    ( y R z -> -. z R y ) ) $.
    swopo.2 $e |- ( ( ph /\ ( x e. A /\ y e. A /\ z e. A ) ) ->
                    ( x R y -> ( x R z \/ z R y ) ) ) $.
    $( A strict weak order is a partial order.  (Contributed by Mario Carneiro,
       9-Jul-2014.) $)
    swopo $p |- ( ph -> R Po A ) $=
      ( cv wcel wa wbr wn wi wral weq breq1 breq2 notbid imbi12d ralrimivva w3a
      id ancli rspc2va syl2anr pm2.01d 3adantr1 wo imp orcomd ord expimpd ispod
      sylan2d ) ABCDEFABIZEJZKUPUPFLZUQUQUQKCIZDIZFLZUTUSFLZMZNZDEOCEOURURMZNZA
      UQUQUQUCUDAVDCDEEGUAVDVFUPUTFLZUTUPFLZMZNCDUPUPEECBPZVAVGVCVIUSUPUTFQVJVB
      VHUSUPUTFRSTDBPZVGURVIVEUTUPUPFRVKVHURUTUPUPFQSTUEUFUGAUQUSEJZUTEJZUBKZVA
      VCUPUSFLZVGAVLVMVDUQGUHVNVOVCVGVNVOKZVBVGVPVGVBVNVOVGVBUIHUJUKULUMUOUN $.
  $}

  $( A partial order relation is irreflexive.  (Contributed by NM,
     27-Mar-1997.) $)
  poirr $p |- ( ( R Po A /\ B e. A ) -> -. B R B ) $=
    ( wcel wpo w3a wbr wn wa df-3an anabs1 anidm 3bitrri wi pocl simpld sylan2b
    imp ) BADZACEZSSSFZBBCGZHZUASSIZSIUDSSSSJSSKSLMTUAIUCUBUBIUBNZTUAUCUEIABBBC
    ORPQ $.

  $( A partial order relation is a transitive relation.  (Contributed by NM,
     27-Mar-1997.) $)
  potr $p |- ( ( R Po A /\ ( B e. A /\ C e. A /\ D e. A ) ) ->
             ( ( B R C /\ C R D ) -> B R D ) ) $=
    ( wpo wcel w3a wa wbr wn wi pocl imp simprd ) AEFZBAGCAGDAGHZIBBEJKZBCEJCDE
    JIBDEJLZPQRSIABCDEMNO $.

  $( A partial order relation has no 2-cycle loops.  (Contributed by NM,
     27-Mar-1997.) $)
  po2nr $p |- ( ( R Po A /\ ( B e. A /\ C e. A ) ) ->
              -. ( B R C /\ C R B ) ) $=
    ( wpo wcel wa wbr wn poirr adantrr wi potr 3exp2 com34 pm2.43d imp32 mtod )
    ADEZBAFZCAFZGGBCDHCBDHGZBBDHZSTUCIUAABDJKSTUAUBUCLZSTUAUDLSTUATUDSTUATUDABC
    BDMNOPQR $.

  $( A partial order relation has no 3-cycle loops.  (Contributed by NM,
     27-Mar-1997.) $)
  po3nr $p |- ( ( R Po A /\ ( B e. A /\ C e. A /\ D e. A ) ) ->
             -. ( B R C /\ C R D /\ D R B ) ) $=
    ( wpo wcel w3a wa wbr wn po2nr 3adantr2 df-3an potr anim1d syl5bi mtod ) AE
    FZBAGZCAGZDAGZHIZBCEJZCDEJZDBEJZHZBDEJZUFIZSTUBUIKUAABDELMUGUDUEIZUFIUCUIUD
    UEUFNUCUJUHUFABCDEOPQR $.

  ${
    $d x y z R $.
    $( Any relation is a partial ordering of the empty set.  (Contributed by
       NM, 28-Mar-1997.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    po0 $p |- R Po (/) $=
      ( vx vy vz c0 wpo cv wbr wn wa wi wral ral0 df-po mpbir ) EAFBGZPAHIPCGZA
      HQDGZAHJPRAHKJDELCELZBELSBMBCDEANO $.
  $}

  ${
    $d R v w x y z $.  $d S v w z $.  $d X v w y z $.  $d Y x z $.
    $d A v w x z $.  $d B v w x z $.
    pofun.1 $e |- S = { <. x , y >. | X R Y } $.
    pofun.2 $e |- ( x = y -> X = Y ) $.
    $( A function preserves a partial order relation.  (Contributed by Jeff
       Madsen, 18-Jun-2011.) $)
    pofun $p |- ( ( R Po B /\ A. x e. A X e. B ) -> S Po A ) $=
      ( vv vw vz wcel wa cv wbr csb weq cop wpo wn nfcsb1v nfel1 csbeq1a eleq1d
      wral rspc impcom poirr copab df-br eleq2i nfcv nfbr nfv vex breq1d csbeq1
      csbie syl5eqr breq2d opelopabf 3bitri sylnibr sylan2 anassrs w3a wi com12
      3anim123d imp adantll potr anbi12i 3imtr4g adantlr syldan ispod ) DEUAZGD
      NZACUGZOZKLMCFVTWBKPZCNZWDWDFQZUBZWBWEOVTAWDGRZDNZWGWEWBWIWAWIAWDCAWHDAWD
      GUCZUDAKSZGWHDAWDGUEZUFUHZUIVTWIOWHWHEQZWFDWHEUJWFWDWDTZFNWOGHEQZABUKZNWN
      WDWDFULFWQWOIUMWPWHHEQZWNABWDWDAWHHEWJAEUNZAHUNZUOZWNBUPKUQZXBWKGWHHEWLUR
      ZBKSZHWHWHEXDHABPZGRZWHAXEGHBUQJUTZAXEWDGUSVAVBVCVDVEVFVGWCWELPZCNZMPZCNZ
      VHZWIAXHGRZDNZAXJGRZDNZVHZWDXHFQZXHXJFQZOZWDXJFQZVIZWBXLXQVTWBXLXQWBWEWIX
      IXNXKXPWEWBWIWMVJXIWBXNWAXNAXHCAXMDAXHGUCZUDALSZGXMDAXHGUEZUFUHVJXKWBXPWA
      XPAXJCAXODAXJGUCUDAMSGXODAXJGUEUFUHVJVKVLVMVTXQYBWBVTXQOWHXMEQZXMXOEQZOWH
      XOEQZXTYADWHXMXOEVNXRYFXSYGXRWDXHTZFNYIWQNYFWDXHFULFWQYIIUMWPWRYFABWDXHXA
      YFBUPXBLUQZXCBLSZHXMWHEYKHXFXMXGAXEXHGUSVAVBVCVDXSXHXJTZFNYLWQNYGXHXJFULF
      WQYLIUMWPXMHEQYGABXHXJAXMHEYCWSWTUOYGBUPYJMUQZYDGXMHEYEURBMSZHXOXMEYNHXFX
      OXGAXEXJGUSVAZVBVCVDVOYAWDXJTZFNYPWQNYHWDXJFULFWQYPIUMWPWRYHABWDXJXAYHBUP
      XBYMXCYNHXOWHEYOVBVCVDVPVQVRVS $.
  $}

  ${
    $d x y R $.  $d x y A $.
    $( A strict linear order is a strict partial order.  (Contributed by NM,
       28-Mar-1997.) $)
    sopo $p |- ( R Or A -> R Po A ) $=
      ( vx vy wor wpo cv wbr weq w3o wral df-so simplbi ) ABEABFCGZDGZBHCDIONBH
      JDAKCAKCDABLM $.
  $}

  ${
    $d x y R $.  $d x y A $.  $d x y B $.
    $( Subset theorem for the strict ordering predicate.  (Contributed by NM,
       16-Mar-1997.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    soss $p |- ( A C_ B -> ( R Or B -> R Or A ) ) $=
      ( vx vy wss wpo cv wbr wral wa wor wcel wi wal ssel anim12d 3imtr4g df-so
      r2al weq w3o poss imim1d 2alimdv ) ABFZBCGZDHZEHZCIDEUAUIUHCIUBZEBJDBJZKA
      CGZUJEAJDAJZKBCLACLUFUGULUKUMABCUCUFUHBMZUIBMZKZUJNZEODOUHAMZUIAMZKZUJNZE
      ODOUKUMUFUQVADEUFUTUPUJUFURUNUSUOABUHPABUIPQUDUEUJDEBBTUJDEAATRQDEBCSDEAC
      SR $.
  $}

  ${
    $d x y R $.  $d x y S $.  $d x y A $.
    $( Equality theorem for the strict ordering predicate.  (Contributed by NM,
       16-Mar-1997.) $)
    soeq1 $p |- ( R = S -> ( R Or A <-> S Or A ) ) $=
      ( vx vy wceq wpo cv wbr w3o wral wa wor poeq1 breq biidd 2ralbidv anbi12d
      3orbi123d df-so 3bitr4g ) BCFZABGZDHZEHZBIZUDUEFZUEUDBIZJZEAKDAKZLACGZUDU
      ECIZUGUEUDCIZJZEAKDAKZLABMACMUBUCUKUJUOABCNUBUIUNDEAAUBUFULUGUGUHUMUDUEBC
      OUBUGPUEUDBCOSQRDEABTDEACTUA $.
  $}

  $( Equality theorem for the strict ordering predicate.  (Contributed by NM,
     16-Mar-1997.) $)
  soeq2 $p |- ( A = B -> ( R Or A <-> R Or B ) ) $=
    ( wceq wor wss wa wi wb soss anim12i eqss dfbi2 3imtr4i bicomd ) ABDZBCEZAC
    EZABFZBAFZGQRHZRQHZGPQRISUATUBABCJBACJKABLQRMNO $.

  $( A strict order relation is irreflexive.  (Contributed by NM,
     24-Nov-1995.) $)
  sonr $p |- ( ( R Or A /\ B e. A ) -> -. B R B ) $=
    ( wor wpo wcel wbr wn sopo poirr sylan ) ACDACEBAFBBCGHACIABCJK $.

  $( A strict order relation is a transitive relation.  (Contributed by NM,
     21-Jan-1996.) $)
  sotr $p |- ( ( R Or A /\ ( B e. A /\ C e. A /\ D e. A ) ) ->
             ( ( B R C /\ C R D ) -> B R D ) ) $=
    ( wor wpo wcel w3a wbr wa wi sopo potr sylan ) AEFAEGBAHCAHDAHIBCEJCDEJKBDE
    JLAEMABCDENO $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y R $.
    $( A strict order relation is linear (satisfies trichotomy).  (Contributed
       by NM, 21-Jan-1996.) $)
    solin $p |- ( ( R Or A /\ ( B e. A /\ C e. A ) ) ->
              ( B R C \/ B = C \/ C R B ) ) $=
      ( vx vy wcel wa wor wbr wceq w3o cv wi breq1 eqeq1 breq2 3orbi123d imbi2d
      wral eqeq2 wpo df-so rsp2 simplbiim com12 vtocl2ga impcom ) BAGCAGHADIZBC
      DJZBCKZCBDJZLZUIEMZFMZDJZUNUOKZUOUNDJZLZNUIBUODJZBUOKZUOBDJZLZNUIUMNEFBCA
      AUNBKZUSVCUIVDUPUTUQVAURVBUNBUODOUNBUOPUNBUODQRSUOCKZVCUMUIVEUTUJVAUKVBUL
      UOCBDQUOCBUAUOCBDORSUIUNAGUOAGHZUSUIADUBUSFATEATVFUSNEFADUCUSEFAAUDUEUFUG
      UH $.
  $}

  $( A strict order relation has no 2-cycle loops.  (Contributed by NM,
     21-Jan-1996.) $)
  so2nr $p |- ( ( R Or A /\ ( B e. A /\ C e. A ) ) ->
              -. ( B R C /\ C R B ) ) $=
    ( wor wpo wcel wa wbr wn sopo po2nr sylan ) ADEADFBAGCAGHBCDICBDIHJADKABCDL
    M $.

  $( A strict order relation has no 3-cycle loops.  (Contributed by NM,
     21-Jan-1996.) $)
  so3nr $p |- ( ( R Or A /\ ( B e. A /\ C e. A /\ D e. A ) ) ->
             -. ( B R C /\ C R D /\ D R B ) ) $=
    ( wor wpo wcel w3a wbr wn sopo po3nr sylan ) AEFAEGBAHCAHDAHIBCEJCDEJDBEJIK
    AELABCDEMN $.

  $( A strict order relation satisfies strict trichotomy.  (Contributed by NM,
     19-Feb-1996.) $)
  sotric $p |- ( ( R Or A /\ ( B e. A /\ C e. A ) ) ->
              ( B R C <-> -. ( B = C \/ C R B ) ) ) $=
    ( wor wcel wa wceq wo wn wi sonr breq2 notbid syl5ibcom adantrr so2nr imnan
    wbr sylibr con2d jaod w3o solin 3orass sylib ord impbid con2bid ) ADEZBAFZC
    AFZGGZBCHZCBDSZIZBCDSZUMUPUQJZUMUNURUOUJUKUNURKULUJUKGBBDSZJUNURABDLUNUSUQB
    CBDMNOPUMUQUOUMUQUOGJUQUOJKABCDQUQUORTUAUBUMUQUPUMUQUNUOUCUQUPIABCDUDUQUNUO
    UEUFUGUHUI $.

  $( Trichotomy law for strict order relation.  (Contributed by NM,
     9-Apr-1996.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
  sotrieq $p |- ( ( R Or A /\ ( B e. A /\ C e. A ) ) ->
              ( B = C <-> -. ( B R C \/ C R B ) ) ) $=
    ( wor wcel wa wo wceq wn sonr adantrr pm1.2 nsyl breq2 breq1 orbi12d notbid
    wbr sylib syl5ibcom con2d w3o solin 3orass or12 ord impbid con2bid ) ADEZBA
    FZCAFZGGZBCDSZCBDSZHZBCIZUMUPUQJUMUQUPUMBBDSZURHZJUQUPJUMURUSUJUKURJULABDKL
    URMNUQUSUPUQURUNURUOBCBDOBCBDPQRUAUBUMUQUPUMUNUQUOHHZUQUPHUMUNUQUOUCUTABCDU
    DUNUQUOUETUNUQUOUFTUGUHUI $.

  $( Trichotomy law for strict order relation.  (Contributed by NM,
     5-May-1999.) $)
  sotrieq2 $p |- ( ( R Or A /\ ( B e. A /\ C e. A ) ) ->
              ( B = C <-> ( -. B R C /\ -. C R B ) ) ) $=
    ( wor wcel wa wceq wbr wo wn sotrieq ioran syl6bb ) ADEBAFCAFGGBCHBCDIZCBDI
    ZJKOKPKGABCDLOPMN $.

  $( A transitivity relation.  (Read ` B <_ C ` and ` C < D ` implies
     ` B < D ` .)  (Contributed by Mario Carneiro, 10-May-2013.) $)
  sotr2 $p |- ( ( R Or A /\ ( B e. A /\ C e. A /\ D e. A ) ) ->
                ( ( -. C R B /\ C R D ) -> B R D ) ) $=
    ( wor wcel w3a wa wbr wn wceq wo wi sotric ancom2s 3adantr3 con2bid breq1
    wb biimpd a1i sotr expd jaod sylbird impd ) AEFZBAGZCAGZDAGZHIZCBEJZKZCDEJZ
    BDEJZULUNCBLZBCEJZMZUOUPNZULUMUSUHUIUJUMUSKTZUKUHUJUIVAACBEOPQRULUQUTURUQUT
    NULUQUOUPCBDESUAUBULURUOUPABCDEUCUDUEUFUG $.

  ${
    $d x y R $.  $d x y A $.  $d x y ph $.
    issod.1 $e |- ( ph -> R Po A ) $.
    issod.2 $e |- ( ( ph /\ ( x e. A /\ y e. A ) ) ->
                    ( x R y \/ x = y \/ y R x ) ) $.
    $( An irreflexive, transitive, linear relation is a strict ordering.
       (Contributed by NM, 21-Jan-1996.)  (Revised by Mario Carneiro,
       9-Jul-2014.) $)
    issod $p |- ( ph -> R Or A ) $=
      ( wpo cv wbr weq w3o wral wor ralrimivva df-so sylanbrc ) ADEHBIZCIZEJBCK
      SREJLZCDMBDMDENFATBCDDGOBCDEPQ $.
  $}

  ${
    $d x y z R $.  $d x y z A $.
    issoi.1 $e |- ( x e. A -> -. x R x ) $.
    issoi.2 $e |- ( ( x e. A /\ y e. A /\ z e. A ) ->
                  ( ( x R y /\ y R z ) -> x R z ) ) $.
    issoi.3 $e |- ( ( x e. A /\ y e. A ) -> ( x R y \/ x = y \/ y R x ) ) $.
    $( An irreflexive, transitive, linear relation is a strict ordering.
       (Contributed by NM, 21-Jan-1996.)  (Revised by Mario Carneiro,
       9-Jul-2014.) $)
    issoi $p |- R Or A $=
      ( wor wtru cv wcel wbr wn adantl w3a wa wi ispod weq w3o issod trud ) DEI
      JABDEJABCDEAKZDLZUDUDEMNJFOUEBKZDLZCKZDLPUDUFEMZUFUHEMQUDUHEMRJGOSUEUGQUI
      ABTUFUDEMUAJHOUBUC $.
  $}

  ${
    $d x y z R $.  $d x y z A $.
    isso2i.1 $e |- ( ( x e. A /\ y e. A ) ->
                     ( x R y <-> -. ( x = y \/ y R x ) ) ) $.
    isso2i.2 $e |- ( ( x e. A /\ y e. A /\ z e. A ) ->
                     ( ( x R y /\ y R z ) -> x R z ) ) $.
    $( Deduce strict ordering from its properties.  (Contributed by NM,
       29-Jan-1996.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    isso2i $p |- R Or A $=
      ( cv wcel wbr wn wa weq wo equid orci wb wi eleq1 anbi2d breq1 notbid w3o
      equequ2 orbi12d breq2 bibi12d imbi12d con2bid chvarv mpbii anidms biimprd
      orrd 3orass sylibr issoi ) ABCDEAHZDIZURUREJZKZUSUSLZAAMZUTNZVAVCUTAOPUSB
      HZDIZLZABMZVEUREJZNZURVEEJZKZQZRVBVDVAQZRBABAMZVGVBVMVNVOVFUSUSVEURDSTVOV
      JVDVLVAVOVHVCVIUTBAAUDVEURUREUAUEVOVKUTVEURUREUFUBUGUHVGVKVJFUIZUJUKULGVG
      VKVJNVKVHVIUCVGVKVJVGVJVLVPUMUNVKVHVIUOUPUQ $.
  $}

  ${
    $d x y R $.
    $( Any relation is a strict ordering of the empty set.  (Contributed by NM,
       16-Mar-1997.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
    so0 $p |- R Or (/) $=
      ( vx vy c0 wor wpo cv wbr weq w3o wral po0 ral0 df-so mpbir2an ) DAEDAFBG
      ZCGZAHBCIQPAHJCDKZBDKALRBMBCDANO $.
  $}

  ${
    $d x y z A $.  $d x y z R $.
    $( A totally ordered set has at most one minimal element.  (Contributed by
       Mario Carneiro, 24-Jun-2015.)  (Revised by NM, 16-Jun-2017.) $)
    somo $p |- ( R Or A -> E* x e. A A. y e. A -. y R x ) $=
      ( vz wor cv wbr wn wral wa weq wi wrmo wcel breq1 notbid rspcv wo sylib
      im2anan9 ancomsd imp ioran w3o solin df-3or or32 ord syl5bir syl5 pm2.43d
      exp4b ralrimivv breq2 ralbidv rmo4 sylibr ) CDFZBGZAGZDHZIZBCJZUTEGZDHZIZ
      BCJZKZAELZMZECJACJVDACNUSVKAECCUSVACOZVECOZKZVKUSVNVNVIVJVNVIKVAVEDHZIZVE
      VADHZIZKZUSVNKZVJVNVIVSVNVHVDVSVLVHVPVMVDVRVGVPBVACBALVFVOUTVAVEDPQRVCVRB
      VECBELVBVQUTVEVADPQRUAUBUCVSVOVQSZIVTVJVOVQUDVTWAVJVTVOVJSVQSZWAVJSVTVOVJ
      VQUEWBCVAVEDUFVOVJVQUGTVOVJVQUHTUIUJUKUMULUNVDVHAECVJVCVGBCVJVBVFVAVEUTDU
      OQUPUQUR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Founded and well-ordering relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constant symbols. $)
  $c Fr $. $( Well-founded predicate symbol (read: 'well-founded'). $)
  $c Se $. $( Set-like predicate symbol (read: 'set-like'). $)
  $c We $. $( Well-ordering predicate symbol (read: 'well-orders') $)

  $( Extend wff notation to include the well-founded predicate.  Read:  ' ` R `
     is a well-founded relation on ` A ` .' $)
  wfr $a wff R Fr A $.

  $( Extend wff notation to include the set-like predicate.  Read:  ' ` R ` is
     set-like on ` A ` .' $)
  wse $a wff R Se A $.

  $( Extend wff notation to include the well-ordering predicate.  Read:
      ' ` R ` well-orders ` A ` .' $)
  wwe $a wff R We A $.

  ${
    $d x y z R $.  $d x y z A $.
    $( Define the well-founded relation predicate.  Definition 6.24(1) of
       [TakeutiZaring] p. 30.  For alternate definitions, see ~ dffr2 and
       ~ dffr3 .  (Contributed by NM, 3-Apr-1994.) $)
    df-fr $a |- ( R Fr A <-> A. x ( ( x C_ A /\ x =/= (/) ) ->
                E. y e. x A. z e. x -. z R y ) ) $.

    $( Define the set-like predicate.  (Contributed by Mario Carneiro,
       19-Nov-2014.) $)
    df-se $a |- ( R Se A <-> A. x e. A { y e. A | y R x } e. _V ) $.
  $}

  $( Define the well-ordering predicate.  For an alternate definition, see
     ~ dfwe2 .  (Contributed by NM, 3-Apr-1994.) $)
  df-we $a |- ( R We A <-> ( R Fr A /\ R Or A ) ) $.

  ${
    $d x y z A $.  $d x y z B $.  $d x y z R $.  $d x y V $.
    $( Property of well-founded relation (one direction of definition).
       (Contributed by NM, 18-Mar-1997.) $)
    fri $p |- ( ( ( B e. C /\ R Fr A ) /\ ( B C_ A /\ B =/= (/) ) ) ->
                E. x e. B A. y e. B -. y R x ) $=
      ( vz wcel wfr wss c0 wne wa cv wbr wn wral wrex wi wal df-fr wceq anbi12d
      sseq1 neeq1 raleq rexeqbi1dv imbi12d spcgv syl5bi imp31 ) DEHZCFIZDCJZDKL
      ZMZBNANFOPZBDQZADRZUMGNZCJZUTKLZMZUQBUTQZAUTRZSZGTULUPUSSZGABCFUAVFVGGDEU
      TDUBZVCUPVEUSVHVAUNVBUOUTDCUDUTDKUEUCVDURAUTDUQBUTDUFUGUHUIUJUK $.

    $( The ` R ` -preimage of an element of the base set in a set-like relation
       is a set.  (Contributed by Mario Carneiro, 19-Nov-2014.) $)
    seex $p |- ( ( R Se A /\ B e. A ) -> { x e. A | x R B } e. _V ) $=
      ( vy wse cv wbr crab cvv wcel wral df-se wceq breq2 rabbidv eleq1d sylanb
      rspccva ) BDFAGZEGZDHZABIZJKZEBLCBKTCDHZABIZJKZEABDMUDUGECBUACNZUCUFJUHUB
      UEABUACTDOPQSR $.

    $( Any relation on a set is set-like on it.  (Contributed by Mario
       Carneiro, 22-Jun-2015.) $)
    exse $p |- ( A e. V -> R Se A ) $=
      ( vy vx wcel cv wbr crab cvv wral wse rabexg ralrimivw df-se sylibr ) ACF
      ZDGEGBHZDAIJFZEAKABLQSEARDACMNEDABOP $.
  $}

  ${
    $d x y z A $.  $d x y z R $.
    $( Alternate definition of well-founded relation.  Similar to Definition
       6.21 of [TakeutiZaring] p. 30.  (Contributed by NM, 17-Feb-2004.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.)  (Proof shortened by
       Mario Carneiro, 23-Jun-2015.) $)
    dffr2 $p |- ( R Fr A <-> A. x ( ( x C_ A /\ x =/= (/) ) ->
                E. y e. x { z e. x | z R y } = (/) ) ) $=
      ( wfr cv wss c0 wne wa wbr wn wral wrex wi wal crab wceq df-fr rabeq0
      rexbii imbi2i albii bitr4i ) DEFAGZDHUFIJKZCGBGELZMCUFNZBUFOZPZAQUGUHCUFR
      ISZBUFOZPZAQABCDETUNUKAUMUJUGULUIBUFUHCUFUAUBUCUDUE $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.
    frc.1 $e |- B e. _V $.
    $( Property of well-founded relation (one direction of definition using
       class variables).  (Contributed by NM, 17-Feb-2004.)  (Revised by Mario
       Carneiro, 19-Nov-2014.) $)
    frc $p |- ( ( R Fr A /\ B C_ A /\ B =/= (/) ) ->
                E. x e. B { y e. B | y R x } = (/) ) $=
      ( wfr wss c0 wne w3a cv wbr wn wral wrex crab wceq cvv wcel wa fri mpanl1
      3impb rabeq0 rexbii sylibr ) CEGZDCHZDIJZKBLALEMZNBDOZADPZUKBDQIRZADPUHUI
      UJUMDSTUHUIUJUAUMFABCDSEUBUCUDUNULADUKBDUEUFUG $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z R $.  $d x y S $.
    $( Subset theorem for the well-founded predicate.  Exercise 1 of
       [TakeutiZaring] p. 31.  (Contributed by NM, 3-Apr-1994.)  (Proof
       shortened by Andrew Salmon, 25-Jul-2011.) $)
    frss $p |- ( A C_ B -> ( R Fr B -> R Fr A ) ) $=
      ( vx vz vy wss cv c0 wne wa wbr wn wral wrex wi wal wfr sstr2 df-fr com12
      anim1d imim1d alimdv 3imtr4g ) ABGZDHZBGZUGIJZKZEHFHCLMEUGNFUGOZPZDQUGAGZ
      UIKZUKPZDQBCRACRUFULUODUFUNUJUKUFUMUHUIUMUFUHUGABSUAUBUCUDDFEBCTDFEACTUE
      $.

    $( Subset theorem for the set-like predicate.  (Contributed by Mario
       Carneiro, 24-Jun-2015.) $)
    sess1 $p |- ( R C_ S -> ( S Se A -> R Se A ) ) $=
      ( vy vx wss cv wbr crab cvv wcel wral wi simpl ssbrd ss2rabdv ssexg df-se
      wse wa ex syl ralimdv 3imtr4g ) BCFZDGZEGZCHZDAIZJKZEALUFUGBHZDAIZJKZEALA
      CSABSUEUJUMEAUEULUIFZUJUMMUEUKUHDAUEUFAKZTBCUFUGUEUONOPUNUJUMULUIJQUAUBUC
      EDACREDABRUD $.

    $( Subset theorem for the set-like predicate.  (Contributed by Mario
       Carneiro, 24-Jun-2015.) $)
    sess2 $p |- ( A C_ B -> ( R Se B -> R Se A ) ) $=
      ( vy vx wss cv wbr crab cvv wcel wral wse ssralv wi rabss2 ssexg ex df-se
      syl ralimdv syld 3imtr4g ) ABFZDGEGCHZDBIZJKZEBLZUEDAIZJKZEALZBCMACMUDUHU
      GEALUKUGEABNUDUGUJEAUDUIUFFZUGUJOUEDABPULUGUJUIUFJQRTUAUBEDBCSEDACSUC $.
  $}

  ${
    $d x y z R $.  $d x y z S $.  $d x y z A $.
    $( Equality theorem for the well-founded predicate.  (Contributed by NM,
       9-Mar-1997.) $)
    freq1 $p |- ( R = S -> ( R Fr A <-> S Fr A ) ) $=
      ( vx vz vy wceq cv wss c0 wne wa wbr wn wral wrex wi wal wfr df-fr notbid
      breq rexralbidv imbi2d albidv 3bitr4g ) BCGZDHZAIUHJKLZEHZFHZBMZNZEUHOFUH
      PZQZDRUIUJUKCMZNZEUHOFUHPZQZDRABSACSUGUOUSDUGUNURUIUGUMUQFEUHUHUGULUPUJUK
      BCUBUAUCUDUEDFEABTDFEACTUF $.
  $}

  $( Equality theorem for the well-founded predicate.  (Contributed by NM,
     3-Apr-1994.) $)
  freq2 $p |- ( A = B -> ( R Fr A <-> R Fr B ) ) $=
    ( wceq wfr wss wi eqimss2 frss syl eqimss impbid ) ABDZACEZBCEZMBAFNOGBAHBA
    CIJMABFONGABKABCIJL $.

  $( Equality theorem for the set-like predicate.  (Contributed by Mario
     Carneiro, 24-Jun-2015.) $)
  seeq1 $p |- ( R = S -> ( R Se A <-> S Se A ) ) $=
    ( wceq wse wss wi eqimss2 sess1 syl eqimss impbid ) BCDZABEZACEZMCBFNOGCBHA
    CBIJMBCFONGBCKABCIJL $.

  $( Equality theorem for the set-like predicate.  (Contributed by Mario
     Carneiro, 24-Jun-2015.) $)
  seeq2 $p |- ( A = B -> ( R Se A <-> R Se B ) ) $=
    ( wceq wse wss wi eqimss2 sess2 syl eqimss impbid ) ABDZACEZBCEZMBAFNOGBAHB
    ACIJMABFONGABKABCIJL $.

  ${
    $d R a b c $.  $d A a b c $.  $d x a b c $.
    nffr.r $e |- F/_ x R $.
    nffr.a $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for well-founded relations.
       (Contributed by Stefan O'Rear, 20-Jan-2015.)  (Revised by Mario
       Carneiro, 14-Oct-2016.) $)
    nffr $p |- F/ x R Fr A $=
      ( va vc vb wfr cv wss c0 wne wa wbr wn wral wrex wi nfcv wal nfss nfv nfn
      df-fr nfan nfbr nfral nfrex nfim nfal nfxfr ) BCIFJZBKZUMLMZNZGJZHJZCOZPZ
      GUMQZHUMRZSZFUAAFHGBCUEVCAFUPVBAUNUOAAUMBAUMTZEUBUOAUCUFVAAHUMVDUTAGUMVDU
      SAAUQURCAUQTDAURTUGUDUHUIUJUKUL $.

    $( Bound-variable hypothesis builder for set-like relations.  (Contributed
       by Mario Carneiro, 24-Jun-2015.)  (Revised by Mario Carneiro,
       14-Oct-2016.) $)
    nfse $p |- F/ x R Se A $=
      ( va vb wse cv wbr crab cvv wcel wral df-se nfcv nfbr nfrab nfel1 nfral
      nfxfr ) BCHFIZGIZCJZFBKZLMZGBNAGFBCOUFAGBEAUELUDAFBAUBUCCAUBPDAUCPQERSTUA
      $.

    $( Bound-variable hypothesis builder for well-orderings.  (Contributed by
       Stefan O'Rear, 20-Jan-2015.)  (Revised by Mario Carneiro,
       14-Oct-2016.) $)
    nfwe $p |- F/ x R We A $=
      ( wwe wfr wor wa df-we nffr nfso nfan nfxfr ) BCFBCGZBCHZIABCJOPAABCDEKAB
      CDELMN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.
    $( A well-founded relation is irreflexive.  Special case of Proposition
       6.23 of [TakeutiZaring] p. 30.  (Contributed by NM, 2-Jan-1994.)
       (Revised by Mario Carneiro, 22-Jun-2015.) $)
    frirr $p |- ( ( R Fr A /\ B e. A ) -> -. B R B ) $=
      ( vx vy wfr wcel wa cv wbr csn crab c0 wceq wrex wss adantl wral notbid
      wn wne simpl snssi snnzg snex frc syl3anc wb rabeq0 ralbidv syl5bb rexsng
      breq2 breq1 ralsng bitrd mpbid ) ACFZBAGZHZDIZEIZCJZDBKZLMNZEVDOZBBCJZTZU
      TURVDAPZVDMUAZVFURUSUBUSVIURBAUCQUSVJURBAUDQEDAVDCBUEUFUGUSVFVHUHURUSVFVA
      BCJZTZDVDRZVHVEVMEBAVEVCTZDVDRVBBNZVMVCDVDUIVOVNVLDVDVOVCVKVBBVACUMSUJUKU
      LVLVHDBAVABNVKVGVABBCUNSUOUPQUQ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y R $.
    $( A well-founded relation has no 2-cycle loops.  Special case of
       Proposition 6.23 of [TakeutiZaring] p. 30.  (Contributed by NM,
       30-May-1994.)  (Revised by Mario Carneiro, 22-Jun-2015.) $)
    fr2nr $p |- ( ( R Fr A /\ ( B e. A /\ C e. A ) ) ->
                -. ( B R C /\ C R B ) ) $=
      ( vx vy wcel wa wbr wn wo cv wral cvv adantl ad2antrl wceq notbid ralbidv
      breq2 wfr cpr wrex wss wne prex a1i simpl prssi prnzg fri syl22anc rexprg
      c0 wb mpbid wi prid2g ad2antll breq1 syl prid1g orim12d mpd orcomd sylibr
      rspcv ianor ) ADUAZBAGZCAGZHZHZBCDIZJZCBDIZJZKVNVPHJVMVQVOVMELZBDIZJZEBCU
      BZMZVRCDIZJZEWAMZKZVQVOKVMVRFLZDIZJZEWAMZFWAUCZWFVMWANGZVIWAAUDZWAUNUEZWK
      WLVMBCUFUGVIVLUHVLWMVIBCAUIOVJWNVIVKBCAUJPFEAWANDUKULVLWKWFUOVIWJWBWEFBCA
      AWGBQZWIVTEWAWOWHVSWGBVRDTRSWGCQZWIWDEWAWPWHWCWGCVRDTRSUMOUPVMWBVQWEVOVMC
      WAGZWBVQUQVKWQVIVJBCAURUSVTVQECWAVRCQVSVPVRCBDUTRVGVAVMBWAGZWEVOUQVJWRVIV
      KBCAVBPWDVOEBWAVRBQWCVNVRBCDUTRVGVAVCVDVEVNVPVHVF $.
  $}

  ${
    $d x y z R $.
    $( Any relation is well-founded on the empty set.  (Contributed by NM,
       17-Sep-1993.) $)
    fr0 $p |- R Fr (/) $=
      ( vx vz vy c0 wfr cv wss wne wa wbr crab wceq wrex dffr2 ss0 a1d necon1ad
      wi wn imp mpgbir ) EAFBGZEHZUCEIZJCGDGAKCUCLEMDUCNZSBBDCEAOUDUEUFUDUFUCEU
      DUCEMUFTUCPQRUAUB $.
  $}

  ${
    $d A x y z $.  $d R x y z $.  $d ph y z $.  $d ps x z $.
    frminex.1 $e |- A e. _V $.
    frminex.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( If an element of a well-founded set satisfies a property ` ph ` , then
       there is a minimal element that satisfies ` ph ` .  (Contributed by Jeff
       Madsen, 18-Jun-2010.)  (Proof shortened by Mario Carneiro,
       18-Nov-2016.) $)
    frminex $p |- ( R Fr A -> ( E. x e. A ph ->
                      E. x e. A ( ph /\ A. y e. A ( ps -> -. y R x ) ) ) ) $=
      ( vz wrex crab c0 wne cv wbr wn wi wral wa cvv wfr rabn0 wss rabex ssrab2
      wcel fri ralrab rexbii weq breq2 notbid imbi2d ralbidv rexrab2 bitri an4s
      sylib mpanl12 ex syl5bir ) ACEJACEKZLMZEFUAZABDNZCNZFOZPZQZDERZSCEJZACEUB
      VDVCVKVBTUFZVBEUCZVDVCSVKACEGUDACEUEVLVDVMVCVKVLVDSVMVCSSVEINZFOZPZDVBRZI
      VBJZVKIDEVBTFUGVRBVPQZDERZIVBJVKVQVTIVBABVPDCEHUHUIAVTVJICEICUJZVSVIDEWAV
      PVHBWAVOVGVNVFVEFUKULUMUNUOUPURUQUSUTVA $.
  $}

  $( Irreflexivity of the epsilon relation: a class founded by epsilon is not a
     member of itself.  (Contributed by NM, 18-Apr-1994.)  (Revised by Mario
     Carneiro, 22-Jun-2015.) $)
  efrirr $p |- ( _E Fr A -> -. A e. A ) $=
    ( cep wfr wcel wa wbr frirr wb epelg adantl mtbid pm2.01da ) ABCZAADZMNEAAB
    FZNAABGNONHMAAAIJKL $.

  $( A set founded by epsilon contains no 2-cycle loops.  (Contributed by NM,
     19-Apr-1994.) $)
  efrn2lp $p |- ( ( _E Fr A /\ ( B e. A /\ C e. A ) ) ->
                -. ( B e. C /\ C e. B ) ) $=
    ( cep wfr wcel wa wbr fr2nr wb epelg bi2anan9r adantl mtbid ) ADEZBAFZCAFZG
    ZGBCDHZCBDHZGZBCFZCBFZGZABCDIRUAUDJOQSUBPTUCBCAKCBAKLMN $.

  ${
    $d x y A $.
    $( The epsilon relation is set-like on any class.  (This is the origin of
       the term "set-like": a set-like relation "acts like" the epsilon
       relation of sets and their elements.)  (Contributed by Mario Carneiro,
       22-Jun-2015.) $)
    epse $p |- _E Se A $=
      ( vy vx cep wse cv wbr crab cvv wcel wral cab epel bicomi abbi2i eqeltrri
      vex rabssab ssexi rgenw df-se mpbir ) ADEBFZCFZDGZBAHZIJZCAKUGCAUFUEBLZUD
      UHIUEBUDUEUCUDJBCMNOCQPUEBARSTCBADUAUB $.
  $}

  $( Similar to Theorem 7.2 of [TakeutiZaring] p. 35, of except that the Axiom
     of Regularity is not required due to antecedent ` _E Fr A ` .
     (Contributed by NM, 4-May-1994.) $)
  tz7.2 $p |- ( ( Tr A /\ _E Fr A /\ B e. A ) -> ( B C_ A /\ B =/= A ) ) $=
    ( wtr cep wfr wcel wss wne wa trss wn wceq efrirr eleq1 syl5ibrcom necon2ad
    notbid anim12ii 3impia ) ACZADEZBAFZBAGZBAHZITUBUCUAUDABJUAUBBAUAUBKBALZAAF
    ZKAMUEUBUFBAANQOPRS $.

  ${
    $d x y z A $.
    $( An alternate way of saying that the epsilon relation is well-founded.
       (Contributed by NM, 17-Feb-2004.)  (Revised by Mario Carneiro,
       23-Jun-2015.) $)
    dfepfr $p |- ( _E Fr A <-> A. x ( ( x C_ A /\ x =/= (/) ) ->
                  E. y e. x ( x i^i y ) = (/) ) ) $=
      ( vz cep wfr cv wss c0 wne wa wbr crab wceq wrex wi wal cin dffr2 wel a1i
      wb epel rabbiia dfin5 eqtr4i eqeq1i rexbii imbi2i albii bitri ) CEFAGZCHU
      LIJKZDGBGZELZDULMZINZBULOZPZAQUMULUNRZINZBULOZPZAQABDCESUSVCAURVBUMUQVABU
      LUPUTIUPDBTZDULMUTUOVDDULUOVDUBDATDBUCUAUDDULUNUEUFUGUHUIUJUK $.
  $}

  ${
    $d x y A $.  $d x y B $.
    epfrc.1 $e |- B e. _V $.
    $( A subset of an epsilon-founded class has a minimal element.
       (Contributed by NM, 17-Feb-2004.)  (Revised by David Abernethy,
       22-Feb-2011.) $)
    epfrc $p |- ( ( _E Fr A /\ B C_ A /\ B =/= (/) ) ->
                  E. x e. B ( B i^i x ) = (/) ) $=
      ( vy cep wfr wss c0 wne w3a cv wbr crab wceq wrex cin frc wcel dfin5 epel
      wb a1i rabbiia eqtr4i eqeq1i rexbii sylibr ) BFGCBHCIJKELZALZFMZECNZIOZAC
      PCUJQZIOZACPAEBCFDRUOUMACUNULIUNUIUJSZECNULECUJTUKUPECUKUPUBUICSEAUAUCUDU
      EUFUGUH $.
  $}

  $( Subset theorem for the well-ordering predicate.  Exercise 4 of
     [TakeutiZaring] p. 31.  (Contributed by NM, 19-Apr-1994.) $)
  wess $p |- ( A C_ B -> ( R We B -> R We A ) ) $=
    ( wss wfr wor wa wwe frss soss anim12d df-we 3imtr4g ) ABDZBCEZBCFZGACEZACF
    ZGBCHACHNOQPRABCIABCJKBCLACLM $.

  $( Equality theorem for the well-ordering predicate.  (Contributed by NM,
     9-Mar-1997.) $)
  weeq1 $p |- ( R = S -> ( R We A <-> S We A ) ) $=
    ( wceq wfr wor wa wwe freq1 soeq1 anbi12d df-we 3bitr4g ) BCDZABEZABFZGACEZ
    ACFZGABHACHNOQPRABCIABCJKABLACLM $.

  $( Equality theorem for the well-ordering predicate.  (Contributed by NM,
     3-Apr-1994.) $)
  weeq2 $p |- ( A = B -> ( R We A <-> R We B ) ) $=
    ( wceq wfr wor wa wwe freq2 soeq2 anbi12d df-we 3bitr4g ) ABDZACEZACFZGBCEZ
    BCFZGACHBCHNOQPRABCIABCJKACLBCLM $.

  $( A well-ordering is well-founded.  (Contributed by NM, 22-Apr-1994.) $)
  wefr $p |- ( R We A -> R Fr A ) $=
    ( wwe wfr wor df-we simplbi ) ABCABDABEABFG $.

  $( A well-ordering is a strict ordering.  (Contributed by NM,
     16-Mar-1997.) $)
  weso $p |- ( R We A -> R Or A ) $=
    ( wwe wfr wor df-we simprbi ) ABCABDABEABFG $.

  $( The elements of an epsilon well-ordering are comparable.  (Contributed by
     NM, 17-May-1994.) $)
  wecmpep $p |- ( ( _E We A /\ ( x e. A /\ y e. A ) ) ->
                 ( x e. y \/ x = y \/ y e. x ) ) $=
    ( cep wwe wor cv wcel wa weq w3o weso solin epel biid 3orbi123i sylib sylan
    wbr ) CDECDFZAGZCHBGZCHIZUAUBHZABJZUBUAHZKZCDLTUCIUAUBDSZUEUBUADSZKUGCUAUBD
    MUHUDUEUEUIUFABNUEOBANPQR $.

  $( An epsilon well-ordering is a transitive relation.  (Contributed by NM,
     22-Apr-1994.) $)
  wetrep $p |- ( ( _E We A /\ ( x e. A /\ y e. A /\ z e. A ) ) ->
             ( ( x e. y /\ y e. z ) -> x e. z ) ) $=
    ( cep wwe cv wcel w3a wa wbr wel wor weso sotr sylan epel anbi12i 3imtr3g
    wi ) DEFZAGZDHBGZDHCGZDHIZJUBUCEKZUCUDEKZJZUBUDEKZABLZBCLZJACLUADEMUEUHUITD
    ENDUBUCUDEOPUFUJUGUKABQBCQRACQS $.

  ${
    $d y z A $.  $d x y z B $.
    $( A nonempty (possibly proper) subclass of a class well-ordered by ` _E `
       has a minimal element.  Special case of Proposition 6.26 of
       [TakeutiZaring] p. 31.  (Contributed by NM, 17-Feb-2004.) $)
    wefrc $p |- ( ( _E We A /\ B C_ A /\ B =/= (/) ) ->
               E. x e. B ( B i^i x ) = (/) ) $=
      ( vy vz cep wwe wss c0 wne cv cin wceq wrex wi wcel wa eqeq1d ex wel wess
      wex n0 ineq2 rspcev adantl inss1 wfr wefr vex inex2 syl3an1 3exp mpi elin
      epfrc anbi1i anass rexbii2 syl6ib adantr wral df-3an 3anrot bitr3i wetrep
      bitri w3a expd sylan2b exp44 com34 impd syl5bi imp4a com23 ralrimdv dfss3
      imp syl6ibr dfss in32 sylbb biimprd syl6 reximdvai syld pm2.61dne exlimdv
      eqeq2i syl6com 3imp ) BFGZCBHZCIJZCAKZLZIMZACNZWNWMCFGZWOWSOCBFUAWODKZCPZ
      DUBWTWSDCUCWTXBWSDWTXBWSWTXBQZWSCXALZIXBXDIMZWSOWTXBXEWSWRXEAXACWPXAMWQXD
      IWPXACUDRUESUFXCXDIJZADTZXDWPLZIMZQZACNZWSWTXFXKOXBWTXFXIAXDNZXKWTXDCHZXF
      XLOCXAUGWTXMXFXLWTCFUHXMXFXLCFUIACXDXACDUJUKUPULUMUNXIXJAXDCWPXDPZXIQWPCP
      ZXGQZXIQXOXJQXNXPXIWPCXAUOUQXOXGXIURVGUSUTVAXCXJWRACXCXOXGXIWRXCXOXGXIWRO
      ZXCXPWQXAHZXQXCXPEDTZEWQVBXRXCXPXSEWQXCEKZWQPZXPXSXCYAXOXGXSYAXTCPZEATZQX
      CXOXGXSOZOZXTCWPUOXCYBYCYEXCYBXOYCYDWTXBYBXOYCYDOZOOWTXBYBXOYFXBYBQXOQZWT
      YBXOXBVHZYFYGXBYBXOVHYHXBYBXOVCXBYBXOVDVEWTYHQYCXGXSEADCVFVIVJVKVSVLVMVNV
      OVPVQEWQXAVRVTXRWRXIXRWQXHIXRWQWQXALZMWQXHMWQXAWAYIXHWQCWPXAWBWJWCRWDWEVI
      VOWFWGWHSWIVNWKWL $.
  $}

  $( Any relation is a well-ordering of the empty set.  (Contributed by NM,
     16-Mar-1997.) $)
  we0 $p |- R We (/) $=
    ( c0 wwe wfr wor fr0 so0 df-we mpbir2an ) BACBADBAEAFAGBAHI $.

  ${
    $d x y z A $.  $d w x y z B $.  $d w x y z R $.
    $( A subset of a well-ordered set has a unique minimal element.
       (Contributed by NM, 18-Mar-1997.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    wereu $p |- ( ( R We A /\ ( B e. V /\ B C_ A /\ B =/= (/) ) ) ->
                E! x e. B A. y e. B -. y R x ) $=
      ( wwe wcel wss c0 wne w3a wa cv wbr wn wral wrex wi wor wrmo wreu wfr fri
      wefr exp32 expcom 3imp2 sylan weso soss mpan9 somo syl 3ad2antr2 sylanbrc
      reu5 ) CEGZDFHZDCIZDJKZLZMBNANEOPBDQZADRZVCADUAZVCADUBURCEUCZVBVDCEUEVFUS
      UTVAVDUSVFUTVAVDSSUSVFMUTVAVDABCDFEUDUFUGUHUIURUSUTVEVAURUTMDETZVEURCETUT
      VGCEUJDCEUKULABDEUMUNUOVCADUQUP $.

    $( All nonempty (possibly proper) subclasses of ` A ` , which has a
       well-founded relation ` R ` , have ` R `-minimal elements.  Proposition
       6.26 of [TakeutiZaring] p. 31.  (Contributed by Scott Fenton,
       29-Jan-2011.)  (Revised by Mario Carneiro, 24-Jun-2015.) $)
    wereu2 $p |- ( ( ( R We A /\ R Se A ) /\ ( B C_ A /\ B =/= (/) ) ) ->
                E! x e. B A. y e. B -. y R x ) $=
      ( vz vw wa c0 cv wbr wn wral wrex wcel wi breq1 syl5bi sylc ad2antrr wrmo
      wwe wse wss wne wreu wex n0 crab wceq rabeq0 notbid cbvralv breq2 ralbidv
      weq syl5bb rspcev ex ad2antll cvv simprl simplr sess2 simprr seex syl2anc
      wfr wefr ssrab2 syl5ss fri expr syl21anc rexrab ralrab wor weso soss sotr
      simpr syl13anc ancomsd expdimp an32s con3d idd jad ralimdva reximdva syld
      expimpd pm2.61dne exlimdv impr somo syl reu5 sylanbrc ) CEUBZCEUCZHZDCUDZ
      DIUEZHZHZBJZAJZEKZLZBDMZADNZXKADUAZXKADUFXBXCXDXLXDFJZDOZFUGXBXCHZXLFDUHX
      PXOXLFXBXCXOXLXBXCXOHZHZXLGJZXNEKZGDUIZIYAIUJXTLZGDMZXRXLXTGDUKXOYCXLPXBX
      CXOYCXLXKYCAXNDXKXSXHEKZLZGDMAFUPZYCXJYEBGDBGUPXIYDXGXSXHEQULUMYFYEYBGDYF
      YDXTXHXNXSEUNULUOUQURUSUTRXRYAIUEZXJBYAMZAYANZXLXRYAVAOZCEVHZYACUDZYGYIPX
      RDEUCZXOYJXRXCXAYMXBXCXOVBZWTXAXQVCDCEVDSXBXCXOVEZGDXNEVFVGWTYKXAXQCEVITX
      RYADCXTGDVJYNVKYJYKHYLYGYIABCYAVAEVLVMVNYIXHXNEKZYHHZADNXRXLXTYPYHAGDXSXH
      XNEQVOXRYQXKADXRXHDOZHZYPYHXKYHXGXNEKZXJPZBDMYSYPHZXKXTYTXJBGDXSXGXNEQVPU
      UBUUAXJBDUUBXGDOZHZYTXJXJUUDXIYTYSUUCYPXIYTPYSUUCHZYPXIYTUUEXIYPYTUUEDEVQ
      ZUUCYRXOXIYPHYTPXRUUFYRUUCXRXCCEVQZUUFYNWTUUGXAXQCEVRZTDCEVSZSTYSUUCWAXRY
      RUUCVCXRXOYRUUCYOTDXGXHXNEVTWBWCWDWEWFUUDXJWGWHWIRWLWJRWKWMVMWNRWOXFUUFXM
      XFXCUUGUUFXBXCXDVBWTUUGXAXEUUHTUUISABDEWPWQXKADWRWS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c X. $. $( Times symbol (Cartesian product symbol) (read: 'cross') $)
  $c `' $. $( Small elevated smiley (converse operation) $)
  $c dom $. $( Domain $)
  $c ran $. $( Range $)
  $c |` $. $( Right hook (restriction symbol) $)
  $c " $. $( Left quote (image symbol) $)
  $c o. $. $( Small circle (composition symbol) $)
  $c Rel $. $( Relation predicate $)

  $( Extend the definition of a class to include the Cartesian product. $)
  cxp $a class ( A X. B ) $.

  $( Extend the definition of a class to include the converse of a class. $)
  ccnv $a class `' A $.

  $( Extend the definition of a class to include the domain of a class. $)
  cdm $a class dom A $.

  $( Extend the definition of a class to include the range of a class. $)
  crn $a class ran A $.

  $( Extend the definition of a class to include the restriction of a class.
     (Read:  The restriction of ` A ` to ` B ` .) $)
  cres $a class ( A |` B ) $.

  $( Extend the definition of a class to include the image of a class.  (Read:
     The image of ` B ` under ` A ` .) $)
  cima $a class ( A " B ) $.

  $( Extend the definition of a class to include the composition of two
     classes.  (Read:  The composition of ` A ` and ` B ` .) $)
  ccom $a class ( A o. B ) $.

  $( Extend the definition of a wff to include the relation predicate.  (Read:
     ` A ` is a relation.) $)
  wrel $a wff Rel A $.

  ${
    $d x y z A $.  $d x y z B $.
    $( Define the Cartesian product of two classes.  This is also sometimes
       called the "cross product" but that term also has other meanings; we
       intentionally choose a less ambiguous term.  Definition 9.11 of [Quine]
       p. 64.  For example, ` ( { 1 , 5 } X. { 2 , 7 } ) = `
       ` ( { <. 1 , 2 >. , <. 1 , 7 >. } u. { <. 5 , 2 >. , <. 5 , 7 >. } ) `
       ( ~ ex-xp ).  Another example is that the set of rational numbers are
       defined in ~ df-q using the Cartesian product ` ( ZZ X. NN ) ` ; the
       left- and right-hand sides of the Cartesian product represent the top
       (integer) and bottom (natural) numbers of a fraction.  (Contributed by
       NM, 4-Jul-1994.) $)
    df-xp $a |- ( A X. B ) = { <. x , y >. | ( x e. A /\ y e. B ) } $.

    $( Define the relation predicate.  Definition 6.4(1) of [TakeutiZaring]
       p. 23.  For alternate definitions, see ~ dfrel2 and ~ dfrel3 .
       (Contributed by NM, 1-Aug-1994.) $)
    df-rel $a |- ( Rel A <-> A C_ ( _V X. _V ) ) $.

    $( Define the converse of a class.  Definition 9.12 of [Quine] p. 64.  The
       converse of a binary relation swaps its arguments, i.e., if ` A e. _V `
       and ` B e. _V ` then ` ( A ``' R B <-> B R A ) ` , as proven in ~ brcnv
       (see ~ df-br and ~ df-rel for more on relations).  For example,
       ` ``' { <. 2 , 6 >. , <. 3 , 9 >. } = { <. 6 , 2 >. , <. 9 , 3 >. } `
       ( ~ ex-cnv ).  We use Quine's breve accent (smile) notation.  Like
       Quine, we use it as a prefix, which eliminates the need for parentheses.
       Many authors use the postfix superscript "to the minus one."  "Converse"
       is Quine's terminology; some authors call it "inverse," especially when
       the argument is a function.  (Contributed by NM, 4-Jul-1994.) $)
    df-cnv $a |- `' A = { <. x , y >. | y A x } $.

    $( Define the composition of two classes.  Definition 6.6(3) of
       [TakeutiZaring] p. 24.  For example, ` ( ( exp o. cos ) `` 0 ) = _e `
       ( ~ ex-co ) because ` ( cos `` 0 ) = 1 ` (see ~ cos0 ) and
       ` ( exp `` 1 ) = _e ` (see ~ df-e ).  Note that Definition 7 of [Suppes]
       p. 63 reverses ` A ` and ` B ` , uses ` /. ` instead of ` o. ` , and
       calls the operation "relative product."  (Contributed by NM,
       4-Jul-1994.) $)
    df-co $a |- ( A o. B ) = { <. x , y >. | E. z ( x B z /\ z A y ) } $.

    $( Define the domain of a class.  Definition 3 of [Suppes] p. 59.  For
       example, ` F = { <. 2 , 6 >. , <. 3 , 9 >. } -> dom F = { 2 , 3 } `
       ( ~ ex-dm ).  Another example is the domain of the complex arctangent,
       ` ( A e. dom arctan <-> ( A e. CC /\ A =/= -u _i /\ A =/= _i ) ) ` (for
       proof see ~ atandm ).  Contrast with range (defined in ~ df-rn ).  For
       alternate definitions see ~ dfdm2 , ~ dfdm3 , and ~ dfdm4 .  The
       notation " ` dom ` " is used by Enderton; other authors sometimes use
       script D. (Contributed by NM, 1-Aug-1994.) $)
    df-dm $a |- dom A = { x | E. y x A y } $.

    $( Define the range of a class.  For example,
       ` F = { <. 2 , 6 >. , <. 3 , 9 >. } -> ran F = { 6 , 9 } ` ( ~ ex-rn ).
       Contrast with domain (defined in ~ df-dm ).  For alternate definitions,
       see ~ dfrn2 , ~ dfrn3 , and ~ dfrn4 .  The notation " ` ran ` " is used
       by Enderton; other authors sometimes use script R or script W.
       (Contributed by NM, 1-Aug-1994.) $)
    df-rn $a |- ran A = dom `' A $.

    $( Define the restriction of a class.  Definition 6.6(1) of [TakeutiZaring]
       p. 24.  For example, the expression ` ( exp |`` RR ) ` (used in
       ~ reeff1 ) means "the exponential function e to the x, but the exponent
       x must be in the reals" ( ~ df-ef defines the exponential function,
       which normally allows the exponent to be a complex number).  Another
       example is that ` ( F = { <. 2 , 6 >. , <. 3 , 9 >. } `
       ` /\ B = { 1 , 2 } ) -> ( F |`` B ) = { <. 2 , 6 >. } ` ( ~ ex-res ).
       (Contributed by NM, 2-Aug-1994.) $)
    df-res $a |- ( A |` B ) = ( A i^i ( B X. _V ) ) $.

    $( Define the image of a class (as restricted by another class).
       Definition 6.6(2) of [TakeutiZaring] p. 24.  For example,
       ` ( F = { <. 2 , 6 >. , <. 3 , 9 >. } /\ B = { 1 , 2 } ) `
       ` -> ( F " B ) = { 6 } ` ( ~ ex-ima ).  Contrast with restriction
       ( ~ df-res ) and range ( ~ df-rn ).  For an alternate definition, see
       ~ dfima2 .  (Contributed by NM, 2-Aug-1994.) $)
    df-ima $a |- ( A " B ) = ran ( A |` B ) $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( Equality theorem for Cartesian product.  (Contributed by NM,
       4-Jul-1994.) $)
    xpeq1 $p |- ( A = B -> ( A X. C ) = ( B X. C ) ) $=
      ( vx vy wceq cv wcel wa copab cxp eleq2 anbi1d opabbidv df-xp 3eqtr4g ) A
      BFZDGZAHZEGCHZIZDEJRBHZTIZDEJACKBCKQUAUCDEQSUBTABRLMNDEACODEBCOP $.

    ${
      $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.
      $( Subset theorem for Cartesian product.  Generalization of Theorem 101
         of [Suppes] p. 52.  (Contributed by NM, 26-Aug-1995.)  (Proof
         shortened by Andrew Salmon, 27-Aug-2011.) $)
      xpss12 $p |- ( ( A C_ B /\ C C_ D ) -> ( A X. C ) C_ ( B X. D ) ) $=
        ( vx vy wss wa cv wcel copab cxp ssel im2anan9 ssopab2dv df-xp 3sstr4g
        ) ABGZCDGZHZEIZAJZFIZCJZHZEFKUABJZUCDJZHZEFKACLBDLTUEUHEFRUBUFSUDUGABUA
        MCDUCMNOEFACPEFBDPQ $.
    $}

    $( A Cartesian product is included in the ordered pair universe.  Exercise
       3 of [TakeutiZaring] p. 25.  (Contributed by NM, 2-Aug-1994.) $)
    xpss $p |- ( A X. B ) C_ ( _V X. _V ) $=
      ( cvv wss cxp ssv xpss12 mp2an ) ACDBCDABECCEDAFBFACBCGH $.

    $( A Cartesian product is a relation.  Theorem 3.13(i) of [Monk1] p. 37.
       (Contributed by NM, 2-Aug-1994.) $)
    relxp $p |- Rel ( A X. B ) $=
      ( cxp wrel cvv wss xpss df-rel mpbir ) ABCZDJEECFABGJHI $.

    $( Subset relation for Cartesian product.  (Contributed by Jeff Hankins,
       30-Aug-2009.) $)
    xpss1 $p |- ( A C_ B -> ( A X. C ) C_ ( B X. C ) ) $=
      ( wss cxp ssid xpss12 mpan2 ) ABDCCDACEBCEDCFABCCGH $.

    $( Subset relation for Cartesian product.  (Contributed by Jeff Hankins,
       30-Aug-2009.) $)
    xpss2 $p |- ( A C_ B -> ( C X. A ) C_ ( C X. B ) ) $=
      ( wss cxp ssid xpss12 mpan ) CCDABDCAECBEDCFCCABGH $.

    $( Equality theorem for Cartesian product.  (Contributed by NM,
       5-Jul-1994.) $)
    xpeq2 $p |- ( A = B -> ( C X. A ) = ( C X. B ) ) $=
      ( vx vy wceq cv wcel wa copab cxp eleq2 anbi2d opabbidv df-xp 3eqtr4g ) A
      BFZDGCHZEGZAHZIZDEJRSBHZIZDEJCAKCBKQUAUCDEQTUBRABSLMNDECAODECBOP $.

    $( Membership in a Cartesian product.  Uses fewer axioms than ~ elxp .
       (Contributed by NM, 4-Jul-1994.) $)
    elxpi $p |- ( A e. ( B X. C ) -> E. x E. y ( A = <. x , y >. /\
               ( x e. B /\ y e. C ) ) ) $=
      ( vz cv cop wceq wcel wa wex cab cxp eqeq1 anbi1d 2exbidv elabg ibi copab
      df-xp df-opab eqtri eleq2s ) CAGZBGZHZIZUEDJUFEJKZKZBLALZCFGZUGIZUIKZBLAL
      ZFMZDENZCUPJUKUOUKFCUPULCIZUNUJABURUMUHUIULCUGOPQRSUQUIABTUPABDEUAUIABFUB
      UCUD $.

    $( Membership in a Cartesian product.  (Contributed by NM, 4-Jul-1994.) $)
    elxp $p |- ( A e. ( B X. C ) <-> E. x E. y ( A = <. x , y >. /\
               ( x e. B /\ y e. C ) ) ) $=
      ( cxp wcel cv wa copab cop wceq wex df-xp eleq2i elopab bitri ) CDEFZGCAH
      ZDGBHZEGIZABJZGCSTKLUAIBMAMRUBCABDENOUAABCPQ $.

    $( Membership in a Cartesian product.  (Contributed by NM, 23-Feb-2004.)
       (Proof shortened by JJ, 13-Aug-2021.) $)
    elxp2 $p |- ( A e. ( B X. C ) <-> E. x e. B E. y e. C A = <. x , y >. ) $=
      ( cv cop wceq wcel wa wex cxp wrex ancom 2exbii elxp r2ex 3bitr4i ) CAFZB
      FZGHZSDITEIJZJZBKAKUBUAJZBKAKCDELIUABEMADMUCUDABUAUBNOABCDEPUAABDEQR $.

    $( Obsolete proof of ~ elxp2 as of 13-Aug-2021.  (Contributed by NM,
       23-Feb-2004.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    elxp2OLD $p |- ( A e. ( B X. C ) <-> E. x e. B E. y e. C A = <. x , y >. )
      $=
      ( cv wcel cop wceq wrex wa wex cxp df-rex r19.42v an13 exbii 3bitr3i elxp
      3bitr4ri ) AFZDGZCUABFZHIZBEJZKZALUDUBUCEGZKKZBLZALUEADJCDEMGUFUIAUBUDKZB
      EJUGUJKZBLUFUIUJBENUBUDBEOUKUHBUGUBUDPQRQUEADNABCDEST $.
  $}

  $( Equality theorem for Cartesian product.  (Contributed by FL,
     31-Aug-2009.) $)
  xpeq12 $p |- ( ( A = B /\ C = D ) -> ( A X. C ) = ( B X. D ) ) $=
    ( wceq cxp xpeq1 xpeq2 sylan9eq ) ABECDEACFBCFBDFABCGCDBHI $.

  ${
    xpeq1i.1 $e |- A = B $.
    $( Equality inference for Cartesian product.  (Contributed by NM,
       21-Dec-2008.) $)
    xpeq1i $p |- ( A X. C ) = ( B X. C ) $=
      ( wceq cxp xpeq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality inference for Cartesian product.  (Contributed by NM,
       21-Dec-2008.) $)
    xpeq2i $p |- ( C X. A ) = ( C X. B ) $=
      ( wceq cxp xpeq2 ax-mp ) ABECAFCBFEDABCGH $.
  $}

  ${
    xpeq12i.1 $e |- A = B $.
    xpeq12i.2 $e |- C = D $.
    $( Equality inference for Cartesian product.  (Contributed by FL,
       31-Aug-2009.) $)
    xpeq12i $p |- ( A X. C ) = ( B X. D ) $=
      ( wceq cxp xpeq12 mp2an ) ABGCDGACHBDHGEFABCDIJ $.
  $}

  ${
    xpeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for Cartesian product.  (Contributed by Jeff Madsen,
       17-Jun-2010.) $)
    xpeq1d $p |- ( ph -> ( A X. C ) = ( B X. C ) ) $=
      ( wceq cxp xpeq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality deduction for Cartesian product.  (Contributed by Jeff Madsen,
       17-Jun-2010.) $)
    xpeq2d $p |- ( ph -> ( C X. A ) = ( C X. B ) ) $=
      ( wceq cxp xpeq2 syl ) ABCFDBGDCGFEBCDHI $.

    ${
      xpeq12d.2 $e |- ( ph -> C = D ) $.
      $( Equality deduction for Cartesian product.  (Contributed by NM,
         8-Dec-2013.) $)
      xpeq12d $p |- ( ph -> ( A X. C ) = ( B X. D ) ) $=
        ( wceq cxp xpeq12 syl2anc ) ABCHDEHBDICEIHFGBCDEJK $.
    $}

    $( Equality deduction for a Cartesian square, see Wikipedia "Cartesian
       product",
~ https://en.wikipedia.org/wiki/Cartesian_product#n-ary_Cartesian_power .
       (Contributed by AV, 13-Jan-2020.) $)
    sqxpeqd $p |- ( ph -> ( A X. A ) = ( B X. B ) ) $=
      ( xpeq12d ) ABCBCDDE $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d x y z $.
    nfxp.1 $e |- F/_ x A $.
    nfxp.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for Cartesian product.  (Contributed
       by NM, 15-Sep-2003.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfxp $p |- F/_ x ( A X. B ) $=
      ( vy vz cxp cv wcel wa copab df-xp nfcri nfan nfopab nfcxfr ) ABCHFIBJZGI
      CJZKZFGLFGBCMTFGARSAAFBDNAGCENOPQ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( The empty set is not a member of a Cartesian product.  (Contributed by
       NM, 2-May-1996.)  (Revised by Mario Carneiro, 26-Apr-2015.)  (Proof
       shortened by JJ, 13-Aug-2021.) $)
    0nelxp $p |- -. (/) e. ( A X. B ) $=
      ( vx vy c0 cxp wcel cv cop wceq wa wex vex opnzi nesymi intnanr nex mtbir
      elxp ) EABFGECHZDHZIZJZTAGUABGKZKZDLZCLUFCUEDUCUDUBETUACMDMNOPQQCDEABSR
      $.

    $( Obsolete proof of ~ 0nelxp as of 13-Aug-2021.  (Contributed by NM,
       2-May-1996.)  (Revised by Mario Carneiro, 26-Apr-2015.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    0nelxpOLD $p |- -. (/) e. ( A X. B ) $=
      ( vx vy c0 cxp wcel cv cop wceq wa wex wne wn opnzi simpl eqcomd necon3ai
      vex nex ax-mp elxp mtbir ) EABFGECHZDHZIZJZUDAGUEBGKZKZDLZCLUJCUIDUFEMUIN
      UDUECSDSOUIUFEUIEUFUGUHPQRUATTCDEABUBUC $.

    $( A member of a Cartesian product (ordered pair) doesn't contain the empty
       set.  (Contributed by NM, 15-Dec-2008.) $)
    0nelelxp $p |- ( C e. ( A X. B ) -> -. (/) e. C ) $=
      ( vx vy cxp wcel cv cop wceq wa wex c0 wn elxp 0nelop eleq2 mtbiri adantr
      exlimivv sylbi ) CABFGCDHZEHZIZJZUBAGUCBGKZKZELDLMCGZNZDECABOUGUIDEUEUIUF
      UEUHMUDGUBUCPCUDMQRSTUA $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.
    $( Ordered pair membership in a Cartesian product.  (Contributed by NM,
       15-Nov-1994.)  (Proof shortened by Andrew Salmon, 12-Aug-2011.)
       (Revised by Mario Carneiro, 26-Apr-2015.) $)
    opelxp $p |- ( <. A , B >. e. ( C X. D ) <-> ( A e. C /\ B e. D ) ) $=
      ( vx vy cop cxp wcel cv wceq wrex wa elxp2 wb opth2 eleq1 bi2anan9 eqeq2d
      vex sylbi biimprcd rexlimivv eqid opeq1 opeq2 rspc2ev mp3an3 impbii bitri
      ) ABGZCDHIUKEJZFJZGZKZFDLECLZACIZBDIZMZEFUKCDNUPUSUOUSEFCDUOUSULCIZUMDIZM
      ZUOAULKZBUMKZMUSVBOABULUMETFTPVCUQUTVDURVAAULCQBUMDQRUAUBUCUQURUKUKKZUPUK
      UDUOVEUKAUMGZKEFABCDULAKUNVFUKULAUMUESUMBKVFUKUKUMBAUFSUGUHUIUJ $.

    $( Binary relation on a Cartesian product.  (Contributed by NM,
       22-Apr-2004.) $)
    brxp $p |- ( A ( C X. D ) B <-> ( A e. C /\ B e. D ) ) $=
      ( cxp wbr cop wcel wa df-br opelxp bitri ) ABCDEZFABGMHACHBDHIABMJABCDKL
      $.
  $}

  $( Ordered pair membership in a Cartesian product (implication).
     (Contributed by NM, 28-May-1995.) $)
  opelxpi $p |- ( ( A e. C /\ B e. D ) -> <. A , B >. e. ( C X. D ) ) $=
    ( cop cxp wcel wa opelxp biimpri ) ABECDFGACGBDGHABCDIJ $.

  ${
    opelxpd.1 $e |- ( ph -> A e. C ) $.
    opelxpd.2 $e |- ( ph -> B e. D ) $.
    $( Ordered pair membership in a Cartesian product, deduction form.
       (Contributed by Glauco Siliprandi, 3-Mar-2021.) $)
    opelxpd $p |- ( ph -> <. A , B >. e. ( C X. D ) ) $=
      ( wcel cop cxp opelxpi syl2anc ) ABDHCEHBCIDEJHFGBCDEKL $.
  $}

  $( The first member of an ordered pair of classes in a Cartesian product
     belongs to first Cartesian product argument.  (Contributed by NM,
     28-May-2008.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  opelxp1 $p |- ( <. A , B >. e. ( C X. D ) -> A e. C ) $=
    ( cop cxp wcel opelxp simplbi ) ABECDFGACGBDGABCDHI $.

  $( The second member of an ordered pair of classes in a Cartesian product
     belongs to second Cartesian product argument.  (Contributed by Mario
     Carneiro, 26-Apr-2015.) $)
  opelxp2 $p |- ( <. A , B >. e. ( C X. D ) -> B e. D ) $=
    ( cop cxp wcel opelxp simprbi ) ABECDFGACGBDGABCDHI $.

  $( The first member of an ordered triple of classes in a Cartesian product
     belongs to first Cartesian product argument.  (Contributed by NM,
     28-May-2008.) $)
  otelxp1 $p |- ( <. <. A , B >. , C >. e. ( ( R X. S ) X. T )
          -> A e. R ) $=
    ( cop cxp wcel opelxp1 syl ) ABGZCGDEHZFHILMIADILCMFJABDEJK $.

  $( An ordered triple is an element of a doubled Cartesian product.
     (Contributed by Alexander van der Vekens, 26-Feb-2018.) $)
  otel3xp $p |- ( ( T = <. A , B , C >. /\ ( A e. X /\ B e. Y /\ C e. Z ) )
                         -> T e. ( ( X X. Y ) X. Z ) ) $=
    ( cotp wceq wcel w3a cxp cop df-ot wa 3simpa opelxp sylibr simp3 opelxpd
    syl5eqel eleq1 syl5ibr imp ) DABCHZIZAEJZBFJZCGJZKZDEFLZGLZJZUJUMUFUEULJUJU
    EABMZCMULABCNUJUNCUKGUJUGUHOUNUKJUGUHUIPABEFQRUGUHUISTUADUEULUBUCUD $.

  ${
    $d x y z A $.  $d x y z B $.  $d y z ph $.  $d x ps $.
    rabxp.1 $e |- ( x = <. y , z >. -> ( ph <-> ps ) ) $.
    $( Membership in a class builder restricted to a Cartesian product.
       (Contributed by NM, 20-Feb-2014.) $)
    rabxp $p |- { x e. ( A X. B ) | ph }
             = { <. y , z >. | ( y e. A /\ z e. B /\ ps ) } $=
      ( cv cxp wcel wa cab cop wceq w3a wex crab copab elxp anbi1i anass anbi2d
      19.41vv df-3an syl6bbr pm5.32i bitri 2exbii 3bitr2i abbii df-opab 3eqtr4i
      df-rab ) CIZFGJZKZALZCMUODIZEIZNOZUSFKZUTGKZBPZLZEQDQZCMACUPRVDDESURVFCUR
      VAVBVCLZLZEQDQZALVHALZEQDQVFUQVIADEUOFGTUAVHADEUDVJVEDEVJVAVGALZLVEVAVGAU
      BVAVKVDVAVKVGBLVDVAABVGHUCVBVCBUEUFUGUHUIUJUKACUPUNVDDECULUM $.
  $}

  $( A true binary relation on a relation implies the arguments are sets.
     (This is a property of our ordered pair definition.)  (Contributed by
     Mario Carneiro, 26-Apr-2015.) $)
  brrelex12 $p |- ( ( Rel R /\ A R B ) -> ( A e. _V /\ B e. _V ) ) $=
    ( wrel wbr wa cvv cxp wcel wss df-rel biimpi ssbrd imp brxp sylib ) CDZABCE
    ZFABGGHZEZAGIBGIFQRTQCSABQCSJCKLMNABGGOP $.

  $( A true binary relation on a relation implies the first argument is a set.
     (This is a property of our ordered pair definition.)  (Contributed by NM,
     18-May-2004.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  brrelex $p |- ( ( Rel R /\ A R B ) -> A e. _V ) $=
    ( wrel wbr wa cvv wcel brrelex12 simpld ) CDABCEFAGHBGHABCIJ $.

  $( A true binary relation on a relation implies the second argument is a set.
     (This is a property of our ordered pair definition.)  (Contributed by
     Mario Carneiro, 26-Apr-2015.) $)
  brrelex2 $p |- ( ( Rel R /\ A R B ) -> B e. _V ) $=
    ( wrel wbr wa cvv wcel brrelex12 simprd ) CDABCEFAGHBGHABCIJ $.

  ${
    brrelexi.1 $e |- Rel R $.
    $( The first argument of a binary relation exists.  (An artifact of our
       ordered pair definition.)  (Contributed by NM, 4-Jun-1998.) $)
    brrelexi $p |- ( A R B -> A e. _V ) $=
      ( wrel wbr cvv wcel brrelex mpan ) CEABCFAGHDABCIJ $.

    $( The second argument of a binary relation exists.  (An artifact of our
       ordered pair definition.)  (Contributed by Mario Carneiro,
       26-Apr-2015.) $)
    brrelex2i $p |- ( A R B -> B e. _V ) $=
      ( wrel wbr cvv wcel brrelex2 mpan ) CEABCFBGHDABCIJ $.
  $}

  ${
    nprrel12.1 $e |- Rel R $.
    $( Proper classes are not related via any relation.  (Contributed by AV,
       29-Oct-2021.) $)
    nprrel12 $p |- ( -. ( A e. _V /\ B e. _V ) -> -. A R B ) $=
      ( wbr cvv wcel wa wrel brrelex12 mpan con3i ) ABCEZAFGBFGHZCIMNDABCJKL $.

    nprrel.2 $e |- -. A e. _V $.
    $( No proper class is related to anything via any relation.  (Contributed
       by Roy F. Longton, 30-Jul-2005.) $)
    nprrel $p |- -. A R B $=
      ( wbr cvv wcel brrelexi mto ) ABCFAGHEABCDIJ $.
  $}

  $( A binary relation does not contain the empty set.  (Contributed by AV,
     15-Nov-2021.) $)
  0nelrel $p |- ( Rel R -> (/) e/ R ) $=
    ( wrel wcel wnel cvv cxp wss df-rel biimpi 0nelxp a1i ssneldd df-nel sylibr
    c0 wn ) ABZOACPOADQAEEFZOQARGAHIORCPQEEJKLOAMN $.

  ${
    $d x y A $.  $d x y B $.
    $( Representation of a constant function using the mapping operation.
       (Note that ` x ` cannot appear free in ` B ` .)  (Contributed by NM,
       12-Oct-1999.)  (Revised by Mario Carneiro, 16-Nov-2013.) $)
    fconstmpt $p |- ( A X. { B } ) = ( x e. A |-> B ) $=
      ( vy cv wcel csn wa copab wceq cxp cmpt velsn anbi2i opabbii df-xp df-mpt
      3eqtr4i ) AEBFZDEZCGZFZHZADISTCJZHZADIBUAKABCLUCUEADUBUDSDCMNOADBUAPADBCQ
      R $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y z C $.  $d x y z R $.
    vtoclr.1 $e |- Rel R $.
    vtoclr.2 $e |- ( ( x R y /\ y R z ) -> x R z ) $.
    $( Variable to class conversion of transitive relation.  (Contributed by
       NM, 9-Jun-1998.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    vtoclr $p |- ( ( A R B /\ B R C ) -> A R C ) $=
      ( wbr wa wi cvv wcel brrelex2i cv wceq breq1 imbi12d breq2 anbi1d anbi12d
      brrelexi jca imbi2d imbi1d anbi2d vtoclg vtocl2g syl2im imp pm2.43i ) DEG
      JZEFGJZKZDFGJZUMUNUOUPLZUMDMNZEMNZKUNFMNZUQUMURUSDEGHUCDEGHOUDEFGHOUTAPZB
      PZGJZVBFGJZKZVAFGJZLZLUTDVBGJZVDKZUPLZLUTUQLABDEMMVADQZVGVJUTVKVEVIVFUPVK
      VCVHVDVADVBGRUAVADFGRSUEVBEQZVJUQUTVLVIUOUPVLVHUMVDUNVBEDGTVBEFGRUBUFUEVC
      VBCPZGJZKZVAVMGJZLVGCFMVMFQZVOVEVPVFVQVNVDVCVMFVBGTUGVMFVAGTSIUHUIUJUKUL
      $.
  $}

  $( Ordered pair membership in the universal class of ordered pairs.
     (Contributed by Mario Carneiro, 3-May-2015.) $)
  opelvvg $p |- ( ( A e. V /\ B e. W ) -> <. A , B >. e. ( _V X. _V ) ) $=
    ( wcel cvv cop cxp elex opelxpi syl2an ) ACEAFEBFEABGFFHEBDEACIBDIABFFJK $.

  ${
    opelvv.1 $e |- A e. _V $.
    opelvv.2 $e |- B e. _V $.
    $( Ordered pair membership in the universal class of ordered pairs.
       (Contributed by NM, 22-Aug-2013.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    opelvv $p |- <. A , B >. e. ( _V X. _V ) $=
      ( cvv wcel cop cxp opelxpi mp2an ) AEFBEFABGEEHFCDABEEIJ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.
    $( Justification theorem for an ordered pair definition that works for any
       classes, including proper classes.  This is a possible definition
       implied by the footnote in [Jech] p. 78, which says, "The sophisticated
       reader will not object to our use of a pair of classes."  (Contributed
       by NM, 28-Sep-2003.) $)
    opthprc $p |- ( ( ( A X. { (/) } ) u. ( B X. { { (/) } } ) ) =
                    ( ( C X. { (/) } ) u. ( D X. { { (/) } } ) )
                  <-> ( A = C /\ B = D ) ) $=
      ( vx c0 csn cxp cun wceq wa wcel wo opelxp mpbiran2 bianfi bitr4i orbi12i
      elun 3bitr4ri cv cop eleq2 0ex snid 0nep0 elsn nemtbir 3bitr4g eqrdv p0ex
      biorfi eqcom bitri wn wb biorf ax-mp jca xpeq1 uneq12 syl2an impbii ) AFG
      ZHZBVDGZHZIZCVDHZDVFHZIZJZACJZBDJZKVLVMVNVLEACVLEUAZFUBZVHLZVPVKLZVOALZVO
      CLZVHVKVPUCVPVELZVPVGLZMVSFVFLZMVQVSWAVSWBWCWAVSFVDLZFUDUEZVOFAVDNOWBVOBL
      ZWCKWCVOFBVFNWCWFWCFVDUFFVDUDUGUHZPQRVPVEVGSWCVSWGULTVPVILZVPVJLZMVTWCMVR
      VTWHVTWIWCWHVTWDWEVOFCVDNOWIVODLZWCKWCVOFDVFNWCWJWGPQRVPVIVJSWCVTWGULTUIU
      JVLEBDVLVOVDUBZVHLZWKVKLZWFWJVHVKWKUCWKVELZWKVGLZMVDVDLZWFMZWLWFWNWPWOWFW
      NVSWPKWPVOVDAVDNWPVSWPFVDUFWPVDFJFVDJVDFUKUGVDFUMUNUHZPQWOWFVDVFLZVDUKUEZ
      VOVDBVFNORWKVEVGSWPUOZWFWQUPWRWPWFUQURTWKVILZWKVJLZMWPWJMZWMWJXBWPXCWJXBV
      TWPKWPVOVDCVDNWPVTWRPQXCWJWSWTVOVDDVFNORWKVIVJSXAWJXDUPWRWPWJUQURTUIUJUSV
      MVEVIJVGVJJVLVNACVDUTBDVFUTVEVIVGVJVAVBVC $.
  $}

  ${
    brel.1 $e |- R C_ ( C X. D ) $.
    $( Two things in a binary relation belong to the relation's domain.
       (Contributed by NM, 17-May-1996.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    brel $p |- ( A R B -> ( A e. C /\ B e. D ) ) $=
      ( wbr cxp wcel wa ssbri brxp sylib ) ABEGABCDHZGACIBDIJENABFKABCDLM $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Membership in a Cartesian product.  (Contributed by NM, 5-Mar-1995.) $)
    elxp3 $p |- ( A e. ( B X. C ) <->
            E. x E. y ( <. x , y >. = A /\ <. x , y >. e. ( B X. C ) ) ) $=
      ( cxp wcel cv cop wceq wa wex elxp eqcom opelxp anbi12i 2exbii bitr4i ) C
      DEFZGCAHZBHZIZJZTDGUAEGKZKZBLALUBCJZUBSGZKZBLALABCDEMUHUEABUFUCUGUDUBCNTU
      ADEOPQR $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d y z C $.  $d x y z $.
    $( Membership in a union of Cartesian products.  (Contributed by Mario
       Carneiro, 29-Dec-2014.)  (Revised by Mario Carneiro, 1-Jan-2017.) $)
    opeliunxp $p |- ( <. x , C >. e. U_ x e. A ( { x } X. B ) <->
                     ( x e. A /\ C e. B ) ) $=
      ( vy vz cv cop csn cxp ciun wcel wrex wa wceq eleq2d anbi12d bitri 3bitri
      wex cab wsb csb df-iun eleq2i opex nfv nfs1v nfcv nfcsb1v nfxp nfcri nfan
      df-rex sbequ12 sneq csbeq1a xpeq12d cbvex eleq1 anbi2d exbidv syl5bb elab
      opelxp anbi2i velsn equcom anbi1i exbii sbequ12r equcoms eqcomd equsexvw
      an12 ) AGZDHZABVPIZCJZKZLVQEGZVSLZABMZEUAZLVPBLZAFUBZVQFGZIZAWGCUCZJZLZNZ
      FTZWEDCLZNZVTWDVQAEBVSUDUEWCWMEVQVPDUFWCWFWAWJLZNZFTZWAVQOZWMWCWEWBNZATWR
      WBABUNWTWQAFWTFUGWFWPAWEAFUHAEWJAWHWIAWHUIAWGCUJUKULUMVPWGOZWEWFWBWPWEAFU
      OXAVSWJWAXAVRWHCWIVPWGUPAWGCUQZURPQUSRWSWQWLFWSWPWKWFWAVQWJUTVAVBVCVDWMWG
      VPOZWFDWILZNZNZFTWOWLXFFWLWFVPWHLZXDNZNXGXENXFWKXHWFVPDWHWIVEVFWFXGXDVOXG
      XCXEXGXAXCAWGVGAFVHRVISVJXEWOFAXCWFWEXDWNWEFAVKXCWICDXCCWICWIOAFXBVLVMPQV
      NRS $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Distributive law for Cartesian product over union.  Theorem 103 of
       [Suppes] p. 52.  (Contributed by NM, 12-Aug-2004.) $)
    xpundi $p |- ( A X. ( B u. C ) ) = ( ( A X. B ) u. ( A X. C ) ) $=
      ( vx vy cun cxp cv wcel wa copab df-xp uneq12i wo elun andi bitri opabbii
      anbi2i eqtr4i unopab ) ABCFZGDHAIZEHZUBIZJZDEKZABGZACGZFZDEAUBLUJUCUDBIZJ
      ZDEKZUCUDCIZJZDEKZFZUGUHUMUIUPDEABLDEACLMUGULUONZDEKUQUFURDEUFUCUKUNNZJUR
      UEUSUCUDBCOSUCUKUNPQRULUODEUATTT $.

    $( Distributive law for Cartesian product over union.  Similar to Theorem
       103 of [Suppes] p. 52.  (Contributed by NM, 30-Sep-2002.) $)
    xpundir $p |- ( ( A u. B ) X. C ) = ( ( A X. C ) u. ( B X. C ) ) $=
      ( vx vy cun cxp cv wcel wa copab df-xp uneq12i wo elun anbi1i andir bitri
      opabbii eqtr4i unopab ) ABFZCGDHZUBIZEHCIZJZDEKZACGZBCGZFZDEUBCLUJUCAIZUE
      JZDEKZUCBIZUEJZDEKZFZUGUHUMUIUPDEACLDEBCLMUGULUONZDEKUQUFURDEUFUKUNNZUEJU
      RUDUSUEUCABOPUKUNUEQRSULUODEUATTT $.
  $}

  ${
    $d w y z A $.  $d w y z B $.  $d w x y z C $.
    $( Distributive law for Cartesian product over indexed union.  (Contributed
       by Mario Carneiro, 27-Apr-2014.) $)
    xpiundi $p |- ( C X. U_ x e. A B ) = U_ x e. A ( C X. B ) $=
      ( vz vw vy ciun cxp cv wrex wcel wa wex eliun exbii df-rex rexbii 3bitr4i
      elxp2 cop wceq rexcom anbi1i rexcom4 r19.41v 3bitri eqriv ) EDABCHZIZABDC
      IZHZEJZFJGJZUAUBZGUIKZFDKZUMUKLZABKZUMUJLUMULLUOGCKZABKZFDKUTFDKZABKUQUSU
      TFADBUCUPVAFDUNUILZUOMZGNUNCLZABKZUOMZGNZUPVAVDVGGVCVFUOAUNBCOUDPUOGUIQVA
      VEUOMZGNZABKVIABKZGNVHUTVJABUOGCQRVIAGBUEVKVGGVEUOABUFPUGSRURVBABFGUMDCTR
      SFGUMDUITAUMBUKOSUH $.

    $( Distributive law for Cartesian product over indexed union.  (Contributed
       by Mario Carneiro, 27-Apr-2014.) $)
    xpiundir $p |- ( U_ x e. A B X. C ) = U_ x e. A ( B X. C ) $=
      ( vz vy vw ciun cxp cv cop wrex wcel wa df-rex rexbii eliun elxp2 3bitr4i
      wex wceq rexcom4 anbi1i r19.41v bitr4i exbii 3bitr4ri eqriv ) EABCHZDIZAB
      CDIZHZEJZFJZGJKUAGDLZFUILZUMUKMZABLZUMUJMUMULMUNUIMZUONZFTZUOFCLZABLZUPUR
      UNCMZUONZFTZABLVEABLZFTVCVAVEAFBUBVBVFABUOFCOPUTVGFUTVDABLZUONVGUSVHUOAUN
      BCQUCVDUOABUDUEUFUGUOFUIOUQVBABFGUMCDRPSFGUMUIDRAUMBUKQSUH $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Membership in a union of Cartesian products when the second factor is
       constant.  (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    iunxpconst $p |- U_ x e. A ( { x } X. B ) = ( A X. B ) $=
      ( cv csn ciun cxp xpiundir iunid xpeq1i eqtr3i ) ABADEZFZCGABLCGFBCGABLCH
      MBCABIJK $.
  $}

  $( The Cartesian product of two unions.  (Contributed by NM, 12-Aug-2004.) $)
  xpun $p |- ( ( A u. B ) X. ( C u. D ) ) =
            ( ( ( A X. C ) u. ( A X. D ) ) u. ( ( B X. C ) u. ( B X. D ) ) ) $=
    ( cun cxp xpundi xpundir uneq12i un4 3eqtri ) ABEZCDEFLCFZLDFZEACFZBCFZEZAD
    FZBDFZEZEOREPSEELCDGMQNTABCHABDHIOPRSJK $.

  ${
    $d w x y z A $.
    $( Membership in universal class of ordered pairs.  (Contributed by NM,
       4-Jul-1994.) $)
    elvv $p |- ( A e. ( _V X. _V ) <-> E. x E. y A = <. x , y >. ) $=
      ( cvv cxp wcel cv cop wceq wa wex elxp vex pm3.2i biantru 2exbii bitr4i )
      CDDEFCAGZBGZHIZRDFZSDFZJZJZBKAKTBKAKABCDDLTUDABUCTUAUBAMBMNOPQ $.

    $( Membership in universal class of ordered triples.  (Contributed by NM,
       17-Dec-2008.) $)
    elvvv $p |- ( A e. ( ( _V X. _V ) X. _V )
                 <-> E. x E. y E. z A = <. <. x , y >. , z >. ) $=
      ( vw cvv cxp wcel cv cop wceq wa wex elxp ancom 2exbii 19.42vv elvv bitri
      3bitr2i anbi2i vex biantru anass 3bitrri exrot4 excom opex eqeq2d ceqsexv
      opeq1 exbii ) DFFGZFGHDEIZCIZJZKZUNUMHZUOFHZLLZCMEMZDAIZBIZJZUOJZKZCMZBMA
      MZECDUMFNVAUNVDKZUQLZBMAMZCMEMVJCMEMZBMAMVHUTVKECVKUQVILZBMAMZUQURLZUSLZU
      TVJVMABVIUQOPVNUQVIBMAMZLVOVPUQVIABQURVQUQABUNRUAUSVOCUBUCTUQURUSUDUEPVJA
      BECUFVLVGABVLVJEMZCMVGVJECUGVRVFCUQVFEVDVBVCUHVIUPVEDUNVDUOUKUIUJULSPTS
      $.

    $( An ordered pair contains its union.  (Contributed by NM,
       16-Sep-2006.) $)
    elvvuni $p |- ( A e. ( _V X. _V ) -> U. A e. A ) $=
      ( vx vy cvv cxp wcel cv cop wceq wex cuni elvv cpr vex uniop opi2 eqeltri
      unieq id eleq12d mpbiri exlimivv sylbi ) ADDEFABGZCGZHZIZCJBJAKZAFZBCALUG
      UIBCUGUIUFKZUFFUJUDUEMUFUDUEBNZCNZOUDUEUKULPQUGUHUJAUFAUFRUGSTUAUBUC $.
  $}

  $( Intersection of binary relation with Cartesian product.  (Contributed by
     NM, 3-Mar-2007.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  brinxp2 $p |- ( A ( R i^i ( C X. D ) ) B <->
                ( A e. C /\ B e. D /\ A R B ) ) $=
    ( cxp cin wbr wa wcel w3a brin ancom brxp anbi1i df-3an bitr4i 3bitri ) ABE
    CDFZGHABEHZABSHZIUATIZACJZBDJZTKZABESLTUAMUBUCUDIZTIUEUAUFTABCDNOUCUDTPQR
    $.

  $( Intersection of binary relation with Cartesian product.  (Contributed by
     NM, 9-Mar-1997.) $)
  brinxp $p |- ( ( A e. C /\ B e. D ) ->
               ( A R B <-> A ( R i^i ( C X. D ) ) B ) ) $=
    ( cxp cin wbr wcel wa w3a brinxp2 df-3an bitri baibr ) ABECDFGHZACIZBDIZJZA
    BEHZPQRTKSTJABCDELQRTMNO $.

  ${
    $d x y z A $.  $d x y z R $.
    $( Intersection of partial order with Cartesian product of its field.
       (Contributed by Mario Carneiro, 10-Jul-2014.) $)
    poinxp $p |- ( R Po A <-> ( R i^i ( A X. A ) ) Po A ) $=
      ( vx vy vz cv wbr wn wa wi wral cxp cin wpo wcel wb brinxp ralbidva df-po
      anbi12d anidms ad2antrr notbid adantll adantlr imbi12d ralbiia 3bitr4i
      adantr ) CFZUJBGZHZUJDFZBGZUMEFZBGZIZUJUOBGZJZIZEAKZDAKZCAKUJUJBAALMZGZHZ
      UJUMVCGZUMUOVCGZIZUJUOVCGZJZIZEAKZDAKZCAKABNAVCNVBVMCAUJAOZVAVLDAVNUMAOZI
      ZUTVKEAVPUOAOZIZULVEUSVJVRUKVDVNUKVDPZVOVQVNVSUJUJAABQUAUBUCVRUQVHURVIVRU
      NVFUPVGVPUNVFPVQUJUMAABQUIVOVQUPVGPVNUMUOAABQUDTVNVQURVIPVOUJUOAABQUEUFTR
      RUGCDEABSCDEAVCSUH $.

    $( Intersection of total order with Cartesian product of its field.
       (Contributed by Mario Carneiro, 10-Jul-2014.) $)
    soinxp $p |- ( R Or A <-> ( R i^i ( A X. A ) ) Or A ) $=
      ( vx vy wpo cv wbr weq w3o wral wa cxp cin poinxp wcel brinxp biidd df-so
      wor wb ancoms 3orbi123d ralbidva ralbiia anbi12i 3bitr4i ) ABEZCFZDFZBGZC
      DHZUIUHBGZIZDAJZCAJZKABAALMZEZUHUIUPGZUKUIUHUPGZIZDAJZCAJZKABSAUPSUGUQUOV
      BABNUNVACAUHAOZUMUTDAVCUIAOZKZUJURUKUKULUSUHUIAABPVEUKQVDVCULUSTUIUHAABPU
      AUBUCUDUECDABRCDAUPRUF $.

    $( Intersection of well-founded relation with Cartesian product of its
       field.  (Contributed by Mario Carneiro, 10-Jul-2014.) $)
    frinxp $p |- ( R Fr A <-> ( R i^i ( A X. A ) ) Fr A ) $=
      ( vz vy vx cv wss c0 wa wbr wn wral wrex wi wal wfr wb wcel ssel df-fr
      wne cxp cin anim12d brinxp ancoms notbid ralbidva rexbidva adantr pm5.74i
      syl6 impl albii 3bitr4i ) CFZAGZUPHUAZIZDFZEFZBJZKZDUPLZEUPMZNZCOUSUTVABA
      AUBUCZJZKZDUPLZEUPMZNZCOABPAVGPVFVLCUSVEVKUQVEVKQURUQVDVJEUPUQVAUPRZIZVCV
      IDUPVNUTUPRZIVBVHUQVMVOVBVHQZUQVMVOIVAARZUTARZIVPUQVMVQVOVRUPAVASUPAUTSUD
      VRVQVPUTVAAABUEUFULUMUGUHUIUJUKUNCEDABTCEDAVGTUO $.

    $( Intersection of set-like relation with Cartesian product of its field.
       (Contributed by Mario Carneiro, 22-Jun-2015.) $)
    seinxp $p |- ( R Se A <-> ( R i^i ( A X. A ) ) Se A ) $=
      ( vy vx cv wbr crab cvv wcel cxp cin wse wb brinxp ancoms rabbidva eleq1d
      wral ralbiia df-se 3bitr4i ) CEZDEZBFZCAGZHIZDARUBUCBAAJKZFZCAGZHIZDARABL
      AUGLUFUJDAUCAIZUEUIHUKUDUHCAUBAIUKUDUHMUBUCAABNOPQSDCABTDCAUGTUA $.

    $( Intersection of well-ordering with Cartesian product of its field.
       (Contributed by NM, 9-Mar-1997.)  (Revised by Mario Carneiro,
       10-Jul-2014.) $)
    weinxp $p |- ( R We A <-> ( R i^i ( A X. A ) ) We A ) $=
      ( wfr wor wa cxp cin wwe frinxp soinxp anbi12i df-we 3bitr4i ) ABCZABDZEA
      BAAFGZCZAPDZEABHAPHNQORABIABJKABLAPLM $.
  $}

  ${
    $d x y z A $.  $d x y z R $.
    $( Partial ordering of a singleton.  (Contributed by NM, 27-Apr-2009.)
       (Revised by Mario Carneiro, 23-Apr-2015.) $)
    posn $p |- ( Rel R -> ( R Po { A } <-> -. A R A ) ) $=
      ( vx vy vz cvv wpo wbr wn wb wa c0 wceq cv wi breq2 anbi2d ralsng ralbidv
      wral wrel wcel csn po0 snprc poeq2 sylbi mpbiri adantl brrelex stoic1a ex
      2thd df-po simpl syl5ib biantrud bicomd bitrd breq12 anidms notbid syl5bb
      imbi12d pm2.61d2 ) BUAZAFUBZAUCZBGZAABHZIZJZVFVGIZVLVFVMKVIVKVMVIVFVMVILB
      GZBUDVMVHLMVIVNJAUEVHLBUFUGUHUIVFVJVGAABUJUKUMULVICNZVOBHZIZVODNZBHZVRENZ
      BHZKZVOVTBHZOZKZEVHTZDVHTZCVHTZVGVKCDEVHBUNVGWHVQCVHTVKVGWGVQCVHVGWGVQVSV
      RABHZKZVOABHZOZKZDVHTVQVGWFWMDVHWEWMEAFVTAMZWDWLVQWNWBWJWCWKWNWAWIVSVTAVR
      BPQVTAVOBPVDQRSWMVQDAFVRAMZVQWMWOWLVQWJVSWOWKVSWIUOVRAVOBPUPUQURRUSSVQVKC
      AFVOAMZVPVJWPVPVJJVOAVOABUTVAVBRUSVCVE $.

    $( Strict ordering on a singleton.  (Contributed by Mario Carneiro,
       28-Dec-2014.) $)
    sosn $p |- ( Rel R -> ( R Or { A } <-> -. A R A ) ) $=
      ( vx vy csn wor wpo wrel wbr wn cv weq wral wcel wa elsni eqcomd sylan9eq
      w3o 3mix2d rgen2a df-so mpbiran2 posn syl5bb ) AEZBFZUFBGZBHAABIJUGUHCKZD
      KZBIZCDLZUJUIBIZSZDUFMCUFMUNCDUFUIUFNZUJUFNZOULUKUMUOUPUIAUJUIAPUPUJAUJAP
      QRTUACDUFBUBUCABUDUE $.

    $( Founded relation on a singleton.  (Contributed by Mario Carneiro,
       28-Dec-2014.)  (Revised by Mario Carneiro, 23-Apr-2015.) $)
    frsn $p |- ( Rel R -> ( R Fr { A } <-> -. A R A ) ) $=
      ( vz vy vx cvv wfr wbr wn wa c0 wceq adantl cv wral wrex wne wi wal imp
      wrel wcel csn wb snprc fr0 freq2 mpbiri sylbi brrelex stoic1a 2thd ex wss
      df-fr wo sssn neor sylbb eqimss snnzg neeq1 syl5ibrcom jca impbida imbi1d
      albidv raleq rexeqbi1dv ceqsalv syl6bb syl5bb breq2 notbid ralbidv rexsng
      snex breq1 ralsng 3bitrd pm2.61d2 ) BUAZAFUBZAUCZBGZAABHZIZUDZWBWCIZWHWBW
      IJWEWGWIWEWBWIWDKLZWEAUEWJWEKBGBUFWDKBUGUHUIMWBWFWCAABUJUKULUMWCWECNZDNZB
      HZIZCWDOZDWDPZWKABHZIZCWDOZWGWEENZWDUNZWTKQZJZWNCWTOZDWTPZRZESZWCWPEDCWDB
      UOWCXGWTWDLZXERZESWPWCXFXIEWCXCXHXEWCXCXHXCXHWCXAXBXHXAWTKLXHUPXBXHRWTAUQ
      XHWTKURUSTMWCXHJXAXBXHXAWCWTWDUTMWCXHXBWCXBXHWDKQAFVAWTWDKVBVCTVDVEVFVGXE
      WPEWDAVQXDWODWTWDWNCWTWDVHVIVJVKVLWOWSDAFWLALZWNWRCWDXJWMWQWLAWKBVMVNVOVP
      WRWGCAFWKALWQWFWKAABVRVNVSVTWA $.

    $( Well-ordering of a singleton.  (Contributed by Mario Carneiro,
       28-Dec-2014.) $)
    wesn $p |- ( Rel R -> ( R We { A } <-> -. A R A ) ) $=
      ( wrel csn wfr wor wa wbr wn wwe frsn sosn anbi12d df-we pm4.24 3bitr4g )
      BCZADZBEZRBFZGAABHIZUAGRBJUAQSUATUAABKABLMRBNUAOP $.
  $}

  ${
    $d A x y $.
    $( Membership in an ordered pair class builder implies membership in a
       Cartesian product.  (Contributed by Alexander van der Vekens,
       23-Jun-2018.) $)
    elopaelxp $p |- ( A e. { <. x , y >. | ps } -> A e. ( _V X. _V ) ) $=
      ( cv cop wceq wa wex copab wcel cvv cxp simpl 2eximi elopab elvv 3imtr4i
      ) DBECEFGZAHZCIBISCIBIDABCJKDLLMKTSBCSANOABCDPBCDQR $.
  $}

  ${
    $d A x y $.  $d B x y $.
    bropaex12.1 $e |- R = { <. x , y >. | ps } $.
    $( Two classes related by an ordered pair class builder are sets.
       (Contributed by AV, 21-Jan-2020.) $)
    bropaex12 $p |- ( A R B -> ( A e. _V /\ B e. _V ) ) $=
      ( wbr cop cvv cxp wcel wa copab df-br eleq2i bitri elopaelxp sylbi opelxp
      sylib ) DEFHZDEIZJJKLZDJLEJLMUBUCABCNZLZUDUBUCFLUFDEFOFUEUCGPQABCUCRSDEJJ
      TUA $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( An abstraction relation is a subset of a related Cartesian product.
       (Contributed by NM, 16-Jul-1995.) $)
    opabssxp $p |- { <. x , y >. | ( ( x e. A /\ y e. B ) /\ ph ) }
                   C_ ( A X. B ) $=
      ( cv wcel wa copab cxp simpl ssopab2i df-xp sseqtr4i ) BFDGCFEGHZAHZBCIOB
      CIDEJPOBCOAKLBCDEMN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y ps $.
    brab2a.1 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    brab2a.2 $e |- R = { <. x , y >. | ( ( x e. C /\ y e. D ) /\ ph ) } $.
    $( The law of concretion for a binary relation.  Ordered pair membership in
       an ordered pair class abstraction.  (Contributed by Mario Carneiro,
       28-Apr-2015.) $)
    brab2a $p |- ( A R B <-> ( ( A e. C /\ B e. D ) /\ ps ) ) $=
      ( wbr wcel wa cv copab cxp opabssxp eqsstri brel eleq2i opelopab2a syl5bb
      cop df-br bitri biadan2 ) EFILZEGMFHMNZBEFGHIICOGMDOHMNANCDPZGHQKACDGHRST
      UHEFUDZUJMZUIBUHUKIMULEFIUEIUJUKKUAUFABCDEFGHJUBUCUG $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y ps $.
    optocl.1 $e |- D = ( B X. C ) $.
    optocl.2 $e |- ( <. x , y >. = A -> ( ph <-> ps ) ) $.
    optocl.3 $e |- ( ( x e. B /\ y e. C ) -> ph ) $.
    $( Implicit substitution of class for ordered pair.  (Contributed by NM,
       5-Mar-1995.) $)
    optocl $p |- ( A e. D -> ps ) $=
      ( cxp wcel cv cop wceq wa wex elxp3 sylbi opelxp syl5ib exlimivv eleq2s
      imp ) BEFGLZHEUFMCNZDNZOZEPZUIUFMZQZDRCRBCDEFGSULBCDUJUKBUKAUJBUKUGFMUHGM
      QAUGUHFGUAKTJUBUEUCTIUD $.
  $}

  ${
    $d x y z w A $.  $d z w B $.  $d x y z w C $.  $d x y z w D $.
    $d x y ps $.  $d z w ch $.  $d z w R $.
    2optocl.1 $e |- R = ( C X. D ) $.
    2optocl.2 $e |- ( <. x , y >. = A -> ( ph <-> ps ) ) $.
    2optocl.3 $e |- ( <. z , w >. = B -> ( ps <-> ch ) ) $.
    2optocl.4 $e |- ( ( ( x e. C /\ y e. D ) /\ ( z e. C /\ w e. D ) ) ->
                   ph ) $.
    $( Implicit substitution of classes for ordered pairs.  (Contributed by NM,
       12-Mar-1995.) $)
    2optocl $p |- ( ( A e. R /\ B e. R ) -> ch ) $=
      ( wcel wi cv cop wceq imbi2d wa ex optocl com12 impcom ) ILQHLQZCUHBRUHCR
      FGIJKLMFSZGSZTIUABCUHOUBUHUIJQUJKQUCZBUKARUKBRDEHJKLMDSZESZTHUAABUKNUBULJ
      QUMKQUCUKAPUDUEUFUEUG $.
  $}

  ${
    $d x y z w v u A $.  $d z w v u B $.  $d v u C $.  $d x y z w v u D $.
    $d x y z w v u F $.  $d z w v u R $.  $d x y ps $.  $d z w ch $.
    $d v u th $.
    3optocl.1 $e |- R = ( D X. F ) $.
    3optocl.2 $e |- ( <. x , y >. = A -> ( ph <-> ps ) ) $.
    3optocl.3 $e |- ( <. z , w >. = B -> ( ps <-> ch ) ) $.
    3optocl.4 $e |- ( <. v , u >. = C -> ( ch <-> th ) ) $.
    3optocl.5 $e |- ( ( ( x e. D /\ y e. F ) /\ ( z e. D /\ w e. F )
                    /\ ( v e. D /\ u e. F ) ) -> ph ) $.
    $( Implicit substitution of classes for ordered pairs.  (Contributed by NM,
       12-Mar-1995.) $)
    3optocl $p |- ( ( A e. R /\ B e. R /\ C e. R ) -> th ) $=
      ( wcel wa wi cv cop wceq imbi2d 3expia 2optocl com12 optocl impcom 3impa
      ) KOUBZLOUBZMOUBZDUQUOUPUCZDURCUDURDUDIJMNPOQIUEZJUEZUFMUGCDURTUHURUSNUBU
      TPUBUCZCVAAUDVABUDVACUDEFGHKLNPOQEUEZFUEZUFKUGABVARUHGUEZHUEZUFLUGBCVASUH
      VBNUBVCPUBUCVDNUBVEPUBUCVAAUAUIUJUKULUMUN $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u D $.  $d x y z w v u S $.  $d x y ph $.  $d z w v u ps $.
    opbrop.1 $e |- ( ( ( z = A /\ w = B ) /\ ( v = C /\ u = D ) ) ->
                     ( ph <-> ps ) ) $.
    opbrop.2 $e |- R = { <. x , y >. | ( ( x e. ( S X. S ) /\
                      y e. ( S X. S ) ) /\
                      E. z E. w E. v E. u ( ( x = <. z , w >. /\
                      y = <. v , u >. ) /\ ph ) ) } $.
    $( Ordered pair membership in a relation.  Special case.  (Contributed by
       NM, 5-Aug-1995.) $)
    opbrop $p |- ( ( ( A e. S /\ B e. S ) /\ ( C e. S /\ D e. S ) ) ->
                   ( <. A , B >. R <. C , D >. <-> ps ) ) $=
      ( wcel wa cv wex cop wbr cxp opelxpi anim12i wceq opex eleq1 anbi1d eqeq1
      4exbidv anbi12d anbi2d brab copsex4g syl5bb mpbirand ) INQJNQRZKNQLNQRZRZ
      IJUAZKLUAZMUBZVANNUCZQZVBVDQZRZBURVEUSVFIJNNUDKLNNUDUEVCVGVAESFSUAZUFZVBG
      SHSUAZUFZRZARZHTGTFTETZRZUTVGBRCSZVDQZDSZVDQZRZVPVHUFZVRVJUFZRZARZHTGTFTE
      TZRVEVSRZVIWBRZARZHTGTFTETZRVOCDVAVBMIJUGKLUGVPVAUFZVTWFWEWIWJVQVEVSVPVAV
      DUHUIWJWDWHEFGHWJWCWGAWJWAVIWBVPVAVHUJUIUIUKULVRVBUFZWFVGWIVNWKVSVFVEVRVB
      VDUHUMWKWHVMEFGHWKWGVLAWKWBVKVIVRVBVJUJUMUIUKULPUNUTVNBVGABEFGHIJKLNNOUOU
      MUPUQ $.
  $}

  ${
    $d x y z A $.
    $( The Cartesian product with the empty set is empty.  Part of Theorem
       3.13(ii) of [Monk1] p. 37.  (Contributed by NM, 4-Jul-1994.) $)
    0xp $p |- ( (/) X. A ) = (/) $=
      ( vz vx vy c0 cxp cv wcel cop wceq wa wex noel simprl mto elxp mtbir nel0
      nex ) BEAFZBGZTHUACGZDGZIJZUBEHZUCAHZKKZDLZCLUHCUGDUGUEUBMUDUEUFNOSSCDUAE
      APQR $.
  $}

  ${
    $d A w y z $.  $d B w y z $.  $d C w y z $.  $d w x y z $.
    $( Distribute proper substitution through the Cartesian product of two
       classes.  (Contributed by Alan Sare, 10-Nov-2012.)  (Revised by NM,
       23-Aug-2018.) $)
    csbxp $p |- [_ A / x ]_ ( B X. C ) = ( [_ A / x ]_ B X. [_ A / x ]_ C ) $=
      ( vz vw vy cv wcel wex cab csb cxp wsbc sbcex2 sbcan bitri intnand eqtri
      wa cop wceq csbab cvv wb sbcg sbcel2 anbi12i a1i anbi12d sbcex con3i noel
      wn c0 neleqtrrd 2falsed pm2.61i exbii abbii copab df-opab csbeq2i 3eqtr4i
      csbprc df-xp ) ABEHFHZGHZUAUBZVGCIZVHDIZTZTZGJZFJZEKZLZVIVGABCLZIZVHABDLZ
      IZTZTZGJZFJZEKZABCDMZLVRVTMZVQVOABNZEKWFVOAEBUCWIWEEWIVNABNZFJWEVNFABOWJW
      DFWJVMABNZGJWDVMGABOWKWCGWKVIABNZVLABNZTZWCVIVLABPBUDIZWNWCUEWOWLVIWMWBVI
      ABUDUFWMWBUEWOWMVJABNZVKABNZTWBVJVKABPWPVSWQWAABVGCUGABVHDUGUHQUIUJWOUNZW
      NWCWRWMWLWMWOVLABUKULRWRWBVIWRWAVSWRVTUOVHVHUOIUNWRVHUMUIABDVEUPRRUQURQUS
      QUSQUTSABWGVPWGVLFGVAVPFGCDVFVLFGEVBSVCWHWBFGVAWFFGVRVTVFWBFGEVBSVD $.
  $}

  $( Equality theorem for the relation predicate.  (Contributed by NM,
     1-Aug-1994.) $)
  releq $p |- ( A = B -> ( Rel A <-> Rel B ) ) $=
    ( wceq cvv cxp wss wrel sseq1 df-rel 3bitr4g ) ABCADDEZFBKFAGBGABKHAIBIJ $.

  ${
    releqi.1 $e |- A = B $.
    $( Equality inference for the relation predicate.  (Contributed by NM,
       8-Dec-2006.) $)
    releqi $p |- ( Rel A <-> Rel B ) $=
      ( wceq wrel wb releq ax-mp ) ABDAEBEFCABGH $.
  $}

  ${
    releqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for the relation predicate.  (Contributed by NM,
       8-Mar-2014.) $)
    releqd $p |- ( ph -> ( Rel A <-> Rel B ) ) $=
      ( wceq wrel wb releq syl ) ABCEBFCFGDBCHI $.
  $}

  ${
    nfrel.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for a relation.  (Contributed by NM,
       31-Jan-2004.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfrel $p |- F/ x Rel A $=
      ( wrel cvv cxp wss df-rel nfcv nfss nfxfr ) BDBEEFZGABHABLCALIJK $.
  $}

  $( Distribute proper substitution through a relation predicate.  (Contributed
     by Alexander van der Vekens, 23-Jul-2017.) $)
  sbcrel $p |- ( A e. V -> ( [. A / x ]. Rel R <-> Rel [_ A / x ]_ R ) ) $=
    ( wcel cvv cxp wss wsbc sbcssg csbconstg sseq2d bitrd df-rel sbcbii 3bitr4g
    csb wrel ) BDEZCFFGZHZABIZABCQZTHZCRZABIUCRSUBUCABTQZHUDABCTDJSUFTUCABTDKLM
    UEUAABCNOUCNP $.

  $( Subclass theorem for relation predicate.  Theorem 2 of [Suppes] p. 58.
     (Contributed by NM, 15-Aug-1994.) $)
  relss $p |- ( A C_ B -> ( Rel B -> Rel A ) ) $=
    ( wss cvv cxp wrel sstr2 df-rel 3imtr4g ) ABCBDDEZCAJCBFAFABJGBHAHI $.

  ${
    $d x y z A $.  $d x y z B $.
    $( A subclass relationship depends only on a relation's ordered pairs.
       Theorem 3.2(i) of [Monk1] p. 33.  (Contributed by NM, 2-Aug-1994.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.)  Remove dependency on
       ~ ax-sep , ~ ax-nul , ~ ax-pr .  (Revised by KP, 25-Oct-2021.) $)
    ssrel $p |- ( Rel A -> ( A C_ B <->
                A. x A. y ( <. x , y >. e. A -> <. x , y >. e. B ) ) ) $=
      ( vz wrel wss cv cop wcel wi wal ssel alrimivv wceq wex cvv dfss2 eleq1
      wa cxp df-rel sylbb copab cab df-xp df-opab eqtri abeq2i simpl sylbi sylg
      2eximi imim2i imbi12d biimprcd 2alimi 19.23vv sylib com23 a2d alimdv syl5
      syl6ibr com12 impbid2 ) CFZCDGZAHZBHZIZCJZVKDJZKZBLALZVHVNABCDVKMNVOVGVHV
      OVGEHZCJZVPDJZKZELZVHVGVQVPVKOZBPAPZKZELVOVTVGVQVPQQUAZJZKZWCEVGCWDGWFELC
      UBECWDRUCWEWBVQWEWAVIQJVJQJTZTZBPAPZWBWIEWDWDWGABUDWIEUEABQQUFWGABEUGUHUI
      WHWAABWAWGUJUMUKUNULVOWCVSEVOVQWBVRVOWBVQVRVOWAVSKZBLALWBVSKVNWJABWAVSVNW
      AVQVLVRVMVPVKCSVPVKDSUOUPUQWAVSABURUSUTVAVBVCECDRVDVEVF $.

    $d x y z A $.  $d x y z B $.
    $( Obsolete proof of ~ ssrel as of 25-Oct-2021.  (Contributed by NM,
       2-Aug-1994.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ssrelOLD $p |- ( Rel A -> ( A C_ B <->
                A. x A. y ( <. x , y >. e. A -> <. x , y >. e. B ) ) ) $=
      ( vz wrel wss cv cop wcel wi wal ssel alrimivv wceq wex eleq1 imbi12d cvv
      dfss2 biimprcd 2alimi 19.23vv sylib com23 alimdv df-rel elvv imbi2i albii
      a2d cxp 3bitri 3imtr4g com12 impbid2 ) CFZCDGZAHBHIZCJZUSDJZKZBLALZURVBAB
      CDUSMNVCUQURVCEHZCJZVDUSOZBPAPZKZELZVEVDDJZKZELUQURVCVHVKEVCVEVGVJVCVGVEV
      JVCVFVKKZBLALVGVKKVBVLABVFVKVBVFVEUTVJVAVDUSCQVDUSDQRUAUBVFVKABUCUDUEUKUF
      UQCSSULZGVEVDVMJZKZELVICUGECVMTVOVHEVNVGVEABVDUHUIUJUMECDTUNUOUP $.

    $( Extensionality principle for relations.  Theorem 3.2(ii) of [Monk1]
       p. 33.  (Contributed by NM, 2-Aug-1994.) $)
    eqrel $p |- ( ( Rel A /\ Rel B ) -> ( A = B <->
                A. x A. y ( <. x , y >. e. A <-> <. x , y >. e. B ) ) ) $=
      ( wrel wa wss cv cop wcel wi wal wceq ssrel bi2anan9 eqss 2albiim 3bitr4g
      wb ) CEZDEZFCDGZDCGZFAHBHIZCJZUDDJZKBLALZUFUEKBLALZFCDMUEUFSBLALTUBUGUAUC
      UHABCDNABDCNOCDPUEUFABQR $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z R $.  $d x y z S $.
    $( A subclass relationship depends only on a relation's ordered pairs.
       This version of ~ ssrel is restricted to the relation's domain.
       (Contributed by Thierry Arnoux, 25-Jan-2018.) $)
    ssrel2 $p |- ( R C_ ( A X. B ) -> ( R C_ S <-> A. x e. A A. y e. B
      ( <. x , y >. e. R -> <. x , y >. e. S ) ) ) $=
      ( vz cxp wss cv cop wcel wi wral wrex wal eleq1 r19.23v bitri dfss2 sylib
      wa ssel ralrimivv wceq imbi12d biimprcd 2ralimi ralbii com23 alimdv elxp2
      a1d a2d imbi2i albii 3imtr4g com12 impbid2 ) ECDHZIZEFIZAJZBJZKZELZVEFLZM
      ZBDNACNZVBVHABCDVBVHVCCLVDDLUBEFVEUCUMUDVIVAVBVIGJZELZVJVEUEZBDOZACOZMZGP
      ZVKVJFLZMZGPVAVBVIVOVRGVIVKVNVQVIVNVKVQVIVLVRMZBDNZACNZVNVRMZVHVSABCDVLVR
      VHVLVKVFVQVGVJVEEQVJVEFQUFUGUHWAVMVRMZACNWBVTWCACVLVRBDRUIVMVRACRSUAUJUNU
      KVAVKVJUTLZMZGPVPGEUTTWEVOGWDVNVKABVJCDULUOUPSGEFTUQURUS $.
  $}

  ${
    $d x y A $.  $d x y B $.
    relssi.1 $e |- Rel A $.
    relssi.2 $e |- ( <. x , y >. e. A -> <. x , y >. e. B ) $.
    $( Inference from subclass principle for relations.  (Contributed by NM,
       31-Mar-1998.) $)
    relssi $p |- A C_ B $=
      ( wss cv cop wcel wi wal wrel wb ssrel ax-mp ax-gen mpgbir ) CDGZAHBHIZCJ
      TDJKZBLZACMSUBALNEABCDOPUABFQR $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ph $.
    relssdv.1 $e |- ( ph -> Rel A ) $.
    relssdv.2 $e |- ( ph -> ( <. x , y >. e. A -> <. x , y >. e. B ) ) $.
    $( Deduction from subclass principle for relations.  (Contributed by NM,
       11-Sep-2004.) $)
    relssdv $p |- ( ph -> A C_ B ) $=
      ( wss cv cop wcel wi wal alrimivv wrel wb ssrel syl mpbird ) ADEHZBICIJZD
      KUAEKLZCMBMZAUBBCGNADOTUCPFBCDEQRS $.
  $}

  ${
    $d x y A $.  $d x y B $.
    eqrelriv.1 $e |- ( <. x , y >. e. A <-> <. x , y >. e. B ) $.
    $( Inference from extensionality principle for relations.  (Contributed by
       FL, 15-Oct-2012.) $)
    eqrelriv $p |- ( ( Rel A /\ Rel B ) -> A = B ) $=
      ( wrel wa wceq cv cop wcel wb wal gen2 eqrel mpbiri ) CFDFGCDHAIBIJZCKQDK
      LZBMAMRABENABCDOP $.
  $}

  ${
    $d x y A $.  $d x y B $.
    eqreliiv.1 $e |- Rel A $.
    eqreliiv.2 $e |- Rel B $.
    eqreliiv.3 $e |- ( <. x , y >. e. A <-> <. x , y >. e. B ) $.
    $( Inference from extensionality principle for relations.  (Contributed by
       NM, 17-Mar-1995.) $)
    eqrelriiv $p |- A = B $=
      ( wrel wceq eqrelriv mp2an ) CHDHCDIEFABCDGJK $.
  $}

  ${
    $d x y A $.  $d x y B $.
    eqbrriv.1 $e |- Rel A $.
    eqbrriv.2 $e |- Rel B $.
    eqbrriv.3 $e |- ( x A y <-> x B y ) $.
    $( Inference from extensionality principle for relations.  (Contributed by
       NM, 12-Dec-2006.) $)
    eqbrriv $p |- A = B $=
      ( cv wbr cop wcel df-br 3bitr3i eqrelriiv ) ABCDEFAHZBHZCIOPDIOPJZCKQDKGO
      PCLOPDLMN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d ph x $.  $d ph y $.
    eqrelrdv.1 $e |- Rel A $.
    eqrelrdv.2 $e |- Rel B $.
    eqrelrdv.3 $e |- ( ph -> ( <. x , y >. e. A <-> <. x , y >. e. B ) ) $.
    $( Deduce equality of relations from equivalence of membership.
       (Contributed by Rodolfo Medina, 10-Oct-2010.) $)
    eqrelrdv $p |- ( ph -> A = B ) $=
      ( cv cop wcel wb wal wceq alrimivv wrel eqrel mp2an sylibr ) ABICIJZDKTEK
      LZCMBMZDENZAUABCHODPEPUCUBLFGBCDEQRS $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d ph x $.  $d ph y $.
    eqbrrdv.1 $e |- ( ph -> Rel A ) $.
    eqbrrdv.2 $e |- ( ph -> Rel B ) $.
    eqbrrdv.3 $e |- ( ph -> ( x A y <-> x B y ) ) $.
    $( Deduction from extensionality principle for relations.  (Contributed by
       Mario Carneiro, 3-Jan-2017.) $)
    eqbrrdv $p |- ( ph -> A = B ) $=
      ( wceq cv cop wcel wb wal wbr df-br 3bitr3g alrimivv wrel eqrel syl2anc
      mpbird ) ADEIZBJZCJZKZDLZUFELZMZCNBNZAUIBCAUDUEDOUDUEEOUGUHHUDUEDPUDUEEPQ
      RADSESUCUJMFGBCDETUAUB $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d ph x $.  $d ph y $.
    eqbrrdiv.1 $e |- Rel A $.
    eqbrrdiv.2 $e |- Rel B $.
    eqbrrdiv.3 $e |- ( ph -> ( x A y <-> x B y ) ) $.
    $( Deduction from extensionality principle for relations.  (Contributed by
       Rodolfo Medina, 10-Oct-2010.) $)
    eqbrrdiv $p |- ( ph -> A = B ) $=
      ( cv wbr cop wcel df-br 3bitr3g eqrelrdv ) ABCDEFGABIZCIZDJPQEJPQKZDLRELH
      PQDMPQEMNO $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d ph x $.  $d ph y $.
    eqrelrdv2.1 $e |- ( ph
       -> ( <. x , y >. e. A <-> <. x , y >. e. B ) ) $.
    $( A version of ~ eqrelrdv .  (Contributed by Rodolfo Medina,
       10-Oct-2010.) $)
    eqrelrdv2 $p |- ( ( ( Rel A /\ Rel B ) /\ ph ) -> A = B ) $=
      ( wrel wa wceq cv cop wcel wb wal alrimivv eqrel syl5ibr imp ) DGEGHZADEI
      ZATSBJCJKZDLUAELMZCNBNAUBBCFOBCDEPQR $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.
    $( A subclass relationship determined by ordered triples.  Use ~ relrelss
       to express the antecedent in terms of the relation predicate.
       (Contributed by NM, 17-Dec-2008.)  (Proof shortened by Andrew Salmon,
       27-Aug-2011.) $)
    ssrelrel $p |- ( A C_ ( ( _V X. _V ) X. _V ) -> ( A C_ B <->
                   A. x A. y A. z ( <. <. x , y >. , z >. e. A
                       -> <. <. x , y >. , z >. e. B ) ) ) $=
      ( vw cvv cxp wss cv cop wcel wi wal ssel alrimiv wex eleq1 sylib dfss2
      alrimivv wceq elvvv imbi12d biimprcd alimi 19.23v 2alimi syl5bi com23 a2d
      19.23vv alimdv 3imtr4g com12 impbid2 ) DGGHGHZIZDEIZAJBJKCJKZDLZUTELZMZCN
      ZBNANZUSVDABUSVCCDEUTOPUAVEURUSVEFJZDLZVFUQLZMZFNVGVFELZMZFNURUSVEVIVKFVE
      VGVHVJVEVHVGVJVHVFUTUBZCQZBQAQZVEVKABCVFUCVEVMVKMZBNANVNVKMVDVOABVDVLVKMZ
      CNVOVCVPCVLVKVCVLVGVAVJVBVFUTDRVFUTERUDUEUFVLVKCUGSUHVMVKABULSUIUJUKUMFDU
      QTFDETUNUOUP $.

    $( Extensionality principle for ordered triples (used by 2-place operations
       ~ df-oprab ), analogous to ~ eqrel .  Use ~ relrelss to express the
       antecedent in terms of the relation predicate.  (Contributed by NM,
       17-Dec-2008.) $)
    eqrelrel $p |- ( ( A u. B ) C_ ( ( _V X. _V ) X. _V ) -> ( A = B <->
                   A. x A. y A. z ( <. <. x , y >. , z >. e. A
                       <-> <. <. x , y >. , z >. e. B ) ) ) $=
      ( cun cvv cxp wss wa wceq cv cop wcel wb wal unss wi ssrelrel bi2anan9
      eqss 2albiim albii 19.26 bitri 3bitr4g sylbir ) DEFGGHGHZIDUHIZEUHIZJZDEK
      ZALBLMCLMZDNZUMENZOCPBPZAPZODEUHQUKDEIZEDIZJUNUORCPBPZAPZUOUNRCPBPZAPZJZU
      LUQUIURVAUJUSVCABCDESABCEDSTDEUAUQUTVBJZAPVDUPVEAUNUOBCUBUCUTVBAUDUEUFUG
      $.
  $}

  ${
    $d x y A $.
    $( A member of a relation is an ordered pair.  (Contributed by NM,
       17-Sep-2006.) $)
    elrel $p |- ( ( Rel R /\ A e. R ) -> E. x E. y A = <. x , y >. ) $=
      ( wrel wcel wa cvv cxp cop wceq wex wss df-rel biimpi sselda elvv sylib
      cv ) DEZCDFGCHHIZFCASBSJKBLALTDUACTDUAMDNOPABCQR $.
  $}

  $( A singleton is a relation iff it is an ordered pair.  (Contributed by NM,
     24-Sep-2013.)  (Revised by BJ, 12-Feb-2022.) $)
  relsng $p |- ( A e. V -> ( Rel { A } <-> A e. ( _V X. _V ) ) ) $=
    ( wcel cvv cxp csn wss wrel snssg df-rel syl6rbbr ) ABCADDEZCAFZLGMHALBIMJK
    $.

  $( A singleton of an ordered pair is a relation.  (Contributed by NM,
     17-May-1998.)  (Revised by BJ, 12-Feb-2022.) $)
  relsnopg $p |- ( ( A e. V /\ B e. W ) -> Rel { <. A , B >. } ) $=
    ( wcel wa cop csn wrel cvv cxp opelvvg wb opex relsng mp1i mpbird ) ACEBDEF
    ZABGZHIZSJJKEZABCDLSJETUAMRABNSJOPQ $.

  ${
    relsn.1 $e |- A e. _V $.
    $( A singleton is a relation iff it is an ordered pair.  (Contributed by
       NM, 24-Sep-2013.) $)
    relsn $p |- ( Rel { A } <-> A e. ( _V X. _V ) ) $=
      ( cvv wcel csn wrel cxp wb relsng ax-mp ) ACDAEFACCGDHBACIJ $.

    $( Obsolete proof of ~ relsn as of 12-Feb-2022.  (Contributed by NM,
       24-Sep-2013.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    relsnOLD $p |- ( Rel { A } <-> A e. ( _V X. _V ) ) $=
      ( csn wrel cvv cxp wss wcel df-rel snss bitr4i ) ACZDLEEFZGAMHLIAMBJK $.

    relsnop.2 $e |- B e. _V $.
    $( A singleton of an ordered pair is a relation.  (Contributed by NM,
       17-May-1998.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    relsnop $p |- Rel { <. A , B >. } $=
      ( cvv wcel cop csn wrel relsnopg mp2an ) AEFBEFABGHICDABEEJK $.

    $( Obsolete proof of ~ relsnop as of 12-Feb-2022.  (Contributed by NM,
       17-May-1998.)  (Revised by Mario Carneiro, 26-Apr-2015.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    relsnopOLD $p |- Rel { <. A , B >. } $=
      ( cop csn wrel cvv cxp wcel opelvv opex relsn mpbir ) ABEZFGOHHIJABCDKOAB
      LMN $.
  $}

  ${
    $d x y A $.  $d x y ph $.
    copsex2ga.1 $e |- ( A = <. x , y >. -> ( ph <-> ps ) ) $.
    $( Implicit substitution inference for ordered pairs.  Compare
       ~ copsex2ga .  (Contributed by NM, 12-Mar-2014.) $)
    copsex2gb $p |- ( E. x E. y ( A = <. x , y >. /\ ps )
         <-> ( A e. ( _V X. _V ) /\ ph ) ) $=
      ( cvv cxp wcel wa cv cop wceq elvv anbi1i 19.41vv pm5.32i 2exbii 3bitr2ri
      wex ) EGGHIZAJECKDKLMZDTCTZAJUBAJZDTCTUBBJZDTCTUAUCACDENOUBACDPUDUECDUBAB
      FQRS $.

    $( Implicit substitution inference for ordered pairs.  Compare ~ copsex2g .
       (Contributed by NM, 26-Feb-2014.)  (Proof shortened by Mario Carneiro,
       31-Aug-2015.) $)
    copsex2ga $p |- ( A e. ( V X. W )
        -> ( ph <-> E. x E. y ( A = <. x , y >. /\ ps ) ) ) $=
      ( cxp wcel cvv cv cop wceq wa wex wb xpss sseli copsex2gb baibr syl ) EFG
      IZJEKKIZJZAECLDLMNBODPCPZQUCUDEFGRSUFUEAABCDEHTUAUB $.

    $( Membership in an ordered pair class builder.  (Contributed by NM,
       25-Feb-2014.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    elopaba $p |- ( A e. { <. x , y >. | ps } <->
            ( A e. ( _V X. _V ) /\ ph ) ) $=
      ( copab wcel cv cop wceq wa wex cvv cxp elopab copsex2gb bitri ) EBCDGHEC
      IDIJKBLDMCMENNOHALBCDEPABCDEFQR $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( A Cartesian product is included in the power of the power of the union
       of its arguments.  (Contributed by NM, 13-Sep-2006.) $)
    xpsspw $p |- ( A X. B ) C_ ~P ~P ( A u. B ) $=
      ( vx vy cxp cun cpw relxp cv wcel csn cpr wss snssi syl elpw sylibr sylib
      wa vex opelxp ssun3 snex adantr df-pr ssun4 anim12i unss syl5eqss zfpair2
      cop jca prex dfop eleq1i prss 3bitr4ri sylbi relssi ) CDABEZABFZGZGZABHCI
      ZDIZUKZUTJVDAJZVEBJZSZVFVCJZVDVEABUAVIVDKZVBJZVDVELZVBJZSZVJVIVLVNVGVLVHV
      GVKVAMZVLVGVKAMVPVDANVKABUBOZVKVAVDUCZPQUDVIVMVAMVNVIVMVKVEKZFZVAVDVEUEVI
      VPVSVAMZSVTVAMVGVPVHWAVQVHVSBMWAVEBNVSBAUFOUGVKVSVAUHRUIVMVACDUJZPQULVKVM
      LZVCJWCVBMVJVOWCVBVKVMUMPVFWCVCVDVECTDTUNUOVKVMVBVRWBUPUQRURUS $.
  $}

  $( The double class union of a Cartesian product is included in the union of
     its arguments.  (Contributed by NM, 16-Sep-2006.) $)
  unixpss $p |- U. U. ( A X. B ) C_ ( A u. B ) $=
    ( cxp cuni cun cpw xpsspw unissi unipw sseqtri ) ABCZDZDABEZFZDMLNLNFZDNKOA
    BGHNIJHMIJ $.

  $( The union of two relations is a relation.  Compare Exercise 5 of
     [TakeutiZaring] p. 25.  (Contributed by NM, 12-Aug-1994.) $)
  relun $p |- ( Rel ( A u. B ) <-> ( Rel A /\ Rel B ) ) $=
    ( cvv cxp wss wa cun wrel unss df-rel anbi12i 3bitr4ri ) ACCDZEZBMEZFABGZME
    AHZBHZFPHABMIQNROAJBJKPJL $.

  $( The intersection with a relation is a relation.  (Contributed by NM,
     16-Aug-1994.) $)
  relin1 $p |- ( Rel A -> Rel ( A i^i B ) ) $=
    ( cin wss wrel wi inss1 relss ax-mp ) ABCZADAEJEFABGJAHI $.

  $( The intersection with a relation is a relation.  (Contributed by NM,
     17-Jan-2006.) $)
  relin2 $p |- ( Rel B -> Rel ( A i^i B ) ) $=
    ( cin wss wrel wi inss2 relss ax-mp ) ABCZBDBEJEFABGJBHI $.

  $( A difference cutting down a relation is a relation.  (Contributed by NM,
     31-Mar-1998.) $)
  reldif $p |- ( Rel A -> Rel ( A \ B ) ) $=
    ( cdif wss wrel wi difss relss ax-mp ) ABCZADAEJEFABGJAHI $.

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( An indexed union is a relation iff each member of its indexed family is
       a relation.  (Contributed by NM, 19-Dec-2008.) $)
    reliun $p |- ( Rel U_ x e. A B <-> A. x e. A Rel B ) $=
      ( vy ciun wrel cv wcel wrex cab cvv cxp wss wral df-iun releqi df-rel wal
      wi 3bitri abss dfss2 bitri ralbii ralcom4 r19.23v albii bitr4i ) ABCEZFDG
      ZCHZABIZDJZFUMKKLZMZCFZABNZUIUMADBCOPUMQUOULUJUNHZSZDRZUQULDUNUAUQUKURSZD
      RZABNVAABNZDRUTUPVBABUPCUNMVBCQDCUNUBUCUDVAADBUEVCUSDUKURABUFUGTUHT $.
  $}

  $( An indexed intersection is a relation if at least one of the member of the
     indexed family is a relation.  (Contributed by NM, 8-Mar-2014.) $)
  reliin $p |- ( E. x e. A Rel B -> Rel |^|_ x e. A B ) $=
    ( cvv cxp wss wrex ciin wrel iinss df-rel rexbii 3imtr4i ) CDDEZFZABGABCHZN
    FCIZABGPIABCNJQOABCKLPKM $.

  ${
    $d x A $.
    $( The union of a class is a relation iff any member is a relation.
       Exercise 6 of [TakeutiZaring] p. 25 and its converse.  (Contributed by
       NM, 13-Aug-2004.) $)
    reluni $p |- ( Rel U. A <-> A. x e. A Rel x ) $=
      ( cuni wrel cv ciun wral uniiun releqi reliun bitri ) BCZDABAEZFZDMDABGLN
      ABHIABMJK $.

    $( The intersection of a class is a relation if at least one member is a
       relation.  (Contributed by NM, 8-Mar-2014.) $)
    relint $p |- ( E. x e. A Rel x -> Rel |^| A ) $=
      ( cv wrel wrex ciin cint reliin intiin releqi sylibr ) ACZDABEABLFZDBGZDA
      BLHNMABIJK $.
  $}

  $( The empty set is a relation.  (Contributed by NM, 26-Apr-1998.) $)
  rel0 $p |- Rel (/) $=
    ( c0 wrel cvv cxp wss 0ss df-rel mpbir ) ABACCDZEIFAGH $.

  $( The universal class is not a relation.  (Contributed by Thierry Arnoux,
     23-Jan-2022.) $)
  nrelv $p |- -. Rel _V $=
    ( cvv wrel cxp wss c0 wcel wn 0ex 0nelxp nelss mp2an df-rel mtbir ) ABAAACZ
    DZEAFENFGOGHAAIEANJKALM $.

  ${
    $d ph z $.  $d A z $.  $d u x z $.  $d u y z $.
    relopabi.1 $e |- A = { <. x , y >. | ph } $.
    $( A class of ordered pairs is a relation.  (Contributed by Mario Carneiro,
       21-Dec-2013.)  Remove dependency on ~ ax-sep , ~ ax-nul , ~ ax-pr .
       (Revised by KP, 25-Oct-2021.) $)
    relopabi $p |- Rel A $=
      ( vz vu cvv cv wcel wex cop wceq wa copab cab df-opab eqtri 2eximi syl
      wrel cxp abeq2i simpl sylbi ax6evr pm3.21 eximdv opeq2 eqtr2 eqcomd sylan
      wss mpi eximi eqcoms excomim vex pm3.2i jctr df-xp sylibr 3syl ax5e ssriv
      df-rel mpbir ) DUADHHUBZUMFDVHFIZDJZVIVHJZCKZVKVJVIBIZCIZLZMZCKBKZVIVMGIZ
      LZMZGKZBKZCKZVLVJVPANZCKBKZVQWEFDDABCOWEFPEABCFQRUCWDVPBCVPAUDSUEVQWACKBK
      WCVPWABCWAVOVIVOVIMZVNVRMZWFNZGKZWAWFWGGKWIGCUFWFWGWHGWFWGUGUHUNWHVTGWGVO
      VSMZWFVTVNVRVMUIWJWFNVSVIVOVSVIUJUKULUOTUPSWABCUQTWBVKCWBVTVMHJZVRHJZNZNZ
      GKBKZVKVTWNBGVTWMWKWLBURGURUSUTSWOFVHVHWMBGOWOFPBGHHVAWMBGFQRUCVBUOVCVKCV
      DTVEDVFVG $.

    $( Alternate proof of ~ relopabi (shorter but uses more axioms).
       (Contributed by Mario Carneiro, 21-Dec-2013.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    relopabiALT $p |- Rel A $=
      ( vz wrel cvv cxp wss cv cop wceq wa wex cab copab df-opab wcel vex eqtri
      opelvv eleq1 mpbiri adantr exlimivv abssi eqsstri df-rel mpbir ) DGDHHIZJ
      DFKZBKZCKZLZMZANZCOBOZFPZUKDABCQUSEABCFRUAURFUKUQULUKSZBCUPUTAUPUTUOUKSUM
      UNBTCTUBULUOUKUCUDUEUFUGUHDUIUJ $.
  $}

  $( A class of ordered pairs is a relation.  (Contributed by NM, 8-Mar-1995.)
     Removed DV restrictions.  (Revised by Alan Sare, 9-Jul-2013.)  (Proof
     shortened by Mario Carneiro, 21-Dec-2013.) $)
  relopab $p |- Rel { <. x , y >. | ph } $=
    ( copab eqid relopabi ) ABCABCDZGEF $.

  ${
    $d A y $.  $d B y $.  $d x y $.
    $( The maps-to notation always describes a relationship.  (Contributed by
       Scott Fenton, 16-Apr-2012.) $)
    mptrel $p |- Rel ( x e. A |-> B ) $=
      ( vy cv wcel wceq wa cmpt df-mpt relopabi ) AEBFDECGHADABCIADBCJK $.
  $}

  ${
    $d w x y z A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d ph z w $.
    $d ps z w $.
    $( The identity relation is a relation.  Part of Exercise 4.12(p) of
       [Mendelson] p. 235.  (Contributed by NM, 26-Apr-1998.)  (Revised by
       Mario Carneiro, 21-Dec-2013.) $)
    reli $p |- Rel _I $=
      ( vx vy weq cid dfid3 relopabi ) ABCABDABEF $.

    $( The membership relation is a relation.  (Contributed by NM,
       26-Apr-1998.)  (Revised by Mario Carneiro, 21-Dec-2013.) $)
    rele $p |- Rel _E $=
      ( vx vy wel cep df-eprel relopabi ) ABCABDABEF $.

    $( A relation expressed as an ordered pair abstraction.  (Contributed by
       NM, 11-Dec-2006.) $)
    opabid2 $p |- ( Rel A -> { <. x , y >. | <. x , y >. e. A } = A ) $=
      ( vz vw wrel cv cop wcel copab wceq wb wal vex opeq1 eleq1d opelopab gen2
      opeq2 relopab eqrel mpan mpbiri ) CFZAGZBGZHZCIZABJZCKZDGZEGZHZUIIUMCIZLZ
      EMDMZUODEUHUKUFHZCIUNABUKULDNENUEUKKUGUQCUEUKUFOPUFULKUQUMCUFULUKSPQRUIFU
      DUJUPLUHABTDEUICUAUBUC $.

    $( Intersection of two ordered pair class abstractions.  (Contributed by
       NM, 30-Sep-2002.) $)
    inopab $p |- ( { <. x , y >. | ph } i^i { <. x , y >. | ps } ) =
               { <. x , y >. | ( ph /\ ps ) } $=
      ( vz vw copab cin wa wrel relopab relin1 ax-mp cv cop wcel wsb sban sbbii
      opelopabsbALT anbi12i 3bitr4ri elin 3bitr4i eqrelriiv ) EFACDGZBCDGZHZABI
      ZCDGZUFJUHJACDKUFUGLMUICDKENFNOZUFPZUKUGPZIZUICEQZDFQZUKUHPUKUJPACEQZBCEQ
      ZIZDFQUQDFQZURDFQZIUPUNUQURDFRUOUSDFABCERSULUTUMVAACDEFTBCDEFTUAUBUKUFUGU
      CUICDEFTUDUE $.

    $( The difference of two ordered-pair abstractions.  (Contributed by Stefan
       O'Rear, 17-Jan-2015.) $)
    difopab $p |- ( { <. x , y >. | ph } \ { <. x , y >. | ps } ) =
        { <. x , y >. | ( ph /\ -. ps ) } $=
      ( vz vw copab wn wa wrel relopab ax-mp cv wcel wsbc sbcbii opelopabsb cvv
      sbcan wb cdif reldif cop vex sbcng notbii anbi12i eldif 3bitr4i eqrelriiv
      3bitr4ri ) EFACDGZBCDGZUAZABHZIZCDGZULJUNJACDKULUMUBLUPCDKEMZFMZUCZULNZUT
      UMNZHZIZUPDUSOZCUROZUTUNNUTUQNADUSOZUODUSOZIZCUROVGCUROZVHCUROZIVFVDVGVHC
      URSVEVICURAUODUSSPVAVJVCVKACDURUSQBDUSOZHZCUROZVLCUROZHZVKVCURRNVNVPTEUDV
      LCURRUELVHVMCURUSRNVHVMTFUDBDUSRUELPVBVOBCDURUSQUFUKUGUKUTULUMUHUPCDURUSQ
      UIUJ $.

    $( The intersection of two Cartesian products.  Exercise 9 of
       [TakeutiZaring] p. 25.  (Contributed by NM, 3-Aug-1994.)  (Proof
       shortened by Andrew Salmon, 27-Aug-2011.) $)
    inxp $p |- ( ( A X. B ) i^i ( C X. D ) ) =
                   ( ( A i^i C ) X. ( B i^i D ) ) $=
      ( vx vy cv wcel wa copab cin cxp inopab elin anbi12i bitr4i opabbii eqtri
      an4 df-xp ineq12i 3eqtr4i ) EGZAHZFGZBHZIZEFJZUCCHZUEDHZIZEFJZKZUCACKZHZU
      EBDKZHZIZEFJZABLZCDLZKUNUPLUMUGUKIZEFJUSUGUKEFMVBUREFVBUDUIIZUFUJIZIURUDU
      FUIUJSUOVCUQVDUCACNUEBDNOPQRUTUHVAULEFABTEFCDTUAEFUNUPTUB $.

    $( Distributive law for Cartesian product over intersection.  Theorem 102
       of [Suppes] p. 52.  (Contributed by NM, 26-Sep-2004.) $)
    xpindi $p |- ( A X. ( B i^i C ) ) = ( ( A X. B ) i^i ( A X. C ) ) $=
      ( cxp cin inxp inidm xpeq1i eqtr2i ) ABDACDEAAEZBCEZDAKDABACFJAKAGHI $.

    $( Distributive law for Cartesian product over intersection.  Similar to
       Theorem 102 of [Suppes] p. 52.  (Contributed by NM, 26-Sep-2004.) $)
    xpindir $p |- ( ( A i^i B ) X. C ) = ( ( A X. C ) i^i ( B X. C ) ) $=
      ( cxp cin inxp inidm xpeq2i eqtr2i ) ACDBCDEABEZCCEZDJCDACBCFKCJCGHI $.
  $}

  ${
    $d x y z A $.  $d x y z C $.  $d y z B $.
    $( Distributive law for Cartesian product over indexed intersection.
       (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    xpiindi $p |- ( A =/= (/) ->
      ( C X. |^|_ x e. A B ) = |^|_ x e. A ( C X. B ) ) $=
      ( vy vz ciin cxp wrel wa wral relxp cv wcel wb eliin ax-mp opelxp 3bitr4g
      cvv wne wceq wrex rgenw r19.2z mpan2 reliin syl jctil cop r19.28zv bicomd
      c0 vex anbi2i ralbii opex eqrelrdv2 mpancom ) DABCGZHZIZABDCHZGZIZJBUMUAZ
      VAVDUBVFVEVBVFVCIZABUCZVEVFVGABKVHVGABDCLUDVGABUEUFABVCUGUHDUTLUIVFEFVAVD
      VFEMZDNZFMZUTNZJZVIVKUJZVCNZABKZVNVANVNVDNZVFVJVKCNZABKZJZVJVRJZABKZVMVPV
      FWBVTVJVRABUKULVLVSVJVKTNVLVSOFUNAVKBCTPQUOVOWAABVIVKDCRUPSVIVKDUTRVNTNVQ
      VPOVIVKUQAVNBVCTPQSURUS $.

    $( Distributive law for Cartesian product over relativized indexed
       intersection.  (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    xpriindi $p |- ( C X. ( D i^i |^|_ x e. A B ) ) =
      ( ( C X. D ) i^i |^|_ x e. A ( C X. B ) ) $=
      ( ciin cin cxp wceq c0 cvv iineq1 0iin syl6eq ineq2d xpeq2d eqtr4d xpindi
      inv1 wne xpiindi syl5eq pm2.61ine ) DEABCFZGZHZDEHZABDCHZFZGZIBJBJIZUFUGU
      JUKUEEDUKUEEKGEUKUDKEUKUDAJCFKABJCLACMNOESNPUKUJUGKGUGUKUIKUGUKUIAJUHFKAB
      JUHLAUHMNOUGSNQBJTZUFUGDUDHZGUJDEUDRULUMUIUGABCDUAOUBUC $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y C $.  $d x D $.  $d x E $.
    $( Membership in a union of Cartesian products.  Analogue of ~ elxp for
       nonconstant ` B ( x ) ` .  (Contributed by Mario Carneiro,
       29-Dec-2014.) $)
    eliunxp $p |- ( C e. U_ x e. A ( { x } X. B ) <->
      E. x E. y ( C = <. x , y >. /\ ( x e. A /\ y e. B ) ) ) $=
      ( cv csn cxp ciun wcel cop wceq wex wa wrel wral relxp rgenw reliun exbii
      mpbir elrel mpan pm4.71ri nfiu1 nfel2 19.41 19.41v eleq1 opeliunxp syl6bb
      pm5.32i bitr3i 3bitr2i ) EACAFZGZDHZIZJZEUOBFZKZLZBMZAMZUSNVCUSNZAMVBUOCJ
      UTDJNZNZBMZAMUSVDUROZUSVDVIUQOZACPVJACUPDQRACUQSUAABEURUBUCUDVCUSAAEURACU
      QUEUFUGVEVHAVEVBUSNZBMVHVBUSBUHVKVGBVBUSVFVBUSVAURJVFEVAURUIACDUTUJUKULTU
      MTUN $.

    $d x A $.
    opeliunxp2.1 $e |- ( x = C -> B = E ) $.
    $( Membership in a union of Cartesian products.  (Contributed by Mario
       Carneiro, 14-Feb-2015.) $)
    opeliunxp2 $p |- ( <. C , D >. e. U_ x e. A ( { x } X. B ) <->
      ( C e. A /\ D e. E ) ) $=
      ( cop cv csn cxp ciun wcel cvv wa wbr df-br wrel wral wb relxp rgenw elex
      reliun mpbir brrelexi sylbir adantr nfiu1 nfel2 nfv nfbi wceq opeq1 eleq1
      eleq1d eleq2d anbi12d bibi12d opeliunxp vtoclg1f pm5.21nii ) DEHZABAIZJZC
      KZLZMZDNMZDBMZEFMZOZVHDEVGPVIDEVGQDEVGVGRVFRZABSVMABVECUAUBABVFUDUEUFUGVJ
      VIVKDBUCUHVDEHZVGMZVDBMZECMZOZTVHVLTADNVHVLAAVCVGABVFUIUJVLAUKULVDDUMZVOV
      HVRVLVSVNVCVGVDDEUNUPVSVPVJVQVKVDDBUOVSCFEGUQURUSABCEUTVAVB $.
  $}

  ${
    $d x y z A $.  $d x z B $.  $d y z ph $.  $d x ps $.
    ralxp.1 $e |- ( x = <. y , z >. -> ( ph <-> ps ) ) $.
    $( Write a double restricted quantification as one universal quantifier.
       In this version of ~ ralxp , ` B ( y ) ` is not assumed to be constant.
       (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    raliunxp $p |- ( A. x e. U_ y e. A ( { y } X. B ) ph <->
      A. y e. A A. z e. B ps ) $=
      ( cv csn cxp ciun wcel wi wal wa wral wex albii bitri wceq eliunxp imbi1i
      cop 19.23vv bitr4i alrot3 impexp opex imbi2d ceqsalv 2albii r2al 3bitr4i
      df-ral ) CIZDFDIZJGKLZMZANZCOZUQFMEIZGMPZBNZEODOZACURQBEGQDFQVAUPUQVBUDZU
      AZVCPZANZEODOZCOZVEUTVJCUTVHERDRZANVJUSVLADEFGUPUBUCVHADEUEUFSVKVICOZEODO
      VEVICDEUGVMVDDEVMVGVCANZNZCOVDVIVOCVGVCAUHSVNVDCVFUQVBUIVGABVCHUJUKTULTTA
      CURUOBDEFGUMUN $.

    $( Write a double restricted quantification as one universal quantifier.
       In this version of ~ rexxp , ` B ( y ) ` is not assumed to be constant.
       (Contributed by Mario Carneiro, 14-Feb-2015.) $)
    rexiunxp $p |- ( E. x e. U_ y e. A ( { y } X. B ) ph <->
      E. y e. A E. z e. B ps ) $=
      ( wn cv csn cxp ciun wral wrex cop wceq notbid raliunxp dfrex2 3bitr4i
      ralnex ralbii bitri notbii ) AIZCDFDJZKGLMZNZIBEGOZIZDFNZIACUHOUJDFOUIULU
      IBIZEGNZDFNULUFUMCDEFGCJUGEJPQABHRSUNUKDFBEGUBUCUDUEACUHTUJDFTUA $.

    $d y B $.
    $( Universal quantification restricted to a Cartesian product is equivalent
       to a double restricted quantification.  The hypothesis specifies an
       implicit substitution.  (Contributed by NM, 7-Feb-2004.)  (Revised by
       Mario Carneiro, 29-Dec-2014.) $)
    ralxp $p |- ( A. x e. ( A X. B ) ph <-> A. y e. A A. z e. B ps ) $=
      ( cxp wral cv csn ciun iunxpconst raleqi raliunxp bitr3i ) ACFGIZJACDFDKL
      GIMZJBEGJDFJACSRDFGNOABCDEFGHPQ $.

    $( Existential quantification restricted to a Cartesian product is
       equivalent to a double restricted quantification.  (Contributed by NM,
       11-Nov-1995.)  (Revised by Mario Carneiro, 14-Feb-2015.) $)
    rexxp $p |- ( E. x e. ( A X. B ) ph <-> E. y e. A E. z e. B ps ) $=
      ( cxp wrex cv csn ciun iunxpconst rexeqi rexiunxp bitr3i ) ACFGIZJACDFDKL
      GIMZJBEGJDFJACSRDFGNOABCDEFGHPQ $.
  $}

  ${
    $d y z ph $.  $d x ps $.  $d x y z $.
    exopxfr.1 $e |- ( x = <. y , z >. -> ( ph <-> ps ) ) $.
    $( Transfer ordered-pair existence from/to single variable existence.
       (Contributed by NM, 26-Feb-2014.)  (Proof shortened by Mario Carneiro,
       31-Aug-2015.) $)
    exopxfr $p |- ( E. x e. ( _V X. _V ) ph <-> E. y E. z ps ) $=
      ( cvv cxp wrex wex rexxp rexv exbii 3bitri ) ACGGHIBEGIZDGIODJBEJZDJABCDE
      GGFKODLOPDBELMN $.
  $}

  ${
    $d x y z A $.  $d y z ph $.  $d x ps $.
    exopxfr2.1 $e |- ( x = <. y , z >. -> ( ph <-> ps ) ) $.
    $( Transfer ordered-pair existence from/to single variable existence.
       (Contributed by NM, 26-Feb-2014.) $)
    exopxfr2 $p |- ( Rel A -> ( E. x e. A ph
              <-> E. y E. z ( <. y , z >. e. A /\ ps ) ) ) $=
      ( wrel wrex cv wcel wa cvv cxp cop wex wss df-rel biimpi sseld wceq eleq1
      adantrd pm4.71rd rexbidv2 anbi12d exopxfr syl6bb ) FHZACFICJZFKZALZCMMNZI
      DJEJOZFKZBLZEPDPUIAULCFUMUIULUJUMKZUIUKUQAUIFUMUJUIFUMQFRSTUCUDUEULUPCDEU
      JUNUAUKUOABUJUNFUBGUFUGUH $.
  $}

  ${
    $d x A $.
    $( Disjoint union is a subset of a Cartesian product.  (Contributed by
       Stefan O'Rear, 21-Nov-2014.) $)
    djussxp $p |- U_ x e. A ( { x } X. B ) C_ ( A X. _V ) $=
      ( cv csn cxp ciun cvv wss iunss wcel snssi ssv xpss12 sylancl mprgbir ) A
      BADZEZCFZGBHFZISTIZABABSTJQBKRBICHIUAQBLCMRBCHNOP $.
  $}

  ${
    $d u v w x y A $.  $d u v w x y z B $.  $d u v w ph $.  $d u v w ps $.
    ralxpf.1 $e |- F/ y ph $.
    ralxpf.2 $e |- F/ z ph $.
    ralxpf.3 $e |- F/ x ps $.
    ralxpf.4 $e |- ( x = <. y , z >. -> ( ph <-> ps ) ) $.
    $( Version of ~ ralxp with bound-variable hypotheses.  (Contributed by NM,
       18-Aug-2006.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    ralxpf $p |- ( A. x e. ( A X. B ) ph <-> A. y e. A A. z e. B ps ) $=
      ( vw vu vv wral wsb cv wceq vex nfsb cxp cbvralsv ralbii nfcv nfs1v nfral
      nfv sbequ12 ralbidv cbvral cop wa wex wb eqvinop nfbi opth sylan9bb sylbi
      sbhypf exlimi ralxp 3bitr4ri bitri ) ACFGUAZOACLPZLVEOZBEGOZDFOZACLVEUBBD
      MPZEGOZMFOVJENPZNGOZMFOVIVGVKVMMFVJENGUBUCVHVKDMFVHMUGVJDEGDGUDBDMUEZUFDQ
      ZMQZRZBVJEGBDMUHZUIUJVFVLLMNFGLQZVPNQZUKZRVSVOEQZUKZRZWCWARZULZEUMZDUMVFV
      LUNZDEVSVPVTMSNSUOWGWHDVFVLDACLDHTVJENDVNTUPWFWHEVFVLEACLEITVJENUEUPWDVFB
      WEVLABCLWCJKUTWEVQWBVTRZULBVLUNVOWBVPVTDSESUQVQBVJWIVLVRVJENUHURUSURVAVAU
      SVBVCVD $.

    $( Version of ~ rexxp with bound-variable hypotheses.  (Contributed by NM,
       19-Dec-2008.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    rexxpf $p |- ( E. x e. ( A X. B ) ph <-> E. y e. A E. z e. B ps ) $=
      ( wn cxp wral wrex nfn cv cop wceq dfrex2 notbid ralxpf ralnex 3bitr4i
      ralbii bitri notbii ) ALZCFGMZNZLBEGOZLZDFNZLACUIOUKDFOUJUMUJBLZEGNZDFNUM
      UHUNCDEFGADHPAEIPBCJPCQDQEQRSABKUAUBUOULDFBEGUCUEUFUGACUITUKDFTUD $.
  $}

  ${
    $d w x y A $.  $d w x y z B $.  $d w C $.  $d w D $.
    iunxpf.1 $e |- F/_ y C $.
    iunxpf.2 $e |- F/_ z C $.
    iunxpf.3 $e |- F/_ x D $.
    iunxpf.4 $e |- ( x = <. y , z >. -> C = D ) $.
    $( Indexed union on a Cartesian product equals a double indexed union.  The
       hypothesis specifies an implicit substitution.  (Contributed by NM,
       19-Dec-2008.) $)
    iunxpf $p |- U_ x e. ( A X. B ) C = U_ y e. A U_ z e. B D $=
      ( vw cxp ciun cv wcel wrex nfcri cop eliun wceq eleq2d rexxpf bitri eqriv
      rexbii 3bitr4i ) LADEMZFNZBDCEGNZNZLOZFPZAUHQULGPZCEQZBDQZULUIPULUKPZUMUN
      ABCDEBLFHRCLFIRALGJRAOBOCOSUAFGULKUBUCAULUHFTUQULUJPZBDQUPBULDUJTURUOBDCU
      LEGTUFUDUGUE $.
  $}

  ${
    $d x y A $.  $d x y ph $.
    opabbi2dv.1 $e |- Rel A $.
    opabbi2dv.3 $e |- ( ph -> ( <. x , y >. e. A <-> ps ) ) $.
    $( Deduce equality of a relation and an ordered-pair class builder.
       Compare ~ abbi2dv .  (Contributed by NM, 24-Feb-2014.) $)
    opabbi2dv $p |- ( ph -> A = { <. x , y >. | ps } ) $=
      ( cv cop wcel copab wrel wceq opabid2 ax-mp opabbidv syl5eqr ) AECHDHIEJZ
      CDKZBCDKELSEMFCDENOARBCDGPQ $.
  $}

  ${
    $d v w x y z A $.  $d v w x y z B $.
    relop.1 $e |- A e. _V $.
    relop.2 $e |- B e. _V $.
    $( A necessary and sufficient condition for a Kuratowski ordered pair to be
       a relation.  (Contributed by NM, 3-Jun-2008.)  (Avoid depending on this
       detail.) $)
    relop $p |- ( Rel <. A , B >.
             <-> E. x E. y ( A = { x } /\ B = { x , y } ) ) $=
      ( vz vw vv cop cv wceq cpr wa wex wi wal bitri weq eqeq2d cvv cxp wss csn
      wrel df-rel wcel dfss2 elop elvv imbi12i jaob albii 19.26 eqeq1 eqcom vex
      snex opeqsn syl6bb 2exbidv imbi12d spcv sneq cbvexv ax6evr 19.41v mpbiran
      wo exbii eqid a1bi 3bitr2ri sylib mpi opeqpr idd eqtr2 preqsn simplbi syl
      prex dfsn2 preq2 syl5req syl5eq anbi12d biimpd expd com12 adantr mpd impd
      expcom jaod syl5bi 2eximdv exlimiv syl2an sylbi simpr equid sylibr eqtr4d
      imp jctl opeq12 spc2ev adantlr preq12 biimpa dfop syl6eqr jaodan ex ssrdv
      3imtr4g exlimivv impbii ) CDJZUEXTUAUAUBZUCZCAKZUDZLZDYCBKZMZLZNZBOAOZXTU
      FYBYJYBGKZCUDZLZYKYCYFJZLZBOAOZPZGQZYKCDMZLZYPPZGQZNZYJYBYKXTUGZYKYAUGZPZ
      GQZUUCGXTYAUHUUGYQUUANZGQUUCUUFUUHGUUFYMYTVIZYPPUUHUUDUUIUUEYPYKCDEFUIZAB
      YKUJUKYMYPYTULRUMYQUUAGUNRRYRCHKZUDZLZHOZYSYNLZBOAOZYJUUBYRYLYLLZABSZYENZ
      BOZAOZPZUUNYQUVBGYLCURYMYMUUQYPUVAYKYLYLUOYMYOUUSABYMYOYLYNLZUUSYKYLYNUOU
      VCYNYLLUUSYLYNUPYCYFCAUQZBUQZEUSRUTVAVBVCUUNYEAOUVAUVBUUMYEHAHASZUULYDCUU
      KYCVDTVEUUTYEAUUTUURBOYEBAVFUURYEBVGVHVJUUQUVAYLVKVLVMVNUUBYSYSLZUUPYSVKU
      UAUVGUUPPGYSCDWBYTYTUVGYPUUPYKYSYSUOYTYOUUOABYKYSYNUOVAVBVCVOUUNUUPYJUUMU
      UPYJPHUUMUUOYIABUUOYICYGLZDYDLZNZVIZUUMYIUUOYNYSLUVKYSYNUPYCYFCDUVDUVEEFV
      PRUUMYIYIUVJUUMYIVQUUMUVHUVIYIUVHUUMUVIYIPZUVHUUMNZUURUVLUVMYGUULLZUURCYG
      UULVRUVNUURBHSYCYFUUKUVDUVEHUQVSVTWAUVHUURUVLPUUMUURUVHUVLUURUVHUVIYIUURU
      VJYIUURUVHYEUVIYHUURYGYDCUURYDYCYCMZYGYCWCZYCYFYCWDZWETUURYDYGDUURYDUVOYG
      UVPUVQWFTWGWHWIWJWKWLWNWMWOWPWQWRXEWSWTYIYBABYIGXTYAYIUUIYKUUKIKZJZLZIOHO
      ZUUDUUEYIUUIUWAYIYMUWAYTYEYMUWAYHYEYMNZYKYCYCJZLZUWAUWBYKYLUWCYEYMXAYEUWC
      YLLZYMYEAASZYENUWEYEUWFAXBXFYCYCCUVDUVDEUSXCWKXDUVTUWDHIYCYCUVDUVDUVFIASN
      UVSUWCYKUUKUVRYCYCXGTXHWAXIYIYTNZYOUWAUWGYKYDYGMZYNYIYTYKUWHLYIYSUWHYKCDY
      DYGXJTXKYCYFUVDUVEXLXMUVTYOHIYCYFUVDUVEUVFIBSNUVSYNYKUUKUVRYCYFXGTXHWAXNX
      OUUJHIYKUJXQXPXRXSR $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( For sets, the identity relation is the same as equality.  (Contributed
       by NM, 30-Apr-2004.)  (Proof shortened by Andrew Salmon,
       27-Aug-2011.) $)
    ideqg $p |- ( B e. V -> ( A _I B <-> A = B ) ) $=
      ( vx vy wcel cid wbr wceq cvv wa id reli brrelexi anim12ci eleq1 biimparc
      elexd simpl cv jca eqeq1 eqeq2 df-id brabg pm5.21nd ) BCFZABGHZABIZAJFZUG
      KUGUGUHUJUGLABGMNOUGUIKZUJUGUKACUIACFUGABCPQRUGUISUADTZETZIAUMIUIDEABJCGU
      LAUMUBUMBAUCDEUDUEUF $.
  $}

  ${
    ideq.1 $e |- B e. _V $.
    $( For sets, the identity relation is the same as equality.  (Contributed
       by NM, 13-Aug-1995.) $)
    ideq $p |- ( A _I B <-> A = B ) $=
      ( cvv wcel cid wbr wceq wb ideqg ax-mp ) BDEABFGABHICABDJK $.
  $}

  $( A set is identical to itself.  (Contributed by NM, 28-May-2008.)  (Proof
     shortened by Andrew Salmon, 27-Aug-2011.) $)
  ididg $p |- ( A e. V -> A _I A ) $=
    ( wcel cid wbr wceq eqid ideqg mpbiri ) ABCAADEAAFAGAABHI $.

  $( Two ways of expressing set existence.  (Contributed by NM, 16-Feb-2008.)
     (Proof shortened by Andrew Salmon, 27-Aug-2011.)  (Revised by Mario
     Carneiro, 26-Apr-2015.) $)
  issetid $p |- ( A e. _V <-> A _I A ) $=
    ( cvv wcel cid wbr ididg reli brrelexi impbii ) ABCAADEABFAADGHI $.

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( Subclass theorem for composition.  (Contributed by FL, 30-Dec-2010.) $)
    coss1 $p |- ( A C_ B -> ( A o. C ) C_ ( B o. C ) ) $=
      ( vx vy vz wss cv wbr wex copab ccom ssbr anim2d eximdv ssopab2dv 3sstr4g
      wa df-co ) ABGZDHEHZCIZUAFHZAIZRZEJZDFKUBUAUCBIZRZEJZDFKACLBCLTUFUIDFTUEU
      HETUDUGUBABUAUCMNOPDFEACSDFEBCSQ $.

    $( Subclass theorem for composition.  (Contributed by NM, 5-Apr-2013.) $)
    coss2 $p |- ( A C_ B -> ( C o. A ) C_ ( C o. B ) ) $=
      ( vx vy vz wss cv wbr wex copab ccom ssbr anim1d eximdv ssopab2dv 3sstr4g
      wa df-co ) ABGZDHZEHZAIZUBFHCIZRZEJZDFKUAUBBIZUDRZEJZDFKCALCBLTUFUIDFTUEU
      HETUCUGUDABUAUBMNOPDFECASDFECBSQ $.
  $}

  $( Equality theorem for composition of two classes.  (Contributed by NM,
     3-Jan-1997.) $)
  coeq1 $p |- ( A = B -> ( A o. C ) = ( B o. C ) ) $=
    ( wss wa ccom wceq coss1 anim12i eqss 3imtr4i ) ABDZBADZEACFZBCFZDZONDZEABG
    NOGLPMQABCHBACHIABJNOJK $.

  $( Equality theorem for composition of two classes.  (Contributed by NM,
     3-Jan-1997.) $)
  coeq2 $p |- ( A = B -> ( C o. A ) = ( C o. B ) ) $=
    ( wss wa ccom wceq coss2 anim12i eqss 3imtr4i ) ABDZBADZECAFZCBFZDZONDZEABG
    NOGLPMQABCHBACHIABJNOJK $.

  ${
    coeq1i.1 $e |- A = B $.
    $( Equality inference for composition of two classes.  (Contributed by NM,
       16-Nov-2000.) $)
    coeq1i $p |- ( A o. C ) = ( B o. C ) $=
      ( wceq ccom coeq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality inference for composition of two classes.  (Contributed by NM,
       16-Nov-2000.) $)
    coeq2i $p |- ( C o. A ) = ( C o. B ) $=
      ( wceq ccom coeq2 ax-mp ) ABECAFCBFEDABCGH $.
  $}

  ${
    coeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for composition of two classes.  (Contributed by NM,
       16-Nov-2000.) $)
    coeq1d $p |- ( ph -> ( A o. C ) = ( B o. C ) ) $=
      ( wceq ccom coeq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality deduction for composition of two classes.  (Contributed by NM,
       16-Nov-2000.) $)
    coeq2d $p |- ( ph -> ( C o. A ) = ( C o. B ) ) $=
      ( wceq ccom coeq2 syl ) ABCFDBGDCGFEBCDHI $.
  $}

  ${
    coeq12i.1 $e |- A = B $.
    coeq12i.2 $e |- C = D $.
    $( Equality inference for composition of two classes.  (Contributed by FL,
       7-Jun-2012.) $)
    coeq12i $p |- ( A o. C ) = ( B o. D ) $=
      ( ccom coeq1i coeq2i eqtri ) ACGBCGBDGABCEHCDBFIJ $.
  $}

  ${
    coeq12d.1 $e |- ( ph -> A = B ) $.
    coeq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for composition of two classes.  (Contributed by FL,
       7-Jun-2012.) $)
    coeq12d $p |- ( ph -> ( A o. C ) = ( B o. D ) ) $=
      ( ccom coeq1d coeq2d eqtrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  ${
    $d w x y z $.  $d y z w A $.  $d y z w B $.
    nfco.1 $e |- F/_ x A $.
    nfco.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for function value.  (Contributed by
       NM, 1-Sep-1999.) $)
    nfco $p |- F/_ x ( A o. B ) $=
      ( vy vw vz ccom cv wbr wa wex copab df-co nfcv nfbr nfan nfex nfopab
      nfcxfr ) ABCIFJZGJZCKZUCHJZBKZLZGMZFHNFHGBCOUHFHAUGAGUDUFAAUBUCCAUBPEAUCP
      ZQAUCUEBUIDAUEPQRSTUA $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.
    $( Ordered pair membership in a composition.  (Contributed by NM,
       24-Feb-2015.) $)
    brcog $p |- ( ( A e. V /\ B e. W ) -> ( A ( C o. D ) B <->
                   E. x ( A D x /\ x C B ) ) ) $=
      ( vy vz cv wbr wa wex ccom wceq breq1 breq2 bi2anan9 exbidv df-co brabga
      ) HJZAJZEKZUCIJZDKZLZAMBUCEKZUCCDKZLZAMHIBCDENFGUBBOZUECOZLUGUJAUKUDUHULU
      FUIUBBUCEPUECUCDQRSHIADETUA $.

    $( Ordered pair membership in a composition.  (Contributed by NM,
       27-Jan-1997.)  (Revised by Mario Carneiro, 24-Feb-2015.) $)
    opelco2g $p |- ( ( A e. V /\ B e. W ) -> ( <. A , B >. e. ( C o. D ) <->
                   E. x ( <. A , x >. e. D /\ <. x , B >. e. C ) ) ) $=
      ( wcel wa ccom wbr cv wex cop brcog df-br anbi12i exbii 3bitr3g ) BFHCGHI
      BCDEJZKBALZEKZUACDKZIZAMBCNTHBUANEHZUACNDHZIZAMABCDEFGOBCTPUDUGAUBUEUCUFB
      UAEPUACDPQRS $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.  $d x X $.
    $( Ordered pair membership in a composition.  (Contributed by Thierry
       Arnoux, 14-Jan-2018.) $)
    brcogw $p |- ( ( ( A e. V /\ B e. W /\ X e. Z ) /\ ( A D X /\ X C B ) )
      -> A ( C o. D ) B ) $=
      ( vx wcel w3a wa wbr cv wex ccom 3simpa wceq breq2 breq1 spcegv 3ad2antl3
      anbi12d imp brcog biimpar syl2an2r ) AEJZBFJZGHJZKUHUILZAGDMZGBCMZLZAINZD
      MZUOBCMZLZIOZABCDPMZUHUIUJQUJUHUNUSUIUJUNUSURUNIGHUOGRUPULUQUMUOGADSUOGBC
      TUCUAUDUBUKUTUSIABCDEFUEUFUG $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d ph x $.  $d ph y $.
    eqbrrdva.1 $e |- ( ph -> A C_ ( C X. D ) ) $.
    eqbrrdva.2 $e |- ( ph -> B C_ ( C X. D ) ) $.
    eqbrrdva.3 $e |- ( ( ph /\ x e. C /\ y e. D ) -> ( x A y <-> x B y ) ) $.
    $( Deduction from extensionality principle for relations, given an
       equivalence only on the relation's domain and range.  (Contributed by
       Thierry Arnoux, 28-Nov-2017.) $)
    eqbrrdva $p |- ( ph -> A = B ) $=
      ( cvv cxp wss wrel syl6ss df-rel sylibr cv wcel wbr xpss wa ssbrd brxp wb
      syl6ib 3expib pm5.21ndd eqbrrdv ) ABCDEADKKLZMDNADFGLZUJHFGUAZODPQAEUJMEN
      AEUKUJIULOEPQABRZFSZCRZGSZUBZUMUODTZUMUOETZAURUMUOUKTZUQADUKUMUOHUCUMUOFG
      UDZUFAUSUTUQAEUKUMUOIUCVAUFAUNUPURUSUEJUGUHUI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.
    opelco.1 $e |- A e. _V $.
    opelco.2 $e |- B e. _V $.
    $( Binary relation on a composition.  (Contributed by NM, 21-Sep-2004.)
       (Revised by Mario Carneiro, 24-Feb-2015.) $)
    brco $p |- ( A ( C o. D ) B <-> E. x ( A D x /\ x C B ) ) $=
      ( cvv wcel ccom wbr cv wa wex wb brcog mp2an ) BHICHIBCDEJKBALZEKRCDKMANO
      FGABCDEHHPQ $.

    $( Ordered pair membership in a composition.  (Contributed by NM,
       27-Dec-1996.)  (Revised by Mario Carneiro, 24-Feb-2015.) $)
    opelco $p |- ( <. A , B >. e. ( C o. D ) <-> E. x ( A D x /\ x C B ) ) $=
      ( cop ccom wcel wbr cv wa wex df-br brco bitr3i ) BCHDEIZJBCRKBALZEKSCDKM
      ANBCROABCDEFGPQ $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Subset theorem for converse.  (Contributed by NM, 22-Mar-1998.)  (Proof
       shortened by Kyle Wyonch, 27-Apr-2021.) $)
    cnvss $p |- ( A C_ B -> `' A C_ `' B ) $=
      ( vy vx wss cv wbr copab ccnv ssbr ssopab2dv df-cnv 3sstr4g ) ABEZCFZDFZA
      GZDCHOPBGZDCHAIBINQRDCABOPJKDCALDCBLM $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Obsolete proof of ~ cnvss as of 27-Apr-2021.  Subset theorem for
       converse.  (Contributed by NM, 22-Mar-1998.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    cnvssOLD $p |- ( A C_ B -> `' A C_ `' B ) $=
      ( vy vx wss wbr copab ccnv cop wcel ssel 3imtr4g ssopab2dv df-cnv 3sstr4g
      cv df-br ) ABEZCPZDPZAFZDCGSTBFZDCGAHBHRUAUBDCRSTIZAJUCBJUAUBABUCKSTAQSTB
      QLMDCANDCBNO $.
  $}

  $( Equality theorem for converse.  (Contributed by NM, 13-Aug-1995.) $)
  cnveq $p |- ( A = B -> `' A = `' B ) $=
    ( wss wa ccnv wceq cnvss anim12i eqss 3imtr4i ) ABCZBACZDAEZBEZCZNMCZDABFMN
    FKOLPABGBAGHABIMNIJ $.

  ${
    cnveqi.1 $e |- A = B $.
    $( Equality inference for converse.  (Contributed by NM, 23-Dec-2008.) $)
    cnveqi $p |- `' A = `' B $=
      ( wceq ccnv cnveq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    cnveqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for converse.  (Contributed by NM, 6-Dec-2013.) $)
    cnveqd $p |- ( ph -> `' A = `' B ) $=
      ( wceq ccnv cnveq syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d x y A $.  $d x y R $.
    $( Membership in a converse.  Equation 5 of [Suppes] p. 62.  (Contributed
       by NM, 24-Mar-1998.) $)
    elcnv $p |- ( A e. `' R <-> E. x E. y ( A = <. x , y >. /\ y R x ) ) $=
      ( ccnv wcel cv wbr copab cop wceq wa wex df-cnv eleq2i elopab bitri ) CDE
      ZFCBGZAGZDHZABIZFCTSJKUALBMAMRUBCABDNOUAABCPQ $.

    $( Membership in a converse.  Equation 5 of [Suppes] p. 62.  (Contributed
       by NM, 11-Aug-2004.) $)
    elcnv2 $p |- ( A e. `' R <->
                 E. x E. y ( A = <. x , y >. /\ <. y , x >. e. R ) ) $=
      ( ccnv wcel cv cop wceq wbr wa wex elcnv df-br anbi2i 2exbii bitri ) CDEF
      CAGZBGZHIZSRDJZKZBLALTSRHDFZKZBLALABCDMUBUDABUAUCTSRDNOPQ $.
  $}

  ${
    $d y z A $.  $d x y z $.
    nfcnv.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for converse.  (Contributed by NM,
       31-Jan-2004.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfcnv $p |- F/_ x `' A $=
      ( vz vy ccnv cv wbr copab df-cnv nfcv nfbr nfopab nfcxfr ) ABFDGZEGZBHZED
      IEDBJQEDAAOPBAOKCAPKLMN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.
    $( Ordered-pair membership in converse.  (Contributed by NM, 13-May-1999.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    opelcnvg $p |- ( ( A e. C /\ B e. D ) ->
                     ( <. A , B >. e. `' R <-> <. B , A >. e. R ) ) $=
      ( vy vx wcel wa ccnv wbr cop cv breq2 breq1 df-cnv brabg df-br 3bitr3g )
      ACHBDHIABEJZKBAEKZABLTHBALEHFMZGMZEKUBAEKUAGFABCDTUCAUBENUBBAEOGFEPQABTRB
      AERS $.
  $}

  $( The converse of a binary relation swaps arguments.  Theorem 11 of [Suppes]
     p. 61.  (Contributed by NM, 10-Oct-2005.) $)
  brcnvg $p |- ( ( A e. C /\ B e. D ) -> ( A `' R B <-> B R A ) ) $=
    ( wcel wa cop ccnv wbr opelcnvg df-br 3bitr4g ) ACFBDFGABHEIZFBAHEFABNJBAEJ
    ABCDEKABNLBAELM $.

  ${
    opelcnv.1 $e |- A e. _V $.
    opelcnv.2 $e |- B e. _V $.
    $( Ordered-pair membership in converse.  (Contributed by NM,
       13-Aug-1995.) $)
    opelcnv $p |- ( <. A , B >. e. `' R <-> <. B , A >. e. R ) $=
      ( cvv wcel cop ccnv wb opelcnvg mp2an ) AFGBFGABHCIGBAHCGJDEABFFCKL $.

    $( The converse of a binary relation swaps arguments.  Theorem 11 of
       [Suppes] p. 61.  (Contributed by NM, 13-Aug-1995.) $)
    brcnv $p |- ( A `' R B <-> B R A ) $=
      ( cvv wcel ccnv wbr wb brcnvg mp2an ) AFGBFGABCHIBACIJDEABFFCKL $.
  $}

  ${
    $d y z A $.  $d y z F $.  $d y z V $.  $d x y z $.
    $( Move class substitution in and out of the converse of a function.
       Version of ~ csbcnvgALT without a sethood antecedent but depending on
       more axioms.  (Contributed by Thierry Arnoux, 8-Feb-2017.)  (Revised by
       NM, 23-Aug-2018.) $)
    csbcnv $p |- `' [_ A / x ]_ F = [_ A / x ]_ `' F $=
      ( vz vy csb ccnv cv wbr copab wsbc sbcbr opabbii csbopab 3eqtr4ri csbeq2i
      df-cnv eqtr4i ) ABCFZGZABDHZEHZCIZEDJZFZABCGZFUCABKZEDJUAUBSIZEDJUETUGUHE
      DABUAUBCLMUCAEDBNEDSQOABUFUDEDCQPR $.

    $( Move class substitution in and out of the converse of a function.
       Version of ~ csbcnv with a sethood antecedent but depending on fewer
       axioms.  (Contributed by Thierry Arnoux, 8-Feb-2017.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    csbcnvgALT $p |- ( A e. V -> `' [_ A / x ]_ F = [_ A / x ]_ `' F ) $=
      ( vz vy wcel csb ccnv cv wbr copab wsbc sbcbr123 csbconstg breq12d syl5bb
      opabbidv csbopabgALT df-cnv wceq a1i 3eqtr4rd csbeq2i syl6eqr ) BDGZABCHZ
      IZABEJZFJZCKZFELZHZABCIZHUFUKABMZFELUIUJUGKZFELZUMUHUFUOUPFEUOABUIHZABUJH
      ZUGKUFUPABUIUJCNUFURUIUSUJUGABUIDOABUJDOPQRUKAFEBDSUHUQUAUFFEUGTUBUCABUNU
      LFECTUDUE $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( Distributive law of converse over class composition.  Theorem 26 of
       [Suppes] p. 64.  (Contributed by NM, 19-Mar-1998.)  (Proof shortened by
       Andrew Salmon, 27-Aug-2011.) $)
    cnvco $p |- `' ( A o. B ) = ( `' B o. `' A ) $=
      ( vx vy vz cv ccom wbr copab ccnv wa wex exancom brco brcnv anbi12i exbii
      vex 3bitr4i opabbii df-cnv df-co 3eqtr4i ) CFZDFZABGZHZDCIUEEFZAJZHZUHUDB
      JZHZKZELZDCIUFJUKUIGUGUNDCUDUHBHZUHUEAHZKELUPUOKZELUGUNUOUPEMEUDUEABCRZDR
      ZNUMUQEUJUPULUOUEUHAUSERZOUHUDBUTUROPQSTDCUFUADCEUKUIUBUC $.
  $}

  ${
    $d x y z w A $.
    $( The converse of a class union is the (indexed) union of the converses of
       its members.  (Contributed by NM, 11-Aug-2004.) $)
    cnvuni $p |- `' U. A = U_ x e. A `' x $=
      ( vy vz vw cuni ccnv cv ciun wcel wrex cop wa elcnv2 eluni2 anbi2i bitr4i
      wceq wex rexcom4 r19.42v 2exbii rexbii exbii 3bitrri 3bitri eliun eqriv )
      CBFZGZABAHZGZIZCHZUJJZUNULJZABKZUNUMJUOUNDHZEHZLRZUSURLZUIJZMZESDSUTVAUKJ
      ZMZABKZESZDSZUQDEUNUINVCVFDEVCUTVDABKZMVFVBVIUTAVABOPUTVDABUAQUBUQVEESZDS
      ZABKVJABKZDSVHUPVKABDEUNUKNUCVJADBTVLVGDVEAEBTUDUEUFAUNBULUGQUH $.
  $}

  ${
    $d x y A $.
    $( Alternate definition of domain.  Definition 6.5(1) of [TakeutiZaring]
       p. 24.  (Contributed by NM, 28-Dec-1996.) $)
    dfdm3 $p |- dom A = { x | E. y <. x , y >. e. A } $=
      ( cdm cv wbr wex cab cop wcel df-dm df-br exbii abbii eqtri ) CDAEZBEZCFZ
      BGZAHPQICJZBGZAHABCKSUAARTBPQCLMNO $.

    $( Alternate definition of range.  Definition 4 of [Suppes] p. 60.
       (Contributed by NM, 27-Dec-1996.) $)
    dfrn2 $p |- ran A = { y | E. x x A y } $=
      ( crn ccnv cdm cv wbr wex cab df-rn df-dm vex brcnv exbii abbii 3eqtri )
      CDCEZFBGZAGZRHZAIZBJTSCHZAIZBJCKBARLUBUDBUAUCASTCBMAMNOPQ $.

    $( Alternate definition of range.  Definition 6.5(2) of [TakeutiZaring]
       p. 24.  (Contributed by NM, 28-Dec-1996.) $)
    dfrn3 $p |- ran A = { y | E. x <. x , y >. e. A } $=
      ( crn cv wbr wex cab cop wcel dfrn2 df-br exbii abbii eqtri ) CDAEZBEZCFZ
      AGZBHPQICJZAGZBHABCKSUABRTAPQCLMNO $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( Membership in a range.  (Contributed by Scott Fenton, 2-Feb-2011.) $)
    elrn2g $p |- ( A e. V -> ( A e. ran B <-> E. x <. x , A >. e. B ) ) $=
      ( vy cv cop wcel wex crn wceq opeq2 eleq1d exbidv dfrn3 elab2g ) AFZEFZGZ
      CHZAIQBGZCHZAIEBCJDRBKZTUBAUCSUACRBQLMNAECOP $.

    $( Membership in a range.  (Contributed by Scott Fenton, 2-Feb-2011.) $)
    elrng $p |- ( A e. V -> ( A e. ran B <-> E. x x B A ) ) $=
      ( wcel crn cv cop wex wbr elrn2g df-br exbii syl6bbr ) BDEBCFEAGZBHCEZAIO
      BCJZAIABCDKQPAOBCLMN $.
  $}

  ${
    $d A a $.  $d B a $.  $d R a $.  $d Y a $.
    $( If a relation is a subset of a cartesian product, then for each element
       of the range of the relation there is an element of the first set of the
       cartesian product which is related to the element of the range by the
       relation.  (Contributed by AV, 24-Oct-2020.) $)
    ssrelrn $p |- ( ( R C_ ( A X. B ) /\ Y e. ran R ) -> E. a e. A a R Y ) $=
      ( cxp wss crn wcel wa cv wbr wex wrex wi elrng ssbr brxp simplbi syl6 ex
      ancrd adantl eximdv com23 sylbid pm2.43i impcom df-rex sylibr ) CABFZGZDC
      HZIZJEKZAIZUODCLZJZEMZUQEANUNULUSUNULUSOZUNUNUQEMZUTEDCUMPUNULVAUSUNULVAU
      SOUNULJUQUREULUQUROUNULUQUPULUQUODUKLZUPCUKUODQVBUPDBIUODABRSTUBUCUDUAUEU
      FUGUHUQEAUIUJ $.
  $}

  ${
    $d x y A $.
    $( Alternate definition of domain.  (Contributed by NM, 28-Dec-1996.) $)
    dfdm4 $p |- dom A = ran `' A $=
      ( vy vx cv wbr wex cab crn cdm vex brcnv exbii abbii dfrn2 df-dm 3eqtr4ri
      ccnv ) BDZCDZAQZEZBFZCGSRAEZBFZCGTHAIUBUDCUAUCBRSABJCJKLMBCTNCBAOP $.
  $}

  ${
    $d x y w v $.  $d w v A $.
    dfdmf.1 $e |- F/_ x A $.
    dfdmf.2 $e |- F/_ y A $.
    $( Definition of domain, using bound-variable hypotheses instead of
       distinct variable conditions.  (Contributed by NM, 8-Mar-1995.)
       (Revised by Mario Carneiro, 15-Oct-2016.) $)
    dfdmf $p |- dom A = { x | E. y x A y } $=
      ( vw vv cdm cv wbr wex cab df-dm nfcv nfbr nfv breq2 cbvex abbii nfex weq
      breq1 exbidv cbvab 3eqtri ) CHFIZGIZCJZGKZFLUFBIZCJZBKZFLAIZUJCJZBKZALFGC
      MUIULFUHUKGBBUFUGCBUFNEBUGNOUKGPUGUJUFCQRSULUOFAUKABAUFUJCAUFNDAUJNOTUOFP
      FAUAUKUNBUFUMUJCUBUCUDUE $.
  $}

  ${
    $d A w y $.  $d B w y $.  $d x w y $.
    $( Distribute proper substitution through the domain of a class.
       (Contributed by Alexander van der Vekens, 23-Jul-2017.)  (Revised by NM,
       24-Aug-2018.) $)
    csbdm $p |- [_ A / x ]_ dom B = dom [_ A / x ]_ B $=
      ( vy vw cv cop wcel wex cab csb cdm csbab sbcex2 sbcel2 exbii bitri abbii
      wsbc dfdm3 eqtri csbeq2i 3eqtr4i ) ABDFEFGZCHZEIZDJZKZUDABCKZHZEIZDJZABCL
      ZKUILUHUFABSZDJULUFADBMUNUKDUNUEABSZEIUKUEEABNUOUJEABUDCOPQRUAABUMUGDECTU
      BDEUITUC $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Domain membership.  Theorem 4 of [Suppes] p. 59.  (Contributed by Mario
       Carneiro, 9-Jul-2014.) $)
    eldmg $p |- ( A e. V -> ( A e. dom B <-> E. y A B y ) ) $=
      ( vx cv wbr wex cdm wceq breq1 exbidv df-dm elab2g ) EFZAFZCGZAHBPCGZAHEB
      CIDOBJQRAOBPCKLEACMN $.

    $( Domain membership.  Theorem 4 of [Suppes] p. 59.  (Contributed by NM,
       27-Jan-1997.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    eldm2g $p |- ( A e. V -> ( A e. dom B <-> E. y <. A , y >. e. B ) ) $=
      ( wcel cdm cv wbr wex cop eldmg df-br exbii syl6bb ) BDEBCFEBAGZCHZAIBOJC
      EZAIABCDKPQABOCLMN $.
  $}

  ${
    $d y A $.  $d y B $.
    eldm.1 $e |- A e. _V $.
    $( Membership in a domain.  Theorem 4 of [Suppes] p. 59.  (Contributed by
       NM, 2-Apr-2004.) $)
    eldm $p |- ( A e. dom B <-> E. y A B y ) $=
      ( cvv wcel cdm cv wbr wex wb eldmg ax-mp ) BEFBCGFBAHCIAJKDABCELM $.

    $( Membership in a domain.  Theorem 4 of [Suppes] p. 59.  (Contributed by
       NM, 1-Aug-1994.) $)
    eldm2 $p |- ( A e. dom B <-> E. y <. A , y >. e. B ) $=
      ( cvv wcel cdm cv cop wex wb eldm2g ax-mp ) BEFBCGFBAHICFAJKDABCELM $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Subset theorem for domain.  (Contributed by NM, 11-Aug-1994.) $)
    dmss $p |- ( A C_ B -> dom A C_ dom B ) $=
      ( vx vy wss cdm cv cop wcel wex ssel eximdv vex eldm2 3imtr4g ssrdv ) ABE
      ZCAFZBFZQCGZDGHZAIZDJUABIZDJTRITSIQUBUCDABUAKLDTACMZNDTBUDNOP $.
  $}

  $( Equality theorem for domain.  (Contributed by NM, 11-Aug-1994.) $)
  dmeq $p |- ( A = B -> dom A = dom B ) $=
    ( wss wa cdm wceq dmss anim12i eqss 3imtr4i ) ABCZBACZDAEZBEZCZNMCZDABFMNFK
    OLPABGBAGHABIMNIJ $.

  ${
    dmeqi.1 $e |- A = B $.
    $( Equality inference for domain.  (Contributed by NM, 4-Mar-2004.) $)
    dmeqi $p |- dom A = dom B $=
      ( wceq cdm dmeq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    dmeqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for domain.  (Contributed by NM, 4-Mar-2004.) $)
    dmeqd $p |- ( ph -> dom A = dom B ) $=
      ( wceq cdm dmeq syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.
    opeldmd.1 $e |- ( ph -> A e. V ) $.
    opeldmd.2 $e |- ( ph -> B e. W ) $.
    $( Membership of first of an ordered pair in a domain.  Deduction version
       of ~ opeldm .  (Contributed by AV, 11-Mar-2021.) $)
    opeldmd $p |- ( ph -> ( <. A , B >. e. C -> A e. dom C ) ) $=
      ( vy cop wcel cv wex cdm wi wceq opeq2 eleq1d spcegv syl eldm2g sylibrd
      wb ) ABCJZDKZBILZJZDKZIMZBDNKZACFKUEUIOHUHUEICFUFCPUGUDDUFCBQRSTABEKUJUIU
      CGIBDEUATUB $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.
    opeldm.1 $e |- A e. _V $.
    opeldm.2 $e |- B e. _V $.
    $( Membership of first of an ordered pair in a domain.  (Contributed by NM,
       30-Jul-1995.) $)
    opeldm $p |- ( <. A , B >. e. C -> A e. dom C ) $=
      ( vy cop wcel cv wex cdm wceq opeq2 eleq1d spcev eldm2 sylibr ) ABGZCHZAF
      IZGZCHZFJACKHUBSFBETBLUARCTBAMNOFACDPQ $.

    $( Membership of first of a binary relation in a domain.  (Contributed by
       NM, 30-Jul-1995.) $)
    breldm $p |- ( A R B -> A e. dom R ) $=
      ( wbr cop wcel cdm df-br opeldm sylbi ) ABCFABGCHACIHABCJABCDEKL $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x R $.
    $( Membership of first of a binary relation in a domain.  (Contributed by
       NM, 21-Mar-2007.) $)
    breldmg $p |- ( ( A e. C /\ B e. D /\ A R B ) -> A e. dom R ) $=
      ( vx wcel wbr cdm wa cv wex breq2 spcegv imp eldmg syl5ibr 3impib ) ACGZB
      DGZABEHZAEIGZTUAJUBSAFKZEHZFLZTUAUEUDUAFBDUCBAEMNOFAECPQR $.

    $( The domain of a union is the union of domains.  Exercise 56(a) of
       [Enderton] p. 65.  (Contributed by NM, 12-Aug-1994.)  (Proof shortened
       by Andrew Salmon, 27-Aug-2011.) $)
    dmun $p |- dom ( A u. B ) = ( dom A u. dom B ) $=
      ( vy vx cv wbr wex cab cun cdm wo unab brun exbii 19.43 abbii eqtri df-dm
      bitr2i uneq12i 3eqtr4ri ) CEZDEZAFZDGZCHZUBUCBFZDGZCHZIZUBUCABIZFZDGZCHZA
      JZBJZIUKJUJUEUHKZCHUNUEUHCLUQUMCUMUDUGKZDGUQULURDUBUCABMNUDUGDOSPQUOUFUPU
      ICDARCDBRTCDUKRUA $.

    $( The domain of an intersection belong to the intersection of domains.
       Theorem 6 of [Suppes] p. 60.  (Contributed by NM, 15-Sep-2004.) $)
    dmin $p |- dom ( A i^i B ) C_ ( dom A i^i dom B ) $=
      ( vx vy cin cdm cv cop wcel wa wex 19.40 eldm2 elin exbii anbi12i 3imtr4i
      vex bitri ssriv ) CABEZFZAFZBFZEZCGZDGHZAIZUGBIZJZDKZUHDKZUIDKZJZUFUBIZUF
      UEIZUHUIDLUOUGUAIZDKUKDUFUACRZMUQUJDUGABNOSUPUFUCIZUFUDIZJUNUFUCUDNUSULUT
      UMDUFAURMDUFBURMPSQT $.
  $}

  ${
    $d x y z $.  $d y z A $.  $d y z B $.
    $( The domain of an indexed union.  (Contributed by Mario Carneiro,
       26-Apr-2016.) $)
    dmiun $p |- dom U_ x e. A B = U_ x e. A dom B $=
      ( vy vz ciun cdm cv cop wcel wex wrex rexcom4 eldm2 rexbii eliun 3bitr4ri
      vex exbii 3bitr4i eqriv ) DABCFZGZABCGZFZDHZEHIZUBJZEKZUFUDJZABLZUFUCJUFU
      EJUGCJZEKZABLULABLZEKUKUIULAEBMUJUMABEUFCDRZNOUHUNEAUGBCPSQEUFUBUONAUFBUD
      PTUA $.

    $d x A $.
    $( The domain of a union.  Part of Exercise 8 of [Enderton] p. 41.
       (Contributed by NM, 3-Feb-2004.) $)
    dmuni $p |- dom U. A = U_ x e. A dom x $=
      ( vy vz cuni cdm cv ciun cop wcel wex wrex excom ancom 19.41v vex 3bitr4i
      wa eldm2 exbii anbi2i bitri eluni df-rex eliun eqriv ) CBEZFZABAGZFZHZCGZ
      DGIZUGJZDKZULUJJZABLZULUHJULUKJUMUIJZUIBJZRZAKZDKZUSUPRZAKZUOUQVBUTDKZAKV
      DUTDAMVEVCAURDKZUSRUSVFRVEVCVFUSNURUSDOUPVFUSDULUICPZSUAQTUBUNVADAUMBUCTU
      PABUDQDULUGVGSAULBUJUEQUF $.
  $}

  ${
    $d x y $.
    $( The domain of a class of ordered pairs.  (Contributed by NM,
       16-May-1995.)  (Revised by Mario Carneiro, 4-Dec-2016.) $)
    dmopab $p |- dom { <. x , y >. | ph } = { x | E. y ph } $=
      ( copab cdm wbr wex cab nfopab1 nfopab2 dfdmf cop wcel df-br opabid bitri
      cv exbii abbii eqtri ) ABCDZEBQZCQZUAFZCGZBHACGZBHBCUAABCIABCJKUEUFBUDACU
      DUBUCLUAMAUBUCUANABCOPRST $.
  $}

  ${
    $d x y A $.
    $( Upper bound for the domain of a restricted class of ordered pairs.
       (Contributed by NM, 31-Jan-2004.) $)
    dmopabss $p |- dom { <. x , y >. | ( x e. A /\ ph ) } C_ A $=
      ( cv wcel wa copab cdm wex cab dmopab 19.42v abbii ssab2 eqsstri ) BEDFZA
      GZBCHIRCJZBKZDRBCLTQACJZGZBKDSUBBQACMNUABDOPP $.
  $}

  ${
    $d x y A $.
    $( The domain of a restricted class of ordered pairs.  (Contributed by NM,
       31-Jan-2004.) $)
    dmopab3 $p |- ( A. x e. A E. y ph <->
               dom { <. x , y >. | ( x e. A /\ ph ) } = A ) $=
      ( wex wral cv wcel wi wal wa wb copab cdm wceq df-ral pm4.71 albii dmopab
      cab 19.42v abbii eqtri eqeq1i eqcom abeq2 3bitr2ri 3bitri ) ACEZBDFBGDHZU
      IIZBJUJUJUIKZLZBJZUJAKZBCMNZDOZUIBDPUKUMBUJUIQRUQULBTZDODUROUNUPURDUPUOCE
      ZBTURUOBCSUSULBUJACUAUBUCUDDURUEULBDUFUGUH $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z ph $.  $d z ps $.
    opabssxpd.x $e |- ( ( ph /\ ps ) -> x e. A ) $.
    opabssxpd.y $e |- ( ( ph /\ ps ) -> y e. B ) $.
    $( An ordered-pair class abstraction is a subset of an Cartesian product.
       Formerly part of proof for ~ opabex2 .  (Contributed by AV,
       26-Nov-2021.) $)
    opabssxpd $p |- ( ph -> { <. x , y >. | ps } C_ ( A X. B ) ) $=
      ( vz copab cv cop wceq wa wex cab cxp df-opab wcel simprl opelxpd adantrl
      eqeltrd ex exlimdvv abssdv syl5eqss ) ABCDJIKZCKZDKZLZMZBNZDOCOZIPEFQZBCD
      IRAUNIUOAUMUHUOSZCDAUMUPAUMNUHUKUOAULBTABUKUOSULABNUIUJEFGHUAUBUCUDUEUFUG
      $.
  $}

  ${
    $d x y $.
    $( The domain of the empty set is empty.  Part of Theorem 3.8(v) of [Monk1]
       p. 36.  (Contributed by NM, 4-Jul-1994.)  (Proof shortened by Andrew
       Salmon, 27-Aug-2011.) $)
    dm0 $p |- dom (/) = (/) $=
      ( vx vy c0 cdm cv wcel cop wex noel nex vex eldm2 mtbir nel0 ) ACDZAEZOFP
      BEGZCFZBHRBQIJBPCAKLMN $.

    $( The domain of the identity relation is the universe.  (Contributed by
       NM, 30-Apr-1998.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    dmi $p |- dom _I = _V $=
      ( vx vy cid cdm cvv wceq cv wcel eqv wbr wex ax6ev vex equcom bitri exbii
      ideq mpbir eldm mpgbir ) CDZEFAGZUAHZAAUAIUCUBBGZCJZBKZUFUDUBFZBKBALUEUGB
      UEUBUDFUGUBUDBMQABNOPRBUBCAMSRT $.

    $( The domain of the universe is the universe.  (Contributed by NM,
       8-Aug-2003.) $)
    dmv $p |- dom _V = _V $=
      ( cvv cdm ssv cid dmi wss dmss ax-mp eqsstr3i eqssi ) ABZAKCADBZKEDAFLKFD
      CDAGHIJ $.
  $}

  ${
    $d x y A $.
    $( An empty domain is equivalent to an empty range.  (Contributed by NM,
       21-May-1998.) $)
    dm0rn0 $p |- ( dom A = (/) <-> ran A = (/) ) $=
      ( vx vy cv wbr wex cab c0 wceq wcel wb wal alnex noel albii abeq1 3bitr4i
      wn nbn eqeq1i cdm crn excom xchbinx bitr4i 3bitr3i df-dm dfrn2 ) BDZCDZAE
      ZCFZBGZHIZUKBFZCGZHIZAUAZHIAUBZHIULUIHJZKZBLZUOUJHJZKZCLZUNUQULRZBLZUORZC
      LZVBVEVGUOCFZRVIVGULBFVJULBMUKBCUCUDUOCMUEVFVABUTULUINSOVHVDCVCUOUJNSOUFU
      LBHPUOCHPQURUMHBCAUGTUSUPHBCAUHTQ $.

    $( A relation is empty iff its domain is empty.  (Contributed by NM,
       15-Sep-2004.) $)
    reldm0 $p |- ( Rel A -> ( A = (/) <-> dom A = (/) ) ) $=
      ( vx vy wrel c0 wceq cv cop wcel wb wal cdm rel0 eqrel mpan2 wn eq0 alnex
      wex albii vex eldm2 xchbinxr noel nbn bitr3i bitr2i syl6bb ) ADZAEFZBGZCG
      HZAIZULEIZJZCKZBKZALZEFZUIEDUJUQJMBCAENOUSUKURIZPZBKUQBURQVAUPBVAUMPZCKZU
      PVCUMCSUTUMCRCUKABUAUBUCVBUOCUNUMULUDUETUFTUGUH $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The domain of a Cartesian product.  Part of Theorem 3.13(x) of [Monk1]
       p. 37.  (Contributed by NM, 28-Jul-1995.)  (Proof shortened by Andrew
       Salmon, 27-Aug-2011.) $)
    dmxp $p |- ( B =/= (/) -> dom ( A X. B ) = A ) $=
      ( vy vx c0 wne cxp cdm cv wcel wa copab df-xp dmeqi wex wral n0 ralrimivw
      wceq biimpi dmopab3 sylib syl5eq ) BEFZABGZHCIAJDIBJZKCDLZHZAUEUGCDABMNUD
      UFDOZCAPUHASUDUICAUDUIDBQTRUFCDAUAUBUC $.
  $}

  $( The domain of a square Cartesian product.  (Contributed by NM,
     28-Jul-1995.) $)
  dmxpid $p |- dom ( A X. A ) = A $=
    ( cxp cdm wceq c0 dm0 xpeq1 0xp syl6eq dmeqd id 3eqtr4a dmxp pm2.61ine ) AA
    BZCZADAEAEDZECEPAFQOEQOEABEAEAGAHIJQKLAAMN $.

  $( The domain of the intersection of two square Cartesian products.  Unlike
     ~ dmin , equality holds.  (Contributed by NM, 29-Jan-2008.) $)
  dmxpin $p |- dom ( ( A X. A ) i^i ( B X. B ) ) = ( A i^i B ) $=
    ( cxp cin cdm inxp dmeqi dmxpid eqtri ) AACBBCDZEABDZKCZEKJLAABBFGKHI $.

  $( The Cartesian product of a class with itself is one-to-one.  (Contributed
     by NM, 5-Nov-2006.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  xpid11 $p |- ( ( A X. A ) = ( B X. B ) <-> A = B ) $=
    ( cxp wceq cdm dmeq dmxpid 3eqtr3g xpeq12 anidms impbii ) AACZBBCZDZABDZNLE
    MEABLMFAGBGHONABABIJK $.

  $( The domain of the double converse of a class (which doesn't have to be a
     relation as in ~ dfrel2 ).  (Contributed by NM, 8-Apr-2007.) $)
  dmcnvcnv $p |- dom `' `' A = dom A $=
    ( cdm ccnv crn dfdm4 df-rn eqtr2i ) ABACZDHCBAEHFG $.

  $( The range of the double converse of a class.  (Contributed by NM,
     8-Apr-2007.) $)
  rncnvcnv $p |- ran `' `' A = ran A $=
    ( crn ccnv cdm df-rn dfdm4 eqtr2i ) ABACZDHCBAEHFG $.

  ${
    $d x y A $.  $d x y B $.
    $( The first member of an ordered pair in a relation belongs to the domain
       of the relation.  (Contributed by NM, 28-Jul-2004.) $)
    elreldm $p |- ( ( Rel A /\ B e. A ) -> |^| |^| B e. dom A ) $=
      ( vx vy wrel wcel cint cdm cv cop wceq wex cvv cxp wss wi df-rel ssel vex
      sylbi elvv syl6ib eleq1 opeldm syl6bi inteqd op1stb syl6eq eleq1d sylibrd
      inteq exlimivv syli imp ) AEZBAFZBGZGZAHZFZUPUOBCIZDIZJZKZDLCLZUTUOUPBMMN
      ZFZVEUOAVFOUPVGPAQAVFBRTCDBUAUBVDUPUTPCDVDUPVAUSFZUTVDUPVCAFVHBVCAUCVAVBA
      CSZDSZUDUEVDURVAUSVDURVCGZGVAVDUQVKBVCUKUFVAVBVIVJUGUHUIUJULUMUN $.
  $}

  $( Equality theorem for range.  (Contributed by NM, 29-Dec-1996.) $)
  rneq $p |- ( A = B -> ran A = ran B ) $=
    ( wceq ccnv cdm crn cnveq dmeqd df-rn 3eqtr4g ) ABCZADZEBDZEAFBFKLMABGHAIBI
    J $.

  ${
    rneqi.1 $e |- A = B $.
    $( Equality inference for range.  (Contributed by NM, 4-Mar-2004.) $)
    rneqi $p |- ran A = ran B $=
      ( wceq crn rneq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    rneqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for range.  (Contributed by NM, 4-Mar-2004.) $)
    rneqd $p |- ( ph -> ran A = ran B ) $=
      ( wceq crn rneq syl ) ABCEBFCFEDBCGH $.
  $}

  $( Subset theorem for range.  (Contributed by NM, 22-Mar-1998.) $)
  rnss $p |- ( A C_ B -> ran A C_ ran B ) $=
    ( wss ccnv cdm crn cnvss dmss syl df-rn 3sstr4g ) ABCZADZEZBDZEZAFBFLMOCNPC
    ABGMOHIAJBJK $.

  $( The second argument of a binary relation belongs to its range.
     (Contributed by NM, 29-Jun-2008.) $)
  brelrng $p |- ( ( A e. F /\ B e. G /\ A C B ) -> B e. ran C ) $=
    ( wcel wbr w3a ccnv cdm crn wb brcnvg ancoms biimp3ar 3com12 syld3an3 df-rn
    breldmg syl6eleqr ) ADFZBEFZABCGZHBCIZJZCKUAUBUCBAUDGZBUEFZUAUBUFUCUBUAUFUC
    LBAEDCMNOUBUAUFUGBAEDUDSPQCRT $.

  ${
    brelrn.1 $e |- A e. _V $.
    brelrn.2 $e |- B e. _V $.
    $( The second argument of a binary relation belongs to its range.
       (Contributed by NM, 13-Aug-2004.) $)
    brelrn $p |- ( A C B -> B e. ran C ) $=
      ( cvv wcel wbr crn brelrng mp3an12 ) AFGBFGABCHBCIGDEABCFFJK $.

    $( Membership of second member of an ordered pair in a range.  (Contributed
       by NM, 23-Feb-1997.) $)
    opelrn $p |- ( <. A , B >. e. C -> B e. ran C ) $=
      ( cop wcel wbr crn df-br brelrn sylbir ) ABFCGABCHBCIGABCJABCDEKL $.
  $}

  $( The first argument of a binary relation belongs to its domain.  Note that
     ` A R B ` does not imply ` Rel R ` : see for example ~ nrelv and ~ brv .
     (Contributed by NM, 2-Jul-2008.) $)
  releldm $p |- ( ( Rel R /\ A R B ) -> A e. dom R ) $=
    ( wrel wbr wa cvv wcel cdm brrelex brrelex2 simpr breldmg syl3anc ) CDZABCE
    ZFAGHBGHPACIHABCJABCKOPLABGGCMN $.

  $( The second argument of a binary relation belongs to its range.
     (Contributed by NM, 2-Jul-2008.) $)
  relelrn $p |- ( ( Rel R /\ A R B ) -> B e. ran R ) $=
    ( wrel wbr wa cvv wcel crn brrelex brrelex2 simpr brelrng syl3anc ) CDZABCE
    ZFAGHBGHPBCIHABCJABCKOPLABCGGMN $.

  ${
    $d x A $.  $d x R $.
    $( Membership in a domain.  (Contributed by Mario Carneiro, 5-Nov-2015.) $)
    releldmb $p |- ( Rel R -> ( A e. dom R <-> E. x A R x ) ) $=
      ( wrel cdm wcel cv wbr wex eldmg ibi releldm ex exlimdv impbid2 ) CDZBCEZ
      FZBAGZCHZAIZRUAABCQJKPTRAPTRBSCLMNO $.

    $( Membership in a range.  (Contributed by Mario Carneiro, 5-Nov-2015.) $)
    relelrnb $p |- ( Rel R -> ( A e. ran R <-> E. x x R A ) ) $=
      ( wrel crn wcel cv wbr wex elrng ibi relelrn ex exlimdv impbid2 ) CDZBCEZ
      FZAGZBCHZAIZRUAABCQJKPTRAPTRSBCLMNO $.
  $}

  ${
    releldm.1 $e |- Rel R $.
    $( The first argument of a binary relation belongs to its domain.
       (Contributed by NM, 28-Apr-2015.) $)
    releldmi $p |- ( A R B -> A e. dom R ) $=
      ( wrel wbr cdm wcel releldm mpan ) CEABCFACGHDABCIJ $.

    $( The second argument of a binary relation belongs to its range.
       (Contributed by NM, 28-Apr-2015.) $)
    relelrni $p |- ( A R B -> B e. ran R ) $=
      ( wrel wbr crn wcel relelrn mpan ) CEABCFBCGHDABCIJ $.
  $}

  ${
    $d x y w v $.  $d w v A $.
    dfrnf.1 $e |- F/_ x A $.
    dfrnf.2 $e |- F/_ y A $.
    $( Definition of range, using bound-variable hypotheses instead of distinct
       variable conditions.  (Contributed by NM, 14-Aug-1995.)  (Revised by
       Mario Carneiro, 15-Oct-2016.) $)
    dfrnf $p |- ran A = { y | E. x x A y } $=
      ( vv vw crn cv wbr wex cab dfrn2 nfcv nfbr nfv breq1 cbvex abbii nfex weq
      breq2 exbidv cbvab 3eqtri ) CHFIZGIZCJZFKZGLAIZUGCJZAKZGLUJBIZCJZAKZBLFGC
      MUIULGUHUKFAAUFUGCAUFNDAUGNOUKFPUFUJUGCQRSULUOGBUKBABUJUGCBUJNEBUGNOTUOGP
      GBUAUKUNAUGUMUJCUBUCUDUE $.
  $}

  ${
    $d x y A $.  $d x y B $.
    elrn.1 $e |- A e. _V $.
    $( Membership in a range.  (Contributed by NM, 10-Jul-1994.) $)
    elrn2 $p |- ( A e. ran B <-> E. x <. x , A >. e. B ) $=
      ( vy cv cop wcel wex crn wceq opeq2 eleq1d exbidv dfrn3 elab2 ) AFZEFZGZC
      HZAIQBGZCHZAIEBCJDRBKZTUBAUCSUACRBQLMNAECOP $.

    $( Membership in a range.  (Contributed by NM, 2-Apr-2004.) $)
    elrn $p |- ( A e. ran B <-> E. x x B A ) $=
      ( crn wcel cv cop wex wbr elrn2 df-br exbii bitr4i ) BCEFAGZBHCFZAIOBCJZA
      IABCDKQPAOBCLMN $.
  $}

  ${
    $d x y z $.  $d y z A $.
    nfrn.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for domain.  (Contributed by NM,
       30-Jan-2004.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfdm $p |- F/_ x dom A $=
      ( vy vz cdm cv wbr wex cab df-dm nfcv nfbr nfex nfab nfcxfr ) ABFDGZEGZBH
      ZEIZDJDEBKTADSAEAQRBAQLCARLMNOP $.

    $( Bound-variable hypothesis builder for range.  (Contributed by NM,
       1-Sep-1999.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfrn $p |- F/_ x ran A $=
      ( crn ccnv cdm df-rn nfcnv nfdm nfcxfr ) ABDBEZFBGAKABCHIJ $.
  $}

  $( Domain of an intersection.  (Contributed by FL, 15-Oct-2012.) $)
  dmiin $p |- dom |^|_ x e. A B C_ |^|_ x e. A dom B $=
    ( ciin cdm wss nfii1 nfdm ssiinf cv wcel iinss2 dmss syl mprgbir ) ABCDZEZA
    BCEZDFQRFZABABRQAPABCGHIAJBKPCFSABCLPCMNO $.

  ${
    $d x y $.
    $( The range of a class of ordered pairs.  (Contributed by NM,
       14-Aug-1995.)  (Revised by Mario Carneiro, 4-Dec-2016.) $)
    rnopab $p |- ran { <. x , y >. | ph } = { y | E. x ph } $=
      ( copab crn wbr wex cab nfopab1 nfopab2 dfrnf cop wcel df-br opabid bitri
      cv exbii abbii eqtri ) ABCDZEBQZCQZUAFZBGZCHABGZCHBCUAABCIABCJKUEUFCUDABU
      DUBUCLUAMAUBUCUANABCOPRST $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d x y z C $.
    rnmpt.1 $e |- F = ( x e. A |-> B ) $.
    $( The range of a function in maps-to notation.  (Contributed by Scott
       Fenton, 21-Mar-2011.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    rnmpt $p |- ran F = { y | E. x e. A y = B } $=
      ( cv wcel wceq wa copab crn wex cab wrex rnopab cmpt df-mpt eqtri rneqi
      df-rex abbii 3eqtr4i ) AGCHBGDIZJZABKZLUEAMZBNELUDACOZBNUEABPEUFEACDQUFFA
      BCDRSTUHUGBUDACUAUBUC $.

    $( The range of a function in maps-to notation.  (Contributed by Mario
       Carneiro, 20-Feb-2015.) $)
    elrnmpt $p |- ( C e. V -> ( C e. ran F <-> E. x e. A C = B ) ) $=
      ( vy cv wceq wrex crn eqeq1 rexbidv rnmpt elab2g ) HIZCJZABKDCJZABKHDELFQ
      DJRSABQDCMNAHBCEGOP $.

    ${
      $d x A $.  $d x D $.
      elrnmpt1s.1 $e |- ( x = D -> B = C ) $.
      $( Elementhood in an image set.  (Contributed by Mario Carneiro,
         12-Sep-2015.) $)
      elrnmpt1s $p |- ( ( D e. A /\ C e. V ) -> C e. ran F ) $=
        ( wcel wceq wrex crn eqid cv eqeq2d rspcev mpan2 elrnmpt biimparc sylan
        ) EBJZDCKZABLZDGJZDFMJZUBDDKZUDDNUCUGAEBAOEKCDDIPQRUEUFUDABCDFGHSTUA $.
    $}

    $( Elementhood in an image set.  (Contributed by Mario Carneiro,
       31-Aug-2015.) $)
    elrnmpt1 $p |- ( ( x e. A /\ B e. V ) -> B e. ran F ) $=
      ( vz vy wcel cv crn csb wceq wa wex vex wb id csbeq1a nfcsb1v bitr2d wrex
      eleq12d biantrud equcoms spcev df-rex nfv nfcri nfeq2 nfan eqeq2d anbi12d
      cbvex bitri eqeq1 anbi2d exbidv syl5bb rnmpt elab2g syl5ibr impcom ) CEIZ
      AJZBIZCDKZIZVFVHVDGJZAVIBLZIZCAVICLZMZNZGOZVNVFGVEAPVNVFQAGVEVIMZVFVKVNVP
      VEVIBVJVPRAVIBSUCZVPVMVKAVICSZUDUAUEUFHJZCMZABUBZVOHCVGEWAVKVSVLMZNZGOZVT
      VOWAVFVTNZAOWDVTABUGWEWCAGWEGUHVKWBAAGVJAVIBTUIAVSVLAVICTUJUKVPVFVKVTWBVQ
      VPCVLVSVRULUMUNUOVTWCVNGVTWBVMVKVSCVLUPUQURUSAHBCDFUTVAVBVC $.

    $( Membership in the range of a function.  (Contributed by NM,
       27-Aug-2007.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    elrnmptg $p |- ( A. x e. A B e. V ->
      ( C e. ran F <-> E. x e. A C = B ) ) $=
      ( vy crn wcel cv wceq wrex cab wral rnmpt eleq2i cvv wa syl wi wb rexbidv
      r19.29 eleq1 biimparc elexd rexlimivw ex eqeq1 elab3g syl5bb ) DEIZJDHKZC
      LZABMZHNZJZCFJZABOZDCLZABMZUMUQDAHBCEGPQUTVBDRJZUAURVBUBUTVBVCUTVBSUSVASZ
      ABMVCUSVAABUDVDVCABVDDFVADFJUSDCFUEUFUGUHTUIUPVBHDRUNDLUOVAABUNDCUJUCUKTU
      L $.

    elrnmpti.2 $e |- B e. _V $.
    $( Membership in the range of a function.  (Contributed by NM,
       30-Aug-2004.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    elrnmpti $p |- ( C e. ran F <-> E. x e. A C = B ) $=
      ( cvv wcel wral crn wceq wrex wb rgenw elrnmptg ax-mp ) CHIZABJDEKIDCLABM
      NRABGOABCDEHFPQ $.
  $}

  $( The range of the empty set is empty.  Part of Theorem 3.8(v) of [Monk1]
     p. 36.  (Contributed by NM, 4-Jul-1994.) $)
  rn0 $p |- ran (/) = (/) $=
    ( c0 cdm wceq crn dm0 dm0rn0 mpbi ) ABACADACEAFG $.

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( Alternate definition of indexed union when ` B ` is a set.  (Contributed
       by Mario Carneiro, 31-Aug-2015.) $)
    dfiun3g $p |- ( A. x e. A B e. C ->
                  U_ x e. A B = U. ran ( x e. A |-> B ) ) $=
      ( vy wcel wral ciun wceq wrex cab cuni cmpt crn dfiun2g eqid rnmpt unieqi
      cv syl6eqr ) CDFABGABCHESCIABJEKZLABCMZNZLAEBCDOUCUAAEBCUBUBPQRT $.

    $( Alternate definition of indexed intersection when ` B ` is a set.
       (Contributed by Mario Carneiro, 31-Aug-2015.) $)
    dfiin3g $p |- ( A. x e. A B e. C
               -> |^|_ x e. A B = |^| ran ( x e. A |-> B ) ) $=
      ( vy wcel wral ciin wceq wrex cab cint cmpt crn dfiin2g eqid rnmpt inteqi
      cv syl6eqr ) CDFABGABCHESCIABJEKZLABCMZNZLAEBCDOUCUAAEBCUBUBPQRT $.
  $}

  ${
    dfiun3.1 $e |- B e. _V $.
    $( Alternate definition of indexed union when ` B ` is a set.  (Contributed
       by Mario Carneiro, 31-Aug-2015.) $)
    dfiun3 $p |- U_ x e. A B = U. ran ( x e. A |-> B ) $=
      ( cvv wcel ciun cmpt crn cuni wceq dfiun3g cv a1i mprg ) CEFZABCGABCHIJKA
      BABCELPAMBFDNO $.

    $( Alternate definition of indexed intersection when ` B ` is a set.
       (Contributed by Mario Carneiro, 31-Aug-2015.) $)
    dfiin3 $p |- |^|_ x e. A B = |^| ran ( x e. A |-> B ) $=
      ( cvv wcel ciin cmpt crn cint wceq dfiin3g cv a1i mprg ) CEFZABCGABCHIJKA
      BABCELPAMBFDNO $.
  $}

  ${
    $d V k $.  $d X k $.
    $( Express a relative indexed intersection as an intersection.
       (Contributed by Stefan O'Rear, 22-Feb-2015.) $)
    riinint $p |- ( ( X e. V /\ A. k e. I S C_ X ) ->
        ( X i^i |^|_ k e. I S ) = |^| ( { X } u. ran ( k e. I |-> S ) ) ) $=
      ( wcel wss wral wa ciin cin cmpt crn cint csn cun cvv wceq ssexg expcom
      ralimdv imp dfiin3g syl ineq2d intun intsng adantr ineq1d syl5eq eqtr4d )
      EDFZAEGZBCHZIZEBCAJZKEBCALMZNZKZEOZUQPNZUOUPUREUOAQFZBCHZUPURRULUNVCULUMV
      BBCUMULVBAEDSTUAUBBCAQUCUDUEUOVAUTNZURKUSUTUQUFUOVDEURULVDERUNEDUGUHUIUJU
      K $.
  $}

  ${
    $d x y A $.
    $( A relation is empty iff its range is empty.  (Contributed by NM,
       15-Sep-2004.) $)
    relrn0 $p |- ( Rel A -> ( A = (/) <-> ran A = (/) ) ) $=
      ( wrel c0 wceq cdm crn reldm0 dm0rn0 syl6bb ) ABACDAECDAFCDAGAHI $.

    $( The domain and range of a class are included in its double union.
       (Contributed by NM, 13-May-2008.) $)
    dmrnssfld $p |- ( dom A u. ran A ) C_ U. U. A $=
      ( vx vy cdm crn cuni cv cop wex vex eldm2 cpr prid1 wss sseld mpi exlimiv
      wcel sylbi ssriv uniop uniopel syl5eqelr elssuni syl elrn2 prid2 unssi )
      ADZAEZAFZFZBUIULBGZUIRUMCGZHZARZCIUMULRZCUMABJZKUPUQCUPUMUMUNLZRUQUMUNURM
      UPUSULUMUPUSUKRUSULNUPUSUOFUKUMUNURCJZUAUMUNAURUTUBUCUSUKUDUEZOPQSTCUJULU
      NUJRUPBIUNULRZBUNAUTUFUPVBBUPUNUSRVBUMUNUTUGUPUSULUNVAOPQSTUH $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( Domain of a composition.  Theorem 21 of [Suppes] p. 63.  (Contributed by
       NM, 19-Mar-1998.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    dmcoss $p |- dom ( A o. B ) C_ dom B $=
      ( vx vy vz ccom cdm cv cop wcel wex wbr nfe1 wa exsimpl vex opelco cbvexv
      breq2 3imtr4i exlimi eldm2 eldm ssriv ) CABFZGZBGZCHZDHZIUEJZDKUHUIBLZDKZ
      UHUFJUHUGJUJULDUKDMUHEHZBLZUMUIALZNEKUNEKUJULUNUOEOEUHUIABCPZDPQUKUNDEUIU
      MUHBSRTUADUHUEUPUBDUHBUPUCTUD $.
  $}

  $( Range of a composition.  (Contributed by NM, 19-Mar-1998.) $)
  rncoss $p |- ran ( A o. B ) C_ ran A $=
    ( ccnv ccom cdm crn dmcoss df-rn cnvco dmeqi eqtri 3sstr4i ) BCZACZDZEZNEAB
    DZFZAFMNGRQCZEPQHSOABIJKAHL $.

  ${
    $d x y z A $.  $d x y z B $.
    $( Domain of a composition.  (Contributed by NM, 28-May-1998.)  (Proof
       shortened by Andrew Salmon, 27-Aug-2011.) $)
    dmcosseq $p |- ( ran B C_ dom A -> dom ( A o. B ) = dom B ) $=
      ( vx vy vz crn cdm wss ccom dmcoss a1i cv wbr wex wcel wi vex eldm eximdv
      syl6ibr wa ssel elrn imbi12i 19.8a imim1i pm3.2 sylcom sylbi excom opelco
      cop syl exbii eldm2 3imtr4g ssrdv eqssd ) BFZAGZHZABIZGZBGZVCVDHVAABJKVAC
      VDVCVACLZDLZBMZDNZVEELZULVBOZENZVEVDOVEVCOVAVHVGVFVIAMZUAZDNZENZVKVAVHVME
      NZDNVOVAVGVPDVAVFUSOZVFUTOZPZVGVPPZUSUTVFUBVSVGCNZVLENZPZVTVQWAVRWBCVFBDQ
      ZUCEVFAWDRUDWCVGWBVPVGWAWBVGCUEUFVGVLVMEVGVLUGSUHUIUMSVMEDUJTVJVNEDVEVIAB
      CQZEQUKUNTDVEBWEREVEVBWEUOUPUQUR $.

    $( Domain of a composition.  (Contributed by NM, 19-Mar-1998.) $)
    dmcoeq $p |- ( dom A = ran B -> dom ( A o. B ) = dom B ) $=
      ( cdm crn wceq wss ccom eqimss2 dmcosseq syl ) ACZBDZELKFABGCBCELKHABIJ
      $.
  $}

  $( Range of a composition.  (Contributed by NM, 19-Mar-1998.) $)
  rncoeq $p |- ( dom A = ran B -> ran ( A o. B ) = ran A ) $=
    ( ccnv cdm crn wceq ccom dmcoeq eqcom df-rn dfdm4 eqeq12i bitri cnvco dmeqi
    eqtri 3imtr4i ) BCZDZACZEZFZRTGZDZTDZFADZBEZFZABGZEZAEZFRTHUHUGUFFUBUFUGIUG
    SUFUABJAKLMUJUDUKUEUJUICZDUDUIJULUCABNOPAJLQ $.

  $( Equality theorem for restrictions.  (Contributed by NM, 7-Aug-1994.) $)
  reseq1 $p |- ( A = B -> ( A |` C ) = ( B |` C ) ) $=
    ( wceq cvv cxp cin cres ineq1 df-res 3eqtr4g ) ABDACEFZGBLGACHBCHABLIACJBCJ
    K $.

  $( Equality theorem for restrictions.  (Contributed by NM, 8-Aug-1994.) $)
  reseq2 $p |- ( A = B -> ( C |` A ) = ( C |` B ) ) $=
    ( wceq cvv cxp cin cres xpeq1 ineq2d df-res 3eqtr4g ) ABDZCAEFZGCBEFZGCAHCB
    HMNOCABEIJCAKCBKL $.

  ${
    reseqi.1 $e |- A = B $.
    $( Equality inference for restrictions.  (Contributed by NM,
       21-Oct-2014.) $)
    reseq1i $p |- ( A |` C ) = ( B |` C ) $=
      ( wceq cres reseq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality inference for restrictions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    reseq2i $p |- ( C |` A ) = ( C |` B ) $=
      ( wceq cres reseq2 ax-mp ) ABECAFCBFEDABCGH $.

    reseqi.2 $e |- C = D $.
    $( Equality inference for restrictions.  (Contributed by NM,
       21-Oct-2014.) $)
    reseq12i $p |- ( A |` C ) = ( B |` D ) $=
      ( cres reseq1i reseq2i eqtri ) ACGBCGBDGABCEHCDBFIJ $.
  $}

  ${
    reseqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for restrictions.  (Contributed by NM,
       21-Oct-2014.) $)
    reseq1d $p |- ( ph -> ( A |` C ) = ( B |` C ) ) $=
      ( wceq cres reseq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality deduction for restrictions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    reseq2d $p |- ( ph -> ( C |` A ) = ( C |` B ) ) $=
      ( wceq cres reseq2 syl ) ABCFDBGDCGFEBCDHI $.

    reseqd.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for restrictions.  (Contributed by NM,
       21-Oct-2014.) $)
    reseq12d $p |- ( ph -> ( A |` C ) = ( B |` D ) ) $=
      ( cres reseq1d reseq2d eqtrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  ${
    nfres.1 $e |- F/_ x A $.
    nfres.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for restriction.  (Contributed by NM,
       15-Sep-2003.)  (Revised by David Abernethy, 19-Jun-2012.) $)
    nfres $p |- F/_ x ( A |` B ) $=
      ( cres cvv cxp cin df-res nfcv nfxp nfin nfcxfr ) ABCFBCGHZIBCJABODACGEAG
      KLMN $.
  $}

  $( Distribute proper substitution through the restriction of a class.
     (Contributed by Alan Sare, 10-Nov-2012.)  (Revised by NM, 23-Aug-2018.) $)
  csbres $p |- [_ A / x ]_ ( B |` C ) = ( [_ A / x ]_ B |` [_ A / x ]_ C ) $=
    ( cres csb cvv cxp cin df-res csbeq2i wcel csbxp csbconstg xpeq2d syl5eq wn
    wceq c0 csbprc 0xp a1i xpeq1d 3eqtr4rd pm2.61i ineq2i csbin 3eqtr4i eqtri )
    ABCDEZFABCDGHZIZFZABCFZABDFZEZABUJULCDJKUNABUKFZIUNUOGHZIUMUPUQURUNBGLZUQUR
    RUSUQUOABGFZHURABDGMUSUTGUOABGGNOPUSQZSGHZSURUQVBSRVAGUAUBVAUOSGABDTUCABUKT
    UDUEUFABCUKUGUNUOJUHUI $.

  $( A restriction to the empty set is empty.  (Contributed by NM,
     12-Nov-1994.) $)
  res0 $p |- ( A |` (/) ) = (/) $=
    ( c0 cres cvv cxp cin df-res 0xp ineq2i in0 3eqtri ) ABCABDEZFABFBABGLBADHI
    AJK $.

  ${
    $d A x y z $.  $d B x y z $.
    $( Alternate definition of restriction.  (Contributed by Scott Fenton,
       17-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    dfres3 $p |- ( A |` B ) = ( A i^i ( B X. ran A ) ) $=
      ( vx vy vz cres cvv cxp cin crn df-res cv wcel wa cop wceq wex vex elxp
      wb biantru opelrn biantrud syl5bbr syl6bi pm5.32d 2exbidv 3bitr4g pm5.32i
      eleq1 com12 elin bitr4i ineqri eqtri ) ABFABGHZIABAJZHZIZABKCAUPUSCLZAMZU
      TUPMZNVAUTURMZNUTUSMVAVBVCVAUTDLZELZOZPZVDBMZVEGMZNZNZEQDQVGVHVEUQMZNZNZE
      QDQVBVCVAVKVNDEVAVGVJVMVGVAVJVMTZVGVAVFAMZVOUTVFAUJVJVHVPVMVIVHERZUAVPVLV
      HVDVEADRVQUBUCUDUEUKUFUGDEUTBGSDEUTBUQSUHUIUTAURULUMUNUO $.
  $}

  $( Ordered pair membership in a restriction.  Exercise 13 of [TakeutiZaring]
     p. 25.  (Contributed by NM, 14-Oct-2005.)  (Revised by BJ,
     18-Feb-2022.) $)
  opelresg $p |- ( B e. V -> ( <. A , B >. e. ( C |` D ) <->
                    ( <. A , B >. e. C /\ A e. D ) ) ) $=
    ( wcel cop cres cvv cxp cin wa wb df-res eleq2i a1i elin opelxp elex biid
    rbaib syl syl5bb anbi2d 3bitrd ) BEFZABGZCDHZFZUGCDIJZKZFZUGCFZUGUJFZLZUMAD
    FZLUIULMUFUHUKUGCDNOPULUOMUFUGCUJQPUFUNUPUMUNUPBIFZLZUFUPABDIRUFUQURUPMBESU
    RUPUQURTUAUBUCUDUE $.

  $( Binary relation on a restriction.  (Contributed by Mario Carneiro,
     4-Nov-2015.) $)
  brresg $p |- ( B e. V -> ( A ( C |` D ) B <-> ( A C B /\ A e. D ) ) ) $=
    ( wcel cop cres wa wbr opelresg df-br anbi1i 3bitr4g ) BEFABGZCDHZFOCFZADFZ
    IABPJABCJZRIABCDEKABPLSQRABCLMN $.

  ${
    opelres.1 $e |- B e. _V $.
    $( Ordered pair membership in a restriction.  Exercise 13 of
       [TakeutiZaring] p. 25.  (Contributed by NM, 13-Nov-1995.) $)
    opelres $p |- ( <. A , B >. e. ( C |` D ) <->
                    ( <. A , B >. e. C /\ A e. D ) ) $=
      ( cvv wcel cop cres wa wb opelresg ax-mp ) BFGABHZCDIGNCGADGJKEABCDFLM $.

    $( Binary relation on a restriction.  (Contributed by NM, 12-Dec-2006.) $)
    brres $p |- ( A ( C |` D ) B <-> ( A C B /\ A e. D ) ) $=
      ( cvv wcel cres wbr wa wb brresg ax-mp ) BFGABCDHIABCIADGJKEABCDFLM $.
  $}

  ${
    opelresOLD.1 $e |- B e. _V $.
    $( Old proof of ~ opelres .  Obsolete as of 18-Feb-2022.  (Contributed by
       NM, 13-Nov-1995.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    opelresOLD $p |- ( <. A , B >. e. ( C |` D ) <->
                    ( <. A , B >. e. C /\ A e. D ) ) $=
      ( cop cres wcel cvv cxp cin wa df-res eleq2i elin opelxp mpbiran2 anbi2i
      3bitri ) ABFZCDGZHTCDIJZKZHTCHZTUBHZLUDADHZLUAUCTCDMNTCUBOUEUFUDUEUFBIHEA
      BDIPQRS $.

    $( Old proof of ~ brres .  Obsolete as of 18-Feb-2022.  (Contributed by NM,
       12-Dec-2006.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    brresOLD $p |- ( A ( C |` D ) B <-> ( A C B /\ A e. D ) ) $=
      ( cop cres wcel wa wbr opelres df-br anbi1i 3bitr4i ) ABFZCDGZHOCHZADHZIA
      BPJABCJZRIABCDEKABPLSQRABCLMN $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y D $.
    $( Old proof of ~ opelresg .  Obsolete as of 18-Feb-2022.  (Contributed by
       NM, 14-Oct-2005.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    opelresgOLD $p |- ( B e. V -> ( <. A , B >. e. ( C |` D ) <->
                    ( <. A , B >. e. C /\ A e. D ) ) ) $=
      ( vy cv cop cres wcel wa wceq opeq2 eleq1d anbi1d vex opelres vtoclbg ) A
      FGZHZCDIZJTCJZADJZKABHZUAJUDCJZUCKFBESBLZTUDUASBAMZNUFUBUEUCUFTUDCUGNOASC
      DFPQR $.
  $}

  ${
    opres.1 $e |- B e. _V $.
    $( Ordered pair membership in a restriction when the first member belongs
       to the restricting class.  (Contributed by NM, 30-Apr-2004.)  (Proof
       shortened by Andrew Salmon, 27-Aug-2011.) $)
    opres $p |- ( A e. D ->
                    ( <. A , B >. e. ( C |` D ) <-> <. A , B >. e. C ) ) $=
      ( cop cres wcel opelres rbaib ) ABFZCDGHKCHADHABCDEIJ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( A restricted identity relation is equivalent to equality in its domain.
       (Contributed by NM, 30-Apr-2004.) $)
    resieq $p |- ( ( B e. A /\ C e. A ) -> ( B ( _I |` A ) C <-> B = C ) ) $=
      ( vx wcel cid cres wbr wceq wb cv wi breq2 eqeq2 bibi12d imbi2d cop opres
      vex df-br ideq bitr3i 3bitr4g vtoclg impcom ) CAEBAEZBCFAGZHZBCIZJZUFBDKZ
      UGHZBUKIZJZLUFUJLDCAUKCIZUNUJUFUOULUHUMUIUKCBUGMUKCBNOPUFBUKQZUGEUPFEZULU
      MBUKFADSZRBUKUGTUMBUKFHUQBUKURUABUKFTUBUCUDUE $.
  $}

  $( ` <. A , A >. ` belongs to a restriction of the identity class iff ` A `
     belongs to the restricting class.  (Contributed by FL, 27-Oct-2008.)
     (Revised by NM, 30-Mar-2016.) $)
  opelresi $p |- ( A e. V -> ( <. A , A >. e. ( _I |` B ) <-> A e. B ) ) $=
    ( wcel cop cid cres wbr ididg df-br sylib opelresg mpbirand ) ACDZAAEZFBGDO
    FDZABDNAAFHPACIAAFJKAAFBCLM $.

  $( The restriction of a restriction.  (Contributed by NM, 27-Mar-2008.) $)
  resres $p |- ( ( A |` B ) |` C ) = ( A |` ( B i^i C ) ) $=
    ( cres cvv cxp cin df-res ineq1i xpindir ineq2i inass 3eqtr4ri 3eqtri ) ABD
    ZCDOCEFZGABEFZGZPGZABCGZDZOCHORPABHIATEFZGAQPGZGUASUBUCABCEJKATHAQPLMN $.

  $( Distributive law for restriction over union.  Theorem 31 of [Suppes]
     p. 65.  (Contributed by NM, 30-Sep-2002.) $)
  resundi $p |- ( A |` ( B u. C ) ) = ( ( A |` B ) u. ( A |` C ) ) $=
    ( cun cvv cxp cin cres xpundir ineq2i indi eqtri df-res uneq12i 3eqtr4i ) A
    BCDZEFZGZABEFZGZACEFZGZDZAPHABHZACHZDRASUADZGUCQUFABCEIJASUAKLAPMUDTUEUBABM
    ACMNO $.

  $( Distributive law for restriction over union.  (Contributed by NM,
     23-Sep-2004.) $)
  resundir $p |- ( ( A u. B ) |` C ) = ( ( A |` C ) u. ( B |` C ) ) $=
    ( cun cvv cxp cin cres indir df-res uneq12i 3eqtr4i ) ABDZCEFZGANGZBNGZDMCH
    ACHZBCHZDABNIMCJQORPACJBCJKL $.

  $( Class restriction distributes over intersection.  (Contributed by FL,
     6-Oct-2008.) $)
  resindi $p |- ( A |` ( B i^i C ) ) = ( ( A |` B ) i^i ( A |` C ) ) $=
    ( cin cvv cxp cres xpindir ineq2i inindi eqtri df-res ineq12i 3eqtr4i ) ABC
    DZEFZDZABEFZDZACEFZDZDZAOGABGZACGZDQARTDZDUBPUEABCEHIARTJKAOLUCSUDUAABLACLM
    N $.

  $( Class restriction distributes over intersection.  (Contributed by NM,
     18-Dec-2008.) $)
  resindir $p |- ( ( A i^i B ) |` C ) = ( ( A |` C ) i^i ( B |` C ) ) $=
    ( cin cvv cxp cres inindir df-res ineq12i 3eqtr4i ) ABDZCEFZDAMDZBMDZDLCGAC
    GZBCGZDABMHLCIPNQOACIBCIJK $.

  $( Move intersection into class restriction.  (Contributed by NM,
     18-Dec-2008.) $)
  inres $p |- ( A i^i ( B |` C ) ) = ( ( A i^i B ) |` C ) $=
    ( cin cvv cxp cres inass df-res ineq2i 3eqtr4ri ) ABDZCEFZDABMDZDLCGABCGZDA
    BMHLCIONABCIJK $.

  $( Commutative law for restriction and difference.  (Contributed by AV,
     7-Jun-2021.) $)
  resdifcom $p |- ( ( A |` B ) \ C ) = ( ( A \ C ) |` B ) $=
    ( cdif cvv cxp cin cres indif1 df-res difeq1i 3eqtr4ri ) ACDZBEFZGANGZCDMBH
    ABHZCDANCIMBJPOCABJKL $.

  ${
    $d x C $.
    $( Distribution of restriction over indexed union.  (Contributed by Mario
       Carneiro, 29-May-2015.)  (Proof shortened by JJ, 25-Aug-2021.) $)
    resiun1 $p |- ( U_ x e. A B |` C ) = U_ x e. A ( B |` C ) $=
      ( cvv cxp cin ciun cres iunin1 wceq cv wcel df-res a1i iuneq2i 3eqtr4ri )
      ABCDEFZGZHABCHZRGABCDIZHTDIABRCJABUASUASKALBMCDNOPTDNQ $.

    $( Obsolete proof of ~ resiun1 as of 25-Aug-2021.  (Contributed by Mario
       Carneiro, 29-May-2015.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    resiun1OLD $p |- ( U_ x e. A B |` C ) = U_ x e. A ( B |` C ) $=
      ( cvv cxp cin ciun cres iunin2 wceq cv wcel df-res incom iuneq2i 3eqtr4ri
      eqtri a1i ) ABDEFZCGZHTABCHZGZABCDIZHUBDIZABTCJABUDUAUDUAKALBMUDCTGUACDNC
      TORSPUEUBTGUCUBDNUBTORQ $.

    $( Distribution of restriction over indexed union.  (Contributed by Mario
       Carneiro, 29-May-2015.) $)
    resiun2 $p |- ( C |` U_ x e. A B ) = U_ x e. A ( C |` B ) $=
      ( ciun cres cvv cxp cin df-res wceq cv a1i iuneq2i xpiundir ineq2i iunin2
      wcel eqtr4i ) DABCEZFDTGHZIZABDCFZEZDTJUDABDCGHZIZEZUBABUCUFUCUFKALBRDCJM
      NUBDABUEEZIUGUAUHDABCGOPABDUEQSSS $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The domain of a restriction.  Exercise 14 of [TakeutiZaring] p. 25.
       (Contributed by NM, 1-Aug-1994.) $)
    dmres $p |- dom ( A |` B ) = ( B i^i dom A ) $=
      ( vx vy cdm cin cres cv wcel cop wex wa eldm2 19.41v opelres exbii anbi1i
      vex 3bitr4i bitr2i ineqri incom eqtr3i ) AEZBFABGZEZBUDFCUDBUFCHZUFIUGDHZ
      JZUEIZDKZUGUDIZUGBIZLZDUGUECRZMUIAIZUMLZDKUPDKZUMLUKUNUPUMDNUJUQDUGUHABDR
      OPULURUMDUGAUOMQSTUAUDBUBUC $.
  $}

  $( A domain restricted to a subclass equals the subclass.  (Contributed by
     NM, 2-Mar-1997.) $)
  ssdmres $p |- ( A C_ dom B <-> dom ( B |` A ) = A ) $=
    ( cdm wss cin wceq cres df-ss dmres eqeq1i bitr4i ) ABCZDALEZAFBAGCZAFALHNM
    ABAIJK $.

  $( The domain of a restriction to a set exists.  (Contributed by NM,
     7-Apr-1995.) $)
  dmresexg $p |- ( B e. V -> dom ( A |` B ) e. _V ) $=
    ( wcel cres cdm cin cvv dmres inex1g syl5eqel ) BCDABEFBAFZGHABIBLCJK $.

  $( A class includes its restriction.  Exercise 15 of [TakeutiZaring] p. 25.
     (Contributed by NM, 2-Aug-1994.) $)
  resss $p |- ( A |` B ) C_ A $=
    ( cres cvv cxp cin df-res inss1 eqsstri ) ABCABDEZFAABGAJHI $.

  $( Commutative law for restriction.  (Contributed by NM, 27-Mar-1998.) $)
  rescom $p |- ( ( A |` B ) |` C ) = ( ( A |` C ) |` B ) $=
    ( cin cres incom reseq2i resres 3eqtr4i ) ABCDZEACBDZEABECEACEBEJKABCFGABCH
    ACBHI $.

  $( Subclass theorem for restriction.  (Contributed by NM, 16-Aug-1994.) $)
  ssres $p |- ( A C_ B -> ( A |` C ) C_ ( B |` C ) ) $=
    ( wss cvv cxp cin cres ssrin df-res 3sstr4g ) ABDACEFZGBLGACHBCHABLIACJBCJK
    $.

  $( Subclass theorem for restriction.  (Contributed by NM, 22-Mar-1998.)
     (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  ssres2 $p |- ( A C_ B -> ( C |` A ) C_ ( C |` B ) ) $=
    ( wss cvv cxp cin cres xpss1 sslin syl df-res 3sstr4g ) ABDZCAEFZGZCBEFZGZC
    AHCBHNOQDPRDABEIOQCJKCALCBLM $.

  $( A restriction is a relation.  Exercise 12 of [TakeutiZaring] p. 25.
     (Contributed by NM, 2-Aug-1994.)  (Proof shortened by Andrew Salmon,
     27-Aug-2011.) $)
  relres $p |- Rel ( A |` B ) $=
    ( cres cvv cxp wss wrel cin df-res inss2 eqsstri relxp relss mp2 ) ABCZBDEZ
    FPGOGOAPHPABIAPJKBDLOPMN $.

  $( Absorption law for restriction.  Exercise 17 of [TakeutiZaring] p. 25.
     (Contributed by NM, 9-Aug-1994.) $)
  resabs1 $p |- ( B C_ C -> ( ( A |` C ) |` B ) = ( A |` B ) ) $=
    ( wss cres cin resres wceq sseqin2 reseq2 sylbi syl5eq ) BCDZACEBEACBFZEZAB
    EZACBGMNBHOPHBCINBAJKL $.

  ${
    resabs1d.b $e |- ( ph -> B C_ C ) $.
    $( Absorption law for restriction, deduction form.  (Contributed by Glauco
       Siliprandi, 11-Dec-2019.) $)
    resabs1d $p |- ( ph -> ( ( A |` C ) |` B ) = ( A |` B ) ) $=
      ( wss cres wceq resabs1 syl ) ACDFBDGCGBCGHEBCDIJ $.
  $}

  $( Absorption law for restriction.  (Contributed by NM, 27-Mar-1998.) $)
  resabs2 $p |- ( B C_ C -> ( ( A |` B ) |` C ) = ( A |` B ) ) $=
    ( wss cres rescom resabs1 syl5eq ) BCDABEZCEACEBEIABCFABCGH $.

  $( Idempotent law for restriction.  (Contributed by NM, 27-Mar-1998.) $)
  residm $p |- ( ( A |` B ) |` B ) = ( A |` B ) $=
    ( wss cres wceq ssid resabs2 ax-mp ) BBCABDZBDIEBFABBGH $.

  $( A restriction to an image.  (Contributed by NM, 29-Sep-2004.) $)
  resima $p |- ( ( A |` B ) " B ) = ( A " B ) $=
    ( cres crn cima residm rneqi df-ima 3eqtr4i ) ABCZBCZDJDJBEABEKJABFGJBHABHI
    $.

  $( Image under a restricted class.  (Contributed by FL, 31-Aug-2009.)  (Proof
     shortened by JJ, 25-Aug-2021.) $)
  resima2 $p |- ( B C_ C -> ( ( A |` C ) " B ) = ( A " B ) ) $=
    ( wss cin cres crn cima wceq sseqin2 reseq2 sylbi rneqd df-ima resres rneqi
    eqtri 3eqtr4g ) BCDZACBEZFZGZABFZGACFZBHZABHSUAUCSTBIUAUCIBCJTBAKLMUEUDBFZG
    UBUDBNUFUAACBOPQABNR $.

  $( Obsolete proof of ~ resima2 as of 25-Aug-2021.  (Contributed by FL,
     31-Aug-2009.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  resima2OLD $p |- ( B C_ C -> ( ( A |` C ) " B ) = ( A " B ) ) $=
    ( wss cres cima crn df-ima cin resres rneqi wceq df-ss incom reseq2d reseq2
    a1i rneqd syl6eqr syl5eq eqtrd sylbi ) BCDZACEZBFUDBEZGZABFZUDBHUCUFACBIZEZ
    GZUGUEUIACBJKUCBCIZBLZUJUGLBCMULUJAUKEZGZUGULUIUMULUHUKAUHUKLULCBNQORULUNAB
    EZGUGULUMUOUKBAPRABHSUAUBTT $.

  $( Restriction of a constant function (or other Cartesian product).
     (Contributed by Stefan O'Rear, 24-Jan-2015.) $)
  xpssres $p |- ( C C_ A -> ( ( A X. B ) |` C ) = ( C X. B ) ) $=
    ( wss cxp cres cin cvv df-res inxp inv1 xpeq2i 3eqtri sseqin2 biimpi xpeq1d
    wceq syl5eq ) CADZABEZCFZACGZBEZCBEUATCHEGUBBHGZEUCTCIABCHJUDBUBBKLMSUBCBSU
    BCQCANOPR $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Membership in a restriction.  (Contributed by Scott Fenton,
       17-Mar-2011.) $)
    elres $p |- ( A e. ( B |` C )
          <-> E. x e. C E. y ( A = <. x , y >. /\ <. x , y >. e. B ) ) $=
      ( cres wcel cv cop wceq wex wrex wrel relres elrel mpan eleq1 biimpd vex
      wa opelres biimpi ancomd syl6com ancld an12 syl6ib 2eximdv rexcom4 df-rex
      mpd exbii excom 3bitri sylibr simplbi2com biimprd exlimdv rexlimiv impbii
      syl9 impd ) CDEFZGZCAHZBHZIZJZVGDGZTZBKZAELZVDVEEGZVJTZBKAKZVLVDVHBKAKZVO
      VCMVDVPDENABCVCOPVDVHVNABVDVHVHVMVITZTVNVDVHVQVHVDVGVCGZVQVHVDVRCVGVCQZRV
      RVIVMVRVIVMTVEVFDEBSUAZUBUCUDUEVHVMVIUFUGUHUKVLVJAELZBKVNAKZBKVOVJABEUIWA
      WBBVJAEUJULVNBAUMUNUOVKVDAEVMVJVDBVMVHVIVDVMVIVRVHVDVRVIVMVTUPVHVDVRVSUQV
      AVBURUSUT $.

    ${
      elsnres.1 $e |- C e. _V $.
      $( Membership in restriction to a singleton.  (Contributed by Scott
         Fenton, 17-Mar-2011.) $)
      elsnres $p |- ( A e. ( B |` { C } )
            <-> E. y ( A = <. C , y >. /\ <. C , y >. e. B ) ) $=
        ( vx csn cres wcel cv cop wceq wa wex elres rexcom4 opeq1 eqeq2d eleq1d
        wrex anbi12d rexsn exbii 3bitri ) BCDGZHIBFJZAJZKZLZUHCIZMZANFUETUKFUET
        ZANBDUGKZLZUMCIZMZANFABCUEOUKFAUEPULUPAUKUPFDEUFDLZUIUNUJUOUQUHUMBUFDUG
        QZRUQUHUMCURSUAUBUCUD $.
    $}

    $( Simplification law for restriction.  (Contributed by NM,
       16-Aug-1994.) $)
    relssres $p |- ( ( Rel A /\ dom A C_ B ) -> ( A |` B ) = A ) $=
      ( vx vy wrel cdm wss wa cres wceq simpl cv cop wcel vex opeldm ssel ancld
      wi syl5 opelres syl6ibr adantl relssdv resss jctil eqss sylibr ) AEZAFZBG
      ZHZABIZAGZAUMGZHUMAJULUOUNULCDAUMUIUKKUKCLZDLZMZANZURUMNZSUIUKUSUSUPBNZHU
      TUKUSVAUSUPUJNUKVAUPUQACODOZPUJBUPQTRUPUQABVBUAUBUCUDABUEUFUMAUGUH $.
  $}

  $( The domain of a restriction to a singleton is a singleton.  (Contributed
     by Alexander van der Vekens, 2-Jul-2017.) $)
  dmressnsn $p |- ( A e. dom F -> dom ( F |` { A } ) = { A } ) $=
    ( cdm wcel csn cres cin dmres wss wceq snssi df-ss sylib syl5eq ) ABCZDZBAE
    ZFCQOGZQBQHPQOIRQJAOKQOLMN $.

  $( The element of the domain of a restriction to a singleton is the element
     of the singleton.  (Contributed by Alexander van der Vekens,
     2-Jul-2017.) $)
  eldmressnsn $p |- ( A e. dom F -> A e. dom ( F |` { A } ) ) $=
    ( cdm wcel csn cres snidg dmressnsn eleqtrrd ) ABCZDAAEZBKFCAJGABHI $.

  $( An element of the domain (of a relation) is an element of the domain of
     the restriction (of the relation) to the singleton containing this
     element.  (Contributed by Alexander van der Vekens, 22-Jul-2018.) $)
  eldmeldmressn $p |- ( X e. dom F <-> X e. dom ( F |` { X } ) ) $=
    ( cdm wcel csn cres eldmressnsn cin elinel2 dmres eleq2s impbii ) BACZDZBAB
    EZFCZDBAGNBOMHPBOMIAOJKL $.

  $( A relation restricted to its domain equals itself.  (Contributed by NM,
     12-Dec-2006.) $)
  resdm $p |- ( Rel A -> ( A |` dom A ) = A ) $=
    ( wrel cdm wss cres wceq ssid relssres mpan2 ) ABACZJDAJEAFJGAJHI $.

  $( The restriction of a set is a set.  (Contributed by NM, 28-Mar-1998.)
     (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  resexg $p |- ( A e. V -> ( A |` B ) e. _V ) $=
    ( cres wss wcel cvv resss ssexg mpan ) ABDZAEACFKGFABHKACIJ $.

  ${
    resex.1 $e |- A e. _V $.
    $( The restriction of a set is a set.  (Contributed by Jeff Madsen,
       19-Jun-2011.) $)
    resex $p |- ( A |` B ) e. _V $=
      ( cvv wcel cres resexg ax-mp ) ADEABFDECABDGH $.
  $}

  $( When restricting a relation, intersecting with the domain of the relation
     has no effect.  (Contributed by FL, 6-Oct-2008.) $)
  resindm $p |- ( Rel A -> ( A |` ( B i^i dom A ) ) = ( A |` B ) ) $=
    ( wrel cres cdm cin resdm resindi incom inres inidm reseq1i 3eqtrri 3eqtr4g
    ineq2d ) ACZABDZAAEZDZFQAFZABRFDQPSAQAGOABRHTAQFAAFZBDQQAIAABJUAABAKLMN $.

  $( Restricting a relation to its domain without a set is the same as
     restricting the relation to the universe without this set.  (Contributed
     by AV, 2-Dec-2018.) $)
  resdmdfsn $p |- ( Rel R -> ( R |` ( _V \ { X } ) )
                             = ( R |` ( dom R \ { X } ) ) ) $=
    ( wrel cdm csn cdif cres cvv cin indif1 incom eqtri difeq1i reseq2i resindm
    inv1 syl5reqr ) ACAADZBEZFZGAHSFZRIZGAUAGUBTAUBHRIZSFTHRSJUCRSUCRHIRHRKRPLM
    LNAUAOQ $.

  ${
    $d x y A $.
    $( Restriction of a class abstraction of ordered pairs.  (Contributed by
       NM, 5-Nov-2002.) $)
    resopab $p |- ( { <. x , y >. | ph } |` A ) =
                  { <. x , y >. | ( x e. A /\ ph ) } $=
      ( copab cres cvv cxp cin cv wa df-res df-xp biantru opabbii eqtr4i ineq2i
      wcel vex eqtri incom inopab ) ABCEZDFUCDGHZIZBJDRZAKBCEZUCDLUEUFBCEZUCIZU
      GUEUCUHIUIUDUHUCUDUFCJGRZKZBCEUHBCDGMUFUKBCUJUFCSNOPQUCUHUATUFABCUBTT $.

    $( A subclass of the identity function is the identity function restricted
       to its domain.  (Contributed by NM, 13-Dec-2003.)  (Proof shortened by
       Andrew Salmon, 27-Aug-2011.) $)
    iss $p |- ( A C_ _I <-> A = ( _I |` dom A ) ) $=
      ( vx vy cid wss cdm cres wceq cv cop wcel wb wal wa ssel wi opeldm syl5bi
      vex wrel a1i jcad wbr df-br bitr3i wex eldm2 opeq2 eleq1d biimprcd sylcom
      ideq exlimdv imbi2d syl5ibcom impd impbid opelres alrimivv reli relss mpi
      syl6bbr relres eqrel sylancl mpbird resss sseq1 mpbiri impbii ) ADEZADAFZ
      GZHZVLVOBIZCIZJZAKZVRVNKZLZCMBMZVLWABCVLVSVRDKZVPVMKZNZVTVLVSWEVLVSWCWDAD
      VROZVSWDPVLVPVQABSZCSZQUAUBVLWCWDVSWCVPVQHZVLWDVSPZWCVPVQDUCWIVPVQDUDVPVQ
      WHULUEZVLWDVPVPJZAKZPWIWJWDVSCUFVLWMCVPAWGUGVLVSWMCVLVSWCWMWFWCWIVSWMWKWI
      WMVSWIWLVRAVPVQVPUHUIZUJRUKUMRWIWMVSWDWNUNUORUPUQVPVQDVMWHURVCUSVLATZVNTV
      OWBLVLDTWOUTADVAVBDVMVDBCAVNVEVFVGVOVLVNDEDVMVHAVNDVIVJVK $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.
    $( Restriction of a class abstraction of ordered pairs.  (Contributed by
       NM, 24-Aug-2007.) $)
    resopab2 $p |- ( A C_ B -> ( { <. x , y >. | ( x e. B /\ ph ) } |` A ) =
                  { <. x , y >. | ( x e. A /\ ph ) } ) $=
      ( wss cv wcel wa copab cres resopab pm4.71d anbi1d anass syl6rbb opabbidv
      ssel syl5eq ) DEFZBGZEHZAIZBCJDKUADHZUCIZBCJUDAIZBCJUCBCDLTUEUFBCTUFUDUBI
      ZAIUETUDUGATUDUBDEUARMNUDUBAOPQS $.

    $( Restriction of the mapping operation.  (Contributed by Mario Carneiro,
       15-Jul-2013.) $)
    resmpt $p |- ( B C_ A -> ( ( x e. A |-> C ) |` B ) = ( x e. B |-> C ) ) $=
      ( vy wss cv wcel wceq wa copab cres cmpt resopab2 df-mpt reseq1i 3eqtr4g
      ) CBFAGZBHEGDIZJAEKZCLRCHSJAEKABDMZCLACDMSAECBNUATCAEBDOPAECDOQ $.

    $( Unconditional restriction of the mapping operation.  (Contributed by
       Stefan O'Rear, 24-Jan-2015.)  (Proof shortened by Mario Carneiro,
       22-Mar-2015.) $)
    resmpt3 $p |- ( ( x e. A |-> C ) |` B ) = ( x e. ( A i^i B ) |-> C ) $=
      ( cmpt cres cin resres wss wceq ssid resmpt ax-mp reseq1i inss1 3eqtr3i )
      ABDEZBFZCFQBCGZFZQCFASDEZQBCHRQCBBIRQJBKABBDLMNSBITUAJBCOABSDLMP $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    resmptf.a $e |- F/_ x A $.
    resmptf.b $e |- F/_ x B $.
    $( Restriction of the mapping operation.  (Contributed by Thierry Arnoux,
       28-Mar-2017.) $)
    resmptf $p |- ( B C_ A -> ( ( x e. A |-> C ) |` B ) = ( x e. B |-> C ) ) $=
      ( vy wss cv cmpt cres resmpt nfcv nfcsb1v csbeq1a cbvmptf reseq1i 3eqtr4g
      csb ) CBHGBAGIZDSZJZCKGCUAJABDJZCKACDJGBCUALUCUBCAGBDUAEGBMGDMZATDNZATDOZ
      PQAGCDUAFGCMUDUEUFPR $.
  $}

  ${
    $d A x $.  $d B x $.
    resmptd.b $e |- ( ph -> B C_ A ) $.
    $( Restriction of the mapping operation, deduction form.  (Contributed by
       Glauco Siliprandi, 11-Dec-2019.) $)
    resmptd $p |- ( ph -> ( ( x e. A |-> C ) |` B ) = ( x e. B |-> C ) ) $=
      ( wss cmpt cres wceq resmpt syl ) ADCGBCEHDIBDEHJFBCDEKL $.
  $}

  ${
    $d w x y z A $.  $d w x y z R $.
    $( Alternate definition of the restriction operation.  (Contributed by
       Mario Carneiro, 5-Nov-2013.) $)
    dfres2 $p |- ( R |` A ) = { <. x , y >. | ( x e. A /\ x R y ) } $=
      ( vz vw cres cv wbr wa copab relres relopab cop vex brres df-br ancom weq
      wcel 3bitr3i eleq1 breq1 anbi12d breq2 anbi2d opelopab bitr4i eqrelriiv )
      EFDCGZAHZCTZUKBHZDIZJZABKZDCLUOABMEHZFHZNZUJTZUQCTZUQURDIZJZUSUPTUQURUJIV
      BVAJUTVCUQURDCFOZPUQURUJQVBVARUAUOVAUQUMDIZJVCABUQUREOVDAESULVAUNVEUKUQCU
      BUKUQUMDUCUDBFSVEVBVAUMURUQDUEUFUGUHUI $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Sufficient condition for inclusion in map-to notation.  (Contributed by
       Glauco Siliprandi, 17-Aug-2020.) $)
    mptss $p |- ( A C_ B -> ( x e. A |-> C ) C_ ( x e. B |-> C ) ) $=
      ( wss cmpt cres resmpt resss syl6eqssr ) BCEABDFACDFZBGKACBDHKBIJ $.
  $}

  ${
    $d A x y $.
    $( The restricted identity expressed with the class builder.  (Contributed
       by FL, 25-Apr-2012.) $)
    opabresid $p |- { <. x , y >. | ( x e. A /\ y = x ) } = ( _I |` A ) $=
      ( weq copab cres cv wcel cid resopab equcom opabbii eqtr4i reseq1i eqtr3i
      wa dfid3 ) BADZABEZCFAGCHRPABEICFRABCJSICSABDZABEIRTABBAKLABQMNO $.
  $}

  ${
    $d A x y $.
    $( The restricted identity expressed with the "maps to" notation.
       (Contributed by FL, 25-Apr-2012.) $)
    mptresid $p |- ( x e. A |-> x ) = ( _I |` A ) $=
      ( vy cv cmpt wcel weq wa copab cid cres df-mpt opabresid eqtri ) ABADZEOB
      FCAGHACIJBKACBOLACBMN $.
  $}

  $( The domain of a restricted identity function.  (Contributed by NM,
     27-Aug-2004.) $)
  dmresi $p |- dom ( _I |` A ) = A $=
    ( cid cdm wss cres wceq cvv ssv dmi sseqtr4i ssdmres mpbi ) ABCZDBAECAFAGMA
    HIJABKL $.

  ${
    $d A x y $.
    $( Restriction of the identity to a singleton.  (Contributed by FL,
       2-Aug-2009.)  (Proof shortened by JJ, 25-Aug-2021.) $)
    restidsing $p |- ( _I |` { A } ) = ( { A } X. { A } ) $=
      ( vx vy cid csn cres cxp relres relxp cv cop wcel wa wceq wbr anbi12i weq
      velsn vex ideq ancom syl6bb pm5.32i 3bitri anbi1i 3bitr2ri opelres opelxp
      eqeq1 eqcom df-br 3bitr4i eqrelriiv ) BCDAEZFZUNUNGZDUNHUNUNIBJZCJZKZDLZU
      QUNLZMZVAURUNLZMZUSUOLUSUPLVDUQANZURANZMZUQURDOZVAMZVBVAVEVCVFBARZCARPVIB
      CQZVEMVEVKMVGVHVKVAVEUQURCSZTVJPVKVEUAVEVKVFVEVKAURNVFUQAURUIAURUJUBUCUDV
      HUTVAUQURDUKUEUFUQURDUNVLUGUQURUNUNUHULUM $.

    $( Obsolete proof of ~ restidsing as of 25-Aug-2021.  (Contributed by FL,
       2-Aug-2009.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    restidsingOLD $p |- ( _I |` { A } ) = ( { A } X. { A } ) $=
      ( vx vy cid csn cres cxp relres cv wcel wa wceq velsn wi cvv ex imp bitri
      jca sylbi relxp cop wbr df-br bicomi anbi1i simpr vex ideqg ax-mp syl6ibr
      biimpd eqtr2 syl5bi eqtr3 equcom sylibr com12 simpl impbii opelres opelxp
      syl ideq 3bitr4i eqrelriiv ) BCDAEZFZVGVGGZDVGHVGVGUABIZCIZUBZDJZVJVGJZKZ
      VNVKVGJZKZVLVHJVLVIJVOVJVKDUCZVNKZVQVMVRVNVRVMVJVKDUDUEUFVSVQVSVNVPVRVNUG
      VRVNVPVNVJALZVRVPBAMZVRVJVKLZVTVPNVKOJZVRWBNCUHZWCVRWBVJVKOUIULUJWBVTVKAL
      ZVPWBVTWEVJVKAUMPCAMZUKVCUNQSVQVRVNVNVPVRVNVTVPVRNWAVPVTVRVPWEVTVRNWFWEVT
      VRWEVTKVKVJLZVRVKVJAUOVRWBWGVJVKWDVDBCUPRUQPTURTQVNVPUSSUTRVJVKDVGWDVAVJV
      KVGVGVBVEVF $.
  $}

  $( Obsolete as of 19-Feb-2022.  Use ~ dfrel3 instead.  (Contributed by NM,
     16-Mar-2004.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  residOLD $p |- ( Rel A -> ( A |` _V ) = A ) $=
    ( wrel cdm cvv wss cres wceq ssv relssres mpan2 ) ABACZDEADFAGKHADIJ $.

  $( Equality theorem for image.  (Contributed by NM, 14-Aug-1994.) $)
  imaeq1 $p |- ( A = B -> ( A " C ) = ( B " C ) ) $=
    ( wceq cres crn cima reseq1 rneqd df-ima 3eqtr4g ) ABDZACEZFBCEZFACGBCGLMNA
    BCHIACJBCJK $.

  $( Equality theorem for image.  (Contributed by NM, 14-Aug-1994.) $)
  imaeq2 $p |- ( A = B -> ( C " A ) = ( C " B ) ) $=
    ( wceq cres crn cima reseq2 rneqd df-ima 3eqtr4g ) ABDZCAEZFCBEZFCAGCBGLMNA
    BCHICAJCBJK $.

  ${
    imaeq1i.1 $e |- A = B $.
    $( Equality theorem for image.  (Contributed by NM, 21-Dec-2008.) $)
    imaeq1i $p |- ( A " C ) = ( B " C ) $=
      ( wceq cima imaeq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality theorem for image.  (Contributed by NM, 21-Dec-2008.) $)
    imaeq2i $p |- ( C " A ) = ( C " B ) $=
      ( wceq cima imaeq2 ax-mp ) ABECAFCBFEDABCGH $.
  $}

  ${
    imaeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for image.  (Contributed by FL, 15-Dec-2006.) $)
    imaeq1d $p |- ( ph -> ( A " C ) = ( B " C ) ) $=
      ( wceq cima imaeq1 syl ) ABCFBDGCDGFEBCDHI $.

    $( Equality theorem for image.  (Contributed by FL, 15-Dec-2006.) $)
    imaeq2d $p |- ( ph -> ( C " A ) = ( C " B ) ) $=
      ( wceq cima imaeq2 syl ) ABCFDBGDCGFEBCDHI $.

    imaeq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality theorem for image.  (Contributed by Mario Carneiro,
       4-Dec-2016.) $)
    imaeq12d $p |- ( ph -> ( A " C ) = ( B " D ) ) $=
      ( cima imaeq1d imaeq2d eqtrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Alternate definition of image.  Compare definition (d) of [Enderton]
       p. 44.  (Contributed by NM, 19-Apr-2004.)  (Proof shortened by Andrew
       Salmon, 27-Aug-2011.) $)
    dfima2 $p |- ( A " B ) = { y | E. x e. B x A y } $=
      ( cima cres crn cv wbr wex cab wrex df-ima dfrn2 wa vex brres ancom bitri
      wcel exbii df-rex bitr4i abbii 3eqtri ) CDECDFZGAHZBHZUFIZAJZBKUGUHCIZADL
      ZBKCDMABUFNUJULBUJUGDTZUKOZAJULUIUNAUIUKUMOUNUGUHCDBPQUKUMRSUAUKADUBUCUDU
      E $.

    $( Alternate definition of image.  Compare definition (d) of [Enderton]
       p. 44.  (Contributed by NM, 14-Aug-1994.)  (Proof shortened by Andrew
       Salmon, 27-Aug-2011.) $)
    dfima3 $p |- ( A " B ) = { y | E. x ( x e. B /\ <. x , y >. e. A ) } $=
      ( cima cv wbr wrex cab wcel cop wa dfima2 df-br rexbii df-rex bitri abbii
      wex eqtri ) CDEAFZBFZCGZADHZBIUADJUAUBKCJZLASZBIABCDMUDUFBUDUEADHUFUCUEAD
      UAUBCNOUEADPQRT $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Membership in an image.  Theorem 34 of [Suppes] p. 65.  (Contributed by
       NM, 20-Jan-2007.) $)
    elimag $p |- ( A e. V -> ( A e. ( B " C ) <-> E. x e. C x B A ) ) $=
      ( vy cv wbr wrex cima wceq breq2 rexbidv dfima2 elab2g ) AGZFGZCHZADIPBCH
      ZADIFBCDJEQBKRSADQBPCLMAFCDNO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    elima.1 $e |- A e. _V $.
    $( Membership in an image.  Theorem 34 of [Suppes] p. 65.  (Contributed by
       NM, 19-Apr-2004.) $)
    elima $p |- ( A e. ( B " C ) <-> E. x e. C x B A ) $=
      ( cvv wcel cima cv wbr wrex wb elimag ax-mp ) BFGBCDHGAIBCJADKLEABCDFMN
      $.

    $( Membership in an image.  Theorem 34 of [Suppes] p. 65.  (Contributed by
       NM, 11-Aug-2004.) $)
    elima2 $p |- ( A e. ( B " C ) <-> E. x ( x e. C /\ x B A ) ) $=
      ( cima wcel cv wbr wrex wa wex elima df-rex bitri ) BCDFGAHZBCIZADJPDGQKA
      LABCDEMQADNO $.

    $( Membership in an image.  Theorem 34 of [Suppes] p. 65.  (Contributed by
       NM, 14-Aug-1994.) $)
    elima3 $p |- ( A e. ( B " C ) <-> E. x ( x e. C /\ <. x , A >. e. B ) ) $=
      ( cima wcel cv wbr wa wex cop elima2 df-br anbi2i exbii bitri ) BCDFGAHZD
      GZRBCIZJZAKSRBLCGZJZAKABCDEMUAUCATUBSRBCNOPQ $.
  $}

  ${
    nfima.1 $e |- F/_ x A $.
    nfima.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for image.  (Contributed by NM,
       30-Dec-1996.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    nfima $p |- F/_ x ( A " B ) $=
      ( cima cres crn df-ima nfres nfrn nfcxfr ) ABCFBCGZHBCIAMABCDEJKL $.
  $}

  ${
    $d x z $.  $d B z $.  $d A z $.
    nfimad.2 $e |- ( ph -> F/_ x A ) $.
    nfimad.3 $e |- ( ph -> F/_ x B ) $.
    $( Deduction version of bound-variable hypothesis builder ~ nfima .
       (Contributed by FL, 15-Dec-2006.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    nfimad $p |- ( ph -> F/_ x ( A " B ) ) $=
      ( vz cv wcel wal cab cima wnfc nfaba1 nfima wb wa nfnfc1 nfan abidnf
      imaeq1d imaeq2d sylan9eq nfceqdf syl2anc mpbii ) ABGHZCIZBJGKZUGDIZBJGKZL
      ZMZBCDLZMZBUIUKUHBGNUJBGNOABCMZBDMZUMUOPEFUPUQQBULUNUPUQBBCRBDRSUPUQULCUK
      LUNUPUICUKBGCTUAUQUKDCBGDTUBUCUDUEUF $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The image of the domain of a class is the range of the class.
       (Contributed by NM, 14-Aug-1994.) $)
    imadmrn $p |- ( A " dom A ) = ran A $=
      ( vx vy cv cdm wcel cop wa wex cab cima crn vex opeldm ancom bitr2i exbii
      pm4.71i abbii dfima3 dfrn3 3eqtr4i ) BDZAEZFZUCCDZGAFZHZBIZCJUGBIZCJAUDKA
      LUIUJCUHUGBUGUGUEHUHUGUEUCUFABMCMNRUGUEOPQSBCAUDTBCAUAUB $.

    $( The image of a class is a subset of its range.  Theorem 3.16(xi) of
       [Monk1] p. 39.  (Contributed by NM, 31-Mar-1995.) $)
    imassrn $p |- ( A " B ) C_ ran A $=
      ( vx vy cv wcel cop wex cab cima crn exsimpr ss2abi dfima3 dfrn3 3sstr4i
      wa ) CEZBFZRDEGAFZQCHZDITCHZDIABJAKUAUBDSTCLMCDABNCDAOP $.
  $}

  ${
    $d x y A $.
    $( Image under the identity relation.  Theorem 3.16(viii) of [Monk1] p. 38.
       (Contributed by NM, 30-Apr-1998.) $)
    imai $p |- ( _I " A ) = A $=
      ( vx vy cid cima cv wcel cop wex cab dfima3 weq wbr df-br vex ideq bitr3i
      wa anbi2i bitri ancom exbii eleq1 equsexvw abbii abid2 3eqtri ) DAEBFZAGZ
      UHCFZHDGZRZBIZCJUJAGZCJABCDAKUMUNCUMBCLZUIRZBIUNULUPBULUIUORUPUKUOUIUKUHU
      JDMUOUHUJDNUHUJCOPQSUIUOUATUBUIUNBCUHUJAUCUDTUECAUFUG $.
  $}

  $( The range of the restricted identity function.  (Contributed by NM,
     27-Aug-2004.) $)
  rnresi $p |- ran ( _I |` A ) = A $=
    ( cid cima cres crn df-ima imai eqtr3i ) BACBADEABAFAGH $.

  $( The image of a restriction of the identity function.  (Contributed by FL,
     31-Dec-2006.) $)
  resiima $p |- ( B C_ A -> ( ( _I |` A ) " B ) = B ) $=
    ( wss cid cres cima crn wceq df-ima a1i resabs1 rneqd rnresi 3eqtrd ) BACZD
    AEZBFZPBEZGZDBEZGZBQSHOPBIJORTDBAKLUABHOBMJN $.

  $( Image of the empty set.  Theorem 3.16(ii) of [Monk1] p. 38.  (Contributed
     by NM, 20-May-1998.) $)
  ima0 $p |- ( A " (/) ) = (/) $=
    ( c0 cima cres crn df-ima res0 rneqi rn0 3eqtri ) ABCABDZEBEBABFKBAGHIJ $.

  $( Image under the empty relation.  (Contributed by FL, 11-Jan-2007.) $)
  0ima $p |- ( (/) " A ) = (/) $=
    ( c0 cima crn imassrn rn0 sseqtri 0ss eqssi ) BACZBJBDBBAEFGJHI $.

  ${
    $d A y $.  $d B y $.  $d x y $.  $d F y $.
    $( Move class substitution in and out of the image of a function.
       (Contributed by FL, 15-Dec-2006.)  (Revised by NM, 20-Aug-2018.) $)
    csbima12 $p |- [_ A / x ]_ ( F " B ) = ( [_ A / x ]_ F " [_ A / x ]_ B ) $=
      ( vy cvv wcel cima csb wceq csbeq1 imaeq12d eqeq12d nfcsb1v nfima csbeq1a
      cv vex c0 csbprc weq csbief vtoclg wn imaeq2d ima0 syl6req eqtrd pm2.61i
      ) BFGZABDCHZIZABDIZABCIZHZJZAEQZUKIZAUQDIZAUQCIZHZJUPEBFUQBJZURULVAUOAUQB
      UKKVBUSUMUTUNAUQBDKAUQBCKLMAUQUKVAERAUSUTAUQDNAUQCNOAEUADUSCUTAUQDPAUQCPL
      UBUCUJUDZULSUOABUKTVCUOUMSHSVCUNSUMABCTUEUMUFUGUHUI $.
  $}

  $( A class whose image under another is empty is disjoint with the other's
     domain.  (Contributed by FL, 24-Jan-2007.) $)
  imadisj $p |- ( ( A " B ) = (/) <-> ( dom A i^i B ) = (/) ) $=
    ( cima wceq cres crn cdm cin df-ima eqeq1i dm0rn0 dmres incom eqtri 3bitr2i
    c0 ) ABCZPDABEZFZPDRGZPDAGZBHZPDQSPABIJRKTUBPTBUAHUBABLBUAMNJO $.

  $( A preimage under any class is included in the domain of the class.
     (Contributed by FL, 29-Jan-2007.) $)
  cnvimass $p |- ( `' A " B ) C_ dom A $=
    ( ccnv cima crn cdm imassrn dfdm4 sseqtr4i ) ACZBDJEAFJBGAHI $.

  $( The preimage of the range of a class is the domain of the class.
     (Contributed by Jeff Hankins, 15-Jul-2009.) $)
  cnvimarndm $p |- ( `' A " ran A ) = dom A $=
    ( ccnv cdm cima crn imadmrn df-rn imaeq2i dfdm4 3eqtr4i ) ABZKCZDKEKAEZDACK
    FMLKAGHAIJ $.

  ${
    $d x y A $.  $d x B $.  $d x y R $.
    $( The image of a singleton.  (Contributed by NM, 8-May-2005.) $)
    imasng $p |- ( A e. B -> ( R " { A } ) = { y | A R y } ) $=
      ( vx wcel cvv csn cima wbr cab wceq elex wrex dfima2 rexsng abbidv syl5eq
      cv breq1 syl ) BCFBGFZDBHZIZBASZDJZAKZLBCMUBUDESZUEDJZEUCNZAKUGEADUCOUBUJ
      UFAUIUFEBGUHBUEDTPQRUA $.

    $( The image of a singleton.  (Contributed by NM, 20-May-1998.) $)
    relimasn $p |- ( Rel R -> ( R " { A } ) = { y | A R y } ) $=
      ( wrel cvv wcel csn cima cv wbr cab wceq wn wa c0 snprc imaeq2 sylbi ima0
      syl6eq adantl wex brrelex stoic1a nexdv necon1bbii sylib eqtr4d ex imasng
      abn0 pm2.61d2 ) CDZBEFZCBGZHZBAIZCJZAKZLZUMUNMZUTUMVANZUPOUSVAUPOLUMVAUPC
      OHZOVAUOOLUPVCLBPUOOCQRCSTUAVBURAUBZMUSOLVBURAUMURUNBUQCUCUDUEVDUSOURAUKU
      FUGUHUIABECUJUL $.

    $( Elementhood in the image of a singleton.  (Contributed by Mario
       Carneiro, 3-Nov-2015.) $)
    elrelimasn $p |- ( Rel R -> ( B e. ( R " { A } ) <-> A R B ) ) $=
      ( vx wrel csn cima cv wbr cab relimasn eleq2d cvv wi wb brrelex2 ex breq2
      wcel elab3g syl bitrd ) CEZBCAFGZSBADHZCIZDJZSZABCIZUCUDUGBDACKLUCUIBMSZN
      UHUIOUCUIUJABCPQUFUIDBMUEBACRTUAUB $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    elimasn.1 $e |- B e. _V $.
    elimasn.2 $e |- C e. _V $.
    $( Membership in an image of a singleton.  (Contributed by NM,
       15-Mar-2004.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    elimasn $p |- ( C e. ( A " { B } ) <-> <. B , C >. e. A ) $=
      ( vx csn cima wcel wbr cop cv breq2 cvv cab wceq imasng ax-mp elab2 df-br
      bitri ) CABGHZIBCAJZBCKAIBFLZAJZUCFCUBEUDCBAMBNIUBUEFOPDFBNAQRSBCATUA $.
  $}

  ${
    $d A y z $.  $d B y z $.  $d C y z $.
    $( Membership in an image of a singleton.  (Contributed by Raph Levien,
       21-Oct-2006.) $)
    elimasng $p |- ( ( B e. V /\ C e. W ) ->
                   ( C e. ( A " { B } ) <-> <. B , C >. e. A ) ) $=
      ( vz vy cv csn cima wcel cop wceq sneq imaeq2d eleq2d eleq1d bibi12d vex
      wb opeq1 eleq1 opeq2 elimasn vtocl2g ) FHZAGHZIZJZKZUGUFLZAKZTUFABIZJZKZB
      UFLZAKZTCUNKZBCLZAKZTGFBCDEUGBMZUJUOULUQVAUIUNUFVAUHUMAUGBNOPVAUKUPAUGBUF
      UAQRUFCMZUOURUQUTUFCUNUBVBUPUSAUFCBUCQRAUGUFGSFSUDUE $.
  $}

  $( Membership in an image of a singleton.  (Contributed by NM,
     5-Aug-2010.) $)
  elimasni $p |- ( C e. ( A " { B } ) -> B A C ) $=
    ( cvv wcel wa csn cima wbr wn c0 noel wceq snprc biimpi imaeq2d ima0 syl6eq
    eleq2d mtbiri con4i elex jca cop elimasng df-br syl6bbr biimpd mpcom ) BDEZ
    CDEZFZCABGZHZEZBCAIZUOUJUKUJUOUJJZUOCKECLUQUNKCUQUNAKHKUQUMKAUQUMKMBNOPAQRS
    TUACUNUBUCULUOUPULUOBCUDAEUPABCDDUEBCAUFUGUHUI $.

  ${
    $d y F $.  $d x y $.
    $( Two ways to express the class of unique-valued arguments of ` F ` ,
       which is the same as the domain of ` F ` whenever ` F ` is a function.
       The left-hand side of the equality is from Definition 10.2 of [Quine]
       p. 65.  Quine uses the notation "arg ` F ` " for this class (for which
       we have no separate notation).  Observe the resemblance to the alternate
       definition ~ dffv4 of function value, which is based on the idea in
       Quine's definition.  (Contributed by NM, 8-May-2005.) $)
    args $p |- { x | E. y ( F " { x } ) = { y } } = { x | E! y x F y } $=
      ( cv csn cima wceq wex wbr weu cab cvv wcel vex imasng ax-mp eqeq1i exbii
      euabsn bitr4i abbii ) CADZEFZBDZEZGZBHZUBUDCIZBJZAUGUHBKZUEGZBHUIUFUKBUCU
      JUEUBLMUCUJGANBUBLCOPQRUHBSTUA $.
  $}

  ${
    eliniseg.1 $e |- C e. _V $.
    $( Membership in an initial segment.  The idiom ` ( ``' A " { B } ) ` ,
       meaning ` { x | x A B } ` , is used to specify an initial segment in
       (for example) Definition 6.21 of [TakeutiZaring] p. 30.  (Contributed by
       NM, 28-Apr-2004.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    eliniseg $p |- ( B e. V -> ( C e. ( `' A " { B } ) <-> C A B ) ) $=
      ( wcel cvv ccnv csn cima wbr wb wa cop elimasng df-br syl6bbr bitrd mpan2
      brcnvg ) BDFZCGFZCAHZBIJFZCBAKZLEUAUBMZUDBCUCKZUEUFUDBCNUCFUGUCBCDGOBCUCP
      QBCDGATRS $.
  $}

  ${
    $d A x $.
    epini.1 $e |- A e. _V $.
    $( Any set is equal to its preimage under the converse epsilon relation.
       (Contributed by Mario Carneiro, 9-Mar-2013.) $)
    epini $p |- ( `' _E " { A } ) = A $=
      ( vx cep ccnv csn cima cv wbr cvv wb vex eliniseg ax-mp epelc bitri eqriv
      wcel ) CDEAFGZACHZSRZTADIZTARAJRUAUBKBDATJCLMNTABOPQ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( An idiom that signifies an initial segment of an ordering, used, for
       example, in Definition 6.21 of [TakeutiZaring] p. 30.  (Contributed by
       NM, 28-Apr-2004.) $)
    iniseg $p |- ( B e. V -> ( `' A " { B } ) = { x | x A B } ) $=
      ( wcel cvv ccnv csn cima cv wbr cab wceq elex vex eliniseg abbi2dv syl )
      CDECFEZBGCHIZAJZCBKZALMCDNSUBATBCUAFAOPQR $.
  $}

  ${
    $d F a b $.  $d A a b $.
    $( Nonemptiness of an initial segment in terms of range.  (Contributed by
       Stefan O'Rear, 18-Jan-2015.) $)
    inisegn0 $p |- ( A e. ran F <-> ( `' F " { A } ) =/= (/) ) $=
      ( va vb crn wcel cvv ccnv csn cima c0 wne elex wn wceq snprc imaeq2d ima0
      biimpi cv syl6eq necon1ai eleq1 sneq neeq1d wbr cab wex abn0 iniseg ax-mp
      vex neeq1i elrn 3bitr4ri vtoclbg pm5.21nii ) ABEZFZAGFZBHZAIZJZKLZAURMUTV
      CKUTNZVCVAKJKVEVBKVAVEVBKOAPSQVARUAUBCTZURFZVAVFIZJZKLZUSVDCAGVFAURUCVFAO
      ZVIVCKVKVHVBVAVFAUDQUEDTVFBUFZDUGZKLVLDUHVJVGVLDUIVIVMKVFGFVIVMOCULZDBVFG
      UJUKUMDVFBVNUNUOUPUQ $.
  $}

  ${
    $d x y z A $.  $d x y z R $.
    $( Alternate definition of well-founded relation.  Definition 6.21 of
       [TakeutiZaring] p. 30.  (Contributed by NM, 23-Apr-2004.)  (Revised by
       Mario Carneiro, 23-Jun-2015.) $)
    dffr3 $p |- ( R Fr A <-> A. x ( ( x C_ A /\ x =/= (/) ) ->
                E. y e. x ( x i^i ( `' R " { y } ) ) = (/) ) ) $=
      ( vz wfr cv wss c0 wne wa wbr crab wceq wrex wi wal ccnv cin cvv csn cima
      dffr2 cab wcel vex iniseg ax-mp ineq2i dfrab3 eqtr4i eqeq1i rexbii imbi2i
      albii bitr4i ) CDFAGZCHUQIJKZEGBGZDLZEUQMZINZBUQOZPZAQURUQDRUSUAUBZSZINZB
      UQOZPZAQABECDUCVIVDAVHVCURVGVBBUQVFVAIVFUQUTEUDZSVAVEVJUQUSTUEVEVJNBUFEDU
      STUGUHUIUTEUQUJUKULUMUNUOUP $.
  $}

  ${
    $d x y A $.  $d x y R $.
    $( Alternate definition of set-like relation.  (Contributed by Mario
       Carneiro, 23-Jun-2015.) $)
    dfse2 $p |- ( R Se A <-> A. x e. A ( A i^i ( `' R " { x } ) ) e. _V ) $=
      ( vy wse cv wbr crab cvv wcel wral ccnv csn cima cin df-se cab dfrab3 vex
      wceq iniseg ax-mp ineq2i eqtr4i eleq1i ralbii bitri ) BCEDFAFZCGZDBHZIJZA
      BKBCLUHMNZOZIJZABKADBCPUKUNABUJUMIUJBUIDQZOUMUIDBRULUOBUHIJULUOTASDCUHIUA
      UBUCUDUEUFUG $.
  $}

  $( Subset theorem for image.  (Contributed by NM, 16-Mar-2004.) $)
  imass1 $p |- ( A C_ B -> ( A " C ) C_ ( B " C ) ) $=
    ( wss cres crn cima ssres rnss syl df-ima 3sstr4g ) ABDZACEZFZBCEZFZACGBCGM
    NPDOQDABCHNPIJACKBCKL $.

  $( Subset theorem for image.  Exercise 22(a) of [Enderton] p. 53.
     (Contributed by NM, 22-Mar-1998.) $)
  imass2 $p |- ( A C_ B -> ( C " A ) C_ ( C " B ) ) $=
    ( wss cres crn cima ssres2 rnss syl df-ima 3sstr4g ) ABDZCAEZFZCBEZFZCAGCBG
    MNPDOQDABCHNPIJCAKCBKL $.

  $( The image of a singleton outside the domain is empty.  (Contributed by NM,
     22-May-1998.)  (Proof shortened by OpenAI, 3-Jul-2020.) $)
  ndmima $p |- ( -. A e. dom B -> ( B " { A } ) = (/) ) $=
    ( csn cima c0 wceq cdm cin wcel wn imadisj disjsn sylbbr ) BACZDEFBGZNHEFAO
    IJBNKOALM $.

  ${
    $d x y A $.
    $( A converse is a relation.  Theorem 12 of [Suppes] p. 62.  (Contributed
       by NM, 29-Oct-1996.) $)
    relcnv $p |- Rel `' A $=
      ( vy vx cv wbr ccnv df-cnv relopabi ) BDCDAECBAFCBAGH $.
  $}

  $( When ` R ` is a relation, the sethood assumptions on ~ brcnv can be
     omitted.  (Contributed by Mario Carneiro, 28-Apr-2015.) $)
  relbrcnvg $p |- ( Rel R -> ( A `' R B <-> B R A ) ) $=
    ( wrel cvv wcel wa ccnv wbr wi relcnv brrelex12 mpan ancomd ex wb pm5.21ndd
    a1i brcnvg ) CDZAEFZBEFZGZABCHZIZBACIZUEUCJTUDDUEUCCKABUDLMRTUFUCTUFGUBUABA
    CLNOUCUEUFPJTABEECSRQ $.

  $( Eliminate the class existence constraint in ~ eliniseg .  (Contributed by
     Mario Carneiro, 5-Dec-2014.)  (Revised by Mario Carneiro, 17-Nov-2015.) $)
  eliniseg2 $p |- ( Rel A -> ( C e. ( `' A " { B } ) <-> C A B ) ) $=
    ( ccnv csn cima wcel wbr wrel wb relcnv elrelimasn ax-mp relbrcnvg syl5bb )
    CADZBEFGZBCPHZAICBAHPIQRJAKBCPLMBCANO $.

  ${
    relbrcnv.1 $e |- Rel R $.
    $( When ` R ` is a relation, the sethood assumptions on ~ brcnv can be
       omitted.  (Contributed by Mario Carneiro, 28-Apr-2015.) $)
    relbrcnv $p |- ( A `' R B <-> B R A ) $=
      ( wrel ccnv wbr wb relbrcnvg ax-mp ) CEABCFGBACGHDABCIJ $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( Two ways of saying that the composition of two relations is included in
       a third relation.  See its special instance ~ cotr for the main
       application.  (Contributed by NM, 27-Dec-1996.)  (Proof shortened by
       Andrew Salmon, 27-Aug-2011.)  Generalized from its special instance
       ~ cotr .  (Revised by Richard Penner, 24-Dec-2019.) $)
    cotrg $p |-
      ( ( A o. B ) C_ C <-> A. x A. y A. z ( ( x B y /\ y A z ) -> x C z ) ) $=
      ( ccom wss cv cop wcel wi wal wbr wa wrel wb vex albii bitri wex relopabi
      df-co ssrel ax-mp opelco df-br bicomi imbi12i 19.23v bitr4i alcom ) DEGZF
      HZAIZCIZJZUMKZUQFKZLZCMZAMZUOBIZENVCUPDNOZUOUPFNZLZCMBMZAMUMPUNVBQVDBUAZA
      CUMACBDEUCUBACUMFUDUEVAVGAVAVFBMZCMVGUTVICUTVHVELVIURVHUSVEBUOUPDEARCRUFV
      EUSUOUPFUGUHUIVDVEBUJUKSVFCBULTST $.
  $}

  ${
    $d x y z R $.
    $( Two ways of saying a relation is transitive.  Definition of transitivity
       in [Schechter] p. 51.  Special instance of ~ cotrg .  (Contributed by
       NM, 27-Dec-1996.) $)
    cotr $p |-
      ( ( R o. R ) C_ R <-> A. x A. y A. z ( ( x R y /\ y R z ) -> x R z ) ) $=
      ( cotrg ) ABCDDDE $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z R $.  $d x y z S $.  $d z V $.
    $d z W $.
    $( Two ways to state a relation is reflexive.  Adapted from Tarski.
       (Contributed by FL, 15-Jan-2012.)  (Revised by NM, 30-Mar-2016.) $)
    issref $p |- ( ( _I |` A ) C_ R <-> A. x e. A x R x ) $=
      ( vy vz cv wbr wral wcel wi wal cop cid wss df-ral cvv vex opelresi ax-mp
      sylbi cres wb df-br bicomi imbi12i albii ralidm bitri cxp pm2.27 opelresg
      ralv wa weq ideq opeq2 eleq1d biimpcd syl6bir pm2.43i com3r sylbir syl6bi
      syl6 imp ralrimiv sps ralimi wceq eleq1 imbi12d sylibr wrel relres df-rel
      ralxp mpbi sseli ancri pm3.31 syl5 alimi syl ssel alrimiv impbii 3bitr2ri
      dfss2 ) AFZWICGZABHWIBIZWJJZAKWIWILZMBUAZIZWMCIZJZAKZWNCNZWJABOWQWLAWOWKW
      PWJWIPIZWOWKUBAQZWIBPRSWJWPWIWICUCUDUEUFWRWSWRDFZWNIZXBCIZJZDKZWSWRWQAPHZ
      APHZXFXHXGWRWQAPUGWQAULUHXHXEDPPUIZHZXFXHWIEFZLZWNIZXLCIZJZEPHZAPHXJXGXPA
      PXGWTWQJZAKXPWQAPOXQXPAWTXQXPJXAWTXQWQXPWTWQUJWQXOEPXKPIZXMWQXNXRXMXLMIZW
      KUMWQXNJZWIXKMBPUKXSWKXTXSWIXKMGZWKXTJZWIXKMUCYAAEUNZYBWIXKEQUOWKWQYCXNWK
      WQYCXNJZJZWKWKWOYEWIBBRWOWQWPYDWOWPUJYCWPXNYCWMXLCWIXKWIUPUQURVDUSUTVATVB
      VEVCVAVFVDSVGTVHXEXODAEPPXBXLVIXCXMXDXNXBXLWNVJXBXLCVJVKVPVLXJXBXIIZXEJZD
      KXFXEDXIOYGXEDXCYFXCUMYGXDXCYFWNXIXBWNVMWNXINMBVNWNVOVQVRVSYFXCXDVTWAWBTW
      CVBDWNCWHVLWSWQAWNCWMWDWEWFWG $.

    $( Two ways of saying a relation is symmetric.  Similar to definition of
       symmetry in [Schechter] p. 51.  (Contributed by NM, 28-Dec-1996.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    cnvsym $p |- ( `' R C_ R <-> A. x A. y ( x R y -> y R x ) ) $=
      ( cv cop ccnv wcel wi wal wss wbr alcom wrel relcnv ssrel ax-mp vex brcnv
      wb df-br bitr3i imbi12i 2albii 3bitr4i ) BDZADZEZCFZGZUGCGZHZAIBIZUKBIAIU
      HCJZUFUECKZUEUFCKZHZBIAIUKBALUHMUMULSCNBAUHCOPUPUKABUNUIUOUJUNUEUFUHKUIUE
      UFCBQAQRUEUFUHTUAUEUFCTUBUCUD $.

    $( Two ways of saying a relation is antisymmetric.  Definition of
       antisymmetry in [Schechter] p. 51.  (Contributed by NM, 9-Sep-2004.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    intasym $p |- ( ( R i^i `' R ) C_ _I <->
                  A. x A. y ( ( x R y /\ y R x ) -> x = y ) ) $=
      ( ccnv cin cid wss cv cop wcel wi wal wbr wa weq wrel wb df-br vex bitr3i
      relcnv relin2 ssrel mp2b elin brcnv anbi12i bitr4i imbi12i 2albii bitri
      ideq ) CCDZEZFGZAHZBHZIZUNJZURFJZKZBLALZUPUQCMZUQUPCMZNZABOZKZBLALUMPUNPU
      OVBQCUACUMUBABUNFUCUDVAVGABUSVEUTVFUSURCJZURUMJZNVEURCUMUEVCVHVDVIUPUQCRV
      DUPUQUMMVIUPUQCASBSZUFUPUQUMRTUGUHUTUPUQFMVFUPUQFRUPUQVJULTUIUJUK $.

    $( Two ways of saying a relation is antisymmetric and reflexive.
       ` U. U. R ` is the field of a relation by ~ relfld .  (Contributed by
       NM, 6-May-2008.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    asymref $p |- ( ( R i^i `' R ) = ( _I |` U. U. R ) <->
       A. x e. U. U. R A. y ( ( x R y /\ y R x ) <-> x = y ) ) $=
      ( cv wcel cid cuni wb wal wbr wa wceq wi df-br bitr3i bitri 3bitr4i albii
      vex wrel cop ccnv cin cres wral opeluu simpld adantr pm4.71ri bibi1i elin
      sylbi brcnv anbi12i bitr4i opelres ideq pm5.32 19.21v relcnv relin2 ax-mp
      anbi2ci bibi12i relres eqrel mp2an df-ral ) ADZBDZUAZCCUBZUCZEZVKFCGGZUDZ
      EZHZBIZAIZVIVOEZVIVJCJZVJVICJZKZVIVJLZHZBIZMZAIVMVPLZWGAVOUEVSWHAVSWAWFMZ
      BIWHVRWJBWDWAWEKZHWAWDKZWKHVRWJWDWLWKWDWAWBWAWCWBWAVJVOEZWBVKCEZWAWMKVIVJ
      CNZVIVJCASZBSZUFULUGUHUIUJVNWDVQWKVNWNVKVLEZKWDVKCVLUKWBWNWCWRWOWCVIVJVLJ
      WRVIVJCWPWQUMVIVJVLNOUNUOVQVKFEZWAKWKVIVJFVOWQUPWSWEWAWSVIVJFJWEVIVJFNVIV
      JWQUQOVCPVDWAWDWEURQRWAWFBUSPRVMTZVPTWIVTHVLTWTCUTCVLVAVBFVOVEABVMVPVFVGW
      GAVOVHQ $.

    $( Two ways of saying a relation is antisymmetric and reflexive.
       (Contributed by NM, 6-May-2008.)  (Proof shortened by Mario Carneiro,
       4-Dec-2016.) $)
    asymref2 $p |- ( ( R i^i `' R ) = ( _I |` U. U. R ) <->
   ( A. x e. U. U. R x R x /\ A. x A. y ( ( x R y /\ y R x ) -> x = y ) ) ) $=
      ( ccnv cin cid cuni wceq cv wbr wa wral wi ralbii albii bitri wcel 3bitri
      wal vex cres asymref albiim r19.26 ancom equcom breq2 breq1 anbi12d anidm
      wb imbi1i syl6bb equsalvw df-ral wn cop df-br opeluu simpld sylbi pm2.24d
      adantr com12 alrimiv id ja ax-1 impbii anbi12i ) CCDEFCGGZUAHAIZBIZCJZVMV
      LCJZKZVLVMHZUKBSZAVKLVPVQMZBSZVQVPMZBSZKZAVKLZVLVLCJZAVKLZVTASZKZABCUBVRW
      CAVKVPVQBUCNWDVTAVKLZWBAVKLZKWJWIKWHVTWBAVKUDWIWJUEWJWFWIWGWBWEAVKWBVMVLH
      ZVPMZBSWEWAWLBVQWKVPABUFULOVPWEBAWKVPWEWEKWEWKVNWEVOWEVMVLVLCUGVMVLVLCUHU
      IWEUJUMUNPNWIVLVKQZVTMZASWGVTAVKUOWNVTAWNVTWMVTVTWMUPZVSBVPWOVQVPWMVQVNWM
      VOVNVLVMUQCQZWMVLVMCURWPWMVMVKQVLVMCATBTUSUTVAVCVBVDVEVTVFVGVTWMVHVIOPVJR
      R $.

    $( Two ways of saying a relation is irreflexive.  Definition of
       irreflexivity in [Schechter] p. 51.  (Contributed by NM, 9-Sep-2004.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    intirr $p |- ( ( R i^i _I ) = (/) <-> A. x -. x R x ) $=
      ( vy cid cin c0 wceq cv cop wcel cvv cdif wi wal wbr wn wss incom 3bitr2i
      df-br eqeq1i disj2 wrel wb reli ssrel ax-mp 3bitri equcom vex wa biantrur
      ideq eldif bitr4i xchnxbir imbi12i 2albii breq2 notbid equsalvw albii
      opex ) BDEZFGZAHZCHZIZDJZVHKBLZJZMZCNANZVGVFGZVFVGBOZPZMZCNZANVFVFBOZPZAN
      VEDBEZFGDVJQZVMVDWAFBDRUADBUBDUCWBVMUDUEACDVJUFUGUHVQVLACVNVIVPVKVNVFVGGV
      FVGDOVICAUIVFVGCUJUMVFVGDTSVHBJZVKVOWCPZVHKJZWDUKVKWEWDVFVGVCULVHKBUNUOVF
      VGBTUPUQURVRVTAVPVTCAVNVOVSVGVFVFBUSUTVAVBS $.

    $( Two ways of saying that two elements have an upper bound.  (Contributed
       by Mario Carneiro, 3-Nov-2015.) $)
    brcodir $p |- ( ( A e. V /\ B e. W ) ->
      ( A ( `' R o. R ) B <-> E. z ( A R z /\ B R z ) ) ) $=
      ( wcel wa ccnv ccom wbr cv wex brcog wb cvv vex brcnvg mpan anbi2d adantl
      exbidv bitrd ) BEGZCFGZHZBCDIZDJKBALZDKZUHCUGKZHZAMUICUHDKZHZAMABCUGDEFNU
      FUKUMAUEUKUMOUDUEUJULUIUHPGUEUJULOAQUHCPFDRSTUAUBUC $.

    $( Two ways of saying a relation is directed.  (Contributed by Mario
       Carneiro, 22-Nov-2013.) $)
    codir $p |- ( ( A X. B ) C_ ( `' R o. R ) <-> A. x e. A A. y e. B
      E. z ( x R z /\ y R z ) ) $=
      ( cv cop cxp wcel ccnv ccom wi wal wa wbr wral cvv wb vex wex wss brcodir
      opelxp df-br mp2an bitr3i imbi12i 2albii wrel relxp ssrel ax-mp 3bitr4i
      r2al ) AGZBGZHZDEIZJZURFKFLZJZMZBNANZUPDJUQEJOZUPCGZFPUQVFFPOCUAZMZBNANUS
      VAUBZVGBEQADQVCVHABUTVEVBVGUPUQDEUDVBUPUQVAPZVGUPUQVAUEUPRJUQRJVJVGSATBTC
      UPUQFRRUCUFUGUHUIUSUJVIVDSDEUKABUSVAULUMVGABDEUOUN $.

    $( A quantifier-free way of expressing the total order predicate.
       (Contributed by Mario Carneiro, 22-Nov-2013.) $)
    qfto $p |- ( ( A X. B ) C_ ( R u. `' R ) <->
                 A. x e. A A. y e. B ( x R y \/ y R x ) ) $=
      ( cv cop cxp wcel ccnv cun wi wal wa wbr wo wss wral opelxp vex brun wrel
      df-br brcnv orbi2i 3bitr3i imbi12i 2albii relxp ssrel ax-mp r2al 3bitr4i
      wb ) AFZBFZGZCDHZIZUQEEJZKZIZLZBMAMZUOCIUPDINZUOUPEOZUPUOEOZPZLZBMAMURVAQ
      ZVHBDRACRVCVIABUSVEVBVHUOUPCDSUOUPVAOVFUOUPUTOZPVBVHUOUPEUTUAUOUPVAUCVKVG
      VFUOUPEATBTUDUEUFUGUHURUBVJVDUNCDUIABURVAUJUKVHABCDULUM $.

    $( A square Cartesian product ` ( A X. A ) ` is a transitive relation.
       (Contributed by FL, 31-Jul-2009.) $)
    xpidtr $p |- ( ( A X. A ) o. ( A X. A ) ) C_ ( A X. A ) $=
      ( vx vy vz cxp ccom wss cv wbr wa wi wal wcel simplbi2com simplbiim com12
      brxp adantr sylbi imp ax-gen gen2 cotr mpbir ) AAEZUEFUEGBHZCHZUEIZUGDHZU
      EIZJUFUIUEIZKZDLZCLBLUMBCULDUHUJUKUHUFAMZUGAMZJUJUKKZUFUGAAQUNUPUOUJUNUKU
      JUOUIAMZUNUKKUGUIAAQUKUNUQUFUIAAQNOPRSTUAUBBCDUEUCUD $.

    $( The intersection of two transitive classes is transitive.  (Contributed
       by FL, 31-Jul-2009.) $)
    trin2 $p |- ( ( ( R o. R ) C_ R /\ ( S o. S ) C_ S )
      -> ( ( R i^i S ) o. ( R i^i S ) ) C_ ( R i^i S ) ) $=
      ( vx vy vz ccom wss wa cv cin wbr wal cotr brin simpr simpl com12 alanimi
      wi sylbi anim12d an4s syl2anb syl6ibr ex imp sylibr ) AAFAGZBBFBGZHCIZDIZ
      ABJZKZUKEIZULKZHZUJUNULKZSZELZDLZCLZULULFULGUHUIVAUHUJUKAKZUKUNAKZHZUJUNA
      KZSZELZDLZCLZUIVASCDEAMUIVIVAUIUJUKBKZUKUNBKZHZUJUNBKZSZELZDLZCLZVIVASCDE
      BMVQVIVAVPVHUTCVOVGUSDVNVFUREVNVFHZUPVEVMHZUQUPVRVSUMVBVJHVCVKHVRVSSZUOUJ
      UKABNUKUNABNVBVCVJVKVTVRVDVLHVSVRVDVEVLVMVNVFOVNVFPUAQUBUCQUJUNABNUDRRRUE
      TQTUFCDEULMUG $.

    $( A partial order relation is irreflexive.  (Contributed by Mario
       Carneiro, 2-Nov-2015.) $)
    poirr2 $p |- ( R Po A -> ( R i^i ( _I |` A ) ) = (/) ) $=
      ( vx vy wpo cid cres cin c0 wss wceq wrel relres relin2 cv wcel wbr wa wn
      syl5bi mp1i cop df-br brin bitr3i wi vex brres poirr wb ideq breq2 notbid
      sylbi syl5ibcom expimpd ancomsd con2d imnan sylib pm2.21d relssdv ss0 syl
      ) ABEZBFAGZHZIJVGIKVECDVGIVFLVGLVEFAMBVFNUACOZDOZUBZVGPZVHVIBQZVHVIVFQZRZ
      VEVJIPZVKVHVIVGQVNVHVIVGUCVHVIBVFUDUEVEVNVOVEVLVMSUFVNSVEVMVLVMVHVIFQZVHA
      PZRVEVLSZVHVIFADUGZUHVEVQVPVRVEVQVPVRVEVQRVHVHBQZSVPVRAVHBUIVPVTVLVPVHVIK
      VTVLUJVHVIVSUKVHVIVHBULUNUMUOUPUQTURVLVMUSUTVATVBVGVCVD $.
  $}

  $( The relation induced by a transitive relation on a part of its field is
     transitive.  (Taking the intersection of a relation with a square
     Cartesian product is a way to restrict it to a subset of its field.)
     (Contributed by FL, 31-Jul-2009.) $)
  trinxp $p |- ( ( R o. R ) C_ R ->
  ( ( R i^i ( A X. A ) ) o. ( R i^i ( A X. A ) ) ) C_ ( R i^i ( A X. A ) ) ) $=
    ( ccom wss cxp cin xpidtr trin2 mpan2 ) BBCBDAAEZJCJDBJFZKCKDAGBJHI $.

  ${
    soi.1 $e |- R Or S $.
    soi.2 $e |- R C_ ( S X. S ) $.
    $( A strict order relation is irreflexive.  (Contributed by NM,
       10-Feb-1996.)  (Revised by Mario Carneiro, 10-May-2013.) $)
    soirri $p |- -. A R A $=
      ( wcel wa wbr wn wor sonr mpan adantl brel con3i pm2.61i ) ACFZQGZAABHZIZ
      QTQCBJQTDCABKLMSRAACCBENOP $.

    $( A strict order relation is a transitive relation.  (Contributed by NM,
       10-Feb-1996.)  (Revised by Mario Carneiro, 10-May-2013.) $)
    sotri $p |- ( ( A R B /\ B R C ) -> A R C ) $=
      ( wcel wa wbr brel simpld anim12i wi wor w3a sotr mpan 3expb mpcom ) AEHZ
      BEHZCEHZIZIABDJZBCDJZIZACDJZUEUAUFUDUEUAUBABEEDGKLBCEEDGKMUAUBUCUGUHNZEDO
      UAUBUCPUIFEABCDQRST $.

    $( A strict order relation has no 2-cycle loops.  (Contributed by NM,
       10-Feb-1996.)  (Revised by Mario Carneiro, 10-May-2013.) $)
    son2lpi $p |- -. ( A R B /\ B R A ) $=
      ( wbr wa soirri sotri mto ) ABCGBACGHAACGACDEFIABACDEFJK $.

    $( A transitivity relation.  (Read ` A <_ B ` and ` B < C ` implies
       ` A < C ` .)  (Contributed by Mario Carneiro, 10-May-2013.) $)
    sotri2 $p |- ( ( A e. S /\ -. B R A /\ B R C ) -> A R C ) $=
      ( wbr wcel wn wi brel simpld wa wceq wo wor wb sotric mpan con2bid biimpd
      breq1 sotri ex jaoi syl6bir com3r mpand 3imp231 ) BCDHZAEIZBADHZJZACDHZUK
      BEIZULUNUOKUKUPCEIBCEEDGLMUPULNZUNUKUOUQUNBAOZABDHZPZUKUOKZUQUMUTEDQUQUMU
      TJRFEBADSTUAURVAUSURUKUOBACDUCUBUSUKUOABCDEFGUDUEUFUGUHUIUJ $.

    $( A transitivity relation.  (Read ` A < B ` and ` B <_ C ` implies
       ` A < C ` .)  (Contributed by Mario Carneiro, 10-May-2013.) $)
    sotri3 $p |- ( ( C e. S /\ A R B /\ -. C R B ) -> A R C ) $=
      ( wbr wcel wn wi brel simprd wa wceq wo wor wb sotric mpan con2bid expcom
      breq2 biimprd sotri jaoi syl6bir com3r mpan2d 3imp21 ) ABDHZCEIZCBDHZJZAC
      DHZUKULBEIZUNUOKUKAEIUPABEEDGLMULUPNZUNUKUOUQUNCBOZBCDHZPZUKUOKZUQUMUTEDQ
      UQUMUTJRFECBDSTUAURVAUSURUOUKCBADUCUDUKUSUOABCDEFGUEUBUFUGUHUIUJ $.
  $}

  $( Express "less than or equals" for general strict orders.  (Contributed by
     Stefan O'Rear, 17-Jan-2015.) $)
  poleloe $p |- ( B e. V -> ( A ( R u. _I ) B <-> ( A R B \/ A = B ) ) ) $=
    ( cid cun wbr wo wcel wceq brun ideqg orbi2d syl5bb ) ABCEFGABCGZABEGZHBDIZ
    OABJZHABCEKQPROABDLMN $.

  $( Transitive law for general strict orders.  (Contributed by Stefan O'Rear,
     17-Jan-2015.) $)
  poltletr $p |- ( ( R Po X /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
      ( ( A R B /\ B ( R u. _I ) C ) -> A R C ) ) $=
    ( wpo wcel w3a wa wbr cid cun wceq wo poleloe 3ad2ant3 adantl anbi2d com12
    wb wi potr breq2 biimpac a1d jaodan sylbid ) EDFZAEGZBEGZCEGZHZIZABDJZBCDKL
    JZIUNBCDJZBCMZNZIZACDJZUMUOURUNULUOURTZUHUKUIVAUJBCDEOPQRUSUMUTUNUPUMUTUAUQ
    UMUNUPIUTEABCDUBSUNUQIUTUMUQUNUTBCADUCUDUEUFSUG $.

  $( Property of a minimum in a strict order.  (Contributed by Stefan O'Rear,
     17-Jan-2015.) $)
  somin1 $p |- ( ( R Or X /\ ( A e. X /\ B e. X ) ) ->
      if ( A R B , A , B ) ( R u. _I ) A ) $=
    ( wor wcel wa wbr cif cid cun wceq wo iftrue olcd adantl wn sotric mpbird
    wb orcom eqcom orbi2i bitri notbii syl6bb con2bid biimpar iffalse breq1 syl
    eqeq1 orbi12d pm2.61dan poleloe ad2antrl ) DCEZADFZBDFZGGZABCHZABIZACJKHZVB
    ACHZVBALZMZUTVAVFVAVFUTVAVEVDVAABNOPUTVAQZGVFBACHZBALZMZUTVJVGUTVAVJUTVAABL
    ZVHMZQVJQDABCRVLVJVLVHVKMVJVKVHUAVKVIVHABUBUCUDUEUFUGUHVGVFVJTZUTVGVBBLZVMV
    AABUIVNVDVHVEVIVBBACUJVBBAULUMUKPSUNURVCVFTUQUSVBACDUOUPS $.

  $( Commutativity of minimum in a total order.  (Contributed by Stefan O'Rear,
     17-Jan-2015.) $)
  somincom $p |- ( ( R Or X /\ ( A e. X /\ B e. X ) ) ->
      if ( A R B , A , B ) = if ( B R A , B , A ) ) $=
    ( wor wcel wa wbr cif wn so2nr nan mpbi iffalsed eqcomd wceq sotric con2bid
    wi wo ifeq2 ifid syl6req iftrue jaoi syl6bir imp ifeqda ) DCEADFBDFGGZABCHZ
    ABBACHZBAIZUIUJGZULAUMUKBAUIUJUKGJSUMUKJSDABCKUIUJUKLMNOUIUJJZBULPZUIUNABPZ
    UKTZUOUIUJUQDABCQRUPUOUKUPULUKBBIBUKABBUAUKBUBUCUKULBUKBAUDOUEUFUGUH $.

  $( Property of a minimum in a strict order.  (Contributed by Stefan O'Rear,
     17-Jan-2015.) $)
  somin2 $p |- ( ( R Or X /\ ( A e. X /\ B e. X ) ) ->
      if ( A R B , A , B ) ( R u. _I ) B ) $=
    ( wor wcel wa wbr cif cid cun somincom somin1 ancom2s eqbrtrd ) DCEZADFZBDF
    ZGGABCHABIBACHBAIZBCJKZABCDLPRQSBTHBACDMNO $.

  $( Being less than a minimum, for a general total order.  (Contributed by
     Stefan O'Rear, 17-Jan-2015.) $)
  soltmin $p |- ( ( R Or X /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
      ( A R if ( B R C , B , C ) <-> ( A R B /\ A R C ) ) ) $=
    ( wor wcel w3a wa wbr cif wpo cid cun 3jca syl12anc poltletr syl22anc breq2
    imp sopo ad2antrr simplr1 simplr2 simplr3 ifcld simpll somin1 somin2 jca ex
    simpr ifboth impbid1 ) EDFZAEGZBEGZCEGZHZIZABCDJZBCKZDJZABDJZACDJZIZUTVCVFU
    TVCIZVDVEVGEDLZUPVBEGZUQHZVCVBBDMNZJZVDUOVHUSVCEDUAUBZVGUPVIUQUPUQURUOVCUCZ
    VGVABCEUPUQURUOVCUDZUPUQURUOVCUEZUFZVOOUTVCULZVGUOUQURVLUOUSVCUGZVOVPBCDEUH
    PVHVJIVCVLIVDAVBBDEQTRVGVHUPVIURHZVCVBCVKJZVEVMVGUPVIURVNVQVPOVRVGUOUQURWAV
    SVOVPBCDEUIPVHVTIVCWAIVEAVBCDEQTRUJUKVAVDVEVCBCBVBADSCVBADSUMUN $.

  ${
    $d x y z w $.  $d z w ph $.
    $( The converse of a class abstraction of ordered pairs.  (Contributed by
       NM, 11-Dec-2003.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    cnvopab $p |- `' { <. x , y >. | ph } = { <. y , x >. | ph } $=
      ( vz vw copab ccnv relcnv relopab cop wcel wsb opelopabsbALT sbcom2 bitri
      cv vex opelcnv 3bitr4i eqrelriiv ) DEABCFZGZACBFZUAHACBIEPZDPZJUAKZACDLBE
      LZUEUDJZUBKUHUCKUFABELCDLUGABCEDMABECDNOUEUDUADQEQRACBDEMST $.
  $}

  ${
    $d x y ph $.  $d x C $.  $d x D $.  $d y A $.  $d y B $.
    mptcnv.1 $e |- ( ph -> ( ( x e. A /\ y = B ) <-> ( y e. C /\ x = D ) ) ) $.
    $( The converse of a mapping function.  (Contributed by Thierry Arnoux,
       16-Jan-2017.) $)
    mptcnv $p |- ( ph -> `' ( x e. A |-> B ) = ( y e. C |-> D ) ) $=
      ( cv wcel wceq wa copab cmpt ccnv opabbidv df-mpt cnveqi cnvopab eqtri
      3eqtr4g ) ABIZDJCIZEKLZCBMZUCFJUBGKLZCBMBDENZOZCFGNAUDUFCBHPUHUDBCMZOUEUG
      UIBCDEQRUDBCSTCBFGQUA $.
  $}

  ${
    $d x y z $.
    $( The converse of the empty set.  (Contributed by NM, 6-Apr-1998.)  Remove
       dependency on ~ ax-sep , ~ ax-nul , ~ ax-pr .  (Revised by KP,
       25-Oct-2021.) $)
    cnv0 $p |- `' (/) = (/) $=
      ( vx vz vy c0 ccnv cv wcel cop wbr wa wex br0 intnan nex copab cab df-cnv
      wceq df-opab eqtri abeq2i mtbir nel0 ) ADEZAFZUDGUEBFZCFZHRZUGUFDIZJZCKZB
      KZUKBUJCUIUHUGUFLMNNULAUDUDUIBCOULAPBCDQUIBCASTUAUBUC $.

    $( Obsolete version of ~ cnv0 as of 25-Oct-2021.  (Contributed by NM,
       6-Apr-1998.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    cnv0OLD $p |- `' (/) = (/) $=
      ( vx vy c0 ccnv relcnv rel0 cv cop wcel vex opelcnv noel 2false eqrelriiv
      bitr4i ) ABCDZCCEFAGZBGZHZPIRQHZCIZSCIZQRCAJBJKUBUASLTLMON $.

    $( The converse of the identity relation.  Theorem 3.7(ii) of [Monk1]
       p. 36.  (Contributed by NM, 26-Apr-1998.)  (Proof shortened by Andrew
       Salmon, 27-Aug-2011.) $)
    cnvi $p |- `' _I = _I $=
      ( vy vx cid wbr copab weq ccnv vex ideq equcom bitri opabbii df-cnv df-id
      cv 3eqtr4i ) AOZBOZCDZBAEBAFZBAECGCSTBASABFTQRBHIABJKLBACMBANP $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The converse of a union is the union of converses.  Theorem 16 of
       [Suppes] p. 62.  (Contributed by NM, 25-Mar-1998.)  (Proof shortened by
       Andrew Salmon, 27-Aug-2011.) $)
    cnvun $p |- `' ( A u. B ) = ( `' A u. `' B ) $=
      ( vy vx cun ccnv cv wbr copab df-cnv unopab brun opabbii eqtr4i uneq12i
      wo ) ABEZFZCGZDGZAHZDCIZSTBHZDCIZEZAFZBFZERSTQHZDCIZUEDCQJUEUAUCPZDCIUIUA
      UCDCKUHUJDCSTABLMNNUFUBUGUDDCAJDCBJON $.

    $( Distributive law for converse over class difference.  (Contributed by
       Mario Carneiro, 26-Jun-2014.) $)
    cnvdif $p |- `' ( A \ B ) = ( `' A \ `' B ) $=
      ( vx vy cdif ccnv relcnv wss wrel difss relss mp2 cv cop wcel wn wa eldif
      vex opelcnv notbii anbi12i bitri 3bitr4i eqrelriiv ) CDABEZFZAFZBFZEZUFGU
      JUHHUHIUJIUHUIJAGUJUHKLDMZCMZNZUFOUMAOZUMBOZPZQZULUKNZUGOURUJOZUMABRULUKU
      FCSZDSZTUSURUHOZURUIOZPZQUQURUHUIRVBUNVDUPULUKAUTVATVCUOULUKBUTVATUAUBUCU
      DUE $.

    $( Distributive law for converse over intersection.  Theorem 15 of [Suppes]
       p. 62.  (Contributed by NM, 25-Mar-1998.)  (Revised by Mario Carneiro,
       26-Jun-2014.) $)
    cnvin $p |- `' ( A i^i B ) = ( `' A i^i `' B ) $=
      ( cdif ccnv cin cnvdif difeq2i eqtri dfin4 cnveqi 3eqtr4i ) AABCZCZDZADZO
      BDZCZCZABEZDOPENOLDZCRALFTQOABFGHSMABIJOPIK $.
  $}

  $( Distributive law for range over union.  Theorem 8 of [Suppes] p. 60.
     (Contributed by NM, 24-Mar-1998.) $)
  rnun $p |- ran ( A u. B ) = ( ran A u. ran B ) $=
    ( cun ccnv cdm crn cnvun dmeqi dmun eqtri df-rn uneq12i 3eqtr4i ) ABCZDZEZA
    DZEZBDZEZCZNFAFZBFZCPQSCZEUAOUDABGHQSIJNKUBRUCTAKBKLM $.

  $( The range of an intersection belongs the intersection of ranges.  Theorem
     9 of [Suppes] p. 60.  (Contributed by NM, 15-Sep-2004.) $)
  rnin $p |- ran ( A i^i B ) C_ ( ran A i^i ran B ) $=
    ( cin ccnv cdm crn cnvin dmeqi dmin eqsstri df-rn ineq12i 3sstr4i ) ABCZDZE
    ZADZEZBDZEZCZNFAFZBFZCPQSCZEUAOUDABGHQSIJNKUBRUCTAKBKLM $.

  ${
    $d x y z $.  $d y z A $.  $d y z B $.
    $( The range of an indexed union.  (Contributed by Mario Carneiro,
       29-May-2015.) $)
    rniun $p |- ran U_ x e. A B = U_ x e. A ran B $=
      ( vz vy ciun crn cv cop wcel wex wrex rexcom4 elrn2 rexbii eliun 3bitr4ri
      vex exbii 3bitr4i eqriv ) DABCFZGZABCGZFZEHDHZIZUBJZEKZUFUDJZABLZUFUCJUFU
      EJUGCJZEKZABLULABLZEKUKUIULAEBMUJUMABEUFCDRZNOUHUNEAUGBCPSQEUFUBUONAUFBUD
      PTUA $.

    $d x A $.
    $( The range of a union.  Part of Exercise 8 of [Enderton] p. 41.
       (Contributed by NM, 17-Mar-2004.)  (Revised by Mario Carneiro,
       29-May-2015.) $)
    rnuni $p |- ran U. A = U_ x e. A ran x $=
      ( cuni crn cv ciun uniiun rneqi rniun eqtri ) BCZDABAEZFZDABLDFKMABGHABLI
      J $.
  $}

  $( Distributive law for image over union.  Theorem 35 of [Suppes] p. 65.
     (Contributed by NM, 30-Sep-2002.) $)
  imaundi $p |- ( A " ( B u. C ) ) = ( ( A " B ) u. ( A " C ) ) $=
    ( cun cres crn cima resundi rneqi rnun eqtri df-ima uneq12i 3eqtr4i ) ABCDZ
    EZFZABEZFZACEZFZDZAOGABGZACGZDQRTDZFUBPUEABCHIRTJKAOLUCSUDUAABLACLMN $.

  $( The image of a union.  (Contributed by Jeff Hoffman, 17-Feb-2008.) $)
  imaundir $p |- ( ( A u. B ) " C ) = ( ( A " C ) u. ( B " C ) ) $=
    ( cun cima cres crn df-ima resundir rneqi rnun 3eqtri uneq12i eqtr4i ) ABDZ
    CEZACFZGZBCFZGZDZACEZBCEZDPOCFZGQSDZGUAOCHUDUEABCIJQSKLUBRUCTACHBCHMN $.

  ${
    $d x y A $.  $d x y B $.  $d x y R $.
    $( An upper bound for intersection with a domain.  Theorem 40 of [Suppes]
       p. 66, who calls it "somewhat surprising."  (Contributed by NM,
       11-Aug-2004.) $)
    dminss $p |- ( dom R i^i A ) C_ ( `' R " ( R " A ) ) $=
      ( vx vy cdm cin ccnv cima cv wbr wcel wa 19.8a ancoms elima2 sylibr simpl
      wex vex brcnv jca eximi eldm anbi1i elin 19.41v 3bitr4i 3imtr4i ssriv ) C
      BEZAFZBGZBAHZHZCIZDIZBJZUOAKZLZDRZUPUMKZUPUOULJZLZDRUOUKKZUOUNKUSVCDUSVAV
      BUSURUQLZCRZVAURUQVFVECMNCUPBADSZOPUSUQVBUQURQUPUOBVGCSZTPUAUBUOUJKZURLUQ
      DRZURLVDUTVIVJURDUOBVHUCUDUOUJAUEUQURDUFUGDUOULUMVHOUHUI $.

    $( An upper bound for intersection with an image.  Theorem 41 of [Suppes]
       p. 66.  (Contributed by NM, 11-Aug-2004.) $)
    imainss $p |- ( ( R " A ) i^i B ) C_ ( R " ( A i^i ( `' R " B ) ) ) $=
      ( vy vx cima cin ccnv cv wcel wbr wa wex brcnv 19.8a sylan2br elin elima2
      vex anbi1i ancoms anim2i simprl anassrs anbi2i bitri sylibr eximi 3bitr4i
      jca 19.41v 3imtr4i ssriv ) DCAFZBGZCACHZBFZGZFZEIZAJZUTDIZCKZLZVBBJZLZEMZ
      UTURJZVCLZEMVBUOJZVBUSJVFVIEVFVAVEVBUTUPKZLZDMZLZVCLZVIVAVCVEVOVAVCVELZLV
      NVCVPVMVAVEVCVMVCVEVKVMVBUTCDSZESZNVLDOPUAUBVAVCVEUCUJUDVHVNVCVHVAUTUQJZL
      VNUTAUQQVSVMVADUTUPBVRRUEUFTUGUHVBUNJZVELVDEMZVELVJVGVTWAVEEVBCAVQRTVBUNB
      QVDVEEUKUIEVBCURVQRULUM $.
  $}

  $( The image of an intersection.  (Contributed by Thierry Arnoux,
     16-Dec-2017.) $)
  inimass $p |- ( ( A i^i B ) " C ) C_ ( ( A " C ) i^i ( B " C ) ) $=
    ( cres cin crn cima rnin df-ima resindir rneqi eqtri ineq12i 3sstr4i ) ACDZ
    BCDZEZFZOFZPFZEABEZCGZACGZBCGZEOPHUBUACDZFRUACIUEQABCJKLUCSUDTACIBCIMN $.

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x V $.
    $( The intersection of the image of singleton.  (Contributed by Thierry
       Arnoux, 16-Dec-2017.) $)
    inimasn $p |- ( C e. V
      -> ( ( A i^i B ) " { C } ) = ( ( A " { C } ) i^i ( B " { C } ) ) ) $=
      ( vx wcel cin csn cima cv wa elin cop a1i cvv vex elimasng mpan2 anbi12d
      wb 3bitr4rd syl5rbb eqrdv ) CDFZEABGZCHZIZAUFIZBUFIZGZEJZUJFUKUHFZUKUIFZK
      ZUDUKUGFZUKUHUILUDCUKMZUEFZUPAFZUPBFZKZUOUNUQUTTUDUPABLNUDUKOFZUOUQTEPZUE
      CUKDOQRUDULURUMUSUDVAULURTVBACUKDOQRUDVAUMUSTVBBCUKDOQRSUAUBUC $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The converse of a Cartesian product.  Exercise 11 of [Suppes] p. 67.
       (Contributed by NM, 14-Aug-1999.)  (Proof shortened by Andrew Salmon,
       27-Aug-2011.) $)
    cnvxp $p |- `' ( A X. B ) = ( B X. A ) $=
      ( vy vx cv wcel copab ccnv cxp cnvopab ancom opabbii eqtri cnveqi 3eqtr4i
      wa df-xp ) CEAFZDEBFZPZCDGZHZSRPZDCGZABIZHBAIUBTDCGUDTCDJTUCDCRSKLMUEUACD
      ABQNDCBAQO $.
  $}

  $( The Cartesian product with the empty set is empty.  Part of Theorem
     3.13(ii) of [Monk1] p. 37.  (Contributed by NM, 12-Apr-2004.) $)
  xp0 $p |- ( A X. (/) ) = (/) $=
    ( c0 cxp ccnv 0xp cnveqi cnvxp cnv0 3eqtr3i ) BACZDBDABCBJBAEFBAGHI $.

  ${
    $d x y z A $.  $d x y z B $.
    $( The Cartesian product of nonempty classes is nonempty.  (Variation of a
       theorem contributed by Raph Levien, 30-Jun-2006.)  (Contributed by NM,
       30-Jun-2006.) $)
    xpnz $p |- ( ( A =/= (/) /\ B =/= (/) ) <-> ( A X. B ) =/= (/) ) $=
      ( vx vy vz c0 wne wa cxp cv wcel wex anbi12i eeanv bitr4i cop wceq syl6eq
      n0 necon3i opex eleq1 opelxp syl6bb spcev sylibr exlimivv sylbi xpeq1 0xp
      xpeq2 xp0 jca impbii ) AFGZBFGZHZABIZFGZUQCJZAKZDJZBKZHZDLCLZUSUQVACLZVCD
      LZHVEUOVFUPVGCASDBSMVAVCCDNOVDUSCDVDEJZURKZELUSVIVDEUTVBPZUTVBUAVHVJQVIVJ
      URKVDVHVJURUBUTVBABUCUDUEEURSUFUGUHUSUOUPAFURFAFQURFBIFAFBUIBUJRTBFURFBFQ
      URAFIFBFAUKAULRTUMUN $.
  $}

  $( At least one member of an empty Cartesian product is empty.  (Contributed
     by NM, 27-Aug-2006.) $)
  xpeq0 $p |- ( ( A X. B ) = (/) <-> ( A = (/) \/ B = (/) ) ) $=
    ( cxp c0 wceq wne wa wn wo xpnz necon2bbii ianor nne orbi12i 3bitri ) ABCZD
    EADFZBDFZGZHQHZRHZIADEZBDEZISPDABJKQRLTUBUAUCADMBDMNO $.

  $( Cartesian products with disjoint sets are disjoint.  (Contributed by NM,
     13-Sep-2004.) $)
  xpdisj1 $p |- ( ( A i^i B ) = (/) -> ( ( A X. C ) i^i ( B X. D ) ) = (/) ) $=
    ( cin c0 wceq cxp xpeq1 inxp 0xp eqcomi 3eqtr4g ) ABEZFGNCDEZHFOHZACHBDHEFN
    FOIACBDJPFOKLM $.

  $( Cartesian products with disjoint sets are disjoint.  (Contributed by NM,
     13-Sep-2004.) $)
  xpdisj2 $p |- ( ( A i^i B ) = (/) -> ( ( C X. A ) i^i ( D X. B ) ) = (/) ) $=
    ( cin c0 wceq cxp xpeq2 inxp xp0 eqcomi 3eqtr4g ) ABEZFGCDEZNHOFHZCAHDBHEFN
    FOICADBJPFOKLM $.

  $( Cartesian products with two different singletons are disjoint.
     (Contributed by NM, 28-Jul-2004.) $)
  xpsndisj $p |- ( B =/= D -> ( ( A X. { B } ) i^i ( C X. { D } ) ) = (/) ) $=
    ( wne csn cin c0 wceq cxp disjsn2 xpdisj2 syl ) BDEBFZDFZGHIANJCOJGHIBDKNOA
    CLM $.

  ${
    $d A x y $.  $d B x y $.  $d C x y $.  $d D x y $.
    $( Difference of Cartesian products, expressed in terms of a union of
       Cartesian products of differences.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by Mario Carneiro, 26-Jun-2014.) $)
    difxp $p |- ( ( C X. D ) \ ( A X. B ) ) =
                ( ( ( C \ A ) X. D ) u. ( C X. ( D \ B ) ) ) $=
      ( vx vy cxp cdif wrel relxp cv wn wa wo anbi2i bitri opelxp eldif 3bitr4i
      wcel cun wss difss relss mp2 relun mpbir2an cop ianor andi notbii anbi12i
      anbi1i an32 anass orbi12i elun eqrelriiv ) EFCDGZABGZHZCAHZDGZCDBHZGZUAZV
      AUSUBUSIVAIUSUTUCCDJVAUSUDUEVFIVCIVEIVBDJCVDJVCVEUFUGEKZFKZUHZUSTZVIUTTZL
      ZMZVIVCTZVIVETZNZVIVATVIVFTVGCTZVHDTZMZVGATZVHBTZMZLZMZVSVTLZMZVSWALZMZNZ
      VMVPWDVSWEWGNZMWIWCWJVSVTWAUIOVSWEWGUJPVJVSVLWCVGVHCDQVKWBVGVHABQUKULVNWF
      VOWHVNVGVBTZVRMZWFVGVHVBDQWLVQWEMZVRMWFWKWMVRVGCARUMVQWEVRUNPPVQVHVDTZMVQ
      VRWGMZMVOWHWNWOVQVHDBROVGVHCVDQVQVRWGUOSUPSVIUSUTRVIVCVEUQSUR $.
  $}

  $( Difference law for Cartesian product.  (Contributed by Scott Fenton,
     18-Feb-2013.)  (Revised by Mario Carneiro, 26-Jun-2014.) $)
  difxp1 $p |- ( ( A \ B ) X. C ) = ( ( A X. C ) \ ( B X. C ) ) $=
    ( cxp cdif cun c0 difxp difid xpeq2i xp0 eqtri uneq2i un0 3eqtrri ) ACDBCDE
    ABECDZACCEZDZFPGFPBCACHRGPRAGDGQGACIJAKLMPNO $.

  $( Difference law for Cartesian product.  (Contributed by Scott Fenton,
     18-Feb-2013.)  (Revised by Mario Carneiro, 26-Jun-2014.) $)
  difxp2 $p |- ( A X. ( B \ C ) ) = ( ( A X. B ) \ ( A X. C ) ) $=
    ( cxp cdif cun c0 difxp difid xpeq1i 0xp eqtri uneq1i uncom un0 3eqtrri ) A
    BDACDEAAEZBDZABCEDZFGSFZSACABHRGSRGBDGQGBAIJBKLMTSGFSGSNSOLP $.

  ${
    $d x A $.  $d y B $.
    $( Disjoint unions with disjoint index sets are disjoint.  (Contributed by
       Stefan O'Rear, 21-Nov-2014.) $)
    djudisj $p |- ( ( A i^i B ) = (/) -> ( U_ x e. A ( { x } X. C ) i^i
            U_ y e. B ( { y } X. D ) ) = (/) ) $=
      ( cin c0 wceq cv csn cxp ciun cvv wss djussxp incom syl5eq ssdisj sylancr
      xpdisj1 ) CDGHIZACAJKELMZCNLZOUDBDBJKFLMZGZHIUCUEGHIACEPUBUFUEUDGZHUDUEQU
      BUEDNLZOUHUDGZHIUGHIBDFPUBUIUDUHGHUHUDQCDNNUARUEUHUDSTRUCUDUEST $.
  $}

  ${
    $d A i j p x y $.  $d B i j p x y $.
    $( The set of distinct couples in a Cartesian product.  (Contributed by
       Thierry Arnoux, 25-May-2019.) $)
    xpdifid $p |- U_ x e. A ( { x } X. ( B \ { x } ) ) = ( ( A X. B ) \ _I ) $=
      ( vi vj vy cv csn cdif cid wcel wrex wceq wa wex wne wn necon3bbii eleq2d
      velsn vp cxp ciun cop elxp rexbii rexcom4 exbii 3bitri eliun eldif opelxp
      wbr df-br vex ideq bitr3i anbi12i bitri anbi2i 2exbii eldifi elxpi 2eximi
      simpl 3syl ancli 19.42vv sylibr ancom eleq1 adantl pm5.32da 2exbidv mpbid
      syl5bb biimpar impbii r19.42v simprl sylib eqeltrd simprr eldifad eldifbd
      exlimivv necomd eqnetrd jca31 adantll sneq difeq2d anbi12d cbvrexv biimpi
      wb r19.29a simpll vsnid simplr simpr eldifd rspcev syl12anc 3bitr4i eqriv
      a1i ) UAABAGZHZCXIIZUBZUCZBCUBZJIZUAGZXKKZABLZXODGZEGZUDZMZXRXIKZXSXJKZNZ
      NZABLZEOZDOZXOXLKXOXNKZXQYEEOZDOZABLYJABLZDOYHXPYKABDEXOXIXJUEUFYJADBUGYL
      YGDYEAEBUGUHUIAXOBXKUJYAXTXNKZNZEODOZYAXRBKZXSCKZNZXRXSPZNZNZEODOYIYHYNUU
      ADEYMYTYAYMXTXMKZXTJKZQZNYTXTXMJUKUUBYRUUDYSXRXSBCULUUCXRXSUUCXRXSJUMXRXS
      MXRXSJUNXRXSEUOUPUQRURUSUTVAYIYOYIYIYANZEODOZYOYIYIYAEODOZNUUFYIUUGYIXOXM
      KYAYRNZEODOUUGXOXMJVBDEXOBCVCUUHYADEYAYRVEVDVFVGYIYADEVHVIYIUUEYNDEUUEYAY
      INYIYNYIYAVJYIYAYIYMYAYIYMWPYIXOXTXNVKZVLVMVPVNVOYNYIDEYAYIYMUUIVQWFVRYFU
      UADEYFYAYDABLZNUUAYAYDABVSUUJYTYAUUJYTUUJXRFGZHZKZXSCUULIZKZNZYTFBUUKBKZU
      UPYTUUJUUQUUPNZYPYQYSUURXRUUKBUURUUMXRUUKMUUQUUMUUOVTDUUKTWAZUUQUUPVEWBUU
      RXSCUULUUQUUMUUOWCZWDUURXRUUKXSUUSUURXSUUKUURXSUULKZQXSUUKPUURXSCUULUUTWE
      UVAXSUUKEUUKTRWAWGWHWIWJUUJUUPFBLYDUUPAFBXHUUKMZYBUUMYCUUOUVBXIUULXRXHUUK
      WKZSUVBXJUUNXSUVBXIUULCUVCWLSWMWNWOWQYTYPXRXRHZKZXSCUVDIZKZUUJYPYQYSWRUVE
      YTDWSXGYTXSCUVDYPYQYSWTYTXSXRPXSUVDKZQYTXRXSYRYSXAWGUVHXSXREXRTRVIXBYDUVE
      UVGNAXRBXHXRMZYBUVEYCUVGUVIXIUVDXRXHXRWKZSUVIXJUVFXSUVIXIUVDCUVJWLSWMXCXD
      VRUTUSVAXEXEXF $.
  $}

  $( A double restriction to disjoint classes is the empty set.  (Contributed
     by NM, 7-Oct-2004.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  resdisj $p |- ( ( A i^i B ) = (/) -> ( ( C |` A ) |` B ) = (/) ) $=
    ( cin c0 wceq cres reseq2 resres res0 eqcomi 3eqtr4g ) ABDZEFCMGCEGZCAGBGEM
    ECHCABINECJKL $.

  $( The range of a Cartesian product.  Part of Theorem 3.13(x) of [Monk1]
     p. 37.  (Contributed by NM, 12-Apr-2004.) $)
  rnxp $p |- ( A =/= (/) -> ran ( A X. B ) = B ) $=
    ( c0 wne cxp crn cdm ccnv df-rn cnvxp dmeqi eqtri dmxp syl5eq ) ACDABEZFZBA
    EZGZBPOHZGROISQABJKLBAMN $.

  $( The domain of a Cartesian product is a subclass of the first factor.
     (Contributed by NM, 19-Mar-2007.) $)
  dmxpss $p |- dom ( A X. B ) C_ A $=
    ( cxp cdm wss c0 wceq xpeq2 xp0 syl6eq dm0 0ss syl6eqss wne dmxp eqimss syl
    dmeqd pm2.61ine ) ABCZDZAEZBFBFGZUAFAUCUAFDFUCTFUCTAFCFBFAHAIJRKJALMBFNUAAG
    UBABOUAAPQS $.

  $( The range of a Cartesian product is a subclass of the second factor.
     (Contributed by NM, 16-Jan-2006.)  (Proof shortened by Andrew Salmon,
     27-Aug-2011.) $)
  rnxpss $p |- ran ( A X. B ) C_ B $=
    ( cxp crn ccnv cdm df-rn cnvxp dmeqi dmxpss eqsstri ) ABCZDLEZFZBLGNBACZFBM
    OABHIBAJKK $.

  $( The range of a square Cartesian product.  (Contributed by FL,
     17-May-2010.) $)
  rnxpid $p |- ran ( A X. A ) = A $=
    ( cxp crn wceq c0 rn0 xpeq2 xp0 syl6eq rneqd id 3eqtr4a rnxp pm2.61ine ) AA
    BZCZADAEAEDZECEPAFQOEQOAEBEAEAGAHIJQKLAAMN $.

  $( A Cartesian product subclass relationship is equivalent to the
     relationship for it components.  (Contributed by NM, 17-Dec-2008.) $)
  ssxpb $p |- ( ( A X. B ) =/= (/) -> ( ( A X. B ) C_ ( C X. D ) <->
              ( A C_ C /\ B C_ D ) ) ) $=
    ( cxp c0 wne wss wa cdm wceq xpnz dmxp adantl sylbir adantr eqsstr3d syl6ss
    dmss crn dmxpss rnxp rnss rnxpss jca ex xpss12 impbid1 ) ABEZFGZUICDEZHZACH
    ZBDHZIZUJULUOUJULIZUMUNUPAUKJZCUPAUIJZUQUJURAKZULUJAFGZBFGZIZUSABLZVAUSUTAB
    MNOPULURUQHUJUIUKSNQCDUARUPBUKTZDUPBUITZVDUJVEBKZULUJVBVFVCUTVFVAABUBPOPULV
    EVDHUJUIUKUCNQCDUDRUEUFACBDUGUH $.

  $( The Cartesian product of nonempty classes is one-to-one.  (Contributed by
     NM, 31-May-2008.) $)
  xp11 $p |- ( ( A =/= (/) /\ B =/= (/) )
      -> ( ( A X. B ) = ( C X. D ) <-> ( A = C /\ B = D ) ) ) $=
    ( c0 wne wa cxp wceq wi xpnz anidm neeq1 anbi2d syl5bbr wss ssxpb syl5ibcom
    eqimss eqss eqimss2 anim12d anbi12i bitr4i syl6ib sylbid com12 sylbi xpeq12
    an4 impbid1 ) AEFBEFGZABHZCDHZIZACIZBDIZGZULUMEFZUOURJABKUOUSURUOUSUSUNEFZG
    ZURUSUSUSGUOVAUSLUOUSUTUSUMUNEMNOUOVAACPZBDPZGZCAPZDBPZGZGZURUOUSVDUTVGUOUM
    UNPUSVDUMUNSABCDQRUOUNUMPUTVGUNUMUACDABQRUBVHVBVEGZVCVFGZGURVBVCVEVFUJUPVIU
    QVJACTBDTUCUDUEUFUGUHACBDUIUK $.

  $( Cancellation law for Cartesian product.  (Contributed by NM,
     30-Aug-2011.) $)
  xpcan $p |- ( C =/= (/) -> ( ( C X. A ) = ( C X. B ) <-> A = B ) ) $=
    ( c0 wne cxp wceq wb wa xp11 eqid biantrur syl6bbr wn wi simpr xpeq2 syl6eq
    nne xp0 eqeq1d eqcom syl6bb adantl df-ne wo xpeq0 orel1 syl5bi sylbi adantr
    sylbid eqtr3 syl6an sylan2b impbid1 pm2.61dan ) CDEZADEZCAFZCBFZGZABGZHURUS
    IVBCCGZVCIVCCACBJVDVCCKLMURUSNZIVBVCVEURADGZVBVCOADSURVFIZVFVBBDGZVCURVFPVG
    VBVADGZVHVFVBVIHURVFVBDVAGVIVFUTDVAVFUTCDFDADCQCTRUADVAUBUCUDURVIVHOZVFURCD
    GZNZVJCDUEVIVKVHUFVLVHCBUGVKVHUHUIUJUKULABDUMUNUOABCQUPUQ $.

  $( Cancellation law for Cartesian product.  (Contributed by NM,
     30-Aug-2011.) $)
  xpcan2 $p |- ( C =/= (/) -> ( ( A X. C ) = ( B X. C ) <-> A = B ) ) $=
    ( c0 wne cxp wceq wb wa xp11 eqid biantru syl6bbr wn nne simpl xpeq1 syl6eq
    0xp eqeq1d eqcom syl6bb adantr wi df-ne wo xpeq0 orel2 syl5bi adantl sylbid
    sylbi eqtr3 syl6an impbid1 sylanb pm2.61ian ) ADEZCDEZACFZBCFZGZABGZHZURUSI
    VBVCCCGZIVCACBCJVEVCCKLMURNADGZUSVDADOVFUSIZVBVCVGVFVBBDGZVCVFUSPVGVBVADGZV
    HVFVBVIHUSVFVBDVAGVIVFUTDVAVFUTDCFDADCQCSRTDVAUAUBUCUSVIVHUDZVFUSCDGZNZVJCD
    UEVIVHVKUFVLVHBCUGVKVHUHUIULUJUKABDUMUNABCQUOUPUQ $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Subset of the range of a restriction.  (Contributed by NM,
       16-Jan-2006.) $)
    ssrnres $p |- ( B C_ ran ( C |` A ) <-> ran ( C i^i ( A X. B ) ) = B ) $=
      ( vy vx cxp cin crn wceq wss rnss ax-mp cvv cv wex wa elrn2 bitr2i 3bitri
      wcel cres inss2 rnxpss sstri eqss mpbiran ssv xpss12 mp2an sslin sseqtr4i
      ssid df-res sstr mpan2 cop ssel syl6ib ancrd opelxp anbi2i opelres anbi1i
      vex elin anass exbii 19.41v syl6ibr ssrdv impbii ) CABFZGZHZBIZBVNJZBCAUA
      ZHZJZVOVNBJVPVNVLHZBVMVLJVNVTJCVLUBVMVLKLABUCUDVNBUEUFVPVSVPVNVRJZVSVMVQJ
      WAVMCAMFZGZVQVLWBJZVMWCJAAJBMJWDAULBUGAABMUHUIVLWBCUJLCAUMUKVMVQKLBVNVRUN
      UOVSDBVNVSDNZBTZENZWEUPZVQTZEOZWFPZWEVNTZVSWFWJVSWFWEVRTWJBVRWEUQEWEVQDVD
      ZQURUSWLWHVMTZEOWIWFPZEOWKEWEVMWMQWNWOEWNWHCTZWHVLTZPWPWGATZWFPZPZWOWHCVL
      VEWQWSWPWGWEABUTVAWOWPWRPZWFPWTWIXAWFWGWECAWMVBVCWPWRWFVFRSVGWIWFEVHSVIVJ
      VKR $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.
    $( Range of the intersection with a Cartesian product.  (Contributed by NM,
       17-Jan-2006.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    rninxp $p |- ( ran ( C i^i ( A X. B ) ) = B <->
                 A. y e. B E. x e. A x C y ) $=
      ( cres crn wss wcel wral cxp cin wceq wbr wrex dfss3 ssrnres cima df-ima
      cv eleq2i vex elima bitr3i ralbii 3bitr3i ) DECFGZHBTZUGIZBDJECDKLGDMATUH
      ENACOZBDJBDUGPCDEQUIUJBDUIUHECRZIUJUKUGUHECSUAAUHECBUBUCUDUEUF $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x y C $.
    $( Domain of the intersection with a Cartesian product.  (Contributed by
       NM, 17-Jan-2006.) $)
    dminxp $p |- ( dom ( C i^i ( A X. B ) ) = A <->
                 A. x e. A E. y e. B x C y ) $=
      ( cxp cin cdm wceq ccnv crn cv wbr wrex wral dfdm4 cnvin cnvxp eqtri vex
      ineq2i rneqi eqeq1i rninxp brcnv rexbii ralbii 3bitri ) ECDFZGZHZCIEJZDCF
      ZGZKZCIBLZALZULMZBDNZACOUQUPEMZBDNZACOUKUOCUKUJJZKUOUJPVBUNVBULUIJZGUNEUI
      QVCUMULCDRUASUBSUCBADCULUDUSVAACURUTBDUPUQEBTATUEUFUGUH $.
  $}

  $( Image of a relation restricted to a rectangular region.  (Contributed by
     Stefan O'Rear, 19-Feb-2015.) $)
  imainrect $p |- ( ( G i^i ( A X. B ) ) " Y ) =
      ( ( G " ( Y i^i A ) ) i^i B ) $=
    ( cxp cin cres crn cima df-res rneqi df-ima eqtri ineq1i ccnv ineq2i eqtr4i
    cvv cdm 3eqtr4ri cnvin inxp inv1 incom xpeq12i eqtr2i xpindir inass 3eqtr4i
    in32 cnveqi cnvxp dmeqi dmres df-rn ) CABEZFZDGZHUQDREZFZHZUQDICDAFZIZBFZUR
    UTUQDJKUQDLVDCVBREZFZHZBFZVAVCVGBVCCVBGZHVGCVBLVIVFCVBJKMNVFOZBGZSZUTOZSVHV
    AVKVMVFRBEZFZOVJVNOZFZVMVKVFVNUAUTVOCUSFZUPFVRAREZVNFZFZUTVOUPVTVRVTARFZRBF
    ZEUPARRBUBWBAWCBAUCWCBRFBRBUDBUCMUEUFPCUPUSUJVOVRVSFZVNFWAVFWDVNVFCUSVSFZFW
    DVEWECDARUGPCUSVSUHQNVRVSVNUHMUIUKVKVJBREZFVQVJBJVPWFVJRBULPQTUMBVJSZFWGBFV
    LVHBWGUDVJBUNVGWGBVFUONTUTUOTQUI $.

  $( The image by a constant function (or other Cartesian product).
     (Contributed by Thierry Arnoux, 4-Feb-2017.) $)
  xpima $p |- ( ( A X. B ) " C ) = if ( ( A i^i C ) = (/) , (/) , B ) $=
    ( cxp cima cin c0 wceq cif wa wn wo exmid crn cvv rneqi syl6eq syl5eq ancli
    cres df-ima df-res eqtri inxp inv1 xpeq2i 3eqtri xpeq1 0xp rneqd df-ne rnxp
    rn0 wne sylbir orim12i ax-mp eqif mpbir ) ABDZCEZACFZGHZGBIHVCVAGHZJZVCKZVA
    BHZJZLZVCVFLVIVCMVCVEVFVHVCVDVCVAVBBDZNZGVAUTCODFZNZVBBOFZDZNVKVAUTCTZNVMUT
    CUAVPVLUTCUBPUCVLVOABCOUDPVOVJVNBVBBUEUFPUGZVCVKGNGVCVJGVCVJGBDGVBGBUHBUIQU
    JUMQRSVFVGVFVAVKBVQVFVBGUNVKBHVBGUKVBBULUORSUPUQVCVAGBURUS $.

  $( The image by a Cartesian product.  (Contributed by Thierry Arnoux,
     16-Dec-2017.) $)
  xpima1 $p |- ( ( A i^i C ) = (/) -> ( ( A X. B ) " C ) = (/) ) $=
    ( cin c0 wceq cxp cima cif xpima iftrue syl5eq ) ACDEFZABGCHMEBIEABCJMEBKL
    $.

  $( The image by a Cartesian product.  (Contributed by Thierry Arnoux,
     16-Dec-2017.) $)
  xpima2 $p |- ( ( A i^i C ) =/= (/) -> ( ( A X. B ) " C ) = B ) $=
    ( cin c0 wne cxp cima wceq cif xpima ifnefalse syl5eq ) ACDZEFABGCHNEIEBJBA
    BCKNEEBLM $.

  $( The image of a singleton by a Cartesian product.  (Contributed by Thierry
     Arnoux, 14-Jan-2018.)  (Proof shortened by BJ, 6-Apr-2019.) $)
  xpimasn $p |- ( X e. A -> ( ( A X. B ) " { X } ) = B ) $=
    ( wcel csn cin c0 wne cxp cima wceq disjsn necon3abii notnotb bitr4i xpima2
    wn sylbir ) CADZACEZFZGHZABITJBKUBSQZQSUCUAGACLMSNOABTPR $.

  ${
    $d x y A $.  $d x B $.  $d x y R $.
    $( The base set of a strict order is contained in the field of the
       relation, except possibly for one element (note that ` (/) Or { B } ` ).
       (Contributed by Mario Carneiro, 27-Apr-2015.) $)
    sossfld $p |- ( ( R Or A /\ B e. A ) ->
      ( A \ { B } ) C_ ( dom R u. ran R ) ) $=
      ( vx wor wcel wa csn cdif cdm crn cun cv wne eldifsn wbr wo wb wi 3expia
      sotrieq necon2abid breldmg ancoms brelrng orim12d syl6ibr adantll sylbird
      anass1rs elun expimpd syl5bi ssrdv ) ACEZBAFZGZDABHIZCJZCKZLZDMZURFVBAFZV
      BBNZGUQVBVAFZVBABOUQVCVDVEUQVCGVDVBBCPZBVBCPZQZVEUOVCUPVHVDRUOVCUPGGVHVBB
      AVBBCUAUBUJUPVCVHVESUOUPVCGZVHVBUSFZVBUTFZQVEVIVFVJVGVKVCUPVFVJSVCUPVFVJV
      BBAACUCTUDUPVCVGVKBVBCAAUETUFVBUSUTUKUGUHUIULUMUN $.

    $( The base set of a nonempty strict order is the same as the field of the
       relation.  (Contributed by Mario Carneiro, 15-May-2015.) $)
    sofld $p |- ( ( R Or A /\ R C_ ( A X. A ) /\ R =/= (/) ) ->
      A = ( dom R u. ran R ) ) $=
      ( vx vy wor cxp wss c0 cdm crn wa wrel ad2antlr wcel ssun1 syl6sseq unssd
      cun cv ex wne w3a wn wceq relxp relss mpi cop wbr df-br csn cdif sseqtr4i
      undif1 simpll dmxpid releldm sylancom sseldd sossfld syl2anc sseldi snssd
      dmss syl5ss syl5bir con3dimp pm2.21d relssdv ss0 syl necon1ad 3impia rnss
      rnxpid 3ad2ant2 eqssd ) ABEZBAAFZGZBHUAZUBABIZBJZRZVRVTWAAWDGZVRVTKZWEBHW
      FWEUCZBHUDZWFWGKZBHGWHWICDBHVTBLZVRWGVTVSLWJAAUEBVSUFUGZMWICSZDSZUHZBNZWN
      HNWFWOWEWOWLWMBUIZWFWEWLWMBUJWFWPWEWFWPKZAAWLUKZULZWRRZWDAAWRRWTAWROAWRUN
      UMWQWSWRWDWQVRWLANWSWDGVRVTWPUOWQWBAWLVTWBAGVRWPVTWBVSIABVSVDAUPPZMWFWPWJ
      WLWBNVTWJVRWPWKMWLWMBUQURZUSAWLBUTVAWQWLWDWQWBWDWLWBWCOXBVBVCQVETVFVGVHVI
      BVJVKTVLVMVTVRWDAGWAVTWBWCAXAVTWCVSJABVSVNAVOPQVPVQ $.
  $}

  ${
    $d x y R $.
    $( The set of all ordered pairs in a class is the same as the double
       converse.  (Contributed by Mario Carneiro, 16-Aug-2015.) $)
    cnvcnv3 $p |- `' `' R = { <. x , y >. | x R y } $=
      ( ccnv cv wbr copab df-cnv vex brcnv opabbii eqtri ) CDZDBEZAEZMFZABGONCF
      ZABGABMHPQABNOCBIAIJKL $.

    $( Alternate definition of relation.  Exercise 2 of [TakeutiZaring] p. 25.
       (Contributed by NM, 29-Dec-1996.) $)
    dfrel2 $p |- ( Rel R <-> `' `' R = R ) $=
      ( vx vy wrel ccnv wceq relcnv cv cop wcel vex opelcnv bitri eqrelriv mpan
      releq mpbii impbii ) ADZAEZEZAFZUADZSUBTGZBCUAABHZCHZIZUAJUFUEITJUGAJUEUF
      TBKZCKZLUFUEAUIUHLMNOUBUCSUDUAAPQR $.

    $( A relation can be expressed as the set of ordered pairs in it.  An
       analogue of ~ dffn5 for relations.  (Contributed by Mario Carneiro,
       16-Aug-2015.) $)
    dfrel4v $p |- ( Rel R <-> R = { <. x , y >. | x R y } ) $=
      ( wrel ccnv wceq cv wbr copab dfrel2 eqcom cnvcnv3 eqeq2i 3bitri ) CDCEEZ
      CFCOFCAGBGCHABIZFCJOCKOPCABCLMN $.
  $}

  ${
    $d a b x y $.  $d a b R $.
    dfrel4.1 $e |- F/_ x R $.
    dfrel4.2 $e |- F/_ y R $.
    $( A relation can be expressed as the set of ordered pairs in it.  An
       analogue of ~ dffn5 for relations.  (Contributed by Mario Carneiro,
       16-Aug-2015.)  (Revised by Thierry Arnoux, 11-May-2017.) $)
    dfrel4 $p |- ( Rel R <-> R = { <. x , y >. | x R y } ) $=
      ( va vb wrel cv wbr copab wceq dfrel4v nfcv nfbr nfv breq12 cbvopab bitri
      eqeq2i ) CHCFIZGIZCJZFGKZLCAIZBIZCJZABKZLFGCMUDUHCUCUGFGABAUAUBCAUANDAUBN
      OBUAUBCBUANEBUBNOUGFPUGGPUAUEUBUFCQRTS $.
  $}

  $( The double converse of a class strips out all elements that are not
     ordered pairs.  (Contributed by NM, 8-Dec-2003.)  (Proof shortened by BJ,
     26-Nov-2021.) $)
  cnvcnv $p |- `' `' A = ( A i^i ( _V X. _V ) ) $=
    ( ccnv cvv cxp cin cnvin cnveqi wceq wrel relcnv df-rel mpbi relxp sseqtr4i
    wss dfrel2 dfss 3eqtr4ri inss2 mpbir eqtri ) ABZBZACCDZEZBZBZUEUBUDBZEZBUCU
    HBZEZUGUCUBUHFUFUIAUDFGUCUJOUCUKHUCUDUJUCIUCUDOUBJUCKLUDIUJUDHCCMUDPLNUCUJQ
    LRUEIZUGUEHULUEUDOAUDSUEKTUEPLUA $.

  $( Obsolete proof of ~ cnvcnv as of 26-Nov-2021.  (Contributed by NM,
     8-Dec-2003.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  cnvcnvOLD $p |- `' `' A = ( A i^i ( _V X. _V ) ) $=
    ( ccnv cvv cxp cin wceq wrel relcnv df-rel mpbi relxp dfrel2 sseqtr4i cnvin
    wss dfss cnveqi inss2 mpbir eqtr3i 3eqtr2i ) ABZBZUCCCDZBZBZEZUBUEEZBZAUDEZ
    UCUFOUCUGFUCUDUFUCGUCUDOUBHUCIJUDGUFUDFCCKUDLJMUCUFPJUBUENUJBZBZUIUJUKUHAUD
    NQUJGZULUJFUMUJUDOAUDRUJISUJLJTUA $.

  $( The double converse of a class equals its restriction to the universe.
     (Contributed by NM, 8-Oct-2007.) $)
  cnvcnv2 $p |- `' `' A = ( A |` _V ) $=
    ( ccnv cvv cxp cin cres cnvcnv df-res eqtr4i ) ABBACCDEACFAGACHI $.

  $( The double converse of a class is a subclass.  Exercise 2 of
     [TakeutiZaring] p. 25.  (Contributed by NM, 23-Jul-2004.) $)
  cnvcnvss $p |- `' `' A C_ A $=
    ( ccnv cvv cxp cin cnvcnv inss1 eqsstri ) ABBACCDZEAAFAIGH $.

  $( Equality theorem for converse.  (Contributed by FL, 19-Sep-2011.) $)
  cnveqb $p |- ( ( Rel A /\ Rel B ) -> ( A = B <-> `' A = `' B ) ) $=
    ( wrel wa wceq ccnv cnveq wi dfrel2 eqeq2 syl5ibr eqcoms sylbi eqeq1 imbi2d
    imp impbid2 ) ACZBCZDABEZAFZBFZEZABGRSUCTHZRUAFZAESUDHZAIUFAUESUDAUEEZUCUEB
    EZHZSUBFZBEUIBIUIBUJUCUHBUJEUEUJEUAUBGBUJUEJKLMUGTUHUCAUEBNOKLMPQ $.

  $( A relation empty iff its converse is empty.  (Contributed by FL,
     19-Sep-2011.) $)
  cnveq0 $p |- ( Rel A -> ( A = (/) <-> `' A = (/) ) ) $=
    ( c0 ccnv wceq wrel wb wi cnv0 rel0 cnveqb mpan2 eqeq2 bibi2d syl5ibr ax-mp
    eqcoms ) BCZBDAEZABDZACZBDZFZGZHUCBQRUBBQDZSTQDZFZRBEUFIABJKUDUAUESBQTLMNPO
    $.

  $( Alternate definition of relation.  (Contributed by NM, 14-May-2008.) $)
  dfrel3 $p |- ( Rel R <-> ( R |` _V ) = R ) $=
    ( wrel ccnv wceq cvv cres dfrel2 cnvcnv2 eqeq1i bitri ) ABACCZADAEFZADAGKLA
    AHIJ $.

  $( The domain of a universal restriction.  (Contributed by NM,
     14-May-2008.) $)
  dmresv $p |- dom ( A |` _V ) = dom A $=
    ( cvv cres cdm cin dmres incom inv1 3eqtri ) ABCDBADZEJBEJABFBJGJHI $.

  $( The range of a universal restriction.  (Contributed by NM,
     14-May-2008.) $)
  rnresv $p |- ran ( A |` _V ) = ran A $=
    ( ccnv crn cvv cres cnvcnv2 rneqi rncnvcnv eqtr3i ) ABBZCADEZCACJKAFGAHI $.

  $( Range defined in terms of image.  (Contributed by NM, 14-May-2008.) $)
  dfrn4 $p |- ran A = ( A " _V ) $=
    ( cvv cima cres crn df-ima rnresv eqtr2i ) ABCABDEAEABFAGH $.

  $( Distribute proper substitution through the range of a class.  (Contributed
     by Alan Sare, 10-Nov-2012.) $)
  csbrn $p |- [_ A / x ]_ ran B = ran [_ A / x ]_ B $=
    ( cvv cima csb crn csbima12 wcel wceq csbconstg imaeq2d wn c0 eqcomi csbprc
    0ima imaeq1d syl6eq dfrn4 3eqtr4a pm2.61i eqtri csbeq2i 3eqtr4i ) ABCDEZFZA
    BCFZDEZABCGZFUHGUGUHABDFZEZUIABDCHBDIZULUIJUMUKDUHABDDKLUMMZNNDEZULUIUONDQO
    UNULNUKENUNUHNUKABCPZRUKQSUNUHNDUPRUAUBUCABUJUFCTUDUHTUE $.

  $( The restriction of the double converse of a class.  (Contributed by NM,
     8-Apr-2007.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  rescnvcnv $p |- ( `' `' A |` B ) = ( A |` B ) $=
    ( ccnv cres cvv cin cnvcnv2 reseq1i resres wss wceq ssv sseqin2 mpbi 3eqtri
    reseq2i ) ACCZBDAEDZBDAEBFZDABDQRBAGHAEBISBABEJSBKBLBEMNPO $.

  $( The double converse of the restriction of a class.  (Contributed by NM,
     3-Jun-2007.) $)
  cnvcnvres $p |- `' `' ( A |` B ) = ( `' `' A |` B ) $=
    ( cres ccnv wrel wceq relres dfrel2 mpbi rescnvcnv eqtr4i ) ABCZDDZLADDBCLE
    MLFABGLHIABJK $.

  $( The image of the double converse of a class.  (Contributed by NM,
     8-Apr-2007.) $)
  imacnvcnv $p |- ( `' `' A " B ) = ( A " B ) $=
    ( ccnv cres crn cima rescnvcnv rneqi df-ima 3eqtr4i ) ACCZBDZEABDZEKBFABFLM
    ABGHKBIABIJ $.

  ${
    $d x y A $.
    $( The domain of a singleton is nonzero iff the singleton argument is an
       ordered pair.  (Contributed by NM, 14-Dec-2008.)  (Proof shortened by
       Andrew Salmon, 27-Aug-2011.) $)
    dmsnn0 $p |- ( A e. ( _V X. _V ) <-> dom { A } =/= (/) ) $=
      ( vx vy cv cop wceq wex csn cdm wcel cvv cxp wne wbr vex eldm df-br exbii
      c0 opex elsn eqcom 3bitri bitr2i elvv n0 3bitr4i ) ABDZCDZEZFZCGZBGUHAHZI
      ZJZBGAKKLJUNSMULUOBUOUHUIUMNZCGULCUHUMBOPUPUKCUPUJUMJUJAFUKUHUIUMQUJAUHUI
      TUAUJAUBUCRUDRBCAUEBUNUFUG $.
  $}

  $( The range of a singleton is nonzero iff the singleton argument is an
     ordered pair.  (Contributed by NM, 14-Dec-2008.) $)
  rnsnn0 $p |- ( A e. ( _V X. _V ) <-> ran { A } =/= (/) ) $=
    ( cvv cxp wcel csn cdm c0 wne crn dmsnn0 dm0rn0 necon3bii bitri ) ABBCDAEZF
    ZGHNIZGHAJOGPGNKLM $.

  $( The domain of the singleton of the empty set is empty.  (Contributed by
     NM, 30-Jan-2004.) $)
  dmsn0 $p |- dom { (/) } = (/) $=
    ( c0 csn cdm wceq cvv cxp wcel wn 0nelxp dmsnn0 necon2bbii mpbir ) ABCZADAE
    EFGZHEEINMAAJKL $.

  $( The converse of the singleton of the empty set is empty.  (Contributed by
     Mario Carneiro, 30-Aug-2015.) $)
  cnvsn0 $p |- `' { (/) } = (/) $=
    ( c0 csn ccnv wceq crn dfdm4 dmsn0 eqtr3i wrel wb relcnv relrn0 ax-mp mpbir
    cdm ) ABZCZADZQEZADZPOSAPFGHQIRTJPKQLMN $.

  $( The domain of a singleton is empty if the singleton's argument contains
     the empty set.  (Contributed by NM, 15-Dec-2008.) $)
  dmsn0el $p |- ( (/) e. A -> dom { A } = (/) ) $=
    ( c0 wcel csn cdm wne cvv cxp wn dmsnn0 0nelelxp sylbir necon4ai ) BACZADEZ
    BOBFAGGHCNIAJGGAKLM $.

  $( A singleton is a relation iff it has a nonempty domain.  (Contributed by
     NM, 25-Sep-2013.)  Make hypothesis an antecedent.  (Revised by BJ,
     12-Feb-2022.) $)
  relsn2 $p |- ( A e. V -> ( Rel { A } <-> dom { A } =/= (/) ) ) $=
    ( wcel csn wrel cvv cxp cdm c0 wne relsng dmsnn0 syl6bb ) ABCADZEAFFGCNHIJA
    BKALM $.

  ${
    relsn2OLD.1 $e |- A e. _V $.
    $( Obsolete version of ~ relsn2 .  (Contributed by NM, 25-Sep-2013.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    relsn2OLD $p |- ( Rel { A } <-> dom { A } =/= (/) ) $=
      ( csn wrel cvv cxp wcel cdm c0 wne relsn dmsnn0 bitri ) ACZDAEEFGNHIJABKA
      LM $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x V $.
    $( The domain of a singleton of an ordered pair is the singleton of the
       first member.  (Contributed by Mario Carneiro, 26-Apr-2015.) $)
    dmsnopg $p |- ( B e. V -> dom { <. A , B >. } = { A } ) $=
      ( vx vy wcel cop csn cdm cv wceq wex vex opth1 exlimiv opeq1 opeq2 eqeq1d
      spcegv syl5 impbid2 eldm2 opex elsn exbii bitri velsn 3bitr4g eqrdv ) BCF
      ZDABGZHZIZAHZUJDJZEJZGZUKKZELZUOAKZUOUMFZUOUNFUJUSUTURUTEUOUPABDMZEMNOUTU
      OBGZUKKZUJUSUOABPURVDEBCUPBKUQVCUKUPBUOQRSTUAVAUQULFZELUSEUOULVBUBVEUREUQ
      UKUOUPUCUDUEUFDAUGUHUI $.

    $( The domain of a singleton of an ordered pair is a subset of the
       singleton of the first member (with no sethood assumptions on ` B ` ).
       (Contributed by Mario Carneiro, 30-Apr-2015.) $)
    dmsnopss $p |- dom { <. A , B >. } C_ { A } $=
      ( cvv wcel cop csn cdm wss dmsnopg eqimss syl wn opprc2 sneqd dmeqd dmsn0
      wceq c0 syl6eq 0ss syl6eqss pm2.61i ) BCDZABEZFZGZAFZHZUCUFUGQUHABCIUFUGJ
      KUCLZUFRUGUIUFRFZGRUIUEUJUIUDRABMNOPSUGTUAUB $.

    $( The domain of an unordered pair of ordered pairs.  (Contributed by Mario
       Carneiro, 26-Apr-2015.) $)
    dmpropg $p |- ( ( B e. V /\ D e. W ) ->
        dom { <. A , B >. , <. C , D >. } = { A , C } ) $=
      ( wcel wa cop csn cdm cun cpr wceq dmsnopg uneq12 syl2an df-pr dmeqi dmun
      eqtri 3eqtr4g ) BEGZDFGZHABIZJZKZCDIZJZKZLZAJZCJZLZUEUHMZKZACMUCUGULNUJUM
      NUKUNNUDABEOCDFOUGULUJUMPQUPUFUILZKUKUOUQUEUHRSUFUITUAACRUB $.
  $}

  ${
    dmsnop.1 $e |- B e. _V $.
    $( The domain of a singleton of an ordered pair is the singleton of the
       first member.  (Contributed by NM, 30-Jan-2004.)  (Proof shortened by
       Andrew Salmon, 27-Aug-2011.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    dmsnop $p |- dom { <. A , B >. } = { A } $=
      ( cvv wcel cop csn cdm wceq dmsnopg ax-mp ) BDEABFGHAGICABDJK $.

    dmprop.1 $e |- D e. _V $.
    $( The domain of an unordered pair of ordered pairs.  (Contributed by NM,
       13-Sep-2011.) $)
    dmprop $p |- dom { <. A , B >. , <. C , D >. } = { A , C } $=
      ( cvv wcel cop cpr cdm wceq dmpropg mp2an ) BGHDGHABICDIJKACJLEFABCDGGMN
      $.

    dmtpop.1 $e |- F e. _V $.
    $( The domain of an unordered triple of ordered pairs.  (Contributed by NM,
       14-Sep-2011.) $)
    dmtpop $p |- dom { <. A , B >. , <. C , D >. , <. E , F >. }
                        = { A , C , E } $=
      ( cop ctp cdm cpr csn cun df-tp dmeqi dmun dmprop dmsnop uneq12i 3eqtri
      eqtr4i ) ABJZCDJZEFJZKZLZACMZENZOZACEKUHUDUEMZUFNZOZLULLZUMLZOUKUGUNUDUEU
      FPQULUMRUOUIUPUJABCDGHSEFITUAUBACEPUC $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Double converse of a singleton of an ordered pair.  (Unlike ~ cnvsn ,
       this does not need any sethood assumptions on ` A ` and ` B ` .)
       (Contributed by Mario Carneiro, 26-Apr-2015.) $)
    cnvcnvsn $p |- `' `' { <. A , B >. } = `' { <. B , A >. } $=
      ( vx vy cop csn ccnv relcnv cv wcel vex opelcnv wceq wa opth 3bitr4i opex
      ancom elsn bitri eqrelriiv ) CDABEZFZGZGZBAEZFZGZUDHUGHCIZDIZEZUEJUJUIEZU
      DJZUKUHJZUIUJUDCKZDKZLUKUCJZULUGJZUMUNUKUBMZULUFMZUQURUIAMZUJBMZNVBVANUSU
      TVAVBRUIUJABUOUPOUJUIBAUPUOOPUKUBUIUJQSULUFUJUIQSPUJUIUCUPUOLUIUJUGUOUPLP
      TUA $.

    $( The domain of the singleton of the singleton of a singleton.
       (Contributed by NM, 15-Sep-2004.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    dmsnsnsn $p |- dom { { { A } } } = { A } $=
      ( vx cvv wcel csn cdm wceq cv cop vex opid sneq sneqd syl5eq dmeqd dmsnop
      eqeq12d vtoclg wn c0 0ex snid dmsn0el ax-mp snprc biimpi 3eqtr4a pm2.61i
      ) ACDZAEZEZEZFZUJGZBHZUOIZEZFZUOEZGUNBACUOAGZURUMUSUJUTUQULUTUPUKUTUPUSEU
      KUOBJZKUTUSUJUOALZMNMOVBQUOUOVAPRUISZTEZEZFZTUMUJTVDDVFTGTUAUBVDUCUDVCULV
      EVCUKVDVCUJTVCUJTGAUEUFZMMOVGUGUH $.
  $}

  $( The range of a singleton of an ordered pair is the singleton of the second
     member.  (Contributed by NM, 24-Jul-2004.)  (Revised by Mario Carneiro,
     30-Apr-2015.) $)
  rnsnopg $p |- ( A e. V -> ran { <. A , B >. } = { B } ) $=
    ( wcel cop csn crn cdm ccnv df-rn dfdm4 cnvcnvsn dmeqi 3eqtri eqtr4i syl5eq
    dmsnopg ) ACDABEFZGZBAEFZHZBFSRIZHZUARJUATIZGUDIZHUCTKUDJUEUBBALMNOBACQP $.

  $( The range of a pair of ordered pairs is the pair of second members.
     (Contributed by Thierry Arnoux, 3-Jan-2017.) $)
  rnpropg $p |- ( ( A e. V /\ B e. W )
    -> ran { <. A , C >. , <. B , D >. } = { C , D } ) $=
    ( wcel cop cpr crn csn cun df-pr rneqi wceq rnsnopg adantr adantl uneq12d
    wa rnun 3eqtr4g syl5eq ) AEGZBFGZTZACHZBDHZIZJUGKZUHKZLZJZCDIZUIULUGUHMNUFU
    JJZUKJZLCKZDKZLUMUNUFUOUQUPURUDUOUQOUEACEPQUEUPUROUDBDFPRSUJUKUACDMUBUC $.

  $( Converse of a singleton of an ordered pair.  (Contributed by NM,
     23-Jan-2015.)  (Proof shortened by BJ, 12-Feb-2022.) $)
  cnvsng $p |-
            ( ( A e. V /\ B e. W ) -> `' { <. A , B >. } = { <. B , A >. } ) $=
    ( wcel cop csn ccnv cnvcnvsn wrel wceq relsnopg ancoms dfrel2 sylib syl5eqr
    wa ) ACEZBDEZQZABFGHBAFGZHHZUABAITUAJZUBUAKSRUCBADCLMUANOP $.

  ${
    cnvsn.1 $e |- A e. _V $.
    $( The range of a singleton of an ordered pair is the singleton of the
       second member.  (Contributed by NM, 24-Jul-2004.)  (Revised by Mario
       Carneiro, 26-Apr-2015.) $)
    rnsnop $p |- ran { <. A , B >. } = { B } $=
      ( cvv wcel cop csn crn wceq rnsnopg ax-mp ) ADEABFGHBGICABDJK $.

    cnvsn.2 $e |- B e. _V $.
    $( Extract the first member of an ordered pair.  (See ~ op2nda to extract
       the second member, ~ op1stb for an alternate version, and ~ op1st for
       the preferred version.)  (Contributed by Raph Levien, 4-Dec-2003.) $)
    op1sta $p |- U. dom { <. A , B >. } = A $=
      ( cop csn cdm cuni dmsnop unieqi unisn eqtri ) ABEFGZHAFZHAMNABDIJACKL $.

    $( Converse of a singleton of an ordered pair.  (Contributed by NM,
       11-May-1998.)  (Revised by Mario Carneiro, 26-Apr-2015.)  (Proof
       shortened by BJ, 12-Feb-2022.) $)
    cnvsn $p |- `' { <. A , B >. } = { <. B , A >. } $=
      ( cvv wcel cop csn ccnv wceq cnvsng mp2an ) AEFBEFABGHIBAGHJCDABEEKL $.

    $( Obsolete proof of ~ cnvsn as of 12-Feb-2022.  (Contributed by NM,
       11-May-1998.)  (Revised by Mario Carneiro, 26-Apr-2015.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    cnvsnOLD $p |- `' { <. A , B >. } = { <. B , A >. } $=
      ( cop csn ccnv cnvcnvsn wrel wceq relsnop dfrel2 mpbi eqtr3i ) BAEFZGGZAB
      EFGOBAHOIPOJBADCKOLMN $.


    $( Extract the second member of an ordered pair.  Theorem 5.12(ii) of
       [Monk1] p. 52.  (See ~ op1stb to extract the first member, ~ op2nda for
       an alternate version, and ~ op2nd for the preferred version.)
       (Contributed by NM, 25-Nov-2003.) $)
    op2ndb $p |- |^| |^| |^| `' { <. A , B >. } = B $=
      ( cop csn ccnv cint cnvsn inteqi opex intsn eqtri op1stb ) ABEFGZHZHZHBAE
      ZHZHBQSPRPRFZHROTABCDIJRBAKLMJJBADCNM $.

    $( Extract the second member of an ordered pair.  (See ~ op1sta to extract
       the first member, ~ op2ndb for an alternate version, and ~ op2nd for the
       preferred version.)  (Contributed by NM, 17-Feb-2004.)  (Proof shortened
       by Andrew Salmon, 27-Aug-2011.) $)
    op2nda $p |- U. ran { <. A , B >. } = B $=
      ( cop csn crn cuni rnsnop unieqi unisn eqtri ) ABEFGZHBFZHBMNABCIJBDKL $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Obsolete proof of ~ cnvsng as of 12-Feb-2022.  (Contributed by NM,
       23-Jan-2015.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    cnvsngOLD $p |- ( ( A e. V /\ B e. W ) ->
      `' { <. A , B >. } = { <. B , A >. } ) $=
      ( vx vy cv cop csn ccnv wceq opeq1 sneqd cnveqd opeq2 eqeq12d vex vtocl2g
      cnvsn ) EGZFGZHZIZJZUATHZIZKAUAHZIZJZUAAHZIZKABHZIZJZBAHZIZKEFABCDTAKZUDU
      IUFUKUQUCUHUQUBUGTAUALMNUQUEUJTAUAOMPUABKZUIUNUKUPURUHUMURUGULUABAOMNURUJ
      UOUABALMPTUAEQFQSR $.

    $( Swap the members of an ordered pair.  (Contributed by NM, 14-Dec-2008.)
       (Revised by Mario Carneiro, 30-Aug-2015.) $)
    opswap $p |- U. `' { <. A , B >. } = <. B , A >. $=
      ( cvv wcel wa cop csn ccnv cuni wceq cnvsng unieqd opex unisn syl6eq uni0
      wn c0 opprc sneqd cnveqd cnvsn0 ancom sylnbi 3eqtr4a pm2.61i ) ACDZBCDZEZ
      ABFZGZHZIZBAFZJUIUMUNGZIUNUIULUOABCCKLUNBAMNOUIQZRIRUMUNPUPULRUPULRGZHRUP
      UKUQUPUJRABSTUAUBOLUIUHUGEUNRJUGUHUCBASUDUEUF $.
  $}

  ${
    $d s t A $.  $d s t B $.  $d s t F $.
    $( An image under the converse of a restriction.  (Contributed by Jeff
       Hankins, 12-Jul-2009.) $)
    cnvresima $p |- ( `' ( F |` A ) " B ) = ( ( `' F " B ) i^i A ) $=
      ( vt vs cres ccnv cima cin wcel cop wex 19.41v vex opelcnv anbi1i 3bitr4i
      cv wa elima3 opelres bianass exbii elin eqriv ) DCAFZGZBHZCGZBHZAIZERZBJZ
      ULDRZKZUGJZSZELZUNUJJZUNAJZSZUNUHJUNUKJUMUOUIJZSZUTSZELVCELZUTSURVAVCUTEM
      UQVDEUPVBUTUMUNULKZUFJVFCJZUTSUPVBUTSUNULCAENZUAULUNUFVHDNZOVBVGUTULUNCVH
      VIOPQUBUCUSVEUTEUNUIBVITPQEUNUGBVITUNUJAUDQUE $.
  $}

  $( A class restricted to its domain equals its double converse.  (Contributed
     by NM, 8-Apr-2007.) $)
  resdm2 $p |- ( A |` dom A ) = `' `' A $=
    ( ccnv cdm cres rescnvcnv wrel relcnv resdm ax-mp dmcnvcnv reseq2i 3eqtr3ri
    wceq ) ABZBZOCZDZAPDOAACZDAPEOFQOMNGOHIPRAAJKL $.

  $( Restriction to the domain of a restriction.  (Contributed by NM,
     8-Apr-2007.) $)
  resdmres $p |- ( A |` dom ( A |` B ) ) = ( A |` B ) $=
    ( cres cdm ccnv cvv cxp in12 df-res resdm2 eqtr3i ineq2i incom 3eqtri dmres
    cin xpeq1i xpindir eqtri 3eqtr4i rescnvcnv ) AABCZDZCZAEEZBCZUBABFGZADZFGZP
    ZPZUEUGPZUDUFUKUGAUIPZPUGUEPULAUGUIHUMUEUGAUHCUMUEAUHIAJKLUGUEMNUDAUCFGZPUK
    AUCIUNUJAUNBUHPZFGUJUCUOFABOQBUHFRSLSUEBITABUAS $.

  $( A restriction by an arbitrary set is a restriction by its domain.
     (Contributed by AV, 16-Nov-2020.) $)
  resresdm $p |- ( F = ( E |` A ) -> F = ( E |` dom F ) ) $=
    ( cres wceq cdm id dmeq reseq2d resdmres syl6req eqtrd ) CBADZEZCMBCFZDZNGN
    PBMFZDMNOQBCMHIBAJKL $.

  $( The image of the domain of a restriction.  (Contributed by NM,
     8-Apr-2007.) $)
  imadmres $p |- ( A " dom ( A |` B ) ) = ( A " B ) $=
    ( cres cdm crn cima resdmres rneqi df-ima 3eqtr4i ) AABCZDZCZEKEALFABFMKABG
    HALIABIJ $.

  ${
    $d x y C $.  $d y A $.  $d y B $.  $d y F $.  $d x V $.
    dmmpt.1 $e |- F = ( x e. A |-> B ) $.
    $( The preimage of a function in maps-to notation.  (Contributed by Stefan
       O'Rear, 25-Jan-2015.) $)
    mptpreima $p |- ( `' F " C ) = { x e. A | B e. C } $=
      ( vy ccnv cima cv wcel wceq wa copab crab eqtri crn wex cab bitri cnvopab
      cmpt df-mpt cnveqi imaeq1i df-ima resopab rneqi ancom anass exbii df-clel
      cres 19.42v bicomi anbi2i abbii rnopab df-rab 3eqtr4i ) EHZDIAJBKZGJZCLZM
      ZGANZDIZCDKZABOZVAVFDVAVEAGNZHVFEVJEABCUBVJFAGBCUCPUDVEAGUAPUEVGVFDUMZQZV
      IVFDUFVLVCDKZVEMZGANZQZVIVKVOVEGADUGUHVNGRZASVBVHMZASVPVIVQVRAVQVBVDVMMZM
      ZGRZVRVNVTGVNVEVMMVTVMVEUIVBVDVMUJTUKWAVBVSGRZMVRVBVSGUNWBVHVBVHWBGCDULUO
      UPTTUQVNGAURVHABUSUTPPP $.

    $( Converse singleton image of a function defined by maps-to.  (Contributed
       by Stefan O'Rear, 25-Jan-2015.) $)
    mptiniseg $p |- ( C e. V -> ( `' F " { C } ) = { x e. A | B = C } ) $=
      ( wcel ccnv csn cima crab wceq mptpreima elsn2g rabbidv syl5eq ) DFHZEIDJ
      ZKCSHZABLCDMZABLABCSEGNRTUAABCDFOPQ $.

    $( The domain of the mapping operation in general.  (Contributed by NM,
       16-May-1995.)  (Revised by Mario Carneiro, 22-Mar-2015.) $)
    dmmpt $p |- dom F = { x e. A | B e. _V } $=
      ( cdm ccnv crn cvv cima wcel crab dfdm4 dfrn4 mptpreima 3eqtri ) DFDGZHQI
      JCIKABLDMQNABCIDEOP $.

    $d x A $.
    $( The domain of a mapping is a subset of its base class.  (Contributed by
       Scott Fenton, 17-Jun-2013.) $)
    dmmptss $p |- dom F C_ A $=
      ( cdm cvv wcel crab dmmpt ssrab2 eqsstri ) DFCGHZABIBABCDEJMABKL $.
  $}

  ${
    $d A x $.
    $( The domain of the mapping operation is the stated domain, if the
       function value is always a set.  (Contributed by Mario Carneiro,
       9-Feb-2013.)  (Revised by Mario Carneiro, 14-Sep-2013.) $)
    dmmptg $p |- ( A. x e. A B e. V -> dom ( x e. A |-> B ) = A ) $=
      ( wcel wral cvv crab cmpt cdm wceq elex ralimi rabid2 eqid dmmpt syl6reqr
      sylibr ) CDEZABFZBCGEZABHZABCIZJTUAABFBUBKSUAABCDLMUAABNRABCUCUCOPQ $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z C $.
    $( A composition is a relation.  Exercise 24 of [TakeutiZaring] p. 25.
       (Contributed by NM, 26-Jan-1997.) $)
    relco $p |- Rel ( A o. B ) $=
      ( vx vz vy cv wbr wa wex ccom df-co relopabi ) CFDFZBGMEFAGHDICEABJCEDABK
      L $.

    $( Alternate definition of a class composition, using only one bound
       variable.  (Contributed by NM, 19-Dec-2008.) $)
    dfco2 $p |- ( A o. B )
                = U_ x e. _V ( ( `' B " { x } ) X. ( A " { x } ) ) $=
      ( vy vz ccom cvv ccnv cv csn cima cxp wrel wcel cop wex vex elimasn bitri
      wa ciun relco reliun relxp a1i mprgbir wb opelco2g mp2an wrex rexv opelxp
      eliun opelcnv anbi12i exbii 3bitrri eqrelriiv ) DEBCFZAGCHZAIZJZKZBVBKZLZ
      UAZBCUBVFMVEMZAGAGVEUCVGVAGNVCVDUDUEUFDIZEIZOZUSNZVHVAOCNZVAVIOBNZTZAPZVJ
      VFNZVHGNVIGNVKVOUGDQZEQZAVHVIBCGGUHUIVPVJVENZAGUJVSAPVOAVJGVEUMVSAUKVSVNA
      VSVHVCNZVIVDNZTVNVHVIVCVDULVTVLWAVMVTVAVHOUTNVLUTVAVHAQZVQRVAVHCWBVQUNSBV
      AVIWBVRRUOSUPUQSUR $.

    $( Generalization of ~ dfco2 , where ` C ` can have any value between
       ` dom A i^i ran B ` and ` _V ` .  (Contributed by NM, 21-Dec-2008.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    dfco2a $p |- ( ( dom A i^i ran B ) C_ C -> ( A o. B )
         = U_ x e. C ( ( `' B " { x } ) X. ( A " { x } ) ) ) $=
      ( vy vz vw cvv cv cima ciun wcel wrex wex wa cop vex sylbi 3bitr4g eliun
      cdm crn cin wss ccom ccnv csn cxp dfco2 wceq wbr wb eliniseg ax-mp brelrn
      elimasn opeldm anim12ci adantl exlimivv elxp elin 3imtr4i pm4.71rd exbidv
      ssel syl5 rexv df-rex eqrdv syl5eq ) BUAZCUBZUCZDUDZBCUEAHCUFAIZUGZJZBVQJ
      ZUHZKZADVTKZABCUIVOEWAWBVOEIZVTLZAHMZWDADMZWCWALWCWBLVOWDANVPDLZWDOZANWEW
      FVOWDWHAVOWDWGWDVPVNLZVOWGWCFIZGIZPUJZWJVRLZWKVSLZOZOZGNFNVPVLLZVPVMLZOZW
      DWIWPWSFGWOWSWLWMWRWNWQWMWJVPCUKZWRVPHLWMWTULAQZCVPWJHFQZUMUNWJVPCXBXAUOR
      WNVPWKPBLWQBVPWKXAGQZUPVPWKBXAXCUQRURUSUTFGWCVRVSVAVPVLVMVBVCVNDVPVFVGVDV
      EWDAVHWDADVISAWCHVTTAWCDVTTSVJVK $.

    $( Class composition distributes over union.  (Contributed by NM,
       21-Dec-2008.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    coundi $p |- ( A o. ( B u. C ) ) = ( ( A o. B ) u. ( A o. C ) ) $=
      ( vx vz vy cv wbr wa wex copab cun ccom wo unopab brun anbi1i andir bitri
      df-co exbii 19.43 bitr2i opabbii eqtri uneq12i 3eqtr4ri ) DGZEGZBHZUIFGAH
      ZIZEJZDFKZUHUICHZUKIZEJZDFKZLZUHUIBCLZHZUKIZEJZDFKZABMZACMZLAUTMUSUMUQNZD
      FKVDUMUQDFOVGVCDFVCULUPNZEJVGVBVHEVBUJUONZUKIVHVAVIUKUHUIBCPQUJUOUKRSUAUL
      UPEUBUCUDUEVEUNVFURDFEABTDFEACTUFDFEAUTTUG $.

    $( Class composition distributes over union.  (Contributed by NM,
       21-Dec-2008.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    coundir $p |- ( ( A u. B ) o. C ) = ( ( A o. C ) u. ( B o. C ) ) $=
      ( vx vy vz cv wbr wa wex copab cun ccom wo unopab brun anbi2i bitri df-co
      andi exbii 19.43 bitr2i opabbii eqtri uneq12i 3eqtr4ri ) DGEGZCHZUHFGZAHZ
      IZEJZDFKZUIUHUJBHZIZEJZDFKZLZUIUHUJABLZHZIZEJZDFKZACMZBCMZLUTCMUSUMUQNZDF
      KVDUMUQDFOVGVCDFVCULUPNZEJVGVBVHEVBUIUKUONZIVHVAVIUIUHUJABPQUIUKUOTRUAULU
      PEUBUCUDUEVEUNVFURDFEACSDFEBCSUFDFEUTCSUG $.

    $( Restricted first member of a class composition.  (Contributed by NM,
       12-Oct-2004.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    cores $p |- ( ran B C_ C -> ( ( A |` C ) o. B ) = ( A o. B ) ) $=
      ( vz vy vx crn wss cv wbr cres wa wex copab ccom wcel wb vex brelrn df-co
      ssel brres rbaib syl56 pm5.32d exbidv opabbidv 3eqtr4g ) BGZCHZDIZEIZBJZU
      LFIZACKZJZLZEMZDFNUMULUNAJZLZEMZDFNUOBOABOUJURVADFUJUQUTEUJUMUPUSUMULUIPU
      JULCPZUPUSQUKULBDRERSUICULUAUPUSVBULUNACFRUBUCUDUEUFUGDFEUOBTDFEABTUH $.

    $( Associative law for the restriction of a composition.  (Contributed by
       NM, 12-Dec-2006.) $)
    resco $p |- ( ( A o. B ) |` C ) = ( A o. ( B |` C ) ) $=
      ( vx vy vz ccom cres relres relco cv wbr wcel wex vex anbi1i 19.41v brres
      wa brco an32 bitr4i exbii 3bitr2i 3bitr4i eqbrriv ) DEABGZCHZABCHZGZUGCIA
      UIJDKZEKZUGLZUKCMZSZUKFKZUILZUPULALZSZFNZUKULUHLUKULUJLUOUKUPBLZURSZFNZUN
      SVBUNSZFNUTUMVCUNFUKULABDOZEOZTPVBUNFQVDUSFVDVAUNSZURSUSVAURUNUAUQVGURUKU
      PBCFORPUBUCUDUKULUGCVFRFUKULAUIVEVFTUEUF $.

    $( Image of the composition of two classes.  (Contributed by Jason
       Orendorff, 12-Dec-2006.) $)
    imaco $p |- ( ( A o. B ) " C ) = ( A " ( B " C ) ) $=
      ( vx vy vz ccom cima cv wbr wrex wcel wa wex df-rex vex elima exbii bitri
      rexcom4 r19.41v brco rexbii anbi1i 3bitr4i 3bitr4ri eqriv ) DABGZCHZABCHZ
      HZEIZDIZAJZEUJKULUJLZUNMZENZUMUKLUMUILZUNEUJOEUMAUJDPZQFIZULBJZUNMZENZFCK
      ZVAFCKZUNMZENZURUQVDVBFCKZENVGVBFECTVHVFEVAUNFCUARSURUTUMUHJZFCKVDFUMUHCU
      SQVIVCFCEUTUMABFPUSUBUCSUPVFEUOVEUNFULBCEPQUDRUEUFUG $.

    $( The range of the composition of two classes.  (Contributed by NM,
       12-Dec-2006.) $)
    rnco $p |- ran ( A o. B ) = ran ( A |` ran B ) $=
      ( vy vx vz ccom crn cres cv wbr wex wcel wa vex exbii excom ancom 3bitr4i
      brco elrn 19.41v anbi2i brres bitr4i 3bitri eqriv ) CABFZGZABGZHZGZDIZCIZ
      UGJZDKZEIZUMUJJZEKZUMUHLUMUKLUOULUPBJZUPUMAJZMZEKZDKVADKZEKURUNVBDEULUMAB
      DNCNZSOVADEPVCUQEVCUTUPUILZMZUQUSDKZUTMUTVGMVCVFVGUTQUSUTDUAVEVGUTDUPBENT
      UBRUPUMAUIVDUCUDOUEDUMUGVDTEUMUJVDTRUF $.
  $}

  $( The range of the composition of two classes.  (Contributed by NM,
     27-Mar-2008.) $)
  rnco2 $p |- ran ( A o. B ) = ( A " ran B ) $=
    ( ccom crn cres cima rnco df-ima eqtr4i ) ABCDABDZEDAJFABGAJHI $.

  $( The domain of a composition.  Exercise 27 of [Enderton] p. 53.
     (Contributed by NM, 4-Feb-2004.) $)
  dmco $p |- dom ( A o. B ) = ( `' B " dom A ) $=
    ( ccom cdm ccnv crn cima dfdm4 cnvco rneqi rnco2 imaeq2i eqtr4i 3eqtri ) AB
    CZDOEZFBEZAEZCZFZQADZGZOHPSABIJTQRFZGUBQRKUAUCQAHLMN $.

  $( A composition of two relations is empty iff there is no overlap between
     the range of the second and the domain of the first.  Useful in
     combination with ~ coundi and ~ coundir to prune meaningless terms in the
     result.  (Contributed by Stefan O'Rear, 8-Oct-2014.) $)
  coeq0 $p |- ( ( A o. B ) = (/) <-> ( dom A i^i ran B ) = (/) ) $=
    ( ccom c0 wceq crn cres cdm wrel wb relco relrn0 ax-mp eqeq1i relres reldm0
    cin rnco dmres incom eqtri 3bitr3i 3bitri ) ABCZDEZUDFZDEZABFZGZFZDEZAHZUHQ
    ZDEZUDIUEUGJABKUDLMUFUJDABRNUIDEZUIHZDEZUKUNUIIZUOUQJAUHOZUIPMURUOUKJUSUILM
    UPUMDUPUHULQUMAUHSUHULTUANUBUC $.

  ${
    $d w x y z A $.  $d w y z B $.  $d w y z C $.
    $( Composition with an indexed union.  (Contributed by NM, 21-Dec-2008.) $)
    coiun $p |- ( A o. U_ x e. C B ) = U_ x e. C ( A o. B ) $=
      ( vy vz vw ciun ccom relco wrel cv wcel cop wrex wbr wa wex eliun bitr4i
      reliun a1i mprgbir df-br rexbii 3bitr4i anbi1i r19.41v rexcom4 vex opelco
      exbii eqrelriiv ) EFBADCHZIZADBCIZHZBUNJUQKUPKZADADUPUAURALDMBCJUBUCELZFL
      ZNZUOMZVAUPMZADOZVAUQMUSGLZUNPZVEUTBPZQZGRZUSVECPZVGQZGRZADOZVBVDVIVKADOZ
      GRVMVHVNGVHVJADOZVGQVNVFVOVGUSVENZUNMVPCMZADOVFVOAVPDCSUSVEUNUDVJVQADUSVE
      CUDUEUFUGVJVGADUHTULVKAGDUITGUSUTBUNEUJZFUJZUKVCVLADGUSUTBCVRVSUKUEUFAVAD
      UPSTUM $.
  $}

  $( A composition is not affected by a double converse of its first argument.
     (Contributed by NM, 8-Oct-2007.) $)
  cocnvcnv1 $p |- ( `' `' A o. B ) = ( A o. B ) $=
    ( ccnv ccom cvv cres cnvcnv2 coeq1i crn wss wceq ssv cores ax-mp eqtri ) AC
    CZBDAEFZBDZABDZPQBAGHBIZEJRSKTLABEMNO $.

  $( A composition is not affected by a double converse of its second argument.
     (Contributed by NM, 8-Oct-2007.) $)
  cocnvcnv2 $p |- ( A o. `' `' B ) = ( A o. B ) $=
    ( ccnv ccom cres cnvcnv2 coeq2i resco wrel wceq relco dfrel3 mpbi 3eqtr2i
    cvv ) ABCCZDABOEZDABDZOEZRPQABFGABOHRISRJABKRLMN $.

  $( Absorption of a reverse (preimage) restriction of the second member of a
     class composition.  (Contributed by NM, 11-Dec-2006.) $)
  cores2 $p |- ( dom A C_ C -> ( A o. `' ( `' B |` C ) ) = ( A o. B ) ) $=
    ( cdm wss ccnv cres ccom wceq dfdm4 sseq1i cores sylbi cnvco cocnvcnv1 wrel
    crn relco dfrel2 mpbi eqtri 3eqtr4g cnveqd 3eqtr3g ) ADZCEZABFZCGZFZHZFZFZA
    BHZFZFZUJUMUFUKUNUFUHAFZHZUGUPHZUKUNUFUPQZCEUQURIUEUSCAJKUGUPCLMUKUIFUPHUQA
    UINUHUPOUAABNUBUCUJPULUJIAUIRUJSTUMPUOUMIABRUMSTUD $.

  ${
    $d x y z A $.
    $( Composition with the empty set.  Theorem 20 of [Suppes] p. 63.
       (Contributed by NM, 24-Apr-2004.) $)
    co02 $p |- ( A o. (/) ) = (/) $=
      ( vx vy vz c0 ccom relco rel0 cop wcel wbr wex br0 intnanr nex vex opelco
      cv wa mtbir noel 2false eqrelriiv ) BCAEFZEAEGHBRZCRZIZUDJZUGEJUHUEDRZEKZ
      UIUFAKZSZDLULDUJUKUEUIMNODUEUFAEBPCPQTUGUAUBUC $.

    $( Composition with the empty set.  (Contributed by NM, 24-Apr-2004.) $)
    co01 $p |- ( (/) o. A ) = (/) $=
      ( c0 ccnv ccom cnv0 cnvco coeq2i co02 3eqtri eqtr4i cnveqi wrel wceq rel0
      dfrel2 mpbi relco 3eqtr3ri ) BCZCZBADZCZCZBUASUBSBUBEUBACZSDUDBDBBAFSBUDE
      GUDHIJKBLTBMNBOPUALUCUAMBAQUAOPR $.

    $( Composition with the identity relation.  Part of Theorem 3.7(i) of
       [Monk1] p. 36.  (Contributed by NM, 22-Apr-2004.) $)
    coi1 $p |- ( Rel A -> ( A o. _I ) = A ) $=
      ( vx vy vz cid ccom wrel wceq relco cv cop wcel wbr wex vex opelco equcom
      wa ideq bitri anbi1i exbii breq1 equsexvw df-br eqrelriv mpan ) AEFZGAGUH
      AHAEIBCUHABJZCJZKZUHLZUIUJAMZUKALULUIDJZEMZUNUJAMZRZDNZUMDUIUJAEBOCOPURUN
      UIHZUPRZDNUMUQUTDUOUSUPUOUIUNHUSUIUNDOSBDQTUAUBUPUMDBUNUIUJAUCUDTTUIUJAUE
      TUFUG $.

    $( Composition with the identity relation.  Part of Theorem 3.7(i) of
       [Monk1] p. 36.  (Contributed by NM, 22-Apr-2004.) $)
    coi2 $p |- ( Rel A -> ( _I o. A ) = A ) $=
      ( wrel ccnv wceq ccom dfrel2 cnvco relcnv ax-mp cnveqi eqtr3i coeq2 coeq1
      cid coi1 cnvi sylan9eq mpan2 id 3eqtr3a sylbi ) ABACZCZADZNAEZADAFUDNCZUC
      EZUCUEAUBNEZCUGUCUBNGUHUBUBBUHUBDAHUBOIJKUDUFNDZUGUEDPUDUIUGUFAEUEUCAUFLU
      FNAMQRUDSTUA $.
  $}

  $( Composition with a restricted identity relation.  (Contributed by FL,
     19-Jun-2011.)  (Revised by Stefan O'Rear, 7-Mar-2015.) $)
  coires1 $p |- ( A o. ( _I |` B ) ) = ( A |` B ) $=
    ( ccnv cres ccom cocnvcnv1 wrel wceq relcnv coi1 ax-mp eqtr3i reseq1i resco
    cid rescnvcnv ) ACZCZBDZAOBDEZABDAOEZBDSTUARBROEZUARAOFRGUBRHQIRJKLMAOBNLAB
    PL $.

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.
    $( Associative law for class composition.  Theorem 27 of [Suppes] p. 64.
       Also Exercise 21 of [Enderton] p. 53.  Interestingly, this law holds for
       any classes whatsoever, not just functions or even relations.
       (Contributed by NM, 27-Jan-1997.) $)
    coass $p |- ( ( A o. B ) o. C ) = ( A o. ( B o. C ) ) $=
      ( vx vy vz vw ccom relco cv wbr wa wex cop wcel brco exbii opelco 3bitr4i
      vex excom anass 2exbii bitr4i anbi2i exdistr anbi1i 19.41v eqrelriiv ) DE
      ABHZCHZABCHZHZUJCIAULIDJZFJZCKZUOGJZBKZUQEJZAKZLZLZGMFMZUPURLZUTLZFMZGMZU
      NUSNZUKOZVHUMOZVCVBFMGMVGVBFGUAVEVBGFUPURUTUBUCUDUPUOUSUJKZLZFMUPVAGMZLZF
      MVIVCVLVNFVKVMUPGUOUSABFTETZPUEQFUNUSUJCDTZVORUPVAFGUFSUNUQULKZUTLZGMVDFM
      ZUTLZGMVJVGVRVTGVQVSUTFUNUQBCVPGTPUGQGUNUSAULVPVORVFVTGVDUTFUHQSSUI $.
  $}

  $( A relation is transitive iff its converse is transitive.  (Contributed by
     FL, 19-Sep-2011.) $)
  relcnvtr $p |- ( Rel R ->
     ( ( R o. R ) C_ R <-> ( `' R o. `' R ) C_ `' R ) ) $=
    ( wrel ccom wss ccnv cnvco cnvss syl5eqssr wceq wi sseq1 dfrel2 coeq1 coeq2
    eqtrd id sseq12d biimpd sylbi com12 syl6bi mpsyl impbid2 ) ABZAACZADZAEZUGC
    ZUGDZUFUHUEEUGAAFUEAGHUIUDUFUHEZUGEZUKCZIZUIUJUKDZUDUFJZUGUGFUHUGGUMUNULUKD
    ZUOUJULUKKUDUPUFUDUKAIZUPUFJALUQUPUFUQULUEUKAUQULAUKCUEUKAUKMUKAANOUQPQRSTU
    AUBTUC $.

  ${
    $d x y A $.
    $( A relation is included in the Cartesian product of its domain and range.
       Exercise 4.12(t) of [Mendelson] p. 235.  (Contributed by NM,
       3-Aug-1994.) $)
    relssdmrn $p |- ( Rel A -> A C_ ( dom A X. ran A ) ) $=
      ( vx vy wrel cdm crn cxp id cv cop wi wex 19.8a wa opelxp vex eldm2 elrn2
      wcel anbi12i bitri sylanbrc a1i relssdv ) ADZBCAAEZAFZGZUEHBIZCIZJZASZUKU
      HSZKUEULULCLZULBLZUMULCMULBMUMUIUFSZUJUGSZNUNUONUIUJUFUGOUPUNUQUOCUIABPQB
      UJACPRTUAUBUCUD $.
  $}

  $( The converse is a subset of the cartesian product of range and domain.
     (Contributed by Mario Carneiro, 2-Jan-2017.) $)
  cnvssrndm $p |- `' A C_ ( ran A X. dom A ) $=
    ( ccnv cdm crn cxp wrel relcnv relssdmrn ax-mp df-rn dfdm4 xpeq12i sseqtr4i
    wss ) ABZOCZODZEZADZACZEOFORNAGOHISPTQAJAKLM $.

  $( Composition as a subset of the Cartesian product of factors.  (Contributed
     by Mario Carneiro, 12-Jan-2017.) $)
  cossxp $p |- ( A o. B ) C_ ( dom B X. ran A ) $=
    ( ccom cdm crn cxp wrel wss relco relssdmrn ax-mp dmcoss rncoss mp2an sstri
    xpss12 ) ABCZQDZQEZFZBDZAEZFZQGQTHABIQJKRUAHSUBHTUCHABLABMRUASUBPNO $.

  $( Two ways to describe the structure of a two-place operation.  (Contributed
     by NM, 17-Dec-2008.) $)
  relrelss $p |- ( ( Rel A /\ Rel dom A ) <-> A C_ ( ( _V X. _V ) X. _V ) ) $=
    ( wrel cdm wa cvv cxp wss df-rel anbi2i crn relssdmrn xpss12 mpan2 sylan9ss
    ssv xpss sstr sylibr dmss c0 wne wceq vn0 dmxp ax-mp syl6sseq impbii bitri
    jca ) ABZACZBZDUJUKEEFZGZDZAUMEFZGZULUNUJUKHIUOUQUJUNAUKAJZFZUPAKUNUREGUSUP
    GUROUKUMURELMNUQUJUNUQAUMGZUJUQUPUMGUTUMEPAUPUMQMAHRUQUKUPCZUMAUPSETUAVAUMU
    BUCUMEUDUEUFUIUGUH $.

  ${
    $d x y A $.  $d x y R $.
    $( The membership relation for a relation is inherited by class union.
       (Contributed by NM, 17-Sep-2006.) $)
    unielrel $p |- ( ( Rel R /\ A e. R ) -> U. A e. U. R ) $=
      ( vx vy wrel wcel wa cv cop wceq wex elrel simpr wi vex uniopel a1i eleq1
      cuni unieq eleq1d 3imtr4d exlimivv sylc ) BEZABFZGACHZDHZIZJZDKCKUFASZBSZ
      FZCDABLUEUFMUJUFUMNCDUJUIBFZUISZULFZUFUMUNUPNUJUGUHBCODOPQAUIBRUJUKUOULAU
      ITUAUBUCUD $.
  $}

  $( The double union of a relation is its field.  (Contributed by NM,
     17-Sep-2006.) $)
  relfld $p |- ( Rel R -> U. U. R = ( dom R u. ran R ) ) $=
    ( wrel cuni cdm crn cun cxp wss relssdmrn 3syl unixpss syl6ss dmrnssfld a1i
    uniss eqssd ) ABZACZCZADZAEZFZQSTUAGZCZCZUBQAUCHRUDHSUEHAIAUCORUDOJTUAKLUBS
    HQAMNP $.

  $( Restriction of a relation to its field.  (Contributed by FL,
     15-Apr-2012.) $)
  relresfld $p |- ( Rel R -> ( R |` U. U. R ) = R ) $=
    ( wrel cuni cres wceq cdm crn wi relfld reseq2d resundi wa eqtr resss resdm
    cun wss ssequn2 uneq1 eqeq2d ex syl6bi com3r sylbi syl5com sylancl pm2.43i
    mpsyl ) ABZAACCZDZAEZUIUKAAFZAGZPZDZEZUPAUMDZAUNDZPZEZUIULHUIUJUOAAIJAUMUNK
    UQVALUKUTEZUIULUKUPUTMUSAQZUIURAEZVBULHZAUNNAOVCAUSPZAEZVDVEHUSARVDVBVGULVD
    VBUKVFEZVGULHVDUTVFUKURAUSSTVHVGULUKVFAMUAUBUCUDUHUEUFUG $.

  $( Composition with the identity relation restricted to a relation's field.
     (Contributed by FL, 2-May-2011.) $)
  relcoi2 $p |- ( Rel R -> ( ( _I |` U. U. R ) o. R ) = R ) $=
    ( wrel cid cuni cres ccom cdm crn cun wss wceq dmrnssfld simpr sylbir cores
    wa unss mp2b coi2 syl5eq ) ABCADDZEAFZCAFZAAGZAHZIUAJZUEUAJZUBUCKALUFUDUAJZ
    UGPUGUDUEUAQUHUGMNCAUAORAST $.

  $( Composition with the identity relation restricted to a relation's field.
     (Contributed by FL, 8-May-2011.)  (Proof shortened by OpenAI,
     3-Jul-2020.) $)
  relcoi1 $p |- ( Rel R -> ( R o. ( _I |` U. U. R ) ) = R ) $=
    ( wrel cid cuni cres ccom coires1 relresfld syl5eq ) ABACADDZEFAJEAAJGAHI
    $.

  $( The double union of the converse of a class is its field.  (Contributed by
     NM, 4-Jun-2008.) $)
  unidmrn $p |- U. U. `' A = ( dom A u. ran A ) $=
    ( ccnv cuni crn cdm cun wrel wceq relcnv ax-mp equncomi dfdm4 df-rn uneq12i
    relfld eqtr4i ) ABZCCZQDZQEZFAEZADZFRTSQGRTSFHAIQOJKUASUBTALAMNP $.

  $( if ` R ` is a relation, its double union equals the double union of its
     converse.  (Contributed by FL, 5-Jan-2009.) $)
  relcnvfld $p |- ( Rel R -> U. U. R = U. U. `' R ) $=
    ( wrel cuni cdm crn cun ccnv relfld unidmrn syl6eqr ) ABACCADAEFAGCCAHAIJ
    $.

  $( Alternate definition of domain ~ df-dm that doesn't require dummy
     variables.  (Contributed by NM, 2-Aug-2010.) $)
  dfdm2 $p |- dom A = U. U. ( `' A o. A ) $=
    ( ccnv ccom cuni cdm crn cun cnvco cocnvcnv2 eqtri unieqi eqtr3i wceq df-rn
    unidmrn eqcomi dmcoeq ax-mp rncoeq dfdm4 eqtr4i uneq12i unidm 3eqtrri ) ABZ
    ACZDZDZUFEZUFFZGZAEZULGULUFBZDZDUHUKUNUGUMUFUMUEUEBCUFUEAHUEAIJKKUFOLUIULUJ
    ULUEEZAFZMZUIULMUPUOANPZUEAQRUJUEFZULUQUJUSMURUEASRATUAUBULUCUD $.

  $( The double class union of a nonempty Cartesian product is the union of it
     members.  (Contributed by NM, 17-Sep-2006.) $)
  unixp $p |- ( ( A X. B ) =/= (/) -> U. U. ( A X. B ) = ( A u. B ) ) $=
    ( cxp c0 wne cuni cdm crn cun wrel wceq relxp relfld ax-mp xpeq2 xp0 syl6eq
    necon3i xpeq1 0xp dmxp rnxp uneq12 syl2an syl2anc syl5eq ) ABCZDEZUGFFZUGGZ
    UGHZIZABIZUGJUIULKABLUGMNUHBDEZADEZULUMKZBDUGDBDKUGADCDBDAOAPQRADUGDADKUGDB
    CDADBSBTQRUNUJAKUKBKUPUOABUAABUBUJAUKBUCUDUEUF $.

  ${
    $d x y z A $.  $d x y z B $.
    $( A Cartesian product is empty iff its union is empty.  (Contributed by
       NM, 20-Sep-2006.) $)
    unixp0 $p |- ( ( A X. B ) = (/) <-> U. ( A X. B ) = (/) ) $=
      ( vz vx vy cxp c0 wceq cuni unieq uni0 syl6eq wne cv wex n0 cop vex sylbi
      wcel elxp3 wss elssuni opnzi ssn0 sylancl adantl exlimivv exlimiv necon4i
      wa impbii ) ABFZGHZUMIZGHUNUOGIGUMGJKLUMGUOGUMGMCNZUMTZCOUOGMZCUMPUQURCUQ
      DNZENZQZUPHZVAUMTZUKZEODOURDEUPABUAVDURDEVCURVBVCVAUOUBVAGMURVAUMUCUSUTDR
      ERUDVAUOUEUFUGUHSUISUJUL $.
  $}

  $( Field of a square Cartesian product.  (Contributed by FL, 10-Oct-2009.) $)
  unixpid $p |- U. U. ( A X. A ) = A $=
    ( c0 wceq cxp cuni xpeq1 syl6eq wi unieq unieqd uni0 unieqi eqtri wa expcom
    0xp eqtr eqcoms syl5com wne sylancl mpcom wn df-ne cun unixp unidm sylancbr
    xpnz sylbi pm2.61i ) ABCZAADZEZEZACZUMBCZULUPULUMBADBABAFAPGUQUOBEZEZCZUSBC
    ZULUPHUQUNURUMBIJUSURBURBKLKMUTVANUOBCZULUPUOUSBQVBUPHBAVBBACUPUOBAQORSUAUB
    ULUCABTZVCUPABUDZVDVCVCNUMBTZUPAAUIVEUOAAUEAAAUFAUGGUJUHUK $.

  ${
    $d x y A $.  $d x y B $.
    $( Restriction of a class to a singleton.  (Contributed by Mario Carneiro,
       28-Dec-2014.) $)
    ressn $p |- ( A |` { B } ) = ( { B } X. ( A " { B } ) ) $=
      ( vx vy csn cres cima cxp relres relxp cv cop wcel wa ancom elimasn elsni
      vex sneqd imaeq2d eleq2d syl5bbr pm5.32i opelres opelxp 3bitr4i eqrelriiv
      bitri ) CDABEZFZUIAUIGZHZAUIIUIUKJCKZDKZLZAMZUMUIMZNZUQUNUKMZNZUOUJMUOULM
      URUQUPNUTUPUQOUQUPUSUPUNAUMEZGZMUQUSAUMUNCRDRZPUQVBUKUNUQVAUIAUQUMBUMBQST
      UAUBUCUHUMUNAUIVCUDUMUNUIUKUEUFUG $.
  $}

  ${
    $d A a b x $.  $d B a b $.
    $( The converse of an intersection is the intersection of the converse.
       (Contributed by FL, 15-Oct-2012.) $)
    cnviin $p |- ( A =/= (/) -> `' |^|_ x e. A B = |^|_ x e. A `' B ) $=
      ( va vb ciin ccnv wrel relcnv cvv wss wral df-rel cv cop wcel eliin ax-mp
      wb opex c0 wne wceq cxp wrex mpbi rgenw r19.2z mpan2 iinss syl sylibr vex
      opelcnv ralbii bitri 3bitr4i eqrelriv sylancr ) BUAUBZABCFZGZHABCGZFZHZVB
      VDUCVAIUTVDJJUDZKZVEUTVCVFKZABUEZVGUTVHABLVIVHABVCHVHCIVCMUFUGVHABUHUIABV
      CVFUJUKVDMULDEVBVDENZDNZOZVAPZVLCPZABLZVKVJOZVBPVPVDPZVLJPVMVOSVJVKTAVLBC
      JQRVKVJVADUMZEUMZUNVQVPVCPZABLZVOVPJPVQWASVKVJTAVPBVCJQRVTVNABVKVJCVRVSUN
      UOUPUQURUS $.
  $}

  ${
    $d x y z A $.  $d x y z R $.
    $( The converse of a partial order relation is a partial order relation.
       (Contributed by NM, 15-Jun-2005.) $)
    cnvpo $p |- ( R Po A <-> `' R Po A ) $=
      ( vx vy vz cv wbr wn wa wi wral wpo r19.26 brcnv ralbii bitr2i c0 3bitr4i
      vex ralcom ccnv id breq12d syl5bb notbid cbvralv anbi12ci imbi12i anbi12i
      weq ralidm wb wceq rzal wne r19.3rzv ralbidv pm2.61ine anbi1i bitri df-po
      2thd ) CFZVCBGZHZVCDFZBGZVFEFZBGZIZVCVHBGZJZIEAKZDAKCAKZVHVHBUAZGZHZVHVFV
      OGZVFVCVOGZIZVHVCVOGZJZIZCAKZDAKEAKZABLAVOLVMCAKZDAKWDEAKZDAKVNWEWFWGDAVE
      CAKZVLEAKZIZCAKZWCEAKZCAKWFWGWJWLCAWLVQEAKZWBEAKZIWJVQWBEAMWMWHWNWIVQVEEC
      AECUJZVPVDVPVHVHBGWOVDVHVHBESZWPNWOVHVCVHVCBWOUBZWQUCUDUEUFWBVLEAVTVJWAVK
      VRVIVSVGVHVFBWPDSZNVFVCBWRCSZNUGVHVCBWPWSNUHOUIPOVEEAKZWIIZCAKZWHCAKZWICA
      KZIZWFWKXBWTCAKZXDIXEWTWICAMXFXCXDXCWHXFVECAUKWHXFULAQAQUMWHXFVECAUNWTCAU
      NVBAQUOVEWTCAVEEAUPUQURPUSUTVMXACAVEVLEAMOWHWICAMRWCECAATROVMCDAATWDEDAAT
      RCDEABVAEDCAVOVAR $.

    $( The converse of a strict order relation is a strict order relation.
       (Contributed by NM, 15-Jun-2005.) $)
    cnvso $p |- ( R Or A <-> `' R Or A ) $=
      ( vx vy wpo cv wbr weq w3o wral wa ccnv wor cnvpo ralcom vex brcnv equcom
      3orbi123i df-so 2ralbii bitr4i anbi12i 3bitr4i ) ABEZCFZDFZBGZCDHZUGUFBGZ
      IZDAJCAJZKABLZEZUGUFUMGZDCHZUFUGUMGZIZCAJDAJZKABMAUMMUEUNULUSABNULUKCAJDA
      JUSUKCDAAOURUKDCAAUOUHUPUIUQUJUGUFBDPZCPZQDCRUFUGBVAUTQSUAUBUCCDABTDCAUMT
      UD $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( Composition of two Cartesian products.  (Contributed by Thierry Arnoux,
       17-Nov-2017.) $)
    xpco $p |- ( B =/= (/) -> ( ( B X. C ) o. ( A X. B ) ) = ( A X. C ) ) $=
      ( vx vy vz c0 wne cv cxp wbr wa wex copab wcel ccom biimpi biantrurd brxp
      n0 ancom anbi1i anbi12i anandi 3bitr4i exbii 19.41v bitr2i opabbidv df-co
      syl6rbb df-xp 3eqtr4g ) BGHZDIZEIZABJZKZUPFIZBCJZKZLZEMZDFNUOAOZUSCOZLZDF
      NUTUQPACJUNVCVFDFUNVFUPBOZEMZVFLZVCUNVHVFUNVHEBTQRVCVGVFLZEMVIVBVJEVDVGLZ
      VGVELZLVGVDLZVLLVBVJVKVMVLVDVGUAUBURVKVAVLUOUPABSUPUSBCSUCVGVDVEUDUEUFVGV
      FEUGUHUKUIDFEUTUQUJDFACULUM $.
  $}

  $( Composition of two square Cartesian products.  (Contributed by Thierry
     Arnoux, 14-Jan-2018.) $)
  xpcoid $p |- ( ( A X. A ) o. ( A X. A ) ) = ( A X. A ) $=
    ( cxp ccom wceq c0 co01 sqxpeqd 0xp syl6eq coeq12d 3eqtr4a xpco pm2.61ine
    id ) AABZOCZODAEAEDZEECEPOEFQOEOEQOEEBEQAEQNGEHIZRJRKAAALM $.

  ${
    $d A x y $.  $d V y $.  $d X x y $.  $d Z x y $.
    $( Elementhood to a cartesian product with a singleton.  (Contributed by
       Thierry Arnoux, 10-Apr-2020.)  (Proof shortened by JJ, 14-Jul-2021.) $)
    elsnxp $p |- ( X e. V -> ( Z e. ( { X } X. A )
      <-> E. y e. A Z = <. X , y >. ) ) $=
      ( vx wcel csn cxp cv cop wceq wrex wa wex elxp df-rex an13 exbii bitr4i
      elsni opeq1d eqeq2d biimpa reximi exlimiv sylbi snidg opelxpi sylan eleq1
      sylbir syl5ibrcom rexlimdva impbid2 ) DCGZEDHZBIZGZEDAJZKZLZABMZUSEFJZUTK
      ZLZVDUQGZUTBGZNNZAOZFOVCFAEUQBPVJVCFVJVGVFNZABMZVCVLVHVKNZAOVJVKABQVIVMAV
      FVGVHRSTVKVBABVGVFVBVGVEVAEVGVDDUTVDDUAUBUCUDUEULUFUGUPVBUSABUPVHNUSVBVAU
      RGZUPDUQGVHVNDCUHDUTUQBUIUJEVAURUKUMUNUO $.

    $( Obsolete proof of ~ elsnxp as of 14-Jul-2021.  (Contributed by Thierry
       Arnoux, 10-Apr-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    elsnxpOLD $p |- ( X e. V -> ( Z e. ( { X } X. A )
      <-> E. y e. A Z = <. X , y >. ) ) $=
      ( vx wcel csn cxp cv cop wceq wrex wa wex elxp df-rex simpr adantr sylbi
      exbii bitr4i velsn anbi1i opeq1 eqtrd reximi sylbir eximi 19.9v sylib nfv
      an13 adantl nfre1 snidg biimpri syl2anc eqeltrd adantllr r19.29af impbida
      nfan opelxp ) DCGZEDHZBIZGZEDAJZKZLZABMZVHVLVEVHEFJZVIKZLZVMVFGZVIBGZNNZA
      OZFOZVLFAEVFBPVTVLFOVLVSVLFVSVPVONZABMZVLWBVQWANZAOVSWAABQVRWCAVOVPVQUMUA
      UBWAVKABWAVMDLZVONZVKVPWDVOFDUCUDWEEVNVJWDVORWDVNVJLVOVMDVIUESUFTUGUHUIVL
      FUJUKTUNVEVLNVKVHABVEVLAVEAULVKABUOVCVEVQVKVHVLVEVQNZVKNEVJVGWFVKRWFVJVGG
      ZVKWFDVFGZVQWGVEWHVQDCUPSVEVQRWGWHVQNDVIVFBVDUQURSUSUTVEVLRVAVB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The Predecessor Class
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Pred $.
  $( The predecessors symbol. $)
  cpred $a class Pred ( R , A , X ) $.

  $( Define the predecessor class of a relationship.  This is the class of all
     elements ` y ` of ` A ` such that ` y R X ` (see ~ elpred ) .
     (Contributed by Scott Fenton, 29-Jan-2011.) $)
  df-pred $a |- Pred ( R , A , X ) = ( A i^i ( `' R " { X } ) ) $.

  $( Equality theorem for the predecessor class.  (Contributed by Scott Fenton,
     13-Jun-2018.) $)
  predeq123 $p |- ( ( R = S /\ A = B /\ X = Y ) ->
                    Pred ( R , A , X ) = Pred ( S , B , Y ) ) $=
    ( wceq w3a ccnv csn cima cin cpred simp2 3ad2ant1 3ad2ant3 imaeq12d df-pred
    cnveq sneq ineq12d 3eqtr4g ) CDGZABGZEFGZHZACIZEJZKZLBDIZFJZKZLACEMBDFMUFAB
    UIULUCUDUENUFUGUJUHUKUCUDUGUJGUECDSOUEUCUHUKGUDEFTPQUAACERBDFRUB $.

  $( Equality theorem for the predecessor class.  (Contributed by Scott Fenton,
     2-Feb-2011.) $)
  predeq1 $p |- ( R = S -> Pred ( R , A , X ) = Pred ( S , A , X ) ) $=
    ( wceq cpred eqid predeq123 mp3an23 ) BCEAAEDDEABDFACDFEAGDGAABCDDHI $.

  $( Equality theorem for the predecessor class.  (Contributed by Scott Fenton,
     2-Feb-2011.) $)
  predeq2 $p |- ( A = B -> Pred ( R , A , X ) = Pred ( R , B , X ) ) $=
    ( wceq cpred eqid predeq123 mp3an13 ) CCEABEDDEACDFBCDFECGDGABCCDDHI $.

  $( Equality theorem for the predecessor class.  (Contributed by Scott Fenton,
     2-Feb-2011.) $)
  predeq3 $p |- ( X = Y -> Pred ( R , A , X ) = Pred ( R , A , Y ) ) $=
    ( wceq cpred eqid predeq123 mp3an12 ) BBEAAECDEABCFABDFEBGAGAABBCDHI $.

  ${
    nfpred.1 $e |- F/_ x R $.
    nfpred.2 $e |- F/_ x A $.
    nfpred.3 $e |- F/_ x X $.
    $( Bound-variable hypothesis builder for the predecessor class.
       (Contributed by Scott Fenton, 9-Jun-2018.) $)
    nfpred $p |- F/_ x Pred ( R , A , X ) $=
      ( cpred ccnv csn cima cin df-pred nfcnv nfsn nfima nfin nfcxfr ) ABCDHBCI
      ZDJZKZLBCDMABUAFASTACENADGOPQR $.
  $}

  $( If ` A ` is a subset of ` B ` , then their predecessor classes are also
     subsets.  (Contributed by Scott Fenton, 2-Feb-2011.) $)
  predpredss $p |- ( A C_ B -> Pred ( R , A , X ) C_ Pred ( R , B , X ) ) $=
    ( wss ccnv csn cima cin cpred ssrin df-pred 3sstr4g ) ABEACFDGHZIBNIACDJBCD
    JABNKACDLBCDLM $.

  $( The predecessor class of ` A ` is a subset of ` A ` .  (Contributed by
     Scott Fenton, 2-Feb-2011.) $)
  predss $p |- Pred ( R , A , X ) C_ A $=
    ( cpred ccnv csn cima cin df-pred inss1 eqsstri ) ABCDABECFGZHAABCIALJK $.

  $( Another subset/predecessor class relationship.  (Contributed by Scott
     Fenton, 6-Feb-2011.) $)
  sspred $p |- ( ( B C_ A /\ Pred ( R , A , X ) C_ B ) ->
                 Pred ( R , A , X ) = Pred ( R , B , X ) ) $=
    ( wss cin wceq ccnv csn cima cpred sseqin2 df-pred sseq1i df-ss in32 eqeq1i
    3bitri wa ineq1 eqeq1d biimpa 3eqtr4g eqcomd syl2anb ) BAEABFZBGZUFCHDIJZFZ
    AUHFZGZACDKZBCDKZGULBEZBALUNUJBEUJBFZUJGUKULUJBACDMZNUJBOUOUIUJAUHBPQRUGUKS
    ZUMULUQBUHFZUJUMULUGUKURUJGUGUIURUJUFBUHTUAUBBCDMUPUCUDUE $.

  ${
    $d R y $.  $d X y $.
    dfpred2.1 $e |- X e. _V $.
    $( An alternate definition of predecessor class when ` X ` is a set.
       (Contributed by Scott Fenton, 8-Feb-2011.) $)
    dfpred2 $p |- Pred ( R , A , X ) = ( A i^i { y | y R X } ) $=
      ( cpred ccnv csn cima cin cv wbr cab df-pred cvv wcel iniseg ax-mp ineq2i
      wceq eqtri ) BCDFBCGDHIZJBAKDCLAMZJBCDNUBUCBDOPUBUCTEACDOQRSUA $.

    $d A y $.
    $( An alternate definition of predecessor class when ` X ` is a set.
       (Contributed by Scott Fenton, 13-Jun-2018.) $)
    dfpred3 $p |- Pred ( R , A , X ) = { y e. A | y R X } $=
      ( cv wbr cab cin cpred crab incom dfpred2 dfrab2 3eqtr4i ) BAFDCGZAHZIQBI
      BCDJPABKBQLABCDEMPABNO $.
  $}

  ${
    $d R x y $.  $d A x y $.  $d X x y $.
    $( An alternate definition of predecessor class when ` X ` is a set.
       (Contributed by Scott Fenton, 13-Jun-2018.) $)
    dfpred3g $p |- ( X e. V -> Pred ( R , A , X ) = { y e. A | y R X } ) $=
      ( vx cpred wbr crab wceq predeq3 breq2 rabbidv eqeq12d vex dfpred3 vtoclg
      cv ) BCFRZGZARZSCHZABIZJBCEGZUAECHZABIZJFEDSEJZTUDUCUFBCSEKUGUBUEABSEUACL
      MNABCSFOPQ $.
  $}

  ${
    elpredim.1 $e |- X e. _V $.
    $( Membership in a predecessor class - implicative version.  (Contributed
       by Scott Fenton, 9-May-2012.) $)
    elpredim $p |- ( Y e. Pred ( R , A , X ) -> Y R X ) $=
      ( cpred wcel ccnv csn cima wbr df-pred elin2 cop cvv wb elimasng opelcnvg
      wa bitrd mpan ibi df-br sylibr simplbiim ) DABCFZGDAGDBHZCIJZGZDCBKZDAUHU
      FABCLMUIDCNBGZUJUIUKCOGZUIUIUKPEULUISUICDNUGGUKUGCDOUHQCDOUHBRTUAUBDCBUCU
      DUE $.
  $}

  ${
    elpred.1 $e |- Y e. _V $.
    $( Membership in a predecessor class.  (Contributed by Scott Fenton,
       4-Feb-2011.) $)
    elpred $p |- ( X e. D -> ( Y e. Pred ( R , A , X ) <->
                                ( Y e. A /\ Y R X ) ) ) $=
      ( cpred wcel ccnv csn cima wa wbr df-pred elin2 eliniseg anbi2d syl5bb )
      EACDGZHEAHZECIDJKZHZLDBHZTEDCMZLEAUASACDNOUCUBUDTCDEBFPQR $.
  $}

  $( Membership in a predecessor class.  (Contributed by Scott Fenton,
     17-Apr-2011.) $)
  elpredg $p |- ( ( X e. B /\ Y e. A ) ->
                  ( Y e. Pred ( R , A , X ) <-> Y R X ) ) $=
    ( wcel wa cpred ccnv csn cima wbr wb df-pred elin2 baib adantl cop elimasng
    df-br syl6bbr brcnvg 3bitrd ) DBFZEAFZGZEACDHZFZECIZDJKZFZDEUILZEDCLUEUHUKM
    UDUHUEUKEAUJUGACDNOPQUFUKDERUIFULUIDEBASDEUITUADEBACUBUC $.

  ${
    predasetex.1 $e |- A e. _V $.
    $( The predecessor class exists when ` A ` does.  (Contributed by Scott
       Fenton, 8-Feb-2011.) $)
    predasetex $p |- Pred ( R , A , X ) e. _V $=
      ( cpred ccnv csn cima cin cvv df-pred inex1 eqeltri ) ABCEABFCGHZIJABCKAN
      DLM $.
  $}

  ${
    $d x y A $.  $d x y R $.
    $( Alternate definition of well-founded relation.  (Contributed by Scott
       Fenton, 2-Feb-2011.) $)
    dffr4 $p |- ( R Fr A <->
                   A. x ( ( x C_ A /\ x =/= (/) )
                          -> E. y e. x Pred ( R , x , y ) = (/) ) ) $=
      ( wfr cv wss c0 wne wa ccnv csn cima cin wceq wrex wi wal cpred dffr3
      df-pred eqeq1i rexbii imbi2i albii bitr4i ) CDEAFZCGUGHIJZUGDKBFZLMNZHOZB
      UGPZQZARUHUGDUISZHOZBUGPZQZARABCDTUQUMAUPULUHUOUKBUGUNUJHUGDUIUAUBUCUDUEU
      F $.
  $}

  $( Membership in the predecessor class implies membership in the base class.
     (Contributed by Scott Fenton, 11-Feb-2011.) $)
  predel $p |- ( Y e. Pred ( R , A , X ) -> Y e. A ) $=
    ( wcel ccnv csn cima cin cpred elinel1 df-pred eleq2s ) DAEDABFCGHZIABCJDAN
    KABCLM $.

  ${
    $d R z $.  $d A z $.  $d X z $.  $d Y z $.
    $( Property of the precessor class for partial orderings.  (Contributed by
       Scott Fenton, 28-Apr-2012.) $)
    predpo $p |- ( ( R Po A /\ X e. A ) ->
                   ( Y e. Pred ( R , A , X ) ->
                     Pred ( R , A , Y ) C_ Pred ( R , A , X ) ) ) $=
      ( vz wpo wcel wa cpred wss predel w3a cv wbr wi wb elpredg adantll elpred
      ex potr 3exp2 com24 imp31 com13 com14 sylbid com23 imdistand vex 3ad2ant3
      3imp adantl 3ad2ant1 3imtr4d ssrdv 3exp mpdi ) ABFZCAGZHZDABCIZGZDAGZABDI
      ZVBJZABCDKVAVCVDVFVAVCVDLZEVEVBVGEMZAGZVHDBNZHZVIVHCBNZHZVHVEGZVHVBGZVGVI
      VJVLVAVCVDVIVJVLOOZVAVDVCVPVAVDVCVPOVAVDHZVCDCBNZVPUTVDVCVRPUSAABCDQRVJVR
      VIVQVLVJVRVIVQVLOOVQVIVJVRHZVLUSUTVDVIVSVLOZOUSVIVDUTVTUSVIVDUTVTAVHDCBUA
      UBUCUDUETUFUGTUHULUIVDVAVNVKPVCAABDVHEUJZSUKVAVCVOVMPZVDUTWBUSAABCVHWASUM
      UNUOUPUQUR $.
  $}

  $( Property of the predecessor class for strict orderings.  (Contributed by
     Scott Fenton, 11-Feb-2011.) $)
  predso $p |- ( ( R Or A /\ X e. A ) ->
                  ( Y e. Pred ( R , A , X ) ->
                    Pred ( R , A , Y ) C_ Pred ( R , A , X ) ) ) $=
    ( wor wpo wcel cpred wss wi sopo predpo sylan ) ABEABFCAGDABCHZGABDHNIJABKA
    BCDLM $.

  ${
    $d x A $.  $d x R $.  $d x X $.  $d x Y $.
    $( Closed form of ~ elpredim .  (Contributed by Scott Fenton, 13-Apr-2011.)
       (Revised by NM, 5-Apr-2016.) $)
    predbrg $p |- ( ( X e. V /\ Y e. Pred ( R , A , X ) ) -> Y R X ) $=
      ( vx wcel cpred wbr cv wi wceq predeq3 eleq2d imbi12d vex elpredim vtoclg
      breq2 imp ) DCGEABDHZGZEDBIZEABFJZHZGZEUDBIZKUBUCKFDCUDDLZUFUBUGUCUHUEUAE
      ABUDDMNUDDEBSOABUDEFPQRT $.
  $}

  ${
    $d R x $.  $d A x $.  $d X x $.
    $( If ` R ` is set-like in ` A ` , then all predecessors classes of
       elements of ` A ` exist.  (Contributed by Scott Fenton, 20-Feb-2011.)
       (Revised by Mario Carneiro, 26-Jun-2015.) $)
    setlikespec $p |- ( ( X e. A /\ R Se A ) -> Pred ( R , A , X ) e. _V ) $=
      ( vx wcel wse wa cv wbr crab cpred cvv wceq cab vex elpred abbi2dv df-rab
      syl6reqr adantr seex ancoms eqeltrrd ) CAEZABFZGDHZCBIZDAJZABCKZLUDUHUIMU
      EUDUIUFAEUGGZDNUHUDUJDUIAABCUFDOPQUGDARSTUEUDUHLEDACBUAUBUC $.
  $}

  $( Idempotent law for the predecessor class.  (Contributed by Scott Fenton,
     29-Mar-2011.) $)
  predidm $p |- Pred ( R , Pred ( R , A , X ) , X ) = Pred ( R , A , X ) $=
    ( cpred ccnv csn cima cin df-pred inidm ineq2i eqtr4i inass ineq1i ) ABCDZB
    CDOBECFGZHZOOBCIOAPHZPHZQOAPPHZHZSORUAABCIZTPAPJKLAPPMLORPUBNLL $.

  $( Intersection law for predecessor classes.  (Contributed by Scott Fenton,
     29-Mar-2011.) $)
  predin $p |- Pred ( R , ( A i^i B ) , X ) =
               ( Pred ( R , A , X ) i^i Pred ( R , B , X ) ) $=
    ( cin ccnv csn cima cpred inindir df-pred ineq12i 3eqtr4i ) ABEZCFDGHZEAOEZ
    BOEZENCDIACDIZBCDIZEABOJNCDKRPSQACDKBCDKLM $.

  $( Union law for predecessor classes.  (Contributed by Scott Fenton,
     29-Mar-2011.) $)
  predun $p |- Pred ( R , ( A u. B ) , X ) =
               ( Pred ( R , A , X ) u. Pred ( R , B , X ) ) $=
    ( cun ccnv csn cima cin cpred indir df-pred uneq12i 3eqtr4i ) ABEZCFDGHZIAP
    IZBPIZEOCDJACDJZBCDJZEABPKOCDLSQTRACDLBCDLMN $.

  $( Difference law for predecessor classes.  (Contributed by Scott Fenton,
     14-Apr-2011.) $)
  preddif $p |- Pred ( R , ( A \ B ) , X ) =
                  ( Pred ( R , A , X ) \ Pred ( R , B , X ) ) $=
    ( cdif ccnv csn cima cin cpred indifdir df-pred difeq12i 3eqtr4i ) ABEZCFDG
    HZIAPIZBPIZEOCDJACDJZBCDJZEABPKOCDLSQTRACDLBCDLMN $.

  ${
    $d X y $.  $d B y $.
    $( The predecessor under the epsilon relationship is equivalent to an
       intersection.  (Contributed by Scott Fenton, 27-Mar-2011.)  (Proof
       shortened by Andrew Salmon, 27-Aug-2011.) $)
    predep $p |- ( X e. B -> Pred ( _E , A , X ) = ( A i^i X ) ) $=
      ( vy wcel cep cpred ccnv csn cima cin df-pred cv wbr cab wrel wceq relcnv
      cvv syl5eq relimasn ax-mp wb vex brcnvg mpan2 epelg bitrd abbi1dv ineq2d
      ) CBEZAFCGAFHZCIJZKACKAFCLUKUMCAUKUMCDMZULNZDOZCULPUMUPQFRDCULUAUBUKUODCU
      KUOUNCFNZUNCEUKUNSEUOUQUCDUDCUNBSFUEUFUNCBUGUHUITUJT $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d R x y z $.  $d X y $.
    $( A property of classes that are downward closed under predecessor.
       (Contributed by Scott Fenton, 13-Apr-2011.) $)
    preddowncl $p |- ( ( B C_ A /\ A. x e. B Pred ( R , A , x ) C_ B ) ->
                        ( X e. B ->
                          Pred ( R , B , X ) = Pred ( R , A , X ) ) ) $=
      ( vy vz wss cv cpred wral wa wcel wceq eleq1 predeq3 eqeq12d imbi2d vex
      wi imbi12d predpredss ad2antrr wbr weq sseq1d rspccva sseld elpredim jcad
      a1i wb elpred adantl mpbird ssrdv adantll eqssd ex vtoclg pm2.43b ) CBHZB
      DAIZJZCHZACKZLZECMZCDEJZBDEJZNZVGFIZCMZCDVLJZBDVLJZNZTZTVGVHVKTZTFECVLENZ
      VQVRVGVSVMVHVPVKVLECOVSVNVIVOVJCDVLEPBDVLEPQUARVGVMVPVGVMLVNVOVBVNVOHVFVM
      CBDVLUBUCVFVMVOVNHVBVFVMLZGVOVNVTGIZVOMZWAVNMZTZWBWACMZWAVLDUDZLZTZVTWBWE
      WFVTVOCWAVEVOCHAVLCAFUEVDVOCBDVCVLPUFUGUHWBWFTVTBDVLWAFSUIUKUJVMWDWHULVFV
      MWCWGWBCCDVLWAGSUMRUNUOUPUQURUSUTVA $.
  $}

  $( Given a partial ordering, ` X ` is not a member of its predecessor class.
     (Contributed by Scott Fenton, 17-Apr-2011.) $)
  predpoirr $p |- ( R Po A -> -. X e. Pred ( R , A , X ) ) $=
    ( wpo wcel cpred wn wa wbr poirr elpredg anidms notbid syl5ibr expd pm2.43b
    wb predel con3i pm2.61d1 ) ABDZCAEZCABCFEZGZUAUBUDUBUAUBUDUAUBHUDUBCCBIZGAC
    BJUBUCUEUBUCUEQAABCCKLMNOPUCUBABCCRST $.

  $( Given a well-founded relationship, ` X ` is not a member of its
     predecessor class.  (Contributed by Scott Fenton, 22-Apr-2011.) $)
  predfrirr $p |- ( R Fr A -> -. X e. Pred ( R , A , X ) ) $=
    ( wfr wcel cpred wn wa wbr frirr elpredg anidms notbid syl5ibr expd pm2.43b
    wb predel con3i pm2.61d1 ) ABDZCAEZCABCFEZGZUAUBUDUBUAUBUDUAUBHUDUBCCBIZGAC
    BJUBUCUEUBUCUEQAABCCKLMNOPUCUBABCCRST $.

  $( The predecessor class over ` (/) ` is always ` (/) ` .  (Contributed by
     Scott Fenton, 16-Apr-2011.)  (Proof shortened by AV, 11-Jun-2021.) $)
  pred0 $p |- Pred ( R , (/) , X ) = (/) $=
    ( c0 cpred ccnv csn cima cin df-pred 0in eqtri ) CABDCAEBFGZHCCABILJK $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Well-founded induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y A $.  $d x y B $.  $d x y R $.
    $( All nonempty (possibly proper) subclasses of ` A ` , which has a
       well-founded relation ` R ` , have ` R `-minimal elements.  Proposition
       6.26 of [TakeutiZaring] p. 31.  (Contributed by Scott Fenton,
       29-Jan-2011.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    tz6.26 $p |- ( ( ( R We A /\ R Se A ) /\ ( B C_ A /\ B =/= (/) ) ) ->
                    E. y e. B Pred ( R , B , y ) = (/) ) $=
      ( vx wwe wse wa wss c0 wne cv wbr wn wral wrex cpred wceq wreu wereu2 syl
      reurex crab rabeq0 cab cin dfrab3 vex dfpred2 eqtr4i eqeq1i bitr3i rexbii
      sylib ) BDFBDGHCBICJKHHZELALZDMZNECOZACPZCDUPQZJRZACPUOURACSUSAEBCDTURACU
      BUAURVAACURUQECUCZJRVAUQECUDVBUTJVBCUQEUEUFUTUQECUGECDUPAUHUIUJUKULUMUN
      $.
  $}

  ${
    $d A y $.  $d B y $.  $d R y $.
    tz6.26i.1 $e |- R We A $.
    tz6.26i.2 $e |- R Se A $.
    $( All nonempty (possibly proper) subclasses of ` A ` , which has a
       well-founded relation ` R ` , have ` R `-minimal elements.  Proposition
       6.26 of [TakeutiZaring] p. 31.  (Contributed by Scott Fenton,
       14-Apr-2011.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    tz6.26i $p |- ( ( B C_ A /\ B =/= (/) ) ->
                    E. y e. B Pred ( R , B , y ) = (/) ) $=
      ( wwe wse wss c0 wne wa cv cpred wceq wrex tz6.26 mpanl12 ) BDGBDHCBICJKL
      CDAMNJOACPEFABCDQR $.
  $}

  ${
    $d A y $.  $d B y $.  $d R y $.
    $( The Principle of Well-Founded Induction.  Theorem 6.27 of
       [TakeutiZaring] p. 32.  This principle states that if ` B ` is a
       subclass of a well-ordered class ` A ` with the property that every
       element of ` B ` whose inital segment is included in ` A ` is itself
       equal to ` A ` .  (Contributed by Scott Fenton, 29-Jan-2011.)  (Revised
       by Mario Carneiro, 26-Jun-2015.) $)
    wfi $p |- ( ( ( R We A /\ R Se A ) /\
                    ( B C_ A /\
                      A. y e. A ( Pred ( R , A , y ) C_ B -> y e. B ) ) )
                  -> A = B ) $=
      ( wa wss cpred wcel wn cdif c0 ssdif0 wceq anbi1i cin df-pred incom eqtri
      wrex bitri wwe wse cv wi wral wne necon3bbii difss eldif anass ancom ccnv
      tz6.26 csn cima indif2 difeq1i 3eqtr4i eqeq1i bitr4i anbi2i rexbii2 sylib
      3bitri rexanali ex mpani syl5bi con4d imp adantrl simprl eqssd ) BDUABDUB
      EZCBFZBDAUCZGZCFZVPCHZUDABUEZEEBCVNVTBCFZVOVNVTWAVNWAVTWAIBCJZKUFZVNVTIZW
      AWBKBCLUGVNWBBFZWCWDBCUHVNWEWCEZWDVNWFEWBDVPGZKMZAWBSZWDABWBDUMWIVRVSIZEZ
      ABSWDWHWKAWBBVPWBHZWHEVPBHZWJEZWHEWMWJWHEZEWMWKEWLWNWHVPBCUINWMWJWHUJWOWK
      WMWOWHWJEWKWJWHUKWHVRWJWHVQCJZKMVRWGWPKDULVPUNUOZWBOZWQBOZCJWGWPWQBCUPWGW
      BWQOWRWBDVPPWBWQQRVQWSCVQBWQOWSBDVPPBWQQRUQURUSVQCLUTNTVAVDVBVRVSABVETVCV
      FVGVHVIVJVKVNVOVTVLVM $.
  $}

  ${
    $d A y $.  $d B y $.  $d R y $.
    wfi.1 $e |- R We A $.
    wfi.2 $e |- R Se A $.
    $( The Principle of Well-Founded Induction.  Theorem 6.27 of
       [TakeutiZaring] p. 32.  This principle states that if ` B ` is a
       subclass of a well-ordered class ` A ` with the property that every
       element of ` B ` whose inital segment is included in ` A ` is itself
       equal to ` A ` .  (Contributed by Scott Fenton, 29-Jan-2011.)  (Revised
       by Mario Carneiro, 26-Jun-2015.) $)
    wfii $p |- ( ( B C_ A /\
                    A. y e. A ( Pred ( R , A , y ) C_ B -> y e. B ) )
                  -> A = B ) $=
      ( wwe wse wss cv cpred wcel wi wral wa wceq wfi mpanl12 ) BDGBDHCBIBDAJZK
      CISCLMABNOBCPEFABCDQR $.
  $}

  ${
    $d A w y $.  $d A z $.  $d ph w $.  $d ph z $.  $d R w y $.  $d R z $.
    $d w y z $.
    wfisg.1 $e |- ( y e. A ->
                       ( A. z e. Pred ( R , A , y ) [. z / y ]. ph -> ph ) ) $.
    $( Well-Founded Induction Schema.  If a property passes from all elements
       less than ` y ` of a well-founded class ` A ` to ` y ` itself (induction
       hypothesis), then the property holds for all elements of ` A ` .
       (Contributed by Scott Fenton, 11-Feb-2011.) $)
    wfisg $p |- ( ( R We A /\ R Se A ) -> A. y e. A ph ) $=
      ( vw wa wceq wral wss cv cpred wcel wi wsbc nfcv elrabsf nfsbc1v nfim wwe
      wse ssrab2 dfss3 simprbi ralimi sylbi nfral eleq1 predeq3 raleqdv sbceq1a
      crab nfv imbi12d chvar syl5 anc2li syl6ibr rgen wfi mpanr12 rabid2 sylib
      ) DEUADEUBHZDABDUMZIZABDJVEVFDKDEGLZMZVFKZVHVFNZOZGDJVGABDUCVLGDVHDNZVJVM
      ABVHPZHVKVMVJVNVJABCLZPZCVIJZVMVNVJVOVFNZCVIJVQCVIVFUDVRVPCVIVRVODNVPABVO
      DBDQZRUEUFUGBLZDNZVPCDEVTMZJZAOZOVMVQVNOZOBGVMWEBVMBUNVQVNBVPBCVIBVIQABVO
      SUHABVHSTTVTVHIZWAVMWDWEVTVHDUIWFWCVQAVNWFVPCWBVIDEVTVHUJUKABVHULUOUOFUPU
      QURABVHDVSRUSUTGDVFEVAVBABDVCVD $.
  $}

  ${
    $d A y z $.  $d ph z $.  $d R y z $.
    wfis.1 $e |- R We A $.
    wfis.2 $e |- R Se A $.
    wfis.3 $e |- ( y e. A ->
                    ( A. z e. Pred ( R , A , y ) [. z / y ]. ph -> ph ) ) $.
    $( Well-Founded Induction Schema.  If all elements less than a given set
       ` x ` of the well-founded class ` A ` have a property (induction
       hypothesis), then all elements of ` A ` have that property.
       (Contributed by Scott Fenton, 29-Jan-2011.) $)
    wfis $p |- ( y e. A -> ph ) $=
      ( wwe wse wral wfisg mp2an rspec ) ABDDEIDEJABDKFGABCDEHLMN $.
  $}

  ${
    $d A y z $.  $d ph z $.  $d R y z $.
    wfis2fg.1 $e |- F/ y ps $.
    wfis2fg.2 $e |- ( y = z -> ( ph <-> ps ) ) $.
    wfis2fg.3 $e |- ( y e. A -> ( A. z e. Pred ( R , A , y ) ps -> ph ) ) $.
    $( Well-Founded Induction Schema, using implicit substitution.
       (Contributed by Scott Fenton, 11-Feb-2011.) $)
    wfis2fg $p |- ( ( R We A /\ R Se A ) -> A. y e. A ph ) $=
      ( cv wsbc cpred wral wcel wsb sbsbc sbie bitr3i ralbii syl5bi wfisg ) ACD
      EFACDJKZDEFCJZLZMBDUDMUCENAUBBDUDUBACDOBACDPABCDGHQRSITUA $.
  $}

  ${
    $d A y z $.  $d ph z $.  $d R y z $.
    wfis2f.1 $e |- R We A $.
    wfis2f.2 $e |- R Se A $.
    wfis2f.3 $e |- F/ y ps $.
    wfis2f.4 $e |- ( y = z -> ( ph <-> ps ) ) $.
    wfis2f.5 $e |- ( y e. A -> ( A. z e. Pred ( R , A , y ) ps -> ph ) ) $.
    $( Well Founded Induction schema, using implicit substitution.
       (Contributed by Scott Fenton, 29-Jan-2011.) $)
    wfis2f $p |- ( y e. A -> ph ) $=
      ( wwe wse wral wfis2fg mp2an rspec ) ACEEFLEFMACENGHABCDEFIJKOPQ $.
  $}

  ${
    $d A y z $.  $d ph z $.  $d ps y $.  $d R y z $.
    wfis2g.1 $e |- ( y = z -> ( ph <-> ps ) ) $.
    wfis2g.2 $e |- ( y e. A -> ( A. z e. Pred ( R , A , y ) ps -> ph ) ) $.
    $( Well-Founded Induction Schema, using implicit substitution.
       (Contributed by Scott Fenton, 11-Feb-2011.) $)
    wfis2g $p |- ( ( R We A /\ R Se A ) -> A. y e. A ph ) $=
      ( nfv wfis2fg ) ABCDEFBCIGHJ $.
  $}

  ${
    $d A y z $.  $d ph z $.  $d ps y $.  $d R y z $.
    wfis2.1 $e |- R We A $.
    wfis2.2 $e |- R Se A $.
    wfis2.3 $e |- ( y = z -> ( ph <-> ps ) ) $.
    wfis2.4 $e |- ( y e. A -> ( A. z e. Pred ( R , A , y ) ps -> ph ) ) $.
    $( Well Founded Induction schema, using implicit substitution.
       (Contributed by Scott Fenton, 29-Jan-2011.) $)
    wfis2 $p |- ( y e. A -> ph ) $=
      ( wwe wse wral wfis2g mp2an rspec ) ACEEFKEFLACEMGHABCDEFIJNOP $.
  $}

  ${
    $d A y z $.  $d B y $.  $d ch y $.  $d ph z $.  $d ps y $.  $d R y z $.
    wfis3.1 $e |- R We A $.
    wfis3.2 $e |- R Se A $.
    wfis3.3 $e |- ( y = z -> ( ph <-> ps ) ) $.
    wfis3.4 $e |- ( y = B -> ( ph <-> ch ) ) $.
    wfis3.5 $e |- ( y e. A -> ( A. z e. Pred ( R , A , y ) ps -> ph ) ) $.
    $( Well Founded Induction schema, using implicit substitution.
       (Contributed by Scott Fenton, 29-Jan-2011.) $)
    wfis3 $p |- ( B e. A -> ch ) $=
      ( wfis2 vtoclga ) ACDGFLABDEFHIJKMNO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordinals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c Ord $. $( Ordinal predicate $)
  $c On $. $( The class of ordinal numbers $)
  $c Lim $. $( Limit ordinal predicate $)
  $c suc $. $( Successor function (read:  'successor of') $)

  $( Extend the definition of a wff to include the ordinal predicate. $)
  word $a wff Ord A $.

  $( Extend the definition of a class to include the class of all ordinal
     numbers.  (The 0 in the name prevents creating a file called con.html,
     which causes problems in Windows.) $)
  con0 $a class On $.

  $( Extend the definition of a wff to include the limit ordinal predicate. $)
  wlim $a wff Lim A $.

  $( Extend class notation to include the successor function. $)
  csuc $a class suc A $.

  $( Define the ordinal predicate, which is true for a class that is transitive
     and is well-ordered by the epsilon relation.  Variant of definition of
     [BellMachover] p. 468.  (Contributed by NM, 17-Sep-1993.) $)
  df-ord $a |- ( Ord A <-> ( Tr A /\ _E We A ) ) $.

  $( Define the class of all ordinal numbers.  Definition 7.11 of
     [TakeutiZaring] p. 38.  (Contributed by NM, 5-Jun-1994.) $)
  df-on $a |- On = { x | Ord x } $.

  $( Define the limit ordinal predicate, which is true for a nonempty ordinal
     that is not a successor (i.e. that is the union of itself).  Our
     definition combines the definition of Lim of [BellMachover] p. 471 and
     Exercise 1 of [TakeutiZaring] p. 42.  See ~ dflim2 , ~ dflim3 , and dflim4
     for alternate definitions.  (Contributed by NM, 22-Apr-1994.) $)
  df-lim $a |- ( Lim A <-> ( Ord A /\ A =/= (/) /\ A = U. A ) ) $.

  $( Define the successor of a class.  When applied to an ordinal number, the
     successor means the same thing as "plus 1" (see ~ oa1suc ).  Definition
     7.22 of [TakeutiZaring] p. 41, who use "+ 1" to denote this function.
     Ordinal natural numbers defined using this successor function and 0 as the
     empty set are also called von Neumann ordinals; 0 is the empty set {}, 1
     is {0, {0}}, 2 is {1, {1}}, and so on.  Our definition is a generalization
     to classes.  Although it is not conventional to use it with proper
     classes, it has no effect on a proper class ( ~ sucprc ), so that the
     successor of any ordinal class is still an ordinal class ( ~ ordsuc ),
     simplifying certain proofs.  Some authors denote the successor operation
     with a prime (apostrophe-like) symbol, such as Definition 6 of [Suppes]
     p. 134 and the definition of successor in [Mendelson] p. 246 (who uses the
     symbol "Suc" as a predicate to mean "is a successor ordinal").  The
     definition of successor of [Enderton] p. 68 denotes the operation with a
     plus-sign superscript.  (Contributed by NM, 30-Aug-1993.) $)
  df-suc $a |- suc A = ( A u. { A } ) $.

  $( Equality theorem for the ordinal predicate.  (Contributed by NM,
     17-Sep-1993.) $)
  ordeq $p |- ( A = B -> ( Ord A <-> Ord B ) ) $=
    ( wceq wtr cep wwe wa word treq weeq2 anbi12d df-ord 3bitr4g ) ABCZADZAEFZG
    BDZBEFZGAHBHNOQPRABIABEJKALBLM $.

  ${
    $d x A $.
    $( An ordinal number is an ordinal set.  (Contributed by NM,
       5-Jun-1994.) $)
    elong $p |- ( A e. V -> ( A e. On <-> Ord A ) ) $=
      ( vx cv word con0 ordeq df-on elab2g ) CDZEAECAFBJAGCHI $.
  $}

  ${
    elon.1 $e |- A e. _V $.
    $( An ordinal number is an ordinal set.  (Contributed by NM,
       5-Jun-1994.) $)
    elon $p |- ( A e. On <-> Ord A ) $=
      ( cvv wcel con0 word wb elong ax-mp ) ACDAEDAFGBACHI $.
  $}

  $( An ordinal number has the ordinal property.  (Contributed by NM,
     5-Jun-1994.) $)
  eloni $p |- ( A e. On -> Ord A ) $=
    ( con0 wcel word elong ibi ) ABCADABEF $.

  $( An ordinal number is an ordinal set.  (Contributed by NM, 8-Feb-2004.) $)
  elon2 $p |- ( A e. On <-> ( Ord A /\ A e. _V ) ) $=
    ( con0 wcel cvv word wa elex elong biadan2 ancom bitri ) ABCZADCZAEZFNMFLMN
    ABGADHIMNJK $.

  $( Equality theorem for the limit predicate.  (Contributed by NM,
     22-Apr-1994.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
  limeq $p |- ( A = B -> ( Lim A <-> Lim B ) ) $=
    ( wceq word c0 wne cuni w3a wlim ordeq neeq1 unieq eqeq12d 3anbi123d df-lim
    id 3bitr4g ) ABCZADZAEFZAAGZCZHBDZBEFZBBGZCZHAIBIRSUCTUDUBUFABJABEKRABUAUER
    PABLMNAOBOQ $.

  $( Epsilon well-orders every ordinal.  Proposition 7.4 of [TakeutiZaring]
     p. 36.  (Contributed by NM, 3-Apr-1994.) $)
  ordwe $p |- ( Ord A -> _E We A ) $=
    ( word wtr cep wwe df-ord simprbi ) ABACADEAFG $.

  $( An ordinal class is transitive.  (Contributed by NM, 3-Apr-1994.) $)
  ordtr $p |- ( Ord A -> Tr A ) $=
    ( word wtr cep wwe df-ord simplbi ) ABACADEAFG $.

  $( Epsilon is well-founded on an ordinal class.  (Contributed by NM,
     22-Apr-1994.) $)
  ordfr $p |- ( Ord A -> _E Fr A ) $=
    ( word cep wwe wfr ordwe wefr syl ) ABACDACEAFACGH $.

  $( An element of an ordinal class is a subset of it.  (Contributed by NM,
     30-May-1994.) $)
  ordelss $p |- ( ( Ord A /\ B e. A ) -> B C_ A ) $=
    ( word wtr wcel wss ordtr trss imp sylan ) ACADZBAEZBAFZAGKLMABHIJ $.

  $( A transitive subclass of an ordinal class is ordinal.  (Contributed by NM,
     29-May-1994.) $)
  trssord $p |- ( ( Tr A /\ A C_ B /\ Ord B ) -> Ord A ) $=
    ( wtr wss word w3a cep wwe wa wess ordwe impel anim2i 3impb df-ord sylibr )
    ACZABDZBEZFQAGHZIZAEQRSUARSITQRBGHTSABGJBKLMNAOP $.

  $( Epsilon irreflexivity of ordinals: no ordinal class is a member of itself.
     Theorem 2.2(i) of [BellMachover] p. 469, generalized to classes.  We prove
     this without invoking the Axiom of Regularity.  (Contributed by NM,
     2-Jan-1994.) $)
  ordirr $p |- ( Ord A -> -. A e. A ) $=
    ( word cep wfr wcel wn ordfr efrirr syl ) ABACDAAEFAGAHI $.

  $( A member of an ordinal class is not equal to it.  (Contributed by NM,
     25-May-1998.) $)
  nordeq $p |- ( ( Ord A /\ B e. A ) -> A =/= B ) $=
    ( word wcel wne wn wceq ordirr eleq1 notbid syl5ibcom necon2ad imp ) ACZBAD
    ZABENOABNAADZFABGZOFAHQPOABAIJKLM $.

  $( An ordinal class cannot be an element of one of its members.  Variant of
     first part of Theorem 2.2(vii) of [BellMachover] p. 469.  (Contributed by
     NM, 3-Apr-1994.) $)
  ordn2lp $p |- ( Ord A -> -. ( A e. B /\ B e. A ) ) $=
    ( word wcel wa ordirr wtr wi ordtr trel syl mtod ) ACZABDBADEZAADZAFMAGNOHA
    IAABJKL $.

  ${
    $d x B $.
    $( A nonempty subclass of an ordinal class has a minimal element.
       Proposition 7.5 of [TakeutiZaring] p. 36.  (Contributed by NM,
       18-Feb-2004.)  (Revised by David Abernethy, 16-Mar-2011.) $)
    tz7.5 $p |- ( ( Ord A /\ B C_ A /\ B =/= (/) ) ->
               E. x e. B ( B i^i x ) = (/) ) $=
      ( word cep wwe wss c0 wne cv cin wceq wrex ordwe wefrc syl3an1 ) BDBEFCBG
      CHICAJKHLACMBNABCOP $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( An element of an ordinal class is ordinal.  Proposition 7.6 of
       [TakeutiZaring] p. 36.  (Contributed by NM, 23-Apr-1994.) $)
    ordelord $p |- ( ( Ord A /\ B e. A ) -> Ord B ) $=
      ( vx vz vy word wcel cv wa wceq eleq1 anbi2d wtr cep wwe wel wal w3a syl
      wi ordeq imbi12d simpll 3anrot 3anass ordtr trel3 syl5bir impl trel imp31
      bitr3i expcomd adantrl simplr ordwe sylan syl13anc pm2.43d alrimivv dftr2
      wetrep ex sylibr wss trss wess syl6ci imp df-ord sylanbrc vtoclg anabsi7
      ) AFZBAGZBFZVNCHZAGZIZVQFZTVNVOIZVPTCBAVQBJZVSWAVTVPWBVRVOVNVQBAKLVQBUAUB
      VSVQMZVQNOZVTVSDEPZECPZIZDCPZTZEQDQWCVSWIDEVSWGWHVSWGWIVSWGIVNDHZAGZEHZAG
      ZVRWIVNVRWGUCVNVRWGWKVRWGIZWEWFVRRZVNWKWOVRWEWFRWNVRWEWFUDVRWEWFUEULVNAMZ
      WOWKTAUFZAWJWLVQUGSUHUIVSWFWMWEVNVRWFWMVNWFVRWMVNWPWFVRIWMTWQAWLVQUJSUMUK
      UNVNVRWGUOVNANOZWKWMVRRWIAUPZDECAVBUQURVCUSUTDEVQVAVDVNVRWDVNVRVQAVEZWRWD
      VNWPVRWTTWQAVQVFSWSVQANVGVHVIVQVJVKVLVM $.
  $}

  ${
    $d x y $.
    $( The class of all ordinal numbers is transitive.  (Contributed by NM,
       4-May-2009.) $)
    tron $p |- Tr On $=
      ( vx vy con0 wtr cv wss dftr3 wcel word vex elon ordelord sylanb ex ssrdv
      syl6ibr mprgbir ) CDAEZCFACACGRCHZBRCSBEZRHZTIZTCHSUAUBSRIUAUBRAJKRTLMNTB
      JKPOQ $.
  $}

  $( An element of an ordinal class is an ordinal number.  (Contributed by NM,
     26-Oct-2003.) $)
  ordelon $p |- ( ( Ord A /\ B e. A ) -> B e. On ) $=
    ( word wcel wa con0 ordelord wb elong adantl mpbird ) ACZBADZEBFDZBCZABGMNO
    HLBAIJK $.

  $( An element of an ordinal number is an ordinal number.  Theorem 2.2(iii) of
     [BellMachover] p. 469.  (Contributed by NM, 26-Oct-2003.) $)
  onelon $p |- ( ( A e. On /\ B e. A ) -> B e. On ) $=
    ( con0 wcel word eloni ordelon sylan ) ACDAEBADBCDAFABGH $.

  ${
    $d x y A $.  $d x y B $.
    $( A transitive class belongs to an ordinal class iff it is strictly
       included in it.  Proposition 7.7 of [TakeutiZaring] p. 37.  (Contributed
       by NM, 5-May-1994.) $)
    tz7.7 $p |- ( ( Ord A /\ Tr B ) ->
                ( B e. A <-> ( B C_ A /\ B =/= A ) ) ) $=
      ( vx vy word wtr wa wcel wss wne wi cep c0 cv wceq imp32 wn nsyli adantll
      imp wfr ordtr ordfr tz7.2 3exp sylc adantr cdif pssdifn0 wrex difss tz7.5
      cin mp3an2 eldifi trss difin0ss com12 syl56 ad2antrr eleq1 biimpcd eldifn
      syl adantl trel expcomd ex adantld w3o ordwe ssel2 anim12i wecmpep syl2an
      wwe adantlr ecase23d exp44 com34 imp31 ssrdv ad2antrl eqeltrrd rexlimdvaa
      adantrr eqssd syl5 exp4b com23 adantrd pm2.43i syl7 exp4a pm2.43d impbid
      impd ) AEZBFZGZBAHZBAIZBAJZGZWRXAXDKZWSWRAFZALUAZXEAUBZAUCXFXGXAXDABUDUEU
      FUGWTXBXCXAWTXBXCXAKWTXBXBXCXAXDABUHZMJZWTXBXABAUIWTXBXJXAKZKZWTWRXLWSWTX
      BWRXKWTXBWRXJXAWRXJGXICNZUMMOZCXIUJZWTXBGZXAWRXIAIXJXOABUKCAXIULUNXPXNXAC
      XIXPXMXIHZXNGGZXMBAXRXMBXPXQXNXMBIZWRXQXNXSKZKZWSXBWRXFYAXHXQXMAHZXFXMAIZ
      XTXMABUOZAXMUPXNYCXSABXMUQURUSVDUTPXPXQBXMIXNXPXQGDBXMWTXBXQDNZBHZYEXMHZK
      WTXBYFXQYGWTXBYFXQYGWTXBYFGZXQGZGYGYEXMOZXMYEHZYIYJQZWTYFXQYLXBYFXQYLYFYJ
      XMBHZXQYJYFYMYEXMBVAVBXMABVCZRTSVEWSYIYKQZWRWSYHXQYOWSYFXQYOKZXBWSYFYPWSY
      FGYKYMXQWSYFYKYMKWSYKYFYMBXMYEVFVGTYNRVHVIPSWRYIYGYJYKVJZWSWRALVPYEAHZYBG
      YQYIAVKYHYRXQYBBAYEVLYDVMDCAVNVOVQVRVSVTWAWBWFWGXQYBXPXNYDWCWDWEWHWIWJWKW
      LWMWNWOWQWP $.
  $}

  $( For ordinal classes, membership is equivalent to strict inclusion.
     Corollary 7.8 of [TakeutiZaring] p. 37.  (Contributed by NM,
     25-Nov-1995.) $)
  ordelssne $p |- ( ( Ord A /\ Ord B ) ->
              ( A e. B <-> ( A C_ B /\ A =/= B ) ) ) $=
    ( word wcel wss wne wa wb wtr ordtr tz7.7 sylan2 ancoms ) BCZACZABDABEABFGH
    ZONAIPAJBAKLM $.

  $( For ordinal classes, membership is equivalent to strict inclusion.
     Corollary 7.8 of [TakeutiZaring] p. 37.  (Contributed by NM,
     17-Jun-1998.) $)
  ordelpss $p |- ( ( Ord A /\ Ord B ) -> ( A e. B <-> A C. B ) ) $=
    ( word wa wcel wss wne wpss ordelssne df-pss syl6bbr ) ACBCDABEABFABGDABHAB
    IABJK $.

  $( For ordinal classes, inclusion is equivalent to membership or equality.
     (Contributed by NM, 25-Nov-1995.)  (Proof shortened by Andrew Salmon,
     25-Jul-2011.) $)
  ordsseleq $p |- ( ( Ord A /\ Ord B ) ->
                  ( A C_ B <-> ( A e. B \/ A = B ) ) ) $=
    ( word wa wcel wceq wo wpss wss ordelpss orbi1d sspss syl6rbbr ) ACBCDZABEZ
    ABFZGABHZPGABINOQPABJKABLM $.

  $( The intersection of two ordinal classes is ordinal.  Proposition 7.9 of
     [TakeutiZaring] p. 37.  (Contributed by NM, 9-May-1994.) $)
  ordin $p |- ( ( Ord A /\ Ord B ) -> Ord ( A i^i B ) ) $=
    ( word cin wtr ordtr trin syl2an wss inss2 trssord mp3an2 sylancom ) ACZBCZ
    ABDZEZPCZNAEBEQOAFBFABGHQPBIORABJPBKLM $.

  $( The intersection of two ordinal numbers is an ordinal number.
     (Contributed by NM, 7-Apr-1995.) $)
  onin $p |- ( ( A e. On /\ B e. On ) -> ( A i^i B ) e. On ) $=
    ( con0 wcel wa cin word eloni ordin syl2an cvv wb simpl inex1g elong mpbird
    3syl ) ACDZBCDZEZABFZCDZUAGZRAGBGUCSAHBHABIJTRUAKDUBUCLRSMABCNUAKOQP $.

  $( A trichotomy law for ordinals.  Proposition 7.10 of [TakeutiZaring] p. 38.
     (Contributed by NM, 10-May-1994.)  (Proof shortened by Andrew Salmon,
     25-Jul-2011.) $)
  ordtri3or $p |- ( ( Ord A /\ Ord B ) -> ( A e. B \/ A = B \/ B e. A ) ) $=
    ( word wa wcel wceq w3o wpss wss wo ordin sylib inss1 ordsseleq mpbii sylan
    cin wn ord df-ss ordirr syl ianor elin incom eleq1i anbi2i xchnxbir anabss1
    bitri syl6ibr anabss4 orim12d mpd sspsstri ordelpss ancoms 3orbi123d mpbird
    biidd wb ) ACZBCZDZABEZABFZBAEZGABHZVFBAHZGZVDABIZBAIZJZVJVDABQZAEZRZBAQZBE
    ZRZJZVMVDVNVNEZRZVTVDVNCZWBABKZVNUAUBVOVRDZVTWAVOVRUCWAVOVNBEZDWEVNABUDWFVR
    VOVNVQBABUEUFUGUJUHLVDVPVKVSVLVDVPVNAFZVKVDVOWGVBVCVOWGJZVDWCVBWHWDWCVBDVNA
    IWHABMVNANOPUISABTUKVDVSVQBFZVLVDVRWIVBVCVRWIJZVCVBDVQCZVCWJBAKWKVCDVQBIWJB
    AMVQBNOPULSBATUKUMUNABUOLVDVEVHVFVFVGVIABUPVDVFUTVCVBVGVIVABAUPUQURUS $.

  $( A trichotomy law for ordinals.  (Contributed by NM, 25-Mar-1995.)  (Proof
     shortened by Andrew Salmon, 25-Jul-2011.) $)
  ordtri1 $p |- ( ( Ord A /\ Ord B ) -> ( A C_ B <-> -. B e. A ) ) $=
    ( word wa wss wcel wceq wo wn ordsseleq wi imnan sylibr ordirr eleq2 notbid
    ordn2lp syl5ibrcom jaao w3o ordtri3or df-3or sylib orcomd ord impbid bitrd
    ) ACZBCZDZABEABFZABGZHZBAFZIZABJUJUMUOUHUKUOUIULUHUKUNDIUKUOKABQUKUNLMUIUOU
    LBBFZIBNULUNUPABBOPRSUJUNUMUJUMUNUJUKULUNTUMUNHABUAUKULUNUBUCUDUEUFUG $.

  $( A trichotomy law for ordinal numbers.  (Contributed by NM, 6-Nov-2003.) $)
  ontri1 $p |- ( ( A e. On /\ B e. On ) -> ( A C_ B <-> -. B e. A ) ) $=
    ( con0 wcel word wss wn wb eloni ordtri1 syl2an ) ACDAEBEABFBADGHBCDAIBIABJ
    K $.

  $( A trichotomy law for ordinals.  (Contributed by NM, 25-Nov-1995.) $)
  ordtri2 $p |- ( ( Ord A /\ Ord B ) ->
               ( A e. B <-> -. ( A = B \/ B e. A ) ) ) $=
    ( word wa wceq wcel wo wn wb wss ordsseleq eqcom orbi2i orcom bitri ordtri1
    syl6bb bitr3d ancoms con2bid ) ACZBCZDABEZBAFZGZABFZUBUAUEUFHZIUBUADZBAJZUE
    UGUHUIUDBAEZGZUEBAKUKUDUCGUEUJUCUDBALMUDUCNOQBAPRST $.

  $( A trichotomy law for ordinals.  (Contributed by NM, 18-Oct-1995.)  (Proof
     shortened by Andrew Salmon, 25-Jul-2011.)  (Proof shortened by JJ,
     24-Sep-2021.) $)
  ordtri3 $p |- ( ( Ord A /\ Ord B ) ->
               ( A = B <-> -. ( A e. B \/ B e. A ) ) ) $=
    ( word wa wceq wcel wo ordirr adantl eleq2 notbid syl5ibrcom pm4.71d pm5.61
    wn pm4.52 bitr3i syl6bb ordtri2 orbi1d bitr4d ) ACZBCZDZABEZUEBAFZGZOZUFGZO
    ZABFZUFGZOUDUEUEUFOZDZUJUDUEUMUDUMUEBBFZOZUCUPUBBHIUEUFUOABBJKLMUNUGUMDUJUE
    UFNUGUFPQRUDULUIUDUKUHUFABSTKUA $.

  $( Obsolete proof of ~ ordtri3 as of 24-Sep-2021.  (Contributed by NM,
     18-Oct-1995.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.)
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  ordtri3OLD $p |- ( ( Ord A /\ Ord B ) ->
               ( A = B <-> -. ( A e. B \/ B e. A ) ) ) $=
    ( word wa wceq wcel wo wn ordirr eleq2 notbid syl5ib syl5ibr anim12d pm4.56
    com12 syl6ib w3o ordtri3or sylib df-3or or32 ord impbid ) ACZBCZDZABEZABFZB
    AFZGZHZUGUHUIHZUJHZDZULUHUGUOUHUEUMUFUNUEAAFZHUHUMAIUHUPUIABAJKLUFUNUHBBFZH
    BIUHUJUQABBJKMNPUIUJOQUGUKUHUGUIUHGUJGZUKUHGUGUIUHUJRURABSUIUHUJUATUIUHUJUB
    TUCUD $.

  $( A trichotomy law for ordinals.  (Contributed by NM, 1-Nov-2003.)  (Proof
     shortened by Andrew Salmon, 25-Jul-2011.) $)
  ordtri4 $p |- ( ( Ord A /\ Ord B ) ->
               ( A = B <-> ( A C_ B /\ -. A e. B ) ) ) $=
    ( wceq wss wa word wcel wn eqss wb ordtri1 ancoms anbi2d syl5bb ) ABCABDZBA
    DZEAFZBFZEZOABGHZEABISPTORQPTJBAKLMN $.

  $( An ordinal class and its singleton are disjoint.  (Contributed by NM,
     19-May-1998.) $)
  orddisj $p |- ( Ord A -> ( A i^i { A } ) = (/) ) $=
    ( word wcel wn csn cin c0 wceq ordirr disjsn sylibr ) ABAACDAAEFGHAIAAJK $.

  ${
    $d x y z $.
    $( The ordinal class is well-founded.  This lemma is needed for ~ ordon in
       order to eliminate the need for the Axiom of Regularity.  (Contributed
       by NM, 17-May-1994.) $)
    onfr $p |- _E Fr On $=
      ( vx vz vy con0 cep wfr cv wss c0 wne cin wceq wrex dfepfr wel wex eqeq1d
      wa wi wcel n0 ineq2 rspcev adantll inss1 word ssel2 eloni ordfr inss2 vex
      3syl inex1 epfrc mp3an2 sylan wb inass syl elinel2 ordelss syl2an sseqin2
      sylib ineq2d syl5eq rexbidva adantr mpbid ssrexv mpsyl pm2.61dane exlimdv
      ex syl5bi imp mpgbir ) DEFAGZDHZVRIJZRVRBGZKZILZBVRMZSAABDNVSVTWDVTCAOZCP
      VSWDCVRUAVSWEWDCVSWEWDVSWERZWDVRCGZKZIWEWHILZWDVSWCWIBWGVRWAWGLWBWHIWAWGV
      RUBQUCUDWHVRHWFWHIJZRZWCBWHMZWDVRWGUEWKWHWAKZILZBWHMZWLWFWGEFZWJWOWFWGDTZ
      WGUFZWPVRDWGUGZWGUHZWGUIULWPWHWGHWJWOVRWGUJBWGWHVRWGAUKUMUNUOUPWFWOWLUQWJ
      WFWNWCBWHWFWAWHTZRZWMWBIXBWMVRWGWAKZKWBVRWGWAURXBXCWAVRXBWAWGHZXCWALWFWRB
      COXDXAWFWQWRWSWTUSWAVRWGUTWGWAVAVBWAWGVCVDVEVFQVGVHVIWCBWHVRVJVKVLVNVMVOV
      PVQ $.
  $}

  $( Relationship between membership and proper subset of an ordinal number.
     (Contributed by NM, 15-Sep-1995.) $)
  onelpss $p |- ( ( A e. On /\ B e. On ) ->
               ( A e. B <-> ( A C_ B /\ A =/= B ) ) ) $=
    ( con0 wcel word wss wne wa wb eloni ordelssne syl2an ) ACDAEBEABDABFABGHIB
    CDAJBJABKL $.

  $( Relationship between subset and membership of an ordinal number.
     (Contributed by NM, 15-Sep-1995.) $)
  onsseleq $p |- ( ( A e. On /\ B e. On ) ->
                 ( A C_ B <-> ( A e. B \/ A = B ) ) ) $=
    ( con0 wcel word wss wceq wo wb eloni ordsseleq syl2an ) ACDAEBEABFABDABGHI
    BCDAJBJABKL $.

  $( An element of an ordinal number is a subset of the number.  (Contributed
     by NM, 5-Jun-1994.)  (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
  onelss $p |- ( A e. On -> ( B e. A -> B C_ A ) ) $=
    ( con0 wcel word wss wi eloni ordelss ex syl ) ACDAEZBADZBAFZGAHLMNABIJK $.

  $( Transitive law for ordinal classes.  (Contributed by NM, 12-Dec-2004.) $)
  ordtr1 $p |- ( Ord C -> ( ( A e. B /\ B e. C ) -> A e. C ) ) $=
    ( word wtr wcel wa wi ordtr trel syl ) CDCEABFBCFGACFHCICABJK $.

  $( Transitive law for ordinal classes.  (Contributed by NM, 12-Dec-2004.)
     (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
  ordtr2 $p |- ( ( Ord A /\ Ord C ) -> ( ( A C_ B /\ B e. C ) -> A e. C ) ) $=
    ( word wa wss wcel wpss wi ordelord ex ancld anc2li ordelpss sspsstr expcom
    syl6bi com23 imp32 com12 syl9 impd adantl sylibrd ) ADZCDZEABFZBCGZEZACHZAC
    GUFUIUJIUEUFUGUHUJUFUHUFUHBDZEZEZUGUJUFUHULUFUHUKUFUHUKCBJKLMUMUGUJUFUHUKUG
    UJIZUFUKUHUNUKUFUHUNIUKUFEUHBCHZUNBCNUGUOUJABCOPQPRSTUAUBUCACNUD $.

  $( Transitive law for ordinal classes.  (Contributed by Mario Carneiro,
     30-Dec-2014.)  (Proof shortened by JJ, 24-Sep-2021.) $)
  ordtr3 $p |- ( ( Ord B /\ Ord C ) -> ( A e. B -> ( A e. C \/ C e. B ) ) ) $=
    ( word wa wcel wo wn wss nelss adantl wb ordtri1 con2bid adantr mpbird expr
    orrd ex ) BDCDEZABFZACFZCBFZGTUAEUBUCTUAUBHZUCTUAUDEZEUCBCIZHZUEUGTABCJKTUC
    UGLUETUFUCBCMNOPQRS $.

  $( Obsolete proof of ~ ordtr3 as of 24-Sep-2021.  (Contributed by Mario
     Carneiro, 30-Dec-2014.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  ordtr3OLD $p |- ( ( Ord B /\ Ord C ) -> ( A e. B -> ( A e. C \/ C e. B ) ) )
    $=
    ( word wa wcel wo wn wss wb ordelord adantlr ordtri1 syl2an2r ordtr2 ancoms
    simpr wi expcomd imp sylbird orrd ex ) BDZCDZEZABFZACFZCBFZGUFUGEZUHUIUJUHH
    ZCAIZUIUFUEUGADZULUKJUDUEQUDUGUMUEBAKLCAMNUFUGULUIRUFULUGUIUEUDULUGEUIRCABO
    PSTUAUBUC $.

  $( Transitive law for ordinal numbers.  Theorem 7M(b) of [Enderton] p. 192.
     (Contributed by NM, 11-Aug-1994.) $)
  ontr1 $p |- ( C e. On -> ( ( A e. B /\ B e. C ) -> A e. C ) ) $=
    ( con0 wcel word wa wi eloni ordtr1 syl ) CDECFABEBCEGACEHCIABCJK $.

  $( Transitive law for ordinal numbers.  Exercise 3 of [TakeutiZaring] p. 40.
     (Contributed by NM, 6-Nov-2003.) $)
  ontr2 $p |- ( ( A e. On /\ C e. On ) ->
              ( ( A C_ B /\ B e. C ) -> A e. C ) ) $=
    ( con0 wcel word wss wa wi eloni ordtr2 syl2an ) ADEAFCFABGBCEHACEICDEAJCJA
    BCKL $.

  ${
    $d x y A $.  $d x y B $.
    $( The union of an ordinal stays the same if a subset equal to one of its
       elements is removed.  (Contributed by NM, 10-Dec-2004.) $)
    ordunidif $p |- ( ( Ord A /\ B e. A ) -> U. ( A \ B ) = U. A ) $=
      ( vx vy word wcel wa cv wss cdif wrex wi syl wn eldif adantl sseq2 rspcev
      cuni syl6 wral wceq con0 ordelon onelss eloni ordirr simplbi2 syl5 jctild
      mpd adantr biimpri ssid jctir ex pm2.61d ralrimiva unidif ) AEZBAFZGZCHZD
      HZIZDABJZKZCAUAVFSASUBVBVGCAVBVCAFZGZVCBFZVGVIVJBVFFZVCBIZGZVGVBVJVMLVHVB
      VJVLVKVBBUCFZVJVLLABUDZBVCUEMVBVNVKVOVAVNVKLUTVNBBFNZVAVKVNBEVPBUFBUGMVKV
      AVPBABOUHUIPUKUJULVEVLDBVFVDBVCQRTVHVJNZVGLVBVHVQVCVFFZVCVCIZGZVGVHVQVTVH
      VQGZVRVSVRWAVCABOUMVCUNUOUPVEVSDVCVFVDVCVCQRTPUQURCDABUSM $.

    $( If ` B ` is smaller than ` A ` , then it equals the intersection of the
       difference.  Exercise 11 in [TakeutiZaring] p. 44.  (Contributed by
       Andrew Salmon, 14-Nov-2011.) $)
    ordintdif $p |- ( ( Ord A /\ Ord B /\ ( A \ B ) =/= (/) )
      -> B = |^| ( A \ B ) ) $=
      ( vx cdif c0 wne word wss wn cint wceq ssdif0 necon3bbii w3a cv wcel crab
      dfdif2 wa ordtri1 inteqi con2bid wb ordelord an32s rabbidva inteqd intmin
      id syl2anr sylan9req ex sylbird 3impia syl5req syl3an3br ) ABDZEFAGZBGZAB
      HZIZBUQJZKUTUQEABLMURUSVANVBCOZBPIZCAQZJZBUQVECABRUAURUSVAVFBKZURUSSZVABA
      PZVGVHUTVIABTUBVHVIVGVHVIVFBVCHZCAQZJBVHVKVEVHVJVDCAURVCAPZUSVJVDUCZUSUSV
      CGVMURVLSUSUIAVCUDBVCTUJUEUFUGCBAUHUKULUMUNUOUP $.
  $}

  ${
    $d x ps $.  $d x A $.
    onintss.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( If a property is true for an ordinal number, then the minimum ordinal
       number for which it is true is smaller or equal.  Theorem Schema 61 of
       [Suppes] p. 228.  (Contributed by NM, 3-Oct-2003.) $)
    onintss $p |- ( A e. On -> ( ps -> |^| { x e. On | ph } C_ A ) ) $=
      ( con0 wcel crab cint wss intminss ex ) DFGBACFHIDJABCDFEKL $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A way to show that an ordinal number equals the minimum of a collection
       of ordinal numbers: it must be in the collection, and it must not be
       larger than any member of the collection.  (Contributed by NM,
       14-Nov-2003.) $)
    oneqmini $p |- ( B C_ On -> ( ( A e. B /\ A. x e. A -. x e. B )
                    -> A = |^| B ) ) $=
      ( con0 wss wcel cv wn wral wa cint wceq ssint wi ssel anim12d ontri1 syl6
      wb expdimp pm5.74d con2b syl6bb syl5bb biimprd expimpd intss1 a1i adantrd
      ralbidv2 jcad eqss syl6ibr ) CDEZBCFZAGZCFZHZABIZJZBCKZEZVABEZJBVALUNUTVB
      VCUNUOUSVBUNUOJZVBUSVBBUPEZACIVDUSABCMVDVEURACBVDUQVENUQUPBFZHZNVFURNVDUQ
      VEVGUNUOUQVEVGSZUNUOUQJBDFZUPDFZJVHUNUOVIUQVJCDBOCDUPOPBUPQRTUAUQVFUBUCUJ
      UDUEUFUNUOVCUSUOVCNUNBCUGUHUIUKBVAULUM $.
  $}

  $( The empty set is an ordinal class.  (Contributed by NM, 11-May-1994.) $)
  ord0 $p |- Ord (/) $=
    ( c0 word wtr cep wwe tr0 we0 df-ord mpbir2an ) ABACADEFDGAHI $.

  $( The empty set is an ordinal number.  Corollary 7N(b) of [Enderton] p. 193.
     (Contributed by NM, 17-Sep-1993.) $)
  0elon $p |- (/) e. On $=
    ( c0 con0 wcel word ord0 0ex elon mpbir ) ABCADEAFGH $.

  $( A nonempty ordinal contains the empty set.  (Contributed by NM,
     25-Nov-1995.) $)
  ord0eln0 $p |- ( Ord A -> ( (/) e. A <-> A =/= (/) ) ) $=
    ( word c0 wcel ne0i wceq wo wi ord0 wa wn noel ordtri2 con2bid mpbiri mpan2
    wne neor sylib impbid2 ) ABZCADZACQZACEUAACFUBGZUCUBHUACBZUDIUAUEJZUDACDZKA
    LUFUGUDACMNOPUBACRST $.

  $( An ordinal number contains zero iff it is nonzero.  (Contributed by NM,
     6-Dec-2004.) $)
  on0eln0 $p |- ( A e. On -> ( (/) e. A <-> A =/= (/) ) ) $=
    ( con0 wcel word c0 wne wb eloni ord0eln0 syl ) ABCADEACAEFGAHAIJ $.

  $( An alternate definition of a limit ordinal.  (Contributed by NM,
     4-Nov-2004.) $)
  dflim2 $p |- ( Lim A <-> ( Ord A /\ (/) e. A /\ A = U. A ) ) $=
    ( wlim word c0 wne cuni wceq w3a wcel df-lim ord0eln0 anbi1d pm5.32i 3anass
    wa 3bitr4i bitr4i ) ABACZADEZAAFGZHZRDAIZTHZAJRUBTOZORSTOZOUCUARUDUERUBSTAK
    LMRUBTNRSTNPQ $.

  $( The intersection of the class of ordinal numbers is the empty set.
     (Contributed by NM, 20-Oct-2003.) $)
  inton $p |- |^| On = (/) $=
    ( c0 con0 wcel cint wceq 0elon int0el ax-mp ) ABCBDAEFBGH $.

  $( The empty set is not a limit ordinal.  (Contributed by NM, 24-Mar-1995.)
     (Proof shortened by Andrew Salmon, 25-Jul-2011.) $)
  nlim0 $p |- -. Lim (/) $=
    ( c0 wlim word wcel cuni wceq w3a noel simp2 mto dflim2 mtbir ) ABACZAADZAA
    EFZGZPNAHMNOIJAKL $.

  $( A limit ordinal is ordinal.  (Contributed by NM, 4-May-1995.) $)
  limord $p |- ( Lim A -> Ord A ) $=
    ( wlim word c0 wne cuni wceq df-lim simp1bi ) ABACADEAAFGAHI $.

  $( A limit ordinal is its own supremum (union).  (Contributed by NM,
     4-May-1995.) $)
  limuni $p |- ( Lim A -> A = U. A ) $=
    ( wlim word c0 wne cuni wceq df-lim simp3bi ) ABACADEAAFGAHI $.

  $( The union of a limit ordinal is a limit ordinal.  (Contributed by NM,
     19-Sep-2006.) $)
  limuni2 $p |- ( Lim A -> Lim U. A ) $=
    ( wlim cuni wceq wb limuni limeq syl ibi ) ABZACZBZJAKDJLEAFAKGHI $.

  $( A limit ordinal contains the empty set.  (Contributed by NM,
     15-May-1994.) $)
  0ellim $p |- ( Lim A -> (/) e. A ) $=
    ( wlim c0 wcel wne wceq nlim0 limeq mtbiri necon2ai word wb limord ord0eln0
    syl mpbird ) ABZCADZACEZQACACFQCBGACHIJQAKRSLAMANOP $.

  $( A limit ordinal class that is also a set is an ordinal number.
     (Contributed by NM, 26-Apr-2004.) $)
  limelon $p |- ( ( A e. B /\ Lim A ) -> A e. On ) $=
    ( wcel wlim con0 word limord elong syl5ibr imp ) ABCZADZAECZLMKAFAGABHIJ $.

  $( The class of all ordinal numbers is not empty.  (Contributed by NM,
     17-Sep-1995.) $)
  onn0 $p |- On =/= (/) $=
    ( c0 con0 0elon ne0ii ) ABCD $.

  $( Equality of successors.  (Contributed by NM, 30-Aug-1993.)  (Proof
     shortened by Andrew Salmon, 25-Jul-2011.) $)
  suceq $p |- ( A = B -> suc A = suc B ) $=
    ( wceq csn cun csuc id sneq uneq12d df-suc 3eqtr4g ) ABCZAADZEBBDZEAFBFLABM
    NLGABHIAJBJK $.

  $( Membership in a successor.  This one-way implication does not require that
     either ` A ` or ` B ` be sets.  (Contributed by NM, 6-Jun-1994.) $)
  elsuci $p |- ( A e. suc B -> ( A e. B \/ A = B ) ) $=
    ( csuc wcel csn wo wceq cun df-suc eleq2i elun bitri elsni orim2i sylbi ) A
    BCZDZABDZABEZDZFZRABGZFQABSHZDUAPUCABIJABSKLTUBRABMNO $.

  $( Membership in a successor.  Exercise 5 of [TakeutiZaring] p. 17.
     (Contributed by NM, 15-Sep-1995.) $)
  elsucg $p |- ( A e. V -> ( A e. suc B <-> ( A e. B \/ A = B ) ) ) $=
    ( csuc wcel csn wo wceq cun df-suc eleq2i elun bitri elsng orbi2d syl5bb )
    ABDZEZABEZABFZEZGZACEZSABHZGRABTIZEUBQUEABJKABTLMUCUAUDSABCNOP $.

  $( Variant of membership in a successor, requiring that ` B ` rather than
     ` A ` be a set.  (Contributed by NM, 28-Oct-2003.) $)
  elsuc2g $p |- ( B e. V -> ( A e. suc B <-> ( A e. B \/ A = B ) ) ) $=
    ( csuc wcel csn cun wceq wo df-suc eleq2i elun elsn2g orbi2d syl5bb ) ABDZE
    ABBFZGZEZBCEZABEZABHZIZPRABJKSUAAQEZITUCABQLTUDUBUAABCMNOO $.

  ${
    elsuc.1 $e |- A e. _V $.
    $( Membership in a successor.  Exercise 5 of [TakeutiZaring] p. 17.
       (Contributed by NM, 15-Sep-2003.) $)
    elsuc $p |- ( A e. suc B <-> ( A e. B \/ A = B ) ) $=
      ( cvv wcel csuc wceq wo wb elsucg ax-mp ) ADEABFEABEABGHICABDJK $.

    $( Membership in a successor.  (Contributed by NM, 15-Sep-2003.) $)
    elsuc2 $p |- ( B e. suc A <-> ( B e. A \/ B = A ) ) $=
      ( cvv wcel csuc wceq wo wb elsuc2g ax-mp ) ADEBAFEBAEBAGHICBADJK $.
  $}

  ${
    nfsuc.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for successor.  (Contributed by NM,
       15-Sep-2003.) $)
    nfsuc $p |- F/_ x suc A $=
      ( csuc csn cun df-suc nfsn nfun nfcxfr ) ABDBBEZFBGABKCABCHIJ $.
  $}

  $( Membership in a successor.  (Contributed by NM, 20-Jun-1998.) $)
  elelsuc $p |- ( A e. B -> A e. suc B ) $=
    ( wcel csuc wceq wo orc elsucg mpbird ) ABCZABDCJABEZFJKGABBHI $.

  ${
    $d x y A $.  $d x B $.
    $( Membership of a successor in another class.  (Contributed by NM,
       29-Jun-2004.) $)
    sucel $p |- ( suc A e. B <->
                E. x e. B A. y ( y e. x <-> ( y e. A \/ y = A ) ) ) $=
      ( csuc wcel cv wceq wrex wo wb wal risset dfcleq elsuc bibi2i albii bitri
      vex rexbii ) CEZDFAGZUAHZADIBGZUBFZUDCFUDCHJZKZBLZADIAUADMUCUHADUCUEUDUAF
      ZKZBLUHBUBUANUJUGBUIUFUEUDCBSOPQRTR $.
  $}

  $( The successor of the empty set.  (Contributed by NM, 1-Feb-2005.) $)
  suc0 $p |- suc (/) = { (/) } $=
    ( c0 csuc csn cun df-suc uncom un0 3eqtri ) ABAACZDIADIAEAIFIGH $.

  $( A proper class is its own successor.  (Contributed by NM, 3-Apr-1995.) $)
  sucprc $p |- ( -. A e. _V -> suc A = A ) $=
    ( cvv wcel wn csn cun c0 csuc snprc biimpi uneq2d df-suc un0 eqcomi 3eqtr4g
    wceq ) ABCDZAAEZFAGFZAHAQRGAQRGPAIJKALSAAMNO $.

  ${
    unisuc.1 $e |- A e. _V $.
    $( A transitive class is equal to the union of its successor.  Combines
       Theorem 4E of [Enderton] p. 72 and Exercise 6 of [Enderton] p. 73.
       (Contributed by NM, 30-Aug-1993.) $)
    unisuc $p |- ( Tr A <-> U. suc A = A ) $=
      ( cuni wss cun wceq wtr csuc ssequn1 df-tr csn df-suc unieqi uniun uneq2i
      unisn 3eqtri eqeq1i 3bitr4i ) ACZADTAEZAFAGAHZCZAFTAIAJUCUAAUCAAKZEZCTUDC
      ZEUAUBUEALMAUDNUFATABPOQRS $.
  $}

  $( A class is included in its own successor.  Part of Proposition 7.23 of
     [TakeutiZaring] p. 41 (generalized to arbitrary classes).  (Contributed by
     NM, 31-May-1994.) $)
  sssucid $p |- A C_ suc A $=
    ( csn cun csuc ssun1 df-suc sseqtr4i ) AAABZCADAHEAFG $.

  $( Part of Proposition 7.23 of [TakeutiZaring] p. 41 (generalized).
     (Contributed by NM, 25-Mar-1995.)  (Proof shortened by Scott Fenton,
     20-Feb-2012.) $)
  sucidg $p |- ( A e. V -> A e. suc A ) $=
    ( wcel csuc wceq wo eqid olci elsucg mpbiri ) ABCAADCAACZAAEZFLKAGHAABIJ $.

  ${
    sucid.1 $e |- A e. _V $.
    $( A set belongs to its successor.  (Contributed by NM, 22-Jun-1994.)
       (Proof shortened by Alan Sare, 18-Feb-2012.)  (Proof shortened by Scott
       Fenton, 20-Feb-2012.) $)
    sucid $p |- A e. suc A $=
      ( cvv wcel csuc sucidg ax-mp ) ACDAAEDBACFG $.
  $}

  $( No successor is empty.  (Contributed by NM, 3-Apr-1995.) $)
  nsuceq0 $p |- suc A =/= (/) $=
    ( csuc c0 cvv wcel wceq wn noel sucidg eleq2 syl5ibcom mtoi 0ex eleq1 con3i
    mpbiri sucprc eqeq1d mtbird pm2.61i neir ) ABZCADEZUBCFZGUCUDACEZAHUCAUBEUD
    UEADIUBCAJKLUCGZUDACFZUGUCUGUCCDEMACDNPOUFUBACAQRSTUA $.

  ${
    eqelsuc.1 $e |- A e. _V $.
    $( A set belongs to the successor of an equal set.  (Contributed by NM,
       18-Aug-1994.) $)
    eqelsuc $p |- ( A = B -> A e. suc B ) $=
      ( wceq csuc sucid suceq syl5eleq ) ABDAAEBEACFABGH $.
  $}

  ${
    $d A x $.  $d C x $.
    iunsuc.1 $e |- A e. _V $.
    iunsuc.2 $e |- ( x = A -> B = C ) $.
    $( Inductive definition for the indexed union at a successor.  (Contributed
       by Mario Carneiro, 4-Feb-2013.)  (Proof shortened by Mario Carneiro,
       18-Nov-2016.) $)
    iunsuc $p |- U_ x e. suc A B = ( U_ x e. A B u. C ) $=
      ( csuc ciun csn cun wceq df-suc iuneq1 ax-mp iunxun iunxsn uneq2i 3eqtri
      ) ABGZCHZABBIZJZCHZABCHZAUACHZJUDDJSUBKTUCKBLASUBCMNABUACOUEDUDABCDEFPQR
      $.
  $}

  ${
    $d y z A $.
    $( The successor of a transitive class is transitive.  (Contributed by Alan
       Sare, 11-Apr-2009.)  (Proof shortened by JJ, 24-Sep-2021.) $)
    suctr $p |- ( Tr A -> Tr suc A ) $=
      ( vz vy wtr cv wcel csuc wa wi wal wceq elsuci trel expdimp eleq2 biimpcd
      wo adantl jaod syl5 expimpd elelsuc syl6 alrimivv dftr2 sylibr ) ADZBEZCE
      ZFZUIAGZFZHZUHUKFZIZCJBJUKDUGUOBCUGUMUHAFZUNUGUJULUPULUIAFZUIAKZQUGUJHZUP
      UIALUSUQUPURUGUJUQUPAUHUIMNUJURUPIUGURUJUPUIAUHOPRSTUAUHAUBUCUDBCUKUEUF
      $.

    $( Obsolete proof of ~ suctr as of 24-Sep-2021.  (Contributed by Alan Sare,
       11-Apr-2009.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    suctrOLD $p |- ( Tr A -> Tr suc A ) $=
      ( vz vy wtr cv wcel csuc wa wi wal wceq simpr vex elsuc sylib simpl eleq2
      wo syl6 mpdi syl5ibcom elelsuc trel expd adantrd syl8 jao alrimivv sylibr
      dftr2 ) ADZBEZCEZFZUMAGZFZHZULUOFZIZCJBJUODUKUSBCUKUQUMAFZUMAKZRZURUQUPVB
      UNUPLUMACMNOUKUQVAURIZVBURIZUQVAULAFZURUQUNVAVEUNUPPUMAULQUAULAUBZSUKUQUT
      URIVCVDIUKUQUTVEURUKUNUTVEIUPUKUNUTVEAULUMUCUDUEVFUFUTURVAUGSTTUHBCUOUJUI
      $.
  $}

  $( A set whose successor belongs to a transitive class also belongs.
     (Contributed by NM, 5-Sep-2003.)  (Proof shortened by Andrew Salmon,
     12-Aug-2011.) $)
  trsuc $p |- ( ( Tr A /\ suc B e. A ) -> B e. A ) $=
    ( wtr csuc wcel wa trel cvv wss sssucid ssexg mpan sucidg syl ancri impel )
    ACBBDZEZQAEZFBAESABQGSRSBHEZRBQISTBJBQAKLBHMNOP $.

  $( A member of the successor of a transitive class is a subclass of it.
     (Contributed by NM, 4-Oct-2003.) $)
  trsucss $p |- ( Tr A -> ( B e. suc A -> B C_ A ) ) $=
    ( csuc wcel wceq wo wtr wss elsuci trss wi eqimss a1i jaod syl5 ) BACDBADZB
    AEZFAGZBAHZBAIRPSQABJQSKRBALMNO $.

  $( A subset of an ordinal belongs to its successor.  (Contributed by NM,
     28-Nov-2003.) $)
  ordsssuc $p |- ( ( A e. On /\ Ord B ) -> ( A C_ B <-> A e. suc B ) ) $=
    ( con0 wcel word wa wss wceq wo csuc wb eloni ordsseleq sylan elsucg adantr
    bitr4d ) ACDZBEZFABGZABDABHIZABJDZRAESTUAKALABMNRUBUAKSABCOPQ $.

  $( A subset of an ordinal number belongs to its successor.  (Contributed by
     NM, 15-Sep-1995.) $)
  onsssuc $p |- ( ( A e. On /\ B e. On ) -> ( A C_ B <-> A e. suc B ) ) $=
    ( con0 wcel word wss csuc wb eloni ordsssuc sylan2 ) BCDACDBEABFABGDHBIABJK
    $.

  $( An ordinal subset of an ordinal number belongs to its successor.
     (Contributed by NM, 1-Feb-2005.)  (Proof shortened by Andrew Salmon,
     12-Aug-2011.) $)
  ordsssuc2 $p |- ( ( Ord A /\ B e. On ) -> ( A C_ B <-> A e. suc B ) ) $=
    ( cvv wcel word con0 wa wss csuc wb wi elong biimprd anim1d onsssuc syl6 wn
    annim ssexg ex elex a1d pm5.21ni sylbi expcom adantld pm2.61i ) ACDZAEZBFDZ
    GZABHZABIZDZJZKUHUKAFDZUJGUOUHUIUPUJUHUPUIACLMNABOPUHQZUJUOUIUJUQUOUJUQGUJU
    HKZQUOUJUHRULURUNULUJUHABFSTUNUHUJAUMUAUBUCUDUEUFUG $.

  ${
    $d x A $.  $d x B $.
    $( When its successor is subtracted from a class of ordinal numbers, an
       ordinal number is less than the minimum of the resulting subclass.
       (Contributed by NM, 1-Dec-2003.) $)
    onmindif $p |- ( ( A C_ On /\ B e. On ) -> B e. |^| ( A \ suc B ) ) $=
      ( vx con0 wss wcel wa csuc cdif cint cv wral wn eldif wi wb ssel2 onsssuc
      ontri1 bitr3d con1bid sylan biimpd exp31 com23 imp4b syl5bi elintg adantl
      ralrimiv mpbird ) ADEZBDFZGZBABHZIZJFZBCKZFZCUPLZUNUSCUPURUPFURAFZURUOFZM
      ZGUNUSURAUONULUMVAVCUSULVAUMVCUSOZULVAUMVDULVAGZUMGVCUSVEURDFZUMVCUSPADUR
      QVFUMGZUSVBVGURBEUSMVBURBSURBRTUAUBUCUDUEUFUGUJUMUQUTPULCBUPDUHUIUK $.
  $}

  $( There is no set between an ordinal class and its successor.  Generalized
     Proposition 7.25 of [TakeutiZaring] p. 41.  (Contributed by NM,
     21-Jun-1998.)  (Proof shortened by JJ, 24-Sep-2021.) $)
  ordnbtwn $p |- ( Ord A -> -. ( A e. B /\ B e. suc A ) ) $=
    ( word wcel wceq wo wa ordirr wn ordn2lp wi pm2.24 eleq2 biimpac a1d jaodan
    csuc syl5com mtod elsuci anim2i nsyl ) ACZABDZBADZBAEZFZGZUDBAQDZGUCUHAADZA
    HUCUDUEGZIZUHUJABJUDUEULUJKUFUKUJLUDUFGUJULUFUDUJBAAMNOPRSUIUGUDBATUAUB $.

  $( Obsolete proof of ~ ordnbtwn as of 24-Sep-2021.  (Contributed by NM,
     21-Jun-1998.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  ordnbtwnOLD $p |- ( Ord A -> -. ( A e. B /\ B e. suc A ) ) $=
    ( word wcel wa wo csuc wn ordn2lp ordirr ioran sylanbrc elsuci anim2i sylib
    wceq andi eleq2 biimpac orim2i syl nsyl ) ACZABDZBADZEZAADZFZUDBAGDZEZUCUFH
    UGHUHHABIAJUFUGKLUJUFUDBAPZEZFZUHUJUDUEUKFZEUMUIUNUDBAMNUDUEUKQOULUGUFUKUDU
    GBAARSTUAUB $.

  $( There is no set between an ordinal number and its successor.  Proposition
     7.25 of [TakeutiZaring] p. 41.  (Contributed by NM, 9-Jun-1994.) $)
  onnbtwn $p |- ( A e. On -> -. ( A e. B /\ B e. suc A ) ) $=
    ( con0 wcel word csuc wa wn eloni ordnbtwn syl ) ACDAEABDBAFDGHAIABJK $.

  $( A set whose successor is a subset of another class is a member of that
     class.  (Contributed by NM, 16-Sep-1995.) $)
  sucssel $p |- ( A e. V -> ( suc A C_ B -> A e. B ) ) $=
    ( wcel csuc wss sucidg ssel syl5com ) ACDAAEZDJBFABDACGJBAHI $.

  $( Ordinal derived from its successor.  (Contributed by NM, 20-May-1998.) $)
  orddif $p |- ( Ord A -> A = ( suc A \ { A } ) ) $=
    ( word csn cin wceq csuc cdif orddisj disj3 cun df-suc difeq1i difun2 eqtri
    c0 eqeq2i bitr4i sylib ) ABAACZDOEZAAFZSGZEZAHTAASGZEUCASIUBUDAUBASJZSGUDUA
    UESAKLASMNPQR $.

  $( An ordinal class includes its union.  (Contributed by NM, 13-Sep-2003.) $)
  orduniss $p |- ( Ord A -> U. A C_ A ) $=
    ( word wtr cuni wss ordtr df-tr sylib ) ABACADAEAFAGH $.

  $( A trichotomy law for ordinal classes.  (Contributed by NM, 13-Sep-2003.)
     (Proof shortened by Andrew Salmon, 12-Aug-2011.) $)
  ordtri2or $p |- ( ( Ord A /\ Ord B ) -> ( A e. B \/ B C_ A ) ) $=
    ( word wa wcel wss wn wb ordtri1 ancoms biimprd orrd ) ACZBCZDZABEZBAFZOQPG
    ZNMQRHBAIJKL $.

  $( A trichotomy law for ordinal classes.  (Contributed by NM, 2-Nov-2003.) $)
  ordtri2or2 $p |- ( ( Ord A /\ Ord B ) -> ( A C_ B \/ B C_ A ) ) $=
    ( word wa wcel wss wo ordtri2or wi ordelss ex orim1d adantl mpd ) ACZBCZDAB
    EZBAFZGZABFZRGZABHPSUAIOPQTRPQTBAJKLMN $.

  $( A consequence of total ordering for ordinal classes.  Similar to
     ~ ordtri2or2 .  (Contributed by David Moews, 1-May-2017.) $)
  ordtri2or3 $p |- ( ( Ord A /\ Ord B ) ->
                     ( A = ( A i^i B ) \/ B = ( A i^i B ) ) ) $=
    ( word wa wss wo cin wceq ordtri2or2 dfss sseqin2 eqcom bitri orbi12i sylib
    ) ACBCDABEZBAEZFAABGZHZBRHZFABIPSQTABJQRBHTBAKRBLMNO $.

  $( The intersection of two ordinal classes is an element of a third if and
     only if either one of them is.  (Contributed by David Moews, 1-May-2017.)
     (Proof shortened by JJ, 24-Sep-2021.) $)
  ordelinel $p |- ( ( Ord A /\ Ord B /\ Ord C ) ->
                    ( ( A i^i B ) e. C <-> ( A e. C \/ B e. C ) ) ) $=
    ( word w3a cin wcel wo wceq ordtri2or3 3adant3 eleq1a orim12d syl5com ordin
    wi wa wss ordtr2 mpani inss1 inss2 jaod stoic3 impbid ) ADZBDZCDZEZABFZCGZA
    CGZBCGZHZUIAUJIZBUJIZHZUKUNUFUGUQUHABJKUKUOULUPUMUJCALUJCBLMNUFUGUJDZUHUNUK
    PABOURUHQZULUKUMUSUJARULUKABUAUJACSTUSUJBRUMUKABUBUJBCSTUCUDUE $.

  $( Obsolete proof of ~ ordelinel as of 24-Sep-2021.  (Contributed by David
     Moews, 1-May-2017.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  ordelinelOLD $p |- ( ( Ord A /\ Ord B /\ Ord C ) ->
                    ( ( A i^i B ) e. C <-> ( A e. C \/ B e. C ) ) ) $=
    ( word w3a cin wcel wo wceq ordtri2or3 3adant3 eleq1 orc syl6bir wss ordtr2
    wi wa stoic3 mpani olc jaoi syl inss1 ordin inss2 jaod impbid ) ADZBDZCDZEZ
    ABFZCGZACGZBCGZHZULAUMIZBUMIZHZUNUQQZUIUJUTUKABJKURVAUSURUNUOUQAUMCLUOUPMNU
    SUNUPUQBUMCLUPUOUANUBUCULUOUNUPULUMAOZUOUNABUDUIUJUMDZUKVBUORUNQABUEZUMACPS
    TULUMBOZUPUNABUFUIUJVCUKVEUPRUNQVDUMBCPSTUGUH $.

  $( Property of a subclass of the maximum (i.e. union) of two ordinals.
     (Contributed by NM, 28-Nov-2003.) $)
  ordssun $p |- ( ( Ord B /\ Ord C ) ->
               ( A C_ ( B u. C ) <-> ( A C_ B \/ A C_ C ) ) ) $=
    ( word wa cun wss wo wi ordtri2or2 wceq wb ssequn1 sseq2 olc syl6bi ssequn2
    sylbi orc jaoi syl ssun impbid1 ) BDCDEZABCFZGZABGZACGZHZUDBCGZCBGZHUFUIIZB
    CJUJULUKUJUFUHUIUJUECKUFUHLBCMUECANRUHUGOPUKUFUGUIUKUEBKUFUGLCBQUEBANRUGUHS
    PTUAABCUBUC $.

  $( The maximum (i.e. union) of two ordinals is either one or the other.
     Similar to Exercise 14 of [TakeutiZaring] p. 40.  (Contributed by NM,
     28-Nov-2003.) $)
  ordequn $p |- ( ( Ord B /\ Ord C ) ->
               ( A = ( B u. C ) -> ( A = B \/ A = C ) ) ) $=
    ( word wa wss wo cun wceq ordtri2or2 eqeq1 ssequn2 syl6rbbr ssequn1 orbi12d
    orcomd syl5ibcom ) BDCDEZCBFZBCFZGABCHZIZABIZACIZGRTSBCJPUBSUCTUDUBUCUABISA
    UABKCBLMUBUDUACITAUACKBCNMOQ $.

  $( The maximum (i.e. union) of two ordinals is ordinal.  Exercise 12 of
     [TakeutiZaring] p. 40.  (Contributed by NM, 28-Nov-2003.) $)
  ordun $p |- ( ( Ord A /\ Ord B ) -> Ord ( A u. B ) ) $=
    ( word wa cun wceq wo eqid ordequn mpi ordeq biimprcd jaao mpd ) ACZBCZDZAB
    EZAFZRBFZGZRCZQRRFUARHRABIJOSUBPTSUBORAKLTUBPRBKLMN $.

  ${
    $d x A $.  $d x B $.
    $( A subclass relationship for union and successor of ordinal classes.
       (Contributed by NM, 28-Nov-2003.) $)
    ordunisssuc $p |- ( ( A C_ On /\ Ord B ) ->
                      ( U. A C_ B <-> A C_ suc B ) ) $=
      ( vx con0 word wa cv wral csuc wcel cuni wb ssel2 ordsssuc sylan ralbidva
      wss an32s unissb dfss3 3bitr4g ) ADQZBEZFZCGZBQZCAHUEBIZJZCAHAKBQAUGQUDUF
      UHCAUBUEAJZUCUFUHLZUBUIFUEDJUCUJADUEMUEBNORPCABSCAUGTUA $.
  $}

  $( The successor operation behaves like a one-to-one function.  Compare
     Exercise 16 of [Enderton] p. 194.  (Contributed by NM, 3-Sep-2003.) $)
  suc11 $p |- ( ( A e. On /\ B e. On ) -> ( suc A = suc B <-> A = B ) ) $=
    ( con0 wcel wa csuc wceq wn wo wi word eloni ordn2lp wss sucssel elsuci ord
    syl5 com12 syl9 pm3.13 3syl adantr eqimss eqimss2 eqcom syl6ib jaao impbid1
    mpd suceq ) ACDZBCDZEZAFZBFZGZABGZUNABDZHZBADZHZIZUQURJZULVCUMULAKUSVAEHVCA
    LABMUSVAUAUBUCULUTVDUMVBULUQAUPDZUTURUQUOUPNULVEUOUPUDAUPCORVEUTURVEUSURABP
    QSTUMUQBUODZVBURUQUPUONUMVFUPUOUEBUOCORVFVBURVFVBBAGZURVFVAVGBAPQBAUFUGSTUH
    UJABUKUI $.

  ${
    on.1 $e |- A e. On $.
    $( An ordinal number is an ordinal class.  (Contributed by NM,
       11-Jun-1994.) $)
    onordi $p |- Ord A $=
      ( con0 wcel word eloni ax-mp ) ACDAEBAFG $.

    $( An ordinal number is a transitive class.  (Contributed by NM,
       11-Jun-1994.) $)
    ontrci $p |- Tr A $=
      ( word wtr onordi ordtr ax-mp ) ACADABEAFG $.

    $( An ordinal number is not a member of itself.  Theorem 7M(c) of
       [Enderton] p. 192.  (Contributed by NM, 11-Jun-1994.) $)
    onirri $p |- -. A e. A $=
      ( word wcel wn onordi ordirr ax-mp ) ACAADEABFAGH $.

    $( A member of an ordinal number is an ordinal number.  Theorem 7M(a) of
       [Enderton] p. 192.  (Contributed by NM, 11-Jun-1994.) $)
    oneli $p |- ( B e. A -> B e. On ) $=
      ( con0 wcel onelon mpan ) ADEBAEBDECABFG $.

    $( A member of an ordinal number is a subset of it.  (Contributed by NM,
       11-Aug-1994.) $)
    onelssi $p |- ( B e. A -> B C_ A ) $=
      ( con0 wcel wss wi onelss ax-mp ) ADEBAEBAFGCABHI $.

    $( An ordering law for ordinal numbers.  (Contributed by NM,
       13-Jun-1994.) $)
    onssneli $p |- ( A C_ B -> -. B e. A ) $=
      ( wss wcel ssel con0 word wn oneli eloni ordirr 3syl nsyli pm2.01d ) ABDZ
      BAEZPQBBEZQABBFQBGEBHRIABCJBKBLMNO $.

    $( An ordering law for ordinal numbers.  (Contributed by NM,
       13-Jun-1994.) $)
    onssnel2i $p |- ( B C_ A -> -. A e. B ) $=
      ( wss wcel onirri ssel mtoi ) BADABEAAEACFBAAGH $.

    $( An element of an ordinal number equals the intersection with it.
       (Contributed by NM, 11-Jun-1994.) $)
    onelini $p |- ( B e. A -> B = ( B i^i A ) ) $=
      ( wcel wss cin wceq onelssi dfss sylib ) BADBAEBBAFGABCHBAIJ $.

    $( An ordinal number equals its union with any element.  (Contributed by
       NM, 13-Jun-1994.) $)
    oneluni $p |- ( B e. A -> ( A u. B ) = A ) $=
      ( wcel wss cun wceq onelssi ssequn2 sylib ) BADBAEABFAGABCHBAIJ $.

    $( An ordinal number is equal to the union of its successor.  (Contributed
       by NM, 12-Jun-1994.) $)
    onunisuci $p |- U. suc A = A $=
      ( wtr csuc cuni wceq ontrci con0 elexi unisuc mpbi ) ACADEAFABGAAHBIJK $.

    ${
      on.2 $e |- B e. On $.
      $( Subset is equivalent to membership or equality for ordinal numbers.
         (Contributed by NM, 15-Sep-1995.) $)
      onsseli $p |- ( A C_ B <-> ( A e. B \/ A = B ) ) $=
        ( con0 wcel wss wceq wo wb onsseleq mp2an ) AEFBEFABGABFABHIJCDABKL $.

      $( The union of two ordinal numbers is an ordinal number.  (Contributed
         by NM, 13-Jun-1994.) $)
      onun2i $p |- ( A u. B ) e. On $=
        ( wcel wss wo con0 word onordi ordtri2or mp2an oneluni syl6eqel ssequn1
        cun wceq eleq1 mpbiri sylbi jaoi ax-mp ) BAEZABFZGZABPZHEZBIAIUEBDJACJB
        AKLUCUGUDUCUFAHABCMCNUDUFBQZUGABOUHUGBHEDUFBHRSTUAUB $.
    $}
  $}

  $( An ordinal equal to its own union is either zero or a limit ordinal.
     (Contributed by NM, 1-Oct-2003.) $)
  unizlim $p |- ( Ord A -> ( A = U. A <-> ( A = (/) \/ Lim A ) ) ) $=
    ( word cuni wceq c0 wlim wo wa wn wne df-ne w3a df-lim biimpri 3exp syl5bir
    wi com23 imp orrd ex uni0 eqcomi id unieq 3eqtr4a limuni jaoi impbid1 ) ABZ
    AACZDZAEDZAFZGZUJULUOUJULHUMUNUJULUMIZUNQUJUPULUNUPAEJZUJULUNQAEKUJUQULUNUN
    UJUQULLAMNOPRSTUAUMULUNUMEECZAUKUREUBUCUMUDAEUEUFAUGUHUI $.

  $( An ordinal number either equals zero or contains zero.  (Contributed by
     NM, 1-Jun-2004.) $)
  on0eqel $p |- ( A e. On -> ( A = (/) \/ (/) e. A ) ) $=
    ( con0 wcel c0 wceq wo wss 0ss 0elon onsseleq mpan mpbii eqcom orbi2i orcom
    wb bitri sylib ) ABCZDACZDAEZFZADEZTFZSDAGZUBAHDBCSUEUBPIDAJKLUBTUCFUDUAUCT
    DAMNTUCOQR $.

  $( The singleton of the singleton of the empty set is not an ordinal (nor a
     natural number by ~ omsson ).  It can be used to represent an "undefined"
     value for a partial operation on natural or ordinal numbers.  See also
     ~ onxpdisj .  (Contributed by NM, 21-May-2004.)  (Proof shortened by
     Andrew Salmon, 12-Aug-2011.) $)
  snsn0non $p |- -. { { (/) } } e. On $=
    ( c0 csn con0 wcel wceq p0ex snid n0ii 0ex eqcom mtbir elsn pm3.2ni on0eqel
    wo mto ) ABZBZCDRAEZARDZOSTQRQFGHTAQEZUAQAEAQAIGHAQJKAQILKMRNP $.

  $( Ordinal numbers and ordered pairs are disjoint collections.  This theorem
     can be used if we want to extend a set of ordinal numbers or ordered pairs
     with disjoint elements.  See also ~ snsn0non .  (Contributed by NM,
     1-Jun-2004.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  onxpdisj $p |- ( On i^i ( _V X. _V ) ) = (/) $=
    ( vx con0 cvv cxp cin c0 wceq cv wcel wn disj on0eqel 0nelxp eleq1 0nelelxp
    wo mtbiri con2i jaoi syl mprgbir ) BCCDZEFGAHZUBIZJZABABUBKUCBIUCFGZFUCIZPU
    EUCLUFUEUGUFUDFUBICCMUCFUBNQUDUGCCUCORSTUA $.

  $( The class of ordinal numbers is not equal to the universe.  (Contributed
     by NM, 16-Jun-2007.)  (Proof shortened by Mario Carneiro, 10-Jan-2013.) $)
  onnev $p |- On =/= _V $=
    ( c0 csn con0 wcel wn cvv wne snsn0non wceq snex syl5eleqr necon3bi ax-mp
    id ) ABZBZCDZECFGHQCFCFIZPFCOJRNKLM $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definite description binder (inverted iota)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c iota $.
  $( Extend class notation with Russell's definition description binder
     (inverted iota). $)
  cio $a class ( iota x ph ) $.

  ${
    $d w x z $.  $d ph w z $.  $d ph w y $.  $d x y $.
    $( Soundness justification theorem for ~ df-iota .  (Contributed by Andrew
       Salmon, 29-Jun-2011.) $)
    iotajust $p |- U. { y | { x | ph } = { y } } =
       U. { z | { x | ph } = { z } } $=
      ( vw cab cv csn wceq sneq eqeq2d cbvabv eqtri unieqi ) ABFZCGZHZIZCFZODGZ
      HZIZDFZSOEGZHZIZEFUCRUFCEPUDIQUEOPUDJKLUFUBEDUDTIUEUAOUDTJKLMN $.
  $}

  ${
    $d y x $.  $d y ph $.
    $( Define Russell's definition description binder, which can be read as
       "the unique ` x ` such that ` ph ` ," where ` ph ` ordinarily contains
       ` x ` as a free variable.  Our definition is meaningful only when there
       is exactly one ` x ` such that ` ph ` is true (see ~ iotaval );
       otherwise, it evaluates to the empty set (see ~ iotanul ).  Russell used
       the inverted iota symbol ` iota ` to represent the binder.

       Sometimes proofs need to expand an iota-based definition.  That is,
       given "X = the x for which ... x ... x ..." holds, the proof needs to
       get to "...  X ...  X ...".  A general strategy to do this is to use
       ~ riotacl2 (or ~ iotacl for unbounded iota), as demonstrated in the
       proof of ~ supub .  This can be easier than applying ~ riotasbc or a
       version that applies an explicit substitution, because substituting an
       iota into its own property always has a bound variable clash which must
       be first renamed or else guarded with NF.

       (Contributed by Andrew Salmon, 30-Jun-2011.) $)
    df-iota $a |- ( iota x ph ) = U. { y | { x | ph } = { y } } $.
  $}

  ${
    $d y x $.  $d y ph $.
    $( Alternate definition for descriptions.  Definition 8.18 in [Quine]
       p. 56.  (Contributed by Andrew Salmon, 30-Jun-2011.) $)
    dfiota2 $p |- ( iota x ph ) = U. { y | A. x ( ph <-> x = y ) } $=
      ( cio cab cv csn wceq cuni wb wal df-iota df-sn eqeq2i abbi bitr4i unieqi
      abbii eqtri ) ABDABEZCFZGZHZCEZIABFUAHZJBKZCEZIABCLUDUGUCUFCUCTUEBEZHUFUB
      UHTBUAMNAUEBOPRQS $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Bound-variable hypothesis builder for the ` iota ` class.  (Contributed
       by Andrew Salmon, 11-Jul-2011.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    nfiota1 $p |- F/_ x ( iota x ph ) $=
      ( vy cio weq wb wal cab cuni dfiota2 nfaba1 nfuni nfcxfr ) BABDABCEFZBGCH
      ZIABCJBONBCKLM $.
  $}

  ${
    $d z ps $.  $d z ph $.  $d x z $.  $d y z $.
    nfiotad.1 $e |- F/ y ph $.
    nfiotad.2 $e |- ( ph -> F/ x ps ) $.
    $( Deduction version of ~ nfiota .  (Contributed by NM, 18-Feb-2013.) $)
    nfiotad $p |- ( ph -> F/_ x ( iota y ps ) ) $=
      ( vz cio weq wb wal cab cuni dfiota2 nfv wn wa wnf adantr nfeqf1 nfcxfrd
      adantl nfbid nfald2 nfabd nfunid ) ACBDHBDGIZJZDKZGLZMBDGNACUJAUICGAGOAUH
      CDEACDICKPZQBUGCABCRUKFSUKUGCRACDGTUBUCUDUEUFUA $.
  $}

  ${
    nfiota.1 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for the ` iota ` class.  (Contributed
       by NM, 23-Aug-2011.) $)
    nfiota $p |- F/_ x ( iota y ph ) $=
      ( cio wnfc wtru nftru wnf a1i nfiotad trud ) BACEFGABCCHABIGDJKL $.
  $}

  ${
    $d z w x $.  $d z w y $.  $d z w ph $.  $d z w ps $.
    cbviota.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    cbviota.2 $e |- F/ y ph $.
    cbviota.3 $e |- F/ x ps $.
    $( Change bound variables in a description binder.  (Contributed by Andrew
       Salmon, 1-Aug-2011.) $)
    cbviota $p |- ( iota x ph ) = ( iota y ps ) $=
      ( vw vz weq wb wal cab cuni cio wsb nfv nfbi equequ1 bibi12d sbequ12 nfsb
      nfs1v cbval sbequ sbie syl6bb bitri abbii unieqi dfiota2 3eqtr4i ) ACHJZK
      ZCLZHMZNBDHJZKZDLZHMZNACOBDOUPUTUOUSHUOACIPZIHJZKZILUSUNVCCIUNIQVAVBCACIU
      CVBCQRCIJAVAUMVBACIUACIHSTUDVCURIDVAVBDACIDFUBVBDQRURIQIDJZVABVBUQVDVAACD
      PBAIDCUEABCDGEUFUGIDHSTUDUHUIUJACHUKBDHUKUL $.
  $}

  ${
    $d ph y $.  $d ps x $.
    cbviotav.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change bound variables in a description binder.  (Contributed by Andrew
       Salmon, 1-Aug-2011.) $)
    cbviotav $p |- ( iota x ph ) = ( iota y ps ) $=
      ( nfv cbviota ) ABCDEADFBCFG $.
  $}

  ${
    $d w z ph $.  $d w z x $.  $d w z y $.
    sb8iota.1 $e |- F/ y ph $.
    $( Variable substitution in description binder.  Compare ~ sb8eu .
       (Contributed by NM, 18-Mar-2013.) $)
    sb8iota $p |- ( iota x ph ) = ( iota y [ y / x ] ph ) $=
      ( vz vw weq wal cab cuni wsb cio nfv sb8 sbbi nfsb equsb3 nfxfr dfiota2
      wb nfbi sbequ cbval sblbis albii 3bitri abbii unieqi 3eqtr4i ) ABEGZTZBHZ
      EIZJABCKZCEGZTZCHZEIZJABLUNCLUMURULUQEULUKBFKZFHUKBCKZCHUQUKBFUKFMNUSUTFC
      USABFKZUJBFKZTCAUJBFOVAVBCABFCDPVBFEGZCFBEQVCCMRUARUTFMUKFCBUBUCUTUPCUJUO
      ABCCBEQUDUEUFUGUHABESUNCESUI $.
  $}

  ${
    $d y z $.  $d x z $.  $d ph z $.
    $( Equality theorem for descriptions.  (Contributed by Andrew Salmon,
       30-Jun-2011.) $)
    iotaeq $p |- ( A. x x = y -> ( iota x ph ) = ( iota y ph ) ) $=
      ( vz cv wceq wal cab csn cuni cio wcel drsb1 df-clab 3bitr4g eqrdv eqeq1d
      wsb abbidv df-iota unieqd 3eqtr4g ) BECEFBGZABHZDEZIZFZDHZJACHZUFFZDHZJAB
      KACKUCUHUKUCUGUJDUCUDUIUFUCDUDUIUCABDRACDRUEUDLUEUILABCDMADBNADCNOPQSUAAB
      DTACDTUB $.
  $}

  ${
    $d ph z $.  $d ps z $.  $d x y z $.
    $( Equivalence theorem for descriptions.  (Contributed by Andrew Salmon,
       30-Jun-2011.) $)
    iotabi $p |- ( A. x ( ph <-> ps ) -> ( iota x ph ) = ( iota x ps ) ) $=
      ( vz wb wal cab cv csn wceq cuni abbi biimpi eqeq1d abbidv unieqd df-iota
      cio 3eqtr4g ) ABECFZACGZDHIZJZDGZKBCGZUBJZDGZKACRBCRTUDUGTUCUFDTUAUEUBTUA
      UEJABCLMNOPACDQBCDQS $.

    $( Part of Theorem 8.17 in [Quine] p. 56.  This theorem serves as a lemma
       for the fundamental property of iota.  (Contributed by Andrew Salmon,
       11-Jul-2011.) $)
    uniabio $p |- ( A. x ( ph <-> x = y ) -> U. { x | ph } = y ) $=
      ( cv wceq wb wal cab cuni csn abbi biimpi df-sn syl6eqr unieqd vex syl6eq
      unisn ) ABDCDZEZFBGZABHZISJZISUAUBUCUAUBTBHZUCUAUBUDEATBKLBSMNOSCPRQ $.

    $( Theorem 8.19 in [Quine] p. 57.  This theorem is the fundamental property
       of iota.  (Contributed by Andrew Salmon, 11-Jul-2011.) $)
    iotaval $p |- ( A. x ( ph <-> x = y ) -> ( iota x ph ) = y ) $=
      ( vz weq wb wal cio cab cuni cv dfiota2 wceq cvv wcel wa wi sbeqalb ax-mp
      vex equequ2 bibi2d biimpd alimdv impbid equcom syl6bb alrimiv uniabio syl
      ex com12 syl5eq ) ABCEZFZBGZABHABDEZFZBGZDIJZCKZABDLUPUSDCEZFZDGUTVAMUPVC
      DUPUSCDEZVBUPUSVDUPUSVDVANOUPUSPVDQCTABVADKNRSUKVDUPUSVDUOURBVDUOURVDUNUQ
      ACDBUAUBUCUDULUECDUFUGUHUSDCUIUJUM $.

    $( Equivalence between two different forms of ` iota ` .  (Contributed by
       Andrew Salmon, 12-Jul-2011.) $)
    iotauni $p |- ( E! x ph -> ( iota x ph ) = U. { x | ph } ) $=
      ( vz weu cv wceq wb wal wex cio cuni df-eu iotaval uniabio eqtr4d exlimiv
      cab sylbi ) ABDABECEZFGBHZCIABJZABQKZFZABCLTUCCTUASUBABCMABCNOPR $.

    $( Equivalence between two different forms of ` iota ` .  (Contributed by
       Mario Carneiro, 24-Dec-2016.) $)
    iotaint $p |- ( E! x ph -> ( iota x ph ) = |^| { x | ph } ) $=
      ( weu cio cab cuni cint iotauni wceq uniintab biimpi eqtrd ) ABCZABDABEZF
      ZNGZABHMOPIABJKL $.

    $( Property of iota.  (Contributed by NM, 23-Aug-2011.)  (Revised by Mario
       Carneiro, 23-Dec-2016.) $)
    iota1 $p |- ( E! x ph -> ( ph <-> ( iota x ph ) = x ) ) $=
      ( vz weu cv wceq wb wal wex cio df-eu iotaval eqeq2d bitr4d eqcom exlimiv
      sp syl6bb sylbi ) ABDABEZCEZFZGZBHZCIAABJZTFZGZABCKUDUGCUDATUEFZUFUDAUBUH
      UCBQUDUEUATABCLMNTUEORPS $.

    $( Theorem 8.22 in [Quine] p. 57.  This theorem is the result if there
       isn't exactly one ` x ` that satisfies ` ph ` .  (Contributed by Andrew
       Salmon, 11-Jul-2011.) $)
    iotanul $p |- ( -. E! x ph -> ( iota x ph ) = (/) ) $=
      ( vz weu weq wb wal wex cio c0 wceq df-eu wn cab cuni dfiota2 alnex equid
      dfnul2 tbt biimpi con1bid alimi sylib syl5req sylbir unieqd syl6eq syl5eq
      abbi uni0 sylnbi ) ABDABCEFBGZCHZABIZJKABCLUNMZUOUMCNZOZJABCPUPURJOJUPUQJ
      UPUMMZCGZUQJKUMCQUTJCCEZMZCNZUQCSUTVBUMFZCGVCUQKUSVDCUSUMVAUSUSVAFVAUSCRT
      UAUBUCVBUMCUJUDUEUFUGUKUHUIUL $.

    $( The ` iota ` class is a subset of the union of all elements satisfying
       ` ph ` .  (Contributed by Mario Carneiro, 24-Dec-2016.) $)
    iotassuni $p |- ( iota x ph ) C_ U. { x | ph } $=
      ( weu cio cab cuni wss wceq iotauni eqimss syl wn c0 iotanul 0ss syl6eqss
      pm2.61i ) ABCZABDZABEFZGZRSTHUAABISTJKRLSMTABNTOPQ $.

    $( Theorem 8.23 in [Quine] p. 58.  This theorem proves the existence of the
       ` iota ` class under our definition.  (Contributed by Andrew Salmon,
       11-Jul-2011.) $)
    iotaex $p |- ( iota x ph ) e. _V $=
      ( vz weu cio cvv wcel cv wceq wb wal wex iotaval eqcomd eximi df-eu isset
      3imtr4i wn c0 iotanul 0ex syl6eqel pm2.61i ) ABDZABEZFGZABHCHZIJBKZCLUHUF
      IZCLUEUGUIUJCUIUFUHABCMNOABCPCUFQRUESUFTFABUAUBUCUD $.

    $( Theorem *14.22 in [WhiteheadRussell] p. 190.  (Contributed by Andrew
       Salmon, 12-Jul-2011.) $)
    iota4 $p |- ( E! x ph -> [. ( iota x ph ) / x ]. ph ) $=
      ( vz weu weq wb wal wex cio wsbc df-eu wsb wi biimpr alimi sb2 cv iotaval
      syl wceq eqcomd dfsbcq2 mpbid exlimiv sylbi ) ABDABCEZFZBGZCHABABIZJZABCK
      UHUJCUHABCLZUJUHUFAMZBGUKUGULBAUFNOABCPSUHCQZUITUKUJFUHUIUMABCRUAABCUIUBS
      UCUDUE $.
  $}

  $( Theorem *14.23 in [WhiteheadRussell] p. 191.  (Contributed by Andrew
     Salmon, 12-Jul-2011.) $)
  iota4an $p |- ( E! x ( ph /\ ps )
            -> [. ( iota x ( ph /\ ps ) ) / x ]. ph ) $=
    ( wa weu cio wsbc iota4 wi cvv wcel iotaex simpl sbcth ax-mp wb sbcimg mpbi
    syl ) ABDZCETCTCFZGZACUAGZTCHTAIZCUAGZUBUCIZUAJKZUETCLZUDCUAJABMNOUGUEUFPUH
    TACUAJQORS $.

  ${
    $d x y A $.  $d x V $.  $d x ph $.  $d y ps $.
    iota5.1 $e |- ( ( ph /\ A e. V ) -> ( ps <-> x = A ) ) $.
    $( A method for computing iota.  (Contributed by NM, 17-Sep-2013.) $)
    iota5 $p |- ( ( ph /\ A e. V ) -> ( iota x ps ) = A ) $=
      ( vy wcel wa cv wceq wb wal cio alrimiv wi eqeq2 bibi2d albidv imbi12d
      iotaval vtoclg adantl mpd ) ADEHZIZBCJZDKZLZCMZBCNZDKZUFUICFOUEUJULPZABUG
      GJZKZLZCMZUKUNKZPUMGDEUNDKZUQUJURULUSUPUICUSUOUHBUNDUGQRSUNDUKQTBCGUAUBUC
      UD $.
  $}

  ${
    $d x ph $.
    iotabidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building deduction rule for iota.  (Contributed by NM,
       20-Aug-2011.) $)
    iotabidv $p |- ( ph -> ( iota x ps ) = ( iota x ch ) ) $=
      ( wb wal cio wceq alrimiv iotabi syl ) ABCFZDGBDHCDHIAMDEJBCDKL $.
  $}

  ${
    iotabii.1 $e |- ( ph <-> ps ) $.
    $( Formula-building deduction rule for iota.  (Contributed by Mario
       Carneiro, 2-Oct-2015.) $)
    iotabii $p |- ( iota x ph ) = ( iota x ps ) $=
      ( wb cio wceq iotabi mpg ) ABEACFBCFGCABCHDI $.
  $}

  $( Membership law for descriptions.

     This can be useful for expanding an unbounded iota-based definition (see
     ~ df-iota ).  If you have a bounded iota-based definition, ~ riotacl2 may
     be useful.

     (Contributed by Andrew Salmon, 1-Aug-2011.) $)
  iotacl $p |- ( E! x ph -> ( iota x ph ) e. { x | ph } ) $=
    ( weu cio wsbc cab wcel iota4 df-sbc sylib ) ABCABABDZEKABFGABHABKIJ $.

  ${
    iota2df.1 $e |- ( ph -> B e. V ) $.
    iota2df.2 $e |- ( ph -> E! x ps ) $.
    iota2df.3 $e |- ( ( ph /\ x = B ) -> ( ps <-> ch ) ) $.
    ${
      iota2df.4 $e |- F/ x ph $.
      iota2df.5 $e |- ( ph -> F/ x ch ) $.
      iota2df.6 $e |- ( ph -> F/_ x B ) $.
      $( A condition that allows us to represent "the unique element such that
         ` ph ` " with a class expression ` A ` .  (Contributed by NM,
         30-Dec-2014.) $)
      iota2df $p |- ( ph -> ( ch <-> ( iota x ps ) = B ) ) $=
        ( cio cv wceq wb wa simpr eqeq2d bibi12d weu iota1 syl wnfc nfiota1 a1i
        nfeqd nfbid vtocldf ) ABBDMZDNZOZPZCUJEOZPDEFGAUKEOZQZBCULUNIUPUKEUJAUO
        RSTABDUAUMHBDUBUCJLACUNDKADUJEDUJUDABDUEUFLUGUHUI $.
    $}

    $d x B $.  $d x ph $.  $d x ch $.
    $( A condition that allows us to represent "the unique element such that
       ` ph ` " with a class expression ` A ` .  (Contributed by NM,
       30-Dec-2014.) $)
    iota2d $p |- ( ph -> ( ch <-> ( iota x ps ) = B ) ) $=
      ( nfv nfvd nfcvd iota2df ) ABCDEFGHIADJACDKADELM $.
  $}

  ${
    $d A x $.  $d ps x $.
    iota2.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( The unique element such that ` ph ` .  (Contributed by Jeff Madsen,
       1-Jun-2011.)  (Revised by Mario Carneiro, 23-Dec-2016.) $)
    iota2 $p |- ( ( A e. B /\ E! x ph ) -> ( ps <-> ( iota x ph ) = A ) ) $=
      ( wcel cvv weu cio wceq wb elex wa simpl simpr cv adantl nfv nfeu1 nfcvd
      nfan nfvd iota2df sylan ) DEGDHGZACIZBACJDKLDEMUFUGNZABCDHUFUGOUFUGPCQDKA
      BLUHFRUFUGCUFCSACTUBUHBCUCUHCDUAUDUE $.
  $}

  $( A class abstraction with a unique member can be expressed as a singleton.
     (Contributed by Mario Carneiro, 23-Dec-2016.) $)
  sniota $p |- ( E! x ph -> { x | ph } = { ( iota x ph ) } ) $=
    ( weu cab cio nfeu1 nfab1 nfiota1 nfsn cv wceq wcel iota1 eqcom syl6bb abid
    csn velsn 3bitr4g eqrd ) ABCZBABDZABEZQZABFABGBUCABHIUAABJZUCKZUEUBLUEUDLUA
    AUCUEKUFABMUCUENOABPBUCRST $.

  $( The ` iota ` operation using the ` if ` operator.  (Contributed by Scott
     Fenton, 6-Oct-2017.)  (Proof shortened by JJ, 28-Oct-2021.) $)
  dfiota4 $p |- ( iota x ph ) = if ( E! x ph , U. { x | ph } , (/) ) $=
    ( cio weu cab cuni c0 cif wceq wi wn iotauni iotanul ifval mpbir2an ) ABCZA
    BDZABEFZGHIQPRIJQKPGIJABLABMQPRGNO $.

  $( Obsolete proof of ~ dfiota4 as of 28-Oct-2021.  (Contributed by Scott
     Fenton, 6-Oct-2017.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  dfiota4OLD $p |- ( iota x ph ) = if ( E! x ph , U. { x | ph } , (/) ) $=
    ( weu cio cab cuni c0 wceq iotauni iftrue eqtr4d wn iotanul iffalse pm2.61i
    cif ) ABCZABDZQABEFZGPZHQRSTABIQSGJKQLRGTABMQSGNKO $.

  ${
    $d A y z $.  $d x y z $.  $d ph z $.
    $( Class substitution within a description binder.  (Contributed by Scott
       Fenton, 6-Oct-2017.)  (Revised by NM, 23-Aug-2018.) $)
    csbiota $p |- [_ A / x ]_ ( iota y ph ) = ( iota y [. A / x ]. ph ) $=
      ( vz cvv wcel cio csb wsbc wceq cv wsb csbeq1 dfsbcq2 iotabidv eqeq12d wn
      c0 con3i vex nfs1v nfiota weq sbequ12 csbief vtoclg csbprc wex sbcex euex
      weu nexdv iotanul 3syl eqtr4d pm2.61i ) DFGZBDACHZIZABDJZCHZKZBELZUSIZABE
      MZCHZKVCEDFVDDKZVEUTVGVBBVDDUSNVHVFVACABEDOPQBVDUSVGEUAVFBCABEUBUCBEUDAVF
      CABEUEPUFUGURRZUTSVBBDUSUHVIVACUIZRVACULZRVBSKVIVACVAURABDUJTUMVKVJVACUKT
      VACUNUOUPUQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Functions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c : $. $( Colon $)
  $c Fun $. $( Function predicate $)
  $c Fn $. $( Function connective $)
  $c --> $. $( Domain-codomain connective $)
  $c -1-1-> $. $( 'One-to-one' domain-codomain connective $)
  $c -onto-> $. $( 'Onto' domain-codomain connective $)
  $c -1-1-onto-> $. $( 'One-to-one' and 'onto' domain-codomain connective $)
  $c ` $. $( Left apostrophe (function value symbol) $)
  $c Isom $. $( Isomorphism $)

  $( Extend the definition of a wff to include the function predicate.  (Read:
     ` A ` is a function.) $)
  wfun $a wff Fun A $.

  $( Extend the definition of a wff to include the function predicate with a
     domain.  (Read: ` A ` is a function on ` B ` .) $)
  wfn $a wff A Fn B $.

  $( Extend the definition of a wff to include the function predicate with
     domain and codomain.  (Read: ` F ` maps ` A ` into ` B ` .) $)
  wf $a wff F : A --> B $.

  $( Extend the definition of a wff to include one-to-one functions.  (Read:
     ` F ` maps ` A ` one-to-one into ` B ` .)  The notation ("1-1" above the
     arrow) is from Definition 6.15(5) of [TakeutiZaring] p. 27. $)
  wf1 $a wff F : A -1-1-> B $.

  $( Extend the definition of a wff to include onto functions.  (Read: ` F `
     maps ` A ` onto ` B ` .)  The notation ("onto" below the arrow) is from
     Definition 6.15(4) of [TakeutiZaring] p. 27. $)
  wfo $a wff F : A -onto-> B $.

  $( Extend the definition of a wff to include one-to-one onto functions.
     (Read: ` F ` maps ` A ` one-to-one onto ` B ` .)  The notation ("1-1"
     above the arrow and "onto" below the arrow) is from Definition 6.15(6) of
     [TakeutiZaring] p. 27. $)
  wf1o $a wff F : A -1-1-onto-> B $.

  $( Extend the definition of a class to include the value of a function.
     (Read:  The value of ` F ` at ` A ` , or " ` F ` of ` A ` .") $)
  cfv $a class ( F ` A ) $.

  $( Extend the definition of a wff to include the isomorphism property.
     (Read: ` H ` is an ` R ` , ` S ` isomorphism of ` A ` onto ` B ` .) $)
  wiso $a wff H Isom R , S ( A , B ) $.

  ${
    $d x A $.  $d x F $.
    $( Define predicate that determines if some class ` A ` is a function.
       Definition 10.1 of [Quine] p. 65.  For example, the expression
       ` Fun cos ` is true once we define cosine ( ~ df-cos ).  This is not the
       same as defining a specific function's mapping, which is typically done
       using the format of ~ cmpt with the maps-to notation (see ~ df-mpt and
       ~ df-mpt2 ).  Contrast this predicate with the predicates to determine
       if some class is a function with a given domain ( ~ df-fn ), a function
       with a given domain and codomain ( ~ df-f ), a one-to-one function
       ( ~ df-f1 ), an onto function ( ~ df-fo ), or a one-to-one onto function
       ( ~ df-f1o ).  For alternate definitions, see ~ dffun2 , ~ dffun3 ,
       ~ dffun4 , ~ dffun5 , ~ dffun6 , ~ dffun7 , ~ dffun8 , and ~ dffun9 .
       (Contributed by NM, 1-Aug-1994.) $)
    df-fun $a |- ( Fun A <-> ( Rel A /\ ( A o. `' A ) C_ _I ) ) $.

    $( Define a function with domain.  Definition 6.15(1) of [TakeutiZaring]
       p. 27.  For alternate definitions, see ~ dffn2 , ~ dffn3 , ~ dffn4 , and
       ~ dffn5 .  (Contributed by NM, 1-Aug-1994.) $)
    df-fn $a |- ( A Fn B <-> ( Fun A /\ dom A = B ) ) $.

    $( Define a function (mapping) with domain and codomain.  Definition
       6.15(3) of [TakeutiZaring] p. 27. ` F : A --> B ` can be read as " ` F `
       is a function from ` A ` to ` B ` ".  For alternate definitions, see
       ~ dff2 , ~ dff3 , and ~ dff4 .  (Contributed by NM, 1-Aug-1994.) $)
    df-f $a |- ( F : A --> B <-> ( F Fn A /\ ran F C_ B ) ) $.

    $( Define a one-to-one function.  For equivalent definitions see ~ dff12
       and ~ dff13 .  Compare Definition 6.15(5) of [TakeutiZaring] p. 27.  We
       use their notation ("1-1" above the arrow).

       A one-to-one function is also called an "injection" or an "injective
       function", ` F : A -1-1-> B ` can be read as " ` F ` is an injection
       from ` A ` into ` B ` ".  Injections are precisely the monomorphisms in
       the category ` SetCat ` of sets and set functions, see ~ setcmon .
       (Contributed by NM, 1-Aug-1994.) $)
    df-f1 $a |- ( F : A -1-1-> B <-> ( F : A --> B /\ Fun `' F ) ) $.

    $( Define an onto function.  Definition 6.15(4) of [TakeutiZaring] p. 27.
       We use their notation ("onto" under the arrow).  For alternate
       definitions, see ~ dffo2 , ~ dffo3 , ~ dffo4 , and ~ dffo5 .

       An onto function is also called a "surjection" or a "surjective
       function", ` F : A -onto-> B ` can be read as " ` F ` is a surjection
       from ` A ` onto ` B ` ".  Surjections are precisely the epimorphisms in
       the category ` SetCat ` of sets and set functions, see ~ setcepi .
       (Contributed by NM, 1-Aug-1994.) $)
    df-fo $a |- ( F : A -onto-> B <-> ( F Fn A /\ ran F = B ) ) $.

    $( Define a one-to-one onto function.  For equivalent definitions see
       ~ dff1o2 , ~ dff1o3 , ~ dff1o4 , and ~ dff1o5 .  Compare Definition
       6.15(6) of [TakeutiZaring] p. 27.  We use their notation ("1-1" above
       the arrow and "onto" below the arrow).

       A one-to-one onto function is also called a "bijection" or a "bijective
       function", ` F : A -1-1-onto-> B ` can be read as " ` F ` is a bijection
       between ` A ` and ` B ` ".  Bijections are precisely the isomorphisms in
       the category ` SetCat ` of sets and set functions, see ~ setciso .
       Therefore, two sets are called "isomorphic" if there is a bijection
       between them.  According to ~ isof1oidb , two sets are isomorphic iff
       there is an isomorphism ` Isom ` regarding the identity relation.  In
       this case, the two sets are also "equinumerous", see ~ bren .
       (Contributed by NM, 1-Aug-1994.) $)
    df-f1o $a |- ( F : A -1-1-onto-> B <->
                ( F : A -1-1-> B /\ F : A -onto-> B ) ) $.

    $( Define the value of a function, ` ( F `` A ) ` , also known as function
       application.  For example, ` ( cos `` 0 ) = 1 ` (we prove this in ~ cos0
       after we define cosine in ~ df-cos ).  Typically, function ` F ` is
       defined using maps-to notation (see ~ df-mpt and ~ df-mpt2 ), but this
       is not required.  For example,
       ` F = { <. 2 , 6 >. , <. 3 , 9 >. } -> ( F `` 3 ) = 9 ` ( ~ ex-fv ).
       Note that ~ df-ov will define two-argument functions using ordered pairs
       as ` ( A F B ) = ( F `` <. A , B >. ) ` .  This particular definition is
       quite convenient: it can be applied to any class and evaluates to the
       empty set when it is not meaningful (as shown by ~ ndmfv and ~ fvprc ).
       The left apostrophe notation originated with Peano and was adopted in
       Definition *30.01 of [WhiteheadRussell] p. 235, Definition 10.11 of
       [Quine] p. 68, and Definition 6.11 of [TakeutiZaring] p. 26.  It means
       the same thing as the more familiar ` F ( A ) ` notation for a
       function's value at ` A ` , i.e.  " ` F ` of ` A ` ," but without
       context-dependent notational ambiguity.  Alternate definitions are
       ~ dffv2 , ~ dffv3 , ~ fv2 , and ~ fv3 (the latter two previously
       required ` A ` to be a set.)  Restricted equivalents that require ` F `
       to be a function are shown in ~ funfv and ~ funfv2 .  For the familiar
       definition of function value in terms of ordered pair membership, see
       ~ funopfvb .  (Contributed by NM, 1-Aug-1994.)  Revised to use
       ` iota ` .  Original version is now theorem ~ dffv4 .  (Revised by Scott
       Fenton, 6-Oct-2017.) $)
    df-fv $a |- ( F ` A ) = ( iota x A F x ) $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.  $d x y S $.  $d x y H $.
    $( Define the isomorphism predicate.  We read this as " ` H ` is an ` R ` ,
       ` S ` isomorphism of ` A ` onto ` B ` ."  Normally, ` R ` and ` S ` are
       ordering relations on ` A ` and ` B ` respectively.  Definition 6.28 of
       [TakeutiZaring] p. 32, whose notation is the same as ours except that
       ` R ` and ` S ` are subscripts.  (Contributed by NM, 4-Mar-1997.) $)
    df-isom $a |- ( H Isom R , S ( A , B ) <-> ( H : A -1-1-onto-> B /\
                 A. x e. A A. y e. A ( x R y <-> ( H ` x ) S ( H ` y ) ) ) ) $.
  $}

  ${
    $d x y z A $.
    $( Alternate definition of a function.  (Contributed by NM,
       29-Dec-1996.) $)
    dffun2 $p |- ( Fun A <-> ( Rel A /\
                 A. x A. y A. z ( ( x A y /\ x A z ) -> y = z ) ) ) $=
      ( wfun wrel cid wss wa cv wbr wal wex copab 3bitri vex albii alcom bitri
      wi ccnv ccom df-fun df-id sseq2i df-co sseq1i ssopab2b brcnv anbi1i exbii
      weq imbi1i 19.23v bitr4i anbi2i ) DEDFZDDUAZUBZGHZIUQAJZBJZDKZVACJDKZIZBC
      ULZTZCLZBLALZIDUCUTVIUQUTVBVAURKZVDIZAMZVFTZCLZBLZVHALZBLVIUTUSVFBCNZHVLB
      CNZVQHVOGVQUSBCUDUEUSVRVQBCADURUFUGVLVFBCUHOVNVPBVNVGALZCLVPVMVSCVMVEAMZV
      FTVSVLVTVFVKVEAVJVCVDVBVADBPAPUIUJUKUMVEVFAUNUOQVGCARSQVHBAROUPS $.

    $( Alternate definition of function.  (Contributed by NM, 29-Dec-1996.) $)
    dffun3 $p |- ( Fun A <-> ( Rel A /\
                 A. x E. z A. y ( x A y -> y = z ) ) ) $=
      ( wfun wrel cv wbr wa weq wal wex dffun2 wmo breq2 mo4 mo2v bitr3i albii
      wi anbi2i bitri ) DEDFZAGZBGZDHZUDCGZDHZIBCJZTCKBKZAKZIUCUFUITBKCLZAKZIAB
      CDMUKUMUCUJULAUJUFBNULUFUHBCUEUGUDDOPUFBCQRSUAUB $.

    $( Alternate definition of a function.  Definition 6.4(4) of
       [TakeutiZaring] p. 24.  (Contributed by NM, 29-Dec-1996.) $)
    dffun4 $p |- ( Fun A <-> ( Rel A /\
                 A. x A. y A. z ( ( <. x , y >. e. A /\ <. x , z >. e. A )
                 -> y = z ) ) ) $=
      ( wfun wrel cv wbr wa weq wal cop wcel dffun2 df-br anbi12i imbi1i 2albii
      wi albii anbi2i bitri ) DEDFZAGZBGZDHZUDCGZDHZIZBCJZSZCKZBKAKZIUCUDUELDMZ
      UDUGLDMZIZUJSZCKZBKAKZIABCDNUMUSUCULURABUKUQCUIUPUJUFUNUHUOUDUEDOUDUGDOPQ
      TRUAUB $.

    $( Alternate definition of function.  (Contributed by NM, 29-Dec-1996.) $)
    dffun5 $p |- ( Fun A <-> ( Rel A /\
                 A. x E. z A. y ( <. x , y >. e. A -> y = z ) ) ) $=
      ( wfun wrel cv wbr weq wi wal wex wa wcel dffun3 df-br imbi1i albii exbii
      cop anbi2i bitri ) DEDFZAGZBGZDHZBCIZJZBKZCLZAKZMUCUDUETDNZUGJZBKZCLZAKZM
      ABCDOUKUPUCUJUOAUIUNCUHUMBUFULUGUDUEDPQRSRUAUB $.
  $}

  ${
    $d x y w v u $.  $d A w v u $.
    dffun6f.1 $e |- F/_ x A $.
    dffun6f.2 $e |- F/_ y A $.
    $( Definition of function, using bound-variable hypotheses instead of
       distinct variable conditions.  (Contributed by NM, 9-Mar-1995.)
       (Revised by Mario Carneiro, 15-Oct-2016.) $)
    dffun6f $p |- ( Fun A <-> ( Rel A /\ A. x E* y x A y ) ) $=
      ( vw vv vu wfun wrel cv wbr weq wal wa wmo nfcv nfbr nfv albii wex dffun3
      wi breq2 cbvmo mo2v nfmo breq1 mobidv cbval 3bitr3ri anbi2i bitr4i ) CICJ
      ZFKZGKZCLZGHMUCGNHUAZFNZOUNAKZBKZCLZBPZANZOFGHCUBVDUSUNUQGPZFNUOVACLZBPZF
      NUSVDVEVGFUQVFGBBUOUPCBUOQEBUPQRVFGSUPVAUOCUDUETVEURFUQGHUFTVGVCFAVFABAUO
      VACAUOQDAVAQRUGVCFSFAMVFVBBUOUTVACUHUIUJUKULUM $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( Alternate definition of a function using "at most one" notation.
       (Contributed by NM, 9-Mar-1995.) $)
    dffun6 $p |- ( Fun F <-> ( Rel F /\ A. x E* y x F y ) ) $=
      ( nfcv dffun6f ) ABCACDBCDE $.

    $( A function has at most one value for each argument.  (Contributed by NM,
       24-May-1998.) $)
    funmo $p |- ( Fun F -> E* y A F y ) $=
      ( vx wfun cv wbr cvv wcel wa wi wal wmo wrel dffun6 simplbi brrelex ancrd
      ex syl alrimiv wceq breq1 mobidv imbi2d simprbi 19.21bi vtoclg com12 moim
      moanimv sylibr sylc ) CEZBAFZCGZBHIZUPJZKZALURAMZUPAMZUNUSAUNUPUQUNCNZUPU
      QKUNVBDFZUOCGZAMZDLZDACOZPVBUPUQBUOCQSTRUAUNUQVAKUTUQUNVAUNVEKUNVAKDBHVCB
      UBZVEVAUNVHVDUPAVCBUOCUCUDUEUNVEDUNVBVFVGUFUGUHUIUQUPAUKULUPURAUJUM $.
  $}

  $( A function is a relation.  (Contributed by NM, 1-Aug-1994.) $)
  funrel $p |- ( Fun A -> Rel A ) $=
    ( wfun wrel ccnv ccom cid wss df-fun simplbi ) ABACAADEFGAHI $.

  $( A function does not contain the empty set.  (Contributed by BJ,
     26-Nov-2021.) $)
  0nelfun $p |- ( Fun R -> (/) e/ R ) $=
    ( wfun wrel c0 wnel funrel 0nelrel syl ) ABACDAEAFAGH $.

  $( Subclass theorem for function predicate.  (Contributed by NM,
     16-Aug-1994.)  (Proof shortened by Mario Carneiro, 24-Jun-2014.) $)
  funss $p |- ( A C_ B -> ( Fun B -> Fun A ) ) $=
    ( wss wrel ccnv ccom cid wa wfun relss wi coss1 cnvss coss2 syl sstrd sstr2
    anim12d df-fun 3imtr4g ) ABCZBDZBBEZFZGCZHADZAAEZFZGCZHBIAIUAUBUFUEUIABJUAU
    HUDCUEUIKUAUHBUGFZUDABUGLUAUGUCCUJUDCABMUGUCBNOPUHUDGQORBSAST $.

  $( Equality theorem for function predicate.  (Contributed by NM,
     16-Aug-1994.) $)
  funeq $p |- ( A = B -> ( Fun A <-> Fun B ) ) $=
    ( wceq wfun wss wi eqimss2 funss syl eqimss impbid ) ABCZADZBDZLBAEMNFBAGBA
    HILABENMFABJABHIK $.

  ${
    funeqi.1 $e |- A = B $.
    $( Equality inference for the function predicate.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.) $)
    funeqi $p |- ( Fun A <-> Fun B ) $=
      ( wceq wfun wb funeq ax-mp ) ABDAEBEFCABGH $.
  $}

  ${
    funeqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for the function predicate.  (Contributed by NM,
       23-Feb-2013.) $)
    funeqd $p |- ( ph -> ( Fun A <-> Fun B ) ) $=
      ( wceq wfun wb funeq syl ) ABCEBFCFGDBCHI $.
  $}

  ${
    nffun.1 $e |- F/_ x F $.
    $( Bound-variable hypothesis builder for a function.  (Contributed by NM,
       30-Jan-2004.) $)
    nffun $p |- F/ x Fun F $=
      ( wfun wrel ccnv ccom cid wa df-fun nfrel nfcnv nfco nfcv nfss nfan nfxfr
      wss ) BDBEZBBFZGZHRZIABJSUBAABCKAUAHABTCABCLMAHNOPQ $.
  $}

  ${
    $d A w y z $.  $d F w y z $.  $d V w y z $.  $d x w y z $.
    $( Distribute proper substitution through the function predicate.
       (Contributed by Alexander van der Vekens, 23-Jul-2017.) $)
    sbcfung $p |- ( A e. V -> ( [. A / x ]. Fun F <-> Fun [_ A / x ]_ F ) ) $=
      ( vw vz vy wrel cv wbr wi wal wex wa wsbc csb wfun sbcal csbconstg syl5bb
      wcel weq sbcan sbcrel sbcex2 sbcimg sbcbr123 breq12d imbi12d bitrd albidv
      sbcg exbidv anbi12d dffun3 sbcbii 3bitr4g ) BDUAZCHZEIZFIZCJZFGUBZKZFLZGM
      ZELZNZABOZABCPZHZUTVAVJJZVCKZFLZGMZELZNZCQZABOVJQVIUSABOZVGABOZNURVQUSVGA
      BUCURVSVKVTVPABCDUDVTVFABOZELURVPVFEABRURWAVOEWAVEABOZGMURVOVEGABUEURWBVN
      GWBVDABOZFLURVNVDFABRURWCVMFURWCVBABOZVCABOZKVMVBVCABDUFURWDVLWEVCWDABUTP
      ZABVAPZVJJURVLABUTVACUGURWFUTWGVAVJABUTDSABVADSUHTVCABDULUIUJUKTUMTUKTUNT
      VRVHABEFGCUOUPEFGVJUOUQ $.
  $}

  ${
    $d y A $.  $d y F $.
    $( There is exactly one value of a function.  (Contributed by NM,
       22-Apr-2004.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
    funeu $p |- ( ( Fun F /\ A F B ) -> E! y A F y ) $=
      ( wfun wbr wa cv wex weu cdm wcel wrel funrel releldm sylan eldmg ibi syl
      wmo wi funmo adantr df-mo sylib mpd ) DEZBCDFZGZBAHDFZAIZUJAJZUIBDKZLZUKU
      GDMUHUNDNBCDOPUNUKABDUMQRSUIUJATZUKULUAUGUOUHABDUBUCUJAUDUEUF $.

    $( There is exactly one value of a function.  (Contributed by NM,
       3-Aug-1994.) $)
    funeu2 $p |- ( ( Fun F /\ <. A , B >. e. F ) -> E! y <. A , y >. e. F ) $=
      ( cop wcel wfun wbr cv weu df-br wa funeu eubii sylib sylan2br ) BCEDFDGZ
      BCDHZBAIZEDFZAJZBCDKQRLBSDHZAJUAABCDMUBTABSDKNOP $.
  $}

  ${
    $d x y A $.
    $( Alternate definition of a function.  One possibility for the definition
       of a function in [Enderton] p. 42.  (Enderton's definition is ambiguous
       because "there is only one" could mean either "there is at most one" or
       "there is exactly one."  However, ~ dffun8 shows that it doesn't matter
       which meaning we pick.)  (Contributed by NM, 4-Nov-2002.) $)
    dffun7 $p |- ( Fun A <-> ( Rel A /\ A. x e. dom A E* y x A y ) ) $=
      ( wfun wrel cv wbr wmo wal wa cdm wral dffun6 wcel wi wex vex eldm bitr4i
      moabs imbi1i albii df-ral anbi2i bitri ) CDCEZAFZBFCGZBHZAIZJUFUIACKZLZJA
      BCMUJULUFUJUGUKNZUIOZAIULUIUNAUIUHBPZUIOUNUHBTUMUOUIBUGCAQRUASUBUIAUKUCSU
      DUE $.

    $( Alternate definition of a function.  One possibility for the definition
       of a function in [Enderton] p. 42.  Compare ~ dffun7 .  (Contributed by
       NM, 4-Nov-2002.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
    dffun8 $p |- ( Fun A <-> ( Rel A /\ A. x e. dom A E! y x A y ) ) $=
      ( wfun wrel cv wbr wmo cdm wral wa weu dffun7 wex wi wcel df-mo vex eldm
      wb pm5.5 sylbi syl5bb ralbiia anbi2i bitri ) CDCEZAFZBFCGZBHZACIZJZKUGUIB
      LZAUKJZKABCMULUNUGUJUMAUKUJUIBNZUMOZUHUKPZUMUIBQUQUOUPUMTBUHCARSUOUMUAUBU
      CUDUEUF $.

    $( Alternate definition of a function.  (Contributed by NM, 28-Mar-2007.)
       (Revised by NM, 16-Jun-2017.) $)
    dffun9 $p |- ( Fun A <->
                 ( Rel A /\ A. x e. dom A E* y e. ran A x A y ) ) $=
      ( wfun wrel cv wbr wmo cdm wral wa wrmo dffun7 wcel brelrn pm4.71ri mobii
      crn vex df-rmo bitr4i ralbii anbi2i bitri ) CDCEZAFZBFZCGZBHZACIZJZKUEUHB
      CRZLZAUJJZKABCMUKUNUEUIUMAUJUIUGULNZUHKZBHUMUHUPBUHUOUFUGCASBSOPQUHBULTUA
      UBUCUD $.
  $}

  $( An equivalence for the function predicate.  (Contributed by NM,
     13-Aug-2004.) $)
  funfn $p |- ( Fun A <-> A Fn dom A ) $=
    ( wfun cdm wceq wa wfn eqid biantru df-fn bitr4i ) ABZKACZLDZEALFMKLGHALIJ
    $.

  ${
    funfnd.1 $e |- ( ph -> Fun A ) $.
    $( A function is a function over its domain.  (Contributed by Glauco
       Siliprandi, 23-Oct-2021.) $)
    funfnd $p |- ( ph -> A Fn dom A ) $=
      ( wfun cdm wfn funfn sylib ) ABDBBEFCBGH $.
  $}

  $( The identity relation is a function.  Part of Theorem 10.4 of [Quine]
     p. 65.  (Contributed by NM, 30-Apr-1998.) $)
  funi $p |- Fun _I $=
    ( cid wfun wrel ccnv ccom wss reli wceq relcnv coi2 ax-mp cnvi eqtri df-fun
    eqimssi mpbir2an ) ABACAADZEZAFGRARQAQCRQHAIQJKLMOANP $.

  $( The universe is not a function.  (Contributed by Raph Levien,
     27-Jan-2004.) $)
  nfunv $p |- -. Fun _V $=
    ( cvv wfun wrel cxp wcel 0nelxp 0ex wss df-rel biimpi sseld mpi mto funrel
    c0 ) ABACZPOAADZEZAAFPOAERGPAQOPAQHAIJKLMANM $.

  ${
    $d t u v w x y z A $.  $d t u v w x y z B $.
    $( A Kuratowski ordered pair is a function only if its components are
       equal.  (Contributed by NM, 5-Jun-2008.)  (Revised by Mario Carneiro,
       26-Apr-2015.)  (Avoid depending on this detail.) $)
    funopg $p |- ( ( A e. V /\ B e. W /\ Fun <. A , B >. ) -> A = B ) $=
      ( vu vt vx vy vz vw vv wcel cop wceq cv weq wi cpr vex cvv funeqd imbi12d
      wfun opeq1 eqeq1 opeq2 eqeq2 csn wa wex wrel funrel relop sylib opth opid
      preq1i dfop preq2i snex zfpair2 3eqtr4ri eqeq2i bitr3i wal dffun4 simprbi
      prid1 eleq2 mpbiri prid2 jca w3a opeq12 3adant3 eleq1d 3adant2 anbi12d wb
      opex eqeq12 3adant1 spc3gv mp3an syl2im syl5bi dfsn2 preq2 syl5req eqeq2d
      eqtr3 expcom syl6bi com13 imp sylcom exlimdvv mpd vtocl2g 3impia ) ACLBDL
      ABMZUCZABNZEOZFOZMZUCZEFPZQAXEMZUCZAXENZQXBXCQEFABCDXDANZXGXJXHXKXLXFXIXD
      AXEUDUAXDAXEUEUBXEBNZXJXBXKXCXMXIXAXEBAUFUAXEBAUGUBXGXDGOZUHZNZXEXNHOZRZN
      ZUIZHUJGUJZXHXGXFUKZYAXFULGHXDXEESZFSZUMUNXGXTXHGHXGXTGHPZXHXTXFXNXNMZXNX
      QMZRZNZXGYEXTXFXOXRMZNYIXDXEXOXRYCYDUOYJYHXFYFXOXRRZRXOUHZYKRYHYJYFYLYKXN
      GSZUPUQYGYKYFXNXQYMHSZURUSXOXRXNUTGHVAURVBVCVDXGIOZJOZMZXFLZYOKOZMZXFLZUI
      ZJKPZQZKVEJVEIVEZYIYFXFLZYGXFLZUIZYEXGYBUUEIJKXFVFVGYIUUFUUGYIUUFYFYHLYFY
      GXNXNVTVHXFYHYFVIVJYIUUGYGYHLYFYGXNXQVTVKXFYHYGVIVJVLXNTLZUUIXQTLUUEUUHYE
      QZQYMYMYNUUDUUJIJKXNXNXQTTTIGPZJGPZKHPZVMZUUBUUHUUCYEUUNYRUUFUUAUUGUUNYQY
      FXFUUKUULYQYFNUUMYOYPXNXNVNVOVPUUNYTYGXFUUKUUMYTYGNUULYOYSXNXQVNVQVPVRUUL
      UUMUUCYEVSUUKYPXNYSXQWAWBUBWCWDWEWFXPXSYEXHQYEXSXPXHYEXSXEXONZXPXHQYEXRXO
      XEYEXOXNXNRXRXNWGXNXQXNWHWIWJXPUUOXHXDXEXOWKWLWMWNWOWPWQWRWSWT $.
  $}

  ${
    $d x y $.
    $( A class of ordered pairs is a function when there is at most one second
       member for each pair.  (Contributed by NM, 16-May-1995.) $)
    funopab $p |- ( Fun { <. x , y >. | ph } <-> A. x E* y ph ) $=
      ( copab wfun wbr wmo wal wrel relopab nfopab1 nfopab2 dffun6f mpbiran cop
      cv wcel df-br opabid bitri mobii albii ) ABCDZEZBPZCPZUCFZCGZBHZACGZBHUDU
      CIUIABCJBCUCABCKABCLMNUHUJBUGACUGUEUFOUCQAUEUFUCRABCSTUAUBT $.
  $}

  ${
    $d x y $.  $d y A $.
    $( A class of ordered pairs of values is a function.  (Contributed by NM,
       14-Nov-1995.) $)
    funopabeq $p |- Fun { <. x , y >. | y = A } $=
      ( cv wceq copab wfun wmo funopab moeq mpgbir ) BDCEZABFGLBHALABIBCJK $.

    $( A class of ordered pairs of values in the form used by ~ df-mpt is a
       function.  (Contributed by NM, 17-Feb-2013.) $)
    funopab4 $p |- Fun { <. x , y >. | ( ph /\ y = A ) } $=
      ( cv wceq wa copab wss wfun simpr ssopab2i funopabeq funss mp2 ) ACEDFZGZ
      BCHZPBCHZISJRJQPBCAPKLBCDMRSNO $.
  $}

  ${
    $d A y $.  $d B y $.  $d x y $.
    $( A function in maps-to notation is a function.  (Contributed by Mario
       Carneiro, 13-Jan-2013.) $)
    funmpt $p |- Fun ( x e. A |-> B ) $=
      ( vy cmpt wfun cv wcel wceq wa copab funopab4 df-mpt funeqi mpbir ) ABCEZ
      FAGBHZDGCIJADKZFQADCLPRADBCMNO $.
  $}

  ${
    funmpt2.1 $e |- F = ( x e. A |-> B ) $.
    $( Functionality of a class given by a "maps to" notation.  (Contributed by
       FL, 17-Feb-2008.)  (Revised by Mario Carneiro, 31-May-2014.) $)
    funmpt2 $p |- Fun F $=
      ( wfun cmpt funmpt funeqi mpbir ) DFABCGZFABCHDKEIJ $.
  $}

  ${
    $d x y z F $.  $d x y z G $.
    $( The composition of two functions is a function.  Exercise 29 of
       [TakeutiZaring] p. 25.  (Contributed by NM, 26-Jan-1997.)  (Proof
       shortened by Andrew Salmon, 17-Sep-2011.) $)
    funco $p |- ( ( Fun F /\ Fun G ) -> Fun ( F o. G ) ) $=
      ( vx vz vy wfun wa cv wbr wex copab wmo wal funmo alrimiv moexexv syl2anr
      ccom funopab sylibr df-co funeqi ) AFZBFZGZCHZDHZBIZUGEHAIZGDJZCEKZFZABRZ
      FUEUJELZCMULUEUNCUDUHDLUIELZDMUNUCDUFBNUCUODEUGANOUHUIDEPQOUJCESTUMUKCEDA
      BUAUBT $.
  $}

  $( A restriction of a function is a function.  Compare Exercise 18 of
     [TakeutiZaring] p. 25.  (Contributed by NM, 16-Aug-1994.) $)
  funres $p |- ( Fun F -> Fun ( F |` A ) ) $=
    ( cres wss wfun wi resss funss ax-mp ) BACZBDBEJEFBAGJBHI $.

  ${
    $d x y F $.  $d x y G $.
    $( The restriction of a function to the domain of a subclass equals the
       subclass.  (Contributed by NM, 15-Aug-1994.) $)
    funssres $p |- ( ( Fun F /\ G C_ F ) -> ( F |` dom G ) = G ) $=
      ( vx vy wfun wss wa cdm cres wceq cv cop wcel wb wal wi vex wex imp wrel
      ssel opeldm a1i adantl weu funeu2 eldm2 ancrd eximdv syl5bi eupick syl2an
      jcad exp43 com23 com34 pm2.43d impd impbid opelres syl6rbbr relres funrel
      alrimivv relss mpan9 eqrel sylancr mpbird ) AEZBAFZGZABHZIZBJZCKZDKZLZVNM
      ZVRBMZNZDOCOZVLWACDVLVTVRAMZVPVMMZGZVSVLVTWEVKVTWEPVJVKVTWCWDBAVRUAZVTWDP
      VKVPVQBCQZDQZUBUCUMUDVLWCWDVTVLWCWDVTPVLWCWDWCVTVJVKWCWDWCVTPZPZPVJWCVKWJ
      VJWCVKWDWIVJWCGWCDUEWCVTGZDRZWIVKWDGDVPVQAUFVKWDWLWDVTDRVKWLDVPBWGUGVKVTW
      KDVKVTWCWFUHUIUJSWCVTDUKULUNUOSUPUQURUSVPVQAVMWHUTVAVDVLVNTBTZVOWBNAVMVBV
      JATVKWMAVCBAVEVFCDVNBVGVHVI $.
  $}

  $( Equality of restrictions of a function and a subclass.  (Contributed by
     NM, 16-Aug-1994.) $)
  fun2ssres $p |- ( ( Fun F /\ G C_ F /\ A C_ dom G ) ->
                  ( F |` A ) = ( G |` A ) ) $=
    ( wfun wss cdm cres wceq wa resabs1 eqcomd funssres reseq1d sylan9eqr 3impa
    ) BDZCBEZACFZEZBAGZCAGZHSPQIZTBRGZAGZUASUDTBARJKUBUCCABCLMNO $.

  ${
    $d x y z F $.  $d x y z G $.
    $( The union of functions with disjoint domains is a function.  Theorem 4.6
       of [Monk1] p. 43.  (Contributed by NM, 12-Aug-1994.) $)
    funun $p |- ( ( ( Fun F /\ Fun G ) /\ ( dom F i^i dom G ) = (/) ) ->
                Fun ( F u. G ) ) $=
      ( vx vy vz wfun wa cdm wrel cv wi wal anim12i wo wn 19.21bi opeldm dffun4
      wcel vex cin c0 wceq cun cop funrel relun sylibr elun anbi12i anddi bitri
      adantr disj1 biimpi imnan sylib nsyl orel2 syl con2d orel1 orim12d adantl
      syl5bi simprbi 19.21bbi jaao syld alrimiv alrimivv sylanbrc ) AFZBFZGZAHZ
      BHZUAUBUCZGZABUDZIZCJZDJZUEZVTSZWBEJZUEZVTSZGZWCWFUCZKZELZDLCLVTFVOWAVRVO
      AIZBIZGWAVMWMVNWNAUFBUFMABUGUHUMVSWLCDVSWKEVSWIWDASZWGASZGZWDBSZWGBSZGZNZ
      WJWIWQWOWSGZNZWRWPGZWTNZNZVSXAWIWOWRNZWPWSNZGXFWEXGWHXHWDABUIWGABUIUJWOWR
      WPWSUKULVRXFXAKVOVRXCWQXEWTVRXBOXCWQKVRWBVPSZWBVQSZGZXBVRXIXJOKZXKOVRXLCV
      RXLCLCVPVQUNUOPZXIXJUPUQWOXIWSXJWBWCACTZDTZQWBWFBXNETZQMURXBWQUSUTVRXDOXE
      WTKVRXJXIGZXDVRXJXIOKXQOVRXIXJXMVAXJXIUPUQWRXJWPXIWBWCBXNXOQWBWFAXNXPQMUR
      XDWTVBUTVCVDVEVOXAWJKVRVMWQWJVNWTVMWQWJKZDEVMXRELDLZCVMWMXSCLCDEARVFPVGVN
      WTWJKZDEVNXTELDLZCVNWNYACLCDEBRVFPVGVHUMVIVJVKCDEVTRVL $.
  $}

  ${
    $d x y $.  $d F y $.  $d G y $.
    $( If the union of classes is a function, there is at most one element in
       relation to an arbitrary element regarding one of these classes.
       (Contributed by AV, 18-Jul-2019.) $)
    fununmo $p |- ( Fun ( F u. G ) -> E* y x F y ) $=
      ( cun wfun cv wbr wmo funmo wo orc brun sylibr moimi syl ) CDEZFAGZBGZQHZ
      BIRSCHZBIBRQJUATBUAUARSDHZKTUAUBLRSCDMNOP $.
  $}

  ${
    $d F x y $.  $d G x y $.
    $( If the union of classes is a function, the classes itselves are
       functions.  (Contributed by AV, 18-Jul-2019.) $)
    fununfun $p |- ( Fun ( F u. G ) -> ( Fun F /\ Fun G ) ) $=
      ( vx vy wrel wa cun funrel relun sylib cv wbr wmo fununmo alrimiv anim12i
      wfun wal dffun6 sylibr simpl simpr uncom funeqi sylbi jca mpancom ) AEZBE
      ZFZABGZQZAQZBQZFULUKEUJUKHABIJUJULFZUMUNUOUHCKZDKZALDMZCRZFUMUJUHULUSUHUI
      UAULURCCDABNOPCDASTUOUIUPUQBLDMZCRZFUNUJUIULVAUHUIUBULUTCULBAGZQUTUKVBABU
      CUDCDBANUEOPCDBSTUFUG $.
  $}

  ${
    $d A x y z $.  $d F x y z $.
    $( A function with removed elements is still a function.  (Contributed by
       AV, 7-Jun-2021.) $)
    fundif $p |- ( Fun F -> Fun ( F \ A ) ) $=
      ( vx vy vz wrel cv wbr wa weq wi wal cdif reldif wn brdif pm2.27 ad2ant2r
      wfun dffun2 syl2anb com12 alimi 2alimi anim12i 3imtr4i ) BFZCGZDGZBHZUHEG
      ZBHZIZDEJZKZELZDLCLZIBAMZFZUHUIURHZUHUKURHZIZUNKZELZDLCLZIBSURSUGUSUQVEBA
      NUPVDCDUOVCEVBUOUNUTUJUHUIAHOZIULUHUKAHOZIUOUNKZVAUHUIBAPUHUKBAPUJULVHVFV
      GUMUNQRUAUBUCUDUECDEBTCDEURTUF $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The converse singleton of an ordered pair is a function.  This is
       equivalent to ~ funsn via ~ cnvsn , but stating it this way allows us to
       skip the sethood assumptions on ` A ` and ` B ` .  (Contributed by NM,
       30-Apr-2015.) $)
    funcnvsn $p |- Fun `' { <. A , B >. } $=
      ( vx vy cop csn ccnv wfun wrel cv wbr wmo wal relcnv wceq moeq wcel brcnv
      vex df-br bitri elsni opth1 syl sylbi moimi ax-mp ax-gen dffun6 mpbir2an
      ) ABEZFZGZHUMICJZDJZUMKZDLZCMULNUQCUOAOZDLUQDAPUPURDUPUOUNEZULQZURUPUOUNU
      LKUTUNUOULCSZDSZRUOUNULTUAUTUSUKOURUSUKUBUOUNABVBVAUCUDUEUFUGUHCDUMUIUJ
      $.

    $( A singleton of an ordered pair is a function.  Theorem 10.5 of [Quine]
       p. 65.  (Contributed by NM, 28-Jun-2011.) $)
    funsng $p |- ( ( A e. V /\ B e. W ) -> Fun { <. A , B >. } ) $=
      ( wcel wa cop csn ccnv wfun funcnvsn wceq cnvsng ancoms funeqd mpbii ) AC
      EZBDEZFZBAGHIZJABGHZJBAKSTUARQTUALBADCMNOP $.

    $( Functionality and domain of the singleton of an ordered pair.
       (Contributed by Mario Carneiro, 30-Apr-2015.) $)
    fnsng $p |- ( ( A e. V /\ B e. W ) -> { <. A , B >. } Fn { A } ) $=
      ( wcel wa cop csn wfun cdm wceq wfn funsng dmsnopg adantl df-fn sylanbrc
      ) ACEZBDEZFABGHZITJAHZKZTUALABCDMSUBRABDNOTUAPQ $.

    funsn.1 $e |- A e. _V $.
    funsn.2 $e |- B e. _V $.
    $( A singleton of an ordered pair is a function.  Theorem 10.5 of [Quine]
       p. 65.  (Contributed by NM, 12-Aug-1994.) $)
    funsn $p |- Fun { <. A , B >. } $=
      ( cvv wcel cop csn wfun funsng mp2an ) AEFBEFABGHICDABEEJK $.
  $}

  $( A set of two pairs is a function if their first members are different.
     (Contributed by FL, 26-Jun-2011.)  (Proof shortened by JJ,
     14-Jul-2021.) $)
  funprg $p |- ( ( ( A e. V /\ B e. W ) /\ ( C e. X /\ D e. Y ) /\ A =/= B )
     -> Fun { <. A , C >. , <. B , D >. } ) $=
    ( wcel wa wne w3a cop csn wfun cdm cin c0 funsng dmsnopg cun wceq ineqan12d
    cpr anim12i an4s 3adant3 disjsn2 sylan9eq 3adant1 funun df-pr funeqi sylibr
    syl2anc ) AEIZBFIZJZCGIZDHIZJZABKZLZACMZNZBDMZNZUAZOZVDVFUDZOVCVEOZVGOZJZVE
    PZVGPZQZRUBZVIURVAVMVBUPUSUQUTVMUPUSJVKUQUTJVLACEGSBDFHSUEUFUGVAVBVQURVAVBV
    PANZBNZQRUSUTVNVRVOVSACGTBDHTUCABUHUIUJVEVGUKUOVJVHVDVFULUMUN $.

  $( Obsolete proof of ~ funprg as of 14-Jul-2021.  (Contributed by FL,
     26-Jun-2011.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  funprgOLD $p |- ( ( ( A e. V /\ B e. W ) /\ ( C e. X /\ D e. Y ) /\ A =/= B )
     -> Fun { <. A , C >. , <. B , D >. } ) $=
    ( wcel wa cop csn wfun cdm cin c0 wceq funsng syl2anc dmsnopg simp1l simp2l
    wne w3a cun cpr simp1r simp2r ineq12d disjsn2 3ad2ant3 eqtrd funun syl21anc
    syl df-pr funeqi sylibr ) AEIZBFIZJZCGIZDHIZJZABUCZUDZACKZLZBDKZLZUEZMZVGVI
    UFZMVFVHMZVJMZVHNZVJNZOZPQVLVFUSVBVNUSUTVDVEUAVAVBVCVEUBZACEGRSVFUTVCVOUSUT
    VDVEUGVAVBVCVEUHZBDFHRSVFVRALZBLZOZPVFVPWAVQWBVFVBVPWAQVSACGTUOVFVCVQWBQVTB
    DHTUOUIVEVAWCPQVDABUJUKULVHVJUMUNVMVKVGVIUPUQUR $.

  $( A set of three pairs is a function if their first members are different.
     (Contributed by Alexander van der Vekens, 5-Dec-2017.)  (Proof shortened
     by JJ, 14-Jul-2021.) $)
  funtpg $p |- ( ( ( X e. U /\ Y e. V /\ Z e. W )
                   /\ ( A e. F /\ B e. G /\ C e. H )
                   /\ ( X =/= Y /\ X =/= Z /\ Y =/= Z ) )
                 -> Fun { <. X , A >. , <. Y , B >. , <. Z , C >. } ) $=
    ( wcel w3a wne cop cpr wfun c0 wceq csn cun ctp cdm cin 3simpa simp1 funprg
    syl3an simp3 funsng syl2an 3adant3 dmpropg dmsnopg ineqan12d 3impa disjprsn
    wa 3adant1 sylan9eq funun syl21anc df-tp funeqi sylibr ) JDMZKHMZLIMZNZAEMZ
    BFMZCGMZNZJKOZJLOZKLOZNZNZJAPZKBPZQZLCPZUAZUBZRZVTWAWCUCZRVSWBRZWDRZWBUDZWD
    UDZUEZSTZWFVJVGVHUSVNVKVLUSZVRVOWHVGVHVIUFVKVLVMUFVOVPVQUGJKABDHEFUHUIVJVNW
    IVRVJVIVMWIVNVGVHVIUJVKVLVMUJLCIGUKULUMVNVRWMVJVNVRWLJKQZLUAZUEZSVKVLVMWLWQ
    TWNVMWJWOWKWPJAKBEFUNLCGUOUPUQVPVQWQSTVOJKLURUTVAUTWBWDVBVCWGWEVTWAWCVDVEVF
    $.

  $( Obsolete proof of ~ funtpg as of 14-Jul-2021.  (Contributed by Alexander
     van der Vekens, 5-Dec-2017.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  funtpgOLD $p |- ( ( ( X e. U /\ Y e. V /\ Z e. W )
                   /\ ( A e. F /\ B e. G /\ C e. H )
                   /\ ( X =/= Y /\ X =/= Z /\ Y =/= Z ) )
                 -> Fun { <. X , A >. , <. Y , B >. , <. Z , C >. } ) $=
    ( wcel w3a wne cop wfun c0 wceq wn cpr csn cun ctp cdm cin wa 3simpa funprg
    syl3an simp13 simp23 funsng syl2anc 3ad2ant2 dmpropg syl dmsnopg ineq12d wo
    simp1 elpri w3o nne biimpri eqcoms 3mix2d 3mix3d 3ianor sylibr con2i disjsn
    jaoi 3ad2ant3 eqtrd funun syl21anc df-tp funeqi ) JDMZKHMZLIMZNZAEMZBFMZCGM
    ZNZJKOZJLOZKLOZNZNZJAPZKBPZUAZLCPZUBZUCZQZWMWNWPUDZQWLWOQZWQQZWOUEZWQUEZUFZ
    RSWSWCVTWAUGWGWDWEUGZWKWHXAVTWAWBUHWDWEWFUHZWHWIWJVAJKABDHEFUIUJWLWBWFXBVTW
    AWBWGWKUKWCWDWEWFWKULZLCIGUMUNWLXEJKUAZLUBZUFZRWLXCXIXDXJWLXFXCXISWGWCXFWKX
    GUOJAKBEFUPUQWLWFXDXJSXHLCGURUQUSWKWCXKRSZWGWKLXIMZTXLXMWKXMLJSZLKSZUTZWKTZ
    LJKVBXPWHTZWITZWJTZVCZXQXNYAXOXNXSXRXTXSJLXSJLSJLVDVEVFVGXOXTXRXSXTKLXTKLSK
    LVDVEVFVHVMWHWIWJVIVJUQVKXILVLVJVNVOWOWQVPVQWTWRWMWNWPVRVSVJ $.

  ${
    funpr.1 $e |- A e. _V $.
    funpr.2 $e |- B e. _V $.
    funpr.3 $e |- C e. _V $.
    funpr.4 $e |- D e. _V $.
    $( A function with a domain of two elements.  (Contributed by Jeff Madsen,
       20-Jun-2010.) $)
    funpr $p |- ( A =/= B -> Fun { <. A , C >. , <. B , D >. } ) $=
      ( cvv wcel wa wne cop cpr wfun pm3.2i funprg mp3an12 ) AIJZBIJZKCIJZDIJZK
      ABLACMBDMNOSTEFPUAUBGHPABCDIIIIQR $.
  $}

  ${
    funtp.1 $e |- A e. _V $.
    funtp.2 $e |- B e. _V $.
    funtp.3 $e |- C e. _V $.
    funtp.4 $e |- D e. _V $.
    funtp.5 $e |- E e. _V $.
    funtp.6 $e |- F e. _V $.
    $( A function with a domain of three elements.  (Contributed by NM,
       14-Sep-2011.) $)
    funtp $p |- ( ( A =/= B /\ A =/= C /\ B =/= C )
                    -> Fun { <. A , D >. , <. B , E >. , <. C , F >. } ) $=
      ( wne cop csn wfun wa cin c0 wceq w3a cpr cun ctp funpr funsn jctir df-pr
      cdm dmprop eqtri dmsnop ineq12i disjsn2 anim12i sylib syl5eq funun syl2an
      undisj1 3impb df-tp funeqi sylibr ) ABMZACMZBCMZUAADNZBENZUBZCFNZOZUCZPZV
      HVIVKUDZPVEVFVGVNVEVJPZVLPZQVJUIZVLUIZRZSTVNVFVGQZVEVPVQABDEGHJKUECFILUFU
      GWAVTAOZBOZUCZCOZRZSVRWDVSWEVRABUBWDADBEJKUJABUHUKCFLULUMWAWBWERSTZWCWERS
      TZQWFSTVFWGVGWHACUNBCUNUOWBWCWEUTUPUQVJVLURUSVAVOVMVHVIVKVBVCVD $.
  $}

  ${
    fnsn.1 $e |- A e. _V $.
    fnsn.2 $e |- B e. _V $.
    $( Functionality and domain of the singleton of an ordered pair.
       (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) $)
    fnsn $p |- { <. A , B >. } Fn { A } $=
      ( cvv wcel cop csn wfn fnsng mp2an ) AEFBEFABGHAHICDABEEJK $.
  $}

  $( Function with a domain of two different values.  (Contributed by FL,
     26-Jun-2011.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  fnprg $p |- ( ( ( A e. V /\ B e. W ) /\ ( C e. X /\ D e. Y ) /\ A =/= B )
         -> { <. A , C >. , <. B , D >. } Fn { A , B } ) $=
    ( wcel wa wne w3a cop cpr wfun cdm wceq wfn funprg dmpropg 3ad2ant2 df-fn
    sylanbrc ) AEIBFIJZCGIDHIJZABKZLACMBDMNZOUGPABNZQZUGUHRABCDEFGHSUEUDUIUFACB
    DGHTUAUGUHUBUC $.

  $( Function with a domain of three different values.  (Contributed by
     Alexander van der Vekens, 5-Dec-2017.) $)
  fntpg $p |- ( ( ( X e. U /\ Y e. V /\ Z e. W )
                  /\ ( A e. F /\ B e. G /\ C e. H )
                  /\ ( X =/= Y /\ X =/= Z /\ Y =/= Z ) )
           -> { <. X , A >. , <. Y , B >. , <. Z , C >. } Fn { X , Y , Z } ) $=
    ( wcel w3a wne cop cdm wceq csn cun ctp wfun wfn funtpg wa dmsnopg 3ad2ant1
    cpr 3ad2ant2 jca uneq12 syl df-pr syl6eqr dmeqi eqeq1i dmun sylibr 3ad2ant3
    bitri uneq12d df-tp eqtri 3eqtr4g df-fn sylanbrc ) JDMKHMLIMNZAEMZBFMZCGMZN
    ZJKOJLOKLONZNZJAPZKBPZLCPZUAZUBVQQZJKLUAZRVQVSUCABCDEFGHIJKLUDVMVNVOUHZQZVP
    SZQZTZJKUHZLSZTVRVSVMWAWEWCWFVMVNSZQZVOSZQZTZWERZWAWERZVMWKJSZKSZTZWEVMWHWN
    RZWJWORZUEZWKWPRVKVGWSVLVKWQWRVHVIWQVJJAEUFUGVIVHWRVJKBFUFUIUJUIWHWNWJWOUKU
    LJKUMUNWMWGWITZQZWERWLWAXAWEVTWTVNVOUMUOUPXAWKWEWGWIUQUPUTURVKVGWCWFRZVLVJV
    HXBVILCGUFUSUIVAVRVTWBTZQWDVQXCVNVOVPVBUOVTWBUQVCJKLVBVDVQVSVEVF $.

  ${
    fntp.1 $e |- A e. _V $.
    fntp.2 $e |- B e. _V $.
    fntp.3 $e |- C e. _V $.
    fntp.4 $e |- D e. _V $.
    fntp.5 $e |- E e. _V $.
    fntp.6 $e |- F e. _V $.
    $( A function with a domain of three elements.  (Contributed by NM,
       14-Sep-2011.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    fntp $p |- ( ( A =/= B /\ A =/= C /\ B =/= C )
          -> { <. A , D >. , <. B , E >. , <. C , F >. } Fn { A , B , C } ) $=
      ( wne w3a cop ctp wfun cdm wceq wfn funtp dmtpop a1i df-fn sylanbrc ) ABM
      ACMBCMNZADOBEOCFOPZQUGRABCPZSZUGUHTABCDEFGHIJKLUAUIUFADBECFJKLUBUCUGUHUDU
      E $.
  $}

  $( The converse pair of ordered pairs is a function if the second members are
     different.  Note that the second members need not be sets.  (Contributed
     by AV, 23-Jan-2021.) $)
  funcnvpr $p |- ( ( A e. U /\ C e. V /\ B =/= D )
                   -> Fun `' { <. A , B >. , <. C , D >. } ) $=
    ( wcel cop csn ccnv cun wfun cdm cin c0 wceq funcnvsn crn df-rn rnsnopg wne
    w3a cpr pm3.2i syl5eqr ineqan12d 3adant3 disjsn2 3ad2ant3 eqtrd funun df-pr
    wa sylancr cnveqi cnvun eqtri funeqi sylibr ) AEGZCFGZBDUAZUBZABHZIZJZCDHZI
    ZJZKZLZVDVGUCZJZLVCVFLZVILZUMVFMZVIMZNZOPVKVNVOABQCDQUDVCVRBIZDIZNZOUTVAVRW
    APVBUTVAVPVSVQVTUTVPVERVSVESABETUEVAVQVHRVTVHSCDFTUEUFUGVBUTWAOPVABDUHUIUJV
    FVIUKUNVMVJVMVEVHKZJVJVLWBVDVGULUOVEVHUPUQURUS $.

  $( The converse triple of ordered pairs is a function if the second members
     are pairwise different.  Note that the second members need not be sets.
     (Contributed by AV, 23-Jan-2021.) $)
  funcnvtp $p |- ( ( ( A e. U /\ C e. V /\ E e. W )
                     /\ ( B =/= D /\ B =/= F /\ D =/= F ) )
                   -> Fun `' { <. A , B >. , <. C , D >. , <. E , F >. } ) $=
    ( wcel w3a wne wa cop cpr ccnv csn wfun c0 wceq cun ctp cdm cin simp1 simp2
    funcnvpr syl2an3an funcnvsn a1i crn rnpropg syl5eqr 3adant3 rnsnopg ineq12d
    df-rn 3ad2ant3 disjprsn 3adant1 sylan9eq funun syl21anc df-tp cnveqi funeqi
    cnvun eqtri sylibr ) AEJZCHJZFIJZKZBDLZBGLZDGLZKZMZABNZCDNZOZPZFGNZQZPZUAZR
    ZVSVTWCUBZPZRVRWBRZWERZWBUCZWEUCZUDZSTWGVMVJVKVQVNWJVJVKVLUEVJVKVLUFVNVOVPU
    EABCDEHUGUHWKVRFGUIUJVMVQWNBDOZGQZUDZSVMWLWOWMWPVJVKWLWOTVLVJVKMWLWAUKWOWAU
    QACBDEHULUMUNVLVJWMWPTVKVLWMWDUKWPWDUQFGIUOUMURUPVOVPWQSTVNBDGUSUTVAWBWEVBV
    CWIWFWIWAWDUAZPWFWHWRVSVTWCVDVEWAWDVGVHVFVI $.

  $( The converse quadruple of ordered pairs is a function if the second
     members are pairwise different.  Note that the second members need not be
     sets.  (Contributed by AV, 23-Jan-2021.)  (Proof shortened by JJ,
     14-Jul-2021.) $)
  funcnvqp $p |- ( ( ( ( A e. U /\ C e. V ) /\ ( E e. W /\ G e. T ) )
                     /\ ( ( B =/= D /\ B =/= F /\ B =/= H )
                          /\ ( D =/= F /\ D =/= H ) /\ F =/= H ) )
                   -> Fun `' ( { <. A , B >. , <. C , D >. }
                               u. { <. E , F >. , <. G , H >. } ) ) $=
    ( wcel wa wne cop cpr ccnv wfun c0 w3a cun cdm cin funcnvpr 3expa 3ad2antr1
    wceq ad2ant2r 3adantr2 ad2ant2l crn df-rn rnpropg syl5eqr ineqan12d disjpr2
    an4s 3adantl1 3adant3 sylan9eq funun syl21anc cnvun funeqi sylibr ) AFMZCKM
    ZNZGLMZIEMZNZNZBDOZBHOZBJOZUAZDHOZDJOZNZHJOZUAZNZABPCDPQZRZGHPIJPQZRZUBZSZW
    DWFUBRZSWCWESZWGSZWEUCZWGUCZUDZTUHWIVMVQWAWKVTVIVQWKVLWAVIVOVNWKVPVGVHVNWKA
    BCDFKUEUFUGUIUJVMVQWAWLVTVLWAWLVIVQVJVKWAWLGHIJLEUEUFUKUJVMWBWOBDQZHJQZUDZT
    VIVLWMWPWNWQVIWMWDULWPWDUMACBDFKUNUOVLWNWFULWQWFUMGIHJLEUNUOUPVQVTWRTUHZWAV
    OVPVTWSVNVOVRVPVSWSBDHJUQURUSUTVAWEWGVBVCWJWHWDWFVDVEVF $.

  $( Obsolete proof of ~ funcnvqp as of 14-Jul-2021.  (Contributed by AV,
     23-Jan-2021.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  funcnvqpOLD $p |- ( ( ( ( A e. U /\ C e. V ) /\ ( E e. W /\ G e. T ) )
                     /\ ( ( B =/= D /\ B =/= F /\ B =/= H )
                          /\ ( D =/= F /\ D =/= H ) /\ F =/= H ) )
                   -> Fun `' ( { <. A , B >. , <. C , D >. }
                               u. { <. E , F >. , <. G , H >. } ) ) $=
    ( wcel wa wne cop cpr ccnv wfun c0 w3a cun cdm cin wceq simpl adantr simp11
    simpr funcnvpr syl2an3an adantl simp3 df-rn rnpropg syl5eqr ineqan12d simp2
    anim12i 3adant3 disjpr2 syl2anc sylan9eq funun syl21anc cnvun funeqi sylibr
    crn ) AFMZCKMZNZGLMZIEMZNZNZBDOZBHOZBJOZUAZDHOZDJOZNZHJOZUAZNZABPCDPQZRZGHP
    IJPQZRZUBZSZWGWIUBRZSWFWHSZWJSZWHUCZWJUCZUDZTUEWLVPVJVKWEVQWNVLVJVOVJVKUFUG
    VLVKVOVJVKUIUGVQVRVSWCWDUHABCDFKUJUKVPVMVNWEWDWOVOVMVLVMVNUFULVOVNVLVMVNUIU
    LVTWCWDUMGHIJLEUJUKVPWEWRBDQZHJQZUDZTVLVOWPWSWQWTVLWPWGVIWSWGUNACBDFKUOUPVO
    WQWIVIWTWIUNGIHJLEUOUPUQWEVRWANZVSWBNZXATUEVTWCXBWDVTVRWCWAVQVRVSURWAWBUFUS
    UTVTWCXCWDVTVSWCWBVQVRVSUMWAWBUIUSUTBDHJVAVBVCWHWJVDVEWMWKWGWIVFVGVH $.

  $( The empty set is a function.  Theorem 10.3 of [Quine] p. 65.  (Contributed
     by NM, 7-Apr-1998.) $)
  fun0 $p |- Fun (/) $=
    ( c0 cop csn wss wfun 0ss 0ex funsn funss mp2 ) AAABCZDKEAEKFAAGGHAKIJ $.

  $( The converse of the empty set is a function.  (Contributed by AV,
     7-Jan-2021.) $)
  funcnv0 $p |- Fun `' (/) $=
    ( c0 ccnv wfun fun0 cnv0 funeqi mpbir ) ABZCACDHAEFG $.

  $( The double converse of a function is a function.  (Contributed by NM,
     21-Sep-2004.) $)
  funcnvcnv $p |- ( Fun A -> Fun `' `' A ) $=
    ( ccnv wss wfun wi cnvcnvss funss ax-mp ) ABBZACADIDEAFIAGH $.

  ${
    $d x y A $.
    $( A simpler equivalence for single-rooted (see ~ funcnv ).  (Contributed
       by NM, 9-Aug-2004.) $)
    funcnv2 $p |- ( Fun `' A <-> A. y E* x x A y ) $=
      ( ccnv wfun cv wbr wmo wrel relcnv dffun6 mpbiran brcnv mobii albii bitri
      wal vex ) CDZEZBFZAFZSGZAHZBQZUBUACGZAHZBQTSIUECJBASKLUDUGBUCUFAUAUBCBRAR
      MNOP $.

    $( The converse of a class is a function iff the class is single-rooted,
       which means that for any ` y ` in the range of ` A ` there is at most
       one ` x ` such that ` x A y ` .  Definition of single-rooted in
       [Enderton] p. 43.  See ~ funcnv2 for a simpler version.  (Contributed by
       NM, 13-Aug-2004.) $)
    funcnv $p |- ( Fun `' A <-> A. y e. ran A E* x x A y ) $=
      ( cv wbr wmo wal crn wcel wi ccnv wfun wral wa vex pm4.71ri mobii moanimv
      brelrn bitri albii funcnv2 df-ral 3bitr4i ) ADZBDZCEZAFZBGUFCHZIZUHJZBGCK
      LUHBUIMUHUKBUHUJUGNZAFUKUGULAUGUJUEUFCAOBOSPQUJUGARTUAABCUBUHBUIUCUD $.

    $( A condition showing a class is single-rooted.  (See ~ funcnv ).
       (Contributed by NM, 26-May-2006.) $)
    funcnv3 $p |- ( Fun `' A <-> A. y e. ran A E! x e. dom A x A y ) $=
      ( cv wbr wmo crn wral wex ccnv wfun cdm wreu wcel dfrn2 abeq2i biimpi weu
      wa vex biantrurd ralbiia funcnv df-reu breldm pm4.71ri eu5 3bitr2i ralbii
      eubii 3bitr4i ) ADZBDZCEZAFZBCGZHUNAIZUOSZBUPHCJKUNACLZMZBUPHUOURBUPUMUPN
      ZUQUOVAUQUQBUPABCOPQUAUBABCUCUTURBUPUTULUSNZUNSZARUNARURUNAUSUDUNVCAUNVBU
      LUMCATBTUEUFUJUNAUGUHUIUK $.

    $( The double converse of a class is a function iff the class is
       single-valued.  Each side is equivalent to Definition 6.4(2) of
       [TakeutiZaring] p. 23, who use the notation "Un(A)" for single-valued.
       Note that ` A ` is not necessarily a function.  (Contributed by NM,
       13-Aug-2004.) $)
    fun2cnv $p |- ( Fun `' `' A <-> A. x E* y x A y ) $=
      ( ccnv wfun cv wbr wmo wal funcnv2 vex brcnv mobii albii bitri ) CDZDEBFZ
      AFZPGZBHZAIRQCGZBHZAIBAPJTUBASUABQRCBKAKLMNO $.

    $( A single-valued relation is a function.  (See ~ fun2cnv for
       "single-valued.") Definition 6.4(4) of [TakeutiZaring] p. 24.
       (Contributed by NM, 17-Jan-2006.) $)
    svrelfun $p |- ( Fun A <-> ( Rel A /\ Fun `' `' A ) ) $=
      ( vx vy wfun wrel cv wbr wmo wal wa ccnv dffun6 fun2cnv anbi2i bitr4i ) A
      DAEZBFCFAGCHBIZJPAKKDZJBCALRQPBCAMNO $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.
    $( Single-rootedness (see ~ funcnv ) of a class cut down by a Cartesian
       product.  (Contributed by NM, 5-Mar-2007.) $)
    fncnv $p |- ( `' ( R i^i ( A X. B ) ) Fn B <->
                  A. y e. B E! x e. A x R y ) $=
      ( cxp cin ccnv wfn wfun cdm wceq wa cv wbr wral wmo wcel wi 3bitr4i df-fn
      crn wreu df-rn eqeq1i anbi2i wrex wrmo rninxp anbi1i funcnv raleq moanimv
      biimt w3a brinxp2 3anan12 bitri mobii df-rmo imbi2i ralbiia syl6bb syl5bb
      syl6rbbr pm5.32i r19.26 ancom reu5 ralbii 3bitr2i ) ECDFGZHZDIVMJZVMKZDLZ
      MVNVLUBZDLZMZANZBNZEOZACUCZBDPZVMDUAVRVPVNVQVODVLUDUEUFVRVNMZWBACUGZWBACU
      HZMZBDPZVSWDVRWGBDPZMWFBDPZWJMWEWIVRWKWJABCDEUIUJVRVNWJVNVTWAVLOZAQZBVQPZ
      VRWJABVLUKVRWNWMBDPWJWMBVQDULWMWGBDWADRZWGWOWGSZWMWOWGUNWOVTCRZWBMZMZAQWO
      WRAQZSWMWPWOWRAUMWLWSAWLWQWOWBUOWSVTWACDEUPWQWOWBUQURUSWGWTWOWBACUTVATVEV
      BVCVDVFWFWGBDVGTVNVRVHWCWHBDWBACVIVJTVK $.
  $}

  ${
    $d x y z w A $.
    $( Two ways of stating that ` A ` is one-to-one (but not necessarily a
       function).  Each side is equivalent to Definition 6.4(3) of
       [TakeutiZaring] p. 24, who use the notation "Un_2 (A)" for one-to-one
       (but not necessarily a function).  (Contributed by NM, 17-Jan-2006.) $)
    fun11 $p |- ( ( Fun `' `' A /\ Fun `' A ) <->
         A. x A. y A. z A. w ( ( x A y /\ z A w ) -> ( x = z <-> y = w ) ) ) $=
      ( cv wbr wa weq wi wal ccnv wfun bi2.04 anbi12i 2albii alcom albii 3bitri
      19.26-2 wb dfbi2 imbi2i pm4.76 3bitr2i breq1 anbi1d imbi1d equsalvw bitri
      breq2 bitr2i wmo fun2cnv mo4 funcnv2 alrot4 3bitr4i ) CFZBFZEGZUSDFZEGZHZ
      BDIZJZBKZDKZCKZAFZVBEGZVCHZACIZJZAKZDKCKZHZVJUTEGZVCHZVMVEUAZJZBKAKZDKCKZ
      ELZLMZWDMZHWADKCKBKAKWCVGVOHZDKCKVQWBWGCDWBVMVSVEJZJZVEVSVMJZJZHZBKAKWIBK
      AKZWKBKZAKZHWGWAWLABWAVSVMVEJZVEVMJZHZJVSWPJZVSWQJZHWLVTWRVSVMVEUBUCVSWPW
      QUDWSWIWTWKVSVMVENVSVEVMNOUEPWIWKABTWMVGWOVOWMWIAKZBKVGWIABQXAVFBWHVFACVM
      VSVDVEVMVRVAVCVJUSUTEUFUGUHUIRUJWNVNAWJVNBDVEVSVLVMVEVRVKVCUTVBVJEUKUGUHU
      IROSPVGVOCDTULWEVIWFVPWEVABUMZCKVFDKBKZCKVICBEUNXBXCCVAVCBDUTVBUSEUKUORXC
      VHCVFBDQRSWFVKAUMZDKVNCKAKZDKZVPADEUPXDXEDVKVCACVJUSVBEUFUORXFVOCKZDKVPXE
      XGDVNACQRVODCQUJSOWAABCDUQUR $.
  $}

  ${
    $d f g x y z v w A $.
    $( The union of a chain (with respect to inclusion) of functions is a
       function.  (Contributed by NM, 10-Aug-2004.) $)
    fununi $p |- ( A. f e. A ( Fun f /\ A. g e. A ( f C_ g \/ g C_ f ) ) ->
                 Fun U. A ) $=
      ( vx vy vz vw vv cv wfun wss wo wral wa wrel wcel weq wi wal wex cuni cop
      funrel adantr ralimi reluni sylibr r19.28v anim1d dffun4 simprbi 19.21bbi
      ssel 19.21bi syl9r adantl anim2d jaod 2ralimi funeq sseq1 orbi12d anbi12d
      imp sseq2 anbi2d cbvral2v ralcom orcom syl5bb bitri anbi12i anidm anandir
      2ralbii bitr2i 3bitr3i eluni eeanv an4 ancom 2exbii 3bitr2i imbi1i 19.23v
      r19.26-2 r2al impexp albii 3bitr2ri 3imtr4i alrimiv alrimivv syl sylanbrc
      2albii ) BIZJZWQCIZKZWSWQKZLZCAMZNZBAMZAUAZOZDIZEIUBZXFPZXHFIUBZXFPZNZEFQ
      ZRZFSZESDSZXFJXEWQOZBAMXGXDXRBAWRXRXCWQUCUDUEBAUFUGXEWRXBNZCAMZBAMZXQXDXT
      BAWRXBCAUHUEYAXPDEYAXOFGIZJZHIZJZNZYBYDKZYDYBKZLZNZHAMGAMZXIYBPZXKYDPZNZX
      NRZHAMGAMZYAXOYJYOGHAAYFYIYOYFYGYOYHYEYGYORYCYGYNXIYDPZYMNZYEXNYGYLYQYMYB
      YDXIUMUIYEYRXNRZFYEYSFSZDEYEYDOYTESDSDEFYDUJUKULUNUOUPYCYHYORYEYHYNYLXKYB
      PZNZYCXNYHYMUUAYLYDYBXKUMUQYCUUBXNRZFYCUUCFSZDEYCYBOUUDESDSDEFYBUJUKULUNU
      OUDURVDUSYAYANYCYINZHAMGAMZYEYINZHAMGAMZNZYAYKYAUUFYAUUHXSUUEYCYBWSKZWSYB
      KZLZNBCGHAABGQZWRYCXBUULWQYBUTUUMWTUUJXAUUKWQYBWSVAWQYBWSVEVBVCCHQZUULYIY
      CUUNUUJYGUUKYHWSYDYBVEWSYDYBVAVBVFVGYAXSBAMCAMUUHXSBCAAVHXSUUGWRYBWQKZWQY
      BKZLZNCBGHAACGQZXBUUQWRXBXAWTLUURUUQWTXAVIUURXAUUOWTUUPWSYBWQVAWSYBWQVEVB
      VJVFBHQZWRYEUUQYIWQYDUTUUSUUOYGUUPYHWQYDYBVEWQYDYBVAVBVCVGVKVLYAVMYKUUEUU
      GNZHAMGAMUUIYJUUTGHAAYCYEYIVNVOUUEUUGGHAAWFVPVQXOYBAPZYDAPZNZYNNZHTZGTZXN
      RUVEXNRZGSZYPXMUVFXNXMYLUVANZGTZYMUVBNZHTZNUVIUVKNZHTGTUVFXJUVJXLUVLGXIAV
      RHXKAVRVLUVIUVKGHVSUVMUVDGHUVMYNUVCNUVDYLUVAYMUVBVTYNUVCWAVKWBWCWDUVEXNGW
      EYPUVCYORZHSGSUVDXNRZHSZGSUVHYOGHAAWGUVOUVNGHUVCYNXNWHWPUVPUVGGUVDXNHWEWI
      WJWCWKWLWMWNDEFXFUJWO $.
  $}

  $( The intersection with a function is a function.  Exercise 14(a) of
     [Enderton] p. 53.  (Contributed by NM, 19-Mar-2004.)  (Proof shortened by
     Andrew Salmon, 17-Sep-2011.) $)
  funin $p |- ( Fun F -> Fun ( F i^i G ) ) $=
    ( cin wss wfun wi inss1 funss ax-mp ) ABCZADAEJEFABGJAHI $.

  $( The restriction of a one-to-one function is one-to-one.  (Contributed by
     NM, 25-Mar-1998.) $)
  funres11 $p |- ( Fun `' F -> Fun `' ( F |` A ) ) $=
    ( cres wss ccnv wfun wi resss cnvss funss mp2b ) BACZBDLEZBEZDNFMFGBAHLBIMN
    JK $.

  $( The converse of a restricted function.  (Contributed by NM,
     27-Mar-1998.) $)
  funcnvres $p |- ( Fun `' F -> `' ( F |` A ) = ( `' F |` ( F " A ) ) ) $=
    ( ccnv wfun cima cres cdm df-ima df-rn eqtri reseq2i wceq resss cnvss ax-mp
    crn wss funssres mpan2 syl5req ) BCZDZUABAEZFUABAFZCZGZFZUEUCUFUAUCUDPUFBAH
    UDIJKUBUEUAQZUGUELUDBQUHBAMUDBNOUAUERST $.

  $( Converse of a restricted identity function.  (Contributed by FL,
     4-Mar-2007.) $)
  cnvresid $p |- `' ( _I |` A ) = ( _I |` A ) $=
    ( cid ccnv wceq wfun cres cnvi eqcomi funi funeq cima funcnvres imai syl6eq
    mpbii reseq12i mp2b ) BBCZDZREZBAFZCZUADRBGHSBETIBRJOTUBRBAKZFUAABLRBUCAGAM
    PNQ $.

  $( The converse of a restriction of the converse of a function equals the
     function restricted to the image of its converse.  (Contributed by NM,
     4-May-2005.) $)
  funcnvres2 $p |- ( Fun F -> `' ( `' F |` A ) = ( F |` ( `' F " A ) ) ) $=
    ( wfun ccnv cres cima wceq funcnvcnv funcnvres syl wrel funrel dfrel2 sylib
    reseq1d eqtrd ) BCZBDZAEDZRDZRAFZEZBUAEQTCSUBGBHARIJQTBUAQBKTBGBLBMNOP $.

  $( The image of the preimage of a function.  (Contributed by NM,
     25-May-2004.) $)
  funimacnv $p |- ( Fun F -> ( F " ( `' F " A ) ) = ( A i^i ran F ) ) $=
    ( wfun ccnv cima cres crn cin funcnvres2 rneqd df-ima syl6reqr df-rn ineq2i
    cdm dmres dfdm4 3eqtr2ri syl6eq ) BCZBBDZAEZEZUAAFZDZGZABGZHZTUFBUBFZGUCTUE
    UIABIJBUBKLUHAUAOZHUDOUFUGUJABMNUAAPUDQRS $.

  $( A kind of contraposition law that infers a subclass of an image from a
     preimage subclass.  (Contributed by NM, 25-May-2004.) $)
  funimass1 $p |- ( ( Fun F /\ A C_ ran F ) ->
                 ( ( `' F " A ) C_ B -> A C_ ( F " B ) ) ) $=
    ( ccnv cima wss wfun crn wa imass2 funimacnv wceq dfss biimpi eqcomd sseq1d
    cin sylan9eq syl5ib ) CDAEZBFCTEZCBEZFCGZACHZFZIZAUBFTBCJUFUAAUBUCUEUAAUDQZ
    AACKUEAUGUEAUGLAUDMNORPS $.

  $( A kind of contraposition law that infers an image subclass from a subclass
     of a preimage.  (Contributed by NM, 25-May-2004.) $)
  funimass2 $p |- ( ( Fun F /\ A C_ ( `' F " B ) ) -> ( F " A ) C_ B ) $=
    ( ccnv cima wss wfun imass2 crn cin funimacnv sseq2d inss1 sstr2 mpi syl6bi
    imp sylan2 ) ACDBEZFCGZCAEZCSEZFZUABFZASCHTUCUDTUCUABCIZJZFZUDTUBUFUABCKLUG
    UFBFUDBUEMUAUFBNOPQR $.

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    $( The image of a difference is the difference of images.  (Contributed by
       NM, 24-May-1998.) $)
    imadif $p |- ( Fun `' F ->
                 ( F " ( A \ B ) ) = ( ( F " A ) \ ( F " B ) ) ) $=
      ( vy vx cdif cima cv wcel wbr wa wex wn exbii wi wmo vex sylib wo elima2
      ccnv wfun anandir 19.40 sylbi wal nfv nfe1 funmo brcnv mobii mopick sylan
      nfan con2d imnan alrimi exancom alnex 3imtr3g anim2d syl5 19.29r sylan2br
      ex andi ianor anbi2i an32 pm3.24 intnan anass mtbir bitri 3bitr4i impbid1
      biorfi eldif anbi1i notbii anbi12i 3bitr4g eqrdv ) CUAZUBZDCABFZGZCAGZCBG
      ZFZWEEHZWFIZWKDHZCJZKZELZWMWHIZWMWIIZMZKZWMWGIWMWJIWEWKAIZWKBIZMZKZWNKZEL
      ZXAWNKZELZXBWNKZELZMZKZWPWTWEXFXLXFXHXCWNKZELZKZWEXLXFXGXMKZELXOXEXPEXAXC
      WNUCNXGXMEUDUEWEXNXKXHWEWNXCKZELZXIMZEUFZXNXKWEXRXTWEXRKZXSEWEXREWEEUGXQE
      UHUNYAXBWNMZOXSYAWNXBWEWNEPZXRWNXCOWEWMWKWDJZEPYCEWMWDUIYDWNEWMWKCDQZEQUJ
      UKRWNXCEULUMUOXBWNUPRUQVEWNXCEURXIEUSZUTVAVBXLXGXSKZELZXFXKXHXTYHYFXGXSEV
      CVDYGXEEXGXCYBSZKXGXCKZXGYBKZSZYGXEXGXCYBVFXSYIXGXBWNVGVHXEYJYLXAXCWNVIYK
      YJYKXAWNYBKZKYMXAWNVJVKXAWNYBVLVMVQVNVONRVPWOXEEWLXDWNWKABVRVSNWQXHWSXKEW
      MCAYETWRXJEWMCBYETVTWAWBEWMCWFYETWMWHWIVRWBWC $.
  $}

  $( The image of an intersection is the intersection of images.  (Contributed
     by Paul Chapman, 11-Apr-2009.) $)
  imain $p |- ( Fun `' F ->
                ( F " ( A i^i B ) ) = ( ( F " A ) i^i ( F " B ) ) ) $=
    ( ccnv wfun cdif cima cin imadif difeq2d eqtrd dfin4 imaeq2i 3eqtr4g ) CDEZ
    CAABFZFZGZCAGZSCBGZFZFZCABHZGSTHORSCPGZFUBAPCIOUDUASABCIJKUCQCABLMSTLN $.

  ${
    $d w B $.  $d x y z w A $.
    $( Axiom of Replacement using abbreviations.  Axiom 39(vi) of [Quine]
       p. 284.  Compare Exercise 9 of [TakeutiZaring] p. 29.  (Contributed by
       NM, 10-Sep-2006.) $)
    funimaexg $p |- ( ( Fun A /\ B e. C ) -> ( A " B ) e. _V ) $=
      ( vw vx vy vz wcel wfun cima cvv cv wceq imaeq2 eleq1d wal wex wel bitri
      wi imbi2d cop wrel dffun5 simprbi wa wb nfv axrep4 isset cab dfima3 abeq2
      eqeq2i exbii sylibr syl vtoclg impcom ) BCHAIZABJZKHZUTADLZJZKHZTUTVBTDBC
      VCBMZVEVBUTVFVDVAKVCBANOUAUTELFLZUBAHZVGGLZMTFPGQEPZVEUTAUCVJEFGAUDUEVJFG
      REDRVHUFEQZUGFPZGQZVEVHEFGDVHGUHUIVEVIVDMZGQVMGVDUJVNVLGVNVIVKFUKZMVLVDVO
      VIEFAVCULUNVKFVIUMSUOSUPUQURUS $.
  $}

  ${
    zfrep5.1 $e |- B e. _V $.
    $( The image of a set under any function is also a set.  Equivalent of
       Axiom of Replacement ~ ax-rep .  Axiom 39(vi) of [Quine] p. 284.
       Compare Exercise 9 of [TakeutiZaring] p. 29.  (Contributed by NM,
       17-Nov-2002.) $)
    funimaex $p |- ( Fun A -> ( A " B ) e. _V ) $=
      ( wfun cvv wcel cima funimaexg mpan2 ) ADBEFABGEFCABEHI $.
  $}

  ${
    $d x z A $.  $d b x y z $.  $d z ph $.
    $( Part of a study of the Axiom of Replacement used by the Isabelle prover.
       The object PrimReplace is apparently the image of the function encoded
       by ` ph ( x , y ) ` i.e. the class ` ( { <. x , y >. | ph } " A ) ` .
       If so, we can prove Isabelle's "Axiom of Replacement" conclusion without
       using the Axiom of Replacement, for which I (N. Megill) currently have
       no explanation.  (Contributed by NM, 26-Oct-2006.)  (Proof shortened by
       Mario Carneiro, 4-Dec-2016.) $)
    isarep1 $p |- ( b e. ( { <. x , y >. | ph } " A ) <->
                 E. x e. A [ b / y ] ph ) $=
      ( vz copab cima wcel wbr wrex wsb vex elima cop wsbc df-br sbsbc 3bitri
      cv opelopabsb sbbii bitr2i rexbii nfs1v nfv sbequ12r cbvrex ) ETZABCGZDHI
      FTZUIUJJZFDKACELZBFLZFDKUMBDKFUIUJDEMNULUNFDULUKUIOUJIACUIPZBUKPZUNUKUIUJ
      QABCUKUIUAUNUOBFLUPUMUOBFACERUBUOBFRUCSUDUNUMFBDUMBFUEUMFUFUMFBUGUHS $.
  $}

  ${
    $d w x y A $.  $d x y $.  $d y z $.  $d w ph $.  $d z ph $.
    isarep2.1 $e |- A e. _V $.
    isarep2.2 $e |- A. x e. A A. y A. z ( ( ph /\ [ z / y ] ph ) -> y = z ) $.
    $( Part of a study of the Axiom of Replacement used by the Isabelle prover.
       In Isabelle, the sethood of PrimReplace is apparently postulated
       implicitly by its type signature " ` [ ` i, ` [ ` i, i ` ] ` => o ` ] `
       => i", which automatically asserts that it is a set without using any
       axioms.  To prove that it is a set in Metamath, we need the hypotheses
       of Isabelle's "Axiom of Replacement" as well as the Axiom of Replacement
       in the form ~ funimaex .  (Contributed by NM, 26-Oct-2006.) $)
    isarep2 $p |- E. w w = ( { <. x , y >. | ph } " A ) $=
      ( copab cima cv wcel wa cvv cres resima resopab wmo wi wal imaeq1i eqtr3i
      wfun funopab wsb weq rspec nfv sylibr moanimv mpbir mpgbir funimaex ax-mp
      mo3 eqeltri isseti ) EABCIZFJZUSBKFLZAMZBCIZFJZNURFOZFJUSVCURFPVDVBFABCFQ
      UAUBVBUCZVCNLVEVACRZBVABCUDVFUTACRZSUTAACDUEMCDUFSDTCTZVGVHBFHUGACDADUHUO
      UIUTACUJUKULVBFGUMUNUPUQ $.
  $}

  $( Equality theorem for function predicate with domain.  (Contributed by NM,
     1-Aug-1994.) $)
  fneq1 $p |- ( F = G -> ( F Fn A <-> G Fn A ) ) $=
    ( wceq wfun cdm wa wfn funeq dmeq eqeq1d anbi12d df-fn 3bitr4g ) BCDZBEZBFZ
    ADZGCEZCFZADZGBAHCAHOPSRUABCIOQTABCJKLBAMCAMN $.

  $( Equality theorem for function predicate with domain.  (Contributed by NM,
     1-Aug-1994.) $)
  fneq2 $p |- ( A = B -> ( F Fn A <-> F Fn B ) ) $=
    ( wceq wfun cdm wa wfn eqeq2 anbi2d df-fn 3bitr4g ) ABDZCEZCFZADZGNOBDZGCAH
    CBHMPQNABOIJCAKCBKL $.

  ${
    fneq1d.1 $e |- ( ph -> F = G ) $.
    $( Equality deduction for function predicate with domain.  (Contributed by
       Paul Chapman, 22-Jun-2011.) $)
    fneq1d $p |- ( ph -> ( F Fn A <-> G Fn A ) ) $=
      ( wceq wfn wb fneq1 syl ) ACDFCBGDBGHEBCDIJ $.
  $}

  ${
    fneq2d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for function predicate with domain.  (Contributed by
       Paul Chapman, 22-Jun-2011.) $)
    fneq2d $p |- ( ph -> ( F Fn A <-> F Fn B ) ) $=
      ( wceq wfn wb fneq2 syl ) ABCFDBGDCGHEBCDIJ $.
  $}

  ${
    fneq12d.1 $e |- ( ph -> F = G ) $.
    fneq12d.2 $e |- ( ph -> A = B ) $.
    $( Equality deduction for function predicate with domain.  (Contributed by
       NM, 26-Jun-2011.) $)
    fneq12d $p |- ( ph -> ( F Fn A <-> G Fn B ) ) $=
      ( wfn fneq1d fneq2d bitrd ) ADBHEBHECHABDEFIABCEGJK $.
  $}

  $( Equality theorem for function predicate with domain.  (Contributed by
     Thierry Arnoux, 31-Jan-2017.) $)
  fneq12 $p |- ( ( F = G /\ A = B ) -> ( F Fn A <-> G Fn B ) ) $=
    ( wceq wa simpl simpr fneq12d ) CDEZABEZFABCDJKGJKHI $.

  ${
    fneq1i.1 $e |- F = G $.
    $( Equality inference for function predicate with domain.  (Contributed by
       Paul Chapman, 22-Jun-2011.) $)
    fneq1i $p |- ( F Fn A <-> G Fn A ) $=
      ( wceq wfn wb fneq1 ax-mp ) BCEBAFCAFGDABCHI $.
  $}

  ${
    fneq2i.1 $e |- A = B $.
    $( Equality inference for function predicate with domain.  (Contributed by
       NM, 4-Sep-2011.) $)
    fneq2i $p |- ( F Fn A <-> F Fn B ) $=
      ( wceq wfn wb fneq2 ax-mp ) ABECAFCBFGDABCHI $.
  $}

  ${
    nffn.1 $e |- F/_ x F $.
    nffn.2 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for a function with domain.
       (Contributed by NM, 30-Jan-2004.) $)
    nffn $p |- F/ x F Fn A $=
      ( wfn wfun cdm wceq wa df-fn nffun nfdm nfeq nfan nfxfr ) CBFCGZCHZBIZJAC
      BKQSAACDLARBACDMENOP $.
  $}

  $( A function with domain is a function.  (Contributed by NM, 1-Aug-1994.) $)
  fnfun $p |- ( F Fn A -> Fun F ) $=
    ( wfn wfun cdm wceq df-fn simplbi ) BACBDBEAFBAGH $.

  $( A function with domain is a relation.  (Contributed by NM, 1-Aug-1994.) $)
  fnrel $p |- ( F Fn A -> Rel F ) $=
    ( wfn wfun wrel fnfun funrel syl ) BACBDBEABFBGH $.

  $( The domain of a function.  (Contributed by NM, 2-Aug-1994.) $)
  fndm $p |- ( F Fn A -> dom F = A ) $=
    ( wfn wfun cdm wceq df-fn simprbi ) BACBDBEAFBAGH $.

  ${
    funfni.1 $e |- ( ( Fun F /\ B e. dom F ) -> ph ) $.
    $( Inference to convert a function and domain antecedent.  (Contributed by
       NM, 22-Apr-2004.) $)
    funfni $p |- ( ( F Fn A /\ B e. A ) -> ph ) $=
      ( wfn wfun wcel cdm fnfun fndm eleq2d biimpar syl2an2r ) DBFZDGCBHZCDIZHZ
      ABDJORPOQBCBDKLMEN $.
  $}

  $( A function has a unique domain.  (Contributed by NM, 11-Aug-1994.) $)
  fndmu $p |- ( ( F Fn A /\ F Fn B ) -> A = B ) $=
    ( wfn cdm fndm sylan9req ) CADCBDACEBACFBCFG $.

  $( The first argument of binary relation on a function belongs to the
     function's domain.  (Contributed by NM, 7-May-2004.) $)
  fnbr $p |- ( ( F Fn A /\ B F C ) -> B e. A ) $=
    ( wfn wbr cdm wcel wrel fnrel releldm sylan fndm eleq2d biimpa syldan ) DAE
    ZBCDFZBDGZHZBAHZQDIRTADJBCDKLQTUAQSABADMNOP $.

  $( The first argument of an ordered pair in a function belongs to the
     function's domain.  (Contributed by NM, 8-Aug-1994.) $)
  fnop $p |- ( ( F Fn A /\ <. B , C >. e. F ) -> B e. A ) $=
    ( cop wcel wfn wbr df-br fnbr sylan2br ) BCEDFDAGBCDHBAFBCDIABCDJK $.

  ${
    $d y F $.  $d y B $.
    $( There is exactly one value of a function.  (Contributed by NM,
       22-Apr-2004.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
    fneu $p |- ( ( F Fn A /\ B e. A ) -> E! y B F y ) $=
      ( cv wbr weu wfun cdm wa wmo funmo adantr wex wb eldmg ibi adantl exmoeu2
      wcel syl mpbid funfni ) CAEDFZAGZBCDDHZCDIZTZJZUDAKZUEUFUJUHACDLMUIUDANZU
      JUEOUHUKUFUHUKACDUGPQRUDASUAUBUC $.

    $( There is exactly one value of a function.  (Contributed by NM,
       7-Nov-1995.) $)
    fneu2 $p |- ( ( F Fn A /\ B e. A ) -> E! y <. B , y >. e. F ) $=
      ( wfn wcel wa cv wbr weu cop fneu df-br eubii sylib ) DBECBFGCAHZDIZAJCPK
      DFZAJABCDLQRACPDMNO $.
  $}

  $( The union of two functions with disjoint domains.  (Contributed by NM,
     22-Sep-2004.) $)
  fnun $p |- ( ( ( F Fn A /\ G Fn B ) /\ ( A i^i B ) = (/) ) ->
             ( F u. G ) Fn ( A u. B ) ) $=
    ( wfn wa cin c0 wceq cun wfun cdm wi df-fn ineq12 eqeq1d funun syl6bir dmun
    anbi2d uneq12 syl5eq jctird syl6ibr expd impcom an4s syl2anb imp ) CAEZDBEZ
    FABGZHIZCDJZABJZEZUJCKZCLZAIZFDKZDLZBIZFUMUPMZUKCANDBNUQUTUSVBVCUSVBFZUQUTF
    ZVCVDVEUMUPVDVEUMFZUNKZUNLZUOIZFUPVDVFVGVIVDVFVEURVAGZHIZFVGVDVKUMVEVDVJULH
    URAVABOPTCDQRVDVHURVAJUOCDSURAVABUAUBUCUNUONUDUEUFUGUHUI $.

  ${
    fnunop.x $e |- ( ph -> X e. _V ) $.
    fnunop.y $e |- ( ph -> Y e. _V ) $.
    fnunop.f $e |- ( ph -> F Fn D ) $.
    fnunop.g $e |- G = ( F u. { <. X , Y >. } ) $.
    fnunop.e $e |- E = ( D u. { X } ) $.
    fnunop.d $e |- ( ph -> -. X e. D ) $.
    $( Extension of a function with a new ordered pair.  (Contributed by NM,
       28-Sep-2013.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    fnunsn $p |- ( ph -> G Fn E ) $=
      ( cop csn cun wfn cvv wcel sylibr cin c0 fnsng syl2anc wn disjsn syl21anc
      wceq fnun fneq1i fneq2i bitri ) ADFGNOZPZBFOZPZQZECQZADBQUMUOQZBUOUAUBUHZ
      UQJAFRSGRSUSHIFGRRUCUDAFBSUEUTMBFUFTBUODUMUIUGURUNCQUQCEUNKUJCUPUNLUKULT
      $.
  $}

  $( Composition of two functions.  (Contributed by NM, 22-May-2006.) $)
  fnco $p |- ( ( F Fn A /\ G Fn B /\ ran G C_ A ) -> ( F o. G ) Fn B ) $=
    ( wfn crn wss w3a ccom wfun cdm wceq fnfun funco syl2an 3adant3 fndm sseq2d
    wa biimpar dmcosseq syl 3adant2 3ad2ant2 eqtrd df-fn sylanbrc ) CAEZDBEZDFZ
    AGZHZCDIZJZUMKZBLUMBEUHUIUNUKUHCJDJUNUIACMBDMCDNOPULUODKZBUHUKUOUPLZUIUHUKS
    UJCKZGZUQUHUSUKUHURAUJACQRTCDUAUBUCUIUHUPBLUKBDQUDUEUMBUFUG $.

  $( A function does not change when restricted to its domain.  (Contributed by
     NM, 5-Sep-2004.) $)
  fnresdm $p |- ( F Fn A -> ( F |` A ) = F ) $=
    ( wfn wrel cdm wss cres wceq fnrel fndm eqimss syl relssres syl2anc ) BACZB
    DBEZAFZBAGBHABIOPAHQABJPAKLBAMN $.

  $( A function restricted to a class disjoint with its domain is empty.
     (Contributed by NM, 23-Sep-2004.) $)
  fnresdisj $p |- ( F Fn A -> ( ( A i^i B ) = (/) <-> ( F |` B ) = (/) ) ) $=
    ( cres c0 wceq cdm wfn wrel wb relres reldm0 ax-mp dmres incom eqtri ineq1d
    cin fndm syl5eq eqeq1d syl5rbb ) CBDZEFZUCGZEFZCAHZABRZEFUCIUDUFJCBKUCLMUGU
    EUHEUGUECGZBRZUHUEBUIRUJCBNBUIOPUGUIABACSQTUAUB $.

  $( Membership in two functions restricted by each other's domain.
     (Contributed by NM, 8-Aug-1994.) $)
  2elresin $p |- ( ( F Fn A /\ G Fn B ) ->
                 ( ( <. x , y >. e. F /\ <. x , z >. e. G ) <->
                   ( <. x , y >. e. ( F |` ( A i^i B ) ) /\
                     <. x , z >. e. ( G |` ( A i^i B ) ) ) ) ) $=
    ( wfn wa cv cop wcel cin cres fnop anim12i vex opres resss sseli wi anbi12d
    an4s elin sylibr biimprd syl ex pm2.43d impbid1 ) FDHZGEHZIZAJZBJZKZFLZUNCJ
    ZKZGLZIZUPFDEMZNZLZUSGVBNZLZIZUMVAVGUMVAVAVGUAZUMVAIZUNVBLZVHVIUNDLZUNELZIZ
    VJUKUQULUTVMUKUQIVKULUTIVLDUNUOFOEUNURGOPUCUNDEUDUEVJVGVAVJVDUQVFUTUNUOFVBB
    QRUNURGVBCQRUBUFUGUHUIVDUQVFUTVCFUPFVBSTVEGUSGVBSTPUJ $.

  $( Restriction of a function with a subclass of its domain.  (Contributed by
     NM, 10-Oct-2007.) $)
  fnssresb $p |- ( F Fn A -> ( ( F |` B ) Fn B <-> B C_ A ) ) $=
    ( cres wfn wfun cdm wceq wa wss df-fn fnfun funres biantrurd ssdmres sseq2d
    syl fndm syl5bbr bitr3d syl5bb ) CBDZBEUBFZUBGBHZIZCAEZBAJZUBBKUFUDUEUGUFUC
    UDUFCFUCACLBCMQNUDBCGZJUFUGBCOUFUHABACRPSTUA $.

  $( Restriction of a function with a subclass of its domain.  (Contributed by
     NM, 2-Aug-1994.) $)
  fnssres $p |- ( ( F Fn A /\ B C_ A ) -> ( F |` B ) Fn B ) $=
    ( wfn cres wss fnssresb biimpar ) CADCBEBDBAFABCGH $.

  $( Restriction of a function's domain with an intersection.  (Contributed by
     NM, 9-Aug-1994.) $)
  fnresin1 $p |- ( F Fn A -> ( F |` ( A i^i B ) ) Fn ( A i^i B ) ) $=
    ( wfn cin wss cres inss1 fnssres mpan2 ) CADABEZAFCKGKDABHAKCIJ $.

  $( Restriction of a function's domain with an intersection.  (Contributed by
     NM, 9-Aug-1994.) $)
  fnresin2 $p |- ( F Fn A -> ( F |` ( B i^i A ) ) Fn ( B i^i A ) ) $=
    ( wfn cin wss cres inss2 fnssres mpan2 ) CADBAEZAFCKGKDBAHAKCIJ $.

  ${
    $d x y A $.  $d x y F $.
    $( An equivalence for functionality of a restriction.  Compare ~ dffun8 .
       (Contributed by Mario Carneiro, 20-May-2015.) $)
    fnres $p |- ( ( F |` A ) Fn A <-> A. x e. A E! y x F y ) $=
      ( cres wfun cdm wa cv wbr wmo wral ancom wal wcel vex mpbiran 3bitr4i wss
      bitri wceq wex wfn wi brres mobii moanimv albii wrel relres dffun6 df-ral
      weu dmres inss1 eqsstri eqss dfss3 elin2 baib eldm syl6bb ralbiia anbi12i
      cin r19.26 df-fn eu5 ralbii ) DCEZFZVJGZCUAZHZAIZBIZDJZBUBZVQBKZHZACLZVJC
      UCVQBUMZACLVSACLZVRACLZHWDWCHVNWAWCWDMVKWCVMWDVOVPVJJZBKZANZVOCOZVSUDZANV
      KWCWFWIAWFWHVQHZBKWIWEWJBWEVQWHHWJVOVPDCBPUEVQWHMTUFWHVQBUGTUHVKVJUIWGDCU
      JABVJUKQVSACULRVMCVLSZWDVMVLCSWKVLCDGZVECDCUNZCWLUOUPVLCUQQWKVOVLOZACLWDA
      CVLURWNVRACWHWNVOWLOZVRWNWHWOVOCWLVLWMUSUTBVODAPVAVBVCTTVDVRVSACVFRVJCVGW
      BVTACVQBVHVIR $.
  $}

  $( Functionality and domain of restricted identity.  (Contributed by NM,
     27-Aug-2004.) $)
  fnresi $p |- ( _I |` A ) Fn A $=
    ( cid cres wfn wfun cdm wceq funi funres ax-mp dmresi df-fn mpbir2an ) BACZ
    ADNEZNFAGBEOHABIJAKNALM $.

  $( A diagonal set as a subset of a Cartesian product.  (Contributed by
     Thierry Arnoux, 29-Dec-2019.) $)
  idssxp $p |- ( _I |` A ) C_ ( A X. A ) $=
    ( cid cres cdm crn cxp wfn wss fnresi fnrel relssdmrn dmresi rnresi xpeq12i
    wrel mp2b sseqtri ) BACZRDZREZFZAAFRAGRORUAHAIARJRKPSATAALAMNQ $.

  $( The image of a function's domain is its range.  (Contributed by NM,
     4-Nov-2004.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  fnima $p |- ( F Fn A -> ( F " A ) = ran F ) $=
    ( wfn cima cres crn df-ima fnresdm rneqd syl5eq ) BACZBADBAEZFBFBAGKLBABHIJ
    $.

  $( A function with empty domain is empty.  (Contributed by NM, 15-Apr-1998.)
     (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  fn0 $p |- ( F Fn (/) <-> F = (/) ) $=
    ( c0 wfn wceq wrel cdm fnrel fndm reldm0 biimpar syl2anc wfun fun0 mpbir2an
    dm0 df-fn fneq1 mpbiri impbii ) ABCZABDZTAEZAFBDZUABAGBAHUBUAUCAIJKUATBBCZU
    DBLBFBDMOBBPNBABQRS $.

  $( A class that is disjoint with the domain of a function has an empty image
     under the function.  (Contributed by FL, 24-Jan-2007.) $)
  fnimadisj $p |- ( ( F Fn A /\ ( A i^i C ) = (/) ) -> ( F " C ) = (/) ) $=
    ( wfn cin c0 wceq wa cdm cima fndm ineq1d eqeq1d biimpar imadisj sylibr ) C
    ADZABEZFGZHCIZBEZFGZCBJFGQUBSQUARFQTABACKLMNCBOP $.

  $( Images under a function never map nonempty sets to empty sets.
     _EDITORIAL_: usable in ~ fnwe2lem2 .  (Contributed by Stefan O'Rear,
     21-Jan-2015.) $)
  fnimaeq0 $p |- ( ( F Fn A /\ B C_ A ) ->
      ( ( F " B ) = (/) <-> B = (/) ) ) $=
    ( cima c0 wceq cdm cin wfn wa imadisj incom fndm sseq2d biimpar df-ss sylib
    wss syl5eq eqeq1d syl5bb ) CBDEFCGZBHZEFCAIZBARZJZBEFCBKUFUCBEUFUCBUBHZBUBB
    LUFBUBRZUGBFUDUHUEUDUBABACMNOBUBPQSTUA $.

  ${
    $d y z A $.  $d y z B $.  $d x y z $.
    $( Alternate definition for the "maps to" notation ~ df-mpt .  (Contributed
       by Mario Carneiro, 30-Dec-2016.) $)
    dfmpt3 $p |- ( x e. A |-> B ) = U_ x e. A ( { x } X. { B } ) $=
      ( vy vz cmpt cv wcel wceq copab csn cxp ciun df-mpt cop wex anbi2i 2exbii
      wa velsn eliunxp elopab 3bitr4i eqriv eqtr4i ) ABCFAGZBHZDGZCIZSZADJZABUF
      KCKZLMZADBCNEUMUKEGZUFUHOIZUGUHULHZSZSZDPAPUOUJSZDPAPUNUMHUNUKHURUSADUQUJ
      UOUPUIUGDCTQQRADBULUNUAUJADUNUBUCUDUE $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    mptfnf.0 $e |- F/_ x A $.
    $( The maps-to notation defines a function with domain.  (Contributed by
       Scott Fenton, 21-Mar-2011.)  (Revised by Thierry Arnoux,
       10-May-2017.) $)
    mptfnf $p |- ( A. x e. A B e. _V <-> ( x e. A |-> B ) Fn A ) $=
      ( vy wcel wral cv wceq wfn ralbii wex wmo wa wal wi albii df-ral 3bitr4ri
      cab cvv weu cmpt eueq r19.26 eu5 copab wfun cdm df-mpt fneq1i df-fn bitri
      moanimv funopab eqcom dmopab 19.42v abbii eqeq1i wb pm4.71 abeq2f 3bitr4i
      eqtri anbi12i ancom 3bitr2i bitr4i ) CUAFZABGEHCIZEUBZABGZABCUCZBJZVJVLAB
      ECUDKVKELZVKEMZNZABGVPABGZVQABGZNZVMVOVPVQABUEVLVRABVKEUFKVOAHBFZVKNZAEUG
      ZUHZWDUIZBIZNZVTVSNWAVOWDBJWHBVNWDAEBCUJUKWDBULUMVTWEVSWGWCEMZAOWBVQPZAOW
      EVTWIWJAWBVKEUNQWCAEUOVQABRSWBVPNZATZBIBWLIZWGVSWLBUPWFWLBWFWCELZATWLWCAE
      UQWNWKAWBVKEURUSVEUTWBVPPZAOWBWKVAZAOVSWMWOWPAWBVPVBQVPABRWKABDVCVDSVFVTV
      SVGVHSVI $.

    $( The maps-to notation defines a function with domain.  (Contributed by
       NM, 9-Apr-2013.)  (Revised by Thierry Arnoux, 10-May-2017.) $)
    fnmptf $p |- ( A. x e. A B e. V -> ( x e. A |-> B ) Fn A ) $=
      ( wcel wral cvv cmpt wfn elex ralimi mptfnf sylib ) CDFZABGCHFZABGABCIBJO
      PABCDKLABCEMN $.
  $}

  ${
    $d x y A $.
    fnopabg.1 $e |- F = { <. x , y >. | ( x e. A /\ ph ) } $.
    $( Functionality and domain of an ordered-pair class abstraction.
       (Contributed by NM, 30-Jan-2004.)  (Proof shortened by Mario Carneiro,
       4-Dec-2016.) $)
    fnopabg $p |- ( A. x e. A E! y ph <-> F Fn A ) $=
      ( wmo wex wa wral cv wcel copab wfn weu wfun cdm wceq wal 3bitr4i moanimv
      wi albii funopab df-ral 3bitr4ri dmopab3 anbi12i r19.26 df-fn ancom bitri
      eu5 ralbii fneq1i ) ACGZACHZIZBDJZBKDLZAIZBCMZDNZACOZBDJEDNUPBDJZUQBDJZIV
      BPZVBQDRZIUSVCVEVGVFVHVACGZBSUTUPUBZBSVGVEVIVJBUTACUAUCVABCUDUPBDUEUFABCD
      UGUHUPUQBDUIVBDUJTVDURBDVDUQUPIURACUMUQUPUKULUNDEVBFUOT $.
  $}

  ${
    $d x y A $.
    fnopab.1 $e |- ( x e. A -> E! y ph ) $.
    fnopab.2 $e |- F = { <. x , y >. | ( x e. A /\ ph ) } $.
    $( Functionality and domain of an ordered-pair class abstraction.
       (Contributed by NM, 5-Mar-1996.) $)
    fnopab $p |- F Fn A $=
      ( weu wral wfn rgen fnopabg mpbi ) ACHZBDIEDJNBDFKABCDEGLM $.
  $}

  ${
    $d x y A $.  $d y B $.
    mptfng.1 $e |- F = ( x e. A |-> B ) $.
    $( The maps-to notation defines a function with domain.  (Contributed by
       Scott Fenton, 21-Mar-2011.) $)
    mptfng $p |- ( A. x e. A B e. _V <-> F Fn A ) $=
      ( vy cvv wcel wral cv wceq weu wfn eueq ralbii cmpt wa copab df-mpt eqtri
      fnopabg bitri ) CGHZABIFJCKZFLZABIDBMUCUEABFCNOUDAFBDDABCPAJBHUDQAFREAFBC
      STUAUB $.

    $( The maps-to notation defines a function with domain.  (Contributed by
       NM, 9-Apr-2013.) $)
    fnmpt $p |- ( A. x e. A B e. V -> F Fn A ) $=
      ( wcel wral cvv wfn elex ralimi mptfng sylib ) CEGZABHCIGZABHDBJOPABCEKLA
      BCDFMN $.
  $}

  $( A mapping operation with empty domain.  (Contributed by Mario Carneiro,
     28-Dec-2014.) $)
  mpt0 $p |- ( x e. (/) |-> A ) = (/) $=
    ( c0 cmpt wfn wceq cvv wcel wral ral0 eqid fnmpt ax-mp fn0 mpbi ) ACBDZCEZP
    CFBGHZACIQRAJACBPGPKLMPNO $.

  ${
    $d x A $.
    fnmpti.1 $e |- B e. _V $.
    fnmpti.2 $e |- F = ( x e. A |-> B ) $.
    $( Functionality and domain of an ordered-pair class abstraction.
       (Contributed by NM, 29-Jan-2004.)  (Revised by Mario Carneiro,
       31-Aug-2015.) $)
    fnmpti $p |- F Fn A $=
      ( cvv wcel wral wfn rgenw mptfng mpbi ) CGHZABIDBJNABEKABCDFLM $.

    $( Domain of the mapping operation.  (Contributed by NM, 6-Sep-2005.)
       (Revised by Mario Carneiro, 31-Aug-2015.) $)
    dmmpti $p |- dom F = A $=
      ( wfn cdm wceq fnmpti fndm ax-mp ) DBGDHBIABCDEFJBDKL $.
  $}

  ${
    $d B x $.  $d ph x $.
    dmmptd.a $e |- A = ( x e. B |-> C ) $.
    dmmptd.c $e |- ( ( ph /\ x e. B ) -> C e. V ) $.
    $( The domain of the mapping operation, deduction form.  (Contributed by
       Glauco Siliprandi, 11-Dec-2019.) $)
    dmmptd $p |- ( ph -> dom A = B ) $=
      ( cvv wcel crab cdm wral wceq cv wa elex syl ralrimiva rabid2 syl6reqr
      sylibr dmmpt ) ADEIJZBDKZCLAUDBDMDUENAUDBDABODJPEFJUDHEFQRSUDBDTUBBDECGUC
      UA $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    $( Union of mappings which are mutually compatible.  (Contributed by Mario
       Carneiro, 31-Aug-2015.) $)
    mptun $p |- ( x e. ( A u. B ) |-> C ) =
        ( ( x e. A |-> C ) u. ( x e. B |-> C ) ) $=
      ( vy cmpt cv wcel wceq wa copab df-mpt uneq12i wo elun anbi1i andir bitri
      cun eqtr4i opabbii unopab ) ABCSZDFAGZUCHZEGDIZJZAEKZABDFZACDFZSZAEUCDLUK
      UDBHZUFJZAEKZUDCHZUFJZAEKZSZUHUIUNUJUQAEBDLAECDLMUHUMUPNZAEKURUGUSAEUGULU
      ONZUFJUSUEUTUFUDBCOPULUOUFQRUAUMUPAEUBTTT $.
  $}

  $( Equality theorem for functions.  (Contributed by NM, 1-Aug-1994.) $)
  feq1 $p |- ( F = G -> ( F : A --> B <-> G : A --> B ) ) $=
    ( wceq wfn crn wss wa wf fneq1 rneq sseq1d anbi12d df-f 3bitr4g ) CDEZCAFZC
    GZBHZIDAFZDGZBHZIABCJABDJQRUATUCACDKQSUBBCDLMNABCOABDOP $.

  $( Equality theorem for functions.  (Contributed by NM, 1-Aug-1994.) $)
  feq2 $p |- ( A = B -> ( F : A --> C <-> F : B --> C ) ) $=
    ( wceq wfn crn wss wa wf fneq2 anbi1d df-f 3bitr4g ) ABEZDAFZDGCHZIDBFZQIAC
    DJBCDJOPRQABDKLACDMBCDMN $.

  $( Equality theorem for functions.  (Contributed by NM, 1-Aug-1994.) $)
  feq3 $p |- ( A = B -> ( F : C --> A <-> F : C --> B ) ) $=
    ( wceq wfn crn wss wa wf sseq2 anbi2d df-f 3bitr4g ) ABEZDCFZDGZAHZIPQBHZIC
    ADJCBDJORSPABQKLCADMCBDMN $.

  $( Equality theorem for functions.  (Contributed by FL, 14-Jul-2007.)  (Proof
     shortened by Andrew Salmon, 17-Sep-2011.) $)
  feq23 $p |- ( ( A = C /\ B = D ) -> ( F : A --> B <-> F : C --> D ) ) $=
    ( wceq wf feq2 feq3 sylan9bb ) ACFABEGCBEGBDFCDEGACBEHBDCEIJ $.

  ${
    feq1d.1 $e |- ( ph -> F = G ) $.
    $( Equality deduction for functions.  (Contributed by NM, 19-Feb-2008.) $)
    feq1d $p |- ( ph -> ( F : A --> B <-> G : A --> B ) ) $=
      ( wceq wf wb feq1 syl ) ADEGBCDHBCEHIFBCDEJK $.
  $}

  ${
    feq2d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for functions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    feq2d $p |- ( ph -> ( F : A --> C <-> F : B --> C ) ) $=
      ( wceq wf wb feq2 syl ) ABCGBDEHCDEHIFBCDEJK $.

    $( Equality deduction for functions.  (Contributed by AV, 1-Jan-2020.) $)
    feq3d $p |- ( ph -> ( F : X --> A <-> F : X --> B ) ) $=
      ( wceq wf wb feq3 syl ) ABCGEBDHECDHIFBCEDJK $.
  $}

  ${
    feq12d.1 $e |- ( ph -> F = G ) $.
    feq12d.2 $e |- ( ph -> A = B ) $.
    $( Equality deduction for functions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    feq12d $p |- ( ph -> ( F : A --> C <-> G : B --> C ) ) $=
      ( wf feq1d feq2d bitrd ) ABDEIBDFICDFIABDEFGJABCDFHKL $.

    feq123d.3 $e |- ( ph -> C = D ) $.
    $( Equality deduction for functions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    feq123d $p |- ( ph -> ( F : A --> C <-> G : B --> D ) ) $=
      ( wf feq12d feq3d bitrd ) ABDFKCDGKCEGKABCDFGHILADEGCJMN $.
  $}

  $( Equality theorem for functions.  (Contributed by FL, 16-Nov-2008.) $)
  feq123 $p |- ( ( F = G /\ A = C /\ B = D ) ->
    ( F : A --> B <-> G : C --> D ) ) $=
    ( wceq w3a simp1 simp2 simp3 feq123d ) EFGZACGZBDGZHACBDEFMNOIMNOJMNOKL $.

  ${
    feq1i.1 $e |- F = G $.
    $( Equality inference for functions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    feq1i $p |- ( F : A --> B <-> G : A --> B ) $=
      ( wceq wf wb feq1 ax-mp ) CDFABCGABDGHEABCDIJ $.
  $}

  ${
    feq2i.1 $e |- A = B $.
    $( Equality inference for functions.  (Contributed by NM, 5-Sep-2011.) $)
    feq2i $p |- ( F : A --> C <-> F : B --> C ) $=
      ( wceq wf wb feq2 ax-mp ) ABFACDGBCDGHEABCDIJ $.
  $}

  ${
    feq12i.1 $e |- F = G $.
    feq12i.2 $e |- A = B $.
    $( Equality inference for functions.  (Contributed by AV, 7-Feb-2021.) $)
    feq12i $p |- ( F : A --> C <-> G : B --> C ) $=
      ( wceq wf wb eqid feq123 mp3an ) DEHABHCCHACDIBCEIJFGCKACBCDELM $.
  $}

  ${
    feq23i.1 $e |- A = C $.
    feq23i.2 $e |- B = D $.
    $( Equality inference for functions.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    feq23i $p |- ( F : A --> B <-> F : C --> D ) $=
      ( wceq wf wb feq23 mp2an ) ACHBDHABEICDEIJFGABCDEKL $.
  $}

  ${
    feq23d.1 $e |- ( ph -> A = C ) $.
    feq23d.2 $e |- ( ph -> B = D ) $.
    $( Equality deduction for functions.  (Contributed by NM, 8-Jun-2013.) $)
    feq23d $p |- ( ph -> ( F : A --> B <-> F : C --> D ) ) $=
      ( eqidd feq123d ) ABDCEFFAFIGHJ $.
  $}

  ${
    nff.1 $e |- F/_ x F $.
    nff.2 $e |- F/_ x A $.
    nff.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for a mapping.  (Contributed by NM,
       29-Jan-2004.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nff $p |- F/ x F : A --> B $=
      ( wf wfn crn wss wa df-f nffn nfrn nfss nfan nfxfr ) BCDHDBIZDJZCKZLABCDM
      SUAAABDEFNATCADEOGPQR $.
  $}

  ${
    $d V x $.  $d X x $.
    $( Distribute proper substitution through the function predicate with a
       domain.  (Contributed by Alexander van der Vekens, 15-Jul-2018.) $)
    sbcfng $p |- ( X e. V -> ( [. X / x ]. F Fn A
                              <-> [_ X / x ]_ F Fn [_ X / x ]_ A ) ) $=
      ( wcel wfn wsbc wfun cdm wa csb wb df-fn a1i sbcbidv sbcfung sbceqg csbdm
      wceq eqeq1i syl6bb anbi12d sbcan 3bitr4g bitrd ) EDFZCBGZAEHCIZCJZBTZKZAE
      HZAECLZAEBLZGZUGUHULAEUHULMUGCBNOPUGUIAEHZUKAEHZKUNIZUNJZUOTZKUMUPUGUQUSU
      RVAAECDQUGURAEUJLZUOTVAAEUJBDRVBUTUOAECSUAUBUCUIUKAEUDUNUONUEUF $.

    $( Distribute proper substitution through the function predicate with
       domain and codomain.  (Contributed by Alexander van der Vekens,
       15-Jul-2018.) $)
    sbcfg $p |- ( X e. V -> ( [. X / x ]. F : A --> B
                 <-> [_ X / x ]_ F : [_ X / x ]_ A --> [_ X / x ]_ B ) ) $=
      ( wcel wf wsbc wfn crn wss wa csb wb df-f a1i sbcbidv sbcfng sbcssg csbrn
      sseq1i syl6bb anbi12d sbcan 3bitr4g bitrd ) FEGZBCDHZAFIDBJZDKZCLZMZAFIZA
      FBNZAFCNZAFDNZHZUHUIUMAFUIUMOUHBCDPQRUHUJAFIZULAFIZMUQUOJZUQKZUPLZMUNURUH
      USVAUTVCABDEFSUHUTAFUKNZUPLVCAFUKCETVDVBUPAFDUAUBUCUDUJULAFUEUOUPUQPUFUG
      $.
  $}

  ${
    elimf.1 $e |- G : A --> B $.
    $( Eliminate a mapping hypothesis for the weak deduction theorem ~ dedth ,
       when a special case ` G : A --> B ` is provable, in order to convert
       ` F : A --> B ` from a hypothesis to an antecedent.  (Contributed by NM,
       24-Aug-2006.) $)
    elimf $p |- if ( F : A --> B , F , G ) : A --> B $=
      ( wf cif feq1 elimhyp ) ABCFZABJCDGZFABDFCDABCKHABDKHEI $.
  $}

  $( A mapping is a function with domain.  (Contributed by NM, 2-Aug-1994.) $)
  ffn $p |- ( F : A --> B -> F Fn A ) $=
    ( wf wfn crn wss df-f simplbi ) ABCDCAECFBGABCHI $.

  ${
    ffnd.1 $e |- ( ph -> F : A --> B ) $.
    $( A mapping is a function with domain, deduction form.  (Contributed by
       Glauco Siliprandi, 17-Aug-2020.) $)
    ffnd $p |- ( ph -> F Fn A ) $=
      ( wf wfn ffn syl ) ABCDFDBGEBCDHI $.
  $}

  $( Any function is a mapping into ` _V ` .  (Contributed by NM, 31-Oct-1995.)
     (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  dffn2 $p |- ( F Fn A <-> F : A --> _V ) $=
    ( wfn crn cvv wss wa wf ssv biantru df-f bitr4i ) BACZMBDZEFZGAEBHOMNIJAEBK
    L $.

  $( A mapping is a function.  (Contributed by NM, 3-Aug-1994.) $)
  ffun $p |- ( F : A --> B -> Fun F ) $=
    ( wf wfn wfun ffn fnfun syl ) ABCDCAECFABCGACHI $.

  ${
    ffund.1 $e |- ( ph -> F : A --> B ) $.
    $( A mapping is a function, deduction version.  (Contributed by Glauco
       Siliprandi, 3-Mar-2021.) $)
    ffund $p |- ( ph -> Fun F ) $=
      ( wf wfun ffun syl ) ABCDFDGEBCDHI $.
  $}

  $( A mapping is a relation.  (Contributed by NM, 3-Aug-1994.) $)
  frel $p |- ( F : A --> B -> Rel F ) $=
    ( wf wfn wrel ffn fnrel syl ) ABCDCAECFABCGACHI $.

  $( The domain of a mapping.  (Contributed by NM, 2-Aug-1994.) $)
  fdm $p |- ( F : A --> B -> dom F = A ) $=
    ( wf wfn cdm wceq ffn fndm syl ) ABCDCAECFAGABCHACIJ $.

  ${
    fdmi.1 $e |- F : A --> B $.
    $( The domain of a mapping.  (Contributed by NM, 28-Jul-2008.) $)
    fdmi $p |- dom F = A $=
      ( wf cdm wceq fdm ax-mp ) ABCECFAGDABCHI $.
  $}

  $( The range of a mapping.  (Contributed by NM, 3-Aug-1994.) $)
  frn $p |- ( F : A --> B -> ran F C_ B ) $=
    ( wf wfn crn wss df-f simprbi ) ABCDCAECFBGABCHI $.

  $( A function maps to its range.  (Contributed by NM, 1-Sep-1999.) $)
  dffn3 $p |- ( F Fn A <-> F : A --> ran F ) $=
    ( wfn crn wss wa wf ssid biantru df-f bitr4i ) BACZLBDZMEZFAMBGNLMHIAMBJK
    $.

  $( A function maps to its range.  (Contributed by Glauco Siliprandi,
     3-Mar-2021.) $)
  ffrn $p |- ( F : A --> B -> F : A --> ran F ) $=
    ( wf wfn crn ffn dffn3 sylib ) ABCDCAEACFCDABCGACHI $.

  $( Expanding the codomain of a mapping.  (Contributed by NM, 10-May-1998.)
     (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  fss $p |- ( ( F : A --> B /\ B C_ C ) -> F : A --> C ) $=
    ( wss wf wfn crn wa sstr2 com12 anim2d df-f 3imtr4g impcom ) BCEZABDFZACDFZ
    PDAGZDHZBEZISTCEZIQRPUAUBSUAPUBTBCJKLABDMACDMNO $.

  ${
    fssd.f $e |- ( ph -> F : A --> B ) $.
    fssd.b $e |- ( ph -> B C_ C ) $.
    $( Expanding the codomain of a mapping, deduction form.  (Contributed by
       Glauco Siliprandi, 11-Dec-2019.) $)
    fssd $p |- ( ph -> F : A --> C ) $=
      ( wf wss fss syl2anc ) ABCEHCDIBDEHFGBCDEJK $.
  $}

  $( Composition of two mappings.  (Contributed by NM, 29-Aug-1999.)  (Proof
     shortened by Andrew Salmon, 17-Sep-2011.) $)
  fco $p |- ( ( F : B --> C /\ G : A --> B ) -> ( F o. G ) : A --> C ) $=
    ( wf wa ccom wfn crn wss df-f wi fnco 3expib adantr rncoss sstr mpan adantl
    jctird imp syl2anb sylibr ) BCDFZABEFZGDEHZAIZUGJZCKZGZACUGFUEDBIZDJZCKZGZE
    AIZEJBKZGZUKUFBCDLABELUOURUKUOURUHUJULURUHMUNULUPUQUHBADENOPUNUJULUIUMKUNUJ
    DEQUIUMCRSTUAUBUCACUGLUD $.

  $( Functionality of a composition with weakened out of domain condition on
     the first argument.  (Contributed by Stefan O'Rear, 11-Mar-2015.) $)
  fco2 $p |- ( ( ( F |` B ) : B --> C /\ G : A --> B ) ->
      ( F o. G ) : A --> C ) $=
    ( cres wf wa ccom fco wceq crn wss frn cores syl adantl feq1d mpbid ) BCDBF
    ZGZABEGZHZACTEIZGACDEIZGABCTEJUCACUDUEUBUDUEKZUAUBELBMUFABENDEBOPQRS $.

  $( A mapping is a class of ordered pairs.  (Contributed by NM, 3-Aug-1994.)
     (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  fssxp $p |- ( F : A --> B -> F C_ ( A X. B ) ) $=
    ( wf cdm crn cxp wrel wss frel relssdmrn syl wceq fdm eqimss xpss12 syl2anc
    frn sstrd ) ABCDZCCEZCFZGZABGZTCHCUCIABCJCKLTUAAIZUBBIUCUDITUAAMUEABCNUAAOL
    ABCRUAAUBBPQS $.

  $( Two ways of specifying a partial function from ` A ` to ` B ` .
     (Contributed by NM, 13-Nov-2007.) $)
  funssxp $p |- ( ( Fun F /\ F C_ ( A X. B ) ) <->
             ( F : dom F --> B /\ dom F C_ A ) ) $=
    ( wfun cxp wss wa cdm wf wfn funfn biimpi rnss rnxpss syl6ss anim12i sylibr
    crn df-f jca dmss dmxpss adantl ffun adantr fssxp xpss1 sylan9ss impbii ) C
    DZCABEZFZGZCHZBCIZUNAFZGZUMUOUPUMCUNJZCRZBFZGUOUJURULUTUJURCKLULUSUKRBCUKMA
    BNOPUNBCSQULUPUJULUNUKHACUKUAABUBOUCTUQUJULUOUJUPUNBCUDUEUOUPCUNBEUKUNBCUFU
    NABUGUHTUI $.

  $( A mapping is a partial function.  (Contributed by NM, 25-Nov-2007.) $)
  ffdm $p |- ( F : A --> B -> ( F : dom F --> B /\ dom F C_ A ) ) $=
    ( wf cdm wss fdm feq2d ibir wceq eqimss syl jca ) ABCDZCEZBCDZOAFZNPNOABCAB
    CGZHINOAJQROAKLM $.

  ${
    ffdmd.1 $e |- ( ph -> F : A --> B ) $.
    $( The domain of a function.  (Contributed by Glauco Siliprandi,
       26-Jun-2021.) $)
    ffdmd $p |- ( ph -> F : dom F --> B ) $=
      ( cdm wf wss wa ffdm syl simpld ) ADFZCDGZMBHZABCDGNOIEBCDJKL $.
  $}

  $( A different way to write ` F ` is a function.  (Contributed by Thierry
     Arnoux, 7-Dec-2016.) $)
  fdmrn $p |- ( Fun F <-> F : dom F --> ran F ) $=
    ( cdm crn wf wfn wfun wss ssid df-f mpbiran2 wceq eqid df-fn bitr2i ) ABZAC
    ZADZAOEZAFZQRPPGPHOPAIJRSOOKOLAOMJN $.

  $( The members of an ordered pair element of a mapping belong to the
     mapping's domain and codomain.  (Contributed by NM, 10-Dec-2003.)
     (Revised by Mario Carneiro, 26-Apr-2015.) $)
  opelf $p |- ( ( F : A --> B /\ <. C , D >. e. F ) ->
              ( C e. A /\ D e. B ) ) $=
    ( wf cop wcel wa cxp fssxp sseld opelxp syl6ib imp ) ABEFZCDGZEHZCAHDBHIZPR
    QABJZHSPETQABEKLCDABMNO $.

  $( The union of two functions with disjoint domains.  (Contributed by NM,
     22-Sep-2004.) $)
  fun $p |- ( ( ( F : A --> C /\ G : B --> D ) /\ ( A i^i B ) = (/) ) ->
             ( F u. G ) : ( A u. B ) --> ( C u. D ) ) $=
    ( cin c0 wceq wf wa cun wfn crn wss fnun expcom wi rnun df-f unss12 anim12d
    syl5eqss a1i anbi12i an4 bitri 3imtr4g impcom ) ABGHIZACEJZBDFJZKZABLZCDLZE
    FLZJZUJEAMZFBMZKZENZCOZFNZDOZKZKZUPUNMZUPNZUOOZKUMUQUJUTVGVEVIUTUJVGABEFPQV
    EVIRUJVEVHVAVCLUOEFSVACVCDUAUCUDUBUMURVBKZUSVDKZKVFUKVJULVKACETBDFTUEURVBUS
    VDUFUGUNUOUPTUHUI $.

  $( The union of two functions with disjoint domains.  (Contributed by Mario
     Carneiro, 12-Mar-2015.) $)
  fun2 $p |- ( ( ( F : A --> C /\ G : B --> C ) /\ ( A i^i B ) = (/) ) ->
             ( F u. G ) : ( A u. B ) --> C ) $=
    ( wf wa cin c0 wceq cun fun wb unidm feq3 ax-mp sylib ) ACDFBCEFGABHIJGABKZ
    CCKZDEKZFZRCTFZABCCDELSCJUAUBMCNSCRTOPQ $.

  ${
    fun2d.f $e |- ( ph -> F : A --> C ) $.
    fun2d.g $e |- ( ph -> G : B --> C ) $.
    fun2d.i $e |- ( ph -> ( A i^i B ) = (/) ) $.
    $( The union of functions with disjoint domains is a function, deduction
       version of ~ fun2 .  (Contributed by AV, 11-Oct-2020.)  (Revised by AV,
       24-Oct-2021.) $)
    fun2d $p |- ( ph -> ( F u. G ) : ( A u. B ) --> C ) $=
      ( wf cin c0 wceq cun fun2 syl21anc ) ABDEJCDFJBCKLMBCNDEFNJGHIBCDEFOP $.
  $}

  $( Composition of two functions.  (Contributed by NM, 22-May-2006.) $)
  fnfco $p |- ( ( F Fn A /\ G : B --> A ) -> ( F o. G ) Fn B ) $=
    ( wf wfn crn wss wa ccom df-f fnco 3expb sylan2b ) BADECAFZDBFZDGAHZICDJBFZ
    BADKOPQRABCDLMN $.

  $( Restriction of a function with a subclass of its domain.  (Contributed by
     NM, 23-Sep-2004.) $)
  fssres $p |- ( ( F : A --> B /\ C C_ A ) -> ( F |` C ) : C --> B ) $=
    ( wf wss cres wfn crn df-f fnssres resss rnss ax-mp sstr mpan anim12i an32s
    wa sylanb sylibr ) ABDEZCAFZSDCGZCHZUDIZBFZSZCBUDEUBDAHZDIZBFZSUCUHABDJUIUC
    UKUHUIUCSUEUKUGACDKUFUJFZUKUGUDDFULDCLUDDMNUFUJBOPQRTCBUDJUA $.

  ${
    fssresd.1 $e |- ( ph -> F : A --> B ) $.
    fssresd.2 $e |- ( ph -> C C_ A ) $.
    $( Restriction of a function with a subclass of its domain, deduction form.
       (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
    fssresd $p |- ( ph -> ( F |` C ) : C --> B ) $=
      ( wf wss cres fssres syl2anc ) ABCEHDBIDCEDJHFGBCDEKL $.
  $}

  $( Restriction of a restricted function with a subclass of its domain.
     (Contributed by NM, 21-Jul-2005.) $)
  fssres2 $p |- ( ( ( F |` A ) : A --> B /\ C C_ A ) ->
                ( F |` C ) : C --> B ) $=
    ( cres wf wss wa fssres wb resabs1 feq1d adantl mpbid ) ABDAEZFZCAGZHCBOCEZ
    FZCBDCEZFZABCOIQSUAJPQCBRTDCAKLMN $.

  $( An identity for the mapping relationship under restriction.  (Contributed
     by Scott Fenton, 4-Sep-2011.)  (Proof shortened by Mario Carneiro,
     26-May-2016.) $)
  fresin $p |- ( F : A --> B -> ( F |` X ) : ( A i^i X ) --> B ) $=
    ( wf cin cres wss inss1 fssres mpan2 resres wfn ffn fnresdm reseq1d syl5eqr
    wceq syl feq1d mpbid ) ABCEZADFZBCUCGZEZUCBCDGZEUBUCAHUEADIABUCCJKUBUCBUDUF
    UBUDCAGZDGUFCADLUBUGCDUBCAMUGCRABCNACOSPQTUA $.

  $( If two functions agree on their common domain, express their union as a
     union of three functions with pairwise disjoint domains.  (Contributed by
     Stefan O'Rear, 9-Oct-2014.) $)
  resasplit $p |- ( ( F Fn A /\ G Fn B /\
      ( F |` ( A i^i B ) ) = ( G |` ( A i^i B ) ) ) -> ( F u. G ) =
  ( ( F |` ( A i^i B ) ) u. ( ( F |` ( A \ B ) ) u. ( G |` ( B \ A ) ) ) ) ) $=
    ( wfn cin cres w3a cun fnresdm uneq12 syl2an inundif reseq2i resundi eqtr3i
    wceq cdif uneq1i syl6eq 3adant3 simp3 uneq1d uneq2d incom eqtri uneq12i un4
    syl6reqr unidm eqtr3d ) CAEZDBEZCABFZGZDUNGZQZHZCAGZDBGZIZCDIZUOCABRZGZDBAR
    ZGZIZIZULUMVAVBQZUQULUSCQUTDQVIUMACJBDJUSCUTDKLUAURVAUOUOIZVGIZVHURVAUOVDIZ
    UOVFIZIZVKURVNVLUPVFIZIVAURVMVOVLURUOUPVFULUMUQUBUCUDUSVLUTVOCUNVCIZGUSVLVP
    ACABMNCUNVCOPDUNVEIZGUTVOVQBDVQBAFZVEIBUNVRVEABUESBAMUFNDUNVEOPUGUIUOVDUOVF
    UHTVJUOVGUOUJSTUK $.

  $( The union of two functions which agree on their common domain is a
     function.  (Contributed by Stefan O'Rear, 9-Oct-2014.) $)
  fresaun $p |- ( ( F : A --> C /\ G : B --> C /\
      ( F |` ( A i^i B ) ) = ( G |` ( A i^i B ) ) ) ->
    ( F u. G ) : ( A u. B ) --> C ) $=
    ( wf cin cres wceq cdif cun c0 wss fssres sylancl difss disjdif 3eqtri fun2
    a1i w3a simp1 inss1 simp2 indifdir difeq1i 0dif syl21anc inass ineq2i incom
    indi in0 ineq1i eqtri uneq12i un0 wfn id resasplit syl3an feq1d un12 uneq1i
    ffn inundif uneq2i undif1 feq2i syl6rbbr mpbid ) ACDFZBCEFZDABGZHZEVNHIZUAZ
    VNABJZBAJZKZKZCVODVRHZEVSHZKZKZFZABKZCDEKZFZVQVNCVOFZVTCWDFZVNVTGZLIZWFVQVL
    VNAMWJVLVMVPUBZABUCACVNDNOVQVRCWBFZVSCWCFZVRVSGZLIZWKVQVLVRAMWOWNABPACVRDNO
    VQVMVSBMWPVLVMVPUDBAPBCVSENOWRVQWQAVSGZBVSGZJLWTJLABVSUEWSLWTABQZUFWTUGRTVR
    VSCWBWCSUHWMVQWLVNVRGZVNVSGZKLLKLVNVRVSULXBLXCLXBABVRGZGALGLABVRUIXDLABAQUJ
    AUMRXCBAGZVSGZLVNXEVSABUKZUNXFBWSGBLGLBAVSUIWSLBXAUJBUMRUOUPLUQRTVNVTCVOWDS
    UHVQWIWGCWEFWFVQWGCWHWEVLDAURVMEBURVPVPWHWEIACDVEBCEVEVPUSABDEUTVAVBWAWGCWE
    WAVRVNVSKZKVRBKWGVNVRVSVCXHBVRXHXEVSKBVNXEVSXGVDBAVFUOVGABVHRVIVJVK $.

  $( From the union of two functions that agree on the domain overlap, either
     component can be recovered by restriction.  (Contributed by Stefan O'Rear,
     9-Oct-2014.) $)
  fresaunres2 $p |- ( ( F : A --> C /\ G : B --> C /\
      ( F |` ( A i^i B ) ) = ( G |` ( A i^i B ) ) ) ->
    ( ( F u. G ) |` B ) = G ) $=
    ( wf cin cres wceq cun cdif wfn ffn resundir wss ax-mp c0 cdm eqtri syl5eq
    w3a id resasplit syl3an reseq1d inss2 resabs2 uneq12i ineq2i disjdif ineq1i
    dmres inass inss1 0ss eqssi 3eqtr3i wrel wb relres reldm0 mpbir difss simp3
    uneq2i uneq1d wa uncom un0 resundi incom uneq1i inundif reseq2i fnresdm syl
    adantl syl5eqr 3adant3 eqtrd ) ACDFZBCEFZDABGZHZEWCHZIZUAZDEJZBHWDDABKZHZEB
    AKZHZJZJZBHZEWGWHWNBWADALWBEBLZWFWFWHWNIACDMBCEMZWFUBABDEUCUDUEWGWOWDBHZWMB
    HZJZEWDWMBNWGWTWDWJBHZWLBHZJZJZEWRWDWSXCWCBOWRWDIABUFDWCBUGPWJWLBNUHWGXDWDQ
    WLJZJZEXCXEWDXAQXBWLXAQIZXARZQIZXHBWJRZGZQWJBULXKBWIDRZGZGZQXJXMBDWIULUIBWI
    GZXLGQXLGZXNQXOQXLBAUJUKBWIXLUMXPQQXLUNXPUOUPUQSSXAURXGXIUSWJBUTXAVAPVBWKBO
    XBWLIBAVCEWKBUGPUHVEWGXFWEXEJZEWGWDWEXEWAWBWFVDVFWAWBXQEIWFWAWBVGZXQWEWLJZE
    XEWLWEXEWLQJWLQWLVHWLVISVEXRXSEWCWKJZHZEEWCWKVJXRYAEBHZEXTBEXTBAGZWKJBWCYCW
    KABVKVLBAVMSVNWBYBEIZWAWBWPYDWQBEVOVPVQTVRTVSVTTTTVT $.

  $( From the union of two functions that agree on the domain overlap, either
     component can be recovered by restriction.  (Contributed by Mario
     Carneiro, 16-Feb-2015.) $)
  fresaunres1 $p |- ( ( F : A --> C /\ G : B --> C /\
      ( F |` ( A i^i B ) ) = ( G |` ( A i^i B ) ) ) ->
    ( ( F u. G ) |` A ) = F ) $=
    ( wf cin cres w3a cun uncom reseq1i incom reseq2i eqeq12i eqcom fresaunres2
    wceq bitri 3com12 syl3an3b syl5eq ) ACDFZBCEFZDABGZHZEUEHZRZIDEJZAHEDJZAHZD
    UIUJADEKLUHUCUDEBAGZHZDULHZRZUKDRZUHUNUMRUOUFUNUGUMUEULDABMZNUEULEUQNOUNUMP
    SUDUCUOUPBACEDQTUAUB $.

  $( Composition of a mapping and restricted identity.  (Contributed by NM,
     13-Dec-2003.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  fcoi1 $p |- ( F : A --> B -> ( F o. ( _I |` A ) ) = F ) $=
    ( wf wfn cid cres ccom wceq ffn wfun cdm df-fn wss eqimss ccnv cnvi reseq1i
    wa syl cnveqi eqtr2i coeq2i cores2 syl5eq wrel funrel coi1 sylan9eqr sylbi
    cnvresid ) ABCDCAEZCFAGZHZCIZABCJULCKZCLZAIZSUOCAMURUPUNCFHZCURUQANZUNUSIUQ
    AOUTUNCFPZAGZPZHUSUMVCCVCUMPUMVBUMVAFAQRUAAUKUBUCCFAUDUETUPCUFUSCICUGCUHTUI
    UJT $.

  $( Composition of restricted identity and a mapping.  (Contributed by NM,
     13-Dec-2003.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  fcoi2 $p |- ( F : A --> B -> ( ( _I |` B ) o. F ) = F ) $=
    ( wf wfn crn wss wa cid cres ccom wceq df-f cores wrel fnrel coi2 sylan9eqr
    syl sylbi ) ABCDCAEZCFBGZHIBJCKZCLABCMUBUAUCICKZCICBNUACOUDCLACPCQSRT $.

  ${
    $d y F $.  $d y A $.  $d y B $.  $d y C $.
    $( There is exactly one value of a function in its codomain.  (Contributed
       by NM, 10-Dec-2003.) $)
    feu $p |- ( ( F : A --> B /\ C e. A ) -> E! y e. B <. C , y >. e. F ) $=
      ( wf wcel wa cv cop weu wreu wfn ffn fneu2 sylan wb opelf simprd ex mpbid
      pm4.71rd eubidv adantr df-reu sylibr ) BCEFZDBGZHZAIZCGZDUJJEGZHZAKZULACL
      UIULAKZUNUGEBMUHUOBCENABDEOPUGUOUNQUHUGULUMAUGULUKUGULUKUGULHUHUKBCDUJERS
      TUBUCUDUAULACUEUF $.
  $}

  $( The image of a class is a subset of its codomain.  (Contributed by Glauco
     Siliprandi, 17-Aug-2020.) $)
  fimass $p |- ( F : A --> B -> ( F " X ) C_ B ) $=
    ( wf cima crn wss imassrn a1i frn sstrd ) ABCEZCDFZCGZBNOHMCDIJABCKL $.

  ${
    $d x y F $.  $d x y A $.  $d x y B $.
    $( The converse of a restriction of a function.  (Contributed by NM,
       26-Mar-1998.) $)
    fcnvres $p |- ( F : A --> B -> `' ( F |` A ) = ( `' F |` B ) ) $=
      ( vy vx wf cres ccnv relcnv cv cop wcel wa ex pm4.71d vex opelcnv opelres
      bitri syl6bbr relres opelf simpld simprd anbi1i bitr3d eqrelrdv ) ABCFZDE
      CAGZHZCHZBGZUIIUKBUAUHEJZDJZKZCLZUNUMKZUJLZUQULLZUHUPUPUMALZMZURUHUPUTUHU
      PUTUHUPMZUTUNBLZABUMUNCUBZUCNOURUOUILVAUNUMUIDPZEPZQUMUNCAVERSTUHUPUPVCMZ
      USUHUPVCUHUPVCVBUTVCVDUDNOUSUQUKLZVCMVGUNUMUKBVFRVHUPVCUNUMCVEVFQUESTUFUG
      $.
  $}

  $( The preimage of a class disjoint with a mapping's codomain is empty.
     (Contributed by FL, 24-Jan-2007.) $)
  fimacnvdisj $p |- ( ( F : A --> B /\ ( B i^i C ) = (/) ) ->
    ( `' F " C ) = (/) ) $=
    ( wf cin c0 wceq wa ccnv cdm cima wss crn df-rn frn adantr syl5eqssr ssdisj
    sylancom imadisj sylibr ) ABDEZBCFGHZIZDJZKZCFGHZUFCLGHUCUDUGBMUHUEUGDNZBDO
    UCUIBMUDABDPQRUGBCSTUFCUAUB $.

  ${
    $d x A $.  $d x B $.  $d x F $.
    fint.1 $e |- B =/= (/) $.
    $( Function into an intersection.  (Contributed by NM, 14-Oct-1999.)
       (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
    fint $p |- ( F : A --> |^| B <-> A. x e. B F : A --> x ) $=
      ( wfn crn cint wss wa cv wral wf ssint anbi2i c0 wne wb r19.28zv df-f
      ax-mp bitr4i ralbii 3bitr4i ) DBFZDGZCHZIZJZUEUFAKZIZJZACLZBUGDMBUJDMZACL
      UIUEUKACLZJZUMUHUOUEAUFCNOCPQUMUPREUEUKACSUAUBBUGDTUNULACBUJDTUCUD $.
  $}

  $( Mapping into an intersection.  (Contributed by NM, 14-Sep-1999.)  (Proof
     shortened by Andrew Salmon, 17-Sep-2011.) $)
  fin $p |- ( F : A --> ( B i^i C ) <-> ( F : A --> B /\ F : A --> C ) ) $=
    ( wfn crn cin wss wa wf ssin anbi2i anandi bitr3i df-f anbi12i 3bitr4i ) DA
    EZDFZBCGZHZIZRSBHZIZRSCHZIZIZATDJABDJZACDJZIUBRUCUEIZIUGUJUARSBCKLRUCUEMNAT
    DOUHUDUIUFABDOACDOPQ $.

  $( The empty function.  (Contributed by NM, 14-Aug-1999.) $)
  f0 $p |- (/) : (/) --> A $=
    ( c0 wf wfn crn wss wceq eqid fn0 mpbir rn0 0ss eqsstri df-f mpbir2an ) BAB
    CBBDZBEZAFPBBGBHBIJQBAKALMBABNO $.

  $( A class is a function with empty codomain iff it and its domain are empty.
     (Contributed by NM, 10-Dec-2003.) $)
  f00 $p |- ( F : A --> (/) <-> ( F = (/) /\ A = (/) ) ) $=
    ( c0 wf wceq wa wfn wfun cdm ffun crn wss frn ss0 syl dm0rn0 df-fn sylanbrc
    sylibr fn0 sylib fdm eqtr3d jca f0 feq1 feq2 sylan9bb mpbiri impbii ) ACBDZ
    BCEZACEZFZUKULUMUKBCGZULUKBHBIZCEZUOACBJUKBKZCEZUQUKURCLUSACBMURNOBPSZBCQRB
    TUAUKUPACACBUBUTUCUDUNUKCCCDZCUEULUKACCDUMVAACBCUFACCCUGUHUIUJ $.

  $( A function with empty domain is empty.  (Contributed by Alexander van der
     Vekens, 30-Jun-2018.) $)
  f0bi $p |- ( F : (/) --> X <-> F = (/) ) $=
    ( c0 wf wceq wfn ffn fn0 sylib f0 feq1 mpbiri impbii ) CBADZACEZNACFOCBAGAH
    IONCBCDBJCBACKLM $.

  $( A function is empty iff it has an empty domain.  (Contributed by AV,
     10-Feb-2019.) $)
  f0dom0 $p |- ( F : X --> Y -> ( X = (/) <-> F = (/) ) ) $=
    ( wf c0 wceq feq2 f0bi biimpi syl6bi com12 feq1 cdm dm0 fdm syl5reqr impbid
    ) BCADZBEFZAEFZSRTSRECADZTBECAGUATACHIJKTRSTRBCEDZSBCAELUBEEMBNBCEOPJKQ $.

  ${
    $d E y $.  $d Y y $.
    $( If there is no element in the range of a function, its domain must be
       empty.  (Contributed by Alexander van der Vekens, 12-Jul-2018.) $)
    f0rn0 $p |- ( ( E : X --> Y /\ -. E. y e. Y y e. ran E ) -> X = (/) ) $=
      ( wf cv crn wcel wrex wn c0 wceq cdm wi fdm wa cin sylbi syl5bir imp wral
      wss frn ralnex df-ss incom eqeq1i eqtr2 ex syl adantl dm0rn0 sylibr eqeq1
      disj wb eqcoms adantr mpbird exp32 mpcom ) CDBEZAFBGZHZADIJZCKLZBMZCLZVBV
      EVFNCDBOVHVBVEVFVHVBVEPZPZVFVGKLZVJVCKLZVKVIVLVHVBVEVLVBVCDUBZVEVLNCDBUCV
      EVDJADUAZVMVLVDADUDVNDVCQZKLZVMVLADVCUOVMVCDQZVCLZVPVLNZVCDUEVRVOVCLZVSVQ
      VOVCVCDUFUGVTVPVLVOVCKUHUIRRSSUJTUKBULUMVHVFVKUPZVIWACVGCVGKUNUQURUSUTVAT
      $.
  $}

  ${
    $d x A $.  $d x B $.
    fconst.1 $e |- B e. _V $.
    $( A Cartesian product with a singleton is a constant function.
       (Contributed by NM, 14-Aug-1999.)  (Proof shortened by Andrew Salmon,
       17-Sep-2011.) $)
    fconst $p |- ( A X. { B } ) : A --> { B } $=
      ( vx csn cxp wf wfn crn wss fconstmpt fnmpti rnxpss df-f mpbir2an ) ABEZA
      PFZGQAHQIPJDABQCDABKLAPMAPQNO $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A Cartesian product with a singleton is a constant function.
       (Contributed by NM, 19-Oct-2004.) $)
    fconstg $p |- ( B e. V -> ( A X. { B } ) : A --> { B } ) $=
      ( vx cv csn cxp wf wceq sneq xpeq2d feq1 feq3 sylan9bb syl2anc vex fconst
      wb vtoclg ) ADEZFZAUAGZHZABFZAUDGZHZDBCTBIZUBUEIZUAUDIZUCUFRUGUAUDATBJZKU
      JUHUCAUAUEHUIUFAUAUBUELUAUDAUEMNOATDPQS $.
  $}

  $( A Cartesian product with a singleton is a constant function.  (Contributed
     by NM, 24-Jul-2014.) $)
  fnconstg $p |- ( B e. V -> ( A X. { B } ) Fn A ) $=
    ( wcel csn cxp wf wfn fconstg ffn syl ) BCDABEZALFZGMAHABCIALMJK $.

  $( Constant function with loose range.  (Contributed by Stefan O'Rear,
     1-Feb-2015.) $)
  fconst6g $p |- ( B e. C -> ( A X. { B } ) : A --> C ) $=
    ( wcel csn cxp fconstg snssi fssd ) BCDABEZCAJFABCGBCHI $.

  ${
    fconst6.1 $e |- B e. C $.
    $( A constant function as a mapping.  (Contributed by Jeff Madsen,
       30-Nov-2009.)  (Revised by Mario Carneiro, 22-Apr-2015.) $)
    fconst6 $p |- ( A X. { B } ) : A --> C $=
      ( wcel csn cxp wf fconst6g ax-mp ) BCEACABFGHDABCIJ $.
  $}

  $( Equality theorem for one-to-one functions.  (Contributed by NM,
     10-Feb-1997.) $)
  f1eq1 $p |- ( F = G -> ( F : A -1-1-> B <-> G : A -1-1-> B ) ) $=
    ( wceq wf ccnv wfun wa wf1 feq1 cnveq funeqd anbi12d df-f1 3bitr4g ) CDEZAB
    CFZCGZHZIABDFZDGZHZIABCJABDJQRUATUCABCDKQSUBCDLMNABCOABDOP $.

  $( Equality theorem for one-to-one functions.  (Contributed by NM,
     10-Feb-1997.) $)
  f1eq2 $p |- ( A = B -> ( F : A -1-1-> C <-> F : B -1-1-> C ) ) $=
    ( wceq wf ccnv wfun wa wf1 feq2 anbi1d df-f1 3bitr4g ) ABEZACDFZDGHZIBCDFZQ
    IACDJBCDJOPRQABCDKLACDMBCDMN $.

  $( Equality theorem for one-to-one functions.  (Contributed by NM,
     10-Feb-1997.) $)
  f1eq3 $p |- ( A = B -> ( F : C -1-1-> A <-> F : C -1-1-> B ) ) $=
    ( wceq wf ccnv wfun wa wf1 feq3 anbi1d df-f1 3bitr4g ) ABEZCADFZDGHZICBDFZQ
    ICADJCBDJOPRQABCDKLCADMCBDMN $.

  ${
    nff1.1 $e |- F/_ x F $.
    nff1.2 $e |- F/_ x A $.
    nff1.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for a one-to-one function.
       (Contributed by NM, 16-May-2004.) $)
    nff1 $p |- F/ x F : A -1-1-> B $=
      ( wf1 wf ccnv wfun wa df-f1 nff nfcnv nffun nfan nfxfr ) BCDHBCDIZDJZKZLA
      BCDMSUAAABCDEFGNATADEOPQR $.
  $}

  ${
    $d x y F $.
    $( Alternate definition of a one-to-one function.  (Contributed by NM,
       31-Dec-1996.) $)
    dff12 $p |- ( F : A -1-1-> B <-> ( F : A --> B /\ A. y E* x x F y ) ) $=
      ( wf1 wf ccnv wfun wa cv wbr wmo wal df-f1 funcnv2 anbi2i bitri ) CDEFCDE
      GZEHIZJSAKBKELAMBNZJCDEOTUASABEPQR $.
  $}

  $( A one-to-one mapping is a mapping.  (Contributed by NM, 31-Dec-1996.) $)
  f1f $p |- ( F : A -1-1-> B -> F : A --> B ) $=
    ( wf1 wf ccnv wfun df-f1 simplbi ) ABCDABCECFGABCHI $.

  $( A one-to-one mapping is a function on its domain.  (Contributed by NM,
     8-Mar-2014.) $)
  f1fn $p |- ( F : A -1-1-> B -> F Fn A ) $=
    ( wf1 wf wfn f1f ffn syl ) ABCDABCECAFABCGABCHI $.

  $( A one-to-one mapping is a function.  (Contributed by NM, 8-Mar-2014.) $)
  f1fun $p |- ( F : A -1-1-> B -> Fun F ) $=
    ( wf1 wfn wfun f1fn fnfun syl ) ABCDCAECFABCGACHI $.

  $( A one-to-one onto mapping is a relation.  (Contributed by NM,
     8-Mar-2014.) $)
  f1rel $p |- ( F : A -1-1-> B -> Rel F ) $=
    ( wf1 wfn wrel f1fn fnrel syl ) ABCDCAECFABCGACHI $.

  $( The domain of a one-to-one mapping.  (Contributed by NM, 8-Mar-2014.) $)
  f1dm $p |- ( F : A -1-1-> B -> dom F = A ) $=
    ( wf1 wfn cdm wceq f1fn fndm syl ) ABCDCAECFAGABCHACIJ $.

  $( A function that is one-to-one is also one-to-one on some superset of its
     codomain.  (Contributed by Mario Carneiro, 12-Jan-2013.) $)
  f1ss $p |- ( ( F : A -1-1-> B /\ B C_ C ) -> F : A -1-1-> C ) $=
    ( wf1 wss wa wf ccnv wfun f1f fss sylan df-f1 simprbi adantr sylanbrc ) ABD
    EZBCFZGACDHZDIJZACDERABDHZSTABDKABCDLMRUASRUBUAABDNOPACDNQ $.

  $( A function that is one-to-one is also one-to-one on some superset of its
     range.  (Contributed by Stefan O'Rear, 20-Feb-2015.) $)
  f1ssr $p |- ( ( F : A -1-1-> B /\ ran F C_ C ) -> F : A -1-1-> C ) $=
    ( wf1 crn wss wa wf ccnv wfun f1fn adantr simpr df-f sylanbrc df-f1 simprbi
    wfn ) ABDEZDFCGZHZACDIZDJKZACDEUBDASZUAUCTUEUAABDLMTUANACDOPTUDUATABDIUDABD
    QRMACDQP $.

  $( A function that is one-to-one is also one-to-one on some subset of its
     domain.  (Contributed by Mario Carneiro, 17-Jan-2015.) $)
  f1ssres $p |- ( ( F : A -1-1-> B /\ C C_ A ) -> ( F |` C ) : C -1-1-> B ) $=
    ( wf1 wss wa cres wf ccnv wfun f1f fssres sylan simprbi funres11 syl adantr
    df-f1 sylanbrc ) ABDEZCAFZGCBDCHZIZUCJKZCBUCEUAABDIZUBUDABDLABCDMNUAUEUBUAD
    JKZUEUAUFUGABDSOCDPQRCBUCST $.

  $( Two ways to express that a set ` A ` (not necessarily a function) is
     one-to-one.  Each side is equivalent to Definition 6.4(3) of
     [TakeutiZaring] p. 24, who use the notation "Un_2 (A)" for one-to-one.  We
     do not introduce a separate notation since we rarely use it.  (Contributed
     by NM, 13-Aug-2004.) $)
  f1cnvcnv $p |-
               ( `' `' A : dom A -1-1-> _V <-> ( Fun `' A /\ Fun `' `' A ) ) $=
    ( cdm cvv ccnv wf1 wf wfun wa df-f1 wfn dffn2 wceq dmcnvcnv mpbiran2 bitr3i
    df-fn wrel relcnv dfrel2 mpbi funeqi anbi12ci bitri ) ABZCADZDZEUDCUFFZUFDZ
    GZHUEGZUFGZHUDCUFIUGUKUIUJUGUFUDJZUKUDUFKULUKUFBUDLAMUFUDPNOUHUEUEQUHUELARU
    ESTUAUBUC $.

  $( Composition of one-to-one functions.  Exercise 30 of [TakeutiZaring]
     p. 25.  (Contributed by NM, 28-May-1998.) $)
  f1co $p |-
         ( ( F : B -1-1-> C /\ G : A -1-1-> B ) -> ( F o. G ) : A -1-1-> C ) $=
    ( wf1 wa ccom wf ccnv wfun df-f1 fco funco cnvco funeqi sylibr anim12i an4s
    ancoms syl2anb ) BCDFZABEFZGACDEHZIZUDJZKZGZACUDFUBBCDIZDJZKZGABEIZEJZKZGUH
    UCBCDLABELUIULUKUNUHUIULGUEUKUNGUGABCDEMUNUKUGUNUKGUMUJHZKUGUMUJNUFUODEOPQT
    RSUAACUDLQ $.

  $( Equality theorem for onto functions.  (Contributed by NM, 1-Aug-1994.) $)
  foeq1 $p |- ( F = G -> ( F : A -onto-> B <-> G : A -onto-> B ) ) $=
    ( wceq wfn crn wa wfo fneq1 rneq eqeq1d anbi12d df-fo 3bitr4g ) CDEZCAFZCGZ
    BEZHDAFZDGZBEZHABCIABDIPQTSUBACDJPRUABCDKLMABCNABDNO $.

  $( Equality theorem for onto functions.  (Contributed by NM, 1-Aug-1994.) $)
  foeq2 $p |- ( A = B -> ( F : A -onto-> C <-> F : B -onto-> C ) ) $=
    ( wceq wfn crn wa wfo fneq2 anbi1d df-fo 3bitr4g ) ABEZDAFZDGCEZHDBFZPHACDI
    BCDINOQPABDJKACDLBCDLM $.

  $( Equality theorem for onto functions.  (Contributed by NM, 1-Aug-1994.) $)
  foeq3 $p |- ( A = B -> ( F : C -onto-> A <-> F : C -onto-> B ) ) $=
    ( wceq wfn crn wa wfo eqeq2 anbi2d df-fo 3bitr4g ) ABEZDCFZDGZAEZHOPBEZHCAD
    ICBDINQROABPJKCADLCBDLM $.

  ${
    nffo.1 $e |- F/_ x F $.
    nffo.2 $e |- F/_ x A $.
    nffo.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for an onto function.  (Contributed by
       NM, 16-May-2004.) $)
    nffo $p |- F/ x F : A -onto-> B $=
      ( wfo wfn crn wceq wa df-fo nffn nfrn nfeq nfan nfxfr ) BCDHDBIZDJZCKZLAB
      CDMSUAAABDEFNATCADEOGPQR $.
  $}

  $( An onto mapping is a mapping.  (Contributed by NM, 3-Aug-1994.) $)
  fof $p |- ( F : A -onto-> B -> F : A --> B ) $=
    ( wfn crn wceq wa wss wfo wf eqimss anim2i df-fo df-f 3imtr4i ) CADZCEZBFZG
    PQBHZGABCIABCJRSPQBKLABCMABCNO $.

  $( An onto mapping is a function.  (Contributed by NM, 29-Mar-2008.) $)
  fofun $p |- ( F : A -onto-> B -> Fun F ) $=
    ( wfo fof ffund ) ABCDABCABCEF $.

  $( An onto mapping is a function on its domain.  (Contributed by NM,
     16-Dec-2008.) $)
  fofn $p |- ( F : A -onto-> B -> F Fn A ) $=
    ( wfo fof ffnd ) ABCDABCABCEF $.

  $( The codomain of an onto function is its range.  (Contributed by NM,
     3-Aug-1994.) $)
  forn $p |- ( F : A -onto-> B -> ran F = B ) $=
    ( wfo wfn crn wceq df-fo simprbi ) ABCDCAECFBGABCHI $.

  $( Alternate definition of an onto function.  (Contributed by NM,
     22-Mar-2006.) $)
  dffo2 $p |- ( F : A -onto-> B <-> ( F : A --> B /\ ran F = B ) ) $=
    ( wfo wf crn wceq wa fof forn jca wfn ffn df-fo biimpri sylan impbii ) ABCD
    ZABCEZCFBGZHRSTABCIABCJKSCALZTRABCMRUATHABCNOPQ $.

  $( The image of the domain of an onto function.  (Contributed by NM,
     29-Nov-2002.) $)
  foima $p |- ( F : A -onto-> B -> ( F " A ) = B ) $=
    ( wfo cdm cima crn imadmrn wf wceq fof fdm syl imaeq2d forn 3eqtr3a ) ABCDZ
    CCEZFCGCAFBCHQRACQABCIRAJABCKABCLMNABCOP $.

  $( A function maps onto its range.  (Contributed by NM, 10-May-1998.) $)
  dffn4 $p |- ( F Fn A <-> F : A -onto-> ran F ) $=
    ( wfn crn wceq wa wfo eqid biantru df-fo bitr4i ) BACZLBDZMEZFAMBGNLMHIAMBJ
    K $.

  $( A function maps its domain onto its range.  (Contributed by NM,
     23-Jul-2004.) $)
  funforn $p |- ( Fun A <-> A : dom A -onto-> ran A ) $=
    ( wfun cdm wfn crn wfo funfn dffn4 bitri ) ABAACZDJAEAFAGJAHI $.

  $( An onto function has unique domain and range.  (Contributed by NM,
     5-Nov-2006.) $)
  fodmrnu $p |- ( ( F : A -onto-> B /\ F : C -onto-> D ) ->
                ( A = C /\ B = D ) ) $=
    ( wfo wa wceq wfn fofn fndmu syl2an crn forn sylan9req jca ) ABEFZCDEFZGACH
    ZBDHQEAIECISRABEJCDEJACEKLQRBEMDABENCDENOP $.

  $( Restriction of an onto function.  (Contributed by NM, 4-Mar-1997.) $)
  fores $p |- ( ( Fun F /\ A C_ dom F ) ->
              ( F |` A ) : A -onto-> ( F " A ) ) $=
    ( wfun cdm wss cres cima wfo funres anim1i wfn wceq df-fn crn df-ima eqcomi
    wa df-fo mpbiran2 ssdmres anbi2i 3bitr4i sylibr ) BCZABDEZQBAFZCZUEQZABAGZU
    FHZUDUGUEABIJUFAKZUGUFDALZQUJUHUFAMUJUKUFNZUILUIUMBAOPAUIUFRSUEULUGABTUAUBU
    C $.

  $( Composition of onto functions.  (Contributed by NM, 22-Mar-2006.) $)
  foco $p |- ( ( F : B -onto-> C /\ G : A -onto-> B ) ->
             ( F o. G ) : A -onto-> C ) $=
    ( wfo wa ccom crn wceq dffo2 fco ad2ant2r cdm fdm eqtr3 sylan rncoeq eqeq1d
    wf biimpar an32s adantrl jca syl2anb sylibr ) BCDFZABEFZGACDEHZTZUIIZCJZGZA
    CUIFUGBCDTZDIZCJZGZABETZEIZBJZGZUMUHBCDKABEKUQVAGUJULUNURUJUPUTABCDELMUQUTU
    LURUNUTUPULUNUTGDNZUSJZUPULUNVBBJUTVCBCDOVBUSBPQVCULUPVCUKUOCDERSUAQUBUCUDU
    EACUIKUF $.

  $( A nonzero constant function is onto.  (Contributed by NM, 12-Jan-2007.) $)
  foconst $p |- ( ( F : A --> { B } /\ F =/= (/) ) -> F : A -onto-> { B } ) $=
    ( csn wf c0 wne wa crn wceq wfo wn wrel wb frel relrn0 necon3abid syl wss
    wo frn sssn sylib ord sylbid imdistani dffo2 sylibr ) ABDZCEZCFGZHUJCIZUIJZ
    HAUICKUJUKUMUJUKULFJZLZUMUJCMZUKUONAUICOUPUNCFCPQRUJUNUMUJULUISUNUMTAUICUAU
    LBUBUCUDUEUFAUICUGUH $.

  $( Equality theorem for one-to-one onto functions.  (Contributed by NM,
     10-Feb-1997.) $)
  f1oeq1 $p |- ( F = G -> ( F : A -1-1-onto-> B <-> G : A -1-1-onto-> B ) ) $=
    ( wceq wf1 wfo wa wf1o f1eq1 foeq1 anbi12d df-f1o 3bitr4g ) CDEZABCFZABCGZH
    ABDFZABDGZHABCIABDIOPRQSABCDJABCDKLABCMABDMN $.

  $( Equality theorem for one-to-one onto functions.  (Contributed by NM,
     10-Feb-1997.) $)
  f1oeq2 $p |- ( A = B -> ( F : A -1-1-onto-> C <-> F : B -1-1-onto-> C ) ) $=
    ( wceq wf1 wfo wa wf1o f1eq2 foeq2 anbi12d df-f1o 3bitr4g ) ABEZACDFZACDGZH
    BCDFZBCDGZHACDIBCDIOPRQSABCDJABCDKLACDMBCDMN $.

  $( Equality theorem for one-to-one onto functions.  (Contributed by NM,
     10-Feb-1997.) $)
  f1oeq3 $p |- ( A = B -> ( F : C -1-1-onto-> A <-> F : C -1-1-onto-> B ) ) $=
    ( wceq wf1 wfo wa wf1o f1eq3 foeq3 anbi12d df-f1o 3bitr4g ) ABEZCADFZCADGZH
    CBDFZCBDGZHCADICBDIOPRQSABCDJABCDKLCADMCBDMN $.

  $( Equality theorem for one-to-one onto functions.  (Contributed by FL,
     14-Jul-2012.) $)
  f1oeq23 $p |- ( ( A = B /\ C = D ) ->
   ( F : A -1-1-onto-> C <-> F : B -1-1-onto-> D ) ) $=
    ( wceq wf1o f1oeq2 f1oeq3 sylan9bb ) ABFACEGBCEGCDFBDEGABCEHCDBEIJ $.

  ${
    f1eq123d.1 $e |- ( ph -> F = G ) $.
    f1eq123d.2 $e |- ( ph -> A = B ) $.
    f1eq123d.3 $e |- ( ph -> C = D ) $.
    $( Equality deduction for one-to-one functions.  (Contributed by Mario
       Carneiro, 27-Jan-2017.) $)
    f1eq123d $p |- ( ph -> ( F : A -1-1-> C <-> G : B -1-1-> D ) ) $=
      ( wf1 wceq wb f1eq1 syl f1eq2 f1eq3 3bitrd ) ABDFKZBDGKZCDGKZCEGKZAFGLSTM
      HBDFGNOABCLTUAMIBCDGPOADELUAUBMJDECGQOR $.

    $( Equality deduction for onto functions.  (Contributed by Mario Carneiro,
       27-Jan-2017.) $)
    foeq123d $p |- ( ph -> ( F : A -onto-> C <-> G : B -onto-> D ) ) $=
      ( wfo wceq wb foeq1 syl foeq2 foeq3 3bitrd ) ABDFKZBDGKZCDGKZCEGKZAFGLSTM
      HBDFGNOABCLTUAMIBCDGPOADELUAUBMJDECGQOR $.

    $( Equality deduction for one-to-one onto functions.  (Contributed by Mario
       Carneiro, 27-Jan-2017.) $)
    f1oeq123d $p |- ( ph ->
      ( F : A -1-1-onto-> C <-> G : B -1-1-onto-> D ) ) $=
      ( wf1o wceq wb f1oeq1 syl f1oeq2 f1oeq3 3bitrd ) ABDFKZBDGKZCDGKZCEGKZAFG
      LSTMHBDFGNOABCLTUAMIBCDGPOADELUAUBMJDECGQOR $.
  $}

  ${
    f1oeq3d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for one-to-one onto functions.  (Contributed by
       Glauco Siliprandi, 17-Aug-2020.) $)
    f1oeq3d $p |- ( ph -> ( F : C -1-1-onto-> A <-> F : C -1-1-onto-> B ) )
            $=
      ( wceq wf1o wb f1oeq3 syl ) ABCGDBEHDCEHIFBCDEJK $.
  $}

  ${
    nff1o.1 $e |- F/_ x F $.
    nff1o.2 $e |- F/_ x A $.
    nff1o.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for a one-to-one onto function.
       (Contributed by NM, 16-May-2004.) $)
    nff1o $p |- F/ x F : A -1-1-onto-> B $=
      ( wf1o wf1 wfo wa df-f1o nff1 nffo nfan nfxfr ) BCDHBCDIZBCDJZKABCDLQRAAB
      CDEFGMABCDEFGNOP $.
  $}

  $( A one-to-one onto mapping is a one-to-one mapping.  (Contributed by NM,
     12-Dec-2003.) $)
  f1of1 $p |- ( F : A -1-1-onto-> B -> F : A -1-1-> B ) $=
    ( wf1o wf1 wfo df-f1o simplbi ) ABCDABCEABCFABCGH $.

  $( A one-to-one onto mapping is a mapping.  (Contributed by NM,
     12-Dec-2003.) $)
  f1of $p |- ( F : A -1-1-onto-> B -> F : A --> B ) $=
    ( wf1o wf1 wf f1of1 f1f syl ) ABCDABCEABCFABCGABCHI $.

  $( A one-to-one onto mapping is function on its domain.  (Contributed by NM,
     12-Dec-2003.) $)
  f1ofn $p |- ( F : A -1-1-onto-> B -> F Fn A ) $=
    ( wf1o wf wfn f1of ffn syl ) ABCDABCECAFABCGABCHI $.

  $( A one-to-one onto mapping is a function.  (Contributed by NM,
     12-Dec-2003.) $)
  f1ofun $p |- ( F : A -1-1-onto-> B -> Fun F ) $=
    ( wf1o wfn wfun f1ofn fnfun syl ) ABCDCAECFABCGACHI $.

  $( A one-to-one onto mapping is a relation.  (Contributed by NM,
     13-Dec-2003.) $)
  f1orel $p |- ( F : A -1-1-onto-> B -> Rel F ) $=
    ( wf1o wfun wrel f1ofun funrel syl ) ABCDCECFABCGCHI $.

  $( The domain of a one-to-one onto mapping.  (Contributed by NM,
     8-Mar-2014.) $)
  f1odm $p |- ( F : A -1-1-onto-> B -> dom F = A ) $=
    ( wf1o wfn cdm wceq f1ofn fndm syl ) ABCDCAECFAGABCHACIJ $.

  $( Alternate definition of one-to-one onto function.  (Contributed by NM,
     10-Feb-1997.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
  dff1o2 $p |- ( F : A -1-1-onto-> B
        <-> ( F Fn A /\ Fun `' F /\ ran F = B ) ) $=
    ( wf1o wf1 wfo wa wfn ccnv wfun crn w3a df-f1o wf df-f1 df-fo anbi12i anass
    wceq bitri 3anan12 anbi1i eqimss df-f biimpri sylan2 3adant2 ancom 3bitr4ri
    wss pm4.71i ) ABCDABCEZABCFZGZCAHZCIJZCKZBSZLZABCMUNABCNZUPGZUOURGZGZUSULVA
    UMVBABCOABCPQVCUTUPVBGZGZUSUTUPVBRUSUTGVDUTGUSVEUSVDUTUOUPURUAUBUSUTUOURUTU
    PURUOUQBUJZUTUQBUCUTUOVFGABCUDUEUFUGUKUTVDUHUITTT $.

  $( Alternate definition of one-to-one onto function.  (Contributed by NM,
     25-Mar-1998.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
  dff1o3 $p |- ( F : A -1-1-onto-> B <-> ( F : A -onto-> B /\ Fun `' F ) ) $=
    ( wfn ccnv wfun crn wceq w3a wf1o wfo 3anan32 dff1o2 df-fo anbi1i 3bitr4i
    wa ) CADZCEFZCGBHZIRTQZSQABCJABCKZSQRSTLABCMUBUASABCNOP $.

  $( A one-to-one onto function is an onto function.  (Contributed by NM,
     28-Apr-2004.) $)
  f1ofo $p |- ( F : A -1-1-onto-> B -> F : A -onto-> B ) $=
    ( wf1o wfo ccnv wfun dff1o3 simplbi ) ABCDABCECFGABCHI $.

  $( Alternate definition of one-to-one onto function.  (Contributed by NM,
     25-Mar-1998.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
  dff1o4 $p |- ( F : A -1-1-onto-> B <-> ( F Fn A /\ `' F Fn B ) ) $=
    ( wf1o wfn ccnv wfun crn w3a wa dff1o2 3anass cdm df-rn eqeq1i anbi2i df-fn
    wceq bitr4i 3bitri ) ABCDCAEZCFZGZCHZBRZIUAUCUEJZJUAUBBEZJABCKUAUCUELUFUGUA
    UFUCUBMZBRZJUGUEUIUCUDUHBCNOPUBBQSPT $.

  $( Alternate definition of one-to-one onto function.  (Contributed by NM,
     10-Dec-2003.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
  dff1o5 $p |- ( F : A -1-1-onto-> B <-> ( F : A -1-1-> B /\ ran F = B ) ) $=
    ( wf1o wf1 wfo wa crn wceq df-f1o wf biantrurd dffo2 syl6rbbr pm5.32i bitri
    f1f ) ABCDABCEZABCFZGRCHBIZGABCJRSTRTABCKZTGSRUATABCQLABCMNOP $.

  $( A one-to-one function maps onto its range.  (Contributed by NM,
     13-Aug-2004.) $)
  f1orn $p |- ( F : A -1-1-onto-> ran F <-> ( F Fn A /\ Fun `' F ) ) $=
    ( crn wf1o wfn ccnv wfun wceq w3a wa dff1o2 eqid df-3an mpbiran2 bitri ) AB
    CZBDBAEZBFGZPPHZIZQRJZAPBKTUASPLQRSMNO $.

  $( A one-to-one function maps one-to-one onto its range.  (Contributed by NM,
     4-Sep-2004.) $)
  f1f1orn $p |- ( F : A -1-1-> B -> F : A -1-1-onto-> ran F ) $=
    ( wf1 wfn ccnv wfun crn wf1o f1fn wf df-f1 simprbi f1orn sylanbrc ) ABCDZCA
    ECFGZACHCIABCJPABCKQABCLMACNO $.

  $( The converse of a one-to-one onto function is also one-to-one onto.
     (Contributed by NM, 11-Feb-1997.)  (Proof shortened by Andrew Salmon,
     22-Oct-2011.) $)
  f1ocnv $p |- ( F : A -1-1-onto-> B -> `' F : B -1-1-onto-> A ) $=
    ( wfn ccnv wa wf1o wrel fnrel wceq dfrel2 fneq1 biimprd sylbi anim2i ancoms
    wi mpcom dff1o4 3imtr4i ) CADZCEZBDZFUCUBEZADZFZABCGBAUBGUCUAUFUAUEUCCHZUAU
    EACIUGUDCJZUAUEQCKUHUEUAAUDCLMNROPABCSBAUBST $.

  $( A relation is a one-to-one onto function iff its converse is a one-to-one
     onto function with domain and range interchanged.  (Contributed by NM,
     8-Dec-2003.) $)
  f1ocnvb $p |- ( Rel F ->
                ( F : A -1-1-onto-> B <-> `' F : B -1-1-onto-> A ) ) $=
    ( wrel wf1o ccnv f1ocnv wceq wb dfrel2 f1oeq1 sylbi syl5ib impbid2 ) CDZABC
    EZBACFZEZABCGRABQFZEZOPBAQGOSCHTPICJABSCKLMN $.

  $( The restriction of a one-to-one function maps one-to-one onto the image.
     (Contributed by NM, 25-Mar-1998.) $)
  f1ores $p |- ( ( F : A -1-1-> B /\ C C_ A ) -> ( F |` C ) : C -1-1-onto->
            ( F " C ) ) $=
    ( wf1 wss wa cres crn wf1o cima f1ssres f1f1orn wceq wb df-ima f1oeq3 ax-mp
    syl sylibr ) ABDECAFGZCDCHZIZUBJZCDCKZUBJZUACBUBEUDABCDLCBUBMSUEUCNUFUDODCP
    UEUCCUBQRT $.

  $( The converse of a one-to-one-onto restricted function.  (Contributed by
     Paul Chapman, 21-Apr-2008.) $)
  f1orescnv $p |- ( ( Fun `' F /\ ( F |` R ) : R -1-1-onto-> P ) ->
                    ( `' F |` P ) : P -1-1-onto-> R ) $=
    ( ccnv wfun cres wf1o wa f1ocnv adantl wceq wb cima funcnvres df-ima dff1o5
    crn wf1 simprbi syl5eq reseq2d sylan9eq f1oeq1 syl mpbid ) CDZEZBACBFZGZHZA
    BUHDZGZABUFAFZGZUIULUGBAUHIJUJUKUMKULUNLUGUIUKUFCBMZFUMBCNUIUOAUFUIUOUHQZAC
    BOUIBAUHRUPAKBAUHPSTUAUBABUKUMUCUDUE $.

  $( Preimage of an image.  (Contributed by NM, 30-Sep-2004.) $)
  f1imacnv $p |- ( ( F : A -1-1-> B /\ C C_ A )
                 -> ( `' F " ( F " C ) ) = C ) $=
    ( wf1 wss wa ccnv cima cres resima wfun wceq df-f1 simprbi adantr funcnvres
    wf syl wf1o imaeq1d f1ores f1ocnv cdm crn imadmrn f1odm imaeq2d wfo 3eqtr3a
    f1ofo forn eqtr3d syl5eqr ) ABDEZCAFZGZDHZDCIZIURUSJZUSIZCURUSKUQDCJZHZUSIZ
    VACUQVCUTUSUQURLZVCUTMUOVEUPUOABDRVEABDNOPCDQSUAUQUSCVCTZVDCMUQCUSVBTVFABCD
    UBCUSVBUCSVFVCVCUDZIVCUEZVDCVCUFVFVGUSVCUSCVCUGUHVFUSCVCUIVHCMUSCVCUKUSCVCU
    LSUJSUMUN $.

  $( A reverse version of ~ f1imacnv .  (Contributed by Jeff Hankins,
     16-Jul-2009.) $)
  foimacnv $p |- ( ( F : A -onto-> B /\ C C_ B )
                 -> ( F " ( `' F " C ) ) = C ) $=
    ( wfo wss wa ccnv cima cres resima wfun wceq fofun adantr syl crn cdm df-rn
    syl5eqr funcnvres2 imaeq1d wfn resss cnvss ax-mp cnvcnvss sstri funss mpsyl
    df-ima eqtr2i jctir df-fn sylibr dfdm4 forn sseq2d biimpar syl6sseq ssdmres
    sylib df-fo sylanbrc foima eqtr3d ) ABDEZCBFZGZDDHZCIZIDVKJZVKIZCDVKKVIVJCJ
    ZHZVKIZVMCVIVOVLVKVIDLZVOVLMVGVQVHABDNZOCDUAPUBVIVKCVOEZVPCMVIVOVKUCZVOQZCM
    VSVIVOLZVORZVKMZGVTVIWBWDVGWBVHVODFVGVQWBVOVJHZDVNVJFVOWEFVJCUDVNVJUEUFDUGU
    HVRVODUIUJOVKVNQWCVJCUKVNSULUMVOVKUNUOVIWAVNRZCVNUPVICVJRZFWFCMVICDQZWGVGCW
    HFVHVGWHBCABDUQURUSDSUTCVJVAVBTVKCVOVCVDVKCVOVEPVFT $.

  $( The union of two onto functions with disjoint domains is an onto function.
     (Contributed by Mario Carneiro, 22-Jun-2016.) $)
  foun $p |- ( ( ( F : A -onto-> B /\ G : C -onto-> D )
            /\ ( A i^i C ) = (/) )
           -> ( F u. G ) : ( A u. C ) -onto-> ( B u. D ) ) $=
    ( wfo wa cin c0 wceq cun wfn crn fofn anim12i fnun sylan rnun forn ad2antrr
    ad2antlr uneq12d syl5eq df-fo sylanbrc ) ABEGZCDFGZHZACIJKZHZEFLZACLZMZULNZ
    BDLZKUMUPULGUIEAMZFCMZHUJUNUGUQUHURABEOCDFOPACEFQRUKUOENZFNZLUPEFSUKUSBUTDU
    GUSBKUHUJABETUAUHUTDKUGUJCDFTUBUCUDUMUPULUEUF $.

  $( The union of two one-to-one onto functions with disjoint domains and
     ranges.  (Contributed by NM, 26-Mar-1998.) $)
  f1oun $p |- ( ( ( F : A -1-1-onto-> B /\ G : C -1-1-onto-> D )
            /\ ( ( A i^i C ) = (/) /\ ( B i^i D ) = (/) ) )
           -> ( F u. G ) : ( A u. C ) -1-1-onto-> ( B u. D ) ) $=
    ( wf1o wa cin c0 wceq cun wfn ccnv wi dff1o4 fnun ex cnvun fneq1i im2anan9
    sylibr an4s syl2anb syl6ibr imp ) ABEGZCDFGZHZACIJKZBDIJKZHZACLZBDLZEFLZGZU
    IULUOUMMZUONZUNMZHZUPUGEAMZENZBMZHFCMZFNZDMZHULUTOZUHABEPCDFPVAVDVCVFVGVAVD
    HZUJUQVCVFHZUKUSVHUJUQACEFQRVIUKUSVIUKHVBVELZUNMUSBDVBVEQUNURVJEFSTUBRUAUCU
    DUMUNUOPUEUF $.

  $( The restriction of a one-to-one onto function to a difference maps onto
     the difference of the images.  (Contributed by Paul Chapman,
     11-Apr-2009.) $)
  resdif $p |- ( ( Fun `' F /\ ( F |` A ) : A -onto-> C /\
                               ( F |` B ) : B -onto-> D ) ->
                 ( F |` ( A \ B ) ) : ( A \ B ) -1-1-onto-> ( C \ D ) ) $=
    ( ccnv wfun cres wfo cdif cima wf1o wceq wb ax-mp crn df-ima wa forn syl5eq
    w3a cdm wss fofun difss wf fof fdm syl syl5sseqr fores syl2anc resres indif
    reseq2i eqtri foeq1 rneqi 3eqtr4i foeq3 bitri sylib funres11 dff1o3 biimpri
    syl2anr 3adant3 anim12i imadif difeq12 sylan9eq sylan2 3impb f1oeq3d mpbid
    cin ) EFGZACEAHZIZBDEBHZIZUAZABJZEWCKZEWCHZLZWCCDJZWELVQVSWFWAVSWCWDWEIZWEF
    GZWFVQVSWCVRWCKZVRWCHZIZWHVSVRGWCVRUBZUCWLACVRUDVSAWCWMABUEVSACVRUFWMAMACVR
    UGACVRUHUIUJWCVRUKULWLWCWJWEIZWHWKWEMWLWNNWKEAWCVPZHWEEAWCUMWOWCEABUNUOUPZW
    CWJWKWEUQOWJWDMWNWHNWKPWEPWJWDWKWEWPURVRWCQEWCQUSWJWDWCWEUTOVAVBWCEVCWFWHWI
    RWCWDWEVDVEVFVGWBWDWGWCWEVQVSWAWDWGMZVSWARVQEAKZCMZEBKZDMZRZWQVSWSWAXAVSWRV
    RPCEAQACVRSTWAWTVTPDEBQBDVTSTVHVQXBWDWRWTJWGABEVIWRCWTDVJVKVLVMVNVO $.

  $( The restriction of a one-to-one onto function to an intersection maps onto
     the intersection of the images.  (Contributed by Paul Chapman,
     11-Apr-2009.) $)
  resin $p |- ( ( Fun `' F /\ ( F |` A ) : A -onto-> C /\
                               ( F |` B ) : B -onto-> D ) ->
      ( F |` ( A i^i B ) ) : ( A i^i B ) -1-1-onto-> ( C i^i D ) ) $=
    ( ccnv wfun cres wfo w3a cdif wf1o cin resdif f1ofo syl wceq wb dfin4 ax-mp
    syld3an3 f1oeq3 f1oeq2 reseq2i f1oeq1 3bitrri sylib ) EFGZACEAHIZBDEBHIZJZA
    ABKZKZCCDKZKZEUMHZLZABMZCDMZEURHZLZUHUIUJULUNEULHZIZUQUKULUNVBLVCABCDENULUN
    VBOPAULCUNENUAVAURUOUTLZUMUOUTLZUQUSUOQVAVDRCDSUSUOURUTUBTURUMQVDVERABSZURU
    MUOUTUCTUTUPQVEUQRURUMEVFUDUMUOUTUPUETUFUG $.

  $( Composition of one-to-one onto functions.  (Contributed by NM,
     19-Mar-1998.) $)
  f1oco $p |- ( ( F : B -1-1-onto-> C /\ G : A -1-1-onto-> B ) ->
              ( F o. G ) : A -1-1-onto-> C ) $=
    ( wf1o wa ccom wf1 wfo df-f1o f1co foco anim12i an4s syl2anb sylibr ) BCDFZ
    ABEFZGACDEHZIZACTJZGZACTFRBCDIZBCDJZGABEIZABEJZGUCSBCDKABEKUDUFUEUGUCUDUFGU
    AUEUGGUBABCDELABCDEMNOPACTKQ $.

  $( The converse of an injective function is bijective.  (Contributed by FL,
     11-Nov-2011.) $)
  f1cnv $p |- ( F : A -1-1-> B -> `' F : ran F -1-1-onto-> A ) $=
    ( wf1 crn wf1o ccnv f1f1orn f1ocnv syl ) ABCDACEZCFKACGFABCHAKCIJ $.

  $( Composition with the converse.  (Contributed by Jeff Madsen,
     2-Sep-2009.) $)
  funcocnv2 $p |- ( Fun F -> ( F o. `' F ) = ( _I |` ran F ) ) $=
    ( wfun ccnv ccom cid wss crn cres wceq wrel df-fun simprbi cdm dfdm4 dmcoeq
    iss ax-mp df-rn eqtr4i reseq2i eqeq2i bitri sylib ) ABZAACZDZEFZUFEAGZHZIZU
    DAJUGAKLUGUFEUFMZHZIUJUFPULUIUFUKUHEUKUEMZUHAMUEGIUKUMIANAUEOQARSTUAUBUC $.

  $( The composition of an onto function and its converse.  (Contributed by
     Stefan O'Rear, 12-Feb-2015.) $)
  fococnv2 $p |- ( F : A -onto-> B -> ( F o. `' F ) = ( _I |` B ) ) $=
    ( wfo ccnv ccom cid crn cres wfun wceq fofun funcocnv2 forn reseq2d eqtrd
    syl ) ABCDZCCEFZGCHZIZGBIRCJSUAKABCLCMQRTBGABCNOP $.

  $( The composition of a one-to-one onto function and its converse equals the
     identity relation restricted to the function's range.  (Contributed by NM,
     13-Dec-2003.)  (Proof shortened by Stefan O'Rear, 12-Feb-2015.) $)
  f1ococnv2 $p |- ( F : A -1-1-onto-> B -> ( F o. `' F ) = ( _I |` B ) ) $=
    ( wf1o wfo ccnv ccom cid cres wceq f1ofo fococnv2 syl ) ABCDABCECCFGHBIJABC
    KABCLM $.

  $( Composition of an injective function with its converse.  (Contributed by
     FL, 11-Nov-2011.) $)
  f1cocnv2 $p |- ( F : A -1-1-> B -> ( F o. `' F ) = ( _I |` ran F ) ) $=
    ( wf1 wfun ccnv ccom cid crn cres wceq f1fun funcocnv2 syl ) ABCDCECCFGHCIJ
    KABCLCMN $.

  $( The composition of a one-to-one onto function's converse and itself equals
     the identity relation restricted to the function's domain.  (Contributed
     by NM, 13-Dec-2003.) $)
  f1ococnv1 $p |- ( F : A -1-1-onto-> B -> ( `' F o. F ) = ( _I |` A ) ) $=
    ( wf1o ccnv ccom cres wrel wceq f1orel dfrel2 sylib coeq2d f1ocnv f1ococnv2
    cid syl eqtr3d ) ABCDZCEZTEZFZTCFPAGZSUACTSCHUACIABCJCKLMSBATDUBUCIABCNBATO
    QR $.

  $( Composition of an injective function with its converse.  (Contributed by
     FL, 11-Nov-2011.) $)
  f1cocnv1 $p |- ( F : A -1-1-> B -> ( `' F o. F ) = ( _I |` A ) ) $=
    ( wf1 crn wf1o ccnv ccom cid cres wceq f1f1orn f1ococnv1 syl ) ABCDACEZCFCG
    CHIAJKABCLAOCMN $.

  $( Re-express a constraint on a composition as a constraint on the composand.
     (Contributed by Stefan O'Rear, 7-Mar-2015.) $)
  funcoeqres $p |- ( ( Fun G /\ ( F o. G ) = H ) ->
      ( F |` ran G ) = ( H o. `' G ) ) $=
    ( wfun ccom wceq crn cres cid funcocnv2 coeq2d coass eqcomi coires1 3eqtr3g
    ccnv coeq1 sylan9req ) BDZABEZCFABGZHZTBPZEZCUCESABUCEZEZAIUAHZEUDUBSUEUGAB
    JKUDUFABUCLMAUANOTCUCQR $.

  $( A subset of an injective function is injective.  (Contributed by AV,
     20-Nov-2020.) $)
  f1ssf1 $p |- ( ( Fun F /\ Fun `' F /\ G C_ F ) -> Fun `' G ) $=
    ( wfun ccnv wss wi wa cdm cres wceq funssres funres11 funeqd syl5ibr eqcoms
    cnveq syl ex com23 3imp ) ACZADCZBAEZBDZCZUAUCUBUEUAUCUBUEFZUAUCGABHZIZBJUF
    ABKUFBUHUBUEBUHJZUHDZCUGALUIUDUJBUHPMNOQRST $.

  $( The empty set maps one-to-one into any class.  (Contributed by NM,
     7-Apr-1998.) $)
  f10 $p |- (/) : (/) -1-1-> A $=
    ( c0 wf1 wf ccnv wfun f0 fun0 cnv0 funeqi mpbir df-f1 mpbir2an ) BABCBABDBE
    ZFZAGOBFHNBIJKBABLM $.

  ${
    f10d.f $e |- ( ph -> F = (/) ) $.
    $( The empty set maps one-to-one into any class, deduction version.
       (Contributed by AV, 25-Nov-2020.) $)
    f10d $p |- ( ph -> F : dom F -1-1-> A ) $=
      ( cdm wf1 c0 f10 wceq dm0 f1eq2 ax-mp mpbir dmeqd eqidd f1eq123d mpbiri
      wb ) ACEZBCFGEZBGFZUAGBGFZBHTGIUAUBRJTGBGKLMASTBBCGDACGDNABOPQ $.
  $}

  $( One-to-one onto mapping of the empty set.  (Contributed by NM,
     15-Apr-1998.) $)
  f1o00 $p |- ( F : (/) -1-1-onto-> A <-> ( F = (/) /\ A = (/) ) ) $=
    ( c0 wf1o wfn ccnv wceq dff1o4 fn0 biimpi adantr cdm dm0 cnveq syl6eq sylbi
    wa cnv0 fneq1d jca biimpa fndm syl syl5reqr biimpri eqid mpbir fneq2 mpbiri
    sylan9bb impbii bitri ) CABDBCEZBFZAEZQZBCGZACGZQZCABHUPUSUPUQURUMUQUOUMUQB
    IZJKUPCCLZAMUPCAEZVAAGUMUOVBUMAUNCUMUQUNCGUTUQUNCFCBCNROZPSUAACUBUCUDTUSUMU
    OUQUMURUMUQUTUEKUSUOCCEZVDCCGCUFCIUGUQUOVBURVDUQAUNCVCSACCUHUJUITUKUL $.

  $( Onto mapping of the empty set.  (Contributed by NM, 22-Mar-2006.) $)
  fo00 $p |- ( F : (/) -onto-> A <-> ( F = (/) /\ A = (/) ) ) $=
    ( c0 wfo wf1o wceq wf1 wfn fofn fn0 f10 f1eq1 mpbiri sylbi syl ancri df-f1o
    wa sylibr f1ofo impbii f1o00 bitri ) CABDZCABEZBCFZACFRUDUEUDCABGZUDRUEUDUG
    UDBCHZUGCABIUHUFUGBJUFUGCACGAKCABCLMNOPCABQSCABTUAABUBUC $.

  $( One-to-one onto mapping of the empty set.  (Contributed by NM,
     10-Sep-2004.) $)
  f1o0 $p |- (/) : (/) -1-1-onto-> (/) $=
    ( c0 wf1o wceq eqid f1o00 mpbir2an ) AAABAACZGADZHAAEF $.

  $( A restriction of the identity relation is a one-to-one onto function.
     (Contributed by NM, 30-Apr-1998.)  (Proof shortened by Andrew Salmon,
     22-Oct-2011.) $)
  f1oi $p |- ( _I |` A ) : A -1-1-onto-> A $=
    ( cid cres wf1o wfn ccnv fnresi cnvresid fneq1i mpbir dff1o4 mpbir2an ) AAB
    ACZDMAEZMFZAEZAGZPNQAOMAHIJAAMKL $.

  $( The identity relation is a one-to-one onto function on the universe.
     (Contributed by NM, 16-May-2004.) $)
  f1ovi $p |- _I : _V -1-1-onto-> _V $=
    ( cvv cid cres wf1o f1oi wceq wb wrel reli dfrel3 mpbi f1oeq1 ax-mp ) AABAC
    ZDZAABDZAENBFZOPGBHQIBJKAANBLMK $.

  ${
    f1osn.1 $e |- A e. _V $.
    f1osn.2 $e |- B e. _V $.
    $( A singleton of an ordered pair is one-to-one onto function.
       (Contributed by NM, 18-May-1998.)  (Proof shortened by Andrew Salmon,
       22-Oct-2011.) $)
    f1osn $p |- { <. A , B >. } : { A } -1-1-onto-> { B } $=
      ( csn cop wf1o wfn ccnv fnsn cnvsn fneq1i mpbir dff1o4 mpbir2an ) AEZBEZA
      BFEZGRPHRIZQHZABCDJTBAFEZQHBADCJQSUAABCDKLMPQRNO $.
  $}

  ${
    $d A a b $.  $d B b $.
    $( A singleton of an ordered pair is one-to-one onto function.
       (Contributed by Mario Carneiro, 12-Jan-2013.) $)
    f1osng $p |- ( ( A e. V /\ B e. W ) ->
                   { <. A , B >. } : { A } -1-1-onto-> { B } ) $=
      ( va vb cv csn cop wf1o wceq sneq f1oeq2 syl opeq1 sneqd f1oeq1 bitrd vex
      wb f1oeq3 opeq2 f1osn vtocl2g ) EGZHZFGZHZUEUGIZHZJZAHZUHAUGIZHZJZULBHZAB
      IZHZJZEFABCDUEAKZUKULUHUJJZUOUTUFULKUKVATUEALUFULUHUJMNUTUJUNKVAUOTUTUIUM
      UEAUGOPULUHUJUNQNRUGBKZUOULUPUNJZUSVBUHUPKUOVCTUGBLUHUPULUNUANVBUNURKVCUS
      TVBUMUQUGBAUBPULUPUNURQNRUEUGESFSUCUD $.

    $( A singleton of an ordered pair is a one-to-one function.  (Contributed
       by AV, 17-Apr-2021.) $)
    f1sng $p |- ( ( A e. V /\ B e. W ) ->
                   { <. A , B >. } : { A } -1-1-> W ) $=
      ( wcel wa csn cop wf1 wss wf1o f1osng f1of1 syl snssi adantl f1ss syl2anc
      ) ACEZBDEZFZAGZBGZABHGZIZUCDJZUBDUDIUAUBUCUDKUEABCDLUBUCUDMNTUFSBDOPUBUCD
      UDQR $.
  $}

  ${
    fsnd.a $e |- ( ph -> A e. V ) $.
    fsnd.b $e |- ( ph -> B e. W ) $.
    $( A singleton of an ordered pair is a function.  (Contributed by AV,
       17-Apr-2021.) $)
    fsnd $p |- ( ph -> { <. A , B >. } : { A } --> W ) $=
      ( wcel wa csn cop wf1 wf jca f1sng f1f 3syl ) ABDHZCEHZIBJZEBCKJZLTEUAMAR
      SFGNBCDEOTEUAPQ $.
  $}

  $( A two-element swap is a bijection on a pair.  (Contributed by Mario
     Carneiro, 23-Jan-2015.) $)
  f1oprswap $p |- ( ( A e. V /\ B e. W ) ->
      { <. A , B >. , <. B , A >. } : { A , B } -1-1-onto-> { A , B } ) $=
    ( wcel wa cpr cop wf1o wceq csn f1osng anidms ad2antrr dfsn2 syl5eq wfn cun
    ccnv cnvsng wb opeq2 opeq1 preq12d preq2 f1oeq123d adantl wne simpll simplr
    mpbid simpr fnprg syl221anc ancoms uneq12d uncom syl6eq adantr df-pr cnveqi
    cnvun eqtri 3eqtr4g fneq1d mpbird dff1o4 sylanbrc pm2.61dane ) ACEZBDEZFZAB
    GZVMABHZBAHZGZIZABVLABJZFAKZVSAAHZKZIZVQVJWBVKVRVJWBAACCLMNVRWBVQUAVLVRVSVM
    VSVMWAVPVRWAVTVTGVPVTOVRVTVNVTVOABAUBABAUCUDPVRVSAAGVMAOABAUEPZWCUFUGUKVLAB
    UHZFZVPVMQZVPSZVMQZVQWEVJVKVKVJWDWFVJVKWDUIZVJVKWDUJZWJWIVLWDULABBACDDCUMUN
    ZWEWHWFWKWEVMWGVPWEVNKZSZVOKZSZRZWLWNRZWGVPVLWPWQJWDVLWPWNWLRWQVLWMWNWOWLAB
    CDTVKVJWOWLJBADCTUOUPWNWLUQURUSWGWQSWPVPWQVNVOUTZVAWLWNVBVCWRVDVEVFVMVMVPVG
    VHVI $.

  $( An unordered pair of ordered pairs with different elements is a one-to-one
     onto function, analogous to ~ f1oprswap .  (Contributed by Alexander van
     der Vekens, 14-Aug-2017.) $)
  f1oprg $p |- ( ( ( A e. V /\ B e. W ) /\ ( C e. X /\ D e. Y ) )
      -> ( ( A =/= C /\ B =/= D )
      -> { <. A , B >. , <. C , D >. } : { A , C } -1-1-onto-> { B , D } ) ) $=
    ( wcel wa wne cpr cop wf1o csn cun wceq df-pr eqcomi a1i c0 f1osng ad2antrr
    cin ad2antlr disjsn2 ad2antrl ad2antll f1oun syl22anc f1oeq123d mpbid ex )
    AEIBFIJZCGIDHIJZJZACKZBDKZJZACLZBDLZABMZCDMZLZNZUPUSJZAOZCOZPZBOZDOZPZVBOZV
    COZPZNZVEVFVGVJVMNZVHVKVNNZVGVHUDUAQZVJVKUDUAQZVPUNVQUOUSABEFUBUCUOVRUNUSCD
    GHUBUEUQVSUPURACUFUGURVTUPUQBDUFUHVGVJVHVKVMVNUIUJVFVIUTVLVAVOVDVOVDQVFVDVO
    VBVCRSTVIUTQVFUTVIACRSTVLVAQVFVAVLBDRSTUKULUM $.

  ${
    $d x F $.  $d x A $.
    $( Function value when ` F ` is not a function.  Theorem 6.12(2) of
       [TakeutiZaring] p. 27.  (Contributed by NM, 30-Apr-2004.)  (Proof
       shortened by Mario Carneiro, 31-Aug-2015.) $)
    tz6.12-2 $p |- ( -. E! x A F x -> ( F ` A ) = (/) ) $=
      ( cv wbr weu wn cfv cio c0 df-fv iotanul syl5eq ) BADCEZAFGBCHNAIJABCKNAL
      M $.

    $( The value of a function at a unique point.  (Contributed by Scott
       Fenton, 6-Oct-2017.) $)
    fveu $p |- ( E! x A F x -> ( F ` A ) = U. { x | A F x } ) $=
      ( cv wbr weu cfv cio cab cuni df-fv iotauni syl5eq ) BADCEZAFBCGNAHNAIJAB
      CKNALM $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( If ` A ` is a proper class and ` F ` is any class, then there is no
       unique set which is related to ` A ` through the binary relation ` F ` .
       (Contributed by Scott Fenton, 7-Oct-2017.) $)
    brprcneu $p |- ( -. A e. _V -> -. E! x A F x ) $=
      ( vy wcel wn cv wbr wex wi wa weq cop c0 exnal sylibr opprc1 eleq1d df-br
      wal cvv wmo weu dtru equcom albii xchbinx mpbir jctr 19.42v anbi12d anidm
      syl6bb anbi1d exbidv imbi12d mpbiri anbi12i anbi1i 3imtr4g eximdv exanali
      exbii breq2 mo4 notbii 3bitr4ri syl6ibr eu5 imnan bitr4i ) BUAEFZBAGZCHZA
      IZVNAUBZFZJZVNAUCZFZVLVOVNBDGZCHZKZADLZFZKZDIZAIZVQVLVNWGAVLBVMMZCEZWJBWA
      MZCEZKZWEKZDIZVNWGVLWJWOJNCEZWPWEKZDIZJWPWPWEDIZKWRWPWSWSDALZDTZFDAUDWSWD
      DTXAWDDOWDWTDADUEUFUGUHUIWPWEDUJPVLWJWPWOWRVLWINCBVMQRZVLWNWQDVLWMWPWEVLW
      MWPWPKWPVLWJWPWLWPXBVLWKNCBWAQRUKWPULUMUNUOUPUQBVMCSZWFWNDWCWMWEVNWJWBWLX
      CBWACSURUSVCUTVAWCWDJDTZFZAIXDATZFWHVQXDAOWGXEAWCWDDVBVCVPXFVNWBADVMWABCV
      DVEVFVGVHVTVOVPKZFVRVSXGVNAVIVFVOVPVJVKP $.
  $}

  ${
    $d x A $.  $d x F $.
    $( A function's value at a proper class is the empty set.  (Contributed by
       NM, 20-May-1998.) $)
    fvprc $p |- ( -. A e. _V -> ( F ` A ) = (/) ) $=
      ( vx cvv wcel wn cv wbr weu cfv c0 wceq brprcneu tz6.12-2 syl ) ADEFACGBH
      CIFABJKLCABMCABNO $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( Alternate definition of function value.  Definition 10.11 of [Quine]
       p. 68.  (Contributed by NM, 30-Apr-2004.)  (Proof shortened by Andrew
       Salmon, 17-Sep-2011.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    fv2 $p |- ( F ` A ) = U. { x | A. y ( A F y <-> y = x ) } $=
      ( cfv cv wbr cio weq wb wal cab cuni df-fv dfiota2 eqtri ) CDECBFDGZBHQBA
      IJBKALMBCDNQBAOP $.
  $}

  ${
    $d F x $.  $d A x $.
    $( A definition of function value in terms of iota.  (Contributed by Scott
       Fenton, 19-Feb-2013.) $)
    dffv3 $p |- ( F ` A ) = ( iota x x e. ( F " { A } ) ) $=
      ( cvv wcel cfv cv csn cima cio wceq wbr wb vex wa cop iotabidv wn syl6eq
      c0 elimasng df-br syl6bbr mpan2 df-fv syl6reqr fvprc snprc biimpi imaeq2d
      ima0 eleq2d weu wex noel nex euex mto iotanul ax-mp eqtr4d pm2.61i ) BDEZ
      BCFZAGZCBHZIZEZAJZKVCVIBVECLZAJVDVCVHVJAVCVEDEZVHVJMANVCVKOVHBVEPCEVJCBVE
      DDUABVECUBUCUDQABCUEUFVCRZVDTVIBCUGVLVIVETEZAJZTVLVHVMAVLVGTVEVLVGCTITVLV
      FTCVLVFTKBUHUIUJCUKSULQVMAUMZRVNTKVOVMAUNVMAVEUOUPVMAUQURVMAUSUTSVAVB $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( The previous definition of function value, from before the ` iota `
       operator was introduced.  Although based on the idea embodied by
       Definition 10.2 of [Quine] p. 65 (see ~ args ), this definition
       apparently does not appear in the literature.  (Contributed by NM,
       1-Aug-1994.) $)
    dffv4 $p |- ( F ` A ) = U. { x | ( F " { A } ) = { x } } $=
      ( vy cfv csn cima wcel cio cab wceq cuni dffv3 df-iota abid2 eqeq1i abbii
      cv unieqi 3eqtri ) BCEDRCBFGZHZDIUBDJZARFZKZAJZLUAUDKZAJZLDBCMUBDANUFUHUE
      UGAUCUAUDDUAOPQST $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x y F $.
    $( Membership in a function value.  (Contributed by NM, 30-Apr-2004.) $)
    elfv $p |- ( A e. ( F ` B ) <->
               E. x ( A e. x /\ A. y ( B F y <-> y = x ) ) ) $=
      ( cfv wcel cv wbr weq wb wal cab cuni wa wex fv2 eleq2i eluniab bitri ) C
      DEFZGCDBHEIBAJKBLZAMNZGCAHGUBOAPUAUCCABDEQRUBACST $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.  $d x G $.
    $( Equality theorem for function value.  (Contributed by NM,
       29-Dec-1996.) $)
    fveq1 $p |- ( F = G -> ( F ` A ) = ( G ` A ) ) $=
      ( vx wceq cv wbr cio cfv breq iotabidv df-fv 3eqtr4g ) BCEZADFZBGZDHAOCGZ
      DHABIACINPQDAOBCJKDABLDACLM $.

    $( Equality theorem for function value.  (Contributed by NM,
       29-Dec-1996.) $)
    fveq2 $p |- ( A = B -> ( F ` A ) = ( F ` B ) ) $=
      ( vx wceq cv wbr cio cfv breq1 iotabidv df-fv 3eqtr4g ) ABEZADFZCGZDHBOCG
      ZDHACIBCINPQDABOCJKDACLDBCLM $.
  $}

  ${
    fveq1i.1 $e |- F = G $.
    $( Equality inference for function value.  (Contributed by NM,
       2-Sep-2003.) $)
    fveq1i $p |- ( F ` A ) = ( G ` A ) $=
      ( wceq cfv fveq1 ax-mp ) BCEABFACFEDABCGH $.
  $}

  ${
    fveq1d.1 $e |- ( ph -> F = G ) $.
    $( Equality deduction for function value.  (Contributed by NM,
       2-Sep-2003.) $)
    fveq1d $p |- ( ph -> ( F ` A ) = ( G ` A ) ) $=
      ( wceq cfv fveq1 syl ) ACDFBCGBDGFEBCDHI $.
  $}

  ${
    fveq2i.1 $e |- A = B $.
    $( Equality inference for function value.  (Contributed by NM,
       28-Jul-1999.) $)
    fveq2i $p |- ( F ` A ) = ( F ` B ) $=
      ( wceq cfv fveq2 ax-mp ) ABEACFBCFEDABCGH $.
  $}

  ${
    fveq2d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for function value.  (Contributed by NM,
       29-May-1999.) $)
    fveq2d $p |- ( ph -> ( F ` A ) = ( F ` B ) ) $=
      ( wceq cfv fveq2 syl ) ABCFBDGCDGFEBCDHI $.
  $}

  ${
    fveq12i.1 $e |- F = G $.
    fveq12i.2 $e |- A = B $.
    $( Equality deduction for function value.  (Contributed by FL,
       27-Jun-2014.) $)
    fveq12i $p |- ( F ` A ) = ( G ` B ) $=
      ( cfv fveq1i fveq2i eqtri ) ACGADGBDGACDEHABDFIJ $.
  $}

  ${
    fveq12d.1 $e |- ( ph -> F = G ) $.
    fveq12d.2 $e |- ( ph -> A = B ) $.
    $( Equality deduction for function value.  (Contributed by FL,
       22-Dec-2008.) $)
    fveq12d $p |- ( ph -> ( F ` A ) = ( G ` B ) ) $=
      ( cfv fveq1d fveq2d eqtrd ) ABDHBEHCEHABDEFIABCEGJK $.
  $}

  ${
    $d y F $.  $d y A $.  $d x y $.
    nffv.1 $e |- F/_ x F $.
    nffv.2 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for function value.  (Contributed by
       NM, 14-Nov-1995.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nffv $p |- F/_ x ( F ` A ) $=
      ( vy cfv cv wbr cio df-fv nfcv nfbr nfiota nfcxfr ) ABCGBFHZCIZFJFBCKQAFA
      BPCEDAPLMNO $.
  $}

  ${
    $d x C $.
    $( Bound-variable hypothesis builder for mapping, special case.
       (Contributed by Mario Carneiro, 25-Dec-2016.) $)
    nffvmpt1 $p |- F/_ x ( ( x e. A |-> B ) ` C ) $=
      ( cmpt nfmpt1 nfcv nffv ) ADABCEABCFADGH $.
  $}

  ${
    $d z A $.  $d z F $.  $d x z $.
    nffvd.2 $e |- ( ph -> F/_ x F ) $.
    nffvd.3 $e |- ( ph -> F/_ x A ) $.
    $( Deduction version of bound-variable hypothesis builder ~ nffv .
       (Contributed by NM, 10-Nov-2005.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    nffvd $p |- ( ph -> F/_ x ( F ` A ) ) $=
      ( vz cv wcel wal cab cfv wnfc nfaba1 nffv wb wa nfnfc1 wceq abidnf adantr
      nfan adantl fveq12d nfceqdf syl2anc mpbii ) ABGHZCIZBJGKZUHDIZBJGKZLZMZBC
      DLZMZBUJULUKBGNUIBGNOABDMZBCMZUNUPPEFUQURQZBUMUOUQURBBDRBCRUBUSUJCULDUQUL
      DSURBGDTUAURUJCSUQBGCTUCUDUEUFUG $.
  $}

  ${
    $d x A $.  $d x F $.
    $( The value of a class exists.  Corollary 6.13 of [TakeutiZaring] p. 27.
       (Contributed by NM, 30-Dec-1996.) $)
    fvex $p |- ( F ` A ) e. _V $=
      ( vx cfv cv wbr cio cvv df-fv iotaex eqeltri ) ABDACEBFZCGHCABILCJK $.
  $}

  ${
    fvexi.1 $e |- A = ( F ` B ) $.
    $( The value of a class exists.  Inference form of ~ fvex .  (Contributed
       by Glauco Siliprandi, 23-Oct-2021.) $)
    fvexi $p |- A e. _V $=
      ( cfv cvv fvex eqeltri ) ABCEFDBCGH $.
  $}

  $( The value of a class exists (as consequent of anything).  (Contributed by
     Glauco Siliprandi, 23-Oct-2021.) $)
  fvexd $p |- ( ph -> ( F ` A ) e. _V ) $=
    ( cfv cvv wcel fvex a1i ) BCDEFABCGH $.

  $( Move a conditional outside of a function.  (Contributed by Jeff Madsen,
     2-Sep-2009.) $)
  fvif $p |- ( F ` if ( ph , A , B ) ) = if ( ph , ( F ` A ) , ( F ` B ) ) $=
    ( cif cfv fveq2 ifsb ) ABCABCEZDFBDFCDFIBDGICDGH $.

  $( Move a conditional outside of a function.  (Contributed by Thierry Arnoux,
     28-Sep-2018.) $)
  iffv $p |- ( if ( ph , F , G ) ` A ) = if ( ph , ( F ` A ) , ( G ` A ) ) $=
    ( cif cfv fveq1 ifsb ) ACDBACDEZFBCFBDFBICGBIDGH $.

  ${
    $d x y z F $.  $d x y z A $.
    $( Alternate definition of the value of a function.  Definition 6.11 of
       [TakeutiZaring] p. 26.  (Contributed by NM, 30-Apr-2004.)  (Revised by
       Mario Carneiro, 31-Aug-2015.) $)
    fv3 $p |- ( F ` A ) = { x | ( E. y ( x e. y /\ A F y ) /\
              E! y A F y ) } $=
      ( vz cv wcel wbr wa wex weu cfv weq wb wal elfv wi biimpr breq2 sylib vex
      alimi ceqsalv anim2i eximi elequ2 anbi12d cbvexv exsimpr df-eu sylibr jca
      nfeu1 nfv nfa1 nfan nfex nfim biimp ax9 syl6 com23 impd sps anc2ri eximdv
      com12 syl5bi exlimi imp impbii bitri abbi2i ) AFZBFZGZCVODHZIZBJZVQBKZIZA
      CDLZVNWBGVNEFZGZVQBEMZNZBOZIZEJZWAEBVNCDPWIWAWIVSVTWIWDCWCDHZIZEJVSWHWKEW
      GWJWDWGWEVQQZBOWJWFWLBVQWERUBVQWJBWCEUAVOWCCDSUCTUDUEWKVREBEBMWDVPWJVQEBA
      UFWCVOCDSUGUHTWIWGEJZVTWDWGEUIVQBEUJZUKULVSVTWIVRVTWIQBVTWIBVQBUMWHBEWDWG
      BWDBUNWFBUOUPUQURVTWMVRWIWNVRWGWHEWGVRWHWGVRWDWFVRWDQBWFVPVQWDWFVQVPWDWFV
      QWEVPWDQVQWEUSBEAUTVAVBVCVDVEVGVFVHVIVJVKVLVM $.
  $}

  ${
    $d x F $.  $d x A $.  $d x B $.
    $( The value of a restricted function.  (Contributed by NM, 2-Aug-1994.) $)
    fvres $p |- ( A e. B -> ( ( F |` B ) ` A ) = ( F ` A ) ) $=
      ( vx wcel cv cres wbr cio cfv vex brres rbaib iotabidv df-fv 3eqtr4g ) AB
      EZADFZCBGZHZDIARCHZDIASJACJQTUADTUAQARCBDKLMNDASODACOP $.
  $}

  ${
    fvresd.1 $e |- ( ph -> A e. B ) $.
    $( The value of a restricted function, deduction version of ~ fvres .
       (Contributed by Glauco Siliprandi, 8-Apr-2021.) $)
    fvresd $p |- ( ph -> ( ( F |` B ) ` A ) = ( F ` A ) ) $=
      ( wcel cres cfv wceq fvres syl ) ABCFBDCGHBDHIEBCDJK $.
  $}

  $( The value of a member of the domain of a subclass of a function.
     (Contributed by NM, 15-Aug-1994.) $)
  funssfv $p |- ( ( Fun F /\ G C_ F /\ A e. dom G ) ->
                ( F ` A ) = ( G ` A ) ) $=
    ( wfun wss cdm wcel cfv wceq wa cres fvres eqcomd funssres fveq1d sylan9eqr
    3impa ) BDZCBEZACFZGZABHZACHZIUARSJZUBABTKZHZUCUAUFUBATBLMUDAUECBCNOPQ $.

  ${
    $d y F $.  $d y A $.
    $( Function value.  Theorem 6.12(1) of [TakeutiZaring] p. 27.  (Contributed
       by NM, 30-Apr-2004.) $)
    tz6.12-1 $p |- ( ( A F y /\ E! y A F y ) -> ( F ` A ) = y ) $=
      ( cv wbr weu wa cfv cio df-fv wceq iota1 biimpac syl5eq ) BADZCEZPAFZGBCH
      PAIZOABCJQPROKPALMN $.

    $( Function value.  Theorem 6.12(1) of [TakeutiZaring] p. 27.  (Contributed
       by NM, 10-Jul-1994.) $)
    tz6.12 $p |- ( ( <. A , y >. e. F /\ E! y <. A , y >. e. F ) ->
                 ( F ` A ) = y ) $=
      ( cv cop wcel wbr weu cfv wceq df-br eubii tz6.12-1 syl2anbr ) BADZECFZBO
      CGZQAHBCIOJPAHBOCKZQPARLABCMN $.
  $}

  ${
    $d A y z $.  $d z F $.
    tz6.12f.1 $e |- F/_ y F $.
    $( Function value, using bound-variable hypotheses instead of distinct
       variable conditions.  (Contributed by NM, 30-Aug-1999.) $)
    tz6.12f $p |- ( ( <. A , y >. e. F /\ E! y <. A , y >. e. F ) ->
                 ( F ` A ) = y ) $=
      ( vz cv cop wcel weu wa cfv wceq wi opeq2 eleq1d wb nfel2 nfv cbveu a1i
      anbi12d eqeq2 imbi12d tz6.12 chvarv ) BEFZGZCHZUHEIZJZBCKZUFLZMBAFZGZCHZU
      OAIZJZUKUMLZMEAUFUMLZUJUQULURUSUHUOUIUPUSUGUNCUFUMBNOZUIUPPUSUHUOEAAUGCDQ
      UOERUTSTUAUFUMUKUBUCEBCUDUE $.
  $}

  ${
    $d y F $.  $d y A $.
    $( Corollary of Theorem 6.12(1) of [TakeutiZaring] p. 27.  (Contributed by
       NM, 30-Apr-2004.) $)
    tz6.12c $p |- ( E! y A F y -> ( ( F ` A ) = y <-> A F y ) ) $=
      ( cv wbr weu cfv wceq wex euex wi nfeu1 nfv tz6.12-1 expcom breq2 biimprd
      nfim syli com12 exlimi mpcom syl5ibcom impbid ) BADZCEZAFZBCGZUEHZUFUGBUH
      CEZUIUFUFAIUGUJUFAJUFUGUJKAUGUJAUFALUJAMRUGUFUJUFUGUIUJUFUGUIABCNOZUIUJUF
      UHUEBCPZQSTUAUBULUCUKUD $.
  $}

  ${
    $d y F $.  $d y A $.  $d y B $.
    $( Corollary of Theorem 6.12(2) of [TakeutiZaring] p. 27.  (Contributed by
       Mario Carneiro, 17-Nov-2014.) $)
    tz6.12i $p |- ( B =/= (/) -> ( ( F ` A ) = B -> A F B ) ) $=
      ( vy cfv wceq c0 wne wbr wi fvex cv neeq1 tz6.12-2 necon1ai tz6.12c breq2
      weu wb 3imtr3d syl biimpcd sylbird eqcoms vtocle a1i com12 ) ACEZBFZBGHZA
      BCIZUIUHGHZAUHCIZUJUKULUMJZUIUNDUHACKDLZUHFUOGHZAUOCIZULUMUPUQJUHUOUHUOFZ
      UPULUQUHUOGMULURUQULUQDRZURUQSUSUHGDACNODACPUAUBUCUDUOUHGMUOUHACQTUEUFUHB
      GMUHBACQTUG $.
  $}

  $( Two possibilities for the behavior of a function value.  (Contributed by
     Stefan O'Rear, 2-Nov-2014.)  (Proof shortened by Mario Carneiro,
     31-Aug-2015.) $)
  fvbr0 $p |- ( X F ( F ` X ) \/ ( F ` X ) = (/) ) $=
    ( cfv wbr c0 wceq wne eqid tz6.12i mpi necon1bi orri ) BBACZADZMEFNMEMEGMMF
    NMHBMAIJKL $.

  $( A function value is a member of the range plus null.  (Contributed by
     Scott Fenton, 8-Jun-2011.)  (Revised by Stefan O'Rear, 3-Jan-2015.) $)
  fvrn0 $p |- ( F ` X ) e. ( ran F u. { (/) } ) $=
    ( cfv c0 wceq crn csn cun wcel id ssun2 0ex snid sselii syl6eqel wn cvv wbr
    ssun1 con1i fvprc fvexd fvbr0 ori brelrng syl3anc sseldi pm2.61i ) BACZDEZU
    IAFZDGZHZIUJUIDUMUJJULUMDULUKKDLMNOUJPZUKUMUIUKULSUNBQIZUIQIBUIARZUIUKIUOUJ
    BAUATUNBAUBUPUJUPUJABUCUDTBUIAQQUEUFUGUH $.

  $( The result of a function value is always a subset of the union of the
     range, even if it is invalid and thus empty.  (Contributed by Stefan
     O'Rear, 2-Nov-2014.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
  fvssunirn $p |- ( F ` X ) C_ U. ran F $=
    ( cfv crn c0 csn cun cuni wcel wss fvrn0 elssuni ax-mp uniun 0ex uneq2i un0
    unisn 3eqtri sseqtri ) BACZADZEFZGZHZUBHZUAUDIUAUEJABKUAUDLMUEUFUCHZGUFEGUF
    UBUCNUGEUFEORPUFQST $.

  ${
    $d x A $.  $d x F $.
    $( The value of a class outside its domain is the empty set.  (Contributed
       by NM, 24-Aug-1995.) $)
    ndmfv $p |- ( -. A e. dom F -> ( F ` A ) = (/) ) $=
      ( vx cvv wcel cdm wn cfv c0 wceq wi cv wbr weu wex eldmg syl5ibr tz6.12-2
      euex con3d syl6 fvprc a1d pm2.61i ) ADEZABFEZGZABHIJZKUEUGACLBMZCNZGUHUEU
      JUFUJUFUEUICOUICSCABDPQTCABRUAUEGUHUGABUBUCUD $.
  $}

  ${
    ndmfvrcl.1 $e |- dom F = S $.
    ndmfvrcl.2 $e |- -. (/) e. S $.
    $( Reverse closure law for function with the empty set not in its domain.
       (Contributed by NM, 26-Apr-1996.) $)
    ndmfvrcl $p |- ( ( F ` A ) e. S -> A e. S ) $=
      ( cfv wcel cdm wn c0 ndmfv eleq1d mtbiri con4i syl6eleq ) ACFZBGZACHZBARG
      ZQSIZQJBGETPJBACKLMNDO $.
  $}

  $( If a function value has a member, the argument belongs to the domain.
     (Contributed by NM, 12-Feb-2007.) $)
  elfvdm $p |- ( A e. ( F ` B ) -> B e. dom F ) $=
    ( cfv wcel c0 wne cdm ne0i ndmfv necon1ai syl ) ABCDZEMFGBCHEZMAINMFBCJKL
    $.

  $( If a function value has a member, the argument is a set.  (Contributed by
     Mario Carneiro, 6-Nov-2015.) $)
  elfvex $p |- ( A e. ( F ` B ) -> B e. _V ) $=
    ( cfv wcel cdm cvv elfvdm elex syl ) ABCDEBCFZEBGEABCHBKIJ $.

  ${
    elfvexd.1 $e |- ( ph -> A e. ( B ` C ) ) $.
    $( If a function value is nonempty, its argument is a set.  Deduction form
       of ~ elfvex .  (Contributed by David Moews, 1-May-2017.) $)
    elfvexd $p |- ( ph -> C e. _V ) $=
      ( cfv wcel cvv elfvex syl ) ABDCFGDHGEBDCIJ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( A non-nul function value is an element of the image of the function.
       (Contributed by Thierry Arnoux, 25-Jun-2019.) $)
    eliman0 $p |- ( ( A e. B /\ -. ( F ` A ) = (/) )
      -> ( F ` A ) e. ( F " B ) ) $=
      ( vx wcel cfv c0 wceq wn wa cv wbr wrex cima fvbr0 orcom mpbi ori breq1
      wo rspcev sylan2 fvex elima sylibr ) ABEZACFZGHZIZJDKZUGCLZDBMZUGCBNEUIUF
      AUGCLZULUHUMUMUHTUHUMTCAOUMUHPQRUKUMDABUJAUGCSUAUBDUGCBACUCUDUE $.
  $}

  $( The value of a non-member of a restriction is the empty set.  (Contributed
     by NM, 13-Nov-1995.) $)
  nfvres $p |- ( -. A e. B -> ( ( F |` B ) ` A ) = (/) ) $=
    ( wcel wn cres cdm cfv wceq cin dmres inss1 eqsstri sseli con3i ndmfv syl
    c0 ) ABDZEACBFZGZDZEATHRIUBSUABAUABCGZJBCBKBUCLMNOATPQ $.

  ${
    $d x y A $.  $d x y F $.
    $( If the restriction of a class to a singleton is not a function, its
       value is the empty set.  (Contributed by NM, 8-Aug-2010.)  (Proof
       shortened by Andrew Salmon, 22-Oct-2011.) $)
    nfunsn $p |- ( -. Fun ( F |` { A } ) -> ( F ` A ) = (/) ) $=
      ( vx vy cfv c0 wceq csn cres wfun wn wrel cv wbr wmo wal weu eumo sylbi
      wa wcel vex brres wb velsn breq1 biimpac moimi syl tz6.12-2 nsyl4 alrimiv
      relres jctil dffun6 sylibr con1i ) ABEFGZBAHZIZJZURKZUTLZCMZDMZUTNZDOZCPZ
      TVAVBVHVCVBVGCAVEBNZDQZVGURVJVIDOVGVIDRVFVIDVFVDVEBNZVDUSUAZTVIVDVEBUSDUB
      UCVLVKVIVLVDAGVKVIUDCAUEVDAVEBUFSUGSUHUIDABUJUKULBUSUMUNCDUTUOUPUQ $.
  $}

  $( If a class' value at an argument is not the empty set, the argument is
     contained in the domain of the class, and the class restricted to the
     argument is a function.  (Contributed by Alexander van der Vekens,
     26-May-2017.) $)
  fvfundmfvn0 $p |- ( ( F ` A ) =/= (/)
                      -> ( A e. dom F /\ Fun ( F |` { A } ) ) ) $=
    ( cdm wcel csn cres wfun wa cfv c0 wn wo wceq ianor ndmfv nfunsn jaoi sylbi
    necon1ai ) ABCDZBAEFGZHZABIZJUBKTKZUAKZLUCJMZTUANUDUFUEABOABPQRS $.

  $( Function value of the empty set.  (Contributed by Stefan O'Rear,
     26-Nov-2014.) $)
  0fv $p |- ( (/) ` A ) = (/) $=
    ( c0 cdm wcel wn cfv wceq noel dm0 eleq2i mtbir ndmfv ax-mp ) ABCZDZEABFBGO
    ABDAHNBAIJKABLM $.

  $( A function's value at a function's value at a proper class is the empty
     set.  (Contributed by AV, 8-Apr-2021.) $)
  fv2prc $p |- ( -. A e. _V -> ( ( F ` A ) ` B ) = (/) ) $=
    ( cvv wcel wn cfv c0 fvprc fveq1d 0fv syl6eq ) ADEFZBACGZGBHGHMBNHACIJBKL
    $.

  $( If a function value of a function value has a member, the first argument
     is a set.  (Contributed by AV, 8-Apr-2021.) $)
  elfv2ex $p |- ( A e. ( ( F ` B ) ` C ) -> B e. _V ) $=
    ( cvv wcel cfv wi ax-1 wn c0 fv2prc eleq2d noel pm2.21i syl6bi pm2.61i ) BE
    FZACBDGGZFZRHRTIRJZTAKFZRUASKABCDLMUBRANOPQ $.

  $( Equal values imply equal values in a restriction.  (Contributed by NM,
     13-Nov-1995.) $)
  fveqres $p |- ( ( F ` A ) = ( G ` A ) ->
                ( ( F |` B ) ` A ) = ( ( G |` B ) ` A ) ) $=
    ( wcel cfv wceq cres wi fvres eqeq12d biimprd wn nfvres eqtr4d a1d pm2.61i
    c0 ) ABEZACFZADFZGZACBHFZADBHFZGZISUEUBSUCTUDUAABCJABDJKLSMZUEUBUFUCRUDABCN
    ABDNOPQ $.

  ${
    $d y A $.  $d y B $.  $d y F $.  $d x y $.
    $( Move class substitution in and out of a function value.  (Contributed by
       NM, 11-Nov-2005.)  (Revised by NM, 20-Aug-2018.) $)
    csbfv12 $p |- [_ A / x ]_ ( F ` B ) = ( [_ A / x ]_ F ` [_ A / x ]_ B ) $=
      ( vy cvv wcel cfv csb wceq cv wbr cio csbiota sbcbr123 csbconstg df-fv c0
      wsbc csbprc breq2d syl5bb iotabidv syl5eq csbeq2i 3eqtr4g wn fveq1d eqtrd
      0fv syl6req pm2.61i ) BFGZABCDHZIZABCIZABDIZHZJUMABCEKZDLZEMZIZUPUSUQLZEM
      ZUOURUMVBUTABSZEMVDUTAEBNUMVEVCEVEUPABUSIZUQLUMVCABCUSDOUMVFUSUPUQABUSFPU
      AUBUCUDABUNVAECDQUEEUPUQQUFUMUGZUORURABUNTVGURUPRHRVGUPUQRABDTUHUPUJUKUIU
      L $.
  $}

  ${
    $d x F $.
    $( Move class substitution in and out of a function value.  (Contributed by
       NM, 10-Nov-2005.) $)
    csbfv2g $p |- ( A e. C -> [_ A / x ]_ ( F ` B ) =
                  ( F ` [_ A / x ]_ B ) ) $=
      ( wcel cfv csb csbfv12 csbconstg fveq1d syl5eq ) BDFZABCEGHABCHZABEHZGNEG
      ABCEIMNOEABEDJKL $.

    $( Substitution for a function value.  (Contributed by NM, 1-Jan-2006.)
       (Revised by NM, 20-Aug-2018.) $)
    csbfv $p |- [_ A / x ]_ ( F ` x ) = ( F ` A ) $=
      ( cvv wcel cv cfv csb csbfv2g csbvarg fveq2d eqtrd wn csbprc fvprc eqtr4d
      wceq c0 pm2.61i ) BDEZABAFZCGZHZBCGZQTUCABUAHZCGUDABUADCITUEBCABDJKLTMUCR
      UDABUBNBCOPS $.
  $}

  ${
    $d y A $.  $d y F $.  $d y B $.
    $( The second argument of a binary relation on a function is the function's
       value.  (Contributed by NM, 30-Apr-2004.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    funbrfv $p |- ( Fun F -> ( A F B -> ( F ` A ) = B ) ) $=
      ( vy wfun wbr cfv wceq cvv wcel wa wrel funrel brrelex2 sylan cv wi breq2
      anbi2d eqeq2 imbi12d weu funeu tz6.12-1 sylan2 anabss7 vtoclg mpcom ex )
      CEZABCFZACGZBHZBIJZUJUKKZUMUJCLUKUNCMABCNOUJADPZCFZKZULUPHZQUOUMQDBIUPBHZ
      URUOUSUMUTUQUKUJUPBACRSUPBULTUAUJUQUSURUQUQDUBUSDAUPCUCDACUDUEUFUGUHUI $.
  $}

  $( The second element in an ordered pair member of a function is the
     function's value.  (Contributed by NM, 19-Jul-1996.) $)
  funopfv $p |- ( Fun F -> ( <. A , B >. e. F -> ( F ` A ) = B ) ) $=
    ( cop wcel wbr wfun cfv wceq df-br funbrfv syl5bir ) ABDCEABCFCGACHBIABCJAB
    CKL $.

  ${
    $d x F $.  $d x A $.  $d x B $.
    $( Equivalence of function value and binary relation.  (Contributed by NM,
       19-Apr-2004.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
    fnbrfvb $p |- ( ( F Fn A /\ B e. A ) -> ( ( F ` B ) = C <-> B F C ) ) $=
      ( vx wfn wcel wa cfv wceq wbr eqid cv wb wi fvex eqeq2 breq2 bibi12d syl
      imbi2d weu fneu tz6.12c vtocl mpbii syl5ibcom fnfun funbrfv adantr impbid
      wfun ) DAFZBAGZHZBDIZCJZBCDKZUOBUPDKZUQURUOUPUPJZUSUPLUOUPEMZJZBVADKZNZOU
      OUTUSNZOEUPBDPVAUPJZVDVEUOVFVBUTVCUSVAUPUPQVAUPBDRSUAUOVCEUBVDEABDUCEBDUD
      TUEUFUPCBDRUGUMURUQOZUNUMDULVGADUHBCDUITUJUK $.
  $}

  $( Equivalence of function value and ordered pair membership.  (Contributed
     by NM, 7-Nov-1995.) $)
  fnopfvb $p |- ( ( F Fn A /\ B e. A ) ->
                 ( ( F ` B ) = C <-> <. B , C >. e. F ) ) $=
    ( wfn wcel wa cfv wceq wbr cop fnbrfvb df-br syl6bb ) DAEBAFGBDHCIBCDJBCKDF
    ABCDLBCDMN $.

  $( Equivalence of function value and binary relation.  (Contributed by NM,
     26-Mar-2006.) $)
  funbrfvb $p |- ( ( Fun F /\ A e. dom F ) -> ( ( F ` A ) = B <-> A F B ) ) $=
    ( wfun cdm wfn wcel cfv wceq wbr wb funfn fnbrfvb sylanb ) CDCCEZFAOGACHBIA
    BCJKCLOABCMN $.

  $( Equivalence of function value and ordered pair membership.  Theorem
     4.3(ii) of [Monk1] p. 42.  (Contributed by NM, 26-Jan-1997.) $)
  funopfvb $p |- ( ( Fun F /\ A e. dom F ) ->
                 ( ( F ` A ) = B <-> <. A , B >. e. F ) ) $=
    ( wfun cdm wfn wcel cfv wceq cop wb funfn fnopfvb sylanb ) CDCCEZFAOGACHBIA
    BJCGKCLOABCMN $.

  $( Version of ~ fnbrfvb for functions on Cartesian products: function value
     expressed as a binary relation.  See ~ fnbrovb for the form when ` F ` is
     seen as a binary operation.  (Contributed by BJ, 15-Feb-2022.) $)
  fnbrfvb2 $p |- ( ( F Fn ( V X. W ) /\ ( A e. V /\ B e. W ) ) ->
                           ( ( F ` <. A , B >. ) = C <-> <. A , B >. F C ) ) $=
    ( wcel wa cxp wfn cop cfv wceq wbr wb opelxpi fnbrfvb sylan2 ) AEGBFGHDEFIZ
    JABKZSGTDLCMTCDNOABEFPSTCDQR $.

  ${
    $d x y A $.  $d x y B $.  $d x y F $.  $d x Y $.
    $( Function value in terms of a binary relation.  (Contributed by Mario
       Carneiro, 19-Mar-2014.) $)
    funbrfv2b $p |- ( Fun F ->
                       ( A F B <-> ( A e. dom F /\ ( F ` A ) = B ) ) ) $=
      ( wfun wbr cdm wcel wa cfv wceq wrel funrel releldm syl pm4.71rd funbrfvb
      wi ex pm5.32da bitr4d ) CDZABCEZACFGZUBHUCACIBJZHUAUBUCUACKZUBUCQCLUEUBUC
      ABCMRNOUAUCUDUBABCPST $.

    $( Representation of a function in terms of its values.  (Contributed by
       FL, 14-Sep-2013.)  (Proof shortened by Mario Carneiro, 31-Aug-2015.) $)
    dffn5 $p |- ( F Fn A <-> F = ( x e. A |-> ( F ` x ) ) ) $=
      ( vy wfn cv cfv cmpt wceq wcel wa copab wbr wrel fnrel dfrel4v sylib fnbr
      ex pm4.71rd eqcom fnbrfvb syl5bb pm5.32da bitr4d opabbidv eqtrd fvex eqid
      df-mpt syl6eqr fnmpti fneq1 mpbiri impbii ) CBEZCABAFZCGZHZIZUPCUQBJZDFZU
      RIZKZADLZUSUPCUQVBCMZADLZVEUPCNCVGIBCOADCPQUPVFVDADUPVFVAVFKVDUPVFVAUPVFV
      ABUQVBCRSTUPVAVCVFVCURVBIUPVAKVFVBURUABUQVBCUBUCUDUEUFUGADBURUJUKUTUPUSBE
      ABURUSUQCUHUSUIULBCUSUMUNUO $.

    $( The range of a function expressed as a collection of the function's
       values.  (Contributed by NM, 20-Oct-2005.)  (Proof shortened by Mario
       Carneiro, 31-Aug-2015.) $)
    fnrnfv $p |- ( F Fn A -> ran F = { y | E. x e. A y = ( F ` x ) } ) $=
      ( wfn crn cv cfv cmpt wceq wrex cab dffn5 rneq sylbi eqid rnmpt syl6eq )
      DCEZDFZACAGDHZIZFZBGUAJACKBLSDUBJTUCJACDMDUBNOABCUAUBUBPQR $.

    $( A member of a function's range is a value of the function.  (Contributed
       by NM, 31-Oct-1995.) $)
    fvelrnb $p |- ( F Fn A -> ( B e. ran F <-> E. x e. A ( F ` x ) = B ) ) $=
      ( vy wfn crn wcel cv cfv wceq wrex cab fnrnfv eleq2d cvv fvex eleq1 mpbii
      syl6bb rexlimivw eqeq1 eqcom rexbidv elab3 ) DBFZCDGZHCEIZAIZDJZKZABLZEMZ
      HUJCKZABLZUFUGUMCAEBDNOULUOECUNCPHZABUNUJPHUPUIDQUJCPRSUAUHCKZUKUNABUQUKC
      UJKUNUHCUJUBCUJUCTUDUET $.

    $( A member of a surjective function's codomain is a value of the function.
       (Contributed by Thierry Arnoux, 23-Jan-2020.) $)
    foelrni $p |- ( ( F : A -onto-> B /\ Y e. B ) -> E. x e. A ( F ` x ) = Y )
      $=
      ( wfo wcel cv cfv wceq wrex crn forn eleq2d wfn fofn fvelrnb syl bitr3d
      wb biimpa ) BCDFZECGZAHDIEJABKZUBEDLZGZUCUDUBUECEBCDMNUBDBOUFUDTBCDPABEDQ
      RSUA $.

    $( Alternate definition of the image of a function.  (Contributed by Raph
       Levien, 20-Nov-2006.) $)
    dfimafn $p |- ( ( Fun F /\ A C_ dom F ) ->
                  ( F " A ) = { y | E. x e. A ( F ` x ) = y } ) $=
      ( wfun cdm wss wa cv cfv wceq wrex cab wbr cima wcel wb ssel funbrfvb ex
      syl9r imp31 rexbidva abbidv dfima2 syl6reqr ) DEZCDFZGZHZAIZDJBIZKZACLZBM
      UKULDNZACLZBMDCOUJUNUPBUJUMUOACUGUIUKCPZUMUOQZUIUQUKUHPZUGURCUHUKRUGUSURU
      KULDSTUAUBUCUDABDCUEUF $.

    $( Alternate definition of the image of a function as an indexed union of
       singletons of function values.  (Contributed by Raph Levien,
       20-Nov-2006.) $)
    dfimafn2 $p |- ( ( Fun F /\ A C_ dom F ) ->
                   ( F " A ) = U_ x e. A { ( F ` x ) } ) $=
      ( vy wfun cdm wss wa cima cv cfv wceq cab ciun wrex dfimafn iunab syl6eqr
      csn wcel df-sn eqcom abbii eqtri a1i iuneq2i ) CEBCFGHZCBIZABAJZCKZDJZLZD
      MZNZABUJSZNUGUHULABODMUNADBCPULADBQRABUOUMUOUMLUIBTUOUKUJLZDMUMDUJUAUPULD
      UKUJUBUCUDUEUFR $.

    $( Membership relation for the values of a function whose image is a
       subclass.  (Contributed by Raph Levien, 20-Nov-2006.) $)
    funimass4 $p |- ( ( Fun F /\ A C_ dom F ) ->
                    ( ( F " A ) C_ B <-> A. x e. A ( F ` x ) e. B ) ) $=
      ( vy cdm wss wfun cima cv cfv wcel wral wb wi wal wa wceq wrex syl5bb wbr
      dfss2 eqcom ssel funbrfvb ex syl9 imp31 rexbidva vex elima imbi1d r19.23v
      syl6rbbr syl6bbr albidv ralcom4 eleq1 ceqsalv ralbii bitr3i syl6bb ancoms
      fvex ) BDFZGZDHZDBIZCGZAJZDKZCLZABMZNVIEJZVHLZVNCLZOZEPZVFVGQZVMEVHCUBVSV
      RVNVKRZVPOZABMZEPZVMVSVQWBEVSVQVTABSZVPOWBVSVOWDVPVSWDVJVNDUAZABSVOVSVTWE
      ABVTVKVNRZVSVJBLZQWEVNVKUCVFVGWGWFWENZVFWGVJVELZVGWHBVEVJUDVGWIWHVJVNDUEU
      FUGUHTUIAVNDBEUJUKUNULVTVPABUMUOUPWCWAEPZABMVMWAAEBUQWJVLABVPVLEVKVJDVDVN
      VKCURUSUTVAVBTVC $.

    $( Function value in an image.  Part of Theorem 4.4(iii) of [Monk1] p. 42.
       (Contributed by NM, 29-Apr-2004.)  (Proof shortened by Andrew Salmon,
       22-Oct-2011.) $)
    fvelima $p |- ( ( Fun F /\ A e. ( F " B ) ) ->
                  E. x e. B ( F ` x ) = A ) $=
      ( wfun cima wcel cv cfv wceq wrex wbr elimag ibi funbrfv reximdv syl5 imp
      ) DEZBDCFZGZAHZDIBJZACKZUAUBBDLZACKZSUDUAUFABDCTMNSUEUCACUBBDOPQR $.
  $}

  ${
    $d x A $.  $d x C $.  $d x F $.
    feqmptd.1 $e |- ( ph -> F : A --> B ) $.
    $( Deduction form of ~ dffn5 .  (Contributed by Mario Carneiro,
       8-Jan-2015.) $)
    feqmptd $p |- ( ph -> F = ( x e. A |-> ( F ` x ) ) ) $=
      ( wfn cv cfv cmpt wceq wf ffn syl dffn5 sylib ) AECGZEBCBHEIJKACDELQFCDEM
      NBCEOP $.

    feqresmpt.2 $e |- ( ph -> C C_ A ) $.
    $( Express a restricted function as a mapping.  (Contributed by Mario
       Carneiro, 18-May-2016.) $)
    feqresmpt $p |- ( ph -> ( F |` C ) = ( x e. C |-> ( F ` x ) ) ) $=
      ( cres cv cfv cmpt fssresd feqmptd fvres mpteq2ia syl6eq ) AFEIZBEBJZRKZL
      BESFKZLABEDRACDEFGHMNBETUASEFOPQ $.
  $}

  ${
    $d x y $.  $d y A $.  $d y F $.
    feqmptdf.1 $e |- F/_ x A $.
    feqmptdf.2 $e |- F/_ x F $.
    feqmptdf.3 $e |- ( ph -> F : A --> B ) $.
    $( Deduction form of ~ dffn5f .  (Contributed by Mario Carneiro,
       8-Jan-2015.)  (Revised by Thierry Arnoux, 10-May-2017.) $)
    feqmptdf $p |- ( ph -> F = ( x e. A |-> ( F ` x ) ) ) $=
      ( vy wf wfn cv cfv cmpt wceq ffn wcel wa copab wbr wrel fnrel nfcv dfrel4
      sylib nffn nfv fnbr pm4.71rd eqcom fnbrfvb syl5bb pm5.32da bitr4d opabbid
      ex eqtrd df-mpt syl6eqr 3syl ) ACDEJECKZEBCBLZEMZNZOHCDEPVAEVBCQZILZVCOZR
      ZBISZVDVAEVBVFETZBISZVIVAEUAEVKOCEUBBIEGIEUCUDUEVAVJVHBIBCEGFUFVAIUGVAVJV
      EVJRVHVAVJVEVAVJVECVBVFEUHUPUIVAVEVGVJVGVCVFOVAVERVJVFVCUJCVBVFEUKULUMUNU
      OUQBICVCURUSUT $.
  $}

  ${
    $d x z $.  $d x z A $.  $d z F $.
    dffn5f.1 $e |- F/_ x F $.
    $( Representation of a function in terms of its values.  (Contributed by
       Mario Carneiro, 3-Jul-2015.) $)
    dffn5f $p |- ( F Fn A <-> F = ( x e. A |-> ( F ` x ) ) ) $=
      ( vz wfn cv cfv cmpt wceq dffn5 nfcv nffv fveq2 cbvmpt eqeq2i bitri ) CBF
      CEBEGZCHZIZJCABAGZCHZIZJEBCKTUCCEABSUBARCDARLMEUBLRUACNOPQ $.
  $}

  ${
    $d y A $.  $d x y B $.  $d x y C $.  $d x y F $.
    $( Function value in an image.  (Contributed by NM, 20-Jan-2007.)  (Proof
       shortened by Andrew Salmon, 22-Oct-2011.)  (Revised by David Abernethy,
       17-Dec-2011.) $)
    fvelimab $p |- ( ( F Fn A /\ B C_ A ) -> ( C e. ( F " B ) <->
                  E. x e. B ( F ` x ) = C ) ) $=
      ( vy wfn wss wa cima wcel cv cfv wceq wrex cvv anim2i eleq1 wb wi rexbidv
      elex fvex mpbii rexlimivw eqeq2 bibi12d imbi2d wfun cdm fnfun fndm sseq2d
      cab biimpar dfimafn syl2an2r abeq2d vtoclg impcom pm5.21nd ) EBGZCBHZIZDE
      CJZKZALZEMZDNZACOZVDDPKZIVFVKVDDVEUBQVJVKVDVIVKACVIVHPKVKVGEUCVHDPRUDUEQV
      KVDVFVJSZVDFLZVEKZVHVMNZACOZSZTVDVLTFDPVMDNZVQVLVDVRVNVFVPVJVMDVERVRVOVIA
      CVMDVHUFUAUGUHVDVPFVEVBEUIVCCEUJZHZVEVPFUNNBEUKVBVTVCVBVSBCBEULUMUOAFCEUP
      UQURUSUTVA $.
  $}

  ${
    $d B x $.  $d C x $.  $d F x $.
    fvelimabd.1 $e |- ( ph -> F Fn A ) $.
    fvelimabd.2 $e |- ( ph -> B C_ A ) $.
    $( Deduction form of ~ fvelimab .  (Contributed by Stanislas Polu,
       9-Mar-2020.) $)
    fvelimabd $p |- ( ph -> ( C e. ( F " B ) <-> E. x e. B ( F ` x ) = C ) ) $=
      ( wfn wss cima wcel cv cfv wceq wrex wb fvelimab syl2anc ) AFCIDCJEFDKLBM
      FNEOBDPQGHBCDEFRS $.
  $}

  $( The value of the identity function.  (Contributed by NM, 1-May-2004.)
     (Revised by Mario Carneiro, 28-Apr-2015.) $)
  fvi $p |- ( A e. V -> ( _I ` A ) = A ) $=
    ( cid wfun wcel wbr cfv wceq funi ididg funbrfv mpsyl ) CDABEAACFACGAHIABJA
    ACKL $.

  ${
    $d x y A $.  $d y B $.  $d x y F $.
    $( The value of the identity function is a subset of the argument.
       (Contributed by Mario Carneiro, 27-Feb-2016.) $)
    fviss $p |- ( _I ` A ) C_ A $=
      ( vx cid cfv cv wcel id cvv wceq elfvex fvi syl eleqtrd ssriv ) BACDZABEZ
      OFZPOAQGQAHFOAIPACJAHKLMN $.

    $( The indexed intersection of a function's values is the intersection of
       its range.  (Contributed by NM, 20-Oct-2005.) $)
    fniinfv $p |- ( F Fn A -> |^|_ x e. A ( F ` x ) = |^| ran F ) $=
      ( vy wfn crn cint cv cfv wceq wrex cab ciin fnrnfv inteqd dfiin2 syl6reqr
      fvex ) CBEZCFZGDHAHZCIZJABKDLZGABUBMSTUCADBCNOADBUBUACRPQ $.

    $( Singleton of function value.  (Contributed by NM, 22-May-1998.) $)
    fnsnfv $p |- ( ( F Fn A /\ B e. A ) -> { ( F ` B ) } = ( F " { B } ) ) $=
      ( vy wfn wcel wa cv cfv wceq cab wbr csn cima eqcom fnbrfvb syl5bb abbidv
      df-sn a1i wrel fnrel relimasn syl adantr 3eqtr4d ) CAEZBAFZGZDHZBCIZJZDKZ
      BUJCLZDKZUKMZCBMNZUIULUNDULUKUJJUIUNUJUKOABUJCPQRUPUMJUIDUKSTUGUQUOJZUHUG
      CUAURACUBDBCUCUDUEUF $.
  $}

  ${
    $d x y z B $.  $d x y z F $.  $d z ph $.  $d x z ps $.
    opabiota.1 $e |- F = { <. x , y >. | { y | ph } = { y } } $.
    $( Define a function whose value is "the unique ` y ` such that
       ` ph ( x , y ) ` ".  (Contributed by NM, 19-May-2015.) $)
    opabiotafun $p |- Fun F $=
      ( vz wfun cab cv csn wceq copab wmo funopab cuni mo2icl unieq vex mpbir
      wi unisn syl6req mpg nfv nfab1 nfeq1 sneq eqeq2d cbvmo mpgbir funeqi ) DG
      ACHZCIZJZKZBCLZGZUQUOCMZBUOBCNURULFIZJZKZFMZVAUSULOZKTVBFVAFVCPVAVCUTOUSU
      LUTQUSFRUAUBUCUOVACFUOFUDCULUTACUEUFUMUSKUNUTULUMUSUGUHUISUJDUPEUKS $.

    $( Define a function whose value is "the unique ` y ` such that
       ` ph ( x , y ) ` ".  (Contributed by NM, 16-Nov-2013.) $)
    opabiotadm $p |- dom F = { x | E! y ph } $=
      ( cab cv csn wceq copab cdm wex weu dmopab dmeqi euabsn abbii 3eqtr4i ) A
      CFCGHIZBCJZKSCLZBFDKACMZBFSBCNDTEOUBUABACPQR $.

    opabiota.2 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( Define a function whose value is "the unique ` y ` such that
       ` ph ( x , y ) ` ".  (Contributed by NM, 16-Nov-2013.) $)
    opabiota $p |- ( B e. dom F -> ( F ` B ) = ( iota y ps ) ) $=
      ( cv cfv cio wceq cdm fveq2 iotabidv eqeq12d wcel vex sylib sylbi wbr wex
      eldm nfiota1 nfeq2 wfun opabiotafun funbrfv ax-mp cab csn cop copab df-br
      wi eleq2i opabid 3bitri vsnid syl5eleqr abid weu breldm opabiotadm abeq2i
      id wb iota1 syl mpbid eqtr4d exlimi vtoclga ) CIZFJZADKZLZEFJZBDKZLCEFMZV
      NELZVOVRVPVSVNEFNWAABDHOPVNVTQZVNDIZFUAZDUBVQDVNFCRZUCWDVQDDVOVPADUDUEWDV
      OWCVPFUFWDVOWCLUOACDFGUGVNWCFUHUIWDAVPWCLZWDADUJZWCUKZLZAWDVNWCULZFQWJWIC
      DUMZQWIVNWCFUNFWKWJGUPWICDUQURWIWCWGQAWIWCWHWGDUSWIVFUTADVASTWDADVBZAWFVG
      WDWBWLVNWCFWEDRVCWLCVTACDFGVDVESADVHVIVJVKVLTVM $.
  $}

  $( The image of a pair under a function.  (Contributed by Jeff Madsen,
     6-Jan-2011.) $)
  fnimapr $p |- ( ( F Fn A /\ B e. A /\ C e. A ) ->
                          ( F " { B , C } ) = { ( F ` B ) , ( F ` C ) } ) $=
    ( wfn wcel w3a csn cima cun cfv fnsnfv 3adant3 3adant2 uneq12d eqcomd df-pr
    cpr wceq imaeq2i imaundi eqtri 3eqtr4g ) DAEZBAFZCAFZGZDBHZIZDCHZIZJZBDKZHZ
    CDKZHZJZDBCRZIZUMUORUGUQULUGUNUIUPUKUDUEUNUISUFABDLMUDUFUPUKSUEACDLNOPUSDUH
    UJJZIULURUTDBCQTDUHUJUAUBUMUOQUC $.

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z F $.
    ssimaex.1 $e |- A e. _V $.
    $( The existence of a subimage.  (Contributed by NM, 8-Apr-2007.) $)
    ssimaex $p |- ( ( Fun F /\ B C_ ( F " A ) ) ->
                 E. x ( x C_ A /\ B = ( F " x ) ) ) $=
      ( vy vz vw cima wss cdm cv wceq wa wex cfv wcel wi ex adantr wfun imaeq2i
      cin cres dmres imadmres eqtr3i sseq2i ssrab2 ssel2 adantll fvelima eleq1a
      crab wrex anim2d fveq2 eleq1d elrab syl6ibr simpr jcad reximdv2 adantl wb
      a1i wfn funfn inss2 sstri fvelimab mpan2 sylbi sylibrd syld adantlr eleq1
      mpd biimpcd rexlimiv impbid eqrdv inex1 rabex sseq1 imaeq2 eqeq2d anbi12d
      syl6 spcev sylancr inss1 sstr anim1i eximi syl sylan2br ) CDBIZJDUAZCDBDK
      ZUCZIZJZALZBJZCDXDIZMZNZAOZXBWRCDDBUDKZIXBWRXJXADDBUEUBDBUFUGUHWSXCNZXDXA
      JZXGNZAOZXIXKFLZDPZCQZFXAUNZXAJZCDXRIZMZXNXQFXAUIZXKGCXTXKGLZCQZYCXTQZXKY
      DYEXKYDNYCXBQZYEXCYDYFWSCXBYCUJUKWSYDYFYERXCWSYDNZYFHLZDPZYCMZHXAUOZYEWSY
      FYKRYDWSYFYKHYCXADULSTYGYKYJHXRUOZYEYDYKYLRWSYDYJYJHXAXRYDYHXAQZYJNZYHXRQ
      ZYJYDYNYMYICQZNZYOYDYJYPYMYCCYIUMUPXQYPFYHXAXOYHMXPYICXOYHDUQURUSZUTYNYJR
      YDYMYJVAVFVBVCVDWSYEYLVEZYDWSDWTVGZYSDVHYTXRWTJYSXRXAWTYBBWTVIVJHWTXRYCDV
      KVLVMTVNVOVPVRSWSYEYDRXCWSYEYLYDWSYEYLHYCXRDULSYJYDHXRYOYQYJYDRZYRYPUUAYM
      YJYPYDYIYCCVQVSVDVMVTWITWAWBXMXSYANAXRXQFXABWTEWCWDXDXRMZXLXSXGYAXDXRXAWE
      UUBXFXTCXDXRDWFWGWHWJWKXMXHAXLXEXGXLXABJXEBWTWLXDXABWMVLWNWOWPWQ $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d F x y $.
    $( The existence of a subimage.  (Contributed by FL, 15-Apr-2007.) $)
    ssimaexg $p |- ( ( A e. C /\ Fun F /\ B C_ ( F " A ) ) ->
                 E. x ( x C_ A /\ B = ( F " x ) ) ) $=
      ( vy wcel wfun cima wss cv wceq wa wex imaeq2 sseq2d anbi2d sseq2 anbi1d
      wi exbidv imbi12d vex ssimaex vtoclg 3impib ) BDGEHZCEBIZJZAKZBJZCEUJILZM
      ZANZUGCEFKZIZJZMZUJUOJZULMZANZTUGUIMZUNTFBDUOBLZURVBVAUNVCUQUIUGVCUPUHCUO
      BEOPQVCUTUMAVCUSUKULUOBUJRSUAUBAUOCEFUCUDUEUF $.
  $}

  $( A simplified expression for the value of a function when we know it's a
     function.  (Contributed by NM, 22-May-1998.) $)
  funfv $p |- ( Fun F -> ( F ` A ) = U. ( F " { A } ) ) $=
    ( wfun cdm wcel cfv csn cima cuni wceq fvex unisn wfn df-fn mpbiran2 fnsnfv
    wa eqid unieqd c0 sylanbr syl5eqr ex wn ndmfv ndmima syl6eq eqtr4d pm2.61d1
    uni0 ) BCZABDZEZABFZBAGHZIZJZUKUMUQUKUMQZUNUNGZIUPUNABKLURUSUOUKBULMZUMUSUO
    JUTUKULULJULRBULNOULABPUASUBUCUMUDZUNTUPABUEVAUPTITVAUOTABUFSUJUGUHUI $.

  ${
    $d y A $.  $d y F $.
    $( The value of a function.  Definition of function value in [Enderton]
       p. 43.  (Contributed by NM, 22-May-1998.) $)
    funfv2 $p |- ( Fun F -> ( F ` A ) = U. { y | A F y } ) $=
      ( wfun cfv csn cima cuni cv wbr cab funfv wrel funrel relimasn syl unieqd
      wceq eqtrd ) CDZBCECBFGZHBAICJAKZHBCLTUAUBTCMUAUBRCNABCOPQS $.
  $}

  ${
    $d w A $.  $d w F $.  $d w y $.
    funfv2f.1 $e |- F/_ y A $.
    funfv2f.2 $e |- F/_ y F $.
    $( The value of a function.  Version of ~ funfv2 using a bound-variable
       hypotheses instead of distinct variable conditions.  (Contributed by NM,
       19-Feb-2006.) $)
    funfv2f $p |- ( Fun F -> ( F ` A ) = U. { y | A F y } ) $=
      ( vw wfun cfv wbr cab cuni funfv2 nfcv nfbr nfv breq2 cbvab unieqi syl6eq
      cv ) CGBCHBFTZCIZFJZKBATZCIZAJZKFBCLUCUFUBUEFAABUACDEAUAMNUEFOUAUDBCPQRS
      $.
  $}

  $( Value of the union of two functions when the domains are separate.
     (Contributed by FL, 7-Nov-2011.) $)
  fvun $p |- ( ( ( Fun F /\ Fun G ) /\ ( dom F i^i dom G ) = (/) ) ->
                ( ( F u. G ) ` A ) = ( ( F ` A ) u. ( G ` A ) ) ) $=
    ( wfun wa cdm cin c0 wceq cun cfv csn cima cuni funun funfv imaundir eqcomd
    syl a1i unieqd uniun anim12i adantr uneq12 syl5eq 3eqtrd ) BDZCDZEZBFCFGHIZ
    EZABCJZKZUMALZMZNZBUOMZCUOMZJZNZABKZACKZJZULUMDUNUQIBCOAUMPSULUPUTUPUTIULBC
    UOQTUAULVAURNZUSNZJZVDURUSUBULVEVBIZVFVCIZEZVGVDIUJVJUKUHVHUIVIUHVBVEABPRUI
    VCVFACPRUCUDVEVBVFVCUESUFUG $.

  $( The value of a union when the argument is in the first domain.
     (Contributed by Scott Fenton, 29-Jun-2013.) $)
  fvun1 $p |- ( ( F Fn A /\ G Fn B /\ ( ( A i^i B ) = (/) /\ X e. A ) ) ->
    ( ( F u. G ) ` X ) = ( F ` X ) ) $=
    ( wfn cin c0 wceq wcel wa w3a cun cfv wfun cdm fnfun 3ad2ant1 fndm wn ndmfv
    3ad2ant2 ineqan12d eqeq1d biimprd 3impia fvun syl21anc disjel adantl eleq2d
    adantrd wb adantr mtbird 3adant1 syl uneq2d un0 syl6eq eqtrd ) CAFZDBFZABGZ
    HIZEAJZKZLZECDMNZECNZEDNZMZVJVHCOZDOZCPZDPZGZHIZVIVLIVBVCVMVGACQRVCVBVNVGBD
    QUBVBVCVGVRVBVCKZVEVRVFVSVRVEVSVQVDHVBVCVOAVPBACSBDSZUCUDUEULUFECDUGUHVHVLV
    JHMVJVHVKHVJVHEVPJZTZVKHIVCVGWBVBVCVGKWAEBJZVGWCTVCABEUIUJVCWAWCUMVGVCVPBEV
    TUKUNUOUPEDUAUQURVJUSUTVA $.

  $( The value of a union when the argument is in the second domain.
     (Contributed by Scott Fenton, 29-Jun-2013.) $)
  fvun2 $p |- ( ( F Fn A /\ G Fn B /\ ( ( A i^i B ) = (/) /\ X e. B ) ) ->
    ( ( F u. G ) ` X ) = ( G ` X ) ) $=
    ( wfn cin c0 wceq wcel w3a cun cfv uncom fveq1i incom eqeq1i anbi1i fvun1
    wa syl3an3b 3com12 syl5eq ) CAFZDBFZABGZHIZEBJZTZKECDLZMEDCLZMZEDMZEUJUKCDN
    OUEUDUIULUMIZUIUEUDBAGZHIZUHTUNUGUPUHUFUOHABPQRBADCESUAUBUC $.

  ${
    $d x y z A $.  $d x y z F $.
    $( Alternate definition of function value ~ df-fv that doesn't require
       dummy variables.  (Contributed by NM, 4-Aug-2010.) $)
    dffv2 $p |- ( F ` A ) = U. ( ( F " { A } )
            \ U. U. ( ( ( F |` { A } ) o. `' ( F |` { A } ) ) \ _I ) ) $=
      ( vy vz vx cid cdif cuni wceq cvv wcel wn c0 wss unieqd syl6eq wa wbr wex
      wal csn cres wfun cfv cima ccnv ccom snidb fvres sylbi fvprc eqtr4d funfv
      pm2.61i wrel df-fun simprbi ssdif0 sylib uni0 resima dif0 eqtr4i syl6reqr
      difeq2d eqtrd syl5eqr nfunsn cdm cv weq relres dffun3 mpbiran albii alnex
      wi iman bitri exbii exnal 3bitrri con1bii eximi snssi residm dmeqi biimpi
      sp ssdmres syl vex breldm eleq2 velsn syl6bb biimpa syl2an breq1d pm2.43d
      biimpd ex anim1d eximdv exlimdv mpan9 eleq2i elimasni sylbir cpr cop opex
      uniop unisn wb brrelexi brcnvg sylancr biimpar adantl breq2 breq1 anbi12d
      wrex rspcev mpancom ancoms syldan anim1i an32s eldif rexv brco df-br ideq
      3bitr2ri equcom 3bitr3i notbii syl5eqssr anbi12i bitr2i uniss 3syl unissd
      prss sylibr simpld syl5 exlimiv ssrdv ndmima difeq1d 0dif pm2.61d1 ) BAUA
      ZUBZUCZABUDZBUUPUEZUUQUUQUFZUGZFGZHZHZGZHZIUURUUSAUUQUDZUVGAJKZUVHUUSIZUV
      IAUUPKUVJAUHAUUPBUIUJUVILUVHMUUSAUUQUKABUKULUNUURUVHUUQUUPUEZHUVGAUUQUMUU
      RUVKUVFUURUVFUUTMGZUVKUURUVEMUUTUURUVEMHZMUURUVDMUURUVDUVMMUURUVCMUURUVBF
      NZUVCMIUURUUQUOZUVNUUQUPUQUVBFURUSOUTPOUTPVEUVKUUTUVLBUUPVAZUUTVBVCVDOVFV
      GUURLZUUSMUVGABVHUVQUVGUVMMUVQUVFMUVQAUUQVIZKZUVFMIZUVQUVSUVTUVQUVSQZUUTU
      VENUVTUWACUUTUVEUWAADVJZUUQRZDCVKZLZQZDSZCVJZUUTKZUWHUVEKZVQZUVQEVJZUWBUU
      QRZUWEQZDSZESZUVSUWGUVQUWOCTZESZUWPUWRUURUURUWMUWDVQZDTZCSZETZUWQLZETUWRL
      UURUVOUXBBUUPVLZEDCUUQVMVNUXAUXCEUXAUWOLZCSUXCUWTUXECUWTUWNLZDTUXEUWSUXFD
      UWMUWDVRVOUWNDVPVSVTUWOCWAVSVOUWQEVPWBWCUWQUWOEUWOCWIWDUJUVSUWOUWGEUVSUWN
      UWFDUVSUWMUWCUWEUVSUWMUWCUVSUWMUWMUWCVQUVSUWMQZUWMUWCUXGUWLAUWBUUQUVSUVRU
      UPIZUWLUVRKZUWLAIZUWMUVSUUPUVRNZUXHAUVRWEUXKUVRUUQUUPUBZVIZUUPUXLUUQBUUPW
      FWGUXKUXMUUPIUUPUUQWJWHVGWKUWLUWBUUQEWLDWLZWMUXHUXIUXJUXHUXIUWLUUPKUXJUVR
      UUPUWLWNEAWOWPWQWRWSXAXBWTXCXDXEXFUWFUWKDUWIAUWHUUQRZUWFUWJUWIUWHUVKKUXOU
      VKUUTUWHUVPXGUUQAUWHXHXIUWFUXOUWJUWFUXOQZUWJUWBUVEKZUXPUWHUWBXJZUVENUWJUX
      QQUXPUXRUWHUWBXKZHUVEUWHUWBCWLZUXNXMUXPUXSUVDUXPUXSUXSUAZHZUVDUXSUWHUWBXL
      XNUXPUXSUVCKZUYAUVCNUYBUVDNUXPUWHUWLUVARZUWMQZEJYDZUWEQZUYCUWCUXOUWEUYGUW
      CUXOQUYFUWEUWCUXOUWHAUVARZUYFUWCUYHUXOUWCUWHJKUVIUYHUXOXOUXTAUWBUUQUXDXPZ
      UWHAJJUUQXQXRXSUYHUWCUYFUVIUYHUWCQZUYFUWCUVIUYHUYIXTUYEUYJEAJUXJUYDUYHUWM
      UWCUWLAUWHUVAYAUWLAUWBUUQYBYCYEYFYGYHYIYJUYCUXSUVBKZUXSFKZLZQUYGUXSUVBFYK
      UYKUYFUYMUWEUYFUYEESUWHUWBUVBRUYKUYEEYLEUWHUWBUUQUVAUXTUXNYMUWHUWBUVBYNYP
      UYLUWDUWHUWBFRCDVKUYLUWDUWHUWBUXNYOUWHUWBFYNCDYQYRYSUUAUUBUSUXSUVCWEUYAUV
      CUUCUUDYTUUEYTUWHUWBUVEUXTUXNUUFUUGUUHXBUUIUUJWKUUKUUTUVEURUSXBUVSLZUVFMU
      VEGMUYNUUTMUVEUYNUUTUVKMUVPAUUQUULVGUUMUVEUUNPUUOOUTPULUN $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y G $.  $d x X $.
    $( Domains of a function composition.  (Contributed by NM, 27-Jan-1997.) $)
    dmfco $p |- ( ( Fun G /\ A e. dom G ) ->
               ( A e. dom ( F o. G ) <-> ( G ` A ) e. dom F ) ) $=
      ( vx vy wfun cdm wcel wa ccom cv cop wex cfv wb eldm2g exbidv wceq syl5bb
      cvv vex opelco2g mpan2 bitrd adantl fvex eldm2 opeq1 eleq1d ceqsexv eqcom
      funopfvb anbi1d syl5bbr bitr4d ) CFZACGZHZIZABCJZGHZADKZLCHZVBEKZLZBHZIZD
      MZEMZACNZBGHZURVAVIOUPURVAAVDLUTHZEMVIEAUTUQPURVLVHEURVDTHVLVHOEUADAVDBCU
      QTUBUCQUDUEVKVJVDLZBHZEMUSVIEVJBACUFZUGUSVNVHEVNVBVJRZVFIZDMUSVHVFVNDVJVO
      VPVEVMBVBVJVDUHUIUJUSVQVGDUSVPVCVFVPVJVBRUSVCVBVJUKAVBCULSUMQUNQSUO $.

    $( Value of a function composition.  Similar to second part of Theorem 3H
       of [Enderton] p. 47.  (Contributed by NM, 9-Oct-2004.)  (Proof shortened
       by Andrew Salmon, 22-Oct-2011.)  (Revised by Stefan O'Rear,
       16-Oct-2014.) $)
    fvco2 $p |- ( ( G Fn A /\ X e. A ) -> ( ( F o. G ) ` X ) =
          ( F ` ( G ` X ) ) ) $=
      ( vx wfn wcel wa cv ccom csn cio cfv fnsnfv imaeq2d imaco syl6reqr eleq2d
      cima dffv3 iotabidv 3eqtr4g ) CAFDAGHZEIZBCJZDKZSZGZELUDBDCMZKZSZGZELDUEM
      UIBMUCUHULEUCUGUKUDUCUKBCUFSZSUGUCUJUMBADCNOBCUFPQRUAEDUETEUIBTUB $.
  $}

  $( Value of a function composition.  Similar to Exercise 5 of [TakeutiZaring]
     p. 28.  (Contributed by NM, 22-Apr-2006.)  (Proof shortened by Mario
     Carneiro, 26-Dec-2014.) $)
  fvco $p |- ( ( Fun G /\ A e. dom G ) ->
               ( ( F o. G ) ` A ) = ( F ` ( G ` A ) ) ) $=
    ( wfun cdm wfn wcel ccom cfv wceq funfn fvco2 sylanb ) CDCCEZFANGABCHIACIBI
    JCKNBCALM $.

  $( Value of a function composition.  (Contributed by NM, 3-Jan-2004.)
     (Revised by Mario Carneiro, 26-Dec-2014.) $)
  fvco3 $p |- ( ( G : A --> B /\ C e. A ) ->
             ( ( F o. G ) ` C ) = ( F ` ( G ` C ) ) ) $=
    ( wf wfn wcel ccom cfv wceq ffn fvco2 sylan ) ABEFEAGCAHCDEIJCEJDJKABELADEC
    MN $.

  ${
    fvco4i.a $e |- (/) = ( F ` (/) ) $.
    fvco4i.b $e |- Fun G $.
    $( Conditions for a composition to be expandable without conditions on the
       argument.  (Contributed by Stefan O'Rear, 31-Mar-2015.) $)
    fvco4i $p |- ( ( F o. G ) ` X ) = ( F ` ( G ` X ) ) $=
      ( cdm wcel ccom cfv wceq wfn wfun funfn mpbi fvco2 mpan wn dmcoss ndmfv
      c0 sseli con3i syl fveq2d 3eqtr4a pm2.61i ) CBFZGZCABHZIZCBIZAIZJZBUGKZUH
      UMBLUNEBMNUGABCOPUHQZTTAIUJULDUOCUIFZGZQUJTJUQUHUPUGCABRUAUBCUISUCUOUKTAC
      BSUDUEUF $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y ch $.
    fvopab3g.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    fvopab3g.3 $e |- ( y = B -> ( ps <-> ch ) ) $.
    fvopab3g.4 $e |- ( x e. C -> E! y ph ) $.
    fvopab3g.5 $e |- F = { <. x , y >. | ( x e. C /\ ph ) } $.
    $( Value of a function given by ordered-pair class abstraction.
       (Contributed by NM, 6-Mar-1996.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    fvopab3g $p |- ( ( A e. C /\ B e. D ) -> ( ( F ` A ) = B <-> ch ) ) $=
      ( wcel wa cv wceq wb adantr cop copab cfv anbi12d anbi2d opelopabg fnopab
      eleq1 wfn fnopfvb mpan eleq2i syl6bb ibar 3bitr4d ) FHOZGIOZPFGUAZDQZHOZA
      PZDEUBZOZUPCPZFJUCGRZCVAUPBPVDDEFGHIUSFRUTUPABUSFHUHKUDEQGRBCUPLUEUFUPVEV
      CSUQUPVEURJOZVCJHUIUPVEVFSADEHJMNUGHFGJUJUKJVBURNULUMTUPCVDSUQUPCUNTUO $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y ch $.
    fvopab3ig.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    fvopab3ig.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    fvopab3ig.3 $e |- ( x e. C -> E* y ph ) $.
    fvopab3ig.4 $e |- F = { <. x , y >. | ( x e. C /\ ph ) } $.
    $( Value of a function given by ordered-pair class abstraction.
       (Contributed by NM, 23-Oct-1999.) $)
    fvopab3ig $p |- ( ( A e. C /\ B e. D ) -> ( ch -> ( F ` A ) = B ) ) $=
      ( wcel wa cv cfv wceq wi cop copab eleq1 anbi12d anbi2d opelopabg biimpar
      exp43 pm2.43a imp fveq1i wfun funopab moanimv mpbir mpgbir funopfv syl5eq
      wmo ax-mp syl6 ) FHOZGIOZPZCFGUADQZHOZAPZDEUBZOZFJRZGSVBVCCVITZVCVBVKVBVC
      VBCVIVDVIVBCPZVGVBBPVLDEFGHIVEFSVFVBABVEFHUCKUDEQGSBCVBLUEUFUGUHUIUJVIVJF
      VHRZGFJVHNUKVHULZVIVMGSTVNVGEUSZDVGDEUMVOVFAEUSTMVFAEUNUOUPFGVHUQUTURVA
      $.
  $}

  ${
    $d B x y $.  $d X x y $.  $d Y x y $.  $d Z x y $.  $d ps x y $.
    brfvopabrbr.1 $e |- ( A ` Z ) = { <. x , y >. |
                                      ( x ( B ` Z ) y /\ ph ) } $.
    brfvopabrbr.2 $e |- ( ( x = X /\ y = Y ) -> ( ph <-> ps ) ) $.
    brfvopabrbr.3 $e |- Rel ( B ` Z ) $.
    $( The binary relation of a function value which is an ordered-pair class
       abstraction of a restricted binary relation is the restricted binary
       relation.  The first hypothesis can often be obtained by using
       ~ fvmptopab .  (Contributed by AV, 29-Oct-2021.) $)
    brfvopabrbr $p |- ( X ( A ` Z ) Y <-> ( X ( B ` Z ) Y /\ ps ) ) $=
      ( cfv wbr cvv wcel wa c0 wne brne0 w3a necon1ai syl cv relopabi brrelex2i
      fvprc brrelexi 3jca adantr copab wceq a1i rbropap pm5.21nii ) GHIEMZNZIOP
      ZGOPZHOPZUAZGHIFMZNZBQUQURUSUTUQUPRSURGHUPTURUPRIEUGUBUCGHUPCUDDUDVBNAQZC
      DUPJUEZUHGHUPVEUFUIVCVABVCURUSUTVCVBRSURGHVBTURVBRIFUGUBUCGHVBLUHGHVBLUFU
      IUJURABHCGUPVBOODUPVDCDUKULURJUMKUNUO $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x C y $.  $d x D y $.
    fvmptg.1 $e |- ( x = A -> B = C ) $.
    fvmptg.2 $e |- F = ( x e. D |-> B ) $.
    $( Value of a function given in maps-to notation.  (Contributed by NM,
       2-Oct-2007.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    fvmptg $p |- ( ( A e. D /\ C e. R ) -> ( F ` A ) = C ) $=
      ( vy wcel wa wceq cfv eqid cv eqeq2d eqeq1 wmo moeq a1i cmpt copab df-mpt
      eqtri fvopab3ig mpi ) BEKDFKLDDMZBGNDMDOJPZCMZUIDMUHAJBDEFGAPZBMCDUIHQUID
      DRUJJSUKEKZJCTUAGAECUBULUJLAJUCIAJECUDUEUFUG $.

    $( Value of a function given in maps-to notation.  (Contributed by Mario
       Carneiro, 23-Apr-2014.) $)
    fvmpti $p |- ( A e. D -> ( F ` A ) = ( _I ` C ) ) $=
      ( wcel cvv cfv cid wceq wa fvmptg fvi adantl eqtr4d wn c0 cv eleq1d dmmpt
      cdm elrab2 baib notbid ndmfv syl6bir imp fvprc pm2.61dan ) BEIZDJIZBFKZDL
      KZMUMUNNUODUPABCDEJFGHOUNUPDMUMDJPQRUMUNSZNUOTUPUMUQUOTMZUMUQBFUDZIZSURUM
      UTUNUTUMUNCJIUNABEUSAUABMCDJGUBAECFHUCUEUFUGBFUHUIUJUQUPTMUMDLUKQRUL $.

    ${
      fvmpt.3 $e |- C e. _V $.
      $( Value of a function given in maps-to notation.  (Contributed by NM,
         17-Aug-2011.) $)
      fvmpt $p |- ( A e. D -> ( F ` A ) = C ) $=
        ( wcel cvv cfv wceq fvmptg mpan2 ) BEJDKJBFLDMIABCDEKFGHNO $.
    $}
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    fvmpt2f.0 $e |- F/_ x A $.
    $( Value of a function given by the "maps to" notation.  (Contributed by
       Thierry Arnoux, 9-Mar-2017.) $)
    fvmpt2f $p |- ( ( x e. A /\ B e. C ) -> ( ( x e. A |-> B ) ` x ) = B ) $=
      ( vy csb cmpt weq csbeq1 csbid syl6eq nfcv nfcsb1v csbeq1a cbvmptf fvmptg
      cv ) FARZAFRZCGZCBDABCHFAIUAASCGCATSCJACKLAFBCUAEFBMFCMATCNATCOPQ $.
  $}

  ${
    $d B x $.  $d V x $.  $d X x $.
    fvtresfn.f $e |- F = ( x e. B |-> ( x |` V ) ) $.
    $( Functionality of a tuple-restriction function.  (Contributed by Stefan
       O'Rear, 24-Jan-2015.) $)
    fvtresfn $p |- ( X e. B -> ( F ` X ) = ( X |` V ) ) $=
      ( wcel cres cvv cfv wceq resexg cv reseq1 fvmptg mpdan ) EBGEDHZIGECJQKED
      BLAEAMZDHQBICREDNFOP $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y C $.
    fvmpts.1 $e |- F = ( x e. C |-> B ) $.
    $( Value of a function given in maps-to notation, using explicit class
       substitution.  (Contributed by Scott Fenton, 17-Jul-2013.)  (Revised by
       Mario Carneiro, 31-Aug-2015.) $)
    fvmpts $p |- ( ( A e. C /\ [_ A / x ]_ B e. V ) ->
        ( F ` A ) = [_ A / x ]_ B ) $=
      ( vy cv csb csbeq1 cmpt nfcv nfcsb1v csbeq1a cbvmpt eqtri fvmptg ) HBAHIZ
      CJZABCJDFEASBCKEADCLHDTLGAHDCTHCMASCNASCOPQR $.
  $}

  ${
    $d x A $.  $d x C $.  $d x D $.  $d x V $.
    fvmpt3.a $e |- ( x = A -> B = C ) $.
    fvmpt3.b $e |- F = ( x e. D |-> B ) $.
    ${
      fvmpt3.c $e |- ( x e. D -> B e. V ) $.
      $( Value of a function given in maps-to notation, with a slightly
         different sethood condition.  (Contributed by Stefan O'Rear,
         30-Jan-2015.) $)
      fvmpt3 $p |- ( A e. D -> ( F ` A ) = C ) $=
        ( wcel cfv wceq cv eleq1d vtoclga fvmptg mpdan ) BEKDGKZBFLDMCGKSABEANB
        MCDGHOJPABCDEGFHIQR $.
    $}

    fvmpt3i.c $e |- B e. _V $.
    $( Value of a function given in maps-to notation, with a slightly different
       sethood condition.  (Contributed by Mario Carneiro, 11-Sep-2015.) $)
    fvmpt3i $p |- ( A e. D -> ( F ` A ) = C ) $=
      ( cvv wcel cv a1i fvmpt3 ) ABCDEFJGHCJKALEKIMN $.
  $}

  ${
    $d x A $.  $d x C $.  $d x D $.  $d x ph $.
    fvmptd.1 $e |- ( ph -> F = ( x e. D |-> B ) ) $.
    fvmptd.2 $e |- ( ( ph /\ x = A ) -> B = C ) $.
    fvmptd.3 $e |- ( ph -> A e. D ) $.
    fvmptd.4 $e |- ( ph -> C e. V ) $.
    $( Deduction version of ~ fvmpt .  (Contributed by Scott Fenton,
       18-Feb-2013.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    fvmptd $p |- ( ph -> ( F ` A ) = C ) $=
      ( cfv cmpt csb fveq1d wcel wceq csbied eqeltrd eqid fvmpts syl2anc 3eqtrd
      ) ACGMCBFDNZMZBCDOZEACGUEIPACFQUGHQUFUGRKAUGEHABCDEFKJSZLTBCDFUEHUEUAUBUC
      UHUD $.
  $}

  ${
    $d A x $.
    mptrcl.1 $e |- F = ( x e. A |-> B ) $.
    $( Reverse closure for a mapping:  If the function value of a mapping has a
       member, the argument belongs to the base class of the mapping.
       (Contributed by AV, 4-Apr-2020.) $)
    mptrcl $p |- ( I e. ( F ` X ) -> X e. A ) $=
      ( cfv wcel c0 wceq wn n0i cdm dmmptss sseli ndmfv nsyl4 syl ) EFDHZITJKZL
      FBIZTEMFDNZIUBUAUCBFABCDGOPFDQRS $.

    $d x y A $.  $d y B $.  $d y D $.  $d y F $.
    $( Value of a function given by the "maps to" notation.  (Contributed by
       Mario Carneiro, 23-Apr-2014.) $)
    fvmpt2i $p |- ( x e. A -> ( F ` x ) = ( _I ` B ) ) $=
      ( vy cv csb weq csbeq1 csbid syl6eq cmpt nfcv nfcsb1v cbvmpt eqtri fvmpti
      csbeq1a ) FAGZAFGZCHZCBDFAIUBATCHCAUATCJACKLDABCMFBUBMEAFBCUBFCNAUACOAUAC
      SPQR $.

    $( Value of a function given by the "maps to" notation.  (Contributed by
       FL, 21-Jun-2010.) $)
    fvmpt2 $p |- ( ( x e. A /\ B e. C ) -> ( F ` x ) = B ) $=
      ( cv wcel cfv cid fvmpt2i fvi sylan9eq ) AGZBHCDHNEICJICABCEFKCDLM $.

    $d x y C $.
    $( If all the values of the mapping are subsets of a class ` C ` , then so
       is any evaluation of the mapping, even if ` D ` is not in the base set
       ` A ` .  (Contributed by Mario Carneiro, 13-Feb-2015.) $)
    fvmptss $p |- ( A. x e. A B C_ C -> ( F ` D ) C_ C ) $=
      ( vy wss wcel cfv cv wi wceq fveq2 sseq1d imbi2d nfcv wa c0 dmmptss sseli
      wral cdm nfra1 cmpt nfmpt1 nfcxfr nffv nfss nfim cvv dmmpt rabeq2i fvmpt2
      eqimss syl sylbi wn ndmfv 0ss syl6eqss pm2.61i rsp impcom syl5ss vtoclgaf
      ex vtoclga sylan2 adantl pm2.61dan ) CDIZABUCZEFUDZJZEFKZDIZVPVNEBJZVRVOB
      EABCFGUAUBVSVNVRVNHLZFKZDIZMZVNVRMHEBVTENZWBVRVNWDWAVQDVTEFOPQVNALZFKZDIZ
      MWCAVTBAVTRZVNWBAVMABUEAWADAVTFAFABCUFGABCUGUHWHUIADRUJUKWEVTNZWGWBVNWIWF
      WADWEVTFOPQWEBJZVNWGWJVNSWFCDWEVOJZWFCIZWKWJCULJZSZWLWMAVOBABCFGUMUNWNWFC
      NWLABCULFGUOWFCUPUQURWKUSWFTCWEFUTCVAVBVCVNWJVMVMABVDVEVFVHVGVIVEVJVNVPUS
      ZSVQTDWOVQTNVNEFUTVKDVAVBVL $.
  $}

  ${
    $d x A $.
    fvmpt2d.1 $e |- ( ph -> F = ( x e. A |-> B ) ) $.
    fvmpt2d.4 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    $( Deduction version of ~ fvmpt2 .  (Contributed by Thierry Arnoux,
       8-Dec-2016.) $)
    fvmpt2d $p |- ( ( ph /\ x e. A ) -> ( F ` x ) = B ) $=
      ( cv wcel wa cfv cmpt wceq fveq1d adantr id eqid fvmpt2 syl2an2 eqtrd ) A
      BIZCJZKUBELZUBBCDMZLZDAUDUFNUCAUBEUEGOPUCUCADFJUFDNUCQHBCDFUEUERSTUA $.
  $}

  ${
    $d x y A $.  $d y B $.  $d y C $.
    fvmptex.1 $e |- F = ( x e. A |-> B ) $.
    fvmptex.2 $e |- G = ( x e. A |-> ( _I ` B ) ) $.
    $( Express a function ` F ` whose value ` B ` may not always be a set in
       terms of another function ` G ` for which sethood is guaranteed.  (Note
       that ` ( _I `` B ) ` is just shorthand for
       ` if ( B e. _V , B , (/) ) ` , and it is always a set by ~ fvex .)  Note
       also that these functions are not the same; wherever ` B ( C ) ` is not
       a set, ` C ` is not in the domain of ` F ` (so it evaluates to the empty
       set), but ` C ` is in the domain of ` G ` , and ` G ( C ) ` is defined
       to be the empty set.  (Contributed by Mario Carneiro, 14-Jul-2013.)
       (Revised by Mario Carneiro, 23-Apr-2014.) $)
    fvmptex $p |- ( F ` C ) = ( G ` C ) $=
      ( vy wcel cfv wceq csb cid cv cmpt nfcv cbvmpt eqtri c0 nfcsb1v nffv fvex
      csbeq1 csbeq1a fvmpti fveq2d fvmpt eqtr4d wn cdm sseli con3i ndmfv dmmpti
      dmmptss syl eleq2i sylnbir pm2.61i ) DBJZDEKZDFKZLVAVBADCMZNKZVCIDAIOZCMZ
      VDBEAVFDCUDZEABCPIBVGPGAIBCVGICQAVFCUAZAVFCUEZRSUFIDVGNKZVEBFVFDLVGVDNVHU
      GFABCNKZPIBVKPHAIBVLVKIVLQAVGNANQVIUBAOVFLCVGNVJUGRSVDNUCUHUIVAUJZVBTVCVM
      DEUKZJZUJVBTLVOVAVNBDABCEGUPULUMDEUNUQVADFUKZJVCTLVPBDABVLFCNUCHUOURDFUNU
      SUIUT $.
  $}

  ${
    $d x A $.  $d x D $.
    fvmptdf.1 $e |- ( ph -> A e. D ) $.
    fvmptdf.2 $e |- ( ( ph /\ x = A ) -> B e. V ) $.
    fvmptdf.3 $e |- ( ( ph /\ x = A ) -> ( ( F ` A ) = B -> ps ) ) $.
    ${
      fvmptd3f.4 $e |- F/_ x F $.
      fvmptd3f.5 $e |- F/ x ps $.
      fvmptd3f.6 $e |- F/ x ph $.
      $( Alternate deduction version of ~ fvmpt with three non-freeness
         hypotheses instead of distinct variable conditions.  (Contributed by
         AV, 19-Jan-2022.) $)
      fvmptd3f $p |- ( ph -> ( F = ( x e. D |-> B ) -> ps ) ) $=
        ( cv wceq cmpt wi wcel cfv nfmpt1 nfeq nfim cvv elexd isset sylib fveq1
        wa simpr fveq2d adantr eqeltrd eqid fvmpt2 syl2anc eqtr3d eqeq2d sylbid
        wex syl5 exlimdd ) ACOZDPZGCFEQZPZBRCNVFBCCGVELCFEUAUBMUCADUDSVDCUTADFI
        UECDUFUGVFDGTZDVETZPZAVDUIZBDGVEUHVJVIVGEPBVJVHEVGVJVCVETZVHEVJVCDVEAVD
        UJZUKVJVCFSEHSVKEPVJVCDFVLADFSVDIULUMJCFEHVEVEUNUOUPUQURKUSVAVB $.
    $}

    $d x ph $.
    ${
      fvmptdf.4 $e |- F/_ x F $.
      fvmptdf.5 $e |- F/ x ps $.
      $( Alternate deduction version of ~ fvmpt , suitable for iteration.
         (Contributed by Mario Carneiro, 7-Jan-2017.)  (Proof shortened by AV,
         19-Jan-2022.) $)
      fvmptdf $p |- ( ph -> ( F = ( x e. D |-> B ) -> ps ) ) $=
        ( nfv fvmptd3f ) ABCDEFGHIJKLMACNO $.
    $}

    $d x F $.  $d x ps $.
    $( Alternate deduction version of ~ fvmpt , suitable for iteration.
       (Contributed by Mario Carneiro, 7-Jan-2017.) $)
    fvmptdv $p |- ( ph -> ( F = ( x e. D |-> B ) -> ps ) ) $=
      ( nfcv nfv fvmptdf ) ABCDEFGHIJKCGLBCMN $.
  $}

  ${
    $d x A $.  $d x C $.  $d x D $.  $d x ph $.
    fvmptdv2.1 $e |- ( ph -> A e. D ) $.
    fvmptdv2.2 $e |- ( ( ph /\ x = A ) -> B e. V ) $.
    fvmptdv2.3 $e |- ( ( ph /\ x = A ) -> B = C ) $.
    $( Alternate deduction version of ~ fvmpt , suitable for iteration.
       (Contributed by Mario Carneiro, 7-Jan-2017.) $)
    fvmptdv2 $p |- ( ph -> ( F = ( x e. D |-> B ) -> ( F ` A ) = C ) ) $=
      ( cfv wceq cmpt cvv eqidd cv wcel elex syl wex isset wa eqeltrrd exlimddv
      sylib fvmptd fveq1 eqeq1d syl5ibrcom ) ACGLZEMGBFDNZMZCULLZEMABCDEFULOAUL
      PKIABQCMZEORBACORZUOBUAACFRUPICFSTBCUBUFAUOUCZDEOKUQDHRDORJDHSTUDUEUGUMUK
      UNECGULUHUIUJ $.
  $}

  ${
    $d x A $.
    $( Bidirectional equality theorem for a mapping abstraction.  Equivalent to
       ~ eqfnfv .  (Contributed by Mario Carneiro, 14-Nov-2014.) $)
    mpteqb $p |- ( A. x e. A B e. V ->
      ( ( x e. A |-> B ) = ( x e. A |-> C ) <->
        A. x e. A B = C ) ) $=
      ( wcel wral cvv cmpt wceq wb wfn eqid mptfng wa wi nfmpt1 cfv fvmpt2 syl
      elex ralimi fneq1 3bitr4g biimpd r19.26 nfeq cv simpll ad2ant2lr ad2ant2l
      fveq1d 3eqtr3d exp31 ralrimi ralim syl5bir expd mpdd mpteq12 mpan impbid1
      com12 ) CEFZABGCHFZABGZABCIZABDIZJZCDJZABGZKVDVEABCEUAUBVFVIVKVIVFVKVIVFD
      HFZABGZVKVIVFVMVIVGBLVHBLVFVMBVGVHUCABCVGVGMZNABDVHVHMZNUDUEVIVFVMVKVFVMO
      VEVLOZABGZVIVKVEVLABUFVIVPVJPZABGVQVKPVIVRABAVGVHABCQABDQUGVIAUHZBFZVPVJV
      IVTOVPOZVSVGRZVSVHRZCDWAVSVGVHVIVTVPUIULVTVEWBCJVIVLABCHVGVNSUJVTVLWCDJVI
      VEABDHVHVOSUKUMUNUOVPVJABUPTUQURUSVCBBJVKVIBMABCBDUTVAVBT $.
  $}

  ${
    $d x A $.  $d x C $.  $d x D $.
    $( Closed theorem form of ~ fvmpt .  (Contributed by Scott Fenton,
       21-Feb-2013.)  (Revised by Mario Carneiro, 11-Sep-2015.) $)
    fvmptt $p |- ( ( A. x ( x = A -> B = C ) /\
      F = ( x e. D |-> B ) /\ ( A e. D /\ C e. V ) ) -> ( F ` A ) = C ) $=
      ( cv wceq wi wal cmpt wcel wa w3a cfv simp2 fveq1d wrex cvv elex nfa1 nfv
      risset nfeq1 nfim simprl simplr simprr eqeltrd eqid fvmpt2 syl2anc simpll
      nffvmpt1 fveq2d 3eqtr3d exp43 a2i com23 rexlimd syl7 syl5bi imp32 3adant2
      sps eqtrd ) AHZBIZCDIZJZAKZFAECLZIZBEMZDGMZNZOZBFPBVMPZDVRBFVMVLVNVQQRVLV
      QVSDIZVNVLVOVPVTVOVIAESZVLVPVTJABEUDVPDTMZVLWAVTDGUAVLVIWBVTJZAEVKAUBWBVT
      AWBAUCAVSDAECBUOUEUFVKVHEMZVIWCJJAVKVIWDWCVIVJWDWCJVIVJWDWBVTVIVJNZWDWBNZ
      NZVHVMPZCVSDWGWDCTMWHCIWEWDWBUGWGCDTVIVJWFUHZWEWDWBUIUJAECTVMVMUKULUMWGVH
      BVMVIVJWFUNUPWIUQURUSUTVFVAVBVCVDVEVG $.
  $}

  ${
    $d x D $.
    fvmptf.1 $e |- F/_ x A $.
    fvmptf.2 $e |- F/_ x C $.
    fvmptf.3 $e |- ( x = A -> B = C ) $.
    fvmptf.4 $e |- F = ( x e. D |-> B ) $.
    $( Value of a function given by an ordered-pair class abstraction.  This
       version of ~ fvmptg uses bound-variable hypotheses instead of distinct
       variable conditions.  (Contributed by NM, 8-Nov-2005.)  (Revised by
       Mario Carneiro, 15-Oct-2016.) $)
    fvmptf $p |- ( ( A e. D /\ C e. V ) -> ( F ` A ) = C ) $=
      ( wcel cfv wceq cvv elex cv wi nfel1 cmpt nfmpt1 nfcxfr nffv eleq1d fveq2
      nfeq nfim eqeq12d imbi12d fvmpt2 ex vtoclgaf syl5 imp ) BELZDGLZBFMZDNZUP
      DOLZUOURDGPCOLZAQZFMZCNZRUSURRABEHUSURAADOISAUQDABFAFAECTKAECUAUBHUCIUFUG
      VABNZUTUSVCURVDCDOJUDVDVBUQCDVABFUEJUHUIVAELUTVCAECOFKUJUKULUMUN $.

    $( The value of a function given by an ordered-pair class abstraction is
       the empty set when the class it would otherwise map to is a proper
       class.  This version of ~ fvmptn uses bound-variable hypotheses instead
       of distinct variable conditions.  (Contributed by NM, 21-Oct-2003.)
       (Revised by Mario Carneiro, 11-Sep-2015.) $)
    fvmptnf $p |- ( -. C e. _V -> ( F ` A ) = (/) ) $=
      ( cvv wcel wn cdm cfv c0 wceq dmmptss sseli cid cmpt eqid fvmptex fvex cv
      nfcv nffv fveq2d fvmptf mpan2 syl5eq fvprc sylan9eq expcom ndmfv pm2.61d1
      syl5 ) DKLMZBFNZLZBFOZPQZUTBELZURVBUSEBAECFJRSVCURVBVCURVADTOZPVCVABAECTO
      ZUAZOZVDAECBFVFJVFUBZUCVCVDKLVGVDQDTUDABVEVDEVFKGADTATUFHUGAUEBQCDTIUHVHU
      IUJUKDTULUMUNUQBFUOUP $.
  $}

  ${
    $d x A $.  $d x C $.  $d x D $.
    fvmptn.1 $e |- ( x = D -> B = C ) $.
    fvmptn.2 $e |- F = ( x e. A |-> B ) $.
    $( This somewhat non-intuitive theorem tells us the value of its function
       is the empty set when the class ` C ` it would otherwise map to is a
       proper class.  This is a technical lemma that can help eliminate
       redundant sethood antecedents otherwise required by ~ fvmptg .
       (Contributed by NM, 21-Oct-2003.)  (Revised by Mario Carneiro,
       9-Sep-2013.) $)
    fvmptn $p |- ( -. C e. _V -> ( F ` D ) = (/) ) $=
      ( nfcv fvmptnf ) AECDBFAEIADIGHJ $.

    $( A mapping always evaluates to a subset of the substituted expression in
       the mapping, even if this is a proper class, or we are out of the
       domain.  (Contributed by Mario Carneiro, 13-Feb-2015.) $)
    fvmptss2 $p |- ( F ` D ) C_ C $=
      ( cdm wcel cfv wss cvv wa cv wceq eleq1d dmmpt elrab2 fvmptg eqimss sylbi
      syl wn c0 ndmfv 0ss syl6eqss pm2.61i ) EFIZJZEFKZDLZUKEBJDMJZNZUMCMJUNAEB
      UJAOEPCDMGQABCFHRSUOULDPUMAECDBMFGHTULDUAUCUBUKUDULUEDEFUFDUGUHUI $.
  $}

  ${
    $d M x y $.  $d V x $.  $d X x y $.  $d Y y $.  $d m y $.
    elfvmptrab1.f $e |- F = ( x e. V |-> { y e. [_ x / m ]_ M | ph } ) $.
    elfvmptrab1.v $e |- ( X e. V -> [_ X / m ]_ M e. _V ) $.
    $( Implications for the value of a function defined by the maps-to notation
       with a class abstraction as a result having an element.  Here, the base
       set of the class abstraction depends on the argument of the function.
       (Contributed by Alexander van der Vekens, 15-Jul-2018.) $)
    elfvmptrab1 $p |- ( Y e. ( F ` X )
                        -> ( X e. V /\ Y e. [_ X / m ]_ M ) ) $=
      ( cfv wcel csb c0 crab cvv wceq 3syl nfcv wa wne ne0i ndmfv necon1ai wsbc
      cdm wi dmmptss sseli rabexg nfsbc1v nfcsb csbeq1 sbceq1a rabeqbidv fvmptf
      cv nfrab syl2anc eleq2d elrabi anim12i ex sylbid pm2.43i ) IHELZMZHGMZIDH
      FNZMZUAZVHVGOUBHEUGZMZVHVLUHVGIUCVNVGOHEUDUEVNVHIABHUFZCVJPZMZVLVNVGVPIVN
      VIVPQMZVGVPRVMGHBGACDBURZFNZPZEJUIUJZVNVIVJQMVRWBKVOCVJQUKSBHWAVPGEQBHTZV
      OBCVJABHULBDHFWCBFTUMUSVSHRAVOCVTVJDVSHFUNABHUOUPJUQUTVAVNVQVLVNVIVQVKWBV
      OCIVJVBVCVDVESVF $.
  $}

  ${
    $d M m x y $.  $d V x $.  $d X x y $.  $d Y y $.
    elfvmptrab.f $e |- F = ( x e. V |-> { y e. M | ph } ) $.
    elfvmptrab.v $e |- ( X e. V -> M e. _V ) $.
    $( Implications for the value of a function defined by the maps-to notation
       with a class abstraction as a result having an element.  (Contributed by
       Alexander van der Vekens, 15-Jul-2018.) $)
    elfvmptrab $p |- ( Y e. ( F ` X ) -> ( X e. V /\ Y e. M ) ) $=
      ( vm cfv wcel csb wa crab cmpt wceq csbconstg syl cv rabeq mpteq2ia eqtri
      eqcomd cvv eqeltrd elfvmptrab1 eleq2d biimpd imdistani ) HGDLMGFMZHKGENZM
      ZOULHEMZOABCKDEFGHDBFACEPZQBFACKBUAZENZPZQIBFUPUSUQFMZEURRUPUSRUTUREKUQEF
      SUEACEURUBTUCUDULUMEUFKGEFSZJUGUHULUNUOULUNUOULUMEHVAUIUJUKT $.
  $}

  ${
    $d x y A $.
    fvopab4ndm.1 $e |- F = { <. x , y >. | ( x e. A /\ ph ) } $.
    $( Value of a function given by an ordered-pair class abstraction, outside
       of its domain.  (Contributed by NM, 28-Mar-2008.) $)
    fvopab4ndm $p |- ( -. B e. A -> ( F ` B ) = (/) ) $=
      ( wcel wn cdm cfv c0 wceq cv wa copab dmeqi dmopabss eqsstri sseli con3i
      ndmfv syl ) EDHZIEFJZHZIEFKLMUFUDUEDEUEBNDHAOBCPZJDFUGGQABCDRSTUAEFUBUC
      $.
  $}

  ${
    $d A x y $.  $d B y $.
    fvmptndm.1 $e |- F = ( x e. A |-> B ) $.
    $( Value of a function given by the "maps to" notation, outside of its
       domain.  (Contributed by AV, 31-Dec-2020.) $)
    fvmptndm $p |- ( -. X e. A -> ( F ` X ) = (/) ) $=
      ( vy cv wceq cmpt wcel wa copab df-mpt eqtri fvopab4ndm ) GHCIZAGBEDDABCJ
      AHBKQLAGMFAGBCNOP $.
  $}

  ${
    $d G x y $.  $d X x y $.  $d ps x $.
    fvmptrabfv.f $e |- F = ( x e. _V |-> { y e. ( G ` x ) | ph } ) $.
    fvmptrabfv.r $e |- ( x = X -> ( ph <-> ps ) ) $.
    $( Value of a function mapping a set to a class abstraction restricting the
       value of another function.  (Contributed by AV, 18-Feb-2022.) $)
    fvmptrabfv $p |- ( F ` X ) = { y e. ( G ` X ) | ps } $=
      ( cvv wcel cfv crab wceq cv fveq2 rabeqbidv fvex c0 fvprc wn rabeqdv rab0
      rabex fvmpt syl6req eqtrd pm2.61i ) GJKZGELZBDGFLZMZNCGADCOZFLZMULJEUMGNA
      BDUNUKUMGFPIQHBDUKGFRUDUEUIUAZUJSULGETUOULBDSMSUOBDUKSGFTUBBDUCUFUGUH $.
  $}

  ${
    $d x y z A $.  $d z F $.  $d x ps $.
    fvopab5.1 $e |- F = { <. x , y >. | ph } $.
    fvopab5.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( The value of a function that is expressed as an ordered pair
       abstraction.  (Contributed by NM, 19-Feb-2006.)  (Revised by Mario
       Carneiro, 11-Sep-2015.) $)
    fvopab5 $p |- ( A e. V -> ( F ` A ) = ( iota y ps ) ) $=
      ( vz wcel cvv cio wceq cv wbr nfcv nfcxfr nfbr nfv elex df-fv breq2 copab
      cfv nfopab2 cbviota eqtri wb nfopab1 nfbi breq1 bibi12d cop eleq2i opabid
      df-br 3bitri vtoclg1f iotabidv syl5eq syl ) EGKELKZEFUEZBDMZNEGUAVCVDEDOZ
      FPZDMZVEVDEJOZFPZJMVHJEFUBVJVGJDVIVFEFUCDEVIFDEQDFACDUDZHACDUFRDVIQSVGJTU
      GUHVCVGBDCOZVFFPZAUIVGBUICELVGBCCEVFFCEQCFVKHACDUJRCVFQSBCTUKVLENVMVGABVL
      EVFFULIUMVMVLVFUNZFKVNVKKAVLVFFUQFVKVNHUOACDUPURUSUTVAVB $.
  $}

  ${
    $d A x y $.  $d ps x y $.  $d B y $.  $d C x y $.
    fvopab6.1 $e |- F = { <. x , y >. | ( ph /\ y = B ) } $.
    fvopab6.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    fvopab6.3 $e |- ( x = A -> B = C ) $.
    $( Value of a function given by ordered-pair class abstraction.
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro,
       11-Sep-2015.) $)
    fvopab6 $p |- ( ( A e. D /\ C e. R /\ ps ) -> ( F ` A ) = C ) $=
      ( wcel cfv wceq cvv cv wa copab elex eqeq2d anbi12d iba bicomd moeq moani
      wi wmo a1i vex biantrur opabbii eqtri fvopab3ig sylan 3impia ) EHNZGINZBE
      JOGPZUREQNUSBUTUHEHUAADRZFPZSZBVAGPZSZBCDEGQIJCRZEPZABVBVDLVGFGVAMUBUCVDB
      VEVDBUDUEVCDUIVFQNZVBADDFUFUGUJJVCCDTVHVCSZCDTKVCVICDVHVCCUKULUMUNUOUPUQ
      $.
  $}

  ${
    $d x A $.  $d x F $.  $d x G $.  $d x ph $.
    $( Equality of functions is determined by their values.  Special case of
       Exercise 4 of [TakeutiZaring] p. 28 (with domain equality omitted).
       (Contributed by NM, 3-Aug-1994.)  (Proof shortened by Andrew Salmon,
       22-Oct-2011.)  (Proof shortened by Mario Carneiro, 31-Aug-2015.) $)
    eqfnfv $p |- ( ( F Fn A /\ G Fn A ) -> ( F = G <->
                 A. x e. A ( F ` x ) = ( G ` x ) ) ) $=
      ( wfn wa wceq cv cfv cmpt wral dffn5 eqeq12 syl2anb cvv wcel rgenw mpteqb
      wb fvex ax-mp syl6bb ) CBEZDBEZFCDGZABAHZCIZJZABUFDIZJZGZUGUIGABKZUCCUHGD
      UJGUEUKSUDABCLABDLCUHDUJMNUGOPZABKUKULSUMABUFCTQABUGUIORUAUB $.

    $( Equality of functions is determined by their values.  Exercise 4 of
       [TakeutiZaring] p. 28.  (Contributed by NM, 3-Aug-1994.)  (Revised by
       Mario Carneiro, 31-Aug-2015.) $)
    eqfnfv2 $p |- ( ( F Fn A /\ G Fn B ) -> ( F = G <->
                 ( A = B /\ A. x e. A ( F ` x ) = ( G ` x ) ) ) ) $=
      ( wfn wa wceq cv cfv wral dmeq fndm eqeqan12d syl5ib pm4.71rd wb biimparc
      cdm fneq2 eqfnfv sylan2 anassrs pm5.32da bitrd ) DBFZECFZGZDEHZBCHZUIGUJA
      IZDJUKEJHABKZGUHUIUJUIDSZESZHUHUJDELUFUGUMBUNCBDMCEMNOPUHUJUIULUFUGUJUIUL
      QZUGUJGUFEBFZUOUJUPUGBCETRABDEUAUBUCUDUE $.

    $d x B $.
    $( Derive equality of functions from equality of their values.
       (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    eqfnfv3 $p |- ( ( F Fn A /\ G Fn B ) -> ( F = G <-> ( B C_ A /\ A. x e. A
                                  ( x e. B /\ ( F ` x ) = ( G ` x ) ) ) ) ) $=
      ( wfn wa wceq cv cfv wral wss wcel eqfnfv2 ancom bitri anbi1i anass dfss3
      eqss r19.26 bitr4i anbi2i syl6bb ) DBFECFGDEHBCHZAIZDJUFEJHZABKZGZCBLZUFC
      MZUGGABKZGZABCDENUIUJBCLZGZUHGZUMUEUOUHUEUNUJGUOBCTUNUJOPQUPUJUNUHGZGUMUJ
      UNUHRUQULUJUQUKABKZUHGULUNURUHABCSQUKUGABUAUBUCPPUD $.

    eqfnfvd.1 $e |- ( ph -> F Fn A ) $.
    eqfnfvd.2 $e |- ( ph -> G Fn A ) $.
    eqfnfvd.3 $e |- ( ( ph /\ x e. A ) -> ( F ` x ) = ( G ` x ) ) $.
    $( Deduction for equality of functions.  (Contributed by Mario Carneiro,
       24-Jul-2014.) $)
    eqfnfvd $p |- ( ph -> F = G ) $=
      ( wceq cv cfv wral ralrimiva wfn wb eqfnfv syl2anc mpbird ) ADEIZBJZDKTEK
      IZBCLZAUABCHMADCNECNSUBOFGBCDEPQR $.
  $}

  ${
    $d x z A $.  $d z F $.  $d z G $.
    eqfnfv2f.1 $e |- F/_ x F $.
    eqfnfv2f.2 $e |- F/_ x G $.
    $( Equality of functions is determined by their values.  Special case of
       Exercise 4 of [TakeutiZaring] p. 28 (with domain equality omitted).
       This version of ~ eqfnfv uses bound-variable hypotheses instead of
       distinct variable conditions.  (Contributed by NM, 29-Jan-2004.) $)
    eqfnfv2f $p |- ( ( F Fn A /\ G Fn A ) -> ( F = G <->
                 A. x e. A ( F ` x ) = ( G ` x ) ) ) $=
      ( vz wfn wa wceq cv cfv wral eqfnfv nfcv nffv nfeq nfv fveq2 eqeq12d
      cbvral syl6bb ) CBHDBHICDJGKZCLZUCDLZJZGBMAKZCLZUGDLZJZABMGBCDNUFUJGABAUD
      UEAUCCEAUCOZPAUCDFUKPQUJGRUCUGJUDUHUEUIUCUGCSUCUGDSTUAUB $.
  $}

  ${
    $d F x $.  $d G x $.
    $( Equality of functions is determined by their values.  (Contributed by
       Scott Fenton, 19-Jun-2011.) $)
    eqfunfv $p |- ( ( Fun F /\ Fun G ) -> ( F = G <->
                    ( dom F = dom G /\
                      A. x e. dom F ( F ` x ) = ( G ` x ) ) ) ) $=
      ( wfun cdm wfn wceq cv cfv wral wa wb funfn eqfnfv2 syl2anb ) BDBBEZFCCEZ
      FBCGPQGAHZBIRCIGAPJKLCDBMCMAPQBCNO $.
  $}

  ${
    $d x B $.  $d x F $.  $d x G $.
    $( Equality of restricted functions is determined by their values (for
       functions with different domains).  (Contributed by AV, 6-Jan-2019.) $)
    fvreseq0 $p |- ( ( ( F Fn A /\ G Fn C ) /\ ( B C_ A /\ B C_ C ) ) ->
           ( ( F |` B ) = ( G |` B ) <-> A. x e. B ( F ` x ) = ( G ` x ) ) ) $=
      ( wfn wss cres wceq cv cfv wral wb wa fnssres eqfnfv wcel fvres eqeq12d
      ralbiia syl6bb syl2an an4s ) EBGZCBHZFDGZCDHZECIZFCIZJZAKZELZULFLZJZACMZN
      ZUEUFOUICGZUJCGZUQUGUHOBCEPDCFPURUSOUKULUILZULUJLZJZACMUPACUIUJQVBUOACULC
      RUTUMVAUNULCESULCFSTUAUBUCUD $.

    $( Equality of a function restricted to the domain of another function.
       (Contributed by AV, 6-Jan-2019.) $)
    fvreseq1 $p |- ( ( ( F Fn A /\ G Fn B ) /\ B C_ A ) ->
                    ( ( F |` B ) = G <-> A. x e. B ( F ` x ) = ( G ` x ) ) ) $=
      ( wfn wa wss cres wceq cv cfv wral fnresdm ad2antlr eqcomd eqeq2d wb ssid
      fvreseq0 mpanr2 bitrd ) DBFZECFZGZCBHZGZDCIZEJUHECIZJZAKZDLUKELJACMZUGEUI
      UHUGUIEUDUIEJUCUFCENOPQUEUFCCHUJULRCSABCCDETUAUB $.
  $}

  ${
    $d x B $.  $d x F $.  $d x G $.
    $( Equality of restricted functions is determined by their values.
       (Contributed by NM, 3-Aug-1994.)  (Prove shortened by AV,
       4-Mar-2019.) $)
    fvreseq $p |- ( ( ( F Fn A /\ G Fn A ) /\ B C_ A ) ->
         ( ( F |` B ) = ( G |` B ) <-> A. x e. B ( F ` x ) = ( G ` x ) ) ) $=
      ( wfn wa wss cres wceq cv cfv wral wb fvreseq0 anabsan2 ) DBFEBFGCBHDCIEC
      IJAKZDLQELJACMNABCBDEOP $.
  $}

  ${
    $d A a i $.  $d C i $.  $d D a $.  $d M a i $.  $d U a i $.  $d V a i $.
    $d ph a i $.
    fnmptfvd.m $e |- ( ph -> M Fn A ) $.
    fnmptfvd.s $e |- ( i = a -> D = C ) $.
    fnmptfvd.d $e |- ( ( ph /\ i e. A ) -> D e. U ) $.
    fnmptfvd.c $e |- ( ( ph /\ a e. A ) -> C e. V ) $.
    $( A function with a given domain is a mapping defined by its function
       values.  (Contributed by AV, 1-Mar-2019.) $)
    fnmptfvd $p |- ( ph -> ( M = ( a e. A |-> C )
                              <-> A. i e. A ( M ` i ) = D ) ) $=
      ( cmpt wceq cfv wral wfn wcel eqid cv ralrimiva fnmpt syl syl2anc cbvmptv
      wb eqfnfv eqcomi a1i fveq1d eqeq2d ralbidv simpr fvmpt2 ralbidva 3bitrd
      wa ) AGIBCNZOZFUAZGPZVAUSPZOZFBQZVBVAFBDNZPZOZFBQVBDOZFBQAGBRUSBRZUTVEUGJ
      ACHSZIBQVJAVKIBMUBIBCUSHUSTUCUDFBGUSUHUEAVDVHFBAVCVGVBAVAUSVFUSVFOAVFUSFI
      BDCKUFUIUJUKULUMAVHVIFBAVABSZURZVGDVBVMVLDESVGDOAVLUNLFBDEVFVFTUOUEULUPUQ
      $.
  $}

  ${
    $d F x y $.  $d G x y $.  $d A x y $.
    $( Two ways to express the locus of differences between two functions.
       (Contributed by Stefan O'Rear, 17-Jan-2015.) $)
    fndmdif $p |- ( ( F Fn A /\ G Fn A ) -> dom ( F \ G ) =
          { x e. A | ( F ` x ) =/= ( G ` x ) } ) $=
      ( vy wfn wa cdm cv cfv wss wceq wcel wbr wex wn wb eqcom fnbrfvb syl5bb
      cdif cin wne crab difss dmss ax-mp fndm adantr syl5sseq sseqin2 sylib vex
      eldm adantll necon3abid breq2 notbid ceqsexv syl6bbr adantlr anbi1d brdif
      fvex exbidv bitr2d rabbi2dva eqtr3d ) CBFZDBFZGZBCDUAZHZUBZVMAIZCJZVODJZU
      CZABUDVKVMBKVNVMLVKCHZVMBVLCKVMVSKCDUEVLCUFUGVIVSBLVJBCUHUIUJVMBUKULVKVRA
      BVMVOVMMVOEIZVLNZEOZVKVOBMZGZVREVOVLAUMUNWDVRVTVPLZVOVTDNZPZGZEOZWBWDVRVO
      VPDNZPZWIWDWJVPVQVJWCVPVQLZWJQVIWLVQVPLVJWCGWJVPVQRBVOVPDSTUOUPWGWKEVPVOC
      VDWEWFWJVTVPVODUQURUSUTWDWHWAEWDWHVOVTCNZWGGWAWDWEWMWGVIWCWEWMQVJWEVPVTLV
      IWCGWMVTVPRBVOVTCSTVAVBVOVTCDVCUTVEVFTVGVH $.

    $( The difference set between two functions is commutative.  (Contributed
       by Stefan O'Rear, 17-Jan-2015.) $)
    fndmdifcom $p |- ( ( F Fn A /\ G Fn A ) ->
        dom ( F \ G ) = dom ( G \ F ) ) $=
      ( vx wfn wa cv cfv wne crab cdif cdm wb wcel necom rabbiia fndmdif ancoms
      a1i wceq 3eqtr4a ) BAEZCAEZFDGZBHZUDCHZIZDAJUFUEIZDAJZBCKLCBKLZUGUHDAUGUH
      MUDANUEUFOSPDABCQUCUBUJUITDACBQRUA $.

    $( The difference set of two functions is empty if and only if the
       functions are equal.  (Contributed by Stefan O'Rear, 17-Jan-2015.) $)
    fndmdifeq0 $p |- ( ( F Fn A /\ G Fn A ) ->
        ( dom ( F \ G ) = (/) <-> F = G ) ) $=
      ( vx wfn wa cdif cdm c0 wceq cv cfv wne crab fndmdif eqeq1d eqfnfv rabeq0
      wral wn nne ralbii bitri syl6rbbr bitrd ) BAECAEFZBCGHZIJDKZBLZUHCLZMZDAN
      ZIJZBCJZUFUGULIDABCOPUFUNUIUJJZDASZUMDABCQUMUKTZDASUPUKDARUQUODAUIUJUAUBU
      CUDUE $.

    $( Two ways to express the locus of equality between two functions.
       (Contributed by Stefan O'Rear, 17-Jan-2015.) $)
    fndmin $p |- ( ( F Fn A /\ G Fn A ) -> dom ( F i^i G ) =
          { x e. A | ( F ` x ) = ( G ` x ) } ) $=
      ( vy wfn wa cin cdm cv cfv wceq copab cmpt dffn5 biimpi df-mpt syl6eq wex
      cab wcel ineqan12d inopab dmeqd 19.42v anandi exbii eqeq1 ceqsexv 3bitr3i
      crab fvex anbi2i abbii dmopab df-rab 3eqtr4i ) CBFZDBFZGZCDHZIAJZBUAZEJZV
      BCKZLZGZVCVDVBDKZLZGZGZAEMZIZVEVHLZABUKZUTVAVLUTVAVGAEMZVJAEMZHVLURUSCVPD
      VQURCABVENZVPURCVRLABCOPAEBVEQRUSDABVHNZVQUSDVSLABDOPAEBVHQRUBVGVJAEUCRUD
      VKESZATVCVNGZATVMVOVTWAAVCVFVIGZGZESVCWBESZGVTWAVCWBEUEWCVKEVCVFVIUFUGWDV
      NVCVIVNEVEVBCULVDVEVHUHUIUMUJUNVKAEUOVNABUPUQR $.
  $}

  ${
    $d F x $.  $d G x $.  $d A x $.
    $( Two functions are equal iff their equalizer is the whole domain.
       (Contributed by Stefan O'Rear, 7-Mar-2015.) $)
    fneqeql $p |- ( ( F Fn A /\ G Fn A ) ->
        ( F = G <-> dom ( F i^i G ) = A ) ) $=
      ( vx wfn wa wceq cfv crab cin cdm wral eqfnfv eqcom rabid2 syl6bbr fndmin
      cv bitri eqeq1d bitr4d ) BAECAEFZBCGZDRZBHUDCHGZDAIZAGZBCJKZAGUBUCUEDALZU
      GDABCMUGAUFGUIUFANUEDAOSPUBUHUFADABCQTUA $.

    $( Two functions are equal iff their equalizer contains the whole domain.
       (Contributed by Stefan O'Rear, 9-Mar-2015.) $)
    fneqeql2 $p |- ( ( F Fn A /\ G Fn A ) ->
        ( F = G <-> A C_ dom ( F i^i G ) ) ) $=
      ( wfn wceq cin cdm wss fneqeql inss1 dmss ax-mp adantr syl5sseq biantrurd
      wa fndm eqss syl6rbbr bitrd ) BADZCADZPZBCEBCFZGZAEZAUEHZABCIUCUGUEAHZUGP
      UFUCUHUGUCBGZUEAUDBHUEUIHBCJUDBKLUAUIAEUBABQMNOUEARST $.

    $( Two functions are equal on a subset iff their equalizer contains that
       subset.  (Contributed by Stefan O'Rear, 7-Mar-2015.) $)
    fnreseql $p |- ( ( F Fn A /\ G Fn A /\ X C_ A ) ->
        ( ( F |` X ) = ( G |` X ) <-> X C_ dom ( F i^i G ) ) ) $=
      ( wfn wss w3a cin cdm wb fnssres 3adant2 3adant1 fneqeql syl2anc resindir
      cres wceq dmeqi dmres eqtr3i eqeq1i df-ss bitr4i syl6bb ) BAEZCAEZDAFZGZB
      DQZCDQZRZUJUKHZIZDRZDBCHZIZFZUIUJDEZUKDEZULUOJUFUHUSUGADBKLUGUHUTUFADCKMD
      UJUKNOUODUQHZDRURUNVADUPDQZIUNVAVBUMBCDPSUPDTUAUBDUQUCUDUE $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( The range of a choice function (a function that chooses an element from
       each member of its domain) is included in the union of its domain.
       (Contributed by NM, 31-Aug-1999.) $)
    chfnrn $p |- ( ( F Fn A /\ A. x e. A ( F ` x ) e. x ) -> ran F C_ U. A ) $=
      ( vy wfn cv cfv wcel wral wa crn cuni wrex wceq fvelrnb biimpd wi biimpcd
      eleq1 ralimi rexim syl sylan9 eluni2 syl6ibr ssrdv ) CBEZAFZCGZUHHZABIZJZ
      DCKZBLZULDFZUMHZUOUHHZABMZUOUNHUGUPUIUONZABMZUKURUGUPUTABUOCOPUKUSUQQZABI
      UTURQUJVAABUSUJUQUIUOUHSRTUSUQABUAUBUCAUOBUDUEUF $.
  $}

  $( Ordered pair with function value.  Part of Theorem 4.3(i) of [Monk1]
     p. 41.  (Contributed by NM, 14-Oct-1996.) $)
  funfvop $p |- ( ( Fun F /\ A e. dom F ) -> <. A , ( F ` A ) >. e. F ) $=
    ( wfun cdm wcel wa cfv wceq cop eqid funopfvb mpbii ) BCABDEFABGZMHAMIBEMJA
    MBKL $.

  $( Two ways to say that ` A ` is in the domain of ` F ` .  (Contributed by
     Mario Carneiro, 1-May-2014.) $)
  funfvbrb $p |- ( Fun F -> ( A e. dom F <-> A F ( F ` A ) ) ) $=
    ( wfun cdm wcel cfv wbr wa funfvop df-br sylibr wrel funrel releldm impbida
    cop sylan ) BCZABDEZAABFZBGZRSHATPBEUAABIATBJKRBLUASBMATBNQO $.

  $( A member of a preimage is a function value argument.  (Contributed by NM,
     4-May-2007.) $)
  fvimacnvi $p |- ( ( Fun F /\ A e. ( `' F " B ) ) -> ( F ` A ) e. B ) $=
    ( wfun ccnv cima wcel cfv csn wss snssi funimass2 sylan2 fvex snss cdm wceq
    wa cnvimass sseli wfn funfn fnsnfv sylanb sseq1d syl5bb mpbird ) CDZACEBFZG
    ZRZACHZBGZCAIZFZBJZUJUHUNUIJUPAUIKUNBCLMUMULIZBJUKUPULBACNOUKUQUOBUJUHACPZG
    ZUQUOQZUIURACBSTUHCURUAUSUTCUBURACUCUDMUEUFUG $.

  $( The argument of a function value belongs to the preimage of any class
     containing the function value.  Raph Levien remarks:  "This proof is
     unsatisfying, because it seems to me that ~ funimass2 could probably be
     strengthened to a biconditional."  (Contributed by Raph Levien,
     20-Nov-2006.) $)
  fvimacnv $p |- ( ( Fun F /\ A e. dom F ) ->
                 ( ( F ` A ) e. B <-> A e. ( `' F " B ) ) ) $=
    ( wfun cdm wcel wa cfv ccnv cima csn cop funfvop wb fvex mpan adantl mpbird
    cvv wss opelcnvg elimasng imass2 sylbi sseld syl5com wi fvimacnvi ex adantr
    snss impbid ) CDZACEZFZGZACHZBFZACIZBJZFZUPAUSUQKZJZFZURVAUPVDUQALUSFZUPVEA
    UQLCFZACMUOVEVFNZUMUQSFZUOVGACOZUQASUNCUAPQRUOVDVENZUMVHUOVJVIUSUQASUNUBPQR
    URVCUTAURVBBTVCUTTUQBVIUKVBBUSUCUDUEUFUMVAURUGUOUMVAURABCUHUIUJUL $.

  ${
    $d F x $.  $d A x $.  $d B x $.
    $( A kind of contraposition law that infers an image subclass from a
       subclass of a preimage.  Raph Levien remarks:  "Likely this could be
       proved directly, and ~ fvimacnv would be the special case of ` A ` being
       a singleton, but it works this way round too."  (Contributed by Raph
       Levien, 20-Nov-2006.) $)
    funimass3 $p |- ( ( Fun F /\ A C_ dom F ) ->
                    ( ( F " A ) C_ B <-> A C_ ( `' F " B ) ) ) $=
      ( vx wfun cdm wss wa cima cv ccnv wcel wral funimass4 wb ssel fvimacnv ex
      cfv syl9r imp31 ralbidva bitrd dfss3 syl6bbr ) CEZACFZGZHZCAIBGZDJZCKBIZL
      ZDAMZAULGUIUJUKCSBLZDAMUNDABCNUIUOUMDAUFUHUKALZUOUMOZUHUPUKUGLZUFUQAUGUKP
      UFURUQUKBCQRTUAUBUCDAULUDUE $.

    $( A subclass of a preimage in terms of function values.  (Contributed by
       NM, 15-May-2007.) $)
    funimass5 $p |- ( ( Fun F /\ A C_ dom F ) ->
                    ( A C_ ( `' F " B ) <-> A. x e. A ( F ` x ) e. B ) ) $=
      ( wfun cdm wss wa cima ccnv cv cfv wcel wral funimass3 funimass4 bitr3d )
      DEBDFGHDBICGBDJCIGAKDLCMABNBCDOABCDPQ $.

    $( Two ways of specifying that a function is constant on a subdomain.
       (Contributed by NM, 8-Mar-2007.) $)
    funconstss $p |- ( ( Fun F /\ A C_ dom F ) ->
                     ( A. x e. A ( F ` x ) = B <-> A C_ ( `' F " { B } ) ) ) $=
      ( wfun cdm wss wa cv cfv wceq wral cima csn ccnv wcel funimass4 fvex elsn
      ralbii syl6rbb funimass3 bitrd ) DEBDFGHZAIZDJZCKZABLZDBMCNZGZBDOUIMGUDUJ
      UFUIPZABLUHABUIDQUKUGABUFCUEDRSTUABUIDUBUC $.
  $}

  $( Alternate proof of ~ fvimacnv , based on ~ funimass3 .  If ~ funimass3 is
     ever proved directly, as opposed to using ~ funimacnv pointwise, then the
     proof of ~ funimacnv should be replaced with this one.  (Contributed by
     Raph Levien, 20-Nov-2006.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  fvimacnvALT $p |- ( ( Fun F /\ A e. dom F ) ->
                    ( ( F ` A ) e. B <-> A e. ( `' F " B ) ) ) $=
    ( wfun cdm wcel wa csn cima wss ccnv cfv wb snssi funimass3 sylan2 fvex wfn
    snss wceq eqid df-fn biimpri mpan2 fnsnfv sylan sseq1d syl5bb snssg 3bitr4d
    adantl ) CDZACEZFZGZCAHZIZBJZUPCKBIZJZACLZBFZAUSFZUNULUPUMJURUTMAUMNUPBCOPV
    BVAHZBJUOURVABACQSUOVDUQBULCUMRZUNVDUQTULUMUMTZVEUMUAVEULVFGCUMUBUCUDUMACUE
    UFUGUHUNVCUTMULAUSUMUIUKUJ $.

  $( Membership in the preimage of a set under a function.  (Contributed by
     Jeff Madsen, 2-Sep-2009.) $)
  elpreima $p |- ( F Fn A -> ( B e. ( `' F " C )
                              <-> ( B e. A /\ ( F ` B ) e. C ) ) ) $=
    ( wfn ccnv cima wcel cfv wa cdm cnvimass sseli fndm eleq2d syl5ib fvimacnvi
    wfun fnfun sylan ex jcad wb fvimacnv funfni biimpd expimpd impbid ) DAEZBDF
    CGZHZBAHZBDICHZJUIUKULUMUKBDKZHUIULUJUNBDCLMUIUNABADNOPUIUKUMUIDRUKUMADSBCD
    QTUAUBUIULUMUKUIULJUMUKUMUKUCABDBCDUDUEUFUGUH $.

  $( Membership in the preimage of a singleton, under a function.  (Contributed
     by Mario Carneiro, 12-May-2014.)  (Proof shortened by Mario Carneiro ,
     28-Apr-2015.) $)
  fniniseg $p |- ( F Fn A -> ( C e. ( `' F " { B } ) <->
                   ( C e. A /\ ( F ` C ) = B ) ) ) $=
    ( wfn ccnv csn cima wcel cfv wa wceq elpreima fvex elsn anbi2i syl6bb ) DAE
    CDFBGZHICAIZCDJZRIZKSTBLZKACRDMUAUBSTBCDNOPQ $.

  ${
    $d x A $.  $d x F $.  $d x B $.
    $( Inverse images under functions expressed as abstractions.  (Contributed
       by Stefan O'Rear, 1-Feb-2015.) $)
    fncnvima2 $p |- ( F Fn A -> ( `' F " B ) = { x e. A | ( F ` x ) e. B } ) $=
      ( wfn ccnv cima cv wcel cfv wa cab crab elpreima abbi2dv df-rab syl6eqr )
      DBEZDFCGZAHZBITDJCIZKZALUAABMRUBASBTCDNOUAABPQ $.

    $( Inverse point images under functions expressed as abstractions.
       (Contributed by Stefan O'Rear, 1-Feb-2015.) $)
    fniniseg2 $p |- ( F Fn A -> ( `' F " { B } ) =
          { x e. A | ( F ` x ) = B } ) $=
      ( wfn ccnv csn cima cv cfv wcel crab wceq fncnvima2 fvex elsn a1i rabbiia
      wb syl6eq ) DBEDFCGZHAIZDJZUAKZABLUCCMZABLABUADNUDUEABUDUESUBBKUCCUBDOPQR
      T $.
  $}

  ${
    $d x F $.  $d x A $.  $d x B $.
    $( Preimage of a union.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    unpreima $p |- ( Fun F -> ( `' F " ( A u. B ) )
                                  = ( ( `' F " A ) u. ( `' F " B ) ) ) $=
      ( vx wfun cdm wfn ccnv cun cima wceq funfn cv wcel wa elpreima wo orbi12d
      cfv elun syl5bb anbi2i andi bitri syl6rbbr bitrd eqrdv sylbi ) CECCFZGZCH
      ZABIZJZUKAJZUKBJZIZKCLUJDUMUPUJDMZUMNUQUINZUQCSZULNZOZUQUPNZUIUQULCPUJVBU
      RUSANZOZURUSBNZOZQZVAVBUQUNNZUQUONZQUJVGUQUNUOTUJVHVDVIVFUIUQACPUIUQBCPRU
      AVAURVCVEQZOVGUTVJURUSABTUBURVCVEUCUDUEUFUGUH $.

    $( Preimage of an intersection.  (Contributed by Jeff Madsen, 2-Sep-2009.)
       (Proof shortened by Mario Carneiro, 14-Jun-2016.) $)
    inpreima $p |- ( Fun F -> ( `' F " ( A i^i B ) )
                                  = ( ( `' F " A ) i^i ( `' F " B ) ) ) $=
      ( wfun ccnv cin cima wceq funcnvcnv imain syl ) CDCEZEDLABFGLAGLBGFHCIABL
      JK $.

    $( Preimage of a difference.  (Contributed by Mario Carneiro,
       14-Jun-2016.) $)
    difpreima $p |- ( Fun F -> ( `' F " ( A \ B ) )
                                  = ( ( `' F " A ) \ ( `' F " B ) ) ) $=
      ( wfun ccnv cdif cima wceq funcnvcnv imadif syl ) CDCEZEDLABFGLAGLBGFHCIA
      BLJK $.

    $( The preimage of a restricted function.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    respreima $p |- ( Fun F -> ( `' ( F |` B ) " A )
                                    = ( ( `' F " A ) i^i B ) ) $=
      ( vx wfun cres ccnv cima cin cdm wfn cv wcel wb cfv wa bitri syl elpreima
      elin funfn ancom anbi1i fvres eleq1d adantl pm5.32i a1i an32 syl6bb fnfun
      wceq funres dmres jctir df-fn sylibr anbi1d syl5bb 3bitr4d sylbi eqrdv )
      CEZDCBFZGAHZCGAHZBIZVCCCJZKZDLZVEMZVJVGMZNCUAVIVJBVHIZMZVJVDOZAMZPZVJVHMZ
      VJCOZAMZPZVJBMZPZVKVLVIVQVRWBPZVTPZWCVQWENVIVQWDVPPWEVNWDVPVNWBVRPWDVJBVH
      TWBVRUBQUCWDVPVTWBVPVTNVRWBVOVSAVJBCUDUEUFUGQUHVRWBVTUIUJVIVDVMKZVKVQNVIV
      DEZVDJVMULZPWFVIWGWHVIVCWGVHCUKBCUMRCBUNUOVDVMUPUQVMVJAVDSRVLVJVFMZWBPVIW
      CVJVFBTVIWIWAWBVHVJACSURUSUTVAVB $.
  $}

  ${
    $d A x y $.  $d B y $.  $d F x y $.
    $( Preimage of an intersection.  (Contributed by FL, 16-Apr-2012.) $)
    iinpreima $p |- ( ( Fun F /\ A =/= (/) )
        -> ( `' F " |^|_ x e. A B ) = |^|_ x e. A ( `' F " B ) ) $=
      ( vy ciin cima wcel wral simpll cnvimass sseli adantl cvv fvimacnvi eliin
      wa wb ax-mp wi wfun wne ccnv cdm cfv fvex adantlr biimpa sylancr fvimacnv
      c0 cv ralbidv syl21anc vex sylibr biimpd ralimdv sylc wrex r19.2zb biimpi
      ex rexlimivw syl6 syl5bi imp syl2anc mpbid impbida eqrdv ) DUAZBUKUBZQZED
      UCZABCFZGZABVOCGZFZVNEULZVQHZVTVSHZVNWAQZVTVRHZABIZWBWCVLVTDUDZHZVTDUEZCH
      ZABIZWEVLVMWAJWAWGVNVQWFVTDVPKLMWCWHNHZWHVPHZWJVTDUFZVLWAWLVMVTVPDOUGWKWL
      WJAWHBCNPZUHUIVLWGQZWJWEWOWIWDABVTCDUJUMUHUNVTNHZWBWEREUOZAVTBVRNPZSZUPVN
      WBQZWLWAWTWJWLWTVLWEWJVLVMWBJZWBWEVNWPWBWETWQWPWBWEWRUQSMVLWDWIABVLWDWIVT
      CDOVCURUSWKWLWJRWMWNSUPWTVLWGWLWARXAVNWBWGVMWBWGTVLWBWEVMWGWSVMWEWDABUTZW
      GVMWEXBTWDABVAVBWDWGABVRWFVTDCKLVDVEVFMVGVTVPDUJVHVIVJVK $.

    $( Preimage of an intersection.  (Contributed by FL, 28-Apr-2012.) $)
    intpreima $p |- ( ( Fun F /\ A =/= (/) )
        -> ( `' F " |^| A ) = |^|_ x e. A ( `' F " x ) ) $=
      ( wfun c0 wne wa ccnv cint cima cv ciin intiin imaeq2i iinpreima syl5eq )
      CDBEFGCHZBIZJQABAKZLZJABQSJLRTQABMNABSCOP $.
  $}

  $( The preimage of the codomain of a mapping is the mapping's domain.
     (Contributed by FL, 25-Jan-2007.) $)
  fimacnv $p |- ( F : A --> B -> ( `' F " B ) = A ) $=
    ( wf ccnv cima crn imassrn cdm dfdm4 fdm ssid syl6eqss syl5eqssr syl5ss wss
    frn wfun wb ffun syl5sseqr funimass3 syl2anc mpbid eqssd ) ABCDZCEZBFZAUFUH
    UGGZAUGBHUFUICIZACJUFUJAAABCKZALZMNOUFCAFZBPZAUHPZUFUMCGBCAHABCQOUFCRAUJPUN
    UOSABCTUFAAUJULUKUAABCUBUCUDUE $.

  $( Taking the converse image of a set can be limited to the range of the
     function used.  (Contributed by Thierry Arnoux, 21-Jan-2017.) $)
  fimacnvinrn $p |- ( Fun F -> ( `' F " A ) = ( `' F " ( A i^i ran F ) ) ) $=
    ( wfun ccnv crn cin cima cdm inpreima wf wceq wfo funforn fof sylbi fimacnv
    syl ineq2d cres cnvresima resdm2 funrel dfrel2 sylib syl5eq imaeq1d syl5eqr
    wrel cnveqd 3eqtrrd ) BCZBDZABEZFGULAGZULUMGZFUNBHZFZUNAUMBIUKUOUPUNUKUPUMB
    JZUOUPKUKUPUMBLURBMUPUMBNOUPUMBPQRUKUQBUPSZDZAGUNUPABTUKUTULAUKUSBUKUSULDZB
    BUAUKBUHVABKBUBBUCUDUEUIUFUGUJ $.

  $( Taking the converse image of a set can be limited to the range of the
     function used.  (Contributed by Thierry Arnoux, 17-Feb-2017.) $)
  fimacnvinrn2 $p |- ( ( Fun F /\ ran F C_ B ) ->
                                    ( `' F " A ) = ( `' F " ( A i^i B ) ) ) $=
    ( wfun crn wss ccnv cin cima inass wceq sseqin2 biimpi adantl ineq2d syl5eq
    wa imaeq2d fimacnvinrn adantr 3eqtr4rd ) CDZCEZBFZQZCGZABHZUCHZIZUFAUCHZIZU
    FUGIZUFAIZUEUHUJUFUEUHABUCHZHUJABUCJUEUNUCAUDUNUCKZUBUDUOUCBLMNOPRUBULUIKUD
    UGCSTUBUMUKKUDACSTUA $.

  ${
    $d D a p $.  $d D x y z $.  $d F p $.  $d F a w x y z $.
    $( If a class' function values for certain arguments is not the empty set,
       the arguments are contained in the domain of the class, and the class
       restricted to the arguments is a function, analogous to ~ fvfundmfvn0 .
       (Contributed by AV, 27-Jan-2020.) $)
    fvn0ssdmfun $p |- ( A. a e. D ( F ` a ) =/= (/)
                        -> ( D C_ dom F /\ Fun ( F |` D ) ) ) $=
      ( vx vz vy vw cv wral wcel cres wfun wa wceq wal wex sylibr albii exbii
      wi vp cfv c0 wne cdm csn wss fvfundmfvn0 ralimi r19.26 eleq1 rspccv ssrdv
      ciun wrel cop funrel reliun sneq reseq2d funeqd rspcva dffun5 vex elsnres
      imbi1i equcom opeq12 ex syl5bi adantr impcom opeq2 equcoms eleq1d biimpcd
      adantl jca spimev imim1d alimdv eximdv spimvw sylbi expcom ancomst impexp
      bitri 19.21v 19.37v 3bitri alrimiv resiun2 eqcomi eleq2i reseq2i sylanbrc
      syl iunid opelres funeqi anim12i ) CHZBUBUCUDZCAIXCBUEZJZBXCUFZKZLZMZCAIZ
      AXEUGZBAKZLZMZXDXJCAXCBUHUIXKXFCAIZXICAIZMXOXFXICAUJXPXLXQXNXPUAAXEXFUAHZ
      XEJCXRAXCXRXEUKULUMXQCAXHUNZLZXNXQXSUOZDHZEHZUPZXSJZYCFHNZTZEOZFPZDOZXTXQ
      XHUOZCAIYAXIYKCAXHUQUICAXHURQXQYDBJZYBAJZMZYFTZEOZFPZDOYJXQYQDXQYMYLYFTZE
      OZFPZTZYQYMXQYTYMXQMBYBUFZKZLZYTXIUUDCYBAXCYBNZXHUUCUUEXGUUBBXCYBUSUTVAVB
      UUDUUCUOZGHZYCUPZUUCJZYFTZEOZFPZGOZMYTGEFUUCVCUUMYTUUFUUMUUHYBXCUPZNZUUNB
      JZMZCPZYFTZEOZFPZGOYTUULUVAGUUKUUTFUUJUUSEUUIUURYFCUUHBYBDVDVEVFRSRUVAYTG
      DUUGYBNZUUTYSFUVBUUSYREUVBYLUURYFUVBYLUURUVBYLMZUUQCEXCYCNZUVCUUQUVDUVCMU
      UOUUPUVCUVDUUOUVBUVDUUOTYLUVDYCXCNZUVBUUOCEVGUVBUVEUUOUUGYCYBXCVHVIVJVKVL
      UVCUVDUUPYLUVDUUPTUVBUVDYLUUPUVDYDUUNBYDUUNNECYCXCYBVMVNVOVPVQVLVRVIVSVIV
      TWAWBWCWDVQWDWRWEYQYMYRTZEOZFPYMYSTZFPUUAYPUVGFYOUVFEYOYMYLMYFTUVFYLYMYFW
      FYMYLYFWGWHRSUVGUVHFYMYREWISYMYSFWJWKQWLYIYQDYHYPFYGYOEYEYNYFYEYDBCAXGUNZ
      KZJYDXMJYNXSUVJYDUVJXSCAXGBWMZWNWOUVJXMYDUVIABCAWSZWPWOYBYCBAEVDWTWKVFRSR
      QDEFXSVCWQXNUVJLXTXMUVJAUVIBUVIAUVLWNWPXAUVJXSUVKXAWHQXBWDWR $.
  $}

  $( Ordered pair with function value.  Part of Theorem 4.3(i) of [Monk1]
     p. 41.  (Contributed by NM, 30-Sep-2004.) $)
  fnopfv $p |- ( ( F Fn A /\ B e. A ) -> <. B , ( F ` B ) >. e. F ) $=
    ( cfv cop wcel funfvop funfni ) BBCDECFABCBCGH $.

  ${
    $d x y F $.  $d x A $.
    $( A function's value belongs to its range.  (Contributed by NM,
       14-Oct-1996.) $)
    fvelrn $p |- ( ( Fun F /\ A e. dom F ) -> ( F ` A ) e. ran F ) $=
      ( vx vy wfun cdm wcel cfv cv wa wi wceq eleq1 anbi2d fveq2 eleq1d imbi12d
      crn cop wex funfvop vex opeq1 spcev syl fvex elrn2 sylibr vtoclg anabsi7
      ) BEZABFZGZABHZBRZGZUKCIZULGZJZUQBHZUOGZKUKUMJZUPKCAULUQALZUSVBVAUPVCURUM
      UKUQAULMNVCUTUNUOUQABOPQUSDIZUTSZBGZDTZVAUSUQUTSZBGZVGUQBUAVFVIDUQCUBVDUQ
      LVEVHBVDUQUTUCPUDUEDUTBUQBUFUGUHUIUJ $.
  $}

  $( A function value cannot be any element not contained in the range of the
     function.  (Contributed by AV, 28-Jan-2020.) $)
  nelrnfvne $p |- ( ( Fun F /\ X e. dom F /\ Y e/ ran F )
                    -> ( F ` X ) =/= Y ) $=
    ( wfun cdm wcel cfv crn wnel wne fvelrn elnelne2 stoic3 ) ADBAEFBAGZAHZFCOI
    NCJBAKNCOLM $.

  ${
    $d A a b x $.  $d B a b x $.  $d D a x $.
    fveqdmss.1 $e |- D = dom B $.
    $( If the empty set is not contained in the range of a function, and the
       function values of another class (not necessarily a function) are equal
       to the function values of the function for all elements of the domain of
       the function, then the domain of the function is contained in the domain
       of the class.  (Contributed by AV, 28-Jan-2020.) $)
    fveqdmss $p |- ( ( Fun B /\ (/) e/ ran B
                       /\ A. x e. D ( A ` x ) = ( B ` x ) ) -> D C_ dom A ) $=
      ( va vb wfun c0 crn wnel cv cfv wceq w3a cdm wcel wi fveq2 com12 wral weq
      wa eqeq12d rspcva wne nelrnfvne wex n0 eleq2 eqcoms elfvdm syl6bi exlimiv
      wb sylbi syl 3exp eleq2s com24 adantr mpd ex com23 com14 3imp ssrdv ) CHZ
      ICJKZALZBMZVJCMZNZADUAZOFDBPZVHVIVNFLZDQZVPVOQZRVQVIVNVHVRVQVNVIVHVRRZVQV
      NVIVSRZVQVNUCVPBMZVPCMZNZVTVMWCAVPDAFUBVKWAVLWBVJVPBSVJVPCSUDUEVQWCVTRVNV
      QVHVIWCVRVHVIWCVRRZRZRVPCPZDVHVPWFQZWEVHWGVIWDVHWGVIOWBIUFZWDCVPIUGWHGLZW
      BQZGUHWDGWBUIWJWDGWCWJVRWCWJWIWAQZVRWJWKUOWBWAWBWAWIUJUKWIVPBULUMTUNUPUQU
      RTEUSUTVAVBVCVDVEVFVG $.

    $( If the empty set is not contained in the range of a function, and the
       function values of another class (not necessarily a function) are equal
       to the function values of the function for all elements of the domain of
       the function, then the class restricted to the domain of the function is
       the function itself.  (Contributed by AV, 28-Jan-2020.) $)
    fveqressseq $p |- ( ( Fun B /\ (/) e/ ran B
                    /\ A. x e. D ( A ` x ) = ( B ` x ) ) -> ( A |` D ) = B ) $=
      ( wfun c0 cfv wceq wral cdm cin biimpi syl5eq syl wa wcel adantl ralimdva
      3impia crn wnel cv w3a cres wss fveqdmss dmres incom sseqin2 syl6eq fvres
      id sylan9eq ex raleqdv mpbird wb wne simpll eleq2i simplr nelrnfvne neeq1
      syl3anc syl5ibrcom fvn0ssdmfun simprd simp1 eqfunfv syl2anc mpbir2and ) C
      FZGCUAUBZAUCZBHZVOCHZIZADJZUDZBDUEZCIZWAKZCKZIZVOWAHZVQIZAWCJZVTDBKZUFZWE
      ABCDEUGZWJWCDWDWJWCDWILZDBDUHZWJWLWIDLZDDWIUIWJWNDIDWIUJMNZNEUKOVTWHWGADJ
      ZVMVNVSWPVMVNPZVRWGADWQVODQZPZVRWGWSVRWFVPVQWRWFVPIWQVODBULRVRUMUNUOSTVTW
      GAWCDVTWCWLDWMVTWJWLDIWKWOONUPUQVTWAFZVMWBWEWHPURVTVPGUSZADJZWTVMVNVSXBWQ
      VRXAADWSXAVRVQGUSZWSVMVOWDQZVNXCVMVNWRUTWRXDWQWRXDDWDVOEVAMRVMVNWRVBCVOGV
      CVEVPVQGVDVFSTXBWJWTDBAVGVHOVMVNVSVIAWACVJVKVL $.
  $}

  $( A function's value belongs to its range.  (Contributed by NM,
     15-Oct-1996.) $)
  fnfvelrn $p |- ( ( F Fn A /\ B e. A ) -> ( F ` B ) e. ran F ) $=
    ( cfv crn wcel fvelrn funfni ) BCDCEFABCBCGH $.

  $( A function's value belongs to its codomain.  (Contributed by NM,
     12-Aug-1999.) $)
  ffvelrn $p |- ( ( F : A --> B /\ C e. A ) -> ( F ` C ) e. B ) $=
    ( wf wcel wa cfv crn wfn ffn fnfvelrn sylan wi frn sseld adantr mpd ) ABDEZ
    CAFZGCDHZDIZFZUABFZSDAJTUCABDKACDLMSUCUDNTSUBBUAABDOPQR $.

  ${
    ffvrni.1 $e |- F : A --> B $.
    $( A function's value belongs to its codomain.  (Contributed by NM,
       6-Apr-2005.) $)
    ffvelrni $p |- ( C e. A -> ( F ` C ) e. B ) $=
      ( wf wcel cfv ffvelrn mpan ) ABDFCAGCDHBGEABCDIJ $.
  $}

  ${
    ffvelrnd.1 $e |- ( ph -> F : A --> B ) $.
    $( A function's value belongs to its codomain.  (Contributed by Mario
       Carneiro, 29-Dec-2016.) $)
    ffvelrnda $p |- ( ( ph /\ C e. A ) -> ( F ` C ) e. B ) $=
      ( wf wcel cfv ffvelrn sylan ) ABCEGDBHDEICHFBCDEJK $.

    ffvelrnd.2 $e |- ( ph -> C e. A ) $.
    $( A function's value belongs to its codomain.  (Contributed by Mario
       Carneiro, 29-Dec-2016.) $)
    ffvelrnd $p |- ( ph -> ( F ` C ) e. B ) $=
      ( wcel cfv ffvelrnda mpdan ) ADBHDEICHGABCDEFJK $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x ps $.  $d y ph $.
    rexrn.1 $e |- ( x = ( F ` y ) -> ( ph <-> ps ) ) $.
    $( Restricted existential quantification over the range of a function.
       (Contributed by Mario Carneiro, 24-Dec-2013.)  (Revised by Mario
       Carneiro, 20-Aug-2014.) $)
    rexrn $p |- ( F Fn A -> ( E. x e. ran F ph <-> E. y e. A ps ) ) $=
      ( wfn cv cfv crn cvv wcel wa fvexd wceq wrex fvelrnb eqcom rexbii syl6bb
      wb adantl rexxfr2d ) FEHZABCDDIZFJZFKZELUEUFEMNUFFOUECIZUHMUGUIPZDEQUIUGP
      ZDEQDEUIFRUJUKDEUGUISTUAUKABUBUEGUCUD $.

    $( Restricted universal quantification over the range of a function.
       (Contributed by Mario Carneiro, 24-Dec-2013.)  (Revised by Mario
       Carneiro, 20-Aug-2014.) $)
    ralrn $p |- ( F Fn A -> ( A. x e. ran F ph <-> A. y e. A ps ) ) $=
      ( wfn cv cfv crn cvv wcel wa fvexd wceq wrex fvelrnb eqcom rexbii syl6bb
      wb adantl ralxfr2d ) FEHZABCDDIZFJZFKZELUEUFEMNUFFOUECIZUHMUGUIPZDEQUIUGP
      ZDEQDEUIFRUJUKDEUGUISTUAUKABUBUEGUCUD $.
  $}

  ${
    $d F x y $.  $d Y x y $.
    $( For any element in the range of a function there is an element in the
       domain of the function for which the function value is the element of
       the range.  (Contributed by Alexander van der Vekens, 8-Dec-2017.) $)
    elrnrexdm $p |- ( Fun F -> ( Y e. ran F
                                 -> E. x e. dom F Y = ( F ` x ) ) ) $=
      ( vy wfun crn wcel cv wceq cfv cdm wa eqidd ancli adantl eqeq2 rspcev syl
      wrex ex wfn wb funfn rexrn sylbi sylibd ) BEZCBFZGZCDHZIZDUHSZCAHBJZIZABK
      ZSZUGUIULUGUILUICCIZLZULUIURUGUIUQUICMNOUKUQDCUHUJCCPQRTUGBUOUAULUPUBBUCU
      KUNDAUOBUJUMCPUDUEUF $.

    $( For any element in the range of a function there is an element in the
       domain of the function for which the function value is the element of
       the range.  (Contributed by Alexander van der Vekens, 17-Dec-2017.) $)
    elrnrexdmb $p |- ( Fun F -> ( Y e. ran F
                                 <-> E. x e. dom F Y = ( F ` x ) ) ) $=
      ( wfun crn wcel cv cfv wceq cdm wrex wfn funfn fvelrnb sylbi eqcom rexbii
      wb syl6bbr ) BDZCBEFZAGBHZCIZABJZKZCUBIZAUDKTBUDLUAUERBMAUDCBNOUFUCAUDCUB
      PQS $.

    $( For any element in the domain of a function there is an element in the
       range of the function which is the function value for the element of the
       domain.  (Contributed by Alexander van der Vekens, 8-Dec-2017.) $)
    eldmrexrn $p |- ( Fun F -> ( Y e. dom F
                                 -> E. x e. ran F x = ( F ` Y ) ) ) $=
      ( wfun cdm wcel cv cfv wceq crn wrex wa fvelrn eqid eqeq1 rspcev sylancl
      ex ) BDZCBEFZAGZCBHZIZABJZKZSTLUBUDFUBUBIZUECBMUBNUCUFAUBUDUAUBUBOPQR $.

    $( For any element in the domain of a function, there is an element in the
       range of the function which is the value of the function at that
       element.  Because of the definition ~ df-fv of the value of a function,
       the theorem is only valid in general if the empty set is not contained
       in the range of the function (the implication "to the right" is always
       valid).  Indeed, with the definition ~ df-fv of the value of a function,
       ` ( F `` Y ) = (/) ` may mean that the value of ` F ` at ` Y ` is the
       empty set or that ` F ` is not defined at ` Y ` .  (Contributed by
       Alexander van der Vekens, 17-Dec-2017.) $)
    eldmrexrnb $p |- ( ( Fun F /\ (/) e/ ran F )
                         -> ( Y e. dom F <-> E. x e. ran F x = ( F ` Y ) ) ) $=
      ( vy wfun c0 crn wnel wa cdm wcel cv cfv wceq wrex eldmrexrn adantr eleq1
      wi wne elnelne2 wex n0 elfvdm exlimiv sylbi syl expcom adantl com12 com13
      syl6bi rexlimdv impbid ) BEZFBGZHZIZCBJKZALZCBMZNZAUPOZUOUSVCSUQABCPQURVB
      USAUPVBUTUPKZURUSVBVDVAUPKZURUSSUTVAUPRURVEUSUQVEUSSUOVEUQUSVEUQIVAFTZUSV
      AFUPUAVFDLZVAKZDUBUSDVAUCVHUSDVGCBUDUEUFUGUHUIUJULUKUMUN $.
  $}

  ${
    $d x F $.  $d x G $.  $d x H $.  $d x K $.  $d x X $.
    $( The values of two function compositions are equal if the values of the
       composed functions are pairwise equal.  (Contributed by AV,
       26-Jan-2019.) $)
    fvcofneq $p |- ( ( G Fn A /\ K Fn B )
                  -> ( ( X e. ( A i^i B ) /\ ( G ` X ) = ( K ` X )
                         /\ A. x e. ( ran G i^i ran K ) ( F ` x ) = ( H ` x ) )
                       -> ( ( F o. G ) ` X ) = ( ( H o. K ) ` X ) ) ) $=
      ( wfn wa cin wcel cfv wceq crn ccom simpl elin fveq2 ex cv wral w3a sylbi
      3ad2ant1 fvco2 syl2an simpr eqcoms 3ad2ant2 adantl wi id fnfvelrn syl2anr
      anim12d wb eleq1 anbi2d biimpri syl6bi sylan9 eqeq12d rspcva eqcomd com23
      syl6 3impia impcom 3eqtrrd eqtrd ) EBIZGCIZJZHBCKLZHEMZHGMZNZAUAZDMZVSFMZ
      NZAEOZGOZKZUBZUCZHDEPMZHFGPMZNVNWGJZWHVPDMZWIVNVLHBLZWHWKNWGVLVMQVOVRWLWF
      VOWLHCLZJZWLHBCRZWLWMQUDZUEBDEHUFUGWJWIVQFMZVPFMZWKVNVMWMWIWQNWGVLVMUHVOV
      RWMWFVOWNWMWOWLWMUHUDZUECFGHUFUGWGWQWRNZVNVRVOWTWFWTVQVPVQVPFSUIUJUKWGVNW
      RWKNZVOVRWFVNXAULVOVRJZVNWFXAXBVNVPWELZWFXAULVOVNVPWCLZVQWDLZJZVRXCVOVLXD
      VMXEVOVLXDVLVLWLXDVOVLUMWPBHEUNUOTVOVMXEVMVMWMXEVOVMUMWSCHGUNUOTUPVRXFXDV
      PWDLZJZXCVRXEXGXDXEXGUQVQVPVQVPWDURUIUSXCXHVPWCWDRUTVAVBXCWFXAXCWFJWKWRWB
      WKWRNAVPWEVSVPNVTWKWAWRVSVPDSVSVPFSVCVDVETVGVFVHVIVJVKT $.
  $}

  ${
    $d w x z A $.  $d y B $.  $d y ch $.  $d w y z F $.  $d w x z ps $.
    ralrnmpt.1 $e |- F = ( x e. A |-> B ) $.
    ralrnmpt.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    $( A restricted quantifier over an image set.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    ralrnmpt $p |- ( A. x e. A B e. V ->
      ( A. y e. ran F ps <-> A. x e. A ch ) ) $=
      ( vw vz wcel wral cv cfv wsbc wb syl nfv crn fnmpt dfsbcq nfsbc1v sbceq1a
      wfn ralrn cbvral bicomi cmpt nfmpt1 nfcxfr nfcv nfsbc weq sbceq1d 3bitr3g
      nffv fveq2 wa fvmpt2 sbcieg adantl bitrd ralimiaa ralbi ) FHMZCENZADGUAZN
      ZADCOZGPZQZCENZBCENZVHADKOZQZKVINZADLOZGPZQZLENZVJVNVHGEUFVRWBRCEFGHIUBVQ
      WAKLEGADVPVTUCUGSVJVRAVQDKVIAKTADVPUDADVPUEUHUIWAVMLCEACDVTCVSGCGCEFUJICE
      FUKULCVSUMURACTUNVMLTLCUOADVTVLVSVKGUSUPUHUQVHVMBRZCENVNVORVGWCCEVKEMZVGU
      TZVMADFQZBWEADVLFCEFHGIVAUPVGWFBRWDABDFHJVBVCVDVEVMBCEVFSVD $.

    $( A restricted quantifier over an image set.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    rexrnmpt $p |- ( A. x e. A B e. V ->
      ( E. y e. ran F ps <-> E. x e. A ch ) ) $=
      ( wcel wral wn crn wrex cv wceq notbid ralrnmpt dfrex2 3bitr4g ) FHKCELZA
      MZDGNZLZMBMZCELZMADUDOBCEOUBUEUGUCUFCDEFGHIDPFQABJRSRADUDTBCETUA $.
  $}

  ${
    f0cl.1 $e |- F : A --> B $.
    f0cl.2 $e |- (/) e. B $.
    $( Unconditional closure of a function when the range includes the empty
       set.  (Contributed by Mario Carneiro, 12-Sep-2013.) $)
    f0cli $p |- ( F ` C ) e. B $=
      ( wcel cfv ffvelrni cdm fdmi eleq2i wn c0 ndmfv syl6eqel sylnbir pm2.61i
      ) CAGZCDHZBGZABCDEISCDJZGZUAUBACABDEKLUCMTNBCDOFPQR $.
  $}

  $( Alternate definition of a mapping.  (Contributed by NM, 14-Nov-2007.) $)
  dff2 $p |- ( F : A --> B <-> ( F Fn A /\ F C_ ( A X. B ) ) ) $=
    ( wf wfn cxp wss wa ffn fssxp jca crn rnss rnxpss syl6ss anim2i df-f sylibr
    impbii ) ABCDZCAEZCABFZGZHZTUAUCABCIABCJKUDUACLZBGZHTUCUFUAUCUEUBLBCUBMABNO
    PABCQRS $.

  ${
    $d f g x y z A $.  $d f g x y z B $.  $d x y z F $.
    $( Alternate definition of a mapping.  (Contributed by NM, 20-Mar-2007.) $)
    dff3 $p |- ( F : A --> B <->
              ( F C_ ( A X. B ) /\ A. x e. A E! y x F y ) ) $=
      ( vz cxp wss cv wbr weu wa wcel wex cop sylibr adantr sylanbrc wi syl6 wf
      wral fssxp wmo cfv wfun cdm ffun fdm eleq2d biimpar funfvop syl2an2r fvex
      df-br breq2 spcev syl funmo eu5 ralrimiva jca wfn crn wceq wrel xpss sstr
      wal mpan2 df-rel df-ral eumo imim2i adantl wn ssel syl5bi opelxp1 exlimdv
      cvv con3d exmo ori pm2.61d alimdv imp dffun6 dmss dmxpss syl6ss weq breq1
      ex eubidv rspccv euex vex eldm ssrdv anim12i eqss rnss rnxpss df-f impbii
      df-fn ) CDEUAZECDGZHZAIZBIZEJZBKZACUBZLZXHXJXOCDEUCXHXNACXHXKCMZLZXMBNZXM
      BUDZXNXRXKXKEUEZEJZXSXRXKYAOEMZYBXHEUFZXQXKEUGZMZYCCDEUHZXHYFXQXHYECXKCDE
      UIUJUKXKEULUMXKYAEUOPXMYBBYAXKEUNXLYAXKEUPUQURXHXTXQXHYDXTYGBXKEUSURQXMBU
      TRVAVBXPECVCZEVDZDHZXHXPYDYECVEZYHXPEVFZXTAVIZYDXJYLXOXJEWAWAGZHZYLXJXIYN
      HYOCDVGEXIYNVHVJEVKPQXJXOYMXOXQXNSZAVIXJYMXNACVLXJYPXTAXJYPXTXJYPLXQXTYPX
      QXTSXJXNXTXQXMBVMVNVOXJXQVPZXTSYPXJYQXSVPXTXJXSXQXJXMXQBXJXMXKXLOZXIMZXQX
      MYREMXJYSXKXLEUOEXIYRVQVRXKXLCDVSTVTWBXSXTXMBWCWDTQWEWNWFVRWGABEWHRXPYECH
      ZCYEHZLYKXJYTXOUUAXJYEXIUGCEXIWICDWJWKXOFCYEXOFIZCMUUBXLEJZBKZUUBYEMZXNUU
      DAUUBCAFWLXMUUCBXKUUBXLEWMWOWPUUDUUCBNUUEUUCBWQBUUBEFWRWSPTWTXAYECXBPECXG
      RXJYJXOXJYIXIVDDEXIXCCDXDWKQCDEXERXF $.

    $( Alternate definition of a mapping.  (Contributed by NM, 20-Mar-2007.) $)
    dff4 $p |- ( F : A --> B <->
              ( F C_ ( A X. B ) /\ A. x e. A E! y e. B x F y ) ) $=
      ( wf cxp wss cv wbr weu wral wa wreu dff3 wcel cop df-br ssel opelxp2
      syl6 syl5bi pm4.71rd eubidv df-reu syl6bbr ralbidv pm5.32i bitri ) CDEFEC
      DGZHZAIZBIZEJZBKZACLZMUKUNBDNZACLZMABCDEOUKUPURUKUOUQACUKUOUMDPZUNMZBKUQU
      KUNUTBUKUNUSUNULUMQZEPZUKUSULUMERUKVBVAUJPUSEUJVASULUMCDTUAUBUCUDUNBDUEUF
      UGUHUI $.

    $( An onto mapping expressed in terms of function values.  (Contributed by
       NM, 29-Oct-2006.) $)
    dffo3 $p |- ( F : A -onto-> B <-> ( F : A --> B /\
                  A. y e. B E. x e. A y = ( F ` x ) ) ) $=
      ( wfo wf crn wceq wa cv cfv wrex wral dffo2 cab wb wcel wal wi wfn fnrnfv
      ffn eqeq1d simpr ffvelrn adantr eqeltrd exp31 rexlimdv biantrurd syl6rbbr
      syl dfbi2 albidv abeq1 df-ral 3bitr4g bitrd pm5.32i bitri ) CDEFCDEGZEHZD
      IZJVBBKZAKZELZIZACMZBDNZJCDEOVBVDVJVBVDVIBPZDIZVJVBECUAZVDVLQCDEUCVMVCVKD
      ABCEUBUDUMVBVIVEDRZQZBSVNVITZBSVLVJVBVOVPBVBVPVIVNTZVPJVOVBVQVPVBVHVNACVB
      VFCRZVHVNVBVRJZVHJVEVGDVSVHUEVSVGDRVHCDVFEUFUGUHUIUJUKVIVNUNULUOVIBDUPVIB
      DUQURUSUTVA $.

    $( Alternate definition of an onto mapping.  (Contributed by NM,
       20-Mar-2007.) $)
    dffo4 $p |- ( F : A -onto-> B <->
                ( F : A --> B /\ A. y e. B E. x e. A x F y ) ) $=
      ( wfo wf cv wbr wrex wral wa crn wceq dffo2 simpl wcel wex vex wi syl5bbr
      elrn eleq2 biimpar adantll wfn ffn fnbr syl ancrd eximdv syl6ibr ad2antrr
      ex df-rex mpd ralrimiva jca sylbi cfv fnbrfvb eqcom syl6ib sylan reximdva
      biimprd ralimdv imdistani dffo3 sylibr impbii ) CDEFZCDEGZAHZBHZEIZACJZBD
      KZLZVLVMEMZDNZLZVSCDEOWBVMVRVMWAPWBVQBDWBVODQZLVPARZVQWAWCWDVMWAWDWCWDVOV
      TQWAWCAVOEBSUBVTDVOUCUAUDUEVMWDVQTWAWCVMWDVNCQZVPLZARVQVMVPWFAVMVPWEVMECU
      FZVPWETCDEUGZWGVPWECVNVOEUHUNUIUJUKVPACUOULUMUPUQURUSVSVMVOVNEUTZNZACJZBD
      KZLVLVMVRWLVMVQWKBDVMVPWJACVMWGWEVPWJTWHWGWELZVPWIVONZWJWMWNVPCVNVOEVAVFW
      IVOVBVCVDVEVGVHABCDEVIVJVK $.

    $( Alternate definition of an onto mapping.  (Contributed by NM,
       20-Mar-2007.) $)
    dffo5 $p |- ( F : A -onto-> B <->
                ( F : A --> B /\ A. y e. B E. x x F y ) ) $=
      ( wfo wf cv wbr wrex wral wa wex dffo4 rexex ralimi anim2i wcel wfn wi ex
      ffn fnbr syl ancrd eximdv df-rex syl6ibr ralimdv imdistani impbii bitri )
      CDEFCDEGZAHZBHZEIZACJZBDKZLZUMUPAMZBDKZLZABCDENUSVBURVAUMUQUTBDUPACOPQUMV
      AURUMUTUQBDUMUTUNCRZUPLZAMUQUMUPVDAUMUPVCUMECSZUPVCTCDEUBVEUPVCCUNUOEUCUA
      UDUEUFUPACUGUHUIUJUKUL $.

    $( A relation equivalent to the existence of an onto mapping.  The
       right-hand ` f ` is not necessarily a function.  (Contributed by NM,
       20-Mar-2007.) $)
    exfo $p |- ( E. f f : A -onto-> B <->
           E. f ( A. x e. A E! y e. B x f y /\ A. x e. B E. y e. A y f x ) ) $=
      ( vg cv wfo wex wbr wreu wral wrex wa wf dffo4 wss dff4 sylibr foeq1 wceq
      cxp simprbi anim1i sylbi eximi cin crn wcel brinxp reubidva ralimia inss2
      biimpd jctil rninxp biimpri anim12i dffo2 vex inex1 exlimiv cbvexv impbii
      spcev syl sylib ) CDEGZHZEIZAGZBGZVHJZBDKZACLZVLVKVHJBCMADLZNZEIZVIVQEVIC
      DVHOZVPNVQBACDVHPVSVOVPVSVHCDUBZQVOABCDVHRUCUDUEUFVRCDFGZHZFIZVJVQWCEVQCD
      VHVTUGZHZWCVQCDWDOZWDUHDUAZNWEVOWFVPWGVOWDVTQZVKVLWDJZBDKZACLZNWFVOWKWHVN
      WJACVKCUIZVNWJWLVMWIBDVKVLCDVHUJUKUNULVHVTUMUOABCDWDRSWGVPBACDVHUPUQURCDW
      DUSSWBWEFWDVHVTEUTVACDWAWDTVEVFVBWBVIFECDWAVHTVCVGVD $.
  $}

  ${
    $d F x y $.  $d A x y $.  $d B x y $.  $d C x y $.
    $( Property of a surjective function.  (Contributed by Jeff Madsen,
       4-Jan-2011.) $)
    foelrn $p |- ( ( F : A -onto-> B /\ C e. B )
                                  -> E. x e. A C = ( F ` x ) ) $=
      ( vy wfo cv wceq wrex wral wcel dffo3 simprbi eqeq1 rexbidv rspccva sylan
      cfv wf ) BCEGZFHZAHESZIZABJZFCKZDCLDUCIZABJZUABCETUFAFBCEMNUEUHFDCUBDIUDU
      GABUBDUCOPQR $.
  $}

  ${
    $d F x y z $.  $d G x y z $.  $d A y z $.  $d B x y z $.  $d C x y z $.
    $( If a composition of two functions is surjective, then the function on
       the left is surjective.  (Contributed by Jeff Madsen, 16-Jun-2011.)
       (Proof shortened by JJ, 14-Jul-2021.) $)
    foco2 $p |- ( ( F : B --> C /\ G : A --> B /\
                        ( F o. G ) : A -onto-> C ) -> F : B -onto-> C ) $=
      ( vy vx vz wf ccom wfo wa cv cfv wceq wrex wral w3a wcel foelrn rexlimdva
      ffvelrn fvco3 fveq2 eqeq2d rspcev syl2anc eqeq1 syl5ibrcom syl5 ralrimiva
      rexbidv impl anim2i 3anass dffo3 3imtr4i ) BCDIZABEIZACDEJZKZLZLURFMZGMZD
      NZOZGBPZFCQZLURUSVARBCDKVBVHURVBVGFCUSVAVCCSZVGVAVILVCHMZUTNZOZHAPUSVGHAC
      VCUTTUSVLVGHAUSVJASLZVGVLVKVEOZGBPZVMVJENZBSVKVPDNZOZVOABVJEUBABVJDEUCVNV
      RGVPBVDVPOVEVQVKVDVPDUDUEUFUGVLVFVNGBVCVKVEUHULUIUAUJUMUKUNURUSVAUOGFBCDU
      PUQ $.

    $( Obsolete proof of ~ foco2 as of 14-Jul-2021.  (Contributed by Jeff
       Madsen, 16-Jun-2011.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    foco2OLD $p |- ( ( F : B --> C /\ G : A --> B /\
                        ( F o. G ) : A -onto-> C ) -> F : B -onto-> C ) $=
      ( vy vx vz wf ccom wfo w3a cv cfv wceq wrex wral wa wcel adantll sylanbrc
      simp1 foelrn ffvelrn fvco3 fveq2 eqeq2d rspcev syl2anc rexbidv syl5ibrcom
      eqeq1 rexlimdva syl5 impl ralrimiva 3impa dffo3 ) BCDIZABEIZACDEJZKZLUSFM
      ZGMZDNZOZGBPZFCQZBCDKUSUTVBUBUSUTVBVHUSUTRZVBRVGFCVIVBVCCSZVGVBVJRVCHMZVA
      NZOZHAPVIVGHACVCVAUCVIVMVGHAVIVKASZRZVGVMVLVEOZGBPZVOVKENZBSZVLVRDNZOZVQU
      TVNVSUSABVKEUDTUTVNWAUSABVKDEUETVPWAGVRBVDVROVEVTVLVDVRDUFUGUHUIVMVFVPGBV
      CVLVEULUJUKUMUNUOUPUQGFBCDURUA $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d y z C $.  $d y z F $.
    fmpt.1 $e |- F = ( x e. A |-> C ) $.
    $( Functionality of the mapping operation.  (Contributed by Mario Carneiro,
       26-Jul-2013.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    fmpt $p |- ( A. x e. A C e. B <-> F : A --> B ) $=
      ( vy wcel wral wf wfn crn wss fnmpt cv wceq wrex cab rnmpt wa biimparc ex
      r19.29 rexlimivw syl abssdv syl5eqss df-f sylanbrc crab ccnv cima fimacnv
      eleq1 mptpreima syl5reqr rabid2 sylib impbii ) DCHZABIZBCEJZVAEBKELZCMVBA
      BDECFNVAVCGOZDPZABQZGRCAGBDEFSVAVFGCVAVFVDCHZVAVFTUTVETZABQVGUTVEABUCVHVG
      ABVEVGUTVDDCUNUAUDUEUBUFUGBCEUHUIVBBUTABUJZPVAVBVIEUKCULBABDCEFUOBCEUMUPU
      TABUQURUS $.

    $( Express bijection for a mapping operation.  (Contributed by Mario
       Carneiro, 30-May-2015.)  (Revised by Mario Carneiro, 4-Dec-2016.) $)
    f1ompt $p |- ( F : A -1-1-onto-> B <->
        ( A. x e. A C e. B /\ A. y e. B E! x e. A y = C ) ) $=
      ( vz wa cv wceq wral wcel wfn wbr weu nfcv bitri vex 3bitr4i wf wf1o wreu
      ccnv wb ffn dff1o4 baib syl cres fnres cmpt nfmpt1 nfcxfr nfv breq1 copab
      nfbr df-mpt eqtri breqi cop df-br opabid syl6bb cbveu brcnv df-reu ralbii
      eubii wrel cdm wss relcnv crn df-rn frn syl5eqssr relssres sylancr fneq1d
      syl5bbr bitr4d pm5.32i f1of pm4.71ri fmpt anbi1i ) CDFUAZCDFUBZIWIBJZEKZA
      CUCZBDLZIWJEDMACLZWNIWIWJWNWIWJFUDZDNZWNWIFCNZWJWQUECDFUFWJWRWQCDFUGUHUIW
      NWPDUJZDNZWIWQWTWKHJZWPOZHPZBDLWNBHDWPUKXCWMBDXAWKFOZHPAJZCMWLIZAPXCWMXDX
      FHAAXAWKFAXAQAFACEULZGACEUMUNAWKQURXFHUOXAXEKXDXEWKFOZXFXAXEWKFUPXHXEWKXF
      ABUQZOZXFXEWKFXIFXGXIGABCEUSUTVAXJXEWKVBXIMXFXEWKXIVCXFABVDRRVEVFXBXDHWKX
      AFBSHSVGVJWLACVHTVIRWIDWSWPWIWPVKWPVLZDVMWSWPKFVNWIXKFVODFVPCDFVQVRWPDVSV
      TWAWBWCWDWJWICDFWEWFWOWIWNACDEFGWGWHT $.

    fmpti.2 $e |- ( x e. A -> C e. B ) $.
    $( Functionality of the mapping operation.  (Contributed by NM,
       19-Mar-2005.)  (Revised by Mario Carneiro, 1-Sep-2015.) $)
    fmpti $p |- F : A --> B $=
      ( wcel wral wf rgen fmpt mpbi ) DCHZABIBCEJNABGKABCDEFLM $.
  $}

  ${
    $d A t $.  $d C t $.
    mptex2.1 $e |- ( ph -> ( t e. A |-> B ) : A --> C ) $.
    $( If a class given as a map-to notation is a set, it's image values are
       set.  (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
    mptex2 $p |- ( ( ph /\ t e. A ) -> B e. C ) $=
      ( wcel cmpt wf wral eqid fmpt sylibr r19.21bi ) ADEGZBCACEBCDHZIOBCJFBCED
      PPKLMN $.
  $}

  ${
    $d x A $.  $d x C $.  $d x ph $.
    fmptd.1 $e |- ( ( ph /\ x e. A ) -> B e. C ) $.
    fmptd.2 $e |- F = ( x e. A |-> B ) $.
    $( Domain and codomain of the mapping operation; deduction form.
       (Contributed by Mario Carneiro, 13-Jan-2013.) $)
    fmptd $p |- ( ph -> F : A --> C ) $=
      ( wcel wral wf ralrimiva fmpt sylib ) ADEIZBCJCEFKAOBCGLBCEDFHMN $.
  $}

  ${
    $d x A $.  $d x C $.  $d x ph $.
    fmpt3d.1 $e |- ( ph -> F = ( x e. A |-> B ) ) $.
    fmpt3d.2 $e |- ( ( ph /\ x e. A ) -> B e. C ) $.
    $( Domain and co-domain of the mapping operation; deduction form.
       (Contributed by Thierry Arnoux, 4-Jun-2017.) $)
    fmpt3d $p |- ( ph -> F : A --> C ) $=
      ( wf cmpt eqid fmptd feq1d mpbird ) ACEFICEBCDJZIABCDEOHOKLACEFOGMN $.
  $}

  ${
    $d A x $.  $d C x $.
    fmptdf.1 $e |- F/ x ph $.
    fmptdf.2 $e |- ( ( ph /\ x e. A ) -> B e. C ) $.
    fmptdf.3 $e |- F = ( x e. A |-> B ) $.
    $( A version of ~ fmptd using bound-variable hypothesis instead of a
       distinct variable condition for ` ph ` .  (Contributed by Glauco
       Siliprandi, 29-Jun-2017.) $)
    fmptdf $p |- ( ph -> F : A --> C ) $=
      ( wcel wral wf cv ex ralrimi fmpt sylib ) ADEJZBCKCEFLARBCGABMCJRHNOBCEDF
      IPQ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    $( A function maps to a class to which all values belong.  (Contributed by
       NM, 3-Dec-2003.) $)
    ffnfv $p |- ( F : A --> B <-> ( F Fn A /\ A. x e. A ( F ` x ) e. B ) ) $=
      ( vy wf wfn cv cfv wcel wral ffn ffvelrn ralrimiva jca crn wss simpl wceq
      wa wrex fvelrnb biimpd nfra1 nfv wi rsp eleq1 biimpcd syl6 rexlimd sylan9
      ssrdv df-f sylanbrc impbii ) BCDFZDBGZAHZDIZCJZABKZTZUQURVBBCDLUQVAABBCUS
      DMNOVCURDPZCQUQURVBRVCEVDCUREHZVDJZUTVESZABUAZVBVECJZURVFVHABVEDUBUCVBVGV
      IABVAABUDVIAUEVBUSBJVAVGVIUFVAABUGVGVAVIUTVECUHUIUJUKULUMBCDUNUOUP $.
  $}

  ${
    $d z A $.  $d z B $.  $d z F $.  $d x z $.
    ffnfvf.1 $e |- F/_ x A $.
    ffnfvf.2 $e |- F/_ x B $.
    ffnfvf.3 $e |- F/_ x F $.
    $( A function maps to a class to which all values belong.  This version of
       ~ ffnfv uses bound-variable hypotheses instead of distinct variable
       conditions.  (Contributed by NM, 28-Sep-2006.) $)
    ffnfvf $p |- ( F : A --> B <-> ( F Fn A /\ A. x e. A ( F ` x ) e. B ) ) $=
      ( vz wf wfn cv cfv wcel wral wa ffnfv nfcv nffv nfel nfv weq fveq2 eleq1d
      cbvralf anbi2i bitri ) BCDIDBJZHKZDLZCMZHBNZOUGAKZDLZCMZABNZOHBCDPUKUOUGU
      JUNHABHBQEAUICAUHDGAUHQRFSUNHTHAUAUIUMCUHULDUBUCUDUEUF $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( An upper bound for range determined by function values.  (Contributed by
       NM, 8-Oct-2004.) $)
    fnfvrnss $p |- ( ( F Fn A /\ A. x e. A ( F ` x ) e. B ) -> ran F C_ B ) $=
      ( wfn cv cfv wcel wral wa wf crn wss ffnfv frn sylbir ) DBEAFDGCHABIJBCDK
      DLCMABCDNBCDOP $.
  $}

  ${
    $d A k $.  $d F k $.  $d V k $.
    $( A function is a function into a subset of its codomain if all of its
       values are elements of this subset.  (Contributed by AV, 7-Feb-2021.) $)
    frnssb $p |- ( ( V C_ W /\ A. k e. A ( F ` k ) e. V )
                   -> ( F : A --> W <-> F : A --> V ) ) $=
      ( wss cv cfv wcel wral wa wf wfn simpr anim12ci ffnfv sylibr simpl anim1i
      ffn ancomd fss syl impbida ) DEFZBGCHDIBAJZKZAECLZADCLZUGUHKCAMZUFKUIUGUF
      UHUJUEUFNAECTOBADCPQUGUIKZUIUEKUHUKUEUIUGUEUIUEUFRSUAADECUBUCUD $.
  $}

  ${
    $d x A $.  $d x C $.
    rnmptss.1 $e |- F = ( x e. A |-> B ) $.
    $( The range of an operation given by the "maps to" notation as a subset.
       (Contributed by Thierry Arnoux, 24-Sep-2017.) $)
    rnmptss $p |- ( A. x e. A B e. C -> ran F C_ C ) $=
      ( wcel wral wf crn wss fmpt frn sylbi ) CDGABHBDEIEJDKABDCEFLBDEMN $.
  $}

  ${
    $d x A $.  $d y A $.  $d y C $.  $d y F $.  $d x ph $.  $d y ph $.
    fmpt2d.2 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    fmpt2d.1 $e |- ( ph -> F = ( x e. A |-> B ) ) $.
    fmpt2d.3 $e |- ( ( ph /\ y e. A ) -> ( F ` y ) e. C ) $.
    $( Domain and codomain of the mapping operation; deduction form.
       (Contributed by NM, 27-Dec-2014.) $)
    fmpt2d $p |- ( ph -> F : A --> C ) $=
      ( wfn cv cfv wcel wral wf cmpt ralrimiva eqid fnmpt fneq1d ffnfv sylanbrc
      syl mpbird ) AGDLZCMGNFOZCDPDFGQAUGBDERZDLZAEHOZBDPUJAUKBDISBDEUIHUITUAUE
      ADGUIJUBUFAUHCDKSCDFGUCUD $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( A necessary and sufficient condition for a restricted function.
       (Contributed by Mario Carneiro, 14-Nov-2013.) $)
    ffvresb $p |- ( Fun F -> ( ( F |` A ) : A --> B <->
        A. x e. A ( x e. dom F /\ ( F ` x ) e. B ) ) ) $=
      ( wfun cres wf cv cdm wcel cfv wa wral fdm cin dmres inss2 adantl wfn wss
      eqsstri syl6eqssr sselda wceq fvres ffvelrn eqeltrrd jca ralrimiva ralimi
      crn simpl dfss3 sylibr funfn fnssres sylanb sylan2 eleq1d syl5ibr ralimia
      simpr fnfvrnss syl2anc df-f sylanbrc ex impbid2 ) DEZBCDBFZGZAHZDIZJZVLDK
      ZCJZLZABMZVKVQABVKVLBJZLZVNVPVKBVMVLVKBVJIZVMBCVJNWABVMOVMDBPBVMQUAUBUCVT
      VLVJKZVOCVSWBVOUDVKVLBDUEZRBCVLVJUFUGUHUIVIVRVKVIVRLZVJBSZVJUKCTZVKVRVIBV
      MTZWEVRVNABMWGVQVNABVNVPULUJABVMUMUNVIDVMSWGWEDUOVMBDUPUQURZWDWEWBCJZABMZ
      WFWHVRWJVIVQWIABVQWIVSVPVNVPVBVSWBVOCWCUSUTVARABCVJVCVDBCVJVEVFVGVH $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x y ph $.  $d y ps $.  $d x ch $.
    f1oresrab.1 $e |- F = ( x e. A |-> C ) $.
    f1oresrab.2 $e |- ( ph -> F : A -1-1-onto-> B ) $.
    f1oresrab.3 $e |- ( ( ph /\ x e. A /\ y = C ) -> ( ch <-> ps ) ) $.
    $( Build a bijection between restricted abstract builders, given a
       bijection between the base classes, deduction version.  (Contributed by
       Thierry Arnoux, 17-Aug-2018.) $)
    f1oresrab $p |- ( ph -> ( F |` { x e. A | ps } ) :
                               { x e. A | ps } -1-1-onto-> { y e. B | ch } ) $=
      ( crab ccnv cres wf1o wfun wceq wb wcel f1ofun funcnvcnv 3syl cima f1ocnv
      wf1 wss f1of1 ssrab2 f1ores sylancl mptpreima cv wa wi wal 3expia alrimiv
      wral f1of syl fmpt sylibr r19.21bi elrab3t syl2anc rabbidva syl5eq f1oeq3
      wf mpbid f1orescnv rescnvcnv f1oeq1 ax-mp sylib ) ABDFMZCEGMZINZNZVQOZPZV
      QVRIVQOZPZAVTQZVRVQVSVROZPZWBAFGIPZIQWEKFGIUAIUBUCAVRVSVRUDZWFPZWGAGFVSUF
      ZVRGUGWJAWHGFVSPWKKFGIUEGFVSUHUCCEGUIGFVRVSUJUKAWIVQRWJWGSAWIHVRTZDFMVQDF
      HVRIJULAWLBDFADUMFTZUNZEUMHRZCBSZUOZEUPHGTZWLBSWNWQEAWMWOWPLUQURAWRDFAFGI
      VJZWRDFUSAWHWSKFGIUTVADFGHIJVBVCVDCBEHGVEVFVGVHWIVQVRWFVIVAVKVQVRVSVLVFWA
      WCRWBWDSIVQVMVQVRWAWCVNVOVP $.
  $}

  ${
    $d u v w x z A $.  $d u x y B $.  $d u w z F $.  $d u w z G $.  $d u y R $.
    $d u w x z ph $.  $d u x S $.  $d u v w y z T $.
    fmptco.1 $e |- ( ( ph /\ x e. A ) -> R e. B ) $.
    fmptco.2 $e |- ( ph -> F = ( x e. A |-> R ) ) $.
    fmptco.3 $e |- ( ph -> G = ( y e. B |-> S ) ) $.
    fmptco.4 $e |- ( y = R -> S = T ) $.
    $( Composition of two functions expressed as ordered-pair class
       abstractions.  If ` F ` has the equation ` ( x + 2 ) ` and ` G ` the
       equation ` ( 3 * z ) ` then ` ( G o. F ) ` has the equation
       ` ( 3 * ( x + 2 ) ) ` .  (Contributed by FL, 21-Jun-2012.)  (Revised by
       Mario Carneiro, 24-Jul-2014.) $)
    fmptco $p |- ( ph -> ( G o. F ) = ( x e. A |-> T ) ) $=
      ( vu cv wbr wa wcel wceq vz vw vv ccom cmpt relco mptrel wex csb cop wfun
      cfv fmpt3d ffund funbrfv imp sylan eqcomd a1d expimpd pm4.71rd fvex breq2
      exbidv breq1 anbi12d ceqsexv cdm wb funfvbrb syl fdm eleq2d bitr3d fveq1d
      wf eqidd breq123d wi nfcv nfv nffvmpt1 nfbr nfcsb1v nfeq2 nfbi nfim fveq2
      breq1d csbeq1a eqeq2d imbi2d cvv simpl eleq1d id eqeqan12rd df-mpt brabga
      bibi12d vex sylancl eqid fvmpt2 syl2an2 biantrurd 3bitr4d expcom vtoclgaf
      impcom bitrd syl5bb opelco copab eleq2i nfan eleq1 eqeq1 anbi2d opelopabf
      pm5.32da bitri 3bitr4g eqrelrdv ) AUAUBJIUDZBDHUEZJIUFBDHUGAUAPZOPZIQZYHU
      BPZJQZRZOUHZYGDSZYJBYGHUIZTZRZYGYJUJZYESYRYFSZAYMYHYGIULZTZYLRZOUHZYQAYLU
      UBOAYLUUAAYIYKUUAAYIRZUUAYKUUDYTYHAIUKZYIYTYHTZADEIABDFEILKUMZUNZUUEYIUUF
      YGYHIUOUPUQURUSUTVAVDUUCYGYTIQZYTYJJQZRZAYQYLUUKOYTYGIVBUUAYIUUIYKUUJYHYT
      YGIVCYHYTYJJVEVFVGAUUKYNYGBDFUEZULZYJCEGUEZQZRYQAUUIYNUUJUUOAYGIVHZSZUUIY
      NAUUEUUQUUIVIUUHYGIVJVKAUUPDYGADEIVPUUPDTUUGDEIVLVKVMVNAYTUUMYJYJJUUNAYGI
      UULLVOMAYJVQVRVFAYNUUOYPYNAUUOYPVIZABPZUULULZYJUUNQZYJHTZVIZVSAUURVSBYGDB
      YGVTAUURBABWAUUOYPBBUUMYJUUNBDFYGWBBUUNVTBYJVTWCBYJYOBYGHWDZWEWFWGUUSYGTZ
      UVCUURAUVEUVAUUOUVBYPUVEUUTUUMYJUUNUUSYGUULWHWIUVEHYOYJBYGHWJZWKWTWLAUUSD
      SZUVCAUVGRZFYJUUNQZFESZUVBRZUVAUVBUVHUVJYJWMSUVIUVKVIKUBXAZCPZESZYHGTZRUV
      KCOFYJUUNEWMUVMFTZYHYJTZRZUVNUVJUVOUVBUVRUVMFEUVPUVQWNWOUVQUVPYHYJGHUVQWP
      NWQVFCOEGWRWSXBUVHUUTFYJUUNUVGUVGAUVJUUTFTUVGWPKBDFEUULUULXCXDXEWIUVHUVJU
      VBKXFXGXHXIXJYAXKXLXKOYGYJJIUAXAZUVLXMYSYRUVGUCPZHTZRZBUCXNZSYQYFUWCYRBUC
      DHWRXOUWBYNUVTYOTZRYQBUCYGYJYNUWDBYNBWABUVTYOUVDWEXPYQUCWAUVSUVLUVEUVGYNU
      WAUWDUUSYGDXQUVEHYOUVTUVFWKVFUVTYJTUWDYPYNUVTYJYOXRXSXTYBYCYD $.
  $}

  ${
    $d w x y z B $.  $d w y z R $.  $d w x z S $.  $d x z A $.  $d y z T $.
    $d z ph $.
    fmptcof.1 $e |- ( ph -> A. x e. A R e. B ) $.
    fmptcof.2 $e |- ( ph -> F = ( x e. A |-> R ) ) $.
    fmptcof.3 $e |- ( ph -> G = ( y e. B |-> S ) ) $.
    ${
      fmptcof.4 $e |- ( y = R -> S = T ) $.
      $( Version of ~ fmptco where ` ph ` needn't be distinct from ` x ` .
         (Contributed by NM, 27-Dec-2014.) $)
      fmptcof $p |- ( ph -> ( G o. F ) = ( x e. A |-> T ) ) $=
        ( vz vw csb cmpt wceq nfcv ccom cv wcel wral nfcsb1v nfel1 csbeq1a rspc
        eleq1d mpan9 cbvmpt syl6eq csbeq1 fmptco csbeq1d syl6eqr csbiegf ralimi
        nfcsb eqid nfcvd mpteq12 sylancr syl eqtrd ) AJIUAZBDCFGQZRZBDHRZAVFODC
        BOUBZFQZGQZRVHAOPDEVKCPUBZGQZVLIJAFEUCZBDUDZVJDUCVKEUCZKVOVQBVJDBVKEBVJ
        FUEZUFBUBVJSZFVKEBVJFUGZUIUHUJAIBDFRODVKRLBODFVKOFTVRVTUKULAJCEGRPEVNRM
        CPEGVNPGTCVMGUECVMGUGUKULCVMVKGUMUNBODVGVLOVGTBCVKGVRBGTUSVSCFVKGVTUOUK
        UPAVPVHVISZKVPDDSVGHSZBDUDWADUTVOWBBDCFGHEVOCHVANUQURBDVGDHVBVCVDVE $.
    $}

    $( Composition of two functions expressed as mapping abstractions.
       (Contributed by NM, 22-May-2006.)  (Revised by Mario Carneiro,
       31-Aug-2015.) $)
    fmptcos $p |- ( ph -> ( G o. F ) = ( x e. A |-> [_ R / y ]_ S ) ) $=
      ( vz cv csb cmpt nfcv nfcsb1v csbeq1a cbvmpt syl6eq csbeq1 fmptcof ) ABMD
      EFCMNZGOZCFGOHIJKAICEGPMEUEPLCMEGUEMGQCUDGRCUDGSTUACUDFGUBUC $.
  $}

  ${
    $d x A $.  $d y B $.  $d x y C $.  $d x y F $.  $d x ph $.
    cofmpt.1 $e |- ( ph -> F : C --> D ) $.
    cofmpt.2 $e |- ( ( ph /\ x e. A ) -> B e. C ) $.
    $( Express composition of a maps-to function with another function in a
       maps-to notation.  (Contributed by Thierry Arnoux, 29-Jun-2017.) $)
    cofmpt $p |- ( ph ->
                     ( F o. ( x e. A |-> B ) ) = ( x e. A |-> ( F ` B ) ) ) $=
      ( vy cv cfv cmpt eqidd feqmptd fveq2 fmptco ) ABJCEDJKZGLDGLBCDMZGIASNAJE
      FGHORDGPQ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x C $.  $d x y D $.  $d x E $.
    $( Express composition of two functions as a maps-to applying both in
       sequence.  (Contributed by Stefan O'Rear, 5-Oct-2014.)  (Proof shortened
       by Mario Carneiro, 27-Dec-2014.) $)
    fcompt $p |- ( ( A : D --> E /\ B : C --> D ) -> ( A o. B ) = ( x e. C |->
        ( A ` ( B ` x ) ) ) ) $=
      ( vy wf wa cv cfv wcel ffvelrn adantll wfn cmpt wceq ffn dffn5 sylib
      adantl adantr fveq2 fmptco ) EFBHZDECHZIZAGDEAJZCKZGJZBKZUIBKCBUFUHDLUIEL
      UEDEUHCMNUGCDOZCADUIPQUFULUEDECRUAADCSTUGBEOZBGEUKPQUEUMUFEFBRUBGEBSTUJUI
      BUCUD $.
  $}

  ${
    $d F x y $.  $d I x $.  $d X x y $.  $d Y x y $.
    $( Composition with a constant function.  (Contributed by Stefan O'Rear,
       11-Mar-2015.) $)
    fcoconst $p |- ( ( F Fn X /\ Y e. X ) ->
        ( F o. ( I X. { Y } ) ) = ( I X. { ( F ` Y ) } ) ) $=
      ( vx vy wfn wcel wa csn cxp ccom cfv cmpt simplr wceq fconstmpt a1i cvv
      cv wf simpl dffn2 sylib feqmptd fveq2 fmptco syl6eqr ) ACGZDCHZIZABDJKZLE
      BDAMZNBUMJKUKEFBCDFTZAMUMULAUIUJETBHOULEBDNPUKEBDQRUKFCSAUKUICSAUAUIUJUBC
      AUCUDUEUNDAUFUGEBUMQUH $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    fsn.1 $e |- A e. _V $.
    fsn.2 $e |- B e. _V $.
    $( A function maps a singleton to a singleton iff it is the singleton of an
       ordered pair.  (Contributed by NM, 10-Dec-2003.) $)
    fsn $p |- ( F : { A } --> { B } <-> F = { <. A , B >. } ) $=
      ( vx vy csn cop wceq cv wcel wb wal wa velsn weu eleq1d bitr4i bitr2i feu
      wf opelf anbi12i sylib ex wreu snid mpan2 opeq2 pm5.32i ancom eubii eueq1
      anbi1i biantru euanv df-reu 3bitr4i sylibr opeq12 syl5ibrcom impbid opth2
      opex elsn syl6bb wrel frel relsnop eqrel sylancl mpbird wf1o f1osn f1oeq1
      alrimivv mpbiri f1of syl impbii ) AHZBHZCUBZCABIZHZJZWDWGFKZGKZIZCLZWJWFL
      ZMZGNFNZWDWMFGWDWKWHAJZWIBJZOZWLWDWKWQWDWKWQWDWKOWHWBLZWIWCLZOWQWBWCWHWIC
      UCWRWOWSWPFAPGBPZUDUEUFWDWKWQWECLZWDAWIIZCLZGWCUGZXAWDAWBLXDADUHGWBWCACUA
      UIXAWPOZGQZWSXCOZGQXAXDXEXGGXGWPXCOZXEWSWPXCWTUOXHWPXAOXEWPXCXAWPXBWECWIB
      AUJRUKXAWPULSTUMXAXAWPGQZOXFXIXAGBEUNUPXAWPGUQSXCGWCURUSUTWQWJWECWHWIABVA
      RVBVCWLWJWEJWQWJWEWHWIVEVFWHWIABDEVDTVGVQWDCVHWFVHWGWNMWBWCCVIABDEVJFGCWF
      VKVLVMWGWBWCCVNZWDWGXJWBWCWFVNABDEVOWBWCCWFVPVRWBWCCVSVTWA $.
  $}

  ${
    fsn2.1 $e |- A e. _V $.
    $( A function that maps a singleton to a class is the singleton of an
       ordered pair.  (Contributed by NM, 19-May-2004.) $)
    fsn2 $p |- ( F : { A } --> B <->
               ( ( F ` A ) e. B /\ F = { <. A , ( F ` A ) >. } ) ) $=
      ( csn wf cfv wcel wa cop wceq snid ffvelrn mpan2 wfn ffn crn dffn3 biimpi
      cima cdm imadmrn fndm imaeq2d syl5eqr fnsnfv eqtr4d feq3d mpbid syl snssi
      jca wss fss ancoms sylan impbii fvex fsn anbi2i bitri ) AEZBCFZACGZBHZVBV
      DEZCFZIZVECAVDJEKZIVCVHVCVEVGVCAVBHZVEADLZVBBACMNVCCVBOZVGVBBCPVLVBCQZCFZ
      VGVLVNVBCRSVLVMVFCVBVLVMCVBTZVFVLVMCCUAZTVOCUBVLVPVBCVBCUCUDUEVLVJVFVOKVK
      VBACUFNUGUHUIUJULVEVFBUMZVGVCVDBUKVGVQVCVBVFBCUNUOUPUQVGVIVEAVDCDACURUSUT
      VA $.
  $}

  ${
    $d A a b $.  $d B a b $.  $d F a b $.
    $( A function maps a singleton to a singleton iff it is the singleton of an
       ordered pair.  (Contributed by NM, 26-Oct-2012.) $)
    fsng $p |- ( ( A e. C /\ B e. D ) ->
                 ( F : { A } --> { B } <-> F = { <. A , B >. } ) ) $=
      ( va vb cv csn wf cop wceq wb sneq feq2d opeq1 sneqd eqeq2d bibi12d vex
      feq3d opeq2 fsn vtocl2g ) FHZIZGHZIZEJZEUEUGKZIZLZMAIZUHEJZEAUGKZIZLZMUMB
      IZEJZEABKZIZLZMFGABCDUEALZUIUNULUQVCUFUMUHEUEANOVCUKUPEVCUJUOUEAUGPQRSUGB
      LZUNUSUQVBVDUHUREUMUGBNUAVDUPVAEVDUOUTUGBAUBQRSUEUGEFTGTUCUD $.

    $( A function that maps a singleton to a class is the singleton of an
       ordered pair.  (Contributed by Thierry Arnoux, 11-Jul-2020.) $)
    fsn2g $p |- ( A e. V -> ( F : { A } --> B <->
               ( ( F ` A ) e. B /\ F = { <. A , ( F ` A ) >. } ) ) ) $=
      ( va cv csn wf cfv wcel cop wceq wa wb sneq feq2d fveq2 eleq1d eqidd id
      opeq12d sneqd eqeq12d anbi12d bibi12d vex fsn2 vtoclg ) EFZGZBCHZUICIZBJZ
      CUIULKZGZLZMZNAGZBCHZACIZBJZCAUTKZGZLZMZNEADUIALZUKUSUQVEVFUJURBCUIAOPVFU
      MVAUPVDVFULUTBUIACQZRVFCCUOVCVFCSVFUNVBVFUIAULUTVFTVGUAUBUCUDUEUIBCEUFUGU
      H $.
  $}

  $( The Cartesian product of two singletons.  (Contributed by Mario Carneiro,
     30-Apr-2015.) $)
  xpsng $p |- ( ( A e. V /\ B e. W ) ->
    ( { A } X. { B } ) = { <. A , B >. } ) $=
    ( wcel wa csn cxp wf cop wceq fconstg adantl fsng mpbid ) ACEZBDEZFAGZBGZRS
    HZIZTABJGKQUAPRBDLMABCDTNO $.

  ${
    xpsn.1 $e |- A e. _V $.
    xpsn.2 $e |- B e. _V $.
    $( The Cartesian product of two singletons.  (Contributed by NM,
       4-Nov-2006.) $)
    xpsn $p |- ( { A } X. { B } ) = { <. A , B >. } $=
      ( cvv wcel csn cxp cop wceq xpsng mp2an ) AEFBEFAGBGHABIGJCDABEEKL $.
  $}

  $( A singleton with a nested ordered pair is a one-to-one function of the
     cartesian product of two singleton onto a singleton.  (Contributed by AV,
     15-Aug-2019.) $)
  f1o2sn $p |- ( ( E e. V /\ X e. W )
       -> { <. <. E , E >. , X >. } : ( { E } X. { E } ) -1-1-onto-> { X } ) $=
    ( wcel wa cop csn wf1o cxp cvv opex simpr f1osng sylancr wceq anidms eqcomd
    wb xpsng adantr f1oeq2 syl mpbid ) ABEZDCEZFZAAGZHZDHZUHDGHZIZAHZUMJZUJUKIZ
    UGUHKEUFULAALUEUFMUHDKCNOUGUIUNPZULUOSUEUPUFUEUNUIUEUNUIPAABBTQRUAUIUNUJUKU
    BUCUD $.

  $( Restriction of the identity to a pair.  (Contributed by AV,
     11-Dec-2018.) $)
  residpr $p |- ( ( A e. V /\ B e. W ) -> ( _I |` { A , B } )
                                          = { <. A , A >. , <. B , B >. } ) $=
    ( wcel cid cpr cres csn cun cop df-pr reseq2i resundi cxp wceq xpsng anidms
    wa restidsing eqtri adantr adantl uneq12d uneq12i 3eqtr4g syl5eq ) ACEZBDEZ
    SZFABGZHZFAIZHZFBIZHZJZAAKZBBKZGZULFUMUOJZHUQUKVAFABLMFUMUONUAUJUMUMOZUOUOO
    ZJURIZUSIZJUQUTUJVBVDVCVEUHVBVDPZUIUHVFAACCQRUBUIVCVEPZUHUIVGBBDDQRUCUDUNVB
    UPVCATBTUEURUSLUFUG $.

  ${
    dfmpt.1 $e |- B e. _V $.
    $( Alternate definition for the "maps to" notation ~ df-mpt (although it
       requires that ` B ` be a set).  (Contributed by NM, 24-Aug-2010.)
       (Revised by Mario Carneiro, 30-Dec-2016.) $)
    dfmpt $p |- ( x e. A |-> B ) = U_ x e. A { <. x , B >. } $=
      ( cmpt cv csn cxp ciun cop dfmpt3 wceq wcel vex xpsn a1i iuneq2i eqtri )
      ABCEABAFZGCGHZIABSCJGZIABCKABTUATUALSBMSCANDOPQR $.

    $d x y $.  $d y A $.  $d y B $.
    $( A function expressed as the range of another function.  (Contributed by
       Mario Carneiro, 22-Jun-2013.)  (Proof shortened by Mario Carneiro,
       31-Aug-2015.) $)
    fnasrn $p |- ( x e. A |-> B ) = ran ( x e. A |-> <. x , B >. ) $=
      ( vy cmpt cv cop csn ciun crn dfmpt wcel wrex cab wceq rnmpt velsn eqtr4i
      eqid rexbii abbii df-iun ) ABCFABAGCHZIZJZABUDFZKZABCDLUHEGZUEMZABNZEOZUF
      UHUIUDPZABNZEOULAEBUDUGUGTQUKUNEUJUMABEUDRUAUBSAEBUEUCSS $.
  $}

  ${
    $d F x $.
    $( A function is a union of singletons of ordered pairs indexed by its
       domain.  (Contributed by AV, 18-Sep-2020.) $)
    funiun $p |- ( Fun F -> F = U_ x e. dom F { <. x , ( F ` x ) >. } ) $=
      ( wfun cdm cv cfv cmpt cop csn ciun wfn wceq funfn dffn5 sylbb fvex dfmpt
      syl6eq ) BCZBABDZAEZBFZGZATUAUBHIJSBTKBUCLBMATBNOATUBUABPQR $.
  $}

  ${
    $d F a x $.  $d X a x $.  $d Y a x $.
    funopsn.x $e |- X e. _V $.
    funopsn.y $e |- Y e. _V $.
    $( If a function is an ordered pair then it is a singleton of an ordered
       pair.  (Contributed by AV, 20-Sep-2020.) $)
    funopsn $p |- ( ( Fun F /\ F = <. X , Y >. )
                    -> E. a ( X = { a } /\ F = { <. a , a >. } ) ) $=
      ( vx cop wceq cv csn wa wex cfv wi wb adantl c0 wne imp wfun funiun eqeq1
      cdm ciun eqcom syl6bb opnzi eqcoms wrel funrel reldm0 syl biimprd necon3d
      neeq1 com12 syl6bi com3l impd ax-mp iunopeqop sylbid iuneq1 vex weq fveq2
      fvex id sneqd iunxsn syl6eq eqeq2d w3a snopeqop sylbb simpr3 simp1 eqcomd
      opeq12d opeq2d biimpac jca ex a1dd mpd impancom eximdv expcom expd mpcom
      ) AUAZABCHZIZBDJZKZIZAWOWOHZKZIZLZDMZAGAUDZGJZXDANZHZKZUEZIZWLWNXBOGAUBXI
      WLWNXBWLWNLZXIXBXJXILZXCWPIZDMZXBXJXIXMXJXIXHWMIZXMWNXIXNPWLWNXIWMXHIXNAW
      MXHUCWMXHUFUGQXJXCRSZXNXMOWMRSZXJXOOBCEFUHXPWLWNXOWNXPWLXOWNXPARSZWLXOOXP
      XQPWMAWMARUPUIWLXQXOWLXCRARWLARIZXCRIZWLAUJXRXSPAUKAULUMUNUOUQURUSUTVAGDX
      CXEBCXDAVHEFVBUMVCTXKXLXADXJXLXIXAXJXLLZXIAWOWOANZHZKZIZXAXTXHYCAXLXHYCIX
      JXLXHGWPXGUEYCGXCWPXGVDGWOXGYCDVEZGDVFZXFYBYFXDWOXEYAYFVIXDWOAVGVTVJVKVLQ
      VMXJYDXLXAXJYDLZWOYAIZBCIZWQVNZXLXAOXJYDYJXJYDWMYCIZYJWNYDYKPWLAWMYCUCQYK
      YCWMIYJWMYCUFWOYABCYEWOAVHEFVOVPURTYGYJXAXLYDYJXAOXJYDYJXAYDYJLWQWTYDYHYI
      WQVQYJYDWTYJYCWSAYJYBWRYJYAWOWOYJWOYAYHYIWQVRVSWAVJVMWBWCWDQWEWFWGVCWGWHW
      FWIWJWKT $.

    $( An ordered pair is a function iff it is a singleton of an ordered pair.
       (Contributed by AV, 20-Sep-2020.) $)
    funop $p |- ( Fun <. X , Y >.
                  <-> E. a ( X = { a } /\ <. X , Y >. = { <. a , a >. } ) ) $=
      ( cop wfun cv csn wceq wa wex funopsn mpan2 vex funsn funeq mpbiri adantl
      eqid exlimiv impbii ) ABFZGZACHZIJZUCUEUEFIZJZKZCLZUDUCUCJUJUCTUCABCDEMNU
      IUDCUHUDUFUHUDUGGUEUECOZUKPUCUGQRSUAUB $.
  $}

  ${
    $d A x $.  $d B x $.  $d G x $.  $d X x $.  $d Y x $.
    funopdmsn.g $e |- G = <. X , Y >. $.
    funopdmsn.x $e |- X e. V $.
    funopdmsn.y $e |- Y e. W $.
    $( The domain of a function which is an ordered pair is a singleton.
       (Contributed by AV, 15-Nov-2021.) $)
    funopdmsn $p |- ( ( Fun G /\ A e. dom G /\ B e. dom G ) -> A = B ) $=
      ( vx wfun cdm wcel wceq csn cop wa elexi eleq2 cv wex funeqi funop eqcomi
      bitri eqeq1i dmeq vex dmsnop syl6eq anbi12d elsni eqtr3 syl2an syl6bi syl
      wi sylbi adantl exlimiv 3impib ) CLZACMZNZBVDNZABOZVCFKUAZPZOZFGQZVHVHQPZ
      OZRZKUBZVEVFRZVGURZVCVKLVOCVKHUCFGKFDISGEJSUDUFVNVQKVMVQVJVMCVLOZVQVKCVLC
      VKHUEUGVRVDVIOZVQVRVDVLMVICVLUHVHVHKUIUJUKVSVPAVINZBVINZRVGVSVEVTVFWAVDVI
      ATVDVIBTULVTAVHOBVHOVGWAAVHUMBVHUMABVHUNUOUPUQUSUTVAUSVB $.
  $}

  ${
    $d A a x y $.  $d B a x y $.  $d G a x y $.
    funsndifnop.a $e |- A e. _V $.
    funsndifnop.b $e |- B e. _V $.
    funsndifnop.g $e |- G = { <. A , B >. } $.
    $( A singleton of an ordered pair is not an ordered pair if the components
       are different.  (Contributed by AV, 23-Sep-2020.) $)
    funsndifnop $p |- ( A =/= B -> -. G e. ( _V X. _V ) ) $=
      ( vx vy va cvv cv cop wceq wex wfun csn funeq ax-mp wa wi wcel elvv funsn
      cxp mpbiri vex funop syl6bb eqeq2 eqeq1 opex sneqr eqtr3 a1d sylbi syl6bi
      opth syl com23 impcom exlimiv com12 sylbid mpi exlimivv necon3ai ) CJJUDU
      AZABVGCGKZHKZLZMZHNGNABMZGHCUBVKVLGHVKCOZVLCABLZPZMZVMFVPVMVOOABDEUCCVOQU
      ERVKVMVHIKZPMZVJVQVQLZPZMZSZINZVLVKVMVJOWCCVJQVHVIIGUFHUFUGUHWCVKVLWBVKVL
      TZIWAVRWDWAVKVRVLWAVKCVTMZVRVLTZVJVTCUIVPWEWFTFVPWEVOVTMZWFCVOVTUJWGVNVSM
      ZWFVNVSABUKULWHAVQMBVQMSZWFABVQVQDEUQWIVLVRABVQUMUNUOURUPRUPUSUTVAVBVCVDV
      EUOVF $.

    $( A singleton of an ordered pair is an ordered pair of equal singletons if
       the components are equal.  (Contributed by AV, 24-Sep-2020.) $)
    funsneqopsn $p |- ( A = B -> G = <. { A } , { A } >. ) $=
      ( wceq cop csn opeq2 sneqd syl6reqr w3a eqid 3pm3.2i snex snopeqop syl6bb
      eqeq1 mpbiri syl ) ABGZCAAHZIZGZCAIZUFHZGZUBUDABHZICUBUCUIABAJKFLUEUHAAGZ
      UFUFGZUKMZUJUKUKANUFNZUMOUEUHUDUGGULCUDUGSAAUFUFDDAPZUNQRTUA $.

    $( A singleton of an ordered pair is an ordered pair if the components are
       equal.  (Contributed by AV, 24-Sep-2020.) $)
    funsneqop $p |- ( A = B -> G e. ( _V X. _V ) ) $=
      ( wceq csn cop cvv cxp funsneqopsn snex opelvv syl6eqel ) ABGCAHZPIJJKABC
      DEFLPPAMZQNO $.

    $( A singleton of an ordered pair is an ordered pair iff the components are
       equal.  (Contributed by AV, 24-Sep-2020.) $)
    funsneqopb $p |- ( A = B <-> G e. ( _V X. _V ) ) $=
      ( wceq cvv cxp wcel funsneqop funsndifnop necon4ai impbii ) ABGCHHIJZABCD
      EFKOABABCDEFLMN $.
  $}

  $( If ` A ` is not in ` C ` , then the restriction of a singleton of
     ` <. A , B >. ` to ` C ` is null.  (Contributed by Scott Fenton,
     15-Apr-2011.) $)
  ressnop0 $p |- ( -. A e. C -> ( { <. A , B >. } |` C ) = (/) ) $=
    ( wcel wn cop cvv cxp csn cres c0 wceq opelxp1 con3i cin df-res incom eqtri
    disjsn biimpri syl5eq syl ) ACDZEABFZCGHZDZEZUDIZCJZKLUFUCABCGMNUGUIUEUHOZK
    UIUHUEOUJUHCPUHUEQRUJKLUGUEUDSTUAUB $.

  ${
    fpr.1 $e |- A e. _V $.
    fpr.2 $e |- B e. _V $.
    fpr.3 $e |- C e. _V $.
    fpr.4 $e |- D e. _V $.
    $( A function with a domain of two elements.  (Contributed by Jeff Madsen,
       20-Jun-2010.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
    fpr $p |- ( A =/= B
                -> { <. A , C >. , <. B , D >. } : { A , B } --> { C , D } ) $=
      ( wne cop cpr wfn crn wa jctir sylibr csn cun df-pr rnsnop wss wfun funpr
      wf cdm wceq dmprop df-fn rneqi rnun uneq12i eqtr4i 3eqtri eqimssi df-f )
      ABIZACJZBDJZKZABKZLZUSMZCDKZUAZNUTVCUSUDUPVAVDUPUSUBZUSUEUTUFZNVAUPVEVFAB
      CDEFGHUCACBDGHUGOUSUTUHPVBVCVBUQQZURQZRZMVGMZVHMZRZVCUSVIUQURSUIVGVHUJVLC
      QZDQZRVCVJVMVKVNACETBDFTUKCDSULUMUNOUTVCUSUOP $.
  $}

  $( A function with a domain of two elements.  (Contributed by FL,
     2-Feb-2014.) $)
  fprg $p |- ( ( ( A e. E /\ B e. F ) /\ ( C e. G /\ D e. H ) /\ A =/= B )
                -> { <. A , C >. , <. B , D >. } : { A , B } --> { C , D } ) $=
    ( wcel wa cpr cop wf cvv wi elex c0 cif wceq 0ex anim12i neeq1 opeq1 preq1d
    wne preq1 feq12d imbi12d neeq2 preq2d preq2 opeq2 feq123d imbi2d elimel fpr
    eqidd dedth4h syl2an 3impia ) AEIZBFIZJZCGIZDHIZJZABUEZABKZCDKZACLZBDLZKZMZ
    VCANIZBNIZJCNIZDNIZJVGVMOZVFVAVNVBVOAEPBFPUAVDVPVEVQCGPDHPUAVNVOVPVQVRVNAQR
    ZBUEZVSBKZVIVSCLZVKKZMZOVSVOBQRZUEZVSWEKZVIWBWEDLZKZMZOWFWGVPCQRZDKZVSWKLZW
    HKZMZOWFWGWKVQDQRZKZWMWEWPLZKZMZOABCDQQQQAVSSZVGVTVMWDAVSBUBXAVHWAVIVLWCXAV
    JWBVKAVSCUCUDAVSBUFUGUHBWESZVTWFWDWJBWEVSUIXBWAWGVIWCWIXBVKWHWBBWEDUCUJBWEV
    SUKUGUHCWKSZWJWOWFXCWGWGVIWLWIWNXCWBWMWHCWKVSULUDXCWGUQCWKDUFUMUNDWPSZWOWTW
    FXDWGWGWLWQWNWSXDWHWRWMDWPWEULUJXDWGUQDWPWKUKUMUNVSWEWKWPAQNTUOBQNTUOCQNTUO
    DQNTUOUPURUSUT $.

  $( A function with a domain of three elements.  (Contributed by Alexander van
     der Vekens, 4-Dec-2017.) $)
  ftpg $p |- ( ( ( X e. U /\ Y e. V /\ Z e. W )
                 /\ ( A e. F /\ B e. G /\ C e. H )
                 /\ ( X =/= Y /\ X =/= Z /\ Y =/= Z ) )
               -> { <. X , A >. , <. Y , B >. , <. Z , C >. } :
                  { X , Y , Z } --> { A , B , C } ) $=
    ( wcel w3a wne cpr wf wceq wa wn csn cun cop ctp cin c0 3simpa simp1 syl3an
    fprg eqidd wb simp3 anim12i 3adant3 fsng syl mpbird elpri eqcom nne orbi12i
    bitr4i ianor sylbb2 con2i 3adant1 3ad2ant3 disjsn sylibr fun syl21anc df-tp
    wo feq1i feq23i bitri ) JDMZKHMZLIMZNZAEMZBFMZCGMZNZJKOZJLOZKLOZNZNZJKPZLUA
    ZUBZABPZCUAZUBZJAUCZKBUCZPZLCUCZUAZUBZQZJKLUDZABCUDZWQWRWTUDZQZWJWKWNWSQZWL
    WOXAQZWKWLUEUFRZXCWAVRVSSWEWBWCSWIWFXHVRVSVTUGWBWCWDUGWFWGWHUHJKABDHEFUJUIW
    JXIXAXARZWJXAUKWJVTWDSZXIXKULWAWEXLWIWAVTWEWDVRVSVTUMWBWCWDUMUNUOLCIGXAUPUQ
    URWJLWKMZTZXJWIWAXNWEWGWHXNWFXMWGWHSZXMLJRZLKRZVNZXOTZLJKUSXRWGTZWHTZVNXSXP
    XTXQYAXPJLRXTLJUTJLVAVCXQKLRYALKUTKLVAVCVBWGWHVDVEUQVFVGVHWKLVIVJWKWLWNWOWS
    XAVKVLXGXDXEXBQXCXDXEXFXBWQWRWTVMVOXDXEWMWPXBJKLVMABCVMVPVQVJ $.

  ${
    ftp.a $e |- A e. _V $.
    ftp.b $e |- B e. _V $.
    ftp.c $e |- C e. _V $.
    ftp.d $e |- X e. _V $.
    ftp.e $e |- Y e. _V $.
    ftp.f $e |- Z e. _V $.
    ftp.g $e |- A =/= B $.
    ftp.h $e |- A =/= C $.
    ftp.i $e |- B =/= C $.
    $( A function with a domain of three elements.  (Contributed by Stefan
       O'Rear, 17-Oct-2014.)  (Proof shortened by Alexander van der Vekens,
       23-Jan-2018.) $)
    ftp $p |- { <. A , X >. , <. B , Y >. , <. C , Z >. } : { A , B , C } -->
        { X , Y , Z } $=
      ( cvv wcel w3a wne ctp cop wf 3pm3.2i ftpg mp3an ) APQZBPQZCPQZRDPQZEPQZF
      PQZRABSZACSZBCSZRABCTDEFTADUABEUACFUATUBUFUGUHGHIUCUIUJUKJKLUCULUMUNMNOUC
      DEFPPPPPPABCUDUE $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x F $.
    $( A function restricted to a singleton.  (Contributed by NM,
       9-Oct-2004.) $)
    fnressn $p |- ( ( F Fn A /\ B e. A ) ->
                  ( F |` { B } ) = { <. B , ( F ` B ) >. } ) $=
      ( vx wcel wfn csn cres cfv cop wceq cv wi sneq reseq2d fveq2 opeq12 mpdan
      wa cvv sneqd eqeq12d imbi2d wss vex snss fnssres sylan2b wf fsn2 biantrur
      dffn2 vsnid fvres ax-mp opeq2i eqeq2i bitr3i 3bitri expcom vtoclga impcom
      fvex sneqi sylib ) BAECAFZCBGZHZBBCIZJZGZKZVFCDLZGZHZVMVMCIZJZGZKZMVFVLMD
      BAVMBKZVSVLVFVTVOVHVRVKVTVNVGCVMBNOVTVQVJVTVPVIKVQVJKVMBCPVMVPBVIQRUAUBUC
      VFVMAEZVSVFWASVOVNFZVSWAVFVNAUDWBVMADUEZUFAVNCUGUHWBVNTVOUIVMVOIZTEZVOVMW
      DJZGZKZSZVSVNVOULVMTVOWCUJWIWHVSWEWHVMVOVCUKWGVRVOWFVQWDVPVMVMVNEWDVPKDUM
      VMVNCUNUOUPVDUQURUSVEUTVAVB $.

    $( A function restricted to a singleton.  (Contributed by Mario Carneiro,
       16-Nov-2014.) $)
    funressn $p |- ( Fun F -> ( F |` { B } ) C_ { <. B , ( F ` B ) >. } ) $=
      ( wfun cdm wcel csn cres cfv cop wss wceq wfn funfn fnressn sylanb eqimss
      wa syl wn c0 cin disjsn fnresdisj sylbi syl5bbr biimpa syl6eqss pm2.61dan
      wb 0ss ) BCZABDZEZBAFZGZAABHIFZJZUKUMQUOUPKZUQUKBULLZUMURBMZULABNOUOUPPRU
      KUMSZQUOTUPUKVAUOTKZVAULUNUATKZUKVBULAUBUKUSVCVBUIUTULUNBUCUDUEUFUPUJUGUH
      $.

    $( The value of a function restricted to a singleton.  (Contributed by NM,
       9-Oct-2004.) $)
    fressnfv $p |- ( ( F Fn A /\ B e. A ) ->
                 ( ( F |` { B } ) : { B } --> C <-> ( F ` B ) e. C ) ) $=
      ( vx wcel wfn csn cres wf cfv wb cv wi wceq sneq reseq2 syl wa cop eleq1d
      feq1d feq2 bitrd fveq2 bibi12d imbi2d fnressn vsnid fvres ax-mp sneqi vex
      opeq2i eqeq2i fsn2 eleq1i syl5rbbr syl5bb sylbir expcom vtoclga impcom
      iba ) BAFDAGZBHZCDVFIZJZBDKZCFZLZVEEMZHZCDVMIZJZVLDKZCFZLZNVEVKNEBAVLBOZV
      RVKVEVSVOVHVQVJVSVMVFOZVOVHLVLBPVTVOVMCVGJVHVTVMCVNVGVMVFDQUBVMVFCVGUCUDR
      VSVPVICVLBDUEUAUFUGVEVLAFZVRVEWASVNVLVPTZHZOZVRAVLDUHWDVNVLVLVNKZTZHZOZVR
      WGWCVNWFWBWEVPVLVLVMFWEVPOEUIVLVMDUJUKZUNULUOVOWECFZWHSZWHVQVLCVNEUMUPVQW
      JWHWKWEVPCWIUQWHWJVDURUSUTRVAVBVC $.
  $}

  ${
    $d F x $.  $d X x $.
    $( If the value of a function is in the range of the function restricted to
       the singleton containing the argument, then the value of the function is
       in the range of the function.  (Contributed by Alexander van der Vekens,
       22-Jul-2018.) $)
    fvrnressn $p |- ( X e. V -> ( ( F ` X ) e. ran ( F |` { X } )
                                  -> ( F ` X ) e. ran F ) ) $=
      ( vx cfv csn cres crn wcel cima df-ima eleq2i cop cv wex opeq1 eleq1d cvv
      wceq wb spcegv fvex elimasng mpan2 elrn2g mp1i 3imtr4d syl5bir ) CAEZACFZ
      GHZIUIAUJJZIZCBIZUIAHIZULUKUIAUJKLUNCUIMZAIZDNZUIMZAIZDOZUMUOUTUQDCBURCSU
      SUPAURCUIPQUAUNUIRIZUMUQTCAUBZACUIBRUCUDVBUOVATUNVCDUIARUEUFUGUH $.
  $}

  $( The value of a function restricted to the singleton containing the
     argument equals the value of the function for this argument.  (Contributed
     by Alexander van der Vekens, 22-Jul-2018.) $)
  fvressn $p |- ( X e. V -> ( ( F |` { X } ) ` X ) = ( F ` X ) ) $=
    ( wcel csn cres cfv wceq snidg fvres syl ) CBDCCEZDCALFGCAGHCBICLAJK $.

  $( If the value of a function is not null, the value is an element of the
     range of the function.  (Contributed by Alexander van der Vekens,
     22-Jul-2018.) $)
  fvn0fvelrn $p |- ( ( F ` X ) =/= (/) -> ( F ` X ) e. ran F ) $=
    ( cfv c0 wne cdm wcel csn cres wfun wa crn fvfundmfvn0 wi eldmressnsn pm3.2
    fvelrn syl ex com13 mpd imp fvressn eleq1d fvrnressn sylbid impcom 3syl ) B
    ACZDEBAFZGZABHIZJZKBULCZULLZGZUKKZUIALGZBAMUKUMUQUKBULFGZUMUQNBAOUMUSUKUQUM
    USUKUQNZUMUSKUPUTBULQUPUKPRSTUAUBUKUPURUKUPUIUOGURUKUNUIUOAUJBUCUDAUJBUEUFU
    GUH $.

  $( The value of a constant function.  (Contributed by NM, 30-May-1999.) $)
  fvconst $p |- ( ( F : A --> { B } /\ C e. A ) -> ( F ` C ) = B ) $=
    ( csn wf wcel wa cfv wceq ffvelrn elsni syl ) ABEZDFCAGHCDIZNGOBJANCDKOBLM
    $.

  $( If a class belongs to a function on a singleton, then that class is the
     obvious ordered pair.  Note that this theorem also holds when ` A ` is a
     proper class, but its meaning is then different.  (Contributed by Jonathan
     Ben-Naim, 3-Jun-2011.)  (Proof shortened by Mario Carneiro,
     22-Dec-2016.) $)
  fnsnr $p |- ( F Fn { A } -> ( B e. F -> B = <. A , ( F ` A ) >. ) ) $=
    ( csn wfn wcel cfv cop wceq cres fnresdm wfun fnfun funressn eqsstr3d sseld
    wss syl elsni syl6 ) CADZEZBCFBAACGHZDZFBUCIUBCUDBUBCCUAJZUDUACKUBCLUEUDQUA
    CMACNROPBUCST $.

  ${
    $d x A $.  $d x F $.
    fnsnb.1 $e |- A e. _V $.
    $( A function whose domain is a singleton can be represented as a singleton
       of an ordered pair.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       Revised to add reverse implication.  (Revised by NM, 29-Dec-2018.) $)
    fnsnb $p |- ( F Fn { A } <-> F = { <. A , ( F ` A ) >. } ) $=
      ( vx csn wfn cfv cop wceq cv wcel fnsnr wfun cdm df-fn snid mpbiri anim2i
      wa eleq2 sylbi funfvop syl eleq1 syl5ibrcom velsn syl6bbr eqrdv fvex fnsn
      impbid fneq1 impbii ) BAEZFZBAABGZHZEZIZUODBURUODJZBKZUTUQIZUTURKUOVAVBAU
      TBLUOVAVBUQBKZUOBMZABNZKZSZVCUOVDVEUNIZSVGBUNOVHVFVDVHVFAUNKACPVEUNATQRUA
      ABUBUCUTUQBUDUEUKDUQUFUGUHUSUOURUNFAUPCABUIUJUNBURULQUM $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Express a singleton function in maps-to notation.  (Contributed by NM,
       6-Jun-2006.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.)  (Revised
       by Stefan O'Rear, 28-Feb-2015.) $)
    fmptsn $p |- ( ( A e. V /\ B e. W ) ->
        { <. A , B >. } = ( x e. { A } |-> B ) ) $=
      ( wcel wa csn cmpt cxp cop fconstmpt xpsng syl5reqr ) BDFCEFGABHZCIOCHJBC
      KHAOCLBCDEMN $.
  $}

  ${
    $d A p x y $.  $d B p y $.  $d C p x y $.  $d V p $.  $d W p $.
    fmptsng.1 $e |- ( x = A -> B = C ) $.
    $( Express a singleton function in maps-to notation.  Version of ~ fmptsn
       allowing the value ` B ` to depend on the variable ` x ` .  (Contributed
       by AV, 27-Feb-2019.) $)
    fmptsng $p |- ( ( A e. V /\ C e. W ) ->
        { <. A , C >. } = ( x e. { A } |-> B ) ) $=
      ( vy vp wcel wa cv wceq copab csn cop velsn eqidd eqeq1 adantr opabbii wb
      cmpt bicomi anbi1i eqeq2d sylan9bbr opelopabga mpbir2and eleq1 syl5ibrcom
      anbi12d syl5bi elopab wi opeq12 opeq2d opex snid syl6eqel sylbid exlimivv
      wex impcom a1i impbid eqrdv df-mpt 3eqtr4a ) BEJDFJKZALZBMZHLZCMZKZAHNZVK
      BOZJZVNKZAHNZBDPZOZAVQCUCZVOVSAHVLVRVNVRVLABQUDUEUAVJIWBVPVJILZWBJZWDVPJZ
      WEWDWAMZVJWFIWAQVJWFWGWAVPJZVJWHBBMZDDMZVJBRVJDRVOWIWJKAHBDEFVLVMDMZKVLWI
      VNWJVLVLWIUBWKVKBBSTWKVNDCMVLWJVMDCSVLCDDGUFUGULUHUIWDWAVPUJUKUMWFWDVKVMP
      ZMZVOKZHVCAVCZVJWEVOAHWDUNWOWEUOVJWNWEAHVOWMWEVOWMWDBCPZMZWEVOWLWPWDVKVMB
      CUPUFVOWEWQWPWBJVOWPWAWBVOCDBVLCDMVNGTUQWABDURUSUTWDWPWBUJUKVAVDVBVEUMVFV
      GWCVTMVJAHVQCVHVEVI $.
  $}

  ${
    $d A p x y $.  $d B p y $.  $d C p x y $.  $d V p $.  $d W p $.
    $d ph p x y $.
    fmptsnd.1 $e |- ( ( ph /\ x = A ) -> B = C ) $.
    fmptsnd.2 $e |- ( ph -> A e. V ) $.
    fmptsnd.3 $e |- ( ph -> C e. W ) $.
    $( Express a singleton function in maps-to notation.  Deduction form of
       ~ fmptsng .  (Contributed by AV, 4-Aug-2019.) $)
    fmptsnd $p |- ( ph -> { <. A , C >. } = ( x e. { A } |-> B ) ) $=
      ( vy vp cv wceq wa copab wcel cop wsbc wb csn velsn bicomi anbi1i opabbii
      cmpt eqidd sbcan eqsbc3 anbi12d syl5bb sbcbidv eqeq1 adantl eqeq2d sbcied
      sbcg syl bitrd mpbir2and opelopabsb sylibr eleq1 syl5ibrcom syl5bi elopab
      wi opeq12 adantrr opeq2d opex snid syl6eqel sylbid ex com23 impd exlimdvv
      wex impbid eqrdv df-mpt a1i 3eqtr4a ) ABMZCNZKMZDNZOZBKPZWECUAZQZWHOZBKPZ
      CERZUAZBWKDUFZWIWMBKWFWLWHWLWFBCUBUCUDUEALWPWJALMZWPQZWRWJQZWSWRWONZAWTLW
      OUBAWTXAWOWJQZAWIKESZBCSZXBAXDCCNZEENZACUGAEUGAXDWFEDNZOZBCSXEXFOZAXCXHBC
      XCWFKESZWHKESZOAXHWFWHKEUHAXJWFXKXGAEGQZXJWFTJWFKEGUQURAXLXKXGTJKEDGUIURU
      JUKULAXHXIBCFIAWFOZWFXEXGXFWFWFXETAWECCUMUNXMDEEHUOUJUPUSUTWIBKCEVAVBWRWO
      WJVCVDVEWTWRWEWGRZNZWIOZKVSBVSAWSWIBKWRVFAXPWSBKAXOWIWSAWIXOWSAWIXOWSVGAW
      IOZXOWRCDRZNZWSXQXNXRWRWIXNXRNAWEWGCDVHUNUOXQWSXSXRWPQXQXRWOWPXQDECAWFDEN
      WHHVIVJWOCEVKVLVMWRXRWPVCVDVNVOVPVQVRVEVTWAWQWNNABKWKDWBWCWD $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.  $d x S $.
    fmptap.0a $e |- A e. _V $.
    fmptap.0b $e |- B e. _V $.
    fmptap.1 $e |- ( R u. { A } ) = S $.
    fmptap.2 $e |- ( x = A -> C = B ) $.
    $( Append an additional value to a function.  (Contributed by NM,
       6-Jun-2006.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    fmptap $p |- ( ( x e. R |-> C ) u. { <. A , B >. } ) = ( x e. S |-> C ) $=
      ( cmpt cop csn cun cvv wcel wceq fmptsn mp2an cv elsni syl mpteq2ia mptun
      eqtr4i uneq2i mpteq1 ax-mp 3eqtr2i ) AEDKZBCLMZNUJABMZDKZNAEULNZDKZAFDKZU
      KUMUJUKAULCKZUMBOPCOPUKUQQGHABCOORSAULDCATZULPURBQDCQURBUAJUBUCUEUFAEULDU
      DUNFQUOUPQIAUNFDUGUHUI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.  $d x S $.  $d x ph $.
    fmptapd.0a $e |- ( ph -> A e. _V ) $.
    fmptapd.0b $e |- ( ph -> B e. _V ) $.
    fmptapd.1 $e |- ( ph -> ( R u. { A } ) = S ) $.
    fmptapd.2 $e |- ( ( ph /\ x = A ) -> C = B ) $.
    $( Append an additional value to a function.  (Contributed by Thierry
       Arnoux, 3-Jan-2017.) $)
    fmptapd $p |- ( ph ->
      ( ( x e. R |-> C ) u. { <. A , B >. } ) = ( x e. S |-> C ) ) $=
      ( cmpt cop csn cun cvv fmptsnd uneq2d wceq mptun a1i mpteq1d 3eqtr2d ) AB
      FELZCDMNZOUDBCNZELZOZBFUFOZELZBGELAUEUGUDABCEDPPKHIQRUJUHSABFUFETUAABUIGE
      JUBUC $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.  $d x ph $.
    fmptpr.1 $e |- ( ph -> A e. V ) $.
    fmptpr.2 $e |- ( ph -> B e. W ) $.
    fmptpr.3 $e |- ( ph -> C e. X ) $.
    fmptpr.4 $e |- ( ph -> D e. Y ) $.
    fmptpr.5 $e |- ( ( ph /\ x = A ) -> E = C ) $.
    fmptpr.6 $e |- ( ( ph /\ x = B ) -> E = D ) $.
    $( Express a pair function in maps-to notation.  (Contributed by Thierry
       Arnoux, 3-Jan-2017.) $)
    fmptpr $p |- ( ph ->
      { <. A , C >. , <. B , D >. } = ( x e. { A , B } |-> E ) ) $=
      ( csn cun wcel cop cpr cmpt wceq df-pr a1i fmptsnd uneq1d cvv elex eqcomi
      syl fmptapd 3eqtrd ) ACEUAZDFUAZUBZUORZUPRZSZBCRZGUCZUSSBCDUBZGUCUQUTUDAU
      OUPUEUFAURVBUSABCGEHJPLNUGUHABDFGVAVCADITDUITMDIUJULAFKTFUITOFKUJULVADRSZ
      VCUDAVCVDCDUEUKUFQUMUN $.
  $}

  $( The value of a restricted identity function.  (Contributed by NM,
     19-May-2004.) $)
  fvresi $p |- ( B e. A -> ( ( _I |` A ) ` B ) = B ) $=
    ( wcel cid cres cfv fvres fvi eqtrd ) BACBDAEFBDFBBADGBAHI $.

  ${
    $d F x $.  $d A x $.  $d X x $.
    $( Express the class of fixed points of a function.  (Contributed by Stefan
       O'Rear, 1-Feb-2015.) $)
    fninfp $p |- ( F Fn A -> dom ( F i^i _I ) = { x e. A | ( F ` x ) = x } ) $=
      ( wfn cid cin cdm cres cv cfv wceq crab inres incom reseq1i eqtri 3eqtr4i
      fnresdm ineq1d syl5reqr dmeqd fnresi fndmin mpan2 wcel fvresi rabbiia a1i
      eqeq2d 3eqtrd ) CBDZCEFZGCEBHZFZGZAIZCJZUPUMJZKZABLZUQUPKZABLZUKULUNUKUNC
      BHZEFZULEVCFZULBHZVDUNVEECFZBHVFECBMVGULBECNOPVCENCEBMQUKVCCEBCRSTUAUKUMB
      DUOUTKBUBABCUMUCUDUTVBKUKUSVAABUPBUEURUPUQBUPUFUIUGUHUJ $.

    $( Property of a fixed point of a function.  (Contributed by Stefan O'Rear,
       1-Feb-2015.) $)
    fnelfp $p |- ( ( F Fn A /\ X e. A ) -> ( X e. dom ( F i^i _I ) <->
          ( F ` X ) = X ) ) $=
      ( vx wfn cid cin cdm wcel cv cfv wceq crab fninfp eleq2d fveq2 id eqeq12d
      elrab3 sylan9bb ) BAEZCBFGHZICDJZBKZUCLZDAMZICAICBKZCLZUAUBUFCDABNOUEUHDC
      AUCCLZUDUGUCCUCCBPUIQRST $.

    $( Express the class of non-fixed points of a function.  (Contributed by
       Stefan O'Rear, 14-Aug-2015.) $)
    fndifnfp $p |- ( F Fn A -> dom ( F \ _I ) =
          { x e. A | ( F ` x ) =/= x } ) $=
      ( wfn cid cdif cdm cres cv cfv wne crab cvv cxp cun c0 wss wceq wf dffn2
      fssxp sylbi ssdif0 sylib uneq2d un0 syl6req difeq2i difindi eqtri syl6eqr
      cin df-res dmeqd fnresi fndmdif mpan2 wcel fvresi neeq2d rabbiia 3eqtrd
      a1i ) CBDZCEFZGCEBHZFZGZAIZCJZVIVFJZKZABLZVJVIKZABLZVDVEVGVDVEVECBMNZFZOZ
      VGVDVRVEPOVEVDVQPVEVDCVPQZVQPRVDBMCSVSBCTBMCUAUBCVPUCUDUEVEUFUGVGCEVPULZF
      VRVFVTCEBUMUHCEVPUIUJUKUNVDVFBDVHVMRBUOABCVFUPUQVMVORVDVLVNABVIBURVKVIVJB
      VIUSUTVAVCVB $.

    $( Property of a non-fixed point of a function.  (Contributed by Stefan
       O'Rear, 15-Aug-2015.) $)
    fnelnfp $p |- ( ( F Fn A /\ X e. A ) -> ( X e. dom ( F \ _I ) <->
          ( F ` X ) =/= X ) ) $=
      ( vx wfn cid cdif cdm wcel cv cfv crab fndifnfp eleq2d wceq fveq2 neeq12d
      wne id elrab3 sylan9bb ) BAEZCBFGHZICDJZBKZUDRZDALZICAICBKZCRZUBUCUGCDABM
      NUFUIDCAUDCOZUEUHUDCUDCBPUJSQTUA $.

    $( A function is the identity iff it moves no points.  (Contributed by
       Stefan O'Rear, 25-Aug-2015.) $)
    fnnfpeq0 $p |- ( F Fn A -> ( dom ( F \ _I ) = (/) <->
          F = ( _I |` A ) ) ) $=
      ( vx wfn cv cfv wne crab c0 wceq cid cres wral cdif cdm wn rabeq0 wcel wa
      wb fvresi eqeq2d adantl nne syl6rbbr ralbidva syl5bb eqeq1d fnresi eqfnfv
      fndifnfp mpan2 3bitr4d ) BADZCEZBFZUOGZCAHZIJZUPUOKALZFZJZCAMZBKNOZIJBUTJ
      ZUSUQPZCAMUNVCUQCAQUNVFVBCAUNUOARZSVBUPUOJZVFVGVBVHTUNVGVAUOUPAUOUAUBUCUP
      UOUDUEUFUGUNVDURICABUKUHUNUTADVEVCTAUICABUTUJULUM $.
  $}

  $( Remove an ordered pair not participating in a function value.
     (Contributed by NM, 1-Oct-2013.)  (Revised by Mario Carneiro,
     28-May-2014.) $)
  fvunsn $p |- ( B =/= D
       -> ( ( A u. { <. B , C >. } ) ` D ) = ( A ` D ) ) $=
    ( wne cop csn cun cres cfv resundir c0 wcel wceq cvv fvressn eqtr4d pm2.61i
    wn fvprc nelsn ressnop0 syl uneq2d un0 syl6eq syl5eq fveq1d 3eqtr3g ) BDEZD
    ABCFGZHZDGZIZJZDAUMIZJZDULJZDAJZUJDUNUPUJUNUPUKUMIZHZUPAUKUMKUJVAUPLHUPUJUT
    LUPUJBUMMSUTLNBDUABCUMUBUCUDUPUEUFUGUHDOMZUOURNULODPVBSZUOLURDUNTDULTQRVBUQ
    USNAODPVCUQLUSDUPTDATQRUI $.

  ${
    fvsn.1 $e |- A e. _V $.
    fvsn.2 $e |- B e. _V $.
    $( The value of a singleton of an ordered pair is the second member.
       (Contributed by NM, 12-Aug-1994.) $)
    fvsn $p |- ( { <. A , B >. } ` A ) = B $=
      ( cop csn wfun wcel cfv wceq funsn opex snid funopfv mp2 ) ABEZFZGPQHAQIB
      JABCDKPABLMABQNO $.
  $}

  ${
    $d A a b $.  $d B b $.
    $( The value of a singleton of an ordered pair is the second member.
       (Contributed by NM, 26-Oct-2012.) $)
    fvsng $p |- ( ( A e. V /\ B e. W ) -> ( { <. A , B >. } ` A ) = B ) $=
      ( va vb cv cop csn cfv opeq1 sneqd id fveq12d eqeq1d opeq2 fveq1d eqeq12d
      wceq vex fvsn vtocl2g ) EGZUCFGZHZIZJZUDSAAUDHZIZJZUDSAABHZIZJZBSEFABCDUC
      ASZUGUJUDUNUCAUFUIUNUEUHUCAUDKLUNMNOUDBSZUJUMUDBUOAUIULUOUHUKUDBAPLQUOMRU
      CUDETFTUAUB $.
  $}

  ${
    fvsnun.1 $e |- A e. _V $.
    fvsnun.2 $e |- B e. _V $.
    fvsnun.3 $e |- G = ( { <. A , B >. } u. ( F |` ( C \ { A } ) ) ) $.
    $( The value of a function with one of its ordered pairs replaced, at the
       replaced ordered pair.  See also ~ fvsnun2 .  (Contributed by NM,
       23-Sep-2007.) $)
    fvsnun1 $p |- ( G ` A ) = B $=
      ( csn cres cfv cop cdif cun c0 cin wceq eqtri ax-mp fvres reseq1i disjdif
      resundir incom resdisj uneq2i un0 fveq1i wcel snid fvsn 3eqtr3i ) AEAIZJZ
      KZAABLIZUMJZKZAEKZBAUNUQUNUPDCUMMZJZNZUMJZUQEVBUMHUAVCUQVAUMJZNZUQUPVAUMU
      CVEUQONUQVDOUQUTUMPZOQVDOQVFUMUTPOUTUMUDUMCUBRUTUMDUESUFUQUGRRRUHAUMUIZUO
      USQAFUJZAUMETSURAUPKZBVGURVIQVHAUMUPTSABFGUKRUL $.

    $( The value of a function with one of its ordered pairs replaced, at
       arguments other than the replaced one.  See also ~ fvsnun1 .
       (Contributed by NM, 23-Sep-2007.) $)
    fvsnun2 $p |- ( D e. ( C \ { A } ) -> ( G ` D ) = ( F ` D ) ) $=
      ( csn cdif wcel cres cfv cop cun c0 wceq 3eqtri fvres reseq1i cin disjdif
      resundir wfn wb fnsn fnresdisj ax-mp mpbi residm uneq12i uncom un0 fveq1i
      3eqtr3a ) DCAJZKZLDFURMZNDEURMZNDFNDENDUSUTUSABOJZUTPZURMVAURMZUTURMZPZUT
      FVBURIUAVAUTURUDVEQUTPUTQPUTVCQVDUTUQURUBQRZVCQRZUQCUCVAUQUEVFVGUFABGHUGU
      QURVAUHUIUJEURUKULQUTUMUTUNSSUODURFTDURETUP $.
  $}

  $( Split a function into a single point and all the rest.  (Contributed by
     Stefan O'Rear, 27-Feb-2015.) $)
  fnsnsplit $p |- ( ( F Fn A /\ X e. A ) ->
      F = ( ( F |` ( A \ { X } ) ) u. { <. X , ( F ` X ) >. } ) ) $=
    ( wfn wcel wa cres csn cdif cfv cop cun wceq fnresdm adantr resundi difsnid
    adantl reseq2d fnressn uneq2d 3eqtr3a eqtr3d ) BADZCAEZFZBAGZBBACHZIZGZCCBJ
    KHZLZUDUGBMUEABNOUFBUIUHLZGUJBUHGZLUGULBUIUHPUFUMABUEUMAMUDACQRSUFUNUKUJACB
    TUAUBUC $.

  $( Adjoining a point to a function gives a function.  (Contributed by Stefan
     O'Rear, 28-Feb-2015.) $)
  fsnunf $p |- ( ( F : S --> T /\ ( X e. V /\ -. X e. S ) /\ Y e. T ) ->
      ( F u. { <. X , Y >. } ) : ( S u. { X } ) --> T ) $=
    ( wf wcel wn wa w3a csn cun cop cin c0 wceq simp1 wf1o simp2l simp3 syl2anc
    f1osng f1of syl simp2r disjsn fun syl21anc wss snssi 3ad2ant3 ssequn2 sylib
    sylibr feq3d mpbid ) ABCGZEDHZEAHIZJZFBHZKZAELZMZBFLZMZCEFNLZMZGZVEBVIGVCUR
    VDVFVHGZAVDOPQZVJURVAVBRVCVDVFVHSZVKVCUSVBVMURUSUTVBTURVAVBUAEFDBUCUBVDVFVH
    UDUEVCUTVLURUSUTVBUFAEUGUOAVDBVFCVHUHUIVCVGBVIVEVCVFBUJZVGBQVBURVNVAFBUKULV
    FBUMUNUPUQ $.

  $( Adjoining a point to a punctured function gives a function.  (Contributed
     by Stefan O'Rear, 28-Feb-2015.) $)
  fsnunf2 $p |- ( ( F : ( S \ { X } ) --> T /\ X e. S /\ Y e. T ) ->
      ( F u. { <. X , Y >. } ) : S --> T ) $=
    ( csn cdif wf wcel w3a cun cop simp1 simp2 neldifsnd simp3 fsnunf syl121anc
    wn wceq difsnid 3ad2ant2 feq2d mpbid ) ADFZGZBCHZDAIZEBIZJZUFUEKZBCDELFKZHZ
    ABULHUJUGUHDUFISUIUMUGUHUIMUGUHUINUJDAOUGUHUIPUFBCADEQRUJUKABULUHUGUKATUIAD
    UAUBUCUD $.

  $( Recover the added point from a point-added function.  (Contributed by
     Stefan O'Rear, 28-Feb-2015.)  (Revised by NM, 18-May-2017.) $)
  fsnunfv $p |- ( ( X e. V /\ Y e. W /\ -. X e. dom F ) ->
      ( ( F u. { <. X , Y >. } ) ` X ) = Y ) $=
    ( wcel cdm wn w3a cop csn cun cres cfv c0 wceq cin dmres 3adant3 syl disjsn
    incom eqtri biimpri syl5eq 3ad2ant3 wb relres reldm0 ax-mp sylibr wfn fnsng
    wrel fnresdm uneq12d resundir uncom un0 eqtr2i 3eqtr4g snidg 3ad2ant1 fvres
    fveq1d fvsng 3eqtr3d ) DBFZECFZDAGZFHZIZDADEJKZLZDKZMZNZDVMNZDVNNZEVLDVPVMV
    LAVOMZVMVOMZLOVMLZVPVMVLVTOWAVMVLVTGZOPZVTOPZVKVHWDVIVKWCVJVOQZOWCVOVJQWFAV
    ORVOVJUBUCWFOPVKVJDUAUDUEUFVTUNWEWDUGAVOUHVTUIUJUKVLVMVOULZWAVMPVHVIWGVKDEB
    CUMSVOVMUOTUPAVMVOUQWBVMOLVMOVMURVMUSUTVAVEVLDVOFZVQVSPVHVIWHVKDBVBVCDVOVNV
    DTVHVIVREPVKDEBCVFSVG $.

  $( Recover the original function from a point-added function.  (Contributed
     by Stefan O'Rear, 28-Feb-2015.) $)
  fsnunres $p |- ( ( F Fn S /\ -. X e. S ) ->
      ( ( F u. { <. X , Y >. } ) |` S ) = F ) $=
    ( wfn wcel wn wa cres cop csn cun c0 fnresdm adantr ressnop0 adantl uneq12d
    wceq resundir un0 eqcomi 3eqtr4g ) BAEZCAFGZHZBAIZCDJKZAIZLBMLZBUHLAIBUFUGB
    UIMUDUGBSUEABNOUEUIMSUDCDAPQRBUHATUJBBUAUBUC $.

  $( Restricting a function to a domain without one element of the domain of
     the function, and adding a pair of this element and the function value of
     the element results in the function itself.  (Contributed by AV,
     2-Dec-2018.) $)
  funresdfunsn $p |- ( ( Fun F /\ X e. dom F ) ->
                ( ( F |` ( _V \ { X } ) ) u. { <. X , ( F ` X ) >. } ) = F ) $=
    ( wfun cdm wcel wa cvv csn cdif cres cfv cop cun wceq wrel funrel resdmdfsn
    syl adantr uneq1d wfn funfn fnsnsplit sylanb eqtr4d ) ACZBADZEZFZAGBHZIJZBB
    AKLHZMAUGUJIJZULMZAUIUKUMULUFUKUMNZUHUFAOUOAPABQRSTUFAUGUAUHAUNNAUBUGABUCUD
    UE $.

  ${
    fvpr1.1 $e |- A e. _V $.
    fvpr1.2 $e |- C e. _V $.
    $( The value of a function with a domain of two elements.  (Contributed by
       Jeff Madsen, 20-Jun-2010.) $)
    fvpr1 $p |- ( A =/= B -> ( { <. A , C >. , <. B , D >. } ` A ) = C ) $=
      ( wne cop cpr cfv csn df-pr fveq1i wceq necom fvunsn sylbi syl5eq fvsn
      cun syl6eq ) ABGZAACHZBDHZIZJZAUCKZJZCUBUFAUGUDKTZJZUHAUEUIUCUDLMUBBAGUJU
      HNABOUGBDAPQRACEFSUA $.
  $}

  ${
    fvpr2.1 $e |- B e. _V $.
    fvpr2.2 $e |- D e. _V $.
    $( The value of a function with a domain of two elements.  (Contributed by
       Jeff Madsen, 20-Jun-2010.) $)
    fvpr2 $p |- ( A =/= B -> ( { <. A , C >. , <. B , D >. } ` B ) = D ) $=
      ( wne cop cpr cfv prcom fveq1i wceq necom fvpr1 sylbi syl5eq ) ABGZBACHZB
      DHZIZJBTSIZJZDBUAUBSTKLRBAGUCDMABNBADCEFOPQ $.
  $}

  $( The value of a function with a domain of (at most) two elements.
     (Contributed by Alexander van der Vekens, 3-Dec-2017.) $)
  fvpr1g $p |- ( ( A e. V /\ C e. W /\ A =/= B )
                 -> ( { <. A , C >. , <. B , D >. } ` A ) = C ) $=
    ( wcel wne w3a cop cpr cfv csn wceq cun df-pr fveq1i necom fvunsn sylbi
    syl5eq 3ad2ant3 fvsng 3adant3 eqtrd ) AEGZCFGZABHZIAACJZBDJZKZLZAUIMZLZCUHU
    FULUNNUGUHULAUMUJMOZLZUNAUKUOUIUJPQUHBAHUPUNNABRUMBDASTUAUBUFUGUNCNUHACEFUC
    UDUE $.

  $( The value of a function with a domain of (at most) two elements.
     (Contributed by Alexander van der Vekens, 3-Dec-2017.) $)
  fvpr2g $p |- ( ( B e. V /\ D e. W /\ A =/= B )
                 -> ( { <. A , C >. , <. B , D >. } ` B ) = D ) $=
    ( wcel wne w3a cop cpr cfv csn wceq cun prcom df-pr eqtri fveq1i fvunsn
    syl5eq 3ad2ant3 fvsng 3adant3 eqtrd ) BEGZDFGZABHZIBACJZBDJZKZLZBUJMZLZDUHU
    FULUNNUGUHULBUMUIMOZLUNBUKUOUKUJUIKUOUIUJPUJUIQRSUMACBTUAUBUFUGUNDNUHBDEFUC
    UDUE $.

  ${
    fvtp1.1 $e |- A e. _V $.
    fvtp1.4 $e |- D e. _V $.
    $( The first value of a function with a domain of three elements.
       (Contributed by NM, 14-Sep-2011.) $)
    fvtp1 $p |- ( ( A =/= B /\ A =/= C )
             -> ( { <. A , D >. , <. B , E >. , <. C , F >. } ` A ) = D ) $=
      ( wne wa cop ctp cfv cpr csn cun df-tp fveq1i wceq necom fvunsn sylan9eqr
      sylbi fvpr1 syl5eq ) ABIZACIZJAADKZBEKZCFKZLZMAUHUINZUJOPZMZDAUKUMUHUIUJQ
      RUGUFUNAULMZDUGCAIUNUOSACTULCFAUAUCABDEGHUDUBUE $.
  $}

  ${
    fvtp2.1 $e |- B e. _V $.
    fvtp2.4 $e |- E e. _V $.
    $( The second value of a function with a domain of three elements.
       (Contributed by NM, 14-Sep-2011.) $)
    fvtp2 $p |- ( ( A =/= B /\ B =/= C )
             -> ( { <. A , D >. , <. B , E >. , <. C , F >. } ` B ) = E ) $=
      ( wne wa cop ctp cfv tprot fveq1i wceq necom fvtp1 ancoms sylanb syl5eq )
      ABIZBCIZJBADKZBEKZCFKZLZMBUEUFUDLZMZEBUGUHUDUEUFNOUBBAIZUCUIEPZABQUCUJUKB
      CAEFDGHRSTUA $.
  $}

  ${
    fvtp3.1 $e |- C e. _V $.
    fvtp3.4 $e |- F e. _V $.
    $( The third value of a function with a domain of three elements.
       (Contributed by NM, 14-Sep-2011.) $)
    fvtp3 $p |- ( ( A =/= C /\ B =/= C )
             -> ( { <. A , D >. , <. B , E >. , <. C , F >. } ` C ) = F ) $=
      ( wne wa cop ctp cfv tprot fveq1i wceq necom fvtp2 sylan2b ancoms syl5eq
      ) ACIZBCIZJCADKZBEKZCFKZLZMCUEUFUDLZMZFCUGUHUDUEUFNOUCUBUIFPZUBUCCAIUJACQ
      BCAEFDGHRSTUA $.
  $}

  $( The value of a function with a domain of (at most) three elements.
     (Contributed by Alexander van der Vekens, 4-Dec-2017.) $)
  fvtp1g $p |- ( ( ( A e. V /\ D e. W ) /\ ( A =/= B /\ A =/= C ) )
                -> ( { <. A , D >. , <. B , E >. , <. C , F >. } ` A ) = D ) $=
    ( wcel wa wne cop ctp cfv cpr csn cun df-tp fveq1i wceq necom fvunsn fvpr1g
    sylbi ad2antll 3expa adantrr eqtrd syl5eq ) AGIZDHIZJZABKZACKZJJZAADLZBELZC
    FLZMZNAUPUQOZURPQZNZDAUSVAUPUQURRSUOVBAUTNZDUNVBVCTZULUMUNCAKVDACUAUTCFAUBU
    DUEULUMVCDTZUNUJUKUMVEABDEGHUCUFUGUHUI $.

  $( The value of a function with a domain of (at most) three elements.
     (Contributed by Alexander van der Vekens, 4-Dec-2017.) $)
  fvtp2g $p |- ( ( ( B e. V /\ E e. W ) /\ ( A =/= B /\ B =/= C ) )
                -> ( { <. A , D >. , <. B , E >. , <. C , F >. } ` B ) = E ) $=
    ( wcel wa wne cop ctp cfv tprot fveq1i wceq wi necom fvtp1g expcom ancoms
    sylanb impcom syl5eq ) BGIEHIJZABKZBCKZJZJBADLZBELZCFLZMZNBUKULUJMZNZEBUMUN
    UJUKULOPUIUFUOEQZUGBAKZUHUFUPRZABSUHUQURUFUHUQJUPBCAEFDGHTUAUBUCUDUE $.

  $( The value of a function with a domain of (at most) three elements.
     (Contributed by Alexander van der Vekens, 4-Dec-2017.) $)
  fvtp3g $p |- ( ( ( C e. V /\ F e. W ) /\ ( A =/= C /\ B =/= C ) )
                -> ( { <. A , D >. , <. B , E >. , <. C , F >. } ` C ) = F ) $=
    ( wcel wa wne cop ctp cfv tprot fveq1i wceq wi necom fvtp2g expcom sylan2b
    ancoms impcom syl5eq ) CGIFHIJZACKZBCKZJZJCADLZBELZCFLZMZNCUKULUJMZNZFCUMUN
    UJUKULOPUIUFUOFQZUHUGUFUPRZUGUHCAKZUQACSUFUHURJUPBCAEFDGHTUAUBUCUDUE $.

  ${
    $d A a b x $.  $d B a b x $.  $d C a b x $.  $d D a b x $.  $d E a b x $.
    $d F a b x $.  $d ph a b x $.  $d T x $.
    tpres.t $e |- ( ph -> T = { <. A , D >. , <. B , E >. , <. C , F >. } ) $.
    tpres.b $e |- ( ph -> B e. V ) $.
    tpres.c $e |- ( ph -> C e. V ) $.
    tpres.e $e |- ( ph -> E e. V ) $.
    tpres.f $e |- ( ph -> F e. V ) $.
    tpres.1 $e |- ( ph -> B =/= A ) $.
    tpres.2 $e |- ( ph -> C =/= A ) $.
    $( An unordered triple of ordered pairs restricted to all but one first
       components of the pairs is an unordered pair of ordered pairs.
       (Contributed by AV, 14-Mar-2020.) $)
    tpres $p |- ( ph -> ( T |` ( _V \ { A } ) )
                        = { <. B , E >. , <. C , F >. } ) $=
      ( cvv wcel wa wceq vx va vb csn cdif cres cxp cin cop cpr df-res elin wex
      cv elxp anbi2i ctp wi eleq2d wo w3o vex eltp eldifsn wb eqeq1 adantl opth
      wne eqneqall com12 impd syl5bi adantr sylbid ex sylbi impcom exlimdvv orc
      a1d olc 3jaoi elpr syl6ibr expd 3mix2 3mix3 jaoi syl6bb mpbird elex jca31
      syl anim2i opeq12 eqeq2d eleq1 neeq1 anbi12d bi2anan9 spc2egv syl2anc mpd
      jaoian anbi1i 2exbii sylibr jca impbid syl5bb eqrdv syl5eq ) AFQBUDUEZUFF
      XNQUGZUHZCGUIZDHUIZUJZFXNUKAUAXPXSUAUNZXPRXTFRZXTXORZSZAXTXSRZXTFXOULYCYA
      XTUBUNZUCUNZUIZTZYEXNRZYFQRZSZSZUCUMUBUMZSZAYDYBYMYAUBUCXTXNQUOUPAYNYDAYA
      YMYDAYAXTBEUIZXQXRUQZRZYMYDURZAFYPXTJUSZYQAYRYQAYMYDYQAYMSZXTXQTZXTXRTZUT
      ZYDYQXTYOTZUUAUUBVAZYTUUCURZXTYOXQXRUAVBZVCZUUDUUFUUAUUBUUDAYMUUCUUDAYMUU
      CURUUDASZYLUUCUBUCYLUUIUUCYKYHUUIUUCURZYIYHUUJURZYJYIYEQRZYEBVIZSZUUKYEQB
      VDZUUMUUKUULUUMYHUUJUUMYHSZUUDAUUCUUPUUDYGYOTZAUUCURZYHUUDUUQVEUUMXTYGYOV
      FVGUUMUUQUURURYHUUQYEBTZYFETZSUUMUURYEYFBEUBVBUCVBVHUUMUUSUUTUURUUSUUMUUT
      UURURZUVAYEBVJVKVLVMVNVOVLVPVGVQVNVRVKVSVPVLUUAUUCYTUUAUUBVTWAUUBUUCYTUUB
      UUAWBWAWCVQXTXQXRUUGWDZWEWFVKVOVLYDAYNYDUUCAYNURUVBUUCAYNUUCASZYAYMUVCYAU
      UEUUCUUEAUUAUUEUUBUUAUUDUUBWGUUBUUDUUAWHWIVNAYAUUEVEUUCAYAYQUUEYSUUHWJVGW
      KUVCYHUUNYJSZSZUCUMUBUMZYMUUAAUVFUUBUUAASUUACQRZCBVIZSZGQRZSZSZUVFAUVKUUA
      AUVGUVHUVJACIRZUVGKCIWLWNOAGIRZUVJMGIWLWNWMWOAUVLUVFURZUUAAUVMUVNUVOKMUVE
      UVLUBUCCGIIYECTZYFGTZSZYHUUAUVDUVKUVRYGXQXTYEYFCGWPWQUVPUUNUVIUVQYJUVJUVP
      UULUVGUUMUVHYECQWRYECBWSWTYFGQWRXAWTXBXCVGXDUUBASUUBDQRZDBVIZSZHQRZSZSZUV
      FAUWCUUBAUVSUVTUWBADIRZUVSLDIWLWNPAHIRZUWBNHIWLWNWMWOAUWDUVFURZUUBAUWEUWF
      UWGLNUVEUWDUBUCDHIIYEDTZYFHTZSZYHUUBUVDUWCUWJYGXRXTYEYFDHWPWQUWHUUNUWAUWI
      YJUWBUWHUULUVSUUMUVTYEDQWRYEDBWSWTYFHQWRXAWTXBXCVGXDXEYLUVEUBUCYKUVDYHYIU
      UNYJUUOXFUPXGXHXIVPVQVKXJXKXKXLXM $.
  $}

  $( The value of a constant function.  (Contributed by NM, 20-Aug-2005.) $)
  fvconst2g $p |- ( ( B e. D /\ C e. A ) -> ( ( A X. { B } ) ` C ) = B ) $=
    ( wcel csn cxp wf cfv wceq fconstg fvconst sylan ) BDEABFZANGZHCAECOIBJABDK
    ABCOLM $.

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x F $.
    $( A constant function expressed as a Cartesian product.  (Contributed by
       NM, 27-Nov-2007.) $)
    fconst2g $p |- ( B e. C -> ( F : A --> { B } <-> F = ( A X. { B } ) ) ) $=
      ( vx wcel csn wf cxp wceq wa cv cfv wral fvconst adantlr fvconst2g eqtr4d
      adantll wfn ralrimiva wb ffn fnconstg eqfnfv syl2an mpbird expcom fconstg
      feq1 syl5ibrcom impbid ) BCFZABGZDHZDAUNIZJZUOUMUQUOUMKZUQELZDMZUSUPMZJZE
      ANZURVBEAURUSAFZKUTBVAUOVDUTBJUMABUSDOPUMVDVABJUOABUSCQSRUAUODATUPATUQVCU
      BUMAUNDUCABCUDEADUPUEUFUGUHUMUOUQAUNUPHABCUIAUNDUPUJUKUL $.
  $}

  ${
    fvconst2.1 $e |- B e. _V $.
    $( The value of a constant function.  (Contributed by NM, 16-Apr-2005.) $)
    fvconst2 $p |- ( C e. A -> ( ( A X. { B } ) ` C ) = B ) $=
      ( cvv wcel csn cxp cfv wceq fvconst2g mpan ) BEFCAFCABGHIBJDABCEKL $.

    $( A constant function expressed as a Cartesian product.  (Contributed by
       NM, 20-Aug-1999.) $)
    fconst2 $p |- ( F : A --> { B } <-> F = ( A X. { B } ) ) $=
      ( cvv wcel csn wf cxp wceq wb fconst2g ax-mp ) BEFABGZCHCANIJKDABECLM $.
  $}

  $( Two ways to express that a function is constant.  (Contributed by NM,
     27-Nov-2007.) $)
  fconst5 $p |- ( ( F Fn A /\ A =/= (/) ) -> ( F = ( A X. { B } ) <->
                 ran F = { B } ) ) $=
    ( wfn c0 wne wa csn cxp wceq crn wi eqeq2d syl5ib adantl cvv adantrd adantr
    rneq wb rnxp wcel wf wfo df-fo fof sylbir fconst2g expd wn wrel fnrel snprc
    relrn0 biimprd eqeq2 xpeq2 xp0 syl6eq 3imtr4d ex sylbi syl5 pm2.61i impbid
    ) CADZAEFZGZCABHZIZJZCKZVIJZVGVKVMLVFVKVLVJKZJVGVMCVJSVGVNVIVLAVIUAMNOBPUBZ
    VHVMVKLZLVOVFVPVGVOVFVMVKVFVMGZAVICUCZVOVKVQAVICUDVRAVICUEAVICUFUGABPCUHNUI
    QVOUJZVFVPVGVFCUKZVSVPACULVSVIEJZVTVPLBUMWAVTVPWAVTGVLEJZCEJZVMVKVTWBWCLWAV
    TWCWBCUNUOOWAVMWBTVTVIEVLUPRWAVKWCTVTWAVJECWAVJAEIEVIEAUQAURUSMRUTVAVBVCQVD
    VE $.

  ${
    $d F x $.  $d A x $.  $d B x $.
    fnprb.a $e |- A e. _V $.
    fnprb.b $e |- B e. _V $.
    $( A function whose domain has at most two elements can be represented as a
       set of at most two ordered pairs.  (Contributed by FL, 26-Jun-2011.)
       (Proof shortened by Scott Fenton, 12-Oct-2017.)  Revised to eliminate
       unnecessary antecedent ` A =/= B ` .  (Revised by NM, 29-Dec-2018.) $)
    fnprb $p |- ( F Fn { A , B }
        <-> F = { <. A , ( F ` A ) >. , <. B , ( F ` B ) >. } ) $=
      ( vx cpr wfn cfv cop wceq wb csn dfsn2 a1i fveq2 wa cdm fvex adantl fnsnb
      fneq2i eqeq2i 3bitr3i preq2 fneq2d opeq12d preq2d eqeq2d 3bitr3d wne wral
      id cv fndm dmprop syl6eqr wcel eleq2d wo elpr fvpr1 adantr eqcomd eqeq12d
      vex syl5ibrcom fvpr2 jaod syl5bi sylbid ralrimiv wfun fnfun funpr eqfunfv
      syl2anr mpbir2and df-fn sylanbrc fneq1 biimprd mpan9 impbida pm2.61ine )
      CABGZHZCAACIZJZBBCIZJZGZKZLABABKZCAAGZHZCWIWIGZKZWGWMWPWRLWNCAMZHCWIMZKWP
      WRACDUAWSWOCANUBWTWQCWINUCUDOWNWOWFCABAUEUFWNWQWLCWNWIWKWIWNABWHWJWNUMABC
      PUGUHUIUJABUKZWGWMXAWGQZWMCRZWLRZKZFUNZCIZXFWLIZKZFXCULZWGXEXAWGXCWFXDWFC
      UOZAWHBWJACSZBCSZUPZUQTXBXIFXCXBXFXCURXFWFURZXIXBXCWFXFWGXCWFKXAXKTUSXOXF
      AKZXFBKZUTXBXIXFABFVFVAXBXPXIXQXBXIXPWHAWLIZKXBXRWHXAXRWHKWGABWHWJDXLVBVC
      VDXPXGWHXHXRXFACPXFAWLPVEVGXBXIXQWJBWLIZKXBXSWJXAXSWJKWGABWHWJEXMVHVCVDXQ
      XGWJXHXSXFBCPXFBWLPVEVGVIVJVKVLWGCVMWLVMZWMXEXJQLXAWFCVNABWHWJDEXLXMVOZFC
      WLVPVQVRXAWLWFHZWMWGXAXTXDWFKZYBYAYCXAXNOWLWFVSVTWMWGYBWFCWLWAWBWCWDWE $.

    $d C x $.
    fntpb.c $e |- C e. _V $.
    $( A function whose domain has at most three elements can be represented as
       a set of at most three ordered pairs.  (Contributed by AV,
       26-Jan-2021.) $)
    fntpb $p |- ( F Fn { A , B , C } <-> F = { <. A , ( F ` A ) >. ,
                                               <. B , ( F ` B ) >. ,
                                               <. C , ( F ` C ) >. } ) $=
      ( vx ctp wfn cfv cop wceq wb wne wa cpr eqcomi fneq2i fveq2 fnprb tpidm23
      wi eqeq2i 3bitr3i a1i tpeq3 fneq2d opeq12d tpeq3d eqeq2d 3bitr3d a1d wral
      id cdm fndm fvex dmtpop syl6eqr adantl wcel eleq2d w3o vex fvtp1 ad2antrr
      eltp eqcomd eqeq12d syl5ibrcom fvtp2 ad4ant13 fvtp3 ad4ant23 3jaod syl5bi
      cv sylbid ralrimiv wfun fnfun funtp 3expa eqfunfv syl2anr mpbir2and fneq1
      fntp biimprd mpan9 impbida expcom tpidm12 tpeq2 tpeq2d tpidm13 pm2.61iine
      pm2.61ine ) DABCIZJZDAADKZLZBBDKZLZCCDKZLZIZMZNZAABCABOZACOZPZXJUCBCBCMZX
      JXMXNDABBIZJZDXCXEXEIZMZXAXIXPXRNXNDABQZJZDXCXEQZMZXPXRABDEFUAZXSXODXOXSA
      BUBRSYAXQDXQYAXCXEUBRUDUEUFXNXOWTDBCABUGUHXNXQXHDXNXEXGXCXEXNBCXDXFXNUOBC
      DTUIUJUKULUMXMBCOZXJXMYDPZXAXIYEXAPZXIDUPZXHUPZMZHVRZDKZYJXHKZMZHYGUNZXAY
      IYEXAYGWTYHWTDUQZAXBBXDCXFADURZBDURZCDURZUSUTVAYFYMHYGYFYJYGVBYJWTVBZYMYF
      YGWTYJXAYGWTMYEYOVAVCYSYJAMZYJBMZYJCMZVDYFYMYJABCHVEVHYFYTYMUUAUUBYFYMYTX
      BAXHKZMYFUUCXBXMUUCXBMYDXAABCXBXDXFEYPVFVGVIYTYKXBYLUUCYJADTYJAXHTVJVKYFY
      MUUAXDBXHKZMYFUUDXDXKYDUUDXDMXLXAABCXBXDXFFYQVLVMVIUUAYKXDYLUUDYJBDTYJBXH
      TVJVKYFYMUUBXFCXHKZMYFUUEXFXLYDUUEXFMXKXAABCXBXDXFGYRVNVOVIUUBYKXFYLUUEYJ
      CDTYJCXHTVJVKVPVQVSVTXADWAXHWAZXIYIYNPNYEWTDWBXKXLYDUUFABCXBXDXFEFGYPYQYR
      WCWDHDXHWEWFWGYEXHWTJZXIXAXKXLYDUUGABCXBXDXFEFGYPYQYRWIWDXIXAUUGWTDXHWHWJ
      WKWLWMWSABMZDAACIZJZDXCXCXGIZMZXAXIUUJUULNUUHDACQZJDXCXGQZMUUJUULACDEGUAU
      UMUUIDUUIUUMACWNRSUUNUUKDUUKUUNXCXGWNRUDUEUFUUHUUIWTDABACWOUHUUHUUKXHDUUH
      XCXEXCXGUUHABXBXDUUHUOABDTUIWPUKULACMZDABAIZJZDXCXEXCIZMZXAXIUUQUUSNUUOXT
      YBUUQUUSYCXSUUPDUUPXSABWQRSYAUURDUURYAXCXEWQRUDUEUFUUOUUPWTDACABUGUHUUOUU
      RXHDUUOXCXGXCXEUUOACXBXFUUOUOACDTUIUJUKULWR $.
  $}

  ${
    $d A a b $.  $d B b $.  $d F a b $.
    $( A function whose domain has at most two elements can be represented as a
       set of at most two ordered pairs.  (Contributed by Thierry Arnoux,
       12-Jul-2020.) $)
    fnpr2g $p |- ( ( A e. V /\ B e. W ) -> ( F Fn { A , B }
        <-> F = { <. A , ( F ` A ) >. , <. B , ( F ` B ) >. } ) ) $=
      ( va vb cv cpr wfn cfv cop wceq wb fneq2d id fveq2 opeq12d eqeq2d bibi12d
      preq1 preq1d preq2 preq2d vex fnprb vtocl2g ) CFHZGHZIZJZCUHUHCKZLZUIUICK
      ZLZIZMZNCAUIIZJZCAACKZLZUOIZMZNCABIZJZCVABBCKZLZIZMZNFGABDEUHAMZUKUSUQVCV
      JUJURCUHAUIUAOVJUPVBCVJUMVAUOVJUHAULUTVJPUHACQRUBSTUIBMZUSVEVCVIVKURVDCUI
      BAUCOVKVBVHCVKUOVGVAVKUIBUNVFVKPUIBCQRUDSTUHUICFUEGUEUFUG $.
  $}

  $( A function that maps a pair to a class is a pair of ordered pairs.
     (Contributed by Thierry Arnoux, 12-Jul-2020.) $)
  fpr2g $p |- ( ( A e. V /\ B e. W ) -> ( F : { A , B } --> C
    <-> ( ( F ` A ) e. C /\ ( F ` B ) e. C
    /\ F = { <. A , ( F ` A ) >. , <. B , ( F ` B ) >. } ) ) ) $=
    ( wcel cpr cfv cop wceq ad2antrr ffvelrnd ad2antlr wss opelxpi syl2anc opex
    wa wf w3a simpr prid1g prid2g wfn ffn adantl wb fnpr2g adantr mpbid biimpar
    3jca cxp 3ad2antr3 simpr3 simpr1 simpr2 jca prss sylib eqsstrd dff2 impbida
    sylanbrc ) AEGZBFGZSZABHZCDTZADIZCGZBDIZCGZDAVKJZBVMJZHZKZUAZVHVJSZVLVNVRVT
    VICADVHVJUBZVFAVIGZVGVJABEUCZLMVTVICBDWAVGBVIGZVFVJABFUDZNMVTDVIUEZVRVJWFVH
    VICDUFUGVHWFVRUHVJABDEFUIZUJUKUMVHVSSZWFDVICUNZOVJVHVLVRWFVNVHWFVRWGULUOWHD
    VQWIVHVLVNVRUPWHVOWIGZVPWIGZSVQWIOWHWJWKWHWBVLWJVFWBVGVSWCLVHVLVNVRUQAVKVIC
    PQWHWDVNWKVGWDVFVSWENVHVLVNVRURBVMVICPQUSVOVPWIAVKRBVMRUTVAVBVICDVCVEVD $.

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( A constant function expressed in terms of its functionality, domain, and
       value.  See also ~ fconst2 .  (Contributed by NM, 27-Aug-2004.)  (Proof
       shortened by OpenAI, 25-Mar-2020.) $)
    fconstfv $p |- ( F : A --> { B } <->
                   ( F Fn A /\ A. x e. A ( F ` x ) = B ) ) $=
      ( csn wf wfn cv cfv wcel wral wa wceq ffnfv fvex elsn ralbii anbi2i bitri
      ) BCEZDFDBGZAHZDIZTJZABKZLUAUCCMZABKZLABTDNUEUGUAUDUFABUCCUBDOPQRS $.

    $( Two ways to express a constant function.  (Contributed by NM,
       15-Mar-2007.) $)
    fconst3 $p |- ( F : A --> { B } <->
                  ( F Fn A /\ A C_ ( `' F " { B } ) ) ) $=
      ( vx csn wf wfn cv cfv wceq wral wa ccnv cima wss fconstfv wfun cdm fnfun
      wb fndm eqimss2 syl funconstss syl2anc pm5.32i bitri ) ABEZCFCAGZDHCIBJDA
      KZLUIACMUHNOZLDABCPUIUJUKUICQACRZOZUJUKTACSUIULAJUMACUAAULUBUCDABCUDUEUFU
      G $.
  $}

  $( Two ways to express a constant function.  (Contributed by NM,
     8-Mar-2007.) $)
  fconst4 $p |- ( F : A --> { B } <->
                ( F Fn A /\ ( `' F " { B } ) = A ) ) $=
    ( csn wf wfn ccnv cima wss wa wceq fconst3 cnvimass fndm syl5sseq biantrurd
    cdm eqss syl6bbr pm5.32i bitri ) ABDZCECAFZACGUBHZIZJUCUDAKZJABCLUCUEUFUCUE
    UDAIZUEJUFUCUGUEUCCQUDACUBMACNOPUDARSTUA $.

  ${
    $d x A $.  $d x B $.
    $( The restriction of a function to a set exists.  Compare Proposition 6.17
       of [TakeutiZaring] p. 28.  (Contributed by NM, 7-Apr-1995.)  (Revised by
       Mario Carneiro, 22-Jun-2013.) $)
    resfunexg $p |- ( ( Fun A /\ B e. C ) -> ( A |` B ) e. _V ) $=
      ( vx wfun wcel wa cres cdm cv cfv cop cmpt cima cvv crn wceq funres sylib
      wfn adantr funfn dffn5 fvex fnasrn syl6eq opex eqid dmmpti imaeq2i eqtr3i
      imadmrn syl6eqr funmpt dmresexg adantl funimaexg sylancr eqeltrd ) AEZBCF
      ZGZABHZDVCIZDJZVEVCKZLZMZVDNZOVBVCVHPZVIVBVCDVDVFMZVJVBVCVDTZVCVKQVBVCEZV
      LUTVMVABARUAVCUBSDVDVCUCSDVDVFVEVCUDUEUFVHVHIZNVIVJVNVDVHDVDVGVHVEVFUGVHU
      HUIUJVHULUKUMVBVHEVDOFZVIOFDVDVGUNVAVOUTABCUOUPVHVDOUQURUS $.
  $}

  ${
    resiexd.b $e |- ( ph -> B e. V ) $.
    $( The restriction of the identity relation to a set is a set.
       (Contributed by AV, 15-Feb-2020.) $)
    resiexd $p |- ( ph -> ( _I |` B ) e. _V ) $=
      ( cid wfun wcel cres cvv funi resfunexg sylancr ) AEFBCGEBHIGJDEBCKL $.
  $}

  $( If the domain of a function is a set, the function is a set.  Theorem
     6.16(1) of [TakeutiZaring] p. 28.  This theorem is derived using the Axiom
     of Replacement in the form of ~ resfunexg .  See ~ fnexALT for alternate
     proof.  (Contributed by NM, 14-Aug-1994.)  (Proof shortened by Andrew
     Salmon, 17-Sep-2011.) $)
  fnex $p |- ( ( F Fn A /\ A e. B ) -> F e. _V ) $=
    ( wfn wcel wrel cdm cres cvv fnrel adantr wfun wceq eleq1a impcom resfunexg
    wa df-fn sylan2 anassrs sylanb resdm eleq1d biimpa syl2anc ) CADZABEZQCFZCC
    GZHZIEZCIEZUFUHUGACJKUFCLZUIAMZQUGUKCARUMUNUGUKUNUGQUMUIBEZUKUGUNUOABUINOCU
    IBPSTUAUHUKULUHUJCICUBUCUDUE $.

  $( If the domain of a function exists, so the function.  Part of Theorem
     4.15(v) of [Monk1] p. 46.  This theorem is derived using the Axiom of
     Replacement in the form of ~ fnex .  (Note:  Any resemblance between
     F.U.N.E.X. and "Have You Any Eggs" is purely a coincidence originated by
     Swedish chefs.)  (Contributed by NM, 11-Nov-1995.) $)
  funex $p |- ( ( Fun F /\ dom F e. B ) -> F e. _V ) $=
    ( wfun cdm wfn wcel cvv funfn fnex sylanb ) BCBBDZEKAFBGFBHKABIJ $.

  ${
    $d x y A $.
    opabex.1 $e |- A e. _V $.
    opabex.2 $e |- ( x e. A -> E* y ph ) $.
    $( Existence of a function expressed as class of ordered pairs.
       (Contributed by NM, 21-Jul-1996.) $)
    opabex $p |- { <. x , y >. | ( x e. A /\ ph ) } e. _V $=
      ( cv wcel wa copab wfun cdm cvv wmo funopab moanimv mpbir mpgbir dmopabss
      wi ssexi funex mp2an ) BGDHZAIZBCJZKZUFLZMHUFMHUGUECNZBUEBCOUIUDACNTFUDAC
      PQRUHDEABCDSUAMUFUBUC $.
  $}

  ${
    $d x A $.
    $( If the domain of a function given by maps-to notation is a set, the
       function is a set.  (Contributed by FL, 6-Jun-2011.)  (Revised by Mario
       Carneiro, 31-Aug-2015.) $)
    mptexg $p |- ( A e. V -> ( x e. A |-> B ) e. _V ) $=
      ( wcel cmpt wfun cdm cvv funmpt wss eqid dmmptss ssexg mpan funex sylancr
      ) BDEZABCFZGSHZIEZSIEABCJTBKRUAABCSSLMTBDNOISPQ $.
  $}

  ${
    mptexgf.a $e |- F/_ x A $.
    $( If the domain of a function given by maps-to notation is a set, the
       function is a set.  (Contributed by FL, 6-Jun-2011.)  (Revised by Mario
       Carneiro, 31-Aug-2015.)  (Revised by Thierry Arnoux, 17-May-2020.) $)
    mptexgf $p |- ( A e. V -> ( x e. A |-> B ) e. _V ) $=
      ( wcel cmpt wfun cdm cvv funmpt wss crab eqid dmmpt wtru wral a1tru rgenw
      wi ss2rab mpbir rabtru sseqtri eqsstri ssexg mpan funex sylancr ) BDFZABC
      GZHUKIZJFZUKJFABCKULBLUJUMULCJFZABMZBABCUKUKNOUOPABMZBUOUPLUNPTZABQUQABUN
      RSUNPABUAUBABEUCUDUEULBDUFUGJUKUHUI $.
  $}

  ${
    $d x A $.
    mptex.1 $e |- A e. _V $.
    $( If the domain of a function given by maps-to notation is a set, the
       function is a set.  Inference version of ~ mptexg .  (Contributed by NM,
       22-Apr-2005.)  (Revised by Mario Carneiro, 20-Dec-2013.) $)
    mptex $p |- ( x e. A |-> B ) e. _V $=
      ( cvv wcel cmpt mptexg ax-mp ) BEFABCGEFDABCEHI $.
  $}

  ${
    $d A x $.
    mptexd.1 $e |- ( ph -> A e. V ) $.
    $( If the domain of a function given by maps-to notation is a set, the
       function is a set.  Deduction version of ~ mptexg .  (Contributed by
       Glauco Siliprandi, 24-Dec-2020.) $)
    mptexd $p |- ( ph -> ( x e. A |-> B ) e. _V ) $=
      ( wcel cmpt cvv mptexg syl ) ACEGBCDHIGFBCDEJK $.
  $}

  ${
    $d x y A $.  $d x ph $.
    mptrabex.1 $e |- A e. _V $.
    $( If the domain of a function given by maps-to notation is a class
       abstraction based on a set, the function is a set.  (Contributed by AV,
       16-Jul-2019.)  (Revised by AV, 26-Mar-2021.) $)
    mptrabex $p |- ( x e. { y e. A | ph } |-> B ) e. _V $=
      ( crab rabex mptex ) BACDGEACDFHI $.
  $}

  ${
    $d x y A $.  $d x ph $.
    mptrabexOLD.1 $e |- A e. V $.
    $( Obsolete version of ~ mptrabex as of 26-Mar-2021.  (Contributed by AV,
       16-Jul-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    mptrabexOLD $p |- ( x e. { y e. A | ph } |-> B ) e. _V $=
      ( crab elexi rabex mptex ) BACDHEACDDFGIJK $.
  $}

  $( If the domain of a mapping is a set, the function is a set.  (Contributed
     by NM, 3-Oct-1999.) $)
  fex $p |- ( ( F : A --> B /\ A e. C ) -> F e. _V ) $=
    ( wf wfn wcel cvv ffn fnex sylan ) ABDEDAFACGDHGABDIACDJK $.

  ${
    $d f x z A $.  $d f z B $.
    eufnfv.1 $e |- A e. _V $.
    eufnfv.2 $e |- B e. _V $.
    $( A function is uniquely determined by its values.  (Contributed by NM,
       31-Aug-2011.) $)
    eufnfv $p |- E! f ( f Fn A /\ A. x e. A ( f ` x ) = B ) $=
      ( vz cv wfn cfv wceq wral wa weu wb wal wex cmpt mptex cvv eqeq2 pm4.71ri
      bibi2d albidv spcev eqid fnmpti fneq1 mpbiri dffn5 eqeq1 sylbi wcel rgenw
      fvex mpteqb ax-mp syl6bb pm5.32i bitr2i mpg df-eu mpbir ) DHZBIZAHZVDJZCK
      ABLZMZDNVIVDGHZKZOZDPZGQZVIVDABCRZKZOZVNDVMVQDPGVOABCESVJVOKZVLVQDVRVKVPV
      IVJVOVDUAUCUDUEVPVEVPMVIVPVEVPVEVOBIABCVOFVOUFUGBVDVOUHUIUBVEVPVHVEVPABVG
      RZVOKZVHVEVDVSKVPVTOABVDUJVDVSVOUKULVGTUMZABLVTVHOWAABVFVDUOUNABVGCTUPUQU
      RUSUTVAVIDGVBVC $.
  $}

  $( A function's value in a preimage belongs to the image.  (Contributed by
     NM, 23-Sep-2003.) $)
  funfvima $p |- ( ( Fun F /\ B e. dom F ) -> ( B e. A ->
                 ( F ` B ) e. ( F " A ) ) ) $=
    ( wfun cdm wcel wa cfv cima cres dmres elin2 crn funres fvelrn sylan eleq1d
    wi fvres df-ima eleq2i syl6rbbr syl5ibrcom syl5bir expd com12 impd pm2.43b
    ex ) CDZBCEZFZGBAFZBCHZCAIZFZUMUJULUMUPRZUJUMULUQRUJUMULUQUMULGBCAJZEZFZUJU
    QBAUKUSCAKLUJUTUQUJUTGUPUMBURHZURMZFZUJURDUTVCACNBUROPUMVCUNVBFUPUMVAUNVBBA
    CSQUOVBUNCATUAUBUCUIUDUEUFUGUH $.

  $( A function's value in an included preimage belongs to the image.
     (Contributed by NM, 3-Feb-1997.) $)
  funfvima2 $p |- ( ( Fun F /\ A C_ dom F ) -> ( B e. A ->
                  ( F ` B ) e. ( F " A ) ) ) $=
    ( wfun cdm wss wcel cfv cima wi ssel funfvima ex com23 a2d syl5 imp ) CDZAC
    EZFZBAGZBCHCAIGZJZTUABSGZJRUCASBKRUAUDUBRUDUAUBRUDUCABCLMNOPQ $.

  ${
    resfvresima.f $e |- ( ph -> Fun F ) $.
    resfvresima.s $e |- ( ph -> S C_ dom F ) $.
    resfvresima.x $e |- ( ph -> X e. S ) $.
    $( The value of the function value of a restriction for a function
       restricted to the image of the restricting subset.  (Contributed by AV,
       6-Mar-2021.) $)
    resfvresima $p |- ( ph -> ( ( H |` ( F " S ) ) ` ( ( F |` S ) ` X ) )
                              = ( H ` ( F ` X ) ) ) $=
      ( cres cfv cima wcel wceq fvres syl fveq2d wfun cdm wss wa funfvima2 sylc
      jca eqtrd ) AECBIJZDCBKZIZJECJZUGJZUHDJZAUEUHUGAEBLZUEUHMHEBCNOPAUHUFLZUI
      UJMACQZBCRSZTUKULAUMUNFGUCHBECUAUBUHUFDNOUD $.
  $}

  ${
    $d x A $.  $d x F $.  $d x G $.
    $( A class including a function contains the function's value in the image
       of the singleton of the argument.  (Contributed by NM, 23-Mar-2004.) $)
    funfvima3 $p |- ( ( Fun F /\ F C_ G ) -> ( A e. dom F ->
                    ( F ` A ) e. ( G " { A } ) ) ) $=
      ( vx wss wfun cdm wcel cfv csn cima wi wa cop funfvop ssel syl5 imp wb cv
      wceq sneq imaeq2d eleq2d opeq1 eleq1d vex elimasn vtoclbg ad2antll mpbird
      fvex exp32 impcom ) BCEZBFZABGZHZABIZCAJZKZHZLUOUPURVBUOUPURMZMVBAUSNZCHZ
      UOVCVEVCVDBHUOVEABOBCVDPQRURVBVESUOUPUSCDTZJZKZHVFUSNZCHVBVEDAUQVFAUAZVHV
      AUSVJVGUTCVFAUBUCUDVJVIVDCVFAUSUEUFCVFUSDUGABULUHUIUJUKUMUN $.
  $}

  $( The function value of an operand in a set is contained in the image of
     that set, using the ` Fn ` abbreviation.  (Contributed by Stefan O'Rear,
     10-Mar-2015.) $)
  fnfvima $p |- ( ( F Fn A /\ S C_ A /\ X e. S ) -> ( F ` X ) e. ( F " S ) ) $=
    ( wfn wss wcel w3a wfun cdm wa cima fnfun 3ad2ant1 simp2 wceq fndm sseqtr4d
    cfv jca simp3 funfvima2 sylc ) CAEZBAFZDBGZHZCIZBCJZFZKUFDCSCBLGUGUHUJUDUEU
    HUFACMNUGBAUIUDUEUFOUDUEUIAPUFACQNRTUDUEUFUABDCUBUC $.

  ${
    $d ph y $.  $d ps x $.  $d F x y $.  $d B x y $.  $d A x y $.
    rexima.x $e |- ( x = ( F ` y ) -> ( ph <-> ps ) ) $.
    $( Existential quantification under an image in terms of the base set.
       (Contributed by Stefan O'Rear, 21-Jan-2015.) $)
    rexima $p |- ( ( F Fn A /\ B C_ A ) ->
        ( E. x e. ( F " B ) ph <-> E. y e. B ps ) ) $=
      ( wfn wss wa cv cfv cima cvv wcel fvexd wceq wrex fvelimab eqcom rexxfr2d
      rexbii syl6bb wb adantl ) GEIFEJKZABCDDLZGMZGFNZFOUGUHFPKUHGQUGCLZUJPUIUK
      RZDFSUKUIRZDFSDEFUKGTULUMDFUIUKUAUCUDUMABUEUGHUFUB $.

    $( Universal quantification under an image in terms of the base set.
       (Contributed by Stefan O'Rear, 21-Jan-2015.) $)
    ralima $p |- ( ( F Fn A /\ B C_ A ) ->
        ( A. x e. ( F " B ) ph <-> A. y e. B ps ) ) $=
      ( wfn wss wa cv cfv cima cvv wcel fvexd wceq wrex fvelimab eqcom ralxfr2d
      rexbii syl6bb wb adantl ) GEIFEJKZABCDDLZGMZGFNZFOUGUHFPKUHGQUGCLZUJPUIUK
      RZDFSUKUIRZDFSDEFUKGTULUMDFUIUKUAUCUDUMABUEUGHUFUB $.
  $}

  ${
    $d A x $.  $d R x $.
    $( TODO:  This is the same as ~ issref (which has a much longer proof).
       Should we replace ~ issref with this one? - NM 9-May-2016.

       Two ways to state a relation is reflexive.  (Adapted from Tarski.)
       (Contributed by FL, 15-Jan-2012.)  (Proof shortened by Mario Carneiro,
       3-Nov-2015.)  (Proof modification is discouraged.) $)
    idref $p |- ( ( _I |` A ) C_ R <-> A. x e. A x R x ) $=
      ( cv cop wcel wral cmpt crn wss wbr cid cres wf eqid fmpt wfn opex fnmpti
      df-f mpbiran bitri df-br ralbii mptresid fnasrn eqtr3i sseq1i 3bitr4ri
      vex ) ADZUKEZCFZABGZABULHZIZCJZUKUKCKZABGLBMZCJUNBCUONZUQABCULUOUOOZPUTUO
      BQUQABULUOUKUKRVASBCUOTUAUBURUMABUKUKCUCUDUSUPCABUKHUSUPABUEABUKAUJUFUGUH
      UI $.
  $}

  ${
    $d x y F $.
    $( Upper bound for the class of values of a class.  (Contributed by NM,
       9-Nov-1995.) $)
    fvclss $p |- { y | E. x y = ( F ` x ) } C_ ( ran F u. { (/) } ) $=
      ( cv cfv wceq wex cab crn wcel c0 csn wo cun wn wne eqcom tz6.12i syl6ibr
      wbr syl5bi eximdv elrn com12 necon1bd velsn orrd ss2abi df-un sseqtr4i
      vex ) BDZADZCEZFZAGZBHULCIZJZULKLZJZMZBHUQUSNUPVABUPURUTUPUROULKFUTUPURUL
      KULKPZUPURVBUPUMULCTZAGURVBUOVCAUOUNULFVBVCULUNQUMULCRUAUBAULCBUKUCSUDUEB
      KUFSUGUHBUQUSUIUJ $.
  $}

  ${
    $d y z B $.  $d x y z A $.
    elabrex.1 $e |- B e. _V $.
    $( Elementhood in an image set.  (Contributed by Mario Carneiro,
       14-Jan-2014.) $)
    elabrex $p |- ( x e. A -> B e. { y | E. x e. A y = B } ) $=
      ( vz cv wcel csb wceq wrex cab wtru tru csbeq1a equcoms a1tru 2thd rspcev
      mpan2 eqeq1 rexbidv elab sylibr nfv nfcsb1v nfeq2 eqeq2d cbvrex syl6eleqr
      abbii ) AGZCHZDBGZAFGZDIZJZFCKZBLZUNDJZACKZBLUMDUPJZFCKZDUSHUMMVCNVBMFULC
      UOULJZVBMVBAFAUODOZPVDQRSTURVCBDEUTUQVBFCUNDUPUAUBUCUDVAURBUTUQAFCUTFUEAU
      NUPAUODUFUGULUOJDUPUNVEUHUIUKUJ $.
  $}

  ${
    $d A y z $.  $d B y z $.  $d C w $.  $d D y $.  $d w x y $.  $d w z y $.
    abrexco.1 $e |- B e. _V $.
    abrexco.2 $e |- ( y = B -> C = D ) $.
    $( Composition of two image maps ` C ( y ) ` and ` B ( w ) ` .
       (Contributed by NM, 27-May-2013.) $)
    abrexco $p |- { x | E. y e. { z | E. w e. A z = B } x = C } =
        { x | E. w e. A x = D } $=
      ( cv wceq wrex cab wa wex wcel df-rex bitr4i bitri vex eqeq1 rexbidv elab
      anbi1i r19.41v exbii rexcom4 eqeq2d ceqsexv rexbii abbii ) AKZGLZBCKZFLZD
      EMZCNZMZUMHLZDEMZAUSBKZFLZUNOZBPZDEMZVAUSVDDEMZBPZVFUSVBURQZUNOZBPVHUNBUR
      RVJVGBVJVCDEMZUNOVGVIVKUNUQVKCVBBUAUOVBLUPVCDEUOVBFUBUCUDUEVCUNDEUFSUGTVD
      DBEUHSVEUTDEUNUTBFIVCGHUMJUIUJUKTUL $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d y z C $.
    $( The image of an indexed union is the indexed union of the images.
       (Contributed by Mario Carneiro, 18-Jun-2014.) $)
    imaiun $p |- ( A " U_ x e. B C ) = U_ x e. B ( A " C ) $=
      ( vy vz ciun cima cv wcel cop wa wex wrex rexcom4 vex elima3 rexbii eliun
      anbi1i r19.41v bitr4i exbii 3bitr4ri 3bitr4i eqriv ) EBACDGZHZACBDHZGZFIZ
      UGJZUKEIZKBJZLZFMZUMUIJZACNZUMUHJUMUJJUKDJZUNLZFMZACNUTACNZFMURUPUTAFCOUQ
      VAACFUMBDEPZQRUOVBFUOUSACNZUNLVBULVDUNAUKCDSTUSUNACUAUBUCUDFUMBUGVCQAUMCU
      ISUEUF $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The image of a union is the indexed union of the images.  Theorem 3K(a)
       of [Enderton] p. 50.  (Contributed by NM, 9-Aug-2004.)  (Proof shortened
       by Mario Carneiro, 18-Jun-2014.) $)
    imauni $p |- ( A " U. B ) = U_ x e. B ( A " x ) $=
      ( cuni cima cv ciun uniiun imaeq2i imaiun eqtri ) BCDZEBACAFZGZEACBMEGLNB
      ACHIABCMJK $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( The indexed union of a function's values is the union of its range.
       Compare Definition 5.4 of [Monk1] p. 50.  (Contributed by NM,
       27-Sep-2004.) $)
    fniunfv $p |- ( F Fn A -> U_ x e. A ( F ` x ) = U. ran F ) $=
      ( vy wfn crn cuni cv cfv wceq wrex cab ciun fnrnfv unieqd dfiun2 syl6reqr
      fvex ) CBEZCFZGDHAHZCIZJABKDLZGABUBMSTUCADBCNOADBUBUACRPQ $.

    $( The indexed union of a function's values is the union of its image under
       the index class.

       Note:  This theorem depends on the fact that our function value is the
       empty set outside of its domain.  If the antecedent is changed to
       ` F Fn A ` , the theorem can be proved without this dependency.
       (Contributed by NM, 26-Mar-2006.)  (Proof shortened by Mario Carneiro,
       31-Aug-2015.) $)
    funiunfv $p |- ( Fun F -> U_ x e. A ( F ` x ) = U. ( F " A ) ) $=
      ( wfun cres cdm cv cfv ciun crn cuni cima wfn wceq syl eqtri wcel iuneq2i
      cun c0 funres funfn sylib fniunfv cdif undif2 wss cin dmres inss1 eqsstri
      ssequn1 mpbi iuneq1 ax-mp iunxun wn eldifn ndmfv iun0 uneq2i un0 3eqtr3ri
      fvres df-ima unieqi 3eqtr4g ) CDZACBEZFZAGZVIHZIZVIJZKZABVKCHZIZCBLZKVHVI
      VJMZVMVONVHVIDVSBCUAVIUBUCAVJVIUDOAVJBVJUEZSZVLIZABVLIZVMVQWABNWBWCNWAVJB
      SZBVJBUFVJBUGWDBNVJBCFZUHBCBUIBWEUJUKVJBULUMPAWABVLUNUOWBVMAVTVLIZSZVMAVJ
      VTVLUPWGVMTSVMWFTVMWFAVTTITAVTVLTVKVTQVKVJQUQVLTNVKBVJURVKVIUSORAVTUTPVAV
      MVBPPABVLVPVKBCVDRVCVRVNCBVEVFVG $.
  $}

  ${
    $d x z A $.  $d z F $.
    funiunfvf.1 $e |- F/_ x F $.
    $( The indexed union of a function's values is the union of its image under
       the index class.  This version of ~ funiunfv uses a bound-variable
       hypothesis in place of a distinct variable condition.  (Contributed by
       NM, 26-Mar-2006.)  (Revised by David Abernethy, 15-Apr-2013.) $)
    funiunfvf $p |- ( Fun F -> U_ x e. A ( F ` x ) = U. ( F " A ) ) $=
      ( vz wfun cv cfv ciun cima cuni nfcv nffv fveq2 cbviun funiunfv syl5eqr )
      CFABAGZCHZIEBEGZCHZICBJKEABUASATCDATLMESLTRCNOEBCPQ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( Membership in the union of an image of a function.  (Contributed by NM,
       28-Sep-2006.) $)
    eluniima $p |- ( Fun F ->
                   ( B e. U. ( F " A ) <-> E. x e. A B e. ( F ` x ) ) ) $=
      ( cv cfv wcel wrex ciun wfun cima cuni eliun funiunfv eleq2d syl5rbbr ) C
      AEDFZGABHCABQIZGDJZCDBKLZGACBQMSRTCABDNOP $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( Membership in the union of the range of a function.  See ~ elunirnALT
       for a shorter proof which uses ~ ax-pow .  (Contributed by NM,
       24-Sep-2006.) $)
    elunirn $p |- ( Fun F ->
                        ( A e. U. ran F <-> E. x e. dom F A e. ( F ` x ) ) ) $=
      ( vy crn cuni wcel cv wa wex wfun cfv cdm wrex eluni wceq wfn funfn eleq2
      wb fvelrnb sylbi anbi2d r19.42v syl6bbr biimparc reximi syl6bi fvelrn a1d
      exlimdv ancld fvex eleq1 anbi12d spcev syl6 rexlimdva impbid syl5bb ) BCE
      ZFGBDHZGZVBVAGZIZDJZCKZBAHZCLZGZACMZNZDBVAOVGVFVLVGVEVLDVGVEVCVIVBPZIZAVK
      NZVLVGVEVCVMAVKNZIVOVGVDVPVCVGCVKQVDVPTCRAVKVBCUAUBUCVCVMAVKUDUEVNVJAVKVM
      VJVCVIVBBSUFUGUHUKVGVJVFAVKVGVHVKGIZVJVJVIVAGZIZVFVQVJVRVQVRVJVHCUIUJULVE
      VSDVIVHCUMVBVIPVCVJVDVRVBVIBSVBVIVAUNUOUPUQURUSUT $.
  $}

  ${
    $d x A $.  $d x F $.
    $( Alternate proof of ~ elunirn .  It is shorter but requires ~ ax-pow
       (through ~ eluniima , ~ funiunfv , ~ ndmfv ).  (Contributed by NM,
       24-Sep-2006.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    elunirnALT $p |- ( Fun F ->
                        ( A e. U. ran F <-> E. x e. dom F A e. ( F ` x ) ) ) $=
      ( crn cuni wcel cdm cima wfun cv cfv wrex imadmrn unieqi eluniima syl5bbr
      eleq2i ) BCDZEZFBCCGZHZEZFCIBAJCKFATLUBSBUARCMNQATBCOP $.
  $}

  ${
    $d x A $.  $d x I $.  $d x F $.
    $( Membership in a union of some function-defined family of sets.
       (Contributed by Stefan O'Rear, 30-Jan-2015.) $)
    fnunirn $p |- ( F Fn I -> ( A e. U. ran F <->
        E. x e. I A e. ( F ` x ) ) ) $=
      ( wfn crn cuni wcel cv cfv cdm wrex wfun fnfun elunirn fndm rexeqdv bitrd
      wb syl ) CDEZBCFGHZBAICJHZACKZLZUCADLUACMUBUESDCNABCOTUAUCAUDDDCPQR $.
  $}

  ${
    $d x y z A $.  $d z B $.  $d x y z F $.
    $( A one-to-one function in terms of function values.  Compare Theorem
       4.8(iv) of [Monk1] p. 43.  (Contributed by NM, 29-Oct-1996.) $)
    dff13 $p |- ( F : A -1-1-> B <-> ( F : A --> B /\
             A. x e. A A. y e. A ( ( F ` x ) = ( F ` y ) -> x = y ) ) ) $=
      ( vz cv wbr wal wa cfv wceq wi wral wb wcel vex breldm eleq2d bitri dff12
      wf1 wf wmo wfn ffn cdm fndm syl5ib anim12d pm4.71rd eqcom syl5bb bi2anan9
      fnbrfvb anandis pm5.32da bitr4d imbi1d impexp syl6bb albidv 19.21v 19.23v
      wex fvex eqvinc imbi1i bitr4i imbi2i 2albidv breq1 mo4 albii r2al 3bitr4g
      alrot3 syl pm5.32i ) CDEUBCDEUCZAGZFGZEHZAUDZFIZJVTWAEKZBGZEKZLZWAWGLZMZB
      CNACNZJAFCDEUAVTWEWLVTECUEZWEWLOCDEUFWMWCWGWBEHZJZWJMZFIZBIAIZWACPZWGCPZJ
      ZWKMZBIAIWEWLWMWQXBABWMWQXAWBWFLZWBWHLZJZWJMZMZFIZXBWMWPXGFWMWPXAXEJZWJMX
      GWMWOXIWJWMWOXAWOJXIWMWOXAWMWCWSWNWTWCWAEUGZPWMWSWAWBEAQFQZRWMXJCWACEUHZS
      UIWNWGXJPWMWTWGWBEBQXKRWMXJCWGXLSUIUJUKWMXAXEWOWMWSWTXEWOOWMWSJZXCWCWMWTJ
      ZXDWNXCWFWBLXMWCWBWFULCWAWBEUOUMXDWHWBLXNWNWBWHULCWGWBEUOUMUNUPUQURUSXAXE
      WJUTVAVBXHXAXFFIZMXBXAXFFVCXOWKXAXOXEFVEZWJMWKXEWJFVDWIXPWJFWFWHWAEVFVGVH
      VIVJTVAVKWEWPBIAIZFIWRWDXQFWCWNABWAWGWBEVLVMVNWPFABVQTWKABCCVOVPVRVST $.
  $}

  ${
    $d x y w v A $.  $d w v B $.  $d w v F $.
    dff13f.1 $e |- F/_ x F $.
    dff13f.2 $e |- F/_ y F $.
    $( A one-to-one function in terms of function values.  Compare Theorem
       4.8(iv) of [Monk1] p. 43.  (Contributed by NM, 31-Jul-2003.) $)
    dff13f $p |- ( F : A -1-1-> B <-> ( F : A --> B /\
             A. x e. A A. y e. A ( ( F ` x ) = ( F ` y ) -> x = y ) ) ) $=
      ( vw vv cv cfv wceq weq wi wral wa nfcv nffv nfeq nfv wf dff13 nfim fveq2
      eqeq2d equequ2 imbi12d cbvral ralbii nfral eqeq1d equequ1 ralbidv anbi2i
      wf1 bitri ) CDEUOCDEUAZHJZEKZIJZEKZLZHIMZNZICOZHCOZPUQAJZEKZBJZEKZLZABMZN
      ZBCOZACOZPHICDEUBVFVOUQVFUSVJLZHBMZNZBCOZHCOVOVEVSHCVDVRIBCVBVCBBUSVABURE
      GBURQRBUTEGBUTQRSVCBTUCVRITIBMZVBVPVCVQVTVAVJUSUTVIEUDUEIBHUFUGUHUIVSVNHA
      CVRABCACQVPVQAAUSVJAUREFAURQRAVIEFAVIQRSVQATUCUJVNHTHAMZVRVMBCWAVPVKVQVLW
      AUSVHVJURVGEUDUKHABULUGUMUHUPUNUP $.
  $}

  ${
    $d A c d $.  $d C c d $.  $d D d $.  $d F c d $.
    $( If the values of a one-to-one function for two arguments are equal, the
       arguments themselves must be equal.  (Contributed by Alexander van der
       Vekens, 12-Nov-2017.) $)
    f1veqaeq $p |- ( ( F : A -1-1-> B /\ ( C e. A /\ D e. A ) ) ->
                     ( ( F ` C ) = ( F ` D ) -> C = D ) ) $=
      ( vc vd wf1 wcel wa cfv wceq wi wf cv weq wral dff13 fveq2 imbi12d eqeq1d
      eqeq1 eqeq2d eqeq2 rspc2v com12 adantl sylbi imp ) ABEHZCAIDAIJZCEKZDEKZL
      ZCDLZMZUJABENZFOZEKZGOZEKZLZFGPZMZGAQFAQZJUKUPMZFGABERVEVFUQUKVEUPVDUPULV
      ALZCUTLZMFGCDAAURCLZVBVGVCVHVIUSULVAURCESUAURCUTUBTUTDLZVGUNVHUOVJVAUMULU
      TDESUCUTDCUDTUEUFUGUHUI $.
  $}

  $( If the values of a composition of one-to-one functions for two arguments
     are equal, the arguments themselves must be equal.  (Contributed by AV,
     3-Feb-2021.) $)
  f1cofveqaeq $p |- ( ( ( F : B -1-1-> C /\ G : A -1-1-> B )
                        /\ ( X e. A /\ Y e. A ) )
                      -> ( ( F ` ( G ` X ) ) = ( F ` ( G ` Y ) )
                           -> X = Y ) ) $=
    ( wf1 wa wcel cfv wceq wi simpl wf f1f ffvelrn ex anim12d f1veqaeq syl2an2r
    syl adantl imp adantll syld ) BCDHZABEHZIZFAJZGAJZIZIFEKZDKGEKZDKLZUMUNLZFG
    LZUIUGULUMBJZUNBJZIZUOUPMUGUHNUIULUTUHULUTMZUGUHABEOZVAABEPVBUJURUKUSVBUJUR
    ABFEQRVBUKUSABGEQRSUBUCUDBCUMUNDTUAUHULUPUQMUGABFGETUEUF $.

  $( Alternate proof of ~ f1cofveqaeq , 1 essential step shorter, but having
     more bytes (305 vs. 282).  (Contributed by AV, 3-Feb-2021.)
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  f1cofveqaeqALT $p |- ( ( ( F : B -1-1-> C /\ G : A -1-1-> B )
                           /\ ( X e. A /\ Y e. A ) )
                         -> ( ( F ` ( G ` X ) ) = ( F ` ( G ` Y ) )
                              -> X = Y ) ) $=
    ( wf1 wa wcel cfv wceq ccom wb wi wf f1f fvco3 adantrr adantrl eqeq12d f1co
    ex syl adantl imp f1veqaeq sylan sylbird ) BCDHZABEHZIZFAJZGAJZIZIFEKDKZGEK
    DKZLZFDEMZKZGUSKZLZFGLZULUOVBURNZUKUOVDOZUJUKABEPZVEABEQVFUOVDVFUOIUTUPVAUQ
    VFUMUTUPLUNABFDERSVFUNVAUQLUMABGDERTUAUCUDUEUFULACUSHUOVBVCOABCDEUBACFGUSUG
    UHUI $.

  $( If two one-to-one functions are applied on different arguments, also the
     values are different.  (Contributed by Alexander van der Vekens,
     25-Jan-2018.) $)
  2f1fvneq $p |- ( ( ( E : D -1-1-> R /\ F : C -1-1-> D )
                       /\ ( A e. C /\ B e. C ) /\ A =/= B )
                   -> ( ( ( E ` ( F ` A ) ) = X /\ ( E ` ( F ` B ) ) = Y )
                        -> X =/= Y ) ) $=
    ( wf1 wa wcel wne cfv wceq wn wi f1veqaeq ffvelrn ex necon3ad 3impia simpll
    w3a adantll wf f1f anim12dan syl adantl imp syl2anc con3dimp eqeq12 biimpri
    notbid df-ne syl6bi syl5com 3adant3 mpd ) DEFJZCDGJZKZACLZBCLZKZABMZUDAGNZB
    GNZOZPZVIFNZHOVJFNZIOKZHIMZQZVDVGVHVLVDVGKZVKABVCVGVKABOQVBCDABGRUEUAUBVDVG
    VLVQQVHVRVLVQVRVLKVMVNOZPZVOVPVRVSVKVRVBVIDLZVJDLZKZVSVKQVBVCVGUCVDVGWCVCVG
    WCQZVBVCCDGUFZWDCDGUGWEVGWCWEVEWAVFWBCDAGSCDBGSUHTUIUJUKDEVIVJFRULUMVOVTHIO
    ZPZVPVOVSWFVMHVNIUNUPVPWGHIUQUOURUSTUTVA $.

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.  $d y F $.
    f1mpt.1 $e |- F = ( x e. A |-> C ) $.
    f1mpt.2 $e |- ( x = y -> C = D ) $.
    $( Express injection for a mapping operation.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    f1mpt $p |- ( F : A -1-1-> B <->
      ( A. x e. A C e. B /\ A. x e. A A. y e. A ( C = D -> x = y ) ) ) $=
      ( wf1 wf cv cfv wceq wi wral wa wcel wb ralbi nfmpt1 nfcxfr dff13f anbi1i
      cmpt nfcv fmpt eleq1d raaanv fvmpt2 fvmptg eqeqan12d an4s imbi1d ralimdva
      cbvralv ex syl6 ralimia syl sylbir sylan2b anidms pm5.32i 3bitr2i ) CDGJC
      DGKZALZGMZBLZGMZNZVGVINZOZBCPZACPZQEDRZACPZVOQVQEFNZVLOZBCPZACPZQABCDGAGA
      CEUEHACEUAUBBGUFUCVQVFVOACDEGHUGUDVQVOWAVQVOWASZVQVQFDRZBCPZWBVPWCABCVLEF
      DIUHUPVQWDQVPWCQZBCPZACPZWBVPWCABCUIWGVNVTSZACPWBWFWHACVGCRZWFVMVSSZBCPWH
      WIWEWJBCWIVICRZQZWEWJWLWEQVKVRVLWIVPWKWCVKVRSWIVPQWKWCQVHEVJFACEDGHUJAVIE
      FCDGIHUKULUMUNUQUOVMVSBCTURUSVNVTACTUTVAVBVCVDVE $.
  $}

  $( Equality of function values for a one-to-one function.  (Contributed by
     NM, 11-Feb-1997.) $)
  f1fveq $p |- ( ( F : A -1-1-> B /\ ( C e. A /\ D e. A ) ) ->
               ( ( F ` C ) = ( F ` D ) <-> C = D ) ) $=
    ( wf1 wcel wa cfv wceq f1veqaeq fveq2 impbid1 ) ABEFCAGDAGHHCEIDEIJCDJABCDE
    KCDELM $.

  ${
    $d F z $.  $d A z $.  $d Y z $.  $d X z $.  $d B z $.
    $( Membership in the image of a 1-1 map.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    f1elima $p |- ( ( F : A -1-1-> B /\ X e. A /\ Y C_ A )
                                -> ( ( F ` X ) e. ( F " Y ) <-> X e. Y ) ) $=
      ( vz wf1 wcel wss w3a cfv cima cv wceq wrex wb wfn wi wa anassrs fvelimab
      f1fn sylan 3adant2 ssel impac f1fveq ancom2s biimpd biimpcd sylan9 anasss
      eleq1 sylan2 rexlimdva 3impa eqid fveq2 eqeq1d rspcev mpan2 impbid1 bitrd
      ) ABCGZDAHZEAIZJZDCKZCELHZFMZCKZVHNZFEOZDEHZVDVFVIVMPZVEVDCAQVFVOABCUBFAE
      VHCUAUCUDVGVMVNVDVEVFVMVNRVDVESZVFSVLVNFEVPVFVJEHZVLVNRZVFVQSVPVJAHZVQSVR
      VFVQVSEAVJUEUFVPVSVQVRVPVSSVLVJDNZVQVNVDVEVSVLVTRVDVEVSSSVLVTVDVSVEVLVTPA
      BVJDCUGUHUITVTVQVNVJDEUMUJUKULUNTUOUPVNVHVHNZVMVHUQVLWAFDEVTVKVHVHVJDCURU
      SUTVAVBVC $.
  $}

  ${
    $d F a $.  $d A a $.  $d B a $.  $d C a $.  $d D a $.
    $( Taking images under a one-to-one function preserves subsets.
       (Contributed by Stefan O'Rear, 30-Oct-2014.) $)
    f1imass $p |- ( ( F : A -1-1-> B /\ ( C C_ A /\ D C_ A ) ) ->
      ( ( F " C ) C_ ( F " D ) <-> C C_ D ) ) $=
      ( va wf1 wss wa cima cv wcel wi simplrl sseld wb 3expa f1elima syl3anc ex
      simplr simplll simpr simp1rl simp1rr 3imtr3d pm2.43d ssrdv imass2 impbid1
      cfv syld ) ABEGZCAHZDAHZIZIZECJZEDJZHZCDHZUQUTVAUQUTIZFCDVBFKZCLZVCDLZVBV
      DVCALZVDVEMZVBCAVCUMUNUOUTNOVBVFVGVBVFIZVCEUKZURLZVIUSLZVDVEVHURUSVIUQUTV
      FUAOVHUMVFUNVJVDPUMUPUTVFUBZVBVFUCZUQUTVFUNUNUOUMUTVFUDQABEVCCRSVHUMVFUOV
      KVEPVLVMUQUTVFUOUNUOUMUTVFUEQABEVCDRSUFTULUGUHTCDEUIUJ $.

    $( Taking images under a one-to-one function preserves equality.
       (Contributed by Stefan O'Rear, 30-Oct-2014.) $)
    f1imaeq $p |- ( ( F : A -1-1-> B /\ ( C C_ A /\ D C_ A ) ) ->
      ( ( F " C ) = ( F " D ) <-> C = D ) ) $=
      ( wf1 wss wa cima wceq f1imass wb ancom2s anbi12d eqss 3bitr4g ) ABEFZCAG
      ZDAGZHHZECIZEDIZGZUBUAGZHCDGZDCGZHUAUBJCDJTUCUEUDUFABCDEKQSRUDUFLABDCEKMN
      UAUBOCDOP $.

    $( Taking images under a one-to-one function preserves proper subsets.
       (Contributed by Stefan O'Rear, 30-Oct-2014.) $)
    f1imapss $p |- ( ( F : A -1-1-> B /\ ( C C_ A /\ D C_ A ) ) ->
      ( ( F " C ) C. ( F " D ) <-> C C. D ) ) $=
      ( wf1 wss wa cima wceq wpss f1imass f1imaeq notbid anbi12d dfpss2 3bitr4g
      wn ) ABEFCAGDAGHHZECIZEDIZGZTUAJZRZHCDGZCDJZRZHTUAKCDKSUBUEUDUGABCDELSUCU
      FABCDEMNOTUAPCDPQ $.
  $}

  ${
    $d F x y $.  $d X x y $.  $d Y x y $.
    fpropnf1.f $e |- F = { <. X , Z >. , <. Y , Z >. } $.
    $( A function, given by an unordered pair of ordered pairs, which is not
       injective/one-to-one.  (Contributed by Alexander van der Vekens,
       22-Oct-2017.)  (Revised by AV, 8-Jan-2021.) $)
    fpropnf1 $p |- ( ( ( X e. U /\ Y e. V /\ Z e. W ) /\ X =/= Y )
                     -> ( Fun F /\ -. Fun `' F ) ) $=
      ( vx vy w3a wa adantr syl wceq cfv wi wral fveq2 imbi12d wcel wne wfun wn
      ccnv cop cpr 3adant3 jca 3ad2ant3 simpr funprg funeqi sylibr neneq adantl
      id 3jca wf fprg eqcomi feq1i sylib wf1 df-f1 cv weq dff13 wb eqeq1d eqeq1
      ralbidv ralprg eqeq2d eqeq2 fveq1i 3simpb anim1i df-3an fvpr1g syl5eq idd
      anbi12d 3simpc fvpr2g syl5req eqtrd embantd adantld adantrd sylbid syl5bi
      syl5bir mpand mtod ) EAUAZFCUAZGDUAZKZEFUBZLZBUCZBUEUCZUDXAEGUFFGUFUGZUCZ
      XBXAWPWQLZWRWRLZWTKZXEXAXFXGWTWSXFWTWPWQXFWRXFUQUHMWSXGWTWRWPXGWQWRWRWRWR
      UQZXIUIUJMWSWTUKURZEFGGACDDULNBXDHUMUNXAXCEFOZWTXKUDWSEFUOUPXAEFUGZGGUGZB
      USZXCXKXAXLXMXDUSZXNXAXHXOXJEFGGACDDUTNXLXMXDBBXDHVAVBVCXNXCLXLXMBVDZXAXK
      XLXMBVEXPXNIVFZBPZJVFZBPZOZIJVGZQZJXLRZIXLRZLXAXKIJXLXMBVHXAYEXKXNXAYEEBP
      ZXTOZEXSOZQZJXLRZFBPZXTOZFXSOZQZJXLRZLZXKWSYEYPVIZWTWPWQYQWRYDYJYOIEFACXQ
      EOZYCYIJXLYRYAYGYBYHYRXRYFXTXQEBSVJXQEXSVKTVLXQFOZYCYNJXLYSYAYLYBYMYSXRYK
      XTXQFBSVJXQFXSVKTVLVMUHMXAYPYFYFOZEEOZQZYFYKOZXKQZLZYKYFOZFEOZQZYKYKOZFFO
      ZQZLZLZXKWSYPUUMVIZWTWPWQUUNWRXFYJUUEYOUULYIUUBUUDJEFACXSEOZYGYTYHUUAUUOX
      TYFYFXSEBSZVNXSEEVOTXSFOZYGUUCYHXKUUQXTYKYFXSFBSZVNXSFEVOTVMYNUUHUUKJEFAC
      UUOYLUUFYMUUGUUOXTYFYKUUPVNXSEFVOTUUQYLUUIYMUUJUUQXTYKYKUURVNXSFFVOTVMWCU
      HMXAUUEXKUULXAUUDXKUUBXAUUCXKXKXAYFGYKXAYFEXDPZGEBXDHVPXAWPWRWTKZUUSGOXAW
      PWRLZWTLUUTWSUVAWTWPWQWRVQVRWPWRWTVSUNEFGGADVTNWAXAYKFXDPZGFBXDHVPXAWQWRW
      TKZUVBGOXAWQWRLZWTLUVCWSUVDWTWPWQWRWDVRWQWRWTVSUNEFGGCDWENWFWGXAXKWBWHWIW
      JWKWKWIWLWMWNWOUI $.
  $}

  ${
    f1dom3fv3dif.v $e |- ( ph -> ( A e. X /\ B e. Y /\ C e. Z ) ) $.
    f1dom3fv3dif.n $e |- ( ph -> ( A =/= B /\ A =/= C /\ B =/= C ) ) $.
    f1dom3fv3dif.f $e |- ( ph -> F : { A , B , C } -1-1-> R ) $.
    $( The function values for a 1-1 function from a set with three different
       elements are different.  (Contributed by AV, 20-Mar-2019.) $)
    f1dom3fv3dif $p |- ( ph -> ( ( F ` A ) =/= ( F ` B )
                   /\ ( F ` A ) =/= ( F ` C ) /\ ( F ` B ) =/= ( F ` C ) ) ) $=
      ( cfv wne wcel wceq wb syl mpbird f1fveq simp1d ctp wf1 w3o 3mix1d 3mix2d
      eqidd eltpg simp2d syl12anc necon3bid simp3d tpid3g 3jca ) ABFMZCFMZNZUOD
      FMZNZUPURNZAUQBCNZAVABDNZCDNZKUAAUOUPBCABCDUBZEFUCZBVDOZCVDOZUOUPPBCPZQLA
      VFBBPZVHBDPZUDZAVIVHVJABUGUEABGOZVFVKQAVLCHOZDIOZJUABBCDGUHRSZAVGCBPZCCPZ
      CDPZUDZAVQVPVRACUGUFAVMVGVSQAVLVMVNJUICBCDHUHRSZVDEBCFTUJUKSAUSVBAVAVBVCK
      UIAUOURBDAVEVFDVDOZUOURPVJQLVOAVNWAAVLVMVNJULDIBCUMRZVDEBDFTUJUKSAUTVCAVA
      VBVCKULAUPURCDAVEVGWAUPURPVRQLVTWBVDECDFTUJUKSUN $.

    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d F x y z $.  $d R x y z $.
    $( The range of a 1-1 function from a set with three different elements has
       (at least) three different elements.  (Contributed by AV,
       20-Mar-2019.) $)
    f1dom3el3dif $p |- ( ph -> E. x e. R E. y e. R E. z e. R
                               ( x =/= y /\ x =/= z /\ y =/= z ) ) $=
      ( wcel w3a wne wceq syl cfv cv wrex ctp wf1 wf wi f1f wa simpr w3o 3mix1d
      eqidd wb simp1d mpbird adantr ffvelrnd 3mix2d simp2d simp3d tpid3g expcom
      eltpg mpcom f1dom3fv3dif neeq1 3anbi12d 3anbi13d 3anbi23d rspc3ev syl2anc
      3jca neeq2 ) AEIUAZHPZFIUAZHPZGIUAZHPZQZVOVQRZVOVSRZVQVSRZQZBUBZCUBZRZWFD
      UBZRZWGWIRZQZDHUCCHUCBHUCEFGUDZHIUEZAWAOWNWMHIUFZAWAUGWMHIUHAWOWAAWOUIZVP
      VRVTWPWMHEIAWOUJZAEWMPZWOAWREESZEFSZEGSZUKZAWSWTXAAEUMULAEJPZWRXBUNAXCFKP
      ZGLPZMUOEEFGJVDTUPUQURWPWMHFIWQAFWMPZWOAXFFESZFFSZFGSZUKZAXHXGXIAFUMUSAXD
      XFXJUNAXCXDXEMUTFEFGKVDTUPUQURWPWMHGIWQAGWMPZWOAXEXKAXCXDXEMVAGLEFVBTUQUR
      VMVCTVEAEFGHIJKLMNOVFWLWEVOWGRZVOWIRZWKQWBXMVQWIRZQBCDVOVQVSHHHWFVOSWHXLW
      JXMWKWFVOWGVGWFVOWIVGVHWGVQSXLWBWKXNXMWGVQVOVNWGVQWIVGVIWIVSSXMWCXNWDWBWI
      VSVOVNWIVSVQVNVJVKVL $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( A one-to-one function in terms of different function values for
       different arguments.  (Contributed by Alexander van der Vekens,
       26-Jan-2018.) $)
    dff14a $p |- ( F : A -1-1-> B <-> ( F : A --> B /\
             A. x e. A A. y e. A ( x =/= y -> ( F ` x ) =/= ( F ` y ) ) ) ) $=
      ( wf1 wf cv cfv wceq weq wi wral wa wne dff13 wn df-ne bicomi bitri
      con34b imbi12i 2ralbii anbi2i ) CDEFCDEGZAHZEIZBHZEIZJZABKZLZBCMACMZNUEUF
      UHOZUGUIOZLZBCMACMZNABCDEPUMUQUEULUPABCCULUKQZUJQZLUPUJUKUAURUNUSUOUNURUF
      UHRSUOUSUGUIRSUBTUCUDT $.

    $( A one-to-one function in terms of different function values for
       different arguments.  (Contributed by Alexander van der Vekens,
       26-Jan-2018.) $)
    dff14b $p |- ( F : A -1-1-> B <-> ( F : A --> B /\
             A. x e. A A. y e. ( A \ { x } ) ( F ` x ) =/= ( F ` y ) ) ) $=
      ( wf1 wf cv wne cfv wi wral wa csn cdif dff14a necom imbi1i ralbii bitri
      raldifsnb anbi2i ) CDEFCDEGZAHZBHZIZUDEJUEEJIZKZBCLZACLZMUCUGBCUDNOLZACLZ
      MABCDEPUJULUCUIUKACUIUEUDIZUGKZBCLUKUHUNBCUFUMUGUDUEQRSUGBCUDUATSUBT $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y X $.  $d x y Y $.
    f12dfv.a $e |- A = { X , Y } $.
    $( A one-to-one function with a domain with at least two different elements
       in terms of function values.  (Contributed by Alexander van der Vekens,
       2-Mar-2018.) $)
    f12dfv $p |- ( ( ( X e. U /\ Y e. V ) /\ X =/= Y )
      -> ( F : A -1-1-> B <-> ( F : A --> B /\ ( F ` X ) =/= ( F ` Y ) ) ) ) $=
      ( vx vy cfv wne csn cdif wral wa wb wceq fveq2 adantr wf1 wcel dff14b cpr
      wf cv raleqi sneq difeq2d neeq1d raleqbidv ralprg difeq1i difprsn1 syl5eq
      adantl raleqdv neeq2d ralsng bitrd difprsn2 anbi12d necom pm4.71i syl6bbr
      biimpi syl5bb anbi2d ) ABDUAABDUEZIUFZDKZJUFZDKZLZJAVJMZNZOZIAOZPFCUBZGEU
      BZPZFGLZPZVIFDKZGDKZLZPIJABDUCWCVRWFVIVRVQIFGUDZOZWCWFVQIAWGHUGWCWHWDVMLZ
      JAFMZNZOZWEVMLZJAGMZNZOZPZWFWAWHWQQWBVQWLWPIFGCEVJFRZVNWIJVPWKWRVOWJAVJFU
      HUIWRVKWDVMVJFDSUJUKVJGRZVNWMJVPWOWSVOWNAVJGUHUIWSVKWEVMVJGDSUJUKULTWCWQW
      FWEWDLZPWFWCWLWFWPWTWCWLWIJWNOZWFWCWIJWKWNWBWKWNRWAWBWKWGWJNWNAWGWJHUMFGU
      NUOUPUQWAXAWFQZWBVTXBVSWIWFJGEVLGRVMWEWDVLGDSURUSUPTUTWCWPWMJWJOZWTWCWMJW
      OWJWBWOWJRWAWBWOWGWNNWJAWGWNHUMFGVAUOUPUQWAXCWTQZWBVSXDVTWMWTJFCVLFRVMWDW
      EVLFDSURUSTTUTVBWFWTWFWTWDWEVCVFVDVEUTVGVHVG $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y X $.  $d x y Y $.  $d x y Z $.
    f13dfv.a $e |- A = { X , Y , Z } $.
    $( A one-to-one function with a domain with at least three different
       elements in terms of function values.  (Contributed by Alexander van der
       Vekens, 26-Jan-2018.) $)
    f13dfv $p |- ( ( ( X e. U /\ Y e. V /\ Z e. W )
                     /\ ( X =/= Y /\ X =/= Z /\ Y =/= Z ) )
        -> ( F : A -1-1-> B <-> ( F : A --> B /\ ( ( F ` X ) =/= ( F ` Y )
              /\ ( F ` X ) =/= ( F ` Z ) /\ ( F ` Y ) =/= ( F ` Z ) ) ) ) ) $=
      ( vx vy wne cdif wral wa w3a wceq fveq2 necom wf1 cfv csn wcel dff14b ctp
      wf cv raleqi wb sneq difeq2d neeq1d raleqbidv raltpg adantr difeq1i tprot
      cpr anbi12i biimpi 3adant3 diftpsn3 syl syl5eq adantl neeq2d ralprg bitrd
      raleqdv 3adant1 tpcomb anim2i 3adant2 3anbi123d ancom 3anbi2i 3an6 3anrot
      bicomi 3anbi123i anidm 3ancoma bitri 3bitri syl6bb syl5bb anbi2d ) ABDUAA
      BDUGZKUHZDUBZLUHZDUBZMZLAWJUCZNZOZKAOZPGCUDZHEUDZIFUDZQZGHMZGIMZHIMZQZPZW
      IGDUBZHDUBZMZXHIDUBZMZXIXKMZQZPKLABDUEXGWRXNWIWRWQKGHIUFZOZXGXNWQKAXOJUIX
      GXPXHWMMZLAGUCZNZOZXIWMMZLAHUCZNZOZXKWMMZLAIUCZNZOZQZXNXBXPYIUJXFWQXTYDYH
      KGHICEFWJGRZWNXQLWPXSYJWOXRAWJGUKULYJWKXHWMWJGDSUMUNWJHRZWNYALWPYCYKWOYBA
      WJHUKULYKWKXIWMWJHDSUMUNWJIRZWNYELWPYGYLWOYFAWJIUKULYLWKXKWMWJIDSUMUNUOUP
      XGYIXJXLPZXIXHMZXMPZXKXHMZXKXIMZPZQZXNXGXTYMYDYOYHYRXGXTXQLHIUSZOZYMXGXQL
      XSYTXFXSYTRXBXFXSXOXRNZYTAXOXRJUQXFUUBHIGUFZXRNZYTXOUUCXRGHIURUQXFHGMZIGM
      ZPZUUDYTRXCXDUUGXEXCXDPUUGXCUUEXDUUFGHTGITUTVAVBHIGVCVDVEVEVFVJXBUUAYMUJZ
      XFWTXAUUHWSXQXJXLLHIEFWLHRZWMXIXHWLHDSZVGWLIRZWMXKXHWLIDSZVGVHVKUPVIXGYDY
      ALGIUSZOZYOXGYALYCUUMXFYCUUMRXBXFYCXOYBNZUUMAXOYBJUQXFUUOGIHUFZYBNZUUMXOU
      UPYBGHIVLUQXFXCIHMZPZUUQUUMRXCXEUUSXDXEUURXCXEUURHITVAVMVNGIHVCVDVEVEVFVJ
      XBUUNYOUJZXFWSXAUUTWTYAYNXMLGICFWLGRZWMXHXIWLGDSZVGUUKWMXKXIUULVGVHVNUPVI
      XGYHYELGHUSZOZYRXGYELYGUVCXFYGUVCRXBXFYGXOYFNZUVCAXOYFJUQXDXEUVEUVCRXCGHI
      VCVKVEVFVJXBUVDYRUJZXFWSWTUVFXAYEYPYQLGHCEUVAWMXHXKUVBVGUUIWMXIXKUUJVGVHV
      BUPVIVOYSYMXMYNPZYRQXJXMYPQZXLYNYQQZPZXNYOUVGYMYRYNXMVPVQXJXLXMYNYPYQVRUV
      JYPXJXMQZUVKPUVKXNUVHUVKUVIUVKUVKUVHYPXJXMVSVTXLYPYNXJYQXMXHXKTXIXHTXKXIT
      WAUTUVKWBUVKXJYPXMQXNYPXJXMWCYPXLXJXMXKXHTVQWDWEWEWFVIWGWHWG $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( A one-to-one onto function in terms of function values.  (Contributed by
       NM, 29-Mar-2008.) $)
    dff1o6 $p |- ( F : A -1-1-onto-> B <-> ( F Fn A /\ ran F = B /\
             A. x e. A A. y e. A ( ( F ` x ) = ( F ` y ) -> x = y ) ) ) $=
      ( wf1o wf1 wfo wa wf cv cfv wceq wi wral wfn crn w3a df-f1o dff13 anbi12i
      df-fo df-3an wss eqimss anim2i df-f sylibr pm4.71ri anbi1i 3bitrri 3bitri
      an32 ) CDEFCDEGZCDEHZICDEJZAKZELBKZELMUQURMNBCOACOZIZECPZEQZDMZIZIZVAVCUS
      RZCDESUNUTUOVDABCDETCDEUBUAVFVDUSIUPVDIZUSIVEVAVCUSUCVDVGUSVDUPVDVAVBDUDZ
      IUPVCVHVAVBDUEUFCDEUGUHUIUJUPVDUSUMUKUL $.
  $}

  $( The converse value of the value of a one-to-one onto function.
     (Contributed by NM, 20-May-2004.) $)
  f1ocnvfv1 $p |- ( ( F : A -1-1-onto-> B /\ C e. A ) ->
                 ( `' F ` ( F ` C ) ) = C ) $=
    ( wf1o wcel wa ccnv ccom cfv cid cres wceq f1ococnv1 fveq1d adantr wf fvco3
    f1of sylan fvresi adantl 3eqtr3d ) ABDEZCAFZGCDHZDIZJZCKALZJZCDJUFJZCUDUHUJ
    MUEUDCUGUIABDNOPUDABDQUEUHUKMABDSABCUFDRTUEUJCMUDACUAUBUC $.

  $( The value of the converse value of a one-to-one onto function.
     (Contributed by NM, 20-May-2004.) $)
  f1ocnvfv2 $p |- ( ( F : A -1-1-onto-> B /\ C e. B ) ->
                 ( F ` ( `' F ` C ) ) = C ) $=
    ( wf1o wcel ccnv ccom cfv cid cres wceq f1ococnv2 fveq1d adantr f1ocnv f1of
    wa wf syl fvco3 sylan fvresi adantl 3eqtr3d ) ABDEZCBFZRCDDGZHZIZCJBKZIZCUH
    IDIZCUFUJULLUGUFCUIUKABDMNOUFBAUHSZUGUJUMLUFBAUHEUNABDPBAUHQTBACDUHUAUBUGUL
    CLUFBCUCUDUE $.

  $( Relationship between the value of a one-to-one onto function and the value
     of its converse.  (Contributed by Raph Levien, 10-Apr-2004.) $)
  f1ocnvfv $p |- ( ( F : A -1-1-onto-> B /\ C e. A ) ->
                  ( ( F ` C ) = D -> ( `' F ` D ) = C ) ) $=
    ( cfv wceq ccnv wf1o wcel wa fveq2 eqcoms f1ocnvfv1 eqeq2d syl5ib ) CEFZDGD
    EHZFZQRFZGZABEICAJKZSCGUADQDQRLMUBTCSABCENOP $.

  $( Relationship between the value of a one-to-one onto function and the value
     of its converse.  (Contributed by NM, 20-May-2004.) $)
  f1ocnvfvb $p |- ( ( F : A -1-1-onto-> B /\ C e. A /\ D e. B ) ->
                  ( ( F ` C ) = D <-> ( `' F ` D ) = C ) ) $=
    ( wf1o wcel w3a cfv wceq ccnv wi f1ocnvfv 3adant3 wa fveq2 eqcoms f1ocnvfv2
    eqeq2d syl5ib 3adant2 impbid ) ABEFZCAGZDBGZHCEIZDJZDEKIZCJZUCUDUGUILUEABCD
    EMNUCUEUIUGLUDUIUFUHEIZJZUCUEOZUGUKCUHCUHEPQULUJDUFABDERSTUAUB $.

  $( An involution is a bijection.  (Contributed by Thierry Arnoux,
     7-Dec-2016.) $)
  nvof1o $p |- ( ( F Fn A /\ `' F = F ) -> F : A -1-1-onto-> A ) $=
    ( wfn ccnv wceq wa wf1 wfo wf1o wfun cdm crn fnfun fdmrn sylib adantr df-rn
    wf fndm sylanbrc syl5eq sylan9eqr feq23d mpbid wb funeq adantl mpbird df-f1
    dmeq simpl df-fo df-f1o ) BACZBDZBEZFZAABGZAABHZAABIUQAABRZUOJZURUQBKZBLZBR
    ZUTUNVDUPUNBJZVDABMZBNOPUQVBVCAABUNVBAEUPABSZPUPUNVCVBAUPVCUOKVBBQUOBUJUAVG
    UBZUCUDUQVAVEUNVEUPVFPUPVAVEUEUNUOBUFUGUHAABUITUQUNVCAEUSUNUPUKVHAABULTAABU
    MT $.

  ${
    $d x y z A $.  $d x y z F $.
    $( The converse of an involution is the function itself.  (Contributed by
       Thierry Arnoux, 7-May-2019.) $)
    nvocnv $p |- ( ( F : A --> A /\ A. x e. A ( F ` ( F ` x ) ) = x )
      -> `' F = F ) $=
      ( vz vy cv cfv wceq wa cmpt ccnv wcel simprr simpll simprl eqeltrd fveq2d
      ffvelrnd simplr fveq2 wf wral id eqeq12d rspcv sylc eqtr2d impbida mptcnv
      jca wfn ffn dffn5 biimpi adantr sylan cnveqd 3eqtr4d ) BBCUAZAFZCGZCGZUTH
      ZABUBZIZDBDFZCGZJZKEBEFZCGZJZCKCVEDEBVGBVJVEVFBLZVIVGHZIZVIBLZVFVJHZIZVEV
      NIZVOVPVRVIVGBVEVLVMMZVRBBVFCUSVDVNNVEVLVMOZRPVRVJVGCGZVFVRVIVGCVSQVRVLVD
      WAVFHZVTUSVDVNSVCWBAVFBUTVFHZVBWAUTVFWCVAVGCUTVFCTQWCUCUDUEUFUGUJVEVQIZVL
      VMWDVFVJBVEVOVPMZWDBBVICUSVDVQNVEVOVPOZRPWDVGVJCGZVIWDVFVJCWEQWDVOVDWGVIH
      ZWFUSVDVQSVCWHAVIBUTVIHZVBWGUTVIWIVAVJCUTVICTQWIUCUDUEUFUGUJUHUIVECVHUSCB
      UKZVDCVHHZBBCULZWJWKVDWJWKDBCUMUNUOUPUQUSWJVDCVKHZWLWJWMVDWJWMEBCUMUNUOUP
      UR $.
  $}

  ${
    $d A f x $.  $d D f x $.  $d V f x $.  $d f ps $.  $d ph x $.
    $( TODO - there must be a more elegant way to prove this theorem using
       ~ exxfr $)
    fsnex.1 $e |- ( x = ( f ` A ) -> ( ps <-> ph ) ) $.
    $( Relate a function with a singleton as domain and one variable.
       (Contributed by Thierry Arnoux, 12-Jul-2020.) $)
    fsnex $p |- ( A e. V
      -> ( E. f ( f : { A } --> D /\ ph ) <-> E. x e. D ps ) ) $=
      ( wcel csn cv wf wa wex cfv cop wceq ex cvv mpan2 simprbda adantrr adantl
      wrex fsn2g simprr rspcedvd exlimdv imp nfv nfre1 nfan wss wf1o vex f1osng
      ad3antrrr f1of syl simplr snssd fss syl2anc fvsng eqcomd snex feq1 eqeq2d
      wb fveq1 anbi12d spcev simprl simpllr simplrr mpbid mpdan eximdv r19.29af
      jca mpd simpr impbida ) DGIZDJZEFKZLZAMZFNZBCEUDZWDWIWJWDWHWJFWDWHWJWDWHM
      ZBACDWFOZEWDWGWLEIZAWDWGWMWFDWLPJQDEWFGUEUAUBCKZWLQZBAVIZWKHUCWDWGAUFUGRU
      HUIWDWJMZBWICEWDWJCWDCUJBCEUKULWQWNEIZMZBMZWGWOMZFNZWIWTWEEDWNPZJZLZWNDXD
      OZQZXBWTWEWNJZXDLZXHEUMXEWTWEXHXDUNZXIWDXJWJWRBWDWNSIZXJCUOZDWNGSUPTUQWEX
      HXDURUSWTWNEWQWRBUTVAWEXHEXDVBVCWDXGWJWRBWDXFWNWDXKXFWNQXLDWNGSVDTVEUQXAX
      EXGMFXDXCVFWFXDQZWGXEWOXGWEEWFXDVGXMWLXFWNDWFXDVJVHVKVLVCWTXAWHFWTXAWHWTX
      AMZWGAWTWGWOVMZXNWGAXOXNWGMZBAWSBXAWGVNXPWOWPWTWGWOWGVOHUSVPVQVTRVRWAWDWJ
      WBVSWC $.
  $}

  ${
    $d A f x y $.  $d B f x y $.  $d D f x y $.  $d V f x y $.  $d W f x y $.
    $d ch x $.  $d ps f $.  $d ph x y $.
    f1prex.1 $e |- ( x = ( f ` A ) -> ( ps <-> ch ) ) $.
    f1prex.2 $e |- ( y = ( f ` B ) -> ( ch <-> ph ) ) $.
    $( Relate a one-to-one function with a pair as domain and two different
       variables.  (Contributed by Thierry Arnoux, 12-Jul-2020.) $)
    f1prex $p |- ( ( A e. V /\ B e. W /\ A =/= B )
      -> ( E. f ( f : { A , B } -1-1-> D /\ ph )
        <-> E. x e. D E. y e. D ( x =/= y /\ ps ) ) ) $=
      ( wcel wne w3a wa syl wceq jca cpr cv wf1 wex cfv wf simpl1 simpl2 simprl
      f1f cop fpr2g biimpa simp1d syl21anc simp2d prid1g prid2g simpl3 f1veqaeq
      wrex necon3d imp simprr neeq1 anbi12d rspc2ev syl3anc ex exlimdv wss wf1o
      neeq2 simpll1 simplrl simpll2 simplrr simpll3 f1oprg syl22anc f1of1 prssi
      syl2anc f1ss fvpr1g eqcomd fvpr2g prex f1eq1 fveq1 spcev syl12anc simprrl
      eqeq2d wb mpbid simprrr eximdv mpd rexlimdvva impbida ) FJNZGKNZFGOZPZFGU
      AZHIUBZUCZAQZIUDZDUBZEUBZOZBQZEHVADHVAZXEXJXOXEXIXOIXEXIXOXEXIQZFXGUEZHNZ
      GXGUEZHNZXQXSOZAQZXOXPXBXCXFHXGUFZXRXBXCXDXIUGZXBXCXDXIUHZXPXHYCXEXHAUIZX
      FHXGUJRZXBXCQZYCQZXRXTXGFXQUKGXSUKUASZYHYCXRXTYJPFGHXGJKULUMZUNUOXPXBXCYC
      XTYDYEYGYIXRXTYJYKUPUOXPYAAXPXHFXFNZGXFNZQZXDYAYFXPYLYMXPXBYLYDFGJUQRXPXC
      YMYEFGKURRTXBXCXDXIUSXHYNQZXDYAYOXQXSFGXFHFGXGUTVBVCUOXEXHAVDTXNYBXQXLOZC
      QDEXQXSHHXKXQSZXMYPBCXKXQXLVELVFXLXSSZYPYACAXLXSXQVMMVFVGVHVIVJVCXEXOXJXE
      XNXJDEHHXEXKHNZXLHNZQZQZXNXJUUBXNQZXHYQYRQZQZIUDZXJUUCXFHFXKUKZGXLUKZUAZU
      CZXKFUUIUEZSZXLGUUIUEZSZUUFUUCXFXKXLUAZUUIUCZUUOHVKZUUJUUCXFUUOUUIVLZUUPU
      UCXBYSQZXCYTQZXDXMUURUUCXBYSXBXCXDUUAXNVNZXEYSYTXNVOZTUUCXCYTXBXCXDUUAXNV
      PZXEYSYTXNVQZTXBXCXDUUAXNVRZUUBXMBUIUUSUUTQXDXMQUURFXKGXLJHKHVSVCVTXFUUOU
      UIWARUUCYSYTUUQUVBUVDXKXLHWBWCXFUUOHUUIWDWCUUCXBYSXDUULUVAUVBUVEXBYSXDPUU
      KXKFGXKXLJHWEWFVHUUCXCYTXDUUNUVCUVDUVEXCYTXDPUUMXLFGXKXLKHWGWFVHUUEUUJUUL
      UUNQZQIUUIUUGUUHWHXGUUISZXHUUJUUDUVFXFHXGUUIWIUVGYQUULYRUUNUVGXQUUKXKFXGU
      UIWJWNUVGXSUUMXLGXGUUIWJWNVFVFWKWLUUCUUEXIIUUCUUEXIUUCUUEQZXHAUUCXHUUDUIU
      VHCAUVHBCUUBXMBUUEVQUVHYQBCWOUUCXHYQYRWMLRWPUVHYRCAWOUUCXHYQYRWQMRWPTVIWR
      WSVIWTVCXA $.
  $}

  $( The value of the converse of a one-to-one onto function belongs to its
     domain.  (Contributed by NM, 26-May-2006.) $)
  f1ocnvdm $p |- ( ( F : A -1-1-onto-> B /\ C e. B ) ->
                    ( `' F ` C ) e. A ) $=
    ( wf1o ccnv wf f1ocnv f1of syl ffvelrnda ) ABDEZBACDFZLBAMEBAMGABDHBAMIJK
    $.

  $( If the values of a one-to-one function for two arguments from the range of
     the function are equal, the arguments themselves must be equal.
     (Contributed by Alexander van der Vekens, 12-Nov-2017.) $)
  f1ocnvfvrneq $p |- ( ( F : A -1-1-> B /\ ( C e. ran F /\ D e. ran F ) ) ->
                  ( ( `' F ` C ) = ( `' F ` D ) -> C = D ) ) $=
    ( wf1 crn wcel wa ccnv cfv wceq wi wf1o f1f1orn f1ocnv f1of1 f1veqaeq 4syl
    ex imp ) ABEFZCEGZHDUCHIZCEJZKDUEKLCDLMZUBAUCENUCAUENUCAUEFZUDUFMABEOAUCEPU
    CAUEQUGUDUFUCACDUERTSUA $.

  ${
    $d A x y $.  $d B x y $.  $d F x y $.  $d R x y $.
    $( An application is injective if a retraction exists.  Proposition 8 of
       [BourbakiEns] p.  E.II.18.  (Contributed by FL, 11-Nov-2011.)  (Revised
       by Mario Carneiro, 27-Dec-2014.) $)
    fcof1 $p |- ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) )
         -> F : A -1-1-> B ) $=
      ( vx vy wf ccom wceq wa cfv wral wcel fvco3 syl2anc fveq1d 3eqtr3d fvresi
      cv syl cid cres wi wf1 simpl simprr fveq2d simpll simprll simprlr 3eqtr4d
      simplr expr ralrimivva dff13 sylanbrc ) ABDGZCDHZUAAUBZIZJZUQESZDKZFSZDKZ
      IZVBVDIZUCZFALEALABDUDUQUTUEVAVHEFAAVAVBAMZVDAMZJZVFVGVAVKVFJZJZVBUSKZVDU
      SKZVBVDVMVBURKZVDURKZVNVOVMVCCKZVECKZVPVQVMVCVECVAVKVFUFUGVMUQVIVPVRIUQUT
      VLUHZVAVIVJVFUIZABVBCDNOVMUQVJVQVSIVTVAVIVJVFUJZABVDCDNOUKVMVBURUSUQUTVLU
      LZPVMVDURUSWCPQVMVIVNVBIWAAVBRTVMVJVOVDIWBAVDRTQUMUNEFABDUOUP $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d F x y $.  $d S x y $.
    $( An application is surjective if a section exists.  Proposition 8 of
       [BourbakiEns] p.  E.II.18.  (Contributed by FL, 17-Nov-2011.)  (Proof
       shortened by Mario Carneiro, 27-Dec-2014.) $)
    fcofo $p |- ( ( F : A --> B /\ S : B --> A /\ ( F o. S ) = ( _I |` B ) )
         -> F : A -onto-> B ) $=
      ( vy vx wf ccom cid cres wceq w3a cfv wrex wral wfo simp1 wcel 3ad2antl2
      cv ffvelrn simpl3 fveq1d fvco3 fvresi adantl 3eqtr3rd fveq2 eqeq2d rspcev
      wa syl2anc ralrimiva dffo3 sylanbrc ) ABDGZBACGZDCHZIBJZKZLZUPETZFTZDMZKZ
      FANZEBOABDPUPUQUTQVAVFEBVAVBBRZUKZVBCMZARZVBVIDMZKZVFUQUPVGVJUTBAVBCUASVH
      VBURMZVBUSMZVKVBVHVBURUSUPUQUTVGUBUCUQUPVGVMVKKUTBAVBDCUDSVGVNVBKVABVBUEU
      FUGVEVLFVIAVCVIKVDVKVBVCVIDUHUIUJULUMFEABDUNUO $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y F $.  $d y ph $.  $d x ps $.
    cbvfo.1 $e |- ( ( F ` x ) = y -> ( ph <-> ps ) ) $.
    $( Change bound variable between domain and range of function.
       (Contributed by NM, 23-Feb-1997.)  (Proof shortened by Mario Carneiro,
       21-Mar-2015.) $)
    cbvfo $p |- ( F : A -onto-> B -> ( A. x e. A ph <-> A. y e. B ps ) ) $=
      ( wfo crn wral wfn wb fofn cv cfv wceq bicomd eqcoms ralrn raleqdv bitr3d
      syl forn ) EFGIZBDGJZKZACEKZBDFKUEGELUGUHMEFGNBADCEGBAMCOGPZDOZUIUJQABHRS
      TUCUEBDUFFEFGUDUAUB $.

    $( Change bound variable between domain and range of function.
       (Contributed by NM, 23-Feb-1997.) $)
    cbvexfo $p |- ( F : A -onto-> B -> ( E. x e. A ph <-> E. y e. B ps ) ) $=
      ( wfo wn wral wrex cv cfv wceq notbid cbvfo dfrex2 3bitr4g ) EFGIZAJZCEKZ
      JBJZDFKZJACELBDFLTUBUDUAUCCDEFGCMGNDMOABHPQPACERBDFRS $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.  $d F x $.  $d H x $.  $d K x $.
    $( An injection is left-cancelable.  (Contributed by FL, 2-Aug-2009.)
       (Revised by Mario Carneiro, 21-Mar-2015.) $)
    cocan1 $p |- ( ( F : B -1-1-> C /\ H : A --> B /\ K : A --> B ) ->
      ( ( F o. H ) = ( F o. K ) <-> H = K ) ) $=
      ( vx wf ccom cfv wceq wral wcel fvco3 3ad2antl2 wb wfn ffn syl syl2anc cv
      wf1 wa 3ad2antl3 eqeq12d simpl1 ffvelrn f1fveq syl12anc ralbidva 3ad2ant1
      w3a bitrd f1f simp2 fnfco simp3 eqfnfv 3bitr4d ) BCDUBZABEHZABFHZULZGUAZD
      EIZJZVDDFIZJZKZGALZVDEJZVDFJZKZGALZVEVGKZEFKZVCVIVMGAVCVDAMZUCZVIVKDJZVLD
      JZKZVMVRVFVSVHVTVAUTVQVFVSKVBABVDDENOVBUTVQVHVTKVAABVDDFNUDUEVRUTVKBMZVLB
      MZWAVMPUTVAVBVQUFVAUTVQWBVBABVDEUGOVBUTVQWCVAABVDFUGUDBCVKVLDUHUIUMUJVCVE
      AQZVGAQZVOVJPVCDBQZVAWDVCBCDHZWFUTVAWGVBBCDUNUKBCDRSZUTVAVBUOZBADEUPTVCWF
      VBWEWHUTVAVBUQZBADFUPTGAVEVGURTVCEAQZFAQZVPVNPVCVAWKWIABERSVCVBWLWJABFRSG
      AEFURTUS $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.  $d x y H $.  $d x y K $.
    $( A surjection is right-cancelable.  (Contributed by FL, 21-Nov-2011.)
       (Proof shortened by Mario Carneiro, 21-Mar-2015.) $)
    cocan2 $p |- ( ( F : A -onto-> B /\ H Fn B /\ K Fn B ) ->
      ( ( H o. F ) = ( K o. F ) <-> H = K ) ) $=
      ( vy vx wfn cv ccom cfv wceq wral 3ad2ant1 fvco3 sylan eqeq12d wb syl2anc
      fveq2 wfo w3a wcel wa fof ralbidva cbvfo bitrd simp2 fnfco eqfnfv 3bitr4d
      wf simp3 ) ABCUAZDBHZEBHZUBZFIZDCJZKZUSECJZKZLZFAMZGIZDKZVFEKZLZGBMZUTVBL
      ZDELZURVEUSCKZDKZVMEKZLZFAMZVJURVDVPFAURUSAUCZUDVAVNVCVOURABCUMZVRVAVNLUO
      UPVSUQABCUENZABUSDCOPURVSVRVCVOLVTABUSECOPQUFUOUPVQVJRUQVPVIFGABCVMVFLVNV
      GVOVHVMVFDTVMVFETQUGNUHURUTAHZVBAHZVKVERURUPVSWAUOUPUQUIZVTBADCUJSURUQVSW
      BUOUPUQUNZVTBAECUJSFAUTVBUKSURUPUQVLVJRWCWDGBDEUKSUL $.
  $}

  ${
    fcof1oinvd.f $e |- ( ph -> F : A -1-1-onto-> B ) $.
    fcof1oinvd.g $e |- ( ph -> G : B --> A ) $.
    fcof1oinvd.b $e |- ( ph -> ( F o. G ) = ( _I |` B ) ) $.
    $( Show that a function is the inverse of a bijective function if their
       composition is the identity function.  Formerly part of proof of
       ~ fcof1o .  (Contributed by Mario Carneiro, 21-Mar-2015.)  (Revised by
       AV, 15-Dec-2019.) $)
    fcof1oinvd $p |- ( ph -> `' F = G ) $=
      ( ccnv ccom cid cres coeq2d coass wf1o wceq f1ococnv1 syl coeq1d wf fcoi2
      eqtrd syl5eqr f1ocnv f1of fcoi1 3eqtr3rd ) ADIZDEJZJZUHKCLZJZEUHAUIUKUHHM
      AUJUHDJZEJZEUHDENAUNKBLZEJZEAUMUOEABCDOZUMUOPFBCDQRSACBETUPEPGCBEUARUBUCA
      CBUHTZULUHPACBUHOZURAUQUSFBCDUDRCBUHUERCBUHUFRUG $.
  $}

  ${
    fcof1od.f $e |- ( ph -> F : A --> B ) $.
    fcof1od.g $e |- ( ph -> G : B --> A ) $.
    fcof1od.a $e |- ( ph -> ( G o. F ) = ( _I |` A ) ) $.
    fcof1od.b $e |- ( ph -> ( F o. G ) = ( _I |` B ) ) $.
    $( A function is bijective if a "retraction" and a "section" exist, see
       comments for ~ fcof1 and ~ fcofo .  Formerly part of proof of ~ fcof1o .
       (Contributed by Mario Carneiro, 21-Mar-2015.)  (Revised by AV,
       15-Dec-2019.) $)
    fcof1od $p |- ( ph -> F : A -1-1-onto-> B ) $=
      ( wf1 wfo wf1o wf ccom cid cres wceq fcof1 syl2anc fcofo syl3anc sylanbrc
      df-f1o ) ABCDJZBCDKZBCDLABCDMZEDNOBPQUDFHBCEDRSAUFCBEMDENOCPQUEFGIBCEDTUA
      BCDUCUB $.

    $( Show that a function is the inverse of a function if their compositions
       are the identity functions.  (Contributed by Mario Carneiro,
       21-Mar-2015.)  (Revised by AV, 15-Dec-2019.) $)
    2fcoidinvd $p |- ( ph -> `' F = G ) $=
      ( fcof1od fcof1oinvd ) ABCDEABCDEFGHIJGIK $.
  $}

  $( Show that two functions are inverse to each other by computing their
     compositions.  (Contributed by Mario Carneiro, 21-Mar-2015.)  (Proof
     shortened by AV, 15-Dec-2019.) $)
  fcof1o $p |- ( ( ( F : A --> B /\ G : B --> A ) /\
      ( ( F o. G ) = ( _I |` B ) /\ ( G o. F ) = ( _I |` A ) ) ) ->
      ( F : A -1-1-onto-> B /\ `' F = G ) ) $=
    ( wf wa ccom cid cres wceq wf1o ccnv simpll simplr simprr simprl 2fcoidinvd
    fcof1od jca ) ABCEZBADEZFZCDGHBIJZDCGHAIJZFZFZABCKCLDJUFABCDTUAUEMZTUAUENZU
    BUCUDOZUBUCUDPZRUFABCDUGUHUIUJQS $.

  ${
    $d A a x $.  $d B x $.  $d F a x $.  $d G a x $.  $d ph x $.
    2fvcoidd.f $e |- ( ph -> F : A --> B ) $.
    2fvcoidd.g $e |- ( ph -> G : B --> A ) $.
    2fvcoidd.i $e |- ( ph -> A. a e. A ( G ` ( F ` a ) ) = a ) $.
    $( Show that the composition of two functions is the identity function by
       applying both functions to each value of the domain of the first
       function.  (Contributed by AV, 15-Dec-2019.) $)
    2fvcoidd $p |- ( ph -> ( G o. F ) = ( _I |` A ) ) $=
      ( vx ccom cv cfv cmpt cid cres wf wceq fcompt syl2anc wcel wral weq fveq2
      wi fveq2d id eqeq12d rspccv syl imp mpteq2dva mptresid syl6eq eqtrd ) AED
      KZJBJLZDMZEMZNZOBPZACBEQBCDQUPUTRHGJEDBCBSTAUTJBUQNVAAJBUSUQAUQBUAZUSUQRZ
      AFLZDMZEMZVDRZFBUBVBVCUEIVGVCFUQBFJUCZVFUSVDUQVHVEUREVDUQDUDUFVHUGUHUIUJU
      KULJBUMUNUO $.

    $d B b $.  $d F b $.  $d G b $.
    2fvidf1od.i $e |- ( ph -> A. b e. B ( F ` ( G ` b ) ) = b ) $.
    $( A function is bijective if it has an inverse function.  (Contributed by
       AV, 15-Dec-2019.) $)
    2fvidf1od $p |- ( ph -> F : A -1-1-onto-> B ) $=
      ( 2fvcoidd fcof1od ) ABCDEHIABCDEFHIJLACBEDGIHKLM $.

    $( Show that two functions are inverse to each other by applying them twice
       to each value of their domains.  (Contributed by AV, 13-Dec-2019.) $)
    2fvidinvd $p |- ( ph -> `' F = G ) $=
      ( 2fvcoidd 2fcoidinvd ) ABCDEHIABCDEFHIJLACBEDGIHKLM $.
  $}

  ${
    $d F x y $.  $d G x y $.  $d A x y $.  $d B x y $.
    $( Condition for function equality in terms of vanishing of the composition
       with the converse. _EDITORIAL_:  Is there a relation-algebraic proof of
       this?  (Contributed by Stefan O'Rear, 12-Feb-2015.) $)
    foeqcnvco $p |- ( ( F : A -onto-> B /\ G : A -onto-> B ) ->
        ( F = G <-> ( F o. `' G ) = ( _I |` B ) ) ) $=
      ( vx vy wfo wa wceq ccnv ccom adantr wfn fofn ad2antlr cv wcel cfv sylibr
      wbr cid wi fococnv2 cnveq coeq2d eqeq1d syl5ibcom ad2antrr wex cop adantl
      cres fnopfv sylan vex brcnv df-br bitri breq2 breq1 anbi12d spcev syl2anc
      fvex weq brco adantlr wb breq mpbid wf ffvelrnda resieq eqcomd eqfnfvd ex
      fof impbid ) ABCGZABDGZHZCDIZCDJZKZUABULZIZVSWBWFUBVTVSCCJZKZWEIWBWFABCUC
      WBWHWDWEWBWGWCCCDUDUEUFUGLWAWFWBWAWFHZEACDVSCAMZVTWFABCNZUHVTDAMZVSWFABDN
      ZOWIEPZAQZHZWNDRZWNCRZWPWQWRWETZWQWRIZWPWQWRWDTZWSWAWOXAWFWAWOHZWQFPZWCTZ
      XCWRCTZHZFUIZXAXBWQWNWCTZWNWRCTZXGXBWNWQUJDQZXHWAWLWOXJVTWLVSWMUKAWNDUMUN
      XHWNWQDTXJWQWNDWNDVDZEUOZUPWNWQDUQURSXBWNWRUJCQZXIWAWJWOXMVSWJVTWKLAWNCUM
      UNWNWRCUQSXFXHXIHFWNXLFEVEXDXHXEXIXCWNWQWCUSXCWNWRCUTVAVBVCFWQWRCWCXKWNCV
      DVFSVGWFXAWSVHWAWOWQWRWDWEVIOVJWAWOWSWTVHZWFXBWQBQWRBQXNWAABWNDVTABDVKVSA
      BDVQUKVLWAABWNCVSABCVKVTABCVQLVLBWQWRVMVCVGVJVNVOVPVR $.

    $( Condition for function equality in terms of vanishing of the composition
       with the inverse.  (Contributed by Stefan O'Rear, 12-Feb-2015.) $)
    f1eqcocnv $p |- ( ( F : A -1-1-> B /\ G : A -1-1-> B ) ->
        ( F = G <-> ( `' F o. G ) = ( _I |` A ) ) ) $=
      ( vx vy wf1 wa wceq ccom wi adantr wfn f1fn adantl cv wcel wbr wb syl cid
      ccnv cres f1cocnv1 coeq2 eqeq1d syl5ibcom equid resieq mpbiri anidms breq
      cfv ad2antlr mpbird wex cop wfun cdm fndm eleq2d biimpar funopfvb syl2anc
      fnfun bicomd df-br eqcom 3bitr4g biimpd syl6rbbr vex brcnv anim12d eximdv
      brco fvex eqvinc 3imtr4g adantlr mpd eqfnfvd eqcomd ex impbid ) ABCGZABDG
      ZHZCDIZCUBZDJZUAAUCZIZWFWIWMKWGWFWJCJZWLIWIWMABCUDWIWNWKWLCDWJUEUFUGLWHWM
      WIWHWMHZDCWOEADCWHDAMZWMWGWPWFABDNOZLWHCAMZWMWFWRWGABCNLZLWOEPZAQZHZWTWTW
      KRZWTDUMZWTCUMZIZXBXCWTWTWLRZXAXGWOXAXGXAXAHXGWTWTIEUHAWTWTUIUJUKOWMXCXGS
      WHXAWTWTWKWLULUNUOWHXAXCXFKWMWHXAHZWTFPZDRZXIWTWJRZHZFUPXIXDIZXIXEIZHZFUP
      XCXFXHXLXOFXHXJXMXKXNXHXJXMXHWTXIUQZDQZXDXIIZXJXMXHXRXQXHDURZWTDUSZQZXRXQ
      SWHXSXAWHWPXSWQADVETLWHYAXAWHXTAWTWHWPXTAIWQADUTTVAVBWTXIDVCVDVFWTXIDVGXI
      XDVHVIVJXHXKXNXHWTXICRZXEXIIZXKXNXHYCXPCQZYBXHCURZWTCUSZQZYCYDSWHYEXAWHWR
      YEWSACVETLWHYGXAWHYFAWTWHWRYFAIWSACUTTVAVBWTXICVCVDWTXICVGVKXIWTCFVLEVLZV
      MXIXEVHVIVJVNVOFWTWTWJDYHYHVPFXDXEWTDVQVRVSVTWAWBWCWDWE $.
  $}

  ${
    fveqf1o.1 $e |- G = ( F o. ( ( _I |` ( A \ { C , ( `' F ` D ) } ) ) u.
      { <. C , ( `' F ` D ) >. , <. ( `' F ` D ) , C >. } ) ) $.
    $( Given a bijection ` F ` , produce another bijection ` G ` which
       additionally maps two specified points.  (Contributed by Mario Carneiro,
       30-May-2015.) $)
    fveqf1o $p |- ( ( F : A -1-1-onto-> B /\ C e. A /\ D e. B ) ->
      ( G : A -1-1-onto-> B /\ ( G ` C ) = D ) ) $=
      ( wf1o wcel cfv wceq cpr cop cun cin a1i syl2anc wb syl eqtrd w3a ccnv c0
      cid cdif cres ccom simp1 f1oi simp2 wf f1of 3syl simp3 ffvelrnd f1oprswap
      f1ocnv incom disjdif eqtri f1oun syl22anc uncom prssi undif syl5eq f1oeq2
      wss sylib mpbid f1oeq3 f1oco f1oeq1 ax-mp sylibr fveq1i wfn fnresi prid1g
      fvco3 f1ofn fvun2 syl112anc wfun f1ofun opex funopfv mpisyl f1ocnvfv2 jca
      prid1 fveq2d ) ABEHZCAIZDBIZUAZABFHZCFJZDKWPABEUDACDEUBZJZLZUEZUFZCWTMZWT
      CMZLZNZUGZHZWQWPWMAAXGHZXIWMWNWOUHZWPAXBXANZXGHZXJWPXLXLXGHZXMWPXBXBXCHZX
      AXAXFHZXBXAOZUCKZXRXNXOWPXBUIPWPWNWTAIZXPWMWNWOUJZWPBADWSWPWMBAWSHBAWSUKX
      KABEUQBAWSULUMWMWNWOUNZUOZCWTAAUPQZXRWPXQXAXBOUCXBXAURXAAUSUTPZYDXBXBXAXA
      XCXFVAVBWPXLAKZXNXMRWPXLXAXBNZAXBXAVCWPXAAVHZYFAKWPWNXSYGXTYBCWTAVDQXAAVE
      VIVFZXLAXLXGVGSVJWPYEXMXJRYHXLAAXGVKSVJZAABEXGVLQFXHKWQXIRGABFXHVMVNVOWPW
      RCXGJZEJZDWPWRCXHJZYKCFXHGVPWPAAXGUKZWNYLYKKWPXJYMYIAAXGULSXTAACEXGVTQVFW
      PYKWTEJZDWPYJWTEWPYJCXFJZWTWPXCXBVQZXFXAVQZXRCXAIZYJYOKYPWPXBVRPWPXPYQYCX
      AXAXFWASYDWPWNYRXTCWTAVSSXBXAXCXFCWBWCWPXFWDZXDXFIYOWTKWPXPYSYCXAXAXFWESX
      DXECWTWFWKCWTXFWGWHTWLWPWMWOYNDKXKYAABDEWIQTTWJ $.
  $}

  ${
    $d u v y z A $.  $d u v y z B $.  $d u v x z C $.  $d x y z R $.  $d x Y $.
    $d u v x z D $.  $d u v y z F $.  $d u v x y z ph $.  $d u v x y z X $.
    $d x y z S $.
    flift.1 $e |- F = ran ( x e. X |-> <. A , B >. ) $.
    flift.2 $e |- ( ( ph /\ x e. X ) -> A e. R ) $.
    flift.3 $e |- ( ( ph /\ x e. X ) -> B e. S ) $.
    $( ` F ` , a function lift, is a subset of ` R X. S ` .  (Contributed by
       Mario Carneiro, 23-Dec-2016.) $)
    fliftrel $p |- ( ph -> F C_ ( R X. S ) ) $=
      ( cop cmpt crn cxp wf wss cv wcel wa opelxpi syl2anc eqid fmptd syl5eqss
      frn syl ) AGBHCDLZMZNZEFOZIAHUKUIPUJUKQABHUHUKUIABRHSTCESDFSUHUKSJKCDEFUA
      UBUIUCUDHUKUIUFUGUE $.

    $( Elementhood in the relation ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    fliftel $p |- ( ph -> ( C F D <-> E. x e. X ( C = A /\ D = B ) ) ) $=
      ( wbr cop wceq wrex wa wcel cmpt crn df-br eleq2i eqid elrnmpti 3bitri cv
      opex wb opthg2 syl2anc rexbidva syl5bb ) EFINZEFOZCDOZPZBJQZAECPFDPRZBJQU
      NUOISUOBJUPTZUAZSUREFIUBIVAUOKUCBJUPUOUTUTUDCDUHUEUFAUQUSBJABUGJSRCGSDHSU
      QUSUILMEFCDGHUJUKULUM $.

    $( Elementhood in the relation ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    fliftel1 $p |- ( ( ph /\ x e. X ) -> A F B ) $=
      ( cv wcel wa cop wbr cmpt crn cvv opex eqid mpan2 adantl syl6eleqr sylibr
      elrnmpt1 df-br ) ABLHMZNZCDOZGMCDGPUIUJBHUJQZRZGUHUJULMZAUHUJSMUMCDTBHUJU
      KSUKUAUFUBUCIUDCDGUGUE $.

    $( Converse of the relation ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    fliftcnv $p |- ( ph -> `' F = ran ( x e. X |-> <. B , A >. ) ) $=
      ( vy vz wrel cop wa wceq cv wbr wcel ccnv cmpt crn cxp wss fliftrel relxp
      eqid relss mpisyl relcnv jctil wrex fliftel vex brcnv ancom rexbii bitr4d
      3bitr4g df-br 3bitr3g eqrelrdv2 mpancom ) GUAZNZBHDCOUBUCZNZPAVEVGQAVHVFA
      VGFEUDZUEVINVHABDCFEVGHVGUHZKJUFFEUGVGVIUIUJGUKULALMVEVGALRZMRZVESZVKVLVG
      SZVKVLOZVETVOVGTAVMVKDQZVLCQZPZBHUMZVNAVLVKGSVQVPPZBHUMVMVSABCDVLVKEFGHIJ
      KUNVKVLGLUOMUOUPVRVTBHVPVQUQURUTABDCVKVLFEVGHVJKJUNUSVKVLVEVAVKVLVGVAVBVC
      VD $.

    ${
      fliftfun.4 $e |- ( x = y -> A = C ) $.
      fliftfun.5 $e |- ( x = y -> B = D ) $.
      $( The function ` F ` is the unique function defined by ` F `` A = B ` ,
         provided that the well-definedness condition holds.  (Contributed by
         Mario Carneiro, 23-Dec-2016.) $)
      fliftfun $p |- ( ph -> ( Fun F <->
        A. x e. X A. y e. X ( A = C -> B = D ) ) ) $=
        ( wceq cv wa wrex vz vu vv wfun wi wral nfv cop cmpt nfmpt1 nfrn nfcxfr
        crn nffun wcel cfv fveq2 wbr simplr fliftel1 ad2ant2r sylc simprr eqidd
        funbrfv eqeq2d anbi12d rspcev syl12anc wb fliftel mpbird eqeq12d syl5ib
        anassrs ralrimiva exp31 ralrimd wal cbvrexv syl6bb biimpd reeanv r19.29
        ad2antrr eqtr2 imim1i imp simprlr simprrr 3eqtr4d rexlimivw syl syl5bir
        ex syl9 alrimdv wrel cxp wss fliftrel relxp relss mpisyl dffun2 sylibrd
        baib impbid ) AJUDZDFQZEGQZUEZCKUFZBKUFZAXIXMBKABUGBJBJBKDEUHZUIZUMLBXP
        BKXOUJUKULUNAXIBRZKUOZXMAXISZXRSXLCKXSXRCRZKUOZXLXJDJUPZFJUPZQXSXRYASZS
        ZXKDFJUQYEYBEYCGYEXIDEJURZYBEQAXIYDUSZAXRYFXIYAABDEHIJKLMNUTVADEJVEVBYE
        XIFGJURZYCGQYGYEYHFDQZGEQZSZBKTZYEYAFFQZGGQZYLXSXRYAVCYEFVDYEGVDYKYMYNS
        BXTKXQXTQZYIYMYJYNYODFFOVFYOEGGPVFVGVHVIAYHYLVJXIYDABDEFGHIJKLMNVKWEVLF
        GJVEVBVMVNVOVPVQVRAXNUARZUBRZJURZYPUCRZJURZSZYQYSQZUEZUCVSZUBVSZUAVSZXI
        AXNUUEUAAXNUUDUBAXNUUCUCAUUAYPDQZYQEQZSZBKTZYPFQZYSGQZSZCKTZSZXNUUBAUUA
        UUOAYRUUJYTUUNABDEYPYQHIJKLMNVKAYTUUGYSEQZSZBKTUUNABDEYPYSHIJKLMNVKUUQU
        UMBCKYOUUGUUKUUPUULYODFYPOVFYOEGYSPVFVGVTWAVGWBUUOUUIUUMSZCKTZBKTZXNUUB
        UUIUUMBCKKWCXNUUTUUBXNUUTSXMUUSSZBKTUUBXMUUSBKWDUVAUUBBKUVAXLUURSZCKTUU
        BXLUURCKWDUVBUUBCKUVBEGYQYSXLUURXKUURXJXKUUGUUKXJUUHUULYPDFWFVAWGWHXLUU
        GUUHUUMWIXLUUIUUKUULWJWKWLWMWLWMWOWNWPWQWQWQAJWRZXIUUFVJAJHIWSZWTUVDWRU
        VCABDEHIJKLMNXAHIXBJUVDXCXDXIUVCUUFUAUBUCJXEXGWMXFXH $.

      fliftfund.6 $e |- ( ( ph /\ ( x e. X /\ y e. X /\ A = C ) ) -> B = D ) $.
      $( The function ` F ` is the unique function defined by ` F `` A = B ` ,
         provided that the well-definedness condition holds.  (Contributed by
         Mario Carneiro, 23-Dec-2016.) $)
      fliftfund $p |- ( ph -> Fun F ) $=
        ( wceq wral cv wfun wi wcel 3exp2 imp32 ralrimivva fliftfun mpbird ) AJ
        UADFRZEGRZUBZCKSBKSAUKBCKKABTKUCZCTKUCZUKAULUMUIUJQUDUEUFABCDEFGHIJKLMN
        OPUGUH $.
    $}

    $( The function ` F ` is the unique function defined by ` F `` A = B ` ,
       provided that the well-definedness condition holds.  (Contributed by
       Mario Carneiro, 23-Dec-2016.) $)
    fliftfuns $p |- ( ph -> ( Fun F <-> A. y e. X A. z e. X
      ( [_ y / x ]_ A = [_ z / x ]_ A -> [_ y / x ]_ B = [_ z / x ]_ B ) ) ) $=
      ( cv csb cop cmpt crn nfcsb1v wcel nfcv nfop csbeq1a opeq12d cbvmpt rneqi
      weq eqtri wral ralrimiva nfel1 eleq1d rspc mpan9 csbeq1 fliftfun ) ACDBCN
      ZEOZBUQFOZBDNZEOBUTFOGHIJIBJEFPZQZRCJURUSPZQZRKVBVDBCJVAVCCVAUABURUSBUQES
      ZBUQFSZUBBCUGZEURFUSBUQEUCZBUQFUCZUDUEUFUHAEGTZBJUIUQJTZURGTZAVJBJLUJVJVL
      BUQJBURGVEUKVGEURGVHULUMUNAFHTZBJUIVKUSHTZAVMBJMUJVMVNBUQJBUSHVFUKVGFUSHV
      IULUMUNBUQUTEUOBUQUTFUOUP $.

    $( The domain and range of the function ` F ` .  (Contributed by Mario
       Carneiro, 23-Dec-2016.) $)
    fliftf $p |- ( ph -> ( Fun F <-> F : ran ( x e. X |-> A ) --> S ) ) $=
      ( vy vz crn wa wss wceq cv wex wrex wfun cmpt wf wfn cdm simpr wbr cab wb
      fliftel exbidv adantr rexcom4 wcel elisset syl biantrud syl6rbbr rexbidva
      19.42v syl5bbr bitrd df-dm eqid rnmpt 3eqtr4g df-fn sylanbrc cxp fliftrel
      abbidv rnss rnxpss syl6ss df-f ex ffun impbid1 ) AGUAZBHCUBZNZFGUCZAVSWBA
      VSOZGWAUDZGNZFPWBWCVSGUEZWAQWDAVSUFWCLRZMRZGUGZMSZLUHWGCQZBHTZLUHWFWAWCWJ
      WLLWCWJWKWHDQZOZBHTZMSZWLAWJWPUIVSAWIWOMABCDWGWHEFGHIJKUJUKULWPWNMSZBHTZW
      CWLWNBMHUMAWRWLUIVSAWQWKBHABRHUNOZWKWKWMMSZOWQWSWTWKWSDFUNWTKMDFUOUPUQWKW
      MMUTURUSULVAVBVKLMGVCBLHCVTVTVDVEVFGWAVGVHWCWEEFVIZNZFWCGXAPZWEXBPAXCVSAB
      CDEFGHIJKVJULGXAVLUPEFVMVNWAFGVOVHVPWAFGVQVR $.

    fliftval.4 $e |- ( x = Y -> A = C ) $.
    fliftval.5 $e |- ( x = Y -> B = D ) $.
    fliftval.6 $e |- ( ph -> Fun F ) $.
    $( The value of the function ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    fliftval $p |- ( ( ph /\ Y e. X ) -> ( F ` C ) = D ) $=
      ( wa wceq adantr wcel wfun wbr cfv simpr eqidd anim12ci cv eqeq2d anbi12d
      wrex rspcev syl2anc wb fliftel mpbird funbrfv sylc ) AKJUAZRZIUBZEFIUCZEI
      UDFSAVAUSQTUTVBECSZFDSZRZBJUKZUTUSEESZFFSZRZVFAUSUEAVHUSVGAFUFUSEUFUGVEVI
      BKJBUHKSZVCVGVDVHVJCEEOUIVJDFFPUIUJULUMAVBVFUNUSABCDEFGHIJLMNUOTUPEFIUQUR
      $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y H $.  $d x y G $.
    $d x y R $.  $d x y S $.  $d x y T $.
    $( Equality theorem for isomorphisms.  (Contributed by NM, 17-May-2004.) $)
    isoeq1 $p |- ( H = G ->
          ( H Isom R , S ( A , B ) <-> G Isom R , S ( A , B ) ) ) $=
      ( vx vy wceq wf1o cv wbr cfv wb wral wa wiso f1oeq1 fveq1 df-isom breq12d
      bibi2d 2ralbidv anbi12d 3bitr4g ) FEIZABFJZGKZHKZCLZUHFMZUIFMZDLZNZHAOGAO
      ZPABEJZUJUHEMZUIEMZDLZNZHAOGAOZPABCDFQABCDEQUFUGUPUOVAABFERUFUNUTGHAAUFUM
      USUJUFUKUQULURDUHFESUIFESUAUBUCUDGHABCDFTGHABCDETUE $.

    $( Equality theorem for isomorphisms.  (Contributed by NM, 17-May-2004.) $)
    isoeq2 $p |- ( R = T ->
          ( H Isom R , S ( A , B ) <-> H Isom T , S ( A , B ) ) ) $=
      ( vx vy wceq wf1o cv wbr cfv wb wral wa wiso breq bibi1d df-isom 2ralbidv
      anbi2d 3bitr4g ) CEIZABFJZGKZHKZCLZUFFMUGFMDLZNZHAOGAOZPUEUFUGELZUINZHAOG
      AOZPABCDFQABEDFQUDUKUNUEUDUJUMGHAAUDUHULUIUFUGCERSUAUBGHABCDFTGHABEDFTUC
      $.

    $( Equality theorem for isomorphisms.  (Contributed by NM, 17-May-2004.) $)
    isoeq3 $p |- ( S = T ->
          ( H Isom R , S ( A , B ) <-> H Isom R , T ( A , B ) ) ) $=
      ( vx vy wceq wf1o cv wbr cfv wb wral wa wiso breq bibi2d df-isom 2ralbidv
      anbi2d 3bitr4g ) DEIZABFJZGKZHKZCLZUFFMZUGFMZDLZNZHAOGAOZPUEUHUIUJELZNZHA
      OGAOZPABCDFQABCEFQUDUMUPUEUDULUOGHAAUDUKUNUHUIUJDERSUAUBGHABCDFTGHABCEFTU
      C $.

    $( Equality theorem for isomorphisms.  (Contributed by NM, 17-May-2004.) $)
    isoeq4 $p |- ( A = C ->
          ( H Isom R , S ( A , B ) <-> H Isom R , S ( C , B ) ) ) $=
      ( vx vy wceq wf1o cv wbr cfv wb wral wa wiso f1oeq2 raleq df-isom anbi12d
      raleqbi1dv 3bitr4g ) ACIZABFJZGKZHKZDLUFFMUGFMELNZHAOZGAOZPCBFJZUHHCOZGCO
      ZPABDEFQCBDEFQUDUEUKUJUMACBFRUIULGACUHHACSUBUAGHABDEFTGHCBDEFTUC $.

    $( Equality theorem for isomorphisms.  (Contributed by NM, 17-May-2004.) $)
    isoeq5 $p |- ( B = C ->
          ( H Isom R , S ( A , B ) <-> H Isom R , S ( A , C ) ) ) $=
      ( vx vy wceq wf1o cv wbr cfv wb wral wa wiso f1oeq3 anbi1d df-isom
      3bitr4g ) BCIZABFJZGKZHKZDLUDFMUEFMELNHAOGAOZPACFJZUFPABDEFQACDEFQUBUCUGU
      FBCAFRSGHABDEFTGHACDEFTUA $.
  $}

  ${
    $d y z H $.  $d y z R $.  $d y z S $.  $d y z A $.  $d y z B $.
    $d x y z $.
    nfiso.1 $e |- F/_ x H $.
    nfiso.2 $e |- F/_ x R $.
    nfiso.3 $e |- F/_ x S $.
    nfiso.4 $e |- F/_ x A $.
    nfiso.5 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for an isomorphism.  (Contributed by
       NM, 17-May-2004.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
    nfiso $p |- F/ x H Isom R , S ( A , B ) $=
      ( vy vz cv wbr cfv wral nfcv nfbr nffv wiso wf1o wb wa df-isom nff1o nfbi
      nfral nfan nfxfr ) BCDEFUABCFUBZLNZMNZDOZULFPZUMFPZEOZUCZMBQZLBQZUDALMBCD
      EFUEUKUTAABCFGJKUFUSALBJURAMBJUNUQAAULUMDAULRZHAUMRZSAUOUPEAULFGVATIAUMFG
      VBTSUGUHUHUIUJ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.  $d x y S $.  $d x y H $.
    $( An isomorphism is a one-to-one onto function.  (Contributed by NM,
       27-Apr-2004.) $)
    isof1o $p |- ( H Isom R , S ( A , B ) -> H : A -1-1-onto-> B ) $=
      ( vx vy wiso wf1o cv wbr cfv wb wral df-isom simplbi ) ABCDEHABEIFJZGJZCK
      QELRELDKMGANFANFGABCDEOP $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d H x y $.
    $( A function is a bijection iff it is an isomorphism regarding the
       identity relation.  (Contributed by AV, 9-May-2021.) $)
    isof1oidb $p |- ( H : A -1-1-onto-> B <-> H Isom _I , _I ( A , B ) ) $=
      ( vx vy wf1o cv cid wbr cfv wb wral wiso wcel wceq weq wf1 f1of1 f1fveq
      wa sylan fvex ideq a1i ideqg ad2antll 3bitr4rd ralrimivva pm4.71i df-isom
      bitr4i ) ABCFZULDGZEGZHIZUMCJZUNCJZHIZKZEALDALZTABHHCMULUTULUSDEAAULUMANZ
      UNANZTZTZUPUQOZDEPZURUOULABCQVCVEVFKABCRABUMUNCSUAURVEKVDUPUQUNCUBUCUDVBU
      OVFKULVAUMUNAUEUFUGUHUIDEABHHCUJUK $.

    $( A function is a bijection iff it is an isomorphism regarding the
       universal class of ordered pairs as relations.  (Contributed by AV,
       9-May-2021.) $)
    isof1oopb $p |- ( H : A -1-1-onto-> B
                    <-> H Isom ( _V X. _V ) , ( _V X. _V ) ( A , B ) ) $=
      ( vx vy wf1o cv cvv cxp wbr cfv wb wral wiso wcel cop fvex opelvv df-br
      wa mpbir a1i opelvvg sylibr a1d impbid2 adantl ralrimivva pm4.71i df-isom
      bitr4i ) ABCFZULDGZEGZHHIZJZUMCKZUNCKZUOJZLZEAMDAMZTABUOUOCNULVAULUTDEAAU
      MAOUNAOTZUTULVBUPUSUSUPUSUQURPUOOUQURUMCQUNCQRUQURUOSUAUBVBUPUSVBUMUNPUOO
      UPUMUNAAUCUMUNUOSUDUEUFUGUHUIDEABUOUOCUJUK $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.  $d x y S $.  $d x y H $.
    $d x y C $.  $d x y D $.
    $( An isomorphism connects binary relations via its function values.
       (Contributed by NM, 27-Apr-2004.) $)
    isorel $p |- ( ( H Isom R , S ( A , B ) /\ ( C e. A /\ D e. A ) ) ->
                 ( C R D <-> ( H ` C ) S ( H ` D ) ) ) $=
      ( vx vy wiso cv wbr cfv wb wral wcel wa wceq fveq2 bibi12d df-isom breq1d
      wf1o simprbi breq1 breq2 breq2d rspc2v mpan9 ) ABEFGJZHKZIKZELZUKGMZULGMZ
      FLZNZIAOHAOZCAPDAPQCDELZCGMZDGMZFLZNZUJABGUCURHIABEFGUAUDUQVCCULELZUTUOFL
      ZNHICDAAUKCRZUMVDUPVEUKCULEUEVFUNUTUOFUKCGSUBTULDRZVDUSVEVBULDCEUFVGUOVAU
      TFULDGSUGTUHUI $.
  $}

  ${
    $d w x y z A $.  $d w z B $.  $d w z C $.  $d w x y z F $.  $d w x y z R $.
    $d w x y z S $.
    $( Express the condition of isomorphism on two strict orders for a
       function's restriction.  (Contributed by Mario Carneiro,
       22-Jan-2015.) $)
    soisores $p |- ( ( ( R Or B /\ S Or C ) /\ ( F : B --> C /\ A C_ B ) ) ->
      ( ( F |` A ) Isom R , S ( A , ( F " A ) ) <->
        A. x e. A A. y e. A ( x R y -> ( F ` x ) S ( F ` y ) ) ) ) $=
      ( vz vw wa cv wbr cfv wi wral wcel wb weq fveq2 wor wf wss cima cres wiso
      isorel fvres breqan12d adantl biimpd ralrimivva w3a wf1o wfn crn wceq ffn
      bitrd ad2antrl simprr fnssres syl2anc 3adant3 df-ima eqcomi a1i eqeqan12d
      wo simprl simpl3 breq1 breq1d imbi12d breq2 breq2d rspc2va syl21anc con3d
      orim12d simpl1r simpl2l simpl2r ffvelrnd sotrieq syl12anc simpl1l 3imtr4d
      sseldd sylbid dff1o6 sotric impbid bitr4d df-isom sylanbrc 3expia impbid2
      wn syl3anbrc ) DFUAZEGUAZKZDEHUBZCDUCZKZKZCHCUDZFGHCUEZUFZALZBLZFMZXKHNZX
      LHNZGMZOZBCPACPZXJXQABCCXJXKCQZXLCQZKZKZXMXPYBXMXKXINZXLXINZGMZXPCXHXKXLF
      GXIUGYAYEXPRXJXSXTYCXNYDXOGXKCHUHXLCHUHUIUJUSUKULXCXFXRXJXCXFXRUMZCXHXIUN
      ZILZJLZFMZYHXINZYIXINZGMZRZJCPICPXJYFXICUOZXIUPZXHUQZYKYLUQZIJSZOZJCPICPY
      GXCXFYOXRXGHDUOZXEYOXDUUAXCXEDEHURUTXCXDXEVADCHVBVCVDYQYFXHYPHCVEVFVGYFYT
      IJCCYFYHCQZYICQZKZKZYRYHHNZYIHNZUQZYSUUDYRUUHRYFUUBUUCYKUUFYLUUGYHCHUHZYI
      CHUHZVHUJUUEUUFUUGGMZUUGUUFGMZVIZWSZYJYIYHFMZVIZWSZUUHYSUUEUUPUUMUUEYJUUK
      UUOUULUUEUUBUUCXRYJUUKOZYFUUBUUCVJZYFUUBUUCVAZXCXFXRUUDVKZXQUURYHXLFMZUUF
      XOGMZOABYHYICCAISZXMUVBXPUVCXKYHXLFVLUVDXNUUFXOGXKYHHTVMVNBJSZUVBYJUVCUUK
      XLYIYHFVOUVEXOUUGUUFGXLYIHTVPVNVQVRZUUEUUCUUBXRUUOUULOZUUTUUSUVAXQUVGYIXL
      FMZUUGXOGMZOABYIYHCCAJSZXMUVHXPUVIXKYIXLFVLUVJXNUUGXOGXKYIHTVMVNBISZUVHUU
      OUVIUULXLYHYIFVOUVKXOUUFUUGGXLYHHTVPVNVQVRZVTVSUUEXBUUFEQZUUGEQZUUHUUNRXA
      XBXFXRUUDWAZUUEDEYHHXDXEXCXRUUDWBZUUECDYHXDXEXCXRUUDWCZUUSWIZWDZUUEDEYIHU
      VPUUECDYIUVQUUTWIZWDZEUUFUUGGWEWFUUEXAYHDQZYIDQZYSUUQRXAXBXFXRUUDWGZUVRUV
      TDYHYIFWEWFWHWJULIJCXHXIWKWTYFYNIJCCUUEYJUUKYMUUEYJUUKUVFUUEUUHUULVIZWSZY
      SUUOVIZWSZUUKYJUUEUWGUWEUUEYSUUHUUOUULYSUUHOUUEYHYIHTVGUVLVTVSUUEXBUVMUVN
      UUKUWFRUVOUVSUWAEUUFUUGGWLWFUUEXAUWBUWCYJUWHRUWDUVRUVTDYHYIFWLWFWHWMUUDYM
      UUKRYFUUBUUCYKUUFYLUUGGUUIUUJUIUJWNULIJCXHFGXIWOWPWQWR $.
  $}

  ${
    $d R x y a b $.  $d S x y a b $.  $d H x y a b $.  $d A x y a b $.
    $d B x y a b $.
    $( Infer isomorphism from one direction of an order proof for isomorphisms
       between strict orders.  (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    soisoi $p |- ( ( ( R Or A /\ S Po B ) /\ ( H : A -onto-> B /\
          A. x e. A A. y e. A ( x R y -> ( H ` x ) S ( H ` y ) ) ) ) ->
        H Isom R , S ( A , B ) ) $=
      ( va vb wa cv wbr cfv wi wral weq wcel wn sylan fveq2 wor wpo wfo wf1o wb
      wiso wf1 wf wceq simprl fof wo simpll sotrieq con2bid simprr breq1 breq1d
      imbi12d breq2 breq2d rspc2va ancoms simpllr simplrl ffvelrnd poirr notbid
      syl5ibrcom syl2anc con2d syld ancom2s jaod sylbird con4d ralrimivva dff13
      syl sylanbrc df-f1o sotric po2nr imnan sylibr syl12anc impcon4bid df-isom
      ) CEUAZDFUBZJZCDGUCZAKZBKZELZWMGMZWNGMZFLZNZBCOACOZJZJZCDGUDZHKZIKZELZXDG
      MZXEGMZFLZUEZICOHCOCDEFGUFXBCDGUGZWLXCXBCDGUHZXGXHUIZHIPZNZICOHCOXKXBWLXL
      WKWLWTUJZCDGUKZVSXBXOHICCXBXDCQZXECQZJZJZXNXMYAXNRZXFXEXDELZULZXMRZXBWIXT
      YDYBUEWIWJXAUMZWIXTJZXNYDCXDXEEUNUOSYAXFYEYCYAXFXIYEXBWTXTXFXINZWKWLWTUPZ
      XTWTYHWSYHXDWNELZXGWQFLZNABXDXECCAHPZWOYJWRYKWMXDWNEUQYLWPXGWQFWMXDGTURUS
      BIPZYJXFYKXIWNXEXDEUTYMWQXHXGFWNXEGTVAUSVBVCSZYAXMXIYAWJXHDQZXMXIRZNWIWJX
      AXTVDZYACDXEGYAWLXLWKWLWTXTVEXQVSZXBXRXSUPVFZWJYOJZYPXMXHXHFLZRZDXHFVGZXM
      XIUUAXGXHXHFUQVHVIVJVKVLYAYCXHXGFLZYEXBWTXTYCUUDNZYIWTXSXRUUEXSXRJWTUUEWS
      UUEXEWNELZXHWQFLZNABXEXDCCAIPZWOUUFWRUUGWMXEWNEUQUUHWPXHWQFWMXEGTURUSBHPZ
      UUFYCUUGUUDWNXDXEEUTUUIWQXGXHFWNXDGTVAUSVBVCVMSZYAXMUUDYAWJYOXMUUDRZNYQYS
      YTUUKXMUUBUUCXMUUDUUAXGXHXHFUTVHVIVJVKVLVNVOVPVQHICDGVRVTXPCDGWAVTXBXJHIC
      CYAXFXIYNYAXFRZXNYCULZYPXBWIXTUUMUULUEYFYGXFUUMCXDXEEWBUOSYAXNYPYCYAWJYOX
      NYPNYQYSYTYPXNUUBUUCXNXIUUAXNXGXHXHFXDXEGTURVHVIVJYAYCUUDYPUUJYAWJYOXGDQZ
      UUDYPNZYQYSYACDXDGYRXBXRXSUJVFWJYOUUNJJUUDXIJRUUODXHXGFWCUUDXIWDWEWFVLVNV
      OWGVQHICDEFGWHVT $.
  $}

  ${
    $d x y A $.  $d x y R $.
    $( Identity law for isomorphism.  Proposition 6.30(1) of [TakeutiZaring]
       p. 33.  (Contributed by NM, 27-Apr-2004.) $)
    isoid $p |- ( _I |` A ) Isom R , R ( A , A ) $=
      ( vx vy cid cres wiso wf1o wbr cfv wral f1oi wcel fvresi breqan12d bicomd
      cv wb wa rgen2a df-isom mpbir2an ) AABBEAFZGAAUCHCQZDQZBIZUDUCJZUEUCJZBIZ
      RZDAKCAKALUJCDAUDAMZUEAMZSUIUFUKULUGUDUHUEBAUDNAUENOPTCDAABBUCUAUB $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d x y C $.  $d x y D $.  $d w x y z H $.
    $d w x y z R $.  $d w x y z S $.
    $( Converse law for isomorphism.  Proposition 6.30(2) of [TakeutiZaring]
       p. 33.  (Contributed by NM, 27-Apr-2004.) $)
    isocnv $p |- ( H Isom R , S ( A , B ) -> `' H Isom S , R ( B , A ) ) $=
      ( vx vy vz vw wf1o cv wbr cfv wb wral wa wiso wcel wceq f1ocnvfv2 adantrr
      ccnv f1ocnv adantr adantrl breq12d adantlr wf syl ffvelrn anim12dan breq1
      f1of fveq2 breq1d bibi12d bicom syl6bb breq2d breq2 rspc2va sylan sylanl1
      an32s bitr3d ralrimivva jca df-isom 3imtr4i ) ABEJZFKZGKZCLZVKEMZVLEMZDLZ
      NZGAOFAOZPZBAEUBZJZHKZIKZDLZWBVTMZWCVTMZCLZNZIBOHBOZPABCDEQBADCVTQVSWAWIV
      JWAVRABEUCZUDVSWHHIBBVSWBBRZWCBRZPZPWEEMZWFEMZDLZWDWGVJWMWPWDNVRVJWMPWNWB
      WOWCDVJWKWNWBSWLABWBETUAVJWLWOWCSWKABWCETUEUFUGVJBAVTUHZVRWMWPWGNZVJWAWQW
      JBAVTUMUIWQWMVRWRWQWMPWEARZWFARZPVRWRWQWKWSWLWTBAWBVTUJBAWCVTUJUKVQWRWNVO
      DLZWEVLCLZNZFGWEWFAAVKWESZVQXBXANXCXDVMXBVPXAVKWEVLCULXDVNWNVODVKWEEUNUOU
      PXBXAUQURVLWFSZXAWPXBWGXEVOWOWNDVLWFEUNUSVLWFWECUTUPVAVBVDVCVEVFVGFGABCDE
      VHHIBADCVTVHVI $.

    $( Converse law for isomorphism.  (Contributed by Mario Carneiro,
       30-Jan-2014.) $)
    isocnv2 $p |- ( H Isom R , S ( A , B ) <->
                    H Isom `' R , `' S ( A , B ) ) $=
      ( vy vx wf1o cv wbr cfv wb wral wa ccnv wiso vex brcnv fvex df-isom
      ralcom bibi12i 2ralbii bitr4i anbi2i 3bitr4i ) ABEHZFIZGIZCJZUHEKZUIEKZDJ
      ZLZGAMFAMZNUGUIUHCOZJZULUKDOZJZLZFAMGAMZNABCDEPABUPUREPUOVAUGUOUNFAMGAMVA
      UNFGAAUAUTUNGFAAUQUJUSUMUIUHCGQFQRULUKDUIESUHESRUBUCUDUEFGABCDETGFABUPURE
      TUF $.

    isocnv3.1 $e |- C = ( ( A X. A ) \ R ) $.
    isocnv3.2 $e |- D = ( ( B X. B ) \ S ) $.
    $( Complementation law for isomorphism.  (Contributed by Mario Carneiro,
       9-Sep-2015.) $)
    isocnv3 $p |- ( H Isom R , S ( A , B ) <-> H Isom C , D ( A , B ) ) $=
      ( vx vy cv wbr cfv wb wral wa wiso wcel wn wf1o cxp brxp cdif breqi brdif
      bitri baib sylbir adantl wf f1of ffvelrn anim12dan sylibr sylan syl notbi
      bibi12d syl6rbbr 2ralbidva pm5.32i df-isom 3bitr4i ) ABGUAZJLZKLZEMZVFGNZ
      VGGNZFMZOZKAPJAPZQVEVFVGCMZVIVJDMZOZKAPJAPZQABEFGRABCDGRVEVMVQVEVLVPJKAAV
      EVFASZVGASZQZQZVPVHTZVKTZOVLWAVNWBVOWCVTVNWBOZVEVTVFVGAAUBZMZWDVFVGAAUCVN
      WFWBVNVFVGWEEUDZMWFWBQVFVGCWGHUEVFVGWEEUFUGUHUIUJWAVIVJBBUBZMZVOWCOVEABGU
      KZVTWIABGULWJVTQVIBSZVJBSZQWIWJVRWKVSWLABVFGUMABVGGUMUNVIVJBBUCUOUPVOWIWC
      VOVIVJWHFUDZMWIWCQVIVJDWMIUEVIVJWHFUFUGUHUQUSVHVKURUTVAVBJKABEFGVCJKABCDG
      VCVD $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d H x y $.  $d R x y $.  $d S x y $.
    $( An isomorphism from one well-order to another can be restricted on
       either well-order.  (Contributed by Mario Carneiro, 15-Jan-2013.) $)
    isores2 $p |- ( H Isom R , S ( A , B ) <->
                      H Isom R , ( S i^i ( B X. B ) ) ( A , B ) ) $=
      ( vx vy wf1o cv wbr cfv wb wral wa cxp wiso wcel ffvelrn ralbidva df-isom
      cin wf f1of adantrr adantrl brinxp syl2anc anassrs bibi2d pm5.32i 3bitr4i
      sylan ) ABEHZFIZGIZCJZUNEKZUOEKZDJZLZGAMZFAMZNUMUPUQURDBBOUAZJZLZGAMZFAMZ
      NABCDEPABCVCEPUMVBVGUMVAVFFAUMUNAQZNZUTVEGAVIUOAQZNUSVDUPUMVHVJUSVDLZUMAB
      EUBZVHVJNZVKABEUCVLVMNUQBQZURBQZVKVLVHVNVJABUNERUDVLVJVOVHABUOERUEUQURBBD
      UFUGULUHUISSUJFGABCDETFGABCVCETUK $.
  $}

  $( An isomorphism from one well-order to another can be restricted on either
     well-order.  (Contributed by Mario Carneiro, 15-Jan-2013.) $)
  isores1 $p |- ( H Isom R , S ( A , B ) <->
                    H Isom ( R i^i ( A X. A ) ) , S ( A , B ) ) $=
    ( wiso cxp cin ccnv isocnv isores2 sylib syl wf1o isof1o isoeq1 sylbi mpbid
    wb 3syl wrel f1orel wceq dfrel2 sylibr impbii ) ABCDEFZABCAAGHZDEFZUGABUHDE
    IZIZFZUIUGBADUHUJFZULUGBADCUJFZUMABCDEJBADCUJKZLBADUHUJJMUGABENZEUAZULUISZA
    BCDEOABEUBZUQUKEUCZUREUDZABUHDEUKPQTRUIABCDUKFZUGUIUNVBUIUMUNABUHDEJUOUEBAD
    CUJJMUIUPUQVBUGSZABUHDEOUSUQUTVCVAABCDEUKPQTRUF $.

  ${
    $d H a b $.  $d R a b $.  $d S a b $.  $d K a b $.  $d A a b $.
    $d B a b $.  $d X a b $.
    $( Induced isomorphism on a subset.  (Contributed by Stefan O'Rear,
       5-Nov-2014.) $)
    isores3 $p |- ( ( H Isom R , S ( A , B ) /\ K C_ A /\ X = ( H " K ) ) ->
        ( H |` K ) Isom R , S ( K , X ) ) $=
      ( va vb wiso wa wf1o cv wbr cfv wb wral ssralv wcel fvres cima wceq f1of1
      wss cres wf1 f1ores expcom syl5 adantr breqan12d adantll biimprd ralimdva
      wi bibi2d syld anim12d df-isom 3imtr4g impcom isoeq5 syl5ibrcom 3impia )
      ABCDEJZFAUDZGEFUAZUBZFGCDEFUEZJZVEVFKVJVHFVGCDVIJZVFVEVKVFABELZHMZIMZCNZV
      MEOZVNEOZDNZPZIAQZHAQZKFVGVILZVOVMVIOZVNVIOZDNZPZIFQZHFQZKVEVKVFVLWBWAWHV
      LABEUFZVFWBABEUCWIVFWBABFEUGUHUIVFWAVTHFQWHVTHFARVFVTWGHFVFVMFSZKZVTVSIFQ
      ZWGVFVTWLUOWJVSIFARUJWKVSWFIFWKVNFSZKZWFVSWNWEVRVOWJWMWEVRPVFWJWMWCVPWDVQ
      DVMFETVNFETUKULUPUMUNUQUNUQURHIABCDEUSHIFVGCDVIUSUTVAFGVGCDVIVBVCVD $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.  $d x y z w R $.
    $d x y z w S $.  $d x y z w T $.  $d x y z w G $.  $d x y z w H $.
    $( Composition (transitive) law for isomorphism.  Proposition 6.30(3) of
       [TakeutiZaring] p. 33.  (Contributed by NM, 27-Apr-2004.)  (Proof
       shortened by Mario Carneiro, 5-Dec-2016.) $)
    isotr $p |- ( ( H Isom R , S ( A , B ) /\ G Isom S , T ( B , C ) ) ->
               ( G o. H ) Isom R , T ( A , C ) ) $=
      ( vx vy vz vw cv wbr cfv wb wral wa wcel wceq wf1o simpl f1oco syl2anr wf
      ccom wiso f1of ad2antrr simprl ffvelrnd simprr simplrr breq1 fveq2 breq1d
      bibi12d breq2 breq2d rspc2va syl21anc fvco3 syl2anc breq12d bitr4d bibi2d
      2ralbidva biimpd impancom imp jca df-isom anbi12i 3imtr4i ) ABHUAZIMZJMZD
      NZVPHOZVQHOZENZPZJAQIAQZRZBCGUAZKMZLMZENZWFGOZWGGOZFNZPZLBQKBQZRZRZACGHUF
      ZUAZVRVPWPOZVQWPOZFNZPZJAQIAQZRABDEHUGZBCEFGUGZRACDFWPUGWOWQXBWNWEVOWQWDW
      EWMUBVOWCUBABCGHUCUDWDWNXBVOWNWCXBVOWNRZWCXBXEWBXAIJAAXEVPASZVQASZRZRZWAW
      TVRXIWAVSGOZVTGOZFNZWTXIVSBSVTBSWMWAXLPZXIABVPHVOABHUEZWNXHABHUHUIZXEXFXG
      UJZUKXIABVQHXOXEXFXGULZUKVOWEWMXHUMWLXMVSWGENZXJWJFNZPKLVSVTBBWFVSTZWHXRW
      KXSWFVSWGEUNXTWIXJWJFWFVSGUOUPUQWGVTTZXRWAXSXLWGVTVSEURYAWJXKXJFWGVTGUOUS
      UQUTVAXIWRXJWSXKFXIXNXFWRXJTXOXPABVPGHVBVCXIXNXGWSXKTXOXQABVQGHVBVCVDVEVF
      VGVHVIVJVKXCWDXDWNIJABDEHVLKLBCEFGVLVMIJACDFWPVLVN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.  $d x y S $.  $d x y H $.
    $d x y C $.  $d x y D $.
    $( Isomorphisms preserve minimal elements.  Note that ` ( ``' R " { D } ) `
       is Takeuti and Zaring's idiom for the initial segment
       ` { x | x R D } ` .  Proposition 6.31(1) of [TakeutiZaring] p. 33.
       (Contributed by NM, 19-Apr-2004.) $)
    isomin $p |- ( ( H Isom R , S ( A , B ) /\ ( C C_ A /\ D e. A ) ) ->
               ( ( C i^i ( `' R " { D } ) ) = (/) <->
               ( ( H " C ) i^i ( `' S " { ( H ` D ) } ) ) = (/) ) ) $=
      ( vy vx wcel wa cima wceq wex wrex wbr wb wi syl9r cvv wss csn cin c0 cfv
      wiso ccnv wn cv neq0 ssel wf1o wfn isof1o f1ofn fnbrfvb ex imp31 rexbidva
      3syl vex syl6rbbr fvex eliniseg mp1i anbi12d elin r19.41v 3bitr4g adantrr
      elima breq1 biimpar ad2antll isorel bitrd syl5ibr exp32 com34 imp32 exbii
      reximdvai sylbid df-rex 3bitr4i syl6ibr exlimdv syl5bi syl fnfvima 3expia
      con4d sylan adantrd biimpd ax-mp impd jcad 3imtr4g n0i syl6 impcon4bid )
      ABEFGUFZCAUAZDAJZKZKZCEUGDUBLZUCZUDMZGCLZFUGDGUEZUBLZUCZUDMZXGXOXJXOUHZHU
      IZXNJZHNXGXJUHZHXNUJXGXRXSHXGXRIUIZXHJZICOZXSXGXRXTGUEZXQMZXQXLFPZKZICOZY
      BXCXDXRYGQXEXCXDKZXQXKJZXQXMJZKYDICOZYEKXRYGYHYIYKYJYEYHYKXTXQGPZICOYIYHY
      DYLICXCXDXTCJZYDYLQZXDYMXTAJZXCYNCAXTUKZXCABGULZGAUMZYOYNRABEFGUNZABGUOZY
      RYOYNAXTXQGUPUQUTSURUSIXQGCHVAZVKVBXLTJZYJYEQYHDGVCZFXLXQTUUAVDVEVFXQXKXM
      VGYDYEICVHVIVJXGYFYAICXCXDXEYMYFYARZRXCXDYMXEUUDXDYMYOXCXEUUDRYPXCYOXEUUD
      YFYAXCYOXEKKZYCXLFPZYDUUFYEYCXQXLFVLVMUUEYAXTDEPZUUFXEYAUUGQXCYOEDXTAIVAV
      DVNZABXTDEFGVOZVPVQVRSVSVTWBWCXTXIJZINZYMYAKZINXSYBUUJUULIXTCXHVGZWAIXIUJ
      ZYAICWDWEWFWGWHWLXSUUKXGXPUUNXGUUJXPIXGUUJYCXNJZXPXGUULYCXKJZYCXMJZKUUJUU
      OXGUULUUPUUQXGYMUUPYAXCYRXFYMUUPRZXCYQYRYSYTWIYRXDUURXEYRXDYMUUPACGXTWJWK
      VJWMWNXGYMYAUUQXCXDXEYMYAUUQRZRXCXDYMXEUUSXDYMYOXCXEUUSRYPXCYOXEUUSUUEYAU
      UGUUQUUHUUEUUGUUFUUQUUEUUGUUFUUIWOUUBUUQUUFQUUCFXLYCTXTGVCVDWPWFWCVRSVSVT
      WQWRUUMYCXKXMVGWSXNYCWTXAWGWHXB $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.  $d x y S $.  $d x y H $.
    $d x y D $.
    $( Isomorphisms preserve initial segments.  Proposition 6.31(2) of
       [TakeutiZaring] p. 33.  (Contributed by NM, 20-Apr-2004.) $)
    isoini $p |- ( ( H Isom R , S ( A , B ) /\ D e. A ) ->
               ( H " ( A i^i ( `' R " { D } ) ) ) =
               ( B i^i ( `' S " { ( H ` D ) } ) ) ) $=
      ( vx vy wcel wa ccnv cfv csn cima cin cv wbr wrex wb syl6bb wiso cab elin
      wceq crn wf1o wfo isof1o f1ofo forn eleq2d 3syl f1ofn fvelrnb bitr3d fvex
      wfn cvv eliniseg mp1i anbi12d adantr anbi2d syl5bb anbi1d anass adantl wi
      vex isorel syl fnbrfvb bicomd sylan adantrr ancom breq1 bitri exp32 com23
      pm5.32i imp pm5.32d bitrd rexbidv2 r19.41v bitr4d abbi2dv dfima2 syl6reqr
      ) ABDEFUAZCAIZJZBEKCFLZMNZOZGPZHPZFQZGADKCMNZOZRZHUBFXANWMXBHWPWRWPIWRBIZ
      WRWOIZJZWMXBWRBWOUCWMXEWQFLZWRUDZGARZWRWNEQZJZXBWKXEXJSWLWKXCXHXDXIWKWRFU
      EZIZXCXHWKABFUFZABFUGZXLXCSABDEFUHZABFUIXNXKBWRABFUJUKULWKXMFAUQZXLXHSXOA
      BFUMZGAWRFUNULUOWNURIXDXISWKCFUPEWNWRURHVIUSUTVAVBWMXBXGXIJZGARXJWMWSXRGX
      AAWMWQXAIZWSJZWQAIZWQCDQZWSJZJZYAXRJWLXTYDSWKWLXTYAYBJZWSJYDWLXSYEWSXSYAW
      QWTIZJWLYEWQAWTUCWLYFYBYADCWQAGVIUSVCVDVEYAYBWSVFTVGWMYAYCXRWKWLYAYCXRSZV
      HWKYAWLYGWKYAWLYGWKYAWLJJZYCXFWNEQZXGJZXRYHYBYIWSXGABWQCDEFVJWKYAWSXGSZWL
      WKXPYAYKWKXMXPXOXQVKXPYAJXGWSAWQWRFVLVMVNVOVAYJXGYIJXRYIXGVPXGYIXIXFWRWNE
      VQWAVRTVSVTWBWCWDWEXGXIGAWFTWGVDWHGHFXAWIWJ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y H $.
    $d x y R $.  $d x y S $.
    isoini2.1 $e |- C = ( A i^i ( `' R " { X } ) ) $.
    isoini2.2 $e |- D = ( B i^i ( `' S " { ( H ` X ) } ) ) $.
    $( Isomorphisms are isomorphisms on their initial segments.  (Contributed
       by Mario Carneiro, 29-Mar-2014.) $)
    isoini2 $p |- ( ( H Isom R , S ( A , B ) /\ X e. A ) ->
                    ( H |` C ) Isom R , S ( C , D ) ) $=
      ( vx vy wiso wcel wf1o wbr cfv wb wral cima wa cres cv wf1 wss isof1o syl
      f1of1 adantr ccnv csn inss1 eqsstri f1ores sylancl isoini imaeq2i 3eqtr4g
      cin wceq f1oeq3 mpbid df-isom simprbi ssralv mpsyl fvres breqan12d bibi2d
      ralimdv ralbidva ralbiia sylibr sylanbrc ) ABEFGMZHANZUAZCDGCUBZOZKUCZLUC
      ZEPZVTVRQZWAVRQZFPZRZLCSZKCSZCDEFVRMVQCGCTZVROZVSVQABGUDZCAUEZWJVOWKVPVOA
      BGOZWKABEFGUFABGUHUGUICAEUJHUKTZUSZAIAWNULUMZABCGUNUOVQWIDUTWJVSRVQGWOTBF
      UJHGQUKTUSWIDABHEFGUPCWOGIUQJURWIDCVRVAUGVBVQWBVTGQZWAGQZFPZRZLCSZKCSZWHW
      LVQXAKASZXBWPWLVQWTLASZKASZXCWPVOXEVPVOWMXEKLABEFGVCVDUIWLXDXAKAWTLCAVEVJ
      VFXAKCAVEVFWGXAKCVTCNZWFWTLCXFWACNZUAWEWSWBXFXGWCWQWDWRFVTCGVGWACGVGVHVIV
      KVLVMKLCDEFVRVCVN $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z H $.  $d w x y z ph $.
    $d w x y z R $.  $d w x y z S $.
    isofrlem.1 $e |- ( ph -> H Isom R , S ( A , B ) ) $.
    isofrlem.2 $e |- ( ph -> ( H " x ) e. _V ) $.
    $( Lemma for ~ isofr .  (Contributed by NM, 29-Apr-2004.)  (Revised by
       Mario Carneiro, 18-Nov-2014.) $)
    isofrlem $p |- ( ph -> ( S Fr B -> R Fr A ) ) $=
      ( vy vw vz cv c0 wa cima wceq wi syl wcel wfr wss wne ccnv wrex wf1o wiso
      csn cin wal isof1o wfn f1ofn wex n0 w3a cfv fnfvima 3expia exlimdv syl5bi
      ne0i expimpd wfo f1ofo crn imassrn forn syl5sseq jctild dffr3 sseq1 neeq1
      cvv anbi12d ineq1 eqeq1d rexeqbi1dv imbi12d spcgv syl5d wfun adantr simpl
      f1ofun fvelima syl2an simpr wb ssel imdistani isomin sneq ineq2d sylan9bb
      imaeq2d syl5ibr exp42 imp com3l com4t reximdvai mpd rexlimdvaa ex adantrd
      a2d syld alrimdv syl6ibr ) ADFUAZBMZCUBZXLNUCZOZXLEUDJMZUHPUINQZJXLUEZRZB
      UJCEUAAXKXSBAXKXOGXLPZFUDZKMZUHZPZUIZNQZKXTUEZRXSAXOXTDUBZXTNUCZOZXKYGACD
      GUFZXOYJRACDEFGUGZYKHCDEFGUKSZYKXOYIYHYKGCULZXOYIRCDGUMYNXMXNYIXNXPXLTZJU
      NYNXMOZYIJXLUOYPYOYIJYNXMYOYIYNXMYOUPXPGUQZXTTYICXLGXPURXTYQVBSUSUTVAVCSY
      KCDGVDZYHCDGVEYRGVFXTDGXLVGCDGVHVISVJSXKLMZDUBZYSNUCZOZYSYDUIZNQZKYSUEZRZ
      LUJZAYJYGRZLKDFVKAXTVNTUUGUUHRIUUFUUHLXTVNYSXTQZUUBYJUUEYGUUIYTYHUUAYIYSX
      TDVLYSXTNVMVOUUDYFKYSXTUUIUUCYENYSXTYDVPVQVRVSVTSVAWAAXOYGXRAXMYGXRRZXNAX
      MUUJAXMOZYFXRKXTUUKYBXTTZYFOZOZYQYBQZJXLUEZXRUUKGWBZUULUUPUUMUUKYKUUQAYKX
      MYMWCCDGWESUULYFWDJYBXLGWFWGUUNUUOXQJXLUUKUUMYOUUOXQRRYOUUOUUKUUMXQUUKYOU
      UOUUMXQRZAXMYOUUOUURRRAXMYOUUOUURUUMXQAXMYOOZOZUUOOYFUULYFWHUUTXQXTYAYQUH
      ZPZUIZNQZUUOYFAYLXMXPCTZOXQUVDWIUUSHXMYOUVEXLCXPWJWKCDXLXPEFGWLWGUUOUVCYE
      NUUOUVBYDXTUUOUVAYCYAYQYBWMWPWNVQWOWQWRWSWTXAWSXBXCXDXEXFXGXHXIBJCEVKXJ
      $.

    $( Lemma for ~ isose .  (Contributed by Mario Carneiro, 23-Jun-2015.) $)
    isoselem $p |- ( ph -> ( R Se A -> S Se B ) ) $=
      ( vy vz cv csn cima cin cvv wcel wral wi wceq wse ccnv cfv dfse2 r19.21bi
      biimpi expcom adantl imaeq2 eleq1d imbi2d vtoclg com12 adantr wiso isoini
      wa sylan sylibd syld ralrimdva crn wf1o wfn wb isof1o sneq imaeq2d ineq2d
      f1ofn ralrn 4syl wfo f1ofo forn raleqdv bitr3d syl6ibr ) ACEUAZDFUBZJLZMZ
      NZOZPQZJDRZDFUAAVSDVTKLZGUCZMZNZOZPQZKCRZWFAVSWLKCAWGCQZUQZVSCEUBWGMNOZPQ
      ZWLWNVSWQSAVSWNWQVSWQKCVSWQKCRKCEUDUFUEUGUHWOWQGWPNZPQZWLAWQWSSWNWQAWSAGB
      LZNZPQZSAWSSBWPPWTWPTZXBWSAXCXAWRPWTWPGUIUJUKIULUMUNWOWRWKPACDEFGUOZWNWRW
      KTHCDWGEFGUPURUJUSUTVAAWEJGVBZRZWMWFAXDCDGVCZGCVDXFWMVEHCDEFGVFZCDGVJWEWL
      JKCGWAWHTZWDWKPXIWCWJDXIWBWIVTWAWHVGVHVIUJVKVLAWEJXEDAXDXGCDGVMXEDTHXHCDG
      VNCDGVOVLVPVQUSJDFUDVR $.
  $}

  ${
    $d x A $.  $d x B $.  $d x H $.  $d x R $.  $d x S $.  $d x V $.
    $( An isomorphism preserves well-foundedness.  Proposition 6.32(1) of
       [TakeutiZaring] p. 33.  (Contributed by NM, 30-Apr-2004.)  (Revised by
       Mario Carneiro, 18-Nov-2014.) $)
    isofr $p |- ( H Isom R , S ( A , B ) -> ( R Fr A <-> S Fr B ) ) $=
      ( vx wiso wfr ccnv id wf1o wfun cima cvv wcel isof1o f1ofun funimaex 3syl
      isofrlem wi isocnv cv vex syl impbid ) ABCDEGZACHZBDHZUGBADCEIZGZUHUIUAAB
      CDEUBUKFBADCUJUKJUKBAUJKUJLUJFUCZMNOBADCUJPBAUJQUJULFUDZRSTUEUGFABCDEUGJU
      GABEKELEULMNOABCDEPABEQEULUMRSTUF $.

    $( An isomorphism preserves set-like relations.  (Contributed by Mario
       Carneiro, 23-Jun-2015.) $)
    isose $p |- ( H Isom R , S ( A , B ) -> ( R Se A <-> S Se B ) ) $=
      ( vx wiso wse wf1o wfun cima cvv wcel isof1o f1ofun vex funimaex isoselem
      id cv 3syl ccnv isocnv 4syl impbid ) ABCDEGZACHBDHUFFABCDEUFSUFABEIEJEFTZ
      KLMABCDENABEOEUGFPZQUARUFFBADCEUBZABCDEUCZUFBADCUIGBAUIIUIJUIUGKLMUJBADCU
      INBAUIOUIUGUHQUDRUE $.

    $( A weak form of ~ isofr that does not need Replacement.  (Contributed by
       Mario Carneiro, 18-Nov-2014.) $)
    isofr2 $p |- ( ( H Isom R , S ( A , B ) /\ B e. V ) ->
                   ( S Fr B -> R Fr A ) ) $=
      ( vx wiso wcel wa simpl cv cima wss cvv crn imassrn wf1o wf isof1o syl5ss
      f1of frn 3syl ssexg sylan isofrlem ) ABCDEHZBFIZJGABCDEUHUIKUHEGLZMZBNUIU
      KOIUHUKEPZBEUJQUHABERABESULBNABCDETABEUBABEUCUDUAUKBFUEUFUG $.
  $}

  ${
    $d H a b c d e f $.  $d R a b c d e f $.  $d S a b c d e f $.
    $d A a b c d e f $.  $d B a b c d e f $.
    $( Lemma for ~ isopo .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    isopolem $p |- ( H Isom R , S ( A , B ) -> ( S Po B -> R Po A ) ) $=
      ( va vb vc vd ve vf cv wbr wa wi wral wcel ex wb anbi12d wiso wpo w3a cfv
      wn wf1o isof1o f1of ffvelrn 3anim123d 3syl imp breq12 anidms notbid breq1
      wf wceq anbi1d imbi12d breq2 imbi1d anbi2d rspc3v syl simpl simpr1 isorel
      syl12anc simpr2 simpr3 sylibrd com23 imp31 ralrimivvva df-po 3imtr4g ) AB
      CDEUAZFLZVSDMZUEZVSGLZDMZWBHLZDMZNZVSWDDMZOZNZHBPGBPFBPZILZWKCMZUEZWKJLZC
      MZWNKLZCMZNZWKWPCMZOZNZKAPJAPIAPZBDUBACUBVRWJXBVRWJNXAIJKAAAVRWJWKAQZWNAQ
      ZWPAQZUCZXAVRXFWJXAVRXFWJXAOVRXFNZWJWKEUDZXHDMZUEZXHWNEUDZDMZXKWPEUDZDMZN
      ZXHXMDMZOZNZXAXGXHBQZXKBQZXMBQZUCZWJXROVRXFYBVRABEUFABEUQZXFYBOABCDEUGABE
      UHYCXCXSXDXTXEYAYCXCXSABWKEUIRYCXDXTABWNEUIRYCXEYAABWPEUIRUJUKULWIXRXJXHW
      BDMZWENZXHWDDMZOZNXJXLXKWDDMZNZYFOZNFGHXHXKXMBBBVSXHURZWAXJWHYGYKVTXIYKVT
      XISVSXHVSXHDUMUNUOYKWFYEWGYFYKWCYDWEVSXHWBDUPUSVSXHWDDUPUTTWBXKURZYGYJXJY
      LYEYIYFYLYDXLWEYHWBXKXHDVAWBXKWDDUPTVBVCWDXMURZYJXQXJYMYIXOYFXPYMYHXNXLWD
      XMXKDVAVCWDXMXHDVAUTVCVDVEXGWMXJWTXQXGWLXIXGVRXCXCWLXISVRXFVFZVRXCXDXEVGZ
      YOABWKWKCDEVHVIUOXGWRXOWSXPXGWOXLWQXNXGVRXCXDWOXLSYNYOVRXCXDXEVJZABWKWNCD
      EVHVIXGVRXDXEWQXNSYNYPVRXCXDXEVKZABWNWPCDEVHVITXGVRXCXEWSXPSYNYOYQABWKWPC
      DEVHVIUTTVLRVMVNVORFGHBDVPIJKACVPVQ $.

    $( An isomorphism preserves partial ordering.  (Contributed by Stefan
       O'Rear, 16-Nov-2014.) $)
    isopo $p |- ( H Isom R , S ( A , B ) -> ( R Po A <-> S Po B ) ) $=
      ( wiso wpo ccnv wi isocnv isopolem syl impbid ) ABCDEFZACGZBDGZNBADCEHZFO
      PIABCDEJBADCQKLABCDEKM $.

    $( Lemma for ~ isoso .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    isosolem $p |- ( H Isom R , S ( A , B ) -> ( S Or B -> R Or A ) ) $=
      ( va vb vc vd wpo cv wbr weq w3o wral wa wor wcel wceq 3orbi123d isopolem
      wiso cfv wi wf1o wf isof1o f1of ffvelrn ex anim12d 3syl breq1 eqeq1 breq2
      imp eqeq2 rspc2v syl isorel wf1 f1of1 f1fveq sylan bicomd ancom2s sylibrd
      wb ralrimdvva df-so 3imtr4g ) ABCDEUBZBDJZFKZGKZDLZFGMZVOVNDLZNZGBOFBOZPA
      CJZHKZIKZCLZHIMZWCWBCLZNZIAOHAOZPBDQACQVLVMWAVTWHABCDEUAVLVTWGHIAAVLWBARZ
      WCARZPZPZVTWBEUCZWCEUCZDLZWMWNSZWNWMDLZNZWGWLWMBRZWNBRZPZVTWRUDVLWKXAVLAB
      EUEZABEUFZWKXAUDABCDEUGZABEUHXCWIWSWJWTXCWIWSABWBEUIUJXCWJWTABWCEUIUJUKUL
      UPVSWRWMVODLZWMVOSZVOWMDLZNFGWMWNBBVNWMSVPXEVQXFVRXGVNWMVODUMVNWMVOUNVNWM
      VODUOTVOWNSXEWOXFWPXGWQVOWNWMDUOVOWNWMUQVOWNWMDUMTURUSWLWDWOWEWPWFWQABWBW
      CCDEUTWLWPWEVLABEVAZWKWPWEVHVLXBXHXDABEVBUSABWBWCEVCVDVEVLWJWIWFWQVHABWCW
      BCDEUTVFTVGVIUKFGBDVJHIACVJVK $.

    $( An isomorphism preserves strict ordering.  (Contributed by Stefan
       O'Rear, 16-Nov-2014.) $)
    isoso $p |- ( H Isom R , S ( A , B ) -> ( R Or A <-> S Or B ) ) $=
      ( wiso wor ccnv wi isocnv isosolem syl impbid ) ABCDEFZACGZBDGZNBADCEHZFO
      PIABCDEJBADCQKLABCDEKM $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.  $d x y S $.  $d x y H $.
    $( An isomorphism preserves well-ordering.  Proposition 6.32(3) of
       [TakeutiZaring] p. 33.  (Contributed by NM, 30-Apr-2004.)  (Revised by
       Mario Carneiro, 18-Nov-2014.) $)
    isowe $p |- ( H Isom R , S ( A , B ) -> ( R We A <-> S We B ) ) $=
      ( wiso wfr wor wa wwe isofr isoso anbi12d df-we 3bitr4g ) ABCDEFZACGZACHZ
      IBDGZBDHZIACJBDJPQSRTABCDEKABCDELMACNBDNO $.

    $( A weak form of ~ isowe that does not need Replacement.  (Contributed by
       Mario Carneiro, 18-Nov-2014.) $)
    isowe2 $p |- ( ( H Isom R , S ( A , B ) /\ A. x ( H " x ) e. _V ) ->
                   ( S We B -> R We A ) ) $=
      ( vy wiso cv cima cvv wcel wal wa wfr wor wwe simpl weq df-we isofrlem wi
      imaeq2 eleq1d spv adantl isosolem adantr anim12d 3imtr4g ) BCDEFHZFAIZJZK
      LZAMZNZCEOZCEPZNBDOZBDPZNCEQBDQUPUQUSURUTUPGBCDEFUKUORUOFGIZJZKLZUKUNVCAG
      AGSUMVBKULVAFUCUDUEUFUAUKURUTUBUOBCDEFUGUHUICETBDTUJ $.
  $}

  ${
    $d x y z w v u A $.  $d x y v u B $.  $d x y z w v u H $.
    $d x y z w v u R $.  $d v u S $.
    $( Any one-to-one onto function determines an isomorphism with an induced
       relation ` S ` .  Proposition 6.33 of [TakeutiZaring] p. 34.
       (Contributed by NM, 30-Apr-2004.) $)
    f1oiso $p |- ( ( H : A -1-1-onto-> B /\ S = { <. z , w >. |
     E. x e. A E. y e. A ( ( z = ( H ` x ) /\ w = ( H ` y ) ) /\ x R y ) } ) ->
                  H Isom R , S ( A , B ) ) $=
      ( vv vu cv cfv wceq wa wbr wrex wb wcel anbi1d wf1o copab wral wiso simpl
      wf1 f1of1 cop df-br eleq2 eqeq1 2rexbidv anbi2d opelopab weq anass f1fveq
      fvex equcom syl6bb anassrs syl5bb rexbidv r19.42v rexbidva breq1 ceqsrexv
      adantl bitrd breq2 sylan9bb anandis sylan9bbr an32s syl5rbb sylan df-isom
      ralrimivva sylanbrc ) EFIUAZHCLZALZIMZNZDLZBLZIMZNZOZWBWFGPZOZBEQAEQZCDUB
      ZNZOVTJLZKLZGPZWOIMZWPIMZHPZRZKEUCJEUCZEFGHIUDVTWNUEVTEFIUFZWNXBEFIUGXCWN
      OZXAJKEEWTWRWSUHZHSZXDWOESZWPESZOZOWQWRWSHUIXCXIWNXFWQRWNXFXEWMSZXCXIOZWQ
      HWMXEUJXJWRWCNZWSWGNZOZWJOZBEQZAEQZXKWQWLXLWHOZWJOZBEQAEQXQCDWRWSWOIURWPI
      URWAWRNZWKXSABEEXTWIXRWJXTWDXLWHWAWRWCUKTTULWEWSNZXSXOABEEYAXRXNWJYAWHXMX
      LWEWSWGUKUMTULUNXCXGXHXQWQRXCXGOZXQXMWOWFGPZOZBEQZXCXHOZWQYBXQAJUOZXMWJOZ
      BEQZOZAEQZYEYBXPYJAEYBWBESZOZXPYGYHOZBEQYJYMXOYNBEXOXLYHOYMYNXLXMWJUPYMXL
      YGYHXCXGYLXLYGRXCXGYLOOXLJAUOYGEFWOWBIUQJAUSUTVATVBVCYGYHBEVDUTVEXGYKYERX
      CYIYEAWOEYGYHYDBEYGWJYCXMWBWOWFGVFUMVCVGVHVIYFYEBKUOZYCOZBEQZWQYFYDYPBEYF
      WFESZOXMYOYCXCXHYRXMYORXCXHYROOXMKBUOYOEFWPWFIUQKBUSUTVATVEXHYQWQRXCYCWQB
      WPEWFWPWOGVJVGVHVIVKVLVBVMVNVOVRVPJKEFGHIVQVS $.
  $}

  ${
    $d A w x y z $.  $d B w x y z $.  $d H w x y z $.  $d R w x y z $.
    f1oiso2.1 $e |- S = { <. x , y >. |
      ( ( x e. B /\ y e. B ) /\ ( `' H ` x ) R ( `' H ` y ) ) } $.
    $( Any one-to-one onto function determines an isomorphism with an induced
       relation ` S ` .  (Contributed by Mario Carneiro, 9-Mar-2013.) $)
    f1oiso2 $p |- ( H : A -1-1-onto-> B -> H Isom R , S ( A , B ) ) $=
      ( vz vw cv cfv wceq wa wbr wrex wcel 3adant3 eqcomd syl2anc wf1o wiso w3a
      copab ccnv f1ocnvdm adantrr f1ocnvfv2 anim12dan simp3 fveq2 eqeq2d anbi2d
      adantrl breq2 anbi12d rspcev syl12anc anbi1d breq1 rexbidv 3expib simp3ll
      simp1 simp2l f1of ffvelrnda eqeltrd simp3lr simp2r simp3r wi f1ocnvfv mpd
      3brtr4d jca31 3exp rexlimdvv impbid opabbidv syl5eq f1oiso mpdan ) CDGUAZ
      FAKZIKZGLZMZBKZJKZGLZMZNZWFWJEOZNZJCPZICPZABUDZMCDEFGUBWDFWEDQZWIDQZNZWEG
      UEZLZWIXBLZEOZNZABUDWRHWDXFWQABWDXFWQWDXAXEWQWDXAXEUCZXCCQZWEXCGLZMZWLNZX
      CWJEOZNZJCPZWQWDXAXHXEWDWSXHWTCDWEGUFUGRXGXDCQZXJWIXDGLZMZNZXEXNWDXAXOXEW
      DWTXOWSCDWIGUFUNRWDXAXRXEWDWSXJWTXQWDWSNXIWECDWEGUHSWDWTNXPWICDWIGUHSUIRW
      DXAXEUJXMXRXENJXDCWJXDMZXKXRXLXEXSWLXQXJXSWKXPWIWJXDGUKULUMWJXDXCEUOUPUQU
      RWPXNIXCCWFXCMZWOXMJCXTWMXKWNXLXTWHXJWLXTWGXIWEWFXCGUKULUSWFXCWJEUTUPVAUQ
      TVBWDWOXFIJCCWDWFCQZWJCQZNZWOXFWDYCWOUCZWSWTXEYDWEWGDWHWLWNWDYCVCZYDWDYAW
      GDQWDYCWOVDZWDYAYBWOVEZWDCDWFGCDGVFZVGTVHYDWIWKDWHWLWNWDYCVIZYDWDYBWKDQYF
      WDYAYBWOVJZWDCDWJGYHVGTVHYDWFWJXCXDEWDYCWMWNVKYDWGWEMZXCWFMZYDWEWGYESYDWD
      YAYKYLVLYFYGCDWFWEGVMTVNYDWKWIMZXDWJMZYDWIWKYISYDWDYBYMYNVLYFYJCDWJWIGVMT
      VNVOVPVQVRVSVTWAIJABCDEFGWBWC $.
  $}

  ${
    $d z w R $.  $d x y z w S $.  $d z w A $.  $d z w B $.  $d x y z w F $.
    f1owe.1 $e |- R = { <. x , y >. | ( F ` x ) S ( F ` y ) } $.
    $( Well-ordering of isomorphic relations.  (Contributed by NM,
       4-Mar-1997.) $)
    f1owe $p |- ( F : A -1-1-onto-> B -> ( S We B -> R We A ) ) $=
      ( vz vw wf1o wwe cv wbr cfv wb wral weq fveq2 breq1d breq2d brabg wa wiso
      rgen2a df-isom isowe sylbir mpan2 biimprd ) CDGKZCELZDFLZUKIMZJMZENUNGOZU
      OGOZFNZPZJCQICQZULUMPZUSIJCAMZGOZBMZGOZFNUPVEFNURABUNUOCCEAIRVCUPVEFVBUNG
      STBJRVEUQUPFVDUOGSUAHUBUEUKUTUCCDEFGUDVAIJCDEFGUFCDEFGUGUHUIUJ $.
  $}

  ${
    $d A a b c $.  $d R b c $.  $d F a b c $.
    $( A set-like well-ordering has no nontrivial automorphisms.  (Contributed
       by Stefan O'Rear, 16-Nov-2014.)  (Revised by Mario Carneiro,
       25-Jun-2015.) $)
    weniso $p |- ( ( R We A /\ R Se A /\ F Isom R , R ( A , A ) ) ->
        F = ( _I |` A ) ) $=
      ( va vc vb wceq cfv wral wn wbr wa syl wcel wi fveq2 id eqeq12d wb adantr
      wwe wse wiso w3a cid cres cv crab c0 wne wrex rabn0 rexnal bitri wreu wss
      simpl1 simpl2 ssrab2 a1i simpr wereu2 syl22anc reurex notbid elrab ralrab
      ex con34b bicomi ralbii wf1o wf simpl3 isof1o f1of ffvelrnd breq1 imbi12d
      simprl rspcv com23 f1of1 f1fveq syl12anc pm2.21 ad2antll sylbid syld ccnv
      imp wf1 f1ocnv 3syl isorel f1ocnvfv2 syl2anc breq1d bitr2d biimpa simplrr
      sylc adantl fveq2d 3eqtr3d wo simprr weso sotrieq con2bid mpbird mpjaodan
      wor syl5bi rexlimdv syl5bir pm2.18d fvresi biimprd ralimia 3ad2ant3 f1ofn
      eqeq2d wfn fnresi eqfnfv ) ABUAZABUBZAABBCUCZUDZCUEAUFZGZDUGZCHZYMYKHZGZD
      AIZYJYNYMGZDAIZYQYJYSYSJZYRJZDAUHZUIUJZYJYSUUCUUADAUKYTUUADAULYRDAUMUNYJU
      UCEUGZFUGZBKZJZEUUBIZFUUBUKZYSYJUUCUUIYJUUCLZUUHFUUBUOZUUIUUJYGYHUUBAUPZU
      UCUUKYGYHYIUUCUQYGYHYIUUCURUULUUJUUADAUSUTYJUUCVAFEAUUBBVBVCUUHFUUBVDMVHY
      JUUHYSFUUBUUEUUBNUUEANZUUECHZUUEGZJZLZYJUUHYSOZUUAUUPDUUEAYMUUEGZYRUUOUUS
      YNUUNYMUUEYMUUECPUUSQRVEVFYJUUQUURUUHUUFUUDCHZUUDGZOZEAIZYJUUQLZYSUUHUVAJ
      ZUUGOZEAIUVCUUAUVEUUGEDAYMUUDGZYRUVAUVGYNUUTYMUUDYMUUDCPUVGQRVEVGUVFUVBEA
      UVBUVFUUFUVAVIVJVKUNUVDUUNUUEBKZUVCYSOUUEUUNBKZUVDUVHLUVCUUNCHZUUNGZYSUVD
      UVHUVCUVKOUVDUVCUVHUVKUVDUUNANZUVCUVHUVKOZOUVDAAUUECUVDAACVLZAACVMUVDYIUV
      NYGYHYIUUQVNZAABBCVOZMZAACVPMYJUUMUUPVTZVQZUVBUVMEUUNAUUDUUNGZUUFUVHUVAUV
      KUUDUUNUUEBVRUVTUUTUVJUUDUUNUUDUUNCPUVTQRVSWAMWBWKUVDUVKYSOUVHUVDUVKUUOYS
      UVDAACWLZUVLUUMUVKUUOSUVDUVNUWAUVQAACWCMUVSUVRAAUUNUUECWDWEUUPUUOYSOYJUUM
      UUOYSWFZWGWHTWIUVDUVILZUVCUUECWJZHZCHZUWEGZYSUWCUWEANZUWEUUEBKZUVCUWGOUVD
      UWHUVIUVDAAUUEUWDUVDUVNAAUWDVLAAUWDVMUVQAACWMAAUWDVPWNUVRVQZTUVDUVIUWIUVD
      UWIUWFUUNBKZUVIUVDYIUWHUUMUWIUWKSUVOUWJUVRAAUWEUUEBBCWOWEUVDUWFUUEUUNBUVD
      UVNUUMUWFUUEGZUVQUVRAAUUECWPWQZWRWSWTUWHUVCUWIUWGUVBUWIUWGOEUWEAUUDUWEGZU
      UFUWIUVAUWGUUDUWEUUEBVRUWNUUTUWFUUDUWEUUDUWECPUWNQRVSWAWBXBUVDUWGYSOUVIUV
      DUWGYSUVDUWGLZUUPUUOYSYJUUMUUPUWGXAUWOUWFCHZUWFUUNUUEUWGUWPUWFGUVDUWFUWEC
      PXCUVDUWPUUNGUWGUVDUWFUUECUWMXDTUVDUWLUWGUWMTXEUWBXBVHTWIUVDUVHUVIXFZUUPY
      JUUMUUPXGUVDUUOUWQUVDABXMZUVLUUMUUOUWQJSUVDYGUWRYGYHYIUUQUQABXHMUVSUVRAUU
      NUUEBXIWEXJXKXLXNVHXNXOWIXPXQYRYPDAYMANZYPYRUWSYOYMYNAYMXRYCXSXTMYJCAYDZY
      KAYDZYLYQSYJUVNUWTYIYGUVNYHUVPYAAACYBMUXAYJAYEUTDACYKYFWQXK $.

    $( Thus, there is at most one isomorphism between any two set-like
       well-ordered classes.  Class version of ~ wemoiso .  (Contributed by
       Mario Carneiro, 25-Jun-2015.) $)
    weisoeq $p |- ( ( ( R We A /\ R Se A ) /\
      ( F Isom R , S ( A , B ) /\ G Isom R , S ( A , B ) ) ) -> F = G ) $=
      ( wwe wse wa wiso wceq ccnv ccom cid cres wf1 wf1o isof1o f1of1 3syl id
      isocnv isotr syl2anr weniso sylan2 simprl simprr f1eqcocnv syl2anc mpbird
      3expa wb ) ACGZACHZIZABCDEJZABCDFJZIZIZEFKZELZFMZNAOKZUSUPAACCVCJZVDURURB
      ADCVBJVEUQURUAABCDEUBABACDCVBFUCUDUNUOVEVDACVCUEULUFUTABEPZABFPZVAVDUMUTU
      QABEQVFUPUQURUGABCDERABESTUTURABFQVGUPUQURUHABCDFRABFSTABEFUIUJUK $.

    $( Thus, there is at most one isomorphism between any two set-like
       well-ordered classes.  Class version of ~ wemoiso2 .  (Contributed by
       Mario Carneiro, 25-Jun-2015.) $)
    weisoeq2 $p |- ( ( ( S We B /\ S Se B ) /\
      ( F Isom R , S ( A , B ) /\ G Isom R , S ( A , B ) ) ) -> F = G ) $=
      ( wwe wse wa wiso wceq ccnv isocnv anim12i weisoeq wrel wf1o isof1o 3syl
      f1orel sylan2 wb simprl simprr cnveqb syl2anc mpbird ) BDGBDHIZABCDEJZABC
      DFJZIZIZEFKZELZFLZKZUKUHBADCUNJZBADCUOJZIUPUIUQUJURABCDEMABCDFMNBADCUNUOO
      UAULEPZFPZUMUPUBULUIABEQUSUHUIUJUCABCDERABETSULUJABFQUTUHUIUJUDABCDFRABFT
      SEFUEUFUG $.
  $}

  ${
    $d w x y z A $.  $d w x y z F $.  $d w V $.  $d w x y X $.
    knatar.1 $e |- X = |^| { z e. ~P A | ( F ` z ) C_ z } $.
    $( The Knaster-Tarski theorem says that every monotone function over a
       complete lattice has a (least) fixpoint.  Here we specialize this
       theorem to the case when the lattice is the powerset lattice ` ~P A ` .
       (Contributed by Mario Carneiro, 11-Jun-2015.) $)
    knatar $p |- ( ( A e. V /\ ( F ` A ) C_ A /\
        A. x e. ~P A A. y e. ~P x ( F ` y ) C_ ( F ` x ) ) ->
      ( X C_ A /\ ( F ` X ) = X ) ) $=
      ( vw wcel cfv wss cv cpw wral wceq fveq2 sylibr rspcv sylc w3a crab pwidg
      cint 3ad2ant1 simp2 id sseq12d intminss syl2anc syl5eqss wi wa adantl vex
      elpw2 simprl simpl3 pweq sseq2d raleqbidv sseq1d sstrd ralrimiva ssintrab
      simprr expr cbvrabv inteqi eqtri syl6sseqr sselpwd simp3 fvex elpw eqssd
      jca ) DFJZDEKZDLZBMZEKZAMZEKZLZBWCNZOZADNZOZUAZGDLGEKZGPWJGCMZEKZWLLZCWHU
      BZUDZDHWJDWHJZVTWPDLVRVTWQWIDFUCUEZVRVTWIUFZWNVTCDWHWLDPZWMVSWLDWLDEQWTUG
      UHUIUJUKZWJWKGWJWKIMZEKZXBLZIWHUBZUDZGWJXDWKXBLZULZIWHOWKXFLWJXHIWHWJXBWH
      JZXDXGWJXIXDUMZUMZWKXCXBXKGXBNZJZWBXCLZBXLOZWKXCLZXKGXBLXMXKGWPXBHXJWPXBL
      WJWNXDCXBWHWLXBPZWMXCWLXBWLXBEQXQUGUHZUIUNUKGXBIUOUPRXKXIWIXOWJXIXDUQVRVT
      WIXJURWGXOAXBWHWCXBPZWEXNBWFXLWCXBUSXSWDXCWBWCXBEQUTVASTXNXPBGXLWAGPZWBWK
      XCWAGEQZVBSTWJXIXDVFVCVGVDXDIWKWHVERGWPXFHWOXEWNXDCIWHXRVHVIVJZVKZWJGXFWK
      YBWJWKWHJZWKEKZWKLZXFWKLWJWKDLYDWJWKVSDWJGWHJZWBVSLZBWHOZWKVSLZWJGDWHWRXA
      VLZWJWQWIYIWRVRVTWIVMZWGYIADWHWCDPZWEYHBWFWHWCDUSYMWDVSWBWCDEQUTVASTYHYJB
      GWHXTWBWKVSYAVBSTWSVCWKDGEVNZVORWJWKGNZJZWBWKLZBYOOZYFWJWKGLYPYCWKGYNVORW
      JYGWIYRYKYLWGYRAGWHWCGPZWEYQBWFYOWCGUSYSWDWKWBWCGEQUTVASTYQYFBWKYOWAWKPWB
      YEWKWAWKEQVBSTXDYFIWKWHXBWKPZXCYEXBWKXBWKEQYTUGUHUIUJUKVPVQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cantor's Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y A $.  $d x y F $.
    canth.1 $e |- A e. _V $.
    $( No set ` A ` is equinumerous to its power set (Cantor's theorem), i.e.
       no function can map ` A ` it onto its power set.  Compare Theorem 6B(b)
       of [Enderton] p. 132.  For the equinumerosity version, see ~ canth2 .
       Note that ` A ` must be a set: this theorem does not hold when ` A ` is
       too large to be a set; see ~ ncanth for a counterexample.  (Use ~ nex if
       you want the form ` -. E. f f : A -onto-> ~P A ` .)  (Contributed by NM,
       7-Aug-1994.)  (Proof shortened by Mario Carneiro, 7-Jun-2016.) $)
    canth $p |- -. F : A -onto-> ~P A $=
      ( vx vy cpw wfo cv cfv wcel wn crab crn wss ssrab2 elpw2 mpbir forn wceq
      wb syl5eleqr wrex id fveq2 eleq12d elrab baibr nbbn sylib eleq2 nsyl nrex
      notbid wfn fofn fvelrnb syl mtbiri pm2.65i ) AAFZBGZDHZVBBIZJZKZDALZBMZJZ
      VAVFUTVGVFUTJVFANVEDAOVFACPQAUTBRUAVAVHEHZBIZVFSZEAUBZVKEAVIAJZVIVJJZVIVF
      JZTZVKVMVNKZVOTVPKVOVMVQVEVQDVIAVBVISZVDVNVRVBVIVCVJVRUCVBVIBUDUEUMUFUGVN
      VOUHUIVJVFVIUJUKULVABAUNVHVLTAUTBUOEAVFBUPUQURUS $.
  $}

  $( Cantor's theorem fails for the universal class (which is not a set but a
     proper class by ~ vprc ).  Specifically, the identity function maps the
     universe onto its power class.  Compare ~ canth that works for sets.  See
     also the remark in ~ ru about NF, in which Cantor's theorem fails for sets
     that are "too large."  This theorem gives some intuition behind that
     failure: in NF the universal class is a set, and it equals its own power
     set.  (Contributed by NM, 29-Jun-2004.) $)
  ncanth $p |- _I : _V -onto-> ~P _V $=
    ( cvv cpw cid wf1o wfo f1ovi wceq wb pwv f1oeq3 ax-mp mpbir f1ofo ) AABZCDZ
    ANCEOAACDZFNAGOPHINAACJKLANCMK $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Restricted iota (description binder)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c iota_ $.

  $( Extend class notation with restricted description binder. $)
  crio $a class ( iota_ x e. A ph ) $.

  $( Define restricted description binder.  In case there is no unique ` x `
     such that ` ( x e. A /\ ph ) ` holds, it evaluates to the empty set.  See
     also comments for ~ df-iota .  (Contributed by NM, 15-Sep-2011.)  (Revised
     by Mario Carneiro, 15-Oct-2016.)  (Revised by NM, 2-Sep-2018.) $)
  df-riota $a |- ( iota_ x e. A ph ) = ( iota x ( x e. A /\ ph ) ) $.

  ${
    $d x ph $.
    riotaeqdv.1 $e |- ( ph -> A = B ) $.
    $( Formula-building deduction rule for iota.  (Contributed by NM,
       15-Sep-2011.) $)
    riotaeqdv $p |- ( ph -> ( iota_ x e. A ps ) = ( iota_ x e. B ps ) ) $=
      ( cv wcel wa cio crio eleq2d anbi1d iotabidv df-riota 3eqtr4g ) ACGZDHZBI
      ZCJQEHZBIZCJBCDKBCEKASUACARTBADEQFLMNBCDOBCEOP $.
  $}

  ${
    $d x ph $.
    riotabidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building deduction rule for restricted iota.  (Contributed by
       NM, 15-Sep-2011.) $)
    riotabidv $p |- ( ph -> ( iota_ x e. A ps ) = ( iota_ x e. A ch ) ) $=
      ( cv wcel wa cio crio anbi2d iotabidv df-riota 3eqtr4g ) ADGEHZBIZDJPCIZD
      JBDEKCDEKAQRDABCPFLMBDENCDENO $.
  $}

  ${
    $d x ph $.
    riotaeqbidv.1 $e |- ( ph -> A = B ) $.
    riotaeqbidv.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equality deduction for restricted universal quantifier.  (Contributed by
       NM, 15-Sep-2011.) $)
    riotaeqbidv $p |- ( ph -> ( iota_ x e. A ps ) = ( iota_ x e. B ch ) ) $=
      ( crio riotabidv riotaeqdv eqtrd ) ABDEICDEICDFIABCDEHJACDEFGKL $.
  $}

  $( Restricted iota is a set.  (Contributed by NM, 15-Sep-2011.) $)
  riotaex $p |- ( iota_ x e. A ps ) e. _V $=
    ( crio cv wcel wa cio cvv df-riota iotaex eqeltri ) ABCDBECFAGZBHIABCJMBKL
    $.

  $( An iota restricted to the universe is unrestricted.  (Contributed by NM,
     18-Sep-2011.) $)
  riotav $p |- ( iota_ x e. _V ph ) = ( iota x ph ) $=
    ( cvv crio cv wcel wa cio df-riota vex biantrur iotabii eqtr4i ) ABCDBECFZA
    GZBHABHABCIAOBNABJKLM $.

  $( Restricted iota in terms of class union.  (Contributed by NM,
     11-Oct-2011.) $)
  riotauni $p |- ( E! x e. A ph
                    -> ( iota_ x e. A ph ) = U. { x e. A | ph } ) $=
    ( wreu cv wcel wa cio cab cuni crio crab wceq df-reu iotauni sylbi df-riota
    weu df-rab unieqi 3eqtr4g ) ABCDZBECFAGZBHZUCBIZJZABCKABCLZJUBUCBRUDUFMABCN
    UCBOPABCQUGUEABCSTUA $.

  ${
    $d x A $.
    $( The abstraction variable in a restricted iota descriptor isn't free.
       (Contributed by NM, 12-Oct-2011.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    nfriota1 $p |- F/_ x ( iota_ x e. A ph ) $=
      ( crio cv wcel wa cio df-riota nfiota1 nfcxfr ) BABCDBECFAGZBHABCILBJK $.
  $}

  ${
    nfriotad.1 $e |- F/ y ph $.
    nfriotad.2 $e |- ( ph -> F/ x ps ) $.
    nfriotad.3 $e |- ( ph -> F/_ x A ) $.
    $( Deduction version of ~ nfriota .  (Contributed by NM, 18-Feb-2013.)
       (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfriotad $p |- ( ph -> F/_ x ( iota_ y e. A ps ) ) $=
      ( crio cv wcel wa cio df-riota weq wal wnfc wn nfnae adantr nfcvf nfiotad
      nfan adantl nfeld wnf nfand nfiota1 eqidd drnfc1 mpbiri pm2.61d2 nfcxfrd
      ex ) ACBDEIDJZEKZBLZDMZBDENACDOCPZCURQZAUSRZUTAVALZUQCDAVADFCDDSUCVBUPBCV
      BCUOEVACUOQACDUAUDACEQVAHTUEABCUFVAGTUGUBUNUSUTDURQUQDUHCDURURUSURUIUJUKU
      LUM $.
  $}

  ${
    $d x y $.
    nfriota.1 $e |- F/ x ph $.
    nfriota.2 $e |- F/_ x A $.
    $( A variable not free in a wff remains so in a restricted iota descriptor.
       (Contributed by NM, 12-Oct-2011.) $)
    nfriota $p |- F/_ x ( iota_ y e. A ph ) $=
      ( crio wnfc wtru nftru wnf a1i nfriotad trud ) BACDGHIABCDCJABKIELBDHIFLM
      N $.
  $}

  ${
    $d x z A $.  $d y z A $.  $d z ph $.  $d z ps $.
    cbvriota.1 $e |- F/ y ph $.
    cbvriota.2 $e |- F/ x ps $.
    cbvriota.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change bound variable in a restricted description binder.  (Contributed
       by NM, 18-Mar-2013.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    cbvriota $p |- ( iota_ x e. A ph ) = ( iota_ y e. A ps ) $=
      ( vz cv wcel wa cio crio wsb weq eleq1 anbi12d nfv nfan nfs1v sbie syl6bb
      sbequ12 cbviota sbequ nfsb eqtri df-riota 3eqtr4i ) CJZEKZALZCMZDJZEKZBLZ
      DMZACENBDENUNIJZEKZACIOZLZIMURUMVBCICIPULUTAVAUKUSEQACIUDRUMISUTVACUTCSAC
      IUATUEVBUQIDIDPZUTUPVABUSUOEQVCVAACDOBAIDCUFABCDGHUBUCRUTVADUTDSACIDFUGTU
      QISUEUHACEUIBDEUIUJ $.
  $}

  ${
    $d x A $.  $d y A $.  $d y ph $.  $d x ps $.
    cbvriotav.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change bound variable in a restricted description binder.  (Contributed
       by NM, 18-Mar-2013.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    cbvriotav $p |- ( iota_ x e. A ph ) = ( iota_ y e. A ps ) $=
      ( nfv cbvriota ) ABCDEADGBCGFH $.
  $}

  ${
    $d y z A $.  $d x z B $.  $d z ph $.  $d x y $.
    $( Interchange class substitution and restricted description binder.
       (Contributed by NM, 24-Feb-2013.)  (Revised by NM, 2-Sep-2018.) $)
    csbriota $p |- [_ A / x ]_ ( iota_ y e. B ph )
          = ( iota_ y e. B [. A / x ]. ph ) $=
      ( vz cvv wcel crio csb wsbc wceq cv wsb csbeq1 dfsbcq2 riotabidv wn syl
      c0 eqeq12d vex nfs1v nfcv nfriota weq sbequ12 csbief vtoclg csbprc wa cio
      df-riota weu wex sbcex adantl exlimiv con3i iotanul syl5req eqtrd pm2.61i
      euex ) DGHZBDACEIZJZABDKZCEIZLZBFMZVFJZABFNZCEIZLVJFDGVKDLZVLVGVNVIBVKDVF
      OVOVMVHCEABFDPQUABVKVFVNFUBVMBCEABFUCBEUDUEBFUFAVMCEABFUGQUHUIVERZVGTVIBD
      VFUJVPVICMEHZVHUKZCULZTVHCEUMVPVRCUNZRVSTLVTVEVTVRCUOVEVRCVDVRVECVHVEVQAB
      DUPUQURSUSVRCUTSVAVBVC $.
  $}

  $( Membership law for "the unique element in ` A ` such that ` ph ` ."

     (Contributed by NM, 21-Aug-2011.)  (Revised by Mario Carneiro,
     23-Dec-2016.) $)
  riotacl2 $p |- ( E! x e. A ph -> ( iota_ x e. A ph ) e. { x e. A | ph } ) $=
    ( wreu cv wcel wa cio cab crio crab weu df-reu iotacl sylbi df-riota df-rab
    3eltr4g ) ABCDZBECFAGZBHZTBIZABCJABCKSTBLUAUBFABCMTBNOABCPABCQR $.

  ${
    $d x A $.
    $( Closure of restricted iota.  (Contributed by NM, 21-Aug-2011.) $)
    riotacl $p |- ( E! x e. A ph -> ( iota_ x e. A ph ) e. A ) $=
      ( wreu crab crio ssrab2 riotacl2 sseldi ) ABCDABCECABCFABCGABCHI $.
  $}

  $( Substitution law for descriptions.  Compare ~ iotasbc .  (Contributed by
     NM, 23-Aug-2011.)  (Proof shortened by Mario Carneiro, 24-Dec-2016.) $)
  riotasbc $p |- ( E! x e. A ph -> [. ( iota_ x e. A ph ) / x ]. ph ) $=
    ( wreu crio cab wcel wsbc crab rabssab riotacl2 sseldi df-sbc sylibr ) ABCD
    ZABCEZABFZGABPHOABCIQPABCJABCKLABPMN $.

  ${
    $d x ph $.
    riotabidva.1 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal restricted class abstractions (deduction
       rule).  ( ~ rabbidva analog.)  (Contributed by NM, 17-Jan-2012.) $)
    riotabidva $p |- ( ph -> ( iota_ x e. A ps ) = ( iota_ x e. A ch ) ) $=
      ( cv wcel wa cio crio pm5.32da iotabidv df-riota 3eqtr4g ) ADGEHZBIZDJPCI
      ZDJBDEKCDEKAQRDAPBCFLMBDENCDENO $.
  $}

  ${
    riotabiia.1 $e |- ( x e. A -> ( ph <-> ps ) ) $.
    $( Equivalent wff's yield equal restricted iotas (inference rule).
       ( ~ rabbiia analog.)  (Contributed by NM, 16-Jan-2012.) $)
    riotabiia $p |- ( iota_ x e. A ph ) = ( iota_ x e. A ps ) $=
      ( cvv wceq crio eqid cv wcel wb adantl riotabidva ax-mp ) FFGZACDHBCDHGFI
      PABCDCJDKABLPEMNO $.
  $}

  ${
    $d x A $.
    $( Property of restricted iota.  Compare ~ iota1 .  (Contributed by Mario
       Carneiro, 15-Oct-2016.) $)
    riota1 $p |- ( E! x e. A ph ->
      ( ( x e. A /\ ph ) <-> ( iota_ x e. A ph ) = x ) ) $=
      ( wreu cv wcel wa cio wceq crio weu wb df-reu iota1 sylbi df-riota eqeq1i
      syl6bbr ) ABCDZBEZCFAGZUABHZTIZABCJZTISUABKUAUCLABCMUABNOUDUBTABCPQR $.
  $}

  $( Property of iota.  (Contributed by NM, 23-Aug-2011.) $)
  riota1a $p |- ( ( x e. A /\ E! x e. A ph ) ->
          ( ph <-> ( iota x ( x e. A /\ ph ) ) = x ) ) $=
    ( cv wcel wa wreu cio wceq ibar weu wb df-reu iota1 sylbi sylan9bb ) BDZCEZ
    ARAFZABCGZSBHQIZRAJTSBKSUALABCMSBNOP $.

  ${
    $d x A $.
    riota2df.1 $e |- F/ x ph $.
    riota2df.2 $e |- ( ph -> F/_ x B ) $.
    riota2df.3 $e |- ( ph -> F/ x ch ) $.
    riota2df.4 $e |- ( ph -> B e. A ) $.
    riota2df.5 $e |- ( ( ph /\ x = B ) -> ( ps <-> ch ) ) $.
    $( A deduction version of ~ riota2f .  (Contributed by NM, 17-Feb-2013.)
       (Revised by Mario Carneiro, 15-Oct-2016.) $)
    riota2df $p |- ( ( ph /\ E! x e. A ps ) ->
            ( ch <-> ( iota_ x e. A ps ) = B ) ) $=
      ( wreu wa cv wcel cio wceq crio adantr simpr weu df-reu eqeltrd biantrurd
      sylib adantlr bitr3d nfreu1 nfan wnf wnfc iota2df df-riota eqeq1i syl6bbr
      wb ) ABDELZMZCDNZEOZBMZDPZFQBDERZFQURVACDFEAFEOZUQJSZURUQVADUAAUQTBDEUBUE
      URUSFQZMZBVACVGUTBVGUSFEURVFTURVDVFVESUCUDAVFBCUPUQKUFUGAUQDGBDEUHUIACDUJ
      UQISADFUKUQHSULVCVBFBDEUMUNUO $.
  $}

  ${
    $d x A $.
    riota2f.1 $e |- F/_ x B $.
    riota2f.2 $e |- F/ x ps $.
    riota2f.3 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( This theorem shows a condition that allows us to represent a descriptor
       with a class expression ` B ` .  (Contributed by NM, 23-Aug-2011.)
       (Revised by Mario Carneiro, 15-Oct-2016.) $)
    riota2f $p |- ( ( B e. A /\ E! x e. A ph ) ->
            ( ps <-> ( iota_ x e. A ph ) = B ) ) $=
      ( wcel nfel1 wnfc a1i wnf id cv wceq wb adantl riota2df ) EDIZABCDECEDFJC
      EKTFLBCMTGLTNCOEPABQTHRS $.
  $}

  ${
    $d x ps $.  $d x A $.  $d x B $.
    riota2.1 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( This theorem shows a condition that allows us to represent a descriptor
       with a class expression ` B ` .  (Contributed by NM, 23-Aug-2011.)
       (Revised by Mario Carneiro, 10-Dec-2016.) $)
    riota2 $p |- ( ( B e. A /\ E! x e. A ph ) ->
            ( ps <-> ( iota_ x e. A ph ) = B ) ) $=
      ( nfcv nfv riota2f ) ABCDECEGBCHFI $.
  $}

  ${
    $d I a $.  $d J a $.  $d V a $.  $d X a $.  $d Y a $.
    riotaeqimp.i $e |- I = ( iota_ a e. V X = A ) $.
    riotaeqimp.j $e |- J = ( iota_ a e. V Y = A ) $.
    riotaeqimp.x $e |- ( ph -> E! a e. V X = A ) $.
    riotaeqimp.y $e |- ( ph -> E! a e. V Y = A ) $.
    $( If two restricted iota descriptors for an equality are equal, then the
       terms of the equality are equal.  (Contributed by AV, 6-Dec-2020.) $)
    riotaeqimp $p |- ( ( ph /\ I = J ) -> X = Y ) $=
      ( wceq wa crio csb wb wcel nfcvd adantl eqcomi eqeq2i bicomd wreu riotacl
      a1i biimpa eqeq1i syl syl5eqel nfcsb1d nfeqd id cv csbeq1a eqeq2d syl2anc
      nfv riota2df syl5bb wi syl6bb adantr csbeq1 eqcoms eqeq12 syl5ibrcom expd
      eqcom ancoms sylbird mp2d ) ACDMZNZCGBMZHEOZMZFHDBPZMZFGMZAVMVQAVQVMVQVMQ
      AVPDCDVPJUAUBUFUCUGAVMVSVMFBMZHEOZDMZAVSCWBDIUHADERZWAHEUDZWCVSQADVPEJAVO
      HEUDZVPERLVOHEUEUIUJKWDWENVSWCWDWAVSHEDWDHURWDHDSZWDHFVRWDHFSWDHDBWGUKULW
      DUMHUNZDMZWAVSQWDWIBVRFHDBUOUPTUSUCUQUTUGVNVQGHCBPZMZVSVTVAZAWKVQQVMAWKVP
      CMZVQACERZWFWKWMQACWBEIAWEWBERKWAHEUEUIUJLWNVOWKHECWNHURWNHCSZWNHGWJWNHGS
      WNHCBWOUKULWNUMWHCMZVOWKQWNWPBWJGHCBUOUPTUSUQVPCVIVBVCVMWKWLVAAVMWKVSVTVM
      VTWKVSNVRWJMZWQDCHDCBVDVEVSWKVTWQQFVRGWJVFVJVGVHTVKVL $.
  $}

  ${
    $d x A $.
    riotaprop.0 $e |- F/ x ps $.
    riotaprop.1 $e |- B = ( iota_ x e. A ph ) $.
    riotaprop.2 $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( Properties of a restricted definite description operator.  TODO
       ( ~ df-riota update): can some uses of ~ riota2f be shortened with this?
       (Contributed by NM, 23-Nov-2013.) $)
    riotaprop $p |- ( E! x e. A ph -> ( B e. A /\ ps ) ) $=
      ( wreu wcel crio riotacl syl5eqel wa wceq eqcomi nfriota1 nfcxfr riota2f
      mpbiri mpancom jca ) ACDIZEDJZBUCEACDKZDGACDLMZUDUCBUFUDUCNBUEEOEUEGPABCD
      ECEUEGACDQRFHSTUAUB $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y ph $.  $d y ps $.
    riota5f.1 $e |- ( ph -> F/_ x B ) $.
    riota5f.2 $e |- ( ph -> B e. A ) $.
    riota5f.3 $e |- ( ( ph /\ x e. A ) -> ( ps <-> x = B ) ) $.
    $( A method for computing restricted iota.  (Contributed by NM,
       16-Apr-2013.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    riota5f $p |- ( ph -> ( iota_ x e. A ps ) = B ) $=
      ( vy cv wceq wb wral ralrimiva wi wcel wa wtru a1tru nfv crio wsbc adantl
      wreu reu6i nfra1 nfan nfcvd nfvd simprl simpr simplrr simplrl eqeltrd rsp
      sylc mpbird 2thd mpdan mpbid expr rspsbc nfeqd nfan1 eqeq2d bibi2d ralbid
      riota2df imbi12d sbcied mpd ) ABCJZEKZLZCDMZBCDUAZEKZAVNCDHNABVLIJZKZLZCD
      MZVPVRKZOZIEUBZVOVQOZAEDPWCIDMWDGAWCIDAVRDPZWAWBAWFWAQZQZRWBWHSWHBCDUDZRW
      BLWGWIABCDVRUEUCWHBRCDVRAWGCACTZWFWACWFCTVTCDUFUGUGWHCVRUHWHRCUIAWFWAUJWH
      VSQZBRWKBVSWHVSUKZWKWAVLDPVTAWFWAVSULWKVLVRDWLAWFWAVSUMUNVTCDUOUPUQWKSURV
      HUSUTVANWCIEDVBUPAWCWEIEDGAVREKZQZWAVOWBVQWNVTVNCDAWMCWJACVREACVRUHFVCVDW
      NVSVMBWNVREVLAWMUKZVEVFVGWNVREVPWOVEVIVJUTVK $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    riota5.1 $e |- ( ph -> B e. A ) $.
    riota5.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> x = B ) ) $.
    $( A method for computing restricted iota.  (Contributed by NM,
       20-Oct-2011.)  (Revised by Mario Carneiro, 6-Dec-2016.) $)
    riota5 $p |- ( ph -> ( iota_ x e. A ps ) = B ) $=
      ( nfcvd riota5f ) ABCDEACEHFGI $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Restriction of a unique element to a smaller class.  (Contributed by NM,
       21-Aug-2011.)  (Revised by NM, 22-Mar-2013.) $)
    riotass2 $p |- ( ( ( A C_ B /\ A. x e. A ( ph -> ps ) )
           /\ ( E. x e. A ph /\ E! x e. B ps ) )
         -> ( iota_ x e. A ph ) = ( iota_ x e. B ps ) ) $=
      ( wi wral wa wrex wreu crio wsbc wceq reuss2 simplr riotasbc wcel riotacl
      wss syl rspsbc sbcimg sylibd mpid sylc wb ssel ad2antrr mpd simprr nfsbc1
      nfriota1 sbceq1a riota2f syl2anc mpbid eqcomd ) DESZABFZCDGZHZACDIZBCEJZH
      ZHZBCEKZACDKZVEBCVGLZVFVGMZVEACDJZUTVHABCDENZURUTVDOVJUTACVGLZVHACDPVJVGD
      QZUTVLVHFZFACDRZVMUTUSCVGLVNUSCVGDUAABCVGDUBUCTUDUEVEVGEQZVCVHVIUFVEVMVPV
      EVJVMVKVOTURVMVPFUTVDDEVGUGUHUIVAVBVCUJBVHCEVGACDULZBCVGVQUKBCVGUMUNUOUPU
      Q $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Restriction of a unique element to a smaller class.  (Contributed by NM,
       19-Oct-2005.)  (Revised by Mario Carneiro, 24-Dec-2016.) $)
    riotass $p |- ( ( A C_ B /\ E. x e. A ph /\ E! x e. B ph ) ->
                ( iota_ x e. A ph ) = ( iota_ x e. B ph ) ) $=
      ( wss wrex wreu w3a crio wsbc wceq reuss riotasbc syl wcel riotacl sseldd
      wb simp1 simp3 nfriota1 nfsbc1 sbceq1a riota2f syl2anc mpbid eqcomd ) CDE
      ZABCFZABDGZHZABDIZABCIZUKABUMJZULUMKZUKABCGZUNABCDLZABCMNUKUMDOUJUNUORUKC
      DUMUHUIUJSUKUPUMCOUQABCPNQUHUIUJTAUNBDUMABCUAZABUMURUBABUMUCUDUEUFUG $.

    $( Restriction of a unique element to a smaller class.  (Contributed by NM,
       19-Feb-2006.)  (Revised by NM, 16-Jun-2017.) $)
    moriotass $p |- ( ( A C_ B /\ E. x e. A ph /\ E* x e. B ph ) ->
                ( iota_ x e. A ph ) = ( iota_ x e. B ph ) ) $=
      ( wss wrex wrmo wreu crio wceq w3a ssrexv imp 3adant3 simp3 reu5 sylanbrc
      riotass syld3an3 ) CDEZABCFZABDGZABDHZABCIABDIJTUAUBKABDFZUBUCTUAUDUBTUAU
      DABCDLMNTUAUBOABDPQABCDRS $.
  $}

  $( A restricted class abstraction with a unique member can be expressed as a
     singleton.  (Contributed by NM, 30-May-2006.) $)
  snriota $p |- ( E! x e. A ph ->
                 { x e. A | ph } = { ( iota_ x e. A ph ) } ) $=
    ( wreu cv wcel wa cab cio csn crab crio weu wceq df-reu sniota sylbi df-rab
    df-riota sneqi 3eqtr4g ) ABCDZBECFAGZBHZUCBIZJZABCKABCLZJUBUCBMUDUFNABCOUCB
    PQABCRUGUEABCSTUA $.

  ${
    $d x B $.  $d x C $.  $d x y A $.  $d x y ph $.  $d ps y $.  $d ch x $.
    riotaxfrd.1 $e |- F/_ y C $.
    riotaxfrd.2 $e |- ( ( ph /\ y e. A ) -> B e. A ) $.
    riotaxfrd.3 $e |- ( ( ph /\ ( iota_ y e. A ch ) e. A ) -> C e. A ) $.
    riotaxfrd.4 $e |- ( x = B -> ( ps <-> ch ) ) $.
    riotaxfrd.5 $e |- ( y = ( iota_ y e. A ch ) -> B = C ) $.
    riotaxfrd.6 $e |- ( ( ph /\ x e. A ) -> E! y e. A x = B ) $.
    $( Change the variable ` x ` in the expression for "the unique ` x ` such
       that ` ps ` " to another variable ` y ` contained in expression ` B ` .
       Use ~ reuhypd to eliminate the last hypothesis.  (Contributed by NM,
       16-Jan-2012.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    riotaxfrd $p |- ( ( ph /\ E! x e. A ps )
         -> ( iota_ x e. A ps ) = C ) $=
      ( wreu wa crio crab wcel adantl rabid baib riotabiia wceq reuxfrd riotacl
      cv riotacl2 wb nfriota1 rabxfrd sylan2 mpbird ex sylbid imp baibr reubiia
      syl5 biimpi nfcv nfrab1 nfel2 eleq1 riota2f syl2anc mpbid syl5eqr ) ABDFO
      ZPZBDFQDUGZBDFRZSZDFQZHVMBDFVMVKFSZBBDFUAZUBUCVJHVLSZVNHUDZAVIVQAVICEFOZV
      QABCDEGFJNLUEZAVSVQAVSPVQCEFQZCEFRSZVSWBACEFUHTVSAWAFSZVQWBUICEFUFZABCDEG
      WAHFCEFUJIJLMUKULUMUNUOUPVJHFSZVMDFOZVQVRUIAVIWEAVIVSWEVTVSWCAWEWDAWCWEKU
      NUSUOUPVIWFAVIWFBVMDFVMVOBVPUQURUTTVMVQDFHDHVADHVLBDFVBVCVKHVLVDVEVFVGVH
      $.
  $}

  ${
    $d x y z A $.  $d x z B $.
    eusvobj1.1 $e |- B e. _V $.
    $( Specify the same property in two ways when class ` B ( y ) ` is
       single-valued.  (Contributed by NM, 1-Nov-2010.)  (Proof shortened by
       Mario Carneiro, 24-Dec-2016.) $)
    eusvobj2 $p |- ( E! x E. y e. A x = B
       -> ( E. y e. A x = B <-> A. y e. A x = B ) ) $=
      ( vz cv wceq wrex weu wral cab csn wex wi euabsn2 wcel eleq2 abid exlimiv
      velsn 3bitr3g nfre1 nfeq1 elabrex eqcom bitri syl6bb syl5ib ralrimi eqeq1
      nfab elsn ralbidv syl5ibrcom sylbid sylbi c0 wne euex rexn0 r19.2z impbid
      ex 3syl ) AGZDHZBCIZAJZVHVGBCKZVIVHALZFGZMZHZFNVHVJOZVHAFPVNVOFVNVHVFVLHZ
      VJVNVFVKQVFVMQVHVPVKVMVFRVHASAVLUAUBVNVJVPVLDHZBCKVNVQBCBVKVMVHBAVGBCUCUL
      UDBGCQDVKQZVNVQBACDEUEVNVRDVMQZVQVKVMDRVSDVLHVQDVLEUMDVLUFUGUHUIUJVPVGVQB
      CVFVLDUKUNUOUPTUQVIVHANCURUSZVJVHOVHAUTVHVTAVGBCVATVTVJVHVGBCVBVDVEVC $.

    $( Specify the same object in two ways when class ` B ( y ) ` is
       single-valued.  (Contributed by NM, 1-Nov-2010.)  (Proof shortened by
       Mario Carneiro, 19-Nov-2016.) $)
    eusvobj1 $p |- ( E! x E. y e. A x = B
       -> ( iota x E. y e. A x = B ) = ( iota x A. y e. A x = B ) ) $=
      ( cv wceq wrex weu wral wb wal cio nfeu1 eusvobj2 alrimi iotabi syl ) AFD
      GZBCHZAIZTSBCJZKZALTAMUBAMGUAUCATANABCDEOPTUBAQR $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x F $.
    $( There is one domain element for each value of a one-to-one onto
       function.  (Contributed by NM, 26-May-2006.) $)
    f1ofveu $p |- ( ( F : A -1-1-onto-> B /\ C e. B ) ->
                  E! x e. A ( F ` x ) = C ) $=
      ( wf1o wcel wa cv cfv wceq wreu cop ccnv wf f1ocnv f1of syl wb wfn 3com23
      feu sylan f1ocnvfvb dff1o4 simprbi fnopfvb 3adant3 syl3an1 bitrd reubidva
      w3a 3expa mpbird ) BCEFZDCGZHZAIZEJDKZABLDURMENZGZABLZUOCBUTOZUPVBUOCBUTF
      VCBCEPCBUTQRACBDUTUBUCUQUSVAABUOUPURBGZUSVASUOUPVDULUSDUTJURKZVAUOVDUPUSV
      ESBCURDEUDUAUOUTCTZUPVDVEVASZUOEBTVFBCEUEUFVFUPVGVDCDURUTUGUHUIUJUMUKUN
      $.

    $( Value of the converse of a one-to-one onto function.  (Contributed by
       NM, 26-May-2006.)  (Proof shortened by Mario Carneiro, 24-Dec-2016.) $)
    f1ocnvfv3 $p |- ( ( F : A -1-1-onto-> B /\ C e. B ) ->
                  ( `' F ` C ) = ( iota_ x e. A ( F ` x ) = C ) ) $=
      ( wf1o wcel wa cv cfv wceq crio ccnv f1ocnvdm f1ocnvfvb 3expa an32s eqcom
      wb syl6bbr riota5 eqcomd ) BCEFZDCGZHZAIZEJDKZABLDEMJZUEUGABUHBCDENUEUFBG
      ZHUGUHUFKZUFUHKUCUIUDUGUJSZUCUIUDUKBCUFDEOPQUFUHRTUAUB $.
  $}

  ${
    $d x A $.
    $( Restricted iota equals the empty set when not meaningful.  (Contributed
       by NM, 16-Jan-2012.)  (Revised by Mario Carneiro, 15-Oct-2016.)
       (Revised by NM, 13-Sep-2018.) $)
    riotaund $p |- ( -. E! x e. A ph -> ( iota_ x e. A ph ) = (/) ) $=
      ( wreu wn crio cv wcel cio df-riota weu wceq df-reu iotanul sylnbi syl5eq
      wa c0 ) ABCDZEABCFBGCHAQZBIZRABCJSTBKUARLABCMTBNOP $.

    $( The restricted iota class is limited in size by the base set.
       (Contributed by Mario Carneiro, 24-Dec-2016.) $)
    riotassuni $p |- ( iota_ x e. A ph ) C_ ( ~P U. A u. U. A ) $=
      ( wreu crio cuni cpw cun crab riotauni ssrab2 unissi ssun2 sstri syl6eqss
      wss wn c0 riotaund 0ss pm2.61i ) ABCDZABCEZCFZGZUDHZPUBUCABCIZFZUFABCJUHU
      DUFUGCABCKLUDUEMNOUBQUCRUFABCSUFTOUA $.

    $( Bidirectional closure of restricted iota when domain is not empty.
       (Contributed by NM, 28-Feb-2013.)  (Revised by Mario Carneiro,
       24-Dec-2016.)  (Revised by NM, 13-Sep-2018.) $)
    riotaclb $p |- ( -. (/) e. A
          -> ( E! x e. A ph <-> ( iota_ x e. A ph ) e. A ) ) $=
      ( c0 wcel wreu crio riotacl riotaund eleq1d notbid biimprcd con4d impbid2
      wn ) DCEZOZABCFZABCGZCEZABCHQRTROZTOQUATPUASDCABCIJKLMN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Operations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend class notation to include the value of an operation ` F ` (such as
     ` + ` ) for two arguments ` A ` and ` B ` .  Note that the syntax is
     simply three class symbols in a row surrounded by parentheses.  Since
     operation values are the only possible class expressions consisting of
     three class expressions in a row surrounded by parentheses, the syntax is
     unambiguous.  (For an example of how syntax could become ambiguous if we
     are not careful, see the comment in ~ cneg .) $)
  co $a class ( A F B ) $.

  $( Extend class notation to include class abstraction (class builder) of
     nested ordered pairs. $)
  coprab $a class { <. <. x , y >. , z >. | ph } $.

  $( Extend the definition of a class to include maps-to notation for defining
     an operation via a rule. $)
  cmpt2 $a class ( x e. A , y e. B |-> C ) $.

  $( Define the value of an operation.  Definition of operation value in
     [Enderton] p. 79.  Note that the syntax is simply three class expressions
     in a row bracketed by parentheses.  There are no restrictions of any kind
     on what those class expressions may be, although only certain kinds of
     class expressions - a binary operation ` F ` and its arguments ` A ` and
     ` B ` - will be useful for proving meaningful theorems.  For example, if
     class ` F ` is the operation ` + ` and arguments ` A ` and ` B ` are ` 3 `
     and ` 2 ` , the expression ` ( 3 + 2 ) ` can be proved to equal ` 5 ` (see
     ~ 3p2e5 ).  This definition is well-defined, although not very meaningful,
     when classes ` A ` and/or ` B ` are proper classes (i.e. are not sets);
     see ~ ovprc1 and ~ ovprc2 .  On the other hand, we often find uses for
     this definition when ` F ` is a proper class, such as ` +o ` in ~ oav .
     ` F ` is normally equal to a class of nested ordered pairs of the form
     defined by ~ df-oprab .  (Contributed by NM, 28-Feb-1995.) $)
  df-ov $a |- ( A F B ) = ( F ` <. A , B >. ) $.

  ${
    $d x w $.  $d y w $.  $d z w $.  $d w ph $.
    $( Define the class abstraction (class builder) of a collection of nested
       ordered pairs (for use in defining operations).  This is a special case
       of Definition 4.16 of [TakeutiZaring] p. 14.  Normally ` x ` , ` y ` ,
       and ` z ` are distinct, although the definition doesn't strictly require
       it.  See ~ df-ov for the value of an operation.  The brace notation is
       called "class abstraction" by Quine; it is also called a "class builder"
       in the literature.  The value of the most common operation class builder
       is given by ~ ovmpt2 .  (Contributed by NM, 12-Mar-1995.) $)
    df-oprab $a |- { <. <. x , y >. , z >. | ph } =
                  { w | E. x E. y E. z ( w = <. <. x , y >. , z >. /\ ph ) } $.
  $}

  ${
    $d x z $.  $d y z $.  $d z A $.  $d z B $.  $d z C $.
    $( Define maps-to notation for defining an operation via a rule.  Read as
       "the operation defined by the map from ` x , y ` (in ` A X. B ` ) to
       ` C ( x , y ) ` ."  An extension of ~ df-mpt for two arguments.
       (Contributed by NM, 17-Feb-2008.) $)
    df-mpt2 $a |- ( x e. A , y e. B |-> C ) =
             { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ z = C ) } $.
  $}

  $( Equality theorem for operation value.  (Contributed by NM,
     28-Feb-1995.) $)
  oveq $p |- ( F = G -> ( A F B ) = ( A G B ) ) $=
    ( wceq cop cfv co fveq1 df-ov 3eqtr4g ) CDEABFZCGLDGABCHABDHLCDIABCJABDJK
    $.

  $( Equality theorem for operation value.  (Contributed by NM,
     28-Feb-1995.) $)
  oveq1 $p |- ( A = B -> ( A F C ) = ( B F C ) ) $=
    ( wceq cop cfv co opeq1 fveq2d df-ov 3eqtr4g ) ABEZACFZDGBCFZDGACDHBCDHMNOD
    ABCIJACDKBCDKL $.

  $( Equality theorem for operation value.  (Contributed by NM,
     28-Feb-1995.) $)
  oveq2 $p |- ( A = B -> ( C F A ) = ( C F B ) ) $=
    ( wceq cop cfv co opeq2 fveq2d df-ov 3eqtr4g ) ABEZCAFZDGCBFZDGCADHCBDHMNOD
    ABCIJCADKCBDKL $.

  $( Equality theorem for operation value.  (Contributed by NM,
     16-Jul-1995.) $)
  oveq12 $p |- ( ( A = B /\ C = D ) -> ( A F C ) = ( B F D ) ) $=
    ( wceq co oveq1 oveq2 sylan9eq ) ABFCDFACEGBCEGBDEGABCEHCDBEIJ $.

  ${
    oveq1i.1 $e |- A = B $.
    $( Equality inference for operation value.  (Contributed by NM,
       28-Feb-1995.) $)
    oveq1i $p |- ( A F C ) = ( B F C ) $=
      ( wceq co oveq1 ax-mp ) ABFACDGBCDGFEABCDHI $.

    $( Equality inference for operation value.  (Contributed by NM,
       28-Feb-1995.) $)
    oveq2i $p |- ( C F A ) = ( C F B ) $=
      ( wceq co oveq2 ax-mp ) ABFCADGCBDGFEABCDHI $.

    ${
      oveq12i.2 $e |- C = D $.
      $( Equality inference for operation value.  (Contributed by NM,
         28-Feb-1995.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
      oveq12i $p |- ( A F C ) = ( B F D ) $=
        ( wceq co oveq12 mp2an ) ABHCDHACEIBDEIHFGABCDEJK $.
    $}

    $( Equality inference for operation value.  (Contributed by NM,
       24-Nov-2007.) $)
    oveqi $p |- ( C A D ) = ( C B D ) $=
      ( wceq co oveq ax-mp ) ABFCDAGCDBGFECDABHI $.
  $}

  ${
    oveq123i.1 $e |- A = C $.
    oveq123i.2 $e |- B = D $.
    oveq123i.3 $e |- F = G $.
    $( Equality inference for operation value.  (Contributed by FL,
       11-Jul-2010.) $)
    oveq123i $p |- ( A F B ) = ( C G D ) $=
      ( co oveq12i oveqi eqtri ) ABEJCDEJCDFJACBDEGHKEFCDILM $.
  $}

  ${
    oveq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for operation value.  (Contributed by NM,
       13-Mar-1995.) $)
    oveq1d $p |- ( ph -> ( A F C ) = ( B F C ) ) $=
      ( wceq co oveq1 syl ) ABCGBDEHCDEHGFBCDEIJ $.

    $( Equality deduction for operation value.  (Contributed by NM,
       13-Mar-1995.) $)
    oveq2d $p |- ( ph -> ( C F A ) = ( C F B ) ) $=
      ( wceq co oveq2 syl ) ABCGDBEHDCEHGFBCDEIJ $.

    $( Equality deduction for operation value.  (Contributed by NM,
       9-Sep-2006.) $)
    oveqd $p |- ( ph -> ( C A D ) = ( C B D ) ) $=
      ( wceq co oveq syl ) ABCGDEBHDECHGFDEBCIJ $.

    ${
      oveq12d.2 $e |- ( ph -> C = D ) $.
      $( Equality deduction for operation value.  (Contributed by NM,
         13-Mar-1995.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
      oveq12d $p |- ( ph -> ( A F C ) = ( B F D ) ) $=
        ( wceq co oveq12 syl2anc ) ABCIDEIBDFJCEFJIGHBCDEFKL $.
    $}

    ${
      opreqan12i.2 $e |- ( ps -> C = D ) $.
      $( Equality deduction for operation value.  (Contributed by NM,
         10-Aug-1995.) $)
      oveqan12d $p |- ( ( ph /\ ps ) -> ( A F C ) = ( B F D ) ) $=
        ( wceq co oveq12 syl2an ) ACDJEFJCEGKDFGKJBHICDEFGLM $.

      $( Equality deduction for operation value.  (Contributed by NM,
         10-Aug-1995.) $)
      oveqan12rd $p |- ( ( ps /\ ph ) -> ( A F C ) = ( B F D ) ) $=
        ( co wceq oveqan12d ancoms ) ABCEGJDFGJKABCDEFGHILM $.
    $}
  $}

  ${
    oveq123d.1 $e |- ( ph -> F = G ) $.
    oveq123d.2 $e |- ( ph -> A = B ) $.
    oveq123d.3 $e |- ( ph -> C = D ) $.
    $( Equality deduction for operation value.  (Contributed by FL,
       22-Dec-2008.) $)
    oveq123d $p |- ( ph -> ( A F C ) = ( B G D ) ) $=
      ( co oveqd oveq12d eqtrd ) ABDFKBDGKCEGKAFGBDHLABCDEGIJMN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y F $.  $d x y ph $.  $d y Y $.
    $d x y G $.  $d x y X $.
    $( If an operation value is element of a class for all operands of two
       classes, then the operation value is an element of the class for
       specific operands of the two classes.  (Contributed by Mario Carneiro,
       6-Dec-2014.) $)
    ovrspc2v $p |- ( ( ( X e. A /\ Y e. B ) /\
      A. x e. A A. y e. B ( x F y ) e. C ) -> ( X F Y ) e. C ) $=
      ( cv co wcel wceq oveq1 eleq1d oveq2 rspc2va ) AIZBIZFJZEKGHFJZEKGRFJZEKA
      BGHCDQGLSUAEQGRFMNRHLUATERHGFONP $.

    oveqrspc2v.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) ->
                         ( x F y ) = ( x G y ) ) $.
    $( Restricted specialization of operands, using implicit substitution.
       (Contributed by Mario Carneiro, 6-Dec-2014.) $)
    oveqrspc2v $p |- ( ( ph /\ ( X e. A /\ Y e. B ) ) ->
                         ( X F Y ) = ( X G Y ) ) $=
      ( cv co wceq wral wcel wa ralrimivva oveq1 eqeq12d oveq2 rspc2v mpan9 ) A
      BKZCKZFLZUCUDGLZMZCENBDNHDOIEOPHIFLZHIGLZMZAUGBCDEJQUGUJHUDFLZHUDGLZMBCHI
      DEUCHMUEUKUFULUCHUDFRUCHUDGRSUDIMUKUHULUIUDIHFTUDIHGTSUAUB $.
  $}

  ${
    oveqdr.1 $e |- ( ph -> F = G ) $.
    $( Equality of two operations for any two operands.  Useful in proofs using
       *propd theorems.  (Contributed by Mario Carneiro, 29-Jun-2015.) $)
    oveqdr $p |- ( ( ph /\ ps ) -> ( x F y ) = ( x G y ) ) $=
      ( cv co wceq oveqd adantr ) ACHZDHZEIMNFIJBAEFMNGKL $.
  $}

  ${
    nfovd.2 $e |- ( ph -> F/_ x A ) $.
    nfovd.3 $e |- ( ph -> F/_ x F ) $.
    nfovd.4 $e |- ( ph -> F/_ x B ) $.
    $( Deduction version of bound-variable hypothesis builder ~ nfov .
       (Contributed by NM, 13-Dec-2005.)  (Proof shortened by Andrew Salmon,
       22-Oct-2011.) $)
    nfovd $p |- ( ph -> F/_ x ( A F B ) ) $=
      ( co cop cfv df-ov nfopd nffvd nfcxfrd ) ABCDEICDJZEKCDELABPEGABCDFHMNO
      $.
  $}

  ${
    nfov.1 $e |- F/_ x A $.
    nfov.2 $e |- F/_ x F $.
    nfov.3 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for operation value.  (Contributed by
       NM, 4-May-2004.) $)
    nfov $p |- F/_ x ( A F B ) $=
      ( co wnfc wtru a1i nfovd trud ) ABCDHIJABCDABIJEKADIJFKACIJGKLM $.
  $}

  ${
    $d a ph r s t w $.  $d a r s t w x $.  $d a r s t w y $.  $d a r s t w z $.
    $( The law of concretion.  Special case of Theorem 9.5 of [Quine] p. 61.
       (Contributed by Mario Carneiro, 20-Mar-2013.) $)
    oprabid $p |- ( <. <. x , y >. , z >. e.
        { <. <. x , y >. , z >. | ph } <-> ph ) $=
      ( vw va vt vr vs cv cop wceq wa wex wi vex weq weu euequ1 eupick opex w3a
      coprab eqvinop biimpi eqeq1 opth1 syl6bi opeq1 eqeq2d otth2 syl5bi df-3an
      mpan syl6 3impd bitri anbi1i anass 3bitri 3exbii wn nfcvf2 nfcvd exdistrf
      wal nfeqd eximi excom 3imtr4i anim2i 3syl sylbi syl11 eqcom syl6bb anbi1d
      3exbidv imbi1d imbi12d mpbiri adantr exlimivv com3l mpcom 19.8a ex impbid
      mpdd df-oprab elab2 ) EJZBJZCJZKZDJZKZLZAMZDNZCNZBNZAEWQABCDUCWOWPUAWRXBA
      WLFJZGJZKZLZXEWQLZMZGNFNZWRXBAOZWRXIFGWLWOWPWMWNUADPZUDUEXHWRXJOZFGXFXLXG
      XFWRXCWOLZXJXFWRXGXMWLXEWQUFXCXDWOWPFPGPUGUHXMXFWRXJXMXCHJZIJZKZLZXPWOLZM
      ZINHNXFXLOZHIXCWMWNBPZCPZUDXSXTHIXQXTXRXQXFWLXPXDKZLZXLXQXEYCWLXCXPXDUIUJ
      YDXLWQYCLZYEAMZDNCNBNZAOZOBHQZCIQZDGQZAMZDNZMCNZMZBNZYEAYGYEYIYJYKUBZYPAW
      MWNXNXOWPXDYAYBXKUKZYPYIYJYKAYPYIYNYJYKAOZOYIBRYPYIYNOBHSYIYNBTUNYNYJYMYS
      YJCRYNYJYMOCISYJYMCTUNYKDRYMYSDGSYKADTUNUOUOUPULYGYIYJYLMZMZDNZCNBNZYPYFU
      UABCDYFYIYJMZYKMZAMUUDYLMUUAYEUUEAYEYQUUEYRYIYJYKUMUQURUUDYKAUSYIYJYLUSUT
      VAUUCYIYTDNZMZCNBNZYIUUFCNZMZBNYPUUBBNZCNUUGBNZCNUUCUUHUUKUULCYIYTBDBDQBV
      FVBZDWMXNBDVCUUMDXNVDVGVEVHUUBBCVIUUGBCVIVJYIUUFBCBCQBVFVBZCWMXNBCVCUUNCX
      NVDVGVEUUJYOBUUIYNYIYJYLCDCDQCVFVBZDWNXOCDVCUUODXOVDVGVEVKVHVLVMVNYDWRYEX
      JYHYDWRYCWQLYEWLYCWQUFYCWQVOVPZYDXBYGAYDWSYFBCDYDWRYEAUUPVQVRVSVTWAUHWBWC
      VMWDWIWBWCWEWRAXBWSWTXAXBWSDWFWTCWFXABWFVLWGWHABCDEWJWK $.
  $}

  $( The result of an operation is a set.  (Contributed by NM, 13-Mar-1995.) $)
  ovex $p |- ( A F B ) e. _V $=
    ( co cop cfv cvv df-ov fvex eqeltri ) ABCDABEZCFGABCHKCIJ $.

  ${
    ovexi.1 $e |- A = ( B F C ) $.
    $( The result of an operation is a set.  (Contributed by Glauco Siliprandi,
       26-Jun-2021.) $)
    ovexi $p |- A e. _V $=
      ( co cvv ovex eqeltri ) ABCDFGEBCDHI $.
  $}

  $( The result of an operation is a set (common case).  (Contributed by Glauco
     Siliprandi, 23-Oct-2021.) $)
  ovexd $p |- ( ph -> ( A F B ) e. _V ) $=
    ( co cvv wcel ovex a1i ) BCDEFGABCDHI $.

  $( The result of an operation value is always a subset of the union of the
     range.  (Contributed by Mario Carneiro, 12-Jan-2017.) $)
  ovssunirn $p |- ( X F Y ) C_ U. ran F $=
    ( co cop cfv crn cuni df-ov fvssunirn eqsstri ) BCADBCEZAFAGHBCAIALJK $.

  $( Operation value of the empty set.  (Contributed by AV, 15-May-2021.) $)
  0ov $p |- ( A (/) B ) = (/) $=
    ( c0 co cop cfv df-ov 0fv eqtri ) ABCDABEZCFCABCGJHI $.

  ${
    ovprc1.1 $e |- Rel dom F $.
    $( The value of an operation when the one of the arguments is a proper
       class.  Note: this theorem is dependent on our particular definitions of
       operation value, function value, and ordered pair.  (Contributed by
       Mario Carneiro, 26-Apr-2015.) $)
    ovprc $p |- ( -. ( A e. _V /\ B e. _V ) -> ( A F B ) = (/) ) $=
      ( cvv wcel wa wn co cop cfv df-ov cdm wceq wbr df-br wrel brrelex12 mpan
      c0 sylbir con3i ndmfv syl syl5eq ) AEFBEFGZHZABCIABJZCKZTABCLUGUHCMZFZHUI
      TNUKUFUKABUJOZUFABUJPUJQULUFDABUJRSUAUBUHCUCUDUE $.

    $( The value of an operation when the first argument is a proper class.
       (Contributed by NM, 16-Jun-2004.) $)
    ovprc1 $p |- ( -. A e. _V -> ( A F B ) = (/) ) $=
      ( cvv wcel wn wa co c0 wceq simpl con3i ovprc syl ) AEFZGPBEFZHZGABCIJKRP
      PQLMABCDNO $.

    $( The value of an operation when the second argument is a proper class.
       (Contributed by Mario Carneiro, 26-Apr-2015.) $)
    ovprc2 $p |- ( -. B e. _V -> ( A F B ) = (/) ) $=
      ( cvv wcel wn wa co c0 wceq simpr con3i ovprc syl ) BEFZGAEFZPHZGABCIJKRP
      QPLMABCDNO $.

    $( Reverse closure for an operation value.  (Contributed by Mario Carneiro,
       5-May-2015.) $)
    ovrcl $p |- ( C e. ( A F B ) -> ( A e. _V /\ B e. _V ) ) $=
      ( co wcel c0 wceq cvv wa n0i ovprc nsyl2 ) CABDFZGOHIAJGBJGKOCLABDEMN $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y F $.  $d x y $.
    $( Move class substitution in and out of an operation.  (Contributed by NM,
       12-Nov-2005.)  (Revised by NM, 23-Aug-2018.) $)
    csbov123 $p |- [_ A / x ]_ ( B F C ) =
           ( [_ A / x ]_ B [_ A / x ]_ F [_ A / x ]_ C ) $=
      ( vy cvv wcel co csb cv csbeq1 oveq123d eqeq12d nfcsb1v csbeq1a c0 csbprc
      wceq cfv vex nfov weq csbief vtoclg wn cop df-ov fveq1d 0fv syl5req eqtrd
      syl6eq pm2.61i ) BGHZABCDEIZJZABCJZABDJZABEJZIZSZAFKZUPJZAVCCJZAVCDJZAVCE
      JZIZSVBFBGVCBSZVDUQVHVAAVCBUPLVIVEURVFUSVGUTAVCBELAVCBCLAVCBDLMNAVCUPVHFU
      AAVEVFVGAVCCOAVCEOAVCDOUBAFUCCVEDVFEVGAVCEPAVCCPAVCDPMUDUEUOUFZUQQVAABUPR
      VJVAURUSUGZUTTZQURUSUTUHVJVLVKQTQVJVKUTQABERUIVKUJUMUKULUN $.
  $}

  ${
    $d x B $.  $d x C $.
    $( Move class substitution in and out of an operation.  (Contributed by NM,
       23-Aug-2018.) $)
    csbov $p |- [_ A / x ]_ ( B F C ) = ( B [_ A / x ]_ F C ) $=
      ( co csb csbov123 cvv wcel wceq csbconstg oveq12d cop cfv 0fv df-ov eqtri
      c0 oveqd wn 3eqtr4ri csbprc 3eqtr4a pm2.61i ) ABCDEFGABCGZABDGZABEGZFZCDU
      HFZABCDEHBIJZUIUJKUKUFCUGDUHABCILABDILMUKUAZUFUGSFZCDSFZUIUJCDNZSOSUNUMUO
      PCDSQUMUFUGNZSOSUFUGSQUPPRUBULUHSUFUGABEUCZTULUHSCDUQTUDUER $.
  $}

  ${
    $d x F $.
    $( Move class substitution in and out of an operation.  (Contributed by NM,
       12-Nov-2005.) $)
    csbov12g $p |- ( A e. V ->
                 [_ A / x ]_ ( B F C ) = ( [_ A / x ]_ B F [_ A / x ]_ C ) ) $=
      ( wcel co csb csbov123 csbconstg oveqd syl5eq ) BFGZABCDEHIABCIZABDIZABEI
      ZHOPEHABCDEJNQEOPABEFKLM $.
  $}

  ${
    $d x C $.  $d x F $.
    $( Move class substitution in and out of an operation.  (Contributed by NM,
       12-Nov-2005.) $)
    csbov1g $p |- ( A e. V ->
                  [_ A / x ]_ ( B F C ) = ( [_ A / x ]_ B F C ) ) $=
      ( wcel co csb csbov12g csbconstg oveq2d eqtrd ) BFGZABCDEHIABCIZABDIZEHOD
      EHABCDEFJNPDOEABDFKLM $.
  $}

  ${
    $d x B $.  $d x F $.
    $( Move class substitution in and out of an operation.  (Contributed by NM,
       12-Nov-2005.) $)
    csbov2g $p |- ( A e. V ->
                  [_ A / x ]_ ( B F C ) = ( B F [_ A / x ]_ C ) ) $=
      ( wcel co csb csbov12g csbconstg oveq1d eqtrd ) BFGZABCDEHIABCIZABDIZEHCP
      EHABCDEFJNOCPEABCFKLM $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x y C $.  $d y D $.  $d x y F $.  $d x y S $.
    $( A frequently used special case of ~ rspc2ev for operation values.
       (Contributed by NM, 21-Mar-2007.) $)
    rspceov $p |- ( ( C e. A /\ D e. B /\ S = ( C F D ) ) ->
                 E. x e. A E. y e. B S = ( x F y ) ) $=
      ( cv co wceq oveq1 eqeq2d oveq2 rspc2ev ) GAIZBIZHJZKGEFHJZKGEQHJZKABEFCD
      PEKRTGPEQHLMQFKTSGQFEHNMO $.
  $}

  ${
    elovimad.1 $e |- ( ph -> A e. C ) $.
    elovimad.2 $e |- ( ph -> B e. D ) $.
    elovimad.3 $e |- ( ph -> Fun F ) $.
    elovimad.4 $e |- ( ph -> ( C X. D ) C_ dom F ) $.
    $( Elementhood of the image set of an operation value.  (Contributed by
       Thierry Arnoux, 13-Mar-2017.) $)
    elovimad $p |- ( ph -> ( A F B ) e. ( F " ( C X. D ) ) ) $=
      ( co cop cfv cxp cima df-ov wcel opelxpi syl2anc wfun cdm sseldd funfvima
      wi mpd syl5eqel ) ABCFKBCLZFMZFDENZOZBCFPAUGUIQZUHUJQZABDQCEQUKGHBCDERSZA
      FTUGFUAZQUKULUDIAUIUNUGJUMUBUIUGFUCSUEUF $.
  $}

  $( Value of a binary operation expressed as a binary relation.  See also
     ~ fnbrfvb for functions on Cartesian products.  (Contributed by BJ,
     15-Feb-2022.) $)
  fnbrovb $p |- ( ( F Fn ( V X. W ) /\ ( A e. V /\ B e. W ) ) ->
                                     ( ( A F B ) = C <-> <. A , B >. F C ) ) $=
    ( co wceq cop cfv cxp wfn wcel wa wbr df-ov eqeq1i fnbrfvb2 syl5bb ) ABDGZC
    HABIZDJZCHDEFKLAEMBFMNNUACDOTUBCABDPQABCDEFRS $.

  $( Equivalence of operation value and ordered triple membership, analogous to
     ~ fnopfvb .  (Contributed by NM, 17-Dec-2008.)  (Revised by Mario
     Carneiro, 28-Apr-2015.)  (Proof shortened by BJ, 15-Feb-2022.) $)
  fnotovb $p |- ( ( F Fn ( A X. B ) /\ C e. A /\ D e. B ) ->
                                ( ( C F D ) = R <-> <. C , D , R >. e. F ) ) $=
    ( cxp wfn wcel co wceq cotp wb wa cop wbr fnbrovb df-br a1i df-ot eqcomi
    eleq1i 3bitrd 3impb ) FABGHZCAIZDBIZCDFJEKZCDELZFIZMUEUFUGNNZUHCDOZEFPZULEO
    ZFIZUJCDEFABQUMUOMUKULEFRSUOUJMUKUNUIFUIUNCDETUAUBSUCUD $.

  $( Old proof of ~ fnotovb obsolete as of 15-Feb-2022.  (Contributed by NM,
     17-Dec-2008.)  (Revised by Mario Carneiro, 28-Apr-2015.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  fnotovbOLD $p |- ( ( F Fn ( A X. B ) /\ C e. A /\ D e. B ) ->
                                ( ( C F D ) = R <-> <. C , D , R >. e. F ) ) $=
    ( cxp wfn wcel w3a cop cfv wceq co cotp wb wa opelxpi fnopfvb sylan2 eqeq1i
    3impb df-ov df-ot eleq1i 3bitr4g ) FABGZHZCAIZDBIZJCDKZFLZEMZUKEKZFIZCDFNZE
    MCDEOZFIUHUIUJUMUOPZUIUJQUHUKUGIURCDABRUGUKEFSTUBUPULECDFUCUAUQUNFCDEUDUEUF
    $.

  $( A collection of ordered pairs with an extension of a binary relation is a
     set.  (Contributed by Alexander van der Vekens, 1-Nov-2017.)  (Revised by
     BJ/AV, 20-Jun-2019.)  (Proof shortened by OpenAI, 25-Mar-2020.) $)
  opabbrex $p |- ( ( A. x A. y ( x R y -> ph ) /\ { <. x , y >. | ph } e. V )
                   -> { <. x , y >. | ( x R y /\ ps ) } e. _V ) $=
    ( cv wbr wi wal copab wcel wa simpr wss pm3.41 2alimi adantr ssopab2 syl
    ssexd ) CGDGEHZAIZDJCJZACDKZFLZMZUBBMZCDKZUEFUDUFNUGUHAIZDJCJZUIUEOUDUKUFUC
    UJCDUBBAPQRUHACDSTUA $.

  ${
    $d ph x $.  $d ph y $.
    opabresex2d.1 $e |- ( ( ph /\ x ( W ` G ) y ) -> ps ) $.
    opabresex2d.2 $e |- ( ph -> { <. x , y >. | ps } e. V ) $.
    $( Restrictions of a collection of ordered pairs of related elements are
       sets.  (Contributed by Alexander van der Vekens, 1-Nov-2017.)  (Revised
       by AV, 15-Jan-2021.) $)
    opabresex2d $p |- ( ph -> { <. x , y >. |
                                ( x ( W ` G ) y /\ th ) } e. _V ) $=
      ( cv cfv wbr wi wal copab wcel wa cvv ex alrimivv opabbrex syl2anc ) ADKE
      KFHLZMZBNZEODOBDEPGQUECRDEPSQAUFDEAUEBITUAJBCDEUDGUBUC $.
  $}

  ${
    $d F z $.  $d Z x y z $.  $d ph x y z $.  $d ps z $.
    fvmptopab.1 $e |- ( ( ph /\ z = Z ) -> ( ch <-> ps ) ) $.
    fvmptopab.2 $e |- ( ph -> { <. x , y >. | x ( F ` Z ) y } e. _V ) $.
    fvmptopab.3 $e |- M = ( z e. _V |-> { <. x , y >. |
                                             ( x ( F ` z ) y /\ ch ) } ) $.
    $( The function value of a mapping ` M ` to a restricted binary relation
       expressed as an ordered-pair class abstraction:  The restricted binary
       relation is a binary relation given as value of a function ` F `
       restricted by the condition ` ps ` .  (Contributed by AV, 31-Jan-2021.)
       (Revised by AV, 29-Oct-2021.) $)
    fvmptopab $p |- ( ph -> ( M ` Z )
                             = { <. x , y >. | ( x ( F ` Z ) y /\ ps ) } ) $=
      ( cvv wcel cfv cv wa wceq wal c0 wbr copab wi cmpt a1i fveq2 breqd adantl
      wb adantll anbi12d opabbidv simpl id opabbrex sylancr fvmptd ex fvprc br0
      gen2 wn mtbiri intnanrd alrimivv opab0 sylibr eqtr4d a1d pm2.61i ) IMNZAI
      HOZDPZEPZIGOZUAZBQZDEUBZRZUCVKAVSVKAQZFIVMVNFPZGOZUAZCQZDEUBZVRMHMHFMWEUD
      RVTLUEVTWAIRZQZWDVQDEWGWCVPCBWFWCVPUIVTWFWBVOVMVNWAIGUFUGUHAWFCBUIVKJUJUK
      ULVKAUMVTVPVPUCZESDSVPDEUBMNZVRMNWHDEVPUNVAAWIVKKUHVPBDEVOMUOUPUQURVKVBZV
      SAWJVLTVRIHUSWJVQVBZESDSVRTRWJWKDEWJVPBWJVPVMVNTUAVMVNUTWJVOTVMVNIGUSUGVC
      VDVEVQDEVFVGVHVIVJ $.
  $}

  $( The empty set is never an element in an ordered-pair class abstraction.
     (Contributed by Alexander van der Vekens, 5-Nov-2017.) $)
  0neqopab $p |- -. (/) e. { <. x , y >. | ph } $=
    ( c0 copab wcel wn cv cop wa wex elopab nfopab1 nfel2 nfn nfopab2 vex sylbi
    wceq exlimi wne wi opnzi nesym pm2.21 ax-mp adantr id pm2.61i ) DABCEZFZUKG
    ZUKDBHZCHZIZSZAJZCKZBKULABCDLURULBUKBBDUJABCMNOUQULCUKCCDUJABCPNOUPULAUODUA
    ZUPULUBZUMUNBQCQUCUSUPGUTUODUDUPULUERUFUGTTRULUHUI $.

  $( If two classes are in a relationship given by an ordered-pair class
     abstraction, the classes are sets.  (Contributed by Alexander van der
     Vekens, 5-Nov-2017.) $)
  brabv $p |- ( X { <. x , y >. | ph } Y -> ( X e. _V /\ Y e. _V ) ) $=
    ( copab wbr cop wcel cvv wa df-br wn wceq opprc 0neqopab eleq1 mtbiri syl
    c0 con4i sylbi ) DEABCFZGDEHZUCIZDJIEJIKZDEUCLUFUEUFMUDTNZUEMDEOUGUETUCIABC
    PUDTUCQRSUAUB $.

  ${
    brfvopab.1 $e |- ( X e. _V -> ( F ` X ) = { <. y , z >. | ph } ) $.
    $( The classes involved in a binary relation of a function value which is
       an ordered-pair class abstraction are sets.  (Contributed by AV,
       7-Jan-2021.) $)
    brfvopab $p |- ( A ( F ` X ) B -> ( X e. _V /\ A e. _V /\ B e. _V ) ) $=
      ( cvv wcel cfv wbr w3a wi wa copab breqd brabv syl6bi c0 imdistani 3anass
      sylibr ex wn wceq fvprc breq br0 pm2.21i syl pm2.61i ) GIJZDEGFKZLZUMDIJZ
      EIJZMZNZUMUOURUMUOOUMUPUQOZOURUMUOUTUMUODEABCPZLUTUMUNVADEHQABCDERSUAUMUP
      UQUBUCUDUMUEUNTUFZUSGFUGVBUODETLZURDEUNTUHVCURDEUIUJSUKUL $.
  $}

  ${
    $d x z w v $.  $d y z w v $.  $d w ph v $.
    $( Class abstraction for operations in terms of class abstraction of
       ordered pairs.  (Contributed by NM, 12-Mar-1995.) $)
    dfoprab2 $p |- { <. <. x , y >. , z >. | ph } =
                   { <. w , z >. | E. x E. y ( w = <. x , y >. /\ ph ) } $=
      ( vv cv cop wceq wa wex cab coprab copab excom exrot4 opeq1 3bitr3i bitri
      eqeq2d pm5.32ri anbi1i anass an32 exbii opex isseti 19.42v 3exbii 19.42vv
      mpbiran2 2exbii abbii df-oprab df-opab 3eqtr4i ) FGZBGZCGZHZDGZHZIZAJZDKC
      KBKZFLUQEGZVAHZIZVFUTIZAJZCKBKZJZDKEKZFLABCDMVKEDNVEVMFVHVJJZCKBKZEKDKZVO
      DKEKVEVMVODEOVPVNEKZDKCKBKVEVNDEBCPVQVDBCDVQVDVIJZEKZVDVNVREVHVIJZAJVCVIJ
      ZAJVNVRVTWAAVIVHVCVIVGVBUQVFUTVAQTUAUBVHVIAUCVCVIAUDRUEVSVDVIEKEUTURUSUFU
      GVDVIEUHUKSUISVOVLEDVHVJBCUJULRUMABCDFUNVKEDFUOUP $.

    $( An operation class abstraction is a relation.  (Contributed by NM,
       16-Jun-2004.) $)
    reloprab $p |- Rel { <. <. x , y >. , z >. | ph } $=
      ( vw cv cop wceq wa wex coprab dfoprab2 relopabi ) EFBFCFGHAICJBJEDABCDKA
      BCDELM $.
  $}

  ${
    $d X w x y z $.  $d Y w x y z $.  $d Z w x y z $.  $d ph w $.
    $( If a pair and a class are in a relationship given by a class abstraction
       of a collection of nested ordered pairs, the involved classes are sets.
       (Contributed by Alexander van der Vekens, 8-Jul-2018.) $)
    oprabv $p |- ( <. X , Y >. { <. <. x , y >. , z >. | ph } Z
                   -> ( X e. _V /\ Y e. _V /\ Z e. _V ) ) $=
      ( vw cop cvv wcel wa mpan wi cv wceq wex nfcv nfeq1 nfex wbr w3a reloprab
      coprab wrel brrelex12 df-br copab wsbc opex nfv nfan nfsbc1v eqeq1 anbi1d
      2exbidv sbceq1a anbi2d opelopabgf eqcom opth bitri eqvisset anim12i sylbi
      wb vex adantr exlimivv anim1i df-3an sylibr expcom sylbid dfoprab2 eleq2s
      com12 adantl mpcom ) EFIZJKZGJKZLZVTGABCDUDZUAZEJKZFJKZWBUBZWDUEWEWCABCDU
      CVTGWDUFMWBWEWHNWAWEWBWHWEVTGIZWDKWBWHNZVTGWDUGWJWIHOZBOZCOZIZPZALZCQBQZH
      DUHZWDWBWIWRKZWHWBWSVTWNPZADGUIZLZCQZBQZWHWAWBWSXDVFEFUJWQWTALZCQZBQXDHDV
      TGJJXFHBXEHCWTAHHVTWNHVTRSAHUKULTTXCDBXBDCWTXADDVTWNDVTRSADGUMULTTWKVTPZW
      PXEBCXGWOWTAWKVTWNUNUOUPDOGPZXEXBBCXHAXAWTADGUQURUPUSMXDWBWHXDWBLWFWGLZWB
      LWHXDXIWBXBXIBCWTXIXAWTWLEPZWMFPZLZXIWTWNVTPXLVTWNUTWLWMEFBVGCVGVAVBXJWFX
      KWGBEVCCFVCVDVEVHVIVJWFWGWBVKVLVMVNVQABCDHVOVPVEVQVRVS $.
  $}

$(
  @{
    @d x y z w v @.  @d ph v @.
    dfoprab2f.1 @e |- ( ph -> A. w ph ) @.
    @( Class abstraction for operations in terms of class abstraction of
       ordered pairs.  This is a version of ~ dfoprab2 with bound-variable
       hypothesis instead of distinct variable requirement. @)
    dfoprab2f @p |- { <. <. x , y >. , z >. | ph } =
                   { <. w , z >. | E. x E. y ( w = <. x , y >. /\ ph ) } @=
      ( vv coprab cv cop wceq wa wex copab dfoprab2 ax-5 hban hbex weq
      eqeq1 anbi1d 2exbidv cbvopab1
      eqtri ) ABCDHGIZBICIJZKZALZCMZBMZGDNEIZUFKZALZCMBM
      ZEDNABCDGOUJUNGDEUIEBUHECUGAEUGEPFQRRUNGPGESZUHUMBCUOUGULAUEUKUFTUAUBUCUD
      @.
  @}
$)

  ${
    $d w x $.  $d w y $.  $d w z $.  $d w ph $.
    $( The abstraction variables in an operation class abstraction are not
       free.  (Contributed by NM, 25-Apr-1995.)  (Revised by David Abernethy,
       19-Jun-2012.) $)
    nfoprab1 $p |- F/_ x { <. <. x , y >. , z >. | ph } $=
      ( vw coprab cv cop wceq wa wex cab df-oprab nfe1 nfab nfcxfr ) BABCDFEGBG
      CGHDGHIAJDKCKZBKZELABCDEMRBEQBNOP $.

    $( The abstraction variables in an operation class abstraction are not
       free.  (Contributed by NM, 25-Apr-1995.)  (Revised by David Abernethy,
       30-Jul-2012.) $)
    nfoprab2 $p |- F/_ y { <. <. x , y >. , z >. | ph } $=
      ( vw coprab cv cop wceq wa wex cab df-oprab nfe1 nfex nfab nfcxfr ) CABCD
      FEGBGCGHDGHIAJDKZCKZBKZELABCDEMTCESCBRCNOPQ $.

    $( The abstraction variables in an operation class abstraction are not
       free.  (Contributed by NM, 22-Aug-2013.) $)
    nfoprab3 $p |- F/_ z { <. <. x , y >. , z >. | ph } $=
      ( vw coprab cv cop wceq wa wex cab df-oprab nfe1 nfex nfab nfcxfr ) DABCD
      FEGBGCGHDGHIAJZDKZCKZBKZELABCDEMUADETDBSDCRDNOOPQ $.
  $}

  ${
    $d v w x $.  $d v w y $.  $d v w z $.  $d v ph $.
    nfoprab.1 $e |- F/ w ph $.
    $( Bound-variable hypothesis builder for an operation class abstraction.
       (Contributed by NM, 22-Aug-2013.) $)
    nfoprab $p |- F/_ w { <. <. x , y >. , z >. | ph } $=
      ( vv coprab cv cop wceq wa wex cab df-oprab nfv nfan nfex nfab nfcxfr ) E
      ABCDHGIBICIJDIJKZALZDMZCMZBMZGNABCDGOUEEGUDEBUCECUBEDUAAEUAEPFQRRRST $.
  $}

  ${
    $d x z w $.  $d y z w $.  $d w ph $.  $d w ps $.  $d w ch $.
    oprabbid.1 $e |- F/ x ph $.
    oprabbid.2 $e |- F/ y ph $.
    oprabbid.3 $e |- F/ z ph $.
    oprabbid.4 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal operation class abstractions (deduction
       rule).  (Contributed by NM, 21-Feb-2004.)  (Revised by Mario Carneiro,
       24-Jun-2014.) $)
    oprabbid $p |- ( ph ->
           { <. <. x , y >. , z >. | ps } = { <. <. x , y >. , z >. | ch } ) $=
      ( vw cv cop wceq wa wex cab coprab exbid df-oprab anbi2d abbidv 3eqtr4g )
      AKLDLELMFLMNZBOZFPZEPZDPZKQUDCOZFPZEPZDPZKQBDEFRCDEFRAUHULKAUGUKDGAUFUJEH
      AUEUIFIABCUDJUASSSUBBDEFKTCDEFKTUC $.
  $}

  ${
    $d x z ph $.  $d y z ph $.
    oprabbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equivalent wff's yield equal operation class abstractions (deduction
       rule).  (Contributed by NM, 21-Feb-2004.) $)
    oprabbidv $p |- ( ph ->
           { <. <. x , y >. , z >. | ps } = { <. <. x , y >. , z >. | ch } ) $=
      ( nfv oprabbid ) ABCDEFADHAEHAFHGI $.
  $}

  ${
    $d x z w $.  $d y z w $.  $d w ph $.  $d w ps $.
    oprabbii.1 $e |- ( ph <-> ps ) $.
    $( Equivalent wff's yield equal operation class abstractions.  (Contributed
       by NM, 28-May-1995.)  (Revised by David Abernethy, 19-Jun-2012.) $)
    oprabbii $p |- { <. <. x , y >. , z >. | ph }
                 = { <. <. x , y >. , z >. | ps } $=
      ( vw cv wceq coprab eqid wb a1i oprabbidv ax-mp ) GHZPIZACDEJBCDEJIPKQABC
      DEABLQFMNO $.
  $}

  ${
    $d ph w $.  $d ps w $.  $d x w $.  $d y w $.  $d z w $.
    $( Equivalence of ordered pair abstraction subclass and implication.
       Compare ~ ssopab2 .  (Contributed by FL, 6-Nov-2013.)  (Proof shortened
       by Mario Carneiro, 11-Dec-2016.) $)
    ssoprab2 $p |- ( A. x A. y A. z ( ph -> ps ) ->
        { <. <. x , y >. , z >. | ph } C_ { <. <. x , y >. , z >. | ps } ) $=
      ( vw wi wal cv cop wceq wa wex cab coprab anim2d aleximi ss2abdv df-oprab
      id 3sstr4g ) ABGZEHZDHZCHZFICIDIJEIJKZALZEMZDMZCMZFNUFBLZEMZDMZCMZFNACDEO
      BCDEOUEUJUNFUDUIUMCUCUHULDUBUGUKEUBABUFUBTPQQQRACDEFSBCDEFSUA $.
  $}

  $( Equivalence of ordered pair abstraction subclass and implication.  Compare
     ~ ssopab2b .  (Contributed by FL, 6-Nov-2013.)  (Proof shortened by Mario
     Carneiro, 11-Dec-2016.) $)
  ssoprab2b $p |- ( { <. <. x , y >. , z >. | ph } C_
    { <. <. x , y >. , z >. | ps } <-> A. x A. y A. z ( ph -> ps ) ) $=
    ( coprab wss wi wal nfoprab1 nfss nfoprab2 nfoprab3 cv wcel oprabid 3imtr3g
    cop ssel alrimi ssoprab2 impbii ) ACDEFZBCDEFZGZABHZEIZDIZCIUEUHCCUCUDACDEJ
    BCDEJKUEUGDDUCUDACDELBCDELKUEUFEEUCUDACDEMBCDEMKUECNDNRENRZUCOUIUDOABUCUDUI
    SACDEPBCDEPQTTTABCDEUAUB $.

  $( Equivalence of ordered pair abstraction subclass and biconditional.
     Compare ~ eqopab2b .  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
  eqoprab2b $p |- ( { <. <. x , y >. , z >. | ph } =
    { <. <. x , y >. , z >. | ps } <-> A. x A. y A. z ( ph <-> ps ) ) $=
    ( coprab wss wa wi wceq wb ssoprab2b anbi12i eqss 2albiim albii 19.26 bitri
    wal 3bitr4i ) ACDEFZBCDEFZGZUBUAGZHABIESDSZCSZBAIESDSZCSZHZUAUBJABKESDSZCSZ
    UCUFUDUHABCDELBACDELMUAUBNUKUEUGHZCSUIUJULCABDEOPUEUGCQRT $.

  ${
    $d x y z A $.  $d y z B $.  $d x y z D $.  $d y z E $.  $d z C $.
    $d z F $.
    $( An equality theorem for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.)  (Revised by Mario Carneiro, 19-Mar-2015.) $)
    mpt2eq123 $p |- ( ( A = D /\ A. x e. A ( B = E /\ A. y e. B C = F ) ) ->
                 ( x e. A , y e. B |-> C ) = ( x e. D , y e. E |-> F ) ) $=
      ( vz wceq wral wa cv wcel coprab cmpt2 nfv nfra1 nfan wb nfcv nfral eqeq2
      rsp pm5.32d eleq2 anbi1d sylan9bbr anass 3bitr4g oprabbid df-mpt2 3eqtr4g
      syl6 ) CFJZDGJZEHJZBDKZLZACKZLZAMZCNZBMZDNZLIMZEJZLZABIOVBFNZVDGNZLVFHJZL
      ZABIOABCDEPABFGHPVAVHVLABIUOUTAUOAQUSACRSUOUTBUOBQUSBACBCUAUPURBUPBQUQBDR
      SUBSVAIQVAVCVEVGLZLZVIVJVKLZLZVHVLUTVNVCVOLUOVPUTVCVMVOUTVCUSVMVOTUSACUDU
      RVMVEVKLUPVOURVEVGVKURVEUQVGVKTUQBDUDEHVFUCUNUEUPVEVJVKDGVDUFUGUHUNUEUOVC
      VIVOCFVBUFUGUHVCVEVGUIVIVJVKUIUJUKABICDEULABIFGHULUM $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.
    $( An equality theorem for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.) $)
    mpt2eq12 $p |- ( ( A = C /\ B = D ) ->
                 ( x e. A , y e. B |-> E ) = ( x e. C , y e. D |-> E ) ) $=
      ( wceq wral wa cmpt2 eqid rgenw jctr ralrimivw mpt2eq123 sylan2 ) DFHZCEH
      RGGHZBDIZJZACIABCDGKABEFGKHRUAACRTSBDGLMNOABCDGEFGPQ $.
  $}

  ${
    $d z A $.  $d z B $.  $d z C $.  $d z D $.  $d z E $.  $d x z ph $.
    $d z F $.  $d y z ph $.
    mpt2eq123dv.1 $e |- ( ph -> A = D ) $.
    ${
      mpt2eq123dva.2 $e |- ( ( ph /\ x e. A ) -> B = E ) $.
      mpt2eq123dva.3 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> C = F ) $.
      $( An equality deduction for the maps to notation.  (Contributed by Mario
         Carneiro, 26-Jan-2017.) $)
      mpt2eq123dva $p |- ( ph
              -> ( x e. A , y e. B |-> C ) = ( x e. D , y e. E |-> F ) ) $=
        ( vz cv wcel wa wceq coprab cmpt2 pm5.32da eqeq2d eleq2d anbi1d df-mpt2
        bitrd oprabbidv 3eqtr4g ) ABNZDOZCNZEOZPZMNZFQZPZBCMRUHGOZUJHOZPZUMIQZP
        ZBCMRBCDEFSBCGHISAUOUTBCMAUOULUSPUTAULUNUSAULPFIUMLUATAULURUSAULUIUQPUR
        AUIUKUQAUIPEHUJKUBTAUIUPUQADGUHJUBUCUEUCUEUFBCMDEFUDBCMGHIUDUG $.
    $}

    mpt2eq123dv.2 $e |- ( ph -> B = E ) $.
    mpt2eq123dv.3 $e |- ( ph -> C = F ) $.
    $( An equality deduction for the maps to notation.  (Contributed by NM,
       12-Sep-2011.) $)
    mpt2eq123dv $p |- ( ph
            -> ( x e. A , y e. B |-> C ) = ( x e. D , y e. E |-> F ) ) $=
      ( wceq cv wcel adantr wa mpt2eq123dva ) ABCDEFGHIJAEHMBNDOZKPAFIMSCNEOQLP
      R $.
  $}

  ${
    mpt2eq123i.1 $e |- A = D $.
    mpt2eq123i.2 $e |- B = E $.
    mpt2eq123i.3 $e |- C = F $.
    $( An equality inference for the maps to notation.  (Contributed by NM,
       15-Jul-2013.) $)
    mpt2eq123i $p |- ( x e. A , y e. B |-> C ) = ( x e. D , y e. E |-> F ) $=
      ( cmpt2 wceq wtru a1i mpt2eq123dv trud ) ABCDELABFGHLMNABCDEFGHCFMNIODGMN
      JOEHMNKOPQ $.
  $}

  ${
    $d x z ph $.  $d y z ph $.  $d z A $.  $d z B $.  $d z C $.  $d z D $.
    mpt2eq3dva.1 $e |- ( ( ph /\ x e. A /\ y e. B ) -> C = D ) $.
    $( Slightly more general equality inference for the maps to notation.
       (Contributed by NM, 17-Oct-2013.) $)
    mpt2eq3dva $p |- ( ph -> ( x e. A , y e. B |-> C )
              = ( x e. A , y e. B |-> D ) ) $=
      ( vz cv wcel wa wceq coprab cmpt2 3expb eqeq2d pm5.32da oprabbidv df-mpt2
      3eqtr4g ) ABJDKZCJEKZLZIJZFMZLZBCINUDUEGMZLZBCINBCDEFOBCDEGOAUGUIBCIAUDUF
      UHAUDLFGUEAUBUCFGMHPQRSBCIDEFTBCIDEGTUA $.
  $}

  ${
    mpt2eq3ia.1 $e |- ( ( x e. A /\ y e. B ) -> C = D ) $.
    $( An equality inference for the maps to notation.  (Contributed by Mario
       Carneiro, 16-Dec-2013.) $)
    mpt2eq3ia $p |- ( x e. A , y e. B |-> C ) = ( x e. A , y e. B |-> D ) $=
      ( cmpt2 wceq wtru cv wcel 3adant1 mpt2eq3dva trud ) ABCDEHABCDFHIJABCDEFA
      KCLBKDLEFIJGMNO $.
  $}

  ${
    $d ph x $.  $d ph y $.
    mpt2eq3dv.1 $e |- ( ph -> C = D ) $.
    $( An equality deduction for the maps to notation restricted to the value
       of the operation.  (Contributed by SO, 16-Jul-2018.) $)
    mpt2eq3dv $p |- ( ph -> ( x e. A , y e. B |-> C ) =
        ( x e. A , y e. B |-> D ) ) $=
      ( cv wcel wceq 3ad2ant1 mpt2eq3dva ) ABCDEFGABIDJFGKCIEJHLM $.
  $}

  ${
    $d z A $.  $d z B $.  $d z C $.  $d z x $.  $d z y $.
    $( Bound-variable hypothesis builder for an operation in maps-to notation.
       (Contributed by NM, 27-Aug-2013.) $)
    nfmpt21 $p |- F/_ x ( x e. A , y e. B |-> C ) $=
      ( vz cmpt2 cv wcel wa wceq coprab df-mpt2 nfoprab1 nfcxfr ) AABCDEGAHCIBH
      DIJFHEKJZABFLABFCDEMPABFNO $.

    $( Bound-variable hypothesis builder for an operation in maps-to notation.
       (Contributed by NM, 27-Aug-2013.) $)
    nfmpt22 $p |- F/_ y ( x e. A , y e. B |-> C ) $=
      ( vz cmpt2 cv wcel wa wceq coprab df-mpt2 nfoprab2 nfcxfr ) BABCDEGAHCIBH
      DIJFHEKJZABFLABFCDEMPABFNO $.
  $}

  ${
    $d w x z $.  $d w y z $.  $d w A $.  $d w B $.  $d w C $.
    nfmpt2.1 $e |- F/_ z A $.
    nfmpt2.2 $e |- F/_ z B $.
    nfmpt2.3 $e |- F/_ z C $.
    $( Bound-variable hypothesis builder for the maps-to notation.
       (Contributed by NM, 20-Feb-2013.) $)
    nfmpt2 $p |- F/_ z ( x e. A , y e. B |-> C ) $=
      ( vw cmpt2 cv wcel wa wceq coprab df-mpt2 nfcri nfan nfeq2 nfoprab nfcxfr
      ) CABDEFKALDMZBLEMZNZJLZFOZNZABJPABJDEFQUHABJCUEUGCUCUDCCADGRCBEHRSCUFFIT
      SUAUB $.
  $}

  ${
    $d w x z $.  $d w y z $.  $d w z B $.  $d w z C $.
    $( A mapping operation with empty domain.  (Contributed by Stefan O'Rear,
       29-Jan-2015.)  (Revised by Mario Carneiro, 15-May-2015.) $)
    mpt20 $p |- ( x e. (/) , y e. B |-> C ) = (/) $=
      ( vz vw c0 cmpt2 cv wcel wa wceq coprab cop wex cab df-mpt2 df-oprab noel
      nex simprll mto abf 3eqtri ) ABGCDHAIZGJZBIZCJZKEIZDLZKZABEMFIUEUGNUINLZU
      KKZEOZBOZAOZFPGABEGCDQUKABEFRUPFUOAUNBUMEUMUFUESULUFUHUJUAUBTTTUCUD $.
  $}

  ${
    $d x y z $.
    $( Two ways to state the domain of an operation.  (Contributed by FL,
       24-Jan-2010.) $)
    oprab4 $p |-
      { <. <. x , y >. , z >. | ( <. x , y >. e. ( A X. B ) /\ ph ) } =
        { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ ph ) } $=
      ( cv cop cxp wcel wa opelxp anbi1i oprabbii ) BGZCGZHEFIJZAKOEJPFJKZAKBCD
      QRAOPEFLMN $.
  $}

  ${
    $d x y z w v $.  $d v ph $.  $d v ps $.
    cbvoprab1.1 $e |- F/ w ph $.
    cbvoprab1.2 $e |- F/ x ps $.
    cbvoprab1.3 $e |- ( x = w -> ( ph <-> ps ) ) $.
    $( Rule used to change first bound variable in an operation abstraction,
       using implicit substitution.  (Contributed by NM, 20-Dec-2008.)
       (Revised by Mario Carneiro, 5-Dec-2016.) $)
    cbvoprab1 $p |- { <. <. x , y >. , z >. | ph }
                  = { <. <. w , y >. , z >. | ps } $=
      ( vv cv cop wceq wa wex copab coprab nfv nfan nfex eqeq2d anbi12d opabbii
      opeq1 exbidv cbvex dfoprab2 3eqtr4i ) JKZCKZDKZLZMZANZDOZCOZJEPUIFKZUKLZM
      ZBNZDOZFOZJEPACDEQBFDEQUPVBJEUOVACFUNFDUMAFUMFRGSTUTCDUSBCUSCRHSTUJUQMZUN
      UTDVCUMUSABVCULURUIUJUQUKUDUAIUBUEUFUCACDEJUGBFDEJUGUH $.
  $}

  ${
    $d v w x y z $.  $d ph v $.  $d ps v $.
    cbvoprab2.1 $e |- F/ w ph $.
    cbvoprab2.2 $e |- F/ y ps $.
    cbvoprab2.3 $e |- ( y = w -> ( ph <-> ps ) ) $.
    $( Change the second bound variable in an operation abstraction.
       (Contributed by Jeff Madsen, 11-Jun-2010.)  (Revised by Mario Carneiro,
       11-Dec-2016.) $)
    cbvoprab2 $p |- { <. <. x , y >. , z >. | ph } =
                    { <. <. x , w >. , z >. | ps } $=
      ( vv cv cop wceq wa wex cab coprab nfv nfan nfex opeq2 opeq1d cbvex exbii
      eqeq2d anbi12d exbidv abbii df-oprab 3eqtr4i ) JKZCKZDKZLZEKZLZMZANZEOZDO
      ZCOZJPUKULFKZLZUOLZMZBNZEOZFOZCOZJPACDEQBCFEQVAVIJUTVHCUSVGDFURFEUQAFUQFR
      GSTVFDEVEBDVEDRHSTUMVBMZURVFEVJUQVEABVJUPVDUKVJUNVCUOUMVBULUAUBUEIUFUGUCU
      DUHACDEJUIBCFEJUIUJ $.
  $}

  ${
    $d x y z w v u $.  $d u ph $.  $d u ps $.
    cbvoprab12.1 $e |- F/ w ph $.
    cbvoprab12.2 $e |- F/ v ph $.
    cbvoprab12.3 $e |- F/ x ps $.
    cbvoprab12.4 $e |- F/ y ps $.
    cbvoprab12.5 $e |- ( ( x = w /\ y = v ) -> ( ph <-> ps ) ) $.
    $( Rule used to change first two bound variables in an operation
       abstraction, using implicit substitution.  (Contributed by NM,
       21-Feb-2004.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
    cbvoprab12 $p |- { <. <. x , y >. , z >. | ph }
                   = { <. <. w , v >. , z >. | ps } $=
      ( vu cv cop wceq wa wex nfv nfan coprab anbi12d opabbii dfoprab2 3eqtr4i
      copab opeq12 eqeq2d cbvex2 ) MNZCNZDNZOZPZAQZDRCRZMEUFUJFNZGNZOZPZBQZGRFR
      ZMEUFACDEUABFGEUAUPVBMEUOVACDFGUNAFUNFSHTUNAGUNGSITUTBCUTCSJTUTBDUTDSKTUK
      UQPULURPQZUNUTABVCUMUSUJUKULUQURUGUHLUBUIUCACDEMUDBFGEMUDUE $.
  $}

  ${
    $d x y z w v $.  $d w v ph $.  $d x y ps $.
    cbvoprab12v.1 $e |- ( ( x = w /\ y = v ) -> ( ph <-> ps ) ) $.
    $( Rule used to change first two bound variables in an operation
       abstraction, using implicit substitution.  (Contributed by NM,
       8-Oct-2004.) $)
    cbvoprab12v $p |- { <. <. x , y >. , z >. | ph }
                    = { <. <. w , v >. , z >. | ps } $=
      ( nfv cbvoprab12 ) ABCDEFGAFIAGIBCIBDIHJ $.
  $}

  ${
    $d x z w v $.  $d y z w v $.  $d v ph $.  $d v ps $.
    cbvoprab3.1 $e |- F/ w ph $.
    cbvoprab3.2 $e |- F/ z ps $.
    cbvoprab3.3 $e |- ( z = w -> ( ph <-> ps ) ) $.
    $( Rule used to change the third bound variable in an operation
       abstraction, using implicit substitution.  (Contributed by NM,
       22-Aug-2013.) $)
    cbvoprab3 $p |- { <. <. x , y >. , z >. | ph } =
                     { <. <. x , y >. , w >. | ps } $=
      ( vv cv wceq wa wex copab coprab nfv nfan nfex dfoprab2 2exbidv cbvopab2
      cop anbi2d 3eqtr4i ) JKCKDKUCLZAMZDNZCNZJEOUFBMZDNZCNZJFOACDEPBCDFPUIULJE
      FUHFCUGFDUFAFUFFQGRSSUKECUJEDUFBEUFEQHRSSEKFKLZUGUJCDUMABUFIUDUAUBACDEJTB
      CDFJTUE $.
  $}

  ${
    $d x z w $.  $d y z w $.  $d w ph $.  $d z ps $.
    cbvoprab3v.1 $e |- ( z = w -> ( ph <-> ps ) ) $.
    $( Rule used to change the third bound variable in an operation
       abstraction, using implicit substitution.  (Contributed by NM,
       8-Oct-2004.)  (Revised by David Abernethy, 19-Jun-2012.) $)
    cbvoprab3v $p |- { <. <. x , y >. , z >. | ph } =
                     { <. <. x , y >. , w >. | ps } $=
      ( nfv cbvoprab3 ) ABCDEFAFHBEHGI $.
  $}

  ${
    $d u w x y z $.  $d u w x y z A $.  $d u w B $.  $d u C $.  $d u y D $.
    $d u E $.
    cbvmpt2x.1 $e |- F/_ z B $.
    cbvmpt2x.2 $e |- F/_ x D $.
    cbvmpt2x.3 $e |- F/_ z C $.
    cbvmpt2x.4 $e |- F/_ w C $.
    cbvmpt2x.5 $e |- F/_ x E $.
    cbvmpt2x.6 $e |- F/_ y E $.
    cbvmpt2x.7 $e |- ( x = z -> B = D ) $.
    cbvmpt2x.8 $e |- ( ( x = z /\ y = w ) -> C = E ) $.
    $( Rule to change the bound variable in a maps-to function, using implicit
       substitution.  This version of ~ cbvmpt2 allows ` B ` to be a function
       of ` x ` .  (Contributed by NM, 29-Dec-2014.) $)
    cbvmpt2x $p |- ( x e. A , y e. B |-> C ) = ( z e. A , w e. D |-> E ) $=
      ( vu cv nfan wcel wa wceq coprab cmpt2 nfv nfcri nfeq2 nfcv weq wb adantr
      eleq1 eleq2d sylan9bb anbi12d eqeq2d cbvoprab12 df-mpt2 3eqtr4i ) ASZEUAZ
      BSZFUAZUBZRSZGUCZUBZABRUDCSZEUAZDSZHUAZUBZVFIUCZUBZCDRUDABEFGUECDEHIUEVHV
      OABRCDVEVGCVBVDCVBCUFCBFJUGTCVFGLUHTVEVGDVBVDDVBDUFDBFDFUIUGTDVFGMUHTVMVN
      AVJVLAVJAUFADHKUGTAVFINUHTVMVNBVMBUFBVFIOUHTACUJZBDUJZUBZVEVMVGVNVRVBVJVD
      VLVPVBVJUKVQVAVIEUMULVPVDVCHUAVQVLVPFHVCPUNVCVKHUMUOUPVRGIVFQUQUPURABREFG
      USCDREHIUSUT $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.
    cbvmpt2.1 $e |- F/_ z C $.
    cbvmpt2.2 $e |- F/_ w C $.
    cbvmpt2.3 $e |- F/_ x D $.
    cbvmpt2.4 $e |- F/_ y D $.
    cbvmpt2.5 $e |- ( ( x = z /\ y = w ) -> C = D ) $.
    $( Rule to change the bound variable in a maps-to function, using implicit
       substitution.  (Contributed by NM, 17-Dec-2013.) $)
    cbvmpt2 $p |- ( x e. A , y e. B |-> C ) = ( z e. A , w e. B |-> D ) $=
      ( nfcv weq eqidd cbvmpt2x ) ABCDEFGFHCFNAFNIJKLACOFPMQ $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w z C $.  $d x y D $.
    cbvmpt2v.1 $e |- ( x = z -> C = E ) $.
    cbvmpt2v.2 $e |- ( y = w -> E = D ) $.
    $( Rule to change the bound variable in a maps-to function, using implicit
       substitution.  With a longer proof analogous to ~ cbvmpt , some distinct
       variable requirements could be eliminated.  (Contributed by NM,
       11-Jun-2013.) $)
    cbvmpt2v $p |- ( x e. A , y e. B |-> C ) = ( z e. A , w e. B |-> D ) $=
      ( nfcv weq sylan9eq cbvmpt2 ) ABCDEFGHCGLDGLAHLBHLACMBDMGIHJKNO $.
  $}

  ${
    elimdelov.1 $e |- ( ph -> C e. ( A F B ) ) $.
    elimdelov.2 $e |- Z e. ( X F Y ) $.
    $( Eliminate a hypothesis which is a predicate expressing membership in the
       result of an operator (deduction version).  (Contributed by Paul
       Chapman, 25-Mar-2008.) $)
    elimdelov $p |- if ( ph , C , Z ) e.
                     ( if ( ph , A , X ) F if ( ph , B , Y ) ) $=
      ( cif co wcel iftrue oveq12d 3eltr4d wn iffalse syl6eqel eleqtrrd pm2.61i
      ) AADHKZABFKZACGKZELZMADBCELUBUEIADHNAUCBUDCEABFNACGNOPAQZUBFGELZUEUFUBHU
      GADHRJSUFUCFUDGEABFRACGROTUA $.
  $}

  $( Move a conditional outside of an operation.  (Contributed by Thierry
     Arnoux, 25-Jan-2017.) $)
  ovif $p |- ( if ( ph , A , B ) F C ) = if ( ph , ( A F C ) , ( B F C ) ) $=
    ( cif co oveq1 ifsb ) ABCABCFZDEGBDEGCDEGJBDEHJCDEHI $.

  $( Move a conditional outside of an operation.  (Contributed by Thierry
     Arnoux, 1-Oct-2018.) $)
  ovif2 $p |- ( A F if ( ph , B , C ) ) = if ( ph , ( A F B ) , ( A F C ) ) $=
    ( cif co oveq2 ifsb ) ACDBACDFZEGBCEGBDEGJCBEHJDBEHI $.

  $( Move a conditional outside of an operation.  (Contributed by Thierry
     Arnoux, 25-Jan-2017.) $)
  ovif12 $p |- ( if ( ph , A , B ) F if ( ph , C , D ) )
    = if ( ph , ( A F C ) , ( B F D ) ) $=
    ( cif co wceq iftrue oveq12d eqtr4d wn iffalse pm2.61i ) AABCGZADEGZFHZABDF
    HZCEFHZGZIARSUAAPBQDFABCJADEJKASTJLAMZRTUAUBPCQEFABCNADENKASTNLO $.

  $( Move a conditional outside of an operation.  (Contributed by AV,
     11-Nov-2019.) $)
  ifov $p |- ( A if ( ph , F , G ) B ) = if ( ph , ( A F B ) , ( A G B ) ) $=
    ( cif co oveq ifsb ) ADEBCADEFZGBCDGBCEGBCJDHBCJEHI $.

  ${
    $d x z w $.  $d y z w $.  $d w ph $.
    $( The domain of an operation class abstraction.  (Contributed by NM,
       17-Mar-1995.)  (Revised by David Abernethy, 19-Jun-2012.) $)
    dmoprab $p |- dom { <. <. x , y >. , z >. | ph } =
                  { <. x , y >. | E. z ph } $=
      ( vw coprab cdm cv cop wceq wa wex copab cab dfoprab2 dmeqi dmopab exrot3
      19.42v 2exbii bitri abbii df-opab eqtr4i 3eqtri ) ABCDFZGEHBHCHIJZAKZCLBL
      ZEDMZGUIDLZENZADLZBCMZUFUJABCDEOPUIEDQULUGUMKZCLBLZENUNUKUPEUKUHDLZCLBLUP
      UHDBCRUQUOBCUGADSTUAUBUMBCEUCUDUE $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( The domain of an operation class abstraction.  (Contributed by NM,
       24-Aug-1995.) $)
    dmoprabss $p |- dom { <. <. x , y >. , z >. |
           ( ( x e. A /\ y e. B ) /\ ph ) } C_ ( A X. B ) $=
      ( cv wcel wa coprab cdm wex copab dmoprab 19.42v opabbii opabssxp eqsstri
      cxp ) BGEHCGFHIZAIZBCDJKUADLZBCMZEFSZUABCDNUCTADLZIZBCMUDUBUFBCTADOPUEBCE
      FQRR $.
  $}

  ${
    $d x z w $.  $d y z w $.  $d w ph $.
    $( The range of an operation class abstraction.  (Contributed by NM,
       30-Aug-2004.)  (Revised by David Abernethy, 19-Apr-2013.) $)
    rnoprab $p |- ran { <. <. x , y >. , z >. | ph } =
                  { z | E. x E. y ph } $=
      ( vw coprab crn cv cop wceq wa wex copab cab dfoprab2 rneqi rnopab exrot3
      opex isseti 19.41v mpbiran 2exbii bitri abbii 3eqtri ) ABCDFZGEHBHZCHZIZJ
      ZAKZCLBLZEDMZGUMELZDNACLBLZDNUGUNABCDEOPUMEDQUOUPDUOULELZCLBLUPULEBCRUQAB
      CUQUKELAEUJUHUISTUKAEUAUBUCUDUEUF $.
  $}

  ${
    $d A y $.  $d x y z $.
    $( The range of a restricted operation class abstraction.  (Contributed by
       Scott Fenton, 21-Mar-2012.) $)
    rnoprab2 $p |- ran { <. <. x , y >. , z >. |
                          ( ( x e. A /\ y e. B ) /\ ph ) } =
                    { z | E. x e. A E. y e. B ph } $=
      ( cv wcel wa coprab crn wex cab wrex rnoprab r2ex abbii eqtr4i ) BGEHCGFH
      IAIZBCDJKSCLBLZDMACFNBENZDMSBCDOUATDABCEFPQR $.
  $}

  ${
    $d x y z $.
    $( The domain of an operation class abstraction is a relation.
       (Contributed by NM, 17-Mar-1995.) $)
    reldmoprab $p |- Rel dom { <. <. x , y >. , z >. | ph } $=
      ( wex coprab cdm dmoprab relopabi ) ADEBCABCDFGABCDHI $.

    $( Structure of an operation class abstraction.  (Contributed by NM,
       28-Nov-2006.) $)
    oprabss $p |- { <. <. x , y >. , z >. | ph } C_ ( ( _V X. _V ) X. _V ) $=
      ( coprab cdm crn cxp wrel reloprab relssdmrn ax-mp reldmoprab df-rel mpbi
      cvv wss ssv xpss12 mp2an sstri ) ABCDEZUBFZUBGZHZPPHZPHZUBIUBUEQABCDJUBKL
      UCUFQZUDPQUEUGQUCIUHABCDMUCNOUDRUCUFUDPSTUA $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.  $d w ph $.
    $d x y z w ps $.
    eloprabga.1 $e |- ( ( x = A /\ y = B /\ z = C ) -> ( ph <-> ps ) ) $.
    $( The law of concretion for operation class abstraction.  Compare
       ~ elopab .  (Contributed by NM, 14-Sep-1999.)  (Unnecessary distinct
       variable restrictions were removed by David Abernethy, 19-Jun-2012.)
       (Revised by Mario Carneiro, 19-Dec-2013.) $)
    eloprabga $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
       ( <. <. A , B >. , C >. e. { <. <. x , y >. , z >. | ph } <-> ps ) ) $=
      ( vw wcel cvv cop cv wceq wa wex coprab wb elex w3a wi simpr eqeq1d eqcom
      opex vex otth2 bitri syl6bb anbi1d pm5.32i 3exbidv df-oprab eleq2i bitr2i
      cab abid syl5bb adantl elisset 3anim123i eeeanv sylibr biantrurd 19.41vvv
      eleq1 syl6rbbr adantr 3bitr3d expcom vtocle syl3an ) FINFONZGJNGONZHKNHON
      ZFGPZHPZACDEUAZNZBUBZFIUCGJUCHKUCVQVRVSUDZWDUEMWAVTHUIWEMQZWARZWDWEWGSZWF
      CQZDQZPEQZPZRZASZETDTCTZWIFRZWJGRZWKHRZUDZBSZETDTCTZWCBWHWNWTCDEWHWNWSASW
      TWHWMWSAWHWMWAWLRZWSWHWFWAWLWEWGUFUGXBWLWARWSWAWLUHWIWJFGWKHCUJDUJEUJUKUL
      UMUNWSABLUOUMUPWGWOWCUBWEWOWFWBNZWGWCXCWFWOMUTZNWOWBXDWFACDEMUQURWOMVAUSW
      FWAWBVJVBVCWEXABUBWGWEBWSETDTCTZBSXAWEXEBWEWPCTZWQDTZWRETZUDXEVQXFVRXGVSX
      HCFOVDDGOVDEHOVDVEWPWQWRCDEVFVGVHWSBCDEVIVKVLVMVNVOVP $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z th $.
    eloprabg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    eloprabg.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    eloprabg.3 $e |- ( z = C -> ( ch <-> th ) ) $.
    $( The law of concretion for operation class abstraction.  Compare
       ~ elopab .  (Contributed by NM, 14-Sep-1999.)  (Revised by David
       Abernethy, 19-Jun-2012.) $)
    eloprabg $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
       ( <. <. A , B >. , C >. e. { <. <. x , y >. , z >. | ph } <-> th ) ) $=
      ( cv wceq syl3an9b eloprabga ) ADEFGHIJKLMEQHRABFQIRCGQJRDNOPST $.
  $}

  ${
    $d ph w $.  $d ps w $.  $d x z w $.  $d y z w $.
    ssoprab2i.1 $e |- ( ph -> ps ) $.
    $( Inference of operation class abstraction subclass from implication.
       (Contributed by NM, 11-Nov-1995.)  (Revised by David Abernethy,
       19-Jun-2012.) $)
    ssoprab2i $p |- { <. <. x , y >. , z >. | ph } C_
                    { <. <. x , y >. , z >. | ps } $=
      ( vw cv cop wceq wex copab coprab anim2i 2eximi ssopab2i dfoprab2 3sstr4i
      wa ) GHCHDHIJZASZDKCKZGELTBSZDKCKZGELACDEMBCDEMUBUDGEUAUCCDABTFNOPACDEGQB
      CDEGQR $.
  $}

  ${
    $d x z $.  $d y z $.  $d z C $.
    $( Operation with universal domain in maps-to notation.  (Contributed by
       NM, 16-Aug-2013.) $)
    mpt2v $p |- ( x e. _V , y e. _V |-> C )
                     = { <. <. x , y >. , z >. | z = C } $=
      ( cvv cmpt2 cv wcel wa coprab df-mpt2 vex pm3.2i biantrur oprabbii eqtr4i
      wceq ) ABEEDFAGEHZBGEHZIZCGDQZIZABCJUAABCJABCEEDKUAUBABCTUARSALBLMNOP $.
  $}

  ${
    $d w x y z A $.  $d w y z B $.  $d w x y C $.  $d w z D $.
    mpt2mpt.1 $e |- ( z = <. x , y >. -> C = D ) $.
    $( Express a two-argument function as a one-argument function, or
       vice-versa.  In this version ` B ( x ) ` is not assumed to be constant
       w.r.t ` x ` .  (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    mpt2mptx $p |- ( z e. U_ x e. A ( { x } X. B ) |-> C ) =
      ( x e. A , y e. B |-> D ) $=
      ( vw cv csn cxp ciun cmpt wcel wceq wa copab wex eqtr4i df-mpt coprab cop
      cmpt2 df-mpt2 eliunxp anbi1i 19.41vv eqeq2d anbi2d pm5.32i 2exbii 3bitr2i
      anass bitri opabbii dfoprab2 ) CADAJZKELMZFNCJZUSOZIJZFPZQZCIRZABDEGUDZCI
      USFUAVFURDOBJZEOQZVBGPZQZABIUBZVEABIDEGUEVEUTURVGUCPZVJQZBSASZCIRVKVDVNCI
      VDVLVHQZBSASZVCQVOVCQZBSASVNVAVPVCABDEUTUFUGVOVCABUHVQVMABVQVLVHVCQZQVMVL
      VHVCUNVLVRVJVLVCVIVHVLFGVBHUIUJUKUOULUMUPVJABICUQTTT $.

    $d x B $.
    $( Express a two-argument function as a one-argument function, or
       vice-versa.  (Contributed by Mario Carneiro, 17-Dec-2013.)  (Revised by
       Mario Carneiro, 29-Dec-2014.) $)
    mpt2mpt $p |- ( z e. ( A X. B ) |-> C ) = ( x e. A , y e. B |-> D ) $=
      ( cv csn cxp ciun cmpt cmpt2 wceq iunxpconst mpteq1 ax-mp mpt2mptx eqtr3i
      ) CADAIJEKLZFMZCDEKZFMZABDEGNUAUCOUBUDOADEPCUAUCFQRABCDEFGHST $.
  $}

  $( A mapping with two arguments with the first argument from a difference set
     with a singleton and a conditional as result.  (Contributed by AV,
     13-Feb-2019.) $)
  mpt2difsnif $p |- ( i e. ( A \ { X } ) , j e. B |-> if ( i = X , C , D ) )
                  = ( i e. ( A \ { X } ) , j e. B |-> D ) $=
    ( csn cdif cv wceq cif wcel wa wn wne eldifsn neneq simplbiim adantr
    iffalsed mpt2eq3ia ) EFAGHIZBEJZGKZCDLDUDUCMZFJBMZNUECDUFUEOZUGUFUDAMUDGPUH
    UDAGQUDGRSTUAUB $.

  $( A mapping with two arguments with the first argument from a singleton and
     a conditional as result.  (Contributed by AV, 14-Feb-2019.) $)
  mpt2snif $p |- ( i e. { X } , j e. B |-> if ( i = X , C , D ) )
               = ( i e. { X } , j e. B |-> C ) $=
    ( csn cv wceq cif wcel wa elsni adantr iftrued mpt2eq3ia ) DEFGZADHZFIZBCJB
    RQKZEHAKZLSBCTSUARFMNOP $.

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( Representation of a constant operation using the mapping operation.
       (Contributed by SO, 11-Jul-2018.) $)
    fconstmpt2 $p |- ( ( A X. B ) X. { C } ) = ( x e. A , y e. B |-> C ) $=
      ( vz cxp csn cmpt cmpt2 fconstmpt cv cop wceq eqidd mpt2mpt eqtri ) CDGZE
      HGFREIABCDEJFREKABFCDEEFLALBLMNEOPQ $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w ph $.
    $( Restriction of an operation class abstraction.  (Contributed by NM,
       10-Feb-2007.) $)
    resoprab $p |- ( { <. <. x , y >. , z >. | ph } |` ( A X. B ) ) =
                  { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ ph ) } $=
      ( vw cv cop wceq wex copab cxp cres wcel coprab resopab 19.42vv dfoprab2
      wa eleq1 opelxp syl6bb anbi1d pm5.32i bitri 2exbii bitr3i opabbii reseq1i
      an12 eqtri 3eqtr4i ) GHZBHZCHZIZJZATZCKBKZGDLZEFMZNZURUOEOUPFOTZATZTZCKBK
      ZGDLZABCDPZVBNVEBCDPVCUNVBOZUTTZGDLVHUTGDVBQVKVGGDVKVJUSTZCKBKVGVJUSBCRVL
      VFBCVLURVJATZTVFVJURAUKURVMVEURVJVDAURVJUQVBOVDUNUQVBUAUOUPEFUBUCUDUEUFUG
      UHUIULVIVAVBABCDGSUJVEBCDGSUM $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d D x y z $.  $d E z $.
    $( Restriction of an operator abstraction.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    resoprab2 $p |- ( ( C C_ A /\ D C_ B ) -> ( { <. <. x , y >. , z >. |
                  ( ( x e. A /\ y e. B ) /\ ph ) } |` ( C X. D ) ) =
              { <. <. x , y >. , z >. | ( ( x e. C /\ y e. D ) /\ ph ) } ) $=
      ( wss wa cv wcel coprab cxp cres resoprab anass ssel pm4.71d bicomd an4
      bi2anan9 syl5bb anbi1d syl5bbr oprabbidv syl5eq ) GEIZHFIZJZBKZELZCKZFLZJ
      ZAJZBCDMGHNOUKGLZUMHLZJZUPJZBCDMUSAJZBCDMUPBCDGHPUJUTVABCDUTUSUOJZAJUJVAU
      SUOAQUJVBUSAVBUQULJZURUNJZJUJUSUQURULUNUAUHVCUQUIVDURUHUQVCUHUQULGEUKRSTU
      IURVDUIURUNHFUMRSTUBUCUDUEUFUG $.

    $( Restriction of the mapping operation.  (Contributed by Mario Carneiro,
       17-Dec-2013.) $)
    resmpt2 $p |- ( ( C C_ A /\ D C_ B ) ->
                    ( ( x e. A , y e. B |-> E ) |` ( C X. D ) ) =
                      ( x e. C , y e. D |-> E ) ) $=
      ( vz wss wa cv wcel wceq coprab cxp cres cmpt2 resoprab2 df-mpt2 reseq1i
      3eqtr4g ) ECIFDIJAKZCLBKZDLJHKGMZJABHNZEFOZPUBELUCFLJUDJABHNABCDGQZUFPABE
      FGQUDABHCDEFRUGUEUFABHCDGSTABHEFGSUA $.
  $}

  ${
    $d x y z w $.  $d w ph $.
    $( "At most one" is a sufficient condition for an operation class
       abstraction to be a function.  (Contributed by NM, 28-Aug-2007.) $)
    funoprabg $p |- ( A. x A. y E* z ph ->
                    Fun { <. <. x , y >. , z >. | ph } ) $=
      ( vw wmo wal cv cop wceq wa wex coprab wfun mosubopt alrimiv copab funeqi
      dfoprab2 funopab bitr2i sylib ) ADFCGBGZEHZBHCHIJAKCLBLZDFZEGZABCDMZNZUCU
      FEADBCUDOPUIUEEDQZNUGUHUJABCDESRUEEDTUAUB $.
  $}

  ${
    $d x y z $.
    funoprab.1 $e |- E* z ph $.
    $( "At most one" is a sufficient condition for an operation class
       abstraction to be a function.  (Contributed by NM, 17-Mar-1995.) $)
    funoprab $p |- Fun { <. <. x , y >. , z >. | ph } $=
      ( wmo wal coprab wfun gen2 funoprabg ax-mp ) ADFZCGBGABCDHIMBCEJABCDKL $.
  $}

  ${
    $d x y z $.  $d z ph $.
    $( Functionality and domain of an operation class abstraction.
       (Contributed by NM, 28-Aug-2007.) $)
    fnoprabg $p |- ( A. x A. y ( ph -> E! z ps ) ->
  { <. <. x , y >. , z >. | ( ph /\ ps ) } Fn { <. x , y >. | ph } ) $=
      ( weu wi wal wa coprab wfun cdm copab wceq wfn wmo eumo imim2i wex sps wb
      moanimv sylibr 2alimi funoprabg syl dmoprab nfa1 nfa2 simpl exlimiv ancld
      euex 19.42v syl6ibr impbid2 opabbid syl5eq df-fn sylanbrc ) ABEFZGZDHZCHZ
      ABIZCDEJZKZVFLZACDMZNVFVIOVDVEEPZDHCHVGVBVJCDVBABEPZGVJVAVKABEQRABEUBUCUD
      VECDEUEUFVDVHVEESZCDMVIVECDEUGVDVLACDVCCUHVBDCUIVCVLAUAZCVBVMDVBVLAVEAEAB
      UJUKVBAABESZIVLVBAVNVAVNABEUMRULABEUNUOUPTTUQURVFVIUSUT $.
  $}

  ${
    $d A w z $.  $d B w z $.  $d C w z $.  $d x y w z $.
    mpt2fun.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( The maps-to notation for an operation is always a function.
       (Contributed by Scott Fenton, 21-Mar-2012.) $)
    mpt2fun $p |- Fun F $=
      ( vz vw wfun cv wcel wa wceq coprab wmo weq wi wal mpbir eqtr3 gen2 eqeq1
      ad2ant2l anbi2d mo4 funoprab cmpt2 df-mpt2 eqtri funeqi ) FJAKCLBKDLMZHKZ
      ENZMZABHOZJUOABHUOHPUOULIKZENZMZMHIQZRZISHSVAHIUNURUTULULUMUQEUAUDUBUOUSH
      IUTUNURULUMUQEUCUEUFTUGFUPFABCDEUHUPGABHCDEUIUJUKT $.
  $}

  ${
    $d x y z $.  $d z ph $.
    fnoprab.1 $e |- ( ph -> E! z ps ) $.
    $( Functionality and domain of an operation class abstraction.
       (Contributed by NM, 15-May-1995.) $)
    fnoprab $p |- { <. <. x , y >. , z >. | ( ph /\ ps ) } Fn
                    { <. x , y >. | ph } $=
      ( weu wi wal wa coprab copab wfn gen2 fnoprabg ax-mp ) ABEGHZDICIABJCDEKA
      CDLMQCDFNABCDEOP $.
  $}

  ${
    $d x y w A $.  $d x y w B $.  $d x y w C $.  $d x y w F $.
    $( An operation maps to a class to which all values belong.  (Contributed
       by NM, 7-Feb-2004.) $)
    ffnov $p |- ( F : ( A X. B ) --> C <-> ( F Fn ( A X. B ) /\
         A. x e. A A. y e. B ( x F y ) e. C ) ) $=
      ( vw cxp wf wfn cv cfv wcel wral wa co ffnfv cop wceq fveq2 df-ov syl6eqr
      eleq1d ralxp anbi2i bitri ) CDHZEFIFUGJZGKZFLZEMZGUGNZOUHAKZBKZFPZEMZBDNA
      CNZOGUGEFQULUQUHUKUPGABCDUIUMUNRZSZUJUOEUSUJURFLUOUIURFTUMUNFUAUBUCUDUEUF
      $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d x y F $.  $d x y R $.  $d x y S $.
    fovcl.1 $e |- F : ( R X. S ) --> C $.
    $( Closure law for an operation.  (Contributed by NM, 19-Apr-2007.) $)
    fovcl $p |- ( ( A e. R /\ B e. S ) -> ( A F B ) e. C ) $=
      ( vx vy wcel wa cv co wral cxp wf wfn ffnov wceq eleq1d ax-mp oveq1 oveq2
      simprbi rspc2v mpi ) ADJBEJKHLZILZFMZCJZIENHDNZABFMZCJZDEOZCFPZUKGUOFUNQU
      KHIDECFRUDUAUJUMAUHFMZCJHIABDEUGASUIUPCUGAUHFUBTUHBSUPULCUHBAFUCTUEUF $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d z C $.  $d z D $.  $d x y z F $.
    $d x y z G $.
    $( Equality of two operations is determined by their values.  (Contributed
       by NM, 1-Sep-2005.) $)
    eqfnov $p |- ( ( F Fn ( A X. B ) /\ G Fn ( C X. D ) ) -> ( F = G <->
( ( A X. B ) = ( C X. D ) /\ A. x e. A A. y e. B ( x F y ) = ( x G y ) ) ) ) $=
      ( vz cxp wfn wa wceq cv cfv wral co eqfnfv2 fveq2 df-ov cop eqeq12d ralxp
      eqeq12i syl6bbr anbi2i syl6bb ) GCDJZKHEFJZKLGHMUHUIMZINZGOZUKHOZMZIUHPZL
      UJANZBNZGQZUPUQHQZMZBDPACPZLIUHUIGHRUOVAUJUNUTIABCDUKUPUQUAZMZUNVBGOZVBHO
      ZMUTVCULVDUMVEUKVBGSUKVBHSUBURVDUSVEUPUQGTUPUQHTUDUEUCUFUG $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d F x y $.  $d G x y $.
    $( Two operators with the same domain are equal iff their values at each
       point in the domain are equal.  (Contributed by Jeff Madsen,
       7-Jun-2010.) $)
    eqfnov2 $p |- ( ( F Fn ( A X. B ) /\ G Fn ( A X. B ) ) ->
                  ( F = G <-> A. x e. A A. y e. B ( x F y ) = ( x G y ) ) ) $=
      ( cxp wfn wa wceq cv co wral eqfnov simpr eqidd ancri impbii syl6bb ) ECD
      GZHFTHIEFJTTJZAKZBKZELUBUCFLJBDMACMZIZUDABCDCDEFNUEUDUAUDOUDUAUDTPQRS $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z F $.
    $( Representation of a function in terms of its values.  (Contributed by
       NM, 7-Feb-2004.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    fnov $p |- ( F Fn ( A X. B ) <->
                    F = ( x e. A , y e. B |-> ( x F y ) ) ) $=
      ( vz cxp wfn cv cfv cmpt wceq cmpt2 dffn5 cop fveq2 df-ov syl6eqr mpt2mpt
      co eqeq2i bitri ) ECDGZHEFUCFIZEJZKZLEABCDAIZBIZETZMZLFUCENUFUJEABFCDUEUI
      UDUGUHOZLUEUKEJUIUDUKEPUGUHEQRSUAUB $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d z C $.  $d z D $.
    $( Bidirectional equality theorem for a mapping abstraction.  Equivalent to
       ~ eqfnov2 .  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    mpt22eqb $p |- ( A. x e. A A. y e. B C e. V ->
      ( ( x e. A , y e. B |-> C ) = ( x e. A , y e. B |-> D ) <->
        A. x e. A A. y e. B C = D ) ) $=
      ( vz wcel wral wceq cv wb wal cmpt2 ralimi ralbi syl wa coprab df-mpt2 wi
      pm13.183 eqeq12i eqoprab2b pm5.32 19.21v bitr3i 2albii r2al bitr4i 3bitri
      albii syl6rbbr ) EGIZBDJZACJZEFKZBDJZACJZHLZEKZVAFKZMZHNZBDJZACJZABCDEOZA
      BCDFOZKZUQUSVFMZACJUTVGMUPVKACUPURVEMZBDJVKUOVLBDHEFGUCPURVEBDQRPUSVFACQR
      VJALCIBLDISZVBSZABHTZVMVCSZABHTZKVNVPMZHNZBNANZVGVHVOVIVQABHCDEUAABHCDFUA
      UDVNVPABHUEVTVMVEUBZBNANVGVSWAABVSVMVDUBZHNWAWBVRHVMVBVCUFUMVMVDHUGUHUIVE
      ABCDUJUKULUN $.
  $}

  ${
    $d w x $.  $d w y z A $.  $d w z B $.  $d w z C $.  $d w z F $.  $d z ps $.
    $d x y z D $.  $d x y ph $.
    rngop.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( The range of an operation given by the "maps to" notation.  (Contributed
       by FL, 20-Jun-2011.) $)
    rnmpt2 $p |- ran F = { z | E. x e. A E. y e. B z = C } $=
      ( crn cv wcel wa wceq coprab wrex cab cmpt2 df-mpt2 eqtri rneqi rnoprab2
      ) GIAJDKBJEKLCJFMZLABCNZIUBBEOADOCPGUCGABDEFQUCHABCDEFRSTUBABCDEUAS $.

    $( The domain of an operation defined by maps-to notation is a relation.
       (Contributed by Stefan O'Rear, 27-Nov-2014.) $)
    reldmmpt2 $p |- Rel dom F $=
      ( vz cdm wrel cv wcel wa wceq coprab reldmoprab cmpt2 df-mpt2 eqtri dmeqi
      releqi mpbir ) FIZJAKCLBKDLMHKENMZABHOZIZJUDABHPUCUFFUEFABCDEQUEGABHCDERS
      TUAUB $.

    $( Membership in the range of an operation class abstraction.  (Contributed
       by NM, 27-Aug-2007.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    elrnmpt2g $p |- ( D e. V ->
                     ( D e. ran F <-> E. x e. A E. y e. B D = C ) ) $=
      ( vz cv wceq wrex crn eqeq1 2rexbidv rnmpt2 elab2g ) JKZELZBDMACMFELZBDMA
      CMJFGNHSFLTUAABCDSFEOPABJCDEGIQR $.

    ${
      elrnmpt2.1 $e |- C e. _V $.
      $( Membership in the range of an operation class abstraction.
         (Contributed by NM, 1-Aug-2004.)  (Revised by Mario Carneiro,
         31-Aug-2015.) $)
      elrnmpt2 $p |- ( D e. ran F <-> E. x e. A E. y e. B D = C ) $=
        ( vz crn wcel cv wceq wrex cab rnmpt2 eleq2i cvv rexlimivw eleq1 mpbiri
        eqeq1 2rexbidv elab3 bitri ) FGKZLFJMZENZBDOACOZJPZLFENZBDOZACOZUGUKFAB
        JCDEGHQRUJUNJFUMFSLZACULUOBDULUOESLIFESUAUBTTUHFNUIULABCDUHFEUCUDUEUF
        $.
    $}

    ${
      $d x y z $.  $d A p y z $.  $d B p z $.  $d C p z $.  $d F z $.
      $d D x y z $.  $d R p x y z $.
      $( Membership in the range of a restricted operation class abstraction.
         (Contributed by Thierry Arnoux, 25-May-2019.) $)
      elrnmpt2res $p |- ( D e. V -> ( D e. ran ( F |` R )
        <-> E. x e. A E. y e. B ( D = C /\ x R y ) ) ) $=
        ( vz vp wcel cres cv wa wceq wex anbi2d copab crn wbr wrex eqeq1 anbi1d
        2exbidv coprab cab cop ancom eleq1 df-br syl6bbr syl5bbr syl5bb pm5.32i
        an12 bitri 2exbii 19.42vv bitr3i opabbii dfoprab2 cmpt2 df-mpt2 reseq1i
        3eqtri resopab eqtri 3eqtr4ri rneqi rnoprab elab2g r2ex ) FIMFHGNZUAZMA
        OZCMBOZDMPZFEQZVQVRGUBZPZPZBRARZWBBDUCACUCVSKOZEQZWAPZPZBRARZWDKFVPIWEF
        QZWHWCABWJWGWBVSWJWFVTWAWEFEUDUESUFVPWHABKUGZUAWIKUHVOWKLOZVQVRUIZQZWHP
        ZBRARZLKTWLGMZWNVSWFPZPZBRARZPZLKTZWKVOWPXALKWPWQWSPZBRARXAXCWOABXCWNWQ
        WRPZPWOWQWNWRUQWNXDWHXDVSWQWFPZPWNWHWQVSWFUQWNXEWGVSXEWFWQPWNWGWFWQUJWN
        WQWAWFWNWQWMGMWAWLWMGUKVQVRGULUMSUNSUOUPURUSWQWSABUTVAVBWHABKLVCVOWTLKT
        ZGNXBHXFGHABCDEVDWRABKUGXFJABKCDEVEWRABKLVCVGVFWTLKGVHVIVJVKWHABKVLVIVM
        WBABCDVNUM $.
    $}

    ralrnmpt2.2 $e |- ( z = C -> ( ph <-> ps ) ) $.
    $( A restricted quantifier over an image set.  (Contributed by Mario
       Carneiro, 1-Sep-2015.) $)
    ralrnmpt2 $p |- ( A. x e. A A. y e. B C e. V ->
      ( A. z e. ran F ph <-> A. x e. A A. y e. B ps ) ) $=
      ( vw wral cv wceq wrex wi wal wb crn wcel cab rnmpt2 eqeq1 2rexbidv ralab
      raleqi ralcom4 r19.23v albii bitr2i 3bitri bitri nfv ceqsalg ralimi ralbi
      syl syl5bbr syl5bb ) AEIUAZNZEOZHPZDGQZARZESZCFNZHJUBZDGNZCFNZBDGNZCFNZVC
      AEMOZHPZDGQCFQZMUCZNVFCFQZARZESZVIAEVBVRCDMFGHIKUDUHVQVSAEMVOVDPVPVECDFGV
      OVDHUEUFUGVIVGCFNZESWAVGCEFUIWBVTEVFACFUJUKULUMVLVHVMTZCFNVIVNTVKWCCFVHVE
      ARZESZDGNZVKVMWFWDDGNZESVHWDDEGUIWGVGEVEADGUJUKUNVKWEBTZDGNWFVMTVJWHDGABE
      HJBEUOLUPUQWEBDGURUSUTUQVHVMCFURUSVA $.

    $( A restricted quantifier over an image set.  (Contributed by Mario
       Carneiro, 1-Sep-2015.) $)
    rexrnmpt2 $p |- ( A. x e. A A. y e. B C e. V ->
      ( E. z e. ran F ph <-> E. x e. A E. y e. B ps ) ) $=
      ( wcel wral wn crn wrex cv notbid dfrex2 wceq rexbii rexnal bitri 3bitr4g
      ralrnmpt2 ) HJMDGNCFNZAOZEIPZNZOBOZDGNZCFNZOZAEUIQBDGQZCFQZUGUJUMUHUKCDEF
      GHIJKERHUAABLSUFSAEUITUPULOZCFQUNUOUQCFBDGTUBULCFUCUDUE $.
  $}

  ${
    $d x y z $.  $d z R $.  $d z S $.
    ovid.1 $e |- ( ( x e. R /\ y e. S ) -> E! z ph ) $.
    ovid.2 $e |- F =
                  { <. <. x , y >. , z >. | ( ( x e. R /\ y e. S ) /\ ph ) } $.
    $( The value of an operation class abstraction.  (Contributed by NM,
       16-May-1995.)  (Revised by David Abernethy, 19-Jun-2012.) $)
    ovid $p |- ( ( x e. R /\ y e. S ) -> ( ( x F y ) = z <-> ph ) ) $=
      ( cv co wceq cop cfv wcel wa df-ov eqeq1i copab wfn coprab fnoprab fneq1i
      wb mpbir opabid biimpri fnopfvb sylancr eleq2i oprabid bitri bitrd syl5bb
      baib ) BJZCJZGKZDJZLUPUQMZGNZUSLZUPEOUQFOPZAURVAUSUPUQGQRVCVBUTUSMZGOZAVC
      GVCBCSZTZUTVFOZVBVEUDVGVCAPZBCDUAZVFTVCABCDHUBVFGVJIUCUEVHVCVCBCUFUGVFUTU
      SGUHUIVEVCAVEVDVJOVIGVJVDIUJVIBCDUKULUOUMUN $.
  $}

  ${
    $d x y z $.
    ovidig.1 $e |- E* z ph $.
    ovidig.2 $e |- F = { <. <. x , y >. , z >. | ph } $.
    $( The value of an operation class abstraction.  Compare ~ ovidi .  The
       condition ` ( x e. R /\ y e. S ) ` is been removed.  (Contributed by
       Mario Carneiro, 29-Dec-2014.) $)
    ovidig $p |- ( ph -> ( x F y ) = z ) $=
      ( cv co cop cfv df-ov wfun wcel wceq coprab funoprab funeqi mpbir oprabid
      biimpri syl6eleqr funopfv mpsyl syl5eq ) ABHZCHZEIUFUGJZEKZDHZUFUGELEMZAU
      HUJJZENUIUJOUKABCDPZMABCDFQEUMGRSAULUMEULUMNAABCDTUAGUBUHUJEUCUDUE $.
  $}

  ${
    $d x y z $.  $d z R $.  $d z S $.
    ovidi.2 $e |- ( ( x e. R /\ y e. S ) -> E* z ph ) $.
    ovidi.3 $e |- F =
                  { <. <. x , y >. , z >. | ( ( x e. R /\ y e. S ) /\ ph ) } $.
    $( The value of an operation class abstraction (weak version).
       (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    ovidi $p |- ( ( x e. R /\ y e. S ) -> ( ph -> ( x F y ) = z ) ) $=
      ( cv wcel wa co wceq wmo wi moanimv mpbir ovidig ex ) BJZEKCJZFKLZAUAUBGM
      DJNUCALZBCDGUDDOUCADOPHUCADQRIST $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z R $.  $d x y z S $.
    $d x y z th $.
    ov.1 $e |- C e. _V $.
    ov.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ov.3 $e |- ( y = B -> ( ps <-> ch ) ) $.
    ov.4 $e |- ( z = C -> ( ch <-> th ) ) $.
    ov.5 $e |- ( ( x e. R /\ y e. S ) -> E! z ph ) $.
    ov.6 $e |- F =
                  { <. <. x , y >. , z >. | ( ( x e. R /\ y e. S ) /\ ph ) } $.
    $( The value of an operation class abstraction.  (Contributed by NM,
       16-May-1995.)  (Revised by David Abernethy, 19-Jun-2012.) $)
    ov $p |- ( ( A e. R /\ B e. S ) -> ( ( A F B ) = C <-> th ) ) $=
      ( wcel wa co wceq cop cv coprab cfv df-ov fveq1i eqtri eqeq1i wfn fnoprab
      copab eleq1 anbi1d anbi2d opelopabg ibir fnopfvb sylancr anbi12d eloprabg
      wb cvv mp3an3 bitrd syl5bb bianabs ) HKTZILTZUAZHIMUBZJUCZDVNHIUDZEUEZKTZ
      FUEZLTZUAZAUAZEFGUFZUGZJUCZVLVLDUAZVMWCJVMVOMUGWCHIMUHVOMWBSUIUJUKVLWDVOJ
      UDWBTZWEVLWBVTEFUNZULVOWGTZWDWFVDVTAEFGRUMVLWHVTVJVSUAZVLEFHIKLVPHUCZVQVJ
      VSVPHKUOUPZVRIUCZVSVKVJVRILUOUQZURUSWGVOJWBUTVAVJVKJVETWFWEVDNWAWIBUAVLCU
      AWEEFGHIJKLVEWJVTWIABWKOVBWLWIVLBCWMPVBGUEJUCCDVLQUQVCVFVGVHVI $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z ps $.
    ovigg.1 $e |- ( ( x = A /\ y = B /\ z = C ) -> ( ph <-> ps ) ) $.
    ovigg.4 $e |- E* z ph $.
    ovigg.5 $e |- F = { <. <. x , y >. , z >. | ph } $.
    $( The value of an operation class abstraction.  Compare ~ ovig .  The
       condition ` ( x e. R /\ y e. S ) ` is been removed.  (Contributed by FL,
       24-Mar-2007.)  (Revised by Mario Carneiro, 19-Dec-2013.) $)
    ovigg $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
                         ( ps -> ( A F B ) = C ) ) $=
      ( wcel w3a cop wceq cfv coprab eloprabga df-ov fveq1i eqtri wfun funoprab
      co wi funopfv ax-mp syl5eq syl6bir ) FJPGKPHLPQBFGRZHRACDEUAZPZFGIUHZHSAB
      CDEFGHJKLMUBUPUQUNUOTZHUQUNITURFGIUCUNIUOOUDUEUOUFUPURHSUIACDENUGUNHUOUJU
      KULUM $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z R $.  $d x y z S $.
    $d x y z ps $.
    ovig.1 $e |- ( ( x = A /\ y = B /\ z = C ) -> ( ph <-> ps ) ) $.
    ovig.2 $e |- ( ( x e. R /\ y e. S ) -> E* z ph ) $.
    ovig.3 $e |- F =
                  { <. <. x , y >. , z >. | ( ( x e. R /\ y e. S ) /\ ph ) } $.
    $( The value of an operation class abstraction (weak version).
       (Unnecessary distinct variable restrictions were removed by David
       Abernethy, 19-Jun-2012.)  (Contributed by NM, 14-Sep-1999.)  (Revised by
       Mario Carneiro, 19-Dec-2013.) $)
    ovig $p |- ( ( A e. R /\ B e. S /\ C e. D ) ->
                         ( ps -> ( A F B ) = C ) ) $=
      ( wcel w3a wa wceq cv co 3simpa wb eleq1 bi2anan9 3adant3 anbi12d moanimv
      wmo wi mpbir ovigg mpand ) FJPZGKPZHIPZQUNUORZBFGLUAHSUNUOUPUBCTZJPZDTZKP
      ZRZARZUQBRCDEFGHLJKIURFSZUTGSZETHSZQVBUQABVDVEVBUQUCVFVDUSUNVEVAUOURFJUDU
      TGKUDUEUFMUGVCEUIVBAEUIUJNVBAEUHUKOULUM $.
  $}

  ${
    $d x y z $.  $d z A $.  $d z B $.  $d z C $.  $d z F $.
    ovmpt4g.3 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( Value of a function given by the "maps to" notation.  (This is the
       operation analogue of ~ fvmpt2 .)  (Contributed by NM, 21-Feb-2004.)
       (Revised by Mario Carneiro, 1-Sep-2015.) $)
    ovmpt4g $p |- ( ( x e. A /\ y e. B /\ C e. V ) -> ( x F y ) = C ) $=
      ( vz cv wcel co wceq wex wa elisset wmo moeq a1i cmpt2 coprab eqtri ovidi
      df-mpt2 eqeq2 mpbidi exlimdv syl5 3impia ) AJZCKZBJZDKZEGKZUJULFLZEMZUNIJ
      ZEMZINUKUMOZUPIEGPUSURUPIURUOUQMUPUSURABICDFURIQUSIERSFABCDETUSUROABIUAHA
      BICDEUDUBUCUQEUOUEUFUGUHUI $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.
    ovmpt2s.3 $e |- F = ( x e. C , y e. D |-> R ) $.
    $( Value of a function given by the "maps to" notation, expressed using
       explicit substitution.  (Contributed by Mario Carneiro, 30-Apr-2015.) $)
    ovmpt2s $p |- ( ( A e. C /\ B e. D /\ [_ A / x ]_ [_ B / y ]_ R e. V ) ->
      ( A F B ) = [_ A / x ]_ [_ B / y ]_ R ) $=
      ( wcel csb co wceq cvv cv wi nfcv nfcsb1v nfel1 elex cmpt2 nfmpt21 nfcxfr
      nfov nfeq nfim nfmpt22 csbeq1a eleq1d oveq1 eqeq12d imbi12d oveq2 ovmpt4g
      wa 3expia vtocl2gaf csbcom eleq1i eqeq2i 3imtr4g syl5 3impia ) CEKZDFKZAC
      BDGLLZIKZCDHMZVGNZVHVGOKZVEVFUPZVJVGIUAVLBDACGLZLZOKZVIVNNZVKVJGOKZAPZBPZ
      HMZGNZQVMOKZCVSHMZVMNZQVOVPQABCDEFACRZBCRZBDRZWBWDAAVMOACGSZTAWCVMACVSHWE
      AHABEFGUBZJABEFGUCUDAVSRUEWHUFUGVOVPBBVNOBDVMSZTBVIVNBCDHWFBHWIJABEFGUHUD
      WGUEWJUFUGVRCNZVQWBWAWDWKGVMOACGUIZUJWKVTWCGVMVRCVSHUKWLULUMVSDNZWBVOWDVP
      WMVMVNOBDVMUIZUJWMWCVIVMVNVSDCHUNWNULUMVREKVSFKVQWAABEFGHOJUOUQURVGVNOABC
      DGUSZUTVGVNVIWOVAVBVCVD $.
  $}

  ${
    $d x y C $.  $d x y D $.
    ov2gf.a $e |- F/_ x A $.
    ov2gf.c $e |- F/_ y A $.
    ov2gf.d $e |- F/_ y B $.
    ov2gf.1 $e |- F/_ x G $.
    ov2gf.2 $e |- F/_ y S $.
    ov2gf.3 $e |- ( x = A -> R = G ) $.
    ov2gf.4 $e |- ( y = B -> G = S ) $.
    ov2gf.5 $e |- F = ( x e. C , y e. D |-> R ) $.
    $( The value of an operation class abstraction.  A version of ~ ovmpt2g
       using bound-variable hypotheses.  (Contributed by NM, 17-Aug-2006.)
       (Revised by Mario Carneiro, 19-Dec-2013.) $)
    ov2gf $p |- ( ( A e. C /\ B e. D /\ S e. H ) -> ( A F B ) = S ) $=
      ( wcel co wceq cvv wa elex cv wi nfel1 nfmpt21 nfcxfr nfcv nfov nfeq nfim
      cmpt2 nfmpt22 eleq1d oveq1 eqeq12d imbi12d oveq2 ovmpt4g 3expia vtocl2gaf
      syl5 3impia ) CETZDFTZHKTZCDIUAZHUBZVIHUCTZVGVHUDVKHKUEGUCTZAUFZBUFZIUAZG
      UBZUGJUCTZCVOIUAZJUBZUGVLVKUGABCDEFLMNVRVTAAJUCOUHAVSJACVOILAIABEFGUOZSAB
      EFGUIUJAVOUKULOUMUNVLVKBBHUCPUHBVJHBCDIMBIWASABEFGUPUJNULPUMUNVNCUBZVMVRV
      QVTWBGJUCQUQWBVPVSGJVNCVOIURQUSUTVODUBZVRVLVTVKWCJHUCRUQWCVSVJJHVODCIVARU
      SUTVNETVOFTVMVQABEFGIUCSVBVCVDVEVF $.
  $}

  ${
    $d x y $.  $d x A $.  $d y B $.
    ovmpt2dx.1 $e |- ( ph -> F = ( x e. C , y e. D |-> R ) ) $.
    ovmpt2dx.2 $e |- ( ( ph /\ ( x = A /\ y = B ) ) -> R = S ) $.
    ovmpt2dx.3 $e |- ( ( ph /\ x = A ) -> D = L ) $.
    ovmpt2dx.4 $e |- ( ph -> A e. C ) $.
    ovmpt2dx.5 $e |- ( ph -> B e. L ) $.
    ovmpt2dx.6 $e |- ( ph -> S e. X ) $.
    ${
      ovmpt2dxf.px $e |- F/ x ph $.
      ovmpt2dxf.py $e |- F/ y ph $.
      ovmpt2dxf.ay $e |- F/_ y A $.
      ovmpt2dxf.bx $e |- F/_ x B $.
      ovmpt2dxf.sx $e |- F/_ x S $.
      ovmpt2dxf.sy $e |- F/_ y S $.
      $( Value of an operation given by a maps-to rule, deduction form.
         (Contributed by Mario Carneiro, 29-Dec-2014.) $)
      ovmpt2dxf $p |- ( ph -> ( A F B ) = S ) $=
        ( co cmpt2 oveqd cv wcel cvv w3a wceq wi wsbc ovmpt4g a1i alrimi spsbcd
        eqid wa adantr simplr ad2antrr eqeltrd simpr 3eltr4d anassrs elex biimt
        wb syl syl3anc oveq12d eqeq12d bitr3d nfeq2 nfan nfmpt22 nfcv nfov nfeq
        wnf sbciedf nfmpt21 mpbid eqtrd ) ADEJUEDEBCFGHUFZUEZIAJWGDEMUGABUHZFUI
        ZCUHZGUIZHUJUIZUKZWIWKWGUEZHULZUMZCEUNZBDUNWHIULZAWRBDFPAWRBSAWQCEKQAWQ
        CTWQABCFGHWGUJWGUSUOUPUQURUQURAWRWSBDFPAWIDULZUTZWQWSCEKAEKUIZWTQVAXAWK
        EULZUTZWPWQWSXDWJWLWMWPWQVJXDWIDFAWTXCVBZADFUIWTXCPVCVDXDEKWKGAXBWTXCQV
        CXAXCVEZXAGKULXCOVAVFXDHIUJAWTXCHIULNVGZAIUJUIZWTXCAILUIXHRILVHVKVCVDWN
        WPVIVLXDWOWHHIXDWIDWKEWGXEXFVMXGVNVOAWTCTCWIDUAVPVQWSCWBXACWHICDEWGUABC
        FGHVRCEVSVTUDWAUPWCSWSBWBABWHIBDEWGBDVSBCFGHWDUBVTUCWAUPWCWEWF $.
    $}

    $d y A $.  $d x B $.  $d x y S $.  $d x y ph $.
    $( Value of an operation given by a maps-to rule, deduction form.
       (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    ovmpt2dx $p |- ( ph -> ( A F B ) = S ) $=
      ( nfv nfcv ovmpt2dxf ) ABCDEFGHIJKLMNOPQRABSACSCDTBETBITCITUA $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y S $.  $d x y ph $.
    ovmpt2d.1 $e |- ( ph -> F = ( x e. C , y e. D |-> R ) ) $.
    ovmpt2d.2 $e |- ( ( ph /\ ( x = A /\ y = B ) ) -> R = S ) $.
    ovmpt2d.3 $e |- ( ph -> A e. C ) $.
    ovmpt2d.4 $e |- ( ph -> B e. D ) $.
    ovmpt2d.5 $e |- ( ph -> S e. X ) $.
    $( Value of an operation given by a maps-to rule, deduction form.
       (Contributed by Mario Carneiro, 7-Dec-2014.) $)
    ovmpt2d $p |- ( ph -> ( A F B ) = S ) $=
      ( cv wceq wa eqidd ovmpt2dx ) ABCDEFGHIJGKLMABQDRSGTNOPUA $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y L $.  $d x y S $.
    ovmpt2x.1 $e |- ( ( x = A /\ y = B ) -> R = S ) $.
    ovmpt2x.2 $e |- ( x = A -> D = L ) $.
    ovmpt2x.3 $e |- F = ( x e. C , y e. D |-> R ) $.
    $( The value of an operation class abstraction.  Variant of ~ ovmpt2ga
       which does not require ` D ` and ` x ` to be distinct.  (Contributed by
       Jeff Madsen, 10-Jun-2010.)  (Revised by Mario Carneiro, 20-Dec-2013.) $)
    ovmpt2x $p |- ( ( A e. C /\ B e. L /\ S e. H ) -> ( A F B ) = S ) $=
      ( wcel cvv co wceq cv adantl elex w3a cmpt2 wa simp1 simp2 simp3 ovmpt2dx
      a1i syl3an3 ) HJOCEOZDKOZHPOZCDIQHRHJUAUKULUMUBZABCDEFGHIKPIABEFGUCRUNNUI
      ASCRZBSDRUDGHRUNLTUOFKRUNMTUKULUMUEUKULUMUFUKULUMUGUHUJ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y S $.
    ovmpt2ga.1 $e |- ( ( x = A /\ y = B ) -> R = S ) $.
    ovmpt2ga.2 $e |- F = ( x e. C , y e. D |-> R ) $.
    $( Value of an operation given by a maps-to rule.  (Contributed by Mario
       Carneiro, 19-Dec-2013.) $)
    ovmpt2ga $p |- ( ( A e. C /\ B e. D /\ S e. H ) -> ( A F B ) = S ) $=
      ( wcel cvv co wceq elex w3a cmpt2 cv a1i adantl simp1 simp2 simp3 ovmpt2d
      wa syl3an3 ) HJMCEMZDFMZHNMZCDIOHPHJQUIUJUKRZABCDEFGHINIABEFGSPULLUAATCPB
      TDPUGGHPULKUBUIUJUKUCUIUJUKUDUIUJUKUEUFUH $.

    ovmpt2a.4 $e |- S e. _V $.
    $( Value of an operation given by a maps-to rule.  (Contributed by NM,
       19-Dec-2013.) $)
    ovmpt2a $p |- ( ( A e. C /\ B e. D ) -> ( A F B ) = S ) $=
      ( wcel cvv co wceq ovmpt2ga mp3an3 ) CEMDFMHNMCDIOHPLABCDEFGHINJKQR $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y ph $.
    ovmpt2df.1 $e |- ( ph -> A e. C ) $.
    ovmpt2df.2 $e |- ( ( ph /\ x = A ) -> B e. D ) $.
    ovmpt2df.3 $e |- ( ( ph /\ ( x = A /\ y = B ) ) -> R e. V ) $.
    ovmpt2df.4 $e |- ( ( ph /\ ( x = A /\ y = B ) ) ->
      ( ( A F B ) = R -> ps ) ) $.
    ${
      ovmpt2df.5 $e |- F/_ x F $.
      ovmpt2df.6 $e |- F/ x ps $.
      ovmpt2df.7 $e |- F/_ y F $.
      ovmpt2df.8 $e |- F/ y ps $.
      $( Alternate deduction version of ~ ovmpt2 , suitable for iteration.
         (Contributed by Mario Carneiro, 7-Jan-2017.) $)
      ovmpt2df $p |- ( ph -> ( F = ( x e. C , y e. D |-> R ) -> ps ) ) $=
        ( wcel cv wceq cmpt2 nfv nfmpt21 nfeq nfim cvv wex elex syl isset sylib
        wi wa nfmpt22 co oveq simprl simprr oveq12d adantr eqeltrd adantrr eqid
        ovmpt4g syl3anc eqtr3d eqeq2d sylbid syl5 expr exlimd mpd exlimdd ) ACU
        AZEUBZJCDGHIUCZUBZBUNZCACUDVSBCCJVRPCDGHIUEUFQUGAEUHTZVQCUIAEGTZWALEGUJ
        UKCEULUMAVQUOZDUAZFUBZDUIZVTWCFUHTZWFWCFHTZWGMFHUJUKDFULUMWCWEVTDWCDUDV
        SBDDJVRRCDGHIUPUFSUGAVQWEVTVSEFJUQZEFVRUQZUBZAVQWEUOZUOZBEFJVRURWMWKWII
        UBBWMWJIWIWMVPWDVRUQZWJIWMVPEWDFVRAVQWEUSZAVQWEUTZVAWMVPGTWDHTIKTWNIUBW
        MVPEGWOAWBWLLVBVCWMWDFHWPAVQWHWEMVDVCNCDGHIVRKVRVEVFVGVHVIOVJVKVLVMVNVO
        $.
    $}

    $d x y F $.  $d x y ps $.
    $( Alternate deduction version of ~ ovmpt2 , suitable for iteration.
       (Contributed by Mario Carneiro, 7-Jan-2017.) $)
    ovmpt2dv $p |- ( ph -> ( F = ( x e. C , y e. D |-> R ) -> ps ) ) $=
      ( nfcv nfv ovmpt2df ) ABCDEFGHIJKLMNOCJPBCQDJPBDQR $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ph $.  $d x y S $.
    ovmpt2dv2.1 $e |- ( ph -> A e. C ) $.
    ovmpt2dv2.2 $e |- ( ( ph /\ x = A ) -> B e. D ) $.
    ovmpt2dv2.3 $e |- ( ( ph /\ ( x = A /\ y = B ) ) -> R e. V ) $.
    ovmpt2dv2.4 $e |- ( ( ph /\ ( x = A /\ y = B ) ) -> R = S ) $.
    $( Alternate deduction version of ~ ovmpt2 , suitable for iteration.
       (Contributed by Mario Carneiro, 7-Jan-2017.) $)
    ovmpt2dv2 $p |- ( ph ->
      ( F = ( x e. C , y e. D |-> R ) -> ( A F B ) = S ) ) $=
      ( co wceq cv wa nfcv cmpt2 eqidd eqeq2d biimpd nfmpt21 nfov nfeq1 nfmpt22
      ovmpt2df mpd oveq eqeq1d syl5ibrcom ) ADEJPZIQJBCFGHUAZQZDEUOPZIQZAUOUOQU
      RAUOUBAURBCDEFGHUOKLMNABRDQCREQSSZUQHQURUSHIUQOUCUDBCFGHUEZBUQIBDEUOBDTUT
      BETUFUGBCFGHUHZCUQICDEUOCDTVACETUFUGUIUJUPUNUQIDEJUOUKULUM $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y S $.
    ovmpt2g.1 $e |- ( x = A -> R = G ) $.
    ovmpt2g.2 $e |- ( y = B -> G = S ) $.
    ovmpt2g.3 $e |- F = ( x e. C , y e. D |-> R ) $.
    $( Value of an operation given by a maps-to rule.  Special case.
       (Contributed by NM, 14-Sep-1999.)  (Revised by David Abernethy,
       19-Jun-2012.) $)
    ovmpt2g $p |- ( ( A e. C /\ B e. D /\ S e. H ) -> ( A F B ) = S ) $=
      ( cv wceq sylan9eq ovmpt2ga ) ABCDEFGHIKAOCPBODPGJHLMQNR $.

    ovmpt2.4 $e |- S e. _V $.
    $( Value of an operation given by a maps-to rule.  Special case.
       (Contributed by NM, 16-May-1995.)  (Revised by David Abernethy,
       19-Jun-2012.) $)
    ovmpt2 $p |- ( ( A e. C /\ B e. D ) -> ( A F B ) = S ) $=
      ( wcel cvv co wceq ovmpt2g mp3an3 ) CEODFOHPOCDIQHRNABCDEFGHIJPKLMST $.
  $}

  ${
    $d f u v w x y z A $.  $d f u v w x y z B $.  $d x y z R $.
    $d f u v w y z C $.  $d f u v w y z D $.  $d f u v w x y z H $.
    $d f u v w z S $.
    ov3.1 $e |- S e. _V $.
    ov3.2 $e |- ( ( ( w = A /\ v = B ) /\ ( u = C /\ f = D ) ) ->
         R = S ) $.
    ov3.3 $e |- F = { <. <. x , y >. , z >. | ( ( x e. ( H X. H ) /\
                      y e. ( H X. H ) ) /\
                      E. w E. v E. u E. f ( ( x = <. w , v >. /\
                      y = <. u , f >. ) /\ z = R ) ) } $.
    $( The value of an operation class abstraction.  Special case.
       (Contributed by NM, 28-May-1995.)  (Revised by Mario Carneiro,
       29-Dec-2014.) $)
    ov3 $p |- ( ( ( A e. H /\ B e. H ) /\ ( C e. H /\ D e. H ) ) ->
        ( <. A , B >. F <. C , D >. ) = S ) $=
      ( wa wex wcel cv wceq cop isseti nfv nfcv cxp coprab nfoprab3 nfcxfr nfov
      co nfeq1 eqeq2d copsex4g wi opelxpi nfoprab1 nfim nfoprab2 anbi1d 4exbidv
      eqeq1 oveq1 eqeq1d imbi12d anbi2d oveq2 moeq mosubop anass 2exbii 19.42vv
      wmo bitri mobii mpbir a1i ovidi vtocl2gaf syl2an sylbird eqeq2 mpbidi mpi
      exlimd ) GOUAHOUASZIOUAJOUASZSZCUBZLUCZCTGHUDZIJUDZNUMZLUCZCLPUEWJWLWPCWJ
      CUFCWOLCWMWNNCWMUGCNAUBZOOUHZUABUBZWRUASZWQDUBZEUBZUDZUCZWSFUBZMUBZUDZUCZ
      SZWKKUCZSZMTFTZETDTZSZABCUIZRXNABCUJUKCWNUGULUNWLWOWKUCZWPWJWJWLWMXCUCZWN
      XGUCZSZXJSZMTFTETDTZXPXJWLDEFMGHIJOOXAGUCXBHUCSXEIUCXFJUCSSKLWKQUOUPWHWMW
      RUAWNWRUAYAXPUQZWIGHOOURIJOOURXMWQWSNUMZWKUCZUQXQXHSZXJSZMTFTETDTZWMWSNUM
      ZWKUCZUQYBABWMWNWRWRAWMUGZBWMUGZBWNUGZYGYIAYGAUFAYHWKAWMWSNYJANXORXNABCUS
      UKAWSUGULUNUTYAXPBYABUFBWOWKBWMWNNYKBNXORXNABCVAUKYLULUNUTWQWMUCZXMYGYDYI
      YMXKYFDEFMYMXIYEXJYMXDXQXHWQWMXCVDVBVBVCYMYCYHWKWQWMWSNVEVFVGWSWNUCZYGYAY
      IXPYNYFXTDEFMYNYEXSXJYNXHXRXQWSWNXGVDVHVBVCYNYHWOWKWSWNWMNVIVFVGXMABCWRWR
      NXMCVOZWTYOXDXHXJSZMTFTZSZETDTZCVOYQCDEWQXJCFMWSCKVJVKVKXMYSCXLYRDEXLXDYP
      SZMTFTYRXKYTFMXDXHXJVLVMXDYPFMVNVPVMVQVRVSRVTWAWBWCWKLWOWDWEWGWF $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z C $.  $d w z R $.
    $d w x y z S $.
    ov6g.1 $e |- ( <. x , y >. = <. A , B >. -> R = S ) $.
    ov6g.2 $e |- F = { <. <. x , y >. , z >. | ( <. x , y >. e. C
                      /\ z = R ) } $.
    $( The value of an operation class abstraction.  Special case.
       (Contributed by NM, 13-Nov-2006.) $)
    ov6g $p |- ( ( ( A e. G /\ B e. H /\ <. A , B >. e. C ) /\ S e. J )
                     -> ( A F B ) = S ) $=
      ( vw wcel wa cv wceq wex cop w3a co cfv df-ov eqid biidd copsex2g 3adant3
      mpbiri adantr wi eqeq1 anbi1d eqeq2d eqcoms pm5.32i syl6bb 2exbidv anbi2d
      wb wmo moeq mosubop a1i coprab copab dfoprab2 eleq1 bitr3i 2exbii 19.42vv
      an12 bitri opabbii 3eqtri fvopab3ig 3ad2antl3 mpd syl5eq ) DJPZEKPZDEUAZF
      PZUBZHLPZQZDEIUCWCIUDZHDEIUEWGWCARZBRZUAZSZHHSZQZBTATZWHHSZWEWOWFWAWBWOWD
      WAWBQWOWMHUFWMWMABDEJKWIDSWJESQWMUGUHUJUIUKWDWAWFWOWPULWBORZWKSZCRZGSZQZB
      TATZWLWSHSZQZBTATWOOCWCHFLIWQWCSZXAXDABXEXAWLWTQXDXEWRWLWTWQWCWKUMUNWLWTX
      CWTXCVAWKWCWKWCSGHWSMUOUPUQURUSXCXDWNABXCXCWMWLWSHHUMUTUSXBCVBWQFPZWTCABW
      QCGVCVDVEIWKFPZWTQZABCVFWRXHQZBTATZOCVGXFXBQZOCVGNXHABCOVHXJXKOCXJXFXAQZB
      TATXKXIXLABXIWRXFWTQZQXLWRXMXHWRXFXGWTWQWKFVIUNUQWRXFWTVMVJVKXFXAABVLVNVO
      VPVQVRVSVT $.
  $}

  ${
    $d ph c $.  $d ps x $.  $d ch x y $.  $d th x y z $.  $d ta x y c $.
    $d R x y z c $.  $d S x y z c $.  $d A x y z c $.  $d B x y z c $.
    $d C x y z c $.
    ovg.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    ovg.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    ovg.3 $e |- ( z = C -> ( ch <-> th ) ) $.
    ovg.4 $e |- ( ( ta /\ ( x e. R /\ y e. S ) ) -> E! z ph ) $.
    ovg.5 $e |- F = { <. <. x , y >. , z >. |
                                            ( ( x e. R /\ y e. S ) /\ ph ) } $.
    $( The value of an operation class abstraction.  (Contributed by Jeff
       Madsen, 10-Jun-2010.) $)
    ovg $p |- ( ( ta /\ ( A e. R /\ B e. S /\ C e. D ) )
                                            -> ( ( A F B ) = C <-> th ) ) $=
      ( vc wcel w3a wa co wceq cop cv coprab df-ov fveq1i eqtri eqeq1i wb eqeq2
      cfv wi opeq2 eleq1d bibi12d imbi2d copab wfn weu wal ex alrimivv fnoprabg
      syl eleq1 anbi1d anbi2d opelopabg fnopfvb syl2an vtoclg com12 exp32 3imp2
      ibir anbi12d eloprabg adantl bitrd syl5bb biidd bianabs 3adant3 ) EIMUBZJ
      NUBZKLUBZUCZUDZIJOUEZKUFZWIWJUDZDUDZDWOIJUGZFUHZMUBZGUHZNUBZUDZAUDZFGHUIZ
      UPZKUFZWMWQWNXFKWNWROUPXFIJOUJWROXETUKULUMWMXGWRKUGZXEUBZWQEWIWJWKXGXIUNZ
      EWIWJWKXJUQWKEWPUDZXJXKXFUAUHZUFZWRXLUGZXEUBZUNZUQXKXJUQUAKLXLKUFZXPXJXKX
      QXMXGXOXIXLKXFUOXQXNXHXEXLKWRURUSUTVAEXEXCFGVBZVCZWRXRUBZXPWPEXCAHVDZUQZG
      VEFVEXSEYBFGEXCYASVFVGXCAFGHVHVIWPXTXCWIXBUDZWPFGIJMNWSIUFZWTWIXBWSIMVJVK
      ZXAJUFZXBWJWIXAJNVJVLZVMVTXRWRXLXEVNVOVPVQVRVSWLXIWQUNEXDYCBUDWPCUDWQFGHI
      JKMNLYDXCYCABYEPWAYFYCWPBCYGQWAHUHKUFCDWPRVLWBWCWDWEWLWQDUNZEWIWJYHWKWPWQ
      DWPWQWFWGWHWCWD $.
  $}

  $( The value of a restricted operation.  (Contributed by FL, 10-Nov-2006.) $)
  ovres $p |- ( ( A e. C /\ B e. D ) -> ( A ( F |` ( C X. D ) ) B )
    = ( A F B ) ) $=
    ( wcel wa cop cxp cres cfv co wceq opelxpi fvres syl df-ov 3eqtr4g ) ACFBDF
    GZABHZECDIZJZKZTEKZABUBLABELSTUAFUCUDMABCDNTUAEOPABUBQABEQR $.

  ${
    ovresd.1 $e |- ( ph -> A e. X ) $.
    ovresd.2 $e |- ( ph -> B e. X ) $.
    $( Lemma for converting metric theorems to metric space theorems.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    ovresd $p |- ( ph -> ( A ( D |` ( X X. X ) ) B ) = ( A D B ) ) $=
      ( wcel cxp cres co wceq ovres syl2anc ) ABEHCEHBCDEEIJKBCDKLFGBCEEDMN $.
  $}

  ${
    $d F x y $.  $d G x y $.  $d Y x y $.  $d ph x y $.
    oprres.v $e |- ( ( ph /\ x e. Y /\ y e. Y ) -> ( x F y ) = ( x G y ) ) $.
    oprres.s $e |- ( ph -> Y C_ X ) $.
    oprres.f $e |- ( ph -> F : ( Y X. Y ) --> R ) $.
    oprres.g $e |- ( ph -> G : ( X X. X ) --> S ) $.
    $( The restriction of an operation is an operation.  (Contributed by NM,
       1-Feb-2008.)  (Revised by AV, 19-Oct-2021.) $)
    oprres $p |- ( ph -> F = ( G |` ( Y X. Y ) ) ) $=
      ( cxp wceq cv co wa wfn syl2anc cres 3expb ovres adantl eqtr4d ralrimivva
      wral wcel eqid jctil wb ffnd wss xpss12 fnssres eqfnov mpbird ) AFGIINZUA
      ZOZURUROZBPZCPZFQZVBVCUSQZOZCIUGBIUGZRZAVGVAAVFBCIIAVBIUHZVCIUHZRZRVDVBVC
      GQZVEAVIVJVDVLOJUBVKVEVLOAVBVCIIGUCUDUEUFURUIUJAFURSUSURSZUTVHUKAURDFLULA
      GHHNZSURVNUMZVMAVNEGMULAIHUMZVPVOKKIHIHUNTVNURGUOTBCIIIIFUSUPTUQ $.
  $}

  $( The value of a member of the domain of a subclass of an operation.
     (Contributed by NM, 23-Aug-2007.) $)
  oprssov $p |- ( ( ( Fun F /\ G Fn ( C X. D ) /\ G C_ F ) /\
        ( A e. C /\ B e. D ) ) -> ( A F B ) = ( A G B ) ) $=
    ( wfun cxp wfn wss w3a wcel wa cres co wceq ovres adantl cdm eqtr3d reseq2d
    fndm 3ad2ant2 funssres 3adant2 oveqd adantr ) EGZFCDHZIZFEJZKZACLBDLMZMABEU
    INZOZABEOZABFOZUMUOUPPULABCDEQRULUOUQPUMULUNFABULEFSZNZUNFUJUHUSUNPUKUJURUI
    EUIFUBUAUCUHUKUSFPUJEFUDUETUFUGT $.

  $( An operation's value belongs to its codomain.  (Contributed by NM,
     27-Aug-2006.) $)
  fovrn $p |- ( ( F : ( R X. S ) --> C /\ A e. R /\ B e. S ) ->
               ( A F B ) e. C ) $=
    ( cxp wf wcel co wa cop opelxpi cfv df-ov ffvelrn syl5eqel sylan2 3impb ) D
    EGZCFHZADIZBEIZABFJZCIZUBUCKUAABLZTIZUEABDEMUAUGKUDUFFNCABFOTCUFFPQRS $.

  ${
    fovrnd.1 $e |- ( ph -> F : ( R X. S ) --> C ) $.
    $( An operation's value belongs to its codomain.  (Contributed by Mario
       Carneiro, 29-Dec-2016.) $)
    fovrnda $p |- ( ( ph /\ ( A e. R /\ B e. S ) ) -> ( A F B ) e. C ) $=
      ( wcel co cxp wf fovrn syl3an1 3expb ) ABEIZCFIZBCGJDIZAEFKDGLPQRHBCDEFGM
      NO $.

    fovrnd.2 $e |- ( ph -> A e. R ) $.
    fovrnd.3 $e |- ( ph -> B e. S ) $.
    $( An operation's value belongs to its codomain.  (Contributed by Mario
       Carneiro, 29-Dec-2016.) $)
    fovrnd $p |- ( ph -> ( A F B ) e. C ) $=
      ( cxp wf wcel co fovrn syl3anc ) AEFKDGLBEMCFMBCGNDMHIJBCDEFGOP $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w z C $.  $d w x y z F $.
    $( The range of an operation expressed as a collection of the operation's
       values.  (Contributed by NM, 29-Oct-2006.) $)
    fnrnov $p |- ( F Fn ( A X. B ) -> ran F = { z | E. x e. A E. y e. B
                     z = ( x F y ) } ) $=
      ( vw cxp wfn crn cv cfv wceq wrex cab co fnrnfv cop fveq2 df-ov syl6eqr
      eqeq2d rexxp abbii syl6eq ) FDEHZIFJCKZGKZFLZMZGUFNZCOUGAKZBKZFPZMZBENADN
      ZCOGCUFFQUKUPCUJUOGABDEUHULUMRZMZUIUNUGURUIUQFLUNUHUQFSULUMFTUAUBUCUDUE
      $.

    $( An onto mapping of an operation expressed in terms of operation values.
       (Contributed by NM, 29-Oct-2006.) $)
    foov $p |- ( F : ( A X. B ) -onto-> C <-> ( F : ( A X. B ) --> C /\
                  A. z e. C E. x e. A E. y e. B z = ( x F y ) ) ) $=
      ( vw cxp wfo wf cv cfv wceq wrex wral wa co dffo3 cop fveq2 df-ov syl6eqr
      eqeq2d rexxp ralbii anbi2i bitri ) DEIZFGJUIFGKZCLZHLZGMZNZHUIOZCFPZQUJUK
      ALZBLZGRZNZBEOADOZCFPZQHCUIFGSUPVBUJUOVACFUNUTHABDEULUQURTZNZUMUSUKVDUMVC
      GMUSULVCGUAUQURGUBUCUDUEUFUGUH $.
  $}

  $( An operation's value belongs to its range.  (Contributed by NM,
     10-Feb-2007.) $)
  fnovrn $p |- ( ( F Fn ( A X. B ) /\ C e. A /\ D e. B ) ->
                   ( C F D ) e. ran F ) $=
    ( cxp wfn wcel co crn cop opelxpi cfv df-ov fnfvelrn syl5eqel sylan2 3impb
    wa ) EABFZGZCAHZDBHZCDEIZEJZHZUBUCSUACDKZTHZUFCDABLUAUHSUDUGEMUECDENTUGEOPQ
    R $.

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.  $d x y z F $.
    $( A member of an operation's range is a value of the operation.
       (Contributed by NM, 7-Feb-2007.)  (Revised by Mario Carneiro,
       30-Jan-2014.) $)
    ovelrn $p |- ( F Fn ( A X. B ) -> ( C e. ran F <->
                  E. x e. A E. y e. B C = ( x F y ) ) ) $=
      ( vz cxp wfn crn wcel cv co wceq wrex cab fnrnov eleq2d cvv rexlimivw
      ovex eleq1 mpbiri eqeq1 2rexbidv elab3 syl6bb ) FCDHIZEFJZKEGLZALZBLZFMZN
      ZBDOACOZGPZKEUMNZBDOZACOZUHUIUPEABGCDFQRUOUSGEURESKZACUQUTBDUQUTUMSKUKULF
      UAEUMSUBUCTTUJENUNUQABCDUJEUMUDUEUFUG $.

    $( Membership relation for the values of a function whose image is a
       subclass.  (Contributed by Mario Carneiro, 23-Dec-2013.) $)
    funimassov $p |- ( ( Fun F /\ ( A X. B ) C_ dom F ) ->
        ( ( F " ( A X. B ) ) C_ C <-> A. x e. A A. y e. B ( x F y ) e. C ) ) $=
      ( vz wfun cxp cdm wss wa cima cv cfv wcel wral co funimass4 cop syl6eqr
      wceq fveq2 df-ov eleq1d ralxp syl6bb ) FHCDIZFJKLFUHMEKGNZFOZEPZGUHQANZBN
      ZFRZEPZBDQACQGUHEFSUKUOGABCDUIULUMTZUBZUJUNEUQUJUPFOUNUIUPFUCULUMFUDUAUEU
      FUG $.

    $( Operation value in an image.  (Contributed by Mario Carneiro,
       23-Dec-2013.)  (Revised by Mario Carneiro, 29-Jan-2014.) $)
    ovelimab $p |- ( ( F Fn A /\ ( B X. C ) C_ A ) ->
        ( D e. ( F " ( B X. C ) ) <-> E. x e. B E. y e. C D = ( x F y ) ) ) $=
      ( vz wfn cxp wss wa cima wcel cv cfv wceq wrex co syl6bb fvelimab syl6eqr
      cop fveq2 df-ov eqeq1d eqcom rexxp ) GCIDEJZCKLFGUIMNHOZGPZFQZHUIRFAOZBOZ
      GSZQZBERADRHCUIFGUAULUPHABDEUJUMUNUCZQZULUOFQUPURUKUOFURUKUQGPUOUJUQGUDUM
      UNGUEUBUFUOFUGTUHT $.
  $}

  $( An operation value is a member of the image plus null.  (Contributed by
     Thierry Arnoux, 25-Jun-2019.) $)
  ovima0 $p |- ( ( X e. A /\ Y e. B )
    -> ( X R Y ) e. ( ( R " ( A X. B ) ) u. { (/) } ) ) $=
    ( wcel wa co c0 wceq cxp cima csn cun simpr ssun2 0ex snid sselii wn eqeq1i
    syl6eqel ssun1 cop cfv opelxpi notbii biimpi eliman0 syl2an syl5eqel sseldi
    df-ov pm2.61dan ) DAFEBFGZDECHZIJZUPCABKZLZIMZNZFUOUQGUPIVAUOUQOUTVAIUTUSPI
    QRSUBUOUQTZGZUSVAUPUSUTUCVCUPDEUDZCUEZUSDECUMZUOVDURFVEIJZTZVEUSFVBDEABUFVB
    VHUQVGUPVEIVFUAUGUHVDURCUIUJUKULUN $.

  ${
    oprvalconst2.1 $e |- C e. _V $.
    $( The value of a constant operation.  (Contributed by NM, 5-Nov-2006.) $)
    ovconst2 $p |- ( ( R e. A /\ S e. B ) ->
                       ( R ( ( A X. B ) X. { C } ) S ) = C ) $=
      ( wcel wa cxp csn co cop cfv df-ov wceq opelxpi fvconst2 syl syl5eq ) DAG
      EBGHZDEABIZCJIZKDELZUBMZCDEUBNTUCUAGUDCODEABPUACUCFQRS $.
  $}

  ${
    $d x y S $.  $d x y F $.
    oprssdm.1 $e |- -. (/) e. S $.
    oprssdm.2 $e |- ( ( x e. S /\ y e. S ) -> ( x F y ) e. S ) $.
    $( Domain of closure of an operation.  (Contributed by NM, 24-Aug-1995.) $)
    oprssdm $p |- ( S X. S ) C_ dom F $=
      ( cxp cdm relxp cv cop wcel wa opelxp cfv co df-ov syl5eqelr wn c0 eleq1d
      ndmfv mtbiri con4i syl sylbi relssi ) ABCCGZDHZCCIAJZBJZKZUHLUJCLUKCLMZUL
      UILZUJUKCCNUMULDOZCLZUNUMUOUJUKDPCUJUKDQFRUNUPUNSZUPTCLEUQUOTCULDUBUAUCUD
      UEUFUG $.
  $}

  $( The value of an operation outside its domain.  (Contributed by Alexander
     van der Vekens, 7-Sep-2017.) $)
  nssdmovg $p |- ( ( dom F C_ ( R X. S ) /\ -. ( A e. R /\ B e. S ) )
              -> ( A F B ) = (/) ) $=
    ( cdm cxp wss wcel wa wn co cop cfv c0 df-ov wceq ssel2 opelxp sylib syl5eq
    stoic1a ndmfv syl ) EFZCDGZHZACIBDIJZKJZABELABMZENZOABEPUIUJUEIZKUKOQUGULUH
    UGULJUJUFIUHUEUFUJRABCDSTUBUJEUCUDUA $.

  $( The value of an operation outside its domain.  (Contributed by NM,
     28-Mar-2008.) $)
  ndmovg $p |- ( ( dom F = ( R X. S ) /\ -. ( A e. R /\ B e. S ) )
              -> ( A F B ) = (/) ) $=
    ( cdm cxp wceq wcel wa wn co cop cfv c0 df-ov eleq2 opelxp syl6bb notbid
    ndmfv syl6bir imp syl5eq ) EFZCDGZHZACIBDIJZKZJABELABMZENZOABEPUGUIUKOHZUGU
    IUJUEIZKULUGUMUHUGUMUJUFIUHUEUFUJQABCDRSTUJEUAUBUCUD $.

  ${
    ndmov.1 $e |- dom F = ( S X. S ) $.
    $( The value of an operation outside its domain.  (Contributed by NM,
       24-Aug-1995.) $)
    ndmov $p |- ( -. ( A e. S /\ B e. S ) -> ( A F B ) = (/) ) $=
      ( cdm cxp wceq wcel wa wn co c0 ndmovg mpan ) DFCCGHACIBCIJKABDLMHEABCCDN
      O $.

    ${
      ndmovcl.2 $e |- ( ( A e. S /\ B e. S ) -> ( A F B ) e. S ) $.
      ndmovcl.3 $e |- (/) e. S $.
      $( The closure of an operation outside its domain, when the domain
         includes the empty set.  This technical lemma can make the operation
         more convenient to work in some cases.  It is dependent on our
         particular definitions of operation value, function value, and ordered
         pair.  (Contributed by NM, 24-Sep-2004.) $)
      ndmovcl $p |- ( A F B ) e. S $=
        ( wcel wa co wn c0 ndmov syl6eqel pm2.61i ) ACHBCHIZABDJZCHFPKQLCABCDEM
        GNO $.
    $}

    ${
      ndmovrcl.3 $e |- -. (/) e. S $.
      $( Reverse closure law, when an operation's domain doesn't contain the
         empty set.  (Contributed by NM, 3-Feb-1996.) $)
      ndmovrcl $p |- ( ( A F B ) e. S -> ( A e. S /\ B e. S ) ) $=
        ( wcel wa co wn c0 ndmov eleq1d mtbiri con4i ) ACGBCGHZABDIZCGZPJZRKCGF
        SQKCABCDELMNO $.
    $}

    $( Any operation is commutative outside its domain.  (Contributed by NM,
       24-Aug-1995.) $)
    ndmovcom $p |- ( -. ( A e. S /\ B e. S ) -> ( A F B ) = ( B F A ) ) $=
      ( wcel wa wn co c0 ndmov wceq ancom sylnbi eqtr4d ) ACFZBCFZGZHABDIJBADIZ
      ABCDEKRQPGSJLPQMBACDEKNO $.

    ${
      ndmov.5 $e |- -. (/) e. S $.
      $( Any operation is associative outside its domain, if the domain doesn't
         contain the empty set.  (Contributed by NM, 24-Aug-1995.) $)
      ndmovass $p |- ( -. ( A e. S /\ B e. S /\ C e. S ) ->
              ( ( A F B ) F C ) = ( A F ( B F C ) ) ) $=
        ( wcel w3a wn co c0 wa wceq ndmovrcl anim1i sylibr con3i ndmov syl
        df-3an anim2i 3anass eqtr4d ) ADHZBDHZCDHZIZJZABEKZCEKZLABCEKZEKZUIUJDH
        ZUGMZJUKLNUOUHUOUEUFMZUGMUHUNUPUGABDEFGOPUEUFUGUAQRUJCDEFSTUIUEULDHZMZJ
        UMLNURUHURUEUFUGMZMUHUQUSUEBCDEFGOUBUEUFUGUCQRAULDEFSTUD $.

      ndmov.6 $e |- dom G = ( S X. S ) $.
      $( Any operation is distributive outside its domain, if the domain
         doesn't contain the empty set.  (Contributed by NM, 24-Aug-1995.) $)
      ndmovdistr $p |- ( -. ( A e. S /\ B e. S /\ C e. S ) ->
          ( A G ( B F C ) ) = ( ( A G B ) F ( A G C ) ) ) $=
        ( wcel wn co c0 wa wceq ndmovrcl sylibr con3i ndmov syl anim12i anandi3
        w3a anim2i 3anass eqtr4d ) ADJZBDJZCDJZUCZKZABCELZFLZMABFLZACFLZELZUKUG
        ULDJZNZKUMMOURUJURUGUHUINZNUJUQUSUGBCDEGHPUDUGUHUIUEQRAULDFISTUKUNDJZUO
        DJZNZKUPMOVBUJVBUGUHNZUGUINZNUJUTVCVAVDABDFIHPACDFIHPUAUGUHUIUBQRUNUODE
        GSTUF $.
    $}

    ndmovord.4 $e |- R C_ ( S X. S ) $.
    ndmovord.5 $e |- -. (/) e. S $.
    ndmovord.6 $e |- ( ( A e. S /\ B e. S /\ C e. S ) ->
                   ( A R B <-> ( C F A ) R ( C F B ) ) ) $.
    $( Elimination of redundant antecedents in an ordering law.  (Contributed
       by NM, 7-Mar-1996.) $)
    ndmovord $p |- ( C e. S -> ( A R B <-> ( C F A ) R ( C F B ) ) ) $=
      ( wcel wa wbr co wb wi 3expia brel ndmovrcl simprd wn anim12i syl pm2.61i
      pm5.21ni a1d ) AEKZBEKZLZCEKZABDMZCAFNZCBFNZDMZOZPUGUHUJUOJQUIUAUOUJUKUIU
      NABEEDHRUNULEKZUMEKZLUIULUMEEDHRUPUGUQUHUPUJUGCAEFGISTUQUJUHCBEFGISTUBUCU
      EUFUD $.
  $}

  ${
    ndmovordi.2 $e |- dom F = ( S X. S ) $.
    ndmovordi.4 $e |- R C_ ( S X. S ) $.
    ndmovordi.5 $e |- -. (/) e. S $.
    ndmovordi.6 $e |- ( C e. S -> ( A R B <-> ( C F A ) R ( C F B ) ) ) $.
    $( Elimination of redundant antecedent in an ordering law.  (Contributed by
       NM, 25-Jun-1998.) $)
    ndmovordi $p |- ( ( C F A ) R ( C F B ) -> A R B ) $=
      ( wcel co wbr brel simpld ndmovrcl syl biimprd mpcom ) CEKZCAFLZCBFLZDMZA
      BDMZUCUAEKZTUCUEUBEKUAUBEEDHNOUETAEKCAEFGIPOQTUDUCJRS $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d x y D $.  $d x y E $.  $d x y ph $.
    $d x y F $.
    caovclg.1 $e |- ( ( ph /\ ( x e. C /\ y e. D ) ) -> ( x F y ) e. E ) $.
    $( Convert an operation closure law to class notation.  (Contributed by
       Mario Carneiro, 26-May-2014.) $)
    caovclg $p |- ( ( ph /\ ( A e. C /\ B e. D ) ) -> ( A F B ) e. E ) $=
      ( cv co wcel wral wa ralrimivva wceq oveq1 eleq1d oveq2 rspc2v mpan9 ) AB
      KZCKZILZHMZCGNBFNDFMEGMODEILZHMZAUFBCFGJPUFUHDUDILZHMBCDEFGUCDQUEUIHUCDUD
      IRSUDEQUIUGHUDEDITSUAUB $.

    caovcld.2 $e |- ( ph -> A e. C ) $.
    caovcld.3 $e |- ( ph -> B e. D ) $.
    $( Convert an operation closure law to class notation.  (Contributed by
       Mario Carneiro, 30-Dec-2014.) $)
    caovcld $p |- ( ph -> ( A F B ) e. E ) $=
      ( wcel co id caovclg syl12anc ) AADFMEGMDEINHMAOKLABCDEFGHIJPQ $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y F $.  $d x y S $.
    caovcl.1 $e |- ( ( x e. S /\ y e. S ) -> ( x F y ) e. S ) $.
    $( Convert an operation closure law to class notation.  (Contributed by NM,
       4-Aug-1995.)  (Revised by Mario Carneiro, 26-May-2014.) $)
    caovcl $p |- ( ( A e. S /\ B e. S ) -> ( A F B ) e. S ) $=
      ( wtru wcel wa co tru cv adantl caovclg mpan ) HCEIDEIJCDFKEILHABCDEEEFAM
      ZEIBMZEIJQRFKEIHGNOP $.
  $}

  ${
    $( General laws for commutative, associative, distributive operations. $)
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.  $d x y z ph $.
    $d x y z F $.  $d x y z G $.  $d x y z H $.  $d x y z K $.  $d x y z R $.
    $d x y z S $.  $d x y z T $.
    ${
      caovcomg.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                          ( x F y ) = ( y F x ) ) $.
      $( Convert an operation commutative law to class notation.  (Contributed
         by Mario Carneiro, 1-Jun-2013.) $)
      caovcomg $p |- ( ( ph /\ ( A e. S /\ B e. S ) ) ->
                        ( A F B ) = ( B F A ) ) $=
        ( cv co wceq wral wcel wa ralrimivva oveq1 oveq2 eqeq12d rspc2v mpan9 )
        ABIZCIZGJZUBUAGJZKZCFLBFLDFMEFMNDEGJZEDGJZKZAUEBCFFHOUEUHDUBGJZUBDGJZKB
        CDEFFUADKUCUIUDUJUADUBGPUADUBGQRUBEKUIUFUJUGUBEDGQUBEDGPRST $.

      caovcomd.2 $e |- ( ph -> A e. S ) $.
      caovcomd.3 $e |- ( ph -> B e. S ) $.
      $( Convert an operation commutative law to class notation.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovcomd $p |- ( ph -> ( A F B ) = ( B F A ) ) $=
        ( wcel co wceq id caovcomg syl12anc ) AADFKEFKDEGLEDGLMANIJABCDEFGHOP
        $.
    $}

    ${
      caovcom.1 $e |- A e. _V $.
      caovcom.2 $e |- B e. _V $.
      caovcom.3 $e |- ( x F y ) = ( y F x ) $.
      $( Convert an operation commutative law to class notation.  (Contributed
         by NM, 26-Aug-1995.)  (Revised by Mario Carneiro, 1-Jun-2013.) $)
      caovcom $p |- ( A F B ) = ( B F A ) $=
        ( cvv wcel wa co wceq pm3.2i cv a1i caovcomg mp2an ) CIJZSDIJZKCDELDCEL
        MFSTFGNSABCDIEAOZBOZELUBUAELMSUAIJUBIJKKHPQR $.
    $}

    ${
      caovassg.1 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
        ( ( x F y ) F z ) = ( x F ( y F z ) ) ) $.
      $( Convert an operation associative law to class notation.  (Contributed
         by Mario Carneiro, 1-Jun-2013.)  (Revised by Mario Carneiro,
         26-May-2014.) $)
      caovassg $p |- ( ( ph /\ ( A e. S /\ B e. S /\ C e. S ) ) ->
          ( ( A F B ) F C ) = ( A F ( B F C ) ) ) $=
        ( cv co wceq wral wcel oveq1 oveq1d eqeq12d oveq2 oveq2d rspc3v mpan9
        w3a ralrimivvva ) ABKZCKZILZDKZILZUEUFUHILZILZMZDHNCHNBHNEHOFHOGHOUCEFI
        LZGILZEFGILZILZMZAULBCDHHHJUDULUQEUFILZUHILZEUJILZMUMUHILZEFUHILZILZMBC
        DEFGHHHUEEMZUIUSUKUTVDUGURUHIUEEUFIPQUEEUJIPRUFFMZUSVAUTVCVEURUMUHIUFFE
        ISQVEUJVBEIUFFUHIPTRUHGMZVAUNVCUPUHGUMISVFVBUOEIUHGFISTRUAUB $.

      caovassd.2 $e |- ( ph -> A e. S ) $.
      caovassd.3 $e |- ( ph -> B e. S ) $.
      caovassd.4 $e |- ( ph -> C e. S ) $.
      $( Convert an operation associative law to class notation.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovassd $p |- ( ph -> ( ( A F B ) F C ) = ( A F ( B F C ) ) ) $=
        ( wcel co wceq id caovassg syl13anc ) AAEHNFHNGHNEFIOGIOEFGIOIOPAQKLMAB
        CDEFGHIJRS $.
    $}

    ${
      caovass.1 $e |- A e. _V $.
      caovass.2 $e |- B e. _V $.
      caovass.3 $e |- C e. _V $.
      caovass.4 $e |- ( ( x F y ) F z ) = ( x F ( y F z ) ) $.
      $( Convert an operation associative law to class notation.  (Contributed
         by NM, 26-Aug-1995.)  (Revised by Mario Carneiro, 26-May-2014.) $)
      caovass $p |- ( ( A F B ) F C ) = ( A F ( B F C ) ) $=
        ( cvv wcel co wceq wtru w3a tru cv wa a1i caovassg mpan mp3an ) DLMZELM
        ZFLMZDEGNFGNDEFGNGNOZHIJPUEUFUGQUHRPABCDEFLGASZBSZGNCSZGNUIUJUKGNGNOPUI
        LMUJLMUKLMQTKUAUBUCUD $.
    $}

    ${
      caovcang.1 $e |- ( ( ph /\ ( x e. T /\ y e. S /\ z e. S ) ) ->
                         ( ( x F y ) = ( x F z ) <-> y = z ) ) $.
      $( Convert an operation cancellation law to class notation.  (Contributed
         by NM, 20-Aug-1995.)  (Revised by Mario Carneiro, 30-Dec-2014.) $)
      caovcang $p |- ( ( ph /\ ( A e. T /\ B e. S /\ C e. S ) ) ->
                       ( ( A F B ) = ( A F C ) <-> B = C ) ) $=
        ( cv co wceq wb wral wcel oveq1 oveq2 bibi12d ralrimivvva bibi1d eqeq1d
        w3a eqeq12d eqeq1 eqeq2d eqeq2 rspc3v mpan9 ) ABLZCLZJMZUKDLZJMZNZULUNN
        ZOZDHPCHPBIPEIQFHQGHQUDEFJMZEGJMZNZFGNZOZAURBCDIHHKUAURVCEULJMZEUNJMZNZ
        UQOUSVENZFUNNZOBCDEFGIHHUKENZUPVFUQVIUMVDUOVEUKEULJRUKEUNJRUEUBULFNZVFV
        GUQVHVJVDUSVEULFEJSUCULFUNUFTUNGNZVGVAVHVBVKVEUTUSUNGEJSUGUNGFUHTUIUJ
        $.

      caovcand.2 $e |- ( ph -> A e. T ) $.
      caovcand.3 $e |- ( ph -> B e. S ) $.
      caovcand.4 $e |- ( ph -> C e. S ) $.
      $( Convert an operation cancellation law to class notation.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovcand $p |- ( ph -> ( ( A F B ) = ( A F C ) <-> B = C ) ) $=
        ( wcel co wceq wb id caovcang syl13anc ) AAEIOFHOGHOEFJPEGJPQFGQRASLMNA
        BCDEFGHIJKTUA $.

      caovcanrd.5 $e |- ( ph -> A e. S ) $.
      caovcanrd.6 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                          ( x F y ) = ( y F x ) ) $.
      $( Commute the arguments of an operation cancellation law.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovcanrd $p |- ( ph -> ( ( B F A ) = ( C F A ) <-> B = C ) ) $=
        ( co wceq caovcomd eqeq12d caovcand bitr3d ) AEFJQZEGJQZRFEJQZGEJQZRFGR
        AUCUEUDUFABCEFHJPOMSABCEGHJPONSTABCDEFGHIJKLMNUAUB $.
    $}

    ${
      caovcan.1 $e |- C e. _V $.
      caovcan.2 $e |- ( ( x e. S /\ y e. S ) ->
                   ( ( x F y ) = ( x F z ) -> y = z ) ) $.
      $( Convert an operation cancellation law to class notation.  (Contributed
         by NM, 20-Aug-1995.) $)
      caovcan $p |- ( ( A e. S /\ B e. S ) ->
                   ( ( A F B ) = ( A F C ) -> B = C ) ) $=
        ( cv co wceq wi oveq1 eqeq12d imbi1d oveq2 imbi12d wcel eqeq1d eqeq1 wa
        eqeq2d eqeq2 imbi2d vtocl vtocl2ga ) AKZBKZHLZUIFHLZMZUJFMZNZDUJHLZDFHL
        ZMZUNNDEHLZUQMZEFMZNABDEGGUIDMZUMURUNVBUKUPULUQUIDUJHOUIDFHOPQUJEMZURUT
        UNVAVCUPUSUQUJEDHRUAUJEFUBSUIGTUJGTUCZUKUICKZHLZMZUJVEMZNZNVDUONCFIVEFM
        ZVIUOVDVJVGUMVHUNVJVFULUKVEFUIHRUDVEFUJUESUFJUGUH $.
    $}

    ${
      caovordig.1 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
                         ( x R y -> ( z F x ) R ( z F y ) ) ) $.
      $( Convert an operation ordering law to class notation.  (Contributed by
         Mario Carneiro, 31-Dec-2014.) $)
      caovordig $p |- ( ( ph /\ ( A e. S /\ B e. S /\ C e. S ) ) ->
                      ( A R B -> ( C F A ) R ( C F B ) ) ) $=
        ( cv wbr co wi wral wcel wceq oveq2 imbi12d w3a ralrimivvva breq1 breq2
        breq1d breq2d oveq1 breq12d imbi2d rspc3v mpan9 ) ABLZCLZHMZDLZULJNZUOU
        MJNZHMZOZDIPCIPBIPEIQFIQGIQUAEFHMZGEJNZGFJNZHMZOZAUSBCDIIIKUBUSVDEUMHMZ
        UOEJNZUQHMZOUTVFUOFJNZHMZOBCDEFGIIIULERZUNVEURVGULEUMHUCVJUPVFUQHULEUOJ
        SUETUMFRZVEUTVGVIUMFEHUDVKUQVHVFHUMFUOJSUFTUOGRZVIVCUTVLVFVAVHVBHUOGEJU
        GUOGFJUGUHUIUJUK $.

      caovordid.2 $e |- ( ph -> A e. S ) $.
      caovordid.3 $e |- ( ph -> B e. S ) $.
      caovordid.4 $e |- ( ph -> C e. S ) $.
      $( Convert an operation ordering law to class notation.  (Contributed by
         Mario Carneiro, 31-Dec-2014.) $)
      caovordid $p |- ( ph -> ( A R B -> ( C F A ) R ( C F B ) ) ) $=
        ( wcel wbr co wi id caovordig syl13anc ) AAEIOFIOGIOEFHPGEJQGFJQHPRASLM
        NABCDEFGHIJKTUA $.
    $}

    ${
      caovordg.1 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
                         ( x R y <-> ( z F x ) R ( z F y ) ) ) $.
      $( Convert an operation ordering law to class notation.  (Contributed by
         NM, 19-Feb-1996.)  (Revised by Mario Carneiro, 30-Dec-2014.) $)
      caovordg $p |- ( ( ph /\ ( A e. S /\ B e. S /\ C e. S ) ) ->
                      ( A R B <-> ( C F A ) R ( C F B ) ) ) $=
        ( cv wbr co wb wral wcel wceq oveq2 bibi12d w3a ralrimivvva breq1 breq2
        breq1d breq2d oveq1 breq12d bibi2d rspc3v mpan9 ) ABLZCLZHMZDLZULJNZUOU
        MJNZHMZOZDIPCIPBIPEIQFIQGIQUAEFHMZGEJNZGFJNZHMZOZAUSBCDIIIKUBUSVDEUMHMZ
        UOEJNZUQHMZOUTVFUOFJNZHMZOBCDEFGIIIULERZUNVEURVGULEUMHUCVJUPVFUQHULEUOJ
        SUETUMFRZVEUTVGVIUMFEHUDVKUQVHVFHUMFUOJSUFTUOGRZVIVCUTVLVFVAVHVBHUOGEJU
        GUOGFJUGUHUIUJUK $.

      caovordd.2 $e |- ( ph -> A e. S ) $.
      caovordd.3 $e |- ( ph -> B e. S ) $.
      caovordd.4 $e |- ( ph -> C e. S ) $.
      $( Convert an operation ordering law to class notation.  (Contributed by
         Mario Carneiro, 30-Dec-2014.) $)
      caovordd $p |- ( ph -> ( A R B <-> ( C F A ) R ( C F B ) ) ) $=
        ( wcel wbr co wb id caovordg syl13anc ) AAEIOFIOGIOEFHPGEJQGFJQHPRASLMN
        ABCDEFGHIJKTUA $.

      caovord2d.com $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                            ( x F y ) = ( y F x ) ) $.
      $( Operation ordering law with commuted arguments.  (Contributed by Mario
         Carneiro, 30-Dec-2014.) $)
      caovord2d $p |- ( ph -> ( A R B <-> ( A F C ) R ( B F C ) ) ) $=
        ( wbr co caovordd caovcomd breq12d bitrd ) AEFHPGEJQZGFJQZHPEGJQZFGJQZH
        PABCDEFGHIJKLMNRAUBUDUCUEHABCGEIJONLSABCGFIJONMSTUA $.

      caovord3d.5 $e |- ( ph -> D e. S ) $.
      $( Ordering law.  (Contributed by Mario Carneiro, 30-Dec-2014.) $)
      caovord3d $p |- ( ph ->
        ( ( A F B ) = ( C F D ) -> ( A R C <-> D R B ) ) ) $=
        ( co wbr wb wceq breq1 caovord2d caovordd bibi12d syl5ibr ) EFKRZGHKRZU
        AEGISZHFISZTAUGGFKRZISZUHUKISZTUGUHUKIUBAUIULUJUMABCDEGFIJKLMONPUCABCDH
        FGIJKLQNOUDUEUF $.
    $}

    ${
      caovord.1 $e |- A e. _V $.
      caovord.2 $e |- B e. _V $.
      caovord.3 $e |- ( z e. S -> ( x R y <-> ( z F x ) R ( z F y ) ) ) $.
      $( Convert an operation ordering law to class notation.  (Contributed by
         NM, 19-Feb-1996.) $)
      caovord $p |- ( C e. S -> ( A R B <-> ( C F A ) R ( C F B ) ) ) $=
        ( wbr cv co wb wceq oveq1 wi oveq2 breq12d bibi2d wcel wa breq1 bibi12d
        breq1d breq2 breq2d sylan9bb imbi2d vtocl2 vtoclga ) DEGMZCNZDIOZUOEIOZ
        GMZPZUNFDIOZFEIOZGMZPCFHUOFQZURVBUNVCUPUTUQVAGUOFDIRUOFEIRUAUBUOHUCZANZ
        BNZGMZUOVEIOZUOVFIOZGMZPZSVDUSSABDEJKVEDQZVFEQZUDVKUSVDVLVKDVFGMZUPVIGM
        ZPVMUSVLVGVNVJVOVEDVFGUEVLVHUPVIGVEDUOITUGUFVMVNUNVOURVFEDGUHVMVIUQUPGV
        FEUOITUIUFUJUKLULUM $.

      $( (We don't bother to eliminate this redundant hypothesis.) $)
      caovord2.3 $e |- C e. _V $.
      caovord2.com $e |- ( x F y ) = ( y F x ) $.
      $( Operation ordering law with commuted arguments.  (Contributed by NM,
         27-Feb-1996.) $)
      caovord2 $p |- ( C e. S -> ( A R B <-> ( A F C ) R ( B F C ) ) ) $=
        ( wcel wbr co caovord caovcom breq12i syl6bb ) FHODEGPFDIQZFEIQZGPDFIQZ
        EFIQZGPABCDEFGHIJKLRUBUDUCUEGABFDIMJNSABFEIMKNSTUA $.

      $( (We don't bother to eliminate redundant hypotheses.) $)
      caovord3.4 $e |- D e. _V $.
      $( Ordering law.  (Contributed by NM, 29-Feb-1996.) $)
      caovord3 $p |- ( ( ( B e. S /\ C e. S ) /\
                ( A F B ) = ( C F D ) ) -> ( A R C <-> D R B ) ) $=
        ( wcel wa co wbr wceq wb caovord2 adantr breq1 sylan9bb ad2antlr bitr4d
        caovord ) EIQZFIQZRZDEJSZFGJSZUAZRDFHTZUNFEJSZHTZGEHTZULUPUMUQHTZUOURUJ
        UPUTUBUKABCDFEHIJKNMLOUCUDUMUNUQHUEUFUKUSURUBUJUOABCGEFHIJPLMUIUGUH $.
    $}

    ${
      caovdig.1 $e |- ( ( ph /\ ( x e. K /\ y e. S /\ z e. S ) ) ->
        ( x G ( y F z ) ) = ( ( x G y ) H ( x G z ) ) ) $.
      $( Convert an operation distributive law to class notation.  (Contributed
         by NM, 25-Aug-1995.)  (Revised by Mario Carneiro, 26-Jul-2014.) $)
      caovdig $p |- ( ( ph /\ ( A e. K /\ B e. S /\ C e. S ) ) ->
        ( A G ( B F C ) ) = ( ( A G B ) H ( A G C ) ) ) $=
        ( cv co wceq wral wcel oveq1 eqeq12d oveq12d oveq2d oveq2 oveq1d rspc3v
        w3a ralrimivvva mpan9 ) ABNZCNZDNZIOZJOZUIUJJOZUIUKJOZKOZPZDHQCHQBLQELR
        FHRGHRUFEFGIOZJOZEFJOZEGJOZKOZPZAUQBCDLHHMUGUQVCEULJOZEUJJOZEUKJOZKOZPE
        FUKIOZJOZUTVFKOZPBCDEFGLHHUIEPZUMVDUPVGUIEULJSVKUNVEUOVFKUIEUJJSUIEUKJS
        UATUJFPZVDVIVGVJVLULVHEJUJFUKISUBVLVEUTVFKUJFEJUCUDTUKGPZVIUSVJVBVMVHUR
        EJUKGFIUCUBVMVFVAUTKUKGEJUCUBTUEUH $.

      caovdid.2 $e |- ( ph -> A e. K ) $.
      caovdid.3 $e |- ( ph -> B e. S ) $.
      caovdid.4 $e |- ( ph -> C e. S ) $.
      $( Convert an operation distributive law to class notation.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovdid $p |- ( ph -> ( A G ( B F C ) ) = ( ( A G B ) H ( A G C ) ) ) $=
        ( wcel co wceq id caovdig syl13anc ) AAELQFHQGHQEFGIRJREFJREGJRKRSATNOP
        ABCDEFGHIJKLMUAUB $.
    $}

    ${
      caovdir2d.1 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
        ( x G ( y F z ) ) = ( ( x G y ) F ( x G z ) ) ) $.
      caovdir2d.2 $e |- ( ph -> A e. S ) $.
      caovdir2d.3 $e |- ( ph -> B e. S ) $.
      caovdir2d.4 $e |- ( ph -> C e. S ) $.
      caovdir2d.cl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                           ( x F y ) e. S ) $.
      caovdir2d.com $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                            ( x G y ) = ( y G x ) ) $.
      $( Convert an operation distributive law to class notation.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovdir2d $p |- ( ph
          -> ( ( A F B ) G C ) = ( ( A G C ) F ( B G C ) ) ) $=
        ( co caovdid caovcld caovcomd oveq12d 3eqtr4d ) AGEFIQZJQGEJQZGFJQZIQUC
        GJQEGJQZFGJQZIQABCDGEFHIJIHKNLMRABCUCGHJPABCEFHHHIOLMSNTAUFUDUGUEIABCEG
        HJPLNTABCFGHJPMNTUAUB $.
    $}

    ${
      caovdirg.1 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. K ) ) ->
        ( ( x F y ) G z ) = ( ( x G z ) H ( y G z ) ) ) $.
      $( Convert an operation reverse distributive law to class notation.
         (Contributed by Mario Carneiro, 19-Oct-2014.) $)
      caovdirg $p |- ( ( ph /\ ( A e. S /\ B e. S /\ C e. K ) ) ->
        ( ( A F B ) G C ) = ( ( A G C ) H ( B G C ) ) ) $=
        ( cv co wceq wral wcel oveq1 oveq2 w3a ralrimivvva oveq1d oveq2d rspc3v
        eqeq12d oveq12d mpan9 ) ABNZCNZIOZDNZJOZUIULJOZUJULJOZKOZPZDLQCHQBHQEHR
        FHRGLRUAEFIOZGJOZEGJOZFGJOZKOZPZAUQBCDHHLMUBUQVCEUJIOZULJOZEULJOZUOKOZP
        URULJOZVFFULJOZKOZPBCDEFGHHLUIEPZUMVEUPVGVKUKVDULJUIEUJISUCVKUNVFUOKUIE
        ULJSUCUFUJFPZVEVHVGVJVLVDURULJUJFEITUCVLUOVIVFKUJFULJSUDUFULGPZVHUSVJVB
        ULGURJTVMVFUTVIVAKULGEJTULGFJTUGUFUEUH $.

      caovdird.2 $e |- ( ph -> A e. S ) $.
      caovdird.3 $e |- ( ph -> B e. S ) $.
      caovdird.4 $e |- ( ph -> C e. K ) $.
      $( Convert an operation distributive law to class notation.  (Contributed
         by Mario Carneiro, 30-Dec-2014.) $)
      caovdird $p |- ( ph -> ( ( A F B ) G C ) = ( ( A G C ) H ( B G C ) ) ) $=
        ( wcel co wceq id caovdirg syl13anc ) AAEHQFHQGLQEFIRGJREGJRFGJRKRSATNO
        PABCDEFGHIJKLMUAUB $.
    $}

    ${
      caovdi.1 $e |- A e. _V $.
      caovdi.2 $e |- B e. _V $.
      caovdi.3 $e |- C e. _V $.
      caovdi.4 $e |- ( x G ( y F z ) ) = ( ( x G y ) F ( x G z ) ) $.
      $( Convert an operation distributive law to class notation.  (Contributed
         by NM, 25-Aug-1995.)  (Revised by Mario Carneiro, 28-Jun-2013.) $)
      caovdi $p |- ( A G ( B F C ) ) = ( ( A G B ) F ( A G C ) ) $=
        ( cvv wcel co wceq wtru w3a tru cv wa a1i caovdig mpan mp3an ) DMNZEMNZ
        FMNZDEFGOHODEHODFHOGOPZIJKQUFUGUHRUISQABCDEFMGHGMATZBTZCTZGOHOUJUKHOUJU
        LHOGOPQUJMNUKMNULMNRUALUBUCUDUE $.
    $}

    ${
      caovd.1 $e |- ( ph -> A e. S ) $.
      caovd.2 $e |- ( ph -> B e. S ) $.
      caovd.3 $e |- ( ph -> C e. S ) $.
      caovd.com $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
        ( x F y ) = ( y F x ) ) $.
      caovd.ass $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
        ( ( x F y ) F z ) = ( x F ( y F z ) ) ) $.
      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
         30-Dec-2014.) $)
      caov32d $p |- ( ph -> ( ( A F B ) F C ) = ( ( A F C ) F B ) ) $=
        ( co caovcomd oveq2d caovassd 3eqtr4d ) AEFGIOZIOEGFIOZIOEFIOGIOEGIOFIO
        ATUAEIABCFGHIMKLPQABCDEFGHINJKLRABCDEGFHINJLKRS $.

      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
         30-Dec-2014.) $)
      caov12d $p |- ( ph -> ( A F ( B F C ) ) = ( B F ( A F C ) ) ) $=
        ( co caovcomd oveq1d caovassd 3eqtr3d ) AEFIOZGIOFEIOZGIOEFGIOIOFEGIOIO
        ATUAGIABCEFHIMJKPQABCDEFGHINJKLRABCDFEGHINKJLRS $.

      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
         30-Dec-2014.) $)
      caov31d $p |- ( ph -> ( ( A F B ) F C ) = ( ( C F B ) F A ) ) $=
        ( co caovcomd oveq1d caov32d 3eqtr4d ) AEGIOZFIOGEIOZFIOEFIOGIOGFIOEIOA
        TUAFIABCEGHIMJLPQABCDEFGHIJKLMNRABCDGFEHILKJMNRS $.

      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
         30-Dec-2014.) $)
      caov13d $p |- ( ph -> ( A F ( B F C ) ) = ( C F ( B F A ) ) ) $=
        ( co caov31d caovassd 3eqtr3d ) AEFIOGIOGFIOEIOEFGIOIOGFEIOIOABCDEFGHIJ
        KLMNPABCDEFGHINJKLQABCDGFEHINLKJQR $.

      ${
        caovd.4 $e |- ( ph -> D e. S ) $.
        caovd.cl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x F y ) e. S ) $.
        $( Rearrange arguments in a commutative, associative operation.
           (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
           30-Dec-2014.) $)
        caov4d $p |- ( ph -> ( ( A F B ) F ( C F D ) ) =
                             ( ( A F C ) F ( B F D ) ) ) $=
          ( co caovcld caovassd caov12d oveq2d 3eqtr4d ) AEFGHJRZJRZJREGFHJRZJR
          ZJREFJRUDJREGJRUFJRAUEUGEJABCDFGHIJLMPNOUAUBABCDEFUDIJOKLABCGHIIIJQMP
          STABCDEGUFIJOKMABCFHIIIJQLPSTUC $.

        $( Rearrange arguments in a commutative, associative operation.
           (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
           30-Dec-2014.) $)
        caov411d $p |- ( ph -> ( ( A F B ) F ( C F D ) ) =
                               ( ( C F B ) F ( A F D ) ) ) $=
          ( co caovcomd oveq1d caov4d 3eqtr3d ) AFEJRZGHJRZJRFGJRZEHJRZJREFJRZU
          DJRGFJRZUFJRABCDFEGHIJLKMNOPQUAAUCUGUDJABCFEIJNLKSTAUEUHUFJABCFGIJNLM
          STUB $.

        $( Rearrange arguments in a commutative, associative operation.
           (Contributed by NM, 26-Aug-1995.)  (Revised by Mario Carneiro,
           30-Dec-2014.) $)
        caov42d $p |- ( ph -> ( ( A F B ) F ( C F D ) ) =
                              ( ( A F C ) F ( D F B ) ) ) $=
          ( co caov4d caovcomd oveq2d eqtrd ) AEFJRGHJRJREGJRZFHJRZJRUCHFJRZJRA
          BCDEFGHIJKLMNOPQSAUDUEUCJABCFHIJNLPTUAUB $.
      $}
    $}

    ${
      caov.1 $e |- A e. _V $.
      caov.2 $e |- B e. _V $.
      caov.3 $e |- C e. _V $.
      caov.com $e |- ( x F y ) = ( y F x ) $.
      caov.ass $e |- ( ( x F y ) F z ) = ( x F ( y F z ) ) $.
      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.) $)
      caov32 $p |- ( ( A F B ) F C ) = ( ( A F C ) F B ) $=
        ( co caovcom oveq2i caovass 3eqtr4i ) DEFGMZGMDFEGMZGMDEGMFGMDFGMEGMRSD
        GABEFGIJKNOABCDEFGHIJLPABCDFEGHJILPQ $.

      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.) $)
      caov12 $p |- ( A F ( B F C ) ) = ( B F ( A F C ) ) $=
        ( co caovcom oveq1i caovass 3eqtr3i ) DEGMZFGMEDGMZFGMDEFGMGMEDFGMGMRSF
        GABDEGHIKNOABCDEFGHIJLPABCEDFGIHJLPQ $.

      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.) $)
      caov31 $p |- ( ( A F B ) F C ) = ( ( C F B ) F A ) $=
        ( co caovass caov12 eqtri caov32 eqtr3i 3eqtr4i ) DFGMEGMZFDEGMZGMZUAFG
        MFEGMZDGMZTDUCGMUBABCDFEGHJILNABCDFEGHJIKLOPABCDEFGHIJKLQFDGMEGMUDUBABC
        FDEGJHIKLQABCFDEGJHILNRS $.

      $( Rearrange arguments in a commutative, associative operation.
         (Contributed by NM, 26-Aug-1995.) $)
      caov13 $p |- ( A F ( B F C ) ) = ( C F ( B F A ) ) $=
        ( co caov31 caovass 3eqtr3i ) DEGMFGMFEGMDGMDEFGMGMFEDGMGMABCDEFGHIJKLN
        ABCDEFGHIJLOABCFEDGJIHLOP $.

      ${
        caov.4 $e |- D e. _V $.
        $( Rearrange arguments in a commutative, associative operation.
           (Contributed by NM, 26-Aug-1995.) $)
        caov4 $p |- ( ( A F B ) F ( C F D ) ) = ( ( A F C ) F ( B F D ) ) $=
          ( co caov12 oveq2i ovex caovass 3eqtr4i ) DEFGHOZHOZHODFEGHOZHOZHODEH
          OUAHODFHOUCHOUBUDDHABCEFGHJKNLMPQABCDEUAHIJFGHRMSABCDFUCHIKEGHRMST $.

        $( Rearrange arguments in a commutative, associative operation.
           (Contributed by NM, 26-Aug-1995.) $)
        caov411 $p |- ( ( A F B ) F ( C F D ) ) = ( ( C F B ) F ( A F D ) ) $=
          ( co caov31 oveq1i ovex caovass 3eqtr3i ) DEHOZFHOZGHOFEHOZDHOZGHOUAF
          GHOHOUCDGHOHOUBUDGHABCDEFHIJKLMPQABCUAFGHDEHRKNMSABCUCDGHFEHRINMST $.

        $( Rearrange arguments in a commutative, associative operation.
           (Contributed by NM, 26-Aug-1995.) $)
        caov42 $p |- ( ( A F B ) F ( C F D ) ) =
                        ( ( A F C ) F ( D F B ) ) $=
          ( co caov4 caovcom oveq2i eqtri ) DEHOFGHOHODFHOZEGHOZHOTGEHOZHOABCDE
          FGHIJKLMNPUAUBTHABEGHJNLQRS $.
      $}
    $}

    ${
      caovdir.1 $e |- A e. _V $.
      caovdir.2 $e |- B e. _V $.
      caovdir.3 $e |- C e. _V $.
      caovdir.com $e |- ( x G y ) = ( y G x ) $.
      caovdir.distr $e |- ( x G ( y F z ) ) = ( ( x G y ) F ( x G z ) ) $.
      $( Reverse distributive law.  (Contributed by NM, 26-Aug-1995.) $)
      caovdir $p |- ( ( A F B ) G C ) = ( ( A G C ) F ( B G C ) ) $=
        ( co caovdi ovex caovcom oveq12i 3eqtr3i ) FDEGNZHNFDHNZFEHNZGNTFHNDFHN
        ZEFHNZGNABCFDEGHKIJMOABFTHKDEGPLQUAUCUBUDGABFDHKILQABFEHKJLQRS $.

      $d x y z H $.  $d x y z R $.
      caovdl.4 $e |- D e. _V $.
      caovdl.5 $e |- H e. _V $.
      caovdl.ass $e |- ( ( x G y ) G z ) = ( x G ( y G z ) ) $.
      $( Lemma used by real number construction.  (Contributed by NM,
         26-Aug-1995.) $)
      caovdilem $p |- ( ( ( A G C ) F ( B G D ) ) G H ) =
                       ( ( A G ( C G H ) ) F ( B G ( D G H ) ) ) $=
        ( co ovex caovdir caovass oveq12i eqtri ) DFISZEGISZHSJISUEJISZUFJISZHS
        DFJISISZEGJISISZHSABCUEUFJHIDFITEGITQNOUAUGUIUHUJHABCDFJIKMQRUBABCEGJIL
        PQRUBUCUD $.

      caovdl2.6 $e |- R e. _V $.
      caovdl2.com $e |- ( x F y ) = ( y F x ) $.
      caovdl2.ass $e |- ( ( x F y ) F z ) = ( x F ( y F z ) ) $.
      $( Lemma used in real number construction.  (Contributed by NM,
         26-Aug-1995.) $)
      caovlem2 $p |- ( ( ( ( A G C ) F ( B G D ) ) G H ) F
                        ( ( ( A G D ) F ( B G C ) ) G R ) ) =
   ( ( A G ( ( C G H ) F ( D G R ) ) ) F ( B G ( ( C G R ) F ( D G H ) ) ) ) $=
        ( co ovex caov42 caovdilem oveq12i caovdi 3eqtr4i ) DFKJUCZJUCZEGKJUCZJ
        UCZIUCZDGHJUCZJUCZEFHJUCZJUCZIUCZIUCUKUPIUCZURUMIUCZIUCDFJUCEGJUCIUCKJU
        CZDGJUCEFJUCIUCHJUCZIUCDUJUOIUCJUCZEUQULIUCJUCZIUCABCUKUMUPURIDUJJUDEUL
        JUDDUOJUDUAUBEUQJUDUEVBUNVCUSIABCDEFGIJKLMNOPQRSUFABCDEGFIJHLMQOPNTSUFU
        GVDUTVEVAIABCDUJUOIJLFKJUDGHJUDPUHABCEUQULIJMFHJUDGKJUDPUHUGUI $.
    $}

    ${
      $d u w A $.  $d u v w x y B $.  $d u v w x y z F $.  $d w x S $.
      $( Identity element. $)
      caovmo.2 $e |- B e. S $.
      caovmo.dom $e |- dom F = ( S X. S ) $.
      caovmo.3 $e |- -. (/) e. S $.
      caovmo.com $e |- ( x F y ) = ( y F x ) $.
      caovmo.ass $e |- ( ( x F y ) F z ) = ( x F ( y F z ) ) $.
      caovmo.id $e |- ( x e. S -> ( x F B ) = x ) $.
      $( Uniqueness of inverse element in commutative, associative operation
         with identity.  Remark in proof of Proposition 9-2.4 of [Gleason]
         p. 119.  (Contributed by NM, 4-Mar-1996.) $)
      caovmo $p |- E* w ( A F w ) = B $=
        ( vv wcel co wceq wa syl vu cv wmo wi oveq1 eqeq1d mobidv wal oveq2 mo4
        simpr oveq2d simpl oveq1d vex caovass caov12 eqtri elexi caovcom eqtr3d
        3eqtr3g syl6eqel simprd id eqeq12d vtoclga 3eqtr3d ax-gen mpgbir vtoclg
        ndmovrcl moanimv mpbir eleq1 mpbiri simpld ancri moimi ax-mp ) EGPZEDUB
        ZHQZFRZSZDUCZWDDUCZWFWAWGUDUAUBZWBHQZFRZDUCZWGUAEGWHERZWJWDDWLWIWCFWHEW
        BHUEUFUGWKWJWHOUBZHQZFRZSZWBWMRZUDZOUHDWJWODOWQWIWNFWBWMWHHUIUFUJWROWPW
        BFHQZWMFHQZWBWMWPWBWNHQZWSWTWPWNFWBHWJWOUKZULWPWIWMHQZFWMHQXAWTWPWIFWMH
        WJWOUMZUNXCWHWBWMHQHQXAABCWHWBWMHUAUOZDUOZOUOZMUPABCWHWBWMHXEXFXGLMUQUR
        ABFWMHFGIUSXGLUTVBVAWPWBGPZWSWBRZWPWHGPZXHWPWIGPXJXHSWPWIFGXDIVCWHWBGHJ
        KVLTVDAUBZFHQZXKRZXIAWBGXKWBRZXLWSXKWBXKWBFHUEXNVEVFNVGTWPWMGPZWTWMRZWP
        XJXOWPWNGPXJXOSWPWNFGXBIVCWHWMGHJKVLTVDXMXPAWMGXKWMRZXLWTXKWMXKWMFHUEXQ
        VEVFNVGTVHVIVJVKWAWDDVMVNWDWEDWDWAWDWAXHWDWCGPZWAXHSWDXRFGPIWCFGVOVPEWB
        GHJKVLTVQVRVSVT $.
    $}
  $}

  ${
    $d n u v w x y z B $.  $d n u v w x y z O $.  $d n u v w x y z ph $.
    $d u v w y z N $.  $d n u v w x y z .+ $.  $d u v w y z X $.
    $d u v w y ps $.
    grprinvlem.c $e |- ( ( ph /\ x e. B /\ y e. B ) -> ( x .+ y ) e. B ) $.
    grprinvlem.o $e |- ( ph -> O e. B ) $.
    grprinvlem.i $e |- ( ( ph /\ x e. B ) -> ( O .+ x ) = x ) $.
    grprinvlem.a $e |- ( ( ph /\ ( x e. B /\ y e. B /\ z e. B ) )
          -> ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) ) $.
    grprinvlem.n $e |- ( ( ph /\ x e. B ) -> E. y e. B ( y .+ x ) = O ) $.
    ${
      grprinvlem.x $e |- ( ( ph /\ ps ) -> X e. B ) $.
      grprinvlem.e $e |- ( ( ph /\ ps ) -> ( X .+ X ) = X ) $.
      $( Lemma for ~ grprinvd .  (Contributed by NM, 9-Aug-2013.) $)
      grprinvlem $p |- ( ( ph /\ ps ) -> X = O ) $=
        ( cv co wceq wcel vu vv vw wa wrex wral ralrimiva oveq2 rexbidv cbvralv
        eqeq1d sylib syl2an2r oveq2d adantr simprr oveq1d w3a caovassg ad4ant14
        rspccva simprl caovassd id eqeq12d rspcdva 3eqtr3d rexlimddv ) ABUDZDQZ
        IGRZHSZIHSDFAVJEQZGRZHSZDFUEZEFUFZBIFTZVLDFUEZAVJCQZGRZHSZDFUEZCFUFVQAW
        CCFNUGWCVPCEFVTVMSZWBVODFWDWAVNHVTVMVJGUHUKUIUJULOVPVSEIFVMISZVOVLDFWEV
        NVKHVMIVJGUHUKUIVAUMVIVJFTZVLUDZUDZVJIIGRZGRZVKIHVIWJVKSWGVIWIIVJGPUNUO
        WHVKIGRHIGRZWJIWHVKHIGVIWFVLUPZUQWHUAUBUCVJIIFGAUAQZFTUBQZFTUCQZFTURWMW
        NGRWOGRWMWNWOGRGRSBWGACDEWMWNWOFGMUSUTVIWFVLVBVIVRWGOUOZWPVCVIWKISZWGVI
        HVJGRZVJSZWQDFIVJISZWRWKVJIVJIHGUHWTVDVEAWSDFUFZBAHVTGRZVTSZCFUFXAAXCCF
        LUGXCWSCDFVTVJSZXBWRVTVJVTVJHGUHXDVDVEUJULUOOVFUOVGWLVGVH $.
    $}

    ${
      grprinvd.x $e |- ( ( ph /\ ps ) -> X e. B ) $.
      grprinvd.n $e |- ( ( ph /\ ps ) -> N e. B ) $.
      grprinvd.e $e |- ( ( ph /\ ps ) -> ( N .+ X ) = O ) $.
      $( Deduce right inverse from left inverse and left identity in an
         associative structure (such as a group).  (Contributed by NM,
         10-Aug-2013.)  (Proof shortened by Mario Carneiro, 6-Jan-2015.) $)
      grprinvd $p |- ( ( ph /\ ps ) -> ( X .+ N ) = O ) $=
        ( co wcel vu vv vw wa cv caovclg adantlr caovcld wceq caovassg caovassd
        3expb w3a oveq1d oveq2 id eqeq12d wral ralrimiva cbvralv adantr rspcdva
        sylib 3eqtr3d oveq2d eqtrd grprinvlem ) ABCDEFGIJHGSZKLMNOABUDZUAUBJHFF
        FGAUAUEZFTZUBUEZFTZUDVJVLGSZFTBACDVJVLFFFGACUEZFTDUEZFTVOVPGSFTKULUFUGP
        QUHZVIVHVHGSJHVHGSZGSVHVIUAUBUCJHVHFGAVKVMUCUEZFTUMVNVSGSVJVLVSGSGSUIBA
        CDEVJVLVSFGNUJUGZPQVQUKVIVRHJGVIHJGSZHGSIHGSZVRHVIWAIHGRUNVIUAUBUCHJHFG
        VTQPQUKVIIVPGSZVPUIZWBHUIDFHVPHUIZWCWBVPHVPHIGUOWEUPUQAWDDFURZBAIVOGSZV
        OUIZCFURWFAWHCFMUSWHWDCDFVOVPUIZWGWCVOVPVOVPIGUOWIUPUQUTVCVAQVBVDVEVFVG
        $.
    $}

    $( Deduce right identity from left inverse and left identity in an
       associative structure (such as a group).  (Contributed by NM,
       10-Aug-2013.)  (Proof shortened by Mario Carneiro, 6-Jan-2015.) $)
    grpridd $p |- ( ( ph /\ x e. B ) -> ( x .+ O ) = x ) $=
      ( vn vu vv cv wcel wa co wceq vw wrex oveq1 eqeq1d cbvrexv sylib caovassg
      w3a adantlr simprl simprrl caovassd simprrr oveq1d oveq2d 3eqtr3d anassrs
      grprinvd rexlimddv eqtr3d ) ABPZEQZRZGVAFSZVAGFSZVAVCMPZVAFSZGTZVDVETZMEV
      CCPZVAFSZGTZCEUBVHMEUBLVLVHCMEVJVFTVKVGGVJVFVAFUCUDUEUFAVBVFEQZVHRZVIAVBV
      NRZRZVAVFFSZVAFSVAVGFSVDVEVPNOUAVAVFVAEFANPZEQOPZEQUAPZEQUHVRVSFSVTFSVRVS
      VTFSFSTVOABCDVRVSVTEFKUGUIAVBVNUJZAVBVMVHUKZWAULVPVQGVAFAVOBCDEFVFGVAHIJK
      LWAWBAVBVMVHUMZURUNVPVGGVAFWCUOUPUQUSJUT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  "Maps to" notation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.  $d X x y z $.  $d Y x y z $.  $d C z $.
    mpt2ndm0.f $e |- F = ( x e. X , y e. Y |-> C ) $.
    $( The value of an operation given by a maps-to rule is the empty set if
       the arguments are not contained in the base sets of the rule.
       (Contributed by Alexander van der Vekens, 12-Oct-2017.) $)
    mpt2ndm0 $p |- ( -. ( V e. X /\ W e. Y ) -> ( V F W ) = (/) ) $=
      ( vz cdm cxp wss wcel wa wn co c0 wceq cv cmpt2 df-mpt2 dmoprabss eqsstri
      coprab eqtri dmeqi nssdmovg mpan ) DKZGHLZMEGNFHNOPEFDQRSUJATGNBTHNOJTCSZ
      OABJUEZKUKDUMDABGHCUAUMIABJGHCUBUFUGULABJGHUCUDEFGHDUHUI $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C z $.
    elmpt2cl.f $e |- F = ( x e. A , y e. B |-> C ) $.
    $( If a two-parameter class is not empty, constrain the implicit pair.
       (Contributed by Stefan O'Rear, 7-Mar-2015.) $)
    elmpt2cl $p |- ( X e. ( S F T ) -> ( S e. A /\ T e. B ) ) $=
      ( vz co wcel cop cxp wa cdm cv wceq coprab cmpt2 df-mpt2 dmoprabss elfvdm
      eqtri dmeqi eqsstri cfv df-ov eleq2s sseldi opelxp sylib ) IFGHLZMZFGNZCD
      OZMFCMGDMPUOHQZUQUPURARCMBRDMPKRESZPABKTZQUQHUTHABCDEUAUTJABKCDEUBUEUFUSA
      BKCDUCUGUPURMIUPHUHUNIUPHUDFGHUIUJUKFGCDULUM $.

    $( If a two-parameter class is not empty, the first argument is in its
       nominal domain.  (Contributed by FL, 15-Oct-2012.)  (Revised by Stefan
       O'Rear, 7-Mar-2015.) $)
    elmpt2cl1 $p |- ( X e. ( S F T ) -> S e. A ) $=
      ( co wcel elmpt2cl simpld ) IFGHKLFCLGDLABCDEFGHIJMN $.

    $( If a two-parameter class is not empty, the second argument is in its
       nominal domain.  (Contributed by FL, 15-Oct-2012.)  (Revised by Stefan
       O'Rear, 7-Mar-2015.) $)
    elmpt2cl2 $p |- ( X e. ( S F T ) -> T e. B ) $=
      ( co wcel elmpt2cl simprd ) IFGHKLFCLGDLABCDEFGHIJMN $.
  $}

  ${
    $d A a b $.  $d B a b $.  $d E a b $.  $d F a b $.  $d X a b $.
    $d Y a b $.
    elovmpt2.d $e |- D = ( a e. A , b e. B |-> C ) $.
    elovmpt2.c $e |- C e. _V $.
    elovmpt2.e $e |- ( ( a = X /\ b = Y ) -> C = E ) $.
    $( Utility lemma for two-parameter classes.

       _EDITORIAL_: can simplify ~ isghm , ~ islmhm .  (Contributed by Stefan
       O'Rear, 21-Jan-2015.) $)
    elovmpt2 $p |- ( F e. ( X D Y ) <-> ( X e. A /\ Y e. B /\ F e. E ) ) $=
      ( co wcel wa cvv wceq wal cv w3a elmpt2cl gen2 eleq1d spc2gv mpi ovmpt2ga
      mpd3an3 eleq2d biadan2 df-3an bitr4i ) FGHDNZOZGAOZHBOZPZFEOZPUOUPURUAUNU
      QURIJABCGHDFKUBUQUMEFUOUPEQOZUMERUQCQOZJSISUSUTIJLUCUTUSIJGHABITGRJTHRPCE
      QMUDUEUFIJGHABCEDQMKUGUHUIUJUOUPURUKUL $.
  $}

  ${
    $d M x y z $.  $d X x y z $.  $d Y x y z $.  $d Z z $.
    elovmpt2rab.o $e |- O = ( x e. _V , y e. _V |-> { z e. M | ph } ) $.
    elovmpt2rab.v $e |- ( ( X e. _V /\ Y e. _V ) -> M e. _V ) $.
    $( Implications for the value of an operation, defined by the maps-to
       notation with a class abstraction as a result, having an element.
       (Contributed by Alexander van der Vekens, 15-Jul-2018.) $)
    elovmpt2rab $p |- ( Z e. ( X O Y ) -> ( X e. _V /\ Y e. _V /\ Z e. M ) ) $=
      ( cvv wcel wa crab wsbc wceq cv nfcv nfel1 w3a elmpt2cl cmpt2 a1i sbceq1a
      co wb sylan9bbr adantl rabbidv eqidd simpl simpr rabexg syl nfsbc1v nfrab
      nfan nfsbc ovmpt2dxf eleq2d df-3an simplbi2com elrabi syl11 sylbid mpcom
      ) GLMZHLMZNZIGHFUFZMZVHVIIEMZUAZBCLLADEOZGHFIJUBVJVLIACHPZBGPZDEOZMZVNVJV
      KVRIVJBCGHLLVOVRFLLFBCLLVOUCQVJJUDVJBRGQZCRHQZNZNAVQDEWBAVQUGVJWAAVPVTVQA
      CHUEVPBGUEUHUIUJVJVTNLUKVHVIULVHVIUMVJELMVRLMKVQDELUNUOVHVIBBGLBGSTBHLBHS
      ZTURVHVICCGLCGSZTCHLCHSTURWDWCVQBDEVPBGUPBESUQVQCDEVPCBGWDACHUPUSCESUQUTV
      AVMVJVNVSVNVJVMVHVIVMVBVCVQDIEVDVEVFVG $.
  $}

  ${
    $d M x y z $.  $d X x y z $.  $d Y x y z $.  $d Z z $.  $d m z $.
    elovmpt2rab1.o $e |- O = ( x e. _V , y e. _V
                              |-> { z e. [_ x / m ]_ M | ph } ) $.
    elovmpt2rab1.v $e |- ( ( X e. _V /\ Y e. _V ) -> [_ X / m ]_ M e. _V ) $.
    $( Implications for the value of an operation, defined by the maps-to
       notation with a class abstraction as a result, having an element.  Here,
       the base set of the class abstraction depends on the first operand.
       (Contributed by Alexander van der Vekens, 15-Jul-2018.) $)
    elovmpt2rab1 $p |- ( Z e. ( X O Y )
                         -> ( X e. _V /\ Y e. _V /\ Z e. [_ X / m ]_ M ) ) $=
      ( cvv wcel wa csb cv wceq nfcv nfel1 co w3a crab elmpt2cl wsbc a1i csbeq1
      cmpt2 ad2antrl wb sylan9bbr adantl rabeqbidv eqidd simpl simpr rabexg syl
      sbceq1a nfan nfcsb nfrab nfsbc ovmpt2dxf eleq2d df-3an simplbi2com elrabi
      nfsbc1v syl11 sylbid mpcom ) HMNZIMNZOZJHIGUAZNZVMVNJEHFPZNZUBZBCMMADEBQZ
      FPZUCZHIGJKUDVOVQJACIUEZBHUEZDVRUCZNZVTVOVPWFJVOBCHIMMWCWFGMMGBCMMWCUHRVO
      KUFVOWAHRZCQIRZOZOAWEDWBVRWHWBVRRVOWIEWAHFUGUIWJAWEUJVOWIAWDWHWEACIUSWDBH
      USUKULUMVOWHOMUNVMVNUOVMVNUPVOVRMNWFMNLWEDVRMUQURVMVNBBHMBHSZTBIMBISZTUTV
      MVNCCHMCHSZTCIMCISTUTWMWLWEBDVRWDBHVIBEHFWKBFSVAVBWECDVRWDCBHWMACIVIVCCEH
      FWMCFSVAVBVDVEVSVOVTWGVTVOVSVMVNVSVFVGWEDJVRVHVJVKVL $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C s t $.  $d D s t $.
    2mpt20.o $e |- O = ( x e. A , y e. B |-> E ) $.
    2mpt20.u $e |- ( ( X e. A /\ Y e. B )
                     -> ( X O Y ) = ( s e. C , t e. D |-> F ) ) $.
    $( If the operation value of the operation value of two nested maps-to
       notation is not empty, all involved arguments belong to the
       corresponding base classes of the maps-to notations.  (Contributed by
       AV, 21-May-2021.) $)
    2mpt20 $p |- ( -. ( ( X e. A /\ Y e. B ) /\ ( S e. C /\ T e. D ) )
                   -> ( S ( X O Y ) T ) = (/) ) $=
      ( wcel wa c0 wn wo co wceq ianor mpt2ndm0 oveqd 0ov syl6eq notnotb adantr
      cmpt2 eqid adantl eqtrd sylanbr jaoi3 sylbi ) MDRNERSZHFRIGRSZSUAUSUAZUTU
      AZUBHIMNLUCZUCZTUDZUSUTUEVAVEVBVAVDHITUCTVAVCTHIABJLMNDEPUFUGHIUHUIVAUAUS
      VBVEUSUJUSVBSZVDHIOCFGKULZUCZTVFVCVGHIUSVCVGUDVBQUKUGVBVHTUDUSOCKVGHIFGVG
      UMUFUNUOUPUQUR $.
  $}

  ${
    $d x A $.
    relmptopab.1 $e |- F = ( x e. A |-> { <. y , z >. | ph } ) $.
    $( Any function to sets of ordered pairs produces a relation on function
       value unconditionally.  (Contributed by Mario Carneiro, 7-Aug-2014.)
       (Proof shortened by Mario Carneiro, 24-Dec-2016.) $)
    relmptopab $p |- Rel ( F ` B ) $=
      ( cfv wrel cvv cxp wss copab fvmptss cv wcel relopab df-rel mpbi a1i mprg
      mpbir ) FGIZJUDKKLZMZACDNZUEMZUFBEBEUGUEFGHOUHBPEQUGJUHACDRUGSTUAUBUDSUC
      $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.  $d x y ph $.
    f1od.1 $e |- F = ( x e. A |-> C ) $.
    ${
      f1od.2 $e |- ( ( ph /\ x e. A ) -> C e. W ) $.
      f1od.3 $e |- ( ( ph /\ y e. B ) -> D e. X ) $.
      f1od.4 $e |- ( ph -> ( ( x e. A /\ y = C ) <-> ( y e. B /\ x = D ) ) ) $.
      $( Describe an implicit one-to-one onto function.  (Contributed by Mario
         Carneiro, 30-Apr-2015.) $)
      f1ocnvd $p |- ( ph ->
        ( F : A -1-1-onto-> B /\ `' F = ( y e. B |-> D ) ) ) $=
        ( ccnv cmpt wceq wfn wcel copab wf1o wral ralrimiva fnmpt eqid opabbidv
        cv wa df-mpt eqtri cnveqi cnvopab 3eqtr4g fneq1d mpbird dff1o4 sylanbrc
        syl jca ) ADEHUAZHOZCEGPZQAHDRZVAERZUTAFISZBDUBVCAVEBDLUCBDFHIKUDURAVDV
        BERZAGJSZCEUBVFAVGCEMUCCEGVBJVBUEUDURAEVAVBABUGZDSCUGZFQUHZCBTZVIESVHGQ
        UHZCBTVAVBAVJVLCBNUFVAVJBCTZOVKHVMHBDFPVMKBCDFUIUJUKVJBCULUJCBEGUIUMZUN
        UODEHUPUQVNUS $.

      $( Describe an implicit one-to-one onto function.  (Contributed by Mario
         Carneiro, 12-May-2014.) $)
      f1od $p |- ( ph -> F : A -1-1-onto-> B ) $=
        ( wf1o ccnv cmpt wceq f1ocnvd simpld ) ADEHOHPCEGQRABCDEFGHIJKLMNST $.
    $}

    f1o2d.2 $e |- ( ( ph /\ x e. A ) -> C e. B ) $.
    f1o2d.3 $e |- ( ( ph /\ y e. B ) -> D e. A ) $.
    f1o2d.4 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) ->
                    ( x = D <-> y = C ) ) $.
    $( Describe an implicit one-to-one onto function.  (Contributed by Mario
       Carneiro, 30-Apr-2015.) $)
    f1ocnv2d $p |- ( ph ->
      ( F : A -1-1-onto-> B /\ `' F = ( y e. B |-> D ) ) ) $=
      ( cv wcel wceq wa wi eleq1a syl impr biimpar exp42 com34 imp32 jcai com23
      biimpa impbida f1ocnvd ) ABCDEFGHEDIJKABMZDNZCMZFOZPZULENZUJGOZPZAUNPUOUP
      AUKUMUOAUKPFENUMUOQJFEULRSTAUKUMUOUPQAUKUOUMUPAUKUOUMUPAUKUOPPZUPUMLUAUBU
      CUDUEAUQPUKUMAUOUPUKAUOPGDNUPUKQKGDUJRSTAUOUPUKUMQAUOUKUPUMAUKUOUPUMQAUKU
      OUPUMURUPUMLUGUBUFUCUDUEUHUI $.

    $( Describe an implicit one-to-one onto function.  (Contributed by Mario
       Carneiro, 12-May-2014.) $)
    f1o2d $p |- ( ph -> F : A -1-1-onto-> B ) $=
      ( wf1o ccnv cmpt wceq f1ocnv2d simpld ) ADEHMHNCEGOPABCDEFGHIJKLQR $.
  $}

  ${
    $d a b A $.  $d a b B $.  $d a b F $.  $d a b ph $.
    f1opw2.1 $e |- ( ph -> F : A -1-1-onto-> B ) $.
    f1opw2.2 $e |- ( ph -> ( `' F " a ) e. _V ) $.
    f1opw2.3 $e |- ( ph -> ( F " b ) e. _V ) $.
    $( A one-to-one mapping induces a one-to-one mapping on power sets.  This
       version of ~ f1opw avoids the Axiom of Replacement.  (Contributed by
       Mario Carneiro, 26-Jun-2015.) $)
    f1opw2 $p |- ( ph ->
        ( b e. ~P A |-> ( F " b ) ) : ~P A -1-1-onto-> ~P B ) $=
      ( cpw cv cima wcel wss crn imassrn wceq syl cvv adantr ccnv cmpt eqid wfo
      wf1o f1ofo forn syl5sseq wb elpwg mpbird cdm dfdm4 f1odm syl5eqr wa elpwi
      adantl foimacnv syl2an eqcomd imaeq2 eqeq2d syl5ibrcom wf1 f1of1 f1imacnv
      impbid f1o2d ) AFEBJZCJZDFKZLZDUAZEKZLZFVJVMUBZVQUCAVMVKMZVLVJMZAVRVMCNZA
      DOZVMCDVLPABCDUDZWACQABCDUEZWBGBCDUFRZBCDUGRUHAVMSMVRVTUIIVMCSUJRUKTAVPVJ
      MZVOVKMZAWEVPBNZAVNOZVPBVNVOPAWHDULZBDUMAWCWIBQGBCDUNRUOUHAVPSMWEWGUIHVPB
      SUJRUKTAVSWFUPZUPZVLVPQZVOVMQZWKWMWLVODVPLZQWKWNVOAWBVOCNZWNVOQWJWDWFWOVS
      VOCUQURBCVODUSUTVAWLVMWNVOVLVPDVBVCVDWKWLWMVLVNVMLZQWKWPVLABCDVEZVLBNZWPV
      LQWJAWCWQGBCDVFRVSWRWFVLBUQTBCVLDVGUTVAWMVPWPVLVOVMVNVBVCVDVHVI $.
  $}

  ${
    $d a b A $.  $d a b B $.  $d a b F $.
    $( A one-to-one mapping induces a one-to-one mapping on power sets.
       (Contributed by Stefan O'Rear, 18-Nov-2014.)  (Revised by Mario
       Carneiro, 26-Jun-2015.) $)
    f1opw $p |- ( F : A -1-1-onto-> B -> ( b e. ~P A |-> ( F " b ) ) :
          ~P A -1-1-onto-> ~P B ) $=
      ( va wf1o id ccnv wfun cv cima cvv wfo dff1o3 simprbi vex funimaex f1ofun
      wcel syl f1opw2 ) ABCFZABCEDUBGUBCHZIZUCEJZKLSUBABCMUDABCNOUCUEEPQTUBCICD
      JZKLSABCRCUFDPQTUA $.
  $}

  ${
    $d x y $.
    elovmpt3imp.o $e |- O = ( x e. _V , y e. _V |-> ( z e. M |-> B ) ) $.
    $( If the value of a function which is the result of an operation defined
       by the maps-to notation is not empty, the operands must be sets.
       Remark: a function which is the result of an operation can be regared as
       operation with 3 operands - therefore the abbreviation "mpt3" is used in
       the label.  (Contributed by AV, 16-May-2019.) $)
    elovmpt3imp $p |- ( A e. ( ( X O Y ) ` Z ) -> ( X e. _V /\ Y e. _V ) ) $=
      ( co cfv wcel c0 wne cvv wa ne0i wceq wi ax-1 wn cmpt mpt2ndm0 0fv syl6eq
      fveq1 eqneqall 3syl pm2.61i syl ) DJHIGLZMZNUNOPZHQNIQNRZUNDSUPUOUPUAZUPU
      OUBUPUCUMOTZUNOTUQABCFEUDGHIQQKUEURUNJOMOJUMOUHJUFUGUPUNOUIUJUKUL $.
  $}

  ${
    $d K x y z $.  $d L a x y $.  $d N a $.  $d V x y $.  $d W x y $.
    $d U x y $.  $d X a x y z $.  $d Y a x y z $.
    ovmpt3rab1.o $e |- O = ( x e. _V , y e. _V
                             |-> ( z e. M |-> { a e. N | ph } ) ) $.
    ovmpt3rab1.m $e |- ( ( x = X /\ y = Y ) -> M = K ) $.
    ovmpt3rab1.n $e |- ( ( x = X /\ y = Y ) -> N = L ) $.
    ${
      ovmpt3rab1.p $e |- ( ( x = X /\ y = Y ) -> ( ph <-> ps ) ) $.
      ovmpt3rab1.x $e |- F/ x ps $.
      ovmpt3rab1.y $e |- F/ y ps $.
      $( The value of an operation defined by the maps-to notation with a
         function into a class abstraction as a result.  The domain of the
         function and the base set of the class abstraction may depend on the
         operands, using implicit substitution.  (Contributed by AV,
         16-Jul-2018.)  (Revised by AV, 16-May-2019.) $)
      ovmpt3rab1 $p |- ( ( X e. V /\ Y e. W /\ K e. U )
                         -> ( X O Y ) = ( z e. K |-> { a e. L | ps } ) ) $=
        ( wcel w3a cvv crab cmpt cmpt2 wceq a1i cv wa rabeqbidv mpteq12dv eqidd
        adantl elex 3ad2ant1 3ad2ant2 mptexg 3ad2ant3 nfv nfrab nfmpt ovmpt2dxf
        nfcv ) NLUCZOMUCZGFUCZUDZCDNOUEUEEIAPJUFZUGZEGBPHUFZUGZKUEUEKCDUEUEVLUH
        UIVJQUJCUKNUIZDUKOUIULZVLVNUIVJVPEIVKGVMRVPABPJHSTUMUNUPVJVOULUEUOVGVHN
        UEUCVINLUQURVHVGOUEUCVIOMUQUSVIVGVNUEUCVHEGVMFUTVAVJCVBVJDVBDNVFCOVFCEG
        VMCGVFBCPHUACHVFVCVDDEGVMDGVFBDPHUBDHVFVCVDVE $.
    $}

    $d L z $.  $d T z $.  $d U z $.  $d V z $.  $d W z $.
    $( If the value of a function which is the result of an operation defined
       by the maps-to notation is not empty, the operands and the argument of
       the function must be sets.  (Contributed by AV, 16-May-2019.) $)
    ovmpt3rabdm $p |- ( ( ( X e. V /\ Y e. W /\ K e. U ) /\ L e. T )
                        -> dom ( X O Y ) = K ) $=
      ( wcel w3a wa co wsbc crab cmpt wceq sbceq1a sylan9bbr nfsbc1v nfcv nfsbc
      cdm ovmpt3rab1 adantr dmeqd cvv wral rabexg adantl ralrimivw dmmptg eqtrd
      cv syl ) NLTOMTGFTUAZHETZUBZNOKUCZUMDGACOUDZBNUDZPHUEZUFZUMZGVHVIVMVFVIVM
      UGVGAVKBCDFGHIJKLMNOPQRSCVDOUGAVJBVDNUGVKACOUHVJBNUHUIVJBNUJVJCBNCNUKACOU
      JULUNUOUPVHVLUQTZDGURVNGUGVHVODGVGVOVFVKPHEUSUTVADGVLUQVBVEVC $.

    $d A a $.  $d Z a z $.
    $( Implications for the value of an operation defined by the maps-to
       notation with a function into a class abstraction as a result having an
       element.  The domain of the function and the base set of the class
       abstraction may depend on the operands, using implicit substitution.
       (Contributed by AV, 16-Jul-2018.)  (Revised by AV, 16-May-2019.) $)
    elovmpt3rab1 $p |- ( ( K e. U /\ L e. T ) -> ( A e. ( ( X O Y ) ` Z )
                   -> ( ( X e. _V /\ Y e. _V ) /\ ( Z e. K /\ A e. L ) ) ) ) $=
      ( wcel co cfv wa cvv crab elovmpt3imp simprl cdm elfvdm wceq simpl adantr
      wi simplr simprr ovmpt3rabdm syl31anc eleq2d biimpcd imp wsbc adantl cmpt
      w3a anim2i df-3an sylibr ad2antll cv sbceq1a sylan9bbr nfsbc1v nfcv nfsbc
      ovmpt3rab1 fveq1d rabexg nfrab rabbidv eqid fvmptf sylan2 eqtr2d eleqtrrd
      syl elrabi jca mpancom exp31 mpcom exp32 mpd com12 ) EOMNLUAZUBZTZHGTZIFT
      ZUCZMUDTZNUDTZUCZOHTZEITZUCZUCZWPXBWSXFUMBCDEAPKUEJLMNOQUFWPXBWSXFWPXBWSU
      CZUCXBXEWPXBWSUGWPXGXEOWNUHZTZWPXGXEUMEOWNUIXIWPXGXEXCXIWPUCZXGUCZXEXJXGX
      CXIXGXCUMWPXGXIXCXGXHHOXGWTXAWQWRXHHUJXBWTWSWTXAUKULWTXAWSUNXBWQWRUGXBWQW
      RUOABCDFGHIJKLUDUDMNPQRSUPUQURUSULUTXCXKUCZXCXDXCXKUKXLEACNVAZBMVAZDOVAZP
      IUEZTXDXLEWOXPXKWPXCXIWPXGUNVBXLWOODHXNPIUEZVCZUBZXPXLWTXAWQVDZWOXSUJXGXT
      XCXJXGXBWQUCXTWSWQXBWQWRUKVEWTXAWQVFVGVHXTOWNXRAXNBCDGHIJKLUDUDMNPQRSCVIN
      UJAXMBVIMUJXNACNVJXMBMVJVKXMBMVLXMCBMCMVMACNVLVNVOVPWEXKXCXPUDTZXSXPUJWSY
      AXJXBWRYAWQXOPIFVQVBVHDOXQXPHXRUDDOVMXODPIXNDOVLDIVMVRDVIOUJXNXOPIXNDOVJV
      SXRVTWAWBWCWDXOPEIWFWEWGWHWIWJUTWGWKWLWM $.
  $}

  ${
    $d A a $.  $d M a x y z $.  $d N a x y z $.  $d T z $.  $d U x y z $.
    $d X a x y z $.  $d Y a x y z $.  $d Z a z $.
    elovmpt3rab.o $e |- O = ( x e. _V , y e. _V
                              |-> ( z e. M |-> { a e. N | ph } ) ) $.
    $( Implications for the value of an operation defined by the maps-to
       notation with a class abstration as a result having an element.
       (Contributed by AV, 17-Jul-2018.)  (Revised by AV, 16-May-2019.) $)
    elovmpt3rab $p |- ( ( M e. U /\ N e. T ) -> ( A e. ( ( X O Y ) ` Z )
                   -> ( ( X e. _V /\ Y e. _V ) /\ ( Z e. M /\ A e. N ) ) ) ) $=
      ( cv wceq wa eqidd elovmpt3rab1 ) ABCDEFGHIHIJKLMNOBPKQCPLQRZHSUAIST $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Function operation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c oF $.
  $c oR $.

  $( Extend class notation to include mapping of an operation to a function
     operation. $)
  cof $a class oF R $.

  $( Extend class notation to include mapping of a binary relation to a
     function relation. $)
  cofr $a class oR R $.

  ${
    $d f g x R $.
    $( Define the function operation map.  The definition is designed so that
       if ` R ` is a binary operation, then ` oF R ` is the analogous operation
       on functions which corresponds to applying ` R ` pointwise to the values
       of the functions.  (Contributed by Mario Carneiro, 20-Jul-2014.) $)
    df-of $a |- oF R = ( f e. _V , g e. _V |->
     ( x e. ( dom f i^i dom g ) |-> ( ( f ` x ) R ( g ` x ) ) ) ) $.

    $( Define the function relation map.  The definition is designed so that if
       ` R ` is a binary relation, then ` oR R ` is the analogous relation on
       functions which is true when each element of the left function relates
       to the corresponding element of the right function.  (Contributed by
       Mario Carneiro, 28-Jul-2014.) $)
    df-ofr $a |- oR R = { <. f , g >. |
      A. x e. ( dom f i^i dom g ) ( f ` x ) R ( g ` x ) } $.
  $}

  ${
    $d f g x R $.  $d f g x S $.
    $( Equality theorem for function operation.  (Contributed by Mario
       Carneiro, 20-Jul-2014.) $)
    ofeq $p |- ( R = S -> oF R = oF S ) $=
      ( vf vg vx wceq cvv cv cdm cin cfv co cmpt cmpt2 cof wcel w3a simp1 oveqd
      df-of mpteq2dv mpt2eq3dva 3eqtr4g ) ABFZCDGGECHZIDHZIJZEHZUEKZUHUFKZALZMZ
      NCDGGEUGUIUJBLZMZNAOBOUDCDGGULUNUDUEGPZUFGPZQZEUGUKUMUQABUIUJUDUOUPRSUAUB
      EACDTEBCDTUC $.

    $( Equality theorem for function relation.  (Contributed by Mario Carneiro,
       28-Jul-2014.) $)
    ofreq $p |- ( R = S -> oR R = oR S ) $=
      ( vx vf vg wceq cv cfv wbr cdm cin wral cofr breq ralbidv opabbidv df-ofr
      copab 3eqtr4g ) ABFZCGZDGZHZUAEGZHZAIZCUBJUDJKZLZDERUCUEBIZCUGLZDERAMBMTU
      HUJDETUFUICUGUCUEABNOPCADEQCBDEQS $.

    $( A function operation restricted to a set is a set.  (Contributed by NM,
       28-Jul-2014.) $)
    ofexg $p |- ( A e. V -> ( oF R |` A ) e. _V ) $=
      ( vf vg vx cof wfun wcel cres cvv cv cdm cin cmpt df-of mpt2fun resfunexg
      cfv co mpan ) BGZHACIUBAJKIDEKKFDLZMELZMNFLZUCSUEUDSBTOUBFBDEPQUBACRUA $.

    nfof.1 $e |- F/_ x R $.
    $( Hypothesis builder for function operation.  (Contributed by Mario
       Carneiro, 20-Jul-2014.) $)
    nfof $p |- F/_ x oF R $=
      ( cof nfcv ) ABDE $.

    $( Hypothesis builder for function relation.  (Contributed by Mario
       Carneiro, 28-Jul-2014.) $)
    nfofr $p |- F/_ x oR R $=
      ( cofr nfcv ) ABDE $.
  $}

  ${
    $d x A $.  $d f g x F $.  $d f g x G $.  $d x ph $.  $d x S $.  $d x X $.
    $d f g x R $.
    offval.1 $e |- ( ph -> F Fn A ) $.
    offval.2 $e |- ( ph -> G Fn B ) $.
    offval.3 $e |- ( ph -> A e. V ) $.
    offval.4 $e |- ( ph -> B e. W ) $.
    offval.5 $e |- ( A i^i B ) = S $.
    ${
      offval.6 $e |- ( ( ph /\ x e. A ) -> ( F ` x ) = C ) $.
      offval.7 $e |- ( ( ph /\ x e. B ) -> ( G ` x ) = D ) $.
      $( Value of an operation applied to two functions.  (Contributed by Mario
         Carneiro, 20-Jul-2014.) $)
      offval $p |- ( ph -> ( F oF R G ) = ( x e. S |-> ( C R D ) ) ) $=
        ( cvv vf vg cof co cdm cin cfv cmpt wcel wceq wfn fnex syl2anc fndm syl
        cv ineq12d syl6eq mpteq1d inex1g syl5eqelr mptexg 3syl eqeltrd wa fveq1
        dmeq ineqan12d oveqan12d mpteq12dv df-of ovmpt2ga syl3anc eleq2i bitr3i
        elin adantrr adantrl oveq12d sylan2b mpteq2dva 3eqtrd ) AIJGUCZUDZBIUEZ
        JUEZUFZBUPZIUGZWHJUGZGUDZUHZBHWKUHZBHEFGUDZUHAITUIZJTUIZWLTUIWDWLUJAICU
        KZCKUIZWOMOCKIULUMAJDUKZDLUIWPNPDLJULUMAWLWMTABWGHWKAWGCDUFZHAWECWFDAWQ
        WECUJMCIUNUOAWSWFDUJNDJUNUOUQQURUSZAWRHTUIWMTUIOWRHWTTQCDKUTVABHWKTVBVC
        VDUAUBIJTTBUAUPZUEZUBUPZUEZUFZWHXBUGZWHXDUGZGUDZUHWLWCTXBIUJZXDJUJZVEBX
        FXIWGWKXJXKXCWEXEWFXBIVGXDJVGVHXJXKXGWIXHWJGWHXBIVFWHXDJVFVIVJBGUAUBVKV
        LVMXAABHWKWNWHHUIZAWHCUIZWHDUIZVEZWKWNUJXLWHWTUIXOWTHWHQVNWHCDVPVOAXOVE
        WIEWJFGAXMWIEUJXNRVQAXNWJFUJXMSVRVSVTWAWB $.

      $( Value of a relation applied to two functions.  (Contributed by Mario
         Carneiro, 28-Jul-2014.) $)
      ofrfval $p |- ( ph -> ( F oR R G <-> A. x e. S C R D ) ) $=
        ( wcel vf vg cofr wbr cv cfv cdm cin wral cvv wb fnex syl2anc wceq dmeq
        wfn wa ineqan12d fveq1 breqan12d raleqbidv df-ofr brabga ineq12d syl6eq
        fndm raleqdv inss1 eqsstr3i sseli sylan2 inss2 breq12d ralbidva 3bitrd
        syl ) AIJGUCZUDZBUEZIUFZVSJUFZGUDZBIUGZJUGZUHZUIZWBBHUIEFGUDZBHUIAIUJTZ
        JUJTZVRWFUKAICUPZCKTWHMOCKIULUMAJDUPZDLTWINPDLJULUMVSUAUEZUFZVSUBUEZUFZ
        GUDZBWLUGZWNUGZUHZUIWFUAUBIJVQUJUJWLIUNZWNJUNZUQWPWBBWSWEWTXAWQWCWRWDWL
        IUOWNJUOURWTXAWMVTWOWAGVSWLIUSVSWNJUSUTVABGUAUBVBVCUMAWBBWEHAWECDUHZHAW
        CCWDDAWJWCCUNMCIVFVPAWKWDDUNNDJVFVPVDQVEVGAWBWGBHAVSHTZUQVTEWAFGXCAVSCT
        VTEUNHCVSHXBCQCDVHVIVJRVKXCAVSDTWAFUNHDVSHXBDQCDVLVIVJSVKVMVNVO $.
    $}

    ${
      ofval.6 $e |- ( ( ph /\ X e. A ) -> ( F ` X ) = C ) $.
      ofval.7 $e |- ( ( ph /\ X e. B ) -> ( G ` X ) = D ) $.
      $( Evaluate a function operation at a point.  (Contributed by Mario
         Carneiro, 20-Jul-2014.) $)
      ofval $p |- ( ( ph /\ X e. S ) -> ( ( F oF R G ) ` X ) = ( C R D ) ) $=
        ( cfv vx wcel wa cof co cv cmpt wceq eqidd offval fveq1d adantr oveq12d
        fveq2 eqid ovex fvmpt adantl inss1 eqsstr3i sseli sylan2 inss2 3eqtrd
        cin ) ALGUBZUCZLHIFUDUEZTZLUAGUAUFZHTZVJITZFUEZUGZTZLHTZLITZFUEZDEFUEAV
        IVOUHVFALVHVNAUABCVKVLFGHIJKMNOPQAVJBUBUCVKUIAVJCUBUCVLUIUJUKULVFVOVRUH
        AUALVMVRGVNVJLUHVKVPVLVQFVJLHUNVJLIUNUMVNUOVPVQFUPUQURVGVPDVQEFVFALBUBV
        PDUHGBLGBCVEZBQBCUSUTVARVBVFALCUBVQEUHGCLGVSCQBCVCUTVASVBUMVD $.

      $( Exhibit a function relation at a point.  (Contributed by Mario
         Carneiro, 28-Jul-2014.) $)
      ofrval $p |- ( ( ph /\ F oR R G /\ X e. S ) -> C R D ) $=
        ( wcel vx cofr wbr w3a cfv wa cv wral eqidd ofrfval biimpa wceq breq12d
        wi fveq2 rspccv syl 3impia simp1 cin inss1 eqsstr3i simp3 syl2anc inss2
        sseldi 3brtr3d ) AHIFUBUCZLGTZUDZLHUEZLIUEZDEFAVHVIVKVLFUCZAVHUFUAUGZHU
        EZVNIUEZFUCZUAGUHZVIVMUNAVHVRAUABCVOVPFGHIJKMNOPQAVNBTUFVOUIAVNCTUFVPUI
        UJUKVQVMUALGVNLULVOVKVPVLFVNLHUOVNLIUOUMUPUQURVJALBTVKDULAVHVIUSZVJGBLG
        BCUTZBQBCVAVBAVHVIVCZVFRVDVJALCTVLEULVSVJGCLGVTCQBCVEVBWAVFSVDVG $.
    $}

    $( The function operation produces a function.  (Contributed by Mario
       Carneiro, 22-Jul-2014.) $)
    offn $p |- ( ph -> ( F oF R G ) Fn S ) $=
      ( vx co wfn cfv wcel wa cof cv cmpt ovex eqid fnmpti offval fneq1d mpbiri
      eqidd ) AFGDUAPZEQOEOUBZFRZULGRZDPZUCZEQOEUOUPUMUNDUDUPUEUFAEUKUPAOBCUMUN
      DEFGHIJKLMNAULBSTUMUJAULCSTUNUJUGUHUI $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y F $.  $d y G $.  $d y ph $.
    $d x y R $.
    offval2f.0 $e |- F/ x ph $.
    offval2f.a $e |- F/_ x A $.
    offval2f.1 $e |- ( ph -> A e. V ) $.
    offval2f.2 $e |- ( ( ph /\ x e. A ) -> B e. W ) $.
    offval2f.3 $e |- ( ( ph /\ x e. A ) -> C e. X ) $.
    offval2f.4 $e |- ( ph -> F = ( x e. A |-> B ) ) $.
    offval2f.5 $e |- ( ph -> G = ( x e. A |-> C ) ) $.
    $( The function operation expressed as a mapping.  (Contributed by Thierry
       Arnoux, 23-Jun-2017.) $)
    offval2f $p |- ( ph -> ( F oF R G ) = ( x e. A |-> ( B R C ) ) ) $=
      ( vy cmpt cof co cv cfv wfn wcel wral ex ralrimi fnmptf syl fneq1d mpbird
      inidm wa wceq adantr fveq1d offval nfcv nffvmpt1 nfov fveq2 oveq12d simpr
      cbvmptf fvmpt2f syl2anc mpteq2da syl5eq eqtrd ) AGHFUAUBSCSUCZBCDTZUDZVLB
      CETZUDZFUBZTZBCDEFUBZTZASCCVNVPFCGHIIAGCUEVMCUEZADJUFZBCUGWAAWBBCLABUCZCU
      FZWBOUHUIBCDJMUJUKACGVMQULUMAHCUEVOCUEZAEKUFZBCUGWEAWFBCLAWDWFPUHUIBCEKMU
      JUKACHVORULUMNNCUNAVLCUFZUOZVLGVMAGVMUPWGQUQURWHVLHVOAHVOUPWGRUQURUSAVRBC
      WCVMUDZWCVOUDZFUBZTVTSBCVQWKSCUTMBVNVPFBCDVLVABFUTBCEVLVAVBSWKUTVLWCUPVNW
      IVPWJFVLWCVMVCVLWCVOVCVDVFABCWKVSLAWDUOZWIDWJEFWLWDWBWIDUPAWDVEZOBCDJMVGV
      HWLWDWFWJEUPWMPBCEKMVGVHVDVIVJVK $.
  $}

  ${
    ofmresval.f $e |- ( ph -> F e. A ) $.
    ofmresval.g $e |- ( ph -> G e. B ) $.
    $( Value of a restriction of the function operation map.  (Contributed by
       NM, 20-Oct-2014.) $)
    ofmresval $p |- ( ph -> ( F ( oF R |` ( A X. B ) ) G ) = ( F oF R G ) ) $=
      ( wcel cof cxp cres co wceq ovres syl2anc ) AEBIFCIEFDJZBCKLMEFQMNGHEFBCQ
      OP $.
  $}

  $( Function value of a pointwise composition.  (Contributed by Stefan O'Rear,
     5-Oct-2014.)  (Proof shortened by Mario Carneiro, 5-Jun-2015.) $)
  fnfvof $p |- ( ( ( F Fn A /\ G Fn A ) /\ ( A e. V /\ X e. A ) ) ->
      ( ( F oF R G ) ` X ) = ( ( F ` X ) R ( G ` X ) ) ) $=
    ( wfn wa wcel cof co cfv wceq simpll simplr simpr inidm eqidd ofval anasss
    ) CAGZDAGZHZAEIZFAIZFCDBJKLFCLZFDLZBKMUCUDHZAAUFUGBACDEEFUAUBUDNUAUBUDOUCUD
    PZUIAQUHUEHZUFRUJUGRST $.

  ${
    $d z A $.  $d z C $.  $d y z G $.  $d x y z ph $.  $d x y S $.  $d x y T $.
    $d x y z F $.  $d x y z R $.  $d x y z U $.
    off.1 $e |- ( ( ph /\ ( x e. S /\ y e. T ) ) -> ( x R y ) e. U ) $.
    off.2 $e |- ( ph -> F : A --> S ) $.
    off.3 $e |- ( ph -> G : B --> T ) $.
    off.4 $e |- ( ph -> A e. V ) $.
    off.5 $e |- ( ph -> B e. W ) $.
    off.6 $e |- ( A i^i B ) = C $.
    $( The function operation produces a function.  (Contributed by Mario
       Carneiro, 20-Jul-2014.) $)
    off $p |- ( ph -> ( F oF R G ) : C --> U ) $=
      ( vz cof co wf cv cfv cmpt wcel wa wral cin inss1 eqsstr3i ffvelrn syl2an
      sseli inss2 ralrimivva adantr wceq oveq1 eleq1d oveq2 syl21anc eqid fmptd
      rspc2va wfn ffn syl eqidd offval feq1d mpbird ) AFJKLGUBUCZUDFJUAFUAUEZKU
      FZVPLUFZGUCZUGZUDAUAFVSJVTAVPFUHZUIVQHUHZVRIUHZBUEZCUEZGUCZJUHZCIUJBHUJZV
      SJUHZADHKUDZVPDUHZWBWAPFDVPFDEUKZDTDEULUMUPDHVPKUNUOAEILUDZVPEUHZWCWAQFEV
      PFWLETDEUQUMUPEIVPLUNUOAWHWAAWGBCHIOURUSWGWIVQWEGUCZJUHBCVQVRHIWDVQUTWFWO
      JWDVQWEGVAVBWEVRUTWOVSJWEVRVQGVCVBVGVDVTVEVFAFJVOVTAUADEVQVRGFKLMNAWJKDVH
      PDHKVIVJAWMLEVHQEILVIVJRSTAWKUIVQVKAWNUIVRVKVLVMVN $.
  $}

  ${
    $d x A $.  $d x C $.  $d x F $.  $d x G $.  $d x ph $.  $d x R $.
    ofres.1 $e |- ( ph -> F Fn A ) $.
    ofres.2 $e |- ( ph -> G Fn B ) $.
    ofres.3 $e |- ( ph -> A e. V ) $.
    ofres.4 $e |- ( ph -> B e. W ) $.
    ofres.5 $e |- ( A i^i B ) = C $.
    $( Restrict the operands of a function operation to the same domain as that
       of the operation itself.  (Contributed by Mario Carneiro,
       15-Sep-2014.) $)
    ofres $p |- ( ph -> ( F oF R G ) = ( ( F |` C ) oF R ( G |` C ) ) ) $=
      ( vx co cfv wcel cvv wfn cof cv cmpt cres eqidd offval wss inss1 eqsstr3i
      wa cin fnssres sylancl inss2 ssexg sylancr inidm wceq fvres adantl eqtr4d
      ) AFGEUAZPODOUBZFQZVCGQZEPUCFDUDZGDUDZVBPAOBCVDVEEDFGHIJKLMNAVCBRUJVDUEAV
      CCRUJVEUEUFAODDVDVEEDVFVGSSAFBTDBUGZVFDTJDBCUKZBNBCUHUIZBDFULUMAGCTDCUGVG
      DTKDVICNBCUNUICDGULUMAVHBHRDSRVJLDBHUOUPZVKDUQVCDRZVCVFQVDURAVCDFUSUTVLVC
      VGQVEURAVCDGUSUTUFVA $.
  $}

  ${
    $d x y A $.  $d y B $.  $d y C $.  $d y F $.  $d y G $.  $d x y ph $.
    $d x y R $.
    offval2.1 $e |- ( ph -> A e. V ) $.
    offval2.2 $e |- ( ( ph /\ x e. A ) -> B e. W ) $.
    offval2.3 $e |- ( ( ph /\ x e. A ) -> C e. X ) $.
    offval2.4 $e |- ( ph -> F = ( x e. A |-> B ) ) $.
    offval2.5 $e |- ( ph -> G = ( x e. A |-> C ) ) $.
    $( The function operation expressed as a mapping.  (Contributed by Mario
       Carneiro, 20-Jul-2014.) $)
    offval2 $p |- ( ph -> ( F oF R G ) = ( x e. A |-> ( B R C ) ) ) $=
      ( vy co cmpt wceq cof cv cfv wcel wral ralrimiva eqid fnmpt fneq1d mpbird
      wfn inidm wa adantr fveq1d offval nffvmpt1 nfcv nfov fveq2 oveq12d cbvmpt
      syl simpr fvmpt2 syl2anc mpteq2dva syl5eq eqtrd ) AGHFUARQCQUBZBCDSZUCZVJ
      BCESZUCZFRZSZBCDEFRZSZAQCCVLVNFCGHIIAGCUKVKCUKZADJUDZBCUEVSAVTBCMUFBCDVKJ
      VKUGZUHVCACGVKOUIUJAHCUKVMCUKZAEKUDZBCUEWBAWCBCNUFBCEVMKVMUGZUHVCACHVMPUI
      UJLLCULAVJCUDZUMZVJGVKAGVKTWEOUNUOWFVJHVMAHVMTWEPUNUOUPAVPBCBUBZVKUCZWGVM
      UCZFRZSVRQBCVOWJBVLVNFBCDVJUQBFURBCEVJUQUSQWJURVJWGTVLWHVNWIFVJWGVKUTVJWG
      VMUTVAVBABCWJVQAWGCUDZUMZWHDWIEFWLWKVTWHDTAWKVDZMBCDJVKWAVEVFWLWKWCWIETWM
      NBCEKVMWDVEVFVAVGVHVI $.

    $( The function relation acting on maps.  (Contributed by Mario Carneiro,
       20-Jul-2014.) $)
    ofrfval2 $p |- ( ph -> ( F oR R G <-> A. x e. A B R C ) ) $=
      ( vy wbr wral wceq cofr cmpt cfv wfn wcel ralrimiva eqid fnmpt syl fneq1d
      cv mpbird inidm wa adantr fveq1d ofrfval nffvmpt1 nfcv nfbr fveq2 breq12d
      nfv cbvral simpr fvmpt2 syl2anc ralbidva syl5bb bitrd ) AGHFUARQUKZBCDUBZ
      UCZVKBCEUBZUCZFRZQCSZDEFRZBCSZAQCCVMVOFCGHIIAGCUDVLCUDZADJUEZBCSVTAWABCMU
      FBCDVLJVLUGZUHUIACGVLOUJULAHCUDVNCUDZAEKUEZBCSWCAWDBCNUFBCEVNKVNUGZUHUIAC
      HVNPUJULLLCUMAVKCUEZUNZVKGVLAGVLTWFOUOUPWGVKHVNAHVNTWFPUOUPUQVQBUKZVLUCZW
      HVNUCZFRZBCSAVSVPWKQBCBVMVOFBCDVKURBFUSBCEVKURUTWKQVCVKWHTVMWIVOWJFVKWHVL
      VAVKWHVNVAVBVDAWKVRBCAWHCUEZUNZWIDWJEFWMWLWAWIDTAWLVEZMBCDJVLWBVFVGWMWLWD
      WJETWNNBCEKVNWEVFVGVBVHVIVJ $.
  $}

  ${
    $d A x a $.  $d V a $.  $d B a $.  $d C a $.  $d R a x $.
    $( Value of a pointwise operation on two functions defined using maps-to
       notation.  (Contributed by Stefan O'Rear, 5-Oct-2014.) $)
    ofmpteq $p |- ( ( A e. V /\ ( x e. A |-> B ) Fn A
        /\ ( x e. A |-> C ) Fn A )
  -> ( ( x e. A |-> B ) oF R ( x e. A |-> C ) ) = ( x e. A |-> ( B R C ) ) ) $=
      ( va wcel cmpt wfn co cv csb cvv wral eqid mptfng wceq nfcv cbvmpt w3a wa
      cof simp1 simpr simpl2 sylibr nfcsb1v csbeq1a eleq1d rspc sylc simpl3 a1i
      nfel1 offval2 nfov oveq12d syl6eqr ) BFHZABCIZBJZABDIZBJZUAZVAVCEUCKGBAGL
      ZCMZAVFDMZEKZIABCDEKZIVEGBVGVHEVAVCFNNUTVBVDUDVEVFBHZUBZVKCNHZABOZVGNHZVE
      VKUEZVLVBVNUTVBVDVKUFABCVAVAPQUGVMVOAVFBAVGNAVFCUHZUOALVFRZCVGNAVFCUIZUJU
      KULVLVKDNHZABOZVHNHZVPVLVDWAUTVBVDVKUMABDVCVCPQUGVTWBAVFBAVHNAVFDUHZUOVRD
      VHNAVFDUIZUJUKULVAGBVGIRVEAGBCVGGCSVQVSTUNVCGBVHIRVEAGBDVHGDSWCWDTUNUPAGB
      VJVIGVJSAVGVHEVQAESWCUQVRCVGDVHEVSWDURTUS $.
  $}

  ${
    $d y A $.  $d x y C $.  $d x y F $.  $d x y G $.  $d x y H $.  $d x y ph $.
    $d x D $.  $d x y R $.
    ofco.1 $e |- ( ph -> F Fn A ) $.
    ofco.2 $e |- ( ph -> G Fn B ) $.
    ofco.3 $e |- ( ph -> H : D --> C ) $.
    ofco.4 $e |- ( ph -> A e. V ) $.
    ofco.5 $e |- ( ph -> B e. W ) $.
    ofco.6 $e |- ( ph -> D e. X ) $.
    ofco.7 $e |- ( A i^i B ) = C $.
    $( The composition of a function operation with another function.
       (Contributed by Mario Carneiro, 19-Dec-2014.) $)
    ofco $p |- ( ph ->
      ( ( F oF R G ) o. H ) = ( ( F o. H ) oF R ( G o. H ) ) ) $=
      ( cfv vx vy cof co ccom cv cmpt ffvelrnda feqmptd wcel eqidd offval fveq2
      wa oveq12d fmptco wfn wf wss cin inss1 eqsstr3i fss sylancl fnfco syl2anc
      wceq inss2 inidm ffn syl fvco2 sylan eqtr4d ) AGHFUCZUDZIUEUAEUAUFZITZGTZ
      VRHTZFUDZUGGIUEZHIUEZVOUDAUAUBEDVRUBUFZGTZWDHTZFUDWAIVPAEDVQIOUHAUAEDIOUI
      AUBBCWEWFFDGHJKMNPQSAWDBUJUNWEUKAWDCUJUNWFUKULWDVRVGWEVSWFVTFWDVRGUMWDVRH
      UMUOUPAUAEEVSVTFEWBWCLLAGBUQEBIURZWBEUQMAEDIURZDBUSWGODBCUTZBSBCVAVBEDBIV
      CVDBEGIVEVFAHCUQECIURZWCEUQNAWHDCUSWJODWICSBCVHVBEDCIVCVDCEHIVEVFRREVIAIE
      UQZVQEUJZVQWBTVSVGAWHWKOEDIVJVKZEGIVQVLVMAWKWLVQWCTVTVGWMEHIVQVLVMULVN $.
  $}

  ${
    $d x A $.  $d x F $.  $d x G $.  $d x H $.  $d x ph $.  $d x R $.
    offveq.1 $e |- ( ph -> A e. V ) $.
    offveq.2 $e |- ( ph -> F Fn A ) $.
    offveq.3 $e |- ( ph -> G Fn A ) $.
    offveq.4 $e |- ( ph -> H Fn A ) $.
    offveq.5 $e |- ( ( ph /\ x e. A ) -> ( F ` x ) = B ) $.
    offveq.6 $e |- ( ( ph /\ x e. A ) -> ( G ` x ) = C ) $.
    ${
      offveq.7 $e |- ( ( ph /\ x e. A ) -> ( B R C ) = ( H ` x ) ) $.
      $( Convert an identity of the operation to the analogous identity on the
         function operation.  (Contributed by Mario Carneiro, 24-Jul-2014.) $)
      offveq $p |- ( ph -> ( F oF R G ) = H ) $=
        ( cof co cfv inidm offn cv wcel wa ofval eqtrd eqfnfvd ) ABCGHFRSZIACCF
        CGHJJLMKKCUAZUBNABUCZCUDUEUKUITDEFSUKITACCDEFCGHJJUKLMKKUJOPUFQUGUH $.
    $}

    $d x F $.
    $( Equivalent expressions for equality with a function operation.
       (Contributed by NM, 9-Oct-2014.)  (Proof shortened by Mario Carneiro,
       5-Dec-2016.) $)
    offveqb $p |- ( ph
          -> ( H = ( F oF R G ) <-> A. x e. A ( H ` x ) = ( B R C ) ) ) $=
      ( co wceq cmpt wral cof cfv wfn dffn5 sylib inidm offval eqeq12d cvv wcel
      cv wb fvexd ralrimivw mpteqb syl bitrd ) AIGHFUAQZRBCBUKZIUBZSZBCDEFQZSZR
      ZUTVBRBCTZAIVAURVCAICUCIVARNBCIUDUEABCCDEFCGHJJLMKKCUFOPUGUHAUTUIUJZBCTVD
      VEULAVFBCAUSIUMUNBCUTVBUIUOUPUQ $.
  $}

  ${
    ofc1.1 $e |- ( ph -> A e. V ) $.
    ofc1.2 $e |- ( ph -> B e. W ) $.
    ofc1.3 $e |- ( ph -> F Fn A ) $.
    ofc1.4 $e |- ( ( ph /\ X e. A ) -> ( F ` X ) = C ) $.
    $( Left operation by a constant.  (Contributed by Mario Carneiro,
       24-Jul-2014.) $)
    ofc1 $p |- ( ( ph /\ X e. A ) ->
      ( ( ( A X. { B } ) oF R F ) ` X ) = ( B R C ) ) $=
      ( csn cxp wcel wfn fnconstg syl inidm cfv wceq fvconst2g sylan ofval ) AB
      BCDEBBCNOZFGGIACHPZUFBQKBCHRSLJJBTAUGIBPIUFUACUBKBCIHUCUDMUE $.
  $}

  ${
    ofc2.1 $e |- ( ph -> A e. V ) $.
    ofc2.2 $e |- ( ph -> B e. W ) $.
    ofc2.3 $e |- ( ph -> F Fn A ) $.
    ofc2.4 $e |- ( ( ph /\ X e. A ) -> ( F ` X ) = C ) $.
    $( Right operation by a constant.  (Contributed by NM, 7-Oct-2014.) $)
    ofc2 $p |- ( ( ph /\ X e. A ) ->
      ( ( F oF R ( A X. { B } ) ) ` X ) = ( C R B ) ) $=
      ( csn cxp wcel wfn fnconstg syl inidm cfv wceq fvconst2g sylan ofval ) AB
      BDCEBFBCNOZGGILACHPZUFBQKBCHRSJJBTMAUGIBPIUFUACUBKBCIHUCUDUE $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.  $d x R $.  $d x W $.
    $d x X $.
    ofc12.1 $e |- ( ph -> A e. V ) $.
    ofc12.2 $e |- ( ph -> B e. W ) $.
    ofc12.3 $e |- ( ph -> C e. X ) $.
    $( Function operation on two constant functions.  (Contributed by Mario
       Carneiro, 28-Jul-2014.) $)
    ofc12 $p |- ( ph ->
      ( ( A X. { B } ) oF R ( A X. { C } ) ) = ( A X. { ( B R C ) } ) ) $=
      ( vx csn cxp co cmpt wcel adantr wceq fconstmpt cof a1i offval2 syl6eqr
      cv ) ABCMNZBDMNZEUAOLBCDEOZPBUHMNALBCDEUFUGFGHIACGQLUEBQZJRADHQUIKRUFLBCP
      SALBCTUBUGLBDPSALBDTUBUCLBUHTUD $.
  $}

  ${
    $d w x B $.  $d w x C $.  $d w x y z F $.  $d w x y z G $.  $d w x y z H $.
    $d w x y z O $.  $d w x y z P $.  $d w x y z ph $.  $d w x y z R $.
    $d w A $.  $d w x y z S $.  $d w x y z T $.  $d w x y z U $.
    caofref.1 $e |- ( ph -> A e. V ) $.
    caofref.2 $e |- ( ph -> F : A --> S ) $.
    ${
      caofref.3 $e |- ( ( ph /\ x e. S ) -> x R x ) $.
      $( Transfer a reflexive law to the function relation.  (Contributed by
         Mario Carneiro, 28-Jul-2014.) $)
      caofref $p |- ( ph -> F oR R F ) $=
        ( vw cofr wbr cv cfv wral wcel wa ffvelrnda ralrimiva adantr id breq12d
        wceq rspcv sylc wf wfn ffn syl inidm eqidd ofrfval mpbird ) AFFDLMKNZFO
        ZUPDMZKCPAUQKCAUOCQZRZUPEQBNZUTDMZBEPZUQACEUOFISAVBURAVABEJTUAVAUQBUPEU
        TUPUDZUTUPUTUPDVCUBZVDUCUEUFTAKCCUPUPDCFFGGACEFUGFCUHICEFUIUJZVEHHCUKUS
        UPULZVFUMUN $.
    $}

    ${
      $d v A $.  $d v F $.  $d x v N $.  $d v S $.  $d v ph $.  $d v w $.
      caofinv.3 $e |- ( ph -> B e. W ) $.
      caofinv.4 $e |- ( ph -> N : S --> S ) $.
      caofinv.5 $e |- ( ph -> G = ( v e. A |-> ( N ` ( F ` v ) ) ) ) $.
      ${
        caofinvl.6 $e |- ( ( ph /\ x e. S ) -> ( ( N ` x ) R x ) = B ) $.
        $( Transfer a left inverse law to the function operation.  (Contributed
           by NM, 22-Oct-2014.) $)
        caofinvl $p |- ( ph -> ( G oF R F ) = ( A X. { B } ) ) $=
          ( vw cfv cof co cmpt csn cv wf wcel wa adantr ffvelrnda ffvelrnd eqid
          cxp fmptd feq1d mpbird wfn wceq fvex fnmpti fneq1d mpbiri dffn5 sylib
          feqmptd offval2 fveq1d fveq2 fveq2d sylan9eq oveq1d wral ralrimiva id
          fvmpt oveq12d eqeq1d rspcva syl2anc eqtrd mpteq2dva fconstmpt syl6eqr
          ) AIHFUAUBZSDEUCZDEUDUMAWDSDSUEZITZWFHTZFUBZUCWEASDWGWHFIHKGGMADGWFIA
          DGIUFDGCDCUEZHTZJTZUCZUFACDWLGWMAWJDUGZUHGGWKJAGGJUFWNPUIADGWJHNUJUKW
          MULZUNADGIWMQUOUPUJADGWFHNUJZAIDUQZISDWGUCURAWQWMDUQCDWLWMWKJUSWOUTAD
          IWMQVAVBSDIVCVDASDGHNVEVFASDWIEAWFDUGZUHZWIWHJTZWHFUBZEWSWGWTWHFAWRWG
          WFWMTWTAWFIWMQVGCWFWLWTDWMWJWFURWKWHJWJWFHVHVIWOWHJUSVOVJVKWSWHGUGBUE
          ZJTZXBFUBZEURZBGVLZXAEURZWPAXFWRAXEBGRVMUIXEXGBWHGXBWHURZXDXAEXHXCWTX
          BWHFXBWHJVHXHVNVPVQVRVSVTWAVTSDEWBWC $.
      $}
    $}

    ${
      caofid0.3 $e |- ( ph -> B e. W ) $.
      ${
        caofid0l.5 $e |- ( ( ph /\ x e. S ) -> ( B R x ) = x ) $.
        $( Transfer a left identity law to the function operation.
           (Contributed by NM, 21-Oct-2014.) $)
        caofid0l $p |- ( ph -> ( ( A X. { B } ) oF R F ) = F ) $=
          ( vw cv cfv wcel wfn syl wceq csn cxp fnconstg wf ffn fvconst2g sylan
          wa eqidd ffvelrnda wral ralrimiva oveq2 eqeq12d rspccva syldan offveq
          co id ) ANCDNOZGPZECDUAUBZGGHJADIQZVBCRLCDIUCSACFGUDGCRKCFGUESZVDAVCU
          TCQZUTVBPDTLCDUTIUFUGAVEUHVAUIAVEVAFQZDVAEURZVATZACFUTGKUJADBOZEURZVI
          TZBFUKVFVHAVKBFMULVKVHBVAFVIVATZVJVGVIVAVIVADEUMVLUSUNUOUGUPUQ $.
      $}

      ${
        caofid0r.5 $e |- ( ( ph /\ x e. S ) -> ( x R B ) = x ) $.
        $( Transfer a right identity law to the function operation.
           (Contributed by NM, 21-Oct-2014.) $)
        caofid0r $p |- ( ph -> ( F oF R ( A X. { B } ) ) = F ) $=
          ( vw cv cfv wfn syl wcel wceq csn cxp wf ffn fnconstg eqidd fvconst2g
          wa sylan ffvelrnda wral ralrimiva oveq1 eqeq12d rspccva syldan offveq
          co id ) ANCNOZGPZDEGCDUAUBZGHJACFGUCGCQKCFGUDRZADISZVBCQLCDIUERVCAUTC
          SZUHVAUFAVDVEUTVBPDTLCDUTIUGUIAVEVAFSZVADEURZVATZACFUTGKUJABOZDEURZVI
          TZBFUKVFVHAVKBFMULVKVHBVAFVIVATZVJVGVIVAVIVADEUMVLUSUNUOUIUPUQ $.
      $}

      caofid1.4 $e |- ( ph -> C e. X ) $.
      ${
        caofid1.5 $e |- ( ( ph /\ x e. S ) -> ( x R B ) = C ) $.
        $( Transfer a right absorption law to the function operation.
           (Contributed by Mario Carneiro, 28-Jul-2014.) $)
        caofid1 $p |- ( ph -> ( F oF R ( A X. { B } ) ) = ( A X. { C } ) ) $=
          ( cfv wfn wcel wceq vw cv csn cxp wf ffn syl fnconstg eqidd fvconst2g
          wa sylan ffvelrnda wral ralrimiva eqeq1d rspccva syldan eqtr4d offveq
          co oveq1 ) AUACUAUBZHQZDFHCDUCUDZCEUCUDZILACGHUEHCRMCGHUFUGADJSZVECRN
          CDJUHUGAEKSZVFCROCEKUHUGAVCCSZUKZVDUIAVGVIVCVEQDTNCDVCJUJULVJVDDFVAZE
          VCVFQZAVIVDGSZVKETZACGVCHMUMABUBZDFVAZETZBGUNVMVNAVQBGPUOVQVNBVDGVOVD
          TVPVKEVOVDDFVBUPUQULURAVHVIVLETOCEVCKUJULUSUT $.
      $}

      caofid2.5 $e |- ( ( ph /\ x e. S ) -> ( B R x ) = C ) $.
      $( Transfer a right absorption law to the function operation.
         (Contributed by Mario Carneiro, 28-Jul-2014.) $)
      caofid2 $p |- ( ph -> ( ( A X. { B } ) oF R F ) = ( A X. { C } ) ) $=
        ( cfv wcel wfn wceq vw cv csn cxp fnconstg syl wf fvconst2g sylan eqidd
        ffn wa co ffvelrnda ralrimiva oveq2 eqeq1d rspccva syldan eqtr4d offveq
        wral ) AUACDUAUBZHQZFCDUCUDZHCEUCUDZILADJRZVECSNCDJUEUFACGHUGHCSMCGHUKU
        FAEKRZVFCSOCEKUEUFAVGVCCRZVCVEQDTNCDVCJUHUIAVIULZVDUJVJDVDFUMZEVCVFQZAV
        IVDGRZVKETZACGVCHMUNADBUBZFUMZETZBGVBVMVNAVQBGPUOVQVNBVDGVOVDTVPVKEVOVD
        DFUPUQURUIUSAVHVIVLETOCEVCKUHUIUTVA $.
    $}

    caofcom.3 $e |- ( ph -> G : A --> S ) $.
    ${
      caofcom.4 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                        ( x R y ) = ( y R x ) ) $.
      $( Transfer a commutative law to the function operation.  (Contributed by
         Mario Carneiro, 26-Jul-2014.) $)
      caofcom $p |- ( ph -> ( F oF R G ) = ( G oF R F ) ) $=
        ( vw cfv co cmpt wcel wa ffvelrnda cv cof jca caovcomg syldan mpteq2dva
        wceq feqmptd offval2 3eqtr4d ) ANDNUAZGOZUKHOZEPZQNDUMULEPZQGHEUBZPHGUP
        PANDUNUOAUKDRZULFRZUMFRZSUNUOUGAUQSURUSADFUKGKTZADFUKHLTZUCABCULUMFEMUD
        UEUFANDULUMEGHIFFJUTVAANDFGKUHZANDFHLUHZUIANDUMULEHGIFFJVAUTVCVBUIUJ $.
    $}

    ${
      caofrss.4 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                        ( x R y -> x T y ) ) $.
      $( Transfer a relation subset law to the function relation.  (Contributed
         by Mario Carneiro, 28-Jul-2014.) $)
      caofrss $p |- ( ph -> ( F oR R G -> F oR T G ) ) $=
        ( vw cv wbr wral wcel wi cofr wa ffvelrnda ralrimivva adantr wceq breq1
        cfv imbi12d breq2 rspc2va syl21anc ralimdva wfn ffn inidm eqidd ofrfval
        wf syl 3imtr4d ) AOPZHUHZVBIUHZEQZODRVCVDGQZODRHIEUAQHIGUAQAVEVFODAVBDS
        ZUBZVCFSVDFSBPZCPZEQZVIVJGQZTZCFRBFRZVEVFTZADFVBHLUCADFVBIMUCAVNVGAVMBC
        FFNUDUEVMVOVCVJEQZVCVJGQZTBCVCVDFFVIVCUFVKVPVLVQVIVCVJEUGVIVCVJGUGUIVJV
        DUFVPVEVQVFVJVDVCEUJVJVDVCGUJUIUKULUMAODDVCVDEDHIJJADFHUSHDUNLDFHUOUTZA
        DFIUSIDUNMDFIUOUTZKKDUPZVHVCUQZVHVDUQZURAODDVCVDGDHIJJVRVSKKVTWAWBURVA
        $.
    $}

    caofass.4 $e |- ( ph -> H : A --> S ) $.
    ${
      caofass.5 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
                        ( ( x R y ) T z ) = ( x O ( y P z ) ) ) $.
      $( Transfer an associative law to the function operation.  (Contributed
         by Mario Carneiro, 26-Jul-2014.) $)
      caofass $p |- ( ph ->
        ( ( F oF R G ) oF T H ) = ( F oF O ( G oF P H ) ) ) $=
        ( co vw cv cfv cmpt cof wcel wa wceq ralrimivvva adantr ffvelrnda oveq1
        wral oveq1d eqeq12d oveq2 oveq2d rspc3v syl3anc mpd mpteq2dva cvv ovexd
        wi feqmptd offval2 3eqtr4d ) AUAEUAUBZJUCZVHKUCZGTZVHLUCZITZUDUAEVIVJVL
        FTZMTZUDJKGUETZLIUETJKLFUETZMUETAUAEVMVOAVHEUFZUGZBUBZCUBZGTZDUBZITZVTW
        AWCFTZMTZUHZDHUMCHUMBHUMZVMVOUHZAWHVRAWGBCDHHHSUIUJVSVIHUFVJHUFVLHUFWHW
        IVDAEHVHJPUKZAEHVHKQUKZAEHVHLRUKZWGWIVIWAGTZWCITZVIWEMTZUHVKWCITZVIVJWC
        FTZMTZUHBCDVIVJVLHHHVTVIUHZWDWNWFWOWSWBWMWCIVTVIWAGULUNVTVIWEMULUOWAVJU
        HZWNWPWOWRWTWMVKWCIWAVJVIGUPUNWTWEWQVIMWAVJWCFULUQUOWCVLUHZWPVMWRVOWCVL
        VKIUPXAWQVNVIMWCVLVJFUPUQUOURUSUTVAAUAEVKVLIVPLNVBHOVSVIVJGVCWLAUAEVIVJ
        GJKNHHOWJWKAUAEHJPVEZAUAEHKQVEZVFAUAEHLRVEZVFAUAEVIVNMJVQNHVBOWJVSVJVLF
        VCXBAUAEVJVLFKLNHHOWKWLXCXDVFVFVG $.
    $}

    ${
      caoftrn.5 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
                        ( ( x R y /\ y T z ) -> x U z ) ) $.
      $( Transfer a transitivity law to the function relation.  (Contributed by
         Mario Carneiro, 28-Jul-2014.) $)
      caoftrn $p |- ( ph -> ( ( F oR R G /\ G oR T H ) -> F oR U H ) ) $=
        ( vw wbr cv cfv wa wral cofr wcel wi ralrimivvva adantr ffvelrnda breq1
        wceq anbi1d imbi12d breq2 anbi12d imbi1d anbi2d rspc3v syl3anc ralimdva
        mpd wf wfn ffn syl inidm eqidd ofrfval r19.26 syl6bbr 3imtr4d ) ASUAZJU
        BZVMKUBZFTZVOVMLUBZHTZUCZSEUDZVNVQITZSEUDJKFUETZKLHUETZUCZJLIUETAVSWASE
        AVMEUFZUCZBUAZCUAZFTZWHDUAZHTZUCZWGWJITZUGZDGUDCGUDBGUDZVSWAUGZAWOWEAWN
        BCDGGGRUHUIWFVNGUFVOGUFVQGUFWOWPUGAEGVMJOUJAEGVMKPUJAEGVMLQUJWNWPVNWHFT
        ZWKUCZVNWJITZUGVPVOWJHTZUCZWSUGBCDVNVOVQGGGWGVNULZWLWRWMWSXBWIWQWKWGVNW
        HFUKUMWGVNWJIUKUNWHVOULZWRXAWSXCWQVPWKWTWHVOVNFUOWHVOWJHUKUPUQWJVQULZXA
        VSWSWAXDWTVRVPWJVQVOHUOURWJVQVNIUOUNUSUTVBVAAWDVPSEUDZVRSEUDZUCVTAWBXEW
        CXFASEEVNVOFEJKMMAEGJVCJEVDOEGJVEVFZAEGKVCKEVDPEGKVEVFZNNEVGZWFVNVHZWFV
        OVHZVIASEEVOVQHEKLMMXHAEGLVCLEVDQEGLVEVFZNNXIXKWFVQVHZVIUPVPVRSEVJVKASE
        EVNVQIEJLMMXGXLNNXIXJXMVIVL $.
    $}
  $}

  ${
    $d w x y z A $.  $d w x y z F $.  $d w x y z G $.  $d w x y z ph $.
    $d w x y z H $.  $d w x y z K $.  $d w x y z O $.  $d w x y z R $.
    $d w x y z S $.  $d w x y z T $.
    caofdi.1 $e |- ( ph -> A e. V ) $.
    caofdi.2 $e |- ( ph -> F : A --> K ) $.
    caofdi.3 $e |- ( ph -> G : A --> S ) $.
    caofdi.4 $e |- ( ph -> H : A --> S ) $.
    ${
      caofdi.5 $e |- ( ( ph /\ ( x e. K /\ y e. S /\ z e. S ) ) ->
                          ( x T ( y R z ) ) = ( ( x T y ) O ( x T z ) ) ) $.
      $( Transfer a distributive law to the function operation.  (Contributed
         by Mario Carneiro, 26-Jul-2014.) $)
      caofdi $p |- ( ph ->
        ( F oF T ( G oF R H ) ) = ( ( F oF T G ) oF O ( F oF T H ) ) ) $=
        ( co vw cv cfv cmpt cof wcel wa w3a adantlr ffvelrnda caovdid mpteq2dva
        wceq cvv ovexd feqmptd offval2 3eqtr4d ) AUAEUAUBZIUCZUSJUCZUSKUCZFTZHT
        ZUDUAEUTVAHTZUTVBHTZMTZUDIJKFUETZHUEZTIJVITZIKVITZMUETAUAEVDVGAUSEUFZUG
        ZBCDUTVAVBGFHMLABUBZLUFCUBZGUFDUBZGUFUHVNVOVPFTHTVNVOHTVNVPHTMTUMVLSUIA
        ELUSIPUJZAEGUSJQUJZAEGUSKRUJZUKULAUAEUTVCHIVHNLUNOVQVMVAVBFUOAUAELIPUPZ
        AUAEVAVBFJKNGGOVRVSAUAEGJQUPZAUAEGKRUPZUQUQAUAEVEVFMVJVKNUNUNOVMUTVAHUO
        VMUTVBHUOAUAEUTVAHIJNLGOVQVRVTWAUQAUAEUTVBHIKNLGOVQVSVTWBUQUQUR $.
    $}

    ${
      caofdir.5 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. K ) ) ->
                          ( ( x R y ) T z ) = ( ( x T z ) O ( y T z ) ) ) $.
      $( Transfer a reverse distributive law to the function operation.
         (Contributed by NM, 19-Oct-2014.) $)
      caofdir $p |- ( ph ->
        ( ( G oF R H ) oF T F ) = ( ( G oF T F ) oF O ( H oF T F ) ) ) $=
        ( co vw cfv cmpt cof wcel w3a wceq adantlr ffvelrnda caovdird mpteq2dva
        cv wa cvv ovexd feqmptd offval2 3eqtr4d ) AUAEUAULZJUBZUSKUBZFTZUSIUBZH
        TZUCUAEUTVCHTZVAVCHTZMTZUCJKFUDTZIHUDZTJIVITZKIVITZMUDTAUAEVDVGAUSEUEZU
        MZBCDUTVAVCGFHMLABULZGUECULZGUEDULZLUEUFVNVOFTVPHTVNVPHTVOVPHTMTUGVLSUH
        AEGUSJQUIZAEGUSKRUIZAELUSIPUIZUJUKAUAEVBVCHVHINUNLOVMUTVAFUOVSAUAEUTVAF
        JKNGGOVQVRAUAEGJQUPZAUAEGKRUPZUQAUAELIPUPZUQAUAEVEVFMVJVKNUNUNOVMUTVCHU
        OVMVAVCHUOAUAEUTVCHJINGLOVQVSVTWBUQAUAEVAVCHKINGLOVRVSWAWBUQUQUR $.
    $}
  $}

  ${
    $d ph x y z $.  $d A x y z $.  $d B y z $.  $d I z $.  $d M x y z $.
    $d S x y $.
    caonncan.i $e |- ( ph -> I e. V ) $.
    caonncan.a $e |- ( ph -> A : I --> S ) $.
    caonncan.b $e |- ( ph -> B : I --> S ) $.
    caonncan.z $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
        ( x M ( x M y ) ) = y ) $.
    $( Transfer ~ nncan -shaped laws to vectors of numbers.  (Contributed by
       Stefan O'Rear, 27-Mar-2015.) $)
    caonncan $p |- ( ph -> ( A oF M ( A oF M B ) ) = B ) $=
      ( vz cv cfv co wcel wceq cvv cmpt cof wa wral ffvelrnda ralrimivva adantr
      id oveq1 oveq12d eqeq1d oveq2 oveq2d eqeq12d rspc2va syl21anc fvexd ovexd
      mpteq2dva feqmptd offval2 3eqtr4d ) ANGNOZDPZVDVCEPZHQZHQZUANGVEUADDEHUBZ
      QZVHQEANGVGVEAVCGRZUCZVDFRVEFRBOZVLCOZHQZHQZVMSZCFUDBFUDZVGVESZAGFVCDKUEA
      GFVCELUEAVQVJAVPBCFFMUFUGVPVRVDVDVMHQZHQZVMSBCVDVEFFVLVDSZVOVTVMWAVLVDVNV
      SHWAUHVLVDVMHUIUJUKVMVESZVTVGVMVEWBVSVFVDHVMVEVDHULUMWBUHUNUOUPUSANGVDVFH
      DVIITTJVKVCDUQZVKVDVEHURANGFDKUTZANGVDVEHDEITTJWCVKVCEUQWDANGFELUTZVAVAWE
      VB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Proper subset relation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c [C.] $.

  $( Extend class notation to include the reified proper subset relation. $)
  crpss $a class [C.] $.

  ${
    $d x y A $.  $d x y B $.
    $( Define a relation which corresponds to proper subsethood ~ df-pss on
       sets.  This allows us to use proper subsethood with general concepts
       that require relations, such as strict ordering, see ~ sorpss .
       (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    df-rpss $a |- [C.] = { <. x , y >. | x C. y } $.

    $( The proper subset relation is a relation.  (Contributed by Stefan
       O'Rear, 2-Nov-2014.) $)
    relrpss $p |- Rel [C.] $=
      ( vx vy cv wpss crpss df-rpss relopabi ) ACBCDABEABFG $.

    $( The proper subset relation on sets is the same as class proper
       subsethood.  (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    brrpssg $p |- ( B e. V -> ( A [C.] B <-> A C. B ) ) $=
      ( vx vy wcel crpss wbr wpss wa elex relrpss brrelexi anim12i adantr pssss
      cvv wss ssexg cv syl2anr jca psseq1 psseq2 df-rpss brabg ancoms pm5.21nd
      wb ) BCFZABGHZABIZBQFZAQFZJUJUMUKUNBCKZABGLMNUJULJUMUNUJUMULUOOULABRUMUNU
      JABPUOABQSUAUBUNUMUKULUIDTZETZIAUQIULDEABQQGUPAUQUCUQBAUDDEUEUFUGUH $.
  $}

  ${
    brrpss.a $e |- B e. _V $.
    $( The proper subset relation on sets is the same as class proper
       subsethood.  (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    brrpss $p |- ( A [C.] B <-> A C. B ) $=
      ( cvv wcel crpss wbr wpss wb brrpssg ax-mp ) BDEABFGABHICABDJK $.
  $}

  ${
    $d x y z A $.
    $( Every class is partially ordered by proper subsets.  (Contributed by
       Stefan O'Rear, 2-Nov-2014.) $)
    porpss $p |- [C.] Po A $=
      ( vx vy vz crpss wpo cv wbr wn wa wi wral wpss pssirr psstr brrpss notbii
      vex anbi12i imbi12i mpbir2an rgenw rgen2w df-po mpbir ) AEFBGZUFEHZIZUFCG
      ZEHZUIDGZEHZJZUFUKEHZKZJZDALZCALBALUQBCAAUPDAUPUFUFMZIZUFUIMZUIUKMZJZUFUK
      MZKZUFNUFUIUKOUHUSUOVDUGURUFUFBRPQUMVBUNVCUJUTULVAUFUICRPUIUKDRZPSUFUKVEP
      TSUAUBUCBCDAEUDUE $.

    $( Express strict ordering under proper subsets, i.e. the notion of a chain
       of sets.  (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    sorpss $p |- ( [C.] Or A <-> A. x e. A A. y e. A ( x C_ y \/ y C_ x ) ) $=
      ( cv crpss wbr weq w3o wral wpo wss wor porpss biantrur wpss sspsstri vex
      wa wo brrpss biid 3orbi123i bitr4i 2ralbii df-so 3bitr4ri ) ADZBDZEFZABGZ
      UHUGEFZHZBCIACIZCEJZUMRUGUHKUHUGKSZBCIACICELUNUMCMNUOULABCCUOUGUHOZUJUHUG
      OZHULUGUHPUIUPUJUJUKUQUGUHBQTUJUAUHUGAQTUBUCUDABCEUEUF $.
  $}

  $( Property of a chain of sets.  (Contributed by Stefan O'Rear,
     2-Nov-2014.) $)
  sorpssi $p |- ( ( [C.] Or A /\ ( B e. A /\ C e. A ) ) ->
      ( B C_ C \/ C C_ B ) ) $=
    ( crpss wor wcel wa wpss wceq w3o wss wo wbr solin wb elex ad2antll brrpssg
    cvv syl biidd ad2antrl 3orbi123d mpbid sspsstri sylibr ) ADEZBAFZCAFZGGZBCH
    ZBCIZCBHZJZBCKCBKLUJBCDMZULCBDMZJUNABCDNUJUOUKULULUPUMUJCSFZUOUKOUIUQUGUHCA
    PQBCSRTUJULUAUJBSFZUPUMOUHURUGUIBAPUBCBSRTUCUDBCUEUF $.

  $( A chain of sets is closed under binary union.  (Contributed by Mario
     Carneiro, 16-May-2015.) $)
  sorpssun $p |- ( ( [C.] Or A /\ ( B e. A /\ C e. A ) ) ->
      ( B u. C ) e. A ) $=
    ( crpss wor wcel wa wss cun simprr wb ssequn1 eleq1 sylbi syl5ibrcom simprl
    wceq ssequn2 sorpssi mpjaod ) ADEZBAFZCAFZGGZBCHZBCIZAFZCBHZUDUGUEUCUAUBUCJ
    UEUFCQUGUCKBCLUFCAMNOUDUGUHUBUAUBUCPUHUFBQUGUBKCBRUFBAMNOABCST $.

  $( A chain of sets is closed under binary intersection.  (Contributed by
     Mario Carneiro, 16-May-2015.) $)
  sorpssin $p |- ( ( [C.] Or A /\ ( B e. A /\ C e. A ) ) ->
      ( B i^i C ) e. A ) $=
    ( crpss wor wcel wa wss cin simprl wceq df-ss eleq1 sylbi syl5ibrcom simprr
    wb sseqin2 sorpssi mpjaod ) ADEZBAFZCAFZGGZBCHZBCIZAFZCBHZUDUGUEUBUAUBUCJUE
    UFBKUGUBQBCLUFBAMNOUDUGUHUCUAUBUCPUHUFCKUGUCQCBRUFCAMNOABCST $.

  ${
    $d Y u v $.
    $( In a chain of sets, a maximal element is the union of the chain.
       (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    sorpssuni $p |- ( [C.] Or Y -> ( E. u e. Y A. v e. Y -. u C. v <->
        U. Y e. Y ) ) $=
      ( crpss wor cv wpss wn wral wrex cuni wcel w3a wss wa sorpssi syl elssuni
      wo wi anassrs sspss orel1 eqimss2 syl6com sylbi ax-1 jaoi ralimdva 3impia
      weq unissb sylibr 3ad2ant2 eqssd simp2 rexlimdv3a ssnpss rgen wceq psseq1
      eqeltrd notbid ralbidv rspcev mpan2 impbid1 ) CDEZBFZAFZGZHZACIZBCJZCKZCL
      ZVHVMVPBCVHVICLZVMMZVOVICVRVOVIVRVJVINZACIZVOVINVHVQVMVTVHVQOZVLVSACWAVJC
      LZOVIVJNZVSSZVLVSTZVHVQWBWDCVIVJPUAWCWEVSWCVKBAUKZSZWEVIVJUBVLWGWFVSVKWFU
      CVJVIUDUEUFVSVLUGUHQUIUJACVIULUMVQVHVIVONVMVICRUNUOVHVQVMUPVBUQVPVOVJGZHZ
      ACIZVNWIACWBVJVONWIVJCRVJVOURQUSVMWJBVOCVIVOUTZVLWIACWKVKWHVIVOVJVAVCVDVE
      VFVG $.

    $( In a chain of sets, a minimal element is the intersection of the chain.
       (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    sorpssint $p |- ( [C.] Or Y -> ( E. u e. Y A. v e. Y -. v C. u <->
        |^| Y e. Y ) ) $=
      ( crpss wor cv wpss wn wral wrex cint wcel w3a wss intss1 3ad2ant2 wa syl
      wo wi sorpssi anassrs ax-1 weq sspss orel1 eqimss2 syl6com sylbi ralimdva
      jaoi 3impia ssint sylibr eqssd eqeltrd rexlimdv3a ssnpss rgen wceq psseq2
      simp2 notbid ralbidv rspcev mpan2 impbid1 ) CDEZAFZBFZGZHZACIZBCJZCKZCLZV
      HVMVPBCVHVJCLZVMMZVOVJCVRVOVJVQVHVOVJNVMVJCOPVRVJVINZACIZVJVONVHVQVMVTVHV
      QQZVLVSACWAVICLZQVSVIVJNZSZVLVSTZVHVQWBWDCVJVIUAUBVSWEWCVSVLUCWCVKABUDZSZ
      WEVIVJUEVLWGWFVSVKWFUFVJVIUGUHUIUKRUJULAVJCUMUNUOVHVQVMVBUPUQVPVIVOGZHZAC
      IZVNWIACWBVOVINWIVICOVOVIURRUSVMWJBVOCVJVOUTZVLWIACWKVKWHVJVOVIVAVCVDVEVF
      VG $.
  $}

  ${
    $d Y x y $.  $d A x y $.  $d Y u $.  $d A u $.  $d u x y $.
    $( The componentwise complement of a chain of sets is also a chain of sets.
       (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    sorpsscmpl $p |- ( [C.] Or Y -> [C.] Or { u e. ~P A | ( A \ u ) e. Y } ) $=
      ( vx vy crpss wor cv wss wo cdif wcel wral wa difeq2 eleq1d elrab syl2anb
      weq wi cpw crab biimpi sorpssi expcom wceq selpw dfss4 bitri sscon sseq12
      an4 syl5ib wb ancoms orim12d com12 orcoms syl6 impd syl5 ralrimivv sorpss
      com3l sylibr ) CFGZDHZEHZIZVHVGIZJZEBAHZKZCLZABUAZUBZMDVPMVPFGVFVKDEVPVPV
      GVPLZVHVPLZNVGVOLZVHVOLZNZBVGKZCLZBVHKZCLZNZNZVFVKVQVSWCNZVTWENZWGVRVNWCA
      VGVOADSVMWBCVLVGBOPQVNWEAVHVOAESVMWDCVLVHBOPQWHWINWGVSWCVTWEULUCRVFWAWFVK
      WFVFWAVKWFVFWBWDIZWDWBIZJZWAVKTZVFWFWLCWBWDUDUEWKWJWMWAWKWJJZVKVSBWBKZVGU
      FZBWDKZVHUFZWNVKTVTVSVGBIWPDBUGVGBUHUIVTVHBIWREBUGVHBUHUIWPWRNZWKVIWJVJWK
      WOWQIWSVIWDWBBUJWOVGWQVHUKUMWJWQWOIZWSVJWBWDBUJWRWPWTVJUNWQVHWOVGUKUOUMUP
      RUQURUSVDUTVAVBDEVPVCVE $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  ZF Set Theory - add the Axiom of Union
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Union
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d w x y z $.
    $( Axiom of Union.  An axiom of Zermelo-Fraenkel set theory.  It states
       that a set ` y ` exists that includes the union of a given set ` x `
       i.e. the collection of all members of the members of ` x ` .  The
       variant ~ axun2 states that the union itself exists.  A version with the
       standard abbreviation for union is ~ uniex2 .  A version using class
       notation is ~ uniex .

       The union of a class ~ df-uni should not be confused with the union of
       two classes ~ df-un .  Their relationship is shown in ~ unipr .
       (Contributed by NM, 23-Dec-1993.) $)
    ax-un $a |- E. y A. z ( E. w ( z e. w /\ w e. x ) -> z e. y ) $.

    $( Axiom of Union expressed with the fewest number of different variables.
       (Contributed by NM, 14-Aug-2003.) $)
    zfun $p |- E. x A. y ( E. x ( y e. x /\ x e. z ) -> y e. x ) $=
      ( vw wel wa wex wi wal ax-un weq elequ2 elequ1 anbi12d cbvexv albii exbii
      imbi1i mpbi ) BDEZDCEZFZDGZBAEZHZBIZAGUDACEZFZAGZUDHZBIZAGCABDJUFUKAUEUJB
      UCUIUDUBUHDADAKTUDUAUGDABLDACMNORPQS $.

    $( A variant of the Axiom of Union ~ ax-un .  For any set ` x ` , there
       exists a set ` y ` whose members are exactly the members of the members
       of ` x ` i.e. the union of ` x ` .  Axiom Union of [BellMachover]
       p. 466.  (Contributed by NM, 4-Jun-2006.) $)
    axun2 $p |- E. y A. z ( z e. y <-> E. w ( z e. w /\ w e. x ) ) $=
      ( wel wa wex ax-un bm1.3ii ) CDEDAEFDGBCABCDHI $.

    $( The Axiom of Union using the standard abbreviation for union.  Given any
       set ` x ` , its union ` y ` exists.  (Contributed by NM, 4-Jun-2006.) $)
    uniex2 $p |- E. y y = U. x $=
      ( vz cv cuni wceq wex wcel wb wi wa zfun eluni imbi1i albii exbii bm1.3ii
      wal mpbir dfcleq ) BDZADZEZFZBGCDZUAHZUEUCHZICRZBGUGBCUGUFJZCRZBGUFUAUBHK
      BGZUFJZCRZBGBCALUJUMBUIULCUGUKUFBUEUBMNOPSQUDUHBCUAUCTPS $.
  $}

  ${
    $d x y A $.
    uniex.1 $e |- A e. _V $.
    $( The Axiom of Union in class notation.  This says that if ` A ` is a set
       i.e. ` A e. _V ` (see ~ isset ), then the union of ` A ` is also a set.
       Same as Axiom 3 of [TakeutiZaring] p. 16.  (Contributed by NM,
       11-Aug-1993.) $)
    uniex $p |- U. A e. _V $=
      ( vx vy cv cuni cvv wcel wceq unieq eleq1d uniex2 issetri vtocl ) CEZFZGH
      AFZGHCABOAIPQGOAJKDPCDLMN $.
  $}

  $( The union of a setvar is a set.  (Contributed by BJ, 3-May-2021.) $)
  vuniex $p |- U. x e. _V $=
    ( cv vex uniex ) ABACD $.

  ${
    $d x A $.
    $( The ZF Axiom of Union in class notation, in the form of a theorem
       instead of an inference.  We use the antecedent ` A e. V ` instead of
       ` A e. _V ` to make the theorem more general and thus shorten some
       proofs; obviously the universal class constant ` _V ` is one possible
       substitution for class variable ` V ` .  (Contributed by NM,
       25-Nov-1994.) $)
    uniexg $p |- ( A e. V -> U. A e. _V ) $=
      ( vx cv cuni cvv wcel wceq unieq eleq1d vuniex vtoclg ) CDZEZFGAEZFGCABMA
      HNOFMAIJCKL $.
  $}

  ${
    unex.1 $e |- A e. _V $.
    unex.2 $e |- B e. _V $.
    $( The union of two sets is a set.  Corollary 5.8 of [TakeutiZaring] p. 16.
       (Contributed by NM, 1-Jul-1994.) $)
    unex $p |- ( A u. B ) e. _V $=
      ( cpr cuni cun cvv unipr prex uniex eqeltrri ) ABEZFABGHABCDIMABJKL $.
  $}

  $( An unordered triple of classes exists.  (Contributed by NM,
     10-Apr-1994.) $)
  tpex $p |- { A , B , C } e. _V $=
    ( ctp cpr csn cun cvv df-tp prex snex unex eqeltri ) ABCDABEZCFZGHABCINOABJ
    CKLM $.

  ${
    $d x y A $.  $d x y B $.
    $( Existence of union is equivalent to existence of its components.
       (Contributed by NM, 11-Jun-1998.) $)
    unexb $p |- ( ( A e. _V /\ B e. _V ) <-> ( A u. B ) e. _V ) $=
      ( vx vy cvv wcel wa cun cv wceq uneq1 eleq1d uneq2 vex unex vtocl2g ssun1
      wss ssexg mpan ssun2 jca impbii ) AEFZBEFZGABHZEFZCIZDIZHZEFAUIHZEFUGCDAB
      EEUHAJUJUKEUHAUIKLUIBJUKUFEUIBAMLUHUICNDNOPUGUDUEAUFRUGUDABQAUFESTBUFRUGU
      EBAUABUFESTUBUC $.
  $}

  $( A union of two sets is a set.  Corollary 5.8 of [TakeutiZaring] p. 16.
     (Contributed by NM, 18-Sep-2006.) $)
  unexg $p |- ( ( A e. V /\ B e. W ) -> ( A u. B ) e. _V ) $=
    ( wcel cvv cun elex wa unexb biimpi syl2an ) ACEAFEZBFEZABGFEZBDEACHBDHMNIO
    ABJKL $.

  $( The Cartesian product of two sets is a set.  Proposition 6.2 of
     [TakeutiZaring] p. 23.  See also ~ xpexgALT .  (Contributed by NM,
     14-Aug-1994.) $)
  xpexg $p |- ( ( A e. V /\ B e. W ) -> ( A X. B ) e. _V ) $=
    ( wcel wa cxp cun cpw wss cvv xpsspw unexg pwexg 3syl ssexg sylancr ) ACEBD
    EFZABGZABHZIZIZJUBKEZSKEABLRTKEUAKEUCABCDMTKNUAKNOSUBKPQ $.

  $( The Cartesian product of three sets is a set.  (Contributed by Alexander
     van der Vekens, 21-Feb-2018.) $)
  3xpexg $p |- ( V e. W -> ( ( V X. V ) X. V ) e. _V ) $=
    ( cxp cvv wcel xpexg anidms mpancom ) AACZDEZABEZIACDEKJAABBFGIADBFH $.

  ${
    xpex.1 $e |- A e. _V $.
    xpex.2 $e |- B e. _V $.
    $( The Cartesian product of two sets is a set.  Proposition 6.2 of
       [TakeutiZaring] p. 23.  (Contributed by NM, 14-Aug-1994.) $)
    xpex $p |- ( A X. B ) e. _V $=
      ( cvv wcel cxp xpexg mp2an ) AEFBEFABGEFCDABEEHI $.
  $}

  $( The Cartesian square of a set is a set.  (Contributed by AV,
     13-Jan-2020.) $)
  sqxpexg $p |- ( A e. V -> ( A X. A ) e. _V ) $=
    ( wcel cxp cvv xpexg anidms ) ABCAADECAABBFG $.

  ${
    $d A x y $.  $d F y $.
    $( Sufficient condition for a class abstraction to be a proper class.  The
       class ` F ` can be thought of as an expression in ` x ` and the
       abstraction appearing in the statement as the class of values ` F ` as
       ` x ` varies through ` A ` .  Assuming the antecedents, if that class is
       a set, then so is the "domain" ` A ` .  The converse holds without
       antecedent, see ~ abrexexg .  Note that the second antecedent
       ` A. x e. A x e. F ` cannot be translated to ` A C_ F ` since ` F ` may
       depend on ` x ` .  In applications, one may take ` F = { x } ` or
       ` F = ~P x ` (see ~ snnex and ~ pwnex respectively, proved from
       ~ abnex , which is a consequence of ~ abnexg with ` A = _V ` ).
       (Contributed by BJ, 2-Dec-2021.) $)
    abnexg $p |- ( A. x e. A ( F e. V /\ x e. F ) ->
                               ( { y | E. x e. A y = F } e. W -> A e. _V ) ) $=
      ( cv wceq wrex cab wcel cuni cvv wa wral ciun wi ralimi syl wss simpl csn
      uniexg dfiun2g eleq1d biimprd simpr iunid snssi ss2iun syl5eqssr ssexg ex
      3syl syld syl5 ) BGDHACIBJZFKUQLZMKZDEKZAGZDKZNZACOZCMKZUQFUCVDUSACDPZMKZ
      VEVDUTACOZUSVGQVCUTACUTVBUARVHVGUSVHVFURMABCDEUDUEUFSVDVBACOZCVFTZVGVEQVC
      VBACUTVBUGRVICACVAUBZPZVFACUHVIVKDTZACOVLVFTVBVMACVADUIRACVKDUJSUKVJVGVEC
      VFMULUMUNUOUP $.
  $}

  ${
    $d x y $.  $d F y $.
    $( Sufficient condition for a class abstraction to be a proper class.
       Lemma for ~ snnex and ~ pwnex .  See the comment of ~ abnexg .
       (Contributed by BJ, 2-May-2021.) $)
    abnex $p |- ( A. x ( F e. V /\ x e. F ) -> -. { y | E. x y = F } e. _V ) $=
      ( wcel cv wa wal wceq wex cab cvv vprc wral wrex alral rexv bicomi eleq1i
      abbii biimpi abnexg syl2im mtoi ) CDEAFCEGZAHZBFCIZAJZBKZLEZLLEZMUFUEALNU
      JUGALOZBKZLEZUKUEALPUJUNUIUMLUHULBULUHUGAQRTSUAABLCDLUBUCUD $.
  $}

  ${
    $d x y $.
    $( The class of all singletons is a proper class.  See also ~ pwnex .
       (Contributed by NM, 10-Oct-2008.)  (Proof shortened by Eric Schmidt,
       7-Dec-2008.)  (Proof shortened by BJ, 5-Dec-2021.) $)
    snnex $p |- { x | E. y x = { y } } e/ _V $=
      ( cv csn cvv wcel wa wceq wex cab wnel wal abnex df-nel sylibr snex vsnid
      wn pm3.2i mpg ) BCZDZEFZUAUBFZGZACUBHBIAJZEKZBUEBLUFEFRUGBAUBEMUFENOUCUDU
      APBQST $.
  $}

  ${
    $d x y z $.
    $( Obsolete proof of ~ snnex as of 5-Dec-2021.  (Contributed by NM,
       10-Oct-2008.)  (Proof shortened by Eric Schmidt, 7-Dec-2008.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    snnexOLD $p |- { x | E. y x = { y } } e/ _V $=
      ( vz cv csn wceq wex cab cvv wcel cuni vprc wa vsnid ax6ev equcoms eximii
      sneq snex eleq2 eqeq1 exbidv anbi12d spcev mp2an eluniab mpbir vex eleq1i
      2th eqriv mtbir uniexg mto nelir ) ADZBDZEZFZBGZAHZIVAIJVAKZIJZVCIIJLVBII
      CVBICDZVBJZVDIJVEVDUPJZUTMZAGZVDVDEZJZVIURFZBGZVHCNUQVDFVKBBCOVKCBVDUQRPQ
      VGVJVLMAVIVDSUPVIFZVFVJUTVLUPVIVDTVMUSVKBUPVIURUAUBUCUDUEUTAVDUFUGCUHUJUK
      UIULVAIUMUNUO $.
  $}

  ${
    $d x y $.
    $( The class of all power sets is a proper class.  See also ~ snnex .
       (Contributed by BJ, 2-May-2021.) $)
    pwnex $p |- { x | E. y x = ~P y } e/ _V $=
      ( cv cpw cvv wcel wa wceq wex cab wnel wal abnex df-nel sylibr vpwex pwid
      wn vex pm3.2i mpg ) BCZDZEFZUBUCFZGZACUCHBIAJZEKZBUFBLUGEFRUHBAUCEMUGENOU
      DUEBPUBBSQTUA $.
  $}

  $( If the subtrahend of a class difference exists, then the minuend exists
     iff the difference exists.  (Contributed by NM, 12-Nov-2003.)  (Proof
     shortened by Andrew Salmon, 12-Aug-2011.) $)
  difex2 $p |- ( B e. C -> ( A e. _V <-> ( A \ B ) e. _V ) ) $=
    ( wcel cvv cdif difexg wa cun ssun2 uncom undif2 eqtr2i sseqtri unexg ssexg
    wss sylancr expcom impbid2 ) BCDZAEDZABFZEDZABEGUDUAUBUDUAHAUCBIZQUEEDUBABA
    IZUEABJUEBUCIUFUCBKBALMNUCBECOAUEEPRST $.

  $( If the difference of a class and a singleton is a set, the class itself is
     a set.  (Contributed by AV, 15-Jan-2019.) $)
  difsnexi $p |- ( ( N \ { K } ) e. _V -> N e. _V ) $=
    ( wcel csn cdif cvv wi wa simpr snex unexg sylancl wb difsnid eqcomd eleq1d
    cun adantr mpbird ex wn difsn biimpd pm2.61i ) ABCZBADZEZFCZBFCZGUEUHUIUEUH
    HZUIUGUFQZFCZUJUHUFFCULUEUHIAJUGUFFFKLUEUIULMUHUEBUKFUEUKBBANOPRSTUEUAZUHUI
    UMUGBFABUBPUCUD $.

  ${
    $d A x y v z $.  $d A x y u z $.
    $( Expression for double union that moves union into a class builder.
       (Contributed by FL, 28-May-2007.) $)
    uniuni $p |- U. U. A = U. { x | E. y ( x = U. y /\ y e. A ) } $=
      ( vz vu vv wel cv cuni wcel wex cab wceq eluni anbi2i exbii 19.42v bicomi
      wa 3bitri excom anass ancom bitr3i 2exbii exdistr ceqsexv exancom 3bitr2i
      vuniex eleq2 bitri vex eqeq1 anbi1d exbidv elab abbii df-uni 3eqtr4i ) DE
      GZEHZCIZJZSZEKZDLDFGZFHZAHZBHZIZMZVJCJZSZBKZALZJZSZFKZDLVCIVPIVFVSDVFVAEB
      GZVMSZBKZSZEKZVMDHZVKJZSZBKZVSVEWCEVDWBVABVBCNOPWDVAWASZBKZEKZVMVAVTSZEKZ
      SZBKZWHWCWJEWJWCVAWABQRPWKWIEKBKVMWLSZEKBKWOWIEBUAWIWPBEWIWLVMSWPVAVTVMUB
      WLVMUCUDUEVMWLBEUFTWNWGBWMWFVMWFWMEWEVJNROPTWHVGVHVKMZVMSZSZFKZBKWSBKFKZV
      SWGWTBWGVMVGWQSZFKZSVMXBSZFKWTWFXCVMWFWQVGSFKXCVGWFFVKBUJVHVKWEUKUGWQVGFU
      HUDOVMXBFQXDWSFXDXBVMSWSVMXBUCVGWQVMUBULPUIPWSBFUAXAVGWRBKZSZFKVSVGWRFBUF
      XFVRFXEVQVGVQXEVOXEAVHFUMVIVHMZVNWRBXGVLWQVMVIVHVKUNUOUPUQROPULTTURDEVCUS
      DFVPUSUT $.
  $}

  $( Converse of the Axiom of Union.  Note that it does not require ~ ax-un .
     (Contributed by NM, 11-Nov-2003.) $)
  uniexr $p |- ( U. A e. V -> A e. _V ) $=
    ( cuni wcel cpw wss cvv pwuni pwexg ssexg sylancr ) ACZBDALEZFMGDAGDAHLBIAM
    GJK $.

  $( The Axiom of Union and its converse.  A class is a set iff its union is a
     set.  (Contributed by NM, 11-Nov-2003.) $)
  uniexb $p |- ( A e. _V <-> U. A e. _V ) $=
    ( cvv wcel cuni uniexg uniexr impbii ) ABCADBCABEABFG $.

  $( Converse of the Axiom of Power Sets.  Note that it does not require
     ~ ax-pow .  (Contributed by NM, 11-Nov-2003.) $)
  pwexr $p |- ( ~P A e. V -> A e. _V ) $=
    ( cpw wcel cuni cvv unipw uniexg syl5eqelr ) ACZBDAJEFAGJBHI $.

  $( The Axiom of Power Sets and its converse.  A class is a set iff its power
     class is a set.  (Contributed by NM, 11-Nov-2003.) $)
  pwexb $p |- ( A e. _V <-> ~P A e. _V ) $=
    ( cvv wcel cpw pwexg pwexr impbii ) ABCADBCABEABFG $.

  ${
    eldifpw.1 $e |- C e. _V $.
    $( Membership in a power class difference.  (Contributed by NM,
       25-Mar-2007.) $)
    eldifpw $p |- ( ( A e. ~P B /\ -. C C_ B ) ->
                   ( A u. C ) e. ( ~P ( B u. C ) \ ~P B ) ) $=
      ( cpw wcel wss wn wa cun elpwi unss1 cvv wb unexg mpan2 elpwg syl syl5ibr
      cdif mpd unssbd con3i anim12i eldif sylibr ) ABEZFZCBGZHZIACJZBCJZEZFZUKU
      GFZHZIUKUMUGTFUHUNUJUPUHABGZUNABKUQUNUHUKULGZABCLUHUKMFZUNURNUHCMFUSDACUG
      MOPUKULMQRSUAUOUIUOACBUKBKUBUCUDUKUMUGUEUF $.

    $( Membership in the power class of a union.  (Contributed by NM,
       26-Mar-2007.) $)
    elpwun $p |- ( A e. ~P ( B u. C ) <-> ( A \ C ) e. ~P B ) $=
      ( cun cpw wcel cvv cdif wb difex2 ax-mp sylibr wss elpwg difexg syl uncom
      elex sseq2i ssundif bitri syl6rbbr bitrd pm5.21nii ) ABCEZFZGZAHGZACIZBFZ
      GZAUGSULUJHGZUIUJUKSCHGUIUMJDACHKLMUIUHAUFNZULAUFHOUIULUJBNZUNUIUMULUOJAC
      HPUJBHOQUNACBEZNUOUFUPABCRTACBUAUBUCUDUE $.
  $}

  ${
    $d x y A $.
    iunpw.1 $e |- A e. _V $.
    $( An indexed union of a power class in terms of the power class of the
       union of its index.  Part of Exercise 24(b) of [Enderton] p. 33.
       (Contributed by NM, 29-Nov-2003.) $)
    iunpw $p |- ( E. x e. A x = U. A <-> ~P U. A = U_ x e. A ~P x ) $=
      ( vy cv cuni wceq wrex cpw ciun wss wcel sseq2 biimprcd com12 ssiun selpw
      reximdv eliun wa uniiun syl6sseqr impbid1 rexbii bitri 3bitr4g eqrdv ssid
      uniex elpw eleq2 syl5bbr mpbii sylib elssuni elpwi anim12i eqss sylibr ex
      reximia syl impbii ) AEZBFZGZABHZVEIZABVDIZJZGZVGDVHVJVGDEZVEKZVLVDKZABHZ
      VLVHLVLVJLZVGVMVOVMVGVOVMVFVNABVFVNVMVDVEVLMNROVOVLABVDJVEABVDVLPABUAUBUC
      DVEQVPVLVILZABHVOAVLBVISVQVNABDVDQUDUEUFUGVKVEVILZABHZVGVKVEVJLZVSVKVEVEK
      ZVTVEUHWAVEVHLVKVTVEVEBCUIUJVHVJVEUKULUMAVEBVISUNVRVFABVDBLZVRVFWBVRTVDVE
      KZVEVDKZTVFWBWCVRWDVDBUOVEVDUPUQVDVEURUSUTVAVBVC $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y R $.
    $( A well-founded relation has no 3-cycle loops.  Special case of
       Proposition 6.23 of [TakeutiZaring] p. 30.  (Contributed by NM,
       10-Apr-1994.)  (Revised by Mario Carneiro, 22-Jun-2015.) $)
    fr3nr $p |- ( ( R Fr A /\ ( B e. A /\ C e. A /\ D e. A ) ) ->
                -. ( B R C /\ C R D /\ D R B ) ) $=
      ( vy vx wcel w3a wbr wn wral wss csn wb wceq breq2 notbid ralbidv syl wfr
      wa w3o cv ctp wrex cvv c0 wne a1i simpl cpr cun df-tp simpr1 simpr2 prssi
      tpex syl2anc simpr3 snssd unssd syl5eqss tpnzd fri syl22anc rextpg adantl
      mpbid wi snsstp3 snssg mpbiri breq1 rspcv snsstp1 3orim123d 3ianor sylibr
      snsstp2 mpd 3anrot sylnib ) AEUAZBAHZCAHZDAHZIZUBZDBEJZBCEJZCDEJZIZWKWLWJ
      IWIWJKZWKKZWLKZUCZWMKWIFUDZBEJZKZFBCDUEZLZWRCEJZKZFXALZWRDEJZKZFXALZUCZWQ
      WIWRGUDZEJZKZFXALZGXAUFZXIWIXAUGHZWDXAAMXAUHUIXNXOWIBCDURUJWDWHUKWIXABCUL
      ZDNZUMABCDUNWIXPXQAWIWEWFXPAMWDWEWFWGUOZWDWEWFWGUPZBCAUQUSWIDAWDWEWFWGUTZ
      VAVBVCWIBCDAXRVDGFAXAUGEVEVFWHXNXIOWDXMXBXEXHGBCDAAAXJBPZXLWTFXAYAXKWSXJB
      WREQRSXJCPZXLXDFXAYBXKXCXJCWREQRSXJDPZXLXGFXAYCXKXFXJDWREQRSVGVHVIWIXBWNX
      EWOXHWPWIDXAHZXBWNVJWIYDXQXAMZBCDVKWIWGYDYEOXTDXAAVLTVMWTWNFDXAWRDPWSWJWR
      DBEVNRVOTWIBXAHZXEWOVJWIYFBNXAMZBCDVPWIWEYFYGOXRBXAAVLTVMXDWOFBXAWRBPXCWK
      WRBCEVNRVOTWICXAHZXHWPVJWIYHCNXAMZBCDVTWIWFYHYIOXSCXAAVLTVMXGWPFCXAWRCPXF
      WLWRCDEVNRVOTVQWAWJWKWLVRVSWJWKWLWBWC $.
  $}

  $( A set well-founded by epsilon contains no 3-cycle loops.  (Contributed by
     NM, 19-Apr-1994.)  (Revised by Mario Carneiro, 22-Jun-2015.) $)
  epne3 $p |- ( ( _E Fr A /\ ( B e. A /\ C e. A /\ D e. A ) ) ->
                -. ( B e. C /\ C e. D /\ D e. B ) ) $=
    ( cep wfr wcel w3a wa wbr fr3nr wb epelg 3ad2ant2 3ad2ant3 3anbi123d adantl
    3ad2ant1 mtbid ) AEFZBAGZCAGZDAGZHZIBCEJZCDEJZDBEJZHZBCGZCDGZDBGZHZABCDEKUD
    UHULLTUDUEUIUFUJUGUKUBUAUEUILUCBCAMNUCUAUFUJLUBCDAMOUAUBUGUKLUCDBAMRPQS $.

  ${
    $d x y z R $.  $d x y z A $.
    $( Alternate definition of well-ordering.  Definition 6.24(2) of
       [TakeutiZaring] p. 30.  (Contributed by NM, 16-Mar-1997.)  (Proof
       shortened by Andrew Salmon, 12-Aug-2011.) $)
    dfwe2 $p |- ( R We A <-> ( R Fr A /\ A. x e. A A. y e. A
                ( x R y \/ x = y \/ y R x ) ) ) $=
      ( vz wa cv wbr weq w3o wral wn wi wcel w3a wal breq2 r3al 3imtr4g ralbii
      wwe wfr wor df-we df-so simpr ax-1 fr2nr 3adantr3 anbi2d notbid syl5ibcom
      wpo pm2.21 syl6 fr3nr df-3an biimpri ancoms nsyl pm2.21d expd 3jaod frirr
      a1i 3ad2antr1 jctild ex a2d alimdv 2alimdv ralidm equequ2 breq1 3orbi123d
      cbvralv bitr3i df-po ancrd impbid2 syl5bb pm5.32i bitri ) CDUACDUBZCDUCZF
      WDAGZBGZDHZABIZWGWFDHZJZBCKZACKZFCDUDWDWEWMWECDUMZWMFZWDWMABCDUEWDWOWMWNW
      MUFWDWMWNWDWFEGZDHZAEIZWPWFDHZJZECKZBCKZACKZWFWFDHLZWHWGWPDHZFZWQMZFZECKB
      CKACKZWMWNWDWFCNZWGCNZWPCNZOZWTMZEPZBPAPXMXHMZEPZBPAPXCXIWDXOXQABWDXNXPEW
      DXMWTXHWDXMWTXHMWDXMFZWTXGXDXRWQXGWRWSWQXGMXRWQXFUGVEXRWRXFLZXGXRWHWJFZLZ
      WRXSWDXJXKYAXLCWFWGDUHUIWRXTXFWRWJXEWHWFWPWGDQUJUKULXFWQUNUOXRWSXFWQXRWSX
      FFZWQXRWHXEWSOZYBCWFWGWPDUPXFWSYCYCXFWSFWHXEWSUQURUSUTVAVBVCWDXKXJXDXLCWF
      DVDVFVGVHVIVJVKWTABECCCRXHABECCCRSWLXBACWLWLBCKXBWKBCVLWLXABCWKWTBECBEIWH
      WQWIWRWJWSWGWPWFDQBEAVMWGWPWFDVNVOVPTVQTABECDVRSVSVTWAWBWC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordinals (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    $( The class of all ordinal numbers is ordinal.  Proposition 7.12 of
       [TakeutiZaring] p. 38, but without using the Axiom of Regularity.
       (Contributed by NM, 17-May-1994.) $)
    ordon $p |- Ord On $=
      ( vx vy con0 word wtr cep wwe tron wfr cv wbr weq wral onfr wcel eloni wa
      w3o epel mpbir2an ordtri3or 3orbi123i sylibr syl2an rgen2a dfwe2 df-ord
      biid ) CDCECFGZHUICFIAJZBJZFKZABLZUKUJFKZRZBCMACMNUOABCUJCOUJDZUKDZUOUKCO
      UJPUKPUPUQQUJUKOZUMUKUJOZRUOUJUKUAULURUMUMUNUSABSUMUHBASUBUCUDUEABCFUFTCU
      GT $.
  $}

  $( The epsilon relation well-orders the class of ordinal numbers.
     Proposition 4.8(g) of [Mendelson] p. 244.  (Contributed by NM,
     1-Nov-2003.) $)
  epweon $p |- _E We On $=
    ( con0 word cep wwe ordon ordwe ax-mp ) ABACDEAFG $.

  $( No set contains all ordinal numbers.  Proposition 7.13 of [TakeutiZaring]
     p. 38, but without using the Axiom of Regularity.  This is also known as
     the Burali-Forti paradox (remark in [Enderton] p. 194).  In 1897, Cesare
     Burali-Forti noticed that since the "set" of all ordinal numbers is an
     ordinal class ( ~ ordon ), it must be both an element of the set of all
     ordinal numbers yet greater than every such element.  ZF set theory
     resolves this paradox by not allowing the class of all ordinal numbers to
     be a set (so instead it is a proper class).  Here we prove the denial of
     its existence.  (Contributed by NM, 18-May-1994.) $)
  onprc $p |- -. On e. _V $=
    ( con0 cvv wcel word wn ordon ordirr ax-mp elong mpbiri mto ) ABCZAACZADZME
    FAGHLMNFABIJK $.

  ${
    $d x y A $.
    $( The union of a class of ordinal numbers is ordinal.  Proposition 7.19 of
       [TakeutiZaring] p. 40.  (Contributed by NM, 30-May-1994.)  (Proof
       shortened by Andrew Salmon, 12-Aug-2011.) $)
    ssorduni $p |- ( A C_ On -> Ord U. A ) $=
      ( vx vy con0 wss cuni wtr word cv wral wcel wrex eluni2 wa wi ssel onelss
      syl6 rexlimdv syl5bi anc2r syl ssuni syl8 ralrimiv dftr3 sylibr onelon ex
      ssrdv ordon trssord 3exp mpii sylc ) ADEZAFZGZUQDEZUQHZUPBIZUQEZBUQJURUPV
      BBUQVAUQKZVACIZKZCALZUPVBCVAAMZUPVEVBCAUPVDAKZVEVAVDEZVHNZVBUPVHVEVIOZOVH
      VEVJOOUPVHVDDKZVKADVDPZVDVAQRVHVEVIUAUBVAVDAUCUDSTUEBUQUFUGUPBUQDVCVFUPVA
      DKZVGUPVEVNCAUPVHVLVEVNOVMVLVEVNVDVAUHUIRSTUJURUSDHZUTUKURUSVOUTUQDULUMUN
      UO $.
  $}

  $( The union of a set of ordinal numbers is an ordinal number.  Theorem 9 of
     [Suppes] p. 132.  (Contributed by NM, 1-Nov-2003.) $)
  ssonuni $p |- ( A e. V -> ( A C_ On -> U. A e. On ) ) $=
    ( con0 wss cuni wcel word ssorduni cvv wb uniexg elong syl syl5ibr ) ACDAEZ
    CFZABFZOGZAHQOIFPRJABKOILMN $.

  ${
    ssonuni.1 $e |- A e. _V $.
    $( The union of a set of ordinal numbers is an ordinal number.  Corollary
       7N(d) of [Enderton] p. 193.  (Contributed by NM, 20-Sep-2003.) $)
    ssonunii $p |- ( A C_ On -> U. A e. On ) $=
      ( cvv wcel con0 wss cuni wi ssonuni ax-mp ) ACDAEFAGEDHBACIJ $.
  $}

  $( A way to express the ordinal property of a class in terms of the class of
     ordinal numbers.  Corollary 7.14 of [TakeutiZaring] p. 38 and its
     converse.  (Contributed by NM, 1-Jun-2003.) $)
  ordeleqon $p |- ( Ord A <-> ( A e. On \/ A = On ) ) $=
    ( word con0 wcel wceq wo cvv onprc elex mto w3o ordon ordtri3or mpan2 sylib
    df-3or ord mt3i eloni ordeq mpbiri jaoi impbii ) ABZACDZACEZFZUDUGCADZUHCGD
    HCAIJUDUGUHUDUEUFUHKZUGUHFUDCBZUILACMNUEUFUHPOQRUEUDUFASUFUDUJLACTUAUBUC $.

  $( Any ordinal class is a subclass of the class of ordinal numbers.
     Corollary 7.15 of [TakeutiZaring] p. 38.  (Contributed by NM,
     18-May-1994.)  (Proof shortened by Andrew Salmon, 12-Aug-2011.) $)
  ordsson $p |- ( Ord A -> A C_ On ) $=
    ( word con0 wss ordon wa wcel wceq ordeleqon biimpi adantr ordsseleq mpbird
    wo mpan2 ) ABZCBZACDZEPQFRACGACHNZPSQPSAIJKACLMO $.

  $( An ordinal number is a subset of the class of ordinal numbers.
     (Contributed by NM, 5-Jun-1994.) $)
  onss $p |- ( A e. On -> A C_ On ) $=
    ( con0 wcel word wss eloni ordsson syl ) ABCADABEAFAGH $.

  $( For an ordinal, the predecessor under ` _E ` and ` On ` is an identity
     relationship.  (Contributed by Scott Fenton, 27-Mar-2011.) $)
  predon $p |- ( A e. On -> Pred ( _E , On , A ) = A ) $=
    ( con0 wcel cep cpred cin predep wss wceq onss sseqin2 sylib eqtrd ) ABCZBD
    AEBAFZABBAGNABHOAIAJABKLM $.

  $( Two ways of saying a class of ordinals is unbounded.  (Contributed by
     Mario Carneiro, 8-Jun-2013.) $)
  ssonprc $p |- ( A C_ On -> ( A e/ _V <-> U. A = On ) ) $=
    ( cvv wnel wcel wn con0 wss cuni wceq df-nel word ssorduni ordeleqon orcomd
    wo sylib ord uniexr syl6 con1d onprc uniexg eleq1 syl5ib impbid1 syl5bb
    mtoi ) ABCABDZEZAFGZAHZFIZABJUJUIULUJULUHUJULEUKFDZUHUJULUMUJUMULUJUKKUMULO
    ALUKMPNQAFRSTULUHFBDZUAUHUKBDULUNABUBUKFBUCUDUGUEUF $.

  $( The union of an ordinal number is an ordinal number.  (Contributed by NM,
     29-Sep-2006.) $)
  onuni $p |- ( A e. On -> U. A e. On ) $=
    ( con0 wcel wss cuni onss ssonuni mpd ) ABCABDAEBCAFABGH $.

  $( The union of an ordinal class is ordinal.  (Contributed by NM,
     12-Sep-2003.) $)
  orduni $p |- ( Ord A -> Ord U. A ) $=
    ( word con0 wss cuni ordsson ssorduni syl ) ABACDAEBAFAGH $.

  ${
    $d x y z A $.
    $( The intersection (infimum) of a nonempty class of ordinal numbers
       belongs to the class.  Compare Exercise 4 of [TakeutiZaring] p. 45.
       (Contributed by NM, 31-Jan-1997.) $)
    onint $p |- ( ( A C_ On /\ A =/= (/) ) -> |^| A e. A ) $=
      ( vx vy vz con0 wss c0 wne cint wcel wa cv cin wceq wrex wi wel ssel wral
      exp32 word ordon tz7.5 mp3an1 imdistani wn ontri1 syl6bir ex sylan9 com4r
      imp31 ralimdva disj vex elint2 3imtr4g sylan2 com4l imp32 intss1 ad2antrl
      ssrdv eqssd eleq1d biimpd com34 pm2.43d rexlimdv syl5 anabsi5 ) AEFZAGHZA
      IZAJZVLVMKABLZMGNZBAOZVLVOEUAVLVMVRUBBEAUCUDVLVQVOBAVLVPAJZVQVOPVLVSVQVSV
      OVLVSVQVSVOPVLVSVQKKZVSVOVTVPVNAVTVPVNVTCVPVNVLVSVQCBQZCLZVNJZPWAVLVSVQWC
      WAVLVSVQWCPZVLVSKWAVLVPEJZKZWDVLVSWEAEVPRUEWAWFKZDBQUFZDASCDQZDASVQWCWGWH
      WIDAWAWFDLZAJZWHWIPWFWKWHWAWIVLWKWJEJZWEWHWAWIPZPZAEWJRWEWLWNWEWLKWHVPWJF
      WMVPWJUGVPWJWBRUHUIUJUKULUMDAVPUNDWBACUOUPUQURTUSUTVCVSVNVPFVLVQVPAVAVBVD
      VEVFTVGVHVIVJVK $.
  $}

  $( The intersection of a class of ordinal numbers is zero iff the class
     contains zero.  (Contributed by NM, 24-Apr-2004.) $)
  onint0 $p |- ( A C_ On -> ( |^| A = (/) <-> (/) e. A ) ) $=
    ( con0 wss cint c0 wceq wcel wa wne cvv 0ex eleq1 mpbiri intex sylibr onint
    sylan2 wb adantl mpbid ex int0el impbid1 ) ABCZADZEFZEAGZUDUFUGUDUFHUEAGZUG
    UFUDAEIZUHUFUEJGZUIUFUJEJGKUEEJLMANOAPQUFUHUGRUDUEEALSTUAAUBUC $.

  ${
    $d x y A $.
    $( A nonempty class of ordinal numbers has the smallest member.  Exercise 9
       of [TakeutiZaring] p. 40.  (Contributed by NM, 3-Oct-2003.) $)
    onssmin $p |- ( ( A C_ On /\ A =/= (/) ) -> E. x e. A A. y e. A x C_ y ) $=
      ( con0 wss c0 wne wa cint wcel cv wral wrex onint rgen wceq sseq1 ralbidv
      intss1 rspcev sylancl ) CDECFGHCIZCJUBBKZEZBCLZAKZUCEZBCLZACMCNUDBCUCCSOU
      HUEAUBCUFUBPUGUDBCUFUBUCQRTUA $.
  $}

  $( If a property is true for some ordinal number, it is true for a minimal
     ordinal number.  This version uses explicit substitution.  Theorem Schema
     62 of [Suppes] p. 228.  (Contributed by NM, 29-Sep-2003.) $)
  onminesb $p |- ( E. x e. On ph -> [. |^| { x e. On | ph } / x ]. ph ) $=
    ( con0 wrex crab cint wcel wsbc wne rabn0 wss ssrab2 onint mpan sylbir nfcv
    c0 elrabsf simprbi syl ) ABCDZABCEZFZUBGZABUCHZUAUBQIZUDABCJUBCKUFUDABCLUBM
    NOUDUCCGUEABUCCBCPRST $.

  ${
    onminsb.1 $e |- F/ x ps $.
    onminsb.2 $e |- ( x = |^| { x e. On | ph } -> ( ph <-> ps ) ) $.
    $( If a property is true for some ordinal number, it is true for a minimal
       ordinal number.  This version uses implicit substitution.  Theorem
       Schema 62 of [Suppes] p. 228.  (Contributed by NM, 3-Oct-2003.) $)
    onminsb $p |- ( E. x e. On ph -> ps ) $=
      ( con0 wrex crab cint wcel wne rabn0 wss ssrab2 onint sylbir nfrab1 nfint
      c0 mpan nfcv elrabf simprbi syl ) ACFGZACFHZIZUFJZBUEUFSKZUHACFLUFFMUIUHA
      CFNUFOTPUHUGFJBABCUGFCUFACFQRCFUADEUBUCUD $.
  $}

  $( The intersection of a nonempty collection of ordinal numbers is an ordinal
     number.  Compare Exercise 6 of [TakeutiZaring] p. 44.  (Contributed by NM,
     29-Jan-1997.) $)
  oninton $p |- ( ( A C_ On /\ A =/= (/) ) -> |^| A e. On ) $=
    ( con0 wss c0 wne cint wcel onint ex ssel syld imp ) ABCZADEZAFZBGZMNOAGZPM
    NQAHIABOJKL $.

  $( The intersection of a class of ordinal numbers exists iff it is an ordinal
     number.  (Contributed by NM, 6-Nov-2003.) $)
  onintrab $p |- ( |^| { x e. On | ph } e. _V <->
                 |^| { x e. On | ph } e. On ) $=
    ( con0 crab cint cvv wcel c0 wne wss ssrab2 oninton mpan sylbir elex impbii
    intex ) ABCDZEZFGZSCGZTRHIZUARQRCJUBUAABCKRLMNSCOP $.

  $( An existence condition equivalent to an intersection's being an ordinal
     number.  (Contributed by NM, 6-Nov-2003.) $)
  onintrab2 $p |- ( E. x e. On ph <-> |^| { x e. On | ph } e. On ) $=
    ( con0 wrex crab cint cvv wcel intexrab onintrab bitri ) ABCDABCEFZGHLCHABC
    IABJK $.

  $( No member of a set of ordinal numbers belongs to its minimum.
     (Contributed by NM, 2-Feb-1997.) $)
  onnmin $p |- ( ( A C_ On /\ B e. A ) -> -. B e. |^| A ) $=
    ( con0 wss wcel wa cint wn intss1 adantl wb c0 wne ne0i sylan2 ssel2 ontri1
    oninton syl2anc mpbid ) ACDZBAEZFZAGZBDZBUDEHZUBUEUABAIJUCUDCEZBCEUEUFKUBUA
    ALMUGABNAROACBPUDBQST $.

  ${
    $d x A $.  $d x ps $.
    onnminsb.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( An ordinal number smaller than the minimum of a set of ordinal numbers
       does not have the property determining that set. ` ps ` is the wff
       resulting from the substitution of ` A ` for ` x ` in wff ` ph ` .
       (Contributed by NM, 9-Nov-2003.) $)
    onnminsb $p |- ( A e. On -> ( A e. |^| { x e. On | ph } -> -. ps ) ) $=
      ( con0 wcel crab cint wn wa elrab wss ssrab2 onnmin mpan sylbir ex con2d
      ) DFGZBDACFHZIGZTBUBJZTBKDUAGZUCABCDFELUAFMUDUCACFNUADOPQRS $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A way to show that an ordinal number equals the minimum of a nonempty
       collection of ordinal numbers: it must be in the collection, and it must
       not be larger than any member of the collection.  (Contributed by NM,
       14-Nov-2003.) $)
    oneqmin $p |- ( ( B C_ On /\ B =/= (/) ) -> ( A = |^| B <->
                  ( A e. B /\ A. x e. A -. x e. B ) ) ) $=
      ( con0 wss c0 wne wa cint wceq wcel cv wn onint eleq1 syl5ibrcom wi eleq2
      wral adantr biimpd onnmin ex con2d syl9r ralrimdv jcad oneqmini impbid )
      CDEZCFGZHZBCIZJZBCKZALZCKZMZABSZHZULUNUOUSULUOUNUMCKCNBUMCOPUJUNUSQUKUJUN
      URABUNUPBKZUPUMKZUJURUNVAVBBUMUPRUAUJUQVBUJUQVBMCUPUBUCUDUEUFTUGUJUTUNQUK
      ABCUHTUI $.
  $}

  ${
    $d x y A $.
    bm2.5ii.1 $e |- A e. _V $.
    $( Problem 2.5(ii) of [BellMachover] p. 471.  (Contributed by NM,
       20-Sep-2003.) $)
    bm2.5ii $p |- ( A C_ On -> U. A = |^| { x e. On | A. y e. A y C_ x } ) $=
      ( con0 wss cuni wcel cv wral crab cint wceq ssonunii wb unissb a1i inteqi
      rabbiia intmin syl5reqr syl ) CEFCGZEHZUCBIAIZFBCJZAEKZLZMCDNUDUHUCUEFZAE
      KZLUCUJUGUIUFAEUIUFOUEEHBCUEPQSRAUCETUAUB $.
  $}

  ${
    $d x y z $.  $d y z ph $.  $d x z ps $.
    onminex.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( If a wff is true for an ordinal number, there is the smallest ordinal
       number for which it is true.  (Contributed by NM, 2-Feb-1997.)  (Proof
       shortened by Mario Carneiro, 20-Nov-2016.) $)
    onminex $p |- ( E. x e. On ph -> E. x e. On ( ph /\ A. y e. x -. ps ) ) $=
      ( vz con0 wrex wsb wn cv wral wa crab cint wcel wss raleq anbi12d nfv wne
      wsbc c0 ssrab2 rabn0 biimpri oninton sylancr onminesb onss sseld onnminsb
      syl syli ralrimiv wceq dfsbcq2 rspcev syl12anc nfan sbequ12 cbvrex sylibr
      nfs1v weq ) ACGHZACFIZBJZDFKZLZMZFGHZAVHDCKZLZMZCGHVFACGNZOZGPZACVQUBZVHD
      VQLZVLVFVPGQVPUCUAZVRACGUDWAVFACGUEUFVPUGUHZACUIVFVHDVQDKZVQPVFWCGPVHVFVQ
      GWCVFVRVQGQWBVQUJUMUKABCWCEULUNUOVKVSVTMFVQGVIVQUPVGVSVJVTACFVQUQVHDVIVQR
      SURUSVOVKCFGVOFTVGVJCACFVDVJCTUTCFVEAVGVNVJACFVAVHDVMVIRSVBVC $.
  $}

  $( The class of all ordinal numbers is its own successor.  (Contributed by
     NM, 12-Sep-2003.) $)
  sucon $p |- suc On = On $=
    ( con0 cvv wcel wn csuc wceq onprc sucprc ax-mp ) ABCDAEAFGAHI $.

  $( A successor exists iff its class argument exists.  (Contributed by NM,
     22-Jun-1998.) $)
  sucexb $p |- ( A e. _V <-> suc A e. _V ) $=
    ( cvv wcel csn wa cun csuc unexb snex biantru df-suc eleq1i 3bitr4i ) ABCZA
    DZBCZEAOFZBCNAGZBCAOHPNAIJRQBAKLM $.

  $( The successor of a set is a set (generalization).  (Contributed by NM,
     5-Jun-1994.) $)
  sucexg $p |- ( A e. V -> suc A e. _V ) $=
    ( wcel cvv csuc elex sucexb sylib ) ABCADCAEDCABFAGH $.

  ${
    sucex.1 $e |- A e. _V $.
    $( The successor of a set is a set.  (Contributed by NM, 30-Aug-1993.) $)
    sucex $p |- suc A e. _V $=
      ( cvv wcel csuc sucexg ax-mp ) ACDAECDBACFG $.
  $}

  ${
    $d x A $.
    $( The minimum of a class of ordinal numbers is less than the minimum of
       that class with its minimum removed.  (Contributed by NM,
       20-Nov-2003.) $)
    onmindif2 $p |- ( ( A C_ On /\ A =/= (/) ) ->
                   |^| A e. |^| ( A \ { |^| A } ) ) $=
      ( vx con0 wss c0 wne wa cint cdif wcel cv wral eldifsn wn wceq wo adantlr
      csn wb cvv onnmin oninton adantr ssel2 ontri1 onsseleq bitr3d syl2anc ord
      mpbid eqcom syl6ib necon1ad expimpd syl5bi ralrimiv elintg adantl mpbird
      intex sylbi ) ACDZAEFZGZAHZAVERIZHJZVEBKZJZBVFLZVDVIBVFVHVFJVHAJZVHVEFZGV
      DVIVHAVEMVDVKVLVIVDVKGZVIVHVEVMVINVEVHOZVHVEOVMVIVNVMVHVEJNZVIVNPZVBVKVOV
      CAVHUAQVMVECJZVHCJZVOVPSVDVQVKAUBUCVBVKVRVCACVHUDQVQVRGVEVHDVOVPVEVHUEVEV
      HUFUGUHUJUIVEVHUKULUMUNUOUPVCVGVJSZVBVCVETJVSAUTBVEVFTUQVAURUS $.
  $}

  ${
    $d x A $.
    $( The successor of an ordinal number is an ordinal number.  Proposition
       7.24 of [TakeutiZaring] p. 41.  (Contributed by NM, 6-Jun-1994.) $)
    suceloni $p |- ( A e. On -> suc A e. On ) $=
      ( vx con0 wcel csuc word wtr wss cv wral csn wo onelss velsn eqimss sylbi
      wi wceq a1i cvv orim12d cun df-suc eleq2i elun bitr2i oridm 3imtr3g sstr2
      sssucid syl6mpi ralrimiv dftr3 sylibr onss snssi unssd ordon trssord 3exp
      syl5eqss mpii sylc wb sucexg elong syl mpbird ) ACDZAEZCDZVJFZVIVJGZVJCHZ
      VLVIBIZVJHZBVJJVMVIVPBVJVIVOVJDZVOAHZAVJHVPVIVOADZVOAKZDZLZVRVRLVQVRVIVSV
      RWAVRAVOMWAVRQVIWAVOARVRBANVOAOPSUAVQVOAVTUBZDWBVJWCVOAUCZUDVOAVTUEUFVRUG
      UHAUJVOAVJUIUKULBVJUMUNVIVJWCCWDVIAVTCAUOACUPUQVAVMVNCFZVLURVMVNWEVLVJCUS
      UTVBVCVIVJTDVKVLVDACVEVJTVFVGVH $.
  $}

  $( The successor of an ordinal class is ordinal.  (Contributed by NM,
     3-Apr-1995.) $)
  ordsuc $p |- ( Ord A <-> Ord suc A ) $=
    ( cvv wcel word csuc wb elong suceloni eloni syl syl6bir sucidg ordelord ex
    con0 syl5com impbid wn wceq sucprc eqcomd ordeq pm2.61i ) ABCZADZAEZDZFZUDU
    EUGUDUEAOCZUGABGUIUFOCUGAHUFIJKUDAUFCZUGUEABLUGUJUEUFAMNPQUDRZAUFSUHUKUFAAT
    UAAUFUBJUC $.

  ${
    $d x A $.
    $( The collection of ordinals in the power class of an ordinal is its
       successor.  (Contributed by NM, 30-Jan-2005.) $)
    ordpwsuc $p |- ( Ord A -> ( ~P A i^i On ) = suc A ) $=
      ( vx word cpw con0 cin csuc cv wcel wss elin selpw anbi2ci bitri ordsssuc
      wa wb expcom pm5.32d simpr wi ordsuc ordelon ex sylbi ancrd impbid2 bitrd
      syl5bb eqrdv ) ACZBADZEFZAGZBHZUMIZUOEIZUOAJZPZUKUOUNIZUPUOULIZUQPUSUOULE
      KVAURUQBALMNUKUSUQUTPZUTUKUQURUTUQUKURUTQUOAORSUKVBUTUQUTTUKUTUQUKUNCZUTU
      QUAAUBVCUTUQUNUOUCUDUEUFUGUHUIUJ $.

    $( The collection of ordinal numbers in the power set of an ordinal number
       is its successor.  (Contributed by NM, 19-Oct-2004.) $)
    onpwsuc $p |- ( A e. On -> ( ~P A i^i On ) = suc A ) $=
      ( con0 wcel word cpw cin csuc wceq eloni ordpwsuc syl ) ABCADAEBFAGHAIAJK
      $.
  $}

  $( The successor of an ordinal number is an ordinal number.  (Contributed by
     NM, 9-Sep-2003.) $)
  sucelon $p |- ( A e. On <-> suc A e. On ) $=
    ( word cvv wcel wa csuc con0 ordsuc sucexb anbi12i elon2 3bitr4i ) ABZACDZE
    AFZBZOCDZEAGDOGDMPNQAHAIJAKOKL $.

  $( The successor of an element of an ordinal class is a subset of it.
     (Contributed by NM, 21-Jun-1998.) $)
  ordsucss $p |- ( Ord B -> ( A e. B -> suc A C_ B ) ) $=
    ( word wcel csuc wss wi wa ordelord wn ordnbtwn imnan sylibr adantr ordtri1
    wb ordsuc sylanb sylibrd pm2.43b sylan exp31 ) BCZABDZAEZBFZUDUCUDUFGZUCUDU
    CUGUCUDHACZUCUGBAIUHUCHUDBUEDZJZUFUHUDUJGZUCUHUDUIHJUKABKUDUILMNUHUECUCUFUJ
    PAQUEBORSUAUBTT $.

  $( An ordinal number is a proper subset of its successor.  (Contributed by
     Stefan O'Rear, 18-Nov-2014.) $)
  onpsssuc $p |- ( A e. On -> A C. suc A ) $=
    ( con0 wcel csuc wpss sucidg word eloni ordsuc sylib ordelpss syl2anc mpbid
    wb ) ABCZAADZCZAPEZABFOAGZPGZQRNAHZOSTUAAIJAPKLM $.

  $( A set belongs to an ordinal iff its successor is a subset of the ordinal.
     Exercise 8 of [TakeutiZaring] p. 42 and its converse.  (Contributed by NM,
     29-Nov-2003.) $)
  ordelsuc $p |- ( ( A e. C /\ Ord B ) -> ( A e. B <-> suc A C_ B ) ) $=
    ( wcel word wa csuc wss wi ordsucss adantl sucssel adantr impbid ) ACDZBEZF
    ABDZAGBHZPQRIOABJKORQIPABCLMN $.

  ${
    $d x A $.
    $( The successor of an ordinal number is the smallest larger ordinal
       number.  (Contributed by NM, 28-Nov-2003.) $)
    onsucmin $p |- ( A e. On -> suc A = |^| { x e. On | A e. x } ) $=
      ( con0 wcel cv crab cint csuc wss word wb ordelsuc sylan2 rabbidva inteqd
      eloni wceq sucelon intmin sylbi eqtr2d ) BCDZBAEZDZACFZGBHZUCIZACFZGZUFUB
      UEUHUBUDUGACUCCDUBUCJUDUGKUCPBUCCLMNOUBUFCDUIUFQBRAUFCSTUA $.
  $}

  $( Membership is inherited by successors.  Generalization of Exercise 9 of
     [TakeutiZaring] p. 42.  (Contributed by NM, 22-Jun-1998.)  (Proof
     shortened by Andrew Salmon, 12-Aug-2011.) $)
  ordsucelsuc $p |- ( Ord B -> ( A e. B <-> suc A e. suc B ) ) $=
    ( word wcel csuc wa simpl ordelord jca ordsuc sylibr sylanb cvv wb wss wceq
    wi wo adantr elex ancoms adantl ordsucss sucssel impbid sucexb elsucg sylbi
    ordsseleq ad2antrl 3bitr4d ex wn pm5.21ni a1d pm2.61i pm5.21nd ) BCZABDZAEZ
    BEZDZURACZFZURUSFURVCURUSGBAHIURVBFURVCURVBGURVACZVBVCBJVEVBFUTCZVCVAUTHAJZ
    KLIAMDZVDUSVBNZQVHVDVIVHVDFZUTBOZUTBDUTBPRZUSVBVDVKVLNZVHVCURVMVCVFURVMVGUT
    BUILUAUBVJUSVKURUSVKQVHVCABUCUJVHVKUSQVDABMUDSUEVHVBVLNZVDVHUTMDZVNAUFZUTBM
    UGUHSUKULVHUMVIVDUSVHVBABTVBVOVHUTVATVPKUNUOUPUQ $.

  $( The subclass relationship between two ordinal classes is inherited by
     their successors.  (Contributed by NM, 4-Oct-2003.) $)
  ordsucsssuc $p |- ( ( Ord A /\ Ord B ) -> ( A C_ B <-> suc A C_ suc B ) ) $=
    ( word wa wcel wn csuc wss ordsucelsuc notbid adantr ordtri1 ordsuc syl2anb
    wb 3bitr4d ) ACZBCZDBAEZFZBGZAGZEZFZABHUBUAHZQTUDORQSUCBAIJKABLQUBCUACUEUDO
    RAMBMUBUALNP $.

  $( Given an element ` A ` of the union of an ordinal ` B ` , ` suc A ` is an
     element of ` B ` itself.  (Contributed by Scott Fenton, 28-Mar-2012.)
     (Proof shortened by Mario Carneiro, 29-May-2015.) $)
  ordsucuniel $p |- ( Ord B -> ( A e. U. B <-> suc A e. B ) ) $=
    ( word cuni wcel csuc wi orduni ordelord ex syl wa ordsuc sylibr wb wn con0
    wss sylan ordtri1 ordsson ordunisssuc sylan2b 3bitr3d con4bid pm5.21ndd ) B
    CZACZABDZEZAFZBEZUGUICZUJUHGBHZUMUJUHUIAIJKUGULUHUGULLUKCZUHBUKIAMZNJUGUHUJ
    ULOUGUHLZUJULUQUIARZBUKRZUJPZULPZUGBQRUHURUSOBUABAUBSUGUMUHURUTOUNUIATSUHUG
    UOUSVAOUPBUKTUCUDUEJUF $.

  ${
    $d x A $.  $d x B $.
    $( The successor of the maximum (i.e. union) of two ordinals is the maximum
       of their successors.  (Contributed by NM, 28-Nov-2003.) $)
    ordsucun $p |- ( ( Ord A /\ Ord B ) ->
               suc ( A u. B ) = ( suc A u. suc B ) ) $=
      ( vx word wa cun csuc cv con0 wcel wi ordun ordsuc ordelon ex wb ordsssuc
      syl wo wss syl2anb ordssun adantl adantrr adantrl orbi12d 3bitr3d syl6bbr
      sylbi sylan2 elun expcom pm5.21ndd eqrdv ) ADZBDZEZCABFZGZAGZBGZFZUQCHZIJ
      ZVCUSJZVCVBJZUQURDZVEVDKZABLZVGUSDZVHURMVJVEVDUSVCNOUIRUOUTDZVADZVFVDKZUP
      AMBMVKVLEVBDZVMUTVALVNVFVDVBVCNORUAVDUQVEVFPVDUQEZVEVCUTJZVCVAJZSZVFVOVCU
      RTZVCATZVCBTZSZVEVRUQVSWBPVDVCABUBUCUQVDVGVSVEPVIVCURQUJVOVTVPWAVQVDUOVTV
      PPUPVCAQUDVDUPWAVQPUOVCBQUEUFUGVCUTVAUKUHULUMUN $.
  $}

  $( The maximum of two ordinals is equal to one of them.  (Contributed by
     Mario Carneiro, 25-Jun-2015.) $)
  ordunpr $p |- ( ( B e. On /\ C e. On ) -> ( B u. C ) e. { B , C } ) $=
    ( con0 wcel wa cun cpr wceq wss word eloni ordtri2or2 syl2an orcomd ssequn2
    wo ssequn1 orbi12i sylib cvv wb unexg elprg syl mpbird ) ACDZBCDZEZABFZABGD
    ZUIAHZUIBHZPZUHBAIZABIZPUMUHUOUNUFAJBJUOUNPUGAKBKABLMNUNUKUOULBAOABQRSUHUIT
    DUJUMUAABCCUBUIABTUCUDUE $.

  $( The maximum of two ordinals belongs to a third if each of them do.
     (Contributed by NM, 18-Sep-2006.)  (Revised by Mario Carneiro,
     25-Jun-2015.) $)
  ordunel $p |- ( ( Ord A /\ B e. A /\ C e. A ) -> ( B u. C ) e. A ) $=
    ( word wcel w3a cpr cun wss 3adant1 ordelon 3adant3 3adant2 ordunpr syl2anc
    prssi con0 sseldd ) ADZBAEZCAEZFZBCGZABCHZTUAUCAISBCAPJUBBQEZCQEZUDUCESTUEU
    AABKLSUAUFTACKMBCNOR $.

  $( A class of ordinal numbers is a subclass of the successor of its union.
     Similar to Proposition 7.26 of [TakeutiZaring] p. 41.  (Contributed by NM,
     19-Sep-2003.) $)
  onsucuni $p |- ( A C_ On -> A C_ suc U. A ) $=
    ( con0 wss cuni word csuc ssorduni wa ssid ordunisssuc mpbii mpdan ) ABCZAD
    ZEZANFCZAGMOHNNCPNIANJKL $.

  $( An ordinal class is a subclass of the successor of its union.
     (Contributed by NM, 12-Sep-2003.) $)
  ordsucuni $p |- ( Ord A -> A C_ suc U. A ) $=
    ( word con0 wss cuni csuc ordsson onsucuni syl ) ABACDAAEFDAGAHI $.

  $( An ordinal class is either its union or the successor of its union.  If we
     adopt the view that zero is a limit ordinal, this means every ordinal
     class is either a limit or a successor.  (Contributed by NM,
     13-Sep-2003.) $)
  orduniorsuc $p |- ( Ord A -> ( A = U. A \/ A = suc U. A ) ) $=
    ( word cuni wceq csuc wne wss wa wn wcel orduniss wb orduni mpancom biimprd
    ordelssne mpand ordsucss syld ordsucuni jctild df-ne necom bitr3i eqss orrd
    3imtr4g ) ABZAACZDZAUIEZDZUHUIAFZAUKGZUKAGZHUJIZULUHUMUOUNUHUMUIAJZUOUHUIAG
    ZUMUQAKUHUQURUMHZUIBUHUQUSLAMUIAPNOQUIARSATUAUPAUIFUMAUIUBAUIUCUDAUKUEUGUF
    $.

  ${
    $d x y A $.
    $( The class of all ordinal numbers is its own union.  Exercise 11 of
       [TakeutiZaring] p. 40.  (Contributed by NM, 12-Nov-2003.) $)
    unon $p |- U. On = On $=
      ( vx vy con0 cuni cv wcel wrex eluni2 onelon rexlimiva sylbi vex suceloni
      csuc sucid elunii sylancr impbii eqriv ) ACDZCAEZTFZUACFZUBUABEZFZBCGUCBU
      ACHUEUCBCUDUAIJKUCUAUANZFUFCFUBUAALOUAMUAUFCPQRS $.

    $( An ordinal class is equal to the union of its successor.  (Contributed
       by NM, 10-Dec-2004.)  (Proof shortened by Andrew Salmon,
       27-Aug-2011.) $)
    ordunisuc $p |- ( Ord A -> U. suc A = A ) $=
      ( vx word con0 wcel wceq wo csuc ordeleqon cv suceq unieqd id eqeq12d wtr
      cuni eloni ordtr syl vex unisuc sylib vtoclga sucon unon eqtri jaoi sylbi
      unieqi 3eqtr4a ) ACADEZADFZGAHZPZAFZAIUKUOULBJZHZPZUPFZUOBADUPAFZURUNUPAU
      TUQUMUPAKLUTMNUPDEZUPOZUSVAUPCVBUPQUPRSUPBTUAUBUCULDHZPZDUNAVDDPDVCDUDUIU
      EUFULUMVCADKLULMUJUGUH $.

    $( The union of the ordinal subsets of an ordinal number is that number.
       (Contributed by NM, 30-Jan-2005.) $)
    orduniss2 $p |- ( Ord A -> U. { x e. On | x C_ A } = A ) $=
      ( word cv wss con0 crab cuni csuc cpw cin wcel wa df-rab incom inab df-pw
      cab eqcomi abid2 ineq12i 3eqtr3i eqtri ordpwsuc syl5eq unieqd ordunisuc
      eqtrd ) BCZADZBEZAFGZHBIZHBUIULUMUIULBJZFKZUMULUJFLZUKMARZUOUKAFNUPARZUKA
      RZKUSURKUQUOURUSOUPUKAPUSUNURFUNUSABQSAFTUAUBUCBUDUEUFBUGUH $.
  $}

  $( A successor ordinal is the successor of its union.  (Contributed by NM,
     10-Dec-2004.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  onsucuni2 $p |- ( ( A e. On /\ A = suc B ) -> suc U. A = A ) $=
    ( con0 wcel csuc wceq cuni word eleq1 biimpac eloni ordsuc ordunisuc sylbir
    wa suceq syl eqtr4d 3syl unieq unieqd eqeq12d syl5ibr anabsi7 adantr eqtrd
    ) ACDZABEZFZOZAGZEZAEZGZAUGUIULUNFZUJUOUIUHGZEZUHEZGZFZUJUHCDZUHHZUTUIUGVAA
    UHCIJUHKVBUQUHUSVBUPBFZUQUHFVBBHVCBLBMNUPBPQUHMRSUIULUQUNUSUIUKUPFULUQFAUHT
    UKUPPQUIUMURAUHPUAUBUCUDUGUNAFZUIUGAHVDAKAMQUEUF $.

  $( The successor of an ordinal class contains the empty set.  (Contributed by
     NM, 4-Apr-1995.) $)
  0elsuc $p |- ( Ord A -> (/) e. suc A ) $=
    ( word csuc c0 wcel ordsuc wne nsuceq0 ord0eln0 mpbiri sylbi ) ABACZBZDLEZA
    FMNLDGAHLIJK $.

  $( The class of ordinal numbers is a limit ordinal.  (Contributed by NM,
     24-Mar-1995.) $)
  limon $p |- Lim On $=
    ( con0 wlim word c0 wne cuni wceq ordon onn0 unon eqcomi df-lim mpbir3an )
    ABACADEAAFZGHINAJKALM $.

  ${
    onssi.1 $e |- A e. On $.
    $( An ordinal number is a subset of ` On ` .  (Contributed by NM,
       11-Aug-1994.) $)
    onssi $p |- A C_ On $=
      ( con0 wcel wss onss ax-mp ) ACDACEBAFG $.

    $( The successor of an ordinal number is an ordinal number.  Corollary
       7N(c) of [Enderton] p. 193.  (Contributed by NM, 12-Jun-1994.) $)
    onsuci $p |- suc A e. On $=
      ( con0 wcel csuc suceloni ax-mp ) ACDAECDBAFG $.

    $( An ordinal number is either its own union (if zero or a limit ordinal)
       or the successor of its union.  (Contributed by NM, 13-Jun-1994.) $)
    onuniorsuci $p |- ( A = U. A \/ A = suc U. A ) $=
      ( word cuni wceq csuc wo onordi orduniorsuc ax-mp ) ACAADZEAKFEGABHAIJ $.

    ${
      $d x A $.
      $( A limit ordinal is not a successor ordinal.  (Contributed by NM,
         18-Feb-2004.) $)
      onuninsuci $p |- ( A = U. A <-> -. E. x e. On A = suc x ) $=
        ( cv csuc wceq con0 wrex cuni wn wa wcel onirri cun csn wtr sylancr syl
        id sylib df-suc eqeq2i unieq sylbi uniun unisn uneq2i eqtri syl6eq tron
        vex wss eleq1 mpbii trsuc eloni ordtr df-tr eqtrd sylan9eqr sucid eleq2
        word ssequn1 mpbiri adantr mto imnani rexlimivw onuni ax-mp onuniorsuci
        eqeltrd ori suceq eqeq2d rspcev impbii con2bii ) BADZEZFZAGHZBBIZFZWCWE
        JZWBWFAGWBWEWBWEKZBBLBCMWGBVTBWEWBBWDVTWESWBWDVTIZVTNZVTWBWDVTVTOZNZIZW
        IWBBWKFWDWLFWAWKBVTUAUBBWKUCUDWLWHWJIZNWIVTWJUEWMVTWHVTAUKZUFUGUHUIWBWH
        VTULZWIVTFWBVTGLZWOWBGPWAGLZWPUJWBBGLZWQCBWAGUMUNGVTUOQWPVTPZWOWPVTVCWS
        VTUPVTUQRVTURTRWHVTVDTUSUTWBVTBLZWEWBWTVTWALVTWNVABWAVTVBVEVFVMVGVHVIWF
        WDGLZBWDEZFZWCWRXACBVJVKWEXCBCVLVNWBXCAWDGVTWDFWAXBBVTWDVOVPVQQVRVS $.
    $}

    ${
      onsucssi.2 $e |- B e. On $.
      $( A set belongs to an ordinal number iff its successor is a subset of
         the ordinal number.  Exercise 8 of [TakeutiZaring] p. 42 and its
         converse.  (Contributed by NM, 16-Sep-1995.) $)
      onsucssi $p |- ( A e. B <-> suc A C_ B ) $=
        ( con0 wcel word csuc wss wb onordi ordelsuc mp2an ) AEFBGABFAHBIJCBDKA
        BELM $.
    $}
  $}

  $( A successor is not a limit ordinal.  (Contributed by NM, 25-Mar-1995.)
     (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  nlimsucg $p |- ( A e. V -> -. Lim suc A ) $=
    ( csuc wlim wcel word cuni wceq limord ordsuc sylibr limuni ordunisuc eleq2
    wn eqeq2d ordirr notbid syl5ibrcom sucidg con3i syl6 sylbid sylc con2i ) AC
    ZDZABEZUGAFZUFUFGZHZUHOZUGUFFUIUFIAJKUFLUIUKUFAHZULUIUJAUFAMPUIUMAUFEZOZULU
    IUOUMAAEZOAQUMUNUPUFAANRSUHUNABTUAUBUCUDUE $.

  ${
    $d x A $.
    $( An ordinal equal to its union is not a successor.  (Contributed by NM,
       18-Feb-2004.) $)
    orduninsuc $p |- ( Ord A -> ( A = U. A <-> -. E. x e. On A = suc x ) ) $=
      ( word con0 wcel wceq cuni wn wb c0 id unieq eqeq12d eqeq1 rexbidv notbid
      wrex bibi12d cvv mpbiri wo cv ordeleqon cif 0elon elimel onuninsuci dedth
      csuc unon eqcomi onprc vex sucex eleq1 mto a1i nrex 2th jaoi sylbi ) BCBD
      EZBDFZUABBGZFZBAUBZUIZFZADQZHZIZBUCVBVKVCVBVKVBBJUDZVLGZFZVLVGFZADQZHZIBJ
      BVLFZVEVNVJVQVRBVLVDVMVRKBVLLMVRVIVPVRVHVOADBVLVGNOPRAVLBJDUEUFUGUHVCVKDD
      GZFZDVGFZADQZHZIVTWCVSDUJUKWAADWAHVFDEWADSEZULWAWDVGSEVFAUMUNDVGSUOTUPUQU
      RUSVCVEVTVJWCVCBDVDVSVCKBDLMVCVIWBVCVHWAADBDVGNOPRTUTVA $.

    $( An ordinal equal to its union contains the successor of each of its
       members.  (Contributed by NM, 1-Feb-2005.) $)
    ordunisuc2 $p |- ( Ord A -> ( A = U. A <-> A. x e. A suc x e. A ) ) $=
      ( word cuni wceq cv csuc con0 wn wcel wral wi wa wo eloni adantr simpr ex
      syl5bbr bitrd wrex orduninsuc ralnex suceloni syl ordtri3 con2bid onnbtwn
      wb sylan2 imnan sylibr con2d pm2.21 syl6 adantl ax-1 jaod ordtri2or sylan
      a1i wss ancoms orcomd ordsssuc2 biimpd orim12d mpd impbid bitr3d pm5.74da
      impexp ordelon ancrd impbid2 imbi1d ralbidv2 ) BCZBBDEBAFZGZEZAHUAIZVTBJZ
      ABKZABUBWBWAIZAHKVRWDWAAHUCVRWEWCAHBVRVSHJZWELWFVSBJZWCLZLZWHVRWFWEWHVRWF
      MZBVTJZWCNZWEWHWJWAWLWFVRVTCZWAWLIUIWFVTHJWMVSUDVTOUEBVTUFUJUGWJWLWHWJWKW
      HWCWFWKWHLVRWFWKWGIWHWFWGWKWFWGWKMIWGWKILVSBUHWGWKUKULUMWGWCUNUOUPWCWHLWJ
      WCWGUQVAURWJWHWLWJWHMZBVSVBZWGNZWLWJWPWHWJWGWOWFVRWGWONZWFVSCVRWQVSOVSBUS
      UTVCVDPWNWOWKWGWCWJWOWKLWHWJWOWKBVSVEVFPWJWHQVGVHRVIVJVKWIWFWGMZWCLVRWHWF
      WGWCVLVRWRWGWCVRWRWGWFWGQVRWGWFVRWGWFBVSVMRVNVOVPSTVQST $.

    $( An ordinal is zero, a successor ordinal, or a limit ordinal.
       (Contributed by NM, 1-Oct-2003.) $)
    ordzsl $p |- ( Ord A <->
                  ( A = (/) \/ E. x e. On A = suc x \/ Lim A ) ) $=
      ( word c0 wceq cv csuc con0 wrex wlim w3o cuni orduninsuc biimprd unizlim
      wo wn sylibd orrd wcel 3orass or12 bitri sylibr ord0 ordeq suceloni eleq1
      mpbiri syl5ibr eloni syl6com rexlimiv limord 3jaoi impbii ) BCZBDEZBAFZGZ
      EZAHIZBJZKZUQVBURVCPZPZVDUQVBVEUQVBQZBBLEZVEUQVHVGABMNBORSVDURVBVCPPVFURV
      BVCUAURVBVCUBUCUDURUQVBVCURUQDCUEBDUFUIVAUQAHVAUSHTZBHTZUQVIVJVAUTHTUSUGB
      UTHUHUJBUKULUMBUNUOUP $.

    $( An ordinal number is zero, a successor ordinal, or a limit ordinal
       number.  (Contributed by NM, 1-Oct-2003.)  (Proof shortened by Andrew
       Salmon, 27-Aug-2011.) $)
    onzsl $p |- ( A e. On <->
               ( A = (/) \/ E. x e. On A = suc x \/ ( A e. _V /\ Lim A ) ) ) $=
      ( con0 wcel c0 wceq cv csuc wrex cvv wlim wa word elex eloni ordzsl 3mix1
      w3o adantl eleq1 3mix2 3jaodan sylan2b syl2anc mpbiri suceloni syl5ibrcom
      3mix3 0elon rexlimiv limelon 3jaoi impbii ) BCDZBEFZBAGZHZFZACIZBJDZBKZLZ
      RZUNUTBMZVCBCNBOVDUTUOUSVARVCABPUTUOVCUSVAUOVCUTUOUSVBQSUSVCUTUSUOVBUASVB
      UOUSUHUBUCUDUOUNUSVBUOUNECDUIBECTUEURUNACUPCDUNURUQCDUPUFBUQCTUGUJBJUKULU
      M $.

    $( An alternate definition of a limit ordinal, which is any ordinal that is
       neither zero nor a successor.  (Contributed by NM, 1-Nov-2004.)  (Proof
       shortened by Andrew Salmon, 27-Aug-2011.) $)
    dflim3 $p |- ( Lim A <->
                 ( Ord A /\ -. ( A = (/) \/ E. x e. On A = suc x ) ) ) $=
      ( wlim word c0 wne cuni wceq w3a wa cv csuc con0 wrex wo wn df-lim 3anass
      wb df-ne a1i orduninsuc anbi12d ioran syl6bbr pm5.32i 3bitri ) BCBDZBEFZB
      BGHZIUHUIUJJZJUHBEHZBAKLHAMNZOPZJBQUHUIUJRUHUKUNUHUKULPZUMPZJUNUHUIUOUJUP
      UIUOSUHBETUAABUBUCULUMUDUEUFUG $.

    $( An alternate definition of a limit ordinal.  (Contributed by NM,
       1-Feb-2005.) $)
    dflim4 $p |- ( Lim A <->
                 ( Ord A /\ (/) e. A /\ A. x e. A suc x e. A ) ) $=
      ( wlim word wcel cuni wceq w3a csuc wral dflim2 ordunisuc2 anbi2d pm5.32i
      c0 cv wa 3anass 3bitr4i bitri ) BCBDZOBEZBBFGZHZUAUBAPIBEABJZHZBKUAUBUCQZ
      QUAUBUEQZQUDUFUAUGUHUAUCUEUBABLMNUAUBUCRUAUBUERST $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The successor of a member of a limit ordinal is also a member.
       (Contributed by NM, 3-Sep-2003.) $)
    limsuc $p |- ( Lim A -> ( B e. A <-> suc B e. A ) ) $=
      ( vx wlim wcel csuc word c0 cv wral w3a dflim4 wceq suceq eleq1d 3ad2ant3
      wi rspccv sylbi wtr limord ordtr trsuc ex 3syl impbid ) ADZBAEZBFZAEZUGAG
      ZHAEZCIZFZAEZCAJZKUHUJQZCALUPUKUQULUOUJCBAUMBMUNUIAUMBNORPSUGUKATZUJUHQAU
      AAUBURUJUHABUCUDUEUF $.

    $( A class includes a limit ordinal iff the successor of the class includes
       it.  (Contributed by NM, 30-Oct-2003.) $)
    limsssuc $p |- ( Lim A -> ( A C_ B <-> A C_ suc B ) ) $=
      ( vx wlim wss csuc sssucid sstr2 wa cv wcel wceq wn wi eleq1 biimpcd word
      mpi sylib ex limsuc biimpa wb limord adantr ordelord sylan ordsuc ordtri1
      syl2anc con2bid mpbid sylan9r con2d com23 imp31 ssel2 vex elsuc ord con1d
      wo adantll mpd ssrdv impbid2 ) ADZABEZABFZEZVHBVIEVJBGABVIHRVGVJVHVGVJIZC
      ABVKCJZAKZVLBKZVKVMIVLBLZMZVNVGVJVMVPVGVMVJVPVGVMVJVPNVGVMIVOVJVMVOBAKZVG
      VJMZVOVMVQVLBAOPVGVQVRVGVQIZVIAKZVRVGVQVTABUAUBVSVJVTVSAQZVIQZVJVTMUCVGWA
      VQAUDZUEVSBQZWBVGWAVQWDWCABUFUGBUHSAVIUIUJUKULTUMUNTUOUPVJVMVPVNNVGVJVMIZ
      VNVOWEVNVOWEVLVIKVNVOVBAVIVLUQVLBCURUSSUTVAVCVDTVETVF $.
  $}

  ${
    $d x y $.
    $( Two ways to express the class of non-limit ordinal numbers.  Part of
       Definition 7.27 of [TakeutiZaring] p. 42, who use the symbol K_I for
       this class.  (Contributed by NM, 1-Nov-2004.) $)
    nlimon $p |- { x e. On | ( x = (/) \/ E. y e. On x = suc y ) } =
                   { x e. On | -. Lim x } $=
      ( cv c0 wceq csuc con0 wrex wo wlim wn wcel word wb eloni dflim3 baib syl
      con2bid rabbiia ) ACZDEUABCFEBGHIZUAJZKZAGUAGLUAMZUBUDNUAOUEUCUBUCUEUBKBU
      APQSRT $.
  $}

  ${
    $d x y z A $.
    $( The union of a nonempty class of limit ordinals is a limit ordinal.
       (Contributed by NM, 1-Feb-2005.) $)
    limuni3 $p |- ( ( A =/= (/) /\ A. x e. A Lim x ) -> Lim U. A ) $=
      ( vy vz c0 wne cv wlim wral wa cuni word wcel csuc con0 wss cvv adantl wi
      elunii limeq rspcv vex limelon mpan syl6com ssrdv ssorduni syl wex 0ellim
      n0 expcom syl5 syld exlimiv sylbi wrex eluni2 rspccv limsuc anbi1d syl6bi
      imp expd com3r sylcom rexlimdv syl5bi ralrimiv dflim4 syl3anbrc ) BEFZAGZ
      HZABIZJBKZLZEVQMZCGZNZVQMZCVQIZVQHVPVRVMVPBOPVRVPDBODGZBMZVPWDHZWDOMZVOWF
      AWDBVNWDUAZUBZWDQMWFWGDUCWDQUDUEUFUGBUHUIRVMVPVSVMWEDUJVPVSSZDBULWEWJDWEV
      PWFVSWIWFEWDMZWEVSWDUKWKWEVSEWDBTUMUNUOUPUQVDVPWCVMVPWBCVQVTVQMVTWDMZDBUR
      VPWBDVTBUSVPWLWBDBVPWEWFWLWBSVOWFAWDBWHUTWFWLWEWBWFWLWEWBWFWLWEJWAWDMZWEJ
      WBWFWLWMWEWDVTVAVBWAWDBTVCVEVFVGVHVIVJRCVQVKVL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Transfinite induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.
    $( The Principle of Transfinite Induction.  Theorem 7.17 of [TakeutiZaring]
       p. 39.  This principle states that if ` A ` is a class of ordinal
       numbers with the property that every ordinal number included in ` A `
       also belongs to ` A ` , then every ordinal number is in ` A ` .

       See theorem ~ tfindes or ~ tfinds for the version involving basis and
       induction hypotheses.  (Contributed by NM, 18-Feb-2004.) $)
    tfi $p |- ( ( A C_ On /\ A. x e. On ( x C_ A -> x e. A ) ) -> A = On ) $=
      ( con0 wss cv wcel wi wral wa wceq cdif cin c0 wrex wn eldifn adantl onss
      eldifi difin0ss syl5com imim1d a2i syl5 imp mtod ralimi2 ralnex sylib wne
      ssdif0 necon3bbii word ordon difss tz7.5 mp3an12 sylbi anim2i eqss sylibr
      ex nsyl2 ) BCDZAEZBDZVEBFZGZACHZIVDCBDZIBCJVIVJVDVICBKZVELMJZAVKNZVJVIVLO
      ZAVKHVMOVHVNACVKVECFZVHGZVEVKFZVNVPVQIVLVGVQVGOVPVECBPQVPVQVLVGGZVQVOVPVR
      VECBSVOVHVRVOVLVFVGVOVECDVLVFVERCBVETUAUBUCUDUEUFVBUGVLAVKUHUIVJOVKMUJZVM
      VJVKMCBUKULCUMVKCDVSVMUNCBUOACVKUPUQURVCUSBCUTVA $.
  $}

  ${
    $d w y z ph $.  $d w x y z $.
    tfis.1 $e |- ( x e. On -> ( A. y e. x [ y / x ] ph -> ph ) ) $.
    $( Transfinite Induction Schema.  If all ordinal numbers less than a given
       number ` x ` have a property (induction hypothesis), then all ordinal
       numbers have the property (conclusion).  Exercise 25 of [Enderton]
       p. 200.  (Contributed by NM, 1-Aug-1994.)  (Revised by Mario Carneiro,
       20-Nov-2016.) $)
    tfis $p |- ( x e. On -> ph ) $=
      ( vz vw cv con0 wcel crab wss wi wral wceq ssrab2 wa nfcv syl5bbr simprbi
      wsb nfrab1 nfss nfcri dfss3 sseq1 rabid eleq1 imbi12d sbequ nfs1v sbequ12
      nfim nfv cbvrab elrab2 ralimi syl5 anc2li vtoclgaf rgen tfi mp2an rabeq2i
      eqcomi ) BGZHIZVFAABHHABHJZHVGHKEGZVGKZVHVGIZLZEHMVGHNABHOVKEHCGZVGIZCVEM
      ZVFAPZLVKBVHHBVHQZVIVJBBVHVGVPABHUAZUBBEVGVQUCULVEVHNZVNVIVOVJVNVEVGKVRVI
      CVEVGUDVEVHVGUERVOVEVGIVRVJABHUFVEVHVGUGRUHVFVNAVNABCTZCVEMVFAVMVSCVEVMVL
      HIVSABFTZVSFVLHVGAFCBUIAVTBFHBHQFHQAFUMABFUJABFUKUNUOSUPDUQURUSUTEVGVAVBV
      DVCS $.
  $}

  ${
    $d y ph $.  $d x y $.
    tfis2f.1 $e |- F/ x ps $.
    tfis2f.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    tfis2f.3 $e |- ( x e. On -> ( A. y e. x ps -> ph ) ) $.
    $( Transfinite Induction Schema, using implicit substitution.  (Contributed
       by NM, 18-Aug-1994.) $)
    tfis2f $p |- ( x e. On -> ph ) $=
      ( wsb cv wral con0 wcel sbie ralbii syl5bi tfis ) ACDACDHZDCIZJBDRJRKLAQB
      DRABCDEFMNGOP $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x y $.
    tfis2.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    tfis2.2 $e |- ( x e. On -> ( A. y e. x ps -> ph ) ) $.
    $( Transfinite Induction Schema, using implicit substitution.  (Contributed
       by NM, 18-Aug-1994.) $)
    tfis2 $p |- ( x e. On -> ph ) $=
      ( nfv tfis2f ) ABCDBCGEFH $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x ch $.  $d x A $.  $d x y $.
    tfis3.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    tfis3.2 $e |- ( x = A -> ( ph <-> ch ) ) $.
    tfis3.3 $e |- ( x e. On -> ( A. y e. x ps -> ph ) ) $.
    $( Transfinite Induction Schema, using implicit substitution.  (Contributed
       by NM, 4-Nov-2003.) $)
    tfis3 $p |- ( A e. On -> ch ) $=
      ( con0 tfis2 vtoclga ) ACDFJHABDEGIKL $.
  $}

  ${
    $d x v w y z T $.  $d v w y z R $.  $d x v w z S $.  $d x v w z ch $.
    $d x v w y z ph $.  $d w y z ps $.  $d x A $.  $d x th $.
    tfisi.a $e |- ( ph -> A e. V ) $.
    tfisi.b $e |- ( ph -> T e. On ) $.
    tfisi.c $e |- ( ( ph /\ ( R e. On /\ R C_ T ) /\
          A. y ( S e. R -> ch ) ) -> ps ) $.
    tfisi.d $e |- ( x = y -> ( ps <-> ch ) ) $.
    tfisi.e $e |- ( x = A -> ( ps <-> th ) ) $.
    tfisi.f $e |- ( x = y -> R = S ) $.
    tfisi.g $e |- ( x = A -> R = T ) $.
    $( A transfinite induction scheme in "implicit" form where the induction is
       done on an object derived from the object of interest.  (Contributed by
       Stefan O'Rear, 24-Aug-2015.) $)
    tfisi $p |- ( ph -> th ) $=
      ( vv wi vz vw wss ssid wceq wa eqid wcel wal con0 weq eqeq2 anbi2d imbi1d
      cv sseq1 imbi12d albidv eqeq1d imbi2d cbvalv syl6bb wral w3a simp3l simp2
      simp1l eqeltrd simp3r eqsstrd csb wsb simpl3l simpl1l simpr simpl2 onelss
      eleqtrd simpl3r sstrd simpl1r rspcva syl2anc eqidd csbhypf eqcomd equcoms
      sylc nfcv wb nfv sbhypf bicomd spv mp2and ex alrimiv sylib syl121anc 3exp
      eleq1d tfis3 syl spcgv mpi expd pm2.43i ) AJJUCZDJUDAXHDTAAXHDAJJUEZAXHUF
      ZDTZJUGAGKUHHJUEZXJBTZTZEUIZXIXKTZLAJUJUHXOMHUAUOZUEZAXQJUCZUFZBTZTZEUIZI
      UBUOZUEZAYDJUCZUFZCTZTZFUIZXOUAUBJUAUBUKZYCHYDUEZYGBTZTZEUIYJYKYBYNEYKXRY
      LYAYMXQYDHULYKXTYGBYKXSYFAXQYDJUPUMUNUQURYNYIEFEFUKZYLYEYMYHYOHIYDQUSYOBC
      YGOUTUQVAVBXQJUEZYBXNEYPXRXLYAXMXQJHULYPXTXJBYPXSXHAXQJJUPUMUNUQURXQUJUHZ
      YJUBXQVCZYCYQYRUFZYBEYSXRXTBYSXRXTVDZAHUJUHHJUCIHUHZCTZFUIZBYSXRAXSVEYTHX
      QUJYSXRXTVFZYQYRXRXTVGVHYTHXQJUUDYSXRAXSVIVJYTESUOHVKZHUHZBESVLZTZSUIUUCY
      TUUHSYTUUFUUGYTUUFUFZAUUEJUCZUUGAXSYSXRUUFVMUUIUUEXQJUUIYQUUEXQUHZUUEXQUC
      YQYRXRXTUUFVNUUIUUEHXQYTUUFVOYSXRXTUUFVPVRZXQUUEVQWHAXSYSXRUUFVSVTUUIIUUE
      UEZAUUJUFZCTZTZFUIZUUEUUEUEZUUNUUGTZUUIUUKYRUUQUULYQYRXRXTUUFWAYJUUQUBUUE
      XQYDUUEUEZYIUUPFUUTYEUUMYHUUOYDUUEIULUUTYGUUNCUUTYFUUJAYDUUEJUPUMUNUQURWB
      WCUUIUUEWDUUPUURUUSTFSFSUKZUUMUURUUOUUSUVAIUUEUUEUUMSFSFUKZUUEIESFUOZHIEU
      VCWIEIWIQWEZWFWGUSUVACUUGUUNCUUGWJSFUVBUUGCBCESUVCCEWKOWLZWMWGUTUQWNWHWOW
      PWQUUHUUBSFUVBUUFUUAUUGCUVBUUEIHUVDXAUVEUQVAWRNWSWTWQWPXBXCXNXPEGKEUOGUEZ
      XLXIXMXKUVFHJJRUSUVFBDXJPUTUQXDWHXEXFXGXE $.
  $}

  ${
    $d x y z $.  $d x A $.  $d x z ch $.  $d x ta $.  $d y z ph $.
    $( Substitutions. $)
    tfinds.1 $e |- ( x = (/) -> ( ph <-> ps ) ) $.
    tfinds.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    tfinds.3 $e |- ( x = suc y -> ( ph <-> th ) ) $.
    tfinds.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Basis. $)
    tfinds.5 $e |- ps $.
    $( Induction step for successors. $)
    tfinds.6 $e |- ( y e. On -> ( ch -> th ) ) $.
    $( Induction step for limit ordinals. $)
    tfinds.7 $e |- ( Lim x -> ( A. y e. x ch -> ph ) ) $.
    $( Principle of Transfinite Induction (inference schema), using implicit
       substitutions.  The first four hypotheses establish the substitutions we
       need.  The last three are the basis, the induction step for successors,
       and the induction step for limit ordinals.  Theorem Schema 4 of [Suppes]
       p. 197.  (Contributed by NM, 16-Apr-1995.)  (Proof shortened by Andrew
       Salmon, 27-Aug-2011.) $)
    tfinds $p |- ( A e. On -> ta ) $=
      ( vz cv con0 wral wi wcel wlim wn word c0 wceq csuc wrex wo dflim3 notbii
      wa iman eloni pm2.27 syl mpbiri a1d nfra1 nfv nfim sucid rspcv ax-mp syl5
      vex raleq sbie syl5bbr cbvralv cbvralsv 3bitr4g imbi1d syl5ibrcom biimprd
      wsb sbequ a1i syldd rexlimi jaoi syl6 syl5bir syl5bi pm2.61d2 tfis3 ) ACE
      FGHJLFQZRUAZWGUBZCGWGSZATZWIUCWGUDZWGUEUFZWGGQZUGZUFZGRUHZUIZUCULZUCZWHWK
      WIWSGWGUJUKWTWLWRTZWHWKWLWRUMWHXAWRWKWHWLXAWRTWGUNWLWRUOUPWMWKWQWMAWJWMAB
      MIUQURWPWKGRWJAGCGWGUSAGUTVAWNRUAZWPWJDAXBWJDTWPAFWOSZDTXCCXBDWNWOUAXCCTW
      NGVFVBACFWNWOJVCVDNVEWPWJXCDWPAFPVPZPWGSXDPWOSWJXCXDPWGWOVGCXDGPWGCAFGVPW
      NPQUFXDACFGCFUTJVHAGPFVQVIVJAFPWOVKVLVMVNWPDATTXBWPADKVOVRVSVTWAWBWCWDOWE
      WF $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x ch $.  $d x th $.  $d x ta $.  $d y ph $.
    $( Substitutions. $)
    tfindsg.1 $e |- ( x = B -> ( ph <-> ps ) ) $.
    tfindsg.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    tfindsg.3 $e |- ( x = suc y -> ( ph <-> th ) ) $.
    tfindsg.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Basis. $)
    tfindsg.5 $e |- ( B e. On -> ps ) $.
    $( Induction step for successor ordinals. $)
    tfindsg.6 $e |- ( ( ( y e. On /\ B e. On ) /\ B C_ y ) -> ( ch -> th ) ) $.
    $( Induction step for limit ordinals. $)
    tfindsg.7 $e |- ( ( ( Lim x /\ B e. On ) /\ B C_ x ) ->
                   ( A. y e. x ( B C_ y -> ch ) -> ph ) ) $.
    $( Transfinite Induction (inference schema), using implicit substitutions.
       The first four hypotheses establish the substitutions we need.  The last
       three are the basis, the induction step for successors, and the
       induction step for limit ordinals.  The basis of this version is an
       arbitrary ordinal ` B ` instead of zero.  Remark in [TakeutiZaring]
       p. 57.  (Contributed by NM, 5-Mar-2004.) $)
    tfindsg $p |- ( ( ( A e. On /\ B e. On ) /\ B C_ A ) -> ta ) $=
      ( wcel wi wceq wa con0 wss cv c0 csuc wb sseq2 adantl syl6bir imp imbi12d
      eqeq2 imbi1d ss0 con3i pm2.21d pm5.74d sylan9bbr pm2.61ian imbi2d a1d wex
      vex sucex eqvinc syl5ibr biimpd sylan9r exlimiv sylbi eqcoms imim2i com4r
      wne df-ne anbi2i annim bitri onsssuc suceloni onelpss sylan2 bitrd ancoms
      wn ax-1 syl8 a2d com23 sylbird syl5bir pm2.61d wlim wral ralimdv ad2antlr
      ex pm2.27 syld exp31 com3l com4t tfinds imp31 ) HUAQIUAQZIHUBZEXEIFUCZUBZ
      ARZRXEIUDUBZBRZRXEIGUCZUBZCRZRZXEIXLUEZUBZDRZRXEXFERZRFGHXGUDSZXIXKXEIUDS
      ZXTXIXKUFYAXTTXHXJABXTXHXJUFYAXGUDIUGZUHYAXTABUFZYAXTXGISZYCIUDXGULJUIUJU
      KXTXIXJARYAWEZXKXTXHXJAYBUMYEXJABYEXJYCXJYAIUNUOUPUQURUSUTXGXLSZXIXNXEYFX
      HXMACXGXLIUGKUKUTXGXPSZXIXRXEYGXHXQADXGXPIUGLUKUTXGHSZXIXSXEYHXHXFAEXGHIU
      GMUKUTXEBXJNVAXLUAQZXEXNXRYIXEXNXRRZYIXETZXQIXPSZRZYJXEYMYJRYIYMXNXQXEDYM
      XQXEDRZRXNYLYNXQYNXPIXPISYGYDTZFVBYNFXPIXLGVCVDVEYOYNFYDXEAYGDXEAYDBNJVFY
      GADLVGVHVIVJVKVLVAVMUHYMWEZXQIXPVNZTZYKYJYRXQYLWEZTYPYQYSXQIXPVOVPXQYLVQV
      RYKYRXMYJXEYIXMYRUFXEYITXMIXPQZYRIXLVSYIXEXPUAQYTYRUFXLVTIXPWAWBWCWDYKXNX
      MXRYKXMCXRYKXMCDXRYKXMCDROWQDXQWFWGWHWIWJWKWLWQWHXEXHXGWMZXOGXGWNZAUUAXEX
      HUUBARZUUAXEXHUUCUUAXETXHTUUBXNGXGWNZAXEUUBUUDRUUAXHXEXOXNGXGXEXNWRWOWPPW
      SWTXAXBXCXD $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x ch $.  $d x th $.  $d x ta $.  $d y ph $.
    $( Substitutions. $)
    tfindsg2.1 $e |- ( x = suc B -> ( ph <-> ps ) ) $.
    tfindsg2.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    tfindsg2.3 $e |- ( x = suc y -> ( ph <-> th ) ) $.
    tfindsg2.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Basis. $)
    tfindsg2.5 $e |- ( B e. On -> ps ) $.
    $( Induction step for successor ordinals. $)
    tfindsg2.6 $e |- ( ( y e. On /\ B e. y ) -> ( ch -> th ) ) $.
    $( Induction step for limit ordinals. $)
    tfindsg2.7 $e |- ( ( Lim x /\ B e. x ) ->
                   ( A. y e. x ( B e. y -> ch ) -> ph ) ) $.
    $( Transfinite Induction (inference schema), using implicit substitutions.
       The first four hypotheses establish the substitutions we need.  The last
       three are the basis, the induction step for successors, and the
       induction step for limit ordinals.  The basis of this version is an
       arbitrary ordinal ` suc B ` instead of zero.  (Unnecessary distinct
       variable restrictions were removed by David Abernethy, 19-Jun-2012.)
       (Contributed by NM, 5-Jan-2005.) $)
    tfindsg2 $p |- ( ( A e. On /\ B e. A ) -> ta ) $=
      ( con0 wcel wa wi csuc wss onelon sucelon sylib eloni ordsucss syl sylbir
      word imp cv wb ordelsuc sylan2 ancoms ex adantr sylbird sylan2br wlim cvv
      wral vex limelon mpan anassrs imbi1d ralbidva imbi12d tfindsg expl mp2and
      mpbid ) HQRZIHRZSZIUAZQRZVRHUBZEVQIQRZVSHIUCIUDZUEVOVPVTVOHUJVPVTTHUFIHUG
      UHUKVOVSVTSETVPVOVSVTEABCDEFGHVRJKLMVSWABWBNUIGULZQRZVSSVRWCUBZCDTZVSWDWA
      WEWFTWBWDWASWEIWCRZWFWAWDWGWEUMZWDWAWCUJZWHWCUFZIWCQUNZUOUPWDWGWFTWAWDWGW
      FOUQURUSUTUKFULZVAZVSSVRWLUBZWECTZGWLVCZATZVSWMWAWNWQTZWBWMWASIWLRZWGCTZG
      WLVCZATZTZWRWMXCWAWMWSXBPUQURWAWMXCWRUMZWMWAWLQRZXDWLVBRWMXEFVDWLVBVEVFWA
      XESZWSWNXBWQXEWAWLUJWSWNUMWLUFIWLQUNUOXFXAWPAXFWTWOGWLXFWCWLRZSWGWECWAXEX
      GWHXEXGSZWAWIWHXHWDWIWLWCUCWJUHWKUOVGVHVIVHVJUOUPVNUTUKVKVLURVM $.
  $}

  ${
    $d x y z $.  $d y z ph $.
    tfindes.1 $e |- [. (/) / x ]. ph $.
    tfindes.2 $e |- ( x e. On -> ( ph -> [. suc x / x ]. ph ) ) $.
    tfindes.3 $e |- ( Lim y -> ( A. x e. y ph -> [. y / x ]. ph ) ) $.
    $( Transfinite Induction with explicit substitution.  The first hypothesis
       is the basis, the second is the induction step for successors, and the
       third is the induction step for limit ordinals.  Theorem Schema 4 of
       [Suppes] p. 197.  (Contributed by NM, 5-Mar-2004.) $)
    tfindes $p |- ( x e. On -> ph ) $=
      ( vz cv wsbc c0 csuc dfsbcq sbceq2a con0 wcel nfsbc1v nfim imbi12d wral
      wi nfv eleq1 sbceq1a suceq sbceq1d chvar wlim cbvralsv sbsbc ralbii bitri
      weq wsb syl5bir tfinds ) ABCHZIZABJIABGHZIZABURKZIZACGBHZABUPJLABUPURLABU
      PUTLABUPMDVBNOZAABVBKZIZTZTURNOZUSVATZTBGVGVHBVGBUAUSVABABURPABUTPQQBGULZ
      VCVGVFVHVBURNUBVIAUSVEVAABURUCVIABVDUTVBURUDUERREUFUSGUPSZABUPSZUPUGUQVKA
      BGUMZGUPSVJABGUPUHVLUSGUPABGUIUJUKFUNUO $.
  $}

  ${
    $d x y ta $.  $d x ps $.  $d x ch $.  $d x th $.  $d y ph $.
    $( Substitutions. $)
    tfinds2.1 $e |- ( x = (/) -> ( ph <-> ps ) ) $.
    tfinds2.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    tfinds2.3 $e |- ( x = suc y -> ( ph <-> th ) ) $.
    $( Basis. $)
    tfinds2.4 $e |- ( ta -> ps ) $.
    $( Induction step for successors. $)
    tfinds2.5 $e |- ( y e. On -> ( ta -> ( ch -> th ) ) ) $.
    $( Induction step for limit ordinals. $)
    tfinds2.6 $e |- ( Lim x -> ( ta -> ( A. y e. x ch -> ph ) ) ) $.
    $( Transfinite Induction (inference schema), using implicit substitutions.
       The first three hypotheses establish the substitutions we need.  The
       last three are the basis and the induction hypotheses (for successor and
       limit ordinals respectively).  Theorem Schema 4 of [Suppes] p. 197.  The
       wff ` ta ` is an auxiliary antecedent to help shorten proofs using this
       theorem.  (Contributed by NM, 4-Sep-2004.) $)
    tfinds2 $p |- ( x e. On -> ( ta -> ph ) ) $=
      ( wi wsbc sbcie wcel cvv ax-mp wb c0 0ex cv wceq imbi2d con0 csuc vex a2d
      mpbir sbcth sbcimg mpbi sbcel1v 3imtr3i bicomd equcoms sucex sbcbii suceq
      weq sbcco2 bitr3i 3imtr3g wral sbsbc sbralie r19.21v syl5bi limeq syl5bir
      wlim wsb tfindes ) EANZFGVOFUAOEBNZKVOVPFUAUBFUCZUAUDABEHUEPUJVQUFQZECNZG
      VQOZEDNZGVQOZVOVOFVQUGZOZGUCZUFQZGVQOZVSWANZGVQOZVRVTWBNZWFWHNZGVQOZWGWIN
      ZVQRQZWLFUHZWKGVQRWFECDLUIUKSWNWLWMTWOWFWHGVQRULSUMGVQUFUNWNWIWJTWOVSWAGV
      QRULSUOVSVOGVQWOGFVACAECATFGFGVAACIUPUQUEZPWBVOFWEUGZOZGVQOWDWRWAGVQVOWAF
      WQWEGUHZURVQWQUDADEJUEPUSVOFGWCWQVQWEUTVBVCVDVOFWEVEZVSGVQVEZFWEOZWEVLZVO
      FWEOZXBXAFGVMWTXAFGVFVSVOGFWPVGVCVQVLZFWEOZXAVONZFWEOZXCXBXDNZXEXGNZFWEOZ
      XFXHNZWERQZXKWSXJFWERXAECGVQVEZNXEVOECGVQVHXEEXNAMUIVIUKSXMXKXLTWSXEXGFWE
      RULSUMXEXCFWEWSVQWEVJPXMXHXITWSXAVOFWERULSUOVKVN $.
  $}

  ${
    $d x A $.  $d y ph $.  $d x ch $.  $d x ta $.  $d x y et $.
    $( Substitutions. $)
    tfinds3.1 $e |- ( x = (/) -> ( ph <-> ps ) ) $.
    tfinds3.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    tfinds3.3 $e |- ( x = suc y -> ( ph <-> th ) ) $.
    tfinds3.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Basis. $)
    tfinds3.5 $e |- ( et -> ps ) $.
    $( Induction step for successors. $)
    tfinds3.6 $e |- ( y e. On -> ( et -> ( ch -> th ) ) ) $.
    $( Induction step for limit ordinals. $)
    tfinds3.7 $e |- ( Lim x -> ( et -> ( A. y e. x ch -> ph ) ) ) $.
    $( Principle of Transfinite Induction (inference schema), using implicit
       substitutions.  The first four hypotheses establish the substitutions we
       need.  The last three are the basis, the induction step for successors,
       and the induction step for limit ordinals.  (Contributed by NM,
       6-Jan-2005.)  (Revised by David Abernethy, 21-Jun-2011.) $)
    tfinds3 $p |- ( A e. On -> ( et -> ta ) ) $=
      ( wi cv wceq imbi2d c0 csuc con0 wcel a2d wral wlim r19.21v syl5bi tfinds
      ) FAQZFBQFCQZFDQFEQGHIGRZUASABFJTUMHRZSACFKTUMUNUBSADFLTUMISAEFMTNUNUCUDF
      CDOUEULHUMUFFCHUMUFZQUMUGZUKFCHUMUHUPFUOAPUEUIUJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The natural numbers (i.e. finite ordinals)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new symbol. $)
  $c _om $. $( Greek letter omega $)

  $( Extend class notation to include the class of natural numbers. $)
  com $a class _om $.

  ${
    $d x y $.
    $( Define the class of natural numbers, which are all ordinal numbers that
       are less than every limit ordinal, i.e. all finite ordinals.  Our
       definition is a variant of the Definition of N of [BellMachover] p. 471.
       See ~ dfom2 for an alternate definition.  Later, when we assume the
       Axiom of Infinity, we show ` _om ` is a set in ~ omex , and ` _om ` can
       then be defined per ~ dfom3 (the smallest inductive set) and ~ dfom4 .

       _Note_: the natural numbers ` _om ` are a subset of the ordinal numbers
       ~ df-on .  They are completely different from the natural numbers ` NN `
       ( ~ df-nn ) that are a subset of the complex numbers defined much later
       in our development, although the two sets have analogous properties and
       operations defined on them.  (Contributed by NM, 15-May-1994.) $)
    df-om $a |- _om = { x e. On | A. y ( Lim y -> x e. y ) } $.
  $}

  ${
    $d x z $.  $d y z $.
    $( An alternate definition of the set of natural numbers ` _om ` .
       Definition 7.28 of [TakeutiZaring] p. 42, who use the symbol K_I for the
       inner class builder of non-limit ordinal numbers (see ~ nlimon ).
       (Contributed by NM, 1-Nov-2004.) $)
    dfom2 $p |- _om = { x e. On | suc x C_ { y e. On | -. Lim y } } $=
      ( vz com cv wlim wcel wi wal con0 crab csuc wn df-om wa wb onsssuc impexp
      wss cvv ontri1 bitr3d ancoms weq limeq elrab a1i imbi12d pm5.74da limelon
      notbid vex mpan pm4.71ri imbi1i con34b ibar imbi2d syl5bb 3bitri syl6rbbr
      pm5.74i simpr suceloni onelon ex ancrd impbid2 imbi1d syl5bbr bitrd dfss2
      syl albidv syl6bbr rabbiia eqtri ) DCEZFZAEZVRGZHZCIZAJKVTLZBEZFZMZBJKZSZ
      AJKACNWCWIAJVTJGZWCVRWDGZVRWHGZHZCIWIWJWBWMCWJWBVRJGZWMHZWMWJWOWNWAMZWNVS
      MZOZHZHZWBWJWNWMWSWJWNOZWKWPWLWRWNWJWKWPPWNWJOVRVTSWKWPVRVTQVRVTUAUBUCWLW
      RPXAWGWQBVRJBCUDWFVSWEVRUEUKUFUGUHUIWBWNVSOZWAHWNWBHWTVSXBWAVSWNVRTGVSWNC
      ULVRTUJUMUNUOWNVSWARWNWBWSWBWPWQHWNWSVSWAUPWNWQWRWPWNWQUQURUSVBUTVAWOWNWK
      OZWLHWJWMWNWKWLRWJXCWKWLWJXCWKWNWKVCWJWKWNWJWDJGZWKWNHVTVDXDWKWNWDVRVEVFV
      MVGVHVIVJVKVNCWDWHVLVOVPVQ $.
  $}

  ${
    $d A x y $.
    $( Membership in omega.  The left conjunct can be eliminated if we assume
       the Axiom of Infinity; see ~ elom3 .  (Contributed by NM,
       15-May-1994.) $)
    elom $p |- ( A e. _om <-> ( A e. On /\ A. x ( Lim x -> A e. x ) ) ) $=
      ( vy cv wlim wcel wi wal con0 com wceq eleq1 imbi2d albidv df-om elrab2 )
      ADZEZCDZQFZGZAHRBQFZGZAHCBIJSBKZUAUCAUDTUBRSBQLMNCAOP $.
  $}

  ${
    $d x y $.
    $( Omega is a subset of ` On ` .  (Contributed by NM, 13-Jun-1994.)  (Proof
       shortened by Andrew Salmon, 27-Aug-2011.) $)
    omsson $p |- _om C_ On $=
      ( vx vy com cv csuc wlim wn con0 crab wss dfom2 ssrab2 eqsstri ) CADEBDFG
      BHIJZAHIHABKNAHLM $.
  $}

  ${
    $d x y A $.
    $( The class of natural numbers is a subclass of any (infinite) limit
       ordinal.  Exercise 1 of [TakeutiZaring] p. 44.  Remarkably, our proof
       does not require the Axiom of Infinity.  (Contributed by NM,
       30-Oct-2003.) $)
    limomss $p |- ( Lim A -> _om C_ A ) $=
      ( vx vy word wlim com wss limord con0 wcel wceq wo wi ordeleqon wa cv wal
      elom simprbi limeq eleq2 imbi12d spcgv syl5 com23 imp ssrdv omsson mpbiri
      ex sseq2 a1d jaoi sylbi mpcom ) ADZAEZFAGZAHUPAIJZAIKZLUQURMZANUSVAUTUSUQ
      URUSUQOBFAUSUQBPZFJZVBAJZMUSVCUQVDVCCPZEZVBVEJZMZCQZUSUQVDMZVCVBIJVICVBRS
      VHVJCAIVEAKVFUQVGVDVEATVEAVBUAUBUCUDUEUFUGUJUTURUQUTURFIGUHAIFUKUIULUMUNU
      O $.
  $}

  $( A natural number is an ordinal number.  (Contributed by NM,
     27-Jun-1994.) $)
  nnon $p |- ( A e. _om -> A e. On ) $=
    ( com con0 omsson sseli ) BCADE $.

  ${
    nnoni.1 $e |- A e. _om $.
    $( A natural number is an ordinal number.  (Contributed by NM,
       27-Jun-1994.) $)
    nnoni $p |- A e. On $=
      ( com wcel con0 nnon ax-mp ) ACDAEDBAFG $.
  $}

  $( A natural number is ordinal.  (Contributed by NM, 17-Oct-1995.) $)
  nnord $p |- ( A e. _om -> Ord A ) $=
    ( com wcel con0 word nnon eloni syl ) ABCADCAEAFAGH $.

  ${
    $d x y z $.
    $( Omega is ordinal.  Theorem 7.32 of [TakeutiZaring] p. 43.  (Contributed
       by NM, 18-Oct-1995.)  (Proof shortened by Andrew Salmon,
       27-Aug-2011.) $)
    ordom $p |- Ord _om $=
      ( vy vx vz com wtr con0 wss word wel cv wcel wa wi wal wlim onelon expcom
      dftr2 limord elom ordtr trel 3syl com12 a2d alimdv anim12d 3imtr4g ax-gen
      expd imp mpgbir omsson ordon trssord mp3an ) DEZDFGFHDHUQABIZBJZDKZLAJZDK
      ZMZBNAABDRVCBURUTVBURUSFKZCJZOZBCIZMZCNZLVAFKZVFACIZMZCNZLUTVBURVDVJVIVMV
      DURVJUSVAPQURVHVLCURVFVGVKVFURVGVKMVFURVGVKVFVEHVEEURVGLVKMVESVEUAVEVAUSU
      BUCUJUDUEUFUGCUSTCVATUHUKUIULUMUNDFUOUP $.
  $}

  $( A member of a natural number is a natural number.  (Contributed by NM,
     21-Jun-1998.) $)
  elnn $p |- ( ( A e. B /\ B e. _om ) -> A e. _om ) $=
    ( com word wtr wcel wa wi ordom ordtr trel mp2b ) CDCEABFBCFGACFHICJCABKL
    $.

  $( The class of natural numbers ` _om ` is either an ordinal number (if we
     accept the Axiom of Infinity) or the proper class of all ordinal numbers
     (if we deny the Axiom of Infinity).  Remark in [TakeutiZaring] p. 43.
     (Contributed by NM, 10-May-1998.) $)
  omon $p |- ( _om e. On \/ _om = On ) $=
    ( com word con0 wcel wceq wo ordom ordeleqon mpbi ) ABACDACEFGAHI $.

  $( Omega is an ordinal number.  (Contributed by Mario Carneiro,
     30-Jan-2013.) $)
  omelon2 $p |- ( _om e. _V -> _om e. On ) $=
    ( com con0 wcel cvv wn wceq omon ori onprc eleq1 mtbiri syl con4i ) ABCZADC
    ZNEABFZOENPGHPOBDCIABDJKLM $.

  ${
    $d x A $.
    $( A natural number is not a limit ordinal.  (Contributed by NM,
       18-Oct-1995.) $)
    nnlim $p |- ( A e. _om -> -. Lim A ) $=
      ( vx com wcel wlim word wn nnord ordirr syl cv wal con0 elom simprbi wceq
      wi limeq eleq2 imbi12d spcgv mpd mtod ) ACDZAEZAADZUDAFUFGAHAIJUDBKZEZAUG
      DZQZBLZUEUFQZUDAMDUKBANOUJULBACUGAPUHUEUIUFUGARUGAASTUAUBUC $.

    $( The class of natural numbers is a subclass of the class of non-limit
       ordinal numbers.  Exercise 4 of [TakeutiZaring] p. 42.  (Contributed by
       NM, 2-Nov-2004.)  (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
    omssnlim $p |- _om C_ { x e. On | -. Lim x } $=
      ( com cv wlim wn con0 crab wss wral omsson nnlim rgen ssrab mpbir2an ) BA
      CZDEZAFGHBFHPABIJPABOKLPAFBMN $.
  $}

  $( Omega is a limit ordinal.  Theorem 2.8 of [BellMachover] p. 473.  Our
     proof, however, does not require the Axiom of Infinity.  (Contributed by
     NM, 26-Mar-1995.)  (Proof shortened by Mario Carneiro, 2-Sep-2015.) $)
  limom $p |- Lim _om $=
    ( vx com word wlim ordom con0 wcel wceq wo ordeleqon cv wi wal ordirr ax-mp
    wn elom baib mtbii limeq limomss wb limord ordsseleq sylancr mpbid biimprcd
    wss ord syld con1d com12 alrimiv nsyl2 limon mpbiri jaoi sylbi ) BCZBDZEUSB
    FGZBFHZIUTBJVAUTVBVAAKZDZBVCGZLZAMZUTVABBGZVGUSVHPEBNOVHVAVGABQRSUTPZVFAVDV
    IVEVDVEUTVDVEPBVCHZUTVDVEVJVDBVCUHZVEVJIZVCUAVDUSVCCVKVLUBEVCUCBVCUDUEUFUIV
    JUTVDBVCTUGUJUKULUMUNVBUTFDUOBFTUPUQURO $.

  $( A class belongs to omega iff its successor does.  (Contributed by NM,
     3-Dec-1995.) $)
  peano2b $p |- ( A e. _om <-> suc A e. _om ) $=
    ( com wlim wcel csuc wb limom limsuc ax-mp ) BCABDAEBDFGBAHI $.

  ${
    $d x A $.
    $( A nonzero natural number is a successor.  (Contributed by NM,
       18-Feb-2004.) $)
    nnsuc $p |- ( ( A e. _om /\ A =/= (/) ) -> E. x e. _om A = suc x ) $=
      ( com wcel c0 wne wa cv csuc wceq con0 wrex wlim wn nnlim adantr wi nnord
      word cuni orduninsuc w3a df-lim biimpri 3expia sylbird sylan mt3d biimpcd
      wb eleq1 peano2b syl6ibr ancrd adantld reximdv2 mpd ) BCDZBEFZGZBAHZIZJZA
      KLZVCACLZUTVDBMZURVFNUSBOPURBSZUSVDNZVFQBRVGUSGVHBBTJZVFVGVIVHUJUSABUAPVG
      USVIVFVFVGUSVIUBBUCUDUEUFUGUHURVDVEQUSURVCVCAKCURVCVACDZVCGVAKDURVCVJURVC
      VBCDZVJVCURVKBVBCUKUIVAULUMUNUOUPPUQ $.
  $}

  ${
    $d x A $.
    $( An ordinal subclass of non-limit ordinals is a class of natural numbers.
       Exercise 7 of [TakeutiZaring] p. 42.  (Contributed by NM,
       2-Nov-2004.) $)
    ssnlim $p |- ( ( Ord A /\ A C_ { x e. On | -. Lim x } ) -> A C_ _om ) $=
      ( word cv wlim wn con0 crab wss wa com wcel limom ssel limeq notbid elrab
      wceq simprbi syl6 mt2i adantl wb ordom ordtri1 mpan2 adantr mpbird ) BCZB
      ADZEZFZAGHZIZJBKIZKBLZFZUNUQUIUNUPKEZMUNUPKUMLZURFZBUMKNUSKGLUTULUTAKGUJK
      RUKURUJKOPQSTUAUBUIUOUQUCZUNUIKCVAUDBKUEUFUGUH $.
  $}

  ${
    $d A x $.  $d ch x $.  $d ph y $.  $d ps x $.  $d x y $.
    omsinds.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    omsinds.2 $e |- ( x = A -> ( ph <-> ch ) ) $.
    omsinds.3 $e |- ( x e. _om -> ( A. y e. x ps -> ph ) ) $.
    $( Strong (or "total") induction principle over the finite ordinals.
       (Contributed by Scott Fenton, 17-Jul-2015.) $)
    omsinds $p |- ( A e. _om -> ch ) $=
      ( com cep con0 wss wwe omsson epweon wess mp2 epse wral cv wcel cpred cin
      predep wceq word wtr wi ordom ordtr trss mp2b sseqin2 sylib eqtrd raleqdv
      sylbid wfis3 ) ABCDEJFKJLMLKNJKNOPJLKQRJSGHDUAZJUBZBEJKUTUCZTBEUTTAVABEVB
      UTVAVBJUTUDZUTJJUTUEVAUTJMZVCUTUFJUGJUHVAVDUIUJJUKJUTULUMUTJUNUOUPUQIURUS
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Peano's postulates
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Zero is a natural number.  One of Peano's five postulates for arithmetic.
     Proposition 7.30(1) of [TakeutiZaring] p. 42.  Note:  Unlike most
     textbooks, our proofs of ~ peano1 through ~ peano5 do not use the Axiom of
     Infinity.  Unlike Takeuti and Zaring, they also do not use the Axiom of
     Regularity.  (Contributed by NM, 15-May-1994.) $)
  peano1 $p |- (/) e. _om $=
    ( com wlim c0 wcel limom 0ellim ax-mp ) ABCADEAFG $.

  $( The successor of any natural number is a natural number.  One of Peano's
     five postulates for arithmetic.  Proposition 7.30(2) of [TakeutiZaring]
     p. 42.  (Contributed by NM, 3-Sep-2003.) $)
  peano2 $p |- ( A e. _om -> suc A e. _om ) $=
    ( com wcel csuc peano2b biimpi ) ABCADBCAEF $.

  $( The successor of any natural number is not zero.  One of Peano's five
     postulates for arithmetic.  Proposition 7.30(3) of [TakeutiZaring] p. 42.
     (Contributed by NM, 3-Sep-2003.) $)
  peano3 $p |- ( A e. _om -> suc A =/= (/) ) $=
    ( csuc c0 wne com wcel nsuceq0 a1i ) ABCDAEFAGH $.

  $( Two natural numbers are equal iff their successors are equal, i.e. the
     successor function is one-to-one.  One of Peano's five postulates for
     arithmetic.  Proposition 7.30(4) of [TakeutiZaring] p. 43.  (Contributed
     by NM, 3-Sep-2003.) $)
  peano4 $p |- ( ( A e. _om /\ B e. _om ) -> ( suc A = suc B <-> A = B ) ) $=
    ( com wcel con0 csuc wceq wb nnon suc11 syl2an ) ACDAEDBEDAFBFGABGHBCDAIBIA
    BJK $.

  ${
    $d x y A $.
    $( The induction postulate: any class containing zero and closed under the
       successor operation contains all natural numbers.  One of Peano's five
       postulates for arithmetic.  Proposition 7.30(5) of [TakeutiZaring]
       p. 43, except our proof does not require the Axiom of Infinity.  The
       more traditional statement of mathematical induction as a theorem
       schema, with a basis and an induction step, is derived from this theorem
       as theorem ~ findes .  (Contributed by NM, 18-Feb-2004.) $)
    peano5 $p |- ( ( (/) e. A /\
                 A. x e. _om ( x e. A -> suc x e. A ) ) -> _om C_ A ) $=
      ( vy c0 wcel cv csuc wi com wral wa wceq wss wrex wn adantl wne eleq1 nfv
      exp32 cdif cin eldifn eldifi biimpcd necon3bd mpan9 nnsuc syl2anc adantlr
      elndif adantr nfra1 nfan rsp vex sucid eleq2 mpbiri peano2b syl6bbr minel
      neldif sylan2 syl6bi mpid syl5 impd eleq1a com12 imim12d com13 sylan9 a1i
      rexlimd imp41 mtand nrexdv word ordom difss tz7.5 mp3an12 necon1bi ssdif0
      mpd syl sylibr ) DBEZAFZBEZWJGZBEZHZAIJZKZIBUAZDLZIBMWPWQCFZUBDLZCWQNZOWR
      WPWTCWQWPWSWQEZKZWTWSBEZXBXDOWPWSIBUCPXCWTKWSWLLZAINZXDXCXFWTWIXBXFWOWIXB
      KWSIEZWSDQZXFXBXGWIWSIBUDZPWIDWQEZOXBXHDBIUKXBXJWSDWSDLXBXJWSDWQRUEUFUGAW
      SUHUIUJULWIWOXBWTXFXDHZWOXBWTXKHHHWIWOXBWTXKWOXBWTKZKXEXDAIWOXLAWNAIUMXLA
      SUNXDASWOWJIEZWNXLXEXDHWNAIUOXEWNXLXDXEXLWKWMXDXEXBWTWKXBXGXEWTWKHZXIXEXG
      WJWSEZXNXEXOWJWLEWJAUPUQWSWLWJURUSXEXGXMXOXNHXEXGWLIEXMWSWLIRWJUTVAXMXOWT
      WKXOWTKXMWJWQEOWKWJWSWQVBWJIBVCVDTVEVFVGVHWMXEXDWLBWSVIVJVKVLVMVOTVNVPWFV
      QVRXAWQDIVSWQIMWQDQXAVTIBWACIWQWBWCWDWGIBWEWH $.
  $}

  ${
    $d x A $.
    $( A natural number is either 0 or a successor.  (Contributed by NM,
       27-May-1998.) $)
    nn0suc $p |- ( A e. _om -> ( A = (/) \/ E. x e. _om A = suc x ) ) $=
      ( com wcel c0 wceq cv csuc wrex wn wne df-ne nnsuc sylan2br ex orrd ) BCD
      ZBEFZBAGHFACIZQRJZSTQBEKSBELABMNOP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finite induction (for finite ordinals)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.
    find.1 $e |- ( A C_ _om /\ (/) e. A /\ A. x e. A suc x e. A ) $.
    $( The Principle of Finite Induction (mathematical induction).  Corollary
       7.31 of [TakeutiZaring] p. 43.  The simpler hypothesis shown here was
       suggested in an email from "Colin" on 1-Oct-2001.  The hypothesis states
       that ` A ` is a set of natural numbers, zero belongs to ` A ` , and
       given any member of ` A ` the member's successor also belongs to ` A ` .
       The conclusion is that every natural number is in ` A ` .  (Contributed
       by NM, 22-Feb-2004.)  (Proof shortened by Andrew Salmon,
       27-Aug-2011.) $)
    find $p |- A = _om $=
      ( com wss c0 wcel cv csuc wral simp1i wi wa w3a 3simpc ax-mp df-ral alral
      wal sylbi anim2i peano5 eqssi ) BDBDEZFBGZAHZIBGZABJZCKUEUFBGUGLZADJZMZDB
      EUEUHMZUKUDUEUHNULCUDUEUHOPUHUJUEUHUIASUJUGABQUIADRTUAPABUBPUC $.
  $}

  ${
    $d x y $.  $d x A $.  $d x ps $.  $d x ch $.  $d x th $.  $d x ta $.
    $d y ph $.
    $( Substitutions. $)
    finds.1 $e |- ( x = (/) -> ( ph <-> ps ) ) $.
    finds.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    finds.3 $e |- ( x = suc y -> ( ph <-> th ) ) $.
    finds.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Basis. $)
    finds.5 $e |- ps $.
    $( Induction step. $)
    finds.6 $e |- ( y e. _om -> ( ch -> th ) ) $.
    $( Principle of Finite Induction (inference schema), using implicit
       substitutions.  The first four hypotheses establish the substitutions we
       need.  The last two are the basis and the induction step.  Theorem
       Schema 22 of [Suppes] p. 136.  This is Metamath 100 proof #74.
       (Contributed by NM, 14-Apr-1995.) $)
    finds $p |- ( A e. _om -> ta ) $=
      ( com wcel cab c0 cv elab csuc wi wral wss 0ex mpbir sucex 3imtr4g peano5
      vex rgen mp2an sseli elabg mpbid ) HOPHAFQZPEOUPHRUPPZGSZUPPZURUAZUPPZUBZ
      GOUCOUPUDUQBMABFRUEITUFVBGOUROPCDUSVANACFURGUJZJTADFUTURVCUGKTUHUKGUPUIUL
      UMAEFHOLUNUO $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x ps $.  $d x ch $.  $d x th $.  $d x ta $.
    $d y ph $.
    $( Substitutions. $)
    findsg.1 $e |- ( x = B -> ( ph <-> ps ) ) $.
    findsg.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    findsg.3 $e |- ( x = suc y -> ( ph <-> th ) ) $.
    findsg.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Basis. $)
    findsg.5 $e |- ( B e. _om -> ps ) $.
    $( Induction step. $)
    findsg.6 $e |- ( ( ( y e. _om /\ B e. _om ) /\ B C_ y )
        -> ( ch -> th ) ) $.
    $( Principle of Finite Induction (inference schema), using implicit
       substitutions.  The first four hypotheses establish the substitutions we
       need.  The last two are the basis and the induction step.  The basis of
       this version is an arbitrary natural number ` B ` instead of zero.
       (Contributed by NM, 16-Sep-1995.) $)
    findsg $p |- ( ( ( A e. _om /\ B e. _om ) /\ B C_ A ) -> ta ) $=
      ( wcel wss wi wceq wa com cv c0 wb sseq2 adantl eqeq2 syl6bir imp imbi12d
      csuc wn imbi1d ss0 pm2.21d pm5.74d sylan9bbr pm2.61ian imbi2d a1d wex vex
      con3i sucex eqvinc syl5ibr biimpd sylan9r exlimiv sylbi eqcoms imim2i wne
      com4r df-ne anbi2i annim bitri con0 onsssuc suceloni onelpss sylan2 bitrd
      nnon syl2anr ex ax-1 syl8 a2d com23 sylbird syl5bir pm2.61d finds imp31 )
      HUAPIUAPZIHQZEWQIFUBZQZARZRWQIUCQZBRZRWQIGUBZQZCRZRWQIXDUKZQZDRZRWQWRERZR
      FGHWSUCSZXAXCWQIUCSZXKXAXCUDXLXKTWTXBABXKWTXBUDXLWSUCIUEZUFXLXKABUDZXLXKW
      SISZXNIUCWSUGJUHUIUJXKXAXBARXLULZXCXKWTXBAXMUMXPXBABXPXBXNXBXLIUNVCUOUPUQ
      URUSWSXDSZXAXFWQXQWTXEACWSXDIUEKUJUSWSXGSZXAXIWQXRWTXHADWSXGIUELUJUSWSHSZ
      XAXJWQXSWTWRAEWSHIUEMUJUSWQBXBNUTXDUAPZWQXFXIXTWQXFXIRZXTWQTZXHIXGSZRZYAW
      QYDYARXTYDXFXHWQDYDXHWQDRZRXFYCYEXHYEXGIXGISXRXOTZFVAYEFXGIXDGVBVDVEYFYEF
      XOWQAXRDWQAXOBNJVFXRADLVGVHVIVJVKVLUTVNUFYDULZXHIXGVMZTZYBYAYIXHYCULZTYGY
      HYJXHIXGVOVPXHYCVQVRYBYIXEYAWQIVSPZXDVSPZXEYIUDXTIWEXDWEYKYLTXEIXGPZYIIXD
      VTYLYKXGVSPYMYIUDXDWAIXGWBWCWDWFYBXFXEXIYBXECXIYBXECDXIYBXECDROWGDXHWHWIW
      JWKWLWMWNWGWJWOWP $.
  $}

  ${
    $d x y ta $.  $d x ps $.  $d x ch $.  $d x th $.  $d y ph $.
    $( Substitutions. $)
    finds2.1 $e |- ( x = (/) -> ( ph <-> ps ) ) $.
    finds2.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    finds2.3 $e |- ( x = suc y -> ( ph <-> th ) ) $.
    $( Basis. $)
    finds2.4 $e |- ( ta -> ps ) $.
    $( Induction step. $)
    finds2.5 $e |- ( y e. _om -> ( ta -> ( ch -> th ) ) ) $.
    $( Principle of Finite Induction (inference schema), using implicit
       substitutions.  The first three hypotheses establish the substitutions
       we need.  The last two are the basis and the induction step.  Theorem
       Schema 22 of [Suppes] p. 136.  (Contributed by NM, 29-Nov-2002.) $)
    finds2 $p |- ( x e. _om -> ( ta -> ph ) ) $=
      ( cv com wcel wi c0 wceq imbi2d elab cab csuc wss 0ex mpbir a2d vex sucex
      wral 3imtr4g rgen peano5 mp2an sseli abid sylib ) FMZNOUQEAPZFUAZOURNUSUQ
      QUSOZGMZUSOZVAUBZUSOZPZGNUINUSUCUTEBPZKURVFFQUDUQQRABEHSTUEVEGNVANOZECPZE
      DPZVBVDVGECDLUFURVHFVAGUGZUQVARACEISTURVIFVCVAVJUHUQVCRADEJSTUJUKGUSULUMU
      NURFUOUP $.
  $}

  ${
    $d x y $.  $d x ps $.  $d x ch $.  $d x th $.  $d y ph $.
    $( Substitutions. $)
    finds1.1 $e |- ( x = (/) -> ( ph <-> ps ) ) $.
    finds1.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    finds1.3 $e |- ( x = suc y -> ( ph <-> th ) ) $.
    $( Basis. $)
    finds1.4 $e |- ps $.
    $( Induction step. $)
    finds1.5 $e |- ( y e. _om -> ( ch -> th ) ) $.
    $( Principle of Finite Induction (inference schema), using implicit
       substitutions.  The first three hypotheses establish the substitutions
       we need.  The last two are the basis and the induction step.  Theorem
       Schema 22 of [Suppes] p. 136.  (Contributed by NM, 22-Mar-2006.) $)
    finds1 $p |- ( x e. _om -> ph ) $=
      ( cv com wcel c0 wceq eqid a1i wi a1d finds2 mpi ) ELMNOOPZAOQABCDUCEFGHI
      BUCJRFLMNCDSUCKTUAUB $.
  $}

  ${
    $d x y z $.  $d y z ph $.
    findes.1 $e |- [. (/) / x ]. ph $.
    findes.2 $e |- ( x e. _om -> ( ph -> [. suc x / x ]. ph ) ) $.
    $( Finite induction with explicit substitution.  The first hypothesis is
       the basis and the second is the induction step.  Theorem Schema 22 of
       [Suppes] p. 136.  See ~ tfindes for the transfinite version.  This is an
       alternative for Metamath 100 proof #74.  (Contributed by Raph Levien,
       9-Jul-2003.) $)
    findes $p |- ( x e. _om -> ph ) $=
      ( vz vy wsb c0 wsbc csuc dfsbcq2 sbequ sbequ12r com wcel nfv nfim imbi12d
      cv wi nfs1v nfsbc1v weq eleq1 sbequ12 suceq sbceq1d chvar finds ) ABEGABH
      IABFGZABFSZJZIZAEFBSZABEHKAEFBLABEULKAEBMCUNNOZAABUNJZIZTZTUKNOZUJUMTZTBF
      USUTBUSBPUJUMBABFUAABULUBQQBFUCZUOUSURUTUNUKNUDVAAUJUQUMABFUEVAABUPULUNUK
      UFUGRRDUHUI $.
  $}

  $( The domain of a set is a set.  Corollary 6.8(2) of [TakeutiZaring] p. 26.
     (Contributed by NM, 7-Apr-1995.) $)
  dmexg $p |- ( A e. V -> dom A e. _V ) $=
    ( wcel cuni cvv cdm uniexg wss crn ssun1 dmrnssfld sstri ssexg mpan 3syl
    cun ) ABCADZECQDZECZAFZECZABGQEGTRHSUATTAIZPRTUBJAKLTREMNO $.

  $( The range of a set is a set.  Corollary 6.8(3) of [TakeutiZaring] p. 26.
     Similar to Lemma 3D of [Enderton] p. 41.  (Contributed by NM,
     31-Mar-1995.) $)
  rnexg $p |- ( A e. V -> ran A e. _V ) $=
    ( wcel cuni cvv crn uniexg wss cdm ssun2 dmrnssfld sstri ssexg mpan 3syl
    cun ) ABCADZECQDZECZAFZECZABGQEGTRHSUATAIZTPRTUBJAKLTREMNO $.

  ${
    dmex.1 $e |- A e. _V $.
    $( The domain of a set is a set.  Corollary 6.8(2) of [TakeutiZaring]
       p. 26.  (Contributed by NM, 7-Jul-2008.) $)
    dmex $p |- dom A e. _V $=
      ( cvv wcel cdm dmexg ax-mp ) ACDAECDBACFG $.

    $( The range of a set is a set.  Corollary 6.8(3) of [TakeutiZaring] p. 26.
       Similar to Lemma 3D of [Enderton] p. 41.  (Contributed by NM,
       7-Jul-2008.) $)
    rnex $p |- ran A e. _V $=
      ( cvv wcel crn rnexg ax-mp ) ACDAECDBACFG $.
  $}

  $( The identity function is a proper class.  This means, for example, that we
     cannot use it as a member of the class of continuous functions unless it
     is restricted to a set, as in ~ idcn .  (Contributed by NM,
     1-Jan-2007.) $)
  iprc $p |- -. _I e. _V $=
    ( cid cvv wcel cdm vprc dmi eleq1i mtbir dmexg mto ) ABCADZBCZLBBCEKBBFGHAB
    IJ $.

  ${
    $d x y A $.
    $( The existence of a restricted identity function, proved without using
       the Axiom of Replacement (unlike ~ resfunexg ).  (Contributed by NM,
       13-Jan-2007.) $)
    resiexg $p |- ( A e. V -> ( _I |` A ) e. _V ) $=
      ( vx vy wcel cid cres cxp wss cvv relres weq cv wa cop simpr eleq1 biimpa
      jca vex opelres wbr df-br ideq bitr3i anbi1i bitri opelxp 3imtr4i sqxpexg
      relssi ssexg sylancr ) ABEFAGZAAHZIUOJEUNJECDUNUOFAKCDLZCMZAEZNZURDMZAEZN
      UQUTOZUNEZVBUOEUSURVAUPURPUPURVAUQUTAQRSVCVBFEZURNUSUQUTFADTZUAVDUPURVDUQ
      UTFUBUPUQUTFUCUQUTVEUDUEUFUGUQUTAAUHUIUKABUJUNUOJULUM $.
  $}

  $( The image of a set is a set.  Theorem 3.17 of [Monk1] p. 39.  (Contributed
     by NM, 24-Jul-1995.) $)
  imaexg $p |- ( A e. V -> ( A " B ) e. _V ) $=
    ( wcel cima crn wss cvv imassrn rnexg ssexg sylancr ) ACDABEZAFZGNHDMHDABIA
    CJMNHKL $.

  ${
    imaex.1 $e |- A e. _V $.
    $( The image of a set is a set.  Theorem 3.17 of [Monk1] p. 39.
       (Contributed by JJ, 24-Sep-2021.) $)
    imaex $p |- ( A " B ) e. _V $=
      ( cvv wcel cima imaexg ax-mp ) ADEABFDECABDGH $.
  $}

  ${
    $d x y A $.  $d x y R $.  $d x V $.
    $( Any set relation is set-like.  (Contributed by Mario Carneiro,
       22-Jun-2015.) $)
    exse2 $p |- ( R e. V -> R Se A ) $=
      ( vy vx wcel cv wbr crab cvv wral wse cdm wss wa cab df-rab breldm adantl
      vex abssi eqsstri dmexg ssexg sylancr ralrimivw df-se sylibr ) BCFZDGZEGZ
      BHZDAIZJFZEAKABLUIUNEAUIUMBMZNUOJFUNUMUJAFZULOZDPUOULDAQUQDUOULUJUOFUPUJU
      KBDTETRSUAUBBCUCUMUOJUDUEUFEDABUGUH $.
  $}

  $( If a Cartesian product is a set, one of its components must be a set.
     (Contributed by NM, 27-Aug-2006.) $)
  xpexr $p |- ( ( A X. B ) e. C -> ( A e. _V \/ B e. _V ) ) $=
    ( cxp wcel cvv wn wi wceq 0ex eleq1 mpbiri pm2.24d a1d wne crn rnexg eleq1d
    c0 rnxp syl5ib a1dd pm2.61ine orrd ) ABDZCEZAFEZBFEZUFUGGZUHHZHASASIZUJUFUK
    UGUHUKUGSFEJASFKLMNASOZUFUHUIUFUEPZFEULUHUECQULUMBFABTRUAUBUCUD $.

  $( If a nonempty Cartesian product is a set, so are both of its components.
     (Contributed by NM, 27-Aug-2006.) $)
  xpexr2 $p |- ( ( ( A X. B ) e. C /\ ( A X. B ) =/= (/) ) ->
               ( A e. _V /\ B e. _V ) ) $=
    ( cxp c0 wne wcel wa cvv xpnz cdm wceq dmxp adantl adantr eqeltrrd crn rnxp
    dmexg rnexg anim12dan ancom2s sylan2br ) ABDZEFUDCGZAEFZBEFZHAIGZBIGZHZABJU
    EUGUFUJUEUGUHUFUIUEUGHUDKZAIUGUKALUEABMNUEUKIGUGUDCSOPUEUFHUDQZBIUFULBLUEAB
    RNUEULIGUFUDCTOPUAUBUC $.

  $( A condition where the converse of ~ xpex holds as well.  Corollary 6.9(2)
     in [TakeutiZaring] p. 26.  (Contributed by Andrew Salmon, 13-Nov-2011.) $)
  xpexcnv $p |- ( ( B =/= (/) /\ ( A X. B ) e. _V ) -> A e. _V ) $=
    ( c0 wne cxp cvv wcel cdm dmexg dmxp eleq1d syl5ib imp ) BCDZABEZFGZAFGZPOH
    ZFGNQOFINRAFABJKLM $.

  ${
    $d x A $.  $d x R $.  $d x V $.
    $( If the relation in a strict order is a set, then the base field is also
       a set.  (Contributed by Mario Carneiro, 27-Apr-2015.) $)
    soex $p |- ( ( R Or A /\ R e. V ) -> A e. _V ) $=
      ( vx wor wcel wa cvv c0 wceq simpr 0ex syl6eqel wne cv wex cun unexg wss
      n0 csn cdm snex dmexg rnexg syl2anc sylancr ad2antlr cdif sossfld adantlr
      crn ssundif sylibr ssexd ex exlimdv imp sylan2b pm2.61dane ) ABEZBCFZGZAH
      FZAIVCAIJZGAIHVCVEKLMAINVCDOZAFZDPZVDDATVCVHVDVCVGVDDVCVGVDVCVGGZAVFUAZBU
      BZBULZQZQZHVBVNHFZVAVGVBVJHFVMHFZVOVFUCVBVKHFVLHFVPBCUDBCUEVKVLHHRUFVJVMH
      HRUGUHVIAVJUIVMSZAVNSVAVGVQVBAVFBUJUKAVJVMUMUNUOUPUQURUSUT $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Membership in a Cartesian product.  This version requires no quantifiers
       or dummy variables.  See also ~ elxp5 , ~ elxp6 , and ~ elxp7 .
       (Contributed by NM, 17-Feb-2004.) $)
    elxp4 $p |- ( A e. ( B X. C ) <-> ( A = <. U. dom { A } , U. ran { A } >.
                 /\ ( U. dom { A } e. B /\ U. ran { A } e. C ) ) ) $=
      ( vx vy wcel cv cop wceq wa wex csn cdm cuni crn sneq unieqd vex pm4.71ri
      syl6req elxp rneqd op2nda anbi1i anass bitri exbii snex rnex uniex eqeq2d
      opeq2 eleq1 anbi2d anbi12d ceqsexv dmeqd op1sta 3bitri dmex opeq1 anbi1d
      cxp ) ABCVCFADGZEGZHZIZVDBFZVECFZJZJZEKZDKVDALZMZNZIZAVDVMOZNZHZIZVHVRCFZ
      JZJZJZDKAVOVRHZIZVOBFZWAJZJZDEABCUAVLWDDVLWCVPVTJZWBJWDVLVEVRIZVKJZEKWCVK
      WLEVKWKVGJZVJJWLVGWMVJVGWKVGVRVFLZOZNVEVGVQWOVGVMWNAVFPUBQVDVEDRZERUCTSUD
      WKVGVJUEUFUGVKWCEVRVQVMAUHZUIUJZWKVGVTVJWBWKVFVSAVEVRVDULUKWKVIWAVHVEVRCU
      MUNUOUPUFVTWJWBVTVPVTVOVSLZMZNVDVTVNWTVTVMWSAVSPUQQVDVRWPWRURTSUDVPVTWBUE
      USUGWCWIDVOVNVMWQUTUJVPVTWFWBWHVPVSWEAVDVOVRVAUKVPVHWGWAVDVOBUMVBUOUPUS
      $.

    $( Membership in a Cartesian product requiring no quantifiers or dummy
       variables.  Provides a slightly shorter version of ~ elxp4 when the
       double intersection does not create class existence problems (caused by
       ~ int0 ).  (Contributed by NM, 1-Aug-2004.) $)
    elxp5 $p |- ( A e. ( B X. C ) <-> ( A = <. |^| |^| A , U. ran { A } >.
                 /\ ( |^| |^| A e. B /\ U. ran { A } e. C ) ) ) $=
      ( vx vy wcel cv cop wceq wa wex cint csn crn cuni syl6req pm4.71ri anbi1i
      vex anass elxp sneq rneqd unieqd op2nda bitri exbii snex rnex uniex opeq2
      cxp eqeq2d eleq1 anbi2d anbi12d ceqsexv inteqd op1stb 3bitri cvv eqvisset
      inteq adantr exlimiv elex ad2antrl opeq1 anbi1d ceqsexgv pm5.21nii ) ABCU
      LFADGZEGZHZIZVLBFZVMCFZJZJZEKZDKVLALZLZIZAVLAMZNZOZHZIZVPWFCFZJZJZJZDKZAW
      BWFHZIZWBBFZWIJZJZDEABCUAVTWLDVTWKWCWHJZWJJWLVTVMWFIZVSJZEKWKVSXAEVSWTVOJ
      ZVRJXAVOXBVRVOWTVOWFVNMZNZOVMVOWEXDVOWDXCAVNUBUCUDVLVMDSZESUEPQRWTVOVRTUF
      UGVSWKEWFWEWDAUHUIUJZWTVOWHVRWJWTVNWGAVMWFVLUKUMWTVQWIVPVMWFCUNUOUPUQUFWH
      WSWJWHWCWHWBWGLZLVLWHWAXGAWGVCURVLWFXEXFUSPQRWCWHWJTUTUGWMWBVAFZWRWLXHDWC
      XHWKDWBVBVDVEWPXHWOWIWBBVFVGWKWRDWBVAWCWHWOWJWQWCWGWNAVLWBWFVHUMWCVPWPWIV
      LWBBUNVIUPVJVKUT $.
  $}

  $( The converse of a set is a set.  Corollary 6.8(1) of [TakeutiZaring]
     p. 26.  (Contributed by NM, 17-Mar-1998.) $)
  cnvexg $p |- ( A e. V -> `' A e. _V ) $=
    ( wcel ccnv cdm crn cxp wss cvv wrel relcnv relssdmrn ax-mp df-rn syl5eqelr
    rnexg dfdm4 dmexg xpexg syl2anc ssexg sylancr ) ABCZADZUDEZUDFZGZHZUGICZUDI
    CUDJUHAKUDLMUCUEICUFICUIUCUEAFIANABPOUCUFAEIAQABROUEUFIISTUDUGIUAUB $.

  ${
    cnvex.1 $e |- A e. _V $.
    $( The converse of a set is a set.  Corollary 6.8(1) of [TakeutiZaring]
       p. 26.  (Contributed by NM, 19-Dec-2003.) $)
    cnvex $p |- `' A e. _V $=
      ( cvv wcel ccnv cnvexg ax-mp ) ACDAECDBACFG $.
  $}

  $( A relation is a set iff its converse is a set.  (Contributed by FL,
     3-Mar-2007.) $)
  relcnvexb $p |- ( Rel R -> ( R e. _V <-> `' R e. _V ) ) $=
    ( wrel cvv wcel ccnv cnvexg wceq wi dfrel2 eleq1 syl5ib sylbi impbid2 ) ABZ
    ACDZAEZCDZACFNPEZAGZQOHAIQRCDSOPCFRACJKLM $.

  $( If the range of a 1-1 onto function is a set, the function itself is a
     set.  (Contributed by AV, 2-Jun-2019.) $)
  f1oexrnex $p |- ( ( F : A -1-1-onto-> B /\ B e. V ) -> F e. _V ) $=
    ( wf1o wcel wa cvv ccnv wf f1ocnv f1of 3syl fex sylancom wrel f1orel adantr
    simpl wb relcnvexb syl mpbird ) ABCEZBDFZGZCHFZCIZHFZUDUEBAUHJZUIUFUDBAUHEU
    JUDUESABCKBAUHLMBADUHNOUFCPZUGUITUDUKUEABCQRCUAUBUC $.

  ${
    $d A f g $.  $d B f g $.
    $( There is a one-to-one onto function from a set to a second set iff there
       is a one-to-one onto function from the second set to the first set.
       (Contributed by Alexander van der Vekens, 30-Sep-2018.) $)
    f1oexbi $p |- ( E. f f : A -1-1-onto-> B <-> E. g g : B -1-1-onto-> A ) $=
      ( cv wf1o wex ccnv cvv wcel vex cnvex f1ocnv f1oeq1 spcegv exlimiv impbii
      mpsyl ) ABCEZFZCGZBADEZFZDGZTUDCSHZIJTBAUEFZUDSCKLABSMUCUFDUEIBAUBUENORPU
      CUADUBHZIJUCABUGFZUAUBDKLBAUBMTUHCUGIABSUGNORPQ $.
  $}

  $( The composition of two sets is a set.  (Contributed by NM,
     19-Mar-1998.) $)
  coexg $p |- ( ( A e. V /\ B e. W ) -> ( A o. B ) e. _V ) $=
    ( wcel wa ccom cdm crn cxp wss cvv cossxp dmexg rnexg xpexg syl2anr sylancr
    ssexg ) ACEZBDEZFABGZBHZAIZJZKUELEZUBLEABMUAUCLEUDLEUFTBDNACOUCUDLLPQUBUELS
    R $.

  ${
    coex.1 $e |- A e. _V $.
    coex.2 $e |- B e. _V $.
    $( The composition of two sets is a set.  (Contributed by NM,
       15-Dec-2003.) $)
    coex $p |- ( A o. B ) e. _V $=
      ( cvv wcel ccom coexg mp2an ) AEFBEFABGEFCDABEEHI $.
  $}

  ${
    $d f g x y z w v A $.
    $( The union of a chain (with respect to inclusion) of single-rooted sets
       is single-rooted.  (See ~ funcnv for "single-rooted" definition.)
       (Contributed by NM, 11-Aug-2004.) $)
    funcnvuni $p |- ( A. f e. A ( Fun `' f /\ A. g e. A ( f C_ g \/ g C_ f ) )
                    -> Fun `' U. A ) $=
      ( vy vx vz vw vv cv ccnv wfun wss wo wral wa wceq wrex wi wal weq cbvrexv
      cab cuni cnveq eqeq2d wcel funeqd sseq1 sseq2 orbi12d ralbidv rspcv funeq
      anbi12d biimprcd cnvss orim12i wb sseq12 syl5ibrcom expd syl6com rexlimdv
      ancoms com23 alrimdv anim12ii syl5bi alrimiv vex eqeq1 rexbidv elab ralab
      df-ral anbi2i imbi12i albii bitr2i sylib fununi cnvuni cnvex dfiun2 eqtri
      syl ciun funeqi sylibr ) BIZJZKZWJCIZLZWMWJLZMZCANZOZBANZDIZEIZJZPZEAQZDU
      BZUCZKZAUCJZKWSFIZKZXIGIZLZXKXILZMZGXENZOZFXENZXGWSXIXBPZEAQZXJXKXBPZEAQZ
      XNRZGSZOZRZFSZXQWSYEFXSXIHIZJZPZHAQWSYDXRYIEHAEHTXBYHXIXAYGUDUEUAWSYIYDHA
      YGAUFWSYHKZYGWMLZWMYGLZMZCANZOZYIYDRWRYOBYGABHTZWLYJWQYNYPWKYHWJYGUDUGYPW
      PYMCAYPWNYKWOYLWJYGWMUHWJYGWMUIUJUKUNULYJYIXJYNYCYIXJYJXIYHUMUOYNYIYBGYNY
      AYIXNYNXTYIXNRZEAXAAUFYNYGXALZXAYGLZMZXTYQRYMYTCXAACETYKYRYLYSWMXAYGUIWMX
      AYGUHUJULYTXTYIXNYTXNXTYIOZYHXBLZXBYHLZMYRUUBYSUUCYGXAUPXAYGUPUQUUAXLUUBX
      MUUCYIXTXLUUBURXIYHXKXBUSVDXKXBXIYHUSUJUTVAVBVCVEVFVGVBVCVHVIXQXIXEUFZXPR
      ZFSYFXPFXEVOUUEYEFUUDXSXPYDXDXSDXIFVJDFTXCXREAWTXIXBVKVLVMXOYCXJXDYAXNGDD
      GTXCXTEAWTXKXBVKVLVNVPVQVRVSVTXEFGWAWFXHXFXHEAXBWGXFEAWBEDAXBXAEVJWCWDWEW
      HWI $.

    $( The union of a chain (with respect to inclusion) of one-to-one functions
       is a one-to-one function.  (Contributed by NM, 11-Aug-2004.) $)
    fun11uni $p |- ( A. f e. A ( ( Fun f /\ Fun `' f ) /\
                   A. g e. A ( f C_ g \/ g C_ f ) ) ->
                   ( Fun U. A /\ Fun `' U. A ) ) $=
      ( cv wfun ccnv wa wo wral cuni simpl anim1i ralimi fununi simpr funcnvuni
      wss syl jca ) BDZEZTFEZGZTCDZQUDTQHCAIZGZBAIZAJZEZUHFEZUGUAUEGZBAIUIUFUKB
      AUCUAUEUAUBKLMABCNRUGUBUEGZBAIUJUFULBAUCUBUEUAUBOLMABCPRS $.
  $}

  $( A function with bounded domain and range is a set.  This version of ~ fex
     is proven without the Axiom of Replacement.  (Contributed by Mario
     Carneiro, 24-Jun-2015.) $)
  fex2 $p |- ( ( F : A --> B /\ A e. V /\ B e. W ) -> F e. _V ) $=
    ( wf wcel w3a cxp cvv xpexg 3adant1 wss fssxp 3ad2ant1 ssexd ) ABCFZADGZBEG
    ZHCABIZJRSTJGQABDEKLQRCTMSABCNOP $.

  ${
    $d A x $.  $d B x $.
    fabexg.1 $e |- F = { x | ( x : A --> B /\ ph ) } $.
    $( Existence of a set of functions.  (Contributed by Paul Chapman,
       25-Feb-2008.) $)
    fabexg $p |- ( ( A e. C /\ B e. D ) -> F e. _V ) $=
      ( wcel wa cxp cvv cpw xpexg pwexg wss cv cab wf fssxp selpw sylibr anim1i
      ss2abi eqsstri ssab2 sstri ssexg mpan 3syl ) CEIDFIJCDKZLIUKMZLIZGLIZCDEF
      NUKLOGULPUMUNGBQZULIZAJZBRZULGCDUOSZAJZBRURHUTUQBUSUPAUSUOUKPUPCDUOTBUKUA
      UBUCUDUEABULUFUGGULLUHUIUJ $.
  $}

  ${
    $d x A $.  $d x B $.
    fabex.1 $e |- A e. _V $.
    fabex.2 $e |- B e. _V $.
    fabex.3 $e |- F = { x | ( x : A --> B /\ ph ) } $.
    $( Existence of a set of functions.  (Contributed by NM, 3-Dec-2007.) $)
    fabex $p |- F e. _V $=
      ( cvv wcel fabexg mp2an ) CIJDIJEIJFGABCDIIEHKL $.
  $}

  $( If a mapping is a set, its domain is a set.  (Contributed by NM,
     27-Aug-2006.)  (Proof shortened by Andrew Salmon, 17-Sep-2011.) $)
  dmfex $p |- ( ( F e. C /\ F : A --> B ) -> A e. _V ) $=
    ( wf wcel cvv cdm wceq wi fdm dmexg eleq1 syl5ib syl impcom ) ABDEZDCFZAGFZ
    QDHZAIZRSJABDKRTGFUASDCLTAGMNOP $.

  ${
    $d A f $.  $d B f $.
    f1oabexg.1 $e |- F = { f | ( f : A -1-1-onto-> B /\ ph ) } $.
    $( The class of all 1-1-onto functions mapping one set to another is a set.
       (Contributed by Paul Chapman, 25-Feb-2008.) $)
    f1oabexg $p |- ( ( A e. C /\ B e. D ) -> F e. _V ) $=
      ( wcel wa cv wf1o cab cvv wf wss f1of anim1i ss2abi eqid sylancr syl5eqel
      fabexg ssexg ) BDICEIJZGBCFKZLZAJZFMZNHUEUIBCUFOZAJZFMZPULNIUINIUHUKFUGUJ
      ABCUFQRSAFBCDEULULTUCUIULNUDUAUB $.
  $}

  ${
    $d A u v x z $.  $d A u v y $.  $d B u v y $.  $d B u v z $.  $d C u v x $.
    $d D u v $.  $d S u v x $.
    fun11iun.1 $e |- ( x = y -> B = C ) $.
    fun11iun.2 $e |- B e. _V $.
    $( The union of a chain (with respect to inclusion) of one-to-one functions
       is a one-to-one function.  (Contributed by Mario Carneiro, 20-May-2013.)
       (Revised by Mario Carneiro, 24-Jun-2015.) $)
    fun11iun $p |- ( A. x e. A ( B : D -1-1-> S /\
                       A. y e. A ( B C_ C \/ C C_ B ) ) ->
                     U_ x e. A B : U_ x e. A D -1-1-> S ) $=
      ( vz vu vv wss wral wa wfun wceq cv wrex wcel wf1 wo ciun wf ccnv wfn crn
      cdm cab cuni vex eqeq1 rexbidv elab r19.29 nfre1 nfab nfral nfan wi f1eq1
      nfv biimparc df-f1 ffun anim1i sylbi syl adantlr eqeq2d cbvrexv wb sseq12
      orbi12d biimprcd expdimp rexlimivw sylan an32s adantlll sylan2b ralrimiva
      ancoms imp jca a1i rexlimi fun11uni simpld dfiun2 funeqi sylibr cop nfra1
      wex rsp eldm2 f1dm eleq2d syl5bbr adantr syl6 rexbida eliun exbii rexcom4
      3bitr4i 3bitr4g eqrdv df-fn sylanbrc rniun f1f ralimi iunss syl5eqss df-f
      frn simprd cnveqi ) FGDUAZDEMZEDMZUBZBCNZOZACNZACFUCZGACDUCZUDZYIUEZPZYHG
      YIUAYGYIYHUFZYIUGZGMYJYGYIPZYIUHZYHQYMYGJRZDQZACSZJUIZUJZPZYOYGUUBUUAUEZP
      ZYGKRZPZUUEUEPZOZUUELRZMZUUIUUEMZUBZLYTNZOZKYTNUUBUUDOYGUUNKYTUUEYTTYGUUE
      DQZACSZUUNYSUUPJUUEKUKZYQUUEQYRUUOACYQUUEDULUMUNYGUUPOYFUUOOZACSUUNYFUUOA
      CUOUURUUNACUUHUUMAUUHAVBUULALYTYSAJYRACUPUQUULAVBURUSUURUUNUTARZCTZUURUUH
      UUMYAUUOUUHYEYAUUOOFGUUEUAZUUHUUOUVAYAFGUUEDVAVCUVAFGUUEUDZUUGOUUHFGUUEVD
      UVBUUFUUGFGUUEVEVFVGVHVIUURUULLYTUUIYTTUURUUIDQZACSZUULYSUVDJUUILUKYQUUIQ
      YRUVCACYQUUIDULUMUNUVDUURUUIEQZBCSZUULUVCUVEABCUUSBRQDEUUIHVJVKYEUUOUVFUU
      LYAYEUVFUUOUULYEUVFOYDUVEOZBCSZUUOUULYDUVEBCUOUVHUUOUULUVGUUOUULUTBCYDUVE
      UUOUULUVEUUOOZUULYDUVIUUJYBUUKYCUUOUVEUUJYBVLUUEDUUIEVMWCUUIEUUEDVMVNVOVP
      VQWDVRVSVTWAWAWBWEWFWGVHWAWBYTKLWHVHZWIYIUUAAJCDIWJZWKWLYGKYPYHYGUUEUUIWM
      ZDTZLWOZACSZUUEFTZACSUUEYPTZUUEYHTYGUVNUVPACYFACWNYGUUTUVNUVPVLZYGUUTYFUV
      RYFACWPYAUVRYEUVNUUEDUHZTYAUVPLUUEDUUQWQYAUVSFUUEFGDWRWSWTXAXBWDXCUVLYITZ
      LWOUVMACSZLWOUVQUVOUVTUWALAUVLCDXDXELUUEYIUUQWQUVMALCXFXGAUUECFXDXHXIYIYH
      XJXKYGYNACDUGZUCZGACDXLYGUWBGMZACNUWCGMYFUWDACYAUWDYEYAFGDUDUWDFGDXMFGDXR
      VHXAXNACUWBGXOWLXPYHGYIXQXKYGUUDYLYGUUBUUDUVJXSYKUUCYIUUAUVKXTWKWLYHGYIVD
      XK $.
  $}

  ${
    $d x F $.  $d x A $.  $d x B $.
    f11o.1 $e |- F e. _V $.
    $( Relationship between a mapping and an onto mapping.  Figure 38 of
       [Enderton] p. 145.  (Contributed by NM, 10-May-1998.) $)
    ffoss $p |- ( F : A --> B <-> E. x ( F : A -onto-> x /\ x C_ B ) ) $=
      ( wf cv wfo wss wa wex crn wfn df-f dffn4 anbi1i bitri rnex wceq foeq3
      sseq1 anbi12d spcev sylbi fof fss sylan exlimiv impbii ) BCDFZBAGZDHZUKCI
      ZJZAKZUJBDLZDHZUPCIZJZUOUJDBMZURJUSBCDNUTUQURBDOPQUNUSAUPDERUKUPSULUQUMUR
      UKUPBDTUKUPCUAUBUCUDUNUJAULBUKDFUMUJBUKDUEBUKCDUFUGUHUI $.

    $( Relationship between one-to-one and one-to-one onto function.
       (Contributed by NM, 4-Apr-1998.) $)
    f11o $p |- ( F : A -1-1-> B <-> E. x ( F : A -1-1-onto-> x /\ x C_ B ) ) $=
      ( wf ccnv wfun wa cv wfo wss wex wf1 wf1o ffoss anbi1i df-f1 dff1o3 bitri
      an32 exbii 19.41v 3bitr4i ) BCDFZDGHZIBAJZDKZUGCLZIZAMZUFIZBCDNBUGDOZUIIZ
      AMZUEUKUFABCDEPQBCDRUOUJUFIZAMULUNUPAUNUHUFIZUIIUPUMUQUIBUGDSQUHUFUIUATUB
      UJUFAUCTUD $.
  $}

  $( Alternate proof of ~ resfunexg , shorter but requiring ~ ax-pow and
     ~ ax-un .  (Contributed by NM, 7-Apr-1995.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  resfunexgALT $p |- ( ( Fun A /\ B e. C ) -> ( A |` B ) e. _V ) $=
    ( wfun wcel cres cdm cvv crn cxp dmresexg adantl df-ima funimaexg syl5eqelr
    wa cima jca xpexg wss wrel relres relssdmrn ax-mp ssexg mpan 3syl ) ADZBCEZ
    PZABFZGZHEZUKIZHEZPULUNJZHEZUKHEZUJUMUOUIUMUHABCKLUJUNABQHABMABCNORULUNHHSU
    KUPTZUQURUKUAUSABUBUKUCUDUKUPHUEUFUG $.

  $( Existence of a composition when the first member is a function.
     (Contributed by NM, 8-Oct-2007.) $)
  cofunexg $p |- ( ( Fun A /\ B e. C ) -> ( A o. B ) e. _V ) $=
    ( wfun wcel wa ccom cdm crn cxp wss wrel relco relssdmrn ax-mp dmcoss ssexg
    cvv sylancr rnexg dmexg adantl cres rnco resfunexg sylan2 syl xpexg syl2anc
    syl5eqel ) ADZBCEZFZABGZUNHZUNIZJZKZUQREZUNREUNLURABMUNNOUMUOREZUPREUSULUTU
    KULUOBHZKVAREUTABPBCUAUOVARQSUBUMUPABIZUCZIZRABUDUMVCREZVDREULUKVBREVEBCTAV
    BRUEUFVCRTUGUJUOUPRRUHUIUNUQRQS $.

  $( Existence of a composition when the second member is one-to-one.
     (Contributed by NM, 8-Oct-2007.) $)
  cofunex2g $p |- ( ( A e. V /\ Fun `' B ) -> ( A o. B ) e. _V ) $=
    ( ccnv wfun wcel ccom cvv wa cnvexg cofunexg sylan2 cnvco cocnvcnv2 3eqtrri
    cocnvcnv1 syl5eqel syl ancoms ) BDZEZACFZABGZHFZUAUBITADZGZHFZUDUBUAUEHFUGA
    CJTUEHKLUGUCUFDZHUHUEDZTDGUIBGUCTUEMUIBNABPOUFHJQRS $.

  $( Alternate proof of ~ fnex , derived using the Axiom of Replacement in the
     form of ~ funimaexg .  This version uses ~ ax-pow and ~ ax-un , whereas
     ~ fnex does not.  (Contributed by NM, 14-Aug-1994.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  fnexALT $p |- ( ( F Fn A /\ A e. B ) -> F e. _V ) $=
    ( wfn wcel wa cdm crn cxp wss cvv fnrel relssdmrn syl adantr eleq1d biimpar
    wrel cima syl2anc fndm fnfun funimaexg sylan imadmrn imaeq2d syl5eqr syldan
    wfun xpexg ssexg ) CADZABEZFZCCGZCHZIZJZUQKEZCKEULURUMULCRURACLCMNOUNUOBEZU
    PKEZUSULUTUMULUOABACUAZPQULUMCASZKEZVAULCUIUMVDACUBCABUCUDULVAVDULUPVCKULUP
    CUOSVCCUEULUOACVBUFUGPQUHUOUPBKUJTCUQKUKT $.

  $( If the domain of a function exists, so does its range.  Part of Theorem
     4.15(v) of [Monk1] p. 46.  This theorem is derived using the Axiom of
     Replacement in the form of ~ funex .  (Contributed by NM, 11-Nov-1995.) $)
  funrnex $p |- ( dom F e. B -> ( Fun F -> ran F e. _V ) ) $=
    ( wfun cdm wcel cvv crn funex ex rnexg syl6com ) BCZBDAEZBFEZBGFELMNABHIBFJ
    K $.

  ${
    $d ph w $.  $d x y z w $.
    $( A version of the Axiom of Replacement.  Normally ` ph ` would have free
       variables ` x ` and ` y ` .  Axiom 6 of [Kunen] p. 12.  The Separation
       Scheme ~ ax-sep cannot be derived from this version and must be stated
       as a separate axiom in an axiom system (such as Kunen's) that uses this
       version in place of our ~ ax-rep .  (Contributed by NM, 10-Oct-2003.) $)
    zfrep6 $p |- ( A. x e. z E! y ph -> E. w A. x e. z E. y e. w ph ) $=
      ( cv wral wcel wa cvv wrex wex wceq sylibr cab vex wi wal wmo 3imtr4i weu
      copab crn wfun crab euex ralimi rabid2 19.42v abbii dmopab df-rab 3eqtr4i
      cdm syl6reqr syl6eqel eumo imim2i moanimv alimi df-ral funopab sylc nfra1
      funrnex eleq2d cop opabid opelrn sylbir impac eximi abeq2i df-rex syl6bir
      ex ralrimi nfopab1 nfrn nfeq2 nfcv nfopab2 rexeqf ralbid spcegv ) ACUAZBD
      FZGZBFZWGHZAIZBCUBZUCZJHZACWMKZBWGGZACEFZKZBWGGZELWHWLUNZJHWLUDZWNWHWTWGJ
      WHWGACLZBWGUEZWTWHXBBWGGWGXCMWFXBBWGACUFUGXBBWGUHNWKCLZBOWJXBIZBOWTXCXDXE
      BWJACUIUJWKBCUKZXBBWGULUMUOZDPUPWJWFQZBRWKCSZBRWHXAXHXIBXHWJACSZQXIWFXJWJ
      ACUQURWJACUSNUTWFBWGVAWKBCVBTJWLVEVCWHWOBWGWFBWGVDWHWJWIWTHZWOWHWTWGWIXGV
      FXDCFZWMHZAIZCLXKWOWKXNCWJAXMWJAXMWKWIXLVGWLHXMWKBCVHWIXLWLBPCPVIVJVPVKVL
      XDBWTXFVMACWMVNTVOVQWSWPEWMJWQWMMWRWOBWGBWQWMBWLWKBCVRVSVTACWQWMCWQWACWLW
      KBCWBVSWCWDWEVC $.
  $}

  $( If the domain of an onto function exists, so does its codomain.
     (Contributed by NM, 23-Jul-2004.) $)
  fornex $p |- ( A e. C -> ( F : A -onto-> B -> B e. _V ) ) $=
    ( wfo wcel cvv cdm crn wfun funrnex syl5com wf wceq fof fdm syl eleq1d forn
    fofun 3imtr3d com12 ) ABDEZACFZBGFZUCDHZCFZDIZGFZUDUEUCDJUGUIABDTCDKLUCUFAC
    UCABDMUFANABDOABDPQRUCUHBGABDSRUAUB $.

  $( If the codomain of a one-to-one function exists, so does its domain.  This
     theorem is equivalent to the Axiom of Replacement ~ ax-rep .  (Contributed
     by NM, 4-Sep-2004.) $)
  f1dmex $p |- ( ( F : A -1-1-> B /\ B e. C ) -> A e. _V ) $=
    ( wf1 wcel cvv crn ccnv wfo wss wf f1f frn syl ssexg sylan ex wf1o f1cnv
    f1ofo fornex syl6ci imp ) ABDEZBCFZAGFZUEUFDHZGFZUHADIZJZUGUEUFUIUEUHBKZUFU
    IUEABDLULABDMABDNOUHBCPQRUEUHAUJSUKABDTUHAUJUAOUHAGUJUBUCUD $.

  $( The range of a 1-1 onto function is a set iff its domain is a set.
     (Contributed by AV, 21-Mar-2019.) $)
  f1ovv $p |- ( F : A -1-1-onto-> B -> ( A e. _V <-> B e. _V ) ) $=
    ( wf1o cvv wcel wfo f1ofo fornex syl5com wf1 wi f1of1 f1dmex ex syl impbid
    ) ABCDZAEFZBEFZRABCGSTABCHABECIJRABCKZTSLABCMUATSABECNOPQ $.

  ${
    $d x y F $.
    fvclex.1 $e |- F e. _V $.
    $( Existence of the class of values of a set.  (Contributed by NM,
       9-Nov-1995.) $)
    fvclex $p |- { y | E. x y = ( F ` x ) } e. _V $=
      ( cv cfv wceq wex cab crn c0 csn cun rnex p0ex unex fvclss ssexi ) BEAECF
      GAHBICJZKLZMSTCDNOPABCQR $.
  $}

  ${
    $d x y z A $.  $d x y z F $.
    fvresex.1 $e |- A e. _V $.
    $( Existence of the class of values of a restricted class.  (Contributed by
       NM, 14-Nov-1995.)  (Revised by Mario Carneiro, 11-Sep-2015.) $)
    fvresex $p |- { y | E. x y = ( ( F |` A ) ` x ) } e. _V $=
      ( vz cv cfv cmpt wceq wex cab cres cvv wss ssv resmpt ax-mp fveq1i wcel
      vex fveq2 eqid fvex fvmpt eqtr3i eqeq2i exbii abbii mptex fvclex eqeltrri
      fveqres ) BGZAGZFCFGZDHZIZHZJZAKZBLUNUODCMHZJZAKZBLNVAVDBUTVCAUSVBUNUOFNU
      QIZCMZHZUSVBUOVFURCNOVFURJCPFNCUQQRSUOVEHUODHZJZVGVBJUONTVIAUAFUOUQVHNVEU
      PUODUBVEUCUODUDUERUOCVEDUMRUFUGUHUIABURFCUQEUJUKUL $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( Existence of a class abstraction of existentially restricted sets.  The
       class ` B ` can be thought of as an expression in ` x ` (which is
       typically a free variable in the class expression substituted for
       ` B ` ) and the class abstraction appearing in the statement as the
       class of values ` B ` as ` x ` varies through ` A ` .  If the "domain"
       ` A ` is a set, then the abstraction is also a set.  Therefore, this
       statement is a kind of Replacement.  This can be seen by tracing back
       through the path ~ mptexg , ~ funex , ~ fnex , ~ resfunexg , and
       ~ funimaexg .  See also ~ abrexex2g .  There are partial converses under
       additional conditions, see for instance ~ abnexg .  (Contributed by NM,
       3-Nov-2003.)  (Proof shortened by Mario Carneiro, 31-Aug-2015.) $)
    abrexexg $p |- ( A e. V -> { y | E. x e. A y = B } e. _V ) $=
      ( wcel wceq wrex cab cmpt crn cvv eqid rnmpt mptexg rnexg syl syl5eqelr
      cv ) CEFZBSDGACHBIACDJZKZLABCDUAUAMNTUALFUBLFACDEOUALPQR $.
  $}

  ${
    $d x y A $.  $d y B $.
    abrexex.1 $e |- A e. _V $.
    $( Existence of a class abstraction of existentially restricted sets.  See
       the comment of ~ abrexexg .  See also ~ abrexex2 .  (Contributed by NM,
       16-Oct-2003.)  (Proof shortened by Mario Carneiro, 31-Aug-2015.) $)
    abrexex $p |- { y | E. x e. A y = B } e. _V $=
      ( cvv wcel cv wceq wrex cab abrexexg ax-mp ) CFGBHDIACJBKFGEABCDFLM $.

    $( Obsolete proof of ~ abrexex as of 8-Dec-2021.  (Contributed by NM,
       16-Oct-2003.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    abrexexOLD $p |- { y | E. x e. A y = B } e. _V $=
      ( cmpt crn cv wceq wrex cab cvv eqid rnmpt mptex rnex eqeltrri ) ACDFZGBH
      DIACJBKLABCDRRMNRACDEOPQ $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( The existence of an indexed union. ` x ` is normally a free-variable
       parameter in ` B ` .  (Contributed by NM, 23-Mar-2006.) $)
    iunexg $p |- ( ( A e. V /\ A. x e. A B e. W ) -> U_ x e. A B e. _V ) $=
      ( vy wcel wral ciun wceq wrex cab cuni cvv dfiun2g adantl abrexexg uniexg
      wa cv syl adantr eqeltrd ) BDGZCEGABHZSABCIZFTCJABKFLZMZNUEUFUHJUDAFBCEOP
      UDUHNGZUEUDUGNGUIAFBCDQUGNRUAUBUC $.
  $}

  ${
    $d A x y z $.  $d V x y z $.  $d W x y z $.  $d ph z $.
    $( Existence of an existentially restricted class abstraction.
       (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    abrexex2g $p |- ( ( A e. V /\ A. x e. A { y | ph } e. W )
                                  -> { y | E. x e. A ph } e. _V ) $=
      ( vz wcel cab wral wa wrex cv cvv wsb nfv nfcv nfs1v nfrex weq cbvab ciun
      sbequ12 rexbidv df-clab rexbii eqtr4i df-iun iunexg syl5eqelr syl5eqel
      abbii ) DEHACIZFHBDJKZABDLZCIZGMUMHZBDLZGIZNUPACGOZBDLZGIUSUOVACGUOGPUTCB
      DCDQACGRSCGTAUTBDACGUCUDUAURVAGUQUTBDAGCUEUFULUGUNUSBDUMUBNBGDUMUHBDUMEFU
      IUJUK $.
  $}

  ${
    $d A x y v w z $.  $d ps v w z $.  $d ph x $.
    opabex3d.1 $e |- ( ph -> A e. _V ) $.
    opabex3d.2 $e |- ( ( ph /\ x e. A ) -> { y | ps } e. _V ) $.
    $( Existence of an ordered pair abstraction, deduction version.
       (Contributed by Alexander van der Vekens, 19-Oct-2017.) $)
    opabex3d $p |- ( ph -> { <. x , y >. | ( x e. A /\ ps ) } e. _V ) $=
      ( vz vv vw cv wcel wa cvv wex cop wceq an12 exbii bitri copab csn cab cxp
      ciun 19.42v excom weq velsn anbi1i vex opeq1 eqeq2d anbi1d ceqsexv nfsab1
      elxp nfv nfan opeq2 wsb wb sbequ12 equcoms df-clab syl6rbbr anbi12d cbvex
      3bitri anbi2i 3bitr4ri wrex eliun df-rex elopab 3bitr4i wral snex sylancr
      eqriv xpexg ralrimiva iunexg syl2anc syl5eqelr ) ACKZELZBMZCDUAZCEWFUBZBD
      UCZUDZUEZNHWMWIWGHKZWLLZMZCOZWNWFDKZPZQZWHMZDOZCOWNWMLZWNWILWPXBCWGWTBMZM
      ZDOWGXDDOZMXBWPWGXDDUFXAXEDWTWGBRSWOXFWGWOWNIKZJKZPZQZXGWJLZXHWKLZMMZJOIO
      ZWNWFXHPZQZXLMZJOZXFIJWNWJWKUQXNXMIOZJOXRXMIJUGXSXQJXSICUHZXJXLMZMZIOXQXM
      YBIXMXKYAMYBXJXKXLRXKXTYAIWFUIUJTSYAXQIWFCUKXTXJXPXLXTXIXOWNXGWFXHULUMUNU
      OTSTXQXDJDXPXLDXPDURBDJUPUSXDJURJDUHZXPWTXLBYCXOWSWNXHWRWFUTUMYCBBDJVAZXL
      BYDVBDJBDJVCVDBJDVEVFVGVHVIVJVKSXCWOCEVLWQCWNEWLVMWOCEVNTWHCDWNVOVPVTAENL
      WLNLZCEVQWMNLFAYECEAWGMWJNLWKNLYEWFVRGWJWKNNWAVSWBCEWLNNWCWDWE $.
  $}

  ${
    $d A x y v w z $.  $d ph v w z $.
    opabex3.1 $e |- A e. _V $.
    opabex3.2 $e |- ( x e. A -> { y | ph } e. _V ) $.
    $( Existence of an ordered pair abstraction.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    opabex3 $p |- { <. x , y >. | ( x e. A /\ ph ) } e. _V $=
      ( vz vv vw cv wcel wa cvv wex cop wceq an12 exbii bitri eqeq2d ciun copab
      csn cab cxp 19.42v excom velsn anbi1i vex opeq1 anbi1d ceqsexv nfv nfsab1
      elxp nfan opeq2 wsb sbequ12 equcoms df-clab syl6rbbr anbi12d cbvex 3bitri
      wb anbi2i 3bitr4ri wrex eliun df-rex elopab 3bitr4i eqriv wral snex xpexg
      sylancr rgen iunexg mp2an eqeltrri ) BDBJZUCZACUDZUEZUAZWDDKZALZBCUBZMGWH
      WKWIGJZWGKZLZBNZWLWDCJZOZPZWJLZCNZBNWLWHKZWLWKKWNWTBWIWRALZLZCNWIXBCNZLWT
      WNWIXBCUFWSXCCWRWIAQRWMXDWIWMWLHJZIJZOZPZXEWEKZXFWFKZLLZINHNZWLWDXFOZPZXJ
      LZINZXDHIWLWEWFUPXLXKHNZINXPXKHIUGXQXOIXQXEWDPZXHXJLZLZHNXOXKXTHXKXIXSLXT
      XHXIXJQXIXRXSHWDUHUISRXSXOHWDBUJXRXHXNXJXRXGXMWLXEWDXFUKTULUMSRSXOXBICXNX
      JCXNCUNACIUOUQXBIUNXFWPPZXNWRXJAYAXMWQWLXFWPWDURTYAAACIUSZXJAYBVGCIACIUTV
      AAICVBVCVDVEVFVHVIRXAWMBDVJWOBWLDWGVKWMBDVLSWJBCWLVMVNVODMKWGMKZBDVPWHMKE
      YCBDWIWEMKWFMKYCWDVQFWEWFMMVRVSVTBDWGMMWAWBWC $.
  $}

  ${
    $d x A $.
    iunex.1 $e |- A e. _V $.
    iunex.2 $e |- B e. _V $.
    $( The existence of an indexed union. ` x ` is normally a free-variable
       parameter in the class expression substituted for ` B ` , which can be
       read informally as ` B ( x ) ` .  (Contributed by NM, 13-Oct-2003.) $)
    iunex $p |- U_ x e. A B e. _V $=
      ( cvv wcel wral ciun rgenw iunexg mp2an ) BFGCFGZABHABCIFGDMABEJABCFFKL
      $.
  $}

  ${
    $d x y A $.
    abrexex2.1 $e |- A e. _V $.
    abrexex2.2 $e |- { y | ph } e. _V $.
    $( Existence of an existentially restricted class abstraction. ` ph `
       normally has free-variable parameters ` x ` and ` y ` .  See also
       ~ abrexex .  (Contributed by NM, 12-Sep-2004.) $)
    abrexex2 $p |- { y | E. x e. A ph } e. _V $=
      ( cvv wcel cab wral wrex rgenw abrexex2g mp2an ) DGHACIGHZBDJABDKCIGHEOBD
      FLABCDGGMN $.

    $( Existence of a class abstraction with an existentially quantified
       expression.  Both ` x ` and ` y ` can be free in ` ph ` .  (Contributed
       by NM, 29-Jul-2006.) $)
    abexssex $p |- { y | E. x ( x C_ A /\ ph ) } e. _V $=
      ( cpw wrex cab cv wss wa wex cvv wcel df-rex selpw anbi1i exbii bitri
      abbii pwex abrexex2 eqeltrri ) ABDGZHZCIBJZDKZALZBMZCINUFUJCUFUGUEOZALZBM
      UJABUEPULUIBUKUHABDQRSTUAABCUEDEUBFUCUD $.
  $}

  ${
    $d x y z A $.  $d z ph $.
    abrexex2OLD.1 $e |- A e. _V $.
    abrexex2OLD.2 $e |- { y | ph } e. _V $.
    $( Obsolete proof of ~ abrexex2 as of 8-Dec-2021.  (Contributed by NM,
       12-Sep-2004.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    abrexex2OLD $p |- { y | E. x e. A ph } e. _V $=
      ( vz wrex cab cv wcel cvv wsb nfv nfcv nfs1v nfrex weq sbequ12 rexbidv
      cbvab df-clab rexbii abbii eqtr4i ciun df-iun iunex eqeltrri eqeltri ) AB
      DHZCIZGJACIZKZBDHZGIZLULACGMZBDHZGIUPUKURCGUKGNUQCBDCDOACGPQCGRAUQBDACGST
      UAUOURGUNUQBDAGCUBUCUDUEBDUMUFUPLBGDUMUGBDUMEFUHUIUJ $.
  $}

  ${
    $d x y A $.
    abexex.1 $e |- A e. _V $.
    abexex.2 $e |- ( ph -> x e. A ) $.
    abexex.3 $e |- { y | ph } e. _V $.
    $( A condition where a class builder continues to exist after its wff is
       existentially quantified.  (Contributed by NM, 4-Mar-2007.) $)
    abexex $p |- { y | E. x ph } e. _V $=
      ( wrex cab wex cvv cv wcel wa df-rex pm4.71ri exbii bitr4i abbii abrexex2
      eqeltrri ) ABDHZCIABJZCIKUBUCCUBBLDMZANZBJUCABDOAUEBAUDFPQRSABCDEGTUA $.
  $}

  ${
    $d z w v u f R $.  $d x y z w v u f S $.  $d z w v u f A $.
    $d z w v u f B $.  $d x y z w v u f F $.
    f1oweALT.1 $e |- R = { <. x , y >. | ( F ` x ) S ( F ` y ) } $.
    $( Alternate proof of ~ f1owe , more direct since not using the isomorphism
       predicate, but requiring ~ ax-un .  (Contributed by NM, 4-Mar-1997.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    f1oweALT $p |- ( F : A -1-1-onto-> B -> ( S We B -> R We A ) ) $=
      ( vu vf vw vv cv wbr wceq wral wa wi wcel cfv vz wf1o wfr w3o wwe wfo wfn
      f1ofo crn df-fo freq2 biimprd wfun cdm df-fn wss c0 wne wn wrex wal df-fr
      cima cvv vex funimaex wex n0 funfvima2 ne0i syl6 exlimdv syl5bi imp jctil
      imassrn sseq1 neeq1 anbi12d raleq rexeqbi1dv imbi12d spcgv syl7 syl com23
      expd anabsi5 impd cres wb fores fvres breqan12rd fveq2 breq1d breq2d brab
      syl6rbbr ralbidva rexbiia breq1 cbvfo rexbidv breq2 ralbidv cbvexfo bitrd
      notbid syl5bb sylibrd exp4b com34 imp4a alrimdv syl6ibr biimpd sylan9 wf1
      sylbi sylan9r df-f1o a1i f1fveq bicomd 3orbi123d 2ralbidva eqeq1 sylan9bb
      eqeq2 anim12d dfwe2 3imtr4g ) CDGUBZDFUCZIMZJMZFNZYPYQOZYQYPFNZUDZJDPZIDP
      ZQCEUCZKMZLMZENZUUEUUFOZUUFUUEENZUDZLCPKCPZQDFUECEUEYNYOUUDUUCUUKYNCDGUFZ
      YOUUDRZCDGUHUULGCUGZGUIZDOZQUUMCDGUJUUPYOUUOFUCZUUNUUDUUPUUQYOUUODFUKULUU
      NGUMZGUNZCOZQUUQUUDRGCUOUURUUQUUSEUCZUUTUUDUURUUQUAMZUUSUPZUVBUQURZQUUIUS
      ZLUVBPZKUVBUTZRZUAVAUVAUURUUQUVHUAUURUUQUVCUVDUVGUURUVCUUQUVDUVGRUURUVCUV
      DUUQUVGUURUVCUVDUUQUVGUURUVCQZUVDUUQQYTUSZJGUVBVCZPZIUVKUTZUVGUVIUVDUUQUV
      MUURUVCUVDUUQUVMRZRUURUVIUVDUVNUURUUQUVIUVDQZUVMUUQUUEUUOUPZUUEUQURZQZUVJ
      JUUEPZIUUEUTZRZKVAZUURUVOUVMRZKIJUUOFVBUURUVKVDSZUWBUWCRGUVBUAVEVFUVOUVKU
      UOUPZUVKUQURZQZUWDUWBUVMUVOUWFUWEUVIUVDUWFUVDUUEUVBSZKVGUVIUWFKUVBVHUVIUW
      HUWFKUVIUWHUUEGTZUVKSUWFUVBUUEGVIUVKUWIVJVKVLVMVNGUVBVPVOUWAUWGUVMRKUVKVD
      UUEUVKOZUVRUWGUVTUVMUWJUVPUWEUVQUWFUUEUVKUUOVQUUEUVKUQVRVSUVSUVLIUUEUVKUV
      JJUUEUVKVTWAWBWCWDWEVMWFWGWHWIUVIUVBUVKGUVBWJZUFZUVGUVMWKUVBGWLUVGUUFUWKT
      ZUUEUWKTZFNZUSZLUVBPZKUVBUTZUWLUVMUVFUWQKUVBUWHUVEUWPLUVBUWHUUFUVBSZQZUUI
      UWOUWTUWOUUFGTZUWIFNZUUIUWSUWHUWMUXAUWNUWIFUUFUVBGWMUUEUVBGWMWNAMZGTZBMZG
      TZFNZUXAUXFFNUXBABUUFUUEELVEZKVEZUXCUUFOUXDUXAUXFFUXCUUFGWOWPUXEUUEOUXFUW
      IUXAFUXEUUEGWOWQHWRZWSXIWTXAUWLUWRYQUWNFNZUSZJUVKPZKUVBUTUVMUWLUWQUXMKUVB
      UWPUXLLJUVBUVKUWKUWMYQOUWOUXKUWMYQUWNFXBXIXCXDUXMUVLKIUVBUVKUWKUWNYPOZUXL
      UVJJUVKUXNUXKYTUWNYPYQFXEXIXFXGXHXJWEXKXLXMWFXNXOUAKLUUSEVBXPUUTUVAUUDUUS
      CEUKXQXRXTYAXTWEYNUUKUUCYNCDGXSZUULQUUKUUCWKCDGYBUXOUUKUWIUXAFNZUWIUXAOZU
      XBUDZLCPZKCPZUULUUCUXOUUJUXRKLCCUXOUUECSUUFCSQQZUUGUXPUUHUXQUUIUXBUUGUXPW
      KUYAUXGUWIUXFFNUXPABUUEUUFEUXIUXHUXCUUEOUXDUWIUXFFUXCUUEGWOWPUXEUUFOUXFUX
      AUWIFUXEUUFGWOWQHWRYCUYAUXQUUHCDUUEUUFGYDYEUUIUXBWKUYAUXJYCYFYGUULUXTYPUX
      AFNZYPUXAOZUXAYPFNZUDZLCPZIDPUUCUXSUYFKICDGUWIYPOZUXRUYELCUYGUXPUYBUXQUYC
      UXBUYDUWIYPUXAFXBUWIYPUXAYHUWIYPUXAFXEYFXFXCUULUYFUUBIDUYEUUALJCDGUXAYQOU
      YBYRUYCYSUYDYTUXAYQYPFXEUXAYQYPYJUXAYQYPFXBYFXCXFXHYIXTULYKIJDFYLKLCEYLYM
      $.
  $}

  ${
    $d R f g $.  $d A f g $.  $d S f g $.  $d B f g $.
    $( Thus, there is at most one isomorphism between any two well-ordered
       sets.  TODO:  Shorten ~ finnisoeu .  (Contributed by Stefan O'Rear,
       12-Feb-2015.)  (Revised by Mario Carneiro, 25-Jun-2015.) $)
    wemoiso $p |- ( R We A -> E* f f Isom R , S ( A , B ) ) $=
      ( vg wwe cv wiso wa weq wi wal wmo wse simpl cvv wcel wf syl isof1o dmfex
      vex wf1o f1of sylancr ad2antrl exse jca weisoeq sylancom ex isoeq1 sylibr
      alrimivv mo4 ) ACGZABCDEHZIZABCDFHZIZJZEFKZLZFMEMUSENUQVDEFUQVBVCUQVBUQAC
      OZJVCUQVBJZUQVEUQVBPVFAQRZVEUSVGUQVAUSURQRABURSZVGEUCUSABURUDVHABCDURUAAB
      URUETABQURUBUFUGACQUHTUIABCDURUTUJUKULUOUSVAEFABCDUTURUMUPUN $.

    $( Thus, there is at most one isomorphism between any two well-ordered
       sets.  (Contributed by Stefan O'Rear, 12-Feb-2015.)  (Revised by Mario
       Carneiro, 25-Jun-2015.) $)
    wemoiso2 $p |- ( S We B -> E* f f Isom R , S ( A , B ) ) $=
      ( vg wwe cv wiso wa wceq wi wal wmo wse simpl cvv wcel crn wf1o wfo f1ofo
      isof1o forn 3syl vex rnex syl6eqelr ad2antrl syl jca weisoeq2 sylancom ex
      exse alrimivv isoeq1 mo4 sylibr ) BDGZABCDEHZIZABCDFHZIZJZVAVCKZLZFMEMVBE
      NUTVGEFUTVEVFUTVEUTBDOZJVFUTVEJZUTVHUTVEPVIBQRZVHVBVJUTVDVBBVASZQVBABVATA
      BVAUAVKBKABCDVAUCABVAUBABVAUDUEVAEUFUGUHUIBDQUOUJUKABCDVAVCULUMUNUPVBVDEF
      ABCDVCVAUQURUS $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d ph x y z $.
    oprabexd.1 $e |- ( ph -> A e. _V ) $.
    oprabexd.2 $e |- ( ph -> B e. _V ) $.
    oprabexd.3 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> E* z ps ) $.
    oprabexd.4 $e |- ( ph -> F = { <. <. x , y >. , z >. |
                                        ( ( x e. A /\ y e. B ) /\ ps ) } ) $.
    $( Existence of an operator abstraction.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    oprabexd $p |- ( ph -> F e. _V ) $=
      ( cv wcel wa coprab cvv wmo wal syl2anc cdm wi ex moanimv sylibr alrimivv
      wfun funoprabg syl cxp wss dmoprabss xpexg ssexg sylancr funex eqeltrd )
      AHCMFNDMGNOZBOZCDEPZQLAUTUGZUTUAZQNZUTQNAUSERZDSCSVAAVDCDAURBERZUBVDAURVE
      KUCURBEUDUEUFUSCDEUHUIAVBFGUJZUKVFQNZVCBCDEFGULAFQNGQNVGIJFGQQUMTVBVFQUNU
      OQUTUPTUQ $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    oprabex.1 $e |- A e. _V $.
    oprabex.2 $e |- B e. _V $.
    oprabex.3 $e |- ( ( x e. A /\ y e. B ) -> E* z ph ) $.
    oprabex.4 $e |- F = { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B )
             /\ ph ) } $.
    $( Existence of an operation class abstraction.  (Contributed by NM,
       19-Oct-2004.) $)
    oprabex $p |- F e. _V $=
      ( cv wcel wa coprab cvv wfun cdm wmo wi mpbir funoprab cxp xpex dmoprabss
      moanimv ssexi funex mp2an eqeltri ) GBLEMCLFMNZANZBCDOZPKUMQUMRZPMUMPMULB
      CDULDSUKADSTJUKADUFUAUBUNEFUCEFHIUDABCDEFUEUGPUMUHUIUJ $.
  $}

  ${
    $d x y z w v u f H $.  $d x y z R $.
    oprabex3.1 $e |- H e. _V $.
    oprabex3.2 $e |- F = { <. <. x , y >. , z >. | ( ( x e. ( H X. H ) /\
                      y e. ( H X. H ) ) /\
                      E. w E. v E. u E. f ( ( x = <. w , v >. /\
                      y = <. u , f >. ) /\ z = R ) ) } $.
    $( Existence of an operation class abstraction (special case).
       (Contributed by NM, 19-Oct-2004.) $)
    oprabex3 $p |- F e. _V $=
      ( cv cop wceq wa wex wmo wcel mosubop cxp xpex anass 2exbii 19.42vv bitri
      moeq mobii mpbir a1i oprabex ) AMZDMEMNOZBMZFMHMNOZPCMGOZPZHQFQZEQDQZABCJ
      JUAZUTIJJKKUBZVAUSCRZULUTSUNUTSPVBUMUOUPPZHQFQZPZEQDQZCRVDCDEULUPCFHUNCGU
      GTTUSVFCURVEDEURUMVCPZHQFQVEUQVGFHUMUOUPUCUDUMVCFHUEUFUDUHUIUJLUK $.
  $}

  ${
    $d A v x y z w $.  $d ph v $.
    oprabrexex2.1 $e |- A e. _V $.
    oprabrexex2.2 $e |- { <. <. x , y >. , z >. | ph } e. _V $.
    $( Existence of an existentially restricted operation abstraction.
       (Contributed by Jeff Madsen, 11-Jun-2010.) $)
    oprabrexex2 $p |- { <. <. x , y >. , z >. | E. w e. A ph } e. _V $=
      ( vv wrex coprab cv cop wa wex cab cvv df-oprab rexcom4 exbii wceq bitr2i
      r19.42v bitri abbii eqtri eqeltrri abrexex2 eqeltri ) AEFJZBCDKZILBLCLMDL
      MUAZANZDOZCOZBOZEFJZIPZQUKULUJNZDOZCOZBOZIPURUJBCDIRVBUQIUQUOEFJZBOVBUOEB
      FSVCVABVCUNEFJZCOVAUNECFSVDUTCVDUMEFJZDOUTUMEDFSVEUSDULAEFUCTUDTUDTUBUEUF
      UPEIFGABCDKUPIPQABCDIRHUGUHUI $.
  $}

  ${
    $d x z A $.  $d y z B $.  $d z C $.
    ab2rexex.1 $e |- A e. _V $.
    ab2rexex.2 $e |- B e. _V $.
    $( Existence of a class abstraction of existentially restricted sets.
       Variables ` x ` and ` y ` are normally free-variable parameters in the
       class expression substituted for ` C ` , which can be thought of as
       ` C ( x , y ) ` .  See comments for ~ abrexex .  (Contributed by NM,
       20-Sep-2011.) $)
    ab2rexex $p |- { z | E. x e. A E. y e. B z = C } e. _V $=
      ( cv wceq wrex abrexex abrexex2 ) CIFJBEKACDGBCEFHLM $.
  $}

  ${
    $d x z A $.  $d y z B $.
    ab2rexex2.1 $e |- A e. _V $.
    ab2rexex2.2 $e |- B e. _V $.
    ab2rexex2.3 $e |- { z | ph } e. _V $.
    $( Existence of an existentially restricted class abstraction. ` ph `
       normally has free-variable parameters ` x ` , ` y ` , and ` z ` .
       Compare ~ abrexex2 .  (Contributed by NM, 20-Sep-2011.) $)
    ab2rexex2 $p |- { z | E. x e. A E. y e. B ph } e. _V $=
      ( wrex abrexex2 ) ACFJBDEGACDFHIKK $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d V y $.
    $( Alternate proof of ~ xpexg requiring Replacement ( ~ ax-rep ) but not
       Power Set ( ~ ax-pow ).  (Contributed by Mario Carneiro, 20-May-2013.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    xpexgALT $p |- ( ( A e. V /\ B e. W ) -> ( A X. B ) e. _V ) $=
      ( vy vx wcel wa cxp cv csn ciun iunid xpeq2i xpiundi eqtr3i wral syl5eqel
      cvv id cmpt fconstmpt mptexg ralrimivw iunexg syl2anr ) ACGZBDGZHABIZEBAE
      JZKZIZLZSAEBUKLZIUIUMUNBAEBMNEBUKAOPUHUHULSGZEBQUMSGUGUHTUGUOEBUGULFAUJUA
      SFAUJUBFAUJCUCRUDEBULDSUEUFR $.
  $}

  ${
    $d F x a b $.  $d G x a b $.  $d V x $.  $d W x $.  $d R x a b $.
    $d D x $.
    $( General value of ` ( F oF R G ) ` with no assumptions on functionality
       of ` F ` and ` G ` .  (Contributed by Stefan O'Rear, 24-Jan-2015.) $)
    offval3 $p |- ( ( F e. V /\ G e. W ) -> ( F oF R G ) =
        ( x e. ( dom F i^i dom G ) |-> ( ( F ` x ) R ( G ` x ) ) ) ) $=
      ( va vb wcel wa cvv cdm cin cv cfv co cmpt wceq elex adantr adantl inex1g
      dmexg mptexg 3syl dmeq ineqan12d fveq1 oveqan12d mpteq12dv df-of ovmpt2ga
      cof syl3anc ) CEIZDFIZJCKIZDKIZACLZDLZMZANZCOZVBDOZBPZQZKIZCDBUMZPVFRUOUQ
      UPCESTUPURUODFSUAUOVGUPUOUSKIVAKIVGCEUCUSUTKUBAVAVEKUDUETGHCDKKAGNZLZHNZL
      ZMZVBVIOZVBVKOZBPZQVFVHKVICRZVKDRZJAVMVPVAVEVQVRVJUSVLUTVICUFVKDUFUGVQVRV
      NVCVOVDBVBVICUHVBVKDUHUIUJABGHUKULUN $.

    $( Pointwise combination commutes with restriction.  (Contributed by Stefan
       O'Rear, 24-Jan-2015.) $)
    offres $p |- ( ( F e. V /\ G e. W ) -> ( ( F oF R G ) |` D ) =
        ( ( F |` D ) oF R ( G |` D ) ) ) $=
      ( vx wcel cdm cin cfv co cmpt cres wceq fvres dmres 3eqtr4ri offval3 cvv
      wa cv cof inss2 sseli oveq12d mpteq2ia inindi incom ineq12i eqid mpteq12i
      syl resmpt3 reseq1d resexg syl2an 3eqtr4a ) CEHZDFHZUAZGCIZDIZJZGUBZCKZVE
      DKZBLZMZANZGCANZIZDANZIZJZVEVKKZVEVMKZBLZMZCDBUCZLZANVKVMVTLZGVDAJZVRMGWC
      VHMVSVJGWCVRVHVEWCHVEAHZVRVHOWCAVEVDAUDUEWDVPVFVQVGBVEACPVEADPUFUMUGGVOVR
      WCVRAVDJAVBJZAVCJZJWCVOAVBVCUHVDAUIVLWEVNWFCAQDAQUJRVRUKULGVDAVHUNRVAWAVI
      AGBCDEFSUOUSVKTHVMTHWBVSOUTCAEUPDAFUPGBVKVMTTSUQUR $.
  $}

  ${
    $d f g A $.  $d f g B $.  $d f g x R $.
    $( Equivalent expressions for a restriction of the function operation map.
       Unlike ` oF R ` which is a proper class, ` ( oF R | `` ( A X. B ) ) `
       can be a set by ~ ofmresex , allowing it to be used as a function or
       structure argument.  By ~ ofmresval , the restricted operation map
       values are the same as the original values, allowing theorems for
       ` oF R ` to be reused.  (Contributed by NM, 20-Oct-2014.) $)
    ofmres $p |- ( oF R |` ( A X. B ) ) =
         ( f e. A , g e. B |-> ( f oF R g ) ) $=
      ( vx cvv cv cdm cin cfv co cmpt2 cres wss wceq ssv eqid wcel vex cmpt cxp
      cof resmpt2 mp2an df-of reseq1i dmex inex1 mptex ovmpt4g mp3an mpt2eq123i
      3eqtr4i ) DEGGFDHZIZEHZIZJZFHZUOKUTUQKCLZUAZMZABUBZNZDEABVBMZCUCZVDNDEABU
      OUQVGLZMAGOBGOVEVFPAQBQDEGGABVBUDUEVGVCVDFCDEUFZUGDEABVHABVBARBRUOGSUQGSV
      BGSVHVBPDTZETFUSVAUPURUOVJUHUIUJDEGGVBVGGVIUKULUMUN $.

    ofmresex.a $e |- ( ph -> A e. V ) $.
    ofmresex.b $e |- ( ph -> B e. W ) $.
    $( Existence of a restriction of the function operation map.  (Contributed
       by NM, 20-Oct-2014.) $)
    ofmresex $p |- ( ph -> ( oF R |` ( A X. B ) ) e. _V ) $=
      ( cxp cvv wcel cof cres xpexg syl2anc ofexg syl ) ABCIZJKZDLRMJKABEKCFKSG
      HBCEFNORDJPQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  First and second members of an ordered pair
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c 1st $. $( First member of an ordered pair $)
  $c 2nd $. $( Second member of an ordered pair $)

  $( Extend the definition of a class to include the first member an ordered
     pair function. $)
  c1st $a class 1st $.

  $( Extend the definition of a class to include the second member an ordered
     pair function. $)
  c2nd $a class 2nd $.

  $( Define a function that extracts the first member, or abscissa, of an
     ordered pair.  Theorem ~ op1st proves that it does this.  For example,
     ` ( 1st `` <. 3 , 4 >. ) = 3 ` .  Equivalent to Definition 5.13 (i) of
     [Monk1] p. 52 (compare ~ op1sta and ~ op1stb ).  The notation is the same
     as Monk's.  (Contributed by NM, 9-Oct-2004.) $)
  df-1st $a |- 1st = ( x e. _V |-> U. dom { x } ) $.

  $( Define a function that extracts the second member, or ordinate, of an
     ordered pair.  Theorem ~ op2nd proves that it does this.  For example,
     ` ( 2nd `` <. 3 , 4 >. ) = 4 ` .  Equivalent to Definition 5.13 (ii) of
     [Monk1] p. 52 (compare ~ op2nda and ~ op2ndb ).  The notation is the same
     as Monk's.  (Contributed by NM, 9-Oct-2004.) $)
  df-2nd $a |- 2nd = ( x e. _V |-> U. ran { x } ) $.

  ${
    $d x A $.
    $( The value of the function that extracts the first member of an ordered
       pair.  (Contributed by NM, 9-Oct-2004.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    1stval $p |- ( 1st ` A ) = U. dom { A } $=
      ( vx cvv wcel c1st cfv csn cdm cuni wceq cv sneq dmeqd unieqd df-1st snex
      dmex uniex c0 syl6eq fvmpt wn fvprc snprc biimpi dm0 uni0 eqtr4d pm2.61i
      ) ACDZAEFZAGZHZIZJBABKZGZHZIUNCEUOAJZUQUMURUPULUOALMNBOUMULAPQRUAUJUBZUKS
      UNAEUCUSUNSISUSUMSUSUMSHSUSULSUSULSJAUDUEMUFTNUGTUHUI $.

    $( The value of the function that extracts the second member of an ordered
       pair.  (Contributed by NM, 9-Oct-2004.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    2ndval $p |- ( 2nd ` A ) = U. ran { A } $=
      ( vx cvv wcel c2nd cfv csn crn cuni wceq cv sneq rneqd unieqd df-2nd snex
      rnex uniex c0 syl6eq fvmpt wn fvprc snprc biimpi rn0 uni0 eqtr4d pm2.61i
      ) ACDZAEFZAGZHZIZJBABKZGZHZIUNCEUOAJZUQUMURUPULUOALMNBOUMULAPQRUAUJUBZUKS
      UNAEUCUSUNSISUSUMSUSUMSHSUSULSUSULSJAUDUEMUFTNUGTUHUI $.
  $}

  $( Value of the first-member function at non-pairs.  (Contributed by Thierry
     Arnoux, 22-Sep-2017.) $)
  1stnpr $p |- ( -. A e. ( _V X. _V ) -> ( 1st ` A ) = (/) ) $=
    ( cvv cxp wcel wn c1st cfv csn cdm cuni c0 1stval wne dmsnn0 biimpri unieqd
    necon1bi uni0 syl6eq syl5eq ) ABBCDZEZAFGAHIZJZKALUBUDKJKUBUCKUAUCKUAUCKMAN
    OQPRST $.

  $( Value of the second-member function at non-pairs.  (Contributed by Thierry
     Arnoux, 22-Sep-2017.) $)
  2ndnpr $p |- ( -. A e. ( _V X. _V ) -> ( 2nd ` A ) = (/) ) $=
    ( cvv cxp wcel wn c2nd cfv csn crn cuni c0 2ndval wne rnsnn0 biimpri unieqd
    necon1bi uni0 syl6eq syl5eq ) ABBCDZEZAFGAHIZJZKALUBUDKJKUBUCKUAUCKUAUCKMAN
    OQPRST $.

  $( The value of the first-member function at the empty set.  (Contributed by
     NM, 23-Apr-2007.) $)
  1st0 $p |- ( 1st ` (/) ) = (/) $=
    ( c0 c1st cfv csn cdm cuni 1stval dmsn0 unieqi uni0 3eqtri ) ABCADEZFAFAAGL
    AHIJK $.

  $( The value of the second-member function at the empty set.  (Contributed by
     NM, 23-Apr-2007.) $)
  2nd0 $p |- ( 2nd ` (/) ) = (/) $=
    ( c0 c2nd cfv csn crn cuni 2ndval wceq dmsn0 dm0rn0 mpbi unieqi uni0 3eqtri
    cdm ) ABCADZEZFAFAAGQAPOAHQAHIPJKLMN $.

  ${
    op1st.1 $e |- A e. _V $.
    op1st.2 $e |- B e. _V $.
    $( Extract the first member of an ordered pair.  (Contributed by NM,
       5-Oct-2004.) $)
    op1st $p |- ( 1st ` <. A , B >. ) = A $=
      ( cop c1st cfv csn cdm cuni 1stval op1sta eqtri ) ABEZFGNHIJANKABCDLM $.

    $( Extract the second member of an ordered pair.  (Contributed by NM,
       5-Oct-2004.) $)
    op2nd $p |- ( 2nd ` <. A , B >. ) = B $=
      ( cop c2nd cfv csn crn cuni 2ndval op2nda eqtri ) ABEZFGNHIJBNKABCDLM $.

    $( Extract the first member of an ordered pair.  (Contributed by Mario
       Carneiro, 31-Aug-2015.) $)
    op1std $p |- ( C = <. A , B >. -> ( 1st ` C ) = A ) $=
      ( cop wceq c1st cfv fveq2 op1st syl6eq ) CABFZGCHIMHIACMHJABDEKL $.

    $( Extract the second member of an ordered pair.  (Contributed by Mario
       Carneiro, 31-Aug-2015.) $)
    op2ndd $p |- ( C = <. A , B >. -> ( 2nd ` C ) = B ) $=
      ( cop wceq c2nd cfv fveq2 op2nd syl6eq ) CABFZGCHIMHIBCMHJABDEKL $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Extract the first member of an ordered pair.  (Contributed by NM,
       19-Jul-2005.) $)
    op1stg $p |- ( ( A e. V /\ B e. W ) -> ( 1st ` <. A , B >. ) = A ) $=
      ( vx vy cv cop c1st cfv wceq opeq1 fveq2d id eqeq12d opeq2 eqeq1d vtocl2g
      vex op1st ) EGZFGZHZIJZUAKAUBHZIJZAKABHZIJZAKEFABCDUAAKZUDUFUAAUIUCUEIUAA
      UBLMUINOUBBKZUFUHAUJUEUGIUBBAPMQUAUBESFSTR $.

    $( Extract the second member of an ordered pair.  (Contributed by NM,
       19-Jul-2005.) $)
    op2ndg $p |- ( ( A e. V /\ B e. W ) -> ( 2nd ` <. A , B >. ) = B ) $=
      ( vx vy cv cop c2nd cfv wceq opeq1 fveq2d eqeq1d opeq2 id eqeq12d vtocl2g
      vex op2nd ) EGZFGZHZIJZUBKAUBHZIJZUBKABHZIJZBKEFABCDUAAKZUDUFUBUIUCUEIUAA
      UBLMNUBBKZUFUHUBBUJUEUGIUBBAOMUJPQUAUBESFSTR $.

    $( Extract the first member of an ordered triple.  (Due to infrequent
       usage, it isn't worthwhile at this point to define special extractors
       for triples, so we reuse the ordered pair extractors for ~ ot1stg ,
       ~ ot2ndg , ~ ot3rdg .)  (Contributed by NM, 3-Apr-2015.)  (Revised by
       Mario Carneiro, 2-May-2015.) $)
    ot1stg $p |- ( ( A e. V /\ B e. W /\ C e. X )
         -> ( 1st ` ( 1st ` <. A , B , C >. ) ) = A ) $=
      ( wcel cotp c1st cfv wceq wa cop df-ot fveq2i cvv opex op1stg mpan syl5eq
      fveq2d sylan9eqr 3impa ) ADGZBEGZCFGZABCHZIJZIJZAKUFUDUELUIABMZIJAUFUHUJI
      UFUHUJCMZIJZUJUGUKIABCNOUJPGUFULUJKABQUJCPFRSTUAABDERUBUC $.

    $( Extract the second member of an ordered triple.  (See ~ ot1stg comment.)
       (Contributed by NM, 3-Apr-2015.)  (Revised by Mario Carneiro,
       2-May-2015.) $)
    ot2ndg $p |- ( ( A e. V /\ B e. W /\ C e. X )
         -> ( 2nd ` ( 1st ` <. A , B , C >. ) ) = B ) $=
      ( wcel cotp c1st cfv c2nd wceq wa cop df-ot fveq2i cvv opex op1stg mpan
      syl5eq fveq2d op2ndg sylan9eqr 3impa ) ADGZBEGZCFGZABCHZIJZKJZBLUHUFUGMUK
      ABNZKJBUHUJULKUHUJULCNZIJZULUIUMIABCOPULQGUHUNULLABRULCQFSTUAUBABDEUCUDUE
      $.

    $( Extract the third member of an ordered triple.  (See ~ ot1stg comment.)
       (Contributed by NM, 3-Apr-2015.) $)
    ot3rdg $p |- ( C e. V -> ( 2nd ` <. A , B , C >. ) = C ) $=
      ( wcel cotp c2nd cfv cop df-ot fveq2i cvv wceq opex op2ndg mpan syl5eq )
      CDEZABCFZGHABIZCIZGHZCSUAGABCJKTLERUBCMABNTCLDOPQ $.

    $( Alternate value of the function that extracts the first member of an
       ordered pair.  Definition 5.13 (i) of [Monk1] p. 52.  (Contributed by
       NM, 18-Aug-2006.) $)
    1stval2 $p |- ( A e. ( _V X. _V ) -> ( 1st ` A ) = |^| |^| A ) $=
      ( vx vy cvv cxp wcel cv cop wceq wex c1st cfv cint elvv vex op1stb eqtr4i
      op1st fveq2 inteq inteqd 3eqtr4a exlimivv sylbi ) ADDEFABGZCGZHZIZCJBJAKL
      ZAMZMZIZBCANUHULBCUHUGKLZUGMZMZUIUKUMUEUOUEUFBOZCOZRUEUFUPUQPQAUGKSUHUJUN
      AUGTUAUBUCUD $.

    $( Alternate value of the function that extracts the second member of an
       ordered pair.  Definition 5.13 (ii) of [Monk1] p. 52.  (Contributed by
       NM, 18-Aug-2006.) $)
    2ndval2 $p |- ( A e. ( _V X. _V )
               -> ( 2nd ` A ) = |^| |^| |^| `' { A } ) $=
      ( vx vy cvv cxp wcel cv cop wceq wex c2nd cfv ccnv cint elvv op2nd op2ndb
      csn vex inteqd eqtr4i fveq2 sneq cnveqd 3eqtr4a exlimivv sylbi ) ADDEFABG
      ZCGZHZIZCJBJAKLZARZMZNZNZNZIZBCAOUKURBCUKUJKLZUJRZMZNZNZNZULUQUSUIVDUHUIB
      SZCSZPUHUIVEVFQUAAUJKUBUKUPVCUKUOVBUKUNVAUKUMUTAUJUCUDTTTUEUFUG $.
  $}

  $( The components of an ordered triple.  (Contributed by Alexander van der
     Vekens, 2-Mar-2018.) $)
  oteqimp $p |- ( T = <. A , B , C >. -> ( ( A e. X /\ B e. Y /\ C e. Z )
                         -> ( ( 1st ` ( 1st ` T ) ) = A
                           /\ ( 2nd ` ( 1st ` T ) ) = B
                           /\ ( 2nd ` T ) = C ) ) ) $=
    ( wcel w3a c1st cfv wceq c2nd cotp ot1stg ot2ndg ot3rdg fveq2 fveq2d eqeq1d
    3ad2ant3 3jca 3anbi123d syl5ibr ) AEHZBFHZCGHZIZDJKZJKZALZUIMKZBLZDMKZCLZID
    ABCNZLZUPJKZJKZALZURMKZBLZUPMKZCLZIUHUTVBVDABCEFGOABCEFGPUGUEVDUFABCGQUAUBU
    QUKUTUMVBUOVDUQUJUSAUQUIURJDUPJRZSTUQULVABUQUIURMVESTUQUNVCCDUPMRTUCUD $.

  ${
    $d x y $.
    $( The ` 1st ` function maps the universe onto the universe.  (Contributed
       by NM, 14-Oct-2004.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    fo1st $p |- 1st : _V -onto-> _V $=
      ( vx vy cvv c1st wfo wfn crn wceq cv csn cdm cuni snex dmex df-1st fnmpti
      uniex wrex cab wcel rnmpt vex opex op1sta eqcomi sneq dmeqd unieqd eqeq2d
      cop rspcev mp2an 2th abbi2i eqtr4i df-fo mpbir2an ) CCDEDCFDGZCHACAIZJZKZ
      LZDVAUTUSMNQAOZPURBIZVBHZACRZBSCABCVBDVCUAVFBCVDCTVFBUBZVDVDUJZCTVDVHJZKZ
      LZHZVFVDVDUCVKVDVDVDVGVGUDUEVEVLAVHCUSVHHZVBVKVDVMVAVJVMUTVIUSVHUFUGUHUIU
      KULUMUNUOCCDUPUQ $.

    $( The ` 2nd ` function maps the universe onto the universe.  (Contributed
       by NM, 14-Oct-2004.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    fo2nd $p |- 2nd : _V -onto-> _V $=
      ( vx vy cvv c2nd wfo wfn crn wceq cv csn cuni snex rnex uniex df-2nd wrex
      fnmpti cab rnmpt wcel vex cop opex op2nda eqcomi sneq rneqd unieqd eqeq2d
      rspcev mp2an 2th abbi2i eqtr4i df-fo mpbir2an ) CCDEDCFDGZCHACAIZJZGZKZDU
      TUSURLMNAOZQUQBIZVAHZACPZBRCABCVADVBSVEBCVCCTVEBUAZVCVCUBZCTVCVGJZGZKZHZV
      EVCVCUCVJVCVCVCVFVFUDUEVDVKAVGCURVGHZVAVJVCVLUTVIVLUSVHURVGUFUGUHUIUJUKUL
      UMUNCCDUOUP $.
  $}

  $( Uniqueness condition for the binary relation ` 1st ` .  (Contributed by
     Scott Fenton, 2-Jul-2020.)  Revised to remove sethood hypothesis on
     ` C ` .  (Revised by Peter Mazsa, 17-Jan-2022.) $)
  br1steqg $p |-
                 ( ( A e. V /\ B e. W ) -> ( <. A , B >. 1st C <-> C = A ) ) $=
    ( wcel wa cop c1st cfv wceq wbr op1stg eqeq1d cvv wfn wb wfo fo1st fofn
    ax-mp opex fnbrfvb mp2an eqcom 3bitr3g ) ADFBEFGZABHZIJZCKZACKUHCILZCAKUGUI
    ACABDEMNIOPZUHOFUJUKQOOIRULSOOITUAABUBOUHCIUCUDACUEUF $.

  $( Uniqueness condition for the binary relation ` 2nd ` .  (Contributed by
     Scott Fenton, 2-Jul-2020.)  Revised to remove sethood hypothesis on
     ` C ` .  (Revised by Peter Mazsa, 17-Jan-2022.) $)
  br2ndeqg $p |-
                 ( ( A e. V /\ B e. W ) -> ( <. A , B >. 2nd C <-> C = B ) ) $=
    ( wcel wa cop c2nd cfv wceq wbr op2ndg eqeq1d cvv wfn wb wfo fo2nd fofn
    ax-mp opex fnbrfvb mp2an eqcom 3bitr3g ) ADFBEFGZABHZIJZCKZBCKUHCILZCBKUGUI
    BCABDEMNIOPZUHOFUJUKQOOIRULSOOITUAABUBOUHCIUCUDBCUEUF $.

  ${
    $d x y z A $.  $d x y z B $.
    $( Mapping of a restriction of the ` 1st ` (first member of an ordered
       pair) function.  (Contributed by NM, 11-Oct-2004.)  (Revised by Mario
       Carneiro, 8-Sep-2013.) $)
    f1stres $p |- ( 1st |` ( A X. B ) ) : ( A X. B ) --> A $=
      ( vx vy vz cv csn cdm cuni wcel cxp wral c1st cres cop vex wceq cvv cmpt
      wf op1sta eleq1i adantr rgen2 sneq dmeqd unieqd eleq1d ralxp mpbir df-1st
      biimpri reseq1i wss ssv resmpt ax-mp eqtri fmpt mpbi ) CFZGZHZIZAJZCABKZL
      ZVFAMVFNZTVGDFZEFZOZGZHZIZAJZEBLDALVODEABVIAJZVOVJBJVOVPVNVIAVIVJDPEPUAUB
      ULUCUDVEVOCDEABVAVKQZVDVNAVQVCVMVQVBVLVAVKUEUFUGUHUIUJCVFAVDVHVHCRVDSZVFN
      ZCVFVDSZMVRVFCUKUMVFRUNVSVTQVFUOCRVFVDUPUQURUSUT $.

    $( Mapping of a restriction of the ` 2nd ` (second member of an ordered
       pair) function.  (Contributed by NM, 7-Aug-2006.)  (Revised by Mario
       Carneiro, 8-Sep-2013.) $)
    f2ndres $p |- ( 2nd |` ( A X. B ) ) : ( A X. B ) --> B $=
      ( vx vy vz cv csn crn cuni wcel cxp wral c2nd cres cop vex wceq cvv cmpt
      wf op2nda eleq1i adantl rgen2 sneq rneqd unieqd eleq1d ralxp mpbir df-2nd
      biimpri reseq1i wss ssv resmpt ax-mp eqtri fmpt mpbi ) CFZGZHZIZBJZCABKZL
      ZVFBMVFNZTVGDFZEFZOZGZHZIZBJZEBLDALVODEABVJBJZVOVIAJVOVPVNVJBVIVJDPEPUAUB
      ULUCUDVEVOCDEABVAVKQZVDVNBVQVCVMVQVBVLVAVKUEUFUGUHUIUJCVFBVDVHVHCRVDSZVFN
      ZCVFVDSZMVRVFCUKUMVFRUNVSVTQVFUOCRVFVDUPUQURUSUT $.

    $( Onto mapping of a restriction of the ` 1st ` (first member of an ordered
       pair) function.  (Contributed by NM, 14-Dec-2008.) $)
    fo1stres $p |- ( B =/= (/) ->
                 ( 1st |` ( A X. B ) ) : ( A X. B ) -onto-> A ) $=
      ( vx vy c0 wne cxp c1st cres wf crn wa wss cv wcel cfv ax-mp jctil sylibr
      vex wfo wex wi n0 cop opelxp fvres op1st syl6req wfn f1stres ffn fnfvelrn
      wceq mpan eqeltrd sylbir expcom exlimiv sylbi ssrdv frn eqss dffo2 ) BEFZ
      ABGZAHVFIZJZVGKZAUNZLVFAVGUAVEVJVHVEVIAMZAVIMZLVJVEVLVKVECAVIVEDNZBOZDUBC
      NZAOZVOVIOZUCZDBUDVNVRDVPVNVQVPVNLVOVMUEZVFOZVQVOVMABUFVTVOVSVGPZVIVTWAVS
      HPVOVSVFHUGVOVMCTDTUHUIVGVFUJZVTWAVIOVHWBABUKZVFAVGULQVFVSVGUMUOUPUQURUSU
      TVAVHVKWCVFAVGVBQRVIAVCSWCRVFAVGVDS $.

    $( Onto mapping of a restriction of the ` 2nd ` (second member of an
       ordered pair) function.  (Contributed by NM, 14-Dec-2008.) $)
    fo2ndres $p |- ( A =/= (/) ->
                 ( 2nd |` ( A X. B ) ) : ( A X. B ) -onto-> B ) $=
      ( vy vx c0 wne cxp c2nd cres wf crn wa wss cv wcel cfv ax-mp jctil sylibr
      vex wfo wex wi n0 cop opelxp fvres op2nd syl6req wfn f2ndres ffn fnfvelrn
      wceq mpan eqeltrd sylbir ex exlimiv sylbi ssrdv frn eqss dffo2 ) AEFZABGZ
      BHVFIZJZVGKZBUNZLVFBVGUAVEVJVHVEVIBMZBVIMZLVJVEVLVKVECBVIVEDNZAOZDUBCNZBO
      ZVOVIOZUCZDAUDVNVRDVNVPVQVNVPLVMVOUEZVFOZVQVMVOABUFVTVOVSVGPZVIVTWAVSHPVO
      VSVFHUGVMVODTCTUHUIVGVFUJZVTWAVIOVHWBABUKZVFBVGULQVFVSVGUMUOUPUQURUSUTVAV
      HVKWCVFBVGVBQRVIBVCSWCRVFBVGVDS $.
  $}

  ${
    $d x y z w v $.  $d v w A $.
    $( Value of an alternate definition of the ` 1st ` function.  (Contributed
       by NM, 14-Oct-2004.)  (Revised by Mario Carneiro, 30-Dec-2014.) $)
    1st2val $p |- ( { <. <. x , y >. , z >. | z = x } ` A ) = ( 1st ` A ) $=
      ( vw vv cvv wcel weq cfv wceq cv wex vex syl6eq eqtr4d cdm cuni c0 copab
      cxp coprab c1st cop fveq2 co df-ov simpl cmpt2 mpt2v eqcomi ovmpt2a mp2an
      elvv eqtr3i op1std exlimivv sylbi wn csn pm3.2i ax6ev 2th opabbii dmoprab
      wa df-xp 3eqtr4ri eleq2i ndmfv sylnbir wne dmsnn0 biimpri necon1bi unieqd
      uni0 1stval syl6eqr pm2.61i ) DGGUAZHZDCAIZABCUBZJZDUCJZKZWBDELZFLZUDZKZF
      MEMWGEFDUNWKWGEFWKWEWHWFWKWEWJWDJZWHDWJWDUEWHWIWDUFZWLWHWHWIWDUGWHGHWIGHW
      MWHKENZFNZABWHWIGGALZWHWDAEIBFIUHABGGWPUIWDABCWPUJUKWNULUMUOOWHWIDWNWOUPP
      UQURWBUSZWEDUTQZRZWFWQWESWSWBDWDQZHWESKWTWADWPGHZBLGHZVFZABTWCCMZABTWAWTX
      CXDABXCXDXAXBANBNVACAVBVCVDABGGVGWCABCVEVHVIDWDVJVKWQWSSRSWQWRSWBWRSWBWRS
      VLDVMVNVOVPVQOPDVRVSVT $.

    $( Value of an alternate definition of the ` 2nd ` function.  (Contributed
       by NM, 10-Aug-2006.)  (Revised by Mario Carneiro, 30-Dec-2014.) $)
    2nd2val $p |- ( { <. <. x , y >. , z >. | z = y } ` A ) = ( 2nd ` A ) $=
      ( vw vv cvv cxp wcel weq cfv wceq cv wex vex syl6eq eqtr4d cuni c0 copab
      coprab c2nd cop elvv fveq2 co df-ov simpr cmpt2 mpt2v eqcomi mp2an eqtr3i
      ovmpt2a op2ndd exlimivv sylbi wn csn crn cdm pm3.2i ax6ev opabbii dmoprab
      wa 2th df-xp 3eqtr4ri eleq2i ndmfv sylnbir rnsnn0 biimpri necon1bi unieqd
      wne uni0 2ndval syl6eqr pm2.61i ) DGGHZIZDCBJZABCUAZKZDUBKZLZWCDEMZFMZUCZ
      LZFNENWHEFDUDWLWHEFWLWFWJWGWLWFWKWEKZWJDWKWEUEWIWJWEUFZWMWJWIWJWEUGWIGIWJ
      GIWNWJLEOZFOZABWIWJGGBMZWJWEAEJBFJUHABGGWQUIWEABCWQUJUKWPUNULUMPWIWJDWOWP
      UOQUPUQWCURZWFDUSUTZRZWGWRWFSWTWCDWEVAZIWFSLXAWBDAMGIZWQGIZVFZABTWDCNZABT
      WBXAXDXEABXDXEXBXCAOBOVBCBVCVGVDABGGVHWDABCVEVIVJDWEVKVLWRWTSRSWRWSSWCWSS
      WCWSSVQDVMVNVOVPVRPQDVSVTWA $.
  $}

  $( Composition of the first member function with another function.
     (Contributed by NM, 12-Oct-2007.) $)
  1stcof $p |- ( F : A --> ( B X. C ) -> ( 1st o. F ) : A --> B ) $=
    ( cxp wf c1st ccom wfn crn wss cvv wfo fo1st fofn ax-mp ffn dffn2 cres frn
    sylib fnfco sylancr rnco ssres2 rnss 3syl f1stres syl6ss syl5eqss sylanbrc
    df-f ) ABCEZDFZGDHZAIZUOJZBKABUOFUNGLIZALDFZUPLLGMURNLLGOPUNDAIUSAUMDQADRUA
    LAGDUBUCUNUQGDJZSZJZBGDUDUNVBGUMSZJZBUNUTUMKVAVCKVBVDKAUMDTUTUMGUEVAVCUFUGU
    MBVCFVDBKBCUHUMBVCTPUIUJABUOULUK $.

  $( Composition of the second member function with another function.
     (Contributed by FL, 15-Oct-2012.) $)
  2ndcof $p |- ( F : A --> ( B X. C ) -> ( 2nd o. F ) : A --> C ) $=
    ( cxp wf c2nd ccom wfn crn wss cvv wfo fo2nd fofn ax-mp ffn dffn2 cres frn
    sylib fnfco sylancr rnco ssres2 rnss 3syl f2ndres syl6ss syl5eqss sylanbrc
    df-f ) ABCEZDFZGDHZAIZUOJZCKACUOFUNGLIZALDFZUPLLGMURNLLGOPUNDAIUSAUMDQADRUA
    LAGDUBUCUNUQGDJZSZJZCGDUDUNVBGUMSZJZCUNUTUMKVAVCKVBVDKAUMDTUTUMGUEVAVCUFUGU
    MCVCFVDCKBCUHUMCVCTPUIUJACUOULUK $.

  ${
    $d A b c $.  $d B b c $.  $d C b c $.
    $( Location of the first element of a Cartesian product.  (Contributed by
       Jeff Madsen, 2-Sep-2009.) $)
    xp1st $p |- ( A e. ( B X. C ) -> ( 1st ` A ) e. B ) $=
      ( vb vc cxp wcel cv cop wceq wex c1st cfv elxp vex op1std biimpar adantrr
      wa eleq1d exlimivv sylbi ) ABCFGADHZEHZIJZUCBGZUDCGZSSZEKDKALMZBGZDEABCNU
      HUJDEUEUFUJUGUEUJUFUEUIUCBUCUDADOEOPTQRUAUB $.
  $}

  ${
    $d A b c $.  $d B b c $.  $d C b c $.
    $( Location of the second element of a Cartesian product.  (Contributed by
       Jeff Madsen, 2-Sep-2009.) $)
    xp2nd $p |- ( A e. ( B X. C ) -> ( 2nd ` A ) e. C ) $=
      ( vb vc cxp wcel cv cop wceq wex c2nd cfv elxp vex op2ndd biimpar adantrl
      wa eleq1d exlimivv sylbi ) ABCFGADHZEHZIJZUCBGZUDCGZSSZEKDKALMZCGZDEABCNU
      HUJDEUEUGUJUFUEUJUGUEUIUDCUCUDADOEOPTQRUAUB $.
  $}

  $( Membership in a Cartesian product.  This version requires no quantifiers
     or dummy variables.  See also ~ elxp4 .  (Contributed by NM,
     9-Oct-2004.) $)
  elxp6 $p |- ( A e. ( B X. C ) <-> ( A = <. ( 1st ` A ) , ( 2nd ` A ) >.
               /\ ( ( 1st ` A ) e. B /\ ( 2nd ` A ) e. C ) ) ) $=
    ( cxp wcel csn cdm cuni crn cop wceq wa c1st cfv elxp4 1stval 2ndval eleq1i
    c2nd anbi12i opeq12i eqeq2i bitr4i ) ABCDEAAFZGHZUDIHZJZKZUEBEZUFCEZLZLAAMN
    ZASNZJZKZULBEZUMCEZLZLABCOUOUHURUKUNUGAULUEUMUFAPZAQZUAUBUPUIUQUJULUEBUSRUM
    UFCUTRTTUC $.

  $( Membership in a Cartesian product.  This version requires no quantifiers
     or dummy variables.  See also ~ elxp4 .  (Contributed by NM,
     19-Aug-2006.) $)
  elxp7 $p |- ( A e. ( B X. C ) <-> ( A e. ( _V X. _V )
               /\ ( ( 1st ` A ) e. B /\ ( 2nd ` A ) e. C ) ) ) $=
    ( cxp wcel c1st cfv c2nd cop wceq wa cvv fvex pm3.2i mpbiran2 anbi1i bitr4i
    elxp6 ) ABCDEAAFGZAHGZIJZSBETCEKZKALLDEZUBKABCRUCUAUBUCUASLEZTLEZKUDUEAFMAH
    MNALLROPQ $.

  $( Equality with an ordered pair.  (Contributed by NM, 15-Dec-2008.)
     (Revised by Mario Carneiro, 23-Feb-2014.) $)
  eqopi $p |- ( ( A e. ( V X. W ) /\ ( ( 1st ` A ) = B /\ ( 2nd ` A ) = C ) )
              -> A = <. B , C >. ) $=
    ( cxp wcel cvv c1st cfv wceq c2nd wa cop xpss sseli simplbi opeq12 sylan9eq
    elxp6 sylan ) ADEFZGAHHFZGZAIJZBKALJZCKMZABCNZKUBUCADEOPUDUGAUEUFNZUHUDAUIK
    UEHGUFHGMAHHTQUEUFBCRSUA $.

  ${
    $d x A $.  $d x B $.
    $( Representation of Cartesian product based on ordered pair component
       functions.  (Contributed by NM, 16-Sep-2006.) $)
    xp2 $p |- ( A X. B ) = { x e. ( _V X. _V ) | ( ( 1st ` x ) e. A /\
              ( 2nd ` x ) e. B ) } $=
      ( cxp cv cvv wcel c1st cfv c2nd wa cab crab elxp7 abbi2i df-rab eqtr4i )
      BCDZAEZFFDZGSHIBGSJICGKZKZALUAATMUBARSBCNOUAATPQ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( The membership relation for a Cartesian product is inherited by union.
       (Contributed by NM, 16-Sep-2006.) $)
    unielxp $p |- ( A e. ( B X. C ) -> U. A e. U. ( B X. C ) ) $=
      ( vx cxp wcel cvv c1st cfv c2nd wa cuni elxp7 elvvuni adantr cv cab fveq2
      eleq1d anbi12d wex simprl wceq eleq2 eleq1 spcegv eluniab sylibr crab xp2
      mpcom df-rab eqtri unieqi syl6eleqr mpancom sylbi ) ABCEZFAGGEZFZAHIZBFZA
      JIZCFZKZKZALZURLZFZABCMVGAFZVFVIUTVJVEANOVJVFKZVGDPZUSFZVLHIZBFZVLJIZCFZK
      ZKZDQZLZVHVKVGVLFZVSKZDUAZVGWAFUTVKWDVJUTVEUBWCVKDAUSVLAUCZWBVJVSVFVLAVGU
      DWEVMUTVRVEVLAUSUEWEVOVBVQVDWEVNVABVLAHRSWEVPVCCVLAJRSTTTUFUKVSDVGUGUHURV
      TURVRDUSUIVTDBCUJVRDUSULUMUNUOUPUQ $.
  $}

  $( Reconstruction of a member of a Cartesian product in terms of its ordered
     pair components.  (Contributed by NM, 20-Oct-2013.) $)
  1st2nd2 $p |- ( A e. ( B X. C ) -> A = <. ( 1st ` A ) , ( 2nd ` A ) >. ) $=
    ( cxp wcel c1st cfv c2nd cop wceq wa elxp6 simplbi ) ABCDEAAFGZAHGZIJNBEOCE
    KABCLM $.

  $( Reconstruction of an ordered pair in terms of its components.
     (Contributed by NM, 25-Feb-2014.) $)
  1st2ndb $p |- ( A e. ( _V X. _V )
      <-> A = <. ( 1st ` A ) , ( 2nd ` A ) >. ) $=
    ( cvv cxp wcel c1st cfv c2nd cop wceq 1st2nd2 fvex opelvv syl6eqel impbii
    id ) ABBCZDAAEFZAGFZHZIZABBJTASPTOQRAEKAGKLMN $.

  $( An ordered pair theorem for members of Cartesian products.  (Contributed
     by NM, 20-Jun-2007.) $)
  xpopth $p |- ( ( A e. ( C X. D ) /\ B e. ( R X. S ) ) ->
       ( ( ( 1st ` A ) = ( 1st ` B ) /\
     ( 2nd ` A ) = ( 2nd ` B ) ) <-> A = B ) ) $=
    ( cxp wcel wa wceq c1st cfv c2nd cop 1st2nd2 eqeqan12d fvex opth syl6rbb )
    ACDGHZBEFGHZIABJAKLZAMLZNZBKLZBMLZNZJUBUEJUCUFJITUAAUDBUGACDOBEFOPUBUCUEUFA
    KQAMQRS $.

  $( Two ways to express equality with an ordered pair.  (Contributed by NM,
     3-Sep-2007.)  (Proof shortened by Mario Carneiro, 26-Apr-2015.) $)
  eqop $p |- ( A e. ( V X. W ) -> ( A = <. B , C >.
            <-> ( ( 1st ` A ) = B /\ ( 2nd ` A ) = C ) ) ) $=
    ( cxp wcel cop wceq c1st cfv c2nd wa 1st2nd2 eqeq1d fvex opth syl6bb ) ADEF
    GZABCHZIAJKZALKZHZTIUABIUBCIMSAUCTADENOUAUBBCAJPALPQR $.

  ${
    eqop2.1 $e |- B e. _V $.
    eqop2.2 $e |- C e. _V $.
    $( Two ways to express equality with an ordered pair.  (Contributed by NM,
       25-Feb-2014.) $)
    eqop2 $p |- ( A = <. B , C >.
       <-> ( A e. ( _V X. _V ) /\ ( ( 1st ` A ) = B /\ ( 2nd ` A ) = C ) ) ) $=
      ( cop wceq cvv cxp wcel c1st cfv c2nd wa opelvv eleq1 mpbiri eqop biadan2
      ) ABCFZGZAHHIZJZAKLBGAMLCGNUAUCTUBJBCDEOATUBPQABCHHRS $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Two ways of expressing that an element is the first member of an ordered
       pair.  (Contributed by NM, 22-Sep-2013.)  (Revised by Mario Carneiro,
       23-Feb-2014.) $)
    op1steq $p |- ( A e. ( V X. W )
         -> ( ( 1st ` A ) = B <-> E. x A = <. B , x >. ) ) $=
      ( cxp wcel cvv c1st cfv wceq cv cop wex wb xpss sseli wa c2nd syl eqid ex
      eqopi mpanr2 fvex opeq2 eqeq2d spcev eqop simpl syl6bi exlimdv impbid ) B
      DEFZGBHHFZGZBIJCKZBCALZMZKZANZOUNUOBDEPQUPUQVAUPUQVAUPUQRBCBSJZMZKZVAUPUQ
      VBVBKVDVBUABCVBHHUCUDUTVDAVBBSUEURVBKUSVCBURVBCUFUGUHTUBUPUTUQAUPUTUQVBUR
      KZRUQBCURHHUIUQVEUJUKULUMT $.
  $}

  ${
    $d A p x y z $.  $d B p x y z $.  $d C p x y z $.  $d D p x y z $.
    $( A member of a nested Cartesian product is an ordered triple.
       (Contributed by Alexander van der Vekens, 15-Feb-2018.) $)
    el2xptp $p |- ( A e. ( ( B X. C ) X. D )
                    <-> E. x e. B E. y e. C E. z e. D A = <. x , y , z >. ) $=
      ( vp cxp wcel cv cop wceq wrex cotp elxp2 opeq1 eqeq2d rexbidv rexbii
      rexxp df-ot eqcomi eqeq2i 3bitri ) DEFIZGIJDHKZCKZLZMZCGNZHUFNDAKZBKZLZUH
      LZMZCGNZBFNZAENDULUMUHOZMZCGNZBFNZAENHCDUFGPUKUQHABEFUGUNMZUJUPCGVCUIUODU
      GUNUHQRSUAURVBAEUQVABFUPUTCGUOUSDUSUOULUMUHUBUCUDTTTUE $.
  $}

  $( A member of a nested Cartesian product is an ordered triple.  (Contributed
     by Alexander van der Vekens, 15-Feb-2018.) $)
  el2xptp0 $p |- ( ( X e. U /\ Y e. V /\ Z e. W )
                -> ( ( A e. ( ( U X. V ) X. W ) /\ ( ( 1st ` ( 1st ` A ) ) = X
                           /\ ( 2nd ` ( 1st ` A ) ) = Y /\ ( 2nd ` A ) = Z ) )
                     <-> A = <. X , Y , Z >. ) ) $=
    ( wcel w3a cxp c1st cfv wceq c2nd wa cop ad2antrl adantl jca sylan9eqr cotp
    xp1st 3simpa eqopi syl2anc simprr3 df-ot eqeq2i eqop syl5bb opelxpi 3adant3
    wb mpbird simp3 opelxp sylanbrc syl5eqel adantr fveq2d ot1stg ot2ndg ot3rdg
    eleq1 fveq2 3ad2ant3 3jca impbida ) EBHZFCHZGDHZIZABCJZDJZHZAKLZKLZEMZVPNLZ
    FMZANLZGMZIZOZAEFGUAZMZVLWDOZWFVPEFPZMZWBOZWGWIWBWGVPVMHZVRVTOZWIVOWKVLWCAV
    MDUBQWDWLVLWCWLVOVRVTWBUCRRVPEFBCUDUEVRVTWBVOVLUFSVOWFWJUMVLWCWFAWHGPZMVOWJ
    WEWMAEFGUGZUHAWHGVMDUIUJQUNVLWFOZVOWCWOVOWEVNHZVLWPWFVLWEWMVNWNVLWHVMHZVKWM
    VNHVIVJWQVKEFBCUKULVIVJVKUOWHGVMDUPUQURUSWFVOWPUMVLAWEVNVDRUNWOVRVTWBWFVLVQ
    WEKLZKLEWFVPWRKAWEKVEZUTEFGBCDVATWFVLVSWRNLFWFVPWRNWSUTEFGBCDVBTWFVLWAWENLZ
    GAWENVEVKVIWTGMVJEFGDVCVFTVGSVH $.

  $( Swap the members of an ordered pair.  (Contributed by NM, 31-Dec-2014.) $)
  2nd1st $p |- ( A e. ( B X. C ) ->
    U. `' { A } = <. ( 2nd ` A ) , ( 1st ` A ) >. ) $=
    ( cxp wcel csn ccnv cuni c1st cfv 1st2nd2 sneqd cnveqd unieqd opswap syl6eq
    c2nd cop ) ABCDEZAFZGZHAIJZAQJZRZFZGZHUCUBRSUAUFSTUESAUDABCKLMNUBUCOP $.

  $( Reconstruction of a member of a relation in terms of its ordered pair
     components.  (Contributed by NM, 29-Aug-2006.) $)
  1st2nd $p |- ( ( Rel B /\ A e. B ) ->
               A = <. ( 1st ` A ) , ( 2nd ` A ) >. ) $=
    ( wrel wcel wa cvv cxp c1st cfv c2nd cop wceq wss df-rel sylanb 1st2nd2 syl
    ssel2 ) BCZABDZEAFFGZDZAAHIAJIKLSBUAMTUBBNBUAAROAFFPQ $.

  $( The first ordered pair component of a member of a relation belongs to the
     domain of the relation.  (Contributed by NM, 17-Sep-2006.) $)
  1stdm $p |- ( ( Rel R /\ A e. R ) -> ( 1st ` A ) e. dom R ) $=
    ( wrel wcel c1st cfv cint cdm cvv cxp wceq wss df-rel biimpi sselda 1stval2
    wa syl elreldm eqeltrd ) BCZABDQZAEFZAGGZBHUBAIIJZDUCUDKUABUEAUABUELBMNOAPR
    BAST $.

  $( The second ordered pair component of a member of a relation belongs to the
     range of the relation.  (Contributed by NM, 17-Sep-2006.) $)
  2ndrn $p |- ( ( Rel R /\ A e. R ) -> ( 2nd ` A ) e. ran R ) $=
    ( wrel wcel wa c1st cfv c2nd cop crn 1st2nd simpr eqeltrrd fvex opelrn syl
    ) BCZABDZEZAFGZAHGZIZBDUABJDSAUBBABKQRLMTUABAFNAHNOP $.

  $( Express an element of a relation as a relationship between first and
     second components.  (Contributed by Mario Carneiro, 22-Jun-2016.) $)
  1st2ndbr $p |- ( ( Rel B /\ A e. B ) -> ( 1st ` A ) B ( 2nd ` A ) ) $=
    ( wrel wcel wa c1st cfv c2nd cop wbr 1st2nd simpr eqeltrrd df-br sylibr ) B
    CZABDZEZAFGZAHGZIZBDSTBJRAUABABKPQLMSTBNO $.

  ${
    $d x y A $.  $d x y B $.
    $( Two ways of expressing membership in the domain of a relation.
       (Contributed by NM, 22-Sep-2013.) $)
    releldm2 $p |- ( Rel A
         -> ( B e. dom A <-> E. x e. A ( 1st ` x ) = B ) ) $=
      ( vy wrel cdm wcel cv c1st cfv wceq wrex cvv wa elex anim2i id fvex wex
      wb syl6eqelr rexlimivw cop eldm2g adantl cxp wss wi df-rel ssel sylbi imp
      op1steq syl rexbidva adantr rexcom4 risset bitr4i syl6bb bitr4d pm5.21nd
      exbii ) BEZCBFZGZAHZIJZCKZABLZVDCMGZNZVFVKVDCVEOPVJVKVDVIVKABVICVHMVIQVGI
      RUAUBPVLVFCDHUCZBGZDSZVJVKVFVOTVDDCBMUDUEVLVJVGVMKZDSZABLZVOVDVJVRTVKVDVI
      VQABVDVGBGZNVGMMUFZGZVIVQTVDVSWAVDBVTUGVSWAUHBUIBVTVGUJUKULDVGCMMUMUNUOUP
      VRVPABLZDSVOVPADBUQVNWBDAVMBURVCUSUTVAVB $.
  $}

  ${
    $d x y z A $.
    $( An expression for the domain of a relation.  (Contributed by NM,
       22-Sep-2013.) $)
    reldm $p |- ( Rel A -> dom A = ran ( x e. A |-> ( 1st ` x ) ) ) $=
      ( vy vz wrel cdm cv c1st cfv cmpt crn wcel wceq wrex releldm2 wfn wb fvex
      eqid fnmpti fvelrnb ax-mp fveq2 fvmpt eqeq1d rexbiia syl5rbb bitrd eqrdv
      a1i ) BEZCBFZABAGZHIZJZKZUKCGZULLDGZHIZUQMZDBNZUQUPLZDBUQOVBURUOIZUQMZDBN
      ZUKVAUOBPVBVEQABUNUOUMHRUOSZTDBUQUOUAUBVEVAQUKVDUTDBURBLVCUSUQAURUNUSBUOU
      MURHUCVFURHRUDUEUFUJUGUHUI $.
  $}

  $( Equality theorem for substitution of a class for an ordered pair (analogue
     of ~ sbceq1a that avoids the existential quantifiers of ~ copsexg ).
     (Contributed by NM, 19-Aug-2006.)  (Revised by Mario Carneiro,
     31-Aug-2015.) $)
  sbcopeq1a $p |- ( A = <. x , y >. ->
      ( [. ( 1st ` A ) / x ]. [. ( 2nd ` A ) / y ]. ph <-> ph ) ) $=
    ( cv cop wceq c2nd cfv wsbc c1st wb vex op2ndd eqcomd sbceq1a op1std bitr2d
    syl ) DBEZCEZFGZAACDHIZJZUDBDKIZJZUBUAUCGAUDLUBUCUATUADBMZCMZNOACUCPSUBTUEG
    UDUFLUBUETTUADUGUHQOUDBUEPSR $.

  $( Equality theorem for substitution of a class ` A ` for an ordered pair
     ` <. x , y >. ` in ` B ` (analogue of ~ csbeq1a ).  (Contributed by NM,
     19-Aug-2006.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
  csbopeq1a $p |- ( A = <. x , y >. ->
      [_ ( 1st ` A ) / x ]_ [_ ( 2nd ` A ) / y ]_ B = B ) $=
    ( cv cop wceq c2nd cfv csb c1st vex op2ndd eqcomd csbeq1a syl op1std eqtr2d
    ) CAEZBEZFGZDBCHIZDJZACKIZUCJZUATUBGDUCGUAUBTSTCALZBLZMNBUBDOPUASUDGUCUEGUA
    UDSSTCUFUGQNAUDUCOPR $.

  ${
    $d z ph $.  $d x y z $.
    $( A way to define an ordered-pair class abstraction without using
       existential quantifiers.  (Contributed by NM, 18-Aug-2006.)  (Revised by
       Mario Carneiro, 31-Aug-2015.) $)
    dfopab2 $p |- { <. x , y >. | ph } = { z e. ( _V X. _V ) |
                  [. ( 1st ` z ) / x ]. [. ( 2nd ` z ) / y ]. ph } $=
      ( cv cop wceq wex cab cvv cxp wcel c2nd cfv wsbc c1st nfsbc1v 19.41 exbii
      wa copab crab sbcopeq1a pm5.32i nfsbc bitr3i anbi1i 3bitr4i abbii df-opab
      nfcv elvv df-rab 3eqtr4i ) DEZBECEFGZATZCHZBHZDIUOJJKZLZACUOMNZOZBUOPNZOZ
      TZDIABCUAVEDUTUBUSVFDUPCHZVETZBHVGBHZVETUSVFVGVEBVCBVDQRURVHBURUPVETZCHVH
      VJUQCUPVEAABCUOUCUDSUPVECVCCBVDCVDUKACVBQUERUFSVAVIVEBCUOULUGUHUIABCDUJVE
      DUTUMUN $.
  $}

  ${
    $d w ph $.  $d x y z w $.
    $( A way to define an operation class abstraction without using existential
       quantifiers.  (Contributed by NM, 18-Aug-2006.)  (Revised by Mario
       Carneiro, 31-Aug-2015.) $)
    dfoprab3s $p |- { <. <. x , y >. , z >. | ph } = { <. w , z >. |
       ( w e. ( _V X. _V )
           /\ [. ( 1st ` w ) / x ]. [. ( 2nd ` w ) / y ]. ph ) } $=
      ( coprab cv cop wceq wex copab cvv cxp wcel cfv wsbc nfsbc1v 19.41 exbii
      wa c2nd c1st dfoprab2 sbcopeq1a pm5.32i nfcv nfsbc bitr3i 3bitr4i opabbii
      elvv anbi1i eqtri ) ABCDFEGZBGCGHIZATZCJZBJZEDKUNLLMNZACUNUAOZPZBUNUBOZPZ
      TZEDKABCDEUCURVDEDUOCJZVCTZBJVEBJZVCTURVDVEVCBVABVBQRUQVFBUQUOVCTZCJVFVHU
      PCUOVCAABCUNUDUESUOVCCVACBVBCVBUFACUTQUGRUHSUSVGVCBCUNUKULUIUJUM $.
  $}

  ${
    $d x y ph $.  $d w ps $.  $d x y z w $.
    dfoprab3.1 $e |- ( w = <. x , y >. -> ( ph <-> ps ) ) $.
    $( Operation class abstraction expressed without existential quantifiers.
       (Contributed by NM, 16-Dec-2008.) $)
    dfoprab3 $p |- { <. w , z >. | ( w e. ( _V X. _V ) /\ ph ) } =
       { <. <. x , y >. , z >. | ps } $=
      ( coprab cv cvv c2nd cfv wsbc c1st wa copab fvex wceq wb eqcom wcel eqopi
      cxp dfoprab3s cop anbi12i sylan2b syl bicomd ex sbc2iedv pm5.32i opabbii
      eqtr2i ) BCDEHFIZJJUCUAZBDUOKLZMCUONLZMZOZFEPUPAOZFEPBCDEFUDUTVAFEUPUSAUP
      BACDURUQUONQUOKQUPCIZURRZDIZUQRZOZBASUPVFOZABVGUOVBVDUERZABSVFUPURVBRZUQV
      DRZOVHVCVIVEVJVBURTVDUQTUFUOVBVDJJUBUGGUHUIUJUKULUMUN $.
  $}

  ${
    $d w x y A $.  $d w x y B $.  $d x y ph $.  $d w ps $.  $d w x y z $.
    dfoprab4.1 $e |- ( w = <. x , y >. -> ( ph <-> ps ) ) $.
    $( Operation class abstraction expressed without existential quantifiers.
       (Contributed by NM, 3-Sep-2007.)  (Revised by Mario Carneiro,
       31-Aug-2015.) $)
    dfoprab4 $p |- { <. w , z >. | ( w e. ( A X. B ) /\ ph ) } =
      { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ ps ) } $=
      ( cv cxp wcel wa copab cvv coprab xpss sseli adantr pm4.71ri opabbii wceq
      cop eleq1 opelxp syl6bb anbi12d dfoprab3 eqtri ) FJZGHKZLZAMZFENUJOOKZLZU
      MMZFENCJZGLDJZHLMZBMZCDEPUMUPFEUMUOULUOAUKUNUJGHQRSTUAUMUTCDEFUJUQURUCZUB
      ZULUSABVBULVAUKLUSUJVAUKUDUQURGHUEUFIUGUHUI $.
  $}

  ${
    $d t u w x y z $.  $d t u w x y A $.  $d t u w x y B $.  $d t u w ps $.
    $d t u ph $.
    dfoprab4f.x $e |- F/ x ph $.
    dfoprab4f.y $e |- F/ y ph $.
    dfoprab4f.1 $e |- ( w = <. x , y >. -> ( ph <-> ps ) ) $.
    $( Operation class abstraction expressed without existential quantifiers.
       (Unnecessary distinct variable restrictions were removed by David
       Abernethy, 19-Jun-2012.)  (Contributed by NM, 20-Dec-2008.)  (Revised by
       Mario Carneiro, 31-Aug-2015.) $)
    dfoprab4f $p |- { <. w , z >. | ( w e. ( A X. B ) /\ ph ) } =
      { <. <. x , y >. , z >. | ( ( x e. A /\ y e. B ) /\ ps ) } $=
      ( vt vu cv wcel wa cop wceq wb nfv cxp copab coprab nfs1v nfbi nfim opeq1
      wsb wi eqeq2d sbequ12 bibi2d imbi12d opeq2 chvar dfoprab4 nfan nfsb eleq1
      bi2anan9 sylan9bbr anbi12d cbvoprab12 eqtr4i ) FNZGHUAOAPFEUBLNZGOZMNZHOZ
      PZBDMUHZCLUHZPZLMEUCCNZGOZDNZHOZPZBPZCDEUCAVLLMEFGHVEVNVHQZRZAVKSZUIZVEVF
      VHQZRZAVLSZUICLWEWFCWECTAVLCIVKCLUDZUEUFVNVFRZWAWEWBWFWHVTWDVEVNVFVHUGUJW
      HVKVLAVKCLUKZULUMVEVNVPQZRZABSZUIWCDMWAWBDWADTAVKDJBDMUDZUEUFVPVHRZWKWAWL
      WBWNWJVTVEVPVHVNUNUJWNBVKABDMUKZULUMKUOUOUPVSVMCDELMVSLTVSMTVJVLCVJCTWGUQ
      VJVLDVJDTVKCLDWMURUQWHWNPVRVJBVLWHVOVGWNVQVIVNVFGUSVPVHHUSUTWNBVKWHVLWOWI
      VAVBVCVD $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y ph $.
    opabex2.1 $e |- ( ph -> A e. V ) $.
    opabex2.2 $e |- ( ph -> B e. W ) $.
    opabex2.3 $e |- ( ( ph /\ ps ) -> x e. A ) $.
    opabex2.4 $e |- ( ( ph /\ ps ) -> y e. B ) $.
    $( Condition for an operation to be a set.  (Contributed by Thierry Arnoux,
       25-Jun-2019.) $)
    opabex2 $p |- ( ph -> { <. x , y >. | ps } e. _V ) $=
      ( copab cxp cvv wcel xpexg syl2anc opabssxpd ssexd ) ABCDMEFNZOAEGPFHPUAO
      PIJEFGHQRABCDEFKLST $.
  $}

  ${
    $d x y $.  $d ph x $.
    $( An ordered-pair class abstraction which does not depend on the first
       abstraction variable is a proper class.  There must be, however, at
       least one set which satisfies the restricting wwf.  (Contributed by AV,
       27-Dec-2020.) $)
    opabn1stprc $p |- ( E. y ph -> { <. x , y >. | ph } e/ _V ) $=
      ( wex copab cvv wcel wn wnel cdm cv wa vex biantrur opabbii dmeqi wral id
      wceq ralrimivw dmopab3 sylib syl5eq vprc a1i eqneltrd dmexg df-nel sylibr
      nsyl ) ACDZABCEZFGZHULFIUKULJZFGUMUKUNFFUKUNBKFGZALZBCEZJZFULUQAUPBCUOABM
      NOPUKUKBFQURFSUKUKBFUKRTABCFUAUBUCFFGHUKUDUEUFULFUGUJULFUHUI $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d y ch $.  $d z ph $.
    $d x y z D $.  $d x ps $.
    opiota.1 $e |- I =
      ( iota z E. x e. A E. y e. B ( z = <. x , y >. /\ ph ) ) $.
    opiota.2 $e |- X = ( 1st ` I ) $.
    opiota.3 $e |- Y = ( 2nd ` I ) $.
    opiota.4 $e |- ( x = C -> ( ph <-> ps ) ) $.
    opiota.5 $e |- ( y = D -> ( ps <-> ch ) ) $.
    $( The property of a uniquely specified ordered pair.  The proof uses
       properties of the ` iota ` description binder.  (Contributed by Mario
       Carneiro, 21-May-2015.) $)
    opiota $p |- ( E! z E. x e. A E. y e. B ( z = <. x , y >. /\ ph ) ->
      ( ( C e. A /\ D e. B /\ ch ) <-> ( C = X /\ D = Y ) ) ) $=
      ( wceq wa cv cop wrex weu wcel c1st cfv c2nd w3a ceqsrex2v bicomd cio cvv
      opex a1i id wb eqeq1 eqcom opth bitri syl6bb anbi1d 2rexbidv adantl nfeu1
      vex nfcvd iota2df eqeq1i syl6bbr sylan9bbr pm5.32da cxp cab opelxpi simpl
      nfvd eleq1d syl5ibrcom rexlimivv abssi iotacl sseldi opelxp eleq1 syl5bbr
      syl5eqel pm4.71rd 1st2nd2 eqeq2d 3bitr2d df-3an eqeq2i anbi12i fvex opth2
      syl bitr4i 3bitr4g ) FUAZDUAZEUAZUBZSZATZEHUCDGUCZFUDZIGUEZJHUEZTZCTZIJUB
      ZKUFUGZKUHUGZUBZSZXIXJCUIILSZJMSZTZXHXLXKXMKSZTYAXQXHXKCYAXKCXBISXCJSTZAT
      ZEHUCDGUCZXHYAXKYDCABCDEIJGHQRUJUKXHYDXGFULZXMSZYAXHXGYDFXMUMXMUMUEXHIJUN
      UOXHUPXAXMSZXGYDUQXHYGXFYCDEGHYGXEYBAYGXEXMXDSZYBXAXMXDURYHXDXMSYBXMXDUSX
      BXCIJDVGEVGUTVAVBVCVDVEXGFVFXHYDFVRXHFXMVHVIYAKXMSYFXMKUSKYEXMNVJVAVKVLVM
      XHYAXKXHXKYAKGHVNZUEZXHKYEYINXHXGFVOYIYEXGFYIXFXAYIUEZDEGHXBGUEXCHUETYKXF
      XDYIUEXBXCGHVPXFXAXDYIXEAVQVSVTWAWBXGFWCWDWHZXKXMYIUEYAYJIJGHWEXMKYIWFWGV
      TWIXHKXPXMXHYJKXPSYLKGHWJWRWKWLXIXJCWMXTIXNSZJXOSZTXQXRYMXSYNLXNIOWNMXOJP
      WNWOIJXNXOKUFWPKUHWPWQWSWT $.
  $}

  ${
    $d a x y z $.  $d a ph $.  $d x y ps $.
    cnvoprab.1 $e |- ( a = <. x , y >. -> ( ps <-> ph ) ) $.
    cnvoprab.2 $e |- ( ps -> a e. ( _V X. _V ) ) $.
    $( The converse of a class abstraction of nested ordered pairs.
       (Contributed by Thierry Arnoux, 17-Aug-2017.)  (Proof shortened by
       Thierry Arnoux, 20-Feb-2022.) $)
    cnvoprab $p |- `' { <. <. x , y >. , z >. | ph } = { <. z , a >. | ps } $=
      ( cv cvv cxp wcel wa copab ccnv coprab dfoprab3 cnveqi cin cnvopab inopab
      wss wceq ssopab2i sseqin2 mpbi 3eqtr2i eqtr3i ) FIJJKLZBMZFENZOZACDEPZOBE
      FNZUKUMBACDEFGQRULUJEFNUIEFNZUNSZUNUJFETUIBEFUAUNUOUBUPUNUCBUIEFHUDUNUOUE
      UFUGUH $.
  $}

  ${
    $d x y z u A $.  $d x y z u B $.  $d x y z u C $.
    $( Define the Cartesian product of three classes.  Compare ~ df-xp .
       (Contributed by FL, 6-Nov-2013.)  (Proof shortened by Mario Carneiro,
       3-Nov-2015.) $)
    dfxp3 $p |- ( ( A X. B ) X. C ) =
      { <. <. x , y >. , z >. | ( x e. A /\ y e. B /\ z e. C ) } $=
      ( vu cv cxp wcel wa copab coprab w3a cop wceq biidd dfoprab4 df-xp df-3an
      oprabbii 3eqtr4i ) GHZDEIZJCHFJZKGCLAHZDJZBHZEJZKUEKZABCMUDFIUGUIUENZABCM
      UEUEABCGDEUCUFUHOPUEQRGCUDFSUKUJABCUGUIUETUAUB $.
  $}

  ${
    $d x y A $.  $d x y ch $.
    elopabi.1 $e |- ( x = ( 1st ` A ) -> ( ph <-> ps ) ) $.
    elopabi.2 $e |- ( y = ( 2nd ` A ) -> ( ps <-> ch ) ) $.
    $( A consequence of membership in an ordered-pair class abstraction, using
       ordered pair extractors.  (Contributed by NM, 29-Aug-2006.) $)
    elopabi $p |- ( A e. { <. x , y >. | ph } -> ch ) $=
      ( copab wcel c1st cfv c2nd cop wrel wceq relopab 1st2nd mpan fvex sylib
      id eqeltrrd opelopab ) FADEIZJZFKLZFMLZNZUEJCUFFUIUEUEOUFFUIPADEQFUERSUFU
      BUCABCDEUGUHFKTFMTGHUDUA $.
  $}

  ${
    $d w x y z A $.  $d w ph $.  $d x y z th $.
    eloprabi.1 $e |- ( x = ( 1st ` ( 1st ` A ) ) -> ( ph <-> ps ) ) $.
    eloprabi.2 $e |- ( y = ( 2nd ` ( 1st ` A ) ) -> ( ps <-> ch ) ) $.
    eloprabi.3 $e |- ( z = ( 2nd ` A ) -> ( ch <-> th ) ) $.
    $( A consequence of membership in an operation class abstraction, using
       ordered pair extractors.  (Contributed by NM, 6-Nov-2006.)  (Revised by
       David Abernethy, 19-Jun-2012.) $)
    eloprabi $p |- ( A e. { <. <. x , y >. , z >. | ph } -> th ) $=
      ( vw cv wceq wex c1st cfv wb syl c2nd coprab wcel wa eqeq1 anbi1d 3exbidv
      cop df-oprab elab2g ibi opex vex op1std fveq2d op1st syl6req op2nd op2ndd
      eqcomd 3bitrd biimpa exlimiv ) HAEFGUAZUBZHEMZFMZUGZGMZUGZNZAUCZGOZFOZEOZ
      DVDVNLMZVINZAUCZGOFOEOVNLHVCVCVOHNZVQVKEFGVRVPVJAVOHVIUDUEUFAEFGLUHUIUJVM
      DEVLDFVKDGVJADVJABCDVJVEHPQZPQZNABRVJVTVGPQVEVJVSVGPVGVHHVEVFUKZGULZUMZUN
      VEVFEULZFULZUOUPISVJVFVSTQZNBCRVJWFVGTQVFVJVSVGTWCUNVEVFWDWEUQUPJSVJVHHTQ
      ZNCDRVJWGVHVGVHHWAWBURUSKSUTVAVBVBVBS $.
  $}

  ${
    $d u v x y z A $.  $d u v y z B $.  $d u v z C $.
    $( Express a two-argument function as a one-argument function, or
       vice-versa.  (Contributed by Mario Carneiro, 24-Dec-2016.) $)
    mpt2mptsx $p |- ( x e. A , y e. B |-> C ) = ( z e. U_ x e. A ( { x } X. B )
        |-> [_ ( 1st ` z ) / x ]_ [_ ( 2nd ` z ) / y ]_ C ) $=
      ( vu vv cv csn csb cxp ciun cfv cmpt cmpt2 wceq nfcv nfcsb1v csbeq1a c1st
      c2nd cop vex op1std csbeq1d op2ndd csbeq2dv eqtrd mpt2mptx xpeq12d cbviun
      nfxp sneq mpteq1 ax-mp nfcsb sylan9eqr cbvmpt2x 3eqtr4ri ) CGDGIZJZAVAEKZ
      LZMZACIZUANZBVFUBNZFKZKZOZGHDVCAVABHIZFKZKZPCADAIZJZELZMZVJOZABDEFPGHCDVC
      VJVNVFVAVLUCQZVJAVAVIKVNVTAVGVAVIVAVLVFGUDZHUDZUEUFVTAVAVIVMVTBVHVLFVAVLV
      FWAWBUGUFUHUIUJVRVEQVSVKQAGDVQVDGVQRAVBVCAVBRAVAESZUMVOVAQZVPVBEVCVOVAUNA
      VAETZUKULCVRVEVJUOUPABGHDEFVCVNGERWCGFRHFRAVAVMSBAVAVMBVARBVLFSUQWEBIVLQW
      DFVMVNBVLFTAVAVMTURUSUT $.

    $d x B $.
    $( Express a two-argument function as a one-argument function, or
       vice-versa.  (Contributed by Mario Carneiro, 24-Sep-2015.) $)
    mpt2mpts $p |- ( x e. A , y e. B |-> C ) =
      ( z e. ( A X. B ) |-> [_ ( 1st ` z ) / x ]_ [_ ( 2nd ` z ) / y ]_ C ) $=
      ( cv csn cxp ciun c1st cfv c2nd csb cmpt mpt2mptsx wceq iunxpconst mpteq1
      cmpt2 ax-mp eqtri ) ABDEFTCADAGHEIJZACGZKLBUDMLFNNZOZCDEIZUEOZABCDEFPUCUG
      QUFUHQADERCUCUGUESUAUB $.
  $}

  ${
    $d t u v w x y z A $.  $d t u v w y z B $.  $d t u v w z C $.
    $d v w x y z D $.
    fmpt2x.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( The domain of a mapping is a subset of its base class.  (Contributed by
       Mario Carneiro, 9-Feb-2015.) $)
    dmmpt2ssx $p |- dom F C_ U_ x e. A ( { x } X. B ) $=
      ( vu vt vv cv csn csb cxp ciun cfv nfcv nfcsb1v csbeq1a wceq cdm cbvmpt2x
      c1st c2nd cmpt2 cmpt nfcsb sylan9eqr cop vex op1std op2ndd csbeq2dv eqtrd
      csbeq1d mpt2mptx 3eqtr4i dmmptss nfxp sneq xpeq12d cbviun sseqtr4i ) FUAH
      CHKZLZAVDDMZNZOZACAKZLZDNZOIVHAIKZUCPZBVLUDPZEMZMZFABCDEUEHJCVFAVDBJKZEMZ
      MZUEFIVHVPUFABHJCDEVFVSHDQAVDDRZHEQJEQAVDVRRBAVDVRBVDQBVQERUGAVDDSZBKVQTV
      IVDTZEVRVSBVQESAVDVRSUHUBGHJICVFVPVSVLVDVQUITZVPAVDVOMVSWCAVMVDVOVDVQVLHU
      JZJUJZUKUOWCAVDVOVRWCBVNVQEVDVQVLWDWEULUOUMUNUPUQURAHCVKVGHVKQAVEVFAVEQVT
      USWBVJVEDVFVIVDUTWAVAVBVC $.

    $( Functionality, domain and codomain of a class given by the "maps to"
       notation, where ` B ( x ) ` is not constant but depends on ` x ` .
       (Contributed by NM, 29-Dec-2014.) $)
    fmpt2x $p |- ( A. x e. A A. y e. B C e. D <->
      F : U_ x e. A ( { x } X. B ) --> D ) $=
      ( vz vw vv cv csb wcel wral wceq eleq1d wa nfv nfcsb1v csn ciun c1st c2nd
      cxp wf cfv cop op1std csbeq1d op2ndd csbeq2dv eqtrd raliunxp cmpt2 coprab
      cmpt nfcri nfan nfeq2 nfcv nfcsb wb eleq1 adantr csbeq1a eleq2d sylan9bbr
      anbi12d sylan9eqr eqeq2d cbvoprab12 df-mpt2 3eqtr4i mpt2mptx bitr3i nfel1
      fmpt nfral cbvral raleqbidv syl5bb nfxp sneq xpeq12d cbviun feq2i 3bitr4i
      vex ) AILZBJLZEMZMZFNZJAWJDMZOZICOZICWJUAZWOUEZUBZFGUFZEFNZBDOZACOACALZUA
      ZDUEZUBZFGUFWQAKLZUCUGZBXHUDUGZEMZMZFNZKWTOXAXMWNKIJCWOXHWJWKUHPZXLWMFXNX
      LAWJXKMWMXNAXIWJXKWJWKXHIWIZJWIZUIUJXNAWJXKWLXNBXJWKEWJWKXHXOXPUKUJULUMZQ
      UNKWTFXLGABCDEUOZIJCWOWMUOZGKWTXLUQXDCNZBLZDNZRZXHEPZRZABKUPWJCNZWKWONZRZ
      XHWMPZRZIJKUPXRXSYEYJABKIJYEISYEJSYHYIAYFYGAYFASAJWOAWJDTZURUSAXHWMAWJWLT
      ZUTUSYHYIBYHBSBXHWMBAWJWLBWJVABWKETZVBUTUSXDWJPZYAWKPZRZYCYHYDYIYPXTYFYBY
      GYNXTYFVCYOXDWJCVDVEYOYBWKDNYNYGYAWKDVDYNDWOWKAWJDVFZVGVHVIYPEWMXHYOYNEWL
      WMBWKEVFZAWJWLVFZVJVKVIVLABKCDEVMIJKCWOWMVMVNHIJKCWOXLWMXQVOVNVRVPXCWPAIC
      XCISWNAJWOYKAWMFYLVQVSXCWLFNZJDOYNWPXBYTBJDXBJSBWLFYMVQYOEWLFYRQVTYNYTWNJ
      DWOYQYNWLWMFYSQWAWBVTXGWTFGAICXFWSIXFVAAWRWOAWRVAYKWCYNXEWRDWOXDWJWDYQWEW
      FWGWH $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d D x y $.
    fmpt2.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( Functionality, domain and range of a class given by the "maps to"
       notation.  (Contributed by FL, 17-May-2010.) $)
    fmpt2 $p |- ( A. x e. A A. y e. B C e. D <-> F : ( A X. B ) --> D ) $=
      ( wcel wral cv csn cxp ciun wf fmpt2x iunxpconst feq2i bitri ) EFIBDJACJA
      CAKLDMNZFGOCDMZFGOABCDEFGHPTUAFGACDQRS $.

    $( Functionality and domain of a class given by the "maps to" notation.
       (Contributed by FL, 17-May-2010.) $)
    fnmpt2 $p |- ( A. x e. A A. y e. B C e. V -> F Fn ( A X. B ) ) $=
      ( wcel wral cvv cxp wfn elex 2ralimi wf fmpt2 dffn2 bitr4i sylib ) EGIZBD
      JACJEKIZBDJACJZFCDLZMZUAUBABCDEGNOUCUDKFPUEABCDEKFHQUDFRST $.

    fnmpt2i.2 $e |- C e. _V $.
    $( Functionality and domain of a class given by the "maps to" notation.
       (Contributed by FL, 17-May-2010.) $)
    fnmpt2i $p |- F Fn ( A X. B ) $=
      ( cvv wcel wral cxp wfn rgen2w fnmpt2 ax-mp ) EIJZBDKACKFCDLMQABCDHNABCDE
      FIGOP $.

    $( Domain of a class given by the "maps to" notation.  (Contributed by FL,
       17-May-2010.) $)
    dmmpt2 $p |- dom F = ( A X. B ) $=
      ( cxp wfn cdm wceq fnmpt2i fndm ax-mp ) FCDIZJFKPLABCDEFGHMPFNO $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d M x y $.
    ovmpt2elrn.o $e |- O = ( x e. A , y e. B |-> C ) $.
    $( An operation's value belongs to its range.  (Contributed by AV,
       27-Jan-2020.) $)
    ovmpt2elrn $p |- ( ( A. x e. A A. y e. B C e. M /\ X e. A /\ Y e. B )
                       -> ( X O Y ) e. M ) $=
      ( wcel wral cxp wf co fmpt2 fovrn syl3an1b ) EFKBDLACLCDMFGNHCKIDKHIGOFKA
      BCDEFGJPHIFCDGQR $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d V x y $.
    dmmpt2g.f $e |- F = ( x e. A , y e. B |-> C ) $.
    $( Domain of an operation given by the "maps to" notation, closed form of
       ~ dmmpt2 .  (Contributed by Alexander van der Vekens, 10-Feb-2019.) $)
    dmmpt2ga $p |- ( A. x e. A A. y e. B C e. V -> dom F = ( A X. B ) ) $=
      ( wcel wral cxp wfn cdm wceq fnmpt2 fndm syl ) EGIBDJACJFCDKZLFMRNABCDEFG
      HORFPQ $.

    $d C x y $.
    $( Domain of an operation given by the "maps to" notation, closed form of
       ~ dmmpt2 .  Caution:  This theorem is only valid in the very special
       case where the value of the mapping is a constant!  (Contributed by
       Alexander van der Vekens, 1-Jun-2017.)  (Prove shortened by AV,
       10-Feb-2019.) $)
    dmmpt2g $p |- ( C e. V -> dom F = ( A X. B ) ) $=
      ( wcel wral cdm cxp wceq cv wa simpl ralrimivva dmmpt2ga syl ) EGIZTBDJAC
      JFKCDLMTTABCDTANCIBNDIOPQABCDEFGHRS $.
  $}

  ${
    $d A x y $.  $d B y $.
    mpt2exg.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( Existence of an operation class abstraction (version for dependent
       domains).  (Contributed by Mario Carneiro, 30-Dec-2016.) $)
    mpt2exxg $p |- ( ( A e. R /\ A. x e. A B e. S ) -> F e. _V ) $=
      ( wcel wral wa wfun cdm cvv mpt2fun cv csn cxp sylancr ciun wss dmmpt2ssx
      snex xpexg mpan ralimi iunexg sylan2 ssexg funex ) CFJZDGJZACKZLZHMHNZOJZ
      HOJABCDEHIPUOUPACAQZRZDSZUAZUBVAOJZUQABCDEHIUCUNULUTOJZACKVBUMVCACUSOJUMV
      CURUDUSDOGUEUFUGACUTFOUHUIUPVAOUJTOHUKT $.

    $d x B $.
    $( Existence of an operation class abstraction (special case).
       (Contributed by FL, 17-May-2010.)  (Revised by Mario Carneiro,
       1-Sep-2015.) $)
    mpt2exg $p |- ( ( A e. R /\ B e. S ) -> F e. _V ) $=
      ( wcel cvv wral elex ralrimivw syl mpt2exxg sylan2 ) DGJZCFJDKJZACLZHKJRS
      TDGMSSACDKMNOABCDEFKHIPQ $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( If the domain of a function given by maps-to notation is a set, the
       function is a set.  (Contributed by NM, 12-Sep-2011.) $)
    mpt2exga $p |- ( ( A e. V /\ B e. W )
                       -> ( x e. A , y e. B |-> C ) e. _V ) $=
      ( cmpt2 eqid mpt2exg ) ABCDEFGABCDEHZKIJ $.
  $}

  ${
    $d x y A $.  $d y B $.
    mpt2ex.1 $e |- A e. _V $.
    mpt2ex.2 $e |- B e. _V $.
    $( If the domain of a function given by maps-to notation is a set, the
       function is a set.  (Contributed by Mario Carneiro, 20-Dec-2013.) $)
    mpt2ex $p |- ( x e. A , y e. B |-> C ) e. _V $=
      ( cvv wcel wral cmpt2 rgenw eqid mpt2exxg mp2an ) CHIDHIZACJABCDEKZHIFPAC
      GLABCDEHHQQMNO $.
  $}

  ${
    $d A a b g $.  $d B a b g $.  $d D a b g $.  $d G a b f g h $.  $d W g $.
    $d X a b f g h $.  $d Y a b f g h $.  $d ph f h $.
    mptmpt2opabbrd.g $e |- ( ph -> G e. W ) $.
    mptmpt2opabbrd.x $e |- ( ph -> X e. ( A ` G ) ) $.
    mptmpt2opabbrd.y $e |- ( ph -> Y e. ( B ` G ) ) $.
    mptmpt2opabbrd.v $e |- ( ph -> { <. f , h >. | ps } e. V ) $.
    mptmpt2opabbrd.r $e |- ( ( ph /\ f ( D ` G ) h ) -> ps ) $.
    ${
      $d ta g $.  $d th a b $.
      mptmpt2opabbrd.1 $e |- ( ( a = X /\ b = Y ) -> ( ta <-> th ) ) $.
      mptmpt2opabbrd.2 $e |- ( g = G -> ( ch <-> ta ) ) $.
      mptmpt2opabbrd.m $e |- M = ( g e. _V
                                    |-> ( a e. ( A ` g ) , b e. ( B ` g )
                           |-> { <. f , h >. | ( ch /\ f ( D ` g ) h ) } ) ) $.
      $( The operation value of a function value of a collection of ordered
         pairs of elements related in two ways.  (Contributed by Alexander van
         Vekens, 8-Nov-2017.)  (Revised by AV, 15-Jan-2021.) $)
      mptmpt2opabbrd $p |- ( ph -> ( X ( M ` G ) Y )
                               = { <. f , h >. | ( th /\ f ( D ` G ) h ) } ) $=
        ( cfv co cv wbr copab cmpt2 wcel wceq cvv cmpt a1i fveq2 breqd opabbidv
        anbi12d mpt2eq123dv adantl elex adantr fvex pm3.2i mpt2exga mp1i fvmptd
        wa syl2anc oveqd ancom opabbii opabresex2d syl5eqel anbi1d eqid syl3anc
        ovmpt2ga eqtrd ) APQLMUHZUIPQRSLFUHZLGUHZEIUJZKUJZLHUHZUKZVLZIKULZUMZUI
        ZDWJVLZIKULZAWDWMPQALOUNZWQWDWMUOTTWQWQVLZJLRSJUJZFUHZWSGUHZCWGWHWSHUHZ
        UKZVLZIKULZUMZWMUPMUPMJUPXFUQUOWRUGURWSLUOZXFWMUOWRXGRSWTXAXEWEWFWLWSLF
        USWSLGUSXGXDWKIKXGCEXCWJUFXGXBWIWGWHWSLHUSUTVBVAVCVDWQLUPUNWQLOVEVFWEUP
        UNZWFUPUNZVLWMUPUNWRXHXILFVGLGVGVHRSWEWFWLUPUPVIVJVKVMVNAPWEUNQWFUNWPUP
        UNWNWPUOUAUBAWPWJDVLZIKULUPWOXJIKDWJVOVPABDIKLNHUDUCVQVRRSPQWEWFWLWPWMU
        PRUJPUOSUJQUOVLZWKWOIKXKEDWJUEVSVAWMVTWBWAWC $.
    $}

    $d C a b g $.
    mptmpt2opabovd.m $e |- M = ( g e. _V |-> ( a e. ( A ` g ) , b e. ( B ` g )
                              |-> { <. f , h >. | ( f ( a ( C ` g ) b ) h
                                                    /\ f ( D ` g ) h ) } ) ) $.
    $( The operation value of a function value of a collection of ordered pairs
       of related elements (Contributed by Alexander van der Vekens,
       8-Nov-2017.)  (Revised by AV, 15-Jan-2021.) $)
    mptmpt2opabovd $p |- ( ph -> ( X ( M ` G ) Y ) = { <. f , h >. |
                              ( f ( X ( C ` G ) Y ) h /\ f ( D ` G ) h ) } ) $=
      ( cv cfv co wbr wceq wa oveq12 breqd fveq2 oveqd mptmpt2opabbrd ) ABGUDZI
      UDZPUDZQUDZHUDZEUEZUFZUGUOUPNOJEUEZUFZUGUOUPUQURVBUFZUGCDFGHIJKLMNOPQRSTU
      AUBUQNUHUROUHUIVDVCUOUPUQNUROVBUJUKUSJUHZVAVDUOUPVEUTVBUQURUSJEULUMUKUCUN
      $.
  $}

  ${
    $d A a b s t x y $.  $d B a b s t x y $.  $d C a b s t $.  $d D a b s t $.
    $d E a b $.  $d U a b x y $.  $d V a b x y $.  $d X a b s t x y $.
    $d Y a b s t x y $.
    el2mpt2csbcl.o $e |- O = ( x e. A , y e. B
                               |-> ( s e. C , t e. D |-> E ) ) $.
    $( If the operation value of the operation value of two nested maps-to
       notation is not empty, all involved arguments belong to the
       corresponding base classes of the maps-to notations.  (Contributed by
       AV, 21-May-2021.) $)
    el2mpt2csbcl $p |- ( A. x e. A A. y e. B ( C e. U /\ D e. V )
                      -> ( W e. ( S ( X O Y ) T )
                           -> ( ( X e. A /\ Y e. B )
                                /\ ( S e. [_ X / x ]_ [_ Y / y ]_ C
                                /\ T e. [_ X / x ]_ [_ Y / y ]_ D ) ) ) ) $=
      ( wcel csb va vb wa wral co wi simpl cmpt2 cv cvv wceq nfcv nfcsb1v nfcsb
      nfmpt2 csbeq1a csbeq2dv sylan9eq mpt2eq123dv cbvmpt2 csbeq1 adantr adantl
      eqtri a1i eqtrd simpr ralimi rspcsbela syl2an ex ralimdv syl2anc mpt2exga
      impcom ovmpt2d oveqd eleq2d eqid elmpt2cl syl6bi impancom jca wn mpt2ndm0
      c0 noel pm2.21i 0ov eleq2s adantld pm2.61i ) FJSZGMSZUCZBEUDZADUDZNHIOPLU
      EZUEZSZODSZPESZUCZHAOBPFTZTZSIAOBPGTZTZSUCZUCZXCWQWTUCZXIUFXCXJXIXCXJUCXC
      XHXCXJUGXJXCXHWQXCWTXHWQXCUCZWTNHIQCXEXGAOBPKTZTZUHZUEZSXHXKWSXONXKWRXNHI
      XKUAUBOPDEQCAUAUIZBUBUIZFTZTZAXPBXQGTZTZAXPBXQKTZTZUHZXNLUJLUAUBDEYDUHZUK
      XKLABDEQCFGKUHZUHYERABUAUBDEYFYDUAYFULUBYFULQCAXSYAYCAXPXRUMAXPXTUMAXPYBU
      MUOQCBXSYAYCBAXPXRBXPULZBXQFUMUNBAXPXTYGBXQGUMUNBAXPYBYGBXQKUMUNUOAUIXPUK
      ZBUIXQUKZUCQCFGKXSYAYCYHYIFAXPFTXSAXPFUPYIAXPFXRBXQFUPUQURYHYIGAXPGTYAAXP
      GUPYIAXPGXTBXQGUPUQURYHYIKAXPKTYCAXPKUPYIAXPKYBBXQKUPUQURUSUTVDVEXPOUKZXQ
      PUKZUCZYDXNUKXKYLQCXSYAYCXEXGXMYLXSAOXRTZXEYJXSYMUKYKAXPOXRVAVBYLAOXRXDYK
      XRXDUKYJBXQPFVAVCUQVFYLYAAOXTTZXGYJYAYNUKYKAXPOXTVAVBYLAOXTXFYKXTXFUKYJBX
      QPGVAVCUQVFYLYCAOYBTZXMYJYCYOUKYKAXPOYBVAVBYLAOYBXLYKYBXLUKYJBXQPKVAVCUQV
      FUSVCXCXAWQXAXBUGVCZXCXBWQXAXBVGZVCXKXEJSZXGMSZXNUJSXKXAXDJSZADUDZYRYPXCW
      QUUAXCWPYTADXCWPYTXCXBWMBEUDYTWPYQWOWMBEWMWNUGVHBPEFJVIVJVKVLVOAODXDJVIVM
      XKXAXFMSZADUDZYSYPXCWQUUCXCWPUUBADXCWPUUBXCXBWNBEUDUUBWPYQWOWNBEWMWNVGVHB
      PEGMVIVJVKVLVOAODXFMVIVMQCXEXGXMJMVNVMVPVQVRQCXEXGXMHIXNNXNVSVTWAWBVOWCVK
      XCWDZWTXIWQUUDWTNHIWFUEZSXIUUDWSUUENUUDWRWFHIABYFLOPDERWEVQVRXINWFUUENWFS
      XINWGWHHIWIWJWAWKWLVK $.
  $}

  ${
    $d A s t x y $.  $d B s t x y $.  $d C s t $.  $d D s t $.  $d F x y $.
    $d G x y $.  $d U x y $.  $d V x y $.  $d X s t x y $.  $d Y s t x y $.
    el2mpt2cl.o $e |- O = ( x e. A , y e. B |-> ( s e. C , t e. D |-> E ) ) $.
    el2mpt2cl.e $e |- ( ( x = X /\ y = Y ) -> ( C = F /\ D = G ) ) $.
    $( If the operation value of the operation value of two nested maps-to
       notation is not empty, all involved arguments belong to the
       corresponding base classes of the maps-to notations.  Using implicit
       substitution.  (Contributed by AV, 21-May-2021.) $)
    el2mpt2cl $p |- ( A. x e. A A. y e. B ( C e. U /\ D e. V )
                -> ( W e. ( S ( X O Y ) T )
                     -> ( ( X e. A /\ Y e. B ) /\ ( S e. F /\ T e. G ) ) ) ) $=
      ( wcel wa wral co el2mpt2csbcl simpl cv wceq simplr simpld adantll csbied
      csb eleq2d simprd anbi12d biimpd imdistani syl6 ) FJUBGOUBUCBEUDADUDPHIQR
      NUEUEUBQDUBZREUBZUCZHAQBRFUNZUNZUBZIAQBRGUNZUNZUBZUCZUCVCHLUBZIMUBZUCZUCA
      BCDEFGHIJKNOPQRSTUFVCVJVMVCVJVMVCVFVKVIVLVCVELHVCAQVDLDVAVBUGZVCAUHQUIZUC
      ZBRFLEVAVBVOUJZVOBUHRUIZFLUIZVCVOVRUCZVSGMUIZUAUKULUMUMUOVCVHMIVCAQVGMDVN
      VPBRGMEVQVOVRWAVCVTVSWAUAUPULUMUMUOUQURUSUT $.
  $}

  ${
    $d A a b i j $.  $d B a b i j $.  $d C i j $.  $d D a b $.  $d M a b i j $.
    $d U a b i j $.  $d V a b i j $.  $d X a b i j $.  $d Y a b i j $.
    $d ph a b i j $.
    fnmpt2ovd.m $e |- ( ph -> M Fn ( A X. B ) ) $.
    fnmpt2ovd.s $e |- ( ( i = a /\ j = b ) -> D = C ) $.
    fnmpt2ovd.d $e |- ( ( ph /\ i e. A /\ j e. B ) -> D e. U ) $.
    fnmpt2ovd.c $e |- ( ( ph /\ a e. A /\ b e. B ) -> C e. V ) $.
    fnmpt2ovd.v $e |- ( ph -> ( A e. X /\ B e. Y ) ) $.
    $( A function with a Cartesian product as domain is a mapping with two
       arguments defined by its operation values.  (Contributed by AV,
       20-Feb-2019.) $)
    fnmpt2ovd $p |- ( ph -> ( M = ( a e. A , b e. B |-> C )
                              <-> A. i e. A A. j e. B ( i M j ) = D ) ) $=
      ( wral cmpt2 wceq cv co cxp wfn wcel 3expb ralrimivva eqid fnmpt2 eqfnov2
      wb syl syl2anc nfcv cbvmpt2 eqcomi oveqd eqeq2d 2ralbidv wa simprl simprr
      a1i ovmpt4g syl3anc 2ralbidva 3bitrd ) AIMNBCDUAZUBZGUCZHUCZIUDZVLVMVJUDZ
      UBZHCTGBTZVNVLVMGHBCEUAZUDZUBZHCTGBTVNEUBZHCTGBTAIBCUEZUFVJWBUFZVKVQUMOAD
      JUGZNCTMBTWCAWDMNBCAMUCBUGNUCCUGWDRUHUIMNBCDVJJVJUJUKUNGHBCIVJULUOAVPVTGH
      BCAVOVSVNAVJVRVLVMVJVRUBAVRVJGHMNBCEDMEUPNEUPGDUPHDUPPUQURVEUSUTVAAVTWAGH
      BCAVLBUGZVMCUGZVBVBZVSEVNWGWEWFEFUGZVSEUBAWEWFVCAWEWFVDAWEWFWHQUHGHBCEVRF
      VRUJVFVGUTVHVI $.
  $}

  ${
    $d ph x y z $.  $d A x y z $.  $d B x y z $.  $d R x y z $.  $d C z $.
    $d D z $.
    offval22.a $e |- ( ph -> A e. V ) $.
    offval22.b $e |- ( ph -> B e. W ) $.
    offval22.c $e |- ( ( ph /\ x e. A /\ y e. B ) -> C e. X ) $.
    offval22.d $e |- ( ( ph /\ x e. A /\ y e. B ) -> D e. Y ) $.
    offval22.f $e |- ( ph -> F = ( x e. A , y e. B |-> C ) ) $.
    offval22.g $e |- ( ph -> G = ( x e. A , y e. B |-> D ) ) $.
    $( The function operation expressed as a mapping, variation of ~ offval2 .
       (Contributed by SO, 15-Jul-2018.) $)
    offval22 $p |- ( ph -> ( F oF R G ) =
        ( x e. A , y e. B |-> ( C R D ) ) ) $=
      ( vz cof co cxp cv c1st cfv c2nd csb cmpt cmpt2 cvv wcel xpexg syl2anc wa
      xp1st xp2nd jca w3a fvex nfcv nfv nfcsb1v nfel1 nfim wceq 3anbi3d csbeq1a
      wi eleq1 eleq1d imbi12d 3anbi2d elex vtocl2gf mp2an 3expb sylan2 mpt2mpts
      syl syl6eq offval2 csbov12g csbeq2dv ax-mp eqtr2i mpteq2i eqtr4i ) AIJHUB
      UCUADEUDZBUAUEZUFUGZCWKUHUGZFUIZUIZBWLCWMGUIZUIZHUCZUJZBCDEFGHUCZUKZAUAWJ
      WOWQHIJULULULADKUMELUMWJULUMOPDEKLUNUOWKWJUMZAWLDUMZWMEUMZUPZWOULUMZXBXCX
      DWKDEUQWKDEURUSZAXCXDXFWMULUMZWLULUMZAXCXDUTZXFVJZWKUHVAZWKUFVAZABUEZDUMZ
      CUEZEUMZUTZFULUMZVJAXOXDUTZWNULUMZVJXKCBWMWLULULCWMVBZBWMVBZBWLVBZXTYACXT
      CVCZCWNULCWMFVDVEVFXJXFBXJBVCZBWOULBWLWNVDVEVFXPWMVGZXRXTXSYAYGXQXDAXOXPW
      MEVKVHZYGFWNULCWMFVIVLVMXNWLVGZXTXJYAXFYIXOXCAXDXNWLDVKVNZYIWNWOULBWLWNVI
      VLVMXRFMUMXSQFMVOWAVPVQVRVSXBAXEWQULUMZXGAXCXDYKXHXIXJYKVJZXLXMXRGULUMZVJ
      XTWPULUMZVJYLCBWMWLULULYBYCYDXTYNCYECWPULCWMGVDVEVFXJYKBYFBWQULBWLWPVDVEV
      FYGXRXTYMYNYHYGGWPULCWMGVIVLVMYIXTXJYNYKYJYIWPWQULBWLWPVIVLVMXRGNUMYMRGNV
      OWAVPVQVRVSAIBCDEFUKUAWJWOUJSBCUADEFVTWBAJBCDEGUKUAWJWQUJTBCUADEGVTWBWCWS
      UAWJBWLCWMWTUIZUIZUJXAUAWJWRYPYPBWLWNWPHUCZUIZWRXHYPYRVGXLXHBWLYOYQCWMFGH
      ULWDWEWFXIYRWRVGXMBWLWNWPHULWDWFWGWHBCUADEWTVTWIWB $.
  $}

  $( If a binary relation holds for the result of an operation, the operands
     are in the domain of the operation.  (Contributed by AV, 31-Dec-2020.) $)
  brovpreldm $p |- ( D ( B A C ) E -> <. B , C >. e. dom A ) $=
    ( co wbr cop wcel cdm df-br c0 wne ne0i wn cfv df-ov ndmfv syl5eq necon1ai
    syl sylbi ) DEBCAFZGDEHZUCIZBCHZAJIZDEUCKUEUCLMUGUCUDNUGUCLUGOUCUFAPLBCAQUF
    ARSTUAUB $.

  ${
    $d E a b e f p v $.  $d V a b c e f p v $.  $d ps c e v $.
    bropopvvv.o $e |- O = ( v e. _V , e e. _V |-> ( a e. v , b e. v |->
                            { <. f , p >. | ph } ) ) $.
    bropopvvv.p $e |- ( ( v = V /\ e = E ) -> ( ph <-> ps ) ) $.
    bropopvvv.oo $e |- ( ( ( V e. _V /\ E e. _V ) /\ ( A e. V /\ B e. V ) )
                         -> ( A ( V O E ) B ) = { <. f , p >. | th } ) $.
    $( If a binary relation holds for the result of an operation which is a
       result of an operation, the involved classes are sets.  (Contributed by
       Alexander van der Vekens, 12-Dec-2017.)  (Proof shortened by AV,
       3-Jan-2021.) $)
    bropopvvv $p |- ( F ( A ( V O E ) B ) P
                      -> ( ( V e. _V /\ E e. _V )
                        /\ ( F e. _V /\ P e. _V )
                        /\ ( A e. V /\ B e. V ) ) ) $=
      ( wcel vc co wbr cvv wa w3a cop cdm wi brovpreldm copab cmpt2 cv opabbidv
      simpl mpt2eq123dv ovmpt2ga dmeqd eleq2d coprab cxp dmoprabss sseli opelxp
      wceq df-br c0 wne ne0i breqd brabv anim2i ex adantr sylbid com23 mpt2ndm0
      a1d cfv df-ov fveq1 syl5eq 0fv syl6eq eqneqall 3syl pm2.61i sylbi pm2.43i
      wn syl com12 anc2ri df-3an syl6ibr df-mpt2 dmeqi eleq2s syl6bi w3o 3ianor
      wo df-3or ianor dm0 eleq2i syl6bb noel pm2.21i sylbir anor ancri mpt2exga
      id pm2.24d imp jaoi3 ) KGEFMJLUBZUBZUCZMUDTZJUDTZUEZKUDTGUDTUEZEMTFMTUEZU
      FZXTEFUGZXRUHZTZXTYFUIZXREFKGUJYAYBOPMMBINUKZULZUDTZUFZYIYJUIZYNYIYGYLUHZ
      TYJYNYHYPYGYNXRYLDHMJUDUDOPDUMZYQAINUKZULZYLLUDYQMVEZHUMJVEZUEZOPYQYQYRMM
      YKYTUUAUOZUUCUUBABINRUNUPQUQURUSYJYGOUMMTPUMMTUEUAUMYKVEZUEOPUAUTZUHZYPYG
      UUFTYGMMVAZTZYJUUFUUGYGUUDOPUAMMVBVCUUHYEYJEFMMVDYEXTYCYDUEZYEUEYFYEXTUUI
      XTYEUUIXTYEUUIUIZXTKGUGZXSTZXTUUJUIZKGXSVFUULXSVGVHZUUMXSUUKVIYCUUNUUMUIZ
      YCUUMUUNYCYEXTUUIYCYEXTUUIUIYCYEUEZXTKGCINUKZUCZUUIUUPXSUUQKGSVJYCUURUUIU
      IYEYCUURUUIUURYDYCCINKGVKVLVMVNVOVMVPVRYCWJZXRVGVEZXSVGVEUUODHYSLMJUDUDQV
      QZUUTXSYGVGVSZVGUUTXSYGXRVSUVBEFXRVTYGXRVGWAWBYGWCWDUUMXSVGWEWFWGWKWHWIWL
      WMYCYDYEWNWOWHWKYLUUEOPUAMMYKWPWQWRWSYNWJYAWJZYBWJZYMWJZWTZYOYAYBYMXAUVFU
      VCUVDXBZUVEXBYOUVCUVDUVEXCUVGYOUVEUVGUUSYOYAYBXDUUSYIYGVGTZYJUUSYIYGVGUHZ
      TUVHUUSYHUVIYGUUSXRVGUVAURUSUVIVGYGXEXFXGUVHYJYGXHXIWSXJUVGWJZUVEYOUVJYCU
      VEYOUIYAYBXKYCYMYOYCYAYAUEZYMYAUVKYBYAYAYAXNXLVNOPMMYKUDUDXMWKXOXJXPXQWHW
      HWGWKWI $.
  $}

  ${
    $d U a $.
    bropfvvvv.o $e |- O = ( a e. U |-> ( b e. V , c e. W
                                         |-> { <. d , e >. | ph } ) ) $.
    bropfvvvv.oo $e |- ( ( A e. U /\ B e. S /\ C e. T )
                         -> ( B ( O ` A ) C ) = { <. d , e >. | th } ) $.
    $( Lemma for ~ bropfvvvv .  (Contributed by AV, 31-Dec-2020.)  (Revised by
       AV, 16-Jan-2021.) $)
    bropfvvvvlem $p |- ( ( <. B , C >. e. ( S X. T ) /\ D ( B ( O ` A ) C ) E )
           -> ( A e. U /\ ( B e. S /\ C e. T ) /\ ( D e. _V /\ E e. _V ) ) ) $=
      ( cop cxp wcel cfv co wbr wa cvv w3a wi opelxp wne brne0 copab wceq 3expb
      c0 breqd brabv anim2i ex adantr sylbid com23 a1d wn cmpt2 fvmptndm syl5eq
      df-ov fveq1 0fv syl6eq eqneqall 3syl pm2.61i mpcom anc2ri 3anan32 syl6ibr
      com12 sylbi imp ) DEUAZGHUBUCZFKDECLUDZUEZUFZCIUCZDGUCZEHUCZUGZFUHUCKUHUC
      UGZUIZWEWLWHWNUJDEGHUKWLWHWIWMUGZWLUGWNWLWHWOWHWLWOWGUQULZWHWLWOUJZFKWGUM
      WIWPWHWQUJZUJZWIWRWPWIWLWHWOWIWLWHWOUJWIWLUGZWHFKBRJUNZUFZWOWTWGXAFKWIWJW
      KWGXAUOTUPURWIXBWOUJWLWIXBWOXBWMWIBRJFKUSUTVAVBVCVAVDVEWIVFWFUQUOZWGUQUOW
      SOIPQMNARJUNVGLCSVHXCWGWDUQUDZUQXCWGWDWFUDXDDEWFVJWDWFUQVKVIWDVLVMWRWGUQV
      NVOVPVQWAVRWIWLWMVSVTWBWC $.

    $d A a b c d e $.  $d S a $.  $d S b c z $.  $d T a $.  $d T b c z $.
    $d ps a $.  $d ps z $.  $d d e z $.
    bropfvvvv.s $e |- ( a = A -> V = S ) $.
    bropfvvvv.t $e |- ( a = A -> W = T ) $.
    bropfvvvv.p $e |- ( a = A -> ( ph <-> ps ) ) $.
    $( If a binary relation holds for the result of an operation which is a
       function value, the involved classes are sets.  (Contributed by AV,
       31-Dec-2020.)  (Revised by AV, 16-Jan-2021.) $)
    bropfvvvv $p |- ( ( S e. X /\ T e. Y ) -> ( D ( B ( O ` A ) C ) E
         -> ( A e. U /\ ( B e. S /\ C e. T ) /\ ( D e. _V /\ E e. _V ) ) ) ) $=
      ( vz wcel wa cfv wbr cop cdm cvv w3a brovpreldm copab cmpt2 cmpt wceq a1i
      co wi cv opabbidv mpt2eq123dv adantl simpl simpr fvmptd eleq2d coprab cxp
      dmeqd dmoprabss sseli bropfvvvvlem ex syl df-mpt2 dmeqi eleq2s syl6bi a1d
      com23 wn wo ianor c0 fvmptndm dm0 eleq2i syl6bb noel pm2.21i notnotb elex
      anim12i mpt2exga pm2.24d sylbir imp jaoi3 sylbi com34 pm2.61i mpdi ) HPUH
      ZIQUHZUIZGLEFDMUJZVBUKZEFULZXKUMZUHZDJUHZEHUHFIUHUIGUNUHLUNUHUIUOZXKEFGLU
      PXPSTHIBUAKUQZURZUNUHZUIZXJXLXOXQVCVCZVCYAYBXJYAXOXLXQYAXOXMXSUMZUHXLXQVC
      ZYAXNYCXMYAXKXSYARDSTNOAUAKUQZURZXSJMUNMRJYFUSUTYAUBVARVDDUTZYFXSUTYAYGST
      NOYEHIXRUDUEYGABUAKUFVEVFVGXPXTVHXPXTVIVJVNVKYDXMSVDHUHTVDIUHUIUGVDXRUTZU
      ISTUGVLZUMZYCXMYJUHXMHIVMZUHZYDYJYKXMYHSTUGHIVOVPYLXLXQACDEFGHIJKLMNORSTU
      AUBUCVQVRVSXSYISTUGHIXRVTWAWBWCWEWDYAWFZXJXOXLXQYMXPWFZXTWFZWGXJXOYDVCZVC
      ZXPXTWHYNYQYOYNYPXJYNXOXMWIUHZYDYNXOXMWIUMZUHYRYNXNYSXMYNXKWIRJYFMDUBWJVN
      VKYSWIXMWKWLWMYRYDXMWNWOWCWDYNWFZYOYQYTXPYOYQVCXPWPXPXJYOYPXPXJYOYPVCXPXJ
      UIZXTYPUUAHUNUHZIUNUHZUIZXTXJUUDXPXHUUBXIUUCHPWQIQWQWRVGSTHIXRUNUNWSVSWTV
      RWEXAXBXCXDXEXFXG $.
  $}

  ${
    $d u v x y z A $.  $d u v y z B $.  $d u v z C $.  $d u v x y z X $.
    ovmptss.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( If all the values of the mapping are subsets of a class ` X ` , then so
       is any evaluation of the mapping.  (Contributed by Mario Carneiro,
       24-Dec-2016.) $)
    ovmptss $p |- ( A. x e. A A. y e. B C C_ X -> ( E F G ) C_ X ) $=
      ( vz vu vv cv cfv csb wss wral sseq1d nfcv c1st c2nd csn cxp cop co cmpt2
      ciun cmpt mpt2mptsx eqtri fvmptss wceq vex op1std csbeq1d op2ndd csbeq2dv
      eqtrd raliunxp nfcsb1v nfxp sneq csbeq1a xpeq12d cbviun raleqi nfss nfral
      weq nfv cbvral raleqbidv syl5bb 3bitr4ri df-ov sseq1i 3imtr4i ) AKNZUAOZB
      VSUBOZEPZPZIQZKACANZUCZDUDZUHZRZFHUEZGOZIQEIQZBDRZACRZFHGUFZIQKWHWCIWJGGA
      BCDEUGKWHWCUIJABKCDEUJUKULWDKLCLNZUCZAWPDPZUDZUHZRAWPBMNZEPZPZIQZMWRRZLCR
      WIWNWDXDKLMCWRVSWPXAUEUMZWCXCIXFWCAWPWBPXCXFAVTWPWBWPXAVSLUNZMUNZUOUPXFAW
      PWBXBXFBWAXAEWPXAVSXGXHUQUPURUSSUTWDKWHWTALCWGWSLWGTAWQWRAWQTAWPDVAZVBALV
      JZWFWQDWRWEWPVCAWPDVDZVEVFVGWMXEALCWMLVKXDAMWRXIAXCIAWPXBVAAITVHVIWMXBIQZ
      MDRXJXEWLXLBMDWLMVKBXBIBXAEVABITVHBMVJEXBIBXAEVDSVLXJXLXDMDWRXKXJXBXCIAWP
      XBVDSVMVNVLVOWOWKIFHGVPVQVR $.
  $}

  ${
    $d w x y z $.  $d y B $.  $d x y A $.
    relmpt2opab.1 $e |- F = ( x e. A , y e. B |-> { <. z , w >. | ph } ) $.
    $( Any function to sets of ordered pairs produces a relation on function
       value unconditionally.  (Contributed by Mario Carneiro, 9-Feb-2015.) $)
    relmpt2opab $p |- Rel ( C F D ) $=
      ( co wrel cvv cxp wss copab wral relopab df-rel mpbi rgen2w ovmptss ax-mp
      mpbir ) HIJLZMUFNNOZPZADEQZUGPZCGRBFRUHUJBCFGUIMUJADESUITUAUBBCFGUIHJIUGK
      UCUDUFTUE $.
  $}

  ${
    $d u v w x y B $.  $d u w x y z C $.  $d x y ph $.  $d u v w x y S $.
    $d u v w x y A $.  $d u v w z R $.  $d z T $.
    fmpt2co.1 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> R e. C ) $.
    fmpt2co.2 $e |- ( ph -> F = ( x e. A , y e. B |-> R ) ) $.
    fmpt2co.3 $e |- ( ph -> G = ( z e. C |-> S ) ) $.
    fmpt2co.4 $e |- ( z = R -> S = T ) $.
    $( Composition of two functions.  Variation of ~ fmptco when the second
       function has two arguments.  (Contributed by Mario Carneiro,
       8-Feb-2015.) $)
    fmpt2co $p |- ( ph -> ( G o. F ) = ( x e. A , y e. B |-> T ) ) $=
      ( vw vu vv csb ccom cxp cv c2nd c1st cmpt cmpt2 wcel wral ralrimivva eqid
      cfv wf fmpt2 sylib nfcv nfcsb1v weq csbeq1a sylan9eq cbvmpt2 cop wceq vex
      nfcsb op2ndd csbeq1d op1std csbeq2dv mpt2mpt eqtr4i sylibr syl6eq fmptcos
      eqtrd fmpt wa w3a 3impb nfcvd csbiegf syl mpt2eq3dva syl5eq ) ALKUAQEFUBZ
      DCQUCZUDULZBWFUEULZHTZTZITZUFZBCEFJUGZAQDWEGWJIKLAWEGBCEFHUGZUMZWJGUHQWEU
      IAHGUHZCFUIBEUIWOAWPBCEFMUJBCEFHGWNWNUKUNUOQWEGWJWNWNRSEFCSUCZBRUCZHTZTZU
      GQWEWJUFZBCRSEFHWTRHUPSHUPBCWQWSBWQUPBWRHUQVEZCWQWSUQZBRURZCSURZHWSWTBWRH
      USCWQWSUSUTZVARSQEFWJWTWFWRWQVBVCZWJCWQWITWTXGCWGWQWIWRWQWFRVDZSVDZVFVGXG
      CWQWIWSXGBWHWRHWRWQWFXHXIVHVGVIVOZVJVKZVPVLAKWNXANXKVMOVNAWLBCEFDHITZUGZW
      MWLRSEFDWTITZUGXMRSQEFWKXNXGDWJWTIXJVGVJBCRSEFXLXNRXLUPSXLUPBDWTIXBBIUPVE
      CDWTIXCCIUPVEXDXEVQDHWTIXFVGVAVKABCEFXLJABUCEUHZCUCFUHZVRWPXLJVCAXOXPWPMV
      SDHIJGWPDJVTPWAWBWCWDVO $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z D $.  $d x y z H $.  $d z C $.
    oprabco.1 $e |- ( ( x e. A /\ y e. B ) -> C e. D ) $.
    oprabco.2 $e |- F = ( x e. A , y e. B |-> C ) $.
    oprabco.3 $e |- G = ( x e. A , y e. B |-> ( H ` C ) ) $.
    $( Composition of a function with an operator abstraction.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
       26-Sep-2015.) $)
    oprabco $p |- ( H Fn D -> G = ( H o. F ) ) $=
      ( vz wfn ccom cfv cmpt2 cv wcel wceq adantl a1i cmpt dffn5 biimpi fmpt2co
      wa fveq2 syl6reqr ) IFNZIGOABCDEIPZQHUJABMCDFEMRZIPZUKGIARCSBRDSUGEFSUJJU
      AGABCDEQTUJKUBUJIMFUMUCTMFIUDUEULEIUHUFLUI $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y M $.  $d x y R $.  $d x y S $.
    oprab2co.1 $e |- ( ( x e. A /\ y e. B ) -> C e. R ) $.
    oprab2co.2 $e |- ( ( x e. A /\ y e. B ) -> D e. S ) $.
    oprab2co.3 $e |- F = ( x e. A , y e. B |-> <. C , D >. ) $.
    oprab2co.4 $e |- G = ( x e. A , y e. B |-> ( C M D ) ) $.
    $( Composition of operator abstractions.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by David Abernethy, 23-Apr-2013.) $)
    oprab2co $p |- ( M Fn ( R X. S ) -> G = ( M o. F ) ) $=
      ( cop cxp cv wcel cmpt2 wa opelxpi syl2anc cfv wceq df-ov mpt2eq3ia eqtri
      co a1i oprabco ) ABCDEFPZGHQZIJKARCSBRDSUAZEGSFHSULUMSLMEFGHUBUCNJABCDEFK
      UIZTABCDULKUDZTOABCDUOUPUOUPUEUNEFKUFUJUGUHUK $.
  $}

  ${
    $d w x y z $.
    $( An alternate possible definition of the ` 1st ` function.  (Contributed
       by NM, 14-Oct-2004.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    df1st2 $p |- { <. <. x , y >. , z >. | z = x } = ( 1st |` ( _V X. _V ) ) $=
      ( vw c1st cvv cxp cres cv cfv wceq copab wcel wa coprab wfn wfo fo1st vex
      cmpt fofn ax-mp dffn5 mpbi mptv eqtri reseq1i resopab cop op1std dfoprab3
      eqeq2d 3eqtrri ) EFFGZHCIZDIZEJZKZDCLZUNHUPUNMURNDCLUOAIZKZABCOEUSUNEDFUQ
      TZUSEFPZEVBKFFEQVCRFFEUAUBDFEUCUDDCUQUEUFUGURDCUNUHURVAABCDUPUTBIZUIKUQUT
      UOUTVDUPASBSUJULUKUM $.

    $( An alternate possible definition of the ` 2nd ` function.  (Contributed
       by NM, 10-Aug-2006.)  (Revised by Mario Carneiro, 31-Aug-2015.) $)
    df2nd2 $p |- { <. <. x , y >. , z >. | z = y } = ( 2nd |` ( _V X. _V ) ) $=
      ( vw c2nd cvv cxp cres cv cfv wceq copab wcel wa coprab wfn wfo fo2nd vex
      cmpt fofn ax-mp dffn5 mpbi mptv eqtri reseq1i resopab cop op2ndd dfoprab3
      eqeq2d 3eqtrri ) EFFGZHCIZDIZEJZKZDCLZUNHUPUNMURNDCLUOBIZKZABCOEUSUNEDFUQ
      TZUSEFPZEVBKFFEQVCRFFEUAUBDFEUCUDDCUQUEUFUGURDCUNUHURVAABCDUPAIZUTUIKUQUT
      UOVDUTUPASBSUJULUKUM $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y V $.
    $( The mapping of a restriction of the ` 1st ` function to a constant
       function.  (Contributed by NM, 14-Dec-2008.) $)
    1stconst $p |- ( B e. V ->
             ( 1st |` ( A X. { B } ) ) : ( A X. { B } ) -1-1-onto-> A ) $=
      ( vx vy wcel csn cxp c1st wfo cv wbr wmo wceq wa vex cfv cvv jca syl2anc
      cres ccnv wfun wf1o c0 wne snnzg fo1stres syl wal cop moeq moani brres wb
      wfn fo1st fofn ax-mp fnbrfvb mp2an anbi1i c2nd elxp7 eleq1 biimpa adantrr
      adantrl elsni sylanr2 adantrrl sylan2b adantl simprr fveq2d simprl op1stg
      eqopi an12s simpl eqtrd snidg adantr opelxpi eqeltrd syl5bb mobidv mpbiri
      impbida syl5bbr alrimiv funcnv2 sylibr dff1o3 sylanbrc ) BCFZABGZHZAIWRUA
      ZJZWSUBUCZWRAWSUDWPWQUEUFWTBCUGAWQUHUIWPDKZEKZWSLZDMZEUJXAWPXEEWPXEXCAFZX
      BXCBUKZNZOZDMXHXFDDXGULUMWPXDXIDXDXBXCILZXBWRFZOZWPXIXBXCIWREPUNXLXBIQZXC
      NZXKOZWPXIXNXJXKIRUPZXBRFXNXJUORRIJXPUQRRIURUSDPRXBXCIUTVAVBWPXOXIXOXIWPX
      KXNXBRRHFZXMAFZXBVCQZWQFZOZOZXIXBAWQVDXNYBOXFXHXNYAXFXQXNXRXFXTXNXRXFXMXC
      AVEVFVGVHXNXQXTXHXRXTXNXQXSBNZXHXSBVIXQXNYCXHXBXCBRRVRVSVJVKSVLVMWPXIOZXN
      XKYDXMXGIQZXCYDXBXGIWPXFXHVNZVOYDXFWPYEXCNWPXFXHVPZWPXIVTXCBACVQTWAYDXBXG
      WRYFYDXFBWQFZXGWRFYGWPYHXIBCWBWCXCBAWQWDTWESWIWJWFWGWHWKDEWSWLWMWRAWSWNWO
      $.

    $( The mapping of a restriction of the ` 2nd ` function to a converse
       constant function.  (Contributed by NM, 27-Mar-2008.) $)
    2ndconst $p |- ( A e. V ->
             ( 2nd |` ( { A } X. B ) ) : ( { A } X. B ) -1-1-onto-> B ) $=
      ( vx vy wcel csn cxp c2nd wfo cv wbr wmo wceq wa vex cfv cvv adantrl jca
      cres ccnv wfun wf1o c0 wne snnzg fo2ndres syl wal cop moeq moani brres wb
      fo2nd fofn ax-mp fnbrfvb mp2an anbi1i c1st elxp7 eleq1 biimpa elsni eqopi
      wfn ancom2s an12s sylanr2 adantrrr sylan2b adantl op2ndg sylan9eqr simprr
      fveq2 adantr simprl opelxpi syl2anc eqeltrd impbida syl5bbr syl5bb mobidv
      mpan2 snidg mpbiri alrimiv funcnv2 sylibr dff1o3 sylanbrc ) ACFZAGZBHZBIW
      RUAZJZWSUBUCZWRBWSUDWPWQUEUFWTACUGWQBUHUIWPDKZEKZWSLZDMZEUJXAWPXEEWPXEXCB
      FZXBAXCUKZNZOZDMXHXFDDXGULUMWPXDXIDXDXBXCILZXBWRFZOZWPXIXBXCIWREPZUNXLXBI
      QZXCNZXKOZWPXIXOXJXKIRVHZXBRFXOXJUORRIJXQUPRRIUQURDPRXBXCIUSUTVAWPXPXIXPX
      IWPXKXOXBRRHFZXBVBQZWQFZXNBFZOZOZXIXBWQBVCXOYCOXFXHXOYBXFXRXOYAXFXTXOYAXF
      XNXCBVDVESSXOXRXTXHYAXTXOXRXSANZXHXSAVFXRXOYDXHXRYDXOXHXBAXCRRVGVIVJVKVLT
      VMVNWPXIOZXOXKWPXHXOXFXHWPXNXGIQZXCXBXGIVRWPXCRFYFXCNXMAXCCRVOWHVPSYEXBXG
      WRWPXFXHVQYEAWQFZXFXGWRFWPYGXIACWIVSWPXFXHVTAXCWQBWAWBWCTWDWEWFWGWJWKDEWS
      WLWMWRBWSWNWO $.
  $}

  ${
    $d w x y A $.  $d w x y B $.  $d w C $.
    dfmpt2.1 $e |- C e. _V $.
    $( Alternate definition for the "maps to" notation ~ df-mpt2 (although it
       requires that ` C ` be a set).  (Contributed by NM, 19-Dec-2008.)
       (Revised by Mario Carneiro, 31-Aug-2015.) $)
    dfmpt2 $p |- ( x e. A , y e. B |-> C )
                = U_ x e. A U_ y e. B { <. <. x , y >. , C >. } $=
      ( vw cmpt2 cxp cv cfv csb cop csn ciun csbex nfcv nfcsb1v nfop nfsn dfmpt
      c1st c2nd cmpt mpt2mpts nfcsb wceq csbopeq1a opeq12d sneqd iunxpf 3eqtri
      id ) ABCDEHGCDIZAGJZUBKZBUOUCKZELZLZUDGUNUOUSMZNZOACBDAJBJMZEMZNZOOABGCDE
      UEGUNUSAUPURBUQEFPPUAGABCDVAVDAUTAUOUSAUOQAUPURRSTBUTBUOUSBUOQBAUPURBUPQB
      UQERUFSTGVDQUOVBUGZUTVCVEUOVBUSEVEUMABUOEUHUIUJUKUL $.
  $}

  ${
    $d A p x y $.  $d B p x y $.  $d C p $.  $d E p x y $.  $d U p x y $.
    $d V p x y $.  $d W p x y $.
    mpt2sn.f $e |- F = ( x e. { A } , y e. { B } |-> C ) $.
    mpt2sn.a $e |- ( x = A -> C = D ) $.
    mpt2sn.b $e |- ( y = B -> D = E ) $.
    $( An operation (in maps-to notation) on two singletons.  (Contributed by
       AV, 4-Aug-2019.) $)
    mpt2sn $p |- ( ( A e. V /\ B e. W /\ E e. U )
                   -> F = { <. <. A , B >. , E >. } ) $=
      ( vp wcel csn cfv csb wceq w3a cxp cv c1st c2nd cop xpsng 3adant3 mpteq1d
      cmpt cmpt2 mpt2mpts eqtri a1i cvv wa op2ndg fveq2 eqcomd eqeq1d syl5ibcom
      wi op1stg simp1 simpl2 adantl sylan9eq csbied adantr wb csbeq1 syl5ibrcom
      imp csbeq2dv bitrd mp2and opex simp3 fmptsnd 3eqtr4d ) CJPZDKPZHGPZUAZOCQ
      ZDQZUBZAOUCZUDRZBWHUERZESZSZUJZOCDUFZQZWLUJIWNHUFQWDOWGWOWLWAWBWGWOTWCCDJ
      KUGUHUIIWMTWDIABWEWFEUKWMLABOWEWFEULUMUNWDOWNWLHUOGWDWHWNTZUPZWJDTZWICTZW
      LHTZWDWPWRWAWBWPWRVBWCWAWBUPZWNUERZDTWPWRCDJKUQWPXBWJDWPWJXBWHWNUEURUSUTV
      AUHVMWDWPWSWAWBWPWSVBWCXAWNUDRZCTWPWSCDJKVCWPXCWICWPWIXCWHWNUDURUSUTVAUHV
      MWQWTWRWSUPZACBDESZSZHTZWDXGWPWDACXEHJWAWBWCVDWDAUCCTZUPZBDEHKWAWBWCXHVEX
      IBUCDTEFHXHEFTWDMVFNVGVHVHVIXDWTACWKSZHTZXGWSWTXKVJWRWSWLXJHAWICWKVKUTVFX
      DXJXFHXDACWKXEWRWKXETWSBWJDEVKVIVNUTVOVLVPWNUOPWDCDVQUNWAWBWCVRVSVT $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.  $d x F $.  $d x G $.
    curry1.1 $e |- G = ( F o. `' ( 2nd |` ( { C } X. _V ) ) ) $.
    $( Composition with ` ``' ( 2nd |`` ( { C } X. _V ) ) ` turns any binary
       operation ` F ` with a constant first operand into a function ` G ` of
       the second operand only.  This transformation is called "currying."
       (Contributed by NM, 28-Mar-2008.)  (Revised by Mario Carneiro,
       26-Dec-2014.) $)
    curry1 $p |- ( ( F Fn ( A X. B ) /\ C e. A ) ->
                 G = ( x e. B |-> ( C F x ) ) ) $=
      ( cxp wfn wcel wa cfv wceq c2nd cvv cres adantr cin syl5eq eqtrd cmpt csn
      cv co ccnv ccom wfun cdm fnfun wf1o 2ndconst wfo dff1o3 simprbi syl funco
      syl2an cima dmco fndm crn imacnvcnv df-ima resres rneqi 3eqtri inxp incom
      imaeq2d inv1 eqtri xpeq2i wss snssi df-ss sylib xpeq1d reseq2d rneqd forn
      f1ofo adantl fneq1i df-fn bitri sylanbrc dffn5 fveq1i dff1o4 simprd fvco2
      3syl vex mpan2 ad2antlr cop snidg jctir opelxp sylibr jca op2ndg f1ocnvfv
      fvres sylc fveq2d adantll df-ov syl6eqr mpteq2dva ) EBCHZIZDBJZKZFACAUCZF
      LZUAZACDXOEUDZUAXNFCIZFXQMXNENDUBZOHZPZUEZUFZUGZYDUHZCMZXSXLEUGYCUGZYEXMX
      KEUIXMYAOYBUJZYHDOBUKZYIYAOYBULYHYAOYBUMUNUOEYCUPUQXNYFYCUEZEUHZURZCEYCUS
      XNYMYKXKURZCXNYLXKYKXLYLXKMXMXKEUTQVIXMYNCMXLXMYNNYAXKRZPZVAZCYNYBXKURYBX
      KPZVAYQYBXKVBYBXKVCYRYPNYAXKVDVEVFXMYQNXTCHZPZVAZCXMYPYTXMYOYSNXMYOXTBRZC
      HZYSYOUUBOCRZHUUCXTOBCVGUUDCUUBUUDCORCOCVHCVJVKVLVKXMUUBXTCXMXTBVMUUBXTMD
      BVNXTBVOVPVQSVRVSXMYSCYTUJYSCYTULUUACMDCBUKYSCYTWAYSCYTVTWLTSWBTSXSYDCIYE
      YGKCFYDGWCYDCWDWEWFACFWGVPXNACXPXRXNXOCJZKZXPXOYCLZELZXRUUFXPXOYDLZUUHXOF
      YDGWHXMUUIUUHMZXLUUEXMYCOIZUUJXMYBYAIZUUKXMYIUULUUKKYJYAOYBWIVPWJUUKXOOJZ
      UUJAWMZOEYCXOWKWNUOWOSUUFUUHDXOWPZELZXRXMUUEUUHUUPMXLXMUUEKZUUGUUOEUUQYIU
      UOYAJZKUUOYBLZXOMZUUGUUOMUUQYIUURXMYIUUEYJQXMUURUUEXMDXTJZUUMKUURXMUVAUUM
      DBWQUUNWRDXOXTOWSWTZQXAXMUUTUUEXMUUSUUONLZXOXMUURUUSUVCMUVBUUOYANXDUOXMUU
      MUVCXOMUUNDXOBOXBWNTQYAOUUOXOYBXCXEXFXGDXOEXHXITXJT $.

    $( The value of a curried function with a constant first argument.
       (Contributed by NM, 28-Mar-2008.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    curry1val $p |- ( ( F Fn ( A X. B ) /\ C e. A ) ->
        ( G ` D ) = ( C F D ) ) $=
      ( vx cxp wfn wcel wa cfv cv co wceq wn c0 cdm con3i curry1 fveq1d dmmptss
      cmpt eqid sseli ndmfv adantl fndm adantr simpr ndmovg syl2an eqtr4d oveq2
      syl ex ovex fvmpt pm2.61d2 eqtrd ) EABIZJZCAKZLZDFMDHBCHNZEOZUDZMZCDEOZVE
      DFVHHABCEFGUAUBVEDBKZVIVJPZVEVKQZVLVEVMLVIRVJVMVIRPZVEVMDVHSZKZQVNVPVKVOB
      DHBVGVHVHUEZUCUFTDVHUGUPUHVEESVBPZVDVKLZQVJRPVMVCVRVDVBEUIUJVSVKVDVKUKTCD
      ABEULUMUNUQHDVGVJBVHVFDCEUOVQCDEURUSUTVA $.

    $( Functionality of a curried function with a constant first argument.
       (Contributed by NM, 29-Mar-2008.) $)
    curry1f $p |- ( ( F : ( A X. B ) --> D /\ C e. A ) ->
                 G : B --> D ) $=
      ( vx cxp wf wcel wa cv co cmpt fovrn 3expa eqid fmptd wfn wceq ffn curry1
      sylan feq1d mpbird ) ABIZDEJZCAKZLZBDFJBDHBCHMZENZOZJUJHBULDUMUHUIUKBKULD
      KCUKDABEPQUMRSUJBDFUMUHEUGTUIFUMUAUGDEUBHABCEFGUCUDUEUF $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.  $d x F $.  $d x G $.
    curry2.1 $e |- G = ( F o. `' ( 1st |` ( _V X. { C } ) ) ) $.
    $( Composition with ` ``' ( 1st |`` ( _V X. { C } ) ) ` turns any binary
       operation ` F ` with a constant second operand into a function ` G ` of
       the first operand only.  This transformation is called "currying."  (If
       this becomes frequently used, we can introduce a new notation for the
       hypothesis.)  (Contributed by NM, 16-Dec-2008.) $)
    curry2 $p |- ( ( F Fn ( A X. B ) /\ C e. B ) ->
                 G = ( x e. A |-> ( x F C ) ) ) $=
      ( cxp wfn wcel wa cfv wceq c1st cvv cres adantr cin syl5eq eqtrd cmpt csn
      cv co ccnv ccom wfun cdm fnfun wf1o 1stconst wfo dff1o3 simprbi syl funco
      syl2an cima dmco fndm crn imacnvcnv df-ima resres rneqi 3eqtri inxp incom
      imaeq2d inv1 eqtri xpeq1i wss snssi df-ss sylib xpeq2d reseq2d rneqd forn
      f1ofo adantl fneq1i df-fn bitri sylanbrc dffn5 fveq1i dff1o4 simprd fvco2
      3syl vex sylancl ad2antlr cop a1i snidg opelxp jca op1stg ancoms f1ocnvfv
      fvres sylc fveq2d adantll df-ov syl6eqr mpteq2dva ) EBCHZIZDCJZKZFABAUCZF
      LZUAZABXODEUDZUAXNFBIZFXQMXNENODUBZHZPZUEZUFZUGZYDUHZBMZXSXLEUGYCUGZYEXMX
      KEUIXMYAOYBUJZYHODCUKZYIYAOYBULYHYAOYBUMUNUOEYCUPUQXNYFYCUEZEUHZURZBEYCUS
      XNYMYKXKURZBXNYLXKYKXLYLXKMXMXKEUTQVIXMYNBMXLXMYNNYAXKRZPZVAZBYNYBXKURYBX
      KPZVAYQYBXKVBYBXKVCYRYPNYAXKVDVEVFXMYQNBXTHZPZVAZBXMYPYTXMYOYSNXMYOBXTCRZ
      HZYSYOOBRZUUBHUUCOXTBCVGUUDBUUBUUDBORBOBVHBVJVKVLVKXMUUBXTBXMXTCVMUUBXTMD
      CVNXTCVOVPVQSVRVSXMYSBYTUJYSBYTULUUABMBDCUKYSBYTWAYSBYTVTWLTSWBTSXSYDBIYE
      YGKBFYDGWCYDBWDWEWFABFWGVPXNABXPXRXNXOBJZKZXPXOYCLZELZXRUUFXPXOYDLZUUHXOF
      YDGWHXMUUIUUHMZXLUUEXMYCOIZXOOJZUUJXMYBYAIZUUKXMYIUUMUUKKYJYAOYBWIVPWJAWM
      ZOEYCXOWKWNWOSUUFUUHXODWPZELZXRXMUUEUUHUUPMXLXMUUEKZUUGUUOEUUQYIUUOYAJZKU
      UOYBLZXOMUUGUUOMUUQYIUURXMYIUUEYJQUUQUULDXTJZUURUULUUQUUNWQXMUUTUUEDCWRZQ
      XODOXTWSZWFWTUUQUUSUUONLZXOXMUUSUVCMZUUEXMUURUVDXMUULUUTUURUULXMUUNWQUVAU
      VBWFUUOYANXDUOQUUEXMUVCXOMXODBCXAXBTYAOUUOXOYBXCXEXFXGXODEXHXITXJT $.

    $( Functionality of a curried function with a constant second argument.
       (Contributed by NM, 16-Dec-2008.) $)
    curry2f $p |- ( ( F : ( A X. B ) --> D /\ C e. B ) ->
                 G : A --> D ) $=
      ( vx cxp wf wcel wa cv co cmpt fovrn 3com23 3expa eqid fmptd wfn wceq ffn
      curry2 sylan feq1d mpbird ) ABIZDEJZCBKZLZADFJADHAHMZCENZOZJUKHAUMDUNUIUJ
      ULAKZUMDKZUIUOUJUPULCDABEPQRUNSTUKADFUNUIEUHUAUJFUNUBUHDEUCHABCEFGUDUEUFU
      G $.

    $( The value of a curried function with a constant second argument.
       (Contributed by NM, 16-Dec-2008.) $)
    curry2val $p |- ( ( F Fn ( A X. B ) /\ C e. B ) ->
        ( G ` D ) = ( D F C ) ) $=
      ( vx cxp wfn wcel wa cfv cv co wceq wn c0 cdm con3i cmpt curry2 fveq1d wi
      eqid dmmptss sseli ndmfv adantl fndm simpl ndmovg syl2an eqtr4d ex adantr
      syl oveq1 ovex fvmpt pm2.61d2 eqtrd ) EABIZJZCBKZLZDFMDHAHNZCEOZUAZMZDCEO
      ZVFDFVIHABCEFGUBUCVFDAKZVJVKPZVDVLQZVMUDVEVDVNVMVDVNLVJRVKVNVJRPZVDVNDVIS
      ZKZQVOVQVLVPADHAVHVIVIUEZUFUGTDVIUHUQUIVDESVCPVLVELZQVKRPVNVCEUJVSVLVLVEU
      KTDCABEULUMUNUOUPHDVHVKAVIVGDCEURVRDCEUSUTVAVB $.
  $}

  $( Lemma for ~ cnvf1o .  (Contributed by Mario Carneiro, 27-Apr-2014.) $)
  cnvf1olem $p |- ( ( Rel A /\ ( B e. A /\ C = U. `' { B } ) ) ->
                    ( C e. `' A /\ B = U. `' { C } ) ) $=
    ( wrel wcel csn ccnv cuni wceq c2nd cfv c1st cop simprr sneqd cnveqd unieqd
    wa opswap fvex 1st2nd adantrr syl6eq simprl eqeltrrd opelcnv sylibr eqeltrd
    eqtrd eqcomi 3eqtr4a jca ) ADZBAEZCBFZGZHZIZRRZCAGZEBCFZGZHZIUSCBJKZBLKZMZU
    TUSCVEVDMZFZGZHZVFUSCUQVJUMUNURNUSUPVIUSUOVHUSBVGUMUNBVGIURBAUAUBZOPQUIVEVD
    SUCZUSVGAEVFUTEUSBVGAVKUMUNURUDUEVDVEABJTBLTUFUGUHUSVGVFFZGZHZBVCVOVGVDVESU
    JVKUSVBVNUSVAVMUSCVFVLOPQUKUL $.

  ${
    $d x y A $.
    $( Describe a function that maps the elements of a set to its converse
       bijectively.  (Contributed by Mario Carneiro, 27-Apr-2014.) $)
    cnvf1o $p |- ( Rel A ->
                   ( x e. A |-> U. `' { x } ) : A -1-1-onto-> `' A ) $=
      ( vy wrel ccnv cv csn cuni cmpt cvv eqid wcel wa snex cnvex a1i cnvf1olem
      uniex wceq wb relcnv simpr sylancr dfrel2 eleq2 sylbi anbi1d adantr mpbid
      impbida f1od ) BDZACBBEZAFZGZEZHZCFZGZEZHZABUQIZJJVBKUQJLULUNBLZMUPUOUNNO
      RPVAJLULURUMLZMUTUSURNORPULVCURUQSZMZVDUNVASMZBUNURQULVGMZUNUMEZLZVEMZVFV
      HUMDVGVKBUAULVGUBUMURUNQUCULVKVFTVGULVJVCVEULVIBSVJVCTBUDVIBUNUEUFUGUHUIU
      JUK $.
  $}

  ${
    $d x A $.  $d y B $.  $d x y F $.  $d x y G $.
    $( Lemma for ~ fpar .  (Contributed by NM, 22-Dec-2008.)  (Revised by Mario
       Carneiro, 28-Apr-2015.) $)
    fparlem1 $p |- ( `' ( 1st |` ( _V X. _V ) ) " { x } ) = ( { x } X. _V ) $=
      ( vy c1st cvv cxp cres ccnv cv csn cima wcel cfv wceq wa fvres eqeq1d vex
      c2nd elsn2 fvex biantru bitr3i syl6bb pm5.32i wf wfn f1stres ffn fniniseg
      wb mp2b elxp7 3bitr4i eqriv ) BCDDEZFZGAHZIZJZURDEZBHZUOKZVAUPLZUQMZNZVBV
      ACLZURKZVARLDKZNZNVAUSKZVAUTKVBVDVIVBVDVFUQMZVIVBVCVFUQVAUOCOPVKVGVIVFUQA
      QSVHVGVARTUAUBUCUDUODUPUEUPUOUFVJVEUJDDUGUODUPUHUOUQVAUPUIUKVAURDULUMUN
      $.

    $( Lemma for ~ fpar .  (Contributed by NM, 22-Dec-2008.)  (Revised by Mario
       Carneiro, 28-Apr-2015.) $)
    fparlem2 $p |- ( `' ( 2nd |` ( _V X. _V ) ) " { y } ) = ( _V X. { y } ) $=
      ( vx c2nd cvv cxp cres ccnv cv csn cima wcel cfv wceq wa fvres eqeq1d vex
      c1st elsn2 fvex biantrur bitr3i syl6bb pm5.32i wf wfn wb f2ndres fniniseg
      ffn mp2b elxp7 3bitr4i eqriv ) BCDDEZFZGAHZIZJZDUREZBHZUOKZVAUPLZUQMZNZVB
      VARLDKZVACLZURKZNZNVAUSKZVAUTKVBVDVIVBVDVGUQMZVIVBVCVGUQVAUOCOPVKVHVIVGUQ
      AQSVFVHVARTUAUBUCUDUODUPUEUPUOUFVJVEUGDDUHUODUPUJUOUQVAUPUIUKVADURULUMUN
      $.

    $( Lemma for ~ fpar .  (Contributed by NM, 22-Dec-2008.)  (Revised by Mario
       Carneiro, 28-Apr-2015.) $)
    fparlem3 $p |- ( F Fn A
          -> ( `' ( 1st |` ( _V X. _V ) ) o. ( F o. ( 1st |` ( _V X. _V ) ) ) )
            = U_ x e. A ( ( { x } X. _V ) X. ( { ( F ` x ) } X. _V ) ) ) $=
      ( vy cvv cxp cres ccnv cv csn cima ciun ccom cdm crn cin wceq ax-mp eqtri
      wss wfn c1st cfv coiun inss1 fndm syl5sseq dfco2a syl coeq2d dmxpss sstri
      wcel wa fvex fparlem1 sneq xpeq1d syl5eq imaeq2d df-ima xpssres rneqi wne
      ssid c0 snnz rnxp syl6eq xpeq12d iunxsn cnveqi cnvco cnvxp 3eqtr3i xpeq2i
      fnsnfv syl5eqr cnveqd iuneq2dv 3eqtr4a ) CBUAZUBEEFGZHZABWDAIZJZKZCWFKZFZ
      LZMABWDWIMZLWDCWCMZMABWFEFZWECUCZJZEFZFZLAWDWIBUDWBWLWJWDWBCNZWCOZPZBTWLW
      JQWBWRWTBWRWSUEBCUFUGACWCBUHUIUJWBABWQWKWBWEBUMUNZWQWDWOWMFZHZMZWKXBWCMZH
      WPWMFZHXDWQXEXFXEDWOWDDIZJZKZXBXHKZFZLZXFXBNZWSPZWOTXEXLQXNXMWOXMWSUEWOWM
      UKULDXBWCWOUHRDWNXKXFWECUOZXGWNQZXIWPXJWMXPXIXHEFWPDUPXPXHWOEXGWNUQZURUSX
      PXJXBWOKZWMXPXHWOXBXQUTXRXBWOGZOZWMXBWOVAXTXBOZWMXSXBWOWOTXSXBQWOVEWOWMWO
      VBRVCWOVFVDYAWMQWNXOVGWOWMVHRSSVIVJVKSVLXBWCVMWPWMVNVOXAXCWIWDXAXCWHWGFZH
      WIXAXBYBXAXBWOWGFYBWGWMWOAUPVPXAWOWHWGBWECVQURVRVSWHWGVNVIUJVRVTWA $.

    $( Lemma for ~ fpar .  (Contributed by NM, 22-Dec-2008.)  (Revised by Mario
       Carneiro, 28-Apr-2015.) $)
    fparlem4 $p |- ( G Fn B
          -> ( `' ( 2nd |` ( _V X. _V ) ) o. ( G o. ( 2nd |` ( _V X. _V ) ) ) )
            = U_ y e. B ( ( _V X. { y } ) X. ( _V X. { ( G ` y ) } ) ) ) $=
      ( vx cvv cxp cres ccnv cv csn cima ciun ccom cdm crn cin wceq ax-mp eqtri
      wss wfn c2nd cfv coiun inss1 fndm syl5sseq dfco2a syl coeq2d dmxpss sstri
      wcel wa fvex fparlem2 sneq xpeq2d syl5eq imaeq2d df-ima xpssres rneqi wne
      ssid c0 snnz rnxp syl6eq xpeq12d iunxsn cnveqi cnvco cnvxp 3eqtr3i xpeq2i
      fnsnfv xpeq1d syl5eqr cnveqd iuneq2dv 3eqtr4a ) CBUAZUBEEFGZHZABWEAIZJZKZ
      CWGKZFZLZMABWEWJMZLWECWDMZMABEWGFZEWFCUCZJZFZFZLAWEWJBUDWCWMWKWEWCCNZWDOZ
      PZBTWMWKQWCWSXABWSWTUEBCUFUGACWDBUHUIUJWCABWRWLWCWFBUMUNZWRWEWPWNFZHZMZWL
      XCWDMZHWQWNFZHXEWRXFXGXFDWPWEDIZJZKZXCXIKZFZLZXGXCNZWTPZWPTXFXMQXOXNWPXNW
      TUEWPWNUKULDXCWDWPUHRDWOXLXGWFCUOZXHWOQZXJWQXKWNXQXJEXIFWQDUPXQXIWPEXHWOU
      QZURUSXQXKXCWPKZWNXQXIWPXCXRUTXSXCWPGZOZWNXCWPVAYAXCOZWNXTXCWPWPTXTXCQWPV
      EWPWNWPVBRVCWPVFVDYBWNQWOXPVGWPWNVHRSSVIVJVKSVLXCWDVMWQWNVNVOXBXDWJWEXBXD
      WIWHFZHWJXBXCYCXBXCWPWHFYCWHWNWPAUPVPXBWPWIWHBWFCVQVRVSVTWIWHVNVIUJVSWAWB
      $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.  $d x y G $.
    fpar.1 $e |- H = ( ( `' ( 1st |` ( _V X. _V ) )
                        o. ( F o. ( 1st |` ( _V X. _V ) ) ) )
                i^i ( `' ( 2nd |` ( _V X. _V ) )
                       o. ( G o. ( 2nd |` ( _V X. _V ) ) ) ) ) $.
    $( Merge two functions in parallel.  Use as the second argument of a
       composition with a (2-place) operation to build compound operations such
       as ` z = ( ( sqrt `` x ) + ( abs `` y ) ) ` .  (Contributed by NM,
       17-Sep-2007.)  (Proof shortened by Mario Carneiro, 28-Apr-2015.) $)
    fpar $p |- ( ( F Fn A /\ G Fn B )
       -> H = ( x e. A , y e. B |-> <. ( F ` x ) , ( G ` y ) >. ) ) $=
      ( cvv cxp ccom cin csn ciun cop inxp inv1 xpeq12i xpsn 3eqtri wfn wa c1st
      cres ccnv c2nd cv cmpt2 fparlem3 fparlem4 ineqan12d opex dfmpt2 wceq wcel
      cfv incom eqtri vex fvex a1i iuneq2i 2iunin 3eqtr2i 3eqtr4g ) ECUAZFDUAZU
      BUCIIJZUDZUEEVIKKZUFVHUDZUEFVKKKZLACAUGZMZIJZVMEUPZMZIJZJZNZBDIBUGZMZJZIW
      AFUPZMZJZJZNZLZGABCDVPWDOZUHZVFVGVJVTVLWHACEUIBDFUJUKHWKACBDVMWAOZWJOMZNZ
      NACBDVSWGLZNZNWIABCDWJVPWDULZUMACWPWNWPWNUNVMCUOBDWOWMWOWMUNWADUOWOVOWCLZ
      VRWFLZJWLMZWJMZJWMVOVRWCWFPWRWTWSXAWRVNILZIWBLZJVNWBJWTVNIIWBPXBVNXCWBVNQ
      XCWBILWBIWBUQWBQURRVMWAAUSBUSSTWSVQILZIWELZJVQWEJXAVQIIWEPXDVQXEWEVQQXEWE
      ILWEIWEUQWEQURRVPWDVMEUTWAFUTSTRWLWJVMWAULWQSTVAVBVAVBABCDVSWGVCVDVE $.
  $}

  ${
    $d x y z $.
    $( A function that can be used to feed a common value to both operands of
       an operation.  Use as the second argument of a composition with the
       function of ~ fpar in order to build compound functions such as
       ` y = ( ( sqrt `` x ) + ( abs `` x ) ) ` .  (Contributed by NM,
       17-Sep-2007.) $)
    fsplit $p |- `' ( 1st |` _I ) = ( x e. _V |-> <. x , x >. ) $=
      ( vy vz cv c1st cid cres ccnv wbr copab cop wceq cvv cmpt vex wcel wa wex
      exbii bitri brcnv brres cfv 19.42v op1std eqeq1d pm5.32ri wfn wb wfo fofn
      fo1st ax-mp fnbrfvb mp2an dfid2 eleq2i nfe1 elopab biantru 3bitr4i bitr2i
      19.9 equid anbi12i 3bitr3ri id opeq12d eqeq2d ceqsexv opabbii wrel relcnv
      dfrel4v mpbi mptv 3eqtr4i ) ADZBDZEFGZHZIZABJZVSVRVRKZLZABJWAAMWDNWBWEABW
      BVSVRVTIZWEVRVSVTAOZBOZUAWFVSVREIZVSFPZQZWEVSVREFWGUBWKCDZVRLZVSWLWLKZLZQ
      ZCRZWEVSEUCZVRLZWOQZCRWSWOCRZQWQWKWSWOCUDWTWPCWOWSWMWOWRWLVRWLWLVSCOZXBUE
      UFUGSWSWIXAWJEMUHZVSMPWSWIUIMMEUJXCULMMEUKUMWHMVSVREUNUOWJVSWLWLLZCCJZPZX
      AFXEVSCUPUQWOXDQZCRZCRXHXFXAXHCXGCURVCXDCCVSUSWOXGCXDWOCVDUTSVAVBVEVFWOWE
      CVRWGWMWNWDVSWMWLVRWLVRWMVGZXIVHVIVJTTTVKWAVLWAWCLVTVMABWAVNVOABWDVPVQ $.
  $}

  $( The ` 2nd ` (second member of an ordered pair) function restricted to a
     function ` F ` is a function of ` F ` into the codomain of ` F ` .
     (Contributed by Alexander van der Vekens, 4-Feb-2018.) $)
  f2ndf $p |- ( F : A --> B -> ( 2nd |` F ) : F --> B ) $=
    ( wf c2nd cxp wss f2ndres fssxp fssres sylancr resabs1d eqcomd feq1d mpbird
    cres ) ABCDZCBECPZDCBEABFZPZCPZDZQSBTDCSGUBABHABCIZSBCTJKQCBRUAQUARQECSUCLM
    NO $.

  ${
    $d A x y $.  $d B x y $.  $d F x y $.
    $( The ` 2nd ` (second member of an ordered pair) function restricted to a
       function ` F ` is a function of ` F ` onto the range of ` F ` .
       (Contributed by Alexander van der Vekens, 4-Feb-2018.) $)
    fo2ndf $p |- ( F : A --> B -> ( 2nd |` F ) : F -onto-> ran F ) $=
      ( vy vx wf crn c2nd cres wceq wfo wfn ffn dffn3 f2ndf syl cv wcel cfv vex
      sylib wss sylbi frn cop wex elrn2g wa fvres adantl op2nd syl6req fnfvelrn
      ibi sylan eqeltrd ex exlimdv syl5 ssrdv eqssd dffo2 sylanbrc ) ABCFZCCGZH
      CIZFZVFGZVEJCVEVFKVDAVECFZVGVDCALZVIABCMZACNZUAAVECOZPVDVHVEVDVGVHVEUBVDV
      JVGVKVJVIVGVLVMUCPCVEVFUDPVDDVEVHDQZVERZEQZVNUEZCRZEUFZVDVNVHRZVOVSEVNCVE
      UGUNVDVRVTEVDVRVTVDVRUHZVNVQVFSZVHWAWBVQHSZVNVRWBWCJVDVQCHUIUJVPVNETDTUKU
      LVDVFCLZVRWBVHRVDCBVFFWDABCOCBVFMPCVQVFUMUOUPUQURUSUTVACVEVFVBVC $.
  $}

  ${
    $d A a b v w x y $.  $d B a b v w x y $.  $d F a b v w x y $.
    $( The ` 2nd ` (second member of an ordered pair) function restricted to a
       one-to-one function ` F ` is a one-to-one function of ` F ` onto the
       range of ` F ` .  (Contributed by Alexander van der Vekens,
       4-Feb-2018.) $)
    f1o2ndf1 $p |- ( F : A -1-1-> B -> ( 2nd |` F ) : F -1-1-onto-> ran F ) $=
      ( vx vy va vv vb vw c2nd syl cv cfv wceq wi wcel wa wrex ex com23 wf1 crn
      cres wfo ccnv wfun wf1o f1f fo2ndf weq wral f2ndf cxp wss fssxp cop ssel2
      elxp2 sylib anim12dan fvres adantr ad2antlr eqeq12d op2nd eqeq12i funopfv
      wf vex f1fun anim12d eqcom biimpi eqeqan12d simpl anim12i f1veqaeq sylan2
      opeq12 syl6 com14 syl6bi pm2.43i syld impcom syl5bi sylbid adantl adantlr
      com13 com12 wb eleq1 bi2anan9 anbi2d fveq2 simpllr imbi12d imbi2d 3imtr4d
      simpr rexlimdvva rexlimivv imp mpcom ralrimivv dff13 df-f1 simprbi dff1o3
      sylanbrc ) ABCUAZCCUBZJCUCZUDZXNUEUFZCXMXNUGXLABCVHZXOABCUHZABCUIKXLCBXNU
      AZXPXLCBXNVHZDLZXNMZELZXNMZNZDEUJZOZECUKDCUKXSXLXQXTXRABCULKXLYGDECCCABUM
      ZUNZXLYACPZYCCPZQZYGOXLXQYIXRABCUOKYIYLXLYGYIYLXLYGOZYAFLZGLZUPZNZGBRFARZ
      YCHLZILZUPZNZIBRHARZQYIYLQZYMYIYJYRYKUUCYIYJQYAYHPYRCYHYAUQFGYAABURUSYIYK
      QYCYHPUUCCYHYCUQHIYCABURUSUTYRUUCUUDYMOZYQUUCUUEOZFGABYNAPZYOBPZQZYQUUFUU
      IYQQZUUBUUEHIABUUJYSAPZYTBPZQZQZUUBUUEUUNUUBQZYIYPCPZUUACPZQZQZXLYPXNMZUU
      AXNMZNZYPUUANZOZOZUUDYMUUNUUSUVEOZUUBUUIUUMUVFYQUUSUUIUUMQZUVEUURUVGUVEOY
      IUURUVGUVEUURUVGQZUVBXLUVCUVHUVBYPJMZUUAJMZNZXLUVCOZUVHUUTUVIUVAUVJUURUUT
      UVINZUVGUUPUVMUUQYPCJVAVBVBUUQUVAUVJNUUPUVGUUACJVAVCVDUVKGIUJZUVHUVLUVIYO
      UVJYTYNYOFVIGVIVEYSYTHVIIVIVEVFUVHXLUVNUVCUVGUURXLUVNUVCOZOXLUURUVGUVOXLU
      URYNCMZYONZYSCMZYTNZQZUVGUVOOXLCUFZUURUVTOABCVJUWAUUPUVQUUQUVSYNYOCVGYSYT
      CVGVKKXLUVGUVTUVOUVNUVGUVTXLUVCUVNUVGUVTUVLOOUVTUVNUVGUVNUVLUVTUVNUVPUVRN
      ZUVGUVNUVLOOUVQUVSYOUVPYTUVRUVQYOUVPNUVPYOVLVMUVSYTUVRNUVRYTVLVMVNXLUVGUV
      NUWBUVCXLUVGUVNUWBUVCOOXLUVGQZUWBUVNUVCUWCUWBFHUJZUVOUVGXLUUGUUKQUWBUWDOU
      UIUUGUUMUUKUUGUUHVOUUKUULVOVPABYNYSCVQVRUWDUVNUVCYNYOYSYTVSSVTTSWAWBWAWCW
      ATWDWJWETWFWGTSWHWKWIVBUUOYLUURYIUUNYJUUPUUBYKUUQYQYJUUPWLUUIUUMYAYPCWMVC
      YCUUACWMWNWOUUOYGUVDXLUUOYEUVBYFUVCUUNUUBYBUUTYDUVAYQYBUUTNUUIUUMYAYPXNWP
      VCYCUUAXNWPVNUUOYAYPYCUUAUUIYQUUMUUBWQUUNUUBXAVDWRWSWTSXBSXCXDXESTXEXFDEC
      BXNXGXKXSXTXPCBXNXHXIKCXMXNXJXK $.
  $}

  ${
    algrflem.1 $e |- B e. _V $.
    algrflem.2 $e |- C e. _V $.
    $( Lemma for ~ algrf and related theorems.  (Contributed by Mario Carneiro,
       28-May-2014.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    algrflem $p |- ( B ( F o. 1st ) C ) = ( F ` B ) $=
      ( c1st ccom co cop cfv df-ov cvv wf wcel wceq wfo fo1st fof ax-mp opex
      fvco3 mp2an op1st fveq2i 3eqtri ) ABCFGZHABIZUFJZUGFJZCJZACJABUFKLLFMZUGL
      NUHUJOLLFPUKQLLFRSABTLLUGCFUAUBUIACABDEUCUDUE $.
  $}

  ${
    $d A a b c s v w x y z $.  $d B a b d s v w x y z $.
    $d R a b c s v w x y $.  $d S a b d s t u v w x y $.  $d T a b s w z $.
    frxp.1 $e |- T = { <. x , y >. | ( ( x e. ( A X. B ) /\ y e. ( A X. B ) )
      /\ ( ( 1st ` x ) R ( 1st ` y ) \/
           ( ( 1st ` x ) = ( 1st ` y ) /\ ( 2nd ` x ) S ( 2nd ` y ) ) ) ) } $.
    $( A lexicographical ordering of two well-founded classes.  (Contributed by
       Scott Fenton, 17-Mar-2011.)  (Revised by Mario Carneiro, 7-Mar-2013.)
       (Proof shortened by Wolf Lammen, 4-Oct-2014.) $)
    frxp $p |- ( ( R Fr A /\ S Fr B ) -> T Fr ( A X. B ) ) $=
      ( vw vz vb wa cv c0 wbr wn wi wceq wcel wex vs vc va vv vd vt wfr cxp wss
      wne wral wrex wal cdm ssn0 xpnz biimpri simprd syl dmxp dmss sseq2 syl5ib
      vu impcom syldan wb relxp relss mpi reldm0 necon3bid biimpa jca df-fr vex
      wrel dmex sseq1 neeq1 anbi12d raleq rexeqbi1dv spcv sylbi syl5 adantr w3a
      imbi12d cop csn cima crn imassrn wo xpeq0 orcs ss0 syl6bi rn0 0ss eqsstri
      rneq syl6eqss syl6 rnxp rnss pm2.61ine syl5ss eldm elimasn df-br c1st cfv
      bitr4i c2nd breq1 notbid rspccv expd ex adantl syl5ibr com3l eleq1 op1std
      eqeq1d op2ndd breq1d ianor fveq2 orbi12d anbi2d breq2d bitri df-rex exbii
      weq mpdd sylibr ne0i sylbir exlimiv imaex 1stdm elrel opeq1 eleq1d imbi1d
      syl2ani syl5bir exlimivv adantlr jcad ralrimiv sylan ralimi anbi1d eqeq2d
      olc opex xchnxbir ioran pm4.62 anbi2i orbi2i ralbii syl6ibr reximdv com23
      brab sylcom impl expimpd 3adant3 cres resss eqid eqeq1 breq2 ralbidv mpan
      spcev sylanb eximi excom sylib elsnres anbi1i 19.41v anass 3bitr2i ssrexv
      mpsyl rexlimdv 3expib alrimiv ) CEUGZDFUGZLZUAMZCDUHZUIZUXANUJZLZIMZJMZGO
      ZPZIUXAUKZJUXAULZQZUAUMUXBGUGUWTUXLUAUWTUXEUBMZUCMZEOZPZUBUXAUNZUKZUCUXQU
      LZUXKUWRUXEUXSQUWSUXEUXQCUIZUXQNUJZLZUWRUXSUXEUXTUYAUXCUXDDNUJZUXTUXEUXBN
      UJZUYCUXAUXBUOUYDCNUJZUYCUYEUYCLUYDCDUPUQURUSUYCUXCUXTUYCUXBUNZCRZUXCUXTQ
      CDUTUXCUXQUYFUIUYGUXTUXAUXBVAUYFCUXQVBVCUSVEVFUXCUXDUYAUXCUXANUXQNUXCUXAV
      QZUXANRZUXQNRVGUXCUXBVQUYHCDVHUXAUXBVIVJZUXAVKUSVLVMVNUWRUDMZCUIZUYKNUJZL
      ZUXPUBUYKUKZUCUYKULZQZUDUMUYBUXSQZUDUCUBCEVOUYQUYRUDUXQUXAUAVPZVRUYKUXQRZ
      UYNUYBUYPUXSUYTUYLUXTUYMUYAUYKUXQCVSUYKUXQNVTWAUYOUXRUCUYKUXQUXPUBUYKUXQW
      BWCWIWDWEWFWGUWSUXEUXSUXKQZQUWRUWSUXCUXDVUAUWSUXCUXDWHZUXRUXKUCUXQVUBUXNU
      XQSZUXRUXKVUBVUCUXRLZUXFUXNKMZWJZGOZPZIUXAUKZKUXAUXNWKZWLZULZUXKUWSUXCVUD
      VULQUXDUWSUXCLVUCUXRVULUWSUXCVUCUXRVULQZUWSUXCVUCLUEMZVUEFOZPZUEVUKUKZKVU
      KULZVUMUXCUWSVUKDUIZVUKNUJZVURVUCUXCVUKUXAWMZDUXAVUJWNUXCVVADUIZQZCNCNRZU
      XCUYIVVBVVDUXBNRZUXCUYIQVVDDNRZVVEVVEVVDVVFWOCDWPUQWQVVEUXCUXANUIUYIUXBNU
      XAVBUXAWRWSUSUYIVVANWMZDUXANXCVVGNDWTDXAXBXDXEUYEUXBWMZDRZVVCCDXFUXCVVAVV
      HUIVVIVVBUXAUXBXGVVHDVVAVBVCUSXHXIVUCUXNVUEUXAOZKTVUTKUXNUXAUCVPZXJVVJVUT
      KVVJVUEVUKSZVUTVVLVUFUXASZVVJUXAUXNVUEVVKKVPZXKZUXNVUEUXAXLXOVUKVUEUUAUUB
      UUCWEUWSUYKDUIZUYMLZVUPUEUYKUKZKUYKULZQZUDUMVUSVUTLZVURQZUDKUEDFVOVVTVWBU
      DVUKUXAVUJUYSUUDUYKVUKRZVVQVWAVVSVURVWCVVPVUSUYMVUTUYKVUKDVSUYKVUKNVTWAVV
      RVUQKUYKVUKVUPUEUYKVUKWBWCWIWDWEUUJUXCVURVUMQVUCUXCUXRVURVULUXCUXRVURVULQ
      UXCUXRLZVUQVUIKVUKVWDVUQUXFUXBSZVUFUXBSZLZPZUXFXMXNZUXNEOZPZVWIUXNRZUXFXP
      XNZVUEFOZPZQZLZWOZIUXAUKZVUIVWDVUQVWQIUXAUKZVWSUXCUYHUXRVUQVWTQUYJUYHUXRL
      ZVUQVWTVXAVUQLZVWQIUXAVXBUXFUXASZVWKVWPVXAVXCVWKQZVUQUXRUYHVXDUXRUYHVXCVW
      KUYHVXCLVWIUXQSUXRVWKUXFUXAUUEUXPVWKUBVWIUXQUXMVWIRUXOVWJUXMVWIUXNEXQXRXS
      WFXTVEWGUYHVUQVXCVWPQZUXRUYHVUQLZVXCUXFUFMZVDMZWJZRZVDTUFTZVWPUYHVXCVXKQV
      UQUYHVXCVXKUFVDUXFUXAUUFYAWGVXKVXFVXCVWPVXJVXFVXEQUFVDVXFVXEVXJVXIUXASZUF
      UCYRZVXHVUEFOZPZQZQVXMVXFVXLVXOVXFVXLVXOQVXMUXNVXHWJZUXASZVXOQZVUQVXSUYHV
      XRVXHVUKSVUQVXOUXAUXNVXHVVKVDVPZXKVUPVXOUEVXHVUKUEVDYRVUOVXNVUNVXHVUEFXQX
      RXSUUKYBVXMVXLVXRVXOVXMVXIVXQUXAVXGUXNVXHUUGUUHUUIYCYDVXJVXCVXLVWPVXPUXFV
      XIUXAYEVXJVWLVXMVWOVXOVXJVWIVXGUXNVXGVXHUXFUFVPZVXTYFYGVXJVWNVXNVXJVWMVXH
      VUEFVXGVXHUXFVYAVXTYHYIXRWIWIYCUULYDYSUUMUUNUUOYAUUPVWQVWRIUXAVWQVWHUUTUU
      QXEVUHVWRIUXAVUHVWHVWJVWLVWNLZWOZPZWOZVWRVWGVYCLZVYEVUGVWGVYCYJAMZUXBSZBM
      ZUXBSZLZVYGXMXNZVYIXMXNZEOZVYLVYMRZVYGXPXNZVYIXPXNZFOZLZWOZLVWEVYJLZVWIVY
      MEOZVWIVYMRZVWMVYQFOZLZWOZLVYFABUXFVUFGIVPUXNVUEUVAZAIYRZVYKWUAVYTWUFWUHV
      YHVWEVYJVYGUXFUXBYEUURWUHVYNWUBVYSWUEWUHVYLVWIVYMEVYGUXFXMYKZYIWUHVYOWUCV
      YRWUDWUHVYLVWIVYMWUIYGWUHVYPVWMVYQFVYGUXFXPYKYIWAYLWAVYIVUFRZWUAVWGWUFVYC
      WUJVYJVWFVWEVYIVUFUXBYEYMWUJWUBVWJWUEVYBWUJVYMUXNVWIEUXNVUEVYIVVKVVNYFZYN
      WUJWUCVWLWUDVWNWUJVYMUXNVWIWUKUUSWUJVYQVUEVWMFUXNVUEVYIVVKVVNYHYNWAYLWAHU
      VKUVBVYDVWQVWHVYDVWKVYBPZLVWQVWJVYBUVCWULVWPVWKWULVWLPVWOWOVWPVWLVWNYJVWL
      VWNUVDXOUVEYOUVFYOUVGUVHUVIYAUVJWGUVLUVMUVNUVOUXAVUJUVPZUXAUIVULUXJJWUMUL
      ZUXKUXAVUJUVQVULUXGVUFRZVVMUXJLZLZKTZJTZWUNVULWUQJTZKTZWUSVULVVLVUILZKTWV
      AVUIKVUKYPWVBWUTKVVLVVMVUIWUTVVOVUFVUFRZVVMVUILZWUTVUFUVRWUQWVCWVDLJVUFWU
      GWUOWUOWVCWUPWVDUXGVUFVUFUVSWUOUXJVUIVVMWUOUXIVUHIUXAWUOUXHVUGUXGVUFUXFGU
      VTXRUWAYMWAUWCUWBUWDUWEWEWUQKJUWFUWGWUNUXGWUMSZUXJLZJTWUSUXJJWUMYPWVFWURJ
      WVFWUOVVMLZKTZUXJLWVGUXJLZKTWURWVEWVHUXJKUXGUXAUXNVVKUWHUWIWVGUXJKUWJWVIW
      UQKWUOVVMUXJUWKYQUWLYQYOYTUXJJWUMUXAUWMUWNXEXTUWOUWPYBYSUWQUAJIUXBGVOYT
      $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d R x y $.  $d S x y $.  $d a x y $.
    $d b x y $.  $d c x y $.  $d d x y $.
    xporderlem.1 $e |- T = { <. x , y >. | ( ( x e. ( A X. B )
     /\ y e. ( A X. B ) )
     /\ ( ( 1st ` x ) R ( 1st ` y )
       \/ ( ( 1st ` x ) = ( 1st ` y ) /\ ( 2nd ` x ) S ( 2nd ` y ) ) ) ) } $.
    $( Lemma for lexicographical ordering theorems.  (Contributed by Scott
       Fenton, 16-Mar-2011.) $)
    xporderlem $p |- ( <. a , b >. T <. c , d >. <->
                        ( ( ( a e. A /\ c e. A ) /\ ( b e. B /\ d e. B ) ) /\
                          ( a R c \/ ( a = c /\ b S d ) ) ) ) $=
      ( cv wbr wcel wa cfv wceq vex anbi12d cop c1st c2nd wo copab df-br eleq2i
      bitri opex eleq1 opelxp syl6bb anbi1d op1std breq1d eqeq1d op2ndd orbi12d
      cxp anbi2d breq2d eqeq2d opelopab an4 anbi1i 3bitri ) HMZIMZUAZJMZKMZUAZG
      NZVIVLUAZAMZCDUSZOZBMZVPOZPZVOUBQZVRUBQZENZWAWBRZVOUCQZVRUCQZFNZPZUDZPZAB
      UEZOZVGCOZVHDOZPZVJCOZVKDOZPZPZVGVJENZVGVJRZVHVKFNZPZUDZPZWMWPPWNWQPPZXDP
      VMVNGOWLVIVLGUFGWKVNLUGUHWJWOVSPZVGWBENZVGWBRZVHWFFNZPZUDZPXEABVIVLVGVHUI
      VJVKUIVOVIRZVTXGWIXLXMVQWOVSXMVQVIVPOWOVOVIVPUJVGVHCDUKULUMXMWCXHWHXKXMWA
      VGWBEVGVHVOHSZISZUNZUOXMWDXIWGXJXMWAVGWBXPUPXMWEVHWFFVGVHVOXNXOUQUOTURTVR
      VLRZXGWSXLXDXQVSWRWOXQVSVLVPOWRVRVLVPUJVJVKCDUKULUTXQXHWTXKXCXQWBVJVGEVJV
      KVRJSZKSZUNZVAXQXIXAXJXBXQWBVJVGXTVBXQWFVKVHFVJVKVRXRXSUQVATURTVCWSXFXDWM
      WNWPWQVDVEVF $.
  $}

  ${
    $d A a b c d e f t u v x y $.  $d B a b c d e f t u v x y $.
    $d R a b c d e f t u v x y $.  $d S a b c d e f t u v x y $.
    $d T a b c d e f t u v $.
    poxp.1 $e |- T = { <. x , y >. | ( ( x e. ( A X. B ) /\ y e. ( A X. B ) )
      /\ ( ( 1st ` x ) R ( 1st ` y ) \/
           ( ( 1st ` x ) = ( 1st ` y ) /\ ( 2nd ` x ) S ( 2nd ` y ) ) ) ) } $.
    $( A lexicographical ordering of two posets.  (Contributed by Scott Fenton,
       16-Mar-2011.)  (Revised by Mario Carneiro, 7-Mar-2013.) $)
    poxp $p |- ( ( R Po A /\ S Po B ) -> T Po ( A X. B ) ) $=
      ( va vb vc vd ve vf wa cv wbr wn wi wcel vt vu wpo cxp wral cop wceq elxp
      vv wex w3a 3an6 weq wo poirr intnand im2anan9 ioran syl6ibr imp 3ad2antr1
      ex an4 potr 3impia orcd 3expia expdimp breq2 biimpa expcom adantrd adantl
      jaod anim2d orim2d breq1 equequ1 anbi1d orbi12d imbi2d syl5ibr expd com12
      impd jaao an4s sylan2b biimpi 3adant2 jctild adantld syl5bi jca wb breq12
      anidms notbid 3ad2ant1 3adant3 3adant1 anbi12d imbi12d xporderlem anbi12i
      notbii imbi12i syl6bb expcomd sylbi com3l exlimivv syl3anb com3r ralrimiv
      3exp 3imp ralrimivva df-po sylibr ) CEUCZDFUCZOZUAPZYDGQZRZYDUBPZGQZYGUIP
      ZGQZOZYDYIGQZSZOZUICDUDZUEZUBYOUEUAYOUEYOGUCYCYPUAUBYOYOYCYDYOTZYGYOTZOZO
      YNUIYOYCYSYIYOTZYNSYSYTYCYNYQYRYTYCYNSZYQYDIPZJPZUFZUGZUUBCTZUUCDTZOZOZJU
      JIUJZYRYGKPZLPZUFZUGZUUKCTZUULDTZOZOZLUJKUJZYTYIMPZNPZUFZUGZUUTCTZUVADTZO
      ZOZNUJMUJZUUAIJYDCDUHKLYGCDUHMNYICDUHUUJUUSUVHUUAUUIUUSUVHUUASSIJUVHUUIUU
      SUUAUVGUUIUUSUUASSMNUUSUVGUUIUUAUURUVGUUIUUASSKLUUIUURUVGUUAUUIUURUVGUUAU
      UIUURUVGUKUUEUUNUVCUKZUUHUUQUVFUKZOUUAUUEUUHUUNUUQUVCUVFULUVIUVJUUAUVIYCU
      VJYNYCUVJOZYNUVIUUFUUFOUUGUUGOOZUUBUUBEQZIIUMZUUCUUCFQZOZUNZOZRZUUFUUOOUU
      GUUPOOZUUBUUKEQZIKUMZUUCUULFQZOZUNZOZUUOUVDOUUPUVEOOZUUKUUTEQZKMUMZUULUVA
      FQZOZUNZOZOZUUFUVDOUUGUVEOOZUUBUUTEQZIMUMZUUCUVAFQZOZUNZOZSZOZUVKUVSUXBYC
      UUQUUHUVSUVFYCUUHOUVQUVLYCUUHUVQRZYCUUHUVMRZUVPRZOUXDYAUUFUXEYBUUGUXFYAUU
      FUXECUUBEUOVBYBUUGUXFYBUUGOUVOUVNDUUCFUOUPVBUQUVMUVPURUSUTUPVAUWNUVTUWGOZ
      UWEUWLOZOUVKUXAUVTUWEUWGUWLVCUVKUXHUXAUXGUVKUXHUWTUWOUVJYCUUFUUOUVDUKZUUG
      UUPUVEUKZOUXHUWTSZUUFUUGUUOUUPUVDUVEULYAUXIYBUXJUXKYAUXIOZYBUXJOZOUWEUWLU
      WTUXLUWAUWLUWTSZUXMUWDUXLUWAUXNUXLUWAOUWHUWTUWKUXLUWAUWHUWTYAUXIUWAUWHOZU
      WTYAUXIUXOUKUWPUWSYAUXIUXOUWPCUUBUUKUUTEVDVEVFVGVHUWAUWKUWTSUXLUWAUWIUWTU
      WJUWIUWAUWTUWIUWAOUWPUWSUWIUWAUWPUUKUUTUUBEVIVJVFVKVLVMVNVBUXMUWBUWCUXNUW
      BUXMUWCUXNSUWBUXMUWCUXNUXMUWCOZUXNUWBUWLUWHUWIUWROZUNZSUXPUWKUXQUWHUXPUWJ
      UWRUWIUXMUWCUWJUWRDUUCUULUVAFVDVHVOVPUWBUWTUXRUWLUWBUWPUWHUWSUXQUUBUUKUUT
      EVQUWBUWQUWIUWRIKMVRVSVTWAWBWCWDWEWFWEWGWHUVJUWOYCUUHUVFUWOUUQUUHUVFOUWOU
      UFUUGUVDUVEVCWIWJVMWKWLWMWNUVIYNUUDUUDGQZRZUUDUUMGQZUUMUVBGQZOZUUDUVBGQZS
      ZOUXCUVIYFUXTYMUYEUUEUUNYFUXTWOUVCUUEYEUXSUUEYEUXSWOYDUUDYDUUDGWPWQWRWSUV
      IYKUYCYLUYDUVIYHUYAYJUYBUUEUUNYHUYAWOUVCYDUUDYGUUMGWPWTUUNUVCYJUYBWOUUEYG
      UUMYIUVBGWPXAXBUUEUVCYLUYDWOUUNYDUUDYIUVBGWPWJXCXBUXTUVSUYEUXBUXSUVRABCDE
      FGIJIJHXDXFUYCUWNUYDUXAUYAUWFUYBUWMABCDEFGIJKLHXDABCDEFGKLMNHXDXEABCDEFGI
      JMNHXDXGXEXHWBXIUTXJXPXKXLXKXLXKXLXQXMVGXNUTXOXRUAUBUIYOGXSXT $.
  $}

  ${
    $d A a b c d t u x y $.  $d B a b c d t u x y $.  $d R a b c d t u x y $.
    $d S a b c d t u x y $.  $d T a b c d t u $.
    soxp.1 $e |- T = { <. x , y >. | ( ( x e. ( A X. B ) /\ y e. ( A X. B ) )
      /\ ( ( 1st ` x ) R ( 1st ` y ) \/
           ( ( 1st ` x ) = ( 1st ` y ) /\ ( 2nd ` x ) S ( 2nd ` y ) ) ) ) } $.
    $( A lexicographical ordering of two strictly ordered classes.
       (Contributed by Scott Fenton, 17-Mar-2011.)  (Revised by Mario Carneiro,
       7-Mar-2013.) $)
    soxp $p |- ( ( R Or A /\ S Or B ) -> T Or ( A X. B ) ) $=
      ( va vb vc vd wa cv wbr wceq w3o wi wo wn vt wor cxp wpo wral sopo syl2an
      vu poxp wcel cop elxp ioran ianor anbi2i bitri anbi12i solin 3orass df-or
      wex sylib orim2d im2anan9 pm2.53 orc syl6 adantr orel1 imor biimpri com12
      anim2d equcomi anim1i olcd syld a1d jaoi imp syl6com syl5bi df-3or sylibr
      ex jaod impd pm3.2 ad2ant2l idd simpr ancomd 3orim123d an4s expcom breq12
      mpd eqeq12 ancoms 3orbi123d xporderlem vex opth 3orbi123i syl6bb biimprcd
      wb com3r exlimivv syl2anb ralrimivv df-so sylanbrc ) CEUBZDFUBZMZCDUCZGUD
      ZUANZUHNZGOZXSXTPZXTXSGOZQZUHXQUEUAXQUEXQGUBXNCEUDDFUDXRXOCEUFDFUFABCDEFG
      HUIUGXPYDUAUHXQXQXSXQUJZXTXQUJZMXPYDYEXSINZJNZUKZPZYGCUJZYHDUJZMZMZJVAIVA
      ZXTKNZLNZUKZPZYPCUJZYQDUJZMZMZLVAKVAZXPYDRZYFIJXSCDULKLXTCDULYOUUDUUEYNUU
      DUUERIJUUDYNUUEUUCYNUUERKLYNUUCUUEYJYSYMUUBUUEYJYSMZYMUUBMZUUEUUGXPUUFYDU
      UGXPYKYTMZYLUUAMZMZYGYPEOZYGYPPZYHYQFOZMZSZMZUULYHYQPZMZYTYKMZUUAYLMZMZYP
      YGEOZYPYGPZYQYHFOZMZSZMZQZUUFYDRYKYTYLUUAXPUVHRXPUUJUVHXNUUHXOUUIUVHXNUUH
      MZXOUUIMZMZUUOUURUVFQZUVHUVKUUOUURSZTZUVFRZUVLUVNUUKTZUULTZUUMTZSZMZUVQUU
      QTZSZMZUVKUVFUVNUUOTZUURTZMUWCUUOUURUMUWDUVTUWEUWBUWDUVPUUNTZMUVTUUKUUNUM
      UWFUVSUVPUULUUMUNUOUPUULUUQUNUQUPUVKUVTUWBUVFUVKUVTUULUVBSZUVQUUQUVDSZSZM
      ZUWBUVFRUVIUVPUWGUVJUVSUWIUVIUUKUULUVBQZUVPUWGRZCYGYPEURUWKUUKUWGSUWLUUKU
      ULUVBUSUUKUWGUTUPVBUVJUVRUWHUVQUVJUUMUUQUVDQZUVRUWHRZDYHYQFURUWMUUMUWHSUW
      NUUMUUQUVDUSUUMUWHUTUPVBVCVDUWJUVQUVFUWAUWGUVQUVFRUWIUWGUVQUVBUVFUULUVBVE
      UVBUVEVFZVGVHUWAUWJUWGUVQUVDSZMUVFUWAUWIUWPUWGUWAUWHUVDUVQUUQUVDVIVCVMUWG
      UWPUVFUULUWPUVFRUVBUULUWPUVDUVFUWPUULUVDUULUVDRUWPUULUVDVJVKVLUULUVDUVFUU
      LUVDMUVEUVBUULUVCUVDIKVNVOVPWEVQUVBUVFUWPUWOVRVSVTWAWFVGWGWBUVLUVMUVFSUVO
      UUOUURUVFWCUVMUVFUTUPWDUVKUUOUUPUURUURUVFUVGUUHUUIUUOUUPRXNXOUUJUUOWHWIUV
      KUURWJUVIUUSUUTUVFUVGRUVJUVIYKYTXNUUHWKWLUVJYLUUAXOUUIWKWLUVAUVFWHUGWMWQW
      NWOWNUUFYDUVHUUFYDYIYRGOZYIYRPZYRYIGOZQUVHUUFYAUWQYBUWRYCUWSXSYIXTYRGWPXS
      YIXTYRWRYSYJYCUWSXGXTYRXSYIGWPWSWTUWQUUPUWRUURUWSUVGABCDEFGIJKLHXAYGYHYPY
      QIXBJXBXCABCDEFGKLIJHXAXDXEXFVGXHVTWNWOXIVLXIVTXJVLXKUAUHXQGXLXM $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d R x y $.  $d S x y $.
    wexp.1 $e |- T = { <. x , y >. | ( ( x e. ( A X. B ) /\ y e. ( A X. B ) )
      /\ ( ( 1st ` x ) R ( 1st ` y ) \/
           ( ( 1st ` x ) = ( 1st ` y ) /\ ( 2nd ` x ) S ( 2nd ` y ) ) ) ) } $.
    $( A lexicographical ordering of two well-ordered classes.  (Contributed by
       Scott Fenton, 17-Mar-2011.)  (Revised by Mario Carneiro, 7-Mar-2013.) $)
    wexp $p |- ( ( R We A /\ S We B ) -> T We ( A X. B ) ) $=
      ( wwe wa cxp wfr wor wefr frxp syl2an weso soxp df-we sylanbrc ) CEIZDFIZ
      JCDKZGLZUCGMZUCGIUACELDFLUDUBCENDFNABCDEFGHOPUACEMDFMUEUBCEQDFQABCDEFGHRP
      UCGST $.
  $}

  ${
    $d u v w x y z A $.  $d u v w x y z B $.  $d w x y G $.  $d w x z ph $.
    $d u v w x y z F $.  $d w x y Q $.  $d u v w x y R $.  $d u v w x y S $.
    $d w T $.
    fnwe.1 $e |- T = { <. x , y >. | ( ( x e. A /\ y e. A ) /\
      ( ( F ` x ) R ( F ` y ) \/ ( ( F ` x ) = ( F ` y ) /\ x S y ) ) ) } $.
    fnwe.2 $e |- ( ph -> F : A --> B ) $.
    fnwe.3 $e |- ( ph -> R We B ) $.
    fnwe.4 $e |- ( ph -> S We A ) $.
    fnwe.5 $e |- ( ph -> ( F " w ) e. _V ) $.
    ${
      fnwelem.6 $e |- Q = { <. u , v >. |
        ( ( u e. ( B X. A ) /\ v e. ( B X. A ) ) /\
          ( ( 1st ` u ) R ( 1st ` v ) \/
            ( ( 1st ` u ) = ( 1st ` v ) /\ ( 2nd ` u ) S ( 2nd ` v ) ) ) ) } $.
      fnwelem.7 $e |- G = ( z e. A |-> <. ( F ` z ) , z >. ) $.
      $( Lemma for ~ fnwe .  (Contributed by Mario Carneiro, 10-Mar-2013.)
         (Revised by Mario Carneiro, 18-Nov-2014.) $)
      fnwelem $p |- ( ph -> T We A ) $=
        ( crn wwe cxp wss wf cv cfv cop wcel wa ffvelrn simpr opelxpd fmptd frn
        3syl wexp syl2anc wess sylc ccnv wiso cima cvv wal wi wf1o wf1 wceq weq
        wral fveq2 id opeq12d opex fvmpt eqeqan12d fvex vex opth simprbi syl6bi
        rgen2a dff13 sylanblrc f1f1orn f1ocnv 4syl wbr copab eqid f1oiso2 wb wo
        wrel frel dfrel2 sylib fveq1d breq12d adantr breqan12d adantl anim12dan
        syl biantrurd c1st c2nd eleq1 opelxp syl6bb anbi1d op1std breq1d eqeq1d
        jca op2ndd anbi12d orbi12d anbi2d breq2d brab syl6rbbr 3bitrrd pm5.32da
        eqeq2d opabbidv syl5eq isoeq3 syl5ibr isocnv imacnvcnv sylancl cres cdm
        imadmres dmres elin2 xpexg simprr f1dm eleqtrd ffnd inss2 fndm syl5sseq
        wfn syl5eqss eleqtrrd sylanbrc fnfvima syl3anc syl6eleq eqeltrd sylan2b
        simprl ralrimiva wfun f1fun resss dmss ax-mp funimass4 mpbird syl5eqssr
        cin ssexd syl5eqel alrimiv isowe2 mpd ) AOUCZJUDZHMUDZAUVNIHUEZUFZUVQJU
        DZUVOAHINUGZHUVQOUGZUVRQUVTDHDUHZNUIZUWBUJZUVQOUVTUWBHUKZULUWCUWBIHHIUW
        BNUMUVTUWEUNUOUBUPZHUVQOUQURAIKUDHLUDUVSRSGFIHKLJUAUSUTUVNUVQJVAVBAHUVN
        MJOVCZVCZVDZUWHEUHZVEZVFUKZEVGUVOUVPVHAUVNHJMUWGVDZUWIAUVTUVNHUWGVIZUWM
        QAUVTHUVQOVJZHUVNOVIUWNQUVTUWABUHZOUIZCUHZOUIZVKZBCVLZVHZCHVMBHVMUWOUWF
        UXBBCHUWPHUKZUWRHUKZULZUWTUWPNUIZUWPUJZUWRNUIZUWRUJZVKZUXAUXCUXDUWQUXGU
        WSUXIDUWPUWDUXGHODBVLZUWCUXFUWBUWPUWBUWPNVNUXKVOVPUBUXFUWPVQZVRZDUWRUWD
        UXIHODCVLZUWCUXHUWBUWRUWBUWRNVNUXNVOVPUBUXHUWRVQZVRZVSUXJUXFUXHVKZUXAUX
        FUWPUXHUWRUWPNVTZBWAZWBWCWDWEBCHUVQOWFWGZHUVQOWHHUVNOWIWJUWNUWMUVTUVNHJ
        UXEUWPUWHUIZUWRUWHUIZJWKZULZBCWLZUWGVDZBCUVNHJUYEUWGUYEWMWNUVTMUYEVKUWM
        UYFWOUVTMUXEUXFUXHKWKZUXQUWPUWRLWKZULZWPZULZBCWLUYEPUVTUYKUYDBCUVTUXEUY
        JUYCUVTUXEULZUYCUWQUWSJWKZUXGUXIJWKZUYJUVTUYCUYMWOZUXEUVTUWAUYOUWFUWAUY
        AUWQUYBUWSJUWAUWPUWHOUWAOWQUWHOVKHUVQOWROWSWTZXAUWAUWRUWHOUYPXAXBXGXCUX
        EUYMUYNWOUVTUXCUXDUWQUXGUWSUXIJUXMUXPXDXEUYLUYJUXFIUKZUXCULZUXHIUKZUXDU
        LZULZUYJULZUYNUYLVUAUYJUVTUXCUYRUXDUYTUVTUXCULUYQUXCHIUWPNUMUVTUXCUNXRU
        VTUXDULUYSUXDHIUWRNUMUVTUXDUNXRXFXHGUHZUVQUKZFUHZUVQUKZULZVUCXIUIZVUEXI
        UIZKWKZVUHVUIVKZVUCXJUIZVUEXJUIZLWKZULZWPZULUYRVUFULZUXFVUIKWKZUXFVUIVK
        ZUWPVUMLWKZULZWPZULVUBGFUXGUXIJUXLUXOVUCUXGVKZVUGVUQVUPVVBVVCVUDUYRVUFV
        VCVUDUXGUVQUKUYRVUCUXGUVQXKUXFUWPIHXLXMXNVVCVUJVURVUOVVAVVCVUHUXFVUIKUX
        FUWPVUCUXRUXSXOZXPVVCVUKVUSVUNVUTVVCVUHUXFVUIVVDXQVVCVULUWPVUMLUXFUWPVU
        CUXRUXSXSXPXTYAXTVUEUXIVKZVUQVUAVVBUYJVVEVUFUYTUYRVVEVUFUXIUVQUKUYTVUEU
        XIUVQXKUXHUWRIHXLXMYBVVEVURUYGVVAUYIVVEVUIUXHUXFKUXHUWRVUEUWRNVTZCWAZXO
        ZYCVVEVUSUXQVUTUYHVVEVUIUXHUXFVVHYHVVEVUMUWRUWPLUXHUWRVUEVVFVVGXSYCXTYA
        XTUAYDYEYFYGYIYJUVNHJMUYEUWGYKXGYLVBUVNHJMUWGYMXGAUWLEAUWKOUWJVEZVFOUWJ
        YNAVVINUWJVEZUWJUEZVFAVVJVFUKUWJVFUKVVKVFUKTEWAVVJUWJVFVFUUAYOAVVIOOUWJ
        YPZYQZVEZVVKOUWJYRAVVNVVKUFZUWQVVKUKZBVVMVMZAVVPBVVMUWPVVMUKAUWPUWJUKZU
        WPOYQZUKZULZVVPUWPUWJVVSVVMOUWJYSYTAVWAULZUWQUXGVVKVWBUXCUWQUXGVKVWBUWP
        VVSHAVVRVVTUUBAVVSHVKZVWAAUVTUWOVWCQUXTHUVQOUUCURXCUUDZUXMXGVWBUXFUWPVV
        JUWJVWBUXFNNUWJYPYQZVEZVVJVWBNHUUIZVWEHUFUWPVWEUKZUXFVWFUKAVWGVWAAHINQU
        UEXCZVWBVWEUWJNYQZUVHZHNUWJYSZVWBVWJVWKHUWJVWJUUFVWBVWGVWJHVKVWIHNUUGXG
        ZUUHUUJVWBVVRUWPVWJUKVWHAVVRVVTUURZVWBUWPHVWJVWDVWMUUKUWPUWJVWJVWEVWLYT
        UULHVWENUWPUUMUUNNUWJYRUUOVWNUOUUPUUQUUSAOUUTZVVMVVSUFZVVOVVQWOAUVTUWOV
        WOQUXTHUVQOUVAURVVLOUFVWPOUWJUVBVVLOUVCUVDBVVMVVKOUVEYOUVFUVGUVIUVJUVKE
        HUVNMJUWHUVLUTUVM $.
    $}

    $( A variant on lexicographic order, which sorts first by some function of
       the base set, and then by a "backup" well-ordering when the function
       value is equal on both elements.  (Contributed by Mario Carneiro,
       10-Mar-2013.)  (Revised by Mario Carneiro, 18-Nov-2014.) $)
    fnwe $p |- ( ph -> T We A ) $=
      ( vz vv vu cv cfv cxp wcel wa c1st wbr wceq c2nd wo cop cmpt eqid fnwelem
      copab ) ABCPDQREFRSZFEUAZUBQSZUOUBUCUNUDTZUPUDTZGUEUQURUFUNUGTUPUGTHUEUCU
      HUCRQUMZGHIJPEPSZJTUTUIUJZKLMNOUSUKVAUKUL $.
  $}

  ${
    $d x y z A $.  $d u w B $.  $d u w x y F $.  $d w z ph $.  $d u w x y R $.
    $d u z $.  $d x y S $.  $d w z T $.
    fnse.1 $e |- T = { <. x , y >. | ( ( x e. A /\ y e. A ) /\
      ( ( F ` x ) R ( F ` y ) \/ ( ( F ` x ) = ( F ` y ) /\ x S y ) ) ) } $.
    fnse.2 $e |- ( ph -> F : A --> B ) $.
    fnse.3 $e |- ( ph -> R Se B ) $.
    fnse.4 $e |- ( ph -> ( `' F " w ) e. _V ) $.
    $( Condition for the well-order in ~ fnwe to be set-like.  (Contributed by
       Mario Carneiro, 25-Jun-2015.) $)
    fnse $p |- ( ph -> T Se A ) $=
      ( vz cv cvv wcel wa wbr ccnv csn cima cin wral wse cfv crab cun ffvelrnda
      vu seex sylan syldan snex sylancl wceq imaeq2 eleq1d imbi2d vtoclg impcom
      unexg wi wss inss2 wb vex eliniseg ax-mp fveq2 breqan12d eqeqan12d breq12
      anbi12d orbi12d brab2a adantrr breq1 elrab3 syl biimprd simpl fvex sylibr
      wo elsn a1i orim12d elun syl6ibr simprl jctild wfn wf ffn adantr elpreima
      sylibrd expimpd syl5bi ssrdv syl5ss ssexd ralrimiva dfse2 ) AEIUAOPZUBUCZ
      UDZQRZOEUEEIUFAXJOEAXGERZSZXIJUAZUKPZXGJUGZGTZUKFUHZXOUBZUIZUCZQAXKXSQRZX
      TQRZXLXQQRZXRQRYAAXKXOFRZYCAEFXGJLUJAFGUFYDYCMUKFXOGULUMUNXOUOXQXRQQVCUPY
      AAYBAXMDPZUCZQRZVDAYBVDDXSQYEXSUQZYGYBAYHYFXTQYEXSXMURUSUTNVAVBUNAXIXTVEX
      KAXIXHXTEXHVFADXHXTYEXHRZYEXGITZAYEXTRZXGQRYIYJVGOVHIXGYEQDVHVIVJYJYEERZX
      KSZYEJUGZXOGTZYNXOUQZYEXGHTZSZWFZSAYKBPZJUGZCPZJUGZGTZUUAUUCUQZYTUUBHTZSZ
      WFYSBCYEXGEEIYTYEUQZUUBXGUQZSZUUDYOUUGYRUUHUUIUUAYNUUCXOGYTYEJVKZUUBXGJVK
      ZVLUUJUUEYPUUFYQUUHUUIUUAYNUUCXOUUKUULVMYTYEUUBXGHVNVOVPKVQAYMYSYKAYMSZYS
      YLYNXSRZSZYKUUMYSUUNYLUUMYSYNXQRZYNXRRZWFUUNUUMYOUUPYRUUQUUMUUPYOUUMYNFRZ
      UUPYOVGAYLUURXKAEFYEJLUJVRXPYOUKYNFXNYNXOGVSVTWAWBYRUUQVDUUMYRYPUUQYPYQWC
      YNXOYEJWDWGWEWHWIYNXQXRWJWKAYLXKWLWMUUMJEWNZYKUUOVGAUUSYMAEFJWOUUSLEFJWPW
      AWQEYEXSJWRWAWSWTXAXAXBXCWQXDXEOEIXFWE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The support of functions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, the support of functions is defined and corresponding
  theorems are provided.  Since basic properties (see ~ suppval ) are based on
  the Axiom of Union (usage of ~ dmexg ), these definition and theorems cannot
  be provided earlier.  Until April 2019, the support of a function was
  represented by the expression ` ( ``' R " ( _V \ { Z } ) ) ` (see
  ~ suppimacnv ).  The theorems which are based on this representation and
  which are provided in previous sections could be moved into this section to
  have all related theorems in one section, although they do not depend on the
  Axiom of Union.  This was possible because they are not used before.  The
  current theorems differ from the original ones by requiring that the classes
  representing the "function" (or its "domain") and the "zero element" are
  sets.  Actually, this does not cause any problem (until now).

$)

  $c supp $.  $( Class for the support of a function. $)

  $( Extend class definition to include the support of functions. $)
  csupp $a class supp $.

  ${
    $d i x z $.
    $( Define the support of a function against a "zero" value.  According to
       Wikipedia ("Support (mathematics)", 31-Mar-2019,
       ~ https://en.wikipedia.org/wiki/Support_(mathematics) ) "In mathematics,
       the support of a real-valued function f is the subset of the domain
       containing those elements which are not mapped to zero." and "The notion
       of support also extends in a natural way to functions taking values in
       more general sets than R [the real numbers] and to other objects.".  The
       following definition allows for such extensions, being applicable for
       any sets (which usually are functions) and any element (even not
       necessarily from the range of the function) regarded as "zero".
       (Contributed by AV, 31-Mar-2019.)  (Revised by AV, 6-Apr-2019.) $)
    df-supp $a |- supp = ( x e. _V , z e. _V
                           |-> { i e. dom x | ( x " { i } ) =/= { z } } ) $.
  $}

  ${
    $d V x z $.  $d W x z $.  $d X i x z $.  $d Z i x z $.
    $( The value of the operation constructing the support of a function.
       (Contributed by AV, 31-Mar-2019.)  (Revised by AV, 6-Apr-2019.) $)
    suppval $p |- ( ( X e. V /\ Z e. W )
                -> ( X supp Z ) = { i e. dom X | ( X " { i } ) =/= { Z } } ) $=
      ( vx vz wcel wa cvv cv csn cima wne cdm crab csupp wceq adantr adantl a1i
      cmpt2 df-supp dmeq imaeq1 sneq neeq12d rabeqbidv dmexg rabexg syl ovmpt2d
      elex ) DBHZECHZIZFGDEJJFKZAKLZMZGKZLZNZAUQOZPZDURMZELZNZADOZPZQJQFGJJVDUB
      RUPFGAUCUAUQDRZUTERZIZVDVIRUPVLVBVGAVCVHVJVCVHRVKUQDUDSVLUSVEVAVFVJUSVERV
      KUQDURUESVKVAVFRVJUTEUFTUGUHTUNDJHUODBUMSUOEJHUNECUMTUPVHJHZVIJHUNVMUODBU
      ISVGAVHJUJUKUL $.

    $( The support of a class is empty if either the class or the "zero" is a
       proper class. .  (Contributed by AV, 28-May-2019.) $)
    supp0prc $p |- ( -. ( X e. _V /\ Z e. _V ) -> ( X supp Z ) = (/) ) $=
      ( vx vz vi cv csn cima wne cdm crab csupp cvv df-supp mpt2ndm0 ) CDCFZEFG
      HDFGIEPJKLABMMCDENO $.
  $}

  ${
    $d R x y $.  $d Z x y $.
    $( The value of the operation constructing the support of a function
       expressed by binary relations.  (Contributed by AV, 7-Apr-2019.) $)
    suppvalbr $p |- ( ( R e. V /\ Z e. W ) -> ( R supp Z )
                    = { x | ( E. y x R y /\ E. y ( x R y <-> y =/= Z ) ) } ) $=
      ( wcel wa csupp co cv csn wne wex wceq wb cab cvv abbii a1i cima cdm crab
      wbr wn suppval df-rab eldm df-sn neeq2i imasng ax-mp neeq1i nabbi 3bitr4i
      vex anbi12i eqtri df-ne bicomi bibi2i exbii anbi2i 3eqtrd ) CDGFEGHZCFIJC
      AKZLUAZFLZMZACUBZUCZVFBKZCUDZBNZVMVLFOZUEZPZBNZHZAQZVNVMVLFMZPZBNZHZAQZAD
      ECFUFVKVTOVEVKVFVJGZVIHZAQVTVIAVJUGWGVSAWFVNVIVRBVFCAUPZUHVMBQZVHMWIVOBQZ
      MVIVRVHWJWIBFUIUJVGWIVHVFRGVGWIOWHBVFRCUKULUMVMVOBUNUOUQSURTVTWEOVEVSWDAV
      RWCVNVQWBBVPWAVMWAVPVLFUSUTVAVBVCSTVD $.
  $}

  ${
    $d Z i $.
    $( The support of the empty set is the empty set.  (Contributed by AV,
       12-Apr-2019.) $)
    supp0 $p |- ( Z e. W -> ( (/) supp Z ) = (/) ) $=
      ( vi wcel c0 csupp co csn cima wne cdm crab cvv wceq 0ex suppval mpan dm0
      cv rabeq mp1i rab0 a1i 3eqtrd ) BADZEBFGZECSHIBHJZCEKZLZUGCELZEEMDUEUFUIN
      OCMAEBPQUHENUIUJNUERUGCUHETUAUJENUEUGCUBUCUD $.
  $}

  ${
    $d V i $.  $d W i $.  $d X i $.  $d Z i $.
    $( The value of the operation constructing the support of a function.
       (Contributed by AV, 6-Apr-2019.) $)
    suppval1 $p |- ( ( Fun X /\ X e. V /\ Z e. W )
                    -> ( X supp Z ) = { i e. dom X | ( X ` i ) =/= Z } ) $=
      ( wfun wcel w3a csupp co cv csn cima wne cdm crab cfv wceq suppval cvv wa
      3adant1 wfn funfn biimpi 3ad2ant1 fnsnfv sylan eqcomd neeq1d wb fvex mp1i
      sneqbg necon3bid bitrd rabbidva eqtrd ) DFZDBGZECGZHZDEIJZDAKZLMZELZNZADO
      ZPZVDDQZENZAVHPUTVAVCVIRUSABCDESUBVBVGVKAVHVBVDVHGZUAZVGVJLZVFNVKVMVEVNVF
      VMVNVEVBDVHUCZVLVNVERUSUTVOVAUSVODUDUEUFVHVDDUGUHUIUJVMVNVFVJEVJTGVNVFRVJ
      ERUKVMVDDULVJETUNUMUOUPUQUR $.

    $d F i $.
    $( The value of the operation constructing the support of a function with a
       given domain.  (Contributed by Stefan O'Rear, 1-Feb-2015.)  (Revised by
       AV, 22-Apr-2019.) $)
    suppvalfn $p |- ( ( F Fn X /\ X e. V /\ Z e. W )
                    -> ( F supp Z ) = { i e. X | ( F ` i ) =/= Z } ) $=
      ( wfn wcel w3a csupp co cv cfv wne cdm crab wfun cvv wceq 3ad2ant1 fnfun
      fnex 3adant3 simp3 suppval1 syl3anc fndm rabeq syl eqtrd ) BEGZECHZFDHZIZ
      BFJKZALBMFNZABOZPZUPAEPZUNBQZBRHZUMUOURSUKULUTUMEBUATUKULVAUMECBUBUCUKULU
      MUDARDBFUEUFUNUQESZURUSSUKULVBUMEBUGTUPAUQEUHUIUJ $.

    $d S i $.
    $( An element of the support of a function with a given domain.
       (Contributed by AV, 27-May-2019.) $)
    elsuppfn $p |- ( ( F Fn X /\ X e. V /\ Z e. W ) -> ( S e. ( F supp Z )
                               <-> ( S e. X /\ ( F ` S ) =/= Z ) ) ) $=
      ( vi wfn wcel w3a csupp co cv cfv wne crab wa suppvalfn eleq2d wceq fveq2
      neeq1d elrab syl6bb ) BEHECIFDIJZABFKLZIAGMZBNZFOZGEPZIAEIABNZFOZQUEUFUJA
      GBCDEFRSUIULGAEUGATUHUKFUGABUAUBUCUD $.
  $}

  ${
    $d R x y $.  $d Z x y $.
    $( The support of functions "defined" by inverse images expressed by binary
       relations.  (Contributed by AV, 7-Apr-2019.) $)
    cnvimadfsn $p |- ( `' R " ( _V \ { Z } ) )
                     = { x | E. y ( x R y /\ y =/= Z ) } $=
      ( ccnv cvv csn cdif cima cv wcel cop wa wex cab wbr wne dfima3 wb vex
      eldifvsn ax-mp opelcnv df-br bitr4i anbi12ci exbii abbii eqtri ) CEZFDGHZ
      IBJZUKKZULAJZLUJKZMZBNZAOUNULCPZULDQZMZBNZAOBAUJUKRUQVAAUPUTBUMUSUOURULFK
      UMUSSBTZULDFUAUBUOUNULLCKURULUNCVBATUCUNULCUDUEUFUGUHUI $.
  $}

  ${
    $d R x y $.  $d V x $.  $d W x $.  $d Z x y $.
    $( The support of functions "defined" by inverse images is a subset of the
       support defined by ~ df-supp .  (Contributed by AV, 7-Apr-2019.) $)
    suppimacnvss $p |- ( ( R e. V /\ Z e. W )
                          -> ( `' R " ( _V \ { Z } ) ) C_ ( R supp Z ) ) $=
      ( vx vy wcel wa cv wbr wne wex cab wb ccnv cvv csn cdif cima a1i csupp co
      wi exsimpl pm5.1 eximi jca ss2abdv wceq cnvimadfsn suppvalbr 3sstr4d ) AB
      GDCGHZEIFIZAJZUNDKZHZFLZEMZUOFLZUOUPNZFLZHZEMAOPDQRSZADUAUBUMURVCEURVCUCU
      MURUTVBUOUPFUDUQVAFUOUPUEUFUGTUHVDUSUIUMEFADUJTEFABCDUKUL $.

    $d R s t x y $.  $d Z s t $.
    $( Support sets of functions expressed by inverse images.  (Contributed by
       AV, 31-Mar-2019.)  (Revised by AV, 7-Apr-2019.) $)
    suppimacnv $p |- ( ( R e. V /\ Z e. W )
                       -> ( R supp Z ) = ( `' R " ( _V \ { Z } ) ) ) $=
      ( vx vt vy vs wcel wa cv wbr wex wne wb wi breq2 wceq ex com13 csupp ccnv
      co cvv csn cdif cab cbvexvw anbi1d bianir vex weq neeq1 anbi12d spcev syl
      cima pm2.43a adantld wn nne notbi eqcoms pm2.24 syl6bi syl5bi imp pm2.43i
      sylbi pm2.61i adantr com12 pm2.61ine expcom exlimiv a1i ss2abdv suppvalbr
      cnvimadfsn 3sstr4d suppimacnvss eqssd ) ABIDCIJZADUAUCZAUBUDDUEUFUQZWCEKZ
      FKZALZFMZWHWGDNZOZFMZJZEUGWFGKZALZWNDNZJZGMZEUGZWDWEWCWMWREWMWRPWCWIWLWRW
      IWFHKZALZHMWLWRPZWHXAFHWGWTWFAQUHXAXBHWLXAWRWKXAWRPFXAWKWRXAWKJZWRPWTDWTD
      RZXCWFDALZWKJZWRXDXAXEWKWTDWFAQUIWJXFWRPZWJWKWRXEWKWJWRWJWKWJWRPZWJWKJWHX
      HWJWHUJWHWJWRWQWHWJJGWGFUKGFULWOWHWPWJWNWGWFAQWNWGDUMUNUOSUPSURUSWJUTZXGX
      IWGDRZXIXGPWGDVAXFXIXJWRXEWKXIXJWRPZPXIWKXEXKWKWHUTZXIOZXIXEXKPZWHWJVBXIX
      MXNXIXMJXLXNXIXLUJXJXEXLWRXJXEWHXLWRPXEWHODWGDWGWFAQVCWHWRVDVETUPSVFTVGTV
      IVHVJVEXCWTDNZWRXAXOWRPWKXAXOWRWQXAXOJGWTHUKGHULWOXAWPXOWNWTWFAQWNWTDUMUN
      UOSVKVLVMVNVOVLVOVIVGVPVQEFABCDVRWEWSRWCEGADVSVPVTABCDWAWB $.
  $}

  $( Two ways of writing the support of a function with known codomain.
     (Contributed by Stefan O'Rear, 9-Jul-2015.)  (Revised by AV,
     7-Jul-2019.) $)
  frnsuppeq $p |- ( ( I e. V /\ Z e. W ) -> ( F : I --> S
                    -> ( F supp Z ) = ( `' F " ( S \ { Z } ) ) ) ) $=
    ( wcel wa wf csupp co ccnv csn cdif cima wceq cvv wi cin eqtrd fex imp wfun
    expcom adantr simplr suppimacnv syl2anc invdif imaeq2i inpreima syl wss cdm
    ffun cnvimass fdm fimacnv eqtr4d syl5sseq sseqin2 sylib syl5reqr adantl ex
    ) CDGZFEGZHZCABIZBFJKZBLZAFMZNZOZPVHVIHZVJVKQVLNZOZVNVOBQGZVGVJVQPVHVIVRVFV
    IVRRVGVIVFVRCADBUAUDUEUBVFVGVIUFBQEFUGUHVIVQVNPVHVIVNVKAVPSZOZVQVSVMVKAVLUI
    UJVIVTVKAOZVQSZVQVIBUCVTWBPCABUOAVPBUKULVIVQWAUMWBVQPVIBUNZVQWABVPUPVIWCCWA
    CABUQCABURUSUTVQWAVAVBTVCVDTVE $.

  ${
    $d F i $.  $d Z i $.
    $( The support of a function is a subset of the function's domain.
       (Contributed by AV, 30-May-2019.) $)
    suppssdm $p |- ( F supp Z ) C_ dom F $=
      ( vi cvv wcel wa csupp co cdm wss cv csn cima wne suppval ssrab2 syl6eqss
      crab wn c0 supp0prc 0ss pm2.61i ) ADEBDEFZABGHZAIZJUDUEACKLMBLNZCUFRUFCDD
      ABOUGCUFPQUDSUETUFABUAUFUBQUC $.
  $}

  ${
    $d F x $.  $d X x $.  $d Z x $.
    suppsnop.f $e |- F = { <. X , Y >. } $.
    $( The support of a singleton of an ordered pair.  (Contributed by AV,
       12-Apr-2019.) $)
    suppsnop $p |- ( ( X e. V /\ Y e. W /\ Z e. U )
                   -> ( F supp Z ) = if ( Y = Z , (/) , { X } ) ) $=
      ( vx wcel csn wne c0 cif wceq cvv 3adant3 a1i syl2anc neeq1d w3a csupp co
      cv cima cdm crab wf cop wa wf1o f1osng f1of syl feq1i sylibr snex suppval
      fex simp3 dmeqd dmsnopg 3ad2ant2 eqtrd sneq imaeq2d rabsnif syl6eq wn cfv
      rabeq fnsng eqcomi fneq1d mpbid snidg 3ad2ant1 fnsnfv eqcomd fveq1i fvsng
      wfn syl5eq sneqd wb sneqbg necon3abid 3bitrd ifbid ifnot 3eqtrd ) ECJZFDJ
      ZGAJZUAZBGUBUCZBIUDZKZUEZGKZLZIBUFZUGZBEKZUEZWTLZXDMNZFGOZMXDNZWOBPJZWNWP
      XCOWOXDFKZBUHZXDPJZXJWOXDXKEFUIKZUHZXLWLWMXOWNWLWMUJXDXKXNUKXOEFCDULXDXKX
      NUMUNQXDXKBXNHUOUPXMWOEUQRXDXKPBUSSWLWMWNUTIPABGURSWOXCXAIXDUGZXGWOXBXDOX
      CXPOWOXBXNUFZXDWOBXNBXNOWOHRVAWMWLXQXDOWNEFDVBVCVDXAIXBXDVKUNXAXFIEWQEOZW
      SXEWTXRWRXDBWQEVEVFTVGVHWOXGXHVIZXDMNXIWOXFXSXDMWOXFEBVJZKZWTLXKWTLXSWOXE
      YAWTWOBXDWBZEXDJZXEYAOWOXNXDWBZYBWLWMYDWNEFCDVLQWOXDXNBXNBOWOBXNHVMRVNVOW
      LWMYCWNECVPVQYBYCUJYAXEXDEBVRVSSTWOYAXKWTWOXTFWOXTEXNVJZFEBXNHVTWLWMYEFOW
      NEFCDWAQWCWDTWOXHXKWTWMWLXKWTOXHWEWNFGDWFVCWGWHWIXHXDMWJVHWK $.
  $}

  $( The support of a singleton containing an ordered pair is a subset of the
     singleton containing the first element of the ordered pair, i.e. it is
     empty or the singleton itself.  (Contributed by AV, 19-Jul-2019.) $)
  snopsuppss $p |- ( { <. X , Y >. } supp Z ) C_ { X } $=
    ( cop csn csupp co cdm suppssdm dmsnopss sstri ) ABDEZCFGLHAELCIABJK $.

  $( If the function value for a given argument is not empty, the argument
     belongs to the support of the function with the empty set as zero.
     (Contributed by AV, 2-Jul-2019.)  (Revised by AV, 4-Apr-2020.) $)
  fvn0elsupp $p |- ( ( ( B e. V /\ X e. B )
                       /\ ( G Fn B /\ ( G ` X ) =/= (/) ) )
                       -> X e. ( G supp (/) ) ) $=
    ( wcel wa wfn cfv c0 wne csupp co simpr anim12i cvv simprl simpll 0ex a1i
    wb elsuppfn syl3anc mpbird ) ACEZDAEZFZBAGZDBHIJZFZFZDBIKLEZUEUHFZUFUEUIUHU
    DUEMUGUHMNUJUGUDIOEZUKULTUFUGUHPUDUEUIQUMUJRSDBCOAIUAUBUC $.

  $( The function value for a given argument is not empty iff the argument
     belongs to the support of the function with the empty set as zero.
     (Contributed by AV, 4-Apr-2020.) $)
  fvn0elsuppb $p |- ( ( B e. V /\ X e. B /\ G Fn B )
                      -> ( ( G ` X ) =/= (/) <-> X e. ( G supp (/) ) ) ) $=
    ( wcel wfn w3a cfv c0 wne csupp co wi fvn0elsupp exp43 3imp wa cvv wb simp3
    simp1 0ex a1i elsuppfn syl3anc simpr syl6bi impbid ) ACEZDAEZBAFZGZDBHIJZDB
    IKLEZUIUJUKUMUNMUIUJUKUMUNABCDNOPULUNUJUMQZUMULUKUIIREZUNUOSUIUJUKTUIUJUKUA
    UPULUBUCDBCRAIUDUEUJUMUFUGUH $.

  ${
    $d F x $.  $d V x $.  $d W x $.  $d X x $.  $d Z x $.
    $( Existential quantification restricted to a support.  (Contributed by
       Stefan O'Rear, 23-Mar-2015.)  (Revised by AV, 27-May-2019.) $)
    rexsupp $p |- ( ( F Fn X /\ X e. V /\ Z e. W )
                    -> ( E. x e. ( F supp Z ) ph
                         <-> E. x e. X ( ( F ` x ) =/= Z /\ ph ) ) ) $=
      ( wfn wcel w3a cv cfv wne wa csupp co elsuppfn anbi1d anass syl6bb
      rexbidv2 ) CFHFDIGEIJZABKZCLGMZANZBCGOPZFUBUCUFIZANUCFIZUDNZANUHUENUBUGUI
      AUCCDEFGQRUHUDASTUA $.
  $}

  ${
    $d B b $.  $d F b $.  $d V b $.  $d W b $.  $d Z b $.
    $( The support of the restriction of a function is a subset of the support
       of the function itself.  (Contributed by AV, 22-Apr-2019.) $)
    ressuppss $p |- ( ( F e. V /\ Z e. W )
                      -> ( ( F |` B ) supp Z ) C_ ( F supp Z ) ) $=
      ( vb wcel wa csn cima wne cdm crab csupp co cab eleq2s ad2antrl wi wceq
      cres cv cin elin simprbi dmres wss snssi resima2 neeq1d biimpd adantld wn
      syl pm2.24 adantr sylbi pm2.61i jca ex ss2abdv df-rab 3sstr4g cvv suppval
      com12 resexg sylan 3sstr4d ) BCGZEDGZHZBAUAZFUBZIZJZEIZKZFVMLZMZBVOJZVQKZ
      FBLZMZVMENOZBENOVLVNVSGZVRHZFPVNWCGZWBHZFPVTWDVLWGWIFVLWGWIVLWGHZWHWBWFWH
      VLVRWHVNAWCUCZVSVNWKGZVNAGZWHVNAWCUDZUEBAUFZQRWMWJWBSWMWGWBVLWMVRWBWFWMVR
      WBWMVPWAVQWMVOAUGVPWATVNAUHBVOAUIUNUJUKULULWJWMUMZWBWFWPWBSZVLVRWQVNWKVSW
      LWMWHHWQWNWMWQWHWMWBUOUPUQWOQRVFURUSUTVAVRFVSVBWBFWCVBVCVJVMVDGVKWEVTTBAC
      VGFVDDVMEVEVHFCDBEVEVI $.
  $}

  ${
    suppun.g $e |- ( ph -> G e. V ) $.
    $( The support of a class/function is a subset of the support of the union
       of this class/function with another class/function.  (Contributed by AV,
       4-Jun-2019.) $)
    suppun $p |- ( ph -> ( F supp Z ) C_ ( ( F u. G ) supp Z ) ) $=
      ( cvv wcel wa csupp co cun wss wi ccnv csn cdif cima wceq suppimacnv a1i
      ssun1 cnvun imaeq1i imaundir eqtri sseqtr4i adantr adantlr sylan2 syl2anc
      unexg simplr 3sstr4d ex wn c0 supp0prc 0ss syl6eqss a1d pm2.61i ) BGHZEGH
      ZIZABEJKZBCLZEJKZMZNVEAVIVEAIZBOZGEPQZRZVGOZVLRZVFVHVMVOMVJVMVMCOZVLRZLZV
      OVMVQUBVOVKVPLZVLRVRVNVSVLBCUCUDVKVPVLUEUFUGUAVEVFVMSABGGETUHVJVGGHZVDVHV
      OSAVECDHZVTFVCWAVTVDBCGDULUIUJVCVDAUMVGGGETUKUNUOVEUPZVIAWBVFUQVHBEURVHUS
      UTVAVB $.
  $}

  ${
    $d B x z $.  $d F x z $.  $d V x $.  $d W x $.  $d Z x z $.
    $( The support of the restriction of a function is a subset of the support
       of the function itself.  (Contributed by AV, 22-Apr-2019.) $)
    ressuppssdif $p |- ( ( F e. V /\ Z e. W ) -> ( F supp Z )
                         C_ ( ( ( F |` B ) supp Z ) u. ( dom F \ B ) ) ) $=
      ( vz vx wcel wa cv csn cima wne cdm crab wss wi wn ex wceq cres cun csupp
      cdif co eldif wo weq sneq imaeq2d neeq1d elrab ianor xchnxbir dmres elin2
      simpl anim2i ancomd sylibr pm2.24 adantr com12 sylbi adantl snssi resima2
      syl eqcomd simpr eqtrd necon3d impancom con3d impcom eldifd syl2anb ssrdv
      jaoi a1i ssundif suppval cvv resexg sylan uneq1d 3sstr4d ) BCHZEDHZIZBFJZ
      KZLZEKZMZFBNZOZBAUAZWLLZWNMZFWRNZOZWPAUDZUBZBEUCUEWREUCUEZXCUBWJWQXBUDZXC
      PWQXDPWJGXFXCGJZXFHZXGXCHZQWJXHXGWQHZXGXBHZRZIXIXGWQXBUFXJXGWPHZBXGKZLZWN
      MZIZXGXAHZRZWRXNLZWNMZRZUGZXIXLWOXPFXGWPFGUHZWMXOWNYDWLXNBWKXGUIZUJUKULXR
      YAIYCXKXRYAUMWTYAFXGXAYDWSXTWNYDWLXNWRYEUJUKULUNYCXQXIXSXQXIQZYBXSXGAHZRZ
      XMRZUGZYFYGXMIYJXRYGXMUMXGAWPXABAUOUPUNYHYFYIYHXQXIYHXQIZXMYHIXIYKYHXMXQX
      MYHXMXPUQZURUSXGWPAUFUTSXQYIXIXMYIXIQXPXMXIVAVBVCVSVDYBXQXIYBXQIXGWPAXQXM
      YBYLVEXQYBYHXQYGYAXMYGXPYAXMYGIZXTWNXOWNYMXTWNTZXOWNTYMYNIXOXTWNYMXOXTTYN
      YMXTXOYMXNAPZXTXOTYGYOXMXGAVFVEBXNAVGVHVIVBYMYNVJVKSVLVMVNVOVPSVSVOVQVDVT
      VRWQXBXCWAUTFCDBEWBWJXEXBXCWHWRWCHWIXEXBTBACWDFWCDWREWBWEWFWG $.
  $}

  ${
    $d A x $.  $d Z x $.
    mptsuppdifd.f $e |- F = ( x e. A |-> B ) $.
    mptsuppdifd.a $e |- ( ph -> A e. V ) $.
    mptsuppdifd.z $e |- ( ph -> Z e. W ) $.
    $( The support of a function in maps-to notation with a class difference.
       (Contributed by AV, 28-May-2019.) $)
    mptsuppdifd $p |- ( ph
                        -> ( F supp Z ) = { x e. A | B e. ( _V \ { Z } ) } ) $=
      ( csupp co ccnv cvv csn cdif cima wcel crab wceq cmpt mptexg syl syl5eqel
      suppimacnv syl2anc mptpreima syl6eq ) AEHLMZENOHPQZRZDUKSBCTAEOSHGSUJULUA
      AEBCDUBZOIACFSUMOSJBCDFUCUDUEKEOGHUFUGBCDUKEIUHUI $.

    $d ph x $.
    mptsuppd.b $e |- ( ( ph /\ x e. A ) -> B e. U ) $.
    $( The support of a function in maps-to notation.  (Contributed by AV,
       10-Apr-2019.)  (Revised by AV, 28-May-2019.) $)
    mptsuppd $p |- ( ph -> ( F supp Z ) = { x e. A | B =/= Z } ) $=
      ( csupp co cvv csn wcel crab wa cdif wne mptsuppdifd cv biantrurd eldifsn
      elex syl syl6rbbr rabbidva eqtrd ) AFINODPIQUARZBCSDIUBZBCSABCDFGHIJKLUCA
      ULUMBCABUDCRTZUMDPRZUMTULUNUOUMUNDERUOMDEUGUHUEDPIUFUIUJUK $.
  $}

  ${
    $d A n $.  $d B n $.  $d Z n $.  $d ph n $.
    extmptsuppeq.b $e |- ( ph -> B e. W ) $.
    extmptsuppeq.a $e |- ( ph -> A C_ B ) $.
    extmptsuppeq.z $e |- ( ( ph /\ n e. ( B \ A ) ) -> X = Z ) $.
    $( The support of an extended function is the same as the original.
       (Contributed by Mario Carneiro, 25-May-2015.)  (Revised by AV,
       30-Jun-2019.) $)
    extmptsuppeq $p |- ( ph -> ( ( n e. A |-> X ) supp Z ) =
                               ( ( n e. B |-> X ) supp Z ) ) $=
      ( cvv wcel cmpt csupp co wceq wa adantl wn c0 wi csn cdif crab wss anim1d
      cv sseld eldif adantll sylan2br expr elsn2g elndif syl6bir ad2antrr con4d
      syld impr simprr ex impbid rabbidva2 eqid ssexd simpl mptsuppdifd 3eqtr4d
      jca simpr con3i supp0prc syl eqtr4d a1d pm2.61i ) GKLZADBFMZGNOZDCFMZGNOZ
      PZUAVQAWBVQAQZFKGUBZUCLZDBUDWEDCUDVSWAWCWEWEDBCWCDUGZBLZWEQZWFCLZWEQZWCWG
      WIWEWCBCWFABCUEVQIRUHUFWCWJWHWCWJQWGWEWCWIWEWGWCWIQZWGWEWKWGSZFGPZWESZWCW
      IWLWMWIWLQWCWFCBUCLZWMWFCBUIAWOWMVQJUJUKULVQWMWNUAAWIVQWMFWDLWNFGKUMFWDKU
      NUOUPURUQUSWCWIWEUTVIVAVBVCWCDBFVRKKGVRVDABKLVQABCEHIVERVQAVFZVGWCDCFVTEK
      GVTVDACELVQHRWPVGVHVAVQSZWBAWQVSTWAWQVRKLZVQQZSVSTPWSVQWRVQVJVKVRGVLVMWQV
      TKLZVQQZSWATPXAVQWTVQVJVKVTGVLVMVNVOVP $.
  $}

  ${
    $d A x y $.  $d B y $.  $d F x y $.  $d G x y $.  $d V y $.  $d W y $.
    $d Z x y $.
    $( The support of a function which has the same zero values (in its domain)
       as another function is a subset of the support of this other function.
       (Contributed by AV, 30-Apr-2019.) $)
    suppfnss $p |- ( ( ( F Fn A /\ G Fn B ) /\ ( A C_ B /\ B e. V /\ Z e. W ) )
                     -> ( A. x e. A ( ( G ` x ) = Z -> ( F ` x ) = Z )
                          -> ( F supp Z ) C_ ( G supp Z ) ) ) $=
      ( vy wfn wa wss wcel cv cfv wceq wi crab ad2antrr cvv w3a wral co wne cdm
      csupp wb eleq2d weq fveq2 eqeq1d imbi12d rspcv syl6bi com23 imp31 necon3d
      fndm ss2rabdv simpr1 ad2antlr 3sstr4d adantr rabss2 syl sstrd fnfun simpl
      wfun ssexg 3adant3 fnex syl2an simpr3 suppval1 syl3anc simpr simp2 mpbird
      sseq12d ex ) DBJZECJZKZBCLZCFMZHGMZUAZKZANZEOZHPZWJDOZHPZQZABUBZDHUFUCZEH
      UFUCZLZWIWPKZWSINZDOZHUDZIDUEZRZXAEOZHUDZIEUEZRZLZWTXEXGIXDRZXIWTXCXGIXDW
      TXAXDMZKXFHXBHWIWPXLXFHPZXBHPZQZWIXLWPXOWIXLXABMZWPXOQWBXLXPUGWCWHWBXDBXA
      BDURZUHSWOXOAXABAIUIZWLXMWNXNXRWKXFHWJXAEUJUKXRWMXBHWJXADUJUKULUMUNUOUPUQ
      USWTXDXHLZXKXILWIXSWPWIBCXDXHWDWEWFWGUTWBXDBPWCWHXQSWCXHCPWBWHCEURVAVBVCX
      GIXDXHVDVEVFWIWSXJUGWPWIWQXEWRXIWIDVIZDTMZWGWQXEPWBXTWCWHBDVGSWDWBBTMZYAW
      HWBWCVHWEWFYBWGBCFVJVKBTDVLVMWDWEWFWGVNZITGDHVOVPWIEVIZETMZWGWRXIPWCYDWBW
      HCEVGVAWDWCWFYEWHWBWCVQWEWFWGVRCFEVLVMYCITGEHVOVPVTVCVSWA $.
  $}

  ${
    $d F x $.  $d G x $.  $d Z x $.
    $( The support of a function which is a subset of another function is a
       subset of the support of this other function.  (Contributed by AV,
       27-Jul-2019.) $)
    funsssuppss $p |- ( ( Fun G /\ F C_ G /\ G e. V )
                        -> ( F supp Z ) C_ ( G supp Z ) ) $=
      ( vx cvv wcel wfun wss w3a csupp co wi wa wceq syl adantr simpr wn c0 cdm
      wfn cv cfv wral funss impcom funfn biimpi jca 3adant3 dmss 3ad2ant2 dmexg
      3ad2ant3 3jca funssfv 3expa eqeq1 biimpd ralrimiva sylc expcom ssid con3i
      suppfnss supp0prc sseq12d mpbiri a1d pm2.61i ) DFGZBHZABIZBCGZJZADKLZBDKL
      ZIZMVPVLVSVPVLNZAAUAZUBZBBUAZUBZNZWAWCIZWCFGZVLJZNEUCZBUDZDOZWIAUDZDOZMZE
      WAUEZVSVTWEWHVPWEVLVMVNWEVOVMVNNZWBWDWPAHZWBVNVMWQABUFUGWQWBAUHUIPVMWDVNV
      MWDBUHUIQUJUKQVTWFWGVLVPWFVLVNVMWFVOABULUMQVPWGVLVOVMWGVNBCUNUOQVPVLRUPUJ
      VPWOVLVMVNWOVOWPWNEWAWPWIWAGZNWJWLOZWNVMVNWRWSWIBAUQURWSWKWMWJWLDUSUTPVAU
      KQEWAWCABFFDVFVBVCVLSZVSVPWTVSTTITVDWTVQTVRTWTAFGZVLNZSVQTOXBVLXAVLRVEADV
      GPWTBFGZVLNZSVRTOXDVLXCVLRVEBDVGPVHVIVJVK $.
  $}

  ${
    $d F a $.  $d V a $.  $d A a $.  $d B a $.  $d Z a $.  $d W a $.
    $( Two ways to express restriction of a support set.  (Contributed by
       Stefan O'Rear, 5-Feb-2015.)  (Revised by AV, 28-May-2019.) $)
    fnsuppres $p |- ( ( F Fn ( A u. B ) /\ ( F e. W /\ Z e. V )
                        /\ ( A i^i B ) = (/) ) -> ( ( F supp Z ) C_ A
                                         <-> ( F |` B ) = ( B X. { Z } ) ) ) $=
      ( va cun wfn wcel wa wceq w3a cfv crab wss wral syl sseq1d wb cin wne cdm
      c0 cv cres csn cxp csupp co fndm rabeq 3ad2ant1 unss ssrab2 rabun2 sseq1i
      biantrur 3bitr4ri wi rabss wn fvres adantl simp2r fvconst2g sylan eqeq12d
      nne a1i simp3 minel syl2anr mtt 3bitr2rd ralbidva syl5bb bitrd wfun fnfun
      id 3anim1i 3expb suppval1 3adant3 simp1 fnssres syl2anc fnconstg 3ad2ant2
      ssun2 eqfnfv 3bitr4d ) CABHZIZCEJZFDJZKZABUAUDLZMZGUEZCNZFUBZGCUCZOZAPZXA
      CBUFZNZXABFUGUHZNZLZGBQZCFUIUJZAPXGXILZWTXFXCGWNOZAPZXLWTXEXOAWOWRXEXOLZW
      SWOXDWNLXQWNCUKXCGXDWNULRUMSXPXCGBOZAPZWTXLXCGAOZAPZXSKXTXRHZAPXSXPXTXRAU
      NYAXSXCGAUOURXOYBAXCGABUPUQUSXSXCXAAJZUTZGBQWTXLXCGBAVAWTYDXKGBWTXABJZKZX
      KXBFLZXCVBZYDYFXHXBXJFYEXHXBLWTXABCVCVDWTWQYEXJFLWOWPWQWSVEBFXADVFVGVHYHY
      GTYFXBFVIVJYFYCVBZYHYDTYEYEWSYIWTYEWAWOWRWSVKXABAVLVMYCXCVNRVOVPVQVQVRWTX
      MXEAWOWRXMXELZWSWOWRKCVSZWPWQMZYJWOWPWQYLWOYKWPWQWNCVTWBWCGEDCFWDRWESWTXG
      BIZXIBIZXNXLTWTWOBWNPZYMWOWRWSWFYOWTBAWKVJWNBCWGWHWRWOYNWSWQYNWPBFDWIVDWJ
      GBXGXIWLWHWM $.

    $( The support of a function is empty iff it is identically zero.
       (Contributed by Stefan O'Rear, 22-Mar-2015.)  (Revised by AV,
       28-May-2019.) $)
    fnsuppeq0 $p |- ( ( F Fn A /\ A e. W /\ Z e. V )
                      -> ( ( F supp Z ) = (/) <-> F = ( A X. { Z } ) ) ) $=
      ( wfn wcel w3a csupp co c0 wceq cres csn cxp wss ss0b cun cvv 3ad2ant1 wb
      cin un0 uncom eqtr3i fneq2i biimpi fnex 3adant3 simp3 fnsuppres syl121anc
      0in a1i syl5bbr fnresdm eqeq1d bitrd ) BAFZADGZECGZHZBEIJZKLZBAMZAENOZLZB
      VFLVDVCKPZVBVGVCQVBBKARZFZBSGZVAKAUBKLZVHVGUAUSUTVJVAUSVJAVIBAKRAVIAUCAKU
      DUEUFUGTUSUTVKVAADBUHUIUSUTVAUJVLVBAUMUNKABCSEUKULUOVBVEBVFUSUTVEBLVAABUP
      TUQUR $.
  $}

  $( The support of a constant function with value zero is empty.  (Contributed
     by AV, 30-Jun-2019.) $)
  fczsupp0 $p |- ( ( B X. { Z } ) supp Z ) = (/) $=
    ( csn cxp cvv wcel wa csupp co c0 wceq eqidd wb fnconstg adantl snnzg simpl
    wfn wne xpexcnv syl2anc simpr fnsuppeq0 syl3anc mpbird supp0prc pm2.61i ) A
    BCZDZEFZBEFZGZUIBHIJKZULUMUIUIKZULUILULUIARZAEFZUKUMUNMUKUOUJABENOULUHJSZUJ
    UPUKUQUJBEPOUJUKQAUHTUAUJUKUBAUIEEBUCUDUEUIBUFUG $.

  ${
    $d k F $.  $d k ph $.  $d k W $.  $d k Z $.
    suppss.f $e |- ( ph -> F : A --> B ) $.
    suppss.n $e |- ( ( ph /\ k e. ( A \ W ) ) -> ( F ` k ) = Z ) $.
    $( Show that the support of a function is contained in a set.  (Contributed
       by Mario Carneiro, 19-Dec-2014.)  (Revised by AV, 28-May-2019.) $)
    suppss $p |- ( ph -> ( F supp Z ) C_ W ) $=
      ( cvv wcel wa csupp co wss wi cv wb wceq wn cfv wne wfn wf ffn syl adantl
      cdm dmexg adantr eleq1 eqcoms syl5ibr 3syl impcom simplr elsuppfn syl3anc
      fdm cdif eldif adantll sylan2br necon1ad expimpd sylbid ssrdv ex supp0prc
      expr c0 0ss syl6eqss a1d pm2.61i ) EJKZGJKZLZAEGMNZFOZPVRAVTVRALZDVSFWADQ
      ZVSKZWBBKZWBEUAZGUBZLZWBFKZWAEBUCZBJKZVQWCWGRAWIVRABCEUDZWIHBCEUEUFUGAVRW
      JAWKEUHZBSZVRWJPHBCEUSVRWJWMWLJKZVPWNVQEJUIUJWJWNRBWLBWLJUKULUMUNUOVPVQAU
      PWBEJJBGUQURWAWDWFWHWAWDLWHWEGWAWDWHTZWEGSZWDWOLWAWBBFUTKZWPWBBFVAAWQWPVR
      IVBVCVJVDVEVFVGVHVRTZVTAWRVSVKFEGVIFVLVMVNVO $.
  $}

  ${
    suppssr.f $e |- ( ph -> F : A --> B ) $.
    suppssr.n $e |- ( ph -> ( F supp Z ) C_ W ) $.
    suppssr.a $e |- ( ph -> A e. V ) $.
    suppssr.z $e |- ( ph -> Z e. U ) $.
    $( A function is zero outside its support.  (Contributed by Mario Carneiro,
       19-Dec-2014.)  (Revised by AV, 28-May-2019.) $)
    suppssr $p |- ( ( ph /\ X e. ( A \ W ) ) -> ( F ` X ) = Z ) $=
      ( cdif wcel wn wa cfv cvv wb wceq eldif wne fvex eldifsn mpbiran csupp co
      csn wfn ffn syl elsuppfn syl3anc ibar mp1i syl6bbr pm5.32da bitrd sylbird
      wf sseld expdimp syl5bir necon1bd impr sylan2b ) HBGNOAHBOZHGOZPZQHERZIUA
      ZHBGUBAVHVJVLAVHQZVIVKIVKIUCZVKSIUINOZVMVIVOVKSOZVNHEUDZVKSIUEZUFAVHVOVIA
      VHVOQZHEIUGUHZOZVIAWAVHVNQZVSAEBUJZBFOIDOWAWBTABCEVAWCJBCEUKULLMHEFDBIUMU
      NAVHVNVOVMVNVPVNQZVOVPVNWDTVMVQVPVNUOUPVRUQURUSAVTGHKVBUTVCVDVEVFVG $.
  $}

  ${
    $d ph v $.  $d ph x $.  $d B v $.  $d D x $.  $d O v $.  $d R v $.
    $d Y v $.  $d Y x $.  $d Z v $.  $d Z x $.
    suppssov1.s $e |- ( ph -> ( ( x e. D |-> A ) supp Y ) C_ L ) $.
    suppssov1.o $e |- ( ( ph /\ v e. R ) -> ( Y O v ) = Z ) $.
    suppssov1.a $e |- ( ( ph /\ x e. D ) -> A e. V ) $.
    suppssov1.b $e |- ( ( ph /\ x e. D ) -> B e. R ) $.
    suppssov1.y $e |- ( ph -> Y e. W ) $.
    $( Formula building theorem for support restrictions: operator with left
       annihilator.  (Contributed by Stefan O'Rear, 9-Mar-2015.)  (Revised by
       AV, 28-May-2019.) $)
    suppssov1 $p |- ( ph -> ( ( x e. D |-> ( A O B ) ) supp Z ) C_ L ) $=
      ( cvv wcel wa co cmpt csupp wss csn cdif crab wne elex syl adantll adantr
      wi cv eldifsni wceq wral ralrimiva adantl oveq2 eqeq1d syl2anc syl5ibrcom
      rspcva oveq1 necon3d syl5 eldifsn sylanbrc ex ss2rabdv eqid simpll simplr
      imp mptsuppdifd 3sstr4d sstrd wn mptexg cdm ovex rgenw dmmptg ax-mp dmexg
      c0 syl5eqelr impbii anbi1i supp0prc sylnbi 0ss syl6eqss a1d pm2.61i ) FST
      ZMSTZUAZABFDEIUBZUCZMUDUBZHUEZUNWTAXDWTAUAZXCBFDUCZLUDUBZHXEXASMUFUGTZBFU
      HDSLUFUGTZBFUHXCXGXEXHXIBFXEBUOFTZUAZXHXIXKXHUADSTZDLUIZXIXKXLXHAXJXLWTAX
      JUADJTXLPDJUJUKULUMXKXHXMXHXAMUIXKXMXASMUPXKDLXAMXKXAMUQDLUQZLEIUBZMUQZXK
      EGTZLCUOZIUBZMUQZCGURZXPAXJXQWTQULXEYAXJAYAWTAXTCGOUSUTUMXTXPCEGXREUQXSXO
      MXRELIVAVBVEVCXNXAXOMDLEIVFVBVDVGVHVPDSLVIVJVKVLXEBFXAXBSSMXBVMWRWSAVNZWR
      WSAVOVQXEBFDXFSKLXFVMYBALKTWTRUTVQVRAXGHUEWTNUTVSVKWTVTZXDAYCXCWHHWTXBSTZ
      WSUAXCWHUQWRYDWSWRYDBFXASWAYDFXBWBZSXASTZBFURYEFUQYFBFDEIWCWDBFXASWEWFXBS
      WGWIWJWKXBMWLWMHWNWOWPWQ $.
  $}

  ${
    $d ph v x $.  $d A x $.  $d B v x $.  $d D x $.  $d O v x $.  $d R v $.
    $d Y v x $.  $d Z v x $.
    suppssof1.s $e |- ( ph -> ( A supp Y ) C_ L ) $.
    suppssof1.o $e |- ( ( ph /\ v e. R ) -> ( Y O v ) = Z ) $.
    suppssof1.a $e |- ( ph -> A : D --> V ) $.
    suppssof1.b $e |- ( ph -> B : D --> R ) $.
    suppssof1.d $e |- ( ph -> D e. W ) $.
    suppssof1.y $e |- ( ph -> Y e. U ) $.
    $( Formula building theorem for support restrictions: vector operation with
       left annihilator.  (Contributed by Stefan O'Rear, 9-Mar-2015.)  (Revised
       by AV, 28-May-2019.) $)
    suppssof1 $p |- ( ph -> ( ( A oF O B ) supp Z ) C_ L ) $=
      ( vx cof co csupp cv cfv cmpt wf wfn ffn syl inidm wa eqidd offval oveq1d
      wcel cvv feqmptd eqsstr3d fvexd ffvelrnda suppssov1 eqsstrd ) ACDIUAUBZMU
      CUBTETUDZCUEZVEDUEZIUBUFZMUCUBHAVDVHMUCATEEVFVGIECDKKAEJCUGCEUHPEJCUIUJAE
      FDUGDEUHQEFDUIUJRREUKAVEEUPULZVFUMVIVGUMUNUOATBVFVGEFHIUQGLMATEVFUFZLUCUB
      CLUCUBHACVJLUCATEJCPURUONUSOVIVECUTAEFVEDQVASVBVC $.
  $}

  ${
    $d k A $.  $d k ph $.  $d k W $.  $d k Z $.
    suppss2.n $e |- ( ( ph /\ k e. ( A \ W ) ) -> B = Z ) $.
    suppss2.a $e |- ( ph -> A e. V ) $.
    $( Show that the support of a function is contained in a set.  (Contributed
       by Mario Carneiro, 19-Dec-2014.)  (Revised by Mario Carneiro,
       22-Mar-2015.)  (Revised by AV, 28-May-2019.) $)
    suppss2 $p |- ( ph -> ( ( k e. A |-> B ) supp Z ) C_ W ) $=
      ( cvv wcel cmpt csupp co wss wa cdif wn wceq c0 wi crab eqid adantl simpl
      csn mptsuppdifd cv wne eldifsni eldif adantll sylan2br expr necon1ad syl5
      3impia rabssdv eqsstrd ex intnand supp0prc syl 0ss syl6eqss a1d pm2.61i
      id ) GJKZADBCLZGMNZFOZUAVIAVLVIAPZVKCJGUFQKZDBUBFVMDBCVJEJGVJUCABEKVIIUDV
      IAUEUGVMVNDBFVMDUHZBKZVNVOFKZVNCGUIVMVPPZVQCJGUJVRVQCGVMVPVQRZCGSZVPVSPVM
      VOBFQKZVTVOBFUKAWAVTVIHULUMUNUOUPUQURUSUTVIRZVLAWBVKTFWBVJJKZVIPRVKTSWBVI
      WCWBVHVAVJGVBVCFVDVEVFVG $.
  $}

  ${
    $d k A $.  $d k ph $.  $d k W $.  $d k Z $.
    suppsssn.n $e |- ( ( ph /\ k e. A /\ k =/= W ) -> B = Z ) $.
    suppsssn.a $e |- ( ph -> A e. V ) $.
    $( Show that the support of a function is a subset of a singleton.
       (Contributed by AV, 21-Jul-2019.) $)
    suppsssn $p |- ( ph -> ( ( k e. A |-> B ) supp Z ) C_ { W } ) $=
      ( csn cv cdif wcel wne wa wceq eldifsn 3expb sylan2b suppss2 ) ABCDEFJZGD
      KZBUALMAUBBMZUBFNZOCGPZUBBFQAUCUDUEHRSIT $.
  $}

  ${
    $d ph x $.  $d D x $.  $d Y x $.  $d Z x $.
    suppssfv.a $e |- ( ph -> ( ( x e. D |-> A ) supp Y ) C_ L ) $.
    suppssfv.f $e |- ( ph -> ( F ` Y ) = Z ) $.
    suppssfv.v $e |- ( ( ph /\ x e. D ) -> A e. V ) $.
    suppssfv.y $e |- ( ph -> Y e. U ) $.
    $( Formula building theorem for support restriction, on a function which
       preserves zero.  (Contributed by Stefan O'Rear, 9-Mar-2015.)  (Revised
       by AV, 28-May-2019.) $)
    suppssfv $p |- ( ph -> ( ( x e. D |-> ( F ` A ) ) supp Z ) C_ L ) $=
      ( cvv wcel wa cfv wceq adantl cmpt csupp co wss wi csn cdif crab eldifsni
      wne cv elex syl adantll adantr eqeq1d syl5ibrcom necon3d eldifsn sylanbrc
      fveq2 ex syl5 ss2rabdv eqid simpll simplr mptsuppdifd 3sstr4d sstrd wn c0
      imp mptexg cdm wral fvex rgenw dmmptg ax-mp dmexg syl5eqelr impbii anbi1i
      supp0prc sylnbi 0ss syl6eqss a1d pm2.61i ) DOPZJOPZQZABDCFRZUAZJUBUCZGUDZ
      UEWMAWQWMAQZWPBDCUAZIUBUCZGWRWNOJUFUGPZBDUHCOIUFUGPZBDUHWPWTWRXAXBBDXAWNJ
      UJZWRBUKDPZQZXBWNOJUIXEXCXBXEXCQCOPZCIUJZXBXEXFXCAXDXFWMAXDQCHPXFMCHULUMU
      NUOXEXCXGWRXCXGUEZXDAXHWMACIWNJAWNJSCISZIFRZJSLXIWNXJJCIFVAUPUQURTUOVMCOI
      USUTVBVCVDWRBDWNWOOOJWOVEWKWLAVFZWKWLAVGVHWRBDCWSOEIWSVEXKAIEPWMNTVHVIAWT
      GUDWMKTVJVBWMVKZWQAXLWPVLGWMWOOPZWLQWPVLSWKXMWLWKXMBDWNOVNXMDWOVOZOWNOPZB
      DVPXNDSXOBDCFVQVRBDWNOVSVTWOOWAWBWCWDWOJWEWFGWGWHWIWJ $.
  $}

  ${
    $d A x y $.  $d B x $.  $d F x y $.  $d G x y $.  $d X x y $.  $d Z x y $.
    $d ph x y $.
    suppofssd.1 $e |- ( ph -> A e. V ) $.
    suppofssd.2 $e |- ( ph -> Z e. B ) $.
    suppofssd.3 $e |- ( ph -> F : A --> B ) $.
    suppofssd.4 $e |- ( ph -> G : A --> B ) $.
    ${
      suppofss1d.5 $e |- ( ( ph /\ x e. B ) -> ( Z X x ) = Z ) $.
      $( Condition for the support of a function operation to be a subset of
         the support of the left function term.  (Contributed by Thierry
         Arnoux, 21-Jun-2019.) $)
      suppofss1d $p |- ( ph -> ( ( F oF X G ) supp Z ) C_ ( F supp Z ) ) $=
        ( vy cfv wceq co wcel wa cv cof wi csupp wss wf wfn ffn syl inidm eqidd
        wral ofval adantr simpr oveq1d ralrimiva ffvelrnda oveq2d eqeq1d rspcdv
        mpd 3eqtrd ex offn ssid a1i suppfnss syl23anc ) AOUAZEPZIQZVJEFHUBRZPZI
        QZUCZOCULZVMIUDREIUDRUEZAVPOCAVJCSZTZVLVOVTVLTZVNVKVJFPZHRZIWBHRZIVTVNW
        CQVLACCVKWBHCEFGGVJACDEUFECUGZLCDEUHUIZACDFUFFCUGMCDFUHUIZJJCUJZVTVKUKV
        TWBUKUMUNWAVKIWBHVTVLUOUPVTWDIQZVLVTIBUAZHRZIQZBDULZWIAWMVSAWLBDNUQUNVT
        WLWIBWBDACDVJFMURVTWJWBQZTZWKWDIWOWJWBIHVTWNUOUSUTVAVBUNVCVDUQAVMCUGWEC
        CUEZCGSIDSVQVRUCACCHCEFGGWFWGJJWHVEWFWPACVFVGJKOCCVMEGDIVHVIVB $.
    $}

    ${
      suppofss2d.5 $e |- ( ( ph /\ x e. B ) -> ( x X Z ) = Z ) $.
      $( Condition for the support of a function operation to be a subset of
         the support of the right function term.  (Contributed by Thierry
         Arnoux, 21-Jun-2019.) $)
      suppofss2d $p |- ( ph -> ( ( F oF X G ) supp Z ) C_ ( G supp Z ) ) $=
        ( vy cfv wceq co wcel wa cv cof wi csupp wss wf wfn ffn syl inidm eqidd
        wral ofval adantr simpr oveq2d ralrimiva ffvelrnda oveq1d eqeq1d rspcdv
        mpd 3eqtrd ex offn ssid a1i suppfnss syl23anc ) AOUAZFPZIQZVJEFHUBRZPZI
        QZUCZOCULZVMIUDRFIUDRUEZAVPOCAVJCSZTZVLVOVTVLTZVNVJEPZVKHRZWBIHRZIVTVNW
        CQVLACCWBVKHCEFGGVJACDEUFECUGLCDEUHUIZACDFUFFCUGZMCDFUHUIZJJCUJZVTWBUKV
        TVKUKUMUNWAVKIWBHVTVLUOUPVTWDIQZVLVTBUAZIHRZIQZBDULZWIAWMVSAWLBDNUQUNVT
        WLWIBWBDACDVJELURVTWJWBQZTZWKWDIWOWJWBIHVTWNUOUSUTVAVBUNVCVDUQAVMCUGWFC
        CUEZCGSIDSVQVRUCACCHCEFGGWEWGJJWHVEWGWPACVFVGJKOCCVMFGDIVHVIVB $.
    $}
  $}

  $( The support of the composition of two functions is empty if the support of
     the outer function is empty.  (Contributed by AV, 30-May-2019.) $)
  supp0cosupp0 $p |- ( ( F e. V /\ G e. W )
                  -> ( ( F supp Z ) = (/) -> ( ( F o. G ) supp Z ) = (/) ) ) $=
    ( cvv wcel wa csupp co c0 wceq ccom ccnv cima anim2i ancomd suppimacnv syl
    wi csn cdif simpl eqeq1d coexg cnvco imaeq1i imaco eqtri imaeq2 ima0 syl6eq
    syl5eq sylan9eq ex sylbid wn id intnand supp0prc 2a1d pm2.61i ) EFGZACGZBDG
    ZHZAEIJZKLZABMZEIJZKLZTZTVCVFVLVCVFHZVHANZFEUAUBZOZKLZVKVMVGVPKVMVDVCHVGVPL
    VMVCVDVFVDVCVDVEUCPQACFERSUDVMVQVKVMVQVJVINZVOOZKVMVIFGZVCHZVJVSLVMVCVTVFVT
    VCABCDUEPQVIFFERSVQVSBNZVPOZKVSWBVNMZVOOWCVRWDVOABUFUGWBVNVOUHUIVQWCWBKOKVP
    KWBUJWBUKULUMUNUOUPUOVCUQZVKVFVHWEWAUQVKWEVCVTWEURUSVIEUTSVAVB $.

  $( The image of the support of the composition of two functions is the
     support of the outer function.  (Contributed by AV, 30-May-2019.) $)
  imacosupp $p |- ( ( F e. V /\ G e. W )
                    -> ( ( Fun G /\ ( F supp Z ) C_ ran G )
                         -> ( G " ( ( F o. G ) supp Z ) ) = ( F supp Z ) ) ) $=
    ( cvv wcel wa csupp co wss ccom cima wceq wi ccnv anim2i syl wn c0 wfun crn
    csn cnvco imaeq1i imaco eqtri imaeq2i cdm wfo funforn biimpi ad2antrl simpl
    ancomd suppimacnv sseq1d biimpd adantld imp foimacnv syl2anc syl5eq imaeq2d
    cdif coexg adantr 3eqtr4d exp31 ima0 intnand supp0prc 3eqtr4a 2a1d pm2.61i
    id ) EFGZACGZBDGZHZBUAZAEIJZBUBZKZHZBABLZEIJZMZWBNZOOVQVTWEWIVQVTHZWEHZBWFP
    ZFEUCVEZMZMZAPZWMMZWHWBWKWOBBPZWQMZMZWQWNWSBWNWRWPLZWMMWSWLXAWMABUDUEWRWPWM
    UFUGUHWKBUIZWCBUJZWQWCKZWTWQNWAXCWJWDWAXCBUKULUMWJWEXDWJWDXDWAWJWDXDWJWBWQW
    CWJVRVQHWBWQNZWJVQVRVTVRVQVRVSUNQUOACFEUPRZUQURUSUTXBWCWQBVAVBVCWJWHWONWEWJ
    WGWNBWJWFFGZVQHZWGWNNWJVQXGVTXGVQABCDVFQUOWFFFEUPRVDVGWJXEWEXFVGVHVIVQSZWIV
    TWEXIBTMTWHWBBVJXIWGTBXIXHSWGTNXIVQXGXIVPZVKWFEVLRVDXIAFGZVQHSWBTNXIVQXKXJV
    KAEVLRVMVNVO $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Special "Maps to" operations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The following theorems are about maps-to operations (see ~ df-mpt2 ) where
  the domain of the second argument depends on the domain of the first
  argument, especially when the first argument is a pair and the base set of
  the second argument is the first component of the first argument, in short
  "x-maps-to operations".  For labels, the abbreviations "mpt2x" are used
  (since "x" usually denotes the first argument). This is in line with the
  currently used conventions for such cases (see ~ cbvmpt2x , ~ ovmpt2x and
  ~ fmpt2x ).  However, there is a proposal by Norman Megill to use the
  abbreviation "mpo" or "mpto" instead of "mpt2" (see beginning of set.mm).  If
  this proposal will be realized, the labels in the following should also be
  adapted.  If the first argument is an ordered pair, as in the following, the
  abbreviation is extended to "mpt2xop", and the maps-to operations are called
  "x-op maps-to operations" for short.

$)

  ${
    $d x A $.  $d x C $.  $d x D $.
    opeliunxp2f.f $e |- F/_ x E $.
    opeliunxp2f.e $e |- ( x = C -> B = E ) $.
    $( Membership in a union of Cartesian products, using bound-variable
       hypothesis for ` E ` instead of distinct variable conditions as in
       ~ opeliunxp2 .  (Contributed by AV, 25-Oct-2020.) $)
    opeliunxp2f $p |- ( <. C , D >. e. U_ x e. A ( { x } X. B ) <->
      ( C e. A /\ D e. E ) ) $=
      ( cop cv csn cxp ciun wcel cvv wa wbr wrel wb nfel2 df-br reliun brrelexi
      wral relxp rgenw mpbir sylbir elex adantr nfiu1 nfv nfan nfbi wceq eleq1d
      opeq1 eleq1 eleq2d anbi12d bibi12d opeliunxp vtoclg1f pm5.21nii ) DEIZABA
      JZKZCLZMZNZDONZDBNZEFNZPZVJDEVIQVKDEVIUADEVIVIRVHRZABUDVOABVGCUEUFABVHUBU
      GUCUHVLVKVMDBUIUJVFEIZVINZVFBNZECNZPZSVJVNSADOVJVNAAVEVIABVHUKTVLVMAVLAUL
      AEFGTUMUNVFDUOZVQVJVTVNWAVPVEVIVFDEUQUPWAVRVLVSVMVFDBURWACFEHUSUTVAABCEVB
      VCVD $.
  $}

  ${
    $d C x y $.  $d D y $.  $d X x $.  $d Y x $.
    mpt2xeldm2.f $e |- F = ( x e. C , y e. D |-> R ) $.
    $( If there is an element of the value of an operation given by a maps-to
       rule, then the first argument is an element of the first component of
       the domain and the second argument is an element of the second component
       of the domain depending on the first argument.  (Contributed by AV,
       25-Oct-2020.) $)
    mpt2xeldm $p |- ( N e. ( X F Y ) -> ( X e. C /\ Y e. [_ X / x ]_ D ) ) $=
      ( co wcel cop cv csn cxp ciun csb wa cdm cfv elfvdm eleq2s sseldi nfcsb1v
      dmmpt2ssx df-ov csbeq1a opeliunxp2f sylib ) GHIFKZLZHIMZACANODPQZLHCLIAHD
      RZLSULFTZUNUMABCDEFJUFUMUPLGUMFUAUKGUMFUBHIFUGUCUDACDHIUOAHDUEAHDUHUIUJ
      $.

    $d C n $.  $d D n $.  $d F n $.  $d X n x $.  $d Y n $.
    $( If the first argument of an operation given by a maps-to rule is not an
       element of the first component of the domain or the second argument is
       not an element of the second component of the domain depending on the
       first argument, then the value of the operation is the empty set.
       (Contributed by AV, 25-Oct-2020.) $)
    mpt2xneldm $p |- ( ( X e/ C \/ Y e/ [_ X / x ]_ D ) -> ( X F Y ) = (/) ) $=
      ( vn wnel csb wo wcel wa wn co c0 df-nel sylbi wceq orbi12i bitr4i cv wex
      ianor neq0 mpt2xeldm exlimiv con1i ) GCKZHAGDLZKZMZGCNZHULNZOZPZGHFQZRUAZ
      UNUOPZUPPZMURUKVAUMVBGCSHULSUBUOUPUFUCUTUQUTPJUDZUSNZJUEUQJUSUGVDUQJABCDE
      FVCGHIUHUITUJT $.
  $}

  ${
    $d x y $.  $d K x $.  $d V x $.  $d W x $.
    mpt2xopn0yelv.f $e |- F = ( x e. _V , y e. ( 1st ` x ) |-> C ) $.
    $( If there is an element of the value of an operation given by a maps-to
       rule, where the first argument is a pair and the base set of the second
       argument is the first component of the first argument, then the second
       argument is an element of the first component of the first argument.
       (Contributed by Alexander van der Vekens, 10-Oct-2017.) $)
    mpt2xopn0yelv $p |- ( ( V e. X /\ W e. Y )
                          -> ( N e. ( <. V , W >. F K ) -> K e. V ) ) $=
      ( cop co wcel c1st cfv wa cvv cv csn cxp ciun cdm dmmpt2ssx elfvdm eleq2s
      df-ov sseldi fveq2 opeliunxp2 simprbi syl op1stg eleq2d syl5ib ) FGHLZEDM
      ZNZEUPOPZNZGINHJNQZEGNURUPELZARASZTVCOPZUAUBZNZUTURDUCZVEVBABRVDCDKUDVBVG
      NFVBDPUQFVBDUEUPEDUGUFUHVFUPRNUTARVDUPEUSVCUPOUIUJUKULVAUSGEGHIJUMUNUO $.

    $d K n $.  $d F n $.  $d V n $.  $d W n $.  $d X n $.  $d Y n $.
    $( If the second argument of an operation given by a maps-to rule, where
       the first argument is a pair and the base set of the second argument is
       the first component of the first argument is not element of the first
       component of the first argument, then the value of the operation is the
       empty set.  (Contributed by Alexander van der Vekens, 10-Oct-2017.) $)
    mpt2xopynvov0g $p |- ( ( ( V e. X /\ W e. Y ) /\ K e/ V )
                          -> ( <. V , W >. F K ) = (/) ) $=
      ( vn wcel wa wnel cop co c0 wceq wn cv neq0 mpt2xopn0yelv syl6ibr exlimdv
      wex nnel syl5bi con4d imp ) FHLGILMZEFNZFGOEDPZQRZUJUMUKUMSKTZULLZKUEUJUK
      SZKULUAUJUOUPKUJUOEFLUPABCDEUNFGHIJUBEFUFUCUDUGUHUI $.

    $d F x $.
    $( If the first argument of an operation given by a maps-to rule, where the
       first argument is a pair and the base set of the second argument is the
       first component of the first argument, is not an ordered pair, then the
       value of the operation is the empty set.  (Contributed by Alexander van
       der Vekens, 10-Oct-2017.) $)
    mpt2xopxnop0 $p |- ( -. V e. ( _V X. _V ) -> ( V F K ) = (/) ) $=
      ( vn c0 cvv cxp wcel cv wex csn c1st cfv cdm wa sylbi co wceq wn neq0 cop
      ciun dmmpt2ssx elfvdm df-ov eleq2s sseldi fveq2 opeliunxp2 cuni eluni wne
      wi ne0i ad2antlr dmsnn0 sylibr ex exlimiv 1stval impcom syl con1i ) FEDUA
      ZIUBZFJJKLZVIUCAMZVHLZANVJAVHUDVLVJAVLFEUEZAJVKOVKPQZKUFZLZVJVLDRZVOVMABJ
      VNCDGUGVMVQLVKVMDQVHVKVMDUHFEDUIUJUKVPFJLZEFPQZLZSVJAJVNFEVSVKFPULUMVTVRV
      JVRVJUQZEFORZUNZVSEWCLEHMZLZWDWBLZSZHNWAHEWBUOWGWAHWGVRVJWGVRSWBIUPZVJWFW
      HWEVRWBWDURUSFUTVAVBVCTFVDUJVETVFVCTVG $.

    $( If the first argument of an operation given by a maps-to rule, where the
       first argument is a pair and the base set of the second argument is the
       first component of the first argument, is the empty set, then the value
       of the operation is the empty set.  (Contributed by Alexander van der
       Vekens, 10-Oct-2017.) $)
    mpt2xopx0ov0 $p |- ( (/) F K ) = (/) $=
      ( c0 cvv cxp wcel wn co wceq 0nelxp mpt2xopxnop0 ax-mp ) GHHIJKGEDLGMHHNA
      BCDEGFOP $.

    $( If the components of the first argument of an operation given by a
       maps-to rule, where the first argument is a pair and the base set of the
       second argument is the first component of the first argument, are not
       sets, then the value of the operation is the empty set.  (Contributed by
       Alexander van der Vekens, 10-Oct-2017.) $)
    mpt2xopxprcov0 $p |- ( -. ( V e. _V /\ W e. _V )
                           -> ( <. V , W >. F K ) = (/) ) $=
      ( cvv wcel wa cop cxp co c0 wceq opelxp mpt2xopxnop0 sylnbir ) FIJGIJKFGL
      ZIIMJTEDNOPFGIIQABCDETHRS $.

    $( If the second argument of an operation given by a maps-to rule, where
       the first argument is a pair and the base set of the second argument is
       the first component of the first argument is not element of the first
       component of the first argument, then the value of the operation is the
       empty set.  (Contributed by Alexander van der Vekens, 10-Oct-2017.) $)
    mpt2xopynvov0 $p |- ( K e/ V -> ( <. V , W >. F K ) = (/) ) $=
      ( cvv wcel wa wnel cop co c0 wceq wi mpt2xopynvov0g ex wn mpt2xopxprcov0
      a1d pm2.61i ) FIJGIJKZEFLZFGMEDNOPZQUDUEUFABCDEFGIIHRSUDTUFUEABCDEFGHUAUB
      UC $.
  $}

  ${
    $d K n x y $.  $d V n x y $.  $d W n x y $.  $d X n x y $.  $d Y n x y $.
    mpt2xopoveq.f $e |- F = ( x e. _V , y e. ( 1st ` x )
                            |-> { n e. ( 1st ` x ) | ph } ) $.
    $( Value of an operation given by a maps-to rule, where the first argument
       is a pair and the base set of the second argument is the first component
       of the first argument.  (Contributed by Alexander van der Vekens,
       11-Oct-2017.) $)
    mpt2xopoveq $p |- ( ( ( V e. X /\ W e. Y ) /\ K e. V )
                 -> ( <. V , W >. F K )
                      = { n e. V | [. <. V , W >. / x ]. [. K / y ]. ph } ) $=
      ( vz wcel wa cvv cv c1st wceq adantl nfcv cop cfv crab cmpt2 fveq2 op1stg
      wsbc a1i adantr sylan9eqr adantrr wb sbceq1a bitrd rabeqbidv simpr rabexg
      opex ad2antrr weq wnf equid nfvd ax-mp nfsbc1v nfrab nfsbc ovmpt2dxf ) GI
      MZHJMZNZFGMZNZBCGHUAZFOBPZQUBZADVPUCZACFUGZBVNUGZDGUCZEGOEBCOVPVQUDRVMKUH
      VMVOVNRZCPFRZNZNZAVSDVPGVMWAVPGRWBWAVMVPVNQUBZGVOVNQUEVKWEGRVLGHIJUFUIUJZ
      UKWDAVRVSWCAVRULZVMWBWGWAACFUMSSWCVRVSULZVMWAWHWBVRBVNUMUISUNUOWFVNOMVMGH
      URUHVKVLUPVIVTOMVJVLVSDGIUQUSLLUTZVMBVALVBZWIVMBVCVDWIVMCVAWJWIVMCVCVDCVN
      TZBFTVSBDGVRBVNVEBGTVFVSCDGVRCBVNWKACFVEVGCGTVFVH $.

    $d N x y $.
    $( Element of the value of an operation given by a maps-to rule, where the
       first argument is a pair and the base set of the second argument is the
       first component of the first argument.  (Contributed by Alexander van
       der Vekens and Mario Carneiro, 10-Oct-2017.) $)
    mpt2xopovel $p |- ( ( V e. X /\ W e. Y ) -> ( N e. ( <. V , W >. F K )
                <-> ( K e. V /\ N e. V /\ [. <. V , W >. / x ].
                      [. K / y ]. [. N / n ]. ph ) ) ) $=
      ( wcel wa cop co wsbc crab sbccom bitri w3a cv cfv mpt2xopn0yelv pm4.71rd
      c1st mpt2xopoveq eleq2d nfcv elrabsf sbcbii anbi2i syl6bb pm5.32da 3anass
      syl6bbr bitrd ) HJMIKMNZGHIOZFEPZMZFHMZVANZVBGHMZADGQCFQZBUSQZUAZURVAVBBC
      ADBUBUFUCREFGHIJKLUDUEURVCVBVDVFNZNVGURVBVAVHURVBNZVAGACFQZBUSQZDHRZMZVHV
      IUTVLGABCDEFHIJKLUGUHVMVDVKDGQZNVHVKDGHDHUIUJVNVFVDVNVJDGQZBUSQVFVJDBGUSS
      VOVEBUSADCGFSUKTULTUMUNVBVDVFUOUPUQ $.

    $d F x $.
    mpt2xopoveqd.1 $e |- ( ps -> ( V e. X /\ W e. Y ) ) $.
    mpt2xopoveqd.2 $e |- ( ( ps /\ -. K e. V )
                -> { n e. V | [. <. V , W >. / x ]. [. K / y ]. ph } = (/) ) $.
    $( Value of an operation given by a maps-to rule, where the first argument
       is a pair and the base set of the second argument is the first component
       of the first argument, deduction version.  (Contributed by Alexander van
       der Vekens, 11-Oct-2017.) $)
    mpt2xopoveqd $p |- ( ps -> ( <. V , W >. F K )
                       = { n e. V | [. <. V , W >. / x ]. [. K / y ]. ph } ) $=
      ( wcel wsbc crab wceq wa c0 cop co wi mpt2xopoveq ex syl11 wn wnel df-nel
      cv c1st cfv mpt2xopynvov0 sylbir adantr eqcomd ancoms eqtrd pm2.61i ) GHO
      ZBHIUAZGFUBZADGPCVAPEHQZRZUCHJOIKOSZUTVDBVEUTVDACDEFGHIJKLUDUEMUFUTUGZBVD
      VFBSVBTVCVFVBTRZBVFGHUHVGGHUICDAECUJUKULQFGHILUMUNUOBVFTVCRBVFSVCTNUPUQUR
      UEUS $.
  $}

  ${
    $d x y $.
    brovex.1 $e |- O = ( x e. _V , y e. _V |-> C ) $.
    brovex.2 $e |- ( ( V e. _V /\ E e. _V ) -> Rel ( V O E ) ) $.
    $( A binary relation of the value of an operation given by the "maps to"
       notation.  (Contributed by Alexander van der Vekens, 21-Oct-2017.) $)
    brovex $p |- ( F ( V O E ) P
                   -> ( ( V e. _V /\ E e. _V ) /\ ( F e. _V /\ P e. _V ) ) ) $=
      ( co wbr cvv wcel wa cop wi df-br c0 wne ne0i mpt2ndm0 necon1ai brrelex12
      wrel sylan id syldan ex 3syl sylbi pm2.43i ) FDHEGKZLZHMNEMNOZFMNDMNOZOZU
      NFDPZUMNZUNUQQZFDUMRUSUMSTUOUTUMURUAUOUMSABCGHEMMIUBUCUOUNUQUOUNUPUQUOUMU
      EUNUPJFDUMUDUFUQUGUHUIUJUKUL $.
  $}

  ${
    $d w x y z $.
    brovmpt2ex.1 $e |- O = ( x e. _V , y e. _V |-> { <. z , w >. | ph } ) $.
    $( A binary relation of the value of an operation given by the "maps to"
       notation.  (Contributed by Alexander van der Vekens, 21-Oct-2017.) $)
    brovmpt2ex $p |- ( F ( V O E ) P
                   -> ( ( V e. _V /\ E e. _V ) /\ ( F e. _V /\ P e. _V ) ) ) $=
      ( copab co wrel cvv wcel wa relmpt2opab a1i brovex ) BCADELFGHIJKJGIMNJOP
      GOPQABCDEOOJGIKRST $.
  $}

  ${
    $d E e v x y $.  $d R e v $.  $d V e v x y $.  $d ph e v x y $.
    $d ps e v $.
    sprmpt2d.1 $e |- M = ( v e. _V , e e. _V
                          |-> { <. x , y >. | ( x ( v R e ) y /\ ch ) } ) $.
    sprmpt2d.2 $e |- ( ( ph /\ v = V /\ e = E ) -> ( ch <-> ps ) ) $.
    sprmpt2d.3 $e |- ( ph -> ( V e. _V /\ E e. _V ) ) $.
    sprmpt2d.4 $e |- ( ph -> A. x A. y ( x ( V R E ) y -> th ) ) $.
    sprmpt2d.5 $e |- ( ph -> { <. x , y >. | th } e. _V ) $.
    $( The extension of a binary relation which is the value of an operation
       given in maps-to notation.  (Contributed by Alexander van der Vekens,
       30-Oct-2017.)  (Revised by AV, 20-Jun-2019.) $)
    sprmpt2d $p |- ( ph -> ( V M E )
                           = { <. x , y >. | ( x ( V R E ) y /\ ps ) } ) $=
      ( cvv cv wa co wbr copab cmpt2 wceq a1i oveq12 breqd adantl 3expb anbi12d
      wb opabbidv wcel simpld simprd wi wal opabbrex syl2anc ovmpt2d ) AGILJRRE
      SZFSZGSZISZHUAZUBZCTZEFUCZVBVCLJHUAZUBZBTZEFUCZKRKGIRRVIUDUEAMUFAVDLUEZVE
      JUEZTZTZVHVLEFVQVGVKCBVPVGVKULAVPVFVJVBVCVDLVEJHUGUHUIAVNVOCBULNUJUKUMALR
      UNZJRUNZOUOAVRVSOUPAVKDUQFUREURDEFUCRUNVMRUNPQDBEFVJRUSUTVA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Function transposition
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c tpos $. $( Function transposition $)

  $( The transposition of a function. $)
  ctpos $a class tpos F $.

  ${
    $d F x $.
    $( Define the transposition of a function, which is a function
       ` G = tpos F ` satisfying ` G ( x , y ) = F ( y , x ) ` .  (Contributed
       by Mario Carneiro, 10-Sep-2015.) $)
    df-tpos $a |- tpos F = ( F o.
        ( x e. ( `' dom F u. { (/) } ) |-> U. `' { x } ) ) $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d w x y z F $.  $d x G $.
    $( Subset theorem for transposition.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    tposss $p |- ( F C_ G -> tpos F C_ tpos G ) $=
      ( vx wss cdm ccnv c0 csn cun cv cuni cmpt ccom ctpos coss1 cres wceq dmss
      cnvss df-tpos unss1 resmpt 4syl resss syl6eqssr coss2 syl sstrd 3sstr4g )
      ABDZACAEZFZGHZIZCJHFKZLZMZBCBEZFZUMIZUOLZMZANBNUJUQBUPMZVBABUPOUJUPVADVCV
      BDUJUPVAUNPZVAUJUKURDULUSDUNUTDVDUPQABRUKURSULUSUMUACUTUNUOUBUCVAUNUDUEUP
      VABUFUGUHCATCBTUI $.

    $( Equality theorem for transposition.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    tposeq $p |- ( F = G -> tpos F = tpos G ) $=
      ( wceq ctpos wss eqimss tposss syl eqimss2 eqssd ) ABCZADZBDZKABELMEABFAB
      GHKBAEMLEBAIBAGHJ $.

    ${
      tposeqd.1 $e |- ( ph -> F = G ) $.
      $( Equality theorem for transposition.  (Contributed by Mario Carneiro,
         7-Jan-2017.) $)
      tposeqd $p |- ( ph -> tpos F = tpos G ) $=
        ( wceq ctpos tposeq syl ) ABCEBFCFEDBCGH $.
    $}

    $( The transposition is a subset of a Cartesian product.  (Contributed by
       Mario Carneiro, 12-Jan-2017.) $)
    tposssxp $p |- tpos F C_ ( ( `' dom F u. { (/) } ) X. ran F ) $=
      ( vx ctpos cdm ccnv csn cun cuni cmpt crn cxp ccom df-tpos cossxp eqsstri
      c0 cv wss eqid dmmptss xpss1 ax-mp sstri ) ACZBADEPFGZBQFEHZIZDZAJZKZUEUI
      KZUDAUGLUJBAMAUGNOUHUERUJUKRBUEUFUGUGSTUHUEUIUAUBUC $.

    $( The transposition is a relation.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    reltpos $p |- Rel tpos F $=
      ( ctpos cdm ccnv c0 csn cun crn cxp wss wrel tposssxp relxp relss mp2 ) A
      BZACDEFGZAHZIZJSKPKALQRMPSNO $.

    $( Value of the transposition at a pair ` <. A , B >. ` .  (Contributed by
       Mario Carneiro, 10-Sep-2015.) $)
    brtpos2 $p |- ( B e. V -> ( A tpos F B <->
      ( A e. ( `' dom F u. { (/) } ) /\ U. `' { A } F B ) ) ) $=
      ( vy vx wcel cvv wbr cdm ccnv csn cuni wa wi a1i wb cv wceq bitri reltpos
      ctpos c0 cun brrelexi elex adantr cmpt wex df-tpos breqi brcog syl5bb cfv
      ccom wfun funmpt funbrfv2b ax-mp snex cnvex uniex eqid dmmpti eleq2i sneq
      eqcom anbi12i cnveqd unieqd fvmpt eqeq2d pm5.32i ancom anbi1i anass exbii
      breq1 anbi2d ceqsexv syl6bb expcom pm5.21ndd ) BDGZAHGZABCUBZIZACJKUCLUDZ
      GZALZKZMZBCIZNZWGWEOWDABWFCUAUEPWNWEOWDWIWEWMAWHUFUGPWEWDWGWNQWEWDNZWGAER
      ZFWHFRZLZKZMZUHZIZWPBCIZNZEUIZWNWGABCXAUOZIWOXEABWFXFFCUJUKEABCXAHDULUMXE
      WPWLSZWIXCNZNZEUIWNXDXIEXDXGWINZXCNXIXBXJXCXBWIXGNZXJXBAXAJZGZAXAUNZWPSZN
      ZXKXAUPXBXPQFWHWTUQAWPXAURUSXPWIWPXNSZNXKXMWIXOXQXLWHAFWHWTXAWSWRWQUTVAVB
      XAVCZVDVEXNWPVGVHWIXQXGWIXNWLWPFAWTWLWHXAWQASZWSWKXSWRWJWQAVFVIVJXRWKWJAU
      TVAVBZVKVLVMTTWIXGVNTVOXGWIXCVPTVQXHWNEWLXTXGXCWMWIWPWLBCVRVSVTTWAWBWC $.

    $( The behavior of ` tpos ` when the left argument is the empty set (which
       is not an ordered pair but is the "default" value of an ordered pair
       when the arguments are proper classes).  This allows us to eliminate
       sethood hypotheses on ` A , B ` in ~ brtpos .  (Contributed by Mario
       Carneiro, 10-Sep-2015.) $)
    brtpos0 $p |- ( A e. V -> ( (/) tpos F A <-> (/) F A ) ) $=
      ( wcel c0 ctpos wbr cdm ccnv csn cun cuni brtpos2 ssun2 0ex snid biantrur
      wa sselii cnvsn0 unieqi uni0 eqtri breq1i bitr3i syl6bb ) ACDEABFGEBHIZEJ
      ZKZDZUHIZLZABGZRZEABGZEABCMUNUMUOUJUMUHUIEUHUGNEOPSQULEABULELEUKETUAUBUCU
      DUEUF $.

    $( Necessary and sufficient condition for ` dom tpos F ` to be a relation.
       (Contributed by Mario Carneiro, 10-Sep-2015.) $)
    reldmtpos $p |- ( Rel dom tpos F <-> -. (/) e. dom F ) $=
      ( vy vx cdm wrel c0 wcel wn cv wbr wex 0ex eldm cvv wb vex ax-mp wi sylbi
      wss ctpos brtpos0 cxp 0nelxp df-rel ssel mtoi breldm nsyl3 sylbir exlimiv
      con2i wa ccnv csn relcnv mpbi sseli a1i elsni breq1d pm2.24d syl6bi com3l
      impcom wo cuni brtpos2 simplbi elun sylib adantl mpjaod ex exlimdv syl5bi
      cun ssrdv sylibr impbii ) AUAZDZEZFADZGZHZWEWCWEFBIZAJZBKWCHZBFALMWHWIBWH
      FWGWAJZWIWGNGZWJWHOBPZWGANUBQZWCFWBGZWJWCWNFNNUCZGZNNUDWCWBWOTZWNWPRWBUEZ
      WBWOFUFSUGFWGWALWLUHUIUJUKSULWFWQWCWFCWBWOCIZWBGWSWGWAJZBKWFWSWOGZBWSWACP
      MWFWTXABWFWTXAWFWTUMZWSWDUNZGZXAWSFUOZGZXDXARXBXCWOWSXCEXCWOTWDUPXCUEUQUR
      USWTWFXFXARXFWTWFXAXFWTWJWFXARZXFWSFWGWAWSFUTVAWJWHXGWMWHWEXAFWGALWLUHVBS
      VCVDVEWTXDXFVFZWFWTWSXCXEVQGZXHWTXIWSUOUNVGWGAJZWKWTXIXJUMOWLWSWGANVHQVIW
      SXCXEVJVKVLVMVNVOVPVRWRVSVT $.

    $( The transposition swaps arguments of a three-parameter relation.
       (Contributed by Mario Carneiro, 10-Sep-2015.) $)
    brtpos $p |- ( C e. V -> ( <. A , B >. tpos F C <-> <. B , A >. F C ) ) $=
      ( wcel cvv wa cop ctpos wbr wb cdm ccnv c0 csn adantr wn opprc breq1d cun
      cuni brtpos2 wi opex breldmg 3expia mpan opelcnvg adantl sylibrd pm4.71rd
      elun1 opswap breq1i anbi2i syl6bbr bitr4d ex brtpos0 ancom sylnbi bibi12d
      syl6 syl5ibrcom pm2.61d ) CEFZAGFZBGFZHZABIZCDJZKZBAIZCDKZLZVGVJVPVGVJHZV
      MVKDMZNZOPZUAFZVKPNUBZCDKZHZVOVGVMWDLVJVKCDEUCQVQVOWAVOHWDVQVOWAVQVOVKVSF
      ZWAVQVOVNVRFZWEVGVOWFUDZVJVNGFZVGWGBAUEWHVGVOWFVNCGEDUFUGUHQVJWEWFLVGABGG
      VRUIUJUKVKVSVTUMVDULWCVOWAWBVNCDABUNUOUPUQURUSVGVPVJRZOCVLKZOCDKZLCDEUTWI
      VMWJVOWKWIVKOCVLABSTVJVIVHHZVOWKLVHVIVAWLRVNOCDBASTVBVCVEVF $.

    $( The transposition swaps the first two elements in a collection of
       ordered triples.  (Contributed by Mario Carneiro, 1-Dec-2014.) $)
    ottpos $p |- ( C e. V ->
      ( <. A , B , C >. e. tpos F <-> <. B , A , C >. e. F ) ) $=
      ( wcel cop ctpos cotp wbr brtpos df-br 3bitr3g df-ot eleq1i 3bitr4g ) CEF
      ZABGZCGZDHZFZBAGZCGZDFZABCIZTFBACIZDFQRCTJUBCDJUAUDABCDEKRCTLUBCDLMUESTAB
      CNOUFUCDBACNOP $.

    $( The transposition swaps arguments of a three-parameter relation.
       (Contributed by Mario Carneiro, 3-Nov-2015.) $)
    relbrtpos $p |- ( Rel F ->
      ( <. A , B >. tpos F C <-> <. B , A >. F C ) ) $=
      ( wrel cop ctpos wbr cvv wcel reltpos a1i brrelex2 sylan brtpos pm5.21nd
      ) DEZABFZCDGZHZBAFZCDHCIJZQSEZTUBUCQDKLRCSMNUACDMABCDIOP $.

    $( The domain of ` tpos F ` when ` dom F ` is a relation.  (Contributed by
       Mario Carneiro, 10-Sep-2015.) $)
    dmtpos $p |- ( Rel dom F -> dom tpos F = `' dom F ) $=
      ( vx vy vz ctpos cdm wrel ccnv wa wceq cvv wcel cop wbr wex vex opex eldm
      c0 cv cxp wss wn 0nelxp ssel df-rel reldmtpos 3imtr4i relcnv jctir brtpos
      mtoi wb mp1i exbidv opelcnv bitri 3bitr4g eqrelrdv2 mpancom ) AEZFZGZAFZH
      ZGZIVDGZVBVEJVGVCVFVDKKUAZUBZSVDLZUCVGVCVIVJSVHLKKUDVDVHSUEULVDUFAUGUHVDU
      IUJVGBCVBVEVGBTZCTZMZDTZVANZDOVLVKMZVNANZDOZVMVBLVMVELZVGVOVQDVNKLVOVQUMV
      GDPVKVLVNAKUKUNUODVMVAVKVLQRVSVPVDLVRVKVLVDBPCPUPDVPAVLVKQRUQURUSUT $.

    $( The range of ` tpos F ` when ` dom F ` is a relation.  (Contributed by
       Mario Carneiro, 10-Sep-2015.) $)
    rntpos $p |- ( Rel dom F -> ran tpos F = ran F ) $=
      ( vz vw vx vy cdm wrel crn cv wcel wbr wex vex elrn cop wceq breldm elrel
      wi breq1 ctpos ccnv dmtpos eleq2d syl5ib relcnv mpan syl6 wb brtpos ax-mp
      cvv syl6bb opex brelrn syl6bi exlimivv syli exlimdv syl5bi ex syl5 impbid
      syl6bbr eqrdv ) AFZGZBAUAZHZAHZVGBIZVIJZVKVJJZVLCIZVKVHKZCLVGVMCVKVHBMZNV
      GVOVMCVOVGVNDIZEIZOZPZELDLZVMVGVOVNVFUBZJZWAVOVNVHFZJVGWCVNVKVHCMZVPQVGWD
      WBVNAUCUDUEWBGWCWAVFUFDEVNWBRUGUHVTVOVMSDEVTVOVRVQOZVKAKZVMVTVOVSVKVHKZWG
      VNVSVKVHTVKULJWHWGUIVPVQVRVKAULUJUKZUMWFVKAVRVQUNVPUOUPUQURUSUTVMVNVKAKZC
      LVGVLCVKAVPNVGWJVLCWJVGVNWFPZDLELZVLWJVNVFJZVGWLVNVKAWEVPQVGWMWLEDVNVFRVA
      VBWKWJVLSEDWKWJWHVLWKWJWGWHVNWFVKATWIVDVSVKVHVQVRUNVPUOUPUQURUSUTVCVE $.

    $( The transposition of a set is a set.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    tposexg $p |- ( F e. V -> tpos F e. _V ) $=
      ( wcel ctpos cdm ccnv c0 csn cun crn cxp wss cvv tposssxp cnvexg syl p0ex
      dmexg unexg sylancl rnexg xpexg syl2anc ssexg sylancr ) ABCZADZAEZFZGHZIZ
      AJZKZLUMMCZUGMCANUFUKMCZULMCUNUFUIMCZUJMCUOUFUHMCUPABRUHMOPQUIUJMMSTABUAU
      KULMMUBUCUGUMMUDUE $.

    $( The transposition swaps the arguments in a two-argument function.  When
       ` F ` is a matrix, which is to say a function from
       ` ( 1 ... m ) X. ( 1 ... n ) ` to ` RR ` or some ring, ` tpos F ` is the
       transposition of ` F ` , which is where the name comes from.
       (Contributed by Mario Carneiro, 10-Sep-2015.) $)
    ovtpos $p |- ( A tpos F B ) = ( B F A ) $=
      ( vy cop ctpos cfv co cv wbr cio cvv wcel wb vex brtpos ax-mp df-fv df-ov
      3eqtr4i iotabii ) ABEZCFZGZBAEZCGZABUCHBACHUBDIZUCJZDKUEUGCJZDKUDUFUHUIDU
      GLMUHUINDOABUGCLPQUADUBUCRDUECRTABUCSBACST $.

    $( The transposition of a function is a function.  (Contributed by Mario
       Carneiro, 10-Sep-2015.) $)
    tposfun $p |- ( Fun F -> Fun tpos F ) $=
      ( vx wfun cdm ccnv c0 csn cun cv cuni cmpt ccom ctpos funco mpan2 df-tpos
      funmpt funeqi sylibr ) ACZABADEFGHZBIGEJZKZLZCZAMZCTUCCUEBUAUBQAUCNOUFUDB
      APRS $.

    $( Alternate definition of ` tpos ` when ` F ` has relational domain.
       (Contributed by Mario Carneiro, 10-Sep-2015.) $)
    dftpos2 $p |- ( Rel dom F -> tpos F =
        ( F o. ( x e. `' dom F |-> U. `' { x } ) ) ) $=
      ( cdm wrel ctpos cres ccnv csn cuni cmpt ccom dmtpos reseq2d wceq reltpos
      cv resdm ax-mp c0 cun df-tpos reseq1i resco resmpt coeq2i 3eqtri 3eqtr3g
      wss ssun1 ) BCZDZBEZULCZFZULUJGZFZULBAUOAPHGIZJZKZUKUMUOULBLMULDUNULNBOUL
      QRUPBAUOSHZTZUQJZKZUOFBVBUOFZKUSULVCUOABUAUBBVBUOUCVDURBUOVAUHVDURNUOUTUI
      AVAUOUQUDRUEUFUG $.

    $( Alternate definition of ` tpos ` when ` F ` has relational domain.
       Compare ~ df-cnv .  (Contributed by Mario Carneiro, 10-Sep-2015.) $)
    dftpos3 $p |- ( Rel dom F -> tpos F =
      { <. <. x , y >. , z >. | <. y , x >. F z } ) $=
      ( vw cdm wrel ctpos cv cop wceq wbr wa wex cab wcel cvv cxp bitr3i syl6bb
      coprab wss relcnv dmtpos releqd mpbiri reltpos jctil relrelss sylib sseld
      ccnv elvvv syl6ib pm4.71rd 19.41vvv eleq1 df-br vex brtpos pm5.32i 3exbii
      wb ax-mp abbi2dv df-oprab syl6eqr ) DFZGZDHZEIZAIZBIZJZCIZJZKZVMVLJVODLZM
      ZCNBNANZEOVRABCUAVIVTEVJVIVKVJPZVQCNBNANZWAMZVTVIWAWBVIWAVKQQRQRZPWBVIVJW
      DVKVIVJGZVJFZGZMVJWDUBVIWGWEVIWGVHULZGVHUCVIWFWHDUDUEUFDUGUHVJUIUJUKABCVK
      UMUNUOWCVQWAMZCNBNANVTVQWAABCUPWIVSABCVQWAVRVQWAVPVJPZVRVKVPVJUQWJVNVOVJL
      ZVRVNVOVJURVOQPWKVRVCCUSVLVMVODQUTVDSTVAVBSTVEVRABCEVFVG $.

    $( Alternate definition of ` tpos ` .  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    dftpos4 $p |- tpos F =
        ( F o. ( x e. ( ( _V X. _V ) u. { (/) } ) |-> U. `' { x } ) ) $=
      ( vy vz vw cvv csn cun cv ccnv cuni wss wceq cop wcel wbr wa wex vex wb
      ctpos cxp cmpt ccom cdm df-tpos cres wrel relcnv df-rel mpbi unss1 resmpt
      c0 mp2b resss eqsstr3i coss2 ax-mp eqsstri relco opelco eleq1 sneq cnveqd
      unieqd eqeq2d anbi12d anbi2d df-mpt brab wi simplr breldm adantl eqeltrrd
      eqeq1 opswap eleq1i opelcnv bitr4i eleq1d bibi12d mpbiri exlimivv biimpcd
      elvv sylbi elun1 syl6 syl elun2 a1i wo simpll sylib mpjaod simpr eqbrtrrd
      elun jca sylanb brtpos2 sylibr df-br exlimiv relssi eqssi ) BUAZBAFFUBZUN
      GZHZAIZGZJZKZUCZUDZXIBABUEZJZXKHZXPUCZUDZXRABUFYBXQLYCXRLYBXQYAUGZXQXTXJL
      ZYAXLLYDYBMXTUHYEXSUIXTUJUKXTXJXKULAXLYAXPUMUOXQYAUPUQYBXQBURUSUTCDXRXIBX
      QVACIZDIZNZXROYFEIZXQPZYIYGBPZQZERYHXIOZEYFYGBXQCSZDSZVBYLYMEYLYFYGXIPZYM
      YLYFYAOZYFGZJZKZYGBPZQZYPYJYFXLOZYIYTMZQZYKUUBXMXLOZYGXPMZQUUCYGYTMZQUUEA
      DYFYIXQYNESZXMYFMZUUFUUCUUGUUHXMYFXLVCUUJXPYTYGUUJXOYSUUJXNYRXMYFVDVEVFVG
      VHYGYIMUUHUUDUUCYGYIYTVQVIADXLXPVJVKUUEYKQZYQUUAUUKYFXJOZYQYFXKOZUUKYTXSO
      ZUULYQVLUUKYIYTXSUUCUUDYKVMZYKYIXSOUUEYIYGBUUIYOVNVOVPUUNUULYFXTOZYQUULUU
      NUUPUULYFYGYINZMZERDRUUNUUPTZDEYFWGUURUUSDEUURUUSUUQGZJZKZXSOZUUQXTOZTUVC
      YIYGNZXSOUVDUVBUVEXSYGYIVRVSYGYIXSYOUUIVTWAUURUUNUVCUUPUVDUURYTUVBXSUURYS
      UVAUURYRUUTYFUUQVDVEVFWBYFUUQXTVCWCWDWEWHWFYFXTXKWIWJWKUUMYQVLUUKYFXKXTWL
      WMUUKUUCUULUUMWNUUCUUDYKWOYFXJXKWTWPWQUUKYIYTYGBUUOUUEYKWRWSXAXBYGFOYPUUB
      TYOYFYGBFXCUSXDYFYGXIXEWPXFWHXGXH $.

    $( Value of the double transposition for a general class ` F ` .
       (Contributed by Mario Carneiro, 16-Sep-2015.) $)
    tpostpos $p |- tpos tpos F =
        ( F i^i ( ( ( _V X. _V ) u. { (/) } ) X. _V ) ) $=
      ( vz vx vy cvv c0 csn wrel cv ccnv wcel wbr wa wo wb syl6bb syl6eq breq1d
      cuni vex vw ctpos cxp cun cin reltpos wss inss2 relxp relss relcnv df-rel
      mp2 cdm mpbi simpl sseldi simpr cop wceq elvv eleq1 opelcnv cnveqd unieqd
      sneq opswap anbi12d opex breldm pm4.71ri brtpos ax-mp bitr3i breq1 bitr4d
      wex exlimivv sylbi iba bitrd pm5.21nii elsni sneqd cnvsn0 brtpos0 pm5.32i
      uni0 ancom bitri orbi12i andi 3bitr4i elun anbi1i mpbiran2 anbi2i brtpos2
      andir brxp brin eqbrriv ) UABAUBZUBZAEEUCZFGZUDZEUCZUEZXCUFXIXHUGXHHXIHAX
      HUHXGEUIXIXHUJUMUAIZXCUNZJZXFUDKZXJGZJZSZBIZXCLZMZXJXQALZXJXQXHLZMZXJXQXD
      LZXJXQXILXJXLKZXJXFKZNZXRMZXTXJXEKZYENZMZXSYBYDXRMZYEXRMZNXTYHMZXTYEMZNYG
      YJYKYMYLYNYKYHYMYKXLXEXJXLHXLXEUGXKUKXLULUOYDXRUPUQXTYHURYHYKXTYMYHXJCIZD
      IZUSZUTZDVQCVQYKXTOZCDXJVAYRYSCDYRYKYQXQALZXTYRYKYPYOUSZXKKZUUAXQXCLZMZYT
      YRYDUUBXRUUCYRYDYQXLKUUBXJYQXLVBYOYPXKCTDTVCPYRXPUUAXQXCYRXPYQGZJZSUUAYRX
      OUUFYRXNUUEXJYQVFVDVEYOYPVGQRVHUUDUUCYTUUCUUBUUAXQXCYPYOVIBTZVJVKXQEKZUUC
      YTOUUGYPYOXQAEVLVMVNPXJYQXQAVOVPVRVSYHXTVTWAWBYLYEXTMYNYEXRXTYEXRFXQALZXT
      YEXRFXQXCLZUUIYEXPFXQXCYEXPFSFYEXOFYEXOXFJFYEXNXFYEXJFXJFWCZWDVDWEQVEWHQR
      UUHUUJUUIOUUGXQAEWFVMPYEXJFXQAUUKRVPWGYEXTWIWJWKYDYEXRWSXTYHYEWLWMXMYFXRX
      JXLXFWNWOYAYIXTYAXJXGKZYIYAUULUUHUUGXJXQXGEWTWPXJXEXFWNWJWQWMUUHYCXSOUUGX
      JXQXCEWRVMXJXQAXHXAWMXB $.

    $( Value of the double transposition for a relation on triples.
       (Contributed by Mario Carneiro, 16-Sep-2015.) $)
    tpostpos2 $p |- ( ( Rel F /\ Rel dom F ) -> tpos tpos F = F ) $=
      ( wrel cdm wa ctpos cvv cxp csn cun cin tpostpos wss relrelss ssun1 xpss1
      c0 wceq ax-mp sstr mpan2 sylbi df-ss sylib syl5eq ) ABACBDZAEEAFFGZPHZIZF
      GZJZAAKUEAUILZUJAQUEAUFFGZLZUKAMUMULUILZUKUFUHLUNUFUGNUFUHFORAULUISTUAAUI
      UBUCUD $.

    $( The domain of a transposition.  (Contributed by NM, 10-Sep-2015.) $)
    tposfn2 $p |- ( Rel A -> ( F Fn A -> tpos F Fn `' A ) ) $=
      ( wrel wfun cdm wceq wa ctpos ccnv wfn wi tposfun a1i dmtpos releq eqeq2d
      cnveq 3imtr3d com12 df-fn anim12d 3imtr4g ) ACZBDZBEZAFZGBHZDZUGEZAIZFZGB
      AJUGUJJUCUDUHUFUKUDUHKUCBLMUFUCUKUFUECZUIUEIZFZUCUKULUNKUFBNMUEAOUFUMUJUI
      UEAQPRSUABATUGUJTUB $.

    $( Condition for a surjective transposition.  (Contributed by NM,
       10-Sep-2015.) $)
    tposfo2 $p |- ( Rel A ->
        ( F : A -onto-> B -> tpos F : `' A -onto-> B ) ) $=
      ( wrel wfn crn wceq wa ctpos ccnv wfo tposfn2 adantrd cdm releqd biimparc
      fndm rntpos syl df-fo eqeq1d biimprd expimpd jcad 3imtr4g ) ADZCAEZCFZBGZ
      HZCIZAJZEZUKFZBGZHABCKULBUKKUFUJUMUOUFUGUMUIACLMUFUGUIUOUFUGHZUOUIUPUNUHB
      UPCNZDZUNUHGUGURUFUGUQAACQOPCRSUAUBUCUDABCTULBUKTUE $.

    $( The domain and range of a transposition.  (Contributed by NM,
       10-Sep-2015.) $)
    tposf2 $p |- ( Rel A -> ( F : A --> B -> tpos F : `' A --> B ) ) $=
      ( wrel wf ccnv ctpos crn wfo wfn ffn dffn4 sylib tposfo2 syl5 imp fof syl
      wa wss frn adantl fssd ex ) ADZABCEZAFZBCGZEUEUFSZUGCHZBUHUIUGUJUHIZUGUJU
      HEUEUFUKUFAUJCIZUEUKUFCAJULABCKACLMAUJCNOPUGUJUHQRUFUJBTUEABCUAUBUCUD $.

    $( Condition for an injective transposition.  (Contributed by NM,
       10-Sep-2015.) $)
    tposf12 $p |- ( Rel A -> ( F : A -1-1-> B -> tpos F : `' A -1-1-> B ) ) $=
      ( vx wrel wf1 ccnv ctpos wa cdm cv csn cuni cmpt wceq wb syl f1eq1 mpbird
      3syl ccom simpr relcnv cnvf1o f1of1 simpl dfrel2 sylib f1eq3 mpbii cnveqd
      wf1o mp2b f1dm mpteq1 f1co syl2anc releqd biimparc dftpos2 ex ) AEZABCFZA
      GZBCHZFZVBVCIZVFVDBCDCJZGZDKLGMZNZUAZFZVGVCVDAVKFZVMVBVCUBZVGVNVDADVDVJNZ
      FZVGVDVDGZVPFZVQVDEVDVRVPULVSAUCDVDUDVDVRVPUEUMVGVRAOZVSVQPVGVBVTVBVCUFAU
      GUHVRAVDVPUIQUJVGVIVDOVKVPOVNVQPVGVHAVGVCVHAOVOABCUNZQUKDVIVDVJUOVDAVKVPR
      TSVDABCVKUPUQVGVHEZVEVLOVFVMPVCWBVBVCVHAWAURUSDCUTVDBVEVLRTSVA $.

    $( Condition of a bijective transposition.  (Contributed by NM,
       10-Sep-2015.) $)
    tposf1o2 $p |- ( Rel A ->
      ( F : A -1-1-onto-> B -> tpos F : `' A -1-1-onto-> B ) ) $=
      ( wrel wf1 wfo wa ccnv ctpos wf1o tposf12 tposfo2 anim12d df-f1o 3imtr4g
      ) ADZABCEZABCFZGAHZBCIZEZSBTFZGABCJSBTJPQUARUBABCKABCLMABCNSBTNO $.

    $( The domain and range of a transposition.  (Contributed by NM,
       10-Sep-2015.) $)
    tposfo $p |- ( F : ( A X. B ) -onto-> C ->
              tpos F : ( B X. A ) -onto-> C ) $=
      ( cxp wfo ccnv ctpos wrel wi relxp tposfo2 ax-mp wceq cnvxp foeq2 sylib
      wb ) ABEZCDFZSGZCDHZFZBAEZCUBFZSITUCJABKSCDLMUAUDNUCUERABOUAUDCUBPMQ $.

    $( The domain and range of a transposition.  (Contributed by NM,
       10-Sep-2015.) $)
    tposf $p |- ( F : ( A X. B ) --> C -> tpos F : ( B X. A ) --> C ) $=
      ( cxp wf ccnv ctpos wrel wi relxp tposf2 ax-mp cnvxp feq2i sylib ) ABEZCD
      FZQGZCDHZFZBAEZCTFQIRUAJABKQCDLMSUBCTABNOP $.

    $( Functionality of a transposition.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    tposfn $p |- ( F Fn ( A X. B ) -> tpos F Fn ( B X. A ) ) $=
      ( cxp cvv wf ctpos wfn tposf dffn2 3imtr4i ) ABDZECFBADZECGZFCLHNMHABECIL
      CJMNJK $.

    $( Transposition of the empty set.  (Contributed by NM, 10-Sep-2015.) $)
    tpos0 $p |- tpos (/) = (/) $=
      ( c0 ctpos wfn wceq ccnv wrel rel0 eqid fn0 mpbir tposfn2 mp2 cnv0 fneq2i
      mpbi ) ABZACZPADPAEZCZQAFAACZSGTAADAHAIJAAKLRAPMNOPIO $.

    $( Transposition of a composition.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    tposco $p |- tpos ( F o. G ) = ( F o. tpos G ) $=
      ( vx ccom cvv cxp c0 csn cun cv ccnv cuni cmpt ctpos coass dftpos4 coeq2i
      3eqtr4i ) ABDZCEEFGHICJHKLMZDABTDZDSNABNZDABTOCSPUBUAACBPQR $.

    $( Two ways to say a function is symmetric.  (Contributed by Mario
       Carneiro, 4-Oct-2015.) $)
    tpossym $p |- ( F Fn ( A X. A ) ->
      ( tpos F = F <-> A. x e. A A. y e. A ( x F y ) = ( y F x ) ) ) $=
      ( cxp ctpos wceq cv co wral wb tposfn eqfnov2 mpancom eqcom ovtpos eqeq2i
      wfn bitri 2ralbii syl6bb ) DCCEZRZDFZDGZAHZBHZUDIZUFUGDIZGZBCJACJZUIUGUFD
      IZGZBCJACJUDUBRUCUEUKKCCDLABCCUDDMNUJUMABCCUJUIUHGUMUHUIOUHULUIUFUGDPQSTU
      A $.
  $}

  ${
    tposeqi.1 $e |- F = G $.
    $( Equality theorem for transposition.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    tposeqi $p |- tpos F = tpos G $=
      ( wceq ctpos tposeq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    tposex.1 $e |- F e. _V $.
    $( A transposition is a set.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    tposex $p |- tpos F e. _V $=
      ( cvv wcel ctpos tposexg ax-mp ) ACDAECDBACFG $.
  $}

  ${
    $d x y $.  $d y F $.
    nftpos.1 $e |- F/_ x F $.
    $( Hypothesis builder for transposition.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    nftpos $p |- F/_ x tpos F $=
      ( vy ctpos cvv cxp c0 csn cv ccnv cuni cmpt ccom dftpos4 nfcv nfco nfcxfr
      cun ) ABEBDFFGHISDJIKLMZNDBOABTCATPQR $.
  $}

  ${
    $d a b c x y z $.  $d a b c ph $.
    tposoprab.1 $e |- F = { <. <. x , y >. , z >. | ph } $.
    $( Transposition of a class of ordered triples.  (Contributed by Mario
       Carneiro, 10-Sep-2015.) $)
    tposoprab $p |- tpos F = { <. <. y , x >. , z >. | ph } $=
      ( vb va vc ctpos coprab cv cop wbr tposeqi wceq nfcv nfbr nfv weq dftpos3
      cdm reldmoprab ax-mp nfoprab2 nfoprab1 wa opeq12 ancoms breq1d cbvoprab12
      wrel nfoprab3 breq2 df-br oprabid bitri syl6bb cbvoprab3 eqtri 3eqtri
      wcel ) EJABCDKZJZGLZHLZMZILZVCNZHGIKZACBDKZEVCFOVCUBULVDVJPABCDUCHGIVCUAU
      DVJBLZCLZMZVHVCNZCBIKVKVIVOHGICBCVGVHVCCVGQABCDUECVHQRBVGVHVCBVGQABCDUFBV
      HQRVOHSVOGSHCTZGBTZUGVGVNVHVCVQVPVGVNPVEVFVLVMUHUIUJUKVOACBIDDVNVHVCDVNQA
      BCDUMDVHQRAISIDTVOVNDLZVCNZAVHVRVNVCUNVSVNVRMVCVBAVNVRVCUOABCDUPUQURUSUTV
      A $.
  $}

  ${
    $d x y z $.  $d z A $.  $d z B $.  $d z C $.
    tposmpt2.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( Transposition of a two-argument mapping.  (Contributed by Mario
       Carneiro, 10-Sep-2015.) $)
    tposmpt2 $p |- tpos F = ( y e. B , x e. A |-> C ) $=
      ( vz ctpos cv wcel wceq coprab cmpt2 df-mpt2 ancom anbi1i oprabbii 3eqtri
      wa tposoprab eqtr4i ) FIBJDKZAJCKZTZHJELZTZBAHMBADCENUGABHFFABCDENUDUCTZU
      FTZABHMUGABHMGABHCDEOUIUGABHUHUEUFUDUCPQRSUABAHDCEOUB $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C x y $.
    $( The transposition of a constant operation using the relation
       representation.  (Contributed by SO, 11-Jul-2018.) $)
    tposconst $p |- tpos ( ( A X. B ) X. { C } ) = ( ( B X. A ) X. { C } ) $=
      ( vy vx cxp csn ctpos cmpt2 fconstmpt2 tposmpt2 eqtr4i ) ABFCGZFZHDEBACIB
      AFMFEDABCNEDABCJKDEBACJL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Curry and uncurry
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c curry $.
  $c uncurry $.

  $( Extend class notation to include the currying function. $)
  ccur $a class curry A $.

  $( Extend class notation to include the uncurrying function. $)
  cunc $a class uncurry A $.

  ${
    $d x y z F $.
    $( Define the currying of ` F ` , which splits a function of two arguments
       into a function of the first argument, producing a function over the
       second argument.  (Contributed by Mario Carneiro, 7-Jan-2017.) $)
    df-cur $a |- curry F = ( x e. dom dom F |->
      { <. y , z >. | <. x , y >. F z } ) $.

    $( Define the uncurrying of ` F ` , which takes a function producing
       functions, and transforms it into a two-argument function.  (Contributed
       by Mario Carneiro, 7-Jan-2017.) $)
    df-unc $a |- uncurry F = { <. <. x , y >. , z >. | y ( F ` x ) z } $.
  $}

  ${
    $d C a b $.  $d C z $.  $d F x y z $.  $d V x y z $.  $d X a b $.
    $d X x y z $.  $d Y a b $.  $d Y x y z $.  $d ph a b x y $.  $d ph z $.
    mpt2curryd.f $e |- F = ( x e. X , y e. Y |-> C ) $.
    mpt2curryd.c $e |- ( ph -> A. x e. X A. y e. Y C e. V ) $.
    mpt2curryd.n $e |- ( ph -> Y =/= (/) ) $.
    $( The currying of an operation given in maps-to notation, splitting the
       operation (function of two arguments) into a function of the first
       argument, producing a function over the second argument.  (Contributed
       by AV, 27-Oct-2019.) $)
    mpt2curryd $p |- ( ph -> curry F = ( x e. X |-> ( y e. Y |-> C ) ) ) $=
      ( vz va vb cv cmpt wcel wceq wa weq cdm cop wbr copab df-cur cxp dmmpt2ga
      ccur wral syl dmeqd c0 wne dmxp mpteq1d df-mpt cfv wfun mpt2fun funbrfv2b
      eqtrd wb mp1i adantr eleq2d opelxp syl6bb anbi1d an32 ancom bicomd adantl
      bitri ibar co df-ov csb cmpt2 nfcv nfcsb1v nfcsb csbeq1a sylan9eq cbvmpt2
      eqtri a1i eqcomd equcoms csbeq2dv simpr wi rsp2 impl ovmpt2d eqeq1d eqcom
      syl5eqr bitrd pm5.32da syl5bb 3bitrrd opabbidv syl5req mpteq2dva syl5eq )
      AEUHBEUAZUAZBOZCOZUBZLOZEUCZCLUDZPZBGCHDPZPZBCLEUEAXNBGXMPXPABXGGXMAXGGHU
      FZUAZGAXFXQADFQZCHUIBGUIZXFXQRZJBCGHDEFIUGUJZUKAHULUMXRGRKGHUNUJVAUOABGXM
      XOAXHGQZSZXOXIHQZXKDRZSZCLUDXMCLHDUPYDYGXLCLYDXLXJXFQZXJEUQZXKRZSZYCYESZY
      JSZYGEURXLYKVBYDBCGHDEIUSXJXKEUTVCYDYHYLYJYDYHXJXQQYLYDXFXQXJAYAYCYBVDVEX
      HXIGHVFVGVHYMYEYCYJSZSZYDYGYMYNYESYOYCYEYJVIYNYEVJVMYDYEYNYFYDYESZYNYJYFY
      DYNYJVBZYEYCYQAYCYJYNYCYJVNVKVLVDYPYJDXKRYFYPYIDXKYPYIXHXIEVODXHXIEVPYPMN
      XHXIGHCNOZBMOZDVQZVQZDEFEMNGHUUAVRZRYPEBCGHDVRUUBIBCMNGHDUUAMDVSNDVSBCYRY
      TBYRVSBYSDVTWACYRYTVTBMTZCNTZDYTUUABYSDWBZCYRYTWBWCWDWEWFMBTZNCTZSUUADRYP
      UUFUUGUUACYRDVQZDUUFCYRYTDYTDRBMUUCDYTUUEWGWHWIUUHDRCNUUDDUUHCYRDWBWGWHWC
      VLYDYCYEAYCWJVDYDYEWJAYCYEXSAXTYLXSWKJXSBCGHWLUJWMWNWQWODXKWPVGWRWSWTXAXB
      XCXDVAXE $.

    $d A a x y $.
    mpt2curryvald.y $e |- ( ph -> Y e. W ) $.
    mpt2curryvald.a $e |- ( ph -> A e. X ) $.
    $( The value of a curried operation given in maps-to notation is a function
       over the second argument of the original operation.  (Contributed by AV,
       27-Oct-2019.) $)
    mpt2curryvald $p |- ( ph -> ( curry F ` A )
                                 = ( y e. Y |-> [_ A / x ]_ C ) ) $=
      ( va csb cmpt cvv nfcv ccur mpt2curryd nfcsb1v nfmpt weq csbeq1a mpteq2dv
      cv cbvmpt syl6eq wceq wa csbeq1 adantl wcel mptexg syl fvmptd ) APDCJBPUH
      ZEQZRZCJBDEQZRZIFUAZSAVDBICJERZRPIVARABCEFGIJKLMUBBPIVEVAPVETBCJUTBJTBUSE
      UCUDBPUECJEUTBUSEUFUGUIUJAUSDUKZULCJUTVBVFUTVBUKABUSDEUMUNUGOAJHUOVCSUONC
      JVBHUPUQUR $.
  $}

  ${
    $d A a b x y $.  $d B a b x y $.  $d C a b $.  $d F a b $.  $d V a b x y $.
    $d X a b x y $.  $d Y a b x y $.  $d ph a b x y $.
    fvmpt2curryd.f $e |- F = ( x e. X , y e. Y |-> C ) $.
    fvmpt2curryd.c $e |- ( ph -> A. x e. X A. y e. Y C e. V ) $.
    fvmpt2curryd.y $e |- ( ph -> Y e. W ) $.
    fvmpt2curryd.a $e |- ( ph -> A e. X ) $.
    fvmpt2curryd.b $e |- ( ph -> B e. Y ) $.
    $( The value of the value of a curried operation given in maps-to notation
       is the operation value of the original operation.  (Contributed by AV,
       27-Oct-2019.) $)
    fvmpt2curryd $p |- ( ph -> ( ( curry F ` A ) ` B ) = ( A F B ) ) $=
      ( vb va csb wcel cv cmpt cfv ccur co wceq csbcom csbco csbeq2i eqtri wral
      3eqtri wa nfcsb1v nfel1 csbeq1a eleq1d rspc2 imp syl21anc syl5eqel fvmpts
      eqid syl2anc cmpt2 nfcv nfcsb weq sylan9eq cbvmpt2 ralrimivva c0 wne ne0i
      mpan9 syl mpt2curryvald fveq1d csbid eqtr2i csbeq2dv csbeq1 adantr adantl
      a1i 3eqtr3g eqtrd eqidd nfv nfcxfr ovmpt2dxf 3eqtr4d ) AEQKRDCQUAZBRUAZFS
      ZSZSZUBZUCZQEWQSZEDGUDUCZUCDEGUEAEKTZWTHTWSWTUFPAWTCEBDFSZSZHWTRDQEWPSZSR
      DCEWOSZSZXDQREDWPUGRDXEXFCQEWOUHUIXGCERDWOSZSXDRCDEWOUGCEXHXCBRDFUHUIUJUL
      ZADJTZXBFHTZCKUKBJUKZXDHTZOPMXJXBUMXLXMXKXMXCHTBCDEJKBXCHBDFUNUOCXDHCEXCU
      NZUOBUAZDUFZFXCHBDFUPUQCUAZEUFZXCXDHCEXCUPUQURUSUTVAZQEWQKWRHWRVCVBVDAEXA
      WRARQDWPGHIJKGBCJKFVEZRQJKWPVELBCRQJKFWPRFVFQFVFBCWMWOBWMVFBWNFUNZVGZCWMW
      OUNZBRVHZCQVHZFWOWPBWNFUPZCWMWOUPZVIVJUJAWPHTZRQJKAXLWNJTWMKTUMYHMXKYHWOH
      TBCWNWMJKBWOHYAUOCWPHYCUOYDFWOHYFUQYEWOWPHYGUQURVOVKAXBKVLVMPKEVNVPNOVQVR
      ABCDEJKFWTGKHGXTUFALWEAXPXRUMZFQXQRXOWPSZSZWTARXOWOSZRXOQXQWPSZSFYKARXOWO
      YMWOYMUFAYMCXQWOSWOCQXQWOUHCWOVSVTWEWAYLBXOFSFBRXOFUHBFVSUJRQXOXQWPUGWFYI
      YKQXQWQSZWTYIQXQYJWQXPYJWQUFXRRXODWPWBWCWAXRYNWTUFXPQXQEWQWBWDWGVIAXPUMKW
      HOPXSABWIACWICDVFBEVFZBQEWQYOBRDWPBDVFYBVGVGCWTXDXIXNWJWKWL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Undefined values
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Undef $.

  $( Extend class notation with undefined value function. $)
  cund $a class Undef $.

  $( Define the undefined value function, whose value at set ` s ` is
     guaranteed not to be a member of ` s ` (see ~ pwuninel ).  (Contributed by
     NM, 15-Sep-2011.) $)
  df-undef $a |- Undef = ( s e. _V |-> ~P U. s ) $.

  $( Direct proof of ~ pwuninel avoiding functions and thus several ZF axioms.
     (Contributed by Stefan O'Rear, 22-Feb-2015.) $)
  pwuninel2 $p |- ( U. A e. V -> -. ~P U. A e. A ) $=
    ( cuni wcel cpw wss pwnss elssuni nsyl ) ACZBDJEZJFKADJBGKAHI $.

  $( The power set of the union of a set does not belong to the set.  This
     theorem provides a way of constructing a new set that doesn't belong to a
     given set.  See also ~ pwuninel2 .  (Contributed by NM, 27-Jun-2008.)
     (Proof shortened by Mario Carneiro, 23-Dec-2016.) $)
  pwuninel $p |- -. ~P U. A e. A $=
    ( cuni cpw wcel wn cvv pwexr pwuninel2 syl id pm2.61i ) ABZCADZMEZMLFDNLAGA
    FHINJK $.

  ${
    $d s S $.
    $( Value of the undefined value function.  Normally we will not reference
       the explicit value but will use ~ undefnel instead.  (Contributed by NM,
       15-Sep-2011.)  (Revised by Mario Carneiro, 24-Dec-2016.) $)
    undefval $p |- ( S e. V -> ( Undef ` S ) = ~P U. S ) $=
      ( vs wcel cvv cuni cpw cund cfv wceq elex uniexg pwexg syl cv unieq pweqd
      df-undef fvmptg syl2anc ) ABDZAEDAFZGZEDZAHIUCJABKUAUBEDUDABLUBEMNCACOZFZ
      GUCEEHUEAJUFUBUEAPQCRST $.
  $}

  $( The undefined value generated from a set is not a member of the set.
     (Contributed by NM, 15-Sep-2011.) $)
  undefnel2 $p |- ( S e. V -> -. ( Undef ` S ) e. S ) $=
    ( wcel cund cfv cuni cpw pwuninel undefval eleq1d mtbiri ) ABCZADEZACAFGZAC
    AHLMNAABIJK $.

  $( The undefined value generated from a set is not a member of the set.
     (Contributed by NM, 15-Sep-2011.) $)
  undefnel $p |- ( S e. V -> ( Undef ` S ) e/ S ) $=
    ( wcel cund cfv wn wnel undefnel2 df-nel sylibr ) ABCADEZACFKAGABHKAIJ $.
  $( The undefined value generated from a set is not empty.  (Contributed by
     NM, 3-Sep-2018.) $)
  undefne0 $p |- ( S e. V -> ( Undef ` S ) =/= (/) ) $=
    ( wcel cund cfv cuni cpw c0 undefval wne pwne0 a1i eqnetrd ) ABCZADEAFZGZHA
    BIPHJNOKLM $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Well-founded recursion
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c wrecs $.

  $( Declare syntax for the well-founded recursive function generator. $)
  cwrecs $a class wrecs ( R , A , F ) $.

  ${
    $d R f x y $.  $d A f x y $.  $d F f x y $.
    $( Here we define the well-founded recursive function generator.  This
       function takes the usual expressions from recursion theorems and forms a
       unified definition.  Specifically, given a function ` F ` , a
       relationship ` R ` , and a base set ` A ` , this definition generates a
       function ` G = wrecs ( R , A , F ) ` that has property that, at any
       point ` x e. A ` ,
       ` ( G `` x ) = ( F `` ( G | `` Pred ( R , A , x ) ) ) ` .  See ~ wfr1 ,
       ~ wfr2 , and ~ wfr3 .  (Contributed by Scott Fenton, 7-Jun-2018.)
       (New usage is discouraged.) $)
    df-wrecs $a |- wrecs ( R , A , F ) = U. { f | E. x ( f Fn x /\ ( x C_ A /\
               A. y e. x Pred ( R , A , y ) C_ x ) /\
               A. y e. x ( f ` y ) = ( F ` ( f |` Pred ( R , A , y ) ) ) ) } $.
  $}

  ${
    $d R f x y $.  $d S f x y $.  $d A f x y $.  $d B f x y $.  $d F f x y $.
    $d G f x y $.
    $( General equality theorem for the well-founded recursive function
       generator.  (Contributed by Scott Fenton, 7-Jun-2018.) $)
    wrecseq123 $p |- ( ( R = S /\ A = B /\ F = G ) ->
                     wrecs ( R , A , F ) = wrecs ( S , B , G ) ) $=
      ( vf vx vy wceq w3a cv wss cpred wral wa cfv cres wex cab wfn cuni cwrecs
      wb sseq2 3ad2ant2 predeq1 predeq2 sylan9eq 3adant3 sseq1d ralbidv anbi12d
      reseq2d fveq12d eqeq2d 3anbi23d exbidv abbidv unieqd df-wrecs 3eqtr4g
      simp3 ) CDJZABJZEFJZKZGLZHLZUAZVIAMZACILZNZVIMZIVIOZPZVLVHQZVHVMRZEQZJZIV
      IOZKZHSZGTZUBVJVIBMZBDVLNZVIMZIVIOZPZVQVHWFRZFQZJZIVIOZKZHSZGTZUBACEUCBDF
      UCVGWDWPVGWCWOGVGWBWNHVGVPWIWAWMVJVGVKWEVOWHVEVDVKWEUDVFABVIUEUFVGVNWGIVI
      VGVMWFVIVDVEVMWFJVFVDVEVMADVLNWFACDVLUGABDVLUHUIZUJUKULUMVGVTWLIVIVGVSWKV
      QVGVRWJEFVDVEVFVCVDVEVRWJJVFVDVEPVMWFVHWQUNUJUOUPULUQURUSUTHIACGEVAHIBDGF
      VAVB $.
  $}

  ${
    $d R f y z $.  $d A f y z $.  $d F f y z $.  $d x f y z $.
    nfwrecs.1 $e |- F/_ x R $.
    nfwrecs.2 $e |- F/_ x A $.
    nfwrecs.3 $e |- F/_ x F $.
    $( Bound-variable hypothesis builder for the well-founded recursive
       function generator.  (Contributed by Scott Fenton, 9-Jun-2018.) $)
    nfwrecs $p |- F/_ x wrecs ( R , A , F ) $=
      ( vf vy vz cwrecs cv wfn wss cpred wral cfv nfcv nfss nfral cres wceq w3a
      wa wex cab cuni df-wrecs nfv nfpred nfan nfres nffv nfeq2 nf3an nfex nfab
      nfuni nfcxfr ) ABCDKHLZILZMZVABNZBCJLZOZVANZJVAPZUDZVDUTQZUTVEUAZDQZUBZJV
      APZUCZIUEZHUFZUGIJBCHDUHAVPVOAHVNAIVBVHVMAVBAUIVCVGAAVABAVARZFSVFAJVAVQAV
      EVAABCVDEFAVDRUJZVQSTUKVLAJVAVQAVIVKAVJDGAUTVEAUTRVRULUMUNTUOUPUQURUS $.
  $}

  $( Equality theorem for the well-founded recursive function generator.
     (Contributed by Scott Fenton, 7-Jun-2018.) $)
  wrecseq1 $p |- ( R = S -> wrecs ( R , A , F ) = wrecs ( S , A , F ) ) $=
    ( wceq cwrecs eqid wrecseq123 mp3an23 ) BCEAAEDDEABDFACDFEAGDGAABCDDHI $.

  $( Equality theorem for the well-founded recursive function generator.
     (Contributed by Scott Fenton, 7-Jun-2018.) $)
  wrecseq2 $p |- ( A = B -> wrecs ( R , A , F ) = wrecs ( R , B , F ) ) $=
    ( wceq cwrecs eqid wrecseq123 mp3an13 ) CCEABEDDEACDFBCDFECGDGABCCDDHI $.

  $( Equality theorem for the well-founded recursive function generator.
     (Contributed by Scott Fenton, 7-Jun-2018.) $)
  wrecseq3 $p |- ( F = G -> wrecs ( R , A , F ) = wrecs ( R , A , G ) ) $=
    ( wceq cwrecs eqid wrecseq123 mp3an12 ) BBEAAECDEABCFABDFEBGAGAABBCDHI $.

  ${
    $d A w y z $.  $d F w y z $.  $d G w y z $.  $d H w y z $.  $d R w y z $.
    $( Functions defined by well-founded recursion are identical up to
       relation, domain, and characteristic function.  (Contributed by Scott
       Fenton, 11-Feb-2011.) $)
    wfr3g $p |- ( ( ( R We A /\ R Se A ) /\ ( F Fn A /\
                 A. y e. A ( F ` y ) = ( H ` ( F |` Pred ( R , A , y ) ) ) ) /\
                     ( G Fn A /\
                 A. y e. A ( G ` y ) = ( H ` ( G |` Pred ( R , A , y ) ) ) ) )
                     -> F = G ) $=
      ( vz vw wa wfn cv cfv cpred cres wceq wral wi fveq2 eqeq12d fveq2d r19.26
      wwe wse w3a imbi2d wcel ra4v predeq3 reseq2d anbi12d rspcva ancoms ex syl
      eqtr3 expimpd wss wb predss fvreseq mpan2 biimpar eqcomd syl11 expd com23
      impd a2d syl5 wfis2g r19.21v sylib com12 sylan2br an4s eqid jctil eqfnfv2
      3impib ad2ant2r 3adant1 mpbird ) BCUBBCUCIZDBJZAKZDLZDBCWEMZNZFLZOZABPZIZ
      EBJZWEELZEWGNZFLZOZABPZIZUDZDEOZBBOZGKZDLZXCELZOZGBPZIZWTXGXBWCWLWSXGWLWS
      IWCXGWDWMWKWRWCXGQZWKWRIWDWMIZWJWQIZABPZXIWJWQABUAWCXJXLIZXGWCXMXFQZGBPXM
      XGQXNXMHKZDLZXOELZOZQZGHBCXCXOOZXFXRXMXTXDXPXEXQXCXODRXCXOERSUEXSHBCXCMZP
      XMXRHYAPZQXCBUFZXNXMXRHYAUGYCXMYBXFYCXJXLYBXFQZYCXLXJYDYCXLXJYDQZYCXLIXDD
      YANZFLZOZXEEYANZFLZOZIZYEXKYLAXCBWEXCOZWJYHWQYKYMWFXDWIYGWEXCDRYMWHYFFYMW
      GYADBCWEXCUHZUITSYMWNXEWPYJWEXCERYMWOYIFYMWGYAEYNUITSUJUKYLXJYBXFYJYGOZYL
      XFXJYBIZYOYHYKXFYOYHIXDYJOZYKXFQYHYOYQXDYJYGUOULYQYKXFXDXEYJUOUMUNUPYPYIY
      FFYPYFYIXJYFYIOZYBXJYABUQYRYBURBCXCUSHBYADEUTVAVBVCTVDVEUNUMVFVGVHVIVJXMX
      FGBVKVLVMVNVOVMVSBVPVQWLWSXAXHURZWCWDWMYSWKWRGBBDEVRVTWAWB $.
  $}

  ${
    $d A f g w x y z $.  $d F f g w x y z $.  $d R f g w x y z $.
    wfrlem1.1 $e |- B = { f | E. x ( f Fn x /\ ( x C_ A /\
               A. y e. x Pred ( R , A , y ) C_ x ) /\
               A. y e. x ( f ` y ) = ( F ` ( f |` Pred ( R , A , y ) ) ) ) } $.
    $( Lemma for well-founded recursion.  The final item we are interested in
       is the union of acceptable functions ` B ` .  This lemma just changes
       bound variables for later use.  (Contributed by Scott Fenton,
       21-Apr-2011.) $)
    wfrlem1 $p |- B = { g | E. z ( g Fn z /\ ( z C_ A /\
               A. w e. z Pred ( R , A , w ) C_ z ) /\
               A. w e. z ( g ` w ) = ( F ` ( g |` Pred ( R , A , w ) ) ) ) } $=
      ( cv wfn wss wral cfv cres wceq w3a wex cpred cab weq fneq1 reseq1 fveq2d
      fveq1 eqeq12d ralbidv 3anbi13d exbidv fneq2 sseq1 sseq2 raleqbi1dv sseq1d
      predeq3 cbvralv syl6bb anbi12d raleq fveq2 reseq2d 3anbi123d cbvexv eqtri
      wa cbvabv ) FHLZALZMZVJENZEGBLZUAZVJNZBVJOZVGZVMVIPZVIVNQZJPZRZBVJOZSZATZ
      HUBILZCLZMZWFENZEGDLZUAZWFNZDWFOZVGZWIWEPZWEWJQZJPZRZDWFOZSZCTZIUBKWDWTHI
      HIUCZWDWEVJMZVQVMWEPZWEVNQZJPZRZBVJOZSZATWTXAWCXHAXAVKXBWBXGVQVJVIWEUDXAW
      AXFBVJXAVRXCVTXEVMVIWEUGXAVSXDJVIWEVNUEUFUHUIUJUKXHWSACACUCZXBWGVQWMXGWRV
      JWFWEULXIVLWHVPWLVJWFEUMXIVPVNWFNZBWFOWLVOXJBVJWFVJWFVNUNUOXJWKBDWFBDUCZV
      NWJWFEGVMWIUQZUPURUSUTXIXGXFBWFOWRXFBVJWFVAXFWQBDWFXKXCWNXEWPVMWIWEVBXKXD
      WOJXKVNWJWEXLVCUFUHURUSVDVEUSVHVF $.

    $( Lemma for well-founded recursion.  An acceptable function is a function.
       (Contributed by Scott Fenton, 21-Apr-2011.) $)
    wfrlem2 $p |- ( g e. B -> Fun g ) $=
      ( vz vw cv wcel wfn wss cpred wral wa cfv cres wceq w3a wex wfrlem1 fnfun
      wfun abeq2i 3ad2ant1 exlimiv sylbi ) GLZDMUKJLZNZULCOCEKLZPZULOKULQRZUNUK
      SUKUOTHSUAKULQZUBZJUCZUKUFZUSGDABJKCDEFGHIUDUGURUTJUMUPUTUQULUKUEUHUIUJ
      $.

    $( Lemma for well-founded recursion.  An acceptable function's domain is a
       subset of ` A ` .  (Contributed by Scott Fenton, 21-Apr-2011.) $)
    wfrlem3 $p |- ( g e. B -> dom g C_ A ) $=
      ( vz vw cv wcel wfn wss cpred wral wa cfv cres w3a wex cdm wfrlem1 abeq2i
      wceq fndm sseq1d biimpar adantrr 3adant3 exlimiv sylbi ) GLZDMUNJLZNZUOCO
      ZCEKLZPZUOOKUOQZRZURUNSUNUSTHSUFKUOQZUAZJUBZUNUCZCOZVDGDABJKCDEFGHIUDUEVC
      VFJUPVAVFVBUPUQVFUTUPVFUQUPVEUOCUOUNUGUHUIUJUKULUM $.

    $d G f x y z w $.  $d G g $.
    wfrlem3a.2 $e |- G e. _V $.
    $( Lemma for well-founded recursion.  Show membership in the class of
       acceptable functions.  (Contributed by Scott Fenton, 31-Jul-2020.) $)
    wfrlem3a $p |- ( G e. B <-> E. z ( G Fn z /\ ( z C_ A /\
               A. w e. z Pred ( R , A , w ) C_ z ) /\
               A. w e. z ( G ` w ) = ( F ` ( G |` Pred ( R , A , w ) ) ) ) ) $=
      ( vg cv wfn wss wral cfv cres wceq cpred wa w3a fneq1 fveq1 reseq1 fveq2d
      wex eqeq12d ralbidv 3anbi13d exbidv wfrlem1 elab2 ) MNZCNZOZUPEPEGDNZUAZU
      PPDUPQUBZURUORZUOUSSZIRZTZDUPQZUCZCUHJUPOZUTURJRZJUSSZIRZTZDUPQZUCZCUHMJF
      LUOJTZVFVMCVNUQVGVEVLUTUPUOJUDVNVDVKDUPVNVAVHVCVJURUOJUEVNVBVIIUOJUSUFUGU
      IUJUKULABCDEFGHMIKUMUN $.
  $}

  ${
    $d A a b c f g h x y $.  $d B a $.  $d F a b c f g h x y $.
    $d R a b c f g h x y $.
    wfrlem4.1 $e |- R We A $.
    wfrlem4.2 $e |- B = { f | E. x ( f Fn x /\ ( x C_ A /\
               A. y e. x Pred ( R , A , y ) C_ x ) /\
               A. y e. x ( f ` y ) = ( F ` ( f |` Pred ( R , A , y ) ) ) ) } $.
    $( Lemma for well-founded recursion.  Properties of the restriction of an
       acceptable function to the domain of another one.  (Contributed by Scott
       Fenton, 21-Apr-2011.) $)
    wfrlem4 $p |- ( ( g e. B /\ h e. B ) ->
                     ( ( g |` ( dom g i^i dom h ) ) Fn ( dom g i^i dom h ) /\
                       A. a e. ( dom g i^i dom h )
                        ( ( g |` ( dom g i^i dom h ) ) ` a ) =
                        ( F ` ( ( g |` ( dom g i^i dom h ) ) |`
                              Pred ( R , ( dom g i^i dom h ) , a ) ) ) ) ) $=
      ( vb vc wcel wa cfv wceq wral wss cv cdm cin cres wfn cpred wfrlem2 funfn
      wfun sylib fnresin1 syl adantr inss1 sseli w3a wex wi wfrlem1 abeq2i fndm
      raleqdv biimpar rsp 3adant2 exlimiv sylbi imp adantlr fvres adantl resres
      syl5 predss sseqin2 mpbi 3an6 2exbii eeanv bitri ssinss1 ad2antrr syl5com
      nfra1 nfan inss2 anim12d biimpi syl6com ralrimi ad2ant2l jca wb ineqan12d
      ssin sseq1 sseq2 raleqbi1dv anbi12d imbi2d mpbiri 3adant3 exlimivv sylbir
      syl2anb simpr preddowncl sylc syl5eq reseq2d fveq2d 3eqtr4d ralrimiva ) G
      UAZDOZHUAZDOZPZXNXNUBZXPUBZUCZUDZYAUEZJUAZYBQZYBYAEYDUFZUDZIQZRZJYASXOYCX
      QXOXNXSUEZYCXOXNUIYJABCDEFGILUGXNUHUJXSXTXNUKULUMXRYIJYAXRYDYAOZPZYDXNQZX
      NCEYDUFZUDZIQZYEYHXOYKYMYPRZXQXOYKYQYKYDXSOZXOYQYAXSYDXSXTUNUOXOXNMUAZUEZ
      YSCTZYNYSTZJYSSZPZYQJYSSZUPZMUQZYRYQURZUUGGDABMJCDEFGILUSUTZUUFUUHMYTUUEU
      UHUUDYTUUEPYQJXSSZUUHYTUUJUUEYTYQJXSYSYSXNVAZVBVCYQJXSVDULVEVFVGVMVHVIYKY
      EYMRXRYDYAXNVJVKYLYGYOIYLYGXNYAYFUCZUDYOXNYAYFVLYLUULYNXNYLUULYFYNYFYATUU
      LYFRYAEYDVNYFYAVOVPYLYACTZYNYATZJYASZPZYKYFYNRXRUUPYKXOUUGXPNUAZUEZUUQCTZ
      YNUUQTZJUUQSZPZYDXPQXPYNUDIQRJUUQSZUPZNUQZUUPXQUUIUVEHDABNJCDEFHILUSUTUUG
      UVEPZYTUURPZUUDUVBPZUUEUVCPZUPZNUQMUQZUUPUVKUUFUVDPZNUQMUQUVFUVJUVLMNYTUU
      RUUDUVBUUEUVCVQVRUUFUVDMNVSVTUVJUUPMNUVGUVHUUPUVIUVGUVHUUPUVGUVHUUPURZUVH
      YSUUQUCZCTZYNUVNTZJUVNSZPZURZUVHUVOUVQUUAUVOUUCUVBYSUUQCWAWBUUCUVAUVQUUAU
      USUUCUVAPZUVPJUVNUUCUVAJUUBJYSWDUUTJUUQWDWEYDUVNOZUVTUUBUUTPZUVPUWAUUCUUB
      UVAUUTUWAYDYSOUUCUUBUVNYSYDYSUUQUNUOUUBJYSVDWCUWAYDUUQOUVAUUTUVNUUQYDYSUU
      QWFUOUUTJUUQVDWCWGUWBUVPYNYSUUQWOWHWIWJWKWLUVGYAUVNRZUVMUVSWMYTUURXSYSXTU
      UQUUKUUQXPVAWNUWCUUPUVRUVHUWCUUMUVOUUOUVQYAUVNCWPUUNUVPJYAUVNYAUVNYNWQWRW
      SWTULXAVHXBXCXDXEUMXRYKXFJCYAEYDXGXHXIXJXIXKXLXMWL $.
  $}

  ${
    $d A a f g h x y $.  $d B a $.  $d F a f g h x y $.  $d R a f g h x y $.
    $d g h u v x $.
    wfrlem5.1 $e |- R We A $.
    wfrlem5.2 $e |- R Se A $.
    wfrlem5.3 $e |- B = { f | E. x ( f Fn x /\ ( x C_ A /\
               A. y e. x Pred ( R , A , y ) C_ x ) /\
               A. y e. x ( f ` y ) = ( F ` ( f |` Pred ( R , A , y ) ) ) ) } $.
    $( Lemma for well-founded recursion.  The values of two acceptable
       functions agree within their domains.  (Contributed by Scott Fenton,
       21-Apr-2011.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    wfrlem5 $p |- ( ( g e. B /\ h e. B ) ->
                     ( ( x g u /\ x h v ) -> u = v ) ) $=
      ( va cv wa cres wceq cfv wbr cdm cin wcel vex breldm anim12i elin anandir
      sylibr brres anbi12i sylbb2 mpdan wwe wse wfn cpred wral wss wfrlem3 wess
      ssinss1 mpi sess2 adantr wfrlem4 ancoms incom reseq2i fneq1i fneq2i bitri
      jca 3syl fveq1i predeq2 ax-mp reseq12i fveq2i eqeq12i wfr3g syl3anc breqd
      raleqbii biimprd wfun wal wfrlem2 funres wrel dffun2 simprbi 2sp sps 4syl
      wi sylan2d syl5 ) APZDPZIPZUAZWTCPZJPZUAZQZWTXAXBXBUBZXEUBZUCZRZUAZWTXDXE
      XJRZUAZQZXBFUDZXEFUDZQZXAXDSZXGWTXJUDZXOXGWTXHUDZWTXIUDZQXTXCYAXFYBWTXAXB
      AUEZDUEZUFWTXDXEYCCUEZUFUGWTXHXIUHUJXGXTQXCXTQZXFXTQZQXOXCXFXTUIXLYFXNYGW
      TXAXBXJYDUKWTXDXEXJYEUKULUMUNXRXNWTXDXKUAZXLXSXRYHXNXRXKXMWTXDXRXJGUOZXJG
      UPZQZXKXJUQOPZXKTXKXJGYLURZRKTSOXJUSQXMXJUQZYLXMTZXMYMRZKTZSZOXJUSZQZXKXM
      SXPYKXQXPXHEUTXJEUTZYKABEFGHIKNVAXHXIEVCUUAYIYJUUAEGUOYILXJEGVBVDUUAEGUPY
      JMXJEGVEVDVNVOVFABEFGHIJKOLNVGXRXEXIXHUCZRZUUBUQZYLUUCTZUUCUUBGYLURZRZKTZ
      SZOUUBUSZQZYTXQXPUUKABEFGHJIKOLNVGVHYNUUDYSUUJYNUUCXJUQUUDXJXMUUCXJUUBXEX
      HXIVIZVJZVKXJUUBUUCUULVLVMYRUUIOXJUUBUULYOUUEYQUUHYLXMUUCUUMVPYPUUGKXMUUC
      YMUUFUUMXJUUBSYMUUFSUULXJUUBGYLVQVRVSVTWAWEULUJOXJGXKXMKWBWCWDWFXPXLYHQXS
      WQZXQXPXBWGXKWGZUUNCWHDWHZAWHZUUNABEFGHIKNWIXJXBWJUUOXKWKUUQADCXKWLWMUUPU
      UNAUUNDCWNWOWPVFWRWS $.
  $}

  ${
    $d A f g w x y z $.  $d R f g w x y z $.  $d G f g w x y z $.
    $d X f g w x y z $.
    wfrlem6.1 $e |- F = wrecs ( R , A , G ) $.
    $( The well-founded recursion generator generates a relationship.
       (Contributed by Scott Fenton, 8-Jun-2018.) $)
    wfrrel $p |- Rel F $=
      ( vf vx vy vg wrel cv wfn wss cpred wral wa cfv cres wceq w3a cuni reluni
      wex cab wcel wfun wfrlem2 funrel syl mprgbir cwrecs df-wrecs eqtri releqi
      eqid mpbir ) CJFKZGKZLURAMABHKZNZURMHUROPUSUQQUQUTRDQSHUROTGUCFUDZUAZJZVC
      IKZJZIVAIVAUBVDVAUEVDUFVEGHAVABFIDVAUOUGVDUHUIUJCVBCABDUKVBEGHABFDULUMUNU
      P $.

    $( The domain of the well-founded recursion generator is a subclass of
       ` A ` .  (Contributed by Scott Fenton, 21-Apr-2011.) $)
    wfrdmss $p |- dom F C_ A $=
      ( vg vf vx vy cdm cv wfn wss cpred wral wa cfv cres wceq eqtri w3a cwrecs
      wex cab ciun cuni df-wrecs dmeqi dmuni iunss eqid wfrlem3 mprgbir eqsstri
      ) CJZFGKZHKZLUQAMABIKZNZUQMIUQOPURUPQUPUSRDQSIUQOUAHUCGUDZFKJZUEZAUOUTUFZ
      JVBCVCCABDUBVCEHIABGDUGTUHFUTUITVBAMVAAMFUTFUTVAAUJHIAUTBGFDUTUKULUMUN $.

    $( Lemma for well-founded recursion.  Compute the prececessor class for an
       ` R ` minimal element of ` ( A \ dom F ) ` .  (Contributed by Scott
       Fenton, 21-Apr-2011.) $)
    wfrlem8 $p |- ( Pred ( R , ( A \ dom F ) , X ) = (/) <->
                   Pred ( R , A , X ) = Pred ( R , dom F , X ) ) $=
      ( cpred cdm wss wa cdif c0 wceq wfrdmss predpredss biantru preddif eqeq1i
      ax-mp ssdif0 bitr4i eqss 3bitr4i ) ABEGZCHZBEGZIZUGUFUDIZJAUEKBEGZLMZUDUF
      MUHUGUEAIUHABCDFNUEABEOSPUJUDUFKZLMUGUIUKLAUEBEQRUDUFTUAUDUFUBUC $.

    $( Given ` F = wrecs ( R , A , X ) /\ X e. dom F ` , then its predecessor
       class is a subset of ` dom F ` .  (Contributed by Scott Fenton,
       21-Apr-2011.) $)
    wfrdmcl $p |- ( X e. dom F -> Pred ( R , A , X ) C_ dom F ) $=
      ( vg vf vx vy vz vw cdm wcel cpred cv wss wral wa cfv cres wceq ciun wrex
      wfn w3a wex cab cuni cwrecs df-wrecs eqtri dmeqi dmuni eleq2i eliun bitri
      wi eqid wfrlem1 abeq2i predeq3 sseq1d rspccv adantl wb fndm eleq2d sseq2d
      imbi12d adantr mpbird adantrl 3adant3 exlimiv sylbi reximia syl syl6sseqr
      ssiun ) ECMZNZABEOZGHPZIPZUEWEAQABJPZOZWEQJWERSWFWDTWDWGUADTUBJWERUFIUGHU
      HZGPZMZUCZWAWBEWJNZGWHUDZWCWKQZWBEWKNWMWAWKEWAWHUIZMWKCWOCABDUJWOFIJABHDU
      KULUMGWHUNULZUOGEWHWJUPUQWMWCWJQZGWHUDWNWLWQGWHWIWHNWIKPZUEZWRAQZABLPZOZW
      RQZLWRRZSZXAWITWIXBUADTUBLWRRZUFZKUGZWLWQURZXHGWHIJKLAWHBHGDWHUSUTVAXGXIK
      WSXEXIXFWSXDXIWTWSXDSXIEWRNZWCWRQZURZXDXLWSXCXKLEWRXAEUBXBWCWRABXAEVBVCVD
      VEWSXIXLVFXDWSWLXJWQXKWSWJWREWRWIVGZVHWSWJWRWCXMVIVJVKVLVMVNVOVPVQGWHWJWC
      VTVRVPWPVS $.
  $}

  ${
    $d A w z $.  $d F w $.  $d R w $.
    wfrlem10.1 $e |- R We A $.
    wfrlem10.2 $e |- F = wrecs ( R , A , G ) $.
    $( Lemma for well-founded recursion.  When ` z ` is an ` R ` minimal
       element of ` ( A \ dom F ) ` , then its predecessor class is equal to
       ` dom F ` .  (Contributed by Scott Fenton, 21-Apr-2011.) $)
    wfrlem10 $p |- ( ( z e. ( A \ dom F ) /\
                     Pred ( R , ( A \ dom F ) , z ) = (/) ) ->
                   Pred ( R , A , z ) = dom F ) $=
      ( vw cv cpred wceq wcel wss wa wbr wn wb ax-mp cvv vex cdm cdif c0 biimpi
      wfrlem8 predss a1i simpr weq eldifn eleq1 notbid syl5ibrcom con2d wfrdmcl
      imp adantl wi ssel con3d syl5com adantr eldifi elpredg ancoms sylan mtbid
      mpd w3o wfrdmss sseli wor wwe weso solin syl2anr ecase23d elpred sylanbrc
      mpan ex ssrdv eqssd sylan9eqr ) BDUAZUBZCAIZJUCKZWGWFLZBCWGJZWECWGJZWEWHW
      JWKKBCDEWGGUEUDWIWKWEWKWEMWIWECWGUFUGWIHWEWKWIHIZWELZWLWKLZWIWMNZWMWLWGCO
      ZWNWIWMUHWOWPHAUIZWGWLCOZWIWMWQPWIWQWMWIWMPWQWGWELZPZWGBWEUJZWQWMWSWLWGWE
      UKULUMUNUPWOWGBCWLJZLZWRWOXBWEMZXCPZWMXDWIBCDEWLGUOUQWIXDXEURWMWIWTXDXEXA
      XDXCWSXBWEWGUSUTVAVBVHWIWGBLZWMXCWRQZWGBWEVCZWMXFXGBWECWLWGVDVEVFVGWMWLBL
      ZXFWPWQWRVIZWIWEBWLBCDEGVJVKXHBCVLZXIXFNXJBCVMXKFBCVNRBWLWGCVOVTVPVQWGSLW
      NWMWPNQATWESCWGWLHTVRRVSWAWBWCWD $.
  $}

  ${
    $d A f g h u v x y z $.  $d F u v x z $.  $d G f g h x y z $.
    $d R f g h x y z $.
    wfrfun.1 $e |- R We A $.
    wfrfun.2 $e |- R Se A $.
    wfrfun.3 $e |- F = wrecs ( R , A , G ) $.
    $( The well-founded function generator generates a function.  (Contributed
       by Scott Fenton, 21-Apr-2011.)  (Revised by Mario Carneiro,
       26-Jun-2015.) $)
    wfrfun $p |- Fun F $=
      ( vx vu vv vg vf vy vh cv wbr wa wex wcel df-br wfun wrel weq wal wfn wss
      wi wfrrel cpred wral cfv cres wceq w3a cab cop cuni cwrecs df-wrecs eqtri
      eleq2i eluni bitri anbi1i exbii 3bitr4i anbi12i eeanv bitr4i eqid wfrlem5
      impcom an4s exlimivv sylbi ax-gen gen2 dffun2 mpbir2an ) CUACUBHOZIOZCPZV
      TJOZCPZQZIJUCZUGZJUDZIUDHUDABCDGUHWHHIWGJWEVTWAKOZPZWILOZVTUEVTAUFABMOZUI
      ZVTUFMVTUJQWLWKUKWKWMULDUKUMMVTUJUNHRLUOZSZQZVTWCNOZPZWQWNSZQZQZNRKRZWFWE
      WPKRZWTNRZQXBWBXCWDXDVTWAUPZCSZXEWISZWOQZKRZWBXCXFXEWNUQZSXICXJXECABDURXJ
      GHMABLDUSUTZVAKXEWNVBVCVTWACTWPXHKWJXGWOVTWAWITVDVEVFVTWCUPZCSZXLWQSZWSQZ
      NRZWDXDXMXLXJSXPCXJXLXKVANXLWNVBVCVTWCCTWTXONWRXNWSVTWCWQTVDVEVFVGWPWTKNV
      HVIXAWFKNWJWRWOWSWFWOWSQWJWRQWFHMJIAWNBLKNDEFWNVJVKVLVMVNVOVPVQHIJCVRVS
      $.

    ${
      $d F f $.
      $( Lemma for well-founded recursion.  Here, we compute the value of the
         recursive definition generator.  (Contributed by Scott Fenton,
         21-Apr-2011.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
      wfrlem12 $p |- ( y e. dom F ->
                    ( F ` y ) = ( G ` ( F |` Pred ( R , A , y ) ) ) ) $=
        ( vz vf vx cv cdm wcel wex cfv wceq wss wa wi cop cpred cres eldm2 wral
        vex wfn w3a cab cuni cwrecs df-wrecs eqtri eleq2i eluniab bitri elssuni
        abid syl6sseqr sylbir wel fnop ex rsp impcom fndm sseq2d eleq2d anbi12d
        biimprd expd wfun wfrfun funssfv 3adant3l 3adant3r fveq2d mp3an1 expcom
        fun2ssres eqeq12d com23 syl6com com34 sylcom adantl com14 exp4a pm2.43d
        syl7 syldc 3impd exlimdv mpdi imp exlimiv sylbi ) ALZDMNWRILZUAZDNZIOWR
        DPZDBCWRUBZUCZEPZQZIWRDAUFUDXAXFIXAWTJLZNZXGKLZUGZXIBRZXCXIRZAXIUEZSZWR
        XGPZXGXCUCZEPZQZAXIUEZUHZKOZSZJOZXFXAWTYAJUIZUJZNYCDYEWTDBCEUKYEHKABCJE
        ULUMZUNYAJWTUOUPYBXFJXHYAXFXHYAXGDRZXFYAXGYDNZYGYAJURYHXGYEDXGYDUQYFUSU
        TXHXTYGXFTZKXHXJXNXSYIXJXHAKVAZXNXSYITTXJXHYJXIWRWSXGVBVCXJYJXSXNYIXJYJ
        XSXNYITZTXJYJYJXSYKYJXSSXRXJYJYKXSYJXRXRAXIVDVEXNYJXRXJYIXMYJXRXJYITTZT
        XKXMYJXLYLXLAXIVDYJXLXJXRYIYJXLXJXRYITZXLXJSYJXCXGMZRZWRYNNZSZYMXJXLYJY
        QTXJXLYJYQXJYQXLYJSXJYOXLYPYJXJYNXIXCXIXGVFZVGXJYNXIWRYRVHVIVJVKVEYQYGX
        RXFYGYQXRXFTZDVLZYGYQYSBCDEFGHVMYTYGYQUHZXFXRUUAXBXOXEXQYTYGYPXBXOQYOWR
        DXGVNVOUUAXDXPEYTYGYOXDXPQYPXCDXGVTVPVQWAVJVRVSWBWCVKWDWEWFWGWJWHWIWDWK
        WLWMWNWOWPWQWPWQ $.
    $}
  $}

  ${
    $d A f x y z $.  $d F f x y z $.  $d G f x y $.  $d R f x y z $.
    $d C f x y $.
    wfrlem13.1 $e |- R We A $.
    wfrlem13.2 $e |- R Se A $.
    wfrlem13.3 $e |- F = wrecs ( R , A , G ) $.
    wfrlem13.4 $e |- C = ( F u.
                      { <. z , ( G ` ( F |` Pred ( R , A , z ) ) ) >. } ) $.
    $( Lemma for well-founded recursion.  From here through ~ wfrlem16 , we aim
       to prove that ` dom F = A ` .  We do this by supposing that there is an
       element ` z ` of ` A ` that is not in ` dom F ` .  We then define ` C `
       by extending ` dom F ` with the appropriate value at ` z ` .  We then
       show that ` z ` cannot be an ` R ` minimal element of
       ` ( A \ dom F ) ` , meaning that ` ( A \ dom F ) ` must be empty, so
       ` dom F = A ` .  Here, we show that ` C ` is a function extending the
       domain of ` F ` by one.  (Contributed by Scott Fenton, 21-Apr-2011.)
       (Revised by Mario Carneiro, 26-Jun-2015.) $)
    wfrlem13 $p |- ( z e. ( A \ dom F ) -> C Fn ( dom F u. { z } ) ) $=
      ( cdm wcel csn cun wfun wceq wa wfn cin c0 cdif cpred cres cfv cop wfrfun
      cv fvex funsn pm3.2i dmsnop ineq2i wn eldifn disjsn sylibr syl5eq sylancr
      vex funun dmun uneq2i eqtri jctir fneq1i df-fn bitri ) AUGZBEKZUALZEVHEBD
      VHUBUCZFUDZUEMZNZOZVNKZVIVHMZNZPZQZCVRRZVJVOVSVJEOZVMOZQVIVMKZSZTPVOWBWCB
      DEFGHIUFVHVLAUSVKFUHZUIUJVJWEVIVQSZTWDVQVIVHVLWFUKZULVJVHVILUMWGTPVHBVIUN
      VIVHUOUPUQEVMUTURVPVIWDNVREVMVAWDVQVIWHVBVCVDWAVNVRRVTVRCVNJVEVNVRVFVGUP
      $.

    $( Lemma for well-founded recursion.  Compute the value of ` C ` .
       (Contributed by Scott Fenton, 21-Apr-2011.) $)
    wfrlem14 $p |- ( z e. ( A \ dom F ) ->
                     ( y e. ( dom F u. { z } ) ->
                       ( C ` y ) = ( G ` ( C |` Pred ( R , A , y ) ) ) ) ) $=
      ( cv wcel csn cun cfv cres wceq ax-mp c0 cdm wfn cpred wi wfrlem13 weq wo
      cdif elun velsn orbi2i bitri wa wfrlem12 wfun wb fnfun wss ssun1 sseqtr4i
      cop funssfv wfrdmcl fun2ssres syl3an3 fveq2d eqeq12d mp3an2 sylan syl5ibr
      w3a ex pm2.43d vsnid elun2 reseq1i resundir wfr wn wwe predfrirr ressnop0
      wefr mp2b uneq2i un0 eqtri 3eqtri fveq2i opex elsn mpbir eleqtrri fnopfvb
      opeq2i mpbiri mpan2 fveq2 predeq3 reseq2d syl5ibrcom jaod syl5bi syl ) BL
      ZCFUAZUHMDXFXENZOZUBZALZXHMZXJDPZDCEXJUCZQZGPZRZUDBCDEFGHIJKUEXKXJXFMZABU
      FZUGZXIXPXKXQXJXGMZUGXSXJXFXGUIXTXRXQAXEUJUKULXIXQXPXRXIXQXPXIXQXQXPUDXQX
      PXIXQUMXJFPZFXMQZGPZRZACEFGHIJUNXIDUOZXQXPYDUPZXHDUQYEFDURZXQYFFFXEFCEXEU
      CZQZGPZVAZNZOZDFYLUSKUTYEYGXQVKZXLYAXOYCXJDFVBYNXNYBGXQYEYGXMXFURXNYBRCEF
      GXJJVCXMDFVDVEVFVGVHVIVJVLVMXIXPXRXEDPZDYHQZGPZRZXIXEXHMZYRXEXGMYSBVNXEXG
      XFVOSXIYSUMYRXEYQVAZDMYTYMDYTYLMZYTYMMUUAYTYKRYQYJXEYPYIGYPYMYHQYIYLYHQZO
      ZYIDYMYHKVPFYLYHVQUUCYITOYIUUBTYICEVRZXEYHMVSUUBTRCEVTUUDHCEWCSCEXEWAXEYJ
      YHWBWDWEYIWFWGWHWIWOYTYKXEYQWJWKWLYTYLFVOSKWMXHXEYQDWNWPWQXRXLYOXOYQXJXED
      WRXRXNYPGXRXMYHDCEXJXEWSWTVFVGXAXBXCXD $.

    $( Lemma for well-founded recursion.  When ` z ` is ` R ` minimal, ` C ` is
       an acceptable function.  This step is where the Axiom of Replacement
       becomes required.  (Contributed by Scott Fenton, 21-Apr-2011.) $)
    wfrlem15 $p |- ( ( z e. ( A \ dom F ) /\
                       Pred ( R , ( A \ dom F ) , z ) = (/) ) ->
                     C e. { f | E. x ( f Fn x /\
                     ( x C_ A /\ A. y e. x Pred ( R , A , y ) C_ x ) /\
                     A. y e. x ( f ` y ) =
                     ( G ` ( f |` Pred ( R , A , y ) ) ) ) } ) $=
      ( cv wcel wceq wa wss wral cvv cdm cdif cpred c0 wfn cfv cres w3a wex cab
      csn cun wfrlem10 eldifi setlikespec sylancl adantr eqeltrrd snex wfrlem13
      wse unexg wfrdmss snssd unss biimpi sylancr wo elun velsn orbi2i bitri wi
      weq wfrdmcl ssun3 syl a1i ssun1 syl6eqss predeq3 sseq1d syl5ibrcom syl5bi
      jaod ralrimiv jca wfrlem14 fneq2 sseq1 sseq2 raleqbi1dv anbi12d 3anbi123d
      3jca raleq spcegv sylc wb mpan2 sylan2 syl2anc fneq1 fveq1 reseq1 eqeq12d
      fnex fveq2d ralbidv 3anbi13d exbidv elabg mpbird ) CNZDHUAZUBZOZXPFXNUCUD
      PZQZEGNZANZUEZYADRZDFBNZUCZYARZBYASZQZYDXTUFZXTYEUGZIUFZPZBYASZUHZAUIZGUJ
      OZEYAUEZYHYDEUFZEYEUGZIUFZPZBYASZUHZAUIZXSXOXNUKZULZTOZEUUFUEZUUFDRZYEUUF
      RZBUUFSZQZUUABUUFSZUHZUUDXSXOTOZUUETOZUUGXSDFXNUCZXOTCDFHIJLUMZXQUUQTOZXR
      XQXNDODFVAUUSXNDXOUNZKDFXNUOUPUQURZXNUSZXOUUETTVBZUPXSUUHUULUUMXQUUHXRCDE
      FHIJKLMUTUQZXSUUIUUKXQUUIXRXQXODRZUUEDRZUUIDFHILVCXQXNDUUTVDUVEUVFQUUIXOU
      UEDVEVFVGUQXSUUJBUUFYDUUFOZYDXOOZBCVNZVHZXSUUJUVGUVHYDUUEOZVHUVJYDXOUUEVI
      UVKUVIUVHBXNVJVKVLXSUVHUUJUVIUVHUUJVMXSUVHYEXORUUJDFHIYDLVOYEXOUUEVPVQVRX
      SUUJUVIUUQUUFRXSUUQXOUUFUURXOUUEVSVTUVIYEUUQUUFDFYDXNWAWBWCWEWDWFWGXQUUMX
      RXQUUABUUFBCDEFHIJKLMWHWFUQWOUUCUUNAUUFTYAUUFPZYQUUHYHUULUUBUUMYAUUFEWIUV
      LYCUUIYGUUKYAUUFDWJYFUUJBYAUUFYAUUFYEWKWLWMUUABYAUUFWPWNWQWRXSETOZYPUUDWS
      XSUUHUUOUVMUVDUVAUUOUUHUUGUVMUUOUUPUUGUVBUVCWTUUFTEXGXAXBYOUUDGETXTEPZYNU
      UCAUVNYBYQYMUUBYHYAXTEXCUVNYLUUABYAUVNYIYRYKYTYDXTEXDUVNYJYSIXTEYEXEXHXFX
      IXJXKXLVQXM $.

    $( Lemma for well-founded recursion.  If ` z ` is ` R ` minimal in
       ` ( A \ dom F ) ` , then ` C ` is acceptable and thus a subset of
       ` F ` , but ` dom C ` is bigger than ` dom F ` .  Thus, ` z ` cannot be
       minimal, so ` ( A \ dom F ) ` must be empty, and (due to ~ wfrdmss ),
       ` dom F = A ` .  (Contributed by Scott Fenton, 21-Apr-2011.) $)
    wfrlem16 $p |- dom F = A $=
      ( vf vx vy cdm wss c0 wceq cv cpred wcel wfrdmss cdif wrex eldifn csn cun
      wa ssun2 vsnid sselii cres cfv cop dmeqi dmun fvex dmsnop uneq2i eleqtrri
      3eqtri wfn wral w3a wex cab wfrlem15 elssuni syl df-wrecs eqtri syl6sseqr
      cuni cwrecs dmss sseld mpi mtand nrex wne df-ne difss tz6.26i mpan sylbir
      wn mt3 ssdif0 mpbir eqssi ) ENZBBDEFIUABWJOBWJUBZPQZWLWKDARZSPQZAWKUCZWNA
      WKWMWKTZWNWMWJTZWMBWJUDWPWNUGZWMCNZTWQWMWJWMUEZUFZWSWTXAWMWTWJUHAUIUJWSEW
      MEBDWMSUKZFULZUMUEZUFZNWJXDNZUFXACXEJUNEXDUOXFWTWJWMXCXBFUPUQURUTUSWRWSWJ
      WMWRCEOWSWJOWRCKRZLRZVAXHBOBDMRZSZXHOMXHVBUGXIXGULXGXJUKFULQMXHVBVCLVDKVE
      ZVLZEWRCXKTCXLOLMABCDKEFGHIJVFCXKVGVHEBDFVMXLILMBDKFVIVJVKCEVNVHVOVPVQVRW
      LWEWKPVSZWOWKPVTWKBOXMWOBWJWAABWKDGHWBWCWDWFBWJWGWHWI $.
  $}

  ${
    $d F f g x y z w $.  $d R f g x y z w $.  $d A f g x y z w $.
    $d G f g x y z w $.  $d X f g x y z w $.
    wfrlem17.1 $e |- R We A $.
    wfrlem17.2 $e |- R Se A $.
    wfrlem17.3 $e |- F = wrecs ( R , A , G ) $.
    $( Without using ~ ax-rep , show that all restrictions of ` wrecs ` are
       sets.  (Contributed by Scott Fenton, 31-Jul-2020.) $)
    wfrlem17 $p |- ( X e. dom F -> ( F |` Pred ( R , A , X ) ) e. _V ) $=
      ( vg vf vx vy vz vw wcel cfv cv wss wa wceq cdm cop wfn wral cres w3a wex
      cpred cab cvv wfun wfrfun funfvop mpan cwrecs df-wrecs eqtri eleq2i eluni
      cuni bitri sylib simprr vex wfrlem3a 3simpa simprlr elssuni syl6sseqr syl
      eqid simprll df-br sylibr fvex breldmg mp3an2 syldan simprrl fndm eleqtrd
      wbr simprrr adantl predeq3 sseq1d rspcva syl2anc sseqtr4d fun2ssres resex
      mp3an1 syl6eqel expr syl5 exlimdv mpd exlimddv ) ECUAZOZEECPZUBZIQZOZXCJQ
      ZKQZUCXFARABLQZUHZXFRLXFUDSXGXEPXEXHUEDPTLXFUDUFKUGJUIZOZSZCABEUHZUEZUJOZ
      IWTXBCOZXKIUGZCUKZWTXOABCDFGHULZECUMUNXOXBXIUTZOXPCXSXBCABDUOXSHKLABJDUPU
      QZURIXBXIUSVAVBWTXKSZXCMQZUCZYBARZABNQZUHZYBRZNYBUDZSZYEXCPXCYFUEDPTNYBUD
      ZUFZMUGZXNYAXJYLWTXDXJVCKLMNAXIBJDXCXIVKIVDZVEVBYAYKXNMYKYCYISZYAXNYCYIYJ
      VFWTXKYNXNWTXKYNSZSZXMXCXLUEZUJYPXCCRZXLXCUAZRZXMYQTZYPXJYRWTXDXJYNVGXJXC
      XSCXCXIVHXTVIVJYPXLYBYSYPEYBOYHXLYBRZYPEYSYBWTYOEXAXCWBZEYSOZYPXDUUCWTXDX
      JYNVLEXAXCVMVNWTXAUJOUUCUUDECVOEXAWSUJXCVPVQVRYPYCYSYBTWTXKYCYIVSYBXCVTVJ
      ZWAYOYHWTXKYCYDYHWCWDYGUUBNEYBYEETYFXLYBABYEEWEWFWGWHUUEWIXQYRYTUUAXRXLCX
      CWJWLWHXCXLYMWKWMWNWOWPWQWR $.
  $}

  ${
    $d R x $.  $d A x $.  $d X x $.  $d G x $.  $d F x $.
    wfr2a.1 $e |- R We A $.
    wfr2a.2 $e |- R Se A $.
    wfr2a.3 $e |- F = wrecs ( R , A , G ) $.
    $( A weak version of ~ wfr2 which is useful for proofs that avoid the Axiom
       of Replacement.  (Contributed by Scott Fenton, 30-Jul-2020.) $)
    wfr2a $p |- ( X e. dom F ->
    ( F ` X ) = ( G ` ( F |` Pred ( R , A , X ) ) ) ) $=
      ( vx cv cfv cpred cres wceq cdm fveq2 predeq3 reseq2d fveq2d eqeq12d
      wfrlem12 vtoclga ) IJZCKZCABUCLZMZDKZNECKZCABELZMZDKZNIECOUCENZUDUHUGUKUC
      ECPULUFUJDULUEUICABUCEQRSTIABCDFGHUAUB $.
  $}

  ${
    $d A z $.  $d F z $.  $d R z $.
    wfr1.1 $e |- R We A $.
    wfr1.2 $e |- R Se A $.
    wfr1.3 $e |- F = wrecs ( R , A , G ) $.
    $( The Principle of Well-Founded Recursion, part 1 of 3.  We start with an
       arbitrary function ` G ` .  Then, using a base class ` A ` and a
       well-ordering ` R ` of ` A ` , we define a function ` F ` .  This
       function is said to be defined by "well-founded recursion."  The purpose
       of these three theorems is to demonstrate the properties of ` F ` .  We
       begin by showing that ` F ` is a function over ` A ` .  (Contributed by
       Scott Fenton, 22-Apr-2011.)  (Revised by Mario Carneiro,
       26-Jun-2015.) $)
    wfr1 $p |- F Fn A $=
      ( vz wfn wfun cdm wceq wfrfun cv cpred cres cfv cop csn cun eqid wfrlem16
      df-fn mpbir2an ) CAICJCKALABCDEFGMHACHNZCABUEOPDQRSTZBCDEFGUFUAUBCAUCUD
      $.
  $}

  ${
    $d A x $.  $d F x $.  $d G x $.  $d R x $.
    wfr2.1 $e |- R We A $.
    wfr2.2 $e |- R Se A $.
    wfr2.3 $e |- F = wrecs ( R , A , G ) $.
    $( The Principle of Well-Founded Recursion, part 2 of 3.  Next, we show
       that the value of ` F ` at any ` X e. A ` is ` G ` recursively applied
       to all "previous" values of ` F ` .  (Contributed by Scott Fenton,
       18-Apr-2011.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    wfr2 $p |- ( X e. A ->
                  ( F ` X ) = ( G ` ( F |` Pred ( R , A , X ) ) ) ) $=
      ( vx wcel cdm cfv cpred cres wceq cv cop csn cun eqid eleq2i wfr2a sylbir
      wfrlem16 ) EAJECKZJECLCABEMNDLOUEAEIACIPZCABUFMNDLQRSZBCDFGHUGTUDUAABCDEF
      GHUBUC $.
  $}

  ${
    $d A z $.  $d F z $.  $d G z $.  $d H z $.  $d R z $.
    wfr3.1 $e |- R We A $.
    wfr3.2 $e |- R Se A $.
    wfr3.3 $e |- F = wrecs ( R , A , G ) $.
    $( The principle of Well-Founded Recursion, part 3 of 3.  Finally, we show
       that ` F ` is unique.  We do this by showing that any function ` H `
       with the same properties we proved of ` F ` in ~ wfr1 and ~ wfr2 is
       identical to ` F ` .  (Contributed by Scott Fenton, 18-Apr-2011.)
       (Revised by Mario Carneiro, 26-Jun-2015.) $)
    wfr3 $p |- ( ( H Fn A /\
                    A. z e. A ( H ` z ) =
                            ( G ` ( H |` Pred ( R , A , z ) ) ) ) ->
                  F = H ) $=
      ( wwe wse wa wfn cv cfv cpred cres wceq wral pm3.2i wfr1 wfr2 rgen wfr3g
      mp3an12 ) BCJZBCKZLDBMZANZDODBCUIPZQEORZABSZLFBMUIFOFUJQEORABSLDFRUFUGGHT
      UHULBCDEGHIUAUKABBCDEUIGHIUBUCTABCDFEUDUE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Functions on ordinals; strictly monotone ordinal functions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.
    $( The indexed union of a set of ordinal numbers ` B ( x ) ` is an ordinal
       number.  (Contributed by NM, 13-Oct-2003.)  (Revised by Mario Carneiro,
       5-Dec-2016.) $)
    iunon $p |- ( ( A e. V /\ A. x e. A B e. On ) -> U_ x e. A B e. On ) $=
      ( wcel con0 wral wa ciun cmpt crn cuni wceq dfiun3g adantl cvv wss mptexg
      rnexg syl eqid rnmptss ssonuni imp syl2an eqeltrd ) BDEZCFEABGZHABCIZABCJ
      ZKZLZFUHUIULMUGABCFNOUGUKPEZUKFQZULFEZUHUGUJPEUMABCDRUJPSTABCFUJUJUAUBUMU
      NUOUKPUCUDUEUF $.
  $}

  ${
    $d x A $.
    $( The nonempty indexed intersection of a class of ordinal numbers
       ` B ( x ) ` is an ordinal number.  (Contributed by NM, 13-Oct-2003.)
       (Proof shortened by Mario Carneiro, 5-Dec-2016.) $)
    iinon $p |- ( ( A. x e. A B e. On /\ A =/= (/) ) ->
                |^|_ x e. A B e. On ) $=
      ( con0 wcel wral c0 wne wa ciin cmpt crn cint wceq dfiin3g adantr rnmptss
      wss eqid cdm dm0rn0 dmmptg eqeq1d syl5bbr biimpar oninton syl2anc eqeltrd
      necon3bid ) CDEABFZBGHZIZABCJZABCKZLZMZDUJUMUPNUKABCDOPULUODRZUOGHZUPDEUJ
      UQUKABCDUNUNSQPUJURUKUJUOGBGUOGNUNTZGNUJBGNUNUAUJUSBGABCDUBUCUDUIUEUOUFUG
      UH $.
  $}

  ${
    $d x y S $.  $d x y F $.  $d x T $.
    onfununi.1 $e |- ( Lim y -> ( F ` y ) = U_ x e. y ( F ` x ) ) $.
    onfununi.2 $e |- ( ( x e. On /\ y e. On /\ x C_ y )
                  -> ( F ` x ) C_ ( F ` y ) ) $.
    $( A property of functions on ordinal numbers.  Generalization of Theorem
       Schema 8E of [Enderton] p. 218.  (Contributed by Eric Schmidt,
       26-May-2009.) $)
    onfununi $p |- ( ( S e. T /\ S C_ On /\ S =/= (/) )
                -> ( F ` U. S ) = U_ x e. S ( F ` x ) ) $=
      ( wcel con0 wss cfv ciun wa wceq word wi syl6 imp adantr fveq2 c0 wne w3a
      cuni cv wn wlim ssorduni ad2antrr nelneq wo elssuni adantl ssel ordsseleq
      eloni syl2an anabss1 mpbid ord con1d syl5 exp4b pm2.43d com23 ssrdv sylan
      wb ssn0 unissd orduniss syl eqssd df-lim syl3anbrc an32s 3adantl1 ssonuni
      limeq iuneq1 eqeq12d imbi12d vtoclg 3adant3 mpd wral eluni2 anim1d onelon
      wrex adantrd ordelss a1i syland 3jcad expd reximdvai ssiun ralrimiv iunss
      syl5bi sylibr cbviunv syl6sseq 3ad2ant2 eqsstrd ex ssiun2s pm2.61d2 sseq2
      jcad anbi2d sseq2d 3com12 3expib vtoclga sylsyld ) CDHZCIJZCUAUBZUCZCUDZE
      KZACAUEZEKZLZYAYBCHZYCYFJZYAYGUFZYHYAYIMZYCAYBYELZYFYJYBUGZYCYKNZXSXTYIYL
      XRXSYIXTYLXSYIMZXTMYBOZYBUAUBZYBYBUDZNZYLXSYOYIXTCUHZUIYNCYBJXTYPYNACYBXS
      YIYDCHZYDYBHZPXSYTYIUUAXSYTYIUUAPXSYTYTYIUUAYTYIMYDYBNZUFXSYTMZUUAYDYBCUJ
      UUCUUAUUBUUCUUAUUBUUCYDYBJZUUAUUBUKZYTUUDXSYDCULZUMXSYTUUDUUEVHZUUCYDOZYO
      UUGXSXSYTUUHXSYTYDIHZUUHCIYDUNZYDUPQRYSYDYBUOUQURUSUTVAVBVCVDVERVFZCYBVIV
      GYNYRXTYNYBYQYNCYBUUKVJXSYQYBJZYIXSYOUULYSYBVKVLSVMSYBVNVOVPVQYAYLYMPZYIX
      RXSUUMXTXRXSUUMXRXSYBIHZUUMCDVRZBUEZUGZUUPEKZAUUPYELZNZPUUMBYBIUUPYBNZUUQ
      YLUUTYMUUPYBVSUVAUURYCUUSYKUUPYBETZAUUPYBYEVTWAWBFWCQRWDSWEYAYKYFJZYIXSXR
      UVCXTXSYKBCUURLZYFXSYEUVDJZAYBWFYKUVDJXSUVEAYBXSUUAYEUURJZBCWJZUVEUUAYDUU
      PHZBCWJXSUVGBYDCWGXSUVHUVFBCXSUUPCHZUVHUVFXSUVIUVHMZUUIUUPIHZYDUUPJZUCUVF
      XSUVJUUIUVKUVLXSUVJUVKUVHMUUIXSUVIUVKUVHCIUUPUNZWHUUPYDWIQXSUVIUVKUVHUVMW
      KXSUVIUUPOZUVHUVLXSUVIUVKUVNUVMUUPUPQUVNUVHMUVLPXSUUPYDWLWMWNWOGQWPWQXABC
      UURYEWRQWSAYBYEUVDWTXBBACUURYEUUPYDETXCXDXESXFXGACYEYBYCYDYBETXHXIYAYEYCJ
      ZACWFYFYCJYAUVOACYAUUNYTUUIUUDMZUVOXRXSUUNXTXRXSUUNUUORWDYAYTUUIUUDXSXRYT
      UUIPXTUUJXEYTUUDPYAUUFWMXKUUIUVLMZUVFPUVPUVOPBYBIUVAUVQUVPUVFUVOUVAUVLUUD
      UUIUUPYBYDXJXLUVAUURYCYEUVBXMWBUVKUUIUVLUVFUUIUVKUVLUVFGXNXOXPXQWSACYEYCW
      TXBVM $.
  $}

  ${
    $d w x y z A $.  $d w x y z F $.  $d w x y z K $.  $d w x y L $.
    $d w x y z S $.  $d w T $.
    onovuni.1 $e |- ( Lim y -> ( A F y ) = U_ x e. y ( A F x ) ) $.
    onovuni.2 $e |- ( ( x e. On /\ y e. On /\ x C_ y )
                  -> ( A F x ) C_ ( A F y ) ) $.
    ${
      $d x T $.
      $( A variant of ~ onfununi for operations.  (Contributed by Eric Schmidt,
         26-May-2009.)  (Revised by Mario Carneiro, 11-Sep-2015.) $)
      onovuni $p |- ( ( S e. T /\ S C_ On /\ S =/= (/) )
                     -> ( A F U. S ) = U_ x e. S ( A F x ) ) $=
        ( vz wcel con0 cvv cv co cfv ciun wceq oveq2 ovex fvmpt wss c0 wne cuni
        w3a cmpt wlim vex ax-mp a1i iuneq2i 3eqtr4g 3sstr4g onfununi uniexg syl
        eqid 3ad2ant1 3eqtr3d ) DEJZDKUAZDUBUCZUEZDUDZILCIMZFNZUFZOZADAMZVGOZPZ
        CVDFNZADCVIFNZPZABDEVGBMZUGCVOFNZAVOVMPVOVGOZAVOVJPGVOLJVQVPQBUHIVOVFVP
        LVGVEVOCFRVGUQZCVOFSTUIZAVOVJVMVJVMQZVIVOJVILJVTAUHIVIVFVMLVGVEVICFRVRC
        VIFSTUIZUJUKULVIKJVOKJVIVOUAUEVMVPVJVQHWAVSUMUNUTVAVHVLQZVBUTVDLJWBDEUO
        IVDVFVLLVGVEVDCFRVRCVDFSTUPURVKVNQVCADVJVMVTVIDJWAUJUKUJUS $.
    $}

    $( A variant of ~ onovuni with indexed unions.  (Contributed by Eric
       Schmidt, 26-May-2009.)  (Proof shortened by Mario Carneiro,
       5-Dec-2016.) $)
    onoviun $p |- ( ( K e. T /\ A. z e. K L e. On /\ K =/= (/) )
                -> ( A F U_ z e. K L ) = U_ z e. K ( A F L ) ) $=
      ( vw wcel con0 c0 wne ciun co wceq 3ad2ant2 cvv wral w3a cmpt crn cuni cv
      dfiun3g oveq2d wss simp1 mptexg rnexg 3syl wf simp2 eqid fmpt frn syl cdm
      sylib dmmptg simp3 eqnetrd dm0rn0 necon3bii onovuni syl3anc wrex wb oveq2
      eleq2d rexrnmpt eliun 3bitr4g eqrdv 3eqtrd ) GELZHMLCGUAZGNOZUBZDCGHPZFQD
      CGHUCZUDZUEZFQZAWDDAUFZFQZPZCGDHFQZPZWAWBWEDFVSVRWBWERVTCGHMUGSUHWAWDTLZW
      DMUIZWDNOZWFWIRWAVRWCTLWLVRVSVTUJCGHEUKWCTULUMWAGMWCUNZWMWAVSWOVRVSVTUOCG
      MHWCWCUPZUQVAGMWCURUSWAWCUTZNOWNWAWQGNVSVRWQGRVTCGHMVBSVRVSVTVCVDWQNWDNWC
      VEVFVAABDWDTFIJVGVHWAKWIWKWAKUFZWHLZAWDVIZWRWJLZCGVIZWRWILWRWKLVSVRWTXBVJ
      VTWSXACAGHWCMWPWGHRWHWJWRWGHDFVKVLVMSAWRWDWHVNCWRGWJVNVOVPVQ $.
  $}

  ${
    $d w x y z F $.
    $( There are no length ` _om ` decreasing sequences in the ordinals.  See
       also ~ noinfep for a stronger version assuming Regularity.  (Contributed
       by Mario Carneiro, 19-May-2015.) $)
    onnseq $p |- ( ( F ` (/) ) e. On ->
      E. x e. _om -. ( F ` suc x ) e. ( F ` x ) ) $=
      ( vy vw vz c0 cfv con0 wcel cv csuc com wral wrex wceq fveq2 eleq1d sylib
      wne cvv wn cmpt crn cin wa cep wwe wss epweon a1i wf simpl fveq2d eleq12d
      wi suceq rspcv onelon expcom syl6 adantld finds2 com12 ralrimiv eqid fmpt
      frn syl cdm peano1 fdm syl5eleqr ne0i dm0rn0 necon3bii wefrc syl3anc fvex
      wb rgenw cbvmptv ineq2 eqeq1d rexrnmpt ax-mp peano2 adantl eqeq2d sylancl
      rspcev elrnmpt sylibr rspccva adantll inelcm syl2anc neneqd nrexdv rexnal
      pm2.65da ) FBGZHIZAJZKZBGZXCBGZIZALMZUAXGUAALNXBXHCLCJZBGZUBZUCZDJZBGZUDZ
      FOZDLNZXBXHUEZXLEJZUDZFOZEXLNZXQXRHUFUGZXLHUHZXLFSZYBYCXRUIUJXRLHXKUKZYDX
      RXJHIZCLMYFXRYGCLXILIXRYGYGXBXSBGZHIZXSKZBGZHIZXRCEXIFOXJXAHXIFBPQXIXSOXJ
      YHHXIXSBPQXIYJOXJYKHXIYJBPQXBXHULXSLIZXHYIYLUOZXBYMXHYKYHIZYNXGYOAXSLXCXS
      OZXEYKXFYHYPXDYJBXCXSUPUMXCXSBPUNUQYIYOYLYHYKURUSUTVAVBVCVDCLHXJXKXKVEZVF
      RZLHXKVGVHXRXKVIZFSZYEXRFYSIYTXRFLYSVJXRYFYSLOYRLHXKVKVHVLYSFVMVHYSFXLFXK
      VNVOREHXLVPVQXNTIZDLMYBXQVSUUADLXMBVRVTYAXPDELXNXKTCDLXJXNXIXMBPWAXSXNOXT
      XOFXSXNXLWBWCWDWERXRXPDLXRXMLIZUEZXOFUUCXMKZBGZXLIZUUEXNIZXOFSUUCUUEXJOZC
      LNZUUFUUCUUDLIZUUEUUEOZUUIUUBUUJXRXMWFWGUUEVEUUHUUKCUUDLXIUUDOXJUUEUUEXIU
      UDBPWHWJWIUUETIUUFUUIVSUUDBVRCLXJUUEXKTYQWKWEWLXHUUBUUGXBXGUUGAXMLXCXMOZX
      EUUEXFXNUULXDUUDBXCXMUPUMXCXMBPUNWMWNUUEXLXNWOWPWQWRWTXGALWSWL $.
  $}

  $c Smo $.

  $( Introduce the strictly monotone ordinal function.  A strictly monotone
     function is one that is constantly increasing across the ordinals. $)
  wsmo $a wff Smo A $.

  ${
    $d x y A $.
    $( Definition of a strictly monotone ordinal function.  Definition 7.46 in
       [TakeutiZaring] p. 50.  (Contributed by Andrew Salmon, 15-Nov-2011.) $)
    df-smo $a |- ( Smo A <-> ( A : dom A --> On /\ Ord dom A /\ A. x e. dom A
       A. y e. dom A ( x e. y -> ( A ` x ) e. ( A ` y ) ) ) ) $.
  $}

  ${
    $d F x y $.
    $( Alternate definition of a strictly monotone ordinal function.
       (Contributed by Mario Carneiro, 4-Mar-2013.) $)
    dfsmo2 $p |- ( Smo F <-> ( F : dom F --> On /\ Ord dom F /\ A. x e. dom F
       A. y e. x ( F ` y ) e. ( F ` x ) ) ) $=
      ( wsmo cdm con0 wf word wel cfv wcel wral w3a df-smo ralcom impexp 3anass
      cv wi wa simpr ordtr1 3impib 3com23 simp3 3expia impbid2 syl5bbr ralbidv2
      jca imbi1d ralbidva syl5bb pm5.32i anbi2i 3bitr4i bitri ) CDCEZFCGZURHZBA
      IZBRZCJARZCJKZSZAURLBURLZMZUSUTVDBVCLZAURLZMZBACNUSUTVFTZTUSUTVITZTVGVJVK
      VLUSUTVFVIVFVEBURLZAURLUTVIVEBAURUROUTVMVHAURUTVCURKZTZVEVDBURVCVBURKZVES
      VPVATZVDSVOVEVPVAVDPVOVQVAVDVOVQVAVPVAUAUTVNVAVQUTVNVAMVPVAUTVAVNVPUTVAVN
      VPVBVCURUBUCUDUTVNVAUEUJUFUGUKUHUIULUMUNUOUSUTVFQUSUTVIQUPUQ $.
  $}

  ${
    $d x y A $.
    issmo.1 $e |- A : B --> On $.
    issmo.2 $e |- Ord B $.
    issmo.3 $e |- ( ( x e. B /\ y e. B ) -> ( x e. y -> ( A ` x ) e. ( A ` y
       ) ) ) $.
    issmo.4 $e |- dom A = B $.
    $( Conditions for which ` A ` is a strictly monotone ordinal function.
       (Contributed by Andrew Salmon, 15-Nov-2011.) $)
    issmo $p |- Smo A $=
      ( wsmo cdm con0 wf word cv wcel cfv wi wral mpbir eleq2i feq2i wceq ordeq
      wb ax-mp syl2anb rgen2a df-smo mpbir3an ) CICJZKCLZUJMZANZBNZOUMCPUNCPOQZ
      BUJRAUJRUKDKCLEUJDKCHUASULDMZFUJDUBULUPUDHUJDUCUESUOABUJUMUJOUMDOUNDOUOUN
      UJOUJDUMHTUJDUNHTGUFUGABCUHUI $.
  $}

  ${
    $d A x $.  $d F x y $.
    $( Alternate definition of a strictly monotone ordinal function.
       (Contributed by Mario Carneiro, 12-Mar-2013.) $)
    issmo2 $p |- ( F : A --> B -> ( ( B C_ On /\ Ord A /\
       A. x e. A A. y e. x ( F ` y ) e. ( F ` x ) ) -> Smo F ) ) $=
      ( wf con0 wss word cv cfv wcel wral w3a cdm wsmo fss ex fdm biimprd feq2d
      sylibrd wceq wb ordeq syl raleqdv 3anim123d dfsmo2 syl6ibr ) CDEFZDGHZCIZ
      BJEKAJZEKLBUNMZACMZNEOZGEFZUQIZUOAUQMZNEPUKULURUMUSUPUTUKULCGEFZURUKULVAC
      DGEQRUKUQCGECDESZUAUBUKUSUMUKUQCUCUSUMUDVBUQCUEUFTUKUTUPUKUOAUQCVBUGTUHAB
      EUIUJ $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Equality theorem for strictly monotone functions.  (Contributed by
       Andrew Salmon, 16-Nov-2011.) $)
    smoeq $p |- ( A = B -> ( Smo A <-> Smo B ) ) $=
      ( vx vy wceq cdm con0 wf word cv wcel cfv wi wral w3a wsmo raleqdv df-smo
      id fveq1 dmeq feq12d wb ordeq syl eleq12d imbi2d ralbidv 3bitrd 3anbi123d
      2ralbidv 3bitr4g ) ABEZAFZGAHZUNIZCJZDJZKZUQALZURALZKZMZDUNNCUNNZOBFZGBHZ
      VEIZUSUQBLZURBLZKZMZDVENZCVENZOAPBPUMUOVFUPVGVDVMUMUNVEGABUMSABUAZUBUMUNV
      EEUPVGUCVNUNVEUDUEUMVDVKDUNNZCUNNVLCUNNVMUMVCVKCDUNUNUMVBVJUSUMUTVHVAVIUQ
      ABTURABTUFUGUKUMVOVLCUNUMVKDUNVEVNQUHUMVLCUNVEVNQUIUJCDARCDBRUL $.

    $( The domain of a strictly monotone function is an ordinal.  (Contributed
       by Andrew Salmon, 16-Nov-2011.) $)
    smodm $p |- ( Smo A -> Ord dom A ) $=
      ( vx vy wsmo cdm con0 wf word cv wcel cfv wi wral df-smo simp2bi ) ADAEZF
      AGPHBIZCIZJQAKRAKJLCPMBPMBCANO $.

    $( A strictly monotone function restricted to an ordinal remains strictly
       monotone.  (Contributed by Andrew Salmon, 16-Nov-2011.)  (Proof
       shortened by Mario Carneiro, 5-Dec-2016.) $)
    smores $p |- ( ( Smo A /\ B e. dom A ) -> Smo ( A |` B ) ) $=
      ( vx vy cdm wcel wsmo con0 wf word cv cfv wi wral w3a wss ax-mp wceq syl
      wa cres wfn crn wfun funres funfn 3imtr3i resss rnss sstr anim12i 3imtr4i
      mpan df-f a1i ordelord expcom ordin ex syli wb dmres ordeq syl6ibr ssralv
      cin ralimi inss1 eqsstri simpl sseldi fvres simpr eleq12d imbi2d ralbidva
      dmss ralbiia sylibr 3anim123d df-smo 3imtr4g impcom ) BAEZFZAGZABUAZGZWEW
      DHAIZWDJZCKZDKZFZWKALZWLALZFZMZDWDNZCWDNZOWGEZHWGIZWTJZWMWKWGLZWLWGLZFZMZ
      DWTNZCWTNZOWFWHWEWIXAWJXBWSXHWIXAMWEAWDUBZAUCZHPZTWGWTUBZWGUCZHPZTWIXAXIX
      LXKXNAUDWGUDXIXLBAUEAUFWGUFUGXMXJPZXKXNWGAPZXOABUHZWGAUIQXMXJHUJUMUKWDHAU
      NWTHWGUNULUOWEWJBWDVFZJZXBWJWEBJZXSWJWEXTWDBUPUQXTWJXSBWDURUSUTWTXRRXBXSV
      AABVBZWTXRVCQVDWSXHMWEWSWQDWTNZCWTNZXHWSWRCWTNZYCWTWDPZWSYDMXPYEXQWGAVQQZ
      WRCWTWDVEQWRYBCWTYEWRYBMYFWQDWTWDVEQVGSXGYBCWTWKWTFZXFWQDWTYGWLWTFZTZXEWP
      WMYIXCWNXDWOYIWKBFXCWNRYIWTBWKWTXRBYABWDVHVIZYGYHVJVKWKBAVLSYIWLBFXDWORYI
      WTBWLYJYGYHVMVKWLBAVLSVNVOVPVRVSUOVTCDAWACDWGWAWBWC $.

    $( A strictly monotone function restricted to an ordinal remains strictly
       monotone.  (Contributed by Andrew Salmon, 19-Nov-2011.) $)
    smores3 $p |- ( ( Smo ( A |` B ) /\ C e. ( dom A i^i B ) /\ Ord B ) -> Smo
       ( A |` C ) ) $=
      ( cres wsmo cdm cin wcel word w3a dmres incom eqtri eleq2i smores 3adant3
      sylan2br wss wceq wb inss2 sseli ordelss sylan 3adant1 resabs1 smoeq 3syl
      ancoms mpbid ) ABDZEZCAFZBGZHZBIZJZUKCDZEZACDZEZULUOUSUPUOULCUKFZHUSVBUNC
      VBBUMGUNABKBUMLMNUKCOQPUQCBRZURUTSUSVATUOUPVCULUOCBHZUPVCUNBCUMBUAUBUPVDV
      CBCUCUIUDUEACBUFURUTUGUHUJ $.
  $}

  ${
    $d A x y $.  $d F x y $.
    $( A strictly monotone ordinal function restricted to an ordinal is still
       monotone.  (Contributed by Mario Carneiro, 15-Mar-2013.) $)
    smores2 $p |- ( ( Smo F /\ Ord A ) -> Smo ( F |` A ) ) $=
      ( vy vx wsmo word wa cdm con0 wf cv cfv wcel wral crn wss wfun dfsmo2 syl
      wceq cres wfn simp1bi ffun funres funfn sylib df-ima imassrn eqsstr3i frn
      cima syl5ss df-f sylanbrc adantr smodm cin ordin dmres ordeq ax-mp sylibr
      wb ancoms sylan resss dmss simp3bi ssralv mpsyl wel wi ordtr1 inss1 sseli
      eqsstri expcomd imp31 fvres ad2antlr eleq12d ralbidva mpbird syl3anbrc
      syl6 ) BEZAFZGZBAUAZHZIWJJZWKFZCKZWJLZDKZWJLZMZCWPNZDWKNZWJEWGWLWHWGWJWKU
      BZWJOZIPWLWGBQZXAWGBHZIBJZXCWGXEXDFZWNBLZWPBLZMZCWPNZDXDNZDCBRZUCZXDIBUDS
      XCWJQXAABUEWJUFUGSWGXBBOZIXBBAULXNBAUHBAUIUJWGXEXNIPXMXDIBUKSUMWKIWJUNUOU
      PWGXFWHWMBUQWHXFWMWHXFGAXDURZFZWMAXDUSWKXOTWMXPVDBAUTZWKXOVAVBVCVEVFZWIWT
      XJDWKNZWGXSWHWKXDPZWGXKXSWJBPXTBAVGWJBVHVBWGXEXFXKXLVIXJDWKXDVJVKUPWIWSXJ
      DWKWIWPWKMZGZWRXICWPYBCDVLZGZWOXGWQXHYDWNAMZWOXGTWIYAYCYEWIYCYAYEWIYCYAGZ
      WNWKMZYEWIWMYFYGVMXRWNWPWKVNSWKAWNWKXOAXQAXDVOVQZVPWFVRVSWNABVTSYAWQXHTZW
      IYCYAWPAMYIWKAWPYHVPWPABVTSWAWBWCWCWDDCWJRWE $.
  $}

  $( The domain of a strictly monotone ordinal function is an ordinal.
     (Contributed by Mario Carneiro, 12-Mar-2013.) $)
  smodm2 $p |- ( ( F Fn A /\ Smo F ) -> Ord A ) $=
    ( wsmo wfn cdm word smodm wceq wb fndm ordeq syl biimpa sylan2 ) BCBADZBEZF
    ZAFZBGOQROPAHQRIABJPAKLMN $.

  ${
    $d F x y $.
    $( The function values of a strictly monotone ordinal function are
       ordinals.  (Contributed by Mario Carneiro, 12-Mar-2013.) $)
    smofvon2 $p |- ( Smo F -> ( F ` B ) e. On ) $=
      ( vy vx cdm wcel wsmo cfv con0 wi word wral dfsmo2 simp1bi ffvelrn expcom
      wf cv syl5 wn c0 ndmfv 0elon syl6eqel a1d pm2.61i ) ABEZFZBGZABHZIFZJUIUG
      IBQZUHUKUIULUGKCRBHDRZBHFCUMLDUGLDCBMNULUHUKUGIABOPSUHTZUKUIUNUJUAIABUBUC
      UDUEUF $.
  $}

  ${
    $d x y A $.
    iordsmo.1 $e |- Ord A $.
    $( The identity relation restricted to the ordinals is a strictly monotone
       function.  (Contributed by Andrew Salmon, 16-Nov-2011.) $)
    iordsmo $p |- Smo ( _I |` A ) $=
      ( vx vy cid cres con0 wf wfn crn wss fnresi rnresi word ordsson wcel wceq
      cv cfv fvresi ax-mp eqsstri df-f mpbir2an wa adantr adantl eleq12d dmresi
      biimprd issmo ) CDEAFZAAGULHULAIULJZGKALUMAGAMANAGKBAOUAUBAGULUCUDBCRZAPZ
      DRZAPZUEZUNULSZUPULSZPUNUPPURUSUNUTUPUOUSUNQUQAUNTUFUQUTUPQUOAUPTUGUHUJAU
      IUK $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y F $.
    $( The null set is a strictly monotone ordinal function.  (Contributed by
       Andrew Salmon, 20-Nov-2011.) $)
    smo0 $p |- Smo (/) $=
      ( cid c0 cres wsmo ord0 iordsmo wceq wb res0 smoeq ax-mp mpbi ) ABCZDZBDZ
      BEFMBGNOHAIMBJKL $.

    $( If ` B ` is a strictly monotone ordinal function, and ` A ` is in the
       domain of ` B ` , then the value of the function at ` A ` is an ordinal.
       (Contributed by Andrew Salmon, 20-Nov-2011.) $)
    smofvon $p |- ( ( Smo B /\ A e. dom B ) -> ( B ` A ) e. On ) $=
      ( vx vy wsmo cdm con0 wf word cv wcel cfv wral df-smo simp1bi ffvelrnda
      wi ) BEZBFZGABRSGBHSICJZDJZKTBLUABLKQDSMCSMCDBNOP $.

    $( If ` x ` is less than ` y ` then a strictly monotone function's value
       will be strictly less at ` x ` than at ` y ` .  (Contributed by Andrew
       Salmon, 22-Nov-2011.) $)
    smoel $p |- ( ( Smo B /\ A e. dom B /\ C e. A ) -> ( B ` C ) e. ( B ` A )
       ) $=
      ( vx vy wsmo cdm wcel cfv wa wi word smodm ordtr1 expdimp wral wceq fveq2
      cv imbi12d ancomsd sylan con0 w3a df-smo eleq1 eleq1d eleq2 eleq2d rspc2v
      wf ancoms com12 3ad2ant3 sylbi syld pm2.43d 3impia ) BFZABGZHZCAHZCBIZABI
      ZHZUSVAJZVBVEVFVBCUTHZVBVEKZUSUTLZVAVBVGKBMVIVAVBVGVIVBVAVGCAUTNUAOUBUSVA
      VGVHUSUTUCBUKZVIDSZESZHZVKBIZVLBIZHZKZEUTPDUTPZUDVAVGJZVHKZDEBUEVRVJVTVIV
      SVRVHVGVAVRVHKVQVHCVLHZVCVOHZKDECAUTUTVKCQZVMWAVPWBVKCVLUFWCVNVCVOVKCBRUG
      TVLAQZWAVBWBVEVLACUHWDVOVDVCVLABRUITUJULUMUNUOOUPUQUR $.

    $( The value of a strictly monotone ordinal function contains its indexed
       union.  (Contributed by Andrew Salmon, 22-Nov-2011.) $)
    smoiun $p |- ( ( Smo B /\ A e. dom B ) -> U_ x e. A ( B ` x )
       C_ ( B ` A ) ) $=
      ( vy wsmo cdm wcel wa cv cfv ciun wrex eliun con0 wi smofvon smoel 3expia
      ontr1 expcomd sylsyld rexlimdv syl5bi ssrdv ) CEZBCFGZHZDABAIZCJZKZBCJZDI
      ZUJGULUIGZABLUGULUKGZAULBUIMUGUMUNABUGUKNGZUHBGZUIUKGZUMUNOBCPUEUFUPUQBCU
      HQRUOUMUQUNULUIUKSTUAUBUCUD $.

    $( If ` F ` is an isomorphism from an ordinal ` A ` onto ` B ` , which is a
       subset of the ordinals, then ` F ` is a strictly monotonic function.
       Exercise 3 in [TakeutiZaring] p. 50.  (Contributed by Andrew Salmon,
       24-Nov-2011.) $)
    smoiso $p |- ( ( F Isom _E , _E ( A , B ) /\ Ord A /\ B C_ On )
        -> Smo F ) $=
      ( vx vy cep wiso word con0 wss w3a wf cv wcel cfv wral wb wa eleq2d wbr
      cdm wi wsmo wf1o isof1o f1of syl ffdm simpld fss 3adant2 syl3an1 wceq fdm
      sylan eqcomd ordeq 4syl biimpa 3adant3 3syl isorel epel fvex epelc biimpd
      anbi12d 3bitr3g ex sylbid ralrimivv 3ad2ant1 df-smo syl3anbrc ) ABFFCGZAH
      ZBIJZKCUAZICLZVRHZDMZEMZNZWACOZWBCOZNZUBZEVRPDVRPZCUCVOABCLZVPVQVSVOABCUD
      ZWIABFFCUEZABCUFZUGWIVQVSVPWIVRBCLZVQVSWIWMVRAJABCUHUIVRBICUJUOUKULVOVPVT
      VQVOVPVTVOWJWIAVRUMVPVTQWKWLWIVRAABCUNZUPAVRUQURUSUTVOVPWHVQVOWGDEVRVRVOW
      AVRNZWBVRNZRZWAANZWBANZRZWGVOWJWIWQWTQWKWLWIWOWRWPWSWIVRAWAWNSWIVRAWBWNSV
      GVAVOWTWGVOWTRZWCWFXAWAWBFTWDWEFTWCWFABWAWBFFCVBDEVCWDWEWBCVDVEVHVFVIVJVK
      VLDECVMVN $.
  $}

  $( A strictly monotone ordinal function preserves the epsilon relation.
     (Contributed by Mario Carneiro, 12-Mar-2013.) $)
  smoel2 $p |- ( ( ( F Fn A /\ Smo F ) /\ ( B e. A /\ C e. B ) )
      -> ( F ` C ) e. ( F ` B ) ) $=
    ( wfn wsmo wcel cfv cdm fndm eleq2d anbi1d biimprd smoel 3expib sylan9 imp
    wa ) DAEZDFZRBAGZCBGZRZCDHBDHGZSUCBDIZGZUBRZTUDSUGUCSUFUAUBSUEABADJKLMTUFUB
    UDBDCNOPQ $.

  ${
    $d A w x y z $.  $d F w x y z $.
    $( A strictly monotone ordinal function is one-to-one.  (Contributed by
       Mario Carneiro, 28-Feb-2013.) $)
    smo11 $p |- ( ( F : A --> B /\ Smo F ) -> F : A -1-1-> B ) $=
      ( vz vw vy vx wa cv cfv weq wi wral wcel word ex w3a 3ad2ant1 fveq2 sylan
      wsmo wceq wf1 simpl wfn ffn smodm2 ordelord syl anim12d wel w3o ordtri3or
      wf simp1rr smoel2 ralrimivva adantr simp2 eleq2d raleqbi1dv eleq1d rspccv
      simp3 rspcv syl6 3imp eleq1 biimpac syl31anc wn con0 smofvon2 ordirr 3syl
      eloni ad2antlr pm2.21dd 3exp ax-1 simp1rl eleq2 3jaod syl5 mpdd ralrimivv
      a1i dff13 sylanbrc ) ABCUNZCUAZHWJDIZCJZEIZCJZUBZDEKZLZEAMDAMZABCUCWJWKUD
      WJCAUEZWKWSABCUFWTWKHZWRDEAAXAWLANZWNANZHZWLOZWNOZHZWRXAXBXEXCXFXAAOZXBXE
      LACUGZXHXBXEAWLUHPUIXAXHXCXFLXIXHXCXFAWNUHPUIUJXAXDXGWRLXGDEUKZWQEDUKZULX
      AXDHZWRWLWNUMXLXJWRWQXKXLXJWPWQXLXJWPQZWOWONZWQXMXCFIZCJZGIZCJZNZFXQMZGAM
      ZXJWPXNXBXCXAXJWPUOXLXJYAWPXAYAXDXAXSGFAXQAXQXOCUPUQURZRXLXJWPUSXLXJWPVDX
      CYAXJQWMWONZWPXNXCYAXJYCXCYAXPWONZFWNMZXJYCLXTYEGWNAXSYDFXQWNGEKXRWOXPXQW
      NCSUTVAVEYDYCFWLWNFDKXPWMWOXOWLCSVBVCVFVGWPYCXNWMWOWOVHVITVJXLXJXNVKZWPWK
      YFWTXDWKWOVLNWOOYFWNCVMWOVPWOVNVOVQZRVRVSWQWRLXLWQWPVTWGXLXKWPWQXLXKWPQZX
      NWQYHXBYAXKWPXNXBXCXAXKWPWAXLXKYAWPYBRXLXKWPUSXLXKWPVDXBYAXKQWOWMNZWPXNXB
      YAXKYIXBYAXPWMNZFWLMZXKYILXTYKGWLAXSYJFXQWLGDKXRWMXPXQWLCSUTVAVEYJYIFWNWL
      FEKXPWOWMXOWNCSVBVCVFVGWPYIXNWMWOWOWBVITVJXLXKYFWPYGRVRVSWCWDPWEWFTDEABCW
      HWI $.
  $}

  $( A strictly monotone ordinal function preserves strict ordering.
     (Contributed by Mario Carneiro, 4-Mar-2013.) $)
  smoord $p |- ( ( ( F Fn A /\ Smo F ) /\ ( C e. A /\ D e. A ) ) ->
    ( C e. D <-> ( F ` C ) e. ( F ` D ) ) ) $=
    ( wa wcel cfv ordelord syl2anc w3a simp3 wi smoel2 3expia wn ordirr 3adant3
    word syl neleqtrd wfn wsmo wb smodm2 adantr simprl simprr ordtri3or adantrl
    wceq w3o expr 3impia 2thd con0 smofvon2 ad2antlr eloni 3syl 2falsed ordn2lp
    fveq2d pm3.2 3ad2ant3 mtod adantrlr 3impb pm3.21 3jaod syl5 mp2and ) DAUAZD
    UBZEZBAFZCAFZEZEZBRZCRZBCFZBDGZCDGZFZUCZVRARZVOVSVNWFVQADUDUEZVNVOVPUFABHIZ
    VRWFVPVTWGVNVOVPUGACHIZVSVTEWABCUJZCBFZUKVRWEBCUHVRWAWEWJWKVNVQWAWEVNVQWAJW
    AWDVNVQWAKVNVQWAWDVNVPWAWDLVOVNVPWAWDACBDMULUIUMUNNVNVQWJWEVNVQWJJZWAWDWLBC
    BVNVQBBFOZWJVRVSWMWHBPSQVNVQWJKZTWLWBWCWBVNVQWBWBFOZWJVRWBUOFZWBRZWOVMWPVLV
    QBDUPUQZWBURZWBPUSQWLBCDWNVBTUTNVNVQWKWEVNVQWKJZWAWDWTWAWKWAEZWTVTXAOVNVQVT
    WKWIQCBVASWKVNWAXALVQWKWAVCVDVEWTWDWDWCWBFZEZWTWQXCOVNVQWQWKVRWPWQWRWSSQWBW
    CVASWTXBWDXCLVNVQWKXBVNVOWKXBVPABCDMVFVGXBWDVHSVEUTNVIVJVK $.

  $( A strictly monotone ordinal function preserves weak ordering.
     (Contributed by Mario Carneiro, 4-Mar-2013.) $)
  smoword $p |- ( ( ( F Fn A /\ Smo F ) /\ ( C e. A /\ D e. A ) ) ->
    ( C C_ D <-> ( F ` C ) C_ ( F ` D ) ) ) $=
    ( wfn wsmo wa wcel wn cfv word ordelord syl2anc ordtri1 con0 smofvon2 eloni
    wss wb 3syl smoord notbid ancom2s smodm2 adantr simprl simprr 3bitr4d
    simplr ) DAEZDFZGZBAHZCAHZGZGZCBHZIZCDJZBDJZHZIZBCRZUTUSRZULUNUMURVBSULUNUM
    GGUQVAACBDUAUBUCUPBKZCKZVCURSUPAKZUMVEULVGUOADUDUEZULUMUNUFABLMUPVGUNVFVHUL
    UMUNUGACLMBCNMUPUTKZUSKZVDVBSUPUKUTOHVIUJUKUOUIZBDPUTQTUPUKUSOHVJVKCDPUSQTU
    TUSNMUH $.

  ${
    $d A y x $.  $d C x $.  $d F y x $.
    $( A strictly monotone ordinal function is greater than or equal to its
       argument.  Exercise 1 in [TakeutiZaring] p. 50.  (Contributed by Andrew
       Salmon, 23-Nov-2011.)  (Revised by Mario Carneiro, 28-Feb-2013.) $)
    smogt $p |- ( ( F Fn A /\ Smo F /\ C e. A ) -> C C_ ( F ` C ) ) $=
      ( vx vy wcel cfv wss wa cv wi id fveq2 sseq12d con0 w3a word syl2anc wral
      imp wfn wsmo wceq imbi2d smodm2 3adant3 simp3 ordelord vex elon weq eleq1
      sylibr 3anbi3d imbi12d simpl1 simpl2 ordtr1 expcomd sylc syl3anc ralimdva
      pm2.27 simp31 simp32 smofvon2 3ad2ant2 eloni simp33 smoel2 3adantr3 3impa
      wel syl ordtr2 syl22anc 3expia 3expd 3impia dfss3 syl6ibr syldc a1i tfis2
      mpcom com12 vtoclga ) CAUAZCUBZBAFZBBCGZHZWJWHWIIZWLWMDJZWNCGZHZKWMWLKDBA
      WNBUCZWPWLWMWQWNBWOWKWQLWNBCMNUDWMWNAFZWPWHWIWRWPWNOFZWHWIWRPZWPWTWNQZWSW
      TAQZWRXAWHWIXBWRACUEZUFZWHWIWRUGZAWNUHZRWNDUIUJUMWTWPKZWHWIEJZAFZPZXHXHCG
      ZHZKZDEDEUKZWTXJWPXLXNWRXIWHWIWNXHAULUNXNWNXHWOXKXNLWNXHCMNUOXMEWNSZXGKWS
      WTXOXLEWNSZWPWTXMXLEWNWTEDVMZIWHWIXIXMXLKWHWIWRXQUPWHWIWRXQUQWTXQXIWTXBWR
      XQXIKXDXEXBXQWRXIXHWNAURUSUTTXJXLVCVAVBWTXPXHWOFZEWNSWPWTXLXREWNWTXQXLXRK
      ZWHWIWRXQXSKWMWRXQXLXRWHWIWRXQXLPZXRWHWIXTPZXHQZWOQZXLXKWOFZXRYAXAXQYBYAX
      BWRXAWHWIXBXTXCUFWHWIWRXQXLVDXFRWHWIWRXQXLVEWNXHUHRYAWOOFZYCWIWHYEXTWNCVF
      VGWOVHVNWHWIWRXQXLVIWHWIXTYDWMWRXQYDXLAWNXHCVJVKVLYBYCIXLYDIXRXHXKWOVOTVP
      VQVRVSTVBEWNWOVTWAWBWCWDWEVQWFWGWFVS $.
  $}

  ${
    $d A x $.  $d B x $.  $d F x $.
    $( The range of a strictly monotone ordinal function dominates the domain.
       (Contributed by Mario Carneiro, 13-Mar-2013.) $)
    smorndom $p |- ( ( F : A --> B /\ Smo F /\ Ord B ) -> A C_ B ) $=
      ( vx wf wsmo word w3a cv wcel wa cfv wss wfn simpl1 ffn syl simpl2 smodm2
      syl2anc ordelord sylancom simpl3 simpr smogt syl3anc 3ad2antl1 ordtr2 imp
      ffvelrn syl22anc ex ssrdv ) ABCEZCFZBGZHZDABUQDIZAJZURBJZUQUSKZURGZUPURUR
      CLZMZVCBJZUTUQUSAGZVBVACANZUOVFVAUNVGUNUOUPUSOABCPQZUNUOUPUSRZACSTAURUAUB
      UNUOUPUSUCVAVGUOUSVDVHVIUQUSUDAURCUEUFUNUOUSVEUPABURCUJUGVBUPKVDVEKUTURVC
      BUHUIUKULUM $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d F x y $.
    $( The strictly monotone ordinal functions are also epsilon isomorphisms of
       subclasses of ` On ` .  (Contributed by Mario Carneiro, 20-Mar-2013.) $)
    smoiso2 $p |- ( ( Ord A /\ B C_ On ) ->
      ( ( F : A -onto-> B /\ Smo F ) <-> F Isom _E , _E ( A , B ) ) ) $=
      ( vx vy word con0 wss wa wfo wsmo cep cv wbr cfv wral sylan sylanbrc wcel
      adantl wiso wf1o wb wf1 fof smo11 simpl df-f1o wfn fofn smoord epel epelc
      wf 3bitr4g ralrimivva df-isom ex w3a isof1o f1ofo syl 3ad2ant1 smoiso jca
      fvex 3expib com12 impbid ) AFZBGHZIZABCJZCKZIZABLLCUAZVLVOVPVLVOIABCUBZDM
      ZEMZLNZVRCOZVSCOZLNZUCZEAPDAPZVPVOVQVLVOABCUDZVMVQVMABCUNVNWFABCUEABCUFQV
      MVNUGABCUHRTVOWEVLVMCAUIZVNWEABCUJWGVNIZWDDEAAWHVRASVSASIIVRVSSWAWBSVTWCA
      VRVSCUKDEULWAWBVSCVFUMUOUPQTDEABLLCUQRURVPVLVOVPVJVKVOVPVJVKUSVMVNVPVJVMV
      KVPVQVMABLLCUTABCVAVBVCABCVDVEVGVHVI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  "Strong" transfinite recursion
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c recs $.

  $( Notation for a function defined by strong transfinite recursion. $)
  crecs $a class recs ( F ) $.

  $( Define a function ` recs ( F ) ` on ` On ` , the class of ordinal numbers,
     by transfinite recursion given a rule ` F ` which sets the next value
     given all values so far.  See ~ df-rdg for more details on why this
     definition is desirable.  Unlike ~ df-rdg which restricts the update rule
     to use only the previous value, this version allows the update rule to use
     _all_ previous values, which is why it is described as "strong", although
     it is actually more primitive.  See ~ recsfnon and ~ recsval for the
     primary contract of this definition.  (Contributed by Stefan O'Rear,
     18-Jan-2015.)  (Revised by Scott Fenton, 3-Aug-2020.) $)
  df-recs $a |- recs ( F ) = wrecs ( _E , On , F ) $.

  ${
    $d F f x y $.
    $( The old definition of transfinite recursion.  This version is preferred
       for development, as it demonstrates the properties of transfinite
       recursion without relying on well-founded recursion.  (Contributed by
       Scott Fenton, 3-Aug-2020.) $)
    dfrecs3 $p |- recs ( F ) = U. { f | E. x e. On ( f Fn x /\
        A. y e. x ( f ` y ) = ( F ` ( f |` y ) ) ) } $=
      ( con0 cep cv wss wral wa cfv cres wceq wex cab cuni wcel wwe wb syl wrex
      crecs cwrecs wfn cpred w3a df-recs df-wrecs 3anass word wtr ordsson ordtr
      vex elon jca epweon wess mpi anim2i ancoms df-ord sylibr impbii wel ssel2
      predon sseq1d ralbidva dftr3 syl6rbbr pm5.32i 3bitri anbi1i onelon fveq2d
      reseq2d eqeq2d bitr3i anbi2i an12 exbii df-rex bitr4i abbii unieqi 3eqtri
      ) DUBEFDUCCGZAGZUDZWIEHZEFBGZUEZWIHZBWIIZJZWLWHKZWHWMLZDKZMZBWIIZUFZANZCO
      ZPWJWQWHWLLZDKZMZBWIIZJZAEUAZCOZPDUGABEFCDUHXDXKXCXJCXCWIEQZXIJZANXJXBXMA
      XBWJWPXAJZJWJXLXHJZJXMWJWPXAUIXNXOWJXNXLXAJXOXLWPXAXLWIUJZWKWIUKZJZWPWIAU
      NUOXPXRXPWKXQWIULWIUMUPXRXQWIFRZJZXPXQWKXTWKXSXQWKEFRXSUQWIEFURUSUTVAWIVB
      VCVDWKXQWOWKWOWLWIHZBWIIXQWKWNYABWIWKBAVEZJWLEQZWNYASWIEWLVFYCWMWLWIWLVGZ
      VHTVIBWIVJVKVLVMVNXLXAXHXLWTXGBWIXLYBJYCWTXGSWIWLVOYCWSXFWQYCWRXEDYCWMWLW
      HYDVQVPVRTVIVLVSVTWJXLXHWAVMWBXIAEWCWDWEWFWG $.
  $}

  $( Equality theorem for ` recs ` .  (Contributed by Stefan O'Rear,
     18-Jan-2015.) $)
  recseq $p |- ( F = G -> recs ( F ) = recs ( G ) ) $=
    ( wceq con0 cep cwrecs crecs wrecseq3 df-recs 3eqtr4g ) ABCDEAFDEBFAGBGDEAB
    HAIBIJ $.

  ${
    nfrecs.f $e |- F/_ x F $.
    $( Bound-variable hypothesis builder for ` recs ` .  (Contributed by Stefan
       O'Rear, 18-Jan-2015.) $)
    nfrecs $p |- F/_ x recs ( F ) $=
      ( crecs con0 cep cwrecs df-recs nfcv nfwrecs nfcxfr ) ABDEFBGBHAEFBAFIAEI
      CJK $.
  $}

  ${
    $d A u w x y z $.  $d B x $.  $d F u w x y z $.  $d G u w x y z $.
    $d ph u w y z $.
    tfrlem1.1 $e |- ( ph -> A e. On ) $.
    tfrlem1.2 $e |- ( ph -> ( Fun F /\ A C_ dom F ) ) $.
    tfrlem1.3 $e |- ( ph -> ( Fun G /\ A C_ dom G ) ) $.
    tfrlem1.4 $e |- ( ph -> A. x e. A ( F ` x ) = ( B ` ( F |` x ) ) ) $.
    tfrlem1.5 $e |- ( ph -> A. x e. A ( G ` x ) = ( B ` ( G |` x ) ) ) $.
    $( A technical lemma for transfinite recursion.  Compare Lemma 1 of
       [TakeutiZaring] p. 47.  (Contributed by NM, 23-Mar-1995.)  (Revised by
       Mario Carneiro, 24-May-2019.) $)
    tfrlem1 $p |- ( ph -> A. x e. A ( F ` x ) = ( G ` x ) ) $=
      ( vz wss cv cfv wceq wral wcel wi wa vy vw ssid con0 sseq1 imbi12d imbi2d
      raleq r19.21v cres cdm wfn wfun ad4antr simpld funfn sylib eloni ad3antlr
      vu ordelss sylan simplr sstrd simprd fnssres syl2anc simpr simp-4r adantr
      word rspcv syl3c fveq2 eqeq12d fvres adantl 3eqtr4d eqfnfvd fveq2d sselda
      sylc reseq2 rspcva ralrimiva cbvralv sylibr exp31 expcom a2d syl5bi tfis3
      mpcom mpi ) ACCMZBNZEOZWPFOZPZBCQZCUCCUDRAWOWTSZGAUANZCMZWSBXBQZSZSZALNZC
      MZWSBXGQZSZSZAXASUALCXBXGPZXEXJAXLXCXHXDXIXBXGCUEWSBXBXGUHUFUGXBCPZXEXAAX
      MXCWOXDWTXBCCUEWSBXBCUHUFUGXKLXBQAXJLXBQZSXBUDRZXFAXJLXBUIXOAXNXEAXOXNXES
      AXOTZXNXCXDXPXNTZXCTZUBNZEOZXSFOZPZUBXBQXDXRYBUBXBXRXSXBRZTZEXSUJZDOZFXSU
      JZDOZXTYAYDYEYGDYDUTXSYEYGYDEEUKZULZXSYIMYEXSULYDEUMZYJYDYKCYIMZAYKYLTXOX
      NXCYCHUNZUOEUPUQYDXSCYIYDXSXBCXRXBVKZYCXSXBMXOYNAXNXCXBURUSXBXSVAVBXQXCYC
      VCVDZYDYKYLYMVEVDYIXSEVFVGYDFFUKZULZXSYPMYGXSULYDFUMZYQYDYRCYPMZAYRYSTXOX
      NXCYCIUNZUOFUPUQYDXSCYPYOYDYRYSYTVEVDYPXSFVFVGYDUTNZXSRZTZUUAEOZUUAFOZUUA
      YEOZUUAYGOZUUCUUBWSBXSQZUUDUUEPZYDUUBVHUUCYCXNXSCMZUUHXRYCUUBVCXPXNXCYCUU
      BVIYDUUJUUBYOVJXJUUJUUHSLXSXBXGXSPXHUUJXIUUHXGXSCUEWSBXGXSUHUFVLVMWSUUIBU
      UAXSWPUUAPWQUUDWRUUEWPUUAEVNWPUUAFVNVOVLWBUUBUUFUUDPYDUUAXSEVPVQUUBUUGUUE
      PYDUUAXSFVPVQVRVSVTYDXSCRZWQEWPUJZDOZPZBCQZXTYFPZXRXBCXSXQXCVHWAZAUUOXOXN
      XCYCJUNUUNUUPBXSCWPXSPZWQXTUUMYFWPXSEVNZUURUULYEDWPXSEWCVTVOWDVGYDUUKWRFW
      PUJZDOZPZBCQZYAYHPZUUQAUVCXOXNXCYCKUNUVBUVDBXSCUURWRYAUVAYHWPXSFVNZUURUUT
      YGDWPXSFWCVTVOWDVGVRWEWSYBBUBXBUURWQXTWRYAUUSUVEVOWFWGWHWIWJWKWLWMWN $.
  $}

  ${
    $d g A $.  $d f g w x y z F $.  $d f w x y z G $.
    tfrlem3.1 $e |- A = { f | E. x e. On ( f Fn x /\
                A. y e. x ( f ` y ) = ( F ` ( f |` y ) ) ) } $.
    ${
      tfrlem3.2 $e |- G e. _V $.
      $( Lemma for transfinite recursion.  Let ` A ` be the class of
         "acceptable" functions.  The final thing we're interested in is the
         union of all these acceptable functions.  This lemma just changes some
         bound variables in ` A ` for later use.  (Contributed by NM,
         9-Apr-1995.) $)
      tfrlem3a $p |- ( G e. A <-> E. z e. On ( G Fn z /\
                  A. w e. z ( G ` w ) = ( F ` ( G |` w ) ) ) ) $=
        ( cv wfn cfv cres wceq wral wa con0 wrex fneq12 simpll fveq12d reseq12d
        simpr fveq2d eqeq12d simplr cbvraldva2 anbi12d cbvrexdva elab2 ) FKZAKZ
        LZBKZULMZULUONZGMZOZBUMPZQZARSHCKZLZDKZHMZHVDNZGMZOZDVBPZQZCRSFHEJULHOZ
        VAVJACRVKUMVBOZQZUNVCUTVIUMVBULHTVMUSVHBDUMVBVMUOVDOZQZUPVEURVGVOUOVDUL
        HVKVLVNUAZVMVNUDZUBVOUQVFGVOULHUOVDVPVQUCUEUFVKVLVNUGUHUIUJIUK $.
    $}

    $( Lemma for transfinite recursion.  Let ` A ` be the class of "acceptable"
       functions.  The final thing we're interested in is the union of all
       these acceptable functions.  This lemma just changes some bound
       variables in ` A ` for later use.  (Contributed by NM, 9-Apr-1995.) $)
    tfrlem3 $p |- A = { g | E. z e. On ( g Fn z /\
                A. w e. z ( g ` w ) = ( F ` ( g |` w ) ) ) } $=
      ( cv wfn cfv cres wceq wral wa con0 wrex vex tfrlem3a abbi2i ) GJZCJZKDJZ
      UBLUBUDMHLNDUCOPCQRGEABCDEFHUBIGSTUA $.
  $}

  ${
    $d f g x y z B $.  $d f x y z C $.  $d a f g h u v w x y z F $.
    $d g h z A $.
    tfrlem.1 $e |- A = { f | E. x e. On ( f Fn x /\
                A. y e. x ( f ` y ) = ( F ` ( f |` y ) ) ) } $.
    $( Lemma for transfinite recursion. ` A ` is the class of all "acceptable"
       functions, and ` F ` is their union.  First we show that an acceptable
       function is in fact a function.  (Contributed by NM, 9-Apr-1995.) $)
    tfrlem4 $p |- ( g e. A -> Fun g ) $=
      ( vz vw cv wcel wfn cfv cres wceq wral wa con0 wrex wfun abeq2i rexlimivw
      tfrlem3 fnfun adantr sylbi ) EJZCKUGHJZLZIJZUGMUGUJNFMOIUHPZQZHRSZUGTZUME
      CABHICDEFGUCUAULUNHRUIUNUKUHUGUDUEUBUF $.

    $( Lemma for transfinite recursion.  The values of two acceptable functions
       are the same within their domains.  (Contributed by NM, 9-Apr-1995.)
       (Revised by Mario Carneiro, 24-May-2019.) $)
    tfrlem5 $p |- ( ( g e. A /\ h e. A ) ->
                    ( ( x g u /\ x h v ) -> u = v ) ) $=
      ( vz va vw cv wcel cfv wceq wral wa con0 wfn cres wrex wi tfrlem3a reeanv
      wbr vex w3a cin simp2ll simp3l fnbr syl2anc simp2rl simp3r elind 3ad2ant1
      onin wfun cdm wss fnfun syl inss1 fndm syl5sseqr jca inss2 simp2lr ssralv
      mpsyl simp2rr tfrlem1 fveq2 eqeq12d sylc funbrfv 3eqtr3d rexlimivv sylbir
      rspcv 3exp syl2anb ) GNZEOWEKNZUAZLNZWEPZWEWHUBIPQZLWFRZSZKTUCZHNZMNZUAZW
      HWNPZWNWHUBIPQZLWORZSZMTUCZANZDNZWEUGZXBCNZWNUGZSZXCXEQZUDZWNEOABKLEFIWEJ
      GUHUEABMLEFIWNJHUHUEWMXASWLWTSZMTUCKTUCXIWLWTKMTTUFXJXIKMTTWFTOWOTOSZXJXG
      XHXKXJXGUIZXBWEPZXBWNPZXCXEXLXBWFWOUJZOWIWQQZLXORXMXNQZXLWFWOXBXLWGXDXBWF
      OWGWKWTXKXGUKZXKXJXDXFULZWFXBXCWEUMUNXLWPXFXBWOOWPWSWLXKXGUOZXKXJXDXFUPZW
      OXBXEWNUMUNUQXLLXOIWEWNXKXJXOTOXGWFWOUSURXLWEUTZXOWEVAZVBXLWGYBXRWFWEVCVD
      ZXLWFXOYCWFWOVEZXLWGYCWFQXRWFWEVFVDVGVHXLWNUTZXOWNVAZVBXLWPYFXTWOWNVCVDZX
      LWOXOYGWFWOVIZXLWPYGWOQXTWOWNVFVDVGVHXOWFVBXLWKWJLXORYEWGWKWTXKXGVJWJLXOW
      FVKVLXOWOVBXLWSWRLXORYIWPWSWLXKXGVMWRLXOWOVKVLVNXPXQLXBXOWHXBQWIXMWQXNWHX
      BWEVOWHXBWNVOVPWBVQXLYBXDXMXCQYDXSXBXCWEVRVQXLYFXFXNXEQYHYAXBXEWNVRVQVSWC
      VTWAWD $.

    $( Lemma for transfinite recursion.  The definition ` recs ` is the union
       of all acceptable functions.  (Contributed by Mario Carneiro,
       9-May-2015.) $)
    recsfval $p |- recs ( F ) = U. A $=
      ( crecs cv wfn cfv cres wceq wral wa con0 wrex cab cuni dfrecs3 unieqi
      eqtr4i ) EGDHZAHZIBHZUBJUBUDKEJLBUCMNAOPDQZRCRABDESCUEFTUA $.

    $( Lemma for transfinite recursion.  The union of all acceptable functions
       is a relation.  (Contributed by NM, 8-Aug-1994.)  (Revised by Mario
       Carneiro, 9-May-2015.) $)
    tfrlem6 $p |- Rel recs ( F ) $=
      ( vg crecs wrel cuni reluni wcel wfun tfrlem4 funrel syl mprgbir recsfval
      cv releqi mpbir ) EHZICJZIZUDGSZIZGCGCKUECLUEMUFABCDGEFNUEOPQUBUCABCDEFRT
      UA $.

    $( Lemma for transfinite recursion.  The union of all acceptable functions
       is a function.  (Contributed by NM, 9-Aug-1994.)  (Revised by Mario
       Carneiro, 24-May-2019.) $)
    tfrlem7 $p |- Fun recs ( F ) $=
      ( vu vv vg vh cv cop wcel wa wal wex eleq2i eluni bitri anbi12i wfun wrel
      crecs wceq wi tfrlem6 cuni recsfval eeanv bitr4i wbr df-br tfrlem5 impcom
      sylanbr an4s exlimivv sylbi ax-gen gen2 dffun4 mpbir2an ) EUCZUAVCUBAKZGK
      ZLZVCMZVDHKZLZVCMZNZVEVHUDZUEZHOZGOAOABCDEFUFVNAGVMHVKVFIKZMZVOCMZNZVIJKZ
      MZVSCMZNZNZJPIPZVLVKVRIPZWBJPZNWDVGWEVJWFVGVFCUGZMWEVCWGVFABCDEFUHZQIVFCR
      SVJVIWGMWFVCWGVIWHQJVICRSTVRWBIJUIUJWCVLIJVPVTVQWAVLVPVTNVDVEVOUKZVDVHVSU
      KZNZVQWANZVLWIVPWJVTVDVEVOULVDVHVSULTWLWKVLABHGCDIJEFUMUNUOUPUQURUSUTAGHV
      CVAVB $.

    $( Lemma for transfinite recursion.  The domain of ` recs ` is an ordinal.
       (Contributed by NM, 14-Aug-1994.)  (Proof shortened by Alan Sare,
       11-Mar-2008.) $)
    tfrlem8 $p |- Ord dom recs ( F ) $=
      ( vz vg vw cdm word cv wceq wrex cuni con0 wcel cfv rexlimiv ax-mp cab wi
      crecs wss wfn cres wral tfrlem3 abeq2i fndm adantr eleq1d biimprcd eleq1a
      wa sylbi syl abssi ssorduni wb ciun recsfval dmeqi vex dmex dfiun2 3eqtri
      dmuni ordeq mpbir ) EUCZJZKZGLZHLZJZMZHCNZGUAZOZKZVSPUDWAVRGPVQVNPQZHCVOC
      QZVPPQZVQWBUBWCVOVNUEZILZVORVOWFUFERMIVNUGZUOZGPNZWDWIHCABGICDHEFUHUIWHWD
      GPWHWDWBWHVPVNPWEVPVNMWGVNVOUJUKULUMSUPVPPVNUNUQSURVSUSTVLVTMVMWAUTVLCOZJ
      HCVPVAVTVKWJABCDEFVBVCHCVHHGCVPVOHVDVEVFVGVLVTVITVJ $.

    $( Lemma for transfinite recursion.  Here we compute the value of ` recs `
       (the union of all acceptable functions).  (Contributed by NM,
       17-Aug-1994.) $)
    tfrlem9 $p |- ( B e. dom recs ( F ) ->
      ( recs ( F ) ` B ) = ( F ` ( recs ( F ) |` B ) ) ) $=
      ( vz cdm wcel cv wex cfv cres wceq wa con0 wi syl com3l crecs cop ibi wfn
      eldm2g wral wrex cab cuni dfrecs3 eleq2i eluniab bitri wss abeq2i elssuni
      fnop rspe recsfval syl6sseqr sylbir fveq2 reseq2 fveq2d rspcv fndm eleq2d
      eqeq12d wfun tfrlem7 funssfv mp3an1 adantrl eleq1d onelss imp31 fun2ssres
      syl6bir w3a sylan2 exbiri exp31 com34 com24 sylbird syld imp4d mpdi exp4d
      ex com4r pm2.43i imp4a rexlimdv imp exlimiv sylbi ) DFUAZIZJZDHKZUBZWRJZH
      LZDWRMZWRDNZFMZOZWTXDHDWRWSUEUCXCXHHXCXBEKZJZXIAKZUDZBKZXIMZXIXMNZFMZOZBX
      KUFZPZAQUGZPZELZXHXCXBXTEUHUIZJYBWRYCXBABEFUJUKXTEXBULUMYAXHEXJXTXHXJXSXH
      AQXJXKQJZXLXRXHXLXJYDXRXHRZXLXJYDYERRXLXJYDXLYEXLXJYDXLYERRXLXJPZYDXLXRXH
      YFDXKJZYDXSPZXHRXKDXAXIUQYGYHXIWRUNZXHYHXTYIXSAQURXTXICJZYIXTECGUOYJXICUI
      WRXICUPABCEFGUSUTVASYGYDXLXRYIXHRZYGXRXLYDYKYGXRDXIMZXIDNZFMZOZXLYDYKRZRX
      QYOBDXKXMDOZXNYLXPYNXMDXIVBYQXOYMFXMDXIVCVDVHVEXLYGYOYPXLYGDXIIZJZYOYPRXL
      YRXKDXKXIVFZVGXLYDYOYSYKXLYDYSYOYKXLYDYSYOYKRYIXLYDPZYSPZYOXHYIUUBXHYOYIU
      UBPXEYLXGYNYIYSXEYLOZUUAWRVIZYIYSUUCABCEFGVJZDWRXIVKVLVMUUBYIDYRUNZXGYNOZ
      XLYDYSUUFXLYDYRQJYSUUFRXLYRXKQYTVNYRDVOVRVPUUDYIUUFUUGUUEUUDYIUUFVSXFYMFD
      WRXIVQVDVLVTVHWATWBWCWDWETWFWDWGWHSWIWJWKWLTWMWNWOWPWQWPS $.

    $( Lemma for transfinite recursion.  Without using ~ ax-rep , show that all
       the restrictions of ` recs ` are sets.  (Contributed by Mario Carneiro,
       16-Nov-2014.) $)
    tfrlem9a $p |- ( B e. dom recs ( F ) -> ( recs ( F ) |` B ) e. _V ) $=
      ( vg vz va cdm wcel cfv cv wa cres cvv wceq con0 wss cop wex wfun tfrlem7
      crecs funfvop mpan cuni recsfval eleq2i eluni bitri sylib wfn wral simprr
      wrex vex tfrlem3a a1i simplrr elssuni syl6sseqr word fndm ad2antll simprl
      syl eqeltrd eloni wbr simpll fvexd simplrl sylibr breldmg syl3anc ordelss
      df-br syl2anc fun2ssres resex expr adantrd rexlimdva mpd exlimddv ) DFUEZ
      KZLZDDWHMZUAZHNZLZWMCLZOZWHDPZQLZHWJWLWHLZWPHUBZWHUCZWJWSABCEFGUDZDWHUFUG
      WSWLCUHZLWTWHXCWLABCEFGUIZUJHWLCUKULUMWJWPOZWMINZUNZJNZWMMWMXHPFMRJXFUOZO
      ZISUQZWRXEWOXKWJWNWOUPABIJCEFWMGHURZUSUMXEXJWRISXEXFSLZOXGWRXIXEXMXGWRXEX
      MXGOZOZWQWMDPZQXOXAWMWHTDWMKZTZWQXPRXAXOXBUTXOWMXCWHXOWOWMXCTWJWNWOXNVAWM
      CVBVHXDVCXOXQVDZDXQLZXRXOXQSLXSXOXQXFSXGXQXFRXEXMXFWMVEVFXEXMXGVGVIXQVJVH
      XOWJWKQLDWKWMVKZXTWJWPXNVLXODWHVMXOWNYAWJWNWOXNVNDWKWMVSVODWKWIQWMVPVQXQD
      VRVTDWHWMWAVQXPQLXOWMDXLWBUTVIWCWDWEWFWG $.

    ${
      tfrlem.3 $e |- C = ( recs ( F ) u. { <. dom recs ( F ) ,
        ( F ` recs ( F ) ) >. } ) $.
      $( Lemma for transfinite recursion.  We define class ` C ` by extending
         ` recs ` with one ordered pair.  We will assume, falsely, that domain
         of ` recs ` is a member of, and thus not equal to, ` On ` .  Using
         this assumption we will prove facts about ` C ` that will lead to a
         contradiction in ~ tfrlem14 , thus showing the domain of ` recs ` does
         in fact equal ` On ` .  Here we show (under the false assumption) that
         ` C ` is a function extending the domain of ` recs ( F ) ` by one.
         (Contributed by NM, 14-Aug-1994.)  (Revised by Mario Carneiro,
         9-May-2015.) $)
      tfrlem10 $p |- ( dom recs ( F ) e. On -> C Fn suc dom recs ( F ) ) $=
        ( crecs cdm con0 wcel csn cun wfn wfun wceq cin c0 cvv cfv csuc wa fvex
        cop funsng mpan2 tfrlem7 jctil dmsnop ineq2i word tfrlem8 orddisj ax-mp
        eqtri funun sylancl uneq2i df-suc 3eqtr4i df-fn sylanblrc fneq1i sylibr
        dmun ) FIZJZKLZVGVHVGFUAZUEMZNZVHUBZOZDVMOVIVLPZVLJZVMQVNVIVGPZVKPZUCVH
        VKJZRZSQVOVIVRVQVIVJTLVRVGFUDZVHVJKTUFUGABCEFGUHUIVTVHVHMZRZSVSWBVHVHVJ
        WAUJZUKVHULWCSQABCEFGUMVHUNUOUPVGVKUQURVHVSNVHWBNVPVMVSWBVHWDUSVGVKVFVH
        UTVAVLVMVBVCVMDVLHVDVE $.

      $( Lemma for transfinite recursion.  Compute the value of ` C ` .
         (Contributed by NM, 18-Aug-1994.)  (Revised by Mario Carneiro,
         9-May-2015.) $)
      tfrlem11 $p |- ( dom recs ( F ) e. On ->
         ( B e. suc dom recs ( F ) -> ( C ` B ) = ( F ` ( C |` B ) ) ) ) $=
        ( wcel wceq con0 cfv cres wi wa syl wss cop csn cdm csuc wo elsuci wfun
        crecs wfn tfrlem10 fnfun cun ssun1 tfrlem9 funssfv 3expa adantrl onelss
        sseqtr4i imp fun2ssres fveq2d sylan2 eqeq12d syl5ibr mpanl2 sylan exp32
        pm2.43i pm2.43d opex snid opeq1 adantl eqimss mp3an2 syl2an reseq2 wrel
        tfrlem6 resdm ax-mp syl6eq eqtrd opeq2d sneqd syl5eleq syl6eleqr adantr
        elun2 wb simpr sucidg eqeltrd fnopfvb syl2anc mpbird ex jaod syl5 ) DGU
        FZUAZUBZJZDWTJZDWTKZUCWTLJZDEMZEDNZGMZKZDWTUDXEXCXIXDXEXCXIXEXCXCXIOZOX
        EXEXCXJXEEUEZXEXCPZXJXEEXAUGZXKABCEFGHIUHZXAEUIQZXKWSERZXLXJWSWSWTWSGMZ
        SZTZUJZEWSXSUKIUQZXCXIXKXPPZXLPZDWSMZWSDNZGMZKABCDFGHULYCXFYDXHYFYBXCXF
        YDKZXEXKXPXCYGDEWSUMUNUOXLYBDWTRZXHYFKXEXCYHWTDUPURYBYHPXGYEGXKXPYHXGYE
        KZDEWSUSZUNUTVAVBVCVDVEVFVGVHXEXDXIXEXDPZXIDXHSZEJZYKYLXTEYKYLXSJYLXTJY
        KYLYLTXSYLDXHVIVJYKYLXRYKYLWTXHSZXRXDYLYNKXEDWTXHVKVLYKXHXQWTYKXGWSGYKX
        GYEWSXEXKYHYIXDXODWTVMXKXPYHYIYAYJVNVOXDYEWSKXEXDYEWSWTNZWSDWTWSVPWSVQY
        OWSKABCFGHVRWSVSVTWAVLWBUTWCWBWDWEYLXSWSWHQIWFYKXMXBXIYMWIXEXMXDXNWGYKD
        WTXAXEXDWJXEWTXAJXDWTLWKWGWLXADXHEWMWNWOWPWQWR $.

      $( Lemma for transfinite recursion.  Show ` C ` is an acceptable
         function.  (Contributed by NM, 15-Aug-1994.)  (Revised by Mario
         Carneiro, 9-May-2015.) $)
      tfrlem12 $p |- ( recs ( F ) e. _V -> C e. A ) $=
        ( vz cvv wcel cv wfn cfv cres wceq wral wa con0 wrex crecs word tfrlem8
        cdm dmexg elon2 sylanbrc csuc suceloni tfrlem10 tfrlem11 ralrimiv fveq2
        reseq2 fveq2d eqeq12d cbvralv sylib fneq2 raleq anbi12d rspcev syl12anc
        a1i syl wb cop csn snex unexg mpan2 syl5eqel fneq1 fveq1 reseq1 ralbidv
        cun rexbidv elab2g mpbird ) FUAZJKZDCKZDALZMZBLZDNZDWFOZFNZPZBWDQZRZAST
        ZWBWAUDZSKZWMWBWNUBZWNJKWOWPWBABCEFGUCVDWAJUEWNUFUGWOWNUHZSKDWQMZWJBWQQ
        ZWMWNUIABCDEFGHUJWOILZDNZDWTOZFNZPZIWQQWSWOXDIWQABCWTDEFGHUKULXDWJIBWQW
        TWFPZXAWGXCWIWTWFDUMXEXBWHFWTWFDUNUOUPUQURWLWRWSRAWQSWDWQPWEWRWKWSWDWQD
        USWJBWDWQUTVAVBVCVEWBDJKWCWMVFWBDWAWNWAFNVGZVHZVQZJHWBXGJKXHJKXFVIWAXGJ
        JVJVKVLELZWDMZWFXINZXIWFOZFNZPZBWDQZRZASTWMEDCJXIDPZXPWLASXQXJWEXOWKWDX
        IDVMXQXNWJBWDXQXKWGXMWIWFXIDVNXQXLWHFXIDWFVOUOUPVPVAVRGVSVEVT $.
    $}

    $( Lemma for transfinite recursion.  If ` recs ` is a set function, then
       ` C ` is acceptable, and thus a subset of ` recs ` , but ` dom C ` is
       bigger than ` dom recs ` .  This is a contradiction, so ` recs ` must be
       a proper class function.  (Contributed by NM, 14-Aug-1994.)  (Revised by
       Mario Carneiro, 14-Nov-2014.) $)
    tfrlem13 $p |- -. recs ( F ) e. _V $=
      ( crecs cvv wcel cdm word wn tfrlem8 ordirr ax-mp cfv cop wss 3syl con0
      csn cun eqid tfrlem12 cuni elssuni recsfval syl6sseqr dmss csuc a1i dmexg
      elon2 sylanbrc sucidg syl wfn wceq tfrlem10 fndm eleqtrrd sseldd mto ) EG
      ZHIZVDJZVFIZVFKZVGLABCDEFMZVFNOVEVDVFVDEPQUAUBZJZVFVFVEVJCIZVJVDRVKVFRABC
      VJDEFVJUCZUDVLVJCUEVDVJCUFABCDEFUGUHVJVDUISVEVFVFUJZVKVEVFTIZVFVNIVEVHVFH
      IVOVHVEVIUKVDHULVFUMUNZVFTUOUPVEVOVJVNUQVKVNURVPABCVJDEFVMUSVNVJUTSVAVBVC
      $.

    $( Lemma for transfinite recursion.  Assuming ~ ax-rep ,
       ` dom recs e. _V <-> recs e. _V ` , so since ` dom recs ` is an ordinal,
       it must be equal to ` On ` .  (Contributed by NM, 14-Aug-1994.)
       (Revised by Mario Carneiro, 9-May-2015.) $)
    tfrlem14 $p |- dom recs ( F ) = On $=
      ( crecs cdm con0 wcel wceq cvv tfrlem13 wfun tfrlem7 funex mpan mto word
      wo tfrlem8 ordeleqon mpbi mtpor ) EGZHZIJZUFIKZUGUELJZABCDEFMUENUGUIABCDE
      FOIUEPQRUFSUGUHTABCDEFUAUFUBUCUD $.

    $( Lemma for transfinite recursion.  Without assuming ~ ax-rep , we can
       show that all proper initial subsets of ` recs ` are sets, while nothing
       larger is a set.  (Contributed by Mario Carneiro, 14-Nov-2014.) $)
    tfrlem15 $p |- ( B e. On ->
        ( B e. dom recs ( F ) <-> ( recs ( F ) |` B ) e. _V ) ) $=
      ( con0 wcel crecs cdm cres cvv tfrlem9a adantl wa wss wn tfrlem13 word wb
      simpr resss a1i wrel tfrlem6 resdm ax-mp ssres2 syl5eqssr eqssd syl5ibcom
      wceq eleq1d tfrlem8 eloni adantr ordtri1 con2bid sylancr mpbird impbida
      mtoi ) DHIZDFJZKZIZVEDLZMIZVGVIVDABCDEFGNOVDVIPZVGVFDQZRZVJVKVEMIZABCEFGS
      VJVIVKVMVDVIUBVKVHVEMVKVHVEVHVEQVKVEDUCUDVKVEVEVFLZVHVEUEVNVEUMABCEFGUFVE
      UGUHVFDVEUIUJUKUNULVCVJVFTZDTZVGVLUAABCEFGUOVDVPVIDUPUQVOVPPVKVGVFDURUSUT
      VAVB $.

    $( Lemma for finite recursion.  Without assuming ~ ax-rep , we can show
       that the domain of the constructed function is a limit ordinal, and
       hence contains all the finite ordinals.  (Contributed by Mario Carneiro,
       14-Nov-2014.) $)
    tfrlem16 $p |- Lim dom recs ( F ) $=
      ( vz crecs cdm c0 wceq cv con0 wcel cres cvv ax-mp pm2.21i csn cun ordzsl
      csuc wrex wlim w3o word tfrlem8 mpbi res0 eqeltri wb 0elon tfrlem15 mpbir
      n0ii tfrlem13 wa simpr df-suc syl6eq reseq2d wrel tfrlem6 resundi 3eqtr3g
      0ex resdm vex sucid syl5eleqr tfrlem9a syl cfv cop snex wfun wss funressn
      tfrlem7 ssexi unexg sylancl eqeltrd rexlimiva mto id 3jaoi ) EHZIZJKZWIGL
      ZUBZKZGMUCZWIUDZUEZWOWIUFWPABCDEFUGGWIUAUHWJWOWNWOWJWOJWIJWINZWHJOZPNZWRJ
      PWHUIVFUJJMNWQWSUKULABCJDEFUMQUNUORWNWOWNWHPNZABCDEFUPWMWTGMWKMNZWMUQZWHW
      HWKOZWHWKSZOZTZPXBWHWIOZWHWKXDTZOWHXFXBWIXHWHXBWIWLXHXAWMURZWKUSUTVAWHVBX
      GWHKABCDEFVCWHVGQWHWKXDVDVEXBXCPNZXEPNXFPNXBWKWINXJXBWKWLWIWKGVHVIXIVJABC
      WKDEFVKVLXEWKWKWHVMVNZSZXKVOWHVPXEXLVQABCDEFVSWKWHVRQVTXCXEPPWAWBWCWDWERW
      OWFWGQ $.
  $}

  ${
    $d f x y A $.  $d x y B $.  $d x y F $.  $d f x y G $.
    tfr.1 $e |- F = recs ( G ) $.
    $( A weak version of ~ tfr1 which is useful for proofs that avoid the Axiom
       of Replacement.  (Contributed by Mario Carneiro, 24-Jun-2015.) $)
    tfr1a $p |- ( Fun F /\ Lim dom F ) $=
      ( vx vy vf wfun cdm wlim crecs cv wfn cfv cres wceq wral con0 wrex mpbir
      wa cab eqid tfrlem7 funeqi tfrlem16 wb dmeqi limeq ax-mp pm3.2i ) AGZAHZI
      ZUKBJZGDEFKZDKZLEKZUOMUOUQNBMOEUPPTDQRFUAZFBURUBZUCAUNCUDSUMUNHZIZDEURFBU
      SUEULUTOUMVAUFAUNCUGULUTUHUISUJ $.

    $( A weak version of ~ tfr2 which is useful for proofs that avoid the Axiom
       of Replacement.  (Contributed by Mario Carneiro, 24-Jun-2015.) $)
    tfr2a $p |- ( A e. dom F -> ( F ` A ) = ( G ` ( F |` A ) ) ) $=
      ( vx vy vf cdm wcel crecs cfv cres wceq cv wfn wral wa con0 wrex cab eqid
      tfrlem9 dmeqi eleq2s fveq1i reseq1i fveq2i 3eqtr4g ) ABHZIACJZKZUJALZCKZA
      BKBALZCKUKUMMAUJHUIEFGNZENZOFNZUOKUOUQLCKMFUPPQERSGTZAGCURUAUBBUJDUCUDABU
      JDUEUNULCBUJADUFUGUH $.

    $( Without assuming ~ ax-rep , we can show that all proper initial subsets
       of ` recs ` are sets, while nothing larger is a set.  (Contributed by
       Mario Carneiro, 24-Jun-2015.) $)
    tfr2b $p |- ( Ord A -> ( A e. dom F <-> ( F |` A ) e. _V ) ) $=
      ( vx vy vf word con0 wcel wceq wo cdm cres cvv wb cv cfv eleq1i mtbiri wa
      ordeleqon crecs wfn wral wrex cab eqid dmeqi eleq2i reseq1i 3bitr4g onprc
      tfrlem15 elex mto eleq1 tfrlem13 mtbir reseq2 wrel wfun wlim tfr1a simpli
      wss funrel ax-mp simpri limord ordsson mp2b relssres mp2an syl6eq 2falsed
      eleq1d jaoi sylbi ) AHAIJZAIKZLABMZJZBANZOJZPZAUBVTWFWAVTACUCZMZJWGANZOJW
      CWEEFGQZEQZUDFQZWJRWJWLNCRKFWKUEUAEIUFGUGZAGCWMUHZUNWBWHABWGDUIUJWDWIOBWG
      ADUKSULWAWCWEWAWCIWBJZWOIOJUMIWBUOUPAIWBUQTWAWEBOJZWPWGOJEFWMGCWNURBWGODS
      USWAWDBOWAWDBINZBAIBUTBVAZWBIVFZWQBKBVBZWRWTWBVCZBCDVDZVEBVGVHXAWBHWSWTXA
      XBVIWBVJWBVKVLBIVMVNVOVQTVPVRVS $.

    $( Principle of Transfinite Recursion, part 1 of 3.  Theorem 7.41(1) of
       [TakeutiZaring] p. 47.  We start with an arbitrary class ` G ` ,
       normally a function, and define a class ` A ` of all "acceptable"
       functions.  The final function we're interested in is the union
       ` F = recs ( G ) ` of them. ` F ` is then said to be defined by
       transfinite recursion.  The purpose of the 3 parts of this theorem is to
       demonstrate properties of ` F ` .  In this first part we show that ` F `
       is a function whose domain is all ordinal numbers.  (Contributed by NM,
       17-Aug-1994.)  (Revised by Mario Carneiro, 18-Jan-2015.) $)
    tfr1 $p |- F Fn On $=
      ( vx vy vf con0 wfn crecs wfun cdm wceq cv cfv cres wral wa wrex cab eqid
      tfrlem7 tfrlem14 df-fn mpbir2an fneq1i mpbir ) AGHBIZGHZUHUGJUGKGLDEFMZDM
      ZHEMZUINUIUKOBNLEUJPQDGRFSZFBULTZUADEULFBUMUBUGGUCUDGAUGCUEUF $.

    $( Principle of Transfinite Recursion, part 2 of 3.  Theorem 7.41(2) of
       [TakeutiZaring] p. 47.  Here we show that the function ` F ` has the
       property that for any function ` G ` whatsoever, the "next" value of
       ` F ` is ` G ` recursively applied to all "previous" values of ` F ` .
       (Contributed by NM, 9-Apr-1995.)  (Revised by Stefan O'Rear,
       18-Jan-2015.) $)
    tfr2 $p |- ( A e. On -> ( F ` A ) = ( G ` ( F |` A ) ) ) $=
      ( con0 wcel cdm cfv cres wceq wfn tfr1 fndm ax-mp eleq2i tfr2a sylbir ) A
      EFABGZFABHBAICHJREABEKREJBCDLEBMNOABCDPQ $.

    $( Principle of Transfinite Recursion, part 3 of 3.  Theorem 7.41(3) of
       [TakeutiZaring] p. 47.  Finally, we show that ` F ` is unique.  We do
       this by showing that any class ` B ` with the same properties of ` F `
       that we showed in parts 1 and 2 is identical to ` F ` .  (Contributed by
       NM, 18-Aug-1994.)  (Revised by Mario Carneiro, 9-May-2015.) $)
    tfr3 $p |- ( ( B Fn On /\
             A. x e. On ( B ` x ) = ( G ` ( B |` x ) ) ) -> B = F ) $=
      ( vy con0 wfn cv cfv cres wceq wral wa nfv nfra1 wi fveq2 wb imp nfan rsp
      wcel nfim eqeq12d imbi2d r19.21v wss fvreseq mpanl2 syl6bir sylan2 ancoms
      onss tfr1 adantr tfr2 jctr jcab sylibr eqeq12 adantl mpbird exp43 pm2.43d
      syl6 com4t exp4a syl com3l a2d syl5bi tfis2f com12 ralrimi eqfnfv biimpar
      impd mpan2 syldan ) BGHZAIZBJZBWBKZDJZLZAGMZWCWBCJZLZAGMZBCLZWAWGNZWIAGWA
      WGAWAAOWFAGPUAZWBGUCZWLWIWLWIQZWLFIZBJZWPCJZLZQZAFWLWSAWMWSAOUDWBWPLZWIWS
      WLXAWCWQWHWRWBWPBRWBWPCRUEUFWTFWBMWLWSFWBMZQWNWOWLWSFWBUGWNWLXBWIWNWAWGXB
      WIQZWGWNWAXCWGWNWFQZWNWAXCQZQWFAGUBXDWNXEXDWNWNWAXCWNWANZXBXDWNWIXFXBXDWN
      WIXFXBNZXDWNNZNWIWECWBKZDJZLZXGXKXHXFXBXKWAWNXBXKQZWNWAWBGUHZXLWBUNWAXMNX
      BWDXILZXKWACGHZXMXNXBSCDEUOZFGWBBCUIUJWDXIDRUKULUMTUPXHWIXKSZXGXDWNXQXDWN
      WFWHXJLZNZXQXDXDWNXRQZNWNXSQXDXTWBCDEUQURWNWFXRUSUTWCWEWHXJVAVFTVBVCVDVGV
      HVEVIVJVRVKVLVMVNVOWAWKWJWAXOWKWJSXPAGBCVPVSVQVT $.
  $}

  ${
    tfrALT.1 $e |- F = recs ( G ) $.
    $( Alternate proof of ~ tfr1 using well-founded recursion.  (Contributed by
       Scott Fenton, 3-Aug-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    tfr1ALT $p |- F Fn On $=
      ( con0 cep epweon epse crecs cwrecs df-recs eqtri wfr1 ) DEABFDGABHDEBICB
      JKL $.

    $( Alternate proof of ~ tfr2 using well-founded recursion.  (Contributed by
       Scott Fenton, 3-Aug-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    tfr2ALT $p |- ( A e. On -> ( F ` A ) = ( G ` ( F |` A ) ) ) $=
      ( con0 wcel cfv cep cpred cres epweon epse crecs cwrecs eqtri wfr2 predon
      df-recs reseq2d fveq2d eqtrd ) AEFZABGBEHAIZJZCGBAJZCGEHBCAKELBCMEHCNDCRO
      PUBUDUECUBUCABAQSTUA $.

    $d B x $.  $d G x $.  $d F x $.
    $( Alternate proof of ~ tfr3 using well-founded recursion.  (Contributed by
       Scott Fenton, 3-Aug-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    tfr3ALT $p |- ( ( B Fn On /\
             A. x e. On ( B ` x ) = ( G ` ( B |` x ) ) ) -> B = F ) $=
      ( con0 wfn cv cfv cres wceq wral wa cep wcel predon reseq2d fveq2d eqeq2d
      cpred ralbiia epweon epse crecs cwrecs df-recs eqtri wfr3 sylan2br eqcomd
      ) BFGZAHZBIZBULJZDIZKZAFLZMCBUQUKUMBFNULTZJZDIZKZAFLCBKVAUPAFULFOZUTUOUMV
      BUSUNDVBURULBULPQRSUAAFNCDBUBFUCCDUDFNDUEEDUFUGUHUIUJ $.
  $}

  $( Strong transfinite recursion defines a function on ordinals.  (Contributed
     by Stefan O'Rear, 18-Jan-2015.) $)
  recsfnon $p |- recs ( F ) Fn On $=
    ( crecs eqid tfr1 ) ABZAECD $.

  $( Strong transfinite recursion in terms of all previous values.
     (Contributed by Stefan O'Rear, 18-Jan-2015.) $)
  recsval $p |- ( A e. On -> ( recs ( F ) ` A ) =
        ( F ` ( recs ( F ) |` A ) ) ) $=
    ( crecs eqid tfr2 ) ABCZBFDE $.

  ${
    $d x y $.  $d y A $.  $d y H $.
    tz7.44lem1.1 $e |- G = { <. x , y >. | ( ( x = (/) /\ y = A ) \/
            ( -. ( x = (/) \/ Lim dom x ) /\ y = ( H ` ( x ` U. dom x ) ) )
                \/ ( Lim dom x /\ y = U. ran x ) ) } $.
    $( ` G ` is a function.  Lemma for ~ tz7.44-1 , ~ tz7.44-2 , and
       ~ tz7.44-3 .  (Contributed by NM, 23-Apr-1995.)  (Revised by David
       Abernethy, 19-Jun-2012.) $)
    tz7.44lem1 $p |- Fun G $=
      ( wfun cv c0 wceq wa cdm wlim wo cuni cfv cvv wcel wb limeq crn w3o copab
      wn wmo funopab fvex vex rnexg uniexg mp2b nlim0 dm0 ax-mp dmeq syl biimpa
      mtbir mto moeq3 mpgbir funeqi mpbir ) DGAHZIJZBHZCJKVEVDLZMZNUDVFVGOVDPZE
      PZJKVHVFVDUAZOZJKUBZABUCZGZVOVMBUEAVMABUFVEVHBCVJVLVIEUGVDQRVKQRVLQRAUHVD
      QUIVKQUJUKVEVHKILZMZVQIMZULVPIJVQVRSUMVPITUNURVEVHVQVEVGVPJVHVQSVDIUOVGVP
      TUPUQUSUTVADVNFVBVC $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x y F $.  $d y G $.  $d x H $.  $d y X $.
    tz7.44.1 $e |- G = ( x e. _V |-> if ( x = (/) , A ,
                if ( Lim dom x , U. ran x , ( H ` ( x ` U. dom x ) ) ) ) ) $.
    tz7.44.2 $e |- ( y e. X -> ( F ` y ) = ( G ` ( F |` y ) ) ) $.
    ${
      tz7.44-1.3 $e |- A e. _V $.
      $( The value of ` F ` at ` (/) ` .  Part 1 of Theorem 7.44 of
         [TakeutiZaring] p. 49.  (Contributed by NM, 23-Apr-1995.)  (Revised by
         Mario Carneiro, 14-Nov-2014.) $)
      tz7.44-1 $p |- ( (/) e. X -> ( F ` (/) ) = A ) $=
        ( c0 wcel cfv cv cres wceq syl6eq cvv cuni cif fveq2 reseq2 res0 fveq2d
        eqeq12d vtoclga 0ex cdm wlim crn iftrue fvmpt ax-mp ) KGLKDMZKEMZCBNZDM
        ZDUPOZEMZPUNUOPBKGUPKPZUQUNUSUOUPKDUAUTURKEUTURDKOKUPKDUBDUCQUDUEIUFKRL
        UOCPUGAKANZKPZCVAUHZUIVAUJSVCSVAMFMTZTCREVBCVDUKHJULUMQ $.
    $}

    tz7.44.3 $e |- ( y e. X -> ( F |` y ) e. _V ) $.
    tz7.44.4 $e |- F Fn X $.
    tz7.44.5 $e |- Ord X $.
    $( The value of ` F ` at a successor ordinal.  Part 2 of Theorem 7.44 of
       [TakeutiZaring] p. 49.  (Unnecessary distinct variable restrictions were
       removed by David Abernethy, 19-Jun-2012.)  (Contributed by NM,
       23-Apr-1995.)  (Revised by Mario Carneiro, 14-Nov-2014.) $)
    tz7.44-2 $p |- ( suc B e. X -> ( F ` suc B ) = ( H ` ( F ` B ) ) ) $=
      ( wcel cfv c0 wceq cuni cvv syl csuc cres cdm crn cif fveq2 reseq2 fveq2d
      wlim cv eqeq12d vtoclga eleq1d noel dmeq dm0 syl6eq con0 word wss ordsson
      ax-mp wtr ordtr trsuc mpan sseldi sucidg cin dmres ordelss fndm syl6sseqr
      wfn df-ss sylib syl5eq eleqtrrd eleq2 syl5ibcom syl5 iffalsed wn nlimsucg
      mtoi limeq mtbird unieqd eloni ordunisuc eqtrd fvres 3eqtrd fvex syl6eqel
      wb eqeq1 rneq fveq1 ifbieq12d ifbieq2d fvmptg syl2anc ) DUAZHNZXDEOZEXDUB
      ZFOZXGPQZCXGUCZUIZXGUDZRZXJRZXGOZGOZUEZUEZDEOZGOZBUJZEOZEYAUBZFOZQXFXHQBX
      DHYAXDQZYBXFYDXHYAXDEUFYEYCXGFYAXDEUGZUHUKJULXEXGSNZXRSNXHXRQYCSNYGBXDHYE
      YCXGSYFUMKULXEXRXTSXEXRXQXPXTXEXICXQXEXIDPNZDUNXIXJPQZXEYHXIXJPUCPXGPUOUP
      UQXEDXJNYIYHXEDXDXJXEDURNZDXDNZXEHURDHUSZHURUTMHVAVBHVCZXEDHNYLYMMHVDVBHD
      VEVFVGZDURVHTZXEXJXDEUCZVIZXDEXDVJXEXDYPUTYQXDQXEXDHYPYLXEXDHUTMHXDVKVFEH
      VNYPHQLHEVLVBVMXDYPVOVPVQZVRXJPDVSVTWAWEWBXEXKXMXPXEXKXDUIZXEYJYSWCYNDURW
      DTXEXJXDQXKYSWPYRXJXDWFTWGWBXEXOXSGXEXODXGOZXSXEXNDXGXEXNXDRZDXEXJXDYRWHX
      EYJUUADQZYNYJDUSUUBDWIDWJTTWKUHXEYKYTXSQYODXDEWLTWKUHWMZXSGWNWOAXGAUJZPQZ
      CUUDUCZUIZUUDUDZRZUUFRZUUDOZGOZUEZUEXRSSFUUDXGQZUUEXIUUMXQCUUDXGPWQUUNUUG
      XKUUIUULXMXPUUNUUFXJQUUGXKWPUUDXGUOZUUFXJWFTUUNUUHXLUUDXGWRWHUUNUUKXOGUUN
      UUKUUJXGOXOUUJUUDXGWSUUNUUJXNXGUUNUUFXJUUOWHUHWKUHWTXAIXBXCUUCWM $.

    $( The value of ` F ` at a limit ordinal.  Part 3 of Theorem 7.44 of
       [TakeutiZaring] p. 49.  (Contributed by NM, 23-Apr-1995.)  (Revised by
       David Abernethy, 19-Jun-2012.) $)
    tz7.44-3 $p |- ( ( B e. X /\ Lim B ) -> ( F ` B ) = U. ( F " B ) ) $=
      ( wcel wlim cfv cuni wceq c0 cvv wa cres crn cima cv fveq2 reseq2 eqeq12d
      fveq2d vtoclga adantr cdm cif eleq1d simpr wn nlim0 wb cin dmres wss word
      ordelss mpan wfn fndm ax-mp syl6sseqr df-ss sylib syl5eq syl6eq sylan9req
      dmeq dm0 limeq syl mtbiri mt2d iffalsed mpbird iftrued eqtrd rnexg uniexg
      ex 3syl eqeltrd eqeq1 rneq unieqd fveq1 ifbieq12d ifbieq2d fvmptg syl2anc
      df-ima unieqi syl6eqr ) DHNZDOZUAZDEPZEDUBZUCZQZEDUDZQXBXCXDFPZXFWTXCXHRZ
      XABUEZEPZEXJUBZFPZRXIBDHXJDRZXKXCXMXHXJDEUFXNXLXDFXJDEUGZUIUHJUJUKXBXHXDS
      RZCXDULZOZXFXQQZXDPZGPZUMZUMZXFXBXDTNZYCTNXHYCRWTYDXAXLTNYDBDHXNXLXDTXOUN
      KUJUKZXBYCXFTXBYCYBXFXBXPCYBXBXPXAWTXAUOZXBXPXAUPXBXPUAZXASOZUQYGDSRXAYHU
      RXBXPDXQSXBXQDEULZUSZDEDUTXBDYIVAYJDRXBDHYIWTDHVAZXAHVBWTYKMHDVCVDUKEHVEY
      IHRLHEVFVGVHDYIVIVJVKZXPXQSULSXDSVNVOVLVMDSVPVQVRWFVSVTXBXRXFYAXBXRXAYFXB
      XQDRXRXAURYLXQDVPVQWAWBWCZXBYDXETNXFTNYEXDTWDXETWEWGWHAXDAUEZSRZCYNULZOZY
      NUCZQZYPQZYNPZGPZUMZUMYCTTFYNXDRZYOXPUUCYBCYNXDSWIUUDYQXRYSUUBXFYAUUDYPXQ
      RYQXRURYNXDVNZYPXQVPVQUUDYRXEYNXDWJWKUUDUUAXTGUUDUUAYTXDPXTYTYNXDWLUUDYTX
      SXDUUDYPXQUUEWKUIWCUIWMWNIWOWPYMWCWCXGXEEDWQWRWS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Recursive definition generator
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Define a constant for the recursive definition generator. $)
  $c rec $.

  $( Extend class notation with the recursive definition generator, with
     characteristic function ` F ` and initial value ` I ` . $)
  crdg $a class rec ( F , I ) $.

  ${
    $d g F $.  $d g I $.
    $( Define a recursive definition generator on ` On ` (the class of ordinal
       numbers) with characteristic function ` F ` and initial value ` I ` .
       This combines functions ` F ` in ~ tfr1 and ` G ` in ~ tz7.44-1 into one
       definition.  This rather amazing operation allows us to define, with
       compact direct definitions, functions that are usually defined in
       textbooks only with indirect self-referencing recursive definitions.  A
       recursive definition requires advanced metalogic to justify - in
       particular, eliminating a recursive definition is very difficult and
       often not even shown in textbooks.  On the other hand, the elimination
       of a direct definition is a matter of simple mechanical substitution.
       The price paid is the daunting complexity of our ` rec ` operation
       (especially when ~ df-recs that it is built on is also eliminated).  But
       once we get past this hurdle, definitions that would otherwise be
       recursive become relatively simple, as in for example ~ oav , from which
       we prove the recursive textbook definition as theorems ~ oa0 , ~ oasuc ,
       and ~ oalim (with the help of theorems ~ rdg0 , ~ rdgsuc , and
       ~ rdglim2a ).  We can also restrict the ` rec ` operation to define
       otherwise recursive functions on the natural numbers ` _om ` ; see
       ~ fr0g and ~ frsuc .  Our ` rec ` operation apparently does not appear
       in published literature, although closely related is Definition 25.2 of
       [Quine] p. 177, which he uses to "turn...a recursion into a genuine or
       direct definition" (p. 174).  Note that the ` if ` operations (see
       ~ df-if ) select cases based on whether the domain of ` g ` is zero, a
       successor, or a limit ordinal.

       An important use of this definition is in the recursive sequence
       generator ~ df-seq on the natural numbers (as a subset of the complex
       numbers), allowing us to define, with direct definitions, recursive
       infinite sequences such as the factorial function ~ df-fac and integer
       powers ~ df-exp .

       _Note:  We introduce_ ` rec ` _with the philosophical goal of being_
       _able to eliminate all definitions with direct mechanical substitution_
       _and to verify easily the soundness of definitions.  Metamath itself_
       _has no built-in technical limitation that prevents multiple-part_
       _recursive definitions in the traditional textbook style_.  (Contributed
       by NM, 9-Apr-1995.)  (Revised by Mario Carneiro, 9-May-2015.) $)
    df-rdg $a |- rec ( F , I ) = recs ( ( g e. _V |-> if ( g = (/) , I ,
                if ( Lim dom g , U. ran g , ( F ` ( g ` U. dom g ) ) ) ) ) ) $.
  $}

  ${
    $d g F $.  $d g G $.  $d g A $.  $d g B $.
    $( Equality theorem for the recursive definition generator.  (Contributed
       by NM, 9-Apr-1995.)  (Revised by Mario Carneiro, 9-May-2015.) $)
    rdgeq1 $p |- ( F = G -> rec ( F , A ) = rec ( G , A ) ) $=
      ( vg wceq cvv cv cdm wlim crn cuni cfv cif cmpt crecs fveq1 ifeq2d df-rdg
      c0 crdg mpteq2dv recseq syl 3eqtr4g ) BCEZDFDGZSEZAUFHZIZUFJKZUHKUFLZBLZM
      ZMZNZOZDFUGAUIUJUKCLZMZMZNZOZBATCATUEUOUTEUPVAEUEDFUNUSUEUGUMURAUEUIULUQU
      JUKBCPQQUAUOUTUBUCDBARDCARUD $.

    $( Equality theorem for the recursive definition generator.  (Contributed
       by NM, 9-Apr-1995.)  (Revised by Mario Carneiro, 9-May-2015.) $)
    rdgeq2 $p |- ( A = B -> rec ( F , A ) = rec ( F , B ) ) $=
      ( vg wceq cvv cv cdm wlim crn cuni cfv cif cmpt crecs crdg ifeq1 mpteq2dv
      c0 df-rdg recseq syl 3eqtr4g ) ABEZDFDGZSEZAUEHZIUEJKUGKUELCLMZMZNZOZDFUF
      BUHMZNZOZCAPCBPUDUJUMEUKUNEUDDFUIULUFABUHQRUJUMUAUBDCATDCBTUC $.
  $}

  $( Equality theorem for the recursive definition generator.  (Contributed by
     Scott Fenton, 28-Apr-2012.) $)
  rdgeq12 $p |- ( ( F = G /\ A = B ) -> rec ( F , A ) = rec ( G , B ) ) $=
    ( wceq crdg rdgeq2 rdgeq1 sylan9eqr ) ABECDECAFCBFDBFABCGBCDHI $.

  ${
    $d g F $.  $d g A $.  $d x g $.
    nfrdg.1 $e |- F/_ x F $.
    nfrdg.2 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for the recursive definition
       generator.  (Contributed by NM, 14-Sep-2003.)  (Revised by Mario
       Carneiro, 8-Sep-2013.) $)
    nfrdg $p |- F/_ x rec ( F , A ) $=
      ( vg crdg cvv cv c0 wceq cdm wlim crn cuni cfv cif nfcv nfv nfif df-rdg
      cmpt crecs nffv nfmpt nfrecs nfcxfr ) ACBGFHFIZJKZBUHLZMZUHNOZUJOUHPZCPZQ
      ZQZUBZUCFCBUAAUQAFHUPAHRUIABUOUIASEUKAULUNUKASAULRAUMCDAUMRUDTTUEUFUG $.
  $}

  ${
    $d x y f g v $.  $d x y z g $.  $d z f $.  $d f g G $.  $d x z G $.
    $d y z w g v G $.
    $( Lemma used with the recursive definition generator.  This is a trivial
       lemma that just changes bound variables for later use.  (Contributed by
       NM, 9-Apr-1995.) $)
    rdglem1 $p |- { f | E. x e. On ( f Fn x /\
                A. y e. x ( f ` y ) = ( G ` ( f |` y ) ) ) }
                = { g | E. z e. On ( g Fn z /\
                A. w e. z ( g ` w ) = ( G ` ( g |` w ) ) ) } $=
      ( vv cv wfn cfv cres wceq wral wa con0 wrex cab eqid tfrlem3 fveq2 reseq2
      fveq2d eqeq12d cbvralv anbi2i rexbii abbii eqtri ) EIZAIZJBIZUJKUJULLGKMB
      UKNOAPQERZFIZCIZJZHIZUNKZUNUQLZGKZMZHUONZOZCPQZFRUPDIZUNKZUNVELZGKZMZDUON
      ZOZCPQZFRABCHUMEFGUMSTVDVLFVCVKCPVBVJUPVAVIHDUOUQVEMZURVFUTVHUQVEUNUAVMUS
      VGGUQVEUNUBUCUDUEUFUGUHUI $.
  $}

  ${
    $d g F $.  $d g A $.
    $( The recursive definition generator is a function.  (Contributed by Mario
       Carneiro, 16-Nov-2014.) $)
    rdgfun $p |- Fun rec ( F , A ) $=
      ( vg crdg wfun cdm wlim cvv cv c0 wceq crn cuni cfv cif cmpt df-rdg tfr1a
      simpli ) BADZETFGTCHCIZJKAUAFZGUALMUBMUANBNOOPCBAQRS $.

    $( The domain of the recursive definition generator is a limit ordinal.
       (Contributed by NM, 16-Nov-2014.) $)
    rdgdmlim $p |- Lim dom rec ( F , A ) $=
      ( vg crdg wfun cdm wlim cvv cv c0 wceq crn cuni cfv cif cmpt df-rdg tfr1a
      simpri ) BADZETFGTCHCIZJKAUAFZGUALMUBMUANBNOOPCBAQRS $.

    $( The recursive definition generator is a function on ordinal numbers.
       (Contributed by NM, 9-Apr-1995.)  (Revised by Mario Carneiro,
       9-May-2015.) $)
    rdgfnon $p |- rec ( F , A ) Fn On $=
      ( vg crdg cvv cv c0 wceq cdm wlim crn cuni cfv cif cmpt df-rdg tfr1 ) BAD
      CECFZGHARIZJRKLSLRMBMNNOCBAPQ $.
  $}

  ${
    $d g F $.  $d g A $.
    $( Value of the recursive definition generator.  (Contributed by NM,
       9-Apr-1995.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    rdgvalg $p |- ( B e. dom rec ( F , A ) ->
      ( rec ( F , A ) ` B ) = ( ( g e. _V |->
  if ( g = (/) , A , if ( Lim dom g , U. ran g , ( F ` ( g ` U. dom g ) ) ) ) )
                   ` ( rec ( F , A ) |` B ) ) ) $=
      ( crdg cvv cv c0 wceq cdm wlim crn cuni cfv cif cmpt df-rdg tfr2a ) BDAEC
      FCGZHIASJZKSLMTMSNDNOOPCDAQR $.

    $( Value of the recursive definition generator.  (Contributed by NM,
       9-Apr-1995.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    rdgval $p |- ( B e. On -> ( rec ( F , A ) ` B ) = ( ( g e. _V |->
  if ( g = (/) , A , if ( Lim dom g , U. ran g , ( F ` ( g ` U. dom g ) ) ) ) )
                   ` ( rec ( F , A ) |` B ) ) ) $=
      ( crdg cvv cv c0 wceq cdm wlim crn cuni cfv cif cmpt df-rdg tfr2 ) BDAECF
      CGZHIASJZKSLMTMSNDNOOPCDAQR $.
  $}

  ${
    $d x y f g v w F $.  $d x y f g v w A $.  $d f x y B $.
    ${
      rdg.1 $e |- A e. _V $.
      $( The initial value of the recursive definition generator.  (Contributed
         by NM, 23-Apr-1995.)  (Revised by Mario Carneiro, 14-Nov-2014.) $)
      rdg0 $p |- ( rec ( F , A ) ` (/) ) = A $=
        ( vx vy crdg cdm wcel cfv wceq com wlim wss rdgdmlim limomss ax-mp cuni
        c0 cv cif peano1 sselii cvv crn cmpt eqid rdgvalg tz7.44-1 ) RBAFZGZHRU
        IIAJKUJRUJLKUJMABNUJOPUAUBDEAUIDUCDSZRJAUKGZLUKUDQULQUKIBITTUEZBUJUMUFA
        ESDBUGCUHP $.
    $}

    $( The initial segments of the recursive definition generator are sets.
       (Contributed by Mario Carneiro, 16-Nov-2014.) $)
    rdgseg $p |- ( B e. dom rec ( F , A ) ->
                 ( rec ( F , A ) |` B ) e. _V ) $=
      ( vg vx vy vw vv vf crdg cdm wcel cres cvv cv c0 wceq cuni cfv cif df-rdg
      wlim crn cmpt crecs reseq1i wfn wral con0 wrex cab rdglem1 tfrlem9a dmeqi
      wa eleq2s syl5eqel ) BCAJZKZLURBMDNDOZPQAUTKZUBUTUCRVARUTSCSTTUDZUEZBMZNU
      RVCBDCAUAZUFVDNLBVCKUSEFGOZFOZUGHOZVFSVFVHMVBSQHVGUHUOFUIUJGUKBIVBFHEFGIV
      BULUMURVCVEUNUPUQ $.

    $( The value of the recursive definition generator at a successor.
       (Contributed by NM, 16-Nov-2014.) $)
    rdgsucg $p |- ( B e. dom rec ( F , A ) ->
                 ( rec ( F , A ) ` suc B ) = ( F ` ( rec ( F , A ) ` B ) ) ) $=
      ( vx vy crdg cdm wcel csuc cfv wceq wlim wb rdgdmlim limsuc ax-mp cv cuni
      cvv cif c0 crn cmpt eqid rdgvalg rdgseg wfun wfn rdgfun funfn mpbi limord
      word tz7.44-2 sylbi ) BCAFZGZHZBIZUQHZUSUPJBUPJCJKUQLZURUTMACNZUQBOPDEABU
      PDSDQZUAKAVCGZLVCUBRVDRVCJCJTTUCZCUQVEUDAEQZDCUEAVFCUFUPUGUPUQUHACUIUPUJU
      KVAUQUMVBUQULPUNUO $.

    $( The value of the recursive definition generator at a successor.
       (Contributed by NM, 23-Apr-1995.)  (Revised by Mario Carneiro,
       14-Nov-2014.) $)
    rdgsuc $p |- ( B e. On ->
                 ( rec ( F , A ) ` suc B ) = ( F ` ( rec ( F , A ) ` B ) ) ) $=
      ( con0 wcel crdg cdm csuc cfv wceq wfn rdgfnon fndm eleq2i rdgsucg sylbir
      ax-mp ) BDEBCAFZGZEBHRIBRICIJSDBRDKSDJACLDRMQNABCOP $.

    $( The value of the recursive definition generator at a limit ordinal.
       (Contributed by NM, 16-Nov-2014.) $)
    rdglimg $p |- ( ( B e. dom rec ( F , A ) /\ Lim B ) ->
                   ( rec ( F , A ) ` B ) = U. ( rec ( F , A ) " B ) ) $=
      ( vx vy crdg cvv cv c0 wceq cdm wlim crn cuni cfv cif cmpt rdgvalg rdgseg
      eqid wfun wfn rdgfun funfn mpbi word rdgdmlim limord ax-mp tz7.44-3 ) DEA
      BCAFZDGDHZIJAULKZLULMNUMNULOCOPPQZCUKKZUNTAEHZDCRAUPCSUKUAUKUOUBACUCUKUDU
      EUOLUOUFACUGUOUHUIUJ $.

    $( The value of the recursive definition generator at a limit ordinal.
       (Contributed by NM, 23-Apr-1995.)  (Revised by Mario Carneiro,
       14-Nov-2014.) $)
    rdglim $p |- ( ( B e. C /\ Lim B ) ->
                   ( rec ( F , A ) ` B ) = U. ( rec ( F , A ) " B ) ) $=
      ( wcel wlim crdg cdm cfv cima cuni wceq wa con0 limelon wfn rdgfnon ax-mp
      fndm syl6eleqr rdglimg sylancom ) BCEZBFZBDAGZHZEBUEIUEBJKLUCUDMBNUFBCOUE
      NPUFNLADQNUESRTABDUAUB $.
  $}

  ${
    $d x A $.  $d x F $.
    $( The initial value of the recursive definition generator.  (Contributed
       by NM, 25-Apr-1995.) $)
    rdg0g $p |- ( A e. C -> ( rec ( F , A ) ` (/) ) = A ) $=
      ( vx c0 cv crdg cfv wceq rdgeq2 fveq1d id eqeq12d vex rdg0 vtoclg ) ECDFZ
      GZHZQIECAGZHZAIDABQAIZSUAQAUBERTQACJKUBLMQCDNOP $.
  $}

  ${
    rdgsucmptf.1 $e |- F/_ x A $.
    rdgsucmptf.2 $e |- F/_ x B $.
    rdgsucmptf.3 $e |- F/_ x D $.
    rdgsucmptf.4 $e |- F = rec ( ( x e. _V |-> C ) , A ) $.
    rdgsucmptf.5 $e |- ( x = ( F ` B ) -> C = D ) $.
    $( The value of the recursive definition generator at a successor (special
       case where the characteristic function uses the map operation).
       (Contributed by NM, 22-Oct-2003.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    rdgsucmptf $p |- ( ( B e. On /\ D e. V ) -> ( F ` suc B ) = D ) $=
      ( con0 wcel csuc cfv cvv cmpt crdg fveq1i rdgsuc fveq2i 3eqtr4g wceq fvex
      nfmpt1 nfrdg nfcxfr nffv eqid fvmptf mpan sylan9eq ) CMNZEGNZCOZFPZCFPZAQ
      DRZPZEUNUPUSBSZPCVAPZUSPUQUTBCUSUAUPFVAKTURVBUSCFVAKTUBUCURQNUOUTEUDCFUEA
      URDEQUSGACFAFVAKABUSAQDUFHUGUHIUIJLUSUJUKULUM $.

    $( The value of the recursive definition generator at a successor (special
       case where the characteristic function is an ordered-pair class
       abstraction and where the mapping class ` D ` is a proper class).  This
       is a technical lemma that can be used together with ~ rdgsucmptf to help
       eliminate redundant sethood antecedents.  (Contributed by NM,
       22-Oct-2003.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    rdgsucmptnf $p |- ( -. D e. _V -> ( F ` suc B ) = (/) ) $=
      ( cvv wcel wn csuc cfv cmpt crdg c0 fveq1i cdm wceq rdgdmlim limsuc ax-mp
      wlim wb rdgsucg fveq2i syl6eqr nfmpt1 nfrdg nfcxfr nffv fvmptnf sylan9eqr
      eqid ex syl5bir ndmfv pm2.61d1 syl5eq ) ELMNZCOZFPVDALDQZBRZPZSVDFVFJTVCV
      DVFUAZMZVGSUBZVICVHMZVCVJVHUFVKVIUGBVEUCVHCUDUEVCVKVJVKVCVGCFPZVEPZSVKVGC
      VFPZVEPVMBCVEUHVLVNVECFVFJTUIUJAVLDELVEACFAFVFJABVEALDUKGULUMHUNIKVEUQUOU
      PURUSVDVFUTVAVB $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y D $.  $d x E $.
    rdgsucmpt2.1 $e |- F = rec ( ( x e. _V |-> C ) , A ) $.
    rdgsucmpt2.2 $e |- ( y = x -> E = C ) $.
    rdgsucmpt2.3 $e |- ( y = ( F ` B ) -> E = D ) $.
    $( This version of ~ rdgsucmpt avoids the not-free hypothesis of
       ~ rdgsucmptf by using two substitutions instead of one.  (Contributed by
       Mario Carneiro, 11-Sep-2015.) $)
    rdgsucmpt2 $p |- ( ( B e. On /\ D e. V ) -> ( F ` suc B ) = D ) $=
      ( nfcv cvv cmpt crdg wceq cbvmptv rdgeq1 ax-mp eqtr4i rdgsucmptf ) BCDGFH
      IBCMBDMBFMHANEOZCPZBNGOZCPZJUEUCQUFUDQBANGEKRCUEUCSTUALUB $.
  $}

  ${
    $d x A $.  $d x B $.  $d x D $.
    rdgsucmpt.1 $e |- F = rec ( ( x e. _V |-> C ) , A ) $.
    rdgsucmpt.2 $e |- ( x = ( F ` B ) -> C = D ) $.
    $( The value of the recursive definition generator at a successor (special
       case where the characteristic function uses the map operation).
       (Contributed by Mario Carneiro, 9-Sep-2013.) $)
    rdgsucmpt $p |- ( ( B e. On /\ D e. V ) -> ( F ` suc B ) = D ) $=
      ( nfcv rdgsucmptf ) ABCDEFGABJACJAEJHIK $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    $( The value of the recursive definition generator at a limit ordinal, in
       terms of the union of all smaller values.  (Contributed by NM,
       23-Apr-1995.) $)
    rdglim2 $p |- ( ( B e. C /\ Lim B ) -> ( rec ( F , A ) ` B ) =
                  U. { y | E. x e. B y = ( rec ( F , A ) ` x ) } ) $=
      ( wcel wlim wa crdg cfv cima cuni cv wceq cab wex con0 wb word rdglim cop
      wrex dfima3 df-rex wi limord ordelord ex vex elon syl6ibr syl wfn rdgfnon
      eqcom fnopfvb mpan syl5bb syl6 pm5.32d exbidv abbidv syl5eq unieqd adantl
      syl5rbb eqtrd ) DEGZDHZIDFCJZKVKDLZMZBNZANZVKKZOZADUCZBPZMZCDEFUAVJVMVTOV
      IVJVLVSVJVLVODGZVOVNUBVKGZIZAQZBPVSABVKDUDVJWDVRBVRWAVQIZAQVJWDVQADUEVJWE
      WCAVJWAVQWBVJWAVORGZVQWBSVJDTZWAWFUFDUGWGWAVOTZWFWGWAWHDVOUHUIVOAUJUKULUM
      VQVPVNOZWFWBVNVPUPVKRUNWFWIWBSCFUORVOVNVKUQURUSUTVAVBVGVCVDVEVFVH $.

    $( The value of the recursive definition generator at a limit ordinal, in
       terms of indexed union of all smaller values.  (Contributed by NM,
       28-Jun-1998.) $)
    rdglim2a $p |- ( ( B e. C /\ Lim B ) -> ( rec ( F , A ) ` B ) =
                  U_ x e. B ( rec ( F , A ) ` x ) ) $=
      ( vy wcel wlim wa crdg cfv cv wceq wrex cab cuni ciun rdglim2 fvex dfiun2
      syl6eqr ) CDGCHICEBJZKFLALZUBKZMACNFOPACUDQAFBCDERAFCUDUCUBSTUA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finite recursion
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( We use the next 3 theorems for finite recursion.  Note that we take
     advantage of what we have done for transfinite recursion, which allows
     us to explicitly specify the function and moreover not require the
     existence of omega. $)

  $( The function generated by finite recursive definition generation is a
     function on omega.  (Contributed by NM, 15-Oct-1996.)  (Revised by Mario
     Carneiro, 14-Nov-2014.) $)
  frfnom $p |- ( rec ( F , A ) |` _om ) Fn _om $=
    ( crdg com cres wfn wfun cdm wceq rdgfun funres ax-mp cin wss wlim rdgdmlim
    dmres limomss df-ss mpbi eqtri df-fn mpbir2an ) BACZDEZDFUEGZUEHZDIUDGUFABJ
    DUDKLUGDUDHZMZDUDDQDUHNZUIDIUHOUJABPUHRLDUHSTUAUEDUBUC $.

  $( The initial value resulting from finite recursive definition generation.
     (Contributed by NM, 15-Oct-1996.) $)
  fr0g $p |- ( A e. B -> ( ( rec ( F , A ) |` _om ) ` (/) ) = A ) $=
    ( wcel c0 crdg com cres cfv wceq peano1 fvres ax-mp rdg0g syl5eq ) ABDECAFZ
    GHIZEPIZAEGDQRJKEGPLMABCNO $.

  $( The successor value resulting from finite recursive definition generation.
     (Contributed by NM, 15-Oct-1996.)  (Revised by Mario Carneiro,
     16-Nov-2014.) $)
  frsuc $p |- ( B e. _om -> ( ( rec ( F , A ) |` _om ) ` suc B ) =
              ( F ` ( ( rec ( F , A ) |` _om ) ` B ) ) ) $=
    ( com wcel csuc crdg cfv cres cdm wceq wlim wss limomss ax-mp sseli rdgsucg
    rdgdmlim syl fvres peano2b sylbi fveq2d 3eqtr4d ) BDEZBFZCAGZHZBUGHZCHZUFUG
    DIZHZBUKHZCHUEBUGJZEUHUJKDUNBUNLDUNMACRUNNOPABCQSUEUFDEULUHKBUAUFDUGTUBUEUM
    UICBDUGTUCUD $.

  ${
    frsucmpt.1 $e |- F/_ x A $.
    frsucmpt.2 $e |- F/_ x B $.
    frsucmpt.3 $e |- F/_ x D $.
    frsucmpt.4 $e |- F = ( rec ( ( x e. _V |-> C ) , A ) |` _om ) $.
    frsucmpt.5 $e |- ( x = ( F ` B ) -> C = D ) $.
    $( The successor value resulting from finite recursive definition
       generation (special case where the generation function is expressed in
       maps-to notation).  (Contributed by NM, 14-Sep-2003.)  (Revised by Scott
       Fenton, 2-Nov-2011.) $)
    frsucmpt $p |- ( ( B e. _om /\ D e. V ) -> ( F ` suc B ) = D ) $=
      ( com wcel csuc cfv cvv cmpt crdg fveq1i cres frsuc fveq2i 3eqtr4g nfmpt1
      wceq fvex nfrdg nfcv nfres nfcxfr nffv eqid fvmptf mpan sylan9eq ) CMNZEG
      NZCOZFPZCFPZAQDRZPZEUQUSVBBSZMUAZPCVEPZVBPUTVCBCVBUBUSFVEKTVAVFVBCFVEKTUC
      UDVAQNURVCEUFCFUGAVADEQVBGACFAFVEKAVDMABVBAQDUEHUHAMUIUJUKIULJLVBUMUNUOUP
      $.

    $( The value of the finite recursive definition generator at a successor
       (special case where the characteristic function is a mapping abstraction
       and where the mapping class ` D ` is a proper class).  This is a
       technical lemma that can be used together with ~ frsucmpt to help
       eliminate redundant sethood antecedents.  (Contributed by Scott Fenton,
       19-Feb-2011.)  (Revised by Mario Carneiro, 11-Sep-2015.) $)
    frsucmptn $p |- ( -. D e. _V -> ( F ` suc B ) = (/) ) $=
      ( cvv wcel wn csuc cfv com c0 fveq1i wceq cmpt crdg cres cdm frfnom ax-mp
      wfn fndm eleq2i peano2b frsuc fveq2i syl6eqr nfmpt1 nfrdg nfcv nfres nffv
      nfcxfr eqid fvmptnf sylan9eqr ex syl5bir syl5bi ndmfv pm2.61d1 syl5eq ) E
      LMNZCOZFPVJALDUAZBUBZQUCZPZRVJFVMJSVIVJVMUDZMZVNRTZVPVJQMZVIVQVOQVJVMQUGV
      OQTBVKUEQVMUHUFUIVRCQMZVIVQCUJVIVSVQVSVIVNCFPZVKPZRVSVNCVMPZVKPWABCVKUKVT
      WBVKCFVMJSULUMAVTDELVKACFAFVMJAVLQABVKALDUNGUOAQUPUQUSHURIKVKUTVAVBVCVDVE
      VJVMVFVGVH $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y D $.  $d x E $.
    frsucmpt2.1 $e |- F = ( rec ( ( x e. _V |-> C ) , A ) |` _om ) $.
    frsucmpt2.2 $e |- ( y = x -> E = C ) $.
    frsucmpt2.3 $e |- ( y = ( F ` B ) -> E = D ) $.
    $( The successor value resulting from finite recursive definition
       generation (special case where the generation function is expressed in
       maps-to notation), using double-substitution instead of a bound variable
       condition.  (Contributed by Mario Carneiro, 11-Sep-2015.) $)
    frsucmpt2 $p |- ( ( B e. _om /\ D e. V ) -> ( F ` suc B ) = D ) $=
      ( nfcv cvv cmpt crdg com cres wceq cbvmptv rdgeq1 reseq1i eqtr4i frsucmpt
      ax-mp ) BCDGFHIBCMBDMBFMHANEOZCPZQRBNGOZCPZQRJUIUGQUHUFSUIUGSBANGEKTCUHUF
      UAUEUBUCLUD $.
  $}

  ${
    $d y z w A $.  $d x y z w F $.
    tz7.48.1 $e |- F Fn On $.
    ${
      $d x A $.
      $( A way of showing an ordinal function is one-to-one.  (Contributed by
         NM, 9-Feb-1997.) $)
      tz7.48lem $p |- ( ( A C_ On /\ A. x e. A A. y e. x
                    -. ( F ` x ) = ( F ` y ) ) -> Fun `' ( F |` A ) ) $=
        ( vw vz con0 cv cfv wceq wn wral wa weq wi wel wcel wal r2al cres simpl
        ccnv wfun anim1i imim1i 2alimi sylbi sylibr elequ1 fveq2 eqeq2d imbi12d
        wss expd notbid cbvralv ralbii elequ2 eqeq1d ralbidv bitri 3bitri ancri
        ralcom2 r19.26-2 syl wb fvres eqeqan12d ad2antrl ssel anim12d wo pm3.48
        oridm eqcom notbii orbi1i bitr3i syl6ibr con2d word eloni ordtri3 syl9r
        biimprd syl2an syl6 imp32 sylbid a2d 2alimdv 3imtr4g syl5 imdistani wfn
        exp32 fnssres mpan cvv wf dffn2 wf1 dff13 df-f1 simprbi sylanb sylan )
        CHUNZAIZDJZBIZDJZKZLZBXKMACMZNXJXKDCUAZJZXMXRJZKZABOZPZBCMACMZNXRUCUDZX
        JXQYDXQABQZXNXLKZLZPZBAQZXPPZNZBCMACMZXJYDXQYKBCMZACMZYMXQXKCRZXMCRZNZY
        KPZBSASZYOXQYPYJNZXPPZBSASYTXPABCXKTUUBYSABUUBYRYJXPYRYJNUUAXPYRYPYJYPY
        QUBUEUFUOUGUHYKABCCTUIYOYIBCMACMZYONYMYOUUCYOYIACMZBCMZUUCYOFAQZXLFIZDJ
        ZKZLZPZFCMZACMFGQZGIZDJZUUHKZLZPZFCMZGCMZUUEYNUULACYKUUKBFCBFOZYJUUFXPU
        UJBFAUJUVAXOUUIUVAXNUUHXLXMUUGDUKULUPUMUQURUULUUSAGCAGOZUUKUURFCUVBUUFU
        UMUUJUUQAGFUSUVBUUIUUPUVBXLUUOUUHXKUUNDUKUTUPUMVAUQUUTAGQZUUOXLKZLZPZAC
        MZGCMUUEUUSUVGGCUURUVFFACFAOZUUMUVCUUQUVEFAGUJUVHUUPUVDUVHUUHXLUUOUUGXK
        DUKULUPUMUQURUVGUUDGBCGBOZUVFYIACUVIUVCYFUVEYHGBAUSUVIUVDYGUVIUUOXNXLUU
        NXMDUKUTUPUMVAUQVBVCYIBACVEUHVDYIYKABCCVFUIVGXJYRYLPZBSASYRYCPZBSASYMYD
        XJUVJUVKABXJYRYLYCXJYRYLYCXJYRYLNNYAXOYBYRYAXOVHXJYLYPYQXSXLXTXNXKCDVIX
        MCDVIVJVKXJYRYLXOYBPZXJYRXKHRZXMHRZNZYLUVLPXJYPUVMYQUVNCHXKVLCHXMVLVMYL
        XOYFYJVNZLZUVOYBYLUVPXOYLUVPYHXPVNZXPYFYHYJXPVOXPXPXPVNUVRXPVPXPYHXPXOY
        GXLXNVQVRVSVTWAWBUVMXKWCZXMWCZUVQYBPUVNXKWDXMWDUVSUVTNYBUVQXKXMWEWGWHWF
        WIWJWKWRWLWMYLABCCTYCABCCTWNWOWPXJXRCWQZYDYEDHWQXJUWAEHCDWSWTUWACXAXRXB
        ZYDYECXRXCUWBYDNZUWBYEUWCCXAXRXDUWBYENABCXAXRXECXAXRXFVTXGXHXIVG $.
    $}

    $( Proposition 7.48(2) of [TakeutiZaring] p. 51.  (Contributed by NM,
       9-Feb-1997.)  (Revised by David Abernethy, 5-May-2013.) $)
    tz7.48-2 $p |- ( A. x e. On ( F ` x ) e. ( A \ ( F " x ) ) -> Fun `' F ) $=
      ( vy cv cfv cima cdif wcel con0 wral cres ccnv wfun wss wceq wa wi ax-mp
      wn ssid wel onelon ancoms cdm wfn fndm eleq2i funfvima mpan impcom eleq1a
      fnfun eldifn nsyli syl sylan2br expimpd com12 ralrimiv ralimiaa tz7.48lem
      syldan sylancr wrel fnrel eqimssi relssres mp2an cnveqi funeqi sylib ) AF
      ZCGZBCVNHZIJZAKLZCKMZNZOZCNZOVRKKPVOEFZCGZQZUAZEVNLZAKLWAKUBVQWGAKVNKJZVQ
      RZWFEVNEAUCZWIWFWJWHVQWFWJWHWCKJZVQWFSZWHWJWKVNWCUDUEWKWJWCCUFZJZWLWMKWCC
      KUGZWMKQDKCUHTZUIWJWNRWDVPJZWLWNWJWQCOZWNWJWQSWOWRDKCUNTVNWCCUJUKULWQWEVO
      VPJVQWDVPVOUMVOBVPUOUPUQURVDUSUTVAVBAEKCDVCVEVTWBVSCCVFZWMKPVSCQWOWSDKCVG
      TWMKWPVHCKVIVJVKVLVM $.

    $d x A $.
    $( Proposition 7.48(1) of [TakeutiZaring] p. 51.  (Contributed by NM,
       9-Feb-1997.) $)
    tz7.48-1 $p |- ( A. x e. On ( F ` x ) e. ( A \ ( F " x ) ) ->
                   ran F C_ A ) $=
      ( vy cv cfv cima cdif wcel con0 wral crn wceq wa wex cop vex elrn2 wi cdm
      opeldm wfn fndm ax-mp syl6eleq ancri wb fnopfvb mpan pm5.32i sylibr eximi
      sylbi nfra1 nfv rsp eldifi eleq1 syl5ibcom imim2i impd exlimd syl5 ssrdv
      syl ) AFZCGZBCVGHZIJZAKLZECMZBEFZVLJZVGKJZVHVMNZOZAPZVKVMBJZVNVGVMQCJZAPV
      RAVMCERZSVTVQAVTVOVTOVQVTVOVTVGCUAZKVGVMCARWAUBCKUCZWBKNDKCUDUEUFUGVOVPVT
      WCVOVPVTUHDKVGVMCUIUJUKULUMUNVKVQVSAVJAKUOVSAUPVKVOVJTZVQVSTVJAKUQWDVOVPV
      SVJVPVSTVOVJVHBJVPVSVHBVIURVHVMBUSUTVAVBVFVCVDVE $.

    $( Proposition 7.48(3) of [TakeutiZaring] p. 51.  (Contributed by NM,
       9-Feb-1997.) $)
    tz7.48-3 $p |- ( A. x e. On ( F ` x ) e. ( A \ ( F " x ) ) ->
                    -. A e. _V ) $=
      ( cv cfv cima cdif wcel con0 wral cvv crn cdm onprc wfn wceq eleq1i syl
      wi fndm ax-mp mtbir ccnv wfun tz7.48-2 funrnex com12 df-rn dfdm4 mtoi wss
      3imtr4g tz7.48-1 ssexg ex mtod ) AEZCFBCURGHIAJKZBLIZCMZLIZUSVBCNZLIZVDJL
      IOVCJLCJPVCJQDJCUAUBRUCUSCUDZUEZVBVDTABCDUFVFVENZLIZVEMZLIZVBVDVHVFVJLVEU
      GUHVAVGLCUIRVCVILCUJRUMSUKUSVABULZUTVBTABCDUNVKUTVBVABLUOUPSUQ $.
  $}

  ${
    tz7.49.1 $e |- F Fn On $.
    $d x y z A $.  $d x y z F $.  $d ph y z $.
    tz7.49.2 $e |- ( ph <-> A. x e. On ( ( A \ ( F " x ) ) =/= (/) ->
                               ( F ` x ) e. ( A \ ( F " x ) ) ) ) $.
    $( Proposition 7.49 of [TakeutiZaring] p. 51.  (Contributed by NM,
       10-Feb-1997.)  (Revised by Mario Carneiro, 10-Jan-2013.) $)
    tz7.49 $p |- ( ( A e. B /\ ph ) ->
                     E. x e. On ( A. y e. x ( A \ ( F " y ) ) =/= (/) /\
                     ( F " x ) = A /\ Fun `' ( F |` x ) ) ) $=
      ( vz wcel c0 wral wceq con0 wrex wa wn wi wss nfv cima cdif wne cres ccnv
      cv wfun w3a cfv df-ne ralbii ralim sylbi syl5bir cvv tz7.48-3 nsyl3 nsyli
      elex dfrex2 syl6ibr imaeq2 difeq2d eqeq1d onminex syl6 anbi2i nfra1 nfxfr
      rexbii simpllr wfn fnfun ax-mp fvelima mpan nfan rsp adantld onelon fveq2
      neeq1d eleq12d imbi12d rspcv syl5bi com23 syl sylcom com3r expcomd eldifi
      eleq1 syl5ibcom syl8 com34 rexlimd syl5 ssrdv ssdif0 biimpri anim12i eqss
      imp sylibr onss ssel cdm fndm syl6sseqr funfvima2 sylancr com12 a1i syl10
      imp4a eldifn eleq1a con3d syl5com syldd com4r imp31 ancld tz7.48lem syl56
      ralrimi ex ancoms adantr 3jca exp41 reximdai syld impcom ) ADEJZDFCUFZUAZ
      UBZKUCZCBUFZLZFUUAUAZDMZFUUAUDUEUGZUHZBNOZAYPDUUCUBZKMZUUBPZBNOZUUGAYPUUI
      YSKMZQZCUUALZPZBNOZUUKAYPUUIBNOZUUPAYPUUIQZBNLZQUUQAUUSUUAFUIZUUHJZBNLZYP
      UUSUUHKUCZBNLZAUVBUVCUURBNUUHKUJUKAUVCUVARZBNLZUVDUVBRHUVCUVABNULUMUNUVBD
      UOJYPBDFGUPDEUSUQURUUIBNUTVAUUIUULBCUUAYQMZUUHYSKUVGUUCYRDUUAYQFVBVCZVDVE
      VFUUJUUOBNUUBUUNUUIYTUUMCUUAYSKUJUKVGVJVAAUUJUUFBNAUVFBHUVEBNVHVIAUUANJZU
      UIUUBUUFAUVIUUBUUIUUFAUUBUVIUUIUUFRAUUBUVIUUIUUFAUUBPZUVIPZUUIPZUUBUUDUUE
      AUUBUVIUUIVKUVLUUCDSZDUUCSZPUUDUVKUVMUUIUVNUVKIUUCDUVJUVIIUFZUUCJZUVODJZR
      UVJUVPUVIUVQUVPYQFUIZUVOMZCUUAOZUVJUVIUVQRZFUGZUVPUVTFNVLZUWBGNFVMVNZCUVO
      UUAFVOVPUVJUVSUWACUUAAUUBCACTZYTCUUAVHZVQUWACTUVJYQUUAJZUVIUVSUVQUVJUWGUV
      IUVRYSJZUVSUVQRUVJUVIUWGUWHAUUBUVIUWGPZUWHRUUBUWIAUWHUUBUWIYTAUWHRZUUBUWG
      YTUVIYTCUUAVRZVSUWIYQNJZYTUWJRUUAYQVTUWLAYTUWHAUVFUWLYTUWHRZHUVEUWMBYQNUV
      GUVCYTUVAUWHUVGUUHYSKUVHWBUVGUUTUVRUUHYSUUAYQFWAUVHWCWDWEWFWGZWHWIWJXDWKU
      WHUVRDJUVSUVQUVRDYRWLUVRUVODWMWNWOWPWQWRWGXDWSUVNUUIDUUCWTXAXBUUCDXCXEUVK
      UUEUUIUVJUVIUUEUUBAUVIUUERUVIUUANSZUUBAPZUWOUVRUVOFUIZMZQZIYQLZCUUALZPUUE
      UUAXFUWPUWOUXAUWPUWOUXAUWPUWOPZUWTCUUAUWPUWOCUUBACUWFUWEVQUWOCTVQUXBUWGUW
      TUXBUWGPZUWSIYQUXCITUWPUWOUWGUVOYQJZUWSRUWOUWGUXDUWPUWSUWOUWGUXDUWQYRJZUW
      PUWSRUWOUWGUWLUXDUXERZUUANYQXGZUWLUWBYQFXHZSUXFUWDUWLYQNUXHYQXFUWCUXHNMGN
      FXIVNXJYQUVOFXKXLVFUWOUWGUWPUXEUWSUWOUWGUWPUWHUXEUWSRUWOUWGUUBAUWHUWOUWGU
      WLUUBYTUWJUXGUWGUUBYTRRUWOUUBUWGYTUWKXMXNUWNXOXPUWHUVRYRJZQUXEUWSUVRDYRXQ
      UXEUWRUXIUWQYRUVRXRXSXTWOWPYAYBYCYGYHYGYHYDCIUUAFGYEYFYIXDYJYKYLWGWPXPYMY
      NYO $.
  $}

  ${
    $d A x y $.  $d F x y $.
    tz7.49c.1 $e |- F Fn On $.
    $( Corollary of Proposition 7.49 of [TakeutiZaring] p. 51.  (Contributed by
       NM, 10-Feb-1997.)  (Revised by Mario Carneiro, 19-Jan-2013.) $)
    tz7.49c $p |- ( ( A e. B /\ A. x e. On ( ( A \ ( F " x ) ) =/= (/) ->
                 ( F ` x ) e. ( A \ ( F " x ) ) ) ) ->
                 E. x e. On ( F |` x ) : x -1-1-onto-> A ) $=
      ( vy wcel cv cima cdif c0 wne cfv con0 wral wa wceq w3a wrex wfn cres crn
      wi ccnv wfun wf1o biid tz7.49 3simpc fnssres sylancr df-ima eqeq1i biimpi
      wss onss anim12i anim1i dff1o2 3anan32 bitri sylibr expl syl5 reximia syl
      ) BCGBDAHZIZJZKLVGDMVIGUCANOZPBDFHIJKLFVGOZVHBQZDVGUAZUDUEZRZANSVGBVMUFZA
      NSVJAFBCDEVJUGUHVOVPANVOVLVNPVGNGZVPVKVLVNUIVQVLVNVPVQVLPZVNPVMVGTZVMUBZB
      QZPZVNPZVPVRWBVNVQVSVLWAVQDNTVGNUOVSEVGUPNVGDUJUKVLWAVHVTBDVGULUMUNUQURVP
      VSVNWARWCVGBVMUSVSVNWAUTVAVBVCVDVEVF $.
  $}

  $c seqom $.

  $( Extend class notation to include index-aware recursive definitions. $)
  cseqom $a class seqom ( F , I ) $.

  ${
    $d F i v $.  $d I i v $.

    $( Index-aware recursive definitions over ` _om ` .  A mashup of ~ df-rdg
       and ~ df-seq , this allows for recursive definitions that use an index
       in the recursion in cases where Infinity is not admitted.  (Contributed
       by Stefan O'Rear, 1-Nov-2014.) $)
    df-seqom $a |- seqom ( F , I ) = ( rec ( ( i e. _om , v e. _V |->
        <. suc i , ( i F v ) >. ) , <. (/) , ( _I ` I ) >. ) " _om ) $.
  $}

  ${
    $d F a b c d $.  $d I a b c d $.

    $( Lemma for ` seqom ` .  Change bound variables.  (Contributed by Stefan
       O'Rear, 1-Nov-2014.) $)
    seqomlem0 $p |- rec ( ( a e. _om , b e. _V |-> <. suc a , ( a F b ) >. ) ,
      <. (/) , ( _I ` I ) >. ) = rec ( ( c e. _om , d e. _V |->
      <. suc c , ( c F d ) >. ) , <. (/) , ( _I ` I ) >. ) $=
      ( com cvv cv csuc co cop cmpt2 wceq c0 cid cfv crdg weq suceq oveq1 oveq2
      opeq12d opeq2d cbvmpt2v rdgeq1 ax-mp ) CDGHCIZJZUHDIZAKZLZMZEFGHEIZJZUNFI
      ZAKZLZMZNUMOBPQLZRUSUTRNCDEFGHULURUOUNUJAKZLCESUIUOUKVAUHUNTUHUNUJAUAUCDF
      SVAUQUOUJUPUNAUBUDUEUTUMUSUFUG $.
  $}

  ${
    $d Q a b c i v $.  $d A a b i v $.  $d F a b i v $.  $d I a b $.
    seqomlem.a $e |- Q = rec ( ( i e. _om , v e. _V |->
        <. suc i , ( i F v ) >. ) , <. (/) , ( _I ` I ) >. ) $.
    $( Lemma for ` seqom ` .  The underlying recursion generates a sequence of
       pairs with the expected first values.  (Contributed by Stefan O'Rear,
       1-Nov-2014.)  (Revised by Mario Carneiro, 23-Jun-2015.) $)
    seqomlem1 $p |- ( A e. _om -> ( Q ` A ) =
      <. A , ( 2nd ` ( Q ` A ) ) >. ) $=
      ( cv cfv c2nd cop wceq c0 fveq2 id fveq2d opeq12d eqeq12d com opeq2d csuc
      va vb cid cvv co cmpt2 crdg fveq1i opex rdg0 eqtri 0ex fvex eqcomi opeq2i
      op2nd 3eqtr4a ax-mp wcel df-ov suceq oveq1 oveq2 eqid ovmpt2 mpan2 eqeq1d
      syl5eqr syl5ibrcom vex sucex ovex a1i syld frsuc peano2 fvres syl syl6eqr
      cres 3eqtr3d sylibrd finds ) UBHZCIZWEWFJIZKZLMCIZMWIJIZKZLZUCHZCIZWMWNJI
      ZKZLZWMUAZCIZWRWSJIZKZLZBCIZBXCJIZKZLUBUCBWEMLZWFWIWHWKWEMCNZXFWEMWGWJXFO
      XFWFWIJXGPQRWEWMLZWFWNWHWPWEWMCNZXHWEWMWGWOXHOXHWFWNJXIPQRWEWRLZWFWSWHXAW
      EWRCNZXJWEWRWGWTXJOXJWFWSJXKPQRWEBLZWFXCWHXEWEBCNZXLWEBWGXDXLOXLWFXCJXMPQ
      RWIMFUDIZKZLZWLWIMDASUEDHZUAZXQAHZEUFZKZUGZXOUHZIXOMCYCGUIXOYBMXNUJUKULXP
      XOMXOJIZKWIWKXNYDMYDXNMXNUMFUDUNUQUOUPXPOXPWJYDMWIXOJNTURUSWMSUTZWQWNYBIZ
      WRYFJIZKZLZXBYEWQYFWRWMWOEUFZKZLZYIYEYLWQWPYBIZYKLYEYMWMWOYBUFZYKWMWOYBVA
      YEWOUEUTYNYKLWNJUNDAWMWOSUEYAYKYBWRWMXSEUFZKXQWMLXRWRXTYOXQWMVBXQWMXSEVCQ
      XSWOLYOYJWRXSWOWMEVDTYBVEWRYJUJVFVGVIWQYFYMYKWNWPYBNVHVJYEYIYLYKWRYKJIZKZ
      LYEYJYPWRYJYPLYEYPYJWRYJWMUCVKVLWMWOEVMUQUOVNTYLYFYKYHYQYLOYLYGYPWRYFYKJN
      TRVJVOYEWSYFXAYHYEWRYCSWAZIZWMYRIZYBIWSYFXOWMYBVPYEYSWRYCIZWSYEWRSUTYSUUA
      LWMVQWRSYCVRVSWRCYCGUIVTYEYTWNYBYEYTWMYCIWNWMSYCVRWMCYCGUIVTPWBZYEWTYGWRY
      EWSYFJUUBPTRWCWD $.

    $( Lemma for ` seqom ` .  (Contributed by Stefan O'Rear, 1-Nov-2014.)
       (Revised by Mario Carneiro, 23-Jun-2015.) $)
    seqomlem2 $p |- ( Q " _om ) Fn _om $=
      ( va vb vc com wfn cvv wf cv cfv wcel cop c2nd wceq eqeq1d cima cres wral
      crn cxp wss wbr weu csuc co cmpt2 c0 cid crdg frfnom reseq1i fneq1i mpbir
      fvres seqomlem1 eqtrd fvex opelxpi mpan2 eqeltrd ffnfv mpbir2an frn ax-mp
      rgen wb wal wex wrex df-br fvelrnb rexbiia 3bitri adantl vex opth1 syl6bi
      fveq2 biimpd syli op2nd syl6req syl6 rexlimdva rspcev mpdan opeq2 rexbidv
      wa eqeq2d syl5ibrcom impbid syl5bb alrimiv eqeq2 bibi2d albidv syl sylibr
      spcev df-eu dff3 df-ima feq1i dffn2 ) BJUAZJKJLXKMZXLJLBJUBZUDZMZXOXNJLUE
      ZUFZGNZHNZXNUGZHUHZGJUCJXPXMMZXQYBXMJKZXSXMOZXPPZHJUCYCCAJLCNZUIYFANDUJQU
      KZULEUMOQZUNZJUBZJKYHYGUOJXMYJBYIJFUPUQURZYEHJXSJPZYDXSXSBOZROZQZXPYLYDYM
      YOXSJBUSAXSBCDEFUTVAYLYNLPYOXPPYMRVBXSYNJLVCVDVEVJHJXPXMVFVGJXPXMVHVIYAGJ
      XRJPZXTXSINZSZVKZHVLZIVMZYAYPXTXSXRBOZROZSZVKZHVLZUUAYPUUEHXTYQBOZXRXSQZS
      ZIJVNZYPUUDXTUUHXNPZYQXMOZUUHSZIJVNZUUJXRXSXNVOYCUUKUUNVKYKIJUUHXMVPVIUUM
      UUIIJYQJPZUULUUGUUHYQJBUSTVQVRYPUUJUUDYPUUIUUDIJYPUUOWNZUUIUUBUUHSZUUDUUI
      UUPYQXRSZUUQUUPUUIYQUUGROZQZUUHSUURUUPUUGUUTUUHUUOUUGUUTSYPAYQBCDEFUTVSTY
      QUUSXRXSIVTUUGRVBWAWBUURUUIUUQUURUUGUUBUUHYQXRBWCZTWDWEUUQUUCUUHROXSUUBUU
      HRWCXRXSGVTHVTWFWGWHWIYPUUJUUDUUGXRUUCQZSZIJVNZYPUUBUVBSZUVDAXRBCDEFUTUVC
      UVEIXRJUURUUGUUBUVBUVATWJWKUUDUUIUVCIJUUDUUHUVBUUGXSUUCXRWLWOWMWPWQWRWSYT
      UUFIUUCUUBRVBYQUUCSZYSUUEHUVFYRUUDXTYQUUCXSWTXAXBXEXCXTHIXFXDVJGHJLXNXGVG
      JLXKXNBJXHXIURJXKXJUR $.

    $( Lemma for ` seqom ` .  (Contributed by Stefan O'Rear, 1-Nov-2014.) $)
    seqomlem3 $p |- ( ( Q " _om ) ` (/) ) = ( _I ` I ) $=
      ( c0 com cima cfv cid wceq cop wcel cres cv peano1 wfn mpbir mp2an wbr co
      crn cvv csuc cmpt2 crdg fvres ax-mp fveq1i opex rdg0 3eqtri frfnom fneq1i
      reseq1i fnfvelrn eqeltrri df-ima eleqtrri df-br wb seqomlem2 fnbrfvb ) GB
      HIZJEKJZLZGVFVEUAZVHGVFMZVENVIBHOZUCZVEGVJJZVIVKVLGBJZGCAHUDCPZUEVNAPDUBM
      UFZVIUGZJVIGHNZVLVMLQGHBUHUIGBVPFUJVIVOGVFUKULUMVJHRZVQVLVKNVRVPHOZHRVIVO
      UNHVJVSBVPHFUPUOSQHGVJUQTURBHUSUTGVFVEVASVEHRVQVGVHVBABCDEFVCQHGVFVEVDTS
      $.

    $( Lemma for ` seqom ` .  (Contributed by Stefan O'Rear, 1-Nov-2014.)
       (Revised by Mario Carneiro, 23-Jun-2015.) $)
    seqomlem4 $p |- ( A e. _om -> ( ( Q " _om ) ` suc A ) =
      ( A F ( ( Q " _om ) ` A ) ) ) $=
      ( com wcel csuc cfv co wceq wbr cop cres fvres cvv eqtrd wfn cima crn syl
      peano2 cv cmpt2 c2nd c0 cid frsuc fveq1i syl6eqr fveq2d 3eqtr3d seqomlem1
      crdg df-ov fvex suceq oveq1 opeq12d oveq2 opeq2d eqid ovmpt2 mpan2 frfnom
      opex reseq1i fneq1i mpbir fnfvelrn eqeltrrd df-ima syl6eleqr df-br sylibr
      mpan wb seqomlem2 fnbrfvb mpbird eqcomd oveq2d syl5eqr 3eqtrd sylancr ) B
      HIZBJZCHUAZKBBWJKZELZMZWIWLWJNZWHWIWLOZWJIWNWHWOCHPZUBZWJWHWIWPKZWOWQWHWR
      WICKZWOWHWIHIZWRWSMBUDZWIHCQUCWHWSBCKZDAHRDUEZJZXCAUEZELZOZUFZKZBXBUGKZOZ
      XHKZWOWHWIXHUHFUIKOZUPZHPZKZBXOKZXHKWSXIXMBXHUJWHXPWIXNKZWSWHWTXPXRMXAWIH
      XNQUCWICXNGUKULWHXQXBXHWHXQBXNKXBBHXNQBCXNGUKULUMUNWHXBXKXHABCDEFGUOZUMWH
      XLBXJXHLZWOBXJXHUQWHXTWIBXJELZOZWOWHXJRIXTYBMXBUGURDABXJHRXGYBXHWIBXEELZO
      XCBMXDWIXFYCXCBUSXCBXEEUTVAXEXJMYCYAWIXEXJBEVBVCXHVDWIYAVHVEVFWHYAWLWIWHX
      JWKBEWHWKXJWHWKXJMZBXJWJNZWHXKWJIYEWHXKWQWJWHBWPKZXKWQWHYFXBXKBHCQXSSWPHT
      ZWHYFWQIYGXOHTXMXHVGHWPXOCXNHGVIVJVKZHBWPVLVRVMCHVNZVOBXJWJVPVQWJHTZWHYDY
      EVSACDEFGVTZHBXJWJWAVRWBWCWDVCSWEWFSWHYGWTWRWQIYHXAHWIWPVLWGVMYIVOWIWLWJV
      PVQWHYJWTWMWNVSYKXAHWIWLWJWAWGWB $.
  $}

  ${
    $d A a b $.  $d B a b $.  $d C a b $.  $d D a b $.
    $( Equality theorem for ` seqom ` .  (Contributed by Stefan O'Rear,
       1-Nov-2014.) $)
    seqomeq12 $p |- ( ( A = B /\ C = D ) -> seqom ( A , C ) =
      seqom ( B , D ) ) $=
      ( va vb wceq com cvv cv co cop cmpt2 c0 cid cfv crdg cima cseqom opeq2d
      wa csuc oveq mpt2eq3dv fveq2 rdgeq12 syl2an imaeq1d df-seqom 3eqtr4g ) AB
      GZCDGZUAZEFHIEJZUBZUNFJZAKZLZMZNCOPZLZQZHREFHIUOUNUPBKZLZMZNDOPZLZQZHRACS
      BDSUMVBVHHUKUSVEGVAVGGVBVHGULUKEFHIURVDUKUQVCUOUNUPABUCTUDULUTVFNCDOUETVA
      VGUSVEUFUGUHFEACUIFEBDUIUJ $.
  $}

  ${
    $d F a b c d $.  $d I a b c d $.  $d G a b c d $.  $d A a b c d $.
    seqom.a $e |- G = seqom ( F , I ) $.
    $( An index-aware recursive definition defines a function on the natural
       numbers.  (Contributed by Stefan O'Rear, 1-Nov-2014.) $)
    fnseqom $p |- G Fn _om $=
      ( va vb vd vc com wfn cvv cv csuc co cop cmpt2 c0 cid cfv crdg cima eqtri
      seqomlem0 seqomlem2 cseqom df-seqom fneq1i mpbir ) BIJEFIKELZMUIFLANOPQCR
      SOTZIUAZIJGUJHACACEFHGUCUDIBUKBACUEUKDFEACUFUBUGUH $.

    $( Value of an index-aware recursive definition at 0.  (Contributed by
       Stefan O'Rear, 1-Nov-2014.)  (Revise by AV, 17-Sep-2021.) $)
    seqom0g $p |- ( I e. V -> ( G ` (/) ) = I ) $=
      ( va vb vd vc wcel c0 cfv cid com cvv cv csuc co cop eqtri cmpt2 df-seqom
      crdg cima cseqom fveq1i seqomlem0 seqomlem3 fvi syl5eq ) CDJKBLZCMLZCUKKF
      GNOFPZQUMGPARSUAKULSUCZNUDZLULKBUOBACUEUOEGFACUBTUFHUNIACACFGIHUGUHTCDUIU
      J $.

    $( Value of an index-aware recursive definition at a successor.
       (Contributed by Stefan O'Rear, 1-Nov-2014.) $)
    seqomsuc $p |- ( A e. _om -> ( G ` suc A ) = ( A F ( G ` A ) ) ) $=
      ( va vb vd vc com wcel csuc cvv cv co cop cmpt2 c0 cfv fveq1i crdg cseqom
      cid cima seqomlem0 seqomlem4 df-seqom eqtri oveq2i 3eqtr4g ) AJKALZFGJMFN
      ZLULGNBOPQRDUCSPUAZJUDZSAAUNSZBOUKCSAACSZBOHAUMIBDBDFGIHUEUFUKCUNCBDUBUNE
      GFBDUGUHZTUPUOABACUNUQTUIUJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordinal arithmetic
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c 1o $. $( The ordinal number 1 $)
  $c 2o $. $( The ordinal number 2 $)
  $c 3o $. $( The ordinal number 3 $)
  $c 4o $. $( The ordinal number 4 $)
  $c +o $.  $( Ordinal addition operation (plus subscript o) $)
  $c .o $.  $( Ordinal multiplication operation (center dot subscript o) $)
  $c ^o $.  $( Ordinal exponentiation operation (caret subscript o) $)

  $( Extend the definition of a class to include the ordinal number 1. $)
  c1o $a class 1o $.

  $( Extend the definition of a class to include the ordinal number 2. $)
  c2o $a class 2o $.

  $( Extend the definition of a class to include the ordinal number 3. $)
  c3o $a class 3o $.

  $( Extend the definition of a class to include the ordinal number 4. $)
  c4o $a class 4o $.

  $( Extend the definition of a class to include the ordinal addition
     operation. $)
  coa $a class +o $.

  $( Extend the definition of a class to include the ordinal multiplication
     operation. $)
  comu $a class .o $.

  $( Extend the definition of a class to include the ordinal exponentiation
     operation. $)
  coe $a class ^o $.

  $( Define the ordinal number 1.  (Contributed by NM, 29-Oct-1995.) $)
  df-1o $a |- 1o = suc (/) $.

  $( Define the ordinal number 2.  (Contributed by NM, 18-Feb-2004.) $)
  df-2o $a |- 2o = suc 1o $.

  $( Define the ordinal number 3.  (Contributed by Mario Carneiro,
     14-Jul-2013.) $)
  df-3o $a |- 3o = suc 2o $.

  $( Define the ordinal number 4.  (Contributed by Mario Carneiro,
     14-Jul-2013.) $)
  df-4o $a |- 4o = suc 3o $.

  ${
    $d x y z $.
    $( Define the ordinal addition operation.  (Contributed by NM,
       3-May-1995.) $)
    df-oadd $a |- +o = ( x e. On , y e. On |->
                ( rec ( ( z e. _V |-> suc z ) , x ) ` y ) ) $.

    $( Define the ordinal multiplication operation.  (Contributed by NM,
       26-Aug-1995.) $)
    df-omul $a |- .o = ( x e. On , y e. On |->
                ( rec ( ( z e. _V |-> ( z +o x ) ) , (/) ) ` y ) ) $.

    $( Define the ordinal exponentiation operation.  (Contributed by NM,
       30-Dec-2004.) $)
    df-oexp $a |- ^o = ( x e. On , y e. On |->
                   if ( x = (/) , ( 1o \ y ) ,
                 ( rec ( ( z e. _V |-> ( z .o x ) ) , 1o ) ` y ) ) ) $.
  $}

  $( Ordinal 1 is an ordinal number.  (Contributed by NM, 29-Oct-1995.) $)
  1on $p |- 1o e. On $=
    ( c1o c0 csuc con0 df-1o 0elon onsuci eqeltri ) ABCDEBFGH $.

  $( Ordinal 2 is an ordinal number.  (Contributed by NM, 18-Feb-2004.)  (Proof
     shortened by Andrew Salmon, 12-Aug-2011.) $)
  2on $p |- 2o e. On $=
    ( c2o c1o csuc con0 df-2o 1on onsuci eqeltri ) ABCDEBFGH $.

  $( Ordinal two is not zero.  (Contributed by Scott Fenton, 17-Jun-2011.) $)
  2on0 $p |- 2o =/= (/) $=
    ( c2o c1o csuc c0 df-2o nsuceq0 eqnetri ) ABCDEBFG $.

  $( Ordinal 3 is an ordinal number.  (Contributed by Mario Carneiro,
     5-Jan-2016.) $)
  3on $p |- 3o e. On $=
    ( c3o c2o csuc con0 df-3o 2on onsuci eqeltri ) ABCDEBFGH $.

  $( Ordinal 3 is an ordinal number.  (Contributed by Mario Carneiro,
     5-Jan-2016.) $)
  4on $p |- 4o e. On $=
    ( c4o c3o csuc con0 df-4o 3on onsuci eqeltri ) ABCDEBFGH $.

  $( Expanded value of the ordinal number 1.  (Contributed by NM,
     4-Nov-2002.) $)
  df1o2 $p |- 1o = { (/) } $=
    ( c1o c0 csuc csn df-1o suc0 eqtri ) ABCBDEFG $.

  $( Expanded value of the ordinal number 2.  (Contributed by Mario Carneiro,
     14-Aug-2015.) $)
  df2o3 $p |- 2o = { (/) , 1o } $=
    ( c2o c1o csuc csn cun c0 cpr df-2o df-suc df1o2 uneq1i df-pr eqtr4i 3eqtri
    ) ABCBBDZEZFBGZHBIPFDZOEQBROJKFBLMN $.

  $( Expanded value of the ordinal number 2.  (Contributed by NM,
     29-Jan-2004.) $)
  df2o2 $p |- 2o = { (/) , { (/) } } $=
    ( c2o c0 c1o cpr csn df2o3 df1o2 preq2i eqtri ) ABCDBBEZDFCJBGHI $.

  $( Ordinal one is not equal to ordinal zero.  (Contributed by NM,
     26-Dec-2004.) $)
  1n0 $p |- 1o =/= (/) $=
    ( c1o c0 csn df1o2 0ex snnz eqnetri ) ABCBDBEFG $.

  $( Cartesian products with the singletons of ordinals 0 and 1 are disjoint.
     (Contributed by NM, 2-Jun-2007.) $)
  xp01disj $p |- ( ( A X. { (/) } ) i^i ( C X. { 1o } ) ) = (/) $=
    ( c0 c1o wne csn cxp cin wceq 1n0 necomi xpsndisj ax-mp ) CDEACFGBDFGHCIDCJ
    KACBDLM $.

  $( Two ways to express that an ordinal class is positive.  (Contributed by
     NM, 21-Dec-2004.) $)
  ordgt0ge1 $p |- ( Ord A -> ( (/) e. A <-> 1o C_ A ) ) $=
    ( word c0 wcel csuc wss c1o con0 0elon ordelsuc mpan df-1o sseq1i syl6bbr
    wb ) ABZCADZCEZAFZGAFCHDPQSOICAHJKGRALMN $.

  $( An ordinal greater than or equal to 1 is nonzero.  (Contributed by NM,
     21-Dec-2004.) $)
  ordge1n0 $p |- ( Ord A -> ( 1o C_ A <-> A =/= (/) ) ) $=
    ( word c0 wcel c1o wss wne ordgt0ge1 ord0eln0 bitr3d ) ABCADEAFACGAHAIJ $.

  $( Membership in ordinal one.  (Contributed by NM, 5-Jan-2005.) $)
  el1o $p |- ( A e. 1o <-> A = (/) ) $=
    ( c1o wcel c0 csn wceq df1o2 eleq2i 0ex elsn2 bitri ) ABCADEZCADFBLAGHADIJK
    $.

  $( Two ways to say that ` A ` is a nonzero number of the set ` B ` .
     (Contributed by Mario Carneiro, 21-May-2015.) $)
  dif1o $p |- ( A e. ( B \ 1o ) <-> ( A e. B /\ A =/= (/) ) ) $=
    ( c1o cdif wcel c0 csn wne wa df1o2 difeq2i eleq2i eldifsn bitri ) ABCDZEAB
    FGZDZEABEAFHIOQACPBJKLABFMN $.

  $( Two ways to say that ` A ` is a nonzero ordinal number.  (Contributed by
     Mario Carneiro, 21-May-2015.) $)
  ondif1 $p |- ( A e. ( On \ 1o ) <-> ( A e. On /\ (/) e. A ) ) $=
    ( con0 c1o cdif wcel c0 wne wa dif1o on0eln0 pm5.32i bitr4i ) ABCDEABEZAFGZ
    HMFAEZHABIMONAJKL $.

  $( Two ways to say that ` A ` is an ordinal greater than one.  (Contributed
     by Mario Carneiro, 21-May-2015.) $)
  ondif2 $p |- ( A e. ( On \ 2o ) <-> ( A e. On /\ 1o e. A ) ) $=
    ( con0 c2o cdif wcel wn wa c1o eldif wb 1on wss ontri1 onsssuc df-2o eleq2i
    csuc syl6bbr bitr3d mpan2 con1bid pm5.32i bitri ) ABCDEABEZACEZFZGUDHAEZGAB
    CIUDUFUGUDUGUEUDHBEZUGFZUEJKUDUHGZAHLZUIUEAHMUJUKAHQZEUEAHNCULAOPRSTUAUBUC
    $.

  $( Closure of the pair swapping function on ` 2o ` .  (Contributed by Mario
     Carneiro, 27-Sep-2015.) $)
  2oconcl $p |- ( A e. 2o -> ( 1o \ A ) e. 2o ) $=
    ( c1o cdif c2o wcel c0 cpr wceq wo elpri difeq2 syl6eq difid orim12i orcomd
    dif0 syl con0 cvv df2o3 1on difexg ax-mp elpr sylibr syl6eleqr eleq2s ) BAC
    ZDEAFBGZDAUIEZUHUIDUJUHFHZUHBHZIZUHUIEUJAFHZABHZIZUMAFBJUPULUKUNULUOUKUNUHB
    FCBAFBKBPLUOUHBBCFABBKBMLNOQUHFBBREUHSEUABARUBUCUDUETUFTUG $.

  $( Ordinal zero is less than ordinal one.  (Contributed by NM,
     5-Jan-2005.) $)
  0lt1o $p |- (/) e. 1o $=
    ( c0 c1o wcel wceq eqid el1o mpbir ) ABCAADAEAFG $.

  $( An ordinal greater than one is greater than zero.  (Contributed by Mario
     Carneiro, 25-May-2015.) $)
  dif20el $p |- ( A e. ( On \ 2o ) -> (/) e. A ) $=
    ( con0 c2o cdif wcel c1o c0 ondif2 simprbi 0lt1o wa wi eldifi ontr1 syl mpd
    mpani ) ABCDEZFAEZGAEZRABEZSAHIRGFEZSTJRUAUBSKTLABCMGFANOQP $.

  $( The empty set is a well-ordering of ordinal one.  (Contributed by Mario
     Carneiro, 9-Feb-2015.) $)
  0we1 $p |- (/) We 1o $=
    ( c1o c0 wwe csn wbr wn br0 wrel wb rel0 wesn ax-mp mpbir wceq df1o2 weeq2
    ) ABCZBDZBCZSBBBEFZBBGBHSTIJBBKLMARNQSIOARBPLM $.

  ${
    brwitnlem.r $e |- R = ( `' O " ( _V \ 1o ) ) $.
    brwitnlem.o $e |- O Fn X $.
    $( Lemma for relations which assert the existence of a witness in a
       two-parameter set.  (Contributed by Stefan O'Rear, 25-Jan-2015.)
       (Revised by Mario Carneiro, 23-Aug-2015.) $)
    brwitnlem $p |- ( A R B <-> ( A O B ) =/= (/) ) $=
      ( cop ccnv cvv c1o cdif cima wcel c0 wne wbr wa ax-mp 3bitr4i cfv co fvex
      dif1o mpbiran anbi2i wfn wb elpreima cdm ndmfv necon1ai syl6eleq pm4.71ri
      wceq fndm breqi df-br bitri df-ov neeq1i ) ABHZDIJKLZMZNZVBDUAZOPZABCQZAB
      DUBZOPVBENZVFVCNZRZVJVGRVEVGVKVGVJVKVFJNVGVBDUCVFJUDUEUFDEUGZVEVLUHGEVBVC
      DUISVGVJVGVBDUJZEVBVNNVFOVBDUKULVMVNEUOGEDUPSUMUNTVHABVDQVEABCVDFUQABVDUR
      USVIVFOABDUTVAT $.
  $}

  ${
    $d x y z $.
    $( Functionality and domain of ordinal addition.  (Contributed by NM,
       26-Aug-1995.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    fnoa $p |- +o Fn ( On X. On ) $=
      ( vx vy vz con0 cv cvv csuc cmpt crdg cfv coa df-oadd fvex fnmpt2i ) ABDD
      BEZCFCEGHAEIZJKABCLOPMN $.

    $( Functionality and domain of ordinal multiplication.  (Contributed by NM,
       26-Aug-1995.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    fnom $p |- .o Fn ( On X. On ) $=
      ( vx vy vz con0 cv cvv coa co cmpt c0 crdg cfv comu df-omul fvex fnmpt2i
      ) ABDDBEZCFCEAEGHIJKZLMABCNQROP $.

    $( Functionality and domain of ordinal exponentiation.  (Contributed by
       Mario Carneiro, 29-May-2015.) $)
    fnoe $p |- ^o Fn ( On X. On ) $=
      ( vx vy vz con0 cv c0 wceq c1o cdif cvv comu co cmpt crdg cfv cif df-oexp
      coe wcel 1on difexg ax-mp fvex ifex fnmpt2i ) ABDDAEZFGZHBEZIZUHCJCEUFKLM
      HNZOZPRABCQUGUIUKHDSUIJSTHUHDUAUBUHUJUCUDUE $.
  $}

  ${
    $d x y z A $.  $d y z B $.
    $( Value of ordinal addition.  (Contributed by NM, 3-May-1995.)  (Revised
       by Mario Carneiro, 8-Sep-2013.) $)
    oav $p |- ( ( A e. On /\ B e. On ) ->
             ( A +o B ) = ( rec ( ( x e. _V |-> suc x ) , A ) ` B ) ) $=
      ( vy vz con0 cv cvv csuc cmpt crdg cfv coa wceq rdgeq2 fveq2 df-oadd fvex
      fveq1d ovmpt2 ) DEBCFFEGZAHAGIJZDGZKZLCUBBKZLMUAUELUCBNUAUDUEUCBUBOSUACUE
      PDEAQCUERT $.

    $( Value of ordinal multiplication.  (Contributed by NM, 17-Sep-1995.)
       (Revised by Mario Carneiro, 23-Aug-2014.) $)
    omv $p |- ( ( A e. On /\ B e. On ) ->
     ( A .o B ) = ( rec ( ( x e. _V |-> ( x +o A ) ) , (/) ) ` B ) ) $=
      ( vy vz con0 cv cvv coa co cmpt c0 crdg cfv comu wceq mpteq2dv rdgeq1 syl
      oveq2 fveq1d fveq2 df-omul fvex ovmpt2 ) DEBCFFEGZAHAGZDGZIJZKZLMZNCAHUGB
      IJZKZLMZNOUFUNNUHBPZUFUKUNUOUJUMPUKUNPUOAHUIULUHBUGITQLUJUMRSUAUFCUNUBDEA
      UCCUNUDUE $.
  $}

  ${
    oe0lem.1 $e |- ( ( ph /\ A = (/) ) -> ps ) $.
    oe0lem.2 $e |- ( ( ( A e. On /\ ph ) /\ (/) e. A ) -> ps ) $.
    $( A helper lemma for ~ oe0 and others.  (Contributed by NM,
       6-Jan-2005.) $)
    oe0lem $p |- ( ( A e. On /\ ph ) -> ps ) $=
      ( con0 wcel wa c0 wceq wi ex adantl wne on0eln0 adantr sylbird pm2.61dne
      wb ) CFGZAHZBCIACIJZBKTAUBBDLMUACINZICGZBTUDUCSACOPUAUDBELQR $.
  $}

  ${
    $d x y z A $.  $d y z B $.
    $( Value of ordinal exponentiation.  (Contributed by NM, 30-Dec-2004.)
       (Revised by Mario Carneiro, 23-Aug-2014.) $)
    oev $p |- ( ( A e. On /\ B e. On ) -> ( A ^o B ) = if ( A = (/) ,
      ( 1o \ B ) , ( rec ( ( x e. _V |-> ( x .o A ) ) , 1o ) ` B ) ) ) $=
      ( vy vz con0 cv c0 wceq c1o cdif cvv comu co cmpt crdg cfv cif coe eqeq1
      oveq2 mpteq2dv rdgeq1 syl fveq1d ifbieq2d fveq2 ifeq12d df-oexp 1on elexi
      difeq2 difss ssexi fvex ifex ovmpt2 ) DEBCFFDGZHIZJEGZKZUTALAGZURMNZOZJPZ
      QZRBHIZJCKZCALVBBMNZOZJPZQZRSVGVAUTVKQZRURBIZUSVGVFVMVAURBHTVNUTVEVKVNVDV
      JIVEVKIVNALVCVIURBVBMUAUBJVDVJUCUDUEUFUTCIVGVAVHVMVLUTCJULUTCVKUGUHDEAUIV
      GVHVLVHJJFUJUKJCUMUNCVKUOUPUQ $.

    $( Value of ordinal exponentiation at a nonzero mantissa.  (Contributed by
       NM, 31-Dec-2004.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    oevn0 $p |- ( ( ( A e. On /\ B e. On ) /\ (/) e. A ) -> ( A ^o B ) =
                ( rec ( ( x e. _V |-> ( x .o A ) ) , 1o ) ` B ) ) $=
      ( con0 wcel wa c0 coe co cvv cv comu cmpt c1o crdg cfv wceq wn wb wne cif
      on0eln0 df-ne syl6bb adantr cdif oev iffalse sylan9eq ex sylbid imp ) BDE
      ZCDEZFZGBEZBCHIZCAJAKBLIMNOPZQZUOUPBGQZRZUSUMUPVASUNUMUPBGTVABUBBGUCUDUEU
      OVAUSUOVAUQUTNCUFZURUAURABCUGUTVBURUHUIUJUKUL $.
  $}

  ${
    $d x A $.
    $( Addition with zero.  Proposition 8.3 of [TakeutiZaring] p. 57.
       (Contributed by NM, 3-May-1995.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    oa0 $p |- ( A e. On -> ( A +o (/) ) = A ) $=
      ( vx con0 wcel c0 coa co cvv cv csuc cmpt crdg cfv wceq 0elon mpan2 rdg0g
      oav eqtrd ) ACDZAEFGZEBHBIJKZALMZATECDUAUCNOBAERPACUBQS $.

    $( Ordinal multiplication with zero.  Definition 8.15 of [TakeutiZaring]
       p. 62.  (Contributed by NM, 17-Sep-1995.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    om0 $p |- ( A e. On -> ( A .o (/) ) = (/) ) $=
      ( vx con0 wcel c0 comu co cvv coa cmpt crdg cfv wceq 0elon omv mpan2 rdg0
      cv 0ex syl6eq ) ACDZAEFGZEBHBRAIGJZEKLZEUAECDUBUDMNBAEOPEUCSQT $.

    $( Ordinal exponentiation with zero mantissa.  (Contributed by NM,
       31-Dec-2004.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    oe0m $p |- ( A e. On -> ( (/) ^o A ) = ( 1o \ A ) ) $=
      ( vx con0 wcel c0 coe co wceq c1o cdif cvv cv comu cmpt cfv cif 0elon oev
      crdg mpan eqid iftruei syl6eq ) ACDZEAFGZEEHZIAJZABKBLEMGNISOZPZUGECDUDUE
      UIHQBEARTUFUGUHEUAUBUC $.
  $}

  $( Ordinal multiplication with zero.  Definition 8.15 of [TakeutiZaring]
     p. 62.  Unlike ~ om0 , this version works whether or not ` A ` is an
     ordinal.  However, since it is an artifact of our particular function
     value definition outside the domain, we will not use it in order to be
     conventional and present it only as a curiosity.  (Contributed by NM,
     1-Feb-1996.) $)
  om0x $p |- ( A .o (/) ) = (/) $=
    ( con0 wcel c0 wa comu co wceq om0 adantr cxp wfn cdm fnom fndm ax-mp ndmov
    pm2.61i ) ABCZDBCZEADFGDHZSUATAIJADBFFBBKZLFMUBHNUBFOPQR $.

  $( Ordinal exponentiation with zero mantissa and zero exponent.  Proposition
     8.31 of [TakeutiZaring] p. 67.  (Contributed by NM, 31-Dec-2004.) $)
  oe0m0 $p |- ( (/) ^o (/) ) = 1o $=
    ( c0 con0 wcel coe co c1o wceq 0elon cdif oe0m dif0 syl6eq ax-mp ) ABCZAADE
    ZFGHNOFAIFAJFKLM $.

  $( Ordinal exponentiation with zero mantissa and nonzero exponent.
     Proposition 8.31(2) of [TakeutiZaring] p. 67 and its converse.
     (Contributed by NM, 5-Jan-2005.) $)
  oe0m1 $p |- ( A e. On -> ( (/) e. A <-> ( (/) ^o A ) = (/) ) ) $=
    ( con0 wcel c0 c1o wss coe co wceq word wb eloni ordgt0ge1 cdif oe0m eqeq1d
    syl ssdif0 syl6rbbr bitrd ) ABCZDACZEAFZDAGHZDIZUAAJUBUCKALAMQUAUEEANZDIUCU
    AUDUFDAOPEARST $.

  ${
    $d x A $.
    $( Ordinal exponentiation with zero exponent.  Definition 8.30 of
       [TakeutiZaring] p. 67.  (Contributed by NM, 31-Dec-2004.)  (Revised by
       Mario Carneiro, 8-Sep-2013.) $)
    oe0 $p |- ( A e. On -> ( A ^o (/) ) = 1o ) $=
      ( vx con0 wcel c0 coe co c1o wceq oveq1 oe0m0 syl6eq adantl cvv comu cmpt
      wa cv crdg cfv 0elon oevn0 mpanl2 1on elexi rdg0 adantll oe0lem anidms )
      ACDZAEFGZHIZUJULAAEIZULUJUMUKEEFGHAEEFJKLMUJEADZULUJUJUNQUKEBNBRAOGPZHSTZ
      HUJECDUNUKUPIUABAEUBUCHUOHCUDUEUFLUGUHUI $.

    $( Alternate value of ordinal exponentiation.  Compare ~ oev .
       (Contributed by NM, 2-Jan-2004.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    oev2 $p |- ( ( A e. On /\ B e. On ) -> ( A ^o B ) = ( ( rec (
          ( x e. _V |-> ( x .o A ) ) , 1o ) ` B )
                  i^i ( ( _V \ |^| A ) u. |^| B ) ) ) $=
      ( con0 wcel coe co cvv c1o cint cdif cun cin wceq c0 syl6eq eqtr4d ineq2d
      wa adantl comu cmpt crdg cfv oveq12 oe0m0 fveq2 1on elexi rdg0 inteq int0
      cv ineq12d inv1 a1i sylan9eqr oveq1 oe0m1 biimpa an32s int0el in0 difeq2d
      oe0lem difid uneq2d uncom un0 3eqtr3g oevn0 dif0 unv syl6req eqtrd ) CDEZ
      BCFGZCAHAUMBUAGUBZIUCZUDZHBJZKZCJZLZMZNBVPBONZSZVQVTWCMZWEWFVQWHNCWFCONZS
      ZVQIWHWJVQOOFGIBOCOFUEUFPWIWFWHIHMZIWIVTIWCHWIVTOVSUDICOVSUGIVRIDUHUIUJPW
      IWCOJZHCOUKULPUNWKINWFIUOUPUQQWGOCEZSVQOWHVPWMWFVQONWFVPWMSVQOCFGZOBOCFUR
      VPWMWNONCUSUTUQVAWMWHONWGWMWHVTOMOWMWCOVTCVBRVTVCPTQVEWGWDWCVTWFWDWCNVPWF
      WCWBLZWCOLWDWCWFWBOWCWFWBHHKOWFWAHHWFWAWLHBOUKULPVDHVFPVGWCWBVHZWCVIVJTRQ
      BDEVPSZOBEZSZVQVTWEABCVKWSWEVTHMVTWSWDHVTWRWDHNWQWRWOWCHLWDHWRWBHWCWRWBHO
      KHWRWAOHBVBVDHVLPVGWPWCVMVJTRVTUOVNVOVE $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Addition with successor.  Definition 8.1 of [TakeutiZaring] p. 56.
       (Contributed by NM, 3-May-1995.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    oasuc $p |- ( ( A e. On /\ B e. On ) ->
                ( A +o suc B ) = suc ( A +o B ) ) $=
      ( vx con0 wcel wa csuc cvv cv cmpt crdg cfv coa co rdgsuc adantl suceloni
      wceq oav sylan2 ovex suceq eqid sucex fvmpt ax-mp fveq2d syl5eqr 3eqtr4d
      ) ADEZBDEZFZBGZCHCIZGZJZAKZLZBUQLZUPLZAUMMNZABMNZGZUKURUTRUJABUPOPUKUJUMD
      EVAURRBQCAUMSTULVCVBUPLZUTVBHEVDVCRABMUAZCVBUOVCHUPUNVBUBUPUCVBVEUDUEUFUL
      VBUSUPCABSUGUHUI $.
  $}

  ${
    $d x A $.  $d x B $.
    oesuclem.1 $e |- Lim X $.
    oesuclem.2 $e |- ( B e. X ->
      ( rec ( ( x e. _V |-> ( x .o A ) ) , 1o ) ` suc B ) =
        ( ( x e. _V |-> ( x .o A ) ) `
          ( rec ( ( x e. _V |-> ( x .o A ) ) , 1o ) ` B ) ) ) $.
    $( Lemma for ~ oesuc .  (Contributed by NM, 31-Dec-2004.)  (Revised by
       Mario Carneiro, 15-Nov-2014.) $)
    oesuclem $p |- ( ( A e. On /\ B e. X ) ->
                ( A ^o suc B ) = ( ( A ^o B ) .o A ) ) $=
      ( wcel coe co comu wceq c0 wa oveq1 ax-mp mpan syl wb con0 cfv csuc oe0m1
      word wlim limord ordelord 0elsuc ordelon sylbi mpbid sylan9eqr id oveq12d
      limsuc oveq2 c1o oe0m0 1on eqeltri syl6eqel adantl biimpa adantll mpancom
      0elon oe0lem om0 eqtr4d cvv cv cmpt crdg ad2antlr oevn0 sylanl2 ovex eqid
      fvmpt fveq2d syl5eqr 3eqtr4d ) CDGZBCUAZHIZBCHIZBJIZKBWBBLKZMWDLWFWGWBWDL
      WCHIZLBLWCHNWBLWCGZWHLKZWBCUCZWIDUCZWBWKDUDZWLEDUEOZDCUFPCUGQWBWCDGZWIWJR
      ZWMWBWOREDCUNOZWOWCSGZWPWLWOWRWNDWCUHPZWCUBQUIUJUKWGWBWFLCHIZLJIZLWGWEWTB
      LJBLCHNWGULUMWBWTSGZXALKCSGZWBXBWLWBXCWNDCUHPZWBXBCCLKZXBWBXEWTLLHIZSCLLH
      UOXFUPSUQURUSUTVAWBLCGZXBXCWBXGMWTLSWBXGWTLKZWBXCXGXHRXDCUBQVBVEUTVCVFVDW
      TVGQUKVHBSGZWBMLBGZMZWCAVIAVJZBJIZVKZUPVLZTZCXOTZXNTZWDWFWBXPXRKXIXJFVMWB
      XIWRXJWDXPKWBWOWRWQWSUIABWCVNVOXKWFWEXNTZXRWEVIGXSWFKBCHVPAWEXMWFVIXNXLWE
      BJNXNVQWEBJVPVROXKWEXQXNWBXIXCXJWEXQKXDABCVNVOVSVTWAVF $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Multiplication with successor.  Definition 8.15 of [TakeutiZaring]
       p. 62.  (Contributed by NM, 17-Sep-1995.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    omsuc $p |- ( ( A e. On /\ B e. On ) ->
                ( A .o suc B ) = ( ( A .o B ) +o A ) ) $=
      ( vx con0 wcel wa csuc cvv cv coa cmpt crdg cfv comu wceq rdgsuc omv ovex
      co c0 adantl suceloni sylan2 oveq1 fvmpt ax-mp fveq2d syl5eqr 3eqtr4d
      eqid ) ADEZBDEZFZBGZCHCIZAJSZKZTLZMZBURMZUQMZAUNNSZABNSZAJSZULUSVAOUKTBUQ
      PUAULUKUNDEVBUSOBUBCAUNQUCUMVDVCUQMZVAVCHEVEVDOABNRCVCUPVDHUQUOVCAJUDUQUJ
      VCAJRUEUFUMVCUTUQCABQUGUHUI $.

    $( Ordinal exponentiation with a successor exponent.  Definition 8.30 of
       [TakeutiZaring] p. 67.  (Contributed by NM, 31-Dec-2004.)  (Revised by
       Mario Carneiro, 8-Sep-2013.) $)
    oesuc $p |- ( ( A e. On /\ B e. On ) ->
                ( A ^o suc B ) = ( ( A ^o B ) .o A ) ) $=
      ( vx con0 limon c1o cvv cv comu co cmpt rdgsuc oesuclem ) CABDEFBCGCHAIJK
      LM $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Addition with successor.  Theorem 4I(A2) of [Enderton] p. 79.  (Note
       that this version of ~ oasuc does not need Replacement.)  (Contributed
       by Mario Carneiro, 16-Nov-2014.) $)
    onasuc $p |- ( ( A e. On /\ B e. _om ) ->
                  ( A +o suc B ) = suc ( A +o B ) ) $=
      ( vx con0 wcel com wa csuc cvv cv cfv coa co wceq adantl fvres syl fveq2d
      oav sylan2 cmpt crdg cres frsuc peano2 3eqtr3d nnon ovex suceq eqid sucex
      suceloni fvmpt ax-mp syl5eqr 3eqtr4d ) ADEZBFEZGZBHZCICJZHZUAZAUBZKZBVDKZ
      VCKZAUTLMZABLMZHZUSUTVDFUCZKZBVKKZVCKZVEVGURVLVNNUQABVCUDOUSUTFEZVLVENURV
      OUQBUEOUTFVDPQUSVMVFVCURVMVFNUQBFVDPORUFURUQUTDEZVHVENURBDEZVPBUGZBULQCAU
      TSTUSVJVIVCKZVGVIIEVSVJNABLUHZCVIVBVJIVCVAVIUIVCUJVIVTUKUMUNUSVIVFVCURUQV
      QVIVFNVRCABSTRUOUP $.

    $( Multiplication with successor.  Theorem 4J(A2) of [Enderton] p. 80.
       (Contributed by NM, 20-Sep-1995.)  (Revised by Mario Carneiro,
       14-Nov-2014.) $)
    onmsuc $p |- ( ( A e. On /\ B e. _om ) ->
                  ( A .o suc B ) = ( ( A .o B ) +o A ) ) $=
      ( vx con0 wcel com comu co cvv coa c0 cfv wceq nnon syl omv sylan2 adantl
      fvres eqtr4d wa csuc cv cmpt crdg cres peano2 ovex oveq1 eqid fvmpt ax-mp
      fveq2d syl5eqr frsuc ) ADEZBFEZUAZABUBZGHZUSCICUCZAJHZUDZKUEZFUFZLZABGHZA
      JHZURUTUSVDLZVFUQUPUSDEZUTVIMUQUSFEZVJBUGZUSNOCAUSPQURVKVFVIMUQVKUPVLRUSF
      VDSOTURVHBVELZVCLZVFURVHVGVCLZVNVGIEVOVHMABGUHCVGVBVHIVCVAVGAJUIVCUJVGAJU
      HUKULURVGVMVCURVGBVDLZVMUQUPBDEVGVPMBNCABPQUQVMVPMUPBFVDSRTUMUNUQVFVNMUPK
      BVCUORTT $.

    $( Exponentiation with a successor exponent.  Definition 8.30 of
       [TakeutiZaring] p. 67.  (Contributed by Mario Carneiro, 14-Nov-2014.) $)
    onesuc $p |- ( ( A e. On /\ B e. _om ) ->
                ( A ^o suc B ) = ( ( A ^o B ) .o A ) ) $=
      ( vx com limom wcel csuc cvv cv comu co cmpt c1o crdg cres cfv frsuc wceq
      peano2 fvres syl fveq2d 3eqtr3d oesuclem ) CABDEBDFZBGZCHCIAJKLZMNZDOZPZB
      UIPZUGPUFUHPZBUHPZUGPMBUGQUEUFDFUJULRBSUFDUHTUAUEUKUMUGBDUHTUBUCUD $.
  $}

  $( Addition with 1 is same as successor.  Proposition 4.34(a) of [Mendelson]
     p. 266.  (Contributed by NM, 29-Oct-1995.)  (Revised by Mario Carneiro,
     16-Nov-2014.) $)
  oa1suc $p |- ( A e. On -> ( A +o 1o ) = suc A ) $=
    ( con0 wcel c1o coa co c0 csuc df-1o oveq2i wceq peano1 onasuc mpan2 syl5eq
    com oa0 suceq syl eqtrd ) ABCZADEFZAGEFZHZAHZUAUBAGHZEFZUDDUFAEIJUAGPCUGUDK
    LAGMNOUAUCAKUDUEKAQUCARST $.

  ${
    $d x y A $.  $d x B $.
    $( Ordinal addition with a limit ordinal.  Definition 8.1 of
       [TakeutiZaring] p. 56.  (Contributed by NM, 3-Aug-2004.)  (Revised by
       Mario Carneiro, 8-Sep-2013.) $)
    oalim $p |- ( ( A e. On /\ ( B e. C /\ Lim B ) ) ->
                ( A +o B ) = U_ x e. B ( A +o x ) ) $=
      ( vy wcel wlim wa con0 coa co ciun wceq limelon simpr jca cfv oav sylan2
      cv cvv csuc cmpt crdg rdglim2a adantl wb anassrs iuneq2dv eqeq12d adantrr
      onelon mpbird ) CDFZCGZHZBIFZCIFZUOHZBCJKZACBATZJKZLZMZUPURUOCDNUNUOOPUQU
      SHVDCEUAETUBUCZBUDZQZACVAVFQZLZMZUSVJUQABCIVEUEUFUQURVDVJUGUOUQURHZUTVGVC
      VIEBCRVKACVBVHUQURVACFZVBVHMZURVLHUQVAIFVMCVAULEBVARSUHUIUJUKUMS $.

    $( Ordinal multiplication with a limit ordinal.  Definition 8.15 of
       [TakeutiZaring] p. 62.  (Contributed by NM, 3-Aug-2004.)  (Revised by
       Mario Carneiro, 8-Sep-2013.) $)
    omlim $p |- ( ( A e. On /\ ( B e. C /\ Lim B ) ) ->
                ( A .o B ) = U_ x e. B ( A .o x ) ) $=
      ( vy wcel wlim wa con0 comu co cv ciun wceq limelon simpr cfv omv sylan2
      c0 jca cvv coa cmpt crdg rdglim2a adantl anassrs iuneq2dv eqeq12d adantrr
      wb onelon mpbird ) CDFZCGZHZBIFZCIFZUPHZBCJKZACBALZJKZMZNZUQUSUPCDOUOUPPU
      AURUTHVECEUBELBUCKUDZTUEZQZACVBVGQZMZNZUTVKURATCIVFUFUGURUSVEVKULUPURUSHZ
      VAVHVDVJEBCRVLACVCVIURUSVBCFZVCVINZUSVMHURVBIFVNCVBUMEBVBRSUHUIUJUKUNS $.

    $( Ordinal exponentiation with a limit exponent and nonzero mantissa.
       Definition 8.30 of [TakeutiZaring] p. 67.  (Contributed by NM,
       1-Jan-2005.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    oelim $p |- ( ( ( A e. On /\ ( B e. C /\ Lim B ) ) /\ (/) e. A ) ->
                ( A ^o B ) = U_ x e. B ( A ^o x ) ) $=
      ( vy wcel wlim wa con0 c0 coe co ciun wceq limelon c1o cfv oevn0 sylanl2
      cv simpr jca comu cmpt crdg rdglim2a ad2antlr wb onelon exp42 com34 imp41
      cvv iuneq2dv eqeq12d adantlrr mpbird ) CDFZCGZHZBIFZCIFZUSHZJBFZBCKLZACBA
      TZKLZMZNZUTVBUSCDOURUSUAUBVAVCHVDHVICEUMETBUCLUDZPUEZQZACVFVKQZMZNZVCVOVA
      VDAPCIVJUFUGVAVBVDVIVOUHUSVAVBHVDHZVEVLVHVNEBCRVPACVGVMVAVBVDVFCFZVGVMNZV
      AVBVQVDVRVAVBVQVDVRVBVQHVAVFIFVDVRCVFUIEBVFRSUJUKULUNUOUPUQS $.
  $}

  ${
    $d x y A $.  $d x B $.
    $( Closure law for ordinal addition.  Proposition 8.2 of [TakeutiZaring]
       p. 57.  (Contributed by NM, 5-May-1995.) $)
    oacl $p |- ( ( A e. On /\ B e. On ) -> ( A +o B ) e. On ) $=
      ( vx vy con0 wcel coa co cv c0 csuc oveq2 eleq1d oa0 wi wa syl5ibr expcom
      wceq cvv ibir suceloni oasuc wlim wral ciun vex iunon mpan mpanr1 tfinds3
      oalim impcom ) BEFAEFZABGHZEFZACIZGHZEFZAJGHZEFZADIZGHZEFZAVBKZGHZEFZUPUN
      CDBUQJSURUTEUQJAGLMUQVBSURVCEUQVBAGLMUQVESURVFEUQVEAGLMUQBSURUOEUQBAGLMUN
      VAUNUTAEANMUAUNVBEFZVDVGOVDVGUNVHPZVCKZEFVCUBVIVFVJEAVBUCMQRUNUQUDZVDDUQU
      EZUSOVLUSUNVKPZDUQVCUFZEFZUQTFZVLVOCUGZDUQVCTUHUIVMURVNEUNVPVKURVNSVQDAUQ
      TULUJMQRUKUM $.

    $( Closure law for ordinal multiplication.  Proposition 8.16 of
       [TakeutiZaring] p. 57.  (Contributed by NM, 3-Aug-2004.)  (Proof
       shortened by Andrew Salmon, 22-Oct-2011.) $)
    omcl $p |- ( ( A e. On /\ B e. On ) -> ( A .o B ) e. On ) $=
      ( vx vy con0 wcel comu co cv c0 csuc wceq oveq2 eleq1d 0elon wi wa expcom
      om0 cvv syl6eqel coa oacl adantr omsuc sylibrd wlim wral ciun iunon omlim
      vex mpan mpanr1 syl5ibr tfinds3 impcom ) BEFAEFZABGHZEFZACIZGHZEFZAJGHZEF
      ADIZGHZEFZAVEKZGHZEFZUTURCDBVAJLVBVDEVAJAGMNVAVELVBVFEVAVEAGMNVAVHLVBVIEV
      AVHAGMNVABLVBUSEVABAGMNURVDJEASOUAURVEEFZVGVJPURVKQZVGVFAUBHZEFZVJURVGVNP
      VKVGURVNVFAUCRUDVLVIVMEAVEUENUFRURVAUGZVGDVAUHZVCPVPVCURVOQZDVAVFUIZEFZVA
      TFZVPVSCULZDVAVFTUJUMVQVBVREURVTVOVBVRLWADAVATUKUNNUORUPUQ $.

    $( Closure law for ordinal exponentiation.  (Contributed by NM,
       1-Jan-2005.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
    oecl $p |- ( ( A e. On /\ B e. On ) -> ( A ^o B ) e. On ) $=
      ( vx vy con0 wcel coe co c0 wceq oveq2 c1o 1on syl6eqel wa oe0lem syl5ibr
      eleq1d wi cvv oe0m0 eqeltri adantl oe0m1 biimpa 0elon anidms oveq1 impcom
      adantll cv csuc oe0 adantr comu omcl oesuc sylibrd adantrd wlim wral ciun
      expcom vex iunon mpan oelim mpanlr1 anasss an12s tfinds3 expd com12 imp31
      ex ) BEFZABGHZEFZAAIJZVPVRVPVRVSIBGHZEFZVPWAVPWABBIJZWAVPWBVTIIGHZEBIIGKW
      CLEUAMUBNUCVPIBFZWAVPVPWDOVTIEVPWDVTIJBUDUEUFNUJPUGVSVQVTEAIBGUHRQUIAEFZV
      PIAFZVRVPWEWFVRSVPWEWFVRACUKZGHZEFZAIGHZEFZADUKZGHZEFZAWLULZGHZEFZVRWEWFO
      ZCDBWGIJWHWJEWGIAGKRWGWLJWHWMEWGWLAGKRWGWOJWHWPEWGWOAGKRWGBJWHVQEWGBAGKRW
      EWKWFWEWJLEAUMMNUNWLEFZWEWNWQSZWFWEWSWTWEWSOZWNWMAUOHZEFZWQWEWNXCSWSWNWEX
      CWMAUPVCUNXAWPXBEAWLUQRURVCUSWGUTZWRWNDWGVAZWISXEWIXDWROZDWGWMVBZEFZWGTFZ
      XEXHCVDZDWGWMTVEVFXFWHXGEWEXDWFWHXGJZWEXDWFXKWEXIXDWFXKXJDAWGTVGVHVIVJRQV
      OVKVLVMVNP $.
  $}

  ${
    $d x y $.  $d x A $.
    $( Ordinal addition with zero.  Proposition 8.3 of [TakeutiZaring] p. 57.
       (Contributed by NM, 5-May-1995.) $)
    oa0r $p |- ( A e. On -> ( (/) +o A ) = A ) $=
      ( vx vy c0 cv coa co wceq csuc oveq2 id eqeq12d con0 wcel 0elon oa0 ax-mp
      mpan ciun cvv oasuc suceq sylan9eq ex wral wlim iuneq2 uniiun syl6eqr vex
      cuni wa oalim limuni syl5ibr tfinds ) DBEZFGZUQHZDDFGZDHZDCEZFGZVBHZDVBIZ
      FGZVEHZDAFGZAHBCAUQDHZURUTUQDUQDDFJVIKLUQVBHZURVCUQVBUQVBDFJVJKLUQVEHZURV
      FUQVEUQVEDFJVKKLUQAHZURVHUQAUQADFJVLKLDMNZVAODPQVBMNZVDVGVNVDVFVCIZVEVMVN
      VFVOHODVBUARVCVBUBUCUDVDCUQUEZUSUQUFZCUQVCSZUQUKZHVPVRCUQVBSVSCUQVCVBUGCU
      QUHUIVQURVRUQVSUQTNZVQURVRHZBUJVMVTVQULWAOCDUQTUMRRUQUNLUOUP $.
  $}

  ${
    $d x y A $.
    $( Ordinal multiplication with zero.  Proposition 8.18(1) of
       [TakeutiZaring] p. 63.  (Contributed by NM, 3-Aug-2004.) $)
    om0r $p |- ( A e. On -> ( (/) .o A ) = (/) ) $=
      ( vx vy c0 cv comu co wceq csuc oveq2 eqeq1d om0x con0 wcel 0elon syl5ibr
      coa mpan ciun cvv oveq1 omsuc oa0 ax-mp eqcomi a1i eqeq12d wral wlim iun0
      iuneq2 syl6eq vex wa omlim tfinds ) DBEZFGZDHZDDFGZDHDCEZFGZDHZDVAIZFGZDH
      ZDAFGZDHBCAUQDHURUTDUQDDFJKUQVAHURVBDUQVADFJKUQVDHURVEDUQVDDFJKUQAHURVGDU
      QADFJKDLVCVFVAMNZVBDQGZDDQGZHVBDDQUAVHVEVIDVJDMNZVHVEVIHODVAUBRDVJHVHVJDV
      KVJDHODUCUDUEUFUGPVCCUQUHZUSUQUIZCUQVBSZDHVLVNCUQDSDCUQVBDUKCUQUJULVMURVN
      DUQTNZVMURVNHZBUMVKVOVMUNVPOCDUQTUORRKPUP $.
  $}

  $( 1 + 1 = 2 for ordinal numbers.  (Contributed by NM, 18-Feb-2004.) $)
  o1p1e2 $p |- ( 1o +o 1o ) = 2o $=
    ( c1o coa co csuc c2o con0 wcel wceq 1on oa1suc ax-mp df-2o eqtr4i ) AABCZA
    DZEAFGNOHIAJKLM $.

  $( 2 + 2 = 4 for ordinal numbers.  Ordinal numbers are modeled as Von Neumann
     ordinals; see ~ df-suc .  For the usual proof using complex numbers, see
     ~ 2p2e4 .  (Contributed by NM, 18-Aug-2021.) $)
  o2p2e4 $p |- ( 2o +o 2o ) = 4o $=
    ( c2o coa co c3o csuc c4o c1o con0 wcel wceq oasuc mp2an df-2o oveq2i df-3o
    2on 1on oa1suc ax-mp eqtr4i suceq 3eqtr4i df-4o ) AABCZDEZFAGEZBCZAGBCZEZUD
    UEAHIZGHIUGUIJPQAGKLAUFABMNDUHJUEUIJDAEZUHOUJUHUKJPARSTDUHUASUBUCT $.

  $( Ordinal multiplication with 1.  Proposition 8.18(2) of [TakeutiZaring]
     p. 63.  (Contributed by NM, 29-Oct-1995.) $)
  om1 $p |- ( A e. On -> ( A .o 1o ) = A ) $=
    ( con0 wcel c1o comu co coa csuc df-1o oveq2i com wceq peano1 onmsuc syl5eq
    c0 mpan2 om0 oveq1d oa0r 3eqtrd ) ABCZADEFZAPEFZAGFZPAGFAUBUCAPHZEFZUEDUFAE
    IJUBPKCUGUELMAPNQOUBUDPAGARSATUA $.

  ${
    $d x y $.  $d x A $.
    $( Ordinal multiplication with 1.  Proposition 8.18(2) of [TakeutiZaring]
       p. 63.  (Contributed by NM, 3-Aug-2004.) $)
    om1r $p |- ( A e. On -> ( 1o .o A ) = A ) $=
      ( vx vy c1o cv comu co wceq c0 oveq2 id eqeq12d con0 wcel wa coa 1on mpan
      ciun cvv csuc om0x omsuc oveq1 sylan9eq oa1suc adantr ex wral wlim iuneq2
      eqtrd cuni uniiun syl6eqr vex omlim limuni syl5ibr tfinds ) DBEZFGZVAHZDI
      FGZIHDCEZFGZVEHZDVEUAZFGZVHHZDAFGZAHBCAVAIHZVBVDVAIVAIDFJVLKLVAVEHZVBVFVA
      VEVAVEDFJVMKLVAVHHZVBVIVAVHVAVHDFJVNKLVAAHZVBVKVAAVAADFJVOKLDUBVEMNZVGVJV
      PVGOVIVEDPGZVHVPVGVIVFDPGZVQDMNZVPVIVRHQDVEUCRVFVEDPUDUEVPVQVHHVGVEUFUGUL
      UHVGCVAUIZVCVAUJZCVAVFSZVAUMZHVTWBCVAVESWCCVAVFVEUKCVAUNUOWAVBWBVAWCVATNZ
      WAVBWBHZBUPVSWDWAOWEQCDVATUQRRVAURLUSUT $.
  $}

  $( Ordinal exponentiation with an exponent of 1.  (Contributed by NM,
     2-Jan-2005.) $)
  oe1 $p |- ( A e. On -> ( A ^o 1o ) = A ) $=
    ( con0 wcel c1o coe co comu csuc df-1o oveq2i com wceq peano1 onesuc syl5eq
    c0 mpan2 oe0 oveq1d om1r 3eqtrd ) ABCZADEFZAPEFZAGFZDAGFAUBUCAPHZEFZUEDUFAE
    IJUBPKCUGUELMAPNQOUBUDDAGARSATUA $.

  ${
    $d x y $.  $d x A $.
    $( Ordinal exponentiation with a mantissa of 1.  Proposition 8.31(3) of
       [TakeutiZaring] p. 67.  (Contributed by NM, 2-Jan-2005.) $)
    oe1m $p |- ( A e. On -> ( 1o ^o A ) = 1o ) $=
      ( vx vy c1o cv coe co wceq c0 oveq2 eqeq1d con0 wcel ax-mp comu mpan ciun
      1on cvv wa csuc oe0 oesuc oveq1 syl6eq sylan9eq ex wral wlim iuneq2 0lt1o
      om1 vex oelim mpan2 wne 0ellim ne0i iunconst eqeq2d bitr4d syl5ibr tfinds
      3syl ) DBEZFGZDHZDIFGZDHZDCEZFGZDHZDVJUAZFGZDHZDAFGZDHBCAVEIHVFVHDVEIDFJK
      VEVJHVFVKDVEVJDFJKVEVMHVFVNDVEVMDFJKVEAHVFVPDVEADFJKDLMZVIRDUBNVJLMZVLVOV
      RVLVNVKDOGZDVQVRVNVSHRDVJUCPVLVSDDOGZDVKDDOUDVQVTDHRDULNUEUFUGVLCVEUHVGVE
      UIZCVEVKQZCVEDQZHZCVEVKDUJWAVGWBDHWDWAVFWBDVESMZWAVFWBHZBUMVQWEWATZWFRVQW
      GTIDMWFUKCDVESUNUOPPKWAWCDWBWAIVEMVEIUPWCDHVEUQVEIURCVEDUSVDUTVAVBVC $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Ordering property of ordinal addition.  Proposition 8.4 of
       [TakeutiZaring] p. 58.  (Contributed by NM, 5-Dec-2004.) $)
    oaordi $p |- ( ( B e. On /\ C e. On ) ->
                 ( A e. B -> ( C +o A ) e. ( C +o B ) ) ) $=
      ( vx vy con0 wcel coa co wi wa csuc wss oveq2 sseq2d imbi2d ancoms ex cvv
      wceq onelon adantll word eloni ordsucss syl ad2antlr sucelon cv ssid 2a1i
      sssucid sstr2 mpi oasuc syl5ibr ad2antrr a2d wlim wral ciun sylbir limsuc
      sucssel biimpd sylan9r imp ssiun2s adantr vex mpanr1 adantlr sseqtr4d a1d
      oalim exp31 syl5bi com4r imp31 sseq1d ovex ax-mp syl6bi 3syld an32s mpdan
      tfindsg ) CFGZBFGZABGZCAHIZCBHIZGZJWHWIKZWJWMWNWJKAFGZWMWIWJWOWHBAUAUBWNW
      OWJWMWNWOKZWJWMWPWJALZBMZCWQHIZWLMZWMWIWJWRJZWHWOWIBUCXABUDABUEUFUGWHWIWO
      WRWTJWIWOWRWHWTWOWQFGZWIWRWHWTJZJAUHZWIXBWRXCWHWSCDUIZHIZMZJZWHWSWSMZJWHW
      SCEUIZHIZMZJZWHWSCXJLZHIZMZJXCDEBWQXEWQTZXGXIWHXQXFWSWSXEWQCHNOPXEXJTZXGX
      LWHXRXFXKWSXEXJCHNOPXEXNTZXGXPWHXSXFXOWSXEXNCHNOPXEBTZXGWTWHXTXFWLWSXEBCH
      NOPXIXBWHWSUJUKXJFGZXBKWQXJMZKWHXLXPYAWHXLXPJZJXBYBYAWHYCXLXPYAWHKZWSXKLZ
      MZXLXKYEMYFXKULWSXKYEUMUNYDXOYEWSWHYAXOYETCXJUOQOUPRUQURXEUSZXBKZWQXEMZKZ
      XHYBXMJEXEUTYJWHXGYJWHKWSEXEXKVAZXFYJWSYKMZWHYJWQXEGZYLYHYIYMXBYIAXEGZYGY
      MXBWOYIYNJXDAXEFVDVBYGYNYMXEAVCVEVFVGEXEXKWQWSXJWQCHNVHUFVIYHWHXFYKTZYIYG
      WHYOXBWHYGYOWHXESGYGYODVJECXESVOVKQVLVLVMRVNWGVPVQVRVSWHWOWTWMJWIWHWOKZWT
      WKLZWLMZWMYPWSYQWLCAUOVTWKSGYRWMJCAHWAWKWLSVDWBWCVLWDVGWEWFRQ $.
  $}

  $( Ordering property of ordinal addition.  Proposition 8.4 of [TakeutiZaring]
     p. 58 and its converse.  (Contributed by NM, 5-Dec-2004.) $)
  oaord $p |- ( ( A e. On /\ B e. On /\ C e. On ) ->
                 ( A e. B <-> ( C +o A ) e. ( C +o B ) ) ) $=
    ( con0 wcel coa co wi oaordi wceq wo wn word wa wb oacl syl anim12i ordtri2
    eloni w3a 3adant1 oveq2 a1i 3adant2 orim12d con3d df-3an ancom anandi sylbi
    3bitri 3adant3 3imtr4d impbid ) ADEZBDEZCDEZUAZABEZCAFGZCBFGZEZUQURUTVCHUPA
    BCIUBUSVAVBJZVBVAEZKZLZABJZBAEZKZLZVCUTUSVJVFUSVHVDVIVEVHVDHUSABCFUCUDUPURV
    IVEHUQBACIUEUFUGUSVAMZVBMZNZVCVGOUSURUPNZURUQNZNZVNUSUPUQNZURNURVRNVQUPUQUR
    UHVRURUIURUPUQUJULVOVLVPVMVOVADEVLCAPVATQVPVBDEVMCBPVBTQRUKVAVBSQUSAMZBMZNZ
    UTVKOUPUQWAURUPVSUQVTATBTRUMABSQUNUO $.

  $( Left cancellation law for ordinal addition.  Corollary 8.5 of
     [TakeutiZaring] p. 58.  (Contributed by NM, 5-Dec-2004.) $)
  oacan $p |- ( ( A e. On /\ B e. On /\ C e. On ) ->
                   ( ( A +o B ) = ( A +o C ) <-> B = C ) ) $=
    ( con0 wcel w3a wo wn coa co wceq wb oaord word eloni ordtri3 syl2an wa syl
    oacl 3comr 3com13 orbi12d notbid 3adant1 3impdi 3bitr4rd ) ADEZBDEZCDEZFZBC
    EZCBEZGZHZABIJZACIJZEZUQUPEZGZHZBCKZUPUQKZUKUNUTUKULURUMUSUIUJUHULURLBCAMUA
    UJUIUHUMUSLCBAMUBUCUDUIUJVBUOLZUHUIBNCNVDUJBOCOBCPQUEUHUIUJVCVALZUHUIRZUPNZ
    UQNZVEUHUJRZVFUPDEVGABTUPOSVIUQDEVHACTUQOSUPUQPQUFUG $.

  $( Weak ordering property of ordinal addition.  (Contributed by NM,
     6-Dec-2004.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
  oaword $p |- ( ( A e. On /\ B e. On /\ C e. On ) ->
                 ( A C_ B <-> ( C +o A ) C_ ( C +o B ) ) ) $=
    ( con0 wcel w3a wn coa co wb oaord 3com12 notbid ontri1 3adant3 oacl ancoms
    wss 3adant2 3adant1 syl2anc 3bitr4d ) ADEZBDEZCDEZFZBAEZGZCBHIZCAHIZEZGZABR
    ZUJUIRZUFUGUKUDUCUEUGUKJBACKLMUCUDUMUHJUEABNOUFUJDEZUIDEZUNULJUCUEUOUDUEUCU
    OCAPQSUDUEUPUCUEUDUPCBPQTUJUINUAUB $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Weak ordering property of ordinal addition.  Proposition 8.7 of
       [TakeutiZaring] p. 59.  (Contributed by NM, 7-Dec-2004.) $)
    oawordri $p |- ( ( A e. On /\ B e. On /\ C e. On ) ->
                 ( A C_ B -> ( A +o C ) C_ ( B +o C ) ) ) $=
      ( vx vy con0 wcel wss coa co wi cv c0 csuc wa wceq oveq2 sseq12d oa0 cvv
      adantr adantl biimpar wb word eloni syl ordsucsssuc syl2an anandirs oasuc
      oacl adantlr adantll bitr4d biimpd expcom wlim wral vex ciun ss2iun oalim
      adantrd syl5ibr mpanr1 tfinds3 exp4c 3imp231 ) CFGZAFGZBFGZABHZACIJZBCIJZ
      HZKVJVKVLVMVPADLZIJZBVQIJZHZAMIJZBMIJZHZAELZIJZBWDIJZHZAWDNZIJZBWHIJZHZVP
      VKVLOZVMODECVQMPVRWAVSWBVQMAIQVQMBIQRVQWDPVRWEVSWFVQWDAIQVQWDBIQRVQWHPVRW
      IVSWJVQWHAIQVQWHBIQRVQCPVRVNVSVOVQCAIQVQCBIQRWLWCVMWLWAAWBBVKWAAPVLASUAVL
      WBBPVKBSUBRUCWDFGZWLWGWKKZVMWLWMWNWLWMOZWGWKWOWGWENZWFNZHZWKVKVLWMWGWRUDZ
      VKWMOZWEUEZWFUEZWSVLWMOZWTWEFGXAAWDULWEUFUGXCWFFGXBBWDULWFUFUGWEWFUHUIUJW
      OWIWPWJWQVKWMWIWPPVLAWDUKUMVLWMWJWQPVKBWDUKUNRUOUPUQVDVQURZWLWGEVQUSZVTKZ
      VMWLXDXFWLVQTGZXDXFDUTXEVTWLXGXDOZOZEVQWEVAZEVQWFVAZHEVQWEWFVBXIVRXJVSXKV
      KXHVRXJPVLEAVQTVCUMVLXHVSXKPVKEBVQTVCUNRVEVFUQVDVGVHVI $.
  $}

  $( An ordinal is less than its sum with a nonzero ordinal.  Theorem 18 of
     [Suppes] p. 209 and its converse.  (Contributed by NM, 6-Dec-2004.) $)
  oaord1 $p |- ( ( A e. On /\ B e. On ) ->
               ( (/) e. B <-> A e. ( A +o B ) ) ) $=
    ( con0 wcel c0 coa co wb wa 0elon oaord mp3an1 wceq oa0 adantl eleq1d bitrd
    ancoms ) BCDZACDZEBDZAABFGZDZHSTIZUAAEFGZUBDZUCECDSTUAUFHJEBAKLUDUEAUBTUEAM
    SANOPQR $.

  $( An ordinal is less than or equal to its sum with another.  Part of
     Exercise 5 of [TakeutiZaring] p. 62.  (For the other part see ~ oaord1 .)
     (Contributed by NM, 6-Dec-2004.) $)
  oaword1 $p |- ( ( A e. On /\ B e. On ) -> A C_ ( A +o B ) ) $=
    ( con0 wcel wa c0 coa co wceq oa0 adantr wss 0ss 0elon oaword 3com13 mp3an3
    wb mpbii eqsstr3d ) ACDZBCDZEZAAFGHZABGHZUAUDAIUBAJKUCFBLZUDUELZBMUAUBFCDZU
    FUGRZNUHUBUAUIFBAOPQST $.

  $( An ordinal is less than or equal to its sum with another.  Theorem 21 of
     [Suppes] p. 209.  (Contributed by NM, 7-Dec-2004.) $)
  oaword2 $p |- ( ( A e. On /\ B e. On ) -> A C_ ( B +o A ) ) $=
    ( con0 wcel coa co wss wa c0 0ss wi oawordri mp3an1 wceq oa0r adantl sseq1d
    0elon sylibd mpi ancoms ) BCDZACDZABAEFZGZUBUCHZIBGZUEBJUFUGIAEFZUDGZUEICDU
    BUCUGUIKRIBALMUFUHAUDUCUHANUBAOPQSTUA $.

  ${
    $d x y z A $.  $d x y z B $.  $d x z S $.
    oawordeulem.1 $e |- A e. On $.
    oawordeulem.2 $e |- B e. On $.
    oawordeulem.3 $e |- S = { y e. On | B C_ ( A +o y ) } $.
    $( Lemma for ~ oawordex .  (Contributed by NM, 11-Dec-2004.) $)
    oawordeulem $p |- ( A C_ B -> E! x e. On ( A +o x ) = B ) $=
      ( vz wss cv coa co wceq con0 wa wcel c0 oveq2 ax-mp wrex wi wral wreu wne
      cint crab ssrab2 eqsstri oaword2 mp2an sseq2d mpbir2an ne0ii oninton csuc
      elrab2 cvv wlim w3o onzsl mpbi syl6eq sseq1d biimprd oasuc mpan sylan9eqr
      oa0 vex sucid eleq2 mpbiri oneli wn inteqi eleq2i onnminsb syl5bi wb oacl
      ontri1 sylancr con2bid sylibrd word onordi ordsucss 3syl adantl rexlimiva
      mpcom eqsstrd a1d ciun oalim iunss onelssi syl syl6eqss 3jaoi rspcev nfcv
      mprgbir nfrab1 nfint nfov nfss onminsb oveq2i sseqtr4i eqss sylibr eqeq1d
      jctir eqtr3 oacan mp3an1 syl5ib rgen2a reu4 ) CDJZCAKZLMZDNZAOUAZYECBKZLM
      ZDNZPZYCYGNZUBZBOUCAOUCZPYEAOUDYBYFYMYBEUFZOQZCYNLMZDNZYFEOJERUEYOEDYHJZB
      OUGZOHYRBOUHUIDEDEQDOQZDCDLMZJZGYTCOQZUUBGFDCUJUKZYRUUBBDOEYGDNYHUUADYGDC
      LSULZHUQUMUNEUOUKZYBYPDJZDYPJZPYQYBUUGUUHYNRNZYNIKZUPZNZIOUAZYNURQYNUSPZU
      TZYBUUGUBZYOUUOUUFIYNVAVBUUIUUPUUMUUNUUIUUGYBUUIYPCDUUIYPCRLMZCYNRCLSUUCU
      UQCNFCVITVCVDVEUUMUUGYBUULUUGIOUUJOQZUULPYPCUUJLMZUPZDUULUURYPCUUKLMZUUTY
      NUUKCLSUUCUURUVAUUTNFCUUJVFVGVHUULUUTDJZUURUULUUJYNQZUUSDQZUVBUULUVCUUJUU
      KQUUJIVJVKYNUUKUUJVLVMUURUVCUVDYNUUJUUFVNUURUVCDUUSJZVOZUVDUVCUUJYSUFZQUU
      RUVFYNUVGUUJEYSHVPZVQYRUVEBUUJYGUUJNYHUUSDYGUUJCLSULVRVSUURUVEUVDUURYTUUS
      OQZUVEUVDVOVTGUUCUURUVIFCUUJWAVGDUUSWBWCWDWEWLZDWFUVDUVBUBDGWGUUSDWHTWIWJ
      WMWKWNUUNUUGYBUUNYPIYNUUSWOZDUUCUUNYPUVKNFICYNURWPVGUVKDJUUSDJZIYNIYNUUSD
      WQUVCUVDUVLUVJDUUSGWRWSXDWTWNXATDCUVGLMZYPYRBOUAZDUVMJZYTUUBUVNGUUDYRUUBB
      DOUUEXBUKYRUVOBBDUVMBDXCBCUVGLBCXCBLXCBYSYRBOXEXFXGXHYGUVGNYHUVMDYGUVGCLS
      ULXITYNUVGCLUVHXJXKXOYPDXLXMYEYQAYNOYCYNNYDYPDYCYNCLSXNXBWCYLABOYJYDYHNZY
      COQZYGOQZPYKYDYHDXPUUCUVQUVRUVPYKVTFCYCYGXQXRXSXTXOYEYIABOYKYDYHDYCYGCLSX
      NYAXM $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Existence theorem for weak ordering of ordinal sum.  Proposition 8.8 of
       [TakeutiZaring] p. 59.  (Contributed by NM, 11-Dec-2004.) $)
    oawordeu $p |- ( ( ( A e. On /\ B e. On ) /\ A C_ B ) ->
                  E! x e. On ( A +o x ) = B ) $=
      ( vy con0 wcel wa wss cv coa co wceq wreu wi c0 cif reubidv imbi12d 0elon
      elimel sseq1 oveq1 eqeq1d sseq2 eqeq2 crab eqid oawordeulem dedth2h imp )
      BEFZCEFZGBCHZBAIZJKZCLZAEMZUKULUMUQNUKBOPZCHZURUNJKZCLZAEMZNURULCOPZHZUTV
      CLZAEMZNBCOOBURLZUMUSUQVBBURCUAVGUPVAAEVGUOUTCBURUNJUBUCQRCVCLZUSVDVBVFCV
      CURUDVHVAVEAECVCUTUEQRADURVCVCURDIJKHDEUFZBOESTCOESTVIUGUHUIUJ $.

    $( Existence theorem for weak ordering of ordinal sum.  (Contributed by NM,
       12-Dec-2004.) $)
    oawordexr $p |- ( ( A e. On /\ E. x e. On ( A +o x ) = B ) -> A C_ B ) $=
      ( con0 wcel cv coa co wceq wrex wss oaword1 sseq2 syl5ibcom rexlimdva imp
      wa ) BDEZBAFZGHZCIZADJBCKZRUAUBADRSDEQBTKUAUBBSLTCBMNOP $.

    $( Existence theorem for weak ordering of ordinal sum.  Proposition 8.8 of
       [TakeutiZaring] p. 59 and its converse.  See ~ oawordeu for uniqueness.
       (Contributed by NM, 12-Dec-2004.) $)
    oawordex $p |- ( ( A e. On /\ B e. On ) ->
                  ( A C_ B <-> E. x e. On ( A +o x ) = B ) ) $=
      ( con0 wcel wa wss cv co wceq wrex wreu oawordeu ex reurex syl6 oawordexr
      coa wi adantr impbid ) BDEZCDEZFZBCGZBAHRICJZADKZUDUEUFADLZUGUDUEUHABCMNU
      FADOPUBUGUESUCUBUGUEABCQNTUA $.

    $( Existence theorem for ordering of ordinal sum.  Similar to Proposition
       4.34(f) of [Mendelson] p. 266 and its converse.  (Contributed by NM,
       12-Dec-2004.) $)
    oaordex $p |- ( ( A e. On /\ B e. On ) ->
                  ( A e. B <-> E. x e. On ( (/) e. x /\ ( A +o x ) = B ) ) ) $=
      ( con0 wcel wa c0 cv coa co wceq wss onelss adantl oawordex sylibd oaord1
      wrex wi adantr eleq2 sylan9bb exp4c com12 imp4b simpr jcad expd reximdvai
      biimprcd a1i ex mpdd biimpd exp31 com34 imp4a rexlimdv impbid ) BDEZCDEZF
      ZBCEZGAHZEZBVDIJZCKZFZADRZVBVCVGADRZVIVBVCBCLZVJVAVCVKSUTCBMNABCOPUTVCVJV
      ISZSVAUTVCVLUTVCFZVGVHADVMVDDEZVGVHVMVNVGFZVEVGUTVCVNVGVEVCUTVNVGVESSVCUT
      VNVGVEUTVNFZVGFZVEVCVPVEBVFEVGVCBVDQVFCBUAUBZUJUCUDUEVOVGSVMVNVGUFUKUGUHU
      IULTUMUTVIVCSVAUTVHVCADUTVNVEVGVCUTVNVGVEVCUTVNVGVEVCSVQVEVCVRUNUOUPUQURT
      US $.
  $}

  $( An ordinal sum is zero iff both of its arguments are zero.  (Contributed
     by NM, 6-Dec-2004.) $)
  oa00 $p |- ( ( A e. On /\ B e. On ) ->
             ( ( A +o B ) = (/) <-> ( A = (/) /\ B = (/) ) ) ) $=
    ( con0 wcel wa coa co c0 wceq wne on0eln0 adantr oaword1 sseld sylbird ne0i
    wb syl6 necon4d 0elon adantl oaord mp3an1 ancoms bitr3d syl6bi oveq12 ax-mp
    jcad oa0 syl6eq impbid1 ) ACDZBCDZEZABFGZHIZAHIZBHIZEZUOUQURUSUOAHUPHUOAHJZ
    HUPDZUPHJZUOVAHADZVBUMVDVAQUNAKLUOAUPHABMNOUPHPRSUOBHUPHUOBHJZAHFGZUPDZVCUO
    HBDZVEVGUNVHVEQUMBKUAUNUMVHVGQZHCDZUNUMVITHBAUBUCUDUEUPVFPUFSUIUTUPHHFGZHAH
    BHFUGVJVKHITHUJUHUKUL $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( The ordinal sum with a limit ordinal is a limit ordinal.  Proposition
       8.11 of [TakeutiZaring] p. 60.  (Contributed by NM, 8-Dec-2004.) $)
    oalimcl $p |- ( ( A e. On /\ ( B e. C /\ Lim B ) ) -> Lim ( A +o B ) ) $=
      ( vy vx con0 wcel wlim wa coa co c0 wceq csuc wn sylan2 wi mpd adantl wb
      word cv wrex limelon oacl eloni syl 0ellim n0i ad2antll oa00 simpr syl6bi
      wo con3d ciun vex sucid oalim eqeq1 syl5ib imp syl5eleq eliun sylib sylan
      onelon onnbtwn imnan sylibr com12 ad2antrl ordsucelsuc 3syl eleq2d bitr4d
      oasuc eleq1 bicomd sylan9bbr adantr sucelon jca oaord 3expa ancoms biimpd
      exp32 com4l imp32 mtod exp44 rexlimdv expcom nrexdv ioran sylanbrc dflim3
      pm2.01d ) AFGZBCGZBHZIZIZABJKZUAZXELMZXEDUBZNZMZDFUCZUNOZXEHXCWTBFGZXFBCU
      DZWTXMIZXEFGXFABUEXEUFUGPXDXGOZXKOXLXDBLMZOZXPXBXRWTXAXBLBGXRBUHBLUIUGUJX
      CWTXMXRXPQXNXOXGXQXOXGALMZXQIXQABUKXSXQULUMUOPRXDXJDFXDXJOZXHFGXDXJXJXDXT
      XJXDIZXHAEUBZJKZGZEBUCZXTYAXHEBYCUPZGYEYAXHXIYFXHDUQURXJXDXIYFMZXDXEYFMXJ
      YGEABCUSXEXIYFUTVAVBVCEXHBYCVDVEXDYEXTQXJXDYDXTEBWTXCYBBGZYDXTQQWTXCYHYDX
      TWTXCYHIZYDIIXJBYBNZGZYIYKOZWTYDYIYBFGZYLXCXMYHYMXNBYBVGVFZYHYMYLQXCYMYHY
      LYMYHYKIOYHYLQYBBVHYHYKVIVJVKSRVLWTYIYDXJYKQXJWTYIYDYKXJWTYIYDYKQXJWTYIIZ
      IZYDYKYPYDXEAYJJKZGZYKYOYDXIYQGZXJYRYIWTYMYDYSTYNWTYMIZYDXIYCNZGZYSYTYCFG
      YCUAYDUUBTAYBUEYCUFXHYCVMVNYTYQUUAXIAYBVQVOVPPXJYRYSXEXIYQVRVSVTYOYKYRTZX
      JYIWTUUCYIXMYJFGZIWTUUCYIXMUUDXCXMYHXNWAYIYMUUDYNYBWBVEWCXMUUDWTUUCBYJAWD
      WEVFWFSVPWGWHWIWJWKWLVBWMSRWNWSWAWOXGXKWPWQDXEWRWQ $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x C $.
    $( Ordinal addition is associative.  Theorem 25 of [Suppes] p. 211.
       (Contributed by NM, 10-Dec-2004.) $)
    oaass $p |- ( ( A e. On /\ B e. On /\ C e. On ) ->
                 ( ( A +o B ) +o C ) = ( A +o ( B +o C ) ) ) $=
      ( vy vz con0 wcel coa co wceq wa oveq2 oveq2d eqeq12d adantl cvv wss wrex
      c0 wi vx vw cv csuc oa0 syl eqtr4d suceq oasuc sylan sylan2 eqtrd anassrs
      oacl syl5ibr expcom wlim wral ciun vex oalim mpanr1 ancoms adantr oalimcl
      ovex limelon onelon ex adantld 0ellim onelss sseq2d sylibrd rspcev syl2an
      mpan expr adantrl adantrr wb oawordex ad2ant2l oaord 3expb eleq1 sylan9bb
      imp biimpar eqimss2 ad3antlr jca anasss reximdv2 sylbid wo word ordtri2or
      an32s eloni syl2anr exp45 imp32 simplrr exp32 com12 imp31 adantll adantlr
      mpjaod simpll ad2antlr oaword syl3anc rexbidva mpbid mpdd ralrimiv iunss2
      mpd exp4a oaordi anim1d eleq2d syl6 expd rexlimdv eliun ssrdv eqssd an12s
      3imtr4g iuneq2 exp31 tfinds3 3impia ) AFGZBFGZCFGZABHIZCHIZABCHIZHIZJZYSY
      QYRKZUUDYTUAUCZHIZABUUFHIZHIZJZYTSHIZABSHIZHIZJYTDUCZHIZABUUNHIZHIZJZYTUU
      NUDZHIZABUUSHIZHIZJZUUDUUEUADCUUFSJZUUGUUKUUIUUMUUFSYTHLUVDUUHUULAHUUFSBH
      LMNUUFUUNJZUUGUUOUUIUUQUUFUUNYTHLUVEUUHUUPAHUUFUUNBHLMNUUFUUSJZUUGUUTUUIU
      VBUUFUUSYTHLUVFUUHUVAAHUUFUUSBHLMNUUFCJZUUGUUAUUIUUCUUFCYTHLUVGUUHUUBAHUU
      FCBHLMNUUEUUKYTUUMUUEYTFGZUUKYTJABUNZYTUEUFYRUUMYTJYQYRUULBAHBUEZMOUGUUEU
      UNFGZUURUVCTUURUVCUUEUVKKZUUOUDZUUQUDZJUUOUUQUHUVLUUTUVMUVBUVNUUEUVHUVKUU
      TUVMJUVIYTUUNUIUJYQYRUVKUVBUVNJYQYRUVKKZKUVBAUUPUDZHIZUVNUVOUVBUVQJYQUVOU
      VAUVPAHBUUNUIMOUVOYQUUPFGZUVQUVNJBUUNUNZAUUPUIUKULUMNUOUPUUFUQZUUEUURDUUF
      URZUUJUVTUUEKZUWAKZUUGDUUFUUOUSZUUIUWBUUGUWDJZUWAUUEUVTUWEUUEUVHUVTUWEUVI
      UVHUUFPGZUVTUWEUAUTZDYTUUFPVAVBUJVCVDUWCUUIDUUFUUQUSZUWDUWBUUIUWHJZUWAYQU
      VTYRUWIYQUVTYRKZKZUUIEUUHAEUCZHIZUSZUWHUWJYQUUHUQZUUIUWNJZYRUVTUWOYRUWFUV
      TUWOUWGBUUFPVEVBVCYQUUHPGUWOUWPBUUFHVFEAUUHPVAVBUKUWKUWNUWHUWJYQUWNUWHQZU
      WJYQKZUWMUUQQZDUUFRZEUUHURUWQUWRUWTEUUHUVTYRYQUWLUUHGZUWTTUVTYRYQUXAUWTUV
      TUUFFGZYRYQUXAKZUWTTZTUWFUVTUXBUWGUUFPVGVQZUVTUXBYRUXDUVTUXBYRKZKZUXCUWLF
      GZUWTUXFUXCUXHTUVTUXFUXAUXHYQUXFUUHFGZUXAUXHTYRUXBUXIBUUFUNVCUXIUXAUXHUUH
      UWLVHVIUFVJOUXGUXCUXHUWTUXGUXCUXHKZKZUWLUUPQZDUUFRZUWTUXGUXCUXHUXMUXGUXAU
      XHUXMTZYQUVTUXFUXAUXNTUVTUXFUXAUXHUXMUVTUXFUXAUXHKZKZKUWLBGZUXMBUWLQZUVTU
      XFUXQUXMTZUXOUVTYRUXSUXBUVTYRUXQUXMUVTSUUFGUWLUULQZUXMYRUXQKUUFVKYRUXQUXT
      YRUXQUWLBQUXTBUWLVLYRUULBUWLUVJVMVNWHUXLUXTDSUUFUUNSJUUPUULUWLUUNSBHLVMVO
      VPVRVSVTUXPUXRUXMTUVTUXPUXRUUPUWLJZDFRZUXMYRUXHUXRUYBWAUXBUXADBUWLWBWCUXF
      UXAUYBUXMTUXHUXFUXAKZUYAUXLDFUUFUVKUYAKZUYCUUNUUFGZUXLKZUYDUXFUXAUYFUYDUX
      FKZUXAKUYEUXLUYGUYEUXAUVKUXFUYAUYEUXAWAUVKUXFKUYEUUPUUHGZUYAUXAUVKUXBYRUY
      EUYHWAUUNUUFBWDWEUUPUWLUUHWFWGWSWIUYAUXLUVKUXFUXAUWLUUPWJWKWLWMUPWNVTWOOU
      XPUXQUXRWPZUVTYRUXHUYIUXBUXAUXHUWLWQBWQUYIYRUWLWTBWTUWLBWRXAWCOXJXBWHVJXC
      UXKUXLUWSDUUFUXKUYEKUXHUVRYQUXLUWSWAUXGUXCUXHUYEXDUXGUYEUVRUXJUXFUYEUVRUV
      TUXBYRUYEUVRYRUXBUYEUVRTYRUXBUYEUVRUXBUYEKYRUVKUVRUUFUUNVHUVSUKXEXFXGXHXI
      UXJYQUXGUYEYQUXAUXHXKXLUWLUUPAXMXNXOXPXEXQXEXTYAXGXREDUUHUUFUWMUUQXSUFVCU
      WJUWHUWNQZYQUVTUXBYRUYJUXEUXFUBUWHUWNUXFUBUCZUUQGZDUUFRUYKUWMGZEUUHRZUYKU
      WHGUYKUWNGUXFUYLUYNDUUFUXFUYEUYLUYNUXFUYEUYLKUYHUYLKUYNUXFUYEUYHUYLUUNUUF
      BYBYCUYMUYLEUUPUUHUWLUUPJUWMUUQUYKUWLUUPAHLYDVOYEYFYGDUYKUUFUUQYHEUYKUUHU
      WMYHYLYIUJOYJULYKVDUWAUWDUWHJUWBDUUFUUOUUQYMOUGUGYNYOXFYP $.
  $}

  ${
    $d x y z w A $.  $d x y z B $.
    $( Recursive definition of ordinal addition.  Exercise 25 of [Enderton]
       p. 240.  (Contributed by NM, 26-Dec-2004.)  (Revised by Mario Carneiro,
       30-May-2015.) $)
    oarec $p |- ( ( A e. On /\ B e. On ) ->
                ( A +o B ) = ( A u. ran ( x e. B |-> ( A +o x ) ) ) ) $=
      ( vw vy wcel coa co cv cmpt crn wceq c0 oveq2 mpteq1 syl6eq rneqd wa wrex
      cun vz con0 csuc rn0 uneq2d eqeq12d oa0 un0 syl6eqr wi csn uneq1 unass wo
      mpt0 rexun df-suc rexeqi cvv wb vex eqid elrnmpt ax-mp velsn eqeq2d rexsn
      bitr4i orbi12i 3bitr4i ovex elun eqriv uneq2i eqtr4i oasuc eqeq1d syl5ibr
      elrnmpti expcom wlim wral oalim mpanr1 ancoms adantr iuneq2 adantl 0ellim
      ciun iunun wne ne0i iunconst 3syl cuni limuni rexeqdv df-rex bitri rexbii
      eluni2 anbi1i r19.41v exbii rexcom4 syl6rbbr eliun 3bitr4g uneq12d syl5eq
      wex eqrdv ad2antrr 3eqtrd exp31 tfinds3 impcom ) CUBFBUBFZBCGHZBACBAIZGHZ
      JZKZTZLZBUAIZGHZBAYGYBJZKZTZLZBMGHZBMTZLBDIZGHZBAYOYBJZKZTZLZBYOUCZGHZBAU
      UAYBJZKZTZLZYFXSUADCYGMLZYHYMYKYNYGMBGNUUGYJMBUUGYJMKMUUGYIMUUGYIAMYBJMAY
      GMYBOAYBUOPQUDPUEUFYGYOLZYHYPYKYSYGYOBGNUUHYJYRBUUHYIYQAYGYOYBOQUEUFYGUUA
      LZYHUUBYKUUEYGUUABGNUUIYJUUDBUUIYIUUCAYGUUAYBOQUEUFYGCLZYHXTYKYEYGCBGNUUJ
      YJYDBUUJYIYCAYGCYBOQUEUFXSYMBYNBUGBUHUIXSYOUBFZYTUUFUJYTUUFXSUUKRZYPYPUKZ
      TZUUELYTUUNYSUUMTZUUEYPYSUUMULUUOBYRUUMTZTUUEBYRUUMUMUUDUUPBEUUDUUPEIZYBL
      ZAUUASZUUQYRFZUUQUUMFZUNZUUQUUDFUUQUUPFUURAYOYOUKZTZSUURAYOSZUURAUVCSZUNU
      USUVBUURAYOUVCUPUURAUUAUVDYOUQURUUTUVEUVAUVFUUQUSFUUTUVEUTEVAAYOYBUUQYQUS
      YQVBVCVDZUVAUUQYPLZUVFEYPVEUURUVHAYODVAYAYOLYBYPUUQYAYOBGNVFVGVHVIVJAUUAY
      BUUQUUCUUCVBBYAGVKZVSUUQYRUUMVLVJVMVNVOPUULUUBUUNUUEUULUUBYPUCUUNBYOVPYPU
      QPVQVRVTYGWAZXSYTDYGWBZYLUVJXSRZUVKRYHDYGYPWJZDYGYSWJZYKUVLYHUVMLZUVKXSUV
      JUVOXSYGUSFUVJUVOUAVADBYGUSWCWDWEWFUVKUVMUVNLUVLDYGYPYSWGWHUVJUVNYKLXSUVK
      UVJUVNDYGBWJZDYGYRWJZTYKDYGBYRWKUVJUVPBUVQYJUVJMYGFYGMWLUVPBLYGWIYGMWMDYG
      BWNWOUVJEUVQYJUVJUUTDYGSZUURAYGSZUUQUVQFUUQYJFUVJUVSUURAYGWPZSZUVRUVJUURA
      YGUVTYGWQWRUVRYAYOFZUURRZAXLZDYGSZUWAUUTUWDDYGUUTUVEUWDUVGUURAYOWSWTXAYAU
      VTFZUURRZAXLUWCDYGSZAXLUWAUWEUWGUWHAUWGUWBDYGSZUURRUWHUWFUWIUURDYAYGXBXCU
      WBUURDYGXDVHXEUURAUVTWSUWCDAYGXFVJVHXGDUUQYGYRXHAYGYBUUQYIYIVBUVIVSXIXMXJ
      XKXNXOXPXQXR $.
  $}

  ${
    $d x y A $.
    $( Left addition by a constant is a bijection from ordinals to ordinals
       greater than the constant.  (Contributed by Mario Carneiro,
       30-May-2015.) $)
    oaf1o $p |- ( A e. On ->
        ( x e. On |-> ( A +o x ) ) : On -1-1-onto-> ( On \ A ) ) $=
      ( vy con0 wcel cv coa co cdif wral wceq wa wss wn ontri1 syldan ralrimiva
      wreu wb adantl cmpt wf1o oacl oaword1 mpbid eldifd eldifi eldifn oawordeu
      simpl mpbird syl21anc eqcom reubii sylib eqid f1ompt sylanbrc ) BDEZBAFZG
      HZDBIZEZADJCFZVAKZADRZCVBJDVBADVAUAZUBUSVCADUSUTDEZLZVADBBUTUCZVIBVAMZVAB
      ENZBUTUDUSVHVADEVKVLSVJBVAOPUEUFQUSVFCVBUSVDVBEZLZVAVDKZADRZVFVNUSVDDEZBV
      DMZVPUSVMUJVMVQUSVDDBUGTZVNVRVDBENZVMVTUSVDDBUHTUSVMVQVRVTSVSBVDOPUKABVDU
      IULVOVEADVAVDUMUNUOQACDVBVAVGVGUPUQUR $.
  $}

  ${
    $d x A $.  $d x B $.
    oacomf1olem.1 $e |- F = ( x e. A |-> ( B +o x ) ) $.
    $( Lemma for ~ oacomf1o .  (Contributed by Mario Carneiro, 30-May-2015.) $)
    oacomf1olem $p |- ( ( A e. On /\ B e. On ) ->
      ( F : A -1-1-onto-> ran F /\ ( ran F i^i B ) = (/) ) ) $=
      ( con0 wcel wa crn wf1o cin c0 wceq cdif wf1 cv cmpt wss syl wb coa oaf1o
      cres adantl f1of1 onss adantr f1ssres syl2anc resmptd syl6eqr f1eq1 mpbid
      co f1f1orn wf f1f frn 3syl difss2d reldisj mpbird jca ) BFGZCFGZHZBDIZDJZ
      VGCKLMZVFBFCNZDOZVHVFBVJAFCAPUAUNZQZBUCZOZVKVFFVJVMOZBFRZVOVFFVJVMJZVPVEV
      RVDACUBUDFVJVMUESVDVQVEBUFUGZFVJBVMUHUIVFVNDMVOVKTVFVNABVLQDVFAFBVLVSUJEU
      KBVJVNDULSUMZBVJDUOSVFVIVGVJRZVFVKBVJDUPWAVTBVJDUQBVJDURUSZVFVGFRVIWATVFV
      GFCWBUTVGCFVASVBVC $.
  $}

  ${
    $d x A $.  $d x B $.
    oacomf1o.1 $e |- F = ( ( x e. A |-> ( B +o x ) ) u.
      `' ( x e. B |-> ( A +o x ) ) ) $.
    $( Define a bijection from ` A +o B ` to ` B +o A ` .  Thus, the two are
       equinumerous even if they are not equal (which sometimes occurs, e.g.
       ~ oancom ).  (Contributed by Mario Carneiro, 30-May-2015.) $)
    oacomf1o $p |- ( ( A e. On /\ B e. On ) ->
      F : ( A +o B ) -1-1-onto-> ( B +o A ) ) $=
      ( con0 wcel wa coa co wf1o cmpt crn cun cin c0 wceq eqid syl wb cv simpld
      oacomf1olem ancoms f1ocnv incom simprd syl5eq f1oun syl22anc f1oeq1 ax-mp
      ccnv sylibr oarec f1oeq2 mpbird uncom syl6eq f1oeq3 ) BFGZCFGZHZBCIJZCBIJ
      ZDKZVDABCAUAZIJLZMZCNZDKZVCVKBACBVGIJLZMZNZVJDKZVCVNVJVHVLUMZNZKZVOVCBVIV
      HKZVMCVPKZBVMOZPQVICOPQZVRVCVSWBABCVHVHRUCZUBVCCVMVLKZVTVCWDVMBOZPQZVBVAW
      DWFHACBVLVLRUCUDZUBCVMVLUESVCWAWEPBVMUFVCWDWFWGUGUHVCVSWBWCUGBVIVMCVHVPUI
      UJDVQQVOVRTEVNVJDVQUKULUNVCVDVNQVKVOTABCUOVDVNVJDUPSUQVCVEVJQVFVKTVCVECVI
      NZVJVBVAVEWHQACBUOUDCVIURUSVEVJVDDUTSUQ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Ordering property of ordinal multiplication.  Half of Proposition 8.19
       of [TakeutiZaring] p. 63.  (Contributed by NM, 14-Dec-2004.) $)
    omordi $p |- ( ( ( B e. On /\ C e. On ) /\ (/) e. C ) ->
                 ( A e. B -> ( C .o A ) e. ( C .o B ) ) ) $=
      ( vx vy con0 wcel c0 comu co wi wa wceq eleq2 oveq2 eleq2d imbi12d biimpa
      sylan adantr onelon ex cv csuc noel pm2.21i a1i coa elsuci omcl simpl jca
      wo oaword1 sseld imim2d imp adantrl oaord1 eleq1d syl5ibrcom adantrr jaod
      syl5 wb omsuc sylibrd exp43 com12 adantld impd wlim wral id ad2ant2r ciun
      wss limsuc ssiun2s syl adantll cvv omlim mpanr1 sseqtr4d anabss1 eleqtrrd
      sseldd exp53 com13 imp4c a1dd tfinds3 com23 exp4a mpdd com34 com24 imp31
      vex ) BFGZCFGZHCGZABGZCAIJZCBIJZGZKZXAXDXCXBXGXAXDXBXCXGXAXDAFGZXBXCXGKZK
      XAXDXIBAUAUBXAXDXIXBXJXAXDXIXBLZXCXGXAXKXCLZXDXGADUCZGZXECXMIJZGZKZAHGZXE
      CHIJZGZKZAEUCZGZXECYBIJZGZKZAYBUDZGZXECYGIJZGZKZXHXLDEBXMHMZXNXRXPXTXMHAN
      YLXOXSXEXMHCIOPQXMYBMZXNYCXPYEXMYBANYMXOYDXEXMYBCIOPQXMYGMZXNYHXPYJXMYGAN
      YNXOYIXEXMYGCIOPQXMBMZXNXDXPXGXMBANYOXOXFXEXMBCIOPQYAXLXRXTAUEUFUGYBFGZXK
      XCYFYKKZYPXBXCYQKZXIXBYPYRXBYPXCYFYKXBYPLZXCYFLZLZYHXEYDCUHJZGZYJYHYCAYBM
      ZUMZUUAUUCAYBUIYSYDFGZXBLZYTUUEUUCKYSUUFXBCYBUJXBYPUKULUUGYTLYCUUCUUDUUGY
      FYCUUCKZXCUUGYFUUHUUGYEUUCYCUUGYDUUBXEYDCUNUOUPUQURUUGXCUUDUUCKYFUUGXCLUU
      CUUDYDUUBGZUUGXCUUIYDCUSRUUDXEYDUUBAYBCIOUTVAVBVCSVDYSYJUUCVEYTYSYIUUBXEC
      YBVFPTVGVHVIVJVKXMVLZXLXQYFEXMVMUUJXIXBXCXQXBXIUUJXCXQKXBXIUUJXCXNXPXBXIL
      ZUUJXCLLZXNLCAUDZIJZXOXEUULXBUUJLZXNUUNXOVQXBUUJUUOXIXCUUOVNVOUUOXNLUUNEX
      MYDVPZXOUUJXNUUNUUPVQZXBUUJXNLUUMXMGZUUQUUJXNUURXMAVRREXMYDUUMUUNYBUUMCIO
      VSVTWAUUOXOUUPMZXNXBXMWBGUUJUUSDWTECXMWBWCWDTWESUULXEUUNGZXNUUKXCUUTUUJUU
      KXCLXEXECUHJZUUNUUKXCXEUVAGZXBXIXCUVBVEZUUKXEFGXBUVCCAUJXECUSSWFRUUKUUNUV
      AMXCCAVFTWGURTWHWIWJWKWLWMWNWOWOWPWQWRWS $.
  $}

  $( Ordering property of ordinal multiplication.  (Contributed by NM,
     25-Dec-2004.) $)
  omord2 $p |- ( ( ( A e. On /\ B e. On /\ C e. On ) /\ (/) e. C ) ->
               ( A e. B <-> ( C .o A ) e. ( C .o B ) ) ) $=
    ( con0 wcel wa comu co wi omordi wceq wo wn omcl word ordtri2 syl2an adantr
    wb eloni w3a 3adantl1 oveq2 a1i 3adantl2 orim12d con3d anandis ancoms 3impa
    c0 3adant3 3imtr4d impbid ) ADEZBDEZCDEZUAZUKCEZFZABEZCAGHZCBGHZEZUPUQUSVAV
    DIUOABCJUBUTVBVCKZVCVBEZLZMZABKZBAEZLZMZVDVAUTVKVGUTVIVEVJVFVIVEIUTABCGUCUD
    UOUQUSVJVFIUPBACJUEUFUGURVDVHSZUSUOUPUQVMUQUOUPFVMUQUOUPVMUQUOFVBDEZVCDEZVM
    UQUPFCANCBNVNVBOVCOVMVOVBTVCTVBVCPQQUHUIUJRURVAVLSZUSUOUPVPUQUOAOBOVPUPATBT
    ABPQULRUMUN $.

  $( Ordering property of ordinal multiplication.  Proposition 8.19 of
     [TakeutiZaring] p. 63.  (Contributed by NM, 14-Dec-2004.) $)
  omord $p |- ( ( A e. On /\ B e. On /\ C e. On ) ->
               ( ( A e. B /\ (/) e. C ) <-> ( C .o A ) e. ( C .o B ) ) ) $=
    ( con0 wcel w3a c0 wa comu co wb omord2 ex pm5.32rd simpl wi ne0i wceq om0r
    wne eqeq1d syl5ibrcom necon3d adantr on0eln0 adantl sylibrd 3adant1 impbid2
    oveq1 syl5 ancld bitrd ) ADEZBDEZCDEZFZABEZGCEZHCAIJZCBIJZEZUSHZVBUQUSURVBU
    QUSURVBKABCLMNUQVCVBVBUSOUQVBUSUOUPVBUSPUNUOUPHVBCGTZUSUOVBVDPUPVBVAGTUOVDV
    AUTQUOCGVAGUOVAGRCGRZGBIJZGRBSVEVAVFGCGBIUJUAUBUCUKUDUPUSVDKUOCUEUFUGUHULUI
    UM $.

  $( Left cancellation law for ordinal multiplication.  Proposition 8.20 of
     [TakeutiZaring] p. 63 and its converse.  (Contributed by NM,
     14-Dec-2004.) $)
  omcan $p |- ( ( ( A e. On /\ B e. On /\ C e. On ) /\ (/) e. A ) ->
                   ( ( A .o B ) = ( A .o C ) <-> B = C ) ) $=
    ( con0 wcel wa comu co wceq wo wn wi omordi ex ancoms imp word omcl eloni
    wb w3a c0 3adant2 3adant3 orim12d syl ordtri3 syl2an 3impdi 3adant1 3imtr4d
    con3d adantr oveq2 impbid1 ) ADEZBDEZCDEZUAZUBAEZFZABGHZACGHZIZBCIZVAVBVCEZ
    VCVBEZJZKZBCEZCBEZJZKZVDVEVAVLVHVAVJVFVKVGUSUTVJVFLZUPURUTVNLZUQURUPVOURUPF
    UTVNBCAMNOUCPUSUTVKVGLZUPUQUTVPLZURUQUPVQUQUPFUTVPCBAMNOUDPUEULUSVDVITZUTUP
    UQURVRUPUQFZVBQZVCQZVRUPURFZVSVBDEVTABRVBSUFWBVCDEWAACRVCSUFVBVCUGUHUIUMUSV
    EVMTZUTUQURWCUPUQBQCQWCURBSCSBCUGUHUJUMUKBCAGUNUO $.

  $( Weak ordering property of ordinal multiplication.  (Contributed by NM,
     21-Dec-2004.) $)
  omword $p |- ( ( ( A e. On /\ B e. On /\ C e. On ) /\ (/) e. C ) ->
                   ( A C_ B <-> ( C .o A ) C_ ( C .o B ) ) ) $=
    ( con0 wcel w3a c0 wa wceq wo co wss omord2 wb 3anrot omcan onsseleq adantr
    comu omcl sylanbr bicomd orbi12d 3adant3 anim12dan ancoms 3impa syl 3bitr4d
    ) ADEZBDEZCDEZFZGCEZHZABEZABIZJZCASKZCBSKZEZUSUTIZJZABLZUSUTLZUOUPVAUQVBABC
    MUOVBUQUMULUJUKFUNVBUQNULUJUKOCABPUAUBUCUMVDURNZUNUJUKVFULABQUDRUMVEVCNZUNU
    MUSDEZUTDEZHZVGUJUKULVJULUJUKHVJULUJVHUKVICATCBTUEUFUGUSUTQUHRUI $.

  $( Weak ordering property of ordinal multiplication.  (Contributed by NM,
     21-Dec-2004.) $)
  omwordi $p |- ( ( A e. On /\ B e. On /\ C e. On ) ->
                   ( A C_ B -> ( C .o A ) C_ ( C .o B ) ) ) $=
    ( con0 wcel w3a c0 wss comu co wi wa omword biimpd ex wn wceq sseq12d oveq1
    om0r wb word ord0eln0 necon2bbid syl 3ad2ant3 ssid adantr adantl syl5ibrcom
    eloni mpbiri 3adant3 sylbird a1dd pm2.61d ) ADEZBDEZCDEZFZGCEZABHZCAIJZCBIJ
    ZHZKZUTVAVFUTVALVBVEABCMNOUTVAPZVEVBUTVGCGQZVEUSUQVHVGUAZURUSCUBZVICUKVJVAC
    GCUCUDUEUFUQURVHVEKUSUQURLZVEVHGAIJZGBIJZHZVKVNGGHGUGVKVLGVMGUQVLGQURATUHUR
    VMGQUQBTUIRULVHVCVLVDVMCGAISCGBISRUJUMUNUOUP $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Weak ordering property of ordinal multiplication.  Proposition 8.21 of
       [TakeutiZaring] p. 63.  (Contributed by NM, 20-Dec-2004.) $)
    omwordri $p |- ( ( A e. On /\ B e. On /\ C e. On ) ->
        ( A C_ B -> ( A .o C ) C_ ( B .o C ) ) ) $=
      ( vx vy con0 wcel wss comu co wi wa cv c0 wceq oveq2 sseq12d coa omcl cvv
      csuc om0 0ss syl6eqss ad2antrr w3a 3adant2 3adant1 simp1 oawordri syl3anc
      imp adantrl wb oaword syld3an3 biimpa adantrr sstrd adantr 3sstr4d exp520
      omsuc com3r imp4c wlim wral vex ciun ss2iun omlim adantl syl5ibr anandirs
      ad2ant2rl mpanr1 expcom adantrd tfinds3 expd 3impib 3coml ) CFGZAFGZBFGZA
      BHZACIJZBCIJZHZKZWCWDWEWJWCWDWELZWFWIADMZIJZBWLIJZHZANIJZBNIJZHZAEMZIJZBW
      SIJZHZAWSUAZIJZBXCIJZHZWIWKWFLDECWLNOWMWPWNWQWLNAIPWLNBIPQWLWSOWMWTWNXAWL
      WSAIPWLWSBIPQWLXCOWMXDWNXEWLXCAIPWLXCBIPQWLCOWMWGWNWHWLCAIPWLCBIPQWDWRWEW
      FWDWPNWQAUBWQUCUDUEWSFGZWDWEWFXBXFKZWDWEXGWFXHKWDWEXGWFXBXFWDWEXGUFZWFXBL
      ZLZWTARJZXABRJZXDXEXKXLXAARJZXMXIXBXLXNHZWFXIXBXOXIWTFGZXAFGZWDXBXOKWDXGX
      PWEAWSSUGWEXGXQWDBWSSUHZWDWEXGUIWTXAAUJUKULUMXIWFXNXMHZXBXIWFXSWDWEXGXQWF
      XSUNXRABXAUOUPUQURUSXIXDXLOZXJWDXGXTWEAWSVCUGUTXIXEXMOZXJWEXGYAWDBWSVCUHU
      TVAVBVDVEWLVFZWKXBEWLVGZWOKZWFWKYBYDWKWLTGZYBYDDVHWDWEYEYBLZYDYCWOWDYFLZW
      EYFLZLZEWLWTVIZEWLXAVIZHEWLWTXAVJYIWMYJWNYKWDYFWMYJOYFWEEAWLTVKVOYHWNYKOY
      GEBWLTVKVLQVMVNVPVQVRVSVTWAWB $.
  $}

  $( An ordinal is less than or equal to its product with another.
     (Contributed by NM, 21-Dec-2004.) $)
  omword1 $p |- ( ( ( A e. On /\ B e. On ) /\ (/) e. B ) ->
                 A C_ ( A .o B ) ) $=
    ( con0 wcel wa c0 comu co wss c1o wb word eloni ordgt0ge1 syl adantl wi 1on
    omwordi mp3an1 ancoms wceq om1 adantr sseq1d sylibd sylbid imp ) ACDZBCDZEZ
    FBDZAABGHZIZUKULJBIZUNUJULUOKZUIUJBLUPBMBNOPUKUOAJGHZUMIZUNUJUIUOURQZJCDUJU
    IUSRJBASTUAUKUQAUMUIUQAUBUJAUCUDUEUFUGUH $.

  $( An ordinal is less than or equal to its product with another.
     (Contributed by NM, 21-Dec-2004.) $)
  omword2 $p |- ( ( ( A e. On /\ B e. On ) /\ (/) e. B ) ->
                 A C_ ( B .o A ) ) $=
    ( con0 wcel wa c0 c1o comu co wceq om1r ad2antrr wss eloni ordgt0ge1 biimpa
    word sylan adantll wi 1on omwordri mp3an1 ancoms adantr mpd eqsstr3d ) ACDZ
    BCDZEZFBDZEZAGAHIZBAHIZUHUMAJUIUKAKLULGBMZUMUNMZUIUKUOUHUIBQZUKUOBNUQUKUOBO
    PRSUJUOUPTZUKUIUHURGCDUIUHURUAGBAUBUCUDUEUFUG $.

  $( The product of two ordinal numbers is zero iff at least one of them is
     zero.  Proposition 8.22 of [TakeutiZaring] p. 64.  (Contributed by NM,
     21-Dec-2004.) $)
  om00 $p |- ( ( A e. On /\ B e. On ) -> ( ( A .o B ) = (/) <->
              ( A = (/) \/ B = (/) ) ) ) $=
    ( con0 wcel wa comu co c0 wceq c1o wss wne wi word wb eloni ordge1n0 adantr
    adantl ex wo wn neanior syl biimprd on0eln0 omword1 sylbird anim12d syl5bir
    sstr syl6 omcl 3syl sylibd necon4bd oveq1 om0r sylan9eqr oveq2 jaod impbid
    om0 ) ACDZBCDZEZABFGZHIZAHIZBHIZUAZVFVKVGHVFVKUBZJVGKZVGHLZVLAHLZBHLZEZVFVM
    AHBHUCVFVQJAKZAVGKZEVMVFVOVRVPVSVDVOVRMVEVDVRVOVDANVRVOOAPAQUDUERVFVPHBDZVS
    VEVTVPOVDBUFSVFVTVSABUGTUHUIJAVGUKULUJVFVGCDVGNVMVNOABUMVGPVGQUNUOUPVFVIVHV
    JVEVIVHMVDVEVIVHVIVEVGHBFGHAHBFUQBURUSTSVDVJVHMVEVDVJVHVJVDVGAHFGHBHAFUTAVC
    USTRVAVB $.

  $( The product of two nonzero ordinal numbers is nonzero.  (Contributed by
     NM, 28-Dec-2004.) $)
  om00el $p |- ( ( A e. On /\ B e. On ) -> ( (/) e. ( A .o B ) <->
              ( (/) e. A /\ (/) e. B ) ) ) $=
    ( con0 wcel wa comu co c0 wne wceq wo om00 necon3abid omcl on0eln0 bi2anan9
    wn wb syl neanior syl6bb 3bitr4d ) ACDZBCDZEZABFGZHIZAHJBHJKZQZHUFDZHADZHBD
    ZEZUEUHUFHABLMUEUFCDUJUGRABNUFOSUEUMAHIZBHIZEUIUCUKUNUDULUOAOBOPAHBHTUAUB
    $.

  ${
    $d x y z w v A $.  $d x y z w v B $.  $d x y C $.
    $( Ordering involving the product of a limit ordinal.  Proposition 8.23 of
       [TakeutiZaring] p. 64.  (Contributed by NM, 25-Dec-2004.) $)
    omordlim $p |- ( ( ( A e. On /\ ( B e. D /\ Lim B ) ) /\ C e. ( A .o B ) )
                -> E. x e. B C e. ( A .o x ) ) $=
      ( con0 wcel wlim wa comu co cv wrex ciun omlim eleq2d eliun syl6bb biimpa
      ) BFGCEGCHIIZDBCJKZGZDBALJKZGACMZTUBDACUCNZGUDTUAUEDABCEOPADCUCQRS $.

    $( The product of any nonzero ordinal with a limit ordinal is a limit
       ordinal.  Proposition 8.24 of [TakeutiZaring] p. 64.  (Contributed by
       NM, 25-Dec-2004.) $)
    omlimcl $p |- ( ( ( A e. On /\ ( B e. C /\ Lim B ) ) /\ (/) e. A ) ->
                  Lim ( A .o B ) ) $=
      ( vy vx con0 wcel wa c0 comu co word wceq wn syl adantr wb sylan wi c1o
      wlim cv csuc wrex wo limelon omcl sylan2 0ellim n0i anim12ci adantll om00
      eloni notbid ioran syl6bb mpbird ciun vex sucid omlim eqeq1 biimpac eliun
      syl5eleq sylib adantlr onelon onnbtwn imnan sylibr com12 adantl mpd simpl
      jca anim2i anassrs coa ordsucelsuc oa1suc eleq2d bitr4d wss ordgt0ge1 1on
      oaword mp3an1 syldan bitrd biimpa omsuc sseqtr4d sseld eleq1 biimprd syl9
      com23 adantlrl sucelon w3a omord syl6bir syl3an2b 3comr 3expb syl6d an32s
      sylbid imp mtod exp31 rexlimdv pm2.01da nrexdv sylanbrc dflim3 ) AFGZBCGZ
      BUAZHZHZIAGZHZABJKZLZYFIMZYFDUBZUCZMZDFUDZUENZYFUAYCYGYDYBXSBFGZYGBCUFZXS
      YNHZYFFGYGABUGYFUNOUHPYEYHNZYLNYMYEYQAIMZNZBIMZNZHZYBYDUUBXSYAYDUUBXTYAUU
      AYDYSYAIBGUUABUIBIUJOAIUJUKULULYCYQUUBQZYDYBXSYNUUCYOYPYQYRYTUEZNUUBYPYHU
      UDABUMUOYRYTUPUQUHPURYEYKDFYEYKNZYIFGYEYKYEYKHYIAEUBZJKZGZEBUDZUUEYCYKUUI
      YDYCYKHZYIEBUUGUSZGUUIUUJYIYJUUKYIDUTVAYCYFUUKMZYKYJUUKMZEABCVBYKUULUUMYF
      YJUUKVCVDRVFEYIBUUGVEVGVHYEUUIUUESYKYEUUHUUEEBYEUUFBGZUUHUUEYEUUNHZUUHHYK
      BUUFUCZGZUUOUUQNZUUHYCUUNUURYDYBUUNUURXSYBUUNHZUUFFGZUURYBYNUUNUUTYOBUUFV
      IZRUUNUUTUURSYBUUTUUNUURUUTUUNUUQHNUUNUURSUUFBVJUUNUUQVKVLVMVNVOULVHPUUOU
      UHYKUUQSZYCUUNYDUUHUVBSZYCUUNHXSYNUUTHZHZYDUVCXSYBUUNUVEUUSUVDXSYBYNUUNUV
      DYOYNUUNHYNUUTYNUUNVPUVAVQRVRVSUVEYDHUUHYKYFAUUPJKZGZUUQXSUUTYDUUHYKUVGSS
      YNXSUUTHZYDHZYKUUHUVGUVIUUHYJUVFGZYKUVGUVIUUHYJUUGTVTKZGZUVJUVHUUHUVLQZYD
      UVHUUGFGZUVMAUUFUGZUVNUUHYJUUGUCZGZUVLUVNUUGLUUHUVQQUUGUNYIUUGWAOUVNUVKUV
      PYJUUGWBWCWDOPUVIUVKUVFYJUVIUVKUUGAVTKZUVFUVHYDUVKUVRWEZUVHYDTAWEZUVSXSYD
      UVTQZUUTXSALUWAAUNAWFOPXSUUTUVNUVTUVSQZUVOTFGXSUVNUWBWGTAUUGWHWIWJWKWLUVH
      UVFUVRMYDAUUFWMPWNWOXJYKUVGUVJYFYJUVFWPWQWRWSWTUVEUVGUUQSZYDXSYNUUTUWCYNU
      UTXSUWCUUTYNUUPFGZXSUWCUUFXAYNUWDXSXBUVGUUQYDHUUQBUUPAXCUUQYDVPXDXEXFXGPX
      HRXIXKXLXMXNPVOXOPXPYHYLUPXQDYFXRXQ $.

    $( Distributive law for ordinal arithmetic (left-distributivity).
       Proposition 8.25 of [TakeutiZaring] p. 64.  (Contributed by NM,
       26-Dec-2004.) $)
    odi $p |- ( ( A e. On /\ B e. On /\ C e. On ) ->
                 ( A .o ( B +o C ) ) = ( ( A .o B ) +o ( A .o C ) ) ) $=
      ( vz vw vv con0 wcel coa co comu wceq c0 wa oveq2 oveq2d syl wi cvv wss
      vx vy cv csuc eqeq12d omcl oa0 om0 adantr adantl 3eqtr4rd w3a oveq1 oasuc
      3adant1 oacl omsuc sylan2 3impb eqtrd 3adant2 oaass syl3an1 syl3an2 exp4b
      3exp pm2.43a com4r pm2.43i 3imp eqtr4d syl5ibr impd wlim wral vex limelon
      com3r mpan om0r oveqan12d 0elon syl6req ancoms oveq12d expd imp a1dd ciun
      ax-mp wrex wo wn simplr onelon sylan ontri1 oawordex bitr3d syl2anc oaord
      wb 3expb eleq1 sylan9bb an32s biimpcd exp4c reximdvai sylbid orrd sylanl1
      iba adantlrl adantlr 0ellim om00el biimprd sylan2i adantlrr omordi onelss
      imp31 a1d sseq2d sylibrd syld adantll jcad rspcev syl6 adantrr mpd iunss2
      ralrimiva mpanr1 oaordi an12s anim2i ovex ancom1s adantrd rspccv ad2antll
      syl5ib eqimss2 imim2i rexlimdvw jaod omordlim word limord ordelon rspccva
      eqeq1 ex eleq2d rexlimdva adantrl eqssd oalimcl omlim ad2antlr jctl jctil
      omlimcl oalim 3eqtr4d exp43 com3l oe0lem com12 tfinds3 expdcom ) AGHZBGHZ
[encoded data, 4320 characters]
      LUVMUVNVJ $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x C $.
    $( Multiplication of ordinal numbers is associative.  Theorem 8.26 of
       [TakeutiZaring] p. 65.  (Contributed by NM, 28-Dec-2004.) $)
    omass $p |- ( ( A e. On /\ B e. On /\ C e. On ) ->
                 ( ( A .o B ) .o C ) = ( A .o ( B .o C ) ) ) $=
      ( vy vz con0 wcel comu co wceq c0 wa oveq2 oveq2d eqeq12d sylan9eqr sylan
      wi cvv wss vx csuc omcl om0 syl eqtr4d w3a coa oveq1 omsuc stoic3 3adant1
      cv odi syl3an2 3exp expd com34 pm2.43d 3imp eqtrd syl5ibr com3r impd wlim
      wral ciun ancoms vex omlim mpanr1 an32s ad2antrr iuneq2 wrex limelon mpan
      anim1i omordi ssid sseq2d rspcev mpan2 syl6 ralrimiv iunss2 sylan2 onelon
      adantlr omordlim ex ad2antlr 3ad2ant2 omwordi syld syl5 exp4d imp32 com23
      onelss reximdvai exp31 imp4c mpcom ralrimiva adantr eqssd omlimcl mpanlr1
      imp ovex wn wb word eloni ord0eln0 necon2bbid oveq1d om0r anassrs adantll
      sylan9eq sylbird a1dd pm2.61d com3l tfinds3 ) AFGZBFGZCFGZABHIZCHIZABCHIZ
      HIZJZYJYHYIYOYJYHYIYOYKUAUMZHIZABYPHIZHIZJZYKKHIZABKHIZHIZJYKDUMZHIZABUUD
      HIZHIZJZYKUUDUBZHIZABUUIHIZHIZJZYOYHYILZUADCYPKJZYQUUAYSUUCYPKYKHMUUOYRUU
      BAHYPKBHMNOYPUUDJZYQUUEYSUUGYPUUDYKHMUUPYRUUFAHYPUUDBHMNOYPUUIJZYQUUJYSUU
      LYPUUIYKHMUUQYRUUKAHYPUUIBHMNOYPCJZYQYLYSYNYPCYKHMUURYRYMAHYPCBHMNOUUNUUA
      KUUCUUNYKFGZUUAKJABUCZYKUDUEYIYHUUCAKHIZKYIUUBKAHBUDNAUDZPUFUUDFGZYHYIUUH
      UUMRZYHYIUVCUVDYHYIUVCUVDUUHUUMYHYIUVCUGZUUEYKUHIZUUGYKUHIZJUUEUUGYKUHUIU
      VEUUJUVFUULUVGYHYIUUSUVCUUJUVFJUUTYKUUDUJUKUVEUULAUUFBUHIZHIZUVGUVEUUKUVH
      AHYIUVCUUKUVHJYHBUUDUJULNYHYIUVCUVIUVGJZYHYIUVCUVJRYHYIUVCYIUVJYHYIUVCYIU
      VJRYHYIUVCLZYIUVJUVKYHUUFFGZYIUVJBUUDUCZAUUFBUNUOUPUQURUSUTVAOVBUPVCVDYPV
      EZYHYIUUHDYPVFZYTRZYIUVNYHUVPYIUVNYHUVPYIUVNLZYHLZKBGZUVPUVRUVSUVOYTUVRUV
      SLZUVOLYQDYPUUEVGZYSUVRYQUWAJZUVSUVOYIYHUVNUWBYIYHLUUSUVNUWBYHYIUUSUUTVHU
      USYPSGZUVNUWBUAVIZDYKYPSVJVKQVLVMUVOUVTUWADYPUUGVGZYSDYPUUEUUGVNUVTUWEEYR
      AEUMZHIZVGZYSUVTUWEUWHUVQUVSUWEUWHTZYHUVQUVSLZUUGUWGTZEYRVOZDYPVFUWIUWJUW
      LDYPUWJUUDYPGZUUFYRGZUWLUVQYPFGZYILZUVSUWMUWNRUVNYIUWPUVNUWOYIUWCUVNUWOUW
      DYPSVPVQZVRVHUUDYPBVSQUWNUUGUUGTZUWLUUGVTUWKUWREUUFYRUWFUUFJUWGUUGUUGUWFU
      UFAHMWAWBWCWDWEDEYPYRUUGUWGWFUEWIUVRUWHUWETZUVSUVRUWGUUGTZDYPVOZEYRVFUWSU
      VRUXAEYRUWFFGZUVRUWFYRGZLUXAUVQUXCUXBYHUVQYRFGZUXCUXBUVNYIUWOUXDUWQBYPUCW
      GYRUWFWHQWIUXBUVQYHUXCUXAUXBUVQYHUXCUXARUXBUVQLZYHLZUXCUWFUUFGZDYPVOZUXAU
      VQUXCUXHRZUXBYHYIUWCUVNUXIUWDYIUWCUVNLLUXCUXHDBYPUWFSWJWKVKWLUXFUXGUWTDYP
      UXEYHUWMUXGUWTRZRUXEUWMYHUXJUXBYIUVNUWMYHUXJRZRUXBYIUVNUWMUXKYIUVNUWMLZLU
      VLUXBUXKUXLYIUVCUVLUVNUWOUWMUVCUWQYPUUDWHQUVMWGUXBUVLYHUXJUXBUVLYHUGUXGUW
      FUUFTZUWTUVLUXBUXGUXMRYHUUFUWFWTWMUWFUUFAWNWOUPWPWQWRWSXJXAWOXBXCXDXEEDYR
      YPUWGUUGWFUEXFXGUVQUVSYHYSUWHJZYHUWJUXNUWJYHYRVEZUXNYIUWCUVNUVSUXOUWDBYPS
      XHXIYHYRSGUXOUXNBYPHXKEAYRSVJVKWGVHVLUFPVAXBUVRUVSXLZYTUVOUVRUXPBKJZYTYIU
      XQUXPXMZUVNYHYIBXNZUXRBXOUXSUVSBKBXPXQUEVMUVNYHUXQYTRZYIUVNUWOYHUXTUWQUWO
      YHLZUXQYTUYAUXQLYQKYSUWOYHUXQYQKJYHUXQLZUWOYQKYPHIZKUYBYKKYPHUXQYHYKUVAKB
      KAHMUVBPXRYPXSZPXTUWOUXQYHYSKJUWOUXQLZYHYSUVAKUYEYRKAHUXQUWOYRUYCKBKYPHUI
      UYDPNUVBYBVLUFWKQYAYCYDYEXBYFVDYGUQYFUT $.
  $}

  $( If an ordinal number is even, its successor is odd.  (Contributed by NM,
     26-Jan-2006.) $)
  oneo $p |- ( ( A e. On /\ B e. On /\ C = ( 2o .o A ) ) ->
              -. suc C = ( 2o .o B ) ) $=
    ( con0 wcel c2o comu co wceq csuc wa wb sucid mpbii 2on mp3an3 c1o coa mpan
    omord wn onnbtwn 3ad2ant1 suceq eqeq1d 3ad2ant3 wi ovex eleq2 simpl syl6bir
    w3a syl5 simpr omcl oa1suc syl 1on elexi df-2o eleqtrri oaord mp3an12 omsuc
    eleqtrrd eqeltrrd ad2antrr suceloni sylan2 ancoms adantr mpbird simpld jcad
    c0 ex 3adant3 sylbid mtod ) ADEZBDEZCFAGHZIZULZCJZFBGHZIZABEZBAJZEZKZVTWAWK
    UAWCABUBUCWDWGWBJZWFIZWKWCVTWGWMLWAWCWEWLWFCWBUDUEUFVTWAWMWKUGWCVTWAKZWMWHW
    JWMWBWFEZWNWHWMWBWLEWOWBFAGUHMWLWFWBUINWNWOWHVOFEZKZWHVTWAFDEZWQWOLOABFTPWH
    WPUJUKUMWNWMWJWNWMKZWJWPWSWJWPKZWFFWIGHZEZWSWLWFXAWNWMUNVTWLXAEWAWMVTWBQRHZ
    WLXAVTWBDEZXCWLIWRVTXDOFAUOSZWBUPUQVTXCWBFRHZXAVTQFEZXCXFEZQQJFQQDURUSMUTVA
    VTXDXGXHLZXEQDEWRXDXIUROQFWBVBVCUQNWRVTXAXFIOFAVDSVEVFVGVFWNWTXBLZWMWAVTXJV
    TWAWIDEZXJAVHWAXKWRXJOBWIFTPVIVJVKVLVMVPVNVQVRVS $.

  ${
    $d A w x z $.  $d A x y z $.  $d B w x z $.  $d B x y z $.
    $( Lemma for ~ omeu : existence part.  (Contributed by Mario Carneiro,
       28-Feb-2013.) $)
    omeulem1 $p |- ( ( A e. On /\ B e. On /\ A =/= (/) ) ->
      E. x e. On E. y e. A ( ( A .o x ) +o y ) = B ) $=
      ( vz vw con0 wcel c0 w3a cv csuc comu co wrex wceq eleq2d syl2anc wa wi
      wne coa simp2 sucelon sylib simp1 on0eln0 biimpar 3adant2 syl21anc sucidg
      wss omword2 ssel syl5 sylc suceq oveq2d rspcev wral weq onminex wlim word
      w3o vex elon ordzsl bitri noel oveq2 om0x syl6eq mtbiri simp3 raleq sucid
      wn a1i notbid rspcv ax-mp syl6bi 3expia rexlimdvw ralnex ciun simpr simpl
      cvv omlim syl12anc wel limord 3ad2ant1 sylibr onelon suceloni syl sssucid
      eliun omwordi mpi syl3anc sseld reximdvai syl5bi sylbid expimpd 3ad2antl1
      con3d com12 3jaod impr wb simpl1 simprr omcl simpl2 ontri1 oawordex mpbid
      mpbird simp3r simp21 simp11 simp23 omsuc eleqtrd eqeltrd simp3l oaord jca
      3adantr1 reximdv2 mpd expcom com13 ) CGHZDGHZCIUAZJZDCAKZLZMNZHZAGOZCUUCM
      NZBKZUBNZDPZBCOZAGOZUUBYTDCDLZMNZHZUUGYSYTUUAUCZUUBUUNUUOULZYTUUPUUBUUNGH
      ZYSICHZUURUUBYTUUSUUQDUDUEYSYTUUAUFYSUUAUUTYTYSUUTUUACUGUHUIUUNCUMUJUUQYT
      DUUNHUURUUPDGUKUUNUUODUNUOUPUUFUUPADGUUCDPZUUEUUODUVAUUDUUNCMUUCDUQURQUSR
      UUGUUFDCEKZLZMNZHZVRZEUUCUTZSZAGOUUBUUMUUFUVEAEAEVAZUUEUVDDUVIUUDUVCCMUUC
      UVBUQURQVBUUBUVHUULAGUVHUUCGHZUUBUULUUFUVGUVJUUBUULTUUBUUFUVGUVJJZUULUUBU
      VKSZUUKBGOZUULUUBUVGUVJUVMUUFUUBUVGUVJSZSZUUHDULZUVMUVOUVPDUUHHZVRZUUBUVG
      UVJUVRUVJUUCIPZUUCFKZLZPZFGOZUUCVCZVEZUUBUVGSZUVRUVJUUCVDZUWEUUCAVFZVGZFU
      UCVHVIUWFUVSUVRUWCUWDUVSUVRTUWFUVSUVQDIHDVJUVSUUHIDUVSUUHCIMNIUUCICMVKCVL
      VMQVNVSUWFUWBUVRFGUUBUVGUWBUVRUUBUVGUWBJZUWBDCUWAMNZHZVRZUVRUUBUVGUWBVOZU
      WJUWBUVGUWMUWNUUBUVGUWBUCUWBUVGUVFEUWAUTZUWMUVFEUUCUWAVPUVTUWAHUWOUWMTUVT
      FVFVQUVFUWMEUVTUWAEFVAZUVEUWLUWPUVDUWKDUWPUVCUWACMUVBUVTUQURQVTWAWBWCUPUW
      BUVRUWMUWBUVQUWLUWBUUHUWKDUUCUWACMVKQVTUHRWDWEYSYTUVGUWDUVRTUUAUWDYSUVGSU
      VRUWDYSUVGUVRUVGUVEEUUCOZVRUWDYSSZUVRUVEEUUCWFUWRUVQUWQUWRUVQDEUUCCUVBMNZ
      WGZHZUWQUWRUUHUWTDUWRYSUUCWJHZUWDUUHUWTPUWDYSWHUXBUWRUWHVSUWDYSWIECUUCWJW
      KWLQUXADUWSHZEUUCOUWRUWQEDUUCUWSXAUWRUXCUVEEUUCUWDYSEAWMZUXCUVETUWDYSUXDJ
      ZUWSUVDDUXEUVBGHZUVCGHZYSUWSUVDULZUXEUVJUXDUXFUXEUWGUVJUWDYSUWGUXDUUCWNWO
      UWIWPUWDYSUXDVOUUCUVBWQRZUXEUXFUXGUXIUVBWRWSUWDYSUXDUCUXFUXGYSJUVBUVCULUX
      HUVBWTUVBUVCCXBXCXDXEWDXFXGXHXKXGXIXLXJXMXGXNUVOUUHGHZYTUVPUVRXOUVOYSUVJU
      XJYSYTUUAUVNXPUUBUVGUVJXQCUUCXRZRZYSYTUUAUVNXSZUUHDXTRYCUVOUXJYTUVPUVMXOU
      XLUXMBUUHDYARYBYNUVLUUKUUKBGCUUBUVKUUIGHZUUKSZUUICHZUUKSUUBUVKUXOJZUXPUUK
      UXQUXPUUJUUHCUBNZHZUXQUUJDUXRUUBUVKUXNUUKYDZUXQDUUEUXRUUBUUFUVGUVJUXOYEUX
      QYSUVJUUEUXRPYSYTUUAUVKUXOYFZUUBUUFUVGUVJUXOYGZCUUCYHRYIYJUXQUXNYSUXJUXPU
      XSXOUUBUVKUXNUUKYKUYAUXQYSUVJUXJUYAUYBUXKRUUICUUHYLXDYCUXTYMWDYOYPYQWDYRX
      FUOYP $.
  $}

  $( Lemma for ~ omeu : uniqueness part.  (Contributed by Mario Carneiro,
     28-Feb-2013.)  (Revised by Mario Carneiro, 29-May-2015.) $)
  omeulem2 $p |- ( ( ( A e. On /\ A =/= (/) ) /\
      ( B e. On /\ C e. A ) /\ ( D e. On /\ E e. A ) ) ->
    ( ( B e. D \/ ( B = D /\ C e. E ) ) ->
      ( ( A .o B ) +o C ) e. ( ( A .o D ) +o E ) ) ) $=
    ( con0 wcel c0 wa w3a comu co coa wceq wss wi wb syl syl31anc syl2anc eloni
    csuc word simp3l ordsucss 3syl simp2l suceloni simp1l simp1r on0eln0 mpbird
    wne omword sylibd omcl simp3r onelon oaword1 sstr expcom syld simp2r biimpa
    oaord omsuc eleqtrrd syl6ci simpr syl5ib oveq2 oveq1d adantr eleq2d syl3anc
    ssel mpbidi jaod ) AFGZAHUMZIZBFGZCAGZIZDFGZEAGZIZJZBDGZABKLZCMLZADKLZEMLZG
    ZBDNZCEGZIZWHWIABUBZKLZWMOZWKWSGWNWHWIWSWLOZWTWHWIWRDOZXAWHWEDUCWIXBPWAWDWE
    WFUDZDUABDUEUFWHWRFGZWEVSHAGZXBXAQWHWBXDWAWBWCWGUGZBUHRXCVSVTWDWGUIZWHXEVTV
    SVTWDWGUJWHVSXEVTQXGAUKRULWRDAUNSUOWHWLFGZEFGZXAWTPZWHVSWEXHXGXCADUPTWHVSWF
    XIXGWAWDWEWFUQAEURTZXHXIIWLWMOZXJWLEUSXAXLWTWSWLWMUTVARTVBWHWKWJAMLZWSWHCFG
    ZVSWJFGZWCWKXMGZWHVSWCXNXGWAWBWCWGVCZACURTZXGWHVSWBXOXGXFABUPTZXQXNVSXOJWCX
    PCAWJVEVDSWHVSWBWSXMNXGXFABVFTVGWSWMWKVPVHWHXNXIXOWQWNPXRXKXSWQWKWJEMLZGZWN
    XNXIXOJZWQWPYBYAWOWPVICEWJVEVJWQXTWMWKWOXTWMNWPWOWJWLEMBDAKVKVLVMVNVQVOVR
    $.

  $( An ordered pair-like theorem for ordinal multiplication.  (Contributed by
     Mario Carneiro, 29-May-2015.) $)
  omopth2 $p |- ( ( ( A e. On /\ A =/= (/) ) /\
      ( B e. On /\ C e. A ) /\ ( D e. On /\ E e. A ) ) ->
    ( ( ( A .o B ) +o C ) = ( ( A .o D ) +o E ) <-> ( B = D /\ C = E ) ) ) $=
    ( con0 wcel wa comu coa wceq w3o word eloni syl syl2anc syl5 mtod pm2.21d
    co wne w3a simpl2l simpl3l ordtri3or simpr simpl1l omcl simpl3r onelon oacl
    c0 wn ordirr 3syl eqneltrd wo orc omeulem2 adantr neleqtrrd simpl1r simpl2r
    wi idd syl222anc 3jaod mpd olc mpand eqcomd jca ex oveq2 oveqan12d impbid1
    id ) AFGZAULUAZHZBFGZCAGZHZDFGZEAGZHZUBZABITZCJTZADITZEJTZKZBDKZCEKZHZWGWLW
    OWGWLHZWMWNWPBDGZWMDBGZLZWMWPBMZDMZWSWPWAWTWAWBVTWFWLUCZBNOWPWDXAWDWEVTWCWL
    UDZDNOBDUEPWPWQWMWMWRWPWQWMWPWQWIWKGZWPWIWKWKWGWLUFZWPWKFGZWKMWKWKGUMWPWJFG
    ZEFGZXFWPVRWDXGVRVSWCWFWLUGZXCADUHPWPVRWEXHXIWDWEVTWCWLUIZAEUJZPWJEUKPWKNWK
    UNUOZUPZWQWQWMCEGZHZUQZWPXDWQXOURWGXPXDVDWLABCDEUSUTZQRSWPWMVEWPWRWMWPWRWKW
    IGZWPWIWKWKXLXEVAZWRWRDBKZECGZHZUQZWPXRWRYBURWPVRVSWDWEWAWBYCXRVDXIVRVSWCWF
    WLVBXCXJXBWAWBVTWFWLVCZADEBCUSVFZQRSVGVHZWPXNWNYALZWNWPCMZEMZYGWPVRWBYHXIYD
    VRWBHCFGYHACUJCNOPWPVRWEYIXIXJVRWEHXHYIXKENOPCEUEPWPXNWNWNYAWPXNWNWPXNXDXMW
    PWMXNXDYFXOXPWPXDXOWQVIXQQVJRSWPWNVEWPYAWNWPYAXRXSWPXTYAXRWPBDYFVKYBYCWPXRY
    BWRVIYEQVJRSVGVHVLVMWMWNWHWJCEJBDAIVNWNVQVOVP $.

  ${
    $d A r s t x y z $.  $d B r s t x y z $.
    $( The division algorithm for ordinal multiplication.  (Contributed by
       Mario Carneiro, 28-Feb-2013.) $)
    omeu $p |- ( ( A e. On /\ B e. On /\ A =/= (/) ) ->
        E! z E. x e. On E. y e. A
          ( z = <. x , y >. /\ ( ( A .o x ) +o y ) = B ) ) $=
      ( vt vr vs con0 wcel cv cop wceq comu co coa wa wrex wex wi omeulem1 opex
      wne w3a wal weu isseti 19.41v mpbiran rexbii rexcom4 bitr3i bitri simp2rl
      c0 sylib simp3rl simp2rr simp3rr eqtr4d wb simp11 simp2ll simp2lr simp3ll
      simp13 simp3lr omopth2 syl222anc mpbid opeq12 3expia exp4b expd rexlimdvv
      syl imp expimpd alrimivv opeq1 eqeq2d oveq2 oveq1d anbi12d opeq2 cbvrex2v
      eqeq1d eqeq1 anbi1d 2rexbidv syl5bb eu4 sylanbrc ) DIJZEIJZDUOUCZUDZCKZAK
      ZBKZLZMZDWSNOZWTPOZEMZQZBDRZAIRZCSZXHFKZGKZHKZLZMZDXKNOZXLPOZEMZQZHDRGIRZ
      QWRXJMZTZFUECUEXHCUFWQXEBDRZAIRZXIABDEUAYCXGCSZAIRXIYBYDAIYBXFCSZBDRYDYEX
      EBDYEXBCSXECXAWSWTUBUGXBXECUHUIUJXFBCDUKULUJXGACIUKUMUPWQYACFWQXHXSXTWQXH
      QXRXTGHIDWQXHXKIJZXLDJZQZXRXTTTZWQXFYIABIDWQWSIJZWTDJZQZXFYIWQYLXFQZYHXRX
      TWQYMYHXRQZXTWQYMYNUDZWRXAXJXBXEYLWQYNUNYOXJXMXAXNXQYHWQYMUQYOWSXKMZWTXLM
      ZQZXAXMMYOXDXPMZYRYOXDEXPXBXEYLWQYNURXNXQYHWQYMUSUTYOWNWPYJYKYFYGYSYRVAWN
      WOWPYMYNVBWNWOWPYMYNVFYJYKXFWQYNVCYJYKXFWQYNVDYFYGXRWQYMVEYFYGXRWQYMVGDWS
      WTXKXLVHVIVJWSWTXKXLVKVPUTUTVLVMVNVOVQVOVRVSXHXSCFXHWRXMMZXQQZHDRGIRXTXSX
      FUUAWRXKWTLZMZXOWTPOZEMZQABGHIDYPXBUUCXEUUEYPXAUUBWRWSXKWTVTWAYPXDUUDEYPX
      CXOWTPWSXKDNWBWCWGWDYQUUCYTUUEXQYQUUBXMWRWTXLXKWEWAYQUUDXPEWTXLXOPWBWGWDW
      FXTUUAXRGHIDXTYTXNXQWRXJXMWHWIWJWKWLWM $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Ordinal exponentiation with a nonzero mantissa is nonzero.  Proposition
       8.32 of [TakeutiZaring] p. 67.  (Contributed by NM, 4-Jan-2005.) $)
    oen0 $p |- ( ( ( A e. On /\ B e. On ) /\ (/) e. A ) ->
               (/) e. ( A ^o B ) ) $=
      ( vx vy con0 wcel c0 coe co wi cv wa wceq oveq2 eleq2d c1o adantr wss cvv
      wb csuc 0lt1o oe0 syl5eleqr comu simpl oecl omordi eleq1d ad2antlr sylibd
      jca sylan oesuc sylibrd exp31 com12 com34 impd wlim wral ciun wrex 0ellim
      om0 eqimss2 syl sseq2d rspcev syl2an ssiun adantrr vex oelim anasss an12s
      mpanlr1 sseqtr4d word limelon mpan ancoms eloni ordgt0ge1 3syl ex tfinds3
      mpbird a1dd expd imp31 ) AEFZBEFZGAFZGABHIZFZWMWLWNWPJWMWLWNWPGACKZHIZFZG
      AGHIZFZGADKZHIZFZGAXBUAZHIZFZWPWLWNLZCDBWQGMWRWTGWQGAHNOWQXBMWRXCGWQXBAHN
      OWQXEMWRXFGWQXEAHNOWQBMWRWOGWQBAHNOWLXAWNWLGPWTUBAUCZUDQXBEFZWLWNXDXGJXJW
      LXDWNXGWLXJXDWNXGJZJWLXJXDXKWLXJLZXDLWNGXCAUEIZFZXGXLWLXCEFZLZXDWNXNJXLWL
      XOWLXJUFAXBUGULXPXDLWNXCGUEIZXMFZXNGAXCUHXOXRXNTWLXDXOXQGXMXCVEUIUJUKUMXL
      XGXNTXDXLXFXMGAXBUNOQUOUPUQURUSWQUTZXHWSXDDWQVAXSXHWSXSXHLZWSPWRRZXTPDWQX
      CVBZWRXSWLPYBRZWNXSWLLZPXCRZDWQVCZYCXSGWQFPWTRZYFWLWQVDWLWTPMYGXIPWTVFVGY
      EYGDGWQXBGMXCWTPXBGAHNVHVIVJDWQXCPVKVGVLWLXSWNWRYBMZWLXSWNYHWLWQSFZXSWNYH
      CVMZDAWQSVNVQVOVPVRXSWLWSYATZWNYDWREFZWRVSYKXSWQEFZWLYLYIXSYMYJWQSVTWAWLY
      MYLAWQUGWBUMWRWCWRWDWEVLWHWFWIWGWJUQWK $.
  $}

  ${
    $d x y A $.  $d x B $.  $d x y C $.
    $( Ordering law for ordinal exponentiation.  Proposition 8.33 of
       [TakeutiZaring] p. 67.  (Contributed by NM, 5-Jan-2005.)  (Revised by
       Mario Carneiro, 24-May-2015.) $)
    oeordi $p |- ( ( B e. On /\ C e. ( On \ 2o ) ) ->
                 ( A e. B -> ( C ^o A ) e. ( C ^o B ) ) ) $=
      ( vy con0 wcel coe co wi wceq oveq2 eleq2d imbi2d wa comu adantr syl21anc
      c1o syl cvv vx c2o cdif cv csuc eldifi oecl sylan ondif2 simprbi c0 simpr
      om1 dif20el oen0 omordi mpd eqeltrrd oesuc eleqtrrd expcom suceloni ontr1
      syl2an mpan2d a2d wral wlim bi2.04 ralbii r19.21v ciun limsuc biimpa elex
      bitri sucexb sucidg sylbir eleq2 imbi12d rspcv anc2li eliuni adantl simpl
      mpid syl6 vex oelim mpanlr1 adantlr sylibrd ex syl5bi tfindsg2 impancom )
      BEFABFCEUBUCFZCAGHZCBGHZFZWRWSCUAUDZGHZFZIZWRWSCAUEZGHZFZIWRWSCDUDZGHZFZI
      ZWRWSCXIUEZGHZFZIWRXAIUADBAXBXFJZXDXHWRXPXCXGWSXBXFCGKLMXBXIJZXDXKWRXQXCX
      JWSXBXICGKLMXBXMJZXDXOWRXRXCXNWSXBXMCGKLMXBBJZXDXAWRXSXCWTWSXBBCGKLMWRAEF
      ZXHWRXTNZWSWSCOHZXGYAWSROHZWSYBYAWSEFZYCWSJWRCEFZXTYDCEUBUFZCAUGUHZWSUMSY
      ARCFZYCYBFZWRYHXTWRYEYHCUIUJZPYAYEYDUKWSFZYHYIIWRYEXTYFPZYGYAYEXTUKCFZYKY
      LWRXTULWRYMXTCUNZPCAUOQRCWSUPQUQURWRYEXTXGYBJYFCAUSUHUTVAXIEFZAXIFZNWRXKX
      OYOWRXKXOIZIYPWRYOYQWRYONZXKXJXNFZXOYRXJXJCOHZXNYRXJROHZXJYTYRXJEFZUUAXJJ
      WRYEYOUUBYFCXIUGUHZXJUMSYRYHUUAYTFZWRYHYOYJPYRYEUUBUKXJFZYHUUDIWRYEYOYFPZ
      UUCYRYEYOYMUUEUUFWRYOULWRYMYOYNPCXIUOQRCXJUPQUQURWRYEYOXNYTJYFCXIUSUHUTYR
      XNEFZXKYSNXOIWRYEXMEFUUGYOYFXIVBCXMUGVDWSXJXNVCSVEVAPVFYPXLIZDXBVGZWRYPXK
      IZDXBVGZIZXBVHZAXBFZNZXEUUIWRUUJIZDXBVGUULUUHUUPDXBYPWRXKVIVJWRUUJDXBVKVP
      UUOWRUUKXDUUOWRUUKXDIUUOWRNZUUKWSDXBXJVLZFZXDUUOUUKUUSIZWRUUOXFXBFZUUTUUM
      UUNUVAXBAVMVNUVAUUKUVAXHNUUSUVAUUKXHUVAUUKAXFFZXHUVAXFTFZUVBXFXBVOUVCATFU
      VBAVQATVRVSSUUJUVBXHIDXFXBXIXFJZYPUVBXKXHXIXFAVTUVDXJXGWSXIXFCGKZLWAWBWGW
      CDXFXJXGXBWSUVEWDWHSPUUQXCUURWSUUMWRXCUURJZUUNUUMWRNYEUUMYMUVFWRYEUUMYFWE
      UUMWRWFWRYMUUMYNWEYEXBTFUUMYMUVFUAWIDCXBTWJWKQWLLWMWNVFWOWPWQ $.
  $}

  $( Ordering property of ordinal exponentiation.  Corollary 8.34 of
     [TakeutiZaring] p. 68 and its converse.  (Contributed by NM, 6-Jan-2005.)
     (Revised by Mario Carneiro, 24-May-2015.) $)
  oeord $p |- ( ( A e. On /\ B e. On /\ C e. ( On \ 2o ) ) ->
               ( A e. B <-> ( C ^o A ) e. ( C ^o B ) ) ) $=
    ( con0 wcel c2o coe co wi oeordi wceq wo wn oecl syl2anc word eloni ordtri2
    wb syl2an w3a 3adant1 oveq2 a1i 3adant2 orim12d con3d eldifi 3ad2ant3 simp1
    cdif simp2 3adant3 3imtr4d impbid ) ADEZBDEZCDFUKEZUAZABEZCAGHZCBGHZEZUQURU
    TVCIUPABCJUBUSVAVBKZVBVAEZLZMZABKZBAEZLZMZVCUTUSVJVFUSVHVDVIVEVHVDIUSABCGUC
    UDUPURVIVEIUQBACJUEUFUGUSVADEZVBDEZVCVGSZUSCDEZUPVLURUPVOUQCDFUHUIZUPUQURUJ
    CANOUSVOUQVMVPUPUQURULCBNOVLVAPVBPVNVMVAQVBQVAVBRTOUPUQUTVKSZURUPAPBPVQUQAQ
    BQABRTUMUNUO $.

  $( Left cancellation law for ordinal exponentiation.  (Contributed by NM,
     6-Jan-2005.)  (Revised by Mario Carneiro, 24-May-2015.) $)
  oecan $p |- ( ( A e. ( On \ 2o ) /\ B e. On /\ C e. On ) ->
                   ( ( A ^o B ) = ( A ^o C ) <-> B = C ) ) $=
    ( con0 c2o wcel co wceq wo wn wi oeordi ancoms wb oecl syl2anc word ordtri3
    coe eloni cdif w3a 3adant2 3adant3 con3d eldifi 3ad2ant1 simp2 simp3 syl2an
    orim12d 3adant1 3imtr4d oveq2 impbid1 ) ADEUAFZBDFZCDFZUBZABSGZACSGZHZBCHZU
    SUTVAFZVAUTFZIZJZBCFZCBFZIZJZVBVCUSVJVFUSVHVDVIVEUPURVHVDKZUQURUPVLBCALMUCU
    PUQVIVEKZURUQUPVMCBALMUDUKUEUSUTDFZVADFZVBVGNZUSADFZUQVNUPUQVQURADEUFUGZUPU
    QURUHABOPUSVQURVOVRUPUQURUIACOPVNUTQVAQVPVOUTTVATUTVARUJPUQURVCVKNZUPUQBQCQ
    VSURBTCTBCRUJULUMBCASUNUO $.

  $( Weak ordering property of ordinal exponentiation.  (Contributed by NM,
     6-Jan-2005.)  (Revised by Mario Carneiro, 24-May-2015.) $)
  oeword $p |- ( ( A e. On /\ B e. On /\ C e. ( On \ 2o ) ) ->
                   ( A C_ B <-> ( C ^o A ) C_ ( C ^o B ) ) ) $=
    ( con0 wcel c2o cdif w3a wceq wo coe co wss oeord oecan 3coml onsseleq oecl
    wb wa bicomd orbi12d 3adant3 eldifi id anim12dan syl syl2anr 3impa 3bitr4d
    ) ADEZBDEZCDFGEZHZABEZABIZJZCAKLZCBKLZEZURUSIZJZABMZURUSMZUNUOUTUPVAABCNUNV
    AUPUMUKULVAUPSCABOPUAUBUKULVCUQSUMABQUCUKULUMVDVBSZUMCDEZUKULTZVEVGCDFUDVGU
    EVFVGTURDEZUSDEZTVEVFUKVHULVICARCBRUFURUSQUGUHUIUJ $.

  $( Weak ordering property of ordinal exponentiation.  (Contributed by NM,
     6-Jan-2005.) $)
  oewordi $p |- ( ( ( A e. On /\ B e. On /\ C e. On ) /\ (/) e. C ) ->
                   ( A C_ B -> ( C ^o A ) C_ ( C ^o B ) ) ) $=
    ( con0 wcel w3a c0 wss coe co wi c1o wceq wo wb word syl wa oe1m oveq1 mpan
    eloni ordgt0ge1 1on onsseleq bitrd 3ad2ant3 c2o ondif2 oeword biimpd 3expia
    cdif syl5bir expd 3impia adantr adantl eqtr4d eqimss sseq12d syl5ibcom a1dd
    3adant3 jaod sylbid imp ) ADEZBDEZCDEZFZGCEZABHZCAIJZCBIJZHZKZVKVLLCEZLCMZN
    ZVQVJVHVLVTOVIVJVLLCHZVTVJCPVLWAOCUBCUCQLDEVJWAVTOUDLCUEUAUFUGVKVRVQVSVHVIV
    JVRVQKVHVIRZVJVRVQVJVRRCDUHUMEZWBVQCUIVHVIWCVQVHVIWCFVMVPABCUJUKULUNUOUPVKV
    SVPVMVHVIVSVPKVJWBLAIJZLBIJZHZVSVPWBWDWEMWFWBWDLWEVHWDLMVIASUQVIWELMVHBSURU
    SWDWEUTQVSWDVNWEVOLCAITLCBITVAVBVDVCVEVFVG $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Weak ordering property of ordinal exponentiation.  Proposition 8.35 of
       [TakeutiZaring] p. 68.  (Contributed by NM, 6-Jan-2005.) $)
    oewordri $p |- ( ( B e. On /\ C e. On ) ->
        ( A e. B -> ( A ^o C ) C_ ( B ^o C ) ) ) $=
      ( vx vy con0 wcel coe co wss wi c0 wceq oveq2 sseq12d c1o adantr imp cvv
      wa csuc onelon oe0 syl eqtr4d eqimss simpl onelss jca31 comu oecl 3adant2
      w3a 3adant1 simp1 omwordri syl3anc adantrl omwordi syld3an3 adantrr sstrd
      cv oesuc 3sstr4d exp520 com3r imp4c syl5 wlim wral vex limelon mpan oe0m1
      0ellim biimpa syl2anc 0ss syl6eqss sseq1d syl5ibr adantl a1dd ciun ss2iun
      oveq1 oelim mpanlr1 an32s adantllr anim1i wne on0eln0 adantlr adantlll ex
      ne0i oe0lem ancri syl11 tfinds3 expd impcom ) CFGZBFGZABGZACHIZBCHIZJZKXE
      XFXGXJADVCZHIZBXKHIZJZALHIZBLHIZJZAEVCZHIZBXRHIZJZAXRUAZHIZBYBHIZJZXJXFXG
      TZDECXKLMXLXOXMXPXKLAHNXKLBHNOXKXRMXLXSXMXTXKXRAHNXKXRBHNOXKYBMXLYCXMYDXK
      YBAHNXKYBBHNOXKCMXLXHXMXIXKCAHNXKCBHNOYFXOXPMXQYFXOPXPYFAFGZXOPMBAUBZAUCU
      DXFXPPMXGBUCQUEXOXPUFUDYFYGXFTABJZTXRFGZYAYEKZYFYGXFYIYHXFXGUGZXFXGYIBAUH
      RUIYJYGXFYIYKYGXFYJYIYKKYGXFYJYIYAYEYGXFYJUMZYIYATZTZXSAUJIZXTBUJIZYCYDYO
      YPXTAUJIZYQYMYAYPYRJZYIYMYAYSYMXSFGZXTFGZYGYAYSKYGYJYTXFAXRUKULXFYJUUAYGB
      XRUKUNZYGXFYJUOXSXTAUPUQRURYMYIYRYQJZYAYMYIUUCYGXFYJUUAYIUUCKUUBABXTUSUTR
      VAVBYMYCYPMZYNYGYJUUDXFAXRVDULQYMYDYQMZYNXFYJUUEYGBXRVDUNQVEVFVGVHVIYGYFT
      ZXKVJZYAEXKVKZXNKZYFYFUUGUUIKAYFALMZTUUGXNUUHUUJUUGXNKYFUUGXNUUJLXKHIZXMJ
      UUGUUKLXMUUGXKFGZLXKGZUUKLMZXKSGZUUGUULDVLZXKSVMVNXKVPUULUUMUUNXKVOVQVRXM
      VSVTUUJXLUUKXMALXKHWGWAWBWCWDUUFLAGZTZUUGUUIUUHXNUURUUGTZEXKXSWEZEXKXTWEZ
      JEXKXSXTWFUUSXLUUTXMUVAYGUUQUUGXLUUTMZYFYGUUGUUQUVBYGUUOUUGUUQUVBUUPEAXKS
      WHWIWJWKYFUUQUUGXMUVAMZYGYFUUGUVCUUQYFUUGTXFUUGTLBGZUVCYFXFUUGYLWLYFUVDUU
      GXFXGUVDXGUVDXFBLWMBAWRBWNWBRQXFUUOUUGUVDUVCUUPEBXKSWHWIVRWOWPOWBWQWSYFYG
      YHWTXAXBXCXD $.

    $( Ordinal exponentiation compared to its exponent.  Proposition 8.37 of
       [TakeutiZaring] p. 68.  (Contributed by NM, 7-Jan-2005.)  (Revised by
       Mario Carneiro, 24-May-2015.) $)
    oeworde $p |- ( ( A e. ( On \ 2o ) /\ B e. On ) -> B C_ ( A ^o B ) ) $=
      ( vx vy con0 wcel c2o coe co wss cv c0 csuc wceq id oveq2 sseq12d wa word
      eloni cdif 0ss a1i wi wb adantl eldifi oecl sylan syl ordsucsssuc syl2anc
      suceloni syl2an vex sucid oeordi mpi syl2anr ordsucss sylc syl5com sylbid
      expcom wlim wral dif20el jca ciun ss2iun cuni limuni uniiun syl6eq adantr
      sstr2 cvv oelim mpanlr1 anasss an12s syl5ibr ex syl5 tfinds3 impcom ) BEF
      AEGUAFZBABHIZJZCKZAWJHIZJZLALHIZJZDKZAWOHIZJZWOMZAWRHIZJZWIWGCDBWJLNZWJLW
      KWMXAOWJLAHPQWJWONZWJWOWKWPXBOWJWOAHPQWJWRNZWJWRWKWSXCOWJWRAHPQWJBNZWJBWK
      WHXDOWJBAHPQWNWGWMUBUCWGWOEFZWQWTUDWGXERZWQWRWPMZJZWTXFWOSZWPSZWQXHUEXEXI
      WGWOTUFXFWPEFZXJWGAEFZXEXKAEGUGZAWOUHUIWPTUJWOWPUKULXFXGWSJZXHWTXFWSSZWPW
      SFZXNXFWSEFZXOWGXLWREFZXQXEXMWOUMZAWRUHUNWSTUJXEXRWGXPWGXSWGOXRWGRWOWRFXP
      WODUOUPWOWRAUQURUSWPWSUTVAWRXGWSVPVBVCVDWGXLLAFZRZWJVEZWQDWJVFZWLUDZWGXLX
      TXMAVGVHYBYAYDYCWLYBYARZDWJWOVIZDWJWPVIZJDWJWOWPVJYEWJYFWKYGYBWJYFNYAYBWJ
      WJVKYFWJVLDWJVMVNVOXLYBXTWKYGNZXLYBXTYHXLWJVQFYBXTYHCUODAWJVQVRVSVTWAQWBW
      CWDWEWF $.
  $}

  $( Ordering property of ordinal exponentiation with a successor exponent.
     Corollary 8.36 of [TakeutiZaring] p. 68.  (Contributed by NM,
     7-Jan-2005.) $)
  oeordsuc $p |- ( ( B e. On /\ C e. On ) ->
      ( A e. B -> ( A ^o suc C ) e. ( B ^o suc C ) ) ) $=
    ( con0 wcel wa coe co wi ex adantr comu wss 3adant1 oecl 3adant2 syld oesuc
    wceq c0 csuc onelon w3a oewordri simp1 omwordri syl3anc sseq1d sylibrd ne0i
    wne on0eln0 syl5ibr oen0 simpl omordi sylan com23 mpdd eleq2d 3expa sucelon
    jca jcad ontr2 syl2an anandirs sylan2b exp31 com4l imp ) BDEZCDEZFZABEZADEZ
    ACUAZGHZBVQGHZEZVLVOVPIVMVLVOVPBAUBJKVLVMVOVPVTIIVPVLVMVOVTVPVLVMVOVTIVPVLF
    ZVMFVOVRBCGHZALHZMZWCVSEZFZVTVPVLVMVOWFIVPVLVMUCZVOWDWEWGVOACGHZALHZWCMZWDW
    GVOWHWBMZWJVLVMVOWKIVPABCUDNWGWHDEZWBDEZVPWKWJIVPVMWLVLACOPVLVMWMVPBCOZNVPV
    LVMUEWHWBAUFUGQWGVRWIWCVPVMVRWISVLACRPUHUIWGVOWCWBBLHZEZWEVLVMVOWPIZVPVNVOT
    WBEZWPVNVOTBEZWRVLVOWSIVMVOWSVLBTUKBAUJBULUMKVNWSWRBCUNJQVNWRVOWPVNWRWQVNVL
    WMFWRWQVNVLWMVLVMUOWNVCABWBUPUQJURUSNWGVSWOWCVLVMVSWOSVPBCRNUTUIVDVAVMWAVQD
    EZWFVTIZCVBVPVLWTXAVPWTFVRDEVSDEXAVLWTFAVQOBVQOVRWCVSVEVFVGVHQVIVJVKUS $.

  ${
    $d x y A $.  $d x y B $.  $d y C $.
    $( Ordinal exponentiation with a limit exponent.  Part of Exercise 4.36 of
       [Mendelson] p. 250.  (Contributed by NM, 6-Jan-2005.) $)
    oelim2 $p |- ( ( A e. On /\ ( B e. C /\ Lim B ) ) ->
                ( A ^o B ) = U_ x e. ( B \ 1o ) ( A ^o x ) ) $=
      ( vy wcel wa coe co c1o cv ciun wceq c0 con0 adantl wi sylan wne wss wlim
      cdif limelon 0ellim oe0m1 biimpa syl2anc word limord ordelon on0eln0 el1o
      wn eldif necon3bbii syl6bbr biimpd sylbird syl impr sylan2b iuneq2dv csuc
      df-1o limsuc mpbid syl5eqel onirri jctir sylibr ne0i iunconst 3syl eqtr4d
      1on eqtrd oveq1 iuneq2d eqeq12d syl5ibr oelim wrex wral nsuceq0 a1i dif1o
      impcom sylanbrc ex ad2antlr sssucid suceloni jccir id 3expa ancoms sylan2
      anassrs oewordi an32s jcad oveq2 sseq2d rspcev syl6 ralrimiv iunss2 difss
      w3a mpi iunss1 ax-mp cbviunv sseqtri eqssd adantlrl oe0lem ) CDFZCUAZGZBC
      HIZACJUBZBAKZHIZLZMZBBNMZXTYFXTYFYGNCHIZAYBNYCHIZLZMXTYHNYJXTCOFZNCFZYHNM
      ZCDUCXSYLXRCUDZPYKYLYMCUEUFUGXSYJNMXRXSYJAYBNLZNXSAYBYINYCYBFXSYCCFZYCJFZ
      UMZGYINMZYCCJUNXSYPYRYSXSYPGYCOFZYRYSQXSCUHZYPYTCUIZCYCUJRYTYRNYCFZYSYTUU
      CYCNSYRYCUKYQYCNYCULUOUPYTUUCYSYCUEUQURUSUTVAVBXSJYBFZYBNSYONMXSJCFZJJFUM
      ZGUUDXSUUEUUFXSJNVCZCVDXSYLUUGCFYNCNVEVFVGJVOVHVIJCJUNVJYBJVKAYBNVLVMVPPV
      NYGYAYHYEYJBNCHVQYGAYBYDYIBNYCHVQVRVSVTWGBOFZXTGNBFZGYAECBEKZHIZLZYEEBCDW
      AUUHXSUUIUULYEMXRUUHXSGZUUIGZUULYEUUNUUKYDTZAYBWBZECWCUULYETUUNUUPECUUNUU
      JCFZUUJVCZYBFZUUKBUURHIZTZGUUPUUNUUQUUSUVAXSUUQUUSQUUHUUIXSUUQUUSXSUUQGZU
      URCFZUURNSZUUSXSUUQUVCCUUJVEUFUVDUVBUUJWDWEUURCWFWHWIWJUUNUUQUVAUUNUUQGUU
      JUURTZUVAUUJWKUUMUUQUUIUVEUVAQZUUMUUQGUUJOFZUUROFZUUHXIZUUIUVFUUHXSUUQUVI
      UVBUUHUVGUVHGZUVIUVBUVGUVHXSUUAUUQUVGUUBCUUJUJRUUJWLWMUVJUUHUVIUVGUVHUUHU
      VIUVIWNWOWPWQWRUUJUURBWSRWTXJWIXAUUOUVAAUURYBYCUURMYDUUTUUKYCUURBHXBXCXDX
      EXFEACYBUUKYDXGUSYEUULTUUNYEACYDLZUULYBCTYEUVKTCJXHAYBCYDXKXLAECYDUUKYCUU
      JBHXBXMXNWEXOXPVPXQ $.
  $}

  ${
    $d x C $.  $d x y z w A $.  $d x y z w B $.
    oeoalem.1 $e |- A e. On $.
    oeoalem.2 $e |- (/) e. A $.
    oeoalem.3 $e |- B e. On $.
    $( Lemma for ~ oeoa .  (Contributed by Eric Schmidt, 26-May-2009.) $)
    oeoalem $p |- ( C e. On
               -> ( A ^o ( B +o C ) ) = ( ( A ^o B ) .o ( A ^o C ) ) ) $=
      ( vy coa co coe comu wceq c0 oveq2 oveq2d con0 wcel wa mpan cvv vx vz c1o
      vw csuc eqeq12d oecl mp2an om1 ax-mp oe0 oveq2i 3eqtr4ri oasuc oacl oesuc
      cv oa0 sylancr eqtrd oveq1 sylan9eq omass mp3an13 eqtr4d adantr wlim wral
      syl ex ciun vex oalim wne word limord ordelon sylan ralrimiva 0ellim ne0i
      a1i oelim mpan2 wss wi oewordi mp3an3 3impia onoviun syl3anc iuneq2 omlim
      w3a omwordi tfinds ) ABUAUQZHIZJIZABJIZAWQJIZKIZLZABMHIZJIZWTAMJIZKIZLABG
      UQZHIZJIZWTAXHJIZKIZLZABXHUEZHIZJIZWTAXNJIZKIZLZABCHIZJIZWTACJIZKIZLUAGCW
      QMLZWSXEXBXGYDWRXDAJWQMBHNOYDXAXFWTKWQMAJNOUFWQXHLZWSXJXBXLYEWRXIAJWQXHBH
      NOYEXAXKWTKWQXHAJNOUFWQXNLZWSXPXBXRYFWRXOAJWQXNBHNOYFXAXQWTKWQXNAJNOUFWQC
      LZWSYAXBYCYGWRXTAJWQCBHNOYGXAYBWTKWQCAJNOUFWTUCKIZWTXGXEWTPQZYHWTLAPQZBPQ
      ZYIDFABUGUHZWTUIUJXFUCWTKYJXFUCLDAUKUJULXDBAJYKXDBLFBURUJULUMXHPQZXMXSYMX
      MRXPXLAKIZXRYMXMXPXJAKIZYNYKYMXPYOLFYKYMRZXPAXIUEZJIZYOYPXOYQAJBXHUNOYPYJ
      XIPQZYRYOLDBXHUOZAXIUPUSUTSXJXLAKVAVBYMYNXRLZXMYJYMUUADYJYMRZYNWTXKAKIZKI
      ZXRUUBXKPQZYNUUDLZAXHUGZYIUUEYJUUFYLDWTXKAVCVDVIUUBXQUUCWTKAXHUPOVESVFUTV
      JWQVGZXMGWQVHZXCUUHUUIRWSGWQXLVKZXBUUHUUIWSGWQXJVKZUUJUUHWSAGWQXIVKZJIZUU
      KUUHWRUULAJWQTQZUUHWRUULLZUAVLZYKUUNUUHRZUUOFGBWQTVMSSOUUHUUNYSGWQVHWQMVN
      ZUUMUUKLUUNUUHUUPWBZUUHYSGWQUUHXHWQQZRZYKYMYSFUUHWQVOUUTYMWQVPWQXHVQVRZYT
      USVSUUHMWQQUURWQVTWQMWAVIZUBUDGATJWQXIUDUQZTQZUVDVGZAUVDJIZUBUVDAUBUQZJIZ
      VKLZUDVLZYJUVEUVFRZUVJDYJUVLRMAQZUVJEUBAUVDTWCWDSSUVHPQZUVDPQZUVHUVDWEZUV
      IUVGWEZUVNUVOYJUVPUVQWFZDUVNUVOYJWNUVMUVREUVHUVDAWGWDWHWIWJWKUTGWQXJXLWLV
      BUUHXBUUJLUUIUUHXBWTGWQXKVKZKIZUUJUUHXAUVSWTKUUNUUHXAUVSLZUUPYJUUQUWADYJU
      UQRUVMUWAEGAWQTWCWDSSOUUHUUNUUEGWQVHUURUVTUUJLUUSUUHUUEGWQUVAYJYMUUEDUVBU
      UGUSVSUVCUBUDGWTTKWQXKUVEUVFWTUVDKIZUBUVDWTUVHKIZVKLZUVKYIUVLUWDYLUBWTUVD
      TWMSSUVNUVOUVPUWCUWBWEZUVNUVOYIUVPUWEWFYLUVHUVDWTWOWHWIWJWKUTVFVEVJWP $.
  $}

  $( Sum of exponents law for ordinal exponentiation.  Theorem 8R of [Enderton]
     p. 238.  Also Proposition 8.41 of [TakeutiZaring] p. 69.  (Contributed by
     Eric Schmidt, 26-May-2009.) $)
  oeoa $p |- ( ( A e. On /\ B e. On /\ C e. On )
          -> ( A ^o ( B +o C ) ) = ( ( A ^o B ) .o ( A ^o C ) ) ) $=
    ( con0 wcel coa co coe comu wceq wa c0 oveq2d c1o oveq2 0elon oecl wb oveq1
    syl oa00 biimpar oe0m0 syl6eq oveqan12d mp2an om1 adantl eqtr4d wn wne oacl
    ax-mp on0eln0 oe0m1 necon3abid 3bitr3d adantr orbi12d neorian syl6bb biimpa
    wo oveq1d mpan om0r sylan9eq an32s om0 sylan9eqr anassrs jaodan sylbird imp
    ex pm2.61dan oveq12d eqeq12d syl5ibr impcom wi cif imbi2d eleq1 anbi12d 1on
    eleq2 0lt1o pm3.2i elimhyp simpli simpri elimel oeoalem dedth2h impr oe0lem
    3impb ) ADEZBDEZCDEZABCFGZHGZABHGZACHGZIGZJZWTXAKZXGAALJZXHXGXHXGXILXBHGZLB
    HGZLCHGZIGZJZXHBLJZCLJZKZXNXHXQKZXJLLHGZXMXRXBLLHXHXBLJXQBCUAZUBMXQXMXSJXHX
    QXMXSNIGZXSXOXPXKXSXLNIBLLHOXPXLXSNCLLHOUCUDUEXSDEZYAXSJLDEZYCYBPPLLQUFXSUG
    UMUDUHUIXHXQUJZKXJLXMXHXJLJZYDXHLXBEZXBLUKZYEYDXHXBDEZYFYGRBCULZXBUNTXHYHYF
    YERYIXBUOTXHXQXBLXTUPUQUBXHYDXMLJZXHYDLBEZLCEZVCZYJXHYMBLUKZCLUKZVCYDXHYKYN
    YLYOWTYKYNRXABUNURXAYLYORWTCUNUHUSBLCLUTVAXHYMYJXHYKYJYLWTYKXAYJWTYKKZXAXML
    XLIGZLYPXKLXLIWTYKXKLJBUOVBVDXAXLDEZYQLJYCXAYRPLCQVEXLVFTVGVHWTXAYLYJXAYLKZ
    WTXMXKLIGZLYSXLLXKIXAYLXLLJCUOVBMWTXKDEZYTLJYCWTUUAPLBQVEXKVITVJVKVLVOVMVNU
    IVPXIXCXJXFXMALXBHSXIXDXKXEXLIALBHSALCHSVQVRVSVTWSLAEZXHXGWSUUBKZWTXAXGUUCW
    TXAXGWAXAUUCANWBZXBHGZUUDBHGZUUDCHGZIGZJZWAXAUUDWTBNWBZCFGZHGZUUDUUJHGZUUGI
    GZJZWAABNNAUUDJZXGUUIXAUUPXCUUEXFUUHAUUDXBHSUUPXDUUFXEUUGIAUUDBHSAUUDCHSVQV
    RWCBUUJJZUUIUUOXAUUQUUEUULUUHUUNUUQXBUUKUUDHBUUJCFSMUUQUUFUUMUUGIBUUJUUDHOV
    DVRWCUUDUUJCUUDDEZLUUDEZUUCUURUUSKNDEZLNEZKANUUPWSUURUUBUUSAUUDDWDAUUDLWGWE
    NUUDJUUTUURUVAUUSNUUDDWDNUUDLWGWEUUTUVAWFWHWIWJZWKUURUUSUVBWLBNDWFWMWNWOWPV
    HWQWR $.

  ${
    $d x C $.  $d x y z w A $.  $d x y z w B $.
    oeoelem.1 $e |- A e. On $.
    oeoelem.2 $e |- (/) e. A $.
    $( Lemma for ~ oeoe .  (Contributed by Eric Schmidt, 26-May-2009.) $)
    oeoelem $p |- ( ( B e. On /\ C e. On )
               -> ( ( A ^o B ) ^o C ) = ( A ^o ( B .o C ) ) ) $=
      ( vy vz con0 wcel coe co comu wceq cv c0 oveq2 oveq2d eqeq12d wa cvv csuc
      vx vw c1o oecl mpan oe0 syl om0 ax-mp syl6eq eqtr4d oveq1 oesuc sylan coa
      omsuc omcl oeoa mp3an1 anabss1 eqtrd syl5ibr expcom wlim wral ciun iuneq2
      wi vex oen0 mpan2 oelim sylanl1 sylan2 mpanl1 mpanr1 omlim wne a1i limord
      word ordelon anassrs ralrimiva 0ellim ne0i adantl wss w3a oewordi onoviun
      mp3an3 3impia syl3anc tfinds3 impcom ) CHIBHIZABJKZCJKZABCLKZJKZMZWSUBNZJ
      KZABXDLKZJKZMZWSOJKZABOLKZJKZMWSFNZJKZABXLLKZJKZMZWSXLUAZJKZABXQLKZJKZMZX
      CWRUBFCXDOMZXEXIXGXKXDOWSJPYBXFXJAJXDOBLPQRXDXLMZXEXMXGXOXDXLWSJPYCXFXNAJ
      XDXLBLPQRXDXQMZXEXRXGXTXDXQWSJPYDXFXSAJXDXQBLPQRXDCMZXEWTXGXBXDCWSJPYEXFX
      AAJXDCBLPQRWRXIUDXKWRWSHIZXIUDMAHIZWRYFDABUEZUFZWSUGUHWRXKAOJKZUDWRXJOAJB
      UIQYGYJUDMDAUGUJUKULWRXLHIZXPYAVIXPYAWRYKSZXMWSLKZXOWSLKZMXMXOWSLUMYLXRYM
      XTYNWRYFYKXRYMMYIWSXLUNUOYLXTAXNBUPKZJKZYNYLXSYOAJBXLUQQWRYKYPYNMZYLXNHIZ
      WRYQBXLURZYGYRWRYQDAXNBUSUTUOVAVBRVCVDWRXDVEZXPFXDVFZXHVIUUAXHWRYTSZFXDXM
      VGZFXDXOVGZMFXDXMXOVHUUBXEUUCXGUUDWRXDTIZYTXEUUCMZUBVJZYGWRUUEYTSZUUFDYGW
      RSZUUHUUFUUIUUIUUHSOWSIZUUFUUIOAIZUUJEABVKVLUUIYFUUHUUJUUFYHFWSXDTVMVNVOV
      AVPVQUUBXGAFXDXNVGZJKZUUDUUBXFUULAJWRUUEYTXFUULMUUGFBXDTVRVQQUUBUUEYRFXDV
      FXDOVSZUUMUUDMUUEUUBUUGVTUUBYRFXDWRYTXLXDIZYRYTUUOSWRYKYRYTXDWBUUOYKXDWAX
      DXLWCUOYSVOWDWEYTUUNWRYTOXDIUUNXDWFXDOWGUHWHGUCFATJXDXNUCNZTIZUUPVEZAUUPJ
      KZGUUPAGNZJKZVGMZUCVJYGUUQUURSZUVBDYGUVCSUUKUVBEGAUUPTVMVLUFUFUUTHIZUUPHI
      ZUUTUUPWIZUVAUUSWIZUVDUVEYGUVFUVGVIZDUVDUVEYGWJUUKUVHEUUTUUPAWKVLWMWNWLWO
      VBRVCVDWPWQ $.
  $}

  $( Product of exponents law for ordinal exponentiation.  Theorem 8S of
     [Enderton] p. 238.  Also Proposition 8.42 of [TakeutiZaring] p. 70.
     (Contributed by Eric Schmidt, 26-May-2009.) $)
  oeoe $p |- ( ( A e. On /\ B e. On /\ C e. On )
          -> ( ( A ^o B ) ^o C ) = ( A ^o ( B .o C ) ) ) $=
    ( con0 wcel coe co wceq wa c0 c1o oveq2 oe0m0 syl6eq oveq1d sylan9eqr oe0m1
    syl biimpa oveq1 comu wo oe1m adantll 0elon oecl oe0 adantlr jaodan biimpar
    mpan om00 oveq2d eqtr4d wne on0eln0 bi2anan9 neanior syl6bb sylan9eq om00el
    wn an4s wb bitr3d ex sylbird imp pm2.61dan eqeq12d syl5ibr impcom wi imbi2d
    omcl cif eleq1 eleq2 anbi12d 1on 0lt1o pm3.2i elimhyp simpli simpri oeoelem
    dedth an32s oe0lem 3impb ) ADEZBDEZCDEZABFGZCFGZABCUAGZFGZHZWLWMIZWRAAJHZWS
    WRWSWRWTJBFGZCFGZJWPFGZHZWSBJHZCJHZUBZXDWSXGIZXBKXCWSXEXBKHZXFWMXEXIWLXEWMX
    BKCFGKXEXAKCFXEXAJJFGZKBJJFLMNOCUCPUDWLXFXIWMXFWLXBXAJFGZKCJXAFLWLXADEZXKKH
    JDEWLXLUEJBUFUKXAUGRPUHUIXHXCXJKXHWPJJFWSWPJHXGBCULUJUMMNUNWSXGVBZXDWSXMJBE
    ZJCEZIZXDWSXPBJUOZCJUOZIXMWLXNXQWMXOXRBUPCUPUQBJCJURUSWSXPXDWSXPIXBJXCWLXNW
    MXOXBJHWLXNIZWMXOIXBJCFGZJXSXAJCFWLXNXAJHBQSOWMXOXTJHCQSUTVCWSXPXCJHZWSJWPE
    ZXPYABCVAWSWPDEYBYAVDBCVOWPQRVESUNVFVGVHVIWTWOXBWQXCWTWNXACFAJBFTOAJWPFTVJV
    KVLWKJAEZWSWRWKYCIZWSWRYDWSWRVMWSYDAKVPZBFGZCFGZYEWPFGZHZVMAKAYEHZWRYIWSYJW
    OYGWQYHYJWNYFCFAYEBFTOAYEWPFTVJVNYEBCYEDEZJYEEZYDYKYLIKDEZJKEZIAKYJWKYKYCYL
    AYEDVQAYEJVRVSKYEHYMYKYNYLKYEDVQKYEJVRVSYMYNVTWAWBWCZWDYKYLYOWEWFWGVHWHWIWJ
    $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( The ordinal exponential with a limit ordinal is a limit ordinal.
       (Contributed by Mario Carneiro, 29-May-2015.) $)
    oelimcl $p |- ( ( A e. ( On \ 2o ) /\ ( B e. C /\ Lim B ) ) ->
               Lim ( A ^o B ) ) $=
      ( vx vy con0 c2o cdif wcel wlim wa coe co word c0 cv syl adantr syl2anc
      wi csuc wral eldifi limelon oecl syl2an eloni adantl dif20el syl21anc c1o
      oen0 ciun wceq oelim2 sylan eleq2d wrex wss simprl onelon simprr ordsucss
      eliun sylc simpll oeordi mpd suceloni mp2and expr sylan2 rexlimdva syl5bi
      ontr2 sylbid ralrimiv dflim4 syl3anbrc ) AFGHIZBCIBJKZKZABLMZNZOWCIZDPZUA
      ZWCIZDWCUBWCJWBWCFIZWDVTAFIZBFIZWIWAAFGUCZBCUDZABUEUFZWCUGQWBWJWKOAIZWEVT
      WJWAWLRZWAWKVTWMUHZVTWOWAAUIRABULUJWBWHDWCWBWFWCIWFEBUKHZAEPZLMZUMZIZWHWB
      WCXAWFVTWJWAWCXAUNWLEABCUOUPUQXBWFWTIZEWRURWBWHEWFWRWTVDWBXCWHEWRWSWRIWBW
      SBIZXCWHTWSBUKUCWBXDXCWHWBXDXCKZKZWGWTUSZWTWCIZWHXFWTNZXCXGXFWTFIZXIXFWJW
      SFIZXJWBWJXEWPRXFWKXDXKWBWKXEWQRZWBXDXCUTZBWSVASAWSUESZWTUGQWBXDXCVBZWFWT
      VCVEXFXDXHXMXFWKVTXDXHTXLVTWAXEVFWSBAVGSVHXFWGFIZWIXGXHKWHTXFWFFIZXPXFXJX
      CXQXNXOWTWFVASWFVIQWBWIXEWNRWGWTWCVOSVJVKVLVMVNVPVQDWCVRVS $.
  $}

  ${
    $d a d e w x y z A $.  $d a d e w x y z B $.  $d a d e D $.  $d a d e E $.
    $d a d e w y z X $.
    oeeu.1 $e |- X = U. |^| { x e. On | B e. ( A ^o x ) } $.
    $( Lemma for ~ oeeu .  (Contributed by Mario Carneiro, 28-Feb-2013.) $)
    oeeulem $p |- ( ( A e. ( On \ 2o ) /\ B e. ( On \ 1o ) ) -> ( X e. On /\
        ( A ^o X ) C_ B /\ B e. ( A ^o suc X ) ) ) $=
      ( vy con0 wcel c1o wa coe co wss syl wceq oveq2 eleq2d wn c0 simprbi cdif
      c2o csuc crab cint cuni wrex eldifi adantl suceloni oeworde syldan sucidg
      cv sseldd rspcev syl2anc onintrab2 sylib onuni syl5eqel wlim wo wne dif1o
      ssrab2 rabn0 sylibr onint sylancr eleq1 syl5ibcom elrab adantr oe0 syl6bb
      el1o syl5ib syld necon3ad mpd ciun limuni syl6eqr eqeltrrd cbvrabv elrab2
      ad2antrr wb limeq ibi anim12i dif20el oelim syl21anc eleqtrd eliun sselda
      onss biimpar onnminsb sylc nrexdv pm2.65da ioran sylanbrc word eloni 3syl
      unizlim mtbird orduniorsuc ord suceq syl6reqr inteqi syl6eleq oecl ontri1
      ax-mp mpbird eqeltrd 3jca ) BGUBUAHZCGIUAHZJZDGHZBDKLZCMZCBDUCZKLZHZYFDCB
      AUNZKLZHZAGUDZUEZUFZGEYFYQGHZYRGHYFYOAGUGZYSYFCUCZGHZCBUUAKLZHZYTYFCGHZUU
      BYEUUEYDCGIUHUIZCUJNZYFUUAUUCCYDYEUUBUUAUUCMUUGBUUAUKULYFUUECUUAHUUFCGUMN
      UOYOUUDAUUAGYMUUAOYNUUCCYMUUABKPQUPUQZYOAURUSZYQUTNVAZYFYICYHHZRZYFYGDCBF
      UNZKLZHZFGUDZUEZHUULUUJYFDYQUUQYFDYJYQYFYGDYJHUUJDGUMNYFYQYRUCZYJYFYQYROZ
      RYQUUROZYFUUSYQSOZYQVBZVCZYFUVARZUVBRUVCRYFCSVDZUVDYEUVEYDYEUUEUVECGVETUI
      YFUVACSYFUVASYPHZCSOZYFYQYPHZUVAUVFYFYPGMYPSVDZUVHYOAGVFYFYTUVIUUHYOAGVGV
      HYPVIVJZYQSYPVKVLUVFCBSKLZHZYFUVGUVFSGHUVLYOUVLASGYMSOYNUVKCYMSBKPQVMTYFU
      VLCIHUVGYFUVKICYFBGHZUVKIOYDUVMYEBGUBUHZVNZBVONQCVQVPVRVSVTWAYFUVBUUOFDUG
      ZYFUVBJZCFDUUNWBZHUVPUVQCYHUVRUVQDYPHZUUKUVQYQDYPUVBYQDOZYFUVBYQYRDYQWCEW
      DZUIZYFUVHUVBUVJVNWEUVSYGUUKUUOUUKFDGYPUUMDOUUNYHCUUMDBKPQZYOUUOAFGYMUUMO
      YNUUNCYMUUMBKPQZWFZWGTNUVQUVMYGDVBZJSBHZYHUVROYDUVMYEUVBUVNWHYFYGUVBUWFUU
      JUVBUWFUVBUVTUVBUWFWIUWAYQDWJNWKWLYDUWGYEUVBBWMWHFBDGWNWOWPFCDUUNWQUSUVQU
      UOFDUVQUUMDHZJUUMGHUUMYQHZUUORUVQDGUUMUVQYGDGMYFYGUVBUUJVNDWSNWRUVQUWIUWH
      UVQYQDUUMUWBQWTYOUUOAUUMUWDXAXBXCXDUVAUVBXEXFYFYSYQXGZUUSUVCWIUUIYQXHZYQX
      JXIXKYFUUSUUTYFYSUWJUUSUUTVCUUIUWKYQXLXIXMWADYROYJUUROEDYRXNXTXOZWPYPUUPU
      WEXPXQUUOUUKFDUWCXAXBYFYHGHZUUEYIUULWIYFUVMYGUWMUVOUUJBDXRUQUUFYHCXSUQYAY
      FYJYPHZYLYFYJYQYPUWLUVJYBUWNYJGHYLUUOYLFYJGYPUUMYJOUUNYKCUUMYJBKPQUWEWGTN
      YC $.

    oeeu.2 $e |- P = ( iota w E. y e. On E. z e. ( A ^o X )
      ( w = <. y , z >. /\ ( ( ( A ^o X ) .o y ) +o z ) = B ) ) $.
    oeeu.3 $e |- Y = ( 1st ` P ) $.
    oeeu.4 $e |- Z = ( 2nd ` P ) $.
    $( The division algorithm for ordinal exponentiation.  (This version of
       ~ oeeu gives an explicit expression for the unique solution of the
       equation, in terms of the solution ` P ` to ~ omeu .)  (Contributed by
       Mario Carneiro, 25-May-2015.) $)
    oeeui $p |- ( ( A e. ( On \ 2o ) /\ B e. ( On \ 1o ) ) ->
        ( ( ( C e. On /\ D e. ( A \ 1o ) /\ E e. ( A ^o C ) ) /\
          ( ( ( A ^o C ) .o D ) +o E ) = B ) <->
          ( C = X /\ D = Y /\ E = Z ) ) ) $=
      ( con0 wcel co va vd ve c2o cdif c1o wa coe comu coa wceq w3a wb wss csuc
      eldifi adantr ad2antrr simprl oecl syl2anc om1 syl c0 csn df1o2 wne dif1o
      simprbi ad2antll onelon on0eln0 mpbird snssd syl5eqss 1on omwordi syl3anc
      wi a1i eqsstr3d omcl simplrl oaword1 simplrr sseqtrd sstrd oeeulem simp3d
      mpd simp1d suceloni ontr2 mp2and simplll oeord simp2d word eloni ordsucss
      onsssuc sylc dif20el syl21anc omword syl31anc mpbid oaord eqeltrrd oa1suc
      oen0 odi oveq2d 3eqtr3d eleqtrrd sseldd oesuc ad2antrl jca eqeltrd simprr
      eqssd suceq eqtr3d eleqtrd omord2 wn oveq1d oveq2 eleq1d 3anass eqeq1d cv
      eqsstrd cop wrex cio weq eqeq2d anbi12d adantl ontri1 om0 oa0r syl5ibrcom
      eqtrd sylibd necon3bd sylanbrc impbida ex pm5.32rd syl6bb eleq2d 3anbi23d
      anass syl5bbr ne0i omeu opeq1 opeq2 cbvrex2v eqeq1 anbi1d 2rexbidv syl5bb
      weu cbviotav eqtri opiota sylan9bbr pm5.32da bitrd 3an4anass 3bitr4g ) ER
      UDUESZFRUFUESZUGZGRSZHEUFUESZUGZJEGUHTZSZUWBHUITZJUJTZFUKZUGZUGZGKUKZHLUK
      ZJMUKZUGZUGZUVSUVTUWCULUWFUGUWIUWJUWKULUVRUWHUWIHRSZUWGUGZUGZUWMUVRUWHUWI
      UWNUGZUWGUGUWPUVRUWGUWAUWQUVRUWGUWAUWQUMUVRUWGUGZUWAUWQUWRUWAUGZUWIUWNUWS
      GKUWSGKUNZGKUOZSZUWSUXBUWBEUXAUHTZSZUWSUWBFUNZFUXCSZUXDUWSUWBUWDFUWSUWBUW
      BUFUITZUWDUWSUWBRSZUXGUWBUKUWSERSZUVSUXHUVRUXIUWGUWAUVPUXIUVQERUDUPUQZURZ
      UWRUVSUVTUSZEGUTZVAZUWBVBVCZUWSUFHUNZUXGUWDUNZUWSUFVDVEHVFUWSVDHUWSVDHSZH
      VDVGZUVTUXSUWRUVSUVTHESZUXSHEVHZVIVJUWSUWNUXRUXSUMUWSUXIUXTUWNUXKUVTUXTUW
      RUVSHEUFUPVJZEHVKVAZHVLVCVMVNVOUWSUFRSZUWNUXHUXPUXQVSUYDUWSVPVTZUYCUXNUFH
      UWBVQVRWJWAUWSUWDUWEFUWSUWDRSZJRSZUWDUWEUNZUWSUXHUWNUYFUXNUYCUWBHWBZVAZUW
      SUXHUWCUYGUXNUVRUWCUWFUWAWCZUWBJVKZVAZUWDJWDZVAUVRUWCUWFUWAWEZWFWGUVRUXFU
      WGUWAUVRKRSZEKUHTZFUNZUXFAEFKNWHZWIZURUWSUXHUXCRSZUXEUXFUGUXDVSUXNUWSUXIU
      XARSZVUAUXKUWSUYPVUBUVRUYPUWGUWAUVRUYPUYRUXFUYSWKZURZKWLVCZEUXAUTVAUWBFUX
      CWMVAWNUWSUVSVUBUVPUXBUXDUMUXLVUEUVPUVQUWGUWAWOZGUXAEWPVRVMUWSUVSUYPUWTUX
      BUMUXLVUDGKXAVAVMUWSKGUNZKGUOZSZUWSVUIUYQEVUHUHTZSZUWSUYRFVUJSZVUKUVRUYRU
      WGUWAUVRUYPUYRUXFUYSWQZURUWSFUWBEUITZVUJUWSUWBHUOZUITZVUNFUWSVUOEUNZVUPVU
      NUNZUWSEWRZUXTVUQUWSUXIVUSUXKEWSVCUYBHEWTXBUWSVUORSZUXIUXHVDUWBSZVUQVURUM
      UWSUWNVUTUYCHWLVCUXKUXNUWSUXIUVSVDESZVVAUXKUXLUWSUVPVVBVUFEXCZVCEGXKZXDVU
      OEUWBXEXFXGUWSFUWDUWBUJTZVUPUWSUWEFVVEUYOUWSUWCUWEVVESZUYKUWSUYGUXHUYFUWC
      VVFUMUYMUXNUYJJUWBUWDXHVRXGXIUWSUWBHUFUJTZUITZUWDUXGUJTZVUPVVEUWSUXHUWNUY
      DVVHVVIUKUXNUYCUYEUWBHUFXLVRUWSVVGVUOUWBUIUWSUWNVVGVUOUKUYCHXJVCXMUWSUXGU
      WBUWDUJUXOXMXNXOXPUWSUXIUVSVUJVUNUKZUXKUXLEGXQZVAXOUWSUYQRSZVUJRSZUYRVULU
      GVUKVSUWSUXIUYPVVLUXKVUDEKUTZVAUWSUXIVUHRSZVVMUXKUVSVVOUWRUVTGWLXRZEVUHUT
      VAUYQFVUJWMVAWNUWSUYPVVOUVPVUIVUKUMVUDVVPVUFKVUHEWPVRVMUWSUYPUVSVUGVUIUMV
      UDUXLKGXAVAVMYBUYCXSUWRUWQUGZUVSUVTVVQGKRUWRUWIUWNUSZUVRUYPUWGUWQVUCURXTZ
      VVQUXTUXSUVTVVQUXTUWDVUNSZVVQUWDFUNZFVUNSZVVTVVQUWDUWEFVVQUYFUYGUYHVVQUXH
      UWNUYFVVQUXIUVSUXHUVRUXIUWGUWQUXJURZVVSUXMVAZUWRUWIUWNYAZUYIVAZVVQUXHUWCU
      YGVWDUVRUWCUWFUWQWCZUYLVAZUYNVAUVRUWCUWFUWQWEZWFVVQFUXCVUNUVRUXFUWGUWQUYT
      URVVQVUJUXCVUNVVQVUHUXAEUHUWIVUHUXAUKUWRUWNGKYCXRXMVVQUXIUVSVVJVWCVVSVVKV
      AYDYEVVQUYFVUNRSZVWAVWBUGVVTVSVWFVVQUXHUXIVWJVWDVWCUWBEWBVAUWDFVUNWMVAWNV
      VQUWNUXIUXHVVAUXTVVTUMVWEVWCVWDVVQUXIUVSVVBVVAVWCVVSUVRVVBUWGUWQUVPVVBUVQ
      VVCUQZURVVDXDHEUWBYFXFVMVVQFUWBSZYGZUXSVVQUXEVWMVVQUWBUYQFVVQGKEUHVVRXMUV
      RUYRUWGUWQVUMURYNVVQUXHFRSZUXEVWMUMVWDUVRVWNUWGUWQUVQVWNUVPFRUFUPUUAZURUW
      BFUUBVAXGVVQVWLHVDVVQHVDUKZUWEUWBSZVWLVVQVWQVWPUWBVDUITZJUJTZUWBSVVQVWSJU
      WBVVQVWSVDJUJTZJVVQVWRVDJUJVVQUXHVWRVDUKVWDUWBUUCVCYHVVQUYGVWTJUKVWHJUUDV
      CUUFVWGXTVWPUWEVWSUWBVWPUWDVWRJUJHVDUWBUIYIYHYJUUEVVQUWEFUWBVWIYJUUGUUHWJ
      UYAUUIXSUUJUUKUULUWIUWNUWGUUPUUMUVRUWIUWOUWLUWIUWOUWNJUYQSZUYQHUITZJUJTZF
      UKZULZUVRUWLUWOUWNUWCUWFULUWIVXEUWNUWCUWFYKUWIUWCVXAUWFVXDUWNUWIUWBUYQJGK
      EUHYIZUUNUWIUWEVXCFUWIUWDVXBJUJUWIUWBUYQHUIVXFYHYHYLUUOUUQUVRVVLVWNUYQVDV
      GZVXEUWLUMZUVRUXIUYPVVLUXJVUCVVNVAVWOUVRVDUYQSZVXGUVRUXIUYPVVBVXIUXJVUCVW
      KEKXKXDUYQVDUURVCVVLVWNVXGULUAYMZUBYMZUCYMZYOZUKZUYQVXKUITZVXLUJTZFUKZUGZ
      UCUYQYPUBRYPZUAUVGVXHUBUCUAUYQFUUSVXQVXBVXLUJTZFUKVXDUBUCUARUYQHJILMIDYMZ
      BYMZCYMZYOZUKZUYQVYBUITZVYCUJTZFUKZUGZCUYQYPBRYPZDYQVXSUAYQOVYJVXSDUAVYJV
      YAVXMUKZVXQUGZUCUYQYPUBRYPDUAYRZVXSVYIVYLVYAVXKVYCYOZUKZVXOVYCUJTZFUKZUGB
      CUBUCRUYQBUBYRZVYEVYOVYHVYQVYRVYDVYNVYAVYBVXKVYCUUTYSVYRVYGVYPFVYRVYFVXOV
      YCUJVYBVXKUYQUIYIYHYLYTCUCYRZVYOVYKVYQVXQVYSVYNVXMVYAVYCVXLVXKUVAYSVYSVYP
      VXPFVYCVXLVXOUJYIYLYTUVBVYMVYLVXRUBUCRUYQVYMVYKVXNVXQVYAVXJVXMUVCUVDUVEUV
      FUVHUVIPQVXKHUKZVXPVXTFVYTVXOVXBVXLUJVXKHUYQUIYIYHYLVXLJUKVXTVXCFVXLJVXBU
      JYIYLUVJVCVRUVKUVLUVMUVSUVTUWCUWFUVNUWIUWJUWKYKUVO $.
  $}

  ${
    $d a b c d w x y z A $.  $d a b c d w x y z B $.
    $( The division algorithm for ordinal exponentiation.  (Contributed by
       Mario Carneiro, 25-May-2015.) $)
    oeeu $p |- ( ( A e. ( On \ 2o ) /\ B e. ( On \ 1o ) ) ->
        E! w E. x e. On E. y e. ( A \ 1o ) E. z e. ( A ^o x )
          ( w = <. x , y , z >. /\ ( ( ( A ^o x ) .o y ) +o z ) = B ) ) $=
      ( va vd vb vc con0 wcel wa cv wceq coe co wex wrex eqid c2o cdif c1o cotp
      w3a comu coa weu crab cint cuni cop cio c1st cfv c2nd cvv wss csuc simp1d
      oeeulem elex syl fvexd oeeui euotd df-3an ancom bitri anbi1i anbi2i anass
      an12 3bitri exbii df-rex r19.42v 3bitr2i 2exbii r2ex bitr4i eubii sylib )
      EKUAUBLFKUCUBLMZDNANZBNZCNZUDOZWEKLZWFEUCUBZLZWGEWEPQZLZUEZWLWFUFQWGUGQFO
      ZMZMZCRZBRARZDUHWHWOMZCWLSZBWJSAKSZDUHWDWPDFEGNPQLGKUIUJUKZHNINZJNZULOEXC
      PQZXDUFQXEUGQFOMJXFSIKSHUMZUNUOZXGUPUOZABCWDXCKLZXCUQLWDXJXFFURFEXCUSPQLG
      EFXCXCTZVAUTXCKVBVCWDXGUNVDWDXGUPVDGIJHEFWEWFXGWGXCXHXIXKXGTXHTXITVEVFWSX
      BDWSWIWKMZXAMZBRARXBWRXMABWRWMXLWTMZMZCRXNCWLSXMWQXOCWQWHWMXLMZWOMZMXPWTM
      XOWPXQWHWNXPWOWNXLWMMXPWIWKWMVGXLWMVHVIVJVKWHXPWOVMWMXLWTVLVNVOXNCWLVPXLW
      TCWLVQVRVSXAABKWJVTWAWBWC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Natural number arithmetic
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Addition with zero.  Theorem 4I(A1) of [Enderton] p. 79.  (Contributed by
     NM, 20-Sep-1995.) $)
  nna0 $p |- ( A e. _om -> ( A +o (/) ) = A ) $=
    ( com wcel con0 c0 coa co wceq nnon oa0 syl ) ABCADCAEFGAHAIAJK $.

  $( Multiplication with zero.  Theorem 4J(A1) of [Enderton] p. 80.
     (Contributed by NM, 20-Sep-1995.) $)
  nnm0 $p |- ( A e. _om -> ( A .o (/) ) = (/) ) $=
    ( com wcel con0 c0 comu co wceq nnon om0 syl ) ABCADCAEFGEHAIAJK $.

  $( Addition with successor.  Theorem 4I(A2) of [Enderton] p. 79.
     (Contributed by NM, 20-Sep-1995.)  (Revised by Mario Carneiro,
     14-Nov-2014.) $)
  nnasuc $p |- ( ( A e. _om /\ B e. _om ) ->
                ( A +o suc B ) = suc ( A +o B ) ) $=
    ( com wcel con0 csuc coa co wceq nnon onasuc sylan ) ACDAEDBCDABFGHABGHFIAJ
    ABKL $.

  $( Multiplication with successor.  Theorem 4J(A2) of [Enderton] p. 80.
     (Contributed by NM, 20-Sep-1995.)  (Revised by Mario Carneiro,
     14-Nov-2014.) $)
  nnmsuc $p |- ( ( A e. _om /\ B e. _om ) ->
                ( A .o suc B ) = ( ( A .o B ) +o A ) ) $=
    ( com wcel con0 csuc comu co coa wceq nnon onmsuc sylan ) ACDAEDBCDABFGHABG
    HAIHJAKABLM $.

  $( Exponentiation with a successor exponent.  Definition 8.30 of
     [TakeutiZaring] p. 67.  (Contributed by Mario Carneiro, 14-Nov-2014.) $)
  nnesuc $p |- ( ( A e. _om /\ B e. _om ) ->
              ( A ^o suc B ) = ( ( A ^o B ) .o A ) ) $=
    ( com wcel con0 csuc coe co comu wceq nnon onesuc sylan ) ACDAEDBCDABFGHABG
    HAIHJAKABLM $.

  ${
    $d x y A $.  $d x B $.
    $( Addition to zero.  Remark in proof of Theorem 4K(2) of [Enderton] p. 81.
       Note:  In this and later theorems, we deliberately avoid the more
       general ordinal versions of these theorems (in this case ~ oa0r ) so
       that we can avoid ~ ax-rep , which is not needed for finite recursive
       definitions.  (Contributed by NM, 20-Sep-1995.)  (Revised by Mario
       Carneiro, 14-Nov-2014.) $)
    nna0r $p |- ( A e. _om -> ( (/) +o A ) = A ) $=
      ( vx vy c0 cv coa co wceq csuc oveq2 id eqeq12d con0 wcel 0elon oa0 ax-mp
      com peano1 nnasuc mpan suceq eqeq2d syl5ibcom finds ) DBEZFGZUFHDDFGZDHZD
      CEZFGZUJHZDUJIZFGZUMHZDAFGZAHBCAUFDHZUGUHUFDUFDDFJUQKLUFUJHZUGUKUFUJUFUJD
      FJURKLUFUMHZUGUNUFUMUFUMDFJUSKLUFAHZUGUPUFAUFADFJUTKLDMNUIODPQUJRNZUNUKIZ
      HZULUODRNVAVCSDUJTUAULVBUMUNUKUJUBUCUDUE $.

    $( Multiplication with zero.  Exercise 16 of [Enderton] p. 82.
       (Contributed by NM, 20-Sep-1995.)  (Revised by Mario Carneiro,
       15-Nov-2014.) $)
    nnm0r $p |- ( A e. _om -> ( (/) .o A ) = (/) ) $=
      ( vx vy c0 cv comu co wceq csuc oveq2 eqeq1d om0x com wcel coa oveq1 con0
      0elon oa0 ax-mp syl6eq peano1 nnmsuc mpan syl5ibr finds ) DBEZFGZDHDDFGZD
      HDCEZFGZDHZDUJIZFGZDHZDAFGZDHBCAUGDHUHUIDUGDDFJKUGUJHUHUKDUGUJDFJKUGUMHUH
      UNDUGUMDFJKUGAHUHUPDUGADFJKDLULUOUJMNZUKDOGZDHULURDDOGZDUKDDOPDQNUSDHRDST
      UAUQUNURDDMNUQUNURHUBDUJUCUDKUEUF $.

    $( Closure of addition of natural numbers.  Proposition 8.9 of
       [TakeutiZaring] p. 59.  (Contributed by NM, 20-Sep-1995.)  (Proof
       shortened by Andrew Salmon, 22-Oct-2011.) $)
    nnacl $p |- ( ( A e. _om /\ B e. _om ) -> ( A +o B ) e. _om ) $=
      ( vx vy com wcel coa co cv wceq oveq2 eleq1d imbi2d csuc nna0 ibir peano2
      wi c0 wa nnasuc syl5ibr expcom finds2 vtoclga impcom ) BEFAEFZABGHZEFZUGA
      CIZGHZEFZRUGUIRCBEUJBJZULUIUGUMUKUHEUJBAGKLMULASGHZEFZADIZGHZEFZAUPNZGHZE
      FZUGCDUJSJUKUNEUJSAGKLUJUPJUKUQEUJUPAGKLUJUSJUKUTEUJUSAGKLUGUOUGUNAEAOLPU
      GUPEFZURVARURVAUGVBTZUQNZEFUQQVCUTVDEAUPUALUBUCUDUEUF $.

    $( Closure of multiplication of natural numbers.  Proposition 8.17 of
       [TakeutiZaring] p. 63.  (Contributed by NM, 20-Sep-1995.)  (Proof
       shortened by Andrew Salmon, 22-Oct-2011.) $)
    nnmcl $p |- ( ( A e. _om /\ B e. _om ) -> ( A .o B ) e. _om ) $=
      ( vx vy wcel comu co cv wi wceq oveq2 eleq1d imbi2d c0 csuc nnm0 syl6eqel
      com peano1 expcom coa nnacl adantr nnmsuc sylibrd finds2 vtoclga impcom
      wa ) BREAREZABFGZREZUJACHZFGZREZIUJULICBRUMBJZUOULUJUPUNUKRUMBAFKLMUOANFG
      ZREADHZFGZREZAUROZFGZREZUJCDUMNJUNUQRUMNAFKLUMURJUNUSRUMURAFKLUMVAJUNVBRU
      MVAAFKLUJUQNRAPSQUJURREZUTVCIUJVDUIZUTUSAUAGZREZVCUJUTVGIVDUTUJVGUSAUBTUC
      VEVBVFRAURUDLUETUFUGUH $.

    $( Closure of exponentiation of natural numbers.  Proposition 8.17 of
       [TakeutiZaring] p. 63.  (Contributed by NM, 24-Mar-2007.)  (Proof
       shortened by Andrew Salmon, 22-Oct-2011.) $)
    nnecl $p |- ( ( A e. _om /\ B e. _om ) -> ( A ^o B ) e. _om ) $=
      ( vx vy com wcel coe co cv wi wceq oveq2 eleq1d imbi2d csuc c1o con0 nnon
      c0 expcom oe0 syl df-1o peano1 peano2 ax-mp eqeltri syl6eqel nnmcl adantr
      wa comu nnesuc sylibrd finds2 vtoclga impcom ) BEFAEFZABGHZEFZURACIZGHZEF
      ZJURUTJCBEVABKZVCUTURVDVBUSEVABAGLMNVCASGHZEFADIZGHZEFZAVFOZGHZEFZURCDVAS
      KVBVEEVASAGLMVAVFKVBVGEVAVFAGLMVAVIKVBVJEVAVIAGLMURVEPEURAQFVEPKARAUAUBPS
      OZEUCSEFVLEFUDSUEUFUGUHURVFEFZVHVKJURVMUKZVHVGAULHZEFZVKURVHVPJVMVHURVPVG
      AUITUJVNVJVOEAVFUMMUNTUOUPUQ $.
  $}

  ${
    nncli.1 $e |- A e. _om $.
    nncli.2 $e |- B e. _om $.
    $( ` _om ` is closed under addition.  Inference form of ~ nnacl .
       (Contributed by Scott Fenton, 20-Apr-2012.) $)
    nnacli $p |- ( A +o B ) e. _om $=
      ( com wcel coa co nnacl mp2an ) AEFBEFABGHEFCDABIJ $.

    $( ` _om ` is closed under multiplication.  Inference form of ~ nnmcl .
       (Contributed by Scott Fenton, 20-Apr-2012.) $)
    nnmcli $p |- ( A .o B ) e. _om $=
      ( com wcel comu co nnmcl mp2an ) AEFBEFABGHEFCDABIJ $.
  $}

  $( Reverse closure law for addition of natural numbers.  Exercise 1 of
     [TakeutiZaring] p. 62 and its converse.  (Contributed by NM,
     12-Dec-2004.) $)
  nnarcl $p |- ( ( A e. On /\ B e. On ) ->
               ( ( A +o B ) e. _om <-> ( A e. _om /\ B e. _om ) ) ) $=
    ( con0 wcel wa coa co com wi oaword1 word eloni ordom ordtr2 sylancl adantr
    wss expd mpd oaword2 ancoms adantl jcad nnacl impbid1 ) ACDZBCDZEZABFGZHDZA
    HDZBHDZEUHUJUKULUHAUIQZUJUKIZABJUFUMUNIUGUFUMUJUKUFAKHKZUMUJEUKIALMAUIHNORP
    SUHBUIQZUJULIZUGUFUPBATUAUGUPUQIUFUGUPUJULUGBKUOUPUJEULIBLMBUIHNORUBSUCABUD
    UE $.

  ${
    $d x y A $.  $d x y z B $.  $d x y z C $.
    $( Addition of natural numbers is commutative.  Theorem 4K(2) of [Enderton]
       p. 81.  (Contributed by NM, 6-May-1995.)  (Revised by Mario Carneiro,
       15-Nov-2014.) $)
    nnacom $p |- ( ( A e. _om /\ B e. _om ) -> ( A +o B ) = ( B +o A ) ) $=
      ( vx vy com wcel coa co wceq cv wi oveq1 oveq2 eqeq12d c0 csuc nna0 suceq
      syl nnasuc vz imbi2d nna0r eqtr4d wa peano2 syl5ibr expcom finds2 vtoclga
      sylan imp ) AEFBEFZABGHZBAGHZIZUMCJZBGHZBUQGHZIZKUMUPKCAEUQAIZUTUPUMVAURU
      NUSUOUQABGLUQABGMNUBUTOBGHZBOGHZIDJZBGHZBVDGHZIZVDPZBGHZBVHGHZIZUMCDUQOIZ
      URVBUSVCUQOBGLUQOBGMNUQVDIURVEUSVFUQVDBGLUQVDBGMNUQVHIURVIUSVJUQVHBGLUQVH
      BGMNUMVBBVCBUCBQUDUMVDEFZVGVKKVGVKUMVMUEZVEPZVFPZIVEVFRVNVIVOVJVPUMVMVIVO
      IZVMVHUQGHZVDUQGHZPZIZKVMVQKCBEUQBIZWAVQVMWBVRVIVTVOUQBVHGMWBVSVEIVTVOIUQ
      BVDGMVSVERSNUBWAVHOGHZVDOGHZPZIVHUAJZGHZVDWFGHZPZIZVHWFPZGHZVDWKGHZPZIZVM
      CUAVLVRWCVTWEUQOVHGMVLVSWDIVTWEIUQOVDGMVSWDRSNUQWFIZVRWGVTWIUQWFVHGMWPVSW
      HIVTWIIUQWFVDGMVSWHRSNUQWKIZVRWLVTWNUQWKVHGMWQVSWMIVTWNIUQWKVDGMVSWMRSNVM
      WCVHWEVMVHEFZWCVHIVDUFZVHQSVMWDVDIWEVHIVDQWDVDRSUDVMWFEFZWJWOKWJWOVMWTUEZ
      WGPZWIPZIWGWIRXAWLXBWNXCVMWRWTWLXBIWSVHWFTUKXAWMWIIWNXCIVDWFTWMWIRSNUGUHU
      IUJULBVDTNUGUHUIUJUL $.

    $( Ordering property of addition.  Proposition 8.4 of [TakeutiZaring]
       p. 58, limited to natural numbers.  (Contributed by NM, 3-Feb-1996.)
       (Revised by Mario Carneiro, 15-Nov-2014.) $)
    nnaordi $p |- ( ( B e. _om /\ C e. _om ) ->
                 ( A e. B -> ( C +o A ) e. ( C +o B ) ) ) $=
      ( vx vy com wcel coa co wi wa ancoms csuc wss cv wceq oveq2 sseq2d imbi2d
      nnasuc elnn adantll word nnord ordsucss syl ad2antlr peano2b ssid sssucid
      2a1i sstr2 mpi syl5ibr ex ad2antrr findsg exp31 syl5bi com4r imp31 sseq1d
      a2d cvv ovex sucssel ax-mp syl6bi adantlr 3syld imp an32s mpdan ) CFGZBFG
      ZABGZCAHIZCBHIZGZJVNVOKZVPVSVTVPKAFGZVSVOVPWAVNVPVOWAABUALUBVTWAVPVSVTWAK
      ZVPVSWBVPAMZBNZCWCHIZVRNZVSVOVPWDJZVNWAVOBUCWGBUDABUEUFUGVNVOWAWDWFJVOWAW
      DVNWFWAWCFGZVOWDVNWFJZJAUHVOWHWDWIVNWECDOZHIZNZJVNWEWENZJVNWECEOZHIZNZJVN
      WECWNMZHIZNZJWIDEBWCWJWCPZWLWMVNWTWKWEWEWJWCCHQRSWJWNPZWLWPVNXAWKWOWEWJWN
      CHQRSWJWQPZWLWSVNXBWKWRWEWJWQCHQRSWJBPZWLWFVNXCWKVRWEWJBCHQRSWMWHVNWEUIUK
      WNFGZWHKWCWNNZKVNWPWSXDVNWPWSJZJWHXEXDVNXFWPWSXDVNKZWEWOMZNZWPWOXHNXIWOUJ
      WEWOXHULUMXGWRXHWEVNXDWRXHPCWNTLRUNUOUPVCUQURUSUTVAVNWAWFVSJVOVNWAKZWFVQM
      ZVRNZVSXJWEXKVRCATVBVQVDGXLVSJCAHVEVQVRVDVFVGVHVIVJVKVLVMUOL $.
  $}

  $( Ordering property of addition.  Proposition 8.4 of [TakeutiZaring] p. 58,
     limited to natural numbers, and its converse.  (Contributed by NM,
     7-Mar-1996.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
  nnaord $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                 ( A e. B <-> ( C +o A ) e. ( C +o B ) ) ) $=
    ( com wcel coa co wi nnaordi wceq wo wn word wa nnacl nnord anim12i ordtri2
    wb syl w3a 3adant1 oveq2 a1i 3adant2 con3d df-3an ancom anandi 3bitri sylbi
    orim12d 3adant3 3imtr4d impbid ) ADEZBDEZCDEZUAZABEZCAFGZCBFGZEZUQURUTVCHUP
    ABCIUBUSVAVBJZVBVAEZKZLZABJZBAEZKZLZVCUTUSVJVFUSVHVDVIVEVHVDHUSABCFUCUDUPUR
    VIVEHUQBACIUEULUFUSVAMZVBMZNZVCVGSUSURUPNZURUQNZNZVNUSUPUQNZURNURVRNVQUPUQU
    RUGVRURUHURUPUQUIUJVOVLVPVMVOVADEVLCAOVAPTVPVBDEVMCBOVBPTQUKVAVBRTUSAMZBMZN
    ZUTVKSUPUQWAURUPVSUQVTAPBPQUMABRTUNUO $.

  $( Ordering property of addition of natural numbers.  (Contributed by NM,
     9-Nov-2002.) $)
  nnaordr $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                 ( A e. B <-> ( A +o C ) e. ( B +o C ) ) ) $=
    ( com wcel w3a coa nnaord wceq nnacom ancoms 3adant2 3adant1 eleq12d bitrd
    co ) ADEZBDEZCDEZFZABECAGPZCBGPZEACGPZBCGPZEABCHTUAUCUBUDQSUAUCIZRSQUECAJKL
    RSUBUDIZQSRUFCBJKMNO $.

  ${
    $d A x y $.  $d B x y $.  $d C x y $.
    $( Adding to both sides of an inequality in ` _om ` .  (Contributed by
       Scott Fenton, 16-Apr-2012.)  (Revised by Mario Carneiro,
       12-May-2012.) $)
    nnawordi $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
             ( A C_ B -> ( A +o C ) C_ ( B +o C ) ) ) $=
      ( vx vy com wcel wss coa co wi wa c0 wceq sseq12d imbi2d con0 nnon ancoms
      oveq2 cv csuc weq oa0 adantr adantl biimprd syl2an wb nnacl adantrr eloni
      word adantrl ordsucsssuc syl2anc biimpa nnasuc mpbird ex imim2d a2d finds
      3syl com12 3impia ) AFGZBFGZCFGZABHZACIJZBCIJZHZKZVIVGVHLZVNVOVJADUAZIJZB
      VPIJZHZKZKVOVJAMIJZBMIJZHZKZKVOVJAEUAZIJZBWEIJZHZKZKVOVJAWEUBZIJZBWJIJZHZ
      KZKVOVNKDECVPMNZVTWDVOWOVSWCVJWOVQWAVRWBVPMAITVPMBITOPPDEUCZVTWIVOWPVSWHV
      JWPVQWFVRWGVPWEAITVPWEBITOPPVPWJNZVTWNVOWQVSWMVJWQVQWKVRWLVPWJAITVPWJBITO
      PPVPCNZVTVNVOWRVSVMVJWRVQVKVRVLVPCAITVPCBITOPPVGAQGZBQGZWDVHARBRWSWTLZWCV
      JXAWAAWBBWSWAANWTAUDUEWTWBBNWSBUDUFOUGUHWEFGZVOWIWNXBVOWIWNKXBVOLZWHWMVJX
      CWHWMXCWHLWMWFUBZWGUBZHZXCWHXFXCWFUMZWGUMZWHXFUIXCWFFGZWFQGXGXBVGXIVHVGXB
      XIAWEUJSUKWFRWFULVDXCWGFGZWGQGXHXBVHXJVGVHXBXJBWEUJSUNWGRWGULVDWFWGUOUPUQ
      XCWMXFUIWHXCWKXDWLXEXBVGWKXDNZVHVGXBXKAWEURSUKXBVHWLXENZVGVHXBXLBWEURSUNO
      UEUSUTVAUTVBVCVEVF $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x C $.
    $( Addition of natural numbers is associative.  Theorem 4K(1) of [Enderton]
       p. 81.  (Contributed by NM, 20-Sep-1995.)  (Revised by Mario Carneiro,
       15-Nov-2014.) $)
    nnaass $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                 ( ( A +o B ) +o C ) = ( A +o ( B +o C ) ) ) $=
      ( vx vy com wcel coa co wceq wa cv wi oveq2 oveq2d eqeq12d c0 csuc nnasuc
      nnacl imbi2d nna0 adantl eqtr4d suceq sylan sylan2 anassrs syl5ibr expcom
      syl eqtrd finds2 vtoclga com12 3impia ) AFGZBFGZCFGZABHIZCHIZABCHIZHIZJZU
      SUQURKZVDVEUTDLZHIZABVFHIZHIZJZMVEVDMDCFVFCJZVJVDVEVKVGVAVIVCVFCUTHNVKVHV
      BAHVFCBHNOPUAVJUTQHIZABQHIZHIZJUTELZHIZABVOHIZHIZJZUTVORZHIZABVTHIZHIZJZV
      EDEVFQJZVGVLVIVNVFQUTHNWEVHVMAHVFQBHNOPVFVOJZVGVPVIVRVFVOUTHNWFVHVQAHVFVO
      BHNOPVFVTJZVGWAVIWCVFVTUTHNWGVHWBAHVFVTBHNOPVEVLUTVNVEUTFGZVLUTJABTZUTUBU
      KURVNUTJUQURVMBAHBUBOUCUDVEVOFGZVSWDMVSWDVEWJKZVPRZVRRZJVPVRUEWKWAWLWCWMV
      EWHWJWAWLJWIUTVOSUFUQURWJWCWMJUQURWJKZKWCAVQRZHIZWMWNWCWPJUQWNWBWOAHBVOSO
      UCWNUQVQFGWPWMJBVOTAVQSUGULUHPUIUJUMUNUOUP $.

    $( Distributive law for natural numbers (left-distributivity).  Theorem
       4K(3) of [Enderton] p. 81.  (Contributed by NM, 20-Sep-1995.)  (Revised
       by Mario Carneiro, 15-Nov-2014.) $)
    nndi $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                 ( A .o ( B +o C ) ) = ( ( A .o B ) +o ( A .o C ) ) ) $=
      ( vx vy com wcel coa co comu wceq wa cv wi oveq2 oveq2d eqeq12d c0 eqtr4d
      csuc imbi2d nna0 adantl nnmcl syl nnm0 adantr oveq1 nnasuc 3adant1 nnmsuc
      w3a nnacl sylan2 3impb eqtrd 3adant2 nnaass syl3an1 syl3an2 exp4b pm2.43a
      3exp com4r pm2.43i 3imp syl5ibr com3r impd finds2 vtoclga expdcom ) AFGZB
      FGZCFGZABCHIZJIZABJIZACJIZHIZKZVOVMVNWAVMVNLZABDMZHIZJIZVRAWCJIZHIZKZNWBW
      ANDCFWCCKZWHWAWBWIWEVQWGVTWIWDVPAJWCCBHOPWIWFVSVRHWCCAJOPQUAWHABRHIZJIZVR
      ARJIZHIZKABEMZHIZJIZVRAWNJIZHIZKZABWNTZHIZJIZVRAWTJIZHIZKZWBDEWCRKZWEWKWG
      WMXFWDWJAJWCRBHOPXFWFWLVRHWCRAJOPQWCWNKZWEWPWGWRXGWDWOAJWCWNBHOPXGWFWQVRH
      WCWNAJOPQWCWTKZWEXBWGXDXHWDXAAJWCWTBHOPXHWFXCVRHWCWTAJOPQWBWKVRRHIZWMWBWK
      VRXIWBWJBAJVNWJBKVMBUBUCPWBVRFGZXIVRKABUDZVRUBUESWBWLRVRHVMWLRKVNAUFUGPSW
      NFGZVMVNWSXENZVMVNXLXMVMVNXLXMWSXEVMVNXLULZWPAHIZWRAHIZKWPWRAHUHXNXBXOXDX
      PXNXBAWOTZJIZXOXNXAXQAJVNXLXAXQKVMBWNUIUJPVMVNXLXRXOKZVNXLLVMWOFGXSBWNUMA
      WOUKUNUOUPXNXDVRWQAHIZHIZXPXNXCXTVRHVMXLXCXTKVNAWNUKUQPVMVNXLXPYAKZVMVNXL
      YBNNVMVNXLVMYBVNVMXLVMYBNZNVMVNVMXLYCWBVMXLLZVMYBYDWBWQFGZVMYBAWNUDWBXJYE
      VMYBXKVRWQAURUSUTVCVAVBVDVEVFSQVGVCVHVIVJVKVLVF $.

    $( Multiplication of natural numbers is associative.  Theorem 4K(4) of
       [Enderton] p. 81.  (Contributed by NM, 20-Sep-1995.)  (Revised by Mario
       Carneiro, 15-Nov-2014.) $)
    nnmass $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                 ( ( A .o B ) .o C ) = ( A .o ( B .o C ) ) ) $=
      ( vx vy com wcel comu co wceq wa cv wi oveq2 oveq2d eqeq12d c0 nnmcl nnm0
      coa imbi2d csuc syl sylan9eqr eqtr4d w3a oveq1 nnmsuc stoic3 3adant1 nndi
      syl3an2 3exp expd com34 pm2.43d 3imp eqtrd syl5ibr finds2 vtoclga expdcom
      com3r impd ) AFGZBFGZCFGZABHIZCHIZABCHIZHIZJZVGVEVFVLVEVFKZVHDLZHIZABVNHI
      ZHIZJZMVMVLMDCFVNCJZVRVLVMVSVOVIVQVKVNCVHHNVSVPVJAHVNCBHNOPUAVRVHQHIZABQH
      IZHIZJVHELZHIZABWCHIZHIZJZVHWCUBZHIZABWHHIZHIZJZVMDEVNQJZVOVTVQWBVNQVHHNW
      MVPWAAHVNQBHNOPVNWCJZVOWDVQWFVNWCVHHNWNVPWEAHVNWCBHNOPVNWHJZVOWIVQWKVNWHV
      HHNWOVPWJAHVNWHBHNOPVMVTQWBVMVHFGZVTQJABRZVHSUCVFVEWBAQHIQVFWAQAHBSOASUDU
      EWCFGZVEVFWGWLMZVEVFWRWSVEVFWRWSWGWLVEVFWRUFZWDVHTIZWFVHTIZJWDWFVHTUGWTWI
      XAWKXBVEVFWPWRWIXAJWQVHWCUHUIWTWKAWEBTIZHIZXBWTWJXCAHVFWRWJXCJVEBWCUHUJOV
      EVFWRXDXBJZVEVFWRXEMVEVFWRVFXEVEVFWRVFXEMVEVFWRKZVFXEXFVEWEFGVFXEBWCRAWEB
      UKULUMUNUOUPUQURPUSUMVCVDUTVAVBUQ $.

    $( Multiplication with successor.  Exercise 16 of [Enderton] p. 82.
       (Contributed by NM, 21-Sep-1995.)  (Proof shortened by Andrew Salmon,
       22-Oct-2011.) $)
    nnmsucr $p |- ( ( A e. _om /\ B e. _om ) ->
                  ( suc A .o B ) = ( ( A .o B ) +o B ) ) $=
      ( vx vy com wcel csuc comu co coa wceq cv wi oveq2 id oveq12d eqeq12d syl
      c0 eqtr4d imbi2d peano2 nnm0 peano1 nnmcl mpan2 nna0 oveq1 peano2b nnmsuc
      wa sylanb nnaass syl3an3b syl3an1 3expb anidms oveq1d an42s nnacom nnasuc
      suceq ancoms 3eqtr4d oveq2d syl5ibr expcom finds2 vtoclga impcom ) BEFAEF
      ZAGZBHIZABHIZBJIZKZVKVLCLZHIZAVQHIZVQJIZKZMVKVPMCBEVQBKZWAVPVKWBVRVMVTVOV
      QBVLHNWBVSVNVQBJVQBAHNWBOPQUAWAVLSHIZASHIZSJIZKVLDLZHIZAWFHIZWFJIZKZVLWFG
      ZHIZAWKHIZWKJIZKZVKCDVQSKZVRWCVTWEVQSVLHNWPVSWDVQSJVQSAHNWPOPQVQWFKZVRWGV
      TWIVQWFVLHNWQVSWHVQWFJVQWFAHNWQOPQVQWKKZVRWLVTWNVQWKVLHNWRVSWMVQWKJVQWKAH
      NWROPQVKWCWDWEVKWCSWDVKVLEFZWCSKAUBVLUCRAUCTVKWDEFZWEWDKVKSEFWTUDASUEUFWD
      UGRTVKWFEFZWJWOMWJWOVKXAUKZWGVLJIZWIVLJIZKWGWIVLJUHXBWLXCWNXDVKWSXAWLXCKA
      UIZVLWFUJULXBWHAJIZWKJIZWHAWKJIZJIZWNXDXBXGXIKZXBVKXAXJXBWHEFZVKXAXJAWFUE
      ZXAXKVKWKEFXJWFUIWHAWKUMUNUOUPUQXBWMXFWKJAWFUJURXBXDWHWFVLJIZJIZXIXBXDXNK
      ZVKXAXAVKXOXBXAVKXOXBXKXAVKXOXLVKXKXAWSXOXEWHWFVLUMUNUOUPUSUQXBXHXMWHJXBA
      WFJIZGZWFAJIZGZXHXMXBXPXRKXQXSKAWFUTXPXRVBRAWFVAXAVKXMXSKWFAVAVCVDVETVDQV
      FVGVHVIVJ $.

    $( Multiplication of natural numbers is commutative.  Theorem 4K(5) of
       [Enderton] p. 81.  (Contributed by NM, 21-Sep-1995.)  (Proof shortened
       by Andrew Salmon, 22-Oct-2011.) $)
    nnmcom $p |- ( ( A e. _om /\ B e. _om ) -> ( A .o B ) = ( B .o A ) ) $=
      ( vx vy com wcel comu co wceq cv wi oveq1 oveq2 eqeq12d imbi2d csuc nnm0r
      c0 nnm0 coa eqtr4d wa nnmsucr nnmsuc ancoms syl5ibr ex finds2 vtoclga imp
      ) AEFBEFZABGHZBAGHZIZUKCJZBGHZBUOGHZIZKUKUNKCAEUOAIZURUNUKUSUPULUQUMUOABG
      LUOABGMNOURRBGHZBRGHZIDJZBGHZBVBGHZIZVBPZBGHZBVFGHZIZUKCDUORIUPUTUQVAUORB
      GLUORBGMNUOVBIUPVCUQVDUOVBBGLUOVBBGMNUOVFIUPVGUQVHUOVFBGLUOVFBGMNUKUTRVAB
      QBSUAVBEFZUKVEVIKVEVIVJUKUBZVCBTHZVDBTHZIVCVDBTLVKVGVLVHVMVBBUCUKVJVHVMIB
      VBUDUENUFUGUHUIUJ $.
  $}

  $( Weak ordering property of addition.  (Contributed by NM, 17-Sep-1995.)
     (Revised by Mario Carneiro, 15-Nov-2014.) $)
  nnaword $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                ( A C_ B <-> ( C +o A ) C_ ( C +o B ) ) ) $=
    ( com wcel w3a wn coa co wss nnaord 3com12 notbid word nnord ordtri1 syl2an
    wb nnacl ancoms 3adant3 3adant2 3adant1 syl2anc 3bitr4d ) ADEZBDEZCDEZFZBAE
    ZGZCBHIZCAHIZEZGZABJZUMULJZUIUJUNUGUFUHUJUNRBACKLMUFUGUPUKRZUHUFANBNURUGAOB
    OABPQUAUIUMDEZULDEZUQUORZUFUHUSUGUHUFUSCASTUBUGUHUTUFUHUGUTCBSTUCUSUMNULNVA
    UTUMOULOUMULPQUDUE $.

  $( Cancellation law for addition of natural numbers.  (Contributed by NM,
     27-Oct-1995.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
  nnacan $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                   ( ( A +o B ) = ( A +o C ) <-> B = C ) ) $=
    ( com wcel w3a coa co wss wa wb nnaword 3comr 3com13 anbi12d bicomd 3bitr4g
    wceq eqss ) ADEZBDEZCDEZFZABGHZACGHZIZUEUDIZJZBCIZCBIZJZUDUERBCRUCUKUHUCUIU
    FUJUGUAUBTUIUFKBCALMUBUATUJUGKCBALNOPUDUESBCSQ $.

  $( Weak ordering property of addition.  (Contributed by NM, 9-Nov-2002.)
     (Revised by Mario Carneiro, 15-Nov-2014.) $)
  nnaword1 $p |- ( ( A e. _om /\ B e. _om ) -> A C_ ( A +o B ) ) $=
    ( com wcel wa c0 coa co wceq adantr wss 0ss wb peano1 nnaword 3com13 mp3an3
    nna0 mpbii eqsstr3d ) ACDZBCDZEZAAFGHZABGHZUAUDAIUBARJUCFBKZUDUEKZBLUAUBFCD
    ZUFUGMZNUHUBUAUIFBAOPQST $.

  $( Weak ordering property of addition.  (Contributed by NM, 9-Nov-2002.) $)
  nnaword2 $p |- ( ( A e. _om /\ B e. _om ) -> A C_ ( B +o A ) ) $=
    ( com wcel wa coa co nnaword1 nnacom sseqtrd ) ACDBCDEAABFGBAFGABHABIJ $.

  ${
    $d x y A $.  $d x B $.  $d x y C $.
    $( Ordering property of multiplication.  Half of Proposition 8.19 of
       [TakeutiZaring] p. 63, limited to natural numbers.  (Contributed by NM,
       18-Sep-1995.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
    nnmordi $p |- ( ( ( B e. _om /\ C e. _om ) /\ (/) e. C ) ->
                    ( A e. B -> ( C .o A ) e. ( C .o B ) ) ) $=
      ( vx vy com wcel c0 comu co wi wa wceq eleq2 oveq2 eleq2d imbi12d coa imp
      cv elnn expcom imbi2d csuc pm2.21i a1i wo elsuci nnmcl simpl jca nnaword1
      noel sseld imim2d adantrl nna0 ad2antrr ancoms eqeltrrd eleq1d syl5ibrcom
      nnaordi adantrr jaod sylan syl5 nnmsuc adantr sylibrd exp43 com12 adantld
      wb impd finds2 vtoclga com23 exp4a mpdd com34 com24 imp31 ) BFGZCFGZHCGZA
      BGZCAIJZCBIJZGZKZWDWGWFWEWJWDWGWEWFWJWDWGAFGZWEWFWJKZKWGWDWLABUAUBWDWGWLW
      EWMWDWGWLWELZWFWJWDWNWFLZWGWJWOADTZGZWHCWPIJZGZKZKWOWKKDBFWPBMZWTWKWOXAWQ
      WGWSWJWPBANXAWRWIWHWPBCIOPQUCWTAHGZWHCHIJZGZKZAETZGZWHCXFIJZGZKZAXFUDZGZW
      HCXKIJZGZKZWODEWPHMZWQXBWSXDWPHANXPWRXCWHWPHCIOPQWPXFMZWQXGWSXIWPXFANXQWR
      XHWHWPXFCIOPQWPXKMZWQXLWSXNWPXKANXRWRXMWHWPXKCIOPQXEWOXBXDAUMUEUFXFFGZWNW
      FXJXOKZXSWEWFXTKZWLWEXSYAWEXSWFXJXOWEXSLZWFXJLZLZXLWHXHCRJZGZXNXLXGAXFMZU
      GZYDYFAXFUHYBXHFGZWELZYCYHYFKYBYIWECXFUIWEXSUJUKYJYCLXGYFYGYJXJXGYFKZWFYJ
      XJYKYJXIYFXGYJXHYEWHXHCULUNUOSUPYJWFYGYFKXJYJWFLZYFYGXHYEGYLXHHRJZXHYEYIY
      MXHMWEWFXHUQURYJWFYMYEGZWEYIWFYNKHCXHVCUSSUTYGWHXHYEAXFCIOVAVBVDVEVFVGYBX
      NYFVNYCYBXMYEWHCXFVHPVIVJVKVLVMVOVPVQVRVSVSVTWAWBWC $.
  $}

  $( Ordering property of multiplication.  Proposition 8.19 of [TakeutiZaring]
     p. 63, limited to natural numbers.  (Contributed by NM, 22-Jan-1996.)
     (Revised by Mario Carneiro, 15-Nov-2014.) $)
  nnmord $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
               ( ( A e. B /\ (/) e. C ) <-> ( C .o A ) e. ( C .o B ) ) ) $=
    ( com wcel c0 wa comu co wi nnmordi ex com23 3adant1 wne wceq wb word nnord
    syl2anc w3a impd ne0i nnm0r oveq1 eqeq1d syl5ibrcom necon3d adantr ord0eln0
    syl5 syl adantl sylibrd wo wn oveq2 a1i 3adantl2 orim12d con3d simpl3 nnmcl
    simpl1 simpl2 ordtri2 syl2an 3imtr4d mpdd jcad impbid ) ADEZBDEZCDEZUAZABEZ
    FCEZGZCAHIZCBHIZEZVMVNVRWAJVLVMVNGZVPVQWAWBVQVPWAWBVQVPWAJABCKLMUBNVOWAVPVQ
    VOWAVQVPVMVNWAVQJVLWBWACFOZVQVMWAWCJVNWAVTFOVMWCVTVSUCVMCFVTFVMVTFPCFPZFBHI
    ZFPBUDWDVTWEFCFBHUEUFUGUHUKUIVNVQWCQZVMVNCRWFCSCUJULUMUNNZVOVQWAVPVOVQWAVPJ
    VOVQGZVSVTPZVTVSEZUOZUPZABPZBAEZUOZUPZWAVPWHWOWKWHWMWIWNWJWMWIJWHABCHUQURVL
    VNVQWNWJJVMBACKUSUTVAWHVSDEZVTDEZWAWLQZWHVNVLWQVLVMVNVQVBZVLVMVNVQVDZCAVCTW
    HVNVMWRWTVLVMVNVQVEZCBVCTWQVSRVTRWSWRVSSVTSVSVTVFVGTWHVLVMVPWPQZXAXBVLARBRX
    CVMASBSABVFVGTVHLMVIWGVJVK $.

  $( Weak ordering property of ordinal multiplication.  (Contributed by Mario
     Carneiro, 17-Nov-2014.) $)
  nnmword $p |- ( ( ( A e. _om /\ B e. _om /\ C e. _om ) /\ (/) e. C ) ->
                  ( A C_ B <-> ( C .o A ) C_ ( C .o B ) ) ) $=
    ( com wcel w3a c0 wa wn comu co wss iba con0 nnon syl ontri1 syl2anc nnmcl
    wb nnmord 3com12 sylan9bbr notbid simpl1 simpl2 simpl3 3bitr4d ) ADEZBDEZCD
    EZFZGCEZHZBAEZIZCBJKZCAJKZEZIZABLZURUQLZUNUOUSUMUOUOUMHZULUSUMUOMUJUIUKVCUS
    TBACUAUBUCUDUNANEZBNEZVAUPTUNUIVDUIUJUKUMUEZAOPUNUJVEUIUJUKUMUFZBOPABQRUNUR
    NEZUQNEZVBUTTUNURDEZVHUNUKUIVJUIUJUKUMUGZVFCASRUROPUNUQDEZVIUNUKUJVLVKVGCBS
    RUQOPURUQQRUH $.

  $( Cancellation law for multiplication of natural numbers.  (Contributed by
     NM, 26-Oct-1995.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
  nnmcan $p |- ( ( ( A e. _om /\ B e. _om /\ C e. _om ) /\ (/) e. A ) ->
                   ( ( A .o B ) = ( A .o C ) <-> B = C ) ) $=
    ( com wcel w3a c0 comu wss wceq 3anrot nnmword sylanb 3anrev anbi12d bicomd
    wa co wb eqss 3bitr4g ) ADEZBDEZCDEZFZGAEZQZABHRZACHRZIZUIUHIZQZBCIZCBIZQZU
    HUIJBCJUGUOULUGUMUJUNUKUEUCUDUBFUFUMUJSUBUCUDKBCALMUEUDUCUBFUFUNUKSUBUCUDNC
    BALMOPUHUITBCTUA $.

  $( Weak ordering property of multiplication.  (Contributed by Mario Carneiro,
     17-Nov-2014.) $)
  nnmwordi $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                  ( A C_ B -> ( C .o A ) C_ ( C .o B ) ) ) $=
    ( com wcel w3a c0 wss comu co wi wa nnmword biimpd ex wn wceq nnm0r sseq12d
    oveq1 word nnord ord0eln0 necon2bbid syl 3ad2ant3 ssid adantr adantl mpbiri
    wb syl5ibrcom 3adant3 sylbird a1dd pm2.61d ) ADEZBDEZCDEZFZGCEZABHZCAIJZCBI
    JZHZKZUTVAVFUTVALVBVEABCMNOUTVAPZVEVBUTVGCGQZVEUSUQVHVGUKZURUSCUAZVICUBVJVA
    CGCUCUDUEUFUQURVHVEKUSUQURLZVEVHGAIJZGBIJZHZVKVNGGHGUGVKVLGVMGUQVLGQURARUHU
    RVMGQUQBRUISUJVHVCVLVDVMCGAITCGBITSULUMUNUOUP $.

  $( Weak ordering property of ordinal multiplication.  Proposition 8.21 of
     [TakeutiZaring] p. 63, limited to natural numbers.  (Contributed by Mario
     Carneiro, 17-Nov-2014.) $)
  nnmwordri $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
                    ( A C_ B -> ( A .o C ) C_ ( B .o C ) ) ) $=
    ( com wcel w3a comu co nnmwordi wceq nnmcom 3adant2 3adant1 sseq12d sylibrd
    wss ) ADEZBDEZCDEZFZABPCAGHZCBGHZPACGHZBCGHZPABCITUCUAUDUBQSUCUAJRACKLRSUDU
    BJQBCKMNO $.

  ${
    $d x y A $.  $d x y B $.
    $( Equivalence for weak ordering of natural numbers.  (Contributed by NM,
       8-Nov-2002.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
    nnawordex $p |- ( ( A e. _om /\ B e. _om ) -> ( A C_ B <->
                  E. x e. _om ( A +o x ) = B ) ) $=
      ( vy com wcel wa wss coa co wceq con0 syl2anc oveq2 sseq2d word c0 adantr
      syl nfcv wrex crab cint simplr nnon simpll nnaword2 elrab sylanbrc intss1
      cv wne ssrab2 ne0i oninton sylancr eloni ordom ordtr2 sylancl mp2and csuc
      nna0 ad2antrr simpr eqsstrd sseq1d syl5ibrcom simprr oveq2d simprl nnasuc
      wi eqtrd nnord wn sucid syl5eleqr onnminsb sylc adantl wb ordtri1 con2bid
      nnacl mpbird ordsucss rexlimdvaa wo nn0suc mpjaod onint nfrab1 nfint nfov
      vex nfss elrabf simprbi eqssd eqeq1d rspcev ex nnaword1 adantlr syl5ibcom
      sseq2 rexlimdva impbid ) BEFZCEFZGZBCHZBAUKZIJZCKZAEUAZXLXMXQXLXMGZCBDUKZ
      IJZHZDLUBZUCZEFZBYCIJZCKZXQXRYCCHZXKYDXRCYBFZYGXRCLFZCBCIJZHZYHXRXKYIXJXK
      XMUDZCUESXRXKXJYKYLXJXKXMUFZCBUGMYAYKDCLXSCKXTYJCXSCBINOUHUIZCYBUJSYLXRYC
      PZEPYGXKGYDVMXRYCLFZYOXRYBLHZYBQULZYPYADLUMZXRYHYRYNYBCUNSZYBUOUPYCUQSURY
      CCEUSUTVAZXRYECXRYCQKZYECHZYCXNVBZKZAEUAZXRUUCUUBBQIJZCHXRUUGBCXJUUGBKXKX
      MBVCVDXLXMVEVFUUBYEUUGCYCQBINVGVHXRUUEUUCAEXRXNEFZUUEGZGZYEXOVBZCUUJYEBUU
      DIJZUUKUUJYCUUDBIXRUUHUUEVIVJUUJXJUUHUULUUKKXRXJUUIYMRZXRUUHUUEVKZBXNVLMV
      NUUJCPZXOCFZUUKCHXRUUOUUIXRXKUUOYLCVOSRZUUJUUPCXOHZVPZUUIUUSXRUUIXNLFZXNY
      CFUUSUUHUUTUUEXNUERUUIXNUUDYCXNAWPVQUUHUUEVEVRYAUURDXNXSXNKXTXOCXSXNBINOV
      SVTWAUUJUURUUPUUJUUOXOPZUURUUPVPWBUUQUUJXOEFZUVAUUJXJUUHUVBUUMUUNBXNWEMXO
      VOSCXOWCMWDWFXOCWGVTVFWHXRYDUUBUUFWIUUAAYCWJSWKXRYCYBFZCYEHZXRYQYRUVCYSYT
      YBWLUPUVCYPUVDYAUVDDYCLDYBYADLWMWNZDLTDCYEDCTDBYCIDBTDITUVEWOWQXSYCKXTYEC
      XSYCBINOWRWSSWTXPYFAYCEXNYCKXOYECXNYCBINXAXBMXCXLXPXMAEXLUUHGBXOHZXPXMXJU
      UHUVFXKBXNXDXEXOCBXGXFXHXI $.

    $( Equivalence for ordering.  Compare Exercise 23 of [Enderton] p. 88.
       (Contributed by NM, 5-Dec-1995.)  (Revised by Mario Carneiro,
       15-Nov-2014.) $)
    nnaordex $p |- ( ( A e. _om /\ B e. _om ) -> ( A e. B <->
                  E. x e. _om ( (/) e. x /\ ( A +o x ) = B ) ) ) $=
      ( com wcel wa c0 cv coa co wceq wrex con0 wi nnon adantl onelss wb adantr
      wss nnawordex sylibd simplr syl5ibrcom peano1 nnaord mp3an1 ancoms eleq1d
      syl eleq2 nna0 bitrd adantlr sylibrd ancrd reximdva mpdd biimpa syl5ibcom
      ex expimpd rexlimdva impbid ) BDEZCDEZFZBCEZGAHZEZBVIIJZCKZFZADLZVGVHVLAD
      LZVNVGVHBCTZVOVGCMEZVHVPNVFVQVECOPCBQUJABCUAUBVEVHVOVNNZNVFVEVHVRVEVHFZVL
      VMADVSVIDEZFZVLVJWAVLBVKEZVJWAWBVLVHVEVHVTUCVKCBUKZUDVEVTVJWBRVHVEVTFZVJB
      GIJZVKEZWBVTVEVJWFRZGDEVTVEWGUEGVIBUFUGUHWDWEBVKVEWEBKVTBULSUIUMZUNUOUPUQ
      VASURVEVNVHNVFVEVMVHADWDVJVLVHWDVJFWBVLVHWDVJWBWHUSWCUTVBVCSVD $.
  $}

  $( One is a natural number.  (Contributed by NM, 29-Oct-1995.) $)
  1onn $p |- 1o e. _om $=
    ( c1o c0 csuc com df-1o wcel peano1 peano2 ax-mp eqeltri ) ABCZDEBDFKDFGBHI
    J $.

  $( The ordinal 2 is a natural number.  (Contributed by NM, 28-Sep-2004.) $)
  2onn $p |- 2o e. _om $=
    ( c2o c1o csuc com df-2o wcel 1onn peano2 ax-mp eqeltri ) ABCZDEBDFKDFGBHIJ
    $.

  $( The ordinal 3 is a natural number.  (Contributed by Mario Carneiro,
     5-Jan-2016.) $)
  3onn $p |- 3o e. _om $=
    ( c3o c2o csuc com df-3o wcel 2onn peano2 ax-mp eqeltri ) ABCZDEBDFKDFGBHIJ
    $.

  $( The ordinal 4 is a natural number.  (Contributed by Mario Carneiro,
     5-Jan-2016.) $)
  4onn $p |- 4o e. _om $=
    ( c4o c3o csuc com df-4o wcel 3onn peano2 ax-mp eqeltri ) ABCZDEBDFKDFGBHIJ
    $.

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( Lemma for ~ oaabs .  (Contributed by NM, 9-Dec-2004.) $)
    oaabslem $p |- ( ( _om e. On /\ A e. _om ) -> ( A +o _om ) = _om ) $=
      ( vx com con0 wcel wa coa co wss cv ciun wlim wceq nnon limom jctr syl2an
      oalim wral word ordom nnacl ordelss sylancr ralrimiva iunss sylibr adantr
      eqsstrd ancoms oaword2 sylan2 eqssd ) CDEZACEZFACGHZCUOUNUPCIUOUNFUPBCABJ
      ZGHZKZCUOADEZUNCLZFUPUSMUNANZUNVAOPBACDRQUOUSCIZUNUOURCIZBCSVCUOVDBCUOUQC
      EFCTURCEVDUAAUQUBCURUCUDUEBCURCUFUGUHUIUJUOUNUTCUPIVBCAUKULUM $.

    $( Ordinal addition absorbs a natural number added to the left of a
       transfinite number.  Proposition 8.10 of [TakeutiZaring] p. 59.
       (Contributed by NM, 9-Dec-2004.)  (Proof shortened by Mario Carneiro,
       29-May-2015.) $)
    oaabs $p |- ( ( ( A e. _om /\ B e. On ) /\ _om C_ B )
        -> ( A +o B ) = B ) $=
      ( vx com wcel con0 wa wss cv coa wceq wrex wreu cvv ssexg omelon2 syl6com
      co ex adantr imp adantll simplr jca oawordeu sylancom syl ad3antrrr simpr
      reurex nnon oaass syl3anc simpll oaabslem syl2anc oveq1d oveq2 id eqeq12d
      eqtr3d syl5ibcom rexlimdva mpd ) ADEZBFEZGZDBHZGZDCIZJRZBKZCFLZABJRZBKZVI
      VLCFMZVMVGVHDFEZVFGVPVIVQVFVFVHVQVEVFVHVQVHVFDNEZVQVHVFVRDBFOSPQUAUBZVEVF
      VHUCUDCDBUEUFVLCFUJUGVIVLVOCFVIVJFEZGZAVKJRZVKKVLVOWAADJRZVJJRZWBVKWAAFEZ
      VQVTWDWBKVEWEVFVHVTAUKUHVIVQVTVSTVIVTUIADVJULUMWAWCDVJJVIWCDKZVTVIVQVEWFV
      SVEVFVHUNAUOUPTUQVAVLWBVNVKBVKBAJURVLUSUTVBVCVD $.

    $( The absorption law ~ oaabs is also a property of higher powers of
       ` _om ` .  (Contributed by Mario Carneiro, 29-May-2015.) $)
    oaabs2 $p |- ( ( ( A e. ( _om ^o C ) /\ B e. On ) /\ ( _om ^o C ) C_ B )
        -> ( A +o B ) = B ) $=
      ( vx vy com coe co wcel con0 wa wss coa wceq c0 syl syl2anc adantr c1o wi
      vz cv wrex wreu n0i cxp wfn cdm fnoe fndm ax-mp ndmov nsyl2 ad2antrr oecl
      simplr simpr oawordeu syl21anc reurex simpll onelon syl3anc csuc wlim w3o
      oaass word simprd eloni ordzsl sylib simplll simpld oe0 sylan9eqr eleqtrd
      oveq2 el1o oveq1d oa0r eqtrd ex simprl limom jctir simprr oveq2d omordlim
      comu oesuc nnon ad2antrl ordelss oawordri mpd odi oaabslem eqtr3d 3eqtr4d
      omcl sseqtrd rexlimddv oaword2 eqssd rexlimdvaa cdif ciun oelim2 syl12anc
      eliun eldifi c2o 1onn ondif2 sylanbrc oelimcl oalim wral wb eleq2d syl6bb
      a1i simplrl simplrr ssun1 ad3antrrr ordunel peano1 oewordi syl31anc sstrd
      cun mpi ordsucss 1on suceloni expr sylan2 rexlimdva ssun2 mpbid ordom mp2
      oaword mp1i omwordi omsuc om1 eqtr2d 3sstr4d sylbid ralrimiv iunss sylibr
      sylc eqsstrd 3jaod id eqeq12d syl5ibcom ) AFCGHZIZBJIZKZUVBBLZKZUVBDUBZMH
      ZBNZDJUCZABMHZBNZUVGUVJDJUDZUVKUVGUVBJIZUVDUVFUVNUVGFJIZCJIZKZUVOUVCUVRUV
      DUVFUVCUVBONUVRUVBAUEFCJGGJJUFZUGGUHUVSNUIUVSGUJUKULUMUNZFCUOPZUVCUVDUVFU
      PUVEUVFUQDUVBBURUSUVJDJUTPUVGUVJUVMDJUVGUVHJIZKZAUVIMHZUVINUVJUVMUWCAUVBM
      HZUVHMHZUWDUVIUWCAJIZUVOUWBUWFUWDNUVGUWGUWBUVGUVOUVCUWGUWAUVCUVDUVFVAUVBA
      VBQZRUVGUVOUWBUWARUVGUWBUQAUVBUVHVGVCUWCUWEUVBUVHMUVGUWEUVBNZUWBUVGCONZCU
      VHVDZNZDJUCZCVEZVFZUWIUVGCVHZUWOUVGUVQUWPUVGUVPUVQUVTVIZCVJPZDCVKVLUVGUWJ
      UWIUWMUWNUVGUWJUWIUVGUWJKZUWEOUVBMHZUVBUWSAOUVBMUWSASIAONUWSAUVBSUVCUVDUV
      FUWJVMUWJUVGUVBFOGHZSCOFGVRUVGUVPUXASNUVGUVPUVQUVTVNZFVOPVPVQAVSVLVTUWSUV
      OUWTUVBNUVGUVOUWJUWARUVBWAPWBWCUVGUWLUWIDJUVGUWBUWLKZKZUWEUVBUXDAFUVHGHZE
      UBZWJHZIZUWEUVBLZEFUXDUXEJIZUVPFVEZKAUXEFWJHZIUXHEFUCUXDUVPUWBUXJUVGUVPUX
      CUXBRZUVGUWBUWLWDZFUVHUOZQZUXDUVPUXKUXMWEWFUXDAUVBUXLUVCUVDUVFUXCVMUXDUVB
      FUWKGHZUXLUXDCUWKFGUVGUWBUWLWGWHUXDUVPUWBUXQUXLNUXMUXNFUVHWKQWBZVQEUXEFAJ
      WIUSUXDUXFFIZUXHKZKZUWEUXGUVBMHZUVBUYAAUXGLZUWEUYBLZUYAUXGVHZUXHUYCUYAUXG
      JIZUYEUYAUXJUXFJIZUYFUXDUXJUXTUXPRZUXSUYGUXDUXHUXFWLWMZUXEUXFXAQZUXGVJPUX
      DUXSUXHWGUXGAWNQUYAUWGUYFUVOUYCUYDTUVGUWGUXCUXTUWHUNUYJUVGUVOUXCUXTUWAUNA
      UXGUVBWOVCWPUYAUXGUXLMHZUXLUYBUVBUYAUXEUXFFMHZWJHZUYKUXLUYAUXJUYGUVPUYMUY
      KNUYHUYIUXDUVPUXTUXMRZUXEUXFFWQVCUYAUYLFUXEWJUYAUVPUXSUYLFNUYNUXDUXSUXHWD
      UXFWRQWHWSUYAUVBUXLUXGMUXDUVBUXLNUXTUXRRZWHUYOWTXBXCUVGUVBUWELZUXCUVGUVOU
      WGUYPUWAUWHUVBAXDQZRXEXFUVGUWNUWIUVGUWNKZUWEUVBUYRAUXEIZDCSXGZUCZUXIUYRAD
      UYTUXEXHZIVUAUYRAUVBVUBUVCUVDUVFUWNVMUYRUVPUVQUWNUVBVUBNUVGUVPUWNUXBRZUVG
      UVQUWNUWQRZUVGUWNUQZDFCJXIXJVQDAUYTUXEXKVLUYRUYSUXIDUYTUVHUYTIUYRUVHCIZUY
      SUXITUVHCSXLUYRVUFUYSUXIUYRVUFUYSKZKZUWEEUVBAUXFMHZXHZUVBVUHUWGUVOUVBVEZU
      WEVUJNUVGUWGUWNVUGUWHUNZUVGUVOUWNVUGUWAUNVUHFJXMXGIZUVQUWNVUKVUHUVPSFIZVU
      MUYRUVPVUGVUCRZVUNVUHXNYCFXOXPUYRUVQVUGVUDRZUVGUWNVUGUPFCJXQXJEAUVBJXRXJV
      UHVUIUVBLZEUVBXSVUJUVBLVUHVUQEUVBVUHUXFUVBIZUXFFUAUBZGHZIZUAUYTUCZVUQUYRV
      URVVBXTVUGUYRVURUXFUAUYTVUTXHZIVVBUYRUVBVVCUXFUYRUVPUVQUWNUVBVVCNVUCVUDVU
      EUAFCJXIXJYAUAUXFUYTVUTXKYBRVUHVVAVUQUAUYTVUSUYTIVUHVUSCIZVVAVUQTVUSCSXLV
      UHVVDVVAVUQVUHVVDVVAKZKZVUIFUVHVUSYMZVDZGHZUVBVVFVUIFVVGGHZVVJMHZVVIVVFVU
      IVVJUXFMHZVVKVVFAVVJLZVUIVVLLZVVFAUXEVVJVVFUXEVHZUYSAUXELVVFUXJVVOVVFUVPU
      WBUXJVUHUVPVVEVUORZVVFUVQVUFUWBVUHUVQVVEVUPRZUYRVUFUYSVVEYDZCUVHVBQZUXOQU
      XEVJPUYRVUFUYSVVEYEUXEAWNQVVFUVHVVGLZUXEVVJLZUVHVUSYFVVFUWBVVGJIZUVPOFIZV
      VTVWATVVSVVFUVQVVGCIZVWBVVQVVFUWPVUFVVDVWDUVGUWPUWNVUGVVEUWRYGZVVRVUHVVDV
      VAWDZCUVHVUSYHVCZCVVGVBQZVVPVWCVVFYIYCZUVHVVGFYJYKYNYLVVFUWGVVJJIZUYGVVMV
      VNTVUHUWGVVEVULRVVFUVPVWBVWJVVPVWHFVVGUOQZVVFVUTJIZVVAUYGVVFUVPVUSJIZVWLV
      VPVVFUVQVVDVWMVVQVWFCVUSVBQZFVUSUOQZVUHVVDVVAWGZVUTUXFVBQZAVVJUXFWOVCWPVV
      FUXFVVJLZVVLVVKLZVVFUXFVUTVVJVVFVUTVHZVVAUXFVUTLVVFVWLVWTVWOVUTVJPVWPVUTU
      XFWNQVVFVUSVVGLZVUTVVJLZVUSUVHUUAVVFVWMVWBUVPVWCVXAVXBTVWNVWHVVPVWIVUSVVG
      FYJYKYNYLVVFUYGVWJVWJVWRVWSXTVWQVWKVWKUXFVVJVVJUUEVCUUBYLVVFVVJSVDZWJHZVV
      JFWJHZVVKVVIVVFVXCFLZVXDVXELZFVHVUNVXFUUCXNSFYOUUDVVFVXCJIZUVPVWJVXFVXGTS
      JIZVXHVVFYPSYQUUFVVPVWKVXCFVVJUUGVCYNVVFVXDVVJSWJHZVVJMHZVVKVVFVWJVXIVXDV
      XKNVWKVXIVVFYPYCVVJSUUHQVVFVXJVVJVVJMVVFVWJVXJVVJNVWKVVJUUIPVTUUJVVFUVPVW
      BVVIVXENVVPVWHFVVGWKQUUKYLVVFVVHCLZVVIUVBLZVVFUWPVWDVXLVWEVWGVVGCYOUUPVVF
      VVHJIZUVQUVPVWCVXLVXMTVVFVWBVXNVWHVVGYQPVVQVVPVWIVVHCFYJYKWPYLYRYSYTUULUU
      MEUVBVUIUVBUUNUUOUUQYRYSYTWPUVGUYPUWNUYQRXEWCUURWPRVTWSUVJUWDUVLUVIBUVIBA
      MVRUVJUUSUUTUVAYTWP $.

    $( Lemma for ~ omabs .  (Contributed by Mario Carneiro, 30-May-2015.) $)
    omabslem $p |- ( ( _om e. On /\ A e. _om /\ (/) e. A ) ->
        ( A .o _om ) = _om ) $=
      ( vx com con0 wcel c0 w3a comu co wa ciun wlim wceq nnon limom jctr omlim
      wss cv syl2an wral word ordom nnmcl ordelss ralrimiva iunss sylibr adantr
      sylancr eqsstrd ancoms 3adant3 omword2 3impa syl3an2 eqssd ) CDEZACEZFAEZ
      GACHIZCURUSVACRZUTUSURVBUSURJVABCABSZHIZKZCUSADEZURCLZJVAVEMURANZURVGOPBA
      CDQTUSVECRZURUSVDCRZBCUAVIUSVJBCUSVCCEJCUBVDCEVJUCAVCUDCVDUEUJUFBCVDCUGUH
      UIUKULUMUSURVFUTCVARZVHURVFUTVKCAUNUOUPUQ $.

    $( Ordinal multiplication is also absorbed by powers of ` _om ` .
       (Contributed by Mario Carneiro, 30-May-2015.) $)
    omabs $p |- ( ( ( A e. _om /\ (/) e. A ) /\ ( B e. On /\ (/) e. B ) ) ->
        ( A .o ( _om ^o B ) ) = ( _om ^o B ) ) $=
      ( vy vz com wcel c0 wa con0 coe co comu wi oveq2d eqeq12d adantr ad2antrr
      wceq syl syl2anc vx cv csuc eleq2 oveq2 imbi12d pm2.21i a1i simprl simpll
      noel simplr omabslem syl3anc c1o suceq df-1o syl6eqr oe1 ad2antrl 3eqtr4d
      sylan9eqr ex a1dd oveq1 oesuc adantl nnon oecl omass eqtr4d syl5ibr com23
      imim2d simprr on0eqel mpjaod anassrs expcom wlim wral ad3antrrr cvv jctil
      ciun vex limelon c2o cdif 1onn ondif2 sylanbrc oelimcl omlim syl12anc wss
      wo wrex simplrl oelim2 eleq2d eliun syl6bb wb wne onelon on0eln0 pm5.32da
      anass dif1o syl6bbr anbi1d syl5bbr rexbidv2 bitr4d r19.29 imp anim1i word
      anasss eloni omord2 syl31anc mpbid eleqtrd oeord mp2and ordelss rexlimdva
      ontr1 syl5 expdimp sylbid ralrimiv iunss sylibr eqsstrd simpllr omword2
      id syl21anc eqssd tfinds3 com12 adantrr imp32 an32s nnm0 cxp wfn cdm fnoe
      wn fndm ax-mp ndmov pm2.61dan ) AEFZGAFZHZBIFZGBFZHZHZEIFZUVAHZAEBJKZLKZU
      VGRZUUTUVFUVCUVIUUTUVFHUVAUVBUVIUUTUVEUVAUVBUVIMZMUVAUVAUUTUVEHZUVJGUAUBZ
      FZAEUVLJKZLKZUVNRZMZGGFZAEGJKZLKZUVSRZMZGCUBZFZAEUWCJKZLKZUWERZMZGUWCUCZF
      ZAEUWIJKZLKZUWKRZMZUVJUVKUACBUVLGRZUVMUVRUVPUWAUVLGGUDUWOUVOUVTUVNUVSUWOU
      VNUVSALUVLGEJUEZNUWPOUFUVLUWCRZUVMUWDUVPUWGUVLUWCGUDUWQUVOUWFUVNUWEUWQUVN
      UWEALUVLUWCEJUEZNUWROUFUVLUWIRZUVMUWJUVPUWMUVLUWIGUDUWSUVOUWLUVNUWKUWSUVN
      UWKALUVLUWIEJUEZNUWTOUFUVLBRZUVMUVBUVPUVIUVLBGUDUXAUVOUVHUVNUVGUXAUVNUVGA
      LUVLBEJUEZNUXBOUFUWBUVKUVRUWAGUKUGUHUVKUWCIFZUWHUWNMZUUTUVEUXCUXDUUTUVEUX
      CHZHZUWHUWMUWJUXFUWCGRZUWHUWMMUWDUXFUXGUWMUWHUXFUXGUWMUXFUXGHZAELKZEUWLUW
      KUXFUXIERZUXGUXFUVEUURUUSUXJUUTUVEUXCUIZUURUUSUXEUJUURUUSUXEULAUMUNPUXHUW
      KEALUXGUXFUWKEUOJKZEUXGUWIUOEJUXGUWIGUCUOUWCGUPUQURNUVEUXLERUUTUXCEUSUTVB
      ZNUXMVAVCVDUXFUWHUWDUWMUXFUWGUWMUWDUWGUWMUXFUWFELKZUWEELKZRUWFUWEELVEUXFU
      WLUXNUWKUXOUXFUWLAUXOLKZUXNUXFUWKUXOALUXEUWKUXORUUTEUWCVFVGZNUXFAIFZUWEIF
      ZUVEUXNUXPRUURUXRUUSUXEAVHZQUXEUXSUUTEUWCVIZVGUXKAUWEEVJUNVKUXQOVLVNVMUXF
      UXCUXGUWDWQUUTUVEUXCVOUWCVPSVQVDVRVSUVKUVLVTZUWHCUVLWAZUVQMUVKUYBHUYCUVPU
      VMUUTUVEUYBUYCUVPMUUTUVEUYBHZHZUYCUVPUYEUYCHZUVOUVNUYFUVODUVNADUBZLKZWEZU
      VNUYFUXRUVNIFZUVNVTZUVOUYIRUURUXRUUSUYDUYCUXTWBZUYEUYJUYCUYEUVEUVLIFZUYJU
      UTUVEUYBUIZUYEUVLWCFZUYBHZUYMUYEUYBUYOUUTUVEUYBVOUAWFWDZUVLWCWGSZEUVLVITZ
      PZUYFEIWHWIFZUYPUYKUYEVUAUYCUYEUVEUOEFZVUAUYNVUBUYEWJUHEWKWLZPUYEUYPUYCUY
      QPZEUVLWCWMTDAUVNIWNWOUYFUYHUVNWPZDUVNWAUYIUVNWPUYFVUEDUVNUYFUYGUVNFZUWDU
      YGUWEFZHZCUVLWRZVUEUYFVUFVUGCUVLUOWIZWRZVUIUYFVUFUYGCVUJUWEWEZFVUKUYFUVNV
      ULUYGUYFUVEUYPUVNVULRUUTUVEUYBUYCWSVUDCEUVLWCWTTXACUYGVUJUWEXBXCUYFUYMVUI
      VUKXDUYEUYMUYCUYRPUYMVUHVUGCUVLVUJUWCUVLFZVUHHVUMUWDHZVUGHUYMUWCVUJFZVUGH
      VUMUWDVUGXIUYMVUNVUOVUGUYMVUNVUMUWCGXEZHVUOUYMVUMUWDVUPUYMVUMHUXCUWDVUPXD
      UVLUWCXFZUWCXGSXHUWCUVLXJXKXLXMXNSXOUYEUYCVUIVUEUYCVUIHUWHVUHHZCUVLWRUYEV
      UEUWHVUHCUVLXPUYEVURVUECUVLVURUWGVUGHZUYEVUMHZVUEUWHUWDVUGVUSUWHUWDHUWGVU
      GUWHUWDUWGUWHYTXQXRXTVUTVUSVUEVUTVUSHZUVNXSZUYHUVNFZVUEVVAUYJVVBUYEUYJVUM
      VUSUYSQZUVNYASVVAUYHUWEFZUWEUVNFZVVCVVAUYHUWFUWEVVAVUGUYHUWFFZVUTUWGVUGVO
      ZVVAUYGIFZUXSUXRUUSVUGVVGXDVVAUXSVUGVVIVVAUVEUXCUXSUYEUVEVUMVUSUYNQVVAUYM
      VUMUXCUYEUYMVUMVUSUYRQZUYEVUMVUSULZVUQTZUYATZVVHUWEUYGXFTVVMUYEUXRVUMVUSU
      URUXRUUSUYDUXTQQUYEUUSVUMVUSUURUUSUYDULQUYGUWEAYBYCYDVUTUWGVUGUIYEVVAVUMV
      VFVVKVVAUXCUYMVUAVUMVVFXDVVLVVJUYEVUAVUMVUSVUCQUWCUVLEYFUNYDVVAUYJVVEVVFH
      VVCMVVDUYHUWEUVNYJSYGUVNUYHYHTVCYKYIYKYLYMYNDUVNUYHUVNYOYPYQUYFUYJUXRUUSU
      VNUVOWPUYTUYLUURUUSUYDUYCYRUVNAYSUUAUUBVCVRVDVSUUCUUDUUEUUFUUGUVDUVFUUMZH
      ZAGLKZGUVHUVGUURVVPGRUUSUVCVVNAUUHWBVVOUVGGALVVNUVGGRUVDEBIJJIIUUIZUUJJUU
      KVVQRUULVVQJUUNUUOUUPVGZNVVRVAUUQ $.
  $}

  $( Multiply an element of ` _om ` by ` 1o ` .  (Contributed by Mario
     Carneiro, 17-Nov-2014.) $)
  nnm1 $p |- ( A e. _om -> ( A .o 1o ) = A ) $=
    ( com wcel c1o comu co c0 csuc df-1o oveq2i wceq peano1 nnmsuc mpan2 oveq1d
    coa nnm0 nna0r 3eqtrd syl5eq ) ABCZADEFAGHZEFZADUBAEIJUAUCAGEFZAPFZGAPFAUAG
    BCUCUEKLAGMNUAUDGAPAQOARST $.

  $( Multiply an element of ` _om ` by ` 2o ` .  (Contributed by Scott Fenton,
     18-Apr-2012.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
  nnm2 $p |- ( A e. _om -> ( A .o 2o ) = ( A +o A ) ) $=
    ( com wcel c2o comu c1o csuc coa df-2o oveq2i wceq 1onn nnmsuc mpan2 oveq1d
    co nnm1 eqtrd syl5eq ) ABCZADEPAFGZEPZAAHPZDUAAEIJTUBAFEPZAHPZUCTFBCUBUEKLA
    FMNTUDAAHAQORS $.

  $( Multiply an element of ` _om ` by ` 2o ` .  (Contributed by Scott Fenton,
     16-Apr-2012.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
  nn2m $p |- ( A e. _om -> ( 2o .o A ) = ( A +o A ) ) $=
    ( com wcel c2o comu co coa wceq 2onn nnmcom mpan nnm2 eqtrd ) ABCZDAEFZADEF
    ZAAGFDBCNOPHIDAJKALM $.

  $( If a natural number is even, its successor is odd.  (Contributed by Mario
     Carneiro, 16-Nov-2014.) $)
  nnneo $p |- ( ( A e. _om /\ B e. _om /\ C = ( 2o .o A ) ) ->
              -. suc C = ( 2o .o B ) ) $=
    ( com wcel c2o comu co wceq csuc wa con0 nnon syl wb sucid mpbii nnmord c1o
    2onn w3a wn onnbtwn 3ad2ant1 suceq eqeq1d 3ad2ant3 wi eleq2 c0 mp3an3 simpl
    ovex syl5 simpr coa nnmcl mpan oa1suc 3syl 1onn elexi df-2o eleqtrri nnaord
    syl6bir mp3an12 nnmsuc eleqtrrd eqeltrrd peano2 sylan2 ancoms adantr mpbird
    ad2antrr simpld ex jcad 3adant3 sylbid mtod ) ADEZBDEZCFAGHZIZUAZCJZFBGHZIZ
    ABEZBAJZEZKZWCWDWNUBZWFWCALEWOAMABUCNUDWGWJWEJZWIIZWNWFWCWJWQOWDWFWHWPWICWE
    UEUFUGWCWDWQWNUHWFWCWDKZWQWKWMWQWEWIEZWRWKWQWEWPEWSWEFAGUMPWPWIWEUIQWRWSWKU
    JFEZKZWKWCWDFDEZXAWSOTABFRUKWKWTULVFUNWRWQWMWRWQKZWMWTXCWMWTKZWIFWLGHZEZXCW
    PWIXEWRWQUOWCWPXEEWDWQWCWESUPHZWPXEWCWEDEZWELEXGWPIXBWCXHTFAUQURZWEMWEUSUTW
    CXGWEFUPHZXEWCSFEZXGXJEZSSJFSSDVAVBPVCVDWCXHXKXLOZXISDEXBXHXMVATSFWEVEVGNQX
    BWCXEXJITFAVHURVIVJVPVJWRXDXFOZWQWDWCXNWCWDWLDEZXNAVKWDXOXBXNTBWLFRUKVLVMVN
    VOVQVRVSVTWAWB $.

  ${
    $d x y z A $.
    $( A natural number is even iff its successor is odd.  (Contributed by NM,
       26-Jan-2006.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
    nneob $p |- ( A e. _om -> ( E. x e. _om A = ( 2o .o x )
          <-> -. E. x e. _om suc A = ( 2o .o x ) ) ) $=
      ( vy com wcel comu co wceq wrex csuc wn eqeq2d wi c0 suceq eqeq1d rexbidv
      c2o notbid eqeq1 vz cv oveq2 wa nnneo 3com23 3expa nrexdv rexlimiva sylbi
      cbvrexv imbi12d peano1 eqid syl6eq rspcev mp2an a1i peano2 coa c1o nnmsuc
      om0x 2onn mpan df-2o oveq2i nnmcl 1onn nnasuc sylancl syl5req con0 oa1suc
      nnon 4syl 3eqtr2rd syl2anc syl syl5ibrcom rexlimiv syl5bi con3d con1 syl9
      finds impbid2 ) BDEBRAUBZFGZHZADIZBJZWIHZADIZKZWKBRCUBZFGZHZCDIWOWJWRACDW
      HWPHZWIWQBWHWPRFUCZLUKWRWOCDWPDEZWRUDWMADXAWRWHDEZWMKZXAXBWRXCWPWHBUEUFUG
      UHUIUJWPJZWIHZADIZKZWPWIHZADIZMNJZWIHZADIZKZNWIHZADIZMUAUBZJZWIHZADIZKZXP
      WIHZADIZMZXQJZWIHZADIZKZXSMWOWKMCUABWPNHZXGXMXIXOYHXFXLYHXEXKADYHXDXJWIWP
      NOPQSYHXHXNADWPNWITQULWPXPHZXGXTXIYBYIXFXSYIXEXRADYIXDXQWIWPXPOPQSYIXHYAA
      DWPXPWITQULWPXQHZXGYGXIXSYJXFYFYJXEYEADYJXDYDWIWPXQOPQSYJXHXRADWPXQWITQUL
      WPBHZXGWOXIWKYKXFWNYKXEWMADYKXDWLWIWPBOPQSYKXHWJADWPBWITQULXOXMNDENNHZXOU
      MNUNXNYLANDWHNHZWINNYMWIRNFGNWHNRFUCRVCUOLUPUQURXPDEZYGYBKYCXSYNYBYFYBXPW
      QHZCDIZYNYFYAYOACDWSWIWQXPWTLUKYPYFMYNYOYFCDXAYFYOWQJZJZWIHZADIZXAXDDEYRR
      XDFGZHZYTWPUSXAUUAWQRUTGZWQVAUTGZJZYRRDEZXAUUAUUCHVDRWPVBVEXAUUCWQVAJZUTG
      ZUUERUUGWQUTVFVGXAWQDEZVADEUUHUUEHUUFXAUUIVDRWPVHVEZVIWQVAVJVKVLXAUUIWQVM
      EUUDYQHUUEYRHUUJWQVOWQVNUUDYQOVPVQYSUUBAXDDWHXDHWIUUAYRWHXDRFUCLUPVRYOYEY
      SADYOYDYRWIYOXQYQHYDYRHXPWQOXQYQOVSPQVTWAURWBWCXSYBWDWEWFWG $.
  $}

  ${
    $d y z w A $.  $d x y z w F $.
    $( Lemma for ~ omsmo .  (Contributed by NM, 30-Nov-2003.)  (Revised by
       David Abernethy, 1-Jan-2014.) $)
    omsmolem $p |- ( y e. _om -> ( ( ( A C_ On /\ F : _om --> A ) /\
        A. x e. _om ( F ` x ) e. ( F ` suc x ) ) ->
       ( z e. y -> ( F ` z ) e. ( F ` y ) ) ) ) $=
      ( vw cv wcel cfv wi c0 csuc con0 com wa eleq2 fveq2 eleq2d imbi12d weq wf
      wss wral wceq noel pm2.21i a1i wo vex elsuc suceq eleq12d rspccva adantll
      fveq2d peano2b ffvelrn sylan2b ssel ontr1 expcomd impl adantlr mpd imim2d
      syl56 imp eleq1d syl5ibrcom adantr jaod syl5bi exp31 com12 finds2 ) CGZBG
      ZHZVPEIZVQEIZHZJVPKHZVSKEIZHZJZVPFGZHZVSWFEIZHZJZVPWFLZHZVSWKEIZHZJZDMUBZ
      NDEUAZOZAGZEIZWSLZEIZHZANUCZOZBFVQKUDZVRWBWAWDVQKVPPXFVTWCVSVQKEQRSBFTZVR
      WGWAWIVQWFVPPXGVTWHVSVQWFEQRSVQWKUDZVRWLWAWNVQWKVPPXHVTWMVSVQWKEQRSWEXEWB
      WDVPUEUFUGXEWFNHZWJWOJXEXIWJWOWLWGCFTZUHXEXIOZWJOZWNVPWFCUIUJXLWGWNXJXKWJ
      WGWNJXKWIWNWGXKWHWMHZWIWNJZXDXIXMWRXCXMAWFNAFTZWTWHXBWMWSWFEQXOXAWKEWSWFU
      KUOULUMZUNWRXIXMXNJZXDWPWQXIXQWQXIOWMDHZWPWMMHZXQXIWQWKNHXRWFUPNDWKEUQURD
      MWMUSXSWIXMWNVSWHWMUTVAVFVBVCVDVEVGXKXJWNJZWJXDXIXTWRXDXIOWNXJXMXPXJVSWHW
      MVPWFEQVHVIUNVJVKVLVMVNVO $.

    $( A strictly monotonic ordinal function on the set of natural numbers is
       one-to-one.  (Contributed by NM, 30-Nov-2003.)  (Revised by David
       Abernethy, 1-Jan-2014.) $)
    omsmo $p |- ( ( ( A C_ On /\ F : _om --> A ) /\
          A. x e. _om ( F ` x ) e. ( F ` suc x ) ) -> F : _om -1-1-> A ) $=
      ( vy vz con0 com wa cv cfv wcel wral wceq wi wo omsmolem adantl imp word
      wn wss wf csuc simplr adantr orim12d ancoms con3d wb ffvelrn ssel expdimp
      wf1 syl5 eloni syl6 anim12d ordtri3 syl adantlr syl2an 3imtr4d ralrimivva
      nnord dff13 sylanbrc ) BFUAZGBCUBZHZAIZCJVJUCCJKAGLZHZVHDIZCJZEIZCJZMZVMV
      OMZNZEGLDGLGBCUMVGVHVKUDVLVSDEGGVLVMGKZVOGKZHZHZVNVPKZVPVNKZOZTZVMVOKZVOV
      MKZOZTZVQVRWCWJWFWBVLWJWFNWBVLHWHWDWIWEWBVLWHWDNZWAVLWLNVTAEDBCPQRWBVLWIW
      ENZVTVLWMNWAADEBCPUERUFUGUHVIWBVQWGUIZVKVIWBHVNSZVPSZHZWNVIWBWQVIVTWOWAWP
      VIVTVNFKZWOVGVHVTWRVHVTHVNBKVGWRGBVMCUJBFVNUKUNULVNUOUPVIWAVPFKZWPVGVHWAW
      SVHWAHVPBKVGWSGBVOCUJBFVPUKUNULVPUOUPUQRVNVPURUSUTWBVRWKUIZVLVTVMSVOSWTWA
      VMVDVOVDVMVOURVAQVBVCDEGBCVEVF $.
  $}

  ${
    omopthlem1.1 $e |- A e. _om $.
    omopthlem1.2 $e |- C e. _om $.
    $( Lemma for ~ omopthi .  (Contributed by Scott Fenton, 18-Apr-2012.)
       (Revised by Mario Carneiro, 17-Nov-2014.) $)
    omopthlem1 $p |- ( A e. C ->
                ( ( A .o A ) +o ( A .o 2o ) ) e. ( C .o C ) ) $=
      ( csuc wss comu co wcel c2o coa wi ax-mp mp3an nnoni onsucssi nnmcli wceq
      com mp2an peano2 nnmwordi nnmwordri sstrd 2onn nnacli nnasuc nnmsuc eqtri
      nnaass nnmcom oveq1i nnm2 oveq2i 3eqtr4ri suceq sseq1i bitri 3imtr4i ) AE
      ZBFZUTUTGHZBBGHZFZABIAAGHZAJGHZKHZVCIZVAVBUTBGHZVCUTSIZBSIZVJVAVBVIFLASIZ
      VJCAUAMZDVMUTBUTUBNVJVKVKVAVIVCFLVMDDUTBBUCNUDABACOBDOPVHVGEZVCFVDVGVCVGV
      EVFAACCQZAJCUEQUFOVCBBDDQOPVNVBVCUTAGHZUTKHZVPAKHZEZVBVNVPSIVLVQVSRUTAVMC
      QCVPAUGTVJVLVBVQRVMCUTAUHTVGVRRVNVSRVEAKHZAKHZVEAAKHZKHZVRVGVESIVLVLWAWCR
      VOCCVEAAUJNVPVTAKVPAUTGHZVTVJVLVPWDRVMCUTAUKTVLVLWDVTRCCAAUHTUIULVFWBVEKV
      LVFWBRCAUMMUNUOVGVRUPMUOUQURUS $.
  $}

  ${
    omopthlem2.1 $e |- A e. _om $.
    omopthlem2.2 $e |- B e. _om $.
    omopthlem2.3 $e |- C e. _om $.
    omopthlem2.4 $e |- D e. _om $.
    $( Lemma for ~ omopthi .  (Contributed by Scott Fenton, 16-Apr-2012.)
       (Revised by Mario Carneiro, 17-Nov-2014.) $)
    omopthlem2 $p |- ( ( A +o B ) e. C ->
     -. ( ( C .o C ) +o D ) = ( ( ( A +o B ) .o ( A +o B ) ) +o B ) ) $=
      ( comu co coa wceq wcel nnmcli nnacli nnoni com wss mp2an nnacom nnaword1
      onirri eleq1 mtbii c2o sseqtri nnaass mp3an nnm2 ax-mp eqtr4i wi nnawordi
      2onn 3sstr4i omopthlem1 con0 wa ontr2 sylancr sseldi nsyl3 ) CCIJZDKJZABK
      JZVEIJZBKJZLZVGVDMZVECMZVHVDVDMVIVDVDVCDCCGGNZHOPUBVDVGVDUCUDVJVCVDVGVCQM
      DQMVCVDRVKHVCDUASVJVGVFVEUEIJZKJZRZVMVCMZVGVCMZBVFKJZVLVFKJZVGVMBVLRZVQVR
      RZBVEAKJZBKJZVLBBWAKJZWBBQMZWAQMZBWCRFVEAABEFOZEOZBWAUASWDWEWCWBLFWGBWATS
      UFWBVEVEKJZVLVEQMZAQMWDWBWHLWFEFVEABUGUHWIVLWHLWFVEUIUJUKUFWDVLQMZVFQMZVS
      VTULFVEUEWFUNNZVEVEWFWFNZBVLVFUMUHUJWKWDVGVQLWMFVFBTSWKWJVMVRLWMWLVFVLTSU
      OVECWFGUPVGUQMVCUQMVNVOURVPULVGVFBWMFOPVCVKPVGVMVCUSSUTVAVB $.
  $}

  ${
    omopth.1 $e |- A e. _om $.
    omopth.2 $e |- B e. _om $.
    omopth.3 $e |- C e. _om $.
    omopth.4 $e |- D e. _om $.
    $( An ordered pair theorem for ` _om ` .  Theorem 17.3 of [Quine] p. 124.
       This proof is adapted from ~ nn0opthi .  (Contributed by Scott Fenton,
       16-Apr-2012.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
    omopthi $p |- ( ( ( ( A +o B ) .o ( A +o B ) ) +o B ) =
                     ( ( ( C +o D ) .o ( C +o D ) ) +o D ) <->
                     ( A = C /\ B = D ) ) $=
      ( coa co comu wceq wn wcel word wb nnacli mp2an oveq12d com wa wo ordtri3
      nnoni onordi con2bii omopthlem2 eqcom sylnib jaoi sylbir id oveq1d eqtr4d
      con4i nnmcli nnacan mp3an sylib oveq2d nnacom 3eqtr4g oveq12 simpr impbii
      jca ) ABIJZVGKJZBIJZCDIJZVJKJZDIJZLZACLZBDLZUAZVMVNVOVMBAIJZBCIJZLZVNVMVG
      CBIJZVQVRVMVGVJVTVGVJLZVMWAMVGVJNZVJVGNZUBZVMMZWAWDVGOVJOWAWDMPVGVGABEFQZ
      UDUEVJVJCDGHQZUDUEVGVJUCRUFWBWEWCWBVLVILVMABVJDEFWGHUGVLVIUHUICDVGBGHWFFU
      GUJUKUOZVMBDCIVMVIVHDIJZLZVOVMVIVLWIVMULVMVHVKDIVMVGVJVGVJKWHWHSUMUNVHTNB
      TNZDTNWJVOPVGVGWFWFUPFHVHBDUQURUSZUTUNWKATNZVQVGLFEBAVARWKCTNZVRVTLFGBCVA
      RVBWKWMWNVSVNPFEGBACUQURUSWLVFVPVHVKBDIVPVGVJVGVJKACBDIVCZWOSVNVOVDSVE $.
  $}

  $( An ordered pair theorem for finite integers.  Analogous to ~ nn0opthi .
     (Contributed by Scott Fenton, 1-May-2012.) $)
  omopth $p |- ( ( ( A e. _om /\ B e. _om ) /\ ( C e. _om /\ D e. _om ) ) ->
                 ( ( ( ( A +o B ) .o ( A +o B ) ) +o B ) =
                     ( ( ( C +o D ) .o ( C +o D ) ) +o D ) <->
                     ( A = C /\ B = D ) ) ) $=
    ( com wcel coa co comu wceq wa wb c0 cif oveq1 oveq12d oveq1d peano1 elimel
    bibi12d eqeq1d eqeq1 anbi1d oveq2 id anbi2d eqeq2d eqeq2 omopthi dedth4h )
    AEFZBEFZCEFZDEFZABGHZUOIHZBGHZCDGHZURIHZDGHZJZACJZBDJZKZLUKAMNZBGHZVFIHZBGH
    ZUTJZVECJZVCKZLVEULBMNZGHZVMIHZVLGHZUTJZVJVLDJZKZLVOUMCMNZDGHZVTIHZDGHZJZVE
    VSJZVQKZLVOVSUNDMNZGHZWGIHZWFGHZJZWDVLWFJZKZLABCDMMMMAVEJZVAVIVDVKWMUQVHUTW
    MUPVGBGWMUOVFUOVFIAVEBGOZWNPQUAWMVBVJVCAVECUBUCTBVLJZVIVPVKVRWOVHVOUTWOVGVN
    BVLGWOVFVMVFVMIBVLVEGUDZWPPWOUEPUAWOVCVQVJBVLDUBUFTCVSJZVPWCVRWEWQUTWBVOWQU
    SWADGWQURVTURVTICVSDGOZWRPQUGWQVJWDVQCVSVEUHUCTDWFJZWCWJWEWLWSWBWIVOWSWAWHD
    WFGWSVTWGVTWGIDWFVSGUDZWTPWSUEPUGWSVQWKWDDWFVLUHUFTVEVLVSWFAMERSBMERSCMERSD
    MERSUIUJ $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Equivalence relations and classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c Er $.  $( Equivalence predicate $)
  $c /. $.  $( Long slash for quotient set $)

  $( Extend the definition of a wff to include the equivalence predicate. $)
  wer $a wff R Er A $.

  $( Extend the definition of a class to include equivalence class. $)
  cec $a class [ A ] R $.

  $( Extend the definition of a class to include quotient set. $)
  cqs $a class ( A /. R ) $.

  $( Define the equivalence relation predicate.  Our notation is not standard.
     A formal notation doesn't seem to exist in the literature; instead only
     informal English tends to be used.  The present definition, although
     somewhat cryptic, nicely avoids dummy variables.  In ~ dfer2 we derive a
     more typical definition.  We show that an equivalence relation is
     reflexive, symmetric, and transitive in ~ erref , ~ ersymb , and ~ ertr .
     (Contributed by NM, 4-Jun-1995.)  (Revised by Mario Carneiro,
     2-Nov-2015.) $)
  df-er $a |- ( R Er A <->
    ( Rel R /\ dom R = A /\ ( `' R u. ( R o. R ) ) C_ R ) ) $.

  ${
    $d x y z R $.
    $( Alternate definition of equivalence predicate.  (Contributed by NM,
       3-Jan-1997.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    dfer2 $p |- ( R Er A <->
    ( Rel R /\ dom R = A /\ A. x A. y A. z
          ( ( x R y -> y R x ) /\ ( ( x R y /\ y R z ) -> x R z ) ) ) ) $=
      ( wer wrel cdm wceq ccnv wss w3a cv wbr wi wa wal albii 19.26 bitri df-er
      ccom cun cnvsym cotr anbi12i unss 19.28v bitr2i 3bitr3i 3anbi3i ) DEFEGZE
      HDIZEJZEEUBZUCEKZLULUMAMZBMZENZURUQENOZUSURCMZENPUQVAENOZPCQZBQZAQZLDEUAU
      PVEULUMUNEKZUOEKZPUTBQZAQZVBCQZBQZAQZPZUPVEVFVIVGVLABEUDABCEUEUFUNUOEUGVE
      VHVKPZAQVMVDVNAVDUTVJPZBQVNVCVOBUTVBCUHRUTVJBSTRVHVKASUIUJUKT $.
  $}

  $( Define the ` R ` -coset of ` A ` .  Exercise 35 of [Enderton] p. 61.  This
     is called the equivalence class of ` A ` modulo ` R ` when ` R ` is an
     equivalence relation (i.e. when ` Er R ` ; see ~ dfer2 ).  In this case,
     ` A ` is a representative (member) of the equivalence class ` [ A ] R ` ,
     which contains all sets that are equivalent to ` A ` .  Definition of
     [Enderton] p. 57 uses the notation ` [ A ] ` (subscript) ` R ` , although
     we simply follow the brackets by ` R ` since we don't have subscripted
     expressions.  For an alternate definition, see ~ dfec2 .  (Contributed by
     NM, 23-Jul-1995.) $)
  df-ec $a |- [ A ] R = ( R " { A } ) $.

  ${
    $d y A $.  $d y R $.
    $( Alternate definition of ` R ` -coset of ` A ` .  Definition 34 of
       [Suppes] p. 81.  (Contributed by NM, 3-Jan-1997.)  (Proof shortened by
       Mario Carneiro, 9-Jul-2014.) $)
    dfec2 $p |- ( A e. V -> [ A ] R = { y | A R y } ) $=
      ( wcel cec csn cima cv wbr cab df-ec imasng syl5eq ) BDEBCFCBGHBAICJAKBCL
      ABDCMN $.
  $}

  $( An equivalence class modulo a set is a set.  (Contributed by NM,
     24-Jul-1995.) $)
  ecexg $p |- ( R e. B -> [ A ] R e. _V ) $=
    ( wcel cec csn cima cvv df-ec imaexg syl5eqel ) CBDACECAFZGHACICLBJK $.

  $( A nonempty equivalence class implies the representative is a set.
     (Contributed by Mario Carneiro, 9-Jul-2014.) $)
  ecexr $p |- ( A e. [ B ] R -> B e. _V ) $=
    ( cvv wcel csn cima cec c0 wceq n0i wn snprc imaeq2 sylbi ima0 syl6eq nsyl2
    df-ec eleq2s ) BDEZACBFZGZBCHAUCEUCIJUAUCAKUALZUCCIGZIUDUBIJUCUEJBMUBICNOCP
    QRBCST $.

  ${
    $d x y A $.  $d x y R $.
    $( Define quotient set. ` R ` is usually an equivalence relation.
       Definition of [Enderton] p. 58.  (Contributed by NM, 23-Jul-1995.) $)
    df-qs $a |- ( A /. R ) = { y | E. x e. A y = [ x ] R } $.
  $}

  $( Equality theorem for equivalence predicate.  (Contributed by NM,
     4-Jun-1995.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
  ereq1 $p |- ( R = S -> ( R Er A <-> S Er A ) ) $=
    ( wceq wrel cdm ccnv ccom cun wss releq dmeq eqeq1d cnveq coeq1 coeq2 eqtrd
    w3a wer df-er uneq12d sseq1d sseq2 bitrd 3anbi123d 3bitr4g ) BCDZBEZBFZADZB
    GZBBHZIZBJZRCEZCFZADZCGZCCHZIZCJZRABSACSUGUHUOUJUQUNVABCKUGUIUPABCLMUGUNUTB
    JVAUGUMUTBUGUKURULUSBCNUGULCBHUSBCBOBCCPQUAUBBCUTUCUDUEABTACTUF $.

  $( Equality theorem for equivalence predicate.  (Contributed by Mario
     Carneiro, 12-Aug-2015.) $)
  ereq2 $p |- ( A = B -> ( R Er A <-> R Er B ) ) $=
    ( wceq wrel cdm ccnv ccom cun wss w3a wer eqeq2 3anbi2d df-er 3bitr4g ) ABD
    ZCEZCFZADZCGCCHICJZKRSBDZUAKACLBCLQTUBRUAABSMNACOBCOP $.

  $( An equivalence relation is a relation.  (Contributed by Mario Carneiro,
     12-Aug-2015.) $)
  errel $p |- ( R Er A -> Rel R ) $=
    ( wer wrel cdm wceq ccnv ccom cun wss df-er simp1bi ) ABCBDBEAFBGBBHIBJABKL
    $.

  $( The domain of an equivalence relation.  (Contributed by Mario Carneiro,
     12-Aug-2015.) $)
  erdm $p |- ( R Er A -> dom R = A ) $=
    ( wer wrel cdm wceq ccnv ccom cun wss df-er simp2bi ) ABCBDBEAFBGBBHIBJABKL
    $.

  ${
    ersym.1 $e |- ( ph -> R Er X ) $.
    ersym.2 $e |- ( ph -> A R B ) $.
    $( Elementhood in the field of an equivalence relation.  (Contributed by
       Mario Carneiro, 12-Aug-2015.) $)
    ercl $p |- ( ph -> A e. X ) $=
      ( cdm wrel wbr wcel wer errel syl releldm syl2anc wceq erdm eleqtrd ) ABD
      HZEADIZBCDJBTKAEDLZUAFEDMNGBCDOPAUBTEQFEDRNS $.

    $( An equivalence relation is symmetric.  (Contributed by NM, 4-Jun-1995.)
       (Revised by Mario Carneiro, 12-Aug-2015.) $)
    ersym $p |- ( ph -> B R A ) $=
      ( ccnv wbr cvv wcel wa wb wrel wer errel syl brrelex12 syl2anc brcnvg cun
      ancoms mpbird ccom wss cdm wceq df-er simp3bi unssad ssbrd mpd ) ACBDHZIZ
      CBDIAUNBCDIZGABJKZCJKZLZUNUOMZADNZUOURAEDOZUTFEDPQGBCDRSUQUPUSCBJJDTUBQUC
      AUMDCBAUMDDUDZDAVAUMVBUADUEZFVAUTDUFEUGVCEDUHUIQUJUKUL $.

    $( Elementhood in the field of an equivalence relation.  (Contributed by
       Mario Carneiro, 12-Aug-2015.) $)
    ercl2 $p |- ( ph -> B e. X ) $=
      ( ersym ercl ) ACBDEFABCDEFGHI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.  $d x R $.
    ersymb.1 $e |- ( ph -> R Er X ) $.
    $( An equivalence relation is symmetric.  (Contributed by NM, 30-Jul-1995.)
       (Revised by Mario Carneiro, 12-Aug-2015.) $)
    ersymb $p |- ( ph -> ( A R B <-> B R A ) ) $=
      ( wbr wa wer adantr simpr ersym impbida ) ABCDGZCBDGZANHBCDEAEDIZNFJANKLA
      OHCBDEAPOFJAOKLM $.

    $( An equivalence relation is transitive.  (Contributed by NM, 4-Jun-1995.)
       (Revised by Mario Carneiro, 12-Aug-2015.) $)
    ertr $p |- ( ph -> ( ( A R B /\ B R C ) -> A R C ) ) $=
      ( vx wbr wa ccom cv wex cvv wcel syl simpr brrelex syl2an wceq wrel errel
      breq2 breq1 anbi12d spcegv sylc wb simpl brrelex2 brcog syl2anc mpbird ex
      wer ccnv cun wss cdm df-er simp3bi unssbd ssbrd syld ) ABCEIZCDEIZJZBDEEK
      ZIZBDEIAVGVIAVGJZVIBHLZEIZVKDEIZJZHMZVJCNOZVGVOAEUAZVFVPVGAFEUOZVQGFEUBPZ
      VEVFQZCDERSAVGQVNVGHCNVKCTVLVEVMVFVKCBEUCVKCDEUDUEUFUGVJBNOZDNOZVIVOUHAVQ
      VEWAVGVSVEVFUIBCERSAVQVFWBVGVSVTCDEUJSHBDEENNUKULUMUNAVHEBDAEUPZVHEAVRWCV
      HUQEURZGVRVQEUSFTWDFEUTVAPVBVCVD $.

    ${
      ertrd.5 $e |- ( ph -> A R B ) $.
      ertrd.6 $e |- ( ph -> B R C ) $.
      $( A transitivity relation for equivalences.  (Contributed by Mario
         Carneiro, 9-Jul-2014.) $)
      ertrd $p |- ( ph -> A R C ) $=
        ( wbr ertr mp2and ) ABCEJCDEJBDEJHIABCDEFGKL $.

      $( A transitivity relation for equivalences.  (Contributed by Mario
         Carneiro, 9-Jul-2014.) $)
      ertr2d $p |- ( ph -> C R A ) $=
        ( ertrd ersym ) ABDEFGABCDEFGHIJK $.
    $}

    ${
      ertr3d.5 $e |- ( ph -> B R A ) $.
      ertr3d.6 $e |- ( ph -> B R C ) $.
      $( A transitivity relation for equivalences.  (Contributed by Mario
         Carneiro, 9-Jul-2014.) $)
      ertr3d $p |- ( ph -> A R C ) $=
        ( ersym ertrd ) ABCDEFGACBEFGHJIK $.
    $}

    ${
      ertr4d.5 $e |- ( ph -> A R B ) $.
      ertr4d.6 $e |- ( ph -> C R B ) $.
      $( A transitivity relation for equivalences.  (Contributed by Mario
         Carneiro, 9-Jul-2014.) $)
      ertr4d $p |- ( ph -> A R C ) $=
        ( ersym ertrd ) ABCDEFGHADCEFGIJK $.
    $}

    erref.2 $e |- ( ph -> A e. X ) $.
    $( An equivalence relation is reflexive on its field.  Compare Theorem 3M
       of [Enderton] p. 56.  (Contributed by Mario Carneiro, 6-May-2013.)
       (Revised by Mario Carneiro, 12-Aug-2015.) $)
    erref $p |- ( ph -> A R A ) $=
      ( vx cv wbr cdm wcel wex wer wceq erdm syl eleqtrrd wb eldmg mpbid adantr
      wa simpr ertr4d exlimddv ) ABGHZCIZBBCIGABCJZKZUGGLZABDUHFADCMZUHDNEDCOPQ
      ABDKUIUJRFGBCDSPTAUGUBBUFBCDAUKUGEUAAUGUCZULUDUE $.
  $}

  ${
    $d x y A $.  $d x y R $.
    $( The converse of an equivalence relation is itself.  (Contributed by
       Mario Carneiro, 12-Aug-2015.) $)
    ercnv $p |- ( R Er A -> `' R = R ) $=
      ( vx vy wrel wer ccnv wceq errel relcnv cv wbr wcel id ersymb brcnv df-br
      cop vex bitr3i 3bitr3g eqrelrdv2 mpanl1 mpancom ) BEZABFZBGZBHZABIUGEUEUF
      UHBJUFCDUGBUFDKZCKZBLZUJUIBLUJUIRZUGMZULBMUFUIUJBAUFNOUKUJUIUGLUMUJUIBCSD
      SPUJUIUGQTUJUIBQUAUBUCUD $.
  $}

  $( The range and domain of an equivalence relation are equal.  (Contributed
     by Rodolfo Medina, 11-Oct-2010.)  (Revised by Mario Carneiro,
     12-Aug-2015.) $)
  errn $p |- ( R Er A -> ran R = A ) $=
    ( wer crn ccnv cdm df-rn ercnv dmeqd erdm eqtrd syl5eq ) ABCZBDBEZFZABGMOBF
    AMNBABHIABJKL $.

  $( An equivalence relation is a subset of the cartesian product of the field.
     (Contributed by Mario Carneiro, 12-Aug-2015.) $)
  erssxp $p |- ( R Er A -> R C_ ( A X. A ) ) $=
    ( wer cdm crn cxp wrel wss errel relssdmrn syl erdm errn xpeq12d sseqtrd )
    ABCZBBDZBEZFZAAFPBGBSHABIBJKPQARAABLABMNO $.

  $( An equivalence relation is a set if its domain is a set.  (Contributed by
     Rodolfo Medina, 15-Oct-2010.)  (Proof shortened by Mario Carneiro,
     12-Aug-2015.) $)
  erex $p |- ( R Er A -> ( A e. V -> R e. _V ) ) $=
    ( wer wcel cvv cxp wss erssxp sqxpexg ssexg syl2an ex ) ABDZACEZBFEZNBAAGZH
    QFEPOABIACJBQFKLM $.

  $( An equivalence relation is a set if and only if its domain is a set.
     (Contributed by Rodolfo Medina, 15-Oct-2010.)  (Revised by Mario Carneiro,
     12-Aug-2015.) $)
  erexb $p |- ( R Er A -> ( R e. _V <-> A e. _V ) ) $=
    ( wer cvv wcel cdm dmexg erdm eleq1d syl5ib erex impbid ) ABCZBDEZADEZNBFZD
    EMOBDGMPADABHIJABDKL $.

  ${
    $d x y z R $.  $d x A $.  $d x y z ph $.
    iserd.1 $e |- ( ph -> Rel R ) $.
    iserd.2 $e |- ( ( ph /\ x R y ) -> y R x ) $.
    iserd.3 $e |- ( ( ph /\ ( x R y /\ y R z ) ) -> x R z ) $.
    iserd.4 $e |- ( ph -> ( x e. A <-> x R x ) ) $.
    $( A reflexive, symmetric, transitive relation is an equivalence relation
       on its domain.  (Contributed by Mario Carneiro, 9-Jul-2014.)  (Revised
       by Mario Carneiro, 12-Aug-2015.) $)
    iserd $p |- ( ph -> R Er A ) $=
      ( wer wceq cv wbr wi wa wal ex alrimiv wcel cdm eqidd jca dfer2 syl3anbrc
      wrel adantr simpr erref vex breldm impbid1 bitr4d eqrdv ereq2 syl mpbid
      wb ) AFUAZFKZEFKZAFUFUSUSLBMZCMZFNZVCVBFNZOZVDVCDMZFNPZVBVGFNZOZPZDQZCQZB
      QUTGAUSUBAVMBAVLCAVKDAVFVJAVDVEHRAVHVIIRUCSSSBCDUSFUDUEZAUSELUTVAURABUSEA
      VBUSTZVBVBFNZVBETAVOVPAVOVPAVOPVBFUSAUTVOVNUGAVOUHUIRVBVBFBUJZVQUKULJUMUN
      USEFUOUPUQ $.
  $}

  ${
    $d x y z R $.  $d x A $.
    iseri.1 $e |- Rel R $.
    iseri.2 $e |- ( x R y -> y R x ) $.
    iseri.3 $e |- ( ( x R y /\ y R z ) -> x R z ) $.
    iseri.4 $e |- ( x e. A <-> x R x ) $.
    $( A reflexive, symmetric, transitive relation is an equivalence relation
       on its domain.  Inference version of ~ iserd , which avoids the need to
       provide a "dummy antecedent" ` ph ` if there is no natural one to
       choose.  (Contributed by AV, 30-Apr-2021.) $)
    iseri $p |- R Er A $=
      ( wer wtru wrel a1i cv wbr adantl wa wcel wb iserd trud ) DEJKABCDEELKFMA
      NZBNZEOZUCUBEOKGPUDUCCNZEOQUBUEEOKHPUBDRUBUBEOSKIMTUA $.

    $( Alternate proof of ~ iseri , avoiding the usage of ~ trud and ` T. ` as
       antecedent by using ~ ax-mp and one of the hypotheses as antecedent.
       This results, however, in a slightly longer proof.  (Contributed by AV,
       30-Apr-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    iseriALT $p |- R Er A $=
      ( wrel wer id cv wbr adantl wa wcel wb a1i iserd ax-mp ) EJZDEKFUBABCDEUB
      LAMZBMZENZUDUCENUBGOUEUDCMZENPUCUFENUBHOUCDQUCUCENRUBISTUA $.
  $}

  ${
    swoer.1 $e |- R = ( ( X X. X ) \ ( .< u. `' .< ) ) $.
    $( Evaluate the incomparability relation.  (Contributed by Mario Carneiro,
       9-Jul-2014.) $)
    brdifun $p |- ( ( A e. X /\ B e. X ) ->
      ( A R B <-> -. ( A .< B \/ B .< A ) ) ) $=
      ( wcel wa wbr ccnv cun wn wo cxp wb cop opelxpi df-br sylibr cdif brcnvg
      breqi brdif bitri baib syl brun orbi2d syl5bb notbid bitrd ) AEGBEGHZABCI
      ZABDDJZKZIZLZABDIZBADIZMZLULABEENZIZUMUQOULABPVAGVBABEEQABVARSUMVBUQUMABV
      AUOTZIVBUQHABCVCFUBABVAUOUCUDUEUFULUPUTUPURABUNIZMULUTABDUNUGULVDUSURABEE
      DUAUHUIUJUK $.

    $d u v w R $.  $d x y z .< $.  $d x y z A $.  $d x y z B $.  $d x y z C $.
    $d u v w x y z ph $.  $d u x y z X $.  $d x y Y $.
    swoer.2 $e |- ( ( ph /\ ( y e. X /\ z e. X ) ) ->
                    ( y .< z -> -. z .< y ) ) $.
    swoer.3 $e |- ( ( ph /\ ( x e. X /\ y e. X /\ z e. X ) ) ->
                    ( x .< y -> ( x .< z \/ z .< y ) ) ) $.
    $( Incomparability under a strict weak partial order is an equivalence
       relation.  (Contributed by Mario Carneiro, 9-Jul-2014.)  (Revised by
       Mario Carneiro, 12-Aug-2015.) $)
    swoer $p |- ( ph -> R Er X ) $=
      ( cv wbr wa wo wn wb wcel brdifun syl syl2anc vu vv wrel cxp wss ccnv cun
      vw cdif difss eqsstri relxp relss mp2 a1i simpr orcom notbid ssbri adantl
      brxp sylib simprd simpld 3bitr4d mpbid simprl simplbi simprbi simprr brel
      ad2antrl wi simpl swopolem syl13anc syl6ibr orim12d or4 syl6ib mpbird wpo
      mtord swopo poirr sylan pm1.2 nsyl impbida iserd ) AUAUBUHGEEUCZAEGGUDZUE
      WLUCWKEWLFFUFUGZUIWLHWLWMUJUKZGGULEWLUMUNUOAUAKZUBKZELZMZWQWPWOELZAWQUPWR
      WOWPFLZWPWOFLZNZOZXAWTNZOZWQWSWRXBXDXBXDPWRWTXAUQUOURWRWOGQZWPGQZMZWQXCPZ
      WRWOWPWLLZXHWQXJAEWLWOWPWNUSZUTWOWPGGVAZVBZWOWPEFGHRZSWRXGXFWSXEPWRXFXGXM
      VCWRXFXGXMVDWPWOEFGHRTVEVFAWQWPUHKZELZMZMZWOXOELZWOXOFLZXOWOFLZNZOZXRYBXB
      WPXOFLZXOWPFLZNZXRWQXCAWQXPVGXRXFXGXIXRXJXFWQXJAXPXKVLZXJXFXGXLVHSZXRXJXG
      YGXJXFXGXLVISZXNTVFXRXPYFOZAWQXPVJZXRXGXOGQZXPYJPYIXRXPYLYKXPXGYLWPXOGGEW
      NVKVCSZWPXOEFGHRTVFXRYBWTYDNZXAYENZNXBYFNXRXTYNYAYOXRAXFYLXGXTYNVMAXQVNZY
      HYMYIABCDGFWOXOWPJVOVPXRYAYEXANZYOXRAYLXFXGYAYQVMYPYMYHYIABCDGFXOWOWPJVOV
      PXAYEUQVQVRWTYDXAYEVSVTWCXRXFYLXSYCPYHYMWOXOEFGHRTWAAXFWOWOELZAXFMZYRWOWO
      FLZYTNZOZYSYTUUAAGFWBXFYTOABCDGFIJWDGWOFWEWFYTWGWHYSXFXFYRUUBPAXFUPZUUCWO
      WOEFGHRTWAYRXFAYRWOWOWLLZXFEWLWOWOWNUSUUDXFXFWOWOGGVAVHSUTWIWJ $.

    ${
      swoord.4 $e |- ( ph -> B e. X ) $.
      swoord.5 $e |- ( ph -> C e. X ) $.
      swoord.6 $e |- ( ph -> A R B ) $.
      $( The incomparability equivalence relation is compatible with the
         original order.  (Contributed by Mario Carneiro, 31-Dec-2014.) $)
      swoord1 $p |- ( ph -> ( A .< C <-> B .< C ) ) $=
        ( wbr wo wcel wn wi cxp ccnv cun cdif difss eqsstri ssbri df-br opelxp1
        id cop sylbi 3syl swopolem syl13anc wb brdifun syl2anc mpbid nsyl biorf
        orc syl sylibrd olc impbid ) AEGIQZFGIQZAVHEFIQZVIRZVIAAEJSZGJSZFJSZVHV
        KUAAUKZAEFHQZEFJJUBZQZVLPHVQEFHVQIIUCUDZUEVQKVQVSUFUGUHVREFULVQSVLEFVQU
        IEFJJUJUMUNZONABCDJIEGFMUOUPAVJTVIVKUQAVJFEIQZRZVJAVPWBTZPAVLVNVPWCUQVT
        NEFHIJKURUSUTZVJWAVCVAVJVIVBVDVEAVIWAVHRZVHAAVNVMVLVIWEUAVONOVTABCDJIFG
        EMUOUPAWATVHWEUQAWBWAWDWAVJVFVAWAVHVBVDVEVG $.

      $( The incomparability equivalence relation is compatible with the
         original order.  (Contributed by Mario Carneiro, 31-Dec-2014.) $)
      swoord2 $p |- ( ph -> ( C .< A <-> C .< B ) ) $=
        ( wbr wo wcel wi id cxp ccnv cun cdif difss eqsstri ssbri df-br opelxp1
        cop sylbi swopolem syl13anc idd wn wb brdifun syl2anc mpbid olc pm2.21d
        3syl nsyl jaod syld orc impbid ) AGEIQZGFIQZAVIVJFEIQZRZVJAAGJSZEJSZFJS
        ZVIVLTAUAZOAEFHQZEFJJUBZQZVNPHVREFHVRIIUCUDZUEVRKVRVTUFUGUHVSEFUKVRSVNE
        FVRUIEFJJUJULVCZNABCDJIGEFMUMUNAVJVJVKAVJUOAVKVJAEFIQZVKRZVKAVQWCUPZPAV
        NVOVQWDUQWANEFHIJKURUSUTZVKWBVAVDVBVEVFAVJVIWBRZVIAAVMVOVNVJWFTVPONWAAB
        CDJIGFEMUMUNAVIVIWBAVIUOAWBVIAWCWBWEWBVKVGVDVBVEVFVH $.
    $}

    swoso.4 $e |- ( ph -> Y C_ X ) $.
    swoso.5 $e |- ( ( ph /\ ( x e. Y /\ y e. Y /\ x R y ) ) -> x = y ) $.
    $( If the incomparability relation is equivalent to equality in a subset,
       then the partial order strictly orders the subset.  (Contributed by
       Mario Carneiro, 30-Dec-2014.) $)
    swoso $p |- ( ph -> .< Or Y ) $=
      ( wpo cv wcel wa wbr wo w3o wss poss sylc weq wn sselda anim12dan brdifun
      swopo wb syl w3a df-3an sylan2br expr sylbird 3orcomb df-3or bitri sylibr
      orrd issod ) ABCHFAHGUAGFNHFNLABCDGFJKUIHGFUBUCABOZHPZCOZHPZQZQZVCVEFRZVE
      VCFRZSZBCUDZSZVIVLVJTZVHVKVLVHVKUEZVCVEERZVLVHVCGPZVEGPZQVPVOUJAVDVQVFVRA
      HGVCLUFAHGVELUFUGVCVEEFGIUHUKAVGVPVLVGVPQAVDVFVPULVLVDVFVPUMMUNUOUPVAVNVI
      VJVLTVMVIVLVJUQVIVJVLURUSUTVB $.
  $}

  ${
    $d w x y $.  $d x y z $.  $d y A $.  $d v x B $.
    eqer.1 $e |- ( x = y -> A = B ) $.
    eqer.2 $e |- R = { <. x , y >. | A = B } $.
    $( Lemma for ~ eqer .  (Contributed by NM, 17-Mar-2008.)  (Proof shortened
       by Mario Carneiro, 6-Dec-2016.) $)
    eqerlem $p |- ( z R w <-> [_ z / x ]_ A = [_ w / x ]_ A ) $=
      ( cv wceq wsbc csb cvv wcel wb vex nfcsb1v weq sbciegf wbr nfeq nfv csbie
      brabsb csbeq1 syl5eqr eqeq2d ax-mp csbeq1a eqeq1d syl5bb bitri ) CJZDJZGU
      AEFKZBUOLZAUNLZAUNEMZAUOEMZKZUPABUNUOGIUEUNNOURVAPCQUQVAAUNNAUSUTAUNERAUO
      ERUBUQEUTKZACSZVAUONOUQVBPDQUPVBBUONVBBUCBDSZFUTEVDFABJZEMUTAVEEFBQHUDAVE
      UOEUFUGUHTUIVCEUSUTAUNEUJUKULTUIUM $.

    $d v w x y z $.  $d v w z R $.
    $( Equivalence relation involving equality of dependent classes ` A ( x ) `
       and ` B ( y ) ` .  (Contributed by NM, 17-Mar-2008.)  (Revised by Mario
       Carneiro, 12-Aug-2015.)  (Proof shortened by AV, 1-May-2021.) $)
    eqer $p |- R Er _V $=
      ( vz vw vv cvv wceq relopabi cv csb wbr id eqerlem 3imtr4i wa eqcomd eqtr
      anbi12i wcel vex eqid mpbir 2th iseri ) HIJKECDLABEGMAHNZCOZAINZCOZLZUMUK
      LUJULEPZULUJEPUNUKUMUNQUAABHICDEFGRZABIHCDEFGRSUNUMAJNZCOZLZTUKURLUOULUQE
      PZTUJUQEPUKUMURUBUOUNUTUSUPABIJCDEFGRUCABHJCDEFGRSUJKUDUJUJEPZHUEVAUKUKLU
      KUFABHHCDEFGRUGUHUI $.

    $( Obsolete proof of ~ eqer as of 1-May-2021.  Equivalence relation
       involving equality of dependent classes ` A ( x ) ` and ` B ( y ) ` .
       (Contributed by NM, 17-Mar-2008.)  (Revised by Mario Carneiro,
       12-Aug-2015.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    eqerOLD $p |- R Er _V $=
      ( vz vw vv cvv wtru wceq a1i cv wbr csb eqerlem 3imtr4i adantl wer eqcomd
      wrel relopabi id wa eqtr anbi12i wcel wb vex eqid mpbir 2th iserd trud )
      KEUALHIJKEEUCLCDMABEGUDNHOZIOZEPZURUQEPZLAUQCQZAURCQZMZVBVAMUSUTVCVAVBVCU
      EUBABHICDEFGRZABIHCDEFGRSTUSURJOZEPZUFZUQVEEPZLVCVBAVECQZMZUFVAVIMVGVHVAV
      BVIUGUSVCVFVJVDABIJCDEFGRUHABHJCDEFGRSTUQKUIZUQUQEPZUJLVKVLHUKVLVAVAMVAUL
      ABHHCDEFGRUMUNNUOUP $.
  $}

  ${
    $d x y z $.
    $( The identity relation is an equivalence relation.  (Contributed by NM,
       10-May-1998.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.)  (Proof
       shortened by Mario Carneiro, 9-Jul-2014.) $)
    ider $p |- _I Er _V $=
      ( vx vy cv cid weq id dfid3 eqer ) ABACBCDABEFABGH $.

    $( The empty set is an equivalence relation on the empty set.  (Contributed
       by Mario Carneiro, 5-Sep-2015.)  (Proof shortened by AV, 1-May-2021.) $)
    0er $p |- (/) Er (/) $=
      ( vx vy vz c0 rel0 cv wbr cop wcel df-br noel pm2.21i sylbi adantr 2false
      bitr4i iseri ) ABCDDEAFZBFZDGZRSHZDIZSRDGZRSDJZUBUCUAKZLMTRCFZDGZSUFDGTUB
      UGUDUBUGUELMNRDIZRRHZDIZRRDGUHUJRKUIKORRDJPQ $.

    $( Obsolete proof of ~ 0er as of 1-May-2021.  The empty set is an
       equivalence relation on the empty set.  (Contributed by Mario Carneiro,
       5-Sep-2015.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    0erOLD $p |- (/) Er (/) $=
      ( vx vy vz c0 wer wtru wrel rel0 a1i cv wbr wcel df-br noel pm2.21i sylbi
      cop adantl ad2antrl wb 2false bitr4i iserd trud ) DDEFABCDDDGFHIAJZBJZDKZ
      UFUEDKZFUGUEUFQZDLZUHUEUFDMZUJUHUINZOPRUGUECJZDKZFUFUMDKUGUJUNUKUJUNULOPS
      UEDLZUEUEDKZTFUOUEUEQZDLZUPUOURUENUQNUAUEUEDMUBIUCUD $.
  $}

  $( Equality theorem for equivalence class.  (Contributed by NM,
     23-Jul-1995.) $)
  eceq1 $p |- ( A = B -> [ A ] C = [ B ] C ) $=
    ( wceq csn cima cec sneq imaeq2d df-ec 3eqtr4g ) ABDZCAEZFCBEZFACGBCGLMNCAB
    HIACJBCJK $.

  ${
    eceq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for equivalence class (deduction form).  (Contributed
       by Jim Kingdon, 31-Dec-2019.) $)
    eceq1d $p |- ( ph -> [ A ] C = [ B ] C ) $=
      ( wceq cec eceq1 syl ) ABCFBDGCDGFEBCDHI $.
  $}

  $( Equality theorem for equivalence class.  (Contributed by NM,
     23-Jul-1995.) $)
  eceq2 $p |- ( A = B -> [ C ] A = [ C ] B ) $=
    ( wceq csn cima cec imaeq1 df-ec 3eqtr4g ) ABDACEZFBKFCAGCBGABKHCAICBIJ $.

  $( Membership in an equivalence class.  Theorem 72 of [Suppes] p. 82.
     (Contributed by Mario Carneiro, 9-Jul-2014.) $)
  elecg $p |- ( ( A e. V /\ B e. W ) -> ( A e. [ B ] R <-> B R A ) ) $=
    ( wcel wa csn cima cop cec wbr elimasng ancoms df-ec eleq2i df-br 3bitr4g
    wb ) ADFZBEFZGACBHIZFZBAJCFZABCKZFBACLUATUCUDSCBAEDMNUEUBABCOPBACQR $.

  ${
    elec.1 $e |- A e. _V $.
    elec.2 $e |- B e. _V $.
    $( Membership in an equivalence class.  Theorem 72 of [Suppes] p. 82.
       (Contributed by NM, 23-Jul-1995.) $)
    elec $p |- ( A e. [ B ] R <-> B R A ) $=
      ( cvv wcel cec wbr wb elecg mp2an ) AFGBFGABCHGBACIJDEABCFFKL $.
  $}

  $( Membership in an equivalence class when ` R ` is a relation.  (Contributed
     by Mario Carneiro, 11-Sep-2015.) $)
  relelec $p |- ( Rel R -> ( A e. [ B ] R <-> B R A ) ) $=
    ( wrel cec wcel wbr cvv wa ecexr jca adantl brrelex12 ancomd elecg pm5.21nd
    elex ) CDZABCEZFZBACGZAHFZBHFZIZTUDRTUBUCASQABCJKLRUAIUCUBBACMNABCHHOP $.

  ${
    ecss.1 $e |- ( ph -> R Er X ) $.
    $( An equivalence class is a subset of the domain.  (Contributed by NM,
       6-Aug-1995.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    ecss $p |- ( ph -> [ A ] R C_ X ) $=
      ( crn cec csn cima df-ec imassrn eqsstri wer wceq errn syl syl5sseq ) ACF
      ZBCGZDSCBHZIRBCJCTKLADCMRDNEDCOPQ $.
  $}

  ${
    $d x R $.  $d x A $.
    $( A representative of a nonempty equivalence class belongs to the domain
       of the equivalence relation.  (Contributed by NM, 15-Feb-1996.)
       (Revised by Mario Carneiro, 9-Jul-2014.) $)
    ecdmn0 $p |- ( A e. dom R <-> [ A ] R =/= (/) ) $=
      ( vx cdm wcel cvv cec c0 wne elex cv wex n0 ecexr exlimiv sylbi wbr elecg
      wb vex mpan exbidv a1i eldmg 3bitr4rd pm5.21nii ) ABDZEZAFEZABGZHIZAUGJUK
      CKZUJEZCLZUICUJMZUMUICULABNOPUIUNAULBQZCLUKUHUIUMUPCULFEUIUMUPSCTULABFFRU
      AUBUKUNSUIUOUCCABFUDUEUF $.
  $}

  ${
    ereldm.1 $e |- ( ph -> R Er X ) $.
    ereldm.2 $e |- ( ph -> [ A ] R = [ B ] R ) $.
    $( Equality of equivalence classes implies equivalence of domain
       membership.  (Contributed by NM, 28-Jan-1996.)  (Revised by Mario
       Carneiro, 12-Aug-2015.) $)
    ereldm $p |- ( ph -> ( A e. X <-> B e. X ) ) $=
      ( cdm wcel cec c0 wne neeq1d ecdmn0 3bitr4g wer wceq erdm syl eleq2d
      3bitr3d ) ABDHZIZCUBIZBEICEIABDJZKLCDJZKLUCUDAUEUFKGMBDNCDNOAUBEBAEDPUBEQ
      FEDRSZTAUBECUGTUA $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.  $d x ph $.
    erth.1 $e |- ( ph -> R Er X ) $.
    erth.2 $e |- ( ph -> A e. X ) $.
    $( Basic property of equivalence relations.  Theorem 73 of [Suppes] p. 82.
       (Contributed by NM, 23-Jul-1995.)  (Revised by Mario Carneiro,
       6-Jul-2015.) $)
    erth $p |- ( ph -> ( A R B <-> [ A ] R = [ B ] R ) ) $=
      ( vx wbr cec wa wcel ertr impl sylan impbida cvv wb adantr elecg cv simpl
      wceq ersymb biimpa jca vex sylancr wrel wer errel syl 3bitr4d eqrdv erref
      brrelex2 syl2anc mpbird simpr eleqtrd ereldm mpbid ersym ) ABCDIZBDJZCDJZ
      UCZAVDKZHVEVFVHBHUAZDIZCVIDIZVIVELZVIVFLZVHVJVKVHACBDIZKVJVKVHAVNAVDUBAVD
      VNABCDEFUDUEUFAVNVJVKACBVIDEFMNOAVDVKVJABCVIDEFMNPVHVIQLZBELZVLVJRHUGZAVP
      VDGSVIBDQETUHVHVOCQLZVMVKRVQADUIZVDVRAEDUJZVSFEDUKULBCDUPOVICDQQTUHUMUNAV
      GKZCBDEAVTVGFSZWABVFLZVNWABVEVFWABVELZBBDIZAWEVGABDEFGUOSWAVPVPWDWERAVPVG
      GSZWFBBDEETUQURAVGUSZUTWAVPCELZWCVNRWFWAVPWHWFWABCDEWBWGVAVBBCDEETUQVBVCP
      $.
  $}

  ${
    erth2.1 $e |- ( ph -> R Er X ) $.
    erth2.2 $e |- ( ph -> B e. X ) $.
    $( Basic property of equivalence relations.  Compare Theorem 73 of [Suppes]
       p. 82.  Assumes membership of the second argument in the domain.
       (Contributed by NM, 30-Jul-1995.)  (Revised by Mario Carneiro,
       6-Jul-2015.) $)
    erth2 $p |- ( ph -> ( A R B <-> [ A ] R = [ B ] R ) ) $=
      ( wbr cec wceq ersymb erth eqcom syl6bb bitrd ) ABCDHCBDHZBDIZCDIZJZABCDE
      FKAPRQJSACBDEFGLRQMNO $.
  $}

  ${
    erthi.1 $e |- ( ph -> R Er X ) $.
    erthi.2 $e |- ( ph -> A R B ) $.
    $( Basic property of equivalence relations.  Part of Lemma 3N of [Enderton]
       p. 57.  (Contributed by NM, 30-Jul-1995.)  (Revised by Mario Carneiro,
       9-Jul-2014.) $)
    erthi $p |- ( ph -> [ A ] R = [ B ] R ) $=
      ( wbr cec wceq ercl erth mpbid ) ABCDHBDICDIJGABCDEFABCDEFGKLM $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.  $d x X $.
    $( Equivalence classes do not overlap.  In other words, two equivalence
       classes are either equal or disjoint.  Theorem 74 of [Suppes] p. 83.
       (Contributed by NM, 15-Jun-2004.)  (Revised by Mario Carneiro,
       9-Jul-2014.) $)
    erdisj $p |- ( R Er X ->
                ( [ A ] R = [ B ] R \/ ( [ A ] R i^i [ B ] R ) = (/) ) ) $=
      ( vx wer cec cin c0 wceq wcel wbr adantl cvv wb ecexr elecg sylancr mpbid
      syl wn cv wex neq0 wa simpl elin simplbi vex simprbi ertr4d erthi exlimdv
      ex syl5bi orrd orcomd ) DCFZACGZBCGZHZIJZUSUTJZURVBVCVBUAEUBZVAKZEUCURVCE
      VAUDURVEVCEURVEVCURVEUEZABCDURVEUFZVFAVDBCDVGVFVDUSKZAVDCLZVEVHURVEVHVDUT
      KZVDUSUTUGZUHMZVFVDNKZANKZVHVIOEUIZVFVHVNVLVDACPTVDACNNQRSVFVJBVDCLZVEVJU
      RVEVHVJVKUJMZVFVMBNKZVJVPOVOVFVJVRVQVDBCPTVDBCNNQRSUKULUNUMUOUPUQ $.
  $}

  $( An equivalence class modulo the identity relation is a singleton.
     (Contributed by NM, 24-Oct-2004.) $)
  ecidsn $p |- [ A ] _I = { A } $=
    ( cid cec csn cima df-ec imai eqtri ) ABCBADZEIABFIGH $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Equality theorem for quotient set.  (Contributed by NM, 23-Jul-1995.) $)
    qseq1 $p |- ( A = B -> ( A /. C ) = ( B /. C ) ) $=
      ( vy vx wceq cv cec wrex cab cqs rexeq abbidv df-qs 3eqtr4g ) ABFZDGEGCHF
      ZEAIZDJQEBIZDJACKBCKPRSDQEABLMEDACNEDBCNO $.

    $( Equality theorem for quotient set.  (Contributed by NM, 23-Jul-1995.) $)
    qseq2 $p |- ( A = B -> ( C /. A ) = ( C /. B ) ) $=
      ( vy vx wceq cec wrex cab cqs eceq2 eqeq2d rexbidv abbidv df-qs 3eqtr4g
      cv ) ABFZDQZEQZAGZFZECHZDISTBGZFZECHZDICAJCBJRUCUFDRUBUEECRUAUDSABTKLMNED
      CAOEDCBOP $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.
    $( Closed form of ~ elqs .  (Contributed by Rodolfo Medina,
       12-Oct-2010.) $)
    elqsg $p |- ( B e. V ->
      ( B e. ( A /. R ) <-> E. x e. A B = [ x ] R ) ) $=
      ( vy cv cec wceq wrex cqs eqeq1 rexbidv df-qs elab2g ) FGZAGDHZIZABJCQIZA
      BJFCBDKEPCIRSABPCQLMAFBDNO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.
    elqs.1 $e |- B e. _V $.
    $( Membership in a quotient set.  (Contributed by NM, 23-Jul-1995.) $)
    elqs $p |- ( B e. ( A /. R ) <-> E. x e. A B = [ x ] R ) $=
      ( cvv wcel cqs cv cec wceq wrex wb elqsg ax-mp ) CFGCBDHGCAIDJKABLMEABCDF
      NO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.
    $( Membership in a quotient set.  (Contributed by NM, 23-Jul-1995.) $)
    elqsi $p |- ( B e. ( A /. R ) -> E. x e. A B = [ x ] R ) $=
      ( cqs wcel cv cec wceq wrex elqsg ibi ) CBDEZFCAGDHIABJABCDMKL $.
  $}

  ${
    $d .~ x y $.  $d B x $.  $d W x $.  $d X x $.
    $( Membership in a quotient set by an equivalence class according to
       ` .~ ` .  (Contributed by Alexander van der Vekens, 12-Apr-2018.)
       (Revised by AV, 30-Apr-2021.) $)
    elqsecl $p |- ( B e. X -> ( B e. ( W /. .~ )
                                <-> E. x e. W B = { y | x .~ y } ) ) $=
      ( wcel cqs cv cec wceq wrex wbr cab elqsg cvv vex dfec2 mp1i eqeq2d bitrd
      rexbidv ) CFGZCEDHGCAIZDJZKZAELCUDBIDMBNZKZAELAECDFOUCUFUHAEUCUEUGCUDPGUE
      UGKUCAQBUDDPRSTUBUA $.
  $}

  ${
    $d R x $.  $d B x $.  $d A x $.
    $( Membership of an equivalence class in a quotient set.  (Contributed by
       Jeff Madsen, 10-Jun-2010.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    ecelqsg $p |- ( ( R e. V /\ B e. A ) -> [ B ] R e. ( A /. R ) ) $=
      ( vx wcel cec cv wceq wrex cqs eqid eceq1 eqeq2d rspcev mpan2 ecexg elqsg
      cvv wb syl biimpar sylan2 ) BAFZCDFZBCGZEHZCGZIZEAJZUFACKFZUDUFUFIZUJUFLU
      IULEBAUGBIUHUFUFUGBCMNOPUEUKUJUEUFSFUKUJTBDCQEAUFCSRUAUBUC $.
  $}

  ${
    ecelqsi.1 $e |- R e. _V $.
    $( Membership of an equivalence class in a quotient set.  (Contributed by
       NM, 25-Jul-1995.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    ecelqsi $p |- ( B e. A -> [ B ] R e. ( A /. R ) ) $=
      ( cvv wcel cec cqs ecelqsg mpan ) CEFBAFBCGACHFDABCEIJ $.
  $}

  ${
    ecopqsi.1 $e |- R e. _V $.
    ecopqsi.2 $e |- S = ( ( A X. A ) /. R ) $.
    $( "Closure" law for equivalence class of ordered pairs.  (Contributed by
       NM, 25-Mar-1996.) $)
    ecopqsi $p |- ( ( B e. A /\ C e. A ) -> [ <. B , C >. ] R e. S ) $=
      ( wcel wa cop cxp cec opelxpi cqs ecelqsi syl6eleqr syl ) BAHCAHIBCJZAAKZ
      HZRDLZEHBCAAMTUASDNESRDFOGPQ $.
  $}

  ${
    $d x y A $.  $d x y R $.
    $( A quotient set exists.  (Contributed by FL, 19-May-2007.)  (Revised by
       Mario Carneiro, 9-Jul-2014.) $)
    qsexg $p |- ( A e. V -> ( A /. R ) e. _V ) $=
      ( vy vx wcel cqs cv cec wceq wrex cab cvv df-qs abrexexg syl5eqel ) ACFAB
      GDHEHBIZJEAKDLMEDABNEDAQCOP $.
  $}

  ${
    qsex.1 $e |- A e. _V $.
    $( A quotient set exists.  (Contributed by NM, 14-Aug-1995.) $)
    qsex $p |- ( A /. R ) e. _V $=
      ( cvv wcel cqs qsexg ax-mp ) ADEABFDECABDGH $.
  $}

  ${
    $d x y A $.  $d x y R $.  $d x V $.
    $( The union of a quotient set.  (Contributed by NM, 9-Dec-2008.) $)
    uniqs $p |- ( R e. V -> U. ( A /. R ) = ( R " A ) ) $=
      ( vy vx wcel cv cec wceq wrex cab cuni ciun cqs cima wral ecexg ralrimivw
      cvv dfiun2g syl eqcomd df-qs unieqi csn df-ec a1i iuneq2i imaiun 3eqtr2ri
      iunid imaeq2i 3eqtr4g ) BCFZDGEGZBHZIEAJDKZLZEAUPMZABNZLBAOZUNUSURUNUPSFZ
      EAPUSURIUNVBEAUOCBQREDAUPSTUAUBUTUQEDABUCUDUSEABUOUEZOZMBEAVCMZOVAEAUPVDU
      PVDIUOAFUOBUFUGUHEBAVCUIVEABEAUKULUJUM $.
  $}

  ${
    $d x y A $.  $d x y ph $.  $d x y R $.
    qsss.1 $e |- ( ph -> R Er A ) $.
    $( A quotient set is a set of subsets of the base set.  (Contributed by
       Mario Carneiro, 9-Jul-2014.)  (Revised by Mario Carneiro,
       12-Aug-2015.) $)
    qsss $p |- ( ph -> ( A /. R ) C_ ~P A ) $=
      ( vx vy cqs cpw cv wcel cec wceq wrex vex elqs wss sseq1 syl5ibrcom selpw
      ecss syl6ibr rexlimdvw syl5bi ssrdv ) AEBCGZBHZEIZUEJUGFIZCKZLZFBMAUGUFJZ
      FBUGCENOAUJUKFBAUJUGBPZUKAULUJUIBPAUHCBDTUGUIBQREBSUAUBUCUD $.

    qsss.2 $e |- ( ph -> R e. V ) $.
    $( The union of a quotient set.  (Contributed by Mario Carneiro,
       11-Jul-2014.) $)
    uniqs2 $p |- ( ph -> U. ( A /. R ) = A ) $=
      ( cqs cuni crn cdm cima wcel wceq uniqs syl erdm imaeq2d eqtr4d imadmrn
      wer syl6eq errn eqtrd ) ABCGHZCIZBAUDCCJZKZUEAUDCBKZUGACDLUDUHMFBCDNOAUFB
      CABCTZUFBMEBCPOQRCSUAAUIUEBMEBCUBOUC $.
  $}

  ${
    $d x y A $.  $d x y R $.
    snec.1 $e |- A e. _V $.
    $( The singleton of an equivalence class.  (Contributed by NM,
       29-Jan-1999.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    snec $p |- { [ A ] R } = ( { A } /. R ) $=
      ( vy vx cv cec wceq csn wrex cab cqs eceq1 eqeq2d rexsn abbii df-qs df-sn
      3eqtr4ri ) DFZEFZBGZHZEAIZJZDKTABGZHZDKUDBLUFIUEUGDUCUGEACUAAHUBUFTUAABMN
      OPEDUDBQDUFRS $.
  $}

  ${
    ecqs.1 $e |- R e. _V $.
    $( Equivalence class in terms of quotient set.  (Contributed by NM,
       29-Jan-1999.) $)
    ecqs $p |- [ A ] R = U. ( { A } /. R ) $=
      ( cec csn cima cqs cuni df-ec cvv wcel wceq uniqs ax-mp eqtr4i ) ABDBAEZF
      ZPBGHZABIBJKRQLCPBJMNO $.
  $}

  ${
    $d y A $.
    ecid.1 $e |- A e. _V $.
    $( A set is equal to its converse epsilon coset.  (Note: converse epsilon
       is not an equivalence relation.)  (Contributed by NM, 13-Aug-1995.)
       (Revised by Mario Carneiro, 9-Jul-2014.) $)
    ecid $p |- [ A ] `' _E = A $=
      ( vy cep ccnv cec cv wcel wbr vex elec brcnv epelc 3bitri eqriv ) CADEZFZ
      ACGZQHARPIRADIRAHRAPCJZBKARDBSLRABMNO $.
  $}

  ${
    $d x y A $.
    $( A set is equal to its quotient set mod converse epsilon.  (Note:
       converse epsilon is not an equivalence relation.)  (Contributed by NM,
       13-Aug-1995.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    qsid $p |- ( A /. `' _E ) = A $=
      ( vy vx cep ccnv cqs cv cec wceq wrex wcel vex eqeq2i equcom bitri rexbii
      ecid elqs risset 3bitr4i eqriv ) BADEZFZABGZCGZUBHZIZCAJUEUDIZCAJUDUCKUDA
      KUGUHCAUGUDUEIUHUFUEUDUECLQMBCNOPCAUDUBBLRCUDASTUA $.
  $}

  ${
    $d x A $.  $d x B $.  $d x R $.  $d x ps $.  $d x ch $.
    ectocl.1 $e |- S = ( B /. R ) $.
    ectocl.2 $e |- ( [ x ] R = A -> ( ph <-> ps ) ) $.
    ${
      ectocld.3 $e |- ( ( ch /\ x e. B ) -> ph ) $.
      $( Implicit substitution of class for equivalence class.  (Contributed by
         Mario Carneiro, 9-Jul-2014.) $)
      ectocld $p |- ( ( ch /\ A e. S ) -> ps ) $=
        ( cv cec wceq wrex wcel wa wb eqcoms syl5ibcom rexlimdva elqsi eleq2s
        cqs impel ) CEDLZGMZNZDFOZBEHPCUHBDFCUFFPQAUHBKABRUGEJSTUAUIEFGUDHDFEGU
        BIUCUE $.
    $}

    ectocl.3 $e |- ( x e. B -> ph ) $.
    $( Implicit substitution of class for equivalence class.  (Contributed by
       NM, 23-Jul-1995.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    ectocl $p |- ( A e. S -> ps ) $=
      ( wtru wcel tru cv adantl ectocld mpan ) KDGLBMABKCDEFGHICNELAKJOPQ $.
  $}

  ${
    $d x R $.  $d x A $.  $d x B $.
    $( A quotient set doesn't contain the empty set.  (Contributed by NM,
       24-Aug-1995.) $)
    elqsn0 $p |- ( ( dom R = A /\ B e. ( A /. R ) ) -> B =/= (/) ) $=
      ( vx cv cec c0 wne cdm wceq eqid neeq1 wcel wa eleq2 biimpar ecdmn0 sylib
      cqs ectocld ) DEZCFZGHZBGHCIZAJZDBACACSZUFKUBBGLUEUAAMZNUAUDMZUCUEUHUGUDA
      UAOPUACQRT $.
  $}

  $( Membership of an equivalence class in a quotient set.  (Contributed by NM,
     30-Jul-1995.) $)
  ecelqsdm $p |- ( ( dom R = A /\ [ B ] R e. ( A /. R ) ) -> B e. A ) $=
    ( cdm wceq cec cqs wcel wa c0 wne elqsn0 ecdmn0 sylibr simpl eleqtrd ) CDZA
    EZBCFZACGHZIZBQAUASJKBQHASCLBCMNRTOP $.

  $( A square Cartesian product is an equivalence relation (in general it's not
     a poset).  (Contributed by FL, 31-Jul-2009.)  (Revised by Mario Carneiro,
     12-Aug-2015.) $)
  xpider $p |- ( A X. A ) Er A $=
    ( cxp wer wrel cdm wceq ccnv ccom cun relxp dmxpid cnvxp xpidtr uneq1 unss2
    wss wi unidm wa eqtr sseq2 biimpd syl mpan2 syl2im mp2 df-er mpbir3an ) AAA
    BZCUIDUIEAFUIGZUIUIHZIZUIPZAAJAKUJUIFZUKUIPZUMAALAMUNUJUIIZUIUIIZFZUOULUPPZ
    UMUJUIUINUKUIUJOURUQUIFZUSUMQZUIRURUTSUPUIFZVAUPUQUITVBUSUMUPUIULUAUBUCUDUE
    UFAUIUGUH $.

  ${
    $d u v w x A $.  $d u v w x B $.  $d u v w R $.
    $( The intersection of a nonempty family of equivalence relations is an
       equivalence relation.  (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    iiner $p |- ( ( A =/= (/) /\ A. x e. A R Er B ) ->
                  |^|_ x e. A R Er B ) $=
      ( vu wral wa cvv wrex cv wbr cop wcel wi df-br wb opex eliin ax-mp bitri
      vv vw c0 wne wer ciin cxp wss wrel r19.2z errel df-rel sylib reximi iinss
      sylibr id ersymb biimpd 3imtr3g ral2imi adantl 3imtr4g imp r19.26 anbi12i
      3syl syl5bir simpl simpr erref expcom ralimdv com12 cdm vex opeldm eleq2d
      ertr erdm biimpa sylan2 rexlimivw syl ex expdimp impbid syl6bbr iserd ) B
      UCUDZCDUEZABFZGZEUAUBCABDUFZWMWNHHUGZUHZWNUIWMWKABIDWOUHZABIWPWKABUJWKWQA
      BWKDUIWQCDUKDULUMUNABDWOUOVGWNULUPWMEJZUAJZWNKZWSWRWNKZWMWRWSLZDMZABFZWSW
      RLZDMZABFZWTXAWLXDXGNWJWKXCXFABWKWRWSDKZWSWRDKZXCXFWKXHXIWKWRWSDCWKUQZURU
      SWRWSDOZWSWRDOUTVAVBWTXBWNMZXDWRWSWNOXBHMXLXDPWRWSQAXBBDHRSTZXAXEWNMZXGWS
      WRWNOXEHMXNXGPWSWRQAXEBDHRSTVCVDWMWTWSUBJZWNKZGZWRXOWNKZWMXDWSXOLZDMZABFZ
      GZWRXOLZDMZABFZXQXRYBXCXTGZABFZWMYEXCXTABVEWLYGYENWJWKYFYDABWKXHWSXODKZGW
      RXODKYFYDWKWRWSXODCXJVSXHXCYHXTXKWSXODOVFWRXODOUTVAVBVHWTXDXPYAXMXPXSWNMZ
      YAWSXOWNOXSHMYIYAPWSXOQAXSBDHRSTVFXRYCWNMZYEWRXOWNOYCHMYJYEPWRXOQAYCBDHRS
      TVCVDWMWRCMZWRWRLZDMZABFZWRWRWNKZWMYKYNWLYKYNNWJYKWLYNYKWKYMABWKYKYMWKYKG
      ZWRWRDKYMYPWRDCWKYKVIWKYKVJVKWRWRDOUMVLVMVNVBWJWLYNYKWLYNGWKYMGZABFZWJYKW
      KYMABVEWJYRYKWJYRGYQABIYKYQABUJYQYKABYMWKWRDVOZMZYKWRWRDEVPZUUAVQWKYTYKWK
      YSCWRCDVTVRWAWBWCWDWEVHWFWGYOYLWNMZYNWRWRWNOYLHMUUBYNPWRWRQAYLBDHRSTWHWI
      $.

    $( The relative intersection of a family of equivalence relations is an
       equivalence relation.  (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    riiner $p |- ( A. x e. A R Er B ->
      ( ( B X. B ) i^i |^|_ x e. A R ) Er B ) $=
      ( wer wral cxp ciin cin c0 wa xpider wb riin0 adantl ereq1 syl mpbiri wne
      wceq iiner ancoms wss erssxp ralimi riinn0 sylan mpbird pm2.61dane ) CDEZ
      ABFZCCCGZABDHZIZEZBJUKBJTZKZUOCULEZCLUQUNULTZUOURMUPUSUKAULDBNOCUNULPQRUK
      BJSZKZUOCUMEZUTUKVBABCDUAUBVAUNUMTZUOVBMUKDULUCZABFUTVCUJVDABCDUDUEAULDBU
      FUGCUNUMPQUHUI $.
  $}

  ${
    $d x y z B $.  $d x y z ph $.  $d x y z R $.
    erinxp.r $e |- ( ph -> R Er A ) $.
    erinxp.a $e |- ( ph -> B C_ A ) $.
    $( A restricted equivalence relation is an equivalence relation.
       (Contributed by Mario Carneiro, 10-Jul-2015.)  (Revised by Mario
       Carneiro, 12-Aug-2015.) $)
    erinxp $p |- ( ph -> ( R i^i ( B X. B ) ) Er B ) $=
      ( vx vy vz wrel cv wbr wa wcel w3a brinxp2 sylib simp2d adantr simp3d cxp
      cin wss inss2 relxp relss mp2 a1i simpr simp1d wer ersym syl3anbrc simprr
      adantrr ertrd sselda erref ex pm4.71rd brin brxp anidm bitri anbi2i iserd
      syl6bbr ) AGHICDCCUAZUBZVIJZAVIVHUCVHJVJDVHUDCCUEVIVHUFUGUHAGKZHKZVILZMZV
      LCNZVKCNZVLVKDLVLVKVILVNVPVOVKVLDLZVNVMVPVOVQOAVMUIVKVLCCDPQZRVNVPVOVQVRU
      JZVNVKVLDBABDUKZVMESVNVPVOVQVRTZULVLVKCCDPUMAVMVLIKZVILZMZMZVPWBCNZVKWBDL
      VKWBVILAVMVPWCVSUOWEVOWFVLWBDLZWEWCVOWFWGOAVMWCUNVLWBCCDPQZRWEVKVLWBDBAVT
      WDESAVMVQWCWAUOWEVOWFWGWHTUPVKWBCCDPUMAVPVKVKDLZVPMZVKVKVILZAVPWIAVPWIAVP
      MVKDBAVTVPESACBVKFUQURUSUTWKWIVKVKVHLZMWJVKVKDVHVAWLVPWIWLVPVPMVPVKVKCCVB
      VPVCVDVEVDVGVF $.
  $}

  $( Restrict the relation in an equivalence class to a base set.  (Contributed
     by Mario Carneiro, 10-Jul-2015.) $)
  ecinxp $p |- ( ( ( R " A ) C_ A /\ B e. A ) ->
      [ B ] R = [ B ] ( R i^i ( A X. A ) ) ) $=
    ( cima wss wcel csn cxp cin cec wceq simpr snssd df-ss sylib imaeq2d ineq1d
    wa imass2 df-ec syl simpl sstrd eqtr2d imainrect syl6eqr 3eqtr4g ) CADZAEZB
    AFZRZCBGZDZCAAHIZULDZBCJBUNJUKUMCULAIZDZAIZUOUKURUMAIZUMUKUQUMAUKUPULCUKULA
    EZUPULKUKBAUIUJLMZULANOPQUKUMAEUSUMKUKUMUHAUKUTUMUHEVAULACSUAUIUJUBUCUMANOU
    DAACULUEUFBCTBUNTUG $.

  ${
    $d x y A $.  $d x B $.  $d x y C $.  $d x y ph $.  $d x y R $.
    $( Restrict the equivalence relation in a quotient set to the base set.
       (Contributed by Mario Carneiro, 23-Feb-2015.) $)
    qsinxp $p |- ( ( R " A ) C_ A ->
        ( A /. R ) = ( A /. ( R i^i ( A X. A ) ) ) ) $=
      ( vy vx cima wss cv cec wceq wrex cab cxp cin cqs wcel wa ecinxp rexbidva
      eqeq2d df-qs abbidv 3eqtr4g ) BAEAFZCGZDGZBHZIZDAJZCKUDUEBAALMZHZIZDAJZCK
      ABNAUINUCUHULCUCUGUKDAUCUEAOPUFUJUDAUEBQSRUADCABTDCAUITUB $.

    qsdisj.1 $e |- ( ph -> R Er X ) $.
    qsdisj.2 $e |- ( ph -> B e. ( A /. R ) ) $.
    qsdisj.3 $e |- ( ph -> C e. ( A /. R ) ) $.
    $( Members of a quotient set do not overlap.  (Contributed by Rodolfo
       Medina, 12-Oct-2010.)  (Revised by Mario Carneiro, 11-Jul-2014.) $)
    qsdisj $p |- ( ph -> ( B = C \/ ( B i^i C ) = (/) ) ) $=
      ( vx vy wcel wceq cin c0 wo cv cec eqeq1d orbi12d cqs eqid eqeq1 ineq1 wa
      eqeq2 ineq2 wer ad2antrr erdisj syl ectocld mpidan mpdan ) ACBEUAZLCDMZCD
      NZOMZPZHJQZERZDMZVADNZOMZPZUSAJCBEUOUOUBZVACMZVBUPVDURVACDUCVGVCUQOVACDUD
      STAUTBLZDUOLVEIVAKQZERZMZVAVJNZOMZPZVEAVHUEZKDBEUOVFVJDMZVKVBVMVDVJDVAUFV
      PVLVCOVJDVAUGSTVOVIBLZUEFEUHZVNAVRVHVQGUIUTVIEFUJUKULUMULUN $.
  $}

  ${
    $d x y A $.  $d x y X $.  $d x y R $.
    $( A quotient set is a disjoint set.  (Contributed by Mario Carneiro,
       10-Dec-2016.) $)
    qsdisj2 $p |- ( R Er X -> Disj_ x e. ( A /. R ) x ) $=
      ( vy wer cv wceq cin c0 wo cqs wral wdisj wcel simpl simprl simprr qsdisj
      wa ralrimivva id disjor sylibr ) DCFZAGZEGZHZUFUGIJHKZEBCLZMAUJMAUJUFNUEU
      IAEUJUJUEUFUJOZUGUJOZTZTBUFUGCDUEUMPUEUKULQUEUKULRSUAUJUFUGAEUHUBUCUD $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x R $.  $d x X $.
    $( If an element of a quotient set contains a given element, it is equal to
       the equivalence class of the element.  (Contributed by Mario Carneiro,
       12-Aug-2015.) $)
    qsel $p |- ( ( R Er X /\ B e. ( A /. R ) /\ C e. B ) -> B = [ C ] R ) $=
      ( vx wer cqs wcel cec wceq cv wi eqid eleq2 eqeq1 imbi12d wbr wa cvv syl5
      wb vex elecg mpan2 ibi simpll simpr erthi ex ectocld 3impia ) EDGZBADHZIC
      BIZBCDJZKZCFLZDJZIZUSUPKZMUOUQMUMFBADUNUNNUSBKUTUOVAUQUSBCOUSBUPPQUTURCDR
      ZUMURAIZSZVAUTVBUTURTIUTVBUBFUCCURDUSTUDUEUFVDVBVAVDVBSURCDEUMVCVBUGVDVBU
      HUIUJUAUKUL $.
  $}

  ${
    $d b c x A $.  $d b c x B $.  $d b c x C $.  $d b c x R $.
    uniinqs.1 $e |- R Er X $.
    $( Class union distributes over the intersection of two subclasses of a
       quotient space.  Compare ~ uniin .  (Contributed by FL, 25-May-2007.)
       (Proof shortened by Mario Carneiro, 11-Jul-2014.) $)
    uniinqs $p |- ( ( B C_ ( A /. R ) /\ C C_ ( A /. R ) ) ->
      U. ( B i^i C ) = ( U. B i^i U. C ) ) $=
      ( vx vb vc wss wa cin cuni a1i cv wcel wrex eluni2 c0 wceq cqs uniin elin
      anbi12i reeanv 3bitr4i simp3l simp2l inelcm 3ad2ant3 simp1l sseldd simp1r
      w3a wne wer simp2r qsdisj ord mpd eqeltrd elind elunii syl2anc rexlimdvva
      necon1ad 3expia syl5bi ssrdv eqssd ) BADUAZJZCVKJZKZBCLZMZBMZCMZLZVPVSJVN
      BCUBNVNGVSVPGOZVSPZVTHOZPZVTIOZPZKZICQHBQZVNVTVPPZVTVQPZVTVRPZKWCHBQZWEIC
      QZKWAWGWIWKWJWLHVTBRIVTCRUDVTVQVRUCWCWEHIBCUEUFVNWFWHHIBCVNWBBPZWDCPZKZWF
      WHVNWOWFUNZWCWBVOPWHVNWOWCWEUGWPBCWBVNWMWNWFUHZWPWBWDCWPWBWDLZSUOZWBWDTZW
      FVNWSWOVTWBWDUIUJWPWTWRSWPWTWRSTWPAWBWDDEEDUPWPFNWPBVKWBVLVMWOWFUKWQULWPC
      VKWDVLVMWOWFUMVNWMWNWFUQZULURUSVFUTXAVAVBVTWBVOVCVDVGVEVHVIVJ $.
  $}

  ${
    $d y z A $.  $d x B $.  $d x C $.  $d x D $.  $d x y z ph $.  $d x y z R $.
    $d y z F $.  $d x y z X $.  $d x y z Y $.
    qlift.1 $e |- F = ran ( x e. X |-> <. [ x ] R , A >. ) $.
    qlift.2 $e |- ( ( ph /\ x e. X ) -> A e. Y ) $.
    qlift.3 $e |- ( ph -> R Er X ) $.
    qlift.4 $e |- ( ph -> X e. _V ) $.
    $( ` F ` , a function lift, is a subset of ` R X. S ` .  (Contributed by
       Mario Carneiro, 23-Dec-2016.) $)
    qliftlem $p |- ( ( ph /\ x e. X ) -> [ x ] R e. ( X /. R ) ) $=
      ( cvv wcel cv cec cqs wer erex sylc ecelqsg sylan ) ADLMZBNZFMUCDOFDPMAFD
      QFLMUBJKFDLRSFUCDLTUA $.

    $( ` F ` , a function lift, is a subset of ` R X. S ` .  (Contributed by
       Mario Carneiro, 23-Dec-2016.) $)
    qliftrel $p |- ( ph -> F C_ ( ( X /. R ) X. Y ) ) $=
      ( cv cec cqs qliftlem fliftrel ) ABBLDMCFDNGEFHABCDEFGHIJKOIP $.

    $( Elementhood in the relation ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    qliftel $p |- ( ph -> ( [ C ] R F D <-> E. x e. X ( C R x /\ D = A ) ) ) $=
      ( cec wbr cv wceq wa wrex cqs qliftlem wcel wer adantr simpr erth2 anbi1d
      fliftel rexbidva bitr4d ) ADFNZEGOUKBPZFNZQZECQZRZBHSDULFOZUORZBHSABUMCUK
      EHFTIGHJABCFGHIJKLMUAKUHAURUPBHAULHUBZRZUQUNUOUTDULFHAHFUCUSLUDAUSUEUFUGU
      IUJ $.

    $( Elementhood in the relation ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    qliftel1 $p |- ( ( ph /\ x e. X ) -> [ x ] R F A ) $=
      ( cv cec cqs qliftlem fliftel1 ) ABBLDMCFDNGEFHABCDEFGHIJKOIP $.

    ${
      qliftfun.4 $e |- ( x = y -> A = B ) $.
      $( The function ` F ` is the unique function defined by
         ` F `` [ x ] = A ` , provided that the well-definedness condition
         holds.  (Contributed by Mario Carneiro, 23-Dec-2016.) $)
      qliftfun $p |- ( ph -> ( Fun F <-> A. x A. y ( x R y -> A = B ) ) ) $=
        ( cv cec wceq wi wal wa wfun wral wbr cqs qliftlem fliftfun wcel adantr
        eceq1 wer simpr ercl ercl2 jca ex pm4.71rd simprl pm5.32da bitrd imbi1d
        erth impexp syl6bb 2albidv r2al syl6bbr bitr4d ) AGUABOZFPZCOZFPZQZDEQZ
        RZCHUBBHUBZVHVJFUCZVMRZCSBSZABCVIDVKEHFUDIGHJABDFGHIJKLMUEKVHVJFUINUFAV
        RVHHUGZVJHUGZTZVNRZCSBSVOAVQWBBCAVQWAVLTZVMRWBAVPWCVMAVPWAVPTWCAVPWAAVP
        WAAVPTZVSVTWDVHVJFHAHFUJZVPLUHZAVPUKZULWDVHVJFHWFWGUMUNUOUPAWAVPVLAWATV
        HVJFHAWEWALUHAVSVTUQVAURUSUTWAVLVMVBVCVDVNBCHHVEVFVG $.

      qliftfund.6 $e |- ( ( ph /\ x R y ) -> A = B ) $.
      $( The function ` F ` is the unique function defined by
         ` F `` [ x ] = A ` , provided that the well-definedness condition
         holds.  (Contributed by Mario Carneiro, 23-Dec-2016.) $)
      qliftfund $p |- ( ph -> Fun F ) $=
        ( wfun cv wbr wceq wal wi ex alrimivv qliftfun mpbird ) AGPBQCQFRZDESZU
        AZCTBTAUHBCAUFUGOUBUCABCDEFGHIJKLMNUDUE $.
    $}

    $( The function ` F ` is the unique function defined by
       ` F `` [ x ] = A ` , provided that the well-definedness condition holds.
       (Contributed by Mario Carneiro, 23-Dec-2016.) $)
    qliftfuns $p |- ( ph -> ( Fun F <->
      A. y A. z ( y R z -> [_ y / x ]_ A = [_ z / x ]_ A ) ) ) $=
      ( cv csb cec cop cmpt crn wcel nfcv nfcsb1v nfop weq eceq1 csbeq1a cbvmpt
      opeq12d rneqi eqtri wral ralrimiva nfel1 eleq1d mpan9 csbeq1 qliftfun
      rspc ) ACDBCNZEOZBDNZEOFGHIGBHBNZFPZEQZRZSCHUSFPZUTQZRZSJVEVHBCHVDVGCVDUA
      BVFUTBVFUABUSEUBZUCBCUDZVCVFEUTVBUSFUEBUSEUFZUHUGUIUJAEITZBHUKUSHTUTITZAV
      LBHKULVLVMBUSHBUTIVIUMVJEUTIVKUNURUOLMBUSVAEUPUQ $.

    $( The domain and range of the function ` F ` .  (Contributed by Mario
       Carneiro, 23-Dec-2016.) $)
    qliftf $p |- ( ph -> ( Fun F <-> F : ( X /. R ) --> Y ) ) $=
      ( vy wfun cv cec cmpt crn wf cqs wceq qliftlem fliftf wrex cab df-qs eqid
      rnmpt eqtr4i a1i feq2d bitr4d ) AEMBFBNDOZPZQZGERFDSZGERABULCUOGEFHABCDEF
      GHIJKUAIUBAUOUNGEUOUNTAUOLNULTBFUCLUDUNBLFDUEBLFULUMUMUFUGUHUIUJUK $.

    qliftval.4 $e |- ( x = C -> A = B ) $.
    qliftval.6 $e |- ( ph -> Fun F ) $.
    $( The value of the function ` F ` .  (Contributed by Mario Carneiro,
       23-Dec-2016.) $)
    qliftval $p |- ( ( ph /\ C e. X ) -> ( F ` [ C ] R ) = B ) $=
      ( cv cec cqs qliftlem eceq1 fliftval ) ABBPZFQCEFQDHFRIGHEJABCFGHIJKLMSKU
      BEFTNOUA $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z R $.  $d x y z ps $.
    ecoptocl.1 $e |- S = ( ( B X. C ) /. R ) $.
    ecoptocl.2 $e |- ( [ <. x , y >. ] R = A -> ( ph <-> ps ) ) $.
    ecoptocl.3 $e |- ( ( x e. B /\ y e. C ) -> ph ) $.
    $( Implicit substitution of class for equivalence class of ordered pair.
       (Contributed by NM, 23-Jul-1995.) $)
    ecoptocl $p |- ( A e. S -> ps ) $=
      ( vz cxp cqs wcel cv cec wceq wi wrex elqsi cop eceq1 eqeq2d imbi1d wa wb
      eqid eqcoms syl5ibcom optocl rexlimiv syl eleq2s ) BEFGNZHOZIEUQPEMQZHRZS
      ZMUPUABMUPEHUBUTBMUPECQZDQZUCZHRZSZBTUTBTCDURFGUPUPUIVCURSZVEUTBVFVDUSEVC
      URHUDUEUFVAFPVBGPUGAVEBLABUHVDEKUJUKULUMUNJUO $.
  $}

  ${
    $d x y z w A $.  $d z w B $.  $d x y z w C $.  $d x y z w D $.  $d z w S $.
    $d x y z w R $.  $d x y ps $.  $d z w ch $.
    2ecoptocl.1 $e |- S = ( ( C X. D ) /. R ) $.
    2ecoptocl.2 $e |- ( [ <. x , y >. ] R = A -> ( ph <-> ps ) ) $.
    2ecoptocl.3 $e |- ( [ <. z , w >. ] R = B -> ( ps <-> ch ) ) $.
    2ecoptocl.4 $e |- ( ( ( x e. C /\ y e. D ) /\
                      ( z e. C /\ w e. D ) ) -> ph ) $.
    $( Implicit substitution of classes for equivalence classes of ordered
       pairs.  (Contributed by NM, 23-Jul-1995.) $)
    2ecoptocl $p |- ( ( A e. S /\ B e. S ) -> ch ) $=
      ( wcel wi cv cop cec wceq imbi2d wa ex ecoptocl com12 impcom ) IMRHMRZCUJ
      BSUJCSFGIJKLMNFTZGTZUALUBIUCBCUJPUDUJUKJRULKRUEZBUMASUMBSDEHJKLMNDTZETZUA
      LUBHUCABUMOUDUNJRUOKRUEUMAQUFUGUHUGUI $.
  $}

  ${
    $d x y z w v u A $.  $d z w v u B $.  $d v u C $.  $d x y z w v u D $.
    $d z w v u S $.  $d x y z w v u R $.  $d x y ps $.  $d z w ch $.
    $d v u th $.
    3ecoptocl.1 $e |- S = ( ( D X. D ) /. R ) $.
    3ecoptocl.2 $e |- ( [ <. x , y >. ] R = A -> ( ph <-> ps ) ) $.
    3ecoptocl.3 $e |- ( [ <. z , w >. ] R = B -> ( ps <-> ch ) ) $.
    3ecoptocl.4 $e |- ( [ <. v , u >. ] R = C -> ( ch <-> th ) ) $.
    3ecoptocl.5 $e |- ( ( ( x e. D /\ y e. D ) /\
                      ( z e. D /\ w e. D ) /\ ( v e. D /\ u e. D ) ) -> ph ) $.
    $( Implicit substitution of classes for equivalence classes of ordered
       pairs.  (Contributed by NM, 9-Aug-1995.) $)
    3ecoptocl $p |- ( ( A e. S /\ B e. S /\ C e. S ) -> th ) $=
      ( wcel wa wi cop cec wceq imbi2d 3expib ecoptocl com12 2ecoptocl 3impib
      cv ) KPUBZLPUBZMPUBZDUPUQUCUODUOBUDUOCUDUODUDGHIJLMNNOPQGUNZHUNZUEOUFLUGB
      CUOSUHIUNZJUNZUEOUFMUGCDUOTUHUOURNUBUSNUBUCZUTNUBVANUBUCZUCZBVDAUDVDBUDEF
      KNNOPQEUNZFUNZUEOUFKUGABVDRUHVENUBVFNUBUCVBVCAUAUIUJUKULUKUM $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u D $.  $d x y z w v u .~ $.  $d x y H $.  $d z w v u G $.
    $d x y ph $.  $d z w v u ps $.
    brecop.1 $e |- .~ e. _V $.
    brecop.2 $e |- .~ Er ( G X. G ) $.
    brecop.4 $e |- H = ( ( G X. G ) /. .~ ) $.
    brecop.5 $e |- .<_ = { <. x , y >. | ( ( x e. H /\ y e. H ) /\
                      E. z E. w E. v E. u ( ( x = [ <. z , w >. ] .~ /\
                      y = [ <. v , u >. ] .~ ) /\ ph ) ) } $.
    brecop.6 $e |- ( ( ( ( z e. G /\ w e. G ) /\ ( A e. G /\ B e. G ) ) /\
                       ( ( v e. G /\ u e. G ) /\ ( C e. G /\ D e. G ) ) ) ->
                     ( ( [ <. z , w >. ] .~ = [ <. A , B >. ] .~ /\
                         [ <. v , u >. ] .~ = [ <. C , D >. ] .~ ) ->
                     ( ph <-> ps ) ) ) $.
    $( Binary relation on a quotient set.  Lemma for real number construction.
       (Contributed by NM, 29-Jan-1996.) $)
    brecop $p |- ( ( ( A e. G /\ B e. G ) /\ ( C e. G /\ D e. G ) ) ->
                ( [ <. A , B >. ] .~ .<_ [ <. C , D >. ] .~ <-> ps ) ) $=
      ( wcel wa cop cec wbr cv wceq wex ecopqsi copab df-br eleq2i bitri anbi1d
      wb eqeq1 4exbidv anbi2d opelopab2 syl5bb syl2an opeq12 eceq1d anim12i cxp
      wi opelxpi opelxp wer a1i id ereldm syl5bbr syl5ibr im2anan9 an4s ex mpdd
      com13 pm5.74d cgsex4g eqcom anbi12i biimt anbi12d 3bitr4d bitrd ) INUBJNU
      BUCZKNUBLNUBUCZUCZIJUDZMUEZKLUDZMUEZPUFZWMEUGZFUGZUDZMUEZUHZWOGUGZHUGZUDZ
      MUEZUHZUCZAUCZHUIGUIFUIEUIZBWIWMOUBZWOOUBZWPXIUPWJNIJMOQSUJNKLMOQSUJWPWMW
      OUDZCUGZOUBDUGZOUBUCXMWTUHZXNXEUHZUCZAUCZHUIGUIFUIEUIZUCCDUKZUBZXJXKUCXIW
      PXLPUBYAWMWOPULPXTXLTUMUNXSXAXPUCZAUCZHUIGUIFUIEUIXICDWMWOOOXMWMUHZXRYCEF
      GHYDXQYBAYDXOXAXPXMWMWTUQUOUOURXNWOUHZYCXHEFGHYEYBXGAYEXPXFXAXNWOXEUQUSUO
      URUTVAVBWKWTWMUHZXEWOUHZUCZWKAVGZUCZHUIGUIFUIEUIWKBVGZXIBYIYKYHEFGHIJKLNN
      WQIUHWRJUHUCZYFXBKUHXCLUHUCZYGYLWSWLMWQWRIJVCVDYMXDWNMXBXCKLVCVDVEYHWKABY
      HWKWQNUBWRNUBUCZXBNUBXCNUBUCZUCZABUPZYFWIYNYGWJYOWIYNYFWLNNVFZUBZIJNNVHYN
      WSYRUBYFYSWQWRNNVIYFWSWLMYRYRMVJZYFRVKYFVLVMVNVOWJYOYGWNYRUBZKLNNVHYOXDYR
      UBYGUUAXBXCNNVIYGXDWNMYRYTYGRVKYGVLVMVNVOVPYPWKYHYQYPWKYHYQVGZYNWIYOWJUUB
      UAVQVRVTVSWAWBWKXHYJEFGHWKXGYHAYIXGYHUPWKXAYFXFYGWMWTWCWOXEWCWDVKWKAWEWFU
      RWKBWEWGWH $.
  $}

  ${
    brecop2.1 $e |- .~ e. _V $.
    brecop2.5 $e |- dom .~ = ( G X. G ) $.
    brecop2.6 $e |- H = ( ( G X. G ) /. .~ ) $.
    brecop2.7 $e |- R C_ ( H X. H ) $.
    brecop2.8 $e |- .<_ C_ ( G X. G ) $.
    brecop2.9 $e |- -. (/) e. G $.
    brecop2.10 $e |- dom .+ = ( G X. G ) $.
    brecop2.11 $e |- ( ( ( A e. G /\ B e. G ) /\ ( C e. G /\ D e. G ) ) ->
                    ( [ <. A , B >. ] .~ R [ <. C , D >. ] .~ <->
                    ( A .+ D ) .<_ ( B .+ C ) ) ) $.
    $( Binary relation on a quotient set.  Lemma for real number construction.
       Eliminates antecedent from last hypothesis.  (Contributed by NM,
       13-Feb-1996.) $)
    brecop2 $p |- ( [ <. A , B >. ] .~ R [ <. C , D >. ] .~ <->
                    ( A .+ D ) .<_ ( B .+ C ) ) $=
      ( wcel wa cop cec wbr co brel cxp cqs cdm wceq ecelqsdm mpan eleq2s sylib
      opelxp anim12i syl ndmovrcl an42 pm5.21nii ) ABUAZFUBZCDUAZFUBZGUCZAHSZBH
      SZTZCHSZDHSZTZTZADEUDZBCEUDZJUCZVDVAISZVCISZTVKVAVCIIGNUEVOVGVPVJVOUTHHUF
      ZSZVGVRVAVQFUGZIFUHVQUIZVAVSSVRLVQUTFUJUKMULABHHUNUMVPVBVQSZVJWAVCVSIVTVC
      VSSWALVQVBFUJUKMULCDHHUNUMUOUPVNVEVITZVFVHTZTZVKVNVLHSZVMHSZTWDVLVMHHJOUE
      WEWBWFWCADHEQPUQBCHEQPUQUOUPVEVIVFVHURUMRUS $.
  $}

  ${
    $d p q r s t u w x y z A $.  $d p q r s t u w x y z B $.  $d p q x y z L $.
    $d p q w x y z J $.  $d p q r s t u x y z P $.  $d p q r s t u w x y z R $.
    $d p q w x y z K $.  $d p q r s t u x y z Q $.  $d p q r s t u w x y z S $.
    $d p q r s t u w x y z .+ $.  $d p q r s t u w x y z ph $.
    $d p q r s t u w x y z T $.  $d p q r s t u w z X $.
    $d p q r s t u w z Y $.
    eropr.1 $e |- J = ( A /. R ) $.
    eropr.2 $e |- K = ( B /. S ) $.
    eropr.3 $e |- ( ph -> T e. Z ) $.
    eropr.4 $e |- ( ph -> R Er U ) $.
    eropr.5 $e |- ( ph -> S Er V ) $.
    eropr.6 $e |- ( ph -> T Er W ) $.
    eropr.7 $e |- ( ph -> A C_ U ) $.
    eropr.8 $e |- ( ph -> B C_ V ) $.
    eropr.9 $e |- ( ph -> C C_ W ) $.
    eropr.10 $e |- ( ph -> .+ : ( A X. B ) --> C ) $.
    eropr.11 $e |- ( ( ph /\ ( ( r e. A /\ s e. A ) /\ ( t e. B /\ u e. B ) ) )
                      -> ( ( r R s /\ t S u ) -> ( r .+ t ) T ( s .+ u ) ) ) $.
    $( Lemma for ~ erov and ~ eroprf .  (Contributed by Jeff Madsen,
       10-Jun-2010.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    eroveu $p |- ( ( ph /\ ( X e. J /\ Y e. K ) ) -> E! z E. p e. A E. q e. B
                ( ( X = [ p ] R /\ Y = [ q ] S ) /\ z = [ ( p .+ q ) ] T ) ) $=
      ( vw wcel wa cv cec wceq co wrex wex weq wal weu cqs elqsi eleq2s anim12i
      wi adantl reeanv sylibr adantr ecexg elisset 3syl biantrud 2rexbidv mpbid
      19.42v bicomi rexbii rexcom4 bitri sylib eceq1 eqeq2d anbi1d oveq1 eceq1d
      cvv anbi12d anbi2d oveq2 cbvrex2v anbi12i bitr4i wbr wer wss simprll erth
      sseldd simprrl cxp wf fovrnd 3imtr3d eqeq2 biimprcd syl6 impd wb bi2anan9
      eqeq1 imbi12d syl5ibrcom anassrs rexlimdvva syl5bir alrimivv eu4 sylanbrc
      ) AQMUPZRNUPZUQZUQZQUCURZIUSZUTZRUBURZJUSZUTZUQZBURZYJYMHVAZKUSZUTZUQZUBF
      VBZUCEVBZBVCZUUCYPUOURZYSUTZUQZUBFVBUCEVBZUQZBUOVDZVKZUOVEBVEUUCBVFYIYPYT
      BVCZUQZUBFVBZUCEVBZUUDYIYPUBFVBUCEVBZUUOYIYLUCEVBZYOUBFVBZUQZUUPYHUUSAYFU
      UQYGUURUUQQEIVGMUCEQIVHUDVIUURRFJVGNUBFRJVHUEVIVJVLYLYOUCUBEFVMVNYIYPUUMU
      CUBEFYIUULYPYIKSUPZYSWMUPUULAUUTYHUFVOYRSKVPBYSWMVQVRVSVTWAUUOUUBBVCZUCEV
      BUUDUUNUVAUCEUUNUUABVCZUBFVBUVAUUMUVBUBFUVBUUMYPYTBWBWCWDUUAUBBFWEWFWDUUB
      UCBEWEWFWGYIUUKBUOAUUKYHUUIQUAURZIUSZUTZRDURZJUSZUTZUQZYQUVCUVFHVAZKUSZUT
      ZUQZDFVBZQTURZIUSZUTZRCURZJUSZUTZUQZUUEUVOUVRHVAZKUSZUTZUQZCFVBZUQZTEVBUA
      EVBZAUUJUWHUVNUAEVBZUWFTEVBZUQUUIUVNUWFUATEEVMUUCUWIUUHUWJUUAUVMUVEYOUQZY
      QUVCYMHVAZKUSZUTZUQUCUBUADEFUCUAVDZYPUWKYTUWNUWOYLUVEYOUWOYKUVDQYJUVCIWHW
      IWJUWOYSUWMYQUWOYRUWLKYJUVCYMHWKWLWIWNUBDVDZUWKUVIUWNUVLUWPYOUVHUVEUWPYNU
      VGRYMUVFJWHWIWOUWPUWMUVKYQUWPUWLUVJKYMUVFUVCHWPWLWIWNWQUUGUWEUVQYOUQZUUEU
      VOYMHVAZKUSZUTZUQUCUBTCEFUCTVDZYPUWQUUFUWTUXAYLUVQYOUXAYKUVPQYJUVOIWHWIWJ
      UXAYSUWSUUEUXAYRUWRKYJUVOYMHWKWLWIWNUBCVDZUWQUWAUWTUWDUXBYOUVTUVQUXBYNUVS
      RYMUVRJWHWIWOUXBUWSUWCUUEUXBUWRUWBKYMUVRUVOHWPWLWIWNWQWRWSAUWGUUJUATEEUWG
      UVMUWEUQZCFVBDFVBAUVCEUPZUVOEUPZUQZUQZUUJUVMUWEDCFFVMUXGUXCUUJDCFFAUXFUVF
      FUPZUVRFUPZUQZUXCUUJVKAUXFUXJUQZUQZUVMUWEUUJUXLUWEUUJVKUVMUVDUVPUTZUVGUVS
      UTZUQZUWDUQZUVKUUEUTZVKUXLUXOUWDUXQUXLUXOUVKUWCUTZUWDUXQVKUXLUVCUVOIWTZUV
      FUVRJWTZUQUVJUWBKWTUXOUXRUNUXLUXSUXMUXTUXNUXLUVCUVOILALIXAUXKUGVOUXLELUVC
      AELXBUXKUJVOAUXDUXEUXJXCZXEXDUXLUVFUVRJOAOJXAUXKUHVOUXLFOUVFAFOXBUXKUKVOA
      UXFUXHUXIXFZXEXDWNUXLUVJUWBKPAPKXAUXKUIVOUXLGPUVJAGPXBUXKULVOUXLUVCUVFGEF
      HAEFXGGHXHUXKUMVOUYAUYBXIXEXDXJUWDUXQUXRUUEUWCUVKXKXLXMXNUVMUWEUXPUUJUXQU
      VIUWEUXPXOUVLUVIUWAUXOUWDUVEUVQUXMUVHUVTUXNQUVDUVPXQRUVGUVSXQXPWJVOUVLUUJ
      UXQXOUVIYQUVKUUEXQVLXRXSXNXTYAYBYAYBVOYCUUCUUHBUOUUJUUAUUGUCUBEFUUJYTUUFY
      PYQUUEYSXQWOVTYDYE $.

    eropr.12 $e |- .+^ = { <. <. x , y >. , z >. | E. p e. A E. q e. B
                ( ( x = [ p ] R /\ y = [ q ] S ) /\ z = [ ( p .+ q ) ] T ) } $.
    $( Lemma for ~ erov and ~ eroprf .  (Contributed by Jeff Madsen,
       10-Jun-2010.)  (Revised by Mario Carneiro, 30-Dec-2014.) $)
    erovlem $p |- ( ph -> .+^ = ( x e. J , y e. K |->
      ( iota z E. p e. A E. q e. B
        ( ( x = [ p ] R /\ y = [ q ] S ) /\ z = [ ( p .+ q ) ] T ) ) ) ) $=
      ( vw cv cec wceq wa co wrex coprab wcel cio cmpt2 simpl reximi cqs eleq2i
      vex elqs bitri anbi12i reeanv bitr4i sylibr pm4.71ri weu eroveu iota1 syl
      wb eqcom syl6bb pm5.32da syl5bb oprabbidv df-mpt2 nfv nfiota1 nfeq2 eqeq1
      nfan anbi2d cbvoprab3 eqtr4i 3eqtr4g ) ABURZUDURZLUSUTZCURZUCURZMUSUTZVAZ
      DURZXAXDJVBNUSUTZVAZUCHVCZUDGVCZBCDVDWTPVEZXCQVEZVAZXGXKDVFZUTZVAZBCDVDZK
      BCPQXOVGZAXKXQBCDXKXNXKVAAXQXKXNXKXFUCHVCZUDGVCZXNXJXTUDGXIXFUCHXFXHVHVIV
      IXNXBUDGVCZXEUCHVCZVAYAXLYBXMYCXLWTGLVJZVEYBPYDWTUEVKUDGWTLBVLVMVNXMXCHMV
      JZVEYCQYEXCUFVKUCHXCMCVLVMVNVOXBXEUDUCGHVPVQVRVSAXNXKXPAXNVAZXKXOXGUTZXPY
      FXKDVTXKYGWDADEFGHIJLMNOPQRSWTXCTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOWAXKDWBWCX
      OXGWEWFWGWHWIUPXSXNUQURZXOUTZVAZBCUQVDXRBCUQPQXOWJXQYJBCDUQXQUQWKXNYIDXND
      WKDYHXOXKDWLWMWOXGYHUTXPYIXNXGYHXOWNWPWQWRWS $.

    eropr.13 $e |- ( ph -> R e. X ) $.
    eropr.14 $e |- ( ph -> S e. Y ) $.
    $( The value of an operation defined on equivalence classes.  (Contributed
       by Jeff Madsen, 10-Jun-2010.)  (Revised by Mario Carneiro,
       30-Dec-2014.) $)
    erov $p |- ( ( ph /\ P e. A /\ Q e. B )
                             -> ( [ P ] R .+^ [ Q ] S ) = [ ( P .+ Q ) ] T ) $=
      ( wcel w3a cec co cv wceq wa cio cvv cmpt2 erovlem 3ad2ant1 simprl eqeq1d
      wrex simprr anbi12d 2rexbidv iotabidv cqs ecelqsg syl6eleqr sylan 3adant3
      anbi1d 3adant2 iotaex a1i ovmpt2d pm3.2i eceq1 eqeq2d oveq1 eceq1d anbi2d
      eqid oveq2 rspc2ev mp3an3 3adant1 ecexg syl weu simp1 eroveu simpr iota2d
      syl12anc mpbid eqtrd ) AJGVCZMHVCZVDZJNVEZMOVEZLVFXPUHVGZNVEZVHZXQUGVGZOV
      EZVHZVIZDVGZXRYAKVFZPVEZVHZVIZUGHVQUHGVQZDVJZJMKVFZPVEZXOBCXPXQRSBVGZXSVH
      ZCVGZYBVHZVIZYHVIZUGHVQUHGVQZDVJZYKLVKAXMLBCRSUUAVLVHXNABCDEFGHIKLNOPQRST
      UAUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTVMVNXOYNXPVHZYPXQVHZVIVIZYTYJDUUDYSYI
      UHUGGHUUDYRYDYHUUDYOXTYQYCUUDYNXPXSXOUUBUUCVOVPUUDYPXQYBXOUUBUUCVRVPVSWGV
      TWAAXMXPRVCZXNANUBVCZXMUUEVAUUFXMVIXPGNWBRGJNUBWCUIWDWEWFZAXNXQSVCZXMAOUC
      VCZXNUUHVBUUIXNVIXQHOWBSHMOUCWCUJWDWEWHZYKVKVCXOYJDWIWJWKXOYDYMYGVHZVIZUG
      HVQUHGVQZYKYMVHXMXNUUMAXMXNXPXPVHZXQXQVHZVIZYMYMVHZVIZUUMUUPUUQUUNUUOXPWR
      XQWRWLYMWRWLUULUURUUNYCVIZYMJYAKVFZPVEZVHZVIUHUGJMGHXRJVHZYDUUSUUKUVBUVCX
      TUUNYCUVCXSXPXPXRJNWMWNWGUVCYGUVAYMUVCYFUUTPXRJYAKWOWPWNVSYAMVHZUUSUUPUVB
      UUQUVDYCUUOUUNUVDYBXQXQYAMOWMWNWQUVDUVAYMYMUVDUUTYLPYAMJKWSWPWNVSWTXAXBXO
      YJUUMDYMVKAXMYMVKVCZXNAPUDVCUVEUKYLUDPXCXDVNXOAUUEUUHYJDXEAXMXNXFUUGUUJAD
      EFGHIKNOPQRSTUAXPXQUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSXGXJXOYEYMVHZVIZYIUULU
      HUGGHUVGYHUUKYDUVGYEYMYGXOUVFXHVPWQVTXIXKXL $.

    eropr.15 $e |- L = ( C /. T ) $.
    $( Functionality of an operation defined on equivalence classes.
       (Contributed by Jeff Madsen, 10-Jun-2010.)  (Revised by Mario Carneiro,
       30-Dec-2014.) $)
    eroprf $p |- ( ph -> .+^ : ( J X. K ) --> L ) $=
      ( cxp wf cv cec wceq wa co wrex cio cmpt2 wcel cab wi cqs ad2antrr adantr
      fovrnda ecelqsg syl2anc syl6eleqr eleq1a adantld rexlimdvva abssdv eroveu
      wral syl iotacl sseldd ralrimivva eqid fmpt2 sylib erovlem feq1d mpbird
      weu ) APQVCZRKVDWTRBCPQBVEZUGVEZLVFVGCVEZUFVEZMVFVGVHZDVEZXBXDJVIZNVFZVGZ
      VHZUFHVJUGGVJZDVKZVLZVDZAXLRVMZCQWHBPWHXNAXOBCPQAXAPVMXCQVMVHZVHZXKDVNZRX
      LXQXKDRXQXJXFRVMZUGUFGHXQXBGVMXDHVMVHZVHZXIXSXEYAXHRVMXIXSVOYAXHINVPZRYAN
      UCVMZXGIVMXHYBVMAYCXPXTUJVQXQXBXDIGHJAGHVCIJVDXPUQVRVSIXGNUCVTWAVBWBXHRXF
      WCWIWDWEWFXQXKDWSXLXRVMADEFGHIJLMNOPQSTXAXCUCUDUEUFUGUHUIUJUKULUMUNUOUPUQ
      URWGXKDWJWIWKWLBCPQXLRXMXMWMWNWOAWTRKXMABCDEFGHIJKLMNOPQSTUCUDUEUFUGUHUIU
      JUKULUMUNUOUPUQURUSWPWQWR $.
  $}

  ${
    $d p q r s t u x y z A $.  $d p q r s t u x y z P $.  $d p q r s t u z X $.
    $d p q r s t u x y z .+ $.  $d p q r s t u x y z .~ $.  $d p q x y z J $.
    $d p q r s t u x y z ph $.  $d p q r s t u x y z Q $.
    eropr2.1 $e |- J = ( A /. .~ ) $.
    eropr2.2 $e |- .+^ = { <. <. x , y >. , z >. | E. p e. A E. q e. A
             ( ( x = [ p ] .~ /\ y = [ q ] .~ ) /\ z = [ ( p .+ q ) ] .~ ) } $.
    eropr2.3 $e |- ( ph -> .~ e. X ) $.
    eropr2.4 $e |- ( ph -> .~ Er U ) $.
    eropr2.5 $e |- ( ph -> A C_ U ) $.
    eropr2.6 $e |- ( ph -> .+ : ( A X. A ) --> A ) $.
    eropr2.7 $e |- ( ( ph /\ ( ( r e. A /\ s e. A ) /\ ( t e. A /\ u e. A ) ) )
      -> ( ( r .~ s /\ t .~ u ) -> ( r .+ t ) .~ ( s .+ u ) ) ) $.
    $( The value of an operation defined on equivalence classes.  (Contributed
       by Jeff Madsen, 10-Jun-2010.) $)
    erov2 $p |- ( ( ph /\ P e. A /\ Q e. A )
                          -> ( [ P ] .~ .+^ [ Q ] .~ ) = [ ( P .+ Q ) ] .~ ) $=
      ( erov ) ABCDEFGGGHIJKLLLMNNMMOOOPQRSTTUBUCUCUCUDUDUDUEUFUAUBUBUG $.

    $( Functionality of an operation defined on equivalence classes.
       (Contributed by Jeff Madsen, 10-Jun-2010.) $)
    eroprf2 $p |- ( ph -> .+^ : ( J X. J ) --> J ) $=
      ( eroprf ) ABCDEFGGGHIJJJKLLLKKMMMNOPQRRTUAUAUAUBUBUBUCUDSTTRUE $.
  $}

  ${
    $d f g h t s r A $.  $d f g h t s r B $.  $d f g h t s r C $.
    $d f g h t s r D $.  $d x y z w v u f g h t s r .+ $.  $d f g h t s r .~ $.
    $d x y z w v u f g h t s r S $.
    ecopopr.1 $e |- .~ = { <. x , y >. | ( ( x e. ( S X. S ) /\ y e. ( S X. S )
          ) /\ E. z E. w E. v E. u ( ( x = <. z , w >. /\ y = <. v , u >. ) /\
          ( z .+ u ) = ( w .+ v ) ) ) } $.
    ${
      $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
      $d x y z w v u D $.
      $( This is the first of several theorems about equivalence relations of
         the kind used in construction of fractions and signed reals, involving
         operations on equivalent classes of ordered pairs.  This theorem
         expresses the relation ` .~ ` (specified by the hypothesis) in terms
         of its operation ` F ` .  (Contributed by NM, 16-Aug-1995.) $)
      ecopoveq $p |- ( ( ( A e. S /\ B e. S ) /\
                     ( C e. S /\ D e. S ) ) ->
          ( <. A , B >. .~ <. C , D >. <-> ( A .+ D ) = ( B .+ C ) ) ) $=
        ( cv co wceq wb wa oveq12 eqeqan12d an42s opbrop ) COZFOZKPZDOZEOZKPZQZ
        GJKPZHIKPZQZABCDEFGHIJLMUDGQZUEJQZUGHQZUHIQZUJUMRUNUOSUPUQSUFUKUIULUDGU
        EJKTUGHUHIKTUAUBNUC $.
    $}

    ${
      ecopopr.com $e |- ( x .+ y ) = ( y .+ x ) $.
      $( Assuming the operation ` F ` is commutative, show that the relation
         ` .~ ` , specified by the first hypothesis, is symmetric.
         (Contributed by NM, 27-Aug-1995.)  (Revised by Mario Carneiro,
         26-Apr-2015.) $)
      ecopovsym $p |- ( A .~ B -> B .~ A ) $=
        ( wbr wcel wa wb cv wceq co vf vg vh cxp cop wex copab opabssxp eqsstri
        brel eqid breq1 breq2 bibi12d ecopoveq vex caovcom eqeq12i eqcom syl6bb
        vt bitri ancoms bitr4d 2optocl syl ibi ) GHJNZHGJNZVHGKKUDZOHVJOPVHVIQZ
        GHVJVJJJARZVJOBRZVJOPVLCRZDRZUESVMERZFRZUESPVNVQITVOVPITSPFUFEUFDUFCUFZ
        PABUGVJVJUDLVRABVJVJUHUIUJUARZUBRZUEZUCRZVARZUEZJNZWDWAJNZQGWDJNZWDGJNZ
        QVKUAUBUCVAGHKKVJVJUKWAGSWEWGWFWHWAGWDJULWAGWDJUMUNWDHSWGVHWHVIWDHGJUMW
        DHGJULUNVSKOVTKOPZWBKOWCKOPZPZWEWBVTITZWCVSITZSZWFWKWEVSWCITZVTWBITZSZW
        NABCDEFVSVTWBWCIJKLUOWQWMWLSWNWOWMWPWLABVSWCIUAUPVAUPMUQABVTWBIUBUPUCUP
        MUQURWMWLUSVBUTWJWIWFWNQABCDEFWBWCVSVTIJKLUOVCVDVEVFVG $.

      ${
        $( Assume the operation is closed. $)
        ecopopr.cl $e |- ( ( x e. S /\ y e. S ) -> ( x .+ y ) e. S ) $.
        $( Assume the operation is associative. $)
        ecopopr.ass $e |- ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) $.
        $( Assume the operation has the cancellation property. $)
        ecopopr.can $e |- ( ( x e. S /\ y e. S ) ->
                   ( ( x .+ y ) = ( x .+ z ) -> y = z ) ) $.
        $( Assuming that operation ` F ` is commutative (second hypothesis),
           closed (third hypothesis), associative (fourth hypothesis), and has
           the cancellation property (fifth hypothesis), show that the relation
           ` .~ ` , specified by the first hypothesis, is transitive.
           (Contributed by NM, 11-Feb-1996.)  (Revised by Mario Carneiro,
           26-Apr-2015.) $)
        ecopovtrn $p |- ( ( A .~ B /\ B .~ C ) -> A .~ C ) $=
          ( wcel wa co vf vg vh vt vs vr cxp w3a wbr cv cop wceq copab opabssxp
          wex eqsstri brel simpld anim12i 3anass sylibr wi breq1 anbi1d imbi12d
          eqid anbi12d imbi1d anbi2d wb ecopoveq 3adant3 3adant1 oveq12 caov411
          breq2 vex caov4 eqtr3i 3eqtr4g syl6bi caovcl ovex syl2an 3impb 3com12
          caovcan 3adant3l 3adant1r syld 3adant2 sylibrd 3optocl mpcom ) GLLUGZ
          RZHWORZIWORZUHZGHKUIZHIKUIZSZGIKUIZXBWPWQWRSZSWSWTWPXAXDWTWPWQGHWOWOK
          KAUJZWORBUJZWORSXECUJZDUJZUKULXFEUJZFUJZUKULSXGXJJTXHXIJTULSFUOEUODUO
          CUOZSABUMWOWOUGMXKABWOWOUNUPZUQURHIWOWOKXLUQUSWPWQWRUTVAUAUJZUBUJZUKZ
          UCUJZUDUJZUKZKUIZXRUEUJZUFUJZUKZKUIZSZXOYBKUIZVBGXRKUIZYCSZGYBKUIZVBW
          THYBKUIZSZYHVBXBXCVBUAUBUCUDUEUFGHILWOLWOVFXOGULZYDYGYEYHYKXSYFYCXOGX
          RKVCVDXOGYBKVCVEXRHULZYGYJYHYLYFWTYCYIXRHGKVPXRHYBKVCVGVHYBIULZYJXBYH
          XCYMYIXAWTYBIHKVPVIYBIGKVPVEXMLRZXNLRZSZXPLRXQLRSZXTLRZYALRZSZUHZYDXM
          YAJTZXNXTJTZULZYEUUAYDXPXQJTZUUBJTZUUEUUCJTZULZUUDUUAYDXMXQJTZXNXPJTZ
          ULZXPYAJTZXQXTJTZULZSZUUHUUAXSUUKYCUUNYPYQXSUUKVJYTABCDEFXMXNXPXQJKLM
          VKVLYQYTYCUUNVJYPABCDEFXPXQXTYAJKLMVKVMVGUUOUUIUULJTUUJUUMJTZUUFUUGUU
          IUUJUULUUMJVNABCXPXQXMYAJUCVQZUDVQZUAVQNPUFVQVOXNXQJTXPXTJTJTUUGUUPAB
          CXNXQXPXTJUBVQZUURUUQNPUEVQZVOABCXNXQXPXTJUUSUURUUQNPUUTVRVSVTWAYNYQY
          TUUHUUDVBZYOYNYQYSUVAYRYQYNYSUVAYQYNYSUVAYQUUELRUUBLRUVAYNYSSABXPXQLJ
          OWBABXMYALJOWBABCUUEUUBUUCLJXNXTJWCQWGWDWEWFWHWIWJYPYTYEUUDVJYQABCDEF
          XMXNXTYAJKLMVKWKWLWMWN $.

        $( Assuming that operation ` F ` is commutative (second hypothesis),
           closed (third hypothesis), associative (fourth hypothesis), and has
           the cancellation property (fifth hypothesis), show that the relation
           ` .~ ` , specified by the first hypothesis, is an equivalence
           relation.  (Contributed by NM, 16-Feb-1996.)  (Revised by Mario
           Carneiro, 12-Aug-2015.)  (Proof shortened by AV, 1-May-2021.) $)
        ecopover $p |- .~ Er ( S X. S ) $=
          ( vf vg vh cv wcel wa cxp cop co wex relopabi ecopovsym ecopovtrn wbr
          wceq wral caovcom ecopoveq mpbiri anidms rgen2a wb breq12 ralxp mpbir
          vex rspec copab opabssxp eqsstri ssbri brxp simplbi syl impbii iseri
          ) OPQIIUAZHARZVKSBRZVKSTVLCRZDRZUBUIVMERZFRZUBUITVNVQGUCVOVPGUCUITFUD
          EUDDUDCUDZTZABHJUEABCDEFORZPRZGHIJKUFABCDEFVTWAQRZGHIJKLMNUGVTVKSZVTV
          THUHZWDOVKWDOVKUJWAWBUBZWEHUHZQIUJPIUJWFPQIWAISWBISTZWFWGWGTWFWAWBGUC
          WBWAGUCUIABWAWBGPUTQUTKUKABCDEFWAWBWAWBGHIJULUMUNUOWDWFOPQIIVTWEUIWDW
          FUPVTWEVTWEHUQUNURUSVAWDVTVTVKVKUAZUHZWCHWHVTVTHVSABVBWHJVRABVKVKVCVD
          VEWIWCWCVTVTVKVKVFVGVHVIVJ $.

        $( Obsolete proof of ~ ecopover as of 1-May-2021.  Assuming that
           operation ` F ` is commutative (second hypothesis), closed (third
           hypothesis), associative (fourth hypothesis), and has the
           cancellation property (fifth hypothesis), show that the relation
           ` .~ ` , specified by the first hypothesis, is an equivalence
           relation.  (Contributed by NM, 16-Feb-1996.)  (Revised by Mario
           Carneiro, 12-Aug-2015.)  (Proof modification is discouraged.)
           (New usage is discouraged.) $)
        ecopoverOLD $p |- .~ Er ( S X. S ) $=
          ( vg vh wtru cv wa wbr vf cxp wer wrel wcel cop wceq wex relopabi a1i
          co ecopovsym adantl ecopovtrn wral vex caovcom ecopoveq mpbiri anidms
          wi rgen2a ralxp mpbir rspec copab opabssxp eqsstri ssbri brxp simplbi
          wb breq12 syl impbid1 iserd trud ) IIUBZHUCQUAOPVRHHUDQARZVRUEBRZVRUE
          SVSCRZDRZUFUGVTERZFRZUFUGSWAWDGUKWBWCGUKUGSFUHEUHDUHCUHZSZABHJUIUJUAR
          ZORZHTZWHWGHTQABCDEFWGWHGHIJKULUMWIWHPRZHTSWGWJHTQABCDEFWGWHWJGHIJKLM
          NUNUMQWGVRUEZWGWGHTZWKWLVAQWLUAVRWLUAVRUOWHWJUFZWMHTZPIUOOIUOWNOPIWHI
          UEWJIUESZWNWOWOSWNWHWJGUKWJWHGUKUGABWHWJGOUPPUPKUQABCDEFWHWJWHWJGHIJU
          RUSUTVBWLWNUAOPIIWGWMUGWLWNVLWGWMWGWMHVMUTVCVDVEUJWLWGWGVRVRUBZTZWKHW
          PWGWGHWFABVFWPJWEABVRVRVGVHVIWQWKWKWGWGVRVRVJVKVNVOVPVQ $.
      $}
    $}
  $}

  ${
    $d x y .+ $.  $d x y S $.  $d x y A $.  $d x y B $.  $d x y C $.
    $d x y D $.
    eceqoveq.5 $e |- .~ Er ( S X. S ) $.
    eceqoveq.7 $e |- dom .+ = ( S X. S ) $.
    eceqoveq.8 $e |- -. (/) e. S $.
    eceqoveq.9 $e |- ( ( x e. S /\ y e. S ) -> ( x .+ y ) e. S ) $.
    eceqoveq.10 $e |- ( ( ( A e. S /\ B e. S ) /\
                     ( C e. S /\ D e. S ) ) ->
          ( <. A , B >. .~ <. C , D >. <-> ( A .+ D ) = ( B .+ C ) ) ) $.
    $( Equality of equivalence relation in terms of an operation.  (Contributed
       by NM, 15-Feb-1996.)  (Proof shortened by Mario Carneiro,
       12-Aug-2015.) $)
    eceqoveq $p |- ( ( A e. S /\ C e. S ) ->
                      ( [ <. A , B >. ] .~ = [ <. C , D >. ] .~ <->
                      ( A .+ D ) = ( B .+ C ) ) ) $=
      ( wcel wa wceq syl wn c0 cop cec co wb cxp opelxpi ad2antrr wer a1i simpr
      ereldm mpbid opelxp2 ex wi caovcl syl5ibr ndmovrcl simprd syl6com adantll
      eleq1 wbr adantr erth bitr3d expr pm5.21ndd an32s eqcom erdm ax-mp eleq2i
      wne cdm ecdmn0 opelxp 3bitr3i simplbi2 ad2antlr necon2bd con3i ndmov syl6
      mtbiri simprbi necon1bd impbid syl5bb necon1bi adantl eqeq1d simpl eqeq2d
      syl5 3bitr4d pm2.61dan ) CIOZEIOZPZDIOZCDUAZHUBZEFUAZHUBZQZCFGUCZDEGUCZQZ
      UDZWRXAWSXJWRXAPZWSPZFIOZXFXIXLXFXMXLXFPZXDIIUEZOZXMXNXBXOOZXPXKXQWSXFCDI
      IUFZUGXNXBXDHXOXOHUHZXNJUIXLXFUJUKULEFIIUMRUNXAWSXIXMUOWRXIXAWSPZXGIOZXMX
      TYAXIXHIOABDEIGMUPXGXHIVBUQYAWRXMCFIGKLURUSUTVAXKWSXMXJXKWSXMPZPZXBXDHVCX
      FXIYCXBXDHXOXSYCJUIXKXQYBXRVDVENVFVGVHVIWTXASZPZTXEQZXGTQZXFXIYFXETQZYEYG
      TXEVJYEYHYGYEYHXMSZYGYEXMXETWSXMXETVNZUOWRYDYJWSXMXDHVOZOXPYJYBYKXOXDXSYK
      XOQJXOHVKVLZVMXDHVPEFIIVQVRZVSVTWAYIWRXMPZSYGYNXMWRXMUJWBCFIGKWCRWDYGYASY
      EYHYGYATIOLXGTIVBWEYEYAXETYJXMYEYAYJWSXMYMWFWRXMYAUOWSYDWRXMYAABCFIGMUPUN
      UGWOWGWOWHWIYEXCTXEYDXCTQWTXAXCTXCTVNZWRXAXBYKOXQYOXKYKXOXBYLVMXBHVPCDIIV
      QVRWFWJWKWLYEXHTXGYDXHTQZWTYDXTSYPXTXAXAWSWMWBDEIGKWCRWKWNWPWQ $.
  $}

  ${
    $d x y z w A $.  $d z w B $.  $d x y z w .+ $.  $d x y z w .~ $.
    $d x y z w S $.  $d z w C $.
    ecovcom.1 $e |- C = ( ( S X. S ) /. .~ ) $.
    $( D,G for AFB $)
    ecovcom.2 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
 ( [ <. x , y >. ] .~ .+ [ <. z , w >. ] .~ ) = [ <. D , G >. ] .~ ) $.
    $( H,J for BFA $)
    ecovcom.3 $e |- ( ( ( z e. S /\ w e. S ) /\ ( x e. S /\ y e. S ) ) ->
 ( [ <. z , w >. ] .~ .+ [ <. x , y >. ] .~ ) = [ <. H , J >. ] .~ ) $.
    ecovcom.4 $e |- D = H $.
    ecovcom.5 $e |- G = J $.
    $( Lemma used to transfer a commutative law via an equivalence relation.
       (Contributed by NM, 29-Aug-1995.)  (Revised by David Abernethy,
       4-Jun-2013.) $)
    ecovcom $p |- ( ( A e. C /\ B e. C ) -> ( A .+ B ) = ( B .+ A ) ) $=
      ( wceq cv cop cec co oveq1 oveq2 eqeq12d wcel opeq12 eceq1d mp2an 3eqtr4a
      wa ancoms 2ecoptocl ) AUAZBUAZUBJUCZCUAZDUAZUBJUCZIUDZVAURIUDZTEVAIUDZVAE
      IUDZTEFIUDZFEIUDZTABCDEFKKJGOURETVBVDVCVEUREVAIUEUREVAIUFUGVAFTVDVFVEVGVA
      FEIUFVAFEIUEUGUPKUHUQKUHUMZUSKUHUTKUHUMZUMHLUBZJUCZMNUBZJUCZVBVCHMTZLNTZV
      KVMTRSVNVOUMVJVLJHLMNUIUJUKPVIVHVCVMTQUNULUO $.
  $}

  ${
    $d x y z w v u A $.  $d z w v u B $.  $d x y z w v u C $.
    $d x y z w v u .+ $.  $d x y z w v u .~ $.  $d x y z w v u S $.
    $d z w v u D $.
    ecovass.1 $e |- D = ( ( S X. S ) /. .~ ) $.
    ecovass.2 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
 ( [ <. x , y >. ] .~ .+ [ <. z , w >. ] .~ ) = [ <. G , H >. ] .~ ) $.
    ecovass.3 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. z , w >. ] .~ .+ [ <. v , u >. ] .~ ) = [ <. N , Q >. ] .~ ) $.
    ecovass.4 $e |- ( ( ( G e. S /\ H e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. G , H >. ] .~ .+ [ <. v , u >. ] .~ ) = [ <. J , K >. ] .~ ) $.
    ecovass.5 $e |- ( ( ( x e. S /\ y e. S ) /\ ( N e. S /\ Q e. S ) ) ->
 ( [ <. x , y >. ] .~ .+ [ <. N , Q >. ] .~ ) = [ <. L , M >. ] .~ ) $.
    ecovass.6 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
                     ( G e. S /\ H e. S ) ) $.
    ecovass.7 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
                     ( N e. S /\ Q e. S ) ) $.
    ecovass.8 $e |- J = L $.
    ecovass.9 $e |- K = M $.
    $( Lemma used to transfer an associative law via an equivalence relation.
       (Contributed by NM, 31-Aug-1995.)  (Revised by David Abernethy,
       4-Jun-2013.) $)
    ecovass $p |- ( ( A e. D /\ B e. D /\ C e. D ) ->
                 ( ( A .+ B ) .+ C ) = ( A .+ ( B .+ C ) ) ) $=
      ( cv cop cec co wceq oveq1 oveq1d eqeq12d oveq2 oveq2d wcel wa w3a opeq12
      eceq1d mp2an adantr sylan eqtrd 3impa adantl sylan2 3eqtr4a 3ecoptocl
      3impb ) AUKZBUKZULMUMZCUKZDUKZULMUMZKUNZEUKZFUKZULMUMZKUNZVRWAWEKUNZKUNZU
      OGWAKUNZWEKUNZGWGKUNZUOGHKUNZWEKUNZGHWEKUNZKUNZUOWLIKUNZGHIKUNZKUNZUOABCD
      EFGHINMJUBVRGUOZWFWJWHWKWSWBWIWEKVRGWAKUPUQVRGWGKUPURWAHUOZWJWMWKWOWTWIWL
      WEKWAHGKUSUQWTWGWNGKWAHWEKUPUTURWEIUOZWMWPWOWRWEIWLKUSXAWNWQGKWEIHKUSUTUR
      VPNVAVQNVAVBZVSNVAVTNVAVBZWCNVAWDNVAVBZVCQRULZMUMZSTULZMUMZWFWHQSUOZRTUOZ
      XFXHUOUIUJXIXJVBXEXGMQRSTVDVEVFXBXCXDWFXFUOXBXCVBZXDVBWFOPULMUMZWEKUNZXFX
      KWFXMUOXDXKWBXLWEKUCUQVGXKONVAPNVAVBXDXMXFUOUGUEVHVIVJXBXCXDWHXHUOXBXCXDV
      BZVBWHVRUALULMUMZKUNZXHXNWHXPUOXBXNWGXOVRKUDUTVKXNXBUANVALNVAVBXPXHUOUHUF
      VLVIVOVMVN $.
  $}

  ${
    $d x y z w v u A $.  $d z w v u B $.  $d w v u C $.  $d x y z w v u .+ $.
    $d x y z w v u .~ $.  $d x y z w v u S $.  $d x y z w v u .x. $.
    $d z w v u D $.
    ecovdi.1 $e |- D = ( ( S X. S ) /. .~ ) $.
    $( M,N for BFC $)
    ecovdi.2 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. z , w >. ] .~ .+ [ <. v , u >. ] .~ ) = [ <. M , N >. ] .~ ) $.
    $( H,J for AG(BFC) $)
    ecovdi.3 $e |- ( ( ( x e. S /\ y e. S ) /\ ( M e. S /\ N e. S ) ) ->
 ( [ <. x , y >. ] .~ .x. [ <. M , N >. ] .~ ) = [ <. H , J >. ] .~ ) $.
    $( W,X for AGB $)
    ecovdi.4 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
 ( [ <. x , y >. ] .~ .x. [ <. z , w >. ] .~ ) = [ <. W , X >. ] .~ ) $.
    $( Y,Z for AGC $)
    ecovdi.5 $e |- ( ( ( x e. S /\ y e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. x , y >. ] .~ .x. [ <. v , u >. ] .~ ) = [ <. Y , Z >. ] .~ ) $.
    $( K,L for (AGB)F(AGC) $)
    ecovdi.6 $e |- ( ( ( W e. S /\ X e. S ) /\ ( Y e. S /\ Z e. S ) ) ->
 ( [ <. W , X >. ] .~ .+ [ <. Y , Z >. ] .~ ) = [ <. K , L >. ] .~ ) $.
    ecovdi.7 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
                     ( M e. S /\ N e. S ) ) $.
    ecovdi.8 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
                     ( W e. S /\ X e. S ) ) $.
    ecovdi.9 $e |- ( ( ( x e. S /\ y e. S ) /\ ( v e. S /\ u e. S ) ) ->
                     ( Y e. S /\ Z e. S ) ) $.
    ecovdi.10 $e |- H = K $.
    ecovdi.11 $e |- J = L $.
    $( Lemma used to transfer a distributive law via an equivalence relation.
       (Contributed by NM, 2-Sep-1995.)  (Revised by David Abernethy,
       4-Jun-2013.) $)
    ecovdi $p |- ( ( A e. D /\ B e. D /\ C e. D ) ->
                 ( A .x. ( B .+ C ) ) = ( ( A .x. B ) .+ ( A .x. C ) ) ) $=
      ( cv cop co wceq oveq1 oveq12d eqeq12d oveq2d oveq2 oveq1d wcel wa opeq12
      cec w3a eceq1d mp2an adantl sylan2 eqtrd 3impb oveqan12d syl2an 3ecoptocl
      3impdi 3eqtr4a ) AUPZBUPZUQLVIZCUPZDUPZUQLVIZEUPZFUPZUQLVIZKURZNURZWDWGNU
      RZWDWJNURZKURZUSGWKNURZGWGNURZGWJNURZKURZUSGHWJKURZNURZGHNURZWRKURZUSGHIK
      URZNURZXBGINURZKURZUSABCDEFGHIMLJUEWDGUSZWLWPWOWSWDGWKNUTXHWMWQWNWRKWDGWG
      NUTWDGWJNUTVAVBWGHUSZWPXAWSXCXIWKWTGNWGHWJKUTVCXIWQXBWRKWGHGNVDVEVBWJIUSZ
      XAXEXCXGXJWTXDGNWJIHKVDVCXJWRXFXBKWJIGNVDVCVBWBMVFWCMVFVGZWEMVFWFMVFVGZWH
      MVFWIMVFVGZVJOPUQZLVIZQRUQZLVIZWLWOOQUSZPRUSZXOXQUSUNUOXRXSVGXNXPLOPQRVHV
      KVLXKXLXMWLXOUSXKXLXMVGZVGWLWDSTUQLVIZNURZXOXTWLYBUSXKXTWKYAWDNUFVCVMXTXK
      SMVFTMVFVGYBXOUSUKUGVNVOVPXKXLXMWOXQUSXKXLVGZXKXMVGZVGWOUAUBUQLVIZUCUDUQL
      VIZKURZXQYCYDWMYEWNYFKUHUIVQYCUAMVFUBMVFVGUCMVFUDMVFVGYGXQUSYDULUMUJVRVOV
      TWAVS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The mapping operation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c ^m $.  $( The mapping operation. $)
  $c ^pm $.  $( The mapping operation. $)

  $( Extend the definition of a class to include the mapping operation.  (Read
     for ` A ^m B ` , "the set of all functions that map from ` B ` to
     ` A ` .) $)
  cmap $a class ^m $.

  $( Extend the definition of a class to include the partial mapping operation.
     (Read for ` A ^pm B ` , "the set of all partial functions that map from
     ` B ` to ` A ` .) $)
  cpm $a class ^pm $.

  ${
    $d x y f $.
    $( Define the mapping operation or set exponentiation.  The set of all
       functions that map from ` B ` to ` A ` is written ` ( A ^m B ) ` (see
       ~ mapval ).  Many authors write ` A ` followed by ` B ` as a superscript
       for this operation and rely on context to avoid confusion other
       exponentiation operations (e.g., Definition 10.42 of [TakeutiZaring]
       p. 95).  Other authors show ` B ` as a prefixed superscript, which is
       read " ` A ` pre ` B ` " (e.g., definition of [Enderton] p. 52).
       Definition 8.21 of [Eisenberg] p. 125 uses the notation Map( ` B ` ,
       ` A ` ) for our ` ( A ^m B ) ` .  The up-arrow is used by Donald Knuth
       for iterated exponentiation (_Science_ 194, 1235-1242, 1976).  We adopt
       the first case of his notation (simple exponentiation) and subscript it
       with _m_ to distinguish it from other kinds of exponentiation.
       (Contributed by NM, 8-Dec-2003.) $)
    df-map $a |- ^m = ( x e. _V , y e. _V |-> { f | f : y --> x } ) $.

    $( Define the partial mapping operation.  A partial function from ` B ` to
       ` A ` is a function from a subset of ` B ` to ` A ` .  The set of all
       partial functions from ` B ` to ` A ` is written ` ( A ^pm B ) ` (see
       ~ pmvalg ).  A notation for this operation apparently does not appear in
       the literature.  We use ` ^pm ` to distinguish it from the less general
       set exponentiation operation ` ^m ` ( ~ df-map ) .  See ~ mapsspm for
       its relationship to set exponentiation.  (Contributed by NM,
       15-Nov-2007.) $)
    df-pm $a |- ^pm = ( x e. _V , y e. _V |->
                    { f e. ~P ( y X. x ) | Fun f } ) $.
  $}

  $( Note:  an alternate way to express partial functions is as follows,
     which would be added after df-fun above.  The symbol would be _pfun.gif.
     This definition would be needed only if we need proper class partial
     functions, which seems unlikely.  While nice-looking, for ordinary usage
     it would inconveniently require a new set of equality theorems, etc. $)
  $( Define a partial function, which is a function from a subset of the
     domain ` A ` to the codomain ` B ` .  The notation of a stroke through
     the arrow is used by the Z language: see, for example,
     ~ http://staff.washington.edu/jon/z/dcs.html . $)
  $(
  df-fp $a |- ( F : A -|-> B <-> ( Fun F /\ F C_ ( X X. Y ) ) $.
  $)

  ${
    $d f A $.  $d f B $.
    $( When ` A ` is a proper class, the class of all functions mapping ` A `
       to ` B ` is empty.  Exercise 4.41 of [Mendelson] p. 255.  (Contributed
       by NM, 8-Dec-2003.) $)
    mapprc $p |- ( -. A e. _V -> { f | f : A --> B } = (/) ) $=
      ( cvv wcel cv wf cab c0 wne wex abn0 cdm fdm dmex syl6eqelr exlimiv sylbi
      vex necon1bi ) ADEZABCFZGZCHZIUDIJUCCKUAUCCLUCUACUCAUBMDABUBNUBCSOPQRT $.

    $( The class of all partial functions from one set to another is a set.
       (Contributed by NM, 15-Nov-2007.) $)
    pmex $p |- ( ( A e. C /\ B e. D ) ->
                   { f | ( Fun f /\ f C_ ( A X. B ) ) } e. _V ) $=
      ( wcel wa cv wfun cxp wss cab cvv ancom abbii xpexg abssexg syl syl5eqel
      ) ACFBDFGZEHZIZUAABJZKZGZELUDUBGZELZMUEUFEUBUDNOTUCMFUGMFABCDPUBEUCMQRS
      $.

    $( The class of all functions mapping one set to another is a set.  Remark
       after Definition 10.24 of [Kunen] p. 31.  (Contributed by Raph Levien,
       4-Dec-2003.) $)
    mapex $p |- ( ( A e. C /\ B e. D ) -> { f | f : A --> B } e. _V ) $=
      ( wcel wa cv cab cxp cpw wss cvv fssxp ss2abi df-pw sseqtr4i xpexg pwexg
      wf syl ssexg sylancr ) ACFBDFGZABEHZTZEIZABJZKZLUIMFZUGMFUGUEUHLZEIUIUFUK
      EABUENOEUHPQUDUHMFUJABCDRUHMSUAUGUIMUBUC $.
  $}

  ${
    $d f x y $.
    $( Set exponentiation has a universal domain.  (Contributed by NM,
       8-Dec-2003.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    fnmap $p |- ^m Fn ( _V X. _V ) $=
      ( vx vy vf cvv cv wf cab cmap df-map wcel vex mapex mp2an fnmpt2i ) ABDDB
      EZAEZCEFCGZHABCIODJPDJQDJBKAKOPDDCLMN $.

    $( Partial function exponentiation has a universal domain.  (Contributed by
       Mario Carneiro, 14-Nov-2013.) $)
    fnpm $p |- ^pm Fn ( _V X. _V ) $=
      ( vx vy vf cvv cv wfun cxp cpw crab cpm df-pm vex xpex pwex rabex fnmpt2i
      ) ABDDCEFZCBEZAEZGZHZIJABCKQCUATRSBLALMNOP $.

    $( Set exponentiation is a well-behaved binary operator.  (Contributed by
       Stefan O'Rear, 27-Feb-2015.) $)
    reldmmap $p |- Rel dom ^m $=
      ( vx vy vf cvv cv wf cab cmap df-map reldmmpt2 ) ABDDBEAECEFCGHABCIJ $.
  $}

  ${
    $d x y f A $.  $d x y f B $.
    $( The value of set exponentiation. ` ( A ^m B ) ` is the set of all
       functions that map from ` B ` to ` A ` .  Definition 10.24 of [Kunen]
       p. 24.  (Contributed by NM, 8-Dec-2003.)  (Revised by Mario Carneiro,
       8-Sep-2013.) $)
    mapvalg $p |- ( ( A e. C /\ B e. D ) ->
                  ( A ^m B ) = { f | f : B --> A } ) $=
      ( vx vy wcel wa cv wf cab cvv cmap co wceq mapex ancoms elex abbidv feq3
      wi feq2 df-map ovmpt2g 3expia syl2an mpd ) ACHZBDHZIBAEJZKZELZMHZABNOUMPZ
      UJUIUNBADCEQRUIAMHZBMHZUNUOUBUJACSBDSUPUQUNUOFGABMMGJZFJZUKKZELUMNURAUKKZ
      ELMUSAPUTVAEUSAURUKUATURBPVAULEURBAUKUCTFGEUDUEUFUGUH $.

    $( The value of the partial mapping operation. ` ( A ^pm B ) ` is the set
       of all partial functions that map from ` B ` to ` A ` .  (Contributed by
       NM, 15-Nov-2007.)  (Revised by Mario Carneiro, 8-Sep-2013.) $)
    pmvalg $p |- ( ( A e. C /\ B e. D ) ->
                  ( A ^pm B ) = { f e. ~P ( B X. A ) | Fun f } ) $=
      ( vx vy wcel wa cv cxp cpw crab cvv cpm wceq syl elex pweqd rabeq wfun co
      wss ssrab2 xpexg ancoms pwexg ssexg sylancr wi xpeq2 xpeq1 ovmpt2g 3expia
      df-pm syl2an mpd ) ACHZBDHZIZEJUAZEBAKZLZMZNHZABOUBVDPZUTVDVCUCVCNHZVEVAE
      VCUDUTVBNHZVGUSURVHBADCUEUFVBNUGQVDVCNUHUIURANHZBNHZVEVFUJUSACRBDRVIVJVEV
      FFGABNNVAEGJZFJZKZLZMZVDOVAEVKAKZLZMZNVLAPZVNVQPVOVRPVSVMVPVLAVKUKSVAEVNV
      QTQVKBPZVQVCPVRVDPVTVPVBVKBAULSVAEVQVCTQFGEUOUMUNUPUQ $.
  $}

  ${
    $d f A $.  $d f B $.
    mapval.1 $e |- A e. _V $.
    mapval.2 $e |- B e. _V $.
    $( The value of set exponentiation (inference version). ` ( A ^m B ) ` is
       the set of all functions that map from ` B ` to ` A ` .  Definition
       10.24 of [Kunen] p. 24.  (Contributed by NM, 8-Dec-2003.) $)
    mapval $p |- ( A ^m B ) = { f | f : B --> A } $=
      ( cvv wcel cmap co cv wf cab wceq mapvalg mp2an ) AFGBFGABHIBACJKCLMDEABF
      FCNO $.
  $}

  ${
    $d g A $.  $d g B $.  $d g C $.
    $( Membership relation for set exponentiation.  (Contributed by NM,
       17-Oct-2006.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
    elmapg $p |- ( ( A e. V /\ B e. W ) ->
                  ( C e. ( A ^m B ) <-> C : B --> A ) ) $=
      ( vg wcel wa cmap co cv wf cab mapvalg eleq2d cvv wi wb fex2 3com13 bitrd
      3expia feq1 elab3g syl ) ADGZBEGZHZCABIJZGCBAFKZLZFMZGZBACLZUHUIULCABDEFN
      OUHUNCPGZQUMUNRUFUGUNUOUNUGUFUOBACEDSTUBUKUNFCPBAUJCUCUDUEUA $.
  $}

  ${
    elmapd.a $e |- ( ph -> A e. V ) $.
    elmapd.b $e |- ( ph -> B e. W ) $.
    $( Deduction form of ~ elmapg .  (Contributed by BJ, 11-Apr-2020.) $)
    elmapd $p |- ( ph -> ( C e. ( A ^m B ) <-> C : B --> A ) ) $=
      ( wcel cmap co wf wb elmapg syl2anc ) ABEICFIDBCJKICBDLMGHBCDEFNO $.
  $}

  ${
    $d B f $.  $d V f $.
    $( The empty set is the only map with empty domain.  (Contributed by Glauco
       Siliprandi, 11-Oct-2020.)  (Proof shortened by Thierry Arnoux,
       3-Dec-2021.) $)
    mapdm0 $p |- ( B e. V -> ( B ^m (/) ) = { (/) } ) $=
      ( vf wcel c0 cmap co csn cv wceq wf cvv 0ex elmapg mpan2 f0bi syl6bb elsn
      wb vex syl6bbr eqrdv ) ABDZCAEFGZEHZUCCIZUDDZUFEJZUFUEDUCUGEAUFKZUHUCELDU
      GUISMAEUFBLNOUFAPQUFECTRUAUB $.
  $}

  ${
    $d g A $.  $d g B $.  $d g C $.
    $( The predicate "is a partial function."  (Contributed by Mario Carneiro,
       14-Nov-2013.) $)
    elpmg $p |- ( ( A e. V /\ B e. W ) ->
                  ( C e. ( A ^pm B ) <-> ( Fun C /\ C C_ ( B X. A ) ) ) ) $=
      ( vg wcel wa cpm co wfun cxp cpw wss cv crab syl6bb cvv wi a1i funeq elex
      pmvalg eleq2d elrab ancom xpexg ancoms ssexg expcom elpwg pm5.21ndd bitrd
      syl wb anbi2d ) ADGZBEGZHZCABIJZGZCKZCBALZMZGZHZVBCVCNZHUSVAVEVBHZVFUSVAC
      FOZKZFVDPZGVHUSUTVKCABDEFUCUDVJVBFCVDVICUAUEQVEVBUFQUSVEVGVBUSCRGZVEVGVEV
      LSUSCVDUBTUSVCRGZVGVLSURUQVMBAEDUGUHVGVMVLCVCRUIUJUNVLVEVGUOSUSCVCRUKTULU
      PUM $.
  $}

  $( The predicate "is a partial function."  (Contributed by NM,
     31-Dec-2013.) $)
  elpm2g $p |- ( ( A e. V /\ B e. W ) ->
                ( F e. ( A ^pm B ) <-> ( F : dom F --> A /\ dom F C_ B ) ) ) $=
    ( wcel wa cpm co wfun cxp wss cdm wf elpmg funssxp syl6bb ) ADFBEFGCABHIFCJ
    CBAKLGCMZACNRBLGABCDEOBACPQ $.

  $( Sufficient condition for being a partial function.  (Contributed by NM,
     31-Dec-2013.) $)
  elpm2r $p |- ( ( ( A e. V /\ B e. W ) /\ ( F : C --> A /\ C C_ B ) ) ->
                   F e. ( A ^pm B ) ) $=
    ( wcel wa wf wss cpm co cdm wb fdm feq2d sseq1d anbi12d adantr ibir syl5ibr
    elpm2g imp ) AEGBFGHZCADIZCBJZHZDABKLGZUGUHUDDMZADIZUIBJZHZUGULUEULUGNUFUEU
    JUEUKUFUEUICADCADOZPUEUICBUMQRSTABDEFUBUAUC $.

  $( A partial function is a function.  (Contributed by Mario Carneiro,
     15-Sep-2015.) $)
  elpmi $p |- ( F e. ( A ^pm B ) -> ( F : dom F --> A /\ dom F C_ B ) ) $=
    ( cpm co wcel cdm wf wss wa cvv wb c0 wceq n0i cxp wfn fnpm fndm ax-mp syl
    ndmov nsyl2 elpm2g ibi ) CABDEZFZCGZACHUHBIJZUGAKFBKFJZUGUILUGUFMNUJUFCOABK
    DDKKPZQDGUKNRUKDSTUBUCABCKKUDUAUE $.

  $( A partial function is a function.  (Contributed by Mario Carneiro,
     30-Jan-2014.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  pmfun $p |- ( F e. ( A ^pm B ) -> Fun F ) $=
    ( cpm co wcel cdm wf wss wa wfun elpmi ffun adantr syl ) CABDEFCGZACHZPBIZJ
    CKZABCLQSRPACMNO $.

  $( Eliminate antecedent for mapping theorems: domain can be taken to be a
     set.  (Contributed by Stefan O'Rear, 8-Oct-2014.) $)
  elmapex $p |- ( A e. ( B ^m C ) -> ( B e. _V /\ C e. _V ) ) $=
    ( cmap co wcel c0 wceq cvv wa n0i cxp wfn cdm fnmap fndm ax-mp ndmov nsyl2
    ) ABCDEZFTGHBIFCIFJTAKBCIDDIILZMDNUAHOUADPQRS $.

  $( A mapping is a function, forward direction only with superfluous
     antecedent removed.  (Contributed by Stefan O'Rear, 10-Oct-2014.) $)
  elmapi $p |- ( A e. ( B ^m C ) -> A : C --> B ) $=
    ( cmap co wcel wf cvv wa wb elmapex elmapg syl ibi ) ABCDEFZCBAGZOBHFCHFIOP
    JABCKBCAHHLMN $.

  $( A mapping is a function with the appropriate domain.  (Contributed by AV,
     6-Apr-2019.) $)
  elmapfn $p |- ( A e. ( B ^m C ) -> A Fn C ) $=
    ( cmap co wcel wf wfn elmapi ffn syl ) ABCDEFCBAGACHABCICBAJK $.

  $( A mapping is always a function.  (Contributed by Stefan O'Rear,
     9-Oct-2014.)  (Revised by Stefan O'Rear, 5-May-2015.) $)
  elmapfun $p |- ( A e. ( B ^m C ) -> Fun A ) $=
    ( cmap co wcel wf wfun elmapi ffun syl ) ABCDEFCBAGAHABCICBAJK $.

  $( A restricted mapping is a mapping.  (Contributed by Stefan O'Rear,
     9-Oct-2014.)  (Revised by Mario Carneiro, 5-May-2015.) $)
  elmapssres $p |- ( ( A e. ( B ^m C ) /\ D C_ C ) ->
      ( A |` D ) e. ( B ^m D ) ) $=
    ( cmap co wcel wss wa cres wf elmapi fssres sylan cvv elmapex simpld adantr
    simprd ssexg ancoms elmapd mpbird ) ABCEFGZDCHZIZADJZBDEFGDBUGKZUDCBAKUEUHA
    BCLCBDAMNUFBDUGOOUDBOGZUEUDUICOGZABCPZQRUDUJUEDOGZUDUIUJUKSUEUJULDCOTUANUBU
    C $.

  $( A total function is a partial function.  (Contributed by Mario Carneiro,
     31-Dec-2013.) $)
  fpmg $p |- ( ( A e. V /\ B e. W /\ F : A --> B ) -> F e. ( B ^pm A ) ) $=
    ( wcel wf cpm co wa wss ssid elpm2r mpanr2 3impa 3com12 ) BEFZADFZABCGZCBAH
    IFZQRSTQRJSAAKTALBAACEDMNOP $.

  ${
    $d f A $.  $d f B $.  $d f C $.  $d f D $.  $d f V $.  $d f W $.
    $( Subset relation for the set of partial functions.  (Contributed by Mario
       Carneiro, 31-Dec-2013.) $)
    pmss12g $p |- ( ( ( A C_ C /\ B C_ D ) /\ ( C e. V /\ D e. W ) ) ->
                   ( A ^pm B ) C_ ( C ^pm D ) ) $=
      ( vf wss wa wcel cpm co cv wfun cxp wi wb cvv ssexg elpmg xpss12 sstr syl
      ancoms expcom anim2d adantr syl2an an4s adantl 3imtr4d ssrdv ) ACHZBDHZIZ
      CEJZDFJZIZIZGABKLZCDKLZUSGMZNZVBBAOZHZIZVCVBDCOZHZIZVBUTJZVBVAJZUOVFVIPUR
      UOVEVHVCUOVDVGHZVEVHPUNUMVLBDACUAUDVEVLVHVBVDVGUBUEUCUFUGUMUPUNUQVJVFQZUM
      UPIARJBRJVMUNUQIACESBDFSABVBRRTUHUIURVKVIQUOCDVBEFTUJUKUL $.
  $}

  $( Elementhood of a restricted function in the set of partial functions.
     (Contributed by Mario Carneiro, 31-Dec-2013.) $)
  pmresg $p |- ( ( B e. V /\ F e. ( A ^pm C ) ) ->
                 ( F |` B ) e. ( A ^pm B ) ) $=
    ( wcel cpm co wa cvv cdm cin cres wf c0 wceq simpld adantl wss 3syl n0i cxp
    wfn fnpm fndm ax-mp ndmov nsyl2 simpl elpmi fssres sylancl wfun ffun resres
    inss1 funrel resdm reseq1 syl5eqr feq1d mpbid inss2 elpm2r mpanr2 syl21anc
    wrel ) BEFZDACGHZFZIZAJFZVHDKZBLZADBMZNZVOABGHFZVJVLVHVJVLCJFZVJVIOPVLVRIVI
    DUAACJGGJJUBZUCGKVSPUDVSGUEUFUGUHQRVHVJUIVKVNADVNMZNZVPVKVMADNZVNVMSWAVJWBV
    HVJWBVMCSACDUJQRZVMBUPVMAVNDUKULVKVNAVTVOVKWBDUMZVTVOPWCVMADUNWDVTDVMMZBMZV
    ODVMBUOWDDVGWEDPWFVOPDUQDURWEDBUSTUTTVAVBVLVHIVPVNBSVQVMBVCABVNVOJEVDVEVF
    $.

  ${
    $d g A $.  $d f g B $.  $d g F $.
    elmap.1 $e |- A e. _V $.
    elmap.2 $e |- B e. _V $.
    $( Membership relation for set exponentiation.  (Contributed by NM,
       8-Dec-2003.) $)
    elmap $p |- ( F e. ( A ^m B ) <-> F : B --> A ) $=
      ( cvv wcel cmap co wf wb elmapg mp2an ) AFGBFGCABHIGBACJKDEABCFFLM $.

    $( Alternate expression for the value of set exponentiation.  (Contributed
       by NM, 3-Nov-2007.) $)
    mapval2 $p |- ( A ^m B ) = ( ~P ( B X. A ) i^i { f | f Fn B } ) $=
      ( vg cmap co cxp cpw cv wfn cab cin wf wss wa wcel dff2 bitri ancom elmap
      elin selpw vex fneq1 elab anbi12i 3bitr4i eqriv ) FABGHZBAIZJZCKZBLZCMZNZ
      BAFKZOZURULPZURBLZQZURUKRURUQRZUSVAUTQVBBAURSVAUTUATABURDEUBVCURUMRZURUPR
      ZQVBURUMUPUCVDUTVEVAFULUDUOVACURFUEBUNURUFUGUHTUIUJ $.

    $( The predicate "is a partial function."  (Contributed by NM,
       15-Nov-2007.)  (Revised by Mario Carneiro, 14-Nov-2013.) $)
    elpm $p |- ( F e. ( A ^pm B ) <-> ( Fun F /\ F C_ ( B X. A ) ) ) $=
      ( cvv wcel cpm co wfun cxp wss wa wb elpmg mp2an ) AFGBFGCABHIGCJCBAKLMND
      EABCFFOP $.

    $( The predicate "is a partial function."  (Contributed by NM,
       15-Nov-2007.)  (Revised by Mario Carneiro, 31-Dec-2013.) $)
    elpm2 $p |- ( F e. ( A ^pm B ) <-> ( F : dom F --> A /\ dom F C_ B ) ) $=
      ( cvv wcel cpm co cdm wf wss wa wb elpm2g mp2an ) AFGBFGCABHIGCJZACKQBLMN
      DEABCFFOP $.

    $( A total function is a partial function.  (Contributed by NM,
       15-Nov-2007.)  (Revised by Mario Carneiro, 31-Dec-2013.) $)
    fpm $p |- ( F : A --> B -> F e. ( B ^pm A ) ) $=
      ( cvv wcel wf cpm co fpmg mp3an12 ) AFGBFGABCHCBAIJGDEABCFFKL $.
  $}

  ${
    $d f A $.  $d f B $.
    $( Set exponentiation is a subset of partial maps.  (Contributed by NM,
       15-Nov-2007.)  (Revised by Mario Carneiro, 27-Feb-2016.) $)
    mapsspm $p |- ( A ^m B ) C_ ( A ^pm B ) $=
      ( vf cmap co cpm cv wcel cvv wf elmapex simprd simpld elmapi fpmg syl3anc
      ssriv ) CABDEZABFEZCGZRHZBIHZAIHZBATJTSHUAUCUBTABKZLUAUCUBUDMTABNBATIIOPQ
      $.

    $( Partial maps are a subset of the power set of the Cartesian product of
       its arguments.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    pmsspw $p |- ( A ^pm B ) C_ ~P ( B X. A ) $=
      ( vf cpm co cxp cpw cv wcel wss wfun wa cvv wb c0 wceq n0i wfn cdm fnpm
      fndm ax-mp ndmov nsyl2 elpmg syl ibi simprd selpw sylibr ssriv ) CABDEZBA
      FZGZCHZULIZUOUMJZUOUNIUPUOKZUQUPURUQLZUPAMIBMILZUPUSNUPULOPUTULUOQABMDDMM
      FZRDSVAPTVADUAUBUCUDABUOMMUEUFUGUHCUMUIUJUK $.

    $( Set exponentiation is a subset of the power set of the Cartesian product
       of its arguments.  (Contributed by NM, 8-Dec-2006.)  (Revised by Mario
       Carneiro, 26-Apr-2015.) $)
    mapsspw $p |- ( A ^m B ) C_ ~P ( B X. A ) $=
      ( cmap co cpm cxp cpw mapsspm pmsspw sstri ) ABCDABEDBAFGABHABIJ $.
  $}

  ${
    $d x A $.  $d x C $.  $d x D $.  $d x R $.
    fvmptmap.1 $e |- C e. _V $.
    fvmptmap.2 $e |- D e. _V $.
    fvmptmap.3 $e |- R e. _V $.
    fvmptmap.4 $e |- ( x = A -> B = C ) $.
    fvmptmap.5 $e |- F = ( x e. ( R ^m D ) |-> B ) $.
    $( Special case of ~ fvmpt for operator theorems.  (Contributed by NM,
       27-Nov-2007.) $)
    fvmptmap $p |- ( A : D --> R -> ( F ` A ) = C ) $=
      ( wf cmap co wcel cfv wceq elmap fvmpt sylbir ) EFBMBFENOZPBGQDRFEBJISABC
      DUBGKLHTUA $.
  $}

  ${
    $d f A $.  $d f B $.  $d f V $.  $d f W $.
    $( Set exponentiation with an empty exponent (ordinal number 0) is ordinal
       number 1.  Exercise 4.42(a) of [Mendelson] p. 255.  (Contributed by NM,
       10-Dec-2003.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    map0e $p |- ( A e. V -> ( A ^m (/) ) = 1o ) $=
      ( vf wcel c0 cmap co c1o cv wf cvv 0ex elmapg mpan2 wceq f0bi el1o bitr4i
      wb syl6bb eqrdv ) ABDZCAEFGZHUBCIZUCDZEAUDJZUDHDZUBEKDUEUFSLAEUDBKMNUFUDE
      OUGUDAPUDQRTUA $.

    $( Set exponentiation with an empty base is the empty set, provided the
       exponent is nonempty.  Theorem 96 of [Suppes] p. 89.  (Contributed by
       NM, 10-Dec-2003.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    map0b $p |- ( A =/= (/) -> ( (/) ^m A ) = (/) ) $=
      ( vf c0 wne cmap co cv wcel wf wceq elmapi cdm fdm crn wss frn ss0 dm0rn0
      syl sylibr eqtr3d necon3ai eq0rdv ) ACDBCAEFZBGZUDHZACUFACUEIZACJUECAKUGU
      ELZACACUEMUGUENZCJZUHCJUGUICOUJACUEPUIQSUERTUASUBUC $.

    $( Set exponentiation is empty iff the base is empty and the exponent is
       not empty.  Theorem 97 of [Suppes] p. 89.  (Contributed by Mario
       Carneiro, 30-Apr-2015.) $)
    map0g $p |- ( ( A e. V /\ B e. W ) ->
      ( ( A ^m B ) = (/) <-> ( A = (/) /\ B =/= (/) ) ) ) $=
      ( vf wcel wa cmap co c0 wceq wne cv wex n0 wf elmapg syl5ibr ne0i syl6 f0
      csn cxp fconst6g exlimdv syl5bi necon4d feq2 mpbiri necon2d jcad sylan9eq
      oveq1 map0b impbid1 ) ACFBDFGZABHIZJKZAJKZBJLZGUPURUSUTUPAJUQJAJLEMZAFZEN
      UPUQJLZEAOUPVBVCEUPVBBVAUBUCZUQFZVCVBVEUPBAVDPBVAAUDABVDCDQRUQVDSTUEUFUGU
      PBJUQJUPBJKZJUQFZVCVFVGUPBAJPZVFVHJAJPAUABJAJUHUIABJCDQRUQJSTUJUKUSUTUQJB
      HIJAJBHUMBUNULUO $.
  $}

  ${
    $d f y A $.  $d f y B $.
    map0.1 $e |- A e. _V $.
    map0.2 $e |- B e. _V $.
    $( Set exponentiation is empty iff the base is empty and the exponent is
       not empty.  Theorem 97 of [Suppes] p. 89.  (Contributed by NM,
       10-Dec-2003.) $)
    map0 $p |- ( ( A ^m B ) = (/) <-> ( A = (/) /\ B =/= (/) ) ) $=
      ( cvv wcel cmap co c0 wceq wne wa wb map0g mp2an ) AEFBEFABGHIJAIJBIKLMCD
      ABEENO $.

    $( The value of set exponentiation with a singleton exponent.  Theorem 98
       of [Suppes] p. 89.  (Contributed by NM, 10-Dec-2003.) $)
    mapsn $p |- ( A ^m { B } ) = { f | E. y e. A f = { <. B , y >. } } $=
      ( cv cop csn wceq wrex cmap wcel wf wex snid cima syl mpbiri wf1o co snex
      wa crn wbr weu wfn ffn fneu sylancl cab euabsn wrel frel relimasn imadmrn
      elmap cdm fdm imaeq2d syl5reqr eqtr3d eqeq1d exbidv mpbid vex eleq2 sseld
      syl5bb frn syl5 wfo dffn4 sylib fof feq3 syl5ibcom fsn syl6ib jcad eximdv
      mpd df-rex sylibr wss f1osn f1oeq1 f1of fss syl2an expcom rexlimiv impbii
      snssi bitri abbi2i ) DGZCAGZHIZJZABKZDBCIZLUAZWQXCMXBBWQNZXABXBWQECUBUQXD
      XAXDWRBMZWTUCZAOZXAXDWQUDZWRIZJZAOZXGXDCWRWQUEZAUFZXKXDWQXBUGZCXBMXMXBBWQ
      UHZCFPAXBCWQUIUJXMXLAUKZXIJZAOXDXKXLAULXDXQXJAXDXPXHXIXDWQXBQZXPXHXDWQUMX
      RXPJXBBWQUNACWQUORXDXHWQWQURZQXRWQUPXDXSXBWQXBBWQUSUTVAVBVCVDVIVEXDXJXFAX
      DXJXEWTXJWRXHMZXDXEXJXTWRXIMWRAVFZPXHXIWRVGSXDXHBWRXBBWQVJVHVKXDXJXBXIWQN
      ZWTXDXBXHWQNZXJYBXDXBXHWQVLZYCXDXNYDXOXBWQVMVNXBXHWQVORXHXIXBWQVPVQCWRWQF
      YAVRVSVTWAWBWTABWCWDWTXDABWTXEXDWTYBXIBWEXDXEWTXBXIWQTZYBWTYEXBXIWSTCWRFY
      AWFXBXIWQWSWGSXBXIWQWHRWRBWNXBXIBWQWIWJWKWLWMWOWP $.
  $}

  ${
    $d f A $.  $d f B $.  $d f C $.  $d f V $.
    $( Subset inheritance for set exponentiation.  Theorem 99 of [Suppes]
       p. 89.  (Contributed by NM, 10-Dec-2003.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    mapss $p |- ( ( B e. V /\ A C_ B ) -> ( A ^m C ) C_ ( B ^m C ) ) $=
      ( vf wcel wss wa cmap co cv wf elmapi adantl simplr simpll elmapex simprd
      fssd cvv elmapd mpbird ex ssrdv ) BDFZABGZHZEACIJZBCIJZUGEKZUHFZUJUIFZUGU
      KHZULCBUJLUMCABUJUKCAUJLUGUJACMNUEUFUKOSUMBCUJDTUEUFUKPUKCTFZUGUKATFUNUJA
      CQRNUAUBUCUD $.
  $}

  ${
    $d B x $.  $d I x $.  $d V x $.  $d W x $.  $d X x $.
    fdiagfn.f $e |- F = ( x e. B |-> ( I X. { x } ) ) $.
    $( Functionality of the diagonal map.  (Contributed by Stefan O'Rear,
       24-Jan-2015.) $)
    fdiagfn $p |- ( ( B e. V /\ I e. W ) -> F : B --> ( B ^m I ) ) $=
      ( wcel wa cv csn cxp cmap co wf fconst6g adantl wb elmapg adantr mpbird
      fmptd ) BEHDFHIZABDAJZKLZBDMNZCUCUDBHZIUEUFHZDBUEOZUGUIUCDUDBPQUCUHUIRUGB
      DUEEFSTUAGUB $.

    $( Functionality of the diagonal map.  (Contributed by Stefan O'Rear,
       24-Jan-2015.) $)
    fvdiagfn $p |- ( ( I e. W /\ X e. B ) -> ( F ` X ) = ( I X. { X } ) ) $=
      ( wcel wa csn cxp cvv cfv wceq simpr snex xpexg mpan2 adantr cv syl2anc
      sneq xpeq2d fvmptg ) DEHZFBHZIUFDFJZKZLHZFCMUHNUEUFOUEUIUFUEUGLHUIFPDUGEL
      QRSAFDATZJZKUHBLCUJFNUKUGDUJFUBUCGUDUA $.
  $}

  ${
    $d B x y $.  $d S x y $.  $d X y $.
    mapsncnv.s $e |- S = { X } $.
    mapsncnv.b $e |- B e. _V $.
    mapsncnv.x $e |- X e. _V $.
    $( Every singleton map is a constant function.  (Contributed by Stefan
       O'Rear, 25-Mar-2015.) $)
    mapsnconst $p |- ( F e. ( B ^m S ) -> F = ( S X. { ( F ` X ) } ) ) $=
      ( cfv csn cxp wceq cmap co wcel wf snex elmap cop fsn2 simprbi fvex sylbi
      xpeq1i xpsn eqtr2i syl6eq oveq2i eleq2s ) CBDCHZIZJZKZCADIZLMZABLMCUNNUMA
      COZULAUMCFDPQUOCDUIRIZUKUOUIANCUPKDACGSTUKUMUJJUPBUMUJEUCDUIGDCUAUDUEUFUB
      BUMALEUGUH $.

    ${
      mapsncnv.f $e |- F = ( x e. ( B ^m S ) |-> ( x ` X ) ) $.
      $( Expression for the inverse of the canonical map between a set and its
         set of singleton functions.  (Contributed by Stefan O'Rear,
         21-Mar-2015.) $)
      mapsncnv $p |- `' F = ( y e. B |-> ( S X. { y } ) ) $=
        ( cv cmap co wcel cfv wceq wa copab csn cxp ccnv cmpt wf elmapi ffvelrn
        snid sylancl eqid mapsnconst jca eleq1 xpeq2d eqeq2d anbi12d syl5ibrcom
        sneq imp fconst6g snex elmap sylibr fvconst2 eqcomd fveq1 impbii oveq2i
        vex mp1i eleq2i anbi1i xpeq1i eqeq2i anbi2i 3bitr4i df-mpt eqtri cnveqi
        opabbii cnvopab 3eqtr4i ) AKZCDLMZNZBKZFWAOZPZQZBARZWDCNZWADWDSZTZPZQZB
        AREUAZBCWKUBWGWMBAWACFSZLMZNZWFQZWIWAWOWJTZPZQZWGWMWRXAWQWFXAWQXAWFWECN
        ZWAWOWESZTZPZQWQXBXEWQWOCWAUCFWONZXBWACWOUDFIUFZWOCFWAUEUGCWOWAFWOUHHIU
        IUJWFWIXBWTXEWDWECUKWFWSXDWAWFWJXCWOWDWEUPULUMUNUOUQWIWTWRWIWRWTWSWPNZW
        DFWSOZPZQWIXHXJWIWOCWSUCXHWOWDCURCWOWSHFUSUTVAWIXIWDXFXIWDPWIXGWOWDFBVG
        VBVHVCUJWTWQXHWFXJWAWSWPUKWTWEXIWDFWAWSVDUMUNUOUQVEWCWQWFWBWPWADWOCLGVF
        VIVJWLWTWIWKWSWADWOWJGVKVLVMVNVRWNWGABRZUAWHEXKEAWBWEUBXKJABWBWEVOVPVQW
        GABVSVPBACWKVOVT $.

      $( Explicit bijection between a set and its singleton functions.
         (Contributed by Stefan O'Rear, 21-Mar-2015.) $)
      mapsnf1o2 $p |- F : ( B ^m S ) -1-1-onto-> B $=
        ( vy cmap co wf1o wfn ccnv cv cfv fnmpti csn snex fvex cxp eqeltri xpex
        cvv mapsncnv dff1o4 mpbir2an ) BCKLZBDMDUINDOZBNAUIEAPZQDEUKUAIRJBCJPZS
        ZUBUJCUMCESUEFETUCULTUDAJBCDEFGHIUFRUIBDUGUH $.
    $}

    mapsnf1o3.f $e |- F = ( y e. B |-> ( S X. { y } ) ) $.
    $( Explicit bijection in the reverse of ~ mapsnf1o2 .  (Contributed by
       Stefan O'Rear, 24-Mar-2015.) $)
    mapsnf1o3 $p |- F : B -1-1-onto-> ( B ^m S ) $=
      ( vx cmap co wf1o cv cfv cmpt ccnv eqid mapsnf1o2 ax-mp f1ocnv wb csn cxp
      wceq mapsncnv eqtr4i f1oeq1 mpbir ) BBCKLZDMZBUJJUJEJNOPZQZMZUJBULMUNJBCU
      LEFGHULRZSUJBULUATDUMUEUKUNUBDABCANUCUDPUMIJABCULEFGHUOUFUGBUJDUMUHTUI $.
  $}

  ${
    $d ph g y $.  $d ps f $.  $d J f g y $.  $d S f g y $.  $d T f g y $.
    ralxpmap.j $e |- ( f = ( g u. { <. J , y >. } ) -> ( ph <-> ps ) ) $.
    $( Quantification over functions in terms of quantification over values and
       punctured functions.  (Contributed by Stefan O'Rear, 27-Feb-2015.)
       (Revised by Stefan O'Rear, 5-May-2015.) $)
    ralxpmap $p |- ( J e. T -> ( A. f e. ( S ^m T ) ph <->
          A. y e. S A. g e. ( S ^m ( T \ { J } ) ) ps ) ) $=
      ( wcel cv csn cun wceq wa wf cvv adantl syl wss cop cmap co cdif vex snex
      unex wrex cfv cres simpr elmapex elmapg mpbid simpl ffvelrnd difss fssres
      wb sylancl simpld simprd difexg elmapd mpbird wfn fnsnsplit syl2anc opeq2
      ffn sneqd uneq2d eqeq2d uneq1 rspc2ev syl3anc ex cin elmapi ad2antll wf1o
      f1osng f1of mpan2 adantr incom disjdif eqtri a1i fun syl21anc uncom snssd
      undif sylib syl5eq feq2d ssid snssi ad2antrl unssd ssun1 undif1 syl5eqelr
      c0 fssd unexg ssexg sylancr eleq1 syl5ibrcom rexlimdvva impbid ralxpxfr2d
      ) HEJZABFCGGKZHCKZUAZLZMZDEUBUCZDDEHLZUDZUBUCZXPXSGUEXRUFUGXOFKZYAJZYEXTN
      ZGYDUHCDUHZXOYFYHXOYFOZHYEUIZDJYEYCUJZYDJZYEYKHYJUAZLZMZNZYHYIEDHYEYIYFED
      YEPZXOYFUKYIDQJZEQJZOZYFYQUSYFYTXOYEDEULZRZDEYEQQUMSUNZXOYFUOZUPYIYLYCDYK
      PZYIYQYCETUUEUUCEYBUQEDYCYEURUTYIDYCYKQQYFYRXOYFYRYSUUAVARYIYSYCQJZYIYRYS
      UUBVBEYBQVCSVDVEYIYEEVFZXOYPYIYQUUGUUCEDYEVJSUUDEYEHVGVHYGYPYEXPYNMZNCGYJ
      YKDYDXQYJNZXTUUHYEUUIXSYNXPUUIXRYMXQYJHVIVKVLVMXPYKNUUHYOYEXPYKYNVNVMVOVP
      VQXOYGYFCGDYDXOXQDJZXPYDJZOZOZYFYGXTYAJZUUMUUNEDXTPUUMEDXQLZMZDXTUUMYCYBM
      ZUUPXTPZEUUPXTPUUMYCDXPPZYBUUOXSPZYCYBVRZXENZUURUUKUUSXOUUJXPDYCVSVTXOUUT
      UULXOXQQJZUUTCUEXOUVCOYBUUOXSWAUUTHXQEQWBYBUUOXSWCSWDWEUVBUUMUVAYBYCVRXEY
      CYBWFYBEWGWHWIYCYBDUUOXPXSWJWKUUMUUQEUUPXTUUMUUQYBYCMZEYCYBWLUUMYBETUVDEN
      UUMHEXOUULUOWMYBEWNWOWPWQUNUUMDUUODDDTUUMDWRWIUUJUUODTXOUUKXQDWSWTXAXFUUM
      DEXTQQUUMYRUUFUUKYRUUFOXOUUJXPDYCULVTZVAUUMEEYBMZTUVFQJYSEYBXBUUMUVFUUQQE
      YBXCUUMUUFYBQJUUQQJUUMYRUUFUVEVBHUFYCYBQQXGUTXDEUVFQXHXIVDVEYEXTYAXJXKXLX
      MYGABUSXOIRXN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Infinite Cartesian products
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c X_ $.

  $( Extend class notation to include infinite Cartesian products. $)
  cixp $a class X_ x e. A B $.

  ${
    $d f x $.  $d f A $.  $d f B $.
    $( Definition of infinite Cartesian product of [Enderton] p. 54.  Enderton
       uses a bold "X" with ` x e. A ` written underneath or as a subscript, as
       does Stoll p. 47.  Some books use a capital pi, but we will reserve that
       notation for products of numbers.  Usually ` B ` represents a class
       expression containing ` x ` free and thus can be thought of as
       ` B ( x ) ` .  Normally, ` x ` is not free in ` A ` , although this is
       not a requirement of the definition.  (Contributed by NM,
       28-Sep-2006.) $)
    df-ixp $a |- X_ x e. A B =
               { f | ( f Fn { x | x e. A } /\ A. x e. A ( f ` x ) e. B ) } $.

    $d x A $.
    $( Eliminate the expression ` { x | x e. A } ` in ~ df-ixp , under the
       assumption that ` A ` and ` x ` are disjoint.  This way, we can say that
       ` x ` is bound in ` X_ x e. A B ` even if it appears free in ` A ` .
       (Contributed by Mario Carneiro, 12-Aug-2016.) $)
    dfixp $p |- X_ x e. A B =
                 { f | ( f Fn A /\ A. x e. A ( f ` x ) e. B ) } $=
      ( cixp cv wcel cab wfn cfv wral wa df-ixp abid2 fneq2i anbi1i abbii eqtri
      ) ABCEDFZAFZBGAHZIZTSJCGABKZLZDHSBIZUCLZDHABCDMUDUFDUBUEUCUABSABNOPQR $.
  $}

  ${
    $d B f $.  $d V f $.  $d X f x $.
    $( The value of an infinite Cartesian product with a singleton.
       (Contributed by AV, 3-Dec-2018.) $)
    ixpsnval $p |- ( X e. V -> X_ x e. { X } B
                = { f | ( f Fn { X } /\ ( f ` X ) e. [_ X / x ]_ B ) } ) $=
      ( wcel csn cixp cv wfn cfv wral wa cab dfixp wsbc ralsnsg sbcel12 csbfv2g
      csb csbvarg fveq2d eqtrd eleq1d syl5bb bitrd anbi2d abbidv syl5eq ) EDFZA
      EGZBHCIZUKJZAIZULKZBFZAUKLZMZCNUMEULKZAEBTZFZMZCNAUKBCOUJURVBCUJUQVAUMUJU
      QUPAEPZVAUPAEDQVCAEUOTZUTFUJVAAEUOBRUJVDUSUTUJVDAEUNTZULKUSAEUNDULSUJVEEU
      LAEDUAUBUCUDUEUFUGUHUI $.
  $}

  ${
    $d f x A $.  $d f B $.  $d x C $.  $d x D $.  $d f x F $.
    $( Membership in an infinite Cartesian product.  See ~ df-ixp for
       discussion of the notation.  (Contributed by NM, 28-Sep-2006.) $)
    elixp2 $p |- ( F e. X_ x e. A B <->
                ( F e. _V /\ F Fn A /\ A. x e. A ( F ` x ) e. B ) ) $=
      ( vf cvv wcel cixp wa wfn cv cfv wral w3a wceq fneq1 fveq1 eleq1d ralbidv
      anbi12d dfixp elab2g pm5.32i elex pm4.71ri 3anass 3bitr4i ) DFGZDABCHZGZI
      UHDBJZAKZDLZCGZABMZIZIUJUHUKUONUHUJUPEKZBJZULUQLZCGZABMZIUPEDUIFUQDOZURUK
      VAUOBUQDPVBUTUNABVBUSUMCULUQDQRSTABCEUAUBUCUJUHDUIUDUEUHUKUOUFUG $.

    fvixp.1 $e |- ( x = C -> B = D ) $.
    $( Projection of a factor of an indexed Cartesian product.  (Contributed by
       Mario Carneiro, 11-Jun-2016.) $)
    fvixp $p |- ( ( F e. X_ x e. A B /\ C e. A ) -> ( F ` C ) e. D ) $=
      ( cixp wcel cv cfv wral cvv wfn elixp2 simp3bi wceq fveq2 eleq12d rspccva
      sylan ) FABCHIZAJZFKZCIZABLZDBIDFKZEIZUBFMIFBNUFABCFOPUEUHADBUCDQUDUGCEUC
      DFRGSTUA $.
  $}

  ${
    $d A f x $.  $d B f $.  $d F f $.  $d f x $.
    $( A nuple is a function.  (Contributed by FL, 6-Jun-2011.)  (Revised by
       Mario Carneiro, 31-May-2014.) $)
    ixpfn $p |- ( F e. X_ x e. A B -> F Fn A ) $=
      ( vf cv wfn cixp fneq1 wcel cvv cfv wral elixp2 simp2bi vtoclga ) EFZBGZD
      BGEDABCHZBQDIQSJQKJRAFQLCJABMABCQNOP $.
  $}

  ${
    $d x F $.  $d x A $.
    elixp.1 $e |- F e. _V $.
    $( Membership in an infinite Cartesian product.  (Contributed by NM,
       28-Sep-2006.) $)
    elixp $p |- ( F e. X_ x e. A B <->
                ( F Fn A /\ A. x e. A ( F ` x ) e. B ) ) $=
      ( cixp wcel cvv wfn cv cfv wral w3a wa elixp2 3anass mpbiran bitri ) DABC
      FGDHGZDBIZAJDKCGABLZMZTUANZABCDOUBSUCESTUAPQR $.

    $d x B $.
    $( Membership in an infinite Cartesian product of a constant ` B ` .
       (Contributed by NM, 12-Apr-2008.) $)
    elixpconst $p |- ( F e. X_ x e. A B <-> F : A --> B ) $=
      ( cixp wcel wfn cv cfv wral wa wf elixp ffnfv bitr4i ) DABCFGDBHAIDJCGABK
      LBCDMABCDENABCDOP $.
  $}

  ${
    $d f x A $.  $d f x B $.
    $( Infinite Cartesian product of a constant ` B ` .  (Contributed by Mario
       Carneiro, 11-Jan-2015.) $)
    ixpconstg $p |- ( ( A e. V /\ B e. W ) -> X_ x e. A B = ( B ^m A ) ) $=
      ( vf wcel cixp cmap co wceq wa cab mapvalg vex elixpconst abbi2i syl6reqr
      cv wf ancoms ) CEGZBDGZABCHZCBIJZKUBUCLUEBCFSZTZFMUDCBEDFNUGFUDABCUFFOPQR
      UA $.

    ixpconst.1 $e |- A e. _V $.
    ixpconst.2 $e |- B e. _V $.
    $( Infinite Cartesian product of a constant ` B ` .  (Contributed by NM,
       28-Sep-2006.) $)
    ixpconst $p |- X_ x e. A B = ( B ^m A ) $=
      ( cvv wcel cixp cmap co wceq ixpconstg mp2an ) BFGCFGABCHCBIJKDEABCFFLM
      $.
  $}

  ${
    $d f x A $.  $d f x B $.  $d f C $.
    $( Equality theorem for infinite Cartesian product.  (Contributed by NM,
       29-Sep-2006.) $)
    ixpeq1 $p |- ( A = B -> X_ x e. A C = X_ x e. B C ) $=
      ( vf wceq cv wfn cfv wcel wral wa cixp fneq2 raleq anbi12d abbidv 3eqtr4g
      cab dfixp ) BCFZEGZBHZAGUBIDJZABKZLZESUBCHZUDACKZLZESABDMACDMUAUFUIEUAUCU
      GUEUHBCUBNUDABCOPQABDETACDETR $.

    ixpeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for infinite Cartesian product.  (Contributed by Mario
       Carneiro, 11-Jun-2016.) $)
    ixpeq1d $p |- ( ph -> X_ x e. A C = X_ x e. B C ) $=
      ( wceq cixp ixpeq1 syl ) ACDGBCEHBDEHGFBCDEIJ $.
  $}

  ${
    $d f A $.  $d f B $.  $d f C $.  $d f x $.
    $( Subclass theorem for infinite Cartesian product.  (Contributed by NM,
       29-Sep-2006.)  (Revised by Mario Carneiro, 12-Aug-2016.) $)
    ss2ixp $p |- ( A. x e. A B C_ C -> X_ x e. A B C_ X_ x e. A C ) $=
      ( vf wss wral cv wcel cab wfn cfv cixp ssel ral2imi anim2d ss2abdv df-ixp
      wa 3sstr4g ) CDFZABGZEHZAHZBIAJKZUDUCLZCIZABGZSZEJUEUFDIZABGZSZEJABCMABDM
      UBUIULEUBUHUKUEUAUGUJABCDUFNOPQABCERABDERT $.
  $}

  $( Equality theorem for infinite Cartesian product.  (Contributed by NM,
     29-Sep-2006.) $)
  ixpeq2 $p |- ( A. x e. A B = C -> X_ x e. A B = X_ x e. A C ) $=
    ( wss wral wa cixp wceq ss2ixp anim12i eqss ralbii r19.26 bitri 3imtr4i ) C
    DEZABFZDCEZABFZGZABCHZABDHZEZUCUBEZGCDIZABFZUBUCIRUDTUEABCDJABDCJKUGQSGZABF
    UAUFUHABCDLMQSABNOUBUCLP $.

  ${
    $d x ph $.
    ixpeq2dva.1 $e |- ( ( ph /\ x e. A ) -> B = C ) $.
    $( Equality theorem for infinite Cartesian product.  (Contributed by Mario
       Carneiro, 11-Jun-2016.) $)
    ixpeq2dva $p |- ( ph -> X_ x e. A B = X_ x e. A C ) $=
      ( wceq wral cixp ralrimiva ixpeq2 syl ) ADEGZBCHBCDIBCEIGAMBCFJBCDEKL $.
  $}

  ${
    $d x ph $.
    ixpeq2dv.1 $e |- ( ph -> B = C ) $.
    $( Equality theorem for infinite Cartesian product.  (Contributed by Mario
       Carneiro, 11-Jun-2016.) $)
    ixpeq2dv $p |- ( ph -> X_ x e. A B = X_ x e. A C ) $=
      ( wceq cv wcel adantr ixpeq2dva ) ABCDEADEGBHCIFJK $.
  $}

  ${
    $d A f x y $.  $d B f $.  $d C f $.
    cbvixp.1 $e |- F/_ y B $.
    cbvixp.2 $e |- F/_ x C $.
    cbvixp.3 $e |- ( x = y -> B = C ) $.
    $( Change bound variable in an indexed Cartesian product.  (Contributed by
       Jeff Madsen, 20-Jun-2011.) $)
    cbvixp $p |- X_ x e. A B = X_ y e. A C $=
      ( vf cv wfn cfv wcel wral wa cab cixp nfel2 weq dfixp fveq2 cbvral anbi2i
      eleq12d abbii 3eqtr4i ) IJZCKZAJZUGLZDMZACNZOZIPUHBJZUGLZEMZBCNZOZIPACDQB
      CEQUMURIULUQUHUKUPABCBUJDFRAUOEGRABSUJUODEUIUNUGUAHUDUBUCUEACDITBCEITUF
      $.
  $}

  ${
    $d A x y $.  $d B y $.  $d C x $.
    cbvixpv.1 $e |- ( x = y -> B = C ) $.
    $( Change bound variable in an indexed Cartesian product.  (Contributed by
       Jeff Madsen, 2-Sep-2009.) $)
    cbvixpv $p |- X_ x e. A B = X_ y e. A C $=
      ( nfcv cbvixp ) ABCDEBDGAEGFH $.
  $}

  ${
    $d x z $.  $d y z $.  $d A z $.  $d B z $.
    nfixp.1 $e |- F/_ y A $.
    nfixp.2 $e |- F/_ y B $.
    $( Bound-variable hypothesis builder for indexed Cartesian product.
       (Contributed by Mario Carneiro, 15-Oct-2016.) $)
    nfixp $p |- F/_ y X_ x e. A B $=
      ( vz cixp cv wcel cab wfn cfv wa wnfc wtru wal a1i nfeld trud wral df-ixp
      nfcv nftru wn nfcvf adantl nfabd2 nffn wi df-ral nffvd nfimd nfald2 nfxfr
      weq wnf nfan nfab nfcxfr ) BACDHGIZAIZCJZAKZLZVBVAMZDJZACUAZNZGKACDGUBVIB
      GVEVHBBVDVABVAUCZBVDOPVCBAAUDZPBAUPBQUEZNZBVBCVLBVBOPBAUFUGZBCOVMERSZUHTU
      IVHVCVGUJZAQZBVGACUKVQBUQPVPBAVKVMVCVGBVOVMBVFDVMBVBVABVAOVMVJRVNULBDOVMF
      RSUMUNTUOURUSUT $.
  $}

  ${
    $d x y $.  $d A y $.  $d B y $.
    $( The index variable in an indexed Cartesian product is not free.
       (Contributed by Jeff Madsen, 19-Jun-2011.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    nfixp1 $p |- F/_ x X_ x e. A B $=
      ( vy cixp cv wcel cab wfn cfv wral df-ixp nfcv nfab1 nffn nfra1 nfan nfab
      wa nfcxfr ) AABCEDFZAFZBGZAHZIZUBUAJCGZABKZSZDHABCDLUHADUEUGAAUDUAAUAMUCA
      NOUFABPQRT $.
  $}

  ${
    $d f x A $.  $d f B $.
    $( A cartesian product of proper-class many sets is empty, because any
       function in the cartesian product has to be a set with domain ` A ` ,
       which is not possible for a proper class domain.  (Contributed by Mario
       Carneiro, 25-Jan-2015.) $)
    ixpprc $p |- ( -. A e. _V -> X_ x e. A B = (/) ) $=
      ( vf cixp c0 wceq cvv wcel wn cv wex neq0 wfn cdm fndm vex dmex syl6eqelr
      ixpfn syl exlimiv sylbi con1i ) ABCEZFGZBHIZUFJDKZUEIZDLUGDUEMUIUGDUIUHBN
      ZUGABCUHTUJBUHOHBUHPUHDQRSUAUBUCUD $.
  $}

  ${
    $d f x A $.  $d f B $.  $d x F $.  $d f C $.
    $( A member of an infinite Cartesian product maps to the indexed union of
       the product argument.  Remark in [Enderton] p. 54.  (Contributed by NM,
       28-Sep-2006.) $)
    ixpf $p |- ( F e. X_ x e. A B -> F : A --> U_ x e. A B ) $=
      ( cixp wcel cvv wfn cv cfv wral w3a ciun wf elixp2 wa ssiun2 ralimia nfcv
      sseld anim2i nfiu1 ffnfvf sylibr 3adant1 sylbi ) DABCEFDGFZDBHZAIZDJZCFZA
      BKZLBABCMZDNZABCDOUHULUNUGUHULPUHUJUMFZABKZPUNULUPUHUKUOABUIBFCUMUJABCQTR
      UAABUMDABSABCUBADSUCUDUEUF $.

    $( The union of an infinite Cartesian product is included in a Cartesian
       product.  (Contributed by NM, 28-Sep-2006.)  (Revised by Mario Carneiro,
       24-Jun-2015.) $)
    uniixp $p |- U. X_ x e. A B C_ ( A X. U_ x e. A B ) $=
      ( vf cixp ciun cxp cpw wss cuni cv wcel ixpf fssxp syl selpw sylibr ssriv
      wf sspwuni mpbi ) ABCEZBABCFZGZHZIUBJUDIDUBUEDKZUBLZUFUDIZUFUELUGBUCUFSUH
      ABCUFMBUCUFNODUDPQRUBUDTUA $.

    $( The existence of an infinite Cartesian product. ` x ` is normally a
       free-variable parameter in ` B ` .  Remark in Enderton p. 54.
       (Contributed by NM, 28-Sep-2006.)  (Revised by Mario Carneiro,
       25-Jan-2015.) $)
    ixpexg $p |- ( A. x e. A B e. V -> X_ x e. A B e. _V ) $=
      ( cvv wcel wral cixp cuni ciun cxp wss uniixp iunexg xpexg syldan sylancr
      wa ssexg uniexb sylibr wn c0 ixpprc 0ex syl6eqel adantr pm2.61ian ) BEFZC
      DFABGZABCHZEFZUIUJRZUKIZEFZULUMUNBABCJZKZLUQEFZUOABCMUIUJUPEFURABCEDNBUPE
      EOPUNUQESQUKTUAUIUBZULUJUSUKUCEABCUDUEUFUGUH $.

    $( The intersection of two infinite Cartesian products.  (Contributed by
       Mario Carneiro, 3-Feb-2015.) $)
    ixpin $p |- X_ x e. A ( B i^i C ) = ( X_ x e. A B i^i X_ x e. A C ) $=
      ( vf cin cixp cv wfn wcel wral wa anandi elin ralbii r19.26 bitri 3bitr4i
      cfv elixp anbi2i vex anbi12i eqriv ) EABCDFZGZABCGZABDGZFZEHZBIZAHUJSZUEJ
      ZABKZLZUJUGJZUJUHJZLZUJUFJUJUIJUKULCJZABKZULDJZABKZLZLUKUTLZUKVBLZLUOURUK
      UTVBMUNVCUKUNUSVALZABKVCUMVFABULCDNOUSVAABPQUAUPVDUQVEABCUJEUBZTABDUJVGTU
      CRABUEUJVGTUJUGUHNRUD $.
  $}

  ${
    $d f x y A $.  $d f x y B $.  $d f C $.
    $( The indexed intersection of a collection of infinite Cartesian products.
       (Contributed by Mario Carneiro, 6-Feb-2015.) $)
    ixpiin $p |- ( B =/= (/) ->
      X_ x e. A |^|_ y e. B C = |^|_ y e. B X_ x e. A C ) $=
      ( vf c0 cixp ciin cv wcel wral wa cvv wb eliin ax-mp elixp ralbii bitri
      wne wfn cfv r19.28zv vex fvex ralcom anbi2i 3bitr4g eqrdv eqcomd ) DGUAZB
      DACEHZIZACBDEIZHZULFUNUPULFJZCUBZAJZUQUCZEKZACLZMZBDLZURVBBDLZMZUQUNKZUQU
      PKZURVBBDUDVGUQUMKZBDLZVDUQNKVGVJOFUEZBUQDUMNPQVIVCBDACEUQVKRSTVHURUTUOKZ
      ACLZMVFACUOUQVKRVMVEURVMVABDLZACLVEVLVNACUTNKVLVNOUSUQUFBUTDENPQSVAABCDUG
      TUHTUIUJUK $.

    $( The intersection of a collection of infinite Cartesian products.
       (Contributed by Mario Carneiro, 3-Feb-2015.) $)
    ixpint $p |- ( B =/= (/) -> X_ x e. A |^| B = |^|_ y e. B X_ x e. A y ) $=
      ( c0 wne cint cixp cv ciin wceq ixpeq2 wcel intiin a1i mprg ixpiin syl5eq
      ) DEFACDGZHZACBDBIZJZHZBDACUAHJSUBKZTUCKACACSUBLUDAICMBDNOPABCDUAQR $.
  $}

  ${
    $d f x $.  $d f A $.
    $( An infinite Cartesian product with an empty index set.  (Contributed by
       NM, 21-Sep-2007.) $)
    ixp0x $p |- X_ x e. (/) A = { (/) } $=
      ( vf c0 cixp cv wfn cfv wcel wral wa cab csn dfixp wceq velsn fn0 biantru
      ral0 3bitr2i abbi2i eqtr4i ) ADBECFZDGZAFUCHBIZADJZKZCLDMZADBCNUGCUHUCUHI
      UCDOUDUGCDPUCQUFUDUEASRTUAUB $.
  $}

  ${
    $d A f x $.  $d B f $.  $d V f $.
    $( An infinite Cartesian product is a subset of set exponentiation.  This
       version of ~ ixpssmapg avoids ~ ax-rep .  (Contributed by Mario
       Carneiro, 16-Nov-2014.) $)
    ixpssmap2g $p |- ( U_ x e. A B e. V ->
        X_ x e. A B C_ ( U_ x e. A B ^m A ) ) $=
      ( vf ciun wcel cixp cmap co cv wa wf ixpf adantl cvv wb c0 wceq n0i nsyl2
      ixpprc elmapg sylan2 mpbird ex ssrdv ) ABCFZDGZEABCHZUHBIJZUIEKZUJGZULUKG
      ZUIUMLUNBUHULMZUMUOUIABCULNOUMUIBPGZUNUOQUMUJRSUPUJULTABCUBUAUHBULDPUCUDU
      EUFUG $.

    $( An infinite Cartesian product is a subset of set exponentiation.
       (Contributed by Jeff Madsen, 19-Jun-2011.) $)
    ixpssmapg $p |- ( A. x e. A B e. V ->
        X_ x e. A B C_ ( U_ x e. A B ^m A ) ) $=
      ( vf wcel wral cixp ciun cmap co cv wa cvv wss c0 wceq n0i ixpprc nsyl2
      id iunexg syl2anr ixpssmap2g syl simpr sseldd ex ssrdv ) CDFABGZEABCHZABC
      IZBJKZUJELZUKFZUNUMFUJUOMZUKUMUNUPULNFZUKUMOUOBNFZUJUQUJUOUKPQURUKUNRABCS
      TUJUAABCNDUBUCABCNUDUEUJUOUFUGUHUI $.
  $}

  $( Membership of the empty set in an infinite Cartesian product.
     (Contributed by Steve Rodriguez, 29-Sep-2006.) $)
  0elixp $p |- (/) e. X_ x e. (/) A $=
    ( c0 csn cixp 0ex snid ixp0x eleqtrri ) CCDACBECFGABHI $.

  ${
    $d f A $.  $d f B $.  $d f x $.
    $( The infinite Cartesian product of a family ` B ( x ) ` with an empty
       member is empty.  The converse of this theorem is equivalent to the
       Axiom of Choice, see ~ ac9 .  (Contributed by Mario Carneiro,
       22-Jun-2016.) $)
    ixpn0 $p |- ( X_ x e. A B =/= (/) -> A. x e. A B =/= (/) ) $=
      ( vf cixp c0 wne cv wcel wex wral n0 cab wfn wa df-ixp abeq2i ne0i ralimi
      cfv simplbiim exlimiv sylbi ) ABCEZFGDHZUDIZDJCFGZABKZDUDLUFUHDUFUEAHZBIA
      MNZUIUETZCIZABKZUHUJUMODUDABCDPQULUGABCUKRSUAUBUC $.

    $( The infinite Cartesian product of a family ` B ( x ) ` with an empty
       member is empty.  The converse of this theorem is equivalent to the
       Axiom of Choice, see ~ ac9 .  (Contributed by NM, 1-Oct-2006.)  (Proof
       shortened by Mario Carneiro, 22-Jun-2016.) $)
    ixp0 $p |- ( E. x e. A B = (/) -> X_ x e. A B = (/) ) $=
      ( c0 wceq wrex wne wral wn cixp rexbii rexnal bitr3i ixpn0 necon1bi sylbi
      nne ) CDEZABFZCDGZABHZIZABCJZDESTIZABFUBUDRABCDQKTABLMUAUCDABCNOP $.
  $}

  ${
    $d x A $.
    ixpssmap.2 $e |- B e. _V $.
    $( An infinite Cartesian product is a subset of set exponentiation.  Remark
       in [Enderton] p. 54.  (Contributed by NM, 28-Sep-2006.) $)
    ixpssmap $p |- X_ x e. A B C_ ( U_ x e. A B ^m A ) $=
      ( cvv wcel wral cixp ciun cmap co wss rgenw ixpssmapg ax-mp ) CEFZABGABCH
      ABCIBJKLPABDMABCENO $.
  $}

  ${
    $d A x $.  $d B x $.  $d F x $.
    $( Restriction of an element of an infinite Cartesian product.
       (Contributed by FL, 7-Nov-2011.)  (Proof shortened by Mario Carneiro,
       31-May-2014.) $)
    resixp $p |- ( ( B C_ A /\ F e. X_ x e. A C )
       -> ( F |` B ) e. X_ x e. B C ) $=
      ( wss cixp wcel wa cres cvv wfn cfv wral resexg adantl w3a simpr elixp2
      cv sylib simp2d simpl fnssres syl2anc simp3d ssralv eleq1d ralbiia sylibr
      sylc fvres syl3anbrc ) CBFZEABDGZHZIZECJZKHZURCLZATZURMZDHZACNZURACDGHUPU
      SUNECUOOPUQEBLZUNUTUQEKHZVEVAEMZDHZABNZUQUPVFVEVIQUNUPRABDESUAZUBUNUPUCZB
      CEUDUEUQVHACNZVDUQUNVIVLVKUQVFVEVIVJUFVHACBUGUKVCVHACVACHVBVGDVACEULUHUIU
      JACDURSUM $.
  $}

  ${
    $d A x $.  $d B x $.  $d F x $.  $d G x $.
    $( Union of two projections of a cartesian product.  (Contributed by FL,
       7-Nov-2011.) $)
    undifixp $p |-
    ( ( F e. X_ x e. B C /\ G e. X_ x e. ( A \ B ) C /\ B C_ A )
        -> ( F u. G ) e. X_ x e. A C ) $=
      ( cixp wcel cun wfn wral wi wa c0 wceq sylancl syl2imc wn eqcoms syl cdif
      wss w3a cvv cfv unexg 3adant3 ixpfn cin 3simpa ancomd disjdif fnun biimpi
      cv eqcomd 3ad2ant3 fneq2d mpbird 3exp 3imp elixp2 simp3bi cdm fndm elndif
      undif wb eleq2 notbid ndmfv syl6bi syl2im ralrimiv uneq2 un0 eleq1 biimpd
      eqtr com12 ral2imi impcom eldifn uneq1 uncom imp ralunb sylanbrc ex raleq
      imbi2d syl5ibr sylbi 3imp231 wfun df-fn simpl ineq12 syl6eq ad2ant2l fvun
      anim12i syl2anc eleq1d ralbidv syl3anbrc ) EACDGZHZFABCUAZDGZHZCBUBZUCZEF
      IZUDHZXNBJZAUOZXNUEZDHZABKZXNABDGHXHXKXOXLEFXGXJUFUGXHXKXLXPXKFXIJZXHECJZ
      XLXPLAXIDFUHZACDEUHZYAYBXLXPYAYBXLUCZXPXNCXIIZJZYEYBYAMCXIUIZNOYGYEYAYBYA
      YBXLUJUKCBULZCXIEFUMPYEBYFXNXLYABYFOZYBXLYFBXLYFBOZCBVGZUNUPUQURUSUTQVAXM
      XTXQEUEZXQFUEZIZDHZABKZXLXHXKYQXLYKXHXKYQLZLZYLYSBYFXHYRYJXKYPAYFKZLXHXKY
      TXHXKMYPACKZYPAXIKZYTXKXHUUAXKYAXHUUALYCXHYMDHZACKZYAYNNOZACKUUAXHEUDHYBU
      UDACDEVBVCYAUUEACYAFVDZXIOZXQCHZXQXIHZRZUUEXIFVEXQCBVFUUGUUJXQUUFHZRZUUEU
      UJUULVHXIUUFXIUUFOUUIUUKXIUUFXQVIVJSXQFVKVLVMVNUUCUUEYPACUUEUUCYPUUEYOYMN
      IZOZUUMYMOZUUCYPLZYNNYMVOYMVPUUNUUOMYOYMOUUPYOUUMYMVSUUPYMYOYMYOOUUCYPYMY
      ODVQVRSTPVTWAQTWBXHXKUUBXHYBXKUUBLYDXKYNDHZAXIKZYBYMNOZAXIKUUBXKFUDHYAUUR
      AXIDFVBVCYBUUSAXIYBEVDZCOZUUIUUHRZUUSCEVEXQBCWCUVBUUSLCUUTCUUTOZUVBXQUUTH
      ZRUUSUVCUUHUVDCUUTXQVIVJXQEVKVLSVMVNUUQUUSYPAXIUUSUUQYPUUSYONYNIZOZUVEYNN
      IZOZUUQYPLZYMNYNWDNYNWEUVFUVHMYOUVGOZUVGYNOZUVIYOUVEUVGVSYNVPUVJUVKMYOYNO
      UVIYOUVGYNVSUVIYNYOYNYOOUUQYPYNYODVQVRSTPPVTWAQTWFYPACXIWGWHWIYJYQYTXKYPA
      BYFWJWKWLSWMWNXHXKXLXTYQVHZXKYAXHYBXLUVLLZYCYDYAFWOZUUGMZYBUVMLFXIWPYBUVO
      UVMYBEWOZUVAMZUVOUVMLECWPUVQUVOXLUVLUVQUVOXLUCZXSYPABUVRXRYODUVRUVPUVNMZU
      UTUUFUIZNOZXRYOOUVQUVOUVSXLUVQUVPUVOUVNUVPUVAWQUVNUUGWQXBUGUVQUVOUWAXLUVA
      UUGUWAUVPUVNUVAUUGMUVTYHNUUTCUUFXIWRYIWSWTUGXQEFXAXCXDXEUTWMVTWMQVAUSABDX
      NVBXF $.
  $}

  ${
    $d I x y $.  $d J y $.  $d K y $.
    $( Condition for an explicit member of an indexed product.  (Contributed by
       Stefan O'Rear, 4-Jan-2015.) $)
    mptelixpg $p |- ( I e. V -> ( ( x e. I |-> J ) e. X_ x e. I K <->
          A. x e. I J e. K ) ) $=
      ( vy wcel cvv cmpt cixp wral wb elex cv cfv wa fvmpt2 ralimiaa wi syl wfn
      csb w3a nfcv nfcsb1v csbeq1a cbvixp eleq2i elixp2 3anass eqid fnmpt simpr
      3bitri eqeltrd jca dffn2 fmpt eleq1d biimpd ralim sylbir sylbi imp impbii
      wf nfv nffvmpt1 nfel weq fveq2 eleq12d cbvral anbi2i bitri mptexg syl5rbb
      biantrurd syl5bb ) BEGBHGZABCIZABDJZGZCDGZABKZLBEMWCWAHGZWABUAZFNZWAOZAWH
      DUBZGZFBKZPZPZVTWEWCWAFBWJJZGWFWGWLUCWNWBWOWAAFBDWJFDUDAWHDUEZAWHDUFZUGUH
      FBWJWAUIWFWGWLUJUNWEWMVTWNWEWGANZWAOZDGZABKZPZWMWEXBWEWGXAABCWADWAUKZULWD
      WTABWRBGZWDPWSCDABCDWAXCQXDWDUMUORUPWGXAWEWGBHWAVFZXAWESZBWAUQXECHGZABKZX
      FABHCWAXCURXHWTWDSZABKXFXGXIABXDXGPZWTWDXJWSCDABCHWAXCQUSUTRWTWDABVATVBVC
      VDVEXAWLWGWTWKAFBWTFVGAWIWJABCWHVHWPVIAFVJWSWIDWJWRWHWAVKWQVLVMVNVOVTWFWM
      ABCHVPVRVQVST $.
  $}

  ${
    $d f g h x y z A $.  $d f g h x y z B $.  $d f g h y C $.  $d g h y F $.
    resixpfo.1 $e |- F = ( f e. X_ x e. A C |-> ( f |` B ) ) $.
    $( Restriction of elements of an infinite Cartesian product creates a
       surjection, if the original Cartesian product is nonempty.  (Contributed
       by Mario Carneiro, 27-Aug-2015.) $)
    resixpfo $p |- ( ( B C_ A /\ X_ x e. A C =/= (/) ) ->
        F : X_ x e. A C -onto-> X_ x e. B C ) $=
      ( vh vy vg vz wa cv cfv wceq wral wcel cmpt wi cvv wss cixp c0 wne wf wfo
      wrex cres resixp fmptd adantr wex cif eleq1 ifbid fveq12d cbvmptv wfn vex
      n0 id elixp simprbi fveq1 eleq1d simpl imp simplrr ifbothda exp32 ralimi2
      wn syl adantl ralim sylan2 wb n0i ixpprc mptelixpg mpbird syl5eqel iftrue
      nsyl2 fveq1d mpteq2ia resmpt ad2antrr ixpfn ad2antlr dffn5 sylib syl6eqel
      3eqtr4a reseq1 fvmptg syl2anc eqtr2d fveq2 eqeq2d rspcev ralrimdva syl5bi
      ex exlimdv dffo3 sylanbrc ) CBUAZABDUBZUCUDZLXIACDUBZFUEZHMZIMZFNZOZIXIUG
      ZHXKPZXIXKFUFXHXLXJXHEXIEMZCUHZXKFABCDXSUIGUJUKXHXJXRXJJMZXIQZJULXHXRJXIU
      TXHYBXRJXHYBXQHXKXHXMXKQZLZYBXQYDYBLZKBKMZYFCQZXMYAUMZNZRZXIQZXMYJFNZOZXQ
      YEYJABAMZYNCQZXMYAUMZNZRZXIKABYIYQYFYNOZYFYNYHYPYSYGYOXMYAYFYNCUNUOYSVAUP
      UQYEYRXIQZYQDQZABPZYBYDYNYANZDQZABPZUUBYBYABURUUEABDYAJUSVBVCYDUUEUUBYDUU
      DUUASZABPZUUEUUBSYCUUGXHYCYNXMNZDQZACPZUUGYCXMCURZUUJACDXMHUSZVBVCUUIUUFA
      CBYOUUISZYNBQZUUDUUAYOUUIUUDUUAUUMUUNUUDLZLZXMYAXMYPOUUHYQDYNXMYPVDVEYAYP
      OUUCYQDYNYAYPVDVEUUPYOUUIUUMUUOVFVGUUMUUNUUDYOVLVHVIVJVKVMVNUUDUUAABVOVMV
      GVPYEBTQZYTUUBVQYBUUQYDYBXIUCOUUQXIYAVRABDVSWDVNABYQDTVTVMWAWBZYEYLYJCUHZ
      XMYEYKUUSTQYLUUSOUURYEUUSXMTYEKCYIRZKCYFXMNZRZUUSXMKCYIUVAYGYFYHXMYGXMYAW
      CWEWFXHUUSUUTOYCYBKBCYIWGWHYEUUKXMUVBOYCUUKXHYBACDXMWIWJKCXMWKWLWNZUULWME
      YJXTUUSXITFXSYJCWOGWPWQUVCWRXPYMIYJXIXNYJOXOYLXMXNYJFWSWTXAWQXDXBXEXCVGIH
      XIXKFXFXG $.
  $}

  ${
    $d B x y z w $.  $d F x y z w $.  $d A x y z w $.  $d V x y z w $.
    $( Membership in a class of singleton functions.  (Contributed by Stefan
       O'Rear, 24-Jan-2015.) $)
    elixpsn $p |- ( A e. V -> ( F e. X_ x e. { A } B <->
        E. y e. B F = { <. A , y >. } ) ) $=
      ( vz vw cv csn cixp wcel cop wceq wrex cvv cfv wa vex eleq1d sneq ixpeq1d
      eleq2d opeq1 sneqd eqeq2d elex snex eleq1 mpbiri rexlimivw eqeq1 wfn wral
      rexbidv elixp fveq2 ralsn anbi2i simpl biimpri adantl ffnfv sylanbrc fsn2
      wf sylib opeq2 rspcev syl fvsn id syl5eqel fnsn jctil fneq1 fveq1 anbi12d
      syl5ibrcom rexlimiv impbii 3bitri vtoclbg pm5.21nii ) EAGIZJZDKZLZEWEBIZM
      ZJZNZBDOZEACJZDKZLECWIMZJZNZBDOGCFWECNZWGWOEWSAWFWNDWECUAUBUCWSWLWRBDWSWK
      WQEWSWJWPWECWIUDUEUFUOWHEPLZWMEWGUGWLWTBDWLWTWKPLWJUHEWKPUIUJUKHIZWGLZXAW
      KNZBDOZWHWMHEPXAEWGUIXAENXCWLBDXAEWKULUOXBXAWFUMZAIZXAQZDLZAWFUNZRXEWEXAQ
      ZDLZRZXDAWFDXAHSUPXIXKXEXHXKAWEGSZXFWENXGXJDXFWEXAUQTURUSXLXDXLXKXAWEXJMZ
      JZNZRZXDXLWFDXAVFZXQXLXEWIXAQZDLZBWFUNZXRXEXKUTXKYAXEYAXKXTXKBWEXMWIWENXS
      XJDWIWEXAUQTURVAVBBWFDXAVCVDWEDXAXMVEVGXCXPBXJDWIXJNZWKXOXAYBWJXNWIXJWEVH
      UEUFVIVJXCXLBDWIDLZXLXCWKWFUMZWEWKQZDLZRYCYFYDYCYEWIDWEWIXMBSZVKYCVLVMWEW
      IXMYGVNVOXCXEYDXKYFWFXAWKVPXCXJYEDWEXAWKVQTVRVSVTWAWBWCWDWC $.
  $}

  ${
    $d I a b c x y $.  $d A a b c x y $.  $d V a b c x y $.  $d F a b c y $.
    $d W a b c x y $.
    ixpsnf1o.f $e |- F = ( x e. A |-> ( { I } X. { x } ) ) $.
    $( A bijection between a class and single-point functions to it.
       (Contributed by Stefan O'Rear, 24-Jan-2015.) $)
    ixpsnf1o $p |- ( I e. V -> F : A -1-1-onto-> X_ y e. { I } A ) $=
      ( va vb vc wcel csn cv crn cuni cvv wa vex wceq eqeq2d cixp cxp snex xpex
      a1i rnex uniex cop wrex sneq xpeq1d anbi2d elixpsn ixpeq1d eleq2d syl5bbr
      ax-mp anbi1d xpsn eqeq2i anbi2i eqid weq opeq2 sneqd rspcev op2nda eqcomi
      wb mpan2 jctir eqeq1 rexbidv unieqd anbi12d syl5ibrcom imp wi eqidd ancli
      rneq eleq1 syl5bi imbi12d rexlimiv impbii bitri vtoclbg f1od ) EFKZAHCBEL
      ZCUAZWKAMZLZUBZHMZNZOZDPPGWOPKWJWMCKZQWKWNEUCWMUCUDUEWRPKWJWPWLKZQWQWPHRU
      FUGUEWSWPIMZLZWNUBZSZQZWPXAJMZUHZLZSZJCUIZWMWRSZQZWSWPWOSZQWTXKQIEFXAESZX
      DXMWSXNXCWOWPXNXBWKWNXAEUJZUKTULXNXJWTXKXJWPBXBCUAZKZXNWTXAPKXQXJVIIRZBJX
      ACWPPUMUQXNXPWLWPXNBXBWKCXOUNUOUPURXEWSWPXAWMUHZLZSZQZXLXDYAWSXCXTWPXAWMX
      RARZUSUTVAYBXLWSYAXLWSXLYAXTXHSZJCUIZWMXTNZOZSZQWSYEYHWSXTXTSZYEXTVBYDYIJ
      WMCJAVCZXHXTXTYJXGXSXFWMXAVDVETVFVJYGWMXAWMXRYCVGVHVKYAXJYEXKYHYAXIYDJCWP
      XTXHVLVMYAWRYGWMYAWQYFWPXTWAVNTVOVPVQXJXKYBXIXKYBVRZJCXFCKZYKXIWMXHNZOZSZ
      WSXHXTSZQZVRYOAJVCZYLYQYNXFWMXAXFXRJRVGUTYLYQYRYLXHXHSZQYLYSYLXHVSVTYRWSY
      LYPYSWMXFCWBYRXTXHXHYRXSXGWMXFXAVDVETVOVPWCXIXKYOYBYQXIWRYNWMXIWQYMWPXHWA
      VNTXIYAYPWSWPXHXTVLULWDVPWEVQWFWGWHWI $.

    $( A bijection between a set and single-point functions to it.
       (Contributed by Stefan O'Rear, 24-Jan-2015.) $)
    mapsnf1o $p |- ( ( A e. V /\ I e. W ) ->
        F : A -1-1-onto-> ( A ^m { I } ) ) $=
      ( vy wcel wa csn cmap co wf1o cixp ixpsnf1o adantl wceq wb cvv eqcomd syl
      snex ixpconstg mpan adantr f1oeq3 mpbird ) BEIZDFIZJZBBDKZLMZCNZBHULBOZCN
      ZUJUPUIAHBCDFGPQUKUMUORZUNUPSUIUQUJULTIZUIUQDUCURUIJUOUMHULBTEUDUAUEUFUMU
      OBCUGUBUH $.
  $}

  ${
    $d A y z $.  $d B y z $.  $d I x y z $.
    $( A rectangular subset of a rectangular set can be recovered as the
       relative intersection of single-axis restrictions.  (Contributed by
       Stefan O'Rear, 22-Feb-2015.) $)
    boxriin $p |- ( A. x e. I A C_ B -> X_ x e. I A = ( X_ x e. I B i^i
            |^|_ y e. I X_ x e. I if ( x = y , A , B ) ) ) $=
      ( vz wral cixp weq cv wcel wa wi ral2imi adantr impr eleq2 jca elixp cvv
      wss cif ciin cin wfn simprl ssel simplr wn ssel2 ifbothda ralrimivw jca31
      ex simprll simpr ralimi ralcom wceq iftrue equcoms eleq2d rspcva ralimiaa
      cfv sylbi syl ad2antll impbida elin wb eliin ax-mp ralbii anbi12i 3bitr4g
      vex bitri eqrdv ) CDUAZAEGZFAECHZAEDHZBEAEABIZCDUBZHZUCZUDZWAFJZEUEZAJZWI
      VEZCKZAEGZLZWJWLDKZAEGZLZWJWLWEKZAEGZLZBEGZLZWIWBKWIWHKZWAWOXCWAWOLZWJWQX
      BWAWJWNUFZWAWJWNWQWAWNWQMWJVTWMWPAECDWLUGNOPXEXABEXEWJWTXFWAWJWNWTWAWNWTM
      WJVTWMWSAEVTWMWSWDWMWPWSVTWMLZCDCWEWLQDWEWLQVTWMWDUHXGWPWDUICDWLUJOUKUNNO
      PRULUMWAXCLWJWNWAWJWQXBUOXBWNWAWRXBWTBEGZWNXAWTBEWJWTUPUQXHWSBEGZAEGWNWSB
      AEEURXIWMAEWSWMBWKEBAIWECWLWECUSABWDCDUTVAVBVCVDVFVGVHRVIAECWIFVQZSXDWIWC
      KZWIWGKZLXCWIWCWGVJXKWRXLXBAEDWIXJSXLWIWFKZBEGZXBWITKXLXNVKXJBWIEWFTVLVMX
      MXABEAEWEWIXJSVNVRVOVRVPVS $.
  $}

  ${
    $d A k l m z $.  $d B l m z $.  $d C l m z $.  $d X k l m z $.
    $( The relative complement of a box set restricted on one axis.
       (Contributed by Stefan O'Rear, 22-Feb-2015.) $)
    boxcutc $p |- ( ( X e. A /\ A. k e. A C C_ B ) ->
        ( X_ k e. A B \ X_ k e. A if ( k = X , C , B ) ) =
          X_ k e. A if ( k = X , ( B \ C ) , B ) ) $=
      ( vl vm wcel wss wral wa cv cif cdif wn cfv csb eleq2 nfv eleq12d vz cixp
      wceq eldifi adantl sseq1 difss ssid keephyp rgenw ss2ixp sselda wfn ixpfn
      mp1i biantrurd vex elixp syl6rbbr notbid wrex simpl simprbi nfcsb1v nfel2
      rexnal fveq2 csbeq1a cbvral csbeq1 rspcva syl2an neldif adantr syl5ibrcom
      sylib sylan ad2antlr r19.21bi ifbothda ralrimiva dfral2 ex con4d difeq12d
      weq imp simpll iftrue eqtrd eldifbd rspcev syl2an2r impbida nfn ifbieq12d
      nfif eqeq1 cbvrex nfdif 3bitr4g syl5bbr bitrd ibar 3bitr3d eldif eqrdav
      wb ) EAHZCBIDAJZKZUADABUBZDADLZEUCZCBMZUBZNZDAXNBCNZBMZUBZXLUALZXQHZYAXLH
      ZXKYAXLXPUDUEXKXTXLYAXSBIZDAJXTXLIXKYDDAXNXRBIBBIYDXRBXRXSBUFBXSBUFBCUGBU
      HUIUJDAXSBUKUOULXKYCKZYCYAXPHZOZKZYAAUMZXMYAPZXSHZDAJZKZYBYAXTHYEYGYLYHYM
      YEYGYJXOHZDAJZOZYLYEYFYOYEYOYIYOKYFYEYIYOYCYIXKDABYAUNUEZUPDAXOYAUAUQZURU
      SUTYPYNOZDAVAZYEYLYNDAVFYEFLZYAPZUUAEUCZDUUACQZDUUABQZMZHZOZFAVAZGLZYAPZU
      UJEUCZDUUJBQZDUUJCQZNZUUMMZHZGAJZYTYLYEUUIUURYEUUIKZUUQGAUULUUKUUOHZUUKUU
      MHZUUQUUSUUJAHZKZUUOUUMUUOUUPUUKRUUMUUPUUKRUVCUULUUTUVCUUTUULEYAPZDEBQZDE
      CQZNZHZUUSUVHUVBYEUUIUVHYEUVHUUIYEUVHOZUUIOZYEUVIKZUUGFAJUVJUVKUUGFAUUCUU
      BUUDHZUUBUUEHZUUGUVKUUAAHZKZUUDUUEUUDUUFUUBRUUEUUFUUBRUVOUUCUVLUVOUVLUUCU
      VDUVFHZUVKUVPUVNYEUVDUVEHZUVIUVPXKXIUVMFAJZUVQYCXIXJVBYCYJBHZDAJZUVRYCYIU
      VTDABYAYRURVCZUVSUVMDFAUVSFSDUUBUUEDUUABVDZVEDFWFZYJUUBBUUEXMUUAYAVGZDUUA
      BVHZTVIVPZUVMUVQFEAUUCUUBUVDUUEUVEUUAEYAVGZDUUAEBVJTVKVLUVDUVEUVFVMVQVNUU
      CUUBUVDUUDUVFUWGDUUAECVJZTVOWGUVOUVMUUCOUVKUVMFAYCUVRXKUVIUWFVRVSVNVTWAUU
      GFAWBVPWCWDWGVNUULUUKUVDUUOUVGUUJEYAVGZUULUUMUVEUUNUVFDUUJEBVJDUUJECVJWEZ
      TVOWGUVCUVAUULOUUSUVAGAYCUVAGAJZXKUUIYCUVTUWKUWAUVSUVADGAUVSGSDUUKUUMDUUJ
      BVDZVEDGWFZYJUUKBUUMXMUUJYAVGZDUUJBVHZTVIVPVRVSVNVTWAYEXIUURUVPOZUUIXIXJY
      CWHZYEUURKUVDUVEUVFYEXIUURUVHUWQUUQUVHGEAUULUUKUVDUUPUVGUWIUULUUPUUOUVGUU
      LUUOUUMWIUWJWJTVKVQWKUUHUWPFEAUUCUUGUVPUUCUUBUVDUUFUVFUWGUUCUUFUUDUVFUUCU
      UDUUEWIUWHWJTUTWLWMWNYSUUHDFAYSFSUUGDDUUBUUFUUCDUUDUUEUUCDSDUUACVDUWBWQVE
      WOUWCYNUUGUWCYJUUBXOUUFUWDUWCXNUUCCBUUDUUEXMUUAEWRDUUACVHUWEWPTUTWSYKUUQD
      GAYKGSDUUKUUPUULDUUOUUMUULDSDUUMUUNUWLDUUJCVDWTUWLWQVEUWMYJUUKXSUUPUWNUWM
      XNUULXRBUUOUUMXMUUJEWRUWMBUUMCUUNUWODUUJCVHWEUWOWPTVIXAXBXCYCYGYHXHXKYCYG
      XDUEYEYIYLYQUPXEYAXLXPXFDAXSYAYRURXAXG $.
  $}

$(
  @{
    xpixp.1 @e |- P = X_ x e. { (/) , 1o } if ( x = (/) , A , B ) @.
    xpixp.1 @e |- P = X_ x e. 2o if ( x = (/) , A , B ) @.
    xpixp.1 @e |- P =
               X_ x e. { (/) , 1o } ( { <. (/) , A >. , <. 1o , B >. } ` x ) @.
    @( A Cartesian product in terms of an infinite Cartesian product. @)
    xpixp @p |- ( A X. B ) =
                ( ran ( U. P |` { (/) } ) X. ran ( U. P |` { 1o } ) ) @=
?@.
      @( [ ?] @) @( [29-Sep-2006] @)
  @}

  @{
    ixpxp.1 @e |- P = ( A X. B ) @.
    @( An infinite Cartesian product in terms of a Cartesian product. @)
    ixpxp @p |- X_ x e. { (/) , 1o } if ( x = (/) , A , B ) =
                { ( { (/) } X. dom P ) , ( { 1o } X. ran P ) } @=
?@.
      @( [ ?] @) @( [29-Sep-2006] @)
  @}
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Equinumerosity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c ~~ $.  $( Equinumerosity relation ("approximately equals" symbol) $)
  $c ~<_ $.  $( Dominance relation (curly less-than-or-equal) $)
  $c ~< $.  $( Strict dominance relation (curly less-than) $)
  $c Fin $.  $( Class of all finite sets. $)

  $( Extend class definition to include the equinumerosity relation
     ("approximately equals" symbol) $)
  cen $a class ~~ $.

  $( Extend class definition to include the dominance relation (curly
     less-than-or-equal) $)
  cdom $a class ~<_ $.

  $( Extend class definition to include the strict dominance relation (curly
     less-than) $)
  csdm $a class ~< $.

  $( Extend class definition to include the class of all finite sets. $)
  cfn $a class Fin $.

  ${
    $d x y f $.
    $( Define the equinumerosity relation.  Definition of [Enderton] p. 129.
       We define ` ~~ ` to be a binary relation rather than a connective, so
       its arguments must be sets to be meaningful.  This is acceptable because
       we do not consider equinumerosity for proper classes.  We derive the
       usual definition as ~ bren .  (Contributed by NM, 28-Mar-1998.) $)
    df-en $a |- ~~ = { <. x , y >. | E. f f : x -1-1-onto-> y } $.

    $( Define the dominance relation.  For an alternate definition see
       ~ dfdom2 .  Compare Definition of [Enderton] p. 145.  Typical textbook
       definitions are derived as ~ brdom and ~ domen .  (Contributed by NM,
       28-Mar-1998.) $)
    df-dom $a |- ~<_ = { <. x , y >. | E. f f : x -1-1-> y } $.

    $( Define the strict dominance relation.  Alternate possible definitions
       are derived as ~ brsdom and ~ brsdom2 .  Definition 3 of [Suppes] p. 97.
       (Contributed by NM, 31-Mar-1998.) $)
    df-sdom $a |- ~< = ( ~<_ \ ~~ ) $.

    $( Define the (proper) class of all finite sets.  Similar to Definition
       10.29 of [TakeutiZaring] p. 91, whose "Fin(a)" corresponds to
       our " ` a e. Fin ` ".  This definition is meaningful whether or not we
       accept the Axiom of Infinity ~ ax-inf2 .  If we accept Infinity, we can
       also express ` A e. Fin ` by ` A ~< _om ` (theorem ~ isfinite .)
       (Contributed by NM, 22-Aug-2008.) $)
    df-fin $a |- Fin = { x | E. y e. _om x ~~ y } $.
  $}

  ${
    $d x y f $.  $d x y f $.
    $( Equinumerosity is a relation.  (Contributed by NM, 28-Mar-1998.) $)
    relen $p |- Rel ~~ $=
      ( vx vy vf cv wf1o wex cen df-en relopabi ) ADBDCDECFABGABCHI $.

    $( Dominance is a relation.  (Contributed by NM, 28-Mar-1998.) $)
    reldom $p |- Rel ~<_ $=
      ( vx vy vf cv wf1 wex cdom df-dom relopabi ) ADBDCDECFABGABCHI $.
  $}

  $( Strict dominance is a relation.  (Contributed by NM, 31-Mar-1998.) $)
  relsdom $p |- Rel ~< $=
    ( cdom wrel csdm reldom cen cdif reldif df-sdom releqi sylibr ax-mp ) ABZCB
    ZDLAEFZBMAEGCNHIJK $.

  $( If two classes are equinumerous, both classes are sets.  (Contributed by
     AV, 21-Mar-2019.) $)
  encv $p |- ( A ~~ B -> ( A e. _V /\ B e. _V ) ) $=
    ( cen wrel wbr cvv wcel wa relen brrelex12 mpan ) CDABCEAFGBFGHIABCJK $.

  ${
    $d f x y A $.  $d f x y B $.  $d y C $.
    $( Equinumerosity relation.  (Contributed by NM, 15-Jun-1998.) $)
    bren $p |- ( A ~~ B <-> E. f f : A -1-1-onto-> B ) $=
      ( vx vy cen wbr cvv wcel wa cv wf1o wex encv wfn f1ofn syl6eqelr syl wceq
      exbidv cdm fndm vex dmex crn wfo f1ofo forn rnex jca exlimiv f1oeq2 df-en
      f1oeq3 brabg pm5.21nii ) ABFGAHIZBHIZJZABCKZLZCMZABNVAUSCVAUQURVAUTAOZUQA
      BUTPVCAUTUAHAUTUBUTCUCZUDQRVABUTUEZHVAABUTUFVEBSABUTUGABUTUHRUTVDUIQUJUKD
      KZEKZUTLZCMAVGUTLZCMVBDEABHHFVFASVHVICVFAVGUTULTVGBSVIVACVGBAUTUNTDECUMUO
      UP $.

    $( Dominance relation.  (Contributed by NM, 15-Jun-1998.) $)
    brdomg $p |- ( B e. C -> ( A ~<_ B <-> E. f f : A -1-1-> B ) ) $=
      ( vx vy cvv wcel cdom wbr cv wf1 wex wb wi wceq f1eq2 exbidv f1eq3 df-dom
      brabg ex wn reldom brrelexi wf f1f cdm fdm vex dmex syl6eqelr syl exlimiv
      pm5.21ni a1d pm2.61i ) AGHZBCHZABIJZABDKZLZDMZNZOURUSVDEKZFKZVALZDMAVFVAL
      ZDMVCEFABGCIVEAPVGVHDVEAVFVAQRVFBPVHVBDVFBAVASREFDTUAUBURUCVDUSUTURVCABIU
      DUEVBURDVBABVAUFZURABVAUGVIAVAUHGABVAUIVADUJUKULUMUNUOUPUQ $.

    $( Dominance relation.  (Contributed by Mario Carneiro, 26-Apr-2015.) $)
    brdomi $p |- ( A ~<_ B -> E. f f : A -1-1-> B ) $=
      ( cdom wbr cv wf1 wex cvv wcel wb reldom brrelex2i brdomg syl ibi ) ABDEZ
      ABCFGCHZQBIJQRKABDLMABICNOP $.
  $}

  ${
    $d f x A $.  $d f x B $.
    bren.1 $e |- B e. _V $.
    $( Dominance relation.  (Contributed by NM, 15-Jun-1998.) $)
    brdom $p |- ( A ~<_ B <-> E. f f : A -1-1-> B ) $=
      ( cvv wcel cdom wbr cv wf1 wex wb brdomg ax-mp ) BEFABGHABCIJCKLDABECMN
      $.

    $( Dominance in terms of equinumerosity.  Example 1 of [Enderton] p. 146.
       (Contributed by NM, 15-Jun-1998.) $)
    domen $p |- ( A ~<_ B <-> E. x ( A ~~ x /\ x C_ B ) ) $=
      ( vf cdom wbr cv wf1 wex cen wss brdom wf1o vex f11o exbii bitri bitr4i
      wa excom bren anbi1i 19.41v ) BCFGBCEHZIZEJZBAHZKGZUHCLZTZAJZBCEDMUGBUHUE
      NZUJTZEJZAJZULUGUNAJZEJUPUFUQEABCUEEOPQUNEAUARUKUOAUKUMEJZUJTUOUIURUJBUHE
      UBUCUMUJEUDSQSR $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Dominance in terms of equinumerosity, with the sethood requirement
       expressed as an antecedent.  Example 1 of [Enderton] p. 146.
       (Contributed by NM, 24-Apr-2004.) $)
    domeng $p |- ( B e. C -> ( A ~<_ B <-> E. x ( A ~~ x /\ x C_ B ) ) ) $=
      ( vy cv cdom wbr cen wss wex breq2 wceq sseq2 anbi2d exbidv domen vtoclbg
      wa vex ) BEFZGHBAFZIHZUBUAJZSZAKBCGHUCUBCJZSZAKECDUACBGLUACMZUEUGAUHUDUFU
      CUACUBNOPABUAETQR $.
  $}

  ${
    $d f A $.
    $( TODO shorten using ` Rel ~<_ ` and ~ brrelexi ? $)
    $( A countable set is a set.  (Contributed by Thierry Arnoux,
       29-Dec-2016.) $)
    ctex $p |- ( A ~<_ _om -> A e. _V ) $=
      ( vf com cdom wbr wf1 wex cvv wcel brdomi cdm f1dm dmex syl6eqelr exlimiv
      cv vex syl ) ACDEACBPZFZBGAHIZACBJTUABTASKHACSLSBQMNOR $.
  $}

  ${
    $d f A $.  $d f B $.  $d f F $.
    $( The domain and range of a one-to-one, onto function are equinumerous.
       This variation of ~ f1oeng does not require the Axiom of Replacement.
       (Contributed by NM, 13-Jan-2007.)  (Revised by Mario Carneiro,
       10-Sep-2015.) $)
    f1oen3g $p |- ( ( F e. V /\ F : A -1-1-onto-> B ) -> A ~~ B ) $=
      ( vf wcel wf1o wa cv wex cen wbr f1oeq1 spcegv imp bren sylibr ) CDFZABCG
      ZHABEIZGZEJZABKLRSUBUASECDABTCMNOABEPQ $.

    $( The domain and range of a one-to-one, onto function are equinumerous.
       This variation of ~ f1oeng does not require the Axiom of Replacement.
       (Contributed by Mario Carneiro, 10-Sep-2015.) $)
    f1oen2g $p |- ( ( A e. V /\ B e. W /\ F : A -1-1-onto-> B ) -> A ~~ B ) $=
      ( wcel wf1o w3a cvv cen wbr f1of fex2 syl3an1 3coml simp3 f1oen3g syl2anc
      wf ) ADFZBEFZABCGZHCIFZUBABJKUBTUAUCUBABCSTUAUCABCLABCDEMNOTUAUBPABCIQR
      $.

    $( The domain of a one-to-one function is dominated by its codomain.  This
       variation of ~ f1domg does not require the Axiom of Replacement.
       (Contributed by Mario Carneiro, 24-Jun-2015.) $)
    f1dom2g $p |- ( ( A e. V /\ B e. W /\ F : A -1-1-> B ) -> A ~<_ B ) $=
      ( vf wcel wf1 w3a cdom wbr cv wex cvv wf f1f fex2 syl3an1 3coml simp3 wb
      f1eq1 spcegv sylc brdomg 3ad2ant2 mpbird ) ADGZBEGZABCHZIZABJKZABFLZHZFMZ
      UKCNGZUJUOUJUHUIUPUJABCOUHUIUPABCPABCDEQRSUHUIUJTUNUJFCNABUMCUBUCUDUIUHUL
      UOUAUJABEFUEUFUG $.

    $( The domain and range of a one-to-one, onto function are equinumerous.
       (Contributed by NM, 19-Jun-1998.) $)
    f1oeng $p |- ( ( A e. C /\ F : A -1-1-onto-> B ) -> A ~~ B ) $=
      ( wcel wf1o cvv cen wbr wfo f1ofo fornex syl5 imp f1oen2g 3com23 mpd3an3
      ) ACEZABDFZBGEZABHIZRSTSABDJRTABDKABCDLMNRTSUAABDCGOPQ $.

    $( The domain of a one-to-one function is dominated by its codomain.
       (Contributed by NM, 4-Sep-2004.) $)
    f1domg $p |- ( B e. C -> ( F : A -1-1-> B -> A ~<_ B ) ) $=
      ( vf wcel wf1 cv wex cdom wbr cvv f1dmex wf f1f sylan syldan expcom f1eq1
      fex spcegv syli brdomg sylibrd ) BCFZABDGZABEHZGZEIZABJKUFUEDLFZUIUFUEUJU
      FUEALFZUJABCDMUFABDNUKUJABDOABLDTPQRUHUFEDLABUGDSUAUBABCEUCUD $.
  $}

  ${
    f1oen.1 $e |- A e. _V $.
    $( The domain and range of a one-to-one, onto function are equinumerous.
       (Contributed by NM, 19-Jun-1998.) $)
    f1oen $p |- ( F : A -1-1-onto-> B -> A ~~ B ) $=
      ( cvv wcel wf1o cen wbr f1oeng mpan ) AEFABCGABHIDABECJK $.
  $}

  ${
    f1dom.1 $e |- B e. _V $.
    $( The domain of a one-to-one function is dominated by its codomain.
       (Contributed by NM, 19-Jun-1998.) $)
    f1dom $p |- ( F : A -1-1-> B -> A ~<_ B ) $=
      ( cvv wcel wf1 cdom wbr wi f1domg ax-mp ) BEFABCGABHIJDABECKL $.
  $}

  $( Strict dominance relation, meaning " ` B ` is strictly greater in size
     than ` A ` ."  Definition of [Mendelson] p. 255.  (Contributed by NM,
     25-Jun-1998.) $)
  brsdom $p |- ( A ~< B <-> ( A ~<_ B /\ -. A ~~ B ) ) $=
    ( cop csdm wcel cdom cen cdif wbr wn wa df-sdom eleq2i df-br notbii anbi12i
    eldif bitr4i 3bitr4i ) ABCZDETFGHZEZABDIABFIZABGIZJZKZDUATLMABDNUFTFEZTGEZJ
    ZKUBUCUGUEUIABFNUDUHABGNOPTFGQRS $.

  ${
    $d x y f A $.
    $( Express " ` A ` is finite."  Definition 10.29 of [TakeutiZaring] p. 91
       (whose " ` Fin ` " is a predicate instead of a class).  (Contributed by
       NM, 22-Aug-2008.) $)
    isfi $p |- ( A e. Fin <-> E. x e. _om A ~~ x ) $=
      ( vy cfn wcel cen wbr com wrex cab df-fin eleq2i relen brrelexi rexlimivw
      cv cvv wceq breq1 rexbidv elab3 bitri ) BDEBCPZAPZFGZAHIZCJZEBUDFGZAHIZDU
      GBCAKLUFUICBUHBQEAHBUDFMNOUCBRUEUHAHUCBUDFSTUAUB $.

    $( Equinumerosity implies dominance.  (Contributed by NM, 31-Mar-1998.) $)
    enssdom $p |- ~~ C_ ~<_ $=
      ( vx vy vf cen cdom relen cop wf1o wex copab wcel wf1 f1of1 eximi 3imtr4i
      cv opabid df-en eleq2i df-dom relssi ) ABDEFAPZBPZGZUBUCCPZHZCIZABJZKZUDU
      BUCUELZCIZABJZKZUDDKUDEKUGUKUIUMUFUJCUBUCUEMNUGABQUKABQODUHUDABCRSEULUDAB
      CTSOUA $.
  $}

  $( Alternate definition of dominance.  (Contributed by NM, 17-Jun-1998.) $)
  dfdom2 $p |- ~<_ = ( ~< u. ~~ ) $=
    ( cen csdm cun cdom cdif df-sdom uncom wss wceq enssdom undif mpbi 3eqtr3ri
    uneq2i ) ABCADAEZCZBACDBOAFNABGADHPDIJADKLM $.

  $( Equinumerosity implies dominance.  Theorem 15 of [Suppes] p. 94.
     (Contributed by NM, 28-May-1998.) $)
  endom $p |- ( A ~~ B -> A ~<_ B ) $=
    ( cen cdom enssdom ssbri ) CDABEF $.

  $( Strict dominance implies dominance.  (Contributed by NM, 10-Jun-1998.) $)
  sdomdom $p |- ( A ~< B -> A ~<_ B ) $=
    ( csdm wbr cdom cen wn brsdom simplbi ) ABCDABEDABFDGABHI $.

  $( Strict dominance implies non-equinumerosity.  (Contributed by NM,
     10-Jun-1998.) $)
  sdomnen $p |- ( A ~< B -> -. A ~~ B ) $=
    ( csdm wbr cdom cen wn brsdom simprbi ) ABCDABEDABFDGABHI $.

  $( Dominance in terms of strict dominance and equinumerosity.  Theorem 22(iv)
     of [Suppes] p. 97.  (Contributed by NM, 17-Jun-1998.) $)
  brdom2 $p |- ( A ~<_ B <-> ( A ~< B \/ A ~~ B ) ) $=
    ( cop cdom wcel csdm cen cun wbr wo dfdom2 eleq2i df-br orbi12i elun bitr4i
    3bitr4i ) ABCZDERFGHZEZABDIABFIZABGIZJZDSRKLABDMUCRFEZRGEZJTUAUDUBUEABFMABG
    MNRFGOPQ $.

  $( Equinumerosity expressed in terms of dominance and strict dominance.
     (Contributed by NM, 23-Oct-2004.) $)
  bren2 $p |- ( A ~~ B <-> ( A ~<_ B /\ -. A ~< B ) ) $=
    ( cen wbr cdom csdm wn endom sdomnen con2i jca brdom2 biimpi orcanai impbii
    wa wo ) ABCDZABEDZABFDZGZPRSUAABHTRABIJKSTRSTRQABLMNO $.

  $( Equinumerosity is reflexive.  Theorem 1 of [Suppes] p. 92.  (Contributed
     by NM, 18-Jun-1998.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  enrefg $p |- ( A e. V -> A ~~ A ) $=
    ( wcel cen wbr cid cres wf1o f1oi f1oen2g mp3an3 anidms ) ABCZAADEZMMAAFAGZ
    HNAIAAOBBJKL $.

  ${
    enref.1 $e |- A e. _V $.
    $( Equinumerosity is reflexive.  Theorem 1 of [Suppes] p. 92.  (Contributed
       by NM, 25-Sep-2004.) $)
    enref $p |- A ~~ A $=
      ( cvv wcel cen wbr enrefg ax-mp ) ACDAAEFBACGH $.
  $}

  $( Equality implies equinumerosity.  (Contributed by NM, 26-Oct-2003.) $)
  eqeng $p |- ( A e. V -> ( A = B -> A ~~ B ) ) $=
    ( wcel cen wbr wceq enrefg breq2 syl5ibcom ) ACDAAEFABGABEFACHABAEIJ $.

  $( Dominance is reflexive.  (Contributed by NM, 18-Jun-1998.) $)
  domrefg $p |- ( A e. V -> A ~<_ A ) $=
    ( wcel cen wbr cdom enrefg endom syl ) ABCAADEAAFEABGAAHI $.

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.  $d x y ph $.
    en2d.1 $e |- ( ph -> A e. _V ) $.
    en2d.2 $e |- ( ph -> B e. _V ) $.
    en2d.3 $e |- ( ph -> ( x e. A -> C e. _V ) ) $.
    en2d.4 $e |- ( ph -> ( y e. B -> D e. _V ) ) $.
    en2d.5 $e |- ( ph -> ( ( x e. A /\ y = C ) <-> ( y e. B /\ x = D ) ) ) $.
    $( Equinumerosity inference from an implicit one-to-one onto function.
       (Contributed by NM, 27-Jul-2004.)  (Revised by Mario Carneiro,
       12-May-2014.) $)
    en2d $p |- ( ph -> A ~~ B ) $=
      ( cvv wcel cmpt wf1o cen wbr cv imp eqid f1od f1oen2g syl3anc ) ADMNEMNDE
      BDFOZPDEQRHIABCDEFGUEMMUEUAABSDNFMNJTACSENGMNKTLUBDEUEMMUCUD $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.  $d x y ph $.
    en3d.1 $e |- ( ph -> A e. _V ) $.
    en3d.2 $e |- ( ph -> B e. _V ) $.
    en3d.3 $e |- ( ph -> ( x e. A -> C e. B ) ) $.
    en3d.4 $e |- ( ph -> ( y e. B -> D e. A ) ) $.
    en3d.5 $e |- ( ph -> ( ( x e. A /\ y e. B ) -> ( x = D <-> y = C ) ) ) $.
    $( Equinumerosity inference from an implicit one-to-one onto function.
       (Contributed by NM, 27-Jul-2004.)  (Revised by Mario Carneiro,
       12-May-2014.) $)
    en3d $p |- ( ph -> A ~~ B ) $=
      ( cvv wcel cmpt wf1o cen cv imp wceq wbr eqid wa wb f1o2d f1oen2g syl3anc
      ) ADMNEMNDEBDFOZPDEQUAHIABCDEFGUHUHUBABRZDNZFENJSACRZENZGDNKSAUJULUCUIGTU
      KFTUDLSUEDEUHMMUFUG $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.
    en2i.1 $e |- A e. _V $.
    en2i.2 $e |- B e. _V $.
    en2i.3 $e |- ( x e. A -> C e. _V ) $.
    en2i.4 $e |- ( y e. B -> D e. _V ) $.
    en2i.5 $e |- ( ( x e. A /\ y = C ) <-> ( y e. B /\ x = D ) ) $.
    $( Equinumerosity inference from an implicit one-to-one onto function.
       (Contributed by NM, 4-Jan-2004.) $)
    en2i $p |- A ~~ B $=
      ( cen wtru cvv wcel a1i cv wi wceq wa wbr wb en2d trud ) CDLUAMABCDEFCNOM
      GPDNOMHPAQZCOZENORMIPBQZDOZFNORMJPUFUGESTUHUEFSTUBMKPUCUD $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.
    en3i.1 $e |- A e. _V $.
    en3i.2 $e |- B e. _V $.
    en3i.3 $e |- ( x e. A -> C e. B ) $.
    en3i.4 $e |- ( y e. B -> D e. A ) $.
    en3i.5 $e |- ( ( x e. A /\ y e. B ) -> ( x = D <-> y = C ) ) $.
    $( Equinumerosity inference from an implicit one-to-one onto function.
       (Contributed by NM, 19-Jul-2004.) $)
    en3i $p |- A ~~ B $=
      ( cen wbr wtru cvv wcel a1i cv wi wceq wa wb en3d trud ) CDLMNABCDEFCOPNG
      QDOPNHQARZCPZEDPSNIQBRZDPZFCPSNJQUFUHUAUEFTUGETUBSNKQUCUD $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d y z C $.  $d x z D $.  $d x y ph $.
    dom2d.1 $e |- ( ph -> ( x e. A -> C e. B ) ) $.
    dom2d.2 $e |- ( ph -> ( ( x e. A /\ y e. A ) -> ( C = D <-> x = y ) ) ) $.
    $( A mapping (first hypothesis) that is one-to-one (second hypothesis)
       implies its domain is dominated by its codomain.  (Contributed by NM,
       24-Jul-2004.) $)
    dom2lem $p |- ( ph -> ( x e. A |-> C ) : A -1-1-> B ) $=
      ( cv cfv wceq wi wral wcel wa imp anbi2d wb eqeq12d cmpt wf ralrimiv eqid
      wf1 fmpt sylib fvmpt2 adantll mpdan adantrr nfv nffvmpt1 nfeq1 nfim eleq1
      imbi1d anbi1d anidm syl6bb fveq2 adantr biimparc ex sylbird pm5.74d bitrd
      chvar adantrl biimpd sylbid ralrimivva nfmpt1 nfcv dff13f sylanbrc ) ADEB
      DFUAZUBZBJZVQKZCJZVQKZLZVSWALZMZCDNBDNDEVQUEAFEOZBDNVRAWFBDHUCBDEFVQVQUDZ
      UFUGAWEBCDDAVSDOZWADOZPZPZWCFGLZWDWKVTFWBGAWHVTFLZWIAWHPZWFWMAWHWFHQWHWFW
      MABDFEVQWGUHUIUJZUKAWIWBGLZWHWNWMMZAWIPZWPMZBCWRWPBWRBULBWBGBDFWAUMUNUOWD
      WQWRWMMWSWDWNWRWMWDWHWIAVSWADUPZRUQWDWRWMWPWDWRWKWMWPSZWDWJWIAWDWJWIWIPWI
      WDWHWIWIWTURWIUSUTRWDWKXAWDWKPVTWBFGWDWCWKVSWAVQVAVBWKWLWDAWJWLWDSIQZVCTV
      DVEVFVGWOVHVITWKWLWDXBVJVKVLBCDEVQBDFVMCVQVNVOVP $.

    $( A mapping (first hypothesis) that is one-to-one (second hypothesis)
       implies its domain is dominated by its codomain.  (Contributed by NM,
       24-Jul-2004.)  (Revised by Mario Carneiro, 20-May-2013.) $)
    dom2d $p |- ( ph -> ( B e. R -> A ~<_ B ) ) $=
      ( cmpt wf1 wcel cdom wbr dom2lem f1domg syl5com ) ADEBDFKZLEHMDENOABCDEFG
      IJPDEHSQR $.

    dom3d.3 $e |- ( ph -> A e. V ) $.
    dom3d.4 $e |- ( ph -> B e. W ) $.
    $( A mapping (first hypothesis) that is one-to-one (second hypothesis)
       implies its domain is dominated by its codomain.  (Contributed by Mario
       Carneiro, 20-May-2013.) $)
    dom3d $p |- ( ph -> A ~<_ B ) $=
      ( vz cdom wbr wf1 cvv wcel syl cv wex cmpt dom2lem f1f fex2 syl3anc f1eq1
      wf spcegv sylc wb brdomg mpbird ) ADEOPZDENUAZQZNUBZABDFUCZRSZDEUSQZURADE
      USUIZDHSEISZUTAVAVBABCDEFGJKUDZDEUSUETLMDEUSHIUFUGVDUQVANUSRDEUPUSUHUJUKA
      VCUOURULMDEINUMTUN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.
    dom2.1 $e |- ( x e. A -> C e. B ) $.
    dom2.2 $e |- ( ( x e. A /\ y e. A ) -> ( C = D <-> x = y ) ) $.
    $( A mapping (first hypothesis) that is one-to-one (second hypothesis)
       implies its domain is dominated by its codomain. ` C ` and ` D ` can be
       read ` C ( x ) ` and ` D ( y ) ` , as can be inferred from their
       distinct variable conditions.  (Contributed by NM, 26-Oct-2003.) $)
    dom2 $p |- ( B e. V -> A ~<_ B ) $=
      ( wceq wcel cdom wbr wi eqid cv a1i wa wb dom2d ax-mp ) CCJZDGKCDLMNCOUBA
      BCDEFGAPZCKZEDKNUBHQUDBPZCKREFJUCUEJSNUBIQTUA $.

    $d x y V $.  $d x y W $.
    $( A mapping (first hypothesis) that is one-to-one (second hypothesis)
       implies its domain is dominated by its codomain. ` C ` and ` D ` can be
       read ` C ( x ) ` and ` D ( y ) ` , as can be inferred from their
       distinct variable conditions.  (Contributed by Mario Carneiro,
       20-May-2013.) $)
    dom3 $p |- ( ( A e. V /\ B e. W ) -> A ~<_ B ) $=
      ( wcel wa cv wi a1i wceq wb simpl simpr dom3d ) CGKZDHKZLZABCDEFGHAMZCKZE
      DKNUCIOUEBMZCKLEFPUDUFPQNUCJOUAUBRUAUBST $.
  $}

  ${
    $d x y $.
    $( Equality implies equinumerosity.  (Contributed by NM, 30-Apr-1998.)
       (Revised by Mario Carneiro, 15-Nov-2014.) $)
    idssen $p |- _I C_ ~~ $=
      ( vx vy cid cen reli cv wbr cop wcel weq vex ideq eqeng ax-mp sylbi df-br
      cvv wi 3imtr3i relssi ) ABCDEAFZBFZCGZUAUBDGZUAUBHZCIUEDIUCABJZUDUAUBBKLU
      AQIUFUDRAKUAUBQMNOUAUBCPUAUBDPST $.
  $}

  $( A set dominates its subsets.  Theorem 16 of [Suppes] p. 94.  (Contributed
     by NM, 19-Jun-1998.)  (Revised by Mario Carneiro, 24-Jun-2015.) $)
  ssdomg $p |- ( B e. V -> ( A C_ B -> A ~<_ B ) ) $=
    ( wss wcel cdom wbr wa cvv cid cres wf1 ssexg simpr wf ccnv wfun wf1o ax-mp
    wfo f1oi dff1o3 mpbi simpli fof fss mpan funi cnvi funeqi mpbir jctir df-f1
    funres11 sylibr adantr f1dom2g syl3anc expcom ) ABDZBCEZABFGZUTVAHAIEVAABJA
    KZLZVBABCMUTVANUTVDVAUTABVCOZVCPQZHVDUTVEVFAAVCOZUTVEAAVCTZVGVHVFAAVCRVHVFH
    AUAAAVCUBUCUDAAVCUESAABVCUFUGJPZQZVFVJJQUHVIJUIUJUKAJUNSULABVCUMUOUPABVCICU
    QURUS $.

  ${
    $d f g x y z $.
    $( Equinumerosity is an equivalence relation.  (Contributed by NM,
       19-Mar-1998.)  (Revised by Mario Carneiro, 15-Nov-2014.)  (Proof
       shortened by AV, 1-May-2021.) $)
    ener $p |- ~~ Er _V $=
      ( vx vy vz vf vg cvv cen relen cv wbr wf1o wex bren wcel ccnv vex f1oen2g
      f1ocnv mp3an12i wa exlimiv sylbi eeanv ccom f1oco ancoms exlimivv syl2anb
      sylbir enref 2th iseri ) ABCFGHAIZBIZGJZUMUNDIZKZDLUNUMGJZUMUNDMUQURDUNFN
      UMFNZUQUNUMUPOZKURBPAPZUMUNUPRUNUMUTFFQSUAUBUOUMUNEIZKZELZUNCIZUPKZDLZUMV
      EGJZUNVEGJUMUNEMUNVEDMVDVGTVCVFTZDLELVHVCVFEDUCVIVHEDUSVEFNVIUMVEUPVBUDZK
      ZVHVACPVFVCVKUMUNVEUPVBUEUFUMVEVJFFQSUGUIUHUSUMUMGJVAUMVAUJUKUL $.

    $( Obsolete proof of ~ ener as of 1-May-2021.  Equinumerosity is an
       equivalence relation.  (Contributed by NM, 19-Mar-1998.)  (Revised by
       Mario Carneiro, 15-Nov-2014.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    enerOLD $p |- ~~ Er _V $=
      ( vx vy vz vf cvv cen wtru a1i wbr wf1o wex bren wcel vex f1oen2g mp3an12
      vg cv syl wa wrel relen ccnv f1ocnv exlimiv sylbi adantl eeanv ccom f1oco
      wer ancoms exlimivv sylbir syl2anb wb enref 2th iserd trud ) EFUKGABCEFFU
      AGUBHARZBRZFIZVBVAFIZGVCVAVBDRZJZDKVDVAVBDLVFVDDVFVBVAVEUCZJZVDVAVBVEUDVB
      EMVAEMZVHVDBNANZVBVAVGEEOPSUEUFUGVCVBCRZFIZTVAVKFIZGVCVAVBQRZJZQKZVBVKVEJ
      ZDKZVMVLVAVBQLVBVKDLVPVRTVOVQTZDKQKVMVOVQQDUHVSVMQDVSVAVKVEVNUIZJZVMVQVOW
      AVAVBVKVEVNUJULVIVKEMWAVMVJCNVAVKVTEEOPSUMUNUOUGVIVAVAFIZUPGVIWBVJVAVJUQU
      RHUSUT $.
  $}

  $( Symmetry of equinumerosity.  Theorem 2 of [Suppes] p. 92.  (Contributed by
     Mario Carneiro, 26-Apr-2015.) $)
  ensymb $p |- ( A ~~ B <-> B ~~ A ) $=
    ( cen wbr wb wtru cvv wer ener a1i ersymb trud ) ABCDBACDEFABCGGCHFIJKL $.

  $( Symmetry of equinumerosity.  Theorem 2 of [Suppes] p. 92.  (Contributed by
     NM, 26-Oct-2003.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  ensym $p |- ( A ~~ B -> B ~~ A ) $=
    ( cen wbr ensymb biimpi ) ABCDBACDABEF $.

  ${
    ensymi.2 $e |- A ~~ B $.
    $( Symmetry of equinumerosity.  Theorem 2 of [Suppes] p. 92.  (Contributed
       by NM, 25-Sep-2004.) $)
    ensymi $p |- B ~~ A $=
      ( cen wbr ensym ax-mp ) ABDEBADECABFG $.
  $}

  ${
    ensymd.1 $e |- ( ph -> A ~~ B ) $.
    $( Symmetry of equinumerosity.  Deduction form of ~ ensym .  (Contributed
       by David Moews, 1-May-2017.) $)
    ensymd $p |- ( ph -> B ~~ A ) $=
      ( cen wbr ensym syl ) ABCEFCBEFDBCGH $.
  $}

  ${
    $d x y z f g h A $.  $d x y z f g B $.  $d x y z f g h C $.
    $( Transitivity of equinumerosity.  Theorem 3 of [Suppes] p. 92.
       (Contributed by NM, 9-Jun-1998.) $)
    entr $p |- ( ( A ~~ B /\ B ~~ C ) -> A ~~ C ) $=
      ( cen wbr wa wi wtru cvv wer ener a1i ertr trud ) ABDEBCDEFACDEGHABCDIIDJ
      HKLMN $.

    $( Transitivity of dominance relation.  Theorem 17 of [Suppes] p. 94.
       (Contributed by NM, 4-Jun-1998.)  (Revised by Mario Carneiro,
       15-Nov-2014.) $)
    domtr $p |- ( ( A ~<_ B /\ B ~<_ C ) -> A ~<_ C ) $=
      ( vx vy vz vg vf vh cdom reldom cv wbr wf1 wex vex brdom wa eeanv ccom
      f1co ancoms coex f1eq1 spcev syl sylibr exlimivv sylbir syl2anb vtoclr )
      DEFABCJKDLZELZJMULUMGLZNZGOZUMFLZHLZNZHOZULUQJMZUMUQJMULUMGEPQUMUQHFPZQUP
      UTRUOUSRZHOGOVAUOUSGHSVCVAGHVCULUQILZNZIOZVAVCULUQURUNTZNZVFUSUOVHULUMUQU
      RUNUAUBVEVHIVGURUNHPGPUCULUQVDVGUDUEUFULUQIVBQUGUHUIUJUK $.
  $}

  ${
    entri.1 $e |- A ~~ B $.
    entri.2 $e |- B ~~ C $.
    $( A chained equinumerosity inference.  (Contributed by NM,
       25-Sep-2004.) $)
    entri $p |- A ~~ C $=
      ( cen wbr entr mp2an ) ABFGBCFGACFGDEABCHI $.
  $}

  ${
    entr2i.1 $e |- A ~~ B $.
    entr2i.2 $e |- B ~~ C $.
    $( A chained equinumerosity inference.  (Contributed by NM,
       25-Sep-2004.) $)
    entr2i $p |- C ~~ A $=
      ( entri ensymi ) ACABCDEFG $.
  $}

  ${
    entr3i.1 $e |- A ~~ B $.
    entr3i.2 $e |- A ~~ C $.
    $( A chained equinumerosity inference.  (Contributed by NM,
       25-Sep-2004.) $)
    entr3i $p |- B ~~ C $=
      ( ensymi entri ) BACABDFEG $.
  $}

  ${
    entr4i.1 $e |- A ~~ B $.
    entr4i.2 $e |- C ~~ B $.
    $( A chained equinumerosity inference.  (Contributed by NM,
       25-Sep-2004.) $)
    entr4i $p |- A ~~ C $=
      ( ensymi entri ) ABCDCBEFG $.
  $}

  $( Transitivity of equinumerosity and dominance.  (Contributed by NM,
     7-Jun-1998.) $)
  endomtr $p |- ( ( A ~~ B /\ B ~<_ C ) -> A ~<_ C ) $=
    ( cen wbr cdom endom domtr sylan ) ABDEABFEBCFEACFEABGABCHI $.

  $( Transitivity of dominance and equinumerosity.  (Contributed by NM,
     7-Jun-1998.) $)
  domentr $p |- ( ( A ~<_ B /\ B ~~ C ) -> A ~<_ C ) $=
    ( cen wbr cdom endom domtr sylan2 ) BCDEABFEBCFEACFEBCGABCHI $.

  $( A one-to-one function's image under a subset of its domain is equinumerous
     to the subset.  (Contributed by Mario Carneiro, 15-May-2015.) $)
  f1imaeng $p |- ( ( F : A -1-1-> B /\ C C_ A /\ C e. V ) ->
    ( F " C ) ~~ C ) $=
    ( wf1 wss wcel w3a cima cres wf1o cen f1ores f1oeng ancoms stoic3 ensymd
    wbr ) ABDFZCAGZCEHZICDCJZTUACUCDCKZLZUBCUCMSZABCDNUBUEUFCUCEUDOPQR $.

  $( A one-to-one function's image under a subset of its domain is equinumerous
     to the subset.  (This version of ~ f1imaen does not need ~ ax-reg .)
     (Contributed by Mario Carneiro, 16-Nov-2014.)  (Revised by Mario Carneiro,
     25-Jun-2015.) $)
  f1imaen2g $p |- ( ( ( F : A -1-1-> B /\ B e. V ) /\ ( C C_ A /\ C e. V ) ) ->
    ( F " C ) ~~ C ) $=
    ( wf1 wcel wa wss cima cvv cres wf1o cen wbr simprr simplr wf f1f crn ssexd
    imassrn frn syl5ss syl ad2antrr f1ores ad2ant2r f1oen2g syl3anc ensymd ) AB
    DFZBEGZHZCAIZCEGZHZHZCDCJZURUPUSKGCUSDCLZMZCUSNOUNUOUPPURUSBEULUMUQQULUSBIZ
    UMUQULABDRZVBABDSVCUSDTBDCUBABDUCUDUEUFUAULUOVAUMUPABCDUGUHCUSUTEKUIUJUK $.

  ${
    f1imaen.1 $e |- C e. _V $.
    $( A one-to-one function's image under a subset of its domain is
       equinumerous to the subset.  (Contributed by NM, 30-Sep-2004.) $)
    f1imaen $p |- ( ( F : A -1-1-> B /\ C C_ A ) -> ( F " C ) ~~ C ) $=
      ( wf1 wss cvv wcel cima cen wbr f1imaeng mp3an3 ) ABDFCAGCHIDCJCKLEABCDHM
      N $.
  $}

  ${
    $d f A $.
    $( The empty set is equinumerous only to itself.  Exercise 1 of
       [TakeutiZaring] p. 88.  (Contributed by NM, 27-May-1998.) $)
    en0 $p |- ( A ~~ (/) <-> A = (/) ) $=
      ( vf c0 cen wbr wceq cv wf1o wex bren ccnv f1ocnv f1o00 simprbi syl sylbi
      exlimiv 0ex enref breq1 mpbiri impbii ) ACDEZACFZUCACBGZHZBIUDACBJUFUDBUF
      CAUEKZHZUDACUELUHUGCFUDAUGMNOQPUDUCCCDECRSACCDTUAUB $.
  $}

  ${
    $d f A $.
    ensn1.1 $e |- A e. _V $.
    $( A singleton is equinumerous to ordinal one.  (Contributed by NM,
       4-Nov-2002.) $)
    ensn1 $p |- { A } ~~ 1o $=
      ( vf csn c0 c1o cen wbr cv wf1o wex cop 0ex f1osn snex f1oeq1 spcev ax-mp
      bren mpbir df1o2 breqtrri ) ADZEDZFGUCUDGHUCUDCIZJZCKZUCUDAELZDZJZUGAEBMN
      UFUJCUIUHOUCUDUEUIPQRUCUDCSTUAUB $.
  $}

  ${
    $d x A $.
    $( A singleton is equinumerous to ordinal one.  (Contributed by NM,
       23-Apr-2004.) $)
    ensn1g $p |- ( A e. V -> { A } ~~ 1o ) $=
      ( vx cv csn c1o cen wbr wceq sneq breq1d vex ensn1 vtoclg ) CDZEZFGHAEZFG
      HCABOAIPQFGOAJKOCLMN $.
  $}

  $( ` { A , A } ` has only one element.  (Contributed by FL, 15-Feb-2010.) $)
  enpr1g $p |- ( A e. V -> { A , A } ~~ 1o ) $=
    ( wcel cpr csn c1o cen dfsn2 ensn1g syl5eqbrr ) ABCAADAEFGAHABIJ $.

  ${
    $d x f y A $.  $d y ph $.
    $( A set is equinumerous to ordinal one iff it is a singleton.
       (Contributed by NM, 25-Jul-2004.) $)
    en1 $p |- ( A ~~ 1o <-> E. x A = { x } ) $=
      ( vf c1o cen wbr cv csn wceq wex wf1o df1o2 breq2i bren bitri crn syl 0ex
      c0 exlimiv ccnv cfv f1ocnv wfo f1ofo forn wf f1of wcel fsn2 simprbi rneqd
      rnsnop syl6eq eqtr3d fvex sneq eqeq2d spcev 3syl sylbi ensn1 breq1 mpbiri
      cop vex impbii ) BDEFZBAGZHZIZAJZVHBSHZCGZKZCJZVLVHBVMEFVPDVMBELMBVMCNOVO
      VLCVOVMBVNUAZKZBSVQUBZHZIZVLBVMVNUCVRVQPZBVTVRVMBVQUDWBBIVMBVQUEVMBVQUFQV
      RWBSVSVEHZPVTVRVQWCVRVMBVQUGZVQWCIZVMBVQUHWDVSBUIWESBVQRUJUKQULSVSRUMUNUO
      VKWAAVSSVQUPVIVSIVJVTBVIVSUQURUSUTTVAVKVHAVKVHVJDEFVIAVFVBBVJDEVCVDTVG $.

    $( A set is equinumerous to ordinal one iff it is a singleton.
       (Contributed by Mario Carneiro, 17-Jan-2015.) $)
    en1b $p |- ( A ~~ 1o <-> A = { U. A } ) $=
      ( vx c1o cen wbr cuni csn wceq cv wex en1 id unieq vex unisn syl6eq sneqd
      cvv wcel syl eqtr4d exlimiv sylbi syl6eqel uniexg ensn1g eqbrtrd impbii
      snex ) ACDEZAAFZGZHZUJABIZGZHZBJUMBAKUPUMBUPAUOULUPLUPUKUNUPUKUOFUNAUOMUN
      BNOPQUAUBUCUMAULCDUMLZUMUKRSZULCDEUMARSURUMAULRUQUKUIUDARUETUKRUFTUGUH $.

    $( Two ways to express "exactly one".  (Contributed by Stefan O'Rear,
       28-Oct-2014.) $)
    reuen1 $p |- ( E! x e. A ph <-> { x e. A | ph } ~~ 1o ) $=
      ( vy wreu crab cv csn wceq wex c1o cen wbr reusn en1 bitr4i ) ABCEABCFZDG
      HIDJQKLMABDCNDQOP $.

    $( Two ways to express "exactly one".  (Contributed by Stefan O'Rear,
       28-Oct-2014.) $)
    euen1 $p |- ( E! x ph <-> { x | ph } ~~ 1o ) $=
      ( cvv wreu crab c1o cen wbr weu cab reuen1 reuv rabab breq1i 3bitr3i ) AB
      CDABCEZFGHABIABJZFGHABCKABLPQFGABMNO $.

    $( Two ways to express " ` A ` has a unique element".  (Contributed by
       Mario Carneiro, 9-Apr-2015.) $)
    euen1b $p |- ( A ~~ 1o <-> E! x x e. A ) $=
      ( cv wcel weu cab c1o cen wbr euen1 abid2 breq1i bitr2i ) ACBDZAENAFZGHIB
      GHINAJOBGHABKLM $.
  $}

  $( A singleton contains its sole element.  (Contributed by Stefan O'Rear,
     16-Aug-2015.) $)
  en1uniel $p |- ( S ~~ 1o -> U. S e. S ) $=
    ( c1o cen wbr cuni csn cvv wcel relen brrelexi uniexg 3syl wceq en1b biimpi
    snidg eleqtrrd ) ABCDZAEZSFZARAGHSGHSTHABCIJAGKSGPLRATMANOQ $.

  ${
    $d x y f A $.
    $( A set that dominates ordinal 2 has at least 2 different members.
       (Contributed by NM, 25-Jul-2004.) $)
    2dom $p |- ( 2o ~<_ A -> E. x e. A E. y e. A -. x = y ) $=
      ( vf c2o cdom wbr c0 csn cpr cv wf1 wceq wn wrex cfv wcel ffvelrn sylancl
      notbid wex df2o2 breq1i brdomi sylbi wf f1f 0ex prid1 p0ex prid2 0nep0 wb
      neii f1fveq mpanr12 mtbiri eqeq1 eqeq2 rspc2ev syl3anc exlimiv syl ) ECFG
      ZHHIZJZCDKZLZDUAZAKZBKZMZNZBCOACOZVDVFCFGVIEVFCFUBUCVFCDUDUEVHVNDVHHVGPZC
      QZVEVGPZCQZVOVQMZNZVNVHVFCVGUFZHVFQZVPVFCVGUGZHVEUHUIZVFCHVGRSVHWAVEVFQZV
      RWCHVEUJUKZVFCVEVGRSVHVSHVEMZHVEULUNVHWBWEVSWGUMWDWFVFCHVEVGUOUPUQVMVTVOV
      KMZNABVOVQCCVJVOMVLWHVJVOVKURTVKVQMWHVSVKVQVOUSTUTVAVBVC $.
  $}

  ${
    $d x y z w F $.
    fundmen.1 $e |- F e. _V $.
    $( A function is equinumerous to its domain.  Exercise 4 of [Suppes] p. 98.
       (Contributed by NM, 28-Jul-2004.)  (Revised by Mario Carneiro,
       15-Nov-2014.) $)
    fundmen $p |- ( Fun F -> dom F ~~ F ) $=
      ( vx vy vz vw cv cop cint cvv wcel a1i ex wi wa wceq wb wex vex adantl
      wfun cdm cfv dmex funfvop wrel funrel elreldm syl cxp df-rel sylib sselda
      wss elvv inteq inteqd op1stb syl6eq eqeq1 syl5ibr opeq1 syl6 imp biimprcd
      eqeq2 ancoms eleq1d funopfv adantr sylbid exp32 com24 imp43 opeq2d eqtr4d
      mpd exlimdvv adantrl fvex syl6req impbid1 en3d ) AUAZCDAUBZACGZWFAUCZHZDG
      ZIZIZWEJKWDABUDLAJKWDBLWDWFWEKZWHAKWFAUEMWDAUFZWIAKZWKWEKZNAUGZWMWNWOAWIU
      HMUIWDWLWNOZWFWKPZWIWHPZQWDWQOWRWSWDWNWRWSNZWLWDWNOZWIEGZFGZHZPZFRERZWTXA
      WIJJUJZKXFWDAXGWIWDWMAXGUNWPAUKULUMEFWIUOULXAXEWTEFXAXEWRWSXAXEWROZOZWIWF
      XCHZWHXHWIXJPZXAWRXEXKWRXEOZXJXDPZXKWRXEXMWRXEWFXBPZXMXEXNWRWKXBPXEWKXDIZ
      IXBXEWJXOWIXDUPUQXBXCESFSURUSWFWKXBUTVAWFXBXCVBVCVDXEXMXKNWRXMXKXEXJXDWIV
      FVETVQZVGTXIWGXCWFWDWNXEWRWGXCPZWDWRXEWNXQWDWRXEWNXQNWDXLOWNXJAKZXQXLWNXR
      QWDXLWIXJAXPVHTWDXRXQNXLWFXCAVIVJVKVLVMVNVOVPVLVRVQVSWSWKWHIZIWFWSWJXSWIW
      HUPUQWFWGCSWFAVTURWAWBMWC $.
  $}

  ${
    $d x A $.  $d x F $.
    $( A function is equinumerous to its domain.  Exercise 4 of [Suppes] p. 98.
       (Contributed by NM, 17-Sep-2013.) $)
    fundmeng $p |- ( ( F e. V /\ Fun F ) -> dom F ~~ F ) $=
      ( vx wcel wfun cdm cen wbr cv wceq funeq dmeq breq12d imbi12d vex fundmen
      wi id vtoclg imp ) ABDAEZAFZAGHZCIZEZUDFZUDGHZQUAUCQCABUDAJZUEUAUGUCUDAKU
      HUFUBUDAGUDALUHRMNUDCOPST $.

    $( A relational set is equinumerous to its converse.  (Contributed by Mario
       Carneiro, 28-Dec-2014.) $)
    cnven $p |- ( ( Rel A /\ A e. V ) -> A ~~ `' A ) $=
      ( vx wrel wcel wa ccnv cvv csn cuni cmpt wf1o cen wbr simpr cnvexg adantl
      cv cnvf1o adantr f1oen2g syl3anc ) ADZABEZFUDAGZHEZAUECACRIGJKZLZAUEMNUCU
      DOUDUFUCABPQUCUHUDCASTAUEUGBHUAUB $.
  $}

  $( If a set is countable, so is its converse.  (Contributed by Thierry
     Arnoux, 29-Dec-2016.) $)
  cnvct $p |- ( A ~<_ _om -> `' A ~<_ _om ) $=
    ( ccnv cdom wbr com cen wrel cvv wcel relcnv ctex cnvexg syl cnven cnvcnvss
    sylancr wss ssdomg mpisyl endomtr syl2anc domtr mpancom ) ABZACDZAECDZUDECD
    UFUDUDBZFDZUGACDZUEUFUDGUDHIZUHAJUFAHIZUJAKZAHLMUDHNPUFUKUGAQUIULAOUGAHRSUD
    UGATUAUDAEUBUC $.

  $( A function is equinumerate to its domain.  (Contributed by Paul Chapman,
     22-Jun-2011.) $)
  fndmeng $p |- ( ( F Fn A /\ A e. C ) -> A ~~ F ) $=
    ( wfn wcel wa cdm cen wbr wfun fnex fnfun adantr fundmeng syl2anc wb breq1d
    cvv fndm mpbid ) CADZABEZFZCGZCHIZACHIZUCCRECJZUEABCKUAUGUBACLMCRNOUAUEUFPU
    BUAUDACHACSQMT $.

  ${
    $d w y z A $.  $d w y z B $.
    mapsnen.1 $e |- A e. _V $.
    mapsnen.2 $e |- B e. _V $.
    $( Set exponentiation to a singleton exponent is equinumerous to its base.
       Exercise 4.43 of [Mendelson] p. 255.  (Contributed by NM, 17-Dec-2003.)
       (Revised by Mario Carneiro, 15-Nov-2014.) $)
    mapsnen $p |- ( A ^m { B } ) ~~ A $=
      ( vz vw vy csn cmap cv cfv cop wcel wceq wa wex wrex 3bitr2i vex eqeq2d
      co ovex fvexd cvv snex a1i mapsn abeq2i anbi1i r19.41v df-rex fvsn syl6eq
      fveq1 equcom syl6bb pm5.32i anass ancom exbii eleq1 opeq2 anbi12d ceqsexv
      anbi2i sneqd 3bitri en2i ) EFABHZIUAZABEJZKZBFJZLZHZAVIIUBCVKVJMZBVKUCVOU
      DMVMAMZVNUEUFVPVMVLNZOZGJZAMZVKBVTLZHZNZVROZOZGPZVTVMNZWAWDOZOZGPVQVKVONZ
      OZVSWDGAQZVROWEGAQWGVPWMVRWMEVJGABECDUGUHUIWDVRGAUJWEGAUKRWFWJGWFWAWDWHOZ
      OWIWHOWJWEWNWAWDVRWHWDVRVMVTNWHWDVLVTVMWDVLBWCKVTBVKWCUNBVTDGSULUMTFGUOUP
      UQVEWAWDWHURWIWHUSRUTWIWLGVMFSWHWAVQWDWKVTVMAVAWHWCVOVKWHWBVNVTVMBVBVFTVC
      VDVGVH $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y V $.
    $( Set exponentiation: ordinal 1 to any set is equinumerous to ordinal 1.
       Exercise 4.42(b) of [Mendelson] p. 255.  (Contributed by NM,
       17-Dec-2003.) $)
    map1 $p |- ( A e. V -> ( 1o ^m A ) ~~ 1o ) $=
      ( vx vy wcel c1o cmap co c0 csn cvv df1o2 p0ex a1i cv 0ex wceq wa syl6rbb
      wb cxp ovexd eqeltri 2a1i xpexg mpan2 el1o wf oveq1i eleq2i elmapg syl5bb
      a1d mpan fconst2 anbi12d ancom en2d ) ABEZCDFAGHZFIAIJZUAZUSFAGUBFKEUSFVA
      KLMUCNIKEUSCOZUTEZPUDUSVBKEZDOZFEZUSVAKEZVEMAVABKUEUFUMUSVGVCVBQZRVFIQZVD
      RVDVJRUSVGVJVIVDVGVJTUSVFUGNUSVDAVAVCUHZVIVDVCVAAGHZEZUSVKUTVLVCFVAAGLUIU
      JVHUSVMVKTMVAAVCKBUKUNULAIVCPUOSUPVJVDUQSUR $.

    $( Two singletons are equinumerous.  (Contributed by NM, 9-Nov-2003.) $)
    en2sn $p |- ( ( A e. C /\ B e. D ) -> { A } ~~ { B } ) $=
      ( wcel csn c1o cen wbr ensn1g ensymd entr syl2an ) ACEAFZGHIGBFZHINOHIBDE
      ZACJPOGBDJKNGOLM $.

    $( A singleton is finite.  (Contributed by NM, 4-Nov-2002.) $)
    snfi $p |- { A } e. Fin $=
      ( vx csn cfn wcel cv cen wbr com wrex cvv c1o ensn1g breq2 rspcev sylancr
      1onn wn c0 wceq snprc en0 peano1 mpan sylbir sylbi pm2.61i isfi mpbir ) A
      CZDEUJBFZGHZBIJZAKEZUMUNLIEUJLGHZUMQAKMULUOBLIUKLUJGNOPUNRUJSTZUMAUAUPUJS
      GHZUMUJUBSIEUQUMUCULUQBSIUKSUJGNOUDUEUFUGBUJUHUI $.

    $( The class of finite sets is a proper class.  (Contributed by Jeff
       Hankins, 3-Oct-2008.) $)
    fiprc $p |- Fin e/ _V $=
      ( vx vy cv csn wceq wex cab cvv wnel cfn snnex wcel wss snfi eleq1 mpbiri
      wn exlimiv abssi df-nel ssexg mpan con3i 3imtr4i ax-mp ) ACZBCZDZEZBFZAGZ
      HIZJHIZABKUKHLZQJHLZQULUMUOUNUKJMUOUNUJAJUIUFJLZBUIUPUHJLUGNUFUHJOPRSUKJH
      UAUBUCUKHTJHTUDUE $.

    $( Equinumerosity of union of disjoint sets.  Theorem 4 of [Suppes] p. 92.
       (Contributed by NM, 11-Jun-1998.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    unen $p |- ( ( ( A ~~ B /\ C ~~ D ) /\
  ( ( A i^i C ) = (/) /\ ( B i^i D ) = (/) ) ) -> ( A u. C ) ~~ ( B u. D ) ) $=
      ( vx vy cen wbr wa cin c0 wceq cun cv wf1o wex wi bren cvv vex eeanv wcel
      unex f1oun f1oen3g sylancr ex exlimivv sylbir syl2anb imp ) ABGHZCDGHZIAC
      JKLBDJKLIZACMZBDMZGHZULABENZOZEPZCDFNZOZFPZUNUQQZUMABERCDFRUTVCIUSVBIZFPE
      PVDUSVBEFUAVEVDEFVEUNUQVEUNIURVAMZSUBUOUPVFOUQURVAETFTUCABCDURVAUDUOUPVFS
      UEUFUGUHUIUJUK $.
  $}

  $( Any subset of a countable set is countable.  (Contributed by Thierry
     Arnoux, 31-Jan-2017.) $)
  ssct $p |- ( ( A C_ B /\ B ~<_ _om ) -> A ~<_ _om ) $=
    ( wss com cdom wbr cvv wcel wi ctex ssdomg syl impcom domtr sylancom ) ABCZ
    BDEFZABEFZADEFQPRQBGHPRIBJABGKLMABDNO $.

  $( All decrements of a set are equinumerous.  (Contributed by Stefan O'Rear,
     19-Feb-2015.) $)
  difsnen $p |- ( ( X e. V /\ A e. X /\ B e. X ) ->
      ( X \ { A } ) ~~ ( X \ { B } ) ) $=
    ( wcel csn cdif cen wbr wceq cvv difexg enrefg syl wne cun c0 incom disjdif
    cin w3a 3ad2ant1 sneq difeq2d breq2d syl5ibcom imp wa simpl1 dif32 syl6breq
    4syl simpl3 simpl2 en2sn syl2anc eqtri unen syl22anc simpr eldifsn sylanbrc
    a1i necomd difsnid 3brtr3d pm2.61dane ) DCEZADEZBDEZUAZDAFZGZDBFZGZHIZABVKA
    BJZVPVKVMVMHIZVQVPVHVIVRVJVHVMKEZVRDVLCLZVMKMNUBVQVMVOVMHVQVLVNDABUCUDUEUFU
    GVKABOZUHZVMVNGZVNPZVOVLGZVLPZVMVOHWBWCWEHIVNVLHIZWCVNTZQJZWEVLTZQJZWDWFHIW
    BWCWCWEHWBVHVSWCKEWCWCHIVHVIVJWAUIVTVMVNKLWCKMULDVLVNUJUKWBVJVIWGVHVIVJWAUM
    ZVHVIVJWAUNZBADDUOUPWIWBWHVNWCTQWCVNRVNVMSUQVCWKWBWJVLWETQWEVLRVLVOSUQVCWCW
    EVNVLURUSWBBVMEZWDVMJWBVJBAOWNWLWBABVKWAUTZVDBDAVAVBVMBVENWBAVOEZWFVOJWBVIW
    AWPWMWOADBVAVBVOAVENVFVG $.

  ${
    $d A f x $.  $d B f x $.  $d C f x $.
    $( Dominance over a set with one element removed.  (Contributed by Stefan
       O'Rear, 19-Feb-2015.)  (Revised by Mario Carneiro, 24-Jun-2015.) $)
    domdifsn $p |- ( A ~< B -> A ~<_ ( B \ { C } ) ) $=
      ( vf vx csdm wbr wcel csn cdif wa cv cvv wb syl adantr adantl wn ad2antrr
      cdom wf1 wex sdomdom relsdom brrelex2i brdomg mpbid crn c0 wne wss wf f1f
      frn cen sdomnen wceq wf1o vex dff1o5 biimpri f1oen3g sylancr necon3bd mpd
      wi ex pssdifn0 syl2anc n0 sylib brrelexi difexg cin eldifn disjsn reldisj
      sylibr syldan f1dom2g syl3anc eldifi ad2antll simplr difsnen domentr expr
      f1ssr exlimdv exlimddv difsn breq2d mpbird pm2.61dan ) ABFGZCBHZABCIJZTGZ
      WOWPKZABDLZUAZWRDWOXADUBZWPWOABTGZXBABUCZWOBMHZXCXBNABFUDUEZABMDUFOUGPWSX
      AKZELZBWTUHZJZHZEUBZWRXGXJUIUJZXLXGXIBUKZXIBUJZXMXAXNWSXAABWTULXNABWTUMAB
      WTUNOZQXGABUOGZRZXOWOXRWPXAABUPSXAXRXOVFWSXAXQXIBXAXIBUQZXQXAXSKZWTMHABWT
      URZXQDUSYAXTABWTUTVAABWTMVBVCVGVDQVEXIBVHVIEXJVJVKXGXKWREWSXAXKWRWSXAXKKZ
      KZABXHIZJZTGZYEWQUOGZWRYCAMHZYEMHZAYEWTUAZYFWOYHWPYBABFUDVLSYCXEYIWOXEWPY
      BXFSZBYDMVMOYBYJWSXAXKXIYEUKZYJYBXIYDVNUIUQZYLXKYMXAXKXHXIHRYMXHBXIVOXIXH
      VPVRQYBXNYMYLNXAXNXKXPPXIYDBVQOUGABYEWTWHVSQAYEWTMMVTWAYCXEXHBHZWPYGYKXKY
      NWSXAXHBXIWBWCWOWPYBWDXHCMBWEWAAYEWQWFVIWGWIVEWJWOWPRZKWRXCWOXCYOXDPYOWRX
      CNWOYOWQBATCBWKWLQWMWN $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    xpsnen.1 $e |- A e. _V $.
    xpsnen.2 $e |- B e. _V $.
    $( A set is equinumerous to its Cartesian product with a singleton.
       Proposition 4.22(c) of [Mendelson] p. 254.  (Contributed by NM,
       4-Jan-2004.)  (Revised by Mario Carneiro, 15-Nov-2014.) $)
    xpsnen $p |- ( A X. { B } ) ~~ A $=
      ( vy vx vz cv cint cop wcel wceq wex cvv inteq inteqd vex op1stb adantr
      wa csn cxp snex xpex elxp syl6eq syl6eqel exlimivv sylbi opex wb eqvisset
      a1i ancom anass velsn anbi1i 3bitr3i exbii eqeq2d anbi1d ceqsexv pm4.71ri
      opeq2 syl6req bitri 3bitri opeq1 anbi12d ceqsexgv syl5bb pm5.32ri pm4.71i
      eleq1 syl bitr2i en2i ) EFABUAZUBZAEHZIZIZFHZBJZAVRCBUCUDCVTVSKZVTWCGHZJZ
      LZWCAKZWFVRKZTZTZGMZFMZWBNKZFGVTAVRUEZWLWOFGWHWOWKWHWBWCNWHWBWGIZIWCWHWAW
      QVTWGOPWCWFFQZGQRUFWRUGSUHUIWDNKWIWCBUJUMWEWCWBLZTVTWBBJZLZWBAKZTZWSTZVTW
      DLZWITZWIXETWSWEXCWSWOWEXCUKFWBULWEWSXFTZFMZWOXCWEWNXHWPWMXGFWMWFBLZWHWIT
      ZTZGMXFXGWLXKGXJWJTWJXJTWLXKXJWJUNWHWIWJUOWJXIXJGBUPUQURUSXJXFGBDXIWHXEWI
      XIWGWDVTWFBWCVDUTVAVBXFWSXETZWITXGXEXLWIXEWSXEWBWDIZIWCXEWAXMVTWDOPWCBWRD
      RVEZVCUQWSXEWIUOVFVGUSVFXFXCFWBNWSXEXAWIXBWSWDWTVTWCWBBVHUTWCWBAVNVIZVJVK
      VOVLXFXFWSTXDXFWSXEWSWIXNSVMWSXFXCXOVLVPXEWIUNVGVQ $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( A set is equinumerous to its Cartesian product with a singleton.
       Proposition 4.22(c) of [Mendelson] p. 254.  (Contributed by NM,
       22-Oct-2004.) $)
    xpsneng $p |- ( ( A e. V /\ B e. W ) -> ( A X. { B } ) ~~ A ) $=
      ( vx vy cv csn cxp cen wbr wceq xpeq1 id breq12d xpeq2d breq1d vex xpsnen
      sneq vtocl2g ) EGZFGZHZIZUBJKAUDIZAJKABHZIZAJKEFABCDUBALZUEUFUBAJUBAUDMUI
      NOUCBLZUFUHAJUJUDUGAUCBTPQUBUCERFRSUA $.
  $}

  $( One times a cardinal number.  (Contributed by NM, 27-Sep-2004.)  (Revised
     by Mario Carneiro, 29-Apr-2015.) $)
  xp1en $p |- ( A e. V -> ( A X. 1o ) ~~ A ) $=
    ( wcel c1o cxp c0 csn cen df1o2 xpeq2i cvv wbr 0ex xpsneng mpan2 syl5eqbr )
    ABCZADEAFGZEZAHDRAIJQFKCSAHLMAFBKNOP $.

  ${
    $d x y A $.  $d x y B $.
    endisj.1 $e |- A e. _V $.
    endisj.2 $e |- B e. _V $.
    $( Any two sets are equinumerous to disjoint sets.  Exercise 4.39 of
       [Mendelson] p. 255.  (Contributed by NM, 16-Apr-2004.) $)
    endisj $p |- E. x E. y ( ( x ~~ A /\ y ~~ B ) /\ ( x i^i y ) = (/) ) $=
      ( c0 csn cxp cen wbr c1o wa cin wceq cv wex xpsnen xpex breq1 con0 pm3.2i
      0ex elexi xp01disj p0ex snex bi2anan9 ineq12 eqeq1d anbi12d spc2ev mp2an
      1on ) CGHZIZCJKZDLHZIZDJKZMZUPUSNZGOZAPZCJKZBPZDJKZMZVDVFNZGOZMZBQAQUQUTC
      GEUCRDLFLUAUNUDRUBCDUEVKVAVCMABUPUSCUOEUFSDURFLUGSVDUPOZVFUSOZMZVHVAVJVCV
      LVEUQVMVGUTVDUPCJTVFUSDJTUHVNVIVBGVDUPVFUSUIUJUKULUM $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.
    $( Dominance law for union.  Proposition 4.24(a) of [Mendelson] p. 257.
       (Contributed by NM, 3-Sep-2004.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    undom $p |- ( ( ( A ~<_ B /\ C ~<_ D ) /\ ( B i^i D ) = (/) ) ->
                ( A u. C ) ~<_ ( B u. D ) ) $=
      ( vx vy cdom wbr wa cin c0 wceq cen wss wex cun cvv wcel reldom brrelex2i
      cv cdif domeng syl ibi brrelexi difss ssdomg mpisyl domtr mpancom anim12i
      wb adantr eeanv simprll simprrl disjdif a1i ss2in ad2ant2l adantl syl2anc
      simplr sseq0 undif2 unen syl5eqbrr syl22anc ad3antrrr ad3antlr unexg sylc
      unss12 endomtr ex exlimdvv syl5bir mpd ) ABGHZCDGHZIZBDJZKLZIZAEUAZMHZWFB
      NZIZEOZCAUBZFUAZMHZWLDNZIZFOZIZACPZBDPZGHZWBWQWDVTWJWAWPVTWJVTBQRZVTWJUMA
      BGSTZEABQUCUDUEWAWKDGHZWPWKCGHZWAXCWACQRWKCNXDCDGSUFCAUGWKCQUHUIWKCDUJUKX
      CWPXCDQRZXCWPUMWKDGSTFWKDQUCUDUEUDULUNWQWIWOIZFOEOWEWTWIWOEFUOWEXFWTEFWEX
      FWTWEXFIZWRWFWLPZMHZXHWSGHZWTXGWGWMAWKJKLZWFWLJZKLZXIWEWGWHWOUPWEWIWMWNUQ
      XKXGACURUSXGXLWCNZWDXMXFXNWEWHWNXNWGWMWFBWLDUTVAVBWBWDXFVDXLWCVEVCWGWMIXK
      XMIIWRAWKPXHMACVFAWFWKWLVGVHVIXGWSQRZXHWSNZXJXGXAXEXOVTXAWAWDXFXBVJWAXEVT
      WDXFCDGSTVKBDQQVLVCXFXPWEWHWNXPWGWMWFBWLDVNVAVBXHWSQUHVMWRXHWSVOVCVPVQVRV
      S $.
  $}

  ${
    $d u v w x y z A $.  $d u v w x y z B $.  $d u v C $.  $d u v w y z F $.
    $d u v w G $.
    xpcomf1o.1 $e |- F = ( x e. ( A X. B ) |-> U. `' { x } ) $.
    $( The canonical bijection from ` ( A X. B ) ` to ` ( B X. A ) ` .
       (Contributed by Mario Carneiro, 23-Apr-2014.) $)
    xpcomf1o $p |- F : ( A X. B ) -1-1-onto-> ( B X. A ) $=
      ( cxp ccnv wf1o cv cuni cmpt wrel relxp cnvf1o ax-mp wceq wb f1oeq1 mpbir
      csn cnvxp f1oeq3 mpbi ) BCFZUDGZDHZUDCBFZDHZUFUDUEAUDAITGJKZHZUDLUJBCMAUD
      NODUIPUFUJQEUDUEDUIROSUEUGPUFUHQBCUAUEUGUDDUBOUC $.

    xpcomco.1 $e |- G = ( y e. B , z e. A |-> C ) $.
    $( Composition with the bijection of ~ xpcomf1o swaps the arguments to a
       mapping.  (Contributed by Mario Carneiro, 30-May-2015.) $)
    xpcomco $p |- ( G o. F ) = ( z e. A , y e. B |-> C ) $=
      ( vu vw vv cv wbr wa wex wceq wcel nfcv copab cop ccom cmpt2 cfv cxp wf1o
      cdm wfun wb xpcomf1o f1ofun funbrfv2b mp2b ancom eqcom f1odm ax-mp eleq2i
      anbi12i 3bitri anbi1i anass bitri exbii fvex breq1 anbi2d ceqsexv nfmpt22
      elxp nfcxfr nfbr 19.41 nfmpt21 fveq2 opelxpi ccnv cuni sneq cnveqd unieqd
      csn opswap syl6eq opex fvmpt sylan9eq breq1d coprab df-br df-mpt2 oprabid
      syl eqtri baib ancoms adantl bitrd pm5.32da pm5.32i 3bitr2i opabbii df-co
      bitr3i dfoprab2 3eqtr4i ) KNZLNZGOZXIMNZHOZPZLQZKMUAXHCNZBNZUBZRZXODSZXPE
      SZPZXKFRZPZPZBQZCQZKMUAZHGUCCBDEFUDZXNYFKMXNXIXHGUEZRZXHDEUFZSZXLPZPZLQYL
      YIXKHOZPZYFXMYNLXMYJYLPZXLPYNXJYQXLXJXHGUHZSZYIXIRZPZYTYSPYQYKEDUFZGUGZGU
      IXJUUAUJADEGIUKZYKUUBGULXHXIGUMUNYSYTUOYTYJYSYLYIXIUPYRYKXHUUCYRYKRUUDYKU
      UBGUQURUSUTVAVBYJYLXLVCVDVEYMYPLYIXHGVFYJXLYOYLXIYIXKHVGVHVIYPXRYAPZBQZCQ
      ZYOPUUFYOPZCQYFYLUUGYOCBXHDEVKVBUUFYOCCYIXKHCYITCHBCEDFUDZJBCEDFVJVLCXKTV
      MVNUUHYECUUHUUEYOPZBQYEUUEYOBBYIXKHBYITBHUUIJBCEDFVOVLBXKTVMVNUUJYDBUUJXR
      YAYOPZPYDXRYAYOVCXRUUKYCXRYAYOYBUUEYOXPXOUBZXKHOZYBUUEYIUULXKHXRYAYIXQGUE
      ZUULXHXQGVPYAXQYKSUUNUULRXOXPDEVQAXQANZWCZVRZVSZUULYKGUUOXQRZUURXQWCZVRZV
      SUULUUSUUQUVAUUSUUPUUTUUOXQVTWAWBXOXPWDWEIXPXOWFWGWNWHWIYAUUMYBUJZXRXTXSU
      VBUUMXTXSPZYBUUMUULXKUBZHSUVDUVCYBPZBCMWJZSUVEUULXKHWKHUVFUVDHUUIUVFJBCME
      DFWLWOUSUVEBCMWMVAWPWQWRWSWTXAVDVEXEVEXBVAXCKMLHGXDYHYCCBMWJYGCBMDEFWLYCC
      BMKXFWOXG $.
  $}

  ${
    $d x A $.  $d x B $.
    xpcomen.1 $e |- A e. _V $.
    xpcomen.2 $e |- B e. _V $.
    $( Commutative law for equinumerosity of Cartesian product.  Proposition
       4.22(d) of [Mendelson] p. 254.  (Contributed by NM, 5-Jan-2004.)
       (Revised by Mario Carneiro, 15-Nov-2014.) $)
    xpcomen $p |- ( A X. B ) ~~ ( B X. A ) $=
      ( cxp cvv wcel csn ccnv cuni cmpt wf1o cen wbr xpex eqid xpcomf1o f1oen2g
      vx cv mp3an ) ABEZFGBAEZFGUBUCSUBSTHIJKZLUBUCMNABCDOBADCOSABUDUDPQUBUCUDF
      FRUA $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( Commutative law for equinumerosity of Cartesian product.  Proposition
       4.22(d) of [Mendelson] p. 254.  (Contributed by NM, 27-Mar-2006.) $)
    xpcomeng $p |- ( ( A e. V /\ B e. W ) -> ( A X. B ) ~~ ( B X. A ) ) $=
      ( vx vy cv cxp cen wbr wceq xpeq1 xpeq2 breq12d vex xpcomen vtocl2g ) EGZ
      FGZHZSRHZIJASHZSAHZIJABHZBAHZIJEFABCDRAKTUBUAUCIRASLRASMNSBKUBUDUCUEISBAM
      SBALNRSEOFOPQ $.
  $}

  $( A set is equinumerous to its Cartesian product with a singleton on the
     left.  (Contributed by Stefan O'Rear, 21-Nov-2014.) $)
  xpsnen2g $p |- ( ( A e. V /\ B e. W ) -> ( { A } X. B ) ~~ B ) $=
    ( wcel wa csn cxp cen wbr cvv snex xpcomeng mpan adantl xpsneng ancoms entr
    syl2anc ) ACEZBDEZFAGZBHZBUBHZIJZUDBIJZUCBIJUAUETUBKEUAUEALUBBKDMNOUATUFBAD
    CPQUCUDBRS $.

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    xpassen.1 $e |- A e. _V $.
    xpassen.2 $e |- B e. _V $.
    xpassen.3 $e |- C e. _V $.
    $( Associative law for equinumerosity of Cartesian product.  Proposition
       4.22(e) of [Mendelson] p. 254.  (Contributed by NM, 22-Jan-2004.)
       (Revised by Mario Carneiro, 15-Nov-2014.) $)
    xpassen $p |- ( ( A X. B ) X. C ) ~~ ( A X. ( B X. C ) ) $=
      ( vz vw vv vu csn cdm cuni crn cop wcel wceq wa wex unieqd vx vy cxp xpex
      cvv opex a1i sneq dmeqd sneqd vex op1sta sneqi dmeqi unieqi eqtri syl6req
      rneqd rneqi op2nda opeq12d eq2tri anass anbi12i an32 3bitr4i exbii 19.41v
      3bitr3i 2exbii 19.41vv elxp excom anbi1i an12 exrot4 eqeq2d anbi1d anbi2d
      opeq1 ceqsexv 3bitri 3exbii anbi2i 19.42vv bitri bitr3i exrot3 opeq2 en2i
      cv ) UAUBABUCZCUCZABCUCZUCZUAWKZKZLZMZKZLZMZWTNZMZWQNZMZOZOZUBWKZKZLZMZXJ
      NZMZKZLZMZOZXONZMZOZWLCABDEUDFUDAWNDBCEFUDUDXHUEPWPWMPZXBXGUFUGYAUEPXIWOP
      ZXRXTUFUGWPGWKZHWKZOZIWKZOZQZYDAPZYEBPZRZYGCPZRZRZISZHSGSZXIXHQZRZXIYDYEY
      GOZOZQZYJYKYMRZRZRZISZHSZGSZWPYAQZRZYBYRRYCUUIRYPYRRZHSGSUUFUUIRZHSGSYSUU
      JUUKUULGHYOYRRZISUUEUUIRZISUUKUULUUMUUNIYIYRRZYNRUUBUUIRZUUDRUUMUUNUUOUUP
      YNUUDWPXIYHUUAXHYAYIYDXBYTXGYIXBYHKZLZMZKZLZMZYDYIXAUVAYIWTUUTYIWSUUSYIWR
      UURYIWQUUQWPYHUHZUITUJZUITUVBYFKZLZMYDUVAUVFUUTUVEUUSYFYFYGYDYEUFZIUKZULU
      MZUNUOYDYEGUKZHUKZULUPUQYIYEXDYGXFYIXDUUTNZMZYEYIXCUVLYIWTUUTUVDURTUVMUVE
      NZMYEUVLUVNUUTUVEUVIUSUOYDYEUVJUVKUTUPUQYIXFUUQNZMYGYIXEUVOYIWQUUQUVCURTY
      FYGUVGUVHUTUQVAVAUUBYFXRYGXTUUBYDXLYEXQUUBXLUUAKZLZMYDUUBXKUVQUUBXJUVPXIU
      UAUHZUITYDYTUVJYEYGUFZULUQUUBXQUVPNZMZKZLZMZYEUUBXPUWCUUBXOUWBUUBXNUWAUUB
      XMUVTUUBXJUVPUVRURTUJZUITUWDYTKZLZMYEUWCUWGUWBUWFUWAYTYDYTUVJUVSUTUMZUNUO
      YEYGUVKUVHULUPUQVAUUBXTUWBNZMZYGUUBXSUWIUUBXOUWBUWEURTUWJUWFNZMYGUWIUWKUW
      BUWFUWHUSUOYEYGUVKUVHUTUPUQVAVBYJYKYMVCVDYIYNYRVEUUBUUDUUIVEVFVGYOYRIVHUU
      EUUIIVHVIVJYPYRGHVKUUFUUIGHVKVIYBYQYRYBWPJWKZYGOZQZUWLWLPZYMRRZISJSUWPJSI
      SZYQJIWPWLCVLUWPJIVMUWQUWLYFQZYLRZUWNYMRZRZHSGSZJSISUXAJSZISHSGSYQUWPUXBI
      JUWOUWTRUWSHSGSZUWTRUWPUXBUWOUXDUWTGHUWLABVLVNUWNUWOYMVOUWSUWTGHVKVFVJUXA
      IJGHVPUXCYOGHIUXCUWRYLUWTRZRZJSYLYIYMRZRZYOUXAUXFJUWRYLUWTVCVGUXEUXHJYFUV
      GUWRUWTUXGYLUWRUWNYIYMUWRUWMYHWPUWLYFYGVTVQVRVSWAYLYIYMVOWBWCWBWBVNYCUUHU
      UIYCXIYDUWLOZQZYJUWLWNPZRRZJSZGSUUHGJXIAWNVLUXMUUGGUXMUWLYTQZUXJUUDRZRZIS
      HSZJSUXPJSZISHSUUGUXLUXQJUXJYJRZUXKRUXSUXNUUCRZISHSZRZUXLUXQUXKUYAUXSHIUW
      LBCVLWDUXJYJUXKVCUYBUXSUXTRZISHSUXQUXSUXTHIWEUYCUXPHIUYCUXNUXSUUCRZRUXPUX
      SUXNUUCVOUYDUXOUXNUXJYJUUCVCWDWFVJWGVIVGUXPJHIWHUXRUUEHIUXOUUEJYTUVSUXNUX
      JUUBUUDUXNUXIUUAXIUWLYTYDWIVQVRWAVJWBVGWFVNVFWJ $.
  $}

  ${
    $d f u v w x y z A $.  $d f u v w x y z B $.  $d f u v w x y z C $.
    xpdom.2 $e |- C e. _V $.
    $( Dominance law for Cartesian product.  Proposition 10.33(2) of
       [TakeutiZaring] p. 92.  (Contributed by NM, 24-Jul-2004.)  (Revised by
       Mario Carneiro, 15-Nov-2014.) $)
    xpdom2 $p |- ( A ~<_ B -> ( C X. A ) ~<_ ( C X. B ) ) $=
      ( vz vw vv vu cdom cv wa csn cdm cuni cop cvv wcel wi wceq wb wbr wf1 cxp
      vf vx vy brdomi crn cfv wf f1f ffvelrn ex syl anim2d adantld elxp4 opelxp
      3imtr4g adantl wrex elxp2 vex fvex opth f1fveq ancoms anbi2d ad2ant2l imp
      syl5bb adantlr dmeqd unieqd op1sta syl6eq op2nda fveq2d opeq12d eqeqan12d
      sneq rneqd ad2antlr eqeq12 syl6bb 3bitr4d exp53 com23 rexlimivv rexlimdvv
      syl2anb com12 reldom brrelexi xpexg sylancr adantr brrelex2i exlimddv
      dom3d ) ABIUAZABUDJZUBZCAUCZCBUCZIUAUDABUDUGXAXCKUEUFXDXEUEJZLZMZNZXGUHZN
      ZXBUIZOZUFJZLZMZNZXOUHZNZXBUIZOZPPXCXFXDQZXMXEQZRXAXCXFXIXKOSZXICQZXKAQZK
      ZKYEXLBQZKZYBYCXCYGYIYDXCYFYHYEXCABXBUJZYFYHRABXBUKYJYFYHABXKXBULUMUNUOUP
      XFCAUQXIXLCBURUSUTXCYBXNXDQZKZXMYASZXFXNSZTZRXAYLXCYOYBXFEJZFJZOZSZFAVAEC
      VAZXNGJZHJZOZSZHAVAGCVAZXCYORZYKEFXFCAVBGHXNCAVBYTUUEUUFYTUUDUUFGHCAYSUUA
      CQZUUBAQZKZUUDUUFRZREFCAYPCQZYQAQZKZUUIYSUUJUUMUUIYSUUDXCYOUUMUUIKZYSUUDK
      ZKXCKYPYQXBUIZOZUUAUUBXBUIZOZSZYPUUASZYQUUBSZKZYMYNUUNXCUUTUVCTZUUOUUNXCU
      VDUULUUHXCUVDRUUKUUGUULUUHKZXCUVDUUTUVAUUPUURSZKUVEXCKZUVCYPUUPUUAUUREVCZ
      YQXBVDVEUVGUVFUVBUVAXCUVEUVFUVBTABYQUUBXBVFVGVHVKUMVIVJVLUUOYMUUTTUUNXCYS
      UUDXMUUQYAUUSYSXIYPXLUUPYSXIYRLZMZNYPYSXHUVJYSXGUVIXFYRWAZVMVNYPYQUVHFVCZ
      VOVPYSXKYQXBYSXKUVIUHZNYQYSXJUVMYSXGUVIUVKWBVNYPYQUVHUVLVQVPVRVSUUDXQUUAX
      TUURUUDXQUUCLZMZNUUAUUDXPUVOUUDXOUVNXNUUCWAZVMVNUUAUUBGVCZHVCZVOVPUUDXSUU
      BXBUUDXSUVNUHZNUUBUUDXRUVSUUDXOUVNUVPWBVNUUAUUBUVQUVRVQVPVRVSVTWCUUOYNUVC
      TUUNXCUUOYNYRUUCSUVCXFYRXNUUCWDYPYQUUAUUBUVHUVLVEWEWCWFWGWHWIWJVJWKWLUTXA
      XDPQZXCXACPQZAPQUVTDABIWMWNCAPPWOWPWQXAXEPQZXCXAUWABPQUWBDABIWMWRCBPPWOWP
      WQWTWS $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x V $.  $d x W $.
    $( Dominance law for Cartesian product.  Theorem 6L(c) of [Enderton]
       p. 149.  (Contributed by Mario Carneiro, 26-Apr-2015.) $)
    xpdom2g $p |- ( ( C e. V /\ A ~<_ B ) ->
                  ( C X. A ) ~<_ ( C X. B ) ) $=
      ( vx wcel cdom wbr cxp cv wceq xpeq1 breq12d imbi2d vex xpdom2 vtoclg imp
      wi ) CDFABGHZCAIZCBIZGHZTEJZAIZUDBIZGHZSTUCSECDUDCKZUGUCTUHUEUAUFUBGUDCAL
      UDCBLMNABUDEOPQR $.

    $( Dominance law for Cartesian product.  Theorem 6L(c) of [Enderton]
       p. 149.  (Contributed by NM, 25-Mar-2006.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    xpdom1g $p |- ( ( C e. V /\ A ~<_ B ) ->
                  ( A X. C ) ~<_ ( B X. C ) ) $=
      ( wcel cdom wbr wa cxp cen reldom brrelexi xpcomeng ancoms sylan2 xpdom2g
      cvv brrelex2i domentr syl2anc endomtr ) CDEZABFGZHZACIZCAIZJGZUFBCIZFGZUE
      UHFGUCUBAQEZUGABFKLUJUBUGACQDMNOUDUFCBIZFGUKUHJGZUIABCDPUCUBBQEULABFKRCBD
      QMOUFUKUHSTUEUFUHUAT $.

    $( A set is dominated by its Cartesian product with a nonempty set.
       Exercise 6 of [Suppes] p. 98.  (Contributed by NM, 27-Jul-2004.)
       (Revised by Mario Carneiro, 29-Apr-2015.) $)
    xpdom3 $p |- ( ( A e. V /\ B e. W /\ B =/= (/) ) -> A ~<_ ( A X. B ) ) $=
      ( vx wcel c0 wne cxp cdom wbr cv wex wa n0 w3a csn cen cvv wss ensymd syl
      xpsneng 3adant2 xpexg 3adant3 simp3 ssdomg endomtr syl2anc 3expia exlimdv
      snssd xpss2 sylc syl5bi 3impia ) ACFZBDFZBGHZAABIZJKZUTELZBFZEMURUSNZVBEB
      OVEVDVBEURUSVDVBURUSVDPZAAVCQZIZRKVHVAJKZVBVFVHAURVDVHARKUSAVCCBUCUDUAVFV
      ASFZVHVATZVIURUSVJVDABCDUEUFVFVGBTVKVFVCBURUSVDUGUMVGBAUNUBVHVASUHUOAVHVA
      UIUJUKULUPUQ $.
  $}

  ${
    xpdom1.2 $e |- C e. _V $.
    $( Dominance law for Cartesian product.  Theorem 6L(c) of [Enderton]
       p. 149.  (Contributed by NM, 28-Sep-2004.)  (Revised by NM,
       29-Mar-2006.)  (Revised by Mario Carneiro, 7-May-2015.) $)
    xpdom1 $p |- ( A ~<_ B -> ( A X. C ) ~<_ ( B X. C ) ) $=
      ( cvv wcel cdom wbr cxp xpdom1g mpan ) CEFABGHACIBCIGHDABCEJK $.
  $}

  ${
    $d f A $.  $d f B $.  $d f X $.  $d f Y $.
    domunsncan.a $e |- A e. _V $.
    domunsncan.b $e |- B e. _V $.
    $( A singleton cancellation law for dominance.  (Contributed by Stefan
       O'Rear, 19-Feb-2015.)  (Revised by Stefan O'Rear, 5-May-2015.) $)
    domunsncan $p |- ( ( -. A e. X /\ -. B e. Y ) ->
        ( ( { A } u. X ) ~<_ ( { B } u. Y ) <-> X ~<_ Y ) ) $=
      ( vf wcel wa csn cun cdom wbr cvv wss sylancr cdif cima wceq ad2antll wf1
      wn ssun2 reldom brrelex2i adantl ssexg wex brdomi cen cres wf1o vex resex
      cv simprr difss f1ores sylancl f1oen3g ccnv wfun df-f1 simprbi imadif syl
      wf cfv snex simprl difexg f1f crn imassrn frn syl5ss ssdifd wfn f1fn snid
      unexg elun1 ax-mp fnsnfv difeq2d ssdomg sylc ffvelrn mp1i difsnen syl3anc
      sseqtr4d domentr syl2anc eqbrtrd endomtr uncom difeq1i difun2 eqtri difsn
      syl5eq ad2antrr ad2antlr 3brtr3d expr exlimdv syl5 impancom mpd cin en2sn
      c0 mp2an endom simpr incom disjsn biimpri undom syl21anc impbida ) ACHUBZ
      BDHUBZIZAJZCKZBJZDKZLMZCDLMZYEYJIZDNHZYKYLDYIOYINHZYMDYHUCYJYNYEYGYILUDUE
      UFDYINUGPYEYMYJYKYJYGYIGUOZUAZGUHYEYMIZYKYGYIGUIYQYPYKGYEYMYPYKYEYMYPIZIZ
      YGYFQZYIYHQZCDLYSYTYOYTRZUJMZUUBUUALMYTUUALMYSYOYTUKZNHYTUUBUUDULZUUCYOYT
      GUMUNYSYPYTYGOUUEYEYMYPUPYGYFUQYGYIYTYOURUSYTUUBUUDNUTPYSUUBYOYGRZYOYFRZQ
      ZUUALYPUUBUUHSZYEYMYPYOVAVBZUUIYPYGYIYOVGZUUJYGYIYOVCVDYGYFYOVEVFTYSUUHYI
      AYOVHZJZQZLMZUUNUUAUJMZUUHUUALMYSUUNNHZUUHUUNOUUOYSYNUUQYSYHNHYMYNBVIYEYM
      YPVJYHDNNWAPZYIUUMNVKVFYSUUHYIUUGQUUNYSUUFYIUUGYPUUFYIOZYEYMYPUUKUUSYGYIY
      OVLZUUKUUFYOVMYIYOYGVNYGYIYOVOVPVFTVQYSUUMUUGYIYSYOYGVRZAYGHZUUMUUGSYPUVA
      YEYMYGYIYOVSTAYFHUVBAEVTAYFCWBWCZYGAYOWDUSWEWLUUHUUNNWFWGYSYNUULYIHZBYIHZ
      UUPUURYPUVDYEYMYPUUKUVBUVDUUTUVCYGYIAYOWHUSTBYHHUVEYSBFVTBYHDWBWIUULBNYIW
      JWKUUHUUNUUAWMWNWOYTUUBUUAWPWNYCYTCSYDYRYCYTCYFQZCYTCYFKZYFQUVFYGUVGYFYFC
      WQWRCYFWSWTACXAXBXCYDUUADSYCYRYDUUADYHQZDUUADYHKZYHQUVHYIUVIYHYHDWQWRDYHW
      SWTBDXAXBXDXEXFXGXHXIXJYEYKIZYFYHLMZYKYHDXKZXMSZYJYFYHUJMZUVKUVJANHBNHUVN
      EFABNNXLXNYFYHXOWIYEYKXPYDUVMYCYKYDUVLDYHXKZXMYHDXQUVOXMSYDDBXRXSXBXDYFYH
      CDXTYAYB $.
  $}

  ${
    $d A m n x y $.  $d B m n x y $.  $d F m n $.
    omxpenlem.1 $e |- F = ( x e. B , y e. A |-> ( ( A .o x ) +o y ) ) $.
    $( Lemma for ~ omxpen .  (Contributed by Mario Carneiro, 3-Mar-2013.)
       (Revised by Mario Carneiro, 25-May-2015.) $)
    omxpenlem $p |- ( ( A e. On /\ B e. On ) ->
        F : ( B X. A ) -1-1-onto-> ( A .o B ) ) $=
      ( vm vn con0 wcel wa comu co cv wss syl wb syl2anc wceq c0 cxp wfn wf coa
      ccnv wf1o wral csuc word eloni ad2antlr simprl ordsucss sylc wi ad2ant2lr
      onelon suceloni simplr simpll omwordi syl3anc simprr ad2ant2rl omcl oaord
      mpd mpbid omsuc eleqtrrd ralrimivva fmpt2 sylib ffn cres wbr weu cop wrex
      sseldd wne sylan wn noel oveq1 sylan9eqr eleq2d mtbiri ex necon2ad adantl
      om0r imp omeu vex brcnv wex eleq1 biimpac simplll simplrr oaword1 simplrl
      simpr ad2antrr ontr2 mp2and simpllr on0eln0 mpbird om00el simpld syl31anc
      ne0i omord2 impbid expr pm5.32rd sylan2 anbi2i syl6bb anbi2d an12 2exbidv
      eqcom copab cmpt2 coprab df-mpt2 dfoprab2 3eqtri breqi opabid 3bitri r2ex
      df-br 3bitr4g syl5bb eubidv ralrimiva fnres sylibr wrel cdm crn df-rn frn
      relcnv syl5eqssr relssres sylancr fneq1d dff1o4 sylanbrc ) CIJZDIJZKZEDCU
      AZUBZEUEZCDLMZUBZUURUVAEUFUUQUURUVAEUCZUUSUUQCANZLMZBNZUDMZUVAJZBCUGADUGU
      VCUUQUVHABDCUUQUVDDJZUVFCJZKZKZCUVDUHZLMZUVAUVGUVLUVMDOZUVNUVAOZUVLDUIZUV
      IUVOUUPUVQUUOUVKDUJUKUUQUVIUVJULUVDDUMUNUVLUVMIJZUUPUUOUVOUVPUOUVLUVDIJZU
      VRUUPUVIUVSUUOUVJDUVDUQZUPZUVDURPUUOUUPUVKUSUUOUUPUVKUTZUVMDCVAVBVGUVLUVG
      UVECUDMZUVNUVLUVJUVGUWCJZUUQUVIUVJVCUVLUVFIJZUUOUVEIJZUVJUWDQUUOUVJUWEUUP
      UVICUVFUQZVDUWBUVLUUOUVSUWFUWBUWACUVDVEZRUVFCUVEVFVBVHUVLUUOUVSUVNUWCSUWB
      UWACUVDVIRVJVTVKABDCUVGUVAEFVLVMZUURUVAEVNPUUQUUTUVAVOZUVAUBZUVBUUQGNZHNZ
      UUTVPZHVQZGUVAUGUWKUUQUWOGUVAUUQUWLUVAJZKZUWOUWMUVDUVFVRSZUVGUWLSZKZBCVSA
      IVSZHVQZUWQUUOUWLIJZCTWAZUXBUUOUUPUWPUTUUQUVAIJZUWPUXCCDVEZUVAUWLUQWBUUQU
      WPUXDUUPUWPUXDUOUUOUUPUWPCTUUPCTSZUWPWCUUPUXGKZUWPUWLTJUWLWDUXHUVATUWLUXG
      UUPUVATDLMTCTDLWEDWLWFWGWHWIWJWKWMABHCUWLWNVBUWQUWNUXAHUWNUWMUWLEVPZUWQUX
      AUWLUWMEGWOHWOWPUWQUWRUVKUWLUVGSZKZKZBWQAWQZUVSUVJKZUWTKZBWQAWQUXIUXAUWQU
      XLUXOABUWQUXLUWRUXNUWSKZKUXOUWQUXKUXPUWRUWQUXKUXNUXJKUXPUWQUXJUVKUXNUUQUW
      PUXJUVKUXNQZUWPUXJKUUQUVHUXQUXJUWPUVHUWLUVGUVAWRWSUUQUVHKUVJUVIUVSUUQUVHU
      VJUVIUVSQUUQUVHUVJKZKZUVIUVSUUPUVIUVSUOUUOUXRUUPUVIUVSUVTWIUKUXSUVSUVIUXS
      UVSKZUVIUVEUVAJZUXTUVEUVGOZUVHUYAUXTUWFUWEUYBUXTUUOUVSUWFUUOUUPUXRUVSWTZU
      XSUVSXDZUWHRZUXTUUOUVJUWEUYCUUQUVHUVJUVSXAUWGRUVEUVFXBRUUQUVHUVJUVSXCZUXT
      UWFUXEUYBUVHKUYAUOUYEUUQUXEUXRUVSUXFXEZUVEUVGUVAXFRXGUXTUVSUUPUUOTCJZUVIU
      YAQUYDUUOUUPUXRUVSXHUYCUXTUYHTDJZUXTTUVAJZUYHUYIKZUXTUYJUVATWAZUXTUVHUYLU
      YFUVAUVGXNPUXTUXEUYJUYLQUYGUVAXIPXJUUQUYJUYKQUXRUVSCDXKXEVHXLUVDDCXOXMXJW
      IXPXQXRXSXQXRUXJUWSUXNUWLUVGYEXTYAYBUWRUXNUWSYCYAYDUXIUWMUWLUXMHGYFZVPUWM
      UWLVRUYMJUXMUWMUWLEUYMEABDCUVGYGUXKABGYHUYMFABGDCUVGYIUXKABGHYJYKYLUWMUWL
      UYMYPUXMHGYMYNUWTABICYOYQYRYSXJYTGHUVAUUTUUAUUBUUQUVAUWJUUTUUQUUTUUCUUTUU
      DZUVAOUWJUUTSEUUHUUQUYNEUUEZUVAEUUFUUQUVCUYOUVAOUWIUURUVAEUUGPUUIUUTUVAUU
      JUUKUULVHUURUVAEUUMUUN $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( The cardinal and ordinal products are always equinumerous.  Exercise 10
       of [TakeutiZaring] p. 89.  (Contributed by Mario Carneiro,
       3-Mar-2013.) $)
    omxpen $p |- ( ( A e. On /\ B e. On ) -> ( A .o B ) ~~ ( A X. B ) ) $=
      ( vx vy con0 wcel wa cxp comu co cen wbr xpcomeng cvv cv cmpt2 wf1o xpexg
      coa ancoms omcl eqid omxpenlem f1oen2g syl3anc entr syl2anc ensymd ) AEFZ
      BEFZGZABHZABIJZUKULBAHZKLUNUMKLZULUMKLABEEMUKUNNFZUMEFUNUMCDBAACOIJDOSJPZ
      QUOUJUIUPBAEERTABUACDABUQUQUBUCUNUMUQNEUDUEULUNUMUFUGUH $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    omf1o.1 $e |- F = ( x e. B , y e. A |-> ( ( A .o x ) +o y ) ) $.
    omf1o.2 $e |- G = ( x e. B , y e. A |-> ( ( B .o y ) +o x ) ) $.
    $( Construct an explicit bijection from ` A .o B ` to ` B .o A ` .
       (Contributed by Mario Carneiro, 30-May-2015.) $)
    omf1o $p |- ( ( A e. On /\ B e. On ) ->
        ( G o. `' F ) : ( A .o B ) -1-1-onto-> ( B .o A ) ) $=
      ( vz con0 wcel cxp comu co wf1o ccnv ccom cv cmpt2 eqid coa csn cuni cmpt
      wa omxpenlem ancoms xpcomf1o f1oco sylancl wb xpcomco eqtr4i f1oeq1 ax-mp
      wceq sylibr f1ocnv syl syl2anc ) CJKZDJKZUEZDCLZDCMNZFOZCDMNZVDEPZOZVGVEF
      VHQOVCVDVEBACDDBRMNARUANZSZIVDIRUBPUCUDZQZOZVFVCCDLZVEVKOZVDVOVLOVNVBVAVP
      BADCVKVKTZUFUGIDCVLVLTZUHVDVOVEVKVLUIUJFVMUPVFVNUKFABDCVJSVMHIBADCVJVLVKV
      RVQULUMVDVEFVMUNUOUQVCVDVGEOVIABCDEGUFVDVGEURUSVGVDVEFVHUIUT $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y ph $.  $d x y z S $.
    $d x y G $.
    pw2f1o.1 $e |- ( ph -> A e. V ) $.
    pw2f1o.2 $e |- ( ph -> B e. W ) $.
    pw2f1o.3 $e |- ( ph -> C e. W ) $.
    pw2f1o.4 $e |- ( ph -> B =/= C ) $.
    $( Lemma for ~ pw2f1o .  (Contributed by Mario Carneiro, 6-Oct-2014.) $)
    pw2f1olem $p |- ( ph ->
      ( ( S e. ~P A /\ G = ( z e. A |-> if ( z e. S , C , B ) ) ) <->
        ( G e. ( { B , C } ^m A ) /\ S = ( `' G " { C } ) ) ) ) $=
      ( vy cv wcel wceq wa syl wb vx wss cif cmpt cpr wf ccnv csn cima cpw cmap
      co prid2g prid1g ifcld adantr fmptd simprr feq1d mpbird cfv iftrue wne wn
      eqid ad2antrr iffalse neeq1d syl5ibrcom necon4bd impbid2 simplrr id eleq1
      fveq1d ifbid fvmptg syl2anr eqtrd eqeq1d bitr4d pm5.32da simprl sseld wfn
      pm4.71rd ffn fniniseg 3bitr4d eqrdv jca cdm cnvimass fdm ad2antrl eqsstrd
      syl5sseq dffn5 sylib eleq2d baibd bitrd biimpa adantl eqtr4d wo ffvelrnda
      fvex ord sylibrd con1d imp pm2.61dan mpteq2dva impbida elpw2g cbvmptv a1i
      elpr eqeq2d anbi12d cvv prex elmapg sylancr anbi1d ) AFCUBZGNCNOZFPZEDUCZ
      UDZQZRZCDEUEZGUFZFGUGEUHZUIZQZRZFCUJPZGBCBOZFPZEDUCZUDZQZRGYNCUKULPZYRRAY
      MYSAYMRZYOYRUUGYOCYNYKUFZAUUHYMANCYJYNYKAYJYNPYHCPZAYIEDYNAEIPEYNPLDEIUMS
      ZADIPDYNPKDEIUNSZUOUPYKVEZUQUPUUGCYNGYKAYGYLURUSUTZUUGUAFYQUUGUAOZCPZUUNF
      PZRUUOUUNGVAZEQZRZUUPUUNYQPZUUGUUOUUPUURUUGUUORZUUPUUPEDUCZEQZUURUVAUUPUV
      CUUPEDVBUVAUUPUVBEUVAUVBEVCUUPVDZDEVCZAUVEYMUUOMVFUVDUVBDEUUPEDVGVHVIVJVK
      UVAUUQUVBEUVAUUQUUNYKVAZUVBUVAUUNGYKAYGYLUUOVLVOUUOUUOUVBYNPZUVFUVBQUUGUU
      OVMAUVGYMAUUPEDYNUUJUUKUOUPNUUNYJUVBCYNYKYHUUNQYIUUPEDYHUUNFVNVPUULVQVRVS
      VTWAWBUUGUUPUUOUUGFCUUNAYGYLWCWDWFUUGGCWEZUUTUUSTUUGYOUVHUUMCYNGWGZSCEUUN
      GWHSWIWJWKAYSRZYGYLUVJFYQCAYOYRURUVJGWLZYQCGYPWMYOUVKCQAYRCYNGWNWOWQWPUVJ
      GNCYHGVAZUDZYKUVJUVHGUVMQYOUVHAYRUVIWOZNCGWRWSUVJNCUVLYJUVJUUIRZYIUVLYJQU
      VOYIRUVLEYJUVOYIUVLEQZUVOYIYHYQPZUVPUVOFYQYHAYOYRUUIVLWTUVJUVQUUIUVPUVJUV
      HUVQUUIUVPRTUVNCEYHGWHSXAXBZXCYIYJEQUVOYIEDVBXDXEUVOYIVDZRUVLDYJUVOUVSUVL
      DQZUVOUVTYIUVOUVTVDUVPYIUVOUVTUVPUVOUVLYNPUVTUVPXFUVJCYNYHGAYOYRWCXGUVLDE
      YHGXHXSWSXIUVRXJXKXLUVSYJDQUVOYIEDVGXDXEXMXNVSWKXOAYTYGUUEYLACHPZYTYGTJFC
      HXPSAUUDYKGUUDYKQABNCUUCYJUUAYHQUUBYIEDUUAYHFVNVPXQXRXTYAAUUFYOYRAYNYBPUW
      AUUFYOTDEYCJYNCGYBHYDYEYFWI $.

    pw2f1o.5 $e |- F = ( x e. ~P A |->
      ( z e. A |-> if ( z e. x , C , B ) ) ) $.
    $( The power set of a set is equinumerous to set exponentiation with an
       unordered pair base of ordinal 2.  Generalized from Proposition 10.44 of
       [TakeutiZaring] p. 96.  (Contributed by Mario Carneiro, 6-Oct-2014.) $)
    pw2f1o $p |- ( ph -> F : ~P A -1-1-onto-> ( { B , C } ^m A ) ) $=
      ( vy cv wcel ccnv cima wa cpw cpr cmap co cif cmpt csn cvv wceq pw2f1olem
      eqid biimpa mpanr2 simpld vex cnvex imaex a1i f1od ) ABODUAZEFUBDUCUDZCDC
      PBPZQFEUEUFZOPZRZFUGZSZGVAUHNAVBUTQZTVCVAQZVBVCRVFSUIZAVHVCVCUIZVIVJTZVCU
      KAVHVKTVLACDEFVBVCHIJKLMUJULUMUNVGUHQAVDVAQTVEVFVDOUOUPUQURACDEFVBVDHIJKL
      MUJUS $.
  $}

  ${
    $d x z A $.  $d x V $.
    $( The power set of a set is equinumerous to set exponentiation with a base
       of ordinal ` 2o ` .  (Contributed by FL, 22-Feb-2011.)  (Revised by
       Mario Carneiro, 1-Jul-2015.) $)
    pw2eng $p |- ( A e. V -> ~P A ~~ ( 2o ^m A ) ) $=
      ( vx vz wcel cpw c0 csn cpr cmap co c2o cen cvv wel cif cmpt wf1o wbr a1i
      pwexg ovexd id 0ex p0ex 0nep0 eqid pw2f1o f1oen2g syl3anc df2o2 syl6breqr
      wne oveq1i ) ABEZAFZGGHZIZAJKZLAJKMUOUPNEUSNEUPUSCUPDADCOUQGPQQZRUPUSMSAB
      UAUOURAJUBUOCDAGUQUTBNUOUCGNEUOUDTUQNEUOUETGUQUMUOUFTUTUGUHUPUSUTNNUIUJLU
      RAJUKUNUL $.

    pw2en.1 $e |- A e. _V $.
    $( The power set of a set is equinumerous to set exponentiation with a base
       of ordinal 2.  Proposition 10.44 of [TakeutiZaring] p. 96.  This is
       Metamath 100 proof #52.  (Contributed by NM, 29-Jan-2004.)  (Proof
       shortened by Mario Carneiro, 1-Jul-2015.) $)
    pw2en $p |- ~P A ~~ ( 2o ^m A ) $=
      ( cvv wcel cpw c2o cmap co cen wbr pw2eng ax-mp ) ACDAEFAGHIJBACKL $.
  $}

  ${
    $d A a b $.  $d B a b $.  $d F a b $.  $d V a b $.
    $( Covering implies injection on power sets.  (Contributed by Stefan
       O'Rear, 6-Nov-2014.)  (Revised by Mario Carneiro, 24-Jun-2015.)
       (Revised by AV, 18-Sep-2021.) $)
    fopwdom $p |- ( ( F e. V /\ F : A -onto-> B ) -> ~P B ~<_ ~P A ) $=
      ( va vb wcel wa cpw cv cima cvv wss crn wceq syl adantl wb imaeq2 elpwid
      wfo ccnv imassrn cdm dfdm4 wf fof fdm syl5sseq cnvexg adantr imaexg elpwg
      syl5eqr 3syl a1d simpllr simplrl foimacnv syl2anc simplrr 3eqtr3d impbid1
      mpbird weq ex rnexg forn eleq1d syl5ibcom imp pwexg dmfex sylan2 dom3d )
      CDGZABCUAZHZEFBIZAIZCUBZEJZKZWAFJZKZLLVRWCVTGZWBVSGZVRWFWCAMZVQWHVPVQWANZ
      WCAWAWBUCVQWICUDZACUEVQABCUFZWJAOABCUGZABCUHPUNUIQVRWALGZWCLGWFWHRVPWMVQC
      DUJUKWAWBLULWCALUMUOVDUPVRWGWDVSGZHZWCWEOZEFVEZRVRWOHZWPWQWRWPWQWRWPHZCWC
      KZCWEKZWBWDWPWTXAOWRWCWECSQWSVQWBBMWTWBOVPVQWOWPUQZWSWBBVRWGWNWPURTABWBCU
      SUTWSVQWDBMXAWDOXBWSWDBVRWGWNWPVATABWDCUSUTVBVFWBWDWASVCVFVRBLGZVSLGVPVQX
      CVPCNZLGVQXCCDVGVQXDBLABCVHVIVJVKBLVLPVRALGZVTLGVQVPWKXEWLABDCVMVNALVLPVO
      $.
  $}

  ${
    $d f g h A $.  $d f g h B $.  $d f g h X $.  $d f g h Y $.
    $( Given two equipollent sets, a bijection can always be chosen which fixes
       a single point.  (Contributed by Stefan O'Rear, 9-Jul-2015.) $)
    enfixsn $p |- ( ( A e. X /\ B e. Y /\ X ~~ Y ) ->
        E. f ( f : X -1-1-onto-> Y /\ ( f ` A ) = B ) ) $=
      ( vg vh wcel cen cv wf1o cfv wceq wa wex csn cvv cun a1i syl2anc wbr bren
      w3a simp3 sylib cdif relen brrelex2i 3ad2ant3 adantr f1of adantl ffvelrnd
      wf simpl1 simpl2 difsnen syl3anc cop ccom cin c0 fvex f1osng simprr f1oun
      disjdif syl22anc wb ad2antrl uncom difsnid syl5eq syl f1oeq23 mpbid f1oco
      simprl wfn f1ofn fvco2 ad2antll snid fvun1 syl112anc 3eqtrd snex vex unex
      fvsng coex f1oeq1 fveq1 eqeq1d anbi12d spcev expr exlimdv mpd exlimddv )
      ADHZBEHZDEIUAZUCZDEFJZKZDECJZKZAXGLZBMZNZCOZFXDXCXFFOXAXBXCUDDEFUBUEXDXFN
      ZEAXELZPZUFZEBPZUFZGJZKZGOZXLXMXPXRIUAZYAXMEQHZXNEHZXBYBXDYCXFXCXAYCXBDEI
      UGUHUIUJXMDEAXEXFDEXEUNZXDDEXEUKZULXAXBXCXFUOUMXAXBXCXFUPXNBQEUQURXPXRGUB
      UEXMXTXLGXDXFXTXLXDXFXTNZNZDEXNBUSZPZXSRZXEUTZKZAYLLZBMZXLYHEEYKKZXFYMYHX
      OXPRZXQXRRZYKKZYPYHXOXQYJKZXTXOXPVAVBMZXQXRVAVBMZYSYHXNQHZXBYTUUCYHAXEVCZ
      SZXAXBXCYGUPZXNBQEVDTZXDXFXTVEUUAYHXOEVGSZUUBYHXQEVGSXOXQXPXRYJXSVFVHYHYQ
      EMZYREMZYSYPVIYHYDUUIYHDEAXEXFYEXDXTYFVJXAXBXCYGUOZUMYDYQXPXOREXOXPVKEXNV
      LVMVNYHXBUUJUUFXBYRXRXQREXQXRVKEBVLVMVNYQEYREYKVOTVPXDXFXTVRDEEYKXEVQTYHY
      NXNYKLZXNYJLZBYHXEDVSZXAYNUULMXFUUNXDXTDEXEVTVJUUKDYKXEAWATYHYJXOVSZXSXPV
      SZUUAXNXOHZUULUUMMYHYTUUOUUGXOXQYJVTVNXTUUPXDXFXPXRXSVTWBUUHUUQYHXNUUDWCS
      XOXPYJXSXNWDWEYHUUCXBUUMBMUUEUUFXNBQEWJTWFXKYMYONCYLYKXEYJXSYIWGGWHWIFWHW
      KXGYLMZXHYMXJYODEXGYLWLUURXIYNBAXGYLWMWNWOWPTWQWRWSWT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Schroeder-Bernstein Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.  $d x B $.  $d x D $.  $d x f $.  $d x g $.
    sbthlem.1 $e |- A e. _V $.
    sbthlem.2 $e |- D = { x |
                   ( x C_ A /\ ( g " ( B \ ( f " x ) ) ) C_ ( A \ x ) ) } $.
    $( Lemma for ~ sbth .  (Contributed by NM, 22-Mar-1998.) $)
    sbthlem1 $p |- U. D C_ ( A \ ( g " ( B \ ( f " U. D ) ) ) ) $=
      ( cuni cv cima cdif wss unissb wcel wa abeq2i imass2 sscon 3syl wi difss2
      ssconb exbiri syl5 pm2.43d imp sylbi elssuni sstrd mprgbir ) DIZBFJZCEJZU
      LKZLZKZLZMAJZURMADADURNUSDOZUSBUMCUNUSKZLZKZLZURUTUSBMZVCBUSLMZPZUSVDMZVG
      ADHQVEVFVHVEVFVHVFVCBMZVEVFVHUAVCBUSUBVEVIVHVFUSVCBUCUDUEUFUGUHUTUPVBMZUQ
      VCMVDURMUTUSULMVAUOMVJUSDUIUSULUNRVAUOCSTUPVBUMRUQVCBSTUJUK $.

    $( Lemma for ~ sbth .  (Contributed by NM, 22-Mar-1998.) $)
    sbthlem2 $p |- ( ran g C_ A ->
                     ( A \ ( g " ( B \ ( f " U. D ) ) ) ) C_ U. D ) $=
      ( cv crn wss cuni cima cdif wcel wa cab imass2 sscon mp2b sbthlem1 ssconb
      wb imassrn sstr2 ax-mp difss sylancl mpbiri jctil ssexi wceq sseq1 imaeq2
      difeq2d imaeq2d difeq2 sseq12d anbi12d elab sylibr syl6eleqr elssuni syl
      wi ) FIZJZBKZBVFCEIZDLZMZNZMZNZDOVNVJKVHVNAIZBKZVFCVIVOMZNZMZBVONZKZPZAQZ
      DVHVNBKZVFCVIVNMZNZMZBVNNZKZPZVNWCOVHWIWDVHWIVNBWGNKZWFVLKZWGVMKWKVJVNKVK
      WEKWLABCDEFGHUAVJVNVIRVKWECSTWFVLVFRWGVMBSTVHWGBKZWDWIWKUCWGVGKVHWMVEVFWF
      UDWGVGBUEUFBVMUGZWGVNBUBUHUIWNUJWBWJAVNVNBGWNUKVOVNULZVPWDWAWIVOVNBUMWOVS
      WGVTWHWOVRWFVFWOVQWECVOVNVIUNUOUPVOVNBUQURUSUTVAHVBVNDVCVD $.

    $( Lemma for ~ sbth .  (Contributed by NM, 22-Mar-1998.) $)
    sbthlem3 $p |- ( ran g C_ A ->
                  ( g " ( B \ ( f " U. D ) ) ) = ( A \ U. D ) ) $=
      ( cv crn wss cuni cdif cima wa wceq sbthlem2 sbthlem1 jctil eqss wi sstr2
      sylibr difeq2d imassrn ax-mp dfss4 sylib eqtr2d ) FIZJZBKZBDLZMBBUJCEIUMN
      MZNZMZMZUOULUMUPBULUMUPKZUPUMKZOUMUPPULUSURABCDEFGHQABCDEFGHRSUMUPTUCUDUL
      UOBKZUQUOPUOUKKULUTUAUJUNUEUOUKBUBUFUOBUGUHUI $.

    $( Lemma for ~ sbth .  (Contributed by NM, 27-Mar-1998.) $)
    sbthlem4 $p |- ( ( ( dom g = B /\ ran g C_ A ) /\ Fun `' g ) ->
                  ( `' g " ( A \ U. D ) ) = ( B \ ( f " U. D ) ) ) $=
      ( cv cdm wceq crn wss wa ccnv wfun cuni cima cdif cres dfdm4 difss mpbiri
      sseq2 ssdmres sylib syl5reqr funcnvres sbthlem3 reseq2d sylan9eqr anassrs
      rneqd sylan9eq df-ima syl6reqr ) FIZJZCKZUQLBMZNUQOZPZNCEIDQZRZSZVABVCSZT
      ZLZVAVFRUSUTVBVEVHKUSUTVBNZVEUQVETZOZLZVHUSVLVJJZVEVJUAUSVEURMZVMVEKUSVNV
      ECMCVDUBURCVEUDUCVEUQUEUFUGVIVKVGVBUTVKVAUQVERZTVGVEUQUHUTVOVFVAABCDEFGHU
      IUJUKUMUNULVAVFUOUP $.

    ${
      $d x H $.
      sbthlem.3 $e |- H = ( ( f |` U. D ) u. ( `' g |` ( A \ U. D ) ) ) $.
      $( Lemma for ~ sbth .  (Contributed by NM, 22-Mar-1998.) $)
      sbthlem5 $p |- ( ( dom f = A /\ ran g C_ A ) -> dom H = A ) $=
        ( cv cdm wceq wss cdif cun cin cima dfss eqtri crn sbthlem1 difss sstri
        wa sseq2 mpbiri sylib uneq1d sbthlem3 imassrn syl6eqssr uneq2d sylan9eq
        cuni cres ccnv dmeqi dmun dmres df-rn eqcomi ineq2i syl6reqr undif mpbi
        uneq12i syl6eq ) EKZLZBMZFKZUAZBNZUEZGLZDUOZBVQOZPZBVOVSVQVJQZVRVMQZPZV
        PVKVNVSVTVRPWBVKVQVTVRVKVQVJNZVQVTMVKWCVQBNZVQBVLCVIVQROZRZOBABCDEFHIUB
        BWFUCUDZVJBVQUFUGVQVJSUHUIVNVRWAVTVNVRVMNVRWAMVNVRWFVMABCDEFHIUJVLWEUKU
        LVRVMSUHUMUNVPVIVQUPZVLUQZVRUPZPZLZWBGWKJURWLWHLZWJLZPWBWHWJUSWMVTWNWAV
        IVQUTWNVRWILZQWAWIVRUTWOVMVRVMWOVLVAVBVCTVGTTVDWDVSBMWGVQBVEVFVH $.

      $( Lemma for ~ sbth .  (Contributed by NM, 27-Mar-1998.) $)
      sbthlem6 $p |- ( ( ran f C_ B /\
               ( ( dom g = B /\ ran g C_ A ) /\ Fun `' g ) ) -> ran H = B ) $=
        ( cv wceq crn wss wa cima cdif cun cres df-ima cdm ccnv sbthlem4 uneq2d
        wfun cuni syl5reqr rneqi uneq1i 3eqtr4i syl6reqr wi imassrn sstr2 ax-mp
        rnun undif sylib sylan9eqr ) FKZUACLUTMBNOUTUBZUEOZEKZMZCNZGMZVCDUFZPZC
        VHQZRZCVBVJVHVABVGQZSZMZRZVFVBVIVMVHVBVMVAVKPVIVAVKTABCDEFHIUCUGUDVCVGS
        ZVLRZMVOMZVMRVFVNVOVLUPGVPJUHVHVQVMVCVGTUIUJUKVEVHCNZVJCLVHVDNVEVRULVCV
        GUMVHVDCUNUOVHCUQURUS $.

      $( Lemma for ~ sbth .  (Contributed by NM, 27-Mar-1998.) $)
      sbthlem7 $p |- ( ( Fun f /\ Fun `' g ) -> Fun H ) $=
        ( cv wfun wa cres funres cdm cin c0 wss ax-mp ccnv cuni cdif wceq dmres
        cun inss1 eqsstri ssrin sslin sstri disjdif sseqtri funun syl2an funeqi
        ss0 mpan2 sylibr ) EKZLZFKUAZLZMUTDUBZNZVBBVDUCZNZUFZLZGLVAVELZVGLZVIVC
        VDUTOVFVBOVJVKMVEPZVGPZQZRUDZVIVNRSVOVNVDVFQZRVNVDVMQZVPVLVDSVNVQSVLVDU
        TPZQVDUTVDUEVDVRUGUHVLVDVMUITVMVFSVQVPSVMVFVBPZQVFVBVFUEVFVSUGUHVMVFVDU
        JTUKVDBULUMVNUQTVEVGUNURUOGVHJUPUS $.

      $( Lemma for ~ sbth .  (Contributed by NM, 27-Mar-1998.) $)
      sbthlem8 $p |- ( ( Fun `' f /\ ( ( ( Fun g /\ dom g = B ) /\ ran g C_ A )
                     /\ Fun `' g ) ) -> Fun `' H ) $=
        ( cv ccnv wfun cdm wceq wa crn cres cdif cun wss cin funres11 funcnvcnv
        cuni c0 syl ad3antrrr anim12i cima df-ima df-rn eqtr2i sbthlem4 syl5eqr
        eqtri ineq12 sylancr disjdif syl6eq adantlll adantl funun syl2anc cnvun
        cnveqi funeqi sylibr ) EKZLMZFKZMZVKNCOZPVKQBUAZPVKLZMZPZPZVIDUEZRZLZVO
        BVSSZRZLZTZMZGLZMVRWAMZWDMZPWANZWDNZUBZUFOZWFVJWHVQWIVSVIUCVLWIVMVNVPVL
        VOLMWIVKUDWBVOUCUGUHUIVQWMVJVMVNVPWMVLVMVNPVPPZWLVIVSUJZCWOSZUBZUFWNWJW
        OOWKWPOWLWQOWOVTQWJVIVSUKVTULUMWNWKVOWBUJZWPWRWCQWKVOWBUKWCULUPABCDEFHI
        UNUOWJWOWKWPUQURWOCUSUTVAVBWAWDVCVDWGWEWGVTWCTZLWEGWSJVFVTWCVEUPVGVH $.

      $( Lemma for ~ sbth .  (Contributed by NM, 28-Mar-1998.) $)
      sbthlem9 $p |- ( ( f : A -1-1-> B /\ g : B -1-1-> A ) ->
                    H : A -1-1-onto-> B ) $=
        ( wfun cdm wceq wa crn ccnv wfn df-fn anbi1i bitri cv wss wf1o sbthlem7
        wf1 sbthlem5 adantrl anim12i an42s adantlr sbthlem8 adantll simpr df-rn
        anim1i sbthlem6 syl5eqr sylanr1 jca32 df-f1 df-f anbi12i dff1o4 3imtr4i
        wf ) EUAZKZVFLBMZNZVFOCUBZNZVFPKZNZFUAZKZVNLCMZNZVNOBUBZNZVNPKZNZNZGKZG
        LBMZNZGPZKZWFLZCMZNZNZBCVFUEZCBVNUEZNBCGUCZWBWEWGWIVKWAWEVLVIWAWEVJVGVT
        VHVSWEVGVTNWCVHVSNWDABCDEFGHIJUDVHVRWDVQABCDEFGHIJUFUGUHUIUJUJVLWAWGVKA
        BCDEFGHIJUKULVKWAWIVLVJWAWIVIVSVJVPVRNZVTWIVQVPVRVOVPUMUOVJWOVTNNWHGOCG
        UNABCDEFGHIJUPUQURULUJUSWLVMWMWAWLBCVFVEZVLNVMBCVFUTWPVKVLWPVFBQZVJNVKB
        CVFVAWQVIVJVFBRSTSTWMCBVNVEZVTNWACBVNUTWRVSVTWRVNCQZVRNVSCBVNVAWSVQVRVN
        CRSTSTVBWNGBQZWFCQZNWKBCGVCWTWEXAWJGBRWFCRVBTVD $.

      ${
        $d f g A $.  $d f g B $.
        sbthlem.4 $e |- B e. _V $.
        $( Lemma for ~ sbth .  (Contributed by NM, 28-Mar-1998.) $)
        sbthlem10 $p |- ( ( A ~<_ B /\ B ~<_ A ) -> A ~~ B ) $=
          ( cdom wbr wa cv wf1 wex brdom cvv cres cen anbi12i eeanv bitr4i wcel
          wf1o cuni ccnv cdif cun vex resex cnvex unex eqeltri sbthlem9 f1oen3g
          sylancr exlimivv sylbi ) BCLMZCBLMZNZBCEOZPZCBFOZPZNZFQEQZBCUAMZVCVEE
          QZVGFQZNVIVAVKVBVLBCEKRCBFHRUBVEVGEFUCUDVHVJEFVHGSUEBCGUFVJGVDDUGZTZV
          FUHZBVMUIZTZUJSJVNVQVDVMEUKULVOVPVFFUKUMULUNUOABCDEFGHIJUPBCGSUQURUSU
          T $.
      $}
    $}
  $}

  ${
    $d x y z w f g A $.  $d x y z w f g B $.
    $( Schroeder-Bernstein Theorem.  Theorem 18 of [Suppes] p. 95.  This
       theorem states that if set ` A ` is smaller (has lower cardinality) than
       ` B ` and vice-versa, then ` A ` and ` B ` are equinumerous (have the
       same cardinality).  The interesting thing is that this can be proved
       without invoking the Axiom of Choice, as we do here, but the proof as
       you can see is quite difficult.  (The theorem can be proved more easily
       if we allow AC.) The main proof consists of lemmas ~ sbthlem1 through
       ~ sbthlem10 ; this final piece mainly changes bound variables to
       eliminate the hypotheses of ~ sbthlem10 .  We follow closely the proof
       in Suppes, which you should consult to understand our proof at a higher
       level.  Note that Suppes' proof, which is credited to J. M. Whitaker,
       does not require the Axiom of Infinity.  This is Metamath 100 proof #25.
       (Contributed by NM, 8-Jun-1998.) $)
    sbth $p |- ( ( A ~<_ B /\ B ~<_ A ) -> A ~~ B ) $=
      ( vz vw vx vy cdom wbr wa cen cvv wi cv wceq breq1 breq2 anbi12d wss cima
      cdif vg vf wcel reldom brrelexi imbi12d cab cuni cres ccnv cun vex imaeq2
      sseq1 difeq2d imaeq2d difeq2 sseq12d cbvabv eqid sbthlem10 vtocl2g syl2an
      pm2.43i ) ABGHZBAGHZIZABJHZVEAKUCBKUCVGVHLZVFABGUDUEBAGUDUECMZDMZGHZVKVJG
      HZIZVJVKJHZLAVKGHZVKAGHZIZAVKJHZLVICDABKKVJANZVNVRVOVSVTVLVPVMVQVJAVKGOVJ
      AVKGPQVJAVKJOUFVKBNZVRVGVSVHWAVPVEVQVFVKBAGPVKBAGOQVKBAJPUFEVJVKFMZVJRZUA
      MZVKUBMZWBSZTZSZVJWBTZRZIZFUGZUBUAWEWLUHZUIWDUJVJWMTUIUKZCULWKEMZVJRZWDVK
      WEWOSZTZSZVJWOTZRZIFEWBWONZWCWPWJXAWBWOVJUNXBWHWSWIWTXBWGWRWDXBWFWQVKWBWO
      WEUMUOUPWBWOVJUQURQUSWNUTDULVAVBVCVD $.
  $}

  $( Schroeder-Bernstein Theorem and its converse.  (Contributed by NM,
     8-Jun-1998.) $)
  sbthb $p |- ( ( A ~<_ B /\ B ~<_ A ) <-> A ~~ B ) $=
    ( cdom wbr wa cen sbth endom ensym syl jca impbii ) ABCDZBACDZEABFDZABGOMNA
    BHOBAFDNABIBAHJKL $.

  ${
    $d x y $.
    $( Schroeder-Bernstein Theorem in class form.  (Contributed by NM,
       28-Mar-1998.) $)
    sbthcl $p |- ~~ = ( ~<_ i^i `' ~<_ ) $=
      ( vx vy cen cdom ccnv cin relen wss wrel inss1 reldom relss mp2 cv wbr wa
      brin vex brcnv anbi2i sbthb 3bitrri eqbrriv ) ABCDDEZFZGUEDHDIUEIDUDJKUED
      LMANZBNZUEOUFUGDOZUFUGUDOZPUHUGUFDOZPUFUGCOUFUGDUDQUIUJUHUFUGDARBRSTUFUGU
      AUBUC $.
  $}

  $( Alternate definition of strict dominance.  Compare Definition 3 of
     [Suppes] p. 97.  (Contributed by NM, 31-Mar-1998.) $)
  dfsdom2 $p |- ~< = ( ~<_ \ `' ~<_ ) $=
    ( csdm cdom cen cdif ccnv cin df-sdom sbthcl difeq2i difin 3eqtri ) ABCDBBB
    EZFZDBLDGCMBHIBLJK $.

  ${
    brsdom2.1 $e |- A e. _V $.
    brsdom2.2 $e |- B e. _V $.
    $( Alternate definition of strict dominance.  Definition 3 of [Suppes]
       p. 97.  (Contributed by NM, 27-Jul-2004.) $)
    brsdom2 $p |- ( A ~< B <-> ( A ~<_ B /\ -. B ~<_ A ) ) $=
      ( cop csdm wcel cdom ccnv cdif wbr wn dfsdom2 eleq2i df-br opelcnv bitr4i
      wa notbii anbi12i eldif 3bitr4i ) ABEZFGUCHHIZJZGZABFKABHKZBAHKZLZRZFUEUC
      MNABFOUJUCHGZUCUDGZLZRUFUGUKUIUMABHOUHULUHBAEHGULBAHOABHCDPQSTUCHUDUAQUB
      $.
  $}

  $( Strict dominance is asymmetric.  Theorem 21(ii) of [Suppes] p. 97.
     (Contributed by NM, 8-Jun-1998.) $)
  sdomnsym $p |- ( A ~< B -> -. B ~< A ) $=
    ( csdm wbr cen sdomnen cdom sdomdom sbth syl2an mtand ) ABCDZBACDZABEDZABFL
    ABGDBAGDNMABHBAHABIJK $.

  $( Theorem 22(i) of [Suppes] p. 97.  (Contributed by NM, 10-Jun-1998.) $)
  domnsym $p |- ( A ~<_ B -> -. B ~< A ) $=
    ( cdom wbr csdm cen wo wn brdom2 sdomnsym sdomnen ensym nsyl3 jaoi sylbi )
    ABCDABEDZABFDZGBAEDZHZABIPSQABJRBAFDQBAKABLMNO $.

  $( Any set dominates the empty set.  (Contributed by NM, 26-Oct-2003.)
     (Revised by Mario Carneiro, 26-Apr-2015.) $)
  0domg $p |- ( A e. V -> (/) ~<_ A ) $=
    ( wcel c0 wss cdom wbr 0ss ssdomg mpi ) ABCDAEDAFGAHDABIJ $.

  $( A set dominated by the empty set is empty.  (Contributed by NM,
     22-Nov-2004.) $)
  dom0 $p |- ( A ~<_ (/) <-> A = (/) ) $=
    ( c0 cdom wbr cen wceq cvv wcel reldom brrelexi 0domg syl pm4.71i sbthb en0
    wa 3bitri ) ABCDZRBACDZPABEDABFRSRAGHSABCIJAGKLMABNAOQ $.

  $( A set strictly dominates the empty set iff it is not empty.  (Contributed
     by NM, 23-Mar-2006.) $)
  0sdomg $p |- ( A e. V -> ( (/) ~< A <-> A =/= (/) ) ) $=
    ( wcel c0 csdm wbr cen wn wne cdom wb 0domg brsdom baib syl wceq ensymb en0
    bitri necon3bbii syl6bb ) ABCZDAEFZDAGFZHZADIUBDAJFZUCUEKABLUCUFUEDAMNOUDAD
    UDADGFADPDAQARSTUA $.

  ${
    0sdom.1 $e |- A e. _V $.
    $( Any set dominates the empty set.  (Contributed by NM, 26-Oct-2003.)
       (Revised by Mario Carneiro, 26-Apr-2015.) $)
    0dom $p |- (/) ~<_ A $=
      ( cvv wcel c0 cdom wbr 0domg ax-mp ) ACDEAFGBACHI $.

    $( A set strictly dominates the empty set iff it is not empty.
       (Contributed by NM, 29-Jul-2004.) $)
    0sdom $p |- ( (/) ~< A <-> A =/= (/) ) $=
      ( cvv wcel c0 csdm wbr wne wb 0sdomg ax-mp ) ACDEAFGAEHIBACJK $.
  $}

  $( The empty set does not strictly dominate any set.  (Contributed by NM,
     26-Oct-2003.) $)
  sdom0 $p |- -. A ~< (/) $=
    ( csdm wbr cdom cvv wcel relsdom brrelexi 0domg syl domnsym con2i pm2.65i
    c0 ) ANBCZNADCZOAEFPANBGHAEIJPONAKLM $.

  $( Transitivity of strict dominance and dominance.  Theorem 22(iii) of
     [Suppes] p. 97.  (Contributed by NM, 26-Oct-2003.)  (Revised by Mario
     Carneiro, 26-Apr-2015.) $)
  sdomdomtr $p |- ( ( A ~< B /\ B ~<_ C ) -> A ~< C ) $=
    ( csdm wbr cdom wa cen sdomdom domtr sylan simpl simpr ensym domentr syl2an
    wn domnsym syl ex mt2d brsdom sylanbrc ) ABDEZBCFEZGZACFEZACHEZQACDEUDABFEU
    EUGABIABCJKUFUHUDUDUELUFUHUDQZUFUHGBAFEZUIUFUECAHEUJUHUDUEMACNBCAOPBARSTUAA
    CUBUC $.

  $( Transitivity of strict dominance and equinumerosity.  Exercise 11 of
     [Suppes] p. 98.  (Contributed by NM, 26-Oct-2003.) $)
  sdomentr $p |- ( ( A ~< B /\ B ~~ C ) -> A ~< C ) $=
    ( cen wbr csdm cdom endom sdomdomtr sylan2 ) BCDEABFEBCGEACFEBCHABCIJ $.

  $( Transitivity of dominance and strict dominance.  Theorem 22(ii) of
     [Suppes] p. 97.  (Contributed by NM, 10-Jun-1998.)  (Revised by Mario
     Carneiro, 26-Apr-2015.) $)
  domsdomtr $p |- ( ( A ~<_ B /\ B ~< C ) -> A ~< C ) $=
    ( cdom wbr wa cen wn sdomdom domtr sylan2 simpr ensym simpl endomtr syl2anr
    csdm domnsym syl ex mt2d brsdom sylanbrc ) ABDEZBCQEZFZACDEZACGEZHACQEUEUDB
    CDEUGBCIABCJKUFUHUEUDUELUFUHUEHZUFUHFCBDEZUIUHCAGEUDUJUFACMUDUENCABOPCBRSTU
    AACUBUC $.

  $( Transitivity of equinumerosity and strict dominance.  (Contributed by NM,
     26-Oct-2003.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  ensdomtr $p |- ( ( A ~~ B /\ B ~< C ) -> A ~< C ) $=
    ( cen wbr cdom csdm endom domsdomtr sylan ) ABDEABFEBCGEACGEABHABCIJ $.

  $( Strict dominance is irreflexive.  Theorem 21(i) of [Suppes] p. 97.
     (Contributed by NM, 4-Jun-1998.) $)
  sdomirr $p |- -. A ~< A $=
    ( cvv wcel csdm wbr cen sdomnen enrefg nsyl3 relsdom brrelexi con3i pm2.61i
    wn ) ABCZAADEZNPAAFEOAAGABHIPOAADJKLM $.

  $( Strict dominance is transitive.  Theorem 21(iii) of [Suppes] p. 97.
     (Contributed by NM, 9-Jun-1998.) $)
  sdomtr $p |- ( ( A ~< B /\ B ~< C ) -> A ~< C ) $=
    ( csdm wbr cdom sdomdom domsdomtr sylan ) ABDEABFEBCDEACDEABGABCHI $.

  $( Strict dominance has no 2-cycle loops.  (Contributed by NM,
     6-May-2008.) $)
  sdomn2lp $p |- -. ( A ~< B /\ B ~< A ) $=
    ( csdm wbr wa sdomirr sdomtr mto ) ABCDBACDEAACDAFABAGH $.

  $( Equality-like theorem for equinumerosity.  (Contributed by NM,
     18-Dec-2003.) $)
  enen1 $p |- ( A ~~ B -> ( A ~~ C <-> B ~~ C ) ) $=
    ( cen wbr ensym entr sylan impbida ) ABDEZACDEZBCDEZJBADEKLABFBACGHABCGI $.

  $( Equality-like theorem for equinumerosity.  (Contributed by NM,
     18-Dec-2003.) $)
  enen2 $p |- ( A ~~ B -> ( C ~~ A <-> C ~~ B ) ) $=
    ( cen wbr entr ancoms ensym sylan impbida ) ABDEZCADEZCBDEZLKMCABFGKBADEZML
    ABHMNLCBAFGIJ $.

  $( Equality-like theorem for equinumerosity and dominance.  (Contributed by
     NM, 8-Nov-2003.) $)
  domen1 $p |- ( A ~~ B -> ( A ~<_ C <-> B ~<_ C ) ) $=
    ( cen wbr cdom ensym endomtr sylan impbida ) ABDEZACFEZBCFEZKBADELMABGBACHI
    ABCHJ $.

  $( Equality-like theorem for equinumerosity and dominance.  (Contributed by
     NM, 8-Nov-2003.) $)
  domen2 $p |- ( A ~~ B -> ( C ~<_ A <-> C ~<_ B ) ) $=
    ( cen wbr cdom domentr ancoms ensym sylan impbida ) ABDEZCAFEZCBFEZMLNCABGH
    LBADEZNMABINOMCBAGHJK $.

  $( Equality-like theorem for equinumerosity and strict dominance.
     (Contributed by NM, 8-Nov-2003.) $)
  sdomen1 $p |- ( A ~~ B -> ( A ~< C <-> B ~< C ) ) $=
    ( cen wbr csdm ensym ensdomtr sylan impbida ) ABDEZACFEZBCFEZKBADELMABGBACH
    IABCHJ $.

  $( Equality-like theorem for equinumerosity and strict dominance.
     (Contributed by NM, 8-Nov-2003.) $)
  sdomen2 $p |- ( A ~~ B -> ( C ~< A <-> C ~< B ) ) $=
    ( cen wbr csdm sdomentr ancoms ensym sylan impbida ) ABDEZCAFEZCBFEZMLNCABG
    HLBADEZNMABINOMCBAGHJK $.

  $( Dominance is trichotomous in the restricted case of ordinal numbers.
     (Contributed by Jeff Hankins, 24-Oct-2009.) $)
  domtriord $p |- ( ( A e. On /\ B e. On ) -> ( A ~<_ B <-> -. B ~< A ) ) $=
    ( con0 wcel wa cdom wbr csdm wn cen wi sbth expcom a1i iman brsdom xchbinxr
    wss ssdomg syld syl6ib onelss adantl con3d ontri1 ancoms adantr ensym endom
    wb sylibrd syl con3i jcad syl6ibr con1d impbid ) ACDZBCDZEZABFGZBAHGZIZUTVA
    BAFGZBAJGZKZVCVAVFKUTVDVAVEBALMNVFVDVEIZEZVBVDVEOBAPZQUAUTVAVBUTVAIZVHVBUTV
    JVDVGUTVJBARZVDUTVJABDZIZVKUTVLVAUSVLVAKURUSVLABRVABAUBABCSTUCUDUSURVKVMUJB
    AUEUFUKURVKVDKUSBACSUGTVJVGKUTVEVAVEABJGVABAUHABUIULUMNUNVIUOUPUQ $.

  $( Strict dominance implies ordinal membership.  (Contributed by Mario
     Carneiro, 13-Jan-2013.) $)
  sdomel $p |- ( ( A e. On /\ B e. On ) -> ( A ~< B -> A e. B ) ) $=
    ( con0 wcel csdm wbr wi wa wss cdom wn ssdomg adantl ontri1 domtriord con4d
    3imtr3d ancoms ) BCDZACDZABEFZABDZGSTHZUBUAUCBAIZBAJFZUBKUAKTUDUEGSBACLMBAN
    BAOQPR $.

  $( The difference of a set from a smaller set cannot be empty.  (Contributed
     by Mario Carneiro, 5-Feb-2013.) $)
  sdomdif $p |- ( A ~< B -> ( B \ A ) =/= (/) ) $=
    ( csdm wbr cdif c0 wceq wn cvv wcel relsdom brrelexi wss ssdif0 cdom ssdomg
    wi domnsym syl6 syl5bir syl con2d pm2.43i neqned ) ABCDZBAEZFUEUFFGZHUEUGUE
    UEAIJZUGUEHZQABCKLUGBAMZUHUIBANUHUJBAODUIBAIPBARSTUAUBUCUD $.

  $( An ordinal with more elements of some type is larger.  (Contributed by
     Stefan O'Rear, 2-Nov-2014.) $)
  onsdominel $p |- ( ( A e. On /\ B e. On /\ ( A i^i C ) ~< ( B i^i C ) ) ->
      A e. B ) $=
    ( con0 wcel cin csdm wbr wa wn wb ontri1 ancoms wi cdom inex1g ssrin ssdomg
    wss cvv syl2im domnsym syl6 adantr sylbird con4d 3impia ) ADEZBDEZACFZBCFZG
    HZABEZUHUIIZUMULUNUMJZBASZULJZUIUHUPUOKBALMUHUPUQNUIUHUPUKUJOHZUQUHUJTEUPUK
    UJSURACDPBACQUKUJTRUAUKUJUBUCUDUEUFUG $.

  ${
    $d f g z A $.  $d f g z B $.  $d z C $.
    $( Dominance over a set with one element added.  (Contributed by Mario
       Carneiro, 18-May-2015.) $)
    domunsn $p |- ( A ~< B -> ( A u. { C } ) ~<_ B ) $=
      ( vz csdm wbr cv wcel csn cun cdom c0 wceq wn wex sylib wa cvv mpan2 cin
      sdom0 breq2 mtbiri con2i neq0 cdif domdifsn cen vex en2sn endom syl snprc
      adantr snex 0dom syl6eqbr pm2.61i incom disjdif eqtri undom sylancl uncom
      biimpi wss simpr snssd undif syl5eq breqtrd exlimddv ) ABEFZDGZBHZACIZJZB
      KFDVMBLMZNVODOVRVMVRVMALEFAUABLAEUBUCUDDBUEPVMVOQZVQBVNIZUFZVTJZBKVSAWAKF
      ZVPVTKFZVQWBKFZVMWCVOABVNUGUNCRHZWDWFVPVTUHFZWDWFVNRHWGDUICVNRRUJSVPVTUKU
      LWFNZVPLVTKWHVPLMCUMVEVTVNUOUPUQURWCWDQWAVTTZLMWEWIVTWATLWAVTUSVTBUTVAAWA
      VPVTVBSVCVSWBVTWAJZBWAVTVDVSVTBVFWJBMVSVNBVMVOVGVHVTBVIPVJVKVL $.

    $( There exists a mapping from a set onto any (nonempty) set that it
       dominates.  (Contributed by NM, 23-Mar-2006.) $)
    fodomr $p |- ( ( (/) ~< B /\ B ~<_ A ) -> E. f f : A -onto-> B ) $=
      ( vz vg c0 cdom wa cvv wcel cv wex adantl wne crn cun sylib wceq wfun cdm
      csdm wbr wf1 wfo reldom brrelex2i wb brrelexi 0sdomg n0 syl6bb syl brdomi
      biimpac ccnv cdif csn cxp difexg snex xpexg sylancl vex cnvex jctil unexb
      wi wfn wf df-f1 simprbi fconst ffun ax-mp jctir df-rn eqcomi snnz ineq12i
      cin dmxp disjdif eqtri funun dmun uneq1i uneq2i 3eqtr2i wss f1f frn undif
      syl5eq df-fn sylanbrc rnun dfdm4 f1dm syl5eqr uneq1d xpeq1 0xp syl6eq rn0
      rneqd 0ss syl6eqss a1d rnxp adantr eqsstrd ex pm2.61ine ssequn2 sylan9eqr
      snssi df-fo foeq1 spcegv syl2im expdimp exlimdv syl3c ) FBUAUBZBAGUBZHAIJ
      ZDKZBJZDLZBAEKZUCZELZABCKZUDZCLZYEYFYDBAGUEUFMYEYDYIYEBIJZYDYIUGBAGUEUHYP
      YDBFNYIBIUIDBUJUKULUNYEYLYDBAEUMMYFYHYLYOVGZDYFYHYQYFYHHYKYOEYFYHYKYOYFYJ
      UOZAYJOZUPZYGUQZURZPZIJZYHYKHZABUUCUDZYOYFYRIJZUUBIJZHUUDYFUUHUUGYFYTIJUU
      AIJUUHAYSIUSYGUTYTUUAIIVAVBYJEVCVDVEYRUUBVFQUUEUUCAVHZUUCOZBRUUFUUEUUCSZU
      UCTZARZUUIYKUUKYHYKYRSZUUBSZHYRTZUUBTZVTZFRUUKYKUUNUUOYKBAYJVIZUUNBAYJVJV
      KYTUUAUUBVIUUOYTYGDVCZVLYTUUAUUBVMVNVOUURYSYTVTFUUPYSUUQYTYSUUPYJVPZVQUUA
      FNUUQYTRYGUUTVRYTUUAWAVNZVSYSAWBWCYRUUBWDVBMYKUUMYHYKUULYSYTPZAUULUUPUUQP
      YSUUQPUVCYRUUBWEYSUUPUUQUVAWFUUQYTYSUVBWGWHYKYSAWIZUVCARYKUUSUVDBAYJWJBAY
      JWKULYSAWLQWMMUUCAWNWOUUEUUJYROZUUBOZPZBYRUUBWPYKYHUVGBUVFPZBYKUVEBUVFYKU
      VEYJTBYJWQBAYJWRWSWTYHUVFBWIZUVHBRYHUVIVGYTFYTFRZUVIYHUVJUVFFBUVJUVFFOFUV
      JUUBFUVJUUBFUUAURFYTFUUAXAUUAXBXCXEXDXCBXFXGXHYTFNZYHUVIUVKYHHUVFUUABUVKU
      VFUUARYHYTUUAXIXJYHUUABWIUVKYGBXPMXKXLXMUVFBXNQXOWMABUUCXQWOYNUUFCUUCIABY
      MUUCXRXSXTYAYBXLYBYC $.
  $}

  ${
    $d f A $.  $d f B $.
    $( Injection of sets implies injection on power sets.  (Contributed by
       Mario Carneiro, 9-Apr-2015.) $)
    pwdom $p |- ( A ~<_ B -> ~P A ~<_ ~P B ) $=
      ( vf cdom wbr cpw c0 wceq pweq breq1d wne wfo wex cvv wcel reldom syl wss
      wa cv wb brrelexi 0sdomg biimpar simpl fodomr syl2anc vex fopwdom exlimiv
      csdm mpan brrelex2i pwexg 0ss sspwb mpbi ssdomg mpisyl pm2.61ne ) ABDEZAF
      ZBFZDEZGFZVCDEZAGAGHVBVEVCDAGIJVAAGKZSZBACTZLZCMZVDVHGAUKEZVAVKVAVLVGVAAN
      OVLVGUAABDPUBANUCQUDVAVGUEBACUFUGVJVDCVINOVJVDCUHBAVINUIULUJQVAVCNOZVEVCR
      ZVFVABNOVMABDPUMBNUNQGBRVNBUOGBUPUQVEVCNURUSUT $.
  $}

  ${
    $d x y f A $.
    canth2.1 $e |- A e. _V $.
    $( Cantor's Theorem.  No set is equinumerous to its power set.
       Specifically, any set has a cardinality (size) strictly less than the
       cardinality of its power set.  For example, the cardinality of real
       numbers is the same as the cardinality of the power set of integers, so
       real numbers cannot be put into a one-to-one correspondence with
       integers.  Theorem 23 of [Suppes] p. 97.  For the function version, see
       ~ canth .  This is Metamath 100 proof #63.  (Contributed by NM,
       7-Aug-1994.) $)
    canth2 $p |- A ~< ~P A $=
      ( vx vy vf cpw csdm wbr cdom cen wn cvv wcel pwex cv csn snelpwi wceq wb
      wa vex sneqr sneq impbii a1i dom3 mp2an wf1o wex wfo canth f1ofo mto bren
      nex mtbir brsdom mpbir2an ) AAFZGHAUSIHZAUSJHZKALMUSLMUTBABNCDAUSCOZPZDOZ
      PZLLVBAQVCVERZVBVDRZSVBAMVDAMTVFVGVBVDCUAUBVBVDUCUDUEUFUGVAAUSEOZUHZEUIVI
      EVIAUSVHUJAVHBUKAUSVHULUMUOAUSEUNUPAUSUQUR $.
  $}

  ${
    $d x A $.
    $( Cantor's theorem with the sethood requirement expressed as an
       antecedent.  Theorem 23 of [Suppes] p. 97.  (Contributed by NM,
       7-Nov-2003.) $)
    canth2g $p |- ( A e. V -> A ~< ~P A ) $=
      ( vx cv cpw csdm wbr wceq wb pweq breq12 mpdan vex canth2 vtoclg ) CDZPEZ
      FGZAAEZFGZCABPAHQSHRTIPAJPAQSFKLPCMNO $.
  $}

  $( The power set of the power set of the union of a set does not belong to
     the set.  This theorem provides a way of constructing a new set that
     doesn't belong to a given set.  (Contributed by NM, 27-Jun-2008.) $)
  2pwuninel $p |- -. ~P ~P U. A e. A $=
    ( cuni cvv wcel cpw wn csdm wbr sdomirr wss elssuni cdom ssdomg pwexb sylbi
    canth2g sdomtr syl2anc domsdomtr ex syl6ci syl5 bitri sylibr con3i pm2.61i
    mtoi elex ) ABZCDZUIEZEZADZFUJUMULULGHZULIUMULUIJZUJUNULAKUJUOULUILHZUIULGH
    ZUNULUICMUJUIUKGHUKULGHZUQUICPUJUKCDZURUINZUKCPOUIUKULQRUPUQUNULUIULSTUAUBU
    GUMUJUMULCDZUJULAUHUJUSVAUTUKNUCUDUEUF $.

  $( No set equals the power set of its power set.  (Contributed by NM,
     17-Nov-2008.) $)
  2pwne $p |- ( A e. V -> ~P ~P A =/= A ) $=
    ( wcel cpw wceq csdm wbr sdomirr canth2g cvv pwexg syl sdomtr syl2anc breq1
    syl5ibrcom mtoi neqned ) ABCZADZDZASUAAEZUAUAFGZUAHSUCUBAUAFGZSATFGTUAFGZUD
    ABISTJCUEABKTJILATUAMNUAAUAFOPQR $.

  ${
    $d x A $.  $d x B $.  $d x V $.  $d x W $.
    $( A stronger form of ~ pwuninel .  We can use ~ pwuninel , ~ 2pwuninel to
       create one or two sets disjoint from a given set ` A ` , but here we
       show that in fact such constructions exist for arbitrarily large
       disjoint extensions, which is to say that for any set ` B ` we can
       construct a set ` x ` that is equinumerous to it and disjoint from
       ` A ` .  (Contributed by Mario Carneiro, 7-Feb-2015.) $)
    disjen $p |- ( ( A e. V /\ B e. W ) ->
      ( ( A i^i ( B X. { ~P U. ran A } ) ) = (/) /\
          ( B X. { ~P U. ran A } ) ~~ B ) ) $=
      ( vx wcel crn cuni cpw csn cxp wceq c2nd cfv c1st ad2antll fvex syl cvv
      wa cin c0 cen wbr cop 1st2nd2 simprl eqeltrrd opelrn pwuninel xp2nd elsni
      eleq1d mtbiri pm2.65da elin sylnibr eq0rdv simpr rnexg adantr uniexg 3syl
      cv pwexg xpsneng syl2anc jca ) ACFZBDFZTZABAGZHZIZJZKZUAZUBLVPBUCUDZVKEVQ
      VKEVDZAFZVSVPFZTZVSVQFVKWBVSMNZVLFZVKWBTZVSONZWCUEZAFWDWEVSWGAWAVSWGLVKVT
      VSBVOUFPVKVTWAUGUHWFWCAVSOQVSMQUIRWEWDVNVLFVLUJWEWCVNVLWEWCVOFZWCVNLWAWHV
      KVTVSBVOUKPWCVNULRUMUNUOVSAVPUPUQURVKVJVNSFZVRVIVJUSVKVLSFZVMSFWIVIWJVJAC
      UTVAVLSVBVMSVEVCBVNDSVFVGVH $.

    $( Existence version of ~ disjen .  (Contributed by Mario Carneiro,
       7-Feb-2015.) $)
    disjenex $p |- ( ( A e. V /\ B e. W ) ->
      E. x ( ( A i^i x ) = (/) /\ x ~~ B ) ) $=
      ( wcel wa crn cuni cpw csn cxp cvv cin c0 wceq cen wbr cv wex simpr xpexg
      snex sylancl disjen ineq2 eqeq1d breq1 anbi12d spcegv sylc ) BDFZCEFZGZCB
      HIJZKZLZMFZBUQNZOPZUQCQRZGZBASZNZOPZVCCQRZGZATUNUMUPMFURULUMUAUOUCCUPEMUB
      UDBCDEUEVGVBAUQMVCUQPZVEUTVFVAVHVDUSOVCUQBUFUGVCUQCQUHUIUJUK $.
  $}

  ${
    domss2.1 $e |- G = `' ( F u.
      ( 1st |` ( ( B \ ran F ) X. { ~P U. ran A } ) ) ) $.
    $( A corollary of ~ disjenex .  If ` F ` is an injection from ` A ` to
       ` B ` then ` G ` is a right inverse of ` F ` from ` B ` to a superset of
       ` A ` .  (Contributed by Mario Carneiro, 7-Feb-2015.)  (Revised by Mario
       Carneiro, 24-Jun-2015.) $)
    domss2 $p |- ( ( F : A -1-1-> B /\ A e. V /\ B e. W ) ->
     ( G : B -1-1-onto-> ran G /\ A C_ ran G /\ ( G o. F ) = ( _I |` A ) ) ) $=
      ( wcel crn wf1o wss ccom cres wceq cun c0 cvv syl wb ax-mp cdif cuni c1st
      wf1 w3a cid cpw csn cxp ccnv cin f1f1orn 3ad2ant1 simp2 rnexg uniexg 3syl
      pwexg 1stconst cen wa difexg 3ad2ant3 disjen syl2anc simpld disjdif f1oun
      wbr a1i syl22anc undif2 f1f frn ssequn1 sylib syl5eq f1oeq3 f1ocnv f1oeq1
      mpbid sylibr wfo f1ofo forn mpbird ssun1 syl5sseqr ssid cores dmres f1odm
      wf cdm ineq2d syl6eq wrel relres reldm0 uneq2d cnvun eqtri resundir df-rn
      reseq1i reseq2i relcnv resdm uneq1i 3eqtrri 3eqtr3g coeq1d f1cocnv1 eqtrd
      un0 syl5eqr 3jca ) ABCUDZAEHZBFHZUEZBDIZDJZAYBKDCLZUFAMZNYAYCBABCIZUAZAIZ
      UBZUGZUHUIZOZDJZYABYLCUCYKMZOZUJZJZYMYAYLBYOJZYQYAYLYFYGOZYOJZYRYAAYFCJZY
      KYGYNJZAYKUKPNZYFYGUKZPNZYTXRXSUUAXTABCULUMYAYJQHZUUBYAYHQHZYIQHUUFYAXSUU
      GXRXSXTUNZAEUORYHQUPYIQURUQYGYJQUSRZYAUUCYKYGUTVIZYAXSYGQHZUUCUUJVAUUHXTX
      RUUKXSBYFFVBVCAYGEQVDVEVFUUEYAYFBVGZVJAYFYKYGCYNVHVKYAYSBNYTYRSYAYSYFBOZB
      YFBVLYAYFBKZUUMBNYAABCWMZUUNXRXSUUOXTABCVMUMABCVNRYFBVOVPVQYSBYLYOVRRWAYL
      BYOVSRDYPNYMYQSGBYLDYPVTTWBZYAYBYLNZYCYMSYAYMBYLDWCUUQUUPBYLDWDBYLDWEUQZY
      BYLBDVRRWFYAYLAYBAYKWGUURWHYAYDDYFMZCLZYEYFYFKUUTYDNYFWIDCYFWJTYAUUTCUJZC
      LZYEYAUUSUVACYAUVAYNUJZYFMZOZUVAPOUUSUVAYAUVDPUVAYAUVDWNZPNZUVDPNZYAUVFYF
      UVCWNZUKZPUVCYFWKYAUVJUUDPYAUVIYGYFYAUUBYGYKUVCJUVIYGNUUIYKYGYNVSYGYKUVCW
      LUQWOUULWPVQUVDWQUVHUVGSUVCYFWRUVDWSTWBWTUUSUVAUVCOZYFMUVAYFMZUVDOUVEDUVK
      YFDYPUVKGCYNXAXBXEUVAUVCYFXCUVLUVAUVDUVLUVAUVAWNZMZUVAYFUVMUVACXDXFUVAWQU
      VNUVANCXGUVAXHTXBXIXJUVAXOXKXLXRXSUVBYENXTABCXMUMXNXPXQ $.
  $}

  ${
    $d f g x A $.  $d f g x B $.  $d g F $.  $d f W $.
    $( A corollary of ~ disjenex .  If ` F ` is an injection from ` A ` to
       ` B ` then there is a right inverse ` g ` of ` F ` from ` B ` to a
       superset of ` A ` .  (Contributed by Mario Carneiro, 7-Feb-2015.)
       (Revised by Mario Carneiro, 24-Jun-2015.) $)
    domssex2 $p |- ( ( F : A -1-1-> B /\ A e. V /\ B e. W ) ->
      E. g ( g : B -1-1-> _V /\ ( g o. F ) = ( _I |` A ) ) ) $=
      ( wf1 wcel w3a crn cres cvv ccom wceq wa wf fex2 sylancl syl wss c1st cpw
      cdif cuni csn cxp cun ccnv cid cv wex f1f syl3an1 f1stres difexg 3ad2ant3
      a1i snex xpexg syl3anc unexg syl2anc cnvexg wf1o eqid domss2 simp1d f1of1
      ssv f1ss simp3d jca f1eq1 coeq1 eqeq1d anbi12d spcegv sylc ) ABDGZAEHZBFH
      ZIZDUABDJZUCZAJUDUBZUEZUFZKZUGZUHZLHZBLWJGZWJDMZUIAKZNZOZBLCUJZGZWQDMZWNN
      ZOZCUKWBWILHZWKWBDLHZWHLHZXBVSABDPVTWAXCABDULABDEFQUMWBWGWDWHPZWGLHZWDLHZ
      XDXEWBWDWFUNUQWBXGWFLHXFWAVSXGVTBWCFUOUPZWEURWDWFLLUSRXHWGWDWHLLQUTDWHLLV
      AVBWILVCSWBWLWOWBBWJJZWJGZXILTWLWBBXIWJVDZXJWBXKAXITZWOABDWJEFWJVEVFZVGBX
      IWJVHSXIVIBXILWJVJRWBXKXLWOXMVKVLXAWPCWJLWQWJNZWRWLWTWOBLWQWJVMXNWSWMWNWQ
      WJDVNVOVPVQVR $.

    $( Weakening of ~ domssex to forget the functions in favor of dominance and
       equinumerosity.  (Contributed by Mario Carneiro, 7-Feb-2015.)  (Revised
       by Mario Carneiro, 24-Jun-2015.) $)
    domssex $p |- ( A ~<_ B -> E. x ( A C_ x /\ B ~~ x ) ) $=
      ( vf cdom wbr cv wf1 wex cvv wcel wss cen crn cres syl3anc syl wceq sylc
      wa brdomi reldom brrelex2i wi c1st cdif cuni cpw csn cxp cun ccnv f1stres
      vex wf a1i difexg adantl snex xpexg sylancl fex2 unexg sylancr rnexg wf1o
      cnvexg ccom cid simpl f1dm dmex syl6eqelr adantr simpr eqid domss2 simp2d
      w3a cdm simp1d f1oen3g syl2anc jca sseq2 breq2 anbi12d spcegv ex exlimiv
      ) BCEFBCDGZHZDICJKZBAGZLZCWNMFZTZAIZBCDUABCEUBUCWLWMWRUDDWLWMWRWLWMTZWKUE
      CWKNZUFZBNUGUHZUIZUJZOZUKZULZNZJKZBXHLZCXHMFZTZWRWSXGJKZXIWSXFJKZXMWSWKJK
      XEJKZXNDUNZWSXDXAXEUOZXDJKZXAJKZXOXQWSXAXCUMUPWSXSXCJKXRWMXSWLCWTJUQURZXB
      USXAXCJJUTVAXTXDXAXEJJVBPWKXEJJVCVDXFJVGQZXGJVEQWSXJXKWSCXHXGVFZXJXGWKVHV
      IBORZWSWLBJKZWMYBXJYCVSWLWMVJWLYDWMWLBWKVTJBCWKVKWKXPVLVMVNWLWMVOBCWKXGJJ
      XGVPVQPZVRWSXMYBXKYAWSYBXJYCYEWACXHXGJWBWCWDWQXLAXHJWNXHRWOXJWPXKWNXHBWEW
      NXHCMWFWGWHSWIWJS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Equinumerosity (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d s t u v w x y z A $.  $d s t u v w x y z C $.  $d s t u v w y z X $.
    $d u v w x z B $.  $d u v w y z D $.  $d s t u v w x z Y $.  $d u w z ph $.
    xpf1o.1 $e |- ( ph -> ( x e. A |-> X ) : A -1-1-onto-> B ) $.
    xpf1o.2 $e |- ( ph -> ( y e. C |-> Y ) : C -1-1-onto-> D ) $.
    $( Construct a bijection on a Cartesian product given bijections on the
       factors.  (Contributed by Mario Carneiro, 30-May-2015.) $)
    xpf1o $p |- ( ph -> ( x e. A , y e. C |-> <. X , Y >. ) :
        ( A X. C ) -1-1-onto-> ( B X. D ) ) $=
      ( vu vz vw vs vt wcel wral wceq wa vv cv c1st cfv csb c2nd cop wreu cmpt2
      cxp wf1o xp1st adantl cmpt eqid f1ompt sylib simpld nfcsb1v nfel1 csbeq1a
      adantr eleq1d rspc sylc xp2nd opelxpi syl2anc ralrimiva weq wrex r19.21bi
      wb simprd reu6 anim12dan reeanv pm4.38 ralimdv com12 impcom reximi sylbir
      syl vex op1std csbeq1d eqeq2d op2ndd anbi12d eqeq1 bibi12d ralxp nfv nfcv
      ex nfeq2 nfan nfbi nfral anbi2d opeq2 eqeq1d cbvral anbi1d ralbidv syl5bb
      opeq1 bitr4i eqeq2 syl6bb bibi2d 2ralbidv rexxp sylibr ralrimivva reubidv
      opth nfop opeq12 syl2an cbvmpt2 opeq12d mpt2mpt eqtr4i sylanbrc ) ABLUBZU
      CUDZHUEZCYGUFUDZIUEZUGZEGUJZQZLDFUJZRUAUBZYLSZLYOUHZUAYMRZYOYMBCDFHIUGZUI
      ZUKAYNLYOAYGYOQZTZYIEQZYKGQZYNUUCYHDQZHEQZBDRZUUDUUBUUFAYGDFULUMAUUHUUBAU
      UHMUBZHSZBDUHZMERZADEBDHUNZUKUUHUULTJBMDEHUUMUUMUOUPUQZURVBUUGUUDBYHDBYIE
      BYHHUSUTBUBZYHSHYIEBYHHVAVCVDVEUUCYJFQZIGQZCFRZUUEUUBUUPAYGDFVFUMAUURUUBA
      UURNUBZISZCFUHZNGRZAFGCFIUNZUKUURUVBTKCNFGIUVCUVCUOUPUQZURVBUUQUUECYJFCYK
      GCYJIUSUTCUBZYJSIYKGCYJIVAVCVDVEYIYKEGVGVHVIAUUIYISZUUSYKSZTZLYOUHZNGRMER
      YSAUVIMNEGAUUIEQZUUSGQZTTZUVHLUAVJZVMZLYORZUAYOVKZUVIUVLUUJUUTTZBOVJZCPVJ
      ZTZVMZCFRZBDRZPFVKZODVKZUVPUVLUUJUVRVMZBDRZODVKZUUTUVSVMZCFRZPFVKZTZUWEAU
      VJUWHUVKUWKAUVJTUUKUWHAUUKMEAUUHUULUUNVNVLUUJBODVOUQAUVKTUVAUWKAUVANGAUUR
      UVBUVDVNVLUUTCPFVOUQVPUWLUWGUWJTZPFVKZODVKUWEUWGUWJOPDFVQUWNUWDODUWMUWCPF
      UWJUWGUWCUWJUWFUWBBDUWFUWJUWBUWFUWIUWACFUWFUWIUWAUUJUUTUVRUVSVRWPVSVTVSWA
      WBWBWCWDUVOUWCUAOPDFUVOUVQUUOUVEUGZYPSZVMZCFRZBDRZYPOUBZPUBZUGZSZUWCUVOUU
      IBUWTHUEZSZUUSCUXAIUEZSZTZUXBYPSZVMZPFRZODRUWSUVNUXJLOPDFYGUXBSZUVHUXHUVM
      UXIUXLUVFUXEUVGUXGUXLYIUXDUUIUXLBYHUWTHUWTUXAYGOWEZPWEZWFWGWHUXLYKUXFUUSU
      XLCYJUXAIUWTUXAYGUXMUXNWIWGWHWJYGUXBYPWKWLWMUWRUXKBODUWROWNUXJBPFBFWOUXHU
      XIBUXEUXGBBUUIUXDBUWTHUSWQUXGBWNWRUXIBWNWSWTUWRUUJUXGTZUUOUXAUGZYPSZVMZPF
      RUVRUXKUWQUXRCPFUWQPWNUXOUXQCUUJUXGCUUJCWNCUUSUXFCUXAIUSWQWRUXQCWNWSUVSUV
      QUXOUWPUXQUVSUUTUXGUUJUVSIUXFUUSCUXAIVAWHXAUVSUWOUXPYPUVEUXAUUOXBXCWLXDUV
      RUXRUXJPFUVRUXOUXHUXQUXIUVRUUJUXEUXGUVRHUXDUUIBUWTHVAWHXEUVRUXPUXBYPUUOUW
      TUXAXHXCWLXFXGXDXIUXCUWQUWABCDFUXCUWPUVTUVQUXCUWPUWOUXBSUVTYPUXBUWOXJUUOU
      VEUWTUXABWECWEXRXKXLXMXGXNXOUVHLUAYOVOXOXPYRUVIUAMNEGYPUUIUUSUGZSZYQUVHLY
      OUXTYQUXSYLSUVHYPUXSYLWKUUIUUSYIYKMWEZNWEZXRXKXQWMXOLUAYOYMYLUUAUUAMNDFBU
      UIHUEZCUUSIUEZUGZUILYOYLUNBCMNDFYTUYEMYTWONYTWOBUYCUYDBUUIHUSBUYDWOXSCUYC
      UYDCUYCWOCUUSIUSXSBMVJHUYCSIUYDSYTUYESCNVJBUUIHVACUUSIVAHIUYCUYDXTYAYBMNL
      DFYLUYEYGUXSSZYIUYCYKUYDUYFBYHUUIHUUIUUSYGUYAUYBWFWGUYFCYJUUSIUUIUUSYGUYA
      UYBWIWGYCYDYEUPYF $.
  $}

  $( Equinumerosity law for Cartesian product.  Proposition 4.22(b) of
     [Mendelson] p. 254.  (Contributed by NM, 24-Jul-2004.)  (Proof shortened
     by Mario Carneiro, 26-Apr-2015.) $)
  xpen $p |- ( ( A ~~ B /\ C ~~ D ) -> ( A X. C ) ~~ ( B X. D ) ) $=
    ( cen wbr cxp cdom cvv wcel relen brrelexi xpdom1g syl2anr brrelex2i syl2an
    endom xpdom2g domtr syl2anc wa ensym syl sbth ) ABEFZCDEFZUAZACGZBDGZHFZUIU
    HHFZUHUIEFUGUHBCGZHFZULUIHFZUJUFCIJABHFUMUECDEKLABQABCIMNUEBIJCDHFUNUFABEKO
    CDQCDBIRPUHULUISTUGUIADGZHFZUOUHHFZUKUFDIJBAHFZUPUECDEKOUEBAEFURABUBBAQUCBA
    DIMNUEAIJDCHFZUQUFABEKLUFDCEFUSCDUBDCQUCDCAIRPUIUOUHSTUHUIUDT $.

  ${
    $d f g x y A $.  $d f g x y B $.  $d f g x y C $.  $d f g x y D $.
    $( Two set exponentiations are equinumerous when their bases and exponents
       are equinumerous.  Theorem 6H(c) of [Enderton] p. 139.  (Contributed by
       NM, 16-Dec-2003.)  (Proof shortened by Mario Carneiro, 26-Apr-2015.) $)
    mapen $p |- ( ( A ~~ B /\ C ~~ D ) -> ( A ^m C ) ~~ ( B ^m D ) ) $=
      ( vf vg cv wf1o wex cmap wa ccom wcel wf f1of adantr fco syl cvv wceq cen
      vx vy co bren eeanv ccnv ovexd elmapi sylan f1ocnv adantl syl2anc ex syl5
      wbr crn wfo f1ofo forn vex rnex syl6eqelr elmapd sylibrd id syl2anr f1odm
      cdm dmex wb coass cid cres f1ococnv2 ad2antrr adantrl fcoi2 eqtrd syl5eqr
      coeq1d eqeq2d f1ococnv1 ad2antlr coeq2d adantrr fcoi1 syl5eq eqcom syl6bb
      bitr4d wf1 simprl cocan1 syl3anc wfn ad2antll cocan2 3bitr3d syl2ani en3d
      f1of1 ffn exlimivv sylbir syl2anb ) ABUAUPABEGZHZEIZCDFGZHZFIZACJUDZBDJUD
      ZUAUPZCDUAUPABEUECDFUEXIXLKXHXKKZFIEIXOXHXKEFUFXPXOEFXPUBUCXMXNXGUBGZLZXJ
      UGZLZXGUGZUCGZXJLZLZXPACJUHXPBDJUHXPXQXMMZDBXTNZXTXNMYECAXQNZXPYFXQACUIZX
      PYGYFXPYGKCBXRNZDCXSNZYFXPABXGNZYGYIXHYKXKABXGOPCABXGXQQUJZXPYJYGXPDCXSHZ
      YJXKYMXHCDXJUKULDCXSORPDCBXRXSQUMZUNUOXPBDXTSSXPBXGUQZSXPABXGURZYOBTXHYPX
      KABXGUSPABXGUTRXGEVAZVBVCXPDXJUQZSXPCDXJURZYRDTXKYSXHCDXJUSULZCDXJUTRXJFV
      AZVBVCVDVEXPYBXNMZCAYDNZYDXMMUUBDBYBNZXPUUCYBBDUIZXPUUDUUCXPUUDKBAYANZCBY
      CNZUUCXPUUFUUDXPBAYAHZUUFXHUUHXKABXGUKPBAYAORPUUDUUDCDXJNZUUGXPUUDVFXKUUI
      XHCDXJOULCDBYBXJQVGZCBAYAYCQUMZUNUOXPACYDSSXPAXGVIZSXHUULATXKABXGVHPXGYQV
      JVCXPCXJVIZSXKUUMCTXHCDXJVHULXJUUAVJVCVDVEYEXPYGUUDXQYDTZYBXTTZVKZUUBYHUU
      EXPYGUUDKZUUPXPUUQKZXRXGYDLZTZYCXTXJLZTZUUNUUOUURUUTXRYCTZUVBUURUUSYCXRUU
      RUUSXGYALZYCLZYCXGYAYCVLUURUVEVMBVNZYCLZYCUURUVDUVFYCXHUVDUVFTXKUUQABXGVO
      VPWAUURUUGUVGYCTXPUUDUUGYGUUJVQCBYCVRRVSVTWBUURUVBYCXRTUVCUURUVAXRYCUURUV
      AXRXSXJLZLZXRXRXSXJVLUURUVIXRVMCVNZLZXRUURUVHUVJXRXKUVHUVJTXHUUQCDXJWCWDW
      EUURYIUVKXRTXPYGYIUUDYLWFCBXRWGRVSWHWBYCXRWIWJWKUURABXGWLZYGUUCUUTUUNVKXH
      UVLXKUUQABXGXBVPXPYGUUDWMXPUUDUUCYGUUKVQCABXGXQYDWNWOUURYSYBDWPZXTDWPZUVB
      UUOVKXPYSUUQYTPUUDUVMXPYGDBYBXCWQUURYFUVNXPYGYFUUDYNWFDBXTXCRCDXJYBXTWRWO
      WSUNWTXAXDXEXF $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Order-preserving property of set exponentiation.  Theorem 6L(c) of
       [Enderton] p. 149.  (Contributed by NM, 27-Jul-2004.)  (Revised by Mario
       Carneiro, 9-Mar-2013.) $)
    mapdom1 $p |- ( A ~<_ B -> ( A ^m C ) ~<_ ( B ^m C ) ) $=
      ( vx cdom wbr cvv wcel cmap co wa cv cen wss wex wb reldom adantl syl2anc
      c0 brrelex2i domeng syl ibi adantr simpl enrefg mapen syl2anr ovex simprr
      ad2antrr mapss ssdomg mpsyl endomtr exlimddv wn wceq elmapex simprd con3i
      eq0rdv 0dom syl6eqbr pm2.61dan ) ABEFZCGHZACIJZBCIJZEFZVGVHKZADLZMFZVMBNZ
      KZVKDVGVPDOZVHVGVQVGBGHZVGVQPABEQUAZDABGUBUCUDUEVLVPKZVIVMCIJZMFZWAVJEFZV
      KVPVNCCMFZWBVLVNVOUFVHWDVGCGUGRAVMCCUHUIVJGHVTWAVJNZWCBCIUJZVTVRVOWEVGVRV
      HVPVSULVLVNVOUKVMBCGUMSWAVJGUNUOVIWAVJUPSUQVGVHURZKVITVJEWGVITUSVGWGDVIVM
      VIHZVHWHAGHVHVMACUTVAVBVCRVJWFVDVEVF $.
  $}

  ${
    $d f g x y A $.  $d f g x y B $.  $d f g x y C $.  $d f g x y V $.
    $d f g x y W $.  $d f g x y X $.
    $( Equinumerosity law for double set exponentiation.  Proposition 10.45 of
       [TakeutiZaring] p. 96.  (Contributed by NM, 21-Feb-2004.)  (Revised by
       Mario Carneiro, 24-Jun-2015.) $)
    mapxpen $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
      ( ( A ^m B ) ^m C ) ~~ ( A ^m ( B X. C ) ) ) $=
      ( vx vy wcel cmap co cv cfv cmpt wf wral wa eqid cvv wceq vf vg w3a cmpt2
      cxp ovexd elmapi ffvelrnda syl an32s ralrimiva fmpt2 sylib wb simp1 xpexg
      3adant1 elmapg syl2anc syl5ibr fovrn 3expa sylanl1 fmptd 3adant3 ad2antrr
      adantl mpbird ex ovex simp3 sylancr sylibrd wfn elmapfn ad2antll adantlrl
      fnov 3adant2 simp1l2 simp1l1 fex2 syl3anc fvmpt2 simp2 sylancl mpt2eq3dva
      fveq1d eqtrd eqtr4d nfcv nfmpt1 nfmpt nfeq2 fveq1 ralrimi jctil mpt2eq123
      eqeq2d syl5ibrcom ad2antrl feqmptd simprl sylan mpteq2dva nfmpt22 nfmpt21
      a1d eqidd nfv ovmpt4g mp3an3 eqeq1d expcomd ralrimd mpteq12 syl6an impbid
      fvex oveq en3d ) ADIZBEIZCFIZUCZUAUBABJKZCJKZABCUEZJKZGHBCGLZHLZUALZMZMZU
      DZHCGBYJYKUBLZKZNZNZYEYFCJUFYEAYHJUFYLYGIZYOYIIZYEYHAYOOZYTYNAIZHCPZGBPUU
      BYTUUDGBYTYJBIZQUUCHCYTYKCIZUUEUUCYTUUFQZBAYJYMUUGYMYFIBAYMOZYTCYFYKYLYLY
      FCUGZUHYMABUGUIZUHUJUKUKGHBCYNAYOYORZULUMYEYBYHSIZUUAUUBUNYBYCYDUOYCYDUUL
      YBBCEFUPUQAYHYODSURUSUTYEYPYIIZCYFYSOZYSYGIZYEUUMUUNYEUUMQZHCYRYFYSUUPUUF
      QZYRYFIZBAYROZUUQGBYQAYRUUPYHAYPOZUUFUUEYQAIZUUMUUTYEYPAYHUGVGUUTUUEUUFUV
      AUUTUUEUUFUVAYJYKABCYPVAVBUJVCYRRZVDZYEUURUUSUNZUUMUUFYBYCUVDYDABYRDEURVE
      VFVHYSRZVDVIYEYFSIYDUUOUUNUNABJVJYBYCYDVKYFCYSSFURVLVMYEYTUUMQZYLYSTZYPYO
      TZUNYEUVFQZUVGUVHUVIUVHUVGYPGHBCYJYKYSMZMZUDZTUVIYPGHBCYQUDZUVLUVIYPYHVNZ
      YPUVMTUUMUVNYEYTYPAYHVOVPGHBCYPVRUMUVIGHBCUVKYQUVIUUEUUFUCZUVKYJYRMZYQUVO
      YJUVJYRUVOUUFYRSIZUVJYRTUVIUUEUUFVKUVOUUSYCYBUVQUVIUUFUUSUUEYEUUMUUFUUSYT
      UVCVQVSYBYCYDUVFUUEUUFVTYBYCYDUVFUUEUUFWABAYREDWBWCHCYRSYSUVEWDUSWHUVOUUE
      YQSIUVPYQTUVIUUEUUFWEYJYKYPVJGBYQSYRUVBWDWFWIWGWJUVGYOUVLYPUVGBBTZCCTZYNU
      VKTZHCPZQZGBPYOUVLTBRUVGUWBGBGYLYSGHCYRGCWKGBYQWLWMWNUVGUWBUUEUVGUWAUVSUV
      GUVTHCHYLYSHCYRWLWNUVGUVTUUFUVGYJYMUVJYKYLYSWOWHXHWPCRZWQXHWPGHBCYNBCUVKW
      RVLWSWTUVIUVGUVHYLHCGBYNNZNZTUVIYLHCYMNUWEUVIHCYFYLYTCYFYLOYEUUMUUIXAXBUV
      IHCYMUWDUVIUUFQGBAYMUVIYTUUFUUHYEYTUUMXCUUJXDXBXEWIUVHYSUWEYLUVHUVSYRUWDT
      ZHCPYSUWETUWCUVHUWFHCHYPYOGHBCYNXFWNUVHUVRUUFYQYNTZGBPUWFUVHBXIUVHUUFUWGG
      BGYPYOGHBCYNXGWNUUFGXJUVHUUEUUFUWGUUEUUFQUWGUVHYJYKYOKZYNTZUUEUUFYNSIUWIY
      JYMXSGHBCYNYOSUUKXKXLUVHYQUWHYNYJYKYPYOXTXMUTXNXOGBYQBYNXPXQWPHCYRCUWDXPV
      LWSWTXRVIYA $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z w C $.
    xpmapen.1 $e |- A e. _V $.
    xpmapen.2 $e |- B e. _V $.
    xpmapen.3 $e |- C e. _V $.
    ${
      $d y z D $.  $d y z R $.  $d x z S $.
      xpmapenlem.4 $e |- D = ( z e. C |-> ( 1st ` ( x ` z ) ) ) $.
      xpmapenlem.5 $e |- R = ( z e. C |-> ( 2nd ` ( x ` z ) ) ) $.
      xpmapenlem.6 $e |- S = ( z e. C |->
               <. ( ( 1st ` y ) ` z ) , ( ( 2nd ` y ) ` z ) >. ) $.
      $( Lemma for ~ xpmapen .  (Contributed by NM, 1-May-2004.)  (Revised by
         Mario Carneiro, 16-Nov-2014.) $)
      xpmapenlem $p |- ( ( A X. B ) ^m C ) ~~ ( ( A ^m C ) X. ( B ^m C ) ) $=
        ( wcel cfv c1st wa wceq cxp cmap co cop ovex cv wf elmap ffvelrn sylanb
        xpex xp1st syl fmptd c2nd xp2nd opelxpi syl2anc sylib ffvelrnda 1st2nd2
        sylibr ad2antlr cmpt feqmptd simplr fveq1d cvv opex fvmpt2 mpan2 adantl
        eqtrd fveq2d fvex op1st syl6eq syl5eq eqtr4d op2nd opeq12d simpll simpr
        mpteq2dva ad2antrr op1stg sylan9eq op2ndg impbida en3i ) ABDEUAZFUBUCZD
        FUBUCZEFUBUCZUAZGHUDZIWKFUBUEWMWNDFUBUEEFUBUEUKAUFZWLPZGWMPZHWNPZWPWOPW
        RFDGUGWSWRCFCUFZWQQZRQZDGWRXAFPZSZXBWKPZXCDPWRFWKWQUGZXDXFWKFWQDEJKUKZL
        UHZFWKXAWQUIUJZXBDEULUMMUNDFGJLUHVBZWRFEHUGWTWRCFXBUOQZEHXEXFXLEPXJXBDE
        UPUMNUNEFHKLUHVBZGHWMWNUQURBUFZWOPZFWKIUGIWLPXOCFXAXNRQZQZXAXNUOQZQZUDZ
        WKIXOXDSXQDPXSEPXTWKPXOFDXAXPXOXPWMPFDXPUGXNWMWNULDFXPJLUHUSZUTXOFEXAXR
        XOXRWNPFEXRUGXNWMWNUPEFXRKLUHUSZUTXQXSDEUQUROUNWKFIXHLUHVBWRXOSZWQITZXN
        WPTZYCYDSZXNXPXRUDZWPXOXNYGTWRYDXNWMWNVAVCYFXPGXRHYFXPCFXQVDZGXOXPYHTWR
        YDXOCFDXPYAVEVCYFGCFXCVDYHMYFCFXCXQYFXDSZXCXTRQXQYIXBXTRYIXBXAIQZXTYIXA
        WQIYCYDXDVFVGXDYJXTTZYFXDXTVHPYKXQXSVICFXTVHIOVJVKVLVMZVNXQXSXAXPVOZXAX
        RVOZVPVQWDVRVSYFXRCFXSVDZHXOXRYOTWRYDXOCFEXRYBVEVCYFHCFXLVDYONYFCFXLXSY
        IXLXTUOQXSYIXBXTUOYLVNXQXSYMYNVTVQWDVRVSWAVMYCYESZWQCFXBVDZIYPCFWKWQYPW
        RXGWRXOYEWBXIUSZVEYPICFXTVDYQOYPCFXTXBYPXDSZXTXCXLUDZXBYSXQXCXSXLYPXDXQ
        XAGQZXCYPXAXPGYPXPWPRQZGYPXNWPRYCYEWCZVNYPWSWTUUBGTWRWSXOYEXKWEZWRWTXOY
        EXMWEZGHWMWNWFURVMVGXDXCVHPUUAXCTXBRVOCFXCVHGMVJVKWGYPXDXSXAHQZXLYPXAXR
        HYPXRWPUOQZHYPXNWPUOUUCVNYPWSWTUUGHTUUDUUEGHWMWNWHURVMVGXDXLVHPUUFXLTXB
        UOVOCFXLVHHNVJVKWGWAYSXFXBYTTYPFWKXAWQYRUTXBDEVAUMVSWDVRVSWIWJ $.
    $}

    $( Equinumerosity law for set exponentiation of a Cartesian product.
       Exercise 4.47 of [Mendelson] p. 255.  (Contributed by NM, 23-Feb-2004.)
       (Proof shortened by Mario Carneiro, 16-Nov-2014.) $)
    xpmapen $p |- ( ( A X. B ) ^m C ) ~~ ( ( A ^m C ) X. ( B ^m C ) ) $=
      ( vx vy vz vw cv cfv c1st cmpt c2nd cop weq fveq2 fveq2d cbvmptv opeq12d
      xpmapenlem ) GHIABCJCJKZGKZLZMLZNJCUEOLZNJCUCHKZMLZLZUCUHOLZLZPZNDEFJICUF
      IKZUDLZMLJIQZUEUOMUCUNUDRZSTJICUGUOOLUPUEUOOUQSTJICUMUNUILZUNUKLZPUPUJURU
      LUSUCUNUIRUCUNUKRUATUB $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y V $.  $d x y W $.
    $d x y X $.
    $( Equinumerosity law for set exponentiation of a disjoint union.  Exercise
       4.45 of [Mendelson] p. 255.  (Contributed by NM, 23-Sep-2004.)  (Revised
       by Mario Carneiro, 29-Apr-2015.) $)
    mapunen $p |- ( ( ( A e. V /\ B e. W /\ C e. X ) /\ ( A i^i B ) = (/) ) ->
                  ( C ^m ( A u. B ) ) ~~ ( ( C ^m A ) X. ( C ^m B ) ) ) $=
      ( vx wcel c0 wceq wa cun cmap co cres cop cvv ovex wf elmapi w3a cin c1st
      vy cxp cfv c2nd a1i xpex wss ssun1 fssres sylancl ssun2 jca opelxp simpl3
      simpl1 elmapd simpl2 anbi12d syl5bb syl5ibr xp1st adantl syl xp2nd simplr
      cv fun2 syl21anc ex unexg syl2anc sylibrd 1st2nd2 ad2antll adantrl eqtr4i
      res0 reseq2d 3eqtr4a fresaunres1 syl3anc fresaunres2 eqtr4d reseq1 eqeq2d
      opeq12d syl5ibrcom wfn ffn fnresdm 3syl ad2antrl eqcomd vex op1std op2ndd
      wb resex uneq12d resundi syl6eqr impbid en3d ) ADHZBEHZCFHZUAZABUBZIJZKZG
      UDCABLZMNZCAMNZCBMNZUEZGVIZAOZXSBOZPZUDVIZUCUFZYCUGUFZLZXOQHXMCXNMRUHXRQH
      XMXPXQCAMRCBMRUIUHXSXOHZYBXRHZXMACXTSZBCYASZKZYGYIYJYGXNCXSSZAXNUJYIXSCXN
      TZABUKXNCAXSULUMYGYLBXNUJYJYMBAUNXNCBXSULUMUOYHXTXPHZYAXQHZKXMYKXTYAXPXQU
      PXMYNYIYOYJXMCAXTFDXGXHXIXLUQZXGXHXIXLURZUSXMCBYAFEYPXGXHXIXLUTZUSVAVBVCX
      MYCXRHZXNCYFSZYFXOHXMYSYTXMYSKZACYDSZBCYESZXLYTUUAYDXPHZUUBYSUUDXMYCXPXQV
      DVEYDCATVFZUUAYEXQHZUUCYSUUFXMYCXPXQVGVEYECBTVFZXJXLYSVHABCYDYEVJVKVLXMCX
      NYFFQYPXMXGXHXNQHYQYRABDEVMVNUSVOXMYGYSKZXSYFJZYCYBJZWTXMUUHKZUUIUUJUUKUU
      JUUIYCYFAOZYFBOZPZJUUKYCYDYEPZUUNYSYCUUOJXMYGYCXPXQVPVQUUKUULYDUUMYEUUKUU
      BUUCYDXKOZYEXKOZJZUULYDJXMYSUUBYGUUEVRZXMYSUUCYGUUGVRZUUKYDIOZYEIOZUUPUUQ
      UVAIUVBYDVTYEVTVSUUKXKIYDXJXLUUHVHZWAUUKXKIYEUVCWAWBZABCYDYEWCWDUUKUUBUUC
      UURUUMYEJUUSUUTUVDABCYDYEWEWDWIWFUUIYBUUNYCUUIXTUULYAUUMXSYFAWGXSYFBWGWIW
      HWJUUKUUIUUJXSXSXNOZJUUKUVEXSYGUVEXSJZXMYSYGYLXSXNWKUVFYMXNCXSWLXNXSWMWNW
      OWPUUJYFUVEXSUUJYFXTYALUVEUUJYDXTYEYAXTYAYCXSAGWQZXAZXSBUVGXAZWRXTYAYCUVH
      UVIWSXBXSABXCXDWHWJXEVLXF $.
  $}

  ${
    $d x A $.
    $( A cardinal power with exponent 2 is equivalent to a Cartesian product
       with itself.  (Contributed by Mario Carneiro, 31-May-2015.) $)
    map2xp $p |- ( A e. V -> ( A ^m 2o ) ~~ ( A X. A ) ) $=
      ( vx wcel c2o cmap co c0 csn c1o cxp cen wbr cvv wceq snex a1i id breq12d
      oveq1 cun cpr df2o3 df-pr eqtri oveq2i cin wn 1n0 neii elsni disjsn mpbir
      mto mapunen syl31anc syl5eqbr cv vex mapsnen vtoclg df1o2 eqeltri syl2anc
      0ex xpen entr ) ABDZAEFGZAHIZFGZAJIZFGZKZLMVNAAKZLMZVIVOLMVHVIAVJVLUAZFGZ
      VNLEVQAFEHJUBVQUCHJUDUEUFVHVJNDZVLNDZVHVJVLUGHOZVRVNLMVSVHHPZQVTVHJPQVHRW
      AVHWAJVJDZUHWCJHOJHUIUJJHUKUNVJJULUMQVJVLANNBUOUPUQVHVKALMZVMALMZVPCURZVJ
      FGZWFLMWDCABWFAOZWGVKWFALWFAVJFTWHRZSWFHCUSZVEUTVAWFVLFGZWFLMWECABWHWKVMW
      FALWFAVLFTWISWFJWJJVJNVBWBVCUTVAVKAVMAVFVDVIVNVOVGVD $.
  $}

  ${
    $d x y A $.  $d x B $.  $d x C $.  $d x V $.  $d x W $.
    $( Order-preserving property of set exponentiation.  Theorem 6L(d) of
       [Enderton] p. 149.  (Contributed by NM, 23-Sep-2004.)  (Revised by Mario
       Carneiro, 30-Apr-2015.) $)
    mapdom2 $p |- ( ( A ~<_ B /\ -. ( A = (/) /\ C = (/) ) ) ->
                  ( C ^m A ) ~<_ ( C ^m B ) ) $=
      ( vx cdom wbr c0 wceq wa wn cvv wcel cmap wne simplr syl syl6eqbr syl2anc
      co cen simpr oveq1d idd jctird mtod neqned map0b eqtrd ovex cv wss simpll
      0dom wex wb reldom brrelex2i ad2antrr domeng mpbid ad2antlr simprrl mapen
      enrefg cdif cxp ovexd simprl difexg map0g simpl syl6bi necon3d mpd xpdom3
      wi syl3anc cun cin vex a1i disjdif mapunen syl31anc ensymd simprrr oveq2d
      undif sylib breqtrd domentr endomtr expr exlimdv adantlr pm2.61dane an32s
      ex reldmmap ovprc1 pm2.61d1 ) ABEFZAGHZCGHZIZJZIZCKLZCAMSZCBMSZEFZXGXHXKX
      BXHXFXKXBXHIZXFIZXKCGXMXDIZXIGXJEXNXIGAMSZGXNCGAMXMXDUAZUBXNAGNXOGHXNAGXN
      XCXEXLXFXDOXNXCXCXDXNXCUCXPUDUEUFAUGPUHXJCBMUIUMZQXLCGNZXKXFXLXRIZADUJZTF
      ZXTBUKZIZDUNZXKXSXBYDXBXHXRULXSBKLZXBYDUOXBYEXHXRABEUPUQZURDABKUSPUTXSYCX
      KDXLXRYCXKXLXRYCIZIZXICXTMSZTFZYIXJEFZXKYHCCTFZYAYJXHYLXBYGCKVDVAXLXRYAYB
      VBCCAXTVCRYHYIYICBXTVEZMSZVFZEFZYOXJTFYKYHYIKLYNKLYNGNZYPYHCXTMVGYHCYMMVG
      YHXRYQXLXRYCVHYHXHYMKLZXRYQVPXBXHYGOZYHYEYRXBYEXHYGYFURBXTKVIPZXHYRIZYNGC
      GUUAYNGHXDYMGNZIXDCYMKKVJXDUUBVKVLVMRVNYIYNKKVOVQYHYOCXTYMVRZMSZXJTYHUUDY
      OYHXTKLZYRXHXTYMVSGHZUUDYOTFUUEYHDVTWAYTYSUUFYHXTBWBWAXTYMCKKKWCWDWEYHUUC
      BCMYHYBUUCBHXLXRYAYBWFXTBWHWIWGWJYIYOXJWKRXIYIXJWLRWMWNVNWOWPWQWRXHJXIGXJ
      ECAMWSWTXQQXA $.

    $( Set exponentiation dominates the mantissa.  (Contributed by Mario
       Carneiro, 30-Apr-2015.) $)
    mapdom3 $p |- ( ( A e. V /\ B e. W /\ B =/= (/) ) -> A ~<_ ( A ^m B ) ) $=
      ( vx vy wcel c0 wne cmap co cdom wbr cv wex wa n0 cen wceq vex w3a csn id
      oveq1 breq12d mapsnen vtoclg 3ad2ant1 ensymd wss simp2 simp3 snssd ssdomg
      wn sylc snnz simpl necon3ai ax-mp mapdom2 sylancl endomtr syl2anc exlimdv
      3expia syl5bi 3impia ) ACGZBDGZBHIZAABJKZLMZVKENZBGZEOVIVJPZVMEBQVPVOVMEV
      IVJVOVMVIVJVOUAZAAVNUBZJKZRMVSVLLMZVMVQVSAVIVJVSARMZVOFNZVRJKZWBRMWAFACWB
      ASZWCVSWBARWBAVRJUDWDUCUEWBVNFTETZUFUGUHUIVQVRBLMZVRHSZAHSZPZUOZVTVQVJVRB
      UJWFVIVJVOUKVQVNBVIVJVOULUMVRBDUNUPVRHIWJVNWEUQWIVRHWGWHURUSUTVRBAVAVBAVS
      VLVCVDVFVEVGVH $.

    $( If two sets are equinumerous, then their power sets are equinumerous.
       Proposition 10.15 of [TakeutiZaring] p. 87.  (Contributed by NM,
       29-Jan-2004.)  (Revised by Mario Carneiro, 9-Apr-2015.) $)
    pwen $p |- ( A ~~ B -> ~P A ~~ ~P B ) $=
      ( cen wbr cpw c2o cmap cvv wcel relen brrelexi pw2eng syl com elexi enref
      co 2onn entr syl2anc mapen mpan brrelex2i ensym 3syl ) ABCDZAEZFAGQZCDZUH
      BEZCDZUGUJCDUFAHIUIABCJKAHLMUFUHFBGQZCDZULUJCDZUKFFCDUFUMFFNROPFFABUAUBUF
      BHIUJULCDUNABCJUCBHLUJULUDUEUHULUJSTUGUHUJST $.
  $}

  ${
    $d x y z f A $.  $d x y z f B $.  $d x y z f C $.
    $( Equinumerosity of equinumerous subsets of a set.  (Contributed by NM,
       30-Sep-2004.)  (Revised by Mario Carneiro, 16-Nov-2014.) $)
    ssenen $p |- ( A ~~ B ->
             { x | ( x C_ A /\ x ~~ C ) } ~~ { x | ( x C_ B /\ x ~~ C ) } ) $=
      ( vf cen wbr cv cab cin wss wa cima cvv wcel wceq syl sylan elin elpw cpw
      vy vz wf1o wex bren ccnv cdm f1odm vex dmex syl6eqelr inex1g 3syl crn wfo
      pwexg f1ofo forn rnex wf1 f1of1 adantr simpr f1imaen2g syl22anc entr expl
      a1i imassrn syl5sseq jctild breq1 elab anbi12i bitri imaex 3imtr4g f1ocnv
      wi f1f1orn f1imaen cnvex wb simpl elpwid sylbi imaeq2 f1orel dfrel2 sylib
      imaeq1d f1imacnv eqtr3d sylan9eqr eqcomd ex sylan2 adantrl adantrr impbid
      wrel en3d exlimiv df-pw ineq1i inab eqtri 3brtr3g ) BCFGZBUAZAHZDFGZAIZJZ
      CUAZXNJZXLBKZXMLAIZXLCKZXMLAIZFXJBCEHZUDZEUEXOXQFGZBCEUFYCYDEYCUBUCXOXQYB
      UBHZMZYBUGZUCHZMZYCBNOXKNOXONOYCBYBUHNBCYBUIYBEUJZUKULBNUQXKXNNUMUNYCCNOZ
      XPNOXQNOYCCYBUOZNYCBCYBUPZYLCPBCYBURZBCYBUSZQYBYJUTULZCNUQXPXNNUMUNYCYEBK
      ZYEDFGZLZYFCKZYFDFGZLZYEXOOZYFXQOZYCYSUUAYTYCYQYRUUAYCYQLZYFYEFGZYRUUAUUE
      BCYBVAZYKYQYENOZUUFYCUUGYQBCYBVBZVCYCYKYQYPVCYCYQVDUUHUUEUBUJZVIBCYEYBNVE
      VFYFYEDVGRVHYCYMYTYNYMYLYFCYBYEVJYOVKQVLUUCYEXKOZYEXNOZLZYSYEXKXNSZUUKYQU
      ULYRYEBUUJTXMYRAYEUUJXLYEDFVMVNVOVPUUDYFXPOZYFXNOZLUUBYFXPXNSUUOYTUUPUUAY
      FCYBYEYJVQZTXMUUAAYFUUQXLYFDFVMVNVOVPVRYCYHCKZYHDFGZLZYIBKZYIDFGZLZYHXQOZ
      YIXOOZYCCBYGUDZUUTUVCVTBCYBVSZUVFUUTUVBUVAUVFUURUUSUVBUVFUURLYIYHFGZUUSUV
      BUVFCYGUOZYGVAZUURUVHUVFCBYGVAZCUVIYGUDUVJCBYGVBZCBYGWACUVIYGVBUNCUVIYHYG
      UCUJZWBRYIYHDVGRVHUVFCBYGUPZUVACBYGURUVNUVIYIBYGYHVJCBYGUSVKQVLQUVDYHXPOZ
      YHXNOZLZUUTYHXPXNSZUVOUURUVPUUSYHCUVMTXMUUSAYHUVMXLYHDFVMVNVOVPUVEYIXKOZY
      IXNOZLUVCYIXKXNSUVSUVAUVTUVBYIBYGYHYBYJWCVQZTXMUVBAYIUWAXLYIDFVMVNVOVPVRY
      CUUCUVDLZYEYIPZYHYFPZWDYCUWBLUWCUWDYCUVDUWCUWDVTZUUCUVDYCUURUWEUVDUVQUURU
      VRUVQYHCUVOUVPWEWFWGYCUURLZUWCUWDUWFUWCLYFYHUWCUWFYFYBYIMZYHYEYIYBWHUWFYG
      UGZYIMZUWGYHYCUWIUWGPUURYCUWHYBYIYCYBXBUWHYBPBCYBWIYBWJWKWLVCYCUVKUURUWIY
      HPYCUVFUVKUVGUVLQCBYHYGWMRWNWOWPWQWRWSYCUUCUWDUWCVTZUVDUUCYCYQUWJUUCUUMYQ
      UUNUUMYEBUUKUULWEWFWGUUEUWDUWCUUEUWDLYIYEUWDUUEYIYGYFMZYEYHYFYGWHYCUUGYQU
      WKYEPUUIBCYEYBWMRWOWPWQWRWTXAWQXCXDWGXOXRAIZXNJXSXKUWLXNABXEXFXRXMAXGXHXQ
      XTAIZXNJYAXPUWMXNACXEXFXTXMAXGXHXI $.
  $}

  ${
    $d x y A $.  $d x y V $.
    limenpsi.1 $e |- Lim A $.
    $( A limit ordinal is equinumerous to a proper subset of itself.
       (Contributed by NM, 30-Oct-2003.)  (Revised by Mario Carneiro,
       16-Nov-2014.) $)
    limenpsi $p |- ( A e. V -> A ~~ ( A \ { (/) } ) ) $=
      ( vx vy wcel c0 csn cdif cdom wbr cv csuc wb ax-mp con0 wceq ordelon mpan
      cvv cen difexg wne wlim limsuc biimpi nsuceq0 jctir eldifsn sylibr limord
      wa word suc11 syl2an dom3 mpdan wss difss ssdomg mpi sbth syl2anc ) ABFZA
      AGHZIZJKZVFAJKZAVFUAKVDVFTFVGAVEBUBDEAVFDLZMZELZMZBTVIAFZVJAFZVJGUCZULVJV
      FFVMVNVOVMVNAUDZVMVNNCAVIUEOUFVIUGUHVJAGUIUJVMVIPFZVKPFZVJVLQVIVKQNVKAFZA
      UMZVMVQVPVTCAUKOZAVIRSVTVSVRWAAVKRSVIVKUNUOUPUQVDVFAURVHAVEUSVFABUTVAAVFV
      BVC $.
  $}

  ${
    limensuci.1 $e |- Lim A $.
    $( A limit ordinal is equinumerous to its successor.  (Contributed by NM,
       30-Oct-2003.) $)
    limensuci $p |- ( A e. V -> A ~~ suc A ) $=
      ( wcel csn cdif cun csuc cen wbr limenpsi ensymd cvv 0ex en2sn wceq ax-mp
      c0 cin mpbi mpan wa incom disjdif eqtri wn word wlim limord ordirr disjsn
      mpbir unen mpanr12 syl2anc 0ellim snss undif uncom eqtr3i df-suc 3brtr4g
      wss ) ABDZAREZFZVEGZAAEZGZAAHIVDVFAIJZVEVHIJZVGVIIJZVDAVFABCKLRMDVDVKNRAM
      BOUAVJVKUBVFVESZRPAVHSRPZVLVMVEVFSRVFVEUCVEAUDUEVNAADUFZAUGZVOAUHZVPCAUIQ
      AUJQAAUKULVFAVEVHUMUNUOVEVFGZAVGVEAVCZVRAPRADZVSVQVTCAUPQRANUQTVEAURTVEVF
      USUTAVAVB $.
  $}

  $( A limit ordinal is equinumerous to its successor.  (Contributed by NM,
     30-Oct-2003.) $)
  limensuc $p |- ( ( A e. V /\ Lim A ) -> A ~~ suc A ) $=
    ( wlim wcel csuc cen wbr wi con0 cif wceq eleq1 suceq breq12d imbi12d limeq
    id limon elimhyp limensuci dedth impcom ) ACZABDZAAEZFGZUCUDUFHUCAIJZBDZUGU
    GEZFGZHAIAUGKZUDUHUFUJAUGBLUKAUGUEUIFUKQAUGMNOUGBUCUGCICAIAUGPIUGPRSTUAUB
    $.

  ${
    $d x y A $.
    $( Any infinite ordinal is equinumerous to its successor.  Exercise 7 of
       [TakeutiZaring] p. 88.  Proved without the Axiom of Infinity.
       (Contributed by NM, 30-Oct-2003.)  (Revised by Mario Carneiro,
       13-Jan-2013.) $)
    infensuc $p |- ( ( A e. On /\ _om C_ A ) -> A ~~ suc A ) $=
      ( vx vy con0 wcel com wss wa csuc cen wbr wceq cvv wi cv id suceq breq12d
      csn vex onprc eleq1 mtbiri ssexg nsyl3 omon ori nsyl2 weq limom limensuci
      ancoms sucex en2sn mp2an cin c0 wel wn eloni ordirr disjsn sylibr sucelon
      word syl 3imtr4i jca cun unen df-suc 3brtr4g ex syl5 mpan2 com12 ad2antrr
      wlim wral limensuc mpan a1d tfindsg exp31 com23 imp mpd ) ADEZFAGZHZFDEZA
      AIZJKZWJFDLZWKWNFMEZWJWNWODMEUAFDMUBUCWIWHWOFADUDULUEWKWNUFUGUHWHWIWKWMNW
      HWKWIWMWHWKWIWMBOZWPIZJKZFFIZJKCOZWTIZJKZXAXAIZJKZWMBCAFWPFLZWPFWQWSJXEPW
      PFQRBCUIZWPWTWQXAJXFPWPWTQRWPXALZWPXAWQXCJXGPWPXAQRWPALZWPAWQWLJXHPWPAQRF
      DUJUKWTDEZXBXDNWKFWTGZXBXIXDXBWTSZXASZJKZXIXDNWTMEXAMEXMCTZWTXNUMWTXAMMUN
      UOXIWTXKUPUQLZXAXLUPUQLZHZXBXMHZXDXIXOXPXICCURUSZXOXIWTVEXSWTUTWTVAVFWTWT
      VBVCXADEZXAXAEUSZXIXPXTXAVEYAXAUTXAVAVFWTVDXAXAVBVGVHXRXQXDXRXQHWTXKVIXAX
      LVIXAXCJWTXAXKXLVJWTVKXAVKVLVMVNVOVPVQWPVRZWKHFWPGZHWRXJXBNCWPVSYBWRWKYCW
      PMEYBWRBTWPMVTWAVQWBWCWDWEWFWG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Pigeonhole Principle
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Lemma for Pigeonhole Principle.  If we join a natural number to itself
     minus an element, we end up with its successor minus the same element.
     (Contributed by NM, 25-May-1998.) $)
  phplem1 $p |- ( ( A e. _om /\ B e. A ) ->
             ( { A } u. ( A \ { B } ) ) = ( suc A \ { B } ) ) $=
    ( com wcel wa csn cin c0 wceq cdif cun csuc word nnord nordeq disjsn2 sylan
    wne syl undif4 df-suc equncomi difeq1i syl6eqr ) ACDZBADZEAFZBFZGHIZUGAUHJK
    ZALZUHJZIUEAMZUFUIANUMUFEABRUIABOABPSQUIUJUGAKZUHJULUGAUHTUKUNUHUKAUGAUAUBU
    CUDS $.

  ${
    $d f A $.  $d f B $.
    phplem2.1 $e |- A e. _V $.
    phplem2.2 $e |- B e. _V $.
    $( Lemma for Pigeonhole Principle.  A natural number is equinumerous to its
       successor minus one of its elements.  (Contributed by NM, 11-Jun-1998.)
       (Revised by Mario Carneiro, 16-Nov-2014.) $)
    phplem2 $p |- ( ( A e. _om /\ B e. A ) -> A ~~ ( suc A \ { B } ) ) $=
      ( com wcel wa csn cdif cun csuc cen wbr cin c0 wceq cvv wss syl syl5eq
      cop wf1o snex f1osn mp2an difss ssexi enref pm3.2i incom ssrin ax-mp word
      f1oen3g nnord orddisj syl5sseq disjdif jctil sylancr adantr uncom difsnid
      ss0 unen adantl phplem1 3brtr3d ) AEFZBAFZGBHZAVKIZJZAHZVLJZAAKVKILVIVMVO
      LMZVJVIVKVNLMZVLVLLMZGVKVLNOPZVNVLNZOPZGVPVQVRBAUAZHZQFVKVNWCUBVQWBUCBADC
      UDVKVNWCQUNUEVLVLACAVKUFZUGUHUIVIWAVSVIVTVLVNNZOVNVLUJVIWEORWEOPVIAVNNZWE
      OVLARWEWFRWDVLAVNUKULVIAUMWFOPAUOAUPSUQWEVDSTVKAURUSVKVNVLVLVEUTVAVJVMAPV
      IVJVMVLVKJAVKVLVBABVCTVFABVGVH $.

    $( Lemma for Pigeonhole Principle.  A natural number is equinumerous to its
       successor minus any element of the successor.  (Contributed by NM,
       26-May-1998.) $)
    phplem3 $p |- ( ( A e. _om /\ B e. suc A ) -> A ~~ ( suc A \ { B } ) ) $=
      ( csuc wcel com wceq wo csn cdif cen wbr elsuci phplem2 enref word orddif
      wa nnord syl sneq difeq2d eqcoms sylan9eq syl5breq jaodan sylan2 ) BAEZFA
      GFZBAFZBAHZIAUIBJZKZLMZBANUJUKUOULABCDOUJULSAAUNLACPUJULAUIAJZKZUNUJAQAUQ
      HATARUAUQUNHABABHUPUMUIABUBUCUDUEUFUGUH $.

    $( Lemma for Pigeonhole Principle.  Equinumerosity of successors implies
       equinumerosity of the original natural numbers.  (Contributed by NM,
       28-May-1998.)  (Revised by Mario Carneiro, 24-Jun-2015.) $)
    phplem4 $p |- ( ( A e. _om /\ B e. _om )
                    -> ( suc A ~~ suc B -> A ~~ B ) ) $=
      ( csuc cen wbr com wcel csn cdif cima cvv sylancl ensymd wceq syl imaeq2d
      vf wa cv wf1o wex bren cfv wf1 f1of1 adantl wss sssucid f1imaen2g mpanr12
      sucex word nnord orddif wfn f1ofn sucid fnsnfv difeq2d crn imadmrn eqcomi
      cdm wfo f1ofo forn f1odm 3eqtr3a difeq1d ccnv wfun dff1o3 imadif 3eqtr4rd
      simprbi sylan9eq breqtrd fnfvelrn eleq2d mpbid fvex phplem3 sylan2 syl2an
      wb entr anandirs ex exlimdv syl5bi ) AEZBEZFGWMWNSUAZUBZSUCAHIZBHIZTZABFG
      ZWMWNSUDWSWPWTSWSWPWTWQWRWPWTWQWPTZAWNAWOUEZJZKZFGXDBFGWTWRWPTZXAAWOALZXD
      FXAXFAXAWMWNWOUFZWNMIZXFAFGZWPXGWQWMWNWOUGUHBDUMXGXHTAWMUIAMIXIAUJCWMWNAW
      OMUKULNOWQWPXFWOWMAJZKZLZXDWQAXKWOWQAUNAXKPAUOAUPQRWPWOWMLZXCKXMWOXJLZKZX
      DXLWPXCXNXMWPWOWMUQZAWMIZXCXNPWMWNWOURZACUSZWMAWOUTNVAWPWNXMXCWPWOVBZWOWO
      VEZLZWNXMYBXTWOVCVDWPWMWNWOVFZXTWNPWMWNWOVGZWMWNWOVHZQWPYAWMWOWMWNWOVIRVJ
      VKWPWOVLVMZXLXOPWPYCYFWMWNWOVNVQWMXJWOVOQVPVRVSXEBXDWPWRXBWNIZBXDFGWPXBXT
      IZYGWPXPXQYHXRXSWMAWOVTNWPYCYHYGWGYDYCXTWNXBYEWAQWBBXBDAWOWCWDWEOAXDBWHWF
      WIWJWKWL $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Two equinumerous natural numbers are equal.  Proposition 10.20 of
       [TakeutiZaring] p. 90 and its converse.  Also compare Corollary 6E of
       [Enderton] p. 136.  (Contributed by NM, 28-May-1998.) $)
    nneneq $p |- ( ( A e. _om /\ B e. _om ) -> ( A ~~ B <-> A = B ) ) $=
      ( vz vy vw com wcel cen wceq cv wi wral breq1 eqeq1 imbi12d ralbidv breq2
      wbr c0 eqeq2 vx wa csuc ensym en0 eqcom bitri sylib rgenw wrex wo bibi12d
      nn0suc wb mpbiri biimpd a1i nfv nfra1 nfan rsp vex phplem4 imim1d ex syl5
      a2d imp suceq syl8 biimprcd syl6 rexlimd jaod syl7 ralrimdv cbvralv finds
      syl6ib rspcv mpan9 eqeng adantr impbid ) AFGZBFGZUBABHRZABIZWEACJZHRZAWII
      ZKZCFLZWFWGWHKZUAJZWIHRZWOWIIZKZCFLSWIHRZSWIIZKZCFLDJZWIHRZXBWIIZKZCFLZXB
      UCZWIHRZXGWIIZKZCFLZWMUADAWOSIZWRXACFXLWPWSWQWTWOSWIHMWOSWINOPWOXBIZWRXEC
      FXMWPXCWQXDWOXBWIHMWOXBWINOPWOXGIZWRXJCFXNWPXHWQXIWOXGWIHMWOXGWINOPWOAIZW
      RWLCFXOWPWJWQWKWOAWIHMWOAWINOPXACFWSWISHRZWTSWIUDXPWISIWTWIUEWISUFUGUHUIX
      BFGZXFXGEJZHRZXGXRIZKZEFLXKXQXFYAEFXRFGXRSIZXRWIUCZIZCFUJZUKZXQXFYACXRUMX
      QXFYFYAKXQXFUBZYBYAYEYBYAKYGYBXSXTYBXSXTUNXGSHRZXGSIZUNXGUEYBXSYHXTYIXRSX
      GHQXRSXGTULUOUPUQYGYDYACFXQXFCXQCURXECFUSUTYACURYGWIFGZXGYCHRZXGYCIZKZYDY
      AKYGYJYKXDYLXQXFYJYKXDKZKZXFYJXEKXQYOXECFVAXQYJXEYNXQYJXEYNKXQYJUBYKXCXDX
      BWIDVBCVBVCVDVEVGVFVHXBWIVIVJYDYAYMYDXSYKXTYLXRYCXGHQXRYCXGTOVKVLVMVNVEVO
      VPYAXJECFXRWIIXSXHXTXIXRWIXGHQXRWIXGTOVQVSVRWLWNCBFWIBIWJWGWKWHWIBAHQWIBA
      TOVTWAWEWHWGKWFABFWBWCWD $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Pigeonhole Principle.  A natural number is not equinumerous to a proper
       subset of itself.  Theorem (Pigeonhole Principle) of [Enderton] p. 134.
       The theorem is so-called because you can't put _n_ + 1 pigeons into _n_
       holes (if each hole holds only one pigeon).  The proof consists of
       lemmas ~ phplem1 through ~ phplem4 , ~ nneneq , and this final piece of
       the proof.  (Contributed by NM, 29-May-1998.) $)
    php $p |- ( ( A e. _om /\ B C. A ) -> -. A ~~ B ) $=
      ( vx vy com wcel wpss cen wbr wn wi wa cv wceq c0 wss wne cdom cvv imp wb
      csuc wrex 0ss sspsstr mpan df-ne bitri sylib nn0suc orcanai sylan2 pssnel
      0pss wex csn cdif pssss ssdif cin disjsn disj3 bitr3i sseq1 sylbi syl5ibr
      sucex difss ssexi ssdomg ax-mp syl56 phplem3 ensymd domentr exp43 exlimiv
      vex syl2an com4r mpcom endomtr sssucid mp2 sbth sylancl expcom word nnord
      peano2b sucid nordeq nneneq sylanb anidms mpbird nsyli com12 psseq2 breq1
      necon3bbid syli notbid imbi12d syl5ibrcom rexlimiv syl ex pm2.43d ) AEFZB
      AGZABHIZJZXJXKXMXJXKXKXMKZXJXKLACMZUBZNZCEUCZXNXKXJAONZJZXRXKOAGZXTOBPXKY
      ABUDOBAUEUFYAAOQXTAUNAOUGUHUIXJXSXRCAUJUKULXQXNCEXOEFZXNXQBXPGZXPBHIZJZKY
      CYBYEYBYCBXORIZYEDMZXPFZYGBFJZLZDUOYCYBYFKZDBXPUMYJYCYKKZDYHYIYLYIYCYBYHY
      FYIYCYBYHYFYIYCLBXPYGUPZUQZRIZYNXOHIYFYBYHLZYIYCYOYCBXPPZYIBYNPZYOBXPURYQ
      YRYIBYMUQZYNPZBXPYMUSYIBYSNZYRYTUAYIBYMUTONUUABYGVABYMVBVCBYSYNVDVEVFYNSF
      YRYOKYNXPXOCVRZVGZXPYMVHVIBYNSVJVKVLTYPXOYNXOYGUUBDVRVMVNBYNXOVOVSVPVTTVQ
      WAYFYDXPXOHIZYBYDYFUUDYDYFLXPXORIXOXPRIZUUDXPBXOWBXPSFXOXPPUUEUUCXOWCXOXP
      SVJWDXPXOWEWFWGYBUUDJXPXOQZYBXPWHZXOXPFUUFYBXPEFZUUGXOWJZXPWIVEXOUUBWKXPX
      OWLWFYBUUDXPXOYBUUDXPXONUAZYBUUHYBUUJUUIXPXOWMWNWOXAWPWQXBWRXQXKYCXMYEAXP
      BWSXQXLYDAXPBHWTXCXDXEXFXGXHXIT $.

    $( Corollary of Pigeonhole Principle.  (Contributed by NM, 31-May-1998.) $)
    php2 $p |- ( ( A e. _om /\ B C. A ) -> B ~< A ) $=
      ( vx com wcel wpss csdm wbr cv wa wceq eleq1 psseq2 anbi12d breq2 imbi12d
      wi cdom cen cvv wss vex pssss ssdomg mpsyl adantl php ensym nsyl sylanbrc
      wn brsdom vtoclg anabsi5 ) ADEZBAFZBAGHZCIZDEZBURFZJZBURGHZQUOUPJZUQQCADU
      RAKZVAVCVBUQVDUSUOUTUPURADLURABMNURABGOPVABURRHZBURSHZUKVBUTVEUSURTEUTBUR
      UAVECUBBURUCBURTUDUEUFVAURBSHVFURBUGBURUHUIBURULUJUMUN $.
  $}

  ${
    $d f x y A $.  $d f x y B $.
    $( Corollary of Pigeonhole Principle.  If ` A ` is finite and ` B ` is a
       proper subset of ` A ` , the ` B ` is strictly less numerous than
       ` A ` .  Stronger version of Corollary 6C of [Enderton] p. 135.
       (Contributed by NM, 22-Aug-2008.) $)
    php3 $p |- ( ( A e. Fin /\ B C. A ) -> B ~< A ) $=
      ( vx vf vy wcel wpss wbr cv cen com wi wa wn wss imp wf1o wex cima syl c0
      cfn csdm wrex isfi cdom relen brrelexi pssss ssdomg syl2an adantll imass2
      cvv bren adantl cdif wceq pssnel eldif cfv wfn f1ofn difss fnfvima 3expia
      sylancl ccnv wfun wfo dff1o3 simprbi imadif eleq2d sylibd syl5bir exlimdv
      n0i syl6 sylan2 ssdif0 sylnibr dfpss3 sylanbrc wb cdm crn imadmrn imaeq2d
      f1odm f1ofo forn 3eqtr3a psseq2d adantr mpbid php cres f1of1 f1ores resex
      wf1 f1oeq1 spcev sylibr entr expcom mtod exp32 syl5bi imp31 ensym syl6com
      vex ex ad2antlr brsdom exp31 rexlimiv sylbi ) AUBFZBAGZBAUCHZYAACIZJHZCKU
      DYBYCLZCAUEYEYFCKYDKFZYEYBYCYGYEMYBMZBAUFHZBAJHZNYCYEYBYIYGYEAUNFZBAOZYIY
      BAYDJUGUHBAUIZYKYLYIBAUNUJPUKULYHYJYDBJHZYGYEYBYNNZYEAYDDIZQZDRYGYBYOLZAY
      DDUOYGYQYRDYGYQYBYOYGYQYBMZMYNYDYPBSZJHZYSYGYTYDGZUUANYSYTYPASZGZUUBYSYTU
      UCOZUUCYTOZNUUDYBUUEYQYBYLUUEYMBAYPUMTUPYSUUCYTUQZUAURZUUFYBYQEIZAFUUIBFN
      MZERZUUHNZEBAUSYQUUKUULYQUUJUULEUUJUUIABUQZFZYQUULUUIABUTYQUUNUUIYPVAZUUG
      FZUULYQUUNUUOYPUUMSZFZUUPYQYPAVBZUUMAOZUUNUURLAYDYPVCABVDUUSUUTUUNUURAUUM
      YPUUIVEVFVGYQUUQUUGUUOYQYPVHVIZUUQUUGURYQAYDYPVJZUVAAYDYPVKVLABYPVMTVNVOU
      UGUUOVRVSVPVQPVTUUCYTWAWBYTUUCWCWDYQUUDUUBWEYBYQUUCYDYTYQYPYPWFZSYPWGZUUC
      YDYPWHYQUVCAYPAYDYPWJWIYQUVBUVDYDURAYDYPWKAYDYPWLTWMWNWOWPYDYTWQVTYSYNUUA
      LZYGYSBYTJHZUVEYSBYTYPBWRZQZUVFYQAYDYPXBYLUVHYBAYDYPWSYMAYDBYPWTUKUVHBYTU
      UIQZERUVFUVIUVHEUVGYPBDXNXABYTUUIUVGXCXDBYTEUOXETYNUVFUUAYDBYTXFXGTUPXHXI
      VQXJXKYEYJYNLYGYBYJYEBYDJHZYNYJYEUVJBAYDXFXOBYDXLXMXPXHBAXQWDXRXSXTP $.
  $}

  $( Corollary of the Pigeonhole Principle ~ php : a natural number is strictly
     dominated by its successor.  (Contributed by NM, 26-Jul-2004.) $)
  php4 $p |- ( A e. _om -> A ~< suc A ) $=
    ( com wcel csuc wpss csdm wbr sucidg word wa wb nnord ordsuc ancli ordelpss
    biimpi 3syl mpbid peano2b php2 sylanb mpdan ) ABCZAADZEZAUDFGZUCAUDCZUEABHU
    CAIZUHUDIZJUGUEKALUHUIUHUIAMPNAUDOQRUCUDBCUEUFASUDATUAUB $.

  $( Corollary of the Pigeonhole Principle ~ php : a natural number is not
     equinumerous to its successor.  Corollary 10.21(1) of [TakeutiZaring]
     p. 90.  (Contributed by NM, 26-Jul-2004.) $)
  php5 $p |- ( A e. _om -> -. A ~~ suc A ) $=
    ( com wcel csuc csdm wbr cen wn php4 sdomnen syl ) ABCAADZEFALGFHAIALJK $.

  $( A singleton ` { A } ` is never equinumerous with the ordinal number 2.
     This holds for proper singletons ( ` A e. _V ` ) as well as for singletons
     being the empty set ( ` A e/ _V ` ).  (Contributed by AV, 6-Aug-2019.) $)
  snnen2o $p |- -. { A } ~~ 2o $=
    ( cvv wcel csn c2o cen wbr wn c1o csuc com 1onn php5 ax-mp ensn1g wi ensymb
    df-2o c0 wceq eqcomi breq2i entr ex sylbi con3rr3 sylnbi mpsyl 2on0 nemtbir
    en0 bitri snprc biimpi breq1d mtbiri pm2.61i ) ABCZADZEFGZHZIIJZFGZHZURUSIF
    GZVAIKCVDLIMNABOVCIEFGZVEVAPVBEIFEVBRUAUBVEUTVFVEIUSFGZUTVFPUSIQVGUTVFIUSEU
    CUDUEUFUGUHURHZUTSEFGZVIESUIVIESFGESTSEQEUKULUJVHUSSEFVHUSSTAUMUNUOUPUQ $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finite sets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( An ordinal number equinumerous to a natural number is equal to it.
     Proposition 10.22 of [TakeutiZaring] p. 90 and its converse.  (Contributed
     by NM, 26-Jul-2004.) $)
  onomeneq $p |- ( ( A e. On /\ B e. _om ) -> ( A ~~ B <-> A = B ) ) $=
    ( con0 wcel com wa cen wbr wceq wss adantl cdom ssdomg sylan2 ancoms adantr
    wn wb wi word csuc php5 ad2antlr enen1 mtbird peano2 sssucid mpisyl endomtr
    a1d adantll ssel com12 eloni ordelsuc sylibd syld jcad sbth syl6 mtod ordom
    ordtri1 sylancr con2bid ad2antrr mpbird simplr nneneq biimpa sylancom eqeng
    jca ex impbid ) ACDZBEDZFZABGHZABIZVRVSVTVRVSAEDZVQFZVTVRVSFZWAVQWCWAEAJZQZ
    WCWDABUAZGHZWCWGBWFGHZVQWHQVPVSBUBUCVSWGWHRVRABWFUDKUEWCWDAWFLHZWFALHZFWGWC
    WDWIWJVQVSWDWISVPVQVSFWIWDVSVQWIVQVSBWFLHZWIVQWFEDBWFJWKBUFBUGBWFEMUHABWFUI
    NOUJUKVRWDWJSZVSVQVPWLVQVPFZWDWFAJZWJWMWDBADZWNVQWDWOSVPWDVQWOEABULUMPVPVQA
    TZWOWNRAUNZBAEUONUPVPWNWJSVQWFACMKUQOPURAWFUSUTVAVPWAWERVQVSVPWDWAVPETWPWDW
    AQRVBWQEAVCVDVEVFVGVPVQVSVHVMWBVSVTABVIVJVKVNVPVTVSSVQABCVLPVO $.

  ${
    $d x A $.
    $( An ordinal number is finite iff it is a natural number.  Proposition
       10.32 of [TakeutiZaring] p. 92.  (Contributed by NM, 26-Jul-2004.) $)
    onfin $p |- ( A e. On -> ( A e. Fin <-> A e. _om ) ) $=
      ( vx cfn wcel cv cen wbr wrex con0 isfi wa wceq onomeneq wi eleq1a adantl
      com sylbid rexlimdva enrefg breq2 rspcev mpdan impbid1 syl5bb ) ACDABEZFG
      ZBQHZAIDZAQDZBAJUIUHUJUIUGUJBQUIUFQDZKUGAUFLZUJAUFMUKULUJNUIUFQAOPRSUJAAF
      GZUHAQTUGUMBAQUFAAFUAUBUCUDUE $.
  $}

  $( A set is a natural number iff it is a finite ordinal.  (Contributed by
     Mario Carneiro, 22-Jan-2013.) $)
  onfin2 $p |- _om = ( On i^i Fin ) $=
    ( vx com con0 cfn cin cv wcel nnon onfin biimprcd jcai biimpa impbii bitr4i
    wa elin eqriv ) ABCDEZAFZBGZSCGZSDGZOZSRGTUCTUAUBSHUAUBTSIZJKUAUBTUDLMSCDPN
    Q $.

  $( Natural numbers are finite sets.  (Contributed by Stefan O'Rear,
     21-Mar-2015.) $)
  nnfi $p |- ( A e. _om -> A e. Fin ) $=
    ( com cfn con0 cin onfin2 inss2 eqsstri sseli ) BCABDCECFDCGHI $.

  $( Cardinal ordering agrees with natural number ordering.  Example 3 of
     [Enderton] p. 146.  (Contributed by NM, 17-Jun-1998.) $)
  nndomo $p |- ( ( A e. _om /\ B e. _om ) -> ( A ~<_ B <-> A C_ B ) ) $=
    ( com wcel wa cdom wbr wpss wn wi csdm php2 ex domnsym nsyli adantr word wb
    wss nnord ordtri1 ordelpss ancoms notbid bitrd syl2an sylibrd ssdomg adantl
    impbid ) ACDZBCDZEZABFGZABSZUMUNBAHZIZUOUKUNUQJULUKUPBAKGZUNUKUPURABLMABNOP
    UKAQZBQZUOUQRULATBTUSUTEZUOBADZIUQABUAVAVBUPUTUSVBUPRBAUBUCUDUEUFUGULUOUNJU
    KABCUHUIUJ $.

  $( Cardinal ordering agrees with natural number ordering.  (Contributed by
     NM, 17-Jun-1998.) $)
  nnsdomo $p |- ( ( A e. _om /\ B e. _om ) -> ( A ~< B <-> A C. B ) ) $=
    ( com wcel wa cdom wbr cen wn wceq csdm nndomo nneneq notbid anbi12d brsdom
    wss wpss dfpss2 3bitr4g ) ACDBCDEZABFGZABHGZIZEABQZABJZIZEABKGABRUAUBUEUDUG
    ABLUAUCUFABMNOABPABST $.

  ${
    $d f w A $.  $d f w B $.
    $( Strict dominance of a set over another set implies dominance over its
       successor.  (Contributed by Mario Carneiro, 12-Jan-2013.)  (Proof
       shortened by Mario Carneiro, 27-Apr-2015.) $)
    sucdom2 $p |- ( A ~< B -> suc A ~<_ B ) $=
      ( vf vw csdm wbr cv wf1 cdom wex syl wa cun wceq cvv adantr a1i wss sylib
      wcel csuc sdomdom brdomi csn crn cdif cin c0 relsdom brrelexi vex f1f1orn
      rnex adantl f1of1 f1dom2g syl3anc wn cen sdomnen ssdif0 simplr wfn wf f1f
      wf1o df-f simprd simpr eqssd dff1o5 sylanbrc f1oen3g sylancr syl5bir mtod
      neq0 snssi en2sn sylancl brrelex2i difexg ssdomg 3syl endomtr syl6an syl5
      ex wi exlimdv mpd disjdif syl21anc df-suc undif2 ssequn1 syl5req exlimddv
      undom 3brtr4d ) ABEFZABCGZHZAUAZBIFCXAABIFXCCJABUBABCUCKXAXCLZAAUDZMZXBUE
      ZBXHUFZMZXDBIXEAXHIFZXFXIIFZXHXIUGUHNZXGXJIFXEAOTZXHOTZAXHXBHZXKXAXNXCABE
      UIUJPZXOXEXBCUKZUMQXEAXHXBVFZXPXCXSXAABXBULUNAXHXBUOKAXHXBOOUPUQXEDGZXITZ
      DJZXLXEXIUHNZURYBXEYCABUSFZXAYDURXCABUTPYCBXHRZXEYDBXHVAXEYEYDXEYELZXBOTA
      BXBVFZYDXRYFXCXHBNYGXAXCYEVBZYFXHBYFXCXHBRZYHXCXBAVCZYIXCABXBVDYJYILABXBV
      EABXBVGSVHZKXEYEVIVJABXBVKVLABXBOVMVNWHVOVPDXIVQSXEYAXLDYAXTUDZXIRZXEXLXT
      XIVRXEXFYLUSFZYMYLXIIFZXLXEXNXTOTYNXQDUKAXTOOVSVTXEBOTZXIOTYMYOWIXAYPXCAB
      EUIWAPBXHOWBYLXIOWCWDXFYLXIWEWFWGWJWKXMXEXHBWLQAXHXFXIWSWMXDXGNXEAWNQXEXJ
      XHBMZBXHBWOXEYIYQBNXCYIXAYKUNXHBWPSWQWTWR $.
  $}

  $( Strict dominance of a set over a natural number is the same as dominance
     over its successor.  (Contributed by Mario Carneiro, 12-Jan-2013.) $)
  sucdom $p |- ( A e. _om -> ( A ~< B <-> suc A ~<_ B ) ) $=
    ( com wcel csdm wbr csuc cdom sucdom2 wi php4 sdomdomtr ex syl impbid2 ) AC
    DZABEFZAGZBHFZABIPAREFZSQJAKTSQARBLMNO $.

  $( Strict dominance over zero is the same as dominance over one.
     (Contributed by NM, 28-Sep-2004.) $)
  0sdom1dom $p |- ( (/) ~< A <-> 1o ~<_ A ) $=
    ( c0 csdm wbr csuc cdom c1o wcel wb peano1 sucdom ax-mp df-1o breq1i bitr4i
    com ) BACDZBEZAFDZGAFDBPHQSIJBAKLGRAFMNO $.

  $( Ordinal 1 is strictly dominated by ordinal 2.  (Contributed by NM,
     4-Apr-2007.) $)
  1sdom2 $p |- 1o ~< 2o $=
    ( c1o csuc c2o csdm com wcel wbr 1onn php4 ax-mp df-2o breqtrri ) AABZCDAEF
    AMDGHAIJKL $.

  $( A set has less than one member iff it is empty.  (Contributed by Stefan
     O'Rear, 28-Oct-2014.) $)
  sdom1 $p |- ( A ~< 1o <-> A = (/) ) $=
    ( c1o csdm wbr c0 wceq wn cdom domnsym con2i 0sdom1dom sylnibr wcel relsdom
    cvv wb brrelexi 0sdomg necon2bbid syl mpbird wne 1n0 con0 elexi 0sdom mpbir
    1on breq1 mpbiri impbii ) ABCDZAEFZULUMEACDZGZULBAHDZUNUPULBAIJAKLULAOMZUMU
    OPABCNQUQUNAEAORSTUAUMULEBCDZURBEUBUCBBUDUHUEUFUGAEBCUIUJUK $.

  $( Two ways to express "at most one".  (Contributed by Stefan O'Rear,
     28-Oct-2014.) $)
  modom $p |- ( E* x ph <-> { x | ph } ~<_ 1o ) $=
    ( wmo wex weu wi wn wo cab c1o cdom wbr df-mo imor csdm c0 wceq abn0 bitr4i
    cen necon1bbii sdom1 euen1 orbi12i brdom2 3bitri ) ABCABDZABEZFUGGZUHHZABIZ
    JKLZABMUGUHNUJUKJOLZUKJTLZHULUIUMUHUNUIUKPQUMUGUKPABRUAUKUBSABUCUDUKJUESUF
    $.

  ${
    $d x A $.
    $( Two ways to express "at most one".  (Contributed by Mario Carneiro,
       24-Dec-2016.) $)
    modom2 $p |- ( E* x x e. A <-> A ~<_ 1o ) $=
      ( cv wcel wmo cab c1o cdom wbr modom abid2 breq1i bitri ) ACBDZAENAFZGHIB
      GHINAJOBGHABKLM $.
  $}

  ${
    $d a f x y A $.
    $( A set that strictly dominates ordinal 1 has at least 2 different
       members.  (Closely related to ~ 2dom .)  (Contributed by Mario Carneiro,
       12-Jan-2013.) $)
    1sdom $p |- ( A e. V -> ( 1o ~< A <-> E. x e. A E. y e. A -. x = y ) ) $=
      ( va vf c1o cv csdm wbr wrex cdom c2o c0 cpr wf1 cop vex ccnv csn wn csuc
      weq breq2 rexeq rexeqbi1dv com wcel wb 1onn sucdom ax-mp df-2o 2dom df2o3
      breq1i wel wa wex wss wne wfun 0ex elexi funpr df-ne 1n0 necomi fpr df-f1
      mpbiran cun cnvsn uneq12i df-pr cnveqi cnvun eqtri 3eqtr4i funeqi 3imtr3i
      wf bitr2i prssi f1ss syl2an f1eq1 spcev syl brdom sylibr expcom rexlimivv
      prex syl5eqbr impbii 3bitr2i vtoclbg ) GEHZIJZABUCUAZBWSKZAWSKZGCIJXABCKZ
      ACKECDWSCGIUDXBXDAWSCXABWSCUEUFWTGUBZWSLJZMWSLJZXCGUGUHWTXFUIUJGWSUKULMXE
      WSLUMUPXGXCABWSUNXCMNGOZWSLUOXAXHWSLJZABWSWSXAAEUQBEUQURZXIXAXJURZXHWSFHZ
      PZFUSZXIXKXHWSNAHZQZGBHZQZOZPZXNXAXHXOXQOZXSPZYAWSUTXTXJXOXQVAXONQZXQGQZO
      ZVBZXAYBXOXQNGARZBRZVCGUGUJVDZVEXOXQVFYBXSSZVBZYFYBXHYAXSWBZYKNGVAYLGNVGV
      HNGXOXQVCYIYGYHVIULXHYAXSVJVKYJYEXPTZSZXRTZSZVLZYCTZYDTZVLYJYEYNYRYPYSNXO
      VCYGVMGXQYIYHVMVNYJYMYOVLZSYQXSYTXPXRVOVPYMYOVQVRYCYDVOVSVTWCWAXOXQWSWDXH
      YAWSXSWEWFXMXTFXSXPXRWNXHWSXLXSWGWHWIXHWSFERWJWKWLWMWOWPWQWR $.
  $}

  ${
    $d F w z $.  $d a b m n s t w x z $.
    unxpdomlem1.1 $e |- F = ( x e. ( a u. b ) |-> G ) $.
    unxpdomlem1.2 $e |- G = if ( x e. a , <. x , if ( x = m , t , s ) >. ,
                                          <. if ( x = t , n , m ) , x >. ) $.
    $( Lemma for ~ unxpdom .  (Trivial substitution proof.)  (Contributed by
       Mario Carneiro, 13-Jan-2013.) $)
    unxpdomlem1 $p |- ( z e. ( a u. b ) -> ( F ` z ) =
       if ( z e. a , <. z , if ( z = m , t , s ) >. ,
                     <. if ( z = t , n , m ) , z >. ) ) $=
      ( cv wel weq cif cop equequ1 ifbid eqtrd elequ1 opeq1 opeq2d opeq1d opeq2
      cun ifbieq12d syl5eq opex ifex fvmpt ) ABMZGBINZULBDOZCMZHMZPZQZBCOZEMZDM
      ZPZULQZPZIMJMUFFABOZGAINZAMZADOZUOUPPZQZACOZUTVAPZVGQZPVDLVEVFUMVJVMURVCA
      BIUAVEVJULVIQURVGULVIUBVEVIUQULVEVHUNUOUPABDRSUCTVEVMVBVGQVCVEVLVBVGVEVKU
      SUTVAABCRSUDVGULVBUETUGUHKUMURVCULUQUIVBULUIUJUK $.

    ${
      unxpdomlem2.1 $e |- ( ph -> w e. ( a u. b ) ) $.
      unxpdomlem2.2 $e |- ( ph -> -. m = n ) $.
      unxpdomlem2.3 $e |- ( ph -> -. s = t ) $.
      $( Lemma for ~ unxpdom .  (Contributed by Mario Carneiro,
         13-Jan-2013.) $)
      unxpdomlem2 $p |- ( ( ph /\ ( z e. a /\ -. w e. a ) ) ->
        -. ( F ` z ) = ( F ` w ) ) $=
        ( cv wceq weq wel wn cfv adantr cif cop wcel elun1 ad2antrl unxpdomlem1
        wa cun syl iftrue eqtrd iffalse ad2antll eqeq12d biimpa ifex opth sylib
        vex simprd eqeq1d syl5ib simpld syl5ibr syld ad2antrr notbid syl5ibrcom
        equequ1 pm2.65d iffalsed mt3d 3eqtr3d mtand ) ACKUAZDKUAZUBZUKZUKZCRZHU
        CZDRZHUCZSZJETZAWIUBWBQUDWCWHUKZCFTZERZJRZUEZWFWMWLWJWDDETZGRZFRZUEZSZW
        NWFSZWJWDWNUFZWRWFUFZSZWSWTUKWCWHXCWCWEXAWGXBWCWEVSXACETWPWQUEWDUFZUEZX
        AWCWDKRZLRZULZUGZWEXESVSXIAWAWDXFXGUHUIBCEFGHIJKLMNUJUMVSXEXASAWAVSXAXD
        UNUIUOWCWGVTWFDFTWLWMUEUFZXBUEZXBWCWFXHUGZWGXKSAXLWBOUDBDEFGHIJKLMNUJUM
        WAXKXBSAVSVTXJXBUPUQUOURUSWDWNWRWFCVCWKWLWMEVCJVCUTVAVBZVDZWJWKWLWMWJWK
        CGTZWJWKWOXOWKWNWLSWJWOWKWLWMUNWJWNWFWLXNVEVFWOXOWJWRWPSWOWPWQUNWJWDWRW
        PWJWSWTXMVGZVEVHVIWJXOUBWKFGTZUBZAXRWBWHPVJWKXOXQCFGVMVKVLVNZVOWJWOWKXS
        WOUBWKWJWRWQSWOWPWQUPWJWDWRWQXPVEVHVPVQVR $.
    $}

    $( Lemma for ~ unxpdom .  (Contributed by Mario Carneiro, 13-Jan-2013.)
       (Revised by Mario Carneiro, 16-Nov-2014.) $)
    unxpdomlem3 $p |- ( ( 1o ~< a /\ 1o ~< b )
                        -> ( a u. b ) ~<_ ( a X. b ) ) $=
      ( vz vw cv weq wrex wcel wa wceq cif c1o csdm wbr wn cun cxp cdom cvv vex
      wb 1sdom ax-mp reeanv wel w3a wf1 wf cfv wi cop simpr simp2r simp1r ifcld
      wral ad2antrr opelxpi syl2anc simp2l simp1l wo elun sylib ifclda syl5eqel
      orcanai fmptd unxpdomlem1 ad2antrl iftrue adantr sylan9eq ad2antll adantl
      eqeq12d ifex opth1 syl6bi simprr simpll simplr unxpdomlem2 pm2.21d simprl
      eqcom ancom2s iffalse opth simprbi 4casesdan ralrimivva 3ad2ant3 sylanbrc
      syl5bi dff13 unex f1dom2g mp3an12 syl 3expia rexlimdvva syl5bir rexlimivv
      xpex sylbir syl2anb ) UAHNZUBUCZCDOUDZDXQPZCXQPZGBOUDZBINZPZGYCPZXQYCUEZX
      QYCUFZUGUCZUAYCUBUCZXQUHQXRYAUJHUIZCDXQUHUKULYCUHQYIYEUJIUIZGBYCUHUKULYAY
      ERXTYDRZGYCPCXQPYHXTYDCGXQYCUMYLYHCGXQYCYLXSYBRZBYCPDXQPCHUNZGIUNZRZYHXSY
      BDBXQYCUMYPYMYHDBXQYCYPDHUNZBIUNZRZYMYHYPYSYMUOZYFYGEUPZYHYTYFYGEUQLNZEUR
      ZMNZEURZSZLMOZUSZMYFVELYFVEZUUAYTAYFFYGEYTANZYFQZRZFAHUNZUUJACOZBNZGNZTZU
      TZABOZDNZCNZTZUUJUTZTYGKUULUUMUURUVCYGUULUUMRUUMUUQYCQZUURYGQUULUUMVAYTUV
      DUUKUUMYTUUNUUOUUPYCYPYQYRYMVBYNYOYSYMVCVDVFUUJUUQXQYCVGVHUULUUMUDZRUVBXQ
      QZAIUNZUVCYGQYTUVFUUKUVEYTUUSUUTUVAXQYPYQYRYMVIYNYOYSYMVJVDVFUULUUMUVGUUL
      UUKUUMUVGVKYTUUKVAUUJXQYCVLVMVPUVBUUJXQYCVGVHVNVOJVQYMYPUUIYSYMUUHLMYFYFY
      MUUBYFQZUUDYFQZRZRZLHUNZMHUNZUUHUVKUVLUVMRZRZUUFUUBLCOZUUOUUPTZUTZUUDMCOU
      UOUUPTZUTZSUUGUVOUUCUVRUUEUVTUVKUVNUUCUVLUVRLBOZUUTUVATZUUBUTZTZUVRUVHUUC
      UWDSYMUVIALBCDEFGHIJKVRVSZUVLUWDUVRSUVMUVLUVRUWCVTWAWBUVKUVNUUEUVMUVTMBOU
      UTUVATZUUDUTZTZUVTUVIUUEUWHSYMUVHAMBCDEFGHIJKVRWCZUVMUWHUVTSUVLUVMUVTUWGV
      TWDWBWEUUBUVQUUDUVSLUIZUVPUUOUUPBUIGUIWFWGWHUVKUVLUVMUDZRRUUFUUGUVKALMBCD
      EFGHIJKYMUVHUVIWIXSYBUVJWJZXSYBUVJWKZWLWMUUFUUEUUCSZUVKUVLUDZUVMRRZUUGUUC
      UUEWOUWPUWNUUGUVKUVMUWOUWNUDUVKAMLBCDEFGHIJKYMUVHUVIWNUWLUWMWLWPWMXDUVKUW
      OUWKRZRZUUFUWCUWGSZUUGUWRUUCUWCUUEUWGUVKUWQUUCUWDUWCUWEUWOUWDUWCSUWKUVLUV
      RUWCWQWAWBUVKUWQUUEUWHUWGUWIUWKUWHUWGSUWOUVMUVTUWGWQWDWBWEUWSUWBUWFSUUGUW
      BUUBUWFUUDUWAUUTUVADUICUIWFUWJWRWSWHWTXAXBLMYFYGEXEXCYFUHQYGUHQUUAYHXQYCY
      JYKXFXQYCYJYKXNYFYGEUHUHXGXHXIXJXKXLXMXOXP $.
  $}

  ${
    $d A x y $.  $d B y $.  $d t u v w x y z $.
    $( Cartesian product dominates union for sets with cardinality greater than
       1.  Proposition 10.36 of [TakeutiZaring] p. 93.  (Contributed by Mario
       Carneiro, 13-Jan-2013.)  (Proof shortened by Mario Carneiro,
       27-Apr-2015.) $)
    unxpdom $p |- ( ( 1o ~< A /\ 1o ~< B ) -> ( A u. B ) ~<_ ( A X. B ) ) $=
      ( vx vy vz vw vv vu cvv wcel wa c1o csdm wbr cun cxp cdom cv wi cif breq2
      vt relsdom brrelex2i anim12i wceq anbi1d uneq1 xpeq1 breq12d anbi2d uneq2
      imbi12d xpeq2 weq cop cmpt eqid unxpdomlem3 vtocl2g mpcom ) AIJZBIJZKLAMN
      ZLBMNZKZABOZABPZQNZVDVBVEVCLAMUCUDLBMUCUDUELCRZMNZLDRZMNZKZVJVLOZVJVLPZQN
      ZSVDVMKZAVLOZAVLPZQNZSVFVISCDABIIVJAUFZVNVRVQWAWBVKVDVMVJALMUAUGWBVOVSVPV
      TQVJAVLUHVJAVLUIUJUMVLBUFZVRVFWAVIWCVMVEVDVLBLMUAUKWCVSVGVTVHQVLBAULVLBAU
      NUJUMEFGHEVOERZVJJWDEGUOFRUBRTUPEFUOHRGRTWDUPTZUQZWEUBCDWFURWEURUSUTVA $.
  $}

  $( Corollary of ~ unxpdom .  (Contributed by NM, 16-Sep-2004.) $)
  unxpdom2 $p |- ( ( 1o ~< A /\ B ~<_ A ) -> ( A u. B ) ~<_ ( A X. A ) ) $=
    ( c1o csdm wbr cdom cun csn cxp c0 cen cvv wcel com xpsneng sylancl domentr
    ensymd syl2anc sdomentr wa cin wceq relsdom brrelex2i adantr 1onn endom syl
    simpr 0ex wne 1n0 xpsndisj mp1i undom syl21anc syldan unxpdom xpen domtr )
    CADEZBAFEZUAZABGZACHIZAJHIZGZFEZVHAAIZFEZVEVJFEVDAVFFEZBVGFEZVFVGUBJUCZVIVD
    AVFKEZVLVDVFAVDALMZCNMVFAKEZVBVPVCCADUDUEUFZUGACLNOPZRZAVFUHUIVDVCAVGKEZVMV
    BVCUJVDVGAVDVPJLMVGAKEZVRUKAJLLOPZRZBAVGQSCJULVNVDUMACAJUNUOAVFBVGUPUQVDVHV
    FVGIZFEZWEVJKEZVKVDCVFDEZCVGDEZWFVBVCVOWHVTCAVFTURVBVCWAWIWDCAVGTURVFVGUSSV
    DVQWBWGVSWCVFAVGAUTSVHWEVJQSVEVHVJVAS $.

  $( Cartesian product dominates successor for set with cardinality greater
     than 1.  Proposition 10.38 of [TakeutiZaring] p. 93 (but generalized to
     arbitrary sets, not just ordinals).  (Contributed by NM, 3-Sep-2004.)
     (Proof shortened by Mario Carneiro, 27-Apr-2015.) $)
  sucxpdom $p |- ( 1o ~< A -> suc A ~<_ ( A X. A ) ) $=
    ( c1o csdm wbr csn cun cxp cdom c0 cen cvv wcel con0 xpsneng sylancl ensymd
    syl sdomentr syl2anc mpdan csuc df-suc cin wceq relsdom brrelex2i 1on endom
    ensn1g ensdomtr mpancom 0ex sdomdom wne 1n0 xpsndisj undom syl21anc unxpdom
    mp1i domtr xpen domentr syl5eqbr ) BACDZAUAAAEZFZAAGZHAUBVEVGABEGZAIEGZGZHD
    ZVKVHJDZVGVHHDVEVGVIVJFZHDZVNVKHDZVLVEAVIHDZVFVJHDZVIVJUCIUDZVOVEAVIJDZVQVE
    VIAVEAKLZBMLVIAJDZBACUEUFZUGABKMNOZPZAVIUHQVEVFVJCDZVRVEVFACDZAVJJDZWFVFBJD
    ZVEWGVEWAWIWCAKUIQVFBAUJUKVEVJAVEWAIKLVJAJDZWCULAIKKNOZPZVFAVJRSVFVJUMQBIUN
    VSVEUOABAIUPUTAVIVFVJUQURVEBVICDZBVJCDZVPVEVTWMWEBAVIRTVEWHWNWLBAVJRTVIVJUS
    SVGVNVKVASVEWBWJVMWDWKVIAVJAVBSVGVKVHVCSVD $.

  $( A set equinumerous to a proper subset of itself is infinite.  Corollary
     6D(a) of [Enderton] p. 136.  (Contributed by NM, 2-Jun-1998.) $)
  pssinf $p |- ( ( A C. B /\ A ~~ B ) -> -. B e. Fin ) $=
    ( wpss cen wbr cfn wcel wn csdm php3 ex sdomnen syl6com con2d imp ) ABCZABD
    EZBFGZHPRQRPABIEZQHRPSBAJKABLMNO $.

  $( A finite set is equal to its subset if they are equinumerous.
     (Contributed by FL, 11-Aug-2008.) $)
  fisseneq $p |- ( ( B e. Fin /\ A C_ B /\ A ~~ B ) -> A = B ) $=
    ( cen wbr wss cfn wcel wceq wa wn wpss df-pss pssinf expcom syl5bir expdimp
    wne necon4ad 3impia 3com13 ) ABCDZABEZBFGZABHZUAUBUCUDUAUBIUCABUAUBABQZUCJZ
    UBUEIABKZUAUFABLUGUAUFABMNOPRST $.

  $( The set of natural numbers is infinite.  Corollary 6D(b) of [Enderton]
     p. 136.  (Contributed by NM, 2-Jun-1998.) $)
  ominf $p |- -. _om e. Fin $=
    ( vx com cfn wcel wn wi cv cen wbr wrex isfi wpss wss wne wa wb nnord ordom
    word ordelssne ibi df-pss sylibr ensym pssinf syl2an rexlimiva sylbi pm2.01
    sylancl ax-mp ) BCDZULEZFUMULBAGZHIZABJUMABKUOUMABUNBDZUNBLZUNBHIUMUOUPUNBM
    UNBNOZUQUPURUPUNSBSUPURPUNQRUNBTUJUAUNBUBUCBUNUDUNBUEUFUGUHULUIUK $.

  ${
    $d A f m x y z $.  $d A m n x y $.  $d f g m x y z $.
    $( Any set that is not finite is literally infinite, in the sense that it
       contains subsets of arbitrarily large finite cardinality.  (It cannot be
       proven that the set has _countably infinite_ subsets unless AC is
       invoked.)  The proof does not require the Axiom of Infinity.
       (Contributed by Mario Carneiro, 15-Jan-2013.) $)
    isinf $p |- ( -. A e. Fin -> A. n e. _om E. x ( x C_ A /\ x ~~ n ) ) $=
      ( vm vy vf vz vg wcel cv wss cen wbr wa wex com c0 wceq wi wf1o cfn breq2
      wn anbi2d exbidv wb sseq1 adantl breq1 sylan9bbr anbi12d cbvexdva 0ss 0ex
      csuc enref spcev mp2an a1i w3a cdif ssdif0 eqss wrex biimpa sylan2 sylibr
      rspe isfi expcom sylanbr ex sylan2br 3impd com12 bren neq0 csn cun eldifi
      con3d snssd unss biimpi ad2ant2r cop cin vex f1osn jctr eldifn word nnord
      disjsn orddisj syl anim12i f1oun syl2an df-suc f1oeq3 ax-mp f1oeq1 sylbir
      snex unex adantll syl2anc exlimiv sylbi com13 3imp 3expia finds2 ralrimiv
      syld com3l ) BUAIZUCZAJZBKZXTCJZLMZNZAOZCPYBPIXSYEYEYAXTQLMZNZAOZYAXTDJZL
      MZNZAOZEJZBKZYMYIUOZLMZNZEOZXSCDYBQRZYDYGAYSYCYFYAYBQXTLUBUDUEYBYIRZYDYKA
      YTYCYJYAYBYIXTLUBUDUEYBYORZYDYQAEUUAXTYMRZNYAYNYCYPUUBYAYNUFUUAXTYMBUGUHU
      UBYCYMYBLMUUAYPXTYMYBLUIYBYOYMLUBUJUKULYHXSQBKZQQLMZYHBUMQUNUPYGUUCUUDNAQ
      UNXTQRYAUUCYFUUDXTQBUGXTQQLUIUKUQURUSYLYIPIZXSYRYKUUEXSYRSZSAYAYJUUEUUFYA
      YJUUEUTZXSBXTVAZQRZUCZYRUUGUUIXRUUIUUGXRUUIYAYJUUEXRYAUUIYJUUEXRSZSZUUIYA
      BXTKZUULBXTVBYAUUMNZYJUUKUUNXTBRZYJUUKXTBVCUUEUUOYJNZXRUUEUUPNBYILMZDPVDZ
      XRUUPUUEUUQUURUUOYJUUQXTBYILUIVEUUQDPVHVFDBVIVGVJVKVLVMVJVNVOWAYAYJUUEUUJ
      YRSZYJYAUUEUUSSZYJXTYIFJZTZFOYAUUTSZXTYIFVPUVBUVCFYAUVBUUTUUJUUEYAUVBNZYR
      UUJGJZUUHIZGOUUEUVDYRSZSZGUUHVQUVFUVHGUVFUUEUVGUVDUVFUUENZYRUVDUVINXTUVEV
      RZVSZBKZUVKYOLMZYRYAUVFUVLUVBUUEUVFYAUVJBKZUVLUVFUVEBUVEBXTVTWBYAUVNNUVLX
      TUVJBWCWDVFWEUVBUVIUVMYAUVBUVINUVKYIYIVRZVSZUVAUVEYIWFZVRZVSZTZUVMUVBUVBU
      VJUVOUVRTZNXTUVJWGQRZYIUVOWGQRZNUVTUVIUVBUWAUVEYIGWHDWHWIWJUVFUWBUUEUWCUV
      FUVEXTIUCUWBUVEBXTWKXTUVEWNVGUUEYIWLUWCYIWMYIWOWPWQXTYIUVJUVOUVAUVRWRWSUV
      TUVKYOUVSTZUVMYOUVPRUWDUVTUFYIWTYOUVPUVKUVSXAXBUWDUVKYOHJZTZHOUVMUWFUWDHU
      VSUVAUVRFWHUVQXEXFUVKYOUWEUVSXCUQUVKYOHVPVGXDWPXGYQUVLUVMNEUVKXTUVJAWHUVE
      XEXFYMUVKRYNUVLYPUVMYMUVKBUGYMUVKYOLUIUKUQXHVJVLXIXJXKVJXIXJVOXLXPXMXIXQX
      NVOXO $.
  $}

  ${
    $d b c d e A $.  $d b c e V $.
    $( Lemma for ~ fineqv .  (Contributed by Mario Carneiro, 20-Jan-2013.)
       (Proof shortened by Stefan O'Rear, 3-Nov-2014.)  (Revised by Mario
       Carneiro, 17-May-2015.) $)
    fineqvlem $p |- ( ( A e. V /\ -. A e. Fin ) -> _om ~<_ ~P ~P A ) $=
      ( vb vc vd ve wcel wa cpw cvv com wbr pwexg syl cv cen crab wss wb wi cfn
      wn cdom adantr ssrab2 elpw2g mpbiri a1d wceq wex isinf r19.21bi ad2ant2lr
      selpw biimpri anim1i breq1 elrab sylibr eximi eleq2 biimpcd simprbi ensym
      adantl entr sylan syl2an ex nneneq biimpd ad2antlr 3syld exlimddv rabbidv
      breq2 impbid1 dom2d mpd ) ABGZAUAGUBZHZAIZIZJGZKWDUCLWBWCJGZWEVTWFWAABMUD
      ZWCJMNWBCDKWDEOZCOZPLZEWCQZWHDOZPLZEWCQZJWBWKWDGZWIKGZWBWOWKWCRZWJEWCUEWB
      WFWOWQSWGWKWCJUFNUGUHWBWPWLKGZHZWKWNUIZWIWLUIZSWBWSHZWTXAXBFOZWKGZWTXATFX
      BXCARZXCWIPLZHZFUJZXDFUJWAWPXHVTWRWAXHCKFACUKULUMXGXDFXGXCWCGZXFHXDXEXIXF
      XIXEFAUNUOUPWJXFEXCWCWHXCWIPUQURZUSUTNXBXDHWTXCWNGZWIWLPLZXAXDWTXKTXBWTXD
      XKWKWNXCVAVBVEXDXKXLTXBXDXKXLXDXFXCWLPLZXLXKXDXIXFXJVCXKXIXMWMXMEXCWCWHXC
      WLPUQURVCXFWIXCPLXMXLXCWIVDWIXCWLVFVGVHVIVEWSXLXATWBXDWSXLXAWIWLVJVKVLVMV
      NXAWJWMEWCWIWLWHPVPVOVQVIVRVS $.
  $}

  $( If the Axiom of Infinity is denied, then all sets are finite (which
     implies the Axiom of Choice).  (Contributed by Mario Carneiro,
     20-Jan-2013.)  (Revised by Mario Carneiro, 3-Jan-2015.) $)
  fineqv $p |- ( -. _om e. _V <-> Fin = _V ) $=
    ( va com cvv wcel wn cfn wceq wss ssv a1i cpw cdom wbr vex fineqvlem reldom
    cv mpan brrelexi syl con1i a1d ssrdv eqssd ominf eleq2 mtbii impbii ) BCDZE
    ZFCGZUJFCFCHUJFIJUJACFUJAQZFDZULCDZUMUIUMEZBULKKZLMZUIUNUOUQANULCORBUPLPSTU
    AUBUCUDUKBFDUIUEFCBUFUGUH $.

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Equinumerous sets have the same finiteness.  (Contributed by NM,
       22-Aug-2008.) $)
    enfi $p |- ( A ~~ B -> ( A e. Fin <-> B e. Fin ) ) $=
      ( vx cen wbr cv com wrex cfn wcel enen1 rexbidv isfi 3bitr4g ) ABDEZACFZD
      EZCGHBPDEZCGHAIJBIJOQRCGABPKLCAMCBMN $.

    $( A set equinumerous to a finite set is finite.  (Contributed by Mario
       Carneiro, 12-Mar-2015.) $)
    enfii $p |- ( ( B e. Fin /\ A ~~ B ) -> A e. Fin ) $=
      ( cen wbr cfn wcel enfi biimparc ) ABCDAEFBEFABGH $.

    $( A proper subset of a natural number is equinumerous to some smaller
       number.  Lemma 6F of [Enderton] p. 137.  (Contributed by NM,
       22-Jun-1998.)  (Revised by Mario Carneiro, 16-Nov-2014.) $)
    pssnn $p |- ( ( A e. _om /\ B C. A ) -> E. x e. A B ~~ x ) $=
      ( vw vz vy com wcel wpss wa cen wbr wrex wss wi wal c0 wceq imbi12d wn cv
      cvv pssss ssexg sylan ancoms psseq2 rexeq albidv weq npss0 pm2.21i ax-gen
      csuc nfv nfa1 wel elequ1 biimpcd con3d adantl sseld elsuci ord con1d syl6
      imp impancom ssrdv anim1i dfpss2 sylibr elelsuc reximi2 imim12i exp4c sps
      syld com4t csn cdif anidm ssdif word nnord orddif syl sseq2d syl5ibr syl5
      pssnel eleq2 eldifi syl6bir eleq1a sylan9r adantr pm2.61d expimpd exlimdv
      wex im2anan9r syl5bir syl6ibr psseq1 breq1 rexbidv cbvalv vex difss ssexi
      spcv sylbi sylan9 ordsucelsuc biimpd adantrd elnn cun cin wf1o snex f1osn
      ex cop f1oen3g mp2an jctr orddisj incom disjdif eqtr3i jctil unen difsnid
      syl2an eqcomd df-suc breq2 rspcev breq12d sylan2i exp4d com24 jcad df-rex
      a1i imp4b cbvrexv 3imtr4g expl eqelsuc enref sylancl 2a1d pm2.61ii alrimd
      finds spcgv com3l mpd ) BGHZCBIZJCUBHZCAUAZKLZABMZUVCUVBUVDUVCCBNUVBUVDCB
      UCCBGUDUEUFUVBUVCUVDUVGOUVDUVBUVCUVGUVBDUAZBIZUVHUVEKLZABMZOZDPZUVDUVCUVG
      OZUVHEUAZIZUVJAUVOMZOZDPUVHQIZUVJAQMZOZDPUVHFUAZIZUVJAUWBMZOZDPZUVHUWBUNZ
      IZUVJAUWGMZOZDPUVMEFBUVOQRZUVRUWADUWKUVPUVSUVQUVTUVOQUVHUGUVJAUVOQUHSUIEF
      UJZUVRUWEDUWLUVPUWCUVQUWDUVOUWBUVHUGUVJAUVOUWBUHSUIUVOUWGRZUVRUWJDUWMUVPU
      WHUVQUWIUVOUWGUVHUGUVJAUVOUWGUHSUIUVOBRZUVRUVLDUWNUVPUVIUVQUVKUVOBUVHUGUV
      JAUVOBUHSUIUWADUVSUVTUVHUKULUMUWBGHZUWFUWJDUWODUOUWEDUPUWOUWFUWJFDUQZDFUJ
      ZUWOUWFJZUWJOUWRUWHUWPTZUWQTZUWIUWFUWHUWSUWTUWIOOOZUWOUWEUXADUWEUWHUWSUWT
      UWIUWHUWSJZUWTJZUWCUWDUWIUXCUVHUWBNZUWTJUWCUXBUXDUWTUXBEUVHUWBUWHEDUQZUWS
      EFUQZUWHUXEJUWSUWLTZUXFUXEUWSUXGOUWHUXEUWLUWPUWLUXEUWPEFDURUSUTVAUWHUXEUX
      GUXFOZUWHUXEUVOUWGHZUXHUWHUVHUWGUVOUVHUWGUCZVBUXIUXFUWLUXIUXFUWLUVOUWBVCV
      DZVEVFVGVRVHVIVJUVHUWBVKVLUVJUVJAUWBUWGAFUQZUVEUWGHUVJUVEUWBVMVJVNVOVPVQV
      AVSUWPUWOUWFUWJUWPUWOJZUWFJUWHUVHUWBVTZWAZUVEKLZAUWBMZUWIUXMUWHUXOUWBIZUW
      FUXQUXMUWHUXOUWBNZUXOUWBRZTZJZUXRUWHUWHUWHJUXMUYBUWHWBUWOUWHUXSUWPUWHUYAU
      WHUVHUWGNZUWOUXSUXJUYCUXSUWOUXOUWGUXNWAZNUVHUWGUXNWCUWOUWBUYDUXOUWOUWBWDZ
      UWBUYDRUWBWEZUWBWFWGWHWIWJUWHUXIUXETZJZEXAUWPUYAEUVHUWGWKUWPUYHUYAEUWPUXI
      UYGUYAUWPUXIJZUXTUXEUYIUXTUXEUYIUXTJUXFUXEUXTUXFUXEOUYIUXTUXFUVOUXOHUXEUX
      OUWBUVOWLUVOUVHUXNWMWNVAUYIUXFTZUXEOUXTUXIUYJUWLUWPUXEUXKUWBUVHUVOWOWPWQW
      RYDUTWSWTWJXBXCUXOUWBVKXDUWFUVOUWBIZUVOUVEKLZAUWBMZOZEPUXRUXQOZUWEUYNDEDE
      UJZUWCUYKUWDUYMUVHUVOUWBXEUYPUVJUYLAUWBUVHUVOUVEKXFXGSXHUYNUYOEUXOUXOUVHD
      XIZUVHUXNXJXKUVOUXORZUYKUXRUYMUXQUVOUXOUWBXEUYRUYLUXPAUWBUVOUXOUVEKXFXGSX
      LXMXNUXMUXQUWIOUWFUXMUXLUXPJZAXAUVHUVOKLZEUWGMZUXQUWIUXMUYSVUAAUXMUYSUVEU
      NZUWGHZUVHVUBKLZJVUAUXMUYSVUCVUDUXMUXLVUCUXPUWOUXLVUCOZUWPUWOUYEVUEUYFUYE
      UXLVUCUVEUWBXOXPWGVAXQUWPUWOUXLUXPVUDUWPUXPUXLUWOVUDUWPUXPUXLUWOVUDUXLUWO
      JUWPUXPUVEGHZVUDUVEUWBXRUXPVUFJVUDUWPUXOUXNXSZUVEUVEVTZXSZKLZUXPUXPUXNVUH
      KLZJUXOUXNXTZQRZUVEVUHXTQRZJVUJVUFUXPVUKUWBUVEYEZVTZUBHUXNVUHVUPYAVUKVUOY
      BUWBUVEFXIAXIYCUXNVUHVUPUBYFYGYHVUFVUNVUMVUFUVEWDVUNUVEWEUVEYIWGUXNUXOXTV
      ULQUXNUXOYJUXNUVHYKYLYMUXOUVEUXNVUHYNYPUWPUVHVUGVUBVUIKUWPVUGUVHUVHUWBYOY
      QVUBVUIRUWPUVEYRUUGUUAWIUUBUUCUUDUUHUUEUYTVUDEVUBUWGUVOVUBUVHKYSYTVFWTUXP
      AUWBUUFUVJUYTAEUWGUVEUVOUVHKYSUUIUUJWQVRUUKUWQUWIUWRUWHUWQUVHUWGHUVHUVHKL
      ZUWIUVHUWBUYQUULUVHUYQUUMUVJVUQAUVHUWGUVEUVHUVHKYSYTUUNUUOUUPYDUUQUURUVLU
      VNDCUBUVHCRZUVIUVCUVKUVGUVHCBXEVURUVJUVFABUVHCUVEKXFXGSUUSWJUUTVGUVA $.

    $( A subset of a natural number is finite.  (Contributed by NM,
       24-Jun-1998.) $)
    ssnnfi $p |- ( ( A e. _om /\ B C_ A ) -> B e. Fin ) $=
      ( vx com wcel wss wa cv cen wbr wrex cfn wpss wceq wo sspss pssnn wi elnn
      expcom anim1d reximdv2 adantr mpd eleq1 biimparc enrefg ancli rspcev 3syl
      breq2 jaodan sylan2b isfi sylibr ) ADEZBAFZGBCHZIJZCDKZBLEUQUPBAMZBANZOUT
      BAPUPVAUTVBUPVAGUSCAKZUTCABQUPVCUTRVAUPUSUSCADUPURAEZURDEZUSVDUPVEURASTUA
      UBUCUDUPVBGBDEZVFBBIJZGUTVBVFUPBADUEUFVFVGBDUGUHUSVGCBDURBBIUKUIUJULUMCBU
      NUO $.

    $( A subset of a finite set is finite.  Corollary 6G of [Enderton] p. 138.
       (Contributed by NM, 24-Jun-1998.) $)
    ssfi $p |- ( ( A e. Fin /\ B C_ A ) -> B e. Fin ) $=
      ( vx vz vy cfn wcel wss cv cen wbr com wrex wi isfi wf1o wex bren sylan
      wa cima wfo f1ofo crn imassrn forn syl5sseq syl ssnnfi sylib adantrr cres
      sylan2 wf1 f1of1 f1ores resex f1oeq1 spcev sylibr entr ex reximdv syl6ibr
      vex adantl mpd exp32 exlimdv syl5bi rexlimiv sylbi imp ) AFGZBAHZBFGZVNAC
      IZJKZCLMVOVPNZCAOVRVSCLVRAVQDIZPZDQVQLGZVSAVQDRWBWAVSDWBWAVOVPWBWAVOTZTVT
      BUAZEIZJKZELMZVPWBWAWGVOWAWBWDVQHZWGWAAVQVTUBZWHAVQVTUCWIVTUDWDVQVTBUEAVQ
      VTUFUGUHWBWHTWDFGWGVQWDUIEWDOUJUMUKWCWGVPNWBWCWGBWEJKZELMVPWCWFWJELWCWFWJ
      WCBWDVTBULZPZWFWJWAAVQVTUNVOWLAVQVTUOAVQBVTUPSWLBWDJKZWFWJWLBWDVQPZCQWMWN
      WLCWKVTBDVEUQBWDVQWKURUSBWDCRUTBWDWEVASSVBVCEBOVDVFVGVHVIVJVKVLVM $.

    $( A set dominated by a finite set is finite.  (Contributed by NM,
       23-Mar-2006.)  (Revised by Mario Carneiro, 12-Mar-2015.) $)
    domfi $p |- ( ( A e. Fin /\ B ~<_ A ) -> B e. Fin ) $=
      ( vx cfn wcel cdom wbr cv cen wss wa domeng ssfi adantrl adantrr sylancom
      wex enfii ex exlimdv sylbid imp ) ADEZBAFGZBDEZUCUDBCHZIGZUFAJZKZCQUECBAD
      LUCUIUECUCUIUEUCUIUFDEZUEUCUHUJUGAUFMNUJUGUEUHBUFROPSTUAUB $.

    $( The components of a nonempty finite Cartesian product are finite.
       (Contributed by Paul Chapman, 11-Apr-2009.)  (Proof shortened by Mario
       Carneiro, 29-Apr-2015.) $)
    xpfir $p |- ( ( ( A X. B ) e. Fin /\ ( A X. B ) =/= (/) ) ->
                 ( A e. Fin /\ B e. Fin ) ) $=
      ( cxp cfn wcel c0 wne wa cdom wbr cvv xpexr2 simpld simprd xpdom3 syl3anc
      simpr domfi syldan syl2anc xpnz sylibr cen xpcomeng domentr jca ) ABCZDEZ
      UGFGZHZADEZBDEZUHUIAUGIJZUKUJAKEZBKEZBFGZUMUJUNUOABDLZMZUJUNUOUQNZUJAFGZU
      PUJUIUTUPHUHUIQABUAUBZNABKKOPUGARSUHUIBUGIJZULUJBBACZIJZVCUGUCJZVBUJUOUNU
      TVDUSURUJUTUPVAMBAKKOPUJUOUNVEUSURBAKKUDTBVCUGUETUGBRSUF $.
  $}

  ${
    ssfid.1 $e |- ( ph -> A e. Fin ) $.
    ssfid.2 $e |- ( ph -> B C_ A ) $.
    $( A subset of a finite set is finite, deduction version of ~ ssfi .
       (Contributed by Glauco Siliprandi, 21-Nov-2020.) $)
    ssfid $p |- ( ph -> B e. Fin ) $=
      ( cfn wcel wss ssfi syl2anc ) ABFGCBHCFGDEBCIJ $.
  $}

  $( The intersection of two sets is finite if one of them is.  (Contributed by
     Thierry Arnoux, 14-Feb-2017.) $)
  infi $p |- ( A e. Fin -> ( A i^i B ) e. Fin ) $=
    ( cfn wcel cin wss inss1 ssfi mpan2 ) ACDABEZAFJCDABGAJHI $.

  ${
    $d x A $.
    $( A restricted class built from a finite set is finite.  (Contributed by
       Thierry Arnoux, 14-Feb-2017.) $)
    rabfi $p |- ( A e. Fin -> { x e. A | ph } e. Fin ) $=
      ( cfn wcel crab cab cin dfrab3 infi syl5eqel ) CDEABCFCABGZHDABCICLJK $.
  $}

  $( The restriction of a finite set is finite.  (Contributed by Alexander van
     der Vekens, 3-Jan-2018.) $)
  finresfin $p |- ( E e. Fin -> ( E |` B ) e. Fin ) $=
    ( cfn wcel cres wss resss ssfi mpan2 ) BCDBAEZBFJCDBAGBJHI $.

  $( Any injection from one finite set to another of equal size must be a
     bijection.  (Contributed by Jeff Madsen, 5-Jun-2010.)  (Revised by Mario
     Carneiro, 27-Feb-2014.) $)
  f1finf1o $p |- ( ( A ~~ B /\ B e. Fin ) ->
    ( F : A -1-1-> B <-> F : A -1-1-onto-> B ) ) $=
    ( cen wbr cfn wcel wa wf1 wf1o wfo simpr wfn crn adantl syl cvv ex sylanbrc
    csdm wceq wf f1f ffn simpll wne wpss wn wss wb frn df-pss baib simplr relen
    cmap co brrelexi elmapd mpbird f1f1orn f1oen3g syl2anc php3 ensdomtr syl6an
    wi sdomnen syl6 sylbird necon4ad mpd df-fo df-f1o f1of1 impbid1 ) ABDEZBFGZ
    HZABCIZABCJZVSVTWAVSVTHZVTABCKZWAVSVTLWBCAMZCNZBUAZWCWBABCUBZWDVTWGVSABCUCO
    ZABCUDPWBVQWFVQVRVTUEZWBVQWEBWBWEBUFZWEBUGZVQUHZWBWEBUIZWKWJUJWBWGWMWHABCUK
    PWKWMWJWEBULUMPWBWKABTEZWLWBAWEDEZWKWEBTEZWNWBCBAUPUQZGZAWECJZWOWBWRWGWHWBB
    ACFQVQVRVTUNZWBVQAQGWIABDUOURPUSUTVTWSVSABCVAOAWECWQVBVCWBVRWKWPVGWTVRWKWPB
    WEVDRPAWEBVEVFABVHVIVJVKVLABCVMSABCVNSRABCVOVP $.

  $( The empty set is finite.  (Contributed by FL, 14-Jul-2008.) $)
  0fin $p |- (/) e. Fin $=
    ( c0 com wcel wss cfn peano1 ssid ssnnfi mp2an ) ABCAADAECFAGAAHI $.

  ${
    $d A x $.
    $( If a class is not finite, it contains at least one element.
       (Contributed by Alexander van der Vekens, 12-Jan-2018.) $)
    nfielex $p |- ( -. A e. Fin -> E. x x e. A ) $=
      ( cfn wcel wn c0 wceq cv wex 0fin eleq1 mpbiri con3i neq0 sylib ) BCDZEBF
      GZEAHBDAIQPQPFCDJBFCKLMABNO $.
  $}

  $( A set with one element is a singleton.  (Contributed by FL,
     18-Aug-2008.) $)
  en1eqsn $p |- ( ( A e. B /\ B ~~ 1o ) -> B = { A } ) $=
    ( wcel c1o cen wbr csn cfn wss wceq com 1onn ssid ssnnfi mp2an enfii adantl
    wa mpan snssi adantr ensn1g ensym entr syl2an fisseneq syl3anc eqcomd ) ABC
    ZBDEFZRZAGZBUKBHCZULBIZULBEFZULBJUJUMUIDHCZUJUMDKCDDIUPLDMDDNOBDPSQUIUNUJAB
    TUAUIULDEFDBEFUOUJABUBBDUCULDBUDUEULBUFUGUH $.

  $( A set containing an element has exactly one element iff it is a singleton.
     Formerly part of proof for ~ rngen1zr .  (Contributed by FL, 13-Feb-2010.)
     (Revised by AV, 25-Jan-2020.) $)
  en1eqsnbi $p |- ( A e. B -> ( B ~~ 1o <-> B = { A } ) ) $=
    ( wcel c1o cen wbr csn wceq en1eqsn ex ensn1g breq1 syl5ibrcom impbid ) ABC
    ZBDEFZBAGZHZOPRABIJOPRQDEFABKBQDELMN $.

  $( If ` A ` is finite, ` ( A \ B ) ` is finite.  (Contributed by FL,
     3-Aug-2009.) $)
  diffi $p |- ( A e. Fin -> ( A \ B ) e. Fin ) $=
    ( cfn wcel cdif wss difss ssfi mpan2 ) ACDABEZAFJCDABGAJHI $.

  ${
    $d A x $.  $d X x $.  $d M x $.
    $( If a set ` A ` is equinumerous to the successor of a natural number
       ` M ` , then ` A ` with an element removed is equinumerous to ` M ` .
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Stefan O'Rear,
       16-Aug-2015.) $)
    dif1en $p |- ( ( M e. _om /\ A ~~ suc M /\ X e. A ) ->
        ( A \ { X } ) ~~ M ) $=
      ( vx com wcel csuc cen wbr csn wrex wa cfn peano2 breq2 isfi wceq wi cin
      c0 w3a cdif rspcev sylibr sylan diffi sylib syl 3adant3 cun cvv vex en2sn
      cv mpan2 word nnord orddisj incom disjdif eqtri unen mpanl2 expcom syl2an
      an4s 3ad2antl3 wb difsnid df-suc eqcomi a1i breq12d 3ad2ant3 adantr ensym
      entr nneneq sylan2 syl5ib expd imp an32s 3adantl3 sylbid peano4 3ad2antl1
      syl5 biimpd 3syld biimprcd sylcom rexlimdva mpd ) BEFZABGZHIZCAFZUAZACJZU
      BZDUNZHIZDEKZXABHIZWOWQXDWRWOWQLAMFZXDWOWPEFZWQXFBNZXGWQLAXBHIZDEKXFXIWQD
      WPEXBWPAHOUCDAPUDUEXFXAMFXDAWTUFDXAPUGUHUIWSXCXEDEWSXBEFZLZXCBXBQZXEXKXCX
      AWTUJZXBXBJZUJZHIZWPXBGZQZXLWRWOXJXCXPRZWQWRWTXNHIZXBXNSTQZXSXJWRXBUKFXTD
      ULCXBAUKUMUOXJXBUPYAXBUQXBURUHXCXTYALZXPXCXAWTSZTQZYBXPYCWTXASTXAWTUSWTAU
      TVAXCXTYDYAXPXAXBWTXNVBVFVCVDVEVGXKXPAXQHIZXRWSXPYEVHZXJWRWOYFWQWRXMAXOXQ
      HACVIXOXQQWRXQXOXBVJVKVLVMVNVOWOWQXJYEXRRZWRWOXJWQYGWOXJLZWQYGWOXGXJWQYGR
      XHWQWPAHIZXGXJLZYGAWPVPYJYIYEXRYIYELWPXQHIZYJXRWPAXQVQXJXGXQEFYKXRVHXBNWP
      XQVRVSVTWAWHUEWBWCWDWEWOWQXJXRXLRWRYHXRXLBXBWFWIWGWJXLXEXCBXBXAHOWKWLWMWN
      $.
  $}

  ${
    enp1ilem.1 $e |- T = ( { x } u. S ) $.
    $( Lemma for uses of ~ enp1i .  (Contributed by Mario Carneiro,
       5-Jan-2016.) $)
    enp1ilem $p |- ( x e. A -> ( ( A \ { x } ) = S -> A = T ) ) $=
      ( cv csn cdif wceq cun wcel uneq1 undif1 uncom eqtr4i 3eqtr3g wss ssequn2
      snssi sylib eqeq1d syl5ib ) BAFZGZHZCIZBUDJZDIUCBKZBDIUFUEUDJCUDJZUGDUECU
      DLBUDMUIUDCJDCUDNEOPUHUGBDUHUDBQUGBIUCBSUDBRTUAUB $.
  $}

  ${
    $d x A $.  $d x N $.
    enp1i.1 $e |- M e. _om $.
    enp1i.2 $e |- N = suc M $.
    enp1i.3 $e |- ( ( A \ { x } ) ~~ M -> ph ) $.
    enp1i.4 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Proof induction for ~ en2i and related theorems.  (Contributed by Mario
       Carneiro, 5-Jan-2016.) $)
    enp1i $p |- ( A ~~ N -> E. x ps ) $=
      ( cen wbr cv wcel wex c0 wceq wn csuc sylib wne nsuceq0 breq1 en0 syl5eqr
      ensym syl6bi necon3ad mpi con2i neq0 wi breq2i csn cdif com dif1en mp3an1
      wa syl ex sylbi sylcom eximdv mpd ) DFKLZCMZDNZCOZBCOVFDPQZRVIVJVFVJESZPU
      AVFREUBVJVFVKPVJVFPFKLZVKPQDPFKUCVLVKFPHVLFPKLFPQPFUFFUDTUEUGUHUIUJCDUKTV
      FVHBCVFVHABVFDVKKLZVHAULFVKDKHUMVMVHAVMVHUSDVGUNUOEKLZAEUPNVMVHVNGDEVGUQU
      RIUTVAVBJVCVDVE $.
  $}

  ${
    $d x y A $.
    $( A set equinumerous to ordinal 2 is a pair.  (Contributed by Mario
       Carneiro, 5-Jan-2016.) $)
    en2 $p |- ( A ~~ 2o -> E. x E. y A = { x , y } ) $=
      ( cv csn cdif wceq wex cpr c1o c2o 1onn df-2o cen wbr en1 biimpi enp1ilem
      wcel df-pr eximdv enp1i ) CADZEFZBDZEZGZBHZCUCUEIZGZBHACJKLMUDJNOUHBUDPQU
      CCSUGUJBACUFUIUCUETRUAUB $.
  $}

  ${
    $d x y z A $.
    $( A set equinumerous to ordinal 3 is a triple.  (Contributed by Mario
       Carneiro, 5-Jan-2016.) $)
    en3 $p |- ( A ~~ 3o -> E. x E. y E. z A = { x , y , z } ) $=
      ( cv csn cdif cpr wceq wex ctp c2o c3o 2onn df-3o en2 wcel tpass enp1ilem
      2eximdv enp1i ) DAEZFGZBEZCEZHZIZCJBJDUBUDUEKZIZCJBJADLMNOBCUCPUBDQUGUIBC
      ADUFUHUBUDUERSTUA $.
  $}

  ${
    $d w x y z A $.
    $( A set equinumerous to ordinal 4 is a quadruple.  (Contributed by Mario
       Carneiro, 5-Jan-2016.) $)
    en4 $p |- ( A ~~ 4o ->
      E. x E. y E. z E. w A = ( { x , y } u. { z , w } ) ) $=
      ( cv csn cdif ctp wceq wex cpr cun c3o c4o 3onn df-4o en3 wcel qdassr
      enp1ilem eximdv 2eximdv enp1i ) EAFZGHZBFZCFZDFZIZJZDKZCKBKEUEUGLUHUILMZJ
      ZDKZCKBKAENOPQBCDUFRUEESZULUOBCUPUKUNDAEUJUMUEUGUHUITUAUBUCUD $.
  $}

  ${
    $d v w x y z $.  $d A x y z $.  $d ps x $.  $d ch x $.  $d th x $.
    $d ta x $.  $d ph v w y z $.
    findcard.1 $e |- ( x = (/) -> ( ph <-> ps ) ) $.
    findcard.2 $e |- ( x = ( y \ { z } ) -> ( ph <-> ch ) ) $.
    findcard.3 $e |- ( x = y -> ( ph <-> th ) ) $.
    findcard.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    findcard.5 $e |- ps $.
    findcard.6 $e |- ( y e. Fin -> ( A. z e. y ch -> th ) ) $.
    $( Schema for induction on the cardinality of a finite set.  The inductive
       hypothesis is that the result is true on the given set with any one
       element removed.  The result is then proven to be true for all finite
       sets.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    findcard $p |- ( A e. Fin -> ta ) $=
      ( vw wcel cen wbr com vv cfn cv wrex isfi wi wal csuc breq2 imbi1d albidv
      c0 wceq en0 mpbiri sylbi ax-gen w3a wa peano2 rspcev sylan sylibr 3adant2
      wral csn cdif dif1en 3expa cvv vex difexg ax-mp imbi12d syl5com ralrimdva
      breq1 spcv imp an32s 3impa alrimdv cbvalv syl6ibr finds1 19.21bi rexlimiv
      sylc 3exp vtoclga ) AEFIUBMFUCZUBQWKPUCZRSZPTUDAPWKUEWMAPTWLTQWMAUFZFWNFU
      GWKULRSZAUFZFUGWKUAUCZRSZAUFZFUGZWKWQUHZRSZAUFZFUGZPUAWLULUMZWNWPFXEWMWOA
      WLULWKRUIUJUKWLWQUMZWNWSFXFWMWRAWLWQWKRUIUJUKWLXAUMZWNXCFXGWMXBAWLXAWKRUI
      UJUKWPFWOWKULUMZAWKUNXHABNJUOUPUQWQTQZWTGUCZXARSZDUFZGUGXDXIWTXLGXIWTXKDX
      IWTXKURXJUBQZCHXJVEZDXIXKXMWTXIXKUSZXJWLRSZPTUDZXMXIXATQXKXQWQUTXPXKPXATW
      LXAXJRUIVAVBPXJUEVCVDXIWTXKXNXIXKWTXNXOWTXNXOWTCHXJXOHUCZXJQZUSXJXRVFZVGZ
      WQRSZWTCXIXKXSYBXJWQXRVHVIWSYBCUFFYAXJVJQYAVJQGVKXJXTVJVLVMWKYAUMWRYBACWK
      YAWQRVQKVNVRVOVPVSVTWAOWHWIWBXCXLFGWKXJUMXBXKADWKXJXARVQLVNWCWDWEWFWGUPWJ
      $.
  $}

  ${
    $d v w x y z $.  $d A w x y z $.  $d ps x $.  $d ch x $.  $d th x $.
    $d ta x $.  $d ph v w y z $.
    findcard2.1 $e |- ( x = (/) -> ( ph <-> ps ) ) $.
    findcard2.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    findcard2.3 $e |- ( x = ( y u. { z } ) -> ( ph <-> th ) ) $.
    findcard2.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    findcard2.5 $e |- ps $.
    findcard2.6 $e |- ( y e. Fin -> ( ch -> th ) ) $.
    $( Schema for induction on the cardinality of a finite set.  The inductive
       step shows that the result is true if one more element is added to the
       set.  The result is then proven to be true for all finite sets.
       (Contributed by Jeff Madsen, 8-Jul-2010.) $)
    findcard2 $p |- ( A e. Fin -> ta ) $=
      ( vw wcel cen wi c0 vv cfn wbr com wrex isfi wal csuc breq2 imbi1d albidv
      cv wceq weq en0 mpbiri sylbi ax-gen wne wa nsuceq0 breq1 anbi2d wb peano1
      wsbc peano2 nneneq sylancr biimpa eqcomd syl6bi com12 necon3d mpi wel wex
      ex csn cdif dif1en 3expia wss cun snssi uncom undif biimpi syl5eq cvv vex
      n0 difexg ax-mp uneq1 sbceq1d imbi2d imbi12d sylibr pm2.27 adantl sylsyld
      spv rspe syl5 snex unex sbcie syl6ibr dfsbcq syl5ib 3syl expd adantr mpdd
      vtocl exlimdv syl5bi com23 alrimdv nfv nfsbc1v nfim sbceq1a cbval 19.21bi
      finds1 rexlimiv vtoclga ) AEFIUBMFULZUBQYJPULZRUCZPUDUEAPYJUFYLAPUDYKUDQY
      LASZFYMFUGYJTRUCZASZFUGYJUAULZRUCZASZFUGZYJYPUHZRUCZASZFUGZPUAYKTUMZYMYOF
      UUDYLYNAYKTYJRUIUJUKPUAUNZYMYRFUUEYLYQAYKYPYJRUIUJUKYKYTUMZYMUUBFUUFYLUUA
      AYKYTYJRUIUJUKYOFYNYJTUMZAYJUOUUGABNJUPUQURYPUDQZYSYKYTRUCZAFYKVFZSZPUGUU
      CUUHYSUUKPUUHUUIYSUUJUUHUUIYKTUSZYSUUJSZUUHUUIUULUUHUUIUTZYTTUSUULYPVAUUN
      YKTYTTUUDUUNYTTUMZUUDUUNUUHTYTRUCZUTZUUOUUDUUIUUPUUHYKTYTRVBVCUUQTYTUUHUU
      PTYTUMZUUHTUDQYTUDQUUPUURVDVEYPVGTYTVHVIVJVKVLVMVNVOVRUUHUUIUULUUMSUULHPV
      PZHVQUUNUUMHYKWLUUNUUSUUMHUUNUUSYKHULZVSZVTZYPRUCZUUMUUHUUIUUSUVCYKYPUUTW
      AWBUUHUUSUVCUUMSZSUUIUUSUUHUVDUUSUUHUVCUUMUUSUVAYKWCZUVBUVAWDZYKUMZUUHUVC
      UTZUUMSUUTYKWEUVEUVFUVAUVBWDZYKUVBUVAWFUVEUVIYKUMUVAYKWGWHWIUVHYSAFUVFVFZ
      SZUVGUUMUUHGULZYPRUCZUTZYSAFUVLUVAWDZVFZSZSUVHUVKSGUVBYKWJQUVBWJQPWKYKUVA
      WJWMWNUVLUVBUMZUVNUVHUVQUVKUVRUVMUVCUUHUVLUVBYPRVBVCUVRUVPUVJYSUVRAFUVOUV
      FUVLUVBUVAWOWPWQWRUVNYSDUVPYSUVMCSZUVNDYRUVSFGFGUNYQUVMACYJUVLYPRVBKWRXCU
      VNUVLUBQZUVSCDUVNUVMUAUDUEUVTUVMUAUDXDUAUVLUFWSUVMUVSCSUUHUVMCWTXAOXBXEAD
      FUVOUVLUVAGWKUUTXFXGLXHXIXPUVGUVJUUJYSAFUVFYKXJWQXKXLXMVMXNXOXQXRVRXOXSXT
      UUBUUKFPUUBPYAUUIUUJFUUIFYAAFYKYBYCFPUNUUAUUIAUUJYJYKYTRVBAFYKYDWRYEXIYGY
      FYHUQYI $.
  $}

  ${
    $d A x y z $.  $d ch x $.  $d ph y z $.  $d ps x $.  $d ta x $.  $d th x $.
    findcard2s.1 $e |- ( x = (/) -> ( ph <-> ps ) ) $.
    findcard2s.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    findcard2s.3 $e |- ( x = ( y u. { z } ) -> ( ph <-> th ) ) $.
    findcard2s.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    findcard2s.5 $e |- ps $.
    findcard2s.6 $e |- ( ( y e. Fin /\ -. z e. y ) -> ( ch -> th ) ) $.
    $( Variation of ~ findcard2 requiring that the element added in the
       induction step not be a member of the original set.  (Contributed by
       Paul Chapman, 30-Nov-2012.) $)
    findcard2s $p |- ( A e. Fin -> ta ) $=
      ( cv wcel wceq cun sylib cfn wi wn ex csn wa wex uncom wss snssi syl5reqr
      ssequn1 vex eqvinc bicomd sylan9bb exlimiv syl biimpd pm2.61d2 findcard2
      wb ) ABCDEFGHIJKLMNGPZUAQZHPZVCQZCDUBZVDVFUCVGOUDVFCDVFFPZVCRZVHVCVEUEZSZ
      RZUFZFUGZCDVBZVFVCVKRVNVFVKVJVCSZVCVJVCUHVFVJVCUIVPVCRVEVCUJVJVCULTUKFVCV
      KGUMUNTVMVOFVICAVLDVIACKUOLUPUQURUSUTVA $.
  $}

  ${
    $d A x y z $.  $d ph x y z $.  $d ps y z $.  $d ch x $.  $d th x $.
    $d ta x $.  $d et x $.
    findcard2d.ch $e |- ( x = (/) -> ( ps <-> ch ) ) $.
    findcard2d.th $e |- ( x = y -> ( ps <-> th ) ) $.
    findcard2d.ta $e |- ( x = ( y u. { z } ) -> ( ps <-> ta ) ) $.
    findcard2d.et $e |- ( x = A -> ( ps <-> et ) ) $.
    findcard2d.z $e |- ( ph -> ch ) $.
    findcard2d.i $e |- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) ->
        ( th -> ta ) ) $.
    findcard2d.a $e |- ( ph -> A e. Fin ) $.
    $( Deduction version of ~ findcard2 .  (Contributed by SO, 16-Jul-2018.) $)
    findcard2d $p |- ( ph -> et ) $=
      ( wcel wa wi wss ssid cfn adantr cv csn cun wceq sseq1 anbi2d imbi12d weq
      c0 wel wn simprl simprr unssad jca cdif id vsnid elun2 mp1i sseldd simplr
      ad2antll eldifd syl12anc embantd ex com23 findcard2s mpcom mpan2 ) AJJUAZ
      FJUBJUCRZAVPSZFAVQVPQUDAGUEZJUAZSZBTAUMJUAZSZCTAHUEZJUAZSZDTZAWDIUEZUFZUG
      ZJUAZSZETVRFTGHIJVSUMUHZWAWCBCWMVTWBAVSUMJUIUJKUKGHULZWAWFBDWNVTWEAVSWDJU
      IUJLUKVSWJUHZWAWLBEWOVTWKAVSWJJUIUJMUKVSJUHZWAVRBFWPVTVPAVSJJUIUJNUKACWBO
      UDWDUCRZIHUNUOZSZWLWGEWSWLWGETWSWLSZWFDEWTAWEWSAWKUPZWTWDWIJWSAWKUQURZUSW
      TAWEWHJWDUTRDETXAXBWTWHJWDWKWHJRWSAWKWJJWHWKVAWHWIRWHWJRWKIVBWHWIWDVCVDVE
      VGWQWRWLVFVHPVIVJVKVLVMVNVO $.
  $}

  ${
    $d w x y z $.  $d w y z ph $.  $d w x A $.  $d w x ta $.  $d x ch $.
    findcard3.1 $e |- ( x = y -> ( ph <-> ch ) ) $.
    findcard3.2 $e |- ( x = A -> ( ph <-> ta ) ) $.
    findcard3.3 $e |- ( y e. Fin -> ( A. x ( x C. y -> ph ) -> ch ) ) $.
    $( Schema for strong induction on the cardinality of a finite set.  The
       inductive hypothesis is that the result is true on any proper subset.
       The result is then proven to be true for all finite sets.  (Contributed
       by Mario Carneiro, 13-Dec-2013.) $)
    findcard3 $p |- ( A e. Fin -> ta ) $=
      ( vw vz cfn wcel cen wbr wi wal wa com wrex cv isfi wral con0 eleq1 breq2
      nnon wceq imbi1d albidv imbi12d wpss rspe sylibr 19.21v ralbii bitr3i wss
      ralcom4 pssss ssfi sylib syl2an csdm ensym ad2antll sylan adantr sdomentr
      php3 simpllr syl2anc ensdomtr ad2antrl ad3antrrr sdomel mpd ex simpr jcad
      a1i reximdv2 r19.29 expcom syl word ordom mpan ad2antrr sseld pm2.27 impd
      ordelss syl6 rexlimdv com23 alimdv syl5bi sylsyld impancom alrimiv cbvalv
      syld breq1 syl6ibr tfis2 mpcom rgen sylbi spcgv rexlimdvw ) FLMZDUAZJUAZN
      OZAPZDQZFXNNOZRZJSTZCXLXRJSTZXTJFUBXQJSUCYAXTXQJSXNUDMZXNSMZXQXNUGZYCXQPZ
      KUAZSMZXMYFNOZAPZDQZPZJKXNYFUHZYCYGXQYJXNYFSUEYLXPYIDYLXOYHAXNYFXMNUFUIUJ
      UKYKKXNUCZYEPYBYMYCEUAZXNNOZBPZEQZXQYCYMYQYCYMRYPEYCYOYMBYCYORZYNLMZYMXMY
      NULZAPZDQZBYRYOJSTYSYOJSUMJYNUBUNZYMYGYIPZKXNUCZDQZYRUUBYMUUDDQZKXNUCUUFU
      UGYKKXNYGYIDUOUPUUDKDXNUSUQYRUUEUUADYRYTUUEAYRYTUUEAPYRYTRZUUEUUDYHRZKXNT
      ZAUUHYHKXNTZUUEUUJPUUHYHKSTZUUKYRYSXMYNURZUULYTUUCXMYNUTYSUUMRXMLMUULYNXM
      VAKXMUBVBVCUUHYHYHKSXNUUHYGYHRZYFXNMZYHUUHUUNUUOUUHUUNRZYFXNVDOZUUOUUPYFX
      MNOZXMXNVDOZUUQYHUURUUHYGXMYFVEVFUUPXMYNVDOZYOUUSUUHUUTUUNYRYSYTUUTUUCYNX
      MVJVGVHYCYOYTUUNVKXMYNXNVIVLYFXMXNVMVLUUPYFUDMZYBUUQUUOPYGUVAUUHYHYFUGVNY
      CYBYOYTUUNYDVOYFXNVPVLVQVRUUNYHPUUHYGYHVSWAVTWBVQUUEUUKUUJUUDYHKXNWCWDWEU
      UHUUIAKXNUUHUUOYGUUIAPUUHXNSYFYCXNSURZYOYTSWFYCUVBWGSXNWMWHWIWJYGUUDYHAYG
      YIWKWLWNWOXCVRWPWQWRIWSWTXAWDXPYPDEXMYNUHXOYOABXMYNXNNXDGUKXBXEWAXFXGXHXQ
      XRJSWCWHXIXLXSCJSXLXQXRCXPXRCPDFLXMFUHXOXRACXMFXNNXDHUKXJWLXKVQ $.
  $}

  ${
    $d f u w x z A $.  $d f g u w x y z B $.  $d f g u w z ph $.
    $d g u w y z ps $.
    ac6sfi.1 $e |- ( y = ( f ` x ) -> ( ph <-> ps ) ) $.
    $( A version of ~ ac6s for finite sets.  (Contributed by Jeff Hankins,
       26-Jun-2009.)  (Proof shortened by Mario Carneiro, 29-Jan-2014.) $)
    ac6sfi $p |- ( ( A e. Fin /\ A. x e. A E. y e. B ph ) ->
                E. f ( f : A --> B /\ A. x e. A ps ) ) $=
      ( vg wcel wral cv wf wa wex wi c0 wceq raleq anbi12d vu vw vz cfn csn cun
      wrex cfv wsbc feq2 exbidv imbi12d feq1 fvex sbcie sbceq1d syl5bbr ralbidv
      weq fveq1 cbvexv syl6bb f0 0ex ral0 biantru spcev wel wn wss ssun1 ssralv
      mp1i ax-mp imim1i ssun2 cvv wb vex ralsnsg sbcrex bitri sylib nfv nfsbc1v
      nfcv nfral nfan nfex nfim w3a cop cin simprl wf1o f1osn f1of simpl2 snssd
      fssd simpl1 disjsn sylibr fun2 syl21anc simprr wne eleq1a necon3bd impcom
      fvunsn dfsbcq syl6rbb 3syl ralbidva syl mpbid simpl3 wfun ffun cdm dmsnop
      vsnid eleqtrri funssfv mp3an23 fvsn syl6req elsni fveq2d biimparc sbceq1a
      eqeq2d ralun syl2anc snex unex ex exlimdv syl5 3exp a2d adantl findcard2s
      rexlimd imp ) EUDJADFUGZCEKZEFGLZMZBCEKZNZGOZUUGCUALZKZUUNFUUIMZBCUUNKZNZ
      GOZPUUGCQKZQFUUIMZBCQKZNZGOZPUUGCUBLZKZUVEFUUIMZBCUVEKZNZGOZPZUUGCUVEUCLZ
      UEZUFZKZUVNFILZMZADCLZUVPUHZUIZCUVNKZNZIOZPZUUHUUMPUAUBUCEUUNQRZUUOUUTUUS
      UVDUUGCUUNQSUWEUURUVCGUWEUUPUVAUUQUVBUUNQFUUIUJBCUUNQSTUKULUAUBUSZUUOUVFU
      USUVJUUGCUUNUVESUWFUURUVIGUWFUUPUVGUUQUVHUUNUVEFUUIUJBCUUNUVESTUKULUUNUVN
      RZUUOUVOUUSUWCUUGCUUNUVNSUWGUUSUVNFUUIMZBCUVNKZNZGOUWCUWGUURUWJGUWGUUPUWH
      UUQUWIUUNUVNFUUIUJBCUUNUVNSTUKUWJUWBGIGIUSZUWHUVQUWIUWAUVNFUUIUVPUMUWKBUV
      TCUVNBADUVRUUIUHZUIZUWKUVTABDUWLUVRUUIUNHUOZUWKADUWLUVSUVRUUIUVPUTUPUQURT
      VAVBULUUNERZUUOUUHUUSUUMUUGCUUNESUWOUURUULGUWOUUPUUJUUQUUKUUNEFUUIUJBCUUN
      ESTUKULQFQMZUVDUUTFVCUVCUWPGQVDUVCUVAUUIQRUWPUVBUVABCVEVFQFUUIQUMUQVGVMUC
      UBVHZVIZUVKUWDPUVEUDJUVKUVOUVJPUWRUWDUVOUVFUVJUVEUVNVJUVOUVFPUVEUVMVKUUGC
      UVEUVNVLVNVOUWRUVOUVJUWCUVOACUVLUIZDFUGZUWRUVJUWCPZUVOUUGCUVMKZUWTUVMUVNV
      JUVOUXBPUVMUVEVPUUGCUVMUVNVLVNUXBUUGCUVLUIZUWTUVLVQJZUXBUXCVRUCVSZUUGCUVL
      VQVTVNACDUVLFWAWBWCUWRUWSUXADFUWRDWDUVJUWCDUVJDWDUWBDIUVQUWADUVQDWDUVTDCU
      VNDUVNWFADUVSWEWGWHWIWJUWRDLZFJZUWSUXAUWRUXGUWSWKZUVIUWCGUXHUVIUWCUXHUVIN
      ZUVNFUUIUVLUXFWLZUEZUFZMZADUVRUXLUHZUIZCUVNKZUWCUXIUVGUVMFUXKMUVEUVMWMQRZ
      UXMUXHUVGUVHWNUXIUVMUXFUEZFUXKUVMUXRUXKWOUVMUXRUXKMUXIUVLUXFUXEDVSZWPUVMU
      XRUXKWQVMUXIUXFFUWRUXGUWSUVIWRWSWTUXIUWRUXQUWRUXGUWSUVIXAZUVEUVLXBXCUVEUV
      MFUUIUXKXDXEZUXIUXOCUVEKZUXOCUVMKZUXPUXIUVHUYBUXHUVGUVHXFUXIUWRUVHUYBVRUX
      TUWRBUXOCUVEUWRCUBVHZNUVLUVRXGZUXNUWLRZBUXOVRUYDUWRUYEUYDUWQUVLUVRUVRUVEU
      VLXHXIXJUUIUVLUXFUVRXKUYFUXOUWMBADUXNUWLXLUWNXMXNXOXPXQUXIUWSUYCUWRUXGUWS
      UVIXRUXIUXFUVLUXLUHZRZUWSUYCVRUXIUYGUVLUXKUHZUXFUXIUXMUXLXSZUYGUYIRZUYAUV
      NFUXLXTUYJUXKUXLVJUVLUXKYAZJUYKUXKUUIVPUVLUVMUYLUCYCUVLUXFUXSYBYDUVLUXLUX
      KYEYFXNUVLUXFUXEUXSYGYHUWSACUVMKZUYHUYCUXDUYMUWSVRUXEACUVLVQVTVNUYHAUXOCU
      VMUYHUVRUVMJZNUXFUXNRZAUXOVRUYNUYOUYHUYNUXNUYGUXFUYNUVRUVLUXLUVRUVLYIYJYM
      YKADUXNYLXPXOUQXPXQUXOCUVEUVMYNYOUWBUXMUXPNIUXLUUIUXKGVSUXJYPYQUVPUXLRZUV
      QUXMUWAUXPUVNFUVPUXLUMUYPUVTUXOCUVNUYPADUVSUXNUVRUVPUXLUTUPURTVGYOYRYSUUA
      UUEYTUUBYTUUCUUDUUF $.
  $}

  ${
    $d R u v w x y z $.  $d A w x y $.
    $( A partial order is well-founded on a finite set.  (Contributed by Jeff
       Madsen, 18-Jun-2010.)  (Proof shortened by Mario Carneiro,
       29-Jan-2014.) $)
    frfi $p |- ( ( R Po A /\ A e. Fin ) -> R Fr A ) $=
      ( vx vw vv vu vz wcel wpo wfr cv wi c0 imbi12d wss wa wbr wn wral wrex vy
      cfn csn cun wceq poeq2 freq2 weq fr0 a1i ssun1 poss ax-mp imim1i wne cdif
      wal uncom sseq2i ssundif bitri wel breq1 cbvrexv simpllr simplrl sylan2br
      anbi1i w3a impcom ad2ant2r simpr1 simpr2 3ad2antr3 nbrne2 syl2anc eldifsn
      poirr sylanbrc sylan ne0i syl difss cvv vex difexg mpanl1 ssrexv syl12anc
      fri mpsyl notbid rspcv adantr simplr2 simplr1 simplr3 simpr potr syl13anc
      simpll mpand con3d ralsn syl6ibr syld ralun sylcom difsnid raleqdv sylibd
      ex reximdva mpd 3exp2 rexlimdv syl5bi ralnex ralbidv rspcev expcom sylbir
      breq2 pm2.61d1 difsn expr neeq1 raleq rexbidv syl5ibcom adantll impr syl5
      wb com23 pm2.61d alrimiv df-fr sylibr findcard2 ) AUBHABIZABJZCKZBIZUUCBJ
      ZLMBIZMBJZLUAKZBIZUUHBJZLZUUHDKZUCZUDZBIZUUNBJZLZUUAUUBLCUADAUUCMUEUUDUUF
      UUEUUGUUCMBUFUUCMBUGNCUAUHUUDUUIUUEUUJUUCUUHBUFUUCUUHBUGNUUCUUNUEUUDUUOUU
      EUUPUUCUUNBUFUUCUUNBUGNUUCAUEUUDUUAUUEUUBUUCABUFUUCABUGNUUGUUFBUIUJUUKUUQ
      LUUHUBHUUKUUOUUJUUPUUOUUIUUJUUHUUNOUUOUUILUUHUUMUKUUHUUNBULUMUNUUOUUJUUPU
      UOUUJPZUUCUUNOZUUCMUOZPZEKZFKZBQZRZEUUCSZFUUCTZLZCUQUUPUURUVHCUVAUUCUUMUP
      ZUUHOZUUTPZUURUVGUUSUVJUUTUUSUUCUUMUUHUDZOUVJUUNUVLUUCUUHUUMURUSUUCUUMUUH
      UTVAZVHUURUVKUVGUURUVKPZDCVBZUVGUVNUVBUULBQZEUUCTZUVOUVGLZUVQGKZUULBQZGUU
      CTUVNUVRUVPUVTEGUUCUVBUVSUULBVCVDUVNUVTUVRGUUCUVNGCVBZUVTUVOUVGUVNUWAUVTU
      VOVIZPZUVEEUVISZFUUCTZUVGUWCUUJUVJUVIMUOZUWEUUOUUJUVKUWBVEUURUVJUUTUWBVFU
      WCUVSUVIHZUWFUVNUUDUWBUWGUUOUVJUUDUUJUUTUVJUUOUUSUUDUVMUUSUUOUUDUUCUUNBUL
      VJVGVKZUUDUWBPZUWAUVSUULUOZUWGUUDUWAUVTUVOVLUWIUVTUULUULBQRZUWJUUDUWAUVTU
      VOVMUUDUWAUVOUWKUVTUUCUULBVRVNUVSUULUULBVOVPUVSUUCUULVQVSZVTUVIUVSWAWBUVI
      UUCOUUJUVJUWFPZPUWDFUVITZUWEUUCUUMWCUVIWDHZUUJUWMUWNUUCWDHUWOCWEUUCUUMWDW
      FUMFEUUHUVIWDBWJWGUWDFUVIUUCWHWKZWIUVNUUDUWBUWEUVGLUWHUWIUWDUVFFUUCUWIFCV
      BZPZUWDUVEEUVIUUMUDZSZUVFUWRUWDUVEEUUMSZUWTUWRUWDUVSUVCBQZRZUXAUWIUWDUXCL
      ZUWQUWIUWGUXDUWLUVEUXCEUVSUVIEGUHUVDUXBUVBUVSUVCBVCWLWMWBWNUWRUXCUULUVCBQ
      ZRZUXAUWRUXEUXBUWRUVTUXEUXBUWAUVTUVOUUDUWQWOUWRUUDUWAUVOUWQUVTUXEPUXBLUUD
      UWBUWQXAUWAUVTUVOUUDUWQWPUWAUVTUVOUUDUWQWQZUWIUWQWRUUCUVSUULUVCBWSWTXBXCU
      VEUXFEUULDWEEDUHUVDUXEUVBUULUVCBVCWLXDXEXFUWDUXAUWTUVEEUVIUUMXGXLXHUWRUVO
      UWTUVFYNUXGUVOUVEEUWSUUCUUCUULXIXJWBXKXMVTXNXOXPXQUVQRUVPRZEUUCSZUVRUVPEU
      UCXRUVOUXIUVGUVFUXIFUULUUCFDUHZUVEUXHEUUCUXJUVDUVPUVCUULUVBBYCWLXSXTYAYBY
      DUVORUVIUUCUEZUVNUVGUULUUCYEUURUVJUUTUXKUVGLZUUJUVJUUTUXLLUUOUUJUVJPZUXKU
      UTUVGUXMUWFUWELUXKUUTUVGLUUJUVJUWFUWEUWPYFUXKUWFUUTUWEUVGUVIUUCMYGUXKUWDU
      VFFUUCUVEEUVIUUCYHYINYJYOYKYLYMYPXLXQYQCFEUUNBYRYSXLXHUJYTVJ $.
  $}

  ${
    $d R x y z $.  $d A x y z $.
    $( A finite set has a maximum under a total order.  (Contributed by Jeff
       Madsen, 18-Jun-2010.)  (Proof shortened by Mario Carneiro,
       29-Jan-2014.) $)
    fimax2g $p |- ( ( R Or A /\ A e. Fin /\ A =/= (/) ) ->
                                        E. x e. A A. y e. A -. x R y ) $=
      ( wor cfn wcel c0 wne w3a ccnv cv wbr wn wral wrex wpo sylib wa vex cnvpo
      wfr sopo frfi sylan 3adant3 wss ssid fri mpanr1 an32s brcnv notbii ralbii
      wi rexbii ex 3adant1 mpd ) CDEZCFGZCHIZJCDKZUBZALZBLZDMZNZBCOZACPZUTVAVDV
      BUTCVCQZVAVDUTCDQVKCDUCCDUARCVCUDUEUFVAVBVDVJUOUTVAVBSZVDVJVLVDSVFVEVCMZN
      ZBCOZACPZVJVAVDVBVPVAVDSCCUGVBVPCUHABCCFVCUIUJUKVOVIACVNVHBCVMVGVFVEDBTAT
      ULUMUNUPRUQURUS $.

    $( A finite set has a maximum under a total order.  (Contributed by Jeff
       Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
       29-Jan-2014.) $)
    fimaxg $p |- ( ( R Or A /\ A e. Fin /\ A =/= (/) ) ->
                            E. x e. A A. y e. A ( x =/= y -> y R x ) ) $=
      ( wor cfn wcel c0 wne w3a cv wbr wi wral wrex wn fimax2g wb wa weq imbi1i
      df-ne pm4.64 bitri sotric con2bid syl5bb anassrs ralbidva rexbidva mpbird
      wo 3ad2ant1 ) CDEZCFGZCHIZJAKZBKZIZURUQDLZMZBCNZACOZUQURDLZPZBCNZACOZABCD
      QUNUOVCVGRUPUNVBVFACUNUQCGZSVAVEBCUNVHURCGZVAVERVAABTZUTULZUNVHVISSZVEVAV
      JPZUTMVKUSVMUTUQURUBUAVJUTUCUDVLVDVKCUQURDUEUFUGUHUIUJUMUK $.

    $( Lemma showing existence and closure of supremum of a finite set.
       (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    fisupg $p |- ( ( R Or A /\ A e. Fin /\ A =/= (/) ) -> E. x e. A ( A. y e. A
            -. x R y /\ A. y e. A ( y R x -> E. z e. A y R z ) ) ) $=
      ( wor cfn wcel c0 wne w3a cv wbr wi wral wrex wn wa ex anassrs fimaxg weq
      sotrieq2 simprbda a1dd pm2.27 so2nr pm3.21 con3d syl9r pm2.61dne ralimdva
      syl5com breq2 rspcev ralrimivw adantl jctird reximdva 3ad2ant1 mpd ) DEFZ
      DGHZDIJZKALZBLZJZVFVEEMZNZBDOZADPZVEVFEMZQZBDOZVHVFCLZEMZCDPZNZBDOZRZADPZ
      ABDEUAVBVCVKWANVDVBVJVTADVBVEDHZRZVJVNVSWCVIVMBDWCVFDHZRZVIVMNVEVFWEABUBZ
      VMVIVBWBWDWFVMNVBWBWDRRZWFVMWGWFVMVHQDVEVFEUCUDSTUEVGVIVHWEVMVGVHUFVBWBWD
      VHVMNWGVLVHRZQVHVMDVEVFEUGVHVLWHVHVLUHUIUMTUJUKULWBVSVBWBVRBDWBVHVQVPVHCV
      EDVOVEVFEUNUOSUPUQURUSUTVA $.
  $}

  $( A total order on a finite set is a well-order.  (Contributed by Jeff
     Madsen, 18-Jun-2010.)  (Proof shortened by Mario Carneiro,
     29-Jan-2014.) $)
  wofi $p |- ( ( R Or A /\ A e. Fin ) -> R We A ) $=
    ( wor cfn wcel wa wfr wwe wpo sopo frfi sylan simpl df-we sylanbrc ) ABCZAD
    EZFABGZPABHPABIQRABJABKLPQMABNO $.

  ${
    $d A x y $.
    $( The maximum of a finite collection of ordinals is in the set.
       (Contributed by Mario Carneiro, 28-May-2013.)  (Revised by Mario
       Carneiro, 29-Jan-2014.) $)
    ordunifi $p |- ( ( A C_ On /\ A e. Fin /\ A =/= (/) ) -> U. A e. A ) $=
      ( vx vy con0 wss cfn wcel c0 wne w3a cuni cv wrex cep wn wral wb wa ssel2
      wor wbr wwe epweon weso ax-mp soss mpi fimax2g syl3an1 adantr ontri1 epel
      adantlr notbii syl6rbbr syl2anc ralbidva unissb syl6bbr rexbidva 3ad2ant1
      mpbid elssuni wceq eqss eleq1 biimpcd syl5bir mpand rexlimiv syl ) ADEZAF
      GZAHIZJZAKZBLZEZBAMZVPAGZVOVQCLZNUAZOZCAPZBAMZVSVLANTZVMVNWEVLDNTZWFDNUBW
      GUCDNUDUEADNUFUGBCANUHUIVLVMWEVSQVNVLWDVRBAVLVQAGZRZWDWAVQEZCAPVRWIWCWJCA
      WIWAAGZRWADGZVQDGZWCWJQVLWKWLWHADWASUMWIWMWKADVQSUJWLWMRWJVQWAGZOWCWAVQUK
      WBWNBCULUNUOUPUQCAVQURUSUTVAVBVRVTBAWHVQVPEZVRVTVQAVCWOVRRVQVPVDZWHVTVQVP
      VEWPWHVTVQVPAVFVGVHVIVJVK $.
  $}

  $( The union (supremum) of a finite set of finite ordinals is a finite
     ordinal.  (Contributed by Stefan O'Rear, 5-Nov-2014.) $)
  nnunifi $p |- ( ( S C_ _om /\ S e. Fin ) -> U. S e. _om ) $=
    ( com wss cfn wcel wa cuni c0 wceq unieq peano1 eqeltri syl6eqel adantl wne
    uni0 simpll con0 omsson syl6ss simplr ordunifi syl3anc sseldd pm2.61dane
    simpr ) ABCZADEZFZAGZBEZAHAHIZUKUIULUJHGZBAHJUMHBPKLMNUIAHOZFZABUJUGUHUNQZU
    OARCUHUNUJAEUOABRUPSTUGUHUNUAUIUNUFAUBUCUDUE $.

  ${
    $d x y A $.  $d x y B $.
    $( Lemma for ~ unbnn .  After removing the successor of an element from an
       unbounded set of natural numbers, the intersection of the result belongs
       to the original unbounded set.  (Contributed by NM, 3-Dec-2003.) $)
    unblem1 $p |- ( ( ( B C_ _om /\ A. x e. _om E. y e. B x e. y ) /\
                 A e. B ) -> |^| ( B \ suc A ) e. B ) $=
      ( com wss cv wcel wrex wral wa csuc cdif cint con0 c0 ssel wn wi syl6 wne
      omsson sstr mpan2 ssdifssd peano2b syl6ib wceq eleq1 rexbidv rspccva word
      ad2antrr nnord ordn2lp imnan sylibr con2d syl imdistand eldif ne0i sylbir
      expd rexlimdv syl5 sylan2d impl onint syl2anc eldifad ) DEFZAGZBGZHZBDIZA
      EJZKCDHZKZDCLZMZNZDVTVSWAOFZWAPUAZWBWAHVLWCVQVRVLDOVTVLEOFDOFUBDEOUCUDUEU
      MVLVQVRWDVLVRVTEHZVQWDVLVRCEHWEDECQCUFUGVQWEKVTVNHZBDIZVLWDVPWGAVTEVMVTUH
      VOWFBDVMVTVNUIUJUKVLWFWDBDVLVNDHZWFWDVLWHWFKWHVNVTHZRZKZWDVLWHWFWJVLWHVNE
      HZWFWJSZDEVNQWLVNULZWMVNUNWNWIWFWNWIWFKRWIWFRSVNVTUOWIWFUPUQURUSTUTWKVNWA
      HWDVNDVTVAWAVNVBVCTVDVEVFVGVHWAVIVJVK $.
  $}

  ${
    $d u v w x y z A $.  $d u v w y z F $.
    unblem.2 $e |- F =
          ( rec ( ( x e. _V |-> |^| ( A \ suc x ) ) , |^| A ) |` _om ) $.
    $( Lemma for ~ unbnn .  The value of the function ` F ` belongs to the
       unbounded set of natural numbers ` A ` .  (Contributed by NM,
       3-Dec-2003.) $)
    unblem2 $p |- ( ( A C_ _om /\ A. w e. _om E. v e. A w e. v )
        -> ( z e. _om -> ( F ` z ) e. A ) ) $=
      ( cv com wcel wss wa cfv c0 csuc wceq fveq2 eleq1d cint con0 vu wrex wral
      vy wne omsson sstr mpan2 wi peano1 eleq1 rexbidv rspcv ax-mp df-rex sylib
      wex exsimpl syl n0 sylibr onint syl2an cdif cmpt crdg cres fveq1i syl5req
      cvv fr0g ibi unblem1 wb suceq difeq2d inteqd frsucmpt2 eqcomd ex ibd syl5
      expd finds2 com12 ) BHZIJEIKZCHZDHZJZDEUBZCIUCZLZWFFMZEJZWONFMZEJZUAHZFMZ
      EJZWROZFMZEJZWMBUAWFNPWNWPEWFNFQRWFWRPWNWSEWFWRFQRWFXAPWNXBEWFXAFQRWMESZE
      JZWQWGETKZENUEZXEWLWGITKXFUFEITUGUHWLWIEJZDUQZXGWLXHNWIJZLDUQZXIWLXJDEUBZ
      XKNIJWLXLUIUJWKXLCNIWHNPWJXJDEWHNWIUKULUMUNXJDEUOUPXHXJDURUSDEUTVAEVBVCXE
      WQXEXDWPEXEWPNAVJEAHZOZVDZSZVEZXDVFIVGZMXDNFXRGVHXDEXQVKVIRVLUSWRIJZWMWTX
      CWMWTLEWSOZVDZSZEJZXSXCCDWSEVMXSYCXCXSYCYCXCVNXSYCLZYBXBEYDXBYBAUDXDWRXPY
      BEUDHZOZVDZSFEGYEXMPZYGXOYHYFXNEYEXMVOVPVQYEWSPZYGYAYIYFXTEYEWSVOVPVQVRVS
      RVTWAWBWCWDWE $.

    $( Lemma for ~ unbnn .  The value of the function ` F ` is less than its
       value at a successor.  (Contributed by NM, 3-Dec-2003.) $)
    unblem3 $p |- ( ( A C_ _om /\ A. w e. _om E. v e. A w e. v )
        -> ( z e. _om -> ( F ` z ) e. ( F ` suc z ) ) ) $=
      ( vy com wss cv wcel wa cfv csuc cdif cint con0 wceq ex wrex wral unblem2
      imp omsson sstr mpan2 ssel anc2li syl ad2antrr mpd onmindif unblem1 suceq
      wi syld difeq2d inteqd frsucmpt2 sylcom eleqtrrd ) EIJZCKDKLDEUACIUBZMZBK
      ZILZVFFNZVFOFNZLVEVGMZVHEVHOZPZQZVIVJERJZVHRLZMZVHVMLVJVHELZVPVEVGVQABCDE
      FGUCZUDVCVQVPUPZVDVGVCVNVSVCIRJVNUEEIRUFUGVNVQVOERVHUHUIUJUKULEVHUMUJVEVG
      VIVMSZVEVGVMELZVTVEVGVQWAVRVEVQWACDVHEUNTUQVGWAVTAHEQVFEAKZOZPZQVMEHKZOZP
      ZQFEGWEWBSZWGWDWHWFWCEWEWBUOURUSWEVHSZWGVLWIWFVKEWEVHUOURUSUTTVAUDVBT $.

    $( Lemma for ~ unbnn .  The function ` F ` maps the set of natural numbers
       one-to-one to the set of unbounded natural numbers ` A ` .  (Contributed
       by NM, 3-Dec-2003.) $)
    unblem4 $p |- ( ( A C_ _om /\ A. w e. _om E. v e. A w e. v ) ->
                 F : _om -1-1-> A ) $=
      ( vz com wss cv wcel wrex wral wa con0 cfv csuc wfn cint ralrimiv wf sstr
      wf1 omsson mpan2 adantr cvv cdif cmpt crdg cres frfnom fneq1i mpbir ffnfv
      unblem2 biimpri sylancr unblem3 omsmo syl21anc ) DHIZBJCJKCDLBHMZNZDOIZHD
      EUAZGJZEPZVGQEPKZGHMHDEUCVBVEVCVBHOIVEUDDHOUBUEUFVDEHRZVHDKZGHMZVFVJAUGDA
      JQUHSUIZDSZUJHUKZHRVNVMULHEVOFUMUNVDVKGHAGBCDEFUPTVFVJVLNGHDEUOUQURVDVIGH
      AGBCDEFUSTGDEUTVA $.
  $}

  ${
    $d x y z A $.
    $( Any unbounded subset of natural numbers is equinumerous to the set of
       all natural numbers.  Part of the proof of Theorem 42 of [Suppes]
       p. 151.  See ~ unbnn3 for a stronger version without the first
       assumption.  (Contributed by NM, 3-Dec-2003.) $)
    unbnn $p |- ( ( _om e. _V /\ A C_ _om /\ A. x e. _om E. y e. A x e. y ) ->
      A ~~ _om ) $=
      ( vz com cvv wcel wss wrex wral w3a cdom wbr cen ssdomg 3adant3 csuc cint
      cv imp cdif cmpt crdg cres wf1 simp1 ssexg ancoms unblem4 3adant1 f1dom2g
      eqid syl3anc sbth syl2anc ) EFGZCEHZASBSGBCIAEJZKZCELMZECLMZCENMUPUQUTURU
      PUQUTCEFOTPUSUPCFGZECDFCDSQUARUBCRUCEUDZUEZVAUPUQURUFUPUQVBURUQUPVBCEFUGU
      HPUQURVDUPDABCVCVCULUIUJECVCFFUKUMCEUNUO $.

    $( Version of ~ unbnn that does not require a strict upper bound.
       (Contributed by NM, 24-Apr-2004.) $)
    unbnn2 $p |- ( ( _om e. _V /\ A C_ _om /\ A. x e. _om E. y e. A x C_ y ) ->
      A ~~ _om ) $=
      ( vz cv wss wrex com wral cvv wcel cen wbr csuc peano2 wceq sseq1 rexbidv
      rspcv wi vex sucssel ax-mp reximi syl6com syl5 ralrimiv unbnn syl3an3 ) A
      EZBEZFZBCGZAHIZHJKCHFDEZUKKZBCGZDHICHLMUNUQDHUOHKUONZHKZUNUQUOOUSUNURUKFZ
      BCGZUQUMVAAURHUJURPULUTBCUJURUKQRSUTUPBCUOJKUTUPTDUAUOUKJUBUCUDUEUFUGDBCU
      HUI $.
  $}

  ${
    $d y z w A $.
    $( Any set strictly dominated by the class of natural numbers is finite.
       Sufficiency part of Theorem 42 of [Suppes] p. 151.  This theorem does
       not require the Axiom of Infinity.  (Contributed by NM, 24-Apr-2004.) $)
    isfinite2 $p |- ( A ~< _om -> A e. Fin ) $=
      ( vy vz vw com cvv wcel csdm wbr cfn cv cen wss wa wrex wral syl2anc con0
      wn wi relsdom brrelex2i wex sdomdom domeng syl5ib ensym ad2antrl ensdomtr
      cdom simpl sdomnen syl simpr unbnn 3expia syl2an mtod rexnal csuc word wb
      omsson sstr mpan2 nnord cuni ssel2 vex sylib ordtri1 sylan an32s ralbidva
      elon unissb ralnex bicomi 3bitr4g ordunisssuc bitr3d ssnnfi sylanb adantl
      peano2b sylbid rexlimdva syl5bir ad2antll mpd simprl enfii exlimdv sylcom
      ex mpcom ) EFGZAEHIZAJGZAEHUAUBZWQWRABKZLIZXAEMZNZBUCZWSWRAEUJIWQXEAEUDBA
      EFUEUFWRXDWSBWRXDWSWRXDNZXAJGZXBWSXFCKZDKZGZDXAOZCEPZSZXGXFXLXAELIZXFXAEH
      IZXNSXFXAALIZWRXOXBXPWRXCAXAUGUHWRXDUKXAAEUIQXAEULUMWRWQXCXLXNTXDWTXBXCUN
      WQXCXLXNCDXAUOUPUQURXCXMXGTWRXBXMXKSZCEOXCXGXKCEUSXCXQXGCEXCXHEGZNXQXAXHU
      TZMZXGXCXARMZXHVAZXQXTVBXRXCERMYAVCXAERVDVEXHVFYAYBNZXAVGXHMZXQXTYCXIXHMZ
      DXAPXJSZDXAPZYDXQYCYEYFDXAYAXIXAGZYBYEYFVBZYAYHNZXIVAZYBYIYJXIRGYKXARXIVH
      XIDVIVOVJXIXHVKVLVMVNDXAXHVPYGXQXJDXAVQVRVSXAXHVTWAUQXRXTXGTXCXRXTXGXRXSE
      GXTXGXHWEXSXAWBWCWOWDWFWGWHWIWJWRXBXCWKAXAWLQWOWMWNWP $.
  $}

  ${
    $d x A $.
    $( Omega strictly dominates a natural number.  Example 3 of [Enderton]
       p. 146.  In order to avoid the Axiom of infinity, we include it as a
       hypothesis.  (Contributed by NM, 15-Jun-1998.) $)
    nnsdomg $p |- ( ( _om e. _V /\ A e. _om ) -> A ~< _om ) $=
      ( vx com cvv wcel wa cdom wbr cen csdm wss word ordom ordelss mpan ssdomg
      wn syl5 imp cfn ominf ensym cv wrex rspcev isfi sylibr mtoi adantl brsdom
      breq2 ex sylanbrc ) CDEZACEZFACGHZACIHZQZACJHUNUOUPUOACKZUNUPCLUOUSMCANOA
      CDPRSUOURUNUOUQCTEZUAUQCAIHZUOUTACUBUOVAUTUOVAFCBUCZIHZBCUDUTVCVABACVBACI
      UKUEBCUFUGULRUHUIACUJUM $.

    $( A set is finite iff it is strictly dominated by the class of natural
       number.  Theorem 42 of [Suppes] p. 151.  In order to avoid the Axiom of
       infinity, we include it as a hypothesis.  (Contributed by NM,
       3-Nov-2002.)  (Revised by Mario Carneiro, 27-Apr-2015.) $)
    isfiniteg $p |- ( _om e. _V -> ( A e. Fin <-> A ~< _om ) ) $=
      ( vx com cvv wcel cfn csdm wbr cv wrex isfi wa nnsdomg sdomen1 syl5ibrcom
      cen rexlimdva syl5bi isfinite2 impbid1 ) CDEZAFEZACGHZUBABIZPHZBCJUAUCBAK
      UAUEUCBCUAUDCELUCUEUDCGHUDMAUDCNOQRAST $.
  $}

  $( An infinite set strictly dominates a natural number.  (Contributed by NM,
     22-Nov-2004.)  (Revised by Mario Carneiro, 27-Apr-2015.) $)
  infsdomnn $p |- ( ( _om ~<_ A /\ B e. _om ) -> B ~< A ) $=
    ( com cdom wbr wcel wa csdm cvv reldom brrelexi nnsdomg sylan simpl syl2anc
    sdomdomtr ) CADEZBCFZGBCHEZQBAHEQCIFRSCADJKBLMQRNBCAPO $.

  $( An infinite set is not empty.  (Contributed by NM, 23-Oct-2004.) $)
  infn0 $p |- ( _om ~<_ A -> A =/= (/) ) $=
    ( com cdom wbr c0 csdm wne wcel peano1 infsdomnn mpan2 cvv reldom brrelex2i
    wb 0sdomg syl mpbid ) BACDZEAFDZAEGZSEBHTIAEJKSALHTUAOBACMNALPQR $.

  $( This (useless) theorem, which was proved without the Axiom of Infinity,
     demonstrates an artifact of our definition of binary relation, which is
     meaningful only when its arguments exist.  In particular, the antecedent
     cannot be satisfied unless ` _om ` exists.  (Contributed by NM,
     13-Nov-2003.) $)
  fin2inf $p |- ( A ~< _om -> _om e. _V ) $=
    ( com csdm relsdom brrelex2i ) ABCDE $.

  ${
    $d x y A $.  $d w x y z B $.  $d w y z F $.
    unfilem1.1 $e |- A e. _om $.
    unfilem1.2 $e |- B e. _om $.
    unfilem1.3 $e |- F = ( x e. B |-> ( A +o x ) ) $.
    $( Lemma for proving that the union of two finite sets is finite.
       (Contributed by NM, 10-Nov-2002.)  (Revised by Mario Carneiro,
       31-Aug-2015.) $)
    unfilem1 $p |- ran F = ( ( A +o B ) \ A ) $=
      ( vy coa co cv wceq wcel wa com wb word nnord sylancr eleq1 crn cdif wrex
      wn elnn mpan2 nnaord mp3an23 syl ibi wss nnaword1 ax-mp nnacl ordtri1 jca
      notbid anbi12d biimparc rexlimiva nnacli syl2an nnawordex bitr3d sylan9bb
      mpbid sylan biimprcd wi biimpi adantl a1i jcad reximdv2 sylbid imp impbii
      eqcom ovex elrnmpti eldif 3bitr4i eqriv ) HDUAZBCIJZBUBZHKZBAKZIJZLZACUCZ
      WGWEMZWGBMZUDZNZWGWDMWGWFMWKWOWJWOACWHCMZWIWEMZWIBMZUDZNZWJWOWPWQWSWPWQWP
      WHOMZWPWQPZWPCOMZXAFWHCUEUFZXAXCBOMZXBFEWHCBUGUHZUIUJWPXEXAWSEXDXEXANZBWI
      UKZWSBWHULXGBQZWIQZXHWSPXEXIEBRZUMXGWIOMXJBWHUNWIRUIBWIUOSVFSUPWJWOWTWJWL
      WQWNWSWGWIWETWJWMWRWGWIBTUQURUSVGUTWLWNWKWLWNWIWGLZAOUCZWKWLXEWGOMZWNXMPE
      WLWEOMXNBCEFVAWGWEUEUFXEXNNBWGUKZWNXMXEXIWGQXOWNPXNXKWGRBWGUOVBABWGVCVDSW
      LXLWJAOCWLXAXLNZWPWJXPWPWLXAWPWQXLWLXFWIWGWETVEVHXPWJVIWLXLWJXAXLWJWIWGVR
      VJVKVLVMVNVOVPVQACWIWGDGBWHIVSVTWGWEBWAWBWC $.

    $( Lemma for proving that the union of two finite sets is finite.
       (Contributed by NM, 10-Nov-2002.)  (Revised by Mario Carneiro,
       31-Aug-2015.) $)
    unfilem2 $p |- F : B -1-1-onto-> ( ( A +o B ) \ A ) $=
      ( vz vw coa co cv cfv wceq wral ovex mpbir2an wcel oveq2 com cdif wf1 wfo
      wf1o wf wi wfn crn fnmpti unfilem1 df-fo ax-mp wa fvmpt eqeqan12d wb elnn
      fof mpan2 nnacan mp3an1 syl2an bitrd biimpd rgen2a dff13 df-f1o ) CBCJKBU
      AZDUDCVHDUBZCVHDUCZVICVHDUEZHLZDMZILZDMZNZVLVNNZUFZICOHCOVJVKVJDCUGDUHVHN
      ACBALZJKZDBVSJPGUIABCDEFGUJCVHDUKQZCVHDURULVRHICVLCRZVNCRZUMZVPVQWDVPBVLJ
      KZBVNJKZNZVQWBWCVMWEVOWFAVLVTWECDVSVLBJSGBVLJPUNAVNVTWFCDVSVNBJSGBVNJPUNU
      OWBVLTRZVNTRZWGVQUPZWCWBCTRZWHFVLCUQUSWCWKWIFVNCUQUSBTRWHWIWJEBVLVNUTVAVB
      VCVDVEHICVHDVFQWACVHDVGQ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Lemma for proving that the union of two finite sets is finite.
       (Contributed by NM, 16-Nov-2002.)  (Revised by Mario Carneiro,
       31-Aug-2015.) $)
    unfilem3 $p |- ( ( A e. _om /\ B e. _om ) -> B ~~ ( ( A +o B ) \ A ) ) $=
      ( vx com wcel coa co cdif cen wbr c0 wceq oveq1 id difeq12d breq2d peano1
      cif cvv elimel oveq2 difeq1d breq12d cmpt wf1o ovex difexg ax-mp unfilem2
      cv eqid f1oen2g mp3an dedth2h ) ADEZBDEZBABFGZAHZIJBUOAKRZBFGZUSHZIJUPBKR
      ZUSVBFGZUSHZIJZABKKAUSLZURVABIVFUQUTAUSAUSBFMVFNOPBVBLZBVBVAVDIVGNVGUTVCU
      SBVBUSFUAUBUCVBDEVDSEZVBVDCVBUSCUJFGUDZUEVEBKDQTZVCSEVHUSVBFUFVCUSSUGUHCU
      SVBVIAKDQTVJVIUKUIVBVDVIDSULUMUN $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( The union of two finite sets is finite.  Part of Corollary 6K of
       [Enderton] p. 144.  (Contributed by NM, 16-Nov-2002.) $)
    unfi $p |- ( ( A e. Fin /\ B e. Fin ) -> ( A u. B ) e. Fin ) $=
      ( vx vy vz cfn wcel cdif cun wa cv cen wbr com wrex isfi cin wceq disjdif
      c0 diffi reeanv anbi12i bitr4i coa co nnacl unfilem3 entr expcom syl unen
      mpanr12 undif2 a1i wss nnaword1 undif sylib breq12d syl5ib sylan2d rspcev
      wi breq2 sylibr syl6an rexlimivv sylbir sylan2 ) BFGAFGZBAHZFGZABIZFGZBAU
      AVKVMJZACKZLMZVLDKZLMZJZDNOCNOZVOWBVRCNOZVTDNOZJVPVRVTCDNNUBVKWCVMWDCAPDV
      LPUCUDWAVOCDNNVQNGVSNGJZVQVSUEUFZNGZWAVNWFLMZVOVQVSUGWEVTVLWFVQHZLMZVRWHW
      EVSWILMZVTWJVDVQVSUHVTWKWJVLVSWIUIUJUKVRWJJZAVLIZVQWIIZLMZWEWHWLAVLQTRVQW
      IQTRWOABSVQWFSAVQVLWIULUMWEWMVNWNWFLWMVNRWEABUNUOWEVQWFUPWNWFRVQVSUQVQWFU
      RUSUTVAVBWGWHJVNEKZLMZENOVOWQWHEWFNWPWFVNLVEVCEVNPVFVGVHVIVJ $.
  $}

  $( If a union is finite, the operands are finite.  Converse of ~ unfi .
     (Contributed by FL, 3-Aug-2009.) $)
  unfir $p |- ( ( A u. B ) e. Fin -> ( A e. Fin /\ B e. Fin ) ) $=
    ( cun cfn wcel wss ssun1 ssfi mpan2 ssun2 jca ) ABCZDEZADEZBDEZMALFNABGLAHI
    MBLFOBAJLBHIK $.

  $( The union of two finite sets is finite.  Part of Corollary 6K of
     [Enderton] p. 144.  This version of ~ unfi is useful only if we assume the
     Axiom of Infinity (see comments in ~ fin2inf ).  (Contributed by NM,
     22-Oct-2004.)  (Revised by Mario Carneiro, 27-Apr-2015.) $)
  unfi2 $p |- ( ( A ~< _om /\ B ~< _om ) -> ( A u. B ) ~< _om ) $=
    ( com csdm wbr wa cun cfn wcel isfinite2 syl2an wb fin2inf adantr isfiniteg
    unfi cvv syl mpbid ) ACDEZBCDEZFZABGZHIZUCCDEZTAHIBHIUDUAAJBJABPKUBCQIZUDUE
    LTUFUAAMNUCORS $.

  $( An infinite set ` A ` minus a finite set is infinite.  (Contributed by FL,
     3-Aug-2009.) $)
  difinf $p |- ( ( -. A e. Fin /\ B e. Fin ) -> -. ( A \ B ) e. Fin ) $=
    ( cfn wcel wn cdif wa cun undif1 eleq1i unfir simpld sylbi syl expcom con3d
    unfi impcom ) BCDZACDZEABFZCDZESUBTUBSTUBSGUABHZCDZTUABQUDABHZCDZTUCUECABIJ
    UFTSABKLMNOPR $.

  ${
    $d A w x y z $.  $d B w x y z $.
    $( The Cartesian product of two finite sets is finite.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 12-Mar-2015.) $)
    xpfi $p |- ( ( A e. Fin /\ B e. Fin ) -> ( A X. B ) e. Fin ) $=
      ( vx vy vz vw cfn wcel cxp cv wi c0 csn cdif wceq xpeq1 eleq1d imbi2d cvv
      wa 0xp 0fin eqeltri a1i wral wn wex neq0 sneq difeq2d xpeq1d rspcv adantl
      pm2.27 ad2antlr cen wbr c2nd cres wf1o snex xpexg id vex 2ndconst f1oen2g
      mpan mp1i syl3anc enfii mpdan cun unfi xpundir difsnid biimpd syl5 mpan2d
      syl5eqr 3syld ex exlimdv syl5bi syl6eqel a1d pm2.61d2 com23 findcard imp
      ) AGHBGHZABIZGHZWJCJZBIZGHZKWJLBIZGHZKWJDJZEJZMZNZBIZGHZKZWJWRBIZGHZKWJWL
      KCDEAWMLOZWOWQWJXGWNWPGWMLBPQRWMXAOZWOXCWJXHWNXBGWMXABPQRWMWROZWOXFWJXIWN
      XEGWMWRBPQRWMAOZWOWLWJXJWNWKGWMABPQRWQWJWPLGBUAUBUCZUDWRGHZWJXDEWRUEZXFXL
      WJXMXFKZXLWJTZWRLOZXNXPUFFJZWRHZFUGXOXNFWRUHXOXRXNFXOXRXNXOXRTZXMWJWRXQMZ
      NZBIZGHZKZYCXFXRXMYDKXOXDYDEXQWRWSXQOZXCYCWJYEXBYBGYEXAYABYEWTXTWRWSXQUIU
      JUKQRULUMWJYDYCKXLXRWJYCUNUOXSYCXTBIZGHZXFWJYGXLXRWJYFBUPUQZYGWJYFSHZWJYF
      BURYFUSZUTZYHXTSHWJYIXQVAXTBSGVBVGWJVCXQSHYKWJFVDXQBSVEVHYFBYJSGVFVIYFBVJ
      VKUOYCYGTYBYFVLZGHZXSXFYBYFVMXRYMXFKXOXRYMXFXRYLXEGXRYLYAXTVLZBIXEYAXTBVN
      XRYNWRBWRXQVOUKVSQVPUMVQVRVTWAWBWCXPXFXMXPXEWPGWRLBPXKWDWEWFWAWGWHWI $.
  $}

  $( The Cartesian product of three finite sets is a finite set.  (Contributed
     by Alexander van der Vekens, 11-Mar-2018.) $)
  3xpfi $p |- ( V e. Fin -> ( ( V X. V ) X. V ) e. Fin ) $=
    ( cxp cfn wcel xpfi anidms mpancom ) AABZCDZACDZHABCDJIAAEFHAEG $.

  ${
    $d A a b c f $.  $d B a b c f $.  $d X a b c f $.  $d Y a b c f $.
    $( A finite set union cancellation law for dominance.  (Contributed by
       Stefan O'Rear, 19-Feb-2015.)  (Revised by Stefan O'Rear, 5-May-2015.) $)
    domunfican $p |- ( ( ( A e. Fin /\ B ~~ A ) /\
          ( ( A i^i X ) = (/) /\ ( B i^i Y ) = (/) ) ) ->
        ( ( A u. X ) ~<_ ( B u. Y ) <-> X ~<_ Y ) ) $=
      ( wcel wbr c0 wceq wa cun cdom wb wi cima anbi1d uneq1d breq12d bibi1d wn
      wss vf va vb vc cfn cen cin cv wf1o wex ensym bren sylib ssid sseq1 uneq1
      w3a csn imaeq2 imbi12d uncom un0 eqtri ima0 breq12i a1i ssun1 sstr2 ax-mp
      uneq1i anim1i imim1i cfv unass imaundi wfn simprlr f1ofn syl ssun2 sylibr
      vex snss adantr ad2antrl fnsnfv syl2anc eqcomd uneq2d syl5eq syl6eq incom
      simplr simprrl minel wo ioran elun xchnxbir sylanbrc f1of1 adantl f1elima
      wf1 syl3anc biimpd mtod adantrr wf f1of ffvelrnd simprrr domunsncan bitrd
      fvex bitr ex a2d syl5 findcard2s expd mpani 3imp wfo f1ofo foima 3ad2ant2
      breq2d mpbid 3exp exlimdv imp31 ) AUEEZBAUFFZACUGZGHZBDUGZGHZIZACJZBDJZKF
      ZCDKFZLZYNABUAUHZUIZUAUJZYMYSUUDMZYNABUFFUUGBAUKABUAULUMYMUUFUUHUAYMUUFYS
      UUDYMUUFYSUQYTUUEANZDJZKFZUUCLZUUDYMUUFYSUULYMAATZUUFYSUULMAUNYMUUMUUFIZY
      SUULUBUHZATZUUFIZYSIZUUOCJZUUEUUONZDJZKFZUUCLZMGATZUUFIZYSIZGCJZUUEGNZDJZ
      KFZUUCLZMUCUHZATZUUFIZYSIZUVLCJZUUEUVLNZDJZKFZUUCLZMZUVLUDUHZURZJZATZUUFI
      ZYSIZUWDCJZUUEUWDNZDJZKFZUUCLZMZUUNYSIZUULMUBUCUDAUUOGHZUURUVFUVCUVKUWOUU
      QUVEYSUWOUUPUVDUUFUUOGAUOOOUWOUVBUVJUUCUWOUUSUVGUVAUVIKUUOGCUPUWOUUTUVHDU
      UOGUUEUSPQRUTUUOUVLHZUURUVOUVCUVTUWPUUQUVNYSUWPUUPUVMUUFUUOUVLAUOOOUWPUVB
      UVSUUCUWPUUSUVPUVAUVRKUUOUVLCUPUWPUUTUVQDUUOUVLUUEUSPQRUTUUOUWDHZUURUWGUV
      CUWLUWQUUQUWFYSUWQUUPUWEUUFUUOUWDAUOOOUWQUVBUWKUUCUWQUUSUWHUVAUWJKUUOUWDC
      UPUWQUUTUWIDUUOUWDUUEUSPQRUTUUOAHZUURUWNUVCUULUWRUUQUUNYSUWRUUPUUMUUFUUOA
      AUOOOUWRUVBUUKUUCUWRUUSYTUVAUUJKUUOACUPUWRUUTUUIDUUOAUUEUSPQRUTUVKUVFUVGC
      UVIDKUVGCGJCGCVACVBVCUVIGDJZDUVHGDUUEVDVJUWSDGJDGDVADVBVCVCVEVFUWAUWGUVTM
      UVLUEEZUWBUVLEZSZIZUWMUWGUVOUVTUWFUVNYSUWEUVMUUFUVLUWDTUWEUVMMUVLUWCVGUVL
      UWDAVHVIZVKVKVLUXCUWGUVTUWLUXCUWGUVTUWLMZUXCUWGIZUWKUVSLZUXEUXFUWKUWCUVPJ
      ZUWBUUEVMZURZUVRJZKFZUVSUXFUWHUXHUWJUXKKUWHUXHHUXFUWHUWCUVLJZCJUXHUWDUXMC
      UVLUWCVAVJUWCUVLCVNVCVFUXFUWJUVQUXJJZDJZUXKUXFUWIUXNDUXFUWIUVQUUEUWCNZJUX
      NUUEUVLUWCVOUXFUXPUXJUVQUXFUXJUXPUXFUUEAVPZUWBAEZUXJUXPHUXFUUFUXQUXCUWEUU
      FYSVQZABUUEVRVSUWFUXRUXCYSUWEUXRUUFUWEUWCATZUXRUWCUWDTUWEUXTMUWCUVLVTUWCU
      WDAVHVIUWBAUDWBZWCWAWDZWEZAUWBUUEWFWGWHWIWJPUXOUXJUVQJZDJUXKUXNUYDDUVQUXJ
      VAVJUXJUVQDVNVCWKQUXFUWBUVPEZSZUXIUVREZSZUXLUVSLUXFUXBUWBCEZSZUYFUWTUXBUW
      GWMUXFUXRCAUGZGHUYJUYCUXFUYKYOGCAWLUXCUWFYPYRWNWJUWBACWOWGUXAUYIWPUXBUYJI
      UYEUXAUYIWQUWBUVLCWRWSWTUXFUXIUVQEZSZUXIDEZSZUYHUXCUWFUYMYSUXCUWFIUYLUXAU
      WTUXBUWFWMUWFUYLUXAMUXCUWFUYLUXAUWFABUUEXDZUXRUVMUYLUXALUUFUYPUWEABUUEXAX
      BUYBUWEUVMUUFUXDWDABUUEUWBUVLXCXEXFXBXGXHUXFUXIBEDBUGZGHUYOUXFABUWBUUEUXF
      UUFABUUEXIUXSABUUEXJVSUYCXKUXFUYQYQGDBWLUXCUWFYPYRXLWJUXIBDWOWGUYLUYNWPUY
      MUYOIUYGUYLUYNWQUXIUVQDWRWSWTUWBUXIUVPUVRUYAUWBUUEXOXMWGXNUXGUVTUWLUWKUVS
      UUCXPXQVSXQXRXSXTYAYBYCUUFYMUULUUDLYSUUFUUKUUBUUCUUFUUJUUAYTKUUFUUIBDUUFA
      BUUEYDUUIBHABUUEYEABUUEYFVSPYHRYGYIYJYKXSYL $.
  $}

  ${
    $d x A $.
    infcntss.1 $e |- A e. _V $.
    $( Every infinite set has a denumerable subset.  Similar to Exercise 8 of
       [TakeutiZaring] p. 91.  (However, we need neither AC nor the Axiom of
       Infinity because of the way we express "infinite" in the antecedent.)
       (Contributed by NM, 23-Oct-2004.) $)
    infcntss $p |- ( _om ~<_ A -> E. x ( x C_ A /\ x ~~ _om ) ) $=
      ( com cdom wbr cv cen wss wa wex domen ensym anim2i ancoms eximi sylbi )
      DBEFDAGZHFZRBIZJZAKTRDHFZJZAKADBCLUAUCATSUCSUBTDRMNOPQ $.
  $}

  $( An unordered pair is finite.  (Contributed by NM, 22-Aug-2008.) $)
  prfi $p |- { A , B } e. Fin $=
    ( cpr csn cun cfn df-pr wcel snfi unfi mp2an eqeltri ) ABCADZBDZEZFABGMFHNF
    HOFHAIBIMNJKL $.

  $( An unordered triple is finite.  (Contributed by Mario Carneiro,
     28-Sep-2013.) $)
  tpfi $p |- { A , B , C } e. Fin $=
    ( ctp cpr csn cun cfn df-tp wcel prfi snfi unfi mp2an eqeltri ) ABCDABEZCFZ
    GZHABCIPHJQHJRHJABKCLPQMNO $.

  ${
    $d x y z w v f A $.
    $( Equivalent ways of stating the finite intersection property.  We show
       two ways of saying, "the intersection of elements in every finite
       nonempty subcollection of ` A ` is in ` A ` ."  This theorem is
       applicable to a topology, which (among other axioms) is closed under
       finite intersections.  Some texts use the left-hand version of this
       axiom and others the right-hand version, but as our proof here shows,
       their "intuitively obvious" equivalence can be non-trivial to establish
       formally.  (Contributed by NM, 22-Sep-2002.) $)
    fiint $p |- ( A. x e. A A. y e. A ( x i^i y ) e. A <->
      A. x ( ( x C_ A /\ x =/= (/) /\ x e. Fin ) -> |^| x e. A ) ) $=
      ( vz vw vf cv cin wcel wss c0 wa cint wi wal cen wbr wceq cvv eleq1d wral
      wne cfn w3a com wrex isfi ensym csuc breq1 anbi2d imbi1d albidv weq sylib
      vv en0 anim1i ancoms adantll wn pm3.24 pm2.21i sylan2b syl ax-gen a1i nfv
      df-ne nfa1 wf1o wex bren cima cfv ssel wf vex sucid ffvelrn sylancl impel
      f1of adantr crn imassrn wfn ccnv dff1o2 simp3bi syl5sseq sstr2 anim1d wf1
      wfun f1of1 sssucid f1imaen2g mpanr12 ensymd imaex sseq1 neeq1 breq2 inteq
      jctird anbi12d imbi12d spcv sylan9 ineq1 ineq2 rspc2v ex syl6 com4r exp5c
      com14 syl5bir int0 syl6eq ineq1d ssv sseqin2 mpbi biimprd pm2.61d2 mpd wb
      imp43 csn cun fvex intunsn f1ofn fnsnfv uneq2d df-suc com13 biantru f1ofo
      imaeq2i imaundi eqtr2i wfo foima eqtrd inteqd syl5eqr mpbid exp43 exlimdv
      ad2antlr syl5bi imp adantlr alrimd finds2 exp4a com24 syl5 rexlimiv sylbi
      sp impd alrimiv zfpair2 eleq1 prss prnz prfi 3bitrri intpr eleq1i 3imtr3g
      cpr ralrimivv impbii cbvral2v df-3an imbi1i albii 3bitr4i ) DGZEGZHZCIZEC
      UADCUAZAGZCJZUWIKUBZLZUWIUCIZLZUWIMZCIZNZAOZUWIBGZHZCIZBCUAACUAUWJUWKUWMU
      DZUWPNZAOUWHUWRUWHUWQAUWHUWLUWMUWPUWMUWLUWHUWPUWMUWIUWSPQZBUEUFUWLUWHUWPN
      ZNZBUWIUGUXDUXFBUEUXDUWSUWIPQZUWSUEIZUXFUWIUWSUHUXHUWHUWLUXGUWPUXHUWHUWLU
      XGUWPUXHUWHUWLUXGLZUWPNZAOZUXJUXKUWLKUWIPQZLZUWPNZAOZUWLUPGZUWIPQZLZUWPNZ
      AOZUWLUXPUIZUWIPQZLZUWPNZAOZUWHBUPUWSKRZUXJUXNAUYFUXIUXMUWPUYFUXGUXLUWLUW
      SKUWIPUJUKULUMBUPUNZUXJUXSAUYGUXIUXRUWPUYGUXGUXQUWLUWSUXPUWIPUJUKULUMUWSU
      YARZUXJUYDAUYHUXIUYCUWPUYHUXGUYBUWLUWSUYAUWIPUJUKULUMUXOUWHUXNAUXMUWIKRZU
      WKLZUWPUWKUXLUYJUWJUXLUWKUYJUXLUYIUWKUXLUWIKPQUYIKUWIUHUWIUQUOURUSUTUWKUY
      IUYIVAZUWPUWIKVIUYIUYKLUWPUYIVBVCVDVEVFVGUWHUXTUYENNUXPUEIUWHUXTUYDAUWHAV
      HUXSAVJUYCUXTUWHUWPUWJUYBUXTUXENZUWKUWJUYBUYLUYBUYAUWIFGZVKZFVLUWJUYLUYAU
      WIFVMUWJUYNUYLFUWJUYNUXTUWHUWPUWJUYNLZUXTUWHLZLZUYMUXPVNZMZUXPUYMVOZHZCIZ
      UWPUYQUYTCIZVUBUYOVUCUYPUWJUYTUWIIZVUCUYNUWICUYTVPUYNUYAUWIUYMVQUXPUYAIZV
      UDUYAUWIUYMWCUXPUPVRZVSZUYAUWIUXPUYMVTWAWBWDUYQUYRKRZVUCVUBNZVUHVAUYRKUBZ
      UYQVUIUYRKVIUWJUYNUXTUWHVUJVUINZUWHUYNUXTUWJVUKUWHUYNUXTUWJVUJVUIUYNUXTLZ
      UWJVUJLZVUCUWHVUBVULVUMUYSCIZVUCUWHVUBNZNUYNVUMUYRCJZVUJLZUXPUYRPQZLZUXTV
      UNUYNVUMVUQVURUYNUWJVUPVUJUYNUYRUWIJUWJVUPNUYNUYMWEZUYRUWIUYMUXPWFUYNUYMU
      YAWGZUYMWHWOVUTUWIRUYAUWIUYMWIWJWKUYRUWICWLVEWMUYNUYRUXPUYNUYAUWIUYMWNZUW
      ISIZUYRUXPPQZUYAUWIUYMWPAVRVVBVVCLUXPUYAJUXPSIVVDUXPWQVUFUYAUWIUXPUYMSWRW
      SWAWTXFUXSVUSVUNNAUYRUYMUXPFVRXAUWIUYRRZUXRVUSUWPVUNVVEUWLVUQUXQVURVVEUWJ
      VUPUWKVUJUWIUYRCXBUWIUYRKXCXGUWIUYRUXPPXDXGVVEUWOUYSCUWIUYRXETXHXIXJVUNVU
      CVUOUWGVUBUYSUWEHZCIDEUYSUYTCCUWDUYSRUWFVVFCUWDUYSUWEXKTUWEUYTRVVFVUACUWE
      UYTUYSXLTXMXNXOXPXQXRYJXSVUHVUBVUCVUHVUAUYTCVUHVUASUYTHZUYTVUHUYSSUYTVUHU
      YSKMSUYRKXEXTYAYBUYTSJVVGUYTRUYTYCUYTSYDYEYATYFYGYHUYNVUBUWPYIUWJUYPUYNVU
      AUWOCUYNVUAUYRUYTYKZYLZMUWOUYRUYTUXPUYMYMYNUYNVVIUWIUYNVVIUYMUYAVNZUWIUYN
      VVIUYRUYMUXPYKZVNZYLZVVJUYNVVHVVLUYRUYNVVAVUEVVHVVLRUYAUWIUYMYOVUGUYAUXPU
      YMYPWAYQVVJUYMUXPVVKYLZVNVVMUYAVVNUYMUXPYRUUBUYMUXPVVKUUCUUDYAUYNUYAUWIUY
      MUUEVVJUWIRUYAUWIUYMUUAUYAUWIUYMUUFVEUUGUUHUUITUUMUUJUUKUULUUNUUOUUPYSUUQ
      VGUURUXJAUVDXOUUSUUTUVAUVBUVCYSUVEUVFUWRUWGDECCUWRUWDUWEUVPZCJZVVOKUBZLZV
      VOUCIZLZVVOMZCIZUWDCIUWECILZUWGUWQVVTVWBNAVVODEUVGUWIVVORZUWNVVTUWPVWBVWD
      UWLVVRUWMVVSVWDUWJVVPUWKVVQUWIVVOCXBUWIVVOKXCXGUWIVVOUCUVHXGVWDUWOVWACUWI
      VVOXETXHXIVWCVVPVVRVVTUWDUWECDVRZEVRZUVIVVQVVPUWDUWEVWEUVJYTVVSVVRUWDUWEU
      VKYTUVLVWAUWFCUWDUWEVWEVWFUVMUVNUVOUVQUVRUXAUWGUWDUWSHZCIABDECCADUNUWTVWG
      CUWIUWDUWSXKTBEUNVWGUWFCUWSUWEUWDXLTUVSUXCUWQAUXBUWNUWPUWJUWKUWMUVTUWAUWB
      UWC $.
  $}

  ${
    $d f x y z A $.  $d f B $.  $d x y z F $.
    $( A version of ~ fnex for finite sets that does not require Replacement.
       (Contributed by Mario Carneiro, 16-Nov-2014.)  (Revised by Mario
       Carneiro, 24-Jun-2015.) $)
    fnfi $p |- ( ( F Fn A /\ A e. Fin ) -> F e. Fin ) $=
      ( vx vy vz cfn wcel wa cres wceq adantr cv wi c0 csn reseq2 eleq1d imbi2d
      cun a1i wfn fnresdm res0 0fin eqeltri resundi cfv cop wss snfi wfun fnfun
      funressn syl ssfi sylancr unfi sylan2 syl5eqel findcard2 anabsi7 eqeltrrd
      expcom a2i ) BAUAZAFGZHZBAIZBFVEVHBJVFABUBKVEVFVHFGZVGBCLZIZFGZMVGBNIZFGZ
      MVGBDLZIZFGZMZVGBVOELZOZSZIZFGZMZVGVIMCDEAVJNJZVLVNVGWEVKVMFVJNBPQRVJVOJZ
      VLVQVGWFVKVPFVJVOBPQRVJWAJZVLWCVGWGVKWBFVJWABPQRVJAJZVLVIVGWHVKVHFVJABPQR
      VNVGVMNFBUCUDUETVRWDMVOFGVGVQWCVQVGWCVQVGHWBVPBVTIZSZFBVOVTUFVGVQWIFGZWJF
      GVGVSVSBUGUHZOZFGWIWMUIZWKWLUJVEWNVFVEBUKWNABULVSBUMUNKWMWIUOUPVPWIUQURUS
      VCVDTUTVAVB $.

    $( An onto function implies dominance of domain over range, for finite
       sets.  Unlike ~ fodom for arbitrary sets, this theorem does not require
       the Axiom of Choice for its proof.  (Contributed by NM, 23-Mar-2006.)
       (Proof shortened by Mario Carneiro, 16-Nov-2014.) $)
    fodomfi $p |- ( ( A e. Fin /\ F : A -onto-> B ) -> B ~<_ A ) $=
      ( vz wcel wa cima cdom wceq wbr cv wi c0 csn cun imaeq2 id breq12d imbi2d
      cvv vx cfn wfo foima adantl wfn fofn ima0 syl6eq 0ex 0dom a1i cid cfv wss
      vy wn cres crn cop wfun fnfun ad2antrl funressn rnss df-ima rnsnop eqcomi
      3syl vex 3sstr4g snex ssexg sylancl fvi syl uneq2d imaundi syl6eqr simprr
      cin cen ssdomg mpsyl c1o fvex entr4i domentr eqbrtrd simplr disjsn sylibr
      ensn1 undom syl21anc eqbrtrrd exp32 a2d findcard2s syl5 imp ) AUBEZABCUCZ
      FCAGZBAHXCXDBIXBABCUDUEXBXCXDAHJZXCCAUFZXBXEABCUGXFCUAKZGZXGHJZLXFMMHJZLX
      FCUPKZGZXKHJZLXFCXKDKZNZOZGZXPHJZLXFXELUAUPDAXGMIZXIXJXFXSXHMXGMHXSXHCMGM
      XGMCPCUHUIXSQRSXGXKIZXIXMXFXTXHXLXGXKHXGXKCPXTQRSXGXPIZXIXRXFYAXHXQXGXPHX
      GXPCPYAQRSXGAIZXIXEXFYBXHXDXGAHXGACPYBQRSXJXFMUJUKULXKUBEZXNXKEUQZFZXFXMX
      RYEXFXMXRYEXFXMFZFZXLCXOGZUMUNZOZXQXPHYGYJXLYHOXQYGYIYHXLYGYHTEZYIYHIYGYH
      XNCUNZNZUOZYMTEZYKYGCXOURZUSZXNYLUTNZUSZYHYMYGCVAZYPYRUOYQYSUOXFYTYEXMACV
      BVCXNCVDYPYRVEVICXOVFYSYMXNYLDVJZVGVHVKZYLVLZYHYMTVMVNYHTVOVPZVQCXKXOVRVS
      YGXMYIXOHJXKXOWAMIZYJXPHJYEXFXMVTYGYIYHXOHUUDYGYHYMHJZYMXOWBJYHXOHJYOYGYN
      UUFUUCUUBYHYMTWCWDYMWEXOYLXNCWFWMXNUUAWMWGYHYMXOWHVNWIYGYDUUEYCYDYFWJXKXN
      WKWLXLXKYIXOWNWOWPWQWRWSWTXAWP $.

    $( Equivalence of an onto mapping and dominance for a nonempty finite set.
       Unlike ~ fodomb for arbitrary sets, this theorem does not require the
       Axiom of Choice for its proof.  (Contributed by NM, 23-Mar-2006.) $)
    fodomfib $p |- ( A e. Fin ->
    ( ( A =/= (/) /\ E. f f : A -onto-> B ) <-> ( (/) ~< B /\ B ~<_ A ) ) ) $=
      ( cfn wcel c0 wne cv wfo wa csdm wbr wceq syl eqeq1d cvv 0sdomg ex jcad
      wi wex cdom cdm wf fof fdm dm0rn0 syl5bb bitr3d necon3bid biimpac adantll
      crn forn vex rnex syl6eqelr adantl adantlr mpbird fodomfi exlimdv expimpd
      wb adantr sdomdomtr syl5ib fodomr a1i impbid ) ADEZAFGZABCHZIZCUAZJFBKLZB
      AUBLZJZVKVLVOVRVKVLJZVNVRCVSVNVPVQVSVNVPVSVNJVPBFGZVLVNVTVKVNVLVTVNAFBFVN
      VMUCZFMZAFMBFMZVNWAAFVNABVMUDWAAMABVMUEABVMUFNOWBVMUMZFMVNWCVMUGVNWDBFABV
      MUNZOUHUIUJUKULVKVNVPVTVDZVLVKVNJBPEZWFVNWGVKVNBWDPWEVMCUOUPUQURBPQNUSUTR
      VKVNVQTVLVKVNVQABVMVARVESVBVCVKVRVLVOVRFAKLVKVLFBAVFADQVGVRVOTVKABCVHVISV
      J $.
  $}

  ${
    $d u w x y z A $.  $d u w x y z B $.  $d u w x y z F $.
    $( Any surjection from one finite set to another of equal size must be a
       bijection.  (Contributed by Mario Carneiro, 19-Aug-2014.) $)
    fofinf1o $p |- ( ( F : A -onto-> B /\ A ~~ B /\ B e. Fin ) ->
                     F : A -1-1-onto-> B ) $=
      ( vx vy vz vw vu wbr wcel cv cfv wceq weq wa syl2anc sylanbrc adantr wrex
      wne wfo cen cfn w3a wf1 wf1o wf wi wral simp1 fof syl csn cdif wn domnsym
      cdom csdm wpss simp3 simp2 enfii ad2antrr difssd simplrr neldifsn sylancl
      wss nelne1 necomd df-pss php3 sdomentr nsyl3 cres difss ssfi fssres sylan
      foelrn simprll simprrr eldifsn simprrl eqcomd fveq2 eqeq2d rspcev rexbidv
      eqeq1d syl5ibrcom imp mpan2 sylbir adantll pm2.61dane fvres rexbiia eqeq1
      eqid syl5bb rexlimdva syldan ralrimiva dffo3 fodomfi anassrs necon1bd mpd
      expr ex ralrimivva dff13 df-f1o ) ABCUAZABUBIZBUCJZUDZABCUEZXOABCUFXRABCU
      GZDKZCLZEKZCLZMZDENZUHZEAUIDAUIXSXRXOXTXOXPXQUJZABCUKULZXRYGDEAAXRYAAJZYC
      AJZOZOZYEYFYMYEOZBAYCUMZUNZUQIZUOYFYQYPBURIZYNBYPUPYNYPAURIZXPYRYNAUCJZYP
      AUSZYSXRYTYLYEXRXQXPYTXOXPXQUTXOXPXQVAZABVBPZVCYNYPAVHZYPATUUAYNAYOVDYNAY
      PYNYKYCYPJUOAYPTXRYJYKYEVEYCAVFYCAYPVIVGVJYPAVKQAYPVLPXRXPYLYEUUBVCYPABVM
      PVNYNYQYAYCYMYEYAYCTZYQXRYLYEUUEOZYQXRYLUUFOZOZYPUCJZYPBCYPVOZUAZYQUUHYTU
      UDUUIXRYTUUGUUCRAYOVPZAYPVQVGUUHYPBUUJUGZFKZGKZUUJLZMZGYPSZFBUIUUKUUHXTUU
      DUUMXRXTUUGYIRUULABYPCVRVGUUHUURFBUUHUUNBJZUUNHKZCLZMZHASZUURUUHXOUUSUVCX
      RXOUUGYHRHABUUNCVTVSUUHUVCUURUUHUVBUURHAUUHUUTAJZOZUURUVBUVAUUOCLZMZGYPSZ
      UVEUVHUUTYCUVEHENZUVHUUHUVIUVHUHUVDUUHUVHUVIYDUVFMZGYPSZUUHYAYPJZYDYBMZUV
      KUUHYJUUEUVLXRYJYKUUFWAXRYLYEUUEWBYAAYCWCQUUHYBYDXRYLYEUUEWDWEUVJUVMGYAYP
      GDNUVFYBYDUUOYACWFWGWHPUVIUVGUVJGYPUVIUVAYDUVFUUTYCCWFWJWIWKRWLUVDUUTYCTZ
      UVHUUHUVDUVNOUUTYPJZUVHUUTAYCWCUVOUVAUVAMZUVHUVAWTUVGUVPGUUTYPGHNUVFUVAUV
      AUUOUUTCWFWGWHWMWNWOWPUURUUNUVFMZGYPSUVBUVHUUQUVQGYPUUOYPJUUPUVFUUNUUOYPC
      WQWGWRUVBUVQUVGGYPUUNUVAUVFWSWIXAWKXBWLXCXDGFYPBUUJXEQYPBUUJXFPXGXJXHXIXK
      XLDEABCXMQYHABCXNQ $.
  $}

  $( Any function from a finite set onto the same set must be a bijection.
     (Contributed by AV, 5-Jul-2021.) $)
  rneqdmfinf1o $p |- ( ( A e. Fin /\ F Fn A /\ ran F = A )
                       -> F : A -1-1-onto-> A ) $=
    ( cfn wcel wfn crn wceq w3a wfo cen wbr wf1o dffn4 biimpi 3ad2ant2 wb foeq3
    3ad2ant3 mpbid enrefg 3ad2ant1 simp1 fofinf1o syl3anc ) ACDZBAEZBFZAGZHZAAB
    IZAAJKZUEAABLUIAUGBIZUJUFUEULUHUFULABMNOUHUEULUJPUFUGAABQRSUEUFUKUHACTUAUEU
    FUHUBAABUCUD $.

  ${
    $d x F $.
    $( Any finite set dominates its domain.  (Contributed by Mario Carneiro,
       22-Sep-2013.)  (Revised by Mario Carneiro, 16-Nov-2014.) $)
    fidomdm $p |- ( F e. Fin -> dom F ~<_ F ) $=
      ( vx cfn wcel cdm cvv cres cdom dmresv wbr cv c1st cfv cmpt wfo finresfin
      crn wfn fvex eqid fnmpti dffn4 mpbi wrel wceq wb relres reldm foeq3 mpbir
      mp2b fodomfi sylancl wss resss ssdomg mpi domtr syl2anc syl5eqbrr ) ACDZA
      EAFGZEZAHAIVAVCVBHJZVBAHJZVCAHJVAVBCDVBVCBVBBKZLMZNZOZVDFAPVIVBVHQZVHOZVH
      VBRVKBVBVGVHVFLSVHTUAVBVHUBUCVBUDVCVJUEVIVKUFAFUGBVBUHVCVJVBVHUIUKUJVBVCV
      HULUMVAVBAUNVEAFUOVBACUPUQVCVBAURUSUT $.
  $}

  $( The domain of a finite set is finite.  (Contributed by Mario Carneiro,
     24-Sep-2013.) $)
  dmfi $p |- ( A e. Fin -> dom A e. Fin ) $=
    ( cfn wcel cdm cdom wbr fidomdm domfi mpdan ) ABCADZAEFJBCAGAJHI $.

  $( A function is finite if and only if its domain is finite.  (Contributed by
     AV, 10-Jan-2020.) $)
  fundmfibi $p |- ( Fun F -> ( F e. Fin <-> dom F e. Fin ) ) $=
    ( wfun cfn wcel cdm dmfi wfn funfn fnfi sylanb ex impbid2 ) ABZACDZAEZCDZAF
    MPNMAOGPNAHOAIJKL $.

  $( The restriction of a function by a finite set is finite.  (Contributed by
     Alexander van der Vekens, 3-Feb-2018.) $)
  resfnfinfin $p |- ( ( F Fn A /\ B e. Fin ) -> ( F |` B ) e. Fin ) $=
    ( wfn cfn wcel wa cres cdm cin wrel wceq fnrel adantr resindm eqcomd syl wi
    wfun fnfun funfn sylib fnresin2 infi fnfi sylan2 ex 3syl imp eqeltrd ) CADZ
    BEFZGZCBHZCBCIZJZHZEUMCKZUNUQLUKURULACMNURUQUNCBOPQUKULUQEFZUKCUODZUQUPDZUL
    USRUKCSUTACTCUAUBUOBCUCVAULUSULVAUPEFUSBUOUDUPUQUEUFUGUHUIUJ $.

  $( A restricted identity function is finite iff the restricting class is
     finite.  (Contributed by AV, 10-Jan-2020.) $)
  residfi $p |- ( ( _I |` A ) e. Fin <-> A e. Fin ) $=
    ( cid cres cfn wcel cdm dmfi syl5eqelr wfn wfun funi funfn mpbi resfnfinfin
    dmresi mpan impbii ) BACZDEZADEZSARFDAORGHBBFZIZTSBJUBKBLMUAABNPQ $.

  $( If a set is finite, its converse is as well.  (Contributed by Mario
     Carneiro, 28-Dec-2014.) $)
  cnvfi $p |- ( A e. Fin -> `' A e. Fin ) $=
    ( cfn wcel ccnv cen wbr wss cnvcnvss ssfi mpan2 relcnv cnvexg cnven sylancr
    wrel cvv enfii syl2anc ) ABCZADZDZBCZTUAEFZTBCSUAAGUBAHAUAIJSTOTPCUCAKABLTP
    MNTUAQR $.

  $( The range of a finite set is finite.  (Contributed by Mario Carneiro,
     28-Dec-2014.) $)
  rnfi $p |- ( A e. Fin -> ran A e. Fin ) $=
    ( cfn wcel crn ccnv cdm df-rn cnvfi dmfi syl syl5eqel ) ABCZADAEZFZBAGLMBCN
    BCAHMIJK $.

  $( A one-to-one function whose domain is a set is finite if and only if its
     range is finite.  See also ~ f1vrnfibi .  (Contributed by AV,
     10-Jan-2020.) $)
  f1dmvrnfibi $p |- ( ( A e. V /\ F : A -1-1-> B )
                      -> ( F e. Fin <-> ran F e. Fin ) ) $=
    ( wcel wf1 wa cfn crn rnfi cdm cen wbr simpr wf1o wceq wi f1dm wb syl eleq1
    f1f1orn f1oeq2 anbi12d eqcoms biimpd expcomd sylc impcom adantr f1oeng wfun
    enfii syl2anc f1fun ad2antlr fundmfibi mpbird ex impbid2 ) ADEZABCFZGZCHEZC
    IZHEZCJVCVFVDVCVFGZVDCKZHEZVGVFVHVELMZVIVCVFNVGVHDEZVHVECOZGZVJVCVMVFVBVAVM
    VBVHAPZAVECOZVAVMQABCRABCUBVNVAVOVMVNVAVOGZVMVPVMSAVHAVHPVAVKVOVLAVHDUAAVHV
    ECUCUDUEUFUGUHUIUJVHVEDCUKTVHVEUMUNVGCULZVDVISVBVQVAVFABCUOUPCUQTURUSUT $.

  $( A one-to-one function which is a set is finite if and only if its range is
     finite.  See also ~ f1dmvrnfibi .  (Contributed by AV, 10-Jan-2020.) $)
  f1vrnfibi $p |- ( ( F e. V /\ F : A -1-1-> B )
                   -> ( F e. Fin <-> ran F e. Fin ) ) $=
    ( wcel wf1 cvv cfn crn wb cdm wceq wi dmexg eleq1 eqcoms syl5ibr syl impcom
    f1dm f1dmvrnfibi sylancom ) CDEZABCFZAGEZCHECIHEJUDUCUEUDCKZALZUCUEMABCTUCU
    EUGUFGEZCDNUEUHJAUFAUFGOPQRSABCGUAUB $.

  ${
    $d w x y z A $.  $d w y z B $.
    $( If a function has a finite domain, its range is finite.  Theorem 37 of
       [Suppes] p. 104.  (Contributed by NM, 25-Mar-2007.) $)
    fofi $p |- ( ( A e. Fin /\ F : A -onto-> B ) -> B e. Fin ) $=
      ( cfn wcel wfo cdom wbr fodomfi domfi syldan ) ADEABCFBAGHBDEABCIABJK $.

    $( If a 1-to-1 function has a finite codomain its domain is finite.
       (Contributed by FL, 31-Jul-2009.)  (Revised by Mario Carneiro,
       24-Jun-2015.) $)
    f1fi $p |- ( ( B e. Fin /\ F : A -1-1-> B ) -> A e. Fin ) $=
      ( cfn wcel wf1 wa crn ccnv wfo wss wf f1f frn syl ssfi sylan2 wf1o adantl
      f1f1orn f1ocnv f1ofo 3syl fofi syl2anc ) BDEZABCFZGZCHZDEZUIACIZJZADEUGUF
      UIBKZUJUGABCLUMABCMABCNOBUIPQUHAUICRZUIAUKRULUGUNUFABCTSAUICUAUIAUKUBUCUI
      AUKUDUE $.

    $( The finite union of finite sets is finite.  Exercise 13 of [Enderton]
       p. 144.  This is the indexed union version of ~ unifi .  Note that ` B `
       depends on ` x ` , i.e. can be thought of as ` B ( x ) ` .  (Contributed
       by NM, 23-Mar-2006.)  (Proof shortened by Mario Carneiro,
       31-Aug-2015.) $)
    iunfi $p |- ( ( A e. Fin /\ A. x e. A B e. Fin )
        -> U_ x e. A B e. Fin ) $=
      ( vw vy vz cfn wcel wral ciun cv wi c0 cun wceq iuneq1 eleq1d imbi12d a1i
      raleq csn 0iun syl6eq wss ssun1 ssralv ax-mp imim1i wa iunxun csb nfcsb1v
      0fin nfcv csbeq1a cbviun vex csbeq1 iunxsn eqtri ssun2 vsnid sselii nfel1
      rspc syl5eqel unfi sylan2 expcom sylcom findcard2 imp ) BGHCGHZABIZABCJZG
      HZVMADKZIZAVQCJZGHZLVMAMIZMGHZLVMAEKZIZAWCCJZGHZLZVMAWCFKZUAZNZIZAWJCJZGH
      ZLZVNVPLDEFBVQMOZVRWAVTWBVMAVQMTWOVSMGWOVSAMCJMAVQMCPACUBUCQRVQWCOZVRWDVT
      WFVMAVQWCTWPVSWEGAVQWCCPQRVQWJOZVRWKVTWMVMAVQWJTWQVSWLGAVQWJCPQRVQBOZVRVN
      VTVPVMAVQBTWRVSVOGAVQBCPQRWBWAUMSWGWNLWCGHWGWKWFWMWKWDWFWCWJUDWKWDLWCWIUE
      VMAWCWJUFUGUHWFWKWMWFWKUIWLWEAWICJZNZGAWCWICUJWKWFWSGHWTGHWKWSAWHCUKZGWSE
      WIAWCCUKZJXAAEWICXBECUNAWCCULAWCCUOUPEWHXBXAFUQAWCWHCURUSUTWHWJHWKXAGHZLW
      IWJWHWIWCVAFVBVCVMXCAWHWJAXAGAWHCULVDAKWHOCXAGAWHCUOQVEUGVFWEWSVGVHVFVIVJ
      SVKVL $.

    $( The finite union of finite sets is finite.  Exercise 13 of [Enderton]
       p. 144.  (Contributed by NM, 22-Aug-2008.)  (Revised by Mario Carneiro,
       31-Aug-2015.) $)
    unifi $p |- ( ( A e. Fin /\ A C_ Fin ) -> U. A e. Fin ) $=
      ( vx cfn wss wcel cv wral cuni dfss3 ciun uniiun iunfi syl5eqel sylan2b
      wa ) ACDACEZBFZCEBAGZAHZCEBACIPROSBAQJCBAKBAQLMN $.

    $( The finite union of finite sets is finite.  Exercise 13 of [Enderton]
       p. 144.  This version of ~ unifi is useful only if we assume the Axiom
       of Infinity (see comments in ~ fin2inf ).  (Contributed by NM,
       11-Mar-2006.) $)
    unifi2 $p |- ( ( A ~< _om /\ A. x e. A x ~< _om ) -> U. A ~< _om ) $=
      ( com csdm wbr cv wral wa cuni cfn wcel wss isfinite2 ralimi dfss3 sylibr
      unifi syl2an cvv wb fin2inf adantr isfiniteg syl mpbid ) BCDEZAFZCDEZABGZ
      HZBIZJKZUKCDEZUFBJKBJLZULUIBMUIUGJKZABGUNUHUOABUGMNABJOPBQRUJCSKZULUMTUFU
      PUIBUAUBUKUCUDUE $.
  $}

  ${
    $d A x $.  $d B x $.
    $( If an infinite set ` A ` is included in the underlying set of a finite
       cover ` B ` , then there exists a set of the cover that contains an
       infinite number of element of ` A ` .  (Contributed by FL,
       2-Aug-2009.) $)
    infssuni $p |- ( ( -. A e. Fin /\ B e. Fin /\ A C_ U. B )
        -> E. x e. B -. ( A i^i x ) e. Fin ) $=
      ( cfn wcel wn cuni wss w3a cv cin wrex wral dfral2 wi wa ciun sylbi com12
      eleq1i iunfi iunin2 uniiun eqcomi ineq2i df-ss eleq1 pm2.24 syl6bi syl ex
      wceq com24 3imp syl5bir pm2.18d ) BDEZFZCDEZBCGZHZIZBAJZKZDEZFACLZVFFVEAC
      MZVBVFVEACNURUSVAVGVFOZUSURVAVHOUSVGVAURVFUSVGVAURVFOZOZUSVGPACVDQZDEZVJA
      CVDUAVLBACVCQZKZDEZVJVKVNDACBVCUBTVOBUTKZDEZVJVNVPDVMUTBUTVMACUCUDUETVAVQ
      VIVAVPBULZVQVIOBUTUFVRVQUQVIVPBDUGUQVFUHUIRSRRUJUKUMSUNUOUP $.
  $}

  ${
    unirnffid.1 $e |- ( ph -> F : T --> Fin ) $.
    unirnffid.2 $e |- ( ph -> T e. Fin ) $.
    $( The union of the range of a function from a finite set into the class of
       finite sets is finite.  Deduction form.  (Contributed by David Moews,
       1-May-2017.) $)
    unirnffid $p |- ( ph -> U. ran F e. Fin ) $=
      ( crn cfn wcel wss cuni wfn wf ffn syl fnfi syl2anc rnfi frn unifi ) ACFZ
      GHZTGIZTJGHACGHZUAACBKZBGHUCABGCLZUDDBGCMNEBCOPCQNAUEUBDBGCRNTSP $.
  $}

  $( Images of finite sets are finite.  (Contributed by Stefan O'Rear,
     22-Feb-2015.) $)
  imafi $p |- ( ( Fun F /\ X e. Fin ) -> ( F " X ) e. Fin ) $=
    ( wfun cfn wcel wa cima cres cdm imadmres wfo wss simpr dmres inss1 eqsstri
    cin ssfi sylancl resss dmss mp1i fores syldan fofi syl2anc syl5eqelr ) ACZB
    DEZFZABGAABHZIZGZDABJUJULDEZULUMAULHZKZUMDEUJUIULBLUNUHUIMULBAIZQBABNBUQOPB
    ULRSUHUIULUQLZUPUKALURUJABTUKAUAUBULAUCUDULUMUOUEUFUG $.

  ${
    $d d F $.  $d c d b $.  $d c d x $.
    pwfilem.1 $e |- F = ( c e. ~P b |-> ( c u. { x } ) ) $.
    $( Lemma for ~ pwfi .  (Contributed by NM, 26-Mar-2007.) $)
    pwfilem $p |- ( ~P b e. Fin ->
                    ~P ( b u. { x } ) e. Fin ) $=
      ( vd cv cpw cfn wcel csn cun cdif cdom wbr domfi wss wceq sylib syl2anc
      pwundif crn wfo wfn vex snex unex fnmpti dffn4 fodomfi mpan2 mpdan eldifi
      elpwun undif1 elpwunsn snssd ssequn2 syl5req uneq1 eqeq2d rspcev elrnmpti
      mpbi wrex sylibr ssriv ssdomg mpisyl unfi mpancom syl5eqel ) CGZHZIJZVMAG
      ZKZLHZVRVNMZVNLZIVMVQUAVSIJZVOVTIJVOBUBZIJZVSWBNOZWAVOWBVNNOZWCVOVNWBBUCZ
      WEBVNUDWFDVNDGZVQLZBWGVQDUEVPUFZUGZEUHVNBUIVDVNWBBUJUKVNWBPULZVOWCVSWBQWD
      WKFVSWBFGZVSJZWLWHRZDVNVEZWLWBJWMWLVQMZVNJZWLWPVQLZRZWOWMWLVRJWQWLVRVNUMW
      LVMVQWIUNSWMWRWLVQLZWLWLVQUOWMVQWLQWTWLRWMVPWLWLVMVPUPUQVQWLURSUSWNWSDWPV
      NWGWPRWHWRWLWGWPVQUTVAVBTDVNWHWLBEWJVCVFVGVSWBIVHVIWBVSPTVSVNVJVKVL $.
  $}

  ${
    $d m A $.  $d c k m $.
    $( The power set of a finite set is finite and vice-versa.  Theorem 38 of
       [Suppes] p. 104 and its converse, Theorem 40 of [Suppes] p. 105.
       (Contributed by NM, 26-Mar-2007.) $)
    pwfi $p |- ( A e. Fin <-> ~P A e. Fin ) $=
      ( vm vk vc cfn wcel cpw cen wbr com wrex csn cun wceq pweq eleq1d c1o cvv
      cv c0 isfi csuc df-suc pweqi syl6eq pw0 df1o2 eqtr4i wss 1onn ssid ssnnfi
      mp2an eqeltri wi cmpt eqid pwfilem a1i finds1 pwen enfii syl2an rexlimiva
      sylbi cdom csdm pwexr canth2g sdomdom 3syl domfi mpdan impbii ) AEFZAGZEF
      ZVOABSZHIZBJKVQBAUAVSVQBJVRJFVRGZEFZVPVTHIVQVSWATGZEFCSZGZEFZWCWCLZMZGZEF
      ZBCVRTNVTWBEVRTOPVRWCNVTWDEVRWCOPVRWCUBZNZVTWHEWKVTWJGWHVRWJOWJWGWCUCUDUE
      PWBQEWBTLQUFUGUHQJFQQUIQEFUJQUKQQULUMUNWEWIUOWCJFCDWDDSWFMUPZCDWLUQURUSUT
      AVRVAVPVTVBVCVDVEVQAVPVFIZVOVQARFAVPVGIWMAEVHARVIAVPVJVKVPAVLVMVN $.
  $}

  $( Set exponentiation of finite sets is finite.  (Contributed by Jeff Madsen,
     19-Jun-2011.) $)
  mapfi $p |- ( ( A e. Fin /\ B e. Fin ) -> ( A ^m B ) e. Fin ) $=
    ( cfn wcel wa cxp cpw cmap wss xpfi ancoms pwfi sylib mapsspw ssfi sylancl
    co ) ACDZBCDZEZBAFZGZCDZABHQZUBIUDCDTUACDZUCSRUEBAJKUALMABNUBUDOP $.

  ${
    $d A x $.
    $( A Cartesian product of finitely many finite sets is finite.
       (Contributed by Jeff Madsen, 19-Jun-2011.) $)
    ixpfi $p |- ( ( A e. Fin /\ A. x e. A B e. Fin ) -> X_ x e. A B e. Fin ) $=
      ( cfn wcel wral wa ciun cmap co cixp iunfi simpl mapfi syl2anc ixpssmap2g
      wss syl ssfi ) BDEZCDEABFZGZABCHZBIJZDEZABCKZUDQZUFDEUBUCDEZTUEABCLZTUAMU
      CBNOUBUHUGUIABCDPRUDUFSO $.
  $}

  ${
    $d f g x A $.  $d f g B $.  $d f g x C $.  $d f g x ph $.
    ixpfi2.1 $e |- ( ph -> C e. Fin ) $.
    ixpfi2.2 $e |- ( ( ph /\ x e. A ) -> B e. Fin ) $.
    ixpfi2.3 $e |- ( ( ph /\ x e. ( A \ C ) ) -> B C_ { D } ) $.
    $( A Cartesian product of finite sets such that all but finitely many are
       singletons is finite.  (Note that ` B ( x ) ` and ` D ( x ) ` are both
       possibly dependent on ` x ` .)  (Contributed by Mario Carneiro,
       25-Jan-2015.) $)
    ixpfi2 $p |- ( ph -> X_ x e. A B e. Fin ) $=
      ( vf vg cfn wcel cv wral syl2anc wa wceq cfv wfn cin cixp cres cmpt inss2
      wf1 wss ssfi sylancl inss1 ralrimiva ssralv mpsyl ixpfi wi resixp mpan wb
      a1i cdif simprl vex elixp sylib simprd simprr difss ax-mp csn sseld elsni
      r19.26 syl6 anim12d eqtr3 ralimdva adantr syl5bir mp2and biantrud eqeq12d
      syl5 fvres ralbiia cun inundif raleqi ralunb bitr3i 3bitr4g simpld eqfnfv
      fnssres 3bitr4d ex dom2lem f1fi ) ABCEUAZDUBZLMZBCDUBZWSJXAJNZWRUCZUDZUFX
      ALMAWRLMZDLMZBWROZWTAELMWREUGXEGCEUEEWRUHUIWRCUGZAXFBCOXGCEUJZAXFBCHUKXFB
      WRCULUMBWRDUNPAJKXAWSXCKNZWRUCZXBXAMZXCWSMZUOAXHXLXMXIBCWRDXBUPUQUSAXLXJX
      AMZQZXCXKRZXBXJRZURAXOQZBNZXCSZXSXKSZRZBWROZXSXBSZXSXJSZRZBCOZXPXQXRYFBWR
      OZYHYFBCEUTZOZQZYCYGXRYJYHXRYDDMZBCOZYEDMZBCOZYJXRXBCTZYMXRXLYPYMQAXLXNVA
      BCDXBJVBVCVDZVEXRXJCTZYOXRXNYRYOQAXLXNVFBCDXJKVBVCVDZVEYMYOQYLYNQZBCOZXRY
      JYLYNBCVLUUAYTBYIOZXRYJYICUGUUAUUBUOCEVGYTBYICULVHAUUBYJUOXOAYTYFBYIAXSYI
      MQZYTYDFRZYEFRZQYFUUCYLUUDYNUUEUUCYLYDFVIZMUUDUUCDUUFYDIVJYDFVKVMUUCYNYEU
      UFMUUEUUCDUUFYEIVJYEFVKVMVNYDYEFVOVMVPVQWBVRVSVTYBYFBWRXSWRMXTYDYAYEXSWRX
      BWCXSWRXJWCWAWDYGYFBWRYIWEZOYKYFBUUGCCEWFWGYFBWRYIWHWIWJXRXCWRTZXKWRTZXPY
      CURXRYPXHUUHXRYPYMYQWKZXICWRXBWMUIXRYRXHUUIXRYRYOYSWKZXICWRXJWMUIBWRXCXKW
      LPXRYPYRXQYGURUUJUUKBCXBXJWLPWNWOWPXAWSXDWQP $.
  $}

  ${
    $d A x y $.  $d B y $.
    $( A finite mapping set is finite.  (Contributed by Mario Carneiro,
       31-Aug-2015.) $)
    mptfi $p |- ( A e. Fin -> ( x e. A |-> B ) e. Fin ) $=
      ( cfn wcel cmpt cdm wfn wfun funmpt funfn mpbi wss eqid dmmptss ssfi fnfi
      mpan2 sylancr ) BDEZABCFZUAGZHZUBDEZUADEUAIUCABCJUAKLTUBBMUDABCUAUANOBUBP
      RUBUAQS $.

    $( An image set from a finite set is finite.  (Contributed by Mario
       Carneiro, 13-Feb-2014.) $)
    abrexfi $p |- ( A e. Fin -> { y | E. x e. A y = B } e. Fin ) $=
      ( cfn wcel cv wceq wrex cab cmpt crn eqid rnmpt mptfi rnfi syl syl5eqelr
      ) CEFZBGDHACIBJACDKZLZEABCDTTMNSTEFUAEFACDOTPQR $.
  $}

  ${
    $d p N $.
    cnvimamptfin.n $e |- ( ph -> N e. Fin ) $.
    $( A preimage of a mapping with a finite domain under any class is finite.
       In contrast to ~ fisuppfi , the range of the mapping needs not to be
       known.  (Contributed by AV, 21-Dec-2018.) $)
    cnvimamptfin $p |- ( ph -> ( `' ( p e. N |-> X ) " Y ) e. Fin ) $=
      ( cfn wcel cmpt ccnv cima wss cnvimass eqid dmmptss sstri ssfi sylancl
      cdm ) ABGHEBCIZJDKZBLUAGHFUATSBTDMEBCTTNOPBUAQR $.
  $}

  $( Membership in a class of finite subsets.  (Contributed by Stefan O'Rear,
     4-Apr-2015.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
  elfpw $p |- ( A e. ( ~P B i^i Fin ) <-> ( A C_ B /\ A e. Fin ) ) $=
    ( cpw cfn cin wcel wa wss elin elpwg pm5.32ri bitri ) ABCZDEFAMFZADFZGABHZO
    GAMDIONPABDJKL $.

  ${
    $d a b A $.  $d a b B $.  $d a b F $.
    $( A set is the union of its finite subsets.  (Contributed by Stefan
       O'Rear, 2-Apr-2015.) $)
    unifpw $p |- U. ( ~P A i^i Fin ) = A $=
      ( va cpw cfn cin cuni cv inss1 unissi unipw sseqtri sseli csn wss snelpwi
      wcel snfi a1i elind elssuni syl snidg sseldd impbii eqriv ) BACZDEZFZABGZ
      UHPUIAPZUHAUIUHUFFAUGUFUFDHIAJKLUJUIMZUHUIUJUKUGPUKUHNUJUFDUKUIAOUKDPUJUI
      QRSUKUGTUAUIAUBUCUDUE $.

    $( A one-to-one mapping induces a one-to-one mapping on finite subsets.
       (Contributed by Mario Carneiro, 25-Jan-2015.) $)
    f1opwfi $p |- ( F : A -1-1-onto-> B ->
      ( b e. ( ~P A i^i Fin ) |-> ( F " b ) ) :
        ( ~P A i^i Fin ) -1-1-onto-> ( ~P B i^i Fin ) ) $=
      ( va wf1o cpw cfn cin cima wcel wa wss wfo wceq syl adantr adantl syl2anc
      wb ccnv cmpt eqid crn imassrn f1ofo forn syl5sseq cres inss2 simpr sseldi
      wfun cdm f1ofun inss1 sseli elpwi f1odm sseqtr4d fores elpwg mpbird elind
      cv fofi dfdm4 syl5eqr dff1o3 simprbi f1ocnv foimacnv syl2an eqcomd imaeq2
      anim12i eqeq2d syl5ibrcom wf1 f1of1 f1imacnv impbid sylan2 f1o2d ) ABCFZD
      EAGZHIZBGZHIZCDVEZJZCUAZEVEZJZDWGWKUBZWOUCWEWJWGKZLZWHHWKWQWKWHKZWKBMZWEW
      SWPWECUDZWKBCWJUEWEABCNZWTBOABCUFZABCUGPUHQWQWKHKZWRWSTWQWJHKWJWKCWJUIZNZ
      XCWQWGHWJWFHUJWEWPUKULWQCUMZWJCUNZMXEWEXFWPABCUOQWQWJAXGWPWJAMZWEWPWJWFKZ
      XHWGWFWJWFHUPUQZWJAURZPRWEXGAOWPABCUSZQUTWJCVASWJWKXDVFSZWKBHVBPVCXMVDWEW
      MWIKZLZWFHWNXOWNWFKZWNAMZWEXQXNWEWLUDZWNAWLWMUEWEXRXGACVGXLVHUHQXOWNHKZXP
      XQTXOWMHKWMWNWLWMUIZNZXSXOWIHWMWHHUJWEXNUKULXOWLUMZWMWLUNZMYAWEYBXNWEXAYB
      ABCVIVJQXOWMBYCXOWMWHKZWMBMZXNYDWEWIWHWMWHHUPUQZRWMBURZPXOBAWLFZYCBOWEYHX
      NABCVKQBAWLUSPUTWMWLVASWMWNXTVFSZWNAHVBPVCYIVDWPXNLWEXIYDLZWJWNOZWMWKOZTW
      PXIXNYDXJYFVPWEYJLZYKYLYMYLYKWMCWNJZOYMYNWMWEXAYEYNWMOYJXBYDYEXIYGRABWMCV
      LVMVNYKWKYNWMWJWNCVOVQVRYMYKYLWJWLWKJZOYMYOWJWEABCVSXHYOWJOYJABCVTXIXHYDX
      KQABWJCWAVMVNYLWNYOWJWMWKWLVOVQVRWBWCWD $.
  $}

  ${
    $d A c f $.  $d A x $.  $d B c f $.  $d B x z $.  $d f x z $.
    $( A finite subset of a union is covered by finitely many elements.
       (Contributed by Stefan O'Rear, 2-Apr-2015.) $)
    fissuni $p |- ( ( A C_ U. B /\ A e. Fin ) ->
        E. c e. ( ~P B i^i Fin ) A C_ U. c ) $=
      ( vf vx vz cuni wss cfn wcel wa cv wral simpr dfss3 adantr syl2anc sylibr
      wrex ad2antrl cfv cpw cin wel wex eluni2 ralbii sylbb eleq2 ac6sfi fimass
      cima vex imaex elpw wfun ffun simplr imafi elind wfn ffn ssid a1i fnfvima
      wf syl3anc elssuni syl sseld ralimdva imp adantl wceq unieq sseq2d rspcev
      exlimddv ) ABGZHZAIJZKZABDLZVFZELZWEWCUAZJZEAMZKZACLZGZHZCBUBZIUCZSZDWBWA
      EFUDZFBSZEAMZWIDUEVTWANVTWRWAVTWEVSJZEAMWREAVSOWSWQEAFWEBUFUGUHPWPWGEFABD
      FLWFWEUIUJQWBWIKZWCAULZWNJAXAGZHZWOWTWMIXAWDXAWMJZWBWHWDXABHXDABWCAUKXABW
      CADUMUNUORTWTWCUPZWAXAIJWDXEWBWHABWCUQTVTWAWIURWCAUSQUTWIXCWBWIWEXBJZEAMZ
      XCWDWHXGWDWGXFEAWDWEAJZKZWFXBWEXIWFXAJZWFXBHXIWCAVAZAAHZXHXJWDXKXHABWCVBP
      XLXIAVCVDWDXHNAAWCWEVEVGWFXAVHVIVJVKVLEAXBORVMWLXCCXAWNWJXAVNWKXBAWJXAVOV
      PVQQVR $.
  $}

  ${
    $d A c f $.  $d A x $.  $d B c f $.  $d B x y $.  $d F c f $.  $d F x y $.
    $d f x y $.
    $( Given a finite subset ` A ` of the range of a function, there exists a
       finite subset of the domain whose image is ` A ` .  (Contributed by Jeff
       Madsen, 2-Sep-2009.)  (Revised by Stefan O'Rear, 22-Feb-2015.) $)
    fipreima $p |- ( ( F Fn B /\ A C_ ran F /\ A e. Fin ) ->
        E. c e. ( ~P B i^i Fin ) ( F " c ) = A ) $=
      ( vf vx vy wfn crn wss cfn wcel cv cfv wceq wral wa cima syl2anc ad2antrl
      w3a wf cpw cin wrex wex simp3 dfss3 fvelrnb ralbidv syl5bb biimpa 3adant3
      fveq2 eqeq1d ac6sfi fimass imaex elpw sylibr wfun ffun simpl3 imafi elind
      vex ccom cid cres wi fvco3 fvresi adantl eqeq12d ralbidva biimprd impr wb
      simpl1 ffn frn syl3anc fnresi eqfnfv sylancl mpbird imaeq1d imaco resiima
      fnco ssid ax-mp 3eqtr3g imaeq2 rspcev exlimddv ) CBHZACIZJZAKLZUAZABEMZUB
      ZFMZXBNZCNZXDOZFAPZQZCDMZRZAOZDBUCZKUDZUEZEXAWTGMZCNZXDOZGBUEZFAPZXIEUFWQ
      WSWTUGWQWSXTWTWQWSXTWSXDWRLZFAPWQXTFAWRUHWQYAXSFAGBXDCUIUJUKULUMXRXGFGABE
      XPXEOXQXFXDXPXECUNUOUPSXAXIQZXBARZXNLCYCRZAOZXOYBXMKYCXCYCXMLZXAXHXCYCBJY
      FABXBAUQYCBXBAEVFURUSUTTYBXBVAZWTYCKLXCYGXAXHABXBVBTWQWSWTXIVCXBAVDSVEYBC
      XBVGZARVHAVIZARZYDAYBYHYIAYBYHYIOZXDYHNZXDYINZOZFAPZXAXCXHYOXCXHYOVJXAXCY
      OXHXCYNXGFAXCXDALZQYLXFYMXDABXDCXBVKYPYMXDOXCAXDVLVMVNVOVPVMVQYBYHAHZYIAH
      YKYOVRYBWQXBAHZXBIBJZYQWQWSWTXIVSXCYRXAXHABXBVTTXCYSXAXHABXBWATBACXBWJWBA
      WCFAYHYIWDWEWFWGCXBAWHAAJYJAOAWKAAWIWLWMXLYEDYCXNXJYCOXKYDAXJYCCWNUOWOSWP
      $.
  $}

  ${
    $d a b c u w z A $.  $d a b c z B $.
    $( A finite subset of the union of a superset chain is a subset of some
       element of the chain.  A useful preliminary result for ~ alexsub and
       others.  (Contributed by Jeff Hankins, 25-Jan-2010.)  (Proof shortened
       by Mario Carneiro, 11-Feb-2015.)  (Revised by Mario Carneiro,
       18-May-2015.) $)
    finsschain $p |- ( ( ( A =/= (/) /\ [C.] Or A ) /\
        ( B e. Fin /\ B C_ U. A ) ) -> E. z e. A B C_ z ) $=
      ( va vb vc vw vu c0 wa wcel wss cv wrex wceq sseq1 rexbidv imbi12d imbi2d
      wi wne crpss wor cfn cuni csn cun wral 0ss rgenw r19.2z adantr a1d unssad
      mpan2 id imim1i sseq2 cbvrexv simpr unssbd vex sylibr eluni2 sylib reeanv
      snss simpllr simprlr simprll sorpssun simprrr simprrl snssd unss12 rspcev
      syl12anc syl2anc expr rexlimdvva syl5bir mpand syl5bi ex a2d syl5 a2i a1i
      findcard2 com12 imp32 ) BIUAZBUBUCZJZCUDKZCBUEZLZCAMZLZABNZWOWNWQWTTZWNDM
      ZWPLZXBWRLZABNZTZTWNIWPLZIWRLZABNZTZTWNEMZWPLZXKWRLZABNZTZTZWNXKFMZUFZUGZ
      WPLZXSWRLZABNZTZTZWNXATDEFCXBIOZXFXJWNYEXCXGXEXIXBIWPPYEXDXHABXBIWRPQRSXB
      XKOZXFXOWNYFXCXLXEXNXBXKWPPYFXDXMABXBXKWRPQRSXBXSOZXFYCWNYGXCXTXEYBXBXSWP
      PYGXDYAABXBXSWRPQRSXBCOZXFXAWNYHXCWQXEWTXBCWPPYHXDWSABXBCWRPQRSWNXIXGWLXI
      WMWLXHABUHXIXHABWRUIUJXHABUKUOULUMXPYDTXKUDKWNXOYCXOXTXNTWNYCXTXLXNXTXKXR
      WPXTUPUNUQWNXTXNYBWNXTXNYBTXNXKGMZLZGBNZWNXTJZYBXMYJAGBWRYIXKURUSYLXQHMZK
      ZHBNZYKYBYLXQWPKZYOYLXRWPLYPYLXKXRWPWNXTUTVAXQWPFVBVGVCHXQBVDVEYOYKJYNYJJ
      ZGBNHBNYLYBYNYJHGBBVFYLYQYBHGBBYLYMBKZYIBKZJZYQYBYLYTYQJZJZYIYMUGZBKZXSUU
      CLZYBUUBWMYSYRUUDWLWMXTUUAVHYLYRYSYQVIYLYRYSYQVJBYIYMVKVQUUBYJXRYMLUUEYLY
      TYNYJVLUUBXQYMYLYTYNYJVMVNXKYIXRYMVOVRYAUUEAUUCBWRUUCXSURVPVRVSVTWAWBWCWD
      WEWFWGWHWIWJWK $.
  $}

  ${
    $d c f w x y z A $.  $d c f w x y z B $.  $d c f w z ph $.
    $( If for every element of a finite indexing set ` A ` there exists a
       corresponding element of another set ` B ` , then there exists a finite
       subset of ` B ` consisting only of those elements which are indexed by
       ` A ` .  Proven without the Axiom of Choice, unlike ~ indexdom .
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario
       Carneiro, 12-Sep-2015.) $)
    indexfi $p |- ( ( A e. Fin /\ B e. M /\ A. x e. A E. y e. B ph ) ->
                E. c e. Fin ( c C_ B /\ A. x e. A E. y e. c ph /\
                                                A. y e. c E. x e. A ph ) ) $=
      ( vf vz vw cfn wcel wrex wral cv wss w3a wa wsbc nfv wf cfv cbvrex ralbii
      wex nfsbc1v sbceq1a dfsbcq ac6sfi sylan2b crn wfo simpll wfn ffn ad2antrl
      dffn4 sylib syl2anc frn wi fnfvelrn sylan rspesbca ex syl ralimdva adantl
      fofi imp simpr simprr weq fveq2 sbceq1d cbvral r19.21bi ralrimiva wb wceq
      bitrd rexbidv ralrn mpbird nfcv nfrex sseq1 rexeq ralbidv raleq 3anbi123d
      sylibr rspcev syl13anc exlimddv 3adant2 ) DKLZACEMZBDNZGOZEPZACWTMZBDNZAB
      DMZCWTNZQZGKMZEFLWQWSRZDEHOZUAZACBOZXIUBZSZBDNZRZXGHWSWQACIOZSZIEMZBDNXOH
      UEWRXRBDAXQCIEAITACXPUFZACXPUGZUCUDXQXMBIDEHACXPXLUHUIUJXHXORZXIUKZKLZYBE
      PZACYBMZBDNZXDCYBNZXGYAWQDYBXIULZYCWQWSXOUMYAXIDUNZYHXJYIXHXNDEXIUOZUPZDX
      IUQURDYBXIVIUSXJYDXHXNDEXIUTUPXOYFXHXJXNYFXJXMYEBDXJXKDLZRXLYBLZXMYEVAXJY
      IYLYMYJDXKXIVBVCYMXMYEACXLYBVDVEVFVGVJVHYAXQBDMZIYBNZYGYAYOACJOZXIUBZSZBD
      MZJDNZYAYSJDYAYPDLZRUUAYRBYPSZYSYAUUAVKYAUUBJDYAXNUUBJDNXHXJXNVLXMUUBBJDX
      MJTYRBYPUFBJVMZXMYRUUBUUCACXLYQXKYPXIVNVOYRBYPUGWAVPURVQYRBYPDVDUSVRYAYIY
      OYTVSYKYNYSIJDXIXPYQVTXQYRBDACXPYQUHWBWCVFWDXDYNCIYBXDITXQCBDCDWEXSWFCIVM
      AXQBDXTWBVPWLXFYDYFYGQGYBKWTYBVTZXAYDXCYFXEYGWTYBEWGUUDXBYEBDACWTYBWHWIXD
      CWTYBWJWKWMWNWOWP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finitely supported functions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c finSupp $.  $( Class for predicate "finitely supported function". $)

  $( Extend class definition to include the predicate to be a finitely
     supported function. $)
  cfsupp $a class finSupp $.

  ${
    $d r z $.
    $( Define the property of a function to be finitely supported (in relation
       to a given zero).  (Contributed by AV, 23-May-2019.) $)
    df-fsupp $a |- finSupp
                   = { <. r , z >. | ( Fun r /\ ( r supp z ) e. Fin ) } $.

    $( The property of a function to be finitely supported is a relation.
       (Contributed by AV, 7-Jun-2019.) $)
    relfsupp $p |- Rel finSupp $=
      ( vr vz cv wfun csupp co cfn wcel wa cfsupp df-fsupp relopabi ) ACZDMBCEF
      GHIABJBAKL $.
  $}

  $( A proper class is never finitely supported.  (Contributed by AV,
     7-Jun-2019.) $)
  relprcnfsupp $p |- ( -. A e. _V -> -. A finSupp Z ) $=
    ( cfsupp wbr cvv wcel relfsupp brrelexi con3i ) ABCDAEFABCGHI $.

  ${
    $d R r z $.  $d Z r z $.
    $( The property of a class to be a finitely supported function (in relation
       to a given zero).  (Contributed by AV, 23-May-2019.) $)
    isfsupp $p |- ( ( R e. V /\ Z e. W ) -> ( R finSupp Z
                                    <-> ( Fun R /\ ( R supp Z ) e. Fin ) ) ) $=
      ( vr vz cv wfun csupp co cfn wcel wa cfsupp wb funeq adantr oveq12 eleq1d
      wceq anbi12d df-fsupp brabga ) EGZHZUDFGZIJZKLZMAHZADIJZKLZMEFADNBCUDATZU
      FDTZMZUEUIUHUKULUEUIOUMUDAPQUNUGUJKUDAUFDIRSUAFEUBUC $.
  $}

  $( The property of a function to be finitely supported (in relation to a
     given zero).  (Contributed by AV, 23-May-2019.) $)
  funisfsupp $p |- ( ( Fun R /\ R e. V /\ Z e. W )
                     -> ( R finSupp Z <-> ( R supp Z ) e. Fin ) ) $=
    ( wfun wcel w3a cfsupp wbr csupp co cfn wa wb isfsupp 3adant1 ibar 3ad2ant1
    bicomd bitrd ) AEZABFZDCFZGADHIZUAADJKLFZMZUEUBUCUDUFNUAABCDOPUAUBUFUENUCUA
    UEUFUAUEQSRT $.

  $( Implications of a class being a finitely supported function (in relation
     to a given zero).  (Contributed by AV, 26-May-2019.) $)
  fsuppimp $p |- ( R finSupp Z -> ( Fun R /\ ( R supp Z ) e. Fin ) ) $=
    ( cvv wcel wa cfsupp wbr wfun csupp cfn relfsupp brrelexi brrelex2i isfsupp
    co jca biimpd mpcom ) ACDZBCDZEZABFGZAHABIOJDEZUBSTABFKLABFKMPUAUBUCACCBNQR
    $.

  ${
    fsuppimpd.f $e |- ( ph -> F finSupp Z ) $.
    $( A finitely supported function is a function with a finite support.
       (Contributed by AV, 6-Jun-2019.) $)
    fsuppimpd $p |- ( ph -> ( F supp Z ) e. Fin ) $=
      ( cfsupp wbr csupp co cfn wcel wfun fsuppimp simprd syl ) ABCEFZBCGHIJZDO
      BKPBCLMN $.
  $}

  ${
    fisuppfi.1 $e |- ( ph -> A e. Fin ) $.
    fisuppfi.2 $e |- ( ph -> F : A --> B ) $.
    $( A function on a finite set is finitely supported.  (Contributed by Mario
       Carneiro, 20-Jun-2015.) $)
    fisuppfi $p |- ( ph -> ( `' F " C ) e. Fin ) $=
      ( cfn wcel ccnv cima wss cdm cnvimass wf wceq fdm syl syl5sseq ssfi
      syl2anc ) ABHIEJDKZBLUBHIFAEMZUBBEDNABCEOUCBPGBCEQRSBUBTUA $.
  $}

  ${
    fdmfisuppfi.f $e |- ( ph -> F : D --> R ) $.
    fdmfisuppfi.d $e |- ( ph -> D e. Fin ) $.
    fdmfisuppfi.z $e |- ( ph -> Z e. V ) $.
    $( The support of a function with a finite domain is always finite.
       (Contributed by AV, 27-Apr-2019.) $)
    fdmfisuppfi $p |- ( ph -> ( F supp Z ) e. Fin ) $=
      ( csupp co ccnv cvv csn cdif cima cfn wcel wceq syl2anc wf fex suppimacnv
      fisuppfi eqeltrd ) ADFJKZDLMFNOZPZQADMRZFERUFUHSABCDUABQRUIGHBCQDUBTIDMEF
      UCTABCUGDHGUDUE $.

    $( A function with a finite domain is always finitely supported.
       (Contributed by AV, 25-May-2019.) $)
    fdmfifsupp $p |- ( ph -> F finSupp Z ) $=
      ( cfsupp wbr wfun csupp co cfn wcel wf syl cvv syl2anc fdmfisuppfi wa wfn
      ffun wb ffn fnex isfsupp mpbir2and ) ADFJKZDLZDFMNOPZABCDQZUKGBCDUDRABCDE
      FGHIUAADSPZFEPUJUKULUBUEADBUCZBOPUNAUMUOGBCDUFRHBODUGTIDSEFUHTUI $.
  $}

  ${
    $d A x $.  $d V x $.  $d ph x $.
    fsuppmptdm.f $e |- F = ( x e. A |-> Y ) $.
    fsuppmptdm.a $e |- ( ph -> A e. Fin ) $.
    fsuppmptdm.y $e |- ( ( ph /\ x e. A ) -> Y e. V ) $.
    fsuppmptdm.z $e |- ( ph -> Z e. W ) $.
    $( A mapping with a finite domain is finitely supported.  (Contributed by
       AV, 7-Jun-2019.) $)
    fsuppmptdm $p |- ( ph -> F finSupp Z ) $=
      ( fmptd fdmfifsupp ) ACEDFHABCGEDKIMJLN $.
  $}

  ${
    fndmfisuppfi.f $e |- ( ph -> F Fn D ) $.
    fndmfisuppfi.d $e |- ( ph -> D e. Fin ) $.
    fndmfisuppfi.z $e |- ( ph -> Z e. V ) $.
    $( The support of a function with a finite domain is always finite.
       (Contributed by AV, 25-May-2019.) $)
    fndmfisuppfi $p |- ( ph -> ( F supp Z ) e. Fin ) $=
      ( crn wfn wf dffn3 sylib fdmfisuppfi ) ABCIZCDEACBJBOCKFBCLMGHN $.

    $( A function with a finite domain is always finitely supported.
       (Contributed by AV, 25-May-2019.) $)
    fndmfifsupp $p |- ( ph -> F finSupp Z ) $=
      ( crn wfn wf dffn3 sylib fdmfifsupp ) ABCIZCDEACBJBOCKFBCLMGHN $.
  $}

  $( If two functions have the same support, one function is finitely supported
     iff the other one is finitely supported.  (Contributed by AV,
     30-Jun-2019.) $)
  suppeqfsuppbi $p |- ( ( ( F e. U /\ Fun F ) /\ ( G e. V /\ Fun G ) )
                        -> ( ( F supp Z ) = ( G supp Z )
                             -> ( F finSupp Z <-> G finSupp Z ) ) ) $=
    ( cvv wcel wa csupp co cfsupp wbr wb wi cfn simpl funisfsupp syl3anc adantr
    wfun simprlr simprll simpr adantl impcom eleq1 bicomd sylan9bb bitr4d exp31
    wceq ex wn relfsupp brrelex2i pm5.21ni 2a1d pm2.61i ) EFGZBAGZBTZHZCDGZCTZH
    ZHZBEIJZCEIJZUKZBEKLZCEKLZMZNNUSVFVIVLUSVFHZVIHVJVGOGZVKVMVJVNMZVIVMVAUTUSV
    OUSUTVAVEUAUSUTVAVEUBUSVFPBAFEQRSVMVKVHOGZVIVNVFUSVKVPMZVEUSVQNVBVEUSVQVEUS
    HVDVCUSVQVEVDUSVCVDUCSVEVCUSVCVDPSVEUSUCCDFEQRULUDUEVIVNVPVGVHOUFUGUHUIUJUS
    UMVLVFVIVJUSVKBEKUNUOCEKUNUOUPUQUR $.

  $( If the support of a function is a subset of a finite set, the function is
     finitely supported.  (Contributed by AV, 15-Jul-2019.) $)
  suppssfifsupp $p |- ( ( ( G e. V /\ Fun G /\ Z e. W )
                          /\ ( F e. Fin /\ ( G supp Z ) C_ F ) )
                        -> G finSupp Z ) $=
    ( wcel wfun w3a cfn csupp co wss wa cfsupp wbr ssfi adantl 3ancoma biimpi
    wb adantr funisfsupp syl mpbird ) BCFZBGZEDFZHZAIFBEJKZALMZMZBENOZUIIFZUJUM
    UHAUIPQUKUFUEUGHZULUMTUHUNUJUHUNUEUFUGRSUABCDEUBUCUD $.

  $( If the support of a function is a subset of the support of a finitely
     supported function, the function is finitely supported.  (Contributed by
     AV, 2-Jul-2019.)  (Proof shortened by AV, 15-Jul-2019.) $)
  fsuppsssupp $p |- ( ( ( G e. V /\ Fun G )
                        /\ ( F finSupp Z /\ ( G supp Z ) C_ ( F supp Z ) ) )
                      -> G finSupp Z ) $=
    ( wcel wfun wa cfsupp wbr csupp co wss cvv simpll simplr relfsupp brrelex2i
    cfn ad2antrl id fsuppimpd anim1i adantl suppssfifsupp syl31anc ) BCEZBFZGZA
    DHIZBDJKADJKZLZGZGUFUGDMEZUJREZUKGZBDHIUFUGULNUFUGULOUIUMUHUKADHPQSULUOUHUI
    UNUKUIADUITUAUBUCUJBCMDUDUE $.

  $( The cartesian product of two finitely supported functions is finite.
     (Contributed by AV, 17-Jul-2019.) $)
  fsuppxpfi $p |- ( ( F finSupp Z /\ G finSupp Z )
                    -> ( ( F supp Z ) X. ( G supp Z ) ) e. Fin ) $=
    ( cfsupp wbr csupp co cfn wcel cxp id fsuppimpd xpfi syl2an ) ACDEZACFGZHIB
    CFGZHIPQJHIBCDEZOACOKLRBCRKLPQMN $.

  ${
    fczfsuppd.b $e |- ( ph -> B e. V ) $.
    fczfsuppd.z $e |- ( ph -> Z e. W ) $.
    $( A constant function with value zero is finitely supported.  (Contributed
       by AV, 30-Jun-2019.) $)
    fczfsuppd $p |- ( ph -> ( B X. { Z } ) finSupp Z ) $=
      ( csn cxp cfsupp wbr wfun csupp co cfn wcel wfn fnconstg fnfun cvv c0 a1i
      3syl fczsupp0 0fin eqeltri wa wb xpexg sylancl isfsupp syl2anc mpbir2and
      snex ) ABEHZIZEJKZUPLZUPEMNZOPZAEDPZUPBQURGBEDRBUPSUCUTAUSUAOBEUDUEUFUBAU
      PTPZVAUQURUTUGUHABCPUOTPVBFEUNBUOCTUIUJGUPTDEUKULUM $.
  $}

  ${
    fsuppun.f $e |- ( ph -> F finSupp Z ) $.
    fsuppun.g $e |- ( ph -> G finSupp Z ) $.
    $( The union of two finitely supported functions is finitely supported (but
       not necessarily a function!).  (Contributed by AV, 3-Jun-2019.) $)
    fsuppun $p |- ( ph -> ( ( F u. G ) supp Z ) e. Fin ) $=
      ( cun cvv wcel wa csupp cfn ccnv cima wceq sylbir suppimacnv sylan adantr
      co wi csn cdif cnvun imaeq1i imaundir eqtri unexb eqcomd fsuppimpd adantl
      simpl eqeltrd simpr unfi syl2anc syl5eqel wb eleq1d mpbird ex wn supp0prc
      c0 0fin syl6eqel a1d pm2.61i ) BCGZHIZDHIZJZAVIDKTZLIZUAVLAVNVLAJZVNVIMZH
      DUBUCZNZLIZVOVRBMZVQNZCMZVQNZGZLVRVTWBGZVQNWDVPWEVQBCUDUEVTWBVQUFUGVOWALI
      WCLIWDLIVOWABDKTZLVLWAWFOAVLWFWAVJBHIZVKWFWAOVJWGCHIZJZWGBCUHZWGWHULPBHHD
      QRUISAWFLIVLABDEUJUKUMVOWCCDKTZLVLWCWKOZAVJWHVKWLVJWIWHWJWGWHUNPWHVKJWKWC
      CHHDQUIRSAWKLIVLACDFUJUKUMWAWCUOUPUQVLVNVSURAVLVMVRLVIHHDQUSSUTVAVLVBZVNA
      WMVMVDLVIDVCVEVFVGVH $.

    $( The union of the support of two finitely supported functions is finite.
       (Contributed by AV, 1-Jul-2019.) $)
    fsuppunfi $p |- ( ph -> ( ( F supp Z ) u. ( G supp Z ) ) e. Fin ) $=
      ( cfsupp wbr csupp co cun cfn wcel wfun wa wi fsuppimp unfi expcom adantl
      3syl com12 syl mpcom ) BDGHZABDIJZCDIJZKLMZEUEBNZUFLMZOAUHPZBDQUJUKUIAUJU
      HACDGHCNZUGLMZOUJUHPZFCDQUMUNULUJUMUHUFUGRSTUAUBTUCUD $.
  $}

  ${
    fsuppunbi.u $e |- ( ph -> Fun ( F u. G ) ) $.
    $( If the union of two classes/functions is a function, this union is
       finitely supported iff the two functions are finitely supported.
       (Contributed by AV, 18-Jun-2019.) $)
    fsuppunbi $p |- ( ph -> ( ( F u. G ) finSupp Z
                              <-> ( F finSupp Z /\ G finSupp Z ) ) ) $=
      ( cfsupp wbr wa cvv wcel relfsupp csupp co cfn simpr adantr wb funisfsupp
      wfun adantl cun wrel brrelex12 mpan unexb wss simprlr suppun ssfi syl2anc
      wi fununfun simpld simprll syl3anc mpbird oveq1i eleq1i biimpi simprd jca
      uncom a1d fsuppimp syl11 sylanbr mpcom com12 simpl fsuppun brrelexi unexg
      ex syl2an brrelex2i impbid ) ABCUAZDFGZBDFGZCDFGZHZVRAWAVQIJZDIJZHZVRAWAU
      KZFUBVRWDKVQDFUCUDWBBIJZCIJZHZWCVRWEUKBCUEVQSZVQDLMZNJZHZWHWCHZWEVRWLWMWE
      WLWMHZWAAWNVSVTWNVSBDLMZNJZWNWKWOWJUFWPWLWKWMWIWKOPWNBCIDWLWFWGWCUGZUHWJW
      OUIUJWNBSZWFWCVSWPQWLWRWMWIWRWKWIWRCSZBCULZUMPPWLWFWGWCUNZWMWCWLWHWCOTZBI
      IDRUOUPWNVTCDLMZNJZWNCBUAZDLMZNJZXCXFUFXDWLXGWMWKXGWIWKXGWJXFNVQXEDLBCVBU
      QURUSTPWNCBIDXAUHXFXCUIUJWNWSWGWCVTXDQWLWSWMWIWSWKWIWRWSWTUTPPWQXBCIIDRUO
      UPVAVCVMVQDVDVEVFVGVHAWAVRAWAHZVRWKWAWKAWABCDVSVTVIVSVTOVJTXHWIWBWCVRWKQA
      WIWAEPWAWBAVSWFWGWBVTBDFKVKCDFKVKBCIIVLVNTWAWCAVSWCVTBDFKVOPTVQIIDRUOUPVM
      VP $.
  $}

  $( The empty set is a finitely supported function.  (Contributed by AV,
     19-Jul-2019.) $)
  0fsupp $p |- ( Z e. V -> (/) finSupp Z ) $=
    ( wcel c0 cfsupp wbr csupp cfn supp0 0fin syl6eqel wfun cvv fun0 funisfsupp
    co wb 0ex mp3an12 mpbird ) BACZDBEFZDBGPZHCZUAUCDHABIJKDLDMCUAUBUDQNRDMABOS
    T $.

  $( A singleton containing an ordered pair is a finitely supported function.
     (Contributed by AV, 19-Jul-2019.) $)
  snopfsupp $p |- ( ( X e. V /\ Y e. W /\ Z e. U )
                    -> { <. X , Y >. } finSupp Z ) $=
    ( wcel w3a cop csn cfsupp wbr csupp co cfn wss wa snfi snopsuppss cvv simp3
    pm3.2i ssfi mp1i wfun wb funsng 3adant3 snex a1i funisfsupp syl3anc mpbird
    ) DBGZECGZFAGZHZDEIZJZFKLZUSFMNZOGZDJZOGZVAVCPZQVBUQVDVEDRDEFSUBVCVAUCUDUQU
    SUEZUSTGZUPUTVBUFUNUOVFUPDEBCUGUHVGUQURUIUJUNUOUPUAUSTAFUKULUM $.

  $( Finite support for a function extended by a singleton.  (Contributed by
     Stefan O'Rear, 27-Feb-2015.)  (Revised by AV, 19-Jul-2019.) $)
  funsnfsupp $p |- ( ( ( X e. V /\ Y e. W ) /\ ( Fun F /\ X e/ dom F ) )
                 -> ( ( F u. { <. X , Y >. } ) finSupp Z <-> F finSupp Z ) ) $=
    ( cvv wcel wa wfun cdm csn cfsupp wbr cin c0 wceq simpl adantl wn cop wb wi
    wnel cun funsng anim12ci dmsnopg ineq2d df-nel disjsn sylbb2 sylan9eq funun
    jca syl fsuppunbi w3a anim2i ancomd df-3an sylibr snopfsupp biantrud bitr4d
    ex relfsupp brrelex2i pm5.21ni a1d pm2.61i ) FGHZDBHZECHZIZAJZDAKZUDZIZIZAD
    EUALZUEZFMNZAFMNZUBZUCVLVTWEVLVTIZWCWDWAFMNZIWDWFAWAFWFVPWAJZIZVQWAKZOZPQZI
    ZWBJVTWMVLVTWIWLVOWHVSVPDEBCUFVPVRRUGVOVSWKVQDLZOZPVOWJWNVQVNWJWNQVMDECUHSU
    IVRWOPQZVPVRDVQHTWPDVQUJVQDUKULSUMUOSAWAUNUPUQWFWGWDWFVMVNVLURZWGWFVOVLIWQW
    FVLVOVTVOVLVOVSRUSUTVMVNVLVAVBGBCDEFVCUPVDVEVFVLTWEVTWCVLWDWBFMVGVHAFMVGVHV
    IVJVK $.

  ${
    fsuppres.s $e |- ( ph -> F finSupp Z ) $.
    fsuppres.z $e |- ( ph -> Z e. V ) $.
    $( The restriction of a finitely supported function is finitely supported.
       (Contributed by AV, 14-Jul-2019.) $)
    fsuppres $p |- ( ph -> ( F |` X ) finSupp Z ) $=
      ( cfsupp wbr csupp co cfn wcel wfun wa wi cvv syl adantr 3syl cres expcom
      fsuppimp wss relprcnfsupp con4i jca ressuppss ssfi com23 imp mpcom funres
      wb resexg funisfsupp syl3anc mpbird ) ABDUAZEHIZUSEJKZLMZBEHIZAVBFVCBNZBE
      JKZLMZOZAVBPZBEUCZVDVFVHVDAVFVBAVDVFVBPZAVDOBQMZECMZOZVAVEUDZVJAVMVDAVKVL
      AVCVKFVKVCBEUEUFZRGUGSDBQCEUHVFVNVBVEVAUIUBTUBUJUKRULAUSNZUSQMZVLUTVBUNAV
      CVGVPFVIVDVPVFDBUMSTAVCVKVQFVOBDQUOTGUSQCEUPUQUR $.
  $}

  ${
    ressuppfi.b $e |- ( ph -> ( dom F \ B ) e. Fin ) $.
    ressuppfi.f $e |- ( ph -> F e. W ) $.
    ressuppfi.g $e |- ( ph -> G = ( F |` B ) ) $.
    ressuppfi.s $e |- ( ph -> ( G supp Z ) e. Fin ) $.
    ressuppfi.z $e |- ( ph -> Z e. V ) $.
    $( If the support of the restriction of a function by a set which,
       subtracted from the domain of the function so that its difference is
       finite, the support of the function itself is finite.  (Contributed by
       AV, 22-Apr-2019.) $)
    ressuppfi $p |- ( ph -> ( F supp Z ) e. Fin ) $=
      ( cres csupp co cdm cdif cfn wcel syl2anc cun eqcomd eqeltrd ressuppssdif
      wss oveq1d unfi ssfi ) ACBMZGNOZCPBQZUAZRSZCGNOZULUEZUNRSAUJRSUKRSUMAUJDG
      NORAUIDGNADUIJUBUFKUCHUJUKUGTACFSGESUOILBCFEGUDTULUNUHT $.
  $}

  ${
    resfsupp.b $e |- ( ph -> ( dom F \ B ) e. Fin ) $.
    resfsupp.e $e |- ( ph -> F e. W ) $.
    resfsupp.f $e |- ( ph -> Fun F ) $.
    resfsupp.g $e |- ( ph -> G = ( F |` B ) ) $.
    resfsupp.s $e |- ( ph -> G finSupp Z ) $.
    resfsupp.z $e |- ( ph -> Z e. V ) $.
    $( If the restriction of a function by a set which, subtracted from the
       domain of the function so that its difference is finitely supported, the
       function itself is finitely supported.  (Contributed by AV,
       27-May-2019.) $)
    resfsupp $p |- ( ph -> F finSupp Z ) $=
      ( cfsupp wbr csupp co cfn wcel fsuppimpd ressuppfi wfun funisfsupp mpbird
      wb syl3anc ) ACGNOZCGPQRSZABCDEFGHIKADGLTMUAACUBCFSGESUGUHUEJIMCFEGUCUFUD
      $.
  $}

  ${
    resfifsupp.f $e |- ( ph -> Fun F ) $.
    resfifsupp.x $e |- ( ph -> X e. Fin ) $.
    resfifsupp.z $e |- ( ph -> Z e. V ) $.
    $( The restriction of a function to a finite set is finitely supported.
       (Contributed by AV, 12-Dec-2019.) $)
    resfifsupp $p |- ( ph -> ( F |` X ) finSupp Z ) $=
      ( cdm cin cres cfsupp wrel wceq wfun funrel syl wfn cfn wcel resindm infi
      funfn sylib fnresin2 fndmfifsupp eqbrtrrd ) ABDBIZJZKZBDKZELABMZUJUKNABOZ
      ULFBPQBDUAQAUIUJCEABUHRZUJUIRAUMUNFBUCUDUHDBUEQADSTUISTGDUHUBQHUFUG $.
  $}

  $( Two ways of saying that a function with known codomain is finitely
     supported.  (Contributed by AV, 8-Jul-2019.) $)
  frnfsuppbi $p |- ( ( I e. V /\ Z e. W ) -> ( F : I --> S
                 -> ( F finSupp Z <-> ( `' F " ( S \ { Z } ) ) e. Fin ) ) ) $=
    ( wcel wa wf cfsupp wbr ccnv csn cdif cima cfn wb csupp cvv imp wfun adantl
    co ffun wi fex expcom adantr simplr funisfsupp syl3anc wceq frnsuppeq bitrd
    eleq1d ex ) CDGZFEGZHZCABIZBFJKZBLAFMNOZPGZQUSUTHZVABFRUCZPGZVCVDBUAZBSGZUR
    VAVFQUTVGUSCABUDUBUSUTVHUQUTVHUEURUTUQVHCADBUFUGUHTUQURUTUIBSEFUJUKVDVEVBPU
    SUTVEVBULABCDEFUMTUOUNUP $.

  ${
    $d A k $.  $d F k $.  $d Z k $.  $d ph k $.
    fsuppmptif.f $e |- ( ph -> F : A --> B ) $.
    fsuppmptif.a $e |- ( ph -> A e. V ) $.
    fsuppmptif.z $e |- ( ph -> Z e. W ) $.
    fsuppmptif.s $e |- ( ph -> F finSupp Z ) $.
    $( A function mapping an argument to either a value of a finitely supported
       function or zero is finitely supported.  (Contributed by AV,
       6-Jun-2019.) $)
    fsuppmptif $p |- ( ph
                 -> ( k e. A |-> if ( k e. D , ( F ` k ) , Z ) ) finSupp Z ) $=
      ( wcel cif csupp co cfn cvv wa cv cfv cmpt cfsupp wbr wfun wf fvex adantr
      ifexg sylancr eqid fmptd ffun syl wss fsuppimpd cdif ssid a1i ifeq1d ifid
      suppssr syl6eq suppss2 ssfi syl2anc wb mptexg isfsupp mpbir2and ) AEBEUAZ
      DNZVLFUBZIOZUCZIUDUEZVPUFZVPIPQZRNZABSVPUGVRAEBVOSVPAVLBNZTVNSNIHNZVOSNVL
      FUHAWBWALUIVMVNISHUJUKVPULUMBSVPUNUOAFIPQZRNVSWCUPVTAFIMUQABVOEGWCIAVLBWC
      URNTZVOVMIIOIWDVMVNIIABCHFGWCVLIJWCWCUPAWCUSUTKLVCVAVMIVBVDKVEWCVSVFVGAVP
      SNZWBVQVRVTTVHABGNWEKEBVOGVIUOLVPSHIVJVGVK $.
  $}

  ${
    fsuppcolem.f $e |- ( ph -> ( `' F " ( _V \ { Z } ) ) e. Fin ) $.
    fsuppcolem.g $e |- ( ph -> G : X -1-1-> Y ) $.
    $( Lemma for ~ fsuppco .  Formula building theorem for finite supports:
       rearranging the index set.  (Contributed by Stefan O'Rear,
       21-Mar-2015.) $)
    fsuppcolem $p |- ( ph -> ( `' ( F o. G ) " ( _V \ { Z } ) ) e. Fin ) $=
      ( ccom ccnv cvv csn cdif cima cfn cnvco imaeq1i imaco eqtri wcel wfun wf1
      wf df-f1 simprbi syl imafi syl2anc syl5eqel ) ABCIJZKFLMZNZCJZBJZUKNZNZOU
      LUMUNIZUKNUPUJUQUKBCPQUMUNUKRSAUMUAZUOOTUPOTADECUBZURHUSDECUCURDECUDUEUFG
      UMUOUGUHUI $.
  $}

  ${
    fsuppco.f $e |- ( ph -> F finSupp Z ) $.
    fsuppco.g $e |- ( ph -> G : X -1-1-> Y ) $.
    fsuppco.z $e |- ( ph -> Z e. W ) $.
    fsuppco.v $e |- ( ph -> F e. V ) $.
    $( The composition of a 1-1 function with a finitely supported function is
       finitely supported.  (Contributed by AV, 28-May-2019.) $)
    fsuppco $p |- ( ph -> ( F o. G ) finSupp Z ) $=
      ( cfsupp cfn wcel ccnv cvv wfun syl syl2anc ccom wbr csupp cdif cima wceq
      co csn wf df-f1 simprbi cofunex2g suppimacnv fsuppimpd fsuppcolem eqeltrd
      wf1 eqeltrrd wb fsuppimp simpld f1fun funco funisfsupp syl3anc mpbird ) A
      BCUAZHMUBZVGHUCUGZNOZAVIVGPQHUHUDZUEZNAVGQOZHEOZVIVLUFABDOZCPRZVMLAFGCUQZ
      VPJVQFGCUIVPFGCUJUKSBCDULTZKVGQEHUMTABCFGHABHUCUGZBPVKUEZNAVOVNVSVTUFLKBD
      EHUMTABHIUNURJUOUPAVGRZVMVNVHVJUSABRZCRZWAABHMUBZWBIWDWBVSNOBHUTVASAVQWCJ
      FGCVBSBCVCTVRKVGQEHVDVEVF $.
  $}

  ${
    $d x Z $.  $d x F $.  $d x G $.  $d x ph $.
    fsuppco2.z $e |- ( ph -> Z e. W ) $.
    fsuppco2.f $e |- ( ph -> F : A --> B ) $.
    fsuppco2.g $e |- ( ph -> G : B --> B ) $.
    fsuppco2.a $e |- ( ph -> A e. U ) $.
    fsuppco2.b $e |- ( ph -> B e. V ) $.
    fsuppco2.n $e |- ( ph -> F finSupp Z ) $.
    fsuppco2.i $e |- ( ph -> ( G ` Z ) = Z ) $.
    $( The composition of a function which maps the zero to zero with a
       finitely supported function is finitely supported.  This is not only a
       special case of ~ fsuppcor because it does not require that the "zero"
       is an element of the range of the finitely supported function.
       (Contributed by AV, 6-Jun-2019.) $)
    fsuppco2 $p |- ( ph -> ( G o. F ) finSupp Z ) $=
      ( wcel syl2anc cfv cvv vx ccom cfsupp wbr wfun csupp co cfn wf ffun funco
      syl wss fsuppimpd fco cv cdif wa wceq eldifi fvco3 syl2an ssid a1i fveq2d
      suppssr adantr 3eqtrd suppss ssfi wb fex coexg isfsupp mpbir2and ) AFEUBZ
      IUCUDZVPUEZVPIUFUGZUHQZAFUEZEUEZVRACCFUIZWALCCFUJULABCEUIZWBKBCEUJULFEUKR
      AEIUFUGZUHQVSWEUMVTAEIOUNABCUAVPWEIAWCWDBCVPUILKBCCFEUORAUAUPZBWEUQQZURZW
      FVPSZWFESZFSZIFSZIAWDWFBQWIWKUSWGKWFBWEUTBCWFFEVAVBWHWJIFABCHEDWEWFIKWEWE
      UMAWEVCVDMJVFVEAWLIUSWGPVGVHVIWEVSVJRAVPTQZIHQVQVRVTURVKAFTQZETQZWMAWCCGQ
      WNLNCCGFVLRAWDBDQWOKMBCDEVLRFETTVMRJVPTHIVNRVO $.
  $}

  ${
    $d x Z $.  $d x F $.  $d x G $.  $d x ph $.  $d x .0. $.
    fsuppcor.0 $e |- ( ph -> .0. e. W ) $.
    fsuppcor.z $e |- ( ph -> Z e. B ) $.
    fsuppcor.f $e |- ( ph -> F : A --> C ) $.
    fsuppcor.g $e |- ( ph -> G : B --> D ) $.
    fsuppcor.s $e |- ( ph -> C C_ B ) $.
    fsuppcor.a $e |- ( ph -> A e. U ) $.
    fsuppcor.b $e |- ( ph -> B e. V ) $.
    fsuppcor.n $e |- ( ph -> F finSupp Z ) $.
    fsuppcor.i $e |- ( ph -> ( G ` Z ) = .0. ) $.
    $( The composition of a function which maps the zero of the range of a
       finitely supported function to the zero of its range with this finitely
       supported function is finitely supported.  (Contributed by AV,
       6-Jun-2019.) $)
    fsuppcor $p |- ( ph -> ( G o. F ) finSupp .0. ) $=
      ( vx ccom cfsupp wbr wfun csupp co cfn wcel wf ffun syl funco syl2anc wss
      fsuppimpd cres fssresd fco2 cv cdif cfv wceq eldifi fvco3 syl2an ssid a1i
      wa suppssr fveq2d adantr 3eqtrd suppss cvv wb fex coexg isfsupp mpbir2and
      ssfi ) AHGUCZKUDUEZWCUFZWCKUGUHZUIUJZAHUFZGUFZWEACEHUKZWHPCEHULUMABDGUKZW
      IOBDGULUMHGUNUOAGLUGUHZUIUJWFWLUPWGAGLTUQABEUBWCWLKADEHDURUKWKBEWCUKACEDH
      PQUSOBDEHGUTUOAUBVAZBWLVBUJZVJZWMWCVCZWMGVCZHVCZLHVCZKAWKWMBUJWPWRVDWNOWM
      BWLVEBDWMHGVFVGWOWQLHABDCGFWLWMLOWLWLUPAWLVHVIRNVKVLAWSKVDWNUAVMVNVOWLWFW
      BUOAWCVPUJZKJUJWDWEWGVJVQAHVPUJZGVPUJZWTAWJCIUJXAPSCEIHVRUOAWKBFUJXBORBDF
      GVRUOHGVPVPVSUOMWCVPJKVTUOWA $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d f g x F $.  $d f g x G $.  $d f g ph $.
    $d x D $.  $d f g S $.  $d f g T $.  $d x W $.  $d x Z $.
    mapfien.s $e |- S = { x e. ( B ^m A ) | x finSupp Z } $.
    mapfien.t $e |- T = { x e. ( D ^m C ) | x finSupp W } $.
    mapfien.w $e |- W = ( G ` Z ) $.
    mapfien.f $e |- ( ph -> F : C -1-1-onto-> A ) $.
    mapfien.g $e |- ( ph -> G : B -1-1-onto-> D ) $.
    mapfien.a $e |- ( ph -> A e. _V ) $.
    mapfien.b $e |- ( ph -> B e. _V ) $.
    mapfien.c $e |- ( ph -> C e. _V ) $.
    mapfien.d $e |- ( ph -> D e. _V ) $.
    mapfien.z $e |- ( ph -> Z e. B ) $.
    $( Lemma 1 for ~ mapfien .  (Contributed by AV, 3-Jul-2019.) $)
    mapfienlem1 $p |- ( ( ph /\ f e. S )
                          -> ( G o. ( f o. F ) ) finSupp W ) $=
      ( cv wcel wa cvv ccom cfv fvex eqeltri a1i adantr wf cfsupp wbr cmap crab
      co elrabi elmapi syl eleq2s wf1o f1of fco syl2anr wss ssid elrab2 simprbi
      breq1 adantl wf1 f1of1 simpr fsuppco wceq eqcomi fsuppcor ) AIUDZGUEZUFZE
      DDFUGWAJUHZKUGUGLMLUGUEWCLMKUIZUGPMKUJUKULAMDUEWBUCUMZWBCDWAUNZECJUNZEDWD
      UNAWGWABUDZMUOUPZBDCUQUSZURZGWAWLUEWAWKUEZWGWJBWAWKUTWADCVAVBNVCAECJVDZWH
      QECJVEVBECDWAJVFVGADFKUNZWBADFKVDWORDFKVEVBUMDDVHWCDVIULAEUGUEWBUAUMADUGU
      EWBTUMWCWAJGDECMWBWAMUOUPZAWBWMWPWJWPBWAWKGWIWAMUOVLNVJVKVMAECJVNZWBAWNWQ
      QECJVOVBUMWFAWBVPVQWELVRWCLWEPVSULVT $.

    $( Lemma 2 for ~ mapfien .  (Contributed by AV, 3-Jul-2019.) $)
    mapfienlem2 $p |- ( ( ph /\ g e. T )
                          -> ( ( `' G o. g ) o. `' F ) finSupp Z ) $=
      ( cv wcel ccnv ccom cvv adantr cfv wf1o f1of syl ffvelrnd syl5eqel cfsupp
      wa wf wbr cmap co crab elrabi elmapi eleq2s adantl f1ocnv 3syl ssid breq1
      wss a1i elrab simprbi wceq jca eqcomi f1ocnvfv imp fsuppcor wf1 f1of1 fex
      cnvexg coexg sylan fsuppco ) AIUDZHUEZUQZKUFZWHUGZJUFZUHDCEMWJEFFDUHWHWKU
      HDMLAMDUEZWIUCUIZALFUEWIALMKUJZFPADFMKADFKUKZDFKURZRDFKULUMZUCUNUOUIWIEFW
      HURZAWTWHBUDZLUPUSZBFEUTVAZVBZHWHXDUEZWHXCUEZWTXBBWHXCVCWHFEVDUMOVEVFAFDW
      KURZWIAWQFDWKUKXGRDFKVGFDWKULVHUIFFVKWJFVIVLAEUHUEWIUAUIAFUHUEWIUBUIWIWHL
      UPUSZAXHWHXDHXEXFXHXBXHBWHXCXAWHLUPVJVMVNOVEVFWJWQWNUQZWPLVOZUQZLWKUJMVOZ
      AXKWIAXIXJAWQWNRUCVPXJALWPPVQVLVPUIXIXJXLDFMLKVRVSUMVTACEWMWAZWIAECJUKCEW
      MUKXMQECJVGCEWMWBVHUIWOAWKUHUEZWIWLUHUEAWRDUHUEZUQKUHUEXNAWRXOWSTVPDFUHKW
      CKUHWDVHWKWHUHHWEWFWG $.

    $( Lemma 3 for ~ mapfien .  (Contributed by AV, 3-Jul-2019.) $)
    mapfienlem3 $p |- ( ( ph /\ g e. T )
                           -> ( ( `' G o. g ) o. `' F ) e. S ) $=
      ( cv wcel wa ccnv ccom cmap co cfsupp wbr wf wf1o f1ocnv f1of 3syl adantr
      crab elrabi eleq2s adantl elmapi syl syl2anc wb elmapd mpbird mapfienlem2
      fco cvv breq1 elrab2 sylanbrc ) AIUDZHUEZUFZKUGZVOUHZJUGZUHZDCUIUJZUEZWAM
      UKULZWAGUEVQWCCDWAUMZVQEDVSUMZCEVTUMZWEVQFDVRUMZEFVOUMZWFAWHVPADFKUNFDVRU
      NWHRDFKUOFDVRUPUQURVQVOFEUIUJZUEZWIVPWKAWKVOBUDZLUKULZBWJUSHWMBVOWJUTOVAV
      BVOFEVCVDEFDVRVOVJVEAWGVPAECJUNCEVTUNWGQECJUOCEVTUPUQURCEDVSVTVJVEAWCWEVF
      VPADCWAVKVKTSVGURVHABCDEFGHIJKLMNOPQRSTUAUBUCVIWLMUKULWDBWAWBGWLWAMUKVLNV
      MVN $.

    $( A bijection of the base sets induces a bijection on the set of finitely
       supported functions.  (Contributed by Mario Carneiro, 30-May-2015.)
       (Revised by AV, 3-Jul-2019.) $)
    mapfien $p |- ( ph ->
        ( f e. S |-> ( G o. ( f o. F ) ) ) : S -1-1-onto-> T ) $=
      ( vg cv ccom ccnv cmpt eqid wcel wa cmap co cfsupp wbr wf wf1o syl adantr
      f1of breq1 elrab2 simplbi adantl elmapi fco syl2anc wb elmapd mapfienlem1
      cvv mpbird sylanbrc mapfienlem3 wceq coass cid cres f1ococnv1 coeq2d 3syl
      f1ocnv simpr sylib simpld adantrl fcoi1 eqtrd syl5eq eqeq2d adantrr fcoi2
      coeq1d syl5eqr eqcom syl6bb bitr4d wfo wfn f1ofo ffn cocan2 syl3anc f1of1
      wf1 cocan1 3bitr3d f1o2d ) AIUDGHKIUEZJUFZUFZKUGZUDUEZUFZJUGZUFZIGXKUHZXQ
      UIAXIGUJZUKZXKFEULUMZUJZXKLUNUOZXKHUJXSYAEFXKUPZXSDFKUPZEDXJUPZYCAYDXRADF
      KUQZYDRDFKUTURUSXSCDXIUPZECJUPZYEXSXIDCULUMZUJZYGXRYJAXRYJXIMUNUOZBUEZMUN
      UOYKBXIYIGYLXIMUNVANVBVCVDZXIDCVEZURAYHXRAECJUQZYHQECJUTURUSECDXIJVFVGZED
      FKXJVFVGZAYAYCVHXRAFEXKVKVKUBUAVIUSVLABCDEFGHIJKLMNOPQRSTUAUBUCVJYLLUNUOZ
      YBBXKXTHYLXKLUNVAOVBVMABCDEFGHUDJKLMNOPQRSTUAUBUCVNAXRXMHUJZUKZUKZXJXPJUF
      ZVOZXNXLXKUFZVOZXIXPVOZXMXKVOZUUAUUCXJXNVOZUUEUUAUUBXNXJUUAUUBXNXOJUFZUFZ
      XNXNXOJVPUUAUUJXNVQEVRZUFZXNUUAUUIUUKXNUUAYOUUIUUKVOAYOYTQUSZECJVSURVTUUA
      EDXNUPZUULXNVOAYSUUNXRAYSUKZFDXLUPZEFXMUPZUUNAUUPYSAYFFDXLUQZUUPRDFKWBZFD
      XLUTWAUSUUOXMXTUJZUUQUUOUUTXMLUNUOZUUOYSUUTUVAUKAYSWCYRUVABXMXTHYLXMLUNVA
      OVBWDWEXMFEVEURZEFDXLXMVFVGZWFEDXNWGURWHWIWJUUAUUEXNXJVOUUHUUAUUDXJXNUUAU
      UDXLKUFZXJUFZXJXLKXJVPUUAUVEVQDVRZXJUFZXJUUAUVDUVFXJUUAYFUVDUVFVOAYFYTRUS
      DFKVSURWMUUAYEUVGXJVOAXRYEYSYPWKEDXJWLURWHWNWJXNXJWOWPWQUUAECJWRZXICWSZXP
      CWSZUUCUUFVHUUAYOUVHUUMECJWTURAXRUVIYSXSYJYGUVIYMYNCDXIXAWAWKAYSUVJXRUUOC
      DXPUPZUVJUUOUUNCEXOUPZUVKUVCAUVLYSAYOCEXOUQUVLQECJWBCEXOUTWAUSCEDXNXOVFVG
      CDXPXAURWFECJXIXPXBXCUUAFDXLXEZUUQYCUUEUUGVHUUAUURUVMAUURYTAYFUURRUUSURUS
      FDXLXDURAYSUUQXRUVBWFAXRYCYSYQWKEFDXLXMXKXFXCXGXH $.
  $}

  ${
    $d w x y z $.  $d w x z A $.  $d w x z y B $.  $d w x z C $.
    $d w x z y D $.  $d w y z S $.  $d w x y z .0. $.  $d w y z ph $.
    $d x z y W $.  $d y z T $.
    mapfien2.s $e |- S = { x e. ( B ^m A ) | x finSupp .0. } $.
    mapfien2.t $e |- T = { x e. ( D ^m C ) | x finSupp W } $.
    mapfien2.ac $e |- ( ph -> A ~~ C ) $.
    mapfien2.bd $e |- ( ph -> B ~~ D ) $.
    mapfien2.z $e |- ( ph -> .0. e. B ) $.
    mapfien2.w $e |- ( ph -> W e. D ) $.
    $( Equinumerousity relation for sets of finitely supported functions.
       (Contributed by Stefan O'Rear, 9-Jul-2015.)  (Revised by AV,
       7-Jul-2019.) $)
    mapfien2 $p |- ( ph -> S ~~ T ) $=
      ( cen wbr wcel syl vy vz vw cv wf1o cfv wceq wa wex enfixsn syl3anc sylib
      wi bren w3a cfsupp cmap co crab ccnv ccom cmpt eqid f1ocnv 3ad2ant2 simp3
      cvv 3ad2ant1 relen brrelexi brrelex2i mapfien rabex2 f1oen 3adant3r breq2
      ovex rabbidv syl6eqr adantl 3ad2ant3 breqtrd 3exp exlimdv mpd ) ADFUAUDZU
      EZJWFUFZIUGZUHZUAUIZGHQRZAJDSZIFSDFQRZWKOPNJIUADFUJUKAWJWLUAACEUBUDZUEZUB
      UIZWJWLUMZACEQRZWQMCEUBUNULAWPWRUBAWPWJWLAWPWJUOGBUDZWHUPRZBFEUQURZUSZHQA
      WPWGGXCQRZWIAWPWGUOZGXCUCGWFUCUDWOUTZVAVAVBZUEXDXEBCDEFGXCUCXFWFWHJKXCVCW
      HVCWPAECXFUEWGCEWOVDVEAWPWGVFXEWSCVGSAWPWSWGMVHZCEQVIVJTXEWNDVGSAWPWNWGNV
      HZDFQVIVJTXEWSEVGSXHCEQVIVKTXEWNFVGSXIDFQVIVKTAWPWMWGOVHVLGXCXGWTJUPRBDCU
      QURGKDCUQVQVMVNTVOWJAXCHUGZWPWIXJWGWIXCWTIUPRZBXBUSHWIXAXKBXBWHIWTUPVPVRL
      VSVTWAWBWCWDWEWDWE $.
  $}

  ${
    $d I x $.  $d X x $.  $d .0. x $.  $d ph x $.
    sniffsupp.i $e |- ( ph -> I e. V ) $.
    sniffsupp.0 $e |- ( ph -> .0. e. W ) $.
    sniffsupp.f $e |- F = ( x e. I |-> if ( x = X , A , .0. ) ) $.
    $( A function mapping all but one arguments to zero is finitely supported.
       (Contributed by AV, 8-Jul-2019.) $)
    sniffsupp $p |- ( ph -> F finSupp .0. ) $=
      ( cv wceq cif cmpt cfsupp cfn wcel cvv wbr csupp co csn wss snfi cdif wne
      wa eldifsni adantl neneqd iffalsed suppss2 ssfi sylancr funmpt a1i mptexg
      wfun wb syl funisfsupp syl3anc mpbird syl5eqbr ) ADBEBMZHNZCIOZPZIQLAVJIQ
      UAZVJIUBUCZRSZAHUDZRSVLVNUEVMHUFAEVIBFVNIAVGEVNUGSZUIZVHCIVPVGHVOVGHUHAVG
      EHUJUKULUMJUNVNVLUOUPAVJUTZVJTSZIGSVKVMVAVQABEVIUQURAEFSVRJBEVIFUSVBKVJTG
      IVCVDVEVF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finite intersections
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c fi $.
  $( Extend class notation with the function whose value is the class of all
     the finite intersections of the elements of a given set. $)
  cfi $a class fi $.

  ${
    $d x y z $.
    $( Function whose value is the class of all the finite intersections of the
       elements of ` x ` .  (Contributed by FL, 27-Apr-2008.) $)
    df-fi $a |- fi = ( x e. _V |-> { z |
                  E. y e. ( ~P x i^i Fin ) z = |^| y } ) $.
  $}

  ${
    $d x y z A $.  $d x y B $.  $d x V $.  $d x W $.
    $( The set of all the finite intersections of the elements of ` A ` .
       (Contributed by FL, 27-Apr-2008.)  (Revised by Mario Carneiro,
       24-Nov-2013.) $)
    fival $p |- ( A e. V -> ( fi ` A ) = { y |
                  E. x e. ( ~P A i^i Fin ) y = |^| x } ) $=
      ( vz wcel cvv cv cint wceq cpw cfn cin wrex cab cfi cfv elex wss sylibr
      cuni wa simpr c0 wne inss1 sseli elpwid eqvisset intssuni2 syl2an eqsstrd
      intex selpw rexlimiva abssi uniexg pwexg syl ssexg sylancr ineq1d rexeqdv
      pweq abbidv df-fi fvmptg syl2anc ) CDFZCGFBHZAHZIZJZACKZLMZNZBOZGFZCPQVQJ
      CDRVIVQCUAZKZSVTGFZVRVPBVTVMVJVTFZAVOVKVOFZVMUBZVJVSSWBWDVJVLVSWCVMUCWCVK
      CSVKUDUEZVLVSSVMWCVKCVOVNVKVNLUFUGUHVMVLGFWEBVLUIVKUMTVKCUJUKULBVSUNTUOUP
      VIVSGFWACDUQVSGURUSVQVTGUTVAECVMAEHZKZLMZNZBOVQGGPWFCJZWIVPBWJVMAWHVOWJWG
      VNLWFCVDVBVCVEEABVFVGVH $.

    $( Specific properties of an element of ` ( fi `` B ) ` .  (Contributed by
       FL, 27-Apr-2008.)  (Revised by Mario Carneiro, 24-Nov-2013.) $)
    elfi $p |- ( ( A e. V /\ B e. W ) -> ( A e. ( fi ` B ) <->
        E. x e. ( ~P B i^i Fin ) A = |^| x ) ) $=
      ( vy wcel cfi cfv cv cint wceq cpw cfn cin wrex cab fival eleq2d eqeq1
      rexbidv elabg sylan9bbr ) CEGZBCHIZGBFJZAJKZLZACMNOZPZFQZGBDGBUGLZAUIPZUD
      UEUKBAFCERSUJUMFBDUFBLUHULAUIUFBUGTUAUBUC $.

    $( The empty intersection need not be considered in the set of finite
       intersections.  (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    elfi2 $p |- ( B e. V -> ( A e. ( fi ` B ) <->
        E. x e. ( ( ~P B i^i Fin ) \ { (/) } ) A = |^| x ) ) $=
      ( wcel cvv cfi cfv cv cint wceq cpw cfn c0 wrex wi a1i wa simpr ancom cin
      csn cdif elex wne eldifsni adantr intex sylib eqeltrd rexlimiva elfi vprc
      wb elsni inteqd syl6eq eleq1d mtbiri simpll eqeltrrd nsyl3 biantrud eldif
      wn int0 syl6bbr pm5.32da 3bitr4g rexbidv2 bitrd expcom pm5.21ndd ) CDEZBF
      EZBCGHZEZBAIZJZKZACLMUAZNUBZUCZOZVQVOPVNBVPUDQWDVOPVNVTVOAWCVRWCEZVTRZBVS
      FWEVTSWFVRNUEZVSFEZWEWGVTVRWANUFUGVRUHUIUJUKQVOVNVQWDUNVOVNRZVQVTAWAOWDAB
      CFDULWIVTVTAWAWCWIVTVRWAEZRVTWERWJVTRWFWIVTWJWEWIVTRZWJWJVRWBEZVEZRWEWKWM
      WJWLWHWKWLWHFFEUMWLVSFFWLVSNJFWLVRNVRNUOUPVFUQURUSWKBVSFWIVTSVOVNVTUTVAVB
      VCVRWAWBVDVGVHWJVTTWEVTTVIVJVKVLVM $.

    $( Sufficient condition for an element of ` ( fi `` B ) ` .  (Contributed
       by Mario Carneiro, 24-Nov-2013.) $)
    elfir $p |- ( ( B e. V /\ ( A C_ B /\ A =/= (/) /\ A e. Fin ) ) ->
        |^| A e. ( fi ` B ) ) $=
      ( vx wcel wss c0 wne cfn w3a wa cint cfi cfv cv wceq cpw cin wrex cvv imp
      simp1 elpw2g syl5ibr simpr3 elind inteq eqeq2d rspcev sylancl simp2 intex
      eqid wb sylib id elfi syl2anr mpbird ) BCEZABFZAGHZAIEZJZKZALZBMNEZVFDOZL
      ZPZDBQZIRZSZVEAVLEVFVFPZVMVEVKIAUTVDAVKEZVDVOUTVAVAVBVCUBABCUCUDUAUTVAVBV
      CUEUFVFUMVJVNDAVLVHAPVIVFVFVHAUGUHUIUJVDVFTEZUTVGVMUNUTVDVBVPVAVBVCUKAULU
      OUTUPDVFBTCUQURUS $.

    $( Sufficient condition for the intersection of the range of a function to
       be in the set of finite intersections.  (Contributed by Mario Carneiro,
       30-Aug-2015.) $)
    intrnfi $p |- ( ( B e. V /\ ( F : A --> B /\ A =/= (/) /\ A e. Fin ) )
        -> |^| ran F e. ( fi ` B ) ) $=
      ( wcel wf c0 wne cfn w3a crn wss cint cfi cfv wa simpr1 frn syl sylib cdm
      wceq fdm simpr2 eqnetrd dm0rn0 necon3bii wfo simpr3 wfn ffn dffn4 syl2anc
      fofi 3jca elfir syldan ) BDEZABCFZAGHZAIEZJZCKZBLZVCGHZVCIEZJVCMBNOEURVBP
      ZVDVEVFVGUSVDURUSUTVAQZABCRSVGCUAZGHVEVGVIAGVGUSVIAUBVHABCUCSURUSUTVAUDUE
      VIGVCGCUFUGTVGVAAVCCUHZVFURUSUTVAUIVGCAUJZVJVGUSVKVHABCUKSACULTAVCCUNUMUO
      VCBDUPUQ $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x C $.
    $( An indexed intersection of elements of ` C ` is an element of the finite
       intersections of ` C ` .  (Contributed by Mario Carneiro,
       30-Aug-2015.) $)
    iinfi $p |- ( ( C e. V /\ ( A. x e. A B e. C /\ A =/= (/) /\ A e. Fin ) )
        -> |^|_ x e. A B e. ( fi ` C ) ) $=
      ( vy wcel wral c0 wne cfn w3a wa ciin cmpt crn cint cfi cfv wceq wrex cab
      simpr1 dfiin2g syl eqid rnmpt inteqi syl6eqr fmpt 3anbi1i intrnfi sylan2b
      cv wf eqeltrd ) DEGZCDGABHZBIJZBKGZLZMZABCNZABCOZPZQZDRSZVBVCFUNCTABUAFUB
      ZQZVFVBURVCVITUQURUSUTUCAFBCDUDUEVEVHAFBCVDVDUFZUGUHUIVAUQBDVDUOZUSUTLVFV
      GGURVKUSUTABDCVDVJUJUKBDVDEULUMUP $.
  $}

  ${
    $d p A $.  $d p B $.  $d p V $.  $d p X $.
    $( The intersection of two sets is a finite intersection.  (Contributed by
       Thierry Arnoux, 6-Jan-2017.) $)
    inelfi $p |- ( ( X e. V /\ A e. X /\ B e. X )
      -> ( A i^i B ) e. ( fi ` X ) ) $=
      ( vp wcel w3a cin cfi cfv cint wceq cpw cfn wrex cpr 3adant1 syl2anc cvv
      cv prelpwi a1i elind intprg eqcomd inteq eqeq2d rspcev wb inex1g 3ad2ant2
      prfi simp1 elfi mpbird ) DCFZADFZBDFZGZABHZDIJFZUTETZKZLZEDMZNHZOZUSABPZV
      FFUTVHKZLZVGUSVENVHUQURVHVEFUPABDUAQVHNFUSABULUBUCUSVIUTUQURVIUTLUPABDDUD
      QUEVDVJEVHVFVBVHLVCVIUTVBVHUFUGUHRUSUTSFZUPVAVGUIUQUPVKURABDUJUKUPUQURUME
      UTDSCUNRUO $.
  $}

  ${
    $d A x y $.  $d x V $.
    $( Any element of a set ` A ` is the intersection of a finite subset of
       ` A ` .  (Contributed by FL, 27-Apr-2008.)  (Proof shortened by Mario
       Carneiro, 21-Mar-2015.) $)
    ssfii $p |- ( A e. V -> A C_ ( fi ` A ) ) $=
      ( vx wcel cfi cfv cv wa csn cint vex intsn wss c0 wne cfn simpl simpr a1i
      snssd snnz snfi elfir syl13anc syl5eqelr ex ssrdv ) ABDZCAAEFZUHCGZADZUJU
      IDUHUKHZUJUJIZJZUIUJCKZLULUHUMAMUMNOZUMPDZUNUIDUHUKQULUJAUHUKRTUPULUJUOUA
      SUQULUJUBSUMABUCUDUEUFUG $.

    $( The set of finite intersections of the empty set.  (Contributed by Mario
       Carneiro, 30-Aug-2015.) $)
    fi0 $p |- ( fi ` (/) ) = (/) $=
      ( vy vx c0 cfi cfv cv cint wceq cpw cfn cin wrex cab cvv wcel fival ax-mp
      0ex vprc id inss1 sseli elpwi 3syl inteqd int0 syl6eq sylan9eqr rexlimiva
      wss ss0 vex syl6eqelr mto abf eqtri ) CDEZAFZBFZGZHZBCIZJKZLZAMZCCNOUQVEH
      RBACNPQVDAVDNNOSVDNURNVAURNHBVCVAUSVCOZURUTNVATVFUTCGNVFUSCVFUSVBOUSCUJUS
      CHVCVBUSVBJUAUBUSCUCUSUKUDUEUFUGUHUIAULUMUNUOUP $.

    $( If ` A ` is not empty, the class of all the finite intersections of
       ` A ` is not empty either.  (Contributed by FL, 27-Apr-2008.)  (Revised
       by Mario Carneiro, 24-Nov-2013.) $)
    fieq0 $p |- ( A e. V -> ( A = (/) <-> ( fi ` A ) = (/) ) ) $=
      ( wcel c0 wceq cfi cfv fveq2 fi0 syl6eq wss ssfii sseq0 sylan ex impbid2
      ) ABCZADEZAFGZDEZRSDFGDADFHIJQTRQASKTRABLASMNOP $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( The elements of ` ( fi `` C ) ` are closed under finite intersection.
       (Contributed by Mario Carneiro, 24-Nov-2013.) $)
    fiin $p |- ( ( A e. ( fi ` C ) /\ B e. ( fi ` C ) ) ->
                 ( A i^i B ) e. ( fi ` C ) ) $=
      ( vz vx vy cfi wcel wa cin cv cint wceq cfn wrex cvv wb elfi elin wss cfv
      cpw elfvex mpdan ibi adantr simpr ancoms sylan mpbid wi cun elpwi anim12i
      unss sylib unex elpw sylibr unfi an4s syl2anb ineq12 intun syl6eqr eqeq2d
      vex inteq rspcev syl2an rexlimdvaa rexlimiva sylc inex1g syl2anc mpbird )
      ACGUAZHZBVQHZIZABJZVQHZWADKZLZMZDCUBZNJZOZVTAEKZLZMZEWGOZBFKZLZMZFWGOZWHV
      RWLVSVRWLVRCPHZVRWLQACGUCZEACVQPRUDUEUFVTVSWPVRVSUGVRWQVSVSWPQZWRVSWQWSFB
      CVQPRUHUIUJWKWPWHUKEWGWIWGHZWKIWOWHFWGWTWMWGHZWKWOWHWTXAIZWIWMULZWGHZWAXC
      LZMZWHWKWOIZXBXCWFHZXCNHZIZXDWTWIWFHZWINHZIWMWFHZWMNHZIXJXAWIWFNSWMWFNSXK
      XMXLXNXJXKXMIZXHXLXNIXIXOXCCTZXHXOWICTZWMCTZIXPXKXQXMXRWICUMWMCUMUNWIWMCU
      OUPXCCWIWMEVGFVGUQURUSWIWMUTUNVAVBXCWFNSUSXGWAWJWNJXEAWJBWNVCWIWMVDVEWEXF
      DXCWGWCXCMWDXEWAWCXCVHVFVIVJVAVKVLVMVRWBWHQZVSVRWAPHWQXSABVQVNWRDWACPPRVO
      UFVP $.
  $}

  ${
    $d t x y z A $.  $d x y z B $.  $d y z V $.
    $( The set of finite intersections is the smallest set that contains ` A `
       and is closed under pairwise intersection.  (Contributed by Mario
       Carneiro, 24-Nov-2013.) $)
    dffi2 $p |- ( A e. V -> ( fi ` A ) =
        |^| { z | ( A C_ z /\ A. x e. z A. y e. z ( x i^i y ) e. z ) } ) $=
      ( vt wcel cvv cfi cv wss cin wral wa cint wceq wi wal cfn w3a cfv cab cpw
      elex wrex wb vex elfi mpan biimpd wex df-rex wne fiint inss1 sseli elpwid
      c0 3ad2ant2 simp1 sstrd eqvisset intex sylibr 3ad2ant3 3jca 3expib pm2.27
      inss2 eleq1 biimprd adantl a1i syldd com23 alimdv syl5bi imp 19.23v sylib
      syl6 sylan9 ssrdv alrimiv ssintab ssfii fiin rgen2a fvex sseq2 raleqbi1dv
      ex eleq2 anbi12d elab sylanbrc intss1 syl eqssd ) DEGDHGZDIUAZDCJZKZAJZBJ
      ZLZXBGZBXBMZAXBMZNZCUBZOZPDEUDWTXAXLWTXJXAXBKZQZCRXAXLKWTXNCWTXJXMWTXJNFX
      AXBWTFJZXAGZXOXDOZPZADUCZSLZUEZXJXOXBGZWTXPYAXOHGWTXPYAUFFUGAXODHHUHUIUJY
      AXDXTGZXRNZAUKZXJYBXRAXTULXJYDYBQZARZYEYBQXCXIYGXIXDXBKZXDURUMZXDSGZTZXQX
      BGZQZARXCYGABXBUNXCYMYFAXCYDYMYBXCYDYMYLYBXCYDYKYMYLQXCYCXRYKXCYCXRTZYHYI
      YJYNXDDXBYCXCXDDKXRYCXDDXTXSXDXSSUOUPUQUSXCYCXRUTVAXRXCYIYCXRXQHGYIFXQVBX
      DVCVDVEYCXCYJXRXTSXDXSSVIUPUSVFVGYKYLVHWAYDYLYBQZQXCXRYOYCXRYBYLXOXQXBVJV
      KVLVMVNVOVPVQVRYDYBAVSVTVQWBWCWLWDXJCXAWEVDWTXAXKGZXLXAKWTDXAKZXFXAGZBXAM
      ZAXAMZYPDHWFYTWTYRABXAXDXEDWGWHVMXJYQYTNCXADIWIXBXAPXCYQXIYTXBXADWJXHYSAX
      BXAXGYRBXBXAXBXAXFWMWKWKWNWOWPXAXKWQWRWSWR $.

    $( Subset relationship for function ` fi ` .  (Contributed by Jeff Hankins,
       7-Oct-2009.)  (Revised by Mario Carneiro, 24-Nov-2013.) $)
    fiss $p |- ( ( B e. V /\ A C_ B ) -> ( fi ` A ) C_ ( fi ` B ) ) $=
      ( vy vx vz wcel wss wa cv cin wral cab cint cfi cfv syl cvv wceq dffi2 wi
      sstr2 adantl anim1d ss2abdv intss ssexg ancoms adantr 3sstr4d ) BCGZABHZI
      ZADJZHZEJFJKUNGFUNLEUNLZIZDMZNZBUNHZUPIZDMZNZAOPZBOPZUMVBURHUSVCHUMVAUQDU
      MUTUOUPULUTUOUAUKABUNUBUCUDUEVBURUFQUMARGZVDUSSULUKVFABCUGUHEFDARTQUKVEVC
      SULEFDBCTUIUJ $.

    $( A set which is closed under pairwise intersection is closed under finite
       intersection.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by
       Mario Carneiro, 24-Nov-2013.) $)
    inficl $p |- ( A e. V ->
        ( A. x e. A A. y e. A ( x i^i y ) e. A <-> ( fi ` A ) = A ) ) $=
      ( vz wcel cv cin wral cfi cfv wceq wss ssfii wa cab cint eleq2 raleqbi1dv
      eqimss2 bitr3d elabg intss1 syl6bir dffi2 sseq1d sylibrd eqss simplbi2com
      biantrurd sylsyld fiin rgen2a mpbii impbid1 ) CDFZAGZBGZHZCFZBCIZACIZCJKZ
      CLZUPCVCMZVBVCCMZVDCDNUPVBCEGZMZUSVGFZBVGIZAVGIZOZEPZQZCMZVFUPVBCVMFVOVLV
      BECDVGCLZVKVLVBVPVHVKCVGTUJVJVAAVGCVIUTBVGCVGCUSRSSUAUBCVMUCUDUPVCVNCABEC
      DUEUFUGVDVFVEVCCUHUIUKVDUSVCFZBVCIZAVCIVBVQABVCUQURCULUMVRVAAVCCVQUTBVCCV
      CCUSRSSUNUO $.

    $( The set of finite intersections of a set is contained in the powerset of
       the union of the elements of ` A ` .  (Contributed by Mario Carneiro,
       24-Nov-2013.)  (Proof shortened by Mario Carneiro, 21-Mar-2015.) $)
    fipwuni $p |- ( fi ` A ) C_ ~P U. A $=
      ( vx vy cvv wcel cfi cfv cuni cpw wss uniexg pwexg syl pwuni fiss sylancl
      cv cin wral elpw wceq ssinss1 inex1 3imtr4i adantr rgen2a wb inficl mpbii
      vex sseqtrd wn c0 fvprc 0ss syl6eqss pm2.61i ) ADEZAFGZAHZIZJURUSVAFGZVAU
      RVADEZAVAJUSVBJURUTDEVCADKUTDLMZANAVADOPURBQZCQZRZVAEZCVASBVASZVBVAUAZVHB
      CVAVEVAEZVHVFVAEVEUTJVGUTJVKVHVEVFUTUBVEUTBUJZTVGUTVEVFVLUCTUDUEUFURVCVIV
      JUGVDBCVADUHMUIUKURULUSUMVAAFUNVAUOUPUQ $.

    $( A singleton is closed under finite intersections.  (Contributed by Mario
       Carneiro, 3-Sep-2015.) $)
    fisn $p |- ( fi ` { A } ) = { A } $=
      ( vx vy cv cin csn wcel wral cfi cfv wceq wa elsni ineqan12d inidm syl6eq
      vex inex1 elsn cvv sylibr rgen2a wb snex inficl ax-mp mpbi ) BDZCDZEZAFZG
      ZCUKHBUKHZUKIJUKKZULBCUKUHUKGZUIUKGZLZUJAKULUQUJAAEAUOUPUHAUIAUHAMUIAMNAO
      PUJAUHUIBQRSUAUBUKTGUMUNUCAUDBCUKTUEUFUG $.
  $}

  $( The union of the finite intersections of a set is simply the union of the
     set itself.  (Contributed by Jeff Hankins, 5-Sep-2009.)  (Revised by Mario
     Carneiro, 24-Nov-2013.) $)
  fiuni $p |- ( A e. V -> U. A = U. ( fi ` A ) ) $=
    ( wcel cuni cfi cfv ssfii unissd wss cpw fipwuni unissi unipw sseqtri eqssd
    a1i ) ABCZADZAEFZDZQASABGHTRIQTRJZDRSUAAKLRMNPO $.

  $( If a set is a family of subsets of some base set, then so is its finite
     intersection.  (Contributed by Stefan O'Rear, 2-Aug-2015.) $)
  fipwss $p |- ( A C_ ~P X -> ( fi ` A ) C_ ~P X ) $=
    ( cvv wcel cpw wss cfi cuni fiuni sseq1d sspwuni 3bitr4g biimpa wn c0 fvprc
    cfv 0ss syl6eqss adantr pm2.61ian ) ACDZABEZFZAGQZUCFZUBUDUFUBAHZBFUEHZBFUD
    UFUBUGUHBACIJABKUEBKLMUBNZUFUDUIUEOUCAGPUCRSTUA $.

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.  $d x y z K $.
    $( A finite intersection of elements taken from a union of collections.
       (Contributed by Jeff Hankins, 15-Nov-2009.)  (Proof shortened by Mario
       Carneiro, 26-Nov-2013.) $)
    elfiun $p |- ( ( B e. D /\ C e. K ) -> ( A e. ( fi ` ( B u. C ) ) <-> ( A
    e. ( fi ` B ) \/ A e. ( fi ` C ) \/ E. x e. ( fi ` B ) E. y e. ( fi ` C ) A
    = ( x i^i y ) ) ) ) $=
      ( vz wcel wa cin wceq wrex cvv wi 3expib cfn c0 wss cdif cun cfi cfv elex
      cv w3o w3a adantl simpll simplr 3jca 3anim1i inex1 eleq1 mpbiri rexlimivv
      vex a1i 3jaoi impcom cint cpw simp1 unexg 3adant1 elfi syl2anc wne simpl1
      wb intex syl6bbr syl5ibcom simp22 inss2 simp1l simp3l sseli inss1 sylancl
      syl ssfi elfir syl13anc simp23 simp1r elpwid df-ss biimpi syl5reqr inteqd
      indi intun syl6eq ineq1 eqeq2d ineq2 rspc2ev syl3anc 3mix3d reldisj mpbid
      3syl uncom difeq1i difun2 eqtri difss eqsstri syl6ss simp3r 3mix2d 3mix1d
      pm2.61iine eqeq1 2rexbidv 3orbi123d syl5ibrcom expr mpdd rexlimdva sylbid
      com23 ssun1 fiss sseld ssun2 anim12d fiin eleq1a rexlimdvv 3jaod pm5.21nd
      syl6 impbid ) DFIZEGIZJZCDEUAZUBUCZIZCDUBUCZIZCEUBUCZIZCAUEZBUEZKZLZBUUDM
      AUUBMZUFZCNIZYPYQUGZYRUUAJUULYPYQUUAUULYRCYTUDUHYPYQUUAUIYPYQUUAUJUKUUKYR
      UUMUUCYRUUMOUUEUUJUUCYPYQUUMUUCUULYPYQCUUBUDULPUUEYPYQUUMUUEUULYPYQCUUDUD
      ULPUUJYPYQUUMUUJUULYPYQUUIUULABUUBUUDUUIUULOUUFUUBIZUUGUUDIZJZUUIUULUUHNI
      UUFUUGAUQUMCUUHNUNUOURUPULPUSUTUUMUUAUUKUUMUUACHUEZVAZLZHYSVBZQKZMZUUKUUM
      UULYSNIZUUAUVBVJUULYPYQVCYPYQUVCUULDEFGVDZVEHCYSNNVFVGUUMUUSUUKHUVAUUMUUQ
      UVAIZJZUUSUUQRVHZUUKUVFUULUUSUVGUULYPYQUVEVIUUSUULUURNIUVGCUURNUNUUQVKVLV
      MUVFUVGUUSUUKUUMUVEUVGUUSUUKOUUMUVEUVGJZJZUUKUUSUURUUBIZUURUUDIZUURUUHLZB
      UUDMAUUBMZUFZUVIUVNOUUQDKZUUQEKZRRUVORVHZUVPRVHZJZUUMUVHUVNUVSUUMUVHUGZUV
      MUVJUVKUVTUVOVAZUUBIZUVPVAZUUDIZUURUWAUWCKZLZUVMUVTYPUVODSZUVQUVOQIZUWBUV
      SUULYPYQUVHVNUWGUVTUUQDVOURUVQUVRUUMUVHVPUVTUUQQIZUVOUUQSUWHUVTUVEUWIUVSU
      UMUVEUVGVQZUVAQUUQUUTQVOVRZWAZUUQDVSUUQUVOWBVTUVODFWCWDUVTYQUVPESZUVRUVPQ
      IZUWDUVSUULYPYQUVHWEUWMUVTUUQEVOURUVQUVRUUMUVHWFUVTUWIUVPUUQSUWNUWLUUQEVS
      UUQUVPWBVTUVPEGWCWDUVTUVEUUQYSSZUWFUWJUVEUUQYSUVAUUTUUQUUTQVSVRWGZUWOUURU
      VOUVPUAZVAUWEUWOUUQUWQUWOUWQUUQYSKZUUQUUQDEWLUWOUWRUUQLUUQYSWHWIWJWKUVOUV
      PWMWNXCUVLUWFUURUWAUUGKZLABUWAUWCUUBUUDUUFUWALUUHUWSUURUUFUWAUUGWOWPUUGUW
      CLUWSUWEUURUUGUWCUWAWQWPWRWSWTPUVORLZUUMUVHUVNUWTUUMUVHUGZUVKUVJUVMUXAYQU
      UQESUVGUWIUVKUWTUULYPYQUVHWEUXAUUQYSDTZEUXAUWTUUQUXBSZUWTUUMUVHVCUXAUVEUW
      OUWTUXCVJUWTUUMUVEUVGVQZUWPUUQDYSXAXCXBUXBEDTZEUXBEDUAZDTUXEYSUXFDDEXDXEE
      DXFXGEDXHXIXJUWTUUMUVEUVGXKUXAUVEUWIUXDUWKWAUUQEGWCWDXLPUVPRLZUUMUVHUVNUX
      GUUMUVHUGZUVJUVKUVMUXHYPUUQDSUVGUWIUVJUXGUULYPYQUVHVNUXHUUQYSETZDUXHUXGUU
      QUXISZUXGUUMUVHVCUXHUVEUWOUXGUXJVJUXGUUMUVEUVGVQZUWPUUQEYSXAXCXBUXIDETDDE
      XFDEXHXIXJUXGUUMUVEUVGXKUXHUVEUWIUXKUWKWAUUQDFWCWDXMPXNUUSUUCUVJUUEUVKUUJ
      UVMCUURUUBUNCUURUUDUNUUSUUIUVLABUUBUUDCUURUUHXOXPXQXRXSYCXTYAYBUUMUUCUUAU
      UEUUJUUMUUBYTCYPYQUUBYTSZUULYRUVCDYSSUXLUVDDEYDDYSNYEVTVEZYFUUMUUDYTCYPYQ
      UUDYTSZUULYRUVCEYSSUXNUVDEDYGEYSNYEVTVEZYFUUMUUIUUAABUUBUUDUUMUUPUUFYTIZU
      UGYTIZJZUUIUUAOZUUMUUNUXPUUOUXQUUMUUBYTUUFUXMYFUUMUUDYTUUGUXOYFYHUXRUUHYT
      IUXSUUFUUGYSYIUUHYTCYJWAYNYKYLYOYM $.
  $}

  ${
    $d a b c d m n v x y A $.  $d a b c d m n v x y R $.  $d c d m n x y V $.
    $d a b u v y z $.
    dffi3.1 $e |- R = ( u e. _V |->
      ran ( y e. u , z e. u |-> ( y i^i z ) ) ) $.
    $( The set of finite intersections can be "constructed" inductively by
       iterating binary intersection ` _om ` -many times.  (Contributed by
       Mario Carneiro, 21-Mar-2015.) $)
    dffi3 $p |- ( A e. V -> ( fi ` A ) = U. ( rec ( R , A ) " _om ) ) $=
      ( vx vn va vb vv wcel com cv wss wral wa wceq cvv vc vd cfi cfv crdg cres
      vm crn cuni cima cin cab cint dffi2 fr0g wfn frfnom peano1 fnfvelrn mp2an
      c0 syl6eqelr elssuni syl wrex ciun reeanv eliun anbi12i wb fniunfv eleq2d
      anbi12d ax-mp 3bitr2i cun wi word ordunel adantl simprl jca weq con0 nnon
      ordom csuc fveq2 sseq1d sseq2d raleqbi1dv eqsstrd cmpt2 eqidd ineq1 ineq2
      ad2antlr eqeq2d syl6eq rspc2ev syl3anc eqid rnmpt2 sylibr fvex uniex pwex
      cpw cxp wf adantr syl5ss vex inex1 elpw rgen2a fmpt2 mpbi ssexi nfcv cmpt
      frn mpt2eq12 anidms rneqd frsucmpt sylancl ralimdv ssralv sylib ralrimiva
      ex a1i sseq2 imbi12d sseq1 rspc2v syl3c sseld simprr mp3an1 onsseleq rzal
      wo syl2anc biantrud bitr3d ssfii csn id inidm abeq2i ssriv simpl cbvmpt2v
      inss1 cbvmptv eqtri rdgeq1 reseq1i syl5sseqr syl5com jctird df-suc raleqi
      sstr2 ralsn ralunb syl6ibr fiin syld mpi jctild expimpd a1d finds2 impcom
      bitri simprd r19.21bi eqimss jaod sylbid ssun1 ssun2 peano2 ssiun2s eqeq1
      3syl 2rexbidv elab syl6eleqr eleqtrrd sseldd syl6eleq rexlimdvva sylan2br
      syl2and imp ralrimivva simpld elpw2 sylancr sspwuni ssexg eleq2 mpbir2and
      fnfvrnss elabg intss1 eqssd df-ima unieqi syl6eqr ) DFMZDUCUDZEDUEZNUFZUH
[encoded data, 4400 characters]
      VDWLWXDUXKUYAUXSUXQNUXLUXMUXN $.
  $}

  ${
    $d x y A $.  $d x F $.  $d x y V $.
    fifo.1 $e |- F = ( y e. ( ( ~P A i^i Fin ) \ { (/) } ) |-> |^| y ) $.
    $( Describe a surjection from nonempty finite sets to finite intersections.
       (Contributed by Mario Carneiro, 18-May-2015.) $)
    fifo $p |- ( A e. V ->
      F : ( ( ~P A i^i Fin ) \ { (/) } ) -onto-> ( fi ` A ) ) $=
      ( vx wcel cpw cfn cin c0 csn cdif cfi wfo cv cvv sylib wceq wb cint intex
      cfv crn wfn wral wne eldifsni rgen fnmpt mp1i dffn4 elfi2 elrnmpt syl6bbr
      wrex vex ax-mp eqrdv foeq3 syl mpbird ) BDGZBHIJZKLMZBNUCZCOZVECUDZCOZVCC
      VEUEZVIAPZUAZQGZAVEUFVJVCVMAVEVKVEGVKKUGVMVKVDKUHVKUBRUIAVEVLCQEUJUKVECUL
      RVCVFVHSVGVITVCFVFVHVCFPZVFGVNVLSAVEUPZVNVHGZAVNBDUMVNQGVPVOTFUQAVEVLVNCQ
      EUNURUOUSVFVHVECUTVAVB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Hall's marriage theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A a b c d e f g h i j k $.

    $( Core induction for Philip Hall's marriage theorem.  (Contributed by
       Stefan O'Rear, 19-Feb-2015.) $)
    marypha1lem $p |- ( A e. Fin -> ( b e. Fin ->
          A. c e. ~P ( A X. b ) ( A. d e. ~P A d ~<_ ( c " d ) ->
              E. e e. ~P c e : A -1-1-> _V ) ) ) $=
      ( wcel cdom wbr cpw wral cvv wf1 wi wceq wa c0 sylib syl cin wss va vf vg
      vh vi vj vk cv cfn cima wrex cxp xpeq1 pweqd pweq raleqdv rexbidv imbi12d
      weq f1eq2 raleqbidv imbi2d wpss wal wne f1eq1 rspcev mp2an mpbiri a1i wex
      csdm n0 csn id imaeq2 breq12d rspcva vex 0sdom mpbir adantl ad2antlr impr
      imaex cdif difexi elpwi ad2antrl biimpi simprr psseq1 sylc expr pm2.61dne
      spv df-ss imaeq2d ineq1d indif2 crn rnxpss syl6ss difeq1d syl5eq ad2antrr
      rnss breqtrrd ralrimiva imainrect adantllr inss2 difss elpw adantr imaeq1
      cbvralv breq2d ralbidv rexeqdv mpd cbvrexv cun inss1 unssd sylibr f1f1orn
      elpw2 wf1o disjdif incom ssdisj sylancl syl22anc mpbid syl2anc rexlimdvaa
      wb exlimdv wn bi2.04 albii 19.21v bitri 0elpw snelpwi snnz snex sdomdomtr
      f10 mpan expcom syl5 0dom breq1 simpll difsnpss sspsstrd anbi12d domdifsn
      jca neeq1 adantlrr adantll imassrn syl5ss eqtrd syl5eqr xpss2 ax-mp sstri
      inex1 simpllr ad2antll spcv sylancr cop snssd ad2ant2lr f1osn eqtri f1oun
      elimasn snssi undif f1oeq2 f1of1 f1ss ex expd syl5bi exanali cres simprll
      ssv pssss sspwb simplrr ssralv resima2 eqcomd ralbiia simplrl df-res inxp
      ssres xpss12 eqsstri resex imaundi undif2 eqtr4i syl6breq cen ssfid bren2
      simp-4l sylanbrc ensymd domunfican syl6eq neeq1d biimpar disj4 necon1abii
      ssdifin0 bicomi resss df-ima syl6sseqr imp sylan2br pm2.61dan exp32 exp31
      mp2d ralrimiv a2d findcard3 ) CUHZUIFZEUHZDUHZVUBUJZGHZEUAUHZIZJZVUFKBUHZ
[encoded data, 8000 characters]
      DVUBGVWHVUCVUBXPXRXSYUJVVABVWLVUKVWHVUCUOXTURXQQUYOUYRUWKUYS $.
  $}

  ${
    $d ph d f $.  $d A b c d f $.  $d B b c $.  $d C c d f $.
    marypha1.a $e |- ( ph -> A e. Fin ) $.
    marypha1.b $e |- ( ph -> B e. Fin ) $.
    marypha1.c $e |- ( ph -> C C_ ( A X. B ) ) $.
    marypha1.d $e |- ( ( ph /\ d C_ A ) -> d ~<_ ( C " d ) ) $.
    $( (Philip) Hall's marriage theorem, sufficiency: a finite relation
       contains an injection if there is no subset of its domain which would be
       forced to violate the pigeonhole principle.  (Contributed by Stefan
       O'Rear, 20-Feb-2015.) $)
    marypha1 $p |- ( ph -> E. f e. ~P C f : A -1-1-> B ) $=
      ( vc vb cvv cv cpw wral wcel wss wi cfn wf1 wrex cima wbr elpwi ralrimiva
      cdom sylan2 cxp xpexg syl2anc elpw2g syl mpbird wceq xpeq2 raleqdv imbi2d
      pweqd marypha1lem vtoclga sylc imaeq1 breq2d ralbidv pweq rexeqdv imbi12d
      wb com12 rspcva mpd wa sylan9ssr rnss rnxpss syl6ss f1ssr expcom reximdva
      crn ) ABMENZUAZEDOZUBZBCWBUAZEWDUBAFNZDWGUCZUGUDZFBOZPZWEAWIFWJWGWJQAWGBR
      WIWGBUEJUHUFADBCUIZOZQZWGKNZWGUCZUGUDZFWJPZWCEWOOZUBZSZKWMPZWKWESZAWNDWLR
      ZIAWLMQZWNXDVIABTQZCTQZXEGHBCTTUJUKDWLMULUMUNAXGXFXBHGXFXAKBLNZUIZOZPZSXF
      XBSLCTXHCUOZXKXBXFXLXAKXJWMXLXIWLXHCBUPUSUQURXFXHTQXKBELKFUTVJVAVBXAXCKDW
      MWODUOZWRWKWTWEXMWQWIFWJXMWPWHWGUGWODWGVCVDVEXMWCEWSWDWODVFVGVHVKUKVLAWCW
      FEWDAWBWDQZVMZWBWAZCRZWCWFSXOXPWLWAZCXOWBWLRXPXRRXNAWBDWLWBDUEIVNWBWLVOUM
      BCVPVQWCXQWFBMCWBVRVSUMVTVL $.
  $}

  ${
    $d A x y z $.  $d F x y z $.  $d G x y $.  $d X x y $.
    marypha2lem.t $e |- T = U_ x e. A ( { x } X. ( F ` x ) ) $.
    $( Lemma for ~ marypha2 .  Properties of the used relation.  (Contributed
       by Stefan O'Rear, 20-Feb-2015.) $)
    marypha2lem1 $p |- T C_ ( A X. U. ran F ) $=
      ( csn cfv cxp ciun crn cuni wss iunss wcel snssi fvssunirn xpss12 sylancl
      cv mprgbir eqsstri ) CABASZFZUBDGZHZIZBDJKZHZEUFUHLUEUHLZABABUEUHMUBBNUCB
      LUDUGLUIUBBODUBPUCBUDUGQRTUA $.

    $( Lemma for ~ marypha2 .  Properties of the used relation.  (Contributed
       by Stefan O'Rear, 20-Feb-2015.) $)
    marypha2lem2 $p |- T = { <. x , y >. | ( x e. A /\ y e. ( F ` x ) ) } $=
      ( vz cv csn cfv cxp ciun wcel wa copab wceq fveq2 wrex bitri 3eqtri df-xp
      sneq xpeq12d cbviunv iuneq2i iunopab velsn equcom anbi1i rexbii ceqsrexbv
      a1i eleq2d opabbii ) DACAHZIZUOEJZKZLGCGHZIZUSEJZKZLZUOCMBHZUQMZNZABOZFAG
      CURVBUOUSPZUPUTUQVAUOUSUBUOUSEQUCUDVCGCUOUTMZVDVAMZNZABOZLVKGCRZABOVGGCVB
      VLVBVLPUSCMABUTVAUAULUEVKABGCUFVMVFABVMUSUOPZVJNZGCRVFVKVOGCVIVNVJVIVHVNA
      USUGAGUHSUIUJVJVEGUOCVNVAUQVDUSUOEQUMUKSUNTT $.

    $( Lemma for ~ marypha2 .  Properties of the used relation.  (Contributed
       by Stefan O'Rear, 20-Feb-2015.) $)
    marypha2lem3 $p |- ( ( F Fn A /\ G Fn A ) -> ( G C_ T <->
          A. x e. A ( G ` x ) e. ( F ` x ) ) ) $=
      ( vy wfn wa wss cv wcel cfv wceq wi wal wral copab syl6bb albii dffn5 a1i
      biimpi adantl df-mpt syl6eq marypha2lem2 sseq12d ssopab2b 19.21v imdistan
      cmpt fvex eleq1 ceqsalv imbi2i 3bitr3i df-ral bitr4i ) DBHZEBHZIZECJZAKZB
      LZGKZVDEMZNZIZVEVFVDDMZLZIZOZGPZAPZVGVJLZABQZVBVCVIAGRZVLAGRZJVOVBEVRCVSV
      BEABVGULZVRVAEVTNZUTVAWAABEUAUCUDAGBVGUEUFCVSNVBAGBCDFUGUBUHVIVLAGUISVOVE
      VPOZAPVQVNWBAVEVHVKOZOZGPVEWCGPZOVNWBVEWCGUJWDVMGVEVHVKUKTWEVPVEVKVPGVGVD
      EUMVFVGVJUNUOUPUQTVPABURUSS $.

    $( Lemma for ~ marypha2 .  Properties of the used relation.  (Contributed
       by Stefan O'Rear, 20-Feb-2015.) $)
    marypha2lem4 $p |- ( ( F Fn A /\ X C_ A ) -> ( T " X ) = U. ( F " X ) ) $=
      ( vy wfn wss wa cima cv cfv wcel copab crn wceq cab syl5eq eqtrd resopab2
      ciun cuni cres marypha2lem2 imaeq1i df-ima eqtri adantl rneqd rnopab wrex
      wex df-rex bicomi abbii df-iun eqtr4i a1i wfun fnfun adantr funiunfv syl
      ) DBHZEBIZJZCEKZAEALZDMZUBZDEKUCZVGVHVIBNGLVJNZJAGOZEUDZPZVKVHVNEKVPCVNEA
      GBCDFUEUFVNEUGUHVGVPVIENVMJZAGOZPZVKVGVOVRVFVOVRQVEVMAGEBUAUIUJVGVSVQAUMZ
      GRZVKVQAGUKWAVKQVGWAVMAEULZGRVKVTWBGWBVTVMAEUNUOUPAGEVJUQURUSSTSVGDUTZVKV
      LQVEWCVFBDVAVBAEDVCVDT $.
  $}

  ${
    $d ph d g x $.  $d A d g x $.  $d F d g x $.
    marypha2.a $e |- ( ph -> A e. Fin ) $.
    marypha2.b $e |- ( ph -> F : A --> Fin ) $.
    marypha2.c $e |- ( ( ph /\ d C_ A ) -> d ~<_ U. ( F " d ) ) $.
    $( Version of ~ marypha1 using a functional family of sets instead of a
       relation.  (Contributed by Stefan O'Rear, 20-Feb-2015.) $)
    marypha2 $p |- ( ph -> E. g ( g : A -1-1-> _V /\
          A. x e. A ( g ` x ) e. ( F ` x ) ) ) $=
      ( cuni cv wf1 cfv cxp cvv wcel wa wex wss cima crn csn ciun cpw wrex wral
      unirnffid eqid marypha2lem1 a1i cdom wfn wceq cfn wf ffn syl marypha2lem4
      sylan breqtrrd marypha1 df-rex ssv f1ss mpan2 ad2antll ad2antrl wb adantr
      elpwi f1fn marypha2lem3 syl2anc mpbid jca ex eximdv syl5bi mpd ) ACEUAJZD
      KZLZDBCBKZUBWCEMZNUCZUDZUEZCOWALZWCWAMWDPBCUFZQZDRZACVTWEDFGACEHGUGWECVTN
      SABCWEEWEUHZUIUJAFKZCSZQWMEWMTJZWEWMTZUKIAECULZWNWPWOUMACUNEUOWQHCUNEUPUQ
      ZBCWEEWMWLURUSUTVAWGWAWFPZWBQZDRAWKWBDWFVBAWTWJDAWTWJAWTQZWHWIWBWHAWSWBVT
      OSWHVTVCCVTOWAVDVEVFXAWAWESZWIWSXBAWBWAWEVJVGXAWQWACULZXBWIVHAWQWTWRVIWBX
      CAWSCVTWAVKVFBCWEEWAWLVLVMVNVOVPVQVRVS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Supremum and infimum
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Add new constant symbols. $)
  $c sup $.  $( Supremum. $)
  $c inf $.  $( Infimum. $)

  $( Extend class notation to include supremum of class ` A ` .  Here ` R ` is
     ordinarily a relation that strictly orders class ` B ` .  For example,
     ` R ` could be 'less than' and ` B ` could be the set of real numbers. $)
  csup $a class sup ( A , B , R ) $.

  $( Extend class notation to include infimum of class ` A ` .  Here ` R ` is
     ordinarily a relation that strictly orders class ` B ` .  For example,
     ` R ` could be 'less than' and ` B ` could be the set of real numbers. $)
  cinf $a class inf ( A , B , R ) $.

  ${
    $d x y z R $.  $d x y z A $.  $d x y z B $.
    $( Define the supremum of class ` A ` .  It is meaningful when ` R ` is a
       relation that strictly orders ` B ` and when the supremum exists.  For
       example, ` R ` could be 'less than', ` B ` could be the set of real
       numbers, and ` A ` could be the set of all positive reals whose square
       is less than 2; in this case the supremum is defined as the square root
       of 2 per ~ sqrtval .  See ~ dfsup2 for alternate definition not
       requiring dummy variables.  (Contributed by NM, 22-May-1999.) $)
    df-sup $a |- sup ( A , B , R ) = U. { x e. B | ( A. y e. A -. x R y /\
                  A. y e. B ( y R x -> E. z e. A y R z ) ) } $.
  $}

  $( Define the infimum of class ` A ` .  It is meaningful when ` R ` is a
     relation that strictly orders ` B ` and when the infimum exists.  For
     example, ` R ` could be 'less than', ` B ` could be the set of real
     numbers, and ` A ` could be the set of all positive reals; in this case
     the infimum is 0.  The infimum is defined as the supremum using the
     converse ordering relation.  In the given example, 0 is the supremum of
     all reals (greatest real number) for which all positive reals are greater.
     (Contributed by AV, 2-Sep-2020.) $)
  df-inf $a |- inf ( A , B , R ) = sup ( A , B , `' R ) $.

  ${
    $d A x y z $.  $d B x y z $.  $d R x y z $.
    $( Quantifier free definition of supremum.  (Contributed by Scott Fenton,
       19-Feb-2013.) $)
    dfsup2 $p |- sup ( B , A , R ) =
      U. ( A \ ( ( `' R " B ) u. ( R " ( A \ ( `' R " B ) ) ) ) ) $=
      ( vx vy vz cv wbr wn wral wrex wi wa cdif cvv wcel vex elima bitri eqtri
      csup crab cuni ccnv cima cun df-sup cab cin dfrab3 wb abeq1 eldif mpbiran
      wceq dfrex2 orbi12i elun ianor 3bitr4i con2bii brcnv notbii ralbii impexp
      imbi1i rexbii imbi2i con34b bitr3i ralbii2 anbi12i 3bitr2ri mpgbir ineq2i
      wo invdif unieqi ) BACUADGZEGZCHZIZEBJZVTVSCHZVTFGZCHZFBKZLZEAJZMZDAUBZUC
      ACUDZBUEZCAWMNZUEZUFZNZUCDEFBACUGWKWQWKAWJDUHZUIZWQWJDAUJWSAOWPNZUIWQWRWT
      AWRWTUOWJVSWTPZUKDWJDWTULXAVSWPPZIZVTVSWLHZIZEBJZWDIZEWNJZMZWJXAVSOPXCDQZ
      VSOWPUMUNXBXIVSWMPZVSWOPZVPXFIZXHIZVPXBXIIXKXMXLXNXKXDEBKXMEVSWLBXJRXDEBU
      PSXLWDEWNKXNEVSCWNXJRWDEWNUPSUQVSWMWOURXFXHUSUTVAXFWCXHWIXEWBEBXDWAVTVSCE
      QZXJVBVCVDXGWHEWNAVTAPZVTWMPZIZMZXGLXPXRXGLZLVTWNPZXGLXPWHLXPXRXGVEYAXSXG
      VTAWMUMVFWHXTXPWHWDXQLXTXQWGWDXQWEVTWLHZFBKWGFVTWLBXORYBWFFBWEVTCFQXOVBVG
      SVHWDXQVIVJVHUTVKVLVMVNVOAWPVQTTVRT $.
  $}

  ${
    $d x y z R $.  $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( Equality theorem for supremum.  (Contributed by NM, 22-May-1999.) $)
    supeq1 $p |- ( B = C -> sup ( B , A , R ) = sup ( C , A , R ) ) $=
      ( vx vy vz wceq cv wbr wn wral wrex wi wa crab cuni csup raleq df-sup
      rexeq imbi2d ralbidv anbi12d rabbidv unieqd 3eqtr4g ) BCHZEIZFIZDJKZFBLZU
      JUIDJZUJGIDJZGBMZNZFALZOZEAPZQUKFCLZUMUNGCMZNZFALZOZEAPZQBADRCADRUHUSVEUH
      URVDEAUHULUTUQVCUKFBCSUHUPVBFAUHUOVAUMUNGBCUAUBUCUDUEUFEFGBADTEFGCADTUG
      $.
  $}

  ${
    supeq1d.1 $e |- ( ph -> B = C ) $.
    $( Equality deduction for supremum.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    supeq1d $p |- ( ph -> sup ( B , A , R ) = sup ( C , A , R ) ) $=
      ( wceq csup supeq1 syl ) ACDGCBEHDBEHGFBCDEIJ $.
  $}

  ${
    supeq1i.1 $e |- B = C $.
    $( Equality inference for supremum.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    supeq1i $p |- sup ( B , A , R ) = sup ( C , A , R ) $=
      ( wceq csup supeq1 ax-mp ) BCFBADGCADGFEABCDHI $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d R x y z $.
    $( Equality theorem for supremum.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    supeq2 $p |- ( B = C -> sup ( A , B , R ) = sup ( A , C , R ) ) $=
      ( vx vy vz wceq cv wbr wn wral wrex wi wa crab cuni csup rabeq df-sup
      raleq anbi2d rabbidv eqtrd unieqd 3eqtr4g ) BCHZEIZFIZDJKFALZUIUHDJUIGIDJ
      GAMNZFBLZOZEBPZQUJUKFCLZOZECPZQABDRACDRUGUNUQUGUNUMECPUQUMEBCSUGUMUPECUGU
      LUOUJUKFBCUAUBUCUDUEEFGABDTEFGACDTUF $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d R x y z $.  $d S x y z $.
    $( Equality theorem for supremum.  (Contributed by Scott Fenton,
       13-Jun-2018.) $)
    supeq3 $p |- ( R = S -> sup ( A , B , R ) = sup ( A , B , S ) ) $=
      ( vx vy vz cv wbr wn wral wrex wi wa crab cuni csup breq ralbidv df-sup
      wceq notbid rexbidv imbi12d anbi12d rabbidv unieqd 3eqtr4g ) CDUAZEHZFHZC
      IZJZFAKZUKUJCIZUKGHZCIZGALZMZFBKZNZEBOZPUJUKDIZJZFAKZUKUJDIZUKUPDIZGALZMZ
      FBKZNZEBOZPABCQABDQUIVBVLUIVAVKEBUIUNVEUTVJUIUMVDFAUIULVCUJUKCDRUBSUIUSVI
      FBUIUOVFURVHUKUJCDRUIUQVGGAUKUPCDRUCUDSUEUFUGEFGABCTEFGABDTUH $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d D x y z $.  $d E x y z $.
    $d F x y z $.  $d ph x y z $.
    supeq123d.a $e |- ( ph -> A = D ) $.
    supeq123d.b $e |- ( ph -> B = E ) $.
    supeq123d.c $e |- ( ph -> C = F ) $.
    $( Equality deduction for supremum.  (Contributed by Stefan O'Rear,
       20-Jan-2015.) $)
    supeq123d $p |- ( ph -> sup ( A , B , C ) = sup ( D , E , F ) ) $=
      ( vx vy vz cv wbr wn wral wrex wi breqd wa crab cuni csup imbi12d anbi12d
      notbid raleqbidv rexeqbidv rabeqbidv unieqd df-sup 3eqtr4g ) AKNZLNZDOZPZ
      LBQZUOUNDOZUOMNZDOZMBRZSZLCQZUAZKCUBZUCUNUOGOZPZLEQZUOUNGOZUOUTGOZMERZSZL
      FQZUAZKFUBZUCBCDUDEFGUDAVFVPAVEVOKCFIAURVIVDVNAUQVHLBEHAUPVGADGUNUOJTUGUH
      AVCVMLCFIAUSVJVBVLADGUOUNJTAVAVKMBEHADGUOUTJTUIUEUHUFUJUKKLMBCDULKLMEFGUL
      UM $.
  $}

  ${
    nfsup.1 $e |- F/_ x A $.
    nfsup.2 $e |- F/_ x B $.
    nfsup.3 $e |- F/_ x R $.
    $( Hypothesis builder for supremum.  (Contributed by Mario Carneiro,
       20-Mar-2014.) $)
    nfsup $p |- F/_ x sup ( A , B , R ) $=
      ( csup ccnv cima cdif cun cuni dfsup2 nfcnv nfima nfdif nfun nfuni nfcxfr
      ) ABCDHCDIZBJZDCUBKZJZLZKZMCBDNAUFACUEFAUBUDAUABADGOEPZADUCGACUBFUGQPRQST
      $.
  $}

  ${
    $d x y z w A $.  $d x y z w R $.  $d x y z w B $.  $d w C $.  $d w ph $.
    supmo.1 $e |- ( ph -> R Or A ) $.
    $( Any class ` B ` has at most one supremum in ` A ` (where ` R ` is
       interpreted as 'less than').  (Contributed by NM, 5-May-1999.)  (Revised
       by Mario Carneiro, 24-Dec-2016.) $)
    supmo $p |- ( ph -> E* x e. A ( A. y e. B -. x R y /\
                  A. y e. A ( y R x -> E. z e. B y R z ) ) ) $=
      ( vw cv wbr wn wral wrex wi wa weq breq1 breq2 syl5bi wrmo wor wcel ancom
      anbi2ci an42 3bitr4i ralnex rexbidv imbi12d cbvrexv syl6ibr con3d expimpd
      rspcva ad2antrl ad2antll anim12d sylibrd ralrimivva notbid ralbidv imbi1d
      sotrieq2 syl anbi12d rmo4 sylibr ) ABJZCJZGKZLZCFMZVJVIGKZVJDJZGKZDFNZOZC
      EMZPZIJZVJGKZLZCFMZVJWAGKZVQOZCEMZPZPZBIQZOZIEMBEMZVTBEUAAEGUBZWLHWMWKBIE
      EWMVIEUCZWAEUCZPPZWIVIWAGKZLZWAVIGKZLZPZWJWIWGVMPZVSWDPZPZWPXAVMWDPZWGVSP
      ZPXFWDVMPZPWIXDXEXGXFVMWDUDUEVMVSWDWGUFWGVMVSWDUFUGWPXBWRXCWTWNXBWROWMWOW
      NWGVMWRVMVKCFNZLWNWGPZWRVKCFUHXIWQXHXIWQVIVOGKZDFNZXHWFWQXKOCVIECBQZWEWQV
      QXKVJVIWAGRXLVPXJDFVJVIVOGRUIUJUOVKXJCDFVJVOVIGSUKULUMTUNUPWOXCWTOWMWNWOV
      SWDWTWDWBCFNZLWOVSPZWTWBCFUHXNWSXMXNWSWAVOGKZDFNZXMVRWSXPOCWAECIQZVNWSVQX
      PVJWAVIGRXQVPXODFVJWAVOGRUIUJUOWBXOCDFVJVOWAGSUKULUMTUNUQURTEVIWAGVDUSUTV
      EVTWHBIEWJVMWDVSWGWJVLWCCFWJVKWBVIWAVJGRVAVBWJVRWFCEWJVNWEVQVIWAVJGSVCVBV
      FVGVH $.

    $( A supremum is a set.  (Contributed by NM, 22-May-1999.)  (Revised by
       Mario Carneiro, 24-Dec-2016.) $)
    supexd $p |- ( ph -> sup ( B , A , R ) e. _V ) $=
      ( vx vy vz csup cv wbr wn wral wrex wi wa crab cuni cvv wcel df-sup supmo
      wrmo rmorabex uniexg 3syl syl5eqel ) ACBDIFJZGJZDKLGCMUIUHDKUIHJDKHCNOGBM
      PZFBQZRZSFGHCBDUAAUJFBUCUKSTULSTAFGHBCDEUBUJFBUDUKSUEUFUG $.

    ${
      supeu.2 $e |- ( ph -> E. x e. A ( A. y e. B -. x R y /\
                      A. y e. A ( y R x -> E. z e. B y R z ) ) ) $.
      $( A supremum is unique.  Similar to Theorem I.26 of [Apostol] p. 24 (but
         for suprema in general).  (Contributed by NM, 12-Oct-2004.) $)
      supeu $p |- ( ph ->
                    E! x e. A ( A. y e. B -. x R y /\
                    A. y e. A ( y R x -> E. z e. B y R z ) ) ) $=
        ( cv wbr wn wral wrex wi wa wrmo wreu supmo reu5 sylanbrc ) ABJZCJZGKLC
        FMUCUBGKUCDJGKDFNOCEMPZBENUDBEQUDBERIABCDEFGHSUDBETUA $.
    $}

    $( Alternate expression for the supremum.  (Contributed by Mario Carneiro,
       24-Dec-2016.)  (Revised by Thierry Arnoux, 24-Sep-2017.) $)
    supval2 $p |- ( ph -> sup ( B , A , R ) =
      ( iota_ x e. A ( A. y e. B -. x R y /\
                  A. y e. A ( y R x -> E. z e. B y R z ) ) ) ) $=
      ( wor csup cv wbr wn wral wrex wa wceq cuni syl c0 crio simpl simpr supeu
      wi crab wreu riotauni df-sup syl6reqr rabn0 necon1bbii biimpi unieqd uni0
      syl6eq syl5eq reurex con3i riotaund eqtr4d adantl pm2.61dan ) AEGIZFEGJZB
      KZCKZGLMCFNVGVFGLVGDKGLDFOUECENPZBEUAZQZHVDVHBEOZVJVDVKPZVIVHBEUFZRZVEVLV
      HBEUGZVIVNQVLBCDEFGVDVKUBVDVKUCUDVHBEUHSBCDFEGUIZUJVKMZVJVDVQVETVIVQVEVNT
      VPVQVNTRTVQVMTVQVMTQVKVMTVHBEUKULUMUNUOUPUQVQVOMVITQVOVKVHBEURUSVHBEUTSVA
      VBVCS $.

    ${
      $d x y C $.
      $( Sufficient condition for an element to be equal to the supremum.
         (Contributed by Mario Carneiro, 21-Apr-2015.) $)
      eqsup $p |- ( ph -> ( ( C e. A /\ A. y e. B -. C R y /\
       A. y e. A ( y R C -> E. z e. B y R z ) ) -> sup ( B , A , R ) = C ) ) $=
        ( vx wcel cv wbr wn wral wrex wi wceq wa ralbidv syl2anc w3a wor adantr
        csup crio supval2 3simpc adantl wreu simpr1 breq1 notbid imbi1d anbi12d
        wb breq2 rspcev supeu riota2 mpbid eqtrd ex ) AFDJZFBKZGLZMZBENZVDFGLZV
        DCKGLCEOZPZBDNZUAZEDGUDZFQAVLRZVMIKZVDGLZMZBENZVDVOGLZVIPZBDNZRZIDUEZFV
        NIBCDEGADGUBVLHUCZUFVNVGVKRZWCFQZVLWEAVCVGVKUGUHZVNVCWBIDUIWEWFUOAVCVGV
        KUJZVNIBCDEGWDVNVCWEWBIDOWHWGWBWEIFDVOFQZVRVGWAVKWIVQVFBEWIVPVEVOFVDGUK
        ULSWIVTVJBDWIVSVHVIVOFVDGUPUMSUNZUQTURWBWEIDFWJUSTUTVAVB $.

      $d y ph $.
      eqsupd.2 $e |- ( ph -> C e. A ) $.
      eqsupd.3 $e |- ( ( ph /\ y e. B ) -> -. C R y ) $.
      eqsupd.4 $e |- ( ( ph /\ ( y e. A /\ y R C ) ) -> E. z e. B y R z ) $.
      $( Sufficient condition for an element to be equal to the supremum.
         (Contributed by Mario Carneiro, 21-Apr-2015.) $)
      eqsupd $p |- ( ph -> sup ( B , A , R ) = C ) $=
        ( wcel cv wbr wn wral wrex wi csup ralrimiva wceq expr eqsup mp3and ) A
        FDLFBMZGNOZBEPUEFGNZUECMGNCEQZRZBDPEDGSFUAIAUFBEJTAUIBDAUEDLUGUHKUBTABC
        DEFGHUCUD $.
    $}

    supcl.2 $e |- ( ph -> E. x e. A ( A. y e. B -. x R y /\
                      A. y e. A ( y R x -> E. z e. B y R z ) ) ) $.
    $( A supremum belongs to its base class (closure law).  See also ~ supub
       and ~ suplub .  (Contributed by NM, 12-Oct-2004.) $)
    supcl $p |- ( ph -> sup ( B , A , R ) e. A ) $=
      ( csup cv wbr wn wral wrex wi wa crio supval2 wreu wcel supeu riotacl syl
      eqeltrd ) AFEGJBKZCKZGLMCFNUGUFGLUGDKGLDFOPCENQZBERZEABCDEFGHSAUHBETUIEUA
      ABCDEFGHIUBUHBEUCUDUE $.

    $( A supremum is an upper bound.  See also ~ supcl and ~ suplub .

       This proof demonstrates how to expand an iota-based definition
       ( ~ df-iota ) using ~ riotacl2 .

       (Contributed by NM, 12-Oct-2004.)  (Proof shortened by Mario Carneiro,
       24-Dec-2016.) $)
    supub $p |- ( ph -> ( C e. B -> -. sup ( B , A , R ) R C ) ) $=
      ( vw cv wbr wn wral wcel wi syl wceq notbid csup crab wrex wa a1i ss2rabi
      simpl crio supval2 wreu supeu riotacl2 eqeltrd sseldi breq2 cbvralv breq1
      ralbidv syl5bb elrab simprbi rspccv ) AFEHUAZKLZHMZNZKFOZGFPVCGHMZNZQAVCB
      LZCLZHMZNZCFOZBEUBZPZVGAVNVKVJHMVKDLHMDFUCQCEOZUDZBEUBZVOVCVRVNBEVRVNQVJE
      PVNVQUGUEUFAVCVRBEUHZVSABCDEFHIUIAVRBEUJVTVSPABCDEFHIJUKVRBEULRUMUNVPVCEP
      VGVNVGBVCEVNVJVDHMZNZKFOVJVCSZVGVMWBCKFVKVDSVLWAVKVDVJHUOTUPWCWBVFKFWCWAV
      EVJVCVDHUQTURUSUTVARVFVIKGFVDGSVEVHVDGVCHUOTVBR $.

    $d z C $.
    $( A supremum is the least upper bound.  See also ~ supcl and ~ supub .
       (Contributed by NM, 13-Oct-2004.)  (Revised by Mario Carneiro,
       24-Dec-2016.) $)
    suplub $p |- ( ph -> ( ( C e. A /\ C R sup ( B , A , R ) ) ->
                    E. z e. B C R z ) ) $=
      ( vw cv wbr wrex wi wral wcel wceq breq1 syl csup wa crab rexbidv imbi12d
      wn simpr cbvralv sylib a1i ss2rabi crio supval2 wreu supeu eqeltrd sseldi
      riotacl2 breq2 imbi1d ralbidv elrab simprbi rspccv impd ) AKLZFEHUAZHMZVF
      DLZHMZDFNZOZKEPZGEQZGVGHMZUBGVIHMZDFNZOAVGVFBLZHMZVKOZKEPZBEUCZQZVMAVRCLZ
      HMUFCFPZWDVRHMZWDVIHMZDFNZOZCEPZUBZBEUCZWBVGWKWABEWKWAOVREQWKWJWAWEWJUGWI
      VTCKEWDVFRZWFVSWHVKWDVFVRHSWMWGVJDFWDVFVIHSUDUEUHUIUJUKAVGWKBEULZWLABCDEF
      HIUMAWKBEUNWNWLQABCDEFHIJUOWKBEURTUPUQWCVGEQVMWAVMBVGEVRVGRZVTVLKEWOVSVHV
      KVRVGVFHUSUTVAVBVCTVMVNVOVQVLVOVQOKGEVFGRZVHVOVKVQVFGVGHSWPVJVPDFVFGVIHSU
      DUEVDVET $.

    ${
      suplub2.3 $e |- ( ph -> B C_ A ) $.
      $( Bidirectional form of ~ suplub .  (Contributed by Mario Carneiro,
         6-Sep-2014.) $)
      suplub2 $p |- ( ( ph /\ C e. A ) ->
                    ( C R sup ( B , A , R ) <-> E. z e. B C R z ) ) $=
        ( vw wcel wa wbr cv wrex breq2 wi ad2antrr csup expdimp cbvrexv biimprd
        suplub wceq a1i wor simplr adantr sselda supcl sotr syl13anc expcomd wo
        wss wn supub imp sotric syl12anc con2bid mpbird mpjaod rexlimdva syl5bi
        wb impbid ) AGEMZNZGFEHUAZHOZGDPZHOZDFQZAVJVMVPABCDEFGHIJUEUBVPGLPZHOZL
        FQVKVMVOVRDLFVNVQGHRUCVKVRVMLFVKVQFMZNZVLVQUFZVRVMSZVQVLHOZWAWBSVTWAVMV
        RVLVQGHRUDUGVTVRWCVMVTEHUHZVJVQEMZVLEMZVRWCNVMSAWDVJVSITZAVJVSUIVKFEVQA
        FEUQVJKUJUKZAWFVJVSABCDEFHIJULTZEGVQVLHUMUNUOVTWAWCUPZVLVQHOZURZVKVSWLA
        VSWLSVJABCDEFVQHIJUSUJUTVTWKWJVTWDWFWEWKWJURVHWGWIWHEVLVQHVAVBVCVDVEVFV
        GVI $.
    $}

    $( An upper bound is not less than the supremum.  (Contributed by NM,
       13-Oct-2004.) $)
    supnub $p |- ( ph -> ( ( C e. A /\ A. z e. B -. C R z ) ->
                    -. C R sup ( B , A , R ) ) ) $=
      ( wcel cv wbr wn wral csup wa wrex suplub expdimp dfrex2 syl6ib expimpd
      con2d ) AGEKZGDLHMZNDFOZGFEHPHMZNAUEQZUHUGUIUHUFDFRZUGNAUEUHUJABCDEFGHIJS
      TUFDFUAUBUDUC $.
  $}

  ${
    supex.1 $e |- R Or A $.
    $( A supremum is a set.  (Contributed by NM, 22-May-1999.) $)
    supex $p |- sup ( B , A , R ) e. _V $=
      ( wor csup cvv wcel id supexd ax-mp ) ACEZBACFGHDLABCLIJK $.
  $}

  ${
    $d B x y z $.  $d R x y z $.
    $( The supremum under an empty base set is always the empty set.
       (Contributed by AV, 4-Sep-2020.) $)
    sup00 $p |- sup ( B , (/) , R ) = (/) $=
      ( vx vy vz c0 csup cv wbr wn wral wrex wi wa crab cuni df-sup rab0 unieqi
      uni0 3eqtri ) AFBGCHZDHZBIJDAKUCUBBIUCEHBIEALMDFKNZCFOZPFPFCDEAFBQUEFUDCR
      STUA $.
  $}

  ${
    $d A x y z $.  $d R x y z $.
    $( The supremum of an empty set is the smallest element of the base set.
       (Contributed by AV, 4-Sep-2020.) $)
    sup0riota $p |- ( R Or A -> sup ( (/) , A , R )
                                = ( iota_ x e. A A. y e. A -. y R x ) ) $=
      ( vz wor c0 csup cv wbr wn wral wrex wi wa crio id supval2 wb ral0 ralbii
      biantrur rex0 imnot ax-mp bitr3i a1i riotabidv eqtrd ) CDFZGCDHAIZBIZDJKZ
      BGLZULUKDJZULEIDJZEGMZNZBCLZOZACPUOKZBCLZACPUJABECGDUJQRUJUTVBACUTVBSUJUT
      USVBUNUSUMBTUBURVABCUQKURVASUPEUCUOUQUDUEUAUFUGUHUI $.

    $d X x y $.
    $( The supremum of an empty set under a base set which has a unique
       smallest element is the smallest element of the base set.  (Contributed
       by AV, 4-Sep-2020.) $)
    sup0 $p |- ( ( R Or A /\ ( X e. A /\ A. y e. A -. y R X )
                   /\ E! x e. A A. y e. A -. y R x )
                 -> sup ( (/) , A , R ) = X ) $=
      ( wor wcel cv wbr wn wral wa wreu w3a csup crio wceq sup0riota 3ad2ant1
      c0 simp2r wb simpl anim1i 3adant1 breq2 notbid ralbidv riota2 mpbid eqtrd
      syl ) CDFZECGZBHZEDIZJZBCKZLZUOAHZDIZJZBCKZACMZNZTCDOZVCACPZEUMUSVFVGQVDA
      BCDRSVEURVGEQZUMUNURVDUAVEUNVDLZURVHUBUSVDVIUMUSUNVDUNURUCUDUEVCURACEUTEQ
      ZVBUQBCVJVAUPUTEUODUFUGUHUIULUJUK $.
  $}

  ${
    $d A y z $.  $d B y z $.  $d C y z $.  $d R y z $.  $d y ph $.
    supmax.1 $e |- ( ph -> R Or A ) $.
    supmax.2 $e |- ( ph -> C e. A ) $.
    supmax.3 $e |- ( ph -> C e. B ) $.
    supmax.4 $e |- ( ( ph /\ y e. B ) -> -. C R y ) $.
    $( The greatest element of a set is its supremum.  Note that the converse
       is not true; the supremum might not be an element of the set considered.
       (Contributed by Jeff Hoffman, 17-Jun-2008.)  (Proof shortened by OpenAI,
       30-Mar-2020.) $)
    supmax $p |- ( ph -> sup ( B , A , R ) = C ) $=
      ( vz wcel cv wbr wa wrex simprr breq2 rspcev syl2an2r eqsupd ) ABKCDEFGHJ
      AEDLBMZCLZUBEFNZOUDUBKMZFNZKDPIAUCUDQUFUDKEDUEEUBFRSTUA $.
  $}

  ${
    $d A x y z $.  $d R x y z $.  $d B x y z $.
    $( A finite set satisfies the conditions to have a supremum.  (Contributed
       by Mario Carneiro, 28-Apr-2015.) $)
    fisup2g $p |- ( ( R Or A /\ ( B e. Fin /\ B =/= (/) /\ B C_ A ) ) ->
      E. x e. B ( A. y e. B -. x R y /\
        A. y e. A ( y R x -> E. z e. B y R z ) ) ) $=
      ( wor cfn wcel c0 wne wss w3a wa cv wbr wn wral wrex wi wreu simp1 fisupg
      soss supeu 3exp syl6 com4l 3imp2 reurex breq2 rspcev ralrimivw a1d anim2d
      ex reximia 3syl ) DFGZEHIZEJKZEDLZMNAOZBOZFPQBERZVDVCFPZVDCOZFPZCESZTZBER
      ZNZAEUAZVLAESVEVJBDRZNZAESUSUTVAVBVMVBUSUTVAVMVBUSEFGZUTVAVMTTEDFUDVPUTVA
      VMVPUTVAMABCEEFVPUTVAUBABCEFUCUEUFUGUHUIVLAEUJVLVOAEVCEIZVKVNVEVQVNVKVQVJ
      BDVQVFVIVHVFCVCEVGVCVDFUKULUPUMUNUOUQUR $.

    $( A nonempty finite set contains its supremum.  (Contributed by Jeff
       Madsen, 9-May-2011.) $)
    fisupcl $p |- ( ( R Or A /\ ( B e. Fin /\ B =/= (/) /\ B C_ A ) )
                                    -> sup ( B , A , R ) e. B ) $=
      ( vx vy vz wor cfn wcel c0 wa cv wbr wral wrex wi crio wreu sylc supeu wn
      wne wss w3a csup simpl supval2 wceq simpr3 rspcev ex ralrimivw a1d anim2d
      breq2 rgen a1i soss simpr1 simpr2 fisupg syl3anc ssrexv riotass2 syl22anc
      fisup2g riotacl syl eqeltrrd eqeltrd ) ACGZBHIZBJUBZBAUCZUDZKZBACUEDLZELZ
      CMUAEBNZVRVQCMZVRFLZCMZFBOZPZEANZKZDAQZBVPDEFABCVKVOUFZUGVPVSWDEBNZKZDBQZ
      WGBVPVNWJWFPZDBNZWJDBOZWFDARWKWGUHVKVLVMVNUIZWMVPWLDBVQBIZWIWEVSWPWEWIWPW
      DEAWPVTWCWBVTFVQBWAVQVRCUOUJUKULUMUNUPUQVPBCGZVLVMWNVPVNVKWQWOWHBACURSZVK
      VLVMVNUSVKVLVMVNUTDEFBCVAVBZVPDEFABCWHVPVNWFDBOWFDAOWODEFABCVFWFDBAVCSTWJ
      WFDBAVDVEVPWJDBRWKBIVPDEFBBCWRWSTWJDBVGVHVIVJ $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d R x y z $.
    supgtoreq.1 $e |- ( ph -> R Or A ) $.
    supgtoreq.2 $e |- ( ph -> B C_ A ) $.
    supgtoreq.3 $e |- ( ph -> B e. Fin ) $.
    supgtoreq.4 $e |- ( ph -> C e. B ) $.
    supgtoreq.5 $e |- ( ph -> S = sup ( B , A , R ) ) $.
    $( The supremum of a finite set is greater than or equal to all the
       elements of the set.  (Contributed by AV, 1-Oct-2019.) $)
    supgtoreq $p |- ( ph -> ( C R S \/ C = S ) ) $=
      ( vx vy vz wbr wo wn wcel cv wrex wceq csup wss wral wi wa wor cfn c0 wne
      ne0i syl fisup2g syl13anc ssrexv sylc mpd breq1d mtbird wb fisupcl sseldd
      supub eqeltrd sotric syl12anc orcom eqcom orbi2i notbii syl6rbb notnotrd
      bitri ) ADFEOZDFUAZPZAVPQZFDEOZAVRCBEUBZDEOZADCRZVTQJALMNBCDEGACBUCZLSZMS
      ZEOQMCUDWDWCEOWDNSEONCTUEMBUDUFZLCTZWELBTHABEUGZCUHRZCUIUJZWBWFGIAWAWIJCD
      UKULZHLMNBCEUMUNWELCBUOUPVCUQAFVSDEKURUSAVRFDUAZVNPZQZVQAWGFBRDBRVRWMUTGA
      FVSBKACBVSHAWGWHWIWBVSCRGIWJHBCEVAUNVBVDACBDHJVBBFDEVEVFWLVPWLVNWKPVPWKVN
      VGWKVOVNFDVHVIVMVJVKUSVL $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y R $.
    $( The supremum of a pair.  (Contributed by NM, 17-Jun-2007.)  (Proof
       shortened by Mario Carneiro, 24-Dec-2016.) $)
    suppr $p |- ( ( R Or A /\ B e. A /\ C e. A ) -> sup ( { B , C } , A , R ) =
                if ( C R B , B , C ) ) $=
      ( vy wor wcel w3a cpr wbr 3adant1 wn wceq breq1 notbid adantr ifbothda wa
      sonr breq2 cif simp1 ifcl ifpr cv wral 3adant3 simpr wi so2nr 3impb imnan
      3com23 sylibr imp 3adant2 wb ralprg mpbir2and r19.21bi supmax ) ADFZBAGZC
      AGZHZEABCIZCBDJZBCUAZDVBVCVDUBVCVDVHAGVBVGBCAUCKVCVDVHVFGVBVGBCAAUDKVEVHE
      UEZDJZLZEVFVEVKEVFUFZVHBDJZLZVHCDJZLZVGBBDJZLZVGLZVNVEBCBVHMZVQVMBVHBDNOC
      VHMZVGVMCVHBDNOVEVRVGVBVCVRVDABDSUGPVEVSUHQVGBCDJZLZCCDJZLZVPVEBCVTWBVOBV
      HCDNOWAWDVOCVHCDNOVEVGWCVEVGWBRLZVGWCUIVBVDVCWFVBVDVCWFACBDUJUKUMVGWBULUN
      UOVEWEVSVBVDWEVCACDSUPPQVCVDVLVNVPRUQVBVKVNVPEBCAAVIBMVJVMVIBVHDTOVICMVJV
      OVICVHDTOURKUSUTVA $.

    $( The supremum of a singleton.  (Contributed by NM, 2-Oct-2007.) $)
    supsn $p |- ( ( R Or A /\ B e. A ) -> sup ( { B } , A , R ) = B ) $=
      ( wor wcel wa csn csup wbr cif cpr dfsn2 supeq1i wceq suppr 3anidm23 ifid
      syl5eq syl6eq ) ACDZBAEZFZBGZACHZBBCIZBBJZBUBUDBBKZACHZUFAUCUGCBLMTUAUHUF
      NABBCOPRUEBQS $.
  $}

  ${
    $d u v w x y z A $.  $d u v w x y z C $.  $d w y z D $.  $d u w ph $.
    $d u v w x y z F $.  $d u w x y z R $.  $d u v w x y z S $.
    $d u v w x y z B $.
    supiso.1 $e |- ( ph -> F Isom R , S ( A , B ) ) $.
    supiso.2 $e |- ( ph -> C C_ A ) $.
    $( Lemma for ~ supiso .  (Contributed by Mario Carneiro, 24-Dec-2016.) $)
    supisolem $p |- ( ( ph /\ D e. A ) ->
      ( ( A. y e. C -. D R y /\ A. y e. A ( y R D -> E. z e. C y R z ) ) <->
        ( A. w e. ( F " C ) -. ( F ` D ) S w /\
          A. w e. B ( w S ( F ` D ) -> E. v e. ( F " C ) w S v ) ) ) ) $=
      ( wa wcel wbr wral wb adantr wiso wss cv wn wrex wi cfv jca simpll simplr
      cima sselda isorel syl12anc notbid ralbidva wfn wf1o syl f1ofn wceq breq2
      isof1o ralima syl2anc bitr4d simpr rexima imbi12d wfo f1ofo breq1 rexbidv
      rexbidva cbvfo 3syl bitrd anbi12d sylan ) AFGJKLUAZHFUBZOZIFPZIBUCZJQZUDZ
      BHRZWDIJQZWDCUCZJQZCHUEZUFZBFRZOILUGZDUCZKQZUDZDLHUKZRZWOWNKQZWOEUCZKQZEW
      RUEZUFZDGRZOSAVTWAMNUHWBWCOZWGWSWMXEXFWGWNWDLUGZKQZUDZBHRZWSXFWFXIBHXFWDH
      PZOZWEXHXLVTWCWDFPZWEXHSXFVTXKVTWAWCUIZTWBWCXKUJXFHFWDVTWAWCUJZULFGIWDJKL
      UMUNUOUPXFLFUQZWAWSXJSXFFGLURZXPXFVTXQXNFGJKLVCUSZFGLUTUSZXOWQXIDBFHLWOXG
      VAWPXHWOXGWNKVBUOVDVEVFXFWMXGWNKQZXGXAKQZEWRUEZUFZBFRZXEXFWLYCBFXFXMOZWHX
      TWKYBYEVTXMWCWHXTSXFVTXMXNTZXFXMVGWBWCXMUJFGWDIJKLUMUNYEWKXGWILUGZKQZCHUE
      ZYBYEWJYHCHYEWIHPZOVTXMWIFPWJYHSYEVTYJYFTXFXMYJUJYEHFWIXFWAXMXOTZULFGWDWI
      JKLUMUNVNYEXPWAYBYISXFXPXMXSTYKYAYHECFHLXAYGXGKVBVHVEVFVIUPXFXQFGLVJYDXES
      XRFGLVKYCXDBDFGLXGWOVAZXTWTYBXCXGWOWNKVLYLYAXBEWRXGWOXAKVLVMVIVOVPVQVRVS
      $.

    supisoex.3 $e |- ( ph -> E. x e. A ( A. y e. C -. x R y /\
                      A. y e. A ( y R x -> E. z e. C y R z ) ) ) $.
    $( Lemma for ~ supiso .  (Contributed by Mario Carneiro, 24-Dec-2016.) $)
    supisoex $p |- ( ph -> E. u e. B ( A. w e. ( F " C ) -. u S w /\
          A. w e. B ( w S u -> E. v e. ( F " C ) w S v ) ) ) $=
      ( cv wbr wral wi wn wrex wa cima wiso wss wcel simpl simpr supisolem wf1o
      cfv wf isof1o f1of 3syl ffvelrnda wceq breq1 notbid ralbidv breq2 anbi12d
      imbi1d rspcev ex syl sylbid rexlimdva syl2anc mpd ) ABQZCQZKRUACJSVMVLKRV
      MDQKRDJUBTCHSUCZBHUBZGQZEQZLRZUAZEMJUDZSZVQVPLRZVQFQLRFVTUBZTZEISZUCZGIUB
      ZPAHIKLMUEZJHUFZVOWGTNOWHWIUCZVNWGBHWJVLHUGUCZVNVLMULZVQLRZUAZEVTSZVQWLLR
      ZWCTZEISZUCZWGWJCDEFHIJVLKLMWHWIUHZWHWIUIUJWKWLIUGZWSWGTWJHIVLMWJWHHIMUKH
      IMUMWTHIKLMUNHIMUOUPUQXAWSWGWFWSGWLIVPWLURZWAWOWEWRXBVSWNEVTXBVRWMVPWLVQL
      USUTVAXBWDWQEIXBWBWPWCVPWLVQLVBVDVAVCVEVFVGVHVIVJVK $.

    supiso.4 $e |- ( ph -> R Or A ) $.
    $( Image of a supremum under an isomorphism.  (Contributed by Mario
       Carneiro, 24-Dec-2016.) $)
    supiso $p |- ( ph ->
      sup ( ( F " C ) , B , S ) = ( F ` sup ( C , A , R ) ) ) $=
      ( vw vv vu cv wbr wral cima csup cfv wor wiso isoso syl mpbid wf1o isof1o
      wb wf f1of 3syl supcl ffvelrnd wn wrex wi supub ralrimiv wcel suplub expd
      wa supisolem mpdan mpbi2and simpld r19.21bi simprd impr eqsupd ) AOPFJGUA
      ZGEHUBZJUCZIAEHUDZFIUDZNAEFHIJUEZVQVRUKKEFHIJUFUGUHAEFVOJAVSEFJUIEFJULKEF
      HIJUJEFJUMUNABCDEGHNMUOZUPAVPORZISUQZOVNAWBOVNTZWAVPISZWAPRISPVNURZUSZOFT
      ZAVOQRZHSUQZQGTZWHVOHSZWHDRHSDGURZUSZQETZWCWGVEZAWIQGABCDEGWHHNMUTVAAWMQE
      AWHEVBWKWLABCDEGWHHNMVCVDVAAVOEVBWJWNVEWOUKVTAQDOPEFGVOHIJKLVFVGVHZVIVJAW
      AFVBWDWEAWFOFAWCWGWPVKVJVLVM $.
  $}

  $( Equality theorem for infimum.  (Contributed by AV, 2-Sep-2020.) $)
  infeq1 $p |- ( B = C -> inf ( B , A , R ) = inf ( C , A , R ) ) $=
    ( wceq ccnv csup cinf supeq1 df-inf 3eqtr4g ) BCEBADFZGCALGBADHCADHABCLIBAD
    JCADJK $.

  ${
    infeq1d.1 $e |- ( ph -> B = C ) $.
    $( Equality deduction for infimum.  (Contributed by AV, 2-Sep-2020.) $)
    infeq1d $p |- ( ph -> inf ( B , A , R ) = inf ( C , A , R ) ) $=
      ( wceq cinf infeq1 syl ) ACDGCBEHDBEHGFBCDEIJ $.
  $}

  ${
    infeq1i.1 $e |- B = C $.
    $( Equality inference for infimum.  (Contributed by AV, 2-Sep-2020.) $)
    infeq1i $p |- inf ( B , A , R ) = inf ( C , A , R ) $=
      ( wceq cinf infeq1 ax-mp ) BCFBADGCADGFEABCDHI $.
  $}

  $( Equality theorem for infimum.  (Contributed by AV, 2-Sep-2020.) $)
  infeq2 $p |- ( B = C -> inf ( A , B , R ) = inf ( A , C , R ) ) $=
    ( wceq ccnv csup cinf supeq2 df-inf 3eqtr4g ) BCEABDFZGACLGABDHACDHABCLIABD
    JACDJK $.

  $( Equality theorem for infimum.  (Contributed by AV, 2-Sep-2020.) $)
  infeq3 $p |- ( R = S -> inf ( A , B , R ) = inf ( A , B , S ) ) $=
    ( wceq ccnv csup cinf cnveq supeq3 syl df-inf 3eqtr4g ) CDEZABCFZGZABDFZGZA
    BCHABDHNOQEPRECDIABOQJKABCLABDLM $.

  ${
    infeq123d.a $e |- ( ph -> A = D ) $.
    infeq123d.b $e |- ( ph -> B = E ) $.
    infeq123d.c $e |- ( ph -> C = F ) $.
    $( Equality deduction for infimum.  (Contributed by AV, 2-Sep-2020.) $)
    infeq123d $p |- ( ph -> inf ( A , B , C ) = inf ( D , E , F ) ) $=
      ( ccnv csup cinf cnveqd supeq123d df-inf 3eqtr4g ) ABCDKZLEFGKZLBCDMEFGMA
      BCREFSHIADGJNOBCDPEFGPQ $.
  $}

  ${
    nfinf.1 $e |- F/_ x A $.
    nfinf.2 $e |- F/_ x B $.
    nfinf.3 $e |- F/_ x R $.
    $( Hypothesis builder for infimum.  (Contributed by AV, 2-Sep-2020.) $)
    nfinf $p |- F/_ x inf ( A , B , R ) $=
      ( cinf ccnv csup df-inf nfcnv nfsup nfcxfr ) ABCDHBCDIZJBCDKABCOEFADGLMN
      $.
  $}

  ${
    infexd.1 $e |- ( ph -> R Or A ) $.
    $( An infimum is a set.  (Contributed by AV, 2-Sep-2020.) $)
    infexd $p |- ( ph -> inf ( B , A , R ) e. _V ) $=
      ( cinf ccnv csup cvv df-inf wor cnvso sylib supexd syl5eqel ) ACBDFCBDGZH
      ICBDJABCPABDKBPKEBDLMNO $.

    $d A y z $.  $d B y z $.  $d R y z $.
    ${
      $d C y z $.
      $( Sufficient condition for an element to be equal to the infimum.
         (Contributed by AV, 2-Sep-2020.) $)
      eqinf $p |- ( ph -> ( ( C e. A /\ A. y e. B -. y R C /\
       A. y e. A ( C R y -> E. z e. B z R y ) ) -> inf ( B , A , R ) = C ) ) $=
        ( wcel cv wbr wn wral wrex wi w3a wa cvv wb bicomd cinf wceq df-inf wor
        ccnv csup cnvso sylib eqsup vex brcnvg mpan2 ralbidv mpan brcnv rexbidv
        notbid a1i imbi12d anbi12d pm5.32i 3anass 3bitr4i biimpi impel syl5eq
        ex ) AFDIZBJZFGKZLZBEMZFVIGKZCJZVIGKZCENZOZBDMZPZEDGUAZFUBAVSQVTEDGUEZU
        FZFEDGUCAVHFVIWAKZLZBEMZVIFWAKZVIVNWAKZCENZOZBDMZPZWBFUBVSABCDEFWAADGUD
        DWAUDHDGUGUHUIVSWKVHVLVRQZQVHWEWJQZQVSWKVHWLWMVHVLWEVRWJVHVKWDBEVHVJWCV
        HVIRIZVJWCSBUJZVHWNQWCVJFVIDRGUKTULUQUMVHVQWIBDVHVMWFVPWHVHWFVMWNVHWFVM
        SWOVIFRDGUKUNTVHVOWGCEVHWGVOWGVOSVHVIVNGWOCUJUOURTUPUSUMUTVAVHVLVRVBVHW
        EWJVBVCVDVEVFVG $.

      $d ph y $.
      eqinfd.2 $e |- ( ph -> C e. A ) $.
      eqinfd.3 $e |- ( ( ph /\ y e. B ) -> -. y R C ) $.
      eqinfd.4 $e |- ( ( ph /\ ( y e. A /\ C R y ) ) -> E. z e. B z R y ) $.
      $( Sufficient condition for an element to be equal to the infimum.
         (Contributed by AV, 3-Sep-2020.) $)
      eqinfd $p |- ( ph -> inf ( B , A , R ) = C ) $=
        ( wcel cv wbr wn wral wrex wi cinf ralrimiva wceq expr eqinf mp3and ) A
        FDLBMZFGNOZBEPFUEGNZCMUEGNCEQZRZBDPEDGSFUAIAUFBEJTAUIBDAUEDLUGUHKUBTABC
        DEFGHUCUD $.
    $}

    $d A x $.  $d B x $.  $d R x $.  $d ph x y z $.
    $( Alternate expression for the infimum.  (Contributed by AV,
       2-Sep-2020.) $)
    infval $p |- ( ph -> inf ( B , A , R ) =
      ( iota_ x e. A ( A. y e. B -. y R x /\
                  A. y e. A ( x R y -> E. z e. B z R y ) ) ) ) $=
      ( cv wbr wn wral wrex wi wa crio wb vex brcnv a1i cinf df-inf cnvso sylib
      ccnv csup supval2 notbid ralbidv rexbidv imbi12d anbi12d riotabidv syl5eq
      wor eqtrd ) AFEGUAFEGUEZUFZCIZBIZGJZKZCFLZUTUSGJZDIZUSGJZDFMZNZCELZOZBEPZ
      FEGUBAURUTUSUQJZKZCFLZUSUTUQJZUSVEUQJZDFMZNZCELZOZBEPVKABCDEFUQAEGUOEUQUO
      HEGUCUDUGAVTVJBEAVNVCVSVIAVMVBCFAVLVAVLVAQAUTUSGBRZCRZSTUHUIAVRVHCEAVOVDV
      QVGVOVDQAUSUTGWBWASTAVPVFDFVPVFQAUSVEGWBDRSTUJUKUIULUMUPUN $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d R x y z $.
    infcl.1 $e |- ( ph -> R Or A ) $.
    infcl.2 $e |- ( ph -> E. x e. A ( A. y e. B -. y R x /\
                      A. y e. A ( x R y -> E. z e. B z R y ) ) ) $.
    $( Lemma for ~ infcl , ~ inflb , ~ infglb , etc.  (Contributed by AV,
       3-Sep-2020.) $)
    infcllem $p |- ( ph -> E. x e. A ( A. y e. B -. x `' R y /\
                      A. y e. A ( y `' R x -> E. z e. B y `' R z ) ) ) $=
      ( cv wbr wn wral wrex wi wa vex brcnv bicomi ralbii notbii rexbii imbi12i
      ccnv anbi12i sylib ) ACJZBJZGKZLZCFMZUHUGGKZDJZUGGKZDFNZOZCEMZPZBENUHUGGU
      DZKZLZCFMZUGUHUSKZUGUMUSKZDFNZOZCEMZPZBENIURVHBEUKVBUQVGUJVACFUIUTUTUIUHU
      GGBQZCQZRSUATUPVFCEULVCUOVEVCULUGUHGVJVIRSUNVDDFVDUNUGUMGVJDQRSUBUCTUEUBU
      F $.

    $( An infimum belongs to its base class (closure law).  See also ~ inflb
       and ~ infglb .  (Contributed by AV, 3-Sep-2020.) $)
    infcl $p |- ( ph -> inf ( B , A , R ) e. A ) $=
      ( cinf ccnv csup df-inf wor cnvso sylib infcllem supcl syl5eqel ) AFEGJFE
      GKZLEFEGMABCDEFTAEGNETNHEGOPABCDEFGHIQRS $.

    $( An infimum is a lower bound.  See also ~ infcl and ~ infglb .
       (Contributed by AV, 3-Sep-2020.) $)
    inflb $p |- ( ph -> ( C e. B -> -. C R inf ( B , A , R ) ) ) $=
      ( wcel cinf wbr wn wa ccnv csup wor cnvso sylib infcllem supub imp df-inf
      wceq a1i breq2d wb supcl brcnvg bicomd sylan bitrd mtbird ex ) AGFKZGFEHL
      ZHMZNAUPOZURFEHPZQZGUTMZAUPVBNABCDEFGUTAEHREUTRIEHSTZABCDEFHIJUAZUBUCUSUR
      GVAHMZVBUSUQVAGHUQVAUEUSFEHUDUFUGAVAEKZUPVEVBUHABCDEFUTVCVDUIVFUPOVBVEVAG
      EFHUJUKULUMUNUO $.

    $d C z $.  $d ph z $.
    $( An infimum is the greatest lower bound.  See also ~ infcl and ~ inflb .
       (Contributed by AV, 3-Sep-2020.) $)
    infglb $p |- ( ph -> ( ( C e. A /\ inf ( B , A , R ) R C ) ->
                    E. z e. B z R C ) ) $=
      ( wcel cinf wbr cv wrex wa wb wor brcnvg cvv ccnv csup df-inf simpr cnvso
      breq1i sylib infcllem adantr bicomd syl2anc syl5bb suplub expdimp sylancl
      supcl vex rexbidv sylibd sylbid expimpd ) AGEKZFEHLZGHMZDNZGHMZDFOZAVBPZV
      DGFEHUAZUBZVIMZVGVDVJGHMZVHVKVCVJGHFEHUCUFVHVBVJEKZVLVKQAVBUDZAVMVBABCDEF
      VIAEHREVIRIEHUEUGZABCDEFHIJUHZUPUIVBVMPVKVLGVJEEHSUJUKULVHVKGVEVIMZDFOZVG
      AVBVKVRABCDEFGVIVOVPUMUNVHVQVFDFVHVBVETKVQVFQVNDUQGVEETHSUOURUSUTVA $.

    ${
      infglbb.3 $e |- ( ph -> B C_ A ) $.
      $( Bidirectional form of ~ infglb .  (Contributed by AV, 3-Sep-2020.) $)
      infglbb $p |- ( ( ph /\ C e. A ) ->
                    ( inf ( B , A , R ) R C <-> E. z e. B z R C ) ) $=
        ( cinf wbr wcel wa wrex wb wor brcnvg cvv ccnv csup df-inf breq1i simpr
        cv cnvso sylib infcllem supcl adantr bicomd syl2anc suplub2 vex sylancl
        rexbidv 3bitrd syl5bb ) FEHLZGHMFEHUAZUBZGHMZAGENZOZDUFZGHMZDFPZUTVBGHF
        EHUCUDVEVCGVBVAMZGVFVAMZDFPVHVEVDVBENZVCVIQAVDUEZAVKVDABCDEFVAAEHREVARI
        EHUGUHZABCDEFHIJUIZUJUKVDVKOVIVCGVBEEHSULUMABCDEFGVAVMVNKUNVEVJVGDFVEVD
        VFTNVJVGQVLDUOGVFETHSUPUQURUS $.
    $}

    $( A lower bound is not greater than the infimum.  (Contributed by AV,
       3-Sep-2020.) $)
    infnlb $p |- ( ph -> ( ( C e. A /\ A. z e. B -. z R C ) ->
                    -. inf ( B , A , R ) R C ) ) $=
      ( wcel cv wbr wn wral cinf wa wrex infglb expdimp dfrex2 syl6ib expimpd
      con2d ) AGEKZDLGHMZNDFOZFEHPGHMZNAUEQZUHUGUIUHUFDFRZUGNAUEUHUJABCDEFGHIJS
      TUFDFUAUBUDUC $.
  $}

  ${
    infex.1 $e |- R Or A $.
    $( An infimum is a set.  (Contributed by AV, 3-Sep-2020.) $)
    infex $p |- inf ( B , A , R ) e. _V $=
      ( wor cinf cvv wcel id infexd ax-mp ) ACEZBACFGHDLABCLIJK $.
  $}

  ${
    $d A y z $.  $d B y z $.  $d C y z $.  $d R y z $.  $d y z ph $.
    infmin.1 $e |- ( ph -> R Or A ) $.
    infmin.2 $e |- ( ph -> C e. A ) $.
    infmin.3 $e |- ( ph -> C e. B ) $.
    infmin.4 $e |- ( ( ph /\ y e. B ) -> -. y R C ) $.
    $( The smallest element of a set is its infimum.  Note that the converse is
       not true; the infimum might not be an element of the set considered.
       (Contributed by AV, 3-Sep-2020.) $)
    infmin $p |- ( ph -> inf ( B , A , R ) = C ) $=
      ( vz cv wcel wbr wa wrex adantr simprr breq1 rspcev syl2anc eqinfd ) ABKC
      DEFGHJABLZCMZEUCFNZOZOEDMZUEKLZUCFNZKDPAUGUFIQAUDUERUIUEKEDUHEUCFSTUAUB
      $.
  $}

  ${
    $d x y z w A $.  $d x y z w R $.  $d x y z w B $.  $d w ph $.
    infmo.1 $e |- ( ph -> R Or A ) $.
    $( Any class ` B ` has at most one infimum in ` A ` (where ` R ` is
       interpreted as 'less than').  (Contributed by AV, 6-Oct-2020.) $)
    infmo $p |- ( ph -> E* x e. A ( A. y e. B -. y R x /\
                  A. y e. A ( x R y -> E. z e. B z R y ) ) ) $=
      ( vw cv wbr wn wral wrex wi wa weq breq2 breq1 syl5bi wrmo wor wcel ancom
      anbi2ci an42 3bitr4i ralnex rexbidv imbi12d cbvrexv syl6ibr con3d expimpd
      rspcva ad2antrl ad2antll anim12d imp ancomd ex sotrieq2 ralrimivva notbid
      sylibrd syl ralbidv imbi1d anbi12d rmo4 sylibr ) ACJZBJZGKZLZCFMZVMVLGKZD
      JZVLGKZDFNZOZCEMZPZVLIJZGKZLZCFMZWDVLGKZVTOZCEMZPZPZBIQZOZIEMBEMZWCBEUAAE
      GUBZWOHWPWNBIEEWPVMEUCZWDEUCZPPZWLVMWDGKZLZWDVMGKZLZPZWMWLWJVPPZWBWGPZPZW
      SXDVPWGPZWJWBPZPXIWGVPPZPWLXGXHXJXIVPWGUDUEVPWBWGWJUFWJVPWBWGUFUGWSXGXDWS
      XGPXCXAWSXGXCXAPWSXEXCXFXAWQXEXCOWPWRWQWJVPXCVPVNCFNZLWQWJPZXCVNCFUHXLXBX
      KXLXBVRVMGKZDFNZXKWIXBXNOCVMECBQZWHXBVTXNVLVMWDGRXOVSXMDFVLVMVRGRUIUJUOVN
      XMCDFVLVRVMGSUKULUMTUNUPWRXFXAOWPWQWRWBWGXAWGWECFNZLWRWBPZXAWECFUHXQWTXPX
      QWTVRWDGKZDFNZXPWAWTXSOCWDECIQZVQWTVTXSVLWDVMGRXTVSXRDFVLWDVRGRUIUJUOWEXR
      CDFVLVRWDGSUKULUMTUNUQURUSUTVATEVMWDGVBVEVCVFWCWKBIEWMVPWGWBWJWMVOWFCFWMV
      NWEVMWDVLGRVDVGWMWAWICEWMVQWHVTVMWDVLGSVHVGVIVJVK $.

    infeu.2 $e |- ( ph -> E. x e. A ( A. y e. B -. y R x /\
                      A. y e. A ( x R y -> E. z e. B z R y ) ) ) $.
    $( An infimum is unique.  (Contributed by AV, 6-Oct-2020.) $)
    infeu $p |- ( ph ->
                    E! x e. A ( A. y e. B -. y R x /\
                    A. y e. A ( x R y -> E. z e. B z R y ) ) ) $=
      ( cv wbr wn wral wrex wi wa wrmo wreu infmo reu5 sylanbrc ) ACJZBJZGKLCFM
      UCUBGKDJUBGKDFNOCEMPZBENUDBEQUDBERIABCDEFGHSUDBETUA $.
  $}

  ${
    $d R x y z $.  $d A x y z $.
    $( A finite set has a minimum under a total order.  (Contributed by AV,
       6-Oct-2020.) $)
    fimin2g $p |- ( ( R Or A /\ A e. Fin /\ A =/= (/) ) ->
                                        E. x e. A A. y e. A -. y R x ) $=
      ( wor cfn wcel c0 wne w3a wa wfr cv wbr wn wral wrex 3simpc wpo syl2anc
      sopo 3ad2ant1 simp2 frfi wss ssid fri mpanr1 an32s ) CDEZCFGZCHIZJZUKULKC
      DLZBMAMDNOBCPACQZUJUKULRUMCDSZUKUNUJUKUPULCDUAUBUJUKULUCCDUDTUKUNULUOUKUN
      KCCUEULUOCUFABCCFDUGUHUIT $.

    $( A finite set has a minimum under a total order.  (Contributed by AV,
       6-Oct-2020.) $)
    fiming $p |- ( ( R Or A /\ A e. Fin /\ A =/= (/) ) ->
                            E. x e. A A. y e. A ( x =/= y -> x R y ) ) $=
      ( wor cfn wcel c0 wne w3a cv wbr wi wral wrex wn fimin2g wb wa weq imbi1i
      wo nesym pm4.64 sotric ancom2s con2bid anassrs ralbidva rexbidva 3ad2ant1
      bitri syl5bb mpbird ) CDEZCFGZCHIZJAKZBKZIZURUSDLZMZBCNZACOZUSURDLZPZBCNZ
      ACOZABCDQUOUPVDVHRUQUOVCVGACUOURCGZSVBVFBCUOVIUSCGZVBVFRVBBATZVAUBZUOVIVJ
      SSZVFVBVKPZVAMVLUTVNVAURUSUCUAVKVAUDULVMVEVLUOVJVIVEVLPRCUSURDUEUFUGUMUHU
      IUJUKUN $.

    $( Lemma showing existence and closure of infimum of a finite set.
       (Contributed by AV, 6-Oct-2020.) $)
    fiinfg $p |- ( ( R Or A /\ A e. Fin /\ A =/= (/) ) -> E. x e. A ( A. y e. A
            -. y R x /\ A. y e. A ( x R y -> E. z e. A z R y ) ) ) $=
      ( wor cfn wcel wne cv wbr wi wral wrex wn wa weq ancom2s ex anassrs c0 wb
      w3a fiming equcom sotrieq2 syl5bb simprbda a1dd pm2.27 so2nr pm3.21 con3d
      syl5com syl9r pm2.61dne ralimdva breq1 rspcev ralrimivw reximdva 3ad2ant1
      adantl jctird mpd ) DEFZDGHZDUAIZUCAJZBJZIZVIVJEKZLZBDMZADNZVJVIEKZOZBDMZ
      VLCJZVJEKZCDNZLZBDMZPZADNZABDEUDVFVGVOWELVHVFVNWDADVFVIDHZPZVNVRWCWGVMVQB
      DWGVJDHZPZVMVQLVIVJWIABQZVQVMVFWFWHWJVQLVFWFWHPPZWJVQWKWJVQVLOZWJBAQZWKVQ
      WLPZABUEVFWHWFWMWNUBDVJVIEUFRUGUHSTUIVKVMVLWIVQVKVLUJVFWFWHVLVQLWKVPVLPZO
      ZVLVQVFWHWFWPDVJVIEUKRVLVPWOVLVPULUMUNTUOUPUQWFWCVFWFWBBDWFVLWAVTVLCVIDVS
      VIVJEURUSSUTVCVDVAVBVE $.
  $}

  ${
    $d R x y z $.  $d B x y z $.
    $( A finite set satisfies the conditions to have an infimum.  (Contributed
       by AV, 6-Oct-2020.) $)
    fiinf2g $p |- ( ( R Or A /\ ( B e. Fin /\ B =/= (/) /\ B C_ A ) ) ->
      E. x e. B ( A. y e. B -. y R x /\
        A. y e. A ( x R y -> E. z e. B z R y ) ) ) $=
      ( wor cfn wcel c0 wne wss w3a wa cv wbr wn wral wrex wi wreu simp1 fiinfg
      soss infeu 3exp syl6 com4l 3imp2 reurex breq1 rspcev ralrimivw a1d anim2d
      ex reximia 3syl ) DFGZEHIZEJKZEDLZMNBOZAOZFPQBERZVDVCFPZCOZVCFPZCESZTZBER
      ZNZAEUAZVLAESVEVJBDRZNZAESUSUTVAVBVMVBUSUTVAVMVBUSEFGZUTVAVMTTEDFUDVPUTVA
      VMVPUTVAMABCEEFVPUTVAUBABCEFUCUEUFUGUHUIVLAEUJVLVOAEVDEIZVKVNVEVQVNVKVQVJ
      BDVQVFVIVHVFCVDEVGVDVCFUKULUPUMUNUOUQUR $.
  $}

  $( A nonempty finite set contains its infimum.  (Contributed by AV,
     3-Sep-2020.) $)
  fiinfcl $p |- ( ( R Or A /\ ( B e. Fin /\ B =/= (/) /\ B C_ A ) )
                                    -> inf ( B , A , R ) e. B ) $=
    ( wor cfn wcel c0 wne wss w3a wa cinf ccnv csup df-inf cnvso fisupcl sylanb
    syl5eqel ) ACDZBEFBGHBAIJZKBACLBACMZNZBBACOTAUBDUAUCBFACPABUBQRS $.

  ${
    infltoreq.1 $e |- ( ph -> R Or A ) $.
    infltoreq.2 $e |- ( ph -> B C_ A ) $.
    infltoreq.3 $e |- ( ph -> B e. Fin ) $.
    infltoreq.4 $e |- ( ph -> C e. B ) $.
    infltoreq.5 $e |- ( ph -> S = inf ( B , A , R ) ) $.
    $( The infimum of a finite set is less than or equal to all the elements of
       the set.  (Contributed by AV, 4-Sep-2020.) $)
    infltoreq $p |- ( ph -> ( S R C \/ C = S ) ) $=
      ( wbr wceq wo ccnv wor cnvso sylib cinf wcel csup df-inf syl6eq supgtoreq
      wb cfn c0 wne wss ne0i syl fiinfcl syl13anc eqeltrd brcnvg bicomd syl2anc
      wa orbi1d mpbird ) AFDELZDFMZNDFEOZLZVBNABCDVCFABEPZBVCPGBEQRHIJAFCBESZCB
      VCUAKCBEUBUCUDAVAVDVBADCTZFCTZVAVDUEJAFVFCKAVECUFTCUGUHZCBUIVFCTGIAVGVIJC
      DUJUKHBCEULUMUNVGVHURVDVADFCCEUOUPUQUSUT $.
  $}

  ${
    $d A y $.  $d B y $.  $d C y $.  $d R y $.
    $( The infimum of a pair.  (Contributed by AV, 4-Sep-2020.) $)
    infpr $p |- ( ( R Or A /\ B e. A /\ C e. A ) -> inf ( { B , C } , A , R ) =
                  if ( B R C , B , C ) ) $=
      ( vy wor wcel w3a cpr wbr 3adant1 wn wceq breq2 notbid adantr ifbothda wa
      sonr breq1 cif simp1 ifcl ifpr cv wral 3adant3 simpr wi so2nr 3impb imnan
      sylibr imp 3adant2 wb ralprg mpbir2and r19.21bi infmin ) ADFZBAGZCAGZHZEA
      BCIZBCDJZBCUAZDVAVBVCUBVBVCVGAGVAVFBCAUCKVBVCVGVEGVAVFBCAAUDKVDEUEZVGDJZL
      ZEVEVDVJEVEUFZBVGDJZLZCVGDJZLZVFBBDJZLZVFLZVMVDBCBVGMZVPVLBVGBDNOCVGMZVFV
      LCVGBDNOVDVQVFVAVBVQVCABDSUGPVDVRUHQVFCBDJZLZCCDJZLZVOVDBCVSWAVNBVGCDNOVT
      WCVNCVGCDNOVDVFWBVDVFWARLZVFWBUIVAVBVCWEABCDUJUKVFWAULUMUNVDWDVRVAVCWDVBA
      CDSUOPQVBVCVKVMVORUPVAVJVMVOEBCAAVHBMVIVLVHBVGDTOVHCMVIVNVHCVGDTOUQKURUSU
      T $.
  $}

  $( The infimum of a singleton.  (Contributed by NM, 2-Oct-2007.) $)
  infsn $p |- ( ( R Or A /\ B e. A ) -> inf ( { B } , A , R ) = B ) $=
    ( wor wcel wa csn cinf wbr cif cpr dfsn2 infeq1i wceq infpr 3anidm23 syl5eq
    ifid syl6eq ) ACDZBAEZFZBGZACHZBBCIZBBJZBUBUDBBKZACHZUFAUCUGCBLMTUAUHUFNABB
    COPQUEBRS $.

  $( The infimum regarding an empty base set is always the empty set.
     (Contributed by AV, 4-Sep-2020.) $)
  inf00 $p |- inf ( B , (/) , R ) = (/) $=
    ( c0 cinf ccnv csup df-inf sup00 eqtri ) ACBDACBEZFCACBGAJHI $.

  ${
    $d A x y $.  $d R x y $.  $d X x y $.
    $( The infimum of an empty set under a base set which has a unique greatest
       element is the greatest element of the base set.  (Contributed by AV,
       4-Sep-2020.) $)
    infempty $p |- ( ( R Or A /\ ( X e. A /\ A. y e. A -. X R y )
                       /\ E! x e. A A. y e. A -. x R y )
                     -> inf ( (/) , A , R ) = X ) $=
      ( wor wcel cv wbr wn wral wa wreu c0 brcnvg ancoms bicomd notbid ralbidva
      wb cinf ccnv csup df-inf wceq cnvso pm5.32i reubiia sup0 syl3anb syl5eq
      w3a ) CDFZECGZEBHZDIZJZBCKZLZAHZUODIZJZBCKZACMZULNCDUANCDUBZUCZENCDUDUMCV
      EFUSUNUOEVEIZJZBCKZLVDUOUTVEIZJZBCKZACMVFEUECDUFUNURVIUNUQVHBCUNUOCGZLZUP
      VGVNVGUPVMUNVGUPTUOECCDOPQRSUGVCVLACUTCGZVBVKBCVOVMLZVAVJVPVJVAVMVOVJVATU
      OUTCCDOPQRSUHABCVEEUIUJUK $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d F x y z $.  $d R x y z $.
    $d S x y z $.  $d ph x y z $.
    infiso.1 $e |- ( ph -> F Isom R , S ( A , B ) ) $.
    infiso.2 $e |- ( ph -> C C_ A ) $.
    infiso.3 $e |- ( ph -> E. x e. A ( A. y e. C -. y R x /\
                      A. y e. A ( x R y -> E. z e. C z R y ) ) ) $.
    infiso.4 $e |- ( ph -> R Or A ) $.
    $( Image of an infimum under an isomorphism.  (Contributed by AV,
       4-Sep-2020.) $)
    infiso $p |- ( ph ->
                   inf ( ( F " C ) , B , S ) = ( F ` inf ( C , A , R ) ) ) $=
      ( ccnv csup cfv cinf wiso sylib cima isocnv2 infcllem cnvso supiso df-inf
      wor fveq2i 3eqtr4g ) AJGUAZFIOZPGEHOZPZJQUJFIRGEHRZJQABCDEFGULUKJAEFHIJSE
      FULUKJSKEFHIJUBTLABCDEGHNMUCAEHUGEULUGNEHUDTUEUJFIUFUNUMJGEHUFUHUI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordinal isomorphism, Hartogs's theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c OrdIso $.

  $( Extend class definition to include the canonical order isomorphism to an
     ordinal. $)
  coi $a class OrdIso ( R , A ) $.

  ${
    $d h j t u v w x z A $.  $d h j t u v w x z R $.
    $( Define the canonical order isomorphism from the well-order ` R ` on
       ` A ` to an ordinal.  (Contributed by Mario Carneiro, 23-May-2015.) $)
    df-oi $a |- OrdIso ( R , A ) = if ( ( R We A /\ R Se A ) ,
      ( recs ( ( h e. _V |->
      ( iota_ v e. { w e. A | A. j e. ran h j R w }
           A. u e. { w e. A | A. j e. ran h j R w } -. u R v ) ) ) |`
       { x e. On | E. t e. A A. z e. ( recs ( ( h e. _V |->
      ( iota_ v e. { w e. A | A. j e. ran h j R w }
           A. u e. { w e. A | A. j e. ran h j R w } -. u R v ) ) ) " x )
      z R t } ) , (/) ) $.
  $}

  ${
    $d h j t u v w x z A $.  $d u v C $.  $d z F $.  $d h j t u v w x z R $.
    dfoi.1 $e |- C = { w e. A | A. j e. ran h j R w } $.
    dfoi.2 $e |- G = ( h e. _V |-> ( iota_ v e. C A. u e. C -. u R v ) ) $.
    dfoi.3 $e |- F = recs ( G ) $.
    $( Rewrite ~ df-oi with abbreviations.  (Contributed by Mario Carneiro,
       24-Jun-2015.) $)
    dfoi $p |- OrdIso ( R , A ) = if ( ( R We A /\ R Se A ) , ( F |`
       { x e. On | E. t e. A A. z e. ( F " x ) z R t } ) , (/) ) $=
      ( cvv cv wral wceq coi wwe wse wa wbr crab crio cmpt crecs cima wrex con0
      wn crn cres c0 cif df-oi wcel a1i riotaeqbidv mpteq2ia eqtri recseq ax-mp
      raleqdv wb imaeq1i raleqi rexbii rabbiia reseq12i ifeq1 eqtr4i ) GIUAGIUB
      GIUCUDZJQERDRIUEUMZEKRCRIUEKJRZUNSCGUFZSZDVRUGZUHZUIZBRFRIUEZBWBARZUJZSZF
      GUKZAULUFZUOZUPUQZVOLWCBLWDUJZSZFGUKZAULUFZUOZUPUQZABCDEFGIJKURWOWITWPWJT
      LWBWNWHLMUIZWBPMWATWQWBTMJQVPEHSZDHUGZUHWAOJQWSVTVQQUSZWRVSDHVRHVRTWTNUTZ
      WTVPEHVRXAVFVAVBVCMWAVDVEVCZWMWGAULWMWGVGWDULUSWLWFFGWCBWKWELWBWDXBVHVIVJ
      UTVKVLVOWOWIUPVMVEVN $.
  $}

  ${
    $d h j t u v w x z A $.  $d h j t u v w x z B $.  $d h j t u v w x z R $.
    $d h j t u v w x z S $.
    $( Equality theorem for ordinal isomorphism.  (Contributed by Mario
       Carneiro, 23-May-2015.) $)
    oieq1 $p |- ( R = S -> OrdIso ( R , A ) = OrdIso ( S , A ) ) $=
      ( vh vu vv vj vw vz vt vx wceq cvv cv wbr wral crab con0 c0 breq wwe crio
      wse wa wn crn cmpt crecs cima wrex cres cif weeq1 anbi12d ralbidv rabbidv
      coi notbid raleqbidv riotaeqbidv mpteq2dv recseq imaeq1d rexbidv reseq12d
      seeq1 syl ifbieq1d df-oi 3eqtr4g ) BCLZABUAZABUCZUDZDMENZFNZBOZUEZEGNZHNZ
      BOZGDNUFZPZHAQZPZFWDUBZUGZUHZINZJNZBOZIWHKNZUIZPZJAUJZKRQZUKZSULACUAZACUC
      ZUDZDMVOVPCOZUEZEVSVTCOZGWBPZHAQZPZFXEUBZUGZUHZWIWJCOZIXIWLUIZPZJAUJZKRQZ
      UKZSULABUQACUQVKVNWTWQXOSVKVLWRVMWSABCUMABCVFUNVKWHXIWPXNVKWGXHLWHXILVKDM
      WFXGVKWEXFFWDXEVKWCXDHAVKWAXCGWBVSVTBCTUOUPZVKVRXBEWDXEXPVKVQXAVOVPBCTURU
      SUTVAWGXHVBVGZVKWOXMKRVKWNXLJAVKWKXJIWMXKVKWHXIWLXQVCWIWJBCTUSVDUPVEVHKIH
      FEJABDGVIKIHFEJACDGVIVJ $.

    $( Equality theorem for ordinal isomorphism.  (Contributed by Mario
       Carneiro, 23-May-2015.) $)
    oieq2 $p |- ( A = B -> OrdIso ( R , A ) = OrdIso ( R , B ) ) $=
      ( vh vu vv vj vw vz vt vx wceq wwe cvv cv wbr wral crab con0 c0 wse wa wn
      crn crio cmpt crecs cima wrex cif weeq2 seeq2 anbi12d raleqdv riotaeqbidv
      cres coi mpteq2dv recseq syl imaeq1d rexeqbi1dv rabbidv reseq12d ifbieq1d
      rabeq df-oi 3eqtr4g ) ABLZACMZACUAZUBZDNEOFOCPUCZEGOHOCPGDOUDQZHARZQZFVOU
      EZUFZUGZIOJOCPZIVSKOZUHZQZJAUIZKSRZUPZTUJBCMZBCUAZUBZDNVMEVNHBRZQZFWJUEZU
      FZUGZVTIWNWAUHZQZJBUIZKSRZUPZTUJACUQBCUQVIVLWIWFWSTVIVJWGVKWHABCUKABCULUM
      VIVSWNWEWRVIVRWMLVSWNLVIDNVQWLVIVPWKFVOWJVNHABVFZVIVMEVOWJWTUNUOURVRWMUSU
      TZVIWDWQKSWCWPJABVIVTIWBWOVIVSWNWAXAVAUNVBVCVDVEKIHFEJACDGVGKIHFEJBCDGVGV
      H $.
  $}

  ${
    $d a h j t u v w x z $.  $d a h j t u v w z A $.  $d a h j t u v w z R $.
    nfoi.1 $e |- F/_ x R $.
    nfoi.2 $e |- F/_ x A $.
    $( Hypothesis builder for ordinal isomorphism.  (Contributed by Mario
       Carneiro, 23-May-2015.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfoi $p |- F/_ x OrdIso ( R , A ) $=
      ( vh vu vv vj vw vz vt va cvv cv wbr wral con0 c0 nfcv coi wwe wse wa crn
      crab crio cmpt crecs cima wrex cres df-oi nfwe nfse nfan nfbr nfral nfrab
      wn cif nfn nfriota nfmpt nfrecs nfima nfrex nfres nfif nfcxfr ) ABCUABCUB
      ZBCUCZUDZFNGOZHOZCPZUTZGIOZJOZCPZIFOUEZQZJBUFZQZHWCUGZUHZUIZKOZLOZCPZKWGM
      OZUJZQZLBUKZMRUFZULZSVAMKJHGLBCFIUMVMAWPSVKVLAABCDEUNABCDEUOUPAWGWOAWFAFN
      WEANTWDAHWCVQAGWCWBAJBVTAIWAAWATAVRVSCAVRTDAVSTUQUREUSZVPAAVNVOCAVNTDAVOT
      UQVBURWQVCVDVEZWNAMRWMALBEWJAKWLAWGWKWRAWKTVFAWHWICAWHTDAWITUQURVGARTUSVH
      ASTVIVJ $.
  $}

  ${
    $d f w x y z A $.  $d f w x y z B $.  $d w x y z F $.
    $( Generalize ~ ordiso to proper classes.  (Contributed by Mario Carneiro,
       24-Jun-2015.) $)
    ordiso2 $p |- ( ( F Isom _E , _E ( A , B ) /\ Ord A /\ Ord B ) ->
                    A = B ) $=
      ( vx vy vz vw cep cv cfv wceq wral wcel wi fveq2 id eqeq12d wa wb syl w3a
      wiso word wss ordsson 3ad2ant2 sseld eleq1 imbi12d imbi2d r19.21v ordelss
      con0 3ad2antl2 sselda ralbidva ccnv wf1o isof1o 3ad2ant1 ad2antrr simpll3
      pm5.5 simpr wf f1of simplrl ffvelrn syl2anc ordtr1 sylc f1ocnvfv2 eqeltrd
      jca wbr simpll1 f1ocnv 3syl isorel syl12anc vex epelc fvex 3bitr3g mpbird
      simplrr rspcv eqtr3d simprr rspccva sylan epel adantl simpl2 simprl mpbid
      biimpri sylib eqeltrrd impbida eqrdv sylbid ex com23 a2i a1i syl5bi tfis2
      expr com3l mpdd ralrimiv adantll 3ad2antl1 adantlr wrex simpl1 f1ofo forn
      crn wfo eleq2d wfn f1ofn adantr fvelrnb bitr3d simpl exp43 syldd rexlimdv
      simplr imp impbid mpdan ) ABHHCUBZAUCZBUCZUAZDIZCJZYTKZDALZABKYSUUBDAYSYT
      AMZYTUMMZUUBYSAUMYTYQYPAUMUDYRAUEUFUGUUEYSUUDUUBYSUUDUUBNZNZYSEIZAMZUUHCJ
      ZUUHKZNZNZDEYTUUHKZUUFUULYSUUNUUDUUIUUBUUKYTUUHAUHUUNUUAUUJYTUUHYTUUHCOUU
      NPQUIUJUUMEYTLYSUULEYTLZNZUUEUUGYSUULEYTUKUUPUUGNUUEYSUUOUUFYSUUDUUOUUBYS
      UUDUUOUUBNYSUUDRZUUOUUKEYTLZUUBUUQUULUUKEYTUUQUUHYTMRUUIUULUUKSUUQYTAUUHY
      QYPUUDYTAUDZYRAYTULZUNUOUUIUUKVCTUPYSUUDUURUUBYSUUDUURRZRZFUUAYTUVBFIZUUA
      MZUVCYTMZUVBUVDRZUVCUVCCUQZJZYTUVFUVHCJZUVCUVHUVFABCURZUVCBMZUVIUVCKYSUVJ
      UVAUVDYPYQUVJYRABHHCUSZUTVAZUVFYRUVDUUABMZRUVKYPYQYRUVAUVDVBUVFUVDUVNUVBU
      VDVDZUVFABCVEZUUDUVNYSUVPUVAUVDYPYQUVPYRYPUVJUVPUVLABCVFTZUTVAYSUUDUURUVD
      VGZABYTCVHVIVNUVCUUABVJVKZABUVCCVLVIZUVFUVHYTMZUURUVIUVHKZUVFUWAUVIUUAMZU
      VFUVIUVCUUAUVTUVOVMUVFUVHYTHVOZUVIUUAHVOZUWAUWCUVFYPUVHAMZUUDUWDUWESYPYQY
      RUVAUVDVPUVFBAUVGVEZUVKUWFUVFUVJBAUVGURUWGUVMABCVQBAUVGVFVRUVSBAUVCUVGVHV
      IUVRABUVHYTHHCVSVTUVHYTDWAWBUVIUUAYTCWCZWBWDWEZYSUUDUURUVDWFUUKUWBEUVHYTU
      UHUVHKZUUJUVIUUHUVHUUHUVHCOUWJPQWGVKWHUWIVMUVBUVERZUVCCJZUVCUUAUVBUURUVEU
      WLUVCKZYSUUDUURWIUUKUWMEUVCYTUUHUVCKZUUJUWLUUHUVCUUHUVCCOUWNPQWJWKUWKUWLU
      UAHVOZUWLUUAMUWKUVCYTHVOZUWOUVEUWPUVBUWPUVEFDWLWQWMUWKYPUVCAMZUUDUWPUWOSY
      PYQYRUVAUVEVPUVBYTAUVCUVBYQUUDUUSYPYQYRUVAWNYSUUDUURWOUUTVIUOYSUUDUURUVEV
      GABUVCYTHHCVSVTWPUWLUUAUWHWBWRWSWTXAXIXBXCXDXEXFXGXHXJXKXLYSUUCRZFABUWRUW
      QUVKUWRUWQUVKUWRUWQRUWLUVCBUUCUWQUWMYSUUBUWMDUVCAYTUVCKZUUAUWLYTUVCYTUVCC
      OUWSPQWJXMYSUWQUWLBMZUUCYPYQUWQUWTYRYPUVPUWQUWTUVQABUVCCVHWKXNXOWSXCUWRUV
      KGIZCJZUVCKZGAXPZUWQUWRUVCCXTZMZUVKUXDUWRUXEBUVCUWRYPUXEBKZYPYQYRUUCXQYPU
      VJABCYAUXGUVLABCXRABCXSVRTYBUWRCAYCZUXFUXDSYSUXHUUCYPYQUXHYRYPUVJUXHUVLAB
      CYDTUTYEGAUVCCYFTYGUWRUXCUWQGAYSUUCUXAAMZUXCUWQNZNYSUXIUUCUXJYSUXIUUCUXBU
      XAKZUXJUXIUUCUXKNNYSUUBUXKDUXAAYTUXAKZUUAUXBYTUXAYTUXACOUXLPQWGXFYSUXIUXK
      UXCUWQYSUXIRZUXKUXCRZRUVCUXAAUXNUVCUXAKUXMUXNUXBUVCUXAUXKUXCVDUXKUXCYHWHW
      MYSUXIUXNYLVMYIYJXDYMYKXBYNXAYO $.

    $( Order-isomorphic ordinal numbers are equal.  (Contributed by Jeff
       Hankins, 16-Oct-2009.)  (Proof shortened by Mario Carneiro,
       24-Jun-2015.) $)
    ordiso $p |- ( ( A e. On /\ B e. On ) -> ( A = B
                <-> E. f f Isom _E , _E ( A , B ) ) ) $=
      ( con0 wcel wa wceq cep wiso wex cid cres cvv resiexg isoid isoeq1 spcegv
      cv word eloni mpisyl adantr isoeq5 exbidv syl5ibcom ordiso2 3expia syl2an
      wi 3coml exlimdv impbid ) ADEZBDEZFZABGZABHHCRZIZCJZUOAAHHUQIZCJZUPUSUMVA
      UNUMKALZMEAAHHVBIZVAADNAHOUTVCCVBMAAHHVBUQPQUAUBUPUTURCAABHHUQUCUDUEUOURU
      PCUMASZBSZURUPUIUNATBTVDVEURUPURVDVEUPABUQUFUJUGUHUKUL $.
  $}

  ${
    $d f r s u v C $.  $d a h j t u v w x z M $.  $d a b j u w N $.
    $d a b c f h i j m r s t u v w x y z R $.  $d a b c T $.
    $d a b c h j m r s t u v w x y z A $.  $d a b c m t u v x O $.
    $d a b m t x ph $.
    ordtypelem.1 $e |- F = recs ( G ) $.
    ordtypelem.2 $e |- C = { w e. A | A. j e. ran h j R w } $.
    ordtypelem.3 $e |- G =
      ( h e. _V |-> ( iota_ v e. C A. u e. C -. u R v ) ) $.
    $( Lemma for ~ ordtype .  (Contributed by Mario Carneiro, 26-Jun-2015.) $)
    ordtypecbv $p |- recs ( ( f e. _V |->
      ( iota_ s e. { y e. A | A. i e. ran f i R y }
           A. r e. { y e. A | A. i e. ran f i R y } -. r R s ) ) ) = F $=
      ( cv wral crecs cvv wbr wn crn crab crio cmpt wceq weq breq1 notbid breq2
      cbvralv ralbidv syl5bb cbvriotav cbvrabv rneq raleqdv rabbidv riotaeqbidv
      eqtri syl5eq cbvmptv recseq ax-mp eqtr2i ) LMUAZHUBOSZNSZGUCZUDZOJSZASZGU
      CZJHSZUEZTZAEUFZTZNVTUGZUHZUAZPMWCUIVIWDUIMIUBDSZCSZGUCZUDZDFTZCFUGZUHWCR
      IHUBWJWBIHUJZWJVMOFTZNFUGWBWIWLCNFWIVJWFGUCZUDZOFTCNUJZWLWHWNDOFDOUJWGWMW
      EVJWFGUKULUNWOWNVMOFWOWMVLWFVKVJGUMULUOUPUQWKWLWANFVTWKFVPJISZUEZTZAEUFZV
      TFKSZBSZGUCZKWQTZBEUFWSQXCWRBAEXCVNXAGUCZJWQTBAUJZWRXBXDKJWQWTVNXAGUKUNXE
      XDVPJWQXAVOVNGUMUOUPURVCWKWRVSAEWKVPJWQVRWPVQUSUTVAVDZWKVMOFVTXFUTVBVDVEV
      CMWCVFVGVH $.

    $d a b c h j t u v w x z F $.
    ordtypelem.5 $e |- T = { x e. On | E. t e. A A. z e. ( F " x ) z R t } $.
    ordtypelem.6 $e |- O = OrdIso ( R , A ) $.
    ordtypelem.7 $e |- ( ph -> R We A ) $.
    ordtypelem.8 $e |- ( ph -> R Se A ) $.
    $( Lemma for ~ ordtype .  (Contributed by Mario Carneiro, 24-Jun-2015.) $)
    ordtypelem1 $p |- ( ph -> O = ( F |` T ) ) $=
      ( wwe wse wa cv wbr cima wral wrex con0 crab cres cif wceq iftrue syl2anc
      c0 coi dfoi eqtri reseq2i 3eqtr4g ) AHJUDZHJUEZUFZNCUGGUGJUHCNBUGUIUJGHUK
      BULUMZUNZUSUOZVIPNKUNAVEVFVJVIUPUBUCVGVIUSUQURPHJUTVJUABCDEFGHIJLMNORSQVA
      VBKVHNTVCVD $.

    $( Lemma for ~ ordtype .  (Contributed by Mario Carneiro, 24-Jun-2015.) $)
    ordtypelem2 $p |- ( ph -> Ord T ) $=
      ( va wtr word cv wss wral wcel wbr cima wrex con0 crab ssrab2 eqsstri a1i
      wa sselda onss syl eloni weq imaeq2 raleqdv rexbidv elrab2 simprbi adantl
      wi ordelss imass2 ssralv reximdv 3syl ralrimdva ssrab syl6sseqr ralrimiva
      sylc sylanbrc dftr3 sylibr ordon trssord mp3an23 ) AKUEZKUFZAUDUGZKUHZUDK
      UIWHAWKUDKAWJKUJZUSZWJCUGGUGJUKZCNBUGZULZUIZGHUMZBUNUOZKWMWJUNUHZWRBWJUIZ
      WJWSUHWMWJUNUJZWTAKUNWJKUNUHZAKWSUNTWRBUNUPUQZURUTZWJVAVBWMWJUFZWNCNWJULZ
      UIZGHUMZXAWMXBXFXEWJVCVBWLXIAWLXBXIWRXIBWJUNKBUDVDZWQXHGHXJWNCWPXGWOWJNVE
      VFVGTVHVIVJXFXIWRBWJXFWOWJUJUSWOWJUHWPXGUHZXIWRVKWJWOVLWOWJNVMXKXHWQGHWNC
      WPXGVNVOVPVQWAWRBUNWJVRWBTVSVTUDKWCWDWHXCUNUFWIXDWEKUNWFWGVB $.

    $( Lemma for ~ ordtype .  (Contributed by Mario Carneiro, 24-Jun-2015.) $)
    ordtypelem3 $p |- ( ( ph /\ M e. ( T i^i dom F ) ) ->
        ( F ` M ) e. { v e. { w e. A | A. j e. ( F " M ) j R w } |
          A. u e. { w e. A | A. j e. ( F " M ) j R w } -. u R v } ) $=
      ( cdm cin wcel wa cfv cv wbr wn cima wral crab crio cres wceq inss2 simpr
      sseldi tfr2a syl cvv word wb wlim wfun tfr1a simpri limord ax-mp ordelord
      sylancr tfr2b mpbid crn df-ima syl6eqr raleqdv rabbidv syl5eq riotaeqbidv
      rneq riotaex fvmpt eqtrd wreu wwe wse wss c0 wne adantr ssrab2 wrex inss1
      a1i con0 imaeq2 rexbidv elrab2 simprbi breq1 cbvralv breq2 ralbidv syl5bb
      cbvrexv sylibr rabn0 wereu2 syl22anc riotacl2 eqeltrd ) APKNUEZUFZUGZUHZP
      NUIZFUJEUJJUKULZFMUJZDUJZJUKZMNPUMZUNZDHUOZUNZEYGUPZYHEYGUOZXSXTNPUQZOUIZ
      YIXSPXPUGZXTYLURXSXQXPPKXPUSAXRUTZVAZPNORVBVCXSYKVDUGZYLYIURXSYMYPYOXSPVE
      ZYMYPVFXSXPVEZYMYQXPVGZYRNVHYSNORVIVJXPVKVLYOXPPVMVNPNORVOVCVPLYKYAFIUNZE
      IUPYIVDOLUJZYKURZYTYHEIYGUUBIYDMUUAVQZUNZDHUOYGSUUBUUDYFDHUUBYDMUUCYEUUBU
      UCYKVQYEUUAYKWDNPVRVSVTWAWBZUUBYAFIYGUUEVTWCTYHEYGWEWFVCWGXSYHEYGWHZYIYJU
      GXSHJWIZHJWJZYGHWKZYGWLWMZUUFAUUGXRUCWNAUUHXRUDWNUUIXSYFDHWOWRXSYFDHWPZUU
      JXSCUJZGUJZJUKZCYEUNZGHWPZUUKXSPKUGZUUPXSXQKPKXPWQYNVAUUQPWSUGUUPUUNCNBUJ
      ZUMZUNZGHWPUUPBPWSKUURPURZUUTUUOGHUVAUUNCUUSYEUURPNWTVTXAUAXBXCVCYFUUODGH
      YFUULYCJUKZCYEUNYCUUMURZUUOYDUVBMCYEYBUULYCJXDXEUVCUVBUUNCYEYCUUMUULJXFXG
      XHXIXJYFDHXKXJEFHYGJXLXMYHEYGXNVCXO $.

    $( Lemma for ~ ordtype .  (Contributed by Mario Carneiro, 24-Jun-2015.) $)
    ordtypelem4 $p |- ( ph -> O : ( T i^i dom F ) --> A ) $=
      ( va cdm cin wf cres wfn cfv wcel wral wfun wlim tfr1a simpli funres mp1i
      cv funfn sylib dmres fneq2i wa wceq inss1 simpr sseldi fvres syl wbr cima
      wn crab ssrab2 sstri ordtypelem3 eqeltrd ffnfv sylanbrc ordtypelem1 feq1d
      ralrimiva mpbird ) AKNUEZUFZHPUGWFHNKUHZUGZAWGWFUIZUDUSZWGUJZHUKZUDWFULWH
      AWGWGUEZUIZWIAWGUMZWNNUMZWOAWPWEUNNOQUOUPKNUQURWGUTVAWMWFWGNKVBVCVAAWLUDW
      FAWJWFUKZVDZWKWJNUJZHWRWJKUKWKWSVEWRWFKWJKWEVFAWQVGVHWJKNVIVJWRFUSEUSJVKV
      MFMUSDUSJVKMNWJVLULZDHVNZULZEXAVNZHWSXCXAHXBEXAVOWTDHVOVPABCDEFGHIJKLMNOW
      JPQRSTUAUBUCVQVHVRWCUDWFHWGVSVTAWFHPWGABCDEFGHIJKLMNOPQRSTUAUBUCWAWBWD $.

    $( Lemma for ~ ordtype .  (Contributed by Mario Carneiro, 25-Jun-2015.) $)
    ordtypelem5 $p |- ( ph -> ( Ord dom O /\ O : dom O --> A ) ) $=
      ( cdm word wf cin ordtypelem2 wlim wfun tfr1a simpri limord ax-mp sylancl
      ordin wceq wb ordtypelem4 fdm syl ordeq mpbird feq2d jca ) APUDZUEZVFHPUF
      ZAVGKNUDZUGZUEZAKUEVIUEZVKABCDEFGHIJKLMNOPQRSTUAUBUCUHVIUIZVLNUJVMNOQUKUL
      VIUMUNKVIUPUOAVFVJUQZVGVKURAVJHPUFZVNABCDEFGHIJKLMNOPQRSTUAUBUCUSZVJHPUTV
      AZVFVJVBVAVCAVHVOVPAVFVJHPVQVDVCVE $.

    $( Lemma for ~ ordtype .  (Contributed by Mario Carneiro, 24-Jun-2015.) $)
    ordtypelem6 $p |- ( ( ph /\ M e. dom O )
            -> ( N e. M -> ( O ` N ) R ( O ` M ) ) ) $=
      ( va cdm wcel cfv wbr wa cv wral simprr cima crab wn ssrab2 simpr wceq wf
      cin ordtypelem4 fdm adantr eleqtrd ordtypelem3 syldan breq2 ralbidv elrab
      syl sseldi simprbi wfn wb wfun wlim tfr1a simpli funfn mpbi simpri limord
      wss word ax-mp inss2 syl6eqss sselda ordelss sylancr breq1 ralima adantrr
      mpbid fveq2 breq1d rspcv sylc cres ordtypelem1 fveq1d ordtypelem2 syl2anc
      inss1 sseldd fvres eqtrd 3brtr4d expr ) APRUGZUHZQPUHZQRUIZPRUIZJUJAXMXNU
      KZUKZQNUIZPNUIZXOXPJXRXNUFULZNUIZXTJUJZUFPUMZXSXTJUJZAXMXNUNZAXMYDXNAXMUK
      ZMULZXTJUJZMNPUOZUMZYDYGXTYHDULZJUJZMYJUMZDHUPZUHZYKYGFULEULJUJUQFYOUMZEY
      OUPZYOXTYQEYOURAXMPKNUGZVBZUHXTYRUHYGPXLYTAXMUSAXLYTUTZXMAYTHRVAUUAABCDEF
      GHIJKLMNORSTUAUBUCUDUEVCYTHRVDVLZVEVFABCDEFGHIJKLMNOPRSTUAUBUCUDUEVGVHVMY
      PXTHUHYKYNYKDXTHYLXTUTYMYIMYJYLXTYHJVIVJVKVNVLYGNYSVOZPYSWEZYKYDVPNVQZUUC
      UUEYSVRZNOSVSZVTNWAWBYGYSWFZPYSUHUUDUUFUUHUUEUUFUUGWCYSWDWGAXLYSPAXLYTYSU
      UBKYSWHWIWJYSPWKWLYIYCMUFYSPNYHYBXTJWMWNWLWPWOYCYEUFQPYAQUTYBXSXTJYAQNWQW
      RWSWTXRXOQNKXAZUIZXSXRQRUUIARUUIUTXQABCDEFGHIJKLMNORSTUAUBUCUDUEXBVEZXCXR
      QKUHUUJXSUTXRPKQXRKWFZPKUHZPKWEAUULXQABCDEFGHIJKLMNORSTUAUBUCUDUEXDVEAXMU
      UMXNAXLKPAXLYTKUUBKYSXFWIWJWOZKPWKXEYFXGQKNXHVLXIXRXPPUUIUIZXTXRPRUUIUUKX
      CXRUUMUUOXTUTUUNPKNXHVLXIXJXK $.

    $( Lemma for ~ ordtype . ` ran O ` is an initial segment of ` A ` under the
       well-order ` R ` .  (Contributed by Mario Carneiro, 25-Jun-2015.) $)
    ordtypelem7 $p |- ( ( ( ph /\ N e. A ) /\ M e. dom O )
            -> ( ( O ` M ) R N \/ N e. ran O ) ) $=
      ( va vb wcel wa cdm crn cfv wbr wn wi cdif eldif con0 wf wceq ordtypelem4
      cin adantr fdm syl inss1 word ordtypelem2 ordsson syl5ss eqsstrd sseld cv
      wss eleq1 fveq2 breq1d imbi12d imbi2d wral r19.21v wlim wfun tfr1a simpri
      limord ax-mp ordin sylancl ordeq mpbird ordelss sylan sselda pm5.5 eldifn
      ralbidva ad2antlr wfn ad2antrr ffn simprl eleqtrd fnfvelrn syl5ibcom mtod
      wb syl2anc cima crab eldifi simprr cres ordtypelem1 adantrr sseqtrd fveq1
      syl6ss ssel2 fvres sylan9eq anassrs mpbid simpli funfn inss2 breq1 ralima
      mpbi sylancr breq2 ralbidv elrab sylanbrc fveq1d sseldi eqtrd ordtypelem3
      simpll notbid eqeltrd simprbi rspcv sylc wor wwe ffvelrnd sotric syl12anc
      wo weso ioran syl6bb mpbir2and sylbid ex com23 a2i a1i syl5bi tfis3 com3l
      expr mpdd sylan2br impancom orrd orcomd ) AQHUHZUIZPRUJZUHZUIZQRUKZUHZPRU
      LZQJUMZUVMUVOUVQUVJUVOUNZUVLUVQAUVIUVRUVLUVQUOZUVIUVRUIAQHUVNUPUHZUVSQHUV
      NUQAUVTUIZUVLPURUHZUVQUWAUVKURPUWAUVKKNUJZVBZURUWAUWDHRUSZUVKUWDUTZAUWEUV
      TABCDEFGHIJKLMNORSTUAUBUCUDUEVAZVCUWDHRVDZVEZUWAUWDKURKUWCVFZUWAKVGZKURVN
      AUWKUVTABCDEFGHIJKLMNORSTUAUBUCUDUEVHVCZKVIVEVJVKVLUWBUWAUVLUVQUWAUFVMZUV
      KUHZUWMRULZQJUMZUOZUOZUWAUGVMZUVKUHZUWSRULZQJUMZUOZUOZUWAUVSUOUFUGPUWMUWS
      UTZUWQUXCUWAUXEUWNUWTUWPUXBUWMUWSUVKVOUXEUWOUXAQJUWMUWSRVPVQVRVSUWMPUTZUW
      QUVSUWAUXFUWNUVLUWPUVQUWMPUVKVOUXFUWOUVPQJUWMPRVPVQVRVSUXDUGUWMVTUWAUXCUG
      UWMVTZUOZUWMURUHZUWRUWAUXCUGUWMWAUXHUWRUOUXIUWAUXGUWQUWAUWNUXGUWPUWAUWNUX
      GUWPUOUWAUWNUIZUXGUXBUGUWMVTZUWPUXJUXCUXBUGUWMUXJUWSUWMUHZUIUWTUXCUXBXGUX
      JUWMUVKUWSUWAUVKVGZUWNUWMUVKVNZUWAUXMUWDVGZUWAUWKUWCVGZUXOUWLUWCWBZUXPNWC
      ZUXQNOSWDZWEUWCWFWGKUWCWHWIUWAUWFUXMUXOXGUWIUVKUWDWJVEWKUVKUWMWLWMZWNUWTU
      XBWOVEWQUWAUWNUXKUWPUWAUWNUXKUIZUIZUWPUWOQUTZUNZQUWOJUMZUNZUYBUYCUVOUVTUV
      RAUYAQHUVNWPWRUYBUWOUVNUHZUYCUVOUYBRUWDWSZUWMUWDUHZUYGUYBUWEUYHAUWEUVTUYA
      UWGWTZUWDHRXAVEUYBUWMUVKUWDUWAUWNUXKXBUYBUWEUWFUYJUWHVEZXCZUWDUWMRXDXHUWO
      QUVNVOXEXFUYBQMVMZDVMZJUMZMNUWMXIZVTZDHXJZUHZFVMZUWOJUMZUNZFUYRVTZUYFUYBU
      VIUYMQJUMZMUYPVTZUYSUVTUVIAUYAQHUVNXKWRZUYBVUEUWSNULZQJUMZUGUWMVTZUYBUXKV
      UIUWAUWNUXKXLUYBRNKXMZUTZUWMKVNZUXKVUIXGAVUKUVTUYAABCDEFGHIJKLMNORSTUAUBU
      CUDUEXNWTZUYBUWMUWDKUYBUWMUVKUWDUWAUWNUXNUXKUXTXOUYKXPZUWJXRVUKVULUIZUXBV
      UHUGUWMVUOUXLUIUXAVUGQJVUKVULUXLUXAVUGUTVUKVULUXLUIZUXAUWSVUJULZVUGUWSRVU
      JXQVUPUWSKUHVUQVUGUTUWMKUWSXSUWSKNXTVEYAYBVQWQXHYCUYBNUWCWSZUWMUWCVNVUEVU
      IXGUXRVURUXRUXQUXSYDNYEYIUYBUWMUWDUWCVUNKUWCYFXRVUDVUHMUGUWCUWMNUYMVUGQJY
      GYHYJWKUYQVUEDQHUYNQUTUYOVUDMUYPUYNQUYMJYKYLYMYNUYBUWOUYTEVMZJUMZUNZFUYRV
      TZEUYRXJZUHZVUCUYBUWOUWMNULZVVCUYBUWOUWMVUJULZVVEUYBUWMRVUJVUMYOUYBUWMKUH
      VVFVVEUTUYBUWDKUWMUWJUYLYPUWMKNXTVEYQUYBAUYIVVEVVCUHAUVTUYAYSUYLABCDEFGHI
      JKLMNOUWMRSTUAUBUCUDUEYRXHUUAVVDUWOUYRUHVUCVVBVUCEUWOUYRVUSUWOUTZVVAVUBFU
      YRVVGVUTVUAVUSUWOUYTJYKYTYLYMUUBVEVUBUYFFQUYRUYTQUTVUAUYEUYTQUWOJYGYTUUCU
      UDUYBUWPUYCUYEUUJUNZUYDUYFUIUYBHJUUEZUWOHUHUVIUWPVVHXGAVVIUVTUYAAHJUUFVVI
      UDHJUUKVEWTUYBUWDHUWMRUYJUYLUUGVUFHUWOQJUUHUUIUYCUYEUULUUMUUNUVCUUOUUPUUQ
      UURUUSUUTUVAUVBUVDUVEYBUVFUVGUVH $.

    $( Lemma for ~ ordtype .  (Contributed by Mario Carneiro, 25-Jun-2015.) $)
    ordtypelem8 $p |- ( ph -> O Isom _E , R ( dom O , ran O ) ) $=
      ( va vb cdm cep wor crn wpo wfo cv wbr cfv wi wral wiso con0 wss cin wceq
      wf ordtypelem4 fdm syl word ordtypelem2 ordsson syl5ss eqsstrd wwe epweon
      inss1 weso ax-mp soss mpisyl frn wess sylc sopo 3syl wfun ffun sylib wcel
      funforn wa epel ordtypelem6 syl5bi ralrimiva ralrimivw soisoi syl22anc )
      APUFZUGUHZPUIZJUJZWPWRPUKZUDULZUEULZUGUMZXAPUNXBPUNJUMZUOZUEWPUPZUDWPUPWP
      WRUGJPUQAWPURUSURUGUHZWQAWPKNUFZUTZURAXIHPVBZWPXIVAABCDEFGHIJKLMNOPQRSTUA
      UBUCVCZXIHPVDVEAXIKURKXHVMAKVFKURUSABCDEFGHIJKLMNOPQRSTUAUBUCVGKVHVEVIVJU
      RUGVKXGVLURUGVNVOWPURUGVPVQAWRJVKZWRJUHWSAWRHUSZHJVKXLAXJXMXKXIHPVRVEUBWR
      HJVSVTWRJVNWRJWAWBAPWCZWTAXJXNXKXIHPWDVEPWGWEAXFUDWPAXEUEWPXCXAXBWFAXBWPW
      FWHXDUDUEWIABCDEFGHIJKLMNOXBXAPQRSTUAUBUCWJWKWLWMUDUEWPWRUGJPWNWO $.

    ${
      ordtypelem9.1 $e |- ( ph -> O e. _V ) $.
      $( Lemma for ~ ordtype .  Either the function ` OrdIso ` is an
         isomorphism onto all of ` A ` , or ` OrdIso ` is not a set, which by
         ~ oif implies that either ` ran O C_ A ` is a proper class or
         ` dom O = On ` .  (Contributed by Mario Carneiro, 25-Jun-2015.) $)
      ordtypelem9 $p |- ( ph -> O Isom _E , R ( dom O , A ) ) $=
        ( vb vm vc va cdm crn cep wiso ordtypelem8 wceq cin wss ordtypelem4 frn
        wb wf syl cv wcel wa cfv wn wrex wral cima word ordtypelem2 ordirr con0
        wbr wlim wfun tfr1a simpri limord ax-mp cres ordtypelem1 eqeltrrd tfr2b
        cvv mpbird ordelon sylancr raleqdv rexbidv crab weq breq1 cbvralv breq2
        imaeq2 ralbidv syl5bb cbvrexv cbvrabv eqtri elrab2 baib ralnex r19.21bi
        mtbid sylibr rneqd df-ima syl6eqr adantr ffun funfn sylib bitr3d rexnal
        wfn ralrn ordtypelem7 ord rexlimdva mpd ex ssrdv eqssd isoeq5 mpbid ) A
        PUIZPUJZUKJPULZYHHUKJPULZABCDEFGHIJKLMNOPQRSTUAUBUCUMAYIHUNYJYKUSAYIHAK
        NUIZUOZHPUTZYIHUPABCDEFGHIJKLMNOPQRSTUAUBUCUQZYMHPURVAAUEHYIAUEVBZHVCZY
        PYIVCZAYQVDZUFVBZPVEZYPJVNZVFZUFYHVGZYRYSUUBUFYHVHZVFUUDYSUGVBZYPJVNZUG
        NKVIZVHZUUEAUUIVFZUEHAUUIUEHVGZVFUUJUEHVHAKKVCZUUKAKVJZUULVFABCDEFGHIJK
        LMNOPQRSTUAUBUCVKZKVLVAAKVMVCZUULUUKUSAYLVJZKYLVCZUUOYLVOZUUPNVPUURNOQV
        QVRYLVSVTAUUQNKWAZWEVCZAPUUSWEABCDEFGHIJKLMNOPQRSTUAUBUCWBZUDWCAUUMUUQU
        UTUSUUNKNOQWDVAWFYLKWGWHUULUUOUUKUUGUGNUHVBZVIZVHZUEHVGZUUKUHKVMKUVBKUN
        ZUVDUUIUEHUVFUUGUGUVCUUHUVBKNWPWIWJKCVBZGVBZJVNZCNBVBZVIZVHZGHVGZBVMWKU
        VEUHVMWKTUVMUVEBUHVMUVMUUGUGUVKVHZUEHVGBUHWLZUVEUVLUVNGUEHUVLUUFUVHJVNZ
        UGUVKVHGUEWLZUVNUVIUVPCUGUVKUVGUUFUVHJWMWNUVQUVPUUGUGUVKUVHYPUUFJWOWQWR
        WSUVOUVNUVDUEHUVOUUGUGUVKUVCUVJUVBNWPWIWJWRWTXAXBXCVAXFUUIUEHXDXGXEYSUU
        GUGYIVHZUUIUUEYSUUGUGYIUUHAYIUUHUNYQAYIUUSUJUUHAPUUSUVAXHNKXIXJXKWIYSPY
        HXQZUVRUUEUSAUVSYQAPVPZUVSAYNUVTYOYMHPXLVAPXMXNXKUUGUUBUGUFYHPUUFUUAYPJ
        WMXRVAXOXFUUBUFYHXPXGYSUUCYRUFYHYSYTYHVCVDUUBYRABCDEFGHIJKLMNOYTYPPQRST
        UAUBUCXSXTYAYBYCYDYEYHYIHUKJPYFVAYG $.
    $}

    $( Lemma for ~ ordtype .  Using ~ ax-rep , exclude the possibility that
       ` O ` is a proper class and does not enumerate all of ` A ` .
       (Contributed by Mario Carneiro, 25-Jun-2015.) $)
    ordtypelem10 $p |- ( ph -> O Isom _E , R ( dom O , A ) ) $=
      ( vb vc vm cdm crn cep wiso ordtypelem8 wb cin wf wss ordtypelem4 frn syl
      wceq cv wcel wa simprl wf1o wfo wwe adantr wse cvv isof1o f1of 3syl f1of1
      wf1 wbr crab simpl seex syl2an wral cfv wrex rexnal ordtypelem7 rexlimdva
      ord syl5bir con1d impr wfn wfun ffun funfn sylib breq1 ralrn mpbird ssrab
      wn sylanbrc ssexd f1dmex syl2anc fex ordtypelem9 f1ofo forn 4syl eleqtrrd
      expr pm2.18d ex ssrdv eqssd isoeq5 mpbid ) APUGZPUHZUIJPUJZXQHUIJPUJZABCD
      EFGHIJKLMNOPQRSTUAUBUCUKAXRHUSZXSXTULAXRHAKNUGUMZHPUNZXRHUOZABCDEFGHIJKLM
      NOPQRSTUAUBUCUPZYBHPUQURZAUDHXRAUDUTZHVAZYGXRVAZAYHVBZYIAYHYIWSZYIAYHYKVB
      ZVBZYGHXRAYHYKVCYMXTXQHPVDXQHPVEYAYMBCDEFGHIJKLMNOPQRSTUAAHJVFYLUBVGZAHJV
      HZYLUCVGZYMXQXRPUNZXQVIVAZPVIVAYMXSXQXRPVDZYQYMBCDEFGHIJKLMNOPQRSTUAYNYPU
      KZXQXRUIJPVJZXQXRPVKVLYMXQXRPVNZXRVIVAYRYMXSYSUUBYTUUAXQXRPVMVLYMXRUEUTZY
      GJVOZUEHVPZVIAYOYHUUEVIVAYLUCYHYKVQUEHYGJVRVSYMYDUUDUEXRVTZXRUUEUOAYDYLYF
      VGYMUUFUFUTZPWAZYGJVOZUFXQVTZAYHYKUUJYJUUJYIUUJWSUUIWSZUFXQWBYJYIUUIUFXQW
      CYJUUKYIUFXQYJUUGXQVAVBUUIYIABCDEFGHIJKLMNOUUGYGPQRSTUAUBUCWDWFWEWGWHWIYM
      PXQWJZUUFUUJULAUULYLAPWKZUULAYCUUMYEYBHPWLURPWMWNVGUUDUUIUEUFXQPUUCUUHYGJ
      WOWPURWQUUDUEHXRWRWTXAXQXRVIPXBXCXQXRVIPXDXCXEXQHUIJPVJXQHPXFXQHPXGXHXIXJ
      XKXLXMXNXQXRHUIJPXOURXP $.
  $}

  ${
    $d t u v x F $.  $d h j t u v w x z M $.  $d f h i j r s t u v w x y z R $.
    $d f h j r s t u v w x y z A $.  $d j u w N $.
    oicl.1 $e |- F = OrdIso ( R , A ) $.
    $( Definition of the ordinal isomorphism when its arguments are not
       meaningful.  (Contributed by Mario Carneiro, 25-Jun-2015.) $)
    oi0 $p |- ( -. ( R We A /\ R Se A ) -> F = (/) ) $=
      ( vh vu vv vj vw vz vt vx wwe wse wn cv wbr wral crab c0 wa cvv crio cmpt
      crn crecs cima wrex con0 cres cif coi df-oi eqtri iffalse syl5eq ) ABMABN
      UAZOCUQEUBFPGPBQOFHPIPBQHEPUERIASZRGURUCUDUFZJPKPBQJUSLPUGRKAUHLUISUJZTUK
      ZTCABULVADLJIGFKABEHUMUNUQUTTUOUP $.

    $( The order type of the well-order ` R ` on ` A ` is an ordinal.
       (Contributed by Mario Carneiro, 23-May-2015.)  (Revised by Mario
       Carneiro, 25-Jun-2015.) $)
    oicl $p |- Ord dom F $=
      ( vx vz vw vv vu vt vj vh vf vr vs cv wbr wral eqid c0 vi vy wwe wse word
      wa cdm wf crn crab cvv wn crio cmpt crecs cima wrex con0 ordtypecbv simpl
      simpr ordtypelem5 simpld ord0 wceq oi0 dmeqd dm0 syl6eq ordeq syl pm2.61i
      wb mpbiri ) ABUCZABUDZUFZCUGZUEZVQVSVRACUHVQEFGHIJAKPGPBQKLPUIRGAUJZBFPJP
      BQFMUKNPOPBQULNUAPUBPBQUAMPUIRUBAUJZROWAUMUNUOZEPUPRJAUQEURUJZLKWBLUKIPHP
      BQULIVTRHVTUMUNZCUBGHIAVTBMLUAKWDUOZWDONWESVTSZWDSZUSWFWGWCSDVOVPUTVOVPVA
      VBVCVQULZVSTUEZVDWHVRTVEVSWIVMWHVRTUGTWHCTABCDVFVGVHVIVRTVJVKVNVL $.

    $( The order isomorphism of the well-order ` R ` on ` A ` is a function.
       (Contributed by Mario Carneiro, 23-May-2015.) $)
    oif $p |- F : dom F --> A $=
      ( vx vz vw vv vu vt vj vh vf vr vs cv wbr wral eqid c0 vi vy wwe wse word
      wa cdm wf crn crab cvv wn crio cmpt crecs cima wrex con0 ordtypecbv simpl
      simpr ordtypelem5 simprd f0 oi0 dmeqd dm0 syl6eq feq12d mpbiri pm2.61i )
      ABUCZABUDZUFZCUGZACUHZVNVOUEVPVNEFGHIJAKPGPBQKLPUIRGAUJZBFPJPBQFMUKNPOPBQ
      ULNUAPUBPBQUAMPUIRUBAUJZROVRUMUNUOZEPUPRJAUQEURUJZLKVSLUKIPHPBQULIVQRHVQU
      MUNZCUBGHIAVQBMLUAKWAUOZWAONWBSVQSZWASZUSWCWDVTSDVLVMUTVLVMVAVBVCVNULZVPT
      ATUHAVDWEVOTACTABCDVEZWEVOTUGTWECTWFVFVGVHVIVJVK $.

    $( The order isomorphism of the well-order ` R ` on ` A ` is an isomorphism
       onto ` ran O ` (which is a subset of ` A ` by ~ oif ).  (Contributed by
       Mario Carneiro, 25-Jun-2015.) $)
    oiiso2 $p |- ( ( R We A /\ R Se A ) -> F Isom _E , R ( dom F , ran F ) ) $=
      ( vx vz vw vv vu vt vj vh vf vr vs vi cv wbr wral eqid vy wwe wse wa crab
      crn cvv crio cmpt crecs cima wrex con0 ordtypecbv simpl simpr ordtypelem8
      wn ) ABUBZABUCZUDEFGHIJAKQGQBRKLQUFSGAUEZBFQJQBRFMUGNQOQBRURNPQUAQBRPMQUF
      SUAAUEZSOVBUHUIUJZEQUKSJAULEUMUEZLKVCLUGIQHQBRURIVASHVAUHUIZCUAGHIAVABMLP
      KVEUJZVEONVFTVATZVETZUNVGVHVDTDUSUTUOUSUTUPUQ $.

    $( For any set-like well-ordered class, there is an isomorphic ordinal
       number called its order type.  (Contributed by Jeff Hankins,
       17-Oct-2009.)  (Revised by Mario Carneiro, 25-Jun-2015.) $)
    ordtype $p |- ( ( R We A /\ R Se A ) -> F Isom _E , R ( dom F , A ) ) $=
      ( vx vz vw vv vu vt vj vh vf vr vs vi cv wbr wral eqid vy wwe wse wa crab
      crn wn crio cmpt crecs cima wrex con0 ordtypecbv simpl simpr ordtypelem10
      cvv ) ABUBZABUCZUDEFGHIJAKQGQBRKLQUFSGAUEZBFQJQBRFMURNQOQBRUGNPQUAQBRPMQU
      FSUAAUEZSOVBUHUIUJZEQUKSJAULEUMUEZLKVCLURIQHQBRUGIVASHVAUHUIZCUAGHIAVABML
      PKVEUJZVEONVFTVATZVETZUNVGVHVDTDUSUTUOUSUTUPUQ $.

    $( ` ran F ` is an initial segment of ` A ` under the well-order ` R ` .
       (Contributed by Mario Carneiro, 26-Jun-2015.) $)
    oiiniseg $p |- ( ( ( R We A /\ R Se A ) /\ ( N e. A /\ M e. dom F ) )
            -> ( ( F ` M ) R N \/ N e. ran F ) ) $=
      ( vx vz vw vv vu vt vj vh vf vr wbr cv wral eqid vs vi vy wwe wse wa wcel
      cdm cfv crn wo crab crio cmpt crecs cima wrex con0 ordtypecbv simpl simpr
      cvv wn ordtypelem7 anasss ) ABUDZABUEZUFZEAUGDCUHUGDCUIEBQECUJUGUKVHGHIJK
      LAMRIRBQMNRUJSIAULZBHRLRBQHOVBPRUARBQVCPUBRUCRBQUBORUJSUCAULZSUAVJUMUNUOZ
      GRUPSLAUQGURULZNMVKNVBKRJRBQVCKVISJVIUMUNZDECUCIJKAVIBONUBMVMUOZVMUAPVNTV
      ITZVMTZUSVOVPVLTFVFVGUTVFVGVAVDVE $.

    $( For any set-like well-ordered class, if the order isomorphism exists (is
       a set), then it maps some ordinal onto ` A ` isomorphically.  Otherwise,
       ` F ` is a proper class, which implies that either ` ran F C_ A ` is a
       proper class or ` dom F = On ` .  This weak version of ~ ordtype does
       not require the Axiom of Replacement.  (Contributed by Mario Carneiro,
       25-Jun-2015.) $)
    ordtype2 $p |- ( ( R We A /\ R Se A /\ F e. _V )
           -> F Isom _E , R ( dom F , A ) ) $=
      ( vx vz vw vv vu vt vj vh vf vr vs vi cv wbr wral eqid vy wwe wse cvv w3a
      wcel crn crab crio cmpt crecs cima wrex con0 ordtypecbv simp1 simp2 simp3
      wn ordtypelem9 ) ABUBZABUCZCUDUFZUEEFGHIJAKQGQBRKLQUGSGAUHZBFQJQBRFMUDNQO
      QBRUSNPQUAQBRPMQUGSUAAUHZSOVEUIUJUKZEQULSJAUMEUNUHZLKVFLUDIQHQBRUSIVDSHVD
      UIUJZCUAGHIAVDBMLPKVHUKZVHONVITVDTZVHTZUOVJVKVGTDVAVBVCUPVAVBVCUQVAVBVCUR
      UT $.

    $( The order isomorphism on a set is a set.  (Contributed by Mario
       Carneiro, 25-Jun-2015.) $)
    oiexg $p |- ( A e. V -> F e. _V ) $=
      ( wcel wwe wse cvv cdm wf1 cep wiso wf1o ordtype isof1o f1of1 3syl f1dmex
      wa wf f1f fex sylan syldan expcom syl5 wn c0 oi0 0ex syl6eqel pm2.61d1 )
      ADFZABGABHTZCIFZUOCJZACKZUNUPUOUQALBCMUQACNURABCEOUQALBCPUQACQRURUNUPURUN
      UQIFZUPUQADCSURUQACUAUSUPUQACUBUQAICUCUDUEUFUGUOUHCUIIABCEUJUKULUM $.

    $( The order type of the well-order ` R ` on ` A ` is an ordinal.
       (Contributed by Stefan O'Rear, 11-Feb-2015.)  (Revised by Mario
       Carneiro, 23-May-2015.) $)
    oion $p |- ( A e. V -> dom F e. On ) $=
      ( wcel cdm con0 word oicl cvv wb oiexg dmexg elong 3syl mpbiri ) ADFZCGZH
      FZSIZABCEJRCKFSKFTUALABCDEMCKNSKOPQ $.

    $( The order isomorphism of the well-order ` R ` on ` A ` is an
       isomorphism.  (Contributed by Mario Carneiro, 23-May-2015.) $)
    oiiso $p |- ( ( A e. V /\ R We A ) -> F Isom _E , R ( dom F , A ) ) $=
      ( wcel wse wwe cdm cep wiso exse ordtype ancoms sylan ) ADFABGZABHZCIAJBC
      KZABDLQPRABCEMNO $.

    $( The order type of a well-ordered set is equinumerous to the set.
       (Contributed by Mario Carneiro, 23-May-2015.) $)
    oien $p |- ( ( A e. V /\ R We A ) -> dom F ~~ A ) $=
      ( wcel wwe wa cvv cdm wf1o cen wbr oiexg adantr cep wiso oiiso isof1o syl
      f1oen3g syl2anc ) ADFZABGZHZCIFZCJZACKZUGALMUCUFUDABCDENOUEUGAPBCQUHABCDE
      RUGAPBCSTUGACIUAUB $.

    $( Uniqueness of the unique ordinal isomorphism.  (Contributed by Mario
       Carneiro, 23-May-2015.)  (Revised by Mario Carneiro, 25-Jun-2015.) $)
    oieu $p |- ( ( R We A /\ R Se A ) ->
      ( ( Ord B /\ G Isom _E , R ( B , A ) ) <-> ( B = dom F /\ G = F ) ) ) $=
      ( wwe wse wa word cep wiso cdm wceq ccnv adantr syl a1i wb isoeq4 ordtype
      ccom simprr isocnv isotr syl2anc oicl ordiso2 syl3anc ordwe ad2antrl epse
      simprl mpbird weisoeq syl22anc jca ex jctil ordeq isoeq1 sylan9bb anbi12d
      syl5ibrcom impbid ) ACGACHIZBJZBAKCELZIZBDMZNZEDNZIZVFVIVMVFVIIZVKVLVNBVJ
      KKDOZEUBZLZVGVJJZVKVNVHAVJCKVOLZVQVFVGVHUCZVNVJAKCDLZVSVFWAVIACDFUAZPZVJA
      KCDUDQBAVJKCKVOEUEUFVFVGVHUMVRVNACDFUGZRBVJVPUHUIZVNBKGZBKHZVHBAKCDLZVLVG
      WFVFVHBUJUKWGVNBULRVTVNWHWAWCVNVKWHWASWEBAVJKCDTQUNBAKCEDUOUPUQURVFVIVMVR
      WAIVFWAVRWBWDUSVMVGVRVHWAVKVGVRSVLBVJUTPVKVHVJAKCELVLWABAVJKCETVJAKCDEVAV
      BVCVDVE $.
  $}

  ${
    $d x y A $.  $d x y F $.
    oismo.1 $e |- F = OrdIso ( _E , A ) $.
    $( When ` A ` is a subclass of ` On ` , ` F ` is a strictly monotone
       ordinal functions, and it is also complete (it is an isomorphism onto
       all of ` A ` ).  The proof avoids ~ ax-rep (the second statement is
       trivial under ~ ax-rep ).  (Contributed by Mario Carneiro,
       26-Jun-2015.) $)
    oismo $p |- ( A C_ On -> ( Smo F /\ ran F = A ) ) $=
      ( vx vy con0 wss wfo wa cep wiso wwe wf sylancr a1i wcel cvv mp1i syl3anc
      cv wsmo crn wceq cdm wse epweon wess mpi epse oiiso2 sylancl word wb oicl
      oif frn ax-mp id syl5ss smoiso2 mpbird simprd simprl wf1o adantr wfn wral
      wn cfv ffn wbr simplrr wo ad2antrr simplrl oiiniseg syl22anc ord mt3d vex
      simpr epelc sylib ralrimiva ffnfv sylanbrc smogt wi ordelon simpll sseldd
      ontr2 syl2anc mp2and ssrdv ssexd fex2 ordtype2 isof1o f1ofo forn eleqtrrd
      ex 4syl expr pm2.18d eqssd jca ) AFGZBUAZBUBZAUCZXIBUDZXKBHZXJXIXNXJIZXMX
      KJJBKZXIAJLZAJUEZXPXIFJLXQUFAFJUGUHZAUIZAJBCUJUKXIXMULZXKFGXOXPUMAJBCUNZX
      IXKAFXMABMZXKAGZAJBCUOZXMABUPUQZXIURUSXMXKBUTNVAVBZXIXKAYDXIYFOXIDAXKXIDT
      ZAPZYHXKPZXIYIIYJXIYIYJVHZYJXIYIYKIZIZYHAXKXIYIYKVCZYMXMAJJBKZXMABVDXMABH
      XLYMXQXRBQPZYOXIXQYLXSVEXRYMXTOYMXMYHBMZXMQPYIYPYMBXMVFZETZBVIZYHPZEXMVGY
      QYCYRYMYEXMABVJZRYMUUAEXMYMYSXMPZIZYTYHJVKZUUAUUDUUEYJXIYIYKUUCVLUUDUUEYJ
      UUDXQXRYIUUCUUEYJVMXIXQYLUUCXSVNXRUUDXTOXIYIYKUUCVOZYMUUCWAZAJBYSYHCVPVQV
      RVSYTYHDVTWBWCZWDEXMYHBWEWFYMXMYHAYNYMEXMYHYMUUCYSYHPZUUDYSYTGZUUAUUIUUDY
      RXJUUCUUJYCYRUUDYEUUBRXIXJYLUUCYGVNUUGXMYSBWGSUUHUUDYSFPZYHFPUUJUUAIUUIWH
      UUDYAUUCUUKYBUUGXMYSWINUUDAFYHXIYLUUCWJUUFWKYSYTYHWLWMWNXCWOWPYNXMYHBQAWQ
      SAJBCWRSXMAJJBWSXMABWTXMABXAXDXBXEXFXCWOXGXH $.
  $}

  $( The order type of an ordinal under the ` e. ` order is itself, and the
     order isomorphism is the identity function.  (Contributed by Mario
     Carneiro, 26-Jun-2015.) $)
  oiid $p |- ( Ord A -> OrdIso ( _E , A ) = ( _I |` A ) ) $=
    ( word cep wwe wse coi wiso cid cres wceq ordwe epse a1i cdm crn eqid mpbid
    wb syl syl3anc oiiso2 sylancl wsmo con0 wa ordsson oismo simprd isoeq5 oicl
    wss id ordiso2 isoeq4 weniso ) ABZACDZACEZAACCACFZGZUSHAIJAKZURUPALZMUPUSNZ
    ACCUSGZUTUPVCUSOZCCUSGZVDUPUQURVFVAVBACUSUSPZUAUBUPVEAJZVFVDRUPUSUCZVHUPAUD
    UKVIVHUEAUFAUSVGUGSUHVCVEACCUSUISQZUPVCAJZVDUTRUPVDVCBZUPVKVJVLUPACUSVGUJMU
    PULVCAUSUMTVCAACCUSUNSQACUSUOT $.

  ${
    $d f s t w y z $.  $d f r x y A $.  $d r x R $.  $d r y V $.
    hartogslem.2 $e |- F = { <. r , y >. |
       ( ( ( dom r C_ A /\ ( _I |` dom r ) C_ r /\ r C_ ( dom r X. dom r ) ) /\
         ( r \ _I ) We dom r ) /\ y = dom OrdIso ( ( r \ _I ) , dom r ) ) } $.
    hartogslem.3 $e |- R = { <. s , t >. | E. w e. y E. z e. y
       ( ( s = ( f ` w ) /\ t = ( f ` z ) ) /\ w _E z ) } $.
    $( Lemma for ~ hartogs .  (Contributed by Mario Carneiro, 14-Jan-2013.)
       (Revised by Mario Carneiro, 15-May-2015.) $)
    hartogslem1 $p |- ( dom F C_ ~P ( A X. A ) /\ Fun F /\
      ( A e. V -> ran F = { x e. On | x ~<_ A } ) ) $=
      ( wss wceq cid wa syl cep cdm cxp cpw wfun wcel crn cv cdom wbr con0 crab
      cres w3a cdif wwe coi wex cab copab dmeqi dmopab eqtri simp3 simp1 xpss12
      syl2anc sstrd selpw sylibr ad2antrr exlimiv abssi eqsstri funopab4 funeqi
      wi mpbir breq1 elrab wf1 brdomi cun cin f1f adantl resss ssun2 sstri wf1o
      wf frn f1oi f1of fssxp mp2b ssini inss2 3jca word eloni ordwe adantr wiso
      a1i wb cfv f1f1orn f1oiso sylancl isores2 sylib isowe mpbid c0 wn wal wor
      wrex weso brel simpld sonr syl2an pm2.01da alrimiv weeq1 cvv ax-mp mpbiri
      vex eqid dmss sseq12d indif1 anbi12d ex exlimdv imp sylan2 cen intirr wse
      disj3 isoeq3 rnex exse oieu mpbi2and xpex inex2 sseq1 dmxpid dmresi sseq2
      syl6sseq syl5eqssr eqssd sseq1d reseq2d id 3anbi123d difeq1 difun2 ineq1i
      sqxpeqd 3eqtr3i syl6eq weeq2 bitrd oieq1 oieq2 eqtrd dmeqd spcev syl21anc
      eqeq2d simpr dmex oion simplr oien sylancr eqbrtrd simpll1 ssdomg endomtr
      syl6eqel jca impbid2 syl5bb abbi2dv rneqi rnopab syl6reqr 3pm3.2i ) IUAZF
      FUBZUCZOIUDZFJUEZIUFZAUGZFUHUIZAUJUKZPVPUWPLUGZUAZFOZQUXFULZUXEOZUXEUXFUX
      FUBZOZUMZUXFUXEQUNZUOZRZBUGZUXFUXMUPZUAZPZRZBUQZLURZUWRUWPUXTLBUSZUAUYBIU
      YCMUTUXTLBVAVBUYALUWRUXTUXEUWRUEZBUXLUYDUXNUXSUXLUXEUWQOUYDUXLUXEUXJUWQUX
      GUXIUXKVCUXLUXGUXGUXJUWQOUXGUXIUXKVDZUYEUXFFUXFFVEVFVGLUWQVHVIVJVKVLVMUWS
      UYCUDUXOLBUXRVNIUYCMVOVQUWTUXDUXTLUQZBURZUXAUWTUYFBUXDUXPUXDUEUXPUJUEZUXP
      FUHUIZRZUWTUYFUXCUYIAUXPUJUXBUXPFUHVRVSUWTUYJUYFUYIUYHUXPFHUGZVTZHUQZUYFU
      XPFHWAUYHUYMUYFUYHUYLUYFHUYHUYLUYFUYHUYLRZUYKUFZFOZQUYOULZGQWBZUYOUYOUBZW
      CZOZUYTUYSOZUMZUYOGUYSWCZQUNZUOZUXPUYOVUEUPZUAZPZUYFUYNUYPVUAVUBUYNUXPFUY
      KWJZUYPUYLVUJUYHUXPFUYKWDWEUXPFUYKWKSVUAUYNUYQUYRUYSUYQQUYRQUYOWFQGWGWHUY
      OUYOUYQWIUYOUYOUYQWJUYQUYSOUYOWLUYOUYOUYQWMUYOUYOUYQWNWOWPZXDVUBUYNUYRUYS
      WQZXDWRUYNUYOVUDUOZVUFUYNUXPTUOZVUMUYHVUNUYLUYHUXPWSZVUNUXPWTZUXPXASXBUYN
      UXPUYOTVUDUYKXCZVUNVUMXEUYNUXPUYOTGUYKXCZVUQUYNUXPUYOUYKWIZGKUGDUGZUYKXFP
      EUGCUGZUYKXFPRVUTVVATUIRCUXPXRDUXPXRKEUSPVURUYLVUSUYHUXPFUYKXGWENDCKEUXPU
      YOTGUYKXHXIUXPUYOTGUYKXJXKZUXPUYOTVUDUYKXLSXMZUYNVUDVUEPZVUMVUFXEUYNVUDQW
      CXNPZVVDUYNUXBUXBVUDUIZXOZAXPVVEUYNVVGAUYNVVFUYNUYOVUDXQZUXBUYOUEZVVGVVFU
      YNVUMVVHVVCUYOVUDXSSVVFVVIVVIUXBUXBUYOUYOVUDGUYSWQXTYAUYOUXBVUDYBYCYDYEAV
      UDUUAVIVUDQUUCXKZUYOVUDVUEYFSXMZUYNVUIUYKVUGPZUYNVUOUXPUYOTVUEUYKXCZVUIVV
      LRZUYHVUOUYLVUPXBUYNVUQVVMVVBUYNVVDVUQVVMXEVVJUXPUYOTVUDVUEUYKUUDSXMUYNVU
      FUYOVUEUUBZVUOVVMRVVNXEVVKUYOYGUEVVOUYKHYJUUEZUYOVUEYGUUFYHUYOUXPVUEVUGUY
      KVUGYKUUGXIUUHYAUXTVUCVUFRZVUIRLUYTUYSUYRUYOUYOVVPVVPUUIUUJUXEUYTPZUXOVVQ
      UXSVUIVVRUXLVUCUXNVUFVVRUXGUYPUXIVUAUXKVUBVVRUXFUYOFVVRUXFUYOVVRUXFUYSUAZ
      UYOVVRUXEUYSOZUXFVVSOVVRVVTVUBVULUXEUYTUYSUUKYIUXEUYSYLSUYOUULUUOVVRUYOUY
      QUAZUXFUYOUUMVVRUYQUXEOZVWAUXFOVVRVWBVUAVUKUXEUYTUYQUUNYIUYQUXEYLSUUPUUQZ
      UURVVRUXHUYQUXEUYTVVRUXFUYOQVWCUUSVVRUUTZYMVVRUXEUYTUXJUYSVWDVVRUXFUYOVWC
      UVEYMUVAVVRUXNUXFVUEUOZVUFVVRUXMVUEPZUXNVWEXEVVRUXMUYTQUNZVUEUXEUYTQUVBUY
      RQUNZUYSWCGQUNZUYSWCVWGVUEVWHVWIUYSGQUVCUVDUYRUYSQYNGUYSQYNUVFUVGZUXFUXMV
      UEYFSVVRUXFUYOPZVWEVUFXEVWCUXFUYOVUEUVHSUVIYOVVRUXRVUHUXPVVRUXQVUGVVRUXQU
      XFVUEUPZVUGVVRVWFUXQVWLPVWJUXFUXMVUEUVJSVVRVWKVWLVUGPVWCUXFUYOVUEUVKSUVLU
      VMUVPYOUVNUVOYPYQYRYSUWTUXTUYJLUWTUXTUYJUWTUXTRZUYHUYIUXTUYHUWTUXTUXPUXRU
      JUXOUXSUVQZUXFYGUEZUXRUJUEUXELYJUVRZUXFUXMUXQYGUXQYKZUVSYHUWGWEVWMUXPUXFY
      TUIZUXFFUHUIZUYIUXTVWRUWTUXTUXPUXRUXFYTVWNUXTVWOUXNUXRUXFYTUIVWPUXLUXNUXS
      UVTUXFUXMUXQYGVWQUWAUWBUWCWEUXTUWTUXGVWSUXGUXIUXKUXNUXSUWDUWTUXGVWSUXFFJU
      WEYRYSUXPUXFFUWFVFUWHYPYQUWIUWJUWKUXAUYCUFUYGIUYCMUWLUXTLBUWMVBUWNUWO $.

    $( Lemma for ~ hartogs .  (Contributed by Mario Carneiro, 14-Jan-2013.) $)
    hartogslem2 $p |- ( A e. V -> { x e. On | x ~<_ A } e. _V ) $=
      ( wcel crn cv cvv syl sylancr cdom wbr con0 crab cdm cxp cpw wfun wceq wi
      hartogslem1 simp3i simp2i simp1i sqxpexg pwexg ssexg funex rnexg eqeltrrd
      wss ) FJOZIPZAQFUAUBAUCUDZRIUEZFFUFZUGZVAZIUHZVBVCVDUIUJZABCDEFGHIJKLMNUK
      ZULVBIROZVCROVBVIVEROZVLVHVIVJVKUMVBVHVGROZVMVHVIVJVKUNVBVFROVNFJUOVFRUPS
      VEVGRUQTRIURTIRUSSUT $.
  $}

  ${
    $d g r s t w x y z $.  $d g r x y z A $.  $d r y V $.
    $( Given any set, the Hartogs number of the set is the least ordinal not
       dominated by that set.  This theorem proves that there is always an
       ordinal which satisfies this.  (This theorem can be proven trivially
       using the AC - see theorem ~ ondomon - but this proof works in ZF.)
       (Contributed by Jeff Hankins, 22-Oct-2009.)  (Revised by Mario Carneiro,
       15-May-2015.) $)
    hartogs $p |- ( A e. V -> { x e. On | x ~<_ A } e. On ) $=
      ( vy vz vw vt vs vg vr wcel cv cdom wbr con0 word wss wa cvv wceq crab wi
      wtr wal onelon vex onelss imp ssdomg mpsyl jca domtr anim2i anassrs sylan
      exp31 com12 impd breq1 elrab 3imtr4g gen2 dftr2 mpbir ordon trssord mp3an
      ssrab2 wb cfv cep wrex cdm cid cres cxp w3a cdif wwe coi eqid hartogslem2
      copab elong syl mpbiri ) BCKZALZBMNZAOUAZOKZWJPZWJUCZWJOQOPWLWMDLZELZKZWO
      WJKZRWNWJKZUBZEUDDUDWSDEWPWQWRWPWOOKZWOBMNZRWNOKZWNBMNZRZWQWRWPWTXAXDWTWP
      XAXDUBWTWPXAXDWTWPRZXBWNWOMNZRXAXDXEXBXFWOWNUEWOSKXEWNWOQZXFEUFWTWPXGWOWN
      UGUHWNWOSUIUJUKXBXFXAXDXFXARXCXBWNWOBULUMUNUOUPUQURWIXAAWOOWHWOBMUSUTWIXC
      AWNOWHWNBMUSUTVAUHVBDEWJVCVDWIAOVHVEWJOVFVGWGWJSKWKWLVIADEFGBHLFLZILZVJTG
      LWOXIVJTRXHWOVKNREWNVLFWNVLHGWCZIJLZVMZBQVNXLVOXKQXKXLXLVPQVQXLXKVNVRZVSR
      WNXLXMVTVMTRJDWCZCHJXNWAXJWAWBWJSWDWEWF $.
  $}

  ${
    $d y z A $.  $d y z R $.
    wofib.1 $e |- A e. _V $.
    $( The only sets which are well-ordered forwards and backwards are finite
       sets.  (Contributed by Mario Carneiro, 30-Jan-2014.)  (Revised by Mario
       Carneiro, 23-May-2015.) $)
    wofib $p |- ( ( R Or A /\ A e. Fin ) <-> ( R We A /\ `' R We A ) ) $=
      ( vz vy wor cfn wcel wa wwe ccnv wofi jca adantr com wss cep wbr wn cvv
      cnvso sylanb weso coi cdm cv wral wrex csuc peano2 sucidg wceq brcnv epel
      vex bitri eleq2 syl5bb rspcev syl2anc dfrex2 sylib nrex word wb eqid oicl
      ordom ordtri1 mp2an wfr c0 wne con0 oion mp1i simpr ssexd wiso oiiso mpan
      isocnv2 wefr isofr biimpar syl2an c1o 1onn ne0i fri syl22anc syl5bir mt3i
      ex ssid ssnnfi sylancl cen simpl oien sylancr enfi syl mpbid impbii ) ABF
      ZAGHZIZABJZABKZJZIZXHXIXKABLXFAXJFXGXKABUAAXJLUBMXLXFXGXIXFXKABUCNXLABUDZ
      UEZGHZXGXLXNOHZXNXNPXOXLXPDUFZEUFZQKZRZSDOUGZEOUHZYAEOXROHZXTDOUHZYASYCXR
      UIZOHXRYEHZYDXRUJXROUKXTYFDYEOXTXRXQHZXQYEULYFXTXRXQQRYGXQXRQDUOEUOUMEDUN
      UPXQYEXRUQURUSUTXTDOVAVBVCXPSZOXNPZXLYBOVDXNVDYIYHVEVHABXMXMVFZVGOXNVIVJX
      LYIYBXLYIIZOTHXNXSVKZYIOVLVMZYBYKOXNVNATHZXNVNHYKCABXMTYJVOVPXLYIVQZVRXLY
      LYIXIXNAXSXJXMVSZAXJVKZYLXKXIXNAQBXMVSZYPYNXIYRCABXMTYJVTWAXNAQBXMWBVBAXJ
      WCYPYLYQXNAXSXJXMWDWEWFNYOWGOHYMYKWHOWGWIVPEDXNOTXSWJWKWNWLWMXNWOXNXNWPWQ
      XLXNAWRRZXOXGVEXLYNXIYSCXIXKWSABXMTYJWTXAXNAXBXCXDMXE $.
  $}

  ${
    $d a b c d x B $.  $d a b c d T $.  $d a b c d U $.  $d a b c w x y z X $.
    $d a b c d w x y z A $.  $d a b c d w x y z P $.  $d a b c d w x y z Q $.
    $d a b c d w x y z R $.  $d a b c d w x y z S $.  $d c d x Z $.
    wemapso.t $e |- T = { <. x , y >. | E. z e. A ( ( x ` z ) S ( y ` z ) /\
        A. w e. A ( w R z -> ( x ` w ) = ( y ` w ) ) ) } $.
    $( Value of the lexicographic order on a sequence space.  (Contributed by
       Stefan O'Rear, 18-Jan-2015.) $)
    wemaplem1 $p |- ( ( P e. V /\ Q e. W ) -> ( P T Q <->
        E. a e. A ( ( P ` a ) S ( Q ` a ) /\
          A. b e. A ( b R a -> ( P ` b ) = ( Q ` b ) ) ) ) ) $=
      ( cv cfv wbr wceq wi wral wrex breqan12d eqeqan12d imbi2d ralbidv anbi12d
      wa fveq1 rexbidv fveq2 breq12d breq2 imbi1d breq1 eqeq12d imbi12d cbvralv
      weq syl6bb cbvrexv brabga ) CPZAPZQZVCBPZQZIRZDPZVCHRZVIVDQZVIVFQZSZTZDEU
      AZUHZCEUBZMPZFQZVRGQZIRZNPZVRHRZWBFQZWBGQZSZTZNEUAZUHZMEUBZABFGJKLVDFSZVF
      GSZUHZVQVCFQZVCGQZIRZVJVIFQZVIGQZSZTZDEUAZUHZCEUBWJWMVPXBCEWMVHWPVOXAWKWL
      VEWNVGWOIVCVDFUIVCVFGUIUCWMVNWTDEWMVMWSVJWKWLVKWQVLWRVIVDFUIVIVFGUIUDUEUF
      UGUJXBWICMECMUSZWPWAXAWHXCWNVSWOVTIVCVRFUKVCVRGUKULXCXAVIVRHRZWSTZDEUAWHX
      CWTXEDEXCVJXDWSVCVRVIHUMUNUFXEWGDNEDNUSZXDWCWSWFVIWBVRHUOXFWQWDWRWEVIWBFU
      KVIWBGUKUPUQURUTUGVAUTOVB $.

    ${
      $d ph d $.
      wemaplem2.a $e |- ( ph -> A e. _V ) $.
      wemaplem2.p $e |- ( ph -> P e. ( B ^m A ) ) $.
      wemaplem2.x $e |- ( ph -> X e. ( B ^m A ) ) $.
      wemaplem2.q $e |- ( ph -> Q e. ( B ^m A ) ) $.
      wemaplem2.r $e |- ( ph -> R Or A ) $.
      wemaplem2.s $e |- ( ph -> S Po B ) $.
      ${
        wemaplem2.px1 $e |- ( ph -> a e. A ) $.
        wemaplem2.px2 $e |- ( ph -> ( P ` a ) S ( X ` a ) ) $.
        wemaplem2.px3 $e |- ( ph -> A. c e. A ( c R a ->
            ( P ` c ) = ( X ` c ) ) ) $.
        wemaplem2.xq1 $e |- ( ph -> b e. A ) $.
        wemaplem2.xq2 $e |- ( ph -> ( X ` b ) S ( Q ` b ) ) $.
        wemaplem2.xq3 $e |- ( ph -> A. c e. A ( c R b ->
            ( X ` c ) = ( Q ` c ) ) ) $.
        $( Lemma for ~ wemapso .  Transitivity.  (Contributed by Stefan O'Rear,
           17-Jan-2015.) $)
        wemaplem2 $p |- ( ph -> P T Q ) $=
          ( vd wbr cv cfv wceq wi wral wa wrex cif ifcld weq adantr breq1 fveq2
          wcel eqeq12d imbi12d rspcva syl2anc imp breqtrd iftrue fveq2d breq12d
          wb adantl mpbird wpo w3a cmap elmapi syl ffvelrnd 3jca syl5ibcom potr
          co wf syl22anc ifeq1 ifid syl6eq eqbrtrd wor sopo po2nr syl12anc mpbi
          nan iffalse w3o solin mpjao3dan r19.26 sylanbrc prth eqtr syl6 ralimi
          wn simpl1 simpr simpl2 simpl3 soltmin syl13anc biimpd imim1d ralimdva
          syl2im mpd breq2 imbi1d ralbidv anbi12d rspcev wemaplem1 ) AHILUKZUJU
          LZHUMZYIIUMZKUKZPULZYIJUKZYMHUMZYMIUMZUNZUOZPFUPZUQZUJFURZANULZOULZJU
          KZUUBUUCUSZFVEUUEHUMZUUEIUMZKUKZYMUUEJUKZYQUOZPFUPZUUAAUUDUUBUUCFUDUG
          UTAUUDUUHNOVAZUUCUUBJUKZAUUDUQZUUHUUBHUMZUUBIUMZKUKZUUNUUOUUBMUMZUUPK
          AUUOUURKUKZUUDUEVBAUUDUURUUPUNZAUUBFVEZYMUUCJUKZYMMUMZYPUNZUOZPFUPZUU
          DUUTUOZUDUIUVEUVGPUUBFPNVAZUVBUUDUVDUUTYMUUBUUCJVCUVHUVCUURYPUUPYMUUB
          MVDYMUUBIVDVFVGVHVIVJVKUUDUUHUUQVOAUUDUUFUUOUUGUUPKUUDUUEUUBHUUDUUBUU
          CVLZVMUUDUUEUUBIUVIVMVNVPVQAUULUQZUUHUUCHUMZUUCIUMZKUKZUVJGKVRZUVKGVE
          ZUUCMUMZGVEZUVLGVEZVSZUVKUVPKUKZUVPUVLKUKZUVMAUVNUULUCVBAUVSUULAUVOUV
          QUVRAFGUUCHAHGFVTWGZVEZFGHWHSHGFWAWBUGWCAFGUUCMAMUWBVEFGMWHTMGFWAWBUG
          WCAFGUUCIAIUWBVEZFGIWHUAIGFWAWBUGWCWDVBAUULUVTAUUSUULUVTUEUULUUOUVKUU
          RUVPKUUBUUCHVDUUBUUCMVDVNWEVJAUWAUULUHVBUVNUVSUQUVTUWAUQUVMGUVKUVPUVL
          KWFVJWIUULUUHUVMVOZAUULUUFUVKUUGUVLKUULUUEUUCHUULUUEUUDUUCUUCUSUUCUUD
          UUBUUCUUCWJUUDUUCWKWLZVMUULUUEUUCIUWFVMVNVPVQAUUMUQZUUHUVMUWGUVKUVPUV
          LKAUUMUVKUVPUNZAUUCFVEZYMUUBJUKZYOUVCUNZUOZPFUPZUUMUWHUOZUGUFUWLUWNPU
          UCFPOVAZUWJUUMUWKUWHYMUUCUUBJVCUWOYOUVKUVCUVPYMUUCHVDYMUUCMVDVFVGVHVI
          VJAUWAUUMUHVBWMUWGUUDXJZUWEAUUMUUDUQXJZUOUWGUWPUOAFJVRZUWIUVAUWQAFJWN
          ZUWRUBFJWOWBUGUDFUUCUUBJWPWQAUUMUUDWSWRUWPUUFUVKUUGUVLKUWPUUEUUCHUUDU
          UBUUCWTZVMUWPUUEUUCIUWTVMVNWBVQAUWSUVAUWIUUDUULUUMXAUBUDUGFUUBUUCJXBW
          QXCAUWLUVEUQZPFUPZUUKAUWMUVFUXBUFUIUWLUVEPFXDXEAUWSUVAUWIVSZUXBUWJUVB
          UQZYQUOZPFUPUUKAUWSUVAUWIUBUDUGWDUXAUXEPFUXAUXDUWKUVDUQYQUWJUWKUVBUVD
          XFYOUVCYPXGXHXIUXCUXEUUJPFUXCYMFVEZUQZUUIUXDYQUXGUUIUXDUXGUWSUXFUVAUW
          IUUIUXDVOUWSUVAUWIUXFXKUXCUXFXLUWSUVAUWIUXFXMUWSUVAUWIUXFXNYMUUBUUCJF
          XOXPXQXRXSXTYAYTUUHUUKUQUJUUEFYIUUEUNZYLUUHYSUUKUXHYJUUFYKUUGKYIUUEHV
          DYIUUEIVDVNUXHYRUUJPFUXHYNUUIYQYIUUEYMJYBYCYDYEYFWQAUWCUWDYHUUAVOSUAB
          CDEFHIJKLUWBUWBUJPQYGVIVQ $.
      $}

      $d ph a b c $.
      wemaplem3.px $e |- ( ph -> P T X ) $.
      wemaplem3.xq $e |- ( ph -> X T Q ) $.
      $( Lemma for ~ wemapso .  Transitivity.  (Contributed by Stefan O'Rear,
         17-Jan-2015.) $)
      wemaplem3 $p |- ( ph -> P T Q ) $=
        ( va vc vb cv cfv wbr wceq wi wral wa wrex cmap co wb wemaplem1 syl2anc
        mpbid cvv ad2antrr wor wpo simplrl simp2rl 3expa simprr ad2antlr simprl
        wcel simprrl simprrr wemaplem2 rexlimdvaa mp2d ) AUCUFZHUGVPMUGKUHZUDUF
        ZVPJUHVRHUGVRMUGZUIUJUDFUKZULZUCFUMZUEUFZMUGWCIUGKUHZVRWCJUHVSVRIUGUIUJ
        UDFUKZULZUEFUMZHILUHZAHMLUHZWBUAAHGFUNUOZVJZMWJVJZWIWBUPPQBCDEFHMJKLWJW
        JUCUDNUQURUSAMILUHZWGUBAWLIWJVJZWMWGUPQRBCDEFMIJKLWJWJUEUDNUQURUSAWAWGW
        HUJUCFAVPFVJZWAULZULZWFWHUEFWQWCFVJZWFULZULBCDEFGHIJKLMUCUEUDNAFUTVJWPW
        SOVAAWKWPWSPVAAWLWPWSQVAAWNWPWSRVAAFJVBWPWSSVAAGKVCWPWSTVAAWOWAWSVDAWPW
        SVQVQVTWOAWSVEVFWPVTAWSWOVQVTVGVHWQWRWFVIWQWRWDWEVKWQWRWDWEVLVMVNVNVO
        $.
    $}

    $( Construct lexicographic order on a function space based on a
       well-ordering of the indexes and a total ordering of the values.

       Without totality on the values or least differing indexes, the best we
       can prove here is a partial order.  (Contributed by Stefan O'Rear,
       18-Jan-2015.) $)
    wemappo $p |- ( ( A e. V /\ R Or A /\ S Po B ) -> T Po ( B ^m A ) ) $=
      ( va vb vc wcel cvv wpo cv wa wbr wor cmap co elex w3a cfv wceq wral wrex
      wi wn simpll3 wf elmapi adantl ffvelrnda poirr syl2anc intnanrd nrexdv wb
      vex wemaplem1 mp2an sylnibr simpll1 simplr1 simplr2 simplr3 simprl simprr
      simpll2 wemaplem3 ex ispod syl3an1 ) EJOEPOZEGUAZFHQZFEUBUCZIQEJUDVQVRVSU
      EZLMNVTIWALRZVTOZSZMRZWBUFZWFHTZNRZWEGTWHWBUFZWIUGUJNEUHZSZMEUIZWBWBITZWD
      WKMEWDWEEOZSZWGWJWOVSWFFOWGUKVQVRVSWCWNULWDEFWEWBWCEFWBUMWAWBFEUNUOUPFWFH
      UQURUSUTWBPOZWPWMWLVALVBZWQABCDEWBWBGHIPPMNKVCVDVEWAWCWEVTOZWHVTOZUEZSZWB
      WEITZWEWHITZSZWBWHITXAXDSABCDEFWBWHGHIWEKVQVRVSWTXDVFWCWRWSWAXDVGWCWRWSWA
      XDVHWCWRWSWAXDVIVQVRVSWTXDVLVQVRVSWTXDULXAXBXCVJXAXBXCVKVMVNVOVP $.

    ${
      $d ph a b c d $.
      wemapsolem.1 $e |- U C_ ( B ^m A ) $.
      wemapsolem.2 $e |- ( ph -> A e. _V ) $.
      wemapsolem.3 $e |- ( ph -> R Or A ) $.
      wemapsolem.4 $e |- ( ph -> S Or B ) $.
      wemapsolem.5 $e |- ( ( ph /\ ( ( a e. U /\ b e. U ) /\ a =/= b ) ) ->
        E. c e. dom ( a \ b ) A. d e. dom ( a \ b ) -. d R c ) $.
      $( Lemma for ~ wemapso .  (Contributed by Stefan O'Rear, 18-Jan-2015.)
         (Revised by Mario Carneiro, 8-Feb-2015.) $)
      wemapsolem $p |- ( ph -> T Or U ) $=
        ( cmap co wss wpo cvv wcel wor sopo syl wemappo syl3anc mpsyl cv wa weq
        poss wbr wo w3o wn wne df-ne cfv wceq wi wral wrex cdif cdm crab wfn wf
        simprll sseldi elmapi simprlr fndmdif syl2anc eleq2d nesym fveq2 notbid
        eqeq12d syl5bb elrab syl6bb imbi1d impexp con34b imbi2i bitr4i ralbidv2
        anbi12d anass rexbidv2 mpbid ad2antrr ffvelrnda sotrieq con2bid biimprd
        ffn syl12anc anim1d reximdva mpd wb wemaplem1 mp2an orbi12i andir eqcom
        vex r19.43 ralbii anbi2i orbi2i bitr2i rexbii 3bitr2i expr syl5bir orrd
        sylibr 3orrot 3orass sylib issod ) ALMKJKGFUBUCZUDAYJJUEZKJUEQAFUFUGFHU
        HGIUEZYKRSAGIUHZYLTGIUIUJBCDEFGHIJUFPUKULKYJJUQUMALUNZKUGZMUNZKUGZUOZUO
        ZLMUPZYPYNJURZYNYPJURZUSZUSZUUBYTUUAUTZYSYTUUCYTVAYNYPVBZYSUUCYNYPVCAYR
        UUFUUCAYRUUFUOZUOZNUNZYPVDZUUIYNVDZIURZUUKUUJIURZUSZOUNZUUIHURZUUOYPVDZ
        UUOYNVDZVEZVFZOFVGZUOZNFVHZUUCUUHUUJUUKVEZVAZUVAUOZNFVHZUVCUUHUUPVAZOYN
        YPVIVJZVGZNUVIVHUVGUAUUHUVJUVFNUVIFUUHUUIUVIUGZUVJUOUUIFUGZUVEUOZUVAUOU
        VLUVFUOUUHUVKUVMUVJUVAUUHUVKUUIBUNZYNVDZUVNYPVDZVBZBFVKZUGUVMUUHUVIUVRU
        UIUUHYNFVLZYPFVLZUVIUVRVEUUHFGYNVMZUVSUUHYNYJUGUWAUUHKYJYNQAYOYQUUFVNVO
        YNGFVPUJZFGYNXCUJUUHFGYPVMZUVTUUHYPYJUGUWCUUHKYJYPQAYOYQUUFVQVOYPGFVPUJ
        ZFGYPXCUJBFYNYPVRVSZVTUVQUVEBUUIFUVQUVPUVOVEZVAZBNUPZUVEUVOUVPWAZUWHUWF
        UVDUWHUVPUUJUVOUUKUVNUUIYPWBUVNUUIYNWBWDWCWEWFWGUUHUVHUUTOUVIFUUHUUOUVI
        UGZUVHVFUUOFUGZUUSVAZUOZUVHVFZUWKUUTVFZUUHUWJUWMUVHUUHUWJUUOUVRUGUWMUUH
        UVIUVRUUOUWEVTUVQUWLBUUOFUVQUWGBOUPZUWLUWIUWPUWFUUSUWPUVPUUQUVOUURUVNUU
        OYPWBUVNUUOYNWBWDWCWEWFWGWHUWNUWKUWLUVHVFZVFUWOUWKUWLUVHWIUUTUWQUWKUUPU
        USWJWKWLWGWMWNUVLUVEUVAWOWGWPWQUUHUVFUVBNFUUHUVLUOZUVEUUNUVAUWRYMUUJGUG
        ZUUKGUGZUVEUUNVFAYMUUGUVLTWRUUHFGUUIYPUWDWSUUHFGUUIYNUWBWSYMUWSUWTUOUOZ
        UUNUVEUXAUVDUUNGUUJUUKIWTXAXBXDXEXFXGUUCUULUVAUOZNFVHZUUMUUPUURUUQVEZVF
        ZOFVGZUOZNFVHZUSUXBUXGUSZNFVHUVCUUAUXCUUBUXHYPUFUGZYNUFUGZUUAUXCXHMXNZL
        XNZBCDEFYPYNHIJUFUFNOPXIXJUXKUXJUUBUXHXHUXMUXLBCDEFYNYPHIJUFUFNOPXIXJXK
        UXBUXGNFXOUXIUVBNFUVBUXBUUMUVAUOZUSUXIUULUUMUVAXLUXNUXGUXBUVAUXFUUMUUTU
        XEOFUUSUXDUUPUUQUURXMWKXPXQXRXSXTYAYEYBYCYDUUEYTUUAUUBUTUUDUUBYTUUAYFYT
        UUAUUBYGXSYHYI $.
    $}

    $( Construct lexicographic order on a function space based on a
       well-ordering of the indexes and a total ordering of the values.
       (Contributed by Stefan O'Rear, 18-Jan-2015.)  (Revised by Mario
       Carneiro, 8-Feb-2015.) $)
    wemapso $p |- ( ( A e. V /\ R We A /\ S Or B ) -> T Or ( B ^m A ) ) $=
      ( vc vd wcel cvv wor cv wa wss syl va vb wwe cmap co elex ssid simp1 weso
      w3a 3ad2ant2 simp3 wne cdif cdm wfr c0 wbr wn wral wrex simpl1 difss dmss
      ax-mp wfn wceq wf simprll elmapi ffn fndm syl5sseq ssexd simpl2 simprr wb
      wefr simprlr fndmdifeq0 syl2anc necon3bid fri syl22anc wemapsolem syl3an1
      mpbird ) EJNEONZEGUCZFHPZFEUDUEZIPEJUFWHWIWJUJZABCDEFGHIWKUAUBLMKWKUGWHWI
      WJUHWIWHEGPWJEGUIUKWHWIWJULWLUAQZWKNZUBQZWKNZRZWMWOUMZRZRZWMWOUNZUOZONEGU
      PZXBESXBUQUMZMQLQGURUSMXBUTLXBVAWTXBEOWHWIWJWSVBWTWMUOZXBEXAWMSXBXESWMWOV
      CXAWMVDVEWTWMEVFZXEEVGWTEFWMVHZXFWTWNXGWLWNWPWRVIWMFEVJTEFWMVKTZEWMVLTVMZ
      VNWTWIXCWHWIWJWSVOEGVRTXIWTXDWRWLWQWRVPWTXBUQWMWOWTXFWOEVFZXBUQVGWMWOVGVQ
      XHWTEFWOVHZXJWTWPXKWLWNWPWRVSWOFEVJTEFWOVKTEWMWOVTWAWBWGLMEXBOGWCWDWEWF
      $.

    $d V a b c d $.  $d W a b c d $.  $d Z a b $.
    wemapso2.u $e |- U = { x e. ( B ^m A ) | x finSupp Z } $.
    $( Lemma for ~ wemapso2 .  (Contributed by Mario Carneiro, 8-Feb-2015.)
       (Revised by AV, 1-Jul-2019.) $)
    wemapso2lem $p |- ( ( ( A e. V /\ R Or A /\ S Or B ) /\ Z e. W )
                           -> T Or U ) $=
      ( vc wcel wa cvv syl va vb vd wor w3a cfsupp wbr cmap crab ssrab2 eqsstri
      cv co elex 3ad2ant1 adantr simpl2 simpl3 wne cdm cfn csupp cun wfr wss c0
      cdif wn wral wrex simprll breq1 elrab2 simprbi simprlr fsuppunfi cfv wceq
      wfn wf sseldi elmapi ffn fndmdif syl2anc wi eqtr3 necon3ai neorian sylibr
      wo elun csn wb fvex eldifsn mpbiran bicomi anbi2d ad2antrr simpr elsuppfn
      syl3anc biantrurd 3bitr4d syl6bb simpll1 orbi12d syl5bb syl5ibr ralrimiva
      a1i rabss eqsstrd ssfi suppssdm syl5sseq unssd soss sylc wofi wefr simprr
      wwe fdm fndmdifeq0 necon3bid mpbird fri syl22anc wemapsolem ) EKQZEGUDZFH
      UDZUEZMLQZRZABCDEFGHIJUAUBPUCNJAULZMUFUGZAFEUHUMZUIYTOYSAYTUJUKZYOESQZYPY
      LYMUUBYNEKUNUOUPZYLYMYNYPUQZYLYMYNYPURYQUAULZJQZUBULZJQZRZUUEUUGUSZRZRZUU
      EUUGVGUTZVAQZUUEMVBUMZUUGMVBUMZVCZGVDZUUMUUQVEZUUMVFUSZUCULPULZGUGVHUCUUM
      VIPUUMVJUULUUQVAQZUUSUUNUULUUEUUGMUULUUFUUEMUFUGZYQUUFUUHUUJVKZUUFUUEYTQZ
      UVCYSUVCAUUEYTJYRUUEMUFVLOVMVNTUULUUHUUGMUFUGZYQUUFUUHUUJVOZUUHUUGYTQZUVF
      YSUVFAUUGYTJYRUUGMUFVLOVMVNTVPZUULUUMUVAUUEVQZUVAUUGVQZUSZPEUIZUUQUULUUEE
      VSZUUGEVSZUUMUVMVRUULEFUUEVTZUVNUULUVEUVPUULJYTUUEUUAUVDWAUUEFEWBTZEFUUEW
      CTZUULEFUUGVTZUVOUULUVHUVSUULJYTUUGUUAUVGWAUUGFEWBTZEFUUGWCTZPEUUEUUGWDWE
      UULUVLUVAUUQQZWFZPEVIUVMUUQVEUULUWCPEUVLUWBUULUVAEQZRZUVJMUSZUVKMUSZWKZUV
      LUVJMVRUVKMVRRZVHUWHUWIUVJUVKUVJUVKMWGWHUVJMUVKMWIWJUWBUVAUUOQZUVAUUPQZWK
      UWEUWHUVAUUOUUPWLUWEUWJUWFUWKUWGUWEUWJUVJSMWMVGZQZUWFUWEUWDUWFRZUWDUWMRUW
      JUWMUWEUWFUWMUWDUWFUWMWNUWEUWMUWFUWMUVJSQUWFUVAUUEWOUVJSMWPWQZWRXLWSUWEUV
      NUUBYPUWJUWNWNUULUVNUWDUVRUPYQUUBUUKUWDUUCWTYQYPUUKUWDYOYPXAWTZUVAUUESLEM
      XBXCUWEUWDUWMUULUWDXAZXDXEUWOXFUWEUWKUVKUWLQZUWGUWEUWDUWGRZUWDUWRRUWKUWRU
      WEUWGUWRUWDUWGUWRWNUWEUWRUWGUWRUVKSQUWGUVAUUGWOUVKSMWPWQZWRXLWSUWEUVOYLYP
      UWKUWSWNUULUVOUWDUWAUPUULYLUWDYLYMYNYPUUKXGUPUWPUVAUUGKLEMXBXCUWEUWDUWRUW
      QXDXEUWTXFXHXIXJXKUVLPEUUQXMWJXNZUUQUUMXOWEUULUUQGYDZUURUULUUQGUDZUVBUXBU
      ULUUQEVEYMUXCUULUUOUUPEUULUUEUTZUUOEUUEMXPUULUVPUXDEVRUVQEFUUEYETXQUULUUG
      UTZUUPEUUGMXPUULUVSUXEEVRUVTEFUUGYETXQXRYQYMUUKUUDUPUUQEGXSXTUVIUUQGYAWEU
      UQGYBTUXAUULUUTUUJYQUUIUUJYCUULUUMVFUUEUUGUULUVNUVOUUMVFVRUUEUUGVRWNUVRUW
      AEUUEUUGYFWEYGYHPUCUUQUUMVAGYIYJYK $.

    $( An alternative to having a well-order on ` R ` in ~ wemapso is to
       restrict the function set to finitely-supported functions.  (Contributed
       by Mario Carneiro, 8-Feb-2015.)  (Revised by AV, 1-Jul-2019.) $)
    wemapso2 $p |- ( ( A e. V /\ R Or A /\ S Or B ) -> T Or U ) $=
      ( cvv wcel wor wn c0 wceq w3a wi wemapso2lem expcom so0 wb cv cfsupp cmap
      wbr co crab relfsupp brrelex2i con3i ralrimivw rabeq0 sylibr syl5eq soeq2
      wral syl mpbiri a1d pm2.61i ) LOPZEKPEGQFHQUAZJIQZUBVGVFVHABCDEFGHIJKOLMN
      UCUDVFRZVHVGVIVHSIQZIUEVIJSTVHVJUFVIJAUGZLUHUJZAFEUIUKZULZSNVIVLRZAVMVAVN
      STVIVOAVMVLVFVKLUHUMUNUOUPVLAVMUQURUSJSIUTVBVCVDVE $.
  $}

  ${
    $d A x y z $.
    $( Proof that the alternate definition ~ cardval2 is always a set, and
       indeed is an ordinal.  (Contributed by Mario Carneiro, 14-Jan-2013.) $)
    card2on $p |- { x e. On | x ~< A } e. On $=
      ( vy vz cvv wcel cv csdm wbr con0 crab word wss wa wi wal cdom imp breq1
      c0 wtr onelon vex onelss ssdomg mpsyl domsdomtr anassrs sylan exp31 com12
      jca anim2i impd elrab 3imtr4g gen2 dftr2 mpbir ssrab2 ordon trssord mp3an
      hartogs sdomdom a1i ss2rabi ssexg mpan elong 3syl mpbiri wceq 0elon eleq1
      wb wn wrex wne df-ne rabn0 bitr3i relsdom brrelex2i rexlimivw sylbi nsyl4
      pm2.61i ) BEFZAGZBHIZAJKZJFZWIWMWLLZWLUAZWLJMJLWNWOCGZDGZFZWQWLFZNWPWLFZO
      ZDPCPXACDWRWSWTWRWQJFZWQBHIZNWPJFZWPBHIZNZWSWTWRXBXCXFXBWRXCXFOXBWRXCXFXB
      WRNZXDWPWQQIZNXCXFXGXDXHWQWPUBWQEFXGWPWQMZXHDUCXBWRXIWQWPUDRWPWQEUEUFULXD
      XHXCXFXHXCNXEXDWPWQBUGUMUHUIUJUKUNWKXCAWQJWJWQBHSUOWKXEAWPJWJWPBHSUOUPRUQ
      CDWLURUSWKAJUTVAWLJVBVCWIWJBQIZAJKZJFZWLEFZWMWNVPABEVDWLXKMXLXMWKXJAJWKXJ
      OWJJFWJBVEVFVGWLXKJVHVIWLEVJVKVLWLTVMZWMWIXNWMTJFVNWLTJVOVLXNVQZWKAJVRZWI
      XOWLTVSXPWLTVTWKAJWAWBWKWIAJWJBHWCWDWEWFWGWH $.
  $}

  ${
    $d A x y n $.
    card2inf.1 $e |- A e. _V $.
    $( The definition ~ cardval2 has the curious property that for
       non-numerable sets (for which ~ ndmfv yields ` (/) ` ), it still
       evaluates to a nonempty set, and indeed it contains ` _om ` .
       (Contributed by Mario Carneiro, 15-Jan-2013.)  (Revised by Mario
       Carneiro, 27-Apr-2015.) $)
    card2inf $p |- ( -. E. y e. On y ~~ A -> _om C_ { x e. On | x ~< A } ) $=
      ( vn cv cen wbr con0 wn csdm com wcel c0 breq1 rspcev cdom brsdom mpbiran
      wss wrex wral crab csuc 0elon mpan con3i 0dom wa sucdom2 ad2antll wi nnon
      sylibr suceloni ex con3dimp adantrr sylanbrc exp32 finds2 ralrimiv omsson
      3syl com12 ssrab ) BFZCGHZBIUAZJZAFZCKHZALUBZLVLAIUCTZVJVLALVKLMVJVLVLNCK
      HZEFZCKHZVPUDZCKHZVJAEVKNCKOVKVPCKOVKVRCKOVJNCGHZJZVOVTVINIMVTVIUEVHVTBNI
      VGNCGOPUFUGVONCQHWACDUHNCRSUNVPLMZVJVQVSWBVJVQUIUIVRCQHZVRCGHZJZVSVQWCWBV
      JVPCUJUKWBVJWEVQWBWDVIWBVPIMVRIMZWDVIULVPUMVPUOWFWDVIVHWDBVRIVGVRCGOPUPVD
      UQURVRCRUSUTVAVEVBVNLITVMVCVLAILVFSUN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Hartogs function, order types, weak dominance
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c har ~<_* $.

  $( Class symbol for the Hartogs/cardinal successor function. $)
  char $a class har $.

  $( Class symbol for the weak dominance relation. $)
  cwdom $a class ~<_* $.

  ${
    $d x y z $.

    $( Define the _Hartogs function_ , which maps all sets to the smallest
       ordinal that cannot be injected into the given set.  In the important
       special case where ` x ` is an ordinal, this is the _cardinal successor_
       operation.

       Traditionally, the Hartogs number of a set is written ` aleph ( X ) `
       and the cardinal successor ` X + ` ; we use functional notation for
       this, and cannot use the aleph symbol because it is taken for the
       enumerating function of the infinite initial ordinals ~ df-aleph .

       Some authors define the Hartogs number of a set to be the least
       *infinite* ordinal which does not inject into it, thus causing the range
       to consist only of alephs.  We use the simpler definition where the
       value can be any successor cardinal.  (Contributed by Stefan O'Rear,
       11-Feb-2015.) $)
    df-har $a |- har = ( x e. _V |-> { y e. On | y ~<_ x } ) $.

    $( A set is _weakly dominated_ by a "larger" set iff the "larger" set can
       be mapped onto the "smaller" set or the smaller set is empty;
       equivalently if the smaller set can be placed into bijection with some
       partition of the larger set.  When choice is assumed (as ~ fodom ), this
       coincides with the 1-1 definition ~ df-dom ; however, it is not known
       whether this is a choice-equivalent or a strictly weaker form.  Some
       discussion of this question can be found at
       ~ http://boolesrings.org/asafk/2014/on-the-partition-principle/ .
       (Contributed by Stefan O'Rear, 11-Feb-2015.) $)
    df-wdom $a |- ~<_* = { <. x , y >. | ( x = (/) \/
            E. z z : y -onto-> x ) } $.
  $}

  ${
    $d x y X $.  $d x y Y $.
    $( Functionality of the Hartogs function.  (Contributed by Stefan O'Rear,
       11-Feb-2015.) $)
    harf $p |- har : _V --> On $=
      ( vx vy cvv con0 cv cdom wbr crab char df-har hartogs fmpti ) ACDBEAEZFGB
      DHIABJBMCKL $.

    $( Closure of the Hartogs function in the ordinals.  (Contributed by Stefan
       O'Rear, 11-Feb-2015.) $)
    harcl $p |- ( har ` X ) e. On $=
      ( cvv con0 char harf 0elon f0cli ) BCADEFG $.

    $( Function value of the Hartogs function.  (Contributed by Stefan O'Rear,
       11-Feb-2015.) $)
    harval $p |- ( X e. V -> ( har ` X ) = { y e. On | y ~<_ X } ) $=
      ( vx wcel cvv char cfv cdom wbr con0 crab wceq elex breq2 rabbidv hartogs
      cv df-har fvmpt3 syl ) CBECFECGHARZCIJZAKLZMCBNDCUBDRZIJZAKLUDFGKUECMUFUC
      AKUECUBIOPDASAUEFQTUA $.

    $( The Hartogs number of a set is greater than all ordinals which inject
       into it.  (Contributed by Stefan O'Rear, 11-Feb-2015.)  (Revised by
       Mario Carneiro, 15-May-2015.) $)
    elharval $p |- ( Y e. ( har ` X ) <->
          ( Y e. On /\ Y ~<_ X ) ) $=
      ( vy char cfv wcel cvv con0 cdom wbr wa elfvex reldom brrelex2i adantl cv
      crab harval eleq2d breq1 elrab syl6bb pm5.21nii ) BADEZFZAGFZBHFZBAIJZKZB
      ADLUHUFUGBAIMNOUFUEBCPZAIJZCHQZFUIUFUDULBCGARSUKUHCBHUJBAITUAUBUC $.

    $( The Hartogs number of a set does not inject into that set.  (Contributed
       by Stefan O'Rear, 11-Feb-2015.)  (Revised by Mario Carneiro,
       15-May-2015.) $)
    harndom $p |- -. ( har ` X ) ~<_ X $=
      ( char cfv wcel cdom wbr harcl onirri con0 elharval mpbiran mtbi ) ABCZMD
      ZMAEFZMAGZHNMIDOPAMJKL $.

    $( Weak ordering property of the Hartogs function.  (Contributed by Stefan
       O'Rear, 14-Feb-2015.) $)
    harword $p |- ( X ~<_ Y -> ( har ` X ) C_ ( har ` Y ) ) $=
      ( vy cdom wbr cv con0 crab char cfv wi wcel expcom adantr cvv wceq reldom
      domtr harval syl ss2rabdv brrelexi brrelex2i 3sstr4d ) ABDEZCFZADEZCGHZUF
      BDEZCGHZAIJZBIJZUEUGUICGUEUGUIKUFGLUGUEUIUFABRMNUAUEAOLUKUHPABDQUBCOASTUE
      BOLULUJPABDQUCCOBSTUD $.
  $}

  ${
    $d X x y z w $.  $d Y x y z w $.  $d F x y z $.  $d Z x y z w $.

    $( Weak dominance is a relation.  (Contributed by Stefan O'Rear,
       11-Feb-2015.) $)
    relwdom $p |- Rel ~<_* $=
      ( vx vy vz cv c0 wceq wfo wex wo cwdom df-wdom relopabi ) ADZEFBDMCDGCHIA
      BJABCKL $.

    $( Property of weak dominance (definitional form).  (Contributed by Stefan
       O'Rear, 11-Feb-2015.) $)
    brwdom $p |- ( Y e. V -> ( X ~<_* Y <->
          ( X = (/) \/ E. z z : Y -onto-> X ) ) ) $=
      ( vx vy wcel cvv cwdom wbr c0 wceq cv wfo wex wo wb wi a1i exbidv relwdom
      elex brrelexi 0ex eleq1a ax-mp crn forn rnex syl6eqelr exlimiv jaoi eqeq1
      vex foeq3 orbi12d foeq2 orbi2d df-wdom brabg expcom pm5.21ndd syl ) DBGDH
      GZCDIJZCKLZDCAMZNZAOZPZQZDBUBVDCHGZVEVJVEVLRVDCDIUAUCSVJVLRVDVFVLVIKHGVFV
      LRUDKHCUEUFVHVLAVHCVGUGHDCVGUHVGAUNUIUJUKULSVLVDVKEMZKLZFMZVMVGNZAOZPVFVO
      CVGNZAOZPVJEFCDHHIVMCLZVNVFVQVSVMCKUMVTVPVRAVMCVOVGUOTUPVODLZVSVIVFWAVRVH
      AVODCVGUQTUREFAUSUTVAVBVC $.

    $( Property of weak dominance, forward direction only.  (Contributed by
       Mario Carneiro, 5-May-2015.) $)
    brwdomi $p |- ( X ~<_* Y -> ( X = (/) \/ E. z z : Y -onto-> X ) ) $=
      ( cwdom wbr c0 wceq cv wfo wex wo cvv wb relwdom brrelex2i brwdom syl ibi
      wcel ) BCDEZBFGCBAHIAJKZTCLSTUAMBCDNOALBCPQR $.

    $( Weak dominance over nonempty sets.  (Contributed by Stefan O'Rear,
       11-Feb-2015.)  (Revised by Mario Carneiro, 5-May-2015.) $)
    brwdomn0 $p |- ( X =/= (/) -> ( X ~<_* Y <-> E. z z : Y -onto-> X ) ) $=
      ( c0 wne cvv wcel cwdom wbr cv wfo wex wi relwdom brrelex2i a1i cdm wf wb
      wceq fof fdm syl vex syl6eqelr exlimiv wo brwdom df-ne biorf sylbi bicomd
      dmex wn sylan9bbr ex pm5.21ndd ) BDEZCFGZBCHIZCBAJZKZALZUTUSMURBCHNOPVCUS
      MURVBUSAVBCVAQZFVBCBVARVDCTCBVAUACBVAUBUCVAAUDUMUEUFPURUSUTVCSUSUTBDTZVCU
      GZURVCAFBCUHURVCVFURVEUNVCVFSBDUIVEVCUJUKULUOUPUQ $.

    $( Any set weakly dominates the empty set.  (Contributed by Stefan O'Rear,
       11-Feb-2015.) $)
    0wdom $p |- ( X e. V -> (/) ~<_* X ) $=
      ( vz wcel c0 cwdom wbr wceq cv wfo wex wo eqid orci brwdom mpbiri ) BADEB
      FGEEHZBECIJCKZLQREMNCAEBOP $.

    $( An onto function implies weak dominance.  (Contributed by Stefan O'Rear,
       11-Feb-2015.) $)
    fowdom $p |- ( ( F e. V /\ F : Y -onto-> X ) -> X ~<_* Y ) $=
      ( vz wcel cvv wfo cwdom wbr elex wa c0 wceq cv wex wo foeq1 spcegv imp wb
      olcd wf fof dmfex sylan2 brwdom syl mpbird sylan ) ABFAGFZDCAHZCDIJZABKUK
      ULLZUMCMNZDCEOZHZEPZQZUNURUOUKULURUQULEAGDCUPARSTUBUNDGFZUMUSUAULUKDCAUCU
      TDCAUDDCGAUEUFEGCDUGUHUIUJ $.

    $( Reflexivity of weak dominance.  (Contributed by Stefan O'Rear,
       11-Feb-2015.) $)
    wdomref $p |- ( X e. V -> X ~<_* X ) $=
      ( wcel cid cres cvv wfo cwdom wbr resiexg wf1o f1ofo ax-mp fowdom sylancl
      f1oi ) BACDBEZFCBBQGZBBHIBAJBBQKRBPBBQLMQFBBNO $.

    $( Alternate characterization of the weak dominance predicate which does
       not require special treatment of the empty set.  (Contributed by Stefan
       O'Rear, 11-Feb-2015.) $)
    brwdom2 $p |- ( Y e. V -> ( X ~<_* Y <->
          E. y e. ~P Y E. z z : y -onto-> X ) ) $=
      ( vx vw wcel cvv cwdom cv wfo wex c0 wceq wa foeq1 adantl cun wfn wbr cpw
      wrex elex 0wdom breq1 syl5ibrcom imp 0elpw wf1o f1o0 f1ofo 0ex spcev mp2b
      wb foeq2 exbidv rspcev mp2an foeq3 rexbidv mpbiri 2thd wne brwdomn0 pwidg
      cbvexv ad2antrr sylancom ex syl5bi n0 biimpi ad2antlr cdif csn cxp difexg
      vex snex xpexg sylancl unexg sylancr adantr crn cin fofn fnconstg disjdif
      mp1i a1i fnun syl21anc wss elpwi undif sylib ad2antrl mpbid rnun ad2antll
      fneq2d forn uneq1d wf fconst6g frn syl eqtrd syl5eq df-fo sylanbrc spcegv
      ssequn2 sylc exlimddv expr exlimdv rexlimdva impbid bitrd pm2.61dane ) EC
      HEIHZDEJUAZAKZDBKZLZBMZAEUBZUCZUPZECUDYEYMDNYEDNOZPYFYLYEYNYFYEYFYNNEJUAI
      EUEDNEJUFUGUHYNYLYEYNYLYGNYHLZBMZAYKUCZNYKHNNYHLZBMZYQEUINNNUJNNNLZYSUKNN
      NULYRYTBNUMNNYHNQUNUOYPYSANYKYGNOYOYRBYGNNYHUQURUSUTYNYJYPAYKYNYIYOBDNYGY
      HVAURVBVCRVDYEDNVEZPZYFEDFKZLZFMZYLUUAYFUUEUPYEFDEVFRUUBUUEYLUUEEDYHLZBMZ
      UUBYLUUDUUFFBEDUUCYHQVHUUBUUGYLUUBUUGEYKHZYLYEUUHUUAUUGEIVGVIYJUUGAEYKYGE
      OYIUUFBYGEDYHUQURUSVJVKVLUUBYJUUEAYKUUBYGYKHZPYIUUEBUUBUUIYIUUEUUBUUIYIPZ
      PZGKZDHZUUEGUUAUUMGMZYEUUJUUAUUNGDVMVNVOUUKUUMPZYHEYGVPZUULVQZVRZSZIHZEDU
      USLZUUEUUBUUTUUJUUMYEUUTUUAYEYHIHUURIHZUUTBVTYEUUPIHUUQIHUVBEYGIVSUULWAUU
      PUUQIIWBWCYHUURIIWDWEWFVIUUOUUSETZUUSWGZDOUVAUUOUUSYGUUPSZTZUVCUUOYHYGTZU
      URUUPTZYGUUPWHNOZUVFUUJUVGUUBUUMYIUVGUUIYGDYHWIRVOUULIHUVHUUOGVTUUPUULIWJ
      WLUVIUUOYGEWKWMYGUUPYHUURWNWOUUOUVEEUUSUUKUVEEOZUUMUUIUVJUUBYIUUIYGEWPUVJ
      YGEWQYGEWRWSWTWFXDXAUUOUVDYHWGZUURWGZSZDYHUURXBUUOUVMDUVLSZDUUOUVKDUVLUUK
      UVKDOZUUMYIUVOUUBUUIYGDYHXEXCWFXFUUOUVLDWPZUVNDOUUMUVPUUKUUMUUPDUURXGUVPU
      UPUULDXHUUPDUURXIXJRUVLDXPWSXKXLEDUUSXMXNUUDUVAFUUSIEDUUCUUSQXOXQXRXSXTYA
      YBYCYDXJ $.

    $( Weak dominance is implied by dominance in the usual sense.  (Contributed
       by Stefan O'Rear, 11-Feb-2015.) $)
    domwdom $p |- ( X ~<_ Y -> X ~<_* Y ) $=
      ( vy cdom wbr cwdom c0 wceq cv wfo wex wo wn wa wb cvv wcel reldom mpbird
      syl csdm df-ne biimpri adantl brrelexi 0sdomg adantr simpl fodomr syl2anc
      wne ex orrd brrelex2i brwdom ) ABDEZABFEZAGHZBACIJCKZLZUPURUSUPURMZUSUPVA
      NZGAUAEZUPUSVBVCAGUKZVAVDUPVDVAAGUBUCUDUPVCVDOZVAUPAPQVEABDRUEAPUFTUGSUPV
      AUHBACUIUJULUMUPBPQUQUTOABDRUNCPABUOTS $.

    $( Transitivity of weak dominance.  (Contributed by Stefan O'Rear,
       11-Feb-2015.)  (Revised by Mario Carneiro, 5-May-2015.) $)
    wdomtr $p |- ( ( X ~<_* Y /\ Y ~<_* Z ) -> X ~<_* Z ) $=
      ( vz vy cwdom wbr wa c0 cvv wcel wceq adantl syl wne cv wfo wex wb mpbid
      wi relwdom brrelex2i 0wdom breq1 syl5ibrcom simpll simpllr simplr cdm crn
      brwdomn0 dm0rn0 necon3bii a1i fof fdm neeq1d forn 3bitr3rd ccom coex foco
      wf vex fowdom sylancr expr exlimdv mpd exlimddv ex pm2.61dne ) ABFGZBCFGZ
      HZACFGZAIVPCJKZAILZVQUAVOVRVNBCFUBUCMVRVQVSICFGJCUDAICFUEUFNVPAIOZVQVPVTH
      ZBADPZQZVQDWAVNWCDRZVNVOVTUGVTVNWDSVPDABULMTWAWCHZCBEPZQZERZVQWEVOWHVNVOV
      TWCUHWEBIOZVOWHSWEVTWIVPVTWCUIWCVTWISWAWCWBUJZIOZWBUKZIOZWIVTWKWMSWCWJIWL
      IWBUMUNUOWCWJBIWCBAWBVDWJBLBAWBUPBAWBUQNURWCWLAIBAWBUSURUTMTEBCULNTWEWGVQ
      EWAWCWGVQWCWGHZVQWAWNWBWFVAZJKCAWOQVQWBWFDVEEVEVBCBAWBWFVCWOJACVFVGMVHVIV
      JVKVLVM $.

    $( Equality-like theorem for equinumerosity and weak dominance.
       (Contributed by Mario Carneiro, 18-May-2015.) $)
    wdomen1 $p |- ( A ~~ B -> ( A ~<_* C <-> B ~<_* C ) ) $=
      ( cen wbr cwdom cdom ensym endom domwdom 3syl wdomtr sylan syl impbida )
      ABDEZACFEZBCFEZPBAFEZQRPBADEBAGESABHBAIBAJKBACLMPABFEZRQPABGETABIABJNABCL
      MO $.

    $( Equality-like theorem for equinumerosity and weak dominance.
       (Contributed by Mario Carneiro, 18-May-2015.) $)
    wdomen2 $p |- ( A ~~ B -> ( C ~<_* A <-> C ~<_* B ) ) $=
      ( cen wbr cwdom cdom endom domwdom syl wdomtr syl2anr ensym 3syl impbida
      id ) ABDEZCAFEZCBFEZRRABFEZSQRPQABGETABHABIJCABKLSSBAFEZRQSPQBADEBAGEUAAB
      MBAHBAINCBAKLO $.

    $( Weak dominance strengthens to usual dominance on the power sets.
       (Contributed by Stefan O'Rear, 11-Feb-2015.)  (Revised by Mario
       Carneiro, 5-May-2015.) $)
    wdompwdom $p |- ( X ~<_* Y -> ~P X ~<_ ~P Y ) $=
      ( vz cwdom wbr cpw cdom wi c0 wceq cvv wcel wss relwdom brrelex2i syl 0ss
      pwexg sspwb mpbi ssdomg mpisyl breq1d syl5ibr wne cv wfo wex brwdomn0 vex
      pweq fopwdom mpan exlimiv syl6bi pm2.61ine ) ABDEZAFZBFZGEZHAIUQUTAIJZIFZ
      USGEZUQUSKLZVBUSMZVCUQBKLVDABDNOBKRPIBMVEBQIBSTVBUSKUAUBVAURVBUSGAIUKUCUD
      AIUEUQBACUFZUGZCUHUTCABUIVGUTCVFKLVGUTCUJBAVFKULUMUNUOUP $.
  $}

  ${
    $d x f A $.
    $( Cantor's Theorem, stated using weak dominance (this is actually a
       stronger statement than ~ canth2 , equivalent to ~ canth ).
       (Contributed by Mario Carneiro, 15-May-2015.) $)
    canthwdom $p |- -. ~P A ~<_* A $=
      ( vf vx cpw cwdom wbr cv wfo wex c0 wne wcel 0elpw ne0i mp1i syl cvv wceq
      wb wn brwdomn0 ibi relwdom brrelex2i foeq2 pweq foeq3 bitrd notbid vtoclg
      vex canth nexdv pm2.65i ) ADZAEFZAUOBGZHZBIZUPUSUPUOJKZUPUSSJUOLUTUPAMUOJ
      NOBUOAUAPUBUPURBUPAQLURTZUOAEUCUDCGZVBDZUQHZTVACAQVBARZVDURVEVDAVCUQHZURV
      BAVCUQUEVEVCUORVFURSVBAUFVCUOAUQUGPUHUIVBUQCUKULUJPUMUN $.
  $}

  ${
    $d A v w x y z $.  $d B v w x y z $.  $d X v w x z $.  $d ph w x y $.
    wdom2d.a $e |- ( ph -> A e. V ) $.
    wdom2d.b $e |- ( ph -> B e. W ) $.
    wdom2d.o $e |- ( ( ph /\ x e. A ) -> E. y e. B x = X ) $.
    $( Deduce weak dominance from an implicit onto function (stated in a way
       which avoids ~ ax-rep ).  (Contributed by Stefan O'Rear,
       13-Feb-2015.) $)
    wdom2d $p |- ( ph -> A ~<_* B ) $=
      ( vz vw vv cv wcel wbr cvv wceq wrex csb crab cwdom cmpt wfo rabexg xpexg
      cxp syl syl2anc wf wss csbeq1 eleq1d elrab simprbi eqid fmptd fssxp ssexd
      adantl cfv wral wa wi eleq1 biimpcd ancrd reximdv mpd nfcsb1v nfel1 nfeq2
      nfv csbeq1a eqeq2d anbi12d cbvrex sylib fvmptg mpdan rexbiia rexrab bitri
      nfan sylibr ralrimiva sylanbrc fowdom cdom ssrab2 ssdomg mpi domwdom 3syl
      dffo3 wdomtr ) ADCLOZHUAZDPZLEUBZUCQZXAEUCQZDEUCQAMXACMOZHUAZUDZRPXADXFUE
      ZXBAXFXADUHZRAXARPZDFPXHRPAEGPZXIJWTLEGUFUIIXADRFUGUJAXADXFUKZXFXHULAMXAX
      EDXFXDXAPZXEDPZAXLXDEPXMWTXMLXDEWRXDSWSXEDCWRXDHUMUNUOUPVAXFUQZURZXADXFUS
      UIUTAXKBOZNOZXFVBZSZNXATZBDVCXGXOAXTBDAXPDPZVDZCXQHUAZDPZXPYCSZVDZNETZXTY
      BHDPZXPHSZVDZCETZYGYBYICETYKKYBYIYJCEYAYIYJVEAYAYIYHYIYAYHXPHDVFVGVHVAVIV
      JYJYFCNEYJNVNYDYECCYCDCXQHVKZVLCXPYCYLVMWECOXQSZYHYDYIYEYMHYCDCXQHVOZUNYM
      HYCXPYNVPVQVRVSXTYENXATYGXSYENXAXQXAPZXRYCXPYOYDXRYCSYOXQEPYDWTYDLXQEWRXQ
      SWSYCDCWRXQHUMUNZUOUPMXQXEYCXADXFCXDXQHUMXNVTWAVPWBWTYDYENLEYPWCWDWFWGNBX
      ADXFWPWHXFRDXAWIUJAXJXAEWJQZXCJXJXAEULYQWTLEWKXAEGWLWMXAEWNWODXAEWQUJ $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d ph x y $.  $d X x $.
    wdomd.b $e |- ( ph -> B e. W ) $.
    wdomd.o $e |- ( ( ph /\ x e. A ) -> E. y e. B x = X ) $.
    $( Deduce weak dominance from an implicit onto function.  (Contributed by
       Stefan O'Rear, 13-Feb-2015.) $)
    wdomd $p |- ( ph -> A ~<_* B ) $=
      ( cvv cv wceq wrex cab wcel abrexexg syl wi wal wss ex alrimiv ssab ssexd
      sylibr wdom2d ) ABCDEJFGADBKZGLCEMZBNZJAEFOUIJOHCBEGFPQAUGDOZUHRZBSDUITAU
      KBAUJUHIUAUBUHBDUCUEUDHIUF $.
  $}

  ${
    $d X f w x y z $.  $d Y f w x y z $.
    $( Condition for weak dominance with a condition reminiscent of ~ wdomd .
       (Contributed by Stefan O'Rear, 13-Feb-2015.)  (Revised by Mario
       Carneiro, 25-Jun-2015.) $)
    brwdom3 $p |- ( ( X e. V /\ Y e. W ) -> ( X ~<_* Y <->
          E. f A. x e. X E. y e. Y x = ( f ` y ) ) ) $=
      ( vz vw wcel cvv cv cfv wceq wrex wral wex wb wa adantl cwdom wbr wfo cpw
      elex brwdom2 wf dffo3 simprbi wi wss elpwi ssrexv syl ralimdv syl5 eximdv
      rexlimdva sylbid simpll simplr eqeq1 rexbidv fveq2 eqeq2d cbvrexv cbvralv
      syl6bb biimpi r19.21bi wdom2d ex exlimdv impbid syl2an ) FDJFKJZGKJZFGUAU
      BZALZBLZCLZMZNZBGOZAFPZCQZRGEJFDUEGEUEVPVQSZVRWFWGVRHLZFWAUCZCQZHGUDZOZWF
      VQVRWLRVPHCKFGUFTWGWJWFHWKWGWHWKJZSZWIWECWIWCBWHOZAFPZWNWEWIWHFWAUGWPBAWH
      FWAUHUIWNWOWDAFWMWOWDUJZWGWMWHGUKWQWHGULWCBWHGUMUNTUOUPUQURUSWGWEVRCWGWEV
      RWGWESZHIFGKKILZWAMZVPVQWEUTVPVQWEVAWRWHWTNZIGOZHFWEXBHFPZWGWEXCWDXBAHFVS
      WHNZWDWHWBNZBGOXBXDWCXEBGVSWHWBVBVCXEXABIGVTWSNWBWTWHVTWSWAVDVEVFVHVGVITV
      JVKVLVMVNVO $.

    $( Weak dominance implies existence of a covering function.  (Contributed
       by Stefan O'Rear, 13-Feb-2015.) $)
    brwdom3i $p |- ( X ~<_* Y -> E. f A. x e. X E. y e. Y x = ( f ` y ) ) $=
      ( cwdom wbr cv cfv wceq wrex wral wex cvv wcel relwdom brrelexi brrelex2i
      wb brwdom3 syl2anc ibi ) DEFGZAHBHCHIJBEKADLCMZUCDNOENOUCUDSDEFPQDEFPRABC
      NNDETUAUB $.
  $}

  ${
    $d A a b f g y z $.  $d B a b f g y z $.  $d C a b f g y z $.
    $d D a b f g y z $.
    $( Weak dominance of a (disjoint) union.  (Contributed by Stefan O'Rear,
       13-Feb-2015.)  (Revised by Mario Carneiro, 25-Jun-2015.) $)
    unwdomg $p |- ( ( A ~<_* B /\ C ~<_* D /\ ( B i^i D ) = (/) ) ->
      ( A u. C ) ~<_* ( B u. D ) ) $=
      ( va vb vf vg vz cwdom wbr wceq cv cfv wrex wa cvv wcel relwdom eqeq2d vy
      cin w3a wral cun wex brwdom3i 3ad2ant1 3ad2ant2 adantr cif brrelexi unexg
      c0 syl2an 3adant3 brrelex2i wi wo elun eqeq1 rexbidv rspcva fveq2 cbvrexv
      wss ssun1 iftrue fveq1d biimprd reximia ssrexv mpsyl sylbi ancoms adantlr
      syl adantll syl6bb rspccva ssun2 wn iffalsed reximdva imp sylan2 adantlrl
      minel anassrs jaodan sylan2b expl 3ad2ant3 impl expr exlimdv mpd exlimddv
      wdom2d ) ABJKZCDJKZBDUBUNLZUCZEMZFMZGMZNZLZFBOZEAUDZACUEZBDUEZJKZGWTXAXJG
      UFXBEFGABUGUHXCXJPZXDXEHMZNZLZFDOZECUDZHUFZXMXCXTXJXAWTXTXBEFHCDUGUIUJXNX
      SXMHXCXJXSXMXCXJXSPZPUAIXKXLQQIMZYBBRZXFXOUKZNZXCXKQRZYAWTXAYFXBWTAQRCQRY
      FXAABJSULCDJSULACQQUMUOUPUJXCXLQRZYAWTXAYGXBWTBQRDQRYGXAABJSUQCDJSUQBDQQU
      MUOUPUJXCYAUAMZXKRZYHYELZIXLOZXBWTYAYIPYKURXAXBYAYIYKYIXBYAPZYHARZYHCRZUS
      YKYHACUTYLYMYKYNYAYMYKXBXJYMYKXSYMXJYKYMXJPYHXGLZFBOZYKXIYPEYHAXDYHLZXHYO
      FBXDYHXGVAVBVCYPYHYBXFNZLZIBOZYKYOYSFIBXEYBLZXGYRYHXEYBXFVDTVEBXLVFYTYJIB
      OYKBDVGYSYJIBYCYJYSYCYEYRYHYCYBYDXFYCXFXOVHVITVJVKYJIBXLVLVMVNVQVOVPVRXBX
      SYNYKXJXBXSYNYKXSYNPXBYHYBXONZLZIDOZYKXRUUDEYHCYQXRYHXPLZFDOUUDYQXQUUEFDX
      DYHXPVAVBUUEUUCFIDUUAXPUUBYHXEYBXOVDTVEVSVTDXLVFXBUUDPYJIDOZYKDBWAXBUUDUU
      FXBUUCYJIDXBYBDRZPZYJUUCUUHYEUUBYHUUHYBYDXOUUHYCXFXOUUGXBYCWBYBDBWHVOWCVI
      TVJWDWEYJIDXLVLVMWFWIWGWJWKWLWMWNWSWOWPWQWR $.
  $}

  ${
    $d A a b c f g x y $.  $d B a b c d f g x y $.  $d C a c d f g x y $.
    $d D a b c d f g x y $.
    $( Weak dominance of a Cartesian product.  (Contributed by Stefan O'Rear,
       13-Feb-2015.)  (Revised by Mario Carneiro, 25-Jun-2015.) $)
    xpwdomg $p |- ( ( A ~<_* B /\ C ~<_* D ) -> ( A X. C ) ~<_* ( B X. D ) ) $=
      ( va vb vf vc vd vg vx cwdom wa cv cfv wceq wrex wral cvv wcel vy wbr wex
      cxp brwdom3i adantr adantl wi c1st c2nd cop relwdom brrelexi xpexg syl2an
      brrelex2i pm3.2 ralimdv com12 impcom reximdv 2ralimi syl eqeq1 vex syl6bb
      opth 2rexbidv sylibr r19.21bi op1std fveq2d op2ndd opeq12d eqeq2d adantll
      ralxp rexxp wdom2d expr exlimdv ex mp2d ) ABLUBZCDLUBZMZENZFNZGNZOZPZFBQZ
      EARZGUCZHNZINZJNZOZPZIDQZHCRZJUCZACUDZBDUDZLUBZWDWNWEEFGABUEUFWEXBWDHIJCD
      UEUGWFWMXBXEUHZGWFWMXFWFWMMXAXEJWFWMXAXEWFWMXAMZMKUAXCXDSSUANZUIOZWIOZXHU
      JOZWQOZUKZWFXCSTZXGWDASTCSTXNWEABLULUMCDLULUMACSSUNUOUFWFXDSTZXGWDBSTDSTX
      OWEABLULUPCDLULUPBDSSUNUOUFXGKNZXCTZXPXMPZUAXDQZWFXGXQMXPWJWRUKZPZIDQFBQZ
      XSXGYBKXCXGWKWSMZIDQZFBQZHCREARZYBKXCRXGWLWTMZHCRZEARZYFXAWMYIXAWLYHEAWLX
      AYHWLWTYGHCWLWTUQURUSURUTYGYEEHACWTWLYEWTWKYDFBWKWTYDWKWSYCIDWKWSUQVAUSVA
      UTVBVCYBYEKEHACXPWGWOUKZPZYAYCFIBDYKYAYJXTPYCXPYJXTVDWGWOWJWREVEHVEVGVFVH
      VQVIVJXRYAUAFIBDXHWHWPUKPZXMXTXPYLXJWJXLWRYLXIWHWIWHWPXHFVEZIVEZVKVLYLXKW
      PWQWHWPXHYMYNVMVLVNVOVRVIVPVSVTWAWBWAWC $.
  $}

  $( A set is weakly dominant over its image under any function.  This version
     of ~ wdomimag is stated so as to avoid ~ ax-rep .  (Contributed by Mario
     Carneiro, 25-Jun-2015.) $)
  wdomima2g $p |- ( ( Fun F /\ A e. V /\ ( F " A ) e. W ) ->
      ( F " A ) ~<_* A ) $=
    ( wfun wcel cima w3a crn cwdom df-ima cdm wbr cvv wfo wf funres syl syl2anc
    cres funforn sylib 3ad2ant1 fof wss dmres inss1 eqsstri simp2 ssexg sylancr
    cin simp3 syl5eqelr fex2 syl3anc fowdom cdom ssdomg domwdom 3ad2ant2 wdomtr
    mpi syl5eqbr ) BEZACFZBAGZDFZHZVGBATZIZAJBAKZVIVKVJLZJMZVMAJMZVKAJMVIVJNFZV
    MVKVJOZVNVIVMVKVJPZVMNFZVKDFVPVIVQVRVEVFVQVHVEVJEVQABQVJUAUBUCZVMVKVJUDRVIV
    MAUEZVFVSVMABLZULABAUFAWBUGUHZVEVFVHUIVMACUJUKVIVKVGDVLVEVFVHUMUNVMVKVJNDUO
    UPVTVJNVKVMUQSVFVEVOVHVFVMAURMZVOVFWAWDWCVMACUSVCVMAUTRVAVKVMAVBSVD $.

  $( A set is weakly dominant over its image under any function.  (Contributed
     by Stefan O'Rear, 14-Feb-2015.)  (Revised by Mario Carneiro,
     25-Jun-2015.) $)
  wdomimag $p |- ( ( Fun F /\ A e. V ) -> ( F " A ) ~<_* A ) $=
    ( wfun wcel cima cvv cwdom wbr funimaexg wdomima2g mpd3an3 ) BDACEBAFZGEMAH
    IBACJABCGKL $.

  ${
    $d f x y A $.  $d f x y B $.  $d f x y C $.
    $( Lemma for ~ unxpwdom .  (Contributed by Mario Carneiro, 15-May-2015.) $)
    unxpwdom2 $p |- ( ( A X. A ) ~~ ( B u. C ) -> ( A ~<_* B \/ A ~<_ C ) ) $=
      ( vf vx cen wbr cwdom cdom cv c1st wceq wss wa cvv syl sylancr adantr cfv
      wcel vy cxp cun ensym wf1o wex bren cres ccom cima cdif ssdif0 cdm dmxpid
      wo c0 crn wfo f1ofo forn vex syl6eqelr dmexg syl5eqelr imassrn wf f1stres
      rnex f1of fco frn syl5ss ssexd simpr ssdomg sylc domwdom wfun ssun1 f1odm
      ffun dmex ssexg wdomima2g syl3anc wdomtr syl2anc orcd ex syl5bir wne ccnv
      n0 csn ssun2 wb wfn f1ofn elpreima wn wi elun df-or bitri eldifn ad2antlr
      ad2antrr simprr sseldi fvco3 eldifi adantl snssd xpss1 simprl fvres xp1st
      sseldd eqeltrd elsni eqtrd ffn a1i fnfvima eqeltrrd expr mtod imim1d impd
      syl5bi sylbid ssrdv f1ocnv f1of1 snex xpexg f1imaen2g syl22anc xpsnen2g
      wf1 entr domen1 mpbid olcd exlimdv pm2.61dne exlimiv sylbi ) AAUBZBCUCZFG
      UUJUUIFGZABHGZACIGZUOZUUIUUJUDUUKUUJUUIDJZUEZDUFUUNUUJUUIDUGUUPUUNDUUPUUN
      AKUUIUHZUUOUIZBUJZUKZUPUUTUPLAUUSMZUUPUUNAUUSULUUPUVAUUNUUPUVANZUULUUMUVB
      AUUSHGZUUSBHGZUULUVBAUUSIGZUVCUVBUUSOTZUVAUVEUUPUVFUVAUUPUUSAOUUPAUUIUMZO
      AUNUUPUUIOTUVGOTUUPUUIUUOUQZOUUPUUJUUIUUOURUVHUUILUUJUUIUUOUSUUJUUIUUOUTP
      UUODVAZVHVBUUIOVCPVDZUUPUUSUURUQZAUURBVEUUPUUJAUURVFZUVKAMUUPUUIAUUQVFUUJ
      UUIUUOVFZUVLAAVGUUJUUIUUOVIZUUJUUIAUUQUUOVJQZUUJAUURVKPVLVMZRUUPUVAVNAUUS
      OVOVPAUUSVQPUUPUVDUVAUUPUURVRZBOTZUVFUVDUUPUVLUVQUVOUUJAUURWAPUUPBUUJMZUU
      JOTZUVRBCVSZUUPUUJUUOUMOUUJUUIUUOVTUUOUVIWBVBZBUUJOWCQUVPBUUROOWDWERAUUSB
      WFWGWHWIWJUUTUPWKEJZUUTTZEUFUUPUUNEUUTWMUUPUWDUUNEUUPUWDUUNUUPUWDNZUUMUUL
      UWEUUOWLZUWCWNZAUBZUJZCIGZUUMUWECOTZUWICMUWJUUPUWKUWDUUPCUUJMUVTUWKCBWOUW
      BCUUJOWCQRUWEUAUWICUWEUAJZUWITZUWLUUJTZUWLUUOSZUWHTZNZUWLCTZUUPUWMUWQWPZU
      WDUUPUUOUUJWQUWSUUJUUIUUOWRUUJUWLUWHUUOWSPRUWEUWNUWPUWRUWNUWLBTZWTZUWRXAZ
      UWEUWPUWRXAUWNUWTUWRUOUXBUWLBCXBUWTUWRXCXDUWEUWPUXAUWRUWEUWPUXAUWEUWPNUWT
      UWCUUSTZUWDUXCWTUUPUWPUWCAUUSXEXFUWEUWPUWTUXCUWEUWPUWTNZNZUWLUURSZUWCUUSU
      XEUXFUWOUUQSZUWCUXEUVMUWNUXFUXGLUUPUVMUWDUXDUVNXGUXEBUUJUWLUWAUWEUWPUWTXH
      ZXIUUJUUIUWLUUQUUOXJWGUXEUXGUWGTUXGUWCLUXEUXGUWOKSZUWGUXEUWOUUITUXGUXILUX
      EUWHUUIUWOUWEUWHUUIMZUXDUWEUWGAMUXJUWEUWCAUWDUWCATUUPUWCAUUSXKXLXMUWGAAXN
      PZRUWEUWPUWTXOZXRUWOUUIKXPPUXEUWPUXIUWGTUXLUWOUWGAXQPXSUXGUWCXTPYAUXEUURU
      UJWQZUVSUWTUXFUUSTUUPUXMUWDUXDUUPUVLUXMUVOUUJAUURYBPXGUVSUXEUWAYCUXHUUJBU
      URUWLYDWEYEYFYGWIYHYJYIYKYLUWICOVOVPUWEUWIAFGZUWJUUMWPUWEUWIUWHFGZUWHAFGZ
      UXNUWEUUIUUJUWFYTZUVTUXJUWHOTZUXOUUPUXQUWDUUPUUIUUJUWFUEUXQUUJUUIUUOYMUUI
      UUJUWFYNPRUUPUVTUWDUWBRUXKUWEUWGOTAOTZUXRUWCYOUUPUXSUWDUVJRZUWGAOOYPQUUIU
      UJUWHUWFOYQYRUWEUWCOTUXSUXPEVAUXTUWCAOOYSQUWIUWHAUUAWGUWIACUUBPUUCUUDWIUU
      EYJUUFUUGUUHP $.

    $( If a Cartesian product is dominated by a union, then the base set is
       either weakly dominated by one factor of the union or dominated by the
       other.  Extracted from Lemma 2.3 of [KanamoriPincus] p. 420.
       (Contributed by Mario Carneiro, 15-May-2015.) $)
    unxpwdom $p |- ( ( A X. A ) ~<_ ( B u. C ) -> ( A ~<_* B \/ A ~<_ C ) ) $=
      ( vx cun cdom wbr cen wss wa cwdom wo cvv wcel syl wi ssexg sylancr inss2
      cin cxp cv wex reldom brrelex2i domeng ibi simprl indi simprr df-ss sylib
      wceq syl5eqr breqtrrd unxpwdom2 ssun1 adantr ssdomg mpisyl domwdom wdomtr
      wb expcom ssun2 domtr orim12d mpd exlimddv ) AAUAZBCEZFGZVJDUBZHGZVMVKIZJ
      ZABKGZACFGZLZDVLVPDUCZVLVKMNZVLVTVCVJVKFUDUEZDVJVKMUFOUGVLVPJZAVMBTZKGZAV
      MCTZFGZLZVSWCVJWDWFEZHGWHWCVJVMWIHVLVNVOUHWCWIVMVKTZVMVMBCUIWCVOWJVMUMVLV
      NVOUJVMVKUKULUNUOAWDWFUPOWCWEVQWGVRWCWDBKGZWEVQPWCWDBFGZWKWCBMNZWDBIWLWCB
      VKIWAWMBCUQVLWAVPWBURZBVKMQRVMBSWDBMUSUTWDBVAOWEWKVQAWDBVBVDOWCWFCFGZWGVR
      PWCCMNZWFCIWOWCCVKIWAWPCBVEWNCVKMQRVMCSWFCMUSUTWGWOVRAWFCVFVDOVGVHVI $.
  $}

  ${
    $d r y V $.  $d f r s t w x y z X $.
    $( The Hartogs function is weakly dominated by ` ~P ( X X. X ) ` .  This
       follows from a more precise analysis of the bound used in ~ hartogs to
       prove that ` ( har `` X ) ` is a set.  (Contributed by Mario Carneiro,
       15-May-2015.) $)
    harwdom $p |- ( X e. V -> ( har ` X ) ~<_* ~P ( X X. X ) ) $=
      ( vr vy vx vz vw vt vs vf wcel cfv cv cdm wss wa wceq cwdom wbr cvv copab
      char cid cres cxp w3a cdif wwe coi cpw wfo wfun crn cdom con0 crab wi cep
      wrex eqid hartogslem1 simp2i simp1i sqxpexg pwexg syl ssexg sylancr funex
      wfn funfn mpbi simp3i harval eqtr4d sylanbrc fowdom syl2anc ssdomg mpisyl
      a1i df-fo domwdom wdomtr ) BAKZBUBLZCMZNZBOUCWHUDWGOWGWHWHUEOUFWHWGUCUGZU
      HPDMZWHWIUINQPCDUAZNZRSZWLBBUEZUJZRSZWFWORSWEWKTKZWLWFWKUKZWMWEWKULZWLTKZ
      WQWLWOOZWSWEWKUMZEMBUNSEUOUPZQUQZEDFGHBIMGMZJMZLQHMFMZXFLQPXEXGURSPFWJUSG
      WJUSIHUAZJWKAICWKUTXHUTVAZVBZWEXAWOTKZWTXAWSXDXIVCZWEWNTKXKBAVDWNTVEVFZWL
      WOTVGVHTWKVIVHWEWKWLVJZXBWFQWRXNWEWSXNXJWKVKVLWAWEXBXCWFXAWSXDXIVMEABVNVO
      WLWFWKWBVPWKTWFWLVQVRWEWLWOUNSZWPWEXKXAXOXMXLWLWOTVSVTWLWOWCVFWFWLWOWDVR
      $.
  $}

  ${
    $d f g k x y z A $.  $d f g k y z B $.  $d f z V $.  $d f z W $.
    $( Describe an onto function from the indexed cartesian product to the
       indexed union.  Together with ~ ixpssmapg this shows that
       ` U_ x e. A B ` and ` X_ x e. A B ` have closely linked cardinalities.
       (Contributed by Mario Carneiro, 27-Aug-2015.) $)
    ixpiunwdom $p |- ( ( A e. V /\ U_ x e. A B e. W /\ X_ x e. A B =/= (/) ) ->
        U_ x e. A B ~<_* ( X_ x e. A B X. A ) ) $=
      ( vf vy vz vg vk wcel cv cfv cvv wral wfn syl weq sylib wceq ciun cixp c0
      wne w3a cmpt2 cxp wfo cwdom wbr wf vex elixp simprbi ssiun2 sseld ralimia
      nfv nfiu1 nfel2 fveq2 eleq1d cbvral adantl ralrimiva eqid cmap ixpssmap2g
      fmpt2 co wss 3ad2ant2 ovex ssex simp1 xpexg syl2anc simp2 syl3anc crn ffn
      fex2 dffn4 wb wrex cab wi wal wex eliun nfixp1 nfrex cif cmpt csb simplrr
      n0 wa iftrue csbeq1a equcoms eqcomd eleq12d syl5ibrcom wn adantr r19.21bi
      nfcsb1v iffalse pm2.61d ixpfn fndm dmex syl6eqelr mptelixpg mpbird cbvixp
      cdm nfcv syl6eleqr simprl fvmpt fveq1 eqeq2d rspc2ev exp32 rexlimd syl5bi
      ad2antrl exlimiv sylbi 3ad2ant3 alrimiv sylibr rnmpt2 syl6sseqr frn eqssd
      ssab foeq3 fowdom ) BDKZABCUAZEKZABCUBZUCUDZUEZFGUUEBGLZFLZMZUFZNKZUUEBUG
      ZUUCUUKUHZUUCUUMUIUJUUGUUMUUCUUKUKZUUMNKZUUDUULUUGUUJUUCKZGBOZFUUEOUUOUUG
      UURFUUEUUIUUEKZUURUUGUUSALZUUIMZUUCKZABOZUURUUSUVACKZABOZUVCUUSUUIBPUVEAB
      CUUIFULUMUNUVDUVBABUUTBKZCUUCUVAABCUOUPUQQUVBUUQAGBUVBGURAUUJUUCABCUSUTAG
      RUVAUUJUUCUUTUUHUUIVAVBVCSVDVEFGUUEBUUJUUCUUKUUKVFZVISZUUGUUENKZUUBUUPUUG
      UUEUUCBVGVJZVKZUVIUUDUUBUVKUUFABCEVHVLUUEUVJUUCBVGVMVNQUUBUUDUUFVOUUEBNDV
      PVQUUBUUDUUFVRUUMUUCUUKNEWBVSUUGUUNUUMUUKVTZUUKUHZUUGUUKUUMPZUVMUUGUUOUVN
      UVHUUMUUCUUKWAQUUMUUKWCSUUGUUCUVLTUUNUVMWDUUGUUCUVLUUGUUCHLZUUJTZGBWEZFUU
      EWEZHWFZUVLUUGUVOUUCKZUVRWGZHWHUUCUVSVKUUGUWAHUUFUUBUWAUUDUUFILZUUEKZIWIU
      WAIUUEWQUWCUWAIUVTUVOCKZABWEUWCUVRAUVOBCWJUWCUWDUVRABAUWBUUEABCWKZUTUVQAF
      UUEUWEUVQAURWLUWCUVFUWDUVRUWCUVFUWDWRZWRZJBJARZUVOJLZUWBMZWMZWNZUUEKUVFUV
      OUUTUWLMZTZUVRUWGUWLJBAUWICWOZUBZUUEUWGUWLUWPKZUWKUWOKZJBOZUWGUWRJBUWGUWI
      BKZWRZUWHUWRUXAUWRUWHUWDUWCUVFUWDUWTWPUWHUWKUVOUWOCUWHUVOUWJWSZUWHCUWOCUW
      OTAJAUWICWTZXAXBXCXDUXAUWRUWHXEZUWJUWOKZUWGUXEJBUWGUUTUWBMZCKZABOZUXEJBOU
      WCUXHUWFUWCUWBBPZUXHABCUWBIULZUMUNXFUXGUXEAJBUXGJURAUWJUWOAUWICXHZUTAJRUX
      FUWJCUWOUUTUWIUWBVAUXCXCVCSXGUXDUWKUWJUWOUWHUVOUWJXIVBXDXJVEUWGBNKUWQUWSW
      DUWGBUWBXRZNUWGUXIUXLBTUWCUXIUWFABCUWBXKXFBUWBXLQUWBUXJXMXNJBUWKUWONXOQXP
      AJBCUWOJCXSUXKUXCXQXTUWCUVFUWDYAUWGUWMUVOUVFUWMUVOTUWCUWDJUUTUWKUVOBUWLUX
      BUWLVFHULYBYIXBUVPUWNUVOUUHUWLMZTFGUWLUUTUUEBUUIUWLTUUJUXMUVOUUHUUIUWLYCY
      DGARUXMUWMUVOUUHUUTUWLVAYDYEVSYFYGYHYJYKYLYMUVRHUUCYSYNFGHUUEBUUJUUKUVGYO
      YPUUGUUOUVLUUCVKUVHUUMUUCUUKYQQYRUUCUVLUUMUUKYTQXPUUKNUUCUUMUUAVQ $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  ZF Set Theory - add the Axiom of Regularity
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Regularity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( Axiom of Regularity.  An axiom of Zermelo-Fraenkel set theory.  Also
       called the Axiom of Foundation.  A rather non-intuitive axiom that
       denies more than it asserts, it states (in the form of ~ zfreg ) that
       every nonempty set contains a set disjoint from itself.  One consequence
       is that it denies the existence of a set containing itself ( ~ elirrv ).
       A stronger version that works for proper classes is proved as ~ zfregs .
       (Contributed by NM, 14-Aug-1993.) $)
    ax-reg $a |- ( E. y y e. x ->
                 E. y ( y e. x /\ A. z ( z e. y -> -. z e. x ) ) ) $.

    $( Axiom of Regularity expressed more compactly.  (Contributed by NM,
       14-Aug-2003.) $)
    axreg2 $p |- ( x e. y ->
                 E. x ( x e. y /\ A. z ( z e. x -> -. z e. y ) ) ) $=
      ( wel wn wi wal wa wex ax-reg 19.23bi ) ABDZLCADCBDEFCGHAIABACJK $.
  $}

  ${
    $d A x y z $.
    $( The Axiom of Regularity with class variables.  (Contributed by NM,
       5-Aug-1994.)  Replace sethood hypothesis with sethood antecedent.
       (Revised by BJ, 27-Apr-2021.) $)
    zfregcl $p |-
              ( A e. V -> ( E. x x e. A -> E. x e. A A. y e. x -. y e. A ) ) $=
      ( vz wel wex wn cv wral wrex wi wcel wceq eleq2 exbidv ralbidv rexeqbi1dv
      notbid imbi12d nfre1 wal axreg2 df-ral rexbii df-rex bitr2i exlimi vtoclg
      wa sylib ) AEFZAGZBEFZHZBAIZJZAEIZKZLUPCMZAGZBIZCMZHZBUPJZACKZLECDURCNZUM
      VAUSVFVGULUTAURCUPOPUQVEAURCVGUOVDBUPVGUNVCURCVBOSQRTULUSAUQAURUAULULBAFU
      OLBUBZUJAGZUSAEBUCUSVHAURKVIUQVHAURUOBUPUDUEVHAURUFUGUKUHUI $.
  $}

  ${
    $d A x y $.
    $( The Axiom of Regularity using abbreviations.  Axiom 6 of [TakeutiZaring]
       p. 21.  This is called the "weak form."  Axiom Reg of [BellMachover]
       p. 480.  There is also a "strong form," not requiring that ` A ` be a
       set, that can be proved with more difficulty (see ~ zfregs ).
       (Contributed by NM, 26-Nov-1995.)  Replace sethood hypothesis with
       sethood antecedent.  (Revised by BJ, 27-Apr-2021.) $)
    zfreg $p |- ( ( A e. V /\ A =/= (/) ) -> E. x e. A ( x i^i A ) = (/) ) $=
      ( vy wcel c0 wne wa cv wex wn wral wrex cin wceq n0 biimpi anim2i zfregcl
      imp disj rexbii biimpri 3syl ) BCEZBFGZHUEAIZBEAJZHDIBEKDUGLZABMZUGBNFOZA
      BMZUFUHUEUFUHABPQRUEUHUJADBCSTULUJUKUIABDUGBUAUBUCUD $.
  $}

  ${
    $d x y A z $.
    zfregclOLD.1 $e |- A e. _V $.
    $( Obsolete version of ~ zfregcl as of 28-Apr-2021.  (Contributed by NM,
       5-Aug-1994.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    zfregclOLD $p |- ( E. x x e. A -> E. x e. A A. y e. x -. y e. A ) $=
      ( vz wel wex wn cv wral wrex wi wcel wceq eleq2 exbidv ralbidv rexeqbi1dv
      notbid imbi12d nfre1 wal axreg2 df-ral rexbii df-rex bitr2i sylib exlimi
      wa vtocl ) AEFZAGZBEFZHZBAIZJZAEIZKZLUPCMZAGZBIZCMZHZBUPJZACKZLECDURCNZUM
      VAUSVFVGULUTAURCUPOPUQVEAURCVGUOVDBUPVGUNVCURCVBOSQRTULUSAUQAURUAULULBAFU
      OLBUBZUJAGZUSAEBUCUSVHAURKVIUQVHAURUOBUPUDUEVHAURUFUGUHUIUK $.
  $}

  ${
    $d x A y $.
    zfregOLD.1 $e |- A e. _V $.
    $( Obsolete version of ~ zfreg as of 28-Apr-2021.  (Contributed by NM,
       26-Nov-1995.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    zfregOLD $p |- ( A =/= (/) -> E. x e. A ( x i^i A ) = (/) ) $=
      ( vy cv wcel wex wn wral wrex wne cin wceq zfregclOLD disj rexbii 3imtr4i
      c0 n0 ) AEZBFAGDEBFHDTIZABJBRKTBLRMZABJADBCNABSUBUAABDTBOPQ $.
  $}

  ${
    $d x A y $.
    zfreg2OLD.1 $e |- A e. _V $.
    $( Alternate version of ~ zfreg obsolete as of 28-Apr-2021.  (Contributed
       by NM, 17-Sep-2003.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    zfreg2OLD $p |- ( A =/= (/) -> E. x e. A ( A i^i x ) = (/) ) $=
      ( vy cv wcel wex wn wral wrex c0 wne cin wceq zfregclOLD n0 disjr 3imtr4i
      rexbii ) AEZBFAGDEBFHDTIZABJBKLBTMKNZABJADBCOABPUBUAABDBTQSR $.
  $}

  ${
    $d x y z $.
    $( The membership relation is irreflexive: no set is a member of itself.
       Theorem 105 of [Suppes] p. 54.  (This is trivial to prove from ~ zfregfr
       and ~ efrirr , but this proof is direct from the Axiom of Regularity.)
       (Contributed by NM, 19-Aug-1993.) $)
    elirrv $p |- -. x e. x $=
      ( vz vy cv wcel csn wn wral wrex cvv wex snex eleq1 vsnid zfregcl mp2 weq
      spei velsn wi ax9 equcoms com12 syl5bi notbid rspccv nsyli con2d ralrimiv
      mt2i ralnex sylib mt2 ) ADZUNEZBDZUNFZEZGZBCDZHZCUQIZUQJEUTUQEZCKVBUNLVCU
      NUQEZCAUTUNUQMANZRCBUQJOPUOVAGZCUQHVBGUOVFCUQUOVAVCUOVCUNUTEZVAVCCAQZUOVG
      CUNSVHUOVGUOVGTACACAUAUBUCUDVAVGVDVEUSVDGBUNUTBAQURVDUPUNUQMUEUFUJUGUHUIV
      ACUQUKULUM $.
  $}

  ${
    $d A x $.
    $( No class is a member of itself.  Exercise 6 of [TakeutiZaring] p. 22.
       (Contributed by NM, 7-Aug-1994.)  (Proof shortened by Andrew Salmon,
       9-Jul-2011.) $)
    elirr $p |- -. A e. A $=
      ( vx wcel wn wi cv wceq id eleq12d notbid elirrv vtoclg pm2.01 ax-mp ) AA
      CZODZEPBFZQCZDPBAAQAGZROSQAQASHZTIJBKLOMN $.
  $}

  $( A class is equal to its successor iff it is a proper class (assuming the
     Axiom of Regularity).  (Contributed by NM, 9-Jul-2004.)  (Proof shortened
     by BJ, 16-Apr-2019.) $)
  sucprcreg $p |- ( -. A e. _V <-> suc A = A ) $=
    ( cvv wcel wn csuc sucprc wa elirr csn wss cun df-suc eqeq1i ssequn2 bitr4i
    wceq biimpi snidg ssel2 syl2an mto imnani impbii ) ABCZDAEZAPZAFUFUDUFUDGAA
    CZAHUFAIZAJZAUHCUGUDUFUIUFAUHKZAPUIUEUJAALMUHANOQABRUHAASTUAUBUC $.

  $( The Russell class is equal to the universe ` _V ` .  Exercise 5 of
     [TakeutiZaring] p. 22.  (Contributed by Alan Sare, 4-Oct-2008.) $)
  ruv $p |- { x | x e/ x } = _V $=
    ( cvv weq cab cv wnel df-v equid elirrv nelir 2th abbii eqtr2i ) BAACZADAEZ
    OFZADAGNPANPAHOOAIJKLM $.

  $( Alternate proof of ~ ru , simplified using (indirectly) the Axiom of
     Regularity ~ ax-reg .  (Contributed by Alan Sare, 4-Oct-2008.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  ruALT $p |- { x | x e/ x } e/ _V $=
    ( cv wnel cab cvv vprc nelir wceq wb ruv neleq1 ax-mp mpbir ) ABZNCADZECZEE
    CZEEFGOEHPQIAJOEEKLM $.

  ${
    $d x y A $.
    $( The epsilon relation is well-founded on any class.  (Contributed by NM,
       26-Nov-1995.) $)
    zfregfr $p |- _E Fr A $=
      ( vx vy cep wfr cv wss c0 wne wa cin wceq wrex dfepfr cvv wcel zfreg mpan
      wi vex incom eqeq1i rexbii sylib adantl mpgbir ) ADEBFZAGZUGHIZJUGCFZKZHL
      ZCUGMZSBBCANUIUMUHUIUJUGKZHLZCUGMZUMUGOPUIUPBTCUGOQRUOULCUGUNUKHUJUGUAUBU
      CUDUEUF $.
  $}

  $( No class has 2-cycle membership loops.  Theorem 7X(b) of [Enderton]
     p. 206.  (Contributed by NM, 16-Oct-1996.)  (Revised by Mario Carneiro,
     25-Jun-2015.) $)
  en2lp $p |- -. ( A e. B /\ B e. A ) $=
    ( cvv wcel wa wn cep wfr zfregfr efrn2lp mpan elex anim12i con3i pm2.61i )
    ACDZBCDZEZABDZBADZEZFZCGHRUBCICABJKUARSPTQABLBALMNO $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Lemma for ~ en3lp .  (Contributed by Alan Sare, 28-Oct-2011.) $)
    en3lplem1 $p |- ( ( A e. B /\ B e. C /\ C e. A ) ->
                      ( x = A -> ( x i^i { A , B , C } ) =/= (/) ) ) $=
      ( wcel w3a cv wceq ctp cin c0 wne simp3 syl5ibrcom tpid3g 3ad2ant3 inelcm
      eleq2 sylan2 expcom syld ) BCEZCDEZDBEZFZAGZBHZDUFEZUFBCDIZJKLZUEUHUGUDUB
      UCUDMUFBDRNUHUEUJUEUHDUIEZUJUDUBUKUCDBBCOPDUFUIQSTUA $.

    $( Lemma for ~ en3lp .  (Contributed by Alan Sare, 28-Oct-2011.) $)
    en3lplem2 $p |- ( ( A e. B /\ B e. C /\ C e. A ) -> ( x e. { A , B , C }
                      -> ( x i^i { A , B , C } ) =/= (/) ) ) $=
      ( wcel ctp cin c0 wne wceq wo wi en3lplem1 a1d tprot ineq2i neeq1i syl8ib
      imp syl6ib w3a cv 3comr bicomi jao sylsyld 3coml w3o cab idd dftp2 eleq2i
      wa abid df-3or mpjaod ex ) BCEZCDEZDBEZUAZAUBZBCDFZEZVBVCGZHIZVAVDUMVBBJZ
      VBCJZKZVFVBDJZVAVDVIVFLZVAVGVFLVDVHVFLVKABCDMVAVDVHVBCDBFZGZHIZVFVAVHVNLZ
      VDUSUTURVOACDBMUCNVFVNVEVMHVCVLVBBCDOPQUDRVGVFVHUEUFSVAVDVJVFLVAVDVJVBDBC
      FZGZHIZVFVAVJVRLZVDUTURUSVSADBCMUGNVQVEHVPVCVBDBCOPQRSVAVDVIVJKZVAVDVGVHV
      JUHZVTVAVDVBWAAUIZEZWAVAVDVDWCVAVDUJVCWBVBABCDUKULTWAAUNTVGVHVJUOTSUPUQ
      $.

    $( No class has 3-cycle membership loops.  This proof was automatically
       generated from the virtual deduction proof ~ en3lpVD using a translation
       program.  (Contributed by Alan Sare, 24-Oct-2011.) $)
    en3lp $p |- -. ( A e. B /\ B e. C /\ C e. A ) $=
      ( vx wcel w3a wn ctp wceq noel eleq2 mtbiri tpid3g nsyl intn3an3d wne cin
      c0 cv cvv wrex tpex zfreg en3lplem2 com12 necon2bd rexlimiv syl pm2.61ine
      mpan ) ABEZBCEZCAEZFZGZABCHZRUPRIZUMUKULUQCUPEZUMUQURCRECJUPRCKLCAABMNOUP
      RPZDSZUPQZRIZDUPUAZUOUPTEUSVCABCUBDUPTUCUJVBUODUPUTUPEZUNVARUNVDVARPDABCU
      DUEUFUGUHUI $.
  $}

  ${
    preleq.1 $e |- A e. _V $.
    preleq.2 $e |- B e. _V $.
    preleq.3 $e |- C e. _V $.
    preleq.4 $e |- D e. _V $.
    $( Equality of two unordered pairs when one member of each pair contains
       the other member.  (Contributed by NM, 16-Oct-1996.) $)
    preleq $p |- ( ( ( A e. B /\ C e. D ) /\ { A , B } = { C , D } ) ->
                   ( A = C /\ B = D ) ) $=
      ( cpr wceq wcel wa wn wo preq12b biimpi ord en2lp eleq12 anbi1d mtbiri
      syl6 con4d impcom ) ABICDIJZABKZCDKZLZACJBDJLZUEUIUHUEUIMADJBCJLZUHMUEUIU
      JUEUIUJNABCDEFGHOPQUJUHDCKZUGLDCRUJUFUKUGADBCSTUAUBUCUD $.

    $( Theorem for alternate representation of ordered pairs, requiring the
       Axiom of Regularity ~ ax-reg (via the ~ preleq step).  See ~ df-op for a
       description of other ordered pair representations.  Exercise 34 of
       [Enderton] p. 207.  (Contributed by NM, 16-Oct-1996.) $)
    opthreg $p |- ( { A , { A , B } } = { C , { C , D } } <->
                   ( A = C /\ B = D ) ) $=
      ( cpr wceq wa wcel prid1 prex preleq mpanl12 preq1 eqeq1d preqr2 syl6bi
      imdistani syl adantr preq12 preq2d eqtrd impbii ) AABIZIZCCDIZIZJZACJZBDJ
      ZKZULUMUHUJJZKZUOAUHLCUJLULUQABEMCDGMAUHCUJEABNGCDNOPUMUPUNUMUPCBIZUJJUNU
      MUHURUJACBQRBDCFHSTUAUBUOUICUHIZUKUMUIUSJUNACUHQUCUOUHUJCABCDUDUEUFUG $.
  $}

  $( The successor operation behaves like a one-to-one function (assuming the
     Axiom of Regularity).  Exercise 35 of [Enderton] p. 208 and its converse.
     (Contributed by NM, 25-Oct-2003.) $)
  suc11reg $p |- ( suc A = suc B <-> A = B ) $=
    ( csuc wceq cvv wcel wi wa wn wo sucidg eleq2 elsucg sylibd imp com23 eqcom
    ord ex sucexb en2lp mpbi syl5ibcom syl5ibrcom syl6ib jaao mpi notbii nelneq
    ianor syl2anb pm2.21d ancoms syl5bi sucprc eqeqan12d biimpd 4cases impbii
    suceq ) ACZBCZDZABDZAEFZBEFZVCVDGZVEVFHABFZIZBAFZIZJZVGVHVJHIVLABUAVHVJUJUB
    VEVIVGVFVKVEVCVIVDVEVCVIVDGVEVCHVHVDVEVCVHVDJZVEVCAVBFZVMVEAVAFVCVNAEKVAVBA
    LUCABEMNORSPVFVCVKVDVFVCVKVDGVFVCHZVKBADZVDVOVJVPVFVCVJVPJZVFVCBVAFZVQVFVRV
    CBVBFBEKVAVBBLUDBAEMNORBAQUESPUFUGVEVFIZHVCVDVEVAEFZVBEFZIVCIVSATZVFWABTZUH
    VAVBEUIUKULVCVBVADZVEIZVFHZVDVAVBQWFWDVDVFWEWDIZVFWAVTIWGWEWCVEVTWBUHVBVAEU
    IUKUMULUNWEVSHVCVDWEVSVAAVBBAUOBUOUPUQURABUTUS $.

  ${
    $d x y A $.
    $( Assuming ~ ax-reg , an ordinal is a transitive class on which inclusion
       satisfies trichotomy.  (Contributed by Scott Fenton, 27-Oct-2010.) $)
    dford2 $p |- ( Ord A <-> ( Tr A /\
                    A. x e. A A. y e. A ( x e. y \/ x = y \/ y e. x ) ) ) $=
      ( word wtr cep wwe wa wel weq w3o wral df-ord wbr wfr zfregfr dfwe2 bitri
      cv epel mpbiran biid 3orbi123i 2ralbii anbi2i ) CDCEZCFGZHUFABIZABJZBAIZK
      ZBCLACLZHCMUGULUFUGASZBSZFNZUIUNUMFNZKZBCLACLZULUGCFOURCPABCFQUAUQUKABCCU
      OUHUIUIUPUJABTUIUBBATUCUDRUER $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom of Infinity equivalents
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( First we prove the equivalence of our version of Infinity with
     some others. $)

  ${
    $d x y z w v f $.
    inf0.1 $e |- _om e. _V $.
    $( Our Axiom of Infinity derived from existence of omega.  The proof shows
       that the especially contrived
       class " ` ran ( rec ( ( v e. _V |-> suc v ) , x ) |`` _om ) ` " exists,
       is a subset of its union, and contains a given set ` x ` (and thus is
       nonempty).  Thus, it provides an example demonstrating that a set ` y `
       exists with the necessary properties demanded by ~ ax-inf .
       (Contributed by NM, 15-Oct-1996.) $)
    inf0 $p |- E. y ( x e. y /\
                              A. z ( z e. y -> E. w ( z e. w /\ w e. y ) ) ) $=
      ( vv vf cv cvv csuc com wcel wel wa wex wi c0 wceq ax-mp eleq2 crn frfnom
      cmpt crdg cres wal cfv vex fr0g wfn peano1 fnfvelrn eqeltrri wrex fvelrnb
      mp2an fvex sucid sucex eqid suceq frsucmpt2 mpan2 syl5eleqr eleq1 peano2b
      syl5ib mpan sylbi a1i jcad anbi12d spcev syl6com rexlimiv ax-gen cdm wfun
      wb fndm eqeltri fnfun funrnex mp2 anbi2d exbidv imbi12d albidv ) AHZFIFHZ
      JZUCZWIUDKUEZUAZLZCHZWNLZCDMZDHZWNLZNZDOZPZCUFZABMZCBMZWRDBMZNZDOZPZCUFZN
      ZBOQWMUGZWIWNWIILXMWIRAUHWIIWLUISWMKUJZQKLXMWNLWIWLUBZUKKQWMULUPUMXCCWQGH
      ZWMUGZWPRZGKUNZXBXNWQXSVSXOGKWPWMUOSXRXBGKXRXPKLZWPXPJZWMUGZLZYBWNLZNZXBX
      RXTYCYDXTXQYBLXRYCXTXQXQJZYBXQXPWMUQZURXTYFILYBYFRXQYGUSFCWIXPWKYFWPJWMIW
      MUTWPWJVAWPXQVAVBVCVDXQWPYBVEVGXTYDPXRXTYAKLZYDXPVFXNYHYDXOKYAWMULVHVIVJV
      KXAYEDYBYAWMUQWSYBRWRYCWTYDWSYBWPTWSYBWNVEVLVMVNVOVIVPXLWOXDNBWNWMVQZILWM
      VRZWNILYIKIXNYIKRXOKWMVTSEWAXNYJXOKWMWBSIWMWCWDBHZWNRZXEWOXKXDYKWNWITYLXJ
      XCCYLXFWQXIXBYKWNWPTYLXHXADYLXGWTWRYKWNWSTWEWFWGWHVLVMUP $.
  $}

  ${
    inf1.1 $e |- E. x ( y e. x /\
                 A. y ( y e. x -> E. z ( y e. z /\ z e. x ) ) ) $.
    $( Variation of Axiom of Infinity (using ~ zfinf as a hypothesis).  Axiom
       of Infinity in [FreydScedrov] p. 283.  (Contributed by NM, 14-Oct-1996.)
       (Revised by David Abernethy, 1-Oct-2013.) $)
    inf1 $p |- E. x ( x =/= (/) /\
                 A. y ( y e. x -> E. z ( y e. z /\ z e. x ) ) ) $=
      ( wel wa wex wi wal cv c0 wne ne0i anim1i eximii ) BAEZPBCECAEFCGHBIZFAJZ
      KLZQFADPSQRBJMNO $.

    $d x y z $.
    $( Variation of Axiom of Infinity.  There exists a nonempty set that is a
       subset of its union (using ~ zfinf as a hypothesis).  Abbreviated
       version of the Axiom of Infinity in [FreydScedrov] p. 283.  (Contributed
       by NM, 28-Oct-1996.) $)
    inf2 $p |- E. x ( x =/= (/) /\ x C_ U. x ) $=
      ( cv c0 wne cuni wss wa wex wel wi wal inf1 wcel dfss2 eluni imbi2i albii
      bitri anbi2i exbii mpbir ) AEZFGZUEUEHZIZJZAKUFBALZBCLCALJCKZMZBNZJZAKABC
      DOUIUNAUHUMUFUHUJBEZUGPZMZBNUMBUEUGQUQULBUPUKUJCUOUERSTUAUBUCUD $.
  $}

  ${
    $d x y w v u f $.  $d v u f G $.  $d v u f F $.  $d v u f A $.
    $d v u f B $.
    inf3lem.1 $e |- G = ( y e. _V |-> { w e. x | ( w i^i x ) C_ y } ) $.
    inf3lem.2 $e |- F = ( rec ( G , (/) ) |` _om ) $.
    inf3lem.3 $e |- A e. _V $.
    inf3lem.4 $e |- B e. _V $.
    $( Lemma for our Axiom of Infinity => standard Axiom of Infinity.  See
       ~ inf3 for detailed description.  (Contributed by NM, 28-Oct-1996.) $)
    inf3lema $p |- ( A e. ( G ` B ) <-> ( A e. x /\ ( A i^i x ) C_ B ) ) $=
      ( vf vv cv cin wss wceq ineq1 cvv crab cfv sseq1d wcel sseq2 rabbidv cmpt
      cbvrabv syl6eq cbvmptv eqtri vex rabex fvmpt ax-mp elrab2 ) LNZANZOZEPZDU
      QOZEPLDUQEGUAZUPDQURUTEUPDUQRUBESUCVAUSLUQTZQKMEURMNZPZLUQTZVBSGVCEQVDUSL
      UQVCEURUDUEGBSCNZUQOZBNZPZCUQTZUFMSVEUFHBMSVJVEVHVCQZVJVGVCPZCUQTVEVKVIVL
      CUQVHVCVGUDUEVLVDCLUQVFUPQVGURVCVFUPUQRUBUGUHUIUJUSLUQAUKULUMUNUO $.

    $( Lemma for our Axiom of Infinity => standard Axiom of Infinity.  See
       ~ inf3 for detailed description.  (Contributed by NM, 28-Oct-1996.) $)
    inf3lemb $p |- ( F ` (/) ) = (/) $=
      ( c0 cfv crdg com cres fveq1i cvv wcel wceq 0ex fr0g ax-mp eqtri ) LFMLGL
      NOPZMZLLFUEIQLRSUFLTUALRGUBUCUD $.

    $( Lemma for our Axiom of Infinity => standard Axiom of Infinity.  See
       ~ inf3 for detailed description.  (Contributed by NM, 28-Oct-1996.) $)
    inf3lemc $p |- ( A e. _om -> ( F ` suc A ) = ( G ` ( F ` A ) ) ) $=
      ( com wcel csuc c0 crdg cres cfv frsuc fveq1i fveq2i 3eqtr4g ) DLMDNZGOPL
      QZRDUDRZGRUCFRDFRZGRODGSUCFUDITUFUEGDFUDITUAUB $.

    $( Lemma for our Axiom of Infinity => standard Axiom of Infinity.  See
       ~ inf3 for detailed description.  (Contributed by NM, 28-Oct-1996.) $)
    inf3lemd $p |- ( A e. _om -> ( F ` A ) C_ x ) $=
      ( vv vu com wcel cfv cv wss c0 wceq wi fveq2 inf3lemb syl6eq 0ss syl6eqss
      a1d wne wa csuc wrex vex inf3lemc eleq2d cin fvex inf3lema simplbi syl6bi
      nnsuc ssrdv sseq1d syl5ibrcom rexlimiv syl expcom pm2.61ine ) DNOZDFPZAQZ
      RZUADSDSTZVKVHVLVISVJVLVISFPSDSFUBABCDEFGHIJKUCUDVJUEUFUGVHDSUHZVKVHVMUID
      LQZUJZTZLNUKVKLDUTVPVKLNVNNOZVKVPVOFPZVJRVQMVRVJVQMQZVROVSVNFPZGPZOZVSVJO
      ZVQVRWAVSABCVNEFGHILULKUMUNWBWCVSVJUOVTRABCVSVTFGHIMULVNFUPUQURUSVAVPVIVR
      VJDVOFUBVBVCVDVEVFVG $.

    $( Lemma for our Axiom of Infinity => standard Axiom of Infinity.  See
       ~ inf3 for detailed description.  (Contributed by NM, 28-Oct-1996.) $)
    inf3lem1 $p |- ( A e. _om -> ( F ` A ) C_ ( F ` suc A ) ) $=
      ( vv cfv csuc wss c0 wceq fveq2 suceq wcel vu fveq2d sseq12d inf3lemb 0ss
      cv eqsstri com wa wi cin sstr2 com12 anim2d inf3lemc eleq2d fvex inf3lema
      vex syl6bb peano2b sucex sylbi imbi12d syl5ibr imp ssrdv ex finds ) LUFZF
      MZVJNZFMZOPFMZPNZFMZOUAUFZFMZVQNZFMZOZVTVSNZFMZOZDFMZDNZFMZOLUADVJPQZVKVN
      VMVPVJPFRWHVLVOFVJPSUBUCVJVQQZVKVRVMVTVJVQFRWIVLVSFVJVQSUBUCVJVSQZVKVTVMW
      CVJVSFRWJVLWBFVJVSSUBUCVJDQZVKWEVMWGVJDFRWKVLWFFVJDSUBUCVNPVPABCDDFGHIJJU
      DVPUEUGVQUHTZWAWDWLWAUILVTWCWLWAVJVTTZVJWCTZUJZWAWOWLVJAUFZTZVJWPUKZVROZU
      IZWQWRVTOZUIZUJWAWSXAWQWSWAXAWRVRVTULUMUNWLWMWTWNXBWLWMVJVRGMZTWTWLVTXCVJ
      ABCVQDFGHIUAUSZJUOUPABCVJVRFGHILUSZVQFUQURUTWLWNVJVTGMZTXBWLWCXFVJWLVSUHT
      WCXFQVQVAABCVSDFGHIVQXDVBJUOVCUPABCVJVTFGHIXEVSFUQURUTVDVEVFVGVHVI $.

    $( Lemma for our Axiom of Infinity => standard Axiom of Infinity.  See
       ~ inf3 for detailed description.  (Contributed by NM, 28-Oct-1996.) $)
    inf3lem2 $p |- ( ( x =/= (/) /\ x C_ U. x ) ->
                    ( A e. _om -> ( F ` A ) =/= x ) ) $=
      ( vv vf wcel c0 wne wa cfv wi wceq vu com cv cuni wss fveq2 neeq1d imbi2d
      csuc inf3lemb eqeq1i eqcom necon3i adantr vex inf3lemd wn wex wpss df-pss
      sylbb pssnel sylbir ssel eluni syl6ib eleq2 biimparc inf3lemc eleq2d elin
      fvex inf3lema simprbi sseld syl5bir syl6bi syl5 com23 exp5c com34 exlimdv
      cin impd sylan9r pm2.43d necon3bd syl6 sylani exp4b pm2.43a adantld finds
      id a2d com12 ) DUBNAUCZOPZWQWQUDZUEZQZDFRZWQPZXALUCZFRZWQPZSXAOFRZWQPZSXA
      UAUCZFRZWQPZSXAXIUIZFRZWQPZSXAXCSLUADXDOTZXFXHXAXOXEXGWQXDOFUFUGUHXDXITZX
      FXKXAXPXEXJWQXDXIFUFUGUHXDXLTZXFXNXAXQXEXMWQXDXLFUFUGUHXDDTZXFXCXAXRXEXBW
      QXDDFUFUGUHWRXHWTXGWQWQOXGWQTOWQTWQOTXGOWQABCDEFGHIJKUJUKOWQULVAUMUNXIUBN
      ZXAXKXNXSWTXKXNSZWRWTXSXTXSWTXSXKXNXSXSWTQZXJWQUEZXKXNABCXIEFGHIUAUOZKUPY
      BXKQZXDWQNZXDXJNZUQZQZLURZYAXNYDXJWQUSYIXJWQUTLXJWQVBVCYAYHXNLYAYEYGXNYAY
      EXMWQTZYFSZYGXNSYAYEYKWTYEXDMUCZNZYLWQNZQZMURZXSYEYKSZWTYEXDWSNYPWQWSXDVD
      MXDWQVEVFXSYOYQMXSYMYNYQXSYMYEYNYKXSYMYEYNYJYFXSYNYJQZYMYEQZYFYRYLXMNZXSY
      SYFSZYJYTYNXMWQYLVGVHXSYTYLXJGRZNZUUAXSXMUUBYLABCXIEFGHIYCKVIVJYSXDYLWQWC
      ZNUUCYFXDYLWQVKUUCUUDXJXDUUCYNUUDXJUEABCYLXJFGHIMUOXIFVLVMVNVOVPVQVRVSVTW
      AWDWBWEWFYKYFXMWQYKWNWGWHWDWBVRWIWJWKWLWOWMWP $.

    $( Lemma for our Axiom of Infinity => standard Axiom of Infinity.  See
       ~ inf3 for detailed description.  In the proof, we invoke the Axiom of
       Regularity in the form of ~ zfreg .  (Contributed by NM,
       29-Oct-1996.) $)
    inf3lem3 $p |- ( ( x =/= (/) /\ x C_ U. x ) ->
                    ( A e. _om -> ( F ` A ) =/= ( F ` suc A ) ) ) $=
      ( vv wcel cv c0 wne wss wa cfv cin cuni cdif csuc inf3lemd inf3lem2 com12
      com pssdifn0 syl6an wceq wrex cvv vex difexi zfreg mpan wn eldifi biimpri
      inssdif0 anim12i inf3lema sylibr inf3lemc eleq2d syl5ibr wi eldifn adantr
      fvex jcad eleq2 biimprd iman sylib necon2ai syl6 expd rexlimdv syl5 syldc
      a1i ) DUGMZANZOPWDWDUAQRZWDDFSZUBZOPZWFDUCFSZPZWCWFWDQWEWFWDPZWHABCDEFGHI
      JKUDWEWCWKABCDEFGHIJKUEUFWFWDUHUIWHLNZWGTOUJZLWGUKZWCWJWGULMWHWNWDWFAUMUN
      LWGULUOUPWCWMWJLWGWCWLWGMZWMWJWCWOWMRZWLWIMZWLWFMZUQZRZWJWCWPWQWSWPWQWCWL
      WFGSZMZWPWLWDMZWLWDTWFQZRXBWOXCWMXDWLWDWFURXDWMWLWDWFUTUSVAABCWLWFFGHILUM
      DFVJVBVCWCWIXAWLABCDEFGHIJKVDVEVFWPWSVGWCWOWSWMWLWDWFVHVIWBVKWTWFWIWFWIUJ
      ZWQWRVGWTUQXEWRWQWFWIWLVLVMWQWRVNVOVPVQVRVSVTWA $.

    $( Lemma for our Axiom of Infinity => standard Axiom of Infinity.  See
       ~ inf3 for detailed description.  (Contributed by NM, 29-Oct-1996.) $)
    inf3lem4 $p |- ( ( x =/= (/) /\ x C_ U. x ) ->
                    ( A e. _om -> ( F ` A ) C. ( F ` suc A ) ) ) $=
      ( cv c0 wne cuni wss wa com wcel cfv csuc wpss inf3lem1 a1i inf3lem3 jcad
      wi df-pss syl6ibr ) ALZMNUJUJOPQZDRSZDFTZDUAFTZPZUMUNNZQUMUNUBUKULUOUPULU
      OUGUKABCDEFGHIJKUCUDABCDEFGHIJKUEUFUMUNUHUI $.

    $( Lemma for our Axiom of Infinity => standard Axiom of Infinity.  See
       ~ inf3 for detailed description.  (Contributed by NM, 29-Oct-1996.) $)
    inf3lem5 $p |- ( ( x =/= (/) /\ x C_ U. x ) ->
                    ( ( A e. _om /\ B e. A ) -> ( F ` B ) C. ( F ` A ) ) ) $=
      ( com wcel wa cfv wpss wi wceq fveq2 psseq2d vv vu cv wne cuni wss ancoms
      c0 elnn csuc word nnord ordsucss syl adantr peano2b imbi2d inf3lem4 com12
      sylbir vex psstr expcom syl6com a2d ad2antrr findsg sylan2b syld impancom
      ex mpd ) DLMZEDMZNZAUCZUHUDVPVPUEUFNZEFOZDFOZPZVOELMZVQVTQZVNVMWAEDUIUGVM
      WAVNWBVMWANVNEUJZDUFZWBVMVNWDQZWAVMDUKWEDULEDUMUNUOWAVMWCLMZWDWBQEUPZVMWF
      NWDWBVQVRUAUCZFOZPZQVQVRWCFOZPZQZVQVRUBUCZFOZPZQZVQVRWNUJZFOZPZQZWBUAUBDW
      CWHWCRZWJWLVQXBWIWKVRWHWCFSTUQWHWNRZWJWPVQXCWIWOVRWHWNFSTUQWHWRRZWJWTVQXD
      WIWSVRWHWRFSTUQWHDRZWJVTVQXEWIVSVRWHDFSTUQWFWAWMWGVQWAWLABCEEFGHIKKURUSUT
      WNLMZWQXAQWFWCWNUFXFVQWPWTVQXFWOWSPZWPWTQABCWNEFGHIUBVAKURWPXGWTVRWOWSVBV
      CVDVEVFVGVKVHVIVJVLUS $.

    $( Lemma for our Axiom of Infinity => standard Axiom of Infinity.  See
       ~ inf3 for detailed description.  (Contributed by NM, 29-Oct-1996.) $)
    inf3lem6 $p |- ( ( x =/= (/) /\ x C_ U. x ) -> F : _om -1-1-> ~P x ) $=
      ( vv vu cv c0 wss wa com wceq wcel wne cuni cpw wf cfv wi wral wo wn wpss
      wf1 vex inf3lem5 dfpss2 simprbi syl6 expdimp adantrl eqcom sylnib adantrr
      jaod con2d wb word nnord ordtri3 syl2an adantl sylibrd ralrimivva wfn crn
      crdg cres frfnom fneq1 mpbiri wrex fvelrnb inf3lemd fvex sylibr syl5ibcom
      elpw eleq1 rexlimiv syl6bi ssrdv ancli mp2b df-f mpbir jctil dff13 ) ANZO
      UAWPWPUBPQZRWPUCZFUDZLNZFUEZMNZFUEZSZWTXBSZUFZMRUGLRUGZQRWRFUKWQXGWSWQXFL
      MRRWQWTRTZXBRTZQZQZXDWTXBTZXBWTTZUHZUIZXEXKXNXDXKXLXDUIZXMWQXIXLXPUFXHWQX
      IXLXPWQXIXLQXAXCUJZXPABCXBWTFGHIMULZLULZUMXQXAXCPXPXAXCUNUOUPUQURWQXHXMXP
      UFXIWQXHXMXPWQXHXMQXCXAUJZXPABCWTXBFGHIXSXRUMXTXCXASZXDXTXCXAPYAUIXCXAUNU
      OXCXAUSUTUPUQVAVBVCXJXEXOVDZWQXHWTVEXBVEYBXIWTVFXBVFWTXBVGVHVIVJVKWSFRVLZ
      FVMZWRPZQZFGOVNRVOZSZYCYFIYHYCYGRVLOGVPRFYGVQVRYCYEYCMYDWRYCXBYDTXAXBSZLR
      VSXBWRTZLRXBFVTYIYJLRXHXAWRTZYIYJXHXAWPPYKABCWTEFGHIXSKWAXAWPWTFWBWEWCXAX
      BWRWFWDWGWHWIWJWKRWRFWLWMWNLMRWRFWOWC $.

    $( Lemma for our Axiom of Infinity => standard Axiom of Infinity.  See
       ~ inf3 for detailed description.  In the proof, we invoke the Axiom of
       Replacement in the form of ~ f1dmex .  (Contributed by NM, 29-Oct-1996.)
       (Proof shortened by Mario Carneiro, 19-Jan-2013.) $)
    inf3lem7 $p |- ( ( x =/= (/) /\ x C_ U. x ) -> _om e. _V ) $=
      ( cv c0 wne cuni wss wa com cvv wcel cpw inf3lem6 vpwex f1dmex sylancl
      wf1 ) ALZMNUGUGOPQRUGUAZFUFUHSTRSTABCDEFGHIJKUBAUCRUHSFUDUE $.
  $}

  ${
    $d x y w $.
    inf3.1 $e |- E. x ( x =/= (/) /\ x C_ U. x ) $.
    $( Note: the special <HTML> tag is handled in mmwtex.c.  All comment text
       between <HTML> and </HTML> is passed as-is to the web page, except
       that ` (symbols) ` , ~ (label) , and [(reference)] markups are still
       interpreted. $)
    $( Our Axiom of Infinity ~ ax-inf implies the standard Axiom of Infinity.
       The hypothesis is a variant of our Axiom of Infinity provided by
       ~ inf2 , and the conclusion is the version of the Axiom of Infinity
       shown as Axiom 7 in [TakeutiZaring] p. 43.  (Other standard versions are
       proved later as ~ axinf2 and ~ zfinf2 .)  The main proof is provided by
       ~ inf3lema through ~ inf3lem7 , and this final piece eliminates the
       auxiliary hypothesis of ~ inf3lem7 .  This proof is due to
       Ian Sutherland, Richard Heck, and Norman Megill and was posted
       on Usenet as shown below.  Although the result is not new, the authors
       were unable to find a published proof.
       <HTML>
       <PRE>
       (As posted to sci.logic on 30-Oct-1996, with annotations added.)

       Theorem:  The statement "There exists a nonempty set that is a subset
       of its union" implies the Axiom of Infinity.

       Proof:  Let X be a nonempty set which is a subset of its union; the
       latter
       property is equivalent to saying that for any y in X, there exists a z
       in X
       such that y is in z.

       Define by finite recursion a function F:omega-->(power X) such that
       F_0 = 0  (See ~ inf3lemb .)
       F_n+1 = {y&lt;X | y^X subset F_n}  (See ~ inf3lemc .)
       Note: ^ means intersect, &lt; means \in ("element of").
       (Finite recursion as typically done requires the existence of omega;
       to avoid this we can just use transfinite recursion restricted to omega.
       F is a class-term that is not necessarily a set at this point.)

       Lemma 1.  F_n subset F_n+1.  (See ~ inf3lem1 .)
       Proof:  By induction:  F_0 subset F_1.  If y &lt; F_n+1, then y^X subset
       F_n,
       so if F_n subset F_n+1, then y^X subset F_n+1, so y &lt; F_n+2.

       Lemma 2.  F_n =/= X.  (See ~ inf3lem2 .)
       Proof:  By induction:  F_0 =/= X because X is not empty.  Assume F_n =/=
       X.
       Then there is a y in X that is not in F_n.  By definition of X, there is
       a
       z in X that contains y.  Suppose F_n+1 = X.  Then z is in F_n+1, and z^X
       contains y, so z^X is not a subset of F_n, contrary to the definition of
       F_n+1.

       Lemma 3.  F_n =/= F_n+1.  (See ~ inf3lem3 .)
       Proof:  Using the identity y^X subset F_n &lt;-> y^(X-F_n) = 0, we have
       F_n+1 = {y&lt;X | y^(X-F_n) = 0}.  Let q = {y&lt;X-F_n | y^(X-F_n) = 0}.
       Then q subset F_n+1.  Since X-F_n is not empty by Lemma 2 and q is the
       set of \in-minimal elements of X-F_n, by Foundation q is not empty, so q
       and therefore F_n+1 have an element not in F_n.

       Lemma 4.  F_n proper_subset F_n+1.  (See ~ inf3lem4 .)
       Proof:  Lemmas 1 and 3.

       Lemma 5.  F_m proper_subset F_n, m &lt; n.  (See ~ inf3lem5 .)
       Proof:  Fix m and use induction on n > m.  Basis: F_m proper_subset
       F_m+1
       by Lemma 4.  Induction:  Assume F_m proper_subset F_n.  Then since F_n
       proper_subset F_n+1, F_m proper_subset F_n+1 by transitivity of proper
       subset.

       By Lemma 5, F_m =/= F_n for m =/= n, so F is 1-1.  (See ~ inf3lem6 .)
       Thus, the inverse of F is a function with range omega and domain a
       subset
       of power X, so omega exists by Replacement.  (See ~ inf3lem7 .)
       Q.E.D.
       </PRE> </HTML> (Contributed by NM, 29-Oct-1996.) $)
    inf3 $p |- _om e. _V $=
      ( vy vw cv c0 wne cuni wss com cvv wcel cin crab cmpt crdg cres eqid vex
      wa inf3lem7 exlimiiv ) AEZFGUCUCHITJKLAACDUCUCCKDEUCMCEIDUCNOZFPJQZUDUDRU
      ERASZUFUABUB $.
  $}

  ${
    $d x y w $.
    $( Half of ~ infeq5 .  (Contributed by Mario Carneiro, 16-Nov-2014.) $)
    infeq5i $p |- ( _om e. _V -> E. x x C. U. x ) $=
      ( com cvv wcel c0 csn cdif cuni wpss cv wex difexg 0ex snid wn wceq disj4
      cin disj3 bitr3i peano1 eleq2 mpbii eldifbd sylbi mt4 unidif0 wlim limuni
      limom ax-mp eqtr4i psseq2i mpbir psseq1 unieq psseq2d bitrd spcegv mpisyl
      ) BCDBEFZGZCDVBVBHZIZAJZVEHZIZAKBVACLVDVBBIZEVADZVHEMNVHOZBVBPZVIOVJBVARE
      PVKBVAQBVASTVKEBVAVKEBDEVBDUABVBEUBUCUDUEUFVCBVBVCBHZBBUGBUHBVLPUJBUIUKUL
      UMUNVGVDAVBCVEVBPZVGVBVFIVDVEVBVFUOVMVFVCVBVEVBUPUQURUSUT $.

    $( The statement "there exists a set that is a proper subset of its union"
       is equivalent to the Axiom of Infinity (shown on the right-hand side in
       the form of ~ omex .)  The left-hand side provides us with a very short
       way to express the Axiom of Infinity using only elementary symbols.
       This proof of equivalence does not depend on the Axiom of Infinity.
       (Contributed by NM, 23-Mar-2004.)  (Revised by Mario Carneiro,
       16-Nov-2014.) $)
    infeq5 $p |- ( E. x x C. U. x <-> _om e. _V ) $=
      ( vy vw cv cuni wpss wex com cvv wcel c0 wne wa df-pss wceq unieq syl6req
      wss uni0 eqid eqtr mpdan necon3i anim1i ancoms sylbi eximi crab cmpt crdg
      cin cres vex inf3lem7 exlimiv syl infeq5i impbii ) ADZUSEZFZAGZHIJZVBUSKL
      ZUSUTRZMZAGVCVAVFAVAVEUSUTLZMVFUSUTNVGVEVFVGVDVEUSKUSUTUSKOZKUTOUSUTOVHUT
      KEKUSKPSQUSKUTUAUBUCUDUEUFUGVFVCAABCUSUSBICDUSUKBDRCUSUHUIZKUJHULZVIVITVJ
      TAUMZVKUNUOUPAUQUR $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  ZF Set Theory - add the Axiom of Infinity
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Infinity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w $.
    $( Axiom of Infinity.  An axiom of Zermelo-Fraenkel set theory.  This axiom
       is the gateway to "Cantor's paradise" (an expression coined by Hilbert).
       It asserts that given a starting set ` x ` , an infinite set ` y ` built
       from it exists.  Although our version is apparently not given in the
       literature, it is similar to, but slightly shorter than, the Axiom of
       Infinity in [FreydScedrov] p. 283 (see ~ inf1 and ~ inf2 ).  More
       standard versions, which essentially state that there exists a set
       containing all the natural numbers, are shown as ~ zfinf2 and ~ omex and
       are based on the (nontrivial) proof of ~ inf3 .  This version has the
       advantage that when expanded to primitives, it has fewer symbols than
       the standard version ~ ax-inf2 .  Theorem ~ inf0 shows the reverse
       derivation of our axiom from a standard one.  Theorem ~ inf5 shows a
       very short way to state this axiom.

       The standard version of Infinity ~ ax-inf2 requires this axiom along
       with Regularity ~ ax-reg for its derivation (as theorem ~ axinf2 below).
       In order to more easily identify the normal uses of Regularity, we will
       usually reference ~ ax-inf2 instead of this one.  The derivation of this
       axiom from ~ ax-inf2 is shown by theorem ~ axinf .

       Proofs should normally use the standard version ~ ax-inf2 instead of
       this axiom.  (New usage is discouraged.)  (Contributed by NM,
       16-Aug-1993.) $)
    ax-inf $a |- E. y ( x e. y /\
                 A. z ( z e. y -> E. w ( z e. w /\ w e. y ) ) ) $.

    $( Axiom of Infinity expressed with the fewest number of different
       variables.  (New usage is discouraged.)  (Contributed by NM,
       14-Aug-2003.) $)
    zfinf $p |- E. x ( y e. x /\
                 A. y ( y e. x -> E. z ( y e. z /\ z e. x ) ) ) $=
      ( vw wel wa wex wal ax-inf weq elequ1 anbi1d exbidv imbi12d cbvalv anbi2i
      wi exbii mpbi ) BAEZDAEZDCEZCAEZFZCGZQZDHZFZAGTTBCEZUCFZCGZQZBHZFZAGBADCI
      UHUNAUGUMTUFULDBDBJZUATUEUKDBAKUOUDUJCUOUBUIUCDBCKLMNOPRS $.

    $( A standard version of Axiom of Infinity, expanded to primitives, derived
       from our version of Infinity ~ ax-inf and Regularity ~ ax-reg .

       This theorem should not be referenced in any proof.  Instead, use
       ~ ax-inf2 below so that the ordinary uses of Regularity can be more
       easily identified.  (New usage is discouraged.)  (Contributed by NM,
       3-Nov-1996.) $)
    axinf2 $p |- E. x ( E. y ( y e. x /\ A. z -. z e. y ) /\ A. y ( y e. x ->
          E. z ( z e. x /\ A. w ( w e. z <-> ( w e. y \/ w = y ) ) ) ) ) $=
      ( c0 cv wcel wel csuc wi wal wa wex wn wceq com eleq2 wrex df-rex bitri
      wo wb peano1 peano2 ax-gen zfinf inf2 inf3 imbi12d albidv spcev mp2an 0el
      anbi12d sucel imbi2i albii anbi12i exbii mpbi ) EAFZGZBAHZBFZIZVAGZJZBKZL
      ZAMZVCCBHNCKZLBMZVCCAHDCHDBHDFVDOUAUBDKZLCMZJZBKZLZAMEPGZVDPGZVEPGZJZBKZV
      JUCWABVDUDUEVIVRWBLAPAABCABCUFUGUHVAPOZVBVRVHWBVAPEQWCVGWABWCVCVSVFVTVAPV
      DQVAPVEQUIUJUNUKULVIVQAVBVLVHVPVBVKBVARVLBCVAUMVKBVASTVGVOBVFVNVCVFVMCVAR
      VNCDVDVAUOVMCVASTUPUQURUSUT $.

    $( A standard version of Axiom of Infinity of ZF set theory.  In English,
       it says: there exists a set that contains the empty set and the
       successors of all of its members.  Theorem ~ zfinf2 shows it converted
       to abbreviations.  This axiom was derived as theorem ~ axinf2 above,
       using our version of Infinity ~ ax-inf and the Axiom of Regularity
       ~ ax-reg .  We will reference ~ ax-inf2 instead of ~ axinf2 so that the
       ordinary uses of Regularity can be more easily identified.  The reverse
       derivation of ~ ax-inf from ~ ax-inf2 is shown by theorem ~ axinf .
       (Contributed by NM, 3-Nov-1996.) $)
    ax-inf2 $a |- E. x ( E. y ( y e. x /\ A. z -. z e. y ) /\ A. y ( y e. x ->
          E. z ( z e. x /\ A. w ( w e. z <-> ( w e. y \/ w = y ) ) ) ) ) $.
  $}

  ${
    $d x y z w $.
    $( A standard version of the Axiom of Infinity, using definitions to
       abbreviate.  Axiom Inf of [BellMachover] p. 472.  (See ~ ax-inf2 for the
       unabbreviated version.)  (Contributed by NM, 30-Aug-1993.) $)
    zfinf2 $p |- E. x ( (/) e. x /\ A. y e. x suc y e. x ) $=
      ( vz vw c0 cv wcel csuc wral wa wex wel wn wal weq wo wrex df-rex bitri
      wb wi ax-inf2 0el sucel ralbii df-ral anbi12i exbii mpbir ) EAFZGZBFZHUJG
      ZBUJIZJZAKBALZCBLMCNZJBKZUPCALDCLDBLDBOPTDNZJCKZUABNZJZAKABCDUBUOVBAUKURU
      NVAUKUQBUJQURBCUJUCUQBUJRSUNUTBUJIVAUMUTBUJUMUSCUJQUTCDULUJUDUSCUJRSUEUTB
      UJUFSUGUHUI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Existence of omega (the set of natural numbers)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    $( The existence of omega (the class of natural numbers).  Axiom 7 of
       [TakeutiZaring] p. 43.  This theorem is proved assuming the Axiom of
       Infinity and in fact is equivalent to it, as shown by the reverse
       derivation ~ inf0 .

       A finitist (someone who doesn't believe in infinity) could, without
       contradiction, replace the Axiom of Infinity by its denial
       ` -. _om e. _V ` ; this would lead to ` _om = On ` by ~ omon and
       ` Fin = _V ` (the universe of all sets) by ~ fineqv .  The finitist
       could still develop natural number, integer, and rational number
       arithmetic but would be denied the real numbers (as well as much of the
       rest of mathematics).  In deference to the finitist, much of our
       development is done, when possible, without invoking the Axiom of
       Infinity; an example is Peano's axioms ~ peano1 through ~ peano5 (which
       many textbooks prove more easily assuming Infinity).  (Contributed by
       NM, 6-Aug-1994.) $)
    omex $p |- _om e. _V $=
      ( vx vy c0 cv wcel csuc wral wa wex com wss zfinf2 wi ax-1 ralimi2 peano5
      cvv sylan2 eximi vex ssex exlimiv mp2b ) CADZEZBDZFUDEZBUDGZHZAIJUDKZAIJQ
      EZABLUIUJAUHUEUFUDEUGMZBJGUJUGULBUDJULUFJENOBUDPRSUJUKAJUDATUAUBUC $.
  $}

  ${
    $d x y z w $.
    $( The first version of the Axiom of Infinity ~ ax-inf proved from the
       second version ~ ax-inf2 .  Note that we didn't use ~ ax-reg , unlike
       the other direction ~ axinf2 .  (Contributed by NM, 24-Apr-2009.) $)
    axinf $p |- E. y ( x e. y /\
                 A. z ( z e. y -> E. w ( z e. w /\ w e. y ) ) ) $=
      ( omex inf0 ) ABCDEF $.
  $}

  $( The statement "there exists a set that is a proper subset of its union" is
     equivalent to the Axiom of Infinity (see theorem ~ infeq5 ).  This
     provides us with a very compact way to express the Axiom of Infinity using
     only elementary symbols.  (Contributed by NM, 3-Jun-2005.) $)
  inf5 $p |- E. x x C. U. x $=
    ( com cvv wcel cv cuni wpss wex omex infeq5i ax-mp ) BCDAEZLFGAHIAJK $.

  $( Omega is an ordinal number.  (Contributed by NM, 10-May-1998.)  (Revised
     by Mario Carneiro, 30-Jan-2013.) $)
  omelon $p |- _om e. On $=
    ( com cvv wcel con0 omex omelon2 ax-mp ) ABCADCEFG $.

  ${
    $d x y z $.
    $( The class of natural numbers omega can be defined as the smallest
       "inductive set," which is valid provided we assume the Axiom of
       Infinity.  Definition 6.3 of [Eisenberg] p. 82.  (Contributed by NM,
       6-Aug-1994.) $)
    dfom3 $p |- _om = |^| { x | ( (/) e. x /\ A. y e. x suc y e. x ) } $=
      ( vz com c0 cv wcel csuc wral wa cab cint wss 0ex elintab simpl wal eleq2
      wi wceq mpgbir suceq eleq1d rspccv adantl a2i alimi vex sucex rgenw mp2an
      3imtr4i peano5 peano1 peano2 rgen raleqbi1dv anbi12d imbi12d sylbi mp2ani
      omex spcv ssriv eqssi ) DEAFZGZBFZHZVFGZBVFIZJZAKLZEVMGZCFZVMGZVOHZVMGZSZ
      CDIDVMMVNVLVGSAVLAENOVGVKPUAVSCDVLVOVFGZSZAQZVLVQVFGZSZAQVPVRWAWDAVLVTWCV
      KVTWCSVGVJWCBVOVFVHVOTVIVQVFVHVOUBUCUDUEUFUGVLAVOCUHZOZVLAVQVOWEUIOULUJCV
      MUMUKCVMDVPEDGZVIDGZBDIZVODGZUNWHBDVHUOUPVPWBWGWIJZWJSZWFWAWLADVBVFDTZVLW
      KVTWJWMVGWGVKWIVFDERVJWHBVFDVFDVIRUQURVFDVORUSVCUTVAVDVE $.
  $}

  ${
    $d A x $.
    $( A simplification of ~ elom assuming the Axiom of Infinity.  (Contributed
       by NM, 30-May-2003.) $)
    elom3 $p |- ( A e. _om <-> A. x ( Lim x -> A e. x ) ) $=
      ( com wcel con0 cv wlim wi wal wa elom limom omex wceq limeq imbi12d spcv
      eleq2 mpi nnon syl pm4.71ri bitr4i ) BCDZBEDZAFZGZBUFDZHZAIZJUJABKUJUEUJU
      DUEUJCGZUDLUIUKUDHACMUFCNUGUKUHUDUFCOUFCBRPQSBTUAUBUC $.
  $}

  ${
    $d x y $.
    $( A simplification of ~ df-om assuming the Axiom of Infinity.
       (Contributed by NM, 30-May-2003.) $)
    dfom4 $p |- _om = { x | A. y ( Lim y -> x e. y ) } $=
      ( cv wlim wel wi wal com elom3 abbi2i ) BCDABEFBGAHBACIJ $.
  $}

  ${
    $d x y $.
    $( ` _om ` is the smallest limit ordinal and can be defined as such
       (although the Axiom of Infinity is needed to ensure that at least one
       limit ordinal exists).  (Contributed by FL, 22-Feb-2011.)  (Revised by
       Mario Carneiro, 2-Feb-2013.) $)
    dfom5 $p |- _om = |^| { x | Lim x } $=
      ( vy com cv wlim cab cint wcel wel wi wal elom3 vex elintab bitr4i eqriv
      ) BCADEZAFGZBDZCHQBAIJAKSRHASLQASBMNOP $.
  $}

  $( Ordinal addition is not commutative.  This theorem shows a counterexample.
     Remark in [TakeutiZaring] p. 60.  (Contributed by NM, 10-Dec-2004.) $)
  oancom $p |- ( 1o +o _om ) =/= ( _om +o 1o ) $=
    ( c1o com coa wcel wne csuc omex sucid con0 wceq omelon 1onn oaabslem mp2an
    co oa1suc ax-mp 3eltr4i 1on oacl wss wa wb onelpss simprbi ) ABCOZBACOZDZUF
    UGEZBBFZUFUGBGHBIDZABDUFBJKLAMNUKUGUJJKBPQRUHUFUGUAZUIUFIDZUGIDZUHULUIUBUCA
    IDZUKUMSKABTNUKUOUNKSBATNUFUGUDNUEQ $.

  $( A set is finite iff it is strictly dominated by the class of natural
     number.  Theorem 42 of [Suppes] p. 151.  The Axiom of Infinity is used for
     the forward implication.  (Contributed by FL, 16-Apr-2011.) $)
  isfinite $p |- ( A e. Fin <-> A ~< _om ) $=
    ( com cvv wcel cfn csdm wbr wb omex isfiniteg ax-mp ) BCDAEDABFGHIAJK $.

  $( A finite set is countable (weaker version of ~ isfinite ).  (Contributed
     by Thierry Arnoux, 27-Mar-2018.) $)
  fict $p |- ( A e. Fin -> A ~<_ _om ) $=
    ( cfn wcel com csdm wbr cdom isfinite sdomdom sylbi ) ABCADEFADGFAHADIJ $.

  $( A natural number is strictly dominated by the set of natural numbers.
     Example 3 of [Enderton] p. 146.  (Contributed by NM, 28-Oct-2003.) $)
  nnsdom $p |- ( A e. _om -> A ~< _om ) $=
    ( com cvv wcel csdm wbr omex nnsdomg mpan ) BCDABDABEFGAHI $.

  $( Omega is equinumerous to a proper subset of itself.  Example 13.2(4) of
     [Eisenberg] p. 216.  (Contributed by NM, 30-Jul-2003.) $)
  omenps $p |- _om ~~ ( _om \ { (/) } ) $=
    ( com cvv wcel c0 csn cdif cen wbr omex limom limenpsi ax-mp ) ABCAADEFGHIA
    BJKL $.

  $( The set of natural numbers is equinumerous to its successor.  (Contributed
     by NM, 30-Oct-2003.) $)
  omensuc $p |- _om ~~ suc _om $=
    ( com cvv wcel csuc cen wbr omex limom limensuci ax-mp ) ABCAADEFGABHIJ $.

  ${
    $d f x y z A $.  $d f x y z B $.
    $( Removing a singleton from an infinite set does not change the
       cardinality of the set.  (Contributed by Mario Carneiro, 30-Apr-2015.)
       (Revised by Mario Carneiro, 16-May-2015.) $)
    infdifsn $p |- ( _om ~<_ A -> ( A \ { B } ) ~~ A ) $=
      ( vf com cdom wbr wcel csn cdif cen wa cvv adantl peano1 sylancl cun wceq
      c0 syl wss wf1 wex brdomi adantr cfv reldom brrelex2i ad2antrr simplr f1f
      cv wf ffvelrn difsnen syl3anc crn cin wf1o f1f1orn f1oen3g sylancr ensymd
      vex brrelexi limom limenpsi cima cres resex simpr difss f1ores ccnv f1orn
      wfun wfn simprbi imadif 3syl f1fn fnima fnsnfv eqcomd difeq12d eqtrd entr
      breqtrd syl2anc difexg enrefg disjdif a1i ssrin ax-mp sseq0 unen syl22anc
      mp2an frn undif sylib uncom wn eldifn fnfvelrn nsyl3 disjsn sylibr undif4
      syl5eq difeq1d 3brtr3d exlimddv difsn eqbrtrd pm2.61dan ) DAEFZBAGZABHIZA
      JFZXQXRKZDACUKZUAZXTCXQYCCUBXRDACUCUDYAYCKZXSARYBUEZHZIZJFZYGAJFXTYDALGZX
      RYEAGZYHXQYIXRYCDAEUFUGZUHZXQXRYCUIYDDAYBULZRDGZYJYCYMYADAYBUJMZNDARYBUMO
      BYELAUNUOYDAYGYDYBUPZAYPIZPZYPYFIZYQPZAYGJYDYPYSJFZYQYQJFZYPYQUQZRQZYSYQU
      QZRQZYRYTJFYDYPDJFDYSJFZUUAYDDYPYDYBLGDYPYBURZDYPJFCVCZYCUUHYADAYBUSMZDYP
      YBLUTVAVBYDDDRHZIZJFZUULYSJFUUGYDDLGZUUMXQUUNXRYCDAEUFVDUHDLVEVFSYDUULYBU
      ULVGZYSJYDYBUULVHZLGUULUUOUUPURZUULUUOJFYBUULUUIVIYDYCUULDTUUQYAYCVJDUUKV
      KDAUULYBVLOUULUUOUUPLUTVAYDUUOYBDVGZYBUUKVGZIZYSYDUUHYBVMVOZUUOUUTQUUJUUH
      YBDVPZUVADYBVNVQDUUKYBVRVSYDUURYPUUSYFYDUVBUURYPQYCUVBYADAYBVTMZDYBWASYDY
      FUUSYDUVBYNYFUUSQUVCNDRYBWBOWCWDWEWGDUULYSWFWHYPDYSWFWHYDYIYQLGUUBYLAYPLW
      IYQLWJVSUUDYDYPAWKZWLUUFYDUUEUUCTZUUDUUFYSYPTUVEYPYFVKYSYPYQWMWNUVDUUEUUC
      WOWRWLYPYSYQYQWPWQYDYPATZYRAQYDYMUVFYODAYBWSSYPAWTXAZYDYTYQYSPZYGYSYQXBYD
      UVHYQYPPZYFIZYGYDYQYFUQRQZUVHUVJQYDYEYQGZXCUVKUVLYEYPGZYDYEAYPXDYDUVBYNUV
      MUVCNDRYBXEOXFYQYEXGXHYQYPYFXISYDUVIAYFYDUVIYRAYQYPXBUVGXJXKWEXJXLVBXSYGA
      WFWHXMXQXRXCZKXSAAJUVNXSAQXQBAXNMXQAAJFZUVNXQYIUVOYKALWJSUDXOXP $.

    $( Removing a finite set from an infinite set does not change the
       cardinality of the set.  (Contributed by Mario Carneiro,
       30-Apr-2015.) $)
    infdiffi $p |- ( ( _om ~<_ A /\ B e. Fin ) -> ( A \ B ) ~~ A ) $=
      ( vx vy vz cfn wcel com cdom wbr cdif cen cv wi wceq difeq2 syl6eq breq1d
      c0 imbi2d csn dif0 cun difun1 cvv reldom brrelex2i enrefg syl wa biimparc
      domen2 infdifsn entr sylancom ex a2i a1i findcard2 impcom ) BFGHAIJZABKZA
      LJZVAACMZKZALJZNVAAALJZNVAADMZKZALJZNZVAVIEMZUAZKZALJZNZVAVCNCDEBVDSOZVFV
      GVAVQVEAALVQVEASKAVDSAPAUBQRTVDVHOZVFVJVAVRVEVIALVDVHAPRTVDVHVMUCZOZVFVOV
      AVTVEVNALVTVEAVSKVNVDVSAPAVHVMUDQRTVDBOZVFVCVAWAVEVBALVDBAPRTVAAUEGVGHAIU
      FUGAUEUHUIVKVPNVHFGVAVJVOVAVJVOVAVJVNVILJZVOVAVJUJHVIIJZWBVJWCVAVIAHULUKV
      IVLUMUIVNVIAUNUOUPUQURUSUT $.
  $}

  ${
    $d x y A $.
    $( Any unbounded subset of natural numbers is equinumerous to the set of
       all natural numbers.  This version of ~ unbnn eliminates its hypothesis
       by assuming the Axiom of Infinity.  (Contributed by NM, 4-May-2005.) $)
    unbnn3 $p |- ( ( A C_ _om /\ A. x e. _om E. y e. A x e. y )
        -> A ~~ _om ) $=
      ( com cvv wcel wss wel wrex wral cen wbr omex unbnn mp3an1 ) DEFCDGABHBCI
      ADJCDKLMABCNO $.
  $}

  ${
    $d w x y z F $.
    $( Using the Axiom of Regularity in the form ~ zfregfr , show that there
       are no infinite descending ` e. ` -chains.  Proposition 7.34 of
       [TakeutiZaring] p. 44.  (Contributed by NM, 26-Jan-2006.)  (Revised by
       Mario Carneiro, 22-Mar-2013.) $)
    noinfep $p |- E. x e. _om ( F ` suc x ) e/ ( F ` x ) $=
      ( vz vy vw cv cep wn com cfv wrex wnel cvv wcel c0 wne wceq fvex ax-mp wi
      wbr cmpt crn wral csuc wfr omex mptex rnex zfregfr ssid dmmptg fvexd mprg
      wss cdm peano1 ne0ii eqnetri dm0rn0 necon3bii mpbi fri wfn wb eqid fnmpti
      mp4an fvelrnb peano2 fveq2 fvmpt syl fnfvelrn sylancr eqeltrrd epel eleq1
      syl5bb notbid df-nel syl6bbr rspccv syl5com eqeq1 syl5ibcom neleq2 biimpd
      wel syl6 com23 syldc reximdvai syl5bi com12 rexlimiv ) CFZDFZGUAZHZCEIEFZ
      BJZUBZUCZUDZDXDKZAFZUEZBJZXGBJZLZAIKZXDMNXDGUFXDXDUOXDOPZXFXCEIXBUGUHUIXD
      UJXDUKXCUPZOPXMXNIOXBMNXNIQEIEIXBMULXAINXABUMUNOIUQURUSXNOXDOXCUTVAVBDCXD
      XDMGVCVHXEXLDXDXEWRXDNZXLXOXGXCJZWRQZAIKZXEXLXCIVDZXOXRVEEIXBXCXABRXCVFZV
      GZAIWRXCVISXEXQXKAIXGINZXEXIWRLZXQXKTYBXIXDNXEYCYBXHXCJZXIXDYBXHINZYDXIQX
      GVJZEXHXBXIIXCXAXHBVKXTXHBRVLVMYBXSYEYDXDNYAYFIXHXCVNVOVPWTYCCXIXDWQXIQZW
      TXIWRNZHYCYGWSYHWSCDWIYGYHCDVQWQXIWRVRVSVTXIWRWAWBWCWDYBXQYCXKYBXQWRXJQZY
      CXKTYBXPXJQXQYIEXGXBXJIXCXAXGBVKXTXGBRVLXPWRXJWEWFYIYCXKWRXJXIWGWHWJWKWLW
      MWNWOWPS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cantor normal form
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CNF $.

  $( Extend class notation with the Cantor normal form function. $)
  ccnf $a class CNF $.

  ${
    $d x y f g h k z $.
    $( Define the Cantor normal form function, which takes as input a finitely
       supported function from ` y ` to ` x ` and outputs the corresponding
       member of the ordinal exponential ` x ^o y ` .  The content of the
       original Cantor Normal Form theorem is that for ` x = _om ` this
       function is a bijection onto ` _om ^o y ` for any ordinal ` y ` (or,
       since the function restricts naturally to different ordinals, the
       statement that the composite function is a bijection to ` On ` ).  More
       can be said about the function, however, and in particular it is an
       order isomorphism for a certain easily defined well-ordering of the
       finitely supported functions, which gives an alternate definition
       ~ cantnffval2 of this function in terms of ~ df-oi .  (Contributed by
       Mario Carneiro, 25-May-2015.)  (Revised by AV, 28-Jun-2019.) $)
    df-cnf $a |- CNF = ( x e. On , y e. On |->
      ( f e. { g e. ( x ^m y ) | g finSupp (/) } |->
        [_ OrdIso ( _E , ( f supp (/) ) ) / h ]_
        ( seqom ( ( k e. _V , z e. _V |-> ( ( ( x ^o ( h ` k ) ) .o
          ( f ` ( h ` k ) ) ) +o z ) ) , (/) ) ` dom h ) ) ) $.
  $}

  ${
    $d f g h k x y z A $.  $d f g h k x y z B $.  $d f x y S $.
    cantnffval.s $e |- S = { g e. ( A ^m B ) | g finSupp (/) } $.
    cantnffval.a $e |- ( ph -> A e. On ) $.
    cantnffval.b $e |- ( ph -> B e. On ) $.
    $( The value of the Cantor normal form function.  (Contributed by Mario
       Carneiro, 25-May-2015.)  (Revised by AV, 28-Jun-2019.) $)
    cantnffval $p |- ( ph -> ( A CNF B ) =
      ( f e. S |-> [_ OrdIso ( _E , ( f supp (/) ) ) / h ]_
        ( seqom ( ( k e. _V , z e. _V |-> ( ( ( A ^o ( h ` k ) ) .o
          ( f ` ( h ` k ) ) ) +o z ) ) , (/) ) ` dom h ) ) ) $=
      ( con0 wcel co cv c0 cvv cfv wceq vx vy ccnf csupp cep coi cdm comu cmpt2
      coe coa cseqom csb cmpt cfsupp cmap crab wa oveq12 rabeqdv syl6eqr simp1l
      wbr w3a oveq1d mpt2eq3dva eqid seqomeq12 fveq1d csbeq2dv mpteq12dv df-cnf
      sylancl ovex rabex2 mptex ovmpt2a syl2anc ) ACMNDMNCDUCOFEHFPZQUDOUEUFZHP
      ZUGZIBRRCIPZWASZUJOZWDVSSZUHOZBPZUKOZUIZQULZSZUMZUNZTKLUAUBCDMMFGPQUOVCZG
      UAPZUBPZUPOZUQZHVTWBIBRRWPWDUJOZWFUHOZWHUKOZUIZQULZSZUMZUNWNUCWPCTZWQDTZU
      RZFWSXFEWMXIWSWOGCDUPOZUQEXIWOGWRXJWPCWQDUPUSUTJVAXIHVTXEWLXIWBXDWKXIXCWJ
      TQQTXDWKTXIIBRRXBWIXIWCRNZWHRNZVDZXAWGWHUKXMWTWEWFUHXMWPCWDUJXGXHXKXLVBVE
      VEVEVFQVGXCWJQQVHVMVIVJVKUAUBBFGHIVLFEWMWOGXJEJCDUPVNVOVPVQVR $.

    $( The domain of the Cantor normal form function (in later lemmas we will
       use ` dom ( A CNF B ) ` to abbreviate "the set of finitely supported
       functions from ` B ` to ` A ` ").  (Contributed by Mario Carneiro,
       25-May-2015.)  (Revised by AV, 28-Jun-2019.) $)
    cantnfdm $p |- ( ph -> dom ( A CNF B ) = S ) $=
      ( vf vh vk vz ccnf co cdm cv c0 csupp cvv cfv cep coi coe comu coa cseqom
      cmpt2 cmpt cantnffval dmeqd wcel wral wceq fvex csbex rgenw dmmptg syl6eq
      csb ax-mp ) ABCMNZOIDJIPZQRNUAUBZJPZOZKLSSBKPVDTZUCNVFVBTUDNLPUENUGQUFZTZ
      USZUHZOZDAVAVJALBCDIEJKFGHUIUJVISUKZIDULVKDUMVLIDJVCVHVEVGUNUOUPIDVISUQUT
      UR $.
  $}

  ${
    $d k z A $.  $d k z B $.  $d x y F $.
    cantnfvalf.f $e |- F =
      seqom ( ( k e. A , z e. B |-> ( C +o D ) ) , (/) ) $.
    $( Lemma for ~ cantnf .  The function appearing in ~ cantnfval is
       unconditionally a function.  (Contributed by Mario Carneiro,
       20-May-2015.) $)
    cantnfvalf $p |- F : _om --> On $=
      ( vx vy com con0 wf cfv wcel wral coa co c0 wceq wfn cv fnseqom csuc wrex
      cmpt2 wo nn0suc fveq2 cvv 0ex seqom0g ax-mp 0elon syl6eqel seqomsuc df-ov
      syl6eq cop cxp fnoa oacl rgen2a ffnov mpbir2an f0cli eqeltri rgen2w fmpt2
      eqid mpbi eleq1d syl5ibrcom rexlimiv jaoi syl rgen ffnfv ) KLGMGKUAIUBZGN
      ZLOZIKPFABCDEQRZUFZGSHUCWAIKVSKOVSSTZVSJUBZUDZTZJKUEZUGWAJVSUHWDWAWHWDVTS
      LWDVTSGNZSVSSGUISUJOWISTUKWCGSUJHULUMURUNUOWGWAJKWEKOZWAWGWFGNZLOWJWKWEWE
      GNZUSZWCNZLWJWKWEWLWCRWNWEWCGSHUPWEWLWCUQURBCUTZLWMWCWBLOZACPFBPWOLWCMWPF
      ABCWBDEUSZQNLDEQUQLLUTZLWQQWRLQMQWRUAVSWEQRLOZJLPILPVAWSIJLVSWEVBVCIJLLLQ
      VDVEUNVFVGVHFABCWBLWCWCVJVIVKUNVFUOWGVTWKLVSWFGUIVLVMVNVOVPVQIKLGVRVE $.
  $}

  ${
    $d c f g h k n t u v w x y z B $.  $d a b c d g w x y z C $.  $d k n z D $.
    $d a b c d f g h k n t u v w x y z A $.  $d x y M $.  $d c f g k t u v T $.
    $d f g h k u v w x y z F $.  $d c f g k t u v x y z S $.  $d g t x y z Z $.
    $d c f h k t u v w x y z G $.  $d f h u v x y H $.  $d k t u v x z K $.
    $d k u w x y z O $.  $d f g k n t u v x y z ph $.  $d k t w x y z Y $.
    $d a b d k t u w x y z X $.
    cantnfs.s $e |- S = dom ( A CNF B ) $.
    cantnfs.a $e |- ( ph -> A e. On ) $.
    cantnfs.b $e |- ( ph -> B e. On ) $.
    $( Elementhood in the set of finitely supported functions from ` B ` to
       ` A ` .  (Contributed by Mario Carneiro, 25-May-2015.)  (Revised by AV,
       28-Jun-2019.) $)
    cantnfs $p |- ( ph -> ( F e. S <->
                               ( F : B --> A /\ F finSupp (/) ) ) ) $=
      ( vg wcel cmap co c0 cfsupp wbr wa wf cv crab con0 ccnf cdm eqid cantnfdm
      syl5eq eleq2d breq1 elrab syl6bb elmapd anbi1d bitrd ) AEDJZEBCKLZJZEMNOZ
      PZCBEQZUPPAUMEIRZMNOZIUNSZJUQADVAEADBCUALUBVAFABCVAIVAUCGHUDUEUFUTUPIEUNU
      SEMNUGUHUIAUOURUPABCETTGHUJUKUL $.

    ${
      cantnfcl.g $e |- G = OrdIso ( _E , ( F supp (/) ) ) $.
      cantnfcl.f $e |- ( ph -> F e. S ) $.
      $( Basic properties of the order isomorphism ` G ` used later.  The
         support of an ` F e. S ` is a finite subset of ` A ` , so it is
         well-ordered by ` _E ` and the order isomorphism has domain a finite
         ordinal.  (Contributed by Mario Carneiro, 25-May-2015.)  (Revised by
         AV, 28-Jun-2019.) $)
      cantnfcl $p |- ( ph -> ( _E We ( F supp (/) ) /\ dom G e. _om ) ) $=
        ( c0 csupp cep wwe wcel con0 syl cfn cvv co cdm com wss suppssdm cfsupp
        wf wceq wbr wa cantnfs mpbid simpld fdm syl5sseq onss sstrd epweon wess
        mpisyl cin ovexd oion cen simprd fsuppimpd oien syl2anc enfii syl6eleqr
        elind onfin2 jca ) AELMUAZNOZFUBZUCPAVNQUDQNOVOAVNCQAEUBZVNCELUEACBEUGZ
        VQCUHAVRELUFUIZAEDPVRVSUJKABCDEGHIUKULZUMCBEUNRUOACQPCQUDICUPRUQURVNQNU
        SUTZAVPQSVAUCAQSVPAVNTPZVPQPAELMVBZVNNFTJVCRAVNSPVPVNVDUIZVPSPAELAVRVSV
        TVEVFAWBVOWDWCWAVNNFTJVGVHVPVNVIVHVKVLVJVM $.

      cantnfval.h $e |- H = seqom ( ( k e. _V , z e. _V |->
        ( ( ( A ^o ( G ` k ) ) .o ( F ` ( G ` k ) ) ) +o z ) ) , (/) ) $.
      $( The value of the Cantor normal form function.  (Contributed by Mario
         Carneiro, 25-May-2015.)  (Revised by AV, 28-Jun-2019.) $)
      cantnfval $p |- ( ph -> ( ( A CNF B ) ` F ) = ( H ` dom G ) ) $=
        ( co cfv c0 cvv wceq vf vg vh ccnf cv cfsupp wbr cmap csupp cep coi cdm
        crab coe comu coa cmpt2 cseqom csb cmpt eqid cantnffval fveq1d cantnfdm
        wcel syl5eq eleqtrd ovex oiexg mp1i wa simpr oveq1 adantr oieq2 syl6eqr
        syl eqtrd oveq2d simpl fveq12d oveq12d oveq1d mpt2eq3dv seqomeq12 dmeqd
        sylancl csbied fvex fvmpt ) AGCDUDPZQGUAUBUERUFUGUBCDUHPUMZUCUAUEZRUIPZ
        UJUKZUCUEZULZFBSSCFUEZWPQZUNPZWSWMQZUOPZBUEZUPPZUQZRURZQZUSZUTZQZHULZIQ
        ZAGWKXIABCDWLUAUBUCFWLVAZKLVBVCAGWLVEXJXLTAGEWLNAEWKULWLJACDWLUBXMKLVDV
        FVGUAGXHXLWLXIWMGTZUCWOXGXLSWNSVEWOSVEXNWMRUIVHWNUJWOSWOVAVIVJXNWPWOTZV
        KZWQXKXFIXPXFFBSSCWRHQZUNPZXQGQZUOPZXCUPPZUQZRURZIXPXEYBTRRTXFYCTXPFBSS
        XDYAXPXBXTXCUPXPWTXRXAXSUOXPWSXQCUNXPWRWPHXPWPGRUIPZUJUKZHXPWPWOYEXNXOV
        LXPWNYDTZWOYETXNYFXOWMGRUIVMVNWNYDUJVOVQVRMVPZVCZVSXPWSXQWMGXNXOVTYHWAW
        BWCWDRVAXEYBRRWEWGOVPXPWPHYGWFWAWHXIVAXKIWIWJVQVR $.

      $( Alternate expression for the value of the Cantor normal form function.
         (Contributed by Mario Carneiro, 25-May-2015.)  (Revised by AV,
         28-Jun-2019.) $)
      cantnfval2 $p |- ( ph -> ( ( A CNF B ) ` F ) =
          ( seqom ( ( k e. dom G , z e. On |-> ( ( ( A ^o ( G ` k ) ) .o
            ( F ` ( G ` k ) ) ) +o z ) ) , (/) ) ` dom G ) ) $=
        ( co cfv c0 wceq wi vu vv ccnf cdm con0 cv coe comu coa cmpt2 cantnfval
        cseqom wss ssid com wcel csupp cep wwe cantnfcl simprd csuc sseq1 fveq2
        cvv 0ex seqom0g syl6eq eqid eqeq12d imbi12d imbi2d 2a1i wa sssucid sstr
        ax-mp mpan imim1i oveq2 seqomsuc ad2antrl cxp cres resmpt2 mp2an simprr
        ssv oveqi vex sucid a1i cantnfvalf ffvelrni ovres syl2anc syl5eqr eqtrd
        sseldd syl5ibr expr a2d syl5 expcom finds mpcom mpi ) AGCDUCPQHUDZIQZXH
        FBXHUECFUFHQZUGPXJGQUHPZBUFZUIPZUJZRULZQZABCDEFGHIJKLMNOUKAXHXHUMZXIXPS
        ZXHUNXHUOUPZAXQXRTZAGRUQPURUSXSACDEGHJKLMNUTVAAUAUFZXHUMZYAIQZYAXOQZSZT
        ZTARXHUMZRRSZTZTAUBUFZXHUMZYJIQZYJXOQZSZTZTAYJVBZXHUMZYPIQZYPXOQZSZTZTA
        XTTUAUBXHYARSZYFYIAUUBYBYGYEYHYARXHVCUUBYCRYDRUUBYCRIQZRYARIVDRVEUPZUUC
        RSVFFBVEVEXMUJZIRVEOVGVQVHUUBYDRXOQZRYARXOVDUUDUUFRSVFXNXORVEXOVIZVGVQV
        HVJVKVLYAYJSZYFYOAUUHYBYKYEYNYAYJXHVCUUHYCYLYDYMYAYJIVDYAYJXOVDVJVKVLYA
        YPSZYFUUAAUUIYBYQYEYTYAYPXHVCUUIYCYRYDYSYAYPIVDYAYPXOVDVJVKVLYAXHSZYFXT
        AUUJYBXQYEXRYAXHXHVCUUJYCXIYDXPYAXHIVDYAXHXOVDVJVKVLYHAYGRVIVMYJUOUPZAY
        OUUAAUUKYOUUATYOYQYNTAUUKVNZUUAYQYKYNYJYPUMYQYKYJVOYJYPXHVPVRVSUULYQYNY
        TAUUKYQYNYTTYNYTAUUKYQVNVNZYJYLUUEPZYJYMUUEPZSYLYMYJUUEVTUUMYRUUNYSUUOU
        UKYRUUNSAYQYJUUEIROWAWBUUMYSYJYMXNPZUUOUUKYSUUPSAYQYJXNXORUUGWAWBUUMUUP
        YJYMUUEXHUEWCWDZPZUUOUUQXNYJYMXHVEUMUEVEUMUUQXNSXHWHUEWHFBVEVEXHUEXMWEW
        FWIUUMYJXHUPYMUEUPZUURUUOSUUMYPXHYJAUUKYQWGYJYPUPUUMYJUBWJWKWLWSUUKUUSA
        YQUOUEYJXOBXHUEXKXLFXOUUGWMWNWBYJYMXHUEUUEWOWPWQWRVJWTXAXBXCXDXBXEXFXGW
        R $.

      $( The value of the recursive function ` H ` at a successor.
         (Contributed by Mario Carneiro, 25-May-2015.)  (Revised by AV,
         28-Jun-2019.) $)
      cantnfsuc $p |- ( ( ph /\ K e. _om ) -> ( H ` suc K ) =
        ( ( ( A ^o ( G ` K ) ) .o ( F ` ( G ` K ) ) ) +o ( H ` K ) ) ) $=
        ( cfv cvv co coa vu vv com wcel wa csuc cv coe comu cmpt2 wceq seqomsuc
        adantl elex fvex simpl fveq2d oveq2d oveq12d simpr fveq2 oveq2 cbvmpt2v
        c0 oveq1d ovex ovmpt2a sylancl eqtrd ) AJUCUDZUEZJUFIQZJJIQZFBRRCFUGZHQ
        ZUHSZVOGQZUISZBUGZTSZUJZSZCJHQZUHSZWCGQZUISZVMTSZVJVLWBUKAJWAIVDPULUMVK
        JRUDZVMRUDWBWGUKVJWHAJUCUNUMJIUOUAUBJVMRRCUAUGZHQZUHSZWJGQZUISZUBUGZTSZ
        WGWAWIJUKZWNVMUKZUEZWMWFWNVMTWRWKWDWLWEUIWRWJWCCUHWRWIJHWPWQUPUQZURWRWJ
        WCGWSUQUSWPWQUTUSFBUAUBRRVTWOWMVSTSVNWIUKZVRWMVSTWTVPWKVQWLUIWTVOWJCUHV
        NWIHVAZURWTVOWJGXAUQUSVEVSWNWMTVBVCWFVMTVFVGVHVI $.

      ${
        cantnfle.c $e |- ( ph -> C e. B ) $.
        $( A lower bound on the ` CNF ` function.  Since
           ` ( ( A CNF B ) `` F ) ` is defined as the sum of
           ` ( A ^o x ) .o ( F `` x ) ` over all ` x ` in the support of
           ` F ` , it is larger than any of these terms (and all other terms
           are zero, so we can extend the statement to all ` C e. B ` instead
           of just those ` C ` in the support).  (Contributed by Mario
           Carneiro, 28-May-2015.)  (Revised by AV, 28-Jun-2019.) $)
        cantnfle $p |- ( ph ->
            ( ( A ^o C ) .o ( F ` C ) ) C_ ( ( A CNF B ) ` F ) ) $=
          ( wss c0 wcel vx vy coe co cfv comu ccnf wceq oveq2 sseq1d wne wa cdm
          ccnv csupp wf1o wf cep wiso cvv wwe suppssdm cfsupp wbr cantnfs mpbid
          con0 simpld fdm syl syl5sseq ssexd com cantnfcl syl2anc isof1o adantr
          oiiso f1ocnv f1of 3syl anim1i wfn ffn 0ex a1i elsuppfn syl3anc mpbird
          wb ffvelrnd wi simprd cv eqimss biantrurd eleq2 bitr3d sseq2d imbi12d
          fveq2 imbi2d csuc sseq1 anbi12d noel pm2.21i adantl fvex sssucid sstr
          wo elsuc mpan ad2antrl simprr pm2.27 coa cantnfvalf ffvelrni ad2antlr
          ad3antrrr simpr sucidg sseldd onelon oecl omcl oaword2 simplll simplr
          oif cantnfsuc sseqtr4d expcom adantrr syld expr fveq2d f1ocnvfv2 a1dd
          ad2antrr eqtr3d oveq2d oveq12d oaword1 eqsstr3d syl5bi expimpd finds2
          jaod com23 vtoclga mpcom mpd cantnfval om0 0ss syl6eqss pm2.61ne ) AC
          EUCUDZEHUEZUFUDZHCDUGUDUEZRUVASUFUDZUVDRUVBSUVBSUHUVCUVEUVDUVBSUVAUFU
          IUJAUVBSUKZULZUVCIUMZJUEZUVDUVGEIUNZUEZUVHTZUVCUVIRZUVGHSUOUDZUVHEUVJ
          UVGUVHUVNIUPZUVNUVHUVJUPUVNUVHUVJUQAUVOUVFAUVHUVNURURIUSZUVOAUVNUTTUV
          NURVAZUVPAUVNDVGMAHUMZUVNDHSVBADCHUQZUVRDUHAUVSHSVCVDZAHFTUVSUVTULOAC
          DFHKLMVEVFVHZDCHVIVJVKZVLAUVQUVHVMTZACDFHIKLMNOVNZVHUVNURIUTNVRVOUVHU
          VNURURIVPVJVQZUVHUVNIVSUVNUVHUVJVTWAUVGEUVNTZEDTZUVFULZAUWGUVFQWBUVGH
          DWCZDVGTZSUTTZUWFUWHWJUVGUVSUWIAUVSUVFUWAVQDCHWDVJAUWJUVFMVQUWKUVGWEW
          FEHVGUTDSWGWHWIZWKUWCUVGUVLUVMWLZAUWCUVFAUVQUWCUWDWMVQUVGUAWNZUVHRZUV
          KUWNTZULZUVCUWNJUEZRZWLZWLUVGUWMWLUAUVHVMUWNUVHUHZUWTUWMUVGUXAUWQUVLU
          WSUVMUXAUWPUWQUVLUXAUWOUWPUWNUVHWOWPUWNUVHUVKWQWRUXAUWRUVIUVCUWNUVHJX
          AWSWTXBUWTSUVHRZUVKSTZULZUVCSJUEZRZWLZUBWNZUVHRZUVKUXHTZULZUVCUXHJUEZ
          RZWLZUXHXCZUVHRZUVKUXOTZULZUVCUXOJUEZRZWLZUVGUAUBUWNSUHZUWQUXDUWSUXFU
          YBUWOUXBUWPUXCUWNSUVHXDUWNSUVKWQXEUYBUWRUXEUVCUWNSJXAWSWTUWNUXHUHZUWQ
          UXKUWSUXMUYCUWOUXIUWPUXJUWNUXHUVHXDUWNUXHUVKWQXEUYCUWRUXLUVCUWNUXHJXA
          WSWTUWNUXOUHZUWQUXRUWSUXTUYDUWOUXPUWPUXQUWNUXOUVHXDUWNUXOUVKWQXEUYDUW
          RUXSUVCUWNUXOJXAWSWTUXGUVGUXCUXFUXBUXCUXFUVKXFXGXHWFUVGUXHVMTZUXNUYAW
          LUVGUYEULZUXRUXNUXTUYFUXPUXQUXNUXTWLZUXQUXJUVKUXHUHZXLUYFUXPULZUYGUVK
          UXHEUVJXIXMUYIUXJUYGUYHUYFUXPUXJUYGUYFUXPUXJULULZUXNUXMUXTUYJUXIUXJUX
          NUXMWLUXPUXIUYFUXJUXHUXORUXPUXIUXHXJUXHUXOUVHXKXNXOUYFUXPUXJXPUXKUXMX
          QVOUYFUXPUXMUXTWLZUXJUYIUXLUXSRZUYKUYIUXLCUXHIUEZUCUDZUYMHUEZUFUDZUXL
          XRUDZUXSUYIUXLVGTZUYPVGTZUXLUYQRUYEUYRUVGUXPVMVGUXHJBUTUTCGWNIUEZUCUD
          UYTHUEUFUDBWNGJPXSXTYAZUYIUYNVGTZUYOVGTZUYSUYICVGTZUYMVGTZVUBAVUDUVFU
          YEUXPLYBZUYIUWJUYMDTVUEAUWJUVFUYEUXPMYBUYIUVNDUYMAUVNDRUVFUYEUXPUWBYB
          UYIUXHUVHTUYMUVNTUYIUXOUVHUXHUYFUXPYCUYEUXHUXOTUVGUXPUXHVMYDYAYEUVHUV
          NUXHIUVNURINYLXTVJYEZDUYMYFVOCUYMYGVOUYIVUDUYOCTVUCVUFUYIDCUYMHAUVSUV
          FUYEUXPUWAYBVUGWKCUYOYFVOUYNUYOYHVOZUXLUYPYIVOUYIAUYEUXSUYQUHZAUVFUYE
          UXPYJUVGUYEUXPYKABCDFGHIJUXHKLMNOPYMVOZYNUXMUYLUXTUVCUXLUXSXKYOVJYPYQ
          YRUYIUYHUXTUXNUYFUXPUYHUXTUYFUXPUYHULZULZUVCUYQUXSVULUVCUYPUYQVULUYNU
          VAUYOUVBUFVULUYMECUCVULUVKIUEZUYMEVULUVKUXHIUYFUXPUYHXPYSUVGVUMEUHZUY
          EVUKUVGUVOUWFVUNUWEUWLUVHUVNEIYTVOUUBUUCZUUDVULUYMEHVUOYSUUEUYFUXPUYP
          UYQRZUYHUYIUYSUYRVUPVUHVUAUYPUXLUUFVOYPUUGUYFUXPVUIUYHVUJYPYNYRUUAUUK
          UUHUUIUULYOUUJUUMUUNUUOAUVDUVIUHUVFABCDFGHIJKLMNOPUUPVQYNAUVESUVDAUVA
          VGTZUVESUHAVUDEVGTZVUQLAUWJUWGVURMQDEYFVOCEYGVOUVAUUQVJUVDUURUUSUUT
          $.
      $}

      cantnflt.a $e |- ( ph -> (/) e. A ) $.
      cantnflt.k $e |- ( ph -> K e. suc dom G ) $.
      cantnflt.c $e |- ( ph -> C e. On ) $.
      cantnflt.s $e |- ( ph -> ( G " K ) C_ C ) $.
      $( An upper bound on the partial sums of the ` CNF ` function.  Since
         each term dominates all previous terms, by induction we can bound the
         whole sum with any exponent ` A ^o C ` where ` C ` is larger than any
         exponent ` ( G `` x ) , x e. K ` which has been summed so far.
         (Contributed by Mario Carneiro, 28-May-2015.)  (Revised by AV,
         29-Jun-2019.) $)
      cantnflt $p |- ( ph -> ( H ` K ) e. ( A ^o C ) ) $=
        ( vx vy c0 wceq cfv coe co wcel cv csuc com wrex con0 oen0 syl21anc cvv
        fveq2 0ex comu coa cmpt2 seqom0g ax-mp syl6eq eleq1d syl5ibrcom wa word
        wss adantr eloni syl cima cdm wfn csupp wf cep oif ffn mp1i oicl ordsuc
        mpbi ordelon sylancr ordsssuc sylancl mpbird vex sucid simprr syl5eleqr
        wb fnfvima syl3anc sseldd ordsucss wi suppssdm cfsupp wbr cantnfs mpbid
        sylc simpld syl5sseq onss eqeltrrd ordsucelsuc sylibr ffvelrni suceloni
        fdm sstrd oewordi syl31anc mpd fveq2d simprl eleq1 suceq oveq2d eleq12d
        imbi12d sselda sylan2 ffvelrnd onelon syl2anc oecl cantnfsuc omcl oesuc
        3eltr4d ad2antrr ad2antrl epelc peano2 simpl omord2 peano1 oveq2i eqtrd
        a1i oa0 syl5eq wtr ordtr trsuc mpan imim1i omwordi sseqtr4d sucex mpbir
        wiso wwe ssexd cantnfcl oiiso isorel syl12anc mpbii fvex sylib ad2antlr
        ex cantnfvalf oaord omsuc exp32 a2d syl5 expcom finds2 syl3c rexlimdvaa
        eqeltrd wo simprd elnn nn0suc mpjaod ) AKUDUEZKJUFZCEUGUHZUIZKUBUJZUKZU
        EZUBULUMZAUWIUWFUDUWHUIZACUNUIZEUNUIZUDCUIZUWNMTRCEUOUPUWFUWGUDUWHUWFUW
        GUDJUFZUDKUDJURUDUQUIUWRUDUEUSGBUQUQCGUJIUFZUGUHUWSHUFUTUHZBUJZVAUHVBJU
        DUQQVCVDZVEVFVGAUWLUWIUBULAUWJULUIZUWLVHZVHZCUWJIUFZUKZUGUHZUWHUWGUXEUX
        GEVJZUXHUWHVJZUXEEVIZUXFEUIUXIUXEUWPUXKAUWPUXDTVKZEVLVMUXEIKVNZEUXFAUXM
        EVJUXDUAVKUXEIIVOZVPZKUXNVJZUWJKUIUXFUXMUIUXNHUDVQUHZIVRUXOUXEUXQVSIOVT
        ZUXNUXQIWAWBAUXPUXDAUXPKUXNUKZUIZSAKUNUIZUXNVIZUXPUXTWOAUXSVIZUXTUYAUYB
        UYCUXQVSIOWCZUXNWDWESUXSKWFWGUYDKUXNWHWIWJVKUXEUWJUWKKUWJUBWKWLAUXCUWLW
        MZWNUXNKIUWJWPWQWRUXFEWSXFUXEUXGUNUIZUWPUWOUWQUXIUXJWTUXEUXFUNUIUYFUXEU
        XQUNUXFAUXQUNVJZUXDAUXQDUNAHVOZUXQDHUDXAADCHVRZUYHDUEAUYIHUDXBXCZAHFUIU
        YIUYJVHPACDFHLMNXDXEXGZDCHXOVMXHZADUNUIDUNVJNDXIVMXPZVKUXEUWJUXNUIZUXFU
        XQUIUXEUWKUXSUIZUYNUXEKUWKUXSUYEAUXTUXDSVKXJUYBUYNUYOWOUYDUWJUXNXKVDXLZ
        UXNUXQUWJIUXRXMVMWRUXFXNVMUXLAUWOUXDMVKAUWQUXDRVKUXGECXQXRXSUXEUWGUWKJU
        FZUXHUXEKUWKJUYEXTUXEUXCAUYNUYQUXHUIZAUXCUWLYAAUXDUUAUYPUYNUYRWTUDUXNUI
        ZUDUKZJUFZCUDIUFZUKZUGUHZUIZWTUCUJZUXNUIZVUFUKZJUFZCVUFIUFZUKZUGUHZUIZW
        TZVUHUXNUIZVUHUKZJUFZCVUHIUFZUKZUGUHZUIZWTZAUBUCUWJUDUEZUYNUYSUYRVUEUWJ
        UDUXNYBVVCUYQVUAUXHVUDVVCUWKUYTJUWJUDYCXTVVCUXGVUCCUGVVCUXFVUBUEUXGVUCU
        EUWJUDIURUXFVUBYCVMYDYEYFUWJVUFUEZUYNVUGUYRVUMUWJVUFUXNYBVVDUYQVUIUXHVU
        LVVDUWKVUHJUWJVUFYCXTVVDUXGVUKCUGVVDUXFVUJUEUXGVUKUEUWJVUFIURUXFVUJYCVM
        YDYEYFUWJVUHUEZUYNVUOUYRVVAUWJVUHUXNYBVVEUYQVUQUXHVUTVVEUWKVUPJUWJVUHYC
        XTVVEUXGVUSCUGVVEUXFVURUEUXGVUSUEUWJVUHIURUXFVURYCVMYDYEYFAUYSVUEAUYSVH
        ZCVUBUGUHZVUBHUFZUTUHZVVGCUTUHZVUAVUDVVFVVHCUIZVVIVVJUIZVVFDCVUBHAUYIUY
        SUYKVKUYSAVUBUXQUIZVUBDUIUXNUXQUDIUXRXMZAUXQDVUBUYLYGYHYIZVVFVVHUNUIZUW
        OVVGUNUIZUDVVGUIZVVKVVLWOVVFUWOVVKVVPAUWOUYSMVKZVVOCVVHYJYKZVVSVVFUWOVU
        BUNUIZVVQVVSUYSAVVMVWAVVNAUXQUNVUBUYMYGYHZCVUBYLYKZVVFUWOVWAUWQVVRVVSVW
        BAUWQUYSRVKCVUBUOUPVVHCVVGUUBXRXEVVFVUAVVIUWRVAUHZVVIUYSAUDULUIZVUAVWDU
        EVWEUYSUUCUUFABCDFGHIJUDLMNOPQYMYHVVFVWDVVIUDVAUHZVVIUWRUDVVIVAUXBUUDVV
        FVVIUNUIZVWFVVIUEVVFVVQVVPVWGVWCVVTVVGVVHYNYKVVIUUGVMUUHUUEVVFUWOVWAVUD
        VVJUEVVSVWBCVUBYOYKYPUVIAVUFULUIZVUNVVBWTVUNVUOVUMWTAVWHVHZVVBVUOVUGVUM
        UXNUUIZVUOVUGUYBVWJUYDUXNUUJVDUXNVUFUUKUULZUUMVWIVUOVUMVVAVWIVUOVUMVVAV
        WIVUOVUMVHZVHZCVURUGUHZVURHUFZUKZUTUHZVUTVUQVWMVWQVWNCUTUHZVUTVWMVWPCVJ
        ZVWQVWRVJZVWMCVIZVWOCUIZVWSVWMUWOVXAAUWOVWHVWLMYQZCVLVMVWMDCVURHAUYIVWH
        VWLUYKYQVWMUXQDVURAUXQDVJVWHVWLUYLYQVUOVURUXQUIVWIVUMUXNUXQVUHIUXRXMYRZ
        WRYIZVWOCWSXFVWMVWPUNUIZUWOVWNUNUIZVWSVWTWTVWMVWOUNUIZVXFVWMUWOVXBVXHVX
        CVXECVWOYJYKZVWOXNVMVXCVWMUWOVURUNUIZVXGVXCVWMUXQUNVURAUYGVWHVWLUYMYQZV
        XDWRZCVURYLYKZVWPCVWNUUNWQXSVWMUWOVXJVUTVWRUEVXCVXLCVURYOYKUUOVWMVWNVWO
        UTUHZVUIVAUHZVXNVWNVAUHZVUQVWQVWMVUIVWNUIZVXOVXPUIZVWMVULVWNVUIVWMVUKVU
        RVJZVULVWNVJZVWMVURVIZVUJVURUIZVXSVWMVXJVYAVXLVURVLVMVWMVUJVURVSXCZVYBV
        WMVUFVUHVSXCZVYCVYDVUFVUHUIVUFUCWKZWLVUFVUHVUFVYEUUPYSUUQVWMUXNUXQVSVSI
        UURZVUGVUOVYDVYCWOAVYFVWHVWLAUXQUQUIUXQVSUUSZVYFAUXQDUNNUYLUUTAVYGUXNUL
        UIZACDFHILMNOPUVAZXGUXQVSIUQOUVBYKYQVUOVUGVWIVUMVWKYRZVWIVUOVUMYAUXNUXQ
        VUFVUHVSVSIUVCUVDUVEVUJVURVUHIUVFYSUVGVUJVURWSXFVWMVUKUNUIZVXJUWOUWQVXS
        VXTWTVWMVUJUNUIVYKVWMUXQUNVUJVXKVWMVUGVUJUXQUIVYJUXNUXQVUFIUXRXMVMWRVUJ
        XNVMVXLVXCAUWQVWHVWLRYQVUKVURCXQXRXSVWIVUOVUMWMWRVWMVUIUNUIZVXGVXNUNUIZ
        VXQVXRWOVWMVUHULUIZVYLVWHVYNAVWLVUFYTZUVHULUNVUHJBUQUQUWTUXAGJQUVJXMVMV
        XMVWMVXGVXHVYMVXMVXIVWNVWOYNYKVUIVWNVXNUVKWQXEVWIVUQVXOUEZVWLVWHAVYNVYP
        VYOABCDFGHIJVUHLMNOPQYMYHVKVWMVXGVXHVWQVXPUEVXMVXIVWNVWOUVLYKYPWRUVMUVN
        UVOUVPUVQUVRUVTWRUVSAKULUIZUWFUWMUWAAUXTUXSULUIZVYQSAVYHVYRAVYGVYHVYIUW
        BUXNYTVMKUXSUWCYKUBKUWDVMUWE $.
    $}

    ${
      cantnflt2.f $e |- ( ph -> F e. S ) $.
      cantnflt2.a $e |- ( ph -> (/) e. A ) $.
      cantnflt2.c $e |- ( ph -> C e. On ) $.
      cantnflt2.s $e |- ( ph -> ( F supp (/) ) C_ C ) $.
      $( An upper bound on the ` CNF ` function.  (Contributed by Mario
         Carneiro, 28-May-2015.)  (Revised by AV, 29-Jun-2019.) $)
      cantnflt2 $p |- ( ph -> ( ( A CNF B ) ` F ) e. ( A ^o C ) ) $=
        ( vk vz co cfv cep cvv wcel ccnf c0 csupp coi cdm cv coe comu coa cmpt2
        cseqom eqid cantnfval con0 csuc ssexd oion 3syl cima wiso wf1o wfo wceq
        sucidg wwe com cantnfcl simpld oiiso syl2anc isof1o f1ofo foima eqsstrd
        4syl cantnflt eqeltrd ) AFBCUAPQFUBUCPZRUDZUEZNOSSBNUFVSQZUGPWAFQUHPOUF
        UIPUJUBUKZQBDUGPAOBCENFVSWBGHIVSULZJWBULZUMAOBCDENFVSWBVTGHIWCJWDKAVRST
        ZVTUNTVTVTUOTAVRDUNLMUPZVRRVSSWCUQVTUNVDURLAVSVTUSZVRDAVTVRRRVSUTZVTVRV
        SVAVTVRVSVBWGVRVCAWEVRRVEZWHWFAWIVTVFTABCEFVSGHIWCJVGVHVRRVSSWCVIVJVTVR
        RRVSVKVTVRVSVLVTVRVSVMVOMVNVPVQ $.
    $}

    $( The ` CNF ` function is a function from finitely supported functions
       from ` B ` to ` A ` , to the ordinal exponential ` A ^o B ` .
       (Contributed by Mario Carneiro, 28-May-2015.) $)
    cantnff $p |- ( ph -> ( A CNF B ) : S --> ( A ^o B ) ) $=
      ( vf vk vz cv c0 co cvv cfv coe wcel wa wceq adantr vx vh vg cep coi comu
      csupp cdm coa cmpt2 cseqom csb ccnf fvex csbex cfsupp cmap crab cmpt eqid
      a1i wbr cantnffval cantnfdm syl5eq mpteq1d eqtr4d c1o simpr cantnfval cen
      con0 wwe ovex com cantnfcl oien sylancr wss suppssdm cantnfs simprbda fdm
      simpld wf syl syl5sseq feq3 syl5ibcom imp f00 sylib simprd sseq0 syl2an2r
      breqtrd en0 fveq2d 0ex seqom0g mp1i 3eqtrd el1o sylibr oe0 eqtrd eleqtrrd
      oveq2d wne wb on0eln0 biimpar cantnflt2 pm2.61dane fmpt2d ) AHUADUBHKZLUG
      MUDUEZUBKZUHZIJNNBIKZXROZPMYAXPOUFMJKZUIMUJLUKZOZULZBCPMZBCUMMZNYENQAXPDQ
      RUBXQYDXSYCUNUOVAAYGHUCKLUPVBUCBCUQMURZYEUSHDYEUSAJBCYHHUCUBIYHUTZFGVCAHD
      YHYEADYGUHYHEABCYHUCYIFGVDVEVFVGAUAKZDQZRZYJYGOZYFQBLYLBLSZRZYMVHYFYOYMLS
      YMVHQYOYMYJLUGMZUDUEZUHZIJNNBXTYQOZPMYSYJOUFMYBUIMUJZLUKZOZLUUAOZLYLYMUUB
      SYNYLJBCDIYJYQUUAEABVLQZYKFTZACVLQZYKGTZYQUTZAYKVIZUUAUTZVJTYOYRLUUAYOYRL
      VKVBYRLSYOYRYPLVKYLYRYPVKVBZYNYLYPNQYPUDVMZUUKYJLUGVNYLUULYRVOQYLBCDYJYQE
      UUEUUGUUHUUIVPWDYPUDYQNUUHVQVRTYLYPCVSZYNCLSZYPLSYLYJUHZYPCYJLVTYLCBYJWEZ
      UUOCSAYKUUPYJLUPVBABCDYJEFGWAWBZCBYJWCWFWGZYOYJLSZUUNYOCLYJWEZUUSUUNRYLYN
      UUTYLUUPYNUUTUUQBLCYJWHWIWJCYJWKWLWMZYPCWNWOWPYRWQWLWRLNQUUCLSYOWSYTUUALN
      UUJWTXAXBYMXCXDYOYFBLPMZVHYOCLBPUVAXHYOUUDUVBVHSYLUUDYNUUETBXEWFXFXGYLBLX
      IZRBCCDYJEYLUUDUVCUUETYLUUFUVCUUGTZYLYKUVCUUITYLLBQZUVCYLUUDUVEUVCXJUUEBX
      KWFXLUVDYLUUMUVCUURTXMXNXO $.

    ${
      cantnf0.a $e |- ( ph -> (/) e. A ) $.
      $( The value of the zero function.  (Contributed by Mario Carneiro,
         30-May-2015.) $)
      cantnf0 $p |- ( ph -> ( ( A CNF B ) ` ( B X. { (/) } ) ) = (/) ) $=
        ( vk vz c0 co cfv cep cvv eqid wcel con0 wceq 0ex csn cxp csupp coi cdm
        ccnf cv coe comu coa cmpt2 cseqom cfsupp wbr fconst6g fczfsuppd cantnfs
        wf syl mpbir2and cantnfval eqidd wfn wb fnconstg mp1i fnsuppeq0 syl3anc
        a1i mpbird oieq2 dmeqd cen wwe we0 oien mp2an en0 syl6eq fveq2d seqom0g
        mpbi 3eqtrd ) ACKUAUBZBCUFLMWDKUCLZNUDZUEZIJOOBIUGWFMZUHLWHWDMUILJUGUJL
        UKZKULZMKWJMZKAJBCDIWDWFWJEFGWFPAWDDQCBWDURZWDKUMUNAKBQWLHCKBUOUSACRBKG
        HUPABCDWDEFGUQUTWJPZVAAWGKWJAWGKNUDZUEZKAWFWNAWEKSZWFWNSAWPWDWDSZAWDVBA
        WDCVCZCRQKOQZWPWQVDWSWRATCKOVEVFGWSATVICWDORKVGVHVJWEKNVKUSVLWOKVMUNZWO
        KSWSKNVNWTTNVOKNWNOWNPVPVQWOVRWBVSVTWSWKKSATWIWJKOWMWAVFWC $.
    $}

    ${
      cantnfrescl.d $e |- ( ph -> D e. On ) $.
      cantnfrescl.b $e |- ( ph -> B C_ D ) $.
      cantnfrescl.x $e |- ( ( ph /\ n e. ( D \ B ) ) -> X = (/) ) $.
      cantnfrescl.a $e |- ( ph -> (/) e. A ) $.
      cantnfrescl.t $e |- T = dom ( A CNF D ) $.
      $( A function is finitely supported from ` B ` to ` A ` iff the extended
         function is finitely supported from ` D ` to ` A ` .  (Contributed by
         Mario Carneiro, 25-May-2015.) $)
      cantnfrescl $p |- ( ph -> ( ( n e. B |-> X ) e. S <->
                                     ( n e. D |-> X ) e. T ) ) $=
        ( c0 wa wcel con0 cmpt wf cfsupp wbr wral cdif adantr eqeltrd ralrimiva
        cv raldifeq eqid fmpt 3bitr3g cvv wfun csupp wceq mptexg syl funmpt a1i
        co jctir jca31 extmptsuppeq suppeqfsuppbi sylc anbi12d cantnfs 3bitr4d
        wb ) ACBGCHUAZUBZVMQUCUDZRDBGDHUAZUBZVPQUCUDZRVMESVPFSAVNVQVOVRAHBSZGCU
        EVSGDUEVNVQAVSGCDMAVSGDCUFZAGUJVTSZRHQBNAQBSWAOUGUHUIUKGCBHVMVMULUMGDBH
        VPVPULUMUNAVMUOSZVMUPZRVPUOSZVPUPZRZRVMQUQVCVPQUQVCURVOVRVLAWBWCWFACTSW
        BKGCHTUSUTWCAGCHVAVBAWDWEADTSWDLGDHTUSUTGDHVAVDVEACDGTHQLMNVFUOVMVPUOQV
        GVHVIABCEVMIJKVJABDFVPPJLVJVK $.

      $d k z T $.
      cantnfres.m $e |- ( ph -> ( n e. B |-> X ) e. S ) $.
      $( The ` CNF ` function respects extensions of the domain to a larger
         ordinal.  (Contributed by Mario Carneiro, 25-May-2015.) $)
      cantnfres $p |- ( ph -> ( ( A CNF B ) ` ( n e. B |-> X ) ) =
                              ( ( A CNF D ) ` ( n e. D |-> X ) ) ) $=
        ( vk c0 con0 vz cmpt csupp co cep coi cdm cfv coe comu coa cmpt2 cseqom
        cv ccnf wceq wcel w3a extmptsuppeq oieq2 syl fveq1d 3ad2ant1 oveq2d wss
        cres suppssdm eqid dmmptss a1i syl5ss oif ffvelrni sseldd fvres resmptd
        3ad2ant2 fveq2d 3eqtr3d oveq12d mpt2eq3dva dmeqd mpt2eq12 sylancl eqtrd
        oveq1d seqomeq12 fveq12d cvv cantnfval2 cantnfrescl mpbid 3eqtr4d ) AGC
        HUBZSUCUDZUEUFZUGZRUAWQTBRUNZWPUHZUIUDZWSWNUHZUJUDZUAUNZUKUDZULZSUMZUHG
        DHUBZSUCUDZUEUFZUGZRUAXJTBWRXIUHZUIUDZXKXGUHZUJUDZXCUKUDZULZSUMZUHWNBCU
        OUDUHXGBDUOUDUHAWQXJXFXQAXEXPUPSSUPXFXQUPAXERUAWQTXOULZXPARUAWQTXDXOAWR
        WQUQZXCTUQZURZXBXNXCUKYAWTXLXAXMUJYAWSXKBUIAXSWSXKUPXTAWRWPXIAWOXHUPWPX
        IUPACDGTHSLMNUSWOXHUEUTVAZVBVCZVDYAWSXGCVFZUHZWSXGUHZXAXMYAWSCUQYEYFUPY
        AWOCWSAXSWOCVEXTAWOWNUGZCWNSVGYGCVEAGCHWNWNVHVIVJVKVCXSAWSWOUQXTWQWOWRW
        PWOUEWPWPVHZVLVMVQVNWSCXGVOVAYAWSYDWNYAGDCHAXSCDVEXTMVCVPVBYAWSXKXGYCVR
        VSVTWFWAAWQXJUPTTUPXRXPUPAWPXIYBWBZTVHRUAWQTXJTXOWCWDWESVHXEXPSSWGWDYIW
        HAUABCERWNWPRUAWIWIXDULSUMZIJKYHQYJVHWJAUABDFRXGXIRUAWIWIXOULSUMZPJLXIV
        HAWNEUQXGFUQQABCDEFGHIJKLMNOPWKWLYKVHWJWM $.
    $}

    ${
      cantnfp1.g $e |- ( ph -> G e. S ) $.
      cantnfp1.x $e |- ( ph -> X e. B ) $.
      cantnfp1.y $e |- ( ph -> Y e. A ) $.
      cantnfp1.s $e |- ( ph -> ( G supp (/) ) C_ X ) $.
      cantnfp1.f $e |- F = ( t e. B |-> if ( t = X , Y , ( G ` t ) ) ) $.
      $( Lemma for ~ cantnfp1 .  (Contributed by Mario Carneiro, 20-Jun-2015.)
         (Revised by AV, 30-Jun-2019.) $)
      cantnfp1lem1 $p |- ( ph -> F e. S ) $=
        ( wcel c0 cvv vk wf cfsupp wbr cv wceq cfv cif wa adantr cantnfs simpld
        mpbid ffvelrnda ifcld fmptd csupp cfn csn cun wss simprd fsuppimpd snfi
        unfi sylancl cdif eldifi adantl fvex ifexg eqeq1 fveq2 ifbieq2d syl2anc
        co fvmptg wn eldifn velsn elun2 sylbir iffalsed ssun1 sscon ax-mp sseli
        nsyl con0 eqid eqimss2 mp1i 0ex suppssr sylan2 3eqtrd ssfi wfun funmpt2
        a1i suppss cmpt mptexg syl5eqel syl funisfsupp syl3anc mpbird mpbir2and
        wb ) AFERDCFUBFSUCUDZABDBUEZHUFZIXLGUGZUHZCFAXLDRZUIXMIXNCAICRZXPOUJADC
        XLGADCGUBZGSUCUDZAGERXRXSUIMACDEGJKLUKUMZULZUNUOQUPZAXKFSUQVPZURRZAGSUQ
        VPZHUSZUTZURRZYCYGVAYDAYEURRYFURRYHAGSAXRXSXTVBVCHVDYEYFVEVFADCUAFYGSYB
        AUAUEZDYGVGZRZUIZYIFUGZYIHUFZIYIGUGZUHZYOSYLYIDRZYPTRZYMYPUFYKYQAYIDYGV
        HVIYLXQYOTRYRAXQYKOUJYIGVJYNIYOCTVKVFBYIXOYPDTFXLYIUFXMYNXNYOIXLYIHVLXL
        YIGVMVNQVQVOYLYNIYOYLYIYGRZYNYKYSVRAYIDYGVSVIYNYIYFRYSUAHVTYIYFYEWAWBWH
        WCYKAYIDYEVGZRYOSUFYJYTYIYEYGVAYJYTVAYEYFWDYEYGDWEWFWGADCTGWIYEYISYAYEY
        EUFYEYEVAAYEWJYEYEWKWLLSTRZAWMWTZWNWOWPXAYGYCWQVOAFWRZFTRZUUAXKYDXJUUCA
        BDXOFQWSWTADWIRZUUDLUUEFBDXOXBTQBDXOWIXCXDXEUUBFTTSXFXGXHACDEFJKLUKXI
        $.

      ${
        cantnfp1.e $e |- ( ph -> (/) e. Y ) $.
        cantnfp1.o $e |- O = OrdIso ( _E , ( F supp (/) ) ) $.
        $( Lemma for ~ cantnfp1 .  (Contributed by Mario Carneiro,
           28-May-2015.)  (Revised by AV, 30-Jun-2019.) $)
        cantnfp1lem2 $p |- ( ph -> dom O = suc U. dom O ) $=
          ( cdm cuni wceq wn csuc c0 wlim wo csupp co wcel cfv cv iftrue fvmptg
          wne cif syl2anc wb onelon on0eln0 syl mpbid eqnetrd wfn cvv wa adantr
          con0 cfsupp wbr cantnfs simpld ffvelrnda ifcld fmptd ffn 0ex elsuppfn
          wf a1i syl3anc mpbir2and n0i cen cep wwe suppssdm dmmptd syl5sseq com
          ssexd cantnfp1lem1 cantnfcl oien breq1 ensymb en0 bitri syl6bb simprd
          syl5ibcom mtod nnlim ioran word nnord unizlim 3syl mtbird orduniorsuc
          sylanbrc ord mpd ) AHUAZXOUBZUCZUDXOXPUEUCZAXQXOUFUCZXOUGZUHZAXSUDXTU
          DZYAUDAXSFUFUIUJZUFUCZAIYCUKZYDUDAYEIDUKZIFULZUFUPZOAYGJUFAYFJCUKZYGJ
          UCOPBIBUMZIUCZJYJGULZUQZJDCFYKJYLUNRUOURAUFJUKZJUFUPZSAJVIUKZYNYOUSAC
          VIUKYIYPLPCJUTURJVAVBVCVDAFDVEZDVIUKUFVFUKZYEYFYHVGUSADCFVTYQABDYMCFA
          YJDUKZVGYKJYLCAYIYSPVHADCYJGADCGVTZGUFVJVKZAGEUKYTUUAVGNACDEGKLMVLVCV
          MVNVOZRVPDCFVQVBMYRAVRWAIFVIVFDUFVSWBWCYCIWDVBAXOYCWEVKZXSYDAYCVFUKYC
          WFWGZUUCAYCDVIMAFUAYCDFUFWHABFDYMCRUUBWIWJWLAUUDXOWKUKZACDEFHKLMTABCD
          EFGIJKLMNOPQRWMWNZVMYCWFHVFTWOURXSUUCUFYCWEVKZYDXOUFYCWEWPUUGYCUFWEVK
          YDUFYCWQYCWRWSWTXBXCAUUEYBAUUDUUEUUFXAZXOXDVBXSXTXEXLAUUEXOXFZXQYAUSU
          UHXOXGZXOXHXIXJAXQXRAUUEUUIXQXRUHUUHUUJXOXKXIXMXN $.

        cantnfp1.h $e |- H = seqom ( ( k e. _V , z e. _V |->
          ( ( ( A ^o ( O ` k ) ) .o ( F ` ( O ` k ) ) ) +o z ) ) , (/) ) $.
        cantnfp1.k $e |- K = OrdIso ( _E , ( G supp (/) ) ) $.
        cantnfp1.m $e |- M = seqom ( ( k e. _V , z e. _V |->
          ( ( ( A ^o ( K ` k ) ) .o ( G ` ( K ` k ) ) ) +o z ) ) , (/) ) $.
        $( Lemma for ~ cantnfp1 .  (Contributed by Mario Carneiro,
           28-May-2015.)  (Revised by AV, 1-Jul-2019.) $)
        cantnfp1lem3 $p |- ( ph -> ( ( A CNF B ) ` F ) =
            ( ( ( A ^o X ) .o Y ) +o ( ( A CNF B ) ` G ) ) ) $=
          ( vx vy co cfv cdm csuc coe comu coa cantnfval fveq2d wcel wceq csupp
          com c0 cep wwe cantnfcl simprd sylibr cantnfsuc wo wn wss wf1o wf cvv
          wiso con0 suppssdm cv cif wa adantr wbr mpbid simpld fdm syl syl5sseq
          syl2anc wne fvmptg wb onelon wfn ffn 0ex a1i elsuppfn syl3anc sylancr
          3syl word fvex epelc eleq2d bitrd csn sseld oif ffvelrni sseldd eloni
          wi syld ordirr syl5ibrcom cun eldifi adantl ifexg sylancl eqeq1 fveq2
          cdif ifbieq2d iffalsed ax-mp suppssr sylib eqtrd oveq12d eqtr3d eleq1
          ssid cima eqeq12d imbi12d imbi2d syldan cantnfp1lem1 eqeltrrd peano2b
          ccnf cuni cantnfp1lem2 mpdan ccnv cantnfs ffvelrnda ifcld fmptd ssexd
          cfsupp oiiso isof1o f1ocnv on0eln0 eqnetrd mpbir2and ffvelrnd elssuni
          f1of iftrue oicl ordelon nnon ontri1 sucidg eleqtrrd syl12anc 3bitr3g
          isorel mtbid onss sstrd ordn2lp imnan elsni notbid eldifn velsn elun2
          f1ocnvfv2 sylbir nsyl ssun1 sscon sseli sylan2 3eqtrd suppss sylanbrc
          elun mpjaod ioran ordtri3 mpbird oveq2d nnord sssucid syl5sseqr f1ofo
          cres wfo foima fnsnfv sneqd difeq12d cin disjsn difun2 syl6eqr df-suc
          disj3 syl6eq difeq1d eqtr4d imaeq2d dff1o3 simprbi imadif ssneldd c1o
          dif1o mpbiran bicomd anbi2d sylbird mpand syl5bir necon1bd mpd eqeq1d
          wfun iffalse syl5ibcom pm2.61d reldisj uncom syl6sseq ssundif isores3
          eqssd 3eqtr4rd wse epse oieu mpbi2and cmpt2 seqom0g ordtr trsuc sylan
          mp1i wtr ex imim1d oveq2 elnn ancoms fveq1d ordsucelsuc fvres eleqtrd
          biimpa nelneq 3eqtr3rd oveq1d syl5ibr a2d a2i finds mpcom 3eqtr4d ) A
[encoded data, 6000 characters]
          NUYMABDEFGIKLPQRUGSUHURVVOYLYKUWK $.
      $}

      $( If ` F ` is created by adding a single term ` ( F `` X ) = Y ` to
         ` G ` , where ` X ` is larger than any element of the support of
         ` G ` , then ` F ` is also a finitely supported function and it is
         assigned the value ` ( ( A ^o X ) .o Y ) +o z ` where ` z ` is the
         value of ` G ` .  (Contributed by Mario Carneiro, 28-May-2015.)
         (Revised by AV, 1-Jul-2019.) $)
      cantnfp1 $p |- ( ph -> ( F e. S /\ ( ( A CNF B ) ` F ) =
          ( ( ( A ^o X ) .o Y ) +o ( ( A CNF B ) ` G ) ) ) ) $=
        ( wcel co c0 vz vk ccnf cfv coe comu coa wceq wa cv cmpt wn con0 onelon
        cif word syl2anc eloni ordirr 3syl wne cvv c1o cdif dif1o mpbiran csupp
        fvex wfn wb wf cfsupp wbr cantnfs mpbid simpld ffn syl 0ex a1i elsuppfn
        syl3anc bicomi bitrd sseld sylbird mpand syl5bir necon1bd mpd ad3antrrr
        anbi2d simpr fveq2d simpllr 3eqtr4rd eqidd ifeqda syl5eq feqmptd adantr
        mpteq2dva eqtr4d eqeltrd oecl cantnff ffvelrnd oa0r oveq2 om0 sylan9eqr
        oveq1d jca wss cantnfp1lem1 cep coi cseqom on0eln0 biimpar cantnfp1lem3
        cmpt2 eqid pm2.61dane ) AFERZFCDUCSZUDZCHUESZIUFSZGYFUDZUGSZUHZUIITAITU
        HZUIZYEYLYNFGEYNFBDBUJZGUDZUKZGYNFBDYOHUHZIYPUOZUKYQQYNBDYSYPYNYODRZUIZ
        YRIYPYPUUAYRUIZHGUDZTYPIAUUCTUHZYMYTYRAHHRZULZUUDAHUMRZHUPUUFADUMRZHDRZ
        UUGLNDHUNUQZHURHUSUTAUUEUUCTUUCTVAZUUCVBVCVDRZAUUEUULUUCVBRUUKHGVHUUCVB
        VEVFZAUUIUULUUENAUUIUULUIZHGTVGSZRZUUEAUUPUUIUUKUIZUUNAGDVIZUUHTVBRZUUP
        UUQVJADCGVKZUURAUUTGTVLVMZAGERZUUTUVAUIMACDEGJKLVNVOVPZDCGVQVRLUUSAVSVT
        HGUMVBDTWAWBAUUKUULUUIUUKUULVJAUULUUKUUMWCVTWLWDAUUOHHPWEWFWGWHWIWJWKUU
        BYOHGUUAYRWMWNAYMYTYRWOWPUUAYRULUIYPWQWRXBWSAGYQUHYMABDCGUVCWTXAXCZAUVB
        YMMXAXDYNTYJUGSZYJYKYGYNYJUMRZUVEYJUHAUVFYMACDUESZUMRZYJUVGRUVFACUMRZUU
        HUVHKLCDXEUQAEUVGGYFACDEJKLXFMXGUVGYJUNUQXAYJXHVRYNYITYJUGYMAYIYHTUFSZT
        ITYHUFXIAYHUMRZUVJTUHAUVIUUGUVKKUUJCHXEUQYHXJVRXKXLYNFGYFUVDWNWPXMAITVA
        ZUIZYEYLUVMBCDEFGHIJAUVIUVLKXAZAUUHUVLLXAZAUVBUVLMXAZAUUIUVLNXAZAICRZUV
        LOXAZAUUOHXNUVLPXAZQXOUVMUABCDEUBFGUBUAVBVBCUBUJZFTVGSXPXQZUDZUESUWCFUD
        UFSUAUJZUGSYBTXRZUUOXPXQZUBUAVBVBCUWAUWFUDZUESUWGGUDUFSUWDUGSYBTXRZUWBH
        IJUVNUVOUVPUVQUVSUVTQATIRZUVLAIUMRZUWIUVLVJAUVIUVRUWJKOCIUNUQIXSVRXTUWB
        YCUWEYCUWFYCUWHYCYAXMYD $.
    $}

    oemapval.t $e |- T = { <. x , y >. | E. z e. B ( ( x ` z ) e. ( y ` z )
      /\ A. w e. B ( z e. w -> ( x ` w ) = ( y ` w ) ) ) } $.
    $( The relation ` T ` is a strict order on ` S ` (a corollary of
       ~ wemapso2 ).  (Contributed by Mario Carneiro, 28-May-2015.) $)
    oemapso $p |- ( ph -> T Or S ) $=
      ( vg wor cv c0 wbr wcel cep cfsupp cmap co crab con0 ccnv wwe eloni ordwe
      word weso 4syl cnvso sylib cfv wceq wi wral wa wrex copab epelc vex brcnv
      fvex epel bitri imbi1i ralbii anbi12i rexbii opabbii eqtr4i breq1 cbvrabv
      wemapso2 syl3anc wb ccnf cdm eqid cantnfdm syl5eq soeq2 syl mpbird ) AHIO
      ZNPZQUARZNFGUBUCZUDZIOZAGUESZGTUFZOZFTOZWLLAGTOZWOAWMGUJGTUGWQLGUHGUIGTUK
      ULGTUMUNAFUESFUJFTUGWPKFUHFUIFTUKULBCDEGFWNTIWKUEQIDPZBPZUOZWRCPZUOZSZWRE
      PZSZXDWSUOXDXAUOUPZUQZEGURZUSZDGUTZBCVAWTXBTRZXDWRWNRZXFUQZEGURZUSZDGUTZB
      CVAMXPXJBCXOXIDGXKXCXNXHWTXBWRXAVEVBXMXGEGXLXEXFXLWRXDTRXEXDWRTEVCDVCVDDE
      VFVGVHVIVJVKVLVMWIWSQUARNBWJWHWSQUAVNVOVPVQAHWKUPWGWLVRAHFGVSUCVTWKJAFGWK
      NWKWAKLWBWCHWKIWDWEWF $.

    ${
      oemapval.f $e |- ( ph -> F e. S ) $.
      oemapval.g $e |- ( ph -> G e. S ) $.
      $( Value of the relation ` T ` .  (Contributed by Mario Carneiro,
         28-May-2015.) $)
      oemapval $p |- ( ph -> ( F T G <-> E. z e. B ( ( F ` z ) e. ( G ` z )
        /\ A. w e. B ( z e. w -> ( F ` w ) = ( G ` w ) ) ) ) ) $=
        ( wcel cfv wceq wbr cv wi wral wa wrex wb fveq1 eleq12 syl2an eqeqan12d
        imbi2d ralbidv anbi12d rexbidv brabga syl2anc ) AJHRKHRJKIUADUBZJSZURKS
        ZRZUREUBZRZVBJSZVBKSZTZUCZEGUDZUEZDGUFZUGPQURBUBZSZURCUBZSZRZVCVBVKSZVB
        VMSZTZUCZEGUDZUEZDGUFVJBCJKIHHVKJTZVMKTZUEZWAVIDGWDVOVAVTVHWBVLUSTVNUTT
        VOVAUGWCURVKJUHURVMKUHVLUSVNUTUIUJWDVSVGEGWDVRVFVCWBWCVPVDVQVEVBVKJUHVB
        VMKUHUKULUMUNUOOUPUQ $.

      $d c F $.  $d c ph $.
      oemapvali.r $e |- ( ph -> F T G ) $.
      oemapvali.x $e |- X = U. { c e. B | ( F ` c ) e. ( G ` c ) } $.
      $( If ` F < G ` , then there is some ` z ` witnessing this, but we can
         say more and in fact there is a definable expression ` X ` that also
         witnesses ` F < G ` .  (Contributed by Mario Carneiro,
         25-May-2015.) $)
      oemapvali $p |- ( ph -> ( X e. B /\ ( F ` X ) e. ( G ` X ) /\
        A. w e. B ( X e. w -> ( F ` w ) = ( G ` w ) ) ) ) $=
        ( cv cfv wcel wceq wi wral w3a wbr wrex oemapval mpbid crab ssrab2 cuni
        wa con0 wss cfn c0 wne adantr onss syl syl5ss cfsupp csupp co wf simprd
        cantnfs wfn 3ad2ant1 simp2 simpld ffn ne0i 3ad2ant3 fvn0elsupp syl22anc
        rabssdv wfun fsuppimp ssfi adantl sylc simprl simprrl weq fveq2 eleq12d
        ex elrab sylanbrc ordunifi syl3anc syl5eqel sseldi cbvrabv elrab2 sylib
        simprrr wb word ffvelrnd onelon syl2anc eloni ordirr 3syl eleq2 eqeq12d
        wn nelneq imbi12d rspccv mtod cvv sylancr ssonuni ontri1 mpbird elssuni
        ssexg syl6sseqr eqssd eleq1 imbi1d ralbidv 3jca rexlimddv ) ADUBZJUCZYL
        KUCZUDZYLEUBZUDZYPJUCZYPKUCZUEZUFZEGUGZUPZLGUDZLJUCZLKUCZUDZLYPUDZYTUFZ
        EGUGZUHDGAJKIUIUUCDGUJTABCDEFGHIJKNOPQRSUKULAYLGUDZUUCUPZUPZUUDUUGUUJUU
        MMUBZJUCZUUNKUCZUDZMGUMZGLUUQMGUNZUUMLUURUOZUURUAUUMUURUQURZUURUSUDZUUR
        UTVAZUUTUURUDUUMUURGUQUUSUUMGUQUDZGUQURAUVDUULPVBZGVCVDVEZUUMKUTVFUIZUU
        RKUTVGVHZURZUVBAUVGUULAGFKVIZUVGAKHUDUVJUVGUPSAFGHKNOPVKULZVJVBAUVIUULA
        UUQMGUVHAUUNGUDZUUQUHUVDUVLKGVLZUUPUTVAZUUNUVHUDAUVLUVDUUQPVMAUVLUUQVNA
        UVLUVMUUQAUVJUVMAUVJUVGUVKVOZGFKVPVDVMUUQAUVNUVLUUPUUOVQVRGKUQUUNVSVTWA
        VBUVGKWBZUVHUSUDZUPUVIUVBUFZKUTWCUVQUVRUVPUVQUVIUVBUVHUURWDWLWEVDWFUUMY
        LUURUDZUVCUUMUUKYOUVSAUUKUUCWGZAUUKYOUUBWHUUQYOMYLGMDWIUUOYMUUPYNUUNYLJ
        WJUUNYLKWJWKWMWNZUURYLVQVDUURWOWPWQZWRZUUMUUDUUGUUMLUURUDUUDUUGUPUWBBUB
        ZJUCZUWDKUCZUDZUUGBLGUURUWDLUEUWEUUEUWFUUFUWDLJWJUWDLKWJWKUUQUWGMBGMBWI
        UUOUWEUUPUWFUUNUWDJWJUUNUWDKWJWKWSWTXAVJZUUMUUJUUBAUUKYOUUBXBZUUMLYLUEZ
        UUJUUBXCUUMLYLUUMLYLURZYLLUDZXMZUUMUWLUUEUUFUEZUUMUUGUUFUUFUDXMZUWNXMUW
        HUUMUUFUQUDZUUFXDUWOUUMFUQUDZUUFFUDUWPAUWQUULOVBUUMGFLKAUVJUULUVOVBUWCX
        EFUUFXFXGUUFXHUUFXIXJUUEUUFUUFXNXGUUMUUBUUDUWLUWNUFZUWIUWCUUAUWRELGYPLU
        EZYQUWLYTUWNYPLYLXKUWSYRUUEYSUUFYPLJWJYPLKWJXLXOXPWFXQUUMLUQUDYLUQUDZUW
        KUWMXCUUMLUUTUQUAUUMUURXRUDZUVAUUTUQUDUUMUURGURUVDUXAUUSUVEUURGUQYDXSUV
        FUURXRXTWFWQUUMUVDUUKUWTUVEUVTGYLXFXGLYLYAXGYBUUMUVSYLLURUWAUVSYLUUTLYL
        UURYCUAYEVDYFUWJUUIUUAEGUWJUUHYQYTLYLYPYGYHYIVDYBYJYK $.

      $( Lemma for ~ cantnf .  (Contributed by Mario Carneiro, 4-Jun-2015.)
         (Revised by AV, 2-Jul-2019.) $)
      cantnflem1a $p |- ( ph -> X e. ( G supp (/) ) ) $=
        ( c0 csupp co wcel cfv wne cv wceq wi wral oemapvali simp1d simp2d ne0i
        syl wfn con0 cvv wa wb cfsupp wbr cantnfs mpbid simpld ffn 0ex elsuppfn
        wf a1i syl3anc mpbir2and ) ALKUBUCUDUEZLGUEZLKUFZUBUGZAVOLJUFZVPUEZLEUH
        ZUEVTJUFVTKUFUIUJEGUKZABCDEFGHIJKLMNOPQRSTUAULZUMAVSVQAVOVSWAWBUNVPVRUO
        UPAKGUQZGURUEUBUSUEZVNVOVQUTVAAGFKVJZWCAWEKUBVBVCZAKHUEWEWFUTSAFGHKNOPV
        DVEVFGFKVGUPPWDAVHVKLKURUSGUBVIVLVM $.

      cantnflem1.o $e |- O = OrdIso ( _E , ( G supp (/) ) ) $.
      $( Lemma for ~ cantnf .  (Contributed by Mario Carneiro, 4-Jun-2015.)
         (Revised by AV, 2-Jul-2019.) $)
      cantnflem1b $p |- ( ( ph /\ ( suc u e. dom O /\ ( `' O ` X ) C_ u ) )
                             -> X C_ ( O ` u ) ) $=
        ( cv csuc cdm wcel ccnv cfv wss wa wn simprr con0 wb word c0 csupp oicl
        co cep wf1o wf wiso cvv wwe suppssdm wceq cfsupp wbr cantnfs simpld fdm
        mpbid syl syl5sseq ssexd cantnfcl oiiso syl2anc isof1o f1ocnv f1of 3syl
        com cantnflem1a ordelon sylancr adantr a1i sylan sucelon sylibr adantrr
        ffvelrnd ontri1 wtr ordtr mp1i simprl trsuc syl12anc fvex epelc 3bitr3g
        isorel f1ocnvfv2 eleq2d bitrd mtbid wi wral oemapvali simp1d onelon oif
        ffvelrni sseldd mpbird ) AFUEZUFZMUGZUHZNMUIZUJZYAUKZULZULZNYAMUJZUKZYJ
        NUHZUMZYIYAYFUHZYLYIYGYNUMZAYDYGUNYIYFUOUHZYAUOUHZYGYOUPAYPYHAYCUQZYFYC
        UHZYPLURUSVAZVBMUDUTZAYTYCNYEAYCYTMVCZYTYCYEVCYTYCYEVDAYCYTVBVBMVEZUUBA
        YTVFUHYTVBVGZUUCAYTHUORALUGZYTHLURVHAHGLVDZUUEHVIAUUFLURVJVKZALIUHUUFUU
        GULUAAGHILPQRVLVOVMHGLVNVPVQZVRAUUDYCWFUHAGHILMPQRUDUAVSVMYTVBMVFUDVTWA
        ZYCYTVBVBMWBVPZYCYTMWCYTYCYEWDWEABCDEGHIJKLNOPQRSTUAUBUCWGZWPZYCYFWHWIW
        JAYDYQYGAYDULYBUOUHZYQAYRYDUUMYRAUUAWKYCYBWHWLYAWMWNWOYFYAWQWAVOYIYNYJY
        FMUJZUHZYLYIYAYFVBVKZYJUUNVBVKZYNUUOYIUUCYAYCUHZYSUUPUUQUPAUUCYHUUIWJYI
        YCWRZYDUURYRUUSYIUUAYCWSWTAYDYGXAYCYAXBWAZAYSYHUULWJYCYTYAYFVBVBMXGXCYA
        YFNYEXDXEYJUUNYFMXDXEXFYIUUNNYJAUUNNVIZYHAUUBNYTUHUVAUUJUUKYCYTNMXHWAWJ
        XIXJXKYINUOUHZYJUOUHZYKYMUPAUVBYHAHUOUHZNHUHZUVBRAUVENKUJNLUJUHNEUEZUHU
        VFKUJUVFLUJVIXLEHXMABCDEGHIJKLNOPQRSTUAUBUCXNXOHNXPWAWJYIUVDYJHUHUVCAUV
        DYHRWJYIYTHYJAYTHUKYHUUHWJYIUURYJYTUHUUTYCYTYAMYTVBMUDXQXRVPXSHYJXPWANY
        JWQWAXT $.

      $( Lemma for ~ cantnf .  (Contributed by Mario Carneiro, 4-Jun-2015.)
         (Revised by AV, 2-Jul-2019.)  (Proof shortened by AV, 4-Apr-2020.) $)
      cantnflem1c $p |- ( ( ( ( ph /\ ( suc u e. dom O
                                           /\ ( `' O ` X ) C_ u ) ) /\ x e. B )
                               /\ ( ( F ` x ) =/= (/) /\ ( O ` u ) e. x ) ) ->
                            x e. ( G supp (/) ) ) $=
        ( cv csuc cdm wcel ccnv cfv wss wa c0 wne wfn csupp co ad3antrrr simplr
        con0 cfsupp wbr cantnfs mpbid simpld ffn syl wceq wral oemapvali simp3d
        wf cantnflem1b ad2antrr simprr simp1d onelon syl2anc onss sselda adantr
        wi adantlr ontr2 mp2and eleq2 fveq2 eqeq12d rspcv syl3c simprl eqnetrrd
        imbi12d fvn0elsupp syl22anc ) AFUEZUFMUGUHNMUIUJWPUKULZULZBUEZHUHZULZWS
        KUJZUMUNZWPMUJZWSUHZULZULZHUTUHZWTLHUOZWSLUJZUMUNWSLUMUPUQUHAXHWQWTXFRU
        RWRWTXFUSZAXIWQWTXFAHGLVLZXIAXLLUMVAVBZALIUHXLXMULUAAGHILPQRVCVDVEHGLVF
        VGURXGXBXJUMXGWTNEUEZUHZXNKUJZXNLUJZVHZWBZEHVIZNWSUHZXBXJVHZXKAXTWQWTXF
        ANHUHZNKUJNLUJUHZXTABCDEGHIJKLNOPQRSTUAUBUCVJZVKURXGNXDUKZXEYAWRYFWTXFA
        BCDEFGHIJKLMNOPQRSTUAUBUCUDVMVNXAXCXEVOXGNUTUHZWSUTUHZYFXEULYAWBAYGWQWT
        XFAXHYCYGRAYCYDXTYEVPHNVQVRURXAYHXFAWTYHWQAHUTWSAXHHUTUKRHVSVGVTWCWANXD
        WSWDVRWEXSYAYBWBEWSHXNWSVHZXOYAXRYBXNWSNWFYIXPXBXQXJXNWSKWGXNWSLWGWHWMW
        IWJXAXCXEWKWLHLUTWSWNWO $.

      cantnflem1.h $e |- H = seqom ( ( k e. _V , z e. _V |->
        ( ( ( A ^o ( O ` k ) ) .o ( G ` ( O ` k ) ) ) +o z ) ) , (/) ) $.
      $( Lemma for ~ cantnf .  (Contributed by Mario Carneiro, 4-Jun-2015.)
         (Revised by AV, 2-Jul-2019.) $)
      cantnflem1d $p |- ( ph ->
         ( ( A CNF B ) ` ( x e. B |-> if ( x C_ X , ( F ` x ) , (/) ) ) ) e.
           ( H ` suc ( `' O ` X ) ) ) $=
        ( coe co cfv comu ccnv csuc cv wss c0 cif cmpt ccnf con0 wcel wceq wral
        coa wi oemapvali simp1d onelon syl2anc oecl wf cfsupp wbr cantnfs mpbid
        wa simpld ffvelrnd omcl com cdm csupp wf1o cep cvv wwe suppssdm fdm syl
        wiso syl5sseq ssexd cantnfcl isof1o f1ocnv f1of 3syl cantnflem1a simprd
        oiiso elnn cantnfvalf ffvelrni oaword1 cantnfsuc mpdan f1ocnvfv2 oveq2d
        fveq2d oveq12d oveq1d eqtrd sseqtr4d wo wb sselda adantr onsseleq orcom
        onss syl6bb ifbid mpteq2dva ffvelrnda wne ne0i on0eln0 ifcld eqid fmptd
        mpbird 0ex a1i fsuppmptif mpbir2and cdif wn adantl fveq2 syl3anc sseldd
        eldifn iffalsed suppss2 ifeq1da eleq1 ifbieq1d fvex fvmpt ifeq2d eqtr3d
        ifex ifor syl6reqr mpteq2ia cantnfp1 omsuc word eloni ordsucss suceloni
        simp2d sylc omwordi mpd eqsstr3d cantnflt2 oaord eqeltrd ) AFOUGUHZOLUI
        ZUJUHZONUKZUIZULMUIZBGBUMZOUNZUVOKUIZUOUPZUQZFGURUHZUIZAUVKUVKUVMMUIZVC
        UHZUVNAUVKUSUTZUWBUSUTZUVKUWCUNAUVIUSUTZUVJUSUTZUWDAFUSUTZOUSUTZUWFRAGU
        SUTZOGUTZUWISAUWKOKUIZUVJUTZOEUMZUTUWNKUIUWNLUIVAVDEGVBZABCDEFGHIKLOPQR
        STUAUBUCUDVEZVFZGOVGVHZFOVIVHZAUWHUVJFUTZUWGRAGFOLAGFLVJZLUOVKVLZALHUTU
        XAUXBVOUBAFGHLQRSVMVNVPZUWQVQZFUVJVGVHZUVIUVJVRVHAUVMVSUTZUWEAUVMNVTZUT
        UXGVSUTZUXFALUOWAUHZUXGOUVLAUXGUXINWBZUXIUXGUVLWBUXIUXGUVLVJAUXGUXIWCWC
        NWIZUXJAUXIWDUTUXIWCWEZUXKAUXIGUSSALVTZUXIGLUOWFAUXAUXMGVAUXCGFLWGWHWJW
        KAUXLUXHAFGHLNQRSUEUBWLZVPUXIWCNWDUEWSVHUXGUXIWCWCNWMWHZUXGUXINWNUXIUXG
        UVLWOWPABCDEFGHIKLOPQRSTUAUBUCUDWQZVQAUXLUXHUXNWRUVMUXGWTVHZVSUSUVMMDWD
        WDFJUMNUIZUGUHUXRLUIUJUHDUMJMUFXAXBWHUVKUWBXCVHAUVNFUVMNUIZUGUHZUXSLUIZ
        UJUHZUWBVCUHZUWCAUXFUVNUYCVAUXQADFGHJLNMUVMQRSUEUBUFXDXEAUYBUVKUWBVCAUX
        TUVIUYAUVJUJAUXSOFUGAUXJOUXIUTUXSOVAUXOUXPUXGUXIONXFVHZXGAUXSOLUYDXHXIX
        JXKXLAUWAUVIUWLUJUHZCGCUMZOUTZUYFKUIZUOUPZUQZUVTUIZVCUHZUVKAUWABGUVOOVA
        ZUVOOUTZXMZUVQUOUPZUQZUVTUIZUYLAUVSUYQUVTABGUVRUYPAUVOGUTZVOZUVPUYOUVQU
        OUYTUVPUYNUYMXMZUYOUYTUVOUSUTUWIUVPVUAXNAGUSUVOAUWJGUSUNSGXSWHXOAUWIUYS
        UWRXPUVOOXQVHUYNUYMXRXTYAYBXHAUYQHUTUYRUYLVAABFGHUYQUYJOUWLQRSAUYJHUTGF
        UYJVJUYJUOVKVLACGUYIFUYJAUYFGUTZVOUYGUYHUOFAGFUYFKAGFKVJZKUOVKVLZAKHUTV
        UCVUDVOUAAFGHKQRSVMVNZVPZYCAUOFUTZVUBAVUGFUOYDZAUWTVUHUXDFUVJYEWHAUWHVU
        GVUHXNRFYFWHYJZXPYGUYJYHZYIAGFOCKUSWDUOVUFSUOWDUTAYKYLAVUCVUDVUEWRYMAFG
        HUYJQRSVMYNZUWQAGFOKVUFUWQVQZAGUYICUSOUOAUYFGOYOUTZVOUYGUYHUOVUMUYGYPAU
        YFGOUUAYQUUBSUUCZBGUYPUYMUWLUVOUYJUIZUPZUYSVUPUYMUVQUYNUVQUOUPZUPZUYPUY
        SUYMUVQVUOUPVUPVURUYSUYMUVQUWLVUOUYMUVQUWLVAUYSUVOOKYRYQUUDUYSUYMVUOVUQ
        UVQCUVOUYIVUQGUYJUYFUVOVAUYGUYNUYHUVQUOUYFUVOOUUEUYFUVOKYRUUFVUJUYNUVQU
        OUVOKUUGYKUUKUUHUUIUUJUYMUYNUVQUOUULUUMUUNUUOWRXKAUYEUVIVCUHZUVKUYLAVUS
        UVIUWLULZUJUHZUVKAUWFUWLUSUTZVVAVUSVAUWSAUWHUWLFUTVVBRVULFUWLVGVHZUVIUW
        LUUPVHAVUTUVJUNZVVAUVKUNZAUVJUUQZUWMVVDAUWGVVFUXEUVJUURWHAUWKUWMUWOUWPU
        VAUWLUVJUUSUVBAVUTUSUTZUWGUWFVVDVVEVDAVVBVVGVVCUWLUUTWHUXEUWSVUTUVJUVIU
        VCYSUVDUVEAUYKUVIUTZUYLVUSUTZAFGOHUYJQRSVUKVUIUWRVUNUVFZAUYKUSUTZUWFUYE
        USUTZVVHVVIXNAUWFVVHVVKUWSVVJUVIUYKVGVHUWSAUWFVVBVVLUWSVVCUVIUWLVRVHUYK
        UVIUYEUVGYSVNYTUVHYT $.

      $( Lemma for ~ cantnf .  This part of the proof is showing uniqueness of
         the Cantor normal form.  We already know that the relation ` T ` is a
         strict order, but we haven't shown it is a well-order yet.  But being
         a strict order is enough to show that two distinct ` F , G ` are ` T `
         -related as ` F < G ` or ` G < F ` , and WLOG assuming that
         ` F < G ` , we show that ` CNF ` respects this order and maps these
         two to different ordinals.  (Contributed by Mario Carneiro,
         28-May-2015.)  (Revised by AV, 2-Jul-2019.) $)
      cantnflem1 $p |- ( ph -> ( ( A CNF B ) ` F ) e. ( ( A CNF B ) ` G ) ) $=
        ( vu cv cdm cfv wss c0 cif cmpt csuc wcel con0 cvv csupp mp1i 3syl wceq
        co cep wn wo syl cen wbr simpld syl2anc syl6bb syl5ibcom simprd word wb
        com eleqtrrd wf1o wf ffvelrnd elssuni wa wi eqeltrrd sylibr eleq1 sseq2
        anbi12d fveq2 sseq2d ifbid mpteq2dv suceq eleq12d imbi12d weq f1ocnvfv2
        fveq2d adantl ordelon sylancr adantr a1i onsseleq simprl simprr jca coe
        eloni comu coa oecl cfsupp cantnfs mpbid mpbird cdif ifid syl6eq onelon
        wne ffvelrni sseldd ifeq1 eqeq12d ad2antrr isorel syl12anc fvex 3bitr3g
        0ex epelc ontri1 bitrd expr eqidd crab nfcv eqtrd cuni ccnf ccnv uniexg
        ovex oion sucidg wlim cantnflem1a n0i wwe ovexd cantnfcl oien breq1 en0
        ensymb bitri mtod nnlim ioran sylanbrc oicl unizlim orduniorsuc ord mpd
        mtbird wiso oiiso isof1o f1ocnv f1of peano2b imbi2d cantnflem1d eqeltrd
        ss0 sylan sucelon ordsssuc ordtr trsuc cantnff ffvelrnda wral oemapvali
        simp1d ne0i on0eln0 ifcld eqid fmptd wfun mptexg funmpt eqimss2 suppssr
        wtr suppss2 fsuppsssupp syl22anc mpbir2and elnn cantnfvalf suppssdm fdm
        ifeq1d syl5sseq oif omcl oaord syl3anc sselda adantlr onsssuc vex sucid
        onss sucex mpbii ordelsuc sseld sylbid cantnflem1c eleq1d mtbid sylibrd
        con2d impbid orbi1d bitr4d orcom pm2.61ne mpteq2dva c1o ralrimivw fnmpt
        wfn ifex w3a suppvalfn nffvmpt1 nfne nfv neeq1d fvmpt2d biantrurd dif1o
        cbvrab syl6bbr rabbidva mpbiran necon3i iffalse necon1ai expimpd syl5bi
        syl5 rabssdv eqsstrd eqeq1 sseq1 orbi12d ifbieq1d cbvmptv ifeq1da fvmpt
        3impia ifeq2d syl6eqr eqtr3d mpteq2ia eqtr4i cantnfp1 cantnfsuc adantrr
        ifor syldan simp3d eleq2 rspcv oveq2d oveq1d eqtr4d biimpd embantd a1dd
        syl3c sylbird jaod com23 finds2 vtoclga mpcom mp2and eqeq2 orduni ax-mp
        feqmptd con2bid ordtri1 sylancl eleq2d ffvelrn sylancom pm2.65da eldifd
        ontr2 ssid imp ifbothda cantnfval 3eltr4d ) ABGBUHZNUIZUUAZNUJZUKZVXOKU
[encoded data, 9520 characters]
        XN $.
    $}

    ${
      cantnf.c $e |- ( ph -> C e. ( A ^o B ) ) $.
      cantnf.s $e |- ( ph -> C C_ ran ( A CNF B ) ) $.
      cantnf.e $e |- ( ph -> (/) e. C ) $.
      $( Lemma for ~ cantnf .  (Contributed by Mario Carneiro, 28-May-2015.) $)
      cantnflem2 $p |- ( ph -> ( A e. ( On \ 2o ) /\ C e. ( On \ 1o ) ) ) $=
        ( con0 wcel c1o c2o cdif c0 wceq wo coe co oecl syl2anc onelon sylanbrc
        wss ondif1 eldifbd ssel syl5com mtod oe0m syl difss syl6eqss syl5ibrcom
        oveq1 sseq1d oe1m eqimss 3syl jaod cpr elpri df2o3 eleq2s nsyl eldifd
        jca ) AFRUAUBSHRTUBSZAFRUALAFUCUDZFTUDZUEZFUASAVSFGUFUGZTULZAWAHTSZAHRT
        AHRSZUCHSVPAVTRSZHVTSZWCAFRSGRSZWDLMFGUHUIOVTHUJUIQHUMUKZUNAWEWAWBOVTTH
        UOUPUQAVQWAVRAWAVQUCGUFUGZTULAWHTGUBZTAWFWHWIUDMGURUSTGUTVAVQVTWHTFUCGU
        FVCVDVBAWAVRTGUFUGZTULZAWFWJTUDWKMGVEWJTVFVGVRVTWJTFTGUFVCVDVBVHUQVSFUC
        TVIUAFUCTVJVKVLVMVNWGVO $.

      cantnf.x $e |- X = U. |^| { c e. On | C e. ( A ^o c ) } $.
      cantnf.p $e |- P = ( iota d E. a e. On E. b e. ( A ^o X )
        ( d = <. a , b >. /\ ( ( ( A ^o X ) .o a ) +o b ) = C ) ) $.
      cantnf.y $e |- Y = ( 1st ` P ) $.
      cantnf.z $e |- Z = ( 2nd ` P ) $.
      ${
        cantnf.g $e |- ( ph -> G e. S ) $.
        cantnf.v $e |- ( ph -> ( ( A CNF B ) ` G ) = Z ) $.
        cantnf.f $e |- F = ( t e. B |-> if ( t = X , Y , ( G ` t ) ) ) $.
        $( Lemma for ~ cantnf .  Here we show existence of Cantor normal forms.
           Assuming (by transfinite induction) that every number less than
           ` C ` has a normal form, we can use ~ oeeu to factor ` C ` into the
           form ` ( ( A ^o X ) .o Y ) +o Z ` where ` 0 < Y < A ` and
           ` Z < ( A ^o X ) ` (and a fortiori ` X < B ` ).  Then since
           ` Z < ( A ^o X ) <_ ( A ^o X ) .o Y <_ C ` , ` Z ` has a normal
           form, and by appending the term ` ( A ^o X ) .o Y ` using ~ cantnfp1
           we get a normal form for ` C ` .  (Contributed by Mario Carneiro,
           28-May-2015.) $)
        cantnflem3 $p |- ( ph -> C e. ran ( A CNF B ) ) $=
          ( vk ccnf co cfv crn coe comu coa wcel wceq wss con0 c1o cdif w3a c2o
          c0 wa cantnflem2 eqid 3pm3.2i oeeui mpbiri simpld simp1d oecl syl2anc
          syl simp2d eldifad onelon wne dif1o simprbi wb on0eln0 mpbird omword1
          syl21anc omcl simp3d oaword1 simprd sseqtrd sstrd ontr2 oeord syl3anc
          wi mp2and csupp cv adantr cdm suppssdm wf cfsupp wbr cantnfs syl5sseq
          mpbid fdm sselda ffvelrnd wfn cvv ffn 0ex a1i elsuppfn simplbda cmpt2
          cep coi cseqom cantnfle ssrdv cantnfp1 oveq2d 3eqtrd cantnff fnfvelrn
          ex eqeltrrd ) AMGHUQURZUSZIYTUTZAUUAGOVAURZPVBURZNYTUSZVCURZUUDQVCURZ
          IAMKVDZUUAUUFVEZAFGHKMNOPUBUCUDUMAOHVDZUUCGHVAURZVDZAUUCIVFZIUUKVDZUU
          LAUUCUUDIAUUCVGVDZPVGVDZVLPVDZUUCUUDVFAGVGVDZOVGVDZUUOUCAUUSPGVHVIVDZ
          QUUCVDZAUUSUUTUVAVJZUUGIVEZAGVGVKVIVDZIVGVHVIVDZVMZUVBUVCVMZABCDEGHIK
          LUBUCUDUEUFUGUHVNZUVFUVGOOVEZPPVEZQQVEZVJUVIUVJUVKOVOPVOQVOVPTRSUAGIO
          PJQOPQUIUJUKULVQVRWCZVSZVTZGOWAWBZAUURPGVDZUUPUCAPGVHAUUSUUTUVAUVMWDZ
          WEZGPWFWBZAUUQPVLWGZAUUTUVTUVQUUTUVPUVTPGWHWIWCAUUPUUQUVTWJUVSPWKWCWL
          UUCPWMWNAUUDUUGIAUUDVGVDZQVGVDZUUDUUGVFAUUOUUPUWAUVOUVSUUCPWOWBAUUOUV
          AUWBUVOAUUSUUTUVAUVMWPZUUCQWFWBUUDQWQWBAUVBUVCUVLWRZWSWTUFAUUOUUKVGVD
          ZUUMUUNVMUULXDUVOAUURHVGVDZUWEUCUDGHWAWBUUCIUUKXAWBXEAUUSUWFUVDUUJUUL
          WJUVNUDAUVDUVEUVHVSZOHGXBXCWLUVRABNVLXFURZOABXGZUWHVDZUWIOVDZAUWJVMZU
          WKGUWIVAURZUUCVDZUWLUWMQVFZUVAUWNUWLUWMUWMUWINUSZVBURZQUWLUWMVGVDZUWP
          VGVDZVLUWPVDZUWMUWQVFUWLUURUWIVGVDZUWRAUURUWJUCXHZUWLUWFUWIHVDZUXAAUW
          FUWJUDXHZAUWHHUWIANXIZUWHHNVLXJAHGNXKZUXEHVEAUXFNVLXLXMZANKVDZUXFUXGV
          MUMAGHKNUBUCUDXNXPVSZHGNXQWCXOXRZHUWIWFWBZGUWIWAWBZUWLUURUWPGVDUWSUXB
          UWLHGUWINAUXFUWJUXIXHUXJXSGUWPWFWBZUWLUWTUWPVLWGZAUWJUXCUXNANHXTZUWFV
          LYAVDZUWJUXCUXNVMWJAUXFUXOUXIHGNYBWCUDUXPAYCYDUWINVGYAHVLYEXCYFUWLUWS
          UWTUXNWJUXMUWPWKWCWLUWMUWPWMWNUWLUWQUUEQUWLDGHUWIKUPNUWHYHYIZUPDYAYAG
          UPXGUXQUSZVAURUXRNUSVBURDXGVCURYGVLYJZUBUXBUXDUXQVOAUXHUWJUMXHUXSVOUX
          JYKAUUEQVEUWJUNXHWSWTAUVAUWJUWCXHUWLUWRUUOUWOUVAVMUWNXDUXLAUUOUWJUVOX
          HUWMQUUCXAWBXEUWLUXAUUSUVDUWKUWNWJUXKAUUSUWJUVNXHAUVDUWJUWGXHUWIOGXBX
          CWLYRYLUOYMZWRAUUEQUUDVCUNYNUWDYOAYTKXTZUUHUUAUUBVDAKUUKYTXKUYAAGHKUB
          UCUDYPKUUKYTYBWCAUUHUUIUXTVSKMYTYQWBYS $.
      $}

      $( Lemma for ~ cantnf .  Complete the induction step of ~ cantnflem3 .
         (Contributed by Mario Carneiro, 25-May-2015.) $)
      cantnflem4 $p |- ( ph -> C e. ran ( A CNF B ) ) $=
        ( vg vt cv ccnf co cfv wceq crn wcel wrex coe comu coa con0 wss c1o w3a
        cdif c2o wa cantnflem2 eqid 3pm3.2i oeeui mpbiri syl simpld simp1d oecl
        syl2anc simp2d eldifad onelon omcl simp3d oaword1 dif1o simprbi on0eln0
        c0 wne wb mpbird omword1 syl21anc sseldd simprd eleqtrd wfn cantnff ffn
        fvelrnb 3syl mpbid cif cmpt adantr simprl simprr cantnflem3 rexlimddv
        wf ) AUJULZFGUMUNZUONUPZHXMUQZURUJJANXOURZXNUJJUSZAHXONUDANFLUTUNZMVAUN
        ZNVBUNZHAXSXTNAXSVCURZNVCURZXSXTVDAXRVCURZMVCURZYAAFVCURZLVCURZYCTAYFMF
        VEVGURZNXRURZAYFYGYHVFZXTHUPZAFVCVHVGURHVCVEVGURVIZYIYJVIZABCDEFGHJKSTU
        AUBUCUDUEVJYKYLLLUPZMMUPZNNUPZVFYMYNYOLVKMVKNVKVLQOPRFHLMINLMNUFUGUHUIV
        MVNVOZVPZVQFLVRVSZAYEMFURZYDTAMFVEAYFYGYHYQVTZWAFMWBVSZXRMWCVSAYCYHYBYR
        AYFYGYHYQWDZXRNWBVSXSNWEVSAXRXSNAYCYDWIMURZXRXSVDYRUUAAUUCMWIWJZAYGUUDY
        TYGYSUUDMFWFWGVOAYDUUCUUDWKUUAMWHVOWLXRMWMWNUUBWOWOAYIYJYPWPWQWOAJFGUTU
        NZXMXKXMJWRXPXQWKAFGJSTUAWSJUUEXMWTUJJNXMXAXBXCAXLJURZXNVIZVIBCDEUKFGHI
        JKUKGUKULZLUPMUUHXLUOXDXEZXLLMNOPQRSAYEUUGTXFAGVCURUUGUAXFUBAHUUEURUUGU
        CXFAHXOVDUUGUDXFAWIHURUUGUEXFUFUGUHUIAUUFXNXGAUUFXNXHUUIVKXIXJ $.
    $}

    $d c ph $.
    $( The Cantor Normal Form theorem.  The function ` ( A CNF B ) ` , which
       maps a finitely supported function from ` B ` to ` A ` to the sum
       ` ( ( A ^o f ( a 1 ) ) o. a 1 ) +o `
       ` ( ( A ^o f ( a 2 ) ) o. a 2 ) +o ... ` over all indexes ` a < B ` such
       that ` f ( a ) ` is nonzero, is an order isomorphism from the ordering
       ` T ` of finitely supported functions to the set ` ( A ^o B ) ` under
       the natural order.  Setting ` A = _om ` and letting ` B ` be arbitrarily
       large, the surjectivity of this function implies that every ordinal has
       a Cantor normal form (and injectivity, together with coherence
       ~ cantnfres , implies that such a representation is unique).
       (Contributed by Mario Carneiro, 28-May-2015.) $)
    cantnf $p |- ( ph -> ( A CNF B ) Isom T , _E ( S , ( A ^o B ) ) ) $=
      ( co cep cv cfv wcel wa c0 vf vg vt vd va vb vc vk vu vv wor coe wpo ccnf
      wfo wbr wral wiso oemapso word wwe con0 oecl syl2anc eloni syl ordwe weso
      wi sopo 4syl crn wceq cantnff wss frn onss sseld weq eleq1 imbi12d imbi2d
      wf r19.21v wel ordelss sylan sselda pm5.5 ralbidva dfss3 syl6bbr wne crab
      wb cop cint cuni comu coa wrex cio c1st c2nd adantr simplrl simprl onelon
      simplrr on0eln0 biimpar cantnflem4 csn cxp coi cdm cvv cmpt2 cseqom csupp
      eqid fczsupp0 eqcomi oieq2 ax-mp cfsupp ne0i ad2antrl oveq1 syl5ibcom 0ex
      neeq1d a1i eqtri expr copab fveq2 ralbidv anbi12d fveq1 oe0m1 bitr3d syl5
      necon2d 3imtr4d imp fconstmpt fmptd fczfsuppd cantnfs mpbir2and cantnfval
      cen we0 oien mp2an en0 mpbi fveq2i seqom0g wfn fnfvelrn eqeltrrd pm2.61ne
      syl6eq ffn sylbid com23 a2i syl5bi tfis2 com3l ssrdv eqssd dffo2 sylanbrc
      ex eleq12d imbi1d cbvrexv eleq12 syl2an eqeqan12d rexbidv syl5bb cbvopabv
      simprll simprlr simprr cantnflem1 epelc sylibr ralrimivva soisoi syl22anc
      mpdd fvex ) AHIUKFGULNZOUMZHUWRFGUNNZUOZUAPZUBPZIUPZUXBUWTQZUXCUWTQZOUPZV
      IZUBHUQUAHUQHUWRIOUWTURABCDEFGHIJKLMUSAUWRUTZUWROVAUWROUKUWSAUWRVBRZUXIAF
      VBRZGVBRZUXJKLFGVCVDZUWRVEVFZUWRVGUWROVHUWROVJVKAHUWRUWTWCZUWTVLZUWRVMUXA
      AFGHJKLVNZAUXPUWRAUXOUXPUWRVOUXQHUWRUWTVPVFAUCUWRUXPAUCPZUWRRZUXRVBRZUXRU
      XPRZAUWRVBUXRAUXJUWRVBVOUXMUWRVQVFVRUXTAUXSUYAAUXSUYAVIZVIZACPZUWRRZUYDUX
      PRZVIZVIZUCCUCCVSZUYBUYGAUYIUXSUYEUYAUYFUXRUYDUWRVTUXRUYDUXPVTWAWBUYHCUXR
      UQAUYGCUXRUQZVIZUXTUYCAUYGCUXRWDUYKUYCVIUXTAUYJUYBAUXSUYJUYAAUXSUYJUYAVIA
      UXSSZUYJUXRUXPVOZUYAUYLUYJUYFCUXRUQUYMUYLUYGUYFCUXRUYLCUCWESUYEUYGUYFWOUY
      LUXRUWRUYDAUXIUXSUXRUWRVOUXNUWRUXRWFWGWHUYEUYFWIVFWJCUXRUXPWKWLAUXSUYMUYA
      AUXSUYMSZSZUYATUXPRUXRTUXRTUXPVTUYOUXRTWMZSBCDEFGUXRUDPUEPZUFPZWPVMFUXRFU
      GPZULNRUGVBWNWQWRZULNZUYQWSNUYRWTNUXRVMSUFVUAXAUEVBXAUDXBZHIUYTVUBXCQZVUB
      XDQZUEUFUGUDJUYOUXKUYPAUXKUYNKXEZXEUYOUXLUYPAUXLUYNLXEZXEMAUXSUYMUYPXFAUX
      SUYMUYPXIUYOTUXRRZUYPUYOUXTVUGUYPWOUYOUXJUXSUXTAUXJUYNUXMXEAUXSUYMXGUWRUX
      RXHVDUXRXJVFXKUYTYAVUBYAVUCYAVUDYAXLUYOGTXMXNZUWTQZTUXPUYOVUITOXOZXPZUHDX
      QXQFUHPZVUJQZULNVUMVUHQWSNDPZWTNXRZTXSZQZTUYODFGHUHVUHVUJVUPJVUEVUFTVUHTX
      TNZVMVUJVUROXOVMVURTGTYBYCTVUROYDYEUYOVUHHRZGFVUHWCZVUHTYFUPZUYOCGTFVUHUY
      OUYDGRZTFRZVVBGTWMZUYOVVCGUYDYGUYOTGULNZTVMZFTWMZVVDVVCUYOFTVVETUYOUWRTWM
      ZFTVMZVVETWMUXSVVHAUYMUWRUXRYGYHVVIUWRVVETFTGULYIYLYJUUDUYOUXLVVDVVFWOVUF
      UXLTGRVVDVVFGXJGUUAUUBVFUYOUXKVVCVVGWOVUEFXJVFUUEUUCUUFCGTUUGUUHAVVAUYNAG
      VBXQTLTXQRZAYKYMUUIXEAVUSVUTVVASWOUYNAFGHVUHJKLUUJXEUUKZVUPYAZUULVUQTVUPQ
      ZTVUKTVUPVUKTUUMUPZVUKTVMVVJTOVAVVNYKOUUNTOVUJXQVUJYAUUOUUPVUKUUQUURUUSVV
      JVVMTVMYKVUOVUPTXQVVLUUTYEYNUVEUYOUWTHUVAZVUSVUIUXPRUYOUXOVVOAUXOUYNUXQXE
      HUWRUWTUVFVFVVKHVUHUWTUVBVDUVCUVDYOUVGUVQUVHUVIYMUVJUVKUVLUWPUVMUVNHUWRUW
      TUVOUVPAUXHUAUBHHAUXBHRZUXCHRZSZUXDUXGAVVRUXDSZSZUXEUXFRUXGVVTUIUJUCEFGHI
      UHUXBUXCUHUCXQXQFVULUXCTXTNOXOZQZULNVWBUXCQWSNUXRWTNXRTXSZVWAUYSUXBQUYSUX
      CQRUGGWNWRZUGJAUXKVVSKXEAUXLVVSLXEIVUNBPZQZVUNUYDQZRZDEWEZEPZVWEQZVWJUYDQ
      ZVMZVIZEGUQZSZDGXAZBCYPUXRUIPZQZUXRUJPZQZRZUCEWEZVWJVWRQZVWJVWTQZVMZVIZEG
      UQZSZUCGXAZUIUJYPMVWQVXJBCUIUJVWQUXRVWEQZUXRUYDQZRZVXCVWMVIZEGUQZSZUCGXAB
      UIVSZCUJVSZSZVXJVWPVXPDUCGDUCVSZVWHVXMVWOVXOVXTVWFVXKVWGVXLVUNUXRVWEYQVUN
      UXRUYDYQUVRVXTVWNVXNEGVXTVWIVXCVWMVUNUXRVWJVTUVSYRYSUVTVXSVXPVXIUCGVXSVXM
      VXBVXOVXHVXQVXKVWSVMVXLVXAVMVXMVXBWOVXRUXRVWEVWRYTUXRUYDVWTYTVXKVWSVXLVXA
      UWAUWBVXSVXNVXGEGVXSVWMVXFVXCVXQVXRVWKVXDVWLVXEVWJVWEVWRYTVWJUYDVWTYTUWCW
      BYRYSUWDUWEUWFYNAVVPVVQUXDUWGAVVPVVQUXDUWHAVVRUXDUWIVWDYAVWAYAVWCYAUWJUXE
      UXFUXCUWTUWQUWKUWLYOUWMUAUBHUWRIOUWTUWNUWO $.

    $( The lexicographic order on a function space of ordinals gives a
       well-ordering with order type equal to the ordinal exponential.  This
       provides an alternate definition of the ordinal exponential.
       (Contributed by Mario Carneiro, 28-May-2015.) $)
    oemapwe $p |- ( ph -> ( T We S /\ dom OrdIso ( T , S ) = ( A ^o B ) ) ) $=
      ( wwe wceq cep con0 wcel syl cvv coi cdm co word oecl syl2anc eloni ordwe
      coe 3syl ccnf wiso wb cantnf isowe mpbird ccnv wa isocnv wse ovex eqeltri
      dmex exse ax-mp eqid oieu sylancl mpbi2and simpld eqcomd jca ) AHINZHIUAZ
      UBZFGUIUCZOAVMVPPNZAVPQRZVPUDZVQAFQRGQRVRKLFGUEUFZVPUGZVPUHUJAHVPIPFGUKUC
      ZULZVMVQUMABCDEFGHIJKLMUNZHVPIPWBUOSUPZAVPVOAVPVOOZWBUQZVNOZAVSVPHPIWGULZ
      WFWHURZAVRVSVTWASAWCWIWDHVPIPWBUSSAVMHIUTZVSWIURWJUMWEHTRWKHWBUBTJWBFGUKV
      AVCVBHITVDVEHVPIVNWGVNVFVGVHVIVJVKVL $.

    $( An alternate definition of ~ df-cnf which relies on ~ cantnf .  (Note
       that although the use of ` S ` seems self-referential, one can use
       ~ cantnfdm to eliminate it.)  (Contributed by Mario Carneiro,
       28-May-2015.) $)
    cantnffval2 $p |- ( ph -> ( A CNF B ) = `' OrdIso ( T , S ) ) $=
      ( ccnf ccnv wceq cep con0 wcel cvv coi wrel coe wiso cantnf isof1o f1orel
      co wf1o 3syl dfrel2 sylib cdm word wa syl2anc eloni syl isocnv wwe wse wb
      oecl oemapwe simpld ovex dmex eqeltri exse ax-mp eqid oieu sylancl simprd
      mpbi2and cnveqd eqtr3d ) AFGNUHZOZOZVRHIUAZOAVRUBZVTVRPAHFGUCUHZIQVRUDZHW
      CVRUIWBABCDEFGHIJKLMUEZHWCIQVRUFHWCVRUGUJVRUKULAVSWAAWCWAUMZPZVSWAPZAWCUN
      ZWCHQIVSUDZWGWHUOZAWCRSZWIAFRSGRSWLKLFGVCUPWCUQURAWDWJWEHWCIQVRUSURAHIUTZ
      HIVAZWIWJUOWKVBAWMWFWCPABCDEFGHIJKLMVDVEHTSWNHVRUMTJVRFGNVFVGVHHITVIVJHWC
      IWAVSWAVKVLVMVOVNVPVQ $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d x y z ph $.  $d x y z S $.
    cantnff1o.1 $e |- S = dom ( A CNF B ) $.
    cantnff1o.2 $e |- ( ph -> A e. On ) $.
    cantnff1o.3 $e |- ( ph -> B e. On ) $.
    $( Simplify the isomorphism of ~ cantnf to simple bijection.  (Contributed
       by Mario Carneiro, 30-May-2015.) $)
    cantnff1o $p |- ( ph -> ( A CNF B ) : S -1-1-onto-> ( A ^o B ) ) $=
      ( vz vx vy vw coe co cv cfv wcel wceq wi wral cep wa wrex copab ccnf wiso
      wf1o eqid cantnf isof1o syl ) ADBCLMZHNZINZOULJNZOPULKNZPUOUMOUOUNOQRKCSU
      AHCUBIJUCZTBCUDMZUEDUKUQUFAIJHKBCDUPEFGUPUGUHDUKUPTUQUIUJ $.
  $}

  ${
    $d a b c d f w x y z A $.  $d a b c d f x y B $.  $d a b c d f w x y z F $.
    $d a b c d f x y G $.  $d a b c d f x y ph $.  $d c d w z R $.  $d c z S $.
    $d c d f x y U $.  $d f x Z $.
    wemapwe.t $e |- T = { <. x , y >. | E. z e. A ( ( x ` z ) S ( y ` z ) /\
        A. w e. A ( z R w -> ( x ` w ) = ( y ` w ) ) ) } $.
    wemapwe.u $e |- U = { x e. ( B ^m A ) | x finSupp Z } $.
    wemapwe.2 $e |- ( ph -> R We A ) $.
    wemapwe.3 $e |- ( ph -> S We B ) $.
    wemapwe.4 $e |- ( ph -> B =/= (/) ) $.
    wemapwe.5 $e |- F = OrdIso ( R , A ) $.
    wemapwe.6 $e |- G = OrdIso ( S , B ) $.
    wemapwe.7 $e |- Z = ( G ` (/) ) $.
    $( Construct lexicographic order on a function space based on a reverse
       well-ordering of the indexes and a well-ordering of the values.
       (Contributed by Mario Carneiro, 29-May-2015.)  (Revised by AV,
       3-Jul-2019.) $)
    wemapwe $p |- ( ph -> T We U ) $=
      ( vf vc va vb vd cvv wcel wa wwe cxp cin ccnv ccom cmpt cfv wceq cdm wral
      cv wi wrex copab wbr ccnf co wf1o cfsupp cmap crab eqid cep simprr adantr
      wiso oiiso syl2anc isof1o syl simprl f1ocnv oiexg ad2antll dmexg ad2antrl
      3syl c0 wne crn wfo f1ofo eqnetrd dm0rn0 necon3bii sylibr wb oif ffvelrni
      forn con0 oion syl5eq mpbird weinxp fveq2 breq12d ralbidv anbi12d sylancr
      vex coexg fveq1 syl2an weq coeq1 coeq2d fvmptg ad2antrr wf sseldi ffvelrn
      elmapi isorel syl12anc sylancl fvco3 sylancom fveq2d eqtrd bitr4d eqeq12d
      fco imbi12d adantrr ffvelrnd ex inopab eqtri wn ord0eln0 syl5eqel mapfien
      word ax-mp cantnfdm fveq2i f1ocnvfv1 breq2d rabbidv eqtr4d f1oeq3 coi coe
      oicl oemapwe simpld f1owe sylc sylib wfn f1ofn breq1 imbi1d rexrn rexeqdv
      cnvexg eleq12 eqeqan12d imbi2d rexbidv brabga isocnv ssrab2 eqsstri epelc
      fvex syl6bb simpr eleq12d raleqdv breq2 ralrn bitr3d syl5bbr f1of1 f1fveq
      epel wf1 3bitrd anassrs ralbidva rexbidva 3bitr4rd 3bitr3d pm5.32rd df-xp
      opabbidv ineq12i ineq2i 3eqtr4g weeq1 we0 elmapex pm2.21d ralrimiv rabeq0
      con3i weeq2 mpbiri pm2.61d1 ) AGUHUIZFUHUIZUJZKJUKZAUXNUXOAUXNUJZKJKKULZU
[encoded data, 4560 characters]
      WVHUXGWPXCKWHJUXIVTUXJUXK $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y ph $.
    $d x y F $.  $d x y G $.
    oef1o.f $e |- ( ph -> F : A -1-1-onto-> C ) $.
    oef1o.g $e |- ( ph -> G : B -1-1-onto-> D ) $.
    oef1o.a $e |- ( ph -> A e. ( On \ 1o ) ) $.
    oef1o.b $e |- ( ph -> B e. On ) $.
    oef1o.c $e |- ( ph -> C e. On ) $.
    oef1o.d $e |- ( ph -> D e. On ) $.
    oef1o.z $e |- ( ph -> ( F ` (/) ) = (/) ) $.
    oef1o.k $e |- K = ( y e. { x e. ( A ^m B ) | x finSupp (/) }
                           |-> ( F o. ( y o. `' G ) ) ) $.
    oef1o.h $e |- H = ( ( ( C CNF D ) o. K ) o. `' ( A CNF B ) ) $.
    $( A bijection of the base sets induces a bijection on ordinal
       exponentials.  (The assumption ` ( F `` (/) ) = (/) ` can be discharged
       using ~ fveqf1o .)  (Contributed by Mario Carneiro, 30-May-2015.)
       (Revised by AV, 3-Jul-2019.) $)
    oef1o $p |- ( ph -> H : ( A ^o B ) -1-1-onto-> ( C ^o D ) ) $=
      ( coe co ccnf ccom ccnv wf1o cdm eqid cantnff1o cv c0 cfsupp wbr cmap cfv
      crab cmpt f1ocnv syl con0 cvv ssv sseldi eldifad cdif wcel ondif1 simprbi
      mapfien wceq wb f1oeq1 ax-mp sylibr cantnfdm breq2d rabbidv eqtr4d f1oeq3
      c1o mpbird f1oeq2 f1oco syl2anc ) ADEUAUBZFGUAUBZFGUCUBZKUDZDEUCUBZUEZUDZ
      UFZWEWFJUFZAWIUGZWFWHUFZWEWNWJUFZWLAWGUGZWFWGUFWNWQKUFZWOAFGWQWQUHPQUIAWR
      BUJZUKULUMZBDEUNUBUPZWQKUFZAXBXAWSUKHUOZULUMZBFGUNUBZUPZKUFZAXAXFCXAHCUJI
      UEZUDUDUQZUFZXGABEDGFXAXFCXHHXCUKXAUHZXFUHXCUHAEGIUFGEXHUFMEGIURUSLAUTVAE
      UTVBZOVCAUTVADXLADUTVTNVDZVCAUTVAGXLQVCAUTVAFXLPVCADUTVTVEVFZUKDVFZNXNDUT
      VFXODVGVHUSVIKXIVJXGXJVKSXAXFKXIVLVMVNAWQXFVJXBXGVKAWQWTBXEUPZXFAFGXPBXPU
      HPQVOAXDWTBXEAXCUKWSULRVPVQVRWQXFXAKVSUSWAAWNXAVJWRXBVKADEXABXKXMOVOWNXAW
      QKWBUSWAWNWQWFWGKWCWDAWNWEWIUFWPADEWNWNUHXMOUIWNWEWIURUSWEWNWFWHWJWCWDJWK
      VJWMWLVKTWEWFJWKVLVMVN $.
  $}

  ${
    $d k x z A $.  $d k u v w x y z I $.  $d x y M $.  $d u v w y ph $.
    $d f k u v w x y z F $.  $d u v w K $.  $d u v w y z T $.  $d u v x W $.
    $d f k u v w x y z G $.  $d f u v w x y H $.  $d k z S $.
    cnfcom.s $e |- S = dom ( _om CNF A ) $.
    cnfcom.a $e |- ( ph -> A e. On ) $.
    cnfcom.b $e |- ( ph -> B e. ( _om ^o A ) ) $.
    cnfcom.f $e |- F = ( `' ( _om CNF A ) ` B ) $.
    cnfcom.g $e |- G = OrdIso ( _E , ( F supp (/) ) ) $.
    cnfcom.h $e |- H = seqom ( ( k e. _V , z e. _V |-> ( M +o z ) ) , (/) ) $.
    cnfcom.t $e |- T = seqom ( ( k e. _V , f e. _V |-> K ) , (/) ) $.
    cnfcom.m $e |- M = ( ( _om ^o ( G ` k ) ) .o ( F ` ( G ` k ) ) ) $.
    cnfcom.k $e |- K = ( ( x e. M |-> ( dom f +o x ) ) u.
                         `' ( x e. dom f |-> ( M +o x ) ) ) $.
    ${
      cnfcom.1 $e |- ( ph -> I e. dom G ) $.
      ${
        cnfcom.2 $e |- ( ph -> O e. ( _om ^o ( G ` I ) ) ) $.
        cnfcom.3 $e |- ( ph -> ( T ` I ) : ( H ` I ) -1-1-onto-> O ) $.
        $( Lemma for ~ cnfcom .  (Contributed by Mario Carneiro, 30-May-2015.)
           (Revised by AV, 3-Jul-2019.) $)
        cnfcomlem $p |- ( ph -> ( T ` suc I ) : ( H ` suc I ) -1-1-onto->
          ( ( _om ^o ( G ` I ) ) .o ( F ` ( G ` I ) ) ) ) $=
          ( vy vu vv csuc cfv com coe co comu coa wf1o cv cmpt ccnv con0 omelon
          cun wcel c0 csupp cdm suppssdm wf wceq cfsupp wbr wa cantnff1o f1ocnv
          ccnf a1i f1of ffvelrnd syl5eqel cantnfs mpbid simpld fdm syl syl5sseq
          3syl cep oif ffvelrni sseldd onelon syl2anc oecl sylancr wwe cantnfcl
          nnon omcl simprd elnn cantnfvalf eqid oacomf1o wb cmpt2 seqomsuc nfcv
          cvv weq oveq2 cbvmptv simpl fveq2d oveq2d oveq12d syl5eq simpr oveq1d
          dmeqd mpteq12dv cnveqd uneq12d simprl f1odm sylan9eqr elex fvexd ovex
          cbvmpt2 mptex fvex cnvex mpbird cseqom syl21anc wss adantr unex eqtrd
          ovmpt2d f1oeq1 oveq1i mpt2eq3ia seqomeq12 mp2an cantnfsuc f1oeq2 cima
          eqtri sssucid sseldi wral epelg biimpar wiso ovexd oiiso word ordelss
          oicl sselda isorel syl12anc epelc sylib ralrimiva wfun ffun funimass4
          ax-mp w3a simpll simplr peano1 simpr1 simpr2 simpr3 cantnflt syl23anc
          wne wfn ffn 0ex elsuppfn syl3anc syl6bi on0eln0 omword1 oaabs2 f1oeq3
          mpd ) AMULZLUMZMLUMZUNMKUMZUOUPZUWRJUMZUQUPZURUPZUWOGUMZUSZUWPUXAUXCU
          SZAUXDUXAUWQURUPZUXBUXCUSZAUXGUXFUXBUIUXAUWQUIUTZURUPZVAZUIUWQUXAUXHU
          RUPZVAZVBZVEZUSZAUXAVCVFZUWQVCVFZUXOAUWSVCVFZUWTVCVFZUXPAUNVCVFZUWRVC
          VFZUXRVDADVCVFZUWRDVFZUYARAJVGVHUPZDUWRAJVIZUYDDJVGVJADUNJVKZUYEDVLAU
          YFJVGVMVNZAJFVFZUYFUYGVOAJEUNDVRUPZVBZUMFTAUNDUOUPZFEUYJAFUYKUYIUSUYK
          FUYJUSUYKFUYJVKAUNDFQUXTAVDVSZRVPFUYKUYIVQUYKFUYJVTWISWAWBZAUNDFJQUYL
          RWCWDWEZDUNJWFWGWHAMKVIZVFZUWRUYDVFZUFUYOUYDMKUYDWJKUAWKZWLWGZWMZDUWR
          WNWOZUNUWRWPWQZAUWTUNVFUXSADUNUWRJUYNUYTWAUWTWTWGZUWSUWTXAWOZAMUNVFZU
          XQAUYPUYOUNVFZVUEUFAUYDWJWRZVUFAUNDFJKQUYLRUAUYMWSZXBMUYOXCWOZUNVCMLC
          XKXKOCUTZILUBXDWLWGUIUXAUWQUXNUXNXEXFWOAUXCUXNVLUXGUXOXGAUXCMMGUMZIHX
          KXKNXHZUPZUXNAVUEUXCVUMVLVUIMVULGVGUCXIWGAUJUKMVUKXKXKUIUNUJUTZKUMZUO
          UPZVUOJUMZUQUPZUKUTZVIZUXHURUPZVAZUIVUTVURUXHURUPZVAZVBZVEZUXNVULXKVU
          LUJUKXKXKVVFXHVLAIHUJUKXKXKNVVFUJNXJUKNXJIVVFXJHVVFXJIUJXLZHUKXLZVOZN
          BOHUTZVIZBUTZURUPZVAZBVVKOVVLURUPZVAZVBZVEVVFUEVVIVVNVVBVVQVVEVVIVVNU
          IOVVKUXHURUPZVAVVBBUIOVVMVVRVVLUXHVVKURXMXNVVIUIOVVRVURVVAVVIOUNIUTZK
          UMZUOUPZVVTJUMZUQUPZVURUDVVIVWAVUPVWBVUQUQVVIVVTVUOUNUOVVIVVSVUNKVVGV
          VHXOXPZXQVVIVVTVUOJVWDXPXRXSZVVIVVKVUTUXHURVVIVVJVUSVVGVVHXTYBZYAYCXS
          VVIVVPVVDVVIVVPUIVVKOUXHURUPZVAVVDBUIVVKVVOVWGVVLUXHOURXMXNVVIUIVVKVW
          GVUTVVCVWFVVIOVURUXHURVWEYAYCXSYDYEXSYLVSAVUNMVLZVUSVUKVLZVOZVOZVVBUX
          JVVEUXMVWKUIVURVVAUXAUXIVWKVUPUWSVUQUWTUQVWKVUOUWRUNUOVWKVUNMKAVWHVWI
          YFXPZXQVWKVUOUWRJVWLXPXRZVWKVUTUWQUXHURVWJAVUTVUKVIZUWQVWJVUSVUKVWHVW
          IXTYBAUWQPVUKUSVWNUWQVLUHUWQPVUKYGWGYHZYAYCVWKVVDUXLVWKUIVUTVVCUWQUXK
          VWOVWKVURUXAUXHURVWMYAYCYDYEAUYPMXKVFUFMUYOYIWGAMGYJUXNXKVFAUXJUXMUIU
          XAUXIUWSUWTUQYKYMUXLUIUWQUXKMLYNYMYOUUAVSUUCUUBUXFUXBUXCUXNUUDWGYPAUW
          PUXFVLZUXDUXGXGAUYBUYHVUEVWPRUYMVUIUYBUYHVOZCUNDFIJKLMQUXTVWQVDVSUYBU
          YHXOUAUYBUYHXTLICXKXKOVUJURUPZXHZVGYQZICXKXKVWCVUJURUPZXHZVGYQZUBVWSV
          XBVLVGVGVLVWTVXCVLICXKXKVWRVXAVWRVXAVLVVSXKVFVUJXKVFVOOVWCVUJURUDUUEV
          SUUFVGXEVWSVXBVGVGUUGUUHUULZUUIYRUWPUXFUXBUXCUUJWGYPAUXBUXAVLZUXDUXEX
          GAUWQUWSVFZUXPUWSUXAYSZVXEAUYBUYHMUYOULZVFZUYAKMUUKUWRYSZVXFRUYMAUYOV
          XHMUYOUUMUFUUNVUAAVXJUXHKUMZUWRVFZUIMUUOZAVXLUIMAUXHMVFZVOZVXKUWRWJVN
          ZVXLVXOUXHMWJVNZVXPAVXQVXNAUYPVXQVXNXGUFUXHMUYOUUPWGUUQVXOUYOUYDWJWJK
          UURZUXHUYOVFUYPVXQVXPXGAVXRVXNAUYDXKVFVUGVXRAJVGVHUUSAVUGVUFVUHWEUYDW
          JKXKUAUUTWOYTAMUYOUXHAUYOUVAUYPMUYOYSZUYDWJKUAUVCUFUYOMUVBWQZUVDAUYPV
          XNUFYTUYOUYDUXHMWJWJKUVEUVFWDVXKUWRMKYNUVGUVHUVIAKUVJZVXSVXJVXMXGUYOU
          YDKVKVYAUYRUYOUYDKUVKUVMVXTUIMUWRKUVLWQYPVWQVXIUYAVXJUVNZVOZCUNDUWRFI
          JKLMQUXTVYCVDVSUYBUYHVYBUVOUAUYBUYHVYBUVPVXDVGUNVFVYCUVQVSVWQVXIUYAVX
          JUVRVWQVXIUYAVXJUVSVWQVXIUYAVXJUVTUWAUWBVUDAUXRUXSVGUWTVFZVXGVUBVUCAV
          YDUWTVGUWCZAUYQVYEUYSAUYQUYCVYEVOZVYEAJDUWDZUYBVGXKVFZUYQVYFXGAUYFVYG
          UYNDUNJUWEWGRVYHAUWFVSUWRJVCXKDVGUWGUWHUYCVYEXTUWIUWNAUXSVYDVYEXGVUCU
          WTUWJWGYPUWSUWTUWKYRUWQUXAUWRUWLYRUXBUXAUWPUXCUWMWGWD $.
      $}

      $( Any ordinal ` B ` is equinumerous to the leading term of its Cantor
         normal form.  Here we show that bijection explicitly.  (Contributed by
         Mario Carneiro, 30-May-2015.)  (Revised by AV, 3-Jul-2019.) $)
      cnfcom $p |- ( ph -> ( T ` suc I ) : ( H ` suc I ) -1-1-onto->
        ( ( _om ^o ( G ` I ) ) .o ( F ` ( G ` I ) ) ) ) $=
        ( vw vy cdm wcel csuc cfv com coe co comu wf1o wi c0 csupp cep wwe con0
        omelon ccnf ccnv wf cantnff1o f1ocnv f1of 3syl ffvelrnd syl5eqel simprd
        cantnfcl elnn syl2anc cv wceq eleq1 suceq fveq2d fveq2 oveq2d f1oeq123d
        a1i oveq12d imbi12d imbi2d adantr simpr wss suppssdm cfsupp wbr cantnfs
        wa mpbid simpld fdm syl syl5sseq sstrd oif ffvelrni ssel2 syl2an peano1
        onss oen0 syl21anc cvv 0ex cmpt2 seqom0g ax-mp f1o0 wb coa f1oeq2 mpbir
        mp2b f1oeq1 mpbiri mp1i cnfcomlem wtr word oicl ordtr trsuc mpan imim1i
        ex ad2antrr simprl ad2antrl sseldd epelc syl31anc mpd eloni sucid ssexd
        vex wiso oiiso syl12anc sucex fvex 3bitr3g mpbii ordsucss sylc suceloni
        isorel oewordi nnon oecl omord2 oesuc eleqtrrd simprr exp32 syl5 expcom
        a2d finds2 vtoclga mpcom ) AMKUHZUIZMUJZLUKZULMKUKZUMUNZUVNJUKZUOUNZUVL
        GUKZUPZUEMULUIZAUVKUVSUQZAUVKUVJULUIZUVTUEAJURUSUNZUTVAZUWBAULDFJKPULVB
        UIZAVCWEZQTAJEULDVDUNZVEZUKFSAULDUMUNZFEUWHAFUWIUWGUPUWIFUWHUPUWIFUWHVF
        AULDFPUWFQVGFUWIUWGVHUWIFUWHVIVJRVKVLZVNZVMMUVJVOVPAUFVQZUVJUIZUWLUJZLU
        KZULUWLKUKZUMUNZUWPJUKZUOUNZUWNGUKZUPZUQZUQAUWAUQUFMULUWLMVRZUXBUWAAUXC
        UWMUVKUXAUVSUWLMUVJVSUXCUWOUVMUWSUVQUWTUVRUXCUWNUVLGUWLMVTZWAUXCUWNUVLL
        UXDWAUXCUWQUVOUWRUVPUOUXCUWPUVNULUMUWLMKWBZWCUXCUWPUVNJUXEWAWFWDWGWHUXB
        URUVJUIZURUJZLUKZULURKUKZUMUNZUXIJUKZUOUNZUXGGUKZUPZUQUGVQZUVJUIZUXOUJZ
        LUKZULUXOKUKZUMUNZUXSJUKZUOUNZUXQGUKZUPZUQZUXQUVJUIZUXQUJZLUKZULUXQKUKZ
        UMUNZUYIJUKZUOUNZUYGGUKZUPZUQZAUFUGUWLURVRZUWMUXFUXAUXNUWLURUVJVSUYPUWO
        UXHUWSUXLUWTUXMUYPUWNUXGGUWLURVTZWAUYPUWNUXGLUYQWAUYPUWQUXJUWRUXKUOUYPU
        WPUXIULUMUWLURKWBZWCUYPUWPUXIJUYRWAWFWDWGUWLUXOVRZUWMUXPUXAUYDUWLUXOUVJ
        VSUYSUWOUXRUWSUYBUWTUYCUYSUWNUXQGUWLUXOVTZWAUYSUWNUXQLUYTWAUYSUWQUXTUWR
        UYAUOUYSUWPUXSULUMUWLUXOKWBZWCUYSUWPUXSJVUAWAWFWDWGUWLUXQVRZUWMUYFUXAUY
        NUWLUXQUVJVSVUBUWOUYHUWSUYLUWTUYMVUBUWNUYGGUWLUXQVTZWAVUBUWNUYGLVUCWAVU
        BUWQUYJUWRUYKUOVUBUWPUYIULUMUWLUXQKWBZWCVUBUWPUYIJVUDWAWFWDWGAUXFUXNAUX
        FWPZBCDEFGHIJKLURNOURPADVBUIZUXFQWIAEUWIUIZUXFRWISTUAUBUCUDAUXFWJVUEUWE
        UXIVBUIZURULUIZURUXJUIUWEVUEVCWEAUWCVBWKUXIUWCUIVUHUXFAUWCDVBAJUHZUWCDJ
        URWLADULJVFZVUJDVRAVUKJURWMWNZAJFUIVUKVULWPUWJAULDFJPUWFQWOWQWRZDULJWSW
        TXAZAVUFDVBWKZQDXHWTZXBUVJUWCURKUWCUTKTXCZXDUWCVBUXIXEXFVUIVUEXGWEULUXI
        XIXJURGUKZURVRZURLUKZURVURUPZVUEURXKUIZVUSXLIHXKXKNXMGURXKUBXNXOVUSVVAV
        UTURURUPZVVCURURURUPZXPVVBVUTURVRVVCVVDXQXLICXKXKOCVQXRUNXMLURXKUAXNVUT
        URURURXSYAXTVUTURVURURYBYCYDYEYMAUXOULUIZUYEUYOUQUYEUYFUYDUQAVVEWPZUYOU
        YFUXPUYDUVJYFZUYFUXPUVJYGVVGUWCUTKTYHUVJYIXOUVJUXOYJYKZYLVVFUYFUYDUYNVV
        FUYFUYDUYNVVFUYFUYDWPZWPZBCDEFGHIJKLUXQNOUYBPAVUFVVEVVIQYNAVUGVVEVVIRYN
        STUAUBUCUDVVFUYFUYDYOZVVJULUXSUJZUMUNZUYJUYBVVJVVLUYIWKZVVMUYJWKZVVJUYI
        YGZUXSUYIUIZVVNVVJUYIVBUIZVVPVVJDVBUYIAVUOVVEVVIVUPYNZVVJUWCDUYIAUWCDWK
        VVEVVIVUNYNZUYFUYIUWCUIVVFUYDUVJUWCUXQKVUQXDYPYQYQZUYIUUAWTVVJUXOUXQUIZ
        VVQUXOUGUUDZUUBVVJUXOUXQUTWNZUXSUYIUTWNZVWBVVQVVJUVJUWCUTUTKUUEZUXPUYFV
        WDVWEXQAVWFVVEVVIAUWCXKUIUWDVWFAUWCDVBQVUNUUCAUWDUWBUWKWRUWCUTKXKTUUFVP
        YNUYFUXPVVFUYDVVHYPZVVKUVJUWCUXOUXQUTUTKUUOUUGUXOUXQUXOVWCUUHYRUXSUYIUX
        QKUUIYRUUJUUKUXSUYIUULUUMVVJVVLVBUIZVVRUWEVUIVVNVVOUQVVJUXSVBUIZVWHVVJD
        VBUXSVVSVVJUWCDUXSVVTVVJUXPUXSUWCUIVWGUVJUWCUXOKVUQXDWTYQZYQZUXSUUNWTVW
        AUWEVVJVCWEZVUIVVJXGWEZVVLUYIULUUPYSYTVVJUYBUXTULUOUNZVVMVVJUYAULUIZUYB
        VWNUIZVVJDULUXSJAVUKVVEVVIVUMYNVWJVKZVVJUYAVBUIZUWEUXTVBUIZURUXTUIZVWOV
        WPXQVVJVWOVWRVWQUYAUUQWTVWLVVJUWEVWIVWSVWLVWKULUXSUURVPVVJUWEVWIVUIVWTV
        WLVWKVWMULUXSXIXJUYAULUXTUUSYSWQVVJUWEVWIVVMVWNVRVWLVWKULUXSUUTVPUVAYQV
        VFUYFUYDUVBYEUVCUVFUVDUVEUVGUVHUVIYT $.
    $}

    $d k x z ph $.
    cnfcom.w $e |- W = ( G ` U. dom G ) $.
    ${
      cnfcom2.1 $e |- ( ph -> (/) e. B ) $.
      $( Lemma for ~ cnfcom2 .  (Contributed by Mario Carneiro, 30-May-2015.)
         (Revised by AV, 3-Jul-2019.) $)
      cnfcom2lem $p |- ( ph -> dom G = suc U. dom G ) $=
        ( cdm cuni wceq wn csuc c0 wlim wo wcel n0i syl wa com ccnf cfv csn cxp
        co cmpt cv wf cfsupp wbr ccnv coe wf1o con0 omelon a1i cantnff1o f1ocnv
        f1of 3syl ffvelrnd cantnfs mpbid simpld adantr feqmptd cdif dif0 eleq2i
        syl5eqel cvv csupp wss cen simpr cep wwe suppssdm fdm syl5sseq cantnfcl
        ssexd oien syl2anc eqbrtrrd ensymd en0 ss0b sylibr 0ex suppssr sylan2br
        sylib mpteq2dva fconstmpt syl6eqr fveq2d fveq2i f1ocnvfv2 syl5eq peano1
        eqtrd cantnf0 3eqtr3d mtand simprd nnlim ioran sylanbrc word wb unizlim
        oicl ax-mp sylnibr orduniorsuc mp1i ord mpd ) AKUGZYSUHZUIZUJYSYTUKUIZA
        YSULUIZYSUMZUNZUUAAUUCUJUUDUJZUUEUJAUUCEULUIZAULEUOUUGUJUFEULUPUQAUUCUR
        ZJUSDUTVDZVAZDULVBVCZUUIVAZEULUUHJUUKUUIUUHJBDULVEZUUKUUHJBDBVFZJVAZVEU
        UMUUHBDUSJADUSJVGZUUCAUUPJULVHVIZAJFUOUUPUUQURAJEUUIVJZVAZFSAUSDVKVDZFE
        UURAFUUTUUIVLZUUTFUURVLUUTFUURVGAUSDFPUSVMUOAVNVOZQVPZFUUTUUIVQUUTFUURV
        RVSRVTWIZAUSDFJPUVBQWAWBWCZWDZWEUUHBDUUOULUUNDUOUUHUUNDULWFZUOUUOULUIUV
        GDUUNDWGWHUUHDUSWJJVMULUUNULUVFUUHJULWKVDZULUIZUVHULWLUUHUVHULWMVIUVIUU
        HULUVHUUHYSULUVHWMAUUCWNAYSUVHWMVIZUUCAUVHWJUOUVHWOWPZUVJAUVHDVMQAJUGZU
        VHDJULWQAUUPUVLDUIUVEDUSJWRUQWSXAAUVKYSUSUOZAUSDFJKPUVBQTUVDWTZWCUVHWOK
        WJTXBXCWDXDXEUVHXFXLUVHXGXHADVMUOUUCQWDULWJUOUUHXIVOXJXKXMYABDULXNXOXPA
        UUJEUIUUCAUUJUUSUUIVAZEJUUSUUISXQAUVAEUUTUOUVOEUIUVCRFUUTEUUIXRXCXSWDAU
        ULULUIUUCAUSDFPUVBQULUSUOAXTVOYBWDYCYDAUVMUUFAUVKUVMUVNYEYSYFUQUUCUUDYG
        YHYSYIZUUAUUEYJUVHWOKTYLZYSYKYMYNAUUAUUBUVPUUAUUBUNAUVQYSYOYPYQYR $.

      $( Any nonzero ordinal ` B ` is equinumerous to the leading term of its
         Cantor normal form.  (Contributed by Mario Carneiro, 30-May-2015.)
         (Revised by AV, 3-Jul-2019.) $)
      cnfcom2 $p |- ( ph -> ( T ` dom G ) : B -1-1-onto->
          ( ( _om ^o W ) .o ( F ` W ) ) ) $=
        ( cdm cuni csuc cfv com coe co comu wf1o con0 c0 cvv wcel ovex cep oion
        csupp ax-mp elexi uniex sucid cnfcom2lem syl5eleqr cnfcom oveq2i fveq2i
        wceq wb oveq12i f1oeq3 sylibr fveq2d f1oeq1 syl mpbird ccnf ccnv omelon
        a1i wf cantnff1o f1ocnv f1of 3syl ffvelrnd syl5eqel cv coa cmpt2 cseqom
        oveq1i mpt2eq3ia eqid seqomeq12 mp2an eqtri cantnfval f1ocnvfv2 syl2anc
        wa syl5reqr 3eqtr3d f1oeq2 mpbid ) AKUGZUHZUIZLUJZUKOULUMZOJUJZUNUMZXKG
        UJZUOZEXQXRUOZAXSXNXQXMGUJZUOZAXNUKXLKUJZULUMZYCJUJZUNUMZYAUOZYBABCDEFG
        HIJKLXLMNPQRSTUAUBUCUDAXLXMXKXLXKXKUPJUQVCUMZURUSXKUPUSJUQVCUTYHVAKURTV
        BVDVEVFVGABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFVHZVIVJXQYFVMYBYGVNXOYDXPYEUNO
        YCUKULUEVKOYCJUEVLVOXQYFXNYAVPVDVQAXRYAVMXSYBVNAXKXMGYIVRXNXQXRYAVSVTWA
        AXNEVMXSXTVNAXKLUJZEUKDWBUMZWCZUJZYKUJZXNEAYNJYKUJYJJYMYKSVLACUKDFIJKLP
        UKUPUSAWDWEZQTAJYMFSAUKDULUMZFEYLAFYPYKUOZYPFYLUOYPFYLWFAUKDFPYOQWGZFYP
        YKWHYPFYLWIWJRWKWLLICURURNCWMZWNUMZWOZUQWPZICURURUKIWMZKUJZULUMUUDJUJUN
        UMZYSWNUMZWOZUQWPZUAUUAUUGVMUQUQVMUUBUUHVMICURURYTUUFYTUUFVMUUCURUSYSUR
        USXFNUUEYSWNUCWQWEWRUQWSUUAUUGUQUQWTXAXBXCXGAXKXMLYIVRAYQEYPUSYNEVMYRRF
        YPEYKXDXEXHXNEXQXRXIVTXJ $.
    $}

    cnfcom3.1 $e |- ( ph -> _om C_ B ) $.
    $( Lemma for ~ cnfcom3 .  (Contributed by Mario Carneiro, 30-May-2015.)
       (Revised by AV, 4-Jul-2019.) $)
    cnfcom3lem $p |- ( ph -> W e. ( On \ 1o ) ) $=
      ( con0 wcel c0 wne c1o cdif cdm cuni cfv csupp co suppssdm wf wceq cfsupp
      com wbr ccnf ccnv coe wf1o omelon a1i cantnff1o f1ocnv f1of 3syl ffvelrnd
      wa syl5eqel cantnfs mpbid simpld fdm syl syl5sseq csuc cvv ovex cep ax-mp
      oion elexi uniex sucid peano1 sseldd cnfcom2lem syl5eleqr ffvelrni onelon
      oif syl2anc wn wss oecl sylancr ontri1 fveq2i f1ocnvfv2 syl5eq adantr 1on
      wb wiso wwe ovexd cantnfcl oiiso ad2antrr isof1o ffvelrn sylancom elssuni
      cv onuni sylancl isorel syl12anc fvex epelc breq1i bitr3i 3bitr3g eleq12d
      simplr bitrd mtbid wo onss sstrd sselda on0eqel ex mt3d el1o sylibr ssrdv
      ord cantnflt2 oe1 syl6eleq eqeltrrd necon3bd mpd dif1o sylanbrc ) AOUGUHO
      UIUJZOUGUKULUHAOKUMZUNZKUOZUGUEADUGUHZUUQDUHUUQUGUHQAJUIUPUQZDUUQAJUMZUUS
      DJUIURADVBJUSZUUTDUTAUVAJUIVAVCZAJFUHZUVAUVBVOAJEVBDVDUQZVEZUOZFSAVBDVFUQ
      ZFEUVEAFUVGUVDVGZUVGFUVEVGUVGFUVEUSAVBDFPVBUGUHZAVHVIZQVJZFUVGUVDVKUVGFUV
      EVLVMRVNVPZAVBDFJPUVJQVQVRVSDVBJVTWAWBZAUUPUUOUHZUUQUUSUHAUUPUUPWCUUOUUPU
      UOUUOUGUUSWDUHZUUOUGUHZJUIUPWEUUSWFKWDTWHWGZWIWJWKABCDEFGHIJKLMNOPQRSTUAU
      BUCUDUEAVBEUIUFUIVBUHZAWLVIWMWNWOZUUOUUSUUPKUUSWFKTWRWPWAWMDUUQWQWSVPAEVB
      UHZWTZUUNAVBEXAZUWAUFAUVIEUGUHZUWBUWAXJVHAUVGUGUHZEUVGUHZUWCAUVIUURUWDVHQ
      VBDXBXCRUVGEWQWSVBEXDXCVRAUVTOUIAOUIUTZUVTAUWFVOZJUVDUOZEVBAUWHEUTUWFAUWH
      UVFUVDUOZEJUVFUVDSXEAUVHUWEUWIEUTUVKRFUVGEUVDXFWSXGXHUWGUWHVBUKVFUQZVBUWG
      VBDUKFJPUVIUWGVHVIAUURUWFQXHAUVCUWFUVLXHUVRUWGWLVIUKUGUHUWGXIVIUWGBUUSUKU
      WGBYAZUUSUHZUWKUKUHZUWGUWLVOZUWKUIUTZUWMUWNUWOUIUWKUHZUWNUUPUWKKVEZUOZUHZ
      UWPUWNUWRUUPXAZUWSWTZUWNUWRUUOUHZUWTUWGUWLUUSUUOUWQUSZUXBUWNUUOUUSKVGZUUS
      UUOUWQVGUXCUWNUUOUUSWFWFKXKZUXDAUXEUWFUWLAUVOUUSWFXLZUXEAJUIUPXMAUXFUUOVB
      UHAVBDFJKPUVJQTUVLXNVSUUSWFKWDTXOWSXPZUUOUUSWFWFKXQWAZUUOUUSKVKUUSUUOUWQV
      LVMUUSUUOUWKUWQXRXSZUWRUUOXTWAUWNUWRUGUHZUUPUGUHZUWTUXAXJUWNUVPUXBUXJUVQU
      XIUUOUWRWQXCUVPUXKUVQUUOYBWGUWRUUPXDYCVRUWNUWSOUWRKUOZUHZUWPUWNUUPUWRWFVC
      ZUUQUXLWFVCZUWSUXMUWNUXEUVNUXBUXNUXOXJUXGAUVNUWFUWLUVSXPUXIUUOUUSUUPUWRWF
      WFKYDYEUUPUWRUWKUWQYFYGUXOOUXLWFVCUXMOUUQUXLWFUEYHOUXLUWRKYFYGYIYJUWNOUIU
      XLUWKAUWFUWLYLUWGUWLUXDUXLUWKUTUXHUUOUUSUWKKXFXSYKYMYNUWNUWOUWPUWNUWKUGUH
      UWOUWPYOUWGUUSUGUWKAUUSUGXAUWFAUUSDUGUVMAUURDUGXAQDYPWAYQXHYRUWKYSWAUUEUU
      AUWKUUBUUCYTUUDUUFUVIUWJVBUTVHVBUUGWGUUHUUIYTUUJUUKOUGUULUUM $.

    cnfcom.x $e |- X = ( u e. ( F ` W ) , v e. ( _om ^o W ) |->
      ( ( ( F ` W ) .o v ) +o u ) ) $.
    cnfcom.y $e |- Y = ( u e. ( F ` W ) , v e. ( _om ^o W ) |->
      ( ( ( _om ^o W ) .o u ) +o v ) ) $.
    cnfcom.n $e |- N = ( ( X o. `' Y ) o. ( T ` dom G ) ) $.
    $( Any infinite ordinal ` B ` is equinumerous to a power of ` _om ` .  (We
       are being careful here to show explicit bijections rather than simple
       equinumerosity because we want a uniform construction for ~ cnfcom3c .)
       (Contributed by Mario Carneiro, 28-May-2015.)  (Revised by AV,
       4-Jul-2019.) $)
    cnfcom3 $p |- ( ph -> N : B -1-1-onto-> ( _om ^o W ) ) $=
      ( com coe co ccnv ccom cdm cfv wf1o comu con0 omelon c0 csupp suppssdm wf
      wcel wceq cfsupp wbr wa ccnf cantnff1o f1ocnv f1of 3syl ffvelrnd syl5eqel
      a1i cantnfs mpbid simpld fdm syl syl5sseq cuni csuc ovex oion ax-mp elexi
      cvv cep uniex sucid peano1 sseldd cnfcom2lem syl5eleqr oif onelon syl2anc
      ffvelrni oecl sylancr nnon omf1o wb wne wfn ffn 0ex elsuppfn simpr syl6bi
      syl3anc mpd on0eln0 mpbird cdif cnfcom3lem ondif1 simprbi syl22anc f1oeq3
      c1o omabs cnfcom2 f1oco f1oeq1 sylibr ) AGUORUPUQZSTURUSZMUTZIVAZUSZVBZGY
      OQVBZAYORLVAZVCUQZYOYPVBZGUUCYRVBYTAUUCUUBYOVCUQZYPVBZUUDAYOVDVJZUUBVDVJZ
      UUFAUOVDVJZRVDVJZUUGVEAFVDVJZRFVJZUUJUBALVFVGUQZFRALUTZUUMFLVFVHAFUOLVIZU
      UNFVKAUUOLVFVLVMZALHVJUUOUUPVNALGUOFVOUQZURZVAHUDAUOFUPUQZHGUURAHUUSUUQVB
      UUSHUURVBUUSHUURVIAUOFHUAUUIAVEWBZUBVPHUUSUUQVQUUSHUURVRVSUCVTWAAUOFHLUAU
      UTUBWCWDWEZFUOLWFWGWHARYQWIZMVAZUUMUJAUVBYQVJUVCUUMVJAUVBUVBWJYQUVBYQYQVD
      UUMWOVJYQVDVJLVFVGWKUUMWPMWOUEWLWMWNWQWRABCFGHIJKLMNOPRUAUBUCUDUEUFUGUHUI
      UJAUOGVFUKVFUOVJAWSWBWTZXAXBYQUUMUVBMUUMWPMUEXCXFWGWAZWTZFRXDXEZUORXGXHAU
      UBUOVJZUUHAFUORLUVAUVFVTZUUBXIZWGEDYOUUBTSUMULXJXEAUUEYOVKZUUFUUDXKAUVHVF
      UUBVJZUUJVFRVJZUVKUVIAUVLUUBVFXLZARUUMVJZUVNUVEAUVOUULUVNVNZUVNALFXMZUUKV
      FWOVJZUVOUVPXKAUUOUVQUVAFUOLXNWGUBUVRAXOWBRLVDWOFVFXPXSUULUVNXQXRXTAUVHUU
      HUVLUVNXKUVIUVJUUBYAVSYBUVGARVDYIYCVJZUVMABCFGHIJKLMNOPRUAUBUCUDUEUFUGUHU
      IUJUKYDUVSUUJUVMRYEYFWGUUBRYJYGUUEYOUUCYPYHWGWDABCFGHIJKLMNOPRUAUBUCUDUEU
      FUGUHUIUJUVDYKGUUCYOYPYRYLXEQYSVKUUAYTXKUNGYOQYSYMWMYN $.
  $}

  ${
    $d b g k u v w x z A $.  $d u v K $.  $d g w L $.  $d x M $.  $d u v z T $.
    $d f k u v x z F $.  $d f k u v x z G $.  $d f u v x H $.  $d k z S $.
    $d u v w x W $.
    cnfcom3c.s $e |- S = dom ( _om CNF A ) $.
    cnfcom3c.f $e |- F = ( `' ( _om CNF A ) ` b ) $.
    cnfcom3c.g $e |- G = OrdIso ( _E , ( F supp (/) ) ) $.
    cnfcom3c.h $e |- H = seqom ( ( k e. _V , z e. _V |-> ( M +o z ) ) , (/) )
        $.
    cnfcom3c.t $e |- T = seqom ( ( k e. _V , f e. _V |-> K ) , (/) ) $.
    cnfcom3c.m $e |- M = ( ( _om ^o ( G ` k ) ) .o ( F ` ( G ` k ) ) ) $.
    cnfcom3c.k $e |- K = ( ( x e. M |-> ( dom f +o x ) ) u.
      `' ( x e. dom f |-> ( M +o x ) ) ) $.
    cnfcom3c.w $e |- W = ( G ` U. dom G ) $.
    cnfcom3c.x $e |- X = ( u e. ( F ` W ) , v e. ( _om ^o W ) |->
      ( ( ( F ` W ) .o v ) +o u ) ) $.
    cnfcom3c.y $e |- Y = ( u e. ( F ` W ) , v e. ( _om ^o W ) |->
      ( ( ( _om ^o W ) .o u ) +o v ) ) $.
    cnfcom3c.n $e |- N = ( ( X o. `' Y ) o. ( T ` dom G ) ) $.
    cnfcom3c.l $e |- L = ( b e. ( _om ^o A ) |-> N ) $.
    $( Lemma for ~ cnfcom3c .  (Contributed by Mario Carneiro, 30-May-2015.)
       (Revised by AV, 4-Jul-2019.) $)
    cnfcom3clem $p |- ( A e. On -> E. g A. b e. A ( _om C_ b ->
      E. w e. ( On \ 1o ) ( g ` b ) : b -1-1-onto-> ( _om ^o w ) ) ) $=
      ( con0 wcel com cv wss coe co cfv wf1o c1o cdif wrex wi wex w3a simp1 c2o
      wral omelon ondif2 mpbir2an oeworde sylancr simp2 sseldd simp3 cnfcom3lem
      1onn cnfcom3 wceq wb cvv wf f1of syl vex fex sylancl fvmpt2 f1oeq1 mpbird
      syl2anc oveq2 f1oeq3 rspcev 3expia ralrimiva cmpt ovex mptex nfmpt1 nfeq2
      eqeltri nfcxfr fveq1 rexbidv imbi2d ralbid spcev ) FUOUPZUQUBURZUSZXOUQCU
      RZUTVAZXOPVBZVCZCUOVDVEZVFZVGZUBFVLZXPXOXRXOJURZVBZVCZCYAVFZVGZUBFVLZJVHX
      NYCUBFXNXOFUPZXPYBXNYKXPVIZSYAUPXOUQSUTVAZXSVCZYBYLABFXOGHIKLMNOQSUCXNYKX
      PVJZYLFUQFUTVAZXOYLUQUOVKVEUPZXNFYPUSYQUQUOUPVDUQUPVMWBUQVNVOYOUQFVPVQXNY
      KXPVRVSZUDUEUFUGUHUIUJXNYKXPVTZWAYLYNXOYMRVCZYLABDEFXOGHIKLMNOQRSTUAUCYOY
      RUDUEUFUGUHUIUJYSUKULUMWCZYLXSRWDZYNYTWEYLXOYPUPRWFUPZUUBYRYLXOYMRWGZXOWF
      UPUUCYLYTUUDUUAXOYMRWHWIUBWJXOYMWFRWKWLUBYPRWFPUNWMWPXOYMXSRWNWIWOXTYNCSY
      AXQSWDXRYMWDXTYNWEXQSUQUTWQXRYMXOXSWRWIWSWPWTXAYJYDJPPUBYPRXBZWFUNUBYPRUQ
      FUTXCXDXGYEPWDZYIYCUBFUBYEPUBPUUEUNUBYPRXEXHXFUUFYHYBXPUUFYGXTCYAUUFYFXSW
      DYGXTWEXOYEPXIXOXRYFXSWNWIXJXKXLXMWI $.
  $}

  ${
    $d b f g k u v w x z A $.
    $( Wrap the construction of ~ cnfcom3 into an existence quantifier.  For
       any ` _om C_ b ` , there is a bijection from ` b ` to some power of
       ` _om ` .  Furthermore, this bijection is _canonical_ , which means that
       we can find a single function ` g ` which will give such bijections for
       every ` b ` less than some arbitrarily large bound ` A ` .  (Contributed
       by Mario Carneiro, 30-May-2015.) $)
    cnfcom3c $p |- ( A e. On -> E. g A. b e. A ( _om C_ b ->
      E. w e. ( On \ 1o ) ( g ` b ) : b -1-1-onto-> ( _om ^o w ) ) ) $=
      ( vx vz vv vu vk vf com co cdm cvv cv ccnv cfv coa cmpt2 eqid ccnf c0 cep
      csupp coi coe comu cmpt cun cseqom cuni ccom cnfcom3clem ) EFAGHBKBUALZMZ
      IJNNEKIODOUNPQZUBUDLUCUEZQZUFLURUPQUGLZJOMZEOZRLUHEUTUSVARLUHPUIZSUBUJZJC
      IUPUQIFNNUSFORLSUBUJZVBDKBUFLHGUQMZUKUQQZUPQZKVFUFLZVGGOZUGLHOZRLSZHGVGVH
      VHVJUGLVIRLSZPULVEVCQULZUHZUSVMVFVKVLDUOTUPTUQTVDTVCTUSTVBTVFTVKTVLTVMTVN
      TUM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Transitive closure
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x z $.  $d v x y A $.  $d u v x y F $.
    trcl.1 $e |- A e. _V $.
    trcl.2 $e |- F = ( rec ( ( z e. _V |-> ( z u. U. z ) ) , A ) |` _om ) $.
    trcl.3 $e |- C = U_ y e. _om ( F ` y ) $.
    $( For any set ` A ` , show the properties of its transitive closure
       ` C ` .  Similar to Theorem 9.1 of [TakeutiZaring] p. 73 except that we
       show an explicit expression for the transitive closure rather than just
       its existence.  See ~ tz9.1 for an abbreviated version showing
       existence.  (Contributed by NM, 14-Sep-2003.)  (Revised by Mario
       Carneiro, 11-Sep-2015.) $)
    trcl $p |- ( A C_ C /\ Tr C /\ A. x ( ( A C_ x /\ Tr x ) -> C C_ x ) ) $=
      ( vv vu wss cv com cfv wrex c0 wcel wceq fveq2 wtr wa wal ciun peano1 cvv
      wi cuni cun cmpt crdg cres fveq1i fr0g ax-mp eqtr2i eqimssi sseq2d rspcev
      mp2an ssiun sseqtr4i dftr2 eliun anbi2i r19.42v bitr4i elunii ssun2 uniex
      csuc fvex unex unieq uneq12d frsucmpt2 mpan2 syl5sseqr sseld syl5 reximia
      weq id sylbi peano2 eleq2d syl rexlimiv cbvrexv sylibr ax-gen mpgbir treq
      ex mpbir wral sseq1d eqtri sseq1i biimpri adantr uniss df-tr sstr2 syl5bi
      wb anc2li unss syl6ib biimprd syl9r com23 adantld finds2 ralrimiv cbviunv
      com12 iunss bitri 3pm3.2i ) DELEUAZDAMZLZYBUAZUBZEYBLZUGZAUCDBNBMZFOZUDZE
      DYILZBNPZDYJLQNRDQFOZLZYLUEDYMYMQCUFCMZYOUHZUIZUJZDUKNULZOZDQFYSHUMZDUFRY
      TDSGDUFYRUNUOZUPUQYKYNBQNYHQSYIYMDYHQFTURUSUTBNYIDVAUOIVBYAYJUAZUUCJMZKMZ
      RZUUEYJRZUBZUUDYJRZUGZKUCJJKYJVCUUJKUUHUUDYHVKZFOZRZBNPZUUIUUHUUFUUEYIRZU
      BZBNPZUUNUUHUUFUUOBNPZUBUUQUUGUURUUFBUUENYIVDVEUUFUUOBNVFVGUUPUUMBNUUPUUD
      YIUHZRYHNRZUUMUUDUUEYIVHUUTUUSUULUUDUUTYIUUSUIZUUSUULUUSYIVIUUTUVAUFRUULU
      VASYIUUSYHFVLZYIUVBVJVMCADYHYQUVAYBYBUHZUIFUFHACWBZYBYOUVCYPUVDWCYBYOVNVO
      YBYISZYBYIUVCUUSUVEWCYBYIVNVOVPVQZVRVSVTWAWDUUNUUDYIRZBNPZUUIUUNUUDUUEFOZ
      RZKNPZUVHUUMUVKBNUUTUUKNRZUUMUVKUGYHWEUVLUUMUVKUVJUUMKUUKNUUEUUKSUVIUULUU
      DUUEUUKFTWFUSWNWGWHUVGUVJBKNBKWBYIUVIUUDYHUUEFTWFWIWJBUUDNYIVDWJWGWKWLEYJ
      SYAUUCXFIEYJWMUOWOYGAYEUUDFOZYBLZJNWPZYFYEUVNJNUUDNRYEUVNUVNYMYBLZYIYBLZU
      ULYBLZYEJBUUDQSUVMYMYBUUDQFTWQJBWBUVMYIYBUUDYHFTWQUUDUUKSUVMUULYBUUDUUKFT
      WQYCUVPYDUVPYCYMDYBYMYTDUUAUUBWRWSWTXAUUTYDUVQUVRUGYCUUTUVQYDUVRUVQYDUVAY
      BLZUUTUVRUVQYDUVQUUSYBLZUBUVSUVQYDUVTUVQUUSUVCLZYDUVTUGYIYBXBYDUVCYBLUWAU
      VTYBXCUUSUVCYBXDXEWGXGYIUUSYBXHXIUUTUVRUVSUUTUULUVAYBUVFWQXJXKXLXMXNXQXOY
      FJNUVMUDZYBLUVOEUWBYBEYJUWBIBJNYIUVMYHUUDFTXPWRWSJNUVMYBXRXSWJWKXT $.
  $}

  ${
    $d A x y z w $.
    tz9.1.1 $e |- A e. _V $.
    $( Every set has a transitive closure (the smallest transitive extension).
       Theorem 9.1 of [TakeutiZaring] p. 73.  See ~ trcl for an explicit
       expression for the transitive closure.  Apparently open problems are
       whether this theorem can be proved without the Axiom of Infinity; if
       not, then whether it implies Infinity; and if not, what is the
       "property" that Infinity has that the other axioms don't have that is
       weaker than Infinity itself?

       (Added 22-Mar-2011) The following article seems to answer the first
       question, that it can't be proved without Infinity, in the affirmative:
       Mancini, Antonella and Zambella, Domenico (2001).  "A note on recursive
       models of set theories." _Notre Dame Journal of Formal Logic_,
       42(2):109-115.  (Thanks to Scott Fenton.)  (Contributed by NM,
       15-Sep-2003.) $)
    tz9.1 $p |- E. x ( A C_ x /\ Tr x
                /\ A. y ( ( A C_ y /\ Tr y ) -> x C_ y ) ) $=
      ( vz vw com cv cvv cuni cun cmpt crdg cres wss wtr wi wal w3a eqid cfv wa
      ciun trcl omex fvex iunex wceq sseq2 treq sseq1 imbi2d albidv spcev ax-mp
      wex 3anbi123d ) CEGEHZFIFHZUSJKLCMGNZUAZUCZOZVBPZCBHZOVEPUBZVBVEOZQZBRZSZ
      CAHZOZVKPZVFVKVEOZQZBRZSZAUPBEFCVBUTDUTTVBTUDVQVJAVBEGVAUEURUTUFUGVKVBUHZ
      VLVCVMVDVPVIVKVBCUIVKVBUJVRVOVHBVRVNVGVFVKVBVEUKULUMUQUNUO $.

    $( Alternate expression for the existence of transitive closures ~ tz9.1 :
       the intersection of all transitive sets containing ` A ` is a set.
       (Contributed by Mario Carneiro, 22-Mar-2013.) $)
    tz9.1c $p |- |^| { x | ( A C_ x /\ Tr x ) } e. _V $=
      ( vw vz cv wss wtr wa cab c0 wne cint cvv wcel wex com cuni cun eqid cmpt
      crdg cres cfv ciun wi wal w3a trcl 3simpa omex fvex iunex wceq sseq2 treq
      anbi12d spcev mp2b abn0 mpbir intex mpbi ) BAFZGZVDHZIZAJZKLZVHMNOVIVGAPZ
      BDQDFZENEFZVLRSUABUBQUCZUDZUEZGZVOHZVGVOVDGUFAUGZUHVPVQIZVJADEBVOVMCVMTVO
      TUIVPVQVRUJVGVSAVODQVNUKVKVMULUMVDVOUNVEVPVFVQVDVOBUOVDVOUPUQURUSVGAUTVAV
      HVBVC $.
  $}

  ${
    $d x y z w A $.
    $( The strong form of the Axiom of Regularity (no sethood requirement on
       ` A ` ), with the axiom itself present as an antecedent.  See also
       ~ zfregs .  (Contributed by Mario Carneiro, 22-Mar-2013.) $)
    epfrs $p |- ( ( _E Fr A /\ A =/= (/) ) -> E. x e. A ( x i^i A ) = (/) ) $=
      ( vz vy vw c0 wne cv cin wceq wrex wcel wex wi n0 wss wtr wa wel syl5 cep
      wfr csn wal w3a snssi anim2i ssin vex snss bitr4i sylib inss2 inex1 epfrc
      ne0i syl mp3an2 elin anass bitri inss1 sseli ancri trel inass incom eqtri
      anbi1i ineq2i eleq2i bitr2i sylbi ex syl6 expd com34 exlimdv syl5bi com23
      impd necon4d anim2d expimpd reximdv2 expcomd impcom 3adant3 snex exlimiiv
      imp tz9.1 exlimiv ) BFGZBUAUBZAHZBIZFJZABKZWNCHZBLZCMWOWSNZCBOXAXBCWTUCZD
      HZPZXDQZXCEHZPXGQRXDXGPNEUDZUEXAXBNZDXEXFXIXHXFXEXIXFXEXAXBXEXARZXDBIZFGZ
      XFXBXJWTXKLZXLXJXEXCBPZRZXMXAXNXEWTBUFUGXOXCXKPXMXCXDBUHWTXKCUIUJUKULXKWT
      UPUQXFWOXLWSWOXLRXKWPIZFJZAXKKZXFWSWOXKBPXLXRXDBUMABXKXDBDUIUNUOURXFXQWRA
      XKBWPXKLZXQRZADSZWPBLZXQRZRZXFYBWRRZXTYAYBRZXQRYDXSYFXQWPXDBUSVIYAYBXQUTV
      AXFYAYCYEXFYARZXQWRYBYGWQFXPFXFYAWQFGZXPFGZNXFYHYAYIYHXGWQLZEMXFYAYINZEWQ
      OXFYJYKEYJEASZYJRXFYKYJYLWQWPXGWPBVBVCVDXFYLYJYKXFYLYAYJYIXFYLYAYJYINZXFY
      LYAREDSZYMXDXGWPVEYNYJYIYNYJRZXGXPLZYIYPXGXDWQIZLYOXPYQXGXPXDBWPIZIYQXDBW
      PVFYRWQXDBWPVGVJVHVKXGXDWQUSVLXPXGUPVMVNVOVPVQWATVRVSVTWKWBWCWDVSWETWFTVP
      WGWHDEXCWTWIWLWJWMVMWG $.
  $}

  ${
    $d x A $.
    $( The strong form of the Axiom of Regularity, which does not require that
       ` A ` be a set.  Axiom 6' of [TakeutiZaring] p. 21.  See also ~ epfrs .
       (Contributed by NM, 17-Sep-2003.) $)
    zfregs $p |- ( A =/= (/) -> E. x e. A ( x i^i A ) = (/) ) $=
      ( cep wfr c0 wne cv cin wceq wrex zfregfr epfrs mpan ) BCDBEFAGBHEIABJBKA
      BLM $.
  $}

  ${
    $d x y A $.
    $( Alternate strong form of the Axiom of Regularity.  Not every element of
       a nonempty class contains some element of that class.  (Contributed by
       Alan Sare, 24-Oct-2011.)  (Proof shortened by Wolf Lammen,
       27-Sep-2013.) $)
    zfregs2 $p |- ( A =/= (/) -> -. A. x e. A E. y ( y e. A /\ y e. x ) ) $=
      ( c0 wne cv wcel wa wex wn wral wrex wi wal cin zfregs incom rexbii sylib
      wceq eqeq1i disj1 alinexa dfrex2 notnotb ralbii sylnibr ) CDEZBFZCGZUIAFZ
      GZHBIZJZJZACKZUMACKUHUNACLZUPJUHUJULJMBNZACLZUQUHCUKOZDTZACLZUSUHUKCOZDTZ
      ACLVBACPVDVAACVCUTDUKCQUARSVAURACBCUKUBRSURUNACUJULBUCRSUNACUDSUMUOACUMUE
      UFUG $.
  $}

  ${
    $d x y A $.
    $( Set (epsilon) induction.  Theorem 5.22 of [TakeutiZaring] p. 21.
       (Contributed by NM, 17-Sep-2003.) $)
    setind $p |- ( A. x ( x C_ A -> x e. A ) -> A = _V ) $=
      ( vy cv wss wcel wi wal cvv cdif c0 wceq cin wrex wn ssindif0 sseq1 eleq1
      imbi12d spv syl5bir eldifn nsyli imp nrexdv zfregs necon1bi vdif0 sylibr
      syl ) ADZBEZUKBFZGZAHZIBJZKLZBILUOCDZUPMKLZCUPNZOUQUOUSCUPUOURUPFZUSOUOUS
      URBFZVAUSURBEZUOVBURBPUNVCVBGACUKURLULVCUMVBUKURBQUKURBRSTUAURIBUBUCUDUEU
      TUPKCUPUFUGUJBUHUI $.
  $}

  ${
    $d x A $.
    $( Set (epsilon) induction, stated compactly.  Given as a homework problem
       in 1992 by George Boolos (1940-1996).  (Contributed by NM,
       17-Sep-2003.) $)
    setind2 $p |- ( ~P A C_ A -> A = _V ) $=
      ( vx cpw wss cv wcel wi wal cvv wceq pwss setind sylbi ) ACADBEZADNAFGBHA
      IJBAAKBALM $.
  $}

  $c TC $. $( Transitive closure $)

  $( Extend class notation to include the transitive closure function. $)
  ctc $a class TC $.

  ${
    $d x y $.
    $( The transitive closure function.  (Contributed by Mario Carneiro,
       23-Jun-2013.) $)
    df-tc $a |- TC = ( x e. _V |-> |^| { y | ( x C_ y /\ Tr y ) } ) $.
  $}

  ${
    $d A x y $.
    $( Value of the transitive closure function.  (The fact that this
       intersection exists is a non-trivial fact that depends on ~ ax-inf ; see
       ~ tz9.1 .)  (Contributed by Mario Carneiro, 23-Jun-2013.) $)
    tcvalg $p |- ( A e. V -> ( TC ` A ) = |^| { x | ( A C_ x /\ Tr x ) } ) $=
      ( vy cv ctc cfv wss wtr wa cab cint wceq fveq2 sseq1 anbi1d abbidv inteqd
      cvv wcel eqeq12d vex tz9.1c df-tc fvmpt2 mp2an vtoclg ) DEZFGZUHAEZHZUJIZ
      JZAKZLZMZBFGZBUJHZULJZAKZLZMDBCUHBMZUIUQUOVAUHBFNVBUNUTVBUMUSAVBUKURULUHB
      UJOPQRUAUHSTUOSTUPDUBZAUHVCUCDSUOSFDAUDUEUFUG $.
  $}

  ${
    $d A x y $.
    $( Defining property of the transitive closure function: it contains its
       argument as a subset.  (Contributed by Mario Carneiro, 23-Jun-2013.) $)
    tcid $p |- ( A e. V -> A C_ ( TC ` A ) ) $=
      ( vx wcel cv wss wtr wa cab cint ctc cfv ssmin tcvalg syl5sseqr ) ABDACEZ
      FPGZHCIJAAKLQCAMCABNO $.

    $( Defining property of the transitive closure function: it is transitive.
       (Contributed by Mario Carneiro, 23-Jun-2013.) $)
    tctr $p |- Tr ( TC ` A ) $=
      ( vx vy cvv wcel ctc cfv wtr cv wss wa cab cint trint wceq treq wb mpbiri
      syl c0 vex sseq2 anbi12d elab simprbi mprg tcvalg wn tr0 fvprc pm2.61i )
      ADEZAFGZHZULUNABIZJZUOHZKZBLZMZHZCIZHZVACUSCUSNVBUSEAVBJZVCURVDVCKBVBCUAU
      OVBOUPVDUQVCUOVBAUBUOVBPUCUDUEUFULUMUTOUNVAQBADUGUMUTPSRULUHZUNTHZUIVEUMT
      OUNVFQAFUJUMTPSRUK $.

    $d B x y $.
    $( Defining property of the transitive closure function: it is a subset of
       any transitive class containing ` A ` .  (Contributed by Mario Carneiro,
       23-Jun-2013.) $)
    tcmin $p |- ( A e. V -> ( ( A C_ B /\ Tr B ) -> ( TC ` A ) C_ B ) ) $=
      ( vy vx wcel wss wtr wa cv cab cint ctc cfv wex cvv tcvalg fvex syl6eqelr
      intexab sylibr ssin biimpi trin anim12i an4s expcom inex1 wceq sseq2 treq
      cin vex anbi12d intss1 sylbir inss2 syl6ss exlimdv syl5com sseq1d sylibrd
      elab syl6 ) ACFZABGZBHZIZADJZGZVIHZIZDKZLZBGZAMNZBGVEAEJZGZVQHZIZEOZVHVOV
      EVTEKLZPFWAVEWBVPPEACQAMRSVTETUAVHVTVOEVHVTAVQBULZGZWCHZIZVOVTVHWFVRVFVSV
      GWFVRVFIZWDVSVGIWEWGWDAVQBUBUCVQBUDUEUFUGWFVNWCBWFWCVMFVNWCGVLWFDWCVQBEUM
      UHVIWCUIVJWDVKWEVIWCAUJVIWCUKUNVCWCVMUOUPVQBUQURVDUSUTVEVPVNBDACQVAVB $.
  $}

  ${
    $d A x $.
    tc2.1 $e |- A e. _V $.
    $( A variant of the definition of the transitive closure function, using
       instead the smallest transitive set containing ` A ` as a member, gives
       almost the same set, except that ` A ` itself must be added because it
       is not usually a member of ` ( TC `` A ) ` (and it is never a member if
       ` A ` is well-founded).  (Contributed by Mario Carneiro,
       23-Jun-2013.) $)
    tc2 $p |- ( ( TC ` A ) u. { A } ) = |^| { x | ( A e. x /\ Tr x ) } $=
      ( ctc cfv cun wcel wtr wa cab cint wss wceq ax-mp eqsstri mpbi unssi cuni
      cvv df-tr csn cv tcvalg trss imdistanri ss2abi intss elintab simpl mpgbir
      wi snss snid elun2 uniun tctr unisn tcid ssun1 sstri mpbir fvex snex unex
      eleq2 treq anbi12d elab mpbir2an intss1 eqssi ) BDEZBUAZFZBAUBZGZVOHZIZAJ
      ZKZVLVMVTVLBVOLZVQIZAJZKZVTBSGZVLWDMCABSUCNVSWCLWDVTLVRWBAVQVPWAVOBUDUEUF
      VSWCUGNOBVTGZVMVTLWFVRVPUKAVRABCUHVPVQUIUJBVTCULPQVNVSGZVTVNLWGBVNGZVNHZB
      VMGWHBCUMBVMVLUNNWIVNRZVNLWJVLVNWJVLRZVMRZFVLVLVMUOWKWLVLVLHWKVLLBUPVLTPW
      LBVLBCUQWEBVLLCBSURNOQOVLVMUSUTVNTVAVRWHWIIAVNVLVMBDVBBVCVDVOVNMVPWHVQWIV
      OVNBVEVOVNVFVGVHVIVNVSVJNVK $.

    $( The transitive closure of a singleton.  Proof suggested by G&eacute;rard
       Lang.  (Contributed by Mario Carneiro, 4-Jun-2015.) $)
    tcsni $p |- ( TC ` { A } ) = ( ( TC ` A ) u. { A } ) $=
      ( vx cv wcel wtr wa cab cint csn wss ctc cfv cun snss anbi1i abbii inteqi
      tc2 cvv wceq snex tcvalg ax-mp 3eqtr4ri ) ACDZEZUFFZGZCHZIAJZUFKZUHGZCHZI
      ZALMUKNUKLMZUJUNUIUMCUGULUHAUFBOPQRCABSUKTEUPUOUAAUBCUKTUCUDUE $.

    $d B x $.
    $( The transitive closure function inherits the subset relation.
       (Contributed by Mario Carneiro, 23-Jun-2013.) $)
    tcss $p |- ( B C_ A -> ( TC ` B ) C_ ( TC ` A ) ) $=
      ( vx wss ctc cfv cv wtr wa cab cint cvv wcel wceq tcvalg syl sstr2 anim1d
      ssex ss2abdv intss ax-mp syl6sseqr eqsstrd ) BAEZBFGZBDHZEZUHIZJZDKZLZAFG
      ZUFBMNUGUMOBACTDBMPQUFUMAUHEZUJJZDKZLZUNUFUQULEUMUREUFUPUKDUFUOUIUJBAUHRS
      UAUQULUBQAMNUNUROCDAMPUCUDUE $.

    $( The transitive closure function converts the element relation to the
       subset relation.  (Contributed by Mario Carneiro, 23-Jun-2013.) $)
    tcel $p |- ( B e. A -> ( TC ` B ) C_ ( TC ` A ) ) $=
      ( vx wcel ctc cfv cv wss wtr wa cab cint tcvalg wi ssel com12 syl6com cvv
      trss impd simpr a1i jcad ss2abdv intss syl wceq ax-mp syl6sseqr eqsstrd )
      BAEZBFGBDHZIZUMJZKZDLZMZAFGZDBANULURAUMIZUOKZDLZMZUSULVBUQIURVCIULVAUPDUL
      VAUNUOULUTUOUNUTULBUMEZUOUNOAUMBPUOVDUNUMBTQRUAVAUOOULUTUOUBUCUDUEVBUQUFU
      GASEUSVCUHCDASNUIUJUK $.
  $}

  $( The transitive closure function is idempotent.  (Contributed by Mario
     Carneiro, 23-Jun-2013.) $)
  tcidm $p |- ( TC ` ( TC ` A ) ) = ( TC ` A ) $=
    ( ctc cfv wss wtr ssid tctr cvv wcel wa fvex tcmin ax-mp mp2an tcid eqssi
    wi ) ABCZBCZRRRDZREZSRDZRFAGRHIZTUAJUBQABKZRRHLMNUCRSDUDRHOMP $.

  $( The transitive closure of the empty set.  (Contributed by Mario Carneiro,
     4-Jun-2015.) $)
  tc0 $p |- ( TC ` (/) ) = (/) $=
    ( c0 ctc cfv wss wtr ssid tr0 cvv wcel wa 0ex tcmin ax-mp mp2an 0ss eqssi
    wi ) ABCZAAADZAEZRADZAFGAHISTJUAQKAAHLMNROP $.

  $( The transitive closure is empty iff its argument is.  Proof suggested by
     G&eacute;rard Lang.  (Contributed by Mario Carneiro, 4-Jun-2015.) $)
  tc00 $p |- ( A e. V -> ( ( TC ` A ) = (/) <-> A = (/) ) ) $=
    ( wcel ctc cfv c0 wceq wss wi tcid sseq0 ex syl fveq2 tc0 syl6eq impbid1 )
    ABCZADEZFGZAFGZRASHZTUAIABJUBTUAASKLMUASFDEFAFDNOPQ $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Rank
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c R1 $. $( Cumulative hierarchy of sets function $)
  $c rank $. $( Rank function $)

  $( Extend class definition to include the cumulative hierarchy of sets
     function. $)
  cr1 $a class R1 $.

  $( Extend class definition to include rank function. $)
  crnk $a class rank $.

  ${
    $d x y $.
    $( Define the cumulative hierarchy of sets function, using Takeuti and
       Zaring's notation ( ` R1 ` ).  Starting with the empty set, this
       function builds up layers of sets where the next layer is the power set
       of the previous layer (and the union of previous layers when the
       argument is a limit ordinal).  Using the Axiom of Regularity, we can
       show that any set whatsoever belongs to one of the layers of this
       hierarchy (see ~ tz9.13 ).  Our definition expresses Definition 9.9 of
       [TakeutiZaring] p. 76 in a closed form, from which we derive the
       recursive definition as theorems ~ r10 , ~ r1suc , and ~ r1lim .
       Theorem ~ r1val1 shows a recursive definition that works for all values,
       and theorems ~ r1val2 and ~ r1val3 show the value expressed in terms of
       rank.  Other notations for this function are _R_ with the argument as a
       subscript (Equation 3.1 of [BellMachover] p. 477), ` _V ` with a
       subscript (Definition of [Enderton] p. 202), _M_ with a subscript
       (Definition 15.19 of [Monk1] p. 113), the capital Greek letter psi
       (Definition of [Mendelson] p. 281), and bold-face R (Definition 2.1 of
       [Kunen] p. 95).  (Contributed by NM, 2-Sep-2003.) $)
    df-r1 $a |- R1 = rec ( ( x e. _V |-> ~P x ) , (/) ) $.

    $( Define the rank function.  See ~ rankval , ~ rankval2 , ~ rankval3 , or
       ~ rankval4 its value.  The rank is a kind of "inverse" of the cumulative
       hierarchy of sets function ` R1 ` : given a set, it returns an ordinal
       number telling us the smallest layer of the hierarchy to which the set
       belongs.  Based on Definition 9.14 of [TakeutiZaring] p. 79.  Theorem
       ~ rankid illustrates the "inverse" concept.  Another nice theorem
       showing the relationship is ~ rankr1a .  (Contributed by NM,
       11-Oct-2003.) $)
    df-rank $a |- rank = ( x e. _V |->
        |^| { y e. On | x e. ( R1 ` suc y ) } ) $.
  $}

  $( The cumulative hierarchy of sets function is a function on a limit
     ordinal.  (This weak form of ~ r1fnon avoids ~ ax-rep .)  (Contributed by
     Mario Carneiro, 16-Nov-2014.) $)
  r1funlim $p |- ( Fun R1 /\ Lim dom R1 ) $=
    ( vx cr1 wfun cdm wlim cvv cv cpw cmpt c0 crdg rdgfun df-r1 funeqi rdgdmlim
    mpbir wceq wb dmeqi limeq ax-mp pm3.2i ) BCZBDZEZUCAFAGHIZJKZCJUFLBUGAMZNPU
    EUGDZEZJUFOUDUIQUEUJRBUGUHSUDUITUAPUB $.

  $( The cumulative hierarchy of sets function is a function on the class of
     ordinal numbers.  (Contributed by NM, 5-Oct-2003.)  (Revised by Mario
     Carneiro, 10-Sep-2013.) $)
  r1fnon $p |- R1 Fn On $=
    ( vx cr1 con0 wfn cvv cv cpw cmpt c0 crdg rdgfnon df-r1 fneq1i mpbir ) BCDA
    EAFGHZIJZCDIOKCBPALMN $.

  $( Value of the cumulative hierarchy of sets function at ` (/) ` .  Part of
     Definition 9.9 of [TakeutiZaring] p. 76.  (Contributed by NM, 2-Sep-2003.)
     (Revised by Mario Carneiro, 10-Sep-2013.) $)
  r10 $p |- ( R1 ` (/) ) = (/) $=
    ( vx c0 cr1 cfv cvv cv cpw cmpt crdg df-r1 fveq1i 0ex rdg0 eqtri ) BCDBAEAF
    GHZBIZDBBCPAJKBOLMN $.

  ${
    $d x y A $.
    $( Value of the cumulative hierarchy of sets function at a successor
       ordinal.  Part of Definition 9.9 of [TakeutiZaring] p. 76.  (Contributed
       by Mario Carneiro, 16-Nov-2014.) $)
    r1sucg $p |- ( A e. dom R1 -> ( R1 ` suc A ) = ~P ( R1 ` A ) ) $=
      ( vx cr1 cdm wcel csuc cvv cv cpw cmpt crdg cfv wceq rdgsucg df-r1 eleq2s
      c0 dmeqi fveq1i fvex pweq eqid pwex fvmpt ax-mp fveq2i eqtr3i 3eqtr4g ) A
      CDZEAFZBGBHZIZJZQKZLZAUNLZUMLZUJCLACLZIZUOUQMAUNDUIQAUMNCUNBOZRPUJCUNUTSU
      RUMLZUSUQURGEVAUSMACTZBURULUSGUMUKURUAUMUBURVBUCUDUEURUPUMACUNUTSUFUGUH
      $.

    $( Value of the cumulative hierarchy of sets function at a successor
       ordinal.  Part of Definition 9.9 of [TakeutiZaring] p. 76.  (Contributed
       by NM, 2-Sep-2003.)  (Revised by Mario Carneiro, 10-Sep-2013.) $)
    r1suc $p |- ( A e. On -> ( R1 ` suc A ) = ~P ( R1 ` A ) ) $=
      ( csuc cr1 cfv cpw wceq cdm con0 r1sucg r1fnon fndm ax-mp eqcomi eleq2s
      wfn ) ABCDACDEFACGZHAIPHCHOPHFJHCKLMN $.

    $( Value of the cumulative hierarchy of sets function at a limit ordinal.
       Part of Definition 9.9 of [TakeutiZaring] p. 76.  (Contributed by Mario
       Carneiro, 16-Nov-2014.) $)
    r1limg $p |- ( ( A e. dom R1 /\ Lim A ) ->
      ( R1 ` A ) = U_ x e. A ( R1 ` x ) ) $=
      ( vy cr1 cdm wcel wlim wa cvv cv cpw cmpt c0 crdg cfv cima cuni ciun wceq
      df-r1 dmeqi eleq2i rdglimg sylanb fveq1i r1funlim simpli funiunfv imaeq1i
      wfun ax-mp unieqi eqtri 3eqtr4g ) BDEZFZBGZHBCICJKLZMNZOZUSBPZQZBDOABAJDO
      RZUPBUSEZFUQUTVBSUOVDBDUSCTZUAUBMBURUCUDBDUSVEUEVCDBPZQZVBDUJZVCVGSVHUOGU
      FUGABDUHUKVFVADUSBVEUIULUMUN $.

    $( Value of the cumulative hierarchy of sets function at a limit ordinal.
       Part of Definition 9.9 of [TakeutiZaring] p. 76.  (Contributed by NM,
       4-Oct-2003.)  (Revised by Mario Carneiro, 16-Nov-2014.) $)
    r1lim $p |- ( ( A e. B /\ Lim A ) -> ( R1 ` A ) = U_ x e. A ( R1 ` x ) ) $=
      ( wcel wlim cr1 cdm cfv cv ciun wceq wa con0 limelon wfn r1fnon syl6eleqr
      fndm ax-mp r1limg sylancom ) BCDZBEZBFGZDBFHABAIFHJKUBUCLBMUDBCNFMOUDMKPM
      FRSQABTUA $.
  $}

  ${
    $d A n $.  $d m n $.
    $( The first ` _om ` levels of the cumulative hierarchy are all finite.
       (Contributed by Mario Carneiro, 15-May-2013.) $)
    r1fin $p |- ( A e. _om -> ( R1 ` A ) e. Fin ) $=
      ( vn vm cv cr1 cfv cfn wcel c0 csuc wceq fveq2 eleq1d r10 eqeltri com cpw
      0fin cdm wlim wss r1funlim simpri limomss ax-mp sseli r1sucg syl syl6rbbr
      wfun pwfi biimpd finds ) BDZEFZGHIEFZGHCDZEFZGHZUQJZEFZGHZAEFZGHBCAUNIKUO
      UPGUNIELMUNUQKUOURGUNUQELMUNUTKUOVAGUNUTELMUNAKUOVCGUNAELMUPIGNROUQPHZUSV
      BVDVBURQZGHUSVDVAVEGVDUQESZHVAVEKPVFUQVFTZPVFUAEUJVGUBUCVFUDUEUFUQUGUHMUR
      UKUIULUM $.
  $}

  ${
    $d A x $.  $d B x y $.
    $( Each stage in the cumulative hierarchy is strictly larger than the last.
       (Contributed by Mario Carneiro, 19-Apr-2013.) $)
    r1sdom $p |- ( ( A e. On /\ B e. A ) -> ( R1 ` B ) ~< ( R1 ` A ) ) $=
      ( vx vy con0 wcel cr1 cfv csdm wbr cv wi c0 wceq eleq2 fveq2 imbi12d syl5
      breq2d cvv csuc noel pm2.21i wo elsuci sdomtr expcom cpw canth2 syl5breqr
      fvex r1suc syl11 imim2i breq1d syl5ibr a1i jaod com3r wlim wral wrex cuni
      limuni eleq2d eluni2 syl6bb wa r19.29 cdom wss ciun ssiun2 vex r1lim mpan
      sseq2d ssdomg sylsyld id imp sdomdomtr syl6 rexlimdv expcomd sylbid com23
      tfinds ) AEFBAFZBGHZAGHZIJZBCKZFZWJWMGHZIJZLBMFZWJMGHZIJZLBDKZFZWJWTGHZIJ
      ZLZBWTUAZFZWJXEGHZIJZLWIWLLCDAWMMNZWNWQWPWSWMMBOXIWOWRWJIWMMGPSQWMWTNZWNX
      AWPXCWMWTBOXJWOXBWJIWMWTGPSQWMXENZWNXFWPXHWMXEBOXKWOXGWJIWMXEGPSQWMANZWNW
      IWPWLWMABOXLWOWKWJIWMAGPSQWQWSBUBUCXDXFWTEFZXHXFXABWTNZUDXDXMXHLZBWTUEXDX
      AXOXNXCXOXAXBXGIJZXCXHXMXCXPXHWJXBXGUFUGXMXBXBUHXGIXBWTGUKUIWTULUJZUMUNXN
      XOLXDXMXHXNXPXQXNWJXBXGIBWTGPUOUPUQURRUSWMUTZWNXDDWMVAZWPXRWNXADWMVBZXSWP
      LXRWNBWMVCZFXTXRWMYABWMVDVEDBWMVFVGXRXSXTWPXSXTVHXDXAVHZDWMVBXRWPXDXADWMV
      IXRYBWPDWMXRWTWMFZXBWOVJJZYBWPLXRWOTFZYCXBWOVKZYDYEXRWMGUKUQYCYFXRXBDWMXB
      VLZVKDWMXBVMXRWOYGXBWMTFXRWOYGNCVNDWMTVOVPVQUPXBWOTVRVSYBXCYDWPXDXAXCXDVT
      WAXCYDWPWJXBWOWBUGRWCWDRWEWFWGWHWA $.
  $}

  ${
    $d x y $.
    $( The cumulative hierarchy is a one-to-one function.  (Contributed by
       Mario Carneiro, 19-Apr-2013.) $)
    r111 $p |- R1 : On -1-1-> _V $=
      ( vx vy con0 cvv cr1 cv cfv wi wral wcel wa wel word eloni w3a wbr r1sdom
      csdm syl5ibcom mtoi wf1 wf wceq weq wfn r1fnon dffn2 w3o ordtri3or syl2an
      mpbi wn sdomirr breq1 3adant1 pm2.21d 3expia ax-1 a1i breq2 3adant2 3jaod
      mpd rgen2a dff13 mpbir2an ) CDEUACDEUBZAFZEGZBFZEGZUCZABUDZHZBCIACIECUEVG
      UFCEUGUKVNABCVHCJZVJCJZKZABLZVMBALZUHZVNVOVHMVJMVTVPVHNVJNVHVJUIUJVQVRVNV
      MVSVOVPVRVNVOVPVROVLVMVPVRVLULZVOVPVRKZVLVKVKRPZVKUMZWBVIVKRPVLWCVJVHQVIV
      KVKRUNSTUOUPUQVMVNHVQVMVLURUSVOVPVSVNVOVPVSOVLVMVOVSWAVPVOVSKZVLWCWDWEVKV
      IRPVLWCVHVJQVIVKVKRUTSTVAUPUQVBVCVDABCDEVEVF $.
  $}

  ${
    $d x y A $.
    $( The cumulative hierarchy of sets is transitive.  Lemma 7T of [Enderton]
       p. 202.  (Contributed by NM, 8-Sep-2003.)  (Revised by Mario Carneiro,
       16-Nov-2014.) $)
    r1tr $p |- Tr ( R1 ` A ) $=
      ( vx vy cr1 wcel cfv wtr con0 wlim c0 wceq wb fveq2 treq syl tr0 wa ndmfv
      wn mpbiri cdm word wfun r1funlim simpri limord ordsson mp2b sseli cv csuc
      wss r10 syl6eq limsuc ax-mp simpr pwtr r1sucg syl5ibrcom syl5bir pm2.61d1
      cpw sylib wral ciun triun r1limg ancoms syl5ibr impancom tfinds pm2.61i
      ex ) ADUAZEZADFZGZVPAHEVRVOHAVOIZVOUBVOHULDUCVSUDUEZVOUFVOUGUHUIBUJZDFZGZ
      JGZCUJZDFZGZWEUKZDFZGZVRBCAWAJKZWBJKZWCWDLZWKWBJDFJWAJDMUMUNWBJNZOWAWEKWB
      WFKWCWGLWAWEDMWBWFNOWAWHKWBWIKWCWJLWAWHDMWBWINOWAAKWBVQKWCVRLWAADMWBVQNOP
      WEHEZWGWJWOWGQZWHVOEZWJWQWEVOEZWPWJVSWRWQLVTVOWEUOUPWPWJWRWFVCZGZWPWGWTWO
      WGUQWFURVDWRWIWSKWJWTLWEUSWIWSNOUTVAWQSZWJWDPXAWIJKWJWDLWHDRWIJNOTVBVNWAI
      ZWGCWAVEZWCXBXCQWAVOEZWCXBXDXCWCXCWCXBXDQZCWAWFVFZGZCWAWFVGXEWBXFKZWCXGLX
      DXBXHCWAVHVIWBXFNOVJVKXDSZWCWDPXIWLWMWADRWNOTVBVNVLOVPSZVRWDPXJVQJKVRWDLA
      DRVQJNOTVM $.
  $}

  $( The union of a cumulative hierarchy of sets at ordinal ` A ` is a subset
     of the hierarchy at ` A ` .  JFM CLASSES1 th. 40.  (Contributed by FL,
     20-Apr-2011.) $)
  r1tr2 $p |- U. ( R1 ` A ) C_ ( R1 ` A ) $=
    ( cr1 cfv wtr cuni wss r1tr df-tr mpbi ) ABCZDJEJFAGJHI $.

  ${
    $d x y A $.  $d x B $.
    $( Ordering relation for the cumulative hierarchy of sets.  Part of
       Proposition 9.10(2) of [TakeutiZaring] p. 77.  (Contributed by NM,
       8-Sep-2003.) $)
    r1ordg $p |- ( B e. dom R1 -> ( A e. B -> ( R1 ` A ) e. ( R1 ` B ) ) ) $=
      ( vy cr1 wcel cfv wa con0 wss word ax-mp syl wi wceq eleq1 eleq2d imbi12d
      fveq2 wb syl2anc vx cdm csuc simpl wlim wfun r1funlim simpri limord sseli
      ordsson onelon sylan suceloni ordsucss imp cv cpw fvex pwid limsuc r1sucg
      eloni sylbir syl5eleqr a1i wtr r1tr dftr4 mpbi syl5sseqr a2i syl5bir wral
      sseld ciun wrex simprl simplr sucelon sylibr ad2antrr mpbird mpbid simprr
      ordelsuc ordtr1 rspcev eliun simpll r1limg eleqtrrd expr a1d tfindsg impr
      syl22anc ex ) BDUBZEZABEZADFZBDFZEZWTXAGZBHEZAUCZHEZXGBIZWTXDXEWTXFWTXAUD
      ZWSHBWSJZWSHIWSUEZXKDUFXLUGUHZWSUIKZWSUKKUJZLXEAHEZXHWTXFXAXPXOBAULUMAUNL
      WTXFXAXIXOXFXAXIXFBJXAXIMBVCABUOLUPUMXJXFXHGXIWTXDUAUQZWSEZXBXQDFZEZMZXGW
      SEZXBXGDFZEZMZCUQZWSEZXBYFDFZEZMZYFUCZWSEZXBYKDFZEZMZWTXDMUACBXGXQXGNZXRY
      BXTYDXQXGWSOYPXSYCXBXQXGDRPQXQYFNZXRYGXTYIXQYFWSOYQXSYHXBXQYFDRPQXQYKNZXR
      YLXTYNXQYKWSOYRXSYMXBXQYKDRPQXQBNZXRWTXTXDXQBWSOYSXSXCXBXQBDRPQYEXHYBXBXB
      URZYCXBADUSUTZYBAWSEZYCYTNZXLUUBYBSXMWSAVAKAVBZVDVEVFYJYOMYFHEXHGXGYFIZGY
      LYGYJYNXLYGYLSXMWSYFVAKYGYIYNYGYHYMXBYGYHURZYHYMYHVGYHUUFIYFVHYHVIVJYFVBV
      KVOVLVMVFXQUEZXHGZXGXQIZGYAUUEYJMCXQVNUUHUUIXRXTUUHUUIXRGZGZXBCXQYHVPZXSU
      UKYICXQVQZXBUULEUUKXGXQEZYDUUMUUKAXQEZUUNUUKUUOUUIUUHUUIXRVRUUKXPXQJZUUOU
      UISUUKXHXPUUGXHUUJVSAVTWAUUGUUPXHUUJXQUIWBAXQHWFTWCZUUGUUOUUNSXHUUJXQAVAW
      BWDUUKXBYTYCUUAUUKUUBUUCUUKUUOXRUUBUUQUUHUUIXRWEZXKUUOXRGUUBMXNAXQWSWGKTU
      UDLVEYIYDCXGXQYFXGNYHYCXBYFXGDRPWHTCXBXQYHWIWAUUKXRUUGXSUULNUURUUGXHUUJWJ
      CXQWKTWLWMWNWOWPWQWR $.
  $}

  $( Ordering relation for the cumulative hierarchy of sets.  Part of Theorem
     3.3(i) of [BellMachover] p. 478.  (Contributed by NM, 22-Sep-2003.) $)
  r1ord3g $p |- ( ( A e. dom R1 /\ B e. dom R1 ) -> ( A C_ B ->
               ( R1 ` A ) C_ ( R1 ` B ) ) ) $=
    ( cr1 cdm wcel wa wss wceq wo con0 wb wlim word wfun r1funlim simpri limord
    cfv sseli wi ordsson mp2b onsseleq syl2an r1ordg adantl wtr r1tr trss ax-mp
    syl6 fveq2 eqimss syl a1i jaod sylbid ) ACDZEZBUREZFZABGZABEZABHZIZACRZBCRZ
    GZUSAJEBJEVBVEKUTURJAURLZURMURJGCNVIOPURQURUAUBZSURJBVJSABUCUDVAVCVHVDVAVCV
    FVGEZVHUTVCVKTUSABUEUFVGUGVKVHTBUHVGVFUIUJUKVDVHTVAVDVFVGHVHABCULVFVGUMUNUO
    UPUQ $.

  $( Ordering relation for the cumulative hierarchy of sets.  Part of
     Proposition 9.10(2) of [TakeutiZaring] p. 77.  (Contributed by NM,
     8-Sep-2003.)  (Revised by Mario Carneiro, 16-Nov-2014.) $)
  r1ord $p |- ( B e. On -> ( A e. B -> ( R1 ` A ) e. ( R1 ` B ) ) ) $=
    ( con0 wcel cr1 cdm cfv wi wfn wceq r1fnon fndm ax-mp eleq2i r1ordg sylbir
    ) BCDBEFZDABDAEGBEGDHQCBECIQCJKCELMNABOP $.

  $( Ordering relation for the cumulative hierarchy of sets.  Part of
     Proposition 9.10(2) of [TakeutiZaring] p. 77.  (Contributed by NM,
     22-Sep-2003.) $)
  r1ord2 $p |- ( B e. On -> ( A e. B -> ( R1 ` A ) C_ ( R1 ` B ) ) ) $=
    ( con0 wcel cr1 cfv wss r1ord wtr wi r1tr trss ax-mp syl6 ) BCDABDAEFZBEFZD
    ZOPGZABHPIQRJBKPOLMN $.

  $( Ordering relation for the cumulative hierarchy of sets.  Part of Theorem
     3.3(i) of [BellMachover] p. 478.  (Contributed by NM, 22-Sep-2003.) $)
  r1ord3 $p |- ( ( A e. On /\ B e. On ) -> ( A C_ B ->
               ( R1 ` A ) C_ ( R1 ` B ) ) ) $=
    ( con0 wcel cr1 cdm wss cfv wi wfn wceq r1fnon fndm eleq2i r1ord3g syl2anbr
    ax-mp ) ACDAEFZDBRDABGAEHBEHGIBCDRCAECJRCKLCEMQZNRCBSNABOP $.

  $( The value of the cumulative hierarchy of sets function is a subset of its
     value at the successor.  JFM CLASSES1 Th. 39.  (Contributed by FL,
     20-Apr-2011.) $)
  r1sssuc $p |- ( A e. On -> ( R1 ` A ) C_ ( R1 ` suc A ) ) $=
    ( con0 wcel cr1 cfv cpw csuc wtr wss r1tr dftr4 mpbi r1suc syl5sseqr ) ABCA
    DEZFZOAGDEOHOPIAJOKLAMN $.

  ${
    $d x y A $.  $d x y B $.
    $( Each set of the cumulative hierarchy is closed under subsets.
       (Contributed by Mario Carneiro, 16-Nov-2014.) $)
    r1pwss $p |- ( A e. ( R1 ` B ) -> ~P A C_ ( R1 ` B ) ) $=
      ( vx vy cr1 cfv wcel c0 wceq con0 wa cpw wss ax-mp sylib wb limsuc sylibr
      wrex syl cv csuc cvv wlim w3o cdm word wfun r1funlim simpri limord elfvdm
      ordsson sseldi onzsl noel fveq2 syl6eq eleq2d biimpcd pm2.21d simpl simpr
      r10 mtoi fveq2d adantr eqeltrrd r1sucg eqtrd eleqtrd elpwi sspwb sseqtr4d
      ex rexlimdvw wtr r1tr ciun r1limg sylan eliun simprl ad2antlr simprr trss
      mpbid mpsyl ad2antrr wi ordtr1 syl2anc fvex elpw2 eleqtrrd rspcev adantld
      rexlimddv 3jaod mpd ) ABEFZGZBHIZBCUAZUBZIZCJSZBUCGZBUDZKZUEZALZXAMZXBBJG
      XKXBEUFZJBXNUGZXNJMXNUDZXOEUHXPUIUJZXNUKNZXNUMNABEULZUNCBUOOXBXCXMXGXJXBX
      CXMXBXCAHGZAUPXCXBXTXCXAHAXCXAHEFHBHEUQVDURUSUTVEVAXBXFXMCJXBXFXMXBXFKZXL
      XDEFZLZXAYAAYCGZXLYCMZYAAXAYCXBXFVBYAXAXEEFZYCYABXEEXBXFVCZVFYAXDXNGZYFYC
      IZYAXEXNGZYHYABXEXNYGXBBXNGZXFXSVGVHXPYHYJPXQXNXDQNZRXDVIZTVJZVKYDAYBMZYE
      AYBVLAYBVMZOTYNVNVOVPXBXIXMXHXBXIXMXAVQXBXIKZXLXAGXMBVRYQXLDBDUAZEFZVSZXA
      YQXLYSGZDBSZXLYTGYQAYBGZUUBCBYQACBYBVSZGUUCCBSYQAXAUUDXBXIVBXBYKXIXAUUDIX
      SCBVTWAVKCABYBWBOYQXDBGZUUCKZKZXEUBZBGZXLUUHEFZGZUUBUUGXEBGZUUIUUGUUEUULY
      QUUEUUCWCZXIUUEUULPXBUUFBXDQWDWGXIUULUUIPXBUUFBXEQWDWGUUGXLYFLZUUJUUGXLYF
      MXLUUNGUUGXLYCYFUUGYOYEYBVQUUGUUCYOXDVRYQUUEUUCWEYBAWFWHYPOUUGYHYIUUGUUEY
      KYHUUMXBYKXIUUFXSWIXOUUEYKKYHWJXRXDBXNWKNWLZYMTVNXLYFXEEWMWNRUUGYJUUJUUNI
      UUGYHYJUUOYLOXEVITWOUUAUUKDUUHBYRUUHIYSUUJXLYRUUHEUQUSWPWLWRDXLBYSWBRXBYK
      XIXAYTIXSDBVTWAWOXAXLWFWHVOWQWSWT $.
  $}

  $( Each set of the cumulative hierarchy is closed under subsets.
     (Contributed by Mario Carneiro, 16-Nov-2014.) $)
  r1sscl $p |- ( ( A e. ( R1 ` B ) /\ C C_ A ) -> C e. ( R1 ` B ) ) $=
    ( cr1 cfv wcel wss wa cpw r1pwss adantr elpw2g biimpar sseldd ) ABDEZFZCAGZ
    HAIZOCPROGQABJKPCRFQCAOLMN $.

  ${
    $d x A $.
    $( The value of the cumulative hierarchy of sets function expressed
       recursively.  Theorem 7Q of [Enderton] p. 202.  (Contributed by NM,
       25-Nov-2003.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
    r1val1 $p |- ( A e. dom R1 -> ( R1 ` A ) = U_ x e. A ~P ( R1 ` x ) ) $=
      ( cr1 wcel cfv ciun c0 wceq wss con0 wa simpr fveq2d a1i eqsstrd wi ax-mp
      wlim wb syl cdm cv cpw csuc wrex cvv r10 syl6eq 0ss nfcv nfiu1 nfss eleq1
      nfv biimpac wfun r1funlim simpri limsuc sylibr r1sucg eqtrd vex syl5eleqr
      sucid ssiun2 ex a1d rexlimd imp r1limg wral wtr r1tr dftr4 mpbi ralrimivw
      ss2iun adantrl w3o word limord ordsson sseli onzsl sylib mpjao3dan ordtr1
      ancoms ordelord mpan adantr ordelsuc syl2anc mpbid simpl r1ord3g eqsstr3d
      mpd ralrimiva iunss eqssd ) BCUAZDZBCEZABAUBZCEZUCZFZXDBGHZXEXIIZBXFUDZHZ
      AJUEZBUFDZBRZKZXDXJKZXEGXIXRXEGCEGXRBGCXDXJLMUGUHGXIIXRXIUINOXDXNXKXDXMXK
      AJXDAUNAXEXIAXEUJABXHUKULXDXMXKPXFJDXDXMXKXDXMKZXEXHXIXSXEXLCEZXHXSBXLCXD
      XMLZMXSXFXCDZXTXHHZXSXLXCDZYBXMXDYDBXLXCUMUOXCRZYBYDSCUPYEUQURZXCXFUSQZUT
      XFVAZTVBXSXFBDZXHXIIXSXFXLBXFAVCVEYAVDABXHVFTOVGVHVIVJXDXPXKXOXDXPKZXEABX
      GFZXIABVKYJXGXHIZABVLYKXIIYJYLABYLYJXGVMYLXFVNXGVOVPNVQABXGXHVRTOVSXDBJDX
      JXNXQVTXCJBXCWAZXCJIYEYMYFXCWBQZXCWCQWDABWEWFWGXDXHXEIZABVLXIXEIXDYOABXDY
      IKZXHXTXEYPYBYCYIXDYBYMYIXDKYBPYNXFBXCWHQWIZYHTYPXLBIZXTXEIZYPYIYRXDYILZY
      PYIBWAZYIYRSYTXDUUAYIYMXDUUAYNXCBWJWKWLXFBBWMWNWOYPYDXDYRYSPYPYBYDYQYGWFX
      DYIWPXLBWQWNWSWRWTABXHXEXAUTXB $.
  $}

  ${
    $d x y z v A $.  $d x y F $.
    tz9.12lem.1 $e |- A e. _V $.
    tz9.12lem.2 $e |- F = ( z e. _V |-> |^| { v e. On | z e. ( R1 ` v ) } ) $.
    $( Lemma for ~ tz9.12 .  (Contributed by NM, 22-Sep-2003.)  (Revised by
       Mario Carneiro, 11-Sep-2015.) $)
    tz9.12lem1 $p |- ( F " A ) C_ On $=
      ( vx cima crn con0 imassrn cv cr1 cfv wcel crab cint wceq cvv wrex cab id
      rnmpt wss c0 wne ssrab2 eqvisset sylibr oninton sylancr eqeltrd rexlimivw
      intex abssi eqsstri sstri ) DCHDIZJDCKURGLZALBLMNOZBJPZQZRZASTZGUAJAGSVBD
      FUCVDGJVCUSJOASVCUSVBJVCUBVCVAJUDVAUEUFZVBJOUTBJUGVCVBSOVEGVBUHVAUNUIVAUJ
      UKULUMUOUPUQ $.

    $( Lemma for ~ tz9.12 .  (Contributed by NM, 22-Sep-2003.) $)
    tz9.12lem2 $p |- suc U. ( F " A ) e. On $=
      ( cima cuni con0 wss wcel tz9.12lem1 wfun cvv cv cr1 cfv crab cint ax-mp
      funmpt2 funimaex ssonunii onsuci ) DCGZHZUEIJUFIKABCDEFLUEDMUENKANAOBOPQK
      BIRSDFUADCEUBTUCTUD $.

    $( Lemma for ~ tz9.12 .  (Contributed by NM, 22-Sep-2003.)  (Revised by
       Mario Carneiro, 11-Sep-2015.) $)
    tz9.12lem3 $p |- ( A. x e. A E. y e. On x e. ( R1 ` y ) ->
                    A e. ( R1 ` suc suc U. ( F " A ) ) ) $=
      ( cv cr1 cfv wcel con0 wrex wral csuc wss cvv wceq sylibr cima cuni wa wi
      wfun cdm crab cint funmpt2 c0 fveq2 eleq2d rspcev rabn0 intex sylib eleq1
      wne vex rabbidv inteqd eleq1d dmmpt elrab2 funfvima tz9.12lem2 tz9.12lem1
      mpbiran sylancr onsucuni ax-mp sseli r1ord2 mpsyl syl6 fvmptg mpan ssrab2
      imp sylbi onint eqeltrd cbvrabv simprbi 3syl adantr sseldd exp31 rexlimdv
      com3r ralimia cpw r1suc eleq2i elpw dfss3 3bitri ) AIZBIZJKZLZBMNZAEOWRFE
      UAZUBPZJKZLZAEOZEXDPJKZLZXBXFAEWRELZXAXFBMWSMLZXAXJXFXKXAXJXFXKXAUCZXJUCW
      RFKZJKZXEWRXLXJXNXEQZXLXJXMXCLZXOXLFUEWRFUFZLZXJXPUDCRCIZDIZJKZLZDMUGZUHZ
      FHUIXLWRYALZDMUGZUHZRLZXRXLYFUJURZYHXLYEDMNYIYEXADWSMXTWSSYAWTWRXTWSJUKUL
      ZUMYEDMUNTZYFUOZUPXRWRRLZYHAUSZYDRLYHCWRRXQXSWRSZYDYGRYOYCYFYOYBYEDMXSWRY
      AUQUTVAZVBCRYDFHVCVDVHTEWRFVEVIXDMLZXPXMXDLXOCDEFGHVFZXCXDXMXCMQXCXDQCDEF
      GHVGXCVJVKVLXMXDVMVNVOVSXLWRXNLZXJXLYIXMYFLZYSYKYIXMYGYFYIYHXMYGSZYLYMYHU
      UAYNCWRYDYGRRFYPHVPVQVTYFMQYIYGYFLYEDMVRYFWAVQWBYTXMMLYSXAYSBXMMYFWSXMSWT
      XNWRWSXMJUKULYEXADBMYJWCVDWDWEWFWGWHWJWIWKXIEXEWLZLEXEQXGXHUUBEYQXHUUBSYR
      XDWMVKWNEXEGWOAEXEWPWQT $.
  $}

  ${
    $d x y z v A $.
    tz9.12.1 $e |- A e. _V $.
    $( A set is well-founded if all of its elements are well-founded.
       Proposition 9.12 of [TakeutiZaring] p. 78.  The main proof consists of
       ~ tz9.12lem1 through ~ tz9.12lem3 .  (Contributed by NM,
       22-Sep-2003.) $)
    tz9.12 $p |- ( A. x e. A E. y e. On x e. ( R1 ` y ) ->
              E. y e. On A e. ( R1 ` y ) ) $=
      ( vz vv cv cr1 cfv wcel con0 wrex wral cvv crab cint cmpt cima cuni csuc
      eqid tz9.12lem2 onsuci tz9.12lem3 wceq fveq2 eleq2d rspcev sylancr ) AGBG
      ZHIZJBKLACMENEGFGHIJFKOPQZCRSTZTZKJCUNHIZJZCUKJZBKLUMEFCULDULUAZUBUCABEFC
      ULDURUDUQUPBUNKUJUNUEUKUOCUJUNHUFUGUHUI $.
  $}

  ${
    $d x y z w A $.
    tz9.13.1 $e |- A e. _V $.
    $( Every set is well-founded, assuming the Axiom of Regularity.  In other
       words, every set belongs to a layer of the cumulative hierarchy of sets.
       Proposition 9.13 of [TakeutiZaring] p. 78.  (Contributed by NM,
       23-Sep-2003.) $)
    tz9.13 $p |- E. x e. On A e. ( R1 ` x ) $=
      ( vy vz vw cr1 cfv wcel con0 wrex cab cvv wss wceq vex eleq1 rexbidv elab
      cv setind wral ssel syl6ib ralrimiv tz9.12 syl sylibr mpg eleqtrri mpbi
      wi ) BDTZATGHZIZAJKZDLZIBUNIZAJKZBMUQCETZUQNZUTUQIZULUQMOEEUQUAVAUTUNIZAJ
      KZVBVAFTZUNIZAJKZFUTUBVDVAVGFUTVAVEUTIVEUQIVGUTUQVEUCUPVGDVEFPUMVEOUOVFAJ
      UMVEUNQRSUDUEFAUTEPZUFUGUPVDDUTVHUMUTOUOVCAJUMUTUNQRSUHUIUJUPUSDBCUMBOUOU
      RAJUMBUNQRSUK $.
  $}

  ${
    $d x y A $.
    $( Every set is well-founded, assuming the Axiom of Regularity.
       Proposition 9.13 of [TakeutiZaring] p. 78.  This variant of ~ tz9.13
       expresses the class existence requirement as an antecedent.
       (Contributed by NM, 4-Oct-2003.) $)
    tz9.13g $p |- ( A e. V -> E. x e. On A e. ( R1 ` x ) ) $=
      ( vy cv cr1 cfv wcel con0 wrex wceq eleq1 rexbidv vex tz9.13 vtoclg ) DEZ
      AEFGZHZAIJBRHZAIJDBCQBKSTAIQBRLMAQDNOP $.
  $}

  ${
    $d A x y $.
    $( Two ways of saying a set is well-founded.  (Contributed by NM,
       11-Oct-2003.)  (Revised by Mario Carneiro, 16-Nov-2014.) $)
    rankwflemb $p |- ( A e. U. ( R1 " On ) <->
        E. x e. On A e. ( R1 ` suc x ) ) $=
      ( vy cr1 con0 cima cuni wcel cv csuc cfv wrex wa wceq r1funlim wss elfvdm
      wi ax-mp crn wex eluni wfun cdm wlim simpli fvelima mpan biimprcd cpw wtr
      eleq2 r1tr trss elpwg mpbird syl eleqtrrd a1i syl9 reximdvai syl5 exlimiv
      r1sucg sylbi fvelrn sylancr cres df-ima wrel funrel simpri limord ordsson
      imp word mp2b relssres mp2an rneqi eqtri syl6eleqr elunii mpdan rexlimivw
      impbii ) BDEFZGHZBAIZJZDKZHZAELZWHBCIZHZWNWGHZMZCUAWMCBWGUBWQWMCWOWPWMWPW
      IDKZWNNZAELZWOWMDUCZWPWTXADUDZUEZOUFZAWNEDUGUHWOWSWLAEWOWSBWRHZWIEHZWLWSX
      EWOWRWNBULUIXEWLRXFXEBWRUJZWKXEBXGHBWRPZWRUKXEXHRWIUMWRBUNSBWRWRUOUPXEWIX
      BHWKXGNBWIDQWIVDUQURUSUTVAVBVOVCVEWLWHAEWLWKWGHWHWLWKDTZWGWLXAWJXBHWKXIHX
      DBWJDQWJDVFVGWGDEVHZTXIDEVIXJDDVJZXBEPZXJDNXAXKXDDVKSXCXBVPXLXAXCOVLXBVMX
      BVNVQDEVRVSVTWAWBBWKWGWCWDWEWF $.
  $}

  ${
    $d x y z $.
    $( The domain and range of the ` rank ` function.  (Contributed by Mario
       Carneiro, 28-May-2013.)  (Revised by Mario Carneiro, 12-Sep-2013.) $)
    rankf $p |- rank : U. ( R1 " On ) --> On $=
      ( vx vy vz cr1 con0 cima cuni crnk wf wfn cv cfv wcel wceq eqtri mpbir2an
      cdm cvv mpan sylbi wral wfun csuc crab cint df-rank copab cmpt mptv dmeqi
      funmpt2 wex dmopab wb abeq1 wrex rankwflemb intexrab isset 3bitrri mpgbir
      cab df-fn c0 wne rabn0 bitr4i intex vex fvmpt2 wss ssrab2 oninton eqeltrd
      rgen ffnfv ) DEFGZEHIHVQJZAKZHLZEMZAVQUAVRHUBHQZVQNARVSBKUCDLMZBEUDZUEZHA
      BUFZUKWBCKWENZACUGZQZVQHWHHARWEUHWHWFACWEUIOUJWIWGCULZAVBZVQWGACUMWKVQNWJ
      VSVQMZUNAWJAVQUOWLWCBEUPZWERMZWJBVSUQZWCBEURCWEUSUTVAOOHVQVCPWAAVQWLWDVDV
      EZWAWLWMWPWOWCBEVFVGWPVTWEEWPWNVTWENZWDVHVSRMWNWQAVIARWERHWFVJSTWDEVKWPWE
      EMWCBEVLWDVMSVNTVOAVQEHVPP $.
  $}

  $( The rank of a set is an ordinal number.  Proposition 9.15(1) of
     [TakeutiZaring] p. 79.  (Contributed by NM, 5-Oct-2003.)  (Revised by
     Mario Carneiro, 12-Sep-2013.) $)
  rankon $p |- ( rank ` A ) e. On $=
    ( cr1 con0 cima cuni crnk rankf 0elon f0cli ) BCDECAFGHI $.

  ${
    $d A x $.  $d B x $.
    $( Any member of the cumulative hierarchy is well-founded.  (Contributed by
       Mario Carneiro, 28-May-2013.)  (Revised by Mario Carneiro,
       16-Nov-2014.) $)
    r1elwf $p |- ( A e. ( R1 ` B ) -> A e. U. ( R1 " On ) ) $=
      ( vx cr1 cfv wcel cv csuc con0 wrex cima cuni cdm wlim word wfun r1funlim
      wss simpri wceq limord ordsson mp2b elfvdm sseldi cpw wtr r1tr trss ax-mp
      wi elpwg mpbird r1sucg syl eleqtrrd suceq fveq2d eleq2d rspcev rankwflemb
      syl2anc sylibr ) ABDEZFZACGZHZDEZFZCIJZADIKLFVEBIFABHZDEZFZVJVEDMZIBVNNZV
      NOVNIRDPVOQSVNUAVNUBUCABDUDZUEVEAVDUFZVLVEAVQFAVDRZVDUGVEVRUKBUHVDAUIUJAV
      DVDULUMVEBVNFVLVQTVPBUNUOUPVIVMCBIVFBTZVHVLAVSVGVKDVFBUQURUSUTVBCAVAVC $.
  $}

  ${
    $d A x y $.
    $( Value of the rank function.  Definition 9.14 of [TakeutiZaring] p. 79
       (proved as a theorem from our definition).  This variant of ~ rankval
       does not use Regularity, and so requires the assumption that ` A ` is in
       the range of ` R1 ` .  (Contributed by NM, 11-Oct-2003.)  (Revised by
       Mario Carneiro, 10-Sep-2013.) $)
    rankvalb $p |- ( A e. U. ( R1 " On ) ->
        ( rank ` A ) = |^| { x e. On | A e. ( R1 ` suc x ) } ) $=
      ( vy cr1 con0 cima cuni wcel cvv csuc crab cint crnk wceq elex rankwflemb
      cv cfv wrex intexrab sylbb eleq1 rabbidv inteqd df-rank fvmptg syl2anc )
      BDEFGZHZBIHBAQJDRZHZAEKZLZIHZBMRUMNBUHOUIUKAESUNABPUKAETUACBCQZUJHZAEKZLU
      MIIMUOBNZUQULURUPUKAEUOBUJUBUCUDCAUEUFUG $.
  $}

  ${
    $d A x $.  $d B x $.
    $( One direction of ~ rankr1a .  (Contributed by Mario Carneiro,
       28-May-2013.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
    rankr1ai $p |- ( A e. ( R1 ` B ) -> ( rank ` A ) e. B ) $=
      ( vx cr1 cfv wcel cv csuc con0 crab wss wrex eleq2d wa wb wi ax-mp sseldi
      syl sylbird cint crnk cdm elfvdm cpw ciun r1val1 eliun word wlim r1funlim
      syl6bb wfun simpri limord ordtr1 ancoms r1sucg ordsson rabid intss1 sylan
      sylbir reximdva sylbid mpcom cima cuni wceq r1elwf rankvalb sseq1d adantr
      ex rankon ontr2 sylancr expcomd imp rexlimdva mpd ) ABDEZFZACGZHDEZFZCIJZ
      UAZWDKZCBLZAUBEZBFZBDUCZFZWCWJABDUDZWNWCAWDDEUEZFZCBLZWJWNWCACBWPUFZFWRWN
      WBWSACBUGMCABWPUHULWNWQWICBWNWDBFZNZWQWFWIXAWDWMFZWFWQOWTWNXBWMUIZWTWNNXB
      PWMUJZXCDUMXDUKUNWMUOQZWDBWMUPQUQZXBWEWPAWDURMSXAWFWIXAWDIFZWFWIXAWMIWDXC
      WMIKXEWMUSQZXFRXGWFNWDWGFWIWFCIUTWDWGVAVCVBVNTVDVEVFWCWIWLCBWCWTNWIWKWDKZ
      WLWCXIWIOWTWCWKWHWDWCADIVGVHFWKWHVIABVJCAVKSVLVMWCWTXIWLPWCXIWTWLWCWKIFBI
      FXIWTNWLPAVOWCWMIBXHWORWKWDBVPVQVRVSTVTWA $.
  $}

  $( Value of the rank function at a non-well-founded set.  (The antecedent is
     always false under Foundation, by ~ unir1 , unless ` A ` is a proper
     class.)  (Contributed by Mario Carneiro, 22-Mar-2013.)  (Revised by Mario
     Carneiro, 10-Sep-2013.) $)
  rankvaln $p |- ( -. A e. U. ( R1 " On ) -> ( rank ` A ) = (/) ) $=
    ( cr1 con0 cima cuni wcel crnk cdm cfv wceq rankf fdmi eleq2i ndmfv sylnbir
    c0 ) ABCDEZFAGHZFAGIPJRQAQCGKLMAGNO $.

  ${
    $d x A $.
    $( Identity law for the rank function.  (Contributed by NM, 3-Oct-2003.)
       (Revised by Mario Carneiro, 22-Mar-2013.) $)
    rankidb $p |- ( A e. U. ( R1 " On ) -> A e. ( R1 ` suc ( rank ` A ) ) ) $=
      ( vx cr1 con0 cima cuni wcel csuc cfv crab cint crnk wrex rankwflemb nfcv
      cv nfrab1 wceq suceq fveq2d nfint nfsuc nffv nfel2 onminsb sylbi rankvalb
      eleq2d syl eleqtrrd ) ACDEFGZAABPZHZCIZGZBDJZKZHZCIZALIZHZCIUKUOBDMAUSGZB
      ANUOVBBBAUSBURCBCOBUQBUPUOBDQUAUBUCUDULUQRZUNUSAVCUMURCULUQSTUHUEUFUKVAUR
      CUKUTUQRVAURRBAUGUTUQSUITUJ $.
  $}

  $( A rank is a member of the cumulative hierarchy.  (Contributed by Mario
     Carneiro, 17-Nov-2014.) $)
  rankdmr1 $p |- ( rank ` A ) e. dom R1 $=
    ( cr1 con0 cima cuni wcel crnk cfv cdm csuc rankidb elfvdm syl wlim wb wfun
    r1funlim ax-mp c0 com simpri limsuc sylibr wn rankvaln wss limomss syl6eqel
    peano1 sselii pm2.61i ) ABCDEFZAGHZBIZFZULUMJZUNFZUOULAUPBHFUQAKAUPBLMUNNZU
    OUQOBPURQUAZUNUMUBRUCULUDUMSUNAUETUNSURTUNUFUSUNUGRUIUJUHUK $.

  $( A version of ~ rankr1a that is suitable without assuming Regularity or
     Replacement.  (Contributed by Mario Carneiro, 3-Jun-2013.)  (Revised by
     Mario Carneiro, 17-Nov-2014.) $)
  rankr1ag $p |- ( ( A e. U. ( R1 " On ) /\ B e. dom R1 ) ->
      ( A e. ( R1 ` B ) <-> ( rank ` A ) e. B ) ) $=
    ( cr1 con0 cima cuni wcel cdm cfv crnk rankr1ai csuc wss word wlim r1funlim
    wa wi wfun syl simpri limord ax-mp ordelord adantl ordsucss rankidb r1ord3g
    mpan elfvdm sylan adantr ssel syl5com 3syld impbid2 ) ACDEFGZBCHZGZQZABCIZG
    ZAJIZBGZABKUTVDVCLZBMZVECIZVAMZVBUTBNZVDVFRUSVIUQURNZUSVIUROZVJCSVKPUAURUBU
    CURBUDUIUEVCBUFTUQVEURGZUSVFVHRUQAVGGZVLAUGZAVECUJTVEBUHUKUTVMVHVBUQVMUSVNU
    LVGVAAUMUNUOUP $.

  $( A relationship between rank and ` R1 ` .  See ~ rankr1ag for the
     membership version.  (Contributed by Mario Carneiro, 17-Nov-2014.) $)
  rankr1bg $p |- ( ( A e. U. ( R1 " On ) /\ B e. dom R1 ) ->
    ( A C_ ( R1 ` B ) <-> ( rank ` A ) C_ B ) ) $=
    ( cr1 con0 cima cuni wcel cdm wa csuc cfv crnk wb wlim wfun r1funlim simpri
    wss ax-mp adantl limsuc rankr1ag sylan2b cpw wceq r1sucg fvex elpw2 syl6rbb
    eleq2d rankon word limord ordelon mpan onsssuc sylancr 3bitr4d ) ACDEFGZBCH
    ZGZIZABJZCKZGZALKZVCGZABCKZRZVFBRZVAUSVCUTGZVEVGMUTNZVAVKMCOVLPQZUTBUASAVCU
    BUCVBVEAVHUDZGVIVBVDVNAVAVDVNUEUSBUFTUJAVHBCUGUHUIVBVFDGBDGZVJVGMAUKVAVOUSU
    TULZVAVOVLVPVMUTUMSUTBUNUOTVFBUPUQUR $.

  $( Any set is a subset of the hierarchy of its rank.  (Contributed by Mario
     Carneiro, 3-Jun-2013.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
  r1rankidb $p |- ( A e. U. ( R1 " On ) -> A C_ ( R1 ` ( rank ` A ) ) ) $=
    ( cr1 con0 cima cuni wcel crnk cfv wss ssid cdm wb rankdmr1 rankr1bg mpbiri
    mpan2 ) ABCDEFZAAGHZBHIZRRIZRJQRBKFSTLAMARNPO $.

  ${
    $d x A $.
    $( The range of the ` R1 ` function is transitive.  Lemma 2.10 of [Kunen]
       p. 97.  One direction of ~ r1elss that doesn't need ` A ` to be a set.
       (Contributed by Mario Carneiro, 22-Mar-2013.)  (Revised by Mario
       Carneiro, 16-Nov-2014.) $)
    r1elssi $p |- ( A e. U. ( R1 " On ) -> A C_ U. ( R1 " On ) ) $=
      ( vx cr1 con0 cima cuni wtr wcel wss wi cfv ciun triun r1tr a1i mprg wceq
      cv wb ax-mp wfun cdm wlim r1funlim simpli funiunfv treq mpbi trss ) CDEFZ
      GZAUJHAUJIJBDBRZCKZLZGZUKUMGZUOBDBDUMMUPULDHULNOPUNUJQZUOUKSCUAZUQURCUBUC
      UDUEBDCUFTUNUJUGTUHUJAUIT $.
  $}

  ${
    $d x y A $.
    r1elss.1 $e |- A e. _V $.
    $( The range of the ` R1 ` function is transitive.  Lemma 2.10 of [Kunen]
       p. 97.  (Contributed by Mario Carneiro, 22-Mar-2013.)  (Revised by Mario
       Carneiro, 16-Nov-2014.) $)
    r1elss $p |- ( A e. U. ( R1 " On ) <-> A C_ U. ( R1 " On ) ) $=
      ( vy vx cr1 con0 cima cuni wcel wss r1elssi cv cfv wrex wral tz9.12 dfss3
      eleq2i eliun bitr3i ciun wfn wfun wceq r1fnon fnfun funiunfv ralbii bitri
      mp2b 3imtr4i impbii ) AEFGHZIZAUMJZAKCLZDLEMZIDFNZCAOZAUQIDFNZUOUNCDABPUO
      UPUMIZCAOUSCAUMQVAURCAVAUPDFUQUAZIURVBUMUPEFUBEUCVBUMUDUEFEUFDFEUGUJZRDUP
      FUQSTUHUIUNAVBIUTVBUMAVCRDAFUQSTUKUL $.
  $}

  $( A power set is well-founded iff the base set is.  (Contributed by Mario
     Carneiro, 8-Jun-2013.)  (Revised by Mario Carneiro, 16-Nov-2014.) $)
  pwwf $p |- ( A e. U. ( R1 " On ) <-> ~P A e. U. ( R1 " On ) ) $=
    ( cr1 con0 cima cuni wcel cpw crnk cfv wss r1rankidb sspwb sylib cdm r1sucg
    csuc wceq ax-mp syl cvv rankdmr1 syl6sseqr fvex elpw2 wlim wb wfun r1funlim
    sylibr simpri limsuc syl6eleqr r1elwf r1elssi pwexr pwidg sseldd impbii
    mpbi ) ABCDEZFZAGZUTFZVAVBAHIZPZPZBIZFVCVAVBVEBIZGZVGVAVBVHJVBVIFVAVBVDBIZG
    ZVHVAAVJJVBVKJAKAVJLMVDBNZFZVHVKQAUAZVDORUBVBVHVEBUCUDUIVEVLFZVGVIQVMVOVNVL
    UEZVMVOUFBUGVPUHUJVLVDUKRUSVEORULVBVFUMSVCVBUTAVBUNVCATFAVBFAUTUOATUPSUQUR
    $.

  $( A subset of a well-founded set is well-founded.  (Contributed by Mario
     Carneiro, 17-Nov-2014.) $)
  sswf $p |- ( ( A e. U. ( R1 " On ) /\ B C_ A ) -> B e. U. ( R1 " On ) ) $=
    ( cr1 con0 cima cuni wcel wss crnk cfv csuc rankidb r1sscl sylan r1elwf syl
    wa ) ACDEFZGZBAHZQBAIJKZCJZGZBRGSAUBGTUCALAUABMNBUAOP $.

  $( A singleton is well-founded if its element is.  (Contributed by Mario
     Carneiro, 10-Jun-2013.)  (Revised by Mario Carneiro, 16-Nov-2014.) $)
  snwf $p |- ( A e. U. ( R1 " On ) -> { A } e. U. ( R1 " On ) ) $=
    ( cr1 con0 cima cuni wcel cpw csn pwwf wss snsspw sswf mpan2 sylbi ) ABCDEZ
    FAGZOFZAHZOFZAIQRPJSAKPRLMN $.

  $( A binary union is well-founded iff its elements are.  (Contributed by
     Mario Carneiro, 10-Jun-2013.)  (Revised by Mario Carneiro,
     17-Nov-2014.) $)
  unwf $p |- ( ( A e. U. ( R1 " On ) /\ B e. U. ( R1 " On ) ) <->
      ( A u. B ) e. U. ( R1 " On ) ) $=
    ( cr1 con0 wcel cun cfv wss r1rankidb ssun1 wi rankdmr1 ax-mp r1ord3g mp2an
    crnk syl6ss ssun2 sswf mpan2 cima cuni wa csuc cpw adantr cdm word r1funlim
    wlim wfun simpri limord ordunel mp3an adantl unssd fvex elpw2 sylibr r1sucg
    wceq syl6eleqr r1elwf syl jca impbii ) ACDUAUBZEZBVHEZUCZABFZVHEZVKVLAPGZBP
    GZFZUDZCGZEVMVKVLVPCGZUEZVRVKVLVSHVLVTEVKABVSVKAVNCGZVSVIAWAHVJAIUFVNVPHZWA
    VSHZVNVOJVNCUGZEZVPWDEZWBWCKALZWDUHZWEVOWDEZWFWDUJZWHCUKWJUIULWDUMMWGBLZWDV
    NVOUNUOZVNVPNOMQVKBVOCGZVSVJBWMHVIBIUPVOVPHZWMVSHZVOVNRWIWFWNWOKWKWLVOVPNOM
    QUQVLVSVPCURUSUTWFVRVTVBWLVPVAMVCVLVQVDVEVMVIVJVMAVLHVIABJVLASTVMBVLHVJBARV
    LBSTVFVG $.

  $( An unordered pair is well-founded if its elements are.  (Contributed by
     Mario Carneiro, 10-Jun-2013.)  (Revised by Mario Carneiro,
     17-Nov-2014.) $)
  prwf $p |- ( ( A e. U. ( R1 " On ) /\ B e. U. ( R1 " On ) ) ->
      { A , B } e. U. ( R1 " On ) ) $=
    ( cr1 con0 cima cuni wcel wa cpr csn df-pr snwf unwf biimpi syl2an syl5eqel
    cun ) ACDEFZGZBRGZHABIAJZBJZQZRABKSUARGZUBRGZUCRGZTALBLUDUEHUFUAUBMNOP $.

  $( An ordered pair is well-founded if its elements are.  (Contributed by
     Mario Carneiro, 10-Jun-2013.) $)
  opwf $p |- ( ( A e. U. ( R1 " On ) /\ B e. U. ( R1 " On ) ) ->
      <. A , B >. e. U. ( R1 " On ) ) $=
    ( cr1 con0 cima cuni wcel wa cop csn dfopg snwf adantr prwf syl2anc eqeltrd
    cpr ) ACDEFZGZBRGZHZABIAJZABQZQZRABRRKUAUBRGZUCRGUDRGSUETALMABNUBUCNOP $.

  $( The cumulative hierarchy of sets covers the universe.  Proposition 4.45
     (b) to (a) of [Mendelson] p. 281.  (Contributed by NM, 27-Sep-2004.)
     (Revised by Mario Carneiro, 8-Jun-2013.) $)
  unir1 $p |- U. ( R1 " On ) = _V $=
    ( vx cv cr1 con0 cima cuni wss wcel cvv wceq setind vex r1elss biimpri mpg
    wi ) ABZCDEFZGZQRHZPRIJAARKTSQALMNO $.

  $( Every set belongs to some value of the cumulative hierarchy of sets
     function ` R1 ` , i.e. the indexed union of all values of ` R1 ` is the
     universe.  Lemma 9.3 of [Jech] p. 71.  (Contributed by NM, 4-Oct-2003.)
     (Revised by Mario Carneiro, 8-Jun-2013.) $)
  jech9.3 $p |- U_ x e. On ( R1 ` x ) = _V $=
    ( con0 cv cr1 cfv ciun crn cuni cima cvv wfn wceq r1fnon fniunfv ax-mp fndm
    cdm imaeq2i imadmrn eqtr3i unieqi unir1 3eqtr2i ) ABACDEFZDGZHZDBIZHJDBKZUD
    UFLMABDNOUGUEDDQZIUGUEUIBDUHUIBLMBDPORDSTUAUBUC $.

  ${
    $d x A $.
    $( Every set is well-founded, assuming the Axiom of Regularity.
       Proposition 9.13 of [TakeutiZaring] p. 78.  This variant of ~ tz9.13g is
       useful in proofs of theorems about the rank function.  (Contributed by
       NM, 4-Oct-2003.) $)
    rankwflem $p |- ( A e. V -> E. x e. On A e. ( R1 ` suc x ) ) $=
      ( wcel cr1 con0 cima cuni cv csuc cfv wrex cvv unir1 syl6eleqr rankwflemb
      elex sylib ) BCDZBEFGHZDBAIJEKDAFLSBMTBCQNOABPR $.
  $}

  ${
    $d x A $.
    rankval.1 $e |- A e. _V $.
    $( Value of the rank function.  Definition 9.14 of [TakeutiZaring] p. 79
       (proved as a theorem from our definition).  (Contributed by NM,
       24-Sep-2003.)  (Revised by Mario Carneiro, 10-Sep-2013.) $)
    rankval $p |- ( rank ` A ) = |^| { x e. On | A e. ( R1 ` suc x ) } $=
      ( cr1 con0 cima cuni wcel crnk cfv csuc crab cint wceq cvv unir1 eleqtrri
      cv rankvalb ax-mp ) BDEFGZHBIJBARKDJHAELMNBOUACPQABST $.
  $}

  ${
    $d x y A $.
    $( Value of the rank function.  Definition 9.14 of [TakeutiZaring] p. 79
       (proved as a theorem from our definition).  This variant of ~ rankval
       expresses the class existence requirement as an antecedent instead of a
       hypothesis.  (Contributed by NM, 5-Oct-2003.) $)
    rankvalg $p |- ( A e. V ->
                   ( rank ` A ) = |^| { x e. On | A e. ( R1 ` suc x ) } ) $=
      ( vy cv crnk cfv csuc wcel con0 crab cint wceq fveq2 eleq1 rabbidv inteqd
      cr1 eqeq12d vex rankval vtoclg ) DEZFGZUCAEHRGZIZAJKZLZMBFGZBUEIZAJKZLZMD
      BCUCBMZUDUIUHULUCBFNUMUGUKUMUFUJAJUCBUEOPQSAUCDTUAUB $.

    $( Value of an alternate definition of the rank function.  Definition of
       [BellMachover] p. 478.  (Contributed by NM, 8-Oct-2003.) $)
    rankval2 $p |- ( A e. B ->
                   ( rank ` A ) = |^| { x e. On | A C_ ( R1 ` x ) } ) $=
      ( wcel crnk cfv cv csuc cr1 con0 crab cint wss rankvalg r1suc eleq2d fvex
      cpw elpw2 syl6bb rabbiia inteqi syl6eq ) BCDBEFBAGZHIFZDZAJKZLBUDIFZMZAJK
      ZLABCNUGUJUFUIAJUDJDZUFBUHRZDUIUKUEULBUDOPBUHUDIQSTUAUBUC $.
  $}

  $( A union is well-founded iff the base set is.  (Contributed by Mario
     Carneiro, 8-Jun-2013.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
  uniwf $p |- ( A e. U. ( R1 " On ) <-> U. A e. U. ( R1 " On ) ) $=
    ( cr1 con0 cima cuni wcel crnk cfv csuc cpw wss wtr r1tr rankidb trss mpsyl
    cdm wceq rankdmr1 r1sucg ax-mp syl6sseq sspwuni sylib fvex sylibr syl6eleqr
    elpw2 r1elwf syl pwwf pwuni sswf mpan2 sylbi impbii ) ABCDEZFZAEZUQFZURUSAG
    HZIZBHZFUTURUSVABHZJZVCURUSVDKZUSVEFURAVEKVFURAVCVEVCLURAVCFAVCKVBMANVCAOPV
    ABQFVCVERASVATUAZUBAVDUCUDUSVDVABUEUHUFVGUGUSVBUIUJUTUSJZUQFZURUSUKVIAVHKUR
    AULVHAUMUNUOUP $.

  $( Lemma for ~ rankr1c .  (Contributed by NM, 6-Oct-2003.)  (Revised by Mario
     Carneiro, 17-Nov-2014.) $)
  rankr1clem $p |- ( ( A e. U. ( R1 " On ) /\ B e. dom R1 ) ->
                  ( -. A e. ( R1 ` B ) <-> B C_ ( rank ` A ) ) ) $=
    ( cr1 con0 cima cuni wcel cdm wa cfv wn crnk rankr1ag notbid word wlim wfun
    wss wb r1funlim simpri limord ordelon adantl rankon ontri1 sylancl bitr4d
    ax-mp mpan ) ACDEFGZBCHZGZIZABCJGZKALJZBGZKZBUPRZUNUOUQABMNUNBDGZUPDGUSURSU
    MUTUKULOZUMUTULPZVACQVBTUAULUBUIULBUCUJUDAUEBUPUFUGUH $.

  $( A relationship between the rank function and the cumulative hierarchy of
     sets function ` R1 ` .  Proposition 9.15(2) of [TakeutiZaring] p. 79.
     (Contributed by Mario Carneiro, 22-Mar-2013.)  (Revised by Mario Carneiro,
     17-Nov-2014.) $)
  rankr1c $p |- ( A e. U. ( R1 " On ) -> ( B = ( rank ` A ) <->
               ( -. A e. ( R1 ` B ) /\ A e. ( R1 ` suc B ) ) ) ) $=
    ( cr1 con0 cima cuni wcel cdm crnk cfv wceq wn csuc wa wi a1i wb adantl wss
    ax-mp id rankdmr1 syl6eqel elfvdm wlim wfun simpri limsuc sylibr rankr1clem
    r1funlim rankr1ag sylan2b rankon word limord ordelon onsssuc sylancr bitr4d
    mpan anbi12d eqss syl6rbbr ex pm5.21ndd ) ACDEFGZBCHZGZBAIJZKZABCJGLZABMZCJ
    GZNZVKVIOVGVKBVJVHVKUAAUBUCPVOVIOVGVNVIVLVNVMVHGZVIAVMCUDVHUEZVIVPQCUFVQUKU
    GZVHBUHTZUIRPVGVIVKVOQVGVINZVOBVJSZVJBSZNVKVTVLWAVNWBABUJVTVNVJVMGZWBVIVGVP
    VNWCQVSAVMULUMVTVJDGBDGZWBWCQAUNVIWDVGVHUOZVIWDVQWEVRVHUPTVHBUQVARVJBURUSUT
    VBBVJVCVDVEVF $.

  $( A relationship between the rank function and the cumulative hierarchy of
     sets function ` R1 ` .  (Contributed by Mario Carneiro, 17-Nov-2014.) $)
  rankidn $p |- ( A e. U. ( R1 " On ) -> -. A e. ( R1 ` ( rank ` A ) ) ) $=
    ( cr1 con0 cima cuni wcel crnk cfv wn csuc wceq eqid rankr1c mpbii simpld
    wa ) ABCDEFZAAGHZBHFIZARJBHFZQRRKSTPRLARMNO $.

  $( The rank of a power set.  Part of Exercise 30 of [Enderton] p. 207.
     (Contributed by Mario Carneiro, 3-Jun-2013.) $)
  rankpwi $p |- ( A e. U. ( R1 " On ) ->
      ( rank ` ~P A ) = suc ( rank ` A ) ) $=
    ( cr1 con0 cima cuni wcel crnk cfv csuc cpw wceq rankidn rankon r1suc ax-mp
    wn eleq2i wss elpwi pwidg ssel syl2imc mtod r1rankidb sspwb sylib syl6sseqr
    syl5bi fvex elpw2 sylibr onsuci syl6eleqr wa wb pwwf sylbi mpbir2and eqcomd
    rankr1c ) ABCDEZFZAGHZIZAJZGHZVBVDVFKZVEVDBHZFZPZVEVDIBHZFZVBVIAVCBHZFZALVI
    VEVMJZFZVBVNVHVOVEVCCFVHVOKAMZVCNOZQVPVEVMRVBAVEFVNVEVMSAVATVEVMAUAUBUHUCVB
    VEVHJZVKVBVEVHRVEVSFVBVEVOVHVBAVMRVEVORAUDAVMUEUFVRUGVEVHVDBUIUJUKVDCFVKVSK
    VCVQULVDNOUMVBVEVAFVGVJVLUNUOAUPVEVDUTUQURUS $.

  $( The membership relation is inherited by the rank function.  Proposition
     9.16 of [TakeutiZaring] p. 79.  (Contributed by NM, 4-Oct-2003.)  (Revised
     by Mario Carneiro, 17-Nov-2014.) $)
  rankelb $p |- ( B e. U. ( R1 " On ) -> ( A e. B ->
        ( rank ` A ) e. ( rank ` B ) ) ) $=
    ( cr1 con0 cima cuni wcel crnk cfv wa wn r1elssi sseld rankidn syl6 imp wss
    rankon mp2an rankdmr1 ontri1 cdm r1ord3g r1rankidb sselda ssel syl5com syl5
    wb wi syl5bir mt3d ex ) BCDEFZGZABGZAHIZBHIZGZUOUPJZUSAUQCIZGZUOUPVBKZUOUPA
    UNGVCUOBUNABLMANOPUSKZURUQQZUTVBURDGUQDGVEVDUIBRARURUQUASVEURCIZVAQZUTVBURC
    UBZGUQVHGVEVGUJBTATURUQUCSUTAVFGVGVBUOBVFABUDUEVFVAAUFUGUHUKULUM $.

  $( A well-founded set is not a member of itself.  This proof does not require
     the axiom of regularity, unlike ~ elirr .  (Contributed by Mario Carneiro,
     2-Jan-2017.) $)
  wfelirr $p |- ( A e. U. ( R1 " On ) -> -. A e. A ) $=
    ( cr1 con0 cima cuni wcel crnk cfv rankon onirri rankelb mtoi ) ABCDEFAAFAG
    HZMFMAIJAAKL $.

  ${
    $d x y A $.
    $( The value of the rank function expressed recursively: the rank of a set
       is the smallest ordinal number containing the ranks of all members of
       the set.  Proposition 9.17 of [TakeutiZaring] p. 79.  (Contributed by
       Mario Carneiro, 17-Nov-2014.) $)
    rankval3b $p |- ( A e. U. ( R1 " On ) ->
          ( rank ` A ) = |^| { x e. On | A. y e. A ( rank ` y ) e. x } ) $=
      ( cr1 con0 cima wcel crnk cfv cv wral cint wa wss wi wn wb syl2anc sylibr
      ex cab wal rankon simprl ontri1 sylancr con2bid cdm r1elssi adantr sselda
      cuni crab rankdmr1 wlim word r1funlim simpri limord ordtr1 mpan2 ad2antlr
      wfun rankr1ag ralbidva biimpar an32s dfss3 simpll adantl rankr1bg adantrl
      mp2b mpbid sylbird pm2.18d alrimiv ssintab df-rab inteqi rankelb ralrimiv
      syl6sseqr wceq eleq2 ralbidv onintss mpsyl eqssd ) CDEFULZGZCHIZBJZHIZAJZ
      GZBCKZAEUMZLZWKWLWOEGZWQMZAUAZLZWSWKXAWLWONZOZAUBWLXCNWKXEAWKXAXDWKXAMZXD
      XFXDPWOWLGZXDXFXDXGXFWLEGZWTXDXGPQCUCZWKWTWQUDWLWOUEUFUGWKWQXGXDOWTWKWQMZ
      XGXDXJXGMZCWODIZNZXDXKWMXLGZBCKZXMWKXGWQXOWKXGMZXOWQXPXNWPBCXPWMCGZMWMWJG
      WODUHZGZXNWPQXPCWJWMWKCWJNXGCUIUJUKXGXSWKXQXGWLXRGZXSCUNXRUOZXRUPXGXTMXSO
      DVCYAUQURXRUSWOWLXRUTVMVAZVBWMWOVDRVEVFVGBCXLVHSXKWKXSXMXDQWKWQXGVIXGXSXJ
      YBVJCWOVKRVNTVLVOVPTVQXAAWLVRSWRXBWQAEVSVTWCXHWKWNWLGZBCKZWSWLNXIWKYCBCWM
      CWAWBWQYDAWLWOWLWDWPYCBCWOWLWNWEWFWGWHWI $.

    $( The rank of a singleton.  Theorem 15.17(v) of [Monk1] p. 112.
       (Contributed by Mario Carneiro, 10-Jun-2013.) $)
    ranksnb $p |- ( A e. U. ( R1 " On ) ->
        ( rank ` { A } ) = suc ( rank ` A ) ) $=
      ( vy vx cr1 con0 cima cuni wcel cv crnk cfv csn wral crab cint csuc fveq2
      wceq eleq1d ralsng rabbidv inteqd snwf rankval3b syl rankon onsucmin mp1i
      3eqtr4d ) ADEFGZHZBIZJKZCIZHZBALZMZCENZOZAJKZUNHZCENZOZUPJKZUTPZUKURVBUKU
      QVACEUOVABAUJULARUMUTUNULAJQSTUAUBUKUPUJHVDUSRAUCCBUPUDUEUTEHVEVCRUKAUFCU
      TUGUHUI $.
  $}

  ${
    $d x y z A $.
    $( Lemma for ~ rankonid .  (Contributed by NM, 14-Oct-2003.)  (Revised by
       Mario Carneiro, 22-Mar-2013.) $)
    rankonidlem $p |- ( A e. dom R1 ->
        ( A e. U. ( R1 " On ) /\ ( rank ` A ) = A ) ) $=
      ( vx vy vz con0 wcel cr1 crnk cfv wceq wa ax-mp cv wi eleq1 wral syl csuc
      wb wss cima cuni word wlim wfun r1funlim simpri limord ordelon mpan fveq2
      cdm id eqeq12d anbi12d imbi12d ordtr1 ancoms ralbidva cpw simplr ad2antrr
      pm5.5 eloni ordelsuc syl2anc mpbid adantr limsuc sylib simpll r1ord3g mpd
      rankidb ad2antrl suceq ad2antll fveq2d eleqtrd sseldd ralimdva imp sylibr
      ex dfss3 vex elpw r1sucg eleqtrrd r1elwf crab cint rankval3b adantl ralbi
      ralimi syl6bbr rabbidv inteqd intmin 3eqtrd jca sylbid com12 tfis3 mpcom
      a1i ) AEFZAGULZFZAGEUAUBZFZAHIZAJZKZXIUCZXJXHXIUDZXPGUEXQUFUGZXIUHLZXIAUI
      UJBMZXIFZXTXKFZXTHIZXTJZKZNZCMZXIFZYGXKFZYGHIZYGJZKZNZXJXONBCAXTYGJZYAYHY
      EYLXTYGXIOYNYBYIYDYKXTYGXKOYNYCYJXTYGXTYGHUKYNUMUNUOUPXTAJZYAXJYEXOXTAXIO
      YOYBXLYDXNXTAXKOYOYCXMXTAXTAHUKYOUMUNUOUPYMCXTPZYFNXTEFZYAYPYEYAYPYLCXTPZ
      YEYAYMYLCXTYAYGXTFZKZYHYMYLSYSYAYHXPYSYAKYHNXSYGXTXIUQLURZYHYLVCQUSYAYRYE
      YAYRKZYBYDUUBXTXTRZGIZFYBUUBXTXTGIZUTZUUDUUBXTUUETZXTUUFFUUBYGUUEFZCXTPZU
      UGYAYRUUIYAYLUUHCXTYTYLUUHYTYLKZYGRZGIZUUEYGUUJUUKXTTZUULUUETZUUJYSUUMYAY
      SYLVAZUUJYSXTUCZYSUUMSUUOUUJYQUUPYAYQYSYLXPYAYQXSXIXTUIUJZVBXTVDQYGXTXTVE
      VFVGUUJUUKXIFZYAUUMUUNNUUJYHUURYTYHYLUUAVHXQYHUURSXRXIYGVILVJYAYSYLVKUUKX
      TVLVFVMUUJYGYJRZGIZUULYIYGUUTFYTYKYGVNVOUUJUUSUUKGYKUUSUUKJYTYIYJYGVPVQVR
      VSVTWDWAWBCXTUUEWEWCXTUUEBWFWGWCYAUUDUUFJYRXTWHVHWIXTUUCWJQZUUBYCYJDMZFZC
      XTPZDEWKZWLZXTUVBTZDEWKZWLZXTUUBYBYCUVFJUVADCXTWMQYRUVFUVIJYAYRUVEUVHYRUV
      DUVGDEYRUVDYGUVBFZCXTPZUVGYRUVCUVJSZCXTPUVDUVKSYLUVLCXTYKUVLYIYJYGUVBOWNW
      PUVCUVJCXTWOQCXTUVBWEWQWRWSWNUUBYQUVIXTJYAYQYRUUQVHDXTEWTQXAXBWDXCXDXGXEX
      F $.
  $}

  $( The rank of an ordinal number is itself.  Proposition 9.18 of
     [TakeutiZaring] p. 79 and its converse.  (Contributed by NM, 14-Oct-2003.)
     (Revised by Mario Carneiro, 17-Nov-2014.) $)
  rankonid $p |- ( A e. dom R1 <-> ( rank ` A ) = A ) $=
    ( cr1 cdm wcel crnk cfv wceq con0 cima cuni rankonidlem simprd id syl6eqelr
    rankdmr1 impbii ) ABCZDZAEFZAGZRABHIJDTAKLTASQTMAONP $.

  $( The ordinals are all well-founded.  (Contributed by Mario Carneiro,
     22-Mar-2013.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
  onwf $p |- On C_ U. ( R1 " On ) $=
    ( vx con0 cr1 cdm cima cuni wceq r1fnon fndm ax-mp cv wcel crnk rankonidlem
    wfn cfv simpld ssriv eqsstr3i ) BCDZCBEFZCBOTBGHBCIJATUAAKZTLUBUALUBMPUBGUB
    NQRS $.

  ${
    $d A x $.
    $( Initial segments of the ordinals are contained in initial segments of
       the cumulative hierarchy.  (Contributed by FL, 20-Apr-2011.)  (Revised
       by Mario Carneiro, 17-Nov-2014.) $)
    onssr1 $p |- ( A e. dom R1 -> A C_ ( R1 ` A ) ) $=
      ( vx cr1 cdm wcel cfv cv crnk con0 cima cuni wceq wlim word wfun r1funlim
      wa wi simpri limord ordtr1 ancoms rankonidlem syl simprd simpr eqeltrd wb
      mp2b simpld simpl rankr1ag syl2anc mpbird ex ssrdv ) ACDZEZBAACFZURBGZAEZ
      UTUSEZURVAQZVBUTHFZAEZVCVDUTAVCUTCIJKEZVDUTLZVCUTUQEZVFVGQVAURVHUQMZUQNVA
      URQVHRCOVIPSUQTUTAUQUAUIUBUTUCUDZUEURVAUFUGVCVFURVBVEUHVCVFVGVJUJURVAUKUT
      AULUMUNUOUP $.
  $}

  $( A relationship between the rank function and the cumulative hierarchy of
     sets function ` R1 ` .  Proposition 9.15(2) of [TakeutiZaring] p. 79.
     (Contributed by NM, 6-Oct-2003.)  (Revised by Mario Carneiro,
     17-Nov-2014.) $)
  rankr1g $p |- ( A e. V -> ( B = ( rank ` A ) <->
               ( -. A e. ( R1 ` B ) /\ A e. ( R1 ` suc B ) ) ) ) $=
    ( wcel cr1 con0 cima cuni crnk cfv wceq wn csuc wa cvv elex unir1 syl6eleqr
    wb rankr1c syl ) ACDZAEFGHZDBAIJKABEJDLABMEJDNSUBAOUCACPQRABTUA $.

  ${
    rankid.1 $e |- A e. _V $.
    $( Identity law for the rank function.  (Contributed by NM, 3-Oct-2003.)
       (Revised by Mario Carneiro, 17-Nov-2014.) $)
    rankid $p |- A e. ( R1 ` suc ( rank ` A ) ) $=
      ( cr1 con0 cima cuni wcel crnk cfv csuc cvv unir1 eleqtrri rankidb ax-mp
      ) ACDEFZGAAHIJCIGAKPBLMANO $.

    $( A relationship between the rank function and the cumulative hierarchy of
       sets function ` R1 ` .  Proposition 9.15(2) of [TakeutiZaring] p. 79.
       (Contributed by NM, 6-Oct-2003.)  (Proof shortened by Mario Carneiro,
       17-Nov-2014.) $)
    rankr1 $p |- ( B = ( rank ` A ) <->
                 ( -. A e. ( R1 ` B ) /\ A e. ( R1 ` suc B ) ) ) $=
      ( cvv wcel crnk cfv wceq cr1 wn csuc wa wb rankr1g ax-mp ) ADEBAFGHABIGEJ
      ABKIGELMCABDNO $.

    $( A relationship between an ordinal number less than or equal to a rank,
       and the cumulative hierarchy of sets ` R1 ` .  Proposition 9.15(3) of
       [TakeutiZaring] p. 79.  (Contributed by NM, 8-Oct-2003.)  (Revised by
       Mario Carneiro, 17-Nov-2014.) $)
    ssrankr1 $p |- ( B e. On ->
                   ( B C_ ( rank ` A ) <-> -. A e. ( R1 ` B ) ) ) $=
      ( con0 wcel cr1 cfv wn crnk wss cima cuni cdm cvv unir1 eleqtrri wfn wceq
      wb r1fnon fndm ax-mp eleq2i biimpri rankr1clem sylancr bicomd ) BDEZABFGE
      HZBAIGJZUHAFDKLZEBFMZEZUIUJSANUKCOPUMUHULDBFDQULDRTDFUAUBUCUDABUEUFUG $.

    $( A relationship between rank and ` R1 ` , clearly equivalent to
       ~ ssrankr1 and friends through trichotomy, but in Raph's opinion
       considerably more intuitive.  See ~ rankr1b for the subset version.
       (Contributed by Raph Levien, 29-May-2004.) $)
    rankr1a $p |- ( B e. On -> ( A e. ( R1 ` B ) <-> ( rank ` A ) e. B ) ) $=
      ( con0 wcel cr1 cfv wss wn ssrankr1 wb rankon ontri1 mpan2 bitr3d con4bid
      crnk ) BDEZABFGEZAQGZBEZRBTHZSIUAIZABCJRTDEUBUCKALBTMNOP $.
  $}

  ${
    $d x y A $.
    $( The value of the cumulative hierarchy of sets function expressed in
       terms of rank.  Definition 15.19 of [Monk1] p. 113.  (Contributed by NM,
       30-Nov-2003.) $)
    r1val2 $p |- ( A e. On -> ( R1 ` A ) = { x | ( rank ` x ) e. A } ) $=
      ( con0 wcel cv crnk cfv cr1 vex rankr1a abbi2dv ) BCDAEZFGBDABHGLBAIJK $.

    $( The value of the cumulative hierarchy of sets function expressed in
       terms of rank.  Theorem 15.18 of [Monk1] p. 113.  (Contributed by NM,
       30-Nov-2003.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
    r1val3 $p |- ( A e. On ->
                 ( R1 ` A ) = U_ x e. A ~P { y | ( rank ` y ) e. x } ) $=
      ( con0 wcel cr1 cfv cv cpw ciun crnk cab cdm wceq wfn r1fnon ax-mp eleq2i
      fndm r1val1 sylbir wa onelon r1val2 syl pweqd iuneq2dv eqtrd ) CDEZCFGZAC
      AHZFGZIZJZACBHKGUKEBLZIZJUICFMZEUJUNNUQDCFDOUQDNPDFSQRACTUAUIACUMUPUIUKCE
      UBZULUOURUKDEULUONCUKUCBUKUDUEUFUGUH $.
  $}

  ${
    rankel.1 $e |- B e. _V $.
    $( The membership relation is inherited by the rank function.  Proposition
       9.16 of [TakeutiZaring] p. 79.  (Contributed by NM, 4-Oct-2003.)
       (Revised by Mario Carneiro, 17-Nov-2014.) $)
    rankel $p |- ( A e. B -> ( rank ` A ) e. ( rank ` B ) ) $=
      ( cr1 con0 cima cuni wcel crnk cfv wi cvv unir1 eleqtrri rankelb ax-mp )
      BDEFGZHABHAIJBIJHKBLQCMNABOP $.
  $}

  ${
    $d x y A $.
    rankval3.1 $e |- A e. _V $.
    $( The value of the rank function expressed recursively: the rank of a set
       is the smallest ordinal number containing the ranks of all members of
       the set.  Proposition 9.17 of [TakeutiZaring] p. 79.  (Contributed by
       NM, 11-Oct-2003.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
    rankval3 $p |- ( rank ` A ) =
                  |^| { x e. On | A. y e. A ( rank ` y ) e. x } $=
      ( cr1 con0 cima cuni wcel crnk cfv wral crab cint wceq cvv unir1 eleqtrri
      cv rankval3b ax-mp ) CEFGHZICJKBSJKASIBCLAFMNOCPUBDQRABCTUA $.
  $}

  ${
    $d x y A $.
    $( Any class whose elements have bounded rank is a set.  Proposition 9.19
       of [TakeutiZaring] p. 80.  (Contributed by NM, 13-Oct-2003.) $)
    bndrank $p |- ( E. x e. On A. y e. A ( rank ` y ) C_ x -> A e. _V ) $=
      ( cv crnk cfv wss wral cvv wcel con0 csuc cr1 word wb rankon onordi eloni
      ordsucsssuc sylancr onsuci suceloni r1ord3 sylbid vex rankid ssel syl6mpi
      wi ralimdv dfss3 fvex ssex sylbir syl6 rexlimiv ) BDZEFZADZGZBCHZCIJZAKUS
      KJZVAUQUSLZMFZJZBCHZVBVCUTVFBCVCUTURLZMFZVEGZUQVIJVFVCUTVHVDGZVJVCURNUSNU
      TVKOURUQPZQUSRURUSSTVCVHKJVDKJVKVJUIURVLUAUSUBVHVDUCTUDUQBUEUFVIVEUQUGUHU
      JVGCVEGVBBCVEUKCVEVDMULUMUNUOUP $.

    $( The elements of a proper class have unbounded rank.  Exercise 2 of
       [TakeutiZaring] p. 80.  (Contributed by NM, 13-Oct-2003.) $)
    unbndrank $p |- ( -. A e. _V -> A. x e. On E. y e. A x e. ( rank ` y ) ) $=
      ( cv crnk cfv wcel wrex con0 wral cvv wn wss wb rankon ontri1 mpan ralnex
      ralbidv syl6bb rexbiia rexnal bitri bndrank sylbir con1i ) ADZBDZEFZGZBCH
      ZAIJZCKGZULLZUIUGMZBCJZAIHZUMUQUKLZAIHUNUPURAIUGIGZUPUJLZBCJURUSUOUTBCUII
      GUSUOUTNUHOUIUGPQSUJBCRTUAUKAIUBUCABCUDUEUF $.
  $}

  ${
    rankpw.1 $e |- A e. _V $.
    $( The rank of a power set.  Part of Exercise 30 of [Enderton] p. 207.
       (Contributed by NM, 22-Nov-2003.)  (Revised by Mario Carneiro,
       17-Nov-2014.) $)
    rankpw $p |- ( rank ` ~P A ) = suc ( rank ` A ) $=
      ( cr1 con0 cima cuni wcel cpw crnk cfv csuc wceq cvv unir1 eleqtrri ax-mp
      rankpwi ) ACDEFZGAHIJAIJKLAMRBNOAQP $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The rank of a set belongs to a limit ordinal iff the rank of its power
       set does.  (Contributed by NM, 18-Sep-2006.) $)
    ranklim $p |- ( Lim B ->
                  ( ( rank ` A ) e. B <-> ( rank ` ~P A ) e. B ) ) $=
      ( vx cvv wcel wlim crnk cfv cpw wb wa csuc limsuc adantl cv eleq1d adantr
      wceq c0 fvprc pweq fveq2d fveq2 suceq syl eqeq12d rankpw vtoclg bitr4d wn
      vex pwexb sylnbi eqtr4d pm2.61ian ) ADEZBFZAGHZBEZAIZGHZBEZJZUPUQKUSURLZB
      EZVBUQUSVEJUPBURMNUPVBVEJUQUPVAVDBCOZIZGHZVFGHZLZRVAVDRCADVFARZVHVAVJVDVK
      VGUTGVFAUAUBVKVIURRVJVDRVFAGUCVIURUDUEUFVFCUKUGUHPQUIUPUJZVCUQVLURVABVLUR
      SVAAGTUPUTDEVASRAULUTGTUMUNPQUO $.

    $( A stronger property of ` R1 ` than ~ rankpw .  The latter merely proves
       that ` R1 ` of the successor is a power set, but here we prove that if
       ` A ` is in the cumulative hierarchy, then ` ~P A ` is in the cumulative
       hierarchy of the successor.  (Contributed by Raph Levien, 29-May-2004.)
       (Revised by Mario Carneiro, 17-Nov-2014.) $)
    r1pw $p |- ( B e. On ->
                 ( A e. ( R1 ` B ) <-> ~P A e. ( R1 ` suc B ) ) ) $=
      ( cr1 con0 cima cuni wcel cfv cpw csuc wb wi wa crnk rankpwi syl rankr1ag
      r1elwf wss cvv eleq1d word eloni ordsucelsuc bicomd sylan9bb cdm suceloni
      pwwf biimpi wfn wceq r1fnon fndm ax-mp syl6eleqr syl2an sylan2br 3bitr4rd
      eleq2i ex wn r1elssi ssid pwexr elpwg mpbiri sseldd pm5.21ni a1d pm2.61i
      ) ACDEFZGZBDGZABCHGZAIZBJZCHZGZKZLVMVNVTVMVNMVPNHZVQGZANHZBGZVSVOVMWBWCJZ
      VQGZVNWDVMWAWEVQAOUAVNWDWFVNBUBWDWFKBUCWCBUDPUEUFVMVPVLGZVQCUGZGVSWBKVNVM
      WGAUIUJVNVQDWHBUHCDUKWHDULUMDCUNUOZUPVPVQQUQVNVMBWHGVOWDKWHDBWIUTABQURUSV
      AVMVBVTVNVOVMVSABRVSVPVLAVSWGVPVLSVPVQRVPVCPVSAVPGZAASZAVDVSATGWJWKKAVRVE
      AATVFPVGVHVIVJVK $.

    $( Alternate shorter proof of ~ r1pw based on the additional axioms
       ~ ax-reg and ~ ax-inf2 .  (Contributed by Raph Levien, 29-May-2004.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    r1pwALT $p |- ( B e. On ->
                 ( A e. ( R1 ` B ) <-> ~P A e. ( R1 ` suc B ) ) ) $=
      ( vx cvv wcel con0 cr1 cfv cpw csuc wb wi cv wceq eleq1 pweq crnk rankr1a
      syl elex eleq1d bibi12d imbi2d word eloni ordsucelsuc bitrd rankpw eleq1i
      vex syl6bbr suceloni pwex bitr4d vtoclg pwexb sylibr pm5.21ni a1d pm2.61i
      wn ) ADEZBFEZABGHZEZAIZBJZGHZEZKZLZVCCMZVDEZVLIZVHEZKZLVKCADVLANZVPVJVCVQ
      VMVEVOVIVLAVDOVQVNVFVHVLAPUAUBUCVCVMVNQHZVGEZVOVCVMVLQHZJZVGEZVSVCVMVTBEZ
      WBVLBCUJZRVCBUDWCWBKBUEVTBUFSUGVRWAVGVLWDUHUIUKVCVGFEVOVSKBULVNVGVLWDUMRS
      UNUOVBVAVJVCVEVBVIAVDTVIVFDEVBVFVHTAUPUQURUSUT $.
  $}

  $( The cumulative hierarchy of a limit ordinal is closed under power set.
     (Contributed by Raph Levien, 29-May-2004.)  (Proof shortened by Mario
     Carneiro, 17-Nov-2014.) $)
  r1pwcl $p |- ( Lim B -> ( A e. ( R1 ` B ) <-> ~P A e. ( R1 ` B ) ) ) $=
    ( wlim cr1 con0 cima cuni wcel cdm wa cfv wi r1elwf elfvdm jca a1i rankr1ag
    wb crnk adantl cpw pwwf sylibr limsuc adantr rankpwi ad2antrl eleq1d bitr4d
    csuc wceq sylanb 3bitr4d ex pm5.21ndd ) BCZADEFGZHZBDIHZJZABDKZHZAUAZVAHZVB
    UTLUPVBURUSABMABDNOPVDUTLUPVDURUSVDVCUQHZURVCBMAUBZUCVCBDNOPUPUTVBVDRUPUTJZ
    ASKZBHZVCSKZBHZVBVDVGVIVHUJZBHZVKUPVIVMRUTBVHUDUEVGVJVLBURVJVLUKUPUSAUFUGUH
    UIUTVBVIRUPABQTUTVDVKRZUPURVEUSVNVFVCBQULTUMUNUO $.

  $( The subset relation is inherited by the rank function.  Exercise 1 of
     [TakeutiZaring] p. 80.  (Contributed by NM, 25-Nov-2003.)  (Revised by
     Mario Carneiro, 17-Nov-2014.) $)
  rankssb $p |- ( B e. U. ( R1 " On ) ->
      ( A C_ B -> ( rank ` A ) C_ ( rank ` B ) ) ) $=
    ( cr1 con0 cima cuni wcel wss crnk cfv wa simpr r1rankidb adantr sstrd sswf
    cdm wb rankdmr1 rankr1bg sylancl mpbid ex ) BCDEFZGZABHZAIJBIJZHZUEUFKZAUGC
    JZHZUHUIABUJUEUFLUEBUJHUFBMNOUIAUDGUGCQGUKUHRBAPBSAUGTUAUBUC $.

  ${
    rankss.1 $e |- B e. _V $.
    $( The subset relation is inherited by the rank function.  Exercise 1 of
       [TakeutiZaring] p. 80.  (Contributed by NM, 25-Nov-2003.)  (Revised by
       Mario Carneiro, 17-Nov-2014.) $)
    rankss $p |- ( A C_ B -> ( rank ` A ) C_ ( rank ` B ) ) $=
      ( cr1 con0 cima cuni wcel wss crnk cfv cvv unir1 eleqtrri rankssb ax-mp
      wi ) BDEFGZHABIAJKBJKIQBLRCMNABOP $.
  $}

  ${
    $d A x y z $.  $d B x y $.
    $( The rank of the union of two sets.  Theorem 15.17(iii) of [Monk1]
       p. 112.  (Contributed by Mario Carneiro, 10-Jun-2013.)  (Revised by
       Mario Carneiro, 17-Nov-2014.) $)
    rankunb $p |- ( ( A e. U. ( R1 " On ) /\ B e. U. ( R1 " On ) ) ->
        ( rank ` ( A u. B ) ) = ( ( rank ` A ) u. ( rank ` B ) ) ) $=
      ( vx vy con0 wcel cun crnk cfv cv wral wi wceq sylbi rankelb rankon eleq2
      syl6 wss rankssb cr1 cima cuni wa crab cint rankval3b eleq2d vex elintrab
      unwf syl6bb wo elun elun1 elun2 jaao syl5bi ralrimiv onun2i ralbidv rspcv
      imbi12d ax-mp syl5com sylbid ssrdv ssun1 mpi ssun2 unssd eqssd ) AUAEUBUC
      ZFZBVMFZUDZABGZHIZAHIZBHIZGZVPCVRWAVPCJZVRFZWBHIZDJZFZCVQKZWBWEFZLZDEKZWB
      WAFZVPWCWBWGDEUEUFZFWJVPVRWLWBVPVQVMFZVRWLMABUKZDCVQUGNUHWGDWBECUIUJULVPW
      DWAFZCVQKZWJWKVPWOCVQWBVQFWBAFZWBBFZUMVPWOWBABUNVNWQWOVOWRVNWQWDVSFWOWBAO
      WDVSVTUORVOWRWDVTFWOWBBOWDVTVSUPRUQURUSWAEFWJWPWKLZLVSVTAPBPUTWIWSDWAEWEW
      AMZWGWPWHWKWTWFWOCVQWEWAWDQVAWEWAWBQVCVBVDVEVFVGVPWMWAVRSWNWMVSVTVRWMAVQS
      VSVRSABVHAVQTVIWMBVQSVTVRSBAVJBVQTVIVKNVL $.

    $( The rank of an unordered pair.  Part of Exercise 30 of [Enderton]
       p. 207.  (Contributed by Mario Carneiro, 10-Jun-2013.) $)
    rankprb $p |- ( ( A e. U. ( R1 " On ) /\ B e. U. ( R1 " On ) ) ->
        ( rank ` { A , B } ) = suc ( ( rank ` A ) u. ( rank ` B ) ) ) $=
      ( cr1 con0 cima cuni wcel wa csn cun crnk cfv csuc wceq snwf ranksnb word
      syl2an rankon onordi cpr rankunb uneq12 eqtrd df-pr fveq2i ordsucun mp2an
      3eqtr4g ) ACDEFZGZBUJGZHZAIZBIZJZKLZAKLZMZBKLZMZJZABUAZKLURUTJMZUMUQUNKLZ
      UOKLZJZVBUKUNUJGUOUJGUQVGNULAOBOUNUOUBRUKVEUSNVFVANVGVBNULAPBPVEUSVFVAUCR
      UDVCUPKABUEUFURQUTQVDVBNURASTUTBSTURUTUGUHUI $.

    $( The rank of an ordered pair.  Part of Exercise 4 of [Kunen] p. 107.
       (Contributed by Mario Carneiro, 10-Jun-2013.) $)
    rankopb $p |- ( ( A e. U. ( R1 " On ) /\ B e. U. ( R1 " On ) ) ->
        ( rank ` <. A , B >. ) = suc suc ( ( rank ` A ) u. ( rank ` B ) ) ) $=
      ( cr1 con0 cima cuni wcel cop crnk cfv csn cpr cun csuc dfopg fveq2d wceq
      wa rankprb syl2anc snwf adantr wss snsspr1 ssequn1 fveq2i rankunb 3eqtr3a
      prwf mpbi suceq syl 3eqtrd ) ACDEFZGZBUNGZRZABHZIJAKZABLZLZIJZUSIJUTIJZMZ
      NZAIJBIJMNZNZUQURVAIABUNUNOPUQUSUNGZUTUNGZVBVEQUOVHUPAUAUBZABUIZUSUTSTUQV
      DVFQVEVGQUQUSUTMZIJZVCVDVFVLUTIUSUTUCVLUTQABUDUSUTUEUJUFUQVHVIVMVDQVJVKUS
      UTUGTABSUHVDVFUKULUM $.

    $( The value of the rank function expressed recursively: the rank of a set
       is the smallest ordinal number containing the ranks of all members of
       the set.  Proposition 9.17 of [TakeutiZaring] p. 79.  (Contributed by
       Mario Carneiro, 8-Jun-2013.) $)
    rankuni2b $p |- ( A e. U. ( R1 " On ) ->
          ( rank ` U. A ) = U_ x e. A ( rank ` x ) ) $=
      ( vy vz cr1 con0 cima cuni wcel crnk cfv cv ciun wral wss cvv wi ralrimiv
      wceq sseld crab cint uniwf rankval3b sylbi iuneq1 eleq1d vex rankon rgenw
      iunon mp2an vtoclg wrex eluni2 nfv nfiu1 nfel2 r1elssi rankelb ssiun2 a1i
      syl6 syldd rexlimd syl5bi eleq2 ralbidv elrab sylanbrc intss1 syl eqsstrd
      biimpi elssuni rankssb syl2im iunss sylibr eqssd ) BEFGHZIZBHZJKZABALZJKZ
      MZWBWDCLZJKZDLZIZCWCNZDFUAZUBZWGWBWCWAIZWDWNSBUCZDCWCUDUEWBWGWMIZWNWGOWBW
      GFIZWIWGIZCWCNZWQAWHWFMZFIZWRCBWAWHBSXAWGFAWHBWFUFUGWHPIWFFIZAWHNXBCUHXCA
      WHWEUIUJAWHWFPUKULUMWBWSCWCWHWCIWHWEIZABUNWBWSAWHBUOWBXDWSABWBAUPAWIWGABW
      FUQURWBWEBIZXDWIWFIZWSWBXEWEWAIXDXFQWBBWAWEBUSTWHWEUTVCXEXFWSQQWBXEWFWGWI
      ABWFVATVBVDVEVFRWLWTDWGFWJWGSWKWSCWCWJWGWIVGVHVIVJWGWMVKVLVMWBWFWDOZABNWG
      WDOWBXGABWBWOXEWEWCOXGWBWOWPVNWEBVOWEWCVPVQRABWFWDVRVSVT $.
  $}

  ${
    $d x A $.
    ranksn.1 $e |- A e. _V $.
    $( The rank of a singleton.  Theorem 15.17(v) of [Monk1] p. 112.
       (Contributed by NM, 28-Nov-2003.)  (Revised by Mario Carneiro,
       17-Nov-2014.) $)
    ranksn $p |- ( rank ` { A } ) = suc ( rank ` A ) $=
      ( cr1 con0 cima cuni wcel csn crnk cfv csuc wceq cvv unir1 eleqtrri ax-mp
      ranksnb ) ACDEFZGAHIJAIJKLAMRBNOAQP $.

    $( The rank of a union.  Part of Theorem 15.17(iv) of [Monk1] p. 112.
       (Contributed by NM, 30-Nov-2003.)  (Revised by Mario Carneiro,
       17-Nov-2014.) $)
    rankuni2 $p |- ( rank ` U. A ) = U_ x e. A ( rank ` x ) $=
      ( cr1 con0 cima cuni wcel crnk cfv ciun wceq cvv unir1 eleqtrri rankuni2b
      cv ax-mp ) BDEFGZHBGIJABAQIJKLBMSCNOABPR $.

    rankun.2 $e |- B e. _V $.
    $( The rank of the union of two sets.  Theorem 15.17(iii) of [Monk1]
       p. 112.  (Contributed by NM, 26-Nov-2003.)  (Revised by Mario Carneiro,
       17-Nov-2014.) $)
    rankun $p |- ( rank ` ( A u. B ) ) = ( ( rank ` A ) u. ( rank ` B ) ) $=
      ( cr1 con0 cima cuni wcel cun crnk cfv wceq unir1 eleqtrri rankunb mp2an
      cvv ) AEFGHZIBSIABJKLAKLBKLJMARSCNOBRSDNOABPQ $.

    $( The rank of an unordered pair.  Part of Exercise 30 of [Enderton]
       p. 207.  (Contributed by NM, 28-Nov-2003.)  (Revised by Mario Carneiro,
       17-Nov-2014.) $)
    rankpr $p |- ( rank ` { A , B } ) = suc ( ( rank ` A ) u. ( rank ` B ) ) $=
      ( cr1 con0 cima cuni wcel cpr crnk cfv cun csuc wceq cvv eleqtrri rankprb
      unir1 mp2an ) AEFGHZIBUAIABJKLAKLBKLMNOAPUACSQBPUADSQABRT $.

    $( The rank of an ordered pair.  Part of Exercise 4 of [Kunen] p. 107.
       (Contributed by NM, 13-Sep-2006.)  (Revised by Mario Carneiro,
       17-Nov-2014.) $)
    rankop $p |- ( rank ` <. A , B >. ) =
                 suc suc ( ( rank ` A ) u. ( rank ` B ) ) $=
      ( cr1 con0 cima cuni wcel cop crnk cfv cun csuc wceq cvv eleqtrri rankopb
      unir1 mp2an ) AEFGHZIBUAIABJKLAKLBKLMNNOAPUACSQBPUADSQABRT $.
  $}

  $( Any set is a subset of the hierarchy of its rank.  (Contributed by NM,
     14-Oct-2003.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
  r1rankid $p |- ( A e. V -> A C_ ( R1 ` ( rank ` A ) ) ) $=
    ( wcel cr1 con0 cima cuni crnk cfv wss cvv elex unir1 syl6eleqr r1rankidb
    syl ) ABCZADEFGZCAAHIDIJQAKRABLMNAOP $.

  $( A set is empty iff its rank is empty.  (Contributed by Mario Carneiro,
     17-Nov-2014.) $)
  rankeq0b $p |- ( A e. U. ( R1 " On ) ->
                   ( A = (/) <-> ( rank ` A ) = (/) ) ) $=
    ( cr1 con0 cima cuni wcel c0 wceq crnk cfv fveq2 cdm com wlim wfun r1funlim
    wss simpri limomss ax-mp peano1 sselii rankonid mpbi syl6eq wa eqimss simpl
    adantl wb rankr1bg sylancl mpbird r10 syl6sseq ss0 syl ex impbid2 ) ABCDEFZ
    AGHZAIJZGHZVAVBGIJZGAGIKGBLZFZVDGHMVEGVENZMVEQBOVGPRVESTUAUBZGUCUDUEUTVCVAU
    TVCUFZAGQVAVIAGBJZGVIAVJQZVBGQZVCVLUTVBGUGUIVIUTVFVKVLUJUTVCUHVHAGUKULUMUNU
    OAUPUQURUS $.

  ${
    rankeq0.1 $e |- A e. _V $.
    $( A set is empty iff its rank is empty.  (Contributed by NM, 18-Sep-2006.)
       (Revised by Mario Carneiro, 17-Nov-2014.) $)
    rankeq0 $p |- ( A = (/) <-> ( rank ` A ) = (/) ) $=
      ( cr1 con0 cima cuni wcel c0 wceq crnk cfv wb cvv unir1 eleqtrri rankeq0b
      ax-mp ) ACDEFZGAHIAJKHILAMRBNOAPQ $.
  $}

  ${
    $d x y z A $.
    $( The rank of the hierarchy of an ordinal number is itself.  (Contributed
       by NM, 14-Oct-2003.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
    rankr1id $p |- ( A e. dom R1 <-> ( rank ` ( R1 ` A ) ) = A ) $=
      ( cr1 cdm wcel cfv crnk wceq wss ssid con0 cima cuni csuc cpw fvex r1sucg
      wb pwid syl5eleqr r1elwf syl rankr1bg mpancom mpbii biimpi onssr1 rankssb
      rankonid sylc eqsstr3d eqssd id rankdmr1 syl6eqelr impbii ) ABCZDZABEZFEZ
      AGZUQUSAUQURURHZUSAHZURIURBJKLDZUQVAVBQUQURAMZBEZDVCUQURURNVEURABORAPSURV
      DTUAZURAUBUCUDUQAAFEZUSUQVGAGAUHUEUQVCAURHVGUSHVFAUFAURUGUIUJUKUTAUSUPUTU
      LURUMUNUO $.

    $( The rank of a union.  Part of Exercise 4 of [Kunen] p. 107.
       (Contributed by NM, 15-Sep-2006.)  (Revised by Mario Carneiro,
       17-Nov-2014.) $)
    rankuni $p |- ( rank ` U. A ) = U. ( rank ` A ) $=
      ( vx vy vz cvv wcel cuni crnk cfv wceq cv fveq2 unieqd fvex wa wex rankon
      cr1 con0 c0 unieq fveq2d eqeq12d wrex cab ciun vex rankuni2 dfiun2 df-rex
      eqtri rankel anim1i eximi 19.42v eleq1 pm5.32ri exbii simpl cdm oneli wfn
      r1fnon fndm ax-mp syl6eleqr rankr1id sylib eqcomd eqeq2d spcev syl impbii
      ancli 3bitr3i sylbi abssi unissi eqsstri csuc cpw wss pwuni vuniex rankss
      pwex rankpw sseqtri onunisuci eqssi vtoclg wn uniexb fvprc sylnbi syl6eqr
      uni0 eqtr4d pm2.61i ) AEFZAGZHIZAHIZGZJZBKZGZHIZXFHIZGZJXEBAEXFAJZXHXBXJX
      DXKXGXAHXFAUAUBXKXIXCXFAHLMUCXHXJXHCKZDKZHIZJZDXFUDZCUEZGZXJXHDXFXNUFXRDX
      FBUGZUHDCXFXNXMHNUIUKXQXIXPCXIXPXMXFFZXOOZDPZXLXIFZXODXFUJYBXNXIFZXOOZDPZ
      YCYAYEDXTYDXOXMXFXSULUMUNYCXOOZDPYCXODPZOZYFYCYCXODUOYGYEDXOYCYDXLXNXIUPU
      QURYIYCYCYHUSYCYHYCXLXLRIZHIZJZYHYCYKXLYCXLRUTZFYKXLJYCXLSYMXIXLXFQVARSVB
      YMSJVCSRVDVEVFXLVGVHVIXOYLDYJXLRNXMYJJXNYKXLXMYJHLVJVKVLVNVMVOVHVPVQVRVSX
      JXHVTZGXHXIYNXIXGWAZHIZYNXFYOWBXIYPWBXFWCXFYOXGBWDZWFWEVEXGYQWGWHVRXHXGQW
      IWHWJWKWTWLZXBTGZXDYRXBTYSWTXAEFXBTJAWMXAHWNWOWQWPYRXCTAHWNMWRWS $.
  $}

  ${
    $d x y A $.  $d x B $.
    rankr1b.1 $e |- A e. _V $.
    $( A relationship between rank and ` R1 ` .  See ~ rankr1a for the
       membership version.  (Contributed by NM, 15-Sep-2006.)  (Revised by
       Mario Carneiro, 17-Nov-2014.) $)
    rankr1b $p |- ( B e. On ->
      ( A C_ ( R1 ` B ) <-> ( rank ` A ) C_ B ) ) $=
      ( con0 wcel cr1 cdm cfv wss crnk wb wfn wceq r1fnon fndm eleq2i cima cuni
      ax-mp cvv unir1 eleqtrri rankr1bg mpan sylbir ) BDEBFGZEZABFHIAJHBIKZUFDB
      FDLUFDMNDFOSPAFDQRZEUGUHATUICUAUBABUCUDUE $.

    $( The rank of a successor.  (Contributed by NM, 18-Sep-2006.) $)
    ranksuc $p |- ( rank ` suc A ) = suc ( rank ` A ) $=
      ( csuc crnk cfv csn cun df-suc fveq2i snex rankun ranksn wss wceq sssucid
      uneq2i ssequn1 mpbi eqtri ) ACZDEAAFZGZDEZADEZCZTUBDAHIUCUDUADEZGZUEAUABA
      JKUGUDUEGZUEUFUEUDABLPUDUEMUHUENUDOUDUEQRSSS $.

    $( Upper bound of the rank of a union.  Part of Exercise 30 of [Enderton]
       p. 207.  (Contributed by NM, 30-Nov-2003.) $)
    rankuniss $p |- ( rank ` U. A ) C_ ( rank ` A ) $=
      ( cuni crnk cfv rankuni word wss rankon onordi orduniss ax-mp eqsstri ) A
      CDEADEZCZNAFNGONHNAIJNKLM $.

    $( The rank of a set is the supremum of the successors of the ranks of its
       members.  Exercise 9.1 of [Jech] p. 72.  Also a special case of Theorem
       7V(b) of [Enderton] p. 204.  (Contributed by NM, 12-Oct-2003.) $)
    rankval4 $p |- ( rank ` A ) = U_ x e. A suc ( rank ` x ) $=
      ( vy crnk cfv cv cr1 wss wcel wi nfcv con0 rankon mp2an r1ord3 ax-mp crab
      cvv cint csuc ciun nfiu1 nffv dfss2f vex rankid ssiun2 onsuci rgenw iunon
      wral syl sseld mpgbir fvex rankss mpan ss2rabi intss wceq rankval2 intmin
      mpi eqcomi 3sstr4i sstri iunss rankel onsucssi sylib mprgbir eqssi ) BEFZ
      ABAGZEFZUAZUBZVNVRHFZEFZVRBVSIZVNVTIWAVOBJZVOVSJZKAABVSABLAVRHAHLABVQUCUD
      UEWBVOVQHFZJWCVOAUFUGWBWDVSVOWBVQVRIZWDVSIZABVQUHVQMJZVRMJZWEWFKVPVONZUIZ
      BSJWGABULWHCWGABWJUJABVQSUKOZVQVRPOUMUNVDUOBVSVRHUPZUQQVSDGZHFIZDMRZTZVRW
      MIZDMRZTZVTVRWRWOIWPWSIWQWNDMWHWMMJWQWNKWKVRWMPURUSWRWOUTQVSSJVTWPVAWLDVS
      SVBQWSVRWHWSVRVAWKDVRMVCQVEVFVGVRVNIVQVNIZABABVQVNVHWBVPVNJWTVOBCVIVPVNWI
      BNVJVKVLVM $.

    $( The rank of a set is bounded by a bound for the successor of its
       members.  (Contributed by NM, 18-Sep-2006.) $)
    rankbnd $p |- ( A. x e. A suc ( rank ` x ) C_ B <-> ( rank ` A ) C_ B ) $=
      ( crnk cfv wss cv csuc ciun wral rankval4 sseq1i iunss bitr2i ) BEFZCGABA
      HEFIZJZCGQCGABKPRCABDLMABQCNO $.

    $( The rank of a set is bounded by the successor of a bound for its
       members.  (Contributed by NM, 15-Sep-2006.) $)
    rankbnd2 $p |- ( B e. On -> ( A. x e. A ( rank ` x ) C_ B <->
                  ( rank ` A ) C_ suc B ) ) $=
      ( cv crnk cfv wss wral cuni con0 wcel csuc rankuni rankuni2 eqtr3i sseq1i
      ciun iunss bitr2i word wb rankon onssi eloni ordunisssuc sylancr syl5bb )
      AEFGZCHABIZBFGZJZCHZCKLZUKCMHZUMABUIRZCHUJULUPCBJFGULUPBNABDOPQABUICSTUNU
      KKHCUAUMUOUBUKBUCUDCUEUKCUFUGUH $.

    $( A relationship that can be used for computation of rank.  (Contributed
       by NM, 16-Sep-2006.) $)
    rankc1 $p |- ( A. x e. A ( rank ` x ) e. ( rank ` U. A ) <->
                 ( rank ` A ) = ( rank ` U. A ) ) $=
      ( crnk cfv cuni wa cv wcel wral wceq rankuniss biantru csuc ciun rankval4
      wss iunss sseq1i rankon onsucssi ralbii 3bitr4ri eqss 3bitr4i ) BDEZBFZDE
      ZQZUIUHUFQZGAHZDEZUHIZABJZUFUHKUJUIBCLMABULNZOZUHQUOUHQZABJUIUNABUOUHRUFU
      PUHABCPSUMUQABULUHUKTUGTUAUBUCUFUHUDUE $.

    $( A relationship that can be used for computation of rank.  (Contributed
       by NM, 16-Sep-2006.) $)
    rankc2 $p |- ( E. x e. A ( rank ` x ) = ( rank ` U. A ) ->
                 ( rank ` A ) = suc ( rank ` U. A ) ) $=
      ( cv crnk cfv cuni wceq wrex csuc wss cpw pwuni uniex rankss ax-mp rankpw
      pwex wcel rankon a1i rankel eleq1 syl5ibcom rexlimiv onsucssi sylib eqssd
      sseqtri ) ADZEFZBGZEFZHZABIZBEFZUMJZUPUQKUOUPULLZEFZUQBURKUPUSKBMBURULBCN
      ZROPULUTQUIUAUOUMUPSZUQUPKUNVAABUJBSUKUPSUNVAUJBCUBUKUMUPUCUDUEUMUPULTBTU
      FUGUH $.
  $}

  ${
    rankelun.1 $e |- A e. _V $.
    rankelun.2 $e |- B e. _V $.
    rankelun.3 $e |- C e. _V $.
    rankelun.4 $e |- D e. _V $.
    $( Rank membership is inherited by union.  (Contributed by NM,
       18-Sep-2006.)  (Proof shortened by Mario Carneiro, 17-Nov-2014.) $)
    rankelun $p |- ( ( ( rank ` A ) e. ( rank ` C ) /\ ( rank ` B ) e.
          ( rank ` D ) ) -> ( rank ` ( A u. B ) ) e. ( rank ` ( C u. D ) ) ) $=
      ( crnk cfv wcel wa cun word rankon onun2i onordi a1i elun1 rankun ordunel
      adantr elun2 adantl syl3anc 3eltr4g ) AIJZCIJZKZBIJZDIJZKZLZUGUJMZUHUKMZA
      BMIJCDMIJUMUONZUGUOKZUJUOKZUNUOKUPUMUOUHUKCODOPQRUIUQULUGUHUKSUBULURUIUJU
      KUHUCUDUOUGUJUAUEABEFTCDGHTUF $.

    $( Rank membership is inherited by unordered pairs.  (Contributed by NM,
       18-Sep-2006.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
    rankelpr $p |- ( ( ( rank ` A ) e. ( rank ` C ) /\ ( rank ` B ) e.
            ( rank ` D ) ) -> ( rank ` { A , B } ) e. ( rank ` { C , D } ) ) $=
      ( crnk cfv wcel wa cun csuc cpr rankelun rankun 3eltr3g rankon rankpr wb
      word onun2i onordi ordsucelsuc ax-mp sylib 3eltr4g ) AIJZCIJZKBIJZDIJZKLZ
      UIUKMZNZUJULMZNZABOIJCDOIJUMUNUPKZUOUQKZUMABMIJCDMIJUNUPABCDEFGHPABEFQCDG
      HQRUPUBURUSUAUPUJULCSDSUCUDUNUPUEUFUGABEFTCDGHTUH $.

    $( Rank membership is inherited by ordered pairs.  (Contributed by NM,
       18-Sep-2006.) $)
    rankelop $p |- ( ( ( rank ` A ) e. ( rank ` C ) /\ ( rank ` B ) e.
        ( rank ` D ) ) -> ( rank ` <. A , B >. ) e. ( rank ` <. C , D >. ) ) $=
      ( crnk cfv wcel cpr csuc cop ax-mp cun rankop wceq rankpr suceq wa rankon
      rankelpr word wb onordi ordsucelsuc sylib eqtr4i 3eltr4g ) AIJZCIJZKBIJZD
      IJZKUAZABLIJZMZCDLZIJZMZABNIJZCDNIJZUOUPUSKZUQUTKZABCDEFGHUCUSUDVCVDUEUSU
      RUBUFUPUSUGOUHVAUKUMPMZMZUQABEFQUPVERUQVFRABEFSUPVETOUIVBULUNPMZMZUTCDGHQ
      USVGRUTVHRCDGHSUSVGTOUIUJ $.
  $}

  ${
    rankxpl.1 $e |- A e. _V $.
    rankxpl.2 $e |- B e. _V $.
    $( A lower bound on the rank of a Cartesian product.  (Contributed by NM,
       18-Sep-2006.) $)
    rankxpl $p |- ( ( A X. B ) =/= (/) -> ( rank ` ( A u. B ) ) C_
                  ( rank ` ( A X. B ) ) ) $=
      ( cxp c0 wne cun crnk cfv cuni unixp xpex uniex rankuniss sstri syl6eqssr
      fveq2d ) ABEZFGZABHZIJSKZKZIJZSIJZTUCUAIABLRUDUBIJUEUBSABCDMZNOSUFOPQ $.

    $( An upper bound on the rank of a Cartesian product.  (Contributed by NM,
       18-Sep-2006.) $)
    rankxpu $p |- ( rank ` ( A X. B ) ) C_
                 suc suc ( rank ` ( A u. B ) ) $=
      ( cxp crnk cfv cun cpw csuc wss xpsspw unex pwex rankss ax-mp rankpw wceq
      suceq eqtri sseqtri ) ABEZFGZABHZIZIZFGZUDFGJZJZUBUFKUCUGKABLUBUFUEUDABCD
      MZNZNOPUGUEFGZJZUIUEUKQULUHRUMUIRUDUJQULUHSPTUA $.

    $( An upper bound on the rank of a function.  (Contributed by G&eacute;rard
       Lang, 5-Aug-2018.) $)
    rankfu $p |- ( F : A --> B
        -> ( rank ` F ) C_ suc suc ( rank ` ( A u. B ) ) ) $=
      ( wf cxp wss crnk cfv cun csuc fssxp xpex rankss rankxpu syl6ss syl ) ABC
      FCABGZHZCIJZABKIJLLZHABCMTUASIJUBCSABDENOABDEPQR $.

    $( An upper bound on the rank of set exponentiation.  (Contributed by
       G&eacute;rard Lang, 5-Aug-2018.) $)
    rankmapu $p |- ( rank ` ( A ^m B ) )
                  C_ suc suc suc ( rank ` ( A u. B ) ) $=
      ( cmap co crnk cfv cxp cpw cun csuc ax-mp wceq suceq rankon onordi onsuci
      wss word mapsspw xpex pwex rankss rankpw rankxpu uncom fveq2i ordsucsssuc
      sseqtri wb mp2an mpbi eqsstri sstri ) ABEFZGHZBAIZJZGHZABKZGHZLZLZLZUPUSS
      UQUTSABUAUPUSURBADCUBZUCUDMUTURGHZLZVEURVFUEVGVDSZVHVESZVGBAKZGHZLZLZVDBA
      DCUFVMVCNZVNVDNVLVBNVOVKVAGBAUGUHVLVBOMVMVCOMUJVGTVDTVIVJUKVGURPQVDVCVBVA
      PRRQVGVDUIULUMUNUO $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    rankxplim.1 $e |- A e. _V $.
    rankxplim.2 $e |- B e. _V $.
    $( The rank of a Cartesian product when the rank of the union of its
       arguments is a limit ordinal.  Part of Exercise 4 of [Kunen] p. 107.
       See ~ rankxpsuc for the successor case.  (Contributed by NM,
       19-Sep-2006.) $)
    rankxplim $p |- ( ( Lim ( rank ` ( A u. B ) ) /\ ( A X. B ) =/= (/) ) ->
                    ( rank ` ( A X. B ) ) = ( rank ` ( A u. B ) ) ) $=
      ( vx vy vz cun crnk cfv wa wss cv csuc wral wcel cpw cuni pwuni wceq wlim
      cxp c0 wne cop cpr uniop pweqi sseqtri unipr sspwb mpbi sstri unex rankss
      vex pwex ax-mp rankel rankelun syl2an adantl wb ranklim bitrd adantr con0
      mpbid wi rankon ontr2 mp2an sylancr onsucssi sylib ralrimivva fveq2 suceq
      syl sseq1d ralxp xpex rankbnd bitr3i rankxpl eqssd ) ABHZIJZUAZABUBZUCUDZ
      KWJIJZWHWIWLWHLZWKWIEMZFMZUEZIJZNZWHLZFBOEAOZWMWIWSEFABWIWNAPZWOBPZKZKZWQ
      WHPZWSXDWQWNWOHZQZQZIJZLZXIWHPZXEWPXHLXJWPWNWOUFZQZXHWPWPRZQXMWPSXNXLWNWO
      EUPZFUPZUGUHUIXLXGLXMXHLXLXLRZQXGXLSXQXFWNWOXOXPUJUHUIXLXGUKULUMWPXHXGXFW
      NWOXOXPUNUQUQUOURXDXFIJWHPZXKXCXRWIXAWNIJAIJPWOIJBIJPXRXBWNACUSWOBDUSWNWO
      ABXOXPCDUTVAVBWIXRXKVCXCWIXRXGIJWHPXKXFWHVDXGWHVDVEVFVHWQVGPWHVGPXJXKKXEV
      IWPVJZWGVJZWQXIWHVKVLVMWQWHXSXTVNVOVPWTGMZIJZNZWHLZGWJOWMYDWSGEFABYAWPTZY
      CWRWHYEYBWQTYCWRTYAWPIVQYBWQVRVSVTWAGWJWHABCDWBWCWDVOVFWKWHWLLWIABCDWEVBW
      F $.

    $( If the rank of a Cartesian product is a limit ordinal, so is the rank of
       the union of its arguments.  (Contributed by NM, 19-Sep-2006.) $)
    rankxplim2 $p |- ( Lim ( rank ` ( A X. B ) ) ->
                     Lim ( rank ` ( A u. B ) ) ) $=
      ( cxp wne crnk cfv wlim cun wceq wcel 0ellim n0i syl cuni limuni2 rankuni
      c0 wn df-ne rankeq0 notbii bitr2i sylib unieqi eqtr2i unixp fveq2d syl5eq
      xpex wb limeq syl5ib mpcom ) ABEZSFZUPGHZIZABJZGHZIZUSURSKZTZUQUSSURLVDUR
      MURSNOUQUPSKZTVDUPSUAVEVCUPABCDUKUBUCUDUEUSURPZPZIZUQVBUSVFIVHURQVFQOUQVG
      VAKVHVBULUQVGUPPZPZGHZVAVKVIGHZPVGVIRVLVFUPRUFUGUQVJUTGABUHUIUJVGVAUMOUNU
      O $.

    $( The rank of a Cartesian product is a limit ordinal iff its union is.
       (Contributed by NM, 19-Sep-2006.) $)
    rankxplim3 $p |- ( Lim ( rank ` ( A X. B ) ) <->
                     Lim U. ( rank ` ( A X. B ) ) ) $=
      ( vx vy crnk cfv cuni c0 wceq wn csuc con0 wrex wa wcel wss wb adantr cxp
      wlim limuni2 cun cv 0ellim n0i unieq uni0 syl6eq con3i 3syl rankon onsuci
      elexi sucid ontri1 mp2an con2bii mpbi rankxpu sstr mpan2 reeanv wi simprl
      mto simpr rankuni unieqi eqtri wne df-ne xpex rankeq0 notbii bitr2i sylib
      unixp syl fveq2d syl5reqr eqimss eqsstr3d adantrr limuni sseqtr4d cvv vex
      word onordi orduni ax-mp ordelsuc sylibr limsuc mpbid eqeltrd ordsucelsuc
      onsucuni2 mpan ad2antll eleqtrd onsucssi ex a1d rexlimdvv syl5bir mtoi wo
      ianor un00 olc adantl sylbir xpeq0 unex w3o ordzsl 3ori sylan orim12d imp
      syl5bi simpl necon3abii rankxplim sylan2br mpbird expcom idd jaod syl2anc
      limeq mpd impbii ) ABUAZGHZUBZYRIZUBZYRUCUUAYRJKZLZABUDZGHZEUEZMZKZENOZYR
      FUEZMKZFNOZPZLZYSUUAJYTQYTJKZLUUCYTUFYTJUGUUBUUOUUBYTJIJYRJUHUIUJUKULZUUA
      UUMUUEMZMZMZYRRZUUTUUSUURRZUURUUSQZUVALUURUURNUUQUUEUUDUMZUNUNZUOUPUVAUVB
      UUSNQUURNQUVAUVBLSUURUVDUNUVDUUSUURUQURUSUTUUTYRUURRUVAABCDVAUUSYRUURVBVC
      VGUUMUUHUUKPZFNOENOUUAUUTUUHUUKEFNNVDUUAUVEUUTEFNNUUAUVEUUTVEUUFNQUUJNQPU
      UAUVEUUTUUAUVEPZUURYRQUUTUVFUURYTMZYRUVFUUQYTQZUURUVGQZUVFUUEYTQZUVHUVFUU
      EUUGYTUUAUUHUUKVFUVFUUFYTQZUUGYTQZUVFUUGYTRZUVKUVFUUGYTIZYTUUAUUHUUGUVNRU
      UKUUAUUHPUUGUUEUVNUUAUUHVHUUAUUEUVNRZUUHUUAUUEUVNKUVOUUAUVNYQIZIZGHZUUEUV
      RUVPGHZIUVNUVPVIUVSYTYQVIVJVKUUAUVQUUDGUUAYQJVLZUVQUUDKUUAUUCUVTUUPUVTYQJ
      KZLZUUCYQJVMUWAUUBYQABCDVNVOZVPZVQVRABVSVTWAWBUUEUVNWCVTTWDWEUUAYTUVNKUVE
      YTWFTWGUUFWHQYTWJZUVKUVMSEWIYRWJZUWEYRYQUMZWKZYRWLWMZUUFYTWHWNURWOUUAUVKU
      VLSUVEYTUUFWPTWQWRUUAUVJUVHSUVEYTUUEWPTWQUWEUVHUVISUWIUUQYTWSWMVRUUKUVGYR
      KZUUAUUHYRNQUUKUWJUWGYRUUJWTXAXBXCUURYRUVDUWGXDVRXEXFXGXHXIUUCUUNPUUEUBZY
      SXJZYSUUCUUNUWLUUNUUILZUULLZXJUUCUWLUUIUULXKUUCUWMUWKUWNYSUUCUWMUWKUUCUUE
      JKZLZUWMUWKUUCUUDJKZLZUWPUUCUWBUWRUWDUWQUWAUWQAJKZBJKZXJZUWAUWQUWSUWTPUXA
      ABXLUWTUXAUWSUWTUWSXMXNXOABXPWOUKXOUWQUWOUUDABCDXQVOVPVRUWOUUIUWKUUEWJUWO
      UUIUWKXRUUEUVCWKEUUEXSUTXTYAXEUUCUWNYSUUBUULYSUWFUUBUULYSXRUWHFYRXSUTXTXE
      YBYDYCUUCUWLYSVEUUNUUCUWKYSYSUWKUUCYSUWKUUCPZYSUWKUWKUUCYEUXBYRUUEKZYSUWK
      SUUCUWKUVTUXCUUBYQJUWCYFABCDYGYHYRUUEYNVTYIYJUUCYSYKYLTYOYMYP $.

    $( The rank of a Cartesian product when the rank of the union of its
       arguments is a successor ordinal.  Part of Exercise 4 of [Kunen] p. 107.
       See ~ rankxplim for the limit ordinal case.  (Contributed by NM,
       19-Sep-2006.) $)
    rankxpsuc $p |- ( ( ( rank ` ( A u. B ) ) = suc C /\ ( A X. B ) =/= (/) )
                  -> ( rank ` ( A X. B ) ) = suc suc ( rank ` ( A u. B ) ) ) $=
      ( vx crnk cfv csuc wceq c0 cuni sylibr con0 wlim wn cvv wcel wo mpbi wrex
      cun cxp wne wa rankuni unieqi eqtri unixp fveq2d syl5reqr suc11reg adantl
      cv fvex eleq1 mpbii sucexb nlimsucg syl limeq mtbird rankxplim2 nsyl xpex
      rankeq0 necon3abii w3o word rankon onordi ordzsl 3orass ori sylbi syl5com
      ord con1d vex ax-mp mtbiri rankxplim3 sylnib syl6com unixp0 eqeq1i 3bitri
      rexlimivw uniex onuni syld impcom onsucuni2 mpan eqtrd imp eqtr2d ) ABUBZ
      GHZCIZJZABUCZKUDZUEZWSIZIZXBGHZLZIZXGXDXEXHJXFXIJXDXEXHLZIZXHXCXEXKJZXAXC
      WSXJJXLXCXJXBLZLZGHZWSXOXMGHZLXJXMUFXPXHXBUFZUGUHXCXNWRGABUIUJUKWSXJULMUM
      XDXHFUNZIZJZFNUAZXKXHJZXCXAYAXCXAXHOZPZYAXAXCXGXSJZFNUAZYDXAXGOZPZXCYFXAW
      SOZYGXAYIWTOZXACQRZYJPXAWTQRZYKXAWSQRYLWRGUOWSWTQUPUQCURMCQUSUTWSWTVAVBAB
      DEVCVDXCYFYGXCYFYGXCXGKJZPYFYGSZYMXBKXBABDEVEZVFVGYMYNYMYFYGVHZYMYNSXGVIY
      PXGXBVJZVKFXGVLTYMYFYGVMTVNVOVQVRVPZYFYGYCYEYHFNYEYGXSOZXRQRYSPFVSXRQUSVT
      XGXSVAWAWHABDEWBWCWDXCYAYCXCYAYCXCXHKJZPYAYCSZYTXBKXBKJXMKJXPKJYTABWEXMXB
      YOWIVFXPXHKXQWFWGVGYTUUAYTYAYCVHZYTUUASXHVIUUBXHXGNRZXHNRZYQXGWJVTZVKFXHV
      LTYTYAYCVMTVNVOVQVRWKWLXTYBFNUUDXTYBUUEXHXRWMWNWHUTWOXEXHULMXDYFXIXGJZXAX
      CYFYRWPYEUUFFNUUCYEUUFYQXGXRWMWNWHUTWQ $.
  $}

  $( The transitive closure function is well-founded if its argument is.
     (Contributed by Mario Carneiro, 23-Jun-2013.) $)
  tcwf $p |- ( A e. U. ( R1 " On ) -> ( TC ` A ) e. U. ( R1 " On ) ) $=
    ( vx cr1 con0 cima cuni wcel ctc cfv wss r1elssi wtr cv dftr3 mprgbir tcmin
    mpan2i mpd fvex r1elss sylibr ) ACDEFZGZAHIZUBJZUDUBGUCAUBJZUEAKUCUFUBLZUEU
    GBMZUBJBUBBUBNUHKOAUBUBPQRUDAHSTUA $.

  ${
    $d A x y z $.  $d x y z w u $.
    $( This theorem expresses two different facts from the two subset
       implications in this equality.  In the forward direction, it says that
       the transitive closure has members of every rank below ` A ` .  Stated
       another way, to construct a set at a given rank, you have to climb the
       entire hierarchy of ordinals below ` ( rank `` A ) ` , constructing at
       least one set at each level in order to move up the ranks.  In the
       reverse direction, it says that every member of ` ( TC `` A ) ` has a
       rank below the rank of ` A ` , since intuitively it contains only the
       members of ` A ` and the members of those and so on, but nothing
       "bigger" than ` A ` .  (Contributed by Mario Carneiro, 23-Jun-2013.) $)
    tcrank $p |- ( A e. U. ( R1 " On ) ->
        ( rank ` A ) = ( rank " ( TC ` A ) ) ) $=
      ( vy vz vx vu cr1 con0 cima wcel crnk cfv ctc wrex wss wral wi fveq2 wceq
      wa syl vw cuni cv rankwflemb suceloni weq raleqdv imaeq2d sseq12d cbvralv
      csuc syl6bb wn simpr simprl simplr rankr1ai rspcv r1elwf r1rankidb ssralv
      3syl syld sylc crab rankval3b eleq2d biimpd rankon oneli ralbidv onnminsb
      cint eleq2 sylcom imp rexnal sylibr adantl syl2anc w3a simp2 cvv vex tcid
      r19.29 ax-mp sseli eqeq1d rspcev ex simp3l sseld simp1l wfn wb wf ffn wtr
      rankf r1tr trel tcwf fvex r1elss sylib fvelimab tcel ssrexv adantr sylbid
      sylancr wo w3o word eloni ordtri3or syl2an 3orass orcanai ad2ant2l mpjaod
      3adant2 rexlimdv3a r1elssi sylan2 sylibrd ssrdv ralrimiva rspccv rexlimiv
      expr tfis3 sylbi cab tcvalg sseq2 treq anbi12d elab intss1 sylbir sylancl
      eqsstrd imass2 wfun ffun fvelima mpan eleq1 syl5ibcom ssriv syl6ss eqssd
      ) AFGHUBZIZAJKZJALKZHZUUPABUCZUKZFKZIZBGMUUQUUSNZBAUDUVCUVDBGUUTGIUVAGICU
      CZJKZJUVELKZHZNZCUVBOZUVCUVDPUUTUEUVICDUCZFKZOZEUCZJKZJUVNLKZHZNZEUUTFKZO
      ZUVJDBUVADBUFZUVMUVICUVSOUVTUWAUVICUVLUVSUVKUUTFQUGUVIUVRCEUVSCEUFZUVFUVO
      UVHUVQUVEUVNJQUWBUVGUVPJUVEUVNLQUHUIUJULUVKUVARUVICUVLUVBUVKUVAFQUGUVKGIZ
      UVTBUVKOZUVMUWCUWDSZUVICUVLUWEUVEUVLIZSZUAUVFUVHUWGUAUCZUVFIZUVKJKZUWHRZD
      UVGMZUWHUVHIZUWEUWFUWIUWLUWEUWFUWISZSZUWNUVRUVOUWHIZUMZSZEUVEMZUWLUWEUWNU
      NUWOUVREUVEOZUWQEUVEMZUWSUWOUWFUWDUWTUWEUWFUWIUOUWCUWDUWNUPUWFUWDUVREUVFF
      KZOZUWTUWFUVFUVKIUWDUXCPUVEUVKUQUVTUXCBUVFUVKUUTUVFRUVREUVSUXBUUTUVFFQUGU
      RTUWFUVEUUOIZUVEUXBNUXCUWTPUVEUVKUSZUVEUTUVREUVEUXBVAVBVCVDUWNUXAUWEUWNUW
      PEUVEOZUMZUXAUWFUWIUXGUWFUXDUWIUXGPUXEUXDUWIUWHUVOUVKIZEUVEOZDGVEVMZIZUXG
      UXDUWIUXKUXDUVFUXJUWHDEUVEVFVGVHUWIUWHGIZUXKUXGPUVFUWHUVEVIVJZUXIUXFDUWHD
      UAUFUXHUWPEUVEUVKUWHUVOVNVKVLTVOTVPUWPEUVEVQVRVSUVRUWQEUVEWFVTUWNUWRUWLEU
      VEUWNUVNUVEIZUWRWAZUVOUWHRZUWLUWHUVOIZUXOUXNUVNUVGIZUXPUWLPUWNUXNUWRWBZUV
      EUVGUVNUVEWCIUVEUVGNCWDZUVEWCWEWGWHUXRUXPUWLUWKUXPDUVNUVGDEUFUWJUVOUWHUVK
      UVNJQWIWJWKVBUXOUXQUWHUVQIZUWLUXOUVOUVQUWHUWNUXNUVRUWQWLWMUXOUXNUWFUYAUWL
      PUXSUWFUWIUXNUWRWNUXNUWFSZUYAUWKDUVPMZUWLUYBJUUOWOZUVPUUONZUYAUYCWPUUOGJW
      QZUYDWTUUOGJWRWGZUYBUVNUVLIZUVNUUOIZUYEUVLWSUYBUYHPUVKXAUVLUVNUVEXBWGUVNU
      VKUSUYIUVPUUOIUYEUVNXCUVPUVNLXDXEXFVBDUUOUVPUWHJXGXLUXNUYCUWLPZUWFUXNUVPU
      VGNUYJUVEUVNUXTXHUWKDUVPUVGXITXJXKVTVCUWNUWRUXPUXQXMZUXNUWIUWQUYKUWFUVRUW
      IUWPUYKUWIUWPUXPUXQXNZUWPUYKXMUWIUVOGIZUXLUYLUVNVIUXMUYMUVOXOUWHXOUYLUXLU
      VOXPUWHXPUVOUWHXQXRXLUWPUXPUXQXSXFXTYAYCYBYDVDYLUWFUWMUWLWPZUWEUWFUXDUYNU
      XEUXDUYDUVGUUOIZUYNUYGUVEXCUYOUYDUVGUUONUYNUVGYEDUUOUVGUWHJXGYFXLTVSYGYHY
      IWKYMUVIUVDCAUVBUVEARZUVFUUQUVHUUSUVEAJQUYPUVGUURJUVEALQUHUIYJVBYKYNUUPUU
      RUUQFKZNZUUSUUQNUUPUURAUVKNZUVKWSZSZDYOZVMZUYQDAUUOYPUUPAUYQNZUYQWSZVUCUY
      QNZAUTUUQXAVUDVUESZUYQVUBIVUFVUAVUGDUYQUUQFXDUVKUYQRUYSVUDUYTVUEUVKUYQAYQ
      UVKUYQYRYSYTUYQVUBUUAUUBUUCUUDUYRUUSJUYQHZUUQUURUYQJUUEDVUHUUQUVKVUHIZUUT
      JKZUVKRZBUYQMZUVKUUQIZJUUFZVUIVULUYFVUNWTUUOGJUUGWGBUVKUYQJUUHUUIVUKVUMBU
      YQUUTUYQIVUJUUQIVUKVUMUUTUUQUQVUJUVKUUQUUJUUKYKTUULUUMTUUN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Scott's trick; collection principle; Hilbert's epsilon
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w A $.
    $( Scott's trick collects all sets that have a certain property and are of
       the smallest possible rank.  This theorem shows that the resulting
       collection, expressed as in Equation 9.3 of [Jech] p. 72, is a set.
       (Contributed by NM, 13-Oct-2003.) $)
    scottex $p |- { x e. A | A. y e. A ( rank ` x ) C_ ( rank ` y ) } e. _V $=
      ( vw vz c0 wceq crnk cfv wss wral crab cvv wcel 0ex eleq1 mpbiri syl con0
      cv rabexg wn neq0 nfra1 nfcv nfrab nfel1 wi com12 ralrimivw ss2rab sylibr
      wex rsp wrex rankon fveq2 sseq1d elrab simprbi sseq2 ralbidv rspcev mp2an
      rgen bndrank ax-mp ssex exlimi sylbi pm2.61i ) CFGZATZHIZBTZHIZJZBCKZACLZ
      MNZVLCMNZVTVLWAFMNOCFMPQVRACMUARVLUBVOCNZBUMVTBCUCWBVTBBVSMVRBACVQBCUDBCU
      EUFUGWBVSVQACLZJZVTWBVRVQUHZACKWDWBWEACVRWBVQVQBCUNUIUJVRVQACUKULVSWCDTZH
      IZETZJZDWCKZESUOZWCMNVPSNWGVPJZDWCKZWKVOUPWLDWCWFWCNWFCNWLVQWLAWFCVMWFGVN
      WGVPVMWFHUQURUSUTVEWJWMEVPSWHVPGWIWLDWCWHVPWGVAVBVCVDEDWCVFVGVHRVIVJVK $.
  $}

  ${
    $d x y A $.
    $( Scott's trick collects all sets that have a certain property and are of
       the smallest possible rank.  This theorem shows that the resulting
       collection, expressed as in Equation 9.3 of [Jech] p. 72, contains at
       least one representative with the property, if there is one.  In other
       words, the collection is empty iff no set has the property (i.e. ` A `
       is empty).  (Contributed by NM, 15-Oct-2003.) $)
    scott0 $p |- ( A = (/) <->
               { x e. A | A. y e. A ( rank ` x ) C_ ( rank ` y ) } = (/) ) $=
      ( c0 wceq cv crnk cfv wss crab wne wrex wcel mpan2 wa eqeq1 sylibr df-rex
      wex con0 wral rabeq rab0 syl6eq ciin n0 nfre1 eqid rspe exlimi sylbi fvex
      cab anbi2d spcev eximi excom exbii 3imtr4i abn0 cint dfiin2 rankon mpbiri
      syl eleq1 rexlimivw abssi onint mpan syl5eqel nfii1 nfeq2 rexbid ibi ssid
      elabg fveq2 sseq1d rspcev iinss sseq1 syl5ib ralrimiv reximi 4syl necon4i
      rabn0 impbii ) CDEZAFZGHZBFZGHZIZBCUAZACJZDEWJWQWPADJDWPACDUBWPAUCUDCDWQD
      CDKZWPACLZWQDKWRWMWLEZACLZBUMZDKZACWLUEZXBMZXDWLEZACLZWSWRXABSZXCWRWLWLEZ
      ACLZXHWRWKCMZASXJACUFXKXJAXIACUGXKXIXJWLUHXIACUINUJUKXKXIOZASZXKWTOZASZBS
      ZXJXHXMXNBSZASXPXLXQAXNXLBWLWKGULZWTWTXIXKWMWLWLPUNUOUPXNBAUQQXIACRXAXOBW
      TACRURUSVEXABUTQXCXDXBVAZXBABCWLXRVBXBTIXCXSXBMXABTWTWMTMZACWTXTWLTMWKVCW
      MWLTVFVDVGVHXBVIVJVKXEXGXAXGBXDXBWMXDEWTXFACAWMXDACWLVLVMWMXDWLPVNVQVOXFW
      PACXFWOBCWMCMZXDWNIZXFWOYAWOACLZYBYAWNWNIZYCWNVPWOYDAWMCWKWMEWLWNWNWKWMGV
      RVSVTNACWLWNWAVEXDWLWNWBWCWDWEWFWPACWHQWGWI $.
  $}

  ${
    $d x y z $.  $d y z ph $.
    $( Theorem scheme version of ~ scottex .  The collection of all ` x ` of
       minimum rank such that ` ph ( x ) ` is true, is a set.  (Contributed by
       NM, 13-Oct-2003.) $)
    scottexs $p |- { x | ( ph /\
         A. y ( [. y / x ]. ph -> ( rank ` x ) C_ ( rank ` y ) ) ) } e. _V $=
      ( vz cv crnk cfv wss cab wral crab wsbc wi wal wa cvv wcel nfcv nfab1 nfv
      nfral fveq2 sseq1d ralbidv cbvrab df-rab abid df-ral df-sbc imbi1i bitr4i
      weq albii anbi12i abbii 3eqtri scottex eqeltrri ) DEZFGZCEZFGZHZCABIZJZDV
      DKZAABVALZBEZFGZVBHZMZCNZOZBIZPVFVJCVDJZBVDKVHVDQZVOOZBIVNVEVODBVDDVDRABS
      ZVCBCVDVRVCBTUAVODTDBULZVCVJCVDVSUTVIVBUSVHFUBUCUDUEVOBVDUFVQVMBVPAVOVLAB
      UGVOVAVDQZVJMZCNVLVJCVDUHVKWACVGVTVJABVAUIUJUMUKUNUOUPDCVDUQUR $.
  $}

  ${
    $d x y z $.  $d y z ph $.
    $( Theorem scheme version of ~ scott0 .  The collection of all ` x ` of
       minimum rank such that ` ph ( x ) ` is true, is not empty iff there is
       an ` x ` such that ` ph ( x ) ` holds.  (Contributed by NM,
       13-Oct-2003.) $)
    scott0s $p |- ( E. x ph <-> { x | ( ph /\
       A. y ( [. y / x ]. ph -> ( rank ` x ) C_ ( rank ` y ) ) ) } =/= (/) ) $=
      ( vz wex cab c0 wne cv crnk cfv wss wi wal wa wceq wral crab wcel nfv weq
      wsbc abn0 scott0 nfcv nfab1 nfral fveq2 sseq1d ralbidv cbvrab df-rab abid
      df-ral df-sbc imbi1i albii bitr4i anbi12i 3eqtri eqeq1i necon3bii bitr3i
      abbii bitri ) ABEABFZGHAABCIZUBZBIZJKZVGJKZLZMZCNZOZBFZGHABUCVFGVPGVFGPDI
      ZJKZVKLZCVFQZDVFRZGPVPGPDCVFUDWAVPGWAVLCVFQZBVFRVIVFSZWBOZBFVPVTWBDBVFDVF
      UEABUFZVSBCVFWEVSBTUGWBDTDBUAZVSVLCVFWFVRVJVKVQVIJUHUIUJUKWBBVFULWDVOBWCA
      WBVNABUMWBVGVFSZVLMZCNVNVLCVFUNVMWHCVHWGVLABVGUOUPUQURUSVDUTVAVEVBVC $.
  $}

  ${
    $d x y z w A $.  $d y z w B $.  $d w C $.  $d w D $.
    cplem1.1 $e |- C = { y e. B | A. z e. B ( rank ` y ) C_ ( rank ` z ) } $.
    cplem1.2 $e |- D = U_ x e. A C $.
    $( Lemma for the Collection Principle ~ cp .  (Contributed by NM,
       17-Oct-2003.) $)
    cplem1 $p |- A. x e. A ( B =/= (/) -> ( B i^i D ) =/= (/) ) $=
      ( vw c0 wne cin wi cv wcel wex wceq crnk cfv wral scott0 eqeq1i necon3bii
      wss crab bitr4i n0 bitri wa ssrab2 eqsstri sseli a1i ciun syl6sseqr sseld
      ssiun2 jcad inelcm syl6 exlimdv syl5bi rgen ) EKLZEGMKLZNADVEJOZFPZJQZAOD
      PZVFVEFKLVIEKFKEKRBOSTCOSTUECEUAZBEUFZKRFKRBCEUBFVLKHUCUGUDJFUHUIVJVHVFJV
      JVHVGEPZVGGPZUJVFVJVHVMVNVHVMNVJFEVGFVLEHVKBEUKULUMUNVJFGVGVJFADFUOGADFUR
      IUPUQUSVGEGUTVAVBVCVD $.
  $}

  ${
    $d x y z w A $.  $d y z w B $.
    cplem2.1 $e |- A e. _V $.
    $( -Lemma for the Collection Principle ~ cp .  (Contributed by NM,
       17-Oct-2003.) $)
    cplem2 $p |- E. y A. x e. A ( B =/= (/) -> ( B i^i y ) =/= (/) ) $=
      ( vz vw c0 wne cv crnk cfv wss wral crab ciun cin wi wex eqid cplem1 wceq
      scottex iunex nfiu1 nfeq2 ineq2 neeq1d imbi2d ralbid spcev ax-mp ) DHIZDA
      CFJKLGJKLMGDNFDOZPZQZHIZRZACNZUMDBJZQZHIZRZACNZBSAFGCDUNUOUNTUOTUAVDUSBUO
      ACUNEFGDUCUDUTUOUBZVCURACAUTUOACUNUEUFVEVBUQUMVEVAUPHUTUODUGUHUIUJUKUL $.
  $}

  ${
    $d ph z w $.  $d x y z w $.
    $( Collection Principle.  This remarkable theorem scheme is in effect a
       very strong generalization of the Axiom of Replacement.  The proof makes
       use of Scott's trick ~ scottex that collapses a proper class into a set
       of minimum rank.  The wff ` ph ` can be thought of as ` ph ( x , y ) ` .
       Scheme "Collection Principle" of [Jech] p. 72.  (Contributed by NM,
       17-Oct-2003.) $)
    cp $p |- E. w A. x e. z ( E. y ph -> E. y e. w ph ) $=
      ( cab c0 wne cv cin wi wral wex wrex vex cplem2 abn0 wcel wa exbii anbi1i
      elin abid ancom 3bitri nfab1 nfcv nfin df-rex 3bitr4i imbi12i ralbii mpbi
      n0f ) ACFZGHZUOEIZJZGHZKZBDIZLZEMACMZACUQNZKZBVALZEMBEVAUODOPVBVFEUTVEBVA
      UPVCUSVDACQCIZURRZCMVGUQRZASZCMUSVDVHVJCVHVGUORZVISAVISVJVGUOUQUBVKAVIACU
      CUAAVIUDUETCURCUOUQACUFCUQUGUHUNACUQUIUJUKULTUM $.
  $}

  ${
    $d ph z w $.  $d x y z w $.
    $( A very strong generalization of the Axiom of Replacement (compare
       ~ zfrep6 ), derived from the Collection Principle ~ cp .  Its strength
       lies in the rather profound fact that ` ph ( x , y ) ` does not have to
       be a "function-like" wff, as it does in the standard Axiom of
       Replacement.  This theorem is sometimes called the Boundedness Axiom.
       (Contributed by NM, 17-Oct-2004.) $)
    bnd $p |- ( A. x e. z E. y ph -> E. w A. x e. z E. y e. w ph ) $=
      ( wex cv wral wrex wi cp ralim eximii 19.37iv ) ACFZBDGZHZACEGIZBPHZEORJB
      PHQSJEABCDEKORBPLMN $.
  $}

  ${
    $d ph z w v $.  $d x z w v A $.  $d x y z w v B $.
    bnd2.1 $e |- A e. _V $.
    $( A variant of the Boundedness Axiom ~ bnd that picks a subset ` z ` out
       of a possibly proper class ` B ` in which a property is true.
       (Contributed by NM, 4-Feb-2004.) $)
    bnd2 $p |- ( A. x e. A E. y e. B ph ->
              E. z ( z C_ B /\ A. x e. A E. y e. z ph ) ) $=
      ( vw vv wrex wral cv wcel wa wex wss df-rex wi wceq raleq bnd vtocl sylbi
      ralbii exbidv imbi12d cin inex1 inss2 sseq1 mpbiri biantrurd rexeq anbi1i
      vex elin anass bitri rexbii2 syl6bb ralbidv bitr3d spcev exlimiv syl ) AC
      FJZBEKZCLZFMZANZCHLZJZBEKZHOZDLZFPZACVOJZBEKZNZDOZVGVJCOZBEKZVNVFWABEACFQ
      UDWABILZKZVLBWCKZHOZRWBVNRIEGWCESZWDWBWFVNWABWCETWGWEVMHVLBWCETUEUFVJBCIH
      UAUBUCVMVTHVSVMDVKFUGZVKFHUOUHVOWHSZVRVSVMWIVPVRWIVPWHFPVKFUIVOWHFUJUKULW
      IVQVLBEWIVQACWHJVLACVOWHUMAVJCWHVKVHWHMZANVHVKMZVINZANWKVJNWJWLAVHVKFUPUN
      WKVIAUQURUSUTVAVBVCVDVE $.
  $}

  ${
    $d x y z A $.
    $( The collection of all sets equinumerous to a set ` A ` and having the
       least possible rank is a set.  This is the part of the justification of
       the definition of kard of [Enderton] p. 222.  (Contributed by NM,
       14-Dec-2003.) $)
    kardex $p |- { x | ( x ~~ A /\
                  A. y ( y ~~ A -> ( rank ` x ) C_ ( rank ` y ) ) ) } e. _V $=
      ( vz cv crnk cfv wss cen wbr cab wral crab wi wal cvv wcel df-rab breq1
      wa vex elab ralab anbi12i abbii eqtri scottex eqeltrri ) AEZFGBEZFGHZBDEZ
      CIJZDKZLZAUNMZUICIJZUJCIJZUKNBOZTZAKZPUPUIUNQZUOTZAKVAUOAUNRVCUTAVBUQUOUS
      UMUQDUIAUAULUICISUBUMURUKBDULUJCISUCUDUEUFABUNUGUH $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d z C $.  $d z D $.
    karden.1 $e |- A e. _V $.
    karden.2 $e |- B e. _V $.
    karden.3 $e |- C =
       { x | ( x ~~ A /\ A. y ( y ~~ A -> ( rank ` x ) C_ ( rank ` y ) ) ) } $.
    karden.4 $e |- D =
       { x | ( x ~~ B /\ A. y ( y ~~ B -> ( rank ` x ) C_ ( rank ` y ) ) ) } $.
    $( If we allow the Axiom of Regularity, we can avoid the Axiom of Choice by
       defining the cardinal number of a set as the set of all sets
       equinumerous to it and having the least possible rank.  This theorem
       proves the equinumerosity relationship for this definition (compare
       ~ carden ).  The hypotheses correspond to the definition of kard of
       [Enderton] p. 222 (which we don't define separately since currently we
       do not use it elsewhere).  This theorem along with ~ kardex justify the
       definition of kard.  The restriction to the least rank prevents the
       proper class that would result from ` { x | x ~~ A } ` .  (Contributed
       by NM, 18-Dec-2003.) $)
    karden $p |- ( C = D <-> A ~~ B ) $=
      ( vz vw cen wbr cv crnk breq1 wa wi wal wceq cfv wss cab wral wrex c0 wne
      crab wex enref spcev ax-mp abn0 mpbir scott0 necon3bii mpbi wcel vex elab
      rabn0 ralab anbi12i simpl a1i wb eqeq12i abbi bitr4i sseq1d imbi2d albidv
      fveq2 anbi12d bibi12d sylbi syl6bi jcad ensym entr sylan syl6 syl5bi expd
      spv rexlimdv mpi enen2 imbi1d abbidv 3eqtr4g impbii ) EFUAZCDMNZWNKOZPUBZ
      BOZPUBZUCZBLOZCMNZLUDZUEZKXCUFZWOXDKXCUIZUGUHZXEXCUGUHZXGXHXBLUJZCCMNZXIC
      GUKXBXJLCGXACCMQULUMXBLUNUOXCUGXFUGKBXCUPUQURXDKXCVBURWNXDWOKXCWNWPXCUSZX
      DWOXKXDRWPCMNZWRCMNZWTSZBTZRZWNWOXKXLXDXOXBXLLWPKUTXAWPCMQVAXBXMWTBLXAWRC
      MQVCVDWNXPXLWPDMNZRWOWNXPXLXQXPXLSWNXLXOVEVFWNXPXQWRDMNZWTSZBTZRZXQWNAOZC
      MNZXMYBPUBZWSUCZSZBTZRZYBDMNZXRYESZBTZRZVGZATZXPYAVGZWNYHAUDZYLAUDZUAYNEY
      PFYQIJVHYHYLAVIVJYMYOAKYBWPUAZYHXPYLYAYRYCXLYGXOYBWPCMQYRYFXNBYRYEWTXMYRY
      DWQWSYBWPPVNVKZVLVMVOYRYIXQYKXTYBWPDMQYRYJXSBYRYEWTXRYSVLVMVOVPWFVQXQXTVE
      VRVSXLCWPMNXQWOWPCVTCWPDWAWBWCWDWEWGWHWOYPYQEFWOYHYLAWOYCYIYGYKCDYBWIWOYF
      YJBWOXMXRYECDWRWIWJVMVOWKIJWLWM $.
  $}

  ${
    $d x y A $.  $d x y R $.
    htalem.1 $e |- A e. _V $.
    htalem.2 $e |- B = ( iota_ x e. A A. y e. A -. y R x ) $.
    $( Lemma for defining an emulation of Hilbert's epsilon.  Hilbert's epsilon
       is described at ~ http://plato.stanford.edu/entries/epsilon-calculus/ .
       This theorem is equivalent to Hilbert's "transfinite axiom," described
       on that page, with the additional ` R We A ` antecedent.  The element
       ` B ` is the epsilon that the theorem emulates.  (Contributed by NM,
       11-Mar-2004.)  (Revised by Mario Carneiro, 25-Jun-2015.) $)
    htalem $p |- ( ( R We A /\ A =/= (/) ) -> B e. A ) $=
      ( wwe c0 wne wa cv wbr wn wral crio wreu wcel cvv a1i simpl ssid syl13anc
      wss simpr wereu riotacl syl syl5eqel ) CEHZCIJZKZDBLALEMNBCOZACPZCGULUMAC
      QZUNCRULUJCSRZCCUDZUKUOUJUKUAUPULFTUQULCUBTUJUKUEABCCESUFUCUMACUGUHUI $.
  $}

  ${
    $d x y $.  $d w z A $.  $d y ph $.  $d w z R $.
    hta.1 $e |- A = { x | ( ph /\ A. y ( [. y / x ]. ph ->
                                         ( rank ` x ) C_ ( rank ` y ) ) ) } $.
    hta.2 $e |- B = ( iota_ z e. A A. w e. A -. w R z ) $.
    $( A ZFC emulation of Hilbert's transfinite axiom.  The set ` B ` has the
       properties of Hilbert's epsilon, except that it also depends on a
       well-ordering ` R ` .  This theorem arose from discussions with Raph
       Levien on 5-Mar-2004 about translating the HOL proof language, which
       uses Hilbert's epsilon.  See
       ~ http://us.metamath.org/downloads/choice.txt (copy of obsolete link
       ~ http://ghilbert.org/choice.txt) and
       ~ http://us.metamath.org/downloads/megillaward2005he.pdf .

       Hilbert's epsilon is described at
       ~ http://plato.stanford.edu/entries/epsilon-calculus/ .  This theorem
       differs from Hilbert's transfinite axiom described on that page in that
       it requires ` R We A ` as an antecedent.  Class ` A ` collects the sets
       of the least rank for which ` ph ( x ) ` is true.  Class ` B ` , which
       emulates the epsilon, is the minimum element in a well-ordering ` R ` on
       ` A ` .

       If a well-ordering ` R ` on ` A ` can be expressed in a closed form, as
       might be the case if we are working with say natural numbers, we can
       eliminate the antecedent with modus ponens, giving us the exact
       equivalent of Hilbert's transfinite axiom.  Otherwise, we replace ` R `
       with a dummy setvar variable, say ` w ` , and attach ` w We A ` as an
       antecedent in each step of the ZFC version of the HOL proof until the
       epsilon is eliminated.  At that point, ` B ` (which will have ` w ` as a
       free variable) will no longer be present, and we can eliminate
       ` w We A ` by applying ~ exlimiv and ~ weth , using ~ scottexs to
       establish the existence of ` A ` .

       For a version of this theorem scheme using class (meta)variables instead
       of wff (meta)variables, see ~ htalem .  (Contributed by NM,
       11-Mar-2004.)  (Revised by Mario Carneiro, 25-Jun-2015.) $)
    hta $p |- ( R We A -> ( ph -> [. B / x ]. ph ) ) $=
      ( c0 wne wwe wcel wsbc wex cv crnk cfv cab 19.8a wss wi wa scott0s neeq1i
      wal bitr4i sylib cvv scottexs eqeltri htalem ex simpl ss2abi sseli df-sbc
      eqsstri sylibr syl56 ) AFKLZFHMZGFNZABGOZAABPZVBABUAVFAABCQZOBQRSVGRSUBUC
      CUGZUDZBTZKLVBABCUEFVJKIUFUHUIVCVBVDDEFGHFVJUJIABCUKULJUMUNVDGABTZNVEFVKG
      FVJVKIVIABAVHUOUPUSUQABGURUTVA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cardinal numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c card $. $( Cardinal size function $)
  $c aleph $. $( Aleph function $)
  $c cf $. $( Cofinality function $)
  $c AC_ $.

  $( Extend class definition to include the cardinal size function. $)
  ccrd $a class card $.

  $( Extend class definition to include the aleph function. $)
  cale $a class aleph $.

  $( Extend class definition to include the cofinality function. $)
  ccf $a class cf $.

  $( The axiom of choice for limited-length sequences. $)
  wacn $a class AC_ A $.

  ${
    $d f g u v x y z A $.
    $( Define the cardinal number function.  The cardinal number of a set is
       the least ordinal number equinumerous to it.  In other words, it is the
       "size" of the set.  Definition of [Enderton] p. 197.  See ~ cardval for
       its value, ~ cardval2 for a simpler version of its value.  The principal
       theorem relating cardinality to equinumerosity is ~ carden .  Our
       notation is from Enderton.  Other textbooks often use a double bar over
       the set to express this function.  (Contributed by NM, 21-Oct-2003.) $)
    df-card $a |- card = ( x e. _V |-> |^| { y e. On | y ~~ x } ) $.

    $( Define the aleph function.  Our definition expresses Definition 12 of
       [Suppes] p. 229 in a closed form, from which we derive the recursive
       definition as theorems ~ aleph0 , ~ alephsuc , and ~ alephlim .  The
       aleph function provides a one-to-one, onto mapping from the ordinal
       numbers to the infinite cardinal numbers.  Roughly, any aleph is the
       smallest infinite cardinal number whose size is strictly greater than
       any aleph before it.  (Contributed by NM, 21-Oct-2003.) $)
    df-aleph $a |- aleph = rec ( har , _om ) $.

    $( Define the cofinality function.  Definition B of Saharon Shelah,
       _Cardinal Arithmetic_ (1994), p. xxx (Roman numeral 30).  See ~ cfval
       for its value and a description.  (Contributed by NM, 1-Apr-2004.) $)
    df-cf $a |- cf = ( x e. On |-> |^| { y | E. z ( y = ( card ` z ) /\
                ( z C_ x /\ A. v e. x E. u e. z v C_ u ) ) } ) $.

    $( Define a local and length-limited version of the axiom of choice.  The
       definition of the predicate ` X e. AC_ A ` is that for all families of
       nonempty subsets of ` X ` indexed on ` A ` (i.e. functions
       ` A --> ~P X \ { (/) } ` ), there is a function which selects an element
       from each set in the family.  (Contributed by Mario Carneiro,
       31-Aug-2015.) $)
    df-acn $a |- AC_ A = { x | ( A e. _V /\ A. f e. ( ( ~P x \ { (/) } ) ^m A )
      E. g A. y e. A ( g ` y ) e. ( f ` y ) ) } $.
  $}

  ${
    $d w x y z A $.  $d x B $.
    $( The cardinality function is a function with domain the well-orderable
       sets.  Assuming AC, this is the universe.  (Contributed by Mario
       Carneiro, 6-Jun-2013.)  (Revised by Mario Carneiro, 20-Sep-2014.) $)
    cardf2 $p |- card : { x | E. y e. On y ~~ x } --> On $=
      ( vz vw cv cen wbr con0 wrex cab ccrd wss wceq cvv crab cint df-card wcel
      mpbir2an wa wfn cxp wfun funmpt2 rabab dmmpt intexrab abbii 3eqtr4i df-fn
      wf cdm copab c0 wne simpr syl6eqelr intex sylibr rabn0 sylib rexbidv elab
      vex breq2 ssrab2 oninton sylancr eqeltrd ssopab2i cmpt df-mpt eqtri df-xp
      jca 3sstr4i dff2 ) BEZAEZFGZBHIZAJZHKUKKWBUAZKWBHUBZLWCKUCKULZWBMANVTBHOP
      ZKABQZUDWFNRZANOWHAJWEWBWHAUEANWFKWGUFWAWHAVTBHUGUHUIKWBUJSCEZNRZDEZVRWIF
      GZBHOZPZMZTZCDUMZWIWBRZWKHRZTZCDUMKWDWPWTCDWPWRWSWPWLBHIZWRWPWMUNUOZXAWPW
      NNRXBWPWNWKNWJWOUPZDVDUQWMURUSZWLBHUTVAWAXAAWICVDVSWIMVTWLBHVSWIVRFVEVBVC
      USWPWKWNHXCWPWMHLXBWNHRWLBHVFXDWMVGVHVIVOVJKCNWNVKWQCBQCDNWNVLVMCDWBHVNVP
      WBHKVQS $.

    $( The cardinal number of a set is an ordinal number.  Proposition 10.6(1)
       of [TakeutiZaring] p. 85.  (Contributed by Mario Carneiro, 7-Jan-2013.)
       (Revised by Mario Carneiro, 13-Sep-2013.) $)
    cardon $p |- ( card ` A ) e. On $=
      ( vy vx cv cen wbr con0 wrex cab ccrd cardf2 0elon f0cli ) BDCDEFBGHCIGAJ
      CBKLM $.

    $( A way to express well-orderability without bound or distinct variables.
       (Contributed by Stefan O'Rear, 28-Feb-2015.)  (Revised by Mario
       Carneiro, 27-Apr-2015.) $)
    isnum2 $p |- ( A e. dom card <-> E. x e. On x ~~ A ) $=
      ( vy ccrd cdm wcel cen wbr con0 wrex cab cardf2 fdmi eleq2i cvv brrelex2i
      cv relen rexlimivw wceq breq2 rexbidv elab3 bitri ) BDEZFBAQZCQZGHZAIJZCK
      ZFUFBGHZAIJZUEUJBUJIDCALMNUIULCBUKBOFAIUFBGRPSUGBTUHUKAIUGBUFGUAUBUCUD $.

    $( A set equinumerous to an ordinal is numerable.  (Contributed by Mario
       Carneiro, 29-Apr-2015.) $)
    isnumi $p |- ( ( A e. On /\ A ~~ B ) -> B e. dom card ) $=
      ( vx con0 wcel cen wbr wa cv wrex ccrd cdm breq1 rspcev isnum2 sylibr ) A
      DEABFGZHCIZBFGZCDJBKLESQCADRABFMNCBOP $.

    $( Equinumerous sets are equi-numerable.  (Contributed by Mario Carneiro,
       29-Apr-2015.) $)
    ennum $p |- ( A ~~ B -> ( A e. dom card <-> B e. dom card ) ) $=
      ( vx cen wbr cv con0 wrex ccrd cdm wcel enen2 rexbidv isnum2 3bitr4g ) AB
      DEZCFZADEZCGHQBDEZCGHAIJZKBTKPRSCGABQLMCANCBNO $.
  $}

  ${
    $d x y z A $.  $d x y B $.
    $( Every finite set is numerable.  (Contributed by Mario Carneiro,
       4-Feb-2013.)  (Revised by Mario Carneiro, 29-Apr-2015.) $)
    finnum $p |- ( A e. Fin -> A e. dom card ) $=
      ( vx cfn wcel cv cen wbr com wrex ccrd isfi con0 nnon ensym isnumi syl2an
      cdm rexlimiva sylbi ) ACDABEZFGZBHIAJQDZBAKUAUBBHTHDTLDTAFGUBUATMATNTAOPR
      S $.

    $( Every ordinal number is numerable.  (Contributed by Mario Carneiro,
       29-Apr-2015.) $)
    onenon $p |- ( A e. On -> A e. dom card ) $=
      ( con0 wcel cen wbr ccrd cdm enrefg isnumi mpdan ) ABCAADEAFGCABHAAIJ $.

    $( A Tarski set is well-orderable.  (Contributed by Mario Carneiro,
       19-Apr-2013.)  (Revised by Mario Carneiro, 29-Apr-2015.) $)
    tskwe $p |- ( ( A e. V /\ { x e. ~P A | x ~< A } C_ A ) ->
        A e. dom card ) $=
      ( vy vz wcel cv csdm wbr wss wa con0 cin cvv word wi sylanbrc adantr nfcv
      breq1 cpw crab cen ccrd cdm pwexg rabexg incom inex1g syl5eqelr wtr inss1
      sseli onelon ancoms sylan2 onelss impcom inss2 elrab simpld elpwid adantl
      wal sylib sstrd selpw sylibr cdom vex ssdomg mpsyl simprd domsdomtr elind
      syl2anc gen2 dftr2 mpbir ordon trssord mp3an elong mpbiri wn simpr syl5ss
      4syl mpd ordirr mp1i w3a 3ad2ant1 elpw2g mpbird 3adant3 simp3 nfrab1 nfin
      wb nfbr elrabf 3expia mtod bren2 isnumi ) BCFZAGZBHIZABUAZUBZBJZKZLXKMZLF
      ZXNBUCIZBUDUEFXGXOXLXGXJNFXKNFZXNNFZXOBCUFXIAXJNUGXQXNXKLMNXKLUHXKLNUIUJX
      RXOXNOZXNUKZXNLJLOXSXTDGZEGZFZYBXNFZKZYAXNFPZEVDDVDYFDEYELXKYAYDYCYBLFZYA
      LFZXNLYBLXKULZUMZYGYCYHYBYAUNUOUPYEYAXJFZYABHIZYAXKFYEYABJYKYEYAYBBYDYCYG
      YAYBJZYJYGYCYMYBYAUQURUPZYDYBBJYCYDYBBYDYBXJFZYBBHIZYDYBXKFYOYPKXNXKYBLXK
      USZUMXIYPAYBXJXHYBBHTUTVEZVAVBVCVFDBVGVHYEYAYBVIIZYPYLYBNFYEYMYSEVJYNYAYB
      NVKVLYDYPYCYDYOYPYRVMVCYAYBBVNVPXIYLAYAXJXHYABHTUTQVOVQDEXNVRVSYIVTXNLWAW
      BZXNNWCWDWHZRXMXNBVIIZXNBHIZWEXPXMXNBJZUUBXMXNXKBYQXGXLWFWGZXGUUDUUBPXLXN
      BCVKRWIXMUUCXNXNFZXSUUFWEXMYTXNWJWKXGXLUUCUUFXGXLUUCWLZLXKXNXGXLXOUUCUUAW
      MUUGXNXJFZUUCXNXKFXGXLUUHUUCXMUUHUUDUUEXGUUHUUDWTXLXNBCWNRWOWPXGXLUUCWQXI
      UUCAXNXJALXKALSXIAXJWRWSZAXJSAXNBHUUIAHSABSXAXHXNBHTXBQVOXCXDXNBXEQXNBXFV
      P $.

    $( The cartesian product of numerable sets is numerable.  (Contributed by
       Mario Carneiro, 3-Mar-2013.)  (Revised by Mario Carneiro,
       29-Apr-2015.) $)
    xpnum $p |- ( ( A e. dom card /\ B e. dom card ) ->
      ( A X. B ) e. dom card ) $=
      ( vx vy ccrd cdm wcel cv cen wbr con0 wrex cxp isnum2 wa reeanv comu omcl
      co adantr omxpen xpen entr syl2an isnumi syl2anc rexlimivv sylbir syl2anb
      ex ) AEFZGCHZAIJZCKLZDHZBIJZDKLZABMZUKGZBUKGCANDBNUNUQOUMUPOZDKLCKLUSUMUP
      CDKKPUTUSCDKKULKGUOKGOZUTUSVAUTOULUOQSZKGZVBURIJZUSVAVCUTULUORTVAVBULUOMZ
      IJVEURIJVDUTULUOUAULAUOBUBVBVEURUCUDVBURUEUFUJUGUHUI $.
  $}

  ${
    $d A x y $.
    $( An alternate definition of the value of ` ( card `` A ) ` that does not
       require AC to prove.  (Contributed by Mario Carneiro, 7-Jan-2013.)
       (Revised by Mario Carneiro, 27-Apr-2015.) $)
    cardval3 $p |- ( A e. dom card ->
                     ( card ` A ) = |^| { x e. On | x ~~ A } ) $=
      ( vy ccrd cdm wcel cvv cv cen wbr con0 crab cint wceq elex wrex c0 isnum2
      cfv wne rabn0 intex 3bitr2i biimpi rabbidv inteqd df-card fvmptg syl2anc
      breq2 ) BDEZFZBGFAHZBIJZAKLZMZGFZBDSUPNBUKOULUQULUNAKPUOQTUQABRUNAKUAUOUB
      UCUDCBUMCHZIJZAKLZMUPGGDURBNZUTUOVAUSUNAKURBUMIUJUEUFCAUGUHUI $.
  $}

  ${
    $d A y $.
    $( Any numerable set is equinumerous to its cardinal number.  Proposition
       10.5 of [TakeutiZaring] p. 85.  (Contributed by Mario Carneiro,
       7-Jan-2013.) $)
    cardid2 $p |- ( A e. dom card -> ( card ` A ) ~~ A ) $=
      ( vy ccrd cdm wcel cfv cen wbr con0 crab cint cardval3 wss wne ssrab2 cvv
      cv c0 fvex syl6eqelr intex sylibr onint sylancr eqeltrd breq1 simprbi syl
      elrab ) ACDEZACFZBQZAGHZBIJZEZUKAGHZUJUKUNKZUNBALZUJUNIMUNRNZUQUNEUMBIOUJ
      UQPEUSUJUQUKPURACSTUNUAUBUNUCUDUEUOUKIEUPUMUPBUKIULUKAGUFUIUGUH $.

    $( A set is numerable iff it is equinumerous with its cardinal.
       (Contributed by Mario Carneiro, 29-Apr-2015.) $)
    isnum3 $p |- ( A e. dom card <-> ( card ` A ) ~~ A ) $=
      ( ccrd cdm wcel cfv cen wbr cardid2 con0 cardon isnumi mpan impbii ) ABCD
      ZABEZAFGZAHOIDPNAJOAKLM $.
  $}

  ${
    $d x A $.
    $( The value of the cardinal number function with an ordinal number as its
       argument.  Unlike ~ cardval , this theorem does not require the Axiom of
       Choice.  (Contributed by NM, 24-Nov-2003.)  (Revised by Mario Carneiro,
       13-Sep-2013.) $)
    oncardval $p |- ( A e. On -> ( card ` A ) = |^| { x e. On | x ~~ A } ) $=
      ( con0 wcel ccrd cdm cfv cv cen wbr crab cint wceq onenon cardval3 syl )
      BCDBEFDBEGAHBIJACKLMBNABOP $.

    $( Any ordinal number is equinumerous to its cardinal number.  Unlike
       ~ cardid , this theorem does not require the Axiom of Choice.
       (Contributed by NM, 26-Jul-2004.) $)
    oncardid $p |- ( A e. On -> ( card ` A ) ~~ A ) $=
      ( con0 wcel ccrd cdm cfv cen wbr onenon cardid2 syl ) ABCADECADFAGHAIAJK
      $.

    $( The cardinal of an ordinal number is less than or equal to the ordinal
       number.  Proposition 10.6(3) of [TakeutiZaring] p. 85.  (Contributed by
       NM, 22-Oct-2003.) $)
    cardonle $p |- ( A e. On -> ( card ` A ) C_ A ) $=
      ( vx con0 wcel ccrd cfv cv cen wbr crab cint oncardval wss breq1 intminss
      enrefg mpdan eqsstrd ) ACDZAEFBGZAHIZBCJKZABALSAAHIZUBAMACPUAUCBACTAAHNOQ
      R $.
  $}

  $( The cardinality of the empty set is the empty set.  (Contributed by NM,
     25-Oct-2003.) $)
  card0 $p |- ( card ` (/) ) = (/) $=
    ( c0 ccrd cfv wss wceq con0 wcel 0elon cardonle ax-mp ss0b mpbi ) ABCZADZMA
    EAFGNHAIJMKL $.

  ${
    $d A y $.
    $( The cardinality function is idempotent.  Proposition 10.11 of
       [TakeutiZaring] p. 85.  (Contributed by Mario Carneiro, 7-Jan-2013.) $)
    cardidm $p |- ( card ` ( card ` A ) ) = ( card ` A ) $=
      ( vy ccrd cdm wcel cfv wceq cv cen wbr con0 crab cint cardid2 ensymd entr
      wi expcom syl c0 impbid rabbidv inteqd cardval3 cardon oncardval 3eqtr4rd
      mp1i wn card0 ndmfv fveq2d 3eqtr4a pm2.61i ) ACDEZACFZCFZUPGUOBHZAIJZBKLZ
      MURUPIJZBKLZMZUPUQUOUTVBUOUSVABKUOUSVAUOAUPIJZUSVAQUOUPAANZOUSVDVAURAUPPR
      SUOUPAIJZVAUSQVEVAVFUSURUPAPRSUAUBUCBAUDUPKEUQVCGUOAUEBUPUFUHUGUOUIZTCFTU
      QUPUJVGUPTCACUKZULVHUMUN $.
  $}

  ${
    $d A x $.
    $( A set is a cardinal number iff it equals its own cardinal number.
       Proposition 10.9 of [TakeutiZaring] p. 85.  (Contributed by Mario
       Carneiro, 7-Jan-2013.) $)
    oncard $p |- ( E. x A = ( card ` x ) <-> A = ( card ` A ) ) $=
      ( cv ccrd cfv wceq wex fveq2 cardidm syl6eq eqtr4d exlimiv cvv wcel eleq1
      id fvex mpbiri eqeq2d spcegv mpcom impbii ) BACZDEZFZAGZBBDEZFZUEUHAUEBUD
      UGUEPUEUGUDDEUDBUDDHUCIJKLBMNZUHUFUHUIUGMNBDQBUGMORUEUHABMUCBFUDUGBUCBDHS
      TUAUB $.

    $( The cardinal number of a finite set is a finite ordinal.  (Contributed
       by Paul Chapman, 11-Apr-2009.)  (Revised by Mario Carneiro,
       4-Feb-2013.) $)
    ficardom $p |- ( A e. Fin -> ( card ` A ) e. _om ) $=
      ( vx cv cen wbr com wrex cfn wcel ccrd cfv isfi biimpi wi wceq cdm finnum
      wa cardid2 syl entr sylan con0 wb cardon onomeneq mpan syl5ib eleq1a syld
      expcomd rexlimiv mpcom ) ABCZDEZBFGZAHIZAJKZFIZUQUPBALMUOUQUSNBFUNFIZUQUO
      USUTUQUORZURUNOZUSVAURUNDEZUTVBUQURADEZUOVCUQAJPIVDAQASTURAUNUAUBURUCIUTV
      CVBUDAUEURUNUFUGUHUNFURUIUJUKULUM $.

    $( A finite set is equinumerous to its cardinal number.  (Contributed by
       Mario Carneiro, 21-Sep-2013.) $)
    ficardid $p |- ( A e. Fin -> ( card ` A ) ~~ A ) $=
      ( cfn wcel ccrd cdm cfv cen wbr finnum cardid2 syl ) ABCADECADFAGHAIAJK
      $.

    $( The cardinality of a natural number is the number.  Corollary 10.23 of
       [TakeutiZaring] p. 90.  (Contributed by Mario Carneiro, 7-Jan-2013.) $)
    cardnn $p |- ( A e. _om -> ( card ` A ) = A ) $=
      ( com wcel ccrd cfv cen wbr wceq con0 cdm nnon onenon cardid2 3syl wb cfn
      nnfi ficardom syl nneneq mpancom mpbid ) ABCZADEZAFGZUDAHZUCAICADJCUEAKAL
      AMNUDBCZUCUEUFOUCAPCUGAQARSUDATUAUB $.

    $( The empty set is the only numerable set with cardinality zero.
       (Contributed by Mario Carneiro, 7-Jan-2013.) $)
    cardnueq0 $p |- ( A e. dom card -> ( ( card ` A ) = (/) <-> A = (/) ) ) $=
      ( ccrd cdm wcel cfv c0 wceq cen wbr cardid2 ensymd breq2 syl6bb syl5ibcom
      en0 fveq2 card0 syl6eq impbid1 ) ABCDZABEZFGZAFGZTAUAHIZUBUCTUAAAJKUBUDAF
      HIUCUAFAHLAOMNUCUAFBEFAFBPQRS $.
  $}

  ${
    $d A x $.  $d B x $.
    $( No member of a cardinal number of a set is equinumerous to the set.
       Proposition 10.6(2) of [TakeutiZaring] p. 85.  (Contributed by Mario
       Carneiro, 9-Jan-2013.) $)
    cardne $p |- ( A e. ( card ` B ) -> -. A ~~ B ) $=
      ( vx ccrd cdm wcel cfv cen wbr wn elfvdm wi wa wss cv con0 crab adantl wb
      cint cardon oneli breq1 onintss syl cardval3 sseq1d adantr sylibrd ontri1
      sylancr sylibd con2d ex pm2.43d mpcom ) BDEFZABDGZFZABHIZJZABDKUQUSVAUQUS
      USVALUQUSMZUTUSVBUTURANZUSJZVBUTCOZBHIZCPQTZANZVCUSUTVHLZUQUSAPFZVIURABUA
      ZUBZVFUTCAVEABHUCUDUERUQVCVHSUSUQURVGACBUFUGUHUIUSVCVDSZUQUSURPFVJVMVKVLU
      RAUJUKRULUMUNUOUP $.

    $( If two sets have equal nonzero cardinalities, then they are
       equinumerous.  (This assertion and ~ carden2b are meant to replace
       ~ carden in ZF without AC.) (Contributed by Mario Carneiro,
       9-Jan-2013.) $)
    carden2a $p |- ( ( ( card ` A ) = ( card ` B ) /\ ( card ` A ) =/= (/) )
       -> A ~~ B ) $=
      ( ccrd cfv c0 wne wceq wn cen wbr df-ne wa wcel ndmfv eqeq1 syl5ibr con1d
      cdm imp cardid2 syl wi nsyl4 ensymd breq2 entr ex syl6bi syl5 mpd sylan2b
      ) ACDZEFULBCDZGZULEGZHZABIJZULEKUNUPLZUMBIJZUQURBCRZMZUSUNUPVAUNVAUOVAHUO
      UNUMEGBCNULUMEOPQSBTUAUNUPUSUQUBZUPAULIJZUNVBUPULAAUTMULAIJUOATACNUCUDUNV
      CAUMIJZVBULUMAIUEVDUSUQAUMBUFUGUHUISUJUK $.
  $}

  $( If two sets are equinumerous, then they have equal cardinalities.  (This
     assertion and ~ carden2a are meant to replace ~ carden in ZF without AC.)
     (Contributed by Mario Carneiro, 9-Jan-2013.)  (Proof shortened by Mario
     Carneiro, 27-Apr-2015.) $)
  carden2b $p |- ( A ~~ B -> ( card ` A ) = ( card ` B ) ) $=
    ( cen wbr ccrd wcel cfv wceq wa wn wss cardne biimpa cardid2 syl entr nsyl3
    con0 wb c0 ennum ensym adantr syl2anc cardon ontri1 mp2an sylibr id syl2anr
    cdm eqssd ndmfv adantl notbid eqtr4d pm2.61dan ) ABCDZAEUKZFZAEGZBEGZHURUTI
    ZVAVBVCVBVAFZJZVAVBKZVDVBACDZVCVBALVCVBBCDZBACDZVGVCBUSFZVHURUTVJABUAZMBNOU
    RVIUTABUBUCVBBAPUDQVARFZVBRFZVFVESAUEZBUEZVAVBUFUGUHVCVAVBFZJZVBVAKZVPVABCD
    ZVCVABLUTVAACDURVSURANURUIVAABPUJQVMVLVRVQSVOVNVBVAUFUGUHULURUTJZIZVATVBVTV
    ATHURAEUMUNWAVJJZVBTHURVTWBURUTVJVKUOMBEUMOUPUQ $.

  ${
    $d A x $.
    $( A set has cardinality one iff it is a singleton.  (Contributed by Mario
       Carneiro, 10-Jan-2013.) $)
    card1 $p |- ( ( card ` A ) = 1o <-> E. x A = { x } ) $=
      ( ccrd cfv c1o wceq cen wbr cv csn wex wne com wcel 1onn cardnn ax-mp 1n0
      c0 eqnetri carden2a mpan2 eqcoms ensymd carden2b impbii eqeq2i 3bitr3i
      en1 ) BCDZECDZFZBEGHZUJEFBAIJFAKULUMULEBEBGHZUKUJUKUJFUKSLUNUKESEMNUKEFOE
      PQZRTEBUAUBUCUDBEUEUFUKEUJUOUGABUIUH $.

    $( A singleton has cardinality one.  (Contributed by Mario Carneiro,
       10-Jan-2013.) $)
    cardsn $p |- ( A e. V -> ( card ` { A } ) = 1o ) $=
      ( vx wcel csn cv wceq wex ccrd cfv c1o eqid sneq eqeq2d spcegv mpi sylibr
      card1 ) ABDZAEZCFZEZGZCHZTIJKGSTTGZUDTLUCUECABUAAGUBTTUAAMNOPCTRQ $.
  $}

  $( Two sets have the dominance relationship if their cardinalities have the
     subset relationship and one is numerable.  See also ~ carddom , which uses
     AC. (Contributed by Mario Carneiro, 11-Jan-2013.)  (Revised by Mario
     Carneiro, 29-Apr-2015.) $)
  carddomi2 $p |- ( ( A e. dom card /\ B e. V ) ->
      ( ( card ` A ) C_ ( card ` B ) -> A ~<_ B ) ) $=
    ( ccrd cdm wcel wa cfv wss cdom wbr wi c0 wceq wne cvv cen cardid2 syl2anc
    wb cardnueq0 adantr biimpa ad2antlr eqbrtrd a1d fvex simprr ssdomg ad2antrr
    0domg mpsyl simprl ssn0 ndmfv necon1ai 3syl domen1 sylan9bb expr pm2.61dane
    domen2 mpbid ) ADEZFZBCFZGZADHZBDHZIZABJKZLVHMVGVHMNZGZVKVJVMAMBJVGVLAMNZVE
    VLVNTVFAUAUBUCVFMBJKVEVLBCUKUDUEUFVGVHMOZVJVKVGVOVJGZGZVHVIJKZVKVIPFVQVJVRB
    DUGVGVOVJUHZVHVIPUIULVQVHAQKZVIBQKZVRVKTVEVTVFVPARUJVQVIMOZBVDFZWAVQVJVOWBV
    SVGVOVJUMVHVIUNSWCVIMBDUOUPBRUQVTVRAVIJKWAVKVHAVIURVIBAVBUSSVCUTVA $.

  $( A set strictly dominates if its cardinal strictly dominates.  (Contributed
     by Mario Carneiro, 13-Jan-2013.) $)
  sdomsdomcardi $p |- ( A ~< ( card ` B ) -> A ~< B ) $=
    ( ccrd cfv csdm wbr cen cdm wcel wn sdom0 ndmfv breq2d mtbiri con4i cardid2
    c0 syl sdomentr mpdan ) ABCDZEFZUABGFZABEFUBBCHIZUCUDUBUDJZUBAQEFAKUEUAQAEB
    CLMNOBPRAUABST $.

  ${
    $d A x $.
    $( An infinite cardinal is a limit ordinal.  Equivalent to Exercise 4 of
       [TakeutiZaring] p. 91.  (Contributed by Mario Carneiro, 13-Jan-2013.) $)
    cardlim $p |- ( _om C_ ( card ` A ) <-> Lim ( card ` A ) ) $=
      ( vx com ccrd cfv wss wlim wceq con0 wn wcel wa cen wbr wi wb ex c0 mpbi
      wo cv csuc wrex sseq2 limom limsssuc ax-mp infensuc syl5bir sylan9r breq2
      biimpd adantl sylibrd com3r imp vex sucid mpbiri cardidm syl6eleqr cardne
      eleq2 syl a1i pm2.65d nrexdv peano1 ssel mpi n0i w3o cardon onordi ordzsl
      word 3orass ori 3syl ord mpd limomss impbii ) CADEZFZWDGZWEWDBUAZUBZHZBIU
      CZJWFWEWIBIWEWGIKZLZWIWGWDMNZWEWKWIWMOWKWIWEWMWKWIWEWMOWKWILWEWGWHMNZWMWI
      WECWHFZWKWNWIWEWOWDWHCUDULWOCWGFZWKWNCGWPWOPUECWGUFUGWKWPWNWGUHQUIUJWIWMW
      NPWKWDWHWGMUKUMUNQUOUPWIWMJZOWLWIWGWDDEZKWQWIWGWDWRWIWGWDKWGWHKWGBUQURWDW
      HWGVCUSAUTVAWGWDVBVDVEVFVGWEWJWFWERWDKZWDRHZJWJWFTZWERCKWSVHCWDRVIVJWDRVK
      WTXAWTWJWFVLZWTXATWDVPXBWDAVMVNBWDVOSWTWJWFVQSVRVSVTWAWDWBWC $.
  $}

  $( A cardinal strictly dominates its members.  Equivalent to Proposition
     10.37 of [TakeutiZaring] p. 93.  This is half of the assertion
     ~ cardsdomel and can be proven without the AC. (Contributed by Mario
     Carneiro, 15-Jan-2013.) $)
  cardsdomelir $p |- ( A e. ( card ` B ) -> A ~< B ) $=
    ( ccrd cfv wcel cdom wbr cen wn csdm wss cardon onelssi ssdomg mpsyl elfvdm
    con0 cdm cardid2 syl domentr syl2anc cardne brsdom sylanbrc ) ABCDZEZABFGZA
    BHGIABJGUGAUFFGZUFBHGZUHUFQEUGAUFKUIBLZUFAUKMAUFQNOUGBCREUJABCPBSTAUFBUAUBA
    BUCABUDUE $.

  $( A cardinal strictly dominates its members.  Equivalent to Proposition
     10.37 of [TakeutiZaring] p. 93.  (Contributed by Mario Carneiro,
     15-Jan-2013.)  (Revised by Mario Carneiro, 4-Jun-2015.) $)
  cardsdomel $p |- ( ( A e. On /\ B e. dom card ) ->
      ( A ~< B <-> A e. ( card ` B ) ) ) $=
    ( con0 wcel ccrd cdm wa csdm wbr cfv cen cardid2 ensymd sdomentr sylan2 wss
    wi wn wb mpan cdom ssdomg cardon domtriord sylibd con2d ontri1 con2bid syl5
    sylibrd expcomd imp cardsdomelir impbid1 ) ACDZBEFDZGABHIZABEJZDZUOUPUQUSQU
    OUQUPUSUQUPGAURHIZUOUSUPUQBURKIUTUPURBBLMABURNOUOUTURAPZRUSUOVAUTUOVAURAUAI
    ZUTRZURACUBURCDZUOVBVCSBUCZURAUDTUEUFUOVAUSVDUOVAUSRSVEURAUGTUHUJUIUKULABUM
    UN $.

  ${
    $d A x $.
    $( Two ways to express the property of being a cardinal number.
       (Contributed by Mario Carneiro, 15-Jan-2013.) $)
    iscard $p |- ( ( card ` A ) = A <-> ( A e. On /\ A. x e. A x ~< A ) ) $=
      ( ccrd cfv wceq con0 wcel cv csdm wbr wral cardon eleq1 mpbii wb cardonle
      wss eqss baibr syl wa cdm onelon onenon cardsdomel syl2anc ralbidva dfss3
      adantr syl6rbbr bitr3d biadan2 ) BCDZBEZBFGZAHZBIJZABKZUNUMFGUOBLUMBFMNUO
      BUMQZUNURUOUMBQZUSUNOBPUNUTUSUMBRSTUOURUPUMGZABKUSUOUQVAABUOUPBGZUAUPFGBC
      UBGZUQVAOBUPUCUOVCVBBUDUIUPBUEUFUGABUMUHUJUKUL $.
  $}

  ${
    $d A x y $.
    $( Two ways to express the property of being a cardinal number.  Definition
       8 of [Suppes] p. 225.  (Contributed by Mario Carneiro, 15-Jan-2013.) $)
    iscard2 $p |- ( ( card ` A ) = A <->
                  ( A e. On /\ A. x e. On ( A ~~ x -> A C_ x ) ) ) $=
      ( vy ccrd cfv wceq con0 wcel cv cen wbr wss wi wral cardon eleq1 mpbii wa
      crab bitri cint cardonle biantrurd eqss syl6rbbr sseq2d bitrd ssint breq1
      oncardval elrab ensymb anbi2i imbi1i impexp ralbii2 syl6bb biadan2 ) BDEZ
      BFZBGHZBAIZJKZBVBLZMZAGNZUTUSGHVABOUSBGPQVAUTBCIZBJKZCGSZUAZLZVFVAUTBUSLZ
      VKVAVLUSBLZVLRUTVAVMVLBUBUCUSBUDUEVAUSVJBCBUJUFUGVKVDAVINVFABVIUHVDVEAVIG
      VBVIHZVDMVBGHZVCRZVDMVOVEMVNVPVDVNVOVBBJKZRVPVHVQCVBGVGVBBJUIUKVQVCVOVBBU
      LUMTUNVOVCVDUOTUPTUQUR $.
  $}

  $( Two numerable sets have the dominance relationship iff their cardinalities
     have the subset relationship.  See also ~ carddom , which uses AC.
     (Contributed by Mario Carneiro, 11-Jan-2013.)  (Revised by Mario Carneiro,
     29-Apr-2015.) $)
  carddom2 $p |- ( ( A e. dom card /\ B e. dom card ) ->
                   ( ( card ` A ) C_ ( card ` B ) <-> A ~<_ B ) ) $=
    ( ccrd cdm wcel wa cfv wss cdom wbr carddomi2 csdm cen wo brdom2 wn onelssi
    cardon wi con0 ancoms domnsym syl56 con2d wb ontri1 syl6ibr carden2b eqimss
    mp2an wceq syl a1i jaod syl5bi impbid ) ACDZEZBUQEZFZACGZBCGZHZABIJZABUQKVD
    ABLJZABMJZNUTVCABOUTVEVCVFUTVEVBVAEZPZVCUTVGVEVGVBVAHZUTBAIJZVEPVAVBARZQUSU
    RVIVJSBAUQKUABAUBUCUDVATEVBTEVCVHUEVKBRVAVBUFUJUGVFVCSUTVFVAVBUKVCABUHVAVBU
    IULUMUNUOUP $.

  ${
    $d A x y $.
    $( The class of ordinal numbers dominated by a set is a cardinal number.
       Theorem 59 of [Suppes] p. 228.  (Contributed by Mario Carneiro,
       20-Jan-2013.)  (Revised by Mario Carneiro, 15-May-2015.) $)
    harcard $p |- ( card ` ( har ` A ) ) = ( har ` A ) $=
      ( vx vy char cfv ccrd wceq con0 wcel cv cen wbr wss wral cdom syl2anc cvv
      wi wa ex harcl harndom wn simpll simpr elharval simpld ontri1 simpllr vex
      sylib ssdomg ax-mp simprd domtr syl2anr endomtr sylbird mt3i rgen iscard2
      wb ssrdv mpbir2an ) ADEZFEVEGVEHIVEBJZKLZVEVFMZRZBHNAUAVIBHVFHIZVGVHVJVGS
      ZCVEVFVKCJZVEIZVLVFIZVKVMSZVNVEAOLZAUBVOVNUCZVFVLMZVPVOVJVLHIZVRVQVBVJVGV
      MUDVOVSVLAOLZVOVMVSVTSVKVMUEAVLUFUKZUGVFVLUHPVOVRVPVOVRSVGVFAOLZVPVJVGVMV
      RUIVRVFVLOLZVTWBVOVLQIVRWCRCUJVFVLQULUMVOVSVTWAUNVFVLAUOUPVEVFAUQPTURUSTV
      CTUTBVEVAVD $.
  $}

  ${
    $d A w y z $.  $d A x y z $.
    cardprclem.1 $e |- A = { x | ( card ` x ) = x } $.
    $( Lemma for ~ cardprc .  (Contributed by Mario Carneiro, 22-Jan-2013.)
       (Revised by Mario Carneiro, 15-May-2015.) $)
    cardprclem $p |- -. A e. _V $=
      ( vy vz vw cvv wcel char cfv wa con0 cdom wbr ccrd wceq ssriv domrefg syl
      cv cuni wss csdm wral cab eleq2i abid iscard simplbi ssonuni mpi elharval
      3bitri sylanbrc sseli ancli sylibr harcard fvex fveq2 eqeq12d elab2 mpbir
      wex id eleq2 eleq1 anbi12d spcev sylancl eluni sselii jctir word wn eloni
      ordn2lp 3syl pm2.65i ) BGHZBUAZWAIJZHZWBWAHZKZVTWCWDVTWALHZWAWAMNZWCVTBLU
      BWFABLATZBHZWHLHZDTWHUCNDWHUDZWIWHWHOJZWHPZAUEZHWMWJWKKBWNWHCUFWMAUGDWHUH
      UMUIQZBGUJUKZVTWFWGWPWALRSWAWAULUNBWAWBEBWAETZBHZWQFTZHZWSBHZKZFVDZWQWAHW
      RWQWQIJZHZXDBHZXCWRWQLHZXEBLWQWOUOXGXGWQWQMNZKXEXGXHWQLRUPWQWQULUQSXFXDOJ
      ZXDPZWQURWMXJAXDBWQIUSZWHXDPZWLXIWHXDWHXDOUTXLVEVACVBVCXBXEXFKFXDXKWSXDPW
      TXEXAXFWSXDWQVFWSXDBVGVHVIVJFWQBVKUQQWBBHWBOJZWBPZWAURWMXNAWBBWAIUSWHWBPZ
      WLXMWHWBWHWBOUTXOVEVACVBVCVLVMVTWFWAVNWEVOWPWAVPWAWBVQVRVS $.
  $}

  ${
    $d x y $.
    $( The class of all cardinal numbers is not a set (i.e. is a proper class).
       Theorem 19.8 of [Eisenberg] p. 310.  In this proof (which does not use
       AC), we cannot use Cantor's construction ~ canth3 to ensure that there
       is always a cardinal larger than a given cardinal, but we can use
       Hartogs' construction ~ hartogs to construct (effectively)
       ` ( aleph `` suc A ) ` from ` ( aleph `` A ) ` , which achieves the same
       thing.  (Contributed by Mario Carneiro, 22-Jan-2013.) $)
    cardprc $p |- { x | ( card ` x ) = x } e/ _V $=
      ( vy cv ccrd cfv wceq cab cvv weq fveq2 eqeq12d cbvabv cardprclem nelir
      id ) ACZDEZPFZAGZHBSRBCZDEZTFABABIZQUAPTPTDJUBOKLMN $.
  $}

  ${
    $d A x y $.
    $( The union of a set of cardinals is a cardinal.  Theorem 18.14 of [Monk1]
       p. 133.  (Contributed by Mario Carneiro, 20-Jan-2013.) $)
    carduni $p |- ( A e. V ->
                  ( A. x e. A ( card ` x ) = x -> ( card ` U. A ) = U. A ) ) $=
      ( vy wcel cv ccrd cfv wceq wa wss con0 id cardon syl5 imp syl wi onenon
      wb wral wn fveq2 eqeq12d rspcv eleq1 mpbii syl6com ssrdv ssonuni cardonle
      cuni onirri wex eluni cdom elssuni ssdomg adantl ax-mp syl6eqelr carddom2
      wbr syl2an sylibrd sseq1 adantr sylibd ssel syl6 com3r syld com4r exlimiv
      cdm sylbi com13 sylancom mtoi word onordi eloni ordtri4 sylancr mpbir2and
      ex ) BCEZAFZGHZWHIZABUAZBULZGHZWLIZWGWKJZWNWMWLKZWMWLEZUBZWOWLLEZWPWGWKWS
      WKBLKWGWSWKDBLDFZBEZWKWTGHZWTIZWTLEZWJXCAWTBWHWTIZWIXBWHWTWHWTGUCXEMUDUEZ
      XCXBLEZXDWTNZXBWTLUFUGUHUIBCUJOPZWLUKQWOWQWMWMEZWMWLNZUMWGWKWSWQXJRZXIWSW
      KXLWQWKWSXJWQWMWTEZXAJZDUNWKWSXJRRZDWMBUOXNXODXMXAXOXAWKWSXMXJXAWKXCWSXMX
      JRZRXFXCWSXAXPXCWSXAXPRXCWSJZXAWTWMKZXPXQXAXBWMKZXRXQXAWTWLUPVCZXSXAWTWLK
      ZXQXTWTBUQWSYAXTRXCWTWLLURUSOXCWTGVOZEWLYBEXSXTTWSXCWTXBYBXCMXGXBYBEXHXBS
      UTVAWLSWTWLVBVDVEXCXSXRTWSXBWTWMVFVGVHWTWMWMVIVJWFVKVLVMPVNVPVQPVRVSWOWMV
      TWLVTZWNWPWRJTWMXKWAWOWSYCXIWLWBQWMWLWCWDWEWF $.
  $}

  ${
    $d x y z A $.  $d y z B $.
    $( The indexed union of a set of cardinals is a cardinal.  (Contributed by
       NM, 3-Nov-2003.) $)
    cardiun $p |- ( A e. V -> ( A. x e. A ( card ` B ) = B ->
                  ( card ` U_ x e. A B ) = U_ x e. A B ) ) $=
      ( vz vy wcel ccrd cfv wceq wral ciun wa cv wrex cab cuni cvv abrexexg vex
      eqeq1 rexbidv elab cardidm fveq2 id 3eqtr4a rexlimivw rgen carduni mpisyl
      sylbi fvex dfiun2 fveq2i 3eqtr4g adantr iuneq2 adantl fveq2d 3eqtr3d ex )
      BDGZCHIZCJABKZABCLZHIZVFJVCVEMZABVDLZHIZVIVGVFVCVJVIJVEVCENZVDJZABOZEPZQZ
      HIZVOVJVIVCVNRGFNZHIZVQJZFVNKVPVOJAEBVDDSVSFVNVQVNGVQVDJZABOZVSVMWAEVQFTV
      KVQJVLVTABVKVQVDUAUBUCVTVSABVTVDHIVDVRVQCUDVQVDHUEVTUFUGUHULUIFVNRUJUKVIV
      OHAEBVDCHUMUNZUOWBUPUQVHVIVFHVEVIVFJVCABVDCURUSZUTWCVAVB $.
  $}

  $( If ` A ` is equinumerous to a natural number, then that number is its
     cardinal.  (Contributed by Mario Carneiro, 11-Jan-2013.) $)
  cardennn $p |- ( ( A ~~ B /\ B e. _om ) -> ( card ` A ) = B ) $=
    ( cen wbr com wcel ccrd cfv carden2b cardnn sylan9eq ) ABCDBEFAGHBGHBABIBJK
    $.

  $( The cardinality of the successor of an infinite ordinal.  (Contributed by
     Mario Carneiro, 11-Jan-2013.) $)
  cardsucinf $p |- ( ( A e. On /\ _om C_ A )
         -> ( card ` suc A ) = ( card ` A ) ) $=
    ( con0 wcel com wss ccrd cfv csuc cen wbr wceq infensuc carden2b syl eqcomd
    wa ) ABCDAEPZAFGZAHZFGZQASIJRTKALASMNO $.

  $( The cardinality of the successor of a finite ordinal (natural number).
     This theorem does not hold for infinite ordinals; see ~ cardsucinf .
     (Contributed by NM, 7-Nov-2008.) $)
  cardsucnn $p |- ( A e. _om -> ( card ` suc A ) = suc ( card ` A ) ) $=
    ( com wcel csuc ccrd cfv wceq peano2 cardnn syl suceq eqtr4d ) ABCZADZEFZNA
    EFZDZMNBCONGAHNIJMPAGQNGAIPAKJL $.

  $( The set of natural numbers is a cardinal number.  Theorem 18.11 of [Monk1]
     p. 133.  (Contributed by NM, 28-Oct-2003.) $)
  cardom $p |- ( card ` _om ) = _om $=
    ( com ccrd cfv wcel wceq cen wbr con0 omelon oncardid ax-mp csdm wn sdomnen
    nnsdom syl mt2 wss wo cardonle cardon onsseli mpbi mtpor ) ABCZADZUEAEZUFUE
    AFGZAHDZUHIAJKUFUEALGUHMUEOUEANPQUEARZUFUGSUIUJIATKUEAAUAIUBUCUD $.

  $( Two numerable sets are equinumerous iff their cardinal numbers are equal.
     Unlike ~ carden , the Axiom of Choice is not required.  (Contributed by
     Mario Carneiro, 22-Sep-2013.) $)
  carden2 $p |- ( ( A e. dom card /\ B e. dom card ) ->
               ( ( card ` A ) = ( card ` B ) <-> A ~~ B ) ) $=
    ( ccrd cdm wcel wa cfv wss cdom wbr wceq cen carddom2 ancoms anbi12d bicomi
    wb eqss sbthb 3bitr3g ) ACDZEZBUAEZFZACGZBCGZHZUFUEHZFZABIJZBAIJZFUEUFKZABL
    JUDUGUJUHUKABMUCUBUHUKQBAMNOULUIUEUFRPABST $.

  $( A numerable set is strictly dominated by another iff their cardinalities
     are strictly ordered.  (Contributed by Stefan O'Rear, 30-Oct-2014.)
     (Revised by Mario Carneiro, 29-Apr-2015.) $)
  cardsdom2 $p |- ( ( A e. dom card /\ B e. dom card ) ->
    ( ( card ` A ) e. ( card ` B ) <-> A ~< B ) ) $=
    ( ccrd cdm wcel wa cfv wss wne cdom wbr wn csdm carddom2 carden2 necon3abid
    cen anbi12d con0 cardon wb onelpss mp2an brsdom 3bitr4g ) ACDZEBUFEFZACGZBC
    GZHZUHUIIZFZABJKZABQKZLZFUHUIEZABMKUGUJUMUKUOABNUGUNUHUIABOPRUHSEUISEUPULUA
    ATBTUHUIUBUCABUDUE $.

  $( Trichotomy of dominance for numerable sets (does not use AC).
     (Contributed by Mario Carneiro, 29-Apr-2015.) $)
  domtri2 $p |- ( ( A e. dom card /\ B e. dom card ) ->
    ( A ~<_ B <-> -. B ~< A ) ) $=
    ( ccrd cdm wcel wa cfv wss cdom wbr csdm wn carddom2 wb cardon ontri1 mp2an
    con0 cardsdom2 ancoms notbid syl5bb bitr3d ) ACDZEZBUDEZFZACGZBCGZHZABIJBAK
    JZLZABMUJUIUHEZLZUGULUHREUIREUJUNNAOBOUHUIPQUGUMUKUFUEUMUKNBASTUAUBUC $.

  $( Strict dominance and elementhood are the same for finite ordinals.
     (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
  nnsdomel $p |- ( ( A e. _om /\ B e. _om ) -> ( A e. B <-> A ~< B ) ) $=
    ( com wcel ccrd cfv csdm wbr wceq cardnn eleq12 syl2an cdm con0 nnon onenon
    wa wb syl cardsdom2 bitr3d ) ACDZBCDZQAEFZBEFZDZABDZABGHZUBUDAIUEBIUFUGRUCA
    JBJUDAUEBKLUBAEMZDZBUIDZUFUHRUCUBANDUJAOAPSUCBNDUKBOBPSABTLUA $.

  ${
    $d x A $.
    $( An alternate version of the value of the cardinal number of a set.
       Compare ~ cardval .  This theorem could be used to give us a simpler
       definition of ` card ` in place of ~ df-card .  It apparently does not
       occur in the literature.  (Contributed by NM, 7-Nov-2003.) $)
    cardval2 $p |- ( A e. dom card -> ( card ` A ) = { x e. On | x ~< A } ) $=
      ( ccrd cdm wcel cfv cv con0 csdm wbr wa cab wb cardsdomel ancoms pm5.32da
      crab cardon oneli pm4.71ri syl6rbbr abbi2dv df-rab syl6eqr ) BCDEZBCFZAGZ
      HEZUGBIJZKZALUIAHQUEUJAUFUEUJUHUGUFEZKUKUEUHUIUKUHUEUIUKMUGBNOPUKUHUFUGBR
      STUAUBUIAHUCUD $.
  $}

  ${
    $d A c f a $.  $d B c f a $.
    $( An infinite set contains subsets equinumerous to every finite set.
       Extension of ~ isinf from finite ordinals to all finite sets.
       (Contributed by Stefan O'Rear, 8-Oct-2014.) $)
    isinffi $p |- ( ( -. A e. Fin /\ B e. Fin ) -> E. f f : B -1-1-> A ) $=
      ( vc va cfn wcel wn wa cv wss ccrd cfv cen wbr wf1 wex com wral syl2anc
      ficardom isinf wceq anbi2d exbidv rspcva syl2anr simprr ficardid ad2antlr
      breq2 wf1o entr ensymd bren sylib f1of1 adantl simplrl f1ss ex eximdv mpd
      exlimddv ) AFGHZBFGZIZDJZAKZVHBLMZNOZIZBACJZPZCQZDVFVJRGVIVHEJZNOZIZDQZER
      SVLDQZVEBUADAEUBVSVTEVJRVPVJUCZVRVLDWAVQVKVIVPVJVHNUKUDUEUFUGVGVLIZBVHVMU
      LZCQZVOWBBVHNOWDWBVHBWBVKVJBNOZVHBNOVGVIVKUHVFWEVEVLBUIUJVHVJBUMTUNBVHCUO
      UPWBWCVNCWBWCVNWBWCIBVHVMPZVIVNWCWFWBBVHVMUQURVGVIVKWCUSBVHAVMUTTVAVBVCVD
      $.

    $( Trichotomy of dominance without AC when one set is finite.  (Contributed
       by Stefan O'Rear, 30-Oct-2014.)  (Revised by Mario Carneiro,
       27-Apr-2015.) $)
    fidomtri $p |- ( ( A e. Fin /\ B e. V ) -> ( A ~<_ B <-> -. B ~< A ) ) $=
      ( va cfn wcel wa cdom wbr csdm wn domnsym wi cdm wb finnum adantr domtri2
      ccrd syl2an biimprd wf1 wex isinffi ancoms adantlr brdomg ad2antlr mpbird
      cv a1d pm2.61dan impbid2 ) AEFZBCFZGZABHIZBAJIKZABLUPBEFZURUQMUPUSGUQURUP
      ASNZFZBUTFUQUROUSUNVAUOAPQBPABRTUAUPUSKZGZUQURVCUQABDUJUBDUCZUNVBVDUOVBUN
      VDBADUDUEUFUOUQVDOUNVBABCDUGUHUIUKULUM $.

    $( Trichotomy of dominance without AC when one set is finite.  (Contributed
       by Stefan O'Rear, 30-Oct-2014.)  (Revised by Mario Carneiro,
       7-May-2015.) $)
    fidomtri2 $p |- ( ( A e. V /\ B e. Fin ) -> ( A ~<_ B <-> -. B ~< A ) ) $=
      ( wcel cfn wa cdom wbr csdm wn domnsym cen sdomdom con3i fidomtri syl5ibr
      wb ancoms wi ensym endom syl a1i jcad brsdom syl6ibr con1d impbid2 ) ACDZ
      BEDZFZABGHZBAIHZJABKUKULUMUKULJZBAGHZBALHZJZFUMUKUNUOUQUNUOUKABIHZJZURULA
      BMNUJUIUOUSQBACORPUNUQSUKUPULUPABLHULBATABUAUBNUCUDBAUEUFUGUH $.
  $}

  $( The Hartogs number of a well-orderable set strictly dominates the set.
     (Contributed by Mario Carneiro, 15-May-2015.) $)
  harsdom $p |- ( A e. dom card -> A ~< ( har ` A ) ) $=
    ( ccrd cdm wcel char cfv csdm cdom wn harndom wb con0 harcl onenon ax-mp wa
    wbr domtri2 con2bid mpan mpbiri ) ABCZDZAAEFZGQZUDAHQZIZAJUDUBDZUCUEUGKUDLD
    UHAMUDNOUHUCPUFUEUDARSTUA $.

  ${
    $d x y A $.
    $( Any well-orderable set is strictly dominated by an ordinal number.
       (Contributed by Jeff Hankins, 22-Oct-2009.)  (Proof shortened by Mario
       Carneiro, 15-May-2015.) $)
    onsdom $p |- ( A e. dom card -> E. x e. On A ~< x ) $=
      ( ccrd cdm wcel char cfv con0 csdm wbr cv wrex harcl harsdom breq2 rspcev
      sylancr ) BCDEBFGZHEBRIJZBAKZIJZAHLBMBNUASARHTRBIOPQ $.

    $( An alternate expression for the Hartogs number of a well-orderable set.
       (Contributed by Mario Carneiro, 15-May-2015.) $)
    harval2 $p |- ( A e. dom card ->
      ( har ` A ) = |^| { x e. On | A ~< x } ) $=
      ( vy ccrd cdm wcel char cfv cv csdm wbr con0 crab cint wss wral cdom wceq
      wi wa harval adantr domsdomtr sdomel syl5 imp ancoms 3impb rabssdv adantl
      an4s eqsstrd expr ralrimiva ssintrab sylibr harcl a1i harsdom breq2 elrab
      sylanbrc intss1 syl eqssd ) BDEZFZBGHZBAIZJKZALMZNZVGVJVHVIOZSZALPVHVLOVG
      VNALVGVILFZVJVMVGVOVJTZTVHCIZBQKZCLMZVIVGVHVSRVPCVFBUAUBVPVSVIOVGVPVRCLVI
      VPVQLFZVRVQVIFZVTVRTVPWAVTVOVRVJWAVTVOTZVRVJTZWAWCVQVIJKWBWAVQBVIUCVQVIUD
      UEUFUKUGUHUIUJULUMUNVJAVHLUOUPVGVHVKFZVLVHOVGVHLFZBVHJKZWDWEVGBUQURBUSVJW
      FAVHLVIVHBJUTVAVBVHVKVCVDVE $.
  $}

  ${
    $d A x y $.
    $( The smallest ordinal that strictly dominates a set is a cardinal, if it
       exists.  (Contributed by Mario Carneiro, 2-Feb-2013.) $)
    cardmin2 $p |- ( E. x e. On A ~< x <->
                      ( card ` |^| { x e. On | A ~< x } ) =
                               |^| { x e. On | A ~< x } ) $=
      ( vy cv csdm wbr con0 cint ccrd wceq wcel wa cen wn wss sylan sylanb nfcv
      c0 cvv wrex crab cfv wral onintrab2 biimpi cdom adantr word eloni ordelss
      ssdomg sylc onelon nfrab1 nfint nfbr breq2 onminsb sdomentr ssrab2 onnmin
      wi elrab mpan sylbir expcom syl impancom con2d ensym nsyl brsdom sylanbrc
      mpd ralrimiva iscard wne vprc inteq int0 syl6eq eleq1d mtbiri eleq1 mpbii
      fvex necon2ai rabn0 sylib impbii ) BADZEFZAGUAZWMAGUBZHZIUCZWPJZWNWPGKZCD
      ZWPEFZCWPUDWRWNWSWMAUEZUFZWNXACWPWNWTWPKZLZWTWPUGFZWTWPMFZNXAXEWSWTWPOZXF
      WNWSXDXCUHWNWSXDXHXBWSWPUIXDXHWPUJWPWTUKPQWTWPGULUMXEWPWTMFZXGXEWTGKZXINZ
      WNWSXDXJXBWPWTUNQWNXJXDXKWNXJLXIXDWNXIXJXDNZWNXILBWTEFZXJXLVCWNBWPEFZXIXM
      WMXNAABWPEABRAERAWOWMAGUOUPUQWLWPBEURUSBWPWTUTPXJXMXLXJXMLWTWOKZXLWMXMAWT
      GWLWTBEURVDWOGOXOXLWMAGVAWOWTVBVEVFVGVHVIVJVIVOWTWPVKVLWTWPVMVNVPCWPVQVNW
      RWOSVRWNWRWOSWOSJZWPTKZWRXPXQTTKVSXPWPTTXPWPSHTWOSVTWAWBWCWDWRWQTKXQWPIWG
      WQWPTWEWFVLWHWMAGWIWJWK $.
  $}

  ${
    $d x A $.
    $( In Theorem *54.43 of [WhiteheadRussell] p. 360, the number 1 is defined
       as the collection of all sets with cardinality 1 (i.e. all singletons;
       see ~ card1 ), so that their ` A e. 1 ` means, in our notation,
       ` A e. { x | ( card `` x ) = 1o } ` .  Here we show that this is
       equivalent to ` A ~~ 1o ` so that we can use the latter more convenient
       notation in ~ pm54.43 .  (Contributed by NM, 4-Nov-2013.) $)
    pm54.43lem $p |- ( A ~~ 1o <-> A e. { x | ( card ` x ) = 1o } ) $=
      ( c1o cen wbr ccrd cfv wceq cv cab wcel carden2b 1onn cardnn ax-mp syl6eq
      com eqeq2i biimpri c0 cdm wb 1n0 neii eqeq1 mtbiri ndmfv nsyl2 1on onenon
      con0 carden2 sylancl mpbid impbii cvv elex syl fveq2 eqeq1d elab3 bitr4i
      ) BCDEZBFGZCHZBAIZFGZCHZAJKVCVEVCVDCFGZCBCLCQKVICHMCNOZPVEVDVIHZVCVKVEVIC
      VDVJRSVEBFUAZKZCVLKZVKVCUBVEVDTHZVMVEVOCTHCTUCUDVDCTUEUFBFUGUHZCUKKVNUICU
      JOBCULUMUNUOVHVEABVEVMBUPKVPBVLUQURVFBHVGVDCVFBFUSUTVAVB $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Theorem *54.43 of [WhiteheadRussell] p. 360.  "From this proposition it
       will follow, when arithmetical addition has been defined, that 1+1=2."
       See ~ http://en.wikipedia.org/wiki/Principia_Mathematica#Quotations .
       This theorem states that two sets of cardinality 1 are disjoint iff
       their union has cardinality 2.

       Whitehead and Russell define 1 as the collection of all sets with
       cardinality 1 (i.e. all singletons; see ~ card1 ), so that their
       ` A e. 1 ` means, in our notation, ` A e. { x | ( card `` x ) = 1o } `
       which is the same as ` A ~~ 1o ` by ~ pm54.43lem .  We do not have
       several of their earlier lemmas available (which would otherwise be
       unused by our different approach to arithmetic), so our proof is longer.
       (It is also longer because we must show every detail.)

       Theorem ~ pm110.643 shows the derivation of 1+1=2 for cardinal numbers
       from this theorem.  (Contributed by NM, 4-Apr-2007.) $)
    pm54.43 $p |- ( ( A ~~ 1o /\ B ~~ 1o ) -> ( ( A i^i B ) = (/) <->
                  ( A u. B ) ~~ 2o ) ) $=
      ( vx vy c1o cen wbr wa cin c0 wceq cun c2o csn wi 1on ensn1 wn ex csdm cv
      con0 elexi ensymi entr mpan2 wcel onirri disjsn mpbir mpanr2 sylan2 df-2o
      unen csuc df-suc eqtri breq2i syl6ibr wex en1 wne unidm sneq syl5reqr vex
      uneq2d 1sdom2 ensdomtr mp2an syl6eqbr sdomnen syl necon2ai disjsn2 uneq12
      a1i breq1d ineq12 eqeq1d 3imtr4d exlimdv exlimiv imp syl2anb impbid ) AEF
      GZBEFGZHZABIZJKZABLZMFGZWIWKWLEENZLZFGZWMWHWGBWNFGZWKWPOWHEWNFGWQWNEEEUBP
      UCQUDBEWNUEUFWGWQHZWKWPWRWKEWNIJKZWPWSEEUGREPUHEEUIUJAEBWNUNUKSULMWOWLFME
      UOWOUMEUPUQURUSWGACUAZNZKZCUTZBDUAZNZKZDUTZWMWKOZWHCAVADBVAXCXGXHXBXGXHOC
      XBXFXHDXBXFXHXBXFHZXAXELZMFGZXAXEIZJKZWMWKXKXMOXIXKWTXDVBXMXKWTXDWTXDKZXJ
      MTGXKRXNXJXAMTXNXAXAXALXJXAVCXNXAXEXAWTXDVDVGVEXAEFGEMTGXAMTGWTCVFQVHXAEM
      VIVJVKXJMVLVMVNWTXDVOVMVQXIWLXJMFAXABXEVPVRXIWJXLJAXABXEVSVTWASWBWCWDWEWF
      $.
  $}

  $( Lemma for ~ pr2ne .  (Contributed by FL, 17-Aug-2008.) $)
  pr2nelem $p |- ( ( A e. C /\ B e. D /\ A =/= B ) -> { A , B } ~~ 2o ) $=
    ( wcel wne cpr c2o cen wbr csn cin c0 wceq disjsn2 wi c1o ensn1g wa cun ex
    pm54.43 df-pr breq1i syl6bbr biimpd syl2an syl7 3imp ) ACEZBDEZABFZABGZHIJZ
    ULAKZBKZLMNZUJUKUNABOUJUKUQUNPZUJUOQIJZUPQIJZURUKACRBDRUSUTSZUQUNVAUQUOUPTZ
    HIJUNUOUPUBUMVBHIABUCUDUEUFUGUAUHUI $.

  $( If an unordered pair has two elements they are different.  (Contributed by
     FL, 14-Feb-2010.) $)
  pr2ne $p |- ( ( A e. C /\ B e. D ) -> ( { A , B } ~~ 2o <-> A =/= B ) ) $=
    ( wcel wa cpr c2o cen wbr wne wceq wn wi c1o entr ax-mp ex syl cvv csdm a1d
    preq2 eqcoms enpr1g 1sdom2 sdomnen ensym mtoi prex eqeng syl11 a1dd pm2.43a
    com23 imp syl5 necon2ad pr2nelem 3expia impbid ) ACEZBDEZFZABGZHIJZABKZVDVF
    ABABLVEAAGZLZVDVFMZVIBABAAUCUDVIVDVJVBVCVIVDVJNZNVBVIVCVKVBVHOIJZVIVCVKNNAC
    UEVLVIVKVCVEVHIJZVLVKVIVMVLVKVMVLFVEOIJZVKVEVHOPVNVJVDVNVFOHIJZOHUAJVOMUFOH
    UGQVNOVEIJZVFVONVEOUHVPVFVOOVEHPRSUIUBSRVETEVIVMNABUJVEVHTUKQULUMSUOUPUNUQU
    RVBVCVGVFABCDUSUTVA $.

  $( An unordered pair has at most two elements.  (Contributed by FL,
     22-Feb-2011.) $)
  prdom2 $p |- ( ( A e. C /\ B e. D ) -> { A , B } ~<_ 2o ) $=
    ( wcel wa cpr c2o cdom wbr wi wceq csn dfsn2 c1o cen ensn1g csdm endom syl
    1sdom2 domsdomtr sdomdom sylancl syl5eqbrr preq2 breq1d syl5ibr adantrd wne
    eqcoms pr2ne biimprd syl6com pm2.61ine ) ACEZBDEZFZABGZHIJZKABABLUPUTUQUPUT
    KBAUPUTBALZAAGZHIJUPVBAMZHIANUPVCOPJZVCHIJZACQVDVCOIJZOHRJZVEVCOSUAVFVGFVCH
    RJVEVCOHUBVCHUCTUDTUEVAUSVBHIBAAUFUGUHUKUIURABUJZUSHPJZUTURVIVHABCDULUMUSHS
    UNUO $.

  $( Building a set with two elements.  (Contributed by FL, 11-Aug-2008.)
     (Revised by Mario Carneiro, 10-Sep-2015.) $)
  en2eqpr $p |- ( ( C ~~ 2o /\ A e. C /\ B e. C )
     -> ( A =/= B -> C = { A , B } ) ) $=
    ( c2o cen wbr wcel w3a wne cpr wceq wa cfn wss com 2onn nnfi simpl1 syl2anc
    ax-mp enfii sylancr simpl2 simpl3 prssi pr2nelem 3expa 3adantl1 ensymd entr
    fisseneq syl3anc eqcomd ex ) CDEFZACGZBCGZHZABIZCABJZKURUSLZUTCVACMGZUTCNZU
    TCEFZUTCKVADMGZUOVBDOGVEPDQTUOUPUQUSRZCDUAUBVAUPUQVCUOUPUQUSUCUOUPUQUSUDABC
    UESVAUTDEFZDCEFVDUPUQUSVGUOUPUQUSVGABCCUFUGUHVACDVFUIUTDCUJSUTCUKULUMUN $.

  $( Express a set of pair cardinality as the unordered pair of a given element
     and the other element.  (Contributed by Stefan O'Rear, 22-Aug-2015.) $)
  en2eleq $p |- ( ( X e. P /\ P ~~ 2o ) -> P = { X , U. ( P \ { X } ) } ) $=
    ( wcel c2o cen wbr wa csn cdif cuni cpr cfn wss wceq com adantl wne syl3anc
    c1o syl2anc 2onn nnfi ax-mp enfi mpbiri simpl csuc a1i simpr df-2o syl6breq
    dif1en en1uniel syl eldifsn sylib simpld prssi simprd necomd pr2nelem ensym
    1onn entr fisseneq eqcomd ) BACZADEFZGZBABHIZJZKZAVIALCZVLAMZVLAEFZVLANVHVM
    VGVHVMDLCZDOCVPUADUBUCADUDUEPVIVGVKACZVNVGVHUFZVIVQVKBQZVIVKVJCZVQVSGVIVJSE
    FZVTVISOCZASUGZEFVGWAWBVIVCUHVIADWCEVGVHUIUJUKVRASBULRVJUMUNVKABUOUPZUQZBVK
    AURTVIVLDEFZDAEFZVOVIVGVQBVKQWFVRWEVIVKBVIVQVSWDUSUTBVKAAVARVHWGVGADVBPVLDA
    VDTVLAVERVF $.

  $( Taking the other element twice in a pair gets back to the original
     element.  (Contributed by Stefan O'Rear, 22-Aug-2015.) $)
  en2other2 $p |- ( ( X e. P /\ P ~~ 2o ) ->
      U. ( P \ { U. ( P \ { X } ) } ) = X ) $=
    ( wcel c2o cen wbr csn cdif cuni cpr en2eleq prcom syl6eq difeq1d difprsnss
    wa syl6eqss wne simpl c1o com csuc 1onn simpr df-2o syl6breq dif1en syl3anc
    a1i en1uniel eldifsni 3syl necomd eldifsn sylanbrc snssd unieqd wceq unisng
    eqssd adantr eqtrd ) BACZADEFZPZAABGZHZIZGZHZIVFIZBVEVJVFVEVJVFVEVJVHBJZVIH
    VFVEAVLVIVEABVHJVLABKBVHLMNVHBOQVEBVJVEVCBVHRBVJCVCVDSZVEVHBVEVGTEFZVHVGCVH
    BRVETUACZATUBZEFVCVNVOVEUCUIVEADVPEVCVDUDUEUFVMATBUGUHVGUJVHABUKULUMBAVHUNU
    OUPUTUQVCVKBURVDBAUSVAVB $.

  ${
    $d A m $.  $d X m $.
    $( The cardinality of a nonempty finite set is one greater than the
       cardinality of the set with one element removed.  (Contributed by Jeff
       Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
       2-Feb-2013.) $)
    dif1card $p |- ( ( A e. Fin /\ X e. A ) -> ( card ` A ) =
                                      suc ( card ` ( A \ { X } ) ) ) $=
      ( vm cfn wcel ccrd cfv csn csuc wceq cen wbr com cun cin a1i syl 3ad2ant2
      c0 cardennn cdif wi diffi cv wrex isfi wa w3a simp3 en2sn 3adant3 disjdif
      incom eqtri wel wn word ordirr disjsn sylibr unen syl22anc difsnid df-suc
      nnord wb eqcomi breq12d 3ad2ant1 mpbid peano2 syl2anc ancoms suceq eqtr4d
      3adant1 3expib com12 rexlimiva sylbi imp ) ADEZBAEZAFGZABHZUAZFGZIZJZWBWF
      DEZWCWIUBZAWEUCWJWFCUDZKLZCMUEWKCWFUFWMWKCMWCWLMEZWMUGWIWCWNWMWIWCWNWMUHZ
      WDWLIZWHWOAWPKLZWPMEZWDWPJWOWFWENZWLWLHZNZKLZWQWOWMWEWTKLZWFWEOZSJZWLWTOS
      JZXBWCWNWMUIWCWNXCWMBWLAMUJUKXEWOXDWEWFOSWFWEUMWEAULUNPWNWCXFWMWNCCUOUPZX
      FWNWLUQXGWLVEWLURQWLWLUSUTRWFWLWEWTVAVBWCWNXBWQVFWMWCWSAXAWPKABVCXAWPJWCW
      PXAWLVDVGPVHVIVJWNWCWRWMWLVKRAWPTVLWOWGWLJZWHWPJWNWMXHWCWMWNXHWFWLTVMVPWG
      WLVNQVOVQVRVSVTQWA $.
  $}

  ${
    $d a A $.  $d w J $.  $d u w z L $.  $d m z M $.  $d w z ph $.  $d z Q $.
    $d a m u w x y z $.  $d u R $.
    leweon.1 $e |- L = { <. x , y >. |
      ( ( x e. ( On X. On ) /\ y e. ( On X. On ) )
        /\ ( ( 1st ` x ) e. ( 1st ` y ) \/
          ( ( 1st ` x ) = ( 1st ` y ) /\ ( 2nd ` x ) e. ( 2nd ` y ) ) ) ) } $.
    $( Lexicographical order is a well-ordering of ` On X. On ` .  Proposition
       7.56(1) of [TakeutiZaring] p. 54.  Note that unlike ~ r0weon , this
       order is _not_ set-like, as the preimage of ` <. 1o , (/) >. ` is the
       proper class ` ( { (/) } X. On ) ` .  (Contributed by Mario Carneiro,
       9-Mar-2013.) $)
    leweon $p |- L We ( On X. On ) $=
      ( con0 cep wwe epweon cv wcel wa c1st cfv c2nd wo copab fvex epelc anbi2i
      wbr cxp wceq orbi12i opabbii eqtr4i wexp mp2an ) EFGZUHEEUAZCGHHABEEFFCCA
      IZUIJBIZUIJKZUJLMZUKLMZJZUMUNUBZUJNMZUKNMZJZKZOZKZABPULUMUNFTZUPUQURFTZKZ
      OZKZABPDVGVBABVFVAULVCUOVEUTUMUNUKLQRVDUSUPUQURUKNQRSUCSUDUEUFUG $.

    r0weon.1 $e |- R = { <. z , w >. |
      ( ( z e. ( On X. On ) /\ w e. ( On X. On ) ) /\
        ( ( ( 1st ` z ) u. ( 2nd ` z ) ) e. ( ( 1st ` w ) u. ( 2nd ` w ) ) \/
          ( ( ( 1st ` z ) u. ( 2nd ` z ) ) = ( ( 1st ` w ) u. ( 2nd ` w ) ) /\
         z L w ) ) ) } $.
    $( A set-like well-ordering of the class of ordinal pairs.  Proposition
       7.58(1) of [TakeutiZaring] p. 54.  (Contributed by Mario Carneiro,
       7-Mar-2013.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    r0weon $p |- ( R We ( On X. On ) /\ R Se ( On X. On ) ) $=
      ( vu con0 wa wtru cep c1st cfv c2nd wcel fvex a1i wss cxp wwe wse cv cmpt
      cun wceq wbr wo copab weq fveq2 uneq12d eqid fvmpt breqan12d epelc syl6bb
      unex eqeqan12d anbi1d orbi12d pm5.32i opabbii eqtr4i wf xp1st xp2nd ordun
      word elon syl2anb syl2anc sylibr fmpti epweon leweon cima cvv cdm crn vex
      dmex rnex cres imadmres ccnv cin crab inss2 cpr ssun1 sseli 1st2nd2 inss1
      wral cop syl eqeltrrd opeldm sseldi ssun2 opelrn prssi ordunpr rgen ssrab
      sseldd mpbir2an dmres fdmi ineq2i eqtri mptpreima 3sstr4i wb funmpt resss
      wfun dmss ax-mp funimass3 mp2an mpbir eqsstr3i ssexi fnwe epse cpw vuniex
      cuni pwex xpex cab df-rab adantr elssuni adantl elpw jca sylanbrc eqsstri
      unssad unssbd elxp6 abssi fnse trud ) JJUAZEUBZUUIEUCZKLUUJUUKLCDIUUIJMFE
      AUUIAUDZNOZUULPOZUFZUEZECUDZUUIQZDUDZUUIQZKZUUQNOZUUQPOZUFZUUSNOZUUSPOZUF
      ZQZUVDUVGUGZUUQUUSFUHZKZUIZKZCDUJUVAUUQUUPOZUUSUUPOZMUHZUVNUVOUGZUVJKZUIZ
      KZCDUJHUVTUVMCDUVAUVSUVLUVAUVPUVHUVRUVKUVAUVPUVDUVGMUHUVHUURUUTUVNUVDUVOU
      VGMAUUQUUOUVDUUIUUPACUKUUMUVBUUNUVCUULUUQNULUULUUQPULUMUUPUNZUVBUVCUUQNRU
      UQPRUSUOZAUUSUUOUVGUUIUUPADUKUUMUVEUUNUVFUULUUSNULUULUUSPULUMUWAUVEUVFUUS
      NRUUSPRUSZUOZUPUVDUVGUWCUQURUVAUVQUVIUVJUURUUTUVNUVDUVOUVGUWBUWDUTVAVBVCV
      DVEZUUIJUUPVFLAUUIJUUOUUPUWAUULUUIQZUUOVJZUUOJQUWFUUMJQZUUNJQZUWGUULJJVGZ
      UULJJVHZUWHUUMVJUUNVJUWGUWIUUMUULNRZVKUUNUULPRZVKUUMUUNVIVLVMUUOUUMUUNUWL
      UWMUSVKVNVOZSZJMUBLVPSUUIFUBLABFGVQSUUPIUDZVRZVSQLUWQUWPVTZUWPWAZUFZUWRUW
      SUWPIWBZWCUWPUXAWDUSUWQUUPUUPUWPWEZVTZVRZUWTUUPUWPWFUXDUWTTZUXCUUPWGZUWTV
      RZTZUWPUUIWHZUUOUWTQZAUUIWIZUXCUXGUXIUXKTUXIUUITUXJAUXIWPUWPUUIWJZUXJAUXI
      UULUXIQZUUMUUNWKZUWTUUOUXMUUMUWTQUUNUWTQUXNUWTTUXMUWRUWTUUMUWRUWSWLUXMUUM
      UUNWQZUWPQZUUMUWRQUXMUULUXOUWPUXMUWFUULUXOUGZUXIUUIUULUXLWMZUULJJWNZWRUXI
      UWPUULUWPUUIWOWMWSZUUMUUNUWPUWLUWMWTWRXAUXMUWSUWTUUNUWSUWRXBUXMUXPUUNUWSQ
      UXTUUMUUNUWPUWLUWMXCWRXAUUMUUNUWTXDVMUXMUWHUWIUUOUXNQUXMUWFUWHUXRUWJWRUXM
      UWFUWIUXRUWKWRUUMUUNXEVMXHXFUXJAUUIUXIXGXIUXCUWPUUPVTZWHUXIUUPUWPXJUYAUUI
      UWPUUIJUUPUWNXKXLXMAUUIUUOUWTUUPUWAXNXOUUPXSUXCUYATZUXEUXHXPAUUIUUOXQUXBU
      UPTUYBUUPUWPXRUXBUUPXTYAUXCUWTUUPYBYCYDYEYFSYGLCDIUUIJMFEUUPUWEUWOJMUCLJY
      HSUXFUWPVRZVSQLUYCUWPYKZYIZUYEUAZUYEUYEUYDIYJYLZUYGYMUYCUWFUUOUWPQZKZAYNZ
      UYFUYCUYHAUUIWIUYJAUUIUUOUWPUUPUWAXNUYHAUUIYOXMUYIAUYFUYIUXQUUMUYEQZUUNUY
      EQZKUULUYFQUWFUXQUYHUXSYPUYIUYKUYLUYIUUMUYDTUYKUYIUUMUUNUYDUYHUUOUYDTUWFU
      UOUWPYQYRZUUCUUMUYDUWLYSVNUYIUUNUYDTUYLUYIUUMUUNUYDUYMUUDUUNUYDUWMYSVNYTU
      ULUYEUYEUUEUUAUUFUUBYFSUUGYTUUH $.

    infxpen.1 $e |- Q = ( R i^i ( ( a X. a ) X. ( a X. a ) ) ) $.
    infxpen.2 $e |- ( ph <-> ( ( a e. On /\
        A. m e. a ( _om C_ m -> ( m X. m ) ~~ m ) ) /\
      ( _om C_ a /\ A. m e. a m ~< a ) ) ) $.
    infxpen.3 $e |- M = ( ( 1st ` w ) u. ( 2nd ` w ) ) $.
    infxpen.4 $e |- J = OrdIso ( Q , ( a X. a ) ) $.
    $( Lemma for ~ infxpen .  (Contributed by Mario Carneiro, 9-Mar-2013.)
       (Revised by Mario Carneiro, 26-Jun-2015.) $)
    infxpenlem $p |- ( ( A e. On /\ _om C_ A ) -> ( A X. A ) ~~ A ) $=
      ( wcel con0 com wss cxp cen wbr cv wi wceq sseq2 xpeq12 anidms id breq12d
      imbi12d wral wa csdm cdom ccnv crn cdm wf1 wf1o cep wiso cvv wwe vex xpex
      cin simpll sylbi onss syl xpss12 syl2anc wse r0weon sylib wb ax-mp sylibr
      sylancr 4syl 3syl cfv ccrd csn cima adantr eqeltri sseqin2 fvex word csuc
      f1oen c1st c2nd cun unex simprbi simplbi 3adant3 onelon sylan2 elxp7 sylc
      syl2im wlim simprr simprl sylbir mpbid syl2an2r a1i wo ontr2 imp syl22anc
      ssdomg mpsyl syl2an expcom wn rspccv omelon ontri1 simplr pm2.61d endomtr
      cfn ensdomtr c0 nnsdom expr wrex entr ex mpd simpli mpisyl weinxp f1f1orn
      wess weeq1 oiiso isof1o f1ocnv f1of1 wfn f1ofn cres cnvimass eqsstri dmss
      inss2 dmxpid sseqtri sstri f1ores sylancl inex2 cnvex mpbi imaeq2i isocnv
      imaex simpr isoini epini ineq2i oicl f1of ffvelrnda ordelss eqtrd syl5eqr
      syl5eq breqtrd ensymd sucex w3a xpss simp3 eliniseg breqi brin bitri brxp
      wf sseldi xp1st eloni ordunel 3expib syl5eqel cardlim limeq bibi12d mpbii
      iscard biimpa syl21anc limsuc ssun1 cop copab eleq2i opabid 3bitri orim2i
      df-br simpl elsuc suceq syl6eleqr xp2nd ssun2 biimpri syl12anc ssrdv nnfi
      3expia xpfi isfinite sdomdomtr breq1 sylbird sylsyld domsdomtr cardsdomel
      ordelon onenon eleq2 ralrimiva fnfvrnss df1o2 1onn eqeltrri sdomdom domtr
      mp2b xpsnen ensymi xpdom2 ad2antrl sbth rexnal onelss syld bren2 simplbi2
      c1o syl6 reximdvai syl5bir r19.29 ensym domentr domnsym nsyl mpan syl5ibr
      expd impcom imim1d imp32 ancoms xpen sylan ad2antll rexlimdv exp31 tfis3
      0ex ) FUATUBFUCZFFUDZFUEUFZUBMUGZUCZVVTVVTUDZVVTUEUFZUHUBIUGZUCZVWDVWDUDZ
[encoded data, 5120 characters]
      WDVVTVWDVVJULVWBVWFVVTYRVVKXOYSVVLYTYSYPVVMVQYTYPYJVVNVVOXS $.
  $}

  ${
    $d a m s t w x y z A $.
    $( Every infinite ordinal is equinumerous to its Cartesian product.
       Proposition 10.39 of [TakeutiZaring] p. 94, whose proof we follow
       closely.  The key idea is to show that the relation ` R ` is a
       well-ordering of ` ( On X. On ) ` with the additional property that
       ` R ` -initial segments of ` ( x X. x ) ` (where ` x ` is a limit
       ordinal) are of cardinality at most ` x ` .  (Contributed by Mario
       Carneiro, 9-Mar-2013.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    infxpen $p |- ( ( A e. On /\ _om C_ A ) -> ( A X. A ) ~~ A ) $=
      ( vm vx vy vz vw vs vt cv wcel cxp wbr c1st cfv c2nd cun wceq eqid fveq2
      wa va con0 com wss cen wi wral csdm wo copab cin coi eleq1 uneq12d adantr
      bi2anan9 adantl eleq12d eqeqan12d breq12 anbi12d cbvopabv biid infxpenlem
      orbi12d ) UAIZUBJUCBIZUDVGVGKVGUELUFBVFUGTUCVFUDVGVFUHLBVFUGTTZCDEFAGIZUB
      UBKZJZHIZVJJZTZVIMNZVIONZPZVLMNZVLONZPZJZVQVTQZVIVLCIZVJJDIZVJJTWCMNZWDMN
      ZJWEWFQWCONWDONJTUITCDUJZLZTZUIZTZGHUJZVFVFKZWMKUKZWLBWMWNULZWGFIZMNZWPON
      ZPZUAWGRWKEIZVJJZWPVJJZTZWTMNZWTONZPZWSJZXFWSQZWTWPWGLZTZUIZTGHEFVIWTQZVL
      WPQZTZVNXCWJXKXLVKXAXMVMXBVIWTVJUMVLWPVJUMUPXNWAXGWIXJXNVQXFVTWSXLVQXFQXM
      XLVOXDVPXEVIWTMSVIWTOSUNZUOXMVTWSQXLXMVRWQVSWRVLWPMSVLWPOSUNZUQURXNWBXHWH
      XIXLXMVQXFVTWSXOXPUSVIWTVLWPWGUTVAVEVAVBWNRVHVCWSRWORVD $.
  $}

  $( The Cartesian product of omega (the set of ordinal natural numbers) with
     itself is equinumerous to omega.  Exercise 1 of [Enderton] p. 133.
     (Contributed by NM, 23-Jul-2004.)  (Revised by Mario Carneiro,
     9-Mar-2013.) $)
  xpomen $p |- ( _om X. _om ) ~~ _om $=
    ( com con0 wcel wss cxp cen wbr omelon ssid infxpen mp2an ) ABCAADAAEAFGHAI
    AJK $.

  $( The cartesian product of two countable sets is countable.  (Contributed by
     Thierry Arnoux, 24-Sep-2017.) $)
  xpct $p |- ( ( A ~<_ _om /\ B ~<_ _om ) -> ( A X. B ) ~<_ _om ) $=
    ( com cdom wbr wa cxp cen cvv wcel ctex adantl simpl xpdom1g syl2anc xpdom2
    omex domtr xpomen domentr sylancl ) ACDEZBCDEZFZABGZCCGZDEZUFCHEUECDEUDUECB
    GZDEZUHUFDEZUGUDBIJZUBUIUCUKUBBKLUBUCMACBINOUCUJUBBCCQPLUEUHUFROSUEUFCTUA
    $.

  $( The Cartesian product of an infinite set with itself is idempotent.  This
     theorem provides the basis for infinite cardinal arithmetic.  Proposition
     10.40 of [TakeutiZaring] p. 95.  See also ~ infxpidm .  (Contributed by
     Mario Carneiro, 9-Mar-2013.)  (Revised by Mario Carneiro, 29-Apr-2015.) $)
  infxpidm2 $p |- ( ( A e. dom card /\ _om ~<_ A ) -> ( A X. A ) ~~ A ) $=
    ( ccrd cdm wcel com cdom wbr cxp cfv cen cardid2 ensymd xpen syl2anc adantr
    wa con0 wss cardon entr cardom wb omelon onenon ax-mp carddom2 mpan biimpar
    syl5eqssr infxpen sylancr ) ABCZDZEAFGZPZAAHZABIZJGZUQAJGZUPAJGUOUPUQUQHZJG
    ZUTUQJGZURUMVAUNUMAUQJGZVCVAUMUQAAKZLZVEAUQAUQMNOUOUQQDEUQRVBASUOEEBIZUQUAU
    MVFUQRZUNEULDZUMVGUNUBEQDVHUCEUDUEEAUFUGUHUIUQUJUKUPUTUQTNUMUSUNVDOUPUQATN
    $.

  ${
    $d x y A $.  $d x y F $.  $d x y N $.  $d x y ph $.  $d w x y z W $.
    $d x y X $.  $d x y Y $.
    infxpenc.1 $e |- ( ph -> A e. On ) $.
    infxpenc.2 $e |- ( ph -> _om C_ A ) $.
    infxpenc.3 $e |- ( ph -> W e. ( On \ 1o ) ) $.
    infxpenc.4 $e |- ( ph -> F : ( _om ^o 2o ) -1-1-onto-> _om ) $.
    infxpenc.5 $e |- ( ph -> ( F ` (/) ) = (/) ) $.
    infxpenc.6 $e |- ( ph -> N : A -1-1-onto-> ( _om ^o W ) ) $.
    infxpenc.k $e |- K = ( y e. { x e. ( ( _om ^o 2o ) ^m W ) |
                     x finSupp (/) } |-> ( F o. ( y o. `' ( _I |` W ) ) ) ) $.
    infxpenc.h $e |- H =
      ( ( ( _om CNF W ) o. K ) o. `' ( ( _om ^o 2o ) CNF W ) ) $.
    infxpenc.l $e |- L = ( y e. { x e. ( _om ^m ( W .o 2o ) ) |
        x finSupp (/) } |-> ( ( _I |` _om ) o. ( y o. `' ( Y o. `' X ) ) ) ) $.
    infxpenc.x $e |- X = ( z e. 2o , w e. W |-> ( ( W .o z ) +o w ) ) $.
    infxpenc.y $e |- Y = ( z e. 2o , w e. W |-> ( ( 2o .o w ) +o z ) ) $.
    infxpenc.j $e |- J =
      ( ( ( _om CNF ( 2o .o W ) ) o. L ) o. `' ( _om CNF ( W .o 2o ) ) ) $.
    infxpenc.z $e |- Z = ( x e. ( _om ^o W ) , y e. ( _om ^o W ) |->
      ( ( ( _om ^o W ) .o x ) +o y ) ) $.
    infxpenc.t $e |- T =
      ( x e. A , y e. A |-> <. ( N ` x ) , ( N ` y ) >. ) $.
    infxpenc.g $e |- G = ( `' N o. ( ( ( H o. J ) o. Z ) o. T ) ) $.
    $( A canonical version of ~ infxpen , by a completely different approach
       (although it uses ~ infxpen via ~ xpomen ).  Using Cantor's normal form,
       we can show that ` A ^o B ` respects equinumerosity ( ~ oef1o ), so that
       all the steps of ` ( _om ^ W ) x. ( _om ^ W ) ~~ _om ^ ( 2 W ) ~~ `
       ` ( _om ^ 2 ) ^ W ~~ _om ^ W ` can be verified using bijections to do
       the ordinal commutations.  (The assumption on ` N ` can be satisfied
       using ~ cnfcom3c .)  (Contributed by Mario Carneiro, 30-May-2015.)
       (Revised by AV, 7-Jul-2019.) $)
    infxpenc $p |- ( ph -> G : ( A X. A ) -1-1-onto-> A ) $=
      ( cxp ccnv ccom wf1o com coe co f1ocnv syl comu c2o cid cres f1oi con0 c0
      a1i wcel c1o cdif omelon 2on oecl sylancl peano1 syl21anc ondif1 sylanbrc
      oen0 eldifad oef1o omf1o mpbir2an omcl syl2anc cfv wceq fvresi wb syl3anc
      mp1i oeoe f1oeq3 mpbird f1oco coa csuc df-2o oveq2i 1on syl5eq om1 oveq1d
      omsuc eqtrd oveq2d oeoa f1oeq2 mpbid omxpenlem cv cmpt2 cmpt f1of feqmptd
      cop wf f1oeq1 xpf1o ax-mp sylibr ) AFFUNZFNUOZJKUPZRUPZGUPZUPZUQZYEFIUQZA
      UROUSUTZFYFUQZYEYMYIUQZYKAFYMNUQZYNUDFYMNVAVBAYMYMUNZYMYHUQZYEYQGUQZYOAYM
      YMVCUTZYMYGUQZYQYTRUQZYRAUROVDVCUTZUSUTZYMYGUQZUUAAURVDUSUTZOUSUTZYMJUQUU
      DUUGKUQZUUEABCUUFOUROHVEOVFZJLUBOOUUIUQAOVGVJAUUFVHVKZVIUUFVKZUUFVHVLVMZV
      KAURVHVKZVDVHVKZUUJUUMAVNVJZVOURVDVPVQAUUMUUNVIURVKZUUKUUOUUNAVOVJZUUPAVR
      VJURVDWBVSUUFVTWAAOVHVLUAWCZUUOUURUCUEUFWDAUUHUUDURVDOVCUTZUSUTZKUQZABCUR
      UUCURUUSVEURVFZQPUOUPZKMURURUVBUQAURVGVJAOVHVKZUUNUUCUUSUVCUQUURVODEOVDPQ
      UHUIWEVQURUULVKZAUVEUUMUUPVNVRURVTWFVJAUVDUUNUUCVHVKUURVOOVDWGVQUUOAUUNUV
      DUUSVHVKUUQUURVDOWGWHUUPVIUVBWIVIWJAVRURVIWKWNUGUJWDAUUGUUTWJZUUHUVAWLAUU
      MUUNUVDUVFUUOUUQUURURVDOWOWMUUGUUTUUDKWPVBWQUUDUUGYMJKWRWHAUUDYTWJUUEUUAW
      LAUUDUROOWSUTZUSUTZYTAUUCUVGURUSAUUCOVLVCUTZOWSUTZUVGAUUCOVLWTZVCUTZUVJVD
      UVKOVCXAXBAUVDVLVHVKUVLUVJWJUURXCOVLXGVQXDAUVIOOWSAUVDUVIOWJUUROXEVBXFXHX
      IAUUMUVDUVDUVHYTWJUUOUURUURUROOXJWMXHUUDYTYMYGXKVBXLAYMVHVKZUVMUUBAUUMUVD
      UVMUUOUURUROVPWHZUVNBCYMYMRUKXMWHYQYTYMYGRWRWHAYEYQBCFFBXNNWIZCXNNWIZXSXO
      ZUQZYSABCFYMFYMUVOUVPAYPFYMBFUVOXPZUQZUDANUVSWJYPUVTWLABFYMNAYPFYMNXTUDFY
      MNXQVBZXRFYMNUVSYAVBXLAYPFYMCFUVPXPZUQZUDANUWBWJYPUWCWLACFYMNUWAXRFYMNUWB
      YAVBXLYBGUVQWJYSUVRWLULYEYQGUVQYAYCYDYEYQYMYHGWRWHYEYMFYFYIWRWHIYJWJYLYKW
      LUMYEFIYJYAYCYD $.
  $}

  ${
    $d b g n w x y A $.  $d b w x y ph $.  $d g w x y z W $.  $d g x y F $.
    $d g G $.  $d x y X $.  $d x y Y $.
    infxpenc2.1 $e |- ( ph -> A e. On ) $.
    infxpenc2.2 $e |- ( ph -> A. b e. A ( _om C_ b ->
      E. w e. ( On \ 1o ) ( n ` b ) : b -1-1-onto-> ( _om ^o w ) ) ) $.
    infxpenc2.3 $e |- W =
      ( `' ( x e. ( On \ 1o ) |-> ( _om ^o x ) ) ` ran ( n ` b ) ) $.
    $( Lemma for ~ infxpenc2 .  (Contributed by Mario Carneiro,
       30-May-2015.) $)
    infxpenc2lem1 $p |- ( ( ph /\ ( b e. A /\ _om C_ b ) ) ->
      ( W e. ( On \ 1o ) /\ ( n ` b ) : b -1-1-onto-> ( _om ^o W ) ) ) $=
      ( cv wcel com wa coe co con0 c1o wceq cvv wss cfv wf1o cdif wrex r19.21bi
      vy impr simpr crn cmpt ccnv oveq2 eqid ovex fvmpt ad2antrl f1ofo ad2antll
      wi wfo forn syl eqtr4d wf1 2a1i wb c2o omelon 1onn ondif2 mpbir2an eldifi
      a1i oecan syl3anc ex dom2lem f1f1orn simprl f1ocnvfv syl5eq eleq1d oveq2d
      syl2anc mpd f1oeq3 anbi12d mpbird rexlimddv ) AGKZDLZMWKUAZNNZWKMCKZOPZWK
      EKUBZUCZFQRUDZLZWKMFOPZWQUCZNZCWSAWLWMWRCWSUEZAWMXDUTGDIUFUHWNWOWSLZWRNZN
      ZXCXFWNXFUIXGWTXEXBWRXGFWOWSXGFWQUJZBWSMBKZOPZUKZULUBZWOJXGWOXKUBZXHSZXLW
      OSZXGXMWPXHXEXMWPSWNWRBWOXJWPWSXKXIWOMOUMXKUNMWOOUOUPUQXGWKWPWQVAZXHWPSWR
      XPWNXEWKWPWQURUSWKWPWQVBVCVDXGWSXKUJZXKUCZXEXNXOUTXGWSTXKVEXRXGBUGWSTXJMU
      GKZOPZXJTLXGXIWSLZMXIOUOVFXGYAXSWSLZNZXJXTSXIXSSVGZXGYCNZMQVHUDLZXIQLZXSQ
      LZYDYFYEYFMQLRMLVIVJMVKVLVNYAYGXGYBXIQRVMUQYBYHXGYAXSQRVMUSMXIXSVOVPVQVRW
      STXKVSVCWNXEWRVTWSXQWOXHXKWAWEWFWBZWCXGXAWPSXBWRVGXGFWOMOYIWDXAWPWKWQWGVC
      WHWIWJ $.

    infxpenc2.4 $e |- ( ph -> F : ( _om ^o 2o ) -1-1-onto-> _om ) $.
    infxpenc2.5 $e |- ( ph -> ( F ` (/) ) = (/) ) $.
    ${
      infxpenc2.k $e |- K = ( y e. { x e. ( ( _om ^o 2o ) ^m W ) |
                      x finSupp (/) } |-> ( F o. ( y o. `' ( _I |` W ) ) ) ) $.
      infxpenc2.h $e |- H =
        ( ( ( _om CNF W ) o. K ) o. `' ( ( _om ^o 2o ) CNF W ) ) $.
      infxpenc2.l $e |- L = ( y e. { x e. ( _om ^m ( W .o 2o ) ) |
        x finSupp (/) } |-> ( ( _I |` _om ) o. ( y o. `' ( Y o. `' X ) ) ) ) $.
      infxpenc2.x $e |- X = ( z e. 2o , w e. W |-> ( ( W .o z ) +o w ) ) $.
      infxpenc2.y $e |- Y = ( z e. 2o , w e. W |-> ( ( 2o .o w ) +o z ) ) $.
      infxpenc2.j $e |- J =
        ( ( ( _om CNF ( 2o .o W ) ) o. L ) o. `' ( _om CNF ( W .o 2o ) ) ) $.
      infxpenc2.z $e |- Z = ( x e. ( _om ^o W ) , y e. ( _om ^o W ) |->
        ( ( ( _om ^o W ) .o x ) +o y ) ) $.
      infxpenc2.t $e |- T =
        ( x e. b , y e. b |-> <. ( ( n ` b ) ` x ) , ( ( n ` b ) ` y ) >. ) $.
      infxpenc2.g $e |- G = ( `' ( n ` b ) o. ( ( ( H o. J ) o. Z ) o. T ) ) $.
      $( Lemma for ~ infxpenc2 .  (Contributed by Mario Carneiro, 30-May-2015.)
         (Revised by AV, 7-Jul-2019.) $)
      infxpenc2lem2 $p |- ( ph -> E. g A. b e. A ( _om C_ b ->
        ( g ` b ) : ( b X. b ) -1-1-onto-> b ) ) $=
        ( cmpt cvv wcel com cv wss cxp cfv wf1o wral wex con0 mptexg syl adantr
        wi wa simprl onelon syl2anc simprr c1o cdif coe co infxpenc2lem1 simpld
        c2o c0 wceq simprd infxpenc wb wf f1of vex xpex fex sylancl eqid fvmpt2
        f1oeq1 mpbird expr ralrimiva nfmpt1 nfeq2 fveq1 imbi2d ralbid spcegv
        sylc ) ATFKUOZUPUQZURTUSZUTZXIXIVAZXIXIXGVBZVCZVJZTFVDZXJXKXIXIHUSZVBZV
        CZVJZTFVDZHVEAFVFUQZXHUATFKVFVGVHAXNTFAXIFUQZXJXMAYBXJVKZVKZXMXKXIKVCZY
        DBCDEXIGJKLMNOXIIUSVBZPQRSYDYAYBXIVFUQAYAYCUAVIAYBXJVLZFXIVMVNAYBXJVOYD
        PVFVPVQUQZXIURPVRVSYFVCZABEFIPTUAUBUCVTZWAAURWBVRVSURJVCYCUDVIAWCJVBWCW
        DYCUEVIYDYHYIYJWEUFUGUHUIUJUKULUMUNWFZYDXLKWDZXMYEWGYDYBKUPUQZYLYGYDXKX
        IKWHZXKUPUQYMYDYEYNYKXKXIKWIVHXIXITWJZYOWKXKXIUPKWLWMTFKUPXGXGWNWOVNXKX
        IXLKWPVHWQWRWSXTXOHXGUPXPXGWDZXSXNTFTXPXGTFKWTXAYPXRXMXJYPXQXLWDXRXMWGX
        IXPXGXBXKXIXQXLWPVHXCXDXEXF $.
    $}

    $( Lemma for ~ infxpenc2 .  (Contributed by Mario Carneiro, 30-May-2015.)
       (Revised by AV, 7-Jul-2019.) $)
    infxpenc2lem3 $p |- ( ph -> E. g A. b e. A ( _om C_ b ->
      ( g ` b ) : ( b X. b ) -1-1-onto-> b ) ) $=
      ( vy cv com co ccom eqid vz cfv cop cmpt2 ccnv ccnf c0 cfsupp wbr c2o coe
      cmap crab cid cres cmpt comu coa infxpenc2lem2 ) ABOUACDBOIPZUTBPZUTFPUBZ
      UBOPZVBUBUCUDZEFGVBUEQHUFROVAUGUHUIZBQUJUKRZHULRUMGVCUNHUOUESSUPZSVFHUFRU
      ESZQUJHUQRUFROVEBQHUJUQRZULRUMUNQUOVCUACUJHUJCPZUQRUAPZURRUDZUACUJHHVKUQR
      VJURRUDZUESUESSUPZSQVIUFRUESZSBOQHUKRZVPVPVAUQRVCURRUDZSVDSSZVHVOVGVNHVMV
      LVQIJKLMNVGTVHTVNTVMTVLTVOTVQTVDTVRTUS $.
  $}

  ${
    $d b f g n w x y z A $.
    $( Existence form of ~ infxpenc .  A "uniform" or "canonical" version of
       ~ infxpen , asserting the existence of a single function ` g ` that
       simultaneously demonstrates product idempotence of all ordinals below a
       given bound.  (Contributed by Mario Carneiro, 30-May-2015.) $)
    infxpenc2 $p |- ( A e. On -> E. g A. b e. A ( _om C_ b ->
      ( g ` b ) : ( b X. b ) -1-1-onto-> b ) ) $=
      ( vn vf vw con0 wcel com cv coe co cfv wf1o c1o wex wceq omelon wa c0 wss
      vx vy vz cdif wrex wi wral c2o cxp cnfcom3c cen wbr comu df-2o oveq2i 1on
      csuc oesuc mp2an oe1 ax-mp oveq1i 3eqtri omxpen eqbrtri xpomen entri bren
      a1i sylib eeanv cid ccnv cpr cres cop cun ccom cmpt simpl simprl sseq2 wb
      crn oveq2 f1oeq3 cbvrexv fveq2 f1oeq1 f1oeq2 bitrd rexbidv syl5bb imbi12d
      syl cbvralv cbvmptv cnveqi fveq1i peano1 oen0 mpan2 eqid fveqf1o ad2antll
      2on mp3an23 simpld simprd infxpenc2lem3 ex exlimdvv syl5bir mp2and ) AGHZ
      IUBJZUAZXQIUCJZKLZXQDJZMZNZUCGOUEZUFZUGZUBAUHZDPZIUIKLZIEJZNZEPZICJZUAZYM
      YMUJYMYMBJMNUGCAUHBPZUCADUBUKXPYIIULUMZYLYPXPYIIIUJZIYIIIUNLZYQULYIIOURZK
      LZIOKLZIUNLZYRUIYSIKUOUPIGHZOGHYTUUBQRUQIOUSUTUUAIIUNUUCUUAIQRIVAVBVCVDUU
      CUUCYRYQULUMRRIIVEUTVFVGVHVJYIIEVIVKYHYLSYGYKSZEPDPXPYOYGYKDEVLXPUUDYODEX
      PUUDYOXPUUDSZUDFABDYJVMYITTYJVNMZVOUEVPTUUFVQUUFTVQVOVRVSZYMYAMZWEZCYDIYM
      KLZVTZVNZMCXPUUDWAUUEYGYNYMIFJZKLZUUHNZFYDUFZUGZCAUHXPYGYKWBYFUUQUBCAXQYM
      QZXRYNYEUUPXQYMIWCYEXQUUNYBNZFYDUFUURUUPYCUUSUCFYDXSUUMQXTUUNQYCUUSWDXSUU
      MIKWFXTUUNXQYBWGWPWHUURUUSUUOFYDUURUUSXQUUNUUHNZUUOUURYBUUHQUUSUUTWDXQYMY
      AWIXQUUNYBUUHWJWPXQYMUUNUUHWKWLWMWNWOWQVKUUIUULUDYDIUDJZKLZVTZVNUUKUVCCUD
      YDUUJUVBYMUVAIKWFWRWSWTUUEYIIUUGNZTUUGMTQZYKUVDUVESZXPYGYKTYIHZTIHZUVFUUC
      UIGHZUVGRXGUUCUVISUVHUVGXAIUIXBXCUTXAYIITTYJUUGUUGXDXEXHXFZXIUUEUVDUVEUVJ
      XJXKXLXMXNXO $.
  $}

  ${
    $d n B $.
    $( The union ` U_ n e. C ( A ^m n ) ` is a disjoint union.  (Contributed by
       Mario Carneiro, 17-May-2015.)  (Revised by NM, 16-Jun-2017.) $)
    iunmapdisj $p |- E* n e. C B e. ( A ^m n ) $=
      ( cv cmap co wcel wrmo wa wmo cdm wceq moeq elmapi fdm eqcomd syl moimi
      wf ax-mp moani df-rmo mpbir ) BADEZFGHZDCIUECHZUFJDKUFUGDUEBLZMZDKUFDKDUH
      NUFUIDUFUEABTZUIBAUEOUJUHUEUEABPQRSUAUBUFDCUCUD $.
  $}

  ${
    $d y B $.  $d y C $.  $d a b f n x z F $.  $d a b k m y z G $.  $d w z K $.
    $d a b f k m n x y z A $.  $d a b k m n w x y z ph $.
    fseqenlem.a $e |- ( ph -> A e. V ) $.
    fseqenlem.b $e |- ( ph -> B e. A ) $.
    fseqenlem.f $e |- ( ph -> F : ( A X. A ) -1-1-onto-> A ) $.
    fseqenlem.g $e |- G = seqom ( ( n e. _V , f e. _V |->
      ( x e. ( A ^m suc n ) |-> ( ( f ` ( x |` n ) ) F ( x ` n ) ) ) ) ,
      { <. (/) , B >. } ) $.
    $( Lemma for ~ fseqen .  (Contributed by Mario Carneiro, 17-May-2015.) $)
    fseqenlem1 $p |- ( ( ph /\ C e. _om ) ->
      ( G ` C ) : ( A ^m C ) -1-1-> A ) $=
      ( wcel cfv wceq wb syl cvv vy vm va vb vz com co wf1 cv fveq2 f1eq1 oveq2
      cmap wi f1eq2 bitrd imbi2d c0 cop csuc snex cres cmpt cmpt2 seqom0g ax-mp
      csn syl6eq weq wss wf1o 0ex f1osng sylancr f1of1 snssd f1ss syl2anc map0e
      c1o df1o2 mpbird wral cxp ad2antrr f1of f1f ad2antll adantr elmapi adantl
      wa wf sssucid fssres sylancl vex elmapg ffvelrnd sucid ffvelrn eqid fmptd
      fovrnd seqomsuc ad2antrl reseq1 fveq2d fveq1 oveq12d cbvmptv suceq oveq2d
      fvex simpr reseq2 fveq12d simpl mpteq12dv nfcv cbvmpt2 ovex mptex ovmpt2a
      syl5eq mp2an feq1d wfn ffn a1i fvreseq eqeq12d fveq1d fvmpt eqtrd opelxpi
      df-ov f1fveq syl12anc syl6bb syl21anc ralsn bicomi anbi12d simplrr anbi1d
      opth 3bitrd eqfnfv cun df-suc raleqi ralunb bitri biimpd ralrimivva dff13
      3bitr4d sylanbrc expr expcom finds2 vtoclga impcom ) EUFOACEUMUGZCEIPZUHZ
      ACUAUIZUMUGZCUVHIPZUHZUNAUVGUNUAEUFUVHEQZUVKUVGAUVLUVKUVICUVFUHZUVGUVLUVJ
      UVFQUVKUVMRUVHEIUJUVICUVJUVFUKSUVLUVIUVEQUVMUVGRUVHECUMULUVIUVECUVFUOSUPU
      QUVKCURUMUGZCURDUSZVGZUHZCUBUIZUMUGZCUVRIPZUHZCUVRUTZUMUGZCUWBIPZUHZAUAUB
      UVHURQZUVKUVICUVPUHZUVQUWFUVJUVPQUVKUWGRUWFUVJURIPZUVPUVHURIUJUVPTOUWHUVP
      QUVOVAGFTTBCGUIZUTZUMUGZBUIZUWIVBZFUIZPZUWIUWLPZHUGZVCZVDZIUVPTNVEVFVHUVI
      CUVJUVPUKSUWFUVIUVNQUWGUVQRUVHURCUMULUVIUVNCUVPUOSUPUAUBVIZUVKUVICUVTUHZU
      WAUWTUVJUVTQUVKUXARUVHUVRIUJUVICUVJUVTUKSUWTUVIUVSQUXAUWARUVHUVRCUMULUVIU
      VSCUVTUOSUPUVHUWBQZUVKUVICUWDUHZUWEUXBUVJUWDQUVKUXCRUVHUWBIUJUVICUVJUWDUK
      SUXBUVIUWCQUXCUWERUVHUWBCUMULUVIUWCCUWDUOSUPAUVQURVGZCUVPUHZAUXDDVGZUVPUH
      ZUXFCVJUXEAUXDUXFUVPVKZUXGAURTODCOUXHVLLURDTCVMVNUXDUXFUVPVOSADCLVPUXDUXF
      CUVPVQVRAUVNUXDQUVQUXERAUVNVTUXDACJOZUVNVTQKCJVSSWAVHUVNUXDCUVPUOSWBAUVRU
      FOZUWAUWEUNAUXJUWAUWEAUXJUWAWLZWLZUWCCUWDWMZUCUIZUWDPZUDUIZUWDPZQZUCUDVIZ
      UNZUDUWCWCUCUWCWCUWEUXLUXMUWCCUEUWCUEUIZUVRVBZUVTPZUVRUYAPZHUGZVCZWMUXLUE
      UWCUYECUYFUXLUYAUWCOZWLZUYCUYDCCCHUYHCCWDZCHVKZUYICHWMAUYJUXKUYGMWEUYICHW
      FSUYHUVSCUYBUVTUXLUVSCUVTWMZUYGUWAUYKAUXJUVSCUVTWGWHZWIUYHUYBUVSOZUVRCUYB
      WMZUYHUWBCUYAWMZUVRUWBVJZUYNUYGUYOUXLUYACUWBWJWKZUVRWNZUWBCUVRUYAWOWPUYHU
      XIUVRTOZUYMUYNRAUXIUXKUYGKWEUBWQZCUVRUYBJTWRWPWBWSUYHUYOUVRUWBOZUYDCOUYQU
      VRUYTWTZUWBCUVRUYAXAWPXDUYFXBZXCUXLUWCCUWDUYFUXLUWDUVRUVTUWSUGZUYFUXJUWDV
      UDQAUWAUVRUWSIUVPNXEXFUYSUVTTOVUDUYFQUYTUVRIXNUCUDUVRUVTTTBCUXNUTZUMUGZUW
      LUXNVBZUXPPZUXNUWLPZHUGZVCZUYFUWSUCUBVIZUXPUVTQZWLZVUKUEVUFUYAUXNVBZUXPPZ
      UXNUYAPZHUGZVCUYFBUEVUFVUJVURBUEVIZVUHVUPVUIVUQHVUSVUGVUOUXPUWLUYAUXNXGXH
      UXNUWLUYAXIXJXKVUNUEVUFVURUWCUYEVUNVUEUWBCUMVULVUEUWBQVUMUXNUVRXLWIXMVUNV
      UPUYCVUQUYDHVUNVUOUYBUXPUVTVULVUMXOVULVUOUYBQVUMUXNUVRUYAXPWIXQVUNUXNUVRU
      YAVULVUMXRXHXJXSYEGFUCUDTTUWRVUKUCUWRXTUDUWRXTGVUKXTFVUKXTGUCVIZFUDVIZWLZ
      BUWKUWQVUFVUJVVBUWJVUECUMVUTUWJVUEQVVAUWIUXNXLWIXMVVBUWOVUHUWPVUIHVVBUWMV
      UGUWNUXPVUTVVAXOVUTUWMVUGQVVAUWIUXNUWLXPWIXQVVBUWIUXNUWLVUTVVAXRXHXJXSYAU
      EUWCUYECUWBUMYBYCYDYFVHZYGWBUXLUXTUCUDUWCUWCUXLUXNUWCOZUXPUWCOZWLZWLZUXRU
      XSVVGUXNUVRVBZUXPUVRVBZQZUVRUXNPZUVRUXPPZQZWLZUWLUXNPZUWLUXPPZQZBUVRWCZVV
      QBUVRVGZWCZWLZUXRUXSVVGVVJVVRVVMVVTVVGUXNUWBYHZUXPUWBYHZUYPVVJVVRRVVGUWBC
      UXNWMZVWBVVDVWDUXLVVEUXNCUWBWJXFZUWBCUXNYISZVVGUWBCUXPWMZVWCVVEVWGUXLVVDU
      XPCUWBWJWHZUWBCUXPYISZUYPVVGUYRYJBUWBUVRUXNUXPYKUUAVVMVVTRVVGVVTVVMVVQVVM
      BUVRUYTBUBVIVVOVVKVVPVVLUWLUVRUXNUJUWLUVRUXPUJYLUUBUUCYJUUDVVGUXRVVHUVTPZ
      VVKUSZHPZVVIUVTPZVVLUSZHPZQZVWJVWMQZVVMWLZVVNVVGUXOVWLUXQVWOVVGUXOVWJVVKH
      UGZVWLVVGUXOUXNUYFPZVWSVVGUXNUWDUYFUXLUWDUYFQVVFVVCWIZYMVVDVWTVWSQUXLVVEU
      EUXNUYEVWSUWCUYFUEUCVIZUYCVWJUYDVVKHVXBUYBVVHUVTUYAUXNUVRXGXHUVRUYAUXNXIX
      JVUCVWJVVKHYBYNXFYOVWJVVKHYQVHVVGUXQVWMVVLHUGZVWOVVGUXQUXPUYFPZVXCVVGUXPU
      WDUYFVXAYMVVEVXDVXCQUXLVVDUEUXPUYEVXCUWCUYFUEUDVIZUYCVWMUYDVVLHVXEUYBVVIU
      VTUYAUXPUVRXGXHUVRUYAUXPXIXJVUCVWMVVLHYBYNWHYOVWMVVLHYQVHYLVVGVWPVWKVWNQZ
      VWRVVGUYICHUHZVWKUYIOZVWNUYIOZVWPVXFRVVGUYJVXGAUYJUXKVVFMWEUYICHVOSVVGVWJ
      COVVKCOZVXHVVGUVSCVVHUVTUXLUYKVVFUYLWIZVVGVVHUVSOZUVRCVVHWMZVVGVWDUYPVXMV
      WEUYRUWBCUVRUXNWOWPVVGUXIUYSVXLVXMRAUXIUXKVVFKWEZUYTCUVRVVHJTWRWPWBZWSVVG
      VWDVUAVXJVWEVUBUWBCUVRUXNXAWPVWJVVKCCYPVRVVGVWMCOVVLCOZVXIVVGUVSCVVIUVTVX
      KVVGVVIUVSOZUVRCVVIWMZVVGVWGUYPVXRVWHUYRUWBCUVRUXPWOWPVVGUXIUYSVXQVXRRVXN
      UYTCUVRVVIJTWRWPWBZWSVVGVWGVUAVXPVWHVUBUWBCUVRUXPXAWPVWMVVLCCYPVRUYICVWKV
      WNHYRYSVWJVVKVWMVVLVVHUVTXNUVRUXNXNUUGYTVVGVWQVVJVVMVVGUWAVXLVXQVWQVVJRAU
      XJUWAVVFUUEVXOVXSUVSCVVHVVIUVTYRYSUUFUUHVVGUXSVVQBUWBWCZVWAVVGVWBVWCUXSVX
      TRVWFVWIBUWBUXNUXPUUIVRVXTVVQBUVRVVSUUJZWCVWAVVQBUWBVYAUVRUUKUULVVQBUVRVV
      SUUMUUNYTUURUUOUUPUCUDUWCCUWDUUQUUSUUTUVAUVBUVCUVD $.

    fseqenlem.k $e |- K = ( y e. U_ k e. _om ( A ^m k ) |->
      <. dom y , ( ( G ` dom y ) ` y ) >. ) $.
    $( Lemma for ~ fseqen .  (Contributed by Mario Carneiro, 17-May-2015.) $)
    fseqenlem2 $p |- ( ph ->
      K : U_ k e. _om ( A ^m k ) -1-1-> ( _om X. A ) ) $=
      ( com cfv wcel vz vw cv cmap co ciun cxp wf wbr wmo wal wf1 cdm cop eliun
      wrex wceq elmapi ad2antll fdm syl simprl eqeltrd fveq2d fveq1d fseqenlem1
      wa adantrr f1f simprr ffvelrnd opelxpi syl2anc rexlimdvaa syl5bi imp c2nd
      fmptd c1st ccnv wfun ffun funbrfv2b 3syl simplbda simprbda adantr eleqtrd
      wi wb dmeq fveq12d opeq12d opex fvmpt eqtr3d vex dmex op1st syl6eq cnveqd
      id fvex op2nd crn wf1o adantl simpl simpr oveq2d eleqtrrd rexlimiva sylbi
      jca simpld syldan f1f1orn simprd f1ocnvfv1 eqtr2d ex alrimiv mo2icl dff12
      sylanbrc ) AGRDGUCZUDUEZUFZRDUGZKUHZUAUCZUBUCZKUIZUAUJZUBUKYHYIKULACYHCUC
      ZUMZYOYPJSZSZUNZYIKAYOYHTZYSYITZYTYOYGTZGRUPAUUAGYORYGUOAUUBUUAGRAYFRTZUU
      BVGVGZYPRTYRDTUUAUUDYPYFRUUDYFDYOUHZYPYFUQUUBUUEAUUCYODYFURUSYFDYOUTVAZAU
      UCUUBVBVCUUDYRYOYFJSZSDUUDYOYQUUGUUDYPYFJUUFVDVEUUDYGDYOUUGUUDYGDUUGULZYG
      DUUGUHAUUCUUHUUBABDEYFFHIJLMNOPVFVHYGDUUGVIVAAUUCUUBVJVKVCYPYRRDVLVMVNVOV
      PQVRZAYNUBAYMYKYLVQSZYLVSSZJSZVTZSZUQZWIZUAUKYNAUUPUAAYMUUOAYMVGZUUNYKYKU
      MZJSZSZUUSVTZSZYKUUQUUJUUTUUMUVAUUQUULUUSUUQUUKUURJUUQUUKUURUUTUNZVSSUURU
      UQYLUVCVSUUQYKKSZYLUVCAYMYKKUMZTZUVDYLUQZAYJKWAYMUVFUVGVGWJUUIYHYIKWBYKYL
      KWCWDZWEUUQYKYHTZUVDUVCUQUUQYKUVEYHAYMUVFUVGUVHWFAUVEYHUQZYMAYJUVJUUIYHYI
      KUTVAWGWHZCYKYSUVCYHKYOYKUQZYPUURYRUUTYOYKWKZUVLYOYKYQUUSUVLYPUURJUVMVDUV
      LXBWLWMQUURUUTWNWOVAWPZVDUURUUTYKUAWQWRZYKUUSXCZWSWTVDXAUUQUUJUVCVQSUUTUU
      QYLUVCVQUVNVDUURUUTUVOUVPXDWTWLUUQDUURUDUEZUUSXEZUUSXFZYKUVQTZUVBYKUQUUQU
      VQDUUSULZUVSAYMUURRTZUWAUUQUWBUVTUUQUVIUWBUVTVGZUVKUVIYKYGTZGRUPUWCGYKRYG
      UOUWDUWCGRUUCUWDVGZUWBUVTUWEUURYFRUWEYFDYKUHZUURYFUQUWDUWFUUCYKDYFURXGYFD
      YKUTVAZUUCUWDXHVCUWEYKYGUVQUUCUWDXIUWEUURYFDUDUWGXJXKXNXLXMVAZXOABDEUURFH
      IJLMNOPVFXPUVQDUUSXQVAUUQUWBUVTUWHXRUVQUVRYKUUSXSVMXTYAYBYMUAUUNYCVAYBUAU
      BYHYIKYDYE $.
  $}

  ${
    $d n x y A $.  $d x y V $.
    $( One half of ~ fseqen .  (Contributed by Mario Carneiro, 18-Nov-2014.) $)
    fseqdom $p |- ( A e. V -> ( _om X. A ) ~<_ U_ n e. _om ( A ^m n ) ) $=
      ( vx vy wcel com cv cmap co cvv cxp c1st cfv csuc c2nd csn wa wb wceq wbr
      ciun cdom omex iunex xp1st peano2 syl xp2nd fconst6g adantl elmapg sylan2
      ovex wf mpbird oveq2 eliuni syl2an2 ex weq wi wne nsuceq0 fvex snnz mp2an
      xp11 peano4 syl2an sneqbg mp1i anbi12d syl5bb xpopth bitrd a1i dom2d mpi
      c0 ) ACFZBGABHZIJZUBZKFGALZWDUCUABGWCUDAWBIUNUEWADEWEWDDHZMNZOZWFPNZQZLZE
      HZMNZOZWLPNZQZLZKWAWFWEFZWKWDFZWRWHGFZWAWKAWHIJZFZWSWRWGGFZWTWFGAUFZWGUGU
      HZWAWRRXBWHAWKUOZWRXFWAWRWIAFXFWFGAUIWHWIAUJUHUKWRWAWTXBXFSXEAWHWKCGULUMU
      PBWHWCXAGWKWBWHAIUQURUSUTWRWLWEFZRZWKWQTZDEVAZSVBWAXHXIWGWMTZWIWOTZRZXJXI
      WHWNTZWJWPTZRZXHXMWHVTVCWJVTVCXIXPSWGVDWIWFPVEZVFWHWJWNWPVHVGXHXNXKXOXLWR
      XCWMGFXNXKSXGXDWLGAUFWGWMVIVJWIKFXOXLSXHXQWIWOKVKVLVMVNWFWLGAGAVOVPVQVRVS
      $.
  $}

  ${
    $d b f g k n x y A $.
    $( A set that is equinumerous to its Cartesian product is equinumerous to
       the set of finite sequences on it.  (This can be proven more easily
       using some choice but this proof avoids it.)  (Contributed by Mario
       Carneiro, 18-Nov-2014.) $)
    fseqen $p |- ( ( ( A X. A ) ~~ A /\ A =/= (/) ) ->
      U_ n e. _om ( A ^m n ) ~~ ( _om X. A ) ) $=
      ( vf vb vx vk vg vy cxp cen wbr cv wex wcel com cmap co c0 cvv cfv wne n0
      wf1o ciun bren wa eeanv cdom cdm csuc cres cmpt cmpt2 cop csn cseqom omex
      wf1 crn wfo wceq simpl f1ofo forn 3syl rnex syl6eqelr xpexg sylancr simpr
      vex eqid fseqenlem2 f1domg sylc fseqdom syl sbth syl2anc exlimivv syl2anb
      sylbir ) AAIZAJKWCACLZUCZCMZDLZANZDMZBOABLPQUDZOAIZJKZARUAWCACUEDAUBWFWIU
      FWEWHUFZDMCMWLWEWHCDUGWMWLCDWMWJWKUHKZWKWJUHKZWLWMWKSNZWJWKEWJELZUIZWQWRF
      GSSHAFLZUJPQHLZWSUKGLTWSWTTWDQULUMRWGUNUOUPZTTUNULZURWNWMOSNASNZWPUQWMAWD
      USZSWMWEWCAWDUTXDAVAWEWHVBZWCAWDVCWCAWDVDVEWDCVKVFVGZOASSVHVIWMHEAWGGBFWD
      XAXBSXFWEWHVJXEXAVLXBVLVMWJWKSXBVNVOWMXCWOXFABSVPVQWJWKVRVSVTWBWA $.
  $}

  ${
    $d x y A $.
    $( The collection of finite subsets of a set dominates the set.  (We use
       the weaker sethood assumption ` ( ~P A i^i Fin ) e. _V ` because this
       theorem also implies that ` A ` is a set if ` ~P A i^i Fin ` is.)
       (Contributed by Mario Carneiro, 17-May-2015.) $)
    infpwfidom $p |- ( ( ~P A i^i Fin ) e. _V -> A ~<_ ( ~P A i^i Fin ) ) $=
      ( vx vy cpw cfn cin cv csn cvv wcel snelpwi snfi a1i elind wceq wb sneqbg
      adantr dom2 ) BCAADZEFBGZHZCGZHZIUAAJZTEUBUAAKUBEJUEUALMNUEUBUDOUAUCOPUCA
      JUAUCAQRS $.
  $}

  ${
    $d f g x y A $.  $d g C $.  $d f x y F $.
    $( Hypotheses for transfinite recursion. $)
    dfac8alem.2 $e |- F = recs ( G ) $.
    $( Generator function.  ` g ` is a choice function on ` ~P A ` . $)
    dfac8alem.3 $e |- G = ( f e. _V |-> ( g ` ( A \ ran f ) ) ) $.
    $( Lemma for ~ dfac8a .  If the power set of a set has a choice function,
       then the set is numerable.  (Contributed by NM, 10-Feb-1997.)  (Revised
       by Mario Carneiro, 5-Jan-2013.) $)
    dfac8alem $p |- ( A e. C -> ( E. g A. y e. ~P A ( y =/= (/) ->
       ( g ` y ) e. y ) -> A e. dom card ) ) $=
      ( vx wcel cv c0 wne cfv wi wral cvv con0 wceq cpw ccrd cdm elex cima cdif
      wa w3a wss difss elpw2g mpbiri neeq1 fveq2 eleq12d imbi12d rspcv syl 3imp
      id cres tfr2 wfun wfn tfr1 fnfun ax-mp vex resfunexg mp2an df-ima syl6eqr
      crn rneq fveq2d fvex fvmpt syl6eq eleq1d syl5ibrcom 3expia com23 ralrimiv
      difeq2d wf1o wrex tz7.49c cen wbr f1oen isnumi sylan2 rexlimiva syl6 syld
      ex exlimdv ) BCKZALZMNZWSELZOZWSKZPZABUAZQZBUBUCKZEWRBRKZXFXGPBCUDXHXFBFJ
      LZUEZUFZMNZXIFOZXKKZPZJSQZXGXHXFXPXHXFUGZXOJSXQXLXISKZXNXHXFXLXRXNPXHXFXL
      UHXNXRXKXAOZXKKZXHXFXLXTXHXKXEKZXFXLXTPZPXHYAXKBUIBXJUJXKBRUKULXDYBAXKXEW
      SXKTZWTXLXCXTWSXKMUMYCXBXSWSXKWSXKXAUNYCUTUOUPUQURUSXRXMXSXKXRXMFXIVAZGOZ
      XSXIFGHVBYDRKZYEXSTFVCZXIRKYFFSVDYGFGHVEZSFVFVGJVHZFXIRVIVJDYDBDLZVMZUFZX
      AOXSRGYJYDTZYLXKXAYMYKXJBYMYKYDVMXJYJYDVNFXIVKVLWDVOIXKXAVPVQVGVRVSVTWAWB
      WCWPXHXPXIBYDWEZJSWFZXGXHXPYOJBRFYHWGWPYNXGJSYNXRXIBWHWIXGXIBYDYIWJXIBWKW
      LWMWNWOURWQ $.
  $}

  ${
    $d f h v y A $.  $d h B $.
    $( Numeration theorem: every set with a choice function on its power set is
       numerable.  With AC, this reduces to the statement that every set is
       numerable.  Similar to Theorem 10.3 of [TakeutiZaring] p. 84.
       (Contributed by NM, 10-Feb-1997.)  (Revised by Mario Carneiro,
       5-Jan-2013.) $)
    dfac8a $p |- ( A e. B -> ( E. h A. y e. ~P A ( y =/= (/) ->
        ( h ` y ) e. y ) -> A e. dom card ) ) $=
      ( vf vv cvv cv crn cdif cfv cmpt crecs eqid rneq difeq2d fveq2d dfac8alem
      weq cbvmptv ) ABCEDFGBFHZIZJZDHZKZLZMZUFUGNFEGUEBEHZIZJZUDKFESZUCUJUDUKUB
      UIBUAUHOPQTR $.
  $}

  ${
    $d f w x z A $.
    $( The well-ordering theorem: every numerable set is well-orderable.
       (Contributed by Mario Carneiro, 5-Jan-2013.)  (Revised by Mario
       Carneiro, 29-Apr-2015.) $)
    dfac8b $p |- ( A e. dom card -> E. x x We A ) $=
      ( vf vz vw ccrd cdm wcel cfv cv wex wwe cen wbr cardid2 sylib cep cin cvv
      wf1o bren ccnv copab cxp sqxpexg incom inex1g syl5eqel f1ocnv word cardon
      syl onordi ordwe ax-mp eqid f1owe mpisyl weinxp spcegv syl2im exlimdv mpd
      weeq1 ) BFGZHZBFIZBCJZTZCKZBAJZLZAKZVFVGBMNVJBOVGBCUAPVFVIVMCVFDJVHUBZIEJ
      VNIQNDEUCZBBUDZRZSHZVIBVQLZVMVFVPSHZVRBVEUEVTVQVPVORSVOVPUFVPVOSUGUHULVIB
      VOLZVSVIBVGVNTVGQLZWAVGBVHUIVGUJWBVGBUKUMVGUNUODEBVGVOQVNVOUPUQURBVOUSPVL
      VSAVQSBVKVQVDUTVAVBVC $.
  $}

  ${
    $d a b f r s z A $.  $d r s B $.  $d f z F $.
    dfac8clem.1 $e |- F = ( s e. ( A \ { (/) } ) |->
       ( iota_ a e. s A. b e. s -. b r a ) ) $.
    $( Lemma for ~ dfac8c .  (Contributed by Mario Carneiro, 10-Jan-2013.) $)
    dfac8clem $p |- ( A e. B -> ( E. r r We U. A ->
       E. f A. z e. A ( z =/= (/) -> ( f ` z ) e. z ) ) ) $=
      ( wcel cv c0 wne cfv wi wral wa cvv wceq cuni wwe wex csn cdif wf wn crio
      wbr eldifsn wss elssuni ad2antrl wreu wse simplr exse2 mp1i simprr wereu2
      vex syl22anc riotacl syl sseldd sylan2b difexg adantr uniexg fex2 syl3anc
      fmptd riotaex fvmpt2 sylbir adantl eqeltrd expr ralrimiva nfv cmpt nfmpt1
      mpan2 nfcxfr nfcv nffv nfel1 neeq1 fveq2 id eleq12d imbi12d cbvral sylibr
      nfim fveq1 eleq1d imbi2d ralbidv spcegv sylc ex exlimdv ) BCKZBUAZGLZUBZA
      LZMNZXHDLZOZXHKZPZABQZDUCZGXDXGXOXDXGRZESKZXIXHEOZXHKZPZABQZXOXPBMUDZUEZX
      EEUFYCSKZXESKZXQXPFYCILHLXFUIUGIFLZQZHYFUHZXEEYFYCKZXPYFBKZYFMNZRZYHXEKYF
      BMUJZXPYLRZYFXEYHYJYFXEUKZXPYKYFBULUMZYNYGHYFUNZYHYFKYNXGXEXFUOZYOYKYQXDX
      GYLUPXFSKYRYNGVAXEXFSUQURYPXPYJYKUSHIXEYFXFUTVBYGHYFVCVDZVEVFJVLXDYDXGBYB
      CVGVHXDYEXGBCVIVHYCXEESSVJVKXPYKYFEOZYFKZPZFBQYAXPUUBFBXPYJYKUUAYNYTYHYFY
      LYTYHTZXPYLYIUUCYMYIYHSKUUCYGHYFVMFYCYHSEJVNWCVOVPYSVQVRVSXTUUBAFBXIXSFXI
      FVTFXRXHFXHEFEFYCYHWAJFYCYHWBWDFXHWEWFWGWOUUBAVTXHYFTZXIYKXSUUAXHYFMWHUUD
      XRYTXHYFXHYFEWIUUDWJWKWLWMWNXNYADESXJETZXMXTABUUEXLXSXIUUEXKXRXHXHXJEWPWQ
      WRWSWTXAXBXC $.
  $}

  ${
    $d f r w x y z A $.  $d r x B $.
    $( If the union of a set is well-orderable, then the set has a choice
       function.  (Contributed by Mario Carneiro, 5-Jan-2013.) $)
    dfac8c $p |- ( A e. B -> ( E. r r We U. A ->
       E. f A. z e. A ( z =/= (/) -> ( f ` z ) e. z ) ) ) $=
      ( vx vw vy c0 csn cdif cv wbr wn wral crio cmpt eqid dfac8clem ) ABCDFBIJ
      KGLHLELMNGFLZOHTPQZFEHGUARS $.
  $}

  ${
    $d A f x y $.  $d f w x z $.
    $( A proof of the Well ordering theorem ~ weth , an Axiom of Choice
       equivalent, restricted to sets dominated by some ordinal (in particular
       finite sets and countable sets), proven in ZF without AC. (Contributed
       by Mario Carneiro, 5-Jan-2013.) $)
    ac10ct $p |- ( E. y e. On A ~<_ y -> E. x x We A ) $=
      ( vf vw vz cv cdom wbr wwe wex con0 wcel wi wa cep wss syl cfv cvv wf1 wf
      vex brdom crn f1f onss sstr2 syl2im epweon wess syl6mpi adantl copab wf1o
      frn f1f1orn eqid f1owe cxp weinxp reldom brrelexi sqxpexg incom syl5eqelr
      cin inex1g weeq1 spcegv 4syl syl5bi sylan9r syld impancom exlimdv pm2.43b
      ex rexlimiv ) CBGZHIZCAGZJZAKZBLVTLMZWAWDWAWEWAWDNWACVTDGZUAZDKWAWEOZWDCV
      TDBUCUDWHWGWDDWAWGWEWDWAWGOWEWFUEZPJZWDWGWEWJNWAWGWEWILQZLPJWJWGWIVTQZWEV
      TLQWKWGCVTWFUBWLCVTWFUFCVTWFUPRVTUGWIVTLUHUIUJWILPUKULUMWGWJCEGWFSFGWFSPI
      EFUNZJZWAWDWGCWIWFUOWJWNNCVTWFUQEFCWIWMPWFWMURUSRWNCWMCCUTZVGZJZWAWDCWMVA
      WACTMWOTMZWPTMWQWDNCVTHVBVCCTVDWRWPWOWMVGTWOWMVEWOWMTVHVFWCWQAWPTCWBWPVIV
      JVKVLVMVNVOVPVLVRVQVS $.
  $}

  ${
    $d A f r x $.
    $( A set is numerable iff it can be well-ordered.  (Contributed by Mario
       Carneiro, 5-Jan-2013.) $)
    ween $p |- ( A e. dom card <-> E. r r We A ) $=
      ( vx vf ccrd cdm wcel cv wwe wex dfac8b cvv cpw cuni wor weso vex sylancl
      soex wi exlimiv wceq wb unipw weeq2 ax-mp exbii biimpri c0 wne wral pwexg
      cfv dfac8c syl dfac8a syld sylc impbii ) AEFGZABHZIZBJZBAKVCALGZAMZNZVAIZ
      BJZUTVBVDBVBAVAOVALGVDAVAPBQAVALSRUAVHVCVGVBBVFAUBVGVBUCAUDVFAVAUEUFUGUHV
      DVHCHZUIUJVIDHUMVIGTCVEUKDJZUTVDVELGVHVJTALULCVELDBUNUOCALDUPUQURUS $.
  $}

  ${
    $d f g r x y A $.
    $( A version of ~ ac5b with the choice as a hypothesis.  (Contributed by
       Mario Carneiro, 27-Aug-2015.) $)
    ac5num $p |- ( ( U. A e. dom card /\ -. (/) e. A ) ->
               E. f ( f : A --> U. A /\ A. x e. A ( f ` x ) e. x ) ) $=
      ( vg vr vy wcel c0 wa cv cfv wi wral wf wex cvv sylc wceq fveq2 ad2antrr
      cuni ccrd cdm wn wne wwe uniexr dfac8b dfac8c adantr nelne2 ancoms pm2.27
      cmpt adantll syl ralimdva imp eleq12d rspccva sylan elunii sylancom fmptd
      id eqid elex fex2 syl3anc fvex fvmpt eleq1d ralbiia sylibr jca feq1 fveq1
      ralbidv anbi12d spcegv exlimddv ) BUAZUBUCZGZHBGUDZIZAJZHUEZWGDJZKZWGGZLZ
      ABMZBWBCJZNZWGWNKZWGGZABMZIZCOZDWDWMDOZWEWDBPGZWBEJUFEOXABWCUGZEWBUHABPDE
      UIQUJWFWMIZFBFJZWIKZUNZPGZBWBXGNZWGXGKZWGGZABMZIZWTXDXIXBWBPGZXHXDFBXFWBX
      GXDXEBGZXFXEGZXFWBGXDWKABMZXOXPWFWMXQWFWLWKABWFWGBGZIWHWLWKLWEXRWHWDXRWEW
      HWGHBUKULUOWHWKUMUPUQURZWKXPAXEBWGXERZWJXFWGXEWGXEWISXTVEUSUTVAXFXEBVBVCX
      GVFZVDZWDXBWEWMXCTWDXNWEWMWBWCVGTBWBXGPPVHVIXDXIXLYBXDXQXLXSXKWKABXRXJWJW
      GFWGXFWJBXGXEWGWISYAWGWIVJVKVLVMVNVOWSXMCXGPWNXGRZWOXIWRXLBWBWNXGVPYCWQXK
      ABYCWPXJWGWGWNXGVQVLVRVSVTQWA $.
  $}

  ${
    $d x A $.  $d r x B $.
    $( If a set is dominated by an ordinal, then it is numerable.  (Contributed
       by Mario Carneiro, 5-Jan-2013.) $)
    ondomen $p |- ( ( A e. On /\ B ~<_ A ) -> B e. dom card ) $=
      ( vr vx con0 wcel cdom wbr wa cv wwe wex ccrd cdm breq2 rspcev ac10ct syl
      wrex ween sylibr ) AEFBAGHZIZBCJKCLZBMNFUCBDJZGHZDESUDUFUBDAEUEABGOPCDBQR
      BCTUA $.
  $}

  $( A set dominated by a numerable set is numerable.  (Contributed by Mario
     Carneiro, 28-Apr-2015.) $)
  numdom $p |- ( ( A e. dom card /\ B ~<_ A ) -> B e. dom card ) $=
    ( ccrd cdm wcel cdom wbr cfv con0 cardon cen cardid2 domen2 biimpar ondomen
    wa wb syl sylancr ) ACDZEZBAFGZPACHZIEBUCFGZBTEAJUAUDUBUAUCAKGUDUBQALUCABMR
    NUCBOS $.

  $( A subset of a numerable set is numerable.  (Contributed by Mario Carneiro,
     28-Apr-2015.) $)
  ssnum $p |- ( ( A e. dom card /\ B C_ A ) -> B e. dom card ) $=
    ( ccrd cdm wcel wss cdom wbr ssdomg imp numdom syldan ) ACDZEZBAFZBAGHZBMEN
    OPBAMIJABKL $.

  $( All subsets of the ordinals are numerable.  (Contributed by Mario
     Carneiro, 12-Feb-2013.) $)
  onssnum $p |- ( ( A e. V /\ A C_ On ) -> A e. dom card ) $=
    ( wcel con0 wss wa cuni csuc ccrd cdm cvv word uniexg ssorduni elong syl2an
    biimpar suceloni onenon 3syl onsucuni adantl ssnum syl2anc ) ABCZADEZFZAGZH
    ZIJZCZAUIEZAUJCUGUHDCZUIDCUKUEUHKCZUHLZUMUFABMANUNUMUOUHKOQPUHRUISTUFULUEAU
    AUBUIAUCUD $.

  ${
    $d x y T $.  $d x A $.  $d x S $.  $d x ch $.  $d x y ph $.  $d x th $.
    $d y R $.  $d y ps $.
    indcardi.a $e |- ( ph -> A e. V ) $.
    indcardi.b $e |- ( ph -> T e. dom card ) $.
    indcardi.c $e |- ( ( ph /\ R ~<_ T /\ A. y ( S ~< R -> ch ) ) -> ps ) $.
    indcardi.d $e |- ( x = y -> ( ps <-> ch ) ) $.
    indcardi.e $e |- ( x = A -> ( ps <-> th ) ) $.
    indcardi.f $e |- ( x = y -> R = S ) $.
    indcardi.g $e |- ( x = A -> R = T ) $.
    $( Indirect strong induction on the cardinality of a finite or numerable
       set.  (Contributed by Stefan O'Rear, 24-Aug-2015.) $)
    indcardi $p |- ( ph -> th ) $=
      ( cdom wi wbr ccrd cdm wcel domrefg syl cfv con0 cardon a1i wss wa simpl1
      wal w3a csdm simpr wb sdomdom adantl simpl3 domtr numdom cardsdom2 mpbird
      syl2anc id com3l sylc ex com23 alimdv 3exp com34 3imp1 syl3anc weq breq1d
      imbi12d cv wceq fveq2d tfisi mpd ) AJJSUAZDAJUBUCZUDZWEMJWFUEUFAHJSUAZBTI
      JSUAZCTZWEDTEFGHUBUGZIUBUGZJUBUGZKLWMUHUDAJUIUJAWKUHUDWKWMUKULZWLWKUDZWJT
      ZFUNZUOZWHBWRWHULAWHIHUPUAZCTZFUNZBAWNWQWHUMWRWHUQAWNWQWHXAAWNWHWQXAAWNWH
      WQXATAWNWHUOZWPWTFXBWSWPCXBWSWPCTZXBWSULZWOWIXCXDWOWSXBWSUQXDIWFUDZHWFUDZ
      WOWSURXDWGWIXEXDAWGAWNWHWSUMMUFZXDIHSUAZWHWIWSXHXBIHUSUTAWNWHWSVAZIHJVBVF
      ZJIVCVFXDWGWHXFXGXIJHVCVFIHVDVFVEXJWPWOWICWPVGVHVIVJVKVLVMVNVONVPVJEFVQZW
      HWIBCXKHIJSQVROVSEVTGWAZWHWEBDXLHJJSRVRPVSXKHIUBQWBXLHJUBRWBWCWD $.
  $}

  ${
    $d f g h x y z A $.  $d g y z B $.  $d f g x F $.  $d g ph $.  $d y ps $.
    $d f g x y C $.  $d f g h x y X $.
    $( Reverse closure for the choice set predicate.  (Contributed by Mario
       Carneiro, 31-Aug-2015.) $)
    acnrcl $p |- ( X e. AC_ A -> A e. _V ) $=
      ( vy vg vf vx cvv wcel cv cfv wral wex cpw c0 csn cdif cmap co wa cab wne
      wacn ne0i abn0 simpl exlimiv sylbi syl df-acn eleq2s ) AGHZBUKCIZDIJULEIJ
      HCAKDLEFIMNOPAQRKZSZFTZAUBBUOHUONUAZUKUOBUCUPUNFLUKUNFUDUNUKFUKUMUEUFUGUH
      FCAEDUIUJ $.

    $( Equality theorem for the choice set function.  (Contributed by Mario
       Carneiro, 31-Aug-2015.) $)
    acneq $p |- ( A = C -> AC_ A = AC_ C ) $=
      ( vy vg vf vx wceq cvv wcel cv cfv wral wex cpw cmap co cab wacn df-acn
      wa c0 csn cdif eleq1 oveq2 raleq exbidv raleqbidv anbi12d abbidv 3eqtr4g
      ) ABGZAHIZCJZDJKUNEJKIZCALZDMZEFJNUAUBUCZAOPZLZTZFQBHIZUOCBLZDMZEURBOPZLZ
      TZFQARBRULVAVGFULUMVBUTVFABHUDULUQVDEUSVEABUROUEULUPVCDUOCABUFUGUHUIUJFCA
      EDSFCBEDSUK $.

    $( The property of being a choice set of length ` A ` .  (Contributed by
       Mario Carneiro, 31-Aug-2015.) $)
    isacn $p |- ( ( X e. V /\ A e. W ) -> ( X e. AC_ A <->
      A. f e. ( ( ~P X \ { (/) } ) ^m A )
        E. g A. x e. A ( g ` x ) e. ( f ` x ) ) ) $=
      ( vy wcel wacn cvv cv cfv wral wex cpw cdif cmap co wa c0 csn wceq oveq1d
      pweq difeq1d raleqdv anbi2d df-acn elab2g wb elex biid baib syl sylan9bb
      ) GEIGBJZIBKIZALZDLMUSCLMIABNDOZCGPZUAUBZQZBRSZNZTZBFIZVEURUTCHLZPZVBQZBR
      SZNZTVFHGUQEVHGUCZVLVEURVMUTCVKVDVMVJVCBRVMVIVAVBVHGUEUFUDUGUHHABCDUIUJVG
      URVFVEUKBFULVFURVEVFUMUNUOUP $.

    $( The property of being a choice set of length ` A ` .  (Contributed by
       Mario Carneiro, 31-Aug-2015.) $)
    acni $p |- ( ( X e. AC_ A /\ F : A --> ( ~P X \ { (/) } ) ) ->
        E. g A. x e. A ( g ` x ) e. ( F ` x ) ) $=
      ( vf wacn wcel cpw c0 csn cdif wf wa cmap cv cfv wral wex cvv syl biimpar
      co pwexg difexg acnrcl elmapd wb isacn mpdan ibi adantr wceq fveq1 eleq2d
      ralbidv exbidv rspcv sylc ) EBGZHZBEIZJKZLZDMZNDVDBOUCZHZAPZCPQZVHFPZQZHZ
      ABRZCSZFVFRZVIVHDQZHZABRZCSZVAVGVEVAVDBDTTVAVBTHVDTHEUTUDVBVCTUEUABEUFZUG
      UBVAVOVEVAVOVABTHVAVOUHVTABFCUTTEUIUJUKULVNVSFDVFVJDUMZVMVRCWAVLVQABWAVKV
      PVIVHVJDUNUOUPUQURUS $.

    ${
      $d f B $.
      $( The property of being a choice set of length ` A ` .  (Contributed by
         Mario Carneiro, 31-Aug-2015.) $)
      acni2 $p |- ( ( X e. AC_ A /\ A. x e. A ( B C_ X /\ B =/= (/) ) ) ->
          E. g ( g : A --> X /\ A. x e. A ( g ` x ) e. B ) ) $=
        ( vy vf wcel c0 wa wral cv cfv cmpt wex wf wceq fveq2 cvv eleq1d elpw2g
        wacn wss wne cpw csn cdif eldifsn anbi1d syl5bb ralbidv eqid fmpt sylib
        biimpar syldan nffvmpt1 nfel2 nfv eleq12d cbvral simplr wb simpll simpr
        ssexd fvmpt2 syl2anc eleq2d ex adantrd ralimdva imp ralbi syl biimpa wi
        acni ssel adantr ral2imi sylc rspccva sylan acnrcl fex2 syl3anc ralbiia
        fmptd fvex fvmpt sylibr jca feq1 fveq1 anbi12d spcegv syl5bi exlimdv
        mpd ) EBUBZHZCEUCZCIUDZJZABKZJZFLZGLZMZXHABCNZMZHZFBKZGOZBEDLZPZALZXPMZ
        CHZABKZJZDOZXBXFBEUEZIUFUGZXKPZXOXGCYEHZABKZYFXBYHXFXBYGXEABYGCYDHZXDJX
        BXECYDIUHXBYIXCXDCEXAUAUIUJUKUOABYECXKXKULZUMUNFBGXKEVRUPXGXNYCGXNXRXIM
        ZXRXKMZHZABKZXGYCXMYMFABAXJXLABCXHUQURYMFUSXHXRQXJYKXLYLXHXRXIRZXHXRXKR
        UTVAXGYNYCXGYNJZFBXJNZSHZBEYQPZXRYQMZCHZABKZJZYCYPYSBSHZXBYRYPFBXJEYQYP
        YKEHZABKZXHBHXJEHZYPXFYKCHZABKZUUFXBXFYNVBXGYNUUIXGYMUUHVCZABKZYNUUIVCX
        BXFUUKXBXEUUJABXBXRBHZJZXCUUJXDUUMXCUUJUUMXCJZYLCYKUUNUULCSHYLCQXBUULXC
        VBUUNCEXAXBUULXCVDUUMXCVEVFABCSXKYJVGVHVIVJVKVLVMYMUUHABVNVOVPZXEUUHUUE
        ABXCUUHUUEVQXDCEYKVSVTWAWBUUEUUGAXHBXRXHQYKXJEXRXHXIRTWCWDYQULZWIZYPXBU
        UDXBXFYNVDZBEWEVOUURBEYQSXAWFWGYPYSUUBUUQYPUUIUUBUUOUUAUUHABUULYTYKCFXR
        XJYKBYQYOUUPXRXIWJWKTWHWLWMYBUUCDYQSXPYQQZXQYSYAUUBBEXPYQWNUUSXTUUAABUU
        SXSYTCXRXPYQWOTUKWPWQWBVJWRWSWT $.
    $}

    ${
      acni3.1 $e |- ( y = ( g ` x ) -> ( ph <-> ps ) ) $.
      $( The property of being a choice set of length ` A ` .  (Contributed by
         Mario Carneiro, 31-Aug-2015.) $)
      acni3 $p |- ( ( X e. AC_ A /\ A. x e. A E. y e. X ph ) ->
          E. g ( g : A --> X /\ A. x e. A ps ) ) $=
        ( wacn wcel wrex wral wa cv wf cfv crab wex wss ralimi c0 rabn0 biimpri
        wne ssrab2 jctil acni2 sylan2 elrab simprbi anim2i eximi syl ) GEIJZADG
        KZCELZMEGFNZOZCNUQPZADGQZJZCELZMZFRZURBCELZMZFRUPUNUTGSZUTUAUDZMZCELVDU
        OVICEUOVHVGVHUOADGUBUCADGUEUFTCEUTFGUGUHVCVFFVBVEURVABCEVAUSGJBABDUSGHU
        IUJTUKULUM $.
    $}

    $( Construct a mapping satisfying the consequent of ~ isacn .  (Contributed
       by Mario Carneiro, 31-Aug-2015.) $)
    acnlem $p |- ( ( A e. V /\ A. x e. A B e. ( f ` x ) ) ->
      E. g A. x e. A ( g ` x ) e. ( f ` x ) ) $=
      ( wcel cv cfv wral wa cmpt cvv wex crn cuni wf fvssunirn simpr ralimiaa
      sseldi eqid fmpt sylib id rnex uniex mp3an3 syl2anr fvmpt2 eqeltrd adantl
      vex fex2 wceq nfmpt1 nfeq2 fveq1 eleq1d ralbid spcegv sylc ) BFGZCAHZDHZI
      ZGZABJZKABCLZMGZVDVIIZVFGZABJZVDEHZIZVFGZABJZENVHBVEOZPZVIQZVCVJVCVHCVSGZ
      ABJVTVGWAABVDBGZVGKZVFVSCVEVDRWBVGSZUATABVSCVIVIUBZUCUDVCUEVTVCVSMGVJVRVE
      DUMUFUGBVSVIFMUNUHUIVHVMVCVGVLABWCVKCVFABCVFVIWEUJWDUKTULVQVMEVIMVNVIUOZV
      PVLABAVNVIABCUPUQWFVOVKVFVDVNVIURUSUTVAVB $.

    $( A well-orderable set has choice sequences of every length.  (Contributed
       by Mario Carneiro, 31-Aug-2015.) $)
    numacn $p |- ( A e. V -> ( X e. dom card -> X e. AC_ A ) ) $=
      ( vx vg vf vh vy wcel cvv wa cv cfv wral wex c0 wf wss syl syl2anc cdm wi
      ccrd wacn elex cpw csn cdif cmap co crn cuni simpll elmapi adantl difss2d
      wn frn sspwuni sylib ssnum cin wceq ssdifin0 disjsn ac5num simpllr wfn wb
      ffn fveq2 id eleq12d ralrn biimpa adantrl acnlem exlimddv ralrimiva isacn
      mpbird expcom ) ABIAJIZCUCUAZIZCAUDIZUBABUEWEWCWFWEWCKZWFDLZELMWHFLZMZIDA
      NEOZFCUFZPUGZUHZAUIUJZNWGWKFWOWGWIWOIZKZWIUKZWRULZGLZQZHLZWTMZXBIZHWRNZKZ
      WKGWQWSWDIZPWRIUQZXFGOWQWEWSCRZXGWEWCWPUMWQWRWLRXIWQWRWLWMWQAWNWIQZWRWNRZ
      WPXJWGWIWNAUNUOZAWNWIURSZUPWRCUSUTCWSVATWQWRWMVBPVCZXHWQXKXNXMWRWLWMVDSWR
      PVEUTHWRGVFTWQXFKWCWJWTMZWJIZDANZWKWEWCWPXFVGWQXEXQXAWQXEXQWQWIAVHZXEXQVI
      WQXJXRXLAWNWIVJSXDXPHDAWIXBWJVCZXCXOXBWJXBWJWTVKXSVLVMVNSVOVPDAXOFEJVQTVR
      VSDAFEWDJCVTWAWBS $.

    $( Every set has finite choice sequences.  (Contributed by Mario Carneiro,
       31-Aug-2015.) $)
    finacn $p |- ( A e. Fin -> AC_ A = _V ) $=
      ( vx vy vg vf vz cfn wcel wacn cvv cv cfv wral wex cpw c0 wa wf ralrimiva
      syl csn cdif cmap co wrex elmapi adantl wne ffvelrn eldifsni sylib sylibr
      n0 rexv eleq1 ac6sfi syldan exsimpr vex isacn mpan mpbird a1i 2thd eqrdv
      wb ) AGHZBAIZJVGBKZVHHZVIJHZVGVJCKZDKZLZVLEKZLZHZCAMZDNZEVIOZPUAUBZAUCUDZ
      MZVGVSEWBVGVOWBHZQZAJVMRZVRQDNZVSVGWDFKZVPHZFJUEZCAMZWGWEAWAVORZWKWDWLVGV
      OWAAUFUGWLWJCAWLVLAHQZWIFNZWJWMVPPUHZWNWMVPWAHWOAWAVLVOUIVPVTPUJTFVPUMUKW
      IFUNULSTWIVQCFAJDWHVNVPUOUPUQWFVRDURTSVKVGVJWCVFBUSZCAEDJGVIUTVAVBVKVGWPV
      CVDVE $.
  $}

  ${
    $d f g h k x y z A $.  $d f g k x y z B $.  $d f g h k x y z X $.
    $d f g k x Y $.
    $( A set with long choice sequences also has shorter choice sequences,
       where "shorter" here means the new index set is dominated by the old
       index set.  (Contributed by Mario Carneiro, 31-Aug-2015.) $)
    acndom $p |- ( A ~<_ B -> ( X e. AC_ B -> X e. AC_ A ) ) $=
      ( vf vx vz vh vg vk vy cv wex wcel c0 wceq cfv wral wa wf cvv cdom wbr wi
      wf1 wacn brdomi wn neq0 w3a cpw csn cdif cmap crn ccnv cif wss wne simpl3
      co elmapi ad2antlr wf1o simpll1 f1f1orn f1ocnv f1of 4syl ffvelrnda simpl2
      ad2antrr ifclda ffvelrnd eldifsn elpwi anim1i sylbi syl ralrimiva syl2anc
      acni2 cdm f1dm vex syl6eqelr 3ad2ant1 f1f frn ssralv iftrue fveq2d eleq2d
      dmex ralbiia syl6ib wfn wb f1fn fveq2 eleq12d ralrn 3syl sylibd f1ocnvfv1
      sylan ralbidva impr acnlem elex isacn syl2anr 3adant2 mpbird 3exp exlimdv
      exlimddv syl5bi acneq 0fin finacn ax-mp syl6eq syl5ibr pm2.61d2 exlimiv
      cfn ) ABUAUBABDKZUDZDLCBUEZMZCAUEZMZUCZABDUFYHYMDYHANOZYMYNUGEKZAMZELYHYM
      EAUHYHYPYMEYHYPYJYLYHYPYJUIZYLFKZGKPYRHKZPZMFAQGLZHCUJZNUKULZAUMUTZQZYQUU
      AHUUDYQYSUUDMZRZBCIKZSZJKZUUHPZUUJYGUNZMZUUJYGUOZPZYOUPZYSPZMZJBQZRZUUAIU
      UGYJUUQCUQZUUQNURZRZJBQUUTILYHYPYJUUFUSUUGUVCJBUUGUUJBMZRZUUQUUCMZUVCUVEA
      UUCUUPYSUUFAUUCYSSYQUVDYSUUCAVAVBUVEUUMUUOYOAUVEUULAUUJUUNUVEYHAUULYGVCZU
      ULAUUNVCUULAUUNSYHYPYJUUFUVDVDABYGVEZAUULYGVFUULAUUNVGVHVIUUGYPUVDUUMUGYH
      YPYJUUFVJVKVLVMUVFUUQUUBMZUVBRUVCUUQUUBNVNUVIUVAUVBUUQCVOVPVQVRVSJBUUQICW
      AVTUUGUUTRATMZYRYGPZUUHPZYTMZFAQZUUAYQUVJUUFUUTYHYPUVJYJYHAYGWBTABYGWCYGD
      WDWMWEZWFVKUUGUUIUUSUVNUUGUUIRZUUSUVLUVKUUNPZYSPZMZFAQZUVNUVPUUSUUKUUOYSP
      ZMZJUULQZUVTUVPUUSUURJUULQZUWCUVPYHABYGSUULBUQUUSUWDUCYHYPYJUUFUUIVDZABYG
      WGABYGWHUURJUULBWIVHUURUWBJUULUUMUUQUWAUUKUUMUUPUUOYSUUMUUOYOWJWKWLWNWOUV
      PYHYGAWPUWCUVTWQUWEABYGWRUWBUVSJFAYGUUJUVKOZUUKUVLUWAUVRUUJUVKUUHWSUWFUUO
      UVQYSUUJUVKUUNWSWKWTXAXBXCUVPUVSUVMFAUVPYRAMZRZUVRYTUVLUWHUVQYRYSUVPUVGUW
      GUVQYROUVPYHUVGUWEUVHVRAUULYRYGXDXEWKWLXFXCXGFAUVLHGTXHVTXPVSYHYJYLUUEWQZ
      YPYJCTMZUVJUWIYHCYIXIZUVOFAHGTTCXJXKXLXMXNXOXQYJYLYNUWJUWKYNYKTCYNYKNUEZT
      ANXRNYFMUWLTOXSNXTYAYBWLYCYDYEVR $.

    $( A set ` X ` which has choice sequences on it of length ` ~P X ` is
       well-orderable (and hence has choice sequences of every length).
       (Contributed by Mario Carneiro, 31-Aug-2015.) $)
    acnnum $p |- ( X e. AC_ ~P X <-> X e. dom card ) $=
      ( vx vf cpw wacn wcel ccrd cdm cv c0 wne cfv wi wral wex wa wss cvv pwexg
      mpcom csn cdif wf cdom wbr difss ssdomg mpisyl acndom eldifsn elpwi sylbi
      anim1i acni2 sylancl simpr imbi1i impexp bitri ralbii2 sylib eximi dfac8a
      rgen syl mpd numacn impbii ) AADZEZFZAGHZFZVKBIZJKZVNCIZLVNFZMZBVINZCOZVM
      VKVIJUAZUBZAVPUCZVQBWBNZPZCOZVTVKAWBEFZVNAQZVOPZBWBNWFWBVIUDUEZVKWGVKVIRF
      ZWBVIQWJAVJSVIWAUFWBVIRUGUHWBVIAUITWIBWBVNWBFZVNVIFZVOPZWIVNVIJUJZWMWHVOV
      NAUKUMULVDBWBVNCAUNUOWEVSCWEWDVSWCWDUPVQVRBWBVIWLVQMWNVQMWMVRMWLWNVQWOUQW
      MVOVQURUSUTVAVBVEBAVJCVCVFWKVMVKAVLSVIRAVGTVH $.

    $( The class of choice sets of length ` A ` is a cardinal invariant.
       (Contributed by Mario Carneiro, 31-Aug-2015.) $)
    acnen $p |- ( A ~~ B -> AC_ A = AC_ B ) $=
      ( vx cen wbr wacn cv wcel cdom ensym endom acndom 3syl syl impbid eqrdv
      wi ) ABDEZCAFZBFZRCGZSHZUATHZRBADEBAIEUBUCQABJBAKBAUALMRABIEUCUBQABKABUAL
      NOP $.

    $( A set smaller than one with choice sequences of length ` A ` also has
       choice sequences of length ` A ` .  (Contributed by Mario Carneiro,
       31-Aug-2015.) $)
    acndom2 $p |- ( X ~<_ Y -> ( Y e. AC_ A -> X e. AC_ A ) ) $=
      ( vf vx vh vg vk cv wex wcel wa cfv wral c0 wf wss wne syl cvv wbr wf1 wi
      cdom wacn brdomi cpw csn cdif cmap co cima simplr crn imassrn simplll f1f
      frn 3syl syl5ss cdm cin wceq elmapi adantl ffvelrnda elpwid f1dm sseqtr4d
      eldifad sseqin2 sylib eldifsni eqnetrd imadisj necon3bii sylibr ralrimiva
      jca acni2 syl2anc ccnv acnrcl ad3antlr wf1o simp-4l f1f1orn simprr sseldi
      f1ocnvfv2 eqeltrd wb f1ocnv f1of ffvelrnd ad2ant2r f1elima mpbid ralimdva
      syl3anc expr impr acnlem exlimddv vex dmex syl6eqelr isacn syl2an exlimiv
      mpbird ex ) BCUDUABCDIZUBZDJCAUEZKZBXOKZUCZBCDUFXNXRDXNXPXQXNXPLZXQEIZFIM
      XTGIZMZKEANFJZGBUGZOUHZUIZAUJUKZNZXSYCGYGXSYAYGKZLZACHIZPZXTYKMZXMYBULZKZ
      EANZLZYCHYJXPYNCQZYNORZLZEANYQHJXNXPYIUMYJYTEAYJXTAKZLZYRYSUUBYNXMUNZCXMY
      BUOZUUBXNBCXMPUUCCQXNXPYIUUAUPZBCXMUQBCXMURUSUTUUBXMVAZYBVBZORYSUUBUUGYBO
      UUBYBUUFQUUGYBVCUUBYBBUUFUUBYBBUUBYBYDYEYJAYFXTYAYIAYFYAPXSYAYFAVDVEVFZVJ
      VGZUUBXNUUFBVCUUEBCXMVHZSVIYBUUFVKVLUUBYBYFKYBORUUHYBYDOVMSVNYNOUUGOXMYBV
      OVPVQVSVREAYNHCVTWAYJYQLATKZYMXMWBZMZYBKZEANZYCXPUUKXNYIYQACWCZWDYJYLYPUU
      OYJYLLZYOUUNEAUUQUUAYOUUNUUQUUAYOLZLZUUMXMMZYNKZUUNUUSUUTYMYNUUSBUUCXMWEZ
      YMUUCKUUTYMVCUUSXNUVBXNXPYIYLUURWFZBCXMWGSZUUSYNUUCYMUUDUUQUUAYOWHZWIZBUU
      CYMXMWJWAUVEWKUUSXNUUMBKYBBQZUVAUUNWLUVCUUSUUCBYMUULUUSUVBUUCBUULWEUUCBUU
      LPUVDBUUCXMWMUUCBUULWNUSUVFWOYJUUAUVGYLYOUUIWPBCXMUUMYBWQWTWRXAWSXBEAUUMG
      FTXCWAXDVRXNBTKUUKXQYHWLXPXNBUUFTUUJXMDXEXFXGUUPEAGFTTBXHXIXKXLXJS $.

    $( The class of sets with choice sequences of length ` A ` is a cardinal
       invariant.  (Contributed by Mario Carneiro, 31-Aug-2015.) $)
    acnen2 $p |- ( X ~~ Y -> ( X e. AC_ A <-> Y e. AC_ A ) ) $=
      ( cen wbr wacn wcel cdom wi ensym endom acndom2 3syl syl impbid ) BCDEZBA
      FZGZCQGZPCBDECBHERSIBCJCBKACBLMPBCHESRIBCKABCLNO $.
  $}

  ${
    $d f x y z A $.  $d f x y z B $.  $d f x y z F $.
    $( A version of ~ fodom that doesn't require the Axiom of Choice ~ ax-ac .
       If ` A ` has choice sequences of length ` B ` , then any surjection from
       ` A ` to ` B ` can be inverted to an injection the other way.
       (Contributed by Mario Carneiro, 31-Aug-2015.) $)
    fodomacn $p |- ( A e. AC_ B -> ( F : A -onto-> B -> B ~<_ A ) ) $=
      ( vf vx vy vz wcel wa cv cfv wceq fveq2 cvv weq id fveq2d eqeq12d rspccva
      wral wacn wfo cdom wbr wf wex foelrn ralrimiva eqeq2d acni3 sylan2 simpll
      wrex wf1 acnrcl syl wi simprl simprr eqeqan12d anandis syl5ibr ralrimivva
      wb sylan dff13 sylanbrc f1dom2g syl3anc exlimddv ex ) ABUAZHZABCUBZBAUCUD
      ZVMVNIZBADJZUEZEJZVSVQKZCKZLZEBTZIZVODVNVMVSFJZCKZLZFAUMZEBTWDDUFVNWHEBFA
      BVSCUGUHWGWBEFBDAWEVTLWFWAVSWEVTCMUIUJUKVPWDIZBNHZVMBAVQUNZVOWIVMWJVMVNWD
      ULZBAUOUPWLWIVRWEVQKZGJZVQKZLZFGOZUQZGBTFBTWKVPVRWCURWIWRFGBBWPWQWIWEBHZW
      NBHZIZIWMCKZWOCKZLZWMWOCMWIWCXAWQXDVDZVPVRWCUSWCWSWTXEWCWSIWCWTIWEXBWNXCW
      BWEXBLEWEBEFOZVSWEWAXBXFPXFVTWMCVSWEVQMQRSWBWNXCLEWNBEGOZVSWNWAXCXGPXGVTW
      OCVSWNVQMQRSUTVAVEVBVCFGBAVQVFVGBAVQNVLVHVIVJVK $.
  $}

  $( A version of ~ fodom that doesn't require the Axiom of Choice ~ ax-ac .
     (Contributed by Mario Carneiro, 28-Feb-2013.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  fodomnum $p |- ( A e. dom card -> ( F : A -onto-> B -> B ~<_ A ) ) $=
    ( wfo ccrd cdm wcel wacn cdom wbr cvv fornex com12 numacn syli fodomacn ) A
    BCDZAEFZGZABHGZBAIJQSTSQBKGZTSQUAABRCLMBKANOMABCPO $.

  $( A surjection maps numerable sets to numerable sets.  (Contributed by Mario
     Carneiro, 30-Apr-2015.) $)
  fonum $p |- ( ( A e. dom card /\ F : A -onto-> B ) -> B e. dom card ) $=
    ( ccrd cdm wcel wfo cdom wbr fodomnum imp numdom syldan ) ADEZFZABCGZBAHIZB
    NFOPQABCJKABLM $.

  ${
    $d f A $.  $d f B $.
    $( A surjection maps numerable sets to numerable sets.  (Contributed by
       Mario Carneiro, 27-Aug-2015.) $)
    numwdom $p |- ( ( A e. dom card /\ B ~<_* A ) -> B e. dom card ) $=
      ( vf cwdom wbr ccrd cdm wcel c0 wceq cv wfo wex wo brwdomi simpr cfn 0fin
      wa finnum ax-mp syl6eqel fonum ex exlimdv imp jaodan sylan2 ) BADEAFGZHZB
      IJZABCKZLZCMZNBUIHZCBAOUJUKUOUNUJUKSBIUIUJUKPIQHIUIHRITUAUBUJUNUOUJUMUOCU
      JUMUOABULUCUDUEUFUGUH $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.  $d x V $.  $d x X $.  $d x Y $.
    $( Onto functions define dominance when a finite number of choices need to
       be made.  (Contributed by Stefan O'Rear, 28-Feb-2015.) $)
    fodomfi2 $p |- ( ( A e. V /\ B e. Fin /\ F : A -onto-> B ) -> B ~<_ A ) $=
      ( vx wcel cfn wfo w3a wceq cdom wbr wss 3ad2ant3 syl sseli adantl syl2anc
      cdm sylc cv cima cpw cin wrex wfn crn fofn eqimss2 simp2 fipreima syl3anc
      forn wa ccrd cres inss2 finnum wfun simpl3 fofun inss1 elpwid wf fof 3syl
      fdm sseqtr4d fores fodomnum simpl1 ssdomg domtr breq1 syl5ibcom rexlimdva
      mpd ) ADFZBGFZABCHZIZCEUAZUBZBJZEAUCZGUDZUEZBAKLZWACAUFZBCUGZMZVSWGVTVRWI
      VSABCUHNVTVRWKVSVTWJBJWKABCUMBWJUIONVRVSVTUJBACEUKULWAWDWHEWFWAWBWFFZUNZW
      CAKLZWDWHWMWCWBKLZWBAKLZWNWMWBUOSFZWBWCCWBUPZHZWOWMWBGFZWQWLWTWAWFGWBWEGU
      QPQWBUROWMCUSZWBCSZMWSWMVTXAVRVSVTWLUTZABCVAOWMWBAXBWLWBAMZWAWLWBAWFWEWBW
      EGVBPVCQZWMVTABCVDXBAJXCABCVEABCVGVFVHWBCVIRWBWCWRVJTWMVRXDWPVRVSVTWLVKXE
      WBADVLTWCWBAVMRWCBAKVNVOVPVQ $.

    $( Weak dominance agrees with normal for finite left sets.  (Contributed by
       Stefan O'Rear, 28-Feb-2015.)  (Revised by Mario Carneiro,
       5-May-2015.) $)
    wdomfil $p |- ( X e. Fin -> ( X ~<_* Y <-> X ~<_ Y ) ) $=
      ( vx cfn wcel cwdom wbr cdom wi c0 wceq cvv relwdom brrelex2i 0domg breq1
      syl syl5ibr adantl wa wne cv wfo wex wb brwdomn0 wf vex fof dmfex sylancr
      simpl simpr fodomfi2 syl3anc ex adantr exlimdv pm2.61dane domwdom impbid1
      sylbid ) ADEZABFGZABHGZVCVDVEIZAJAJKZVFVCVDVEVGJBHGZVDBLEZVHABFMNBLOQAJBH
      PRSVCAJUAZTZVDBACUBZUCZCUDZVEVJVDVNUEVCCABUFSVKVMVECVCVMVEIVJVCVMVEVCVMTV
      IVCVMVEVMVIVCVMVLLEBAVLUGVICUHBAVLUIBALVLUJUKSVCVMULVCVMUMBAVLLUNUOUPUQUR
      VBUSABUTVA $.
  $}

  ${
    $d m n x y A $.
    $( Any infinite well-orderable set is equinumerous to its set of finite
       subsets.  (Contributed by Mario Carneiro, 18-May-2015.) $)
    infpwfien $p |- ( ( A e. dom card /\ _om ~<_ A ) ->
      ( ~P A i^i Fin ) ~~ A ) $=
      ( vn vx vy vm wcel com cdom wbr wa cfn cen cv cmap wfo syl2anc wf syl cvv
      wceq ccrd cdm cpw cin co ciun crn cmpt cxp c0 wne infxpidm2 adantl fseqen
      infn0 xpdom1g domentr endomtr numdom syldan wfn eliun wss elmapi ad2antll
      wrex frn vex rnex elpw sylibr simprl ssid ssnnfi sylancl dffn4 sylib fofi
      ffn elind expr rexlimdva syl5bi imp eqid fmptd wex inss2 sseldi isfi wf1o
      simpr ensym bren f1of inss1 simplr elpwid wb simplll elmapg mpbird eleq2d
      fssd oveq2 rspcev f1ofo forn eqcomd jca eximdv syl5 mpd ex elrnmpt df-rex
      ax-mp bitri syl6ibr ssrdv eqssd df-fo sylanbrc fodomnum sylc domtr adantr
      pwexg inex1g infpwfidom sbth ) AUAUBZFZGAHIZJZAUCZKUDZAHIZAYQHIZYQALIYOYQ
      BGABMZNUEZUFZHIZUUBAHIZYRYOUUBYLFZUUBYQCUUBCMZUGZUHZOZUUCYMYNUUDUUEYOUUBG
      AUIZLIZUUJAHIZUUDYOAAUIZALIZAUJUKZUUKAULZYNUUOYMAUOUMABUNPYOUUJUUMHIUUNUU
      LGAAYLUPUUPUUJUUMAUQPUUBUUJAURPZAUUBUSUTYOUUHUUBVAZUUHUGZYQTUUIYOUUBYQUUH
      QZUURYOCUUBUUGYQUUHYOUUFUUBFZUUGYQFZUVAUUFUUAFZBGVFZYOUVBBUUFGUUAVBZYOUVC
      UVBBGYOYTGFZUVCUVBYOUVFUVCJJZYPKUUGUVGUUGAVCZUUGYPFUVGYTAUUFQZUVHUVCUVIYO
      UVFUUFAYTVDVEZYTAUUFVGRUUGAUUFCVHVIVJVKUVGYTKFZYTUUGUUFOZUUGKFUVGUVFYTYTV
      CUVKYOUVFUVCVLYTVMYTYTVNVOUVGUVIUVLUVJUVIUUFYTVAUVLYTAUUFVSYTUUFVPVQRYTUU
      GUUFVRPVTWAWBWCWDUUHWEZWFZUUBYQUUHVSRYOUUSYQYOUUTUUSYQVCUVNUUBYQUUHVGRYOD
      YQUUSYODMZYQFZUVAUVOUUGTZJZCWGZUVOUUSFZYOUVPUVSYOUVPJZUVOEMZLIZEGVFZUVSUW
      AUVOKFUWDUWAYQKUVOYPKWHYOUVPWLWIEUVOWJVQUWAUWCUVSEGUWCUWBUVOUUFWKZCWGZUWA
      UWBGFZJZUVSUWCUWBUVOLIUWFUVOUWBWMUWBUVOCWNVQUWHUWEUVRCUWAUWGUWEUVRUWAUWGU
      WEJZJZUVAUVQUWJUVDUVAUWJUWGUUFAUWBNUEZFZUVDUWAUWGUWEVLUWJUWLUWBAUUFQZUWJU
      WBUVOAUUFUWEUWBUVOUUFQUWAUWGUWBUVOUUFWOVEUWJUVOAUWJYQYPUVOYPKWPYOUVPUWIWQ
      WIWRXDUWJYMUWBSFUWLUWMWSYMYNUVPUWIWTEVHAUWBUUFYLSXAVOXBUVCUWLBUWBGYTUWBTU
      UAUWKUUFYTUWBANXEXCXFPUVEVKUWJUUGUVOUWJUWBUVOUUFOZUUGUVOTUWEUWNUWAUWGUWBU
      VOUUFXGVEUWBUVOUUFXHRXIXJWAXKXLWBXMXNUVTUVQCUUBVFZUVSUVOSFUVTUWOWSDVHCUUB
      UUGUVOUUHSUVMXOXQUVQCUUBXPXRXSXTYAUUBYQUUHYBYCUUBYQUUHYDYEUUQYQUUBAYFPYOY
      QSFZYSYOYPSFZUWPYMUWQYNAYLYHYGYPKSYIRAYJRYQAYKP $.

    $( The set of finite intersections of an infinite well-orderable set is
       equinumerous to the set itself.  (Contributed by Mario Carneiro,
       18-May-2015.) $)
    inffien $p |- ( ( A e. dom card /\ _om ~<_ A ) -> ( fi ` A ) ~~ A ) $=
      ( vx ccrd cdm wcel com cdom wbr wa cfi cfv cen cpw cfn cin cvv wss ssdomg
      syl2anc adantr c0 csn cdif cv cint wfo infpwfien relen brrelexi syl difss
      cmpt mpisyl domentr numdom eqid fifo fodomnum sylc domtr fvex ssfii mpsyl
      syldan sbth ) ACDZEZFAGHZIZAJKZAGHZAVJGHZVJALHVIVJAMNOZUAUBZUCZGHZVOAGHZV
      KVIVOVFEZVOVJBVOBUDUEULZUFZVPVGVHVQVRVIVOVMGHZVMALHZVQVIVMPEZVOVMQWAVIWBW
      CAUGZVMALUHUIUJVMVNUKVOVMPRUMWDVOVMAUNSZAVOUOVDVGVTVHBAVSVFVSUPUQTVOVJVSU
      RUSWEVJVOAUTSVJPEVIAVJQZVLAJVAVGWFVHAVFVBTAVJPRVCVJAVES $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Weak dominance agrees with normal for numerable right sets.
       (Contributed by Stefan O'Rear, 28-Feb-2015.)  (Revised by Mario
       Carneiro, 5-May-2015.) $)
    wdomnumr $p |- ( B e. dom card -> ( A ~<_* B <-> A ~<_ B ) ) $=
      ( vx ccrd cdm wcel cwdom wbr cdom c0 wceq cv wfo wex wo brwdom syl5ibrcom
      0domg breq1 fodomnum exlimdv jaod sylbid domwdom impbid1 ) BDEZFZABGHZABI
      HZUGUHAJKZBACLZMZCNZOUICUFABPUGUJUIUMUGUIUJJBIHBUFRAJBISQUGULUICBAUKTUAUB
      UCABUDUE $.
  $}

  $( The aleph function is a function on the class of ordinal numbers.
     (Contributed by NM, 21-Oct-2003.)  (Revised by Mario Carneiro,
     13-Sep-2013.) $)
  alephfnon $p |- aleph Fn On $=
    ( cale con0 wfn char com crdg rdgfnon df-aleph fneq1i mpbir ) ABCDEFZBCEDGB
    AKHIJ $.

  $( The first infinite cardinal number, discovered by Georg Cantor in 1873,
     has the same size as the set of natural numbers ` _om ` (and under our
     particular definition is also equal to it).  In the literature, the
     argument of the aleph function is often written as a subscript, and the
     first aleph is written ` aleph ` _0.  Exercise 3 of [TakeutiZaring] p. 91.
     Also Definition 12(i) of [Suppes] p. 228.  From Mosh&eacute Machover, _Set
     Theory, Logic, and Their Limitations_, p. 95:  "Aleph...the first letter
     in the Hebrew alphabet...is also the first letter of the Hebrew
     word...(_einsoph_, meaning infinity), which is a cabbalistic appellation
     of the deity.  The notation is due to Cantor, who was deeply interested in
     mysticism."  (Contributed by NM, 21-Oct-2003.)  (Revised by Mario
     Carneiro, 13-Sep-2013.) $)
  aleph0 $p |- ( aleph ` (/) ) = _om $=
    ( c0 cale cfv char com crdg df-aleph fveq1i omex rdg0 eqtri ) ABCADEFZCEABL
    GHEDIJK $.

  ${
    $d x y A $.  $d x B $.
    $( Value of the aleph function at a limit ordinal.  Definition 12(iii) of
       [Suppes] p. 91.  (Contributed by NM, 21-Oct-2003.)  (Revised by Mario
       Carneiro, 13-Sep-2013.) $)
    alephlim $p |- ( ( A e. V /\ Lim A ) -> ( aleph ` A ) =
                   U_ x e. A ( aleph ` x ) ) $=
      ( wcel wlim char com crdg cfv ciun cale rdglim2a df-aleph fveq1i wceq a1i
      wa cv iuneq2i 3eqtr4g ) BCDBEQBFGHZIABARZUAIZJBKIABUBKIZJAGBCFLBKUAMNABUD
      UCUDUCOUBBDUBKUAMNPST $.

    $( Value of the aleph function at a successor ordinal.  Definition 12(ii)
       of [Suppes] p. 91.  Here we express the successor aleph in terms of the
       Hartogs function ~ df-har , which gives the smallest ordinal that
       strictly dominates its argument (or the supremum of all ordinals that
       are dominated by the argument).  (Contributed by Mario Carneiro,
       13-Sep-2013.)  (Revised by Mario Carneiro, 15-May-2015.) $)
    alephsuc $p |- ( A e. On ->
      ( aleph ` suc A ) = ( har ` ( aleph ` A ) ) ) $=
      ( con0 wcel csuc char com crdg cale rdgsuc df-aleph fveq1i fveq2i 3eqtr4g
      cfv ) ABCADZEFGZNAPNZENOHNAHNZENFAEIOHPJKRQEAHPJKLM $.

    $( An aleph is an ordinal number.  (Contributed by NM, 10-Nov-2003.)
       (Revised by Mario Carneiro, 13-Sep-2013.) $)
    alephon $p |- ( aleph ` A ) e. On $=
      ( vy vx con0 cale wf wfn cv wcel wral alephfnon c0 csuc wceq fveq2 eleq1d
      cfv weq cvv mpan com aleph0 eqeltri char alephsuc harcl syl6eqel a1d wlim
      omelon ciun iunon alephlim syl5ibr tfinds rgen ffnfv mpbir2an 0elon f0cli
      vex ) DDAEDDEFEDGBHZEQZDIZBDJKVDBDCHZEQZDIZLEQZDIVDVBMZEQZDIZVDCBVBVELNVF
      VHDVELEOPCBRVFVCDVEVBEOPZVEVINVFVJDVEVIEOPVLVHUADUBUJUCVBDIZVKVDVMVJVCUDQ
      DVBUEVCUFUGUHVDBVEJZVGVEUIZBVEVCUKZDIZVESIZVNVQCVAZBVEVCSULTVOVFVPDVRVOVF
      VPNVSBVESUMTPUNUOUPBDDEUQURUSUT $.

    $( Every aleph is a cardinal number.  Theorem 65 of [Suppes] p. 229.
       (Contributed by NM, 25-Oct-2003.)  (Revised by Mario Carneiro,
       2-Feb-2013.) $)
    alephcard $p |- ( card ` ( aleph ` A ) ) = ( aleph ` A ) $=
      ( vx vy con0 wcel cale cfv ccrd wceq cv c0 csuc fveq2d eqeq12d com aleph0
      fveq2 3eqtr4a cvv ax-mp cardom fveq2i 3eqtr4i char alephsuc a1d wlim wral
      harcard wa ciun wi vex cardiun adantl alephlim mpan adantr 3eqtr4d tfinds
      ex wn card0 cdm wfn alephfnon fndm eleq2i ndmfv sylnbir pm2.61i ) ADEZAFG
      ZHGZVMIZBJZFGZHGZVQIZKFGZHGZVTICJZFGZHGZWCIZWBLZFGZHGZWGIZVOBCAVPKIZVRWAV
      QVTWJVQVTHVPKFQZMWKNVPWBIZVRWDVQWCWLVQWCHVPWBFQZMWMNVPWFIZVRWHVQWGWNVQWGH
      VPWFFQZMWONVPAIZVRVNVQVMWPVQVMHVPAFQZMWQNOHGOWAVTUAVTOHPUBPUCWBDEZWIWEWRW
      CUDGZHGWSWHWGWCUIWRWGWSHWBUEZMWTRUFVPUGZWECVPUHZVSXAXBUJZCVPWCUKZHGZXDVRV
      QXBXEXDIZXAVPSEZXBXFULBUMZCVPWCSUNTUOXCVQXDHXAVQXDIZXBXGXAXIXHCVPSUPUQURZ
      MXJUSVAUTVLVBZKHGKVNVMVCXKVMKHVLAFVDZEVMKIXLDAFDVEXLDIVFDFVGTVHAFVIVJZMXM
      RVK $.

    $( No cardinal can be sandwiched between an aleph and its successor aleph.
       Theorem 67 of [Suppes] p. 229.  (Contributed by NM, 10-Nov-2003.)
       (Revised by Mario Carneiro, 15-May-2015.) $)
    alephnbtwn $p |- ( ( card ` B ) = B ->
                   -. ( ( aleph ` A ) e. B /\ B e. ( aleph ` suc A ) ) ) $=
      ( vx con0 wcel ccrd cfv wceq cale csuc wa wn wi wbr wb cdm alephon onenon
      csdm adantl cardon syl6eqelr syl cardsdomel sylancr eleq2 bitrd crab cint
      id char alephsuc harval2 syl6eq eleq2d biimpd breq2 onnminsb sylan9 con2d
      cv mp2b sylan2 sylbird imnan sylib ex n0i wfn alephfnon fndm ax-mp eleq2i
      c0 ndmfv sylnbir nsyl2 sucelon sylibr con3i a1d pm2.61i ) ADEZBFGZBHZAIGZ
      BEZBAJZIGZEZKZLZMWCWEWLWCWEKZWGWJLZMWLWMWGWFBSNZWNWEWOWGOWCWEWOWFWDEZWGWE
      WFDEZBFPZEZWOWPOAQZWEBDEZWSWEBWDDWEUJBUAUBZBRUCWFBUDUEWDBWFUFUGTWEWCXAWOW
      NMXBWCXAKWJWOWCWJBWFCVAZSNZCDUHUIZEZXAWOLWCWJXFWCWIXEBWCWIWFUKGZXEAULWQWF
      WREXGXEHWTWFRCWFUMVBUNUOUPXDWOCBXCBWFSUQURUSUTVCVDWGWJVEVFVGWCLWLWEWKWCWJ
      WCWGWJWHDEZWCWJWIVNHZXHWIBVHXHWHIPZEXIXJDWHIDVIXJDHVJDIVKVLVMWHIVOVPVQAVR
      VSTVTWAWB $.
  $}

  $( No set has equinumerosity between an aleph and its successor aleph.
     (Contributed by NM, 3-Nov-2003.)  (Revised by Mario Carneiro,
     2-Feb-2013.) $)
  alephnbtwn2 $p |- -. ( ( aleph ` A ) ~< B /\ B ~< ( aleph ` suc A ) ) $=
    ( cale cfv csdm wbr wa ccrd wcel ax-mp cen con0 alephon wb cardsdomel mp2an
    onenon eleq2i bitri sylib csuc wceq cardidm alephnbtwn cdom sdomdom ondomen
    wn cdm sylancr cardid2 syl ensymd sdomentr sylan2 cardon ensdomtr alephcard
    mpancom adantl jca mto ) ACDZBEFZBAUAZCDZEFZGZVCBHDZIZVIVFIZGZVIHDZVIUBVLUH
    BUCZAVIUDJVHVJVKVHVCVIEFZVJVGVDBVIKFVOVGVIBVGBHUIZIZVIBKFZVGVFLIZBVFUEFVQVE
    MZBVFUFVFBUGUJBUKULZUMVCBVIUNUOVOVCVMIZVJVCLIVIVPIZVOWBNAMVILIZWCBUPZVIQJVC
    VIOPVMVIVCVNRSTVHVIVFEFZVKVGWFVDVRVGWFWAVIBVFUQUSUTWFVIVFHDZIZVKWDVFVPIZWFW
    HNWEVSWIVTVFQJVIVFOPWGVFVIVEURRSTVAVB $.

  $( Lemma for ~ alephordi .  (Contributed by NM, 23-Oct-2009.)  (Revised by
     Mario Carneiro, 15-May-2015.) $)
  alephordilem1 $p |- ( A e. On -> ( aleph ` A ) ~< ( aleph ` suc A ) ) $=
    ( con0 wcel cale cfv char csuc csdm cdm wbr alephon onenon harsdom alephsuc
    ccrd mp2b syl5breqr ) ABCADEZRFEZAGDEHRBCROICRSHJAKRLRMPANQ $.

  ${
    $d A w x $.  $d A x y $.  $d B x $.
    $( Strict ordering property of the aleph function.  (Contributed by Mario
       Carneiro, 2-Feb-2013.) $)
    alephordi $p |- ( B e. On ->
                    ( A e. B -> ( aleph ` A ) ~< ( aleph ` B ) ) ) $=
      ( vx vy vw cv wcel cale cfv csdm wbr wi c0 eleq2 fveq2 breq2d imbi12d cvv
      wceq wss csuc noel pm2.21i con0 wo vex elsuc2 alephordilem1 sdomtr sylan2
      expcom imim2d com23 breq1d syl5ibr a1d com3r jaod syl5bi wlim wral cen wn
      cdom fvexd ciun ssiun2s alephlim mpan sseq2d ssdomg sylsyld limsuc sylbid
      wa imp domnsym limelon onelon sylan ensym ensdomtr ex syl2im syl5com mtod
      syl jcad brsdom syl6ibr tfinds ) ACFZGZAHIZWLHIZJKZLZAMGZWNMHIZJKZLADFZGZ
      WNXAHIZJKZLZAXAUAZGZWNXFHIZJKZLABGZWNBHIZJKZLCDBWLMSZWMWRWPWTWLMANXMWOWSW
      NJWLMHOPQWLXASZWMXBWPXDWLXAANXNWOXCWNJWLXAHOPQWLXFSZWMXGWPXIWLXFANXOWOXHW
      NJWLXFHOPQWLBSZWMXJWPXLWLBANXPWOXKWNJWLBHOPQWRWTAUBUCXAUDGZXGXEXIXGXBAXAS
      ZUEXQXEXILZXAADUFUGXQXBXSXRXQXEXBXIXQXDXIXBXDXQXIXQXDXCXHJKZXIXAUHZWNXCXH
      UIUJUKULUMXRXEXQXIXRXQXILXEXQXIXRXTYAXRWNXCXHJAXAHOUNUOUPUQURUSUMWLUTZWQX
      EDWLVAYBWMWNWOVDKZWNWOVBKZVCZVOWPYBWMYCYEYBWORGZWMWNWOTZYCYBWLHVEZWMYGYBW
      NEWLEFZHIZVFZTEWLYJAWNYIAHOVGYBWOYKWNWLRGZYBWOYKSCUFZEWLRVHVIZVJUOWNWORVK
      VLYBWMYEYBWMVOZYDWOAUAZHIZJKZYOYQWOVDKZYRVCYBWMYSYBWMYPWLGZYSWLAVMYBYFYTY
      QWOTZYSYHYTUUAYBYQYKTEWLYJYPYQYIYPHOVGYBWOYKYQYNVJUOYQWORVKVLVNVPYQWOVQWG
      YOAUDGZYDYRYBWLUDGZWMUUBYLYBUUCYMWLRVRVIWLAVSVTYDWOWNVBKZUUBWNYQJKZYRWNWO
      WAAUHUUDUUEYRWOWNYQWBWCWDWEWFWCWHWNWOWIWJUPWK $.
  $}

  $( Ordering property of the aleph function.  (Contributed by NM,
     26-Oct-2003.)  (Revised by Mario Carneiro, 9-Feb-2013.) $)
  alephord $p |- ( ( A e. On /\ B e. On ) ->
                 ( A e. B <-> ( aleph ` A ) ~< ( aleph ` B ) ) ) $=
    ( con0 wcel wa cale cfv csdm wbr wi alephordi adantl cdom wn brsdom alephon
    cen syl5bi sylibrd wceq wss wne wb domtriord mp2an con3d adantr fveq2 eqeng
    ontri1 mpsyl necon3bi a1i anim12d onelpss impbid ) ACDZBCDZEZABDZAFGZBFGZHI
    ZURUTVCJUQABKLVCVAVBMIZVAVBQIZNZEZUSUTVAVBOUSVGABUAZABUBZEUTUSVDVHVFVIUSVDB
    ADZNZVHUQVDVKJURVDVBVAHIZNZUQVKVACDZVBCDVDVMUCAPZBPVAVBUDUEUQVJVLBAKUFRUGAB
    UJSVFVIJUSVEABVNABTVAVBTVEVOABFUHVAVBCUIUKULUMUNABUOSRUP $.

  $( Ordering property of the aleph function.  Theorem 8A(a) of [Enderton]
     p. 213 and its converse.  (Contributed by NM, 3-Nov-2003.)  (Revised by
     Mario Carneiro, 9-Feb-2013.) $)
  alephord2 $p |- ( ( A e. On /\ B e. On ) ->
                  ( A e. B <-> ( aleph ` A ) e. ( aleph ` B ) ) ) $=
    ( con0 wcel wa cale cfv csdm wbr alephord ccrd wb alephon onenon cardsdomel
    cdm ax-mp mp2an alephcard eleq2i bitri syl6bb ) ACDBCDEABDAFGZBFGZHIZUCUDDZ
    ABJUEUCUDKGZDZUFUCCDUDKPDZUEUHLAMUDCDUIBMUDNQUCUDORUGUDUCBSTUAUB $.

  $( Ordering property of the aleph function.  Theorem 66 of [Suppes] p. 229.
     (Contributed by NM, 25-Oct-2003.) $)
  alephord2i $p |- ( B e. On ->
                   ( A e. B -> ( aleph ` A ) e. ( aleph ` B ) ) ) $=
    ( con0 wcel cale cfv wa onelon alephord2 biimpd expimpd mpcom ex ) BCDZABDZ
    AEFBEFDZACDZNOGPBAHQNOPQNGOPABIJKLM $.

  $( Ordering property of the aleph function.  (Contributed by NM,
     11-Nov-2003.) $)
  alephord3 $p |- ( ( A e. On /\ B e. On ) ->
                  ( A C_ B <-> ( aleph ` A ) C_ ( aleph ` B ) ) ) $=
    ( con0 wcel wa wn cale cfv wss alephord2 ancoms notbid ontri1 alephon mp2an
    wb a1i 3bitr4d ) ACDZBCDZEZBADZFBGHZAGHZDZFZABIUDUCIZUAUBUETSUBUEPBAJKLABMU
    GUFPZUAUDCDUCCDUHANBNUDUCMOQR $.

  ${
    $d A x y $.  $d B x $.
    $( A set dominated by an aleph is strictly dominated by its successor aleph
       and vice-versa.  (Contributed by NM, 3-Nov-2003.)  (Revised by Mario
       Carneiro, 2-Feb-2013.) $)
    alephsucdom $p |- ( B e. On ->
                      ( A ~<_ ( aleph ` B ) <-> A ~< ( aleph ` suc B ) ) ) $=
      ( con0 wcel cale cfv cdom wbr csuc alephordilem1 domsdomtr ex syl5com cen
      csdm ccrd cdm sdomdom alephon ondomen mpan 3syl ensymd alephnbtwn2 imnani
      cardid2 wn ensdomtr mpancom nsyl3 cardon domtriord sylibr endomtr syl2anc
      wb mp2an impbid1 ) BCDZABEFZGHZABIZEFZOHZUSUTVCOHZVAVDBJVAVEVDAUTVCKLMVDA
      APFZNHVFUTGHZVAVDVFAVDAVCGHZAPQDZVFANHZAVCRVCCDVHVIVBSVCATUAAUFUBZUCVDUTV
      FOHZUGZVGVLVFVCOHZVDVLVNBVFUDUEVJVDVNVKVFAVCUHUIUJVFCDUTCDVGVMUPAUKBSVFUT
      ULUQUMAVFUTUNUOUR $.

    $( An alternate representation of a successor aleph.  The aleph function is
       the function obtained from the ~ hartogs function by transfinite
       recursion, starting from ` _om ` .  Using this theorem we could define
       the aleph function with ` { z e. On | z ~<_ x } ` in place of
       ` |^| { z e. On | x ~< z } ` in ~ df-aleph .  (Contributed by NM,
       3-Nov-2003.)  (Revised by Mario Carneiro, 2-Feb-2013.) $)
    alephsuc2 $p |- ( A e. On ->
                ( aleph ` suc A ) = { x e. On | x ~<_ ( aleph ` A ) } ) $=
      ( vy con0 wcel cv cale cfv cdom wbr crab csuc csdm alephsucdom rabbidv wa
      alephon oneli wral ccrd wceq alephcard iscard mpbi simpri rspec wi sdomel
      jca mpan2 imp impbii breq1 elrab bitr4i eqriv syl6reqr ) BDEZAFZBGHIJZADK
      USBLZGHZMJZADKZVBURUTVCADUSBNOCVBVDCFZVBEZVEDEZVEVBMJZPZVEVDEVFVIVFVGVHVB
      VEVAQZRVHCVBVBDEZVHCVBSZVBTHVBUAVKVLPVAUBCVBUCUDUEUFUIVGVHVFVGVKVHVFUGVJV
      EVBUHUJUKULVCVHAVEDUSVEVBMUMUNUOUPUQ $.
  $}

  $( Relationship between inclusion of ordinal numbers and dominance of
     infinite initial ordinals.  (Contributed by Jeff Hankins, 23-Oct-2009.) $)
  alephdom $p |- ( ( A e. On /\ B e. On )
        -> ( A C_ B <-> ( aleph ` A ) ~<_ ( aleph ` B ) ) ) $=
    ( con0 wcel cale cfv cdom wbr wceq wo alephord sdomdom syl6bi cen wi cvv wn
    csdm word eloni wa wss onsseleq fvex fveq2 eqeng mpsyl a1i syl6 jaod sylbid
    endom ordtri2or syl2anr ord con1d wb ancoms sdomnen sbth ex mtod impcon4bid
    syl syld ) ACDZBCDZUAZABUBZAEFZBEFZGHZVHVIABDZABIZJVLABUCVHVMVLVNVHVMVJVKRH
    VLABKVJVKLMVHVNVJVKNHZVLVNVOOVHVJPDVNVJVKIVOAEUDABEUEVJVKPUFUGUHVJVKULUIUJU
    KVHVIQBADZVLQZVHVPVIVHVPVIVGBSASVPVIJVFBTATBAUMUNUOUPVHVPVKVJRHZVQVGVFVPVRU
    QBAKURVRVLVKVJNHZVKVJUSVRVKVJGHZVLVSOVKVJLVTVLVSVKVJUTVAVDVBMVEVC $.

  $( Every aleph is greater than or equal to the set of natural numbers.
     (Contributed by NM, 11-Nov-2003.) $)
  alephgeom $p |- ( A e. On <-> _om C_ ( aleph ` A ) ) $=
    ( con0 wcel com cale cfv wss c0 aleph0 0elon alephord3 mpan mpbii syl5eqssr
    0ss wb cdm wn peano1 word ordom ord0 ordtri1 mp2an mpbi ndmfv sseq2d mtbiri
    con2bii con4i wfn wceq alephfnon fndm ax-mp syl6eleq impbii ) ABCZDAEFZGZUR
    DHEFZUSIURHAGZVAUSGZAOHBCURVBVCPJHAKLMNUTAEQZBAVDCZUTVERZUTDHGZHDCZVGRSVGVH
    DTHTVGVHRPUAUBDHUCUDUIUEVFUSHDAEUFUGUHUJEBUKVDBULUMBEUNUOUPUQ $.

  $( Every aleph is a limit ordinal.  (Contributed by NM, 11-Nov-2003.) $)
  alephislim $p |- ( A e. On <-> Lim ( aleph ` A ) ) $=
    ( con0 wcel com cale cfv wlim alephgeom ccrd cardlim alephcard sseq2i limeq
    wss wceq wb ax-mp 3bitr3i bitri ) ABCDAEFZNZTGZAHDTIFZNUCGZUAUBTJUCTDAKZLUC
    TOUDUBPUEUCTMQRS $.

  $( The aleph function is one-to-one.  (Contributed by NM, 3-Aug-2004.) $)
  aleph11 $p |- ( ( A e. On /\ B e. On ) ->
                ( ( aleph ` A ) = ( aleph ` B ) <-> A = B ) ) $=
    ( con0 wcel wa wceq cale cfv wss alephord3 wb ancoms anbi12d 3bitr4g bicomd
    eqss ) ACDZBCDZEZABFZAGHZBGHZFZSABIZBAIZEUAUBIZUBUAIZETUCSUDUFUEUGABJRQUEUG
    KBAJLMABPUAUBPNO $.

  ${
    $d x y $.
    $( The aleph function is a one-to-one mapping from the ordinals to the
       infinite cardinals.  See also ~ alephf1ALT .  (Contributed by Mario
       Carneiro, 2-Feb-2013.) $)
    alephf1 $p |- aleph : On -1-1-> On $=
      ( vx vy con0 cale wf1 wf cv cfv wceq weq wi wral wfn wcel alephfnon rgenw
      alephon ffnfv mpbir2an wa aleph11 biimpd rgen2a dff13 ) CCDECCDFZAGZDHZBG
      ZDHIZABJZKZBCLACLUEDCMUGCNZACLOULACUFQPACCDRSUKABCUFCNUHCNTUIUJUFUHUAUBUC
      ABCCDUDS $.
  $}

  $( If an ordinal is smaller than an initial ordinal, it is strictly dominated
     by it.  (Contributed by Jeff Hankins, 24-Oct-2009.)  (Proof shortened by
     Mario Carneiro, 20-Sep-2014.) $)
  alephsdom $p |- ( ( A e. On /\ B e. On )
        -> ( A e. ( aleph ` B ) <-> A ~< ( aleph ` B ) ) ) $=
    ( con0 wcel wa cale cfv csdm wbr ccrd cdm wb simpl alephon ax-mp cardsdomel
    onenon sylancl alephcard eleq2i syl6rbb ) ACDZBCDZEZABFGZHIZAUEJGZDZAUEDUDU
    BUEJKDZUFUHLUBUCMUECDUIBNUEQOAUEPRUGUEABSTUA $.

  $( A dominated initial ordinal is included.  (Contributed by Jeff Hankins,
     24-Oct-2009.) $)
  alephdom2 $p |- ( ( A e. On /\ B e. On )
        -> ( ( aleph ` A ) C_ B <-> ( aleph ` A ) ~<_ B ) ) $=
    ( con0 wcel wa cale cfv wn csdm wbr cdom wb alephsdom ancoms notbid alephon
    wss word onordi adantl eloni ordtri1 sylancr domtriord mpan 3bitr4d ) ACDZB
    CDZEZBAFGZDZHZBUJIJZHZUJBQZUJBKJZUIUKUMUHUGUKUMLBAMNOUHUOULLZUGUHUJRBRUQUJA
    PZSBUAUJBUBUCTUHUPUNLZUGUJCDUHUSURUJBUDUETUF $.

  ${
    $d x y A $.
    $( The argument of the aleph function is less than or equal to its value.
       Exercise 2 of [TakeutiZaring] p. 91.  (Later, in ~ alephfp2 , we will
       that equality can sometimes hold.)  (Contributed by NM, 9-Nov-2003.)
       (Proof shortened by Mario Carneiro, 22-Feb-2013.) $)
    alephle $p |- ( A e. On -> A C_ ( aleph ` A ) ) $=
      ( vx vy cv cale cfv wss weq id sseq12d wceq con0 wcel wral wel alephord2i
      fveq2 wa imp wi onelon alephon ontr2 sylancl mpan2d ralimdva onirri eleq1
      wn rspccv mtoi wb ontri1 mpan2 syl5ibr syld tfis3 ) BDZUREFZGZCDZVAEFZGZA
      AEFZGBCABCHZURVAUSVBVEIURVAEQJURAKZURAUSVDVFIURAEQJURLMZVCCURNVAUSMZCURNZ
      UTVGVCVHCURVGCBOZRZVCVBUSMZVHVGVJVLVAURPSVKVALMUSLMZVCVLRVHTURVAUAURUBZVA
      VBUSUCUDUEUFVIUTVGUSURMZUIZVIVOUSUSMZUSVNUGVHVQCUSURVAUSUSUHUJUKVGVMUTVPU
      LVNURUSUMUNUOUPUQ $.

    $( Given any transfinite cardinal number ` A ` , there is exactly one aleph
       that is equal to it.  Here we compute that aleph _explicitly_.
       (Contributed by NM, 9-Nov-2003.)  (Revised by Mario Carneiro,
       2-Feb-2013.) $)
    cardaleph $p |- ( ( _om C_ A /\ ( card ` A ) = A ) ->
                  A = ( aleph ` |^| { x e. On | A C_ ( aleph ` x ) } ) ) $=
      ( vy com wss ccrd cfv wceq wa cale con0 c0 wrex wo wi fveq2 sseq2d adantl
      wcel wn crab cint csuc wlim cardon eleq1 mpbii alephle rspcev nfcv nfrab1
      cv mpdan nfint nffv nfss onminsb a1i aleph0 syl6eq sseq1d biimprd anim12d
      3syl eqss syl6ibr com12 ancoms vex sucid eleq2 onnminsb syl5 imp alephsuc
      mpbiri char sylan9eqr eleq2d biimpd cdom wbr elharval simprbi cdm alephon
      wb onenon syl ax-mp carddom2 sylancl sseq1 alephcard sseq2i syl6bb bitr3d
      syl5ib sylan9r mtod rexlimdvaa onintrab2 sylib onelon sylan adantld mpcom
      onelssi nsyl nrexdv adantr ciun alephlim eliun mtbird jaod onsseleq mpan2
      ex mpbid ord sylsyld word eloni w3o ordzsl 3orass bitri mpjaod ) DBEZBFGZ
      BHZIBAULZJGZEZAKUAZUBZLHZBYQJGZHZYQCULZUCZHZCKMZYQUDZNZYLYJYRYTOYRYLYJIZY
      TYRUUGBYSEZYSBEZIYTYRYLUUHYJUUIYLUUHOYRYLBKSZYOAKMZUUHYLYKKSUUJBUEYKBKUFU
      GZUUJBBJGZEZUUKBUHYOUUNABKYMBHYNUUMBYMBJPQUIUMZYOUUHAABYSABUJAYQJAJUJAYPY
      OAKUKUNUOUPYMYQHYNYSBYMYQJPQUQZVDURYRUUIYJYRYSDBYRYSLJGDYQLJPUSUTVAVBVCBY
      SVEVFVGVHYLUUFYTOYJYLUUJUUFBYSSZTZYTUULYLUUDUURUUEYLUUCUURCKYLUUAKSZUUCIZ
      IUUQBUUAJGZEZUUTUVBTZYLUUSUUCUVCUUCUUAYQSZUUSUVCUUCUVDUUAUUBSUUACVIVJYQUU
      BUUAVKVPYOUVBAUUAYMUUAHYNUVABYMUUAJPQVLZVMVNRUUTUUQBUVAVQGZSZYLUVBUUTUUQU
      VGUUTYSUVFBUUCUUSYSUUBJGUVFYQUUBJPUUAVOVRVSVTUVGBUVAWAWBZYLUVBUVGUUJUVHUV
      ABWCWDYLYKUVAFGZEZUVHUVBYLBFWEZSZUVAUVKSZUVJUVHWGYLUUJUVLUULBWHWIUVAKSUVM
      UUAWFZUVAWHWJBUVAWKWLYLUVJBUVIEUVBYKBUVIWMUVIUVABUUAWNWOWPWQWRWSWTXAYLUUJ
      UUEUUROUULUUJUUEUURUUJUUEIZUUQBUVASZCYQMZUUJUVQTUUEUUJUVPCYQUUJUVDIZUVBUV
      PUUSUVRUVCUUJYQKSZUVDUUSUUJUUKUVSUUOYOAXBXCZYQUUAXDXEUUSUVDUVCUUJUVEXFXGU
      VABUVNXHXIXJXKUVOUUQBCYQUVAXLZSUVQUVOYSUWABUUJUVSUUEYSUWAHUVTCYQKXMXEVSCB
      YQUVAXNWPXOXSWIXPUUJUUQYTUUJUUHUUQYTNZUUJUUKUUHUUOUUPWIUUJYSKSUUHUWBWGYQW
      FBYSXQXRXTYAYBRYLYRUUFNZYJYLUUJUVSUWCUULUVTUVSYQYCZUWCYQYDUWDYRUUDUUEYEUW
      CCYQYFYRUUDUUEYGYHXCVDRYI $.

    $( Every transfinite cardinal is an aleph and vice-versa.  Theorem 8A(b) of
       [Enderton] p. 213 and its converse.  (Contributed by NM, 5-Nov-2003.) $)
    cardalephex $p |- ( _om C_ A ->
                   ( ( card ` A ) = A <-> E. x e. On A = ( aleph ` x ) ) ) $=
      ( vy com wss ccrd cfv wceq cv cale con0 wrex wa crab cint simpl cardaleph
      wcel sseq2d fveq2 alephgeom syl6bbr mpbid eqeq2d rspcev syl2anc alephcard
      ex id 3eqtr4a rexlimivw impbid1 ) DBEZBFGZBHZBAIZJGZHZAKLZUMUOUSUMUOMZBCI
      JGECKNOZKRZBVAJGZHZUSUTUMVBUMUOPUTUMDVCEVBUTBVCDCBQZSVAUAUBUCVEURVDAVAKUP
      VAHUQVCBUPVAJTUDUEUFUHURUOAKURUQFGUQUNBUPUGBUQFTURUIUJUKUL $.
  $}

  ${
    $d x A $.
    $( An infinite numerable set is equinumerous to an infinite initial
       ordinal.  (Contributed by Jeff Hankins, 23-Oct-2009.)  (Revised by Mario
       Carneiro, 29-Apr-2015.) $)
    infenaleph $p |- ( ( A e. dom card /\ _om ~<_ A ) ->
      E. x e. ran aleph x ~~ A ) $=
      ( ccrd cdm wcel com cdom wbr wa cfv cale crn cen cv wrex wceq con0 wss wb
      ax-mp cardidm cardom simpr omelon onenon simpl carddom2 sylancr syl5eqssr
      mpbird cardalephex syl mpbii eqcom rexbii sylib alephfnon fvelrnb cardid2
      wfn sylibr adantr breq1 rspcev syl2anc ) BCDZEZFBGHZIZBCJZKLZEZVJBMHZANZB
      MHZAVKOVIVNKJZVJPZAQOZVLVIVJVPPZAQOZVRVIVJCJVJPZVTBUAVIFVJRWAVTSVIFFCJZVJ
      UBVIWBVJRZVHVGVHUCVIFVFEZVGWCVHSFQEWDUDFUETVGVHUFFBUGUHUJUIAVJUKULUMVSVQA
      QVJVPUNUOUPKQUTVLVRSUQAQVJKURTVAVGVMVHBUSVBVOVMAVJVKVNVJBMVCVDVE $.
  $}

  ${
    $d x A $.
    $( Two ways to express the property of being a transfinite cardinal.
       (Contributed by NM, 9-Nov-2003.) $)
    isinfcard $p |- ( ( _om C_ A /\ ( card ` A ) = A ) <-> A e. ran aleph ) $=
      ( vx cale crn wcel cv cfv wceq con0 wrex com wss ccrd wa wfn wb alephfnon
      fvelrnb ax-mp alephgeom biimpi sseq2 rexlimiv pm4.71ri rexbii cardalephex
      syl5ibrcom eqcom pm5.32i 3bitr4i bitr2i ) ACDEZBFZCGZAHZBIJZKALZAMGAHZNZC
      IOULUPPQBIACRSAUNHZBIJZUQVANUPUSVAUQUTUQBIUMIEZUQUTKUNLZVBVCUMTUAAUNKUBUG
      UCUDUOUTBIUNAUHUEUQURVABAUFUIUJUK $.
  $}

  $( Two ways to express the property of being a cardinal number.  (Contributed
     by NM, 9-Nov-2003.) $)
  iscard3 $p |- ( ( card ` A ) = A <-> A e. ( _om u. ran aleph ) ) $=
    ( ccrd cfv wceq com wcel cale crn wo cun wn wss word con0 eleq1 mpbii eloni
    cardon syl ordom ordtri2or sylancl ord wa isinfcard biimpi expcom syld orrd
    cardnn bicomi simprbi jaoi impbii elun bitr4i ) ABCZADZAEFZAGHZFZIZAEUTJFUR
    VBURUSVAURUSKEALZVAURUSVCURAMZEMUSVCIURANFZVDURUQNFVEARUQANOPAQSTAEUAUBUCVC
    URVAVCURUDZVAAUEZUFUGUHUIUSURVAAUJVAVCURVFVAVGUKULUMUNAEUTUOUP $.

  $( Two ways to express the class of all cardinal numbers, which consists of
     the finite ordinals in ` _om ` plus the transfinite alephs.  (Contributed
     by NM, 10-Sep-2004.) $)
  cardnum $p |- { x | ( card ` x ) = x } = ( _om u. ran aleph ) $=
    ( com cale crn cun cv ccrd cfv wceq cab wcel iscard3 bicomi abbi2i eqcomi )
    BCDEZAFZGHQIZAJRAPRQPKQLMNO $.

  ${
    $d x A $.
    $( An infinite initial ordinal is characterized by the property of being
       initial - that is, it is a subset of any dominating ordinal.
       (Contributed by Jeff Hankins, 29-Oct-2009.)  (Proof shortened by Mario
       Carneiro, 20-Sep-2014.) $)
    alephinit $p |- ( ( A e. On /\ _om C_ A )
          -> ( A e. ran aleph <-> A. x e. On ( A ~<_ x -> A C_ x ) ) ) $=
      ( con0 wcel com wss wa cale ccrd cfv wceq cdom wi wb adantl onenon adantr
      wbr cardonle cen crn cv wral isinfcard bicomi baib carddom2 syl2an expcom
      cdm sstr syl sylbird sseq1 imbi2d syl5ibcom ralrimdva oncardid ensym 3syl
      endom cardon breq2 sseq2 imbi12d rspcv ax-mp biantrurd eqss sylibd impbid
      syl5com syl6bbr bitrd ) BCDZEBFZGZBHUADZBIJZBKZBAUBZLRZBWAFZMZACUCZVPVRVT
      NVOVRVPVTVPVTGVRBUDUEUFOVQVTWEVQVTWDACVQWACDZGZWBVSWAFZMVTWDWGWBVSWAIJZFZ
      WHVQBIUJZDZWAWKDWJWBNWFVOWLVPBPQWAPBWAUGUHWGWIWAFZWJWHMWFWMVQWASOWJWMWHVS
      WIWAUKUIULUMVTWHWCWBVSBWAUNUOUPUQVQWEBVSFZVTVQBVSLRZWEWNVOWOVPVOVSBTRBVST
      RWOBURVSBUSBVSVAUTQVSCDWEWOWNMZMBVBWDWPAVSCWAVSKWBWOWCWNWAVSBLVCWAVSBVDVE
      VFVGVLVQWNVSBFZWNGVTVQWQWNVOWQVPBSQVHVSBVIVMVJVKVN $.
  $}

  ${
    $d x F $.  $d x A $.
    $( The union of the image of a mapping to cardinals is a cardinal.
       Proposition 11.16 of [TakeutiZaring] p. 104.  (Contributed by NM,
       4-Nov-2004.) $)
    carduniima $p |- ( A e. B -> ( F : A --> ( _om u. ran aleph ) ->
                     U. ( F " A ) e. ( _om u. ran aleph ) ) ) $=
      ( vx wcel com cale crn cun wf cima cuni ccrd cfv wceq wfun ffun funimaexg
      cvv iscard3 sylan expcom wral wfn ffn fnima syl frn eqsstrd sseld syl6ibr
      cv ralrimiv carduni syl5 syli syl6ib ) ABEZAFGHIZCJZCAKZLZMNVBOZVBUSEUTUR
      VASEZVCUTURVDUTCPURVDAUSCQCABRUAUBUTDULZMNVEOZDVAUCVDVCUTVFDVAUTVEVAEVEUS
      EVFUTVAUSVEUTVACHZUSUTCAUDVAVGOAUSCUEACUFUGAUSCUHUIUJVETUKUMDVASUNUOUPVBT
      UQ $.

    $( If a mapping to cardinals has an infinite value, then the union of its
       image is an infinite cardinal.  Corollary 11.17 of [TakeutiZaring]
       p. 104.  (Contributed by NM, 4-Nov-2004.) $)
    cardinfima $p |- ( A e. B -> ( ( F : A --> ( _om u. ran aleph ) /\
         E. x e. A ( F ` x ) e. ran aleph ) -> U. ( F " A ) e. ran aleph ) ) $=
      ( wcel cvv com cale crn cun wf cv cfv wa wi wss ccrd wceq isinfcard imp
      wrex cima cuni elex bicomi simplbi wfn ffn fnfvelrn fnima sylibrd elssuni
      eleq2d syl6 sylan sylan9ssr anasss a1i carduniima iscard3 syl6ibr adantrd
      ex jcad syl6ib exp4d rexlimdv expimpd syl ) BCEBFEZBGHIZJZDKZALZDMZVKEZAB
      UAZNDBUBZUCZVKEZOBCUDVJVMVQVTVJVMNVPVTABVJVMVNBEZVPVTOOVJVMWAVPVTVJVMWAVP
      NZNZGVSPZVSQMVSRZNVTVJWCWDWEWCWDOVJVMWAVPWDVPVMWANGVOVSVPGVOPZVOQMVORZWFW
      GNVPVOSUEUFVMDBUGZWAVOVSPZBVLDUHWHWAWIWHWAVOVREZWIWHWAVODIZEZWJWHWAWLBVND
      UIVCWHVRWKVOBDUJUMUKVOVRULUNTUOUPUQURVJVMWEWBVJVMVSVLEWEBFDUSVSUTVAVBVDVS
      SVEVFTVGVHVI $.
  $}

  ${
    $d x y z $.
    $( Aleph is an order isomorphism of the class of ordinal numbers onto the
       class of infinite cardinals.  Definition 10.27 of [TakeutiZaring] p. 90.
       (Contributed by NM, 3-Aug-2004.) $)
    alephiso $p |- aleph Isom _E , _E ( On ,
                   { x | ( _om C_ x /\ ( card ` x ) = x ) } ) $=
      ( vy vz con0 com cv wss ccrd cfv wceq cab cep cale wiso wbr wral mpbir2an
      wa wcel rgen2a wb wf1 wfo wf wi wfn crn alephfnon isinfcard bicomi abbi2i
      wf1o df-fo ax-mp aleph11 biimpd dff13 df-f1o alephord2 epel epelc 3bitr4g
      fof fvex df-isom ) DEAFZGVFHIVFJRZAKZLLMNDVHMULZBFZCFZLOZVJMIZVKMIZLOZUAZ
      CDPBDPVIDVHMUBZDVHMUCZVQDVHMUDZVMVNJZVJVKJZUEZCDPBDPVRVSVRMDUFMUGZVHJUHVG
      AWCVGVFWCSVFUIUJUKDVHMUMQZDVHMVCUNWBBCDVJDSVKDSRZVTWAVJVKUOUPTBCDVHMUQQWD
      DVHMURQVPBCDWEVJVKSVMVNSVLVOVJVKUSBCUTVMVNVKMVDVAVBTBCDVHLLMVEQ $.
  $}

  $( The class of all transfinite cardinal numbers (the range of the aleph
     function) is a proper class.  Proposition 10.26 of [TakeutiZaring] p. 90.
     (Contributed by NM, 11-Nov-2003.) $)
  alephprc $p |- -. ran aleph e. _V $=
    ( vx cale crn cvv wcel com cun cv ccrd cfv wceq cardprc neli cardnum eleq1i
    cab mtbi omex unexg mpan mto ) BCZDEZFUBGZDEZAHZIJUFKAPZDEUEUGDALMUGUDDANOQ
    FDEUCUERFUBDDSTUA $.

  $( The class of transfinite cardinals (the range of the aleph function) is a
     subclass of the class of ordinal numbers.  (Contributed by NM,
     11-Nov-2003.) $)
  alephsson $p |- ran aleph C_ On $=
    ( vx cale crn con0 cv wcel com wss ccrd cfv wa isinfcard cardon eleq1 mpbii
    wceq adantl sylbir ssriv ) ABCZDAEZTFGUAHZUAIJZUAPZKUADFZUALUDUEUBUDUCDFUEU
    AMUCUADNOQRS $.

  $( The union of the class of transfinite cardinals (the range of the aleph
     function) is the class of ordinal numbers.  (Contributed by NM,
     11-Nov-2003.) $)
  unialeph $p |- U. ran aleph = On $=
    ( cale crn cuni con0 wcel wceq cvv alephprc uniexb mtbi elex word alephsson
    mto wo wss ssorduni ax-mp ordeleqon mpbi mtpor ) ABZCZDEZUCDFZUDUCGEZUBGEUF
    HUBIJUCDKNUCLZUDUEOUBDPUGMUBQRUCSTUA $.

  ${
    $d x y $.
    $( The aleph function is strictly monotone.  (Contributed by Mario
       Carneiro, 15-Mar-2013.) $)
    alephsmo $p |- Smo aleph $=
      ( vy vx con0 wss word cv cale cfv wcel wral wsmo ssid alephord2i ralrimiv
      ordon rgen wf w3a wi wfn crn alephfnon alephsson df-f issmo2 ax-mp mp3an
      mpbir2an ) CCDZCEZAFZGHBFZGHIZAULJZBCJZGKZCLOUNBCULCIUMAULUKULMNPCCGQZUIU
      JUORUPSUQGCTGUACDUBUCCCGUDUHBACCGUEUFUG $.
  $}

  $( Alternate proof of ~ alephf1 .  (Contributed by Mario Carneiro,
     15-Mar-2013.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  alephf1ALT $p |- aleph : On -1-1-> On $=
    ( vx con0 cale wf wsmo wf1 wfn cv cfv wcel wral alephfnon alephon a1i ffnfv
    rgen mpbir2an alephsmo smo11 mp2an ) BBCDZCEBBCFUACBGAHZCIBJZABKLUCABUCUBBJ
    UBMNPABBCOQRBBCST $.

  ${
    $d z w v $.  $d z w v H $.
    alephfplem.1 $e |- H = ( rec ( aleph , _om ) |` _om ) $.
    $( Lemma for ~ alephfp .  (Contributed by NM, 6-Nov-2004.) $)
    alephfplem1 $p |- ( H ` (/) ) e. ran aleph $=
      ( cfv cale crn com crdg cres cvv wcel wceq omex fr0g ax-mp fveq1i 3eqtr4i
      c0 aleph0 con0 wfn alephfnon 0elon fnfvelrn mp2an eqeltri ) QACZQDCZDEZQD
      FGFHZCZFUFUGFIJUJFKLFIDMNQAUIBORPDSTQSJUGUHJUAUBSQDUCUDUE $.

    $( Lemma for ~ alephfp .  (Contributed by NM, 6-Nov-2004.) $)
    alephfplem2 $p |- ( w e. _om -> ( H ` suc w ) = ( aleph ` ( H ` w ) ) ) $=
      ( cv com wcel csuc cale crdg cres cfv frsuc fveq1i fveq2i 3eqtr4g ) ADZEF
      PGZHEIEJZKPRKZHKQBKPBKZHKEPHLQBRCMTSHPBRCMNO $.

    $( Lemma for ~ alephfp .  (Contributed by NM, 6-Nov-2004.) $)
    alephfplem3 $p |- ( v e. _om -> ( H ` v ) e. ran aleph ) $=
      ( vw cv cfv cale crn wcel csuc wceq fveq2 eleq1d alephfplem1 com con0 wfn
      c0 alephfnon alephsson sseli fnfvelrn sylancr alephfplem2 syl5ibr finds1
      ) AEZBFZGHZIRBFZUIIDEZBFZUIIZUKJZBFZUIIZADUGRKUHUJUIUGRBLMUGUKKUHULUIUGUK
      BLMUGUNKUHUOUIUGUNBLMBCNUMUPUKOIZULGFZUIIZUMGPQULPIUSSUIPULTUAPULGUBUCUQU
      OURUIDBCUDMUEUF $.

    $( Lemma for ~ alephfp .  (Contributed by NM, 5-Nov-2004.) $)
    alephfplem4 $p |- U. ( H " _om ) e. ran aleph $=
      ( vz com cale crn cun wf cv cfv wcel wrex cima cuni wss wfn wral mp2an c0
      cvv crdg cres frfnom fneq1i mpbir alephfplem3 ffnfv mpbir2an ssun2 peano1
      rgen fss alephfplem1 wceq fveq2 eleq1d rspcev wa wi omex cardinfima ax-mp
      ) DDEFZGZAHZCIZAJZVCKZCDLZADMNVCKZDVCAHZVCVDOVEVKADPZVHCDQVLEDUADUBZDPDEU
      CDAVMBUDUEVHCDCABUFUKCDVCAUGUHVCDUIDVCVDAULRSDKSAJZVCKZVIUJABUMVHVOCSDVFS
      UNVGVNVCVFSAUOUPUQRDTKVEVIURVJUSUTCDTAVAVBR $.

    $( The aleph function has a fixed point.  Similar to Proposition 11.18 of
       [TakeutiZaring] p. 104, except that we construct an actual example of a
       fixed point rather than just showing its existence.  See ~ alephfp2 for
       an abbreviated version just showing existence.  (Contributed by NM,
       6-Nov-2004.)  (Proof shortened by Mario Carneiro, 15-May-2015.) $)
    alephfp $p |- ( aleph ` U. ( H " _om ) ) = U. ( H " _om ) $=
      ( vz vv com cale crn wcel cv cfv wceq con0 wrex wss wa wi wfn syl mpbird
      wb cima cuni alephfplem4 ccrd isinfcard cardalephex biimpa sylbir alephle
      wn alephon onirri wfun crdg cres frfnom fneq1i mpbir fnfun mp2b alephsson
      eluniima alephfplem3 sseldi alephord2i csuc alephfplem2 peano2 mpan fnima
      fnfvelrn ax-mp syl6eleqr eqeltrrd elssuni sseld syld rexlimiv sylbi eleq2
      imbi12d mpbii mtoi anim12i word eloni onordi ordtri4 sylancl adantr eqeq2
      adantl eqcomd fveq2d rexlimiva ) AEUAZUBZFGZHZWQCIZFJZKZCLMZWQFJZWQKZABUC
      WSEWQNZWQUDJWQKZOXCWQUEXFXGXCCWQUFUGUHXBXECLWTLHZXBOZXEXDXAKZXIWQWTFXIWTW
      QXIWTWQKZWTXAKZXIXLWTXANZWTXAHZUJZOZXHXMXBXOWTUIXBXNXAXAHZXAWTUKZULXBWTWQ
      HZXAWQHZPXNXQPXSWTDIZAJZHZDEMZXTAEQZAUMXSYDTYEFEUNEUOZEQEFUPEAYFBUQURZEAU
      SDEWTAVBUTYCXTDEYAEHZYCXAYBFJZHZXTYHYBLHYCYJPYHWRLYBVADABVCVDWTYBVERYHYIW
      QXAYHYIWPHYIWQNYHYAVFZAJZYIWPDABVGYHYKEHZYLWPHYAVHYMYLAGZWPYEYMYLYNHYGEYK
      AVKVIYEWPYNKYGEAVJVLVMRVNYIWPVORVPVQVRVSXBXSXNXTXQWQXAWTVTWQXAXAVTWAWBWCW
      DXHXLXPTZXBXHWTWEXAWEYOWTWFXAXRWGWTXAWHWIWJSXBXKXLTXHWQXAWTWKWLSWMWNXBXEX
      JTXHWQXAXDWKWLSWOUT $.
  $}

  $( The aleph function has at least one fixed point.  Proposition 11.18 of
     [TakeutiZaring] p. 104.  See ~ alephfp for an actual example of a fixed
     point.  Compare the inequality ~ alephle that holds in general.  Note that
     if ` x ` is a fixed point, then ` aleph `` aleph `` aleph `` ` ...
     ` aleph `` x = x ` .  (Contributed by NM, 6-Nov-2004.)  (Revised by Mario
     Carneiro, 15-May-2015.) $)
  alephfp2 $p |- E. x e. On ( aleph ` x ) = x $=
    ( cale com crdg cres cima cuni con0 wcel wceq cv wrex alephsson alephfplem4
    cfv crn eqid sselii alephfp fveq2 id eqeq12d rspcev mp2an ) BCDCEZCFGZHIUFB
    OZUFJZAKZBOZUIJZAHLBPHUFMUEUEQZNRUEULSUKUHAUFHUIUFJZUJUGUIUFUIUFBTUMUAUBUCU
    D $.

  ${
    $d x y z A $.
    $( An alternate way to express the value of the aleph function: it is the
       least infinite cardinal different from all values at smaller arguments.
       Definition of aleph in [Enderton] p. 212 and definition of aleph in
       [BellMachover] p. 490 .  (Contributed by NM, 16-Nov-2003.) $)
    alephval3 $p |- ( A e. On -> ( aleph ` A ) = |^| { x | ( ( card ` x ) = x
                   /\ _om C_ x /\ A. y e. A -. x = ( aleph ` y ) ) } ) $=
      ( vz con0 wcel cale cfv cv ccrd wceq com wss wn wral w3a a1i ralrimiv wa
      wi cab cint alephcard alephgeom biimpi alephord2i elirr eleq2 mtbiri syl6
      con2i fvex fveq2 id eqeq12d sseq2 notbid ralbidv 3anbi123d elab syl3anbrc
      eqeq1 wrex cardalephex biimpac eleq1 alephord2 bicomd biimpcd simpr exp4c
      sylan9bbr jcad com3r imp4b reximdv2 syl5 imp dfrex2 sylib mpbir ex df-3an
      nan vex bitri notbii syl6ibr cardon mpbii 3ad2ant1 abssi oneqmini syl2anc
      ax-mp ) CEFZCGHZAIZJHZWRKZLWRMZWRBIZGHZKZNZBCOZPZAUAZFZDIZXHFZNZDWQOZWQXH
      UBKZWPWQJHZWQKZLWQMZWQXCKZNZBCOZXIXPWPCUCQWPXQCUDUEWPXSBCWPXBCFZXCWQFZXSX
      BCUFXRYBXRYBXCXCFXCUGWQXCXCUHUIUKUJRXGXPXQXTPAWQCGULWRWQKZWTXPXAXQXFXTYCW
      SXOWRWQWRWQJUMYCUNUOWRWQLUPYCXEXSBCYCXDXRWRWQXCVBUQURUSUTVAWPXLDWQWPXJWQF
      ZXJJHZXJKZLXJMZSZXJXCKZNZBCOZSZNZXLWPYDYMWPYDSZYMTYNYHSZYKNZTYOYIBCVCZYPY
      NYHYQYHYIBEVCZYNYQYGYFYRBXJVDVEYNYIYIBECWPYDXBEFZYIYAYISZYDYSWPYIYTTYDYSW
      PYIYTYDYSWPSZYISZYAYIUUBYDYAYIYDYBUUAYAXJXCWQVFUUAYAYBXBCVGVHVLVIUUBYITYD
      UUAYIVJQVMVKVNVOVPVQVRYIBCVSVTYNYHYKWDWAWBXKYLXKYFYGYKPZYLXGUUCAXJDWEWRXJ
      KZWTYFXAYGXFYKUUDWSYEWRXJWRXJJUMUUDUNUOWRXJLUPUUDXEYJBCUUDXDYIWRXJXCVBUQU
      RUSUTYFYGYKWCWFWGWHRXHEMXIXMSXNTXGAEWTXAWREFZXFWTWSEFUUEWRWIWSWREVFWJWKWL
      DWQXHWMWOWN $.
  $}

  $( The power set of an aleph is not strictly dominated by the successor
     aleph.  (The Generalized Continuum Hypothesis says they are equinumerous,
     see ~ gch3 or ~ gchaleph2 .)  The transposed form ~ alephsucpw cannot be
     proven without the AC, and is in fact equivalent to it.  (Contributed by
     Mario Carneiro, 2-Feb-2013.) $)
  alephsucpw2 $p |- -. ~P ( aleph ` A ) ~< ( aleph ` suc A ) $=
    ( cale cfv cpw csdm wbr csuc fvex canth2 alephnbtwn2 mptnan ) ABCZLDZEFMAGB
    CEFLABHIAMJK $.

  $( Power rule for cardinal arithmetic.  Theorem 11.21 of [TakeutiZaring]
     p. 106.  (Contributed by Mario Carneiro, 9-Mar-2013.)  (Revised by Mario
     Carneiro, 27-Apr-2015.) $)
  mappwen $p |- ( ( ( B e. dom card /\ _om ~<_ B ) /\
    ( 2o ~<_ A /\ A ~<_ ~P B ) ) -> ( A ^m B ) ~~ ~P B ) $=
    ( ccrd cdm wcel com cdom wbr wa c2o cpw cmap co cen domentr syl2anc mapdom1
    con0 2on entr simprr pw2eng ad2antrr syl cxp a1i simpll mapxpen elexi enref
    syl3anc infxpidm2 adantr mapen sylancr ensymd ad2antrl endomtr sbth ) BCDZE
    ZFBGHZIZJAGHZABKZGHZIZIZABLMZVEGHZVEVIGHZVIVENHVHVIJBLMZBLMZGHZVMVENHZVJVHA
    VLGHZVNVHVFVEVLNHZVPVCVDVFUAVAVQVBVGBUTUBUCZAVEVLOPAVLBQUDVHVMVLNHZVLVENHVO
    VHVMJBBUEZLMZNHZWAVLNHZVSVHJREZVAVAWBWDVHSUFVAVBVGUGZWEJBBRUTUTUHUKVHJJNHVT
    BNHZWCJJRSUIUJVCWFVGBULUMJJVTBUNUOVMWAVLTPVHVEVLVRUPVMVLVETPVIVMVEOPVHVQVLV
    IGHZVKVRVDWGVCVFJABQUQVEVLVIURPVIVEUSP $.

  ${
    $d f R $.  $d f A $.
    $( A finite totally ordered set has a unique order isomorphism to a finite
       ordinal.  (Contributed by Stefan O'Rear, 16-Nov-2014.)  (Proof shortened
       by Mario Carneiro, 26-Jun-2015.) $)
    finnisoeu $p |- ( ( R Or A /\ A e. Fin ) ->
        E! f f Isom _E , R ( ( card ` A ) , A ) ) $=
      ( wor cfn wcel wa ccrd cfv cep cv cvv adantl syl2anc wb cen wbr mpbid syl
      wiso wex wmo weu coi eqid oiexg cdm wwe simpr wofi oiiso wceq oien ensymd
      ficardid entr con0 com oion ficardom onomeneq isoeq4 isoeq1 sylc wemoiso2
      spcegv eu5 sylanbrc ) ABDZAEFZGZAHIZAJBCKZTZCUAZVNCUBZVNCUCVKABUDZLFZVLAJ
      BVQTZVOVJVRVIABVQEVQUEZUFMVKVQUGZAJBVQTZVSVKVJABUHZWBVIVJUIZABUJZABVQEVTU
      KNVKWAVLULZWBVSOVKWAVLPQZWFVKWAAPQZAVLPQWGVKVJWCWHWDWEABVQEVTUMNVKVLAVJVL
      APQVIAUOMUNWAAVLUPNVKWAUQFZVLURFZWGWFOVJWIVIABVQEVTUSMVJWJVIAUTMWAVLVANRW
      AAVLJBVQVBSRVNVSCVQLVLAJBVQVMVCVFVDVKWCVPWEVLAJBCVESVNCVGVH $.
  $}

  ${
    $d A a b c d e f g h i j $.  $d B a b c d e f g h i j $.
    $( Countability of a countable union of finite sets with a strict (not
       globally well) order fulfilling the choice role.  (Contributed by Stefan
       O'Rear, 16-Nov-2014.) $)
    iunfictbso $p |- ( ( A ~<_ _om /\ A C_ Fin /\ B Or U. A ) ->
        U. A ~<_ _om ) $=
      ( va vf vg vh com cdom wbr cfn c0 wceq cv wcel syl syl2anc cfv cep wiso
      wa vb vc vd ve vi vj wss cuni wor w3a wi omex breq1 mpbiri a1d wne wex n0
      0dom wfo csdm ne0i unieq syl6eq necon3i adantl cvv simpl1 reldom brrelexi
      uni0 0sdomg 3syl mpbird fodomr cxp cen ccrd cdm cio cif cmpt2 con0 omelon
      wb onenon ax-mp xpnum mp2an wf co wrex simplrr fof simprl ffvelrnd adantr
      wral elssuni wf1o cab simpll3 soss simpll2 sseldd finnisoeu iotacl iotaex
      weu sylc isoeq1 cbvabv elab2 isof1o f1of ffvelrnda wn ad2antrr ralrimivva
      sylib ifclda eqid fmpt2 eluni simprr foelrn ccnv simprrl ficardom ordelss
      word ordom sylancr f1ocnv simprll fveq2 ifbieq1d expr mpd exlimdv simprrr
      eleqtrd fveq2d eleq2d isoeq4 isoeq5 bitrd iotabidv fveq1d eleq1 fvex ifex
      vex ovmpt2 iftrued f1ocnvfv2 3eqtrrd rspceov syl3anc expd rexlimdv syl5bi
      ex ralrimiv sylanbrc fodomnum mpsyl xpomen domentr sylancl expcom exlimiv
      foov sylbi pm2.61ine ) AGHIZAJUGZAUHZBUIZUJZUVRGHIZUKZUVRKUVRKLZUWAUVTUWC
      UWAKGHIGULUSUVRKGHUMUNUOUVRKUPZCMZUVRNZCUQUWBCUVRURUWFUWBCUVTUWFUWAUVTUWF
      TZGAUAMZUTZUAUQZUWAUWGKAVAIZUVPUWJUWGUWKAKUPZUWFUWLUVTUWFUWDUWLUVRUWEVBAK
      UVRKAKLUVRKUHKAKVCVKVDVEOVFUWGUVPAVGNUWKUWLWEUVPUVQUVSUWFVHZAGHVIVJAVGVLV
      MVNUWMGAUAVOPUWGUWIUWAUAUVTUWFUWIUWAUVTUWFUWITZTZUVRGGVPZHIZUWPGVQIUWAUWP
      VRVSZNZUWOUWPUVRDEGGEMZDMZUWHQZVRQZNZUWTUXCUXBRBFMZSZFVTZQZUWEWAZWBZUTZUW
      QGUWRNZUXLUWSGWCNUXLWDGWFWGZUXMGGWHWIUWOUWPUVRUXJWJZUBMZUCMUDMUXJWKLUDGWL
      UCGWLZUBUVRWRUXKUWOUXIUVRNZEGWRDGWRUXNUWOUXQDEGGUWOUXAGNZUWTGNZTZTZUXDUXH
      UWEUVRUYAUXDTZUXBUVRUXHUYBUXBANZUXBUVRUGZUYAUYCUXDUYAGAUXAUWHUYAUWIGAUWHW
      JZUVTUWFUWIUXTWMGAUWHWNZOUWOUXRUXSWOWPZWQUXBAWSZOUYAUXCUXBUWTUXGUYAUXCUXB
      RBUXGSZUXCUXBUXGWTUXCUXBUXGWJUYAUXGUXFFXAZNZUYIUYAUXFFXIZUYKUYAUXBBUIZUXB
      JNUYLUYAUYDUVSUYMUYAUYCUYDUYGUYHOUVPUVQUVSUWNUXTXBUXBUVRBXCXJUYAAJUXBUVPU
      VQUVSUWNUXTXDUYGXEUXBBFXFPUXFFXGOUXCUXBRBUWESZUYICUXGUYJUXFFXHUXCUXBRBUXG
      UWEXKUXFUYNFCUXCUXBRBUWEUXEXKXLXMXTUXCUXBRBUXGXNUXCUXBUXGXOVMXPXEUWOUWFUX
      TUXDXQUVTUWFUWIWOXRYAXSDEGGUXIUVRUXJUXJYBZYCXTUWOUXPUBUVRUXOUVRNUXOUEMZNZ
      UYPANZTZUEUQUWOUXPUEUXOAYDUWOUYSUXPUEUWOUYSUXPUWOUYSTZUYPUFMZUWHQZLZUFGWL
      ZUXPUYTUWIUYRVUDUVTUWFUWIUYSWMUWOUYQUYRYEUFGAUYPUWHYFPUYTVUCUXPUFGUYTVUAG
      NZVUCUXPUWOUYSVUEVUCTZUXPUWOUYSVUFTZTZVUEUXOVUBVRQZVUBRBUXESZFVTZYGZQZGNZ
      UXOVUAVUMUXJWKZLUXPUWOUYSVUEVUCYHZVUHVUIGVUMVUHGYKVUIGNZVUIGUGYLVUHVUBJNZ
      VUQVUHAJVUBUVPUVQUVSUWNVUGXDVUHGAVUAUWHVUHUWIUYEUVTUWFUWIVUGWMUYFOVUPWPZX
      EZVUBYIOGVUIYJYMVUHVUBVUIUXOVULVUHVUIVUBVUKWTZVUBVUIVULWTVUBVUIVULWJVUHVU
      IVUBRBVUKSZVVAVUHVUKVUJFXAZNZVVBVUHVUJFXIZVVDVUHVUBBUIZVURVVEVUHVUBUVRUGZ
      UVSVVFVUHVUBANVVGVUSVUBAWSOUVPUVQUVSUWNVUGXBVUBUVRBXCXJVUTVUBBFXFPVUJFXGO
      VUIVUBRBUWESZVVBCVUKVVCVUJFXHVUIVUBRBVUKUWEXKVUJVVHFCVUIVUBRBUWEUXEXKXLXM
      XTVUIVUBRBVUKXNOZVUIVUBVUKYNVUBVUIVULXOVMVUHUXOUYPVUBUWOUYQUYRVUFYOUWOUYS
      VUEVUCUUAUUBZWPZXEZVUHVUOVUMVUINZVUMVUKQZUWEWAZVVNUXOVUHVUEVUNVUOVVOLVUPV
      VLDEVUAVUMGGUXIVVOUXJUWTVUINZUWTVUKQZUWEWAUXAVUALZUXDVVPUXHVVQUWEVVRUXCVU
      IUWTVVRUXBVUBVRUXAVUAUWHYPZUUCZUUDVVRUWTUXGVUKVVRUXFVUJFVVRUXFVUIUXBRBUXE
      SZVUJVVRUXCVUILUXFVWAWEVVTUXCUXBVUIRBUXEUUEOVVRUXBVUBLVWAVUJWEVVSVUIUXBVU
      BRBUXEUUFOUUGUUHUUIYQUWTVUMLVVPVVMVVQVVNUWEUWTVUMVUIUUJUWTVUMVUKYPYQUYOVV
      MVVNUWEVUMVUKUUKCUUMUULUUNPVUHVVMVVNUWEVVKUUOVUHVVAUXOVUBNVVNUXOLVVIVVJVU
      IVUBUXOVUKUUPPUUQUCUDGGVUAVUMUXOUXJUURUUSYRUUTUVAYSUVCYTUVBUVDUCUDUBGGUVR
      UXJUVMUVEUWPUVRUXJUVFUVGUVHUVRUWPGUVIUVJYRYTYSUVKUVLUVNUVO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom of Choice equivalents
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CHOICE $.

  $( Wff for an abbreviation of the axiom of choice. $)
  wac $a wff CHOICE $.

  ${
    $d f x $.
    $( The expression ` CHOICE ` will be used as a readable shorthand for any
       form of the axiom of choice; all concrete forms are long, cryptic, have
       dummy variables, or all three, making it useful to have a short name.
       Similar to the Axiom of Choice (first form) of [Enderton] p. 49.

       There is a slight problem with taking the exact form of ~ ax-ac as our
       definition, because the equivalence to more standard forms ( ~ dfac2 )
       requires the Axiom of Regularity, which we often try to avoid.  Thus, we
       take the first of the "textbook forms" as the definition and derive the
       form of ~ ax-ac itself as ~ dfac0 .  (Contributed by Mario Carneiro,
       22-Feb-2015.) $)
    df-ac $a |- ( CHOICE <-> A. x E. f ( f C_ x /\ f Fn dom x ) ) $.
  $}

  ${
    $d x y z w v u t h $.
    $( Equivalence of two versions of the Axiom of Choice ~ ax-ac .  The proof
       uses neither AC nor the Axiom of Regularity.  The right-hand side
       expresses our AC with the fewest number of different variables.
       (Contributed by NM, 5-Apr-2004.) $)
    aceq1 $p |- ( E. y A. z e. x A. w e. z E! v e. z E. u e. y
                      ( z e. u /\ v e. u ) <->
                  E. y A. z A. w ( ( z e. w /\ w e. x ) -> E. x A. z ( E. x
            ( ( z e. w /\ w e. x ) /\ ( z e. x /\ x e. y ) ) <-> z = x ) ) ) $=
      ( vt vh wel wa cv wrex wreu wral wex weq wal wi eleq1 3bitr4i biidd bitri
      wb cbvralv anbi2d rexbidv ralbii anbi1d reueqd exbii 19.21v impexp bi2.04
      cbvreuv raleqbi1dv albii weu df-eu df-reu 19.42v an42 anass bitr3i df-rex
      elequ2 cbvexv anbi2i bibi1i imbi2i df-ral nfv nfa1 nfex nfim imbi1d cbval
      anbi12d alcom 3bitr4ri ) CFIZEFIZJZFBKZLZECKZMZDWENZCAKZNZBODFIZVTJZFWCLZ
      CDKZMZGWMNZDWHNZBOCDIZDAIZJZWSCAIZABIZJJZAOZCAPZUCZCQZAOZRZDQCQZBOWIWPBHF
      IZWAJZFWCLZEHKZMZDXMNZHWHNXJVTJZFWCLZCXMMZGXMNZHWHNWIWPXOXSHWHXOXNGXMNXSX
      NXNDGXMDGPXNUAUDXNXRGXMXLXQECXMECPZXKXPFWCXTWAVTXJEKWEFKZSUEUFUNUGUBUGWGX
      OCHWHWFXNDWEXMWDXLEWEXMCHPZWBXKFWCYBVTXJWAWEXMYASUHUFUIUOUDWOXSDHWHWNXRGW
      MXMWLXQCWMXMDHPZWKXPFWCYCWJXJVTWMXMYASUHUFUIUOUDTUJWPXIBXHCQZDQWRWORZDQXI
      WPYDYEDWRWQXGRZRZCQWRYFCQZRYDYEWRYFCUKXHYGCXHWQWRXGRRYGWQWRXGULWQWRXGUMUB
      UPWOYHWRGDIZWNRZGQYIXGRZGQWOYHYJYKGWNXGYIWQWLJZCUQYLXDUCZCQZAOWNXGYLCAURW
      LCWMUSXFYNAXEYMCXCYLXDWQXAWRWTJZJZJZAOWQYPAOZJXCYLWQYPAUTXBYQAXBWQXAJYOJY
      QWQXAWRWTVAWQXAYOVBVCUJWLYRWQWLFBIZWKJZFOYRWKFWCVDYTYPFAFAPZYSXAWKYOYAWHW
      CSUUAWJWRVTWTFADVEFACVEVQVQVFUBVGTVHUPUJTVIUPWNGWMVJYFYKCGYFGVKYIXGCYICVK
      XFCAXECVLVMVNCGPWQYIXGWEGKWMSVOVPTVITUPXHCDVRWODWHVJVSUJUB $.
  $}

  ${
    $d x y z w v u t $.
    $( Equivalence of two versions of the Axiom of Choice.  The proof uses
       neither AC nor the Axiom of Regularity.  The right-hand side is our
       original ~ ax-ac .  (Contributed by NM, 5-Apr-2004.) $)
    aceq0 $p |- ( E. y A. z e. x A. w e. z E! v e. z E. u e. y
                      ( z e. u /\ v e. u ) <->
                  E. y A. z A. w ( ( z e. w /\ w e. x ) -> E. v A. u
     ( E. t ( ( u e. w /\ w e. t ) /\ ( u e. t /\ t e. y ) ) <-> u = v ) ) ) $=
      ( wel wa cv wral wex weq wb wal wi elequ2 elequ1 anbi12d cbvexv wrex wreu
      equequ2 bibi2d anbi2d bibi1i syl6bb albidv anbi1d exbidv equequ1 bibi12d
      aceq1 cbvalv imbi2i 2albii exbii bitr4i ) CFHEFHIFBJUAECJZUBDUSKCAJKBLCDH
      ZDAHZIZVBCAHZABHZIZIZALZCAMZNZCOZALZPZDOCOZBLVBFDHZDGHZIZFGHZGBHZIZIZGLZF
      EMZNZFOZELZPZDOCOZBLABCDEFUMWGVMBWFVLCDWEVKVBWDVJEAEAMZWDVNVAIZFAHZVDIZIZ
      ALZFAMZNZFOVJWHWCWOFWHWCWAWNNWOWHWBWNWAEAFUCUDWAWMWNVTWLGAGAMZVPWIVSWKWPV
      OVAVNGADQUEWPVQWJVRVDGAFQGABRSSTUFUGUHWOVIFCFCMZWMVGWNVHWQWLVFAWQWIVBWKVE
      WQVNUTVAFCDRUIWQWJVCVDFCARUISUJFCAUKULUNUGTUOUPUQUR $.
  $}

  ${
    $d x y z w v u t $.
    $( Equivalence of two versions of the Axiom of Choice.  The proof uses
       neither AC nor the Axiom of Regularity.  (Contributed by NM,
       5-Apr-2004.) $)
    aceq2 $p |- ( E. y A. z e. x A. w e. z E! v e. z E. u e. y
                     ( z e. u /\ v e. u ) <->
                  E. y A. z e. x ( z =/= (/) -> E! w e. z E. v e. y
                      ( z e. v /\ w e. v ) ) ) $=
      ( vt wel wa cv wrex wreu wral c0 wne wi wex bitri weq elequ2 df-ral biidd
      wal 19.23v cbvralv n0 anbi12d cbvrexv reubii eleq1 anbi2d rexbidv cbvreuv
      imbi12i 3bitr4i ralbii exbii ) CFHZEFHZIZFBJZKZECJZLZDVCMZCAJZMVCNOZCEHZD
      EHZIZEVAKZDVCLZPZCVFMBVEVMCVFVDGVCMZGCHZGQZVDPZVEVMVNVOVDPGUCVQVDGVCUAVOV
      DGUDRVDVDDGVCDGSVDUBUEVGVPVLVDGVCUFVLURDFHZIZFVAKZDVCLVDVKVTDVCVJVSEFVAEF
      SVHURVIVREFCTEFDTUGUHUIVTVBDEVCDESZVSUTFVAWAVRUSURDJEJFJUJUKULUMRUNUOUPUQ
      $.
  $}

  ${
    $d x y z w u h g f $.  $d h g F $.
    aceq3lem.1 $e |- F = ( w e. dom y |-> ( f ` { u | w y u } ) ) $.
    $( Lemma for ~ dfac3 .  (Contributed by NM, 2-Apr-2004.)  (Revised by Mario
       Carneiro, 26-Jun-2015.) $)
    aceq3lem $p |- ( A. x E. f A. z e. x ( z =/= (/) -> ( f ` z ) e. z ) ->
                                             E. f ( f C_ y /\ f Fn dom y ) ) $=
      ( vg vh cv c0 wcel wi wex wss wfn wa wceq wbr wne cfv wal cdm crn cpw vex
      wral rnex pwex raleq exbidv spcv copab cmpt df-mpt eqtri eldm abn0 bitr4i
      cab brelrn abssi elpw2 mpbir neeq1 fveq2 eleq12d imbi12d rspcv syl5bi imp
      id ax-mp fvex breq2 cbvabv elab2 sylib syl5ibrcom ssopab2dv opabss syl6ss
      expimpd syl5eqss fnmpti cvv ssex adantr sseq1 fneq1 anbi12d mpcom sylancl
      spcegv exlimiv syl cbvexv ) CKZLUAZWSFKZUBZWSMZNZCAKZUHZFOZAUCZIKZBKZPZXI
      XJUDZQZRZIOZXAXJPZXAXLQZRZFOXHXDCXJUEZUFZUHZFOZXOXGYBAXTXSXJBUGZUIZUJXEXT
      SXFYAFXDCXEXTUKULUMYAXOFYAGXJPZGXLQZXOYAGDKZXLMZJKZYGEKZXJTZEVAZXAUBZSZRZ
      DJUNZXJGDXLYMUOYPHDJXLYMUPUQYAYPYGYIXJTZDJUNXJYAYOYQDJYAYHYNYQYAYHRZYQYNY
      GYMXJTZYRYMYLMZYSYAYHYTYHYLLUAZYAYTYHYKEOUUAEYGXJDUGZURYKEUSUTYLXTMZYAUUA
      YTNZNUUCYLXSPYKEXSYGYJXJUUBEUGVBVCYLXSYDVDVEXDUUDCYLXTWSYLSZWTUUAXCYTWSYL
      LVFUUEXBYMWSYLWSYLXAVGUUEVMVHVIVJVNVKVLYGWSXJTZYSCYMYLYLXAVOZWSYMYGXJVPYK
      UUFECYJWSYGXJVPVQVRVSYIYMYGXJVPVTWDWADJXJWBWCWEDXLYMGUUGHWFGWGMZYEYFRZXOY
      EUUHYFGXJYCWHWIXNUUIIGWGXIGSXKYEXMYFXIGXJWJXLXIGWKWLWOWMWNWPWQXNXRIFXIXAS
      XKXPXMXQXIXAXJWJXLXIXAWKWLWRVS $.
  $}

  ${
    $d f x y z w v u $.
    $( Equivalence of two versions of the Axiom of Choice.  The left-hand side
       is defined as the Axiom of Choice (first form) of [Enderton] p. 49.  The
       right-hand side is the Axiom of Choice of [TakeutiZaring] p. 83.  The
       proof does not depend on AC. (Contributed by NM, 24-Mar-2004.)  (Revised
       by Stefan O'Rear, 22-Feb-2015.) $)
    dfac3 $p |- ( CHOICE <->
             A. x E. f A. z e. x ( z =/= (/) -> ( f ` z ) e. z ) ) $=
      ( vy vw vv vu cv wss cdm wfn wa wex wal cfv wcel wel vex wceq cab wac wne
      c0 wral df-ac copab cuni cxp vuniex xpex simpl elunii ancoms jca ssopab2i
      wi df-xp sseqtr4i ssexi sseq2 dmeq fneq2d anbi12d exbidv spcv csn cima wb
      fndm eleq2 dmopab eleq2i weq elequ1 elab 19.42v n0 anbi2i bitr4i syl6rbbr
      3bitrri syl adantl wfun fnfun funfvima3 sylan2 sylbid imp abbi2dv wbr cvv
      ibar imasng ax-mp anbi2d abbii eqtri syl6reqr eleq2d ad2antrl mpbid exp32
      eqid brab ralrimiv eximi alrimiv cmpt aceq3lem impbii bitri ) UACHZDHZIZX
      MXNJZKZLZCMZDNZBHZUCUBZYAXMOZYAPZUPZBAHZUDZCMZANZDCUEXTYIXTYHAXTXMEAQZFEQ
      ZLZEFUFZIZXMYMJZKZLZCMZYHXSYRDYMYMYFYFUGZUHZYFYSARAUIUJYMYJFHZYSPZLZEFUFY
      TYLUUCEFYLYJUUBYJYKUKYKYJUUBUUAEHZYFULUMUNUOEFYFYSUQURUSXNYMSZXRYQCUUEXOY
      NXQYPXNYMXMUTUUEXPYOXMXNYMVAVBVCVDVEYQYGCYQYEBYFYQBAQZYBYDYQUUFYBLZLYCYMY
      AVFVGZPZYDYQUUGUUIYQUUGYAXMJZPZUUIYPUUGUUKVHZYNYPUUJYOSZUULYOXMVIUUMUUKYA
      YOPZUUGUUJYOYAVJUUNYAYLFMZETZPUUFFBQZLZFMZUUGYOUUPYAYLEFVKVLUUOUUSEYABRZE
      BVMZYLUURFUVAYJUUFYKUUQEBAVNUUDYAUUAVJVCZVDVOUUSUUFUUQFMZLUUGUUFUUQFVPYBU
      VCUUFFYAVQVRVSWAVTWBWCYPYNXMWDZUUKUUIUPZYOXMWEUVDYNUVEYAXMYMWFUMWGWHWIUUF
      UUIYDVHYQYBUUFUUHYAYCUUFYAUUFGBQZLZGTZUUHUUFUVGGYAUUFUVFWMWJUUHYAGHZYMWKZ
      GTZUVHYAWLPUUHUVKSUUTGYAWLYMWNWOUVJUVGGYLUURUVGEFYAUVIYMUUTGRUVBFGVMUUQUV
      FUUFFGBVNWPYMXDXEWQWRWSWTXAXBXCXFXGWBXHYIXSDADBEGCEXPUUDUVIXNWKGTXMOXIZUV
      LXDXJXHXKXL $.
  $}

  ${
    $d f x z y w $.
    $( Equivalence of two versions of the Axiom of Choice.  The right-hand side
       is Axiom AC of [BellMachover] p. 488.  The proof does not depend on AC.
       (Contributed by NM, 24-Mar-2004.)  (Revised by Mario Carneiro,
       26-Jun-2015.) $)
    dfac4 $p |- ( CHOICE <->
         A. x E. f ( f Fn x /\ A. z e. x ( z =/= (/) -> ( f ` z ) e. z ) ) ) $=
      ( vy vw cv c0 cfv wcel wi wral wex wal wfn wceq fveq1 eleq1d imbi2d cvv
      wa wac wne dfac3 ralbidv cbvexv cmpt fvex eqid fnmpti fveq2 fvmpt ralbiia
      anbi2i mpbiran crn csn cun fvrn0 rgenw fmpt mpbi vex rnex p0ex unex mp3an
      fex2 fneq1 anbi12d spcev sylbir exlimiv sylbi exsimpr impbii albii bitri
      wf ) UABFZGUBZVSCFZHZVSIZJZBAFZKZCLZAMWAWENZWFTZCLZAMABCUCWGWJAWGWJWGVTVS
      DFZHZVSIZJZBWEKZDLWJWFWOCDWAWKOZWDWNBWEWPWCWMVTWPWBWLVSVSWAWKPQRUDUEWOWJD
      WOEWEEFZWKHZUFZWENZVTVSWSHZVSIZJZBWEKZTZWJXEWTWOEWEWRWSWQWKUGWSUHZUIXDWOW
      TXCWNBWEVSWEIZXBWMVTXGXAWLVSEVSWRWLWEWSWQVSWKUJXFVSWKUGUKQRULUMUNWIXECWSW
      EWKUOZGUPZUQZWSVRZWESIXJSIWSSIWRXJIZEWEKXKXLEWEWKWQURUSEWEXJWRWSXFUTVAAVB
      XHXIWKDVBVCVDVEWEXJWSSSVGVFWAWSOZWHWTWFXDWEWAWSVHXMWDXCBWEXMWCXBVTXMWBXAV
      SVSWAWSPQRUDVIVJVKVLVMWHWFCVNVOVPVQ $.
  $}

  ${
    $d v w y g t $.
    $( Lemma for ~ dfac5 .  (Contributed by NM, 12-Apr-2004.) $)
    dfac5lem1 $p |- ( E! v v e. ( ( { w } X. w ) i^i y ) <->
                      E! g ( g e. w /\ <. w , g >. e. y ) ) $=
      ( vt cv csn cxp wcel weu cop wceq wa wex bitri anbi1i anbi12i ancom exbii
      3bitri cin elin elxp excom 19.41vv an32 eleq1 pm5.32i velsn an4 anass vex
      opeq1 eqeq2d eleq1d anbi2d anbi12d ceqsexv bitr3i eubii euop2 ) CFZBFZGZV
      CHZAFZUAIZCJVBVCDFZKZLZVHVCIZVIVFIZMZMZDNZCJVMDJVGVOCVGVBVEIZVBVFIZMVBEFZ
      VHKZLZVRVDIZVKMZMZENDNZVQMZVOVBVEVFUBVPWDVQVPWCDNENWDEDVBVDVCUCWCEDUDOPWE
      WCVQMZENZDNVOWCVQDEUEWGVNDWGVRVCLZVTVKVSVFIZMZMZMZENVNWFWLEWFVTVQMZWBMVTW
      IMZWHVKMZMZWLVTWBVQUFWMWNWBWOVTVQWIVBVSVFUGUHWAWHVKEVCUIPQWPVTWHMZWIVKMZM
      WHVTMZWJMWLVTWIWHVKUJWQWSWRWJVTWHRWIVKRQWHVTWJUKTTSWKVNEVCBULZWHVTVJWJVMW
      HVSVIVBVRVCVHUMZUNWHWIVLVKWHVSVIVFXAUOUPUQUROSUSTUTVMCDVCWTVAO $.
  $}

  ${
    $d f x z y w v u t h g $.  $d z w f g B $.  $d x y z w g A $.
    dfac5lem.1 $e |- A =
                       { u | ( u =/= (/) /\ E. t e. h u = ( { t } X. t ) ) } $.
    $( Lemma for ~ dfac5 .  (Contributed by NM, 12-Apr-2004.) $)
    dfac5lem2 $p |- ( <. w , g >. e. U. A <-> ( w e. h /\ g e. w ) ) $=
      ( cv cuni wcel wceq wrex wa wel wex exbii 3bitri anbi2i vex bitri cop wne
      c0 csn cxp cab unieqi eleq2i eluniab r19.42v bitr2i rexcom4 df-rex bitr3i
      anass ancom ne0i pm4.71i bitr4i snex xpex eleq2 ceqsexv opelxp velsn an12
      equcom anbi1i elequ1 anbi12d ) AHZEHZUAZDIZJVMBHZUCUBZVOCHZUDZVQUEZKZCFHZ
      LZMZBUFZIZJZCFNZVMVOJZVPMZVTMZBOZMZCOZAFNZEANZMZVNWEVMDWDGUGUHWFWHWCMZBOW
      JCWALZBOZWMWCBVMUIWQWRBWRWIWBMWQWIVTCWAUJWHVPWBUOUKPWSWKCWALWMWJCBWAULWKC
      WAUMUNQWMVQVKKZWGECNZMZMZCOWPWLXCCWLWGVMVSJZMWGWTXAMZMXCWKXDWGWKVTWHMZBOX
      DWJXFBWJVTWIMXFWIVTUPWHWIVTWHVPVOVMUQURRUSPWHXDBVSVRVQVQUTCSVAVOVSVMVBVCT
      RXDXEWGXDVKVRJZXAMXEVKVLVRVQVDXGWTXAXGVKVQKWTAVQVEACVGTVHTRWGWTXAVFQPXBWP
      CVKASWTWGWNXAWOCAFVIVQVKVLVBVJVCTQ $.

    $( Lemma for ~ dfac5 .  (Contributed by NM, 12-Apr-2004.) $)
    dfac5lem3 $p |- ( ( { w } X. w ) e. A <-> ( w =/= (/) /\ w e. h ) ) $=
      ( cv csn cxp c0 wne wceq wrex wa wcel vex xpeq2 crn rneq snnz neeq1 eqeq1
      cab snex xpex rexbidv anbi12d elab eleq2i xp0 syl6eq ax-mp 3eqtr3g impbii
      rnxp rn0 necon3bii wex df-rex sneq xpeq1d eqtrd equcom bitri anbi2i ancom
      exbii elequ1 ceqsexv 3bitrri anbi12i 3bitr4i ) AGZHZVMIZBGZJKZVPCGZHZVRIZ
      LZCEGZMZNZBUCZOVOJKZVOVTLZCWBMZNZVODOVMJKZVMWBOZNWDWIBVOVNVMVMUDAPZUEVPVO
      LZVQWFWCWHVPVOJUAWMWAWGCWBVPVOVTUBUFUGUHDWEVOFUIWJWFWKWHVMJVOJVMJLZVOJLZW
      NVOVNJIJVMJVNQVNUJUKWOVORZJRVMJVOJSVNJKWPVMLVMWLTVNVMUOULZUPUMUNUQWHVRWBO
      ZWGNZCURVRVMLZWRNZCURWKWGCWBUSWSXACWSWRWTNXAWGWTWRWGVMVRLZWTWGXBWGWPVTRZV
      MVRVOVTSWQVSJKXCVRLVRCPTVSVRUOULUMXBVOVSVMIVTXBVNVSVMVMVRUTVAVMVRVSQVBUNA
      CVCVDVEWRWTVFVDVGWRWKCVMWLCAEVHVIVJVKVL $.

    ${
      dfac5lem.2 $e |- B = ( U. A i^i y ) $.
      dfac5lem.3 $e |- ( ph <-> A. x ( ( A. z e. x z =/= (/) /\
             A. z e. x A. w e. x ( z =/= w -> ( z i^i w ) = (/) ) ) ->
            E. y A. z e. x E! v v e. ( z i^i y ) ) ) $.
      $( Lemma for ~ dfac5 .  (Contributed by NM, 11-Apr-2004.) $)
      dfac5lem4 $p |- ( ph -> E. y A. z e. A E! v v e. ( z i^i y ) ) $=
        ( cv wral wceq wcel wex wa vg c0 wne cin weu csn cxp wrex cab vex neeq1
        wi weq eqeq1 rexbidv anbi12d elab simplbi eleq2s wel wn wal df-an elab2
        rgen simprbi sneq xpeq1d xpeq2 eqtrd cbvrexv sylib cop eleq2 elxp excom
        eqeq2d bitri bi2anan9 eeanv syl6bbr velsn opeq1 biimpac sylan2b adantrr
        syl6bb exlimiv sylan9req opth1 exlimivv syl6bi eqeq12 sylibrd rexlimivw
        syl syl6 ex rexlimdvw imp syl2an syl5bir necon1ad alrimdv disj1 syl6ibr
        rgen2a cvv cuni cpw vuniex xpex pwex wss snssi elssuni xpss12 snex elpw
        syl2anc sylibr eleq1 syl5ibrcom rexlimiv abssi ssexi eqeltri raleqbi1dv
        adantl raleq exbidv imbi12d spcv sylbi mp2ani ) ADOZUBUCZDIPZYPEOZUCZYP
        YSUDUBQZULZEIPZDIPZFOZYPCOZUDRFUEZDIPZCSZYQDIYQYPGOZUBUCZUUJHOZUFZUULUG
        ZQZHKOZUHZTZGUIZIYPUUSRYQYPUUNQZHUUPUHZUURYQUVATZGYPDUJZGDUMZUUKYQUUQUV
        AUUJYPUBUKUVDUUOUUTHUUPUUJYPUUNUNUOUPZUQURLUSVEUUBDEIYPIRZYSIRZTZYTBDUT
        ZBEUTZVAULZBVBUUAUVHYTUVKBUVHUVKYPYSUVKVAUVIUVJTZUVHDEUMZUVIUVJVCUVFUVA
        YSUAOZUFZUVNUGZQZUAUUPUHZUVLUVMULZUVGUVFYQUVAUURUVBGYPIUVCUVELVDVFUVGYS
        UUNQZHUUPUHZUVRUVGYSUBUCZUWAUURUWBUWATGYSIEUJGEUMZUUKUWBUUQUWAUUJYSUBUK
        UWCUUOUVTHUUPUUJYSUUNUNUOUPLVDVFUVTUVQHUAUUPHUAUMZUUNUVPYSUWDUUNUVOUULU
        GUVPUWDUUMUVOUULUULUVNVGVHUULUVNUVOVIVJZVQVKVLUVAUVRUVSUVAUVQUVSUAUUPUU
        TUVQUVSULHUUPUUTUVQUVSUUTUVQTZUVLUUNUVPQZUVMUWFUVLUWDUWGUWFUVLBOZUUJUUE
        VMZQZUUJUUMRZFHUTZTTZGSZUWHUUJUUFVMZQZUUJUVORZCUAUTZTTZGSZTZCSFSZUWDUWF
        UVLUWNFSZUWTCSZTUXBUUTUVIUXCUVQUVJUXDUUTUVIUWHUUNRZUXCYPUUNUWHVNUXEUWMF
        SGSUXCGFUWHUUMUULVOUWMGFVPVRWGUVQUVJUWHUVPRZUXDYSUVPUWHVNUXFUWSCSGSUXDG
        CUWHUVOUVNVOUWSGCVPVRWGVSUWNUWTFCVTWAUXAUWDFCUXAUULUUEVMZUVNUUFVMZQUWDU
        WNUWTUXGUWHUXHUWMUWHUXGQZGUWJUWKUXIUWLUWKUWJGHUMZUXIGUULWBUXJUWJUXIUXJU
        WIUXGUWHUUJUULUUEWCVQWDWEWFWHUWSUWHUXHQZGUWPUWQUXKUWRUWQUWPGUAUMZUXKGUV
        NWBUXLUWPUXKUXLUWOUXHUWHUUJUVNUUFWCVQWDWEWFWHWIUULUUEUVNUUFHUJZFUJWJWPW
        KWLUWEWQYPUUNYSUVPWMWNWRWOWSWTXAXBXCXDBYPYSXEXFXGAYQDUWHPZUUBEUWHPZDUWH
        PZTZUUGDUWHPZCSZULZBVBYRUUDTZUUIULZNUXTUYBBIIUUSXHLUUSUUPUUPXIZUGZXJZUY
        DUUPUYCKUJKXKXLXMUURGUYEUUQUUJUYERZUUKUUOUYFHUUPHKUTZUYFUUOUUNUYERZUYGU
        UNUYDXNZUYHUYGUUMUUPXNUULUYCXNUYIUULUUPXOUULUUPXPUUMUUPUULUYCXQXTUUNUYD
        UUMUULUULXRUXMXLXSYAUUJUUNUYEYBYCYDYIYEYFYGUWHIQZUXQUYAUXSUUIUYJUXNYRUX
        PUUDYQDUWHIYJUXOUUCDUWHIUUBEUWHIYJYHUPUYJUXRUUHCUUGDUWHIYJYKYLYMYNYO $.

      $( Lemma for ~ dfac5 .  (Contributed by NM, 12-Apr-2004.) $)
      dfac5lem5 $p |- ( ph ->
                            E. f A. w e. h ( w =/= (/) -> ( f ` w ) e. w ) ) $=
        ( vg cv wcel weu wa cin wral wex c0 wne cfv dfac5lem4 cop simpr a1i csn
        wi cxp wceq ineq1 eleq2d eubidv rspccv dfac5lem3 dfac5lem1 3imtr3g jcad
        cuni eleq2i elin dfac5lem2 anbi1i anass bitri 3bitri eubii euanv bitr2i
        syl6ib euex nfeu1 nfv simprbi simpld tz6.12 eleq1d biimparc exp32 mpcom
        nfim exlimi expcomd ralrimiv cvv vex inex2 eqeltri fveq1 imbi2d ralbidv
        syl6 spcev syl exlimiv ) AFQZDQZCQZUAZRZFSZDIUBZCUCEQZUDUEZXGKQZUFZXGRZ
        ULZELQZUBZKUCZABCDEFGHIJLMNOUGXFXOCXFXHXGJUFZXGRZULZEXMUBZXOXFXREXMXFXH
        XGXMRZXQXFXHXTTZXGPQZUHZJRZPSZXQXFYAXTYBXGRZYCXBRZTZPSZTZYEXFYAXTYIYAXT
        ULXFXHXTUIUJXFXGUKXGUMZIRWTYKXBUAZRZFSZYAYIXEYNDYKIXAYKUNZXDYMFYOXCYLWT
        XAYKXBUOUPUQUREGHILMUSCEFPUTVAVBYEXTYHTZPSYJYDYPPYDYCIVCZXBUAZRYCYQRZYG
        TZYPJYRYCNVDYCYQXBVEYTXTYFTZYGTYPYSUUAYGEGHIPLMVFVGXTYFYGVHVIVJZVKXTYHP
        VLVMVNYDPUCYEXQYDPVOYDYEXQULZPYEXQPYDPVPXQPVQWEYFYDUUCYDYFYGYDXTYHUUBVR
        VSYFYDYEXQYDYETZXQYFUUDXPYBXGPXGJVTWAWBWCWDWFWDWPWGWHXNXSKJJYRWINXBYQCW
        JWKWLXIJUNZXLXREXMUUEXKXQXHUUEXJXPXGXGXIJWMWAWNWOWQWRWSWR $.
    $}
  $}

  ${
    $d f x z y w v h u t $.
    $( Equivalence of two versions of the Axiom of Choice.  The right-hand side
       is Theorem 6M(4) of [Enderton] p. 151 and asserts that given a family of
       mutually disjoint nonempty sets, a set exists containing exactly one
       member from each set in the family.  The proof does not depend on AC.
       (Contributed by NM, 11-Apr-2004.)  (Revised by Mario Carneiro,
       17-May-2015.) $)
    dfac5 $p |- ( CHOICE <-> A. x ( ( A. z e. x z =/= (/) /\
           A. z e. x A. w e. x ( z =/= w -> ( z i^i w ) = (/) ) ) ->
          E. y A. z e. x E! v v e. ( z i^i y ) ) ) $=
      ( vf vt vh cv c0 wne wral cin wceq wi wa wcel wex wal weq wac weu wfn cfv
      vu dfac4 neeq1 cbvralv anbi2i r19.26 bitr4i pm3.35 ancoms ralimi sylbi wb
      crn elin wrex fvelrnb biimpac fveq2 id eleq12d neeq2 ineq2 eqeq1d imbi12d
      wel anbi12d rspcv eleq1 biimpar wn minel imim2d imp necon4ad sylan2 eqeq2
      eqcom syl6bb syl5ib ad2antrl exp32 syl6com com14 rexlimdv syl5 expd com4t
      mpd imp4b syl5bi sylan2br anassrs adantlr fnfvelrn expcom anim12d syl6ibr
      ex com13 imp31 syl5ibrcom adantr impbid alrimdv bibi2d albidv spcev df-eu
      fvex sylibr syl6 ralimdva vex eleq2d eubidv ralbidv exlimiv alimi csn cxp
      rnex cab cuni eqid biid dfac5lem5 alrimiv dfac3 impbii ) UACIZJKZCAIZLZYN
      DIZKZYNYRMZJNZOZDYPLZCYPLZPZEIZYNBIZMZQZEUBZCYPLZBRZOZASZUAFIZYPUCZYRJKZY
      RUUOUDZYRQZOZDYPLZPZFRZASUUNADFUFUVCUUMAUVBUUMFUVBUUEUUFYNUUOUQZMZQZEUBZC
      YPLZUULUUPUVAYQUUDUVHUUPUVAYQUUDUVHOZUVAYQPZUUSDYPLZUUPUVIUVJUUTUUQPZDYPL
      ZUVKUVJUVAUUQDYPLZPUVMYQUVNUVAYOUUQCDYPYNYRJUGUHUIUUTUUQDYPUJUKUVLUUSDYPU
      UQUUTUUSUUQUUSULUMUNUOUUPUVKUVIUUPUVKPZUUCUVGCYPUVOCAVIZPZUUCUVFUUFYNUUOU
      DZNZUPZESZUVGUVQUUCUVTEUVQUUCUVTUVQUUCPUVFUVSUVOUUCUVFUVSOZUVPUUPUVKUUCUW
      BUVKUUCPUUPUUSUUBPZDYPLZUWBUUSUUBDYPUJUVFECVIZUUFUVDQZPUUPUWDPUVSUUFYNUVD
      URUUPUWDUWEUWFUVSUWEUWFUUPUWDUVSUWEUWFUUPUWDUVSOZUWFUUPPGIZUUOUDZUUFNZGYP
      USZUWEUWGUUPUWFUWKGYPUUFUUOUTVAUWEUWJUWGGYPUWDGAVIZUWJUWEUVSUWLUWDUWIUWHQ
      ZYNUWHKZYNUWHMZJNZOZPZUWJUWEUVSOOUWCUWRDUWHYPDGTZUUSUWMUUBUWQUWSUURUWIYRU
      WHYRUWHUUOVBUWSVCVDUWSYSUWNUUAUWPYRUWHYNVEUWSYTUWOJYRUWHYNVFVGVHVJVKUWRUW
      JUWEUVSUWRUWJUWEPZPCGTZUVSUWTUWRUWIYNQZUXAUWJUXBUWEUWIUUFYNVLVMUWRUXBUXAU
      WRUXBYNUWHUWMUWQUWNUXBVNZOUWMUWPUXCUWNUWMUWPUXCUWIUWHYNVOXBVPVQVRVQVSUWJU
      XAUVSOUWRUWEUXAUVRUWINZUWJUVSYNUWHUUOVBUWJUXDUVRUUFNUVSUWIUUFUVRVTUVRUUFW
      AWBWCWDWLWEWFWGWHWIWJWKWMWNWOWPWQUVQUVSUVFOUUCUVQUVFUVSUVRUVEQZUUPUVKUVPU
      XEUVPUVKUUPUXEUVPUVKUUPUXEUVPUVKUUPPUVRYNQZUVRUVDQZPUXEUVPUVKUXFUUPUXGUUS
      UXFDYNYPDCTZUURUVRYRYNYRYNUUOVBUXHVCVDVKUUPUVPUXGYPYNUUOWRWSWTUVRYNUVDURX
      AWJXCXDUUFUVRUVEVLXEXFXGXBXHUWAUVFEHTZUPZESZHRUVGUXKUWAHUVRYNUUOXMHIZUVRN
      ZUXJUVTEUXMUXIUVSUVFUXLUVRUUFVTXIXJXKUVFEHXLXNXOXPXBWIWJWMUUKUVHBUVDUUOFX
      QYEUUGUVDNZUUJUVGCYPUXNUUIUVFEUXNUUHUVEUUFUUGUVDYNVFXRXSXTXKXOYAYBUOUUNUU
      TDUXLLFRZHSUAUUNUXOHUUNABCDEUEGUEIZJKUXPUWHYCUWHYDNGUXLUSPUEYFZUXQYGUUGMZ
      FHUXQYHUXRYHUUNYIYJYKHDFYLXNYM $.
  $}

  ${
    $d x z f y w v u $.
    $( Our Axiom of Choice (in the form of ~ ac3 ) implies the Axiom of Choice
       (first form) of [Enderton] p. 49.  The proof uses neither AC nor the
       Axiom of Regularity.  See ~ dfac2 for the converse (which does use the
       Axiom of Regularity).  (Contributed by NM, 5-Apr-2004.)  (Revised by
       Mario Carneiro, 26-Jun-2015.) $)
    dfac2a $p |- ( A. x E. y A. z e. x ( z =/= (/) -> E! w e. z E. v e. y
                      ( z e. v /\ w e. v ) ) -> CHOICE ) $=
      ( vf vu cv wel wa wrex wi wral wex wal cfv wcel cuni uniex cvv c0 wne wac
      wreu crab cmpt crio riotauni riotacl eqeltrrd wceq elequ2 rexbidv anbi12d
      elequ1 anbi1d rabbidva2 unieqd eqid vex rabex fvmpt eleq1d syl5ibr imim2d
      ralimia cpw wss ssrab2 elssuni syl5ss unissd elpw2 sylibr fmpti pwex fex2
      wf mp3an fveq1 imbi2d ralbidv spcev syl exlimiv alimi dfac3 ) CHZUAUBZCEI
      ZDEIZJZEBHZKZDWHUDZLZCAHZMZBNZAOWIWHFHZPZWHQZLZCWQMZFNZAOUCWSXEAWRXEBWRWI
      WHGWQGEIZWKJZEWMKZDGHZUEZRZUFZPZWHQZLZCWQMZXEWPXOCWQCAIZWOXNWIWOXNXQWNDWH
      UEZRZWHQWOWNDWHUGXSWHWNDWHUHWNDWHUIUJXQXMXSWHGWHXKXSWQXLXIWHUKZXJXRXTXHWN
      DXIWHXTDGIDCIXHWNGCDULXTXGWLEWMXTXFWJWKGCEUOUPUMUNUQURXLUSZXRWNDWHCUTVASV
      BVCVDVEVFXDXPFXLWQWQRZRZVGZXLVRWQTQYDTQXLTQGWQYDXKXLYAGAIZXKYCVHXKYDQYEXJ
      YBYEXJXIYBXHDXIVIXIWQVJVKVLXKYCYBWQAUTZSSZVMVNVOYFYCYGVPWQYDXLTTVQVSWTXLU
      KZXCXOCWQYHXBXNWIYHXAXMWHWHWTXLVTVCWAWBWCWDWEWFACFWGVN $.
  $}

  ${
    $d x y z w v u f g $.
    $( Axiom of Choice (first form) of [Enderton] p. 49 implies of our Axiom of
       Choice (in the form of ~ ac3 ).  The proof does not make use of AC. Note
       that the Axiom of Regularity is used by the proof.  Specifically,
       ~ elirrv and ~ preleq that are referenced in the proof each make use of
       Regularity for their derivations.  (The reverse implication can be
       derived without using Regularity; see ~ dfac2a .)  TODO:  Fix label in
       comment, and put label changes into list at top of set.mm.  (Contributed
       by NM, 5-Apr-2004.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    dfac2 $p |- ( CHOICE <-> A. x E. y A. z e. x ( z =/= (/) ->
        E! w e. z E. v e. y ( z e. v /\ w e. v ) ) ) $=
      ( vf vu vg cv c0 wel wa wrex wi wex wcel wceq weq vex eleq2 wac wreu wral
      wne wal cfv dfac3 cpr cab nfra1 wmo rsp equid neeq1 anbi12d rspcev mpanr2
      eqeq1 fveq2 preq1d preq2 eqtr2d anim2i reximi syl prex anbi2d elab sylibr
      rexbidv prid2 fvex prid1 pm3.2i sylancl eleq1 sylan2 ex syl8 impd pm2.43d
      spcev df-rex eleq1d bitrd rspccv wb wn elirrv mtbii con2i prel12 syl5rbbr
      imbi12d ancom sylan9bbr adantrr pm5.32da preleq syl6bir eqeq2d syl6 exp4c
      biimparc com13 com4r imp4a com3l rexlimiv sylbi expd imp4b exlimdv syl5bi
      imp expimpd alrimiv mo2icl jctird weu eu5 syl6ibr ralrimi crn csn cun cpw
      df-reu bitri rnex p0ex unex pwex ssun1 fvrn0 sselii elun2 prssi sylancr
      wss elpw syl5ibrcom adantld abssi ssexi rexeq reubidv imbi2d alimi dfac2a
      ralbidv exlimiv impbii ) UACIZJUDZCEKZDEKZLZEBIZMZDUUNUBZNZCAIZUCZBOZAUEZ
      UAUUOUUNFIZUFZUUNPZNZCUVCUCZFOZAUEUVFACFUGUVLUVEAUVKUVEFUVKUUOUUREGIZJUDZ
      HIZUVMUVGUFZUVMUHZQZLZGUVCMZHUIZMZDUUNUBZNZCUVCUCZUVEUVKUWDCUVCUVJCUVCUJU
      VKCAKZUUOUWCUVKUWFUUOLZDCKZUWBLZDOZUWIDUKZLZUWCUVKUWGUWJUWKUVKUWGUWJUVKUW
      FUUOUWGUWJNZUVKUWFUUOUVIUWMUVJCUVCULUVIUWGUWJUWGUVIUUPUVHEIZPZLZEUWAMZUWJ
      UWGUVHUUNUHZUWAPZUUNUWRPZUVHUWRPZLZUWQUWGUVNUWRUVQQZLZGUVCMZUWSUWGUVNGCRZ
      LZGUVCMZUXEUWFUUOCCRZUXHCUMUXGUUOUXILGUUNUVCUXFUVNUUOUXFUXIUVMUUNJUNUVMUU
      NUUNURUOUPUQUXGUXDGUVCUXFUXCUVNUXFUVQUVHUVMUHUWRUXFUVPUVHUVMUVMUUNUVGUSUT
      UVMUUNUVHVAVBVCVDVEUVTUXEHUWRUVHUUNVFUVOUWRQZUVSUXDGUVCUXJUVRUXCUVNUVOUWR
      UVQURVGVJVHVIUWTUXAUVHUUNCSZVKUVHUUNUUNUVGVLZVMVNUWPUXBEUWRUWAUWNUWRQUUPU
      WTUWOUXAUWNUWRUUNTUWNUWRUVHTUOUPVOUWIUVIUWQLDUVHUXLDIZUVHQZUWHUVIUWBUWQUX
      MUVHUUNVPUXNUURUWPEUWAUXNUUQUWOUUPUXMUVHUWNVPVGVJUOWBVQVRVSVTWAUVKUWIUXNN
      ZDUEUWKUVKUXODUVKUWHUWBUXNUWBUWNUWAPZUURLZEOUVKUWHLZUXNUUREUWAWCUXRUXQUXN
      EUVKUWHUXPUURUXNUXPUWHUVKUURUXNNZUXPUWHUVKUXSUXPUVNUWNUVQQZLZGUVCMZUWHUVK
      LZUXSNZUVTUYBHUWNESHERZUVSUYAGUVCUYEUVRUXTUVNUVOUWNUVQURVGVJVHUYAUYDGUVCU
      YCGAKZUYAUXSUYCUYFUVNUXTUXSUWHUVKUYFUVNUXTUXSNZNNUVKUYFUVNUWHUYGUVKUYFUVN
      UVPUVMPZUWHUYGNUVJUVNUYHNCUVMUVCCGRZUUOUVNUVIUYHUUNUVMJUNUYIUVIUVPUUNPUYH
      UYIUVHUVPUUNUUNUVMUVGUSZWDUUNUVMUVPTWEWNWFUXTUWHUYHUXSUXTUWHUYHUURUXNUXTU
      WHUYHLZUURLZUXMUVPQZUYILZUXNUXTUYLUYKUXMUUNUHUVQQZLUYNUXTUYKUYOUURUXTUWHU
      YOUURWGZUYHUWHUXTDCRZWHZUYPUYQUWHUYQDDKUWHDWIUXMUUNUXMTWJWKUYRUYOUXMUVQPZ
      UUNUVQPZLZUXTUURUXMUUNUVPUVMDSZUXKUVMUVGVLZGSZWLUURUUQUUPLUXTVUAUUQUUPWOU
      XTUUQUYSUUPUYTUWNUVQUXMTUWNUVQUUNTUOWMWPVQWQWRUXMUUNUVPUVMVUBUXKVUCVUDWSW
      TUYIUXNUYMUYIUVHUVPUXMUYJXAXDXBXCXEVSXFXOXGXHXIXJXKXEXLXMXNXPXQUWIDUVHXRV
      EXSUWCUWIDXTUWLUWBDUUNYHUWIDYAYIYBXKYCUVDUWEBUWAUWAUVGYDZJYEZYFZUVCYFZYGZ
      VUHVUGUVCVUEVUFUVGFSYJYKYLASYLYMUVTHVUIUVSUVOVUIPZGUVCUYFUVRVUJUVNUYFVUJU
      VRUVQVUIPZUYFUVQVUHYTZVUKUYFUVPVUHPUVMVUHPVULVUGVUHUVPVUGUVCYNUVGUVMYOYPU
      VMUVCVUGYQUVPUVMVUHYRYSUVQVUHUVPUVMVFUUAVIUVOUVQVUIVPUUBUUCXIUUDUUEUUSUWA
      QZUVBUWDCUVCVUMUVAUWCUUOVUMUUTUWBDUUNUUREUUSUWAUUFUUGUUHUUKWBVEUULUUIXJAB
      CDEUUJUUM $.
  $}

  ${
    $d x z y w v u $.
    $( Equivalence of the Axiom of Choice (first form) of [Enderton] p. 49 and
       our Axiom of Choice (in the form of ~ ac2 ).  The proof does not depend
       AC on but does depend on the Axiom of Regularity.  (Contributed by Mario
       Carneiro, 17-May-2015.) $)
    dfac7 $p |- ( CHOICE <->
                  A. x E. y A. z e. x A. w e. z E! v e. z E. u e. y
                      ( z e. u /\ v e. u ) ) $=
      ( wac cv c0 wne wel wa wrex wreu wi wral wex wal dfac2 aceq2 albii bitr4i
      ) GCHZIJCEKDEKLEBHZMDUCNOCAHZPBQZARCFKEFKLFUDMEUCNDUCPCUEPBQZARABCDESUGUF
      AABCDEFTUAUB $.
  $}

  ${
    $d x y z w v u t $.
    $( Equivalence of two versions of the Axiom of Choice.  The proof uses the
       Axiom of Regularity.  The right-hand side is our original ~ ax-ac .
       (Contributed by Mario Carneiro, 17-May-2015.) $)
    dfac0 $p |- ( CHOICE <->
              A. x E. y A. z A. w ( ( z e. w /\ w e. x ) -> E. v A. u
     ( E. t ( ( u e. w /\ w e. t ) /\ ( u e. t /\ t e. y ) ) <-> u = v ) ) ) $=
      ( wac wel wa cv wrex wreu wral wex wal weq wb wi dfac7 aceq0 albii bitri
      ) HCFIEFIJFBKLECKZMDUDNCAKNBOZAPCDIDAIJFDIDGIJFGIGBIJJGOFEQRFPEOSDPCPBOZA
      PABCDEFTUEUFAABCDEFGUAUBUC $.
  $}

  ${
    $d x y z w v u $.
    $( Equivalence of two versions of the Axiom of Choice ~ ax-ac .  The proof
       uses the Axiom of Regularity.  The right-hand side expresses our AC with
       the fewest number of different variables.  (Contributed by Mario
       Carneiro, 17-May-2015.) $)
    dfac1 $p |- ( CHOICE <->
              A. x E. y A. z A. w ( ( z e. w /\ w e. x ) -> E. x A. z
     ( E. x ( ( z e. w /\ w e. x ) /\ ( z e. x /\ x e. y ) ) <-> z = x ) ) ) $=
      ( vu vv wac wel wa cv wrex wreu wral wex wal weq wb wi dfac7 aceq1 albii
      bitri ) GCEHFEHIEBJKFCJZLDUCMCAJMBNZAOCDHDAHIZUECAHABHIIANCAPQCOANRDOCOBN
      ZAOABCDFESUDUFAABCDFETUAUB $.
  $}

  ${
    $d f r x y z $.
    $( A proof of the equivalency of the Well Ordering Theorem ~ weth and the
       Axiom of Choice ~ ac7 .  (Contributed by Mario Carneiro, 5-Jan-2013.) $)
    dfac8 $p |- ( CHOICE <-> A. x E. r r We x ) $=
      ( vz vf vy wac cv c0 wcel wral wex wal wwe cvv vex wceq exbidv spcv mpsyl
      alrimiv wne cfv wi dfac3 ccrd cdm cpw vpwex dfac8a dfac8b syl cuni vuniex
      raleq weeq2 dfac8c impbii bitri ) FCGZHUAUSDGUBUSIUCZCEGZJZDKZELZAGZBGZMZ
      BKZALZECDUDVDVIVDVHAVDVEUEUFIZVHVENIVDUTCVEUGZJZDKZVJAOVCVMEVKAUHVAVKPVBV
      LDUTCVAVKUNQRCVENDUISBVEUJUKTVIVCEVANIVIVAULZVFMZBKZVCEOVHVPAVNEUMVEVNPVG
      VOBVEVNVFUOQRCVANDBUPSTUQUR $.
  $}

  ${
    $d f g s t x $.
    $( Equivalence of the axiom of choice with a statement related to ~ ac9 ;
       definition AC3 of [Schechter] p. 139.  (Contributed by Stefan O'Rear,
       22-Feb-2015.) $)
    dfac9 $p |- ( CHOICE <-> A. f ( ( Fun f /\ (/) e/ ran f ) ->
            X_ x e. dom f ( f ` x ) =/= (/) ) ) $=
      ( vt vg vs cv c0 wne cfv wcel wi wral wex cixp vex wceq imbi12d cvv ax-mp
      wa wac wal wfun crn wnel cdm dfac3 rnex exbidv spcv cmpt wn df-nel biimpi
      raleq ad2antlr fvelrn adantlr eleq1 syl5ibcom necon3bd simpll sylan neeq1
      simplr fveq2 id eleq12d rspcva syl2anc ralrimiva wb dmex mptelixpg sylibr
      mpd ne0i syl ex exlimdv syl5com alrimiv csn cdif cid cres fnresi neldifsn
      wfn fnfun difexg resiexg funeq rnresi syl6eq eleq2d notbid syl5bb anbi12d
      rneq dmeq dmresi ixpeq1d fveq1 fvresi sylan9eq ixpeq2dva neeq1d mp2ani n0
      eqtrd elixp eldifsn imbi1i impexp bitri ralbii2 adantl sylbi eximi impbii
      cbvralv ) UACFZGHZYCDFZIZYCJZKZCEFZLZDMZEUBZBFZUCZGYMUDZUEZTZAYMUFZAFZYMI
      ZNZGHZKZBUBZECDUGYLUUDYLUUCBYLYHCYOLZDMZYQUUBYKUUFEYOYMBOZUHYIYOPYJUUEDYH
      CYIYOUOUIUJYQUUEUUBDYQUUEUUBYQUUETZAYRYTYEIZUKZUUAJZUUBUUHUUIYTJZAYRLZUUK
      UUHUULAYRUUHYSYRJZTZYTGHZUULYQUUNUUPUUEYQUUNTZGYOJZULZUUPYPUUSYNUUNYPUUSG
      YOUMZUNUPUUQUURYTGUUQYTYOJZYTGPUURYNUUNUVAYPYSYMUQZURYTGYOUSUTVAVPURUUOUV
      AUUEUUPUULKZUUHYNUUNUVAYNYPUUEVBUVBVCYQUUEUUNVEYHUVCCYTYOYCYTPZYDUUPYGUUL
      YCYTGVDUVDYFUUIYCYTYCYTYEVFUVDVGVHQVIVJVPVKYRRJUUKUUMVLYMUUGVMAYRUUIYTRVN
      SVOUUAUUJVQVRVSVTWAWBUUDYKEUUDAYIGWCZWDZYSNZGHZYKUUDWEUVFWFZUCZGUVFJZULZU
      VHUVIUVFWIUVJUVFWGUVFUVIWJSGYIWHUUCUVJUVLTZUVHKBUVIUVFRJZUVIRJYIRJUVNEOYI
      UVERWKSUVFRWLSYMUVIPZYQUVMUUBUVHUVOYNUVJYPUVLYMUVIWMYPUUSUVOUVLUUTUVOUURU
      VKUVOYOUVFGUVOYOUVIUDUVFYMUVIWTUVFWNWOWPWQWRWSUVOUUAUVGGUVOUUAAUVFYTNUVGU
      VOAYRUVFYTUVOYRUVIUFUVFYMUVIXAUVFXBWOXCUVOAUVFYTYSUVOYSUVFJZYTYSUVIIYSYSY
      MUVIXDUVFYSXEXFXGXKXHQUJXIUVHYEUVGJZDMYKDUVGXJUVQYJDUVQYEUVFWIZYSYEIZYSJZ
      AUVFLZTYJAUVFYSYEDOXLUWAYJUVRUWAYJUWAYSGHZUVTKZAYILYJUVTUWCAUVFYIUVPUVTKY
      SYIJZUWBTZUVTKUWDUWCKUVPUWEUVTYSYIGXMXNUWDUWBUVTXOXPXQUWCYHACYIYSYCPZUWBY
      DUVTYGYSYCGVDUWFUVSYFYSYCYSYCYEVFUWFVGVHQYBXPUNXRXSXTXSVRWBYAXP $.
  $}

  ${
    $d x y $.
    $( Axiom of Choice equivalent: the cardinality function measures every set.
       (Contributed by Mario Carneiro, 6-May-2015.) $)
    dfac10 $p |- ( CHOICE <-> dom card = _V ) $=
      ( vx vy cv ccrd cdm wcel wal wwe wex cvv wceq wac ween albii eqv 3bitr4ri
      dfac8 ) ACZDEZFZAGRBCHBIZAGSJKLTUAARBMNASOABQP $.

    $( Axiom of Choice equivalent: every set is equinumerous to an ordinal.
       (Contributed by Stefan O'Rear, 17-Jan-2015.) $)
    dfac10c $p |- ( CHOICE <-> A. x E. y e. On y ~~ x ) $=
      ( wac ccrd cdm cvv wceq cv wcel wal cen wbr con0 wrex dfac10 isnum2 albii
      eqv 3bitri ) CDEZFGAHZTIZAJBHUAKLBMNZAJOATRUBUCABUAPQS $.

    $( Axiom of Choice equivalent: every set is equinumerous to an ordinal
       (quantifier-free short cryptic version alluded to in ~ df-ac ).
       (Contributed by Stefan O'Rear, 17-Jan-2015.) $)
    dfac10b $p |- ( CHOICE <-> ( ~~ " On ) = _V ) $=
      ( vy vx cv cen wbr con0 wrex wal cima wcel wac cvv vex elima bicomi albii
      wceq dfac10c eqv 3bitr4i ) ACBCZDEAFGZBHUADFIZJZBHKUCLQUBUDBUDUBAUADFBMNO
      PBARBUCST $.
  $}

  ${
    $d f g x y z $.  $d x A $.  $d x V $.
    $( A choice equivalent: every set has choice sets of every length.
       (Contributed by Mario Carneiro, 31-Aug-2015.) $)
    acacni $p |- ( ( CHOICE /\ A e. V ) -> AC_ A = _V ) $=
      ( vx wac wcel wa wacn cvv ccrd cdm simpr vex simpl dfac10 sylib syl5eleqr
      cv wceq numacn sylc a1i 2thd eqrdv ) DABEZFZCAGZHUECQZUFEZUGHEZUEUDUGIJZE
      UHDUDKUEUGHUJCLZUEDUJHRDUDMNOPABUGSTUIUEUKUAUBUC $.

    $( A choice equivalent: every set has choice sets of every length.
       (Contributed by Mario Carneiro, 31-Aug-2015.) $)
    dfacacn $p |- ( CHOICE <-> A. x AC_ x = _V ) $=
      ( vf vy vz vg wac cv wacn cvv wceq wal wcel vex alrimiv wfn c0 wi wral wa
      cfv acacni mpan2 wne wex csn cdif cuni difexg ax-mp acneq eqeq1d spcv wss
      wf vuniex id syl5eleqr eldifi elssuni syl eldifsni jca rgen acni2 sylancl
      cmpt mptex simpr eldifsn imbi1i fveq2 fvmpt eleq1d pm5.74i impexp 3bitr3i
      eqid fvex ralbii2 sylib crn cun fvrn0 rgenw fmpt jctil fneq1 fveq1 imbi2d
      mpbi ffn ralbidv anbi12d spcegv mpsyl exlimiv 3syl dfac4 sylibr impbii )
      FAGZHZIJZAKZFXCAFXAILXCAMXAIUAUBNXDBGZCGZOZDGZPUCZXHXETZXHLZQZDXFRZSZBUDZ
      CKFXDXOCXDXFPUEZUFZHZIJZXQXFUGZEGZUNZXHYATZXHLZDXQRZSZEUDZXOXCXSAXQXFILXQ
      ILCMZXFXPIUHUIXAXQJXBXRIXAXQUJUKULXSXTXRLXHXTUMZXISZDXQRYGXSXTIXRCUOXSUPU
      QYJDXQXHXQLZYIXIYKXHXFLZYIXHXFXPURZXHXFUSUTXHXFPVAVBVCDXQXHEXTVDVEYFXOEAX
      FXAYATZVFZILYFYOXFOZXIXHYOTZXHLZQZDXFRZSZXOAXFYNYHVGYFYTYPYFYEYTYBYEVHYDY
      SDXQXFYKYRQYLXISZYRQYKYDQYLYSQYKUUBYRXHXFPVIVJYKYRYDYKYQYCXHYKYLYQYCJYMAX
      HYNYCXFYOXAXHYAVKYOVQZXHYAVRVLUTVMVNYLXIYRVOVPVSVTXFYAWAXPWBZYOUNZYPYNUUD
      LZAXFRUUEUUFAXFYAXAWCWDAXFUUDYNYOUUCWEWJXFUUDYOWKUIWFXNUUABYOIXEYOJZXGYPX
      MYTXFXEYOWGUUGXLYSDXFUUGXKYRXIUUGXJYQXHXHXEYOWHVMWIWLWMWNWOWPWQNCDBWRWSWT
      $.

    $( The axiom of choice holds iff every set has choice sequences as long as
       itself.  (Contributed by Mario Carneiro, 3-Sep-2015.) $)
    dfac13 $p |- ( CHOICE <-> A. x x e. AC_ x ) $=
      ( vy vz wac wacn wcel wal cvv vex wceq acacni mpan2 syl5eleqr alrimiv cpw
      cv vpwex id acneq wbr eleq12d spcv ccrd cdm csdm cdom canth2 sdomdom mp2b
      wi acndom2 acnnum sylib numacn mpsyl syl 2thd eqrdv dfacacn sylibr impbii
      a1i ) DAPZVCEZFZAGZDVEADVCHVDAIZDVCHFVDHJVGVCHKLMNVFBPZEZHJZBGDVFVJBVFCVI
      HVFCPZVIFZVKHFZVFVKOZVNEZFZVLVEVPAVNCQVCVNJZVCVNVDVOVQRVCVNSUAUBVHHFVPVKU
      CUDFZVLBIVPVKVOFZVRVKVNUETVKVNUFTVPVSUJVKCIZUGVKVNUHVNVKVNUKUIVKULUMVHHVK
      UNUOUPVMVFVTVBUQURNBUSUTVA $.
  $}

  ${
    $d m n y z A $.  $d x y z C $.  $d m n x y z G $.  $d m n y z ph $.
    $d x y z F $.  $d y z H $.
    dfac12.1 $e |- ( ph -> A e. On ) $.
    dfac12.3 $e |- ( ph -> F : ~P ( har ` ( R1 ` A ) ) -1-1-> On ) $.
    dfac12.4 $e |- G = recs ( ( x e. _V |-> ( y e. ( R1 ` dom x ) |->
      if ( dom x = U. dom x , ( ( suc U. ran U. ran x .o ( rank ` y ) ) +o
          ( ( x ` suc ( rank ` y ) ) ` y ) ) , ( F `
            ( ( `' OrdIso ( _E , ran ( x ` U. dom x ) ) o.
              ( x ` U. dom x ) ) " y ) ) ) ) ) ) $.
    ${
      dfac12.5 $e |- ( ph -> C e. On ) $.
      dfac12.h $e |- H =
        ( `' OrdIso ( _E , ran ( G ` U. C ) ) o. ( G ` U. C ) ) $.
      $( Lemma for ~ dfac12 .  (Contributed by Mario Carneiro, 29-May-2015.) $)
      dfac12lem1 $p |- ( ph -> ( G ` C ) = ( y e. ( R1 ` C ) |->
      if ( C = U. C , ( ( suc U. ran U. ( G " C ) .o ( rank ` y ) ) +o
          ( ( G ` suc ( rank ` y ) ) ` y ) ) , ( F ` ( H " y ) ) ) ) ) $=
        ( cfv cuni wceq crn con0 wcel syl cres cvv cv cdm cr1 csuc crnk comu co
        coa cep coi ccnv ccom cima cif cmpt tfr2 wfun wfn fnfun ax-mp resfunexg
        tfr1 sylancr dmeq fveq2d unieqd eqeq12d rneq df-ima syl6eqr rneqd suceq
        oveq1d fveq1 fveq1d oveq12d id fveq12d cnveqd coeq12d imaeq1d ifbieq12d
        oieq2 mpteq12dv eqid fvex mptex wss onss fnssres fndm mpteq1d wa adantr
        fvmpt ifbid rankr1ai ad2antlr simpr eleqtrd word eloni ordsucuniel 3syl
        wb ad2antrr mpbid fvres oveq2d ifeq1da wn uniexg wo orduniorsuc orcanai
        sucidg eleqtrrd eqtrd ifeq2da 3eqtrd mpteq2dva ) AEGNZGEUAZBUBCBUCZUDZU
        ENZYGYGOZPZYFQZOZQZOZUFZCUCZUGNZUHUIZYPYQUFZYFNZNZUJUIZYIYFNZQZUKULZUMZ
        UUCUNZYPUOZFNZUPZUQZUQZNZCYEUDZUENZUUNUUNOZPZGEUOZOZQZOZUFZYQUHUIZYPYSY
        ENZNZUJUIZUUPYENZQZUKULZUMZUVGUNZYPUOZFNZUPZUQZCEUENZEEOZPZUVCYPYSGNZNZ
        UJUIZHYPUOZFNZUPZUQZAERSZYDUUMPLEGUULKURTAYEUBSZUUMUVOPAGUSZUWFUWGGRUTZ
        UWHGUULKVDZRGVAVBLGERVCVEBYEUUKUVOUBUULYFYEPZCYHUUJUUOUVNUWKYGUUNUEYFYE
        VFZVGUWKYJUUQUUBUUIUVFUVMUWKYGUUNYIUUPUWLUWKYGUUNUWLVHZVIUWKYRUVCUUAUVE
        UJUWKYOUVBYQUHUWKYNUVAPYOUVBPUWKYMUUTUWKYLUUSUWKYKUURUWKYKYEQUURYFYEVJG
        EVKVLVHVMVHYNUVAVNTVOUWKYPYTUVDYSYFYEVPVQVRUWKUUHUVLFUWKUUGUVKYPUWKUUFU
        VJUUCUVGUWKUUEUVIUWKUUDUVHPUUEUVIPUWKUUCUVGUWKYIUUPYFYEUWKVSUWMVTZVMUUD
        UVHUKWETWAUWNWBWCVGWDWFUULWGCUUOUVNUUNUEWHWIWQTAUVOCUVPUVNUQUWEACUUOUVP
        UVNAUUNEUEAYEEUTZUUNEPZAUWIERWJZUWOUWJAUWFUWQLEWKTREGWLVEEYEWMTZVGWNACU
        VPUVNUWDAYPUVPSZWOZUVNUVRUVFUVMUPUVRUWAUVMUPUWDUWTUUQUVRUVFUVMUWTUUNEUU
        PUVQAUWPUWSUWRWPZUWTUUNEUXAVHZVIWRUWTUVRUVFUWAUVMUWTUVRWOZUVEUVTUVCUJUX
        CYPUVDUVSUXCYSESZUVDUVSPUXCYQUVQSZUXDUXCYQEUVQUWSYQESAUVRYPEWSWTUWTUVRX
        AXBAUXEUXDXGZUWSUVRAUWFEXCZUXFLEXDZYQEXEXFXHXIYSEGXJTVQXKXLUWTUVRUVMUWC
        UWAUWTUVRXMZWOZUVLUWBFUXJUVKHYPUXJUVKUVQGNZQZUKULZUMZUXKUNHUXJUVJUXNUVG
        UXKUXJUVIUXMUXJUVHUXLPUVIUXMPUXJUVGUXKUXJUVGUVQYENZUXKUXJUUPUVQYEUWTUUP
        UVQPUXIUXBWPVGUXJUVQESUXOUXKPUXJUVQUVQUFZEUXJUWFUVQUBSUVQUXPSAUWFUWSUXI
        LXHERXNUVQUBXRXFUWTUVREUXPPZUWTUWFUXGUVRUXQXOAUWFUWSLWPUXHEXPXFXQXSUVQE
        GXJTXTZVMUVHUXLUKWETWAUXRWBMVLWCVGYAYBYCXTYB $.

      dfac12.6 $e |- ( ph -> C C_ A ) $.
      dfac12.8 $e |- ( ph -> A. z e. C ( G ` z ) : ( R1 ` z ) -1-1-> On ) $.
      $( Lemma for ~ dfac12 .  (Contributed by Mario Carneiro, 29-May-2015.) $)
      dfac12lem2 $p |- ( ph -> ( G ` C ) : ( R1 ` C ) -1-1-> On ) $=
        ( cfv con0 wceq wcel cr1 wf1 cuni cima crn csuc cv crnk comu co coa cif
        cmpt wa cvv wss wfun wfn cdm cep coi ccnv ccom tfr1 fnfun ax-mp sylancr
        funimaexg uniexg rnexg 3syl cxp cpw wral f1f fssxp ssv xpss1 sstr mpan2
        wf fvex elpw sylibr ralimi syl wb onss fndm syl6sseqr funimass4 sspwuni
        mpbird rnss sylc ad2antrr ad2antlr eleqtrd word fveq2 f1eq1 f1eq2 bitrd
        rankon rspcv r1elwf rankidb ffvelrnd syl2anc char wf1o wwe eleqtrrd frn
        adantr f1of1 4syl cdom wbr cen sseldd endomtr iftrue eqeq12d adantl a1i
        ex adantlrr anbi1d fveq2d eleq1d chvarv adantlrl f1fveq syl12anc 3bitrd
        wi imbi12d iffalse elpwid sylib rnxpss syl6ss ssonuni suceloni rankr1ai
        omcl sylancl simpr eloni ordsucuniel mpbid oacl imassrn wiso rnex onuni
        wn sucidg wo orduniorsuc orcanai epweon wess mpisyl oiiso isof1o f1ocnv
        eqid f1f1orn f1co harcl onordi oion mp1i oien f1oen ensym r1ord2 ssdomg
        mpsyl elharval sylanbrc ordelss sstrd syl5ss ifclda c0 nsuceq0 onsucuni
        elpw2 wne fnfvima syl3anc elssuni f1fn fnfvelrn eleq1 anbi2d id fveq12d
        suceq omopth2 syl222anc fveq1d eqeq2d bitr3d biimpd expimpd jca impbid1
        imaeq2 simplrl r1suc eqtrd simplrr f1imaeq pm2.61dan dom2lem dfac12lem1
        ad2antll ) AFUAQZRFHQZUBZUYBRCUYBFFUCZSZHFUDZUCZUEZUCZUFZCUGZUHQZUIUJZU
[encoded data, 4480 characters]
        AWFWM $.
    $}

    $( Lemma for ~ dfac12 .  (Contributed by Mario Carneiro, 29-May-2015.) $)
    dfac12lem3 $p |- ( ph -> ( R1 ` A ) e. dom card ) $=
      ( vn cr1 cfv wcel con0 wf1 wi wceq wb fveq2 syl ccrd cdm crn cvv wss fvex
      vm vz rnex wf ssid cv sseq1 f1eq1 f1eq2 bitrd imbi12d imbi2d wral r19.21v
      wa word eloni ad2antrl ordelss sylan simplrr sstrd pm5.5 ralbidva cep coi
      cuni ccnv ccom ad2antrr char cpw simplrl eqid simpr cbvralv dfac12lem2 ex
      sylib sylbid expr com23 expcom a2d syl5bi tfis3 mpcom mpi f1f frn onssnum
      3syl sylancr wf1o cen wbr f1f1orn f1oen ennum mpbird ) ADKLZUAUBZMZDFLZUC
      ZXHMZAXKUDMXKNUEZXLXJDFUFUIAXGNXJOZXGNXJUJXMADDUEZXNDUKDNMZAXOXNPZGAUGULZ
      DUEZXRKLZNXRFLZOZPZPZAJULZDUEZYEKLZNYEFLZOZPZPZAXQPUGJDXRYEQZYCYJAYLXSYFY
      BYIXRYEDUMYLYBXTNYHOZYIYLYAYHQYBYMRXRYEFSXTNYAYHUNTYLXTYGQYMYIRXRYEKSXTYG
      NYHUOTUPUQURXRDQZYCXQAYNXSXOYBXNXRDDUMYNYBXTNXJOZXNYNYAXJQYBYORXRDFSXTNYA
      XJUNTYNXTXGQYOXNRXRDKSXTXGNXJUOTUPUQURYKJXRUSAYJJXRUSZPXRNMZYDAYJJXRUTYQA
      YPYCAYQYPYCPAYQVAXSYPYBAYQXSYPYBPAYQXSVAZVAZYPYIJXRUSZYBYSYJYIJXRYSYEXRMZ
      VAZYFYJYIRUUBYEXRDYSXRVBZUUAYEXRUEYQUUCAXSXRVCVDXRYEVEVFAYQXSUUAVGVHYFYIV
      ITVJYSYTYBYSYTVAZBCUHDXREFXRVMFLZUCVKVLVNUUEVOZAXPYRYTGVPAXGVQLVRNEOYRYTH
      VPIAYQXSYTVSUUFVTAYQXSYTVGUUDYTUHULZKLZNUUGFLZOZUHXRUSYSYTWAYIUUJJUHXRYEU
      UGQZYIYGNUUIOZUUJUUKYHUUIQYIUULRYEUUGFSYGNYHUUIUNTUUKYGUUHQUULUUJRYEUUGKS
      YGUUHNUUIUOTUPWBWEWCWDWFWGWHWIWJWKWLWMWNZXGNXJWOXGNXJWPWRXKUDWQWSAXGXKXJW
      TZXGXKXAXBXIXLRAXNUUNUUMXGNXJXCTXGXKXJDKUFXDXGXKXEWRXF $.
  $}

  ${
    $d a b f x y z $.
    $( The axiom of choice holds iff every ordinal has a well-orderable
       powerset.  This version of ~ dfac12 does not assume the Axiom of
       Regularity.  (Contributed by Mario Carneiro, 29-May-2015.) $)
    dfac12r $p |- ( A. x e. On ~P x e. dom card <->
        U. ( R1 " On ) C_ dom card ) $=
      ( vy vz vf va vb cv wcel con0 cr1 cima cuni csuc cfv wceq crn comu co coa
      cmpt cpw ccrd cdm wral wss wrex rankwflemb wa char cen wbr wi pweq eleq1d
      harcl rspcv ax-mp cardid2 ensym wf1o wex bren cvv crnk cep coi ccnv crecs
      ccom cif simpr wf1 f1of1 adantr cardon onssi f1ss sylancl fveq2 suceq syl
      oveq2d fveq2d id fveq12d oveq12d imaeq2 ifeq12d cbvmptv dmeq eqeq12d rneq
      unieqd rneqd oveq1d fveq1 fveq1d oieq2 cnveqd coeq12d ifbieq12d mpteq12dv
      imaeq1d syl5eq recseq dfac12lem3 ex exlimiv sylbi imp r1suc adantl eleq2d
      4syl elpwi syl6bi ssnum syl6an rexlimdva ssrdv onwf sseli pwwf sylib ssel
      syl5bi syl5 ralrimiv impbii ) AGZUAZUBUCZHZAIUDZJIKLZYLUEZYNBYOYLBGZYOHYQ
      CGZMJNZHZCIUFYNYQYLHZCYQUGYNYTUUACIYNYRIHZUHZYRJNZYLHZYTYQUUDUEZUUAYNUUBU
      UEYNUUDUINZUAZYLHZUUHUBNZUUHUJUKUUHUUJUJUKZUUBUUEULZUUGIHYNUUIULUUDUOYMUU
      IAUUGIYJUUGOYKUUHYLYJUUGUMUNUPUQUUHURUUJUUHUSUUKUUHUUJDGZUTZDVAUULUUHUUJD
      VBUUNUULDUUNUUBUUEUUNUUBUHZEFYRUUMAVCBYJUCZJNZUUPUUPLZOZYJPZLZPZLZMZYQVDN
      ZQRZYQUVEMZYJNZNZSRZUURYJNZPZVEVFZVGZUVKVIZYQKZUUMNZVJZTZTZVHZUUNUUBVKUUO
      UUHUUJUUMVLZUUJIUEUUHIUUMVLUUNUWBUUBUUHUUJUUMVMVNUUJUUHVOVPUUHUUJIUUMVQVR
      UVTEVCFEGZUCZJNZUWDUWDLZOZUWCPZLZPZLZMZFGZVDNZQRZUWMUWNMZUWCNZNZSRZUWFUWC
      NZPZVEVFZVGZUWTVIZUWMKZUUMNZVJZTZTZOUWAUXIVHOAEVCUVSUXHYJUWCOZUVSFUUQUUSU
      VDUWNQRZUWMUWPYJNZNZSRZUVOUWMKZUUMNZVJZTUXHBFUUQUVRUXQYQUWMOZUUSUVJUXNUVQ
      UXPUXRUVFUXKUVIUXMSUXRUVEUWNUVDQYQUWMVDVSZWBUXRYQUWMUVHUXLUXRUVGUWPYJUXRU
      VEUWNOUVGUWPOUXSUVEUWNVTWAWCUXRWDWEWFUXRUVPUXOUUMYQUWMUVOWGWCWHWIUXJFUUQU
      XQUWEUXGUXJUUPUWDJYJUWCWJZWCUXJUUSUWGUXNUXPUWSUXFUXJUUPUWDUURUWFUXTUXJUUP
      UWDUXTWMZWKUXJUXKUWOUXMUWRSUXJUVDUWLUWNQUXJUVCUWKOUVDUWLOUXJUVBUWJUXJUVAU
      WIUXJUUTUWHYJUWCWLWMWNWMUVCUWKVTWAWOUXJUWMUXLUWQUWPYJUWCWPWQWFUXJUXOUXEUU
      MUXJUVOUXDUWMUXJUVNUXCUVKUWTUXJUVMUXBUXJUVLUXAOUVMUXBOUXJUVKUWTUXJUURUWFY
      JUWCUXJWDUYAWEZWNUVLUXAVEWRWAWSUYBWTXCWCXAXBXDWIUVTUXIXEUQXFXGXHXIXNXJUUC
      YTYQUUDUAZHUUFUUCYSUYCYQUUBYSUYCOYNYRXKXLXMYQUUDXOXPUUDYQXQXRXSYFXTYPYMAI
      YJIHZYKYOHZYPYMUYDYJYOHUYEIYOYJYAYBYJYCYDYOYLYKYEYGYHYI $.

    $( Equivalence of ~ dfac12 and ~ dfac12a , without using Regularity.
       (Contributed by Mario Carneiro, 21-May-2015.) $)
    dfac12k $p |- ( A. x e. On ~P x e. dom card <->
      A. y e. On ~P ( aleph ` y ) e. dom card ) $=
      ( cv cpw ccrd wcel con0 wral cfv wceq pweq eleq1d com wb wrex syl cfn cen
      wa wbr cdm cale wi alephon rspcv ax-mp ralrimivw wss omelon cardon ontri1
      wn mp2an cardidm cardalephex mpbii r19.29 biimparc rexlimivw syl5 syl5bir
      ex nnfi pwfi sylib finnum pm2.61d2 oncardid pwen ennum syl5ibcom ralrimiv
      3syl impbii ) ACZDZEUAZFZAGHZBCZUBIZDZVQFZBGHZVSWCBGWAGFVSWCUCVTUDVRWCAWA
      GVOWAJVPWBVQVOWAKLUEUFUGWDVRAGWDVOEIZDZVQFZVOGFZVRWDWEMFZWGWIULZMWEUHZWDW
      GMGFWEGFWKWJNUIVOUJMWEUKUMWKWEWAJZBGOZWDWGWKWEEIWEJWMVOUNBWEUOUPWDWMWGWDW
      MSWCWLSZBGOWGWCWLBGUQWNWGBGWLWGWCWLWFWBVQWEWAKLURUSPVBUTVAWIWFQFZWGWIWEQF
      WOWEVCWEVDVEWFVFPVGWHWEVORTWFVPRTWGVRNVOVHWEVOVIWFVPVJVMVKVLVN $.

    $( The axiom of choice holds iff every ordinal has a well-orderable
       powerset.  (Contributed by Mario Carneiro, 29-May-2015.) $)
    dfac12a $p |- ( CHOICE <-> A. x e. On ~P x e. dom card ) $=
      ( wac cr1 con0 cima cuni ccrd cdm wss cpw wcel wral cvv wceq eqss mpbiran
      cv ssv dfac10 unir1 sseq1i 3bitr4i dfac12r bitr4i ) BCDEFZGHZIZAQJUFKADLU
      FMNZMUFIZBUGUHUFMIUIUFRUFMOPSUEMUFTUAUBAUCUD $.

    $( The axiom of choice holds iff every aleph has a well-orderable powerset.
       (Contributed by Mario Carneiro, 21-May-2015.) $)
    dfac12 $p |- ( CHOICE <-> A. x e. On ~P ( aleph ` x ) e. dom card ) $=
      ( vy wac cv cpw ccrd cdm wcel con0 wral cale cfv dfac12a dfac12k bitri )
      CBDEFGZHBIJADKLEPHAIJBMBANO $.
  $}

  ${
    $d v A $.  $d u v x y ph $.  $d ps x v $.  $d u v w x y z $.
    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4, 1 => 2.  (Contributed by
       NM, 5-Apr-2004.) $)
    kmlem1 $p |- ( A. x ( ( A. z e. x z =/= (/) /\ A. z e. x A. w e. x ph ) ->
                 E. y A. z e. x ps ) -> A. x ( A. z e. x A. w e. x ph ->
                   E. y A. z e. x ( z =/= (/) -> ps ) ) ) $=
      ( vv vu cv c0 wne wral wa wex wi wal wceq raleq wcel ralimi2 crab anbi12d
      rabex raleqbi1dv exbidv imbi12d alrimiv elrabi imim1i imim12i neeq1 elrab
      vex spcv simprbi rgen jctil biimpri expd eximi sylg cbvalv sylib ) EIZJKZ
      ECIZLZAFVFLZEVFLZMZBEVFLZDNZOZCPZAFGIZLZEVOLZVEBOZEVOLZDNZOZGPVIVREVFLZDN
      ZOZCPVNVEEHIZJKZHVOUAZLZAFWGLZEWGLZMZBEWGLZDNZOZWAGVNWNGVMWNCWGWFHVOGUMUC
      VFWGQZVJWKVLWMWOVGWHVIWJVEEVFWGRVHWIEVFWGAFVFWGRUDUBWOVKWLDBEVFWGRUEUFUNU
      GVQWKWMVTVQWJWHVPWIEVOWGVDWGSZVDVOSZVPWIWFHVDVOUHAAFVOWGFIZWGSWRVOSAWFHWR
      VOUHUITUJTVEEWGWPWQVEWFVEHVDVOWEVDJUKULZUOUPUQWLVSDBVREWGVOWPBOWQVEBWQVEM
      ZWPBWPWTWSURUIUSTUTUJVAWAWDGCVOVFQZVQVIVTWCVPVHEVOVFAFVOVFRUDXAVSWBDVREVO
      VFRUEUFVBVC $.

    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4, part of 3 => 4.
       (Contributed by NM, 25-Mar-2004.) $)
    kmlem2 $p |- ( E. y A. z e. x ( ph -> E! w w e. ( z i^i y ) ) <->
        E. y ( -. y e. x /\ A. z e. x ( ph -> E! w w e. ( z i^i y ) ) ) ) $=
      ( vv vu cv cin wcel weu wi wral wex wn wa wceq eleq2d eubidv imbi2d ineq2
      ralbidv cbvexv cuni csn cun indi elssuni ssneld disjsn syl6ibr impcom un0
      c0 uneq2d syl6eq syl5req ralbidva wo vsnid olci mpbir sseld mpi biantrurd
      elun con3i bitrd snex unex eleq1 notbid anbi12d spcev syl6bi vuniex eleq2
      vex exbidv wal nalset alexn vtocl exlimiiv exlimiv sylbi exsimpr impbii
      spi ) AEHZDHZCHZIZJZEKZLZDBHZMZCNZWLWQJZOZWRPZCNZWSAWJWKFHZIZJZEKZLZDWQMZ
      FNXCWRXICFWLXDQZWPXHDWQXJWOXGAXJWNXFEXJWMXEWJWLXDWKUARSTUBUCXIXCFGHZWQUDZ
      JZOZXIXCLGXNXIXDXKUEZUFZWQJZOZAWJWKXPIZJZEKZLZDWQMZPZXCXNXIYCYDXNXHYBDWQX
      NWKWQJZPZXGYAAYFXFXTEYFXEXSWJYFXSXEWKXOIZUFZXEWKXDXOUGYFYHXEUNUFXEYFYGUNX
      EYEXNYGUNQZYEXNXKWKJOYIYEWKXLXKWKWQUHUIWKXKUJUKULUOXEUMUPUQRSTURXNXRYCXQX
      MXQXKXPJZXMYJXKXDJZXKXOJZUSYLYKGUTVAXKXDXOVFVBXQXPXLXKXPWQUHVCVDVGVEVHXBY
      DCXPXDXOFVRXKVIVJWLXPQZXAXRWRYCYMWTXQWLXPWQVKVLYMWPYBDWQYMWOYAAYMWNXTEYMW
      MXSWJWLXPWKUARSTUBVMVNVOXKWLJZOZGNZXNGNCXLBVPWLXLQZYOXNGYQYNXMWLXLXKVQVLV
      SYPCYPCVTYNGVTCNOCGWAYNCGWBVBWIWCWDWEWFXAWRCWGWH $.

    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4, part of 3 => 4.  The
       right-hand side is part of the hypothesis of 4.  (Contributed by NM,
       25-Mar-2004.) $)
    kmlem3 $p |- ( ( z \ U. ( x \ { z } ) ) =/= (/) <->
        E. v e. z A. w e. x ( z =/= w -> -. v e. ( z i^i w ) ) ) $=
      ( cv cdif c0 wne wcel wn crab wrex wel cun wex anbi2i bitr3i bitri 3bitri
      wa csn cuni cin wi wral wo dfdif2 dfnul3 uneq2i unrab 3eqtr3i ianor eluni
      un0 anbi1i df-rex elin df-an eldifsn necom ancom anbi2ci anass an32 exbii
      wb 19.41v rexnal 3bitr2ri con1bii a1i rabbiia 3eqtri neeq1i rabn0 ) BEZAE
      ZVPUAFZUBZFZGHVPCEZHZDEZVPWAUCIZJUDZCVQUEZDVPKZGHWFDVPLVTWGGVTWCVSIZJZDVP
      KZWIDBMZJZUFZDVPKZWGDVPVSUGWJGNWJWLDVPKZNWJWNGWOWJDVPUHUIWJUNWIWLDVPUJUKW
      MWFDVPWMWFVFWKWMWHWKTZJWFWHWKULWFWPWPDCMZWAVRIZTZCOZWKTZWEJZCVQLZWFJWHWTW
      KCWCVRUMUOXCCAMZXBTZCOWSWKTZCOXAXBCVQUPXEXFCXEXDWBWKWQTZTZTZXFXHXBXDXHWBW
      DTXBWDXGWBWCVPWAUQPWBWDURQPXIWQWKTZWRTZXFXKXJXDWBTZTXLXGTXIWRXLXJWRXDWAVP
      HZTXLWAVQVPUSXMWBXDWAVPUTPRPXJXGXLWQWKVAVBXDWBXGVCSWQWKWRVDQQVEWSWKCVGSWE
      CVQVHVIVJQVKVLVMVNWFDVPVOR $.

    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4, part of 3 => 4.
       (Contributed by NM, 26-Mar-2004.) $)
    kmlem4 $p |- ( ( w e. x /\ z =/= w ) ->
                    ( ( z \ U. ( x \ { z } ) ) i^i w ) = (/) ) $=
      ( vy vv wel cv wne wa wn csn cdif cuni wral cin c0 wceq wi wal wcel eleq1
      neeq2 anbi12d elequ2 notbid imbi12d spv eldif simpr wex eluni alnex con2b
      notbii imnan eldifsn necom anbi2i bitri 3bitr3i albii 3bitr2i sylib sylbi
      imbi1i syl11 ralrimiv disj sylibr ) CAFZBGZCGZHZIZDCFZJZDVKAGZVKKLZMZLZNV
      TVLOPQVNVPDVTEAFZVKEGZHZIZDEFZJZRZESZVNVPDGZVTTZWGVNVPRECWBVLQZWDVNWFVPWK
      WAVJWCVMWBVLVQUAWBVLVKUBUCWKWEVOECDUDUEUFUGWJDBFZWIVSTZJZIZWHWIVKVSUHWOWN
      WHWLWNUIWNWEWBVRTZIZEUJZJWQJZESWHWMWREWIVRUKUNWQEULWSWGEWEWPJRWPWFRWSWGWE
      WPUMWEWPUOWPWDWFWPWAWBVKHZIWDWBVQVKUPWTWCWAWBVKUQURUSVEUTVAVBVCVDVFVGDVTV
      LVHVI $.

    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4, part of 3 => 4.
       (Contributed by NM, 25-Mar-2004.) $)
    kmlem5 $p |- ( ( w e. x /\ z =/= w ) ->
          ( ( z \ U. ( x \ { z } ) ) i^i ( w \ U. ( x \ { w } ) ) ) = (/) ) $=
      ( wel cv wne wa csn cdif cuni cin c0 wss wceq difss sslin kmlem4 syl5sseq
      ax-mp ss0b sylib ) CADBEZCEZFGZUBAEZUBHIJIZUCUEUCHIJZIZKZLMUILNUDUFUCKZUI
      LUHUCMUIUJMUCUGOUHUCUFPSABCQRUITUA $.

    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4, part of 4 => 1.
       (Contributed by NM, 26-Mar-2004.) $)
    kmlem6 $p |- ( ( A. z e. x z =/= (/) /\
           A. z e. x A. w e. x ( ph -> A = (/) ) ) ->
           A. z e. x E. v e. z A. w e. x ( ph -> -. v e. A ) ) $=
      ( cv c0 wne wral wceq wi wa wcel wn wrex r19.26 wex wal ralimi n0 alrimiv
      biimpi ne0i necon2bi imim2i 19.29r df-rex sylibr syl2an sylbir ) CGZHIZCB
      GZJAFHKZLZDUNJZCUNJMUMUQMZCUNJAEGZFNZOZLZDUNJZEULPZCUNJUMUQCUNQURVDCUNUMU
      SULNZERZVCESZVDUQUMVFEULUAUCUQVCEUPVBDUNUOVAAUTFHFUSUDUEUFTUBVFVGMVEVCMER
      VDVEVCEUGVCEULUHUIUJTUK $.

    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4, part of 4 => 1.
       (Contributed by NM, 26-Mar-2004.) $)
    kmlem7 $p |- ( ( A. z e. x z =/= (/) /\
           A. z e. x A. w e. x ( z =/= w -> ( z i^i w ) = (/) ) ) ->
       -. E. z e. x A. v e. z E. w e. x ( z =/= w /\ v e. ( z i^i w ) ) ) $=
      ( cv c0 wne wral cin wceq wi wa wcel wn wrex kmlem6 ralinexa rexbii bitri
      rexnal ralbii ralnex sylib ) BEZFGBAEZHUDCEZGZUDUFIZFJKCUEHBUEHLUGDEUHMZN
      KCUEHZDUDOZBUEHZUGUILCUEOZDUDHZBUEONZUGABCDUHPULUNNZBUEHUOUKUPBUEUKUMNZDU
      DOUPUJUQDUDUGUICUEQRUMDUDTSUAUNBUEUBSUC $.

    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4 1 <=> 4.  (Contributed by
       NM, 4-Apr-2004.) $)
    kmlem8 $p |- ( ( -. E. z e. u A. w e. z ps -> E. y A. z e. u ( z =/= (/)
                  -> E! w w e. ( z i^i y ) ) ) <-> ( E. z e. u A. w e. z ps \/
                 E. y ( -. y e. u /\ A. z e. u E! w w e. ( z i^i y ) ) ) ) $=
      ( cv wral wrex wn c0 wne cin wi wex wel wa wb sylbir ralimi syl wo ralnex
      wcel weu df-rex rexnal bitr3i exsimpl n0 sylibr biimt ralbi anbi2d exbidv
      kmlem2 syl6rbbr pm5.74i pm4.64 bitri ) ADCFZGZCEFZHZIZUTJKZDFUTBFLUCDUDZM
      ZCVBGZBNZMVDBEOIZVFCVBGZPZBNZMVCVMUAVDVIVMVDVECVBGZVIVMQVDVAIZCVBGVNVACVB
      UBVOVECVBVODCOZAIZPDNZVEVRVQDUTHVOVQDUTUEADUTUFUGVRVPDNVEVPVQDUHDUTUIUJRS
      RVNVMVJVHPZBNVIVNVLVSBVNVKVHVJVNVFVGQZCVBGVKVHQVEVTCVBVEVFUKSVFVGCVBULTUM
      UNVEEBCDUOUPTUQVCVMURUS $.
  $}

  ${
    $d x y z w v u t h g $.  $d y z w v h g A $.  $d h ph $.
    kmlem9.1 $e |- A = { u | E. t e. x u = ( t \ U. ( x \ { t } ) ) } $.
    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4, part of 3 => 4.
       (Contributed by NM, 25-Mar-2004.) $)
    kmlem9 $p |- A. z e. A A. w e. A ( z =/= w -> ( z i^i w ) = (/) ) $=
      ( vh cv wne cin c0 wceq wi wcel csn cdif wrex weq wa cuni vex eqeq1 elab2
      rexbidv difeq1 difeq2d unieqd eqtrd eqeq2d cbvrexv reeanv syl5ibr necon3d
      sneq bitri eqeq12 kmlem5 ineq12 eqeq1d expd syl5d adantl rexlimivv sylbir
      com12 syl2anb rgen2a ) BIZCIZJZVIVJKZLMZNZBCFVIFOVIEIZAIZVOPZQZUAZQZMZEVP
      RZVJHIZVPWCPZQZUAZQZMZHVPRZVNVJFOZDIZVTMZEVPRZWBDVIFBUBDBSWLWAEVPWKVIVTUC
      UEGUDWJVJVTMZEVPRZWIWMWODVJFCUBDCSWLWNEVPWKVJVTUCUEGUDWNWHEHVPEHSZVTWGVJW
      PVTWCVSQWGVOWCVSUFWPVSWFWCWPVRWEWPVQWDVPVOWCUOUGUHUGUIZUJUKUPWBWITWAWHTZH
      VPREVPRVNWAWHEHVPVPULWRVNEHVPVPWCVPOZWRVNNVOVPOWRWSVNWRVKVOWCJZWSVMWRVOWC
      VIVJWPBCSWRVTWGMWQVIVTVJWGUQUMUNWRWSWTVMWSWTTVMWRVTWGKZLMAEHURWRVLXALVIVT
      VJWGUSUTUMVAVBVFVCVDVEVGVH $.

    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4, part of 3 => 4.
       (Contributed by NM, 25-Mar-2004.) $)
    kmlem10 $p |- ( A. h ( A. z e. h A. w e. h
                              ( z =/= w -> ( z i^i w ) = (/) ) ->
                         E. y A. z e. h ph ) -> E. y A. z e. A ph ) $=
      ( cv wne cin c0 wceq wi wral wex cdif raleq wal csn cuni wrex cab cvv vex
      kmlem9 abrexex eqeltri raleqbi1dv exbidv imbi12d spcv mpi ) DKZEKZLUPUQMN
      OPZEIKZQZDUSQZADUSQZCRZPZIUAUREHQZDHQZADHQZCRZBDEFGHJUHVDVFVHPIHHFKGKZBKZ
      VIUBSUCSZOGVJUDFUEUFJGFVJVKBUGUIUJUSHOZVAVFVCVHUTVEDUSHUREUSHTUKVLVBVGCAD
      USHTULUMUNUO $.

    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4, part of 3 => 4.
       (Contributed by NM, 26-Mar-2004.) $)
    kmlem11 $p |- ( z e. x -> ( z i^i U. A ) = ( z \ U. ( x \ { z } ) ) ) $=
      ( cv wcel cuni cin csn cdif ciun wceq vex eqtr4i c0 cun difeq2d syl5eq wa
      cab unieqi difexi dfiun2 ineq2i iunin2 undif2 snssi ssequn1 sylib syl5req
      wrex wss iuneq1d iunxun difeq1 sneq unieqd eqtrd ineq2d iunxsn eqtri wral
      uneq1i wne eldifsni kmlem4 ex syl5 ralrimiv iuneq2 syl iun0 syl6eq uneq2d
      incom un0 indif ) BGZAGZHZVTEIZJZDWAVTDGZWAWEKZLZIZLZJZMZVTWAVTKZLZIZLZWD
      VTDWAWIMZJWKWCWPVTWCCGWINDWAUMCUBZIWPEWQFUCDCWAWIWEWHDOUDUEPUFDWAVTWIUGPW
      BWKVTWOJZQRZWOWBWKDWLWMRZWJMZWSWBDWAWTWJWBWTWLWARZWAWLWAUHWBWLWAUNXBWANVT
      WAUIWLWAUJUKULUOWBXAWRDWMWJMZRZWSXADWLWJMZXCRXDDWLWMWJUPXEWRXCDVTWJWRBOWE
      VTNZWIWOVTXFWIVTWHLWOWEVTWHUQXFWHWNVTXFWGWMXFWFWLWAWEVTURSUSSUTVAVBVEVCWB
      XCQWRWBXCDWMQMZQWBWJQNZDWMVDXCXGNWBXHDWMWEWMHWEVTVFZWBXHWEWAVTVGWBXIXHWBX
      IUAWJWIVTJQVTWIVQADBVHTVIVJVKDWMWJQVLVMDWMVNVOVPTUTWSWRWOWRVRVTWNVSVCVOT
      $.

    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4, part of 3 => 4.
       (Contributed by NM, 27-Mar-2004.) $)
    kmlem12 $p |- ( A. z e. x ( z \ U. ( x \ { z } ) ) =/= (/) ->
                    ( A. z e. A ( z =/= (/) -> E! v v e. ( z i^i y ) ) ->
        A. z e. x ( z =/= (/) -> E! v v e. ( z i^i ( y i^i U. A ) ) ) ) ) $=
      ( cv cdif cuni c0 wne wral cin wcel weu wi wceq eleq2d csn difeq1 difeq2d
      sneq unieqd eqtrd neeq1d cbvralv ineq1d eubidv imbi12i in12 incom kmlem11
      eqtri syl5req ax-1 syl6bi ralimia imim2i sylbi wrex cab wal raleqi df-ral
      eqeq1 rexbidv elab imbi1i r19.23v bitr4i albii ralcom4 difexi neeq1 ineq1
      vex imbi12d ceqsalv ralbii 3bitr2i 3bitri ralim syl11 ) FIZAIZWFUAZJZKZJZ
      LMZFWGNZDIZWKBIZOZPZDQZFWGNZRZCIZWGXAUAZJZKZJZLMZCWGNZXALMZWNXAWOGKZOOZPZ
      DQZRZCWGNZXHWNXAWOOZPZDQZRZCGNZWTXGWNXEWOOZPZDQZCWGNZRXGXNRWMXGWSYCWLXFFC
      WGWFXASZWKXELYDWKXAWJJXEWFXAWJUBYDWJXDXAYDWIXCYDWHXBWGWFXAUDUCUEUCUFZUGUH
      WRYBFCWGYDWQYADYDWPXTWNYDWKXEWOYEUITUJUHUKYCXNXGYBXMCWGXAWGPZYBXLXMYFYAXK
      DYFXTXJWNYFXJXAXIOZWOOZXTXJWOYGOYHXAWOXIULWOYGUMUOYFYGXEWOACEFGHUNUIUPTUJ
      XLXHUQURUSUTVAXSWLWRRZFWGNZWTXSXRCEIZWKSZFWGVBZEVCZNXAYNPZXRRZCVDZYJXRCGY
      NHVEXRCYNVFYQXAWKSZXRRZFWGNZCVDYSCVDZFWGNYJYPYTCYPYRFWGVBZXRRYTYOUUBXRYMU
      UBEXACVRYKXASYLYRFWGYKXAWKVGVHVIVJYRXRFWGVKVLVMYSFCWGVNUUAYIFWGXRYICWKWFW
      JFVRVOYRXHWLXQWRXAWKLVPYRXPWQDYRXOWPWNXAWKWOVQTUJVSVTWAWBWCWLWRFWGWDVAWE
      $.

    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4 1 <=> 4.  (Contributed by
       NM, 5-Apr-2004.) $)
    kmlem13 $p |- ( A. x ( ( A. z e. x z =/= (/) /\
           A. z e. x A. w e. x ( z =/= w -> ( z i^i w ) = (/) ) ) ->
         E. y A. z e. x E! v v e. ( z i^i y ) ) <->
          A. x ( -. E. z e. x A. v e. z E. w e. x
                     ( z =/= w /\ v e. ( z i^i w ) ) ->
               E. y A. z e. x ( z =/= (/) -> E! v v e. ( z i^i y ) ) ) ) $=
      ( vh vg cv wral cin wceq wi wcel wex wal wrex c0 wne wa weu wn raleqbi1dv
      kmlem1 raleq exbidv imbi12d cbvalv kmlem10 ineq2 eleq2d eubidv imbi2d csn
      cbvexv cdif cuni kmlem3 ralinexa rexbii rexnal 3bitri ralbii ralnex bitri
      ralbidv kmlem12 vex inex1 spcev syl6 exlimdv com12 syl5bir alrimiv kmlem7
      sylbi syl imim1i wb biimt ralimi ralbi adantr pm5.74i sylibr alimi impbii
      ) CLZUAUBZCALZMZWLDLZUBZWLWPNZUAOPZDWNMZCWNMZUCZELZWLBLZNZQZEUDZCWNMZBRZP
      ZASZWQXCWRQZUCDWNTZEWLMZCWNTUEZWMXGPZCWNMZBRZPZASZXKXAXRPZASZXTWSXGABCDUG
      YBWSDJLZMZCYCMZXPCYCMZBRZPZJSZXTYAYHAJWNYCOZXAYEXRYGWTYDCWNYCWSDWNYCUHUFY
      JXQYFBXPCWNYCUHUIUJUKYIXSAYIXPCHMZBRZXSXPABCDFGHJIULYLWMXCWLKLZNZQZEUDZPZ
      CHMZKRZXSYKYRBKXDYMOZXPYQCHYTXGYPWMYTXFYOEYTXEYNXCXDYMWLUMUNUOUPVIURXOWLW
      NWLUQUSUTUSUAUBZCWNMZYSXRUUBXNUEZCWNMXOUUAUUCCWNUUAWQXLUEPDWNMZEWLTXMUEZE
      WLTUUCACDEVAUUDUUEEWLWQXLDWNVBVCXMEWLVDVEVFXNCWNVGVHUUBYSXRUUBYRXRKUUBYRW
      MXCWLYMHUTZNZNZQZEUDZPZCWNMZXRAKCEFGHIVJXQUULBUUGYMUUFKVKVLXDUUGOZXPUUKCW
      NUUMXGUUJWMUUMXFUUIEUUMXEUUHXCXDUUGWLUMUNUOUPVIVMVNVOVPVQVTWAVRVTWAXSXJAX
      SXBXRPXJXBXOXRACDEVSWBXBXIXRWOXIXRWCXAWOXHXQBWOXGXPWCZCWNMXHXQWCWMUUNCWNW
      MXGWDWEXGXPCWNWFWAUIWGWHWIWJWK $.
  $}

  ${
    $d x y z w v u $.  $d u ph $.
    kmlem14.1 $e |- ( ph <->
                ( z e. y -> ( ( v e. x /\ y =/= v ) /\ z e. v ) ) ) $.
    kmlem14.2 $e |- ( ps <-> ( z e. x -> ( ( v e. z /\ v e. y ) /\
                ( ( u e. z /\ u e. y ) -> u = v ) ) ) ) $.
    kmlem14.3 $e |- ( ch <->
                A. z e. x E! v v e. ( z i^i y ) ) $.
    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4, part of 5 <=> 4.
       (Contributed by NM, 4-Apr-2004.) $)
    kmlem14 $p |- ( E. z e. x A. v e. z E. w e. x
                   ( z =/= w /\ v e. ( z i^i w ) ) <->
                 E. y A. z E. v A. u ( y e. x /\ ph ) ) $=
      ( cv wcel wa wrex wel wex wal wi wne cin wral neeq1 ineq1 anbi12d rexbidv
      eleq2d raleqbi1dv cbvrexv df-rex eleq1 anbi2d cbvralv df-ral bitri anbi2i
      weq 19.28v neeq2 ineq2 imbi2i 19.37v bitr4i 19.42v 19.3v elin baibr anass
      syl6bb pm5.74i bitr2i exbii 3bitr2i albii 3bitri ) FMZGMZUAZHMZVQVRUBZNZO
      ZGDMZPZHVQUCZFWDPEMZVRUAZVTWGVRUBZNZOZGWDPZHWGUCZEWDPEDQZWMOZERWNAOZISZHR
      ZFSZERWFWMFEWDWEWLHVQWGFEURZWCWKGWDWTVSWHWBWJVQWGVRUDWTWAWIVTVQWGVRUEUHUF
      UGUIUJWMEWDUKWOWSEWOWNFEQZWHVQWINZOZGWDPZTZFSZOWNXEOZFSWSWMXFWNWMXDFWGUCX
      FWLXDHFWGHFURZWKXCGWDXHWJXBWHVTVQWIULUMUGUNXDFWGUOUPUQWNXEFUSXGWRFXGWNXAH
      DQZWGVTUAZVQWGVTUBZNZOZOZTZHRZOWNXOOZHRWRXEXPWNXEXAXNHRZTXPXDXRXAXDXMHWDP
      XRXCXMGHWDGHURZWHXJXBXLVRVTWGUTXSWIXKVQVRVTWGVAUHUFUJXMHWDUKUPVBXAXNHVCVD
      UQWNXOHVEXQWQHWQWPXQWPIVFAXOWNAXAXIXJOZFHQZOZTXOJXAYBXNXAYBXTXLOXNXAYAXLX
      TXLXAYAVQWGVTVGVHUMXIXJXLVIVJVKUPUQVLVMVNVOVNVMVP $.

    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4, part of 5 <=> 4.
       (Contributed by NM, 4-Apr-2004.) $)
    kmlem15 $p |- ( ( -. y e. x /\ ch ) <->
                     A. z E. v A. u ( -. y e. x /\ ps ) ) $=
      ( wel wa wal wex cv wi bitri albii 19.28v wn cin wcel weu weq wsb nfv eu1
      wral elin clelsb3 equcom imbi12i bitr4i exbii ralbii df-ral 19.21v 19.37v
      anbi12i 3bitri anbi2i 19.42v bitr2i 3bitr2i ) EDLUAZCMVFBHNZGOZFNZMVFVHMZ
      FNVFBMHNZGOZFNCVIVFCGPZFPZEPZUBZUCZGUDZFDPZUIGFLGELMZHFLHELMZHGUEZQZMZHNZ
      GOZFVSUIZVIKVRWFFVSVRVQVQGHUFZGHUEZQZHNZMZGOWFVQGHVQHUGUHWLWEGWLVTWCHNZMW
      EVQVTWKWMVMVNVOUJWJWCHWHWAWIWBWHHPZVPUCWAHGVPUKWNVNVOUJRGHULUMSUTVTWCHTUN
      UORUPWGFDLZWFQZFNVIWFFVSUQVHWPFVHWOWEQZGOWPVGWQGVGWOWDQZHNWQBWRHJSWOWDHUR
      RUOWOWEGUSRSUNVAVBVFVHFTVJVLFVLVFVGMZGOVJVKWSGVFBHTUOVFVGGVCVDSVE $.

    $( Lemma for 5-quantifier AC of Kurt Maes, Th. 4 5 <=> 4.  (Contributed by
       NM, 4-Apr-2004.) $)
    kmlem16 $p |- ( ( E. z e. x A. v e. z E. w e. x
       ( z =/= w /\ v e. ( z i^i w ) ) \/ E. y ( -. y e. x /\ ch ) ) <->
       E. y A. z E. v A. u ( ( y e. x /\ ph ) \/ ( -. y e. x /\ ps ) ) ) $=
      ( cv wcel wa wn wex wo wal exbii wne wrex wral kmlem14 kmlem15 orbi12i wb
      cin 19.43 pm3.24 simpl sps exlimivv anim12i mto 19.33b ax-mp bitr2i albii
      exlimiv bitr3i 3bitr2i ) FMZGMZUAHMVCVDUHNOGDMZUBHVCUCFVEUBZEMVENZPZCOZEQ
      ZRVGAOZISZHQZFSZEQZVHBOZISZHQZFSZEQZRVNVSRZEQVKVPRISZHQZFSZEQVFVOVJVTABCD
      EFGHIJKLUDVIVSEABCDEFHIJKLUETUFVNVSEUIWAWDEWAVMVRRZFSZWDVMFQZVRFQZOZPWFWA
      UGWIVGVHOZVGUJZWGVGWHVHVLVGFHVKVGIVGAUKZULUMVQVHFHVPVHIVHBUKZULUMUNUOVMVR
      FUPUQWEWCFWCVLVQRZHQWEWBWNHVKIQZVPIQZOZPWBWNUGWQWJWKWOVGWPVHVKVGIWLUTVPVH
      IWMUTUNUOVKVPIUPUQTVLVQHUIURUSVATVB $.
  $}

  ${
    $d x y z w v u t h $.
    $( Equivalence of the Axiom of Choice and Maes' AC ~ ackm .  The proof
       consists of lemmas ~ kmlem1 through ~ kmlem16 and this final theorem.
       AC is not used for the proof.  Note: bypassing the first step (i.e.
       replacing ~ dfac5 with ~ biid ) establishes the AC equivalence shown by
       Maes' writeup.  The left-hand-side AC shown here was chosen because it
       is shorter to display.  (Contributed by NM, 13-Apr-2004.)  (Revised by
       Mario Carneiro, 17-May-2015.) $)
    dfackm $p |- ( CHOICE <->
      A. x E. y A. z E. v A. u (
       ( y e. x /\ ( z e. y -> ( ( v e. x /\ -. y = v ) /\ z e. v ) ) ) \/
           ( -. y e. x /\ ( z e. x -> ( ( v e. z /\ v e. y ) /\
               ( ( u e. z /\ u e. y ) -> u = v ) ) ) ) ) ) $=
      ( vw vt vh cv wne wral wceq wi wa wex wal wel wn wrex bitri wac c0 cin wo
      wcel weu dfac5 csn cdif cuni cab kmlem13 kmlem8 albii df-ne bicomi anbi2i
      eqid anbi1i imbi2i biid kmlem16 ) UACIZUBJZCAIZKVCFIZJZVCVFUCZUBLMFVEKCVE
      KNDIZVCBIZUCUEDUFZCVEKZBOMAPZBAQZCBQZDAQZVJVILRZNZCDQZNZMZNVNRZCAQDCQDBQN
      ECQEBQNEIVILMNMZNUDEPDOCPBOZAPZABCFDUGVMVGVIVHUENFVESZDVCKCVESZWBVLNBOUDZ
      APZWEVMWGRVDVKMCVEKBOMZAPWIABCFDGHGIHIZVEWKUHUIUJUILHVESGUKZWLURULWJWHAWF
      BCDAUMUNTWHWDAWAWCVLABCFDEVTVPVJVIJZNZVSNVOVRWNVSVQWMVPWMVQVJVIUOUPUQUSUT
      WCVAVLVAVBUNTT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cardinal number arithmetic
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c +c $. $( Cardinal number addition $)

  $( Extend class definition to include cardinal number addition. $)
  ccda $a class +c $.

  ${
    $d x y $.
    $( Define cardinal number addition.  Definition of cardinal sum in
       [Mendelson] p. 258.  See ~ cdaval for its value and a description.
       (Contributed by NM, 24-Sep-2004.) $)
    df-cda $a |- +c = ( x e. _V , y e. _V |->
                   ( ( x X. { (/) } ) u. ( y X. { 1o } ) ) ) $.

    $( Cardinal number addition is a function.  (Contributed by Mario Carneiro,
       28-Apr-2015.) $)
    cdafn $p |- +c Fn ( _V X. _V ) $=
      ( vx vy cvv cv c0 csn cxp c1o cun ccda df-cda vex snex xpex unex fnmpt2i
      ) ABCCADZEFZGZBDZHFZGZIJABKSUBQRALEMNTUABLHMNOP $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Value of cardinal addition.  Definition of cardinal sum in [Mendelson]
       p. 258.  For cardinal arithmetic, we follow Mendelson.  Rather than
       defining operations restricted to cardinal numbers, we use this disjoint
       union operation for addition, while Cartesian product and set
       exponentiation stand in for cardinal multiplication and exponentiation.
       Equinumerosity and dominance serve the roles of equality and ordering.
       If we wanted to, we could easily convert our theorems to actual cardinal
       number operations via ~ carden , ~ carddom , and ~ cardsdom .  The
       advantage of Mendelson's approach is that we can directly use many
       equinumerosity theorems that we already have available.  (Contributed by
       NM, 24-Sep-2004.)  (Revised by Mario Carneiro, 15-Sep-2013.) $)
    cdaval $p |- ( ( A e. V /\ B e. W ) -> ( A +c B ) =
                    ( ( A X. { (/) } ) u. ( B X. { 1o } ) ) ) $=
      ( vx vy wcel cvv ccda csn cxp c1o cun wceq elex wa xpexg mpan2 cv xpeq1
      co c0 p0ex snex anim12i unexb uneq1d uneq2d df-cda ovmpt2g mpd3an3 syl2an
      sylib ) ACGAHGZBHGZABIUAAUBJZKZBLJZKZMZNZBDGACOBDOUNUOUTHGZVAUNUOPUQHGZUS
      HGZPVBUNVCUOVDUNUPHGVCUCAUPHHQRUOURHGVDLUDBURHHQRUEUQUSUFUMEFABHHESZUPKZF
      SZURKZMUTIUQVHMHVEANVFUQVHVEAUPTUGVGBNVHUSUQVGBURTUHEFUIUJUKUL $.
  $}

  $( Cardinal addition dominates union.  (Contributed by NM, 28-Sep-2004.) $)
  uncdadom $p |- ( ( A e. V /\ B e. W ) -> ( A u. B ) ~<_ ( A +c B ) ) $=
    ( wcel wa cun csn cxp c1o cdom wbr cen cvv xpsneng mpan2 ensym endom 3syl
    c0 ccda co 0ex con0 1on cin wceq xp01disj undom syl2an cdaval breqtrrd ) AC
    EZBDEZFABGZATHIZBJHIZGZABUAUBKUMAUPKLZBUQKLZUOURKLZUNUMUPAMLZAUPMLUSUMTNEVB
    UCATCNOPUPAQAUPRSUNUQBMLZBUQMLUTUNJUDEVCUEBJDUDOPUQBQBUQRSUSUTFUPUQUFTUGVAA
    BUHAUPBUQUIPUJABCDUKUL $.

  $( Cardinal addition is equinumerous to union for disjoint sets.
     (Contributed by NM, 5-Apr-2007.) $)
  cdaun $p |- ( ( A e. V /\ B e. W /\ ( A i^i B ) = (/) ) ->
    ( A +c B ) ~~ ( A u. B ) ) $=
    ( wcel cin c0 wceq w3a csn cxp c1o cun cen wbr wa cvv xpsneng mpan2 con0 co
    ccda cdaval 3adant3 0ex 1on anim12i xp01disj jctl unen syl2an 3impa eqbrtrd
    ) ACEZBDEZABFGHZIABUBUAZAGJKZBLJKZMZABMZNUNUOUQUTHUPABCDUCUDUNUOUPUTVANOZUN
    UOPURANOZUSBNOZPURUSFGHZUPPVBUPUNVCUOVDUNGQEVCUEAGCQRSUOLTEVDUFBLDTRSUGUPVE
    ABUHUIURAUSBUJUKULUM $.

  $( Cardinal addition of equinumerous sets.  Exercise 4.56(b) of [Mendelson]
     p. 258.  (Contributed by NM, 28-Sep-2004.)  (Revised by Mario Carneiro,
     29-Apr-2015.) $)
  cdaen $p |- ( ( A ~~ B /\ C ~~ D ) -> ( A +c C ) ~~ ( B +c D ) ) $=
    ( cen wbr wa c0 csn cxp c1o cvv wcel relen xpsneng sylancl entr con0 syl2an
    wceq cun ccda brrelexi 0ex brrelex2i ensymd mpdan syl2anc 1on xp01disj unen
    co cin mpanr12 cdaval 3brtr4d ) ABEFZCDEFZGAHIZJZCKIZJZUAZBUSJZDVAJZUAZACUB
    ULZBDUBULZEUQUTVDEFZVBVEEFZVCVFEFZURUQUTAEFZAVDEFZVIUQALMZHLMZVLABENUCZUDAH
    LLOPUQBVDEFVMUQVDBUQBLMZVOVDBEFABENUEZUDBHLLOPUFABVDQUGUTAVDQUHURVBCEFZCVEE
    FZVJURCLMZKRMZVSCDENUCZUICKLROPURDVEEFVTURVEDURDLMZWBVEDEFCDENUEZUIDKLROPUF
    CDVEQUGVBCVEQUHVIVJGUTVBUMHTVDVEUMHTVKACUJBDUJUTVDVBVEUKUNSUQVNWAVGVCTURVPW
    CACLLUOSUQVQWDVHVFTURVRWEBDLLUOSUP $.

  $( Cardinal addition is equinumerous to union for disjoint sets.
     (Contributed by Mario Carneiro, 29-Apr-2015.) $)
  cdaenun $p |- ( ( A ~~ B /\ C ~~ D /\ ( B i^i D ) = (/) ) ->
    ( A +c C ) ~~ ( B u. D ) ) $=
    ( cen wbr cin c0 wceq w3a ccda co cun cdaen 3adant3 wcel relen brrelex2i id
    cvv cdaun syl3an entr syl2anc ) ABEFZCDEFZBDGHIZJACKLZBDKLZEFZUIBDMZEFZUHUK
    EFUEUFUJUGABCDNOUEBTPUFDTPUGUGULABEQRCDEQRUGSBDTTUAUBUHUIUKUCUD $.

  $( Cardinal addition with cardinal one (which is the same as ordinal one).
     Used in proof of Theorem 6J of [Enderton] p. 143.  (Contributed by NM,
     28-Sep-2004.)  (Revised by Mario Carneiro, 29-Apr-2015.) $)
  cda1en $p |- ( ( A e. V /\ -. A e. A ) -> ( A +c 1o ) ~~ suc A ) $=
    ( wcel wn wa c1o ccda co csn cun csuc cen wbr cin wceq enrefg adantr ensn1g
    c0 ensymd simpr disjsn sylibr cdaenun syl3anc df-suc syl6breqr ) ABCZAACDZE
    ZAFGHZAAIZJZAKLUJAALMZFULLMZAULNSOZUKUMLMUHUNUIABPQUHUOUIUHULFABRTQUJUIUPUH
    UIUAAAUBUCAAFULUDUEAUFUG $.

  $( Adding and subtracting one gives back the original set.  Similar to
     ~ pncan for cardinalities.  (Contributed by Mario Carneiro,
     18-May-2015.) $)
  cda1dif $p |- ( B e. ( A +c 1o ) -> ( ( A +c 1o ) \ { B } ) ~~ A ) $=
    ( c1o ccda co wcel csn cdif c0 cen wbr cvv cxp 0ex con0 1on mpbir wceq wrel
    sylancl cop ovexd cun wss df1o2 xpeq1i elexi xpsn eqtri ssun2 eqsstr3i opex
    id snss cdm relxp wfn cdafn fndm ax-mp releqi ovrcl simpld cdaval syl5eleqr
    difsnen syl3anc difeq1d xp01disj disj3 mpbi difeq2i 3eqtr2i syl6eqr xpsneng
    cin difun2 eqbrtrd entr syl2anc ) BACDEZFZWABGHZWAICUAZGZHZJKZWFAJKWCAJKWBW
    ALFWBWDWAFWGWBACDUBWBUMWBWDAIGZMZCCGZMZUCZWAWDWLFWEWLUDWEWKWLWKWHWJMWECWHWJ
    UEUFICNCOPUGUHUIZWKWIUJUKWDWLICULUNQWBALFZCOFWAWLRWBWNCLFACBDDUOZSLLMZSLLUP
    WOWPDWPUQWOWPRURWPDUSUTVAQVBVCZPACLOVDTZVEBWDLWAVFVGWBWFWIAJWBWFWLWEHZWIWBW
    AWLWEWRVHWIWIWKHZWLWKHWSWIWKVPIRWIWTRACVIWIWKVJVKWIWKVQWKWEWLWMVLVMVNWBWNIL
    FWIAJKWQNAILLVOTVRWCWFAVSVT $.

  $( 1+1=2 for cardinal number addition, derived from ~ pm54.43 as promised.
     Theorem *110.643 of _Principia Mathematica_, vol.  II, p. 86, which adds
     the remark, "The above proposition is occasionally useful."  Whitehead and
     Russell define cardinal addition on collections of all sets equinumerous
     to 1 and 2 (which for us are proper classes unless we restrict them as in
     ~ karden ), but after applying definitions, our theorem is equivalent.
     The comment for ~ cdaval explains why we use ` ~~ ` instead of =.  See
     ~ pm110.643ALT for a shorter proof that doesn't use ~ pm54.43 .
     (Contributed by NM, 5-Apr-2007.)  (Proof modification is discouraged.) $)
  pm110.643 $p |- ( 1o +c 1o ) ~~ 2o $=
    ( c1o ccda co c0 csn cxp cun c2o cen con0 wcel wceq 1on cdaval cin xp01disj
    mp2an wbr wb xpsnen elexi 0ex pm54.43 mpbi eqbrtri ) AABCZADEFZAAEFZGZHIAJK
    ZUJUFUILMMAAJJNQUGUHODLZUIHIRZAAPUGAIRUHAIRUKULSADAJMUAZUBTAAUMUMTUGUHUCQUD
    UE $.

  $( Alternate proof of ~ pm110.643 .  (Contributed by Mario Carneiro,
     29-Apr-2015.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  pm110.643ALT $p |- ( 1o +c 1o ) ~~ 2o $=
    ( c1o ccda co csuc c2o cen con0 wcel wn wbr word onordi ordirr ax-mp cda1en
    1on mp2an df-2o breqtrri ) AABCZADZEFAGHAAHIZTUAFJPAKUBAPLAMNAGOQRS $.

  $( Cardinal addition with cardinal zero (the empty set).  Part (a1) of proof
     of Theorem 6J of [Enderton] p. 143.  (Contributed by NM, 27-Sep-2004.)
     (Revised by Mario Carneiro, 29-Apr-2015.) $)
  cda0en $p |- ( A e. V -> ( A +c (/) ) ~~ A ) $=
    ( wcel c0 ccda cun cen cvv cin wceq wbr 0ex in0 cdaun mp3an23 un0 syl6breq
    co ) ABCZADERZADFZAGSDHCADIDJTUAGKLAMADBHNOAPQ $.

  $( Two times a cardinal number.  Exercise 4.56(g) of [Mendelson] p. 258.
     (Contributed by NM, 27-Sep-2004.)  (Revised by Mario Carneiro,
     29-Apr-2015.) $)
  xp2cda $p |- ( A e. V -> ( A X. 2o ) = ( A +c A ) ) $=
    ( wcel ccda co csn cxp c1o cun c2o wceq cdaval anidms cpr df2o3 df-pr eqtri
    c0 xpeq2i xpundi syl6reqr ) ABCZAADEZARFZGAHFZGIZAJGZUBUCUFKAABBLMUGAUDUEIZ
    GUFJUHAJRHNUHORHPQSAUDUETQUA $.

  $( Commutative law for cardinal addition.  Exercise 4.56(c) of [Mendelson]
     p. 258.  (Contributed by NM, 24-Sep-2004.)  (Revised by Mario Carneiro,
     29-Apr-2015.) $)
  cdacomen $p |- ( A +c B ) ~~ ( B +c A ) $=
    ( cvv wcel wa ccda co cen wbr c1o csn cxp cun con0 xpsneng mpan2 ensym wceq
    c0 0ex 1on cin incom eqtri cdaenun mp3an3 syl2an cdaval ancoms uncom syl6eq
    xp01disj breqtrrd wn enref a1i wfn cdm cdafn fndm ax-mp ndmov ancom 3brtr4d
    sylnbi pm2.61i ) ACDZBCDZEZABFGZBAFGZHIVIVJAJKLZBSKLZMZVKHVGVLAHIZVMBHIZVJV
    NHIZVHVGJNDVOUAAJCNOPVHSCDVPTBSCCOPVOAVLHIZBVMHIZVQVPVLAQVMBQVRVSVLVMUBZSRV
    QVTVMVLUBSVLVMUCBAULUDAVLBVMUEUFUGUGVIVKVMVLMZVNVHVGVKWARBACCUHUIVMVLUJUKUM
    VIUNZSSVJVKHSSHIWBSTUOUPABCFFCCLZUQFURWCRUSWCFUTVAZVBVIVHVGEVKSRVGVHVCBACFW
    DVBVEVDVF $.

  $( Associative law for cardinal addition.  Exercise 4.56(c) of [Mendelson]
     p. 258.  (Contributed by NM, 26-Sep-2004.)  (Revised by Mario Carneiro,
     29-Apr-2015.) $)
  cdaassen $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
    ( ( A +c B ) +c C ) ~~ ( A +c ( B +c C ) ) ) $=
    ( wcel ccda co c0 cxp c1o cun cen wbr cin wceq cvv xpsneng sylancl w3a con0
    csn simp1 0ex ensymd simp2 snex xpexg 1on entr syl2anc xp01disj a1i cdaenun
    syl3anc simp3 indir xpeq1i xpindir 0xp 3eqtr3i uneq12i un0 3eqtri wa cdaval
    mpan2 xpeq1d xpundir syl6eq uneq2d unass syl6eqr sylan9eq 3impb breqtrrd
    ovex ) ADGZBEGZCFGZUAZABHIZCHIZAJUCZKZBWEKZLUCZKZMZCWHKZWHKZMZABCHIZHIZNWBW
    CWJNOZCWLNOWJWLPZJQZWDWMNOWBAWFNOBWINOWFWIPJQZWPWBWFAWBVSJRGZWFANOVSVTWAUDU
    EAJDRSTUFWBWIBWBWIWGNOZWGBNOZWIBNOWBWGRGZLUBGZXAWBVTWERGXCVSVTWAUGZJUHBWEER
    UITUJWGLRUBSTWBVTWTXBXEUEBJERSTWIWGBUKULUFWSWBAWGUMUNAWFBWIUOUPWBWLCWBWLWKN
    OZWKCNOZWLCNOWBWKRGZXDXFWBWAWHRGXHVSVTWAUQZLUHCWHFRUITUJWKLRUBSTWBWAXDXGXIU
    JCLFUBSTWLWKCUKULUFWRWBWQWFWLPZWIWLPZMJJMJWFWIWLURXJJXKJAWKUMWGWKPZWHKJWHKX
    KJXLJWHBCUMUSWGWKWHUTWHVAVBVCJVDVEUNWCWJCWLUOUPVSVTWAWOWMQVSVTWAVFZWOWFWNWH
    KZMZWMVSWNRGWOXOQBCHVRAWNDRVGVHXMXOWFWIWLMZMWMXMXNXPWFXMXNWGWKMZWHKXPXMWNXQ
    WHBCEFVGVIWGWKWHVJVKVLWFWIWLVMVNVOVPVQ $.

  $( Cardinal multiplication distributes over cardinal addition.  Theorem 6I(3)
     of [Enderton] p. 142.  (Contributed by NM, 26-Sep-2004.)  (Revised by
     Mario Carneiro, 29-Apr-2015.) $)
  xpcdaen $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
    ( A X. ( B +c C ) ) ~~ ( ( A X. B ) +c ( A X. C ) ) ) $=
    ( wcel cxp ccda co c0 csn c1o cun cen wbr cin wceq cvv ensymd w3a simp2 0ex
    enrefg 3ad2ant1 xpsneng sylancl xpen syl2anc con0 simp3 1on xp01disj xpeq2i
    xpindi xp0 3eqtr3i a1i cdaenun syl3anc cdaval xpeq2d xpundi syl6eq breqtrrd
    3adant1 ) ADGZBEGZCFGZUAZABHZACHZIJZABCIJZHZVJVMABKLHZHZACMLHZHZNZVOOVJVKVQ
    OPZVLVSOPZVQVSQZKRZVMVTOPVJAAOPZBVPOPWAVGVHWEVIADUDUEZVJVPBVJVHKSGVPBOPVGVH
    VIUBUCBKESUFUGTAABVPUHUIVJWECVROPWBWFVJVRCVJVIMUJGVRCOPVGVHVIUKULCMFUJUFUGT
    AACVRUHUIWDVJAVPVRQZHAKHWCKWGKABCUMUNAVPVRUOAUPUQURVKVQVLVSUSUTVJVOAVPVRNZH
    VTVJVNWHAVHVIVNWHRVGBCEFVAVFVBAVPVRVCVDVET $.

  $( Sum of exponents law for cardinal arithmetic.  Theorem 6I(4) of [Enderton]
     p. 142.  (Contributed by NM, 27-Sep-2004.)  (Revised by Mario Carneiro,
     29-Apr-2015.) $)
  mapcdaen $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
    ( A ^m ( B +c C ) ) ~~ ( ( A ^m B ) X. ( A ^m C ) ) ) $=
    ( wcel co cmap c0 csn cxp c1o cen wbr wceq cvv snex sylancl syl2anc w3a cun
    ccda cdaval 3adant1 oveq2d cin simp2 xpexg simp3 simp1 xp01disj a1i mapunen
    syl31anc eqbrtrd enrefg syl 0ex xpsneng mapen con0 1on xpen entr ) ADGZBEGZ
    CFGZUAZABCUCHZIHZABJKZLZIHZACMKZLZIHZLZNOVRABIHZACIHZLZNOZVKWANOVIVKAVMVPUB
    ZIHZVRNVIVJWCAIVGVHVJWCPVFBCEFUDUEUFVIVMQGZVPQGZVFVMVPUGJPZWDVRNOVIVGVLQGWE
    VFVGVHUHZJRBVLEQUISVIVHVOQGWFVFVGVHUJZMRCVOFQUISVFVGVHUKZWGVIBCULUMVMVPAQQD
    UNUOUPVIVNVSNOZVQVTNOZWBVIAANOZVMBNOZWKVIVFWMWJADUQURZVIVGJQGWNWHUSBJEQUTSA
    AVMBVATVIWMVPCNOZWLWOVIVHMVBGWPWIVCCMFVBUTSAAVPCVATVNVSVQVTVDTVKVRWAVET $.

  $( Sum of exponents law for cardinal arithmetic.  (Contributed by Mario
     Carneiro, 15-May-2015.) $)
  pwcdaen $p |- ( ( A e. V /\ B e. W ) ->
    ~P ( A +c B ) ~~ ( ~P A X. ~P B ) ) $=
    ( wcel wa ccda cpw c2o cmap cen wbr cxp ovex pw2en con0 2on mapcdaen pw2eng
    co mp3an1 wb xpen syl2an enen2 syl mpbird entr sylancr ) ACEZBDEZFZABGTZHZI
    UMJTZKLUOAHZBHZMZKLZUNURKLUMABGNOULUSUOIAJTZIBJTZMZKLZIPEUJUKVCQIABPCDRUAUL
    URVBKLZUSVCUBUJUPUTKLUQVAKLVDUKACSBDSUPUTUQVAUCUDURVBUOUEUFUGUNUOURUHUI $.

  $( Ordering law for cardinal addition.  Exercise 4.56(f) of [Mendelson]
     p. 258.  (Contributed by NM, 28-Sep-2004.)  (Revised by Mario Carneiro,
     29-Apr-2015.) $)
  cdadom1 $p |- ( A ~<_ B -> ( A +c C ) ~<_ ( B +c C ) ) $=
    ( cdom wbr cvv wcel ccda co wa csn cxp c1o cun snex mpan2 syl wceq reldom
    c0 xpdom1 xpexg domrefg cin xp01disj undom syl2an brrelexi cdaval brrelex2i
    sylan 3brtr4d wn simpr intnand wfn cdm cdafn fndm ax-mp ndmov ovex syl6eqbr
    0dom pm2.61dan ) ABDEZCFGZACHIZBCHIZDEVFVGJATKZLZCMKZLZNZBVJLZVMNZVHVIDVFVK
    VODEZVMVMDEZVNVPDEZVGABVJTOUAVGVMFGZVRVGVLFGVTMOCVLFFUBPVMFUCQVQVRJVOVMUDTR
    VSBCUEVKVOVMVMUFPUGVFAFGZVGVHVNRABDSUHACFFUIUKVFBFGVGVIVPRABDSUJBCFFUIUKULV
    FVGUMZJZVHTVIDWCWAVGJUMVHTRWCVGWAVFWBUNUOACFHHFFLZUPHUQWDRURWDHUSUTVAQVIBCH
    VBVDVCVE $.

  $( Ordering law for cardinal addition.  Theorem 6L(a) of [Enderton] p. 149.
     (Contributed by NM, 28-Sep-2004.)  (Revised by Mario Carneiro,
     29-Apr-2015.) $)
  cdadom2 $p |- ( A ~<_ B -> ( C +c A ) ~<_ ( C +c B ) ) $=
    ( cdom wbr ccda co cdadom1 cen cdacomen domen1 domen2 sylan9bb mp2an sylib
    wb ) ABDEACFGZBCFGZDEZCAFGZCBFGZDEZABCHQTIEZRUAIEZSUBPACJBCJUCSTRDEUDUBQTRK
    RUATLMNO $.

  $( A set is dominated by its cardinal sum with another.  (Contributed by NM,
     28-Sep-2004.)  (Revised by Mario Carneiro, 29-Apr-2015.) $)
  cdadom3 $p |- ( ( A e. V /\ B e. W ) -> A ~<_ ( A +c B ) ) $=
    ( wcel wa cun cdom wbr ccda co cvv unexg ssun1 ssdomg mpisyl uncdadom domtr
    wss syl2anc ) ACEBDEFZAABGZHIZUBABJKZHIAUDHIUAUBLEAUBSUCABCDMABNAUBLOPABCDQ
    AUBUDRT $.

  $( Cartesian product dominates disjoint union for sets with cardinality
     greater than 1.  Similar to Proposition 10.36 of [TakeutiZaring] p. 93.
     (Contributed by Mario Carneiro, 18-May-2015.) $)
  cdaxpdom $p |- ( ( 1o ~< A /\ 1o ~< B ) -> ( A +c B ) ~<_ ( A X. B ) ) $=
    ( c1o csdm wbr c0 csn cxp cdom cen wcel relsdom brrelex2i syl2an wb xpsneng
    cvv sylancl sdomen2 syl wa ccda co cun wceq cdaval 0ex ibir unxpdom eqbrtrd
    con0 1on xpen domentr syl2anc ) CADEZCBDEZUAZABUBUCZAFGHZBCGHZHZIEVBABHZJEZ
    USVCIEURUSUTVAUDZVBIUPAQKZBQKZUSVEUEUQCADLMZCBDLMZABQQUFNUPCUTDEZCVADEZVEVB
    IEUQUPVJUPUTAJEZVJUPOUPVFFQKVLVHUGAFQQPRZUTACSTUHUQVKUQVABJEZVKUQOUQVGCUKKV
    NVIULBCQUKPRZVABCSTUHUTVAUINUJUPVLVNVDUQVMVOUTAVABUMNUSVBVCUNUO $.

  $( The cardinal sum of two finite sets is finite.  (Contributed by NM,
     22-Oct-2004.) $)
  cdafi $p |- ( ( A ~< _om /\ B ~< _om ) -> ( A +c B ) ~< _om ) $=
    ( com csdm wbr c0 csn cxp c1o cvv wcel relsdom brrelexi syl2an con0 xpsneng
    cen wb sylancl sdomen1 wa ccda cun wceq cdaval 0elon syl ibir unfi2 eqbrtrd
    co 1on ) ACDEZBCDEZUAABUBUKZAFGHZBIGHZUCZCDUMAJKZBJKZUOURUDUNACDLMZBCDLMZAB
    JJUENUMUPCDEZUQCDEZURCDEUNUMVCUMUPAQEZVCUMRUMUSFOKVEVAUFAFJOPSUPACTUGUHUNVD
    UNUQBQEZVDUNRUNUTIOKVFVBULBIJOPSUQBCTUGUHUPUQUINUJ $.

  $( Any partition of omega into two pieces (which may be disjoint) contains an
     infinite subset.  (Contributed by Mario Carneiro, 11-Feb-2013.) $)
  cdainflem $p |- ( ( A u. B ) ~~ _om -> ( A ~~ _om \/ B ~~ _om ) ) $=
    ( com cen wbr csdm wa wn wo cdom cvv wss ssdomg mpisyl domentr anim1i bren2
    mpancom sylibr ex unfi2 sdomnen con2i ianor wcel relen brrelexi ssun1 ssun2
    cun syl orim12d syl5bi mpd ) ABUJZCDEZACFEZBCFEZGZHZACDEZBCDEZIZUSUPUSUOCFE
    UPHABUAUOCUBUKUCUTUQHZURHZIUPVCUQURUDUPVDVAVEVBUPVDVAUPVDGACJEZVDGVAUPVFVDA
    UOJEZUPVFUPUOKUEZAUOLVGUOCDUFUGZABUHAUOKMNAUOCORPACQSTUPVEVBUPVEGBCJEZVEGVB
    UPVJVEBUOJEZUPVJUPVHBUOLVKVIBAUIBUOKMNBUOCORPBCQSTULUMUN $.

  ${
    $d A x $.
    $( A set is infinite iff the cardinal sum with itself is infinite.
       (Contributed by NM, 22-Oct-2004.)  (Revised by Mario Carneiro,
       29-Apr-2015.) $)
    cdainf $p |- ( _om ~<_ A <-> _om ~<_ ( A +c A ) ) $=
      ( vx com cdom wbr ccda cvv wcel syl2anc c0 wa cxp cen wss csn cin c1o cun
      wceq mpan2 co reldom brrelex2i cdadom3 domtr mpdan wne infn0 wfn cdm fndm
      cdafn ax-mp ndmov necon1ai simpld syl cv wex ovex domen indi simprr simpl
      cdaval sseqtrd df-ss sylib syl5eqr ensym ad2antrl eqbrtrd ex wo cdainflem
      snex xpexg inss2 ssdomg mpisyl xpsneng domentr domen1 syl5ibcom con0 jaod
      0ex 1on syl5 syld exlimdv syl5bi mpcom impbii ) CADEZCAAFUAZDEZWOAWPDEZWQ
      WOAGHZWSWRCADUBUCZWTAAGGUDICAWPUEUFWSWQWOWQWPJUGZWSWPUHXAWSWSWSWSKWPJAAGF
      FGGLZUIFUJXBSULXBFUKUMUNUOUPUQWQCBURZMEZXCWPNZKZBUSWSWOBCWPAAFUTVAWSXFWOB
      WSXFXCAJOZLZPZXCAQOZLZPZRZCMEZWOWSXFXNWSXFKZXMXCCMXOXMXCXHXKRZPZXCXCXHXKV
      BXOXCXPNXQXCSXOXCWPXPWSXDXEVCXOWSWSWPXPSWSXFVDZXRAAGGVEIVFXCXPVGVHVIXDXCC
      MEWSXECXCVJVKVLVMXNXICMEZXLCMEZVNWSWOXIXLVOWSXSWOXTWSXIADEZXSWOWSXIXHDEZX
      HAMEZYAWSXHGHZXIXHNYBWSXGGHYDJVPAXGGGVQTXCXHVRXIXHGVSVTWSJGHYCWGAJGGWATXI
      XHAWBIXICAWCWDWSXLADEZXTWOWSXLXKDEZXKAMEZYEWSXKGHZXLXKNYFWSXJGHYHQVPAXJGG
      VQTXCXKVRXLXKGVSVTWSQWEHYGWHAQGWEWATXLXKAWBIXLCAWCWDWFWIWJWKWLWMWN $.
  $}

  $( An infinite set is equinumerous to itself added with one.  (Contributed by
     Mario Carneiro, 15-May-2015.) $)
  infcda1 $p |- ( _om ~<_ A -> ( A +c 1o ) ~~ A ) $=
    ( com cdom wbr c1o ccda csn cxp cen cop cdif cvv wcel con0 wceq 1on sylancl
    co c0 0ex cun reldom brrelex2i cdaval df1o2 xpeq1i xpsn eqtr2i a1i difeq12d
    elexi difun2 xp01disj disj3 mpbi eqtr4i syl6eq cdadom3 domtr mpdan infdifsn
    cin syl eqbrtrrd ensymd xpsneng entr syl2anc ) BACDZAEFRZASGZHZIDVLAIDZVJAI
    DVIVLVJVIVJSEJZGZKZVLVJIVIVPVLEEGZHZUAZVRKZVLVIVJVSVOVRVIALMZENMZVJVSOBACUB
    UCZPAELNUDQVOVROVIVRVKVQHVOEVKVQUEUFSETENPUKUGUHUIUJVTVLVRKZVLVLVRULVLVRVBS
    OVLWDOAEUMVLVRUNUOUPUQVIBVJCDZVPVJIDVIAVJCDZWEVIWAWBWFWCPAELNURQBAVJUSUTVJV
    NVAVCVDVEVIWASLMVMWCTASLLVFQVJVLAVGVH $.

  $( The sum of a powerset with itself is equipotent to the successor powerset.
     (Contributed by Mario Carneiro, 15-May-2015.) $)
  pwcda1 $p |- ( A e. V -> ( ~P A +c ~P A ) ~~ ~P ( A +c 1o ) ) $=
    ( wcel c1o ccda co cpw cxp cen con0 wbr 1on pwcdaen mpan2 c2o csn cpr pwpw0
    c0 cvv df1o2 pweqi df2o2 3eqtr4i xpeq2i wceq pwexg xp2cda syl syl5eq ensymd
    breqtrd ) ABCZADEFGZAGZUOEFZUMUNUODGZHZUPIUMDJCUNURIKLADBJMNUMURUOOHZUPUQOU
    OSPZGSUTQUQORDUTUAUBUCUDUEUMUOTCUSUPUFABUGUOTUHUIUJULUK $.

  $( If the natural numbers inject into ` A ` , then ` ~P A ` is idempotent
     under cardinal sum.  (Contributed by Mario Carneiro, 15-May-2015.) $)
  pwcdaidm $p |- ( _om ~<_ A -> ( ~P A +c ~P A ) ~~ ~P A ) $=
    ( com cdom wbr cpw ccda co c1o cen cvv wcel reldom brrelex2i pwcda1 infcda1
    syl pwen entr syl2anc ) BACDZAEZUAFGZAHFGZEZIDZUDUAIDZUBUAIDTAJKUEBACLMAJNP
    TUCAIDUFAOUCAQPUBUDUARS $.

  $( If ` A ` is idempotent under cardinal sum and ` B ` is dominated by the
     power set of ` A ` , then so is the cardinal sum of ` A ` and ` B ` .
     (Contributed by Mario Carneiro, 15-May-2015.) $)
  cdalepw $p |- ( ( ( A +c A ) ~~ A /\ B ~<_ ~P A ) -> ( A +c B ) ~<_ ~P A ) $=
    ( ccda co cen wbr cpw cdom wa c1o cvv wcel csdm adantr 3syl cdadom2 syl2anc
    c0 domtr syl oveq1 breq1d wne relen brrelex2i canth2g sdomdom simpr cdadom1
    wceq syl2an pwcda1 domentr wb 0sdomg biimpar 0sdom1dom sylib pwdom cdacomen
    simpll reldom brrelexi adantl cda0en domen1 mpbird endomtr sylancr pm2.61ne
    ) AACDZAEFZBAGZHFZIZABCDZVMHFZRBCDZVMHFZARARUJVPVRVMHARBCUAUBVOARUCZIZVPAJC
    DZGZHFZWCVMHFZVQVOWDVTVOVPVMVMCDZHFZWFWCEFZWDVOAVMHFZVNWGVOAKLZAVMMFWIVLWJV
    NVKAEUDUENZAKUFAVMUGOVLVNUHZWIVPVMBCDZHFWMWFHFWGVNAVMBUIBVMVMPVPWMWFSUKQVOW
    JWHWKAKULTVPWFWCUMQNWAWBAHFZWEWAWBVKHFZVLWNWAJAHFZWOWARAMFZWPVOWQVTVOWJWQVT
    UNWKAKUOTUPAUQURJAAPTVLVNVTVAWBVKAUMQWBAUSTVPWCVMSQVOVRBRCDZEFWRVMHFZVSRBUT
    VOWSVNWLVOBKLZWRBEFWSVNUNVNWTVLBVMHVBVCVDBKVEWRBVMVFOVGVRWRVMVHVIVJ $.

  ${
    $d A x $.  $d B x $.
    $( The cardinal and ordinal sums are always equinumerous.  (Contributed by
       Mario Carneiro, 6-Feb-2013.)  (Revised by Mario Carneiro,
       30-May-2015.) $)
    onacda $p |- ( ( A e. On /\ B e. On ) -> ( A +o B ) ~~ ( A +c B ) ) $=
      ( vx con0 wcel wa ccda co coa cmpt crn cun cen wbr cin wceq enrefg adantr
      cv c0 simpr oacomf1olem ancoms simpld f1oeng syl2anc incom simprd cdaenun
      wf1o eqid syl5eq syl3anc oarec breqtrrd ensymd ) ADEZBDEZFZABGHZABIHZUSUT
      ACBACSIHJZKZLZVAMUSAAMNZBVCMNZAVCOZTPUTVDMNUQVEURADQRUSURBVCVBUJZVFUQURUA
      USVHVCAOZTPZURUQVHVJFCBAVBVBUKUBUCZUDBVCDVBUEUFUSVGVITAVCUGUSVHVJVKUHULAA
      BVCUIUMCABUNUOUP $.
  $}

  $( The cardinal sum is equinumerous to an ordinal sum of the cardinals.
     (Contributed by Mario Carneiro, 6-Feb-2013.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  cardacda $p |- ( ( A e. dom card /\ B e. dom card ) ->
       ( A +c B ) ~~ ( ( card ` A ) +o ( card ` B ) ) ) $=
    ( ccrd cdm wcel wa cfv coa co ccda cen wbr con0 cardon onacda mp2an cardid2
    cdaen syl2an entr sylancr ensymd ) ACDZEZBUCEZFZACGZBCGZHIZABJIZUFUIUGUHJIZ
    KLZUKUJKLZUIUJKLUGMEUHMEULANBNUGUHOPUDUGAKLUHBKLUMUEAQBQUGAUHBRSUIUKUJTUAUB
    $.

  $( The cardinal sum of two numerable sets is numerable.  (Contributed by
     Mario Carneiro, 29-Apr-2015.) $)
  cdanum $p |- ( ( A e. dom card /\ B e. dom card ) ->
                ( A +c B ) e. dom card ) $=
    ( ccrd cdm wcel wa cfv coa co con0 ccda cen wbr cardon oacl cardacda ensymd
    mp2an isnumi sylancr ) ACDZEBUAEFZACGZBCGZHIZJEZUEABKIZLMUGUAEUCJEUDJEUFANB
    NUCUDORUBUGUEABPQUEUGST $.

  $( The union of two numerable sets is numerable.  (Contributed by Mario
     Carneiro, 29-Apr-2015.) $)
  unnum $p |- ( ( A e. dom card /\ B e. dom card ) ->
                ( A u. B ) e. dom card ) $=
    ( ccrd cdm wcel wa ccda co cun cdom wbr cdanum uncdadom numdom syl2anc ) AC
    DZEBPEFABGHZPEABIZQJKRPEABLABPPMQRNO $.

  $( The cardinal and ordinal sums of finite ordinals are equal.  (Contributed
     by Paul Chapman, 11-Apr-2009.)  (Revised by Mario Carneiro,
     6-Feb-2013.) $)
  nnacda $p |- ( ( A e. _om /\ B e. _om ) ->
                 ( card ` ( A +c B ) ) = ( A +o B ) ) $=
    ( com wcel wa coa co ccrd cfv ccda cen wbr wceq con0 onacda syl2an carden2b
    nnon syl nnacl cardnn eqtr3d ) ACDZBCDZEZABFGZHIZABJGZHIZUFUEUFUHKLZUGUIMUC
    ANDBNDUJUDARBRABOPUFUHQSUEUFCDUGUFMABTUFUASUB $.

  $( The cardinality of the union of disjoint, finite sets is the ordinal sum
     of their cardinalities.  (Contributed by Paul Chapman, 5-Jun-2009.)
     (Proof shortened by Mario Carneiro, 28-Apr-2015.) $)
  ficardun $p |- ( ( A e. Fin /\ B e. Fin /\ ( A i^i B ) = (/) )
             -> ( card ` ( A u. B ) ) = ( ( card ` A ) +o ( card ` B ) ) ) $=
    ( cfn wcel cin c0 wceq w3a cfv coa co cen wbr finnum syl2an 3adant3 syl com
    ccrd ficardom cun ccda cardacda ensymd cdaun entr syl2anc carden2b wa nnacl
    cdm cardnn eqtr3d ) ACDZBCDZABEFGZHZASIZBSIZJKZSIZABUAZSIZUTUQUTVBLMZVAVCGU
    QUTABUBKZLMVEVBLMVDUQVEUTUNUOVEUTLMZUPUNASUKZDBVGDVFUOANBNABUCOPUDABCCUEUTV
    EVBUFUGUTVBUHQUNUOVAUTGZUPUNURRDZUSRDZVHUOATBTVIVJUIUTRDVHURUSUJUTULQOPUM
    $.

  $( The cardinality of the union of finite sets is at most the ordinal sum of
     their cardinalities.  (Contributed by Mario Carneiro, 5-Feb-2013.) $)
  ficardun2 $p |- ( ( A e. Fin /\ B e. Fin )
      -> ( card ` ( A u. B ) ) C_ ( ( card ` A ) +o ( card ` B ) ) ) $=
    ( cfn wcel cun ccrd cfv coa wss cdom wbr ccda finnum syl2an syl2anc syl com
    wa co ficardom cen uncdadom cardacda domentr wb unfi con0 nnacl nnon onenon
    cdm 3syl carddom2 mpbird wceq cardnn sseqtrd ) ACDZBCDZRZABEZFGZAFGZBFGZHSZ
    FGZVEUTVBVFIZVAVEJKZUTVAABLSZJKVIVEUAKZVHABCCUBURAFUKZDBVKDVJUSAMBMABUCNVAV
    IVEUDOUTVAVKDZVEVKDZVGVHUEUTVACDVLABUFVAMPUTVEQDZVEUGDVMURVCQDVDQDVNUSATBTV
    CVDUHNZVEUIVEUJULVAVEUMOUNUTVNVFVEUOVOVEUPPUQ $.

  ${
    $d B k m n $.
    $( Lemma for ~ domtriom .  This is the equinumerosity version of the
       algebraic identity ` sum_ k e. n ( 2 ^ k ) = ( 2 ^ n ) - 1 ` .
       (Contributed by Mario Carneiro, 7-Feb-2013.) $)
    pwsdompw $p |- ( ( n e. _om /\ A. k e. suc n ( B ` k ) ~~ ~P k ) ->
         U_ k e. n ( B ` k ) ~< ( B ` n ) ) $=
      ( com wcel cfv cpw cen wbr csdm wi c0 fveq2 breq12d syl adantl co syl2anc
      wceq ccrd vm cv csuc wral ciun suceq raleqdv iuneq1 imbi12d 0iun 0ex pweq
      sucid rspcv ax-mp canth2 ensym sdomentr sylancr syl5eqbr wa ssralv pm2.27
      wss sssucid ccda vex elelsuc mp2b cdaen c1o pwcda1 wn nnord ordirr cda1en
      word mpdan pwen entr syl2an sucex ensymd adantr ancoms nnfi pwfi isfinite
      cfn bitri sylib ensdomtr sylibr cdom cun iunsuc fvex iunex uncdadom mp2an
      cvv eqbrtri coa cdm sdomtr sylan2b finnum cardacda ficardom cardid2 simpl
      3syl syl21anc con0 wb cardon onenon cardsdomel cardidm eleq2i w3a nnaordr
      sylan biimpa syl31anc nnacl cardnn eleqtrrd cardsdomelir domsdomtr expcom
      sylsyld syld ex com23 finds1 imp ) CUBZDEBUBZAFZYSGZHIZBYRUCZUDZBYRYTUEZY
      RAFZJIZUUDUUGKUUBBLUCZUDZBLYTUEZLAFZJIZKUUBBUAUBZUCZUDZBUUMYTUEZUUMAFZJIZ
      KZUUBBUUNUCZUDZBUUNYTUEZUUNAFZJIZKCUAYRLSZUUDUUIUUGUULUVEUUBBUUCUUHYRLUFU
      GUVEUUEUUJUUFUUKJBYRLYTUHYRLAMNUIYRUUMSZUUDUUOUUGUURUVFUUBBUUCUUNYRUUMUFU
      GUVFUUEUUPUUFUUQJBYRUUMYTUHYRUUMAMNUIYRUUNSZUUDUVAUUGUVDUVGUUBBUUCUUTYRUU
      NUFUGUVGUUEUVBUUFUVCJBYRUUNYTUHYRUUNAMNUIUUIUUJLUUKJBYTUJUUIUUKLGZHIZLUUK
      JIZLUUHEUUIUVIKLUKUMUUBUVIBLUUHYSLSYTUUKUUAUVHHYSLAMYSLULNUNUOUVILUVHJIUV
      HUUKHIUVJLUKUPUUKUVHUQLUVHUUKURUSOUTUUMDEZUVAUUSUVDUVKUVAUUSUVDKUVKUVAVAZ
      UUSUURUVDUVAUUSUURKZUVKUVAUUOUVMUUNUUTVDUVAUUOKUUNVEUUBBUUNUUTVBUOUUOUURV
      COPUVLUUQUUQVFQZUVCHIZUURUVBUVNJIZUVDUVAUVKUVOUVAUVKVAZUVNUUNGZHIZUVRUVCH
      IZUVOUVAUVNUUMGZUWAVFQZHIZUWBUVRHIZUVSUVKUVAUUQUWAHIZUWEUWCUUMUUNEUUMUUTE
      UVAUWEKUUMUAVGZUMUUMUUNVHUUBUWEBUUMUUTYSUUMSYTUUQUUAUWAHYSUUMAMZYSUUMULNU
      NVIZUWHUUQUWAUUQUWAVJRUVKUWBUUMVKVFQZGZHIUWJUVRHIZUWDUUMDVLUVKUWIUUNHIZUW
      KUVKUUMUUMEVMZUWLUVKUUMVQUWMUUMVNUUMVOOUUMDVPVRUWIUUNVSOUWBUWJUVRVTRUVNUW
      BUVRVTWAUVAUVTUVKUVAUVCUVRUUNUUTEUVAUVCUVRHIZKUUNUUMUWFWBUMUUBUWNBUUNUUTY
      SUUNSYTUVCUUAUVRHYSUUNAMYSUUNULNUNUOWCWDUVNUVRUVCVTRWEUVLUUQWIEZUURUVPKUV
      AUVKUWOUVQUUQDJIZUWOUVAUWEUWADJIZUWPUVKUWHUVKUUMWIEZUWQUUMWFUWRUWAWIEUWQU
      UMWGUWAWHWJWKUUQUWADWLWAUUQWHZWMWEUURUWOUVPUURUWOVAZUVBUUPUUQVFQZWNIUXAUV
      NJIZUVPUVBUUPUUQWOZUXAWNBUUMYTUUQUWFUWGWPUUPXAEUUQXAEUXCUXAWNIBUUMYTUWFYS
      AWQWRUUMAWQUUPUUQXAXAWSWTXBUWTUXAUUQTFZUXDXCQZJIZUXEUVNHIZUXBUWTUXAUUPTFZ
      UXDXCQZHIZUXIUXEJIZUXFUWTUUPTXDZEZUUQUXLEZUXJUWTUUPWIEZUXMUWTUUPDJIZUXOUW
      OUURUWPUXPUWSUUPUUQDXEXFUUPWHWMZUUPXGZOUWOUXNUURUUQXGZPUUPUUQXHRUWTUXIUXE
      TFZEUXKUWTUXIUXEUXTUWTUXHDEZUXDDEZUYBUXHUXDEZUXIUXEEZUWTUXOUYAUXQUUPXIOUW
      OUYBUURUUQXIZPZUYFUWTUXHUXDJIZUYCUWTUXHUUPHIZUURUUQUXDHIZUYGUWTUXOUXMUYHU
      XQUXRUUPXJXLUURUWOXKUWOUYIUURUWOUXNUXDUUQHIUYIUXSUUQXJUXDUUQUQXLPUYHUURVA
      UXHUUQJIUYIUYGUXHUUPUUQWLUXHUUQUXDURYCXMUYGUXHUXDTFZEZUYCUXHXNEUXDUXLEZUY
      GUYKXOUUPXPUXDXNEUYLUUQXPUXDXQUOUXHUXDXRWTUYJUXDUXHUUQXSXTWJWKUYAUYBUYBYA
      UYCUYDUXHUXDUXDYBYDYEUWOUXTUXESZUURUWOUXEDEZUYMUWOUYBUYBUYNUYEUYEUXDUXDYF
      RUXEYGOPYHUXIUXEYIOUXAUXIUXEWLRUWOUXGUURUWOUVNUXEUWOUXNUXNUVNUXEHIUXSUXSU
      UQUUQXHRWCPUXAUXEUVNURRUVBUXAUVNYJUSYKOUVPUVOUVDUVBUVNUVCURYKYLYMYNYOYPYQ
      $.
  $}

  $( The union of two countable sets is countable.  (Contributed by FL,
     25-Aug-2006.)  (Proof shortened by Mario Carneiro, 30-Apr-2015.) $)
  unctb $p |- ( ( A ~<_ _om /\ B ~<_ _om ) -> ( A u. B ) ~<_ _om ) $=
    ( com cdom wbr wa ccda co cvv wcel reldom brrelexi syl2an domtr cxp wss c2o
    omex ax-mp mp2an cun uncdadom cdadom1 cdadom2 cen xpex wceq word ordom 2onn
    xp2cda ordelss xpss2 eqsstr3i ssdomg mp2 xpomen domentr sylancl syl2anc ) A
    CDEZBCDEZFZABUAZABGHZDEZVECDEZVDCDEVAAIJBIJVFVBACDKLBCDKLABIIUBMVCVECCGHZDE
    ZVHCDEZVGVAVECBGHZDEVKVHDEVIVBACBUCBCCUDVEVKVHNMVHCCOZDEZVLCUEEVJVLIJVHVLPV
    MCCRRUFVHCQOZVLCIJVNVHUGRCIUKSQCPZVNVLPCUHQCJVOUIUJCQULTQCCUMSUNVHVLIUOUPUQ
    VHVLCURTVEVHCNUSVDVECNUT $.

  $( Absorption law for addition to an infinite cardinal.  (Contributed by NM,
     30-Sep-2004.)  (Revised by Mario Carneiro, 29-Apr-2015.) $)
  infcdaabs $p |- ( ( A e. dom card /\ _om ~<_ A /\ B ~<_ A ) ->
    ( A +c B ) ~~ A ) $=
    ( ccrd cdm wcel com cdom wbr w3a ccda co cen cxp c2o cdadom2 3ad2ant3 domtr
    wceq syl2anc cvv simp1 xp2cda syl breqtrrd csdm 2onn nnsdom sdomdom sylancr
    mp2b simp2 xpdom2g infxpidm2 3adant3 domentr reldom brrelexi cdadom3 sbth )
    ACDZEZFAGHZBAGHZIZABJKZAGHZAVEGHZVEALHVDVEAAMZGHZVHALHZVFVDVEANMZGHVKVHGHZV
    IVDVEAAJKZVKGVCVAVEVMGHVBBAAOPVDVAVKVMRVAVBVCUAZAUTUBUCUDVDVANAGHZVLVNVDNFG
    HZVBVONFENFUEHVPUFNUGNFUHUJVAVBVCUKNFAQUINAAUTULSVEVKVHQSVAVBVJVCAUMUNVEVHA
    UOSVDVABTEZVGVNVCVAVQVBBAGUPUQPABUTTURSVEAUSS $.

  $( An infinite set is equinumerous to its union with a smaller one.
     (Contributed by NM, 28-Sep-2004.)  (Revised by Mario Carneiro,
     29-Apr-2015.) $)
  infunabs $p |- ( ( A e. dom card /\ _om ~<_ A /\ B ~<_ A ) ->
    ( A u. B ) ~~ A ) $=
    ( ccrd cdm wcel com cdom wbr w3a cun ccda co simp1 reldom brrelexi 3ad2ant3
    cen cvv uncdadom syl2anc infcdaabs domentr unexg ssun1 ssdomg mpisyl sbth
    wss ) ACDZEZFAGHZBAGHZIZABJZAGHZAUNGHZUNAQHUMUNABKLZGHZUQAQHUOUMUJBREZURUJU
    KULMZULUJUSUKBAGNOPZABUIRSTABUAUNUQAUBTUMUNREZAUNUHUPUMUJUSVBUTVAABUIRUCTAB
    UDAUNRUEUFUNAUGT $.

  $( The sum of two cardinal numbers is their maximum, if one of them is
     infinite.  Proposition 10.41 of [TakeutiZaring] p. 95.  (Contributed by
     NM, 28-Sep-2004.)  (Revised by Mario Carneiro, 29-Apr-2015.) $)
  infcda $p |- ( ( A e. dom card /\ B e. dom card /\ _om ~<_ A ) ->
      ( A +c B ) ~~ ( A u. B ) ) $=
    ( ccrd cdm wcel com cdom wbr w3a co cun cen wss unnum 3adant3 ssdomg mpisyl
    ccda domentr syl2anc ssun2 cdadom2 syl cdacomen simp3 ssun1 domtr infcdaabs
    sylancl syl3anc uncdadom sbth ) ACDZEZBUMEZFAGHZIZABRJZABKZGHZUSURGHZURUSLH
    UQURUSARJZGHZVBUSLHZUTUQURAUSRJZGHZVEVBLHVCUQBUSGHZVFUQUSUMEZBUSMVGUNUOVHUP
    ABNOZBAUABUSUMPQBUSAUBUCAUSUDURVEVBSUIUQVHFUSGHZAUSGHZVDVIUQUPVKVJUNUOUPUEU
    QVHAUSMVKVIABUFAUSUMPQZFAUSUGTVLUSAUHUJURVBUSSTUNUOVAUPABUMUMUKOURUSULT $.

  $( The cardinality of an infinite set does not change after subtracting a
     strictly smaller one.  Example in [Enderton] p. 164.  (Contributed by NM,
     22-Oct-2004.)  (Revised by Mario Carneiro, 29-Apr-2015.) $)
  infdif $p |- ( ( A e. dom card /\ _om ~<_ A /\ B ~< A ) ->
      ( A \ B ) ~~ A ) $=
    ( wcel com cdom wbr csdm cen wss ssdomg mpisyl co cun sdomdom syl2anc domtr
    ccda wn syl wi ccrd cdm cdif simp1 difss 3ad2ant3 numdom unnum ssun1 undif1
    w3a ssnum sylancl uncdadom syl5eqbrr simp3 cdadom1 ex simp2 biimpri domrefg
    cdainf infcdaabs 3com23 3expia mpdan syl2im syld domen2 biimpcd sylcom mt2d
    domnsym syl56 wb domtri2 mpbird cdadom2 sylibr syl3anc domentr sbth ) AUAUB
    ZCZDAEFZBAGFZUKZABUCZAEFZAWHEFZWHAHFWGWDWHAIZWIWDWEWFUDZABUEZWHAWCJKWGAWHWH
    QLZEFZWNWHHFZWJWGAWHBQLZEFZWQWNEFZWOWGAABMZEFZWTWQEFWRWGWTWCCZAWTIXAWGWDBWC
    CZXBWLWGWDBAEFZXCWLWFWDXDWEBANUFABUGOZABUHOABUIAWTWCJKWGWTWHBMZWQEABUJWGWHW
    CCZXCXFWQEFWGWDWKXGWLWMAWHULUMZXEWHBWCWCUNOUOAWTWQPOZWGBWHEFZWSWGXJWHBGFZRZ
    WGXKWFWDWEWFUPXKWQBBQLZEFZWGABEFZWFRXKWHBEFXNWHBNWHBBUQSWGXNAXMEFZXOWGWRXNX
    PTXIWRXNXPAWQXMPURSWGXPXMBHFZXOWGXPDXMEFZXQWGWEXPXRTWDWEWFUSZWEXPXRDAXMPURS
    WGXCXRDBEFZXQXEXTXRBVBUTXCBBEFZXTXQTBWCVAXCYAXTXQXCXTYAXQBBVCVDVEVFVGVHXQXP
    XOXMBAVIVJVKVHABVMVNVLWGXCXGXJXLVOXEXHBWHVPOVQBWHWHVRSAWQWNPOZWGXGDWHEFZWHW
    HEFZWPXHWGDWNEFZYCWGWEWOYEXSYBDAWNPOWHVBVSWGXGYDXHWHWCVASWHWHVCVTAWNWHWAOWH
    AWBO $.

  $( Cardinality ordering for an infinite class difference.  (Contributed by
     NM, 24-Mar-2007.)  (Revised by Mario Carneiro, 29-Apr-2015.) $)
  infdif2 $p |- ( ( A e. dom card /\ B e. dom card /\ _om ~<_ A ) ->
      ( ( A \ B ) ~<_ B <-> A ~<_ B ) ) $=
    ( ccrd cdm wcel com cdom wbr w3a cdif wn wi domnsym cen simp3 infdif ensymd
    csdm sdomentr syl2anc nsyl3 3expia 3adant2 con2d wb domtri2 3adant3 sylibrd
    wss simp1 difss ssdomg mpisyl domtr ex syl impbid ) ACDZEZBUREZFAGHZIZABJZB
    GHZABGHZVBVDBARHZKZVEVBVFVDUSVAVFVDKZLUTUSVAVFVHVDBVCRHZUSVAVFIZVCBMVJVFAVC
    NHVIUSVAVFOVJVCAABPQBAVCSTUAUBUCUDUSUTVEVGUEVAABUFUGUHVBVCAGHZVEVDLVBUSVCAU
    IVKUSUTVAUJABUKVCAURULUMVKVEVDVCABUNUOUPUQ $.

  $( Dominance law for multiplication with an infinite cardinal.  (Contributed
     by NM, 26-Mar-2006.)  (Revised by Mario Carneiro, 29-Apr-2015.) $)
  infxpdom $p |- ( ( A e. dom card /\ _om ~<_ A /\ B ~<_ A ) ->
    ( A X. B ) ~<_ A ) $=
    ( ccrd cdm wcel com wbr w3a cxp cen xpdom2g 3adant2 3adant3 domentr syl2anc
    cdom infxpidm2 ) ACDZEZFAPGZBAPGZHABIZAAIZPGZUCAJGZUBAPGSUAUDTBAARKLSTUEUAA
    QMUBUCANO $.

  $( Absorption law for multiplication with an infinite cardinal.  (Contributed
     by NM, 30-Sep-2004.)  (Revised by Mario Carneiro, 29-Apr-2015.) $)
  infxpabs $p |- ( ( ( A e. dom card /\ _om ~<_ A ) /\
    ( B =/= (/) /\ B ~<_ A ) ) -> ( A X. B ) ~~ A ) $=
    ( ccrd cdm wcel com cdom wbr wa c0 wne cxp cen infxpdom 3expa simpll numdom
    adantrl ad2ant2rl simprl xpdom3 syl3anc sbth syl2anc ) ACDZEZFAGHZIZBJKZBAG
    HZIZIZABLZAGHZAUMGHZUMAMHUHUJUNUIUFUGUJUNABNORULUFBUEEZUIUOUFUGUKPUFUJUPUGU
    IABQSUHUIUJTABUEUEUAUBUMAUCUD $.

  $( The union of two sets that are strictly dominated by the infinite set
     ` X ` is also dominated by ` X ` .  This version of ~ infunsdom assumes
     additionally that ` A ` is the smaller of the two.  (Contributed by Mario
     Carneiro, 14-Dec-2013.)  (Revised by Mario Carneiro, 3-May-2015.) $)
  infunsdom1 $p |- ( ( ( X e. dom card /\ _om ~<_ X ) /\
    ( A ~<_ B /\ B ~< X ) ) -> ( A u. B ) ~< X ) $=
    ( ccrd cdm wcel com cdom wbr csdm cun simprl domsdomtr sylan unfi2 sylancom
    wa syl2anc cen adantr simpllr sdomdomtr wn con0 omelon onenon ax-mp sdomdom
    simpll ad2antll numdom domtri2 sylancr biimpar uncom simpr infunabs syl3anc
    wb syl5eqbr simplrr ensdomtr syldan pm2.61dan ) CDEZFZGCHIZQZABHIZBCJIZQZQZ
    BGJIZABKZCJIZVLVMQVNGJIZVGVOVLVMAGJIZVPVLVIVMVQVHVIVJLZABGMNABOPVFVGVKVMUAV
    NGCUBRVLVMUCZGBHIZVOVLVTVSVLGVEFZBVEFZVTVSUSGUDFWAUEGUFUGVLVFBCHIZWBVFVGVKU
    IVJWCVHVIBCUHUJCBUKRZGBULUMUNVLVTQZVNBSIVJVOWEVNBAKZBSABUOWEWBVTVIWFBSIVLWB
    VTWDTVLVTUPVLVIVTVRTBAUQURUTVHVIVJVTVAVNBCVBRVCVD $.

  $( The union of two sets that are strictly dominated by the infinite set
     ` X ` is also strictly dominated by ` X ` .  (Contributed by Mario
     Carneiro, 3-May-2015.) $)
  infunsdom $p |- ( ( ( X e. dom card /\ _om ~<_ X ) /\
    ( A ~< X /\ B ~< X ) ) -> ( A u. B ) ~< X ) $=
    ( ccrd cdm wcel com cdom wbr wa csdm cun sdomdom infunsdom1 anass1rs sylan2
    adantlrl wn numdom syl2anc ad2antll ad2antrl domtri2 biimpar uncom syl5eqbr
    wb simpll adantlrr syldan pm2.61dan ) CDEZFZGCHIZJZACKIZBCKIZJZJZABKIZABLZC
    KIZUTUSABHIZVBABMUOUQVCVBUPUOVCUQVBABCNOQPUSUTRZBAHIZVBUSVEVDUSBULFZAULFZVE
    VDUGUSUMBCHIZVFUMUNURUHZUQVHUOUPBCMUACBSTUSUMACHIZVGVIUPVJUOUQACMUBCASTBAUC
    TUDUOUPVEVBUQUOVEUPVBUOVEUPJJVABALCKABUEBACNUFOUIUJUK $.

  $( Absorption law for multiplication with an infinite cardinal.  Equivalent
     to Proposition 10.41 of [TakeutiZaring] p. 95.  (Contributed by NM,
     28-Sep-2004.)  (Revised by Mario Carneiro, 29-Apr-2015.) $)
  infxp $p |- ( ( ( A e. dom card /\ _om ~<_ A ) /\
    ( B e. dom card /\ B =/= (/) ) ) -> ( A X. B ) ~~ ( A u. B ) ) $=
    ( ccrd wcel com cdom wbr wa c0 wne cxp cun infxpabs infunabs adantrl ensymd
    cen entr syl2anc ad2ant2r cdm csdm sdomdom wi 3expa expr syl5 wn wb domtri2
    xpcomeng adantr simplrl simplr domtr sylan infn0 ad3antlr syl22anc syl5eqbr
    simpr uncom syl3anc ex sylbird pm2.61d ) ACUAZDZEAFGZHZBVGDZBIJZHZHZBAUBGZA
    BKZABLZQGZVOBAFGZVNVRBAUCVJVLVSVRUDVKVJVLVSVRVJVLVSHHZVPAQGAVQQGVRABMVTVQAV
    JVSVQAQGZVLVHVIVSWAABNUEOPVPAVQRSUFOUGVNVOUHZABFGZVRVHVKWCWBUIVIVLABUJTVNWC
    VRVNWCHZVPBAKZQGZWEVQQGZVRVNWFWCVHVKWFVIVLABVGVGUKTULWDWEBQGZBVQQGWGWDVKEBF
    GZAIJZWCWHVJVKVLWCUMZVNVIWCWIVHVIVMUNEABUOUPZVIWJVHVMWCAUQURVNWCVAZBAMUSWDV
    QBWDVQBALZBQABVBWDVKWIWCWNBQGWKWLWMBANVCUTPWEBVQRSVPWEVQRSVDVEVF $.

  $( A property of dominance over a powerset, and a main lemma for ~ gchac .
     Similar to Lemma 2.3 of [KanamoriPincus] p. 420.  (Contributed by Mario
     Carneiro, 15-May-2015.) $)
  pwcdadom $p |- ( ~P ( A +c A ) ~<_ ( A +c B ) -> ~P A ~<_ B ) $=
    ( ccda co cpw cdom wbr c1o csn cxp cen c0 cwdom wn cvv wcel xpsneng sylancl
    wceq syl canthwdom wi 0elpw n0ii dom0 mtbir wfn cdm cdafn fndm ax-mp breq2d
    wa ndmov mtbiri con4i simpld 0ex endom domwdom wdomtr expcom 4syl cun wo wb
    mtoi pwcdaen syl2anc domen1 ibi cdaval breqtrd unxpwdom ord mpd con0 simprd
    1on domentr ) AACDZEZABCDZFGZAEZBHIJZFGZWFBKGZWEBFGWDWEALIJZMGZNWGWDWJWEAMG
    ZAUAWDWIAKGZWIAFGWIAMGZWJWKUBWDAOPZLOPWLWDWNBOPZWNWOUMZWDWPNZWDWBLFGZWRWBLS
    LWBWAUCUDWBUEUFWQWCLWBFABOCCOOJZUGCUHWSSUIWSCUJUKUNULUOUPZUQZURALOOQRWIAUSW
    IAUTWJWMWKWEWIAVAVBVCVGWDWJWGWDWEWEJZWIWFVDZFGWJWGVEWDXBWCXCFWDXBWCFGZWDWBX
    BKGZWDXDVFWDWNWNXEXAXAAAOOVHVIWBXBWCVJTVKWDWPWCXCSWTABOOVLTVMWEWIWFVNTVOVPW
    DWOHVQPWHWDWNWOWTVRVSBHOVQQRWEWFBVTVI $.

  ${
    $d x y A $.
    $( Every infinite set has an equinumerous proper subset, proved without AC
       or Infinity.  Exercise 7 of [TakeutiZaring] p. 91.  See also
       ~ infpssALT .  (Contributed by NM, 23-Oct-2004.)  (Revised by Mario
       Carneiro, 30-Apr-2015.) $)
    infpss $p |- ( _om ~<_ A -> E. x ( x C. A /\ x ~~ A ) ) $=
      ( vy com cdom wbr cv wcel cen wa wex c0 wne infn0 n0 sylib csn cvv adantr
      wpss cdif reldom brrelex2i difexg syl simpr difsnpss infdifsn wceq psseq1
      jca breq1 anbi12d spcegv sylc exlimddv ) DBEFZCGZBHZAGZBTZUTBIFZJZAKZCUQB
      LMUSCKBNCBOPUQUSJZBURQZUAZRHZVGBTZVGBIFZJZVDUQVHUSUQBRHVHDBEUBUCBVFRUDUES
      VEVIVJVEUSVIUQUSUFURBUGPUQVJUSBURUHSUKVCVKAVGRUTVGUIVAVIVBVJUTVGBUJUTVGBI
      ULUMUNUOUP $.
  $}

  ${
    $d f x A $.  $d f x B $.
    $( An exponentiation law for infinite cardinals.  Similar to Lemma 6.2 of
       [Jech] p. 43.  Although this version of ~ infmap avoids the axiom of
       choice, it requires the powerset of an infinite set to be well-orderable
       and so is usually not applicable.  (Contributed by NM, 1-Oct-2004.)
       (Revised by Mario Carneiro, 30-Apr-2015.) $)
    infmap2 $p |- ( ( _om ~<_ A /\ B ~<_ A /\ ( A ^m B ) e. dom card ) ->
                      ( A ^m B ) ~~ { x | ( x C_ A /\ x ~~ B ) } ) $=
      ( vf com cdom wbr cmap wcel wss cen wa cab c0 wceq cvv reldom syl syl2anc
      c1o co ccrd cdm w3a cv oveq2 breq2 anbi2d abbidv breq12d wne cxp brrelexi
      simpl2 brrelex2i xpcomeng simpl3 mapdom3 syl3anc numdom infxpabs syl22anc
      simpr simpl1 entr ssenen relen abid2 elmapi fssxp wfun ffun fundmen ensym
      vex 3syl fdm breqtrd jca ss2abi eqsstr3i ssdomg mpisyl domentr cmpt mptex
      wf crn ovex rnex wrex wex wf1o ad2antll bren sylib f1of adantl simplrl wb
      fssd elmapd ad2antrr mpbird wfo f1ofo forn eqcomd ex eximdv df-rex sylibr
      mpd ss2abdv eqid rnmpt syl6sseqr mpsyl wfn wral rgenw fnmpt mp1i fodomnum
      dffn4 sylc domtr sbth 3ad2ant1 map0e 1onn elexi enref csn df-sn df1o2 en0
      anbi2i 0ss sseq1 mpbiri pm4.71ri bitr4i abbii 3eqtr4ri breqtrri syl6eqbr
      pm2.61ne ) EBFGZCBFGZBCHUAZUBUCZIZUDZUUKAUEZBJZUUOCKGZLZAMZKGZBNHUAZUUPUU
      ONKGZLZAMZKGCNCNOZUUKUVAUUSUVDKCNBHUFUVEUURUVCAUVEUUQUVBUUPCNUUOKUGUHUIUJ
      UUNCNUKZLZUUKUUSFGZUUSUUKFGZUUTUVGUUKUUOCBULZJZUUQLZAMZFGZUVMUUSKGZUVHUVG
      UVMPIZUUKUVMJUVNUVGUVOUVPUVGUVJBKGZUVOUVGUVJBCULZKGZUVRBKGZUVQUVGCPIZBPIZ
      UVSUVGUUJUWAUUIUUJUUMUVFUNZCBFQUMRZUVGUUJUWBUWCCBFQUORZCBPPUPSUVGBUULIZUU
      IUVFUUJUVTUVGUUMBUUKFGZUWFUUIUUJUUMUVFUQZUVGUWBUWAUVFUWGUWEUWDUUNUVFVCZBC
      PPURUSUUKBUTSUUIUUJUUMUVFVDUWIUWCBCVAVBUVJUVRBVESAUVJBCVFRZUVMUUSKVGUMRUU
      KUUOUUKIZAMUVMAUUKVHUWKUVLAUWKCBUUOWGZUVLUUOBCVIUWLUVKUUQCBUUOVJUWLUUOUUO
      UCZCKUWLUUOVKUWMUUOKGUUOUWMKGCBUUOVLUUOAVOVMUWMUUOVNVPCBUUOVQVRVSRVTWAUUK
      UVMPWBWCUWJUUKUVMUUSWDSUVGUUSDUUKDUEZWHZWEZWHZFGZUWQUUKFGZUVIUWQPIUVGUUSU
      WQJUWRUWPDUUKUWOBCHWIWFWJUVGUUSUUOUWOOZDUUKWKZAMUWQUVGUURUXAAUVGUURUXAUVG
      UURLZUWNUUKIZUWTLZDWLZUXAUXBCUUOUWNWMZDWLZUXEUXBCUUOKGZUXGUUQUXHUVGUUPUUO
      CVNWNCUUODWOWPUXBUXFUXDDUXBUXFUXDUXBUXFLZUXCUWTUXIUXCCBUWNWGZUXICUUOBUWNU
      XFCUUOUWNWGUXBCUUOUWNWQWRUVGUUPUUQUXFWSXAUVGUXCUXJWTUURUXFUVGBCUWNPPUWEUW
      DXBXCXDUXIUWOUUOUXFUWOUUOOZUXBUXFCUUOUWNXEUXKCUUOUWNXFCUUOUWNXGRWRXHVSXIX
      JXMUWTDUUKXKXLXIXNDAUUKUWOUWPUWPXOZXPXQUUSUWQPWBXRUVGUUMUUKUWQUWPXEZUWSUW
      HUVGUWPUUKXSZUXMUWOPIZDUUKXTUXNUVGUXODUUKUWNDVOWJYADUUKUWOUWPPUXLYBYCUUKU
      WPYEWPUUKUWQUWPYDYFUUSUWQUUKYGSUUKUUSYHSUUNUVATUVDKUUNUWBUVATOUUIUUJUWBUU
      MEBFQUOYIBPYJRTTUVDKTTEYKYLYMNYNUUONOZAMTUVDANYOYPUVCUXPAUVCUUPUXPLUXPUVB
      UXPUUPUUOYQYRUXPUUPUXPUUPNBJBYSUUONBYTUUAUUBUUCUUDUUEUUFUUGUUH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The Ackermann bijection
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d F a b c x y $.  $d G a b c x y $.  $d H a b c x y $.  $d A a b c x y $.
    $d B a b c x y $.
    $( Lemma for ~ ackbij2 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij2lem1 $p |- ( A e. _om -> ~P A C_ ( ~P _om i^i Fin ) ) $=
      ( va com wcel cpw cfn cin cv wa wss word ordom ordelss sspwb sylib sselda
      mpan nnfi elpwi ssfi syl2an elind ex ssrdv ) ACDZBAEZCEZFGZUEBHZUFDZUIUHD
      UEUJIUGFUIUEUFUGUIUEACJZUFUGJCKUEUKLCAMQACNOPUEAFDUIAJUIFDUJARUIASAUITUAU
      BUCUD $.

    $( Lemma for ~ ackbij2 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1lem1 $p |- ( -. A e. B -> ( B i^i suc A ) = ( B i^i A ) ) $=
      ( wcel wn csuc cin csn cun df-suc ineq2i indi eqtri c0 wceq disjsn uneq2d
      biimpri un0 syl6eq syl5eq ) ABCDZBAEZFZBAFZBAGZFZHZUDUCBAUEHZFUGUBUHBAIJB
      AUEKLUAUGUDMHUDUAUFMUDUFMNUABAOQPUDRST $.

    $( Lemma for ~ ackbij2 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1lem2 $p |- ( A e. B -> ( B i^i suc A ) =
        ( { A } u. ( B i^i A ) ) ) $=
      ( wcel csuc cin csn cun df-suc ineq2i indi uncom 3eqtri wss snssi sseqin2
      wceq sylib uneq1d syl5eq ) ABCZBADZEZBAFZEZBAEZGZUCUEGUBBAUCGZEUEUDGUFUAU
      GBAHIBAUCJUEUDKLTUDUCUETUCBMUDUCPABNUCBOQRS $.

    $( Lemma for ~ ackbij2 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1lem3 $p |- ( A e. _om -> A e. ( ~P _om i^i Fin ) ) $=
      ( com wcel cpw cfn wss word ordom ordelss mpan elpwg mpbird nnfi elind )
      ABCZBDZEAOAPCABFZBGOQHBAIJABBKLAMN $.

    $( Lemma for ~ ackbij2 .  (Contributed by Stefan O'Rear, 19-Nov-2014.) $)
    ackbij1lem4 $p |- ( A e. _om -> { A } e. ( ~P _om i^i Fin ) ) $=
      ( com wcel cpw cfn csn snelpwi snfi a1i elind ) ABCZBDEAFZABGLECKAHIJ $.

    $( Lemma for ~ ackbij2 .  (Contributed by Stefan O'Rear, 19-Nov-2014.) $)
    ackbij1lem5 $p |- ( A e. _om -> ( card ` ~P suc A ) =
        ( ( card ` ~P A ) +o ( card ` ~P A ) ) ) $=
      ( va csuc cpw ccrd cfv coa co wceq com wcel cen wbr c2o cxp cmap cvv entr
      syl syl2anc cv suceq pweqd fveq2d pweq oveq12d eqeq12d ccda vex sucex csn
      pw2en cun df-suc oveq2i word cin c0 nnord orddisj snex 2onn elexi mapunen
      wi w3a ex mp3an 3syl ovex enref mapsnen xpen mp2an sylancl ensymi sylancr
      syl5eqbr vpwex xp2cda ax-mp syl6breq cfn nnfi sylib ficardid cdaen ensymd
      pwfi carden2b ficardom nnacda eqtrd vtoclga ) BUAZCZDZEFZWODZEFZWTGHZIACZ
      DZEFZADZEFZXFGHZIBAJWOAIZWRXDXAXGXHWQXCEXHWPXBWOAUBUCUDXHWTXFWTXFGXHWSXEE
      WOAUEUDZXIUFUGWOJKZWRWTWTUHHZEFZXAXJWQXKLMZWRXLIXJWQWSWSUHHZLMXNXKLMXMXJW
      QWSNOZXNLXJWQNWPPHZLMXPXOLMZWQXOLMWPWOBUIZUJULXJXPNWOPHZNOZLMXTXOLMXQXJXP
      NWOWOUKZUMZPHZXTLWPYBNPWOUNUOXJYCXSNYAPHZOZLMZYEXTLMZYCXTLMXJWOUPWOYAUQUR
      IZYFWOUSWOUTWOQKZYAQKZNQKZYHYFVEXRWOVANJVBVCZYIYJYKVFYHYFWOYANQQQVDVGVHVI
      XSXSLMYDNLMYGXSNWOPVJVKNWOYLXRVLXSXSYDNVMVNYCYEXTRVOVRXOXTWSXSLMNNLMXOXTL
      MWOXRULNYLVKWSXSNNVMVNVPXPXTXORVOWQXPXORVQWSQKXOXNIBVSWSQVTWAWBXJXKXNXJWT
      WSLMZYMXKXNLMXJWSWCKZYMXJWOWCKYNWOWDWOWIWEZWSWFSZYPWTWSWTWSWGTWHWQXNXKRTW
      QXKWJSXJWTJKZYQXLXAIXJYNYQYOWSWKSZYRWTWTWLTWMWN $.

    $( Lemma for ~ ackbij2 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1lem6 $p |- ( ( A e. ( ~P _om i^i Fin ) /\
          B e. ( ~P _om i^i Fin ) ) ->
        ( A u. B ) e. ( ~P _om i^i Fin ) ) $=
      ( com cpw cfn cin wcel cun wss inss1 sseli elpwi simpl simpr unssd syl2an
      wa wb inss2 unfi elpwg syl mpbird elind ) ACDZEFZGZBUFGZQZUEEABHZUIUJUEGZ
      UJCIZUGAUEGZBUEGZULUHUFUEAUEEJZKUFUEBUOKUMACIZBCIZULUNACLBCLUPUQQABCUPUQM
      UPUQNOPPUIUJEGZUKULRUGAEGBEGURUHUFEAUEESZKUFEBUSKABTPZUJCEUAUBUCUTUD $.

    ackbij.f $e |- F = ( x e. ( ~P _om i^i Fin ) |->
        ( card ` U_ y e. x ( { y } X. ~P y ) ) ) $.
    $( Lemma for ~ ackbij1 .  (Contributed by Stefan O'Rear, 21-Nov-2014.) $)
    ackbij1lem7 $p |- ( A e. ( ~P _om i^i Fin ) -> ( F ` A ) =
        ( card ` U_ y e. A ( { y } X. ~P y ) ) ) $=
      ( cv csn cpw cxp ciun ccrd cfv com cfn cin wceq iuneq1 fveq2d fvex fvmpt
      ) ACBAFZBFZGUBHIZJZKLBCUCJZKLMHNODUACPUDUEKBUACUCQREUEKST $.

    $( Lemma for ~ ackbij1 .  (Contributed by Stefan O'Rear, 19-Nov-2014.) $)
    ackbij1lem8 $p |- ( A e. _om -> ( F ` { A } ) = ( card ` ~P A ) ) $=
      ( va cv csn cfv cpw ccrd wceq com sneq fveq2d pweq eqeq12d wcel cxp cvv
      ciun cfn cin ackbij1lem4 ackbij1lem7 syl vex xpeq12d iunxsn cen wbr vpwex
      fveq2i xpsnen2g mp2an carden2b ax-mp eqtri syl6eq vtoclga ) FGZHZDIZVAJZK
      IZLCHZDIZCJZKIZLFCMVACLZVCVGVEVIVJVBVFDVACNOVJVDVHKVACPOQVAMRZVCBVBBGZHZV
      LJZSZUAZKIZVEVKVBMJUBUCRVCVQLVAUDABVBDEUEUFVQVBVDSZKIZVEVPVRKBVAVOVRFUGZV
      LVALVMVBVNVDVLVANVLVAPUHUIUMVRVDUJUKZVSVELVATRVDTRWAVTFULVAVDTTUNUOVRVDUP
      UQURUSUT $.

    $( Lemma for ~ ackbij1 .  (Contributed by Stefan O'Rear, 19-Nov-2014.) $)
    ackbij1lem9 $p |- ( ( A e. ( ~P _om i^i Fin ) /\ B e. ( ~P _om i^i Fin ) /\
          ( A i^i B ) = (/) ) ->
        ( F ` ( A u. B ) ) = ( ( F ` A ) +o ( F ` B ) ) ) $=
      ( com cfn cin wcel wceq ciun ccrd cfv co cen wbr sseli syl2anc syl cpw c0
      w3a cun cv csn cxp coa ccda wral inss2 3ad2ant1 wa snfi inss1 elpwid con0
      wss onfin2 eqsstri syl6ss sselda pwfi sylib xpfi ralrimiva iunfi ficardid
      sylancr 3ad2ant2 cdaen djudisj 3ad2ant3 syl3anc iunxun syl6breqr carden2b
      cdaun entr ficardom nnacda eqtr3d ackbij1lem6 3adant3 ackbij1lem7 3eqtr4d
      oveqan12d ) CGUAZHIZJZDWIJZCDIUBKZUCZBCDUDZBUEZUFZWOUAZUGZLZMNZBCWRLZMNZB
      DWRLZMNZUHOZWNENZCENZDENZUHOZWMXBXDUIOZMNZWTXEWMXJWSPQZXKWTKWMXJXAXCUIOZP
      QZXMWSPQXLWMXBXAPQZXDXCPQZXNWMXAHJZXOWMCHJZWRHJZBCUJXQWJWKXRWLWIHCWHHUKZR
      ULWMXSBCWMWOCJUMZWPHJZWQHJZXSWOUNZYAWOHJZYCWMCHWOWMCGHWJWKCGURWLWJCGWIWHC
      WHHUOZRUPULGUQHIHUSUQHUKUTZVAVBWOVCZVDWPWQVEZVIVFBCWRVGSZXAVHTWMXCHJZXPWM
      DHJZXSBDUJYKWKWJYLWLWIHDXTRVJWMXSBDWMWODJUMZYBYCXSYDYMYEYCWMDHWOWMDGHWKWJ
      DGURWLWKDGWIWHDYFRUPVJYGVAVBYHVDYIVIVFBDWRVGSZXCVHTXBXAXDXCVKSWMXMXAXCUDZ
      WSPWMXQYKXAXCIUBKZXMYOPQYJYNWLWJYPWKBBCDWQWQVLVMXAXCHHVRVNBCDWRVOVPXJXMWS
      VSSXJWSVQTWMXBGJZXDGJZXKXEKWMXQYQYJXAVTTWMYKYRYNXCVTTXBXDWASWBWMWNWIJZXFW
      TKWJWKYSWLCDWCWDABWNEFWETWJWKXIXEKWLWJWKXGXBXHXDUHABCEFWEABDEFWEWGWDWF $.

    $( Lemma for ~ ackbij1 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1lem10 $p |- F : ( ~P _om i^i Fin ) --> _om $=
      ( com cpw cfn cin cv csn cxp ciun ccrd cfv wcel wral inss2 sseli wel con0
      wa snfi inss1 elpwid onfin2 eqsstri syl6ss sselda pwfi sylib xpfi sylancr
      ralrimiva iunfi syl2anc ficardom syl fmpti ) AEFZGHZEBAIZBIZJZVBFZKZLZMNZ
      CDVAUTOZVFGOZVGEOVHVAGOVEGOZBVAPVIUTGVAUSGQRVHVJBVAVHBASUAZVCGOVDGOZVJVBU
      BVKVBGOVLVHVAGVBVHVAEGVHVAEUTUSVAUSGUCRUDETGHGUETGQUFUGUHVBUIUJVCVDUKULUM
      BVAVEUNUOVFUPUQUR $.

    $( Lemma for ~ ackbij1 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1lem11 $p |- ( ( A e. ( ~P _om i^i Fin ) /\ B C_ A ) ->
        B e. ( ~P _om i^i Fin ) ) $=
      ( com cpw cfn cin wcel wss wa inss1 sseli elpwid sstr sylan2 cvv wb ssexg
      elpwg syl mpbird ancoms inss2 ssfi sylan elind ) CGHZIJZKZDCLZMUJIDUMULDU
      JKZUMULMZUNDGLZULUMCGLUPULCGUKUJCUJINOPDCGQRUODSKUNUPTDCUKUADGSUBUCUDUEUL
      CIKUMDIKUKICUJIUFOCDUGUHUI $.

    $( Lemma for ~ ackbij1 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1lem12 $p |- ( ( B e. ( ~P _om i^i Fin ) /\ A C_ B ) ->
        ( F ` A ) C_ ( F ` B ) ) $=
      ( com cpw cfn cin wcel wss cfv cdif coa ackbij1lem11 ffvelrn sylancr wceq
      wa co ackbij1lem10 difssd syldan nnaword1 syl2anc cun disjdif ackbij1lem9
      wf c0 a1i syl3anc undif biimpi adantl fveq2d eqtr3d sseqtrd ) DGHIJZKZCDL
      ZTZCEMZVDDCNZEMZOUAZDEMZVCVDGKZVFGKZVDVGLVCUTGEUJZCUTKZVIABEFUBZABDCEFPZU
      TGCEQRVCVKVEUTKZVJVMVAVBVEDLVOVCDCUCABDVEEFPUDZUTGVEEQRVDVFUEUFVCCVEUGZEM
      ZVGVHVCVLVOCVEJUKSZVRVGSVNVPVSVCCDUHULABCVEEFUIUMVCVQDEVBVQDSZVAVBVTCDUNU
      OUPUQURUS $.

    $( Lemma for ~ ackbij1 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1lem13 $p |- ( F ` (/) ) = (/) $=
      ( c0 cfv coa co wceq cun com wcel cpw cfn ackbij1lem10 peano1 f0cli ax-mp
      cin mp3an nna0 un0 fveq2i ackbij1lem3 ackbij1lem9 3eqtr2ri wb nnacan mpbi
      in0 ) ECFZUKGHZUKEGHZIZUKEIZUMUKEEJZCFZULUKKLZUMUKIKMNSZKECABCDOPQZUKUARU
      PECEUBUCEUSLZVAEESEIUQULIEKLZVAPEUDRZVCEUJABEECDUETUFURURVBUNUOUGUTUTPUKU
      KEUHTUI $.

    $( Lemma for ~ ackbij1 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1lem14 $p |- ( A e. _om -> ( F ` { A } ) = suc ( F ` A ) ) $=
      ( com wcel cfv cpw ccrd csuc wceq pweq fveq2d fveq2 suceq syl coa adantr
      c0 va vb csn ackbij1lem8 cv eqeq12d weq c1o df-1o pw0 fveq2i cardsn ax-mp
      cvv 0ex eqtri ackbij1lem13 3eqtr4i wa oveq2 adantl ackbij1lem5 cun df-suc
      equncomi cfn ackbij1lem4 ackbij1lem3 incom word nnord orddisj ackbij1lem9
      cin syl5eq syl3anc oveq1d eqtrd nnfi sylib ficardom ackbij1lem10 ffvelrni
      co pwfi nnasuc syl2anc eqtr4d 3eqtr4d ex finds ) CFGCUCDHCIZJHZCDHZKZABCD
      EUDUAUEZIZJHZWPDHZKZLTIZJHZTDHZKZLUBUEZIZJHZXEDHZKZLZXEKZIZJHZXKDHZKZLZWM
      WOLUAUBCWPTLZWRXBWTXDXQWQXAJWPTMNXQWSXCLWTXDLWPTDOWSXCPQUFUAUBUGZWRXGWTXI
      XRWQXFJWPXEMNXRWSXHLWTXILWPXEDOWSXHPQUFWPXKLZWRXMWTXOXSWQXLJWPXKMNXSWSXNL
      WTXOLWPXKDOWSXNPQUFWPCLZWRWMWTWOXTWQWLJWPCMNXTWSWNLWTWOLWPCDOWSWNPQUFUHTK
      ZXBXDUIXBTUCZJHZUHXAYBJUJUKTUNGYCUHLUOTUNULUMUPXCTLXDYALABDEUQXCTPUMURXEF
      GZXJXPYDXJUSZXGXGRWDZXGXIRWDZXMXOXJYFYGLYDXGXIXGRUTVAYDXMYFLXJXEVBSYEXOXG
      XHRWDZKZYGYEXNYHLXOYILYEXNXEUCZXEVCZDHZYHXKYKDXKXEYJXEVDVEUKYEYLYJDHZXHRW
      DZYHYEYJFIVFVNZGZXEYOGZYJXEVNZTLZYLYNLYDYPXJXEVGSYDYQXJXEVHSZYDYSXJYDYRXE
      YJVNZTYJXEVIYDXEVJUUATLXEVKXEVLQVOSABYJXEDEVMVPYEYMXGXHRYDYMXGLXJABXEDEUD
      SVQVRVOXNYHPQYEXGFGZXHFGZYGYILYEXFVFGZUUBYDUUDXJYDXEVFGUUDXEVSXEWEVTSXFWA
      QYEYQUUCYTYOFXEDABDEWBWCQXGXHWFWGWHWIWJWKVR $.

    $( Lemma for ~ ackbij1 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1lem15 $p |- ( ( ( A e. ( ~P _om i^i Fin ) /\
          B e. ( ~P _om i^i Fin ) ) /\ ( c e. _om /\ c e. A /\ -. c e. B ) ) ->
        -. ( F ` ( A i^i suc c ) ) = ( F ` ( B i^i suc c ) ) ) $=
      ( com cpw cin wcel wa csuc cfv wss syl wceq ackbij1lem12 syl2anc wpss cfn
      cv wn w3a simpr1 ackbij1lem3 simpr3 ackbij1lem1 syl6eqss csn ackbij1lem10
      inss2 con0 ffvelrni nnon onpsssuc 4syl ackbij1lem14 psseq2d mpbird simpll
      inss1 ackbij1lem11 sylancl cun ssun1 simpr2 ackbij1lem2 psssstrd sspsstrd
      syl5sseqr pssned necomd neneqd ) CHIUAJZKZDVOKZLZFUBZHKZVSCKZVSDKUCZUDZLZ
      CVSMZJZENZDWEJZENZWDWIWGWDWIWGWDWIVSENZWGWDVSVOKZWHVSOWIWJOWDVTWKVRVTWAWB
      UEZVSUFPZWDWHDVSJZVSWDWBWHWNQVRVTWAWBUGVSDUHPDVSULUIABWHVSEGRSWDWJVSUJZEN
      ZWGWDWJWPTWJWJMZTZWDWKWJHKWJUMKWRWMVOHVSEABEGUKUNWJUOWJUPUQWDWPWQWJWDVTWP
      WQQWLABVSEGURPUSUTWDWFVOKZWOWFOWPWGOWDVPWFCOWSVPVQWCVACWEVBABCWFEGVCVDWDW
      OCVSJZVEZWOWFWOWTVFWDWAWFXAQVRVTWAWBVGVSCVHPVKABWOWFEGRSVIVJVLVMVN $.

    $( Lemma for ~ ackbij1 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1lem16 $p |- ( ( A e. ( ~P _om i^i Fin ) /\ B e. ( ~P _om i^i Fin ) )
        ->
        ( ( F ` A ) = ( F ` B ) -> A = B ) ) $=
      ( com cfn cin wcel cfv wceq wi wss syl c0 ineq2 fveq2d eqeq12d w3a va cpw
      vb cun cuni csuc inss1 sseli elpwid adantr adantl unssd inss2 unfi syl2an
      wa nnunifi syl2anc peano2 cv imbi12d imbi2d weq in0 eqtr4i csn coa simp13
      2a1i co 3simpa ackbij1lem2 3ad2ant2 ackbij1lem4 simprl ackbij1lem11 incom
      sylancl word nnord orddisj ssdisj sylancr syl5eq syl3anc 3ad2ant1 syl3an1
      ackbij1lem9 eqtrd 3ad2ant3 simprr 3eqtr3d wb ackbij1lem10 ffvelrni nnacan
      3adant3 mpbid uneq2 ad2antrr ad2antlr 3eqtr4d 3adant1 embantd 3exp eqcomd
      ex wn simp12r simp12l simp11 simp3 ackbij1lem15 syl23anc pm2.21dd pm2.61d
      simp2 ackbij1lem1 biimpd mpd biimprd com34 finds mpcom con0 omsson syl6ss
      a2d onsucuni unssad df-ss sylib unssbd 3imtr3d ) CGUBZHIZJZDYPJZUPZCCDUDZ
      UEZUFZIZEKZDUUBIZEKZLZUUCUUELZCEKZDEKZLCDLUUBGJZYSUUGUUHMZYSUUAGJZUUKYSYT
      GNYTHJZUUMYSCDGYQCGNYRYQCGYPYOCYOHUGZUHUIUJYRDGNYQYRDGYPYODUUOUHUIUKULZYQ
      CHJDHJUUNYRYPHCYOHUMZUHYPHDUUQUHCDUNUOYTUQURUUAUSOYSCUAUTZIZEKZDUURIZEKZL
      ZUUSUVALZMZMYSCPIZEKZDPIZEKZLZUVFUVHLZMZMYSCUCUTZIZEKZDUVMIZEKZLZUVNUVPLZ
      MZMYSCUVMUFZIZEKZDUWAIZEKZLZUWBUWDLZMZMYSUULMUAUCUUBUURPLZUVEUVLYSUWIUVCU
      VJUVDUVKUWIUUTUVGUVBUVIUWIUUSUVFEUURPCQZRUWIUVAUVHEUURPDQZRSUWIUUSUVFUVAU
      VHUWJUWKSVAVBUAUCVCZUVEUVTYSUWLUVCUVRUVDUVSUWLUUTUVOUVBUVQUWLUUSUVNEUURUV
      MCQZRUWLUVAUVPEUURUVMDQZRSUWLUUSUVNUVAUVPUWMUWNSVAVBUURUWALZUVEUWHYSUWOUV
      CUWFUVDUWGUWOUUTUWCUVBUWEUWOUUSUWBEUURUWACQZRUWOUVAUWDEUURUWADQZRSUWOUUSU
      WBUVAUWDUWPUWQSVAVBUURUUBLZUVEUULYSUWRUVCUUGUVDUUHUWRUUTUUDUVBUUFUWRUUSUU
      CEUURUUBCQZRUWRUVAUUEEUURUUBDQZRSUWRUUSUUCUVAUUEUWSUWTSVAVBUVKYSUVJUVFPUV
      HCVDDVDVEVIUVMGJZYSUVTUWHUXAYSUWFUVTUWGUXAYSUWFUVTUWGMZUXAYSUWFTZUVMDJZUX
      BUXCUVMCJZUXDUXBMUXCUXEUXDUXBUXCUXEUXDTZUVRUVSUWGUXFUVMVFZEKZUVOVGVJZUXHU
      VQVGVJZLZUVRUXFUWCUWEUXIUXJUXAYSUWFUXEUXDVHUXCUXAYSUPZUXEUXDUWCUXILUXAYSU
      WFVKZUXLUXEUXDTZUWCUXGUVNUDZEKZUXIUXEUXLUWCUXPLUXDUXEUWBUXOEUVMCVLZRVMUXL
      UXEUXPUXILZUXDUXLUXGYPJZUVNYPJZUXGUVNIZPLUXRUXAUXSYSUVMVNUJZUXLYQUVNCNUXT
      UXAYQYRVOCUVMUGABCUVNEFVPVRZUXLUYAUVNUXGIZPUXGUVNVQUXLUVNUVMNUVMUXGIPLZUY
      DPLCUVMUMUXAUYEYSUXAUVMVSUYEUVMVTUVMWAOUJZUVNUVMUXGWBWCWDABUXGUVNEFWHWEWF
      WIWGUXCUXLUXEUXDUWEUXJLUXMUXNUWEUXGUVPUDZEKZUXJUXDUXLUWEUYHLUXEUXDUWDUYGE
      UVMDVLZRWJUXLUXEUYHUXJLZUXDUXLUXSUVPYPJZUXGUVPIZPLUYJUYBUXLYRUVPDNUYKUXAY
      QYRWKDUVMUGABDUVPEFVPVRZUXLUYLUVPUXGIZPUXGUVPVQUXLUVPUVMNUYEUYNPLDUVMUMUY
      FUVPUVMUXGWBWCWDABUXGUVPEFWHWEWFWIWGWLUXCUXEUXKUVRWMZUXDUXAYSUYOUWFUXLUXH
      GJZUVOGJZUVQGJZUYOUXLUXSUYPUYBYPGUXGEABEFWNZWOOUXLUXTUYQUYCYPGUVNEUYSWOOU
      XLUYKUYRUYMYPGUVPEUYSWOOUXHUVOUVQWPWEWQWFWRUXEUXDUVSUWGMZUXCUXEUXDUPZUVSU
      WGVUAUVSUPUXOUYGUWBUWDUVSUXOUYGLVUAUVNUVPUXGWSUKUXEUWBUXOLUXDUVSUXQWTUXDU
      WDUYGLUXEUVSUYIXAXBXGXCXDXEUXCUXEXHZUXDUXBUXCVUBUXDTZUWEUWCLZUXBVUCUWCUWE
      UXAYSUWFVUBUXDVHXFVUCYRYQUXAUXDVUBVUDXHYQYRUXAUWFVUBUXDXIYQYRUXAUWFVUBUXD
      XJUXAYSUWFVUBUXDXKUXCVUBUXDXLUXCVUBUXDXQABDCEUCFXMXNXOXEXPUXCUXEUXDXHZUXB
      MUXCUXEVUEUXBUXCUXEVUETZUWFUXBUXAYSUWFUXEVUEVHVUFYQYRUXAUXEVUEUWFXHYQYRUX
      AUWFUXEVUEXJYQYRUXAUWFUXEVUEXIUXAYSUWFUXEVUEXKUXCUXEVUEXQUXCUXEVUEXLABCDE
      UCFXMXNXOXEUXCVUBVUEUXBUXCVUBVUETZUVRUVSUWGVUGUWFUVRUXAYSUWFVUBVUEVHVUBVU
      EUWFUVRMUXCVUBVUEUPZUWFUVRVUHUWCUVOUWEUVQVUHUWBUVNEVUBUWBUVNLVUEUVMCXRUJZ
      RVUHUWDUVPEVUEUWDUVPLVUBUVMDXRUKZRSXSXCXTVUBVUEUYTUXCVUHUWGUVSVUHUWBUVNUW
      DUVPVUIVUJSYAXCXDXEXPXPXEYBYHYCYDYSUUDUUIUUFUUJYSUUCCEYSCUUBNUUCCLYSCDUUB
      YSYTYENYTUUBNYSYTGYEUUPYFYGYTYIOZYJCUUBYKYLZRYSUUEDEYSDUUBNUUEDLYSCDUUBVU
      KYMDUUBYKYLZRSYSUUCCUUEDVULVUMSYN $.

    $( Lemma for ~ ackbij1 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1lem17 $p |- F : ( ~P _om i^i Fin ) -1-1-> _om $=
      ( va vb com cpw cfn cin wf1 wf cv cfv wceq wral ackbij1lem10 ackbij1lem16
      weq wi rgen2a dff13 mpbir2an ) GHIJZGCKUDGCLEMZCNFMZCNOEFSTZFUDPEUDPABCDQ
      UGEFUDABUEUFCDRUAEFUDGCUBUC $.

    $( Lemma for ~ ackbij1 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1lem18 $p |- ( A e. ( ~P _om i^i Fin ) -> E. b e. ( ~P _om i^i Fin )
          ( F ` b ) = suc ( F ` A ) ) $=
      ( com cfn cin wcel cun cfv csuc wceq wss c0 wn sylancr syl coa va cpw csn
      cdif cint wrex difss ackbij1lem11 mpan2 con0 wne omsson sstri ominf inss2
      cv sseli difinf 0fin eleq1 necon3bi onint eldifad ackbij1lem4 ackbij1lem6
      mpbiri syl2anc co eldifbd disjsn sylibr ssdisj ackbij1lem9 syl3anc oveq2d
      ackbij1lem14 ackbij1lem10 ffvelrni ackbij1lem3 nnasuc incom disjdif eqtri
      a1i uncom wa wo onnmin mpan con2i adantl word ordom sselda eldif simplbi2
      ordelss orrd orcomd orel1 ex ssrdv undif sylib syl5eq fveq2d eqtr3d suceq
      sylc eqtrd 3eqtrd fveq2 eqeq1d rspcev ) CGUBZHIZJZCGCUDZUEZUDZXSUCZKZXPJZ
      YBDLZCDLZMZNZEUPZDLZYFNZEXPUFXQXTXPJZYAXPJZYCXQXTCOZYKCXSUGZABCXTDFUHUIZX
      QXSGJZYLXQXSGCXQXRUJOZXRPUKZXSXRJXRGUJGCUGULUMZXQXRHJZQZYRXQGHJQCHJUUAUNX
      PHCXOHUOUQGCURRYTXRPXRPNYTPHJUSXRPHUTVFVASXRVBRZVCZXSVDSZXTYAVEVGXQYDXTDL
      ZYADLZTVHZUUEXSDLZMZTVHZYFXQYKYLXTYAIPNZYDUUGNYOUUDXQYMCYAIPNZUUKYNXQXSCJ
      QUULXQXSGCUUBVICXSVJVKXTCYAVLRABXTYADFVMVNXQUUFUUIUUETXQYPUUFUUINUUCABXSD
      FVPSVOXQUUJUUEUUHTVHZMZYFXQUUEGJZUUHGJZUUJUUNNXQYKUUOYOXPGXTDABDFVQZVRSXQ
      XSXPJZUUPXQYPUURUUCXSVSSZXPGXSDUUQVRSUUEUUHVTVGXQUUMYENUUNYFNXQXTXSKZDLZU
      UMYEXQYKUURXTXSIZPNZUVAUUMNYOUUSUVCXQUVBXSXTIPXTXSWAXSCWBWCWDABXTXSDFVMVN
      XQUUTCDXQUUTXSXTKZCXTXSWEXQXSCOUVDCNXQUAXSCXQUAUPZXSJZUVECJZXQUVFWFZUVEXR
      JZQZUVIUVGWGZUVGUVFUVJXQUVIUVFYQUVIUVFQYSXRUVEWHWIWJWKUVHUVEGJZUVKXQXSGUV
      EXQGWLYPXSGOWMUUCGXSWQRWNUVLUVGUVIUVLUVGUVIUVIUVLUVGQUVEGCWOWPWRWSSUVIUVG
      WTXIXAXBXSCXCXDXEXFXGUUMYEXHSXJXKYJYGEYBXPYHYBNYIYDYFYHYBDXLXMXNVG $.

    $( The Ackermann bijection, part 1: each natural number can be uniquely
       coded in binary as a finite set of natural numbers and conversely.
       (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij1 $p |- F : ( ~P _om i^i Fin ) -1-1-onto-> _om $=
      ( va vb vc com cpw wceq cv wcel c0 csuc eleq1 cfv wrex ax-mp wb fvelrnb
      cfn cin wf1o wf1 crn ackbij1lem17 wf wss f1f frn mp2b peano1 ackbij1lem13
      ackbij1lem3 fveq2 eqeq1d rspcev mp2an wfn mpbir ackbij1lem18 adantl suceq
      wa eqeq2d rexbidv syl5ibcom rexlimdva 3imtr4g finds ssriv dff1o5 mpbir2an
      f1fn eqssi ) HIUAUBZHCUCVPHCUDZCUEZHJABCDUFZVRHVQVPHCUGVRHUHVSVPHCUIVPHCU
      JUKEHVRFKZVRLMVRLZEKZVRLZWBNZVRLZWCFEWBVTMVROVTWBVROZVTWDVROWFWAWBCPZMJZE
      VPQZMVPLZMCPZMJZWIMHLWJULMUNRABCDUMWHWLEMVPWBMJWGWKMWBMCUOUPUQURCVPUSZWAW
      ISVQWMVSVPHCVNRZEVPMCTRUTWBHLZGKZCPZWBJZGVPQZVTCPZWDJZFVPQZWCWEWOWRXBGVPW
      OWPVPLZVDWTWQNZJZFVPQZWRXBXCXFWOABWPCFDVAVBWRXEXAFVPWRXDWDWTWQWBVCVEVFVGV
      HWMWCWSSWNGVPWBCTRWMWEXBSWNFVPWDCTRVIVJVKVOVPHCVLVM $.

    $( The Ackermann bijection, part 1b: the bijection from ~ ackbij1 restricts
       naturally to the powers of particular naturals.  (Contributed by Stefan
       O'Rear, 18-Nov-2014.) $)
    ackbij1b $p |- ( A e. _om -> ( F " ~P A ) = ( card ` ~P A ) ) $=
      ( va com wcel cpw cfv wn wceq cen wbr cfn cin wss cvv sylib ax-mp cima wo
      ccrd wpss ackbij2lem1 pwexg wf1 ackbij1lem17 f1imaeng mp3an1 syl2anc nnfi
      pwfi ficardid ensym 3syl entr csdm con0 onfin2 inss2 eqsstri ficardom syl
      wi sseldi php3 ex sdomnen syl6 mt2d cv wral csuc ackbij1lem3 ackbij1lem12
      wa fvex elpwi syl2an wb ackbij1lem10 peano1 f0cli nnord ordsucsssuc mp2an
      word csn ackbij1lem14 ackbij1lem8 eqtr3d adantr sseqtrd sucssel ralrimiva
      mpsyl wfun f1fun f1dm syl6sseqr funimass4 sylancr mpbird sspss orel1 sylc
      cdm ) CGHZDCIZUAZXJUCJZUDZKXMXKXLLZUBZXNXIXMXKXLMNZXIXKXJMNZXJXLMNZXPXIXJ
      GIOPZQZXJRHZXQCUEZCGUFXSGDUGZXTYAXQABDEUHZXSGXJDRUIUJUKXIXJOHZXLXJMNXRXIC
      OHYECULCUMSZXJUNXLXJUOUPXKXJXLUQUKXIXMXKXLURNZXPKXIXLOHZXMYGVEXIGOXLGUSOP
      OUTUSOVAVBXIYEXLGHYFXJVCVDVFYHXMYGXLXKVGVHVDXKXLVIVJVKXIXKXLQZXOXIYIFVLZD
      JZXLHZFXJVMZXIYLFXJYKRHXIYJXJHZVQZYKVNZXLQYLYJDVRYOYPCDJZVNZXLYOYKYQQZYPY
      RQZXICXSHYJCQYSYNCVOYJCVSABYJCDEVPVTYKWHZYQWHZYSYTWAYKGHUUAXSGYJDABDEWBZW
      CWDYKWETYQGHUUBXSGCDUUCWCWDYQWETYKYQWFWGSXIYRXLLYNXICWIDJYRXLABCDEWJABCDE
      WKWLWMWNYKXLRWOWQWPXIDWRZXJDXHZQYIYMWAYCUUDYDXSGDWSTXIXJXSUUEYBYCUUEXSLYD
      XSGDWTTXAFXJXLDXBXCXDXKXLXESXMXNXFXG $.

    ackbij.g $e |- G = ( x e. _V |-> ( y e. ~P dom x |->
          ( F ` ( x " y ) ) ) ) $.
    $( Lemma for ~ ackbij2 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij2lem2 $p |- ( A e. _om -> ( rec ( G , (/) ) ` A ) :
        ( R1 ` A ) -1-1-onto-> ( card ` ( R1 ` A ) ) ) $=
      ( va cv cr1 cfv ccrd c0 wf1o wceq fveq2 fveq2d com wcel syl vb vc crdg wb
      csuc f1oeq123d f1o0 0ex f1oeq1 ax-mp r10 fveq2i card0 eqtri f1oeq23 mp2an
      rdg0 bitri mpbir cpw cres cima cmpt ccom cfn cin wf1 wss ackbij1lem17 a1i
      wa ficardom ackbij2lem1 f1ores syl2anc ackbij1b cen wbr ficardid carden2b
      r1fin pwen eqtrd f1oeq3d mpbid adantr f1opw adantl f1oco cdm frsuc peano2
      4syl fvresd fvres fvex dmeq pweqd imaeq1 mpteq12dv dmex pwex mptex syl6eq
      cvv fvmpt 3eqtr3d f1odm mpteq1d wfn eqid fnmpti f1ofn wf ffvelrnda imaeq2
      f1of imaex fvco3 sylan 3eqtr4rd eqfnfvd con0 r1suc bitrd mpbird ex finds
      nnon ) HIZJKZYKLKZYJEMUCZKZNMJKZYOLKZMYMKZNZUAIZJKZYTLKZYSYMKZNZYSUEZJKZU
      UELKZUUDYMKZNZCJKZUUILKZCYMKZNHUACYJMOZYKYOYLYPYNYQYJMYMPYJMJPZUULYKYOLUU
      MQUFYJYSOZYKYTYLUUAYNUUBYJYSYMPYJYSJPZUUNYKYTLUUOQUFYJUUDOZYKUUEYLUUFYNUU
      GYJUUDYMPYJUUDJPZUUPYKUUELUUQQUFYJCOZYKUUIYLUUJYNUUKYJCYMPYJCJPZUURYKUUIL
      UUSQUFYRMMMNZUGYRYOYPMNZUUTYQMOYRUVAUDMEUHUQYOYPYQMUIUJYOMOYPMOUVAUUTUDUK
      YPMLKMYOMLUKULUMUNYOMYPMMUOUPURUSYSRSZUUCUUHUVBUUCVKZUUHYTUTZUVDLKZDUUAUT
      ZVAZHUVDUUBYJVBZVCZVDZNZUVCUVFUVEUVGNZUVDUVFUVINZUVKUVBUVLUUCUVBUVFDUVFVB
      ZUVGNZUVLUVBRUTVEVFZRDVGZUVFUVPVHZUVOUVQUVBABDFVIVJUVBUUARSZUVRUVBYTVESZU
      VSYSWAZYTVLTZUUAVMTUVPRUVFDVNVOUVBUVNUVEUVFUVGUVBUVNUVFLKZUVEUVBUVSUVNUWC
      OUWBABUUADFVPTUVBUVTUUAYTVQVRUVFUVDVQVRUWCUVEOUWAYTVSUUAYTWBUVFUVDVTWMWCW
      DWEWFUUCUVMUVBYTUUAUUBHWGWHZUVDUVFUVEUVGUVIWIVOZUVCUUHUUEUUFUVJNZUVKUVCUU
      GUVJOUUHUWFUDUVCUUGBUUBWJZUTZUUBBIZVBZDKZVCZUVJUVBUUGUWLOUUCUVBUUDYMRVAZK
      YSUWMKZEKZUUGUWLMYSEWKUVBUUDRYMYSWLWNUVBUWOUUBEKZUWLUVBUWNUUBEYSRYMWOQUUB
      XESUWPUWLOYSYMWPZAUUBBAIZWJZUTZUWRUWIVBZDKZVCUWLXEEUWRUUBOZBUWTUXBUWHUWKU
      XCUWSUWGUWRUUBWQWRUXCUXAUWJDUWRUUBUWIWSQWTGBUWHUWKUWGUUBUWQXAXBXCXFUJXDXG
      WFUVCUWLBUVDUWKVCZUVJUVCBUWHUVDUWKUVCUWGYTUUCUWGYTOUVBYTUUAUUBXHWHWRXIUVC
      UBUVDUXDUVJUXDUVDXJUVCBUVDUWKUXDUWJDWPUXDXKZXLVJUVCUVKUVJUVDXJUWEUVDUVEUV
      JXMTUVCUBIZUVDSZVKZUXFUVIKZUVGKZUUBUXFVBZDKZUXFUVJKZUXFUXDKZUXHUXJUXIDKUX
      LUXHUXIUVFDUVCUVDUVFUXFUVIUVCUVMUVDUVFUVIXNZUWDUVDUVFUVIXQTZXOWNUXHUXIUXK
      DUXGUXIUXKOUVCHUXFUVHUXKUVDUVIYJUXFUUBXPUVIXKUUBUXFUWQXRXFWHQWCUVCUXOUXGU
      XMUXJOUXPUVDUVFUXFUVGUVIXSXTUXGUXNUXLOUVCBUXFUWKUXLUVDUXDUWIUXFOUWJUXKDUW
      IUXFUUBXPQUXEUXKDWPXFWHYAYBWCWCUUEUUFUUGUVJUITUVBUWFUVKUDZUUCUVBUUEUVDOZU
      UFUVEOUXQUVBYSYCSUXRYSYIYSYDTZUVBUUEUVDLUXSQUUEUVDUUFUVEUVJUOVOWFYEYFYGYH
      $.

    $( Lemma for ~ ackbij2 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij2lem3 $p |- ( A e. _om -> ( rec ( G , (/) ) ` A ) C_
        ( rec ( G , (/) ) ` suc A ) ) $=
      ( wcel c0 cfv csuc cr1 cres cv wceq fveq2 fveq2d syl cima cpw va com crdg
      vb suceq reseq12d eqeq12d weq res0 r10 reseq2i 0ex rdg0 3eqtr4ri wfn ccrd
      vc wa wf1o peano2 ackbij2lem2 f1ofn adantr 4syl con0 nnon r1sssuc fnssres
      wss syl2anc r1suc eleq2d biimpa elpwid resima2 cmpt fvex resex dmeq pweqd
      cdm cvv imaeq1 mpteq12dv dmex pwex mptex fvmpt ax-mp fveq1i fndm eleqtrrd
      imaeq2 eqid syl5eq wtr r1tr a1i dftr4 sylib sselda 3eqtr4d adantlr fveq1d
      f1odm ad2antlr rdgsuc ad2antrr 3eqtr4rd fvres adantl finds resss syl6eqss
      eqfnfvd ex ) CUBHCEIUCZJZCKZXQJZCLJZMZXTUANZXQJZYCKZXQJZYCLJZMZOIXQJZIKZX
      QJZILJZMZOUDNZXQJZYNKZXQJZYNLJZMZOZYQYPKZXQJZYPLJZMZOZXRYBOUAUDCYCIOZYDYI
      YHYMYCIXQPUUFYFYKYGYLUUFYEYJXQYCIUEQYCILPUFUGUAUDUHZYDYOYHYSYCYNXQPUUGYFY
      QYGYRUUGYEYPXQYCYNUEQYCYNLPUFUGYCYPOZYDYQYHUUDYCYPXQPUUHYFUUBYGUUCUUHYEUU
      AXQYCYPUEQYCYPLPUFUGYCCOZYDXRYHYBYCCXQPUUIYFXTYGYAUUIYEXSXQYCCUEQYCCLPUFU
      GYKIMIYMYIYKUIYLIYKUJUKIEULUMUNYNUBHZYTUUEUUJYTURZUQUUCYQUUDUUJYQUUCUOZYT
      UUJUUCUUCUPJZYQUSZUULUUJYPUBHZUUNYNUTZABYPDEFGVARZUUCUUMYQVBRZVCUUJUUDUUC
      UOZYTUUJUUBUUALJZUOZUUCUUTVIZUUSUUJUUOUUAUBHUUTUUTUPJZUUBUSUVAUUPYPUTABUU
      ADEFGVAUUTUVCUUBVBVDUUJYPVEHZUVBUUJUUOUVDUUPYPVFRZYPVGRUUTUUCUUBVHVJVCUUK
      UQNZUUCHZURZUVFUUBJZUVFYOEJZJZUVFUUDJZUVFYQJZUVHUVFYSEJZJZUVFYQEJZJZUVKUV
      IUUJUVGUVOUVQOYTUUJUVGURZYSUVFSZDJZYQUVFSZDJZUVOUVQUVRUVSUWADUVRUVFYRVIUV
      SUWAOUVRUVFYRUUJUVGUVFYRTZHUUJUUCUWCUVFUUJYNVEHZUUCUWCOYNVFZYNVKRVLVMZVNY
      QUVFYRVORQUVRUVOUVFBYSWAZTZYSBNZSZDJZVPZJZUVTUVFUVNUWLYSWBHUVNUWLOYQYRYPX
      QVQZVRZAYSBANZWAZTZUWPUWISZDJZVPZUWLWBEUWPYSOZBUWRUWTUWHUWKUXBUWQUWGUWPYS
      VSVTUXBUWSUWJDUWPYSUWIWCQWDGBUWHUWKUWGYSUWOWEWFWGWHWIWJUVRUVFUWHHUWMUVTOU
      VRUVFUWCUWHUWFUUJUWHUWCOUVGUUJUWGYRUUJYSYRUOZUWGYROUUJUULYRUUCVIZUXCUURUU
      JUWDUXDUWEYNVGRUUCYRYQVHVJYRYSWKRVTVCWLBUVFUWKUVTUWHUWLBUQUHZUWJUVSDUWIUV
      FYSWMQUWLWNUVSDVQWHRWOUVRUVQUVFBYQWAZTZYQUWISZDJZVPZJZUWBUVFUVPUXJYQWBHUV
      PUXJOUWNAYQUXAUXJWBEUWPYQOZBUWRUWTUXGUXIUXLUWQUXFUWPYQVSVTUXLUWSUXHDUWPYQ
      UWIWCQWDGBUXGUXIUXFYQUWNWEWFWGWHWIWJUVRUVFUXGHUXKUWBOUVRUVFUUCTZUXGUUJUUC
      UXMUVFUUJUUCWPZUUCUXMVIUXNUUJYPWQWRUUCWSWTXAUUJUXGUXMOUVGUUJUXFUUCUUJUUNU
      XFUUCOUUQUUCUUMYQXERVTVCWLBUVFUXIUWBUXGUXJUXEUXHUWADUWIUVFYQWMQUXJWNUWADV
      QWHRWOXBXCYTUVKUVOOUUJUVGYTUVFUVJUVNYOYSEPXDXFUUJUVIUVQOYTUVGUUJUVFUUBUVP
      UUJUVDUUBUVPOUVEIYPEXGRXDXHXIUVGUVLUVIOUUKUVFUUCUUBXJXKUUJUVMUVKOYTUVGUUJ
      UVFYQUVJUUJUWDYQUVJOUWEIYNEXGRXDXHXIXOXPXLXTYAXMXN $.

    $( Lemma for ~ ackbij2 .  (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    ackbij2lem4 $p |- ( ( ( A e. _om /\ B e. _om ) /\ B C_ A ) ->
        ( rec ( G , (/) ) ` B ) C_ ( rec ( G , (/) ) ` A ) ) $=
      ( va vb c0 cfv cv wss wceq fveq2 sseq2d com wcel wa crdg csuc ackbij2lem3
      weq ssid a1i ad2antrr sstr2 syl5com findsg ) DFKUAZLZIMZUKLZNULULNZULJMZU
      KLZNZULUPUBZUKLZNZULCUKLZNIJCDUMDOUNULULUMDUKPQIJUDUNUQULUMUPUKPQUMUSOUNU
      TULUMUSUKPQUMCOUNVBULUMCUKPQUODRSZULUEUFUPRSZVCTDUPNZTUQUTNZURVAVDVFVCVEA
      BUPEFGHUCUGULUQUTUHUIUJ $.

    ackbij.h $e |- H = U. ( rec ( G , (/) ) " _om ) $.
    $( The Ackermann bijection, part 2: hereditarily finite sets can be
       represented by recursive binary notation.  (Contributed by Stefan
       O'Rear, 18-Nov-2014.) $)
    ackbij2 $p |- H : U. ( R1 " _om ) -1-1-onto-> _om $=
      ( va vb cr1 com wf1o wf1 wceq cfv wss wa wcel syl vc cima cuni c0 crdg cv
      crn ciun wral fveq2 fvex fun11iun ccrd ackbij2lem2 f1of1 word ordom r1fin
      wo cfn ficardom ordelss sylancr f1ss syl2anc nnord ordtri2or2 ackbij2lem4
      syl2an wi ex ancoms orim12d mpd ralrimiva jca mprg rdgfun funiunfv eqcomd
      wfun wb f1eq1 mp2b cdm wlim r1funlim simpli f1eq2 bitr4i mpbir rnuni wrex
      wex eliun df-rex wfn funfn mpbi rdgdmlim limomss ax-mp fvelimab mp2an wfo
      f1ofo forn 3syl eqsstrd rneq sseq1d syl5ibcom rexlimiv sylbi exlimiv csuc
      sselda peano2 fnfvima mp3an12 cvv vex cardnn cdom wbr simpri sseli onssr1
      ssdomg mpsyl con0 onenon finnum carddom2 mpbird eqsstr3d sucssel eleqtrrd
      nnon 4syl eleq1 eleq2d anbi12d spcev impbii 3bitri dff1o5 mpbir2an f1oeq1
      eqriv eqtri ) KLUBUCZLEMZUULLDUDUEZLUBZUCZMZUUQUULLUUPNZUUPUGZLOUURILIUFZ
      KPZUHZLILUUTUUNPZUHZNZUVALUVCNZUVCJUFZUUNPZQZUVHUVCQZUSZJLUIZRUVEILIJLUVC
      UVHUVALUUTUVGUUNUJUUTUUNUKULUUTLSZUVFUVLUVMUVAUVAUMPZUVCNZUVNLQZUVFUVMUVA
      UVNUVCMUVOABUUTCDFGUNUVAUVNUVCUOTUVMLUPZUVNLSZUVPUQUVMUVAUTSUVRUUTURUVAVA
      TLUVNVBVCUVAUVNLUVCVDVEUVMUVKJLUVMUVGLSZRZUUTUVGQZUVGUUTQZUSZUVKUVMUUTUPU
      VGUPUWCUVSUUTVFUVGVFUUTUVGVGVIUVTUWAUVIUWBUVJUVSUVMUWAUVIVJUVSUVMRUWAUVIA
      BUVGUUTCDFGVHVKVLUVTUWBUVJABUUTUVGCDFGVHVKVMVNVOVPVQUURUULLUVDNZUVEUUNWAZ
      UUPUVDOUURUWDWBUDDVRZUWEUVDUUPILUUNVSVTUULLUUPUVDWCWDKWAZUVBUULOUVEUWDWBU
      WGKWEZWFZWGWHILKVSUVBUULLUVDWIWDWJWKUUSIUUOUUTUGZUHZLIUUOWLJUWKLUVGUWKSUV
      GUWJSZIUUOWMUUTUUOSZUWLRZIWNZUVSIUVGUUOUWJWOUWLIUUOWPUWOUVSUWNUVSIUWMUWJL
      UVGUWMUAUFZUUNPZUUTOZUALWMZUWJLQZUUNUUNWEZWQZLUXAQZUWMUWSWBUWEUXBUWFUUNWR
      WSZUXAWFUXCUDDWTUXAXAXBZUAUXALUUTUUNXCXDUWRUWTUALUWPLSZUWQUGZLQUWRUWTUXFU
      XGUWPKPZUMPZLUXFUXHUXIUWQMUXHUXIUWQXEUXGUXIOABUWPCDFGUNUXHUXIUWQXFUXHUXIU
      WQXGXHUXFUVQUXILSZUXILQUQUXFUXHUTSUXJUWPURUXHVATLUXIVBVCXIUWRUXGUWJLUWQUU
      TXJXKXLXMXNXQXOUVSUVGXPZUUNPZUUOSZUVGUXLUGZSZUWOUVSUXKLSZUXMUVGXRZUXBUXCU
      XPUXMUXDUXEUXALUUNUXKXSXTTUVSUVGUXKKPZUMPZUXNUVGYASUVSUXKUXSQZUVGUXSSJYBU
      VSUXPUXTUXQUXPUXKUXKUMPZUXSUXKYCUXPUYAUXSQZUXKUXRYDYEZUXRYASUXPUXKUXRQZUY
      CUXKKUKUXPUXKUWHSUYDLUWHUXKUWILUWHQUWGUWIWGYFUWHXAXBYGUXKYHTUXKUXRYAYIYJU
      XPUXKUMWEZSZUXRUYESZUYBUYCWBUXPUXKYKSUYFUXKYSUXKYLTUXPUXRUTSUYGUXKURUXRYM
      TUXKUXRYNVEYOYPTUVGUXSYAYQYJUVSUXPUXRUXSUXLMUXRUXSUXLXEUXNUXSOUXQABUXKCDF
      GUNUXRUXSUXLXFUXRUXSUXLXGYTYRUWNUXMUXORIUXLUXKUUNUKUUTUXLOZUWMUXMUWLUXOUU
      TUXLUUOUUAUYHUWJUXNUVGUUTUXLXJUUBUUCUUDVEUUEUUFUUJUUKUULLUUPUUGUUHEUUPOUU
      MUUQWBHUULLEUUPUUIXBWK $.
  $}

  ${
    $d a b c d e f $.
    $( The set of hereditarily finite sets is countable.  See ~ ackbij2 for an
       explicit bijection that works without Infinity.  See also ~ r1omALT .
       (Contributed by Stefan O'Rear, 18-Nov-2014.) $)
    r1om $p |- ( R1 ` _om ) ~~ _om $=
      ( va vc vd ve vf vb com cr1 cfv cima cuni cv ciun cvv cpw ccrd weq fveq2d
      cmpt cbvmptv wcel wlim wceq omex limom r1lim mp2an con0 wfun r1fnon fnfun
      cen wfn funiunfv mp2b eqtri cdm cfn cin csn cxp crdg wf1o wbr iuneq1 sneq
      c0 pweq xpeq12d cbviunv syl6eq dmeq pweqd imaeq1 mpteq12dv imaeq2 ackbij2
      eqid fvex eqeltrri f1oen ax-mp eqbrtri ) GHIZHGJKZGULWDAGALZHIMZWEGNUAGUB
      WDWGUCUDUEAGNUFUGHUHUMHUIWGWEUCUJUHHUKAGHUNUOUPZWEGBNCBLZUQZOZWICLZJZDGOU
      RUSZEDLZELZUTZWPOZVAZMZPIZSZIZSZSZVGVBGJKZVCWEGULVDAFXBXEXFDAWNXAFWFFLZUT
      ZXGOZVAZMZPIDAQZWTXKPXLWTEWFWSMXKEWOWFWSVEEFWFWSXJEFQWQXHWRXIWPXGVFWPXGVH
      VIVJVKRTBANXDFWFUQZOZWFXGJZXBIZSZBAQZXDCXNWFWLJZXBIZSXQXRCWKXCXNXTXRWJXMW
      IWFVLVMXRWMXSXBWIWFWLVNRVOCFXNXTXPCFQXSXOXBWLXGWFVPRTVKTXFVRVQWEGXFWDWENW
      HGHVSVTWAWBWC $.
  $}

  ${
    $d f x y z A $.  $d f x y B $.
    $( A set is countable iff its collection of finite intersections is
       countable.  (Contributed by Jeff Hankins, 24-Aug-2009.)  (Proof
       shortened by Mario Carneiro, 17-May-2015.) $)
    fictb $p |- ( A e. B -> ( A ~<_ _om <-> ( fi ` A ) ~<_ _om ) ) $=
      ( vf vy vx vz wcel com cdom wbr cfv wa cvv cpw cfn ccrd wss syl syl2anc
      cv cfi wf1 wex brdomi adantl wi reldom brrelex2i cin c0 csn cdif cdm cint
      cmpt wfo con0 omelon2 ad2antlr pwexg ad2antrr inex1g difss ssdomg crn cen
      mpisyl cima wf1o f1f1orn f1opwfi f1oeng wf f1f frn sspwb sylib ssrin sylc
      cxp ciun weq xpeq12d cbviunv iuneq1 syl5eq fveq2d cbvmptv ackbij1 sylancl
      sneq pweq domentr endomtr domtr ondomen eqid fifo fodomnum exlimdv sylan2
      ex mpd fvex ssfii mpsyl impbid ) ABGZAHIJZAUAKZHIJZXHXIXKXHXILAHCTZUBZCUC
      ZXKXIXNXHAHCUDUEXIXHHMGZXNXKUFAHIUGUHXHXOLZXMXKCXPXMXKXPXMLZXJANZOUIZUJUK
      ZULZIJZYAHIJZXKXQYAPUMGZYAXJDYADTZUNUOZUPZYBXQHUQGZYCYDXOYHXHXMURUSXQYAXS
      IJZXSHIJZYCXQXSMGZYAXSQYIXQXRMGZYKXHYLXOXMABUTVAXROMVBRZXSXTVCYAXSMVDVGXQ
      XSXLVEZNZOUIZVFJZYPHIJZYJXQYKXSYPEXSXLETZVHUOZVIZYQYMXQAYNXLVIZUUAXMUUBXP
      AHXLVJUEAYNXLEVKRXSYPMYTVLSXQYPHNZOUIZIJZUUDHVFJZYRXQUUDMGZYPUUDQZUUEXQUU
      CMGZUUGXOUUIXHXMHMUTUSUUCOMVBRZXQYOUUCQZUUHXQYNHQZUUKXQAHXLVMZUULXMUUMXPA
      HXLVNUEAHXLVORYNHVPVQYOUUCOVRRYPUUDMVDVSXQUUGUUDHEUUDCYSXLUKZXLNZVTZWAZPK
      ZUOZVIUUFUUJDFUUSEDUUDUURFYEFTZUKZUUTNZVTZWAZPKEDWBZUUQUVDPUVEUUQFYSUVCWA
      UVDCFYSUUPUVCCFWBUUNUVAUUOUVBXLUUTWKXLUUTWLWCWDFYSYEUVCWEWFWGWHWIUUDHMUUS
      VLWJYPUUDHWMSXSYPHWNSYAXSHWOSZHYAWPSXHYGXOXMDAYFBYFWQWRVAYAXJYFWSVSUVFXJY
      AHWOSXBWTXAXCXBXHAXJIJZXKXIUFXJMGXHAXJQUVGAUAXDABXEAXJMVDXFUVGXKXIAXJHWOX
      BRXG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cofinality (without Axiom of Choice)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w v A $.
    $( A lemma used to simplify cofinality computations, showing the existence
       of the cardinal of an unbounded subset of a set ` A ` .  (Contributed by
       NM, 24-Apr-2004.) $)
    cflem $p |- ( A e. V -> E. x E. y ( x = ( card ` y )
                  /\ ( y C_ A /\ A. z e. A E. w e. y z C_ w ) ) ) $=
      ( wcel cv wss wrex wral wa wex ccrd cfv wceq ssid sseq2 rspcev mpan2 rgen
      sseq1 rexeq ralbidv anbi12d spcegv mp2ani fvex isseti mpbiran exbii excom
      19.41v bitr3i sylib ) EFGZBHZEIZCHZDHZIZDUQJZCEKZLZBMZAHUQNOZPZVDLZBMAMZU
      PEEIZVADEJZCEKZVEEQVKCEUSEGUSUSIZVKUSQVAVMDUSEUTUSUSRSTUAVDVJVLLBEFUQEPZU
      RVJVCVLUQEEUBVNVBVKCEVADUQEUCUDUEUFUGVEVHAMZBMVIVOVDBVOVGAMVDAVFUQNUHUIVG
      VDAUMUJUKVHBAULUNUO $.

    $( Value of the cofinality function.  Definition B of Saharon Shelah,
       _Cardinal Arithmetic_ (1994), p. xxx (Roman numeral 30).  The cofinality
       of an ordinal number ` A ` is the cardinality (size) of the smallest
       unbounded subset ` y ` of the ordinal number.  Unbounded means that for
       every member of ` A ` , there is a member of ` y ` that is at least as
       large.  Cofinality is a measure of how "reachable from below" an ordinal
       is.  (Contributed by NM, 1-Apr-2004.)  (Revised by Mario Carneiro,
       15-Sep-2013.) $)
    cfval $p |- ( A e. On -> ( cf ` A ) = |^| { x | E. y ( x = ( card ` y ) /\
                 ( y C_ A /\ A. z e. A E. w e. y z C_ w ) ) } ) $=
      ( vv con0 wcel cv ccrd cfv wceq wss wral wa wex cab cint cvv ccf intexab
      cflem sylib sseq2 raleq anbi12d anbi2d exbidv abbidv inteqd df-cf fvmptg
      wrex mpdan ) EGHZAIBIZJKLZUPEMZCIDIMDUPUMZCENZOZOZBPZAQZRZSHZETKVELUOVCAP
      VFABCDEGUBVCAUAUCFEUQUPFIZMZUSCVGNZOZOZBPZAQZRVEGSTVGELZVMVDVNVLVCAVNVKVB
      BVNVJVAUQVNVHURVIUTVGEUPUDUSCVGEUEUFUGUHUIUJFABCDUKULUN $.
  $}

  ${
    $d x y z w v $.
    $( Cofinality is a function on the class of ordinal numbers to the class of
       cardinal numbers.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
    cff $p |- cf : On --> On $=
      ( vx vy vz vw vv con0 cv ccrd cfv wceq wss wrex wral wa wex cab ccf df-cf
      cint wcel wne cardon eleq1 mpbiri adantr exlimiv abssi cflem abn0 oninton
      c0 sylibr sylancr fmpti ) AFFBGZCGZHIZJZUPAGZKDGEGKEUPLDUSMNZNZCOZBPZSZQA
      BCDERUSFTZVCFKVCUKUAZVDFTVBBFVAUOFTZCURVGUTURVGUQFTUPUBUOUQFUCUDUEUFUGVEV
      BBOVFBCDEUSFUHVBBUIULVCUJUMUN $.
  $}

  ${
    $d x y z w v A $.
    $( An upper bound on cofinality.  (Contributed by NM, 25-Apr-2004.)
       (Revised by Mario Carneiro, 15-Sep-2013.) $)
    cfub $p |- ( cf ` A ) C_
            |^| { x | E. y ( x = ( card ` y ) /\ ( y C_ A /\ A C_ U. y ) ) } $=
      ( vz vw con0 wcel ccf cfv cv ccrd wceq wss wa wex cab cint wral eximdv c0
      cuni wrex cfval dfss3 wi ssel onelon ex sylan9r onelss syl6 ancomsd eluni
      imdistand df-rex 3imtr4g ralimdv syl5bi imdistanda anim2d ss2abdv eqsstrd
      intss syl wn cdm cff fdmi eleq2i ndmfv sylnbir 0ss syl6eqss pm2.61i ) CFG
      ZCHIZAJBJZKILZVQCMZCVQUAZMZNZNZBOZAPZQZMVOVPVRVSDJZEJZMZEVQUBZDCRZNZNZBOZ
      APZQZWFABDECUCVOWEWOMWPWFMVOWDWNAVOWCWMBVOWBWLVRVOVSWAWKWAWGVTGZDCRVOVSNZ
      WKDCVTUDWRWQWJDCWRWGWHGZWHVQGZNZEOWTWINZEOWQWJWRXAXBEWRWTWSXBWRWTWSWIWRWT
      WHFGZWSWIUEVSWTWHCGZVOXCVQCWHUFVOXDXCCWHUGUHUIWHWGUJUKUNULSEWGVQUMWIEVQUO
      UPUQURUSUTSVAWEWOVCVDVBVOVEVPTWFVOCHVFZGVPTLXEFCFFHVGVHVICHVJVKWFVLVMVN
      $.

    $( Value of the cofinality function at a limit ordinal.  Part of Definition
       of cofinality of [Enderton] p. 257.  (Contributed by NM,
       26-Apr-2004.) $)
    cflm $p |- ( ( A e. B /\ Lim A ) -> ( cf ` A ) =
           |^| { x | E. y ( x = ( card ` y ) /\ ( y C_ A /\ A = U. y ) ) } ) $=
      ( vz vw vv wcel cvv cfv cv wceq wss cuni wa wex cab cint wrex wral ccf wi
      wlim ccrd elex limsuc biimpd sseq1 rexbidv rspcv vex sucssel ax-mp reximi
      csuc eluni2 sylibr syl6com syl9 ralrimdv dfss3 adantr uniss limuni sseq2d
      syl6ibr syl5ibr jctird eqss imdistanda anim2d eximdv ss2abdv intss adantl
      imp syl con0 limelon cfval sseqtr4d cfub eqimss anim2i eximi ss2abi sstri
      jctil sylan ) CDHCIHZCUCZCUAJZAKBKZUDJLZWMCMZCWMNZLZOZOZBPZAQZRZLZCDUEWJW
      KOZWLXBMZXBWLMZOXCXDXFXEXDXBWNWOEKZFKZMZFWMSZECTZOZOZBPZAQZRZWLWKXBXPMZWJ
      WKXOXAMXQWKXNWTAWKXMWSBWKXLWRWNWKWOXKWQWKWOOZXKCWPMZWPCMZOWQXRXKXSXTWKXKX
      SUBWOWKXKGKZWPHZGCTXSWKXKYBGCWKYACHZYAUOZCHZXKYBWKYCYECYAUFUGYEXKYDXHMZFW
      MSZYBXJYGEYDCXGYDLXIYFFWMXGYDXHUHUIUJYGYAXHHZFWMSYBYFYHFWMYAIHYFYHUBGUKYA
      XHIULUMUNFYAWMUPUQURUSUTGCWPVAVFVBWKWOXTWOXTWKWPCNZMWMCVCWKCYIWPCVDVEVGVP
      VHCWPVIVFVJVKVLVMXOXAVNVQVOXDCVRHWLXPLCIVSABEFCVTVQWAWLWNWOXSOZOZBPZAQZRZ
      XBABCWBXAYMMYNXBMWTYLAWSYKBWRYJWNWQXSWOCWPWCWDWDWEWFXAYMVNUMWGWHWLXBVIUQW
      I $.
  $}

  ${
    $d x y $.
    $( Value of the cofinality function at 0.  Exercise 2 of [TakeutiZaring]
       p. 102.  (Contributed by NM, 16-Apr-2004.) $)
    cf0 $p |- ( cf ` (/) ) = (/) $=
      ( vx vy c0 ccf cfv wss wceq cv ccrd cuni wex cab cint cfub csn ss0b bitri
      wa 0ss 0ex biantru bitr3i anbi2i ancom exbii eqeq2d ceqsexv eqeq2i eqtr4i
      fveq2 card0 abbii df-sn inteqi intsn eqtri sseqtri mpbi ) CDEZCFUSCGUSAHZ
      BHZIEZGZVACFZCVAJZFZRZRZBKZALZMZCABCNVKCOZMCVJVLVJUTCGZALVLVIVMAVIVACGZVC
      RZBKZVMVHVOBVHVCVNRVOVGVNVCVGVDVNVFVDVESUAVAPUBUCVCVNUDQUEVPUTCIEZGZVMVCV
      RBCTVNVBVQUTVACIUJUFUGVQCUTUKUHQQULACUMUIUNCTUOUPUQUSPUR $.
  $}

  ${
    $d x y z w v A $.
    $( Cofinality is a cardinal number.  Proposition 11.11 of [TakeutiZaring]
       p. 103.  (Contributed by NM, 24-Apr-2004.)  (Revised by Mario Carneiro,
       15-Sep-2013.) $)
    cardcf $p |- ( card ` ( cf ` A ) ) = ( cf ` A ) $=
      ( vx vy vz vw vv con0 wcel ccf cfv ccrd wceq cv wss wa c0 fveq2 syl6eqelr
      wex cvv wrex wral cab cint cfval wne vex eqeq1 anbi1d exbidv elab cardidm
      syl6eq eqeq2 mpbird adantr exlimiv sylbi cardon ssriv fvex sylibr sylancr
      intex onint eqeltrd id eqeq12d vtoclga syl wn cdm cff fdmi eleq2i sylnbir
      ndmfv card0 3eqtr4a pm2.61i ) AGHZAIJZKJZWBLZWAWBBMZCMZKJZLZWFANDMEMNEWFU
      ADAUBOZOZCSZBUCZHWDWAWBWLUDZWLBCDEAUEZWAWLGNWLPUFZWMWLHFWLGFMZWLHZWPWPKJZ
      GWQWPWGLZWIOZCSZWRWPLZWKXABWPFUGWEWPLZWJWTCXCWHWSWIWEWPWGUHUIUJUKWTXBCWSX
      BWIWSXBWRWGLWSWRWGKJWGWPWGKQWFULUMWPWGWRUNUOUPUQURZWPUSRUTWAWMTHWOWAWMWBT
      WNAIVARWLVDVBWLVEVCVFXBWDFWBWLWPWBLZWRWCWPWBWPWBKQXEVGVHXDVIVJWAVKWBPLZWD
      WAAIVLZHXFXGGAGGIVMVNVOAIVQVPXFPKJPWCWBVRWBPKQXFVGVSVJVT $.

    $( Cofinality is bounded by the cardinality of its argument.  (Contributed
       by NM, 24-Apr-2004.)  (Revised by Mario Carneiro, 15-Sep-2013.) $)
    cflecard $p |- ( cf ` A ) C_ ( card ` A ) $=
      ( vx vy vz vw con0 wcel ccf cfv ccrd wss cv wceq wrex wral wa cab anbi12d
      cint ssid wex cfval csn df-sn sseq2 rspcev mpan2 rgen pm3.2i fveq2 eqeq2d
      sseq1 rexeq ralbidv spcegv ss2abdv syl5eqss intss syl fvex intsn syl6sseq
      mpan2i eqsstrd wn cdm cff fdmi eleq2i ndmfv sylnbir 0ss syl6eqss pm2.61i
      c0 ) AFGZAHIZAJIZKVPVQBLZCLZJIZMZVTAKZDLZELZKZEVTNZDAOZPZPZCUAZBQZSZVRBCD
      EAUBVPWMVRUCZSZVRVPWNWLKWMWOKVPWNVSVRMZBQWLBVRUDVPWPWKBVPWPAAKZWFEANZDAOZ
      PZWKWQWSATWRDAWDAGWDWDKZWRWDTWFXAEWDAWEWDWDUEUFUGUHUIWJWPWTPCAFVTAMZWBWPW
      IWTXBWAVRVSVTAJUJUKXBWCWQWHWSVTAAULXBWGWRDAWFEVTAUMUNRRUOVCUPUQWNWLURUSVR
      AJUTVAVBVDVPVEVQVOVRVPAHVFZGVQVOMXCFAFFHVGVHVIAHVJVKVRVLVMVN $.

    $( Cofinality is bounded by its argument.  Exercise 1 of [TakeutiZaring]
       p. 102.  (Contributed by NM, 26-Apr-2004.)  (Revised by Mario Carneiro,
       15-Sep-2013.) $)
    cfle $p |- ( cf ` A ) C_ A $=
      ( con0 wcel ccf cfv wss ccrd cflecard cardonle syl5ss wn c0 cdm wceq fdmi
      cff eleq2i ndmfv sylnbir 0ss syl6eqss pm2.61i ) ABCZADEZAFUCUDAGEAAHAIJUC
      KUDLAUCADMZCUDLNUEBABBDPOQADRSATUAUB $.
  $}

  $( The cofinality of any set is an ordinal (although it only makes sense when
     ` A ` is an ordinal).  (Contributed by Mario Carneiro, 9-Mar-2013.) $)
  cfon $p |- ( cf ` A ) e. On $=
    ( ccf cfv ccrd con0 cardcf cardon eqeltrri ) ABCZDCIEAFIGH $.

  ${
    $d A v w x y z $.
    $( Only the ordinal zero has cofinality zero.  (Contributed by NM,
       24-Apr-2004.)  (Revised by Mario Carneiro, 12-Feb-2013.) $)
    cfeq0 $p |- ( A e. On -> ( ( cf ` A ) = (/) <-> A = (/) ) ) $=
      ( vx vy vz vw vv con0 wcel ccf cfv c0 wceq cv ccrd wss wrex wral wa wex
      wb cab cint cfval eqeq1d vex eqeq1 anbi1d exbidv elab fveq2 cardidm eqeq2
      syl6eq mpbird adantr exlimiv sylbi cardon syl6eqelr ssriv onint0 0ex onss
      ax-mp w3a ancoms sylan 3adant2 3adant3r simp2 simp3 eqcom cdm cvv onssnum
      sstr mpan cardnueq0 syl syl5bb biimpa sseq1 rexeq ralbidv anbi12d wn rex0
      wne rgenw r19.2z mpan2 rexnal sylib necon4ai adantl 3expib exlimdv syl5bi
      syl21anc sylbid cf0 impbid1 ) AGHZAIJZKLZAKLZXCXEBMZCMZNJZLZXHAOZDMEMOZEX
      HPZDAQZRZRZCSZBUAZUBZKLZXFXCXDXSKBCDEAUCUDXTKXRHZXCXFXRGOXTYATFXRGFMZXRHZ
      YBYBNJZGYCYBXILZXORZCSZYDYBLZXQYGBYBFUEXGYBLZXPYFCYIXJYEXOXGYBXIUFUGUHUIY
      FYHCYEYHXOYEYHYDXILYEYDXINJXIYBXINUJXHUKUMYBXIYDULUNUOUPUQYBURUSUTXRVAVDY
      AKXILZXORZCSZXCXFXQYLBKVBXGKLZXPYKCYMXJYJXOXGKXIUFUGUHUIXCYKXFCXCYJXOXFXC
      YJXOVEXHGOZYJXOXFXCYJXKYNXNXCXKYNYJXCAGOZXKYNAVCXKYOYNXHAGVPVFVGVHVIXCYJX
      OVJXCYJXOVKYNYJRZXORKAOZXLEKPZDAQZRZXFYPXHKLZXOYTYNYJUUAYJXIKLZYNUUAKXIVL
      YNXHNVMHZUUBUUATXHVNHYNUUCCUEXHVNVOVQXHVRVSVTWAUUAXOYTUUAXKYQXNYSXHKAWBUU
      AXMYRDAXLEXHKWCWDWEWAVGYSXFYQYSAKAKWHZYRWFZDAPZYSWFUUDUUEDAQUUFUUEDAXLEWG
      WIUUEDAWJWKYRDAWLWMWNWOVSWSWPWQWRWRWTXFXDKIJKAKIUJXAUMXB $.
  $}

  ${
    $d x y z w v A $.
    $( Value of the cofinality function at a successor ordinal.  Exercise 3 of
       [TakeutiZaring] p. 102.  (Contributed by NM, 23-Apr-2004.)  (Revised by
       Mario Carneiro, 12-Feb-2013.) $)
    cfsuc $p |- ( A e. On -> ( cf ` suc A ) = 1o ) $=
      ( vx vy vz vw vv con0 wcel cfv cv ccrd wceq wss wrex wral wa wex c1o wn
      c0 csuc ccf cab sucelon cfval sylbi csn cardsn eqcomd snidg elsuci onelss
      cint wo wi eqimss a1i jaod syl5 sseq2 rspcev syl6an ralrimiv ssun2 df-suc
      cun sseqtr4i jctil fveq2 eqeq2d sseq1 rexeq ralbidv anbi12d spcev syl2anc
      snex 1on elexi eqeq1 anbi1d exbidv elab sylibr el1o eqcom cdm cvv onssnum
      vex mpan cardnueq0 syl syl5bb biimpa rex0 nrex wne nsuceq0 r19.2z intnand
      wb mto mtbiri imnan mpbi suceloni onss sstr sylan2 ancoms adantrr 3adant2
      w3a simp2 simp3 jca31 3expib nexdv 0ex sylnibr adantr eleq1 adantl mtbird
      mtoi sylan2b ralrimiva cardon mpbiri exlimiv abssi oneqmini ax-mp eqtr4d
      ) AGHZAUAZUBIZBJZCJZKIZLZYTYQMZDJZEJZMZEYTNZDYQOZPZPZCQZBUCZUMZRYPYQGHZYR
      UUMLAUDBCDEYQUEUFYPRUULHZFJZUULHZSZFROZRUUMLZYPRUUALZUUIPZCQZUUOYPRAUGZKI
      ZLZUVDYQMZUUFEUVDNZDYQOZPZUVCYPUVERAGUHUIYPUVIUVGYPUVHDYQYPAUVDHUUDYQHZUU
      DAMZUVHAGUJUVKUUDAHZUUDALZUNYPUVLUUDAUKYPUVMUVLUVNAUUDULUVNUVLUOYPUUDAUPU
      QURUSUUFUVLEAUVDUUEAUUDUTVAVBVCUVDAUVDVFYQUVDAVDAVEVGVHUVBUVFUVJPCUVDAVQY
      TUVDLZUVAUVFUUIUVJUVOUUAUVERYTUVDKVIVJUVOUUCUVGUUHUVIYTUVDYQVKUVOUUGUVHDY
      QUUFEYTUVDVLVMVNVNVOVPUUKUVCBRRGVRVSYSRLZUUJUVBCUVPUUBUVAUUIYSRUUAVTWAWBW
      CWDYPUURFRUUPRHYPUUPTLZUURUUPWEYPUVQPUUQTUULHZYPUVRSUVQYPTUUALZUUIPZCQZUV
      RYPUVTCYPUVTYTGMZUVSPZUUIPZUWCUUISUOUWDSUWCUUHUUCUWCYTTLZUUHSUWBUVSUWEUVS
      UUATLZUWBUWETUUAWFUWBYTKWGHZUWFUWEXBYTWHHUWBUWGCWJYTWHWIWKYTWLWMWNWOUWEUU
      HUUFETNZDYQOZUWIUWHDYQNZUWHDYQUWHSUVKUUFEWPUQWQYQTWRUWIUWJAWSUWHDYQWTWKXC
      UWEUUGUWHDYQUUFEYTTVLVMXDWMXAUWCUUIXEXFYPUVSUUIUWDYPUVSUUIXNUWBUVSUUIYPUU
      IUWBUVSYPUUCUWBUUHUUCYPUWBYPUUCUUNUWBAXGUUNUUCYQGMUWBYQXHYTYQGXIXJXJXKXLX
      MYPUVSUUIXOYPUVSUUIXPXQXRYFXSUUKUWABTXTYSTLZUUJUVTCUWKUUBUVSUUIYSTUUAVTWA
      WBWCYAYBUVQUUQUVRXBYPUUPTUULYCYDYEYGYHUULGMUUOUUSPUUTUOUUKBGUUJYSGHZCUUBU
      WLUUIUUBUWLUUAGHYTYIYSUUAGYCYJYBYKYLFRUULYMYNVPYO $.
  $}

  ${
    $d A f s w y z $.  $d A s x y z $.
    $( There is always a map from ` ( cf `` A ) ` to ` A ` (this is a stronger
       condition than the definition, which only presupposes a map from some
       ` y ~~ ( cf `` A ) ` .  (Contributed by Mario Carneiro, 28-Feb-2013.) $)
    cff1 $p |- ( A e. On -> E. f ( f : ( cf ` A ) -1-1-> A /\
        A. z e. A E. w e. ( cf ` A ) z C_ ( f ` w ) ) ) $=
      ( vy vs vx con0 wcel ccf cfv cv ccrd wceq wss wrex wral wa wex cen wf1 c0
      cab cint cfval cardon eleq1 mpbiri adantr exlimiv abssi cflem abn0 sylibr
      wne onint sylancr eqeltrd fvex eqeq1 anbi1d exbidv elab sylib wf1o simplr
      onss sstr sylan2 ancoms ad2ant2r wbr cdm cvv vex onssnum mpan cardid2 syl
      adantl wb breq1 mpbird bren syl2anc w3a f1of1 f1ss adantlr 3adant1 wfo wi
      f1ofo foelrn biimpcd reximdv syl5com rexlimdva ralimdv impcom adantll jca
      sseq2 3expia eximdv mpd expl exlimdv ) CHIZCJKZELZMKZNZXKCOZALZFLZOZFXKPZ
      ACQZRZRZESZXJCDLZUAZXOBLYCKZOZBXJPZACQZRZDSZXIXJGLZXLNZXTRZESZGUCZIYBXIXJ
      YOUDZYOGEAFCUEXIYOHOYOUBUOZYPYOIYNGHYMYKHIZEYLYRXTYLYRXLHIXKUFYKXLHUGUHUI
      UJUKXIYNGSYQGEAFCHULYNGUMUNYOUPUQURYNYBGXJCJUSYKXJNZYMYAEYSYLXMXTYKXJXLUT
      VAVBVCVDXIYAYJEXIXMXTYJXIXMRZXTRZXJXKYCVEZDSZYJUUAXMXKHOZUUCXIXMXTVFXIXNU
      UDXMXSXNXIUUDXIXNCHOUUDCVGXKCHVHVIVJVKXMUUDRZXJXKTVLZUUCUUEUUFXLXKTVLZUUD
      UUGXMUUDXKMVMIZUUGXKVNIUUDUUHEVOXKVNVPVQXKVRVSVTXMUUFUUGWAUUDXJXLXKTWBUIW
      CXJXKDWDVDWEUUAUUBYIDYTXTUUBYIYTXTUUBWFYDYHXTUUBYDYTXNUUBYDXSUUBXNXJXKYCU
      AZYDXJXKYCWGUUIXNYDXJXKCYCWHVJVIWIWJXTUUBYHYTXSUUBYHXNUUBXSYHUUBXJXKYCWKZ
      XSYHWLXJXKYCWMUUJXRYGACUUJXQYGFXKUUJXPXKIRXPYENZBXJPXQYGBXJXKXPYCWNXQUUKY
      FBXJUUKXQYFXPYEXOXCWOWPWQWRWSVSWTXAWJXBXDXEXFXGXHXF $.
  $}

  ${
    $d A f s w z $.  $d A f s x y z $.  $d B f x $.  $d B f w z $.
    $( If there is a cofinal map from ` B ` to ` A ` , then ` B ` is at least
       ` ( cf `` A ) ` .  This theorem and ~ cff1 motivate the picture of
       ` ( cf `` A ) ` as the greatest lower bound of the domain of cofinal
       maps into ` A ` .  (Contributed by Mario Carneiro, 28-Feb-2013.) $)
    cfflb $p |- ( ( A e. On /\ B e. On ) -> ( E. f ( f : B --> A /\
        A. z e. A E. w e. B z C_ ( f ` w ) ) -> ( cf ` A ) C_ B ) ) $=
      ( vs vx vy con0 wcel wa cv cfv wss wrex wral ccrd wceq 3ad2ant2 wbr sylan
      wf ccf crn frn adantr wfn ffn fnfvelrn sseq2 rspcev exp31 ralimdv imp jca
      rexlimdv wi fvex w3a wex cab cint cfval vex rnex fveq2 eqeq2d sseq1 rexeq
      ralbidv anbi12d spcev abid sylibr intss1 syl 3adant2 3expib sylibd vtocle
      eqsstrd sylan2 cardidm cdom cen cdm cvv sylan9ssr onssnum sylancr cardid2
      onss onenon dffn4 sylib fodomnum syl2im 3adant1 endomtr syl2anc wb cardon
      wfo ax-mp carddom2 mpbird cardonle sstrd syl5eqssr 3expa adantrr exlimdv
      ex ) CIJZDIJZKZDCELZUBZALZBLZXQMZNZBDOZACPZKZCUCMZDNZEXPYEYGXPYEKYFXQUDZQ
      MZDYEXPYHCNZXSFLZNZFYHOZACPZKZYFYINZYEYJYNXRYJYDDCXQUEZUFXRYDYNXRYCYMACXR
      YBYMBDXRXTDJZYBYMXRYRKYAYHJZYBYMXRXQDUGZYRYSDCXQUHZDXTXQUIUAYLYBFYAYHYKYA
      XSUJUKUAULUPUMUNUOXPYOKZYPUQGYIYHQURGLZYIRZUUBYFUUCNZYPUUDXPYOUUEUUDXPYOU
      SYFUUCHLZQMZRZUUFCNZYLFUUFOZACPZKZKZHUTZGVAZVBZUUCXPUUDYFUUPRZYOXNUUQXOGH
      AFCVCUFSUUDYOUUPUUCNZXPUUDYOKZUUCUUOJZUURUUSUUNUUTUUMUUSHYHXQEVDVEZUUFYHR
      ZUUHUUDUULYOUVBUUGYIUUCUUFYHQVFVGUVBUUIYJUUKYNUUFYHCVHUVBUUJYMACYLFUUFYHV
      IVJVKVKVLUUNGVMVNUUCUUOVOVPVQWAVRUUCYIYFUJVSVTWBXPXRYIDNZYDXNXOXRUVCXNXOX
      RUSZYIYIQMZDYHWCUVDUVEDQMZDUVDUVEUVFNZYIDWDTZUVDYIYHWETZYHDWDTZUVHUVDYHQW
      FZJZUVIUVDYHWGJYHINZUVLUVAXNXRUVMXOXRXNYHCIYQCWLWHVQYHWGWIWJYHWKVPXOXRUVJ
      XNXOXRUVJXODUVKJZXRDYHXQXCZUVJDWMZXRYTUVOUUADXQWNWODYHXQWPWQUNWRYIYHDWSWT
      XOXNUVGUVHXAZXRXOYIUVKJZUVNUVQYIIJUVRYHXBYIWMXDUVPYIDXEWJSXFXOXNUVFDNXRDX
      GSXHXIXJXKXHXMXL $.
  $}

  ${
    $d A w x y z $.
    $( Another expression for the cofinality function.  (Contributed by Mario
       Carneiro, 28-Feb-2013.) $)
    cfval2 $p |- ( A e. On -> ( cf ` A ) =
        |^|_ x e. { x e. ~P A | A. z e. A E. w e. x z C_ w } ( card ` x ) ) $=
      ( vy con0 wcel ccf cfv cv ccrd wceq wss wrex wral wa wex cab cint bitri
      crab ciin cfval fvex dfiin2 df-rex rabid selpw anbi1i anbi2ci exbii abbii
      cpw inteqi eqtr2i syl6eq ) DFGDHIEJAJZKIZLZUQDMZBJCJMCUQNBDOZPZPZAQZERZSZ
      AVAADUMZUAZURUBZEABCDUCVIUSAVHNZERZSVFAEVHURUQKUDUEVKVEVJVDEVJUQVHGZUSPZA
      QVDUSAVHUFVMVCAVLVBUSVLUQVGGZVAPVBVAAVGUGVNUTVAADUHUITUJUKTULUNUOUP $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( A simpler expression for the cofinality predicate, at a limit ordinal.
       (Contributed by Mario Carneiro, 28-Feb-2013.) $)
    coflim $p |- ( ( Lim A /\ B C_ A ) ->
      ( U. B = A <-> A. x e. A E. y e. B x C_ y ) ) $=
      ( wlim wss wa cuni wceq wrex wral wcel eleq2 biimprd wel eluni2 con0 word
      cv wi limord ssel2 ordelon syl2an expr onelss syl6 reximdvai syl5bi syl9r
      ralrimdv w3a uniss 3ad2ant2 uniss2 3ad2ant3 limuni 3ad2ant1 eqtr4d 3expia
      eqssd impbid ) CEZDCFZGZDHZCIZASZBSZFZBDJZACKZVEVGVKACVGVHCLZVHVFLZVEVKVG
      VNVMVFCVHMNVNABOZBDJVEVKBVHDPVEVOVJBDVEVIDLZVIQLZVOVJTVCVDVPVQVCCRVICLVQV
      DVPGCUADCVIUBCVIUCUDUEVIVHUFUGUHUIUJUKVCVDVLVGVCVDVLULZVFCHZCVRVFVSVDVCVF
      VSFVLDCUMUNVLVCVSVFFVDABCDUOUPVAVCVDCVSIVLCUQURUSUTVB $.
  $}

  ${
    $d A w x y z $.
    cflim3.1 $e |- A e. _V $.
    $( Another expression for the cofinality function.  (Contributed by Mario
       Carneiro, 28-Feb-2013.) $)
    cflim3 $p |- ( Lim A -> ( cf ` A ) =
        |^|_ x e. { x e. ~P A | U. x = A } ( card ` x ) ) $=
      ( vy vz vw wlim ccf cfv cv ccrd wceq wss wrex wa wex cab cint wcel syl5bb
      wral cuni crab ciin con0 word limord elon sylibr cfval fvex dfiin2 df-rex
      cpw ancom rabid selpw anbi1i coflim pm5.32da anbi2d exbidv abbidv syl5req
      syl inteqd eqtrd ) BGZBHIZDJAJZKIZLZVJBMZEJFJMFVJNEBUAZOZOZAPZDQZRZAVJUBB
      LZABUNZUCZVKUDZVHBUESZVIVSLVHBUFWDBUGBCUHUIDAEFBUJVEVHWCVLAWBNZDQZRVSADWB
      VKVJKUKULVHWFVRVHWEVQDWEVJWBSZVLOZAPVHVQVLAWBUMVHWHVPAWHVLWGOVHVPWGVLUOVH
      WGVOVLWGVJWASZVTOZVHVOVTAWAUPWJVMVTOVHVOWIVMVTABUQURVHVMVTVNEFBVJUSUTTTVA
      TVBTVCVFVDVG $.
  $}

  ${
    $d A s y $.  $d A x y $.  $d s t y $.
    cflim2.1 $e |- A e. _V $.
    $( The cofinality function is a limit ordinal iff its argument is.
       (Contributed by Mario Carneiro, 28-Feb-2013.)  (Revised by Mario
       Carneiro, 15-Sep-2013.) $)
    cflim2 $p |- ( Lim A <-> Lim ( cf ` A ) ) $=
      ( vy vt vs vx wlim ccf com wss wceq wcel wa wn cep wbr con0 wb c0 c1o cfv
      cv cuni cpw crab ccrd ciin wral rabid selpw w3a ccnv wrex wel word limord
      ordsson sstr expcom 3syl imp 3adant3 ssel2 eloni ordirr ssel com12 adantl
      mtod sylan simpl2 simpl3 sseq1d mtbird unissb sylnib nrexdv ontri1 ancoms
      wi mtand vex brcnv epel notbii syl6bbr a1i syl2and impl ralbidva rexbidva
      bitri syl mtbid cvv wfr wne wwe wor cfn epweon wess mpi weso cnvso adantr
      sylib csdm cen onssnum mpan cardid2 ensym nnsdom ensdomtr syl2an isfinite
      sylibr wofi syl2anc wefr ssid unieq uni0 syl6eq eqeq1 syl5ib nlim0 mtbiri
      cdm limeq syl6 cab fvex sseq2 bibi12d mpbiri rexlimivw wo fveq2 fri ordom
      necon2ad impcom 3adant2 syl22anc ordtri1 syl3an2b 3expb sylan2b ralrimiva
      cardon mp2b ssiin cflim3 cint dfiin2 cardlim ss2abi eleq1 abssi syl6eqelr
      sseqtr4d intex onint sylancr sseldi eqeltrd elab mpbid csuc ordzsl df-3or
      w3o orcom df-or 3bitri cf0 1n0 csn df1o2 unieqi 0ex unisn neeqtrri limuni
      eqtri necon3ai ax-mp cfsuc sylan9eqr rexlimiva jaoi con4d cff fdmi eleq2i
      ndmfv sylnbir pm2.21d pm2.61i impbii ) AGZAHUAZGZUXCIUXDJZUXEUXCICCUBZUCZ
      AKZCAUDZUEZUXGUFUAZUGZUXDUXCIUXLJZCUXKUHIUXMJUXCUXNCUXKUXGUXKLUXCUXGUXJLZ
      UXIMUXNUXICUXJUIUXCUXOUXIUXNUXOUXCUXGAJZUXIUXNCAUJUXCUXPUXIUKZUXLILZNZUXN
      UXQUXRDUBZEUBZOULZPZNZDUXGUHZEUXGUMZUXQUXTUYAJZDUXGUHZEUXGUMZUYFUXQUYHEUX
      GUXQECUNZMZUXHUYAJZUYHUYKUYLAUYAJZUYKUYMUXGUYAJZUXQUXGQJZUYJUYNNUXCUXPUYO
      UXIUXCUXPUYOUXCAUOZAQJZUXPUYOVTAUPAUQUXPUYQUYOUXGAQURUSUTVAVBZUYOUYJMZUYN
      EEUNZUYSUYAQLZUYAUOUYTNUXGQUYAVCUYAVDUYAVEUTUYJUYNUYTVTUYOUYNUYJUYTUXGUYA
      UYAVFVGVHVIVJUYKUXPUYMUYNUXCUXPUXIUYJVKUXGAUYAURVJWAUYKUXHAUYAUXCUXPUXIUY
      JVLVMVNDUXGUYAVOVPVQUXQUYOUYIUYFRUYRUYOUYHUYEEUXGUYSUYGUYDDUXGUYOUYJDCUNZ
      UYGUYDRZUYOUYJVUAVUBUXTQLZVUCUXGQUYAVFUXGQUXTVFVUAVUDMZVUCVTUYOVUEUYGEDUN
      ZNZUYDVUDVUAUYGVUGRUXTUYAVRVSUYCVUFUYCUYAUXTOPVUFUXTUYAODWBEWBWCEDWDWLWEW
      FWGWHWIWJWKWMWNUXQUXRMZUXGWOLZUXGUYBWPZUXGUXGJZUXGSWQZUYFVUIVUHCWBZWGVUHU
      XGUYBWRZVUJUXQUYOUXRVUNUYRUYOUXRMZUXGUYBWSZUXGWTLZVUNUYOVUPUXRUYOUXGOWSZV
      UPUYOUXGOWRZVURUYOQOWRVUSXAUXGQOXBXCUXGOXDWMUXGOXEXGXFVUOUXGIXHPZVUQUYOUX
      GUXLXIPZUXLIXHPVUTUXRUYOUXGUFYJLZUXLUXGXIPVVAVUIUYOVVBVUMUXGWOXJXKUXGXLUX
      LUXGXMUTUXLXNUXGUXLIXOXPUXGXQXRUXGUYBXSXTVJUXGUYBYAWMVUKVUHUXGYBWGUXQVULU
      XRUXCUXIVULUXPUXIUXCVULUXIUXCUXGSUXIUXGSKZASKZUXCNZVVCUXHSKUXIVVDVVCUXHSU
      CSUXGSYCYDYEUXHASYFYGVVDUXCSGZYHASYKYIYLUUCUUDUUEXFEDUXGUXGWOUYBUUAUUFWAU
      XLQLZUXLUOZUXNUXSRZUXGUULZUXLVDIUOVVHVVIUUBIUXLUUGXKUUMXRUUHUUIUUJUUKCUXK
      UXLIUUNXRCABUUOZUVCUXCUXDIFUBZJZVVLGZRZFYMZLUXFUXERZUXCUXDVVLUXLKZCUXKUMZ
      FYMZUUPZVVPUXCUXDUXMVWAVVKCFUXKUXLUXGUFYNUUQYEZUXCVVTVVPVWAVVSVVOFVVRVVOC
      UXKVVRVVOUXNUXLGZRUXGUURVVRVVMUXNVVNVWCVVLUXLIYOVVLUXLYKYPYQYRUUSUXCVVTQJ
      VVTSWQZVWAVVTLVVSFQVVRVVLQLZCUXKVVRVWEVVGVVJVVLUXLQUUTYQYRUVAUXCVWAWOLVWD
      UXCVWAUXDWOVWBAHYNZUVBVVTUVDXRVVTUVEUVFUVGUVHVVOVVQFUXDVWFVVLUXDKVVMUXFVV
      NUXEVVLUXDIYOVVLUXDYKYPUVIXGUVJAQLZUXEUXCVTVWGUXCUXEVWGVVEVVDAVVLUVKZKZFQ
      UMZYSZUXENZVWGVVDVWJUXCUVNZVVEVWKVTZVWGUYPVWMAVDFAUVLXGVWMVWKUXCYSUXCVWKY
      SVWNVVDVWJUXCUVMVWKUXCUVOUXCVWKUVPUVQXGVVDVWLVWJVVDUXEVVFYHVVDUXDSKZUXEVV
      FRZVVDUXDSHUASASHYTUVRYEUXDSYKZWMYIVWIVWLFQVWEVWIMZUXETGZTTUCZWQVWSNTSVWT
      UVSVWTSUVTZUCSTVXAUWAUWBSUWCUWDUWGUWEVWSTVWTTUWFUWHUWIVWRUXDTKUXEVWSRVWIV
      WEUXDVWHHUATAVWHHYTVVLUWJUWKUXDTYKWMYIUWLUWMYLUWNVWGNZUXEUXCVXBUXEVVFYHVX
      BVWOVWPVWGAHYJZLVWOVXCQAQQHUWOUWPUWQAHUWRUWSVWQWMYIUWTUXAUXB $.
  $}

  $( Value of the cofinality function at omega (the set of natural numbers).
     Exercise 4 of [TakeutiZaring] p. 102.  (Contributed by NM, 23-Apr-2004.)
     (Proof shortened by Mario Carneiro, 11-Jun-2015.) $)
  cfom $p |- ( cf ` _om ) = _om $=
    ( com ccf cfv cfle wlim wss limom omex cflim2 mpbi limomss ax-mp eqssi ) AB
    CZAADNEZANFAEOGAHIJNKLM $.

  ${
    $d A x y $.
    cfss.1 $e |- A e. _V $.
    $( There is a cofinal subset of ` A ` of cardinality ` ( cf `` A ) ` .
       (Contributed by Mario Carneiro, 24-Jun-2013.) $)
    cfss $p |- ( Lim A -> E. x ( x C_ A /\ x ~~ ( cf ` A ) /\ U. x = A ) ) $=
      ( vy cv cuni wceq wcel cfv ccrd wex wss cen wbr wrex fvex con0 syl sylib
      wa wlim cpw crab ccf w3a cab ciin cflim3 cint dfiin2 c0 wne cardon mpbiri
      eleq1 rexlimivw abssi limuni eqcomd fveq2 biantrud unieq eqeq1d biantrurd
      bitr3d anbi1d bitr2d spcev df-rex rabid anbi1i exbii bitri sylibr rexbidv
      pwid eqeq1 abn0 onint sylancr syl5eqel eqeltrd simprl simpld elpwid simpl
      elab cdm cvv vex word limord ordsson sylan2 onssnum cardid2 ensymd simprr
      sstr syl2anc breqtrrd simprd 3jca ex eximdv mpd ) BUAZAEZXHFZBGZABUBZUCZH
      ZBUDIZXHJIZGZTZAKZXHBLZXHXNMNZXJUEZAKXGXPAXLOZXRXGXNDEZXOGZAXLOZDUFZHYBXG
      XNAXLXOUGZYFABCUHXGYGYFUIZYFADXLXOXHJPUJXGYFQLYFUKULZYHYFHYEDQYDYCQHZAXLY
      DYJXOQHXHUMYCXOQUOUNUPUQXGYEDKZYIXGBJIZXOGZAXLOZYKXGXHXKHZXJTZYMTZAKZYNXG
      BFZBGZYRXGBYSBURUSYQYTABCXHBGZYTYTYMTYQUUAYMYTUUAXOYLXHBJUTUSVAUUAYTYPYMU
      UAXJYTYPUUAXIYSBXHBVBVCUUAYOXJUUAYOBXKHBCVPXHBXKUOUNVDVEVFVGVHRYNXMYMTZAK
      YRYMAXLVIUUBYQAXMYPYMXJAXKVJZVKVLVMVNYEYNDYLBJPYCYLGYDYMAXLYCYLXOVQVOVHRY
      EDVRVNYFVSVTWAWBYEYBDXNBUDPYCXNGYDXPAXLYCXNXOVQVOWGSXPAXLVISXGXQYAAXGXQYA
      XGXQTZXSXTXJUUDXHBUUDYOXJUUDXMYPXGXMXPWCUUCSZWDWEZUUDXHXOXNMUUDXSXGXHXOMN
      UUFXGXQWFXSXGTZXOXHUUGXHJWHHZXOXHMNUUGXHWIHXHQLZUUHAWJXGXSBQLZUUIXGBWKUUJ
      BWLBWMRXHBQWSWNXHWIWOVTXHWPRWQWTXGXMXPWRXAUUDYOXJUUEXBXCXDXEXF $.
  $}

  ${
    $d A x $.  $d B x $.
    cfslb.1 $e |- A e. _V $.
    $( Any cofinal subset of ` A ` is at least as large as ` ( cf `` A ) ` .
       (Contributed by Mario Carneiro, 24-Jun-2013.) $)
    cfslb $p |- ( ( Lim A /\ B C_ A /\ U. B = A ) -> ( cf ` A ) ~<_ B ) $=
      ( vx wss cuni wceq cfv ccrd cdom wbr cvv wcel wex anbi12d sseq1d syl con0
      wa syl2anc wlim w3a ccf cen fvex cv cpw crab ciin wrex ssid ssex ad2antrr
      selpw sseq1 syl5bb unieq eqeq1d fveq2 mpcom rabid exbii bitri mpan2 iinss
      spcegv df-rex anbi1i sylibr cflim3 syl5ibr 3impib ssdomg mpsyl cdm adantl
      word limord ordsson sstr2 mpan9 onssnum cardid2 3adant3 domentr ) AUAZBAE
      ZBFZAGZUBZAUCHZBIHZJKZWLBUDKZWKBJKWLLMWJWKWLEZWMBIUEWFWGWIWOWGWISZWOWFDDU
      FZFZAGZDAUGZUHZWQIHZUIZWLEZWPXBWLEZDXAUJZXDWPWLWLEZXFWLUKWPXGSZWQWTMZWSSZ
      XESZDNZXFBLMZXHXLWGXMWIXGBACULZUMXKXHDBLWQBGZXJWPXEXGXOXIWGWSWIXIWQAEXOWG
      DAUNWQBAUOUPXOWRWHAWQBUQUROXOXBWLWLWQBIUSPOVFUTXFWQXAMZXESZDNXLXEDXAVGXQX
      KDXPXJXEWSDWTVAVHVBVCVIVDDXAXBWLVEQWFWKXCWLDACVJPVKVLWKWLLVMVNWFWGWNWIWFW
      GSZBIVOMZWNXRXMBREZXSWGXMWFXNVPWFAREZWGXTWFAVQYAAVRAVSQBARVTWABLWBTBWCQWD
      WKWLBWET $.

    $( Any subset of ` A ` smaller than its cofinality has union less than
       ` A ` .  (This is the contrapositive to ~ cfslb .)  (Contributed by
       Mario Carneiro, 24-Jun-2013.) $)
    cfslbn $p |- ( ( Lim A /\ B C_ A /\ B ~< ( cf ` A ) ) -> U. B e. A ) $=
      ( wlim wss ccf cfv csdm wbr cuni wcel wa wn wceq imp word con0 syl syl6
      wo uniss limuni sseq2d syl5ibr wb limord ordsson sstr2 ssorduni ordsseleq
      syl5com jctird mpbid ord w3a cdom cfslb domnsym 3expia syld con4d 3impia
      ) ADZBAEZBAFGZHIZBJZAKZVCVDLZVHVFVIVHMVGANZVFMZVIVHVJVIVGAEZVHVJTZVCVDVLV
      DVLVCVGAJZEBAUAVCAVNVGAUBUCUDOVCVDVLVMUEZVCVDVGPZAPZLVOVCVDVPVQVCVDBQEZVP
      VCAQEZVDVRVCVQVSAUFZAUGRBAQUHUKBUISVTULVGAUJSOUMUNVCVDVJVKVCVDVJUOVEBUPIV
      KABCUQVEBURRUSUTVAVB $.

    $d A x y $.  $d B x y $.
    $( Any small collection of small subsets of ` A ` cannot have union ` A ` ,
       where "small" means smaller than the cofinality.  This is a stronger
       version of ~ cfslb .  This is a common application of cofinality: under
       AC, ` ( aleph `` 1 ) ` is regular, so it is not a countable union of
       countable sets.  (Contributed by Mario Carneiro, 24-Jun-2013.) $)
    cfslb2n $p |- ( ( Lim A /\ A. x e. B ( x C_ A /\ x ~< ( cf ` A ) ) ) ->
        ( B ~< ( cf ` A ) -> U. B =/= A ) ) $=
      ( vy cv wss csdm wbr wa wral cuni wceq cdom wi con0 ralimdv imp wcel syl
      wlim ccf cfv csuc ciun wrex cab wn word limord ordsson sstr 3syl onsucuni
      expcom syl6 adantrd uniiun ss2iun syl5eqss cfslbn 3expib ordsucss sylsyld
      iunss sseq1 eqss simplbi2com syl6bi com3l sylc limsuc sylibd r19.29 eleq1
      syl6ibr biimparc rexlimivw abssdv vuniex sucex dfiun2 eqeq1i cfslb 3expia
      ex syl5bi syldan cmpt crn eqid rnmpt wfo wfn fnmpti mpbi relsdom brrelexi
      dffn4 cvv breq1 foeq2 breq2 imbi12d ccrd cdm cfon sdomdom ondomen sylancr
      fodomnum vtoclg mpcom mpi syl5eqbrr domtr domnsym pm2.01da 3syld necon2ad
      sylan2 a1i ) BUAZAFZBGZYDBUBUCZHIZJZACKZJZCYFHIZCLZBYJYLBMZACYDLZUDZUEZBM
      ZYFEFZYOMZACUFZEUGZNIZYKUHZYJYLYPGZYPBGZYMYQOYCYIUUDYCYIYDYOGZACKZUUDYCYH
      UUFACYCYEUUFYGYCYEYDPGZUUFYCBUIZBPGZYEUUHOBUJZBUKYEUUJUUHYDBPULUOUMYDUNUP
      UQQUUGYLACYDUEYPACURACYDYOUSUTUPRYCYIUUEYCYIYOBGZACKUUEYCYHUULACYCUUIYHYN
      BSZUULUUKYCYEYGUUMBYDDVAVBZYNBVCVDQACYOBVEVPRYMUUDUUEYQYMUUDBYPGZUUEYQOYL
      BYPVFYQUUEUUOYPBVGVHVIVJVKYCYIUUABGZYQUUBOYJYTEBYJYOBSZACKZYTYRBSZOYCYIUU
      RYCYHUUQACYCYHUUMUUQUUNBYNVLVMQRUURYTUUSUURYTJUUQYSJZACUFUUSUUQYSACVNUUTU
      USACYSUUSUUQYRYOBVOVQVRTWFTVSYQUUALZBMZYCUUPJUUBYPUVABAECYOYNAVTWAZWBWCYC
      UUPUVBUUBBUUADWDWEWGWHUUBUUCOYJUUBYKUUBYKJYFCNIZUUCYKUUBUUACNIUVDYKUUAACY
      OWIZWJZCNAECYOUVEUVEWKZWLYKCUVFUVEWMZUVFCNIZUVECWNUVHACYOUVEUVCUVGWOCUVEW
      SWPCWTSYKUVHUVIOZCYFHWQWRYRYFHIZYRUVFUVEWMZUVFYRNIZOZOYKUVJOECWTYRCMZUVKY
      KUVNUVJYRCYFHXAUVOUVLUVHUVMUVIYRCUVFUVEXBYRCUVFNXCXDXDUVKYRXEXFSZUVNUVKYF
      PSYRYFNIUVPBXGYRYFXHYFYRXIXJYRUVFUVEXKTXLXMXNXOYFUUACXPYAYFCXQTXRYBXSXT
      $.
  $}

  ${
    $d f g s t v w x z A $.  $d f s t v w x y z B $.  $d v C $.  $d v w y K $.
    $d g s t v x z O $.
    cofsmo.1 $e |- C = { y e. B | A. w e. y ( f ` w ) e. ( f ` y ) } $.
    cofsmo.2 $e |- K = |^| { x e. B | z C_ ( f ` x ) } $.
    cofsmo.3 $e |- O = OrdIso ( _E , C ) $.
    $( Any cofinal map implies the existence of a strictly monotone cofinal map
       with a domain no larger than the original.  Proposition 11.7 of
       [TakeutiZaring] p. 101.  (Contributed by Mario Carneiro,
       20-Mar-2013.) $)
    cofsmo $p |- ( ( Ord A /\ B e. On ) ->
      ( E. f ( f : B --> A /\ A. z e. A E. w e. B z C_ ( f ` w ) ) ->
          E. x e. suc B E. g ( g : x --> A /\ Smo g /\
            A. z e. A E. v e. x z C_ ( g ` v ) ) ) ) $=
      ( con0 wcel wa cfv wss vt vs word wrex wral wsmo w3a wex csuc cdm wfo cep
      cv wf wiso wf1o cvv wwe crab ssrab2 eqsstri ssexg mpan onss syl5ss epweon
      wess mpisyl oiiso syl2anc ad2antlr isof1o f1ofo 3syl fof fss sylancl oion
      syl simplr eloni smoiso2 syl2an biimpar syl21anc smorndom syl3anc onsssuc
      wb simprd mpbid adantrr ccom vex oiexg coexg sylancr simprl simpr ordsson
      fco ad2antrr simpl ffvelrn wfn ffn jca smoel2 sylan wceq fveq2 raleqbi1dv
      eleq2d weq eleq1d cbvralv syl5bb cbvrabv eqtri elrab2 simprbi rspccv sylc
      wi adantr ordtr1 ancomsd imp fvco3 3eltr4d ralrimivva issmo2 sseq2d ex wn
      cint ffvelrnd mpd sylancom ralbidv syl13anc rabn0 onint syl5eqel sylan2br
      c0 wne inteqi elrab sylib adantl simpr2 simp3 eleq2i simp21 simp1l simp22
      fssd simp1r ontr1 3impib ontri1 simp23 simpl1 anim12i rabid sylibr onnmin
      sstr syl31anc sylbird con4d syl5bi 3expia ralrimiv sylanbrc expcom 3expib
      expr com13 syld com23 imp31 foelrn simpllr eleq1 biimpcd sylibrd reximdva
      syl6 ralimdv impr 3jca feq1 smoeq fveq1 rexbidv 3anbi123d spcegv 3anbi13d
      feq2 rexeq exbidv rspcev exlimdv ) FUCZGPQZRZGFIUMZUNZCUMZDUMZUXISZTZDGUD
      ZCFUEZRZAUMZFJUMZUNZUXSUFZUXKEUMZUXSSZTZEUXRUDZCFUEZUGZJUHZAGUIZUDZIUXHUX
      QUYJUXHUXQRZLUJZUYIQZUYLFUXSUNZUYAUYDEUYLUDZCFUEZUGZJUHZUYJUXHUXJUYMUXPUX
      HUXJRZUYLGTZUYMUYSUYLGLUNZLUFZGUCZUYTUYSUYLHLUKZVUAUYSUYLHULULLUOZUYLHLUP
      VUDUXGVUEUXFUXJUXGHUQQZHULURZVUEHGTZUXGVUFHUXMBUMZUXISZQZDVUIUEZBGUSZGMVU
      LBGUTVAZHGPVBVCZUXGHPTZPULURVUGUXGHGPVUNGVDZVEZVFHPULVGVHHULLUQOVIVJVKZUY
      LHULULLVLUYLHLVMVNZVUDUYLHLUNZVUHVUAUYLHLVOZVUNUYLHGLVPVQVSZUYSUYLPQZUXGV
      UEVUBUXGVVDUXFUXJUXGVUFVVDVUOHULLUQOVRVSVKZUXFUXGUXJVTZVUSVVDUXGRZVUERVUD
      VUBVVGVUDVUBRZVUEVVDUYLUCZVUPVVHVUEWIUXGUYLWAZVURUYLHLWBWCWDWJWEZUXGVUCUX
      FUXJGWAVKUYLGLWFWGUYSVVDUXGUYTUYMWIVVEVVFUYLGWHVJWKWLUYKUXILWMZUQQZUYLFVV
      LUNZVVLUFZUXKUYBVVLSZTZEUYLUDZCFUEZUGZUYRUYKUXIUQQLUQQZVVMIWNUXGVWAUXFUXQ
      UXGVUFVWAVUOHULLUQOWOVSVKUXILUQUQWPWQUYKVVNVVOVVSUYKUXJVUAVVNUXHUXJUXPWRU
      XHUXJVUAUXPVVCWLUYLGFUXILXAZVJUXHUXJVVOUXPUYSVVNFPTZVVIUAUMZVVLSZUBUMZVVL
      SZQZUAVWFUEUBUYLUEZVVOUYSUXJVUAVVNUXHUXJWSVVCVWBVJUXFVWCUXGUXJFWTZXBUYSVV
      DVVIVVEVVJVSUYSVWHUBUAUYLVWFUYSVWFUYLQZVWDVWFQZRZRZVWDLSZUXISZVWFLSZUXISZ
      VWEVWGVWNVWQHQZVWOVWQQZVWPVWRQZUYSVVAVWKVWSVWMUYSVUDVVAVUTVVBVSVWKVWLXCUY
      LHVWFLXDWCUYSLUYLXEZVUBRVWMVWTUYSVXBVUBUYSVUDVVAVXBVUTVVBUYLHLXFVNVVKXGUY
      LVWFVWDLXHXIVWSUXRUXISZVWRQZAVWQUEZVWTVXAYDVWSVWQGQVXEVXCUXKUXISZQZAUXKUE
      ZVXECVWQGHVXGVXDAUXKVWQUXKVWQXJVXFVWRVXCUXKVWQUXIXKXMXLHVUMVXHCGUSMVULVXH
      BCGVULVXCVUJQZAVUIUEBCXNZVXHVUKVXIDAVUIDAXNZUXMVXCVUJUXLUXRUXIXKZXOXPVXIV
      XGAVUIUXKVXJVUJVXFVXCVUIUXKUXIXKXMXLXQXRXSXTYAVXDVXAAVWOVWQUXRVWOXJVXCVWP
      VWRUXRVWOUXIXKXOYBVSYCVWNVUAVWDUYLQZVWEVWPXJUYSVUAVWMVVCYEZUYSVWMVXMUYSVV
      DVVIVWMVXMYDVVEVVJVVIVWLVWKVXMVWDVWFUYLYFYGVNYHUYLGVWDUXILYIVJVWNVUAVWKVW
      GVWRXJVXNUYSVWKVWLWRUYLGVWFUXILYIVJYJYKVVNVWCVVIVWIUGVVOUBUAUYLFVVLYLYHUU
      AWLUXHUXJUXPVVSUYSUXOVVRCFUYSUXOVVRUYSUXORZKUYBLSZXJZEUYLUDZVVRVXOVUDKHQZ
      VXRUYSVUDUXOVUTYEUXHUXJUXOVXSUXHUXOUXJVXSUXHUXOKGQZUXKKUXISZTZRZUXJVXSYDU
      XGUXOVYCYDUXFUXGUXOVYCUXGUXORZKUXNDGUSZQZVYCUXOUXGVYEUUFUUGZVYFUXNDGUUBUX
      GVYEPTZVYGVYFUXGVYEGPUXNDGUTVUQVEZVYHVYGRKVYEYPZVYEKUXKVXCTZAGUSZYPVYJNVY
      LVYEVYKUXNADGADXNVXCUXMUXKUXRUXLUXIXKYMXRUUHXSZVYEUUCUUDXIUUEZUXNVYBDKGUX
      LKXJUXMVYAUXKUXLKUXIXKYMUUIUUJYNUUKUXJVYCUXHVXSUXJVXTVYBUXHVXSYDUXHUXJVXT
      VYBUGZVXSUXHVYORZVXTUXMVYAQZDKUEZVXSUXHUXJVXTVYBUULVYPVYQDKUXHVYOUXLKQZVY
      QUXHVYOVYSUGZVYSVYQUXHVYOVYSUUMZVYSUXLVYJQZVYTVYQKVYJUXLVYMUUNVYTVYQWUBVY
      TVYQYOZVYAUXMTZWUBYOZVYTVYAPQUXMPQWUDWUCWIVYTGPKUXIVYTGFPUXIUXHUXJVXTVYBV
      YSUUOVYTUXFVWCUXFUXGVYOVYSUUPVWJVSUURZUXHUXJVXTVYBVYSUUQZYQVYTGPUXLUXIWUF
      VYTUXGVYSVXTUXLGQZUXFUXGVYOVYSUUSZWUAWUGUXGVYSVXTWUHUXLKGUUTUVAZWGYQVYAUX
      MUVBVJVYTUXGVYSVXTVYBWUDWUEYDWUIWUAWUGUXHUXJVXTVYBVYSUVCUXGVYSVXTUGZVYBWU
      DWUEWUKVYBWUDRZRZVYHUXLVYEQZWUEWUMUXGVYHUXGVYSVXTWULUVDVYIVSWUMWUHUXNRWUN
      WUKWUHWULUXNWUJUXKVYAUXMUVIUVEUXNDGUVFUVGVYEUXLUVHVJUVSUVJUVKUVLUVMYRUVNU
      VOVULVYRBKGHVUKVYQDVUIKVUIKXJVUJVYAUXMVUIKUXIXKXMXLMXTUVPUVQUVRUVTUWAUWBU
      WCEUYLHKLUWDVJVXOVXQVVQEUYLVXOUYBUYLQZRZVXQUXKVXPUXISZTZVVQVXOVXQWURYDZWU
      OUYSUXOUXGWUSUXFUXGUXJUXOUWEVYDVYFWUSVYNVYFVXQVXPVYEQZWURVXQVYFWUTKVXPVYE
      UWFUWGWUTVXPGQWURVYKWURAVXPGVYEUXRVXPXJVXCWUQUXKUXRVXPUXIXKYMUXNVYKDAGVXK
      UXMVXCUXKVXLYMXRXTYAUWJVSYSYEWUPVVPWUQUXKVXOWUOVUAVVPWUQXJUYSVUAUXOWUOVVC
      XBUYLGUYBUXILYIYSYMUWHUWIYRYNUWKUWLUWMUYQVVTJVVLUQUXSVVLXJZUYNVVNUYAVVOUY
      PVVSUYLFUXSVVLUWNUXSVVLUWOWVAUYOVVRCFWVAUYDVVQEUYLWVAUYCVVPUXKUYBUXSVVLUW
      PYMUWQYTUWRUWSYCUYHUYRAUYLUYIUXRUYLXJZUYGUYQJWVBUXTUYNUYFUYPUYAUXRUYLFUXS
      UXAWVBUYEUYOCFUYDEUXRUYLUXBYTUWTUXCUXDVJYNUXE $.
  $}

  ${
    $d f g t w x y z A $.  $d f t y z F $.  $d f w x y z G $.
    cfsmolem.2 $e |- F = ( z e. _V |->
      ( ( g ` dom z ) u. U_ t e. dom z suc ( z ` t ) ) ) $.
    cfsmolem.3 $e |- G = ( recs ( F ) |` ( cf ` A ) ) $.
    $( Lemma for ~ cfsmo .  (Contributed by Mario Carneiro, 28-Feb-2013.) $)
    cfsmolem $p |- ( A e. On -> E. f ( f : ( cf ` A ) --> A /\ Smo f /\
        A. z e. A E. w e. ( cf ` A ) z C_ ( f ` w ) ) ) $=
      ( vx vy con0 wcel cfv wss wral wa wi wceq ccf cv wf1 wrex wex wf wsmo w3a
      cff1 cfon oneli 3ad2ant3 eleq1 3anbi3d fveq2 eleq1d imbi12d simpl1 simpl2
      weq wel ontr1 ax-mp ancoms 3ad2antl3 syl3anc ralimdva crecs csuc ciun cun
      pm2.27 cres fveq1i fvres syl5eq cdm recsval wfun recsfnon fnfun resfunexg
      cvv wfn vex mp2an dmeq fveq2d fveq1 suceq syl iuneq12d uneq12d fvex sucex
      dmex iunex unex syl6eq onss fnssres sylancr iuneq1 iuneq2i cbviunv eqtr4i
      fvmpt fndm 3syl eqtrd 3ad2ant2 word eloni adantl 3ad2ant1 adantlr adantrl
      f1f ad2antrr sylbid 3impia wb onelon ex adantr ffnfv syl2an2r anassrs imp
      feq1 sseq2d rexbidv ralbidv spcev com12 mpd 3expia ralrimiv sylibr expcom
      ffvelrnda 3adant3 fvresd ordsucss iunss syl6ibr suceloni syl6 iunon simp1
      wo mpan onsseleq syl2anc simpll wn simprr eqtr4d ralbidva biimpa sylanbrc
      idd eleq2 biimpar 3adant1 ffvelrn eqeltrrd onsssuc rexbidva eliun syl6bbr
      sylan2 3adant2 mpbird 3expa ralrimiva expl rexbiia anbi12d cfflb syl21anc
      syl6bb ontri1 mpbid pm2.21dd expcomd 3impib jaod 3adant1l ordunel eqeltrd
      3impa syldc tfis2 mpcom onssi fneq1i mpbiran onordi sucid syl6eleqr mpan2
      eliuni elun2 eleqtrrd 3eltr4d rgen issmo2 mp3an23 sseq12d ssun1 syl5sseqr
      sylc vtoclga sstr reximia ralimi ad2antlr fnex smoeq 3anbi123d exlimdv
      a1i ) DMNZDUAOZDFUBZUCZAUBZBUBZUYFOZPZBUYEUDZADQZRZFUEUYEDEUBZUFZUYOUGZUY
      HUYIUYOOZPZBUYEUDZADQZUHZEUEZABDFUIUYDUYNVUCFUYNUYDVUCUYNUYDRUYEDHUFZHUGZ
      UYHUYIHOZPZBUYEUDZADQZVUCUYGUYDVUDUYMUYGUYDRZKUBZHOZDNZKUYEQZVUDVUJVUMKUY
      EUYGUYDVUKUYENZVUMVUKMNZUYGUYDVUOUHZVUMVUOUYGVUPUYDUYEVUKDUJZUKZULVUQVUMS
      ZUYGUYDLUBZUYENZUHZVVAHOZDNZSZKLKLUTZVUQVVCVUMVVEVVGVUOVVBUYGUYDVUKVVAUYE
      UMUNVVGVULVVDDVUKVVAHUOUPUQVVFLVUKQZVUTSVUPVUQVVHVVELVUKQZVUMVUQVVFVVELVU
      KVUQLKVAZRUYGUYDVVBVVFVVESUYGUYDVUOVVJURUYGUYDVUOVVJUSVUOUYGVVJVVBUYDVVJV
      UOVVBUYEMNZVVJVUORZVVBSVURVVAVUKUYEVBVCZVDVEVVCVVEVLVFVGUYGUYDVUOVVIVUMSV
      UJVUOVVIVUMVUJVUOVVIUHZVULVUKUYFOZLVUKVVAGVHZOZVIZVJZVKZDVUOVUJVULVVTTVVI
      VUOVULVUKVVPOZVVTVUOVULVUKVVPUYEVMZOVWAVUKHVWBJVNVUKUYEVVPVOVPZVUOVUPVWAV
      VTTZVUSVUPVWAVVPVUKVMZVQZUYFOZCVWFCUBZVWEOZVIZVJZVKZVVTVUPVWAVWEGOZVWLVUK
      GVRVWEWCNZVWMVWLTVVPVSZVUKWCNZVWNVVPMWDZVWOGVTZMVVPWAVCKWEZVVPVUKWCWBWFZA
      VWEUYHVQZUYFOZCVXAVWHUYHOZVIZVJZVKVWLWCGUYHVWETZVXBVWGVXEVWKVXFVXAVWFUYFU
      YHVWEWGZWHVXFCVXAVWFVXDVWJVXGVXFVXCVWITVXDVWJTVWHUYHVWEWIVXCVWIWJWKWLWMIV
      WGVWKVWFUYFWNCVWFVWJVWEVWTWPVWIVWHVWEWNWOWQWRXGVCWSVUPVWEVUKWDZVWFVUKTZVW
      LVVTTVUPVWQVUKMPVXHVWRVUKWTMVUKVVPXAXBZVUKVWEXHVXIVWGVVOVWKVVSVWFVUKUYFUO
      VXIVWKCVUKVWJVJZVVSCVWFVUKVWJXCVXKCVUKVWHVVPOZVIZVJZVVSCVUKVWJVXMCKVAVWIV
      XLTVWJVXMTVWHVUKVVPVOVWIVXLWJWKXDLCVUKVVRVXMLCUTVVQVXLTVVRVXMTVVAVWHVVPUO
      VVQVXLWJWKXEZXFWSWMXIXJZWKXJZXKVVNDXLZVVODNZVVSDNZVVTDNVUJVUOVXRVVIUYDVXR
      UYGDXMZXNXOVUJVUOVXSVVIUYGVUOVXSUYDUYGUYEDVUKUYFUYEDUYFXRUUAXPUUBUYDVUOVV
      IVXTUYGUYDVUOVVIUHZVVSDPZVXTUYDVUOVVIVYCUYDVUORZVVIVVRDPZLVUKQVYCVYDVVEVY
      ELVUKVYDVVJRZVVEVVQDNZVYEVYFVVDVVQDVVJVYDVVDVVQTZVVJVUOVYHUYDVVLVVDVVAVWB
      OVVQVVAHVWBJVNVVLVVAUYEVVPVVMUUCVPZXQVDUPZUYDVYGVYESZVUOVVJUYDVXRVYKVYAVV
      QDUUDWKXSXTVGLVUKVVRDUUEUUFYAVYBVYCVXTVVSDTZUUKZVXTVYBVVSMNZUYDVYCVYMYBVY
      BVVRMNZLVUKQZVYNUYDVUOVVIVYPVYDVVEVYOLVUKVYFVVEVVQMNZVYOVYFVVEVYGVYQVYJUY
      DVYGVYQSVUOVVJUYDVYGVYQDVVQYCZYDXSXTVVQUUGUUHVGYAVWPVYPVYNVWSLVUKVVRWCUUI
      UULWKUYDVUOVVIUUJVVSDUUMUUNVYBVXTVXTVYLVYBVXTUVBUYDVUOVVIVYLVXTSZVUOVVIRZ
      UYDVYSVYTVYLUYDVXTVYTVYLUYDRZVXTVYTWUARZVUOVXTVUOVVIWUAUUOWUBUYEVUKPZVUOU
      UPZWUBUYDVUPVUKDUYOUFZVWHVVAUYOOZPZLVUKUDZCDQZRZEUEZWUCVYTVYLUYDUUQVUOVUP
      VVIWUAVUSXSVYTVUKDVWEUFZWUAVWHVVQPZLVUKUDZCDQZWUKVYTVXHVVAVWEOZDNZLVUKQZW
      ULVUOVXHVVIVUOVUPVXHVUSVXJWKYEVUOVVIWURVUOVVEWUQLVUKVUOVVJRZVVDWUPDWUSVVD
      VVQWUPVVJVUOVYHVYIVDVVJWUPVVQTZVUOVVAVUKVVPVOZXNUURUPUUSUUTLVUKDVWEYFUVAZ
      VYTWUAWUOVYTWULWUAWUOSWVBWULVYLUYDWUOWULVYLRZUYDRWUNCDWVCUYDVWHDNZWUNWULV
      YLUYDWVDRZWUNWULVYLWVEUHWUNVWHVVSNZVYLWVEWVFWULVYLWVDWVFUYDVYLWVFWVDVVSDV
      WHUVCUVDXQUVEWULWVEWUNWVFYBZVYLWVEWULWVGWVEWULRZWUNVWHVVRNZLVUKUDWVFWVHWU
      MWVILVUKWVEWULVVJWUMWVIYBZWVEVWHMNWULVVJRZVYQWVJDVWHYCUYDWVKVYQWVDWVKUYDV
      YGVYQWVKWUPVVQDVVJWUTWULWVAXNVUKDVVAVWEUVFUVGVYRUVLXPVWHVVQUVHYGYHUVILVWH
      VUKVVRUVJUVKVDUVMUVNUVOYHUVPUVQWKYIWUJWULWUOREVWEVWTUYOVWETZWUEWULWUIWUOV
      UKDUYOVWEYJWVLWUHWUNCDWVLWUHVWHWUPPZLVUKUDWUNWVLWUGWVMLVUKWVLWUFWUPVWHVVA
      UYOVWEWIYKYLWVMWUMLVUKVVJWUPVVQVWHWVAYKUVRUWBYMUVSYNYGUYDVUPRWUKWUCCLDVUK
      EUVTYIUWAVUOWUCWUDYBZVVIWUAVUOVVKVUPWVNVURVUSUYEVUKUWCXBXSUWDUWEYDUWFYOUW
      GUWHXTYPUWIDVVOVVSUWJVFUWKYQUWLUWMUYCUWNUWOYQYRVUDHUYEWDZVUNVWQUYEMPZWVOV
      WRUYEVURUWPVWQWVPRVWBUYEWDWVOMUYEVVPXAUYEHVWBJUWQYSWFZKUYEDHYFUWRYSZXPUYG
      UYDVUEUYMVUJDMPZVUDVUEUYDWVSUYGDWTXNWVRWVSUYEXLZVVDVULNZLVUKQZKUYEQZVUDVU
      ESUYEVURUWSWWBKUYEVUOWWALVUKVVJVUOWWAVVLVVQVWAVVDVULVVLVVQVVTVWAVVJVVQVVT
      NZVUOVVJVVQVVSNZWWDVVJVVQVVRNZWWEVVQVVAVVPWNUWTVVJWWFRVVQVXNVVSCVVAVXMVVR
      VUKVVQCLUTVXLVVQTVXMVVRTVWHVVAVVPUOVXLVVQWJWKUXCVXOUXAUXBVVQVVSVVOUXDWKYE
      VVLVUPVWDVUOVUPVVJVUSXNVXPWKUXEVYIVUOVULVWATVVJVWCXNUXFYTYRUXGVUDWVSWVTWW
      CUHVUEKLUYEDHUXHYOUXIUXMXPUYMVUIUYGUYDUYLVUHADUYKVUGBUYEUYIUYENUYJVUFPZUY
      KVUGSVVOVULPWWGKUYIUYEKBUTVVOUYJVULVUFVUKUYIUYFUOVUKUYIHUOUXJVUOVVTVVOVUL
      VVOVVSUXKVXQUXLUXNUYKWWGVUGUYHUYJVUFUXOYTWKUXPUXQUXRVUBVUDVUEVUIUHEHWVOVV
      KHWCNWVQVURUYEMHUXSWFUYOHTZUYPVUDUYQVUEVUAVUIUYEDUYOHYJUYOHUXTWWHUYTVUHAD
      WWHUYSVUGBUYEWWHUYRVUFUYHUYIUYOHWIYKYLYMUYAYNVFYTUYBYP $.
  $}

  ${
    $d A m f h w z $.  $d m f h x w z $.  $d m f x n w z $.
    $( The map in ~ cff1 can be assumed to be a strictly monotone ordinal
       function without loss of generality.  (Contributed by Mario Carneiro,
       28-Feb-2013.) $)
    cfsmo $p |- ( A e. On -> E. f ( f : ( cf ` A ) --> A /\ Smo f /\
        A. z e. A E. w e. ( cf ` A ) z C_ ( f ` w ) ) ) $=
      ( vm vh vx vn cvv cv cdm cfv csuc ciun cun cmpt crecs wceq suceq syl cres
      ccf dmeq fveq2d fveq2 cbviunv fveq1 iuneq12d syl5eq uneq12d eqid cfsmolem
      cbvmptv ) ABECDFGIGJZKZFJZLZHUOHJZUNLZMZNZOZPZVCQCUBLUAZGAIVBAJZKZUPLZEVF
      EJZVELZMZNZOUNVERZUQVGVAVKVLUOVFUPUNVEUCZUDVLVAEUOVHUNLZMZNVKHEUOUTVOURVH
      RUSVNRUTVORURVHUNUEUSVNSTUFVLEUOVFVOVJVMVLVNVIRVOVJRVHUNVEUGVNVISTUHUIUJU
      MVDUKUL $.
  $}

  ${
    $d A f g h x z $.  $d A f g x y z $.  $d B f g h x z $.  $d B f g x y z $.
    $( Lemma for ~ cfcof , showing subset relation in one direction.
       (Contributed by Mario Carneiro, 9-Mar-2013.)  (Revised by Mario
       Carneiro, 26-Dec-2014.) $)
    cfcoflem $p |- ( ( A e. On /\ B e. On ) -> ( E. f ( f : B --> A /\ Smo f /\
        A. x e. A E. y e. B x C_ ( f ` y ) ) -> ( cf ` A ) C_ ( cf ` B ) ) ) $=
      ( vh vz vg con0 wcel cv wf cfv wss wrex wral wex wa wi com23 wsmo w3a ccf
      wf1 cff1 f1f ccom fco adantlr adantr r19.29 ffvelrn wfn ffn smoword exp32
      biimpd sylan syl7 expdimp 3imp2 sstr2 syl5com wb sseq2d adantll 3ad2antr1
      fvco3 sylibrd expcom 3expia com4t expcomd imp31 reximdva exp31 com34 impd
      imp rexlimdv syl5 ralimdv impr vex coex wceq feq1 rexbidv ralbidv anbi12d
      fveq1 spcev syl2anc exp43 com24 3impia exlimiv com13 syl cfon cfflb mpan2
      sylan9r ) DIJZDCEKZLZXEUAZAKZBKZXEMZNZBDOZACPZUBZEQZDUCMZCFKZLZXHGKZXQMZN
      ZGXPOZACPZRZFQZCIJZCUCMXPNZXDXPDHKZUDZXIXSYHMZNZGXPOZBDPZRZHQXOYESZBGDHUE
      YNYOHYIYMYOYIXPDYHLZYMYOSXPDYHUFXOYMYPYEXNYMYPYESSZEXFXGXMYQXFXGRZYPYMXMY
      EYRYPYMXMYEYRYPRZYMXMRZRXPCXEYHUGZLZXHXSUUAMZNZGXPOZACPZYEYSUUBYTXFYPUUBX
      GXPDCXEYHUHUIUJYSYMXMUUFYSYMRXLUUEACYSYMXLUUEYMXLRYLXKRZBDOYSUUEYLXKBDUKY
      SUUGUUEBDYSUUGXIDJZUUEYSYLXKUUHUUESZYSXKYLUUIYSXKUUHYLUUEYSXKUUHYLUUESYSX
      KRZUUHRYKUUDGXPUUJUUHXSXPJZYKUUDSZUUJUUKUUHUULYSXKUUKUUHRZUULSUUMYKYSXKUU
      DUUKUUHYKYSXKUUDSZSYSUUKUUHYKUBZUUNYSUUORZXKXHYJXEMZNZUUDUUPXJUUQNZXKUURY
      SUUKUUHYKUUSYRYPUUKUUHYKUUSSZSYRUUHYPUUKRZUUTUVAYJDJZYRUUHUUTXPDXSYHULXFX
      EDUMZXGUUHUVBUUTSSDCXEUNUVCXGRZUUHUVBUUTUVDUUHUVBRRYKUUSDXIYJXEUOUQUPURUS
      TUTVAXHXJUUQVBVCYSUUHUUKUUDUURVDZYKYPUUKUVEYRUVAUUCUUQXHXPDXSXEYHVHVEVFVG
      VIVJVKVLVSVMVNVOVPVQTVRTVTWAUTWBWCYDUUBUUFRFUUAXEYHEWDHWDWEXQUUAWFZXRUUBY
      CUUFXPCXQUUAWGUVFYBUUEACUVFYAUUDGXPUVFXTUUCXHXSXQUUAWKVEWHWIWJWLWMWNWOWPW
      QWRWSVSWQWSYFXPIJYEYGSDWTAGCXPFXAXBXC $.
  $}

  ${
    $d A f g s w x $.  $d A f g s w z $.  $d B f g h s w $.  $d B f g n t w $.
    $d B f g s w x y $.  $d C f g h s w $.  $d C f g t w $.  $d C f g s w z $.
    $d H h s w $.  $d n w y $.
    coftr.1 $e |- H = ( t e. C |->
      |^| { n e. B | ( g ` t ) C_ ( f ` n ) } ) $.
    $( If there is a cofinal map from ` B ` to ` A ` and another from ` C ` to
       ` A ` , then there is also a cofinal map from ` C ` to ` B ` .
       Proposition 11.9 of [TakeutiZaring] p. 102.  A limited form of
       transitivity for the "cof" relation.  This is really a lemma for
       ~ cfcof .  (Contributed by Mario Carneiro, 16-Mar-2013.) $)
    coftr $p |-
    ( E. f ( f : B --> A /\ Smo f /\ A. x e. A E. y e. B x C_ ( f ` y ) ) ->
      ( E. g ( g : C --> A /\ A. z e. A E. w e. C z C_ ( g ` w ) ) ->
          E. h ( h : C --> B /\ A. s e. B E. w e. C s C_ ( h ` w ) ) ) ) $=
      ( cv wss wa wi wcel wsmo cfv wrex wral w3a wex cvv cdm fdm dmex syl6eqelr
      wf crab cint cmpt wceq fveq2 sseq1d rabbidv inteqd cbvmptv eqtri syl5eqel
      vex mptexg syl ad2antrl wfn ffn smodm2 sylan 3adant3 adantr simpl3 simprl
      word simpl1 simpl2 ffvelrn 3ad2antl3 sseq1 rexbidv rspccv sylc wne ssrab2
      con0 ordsson syl5ss sseq2d rspcev rabn0 sylibr oninton syl2an eloni simpl
      intminss adantl ordtr2 imp syl22anc rexlimdvaa fmptd syl3anc syl5 expdimp
      c0 simprr syl2anc simpr jca elrab sstr2 smoword biimprd syl9r com23 imp4b
      expr syl5bi ralrimiv ssint fvmptg syl5ibrcom ex reximdvai ancoms syl32anc
      mpdd feq1 fveq1 ralbidv anbi12d spcegv 3impib exlimdv exlimiv ) GFIPZULZY
      SUAZAPZBPZYSUBZQZBGUCZAFUDZUEZHFJPZULZCPZDPZUUIUBZQZDHUCZCFUDZRZJUFHGKPZU
      LZNPZUULUURUBZQZDHUCZNGUDZRZKUFZSIUUHUUQUVFJUUHUUQUVFUUHUUQRZMUGTZHGMULZU
      UTUULMUBZQZDHUCZNGUDZUVFUUJUVHUUHUUPUUJHUGTZUVHUUJHUUIUHUGHFUUIUIUUIJVDUJ
      UKUVNMDHUUMLPZYSUBZQZLGUMZUNZUOZUGMEHEPZUUIUBZUVPQZLGUMZUNZUOUVTOEDHUWEUV
      SUWAUULUPZUWDUVRUWFUWCUVQLGUWFUWBUUMUVPUWAUULUUIUQURUSUTZVAVBZDHUVSUGVEVC
      VFVGUVGGVPZUUGUUJUVIUUHUWIUUQYTUUAUWIUUGYTYSGVHZUUAUWIGFYSVIZGYSVJVKVLVMZ
      YTUUAUUGUUQVNZUUHUUJUUPVOZUWIUUGUUJUEZDHUVSGMUWOUULHTZRZUWIUUMUUDQZBGUCZU
      VSGTZUWIUUGUUJUWPVQUWQUUGUUMFTZUWSUWIUUGUUJUWPVRUUJUWIUWPUXAUUGHFUULUUIVS
      VTUUFUWSAUUMFUUBUUMUPUUEUWRBGUUBUUMUUDWAWBWCWDUWIUWRUWTBGUWIUUCGTZUWRRZRZ
      UVSVPZUWIUVSUUCQZUXBUWTUXDUVSWGTZUXEUWIUVRWGQUVRXHWEZUXGUXCUWIUVRGWGUVQLG
      WFGWHWIUXCUVQLGUCUXHUVQUWRLUUCGUVOUUCUPUVPUUDUUMUVOUUCYSUQWJZWKUVQLGWLWMU
      VRWNWOUVSWPVFUWIUXCWQUXCUXFUWIUVQUWRLUUCGUXIWRWSUWIUXBUWRVOUXEUWIRUXFUXBR
      UWTUVSUUCGWTXAXBXCWDZUWHXDXEUVGUVLNGUVGUUTGTZUUTYSUBZUUMQZDHUCZUVLUVGUUPY
      TUXKUXNSUUHUUJUUPXIYTUUAUUGUUQVQZUUPYTUXKUXNYTUXKRUXLFTUUPUXNGFUUTYSVSUUO
      UXNCUXLFUUKUXLUPUUNUXMDHUUKUXLUUMWAWBWCXFXGXJUVGUWIUUGUUJUWJUUAUXKUXNUVLS
      ZSUWLUWMUWNUVGYTUWJUXOUWKVFYTUUAUUGUUQVRUWOUWJUUARZUXKUXPUXQUXKRZUWOUXPUX
      RUWORUXMUVKDHUXRUWOUWPUXMUVKSUXRUXMUWQUVKUXRUXMUWQUVKSUWQUWPUWTRZUXRUXMRZ
      UVKUWQUWPUWTUWOUWPXKUXJXLUXTUVKUXSUUTUVSQZUXTUUTUUCQZBUVRUDUYAUXTUYBBUVRU
      UCUVRTUXCUXTUYBUVQUWRLUUCGUXIXMUXRUXMUXBUWRUYBUXRUXBUXMUWRUYBSZUXQUXKUXBU
      XMUYCSUXMUWRUXLUUDQZUXQUXKUXBRRZUYBUXLUUMUUDXNUYEUYBUYDGUUTUUCYSXOXPXQXTX
      RXSYAYBBUUTUVRYCWMUXSUVJUVSUUTEUULUWEUVSHGMUWGOYDWJYEXFYFXRXGYGYHXTYIYJYB
      UVHUVIUVMUVFUVEUVIUVMRKMUGUURMUPZUUSUVIUVDUVMHGUURMYKUYFUVCUVLNGUYFUVBUVK
      DHUYFUVAUVJUUTUULUURMYLWJWBYMYNYOYPXEYFYQYR $.
  $}

  ${
    $d c f g h k r s t w x y z A $.  $d c f g h k r s t v w y z B $.
    $( If there is a cofinal map from ` A ` to ` B ` , then they have the same
       cofinality.  This was used as Definition 11.1 of [TakeutiZaring] p. 100,
       who defines an equivalence relation cof ` ( A , B ) ` and defines our
       ` cf ( B ) ` as the minimum ` B ` such that cof ` ( A , B ) ` .
       (Contributed by Mario Carneiro, 20-Mar-2013.) $)
    cfcof $p |- ( ( A e. On /\ B e. On ) -> ( E. f ( f : B --> A /\ Smo f /\
        A. z e. A E. w e. B z C_ ( f ` w ) ) -> ( cf ` A ) = ( cf ` B ) ) ) $=
      ( vh vr vt vg vs vc vk wcel wa cv cfv wss wrex wral wex vy vv vx con0 w3a
      wf wsmo ccf wceq cfcoflem imp wf1 cff1 f1f anim1i syl crab cint cmpt eqid
      eximi coftr syl5com csuc word wi eloni cfon cep coi cofsmo sylancl 3simpb
      onsuci oneli cfflb sylan2 syl5 onsssuc ibir ad2antlr sstrd exp31 rexlimdv
      wb syld sylan9 eqssd ex ) CUDMZDUDMZNZDCEOZUFWMUGAOBOWMPQBDRACSUEETZCUHPZ
      DUHPZUIWLWNNWOWPWLWNWOWPQABCDEUJUKWLWNWPWOQZWJWNWODFOZUFGOZHOZWRPZQHWORGD
      SNFTZWKWQWJWOCIOZUFZJOZWTXCPQHWORJCSZNZITZWNXBWJWOCXCULZXFNZITXHJHCIUMXJX
      GIXIXDXFWOCXCUNUOVAUPABJHUACDWOEIFUBUAWOUAOXCPUBOWMPQUBDUQURUSZGXKUTVBVCW
      KXBKOZDLOZUFZXMUGZWSXEXMPQJXLRGDSZUEZLTZKWOVDZRZWQWKDVEWOUDMZXBXTVFDVGCVH
      ZKUCGHJDWOXAUCOZWRPMHYCSUCWOUQZFLWSXLWRPQKWOUQURZYDVIVJZYDUTYEUTYFUTVKVLW
      KXRWQKXSWKXLXSMZXRWQWKYGNZXRNWPXLWOYHXRWPXLQZXRXNXPNZLTZYHYIXQYJLXNXOXPVM
      VAYGWKXLUDMZYKYIVFXSXLWOYBVNVOZGJDXLLVPVQVRUKYGXLWOQZWKXRYGYNYGYLYAYNYGWE
      YMYBXLWOVSVLVTWAWBWCWDWFWGUKWHWI $.
  $}

  ${
    $d A f x y $.
    $( The cofinality function is idempotent.  (Contributed by Mario Carneiro,
       7-Mar-2013.)  (Revised by Mario Carneiro, 15-Sep-2013.) $)
    cfidm $p |- ( cf ` ( cf ` A ) ) = ( cf ` A ) $=
      ( vf vx vy con0 wcel ccf cfv wceq wss cfle a1i cv wf wsmo wrex w3a wex c0
      wral cfsmo wi cfon cfcoflem mpan2 mpd eqssd cf0 cdm cff fdmi eleq2i ndmfv
      wn sylnbir fveq2d 3eqtr4a pm2.61i ) AEFZAGHZGHZUTIUSVAUTVAUTJUSUTKLUSUTAB
      MZNVBOCMDMVBHJDUTPCATQBRZUTVAJZCDABUAUSUTEFVCVDUBAUCCDAUTBUDUEUFUGUSUNZSG
      HSVAUTUHVEUTSGUSAGUIZFUTSIVFEAEEGUJUKULAGUMUOZUPVGUQUR $.
  $}

  ${
    $d A f x y $.
    $( The cofinality of a limit aleph is the same as the cofinality of its
       argument, so if ` ( aleph `` A ) < A ` , then ` ( aleph `` A ) ` is
       singular.  Conversely, if ` ( aleph `` A ) ` is regular (i.e. weakly
       inaccessible), then ` ( aleph `` A ) = A ` , so ` A ` has to be rather
       large (see ~ alephfp ).  Proposition 11.13 of [TakeutiZaring] p. 103.
       (Contributed by Mario Carneiro, 9-Mar-2013.) $)
    alephsing $p |- ( Lim A -> ( cf ` ( aleph ` A ) ) = ( cf ` A ) ) $=
      ( vf vx vy cvv wcel cale cfv ccf wceq wa cv wsmo wrex wral con0 alephfnon
      wss sylancr c0 wlim w3a wex cres wfun wfn fnfun ax-mp simpl resfunexg crn
      wf limelon onss syl fnssres fvres adantl alephord2i imp eqeltrd ralrimiva
      sylan fnfvrnss syl2anc df-f sylanbrc cdm alephsmo fndm syl6eleqr alephlim
      smores ciun eleq2d eliun alephon onelssi reximi sylbi ralrimiv feq1 smoeq
      syl6bi fveq1 sylan9eq sseq2d rexbidva ralbidv 3anbi123d syl13anc wi cfcof
      spcegv mpd expcom wn cf0 fvprc fveq2d 3eqtr4a pm2.61d1 ) AUAZAEFZAGHZIHZA
      IHZJZXDXCXHXDXCKZAXEBLZULZXJMZCLZDLZXJHZRZDANZCXEOZUBZBUCZXHXIGAUDZEFZAXE
      YAULZYAMZXMXNGHZRZDANZCXEOZXTXIGUEZXDYBGPUFZYIQPGUGUHXDXCUIGAEUJSXIYAAUFZ
      YAUKXERZYCXIYJAPRZYKQXIAPFZYMAEUMZAUNUOPAGUPSZXIYKXNYAHZXEFZDAOYLYPXIYRDA
      XIYNXNAFZYRYOYNYSKYQYEXEYSYQYEJYNXNAGUQZURYNYSYEXEFXNAUSUTVAVCVBDAXEYAVDV
      EAXEYAVFVGXIGMAGVHZFYDVIXIAPUUAYOYJUUAPJQPGVJUHVKGAVMSXIYGCXEXIXMXEFXMDAY
      EVNZFZYGXIXEUUBXMDAEVLVOUUCXMYEFZDANYGDXMAYEVPUUDYFDAYEXMXNVQVRVSVTWDWAYB
      YCYDYHUBZXTXSUUEBYAEXJYAJZXKYCXLYDXRYHAXEXJYAWBXJYAWCUUFXQYGCXEUUFXPYFDAU
      UFYSKXOYEXMUUFYSXOYQYEXNXJYAWEYTWFWGWHWIWJWNUTWKXIXEPFYNXTXHWLAVQYOCDXEAB
      WMSWOWPXDWQZTIHTXFXGWRUUGXETIAGWSWTAIWSXAXB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Eight inequivalent definitions of finite set
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d F a b c d e $.  $d R a b c d e $.
    $( The range of a single-step monotone function from ` _om ` into a
       partially ordered set is a chain.  (Contributed by Stefan O'Rear,
       3-Nov-2014.) $)
    sornom $p |- ( ( F Fn _om /\ A. a e. _om ( ( F ` a ) R ( F ` suc a ) \/
          ( F ` a ) = ( F ` suc a ) ) /\ R Po ran F ) -> R Or ran F ) $=
      ( vb vc vd ve com cv cfv wbr wceq wo weq wcel wa wrex wi fveq2 orbi12d wb
      wfn csuc wral crn wpo w3a w3o wor simp3 fvelrnb anbi12d 3ad2ant1 wss word
      reeanv nnord ordtri2or2 syl2an adantl vex eleq1 bi2anan9 anbi2d breqan12d
      sseq12 eqeqan12d imbi12d breq2d eqeq2d imbi2d eqid olci 2a1i simpr2 suceq
      simplll fveq2d breq12d eqeq12d rspcva syl2anc simprr simprl fnfvelrn potr
      simpllr peano2 ad3antrrr syl13anc imp ancom2s orcd expr biimprcd orc syl6
      breq1 ex breq2 eqeq2 biimpd a1i 3adantr2 mpd findsg ancom1s impcom vtocl2
      jaod orim12d 3mix1 3mix2 jaoi 3mix3 eqcoms breq12 eqeq12 ancoms 3orbi123d
      a2d syl syl5ibcom rexlimdvva syl5bir sylbid ralrimivv df-so sylanbrc ) BH
      UBZCIZBJZYKUCZBJZAKZYLYNLZMZCHUDZBUEZAUFZUGZYTDIZEIZAKZDENZUUCUUBAKZUHZEY
      SUDDYSUDYSAUIYJYRYTUJUUAUUGDEYSYSUUAUUBYSOZUUCYSOZPZFIZBJZUUBLZFHQZGIZBJZ
      UUCLZGHQZPZUUGYJYRUUJUUSUAYTYJUUHUUNUUIUURFHUUBBUKGHUUCBUKULUMUUSUUMUUQPZ
      GHQFHQUUAUUGUUMUUQFGHHUPUUAUUTUUGFGHHUUAUUKHOZUUOHOZPZPZUULUUPAKZUULUUPLZ
      UUPUULAKZUHZUUTUUGUVDUVEUVFMZUVGUUPUULLZMZMZUVHUVDUUKUUOUNZUUOUUKUNZMZUVL
      UVCUVOUUAUVAUUKUOUUOUOUVOUVBUUKUQUUOUQUUKUUOURUSUTUVDUVMUVIUVNUVKUUAUUBHO
      ZUUCHOZPZPZUUBUUCUNZUUBBJZUUCBJZAKZUWAUWBLZMZRZRZUVDUVMUVIRZRDEUUKUUOFVAZ
      GVAZDFNZEGNZPZUVSUVDUWFUWHUWMUVRUVCUUAUWKUVPUVAUWLUVQUVBUUBUUKHVBUUCUUOHV
      BVCVDUWMUVTUVMUWEUVIUUBUUKUUCUUOVFUWMUWCUVEUWDUVFUWKUWLUWAUULUWBUUPAUUBUU
      KBSZUUCUUOBSZVEUWKUWLUWAUULUWBUUPUWNUWOVGTVHVHUUAUVRUVTUWEUVRUVTPUUAUWEUV
      QUVPUVTUUAUWERZUUAUWAUULAKZUWAUULLZMZRUUAUWAUWAAKZUWAUWALZMZRUUAUWAUUPAKZ
      UWAUUPLZMZRUUAUWAUUOUCZBJZAKZUWAUXGLZMZRUWPFGUUCUUBFDNZUWSUXBUUAUXKUWQUWT
      UWRUXAUXKUULUWAUWAAUUKUUBBSZVIUXKUULUWAUWAUXLVJTVKFGNZUWSUXEUUAUXMUWQUXCU
      WRUXDUXMUULUUPUWAAUUKUUOBSZVIUXMUULUUPUWAUXNVJTVKUUKUXFLZUWSUXJUUAUXOUWQU
      XHUWRUXIUXOUULUXGUWAAUUKUXFBSZVIUXOUULUXGUWAUXPVJTVKFENZUWSUWEUUAUXQUWQUW
      CUWRUWDUXQUULUWBUWAAUUKUUCBSZVIUXQUULUWBUWAUXRVJTVKUXBUVPUUAUXAUWTUWAVLVM
      VNUVBUVPPUUBUUOUNZPZUUAUXEUXJUXTUUAUXEUXJRZUXTUUAPZUUPUXGAKZUUPUXGLZMZUYA
      UYBUVBYRUYEUVBUVPUXSUUAVQUXTYJYRYTVOYQUYECUUOHCGNZYOUYCYPUYDUYFYLUUPYNUXG
      AYKUUOBSZUYFYMUXFBYKUUOVPVRZVSUYFYLUUPYNUXGUYGUYHVTTWAWBUXTYJYTUYEUYARYRU
      XTYJYTPZPZUYCUYAUYDUYJUYCUYAUYJUYCPUXCUXJUXDUYJUYCUXCUXJUYJUYCUXCPPUXHUXI
      UYJUXCUYCUXHUYJUXCUYCPZUXHUYJYTUWAYSOZUUPYSOZUXGYSOZUYKUXHRUXTYJYTWCUYJYJ
      UVPUYLUXTYJYTWDZUVBUVPUXSUYIWGHUUBBWEWBUYJYJUVBUYMUYOUVBUVPUXSUYIVQHUUOBW
      EWBUYJYJUXFHOZUYNUYOUVBUYPUVPUXSUYIUUOWHWIHUXFBWEWBYSUWAUUPUXGAWFWJWKWLWM
      WNUYCUXDUXJRUYJUYCUXDUXHUXJUXDUXHUYCUWAUUPUXGAWRWOUXHUXIWPWQUTXJWSUYDUYAR
      UYJUYDUXEUXJUYDUXCUXHUXDUXIUUPUXGUWAAWTUUPUXGUWAXATXBXCXJXDXEWSYAXFXGXHWN
      ZXIUUAUVBUVAUVNUVKRZUWGUUAUVBUVAPZPZUYRRDEUUOUUKUWJUWIDGNZEFNZPZUVSUYTUWF
      UYRVUCUVRUYSUUAVUAUVPUVBVUBUVQUVAUUBUUOHVBUUCUUKHVBVCVDVUCUVTUVNUWEUVKUUB
      UUOUUCUUKVFVUCUWCUVGUWDUVJVUAVUBUWAUUPUWBUULAUUBUUOBSZUUCUUKBSZVEVUAVUBUW
      AUUPUWBUULVUDVUEVGTVHVHUYQXIWLXKXEUVIUVHUVKUVEUVHUVFUVEUVFUVGXLUVFUVEUVGX
      MZXNUVGUVHUVJUVGUVEUVFXOUVHUULUUPVUFXPXNXNYBUUTUVEUUDUVFUUEUVGUUFUULUUBUU
      PUUCAXQUULUUBUUPUUCXRUUQUUMUVGUUFUAUUPUUCUULUUBAXQXSXTYCYDYEYFYGDEYSAYHYI
      $.
  $}

  $c Fin1a Fin2 Fin3 Fin4 Fin5 Fin6 Fin7 $.

  $( Extend class notation to include the class of Ia-finite sets. $)
  cfin1a $a class Fin1a $.

  $( Extend class notation to include the class of II-finite sets. $)
  cfin2 $a class Fin2 $.

  $( Extend class notation to include the class of IV-finite sets. $)
  cfin4 $a class Fin4 $.

  $( Extend class notation to include the class of III-finite sets. $)
  cfin3 $a class Fin3 $.

  $( Extend class notation to include the class of V-finite sets. $)
  cfin5 $a class Fin5 $.

  $( Extend class notation to include the class of VI-finite sets. $)
  cfin6 $a class Fin6 $.

  $( Extend class notation to include the class of VII-finite sets. $)
  cfin7 $a class Fin7 $.

  ${
    $d x y $.
    $( A set is Ia-finite iff it is not the union of two I-infinite sets.
       Equivalent to definition Ia of [Levy58] p. 2.  A I-infinite Ia-finite
       set is also known as an amorphous set.  This is the second of Levy's
       eight definitions of finite set.  Levy's I-finite is equivalent to our
       ~ df-fin and not repeated here.  These eight definitions are equivalent
       with Choice but strictly decreasing in strength in models where Choice
       fails; conversely, they provide a series of increasingly stronger
       notions of infiniteness.  (Contributed by Stefan O'Rear,
       12-Nov-2014.) $)
    df-fin1a $a |- Fin1a = { x |
      A. y e. ~P x ( y e. Fin \/ ( x \ y ) e. Fin ) } $.

    $( A set is II-finite (Tarski finite) iff every nonempty chain of subsets
       contains a maximum element.  Definition II of [Levy58] p. 2.
       (Contributed by Stefan O'Rear, 12-Nov-2014.) $)
    df-fin2 $a |- Fin2 = { x | A. y e. ~P ~P x ( ( y =/= (/) /\
      [C.] Or y ) -> U. y e. y ) } $.

    $( A set is IV-finite (Dedekind finite) iff it has no equinumerous proper
       subset.  Definition IV of [Levy58] p. 3.  (Contributed by Stefan O'Rear,
       12-Nov-2014.) $)
    df-fin4 $a |- Fin4 = { x | -. E. y ( y C. x /\ y ~~ x ) } $.

    $( A set is III-finite (weakly Dedekind finite) iff its power set is
       Dedekind finite.  Definition III of [Levy58] p. 2.  (Contributed by
       Stefan O'Rear, 12-Nov-2014.) $)
    df-fin3 $a |- Fin3 = { x | ~P x e. Fin4 } $.

    $( A set is V-finite iff it behaves finitely under ` +c ` .  Definition V
       of [Levy58] p. 3.  (Contributed by Stefan O'Rear, 12-Nov-2014.) $)
    df-fin5 $a |- Fin5 = { x | ( x = (/) \/ x ~< ( x +c x ) ) } $.

    $( A set is VI-finite iff it behaves finitely under ` X. ` .  Definition VI
       of [Levy58] p. 4.  (Contributed by Stefan O'Rear, 12-Nov-2014.) $)
    df-fin6 $a |- Fin6 = { x | ( x ~< 2o \/ x ~< ( x X. x ) ) } $.

    $( A set is VII-finite iff it cannot be infinitely well-ordered.
       Equivalent to definition VII of [Levy58] p. 4.  (Contributed by Stefan
       O'Rear, 12-Nov-2014.) $)
    df-fin7 $a |- Fin7 = { x | -. E. y e. ( On \ _om ) x ~~ y } $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x X $.
    $( Definition of a Ia-finite set.  (Contributed by Stefan O'Rear,
       16-May-2015.) $)
    isfin1a $p |- ( A e. V -> ( A e. Fin1a <->
      A. y e. ~P A ( y e. Fin \/ ( A \ y ) e. Fin ) ) ) $=
      ( vx cv cfn wcel cdif cpw wral cfin1a wceq difeq1 eleq1d orbi2d raleqbidv
      wo pweq df-fin1a elab2g ) AEZFGZDEZUAHZFGZQZAUCIZJUBBUAHZFGZQZABIZJDBKCUC
      BLZUFUJAUGUKUCBRULUEUIUBULUDUHFUCBUAMNOPDAST $.

    $( Property of a Ia-finite set.  (Contributed by Stefan O'Rear,
       16-May-2015.) $)
    fin1ai $p |- ( ( A e. Fin1a /\ X C_ A ) ->
      ( X e. Fin \/ ( A \ X ) e. Fin ) ) $=
      ( vx cfin1a wcel wss wa cv cfn cdif wo cpw wceq eleq1 difeq2 orbi12d wral
      eleq1d isfin1a ibi adantr elpw2g biimpar rspcdva ) ADEZBAFZGCHZIEZAUGJZIE
      ZKZBIEZABJZIEZKCALZBUGBMZUHULUJUNUGBINUPUIUMIUGBAORPUEUKCUOQZUFUEUQCADSTU
      AUEBUOEUFBADUBUCUD $.

    $( Definition of a II-finite set.  (Contributed by Stefan O'Rear,
       16-May-2015.) $)
    isfin2 $p |- ( A e. V -> ( A e. Fin2 <-> A. y e. ~P ~P A ( ( y =/= (/) /\
      [C.] Or y ) -> U. y e. y ) ) ) $=
      ( vx cv c0 wne crpss wor wa cuni wcel wi cpw wral cfin2 wceq pweq raleqdv
      pweqd df-fin2 elab2g ) AEZFGUCHIJUCKUCLMZADEZNZNZOUDABNZNZODBPCUEBQZUDAUG
      UIUJUFUHUEBRTSDAUAUB $.

    $( Property of a II-finite set.  (Contributed by Stefan O'Rear,
       16-May-2015.) $)
    fin2i $p |- ( ( ( A e. Fin2 /\ B C_ ~P A ) /\ ( B =/= (/) /\ [C.] Or B ) )
        -> U. B e. B ) $=
      ( vy cfin2 wcel cpw wss wa c0 wne crpss wor cuni cv wi wral cvv wb elpw2g
      pwexg syl biimpar isfin2 adantr wceq neeq1 soeq2 anbi12d unieq id eleq12d
      ibi imbi12d rspcv sylc imp ) ADEZBAFZGZHZBIJZBKLZHZBMZBEZUTBURFZEZCNZIJZV
      HKLZHZVHMZVHEZOZCVFPZVCVEOZUQVGUSUQURQEVGUSRADTBURQSUAUBUQVOUSUQVOCADUCUL
      UDVNVPCBVFVHBUEZVKVCVMVEVQVIVAVJVBVHBIUFVHBKUGUHVQVLVDVHBVHBUIVQUJUKUMUNU
      OUP $.

    $( Definition of a III-finite set.  (Contributed by Stefan O'Rear,
       16-May-2015.) $)
    isfin3 $p |- ( A e. Fin3 <-> ~P A e. Fin4 ) $=
      ( vx cfin3 wcel cpw cfin4 cab df-fin3 eleq2i pwexr wceq pweq eleq1d elab3
      cv bitri ) ACDABOZEZFDZBGZDAEZFDZCTABHISUBBAAFJQAKRUAFQALMNP $.

    $( Definition of a IV-finite set.  (Contributed by Stefan O'Rear,
       16-May-2015.) $)
    isfin4 $p |- ( A e. V -> ( A e. Fin4 <->
      -. E. y ( y C. A /\ y ~~ A ) ) ) $=
      ( vx cv wpss cen wbr wa wex cfin4 wceq psseq2 breq2 anbi12d exbidv notbid
      wn df-fin4 elab2g ) AEZDEZFZUAUBGHZIZAJZRUABFZUABGHZIZAJZRDBKCUBBLZUFUJUK
      UEUIAUKUCUGUDUHUBBUAMUBBUAGNOPQDAST $.

    $( Infer that a set is IV-infinite.  (Contributed by Stefan O'Rear,
       16-May-2015.) $)
    fin4i $p |- ( ( X C. A /\ X ~~ A ) -> -. A e. Fin4 ) $=
      ( vx cfin4 wcel cv cen wbr wa wex wn isfin4 ibi cvv relen brrelexi adantl
      wpss wceq psseq1 breq1 anbi12d spcegv mpcom nsyl3 ) ADEZCFZARZUGAGHZIZCJZ
      BARZBAGHZIZUFUKKCADLMBNEZUNUKUMUOULBAGOPQUJUNCBNUGBSUHULUIUMUGBATUGBAGUAU
      BUCUDUE $.

    $( Definition of a V-finite set.  (Contributed by Stefan O'Rear,
       16-May-2015.) $)
    isfin5 $p |- ( A e. Fin5 <-> ( A = (/) \/ A ~< ( A +c A ) ) ) $=
      ( vx cfin5 wcel cv c0 wceq ccda co csdm wbr wo cab df-fin5 eleq2i cvv 0ex
      id syl6eqel relsdom brrelexi eqeq1 oveq12d breq12d orbi12d elab3 bitri
      jaoi ) ACDABEZFGZUIUIUIHIZJKZLZBMZDAFGZAAAHIZJKZLZCUNABNOUMURBAUOAPDUQUOA
      FPUORQSAUPJTUAUHUIAGZUJUOULUQUIAFUBUSUIAUKUPJUSRZUSUIAUIAHUTUTUCUDUEUFUG
      $.

    $( Definition of a VI-finite set.  (Contributed by Stefan O'Rear,
       16-May-2015.) $)
    isfin6 $p |- ( A e. Fin6 <-> ( A ~< 2o \/ A ~< ( A X. A ) ) ) $=
      ( vx cfin6 wcel cv c2o wbr cxp wo cab df-fin6 eleq2i cvv relsdom brrelexi
      csdm jaoi wceq breq1 id sqxpeqd breq12d orbi12d elab3 bitri ) ACDABEZFPGZ
      UFUFUFHZPGZIZBJZDAFPGZAAAHZPGZIZCUKABKLUJUOBAULAMDUNAFPNOAUMPNOQUFARZUGUL
      UIUNUFAFPSUPUFAUHUMPUPTZUPUFAUQUAUBUCUDUE $.

    $( Definition of a VII-finite set.  (Contributed by Stefan O'Rear,
       16-May-2015.) $)
    isfin7 $p |- ( A e. V ->
      ( A e. Fin7 <-> -. E. y e. ( On \ _om ) A ~~ y ) ) $=
      ( vx cv cen wbr con0 cdif wrex wn cfin7 wceq breq1 rexbidv notbid df-fin7
      com elab2g ) DEZAEZFGZAHRIZJZKBUAFGZAUCJZKDBLCTBMZUDUFUGUBUEAUCTBUAFNOPDA
      QS $.
  $}

  $( A set with less than two elements has 0 or 1.  (Contributed by Stefan
     O'Rear, 30-Oct-2014.) $)
  sdom2en01 $p |- ( A ~< 2o <-> ( A = (/) \/ A ~~ 1o ) ) $=
    ( c2o wbr cfn wcel c0 wceq c1o wo com con0 2onn sselii 1onn ccrd cfv eleq2i
    wb cardnn ax-mp csdm cen cdom onfin2 inss2 eqsstri sdomdom domfi sylancr id
    cin 0fin syl6eqel enfi mpbiri jaoi cpr df2o3 fvex elpr bitri a1i cdm finnum
    2on onenon cardsdom2 sylancl syl5bbr cardnueq0 syl eqeq2i carden2 pm5.21nii
    orbi12d 3bitr3d ) ABUACZADEZAFGZAHUBCZIZVQBDEABUCCVRJDBJKDUKDUDKDUEUFZLMABU
    GBAUHUIVSVRVTVSAFDVSUJULUMVTVRHDEZJDHWBNMZAHUNUOUPVRAOPZBEZWEFGZWEHGZIZVQWA
    WFWIRVRWFWEFHUQZEWIBWJWEURQWEFHAOUSUTVAVBWFWEBOPZEZVRVQWKBWEBJEWKBGLBSTQVRA
    OVCZEZBWMEZWLVQRAVDZBKEWOVEBVFTABVGVHVIVRWGVSWHVTVRWNWGVSRWPAVJVKWHWEHOPZGZ
    VRVTWQHWEHJEWQHGNHSTVLVRWNHWMEZWRVTRWPWCWSWDHVDTAHVMVHVIVOVPVN $.

  ${
    $d b c A $.  $d b c d G $.  $d b c M $.  $d b N $.  $d b c d ph $.
    infpssrlem.a $e |- ( ph -> B C_ A ) $.
    infpssrlem.c $e |- ( ph -> F : B -1-1-onto-> A ) $.
    infpssrlem.d $e |- ( ph -> C e. ( A \ B ) ) $.
    infpssrlem.e $e |- G = ( rec ( `' F , C ) |` _om ) $.
    $( Lemma for ~ infpssr .  (Contributed by Stefan O'Rear, 30-Oct-2014.) $)
    infpssrlem1 $p |- ( ph -> ( G ` (/) ) = C ) $=
      ( c0 cfv ccnv crdg com cres fveq1i cdif wcel wceq fr0g syl syl5eq ) AKFLK
      EMZDNOPZLZDKFUEJQADBCRZSUFDTIDUGUDUAUBUC $.

    $( Lemma for ~ infpssr .  (Contributed by Stefan O'Rear, 30-Oct-2014.) $)
    infpssrlem2 $p |- ( M e. _om -> ( G ` suc M ) = ( `' F ` ( G ` M ) ) ) $=
      ( com wcel csuc ccnv crdg cres cfv frsuc fveq1i fveq2i 3eqtr4g ) GLMGNZEO
      ZDPLQZRGUERZUDRUCFRGFRZUDRDGUDSUCFUEKTUGUFUDGFUEKTUAUB $.

    $( Lemma for ~ infpssr .  (Contributed by Stefan O'Rear, 30-Oct-2014.) $)
    infpssrlem3 $p |- ( ph -> G : _om --> A ) $=
      ( vc vb com wfn cfv wcel c0 wceq fveq2 eleq1d cv wral wf ccnv crdg frfnom
      cres fneq1i mpbir a1i csuc infpssrlem1 eldifad eqeltrd wa wss adantr wf1o
      f1ocnv f1of 3syl ffvelrnda sseldd infpssrlem2 syl5ibr expd com12 ralrimiv
      finds2 ffnfv sylanbrc ) AFMNZKUAZFOZBPZKMUBMBFUCVLAVLEUDZDUEMUGZMNDVPUFMF
      VQJUHUIUJAVOKMVMMPAVOVOQFOZBPLUAZFOZBPZVSUKZFOZBPZAKLVMQRVNVRBVMQFSTVMVSR
      VNVTBVMVSFSTVMWBRVNWCBVMWBFSTAVRDBABCDEFGHIJULADBCIUMUNVSMPZAWAWDAWAUOZWD
      WEVTVPOZBPWFCBWGACBUPWAGUQABCVTVPACBEURBCVPURBCVPUCHCBEUSBCVPUTVAVBVCWEWC
      WGBABCDEFVSGHIJVDTVEVFVIVGVHKMBFVJVK $.

    $( Lemma for ~ infpssr .  (Contributed by Stefan O'Rear, 30-Oct-2014.) $)
    infpssrlem4 $p |- ( ( ph /\
      M e. _om /\ N e. M ) -> ( G ` M ) =/= ( G ` N ) ) $=
      ( vb com wcel cfv wne wa wi wceq vc vd cv wral c0 fveq2 neeq1d raleqbi1dv
      csuc imbi2d ral0 a1i w3a ccnv wn wf1o f1ocnv f1of 3syl adantl infpssrlem3
      wf ffvelrnda ancoms eldifbd nelne2 syl2anc infpssrlem2 adantr infpssrlem1
      ffvelrnd 3netr4d 3adant3 neeq2d syl5ibr adantrd wrex simpr elnn 3ad2antl1
      peano2 simpl nnsuc nfv nfra1 nf3an nfan simpl3 word nnord ordsucelsuc syl
      wb mpbird adantrr rsp sylc wf1 ad2antlr adantll f1fveq syl12anc necon3bid
      f1of1 biimprd neeq12d adantlr sylibrd adantrl 3adantl3 expr eleq1 imbi12d
      mpd anbi2d mpbiri com3l rexlimd ex pm2.61ine ralrimiva cbvralv sylib 3exp
      a2d finds impcom rspccv 3impia ) AGNOZHGOZGFPZHFPZQZAYJRYLMUCZFPZQZMGUDZY
      KYNSYJAYRAUAUCZFPZYPQZMYSUDZSAUEFPZYPQZMUEUDZSAUBUCZFPZYPQZMUUFUDZSAUUFUI
      ZFPZYPQZMUUJUDZSAYRSUAUBGYSUETZUUBUUEAUUAUUDMYSUEUUNYTUUCYPYSUEFUFZUGUHUJ
      YSUUFTZUUBUUIAUUAUUHMYSUUFUUPYTUUGYPYSUUFFUFUGUHUJYSUUJTZUUBUUMAUUAUULMYS
      UUJUUQYTUUKYPYSUUJFUFUGUHUJYSGTZUUBYRAUUAYQMYSGUURYTYLYPYSGFUFUGUHUJUUEAU
      UDMUKULUUFNOZAUUIUUMUUSAUUIUUMUUSAUUIUMZUUKYTQZUAUUJUDUUMUUTUVAUAUUJUUTYS
      UUJOZRZUVASYSUEUUNUUTUVAUVBUUTUVAUUNUUKUUCQZUUSAUVDUUIUUSARZUUGEUNZPZDUUK
      UUCUVEUVGCODCOUOZUVGDQUVEBCUUGUVFABCUVFVBZUUSACBEUPZBCUVFUPZUVIJCBEUQZBCU
      VFURUSUTAUUSUUGBOZANBUUFFABCDEFIJKLVAZVCVDZVKAUVHUUSADBCKVEUTUVGDCVFVGUUS
      UUKUVGTZAABCDEFUUFIJKLVHZVIAUUCDTUUSABCDEFIJKLVJUTVLVMUUNYTUUCUUKUUOVNVOV
      PYSUEQZUVCUVAUVRUVCRZYSYOUIZTZMNVQZUVAUVSYSNOZUVRUWBUVCUWCUVRUUSAUVBUWCUU
      IUUSUVBRUVBUUJNOZUWCUUSUVBVRUUSUWDUVBUUFWAVIYSUUJVSVGVTUTUVRUVCWBMYSWCVGU
      VCUWBUVASUVRUVCUWAUVAMNUUTUVBMUUSAUUIMUUSMWDAMWDUUHMUUFWEWFUVBMWDWGUVAMWD
      UWAUVCYONOZUVAUWAUVCUWEUVASZSUUTUVTUUJOZRZUWEUUKUVTFPZQZSZSUUTUWGUWEUWJUU
      TUWGUWERZRZUUHUWJUWMUUIYOUUFOZUUHUUSAUUIUWLWHUUTUWGUWNUWEUUSAUWGUWNUUIUUS
      UWGRZUWNUWGUUSUWGVRUWOUUFWIZUWNUWGWMUUSUWPUWGUUFWJVIYOUUFWKWLWNVTWOUUHMUU
      FWPWQUUSAUWLUUHUWJSZUUIUVEUWEUWQUWGUVEUWERZUUHUVGYPUVFPZQZUWJUWRUWTUUHUWR
      UVGUWSUUGYPUWRBCUVFWRZUVMYPBOZUVGUWSTUUGYPTWMAUXAUUSUWEAUVJUVKUXAJUVLBCUV
      FXDUSWSUVEUVMUWEUVOVIAUWEUXBUUSANBYOFUVNVCWTBCUUGYPUVFXAXBXCXEUUSUWEUWJUW
      TWMAUUSUWERUUKUVGUWIUWSUUSUVPUWEUVQVIUWEUWIUWSTUUSABCDEFYOIJKLVHUTXFXGXHX
      IXJXNXKUWAUVCUWHUWFUWKUWAUVBUWGUUTYSUVTUUJXLXOUWAUVAUWJUWEUWAYTUWIUUKYSUV
      TFUFVNUJXMXPXQXRUTXNXSXTYAUVAUULUAMUUJYSYOTYTYPUUKYSYOFUFVNYBYCYDYEYFYGYQ
      YNMHGYOHTYPYMYLYOHFUFVNYHWLYI $.

    $( Lemma for ~ infpssr .  (Contributed by Stefan O'Rear, 30-Oct-2014.) $)
    infpssrlem5 $p |- ( ph -> ( A e. V -> _om ~<_ A ) ) $=
      ( vb vc com wcel cv cfv wceq wral wa wf1 cdom wbr wf wi infpssrlem3 wo wn
      wne simpll simplrr simpr infpssrlem4 syl3anc necomd jaodan ex necon2bd wb
      simplrl word nnord ordtri3 syl2an adantl ralrimivva dff13 sylanbrc f1domg
      sylibrd syl5com ) ANBFUAZBGONBUBUCANBFUDLPZFQZMPZFQZRZVMVORZUEZMNSLNSVLAB
      CDEFHIJKUFAVSLMNNAVMNOZVONOZTZTZVQVMVOOZVOVMOZUGZUHZVRWCWFVNVPWCWFVNVPUIZ
      WCWDWHWEWCWDTZVPVNWIAWAWDVPVNUIAWBWDUJAVTWAWDUKWCWDULABCDEFVOVMHIJKUMUNUO
      WCWETAVTWEWHAWBWEUJAVTWAWEUTWCWEULABCDEFVMVOHIJKUMUNUPUQURWBVRWGUSZAVTVMV
      AVOVAWJWAVMVBVOVBVMVOVCVDVEVJVFLMNBFVGVHNBGFVIVK $.
  $}

  ${
    $d f y A $.  $d f y X $.
    $( Dedekind infinity implies existence of a denumerable subset: take a
       single point witnessing the proper subset relation and iterate the
       embedding.  (Contributed by Stefan O'Rear, 30-Oct-2014.)  (Revised by
       Mario Carneiro, 16-May-2015.) $)
    infpssr $p |- ( ( X C. A /\ X ~~ A ) -> _om ~<_ A ) $=
      ( vy vf cv wcel wn wa wex wpss cen wbr com cdom pssnel adantr wi cdif cvv
      ex eldif wss pssss wf1o bren crn wfo wceq simpr f1ofo forn 3syl syl6eqelr
      vex rnex ccnv crdg cres simplr simpll eqid infpssrlem5 mpd exlimdv syl5bi
      syl5 impd sylbir exlimiv mpcom ) CEZAFVKBFGHZCIZBAJZBAKLZHZMANLZVNVMVOCBA
      OPVLVPVQQZCVLVKABRFZVRVKABUAVSVNVOVQVNBAUBZVSVOVQQZBAUCVSVTWAVOBADEZUDZDI
      VSVTHZVQBADUEWDWCVQDWDWCVQWDWCHZASFVQWEAWBUFZSWEWCBAWBUGWFAUHWDWCUIZBAWBU
      JBAWBUKULWBDUNUOUMWEABVKWBWBUPVKUQMURZSVSVTWCUSWGVSVTWCUTWHVAVBVCTVDVETVF
      VGVHVIVJ $.
  $}

  ${
    $d c f x A $.  $d c f x B $.
    $( Dedekind finite is a cardinal property.  (Contributed by Stefan O'Rear,
       30-Oct-2014.)  (Revised by Mario Carneiro, 16-May-2015.) $)
    fin4en1 $p |- ( A ~~ B -> ( A e. Fin4 -> B e. Fin4 ) ) $=
      ( vx vf cen wbr cfin4 wcel wi cv wpss wa wex wn wss wb syl2an syl2anc cvv
      cima ensym wf1o bren simpr wf1 f1of1 pssss ssid jctir f1imapss mpbird cdm
      imadmrn f1odm imaeq2d dff1o5 simprbi 3eqtr3a adantr psseq2d mpbid adantrr
      wceq crn vex f1imaen simprr entr f1oen3g mpan fin4i exlimdv con2d exlimiv
      ex sylbi relen brrelexi isfin4 syl sylibrd ) ABEFBAEFZAGHZBGHZIABUAWBWCCJ
      ZBKZWEBEFZLZCMZNZWDWBBADJZUBZDMWCWJIZBADUCWLWMDWLWIWCWLWHWCNZCWLWHWNWLWHL
      ZWKWETZAKZWPAEFZWNWLWFWQWGWLWFLZWPWKBTZKZWQWSXAWFWLWFUDWLBAWKUEZWEBOZBBOZ
      LXAWFPWFBAWKUFZWFXCXDWEBUGZBUHUIBAWEBWKUJQUKWSWTAWPWLWTAVCWFWLWKWKULZTWKV
      DZWTAWKUMWLXGBWKBAWKUNUOWLXBXHAVCBAWKUPUQURUSUTVAVBWOWPBEFZWBWRWOWPWEEFZW
      GXIWLWFXJWGWLXBXCXJWFXEXFBAWEWKCVEVFQVBWLWFWGVGWPWEBVHRWLWBWHWKSHWLWBDVEB
      AWKSVIVJUSWPBAVHRAWPVKRVOVLVMVNVPWBBSHWDWJPBAEVQVRCBSVSVTWAVT $.

    $( Dedekind finite sets have Dedekind finite subsets.  (Contributed by
       Stefan O'Rear, 30-Oct-2014.)  (Revised by Mario Carneiro, 6-May-2015.)
       (Revised by Mario Carneiro, 16-May-2015.) $)
    ssfin4 $p |- ( ( A e. Fin4 /\ B C_ A ) -> B e. Fin4 ) $=
      ( vx vc cfin4 wcel wss wa cv wpss cen wbr wex wn cun wceq simprr ad2antrl
      cin cvv simpll cdif pssss simpr difssd unssd pssnel adantl simpllr simprl
      sylan9ssr sseldd elndif wo ioran xchnxbir sylanbrc nelneq2 syl2anc sylnib
      elun eqcom exlimddv dfpss2 adantrr c0 difexg enrefg 3syl ssinss1 inssdif0
      syl sylib disjdif jctir unen syl21anc simplr undif breqtrd fin4i pm2.65da
      nexdv wb ssexg ancoms isfin4 mpbird ) AEFZBAGZHZBEFZCIZBJZWMBKLZHZCMNZWKW
      PCWKWPWIWIWJWPUAZWKWPHZWMABUBZOZAJZXAAKLWINWKWNXBWOWKWNHZXAAGXAAPZNZXBXCW
      MWTAWNWKWMBAWMBUCZWIWJUDUKXCABUEUFXCDIZBFZXGWMFZNZHZXEDWNXKDMWKDWMBUGUHXC
      XKHZAXAPZXDXLXGAFXGXAFZNZXMNXLBAXGWIWJWNXKUIXCXHXJUJULXLXJXGWTFZNZXOXCXHX
      JQXHXQXCXJXGBAUMRXIXPUNXJXQHXNXIXPUOXGWMWTVAUPUQXGAXAURUSAXAVBUTVCXAAVDUQ
      VEWSXABWTOZAKWSWOWTWTKLZWMWTSVFPZBWTSVFPZHXAXRKLWKWNWOQWSWIWTTFXSWRABEVGW
      TTVHVIWSXTYAWSWMASBGZXTWSWMBGZYBWNYCWKWOXFRWMABVJVLWMABVKVMBAVNVOWMBWTWTV
      PVQWSWJXRAPWIWJWPVRBAVSVMVTAXAWAUSWBWCWKBTFZWLWQWDWJWIYDBAEWEWFCBTWGVLWH
      $.

    $( A set dominated by a Dedekind finite set is Dedekind finite.
       (Contributed by Mario Carneiro, 16-May-2015.) $)
    domfin4 $p |- ( ( A e. Fin4 /\ B ~<_ A ) -> B e. Fin4 ) $=
      ( vx cfin4 wcel wbr wa cv cen wss wex domeng biimpa ensym ad2antrl ssfin4
      cdom ad2ant2rl fin4en1 sylc exlimddv ) ADEZBAQFZGZBCHZIFZUEAJZGZBDEZCUBUC
      UHCKCBADLMUDUHGUEBIFZUEDEZUIUFUJUDUGBUENOUBUGUKUCUFAUEPRUEBSTUA $.

    $( ` _om ` is Dedekind infinite.  (Contributed by Stefan O'Rear,
       30-Oct-2014.)  (Proof shortened by Mario Carneiro, 16-May-2015.) $)
    ominf4 $p |- -. _om e. Fin4 $=
      ( com cfin4 wcel id c0 csn cdif wpss cen wn peano1 difsnpss mpbi limenpsi
      wbr limom ensymd fin4i sylancr pm2.65i ) ABCZUAUADUAAEFGZAHZUBAIOUAJEACUC
      KEALMUAAUBABPNQAUBRST $.

    $( Alternate proof of ~ infpss , shorter but requiring Replacement
       ( ~ ax-rep ).  (Contributed by Stefan O'Rear, 30-Oct-2014.)  (Revised by
       Mario Carneiro, 16-May-2015.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    infpssALT $p |- ( _om ~<_ A -> E. x ( x C. A /\ x ~~ A ) ) $=
      ( com cdom wbr cv wpss cen wa wex cfin4 ominf4 wn cvv wb reldom brrelex2i
      wcel isfin4 syl domfin4 expcom sylbird mt3i ) CBDEZAFZBGUFBHEIAJZCKRZLUEU
      GMZBKRZUHUEBNRUJUIOCBDPQABNSTUJUEUHBCUAUBUCUD $.
  $}

  ${
    $d x A $.
    $( Alternate definition of IV-finite sets: they lack a denumerable subset.
       (Contributed by Stefan O'Rear, 30-Oct-2014.)  (Revised by Mario
       Carneiro, 17-May-2015.) $)
    isfin4-2 $p |- ( A e. V -> ( A e. Fin4 <-> -. _om ~<_ A ) ) $=
      ( vx wcel cfin4 cv wpss cen wbr wa wex wn com cdom isfin4 infpssr exlimiv
      infpss impbii notbii syl6bb ) ABDAEDCFZAGUBAHIJZCKZLMANIZLCABOUDUEUDUEUCU
      ECAUBPQCARSTUA $.
  $}

  $( Alternate definition of IV-finite sets: they are strictly dominated by
     their successors.  (Thus, the proper subset referred to in ~ isfin4 can be
     assumed to be only a singleton smaller than the original.)  (Contributed
     by Mario Carneiro, 18-May-2015.) $)
  isfin4-3 $p |- ( A e. Fin4 <-> A ~< ( A +c 1o ) ) $=
    ( cfin4 wcel c1o csdm wbr cdom cen wn con0 1on c0 csn cxp cvv wceq brrelexi
    sylancl mp1i syl ccda co cdadom3 mpan2 cop cun ssun1 relen cdaval syl5sseqr
    wpss 0lt1o elexi snid opelxpi mp2an elun2 eleqtrrd wne 1n0 opelxp2 necon3ai
    elsni ssnelpssd 0ex xpsneng entr mpancom fin4i syl2anc fin4en1 con2i brsdom
    mtod sylanbrc sdomnen infcda1 ensymd nsyl wb relsdom isfin4-2 mpbird impbii
    com ) ABCZAADUAUBZEFZWFAWGGFZAWGHFZIWHWFDJCZWIKADBJUCUDWJWFWJWFWGBCZWJALMZN
    ZWGUKWNWGHFZWLIWJWNWGLDUEZWJWNDDMZNZUFZWNWGWNWRUGWJAOCZWKWGWSPAWGHUHQZKADOJ
    UIRZUJWJWPWSWGWPWRCZWPWSCWJLDCDWQCXCULDDJKUMUNLDDWQUOUPWPWRWNUQSXBURDLUSWPW
    NCZIWJUTXDDLXDDWMCDLPLDAWMVADLVCTVBSVDWNAHFZWJWOWJWTLOCXEXAVEALOOVFRWNAWGVG
    VHWGWNVIVJAWGVKVNVLAWGVMVOWHWFWEAGFZIZWHWJXFAWGVPXFWGAAVQVRVSWHWTWFXGVTAWGE
    WAQAOWBTWCWD $.

  ${
    $d c v w x y z A $.  $d c v w x y z B $.  $d z ch $.  $d v ph $.  $d y V $.
    $d x ps $.  $d w th $.
    $( Lemma for ~ isfin2-2 .  The componentwise complement of a nonempty
       collection of sets is nonempty.  (Contributed by Stefan O'Rear,
       31-Oct-2014.)  (Revised by Mario Carneiro, 16-May-2015.) $)
    fin23lem7 $p |- ( ( A e. V /\ B C_ ~P A /\ B =/= (/) ) ->
      { x e. ~P A | ( A \ x ) e. B } =/= (/) ) $=
      ( vy wcel cpw wss c0 wne w3a cv cdif wrex crab wex wa n0 wceq simpr difss
      wb elpw2g ad2antrr mpbiri sselda elpwid dfss4 sylib eqeltrd difeq2 eleq1d
      rspcev syl2anc ex exlimdv syl5bi 3impia rabn0 sylibr ) BDFZCBGZHZCIJZKBAL
      ZMZCFZAVBNZVGAVBOIJVAVCVDVHVDELZCFZEPVAVCQZVHECRVKVJVHEVKVJVHVKVJQZBVIMZV
      BFZBVMMZCFZVHVLVNVMBHZBVIUAVAVNVQUBVCVJVMBDUCUDUEVLVOVICVLVIBHVOVISVLVIBV
      KCVBVIVAVCTUFUGVIBUHUIVKVJTUJVGVPAVMVBVEVMSVFVOCVEVMBUKULUMUNUOUPUQURVGAV
      BUSUT $.

    fin23lem11.1 $e |- ( z = ( A \ x ) -> ( ps <-> ch ) ) $.
    fin23lem11.2 $e |- ( w = ( A \ v ) -> ( ph <-> th ) ) $.
    fin23lem11.3 $e |- ( ( x C_ A /\ v C_ A ) -> ( ch <-> th ) ) $.
    $( Lemma for ~ isfin2-2 .  (Contributed by Stefan O'Rear, 31-Oct-2014.)
       (Revised by Mario Carneiro, 16-May-2015.) $)
    fin23lem11 $p |- ( B C_ ~P A -> ( E. x e. { c e. ~P A | ( A \ c ) e. B }
      A. w e. { c e. ~P A | ( A \ c ) e. B } -. ph ->
        E. z e. B A. v e. B -. ps ) ) $=
      ( wss wn cv cdif wcel wceq cpw crab wral wa wi difeq2 eleq1d elrab simp2r
      wrex w3a difss cvv wb ssun1 undif1 sseqtr4i simpl2r simpl2l unexg syl2anc
      cun ssexg sylancr elpw2g mpbiri simpl1 simpr sseldd elpwid dfss4 sylanbrc
      syl sylib eqeltrd simpl3 notbid rspcva simplrl adantlr 3adantl3 ralrimiva
      ssel2 mpbird ralbidv rspcev 3exp syl5bi rexlimdv ) JIUAZOZAPZGIKQZRZJSZKW
      JUBZUCZBPZHJUCZFJUJZEWPEQZWPSXAWJSZIXARZJSZUDZWKWQWTUEWOXDKXAWJWMXATWNXCJ
      WMXAIUFUGUHWKXEWQWTWKXEWQUKZXDCPZHJUCZWTWKXBXDWQUIXFXGHJXFHQZJSZUDZXGDPZX
      KIXIRZWPSZWQXLXKXMWJSZIXMRZJSZXNXKXOXMIOZIXIULXKIUMSZXOXRUNXKIXCXAVBZOXTU
      MSZXSIIXAVBXTIXAUOIXAUPUQXKXDXBYAXBXDWKWQXJURXBXDWKWQXJUSXCXAJWJUTVAIXTUM
      VCVDXMIUMVEVMVFXKXPXIJXKXIIOZXPXITXKXIIXKJWJXIWKXEWQXJVGXFXJVHZVIVJXIIVKV
      NYCVOWOXQKXMWJWMXMTWNXPJWMXMIUFUGUHVLWKXEWQXJVPWLXLGXMWPGQXMTADMVQVRVAWKX
      EXJXGXLUNWQWKXEUDXJUDZCDYDXAIOYBCDUNYDXAIWKXBXDXJVSVJYDXIIWKXJXIWJSXEJWJX
      IWCVTVJNVAVQWAWDWBWSXHFXCJFQXCTZWRXGHJYEBCLVQWEWFVAWGWHWI $.
  $}

  ${
    $d b c f m n w x y z A $.  $d c f m n w x z B $.  $d b V $.
    $( A II-finite set contains minimal elements for every nonempty chain.
       (Contributed by Mario Carneiro, 16-May-2015.) $)
    fin2i2 $p |- ( ( ( A e. Fin2 /\ B C_ ~P A ) /\ ( B =/= (/) /\ [C.] Or B ) )
        -> |^| B e. B ) $=
      ( vw vz vm vn vc cfin2 wcel wss wa c0 wne crpss wor cv wpss wn wral cdif
      cpw wrex cint crab simplr cuni simpll ssrab2 a1i simprl fin23lem7 syl3anc
      sorpsscmpl ad2antll fin2i syl22anc sorpssuni syl mpbird psseq2 pssdifcom2
      wb fin23lem11 sylc sorpssint mpbid ) AHIZBAUAZJZKZBLMZBNOZKZKZCPZDPZQZRCB
      SDBUBZBUCBIZVNVIEPZFPZQZRFAGPTBIZGVHUDZSEWDUBZVRVGVIVMUEZVNWEWDUFWDIZVNVG
      WDVHJZWDLMZWDNOZWGVGVIVMUGZWHVNWCGVHUHUIVNVGVIVKWIWKWFVJVKVLUJGABHUKULVLW
      JVJVKGABUMUNZAWDUOUPVNWJWEWGVBWLFEWDUQURUSWBVQVOAVTTZQVTAVOTZQEDFCABGVPWM
      VOUTWAWNVTUTVTVOAVAVCVDVLVRVSVBVJVKCDBVEUNVF $.

    $( ` Fin2 ` expressed in terms of minimal elements.  (Contributed by Stefan
       O'Rear, 2-Nov-2014.)  (Proof shortened by Mario Carneiro,
       16-May-2015.) $)
    isfin2-2 $p |- ( A e. V -> ( A e. Fin2 <-> A. y e. ~P ~P A
      ( ( y =/= (/) /\ [C.] Or y ) -> |^| y e. y ) ) ) $=
      ( vb vm vn vw vz vc wcel cv c0 wne crpss wor wa wi wral wss wpss cint cpw
      cfin2 elpwi fin2i2 sylan2 ralrimiva cuni w3a wrex cdif crab simp1r ssrab2
      ex wn cvv wb simp1l pwexg elpw2g mpbiri simp2 simp3l fin23lem7 sorpsscmpl
      3syl syl3anc adantl 3ad2ant3 jca wceq neeq1 soeq2 anbi12d eleq12d imbi12d
      inteq id rspcv syl3c sorpssint mpbird psseq1 pssdifcom1 fin23lem11 simp3r
      syl sylc sorpssuni mpbid 3exp ralrimdva isfin2 sylibrd impbid2 ) BCJZBUCJ
      ZAKZLMZWSNOZPZWSUAZWSJZQZABUBZUBZRZWRXEAXGWSXGJWRWSXFSZXEWSXFUDWRXIPXBXDB
      WSUEUOUFUGWQXHDKZLMZXJNOZPZXJUHXJJZQZDXGRWRWQXHXODXGXJXGJWQXJXFSZXHXOQXJX
      FUDWQXPPZXHXMXNXQXHXMUIZEKZFKZTZUPFXJREXJUJZXNXRXPGKZHKZTZUPGBIKUKXJJZIXF
      ULZRHYGUJZYBWQXPXHXMUMZXRYHYGUAZYGJZXRYGXGJZXHYGLMZYGNOZPZYKXRYLYGXFSZYFI
      XFUNXRWQXFUQJYLYPURWQXPXHXMUSZBCUTYGXFUQVAVGVBXQXHXMVCXRYMYNXRWQXPXKYMYQY
      IXQXHXKXLVDIBXJCVEVHXMXQYNXHXLYNXKIBXJVFVIVJZVKXEYOYKQAYGXGWSYGVLZXBYOXDY
      KYSWTYMXAYNWSYGLVMWSYGNVNVOYSXCYJWSYGWSYGVRYSVSVPVQVTWAXRYNYHYKURYRGHYGWB
      WHWCYEYABYDUKZXTTBXTUKZYDTHEGFBXJIXSYTXTWDYCUUAYDWDYDXTBWEWFWIXRXLYBXNURX
      QXHXKXLWGFEXJWJWHWKWLUFWMDBCWNWOWP $.

    $( A subset of a II-finite set is II-finite.  (Contributed by Stefan
       O'Rear, 2-Nov-2014.)  (Revised by Mario Carneiro, 16-May-2015.) $)
    ssfin2 $p |- ( ( A e. Fin2 /\ B C_ A ) -> B e. Fin2 ) $=
      ( vx cfin2 wcel wss wa cv c0 wne crpss wor cuni wi cpw wral simpll adantl
      elpwi cvv simplr sspwb sylib sstrd fin2i ex ralrimiva ssexg ancoms isfin2
      syl2anc wb syl mpbird ) ADEZBAFZGZBDEZCHZIJUSKLGZUSMUSEZNZCBOZOZPZUQVBCVD
      UQUSVDEZGZUOUSAOZFZVBUOUPVFQVGUSVCVHVFUSVCFUQUSVCSRVGUPVCVHFUOUPVFUABAUBU
      CUDUOVIGUTVAAUSUEUFUKUGUQBTEZURVEULUPUOVJBADUHUICBTUJUMUN $.

    $( II-finiteness is a cardinal property.  (Contributed by Mario Carneiro,
       18-May-2015.) $)
    enfin2i $p |- ( A ~~ B -> ( A e. Fin2 -> B e. Fin2 ) ) $=
      ( vx vf vy vw vz wcel cv cuni cpw wral wss cima wceq wrex imaeq2 syl12anc
      wa eleq1d cen wbr cfin2 c0 wne crpss wor wi wf1o wex bren elpwi crab ciun
      cab imauni vex imaex dfiun2 eqtri rexrab biimparc rexlimivw ccnv cnvimass
      eleq1 cdm f1odm ad3antrrr syl5sseq cnvex elpw sylibr simprl sselda elpwid
      wfo f1ofo foimacnv syl2anc eqcomd simpr eqeltrrd eqeq2d anbi12d rspcev ex
      impbid2 syl5bb abbi1dv unieqd syl5eq simplr ssrab2 simprrl sylib exlimddv
      a1i n0 rabn0 wo elrab anbi12i simprrr adantr simprlr sorpssi wf1 wb f1of1
      simprll f1imass orbi12d sylan2b ralrimivva sorpss syl22anc cbvrabv elrab2
      mpbid fin2i simprbi syl expr sylan2 ralrimiva exlimiv sylbi cvv brrelex2i
      relen isfin2 sylibrd ) ABUAUBZAUCHZCIZUDUEZYPUFUGZSZYPJZYPHZUHZCBKZKZLZBU
      CHZYNABDIZUIZDUJYOUUEUHZABDUKUUHUUIDUUHYOUUEUUHYOSZUUBCUUDYPUUDHUUJYPUUCM
      ZUUBYPUUCULUUJUUKYSUUAUUJUUKYSSZSZUUGUUGEIZNZYPHZEAKZUMZJZNZYTYPUUMUUTFIZ
      UUGGIZNZOZGUURPZFUOZJZYTUUTGUURUVCUNUVGGUUGUURUPGFUURUVCUUGUVBDUQZURUSUTU
      UMUVFYPUUMUVEFYPUVEUVCYPHZUVDSZGUUQPZUUMUVAYPHZUUPUVIUVDGEUUQUUNUVBOUUOUV
      CYPUUNUVBUUGQTZVAUUMUVKUVLUVJUVLGUUQUVDUVLUVIUVAUVCYPVFVBVCUUMUVLUVKUUMUV
      LSZUUGVDZUVANZUUQHZUUGUVPNZYPHZUVAUVROZUVKUVNUVPAMUVQUVNUUGVGZUVPAUUGUVAV
      EUUHUWAAOYOUULUVLABUUGVHVIVJUVPAUVOUVAUUGUVHVKURVLVMZUVNUVAUVRYPUVNUVRUVA
      UVNABUUGVQZUVABMUVRUVAOUUHUWCYOUULUVLABUUGVRVIUVNUVABUUMYPUUCUVAUUJUUKYSV
      NVOVPABUVAUUGVSVTWAZUUMUVLWBWCZUWDUVJUVSUVTSGUVPUUQUVBUVPOZUVIUVSUVDUVTUW
      FUVCUVRYPUVBUVPUUGQZTUWFUVCUVRUVAUWGWDWEWFRWGWHWIWJWKWLUUMUUSUURHZUUTYPHZ
      UUMYOUURUUQMZUURUDUEZUURUFUGZUWHUUHYOUULWMUWJUUMUUPEUUQWNWRUUMUUPEUUQPZUW
      KUUMUVLUWMFUUMYQUVLFUJUUJUUKYQYRWOFYPWSWPUVNUVQUVSUWMUWBUWEUUPUVSEUVPUUQU
      UNUVPOUUOUVRYPUUNUVPUUGQTWFVTWQUUPEUUQWTVMUUMUVBUVAMZUVAUVBMZXAZFUURLGUUR
      LUWLUUMUWPGFUURUURUVBUURHZUVAUURHZSUUMUVBUUQHZUVISZUVAUUQHZUUGUVANZYPHZSZ
      SZUWPUWQUWTUWRUXDUUPUVIEUVBUUQUVMXBUUPUXCEUVAUUQUUNUVAOUUOUXBYPUUNUVAUUGQ
      TXBXCUUMUXESZUVCUXBMZUXBUVCMZXAZUWPUXFYRUVIUXCUXIUUMYRUXEUUJUUKYQYRXDXEUU
      MUWSUVIUXDXFUUMUWTUXAUXCXDYPUVCUXBXGRUXFUXGUWNUXHUWOUXFABUUGXHZUVBAMZUVAA
      MZUXGUWNXIUUHUXJYOUULUXEABUUGXJVIZUXFUVBAUUMUWSUVIUXDXKVPZUXFUVAAUUMUWTUX
      AUXCWOVPZABUVBUVAUUGXLRUXFUXJUXLUXKUXHUWOXIUXMUXOUXNABUVAUVBUUGXLRXMXTXNX
      OGFUURXPVMAUURYAXQUWHUUSUUQHUWIUVIUWIGUUSUUQUURUVBUUSOUVCUUTYPUVBUUSUUGQT
      UUPUVIEGUUQUVMXRXSYBYCWCYDYEYFWGYGYHYNBYIHUUFUUEXIABUAYKYJCBYIYLYCYM $.
  $}

  $( Lemma for ~ fin23 .  In a class of ordinals, each element is fully
     identified by those of its predecessors which also belong to the class.
     (Contributed by Stefan O'Rear, 1-Nov-2014.) $)
  fin23lem24 $p |- ( ( ( Ord A /\ B C_ A ) /\ ( C e. B /\ D e. B ) ) ->
    ( ( C i^i B ) = ( D i^i B ) <-> C = D ) ) $=
    ( word wa wcel cin wne sseldd ordelord syl2anc wn simpr elind adantr ordirr
    wceq syl inss1 wo wb simpll simplr simprl simprr ordtri3 necon2abid simplrl
    wss sseli nsyl nelne1 necomd simplrr jaodan sylbird necon4d ineq1 impbid1
    ex ) AEZBAUJZFZCBGZDBGZFZFZCBHZDBHZRCDRVHCDVIVJVHCDIZCDGZDCGZUAZVIVJIZVHCEZ
    DEZVNVKUBVHVBCAGVPVBVCVGUCZVHBACVBVCVGUDZVDVEVFUEJACKLZVHVBDAGVQVRVHBADVSVD
    VEVFUFJADKLZVPVQFVNCDCDUGUHLVHVNVOVHVLVOVMVHVLFZVJVIWBCVJGCVIGZMVJVIIWBDBCV
    HVLNVDVEVFVLUIOWBCCGZWCWBVPWDMVHVPVLVTPCQSVICCCBTUKULCVJVIUMLUNVHVMFZDVIGDV
    JGZMVOWECBDVHVMNVDVEVFVMUOOWEDDGZWFWEVQWGMVHVQVMWAPDQSVJDDDBTUKULDVIVJUMLUP
    VAUQURCDBUSUT $.

  $( In a chain of finite sets, dominance and subset coincide.  (Contributed by
     Stefan O'Rear, 8-Nov-2014.) $)
  fincssdom $p |- ( ( A e. Fin /\ B e. Fin /\ ( A C_ B \/ B C_ A ) ) ->
      ( A ~<_ B <-> A C_ B ) ) $=
    ( cfn wcel wss wo w3a cdom wn csdm wa wpss simpl1 simpr simpl3 orel1 dfpss3
    wbr sylc sylanbrc php3 syl2anc ex domnsym con2i syl6 con4d wi ssdomg impbid
    3ad2ant2 ) ACDZBCDZABEZBAEZFZGZABHRZUNUQUNURUQUNIZBAJRZURIUQUSUTUQUSKZULBAL
    ZUTULUMUPUSMVAUOUSVBVAUSUPUOUQUSNZULUMUPUSOUNUOPSVCBAQTABUAUBUCURUTABUDUEUF
    UGUMULUNURUHUPABCUIUKUJ $.

  $( Lemma for ~ fin23 .  In a chain of finite sets, equinumerosity is
     equivalent to equality.  (Contributed by Stefan O'Rear, 1-Nov-2014.) $)
  fin23lem25 $p |- ( ( A e. Fin /\ B e. Fin /\ ( A C_ B \/ B C_ A ) ) ->
    ( A ~~ B <-> A = B ) ) $=
    ( cfn wcel wss cen wbr wceq wn wi wpss dfpss2 csdm php3 sdomnen syl syl5bir
    wa ex expd wo w3a adantl eqcom notbii anbi2i bitri ensym nsyl adantr 3impia
    jaod con4d eqeng 3ad2ant1 impbid ) ACDZBCDZABEZBAEZUAZUBZABFGZABHZVBVDVCUQU
    RVAVDIZVCIZJZUQURRZUSVGUTVHUSVEVFURUSVERZVFJUQVIABKZURVFABLURVJVFURVJRABMGV
    FBANABOPSQUCTVHUTVEVFUQUTVERZVFJURVKBAKZUQVFVLUTBAHZIZRVKBALVNVEUTVMVDBAUDU
    EUFUGUQVLVFUQVLRBAMGZVFABNVOBAFGVCBAOABUHUIPSQUJTULUKUMUQURVDVCJVAABCUNUOUP
    $.

  ${
    $d i j a b $.  $d S i j a b $.  $d C a b $.
    $( Lemma for ~ fin23lem22 .  (Contributed by Stefan O'Rear, 1-Nov-2014.) $)
    fin23lem26 $p |- ( ( ( S C_ _om /\ -. S e. Fin ) /\ i e. _om ) ->
      E. j e. S ( j i^i S ) ~~ i ) $=
      ( va vb cv com wcel wss cfn wn wa cin cen wbr wrex c0 wceq con0 syl breq2
      csuc rexbidv weq word ordom simpl 0fin eleq1 mpbiri necon3bi adantl tz7.5
      wne a1i syl3anc en0 incom eqeq1i bitri rexbii sylibr wi cdif cint simplrl
      omsson syl6ss ssdifssd simplr ssel2 onfin2 inss2 eqsstri peano2 sseldi ex
      adantlr ssfi mtod ssdif0 necon3bbii sylib ad2ant2lr onint syl2anc eldifad
      csn cun simprr cvv vex en2sn mp2an simprl sseldd nnord ordirr inss1 sseli
      wel nsyl disjsn ad2antrr unen syl22anc wb ordsuc adantrr w3a simp2 simpl1
      simpr eldifd onnmin syl6an con4d imp simp3 ordsucss sscond simpl2 ordelon
      intss sylan onmindif impbida df-suc eleq2i syl6bb expr elin 3bitr4g eqrdv
      pm5.32rd indir syl6eq snssi ineq1 breq1d df-ss uneq2d ad2antrl rexlimdvaa
      eqtrd 3brtr4d rspcev cbvrexv syl6ib finds2 impcom ) BFZGHAGIZAJHZKZLZCFZA
      MZUULNOZCAPZUUTUURQNOZCAPZUURDFZNOZCAPZUURUVCUBZNOZCAPZUUPBDUULQRUUSUVACA
      UULQUURNUAUCBDUDUUSUVDCAUULUVCUURNUAUCUULUVFRUUSUVGCAUULUVFUURNUAUCUUPAUU
      QMZQRZCAPZUVBUUPGUEZUUMAQUNZUVKUVLUUPUFUOUUMUUOUGUUOUVMUUMUUNAQAQRUUNQJHU
      HAQJUIUJUKULCGAUMUPUVAUVJCAUVAUURQRUVJUURUQUURUVIQUUQAURUSUTVAVBUVCGHZUUP
      UVEUVHVCUVNUUPLZUVEEFZAMZUVFNOZEAPZUVHUVOUVDUVSCAUVOUUQAHZUVDLZLZAUUQUBZV
      DZVEZAHUWEAMZUVFNOZUVSUWBUWEAUWCUWBUWDSIZUWDQUNZUWEUWDHUWBASUWCUWBAGSUVNU
      UMUUOUWAVFZVGVHVIUUPUVTUWIUVNUVDUUPUVTLZAUWCIZKUWIUWKUWLUUNUUMUUOUVTVJUWK
      UWCJHZUWLUUNVCUUMUVTUWMUUOUUMUVTLUUQGHZUWMAGUUQVKUWNGJUWCGSJMJVLSJVMVNUUQ
      VOVPTVRUWMUWLUUNUWCAVSVQTVTUWLUWDQAUWCWAWBWCWDUWDWEWFWGUWBUURUUQWHZWIZUVC
      UVCWHZWIZUWFUVFNUWBUVDUWOUWQNOZUURUWOMQRZUVCUWQMQRZUWPUWRNOUVOUVTUVDWJUWS
      UWBUUQWKHUVCWKHUWSCWLDWLUUQUVCWKWKWMWNUOUWBUUQUEZUWTUWBUWNUXBUWBAGUUQUWJU
      VOUVTUVDWOWPUUQWQTZUXBUUQUURHZKUWTUXBCCXAUXDUUQWRUURUUQUUQUUQAWSWTXBUURUU
      QXCVBTUVNUXAUUPUWAUVNDDXAKZUXAUVNUVCUEUXEUVCWQUVCWRTUVCUVCXCVBXDUURUVCUWO
      UWQXEXFUWBUWFUURUWOAMZWIZUWPUWBUWFUUQUWOWIZAMZUXGUWBEUWFUXIUWBUVPUWEHZUVP
      AHZLUVPUXHHZUXKLUVPUWFHUVPUXIHUWBUXKUXJUXLUVOUWAUXKUXJUXLXGUVOUWAUXKLZLZU
      XJUVPUWCHZUXLUXNUXKASIZUWCUEZUXJUXOXGUVOUWAUXKWJUXNAGSUVNUUMUUOUXMVFVGVHU
      VOUWAUXQUXKUWBUXBUXQUXCUUQXHWCXIUXKUXPUXQXJZUXJUXOUXRUXJUXOUXRUXOUXJUXRUW
      HUXOKZUVPUWDHZUXJKUXRASUWCUXKUXPUXQXKVIUXRUXSUXTUXRUXSLUVPAUWCUXKUXPUXQUX
      SXLUXRUXSXMXNVQUWDUVPXOXPXQXRUXRUXOLZAUVPUBZVDZVEZUWEUVPUYAUWDUYCIUYDUWEI
      UYAUYBUWCAUXRUXOUYBUWCIZUXRUXQUXOUYEVCUXKUXPUXQXSZUVPUWCXTTXRYAUWDUYCYDTU
      YAUXPUVPSHZUVPUYDHUXKUXPUXQUXOYBUXRUXQUXOUYGUYFUWCUVPYCYEAUVPYFWFWPYGUPUW
      CUXHUVPUUQYHYIYJYKYOUVPUWEAYLUVPUXHAYLYMYNUUQUWOAYPYQUVTUXGUWPRUVOUVDUVTU
      XFUWOUURUVTUWOAIUXFUWORUUQAYRUWOAUUAWCUUBUUCUUEUVFUWRRUWBUVCYHUOUUFUVRUWG
      EUWEAUVPUWERUVQUWFUVFNUVPUWEAYSYTUUGWFUUDUVRUVGECAECUDUVQUURUVFNUVPUUQAYS
      YTUUHUUIVQUUJUUK $.

    $( Lemma for ~ fin23lem22 .  (Contributed by Stefan O'Rear, 1-Nov-2014.) $)
    fin23lem23 $p |- ( ( ( S C_ _om /\ -. S e. Fin ) /\ i e. _om ) ->
      E! j e. S ( j i^i S ) ~~ i ) $=
      ( va com wss cfn wcel wa cv cin cen wbr wceq wral wo wb sseldd syl word
      wn wrex wi wreu fin23lem26 ensym entr sylan2 simpl simprl nnfi inss1 ssfi
      sylancl simprr nnord ordtri2or2 syl2an syl2anc orim12i fin23lem25 syl3anc
      ssrin ordom fin23lem24 mpanl1 bitrd syl5ib ralrimivva ad2antrr ineq1 reu4
      breq1d sylanbrc ) AEFZAGHUAZIBJZEHZICJZAKZVQLMZCAUBWADJZAKZVQLMZIZVSWBNZU
      CZDAOCAOZWACAUDABCUEVOWHVPVRVOWGCDAAWEVTWCLMZVOVSAHZWBAHZIZIZWFWDWAVQWCLM
      WIWCVQUFVTVQWCUGUHWMWIVTWCNZWFWMVTGHZWCGHZVTWCFZWCVTFZPZWIWNQWMVSEHZWOWMA
      EVSVOWLUIZVOWJWKUJRZWTVSGHVTVSFWOVSUKVSAULVSVTUMUNSWMWBEHZWPWMAEWBXAVOWJW
      KUORZXCWBGHWCWBFWPWBUKWBAULWBWCUMUNSWMVSWBFZWBVSFZPZWSWMWTXCXGXBXDWTVSTWB
      TXGXCVSUPWBUPVSWBUQURUSXEWQXFWRVSWBAVCWBVSAVCUTSVTWCVAVBETVOWLWNWFQVDEAVS
      WBVEVFVGVHVIVJWAWDCDAWFVTWCVQLVSWBAVKVMVLVN $.

    fin23lem22.b $e |- C
        = ( i e. _om |-> ( iota_ j e. S ( j i^i S ) ~~ i ) ) $.
    $( Lemma for ~ fin23 but could be used elsewhere if we find a good name for
       it.  Explicit construction of a bijection (actually an isomorphism, see
       ~ fin23lem27 ) between an infinite subset of ` _om ` and ` _om ` itself.
       (Contributed by Stefan O'Rear, 1-Nov-2014.) $)
    fin23lem22 $p |- ( ( S C_ _om /\ -. S e. Fin )
        -> C : _om -1-1-onto-> S ) $=
      ( va com wss cfn wcel wa cv cin cen wbr ccrd cfv syl wceq wb wn crio wreu
      fin23lem23 riotacl simpll simpr sseldd nnfi ficardom cardnn eqcomd eqeq1d
      infi 4syl eqcom syl6bb ad2antrl cdm con0 simprr nnon onenon inss1 sylancl
      3syl ssnum carden2 syl2anc adantrr ineq1 breq1d riota2 3bitrd f1o2d ) BGH
      ZBIJUAZKZCFGBDLZBMZCLZNOZDBUBZFLZBMZPQZAEVRWAGJZKWBDBUCZWCBJBCDUDZWBDBUER
      VRWDBJZKZWDGJZWDIJWEIJWFGJWKBGWDVPVQWJUFVRWJUGUHWDUIWDBUNWEUJUOVRWGWJKZKZ
      WAWFSZWFWAPQZSZWEWANOZWDWCSZWGWOWQTVRWJWGWOWPWFSWQWGWAWPWFWGWPWAWAUKULUMW
      PWFUPUQURWNWEPUSZJZWAWTJZWQWRTWNWDWTJZWEWDHXAWNWLWDUTJXCWNBGWDVPVQWMUFVRW
      GWJVAZUHWDVBWDVCVFWDBVDWDWEVGVEWNWAUTJZXBWGXEVRWJWAVBURWAVCRWEWAVHVIWNWRW
      CWDSZWSWNWJWHWRXFTXDVRWGWHWJWIVJWBWRDBWDVSWDSVTWEWANVSWDBVKVLVMVIWCWDUPUQ
      VNVO $.

    $( The mapping constructed in ~ fin23lem22 is in fact an isomorphism.
       (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    fin23lem27 $p |- ( ( S C_ _om /\ -. S e. Fin ) ->
        C Isom _E , _E ( _om , S ) ) $=
      ( va vb com wcel wa cep cv wbr cin cen wreu wceq breq1d syl2anc con0 wral
      wss cfn wn wor wpo wfo cfv wiso word wwe ordom ordwe weso mp2b sopo ax-mp
      wi a1i poss mpi adantr wf1o fin23lem22 f1ofo crio csdm wb nnsdomel adantl
      syl biimpd fin23lem23 adantrr ineq1 cbvreuv sylib nfv cbvriotav riotaprop
      simprd simprr ensymd sdomentr ensdomtr simpll omsson syl6ss simpld sseldd
      adantrl expr onsdominel 3expia 3syld simprl riotabidv fvmptg eleq12d epel
      breq2 sylibrd fvex epelc 3imtr4g ralrimivva soisoi syl22anc ) BHUBZBUCIUD
      ZJZHKUEZBKUFZHBAUGZFLZGLZKMZXOAUHZXPAUHZKMZURZGHUAFHUAHBKKAUIXLXKHUJHKUKX
      LULHUMHKUNUOZUSXIXMXJXIHKUFZXMXLYCYBHKUPUQBHKUTVAVBXKHBAVCXNABCDEVDHBAVEV
      KXKYAFGHHXKXOHIZXPHIZJZJZXOXPIZXRXSIZXQXTYGYHDLZBNZXOOMZDBVFZYKXPOMZDBVFZ
      IZYIYGYHXOXPVGMZYMBNZYOBNZVGMZYPYGYHYQYFYHYQVHXKXOXPVIVJVLXKYFYQYTXKYFYQJ
      JZYRXOOMZXOYSVGMZYTXKYFUUBYQYGYMBIZUUBYGCLZBNZXOOMZCBPZUUDUUBJYGYLDBPZUUH
      XKYDUUIYEBFDVMVNYLUUGDCBYJUUEQZYKUUFXOOYJUUEBVOZRZVPVQUUGUUBCBYMUUBCVRYLU
      UGDCBUULVSUUEYMQUUFYRXOOUUEYMBVORVTVKZWAVNUUAYQXPYSOMZUUCXKYFYQWBXKYFUUNY
      QYGYSXPYGYOBIZYSXPOMZYGUUFXPOMZCBPZUUOUUPJYGYNDBPZUURXKYEUUSYDBGDVMWKYNUU
      QDCBUUJYKUUFXPOUUKRZVPVQUUQUUPCBYOUUPCVRYNUUQDCBUUTVSUUEYOQUUFYSXPOUUEYOB
      VORVTVKZWAWCVNXOXPYSWDSYRXOYSWESWLYGYMTIZYOTIZYTYPURYGBTYMYGBHTXIXJYFWFWG
      WHZYGUUDUUBUUMWIZWJYGBTYOUVDYGUUOUUPUVAWIZWJUVBUVCYTYPYMYOBWMWNSWOYGXRYMX
      SYOYGYDUUDXRYMQXKYDYEWPUVECXOYKUUEOMZDBVFZYMHBAUUEXOQUVGYLDBUUEXOYKOXAWQE
      WRSYGYEUUOXSYOQXKYDYEWBUVFCXPUVHYOHBAUUEXPQUVGYNDBUUEXPYKOXAWQEWRSWSXBFGW
      TXRXSXPAXCXDXEXFFGHBKKAXGXH $.
  $}

  ${
    $d a b f g x A $.  $d a b f g x B $.
    isfin3ds.f $e |- F = { g | A. a e. ( ~P g ^m _om )
     ( A. b e. _om ( a ` suc b ) C_ ( a ` b ) -> |^| ran a e. ran a ) } $.
    $( Property of a III-finite set (descending sequence version).
       (Contributed by Mario Carneiro, 16-May-2015.) $)
    isfin3ds $p |- ( A e. V -> ( A e. F <-> A. f e. ( ~P A ^m _om )
      ( A. x e. _om ( f ` suc x ) C_ ( f ` x ) -> |^| ran f e. ran f ) ) ) $=
      ( cv csuc cfv wss com wral crn cint wcel cmap wceq wi cpw co suceq fveq2d
      fveq2 sseq12d cbvralv fveq1 ralbidv syl5bb inteqd eleq12d imbi12d raleqdv
      rneq pweq oveq1d elab2g ) HJZKZGJZLZUTVBLZMZHNOZVBPZQZVGRZUAZGDJZUBZNSUCZ
      OZAJZKZCJZLZVOVQLZMZANOZVQPZQZWBRZUAZCBUBZNSUCZOZDBEFVNWECVMOVKBTZWHVJWEG
      CVMVBVQTZVFWAVIWDVFVPVBLZVOVBLZMZANOWJWAVEWMHANUTVOTZVCWKVDWLWNVAVPVBUTVO
      UDUEUTVOVBUFUGUHWJWMVTANWJWKVRWLVSVPVBVQUIVOVBVQUIUGUJUKWJVHWCVGWBWJVGWBV
      BVQUPZULWOUMUNUHWIWECVMWGWIVLWFNSVKBUQURUOUKIUS $.

    $( A subset of a III-finite set is III-finite.  (Contributed by Stefan
       O'Rear, 4-Nov-2014.) $)
    ssfin3ds $p |- ( ( A e. F /\ B C_ A ) -> B e. F ) $=
      ( vx vf wcel wss cv cfv com wral cpw cmap co cvv adantr wa csuc crn pwexg
      cint wi simpr sspwb sylib mapss syl2anc isfin3ds ibi ssralv sylc wb ssexg
      ancoms syl mpbird ) ADJZBAKZUAZBDJZHLZUBILZMVEVFMKHNOVFUCZUEVGJUFZIBPZNQR
      ZOZVCVJAPZNQRZKZVHIVMOZVKVCVLSJZVIVLKZVNVAVPVBADUDTVCVBVQVAVBUGBAUHUIVIVL
      NSUJUKVAVOVBVAVOHAICDDEFGULUMTVHIVJVMUNUOVCBSJZVDVKUPVBVAVRBADUQURHBICDSE
      FGULUSUT $.
  $}

  ${
    $d c g i t u v x z $.  $d a b i u A $.  $d a b B $.  $d a t F $.  $d a V $.
    $d a b w x z P $.  $d a b i u v R $.  $d a b c i u v z U $.  $d a b f Z $.
    $d a b f g t x G $.
    fin23lem.a $e |- U = seqom ( ( i e. _om , u e. _V |-> if ( ( ( t ` i ) i^i
      u ) = (/) , u , ( ( t ` i ) i^i u ) ) ) , U. ran t ) $.
    $( The beginning of the proof that every II-finite set (every chain of
       subsets has a maximal element) is III-finite (has no denumerable
       collection of subsets).

       This first section is dedicated to the construction of ` U ` and its
       intersection.  First, the value of ` U ` at a successor.  (Contributed
       by Stefan O'Rear, 1-Nov-2014.) $)
    fin23lem12 $p |- ( A e. _om -> ( U ` suc A ) = if ( ( ( t ` A ) i^i
        ( U ` A ) ) = (/) , ( U ` A ) , ( ( t ` A ) i^i ( U ` A ) ) ) ) $=
      ( com wcel csuc cfv cvv cv cin c0 wceq cif cmpt2 co crn eqeq1d cuni fveq2
      seqomsuc fvex ineq1d ifbieq2d ineq2 ifbieq12d eqid inex2 ifex mpan2 eqtrd
      id ovmpt2 ) CGHZCIDJCCDJZEAGKELZBLZJZALZMZNOZVAVBPZQZRZCUSJZUQMZNOZUQVHPZ
      CVEDUSSUAFUCUPUQKHVFVJOCDUDZEACUQGKVDVJVEVGVAMZNOZVAVLPURCOZVCVMVBVLVAVNV
      BVLNVNUTVGVAURCUSUBUEZTVOUFVAUQOZVMVIVAVLUQVHVPVLVHNVAUQVGUGZTVPUNVQUHVEU
      IVIUQVHVKUQVGVKUJUKUOULUM $.

    $( Lemma for ~ fin23 .  Each step of ` U ` is a decrease.  (Contributed by
       Stefan O'Rear, 1-Nov-2014.) $)
    fin23lem13 $p |- ( A e. _om -> ( U ` suc A ) C_ ( U ` A ) ) $=
      ( com wcel csuc cfv cv cin c0 wceq cif fin23lem12 wss sseq1 ssid inss2
      keephyp syl6eqss ) CGHCIDJCBKJZCDJZLZMNZUDUEOZUDABCDEFPUFUDUDQUEUDQUGUDQU
      DUEUDUGUDRUEUGUDRUDSUCUDTUAUB $.

    $( Lemma for ~ fin23 . ` U ` will never evolve to an empty set if it did
       not start with one.  (Contributed by Stefan O'Rear, 1-Nov-2014.) $)
    fin23lem14 $p |- ( ( A e. _om /\ U. ran t =/= (/) ) ->
        ( U ` A ) =/= (/) ) $=
      ( va vb com cv c0 wne cfv wi wceq fveq2 neeq1d imbi2d eqnetrd adantr wcel
      crn cuni csuc weq cvv vex rnex uniex cin cmpt2 seqom0g mp1i id fin23lem12
      cif wa iftrue simprr wn iffalse df-ne biimpri pm2.61ian imim2d finds imp
      ex ) CIUABJZUBZUCZKLZCDMZKLZVLGJZDMZKLZNVLKDMZKLZNVLHJZDMZKLZNVLVTUDZDMZK
      LZNVLVNNGHCVOKOZVQVSVLWFVPVRKVOKDPQRGHUEZVQWBVLWGVPWAKVOVTDPQRVOWCOZVQWEV
      LWHVPWDKVOWCDPQRVOCOZVQVNVLWIVPVMKVOCDPQRVLVRVKKVKUFUAVRVKOVLVJVIBUGUHUIE
      AIUFEJVIMAJZUJZKOWJWKUPUKDVKUFFULUMVLUNSVTIUAZWBWEVLWLWBWEWLWBUQZWDVTVIMW
      AUJZKOZWAWNUPZKWLWDWPOWBABVTDEFUOTWOWMWPKLWOWMUQWPWAKWOWPWAOWMWOWAWNURTWO
      WLWBUSSWOUTZWMUQWPWNKWQWPWNOWMWOWAWNVATWQWNKLZWMWRWQWNKVBVCTSVDSVHVEVFVG
      $.

    $( Lemma for ~ fin23 . ` U ` is a monotone function.  (Contributed by
       Stefan O'Rear, 1-Nov-2014.) $)
    fin23lem15 $p |- ( ( ( A e. _om /\ B e. _om ) /\ B C_ A ) ->
        ( U ` A ) C_ ( U ` B ) ) $=
      ( vb va cv cfv wss csuc wceq fveq2 sseq1d weq com wcel wa ssid fin23lem13
      a1i wi ad2antrr sstr2 syl findsg ) HJZEKZDEKZLUKUKLZIJZEKZUKLZUMMZEKZUKLZ
      CEKZUKLHICDUIDNUJUKUKUIDEOPHIQUJUNUKUIUMEOPUIUPNUJUQUKUIUPEOPUICNUJUSUKUI
      CEOPULDRSZUKUAUCUMRSZUTTDUMLZTUQUNLZUOURUDVAVCUTVBABUMEFGUBUEUQUNUKUFUGUH
      $.

    $( Lemma for ~ fin23 . ` U ` ranges over the original set; in particular
       ` ran U ` is a set, although we do not assume here that ` U ` is.
       (Contributed by Stefan O'Rear, 1-Nov-2014.) $)
    fin23lem16 $p |- U. ran U = U. ran t $=
      ( va vb crn cuni cv wss wcel cfv wceq com cvv c0 ax-mp peano1 mpan2 cmpt2
      unissb wrex wfn wb cin cif fnseqom fvelrnb wa 0ss fin23lem15 rnex seqom0g
      vex uniex syl6sseq sseq1 syl5ibcom rexlimiv sylbi fnfvelrn mp2an eqeltrri
      mprgbir elssuni eqssi ) CHZIZBJZHZIZVIVLKFJZVLKZFVHFVHVLUBVMVHLZGJZCMZVMN
      ZGOUCZVNCOUDZVOVSUEDAOPDJVJMAJZUFZQNWAWBUGUAZCVLEUHZGOVMCUIRVRVNGOVPOLZVQ
      VLKVRVNWEVQQCMZVLWEQOLZVQWFKZSWEWGUJQVPKWHVPUKABVPQCDEULTTVLPLWFVLNVKVJBU
      OUMUPWCCVLPEUNRZUQVQVMVLURUSUTVAVEVLVHLVLVIKWFVLVHWIVTWGWFVHLWDSOQCVBVCVD
      VLVHVFRVG $.

    $( Lemma for ~ fin23 .  The first set in ` U ` to see an input set is
       either contained in it or disjoint from it.  (Contributed by Stefan
       O'Rear, 1-Nov-2014.) $)
    fin23lem19 $p |- ( A e. _om -> ( ( U ` suc A ) C_ ( t ` A ) \/
      ( ( U ` suc A ) i^i ( t ` A ) ) = (/) ) ) $=
      ( com wcel csuc cfv cv cin c0 wceq wss wa wn wo cif fin23lem12 eqif sylib
      incom ineq2 eqeq1d biimparc syl5eq inss1 mpbiri adantl orim12i syl orcomd
      sseq1 ) CGHZCIDJZCBKJZLZMNZUPUQOZUOUQCDJZLZMNZUPVANZPZVCQZUPVBNZPZRZUSUTR
      UOUPVCVAVBSNVIABCDEFTVCUPVAVBUAUBVEUSVHUTVEURUQUPLZMUPUQUCVDVJMNVCVDVJVBM
      UPVAUQUDUEUFUGVGUTVFVGUTVBUQOUQVAUHUPVBUQUNUIUJUKULUM $.

    $( Lemma for ~ fin23 . ` X ` is either contained in or disjoint from all
       input sets.  (Contributed by Stefan O'Rear, 1-Nov-2014.) $)
    fin23lem20 $p |- ( A e. _om -> ( |^| ran U C_ ( t ` A ) \/ ( |^| ran U i^i
        ( t ` A ) ) = (/) ) ) $=
      ( com wcel crn cint csuc cfv wss cv cin c0 wceq wo wfn cvv cif cmpt2 cuni
      fnseqom peano2 fnfvelrn sylancr intss1 fin23lem19 sstr2 ssdisj ex orim12d
      syl sylc ) CGHZDIZJZCKZDLZMZUTCBNZLZMZUTVCOPQZRURVCMZURVCOPQZRUPUTUQHZVAU
      PDGSUSGHVHEAGTENVBLANZOZPQVIVJUAUBDVBIUCFUDCUEGUSDUFUGUTUQUHUNABCDEFUIVAV
      DVFVEVGURUTVCUJVAVEVGURUTVCUKULUMUO $.

    fin23lem17.f $e |- F = { g | A. a e. ( ~P g ^m _om )
      ( A. x e. _om ( a ` suc x ) C_ ( a ` x ) -> |^| ran a e. ran a ) } $.
    $( Lemma for ~ fin23 .  By ?  Fin3DS ? , ` U ` achieves its minimum ( ` X `
       in the synopsis above, but we will not be assigning a symbol here).
       TODO:  Fix comment; math symbol Fin3DS does not exist.  (Contributed by
       Stefan O'Rear, 4-Nov-2014.)  (Revised by Mario Carneiro,
       17-May-2015.) $)
    fin23lem17 $p |- ( ( U. ran t e. F /\ t : _om -1-1-> V ) ->
        |^| ran U e. ran U ) $=
      ( vc vb cv crn wcel com cfv wss cvv cuni wf1 wa cmap co csuc wral cint wi
      cpw wf wfn cin wceq cif cmpt2 fnseqom dffn3 mpbi pwuni fin23lem16 sseqtri
      c0 pweqi fss mp2an wb vex rnex uniex pwex f1f dmfex sylancr adantl elmapg
      mpbiri isfin3ds ibi adantr fin23lem13 rgen a1i fveq1 sseq12d ralbidv rneq
      inteqd eleq12d imbi12d rspcv syl3c ) CNZOZUAZGPZQHWMUBZUCZDWOUJZQUDUEZPZL
      NZUFZMNZRZXBXDRZSZLQUGZXDOZUHZXIPZUIZMWTUGZXCDRZXBDRZSZLQUGZDOZUHZXRPZWRX
      AQWSDUKZQXRDUKZXRWSSYADQULYBFBQTFNWMRBNZUMZVCUNYCYDUOUPDWOJUQQDURUSXRXRUA
      ZUJWSXRUTYEWOBCDFJVAVDVBQXRWSDVEVFWRWSTPQTPZXAYAVGWOWNWMCVHZVIVJVKWQYFWPW
      QWMTPQHWMUKYFYGQHWMVLQHTWMVMVNVOWSQDTTVPVNVQWPXMWQWPXMLWOMEGGIAKVRVSVTXQW
      RXPLQBCXBDFJWAWBWCXLXQXTUIMDWTXDDUNZXHXQXKXTYHXGXPLQYHXEXNXFXOXCXDDWDXBXD
      DWDWEWFYHXJXSXIXRYHXIXRXDDWGZWHYIWIWJWKWL $.

    $( Lemma for ~ fin23 . ` X ` is not empty.  We only need here that ` t `
       has at least one set in its range besides ` (/) ` ; the much stronger
       hypothesis here will serve as our induction hypothesis though.
       (Contributed by Stefan O'Rear, 1-Nov-2014.)  (Revised by Mario Carneiro,
       6-May-2015.) $)
    fin23lem21 $p |- ( ( U. ran t e. F /\ t : _om -1-1-> V ) ->
        |^| ran U =/= (/) ) $=
      ( cv wcel com wa c0 wne wceq cvv cfn crn cuni wf1 cint fin23lem17 wi wrex
      cfv wfn wb cin cif cmpt2 fnseqom fvelrnb ax-mp id csn cdif cen wbr wn vex
      wf1o f1f1orn f1oen3g sylancr ominf wss ssdif0 snfi ssfi mpan enfi syl5ibr
      syl5bir necon3bd mpisyl wex eldifsn elssuni ssn0 sylan exlimiv fin23lem14
      n0 sylbi syl syl2anr neeq1 syl5ibcom rexlimdva syl5bi adantl mpd ) CLZUAZ
      UBZGMZNHWPUCZODUAZUDZXAMZXBPQZABCDEFGHIJKUEWTXCXDUFWSXCILZDUHZXBRZINUGZWT
      XDDNUIXCXHUJFBNSFLWPUHBLZUKZPRXIXJULUMDWRJUNINXBDUOUPWTXGXDINWTXENMZOXFPQ
      ZXGXDXKXKWRPQZXLWTXKUQWTWQPURZUSZPQZXMWTNWQUTVAZNTMZVBXPWTWPSMNWQWPVDXQCV
      CNHWPVENWQWPSVFVGVHXQXRXOPXOPRWQXNVIZXQXRWQXNVJXSXRXQWQTMZXNTMXSXTPVKXNWQ
      VLVMNWQVNVOVPVQVRXPXEXOMZIVSXMIXOWFYAXMIYAXEWQMZXEPQZOXMXEWQPVTYBXEWRVIYC
      XMXEWQWAXEWRWBWCWGWDWGWHBCXEDFJWEWIXFXBPWJWKWLWMWNWO $.

    fin23lem.b $e |- P = { v e. _om | |^| ran U C_ ( t ` v ) } $.
    fin23lem.c $e |- Q = ( w e. _om |-> ( iota_ x e. P ( x i^i P ) ~~ w ) ) $.
    fin23lem.d $e |- R = ( w e. _om |-> ( iota_ x e. ( _om \ P )
        ( x i^i ( _om \ P ) ) ~~ w ) ) $.
    fin23lem.e $e |- Z = if ( P e. Fin , ( t o. R ) ,
        ( ( z e. P |-> ( ( t ` z ) \ |^| ran U ) ) o. Q ) ) $.
    $( Lemma for ~ fin23 .  The residual is also one-to-one.  This preserves
       the induction invariant.  (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    fin23lem28 $p |- ( t : _om -1-1-> _V -> Z : _om -1-1-> _V ) $=
      ( vb com cvv cv wf1 cfn wcel ccom wceq wa cfv crn cint cdif cmpt cif eqif
      wn mpbi wf1o wss difss ominf cun crab ssrab2 eqsstri undif unfi syl5eqelr
      wo mtoi fin23lem22 sylancr adantl f1of1 f1ss mpan2 3syl f1co syldan f1eq1
      ex syl5ibrcom impr wf weq wi wral fvex difexg ax-mp rgenw eqid fmpt fveq2
      difeq1d fvmpt ad2antrl ad2antll eqeq12d uneq2 sseq2d elrab2 simprbi sylib
      a1i syl5ib wb sseli f1fveq sylan2 sylibd sylbid ralrimivva dff13 sylanbrc
      anim12i syl mpan syl2an jaodan ) UCUDFUEZUFZGUGUHZNYDIUIZUJZUKZYFUSZNBGBU
      EZYDULZJUMUNZUOZUPZHUIZUJZUKZVLZUCUDNUFZNYFYGYPUQUJYSUAYFNYGYPURUTYEYIYTY
      RYEYFYHYTYEYFUKZYTYHUCUDYGUFZYEYFUCUCIUFZUUBUUAUCUCGUOZIVAZUCUUDIUFZUUCYF
      UUEYEYFUUDUCVBZUUDUGUHZUSUUEUCGVCZYFUUHUCUGUHZVDYFUUHUUJYFUUHUKUCGUUDVEZU
      GGUCVBZUUKUCUJGYMDUEZYDULZVBZDUCVFUCRUUODUCVGVHZGUCVIUTGUUDVJVKWDVMIUUDCA
      TVNVOVPUCUUDIVQUUFUUGUUCUUIUCUUDUCIVRVSVTUCUCUDYDIWAWBUCUDNYGWCWEWFYEYJYQ
      YTYEYJUKYTYQUCUDYPUFZYEGUDYOUFZUCGHUFZUUQYJYEGUDYOWGZOUEZYOULZUBUEZYOULZU
      JZOUBWHZWIZUBGWJOGWJUURUUTYEYNUDUHZBGWJUUTUVHBGYLUDUHUVHYKYDWKYLYMUDWLWMW
      NBGUDYNYOYOWOZWPUTXHYEUVGOUBGGYEUVAGUHZUVCGUHZUKZUKZUVEUVAYDULZYMUOZUVCYD
      ULZYMUOZUJZUVFUVMUVBUVOUVDUVQUVJUVBUVOUJYEUVKBUVAYNUVOGYOBOWHYLUVNYMYKUVA
      YDWQWRUVIUVNUDUHUVOUDUHUVAYDWKUVNYMUDWLWMWSWTUVKUVDUVQUJYEUVJBUVCYNUVQGYO
      BUBWHYLUVPYMYKUVCYDWQWRUVIUVPUDUHUVQUDUHUVCYDWKUVPYMUDWLWMWSXAXBUVMUVRUVN
      UVPUJZUVFUVRYMUVOVEZYMUVQVEZUJUVMUVSUVOUVQYMXCUVMUVTUVNUWAUVPUVMYMUVNVBZU
      VTUVNUJUVJUWBYEUVKUVJUVAUCUHZUWBUUOUWBDUVAUCGDOWHUUNUVNYMUUMUVAYDWQXDRXEX
      FWTYMUVNVIXGUVMYMUVPVBZUWAUVPUJUVKUWDYEUVJUVKUVCUCUHZUWDUUOUWDDUVCUCGDUBW
      HUUNUVPYMUUMUVCYDWQXDRXEXFXAYMUVPVIXGXBXIUVLYEUWCUWEUKUVSUVFXJUVJUWCUVKUW
      EGUCUVAUUPXKGUCUVCUUPXKXSUCUDUVAUVCYDXLXMXNXOXPOUBGUDYOXQXRUULYJUUSUUPUUL
      YJUKUCGHVAUUSHGCASVNUCGHVQXTYAUCGUDYOHWAYBUCUDNYPWCWEWFYCVS $.

    $( Lemma for ~ fin23 .  The residual is built from the same elements as the
       previous sequence.  (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    fin23lem29 $p |- U. ran Z C_ U. ran t $=
      ( cfn wcel cv ccom cfv crn cint cdif cmpt cif wceq wa wn wo cuni wss eqif
      biimpi rneq unieqd rncoss unissi syl6eqss adantl unissb wrex cab abid a1i
      fvssunirn ssdifssd sseq1 syl5ibrcom sylbi eqid rnmpt eleq2s mprgbir sstri
      rexlimiv jaoi mp2b ) NGUBUCZFUDZIUEZBGBUDZWEUFZJUGUHZUIZUJZHUEZUKULZWDNWF
      ULZUMZWDUNZNWLULZUMZUOZNUGZUPZWEUGZUPZUQZUAWMWSWDNWFWLURUSWOXDWRWNXDWDWNX
      AWFUGZUPXCWNWTXENWFUTVAXEXBWEIVBVCVDVEWQXDWPWQXAWLUGZUPZXCWQWTXFNWLUTVAXG
      WKUGZUPZXCXFXHWKHVBVCXIXCUQOUDZXCUQZOXHOXHXCVFXKXJXJWJULZBGVGZOVHZXHXJXNU
      CXMXKXMOVIXLXKBGWGGUCZXKXLWJXCUQXOWHXCWIWHXCUQXOWEWGVKVJVLXJWJXCVMVNWAVOB
      OGWJWKWKVPVQVRVSVTVDVEWBWC $.

    $( Lemma for ~ fin23 .  The residual is disjoint from the common set.
       (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    fin23lem30 $p |- ( Fun t -> ( U. ran Z i^i |^| ran U ) = (/) ) $=
      ( vb cfn wcel cv ccom cfv crn cint cdif cmpt cif wceq wa wn wfun cuni cin
      wo c0 wi eqif biimpi wral cdm wrex simpr com cen wbr crio funmpt2 sylancl
      wb funco elunirn syl dmcoss sseli fvco mpan adantl eleq2d incom crab wf1o
      wss wf difss ominf ssrab2 eqsstri undif mpbi unfi syl5eqelr mtoi ad2antrr
      cun ex fin23lem22 sylancr f1of fdm eleqtrd ffvelrnd eldifbd eleq2i sylnib
      eldifad fveq2 sseq2d elrab3 mtbid fin23lem20 orel1 sylc syl5eq disj sylib
      rsp sylbid syl5 rexlimdv ralrimiv sylibr rneq unieqd ineq1d eqeq1d impcom
      syl5ibr expd rncoss unissi cab wex eluniab eleq2 eldifn rexlimivw exlimiv
      syl6bi sylbi eqid rnmpt unieqi eleq2s mprgbir ssdisj syl6eq a1d jaoi mp2b
      mp2an ) NGUCUDZFUEZIUFZBGBUEUUQUGZJUHUIZUJZUKZHUFZULUMZUUPNUURUMZUNZUUPUO
      ZNUVCUMZUNZUSZUUQUPZNUHZUQZUUTURZUTUMZVAZUAUVDUVJUUPNUURUVCVBVCUVFUVPUVIU
      VEUUPUVPUVEUUPUVKUVOUUPUVKUNZUVOUVEUURUHZUQZUUTURZUTUMZUVQOUEZUUTUDUOZOUV
      SVDUWAUVQUWCOUVSUVQUWBUVSUDZUWBUBUEZUURUGZUDZUBUURVEZVFZUWCUVQUURUPZUWDUW
      IVNUVQUVKIUPZUWJUUPUVKVGCVHAUEVHGUJZURCUEVIVJAUWLVKITVLZUUQIVOVMUBUWBUURV
      PVQUVQUWGUWCUBUWHUWEUWHUDUWEIVEZUDZUVQUWGUWCVAZUWHUWNUWEUUQIVRVSUVQUWOUWP
      UVQUWOUNZUWGUWBUWEIUGZUUQUGZUDZUWCUWQUWFUWSUWBUWOUWFUWSUMZUVQUWKUWOUXAUWM
      UWEUUQIVTWAWBWCUWQUWCOUWSVDZUWTUWCVAUWQUWSUUTURZUTUMUXBUWQUXCUUTUWSURZUTU
      WSUUTWDUWQUUTUWSWGZUOUXEUXDUTUMZUSZUXFUWQUWRUUTDUEZUUQUGZWGZDVHWEZUDZUXEU
      WQUWRGUDUXLUWQUWRVHGUWQVHUWLUWEIUWQVHUWLIWFZVHUWLIWHZUWQUWLVHWGUWLUCUDZUO
      ZUXMVHGWIUUPUXPUVKUWOUUPUXOVHUCUDZWJUUPUXOUXQUUPUXOUNVHGUWLWSZUCGVHWGUXRV
      HUMGUXKVHRUXJDVHWKWLGVHWMWNGUWLWOWPWTWQWRIUWLCATXAXBVHUWLIXCVQZUWQUWEUWNV
      HUVQUWOVGUWQUXNUWNVHUMUXSVHUWLIXDVQXEXFZXGGUXKUWRRXHXIUWQUWRVHUDZUXLUXEVN
      UWQUWRVHGUXTXJZUXJUXEDUWRVHUXHUWRUMUXIUWSUUTUXHUWRUUQXKXLXMVQXNUWQUYAUXGU
      YBEFUWRJLPXOVQUXEUXFXPXQXROUWSUUTXSXTUWCOUWSYAVQYBWTYCYDYBYEOUVSUUTXSYFUV
      EUVNUVTUTUVEUVMUVSUUTUVEUVLUVRNUURYGYHYIYJYLYMYKUVHUVPUVGUVHUVOUVKUVHUVNU
      VCUHZUQZUUTURZUTUVHUVMUYDUUTUVHUVLUYCNUVCYGYHYIUYDUVBUHZUQZWGUYGUUTURUTUM
      ZUYEUTUMUYCUYFUVBHYNYOUYHUWCOUYGOUYGUUTXSUWCUWBUWEUVAUMZBGVFZUBYPZUQZUYGU
      WBUYLUDUWBUWEUDZUYJUNZUBYQUWCUYJUBUWBYRUYNUWCUBUYJUYMUWCUYIUYMUWCVABGUYIU
      YMUWBUVAUDUWCUWEUVAUWBYSUWBUUSUUTYTUUCUUAYKUUBUUDUYFUYKBUBGUVAUVBUVBUUEUU
      FUUGUUHUUIUYDUYGUUTUUJUUOUUKUULWBUUMUUN $.

    $( Lemma for ~ fin23 .  The residual is has a strictly smaller range than
       the previous sequence.  This will be iterated to build an unbounded
       chain.  (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    fin23lem31 $p |- ( ( t : _om -1-1-> V /\ G e. F /\
        U. ran t C_ G ) -> U. ran Z C. U. ran t ) $=
      ( com cv wf1 wcel crn cuni wss wpss wa ssfin3ds wne fin23lem29 a1i c0 wex
      cint fin23lem21 ancoms n0 sylib wn cdm wfn wceq cvv cfv cin cmpt2 fnseqom
      fndm ax-mp peano1 ne0ii eqnetri dm0rn0 necon3bii mpbi intssuni fin23lem16
      cif sseqtri sseli adantl wral wfun f1fun adantr fin23lem30 syl disj con2d
      wi rsp imp nelne1 syl2anc necomd exlimddv df-pss sylanbrc sylan2 3impb )
      UDOFUEZUFZNMUGZXFUHUIZNUJZPUHUIZXIUKZXHXJULXGXIMUGZXLNXIKMQASUMXGXMULZXKX
      IUJZXKXIUNZXLXOXNABCDEFGHIJKLMPQRSTUAUBUCUOUPXNQUEZJUHZUSZUGZXPQXNXSUQUNZ
      XTQURXMXGYAAEFJKLMOQRSUTVAQXSVBVCXNXTULZXIXKYBXQXIUGZXQXKUGZVDZXIXKUNXTYC
      XNXSXIXQXSXRUIZXIXRUQUNZXSYFUJJVEZUQUNYGYHUDUQJUDVFYHUDVGLEUDVHLUEXFVIEUE
      ZVJZUQVGYIYJWCVKJXIRVLUDJVMVNUQUDVOVPVQYHUQXRUQJVRVSVTXRWAVNEFJLRWBWDWEWF
      XNXTYEXNYDXTXNXTVDZQXKWGZYDYKWOXNXKXSVJUQVGZYLXNXFWHZYMXGYNXMUDOXFWIWJABC
      DEFGHIJKLMPQRSTUAUBUCWKWLQXKXSWMVCYKQXKWPWLWNWQXQXIXKWRWSWTXAXKXIXBXCXDXE
      $.

    $( Lemma for ~ fin23 .  Wrap the previous construction into a function to
       hide the hypotheses.  (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    fin23lem32 $p |- ( G e. F -> E. f A. b
        ( ( b : _om -1-1-> _V /\ U. ran b C_ G ) ->
        ( ( f ` b ) : _om -1-1-> _V /\ U. ran ( f ` b ) C. U. ran b ) ) ) $=
      ( wcel com cvv cv wf1 crn cuni wss wa cfv wpss wi wal wex cmap fin23lem28
      cpw co cmpt ad2antrl simprl simpl simprr fin23lem31 syl3anc wceq wfn f1fn
      wb dffn3 sylib sspwuni biimpri ad2antll fssd pwexg adantr vex f1f sylancr
      dmfex elmapd mpbird syl fex syl2anc eqid fvmpt2 f1eq1 rneq unieqd psseq1d
      wf anbi12d mpbir2and ex alrimiv ovex mptex nfmpt1 nfeq2 fveq1 rneqd albid
      imbi2d spcev sseq1d fveq2 psseq12d imbi12d cbvalv exbii sylibr ) ONUEZUFU
      GFUHZUIZXSUJZUKZOULZUMZUFUGXSKUHZUNZUIZYFUJZUKZYBUOZUMZUPZFUQZKURZUFUGRUH
      ZUIZYOUJZUKZOULZUMZUFUGYOYEUNZUIZUUAUJZUKZYRUOZUMZUPZRUQZKURXRYDUFUGXSFOV
      AZUFUSVBZPVCZUNZUIZUULUJZUKZYBUOZUMZUPZFUQZYNXRUURFXRYDUUQXRYDUMZUUQUFUGP
      UIZPUJZUKZYBUOZXTUVAXRYCABCDEFGHIJLMNPQSTUAUBUCUDUTVDZUUTXTXRYCUVDXRXTYCV
      EXRYDVFXRXTYCVGABCDEFGHIJLMNOUGPQSTUAUBUCUDVHVIUUTUULPVJZUUQUVAUVDUMVMUUT
      XSUUJUEZPUGUEZUVFUUTUVGUFUUIXSWQUUTUFYAUUIXSXTUFYAXSWQZXRYCXTXSUFVKUVIUFU
      GXSVLUFXSVNVOVDYCYAUUIULZXRXTUVJYCYAOVPVQVRVSUUTUUIUFXSUGUGXRUUIUGUEYDONV
      TWAXTUFUGUEZXRYCXTXSUGUEUFUGXSWQUVKFWBUFUGXSWCUFUGUGXSWEWDVDZWFWGUUTUFUGP
      WQZUVKUVHUUTUVAUVMUVEUFUGPWCWHUVLUFUGUGPWIWJFUUJPUGUUKUUKWKWLWJUVFUUMUVAU
      UPUVDUFUGUULPWMUVFUUOUVCYBUVFUUNUVBUULPWNWOWPWRWHWSWTXAYMUUSKUUKFUUJPUUIU
      FUSXBXCYEUUKVJZYLUURFFYEUUKFUUJPXDXEUVNYKUUQYDUVNYGUUMYJUUPUVNYFUULVJYGUU
      MVMXSYEUUKXFZUFUGYFUULWMWHUVNYIUUOYBUVNYHUUNUVNYFUULUVOXGWOWPWRXIXHXJWHUU
      HYMKUUGYLRFYOXSVJZYTYDUUFYKUVPYPXTYSYCUFUGYOXSWMUVPYRYBOUVPYQYAYOXSWNWOZX
      KWRUVPUUBYGUUEYJUVPUUAYFVJUUBYGVMYOXSYEXLZUFUGUUAYFWMWHUVPUUDYIYRYBUVPUUC
      YHUVPUUAYFUVRXGWOUVQXMWRXNXOXPXQ $.
  $}

  ${
    $d a b c d e f g i j k l x y $.  $d a j A $.  $d a b c d e f g h i j x G $.
    $d a b B $.  $d a c e F $.  $d a b c d e j ph $.  $d a b c d e j Y $.
    fin23lem33.f $e |- F = { g | A. a e. ( ~P g ^m _om )
      ( A. x e. _om ( a ` suc x ) C_ ( a ` x ) -> |^| ran a e. ran a ) } $.
    $( Lemma for ~ fin23 .  Discharge hypotheses.  (Contributed by Stefan
       O'Rear, 2-Nov-2014.) $)
    fin23lem33 $p |- ( G e. F -> E. f A. b
        ( ( b : _om -1-1-> _V /\ U. ran b C_ G ) ->
        ( ( f ` b ) : _om -1-1-> _V /\ U. ran ( f ` b ) C. U. ran b ) ) ) $=
      ( vi vy vd vc com cv cfv cin c0 wceq cif eqid ve vj vk cvv cmpt2 crn cuni
      vl cseqom cint wss crab cen wbr crio cmpt cdif cfn wcel ccom fveq2 ineq1d
      eqeq1d ifbieq2d id ifbieq12d cbvmpt2v seqomeq12 sseq2d cbvrabv fin23lem32
      ineq2 mp2an ) AICJKUAUBUCMUDUBNZUANZOZUCNZPZQRZVQVRSZUEZVOUFUGZUIZUFUJZUH
      NZVOOZUKZUHMULZCMANZWHPCNZUMUNAWHUOUPZCMWIMWHUQZPWJUMUNAWLUOUPZWCBCLDEWHU
      RUSVOWMUTIWHINVOOWDUQUPWKUTSZFGWALKMUDLNZVOOZKNZPZQRZWQWRSZUEZRWBWBRWCXAW
      BUIRUBUCLKMUDVTWTWPVQPZQRZVQXBSVNWORZVSXCVRXBVQXDVRXBQXDVPWPVQVNWOVOVAVBZ
      VCXEVDVQWQRZXCWSVQXBWQWRXFXBWRQVQWQWPVLZVCXFVEXGVFVGWBTWAXAWBWBVHVMHWGWDJ
      NZVOOZUKUHJMWEXHRWFXIWDWEXHVOVAVIVJWKTWMTWNTVK $.

    fin23lem.f $e |- ( ph -> h : _om -1-1-> _V ) $.
    fin23lem.g $e |- ( ph -> U. ran h C_ G ) $.
    fin23lem.h $e |- ( ph -> A. j ( ( j : _om -1-1-> _V /\ U. ran j C_ G ) ->
        ( ( i ` j ) : _om -1-1-> _V /\ U. ran ( i ` j ) C. U. ran j ) ) ) $.
    fin23lem.i $e |- Y = ( rec ( i , h ) |` _om ) $.
    $( Lemma for ~ fin23 .  Establish induction invariants on ` Y ` which
       parameterizes our contradictory chain of subsets.  In this section,
       ` h ` is the hypothetically assumed family of subsets, ` g ` is the
       ground set, and ` i ` is the induction function constructed in the
       previous section.  (Contributed by Stefan O'Rear, 2-Nov-2014.) $)
    fin23lem34 $p |- ( ( ph /\ A e. _om ) -> ( ( Y ` A ) : _om -1-1-> _V /\
        U. ran ( Y ` A ) C_ G ) ) $=
      ( com cvv cfv wceq vb wcel wf1 crn cuni wss wa cv wi c0 csuc wb fveq2 syl
      f1eq1 rneqd unieqd sseq1d anbi12d imbi2d crdg cres fveq1i vex ax-mp eqtri
      fr0g rneqi unieqi sseq1i anbi12i sylanbrc w3a wpss wal fvex rneq psseq12d
      imbi12d spcv imp pssss sstr sylan expcom anim2d ad2antll mpd frsuc fveq2i
      3adant1 3eqtr4g 3ad2ant1 mpbird 3exp a2d finds impcom ) CQUBAQRCJSZUCZWSU
      DZUEZIUFZUGZAQRKUHZJSZUCZXFUDZUEZIUFZUGZUIAQRUJJSZUCZXLUDZUEZIUFZUGZUIAQR
      UAUHZJSZUCZXSUDZUEZIUFZUGZUIAQRXRUKZJSZUCZYFUDZUEZIUFZUGZUIAXDUIKUACXEUJT
      ZXKXQAYLXGXMXJXPYLXFXLTXGXMULXEUJJUMZQRXFXLUOUNYLXIXOIYLXHXNYLXFXLYMUPUQU
      RUSUTXEXRTZXKYDAYNXGXTXJYCYNXFXSTXGXTULXEXRJUMZQRXFXSUOUNYNXIYBIYNXHYAYNX
      FXSYOUPUQURUSUTXEYETZXKYKAYPXGYGXJYJYPXFYFTXGYGULXEYEJUMZQRXFYFUOUNYPXIYI
      IYPXHYHYPXFYFYQUPUQURUSUTXECTZXKXDAYRXGWTXJXCYRXFWSTXGWTULXECJUMZQRXFWSUO
      UNYRXIXBIYRXHXAYRXFWSYSUPUQURUSUTAQREUHZUCZYTUDZUEZIUFZXQMNXMUUAXPUUDXLYT
      TXMUUAULXLUJFUHZYTVAQVBZSZYTUJJUUFPVCYTRUBUUGYTTEVDYTRUUEVGVEVFZQRXLYTUOV
      EXOUUCIXNUUBXLYTUUHVHVIVJVKVLXRQUBZAYDYKUUIAYDYKUUIAYDVMYKQRXSUUESZUCZUUJ
      UDZUEZIUFZUGZAYDUUOUUIAYDUGUUKUUMYBVNZUGZUUOAYDUUQAQRGUHZUCZUURUDZUEZIUFZ
      UGZQRUURUUESZUCZUVDUDZUEZUVAVNZUGZUIZGVOYDUUQUIZOUVJUVKGXSXRJVPUURXSTZUVC
      YDUVIUUQUVLUUSXTUVBYCQRUURXSUOUVLUVAYBIUVLUUTYAUURXSVQUQZURUSUVLUVEUUKUVH
      UUPUVLUVDUUJTUVEUUKULUURXSUUEUMZQRUVDUUJUOUNUVLUVGUUMUVAYBUVLUVFUULUVLUVD
      UUJUVNUPUQUVMVRUSVSVTUNWAYCUUQUUOUIAXTYCUUPUUNUUKUUPYCUUNUUPUUMYBUFYCUUNU
      UMYBWBUUMYBIWCWDWEWFWGWHWKUUIAYKUUOULZYDUUIYFUUJTZUVOUUIYEUUFSXRUUFSZUUES
      YFUUJYTXRUUEWIYEJUUFPVCXSUVQUUEXRJUUFPVCWJWLUVPYGUUKYJUUNQRYFUUJUOUVPYIUU
      MIUVPYHUULYFUUJVQUQURUSUNWMWNWOWPWQWR $.

    $( Lemma for ~ fin23 .  Strict order property of ` Y ` .  (Contributed by
       Stefan O'Rear, 2-Nov-2014.) $)
    fin23lem35 $p |- ( ( ph /\ A e. _om ) -> U. ran ( Y ` suc A ) C.
        U. ran ( Y ` A ) ) $=
      ( com wa cfv cvv wcel csuc crn cuni wpss wf1 wss fin23lem34 wal fvex wceq
      cv wi f1eq1 rneq unieqd sseq1d anbi12d wb fveq2 syl psseq12d imbi12d spcv
      rneqd adantr simprd crdg cres adantl fveq1i fveq2i 3eqtr4g psseq1d mpbird
      mpd frsuc ) ACQUAZRZCUBZJSZUCZUDZCJSZUCZUDZUEWDFULZSZUCZUDZWFUEZVSQTWHUFZ
      WKVSQTWDUFZWFIUGZRZWLWKRZABCDEFGHIJKLMNOPUHAWOWPUMZVRAQTGULZUFZWRUCZUDZIU
      GZRZQTWRWGSZUFZXDUCZUDZXAUEZRZUMZGUIWQOXJWQGWDCJUJWRWDUKZXCWOXIWPXKWSWMXB
      WNQTWRWDUNXKXAWFIXKWTWEWRWDUOUPZUQURXKXEWLXHWKXKXDWHUKXEWLUSWRWDWGUTZQTXD
      WHUNVAXKXGWJXAWFXKXFWIXKXDWHXMVEUPXLVBURVCVDVAVFVPVGVSWCWJWFVSWBWIVSWAWHV
      SVTWGEULZVHQVIZSZCXOSZWGSZWAWHVRXPXRUKAXNCWGVQVJVTJXOPVKWDXQWGCJXOPVKVLVM
      VEUPVNVO $.

    $( Lemma for ~ fin23 .  Weak order property of ` Y ` .  (Contributed by
       Stefan O'Rear, 2-Nov-2014.) $)
    fin23lem36 $p |- ( ( ( A e. _om /\ B e. _om ) /\ ( B C_ A /\ ph ) ) ->
        U. ran ( Y ` A ) C_ U. ran ( Y ` B ) ) $=
      ( wa wss wi vb com wcel cfv crn cuni csuc wceq fveq2 unieqd sseq1d imbi2d
      cv rneqd ssid 2a1i wpss simprr simpll fin23lem35 syl2anc pssssd sstr2 syl
      expr a2d findsg impr ) CUBUCDUBUCZRDCSACKUDZUEZUFZDKUDZUEZUFZSZALUMZKUDZU
      EZUFZVOSZTAVOVOSZTAUAUMZKUDZUEZUFZVOSZTAWCUGZKUDZUEZUFZVOSZTAVPTLUACDVQDU
      HZWAWBAWMVTVOVOWMVSVNWMVRVMVQDKUIUNUJUKULVQWCUHZWAWGAWNVTWFVOWNVSWEWNVRWD
      VQWCKUIUNUJUKULVQWHUHZWAWLAWOVTWKVOWOVSWJWOVRWIVQWHKUIUNUJUKULVQCUHZWAVPA
      WPVTVLVOWPVSVKWPVRVJVQCKUIUNUJUKULWBVIAVOUOUPWCUBUCZVIRZDWCSZRAWGWLWRWSAW
      GWLTZWRWSARZRZWKWFSWTXBWKWFXBAWQWKWFUQWRWSAURWQVIXAUSABWCEFGHIJKLMNOPQUTV
      AVBWKWFVOVCVDVEVFVGVH $.

    $( Lemma for ~ fin23 .  The contradictory chain has no minimum.
       (Contributed by Stefan O'Rear, 2-Nov-2014.)  (Revised by Mario Carneiro,
       17-May-2015.) $)
    fin23lem38 $p |- ( ph -> -. |^| ran ( b e. _om |->
          U. ran ( Y ` b ) ) e. ran ( b e. _om |-> U. ran ( Y ` b ) ) ) $=
      ( vd com wceq wcel cv cfv crn cuni cmpt cint wrex wa wpss csuc wss peano2
      wn eqid fveq2 rneqd unieqd eqeq2d rspcev mpan2 wb fvex rnex uniex elrnmpt
      cvv ax-mp sylibr adantl intss1 fin23lem35 sspsstrd dfpss2 simprbi cbvmptv
      syl nrexdv ibi nsyl ) AKRKUAZIUBZUCZUDZUEZUCZUFZQUAZIUBZUCZUDZSZQRUGZWFWE
      TZAWKQRAWGRTZUHZWFWJUIZWKUMZWOWFWGUJZIUBZUCZUDZWJWOXAWETZWFXAUKWNXBAWNWRR
      TZXBWGULXCXAWCSZKRUGZXBXCXAXASZXEXAUNXDXFKWRRVTWRSZWCXAXAXGWBWTXGWAWSVTWR
      IUOUPUQURUSUTXAVFTXBXEVAWTWSWRIVBVCVDKRWCXAWDVFWDUNVEVGVHVPVIXAWEVJVPABWG
      CDEFGHIJLMNOPVKVLWPWFWJUKWQWFWJVMVNVPVQWMWLQRWJWFWDWEKQRWCWJVTWGSZWBWIXHW
      AWHVTWGIUOUPUQVOVEVRVS $.

    $( Lemma for ~ fin23 .  Thus, we have that ` g ` could not have been in
       ` F ` after all.  (Contributed by Stefan O'Rear, 4-Nov-2014.) $)
    fin23lem39 $p |- ( ph -> -. G e. F ) $=
      ( vc wcel com cfv cvv ve vd cv crn cuni cmpt cint fin23lem38 wa cmap csuc
      cpw co wss wral wi wf fin23lem34 simprd adantlr wb elpw2g ad2antlr mpbird
      wf1 eqid fmptd pwexg vex f1f dmfex sylancr elmapg syl2anr isfin3ds adantl
      syl ibi fin23lem35 pssssd wceq peano2 fveq2 rneqd unieqd fvex uniex fvmpt
      sseq12d ralrimiva adantr fveq1 ralbidv inteqd eleq12d imbi12d rspcv syl3c
      rnex rneq mtand ) AHGQZPRPUCZISZUDZUEZUFZUDZUGZXHQZABCDEFGHIJPKLMNOUHAXBU
      IZXGHULZRUJUMZQZUAUCZUKZUBUCZSZXOXQSZUNZUARUOZXQUDZUGZYBQZUPZUBXMUOZXPXGS
      ZXOXGSZUNZUARUOZXJXKXNRXLXGUQZXKPRXFXLXGXKXCRQZUIXFXLQZXFHUNZAYLYNXBAYLUI
      RTXDVEYNABXCCDEFGHIJKLMNOURUSUTXBYMYNVAAYLXFHGVBVCVDXGVFZVGXBXLTQRTQZXNYK
      VAAHGVHARTDUCZVEZYPLYRYQTQRTYQUQYPDVIRTYQVJRTTYQVKVLVQXLRXGTTVMVNVDXBYFAX
      BYFUAHUBCGGJBKVOVRVPAYJXBAYIUARAXORQZUIZYIXPISZUDZUEZXOISZUDZUEZUNZYTUUCU
      UFABXOCDEFGHIJKLMNOVSVTYSYIUUGVAAYSYGUUCYHUUFYSXPRQYGUUCWAXOWBPXPXFUUCRXG
      XCXPWAZXEUUBUUHXDUUAXCXPIWCWDWEYOUUBUUAXPIWFWSWGWHVQPXOXFUUFRXGXCXOWAZXEU
      UEUUIXDUUDXCXOIWCWDWEYOUUEUUDXOIWFWSWGWHWIVPVDWJWKYEYJXJUPUBXGXMXQXGWAZYA
      YJYDXJUUJXTYIUARUUJXRYGXSYHXPXQXGWLXOXQXGWLWIWMUUJYCXIYBXHUUJYBXHXQXGWTZW
      NUUKWOWPWQWRXA $.
  $}

  ${
    $d a b c d e f g x A $.  $d a b c e F $.
    fin23lem40.f $e |- F = { g | A. a e. ( ~P g ^m _om )
      ( A. x e. _om ( a ` suc x ) C_ ( a ` x ) -> |^| ran a e. ran a ) } $.
    $( Lemma for ~ fin23 . ` Fin2 ` sets satisfy the descending chain
       condition.  (Contributed by Stefan O'Rear, 3-Nov-2014.) $)
    fin23lem40 $p |- ( A e. Fin2 -> A e. F ) $=
      ( vb vf cfin2 wcel cv cfv wss com wral wa c0 wne crpss ad2antrl csuc cint
      crn wi cpw cmap co wf elmapi wor simpl frn cdm peano1 ne0i eqnetrd dm0rn0
      fdm mp1i necon3bii sylib ccnv wfn wbr wceq wpo ffn wpss sspss fvex brrpss
      wo brcnv bitri eqcom orbi12i sylbb2 ralimi ad2antll porpss cnvpo mpbi a1i
      sornom cnvso sylibr fin2i2 syl22anc expr sylan2 ralrimiva isfin3ds mpbird
      syl3anc ) BIJZBDJGKZUAZHKZLZWPWRLZMZGNOZWRUCZUBXCJZUDZHBUEZNUFUGZOWOXEHXG
      WRXGJWONXFWRUHZXEWRXFNUIWOXHXBXDWOXHXBPZPZWOXCXFMZXCQRZXCSUJZXDWOXIUKXHXK
      WOXBNXFWRULTXHXLWOXBXHWRUMZQRXLXHXNNQNXFWRURQNJNQRXHUNNQUOUSUPXNQXCQWRUQU
      TVATXJXCSVBZUJZXMXJWRNVCZWTWSXOVDZWTWSVEZVLZGNOZXCXOVFZXPXHXQWOXBNXFWRVGT
      XBYAWOXHXAXTGNXAWSWTVHZWSWTVEZVLXTWSWTVIXRYCXSYDXRWSWTSVDYCWTWSSWPWRVJZWQ
      WRVJVMWSWTYEVKVNWTWSVOVPVQVRVSYBXJXCSVFYBXCVTXCSWAWBWCXOWRGWDWNXCSWEWFBXC
      WGWHWIWJWKGBHCDIEAFWLWM $.

    $( Lemma for ~ fin23 .  A set which satisfies the descending sequence
       condition must be III-finite.  (Contributed by Stefan O'Rear,
       2-Nov-2014.) $)
    fin23lem41 $p |- ( A e. F -> A e. Fin3 ) $=
      ( vb vd vc ve wcel com cv wf1 wa cvv crn cuni wss syl cpw cfin4 cfin3 wbr
      cdom wn wex brdomi cfv wpss wi wal fin23lem33 adantl crdg cres f1ss mpan2
      ssv ad2antrr wf f1f frn uniss 3syl unipw syl6sseq wceq rneq unieqd sseq1d
      f1eq1 anbi12d wb fveq2 rneqd psseq12d imbi12d cbvalv biimpi eqid exlimddv
      fin23lem39 pm2.01da exlimiv con2i pwexg isfin4-2 mpbird isfin3 sylibr ) B
      DKZBUAZUBKZBUCKWLWNLWMUEUDZUFZWOWLWOLWMGMZNZGUGWLUFZLWMGUHWRWSGWRWLWRWLOZ
      LPHMZNZXAQZRZBSZOZLPXAIMZUIZNZXHQZRZXDUJZOZUKZHULZWSIWLXOIUGWRAICDBEHFUMU
      NWTXOOACGIJDBXGWQUOLUPZEFWRLPWQNZWLXOWRWMPSXQWMUSLWMPWQUQURUTWRWQQZRZBSWL
      XOWRXSWMRZBWRLWMWQVAXRWMSXSXTSLWMWQVBLWMWQVCXRWMVDVEBVFVGUTXOLPJMZNZYAQZR
      ZBSZOZLPYAXGUIZNZYGQZRZYDUJZOZUKZJULZWTXOYNXNYMHJXAYAVHZXFYFXMYLYOXBYBXEY
      ELPXAYAVLYOXDYDBYOXCYCXAYAVIVJZVKVMYOXIYHXLYKYOXHYGVHXIYHVNXAYAXGVOZLPXHY
      GVLTYOXKYJXDYDYOXJYIYOXHYGYQVPVJYPVQVMVRVSVTUNXPWAWCWBWDWETWFWLWMPKWNWPVN
      BDWGWMPWHTWIBWJWK $.
  $}

  ${
    $d a b w x B $.  $d a b t G $.  $d a b x L $.  $d a b c s t u v w x y ph $.
    $d a b c d w x y A $.  $d a b c d w x y F $.  $d a b s t u v w x y S $.
    $d s t w x y J $.  $d a b s t x y K $.
    isf32lem.a $e |- ( ph -> F : _om --> ~P G ) $.
    isf32lem.b $e |- ( ph -> A. x e. _om ( F ` suc x ) C_ ( F ` x ) ) $.
    isf32lem.c $e |- ( ph -> -. |^| ran F e. ran F ) $.
    $( Lemma for ~ isfin3-2 .  Derive weak ordering property.  (Contributed by
       Stefan O'Rear, 5-Nov-2014.) $)
    isf32lem1 $p |- ( ( ( A e. _om /\ B e. _om ) /\ ( B C_ A /\ ph ) ) ->
        ( F ` A ) C_ ( F ` B ) ) $=
      ( com wcel wa wss cfv cv wi wceq fveq2 sseq1d imbi2d va vb csuc ssid 2a1i
      wral suceq fveq2d sseq12d rspcv syl5 ad2antrr sstr2 syl6 a2d findsg impr
      ) CJKDJKZLDCMACENZDENZMZAUAOZENZUTMZPAUTUTMZPAUBOZENZUTMZPAVFUCZENZUTMZPA
      VAPUAUBCDVBDQZVDVEAVLVCUTUTVBDERSTVBVFQZVDVHAVMVCVGUTVBVFERSTVBVIQZVDVKAV
      NVCVJUTVBVIERSTVBCQZVDVAAVOVCUSUTVBCERSTVEURAUTUDUEVFJKZURLDVFMZLZAVHVKVR
      AVJVGMZVHVKPVPAVSPURVQABOZUCZENZVTENZMZBJUFVPVSHWDVSBVFJVTVFQZWBVJWCVGWEW
      AVIEVTVFUGUHVTVFERUIUJUKULVJVGUTUMUNUOUPUQ $.

    $( Lemma for ~ isfin3-2 .  Non-minimum implies that there is always another
       decrease.  (Contributed by Stefan O'Rear, 5-Nov-2014.) $)
    isf32lem2 $p |- ( ( ph /\ A e. _om ) -> E. a e. _om ( A e. a /\
        ( F ` suc a ) C. ( F ` a ) ) ) $=
      ( vb com wcel wa cv cfv wceq wi wss syl fveq2 vc vd csuc wn wrex wpss crn
      wral cint adantr wfn cpw wf ffn peano2 fnfvelrn syl2an intss1 wb ad2antrr
      fvelrnb simplrr ad3antlr simpr simplrl eqeq2d imbi2d eqid 2a1i cvv sucexb
      elex sylibr adantl sucssel eleq2 suceq fveq2d eqeq12d imbi12d rspcv com23
      imp mpd eqtr3 expcom syl6 a2d findsg impr syl22anc simplll isf32lem1 word
      eqimss wo ad2antlr ad2antll ordtri2or2 syl2anc mpjaodan anassrs syl5ibcom
      nnord sseq2 rexlimdva sylbid ralrimiv ssint eqssd eqeltrd sseq12d cbvralv
      mtand rexnal sylib pm4.61 dfpss2 simplbi2 anim2d syl5bi ralimi rexim 3syl
      ) ACKLZMZCFNZLZYGUCZDOZYGDOZPZQZUDZFKUEZYHYJYKUFZMZFKUEZYFYMFKUHZUDYOYFYS
      DUGZUIZYTLZAUUBUDYEIUJYFYSMZUUACUCZDOZYTUUCUUAUUEUUCUUEYTLZUUAUUERYFUUFYS
      ADKUKZUUDKLZUUFYEAKEULZDUMUUGGKUUIDUNSZCUOZKUUDDUPUQUJZUUEYTURSUUCUUEJNZR
      ZJYTUHUUEUUARUUCUUNJYTUUCUUMYTLZUANZDOZUUMPZUAKUEZUUNAUUOUUSUSZYEYSAUUGUU
      TUUJUAKUUMDVASUTUUCUURUUNUAKUUCUUPKLZMUUEUUQRZUURUUNYFYSUVAUVBYFYSUVAMZMZ
      UUDUUPRZUVBUUPUUDRZUVDUVEMZUUEUUQPZUVBUVGUVAUUHUVEYSUVHYFYSUVAUVEVBYEUUHA
      UVCUVEUUKVCUVDUVEVDYFYSUVAUVEVEUVAUUHMUVEYSUVHYSUUEUUMDOZPZQYSUUEUUEPZQYS
      UUEUBNZDOZPZQYSUUEUVLUCZDOZPZQYSUVHQJUBUUPUUDUUMUUDPZUVJUVKYSUVRUVIUUEUUE
      UUMUUDDTVFVGUUMUVLPZUVJUVNYSUVSUVIUVMUUEUUMUVLDTVFVGUUMUVOPZUVJUVQYSUVTUV
      IUVPUUEUUMUVODTVFVGUUMUUPPZUVJUVHYSUWAUVIUUQUUEUUMUUPDTVFVGUVKUUHYSUUEVHV
      IUVLKLZUUHMZUUDUVLRZMZYSUVNUVQUWEYSUVPUVMPZUVNUVQQUWECUVLLZYSUWFQZUWCUWDU
      WGUWCCVJLZUWDUWGQUUHUWIUWBUUHUUDVJLUWIUUDKVLCVKVMVNCUVLVJVOSWCUWBUWGUWHQU
      UHUWDUWBYSUWGUWFYMUWGUWFQFUVLKYGUVLPZYHUWGYLUWFYGUVLCVPUWJYJUVPYKUVMUWJYI
      UVODYGUVLVQVRYGUVLDTVSVTWAWBUTWDUVNUWFUVQUUEUVPUVMWEWFWGWHWIWJWKUUEUUQWOS
      UVDUVFMUUHUVAUVFAUVBYEUUHAUVCUVFUUKVCYFYSUVAUVFVBUVDUVFVDAYEUVCUVFWLABUUD
      UUPDEGHIWMWKUVDUUDWNZUUPWNZUVEUVFWPYEUWKAUVCYEUUHUWKUUKUUDXDSWQUVAUWLYFYS
      UUPXDWRUUDUUPWSWTXAXBUUQUUMUUEXEXCXFXGXHJUUEYTXIVMXJUULXKXNYMFKXOVMYFYJYK
      RZFKUHZYNYQQZFKUHYOYRQAUWNYEABNZUCZDOZUWPDOZRZBKUHUWNHUWTUWMBFKUWPYGPZUWR
      YJUWSYKUXAUWQYIDUWPYGVQVRUWPYGDTXLXMXPUJUWMUWOFKYNYHYLUDZMUWMYQYHYLXQUWMU
      XBYPYHYPUWMUXBYJYKXRXSXTYAYBYNYQFKYCYDWD $.

    $( Lemma for ~ isfin3-2 .  Being a chain, difference sets are disjoint (one
       case).  (Contributed by Stefan O'Rear, 5-Nov-2014.) $)
    isf32lem3 $p |- ( ( ( A e. _om /\ B e. _om ) /\ ( B e. A /\ ph ) ) ->
        ( ( ( F ` A ) \ ( F ` suc A ) ) i^i
          ( ( F ` B ) \ ( F ` suc B ) ) ) = (/) ) $=
      ( va com wcel wa cv cfv csuc cdif wn wral wss cin c0 eldifi simpll peano2
      wceq ad2antlr word nnord ad2antrr simprl ordsucss sylc isf32lem1 syl22anc
      simprr sseld elndif syl56 ralrimiv disj sylibr ) CKLZDKLZMZDCLZAMZMZJNZDE
      OZDPZEOZQZLRZJCEOZCPEOZQZSVQVMUAUBUFVHVNJVQVIVQLVIVOLVHVIVLLVNVIVOVPUCVHV
      OVLVIVHVCVKKLZVKCTZAVOVLTVCVDVGUDVDVRVCVGDUEUGVHCUHZVFVSVCVTVDVGCUIUJVEVF
      AUKDCULUMVEVFAUPABCVKEFGHIUNUOUQVIVLVJURUSUTJVQVMVAVB $.

    $( Lemma for ~ isfin3-2 .  Being a chain, difference sets are disjoint.
       (Contributed by Stefan O'Rear, 5-Nov-2014.) $)
    isf32lem4 $p |- ( ( ( ph /\ A =/= B ) /\ ( A e. _om /\ B e. _om ) ) ->
        ( ( ( F ` A ) \ ( F ` suc A ) ) i^i
          ( ( F ` B ) \ ( F ` suc B ) ) ) = (/) ) $=
      ( wa com wcel cfv csuc cdif cin c0 wceq simplrr simplrl wne simpr simplll
      incom isf32lem3 syl5eq syl22anc wo simplr wn wb word nnord ordtri3 syl2an
      adantl necon2abid mpbird mpjaodan ) ACDUAZJZCKLZDKLZJZJZCDLZCEMCNEMOZDEMD
      NEMOZPZQRZDCLZVEVFJVCVBVFAVJVAVBVCVFSVAVBVCVFTVEVFUBAUTVDVFUCVCVBJVFAJJVI
      VHVGPQVGVHUDABDCEFGHIUEUFUGVEVKJVBVCVKAVJVAVBVCVKTVAVBVCVKSVEVKUBAUTVDVKU
      CABCDEFGHIUEUGVEVFVKUHZUTAUTVDUIVEVLCDVDCDRVLUJUKZVAVBCULDULVMVCCUMDUMCDU
      NUOUPUQURUS $.

    isf32lem.d $e |- S = { y e. _om | ( F ` suc y ) C. ( F ` y ) } $.
    $( Lemma for ~ isfin3-2 .  There are infinite decrease points.
       (Contributed by Stefan O'Rear, 5-Nov-2014.) $)
    isf32lem5 $p |- ( ph -> -. S e. Fin ) $=
      ( va vb wcel cv cfv wa com wrex wn con0 cfn csuc wpss isf32lem2 ralrimiva
      wral cuni wss crab ssrab2 eqsstri nnunifi mpan adantl elssuni nnon omsson
      wi sseldi ontri1 syl2anr syl5ib con2d impr eleq2i sylnib wceq suceq fveq2
      wb fveq2d psseq12d elrab3 ad2antrl mtbid imnan sylib nrexdv eleq1 rexbidv
      expr anbi1d notbid rspcev syl2anc rexnal ex mt2d ) ADUAMZKNZLNZMZWKUBZEOZ
      WKEOZUCZPZLQRZKQUFZAWRKQABWJEFLGHIUDUEAWIWSSZAWIPZWRSZKQRZWTXADUGZQMZXDWK
      MZWPPZLQRZSZXCWIXEADQUHWIXEDCNZUBZEOZXJEOZUCZCQUIZQJXNCQUJUKDULUMUNZXAXGL
      QXAWKQMZPZXFWPSZURXGSXAXQXFXSXAXQXFPPZWKXOMZWPXTWKDMZYAXAXQXFYBSXRYBXFYBW
      KXDUHZXRXFSZWKDUOXQWKTMXDTMYCYDVJXAWKUPXAQTXDUQXPUSWKXDUTVAVBVCVDDXOWKJVE
      VFXQYAWPVJXAXFXNWPCWKQXJWKVGZXLWNXMWOYEXKWMEXJWKVHVKXJWKEVIVLVMVNVOWAXFWP
      VPVQVRXBXIKXDQWJXDVGZWRXHYFWQXGLQYFWLXFWPWJXDWKVSWBVTWCWDWEWRKQWFVQWGWH
      $.

    isf32lem.e $e |- J = ( u e. _om |-> ( iota_ v e. S ( v i^i S ) ~~ u ) ) $.
    isf32lem.f $e |- K = ( ( w e. S |-> ( ( F ` w ) \ ( F ` suc w ) ) ) o.
      J ) $.
    $( Lemma for ~ isfin3-2 .  Each K value is nonempty.  (Contributed by
       Stefan O'Rear, 5-Nov-2014.) $)
    isf32lem6 $p |- ( ( ph /\ A e. _om ) -> ( K ` A ) =/= (/) ) $=
      ( com cfv wcel wa csuc cdif c0 cv cmpt ccom fveq1i wceq wf1o wss cfn wpss
      wf crab ssrab2 eqsstri isf32lem5 fin23lem22 sylancr f1of syl fvco3 adantr
      wn sylan ffvelrn sylancom fveq2 suceq fveq2d difeq12d eqid cvv fvex ax-mp
      difexg fvmpt eqtrd syl5eq psseq12d elrab2 simprbi df-pss pssdifn0 eqnetrd
      wne sylib ) AGSUAZUBZGLTZGKTZITZWMUCZITZUDZUEWKWLGDHDUFZITZWRUCZITZUDZUGZ
      KUHZTZWQGLXDRUIWKXEWMXCTZWQASHKUOZWJXEXFUJASHKUKZXGAHSULZHUMUAVFZXHHCUFZU
      CZITZXKITZUNZCSUPSPXOCSUQURZABCHIJMNOPUSZKHFEQUTZVASHKVBZVCSHGXCKVDVGWKWM
      HUAZXFWQUJAWJXGXTWKXHXGWKXIXJXHXPAXJWJXQVEXRVAXSVCSHGKVHVIZDWMXBWQHXCWRWM
      UJZWSWNXAWPWRWMIVJYBWTWOIWRWMVKVLVMXCVNWNVOUAWQVOUAWMIVPWNWPVOVRVQVSVCVTW
      AWKWPWNULWPWNWHUBZWQUEWHWKWPWNUNZYCWKXTYDYAXTWMSUAYDXOYDCWMSHXKWMUJZXMWPX
      NWNYEXLWOIXKWMVKVLXKWMIVJWBPWCWDVCWPWNWEWIWPWNWFVCWG $.

    $( Lemma for ~ isfin3-2 .  Different K values are disjoint.  (Contributed
       by Stefan O'Rear, 5-Nov-2014.) $)
    isf32lem7 $p |- ( ( ( ph /\ A =/= B ) /\ ( A e. _om /\ B e. _om ) ) ->
        ( ( K ` A ) i^i ( K ` B ) ) = (/) ) $=
      ( com wne wa wcel cfv cin csuc cdif c0 cmpt ccom fveq1i wceq wf1o wss cfn
      cv wf wn wpss crab ssrab2 eqsstri isf32lem5 fin23lem22 sylancr f1of fvco3
      syl sylan ad2ant2r adantr simpl ffvelrn syl2an fveq2 fveq2d difeq12d eqid
      suceq fvex difexg ax-mp fvmpt eqtrd syl5eq ad2ant2rl simpr ineq12d simpll
      cvv simplr wf1 f1of1 f1fveq biimpd necon3d mpd sseldi isf32lem4 syl22anc
      wb ) AGHUAZUBZGTUCZHTUCZUBZUBZGMUDZHMUDZUEGLUDZJUDZXJUFZJUDZUGZHLUDZJUDZX
      OUFZJUDZUGZUEZUHXGXHXNXIXSXGXHGDIDUPZJUDZYAUFZJUDZUGZUIZLUJZUDZXNGMYGSUKX
      GYHXJYFUDZXNAXDYHYIULZXBXEATILUQZXDYJATILUMZYKAITUNIUOUCURYLICUPZUFJUDYMJ
      UDUSZCTUTTQYNCTVAVBZABCIJKNOPQVCLIFERVDVEZTILVFVHZTIGYFLVGVIVJXGXJIUCZYIX
      NULXCYKXDYRXFAYKXBYQVKZXDXEVLTIGLVMVNZDXJYEXNIYFYAXJULZYBXKYDXMYAXJJVOUUA
      YCXLJYAXJVSVPVQYFVRZXKWJUCXNWJUCXJJVTXKXMWJWAWBWCVHWDWEXGXIHYGUDZXSHMYGSU
      KXGUUCXOYFUDZXSAXEUUCUUDULZXBXDAYKXEUUEYQTIHYFLVGVIWFXGXOIUCZUUDXSULXCYKX
      EUUFXFYSXDXEWGTIHLVMVNZDXOYEXSIYFYAXOULZYBXPYDXRYAXOJVOUUHYCXQJYAXOVSVPVQ
      UUBXPWJUCXSWJUCXOJVTXPXRWJWAWBWCVHWDWEWHXGAXJXOUAZXJTUCXOTUCXTUHULAXBXFWI
      XGXBUUIAXBXFWKXGXJXOGHXGXJXOULZGHULZXCTILWLZXFUUJUUKXAAUULXBAYLUULYPTILWM
      VHVKTIGHLWNVIWOWPWQXGITXJYOYTWRXGITXOYOUUGWRABXJXOJKNOPWSWTWD $.

    $( Lemma for ~ isfin3-2 .  K sets are subsets of the base.  (Contributed by
       Stefan O'Rear, 6-Nov-2014.) $)
    isf32lem8 $p |- ( ( ph /\ A e. _om ) -> ( K ` A ) C_ G ) $=
      ( com cfv wcel wa csuc cdif cv cmpt ccom fveq1i wf wceq wf1o wss cfn wpss
      crab ssrab2 eqsstri isf32lem5 fin23lem22 sylancr f1of syl fvco3 ffvelrnda
      sylan fveq2 suceq fveq2d difeq12d eqid cvv fvex difexg ax-mp fvmpt syl5eq
      wn eqtrd cpw adantr sseldi ffvelrnd elpwid ssdifssd eqsstrd ) AGSUAZUBZGL
      TZGKTZITZWIUCZITZUDZJWGWHGDHDUEZITZWNUCZITZUDZUFZKUGZTZWMGLWTRUHWGXAWIWST
      ZWMASHKUIZWFXAXBUJASHKUKZXCAHSULHUMUAVQXDHCUEZUCITXEITUNZCSUOSPXFCSUPUQZA
      BCHIJMNOPURKHFEQUSUTSHKVAVBZSHGWSKVCVEWGWIHUAXBWMUJASHGKXHVDZDWIWRWMHWSWN
      WIUJZWOWJWQWLWNWIIVFXJWPWKIWNWIVGVHVIWSVJWJVKUAWMVKUAWIIVLWJWLVKVMVNVOVBV
      RVPWGWJJWLWGWJJWGSJVSZWIIASXKIUIWFMVTWGHSWIXGXIWAWBWCWDWE $.

    isf32lem.g $e |- L = ( t e. G |->
      ( iota s ( s e. _om /\ t e. ( K ` s ) ) ) ) $.
    $( Lemma for ~ isfin3-2 .  Construction of the onto function.  (Contributed
       by Stefan O'Rear, 5-Nov-2014.)  (Revised by Mario Carneiro,
       2-Oct-2015.) $)
    isf32lem9 $p |- ( ph -> L : G -onto-> _om ) $=
      ( va vb com wf cv cfv wceq wrex wral wfo wcel wa cio weu cab ssab2 iotacl
      sseldi wn c0 iotanul peano1 syl6eqel pm2.61i a1i fmpti isf32lem6 n0 sylib
      wex wne isf32lem8 sselda anbi2d iotabidv iotaex fvmpt3i syl wi w3a simp1r
      eleq1 wal simpl1 simpr necomd simpl2 simpl3 isf32lem7 syl22anc disj1 syl6
      cin ex sp com23 3adant1r mpd necon4ad 3expia impd eleq2d anbi12d biimprcd
      fveq2 ancoms adantll impbid iota5 an32s eqtr2d jca eximdv ralrimiva dffo3
      df-rex syl6ibr sylanbrc ) AJUDMUEZUBUFZUCUFZMUGZUHZUCJUIZUBUDUJJUDMUKXTAG
      JUDNUFZUDULZGUFZYFLUGZULZUMZNUNZMUAYLUDULZYHJULYKNUOZYMYNYKNUPUDYLYJNUDUQ
      YKNURUSYNUTYLVAUDYKNVBVCVDVEVFVGVFAYEUBUDAYAUDULZUMZYBYALUGZULZUCVKZYEYPY
      QVAVLYSABCDEFYAHIJKLOPQRSTVHUCYQVIVJYPYSYBJULZYDUMZUCVKYEYPYRUUAUCYPYRUUA
      YPYRUMZYTYDYPYQJYBABCDEFYAHIJKLOPQRSTVMVNZUUBYCYGYBYIULZUMZNUNZYAUUBYTYCU
      UFUHUUCGYBYLUUFJMYHYBUHZYKUUENUUGYJUUDYGYHYBYIWCVOVPUAYKNVQVRVSAYRYOUUFYA
      UHAYRUMZUUENYAUDUUHYOUMZUUEYFYAUHZUUIYGUUDUUJUUHYOYGUUDUUJVTUUHYOYGWAZUUD
      YFYAUUKYRYFYAVLZUUDUTZVTZAYRYOYGWBAYOYGYRUUNVTYRAYOYGWAZUULYRUUMUUOUULYRU
      UMVTZUCWDZUUPUUOUULUUQUUOUULUMZYQYIWNVAUHZUUQUURAYAYFVLYOYGUUSAYOYGUULWEU
      URYFYAUUOUULWFWGAYOYGUULWHAYOYGUULWIABCDEFYAYFHIJKLOPQRSTWJWKUCYQYIWLVJWO
      UUPUCWPWMWQWRWSWTXAXBYRYOUUJUUEVTZAYOYRUUTUUJUUEYOYRUMUUJYGYOUUDYRYFYAUDW
      CUUJYIYQYBYFYALXFXCXDXEXGXHXIXJXKXLXMWOXNYDUCJXQXRWSXOUCUBJUDMXPXS $.

    $( Lemma for isfin3-2 .  Write in terms of weak dominance.  (Contributed by
       Stefan O'Rear, 6-Nov-2014.)  (Revised by Mario Carneiro,
       17-May-2015.) $)
    isf32lem10 $p |- ( ph -> ( G e. V -> _om ~<_* G ) ) $=
      ( com wfo wcel cvv cwdom wbr isf32lem9 wf fof syl fex sylan fowdom expcom
      ex sylsyld ) AJUCMUDZJNUEZMUFUEZUCJUGUHZABCDEFGHIJKLMOPQRSTUAUBUIZAUTVAAJ
      UCMUJZUTVAAUSVDVCJUCMUKULJUCNMUMUNUQVAUSVBMUFUCJUOUPUR $.
  $}

  ${
    $d b c d e f g h k l F $.  $d a b c d f g h k l x G $.  $d f V $.
    $( Lemma for ~ isfin3-2 .  Remove hypotheses from ~ isf32lem10 .
       (Contributed by Stefan O'Rear, 17-May-2015.) $)
    isf32lem11 $p |- ( ( G e. V /\ ( F : _om --> ~P G /\
        A. b e. _om ( F ` suc b ) C_ ( F ` b ) /\ -. |^| ran F e. ran F ) ) ->
      _om ~<_* G ) $=
      ( vc vd vh vg vf vk ve vl com cv csuc cfv wss wcel cmpt eqid cpw wral crn
      wf cint wn w3a cwdom wbr wpss crab cin cen crio cdif ccom cio simp1 suceq
      wa fveq2d fveq2 sseq12d cbvralv biimpi 3ad2ant2 simp3 psseq12d isf32lem10
      weq cbvrabv impcom ) MBUAAUDZDNZOZAPZVNAPZQZDMUBZAUCZUEVTRUFZUGZBCRMBUHUI
      WBEFGHIJKNZOZAPZWCAPZUJZKMUKZABIMHNWHULINUMUIHWHUNSZGWHGNZAPWJOAPUOSWIUPZ
      JBLNZMRJNWLWKPRUTLUQSZCLVMVSWAURVSVMENZOZAPZWNAPZQZEMUBZWAVSWSVRWRDEMDEVJ
      ZVPWPVQWQWTVOWOAVNWNUSVAVNWNAVBVCVDVEVFVMVSWAVGWGFNZOZAPZXAAPZUJKFMKFVJZW
      EXCWFXDXEWDXBAWCXAUSVAWCXAAVBVHVKWITWKTWMTVIVL $.

    isf32lem40.f $e |- F = { g | A. a e. ( ~P g ^m _om )
      ( A. x e. _om ( a ` suc x ) C_ ( a ` x ) -> |^| ran a e. ran a ) } $.
    $( Lemma for ~ isfin3-2 .  (Contributed by Stefan O'Rear, 6-Nov-2014.)
       (Revised by Mario Carneiro, 17-May-2015.) $)
    isf32lem12 $p |- ( G e. V -> ( -. _om ~<_* G -> G e. F ) ) $=
      ( vb vf wcel com cwdom wbr wn cv csuc cfv wral wi wa wss crn cint cmap co
      cpw wf elmapi isf32lem11 expcom 3expa impancom con1d exp31 com4t ralrimdv
      w3a syl isfin3ds sylibrd ) DEJZKDLMZNZHOZPIOZQVDVEQUAHKRZVEUBZUCVGJZSZIDU
      FZKUDUEZRDCJVAVCVIIVKVEVKJZVFVAVCVHVLKVJVEUGZVFVAVCVHSZSSVEVJKUHVMVFVAVNV
      MVFTZVATVHVBVOVHNZVAVBVMVFVPVAVBSVAVMVFVPUQVBVEDEHUIUJUKULUMUNURUOUPHDIBC
      EFAGUSUT $.
  $}

  $( One half of ~ isfin3-2 .  (Contributed by Mario Carneiro, 3-Jun-2015.) $)
  isfin32i $p |- ( A e. Fin3 -> -. _om ~<_* A ) $=
    ( cfin3 wcel cpw cfin4 com wbr wn isfin3 cdom isfin4-2 ibi cvv csdm relwdom
    cwdom brrelexi canth2g sdomdom 3syl wdompwdom domtr syl2anc nsyl sylbi ) AB
    CADZECZFAPGZHAIUGFUFJGZUHUGUIHUFEKLUHFFDZJGZUJUFJGUIUHFMCFUJNGUKFAPOQFMRFUJ
    STFAUAFUJUFUBUCUDUE $.

  ${
    $d a b f g x y A $.  $d a b f x y F $.  $d a b x V $.
    $( Lemma for ~ isfin3-3 .  (Contributed by Stefan O'Rear, 17-May-2015.) $)
    isf33lem $p |- Fin3 = { g | A. a e. ( ~P g ^m _om )
      ( A. x e. _om ( a ` suc x ) C_ ( a ` x ) -> |^| ran a e. ran a ) } $=
      ( vf vy vb cfin3 cv cfv wss com wral crn cint wcel wi cpw cmap co weq cab
      csuc cwdom wbr isfin32i fveq1 sseq12d ralbidv rneq inteqd eleq12d imbi12d
      cbvralv pweq oveq1d raleqdv syl5bb cbvabv isf32lem12 mpd abbii fin23lem41
      wn impbii eqriv ) DGAHZUBZCHZIZVFVHIZJZAKLZVHMZNZVMOZPZCBHZQZKRSZLZBUAZDH
      ZGOZWBWAOZWCKWBUCUDVCWDWBUEAEWAWBGFVTVGFHZIZVFWEIZJZAKLZWEMZNZWJOZPZFEHZQ
      ZKRSZLZBEVTWMFVSLZBETZWQVPWMCFVSCFTZVLWIVOWLWTVKWHAKWTVIWFVJWGVGVHWEUFVFV
      HWEUFUGUHWTVNWKVMWJWTVMWJVHWEUIZUJXAUKULUMZWSWMFVSWPWSVRWOKRVQWNUNUOUPUQU
      RUSUTAWBBWAFVTWRBXBVAVBVDVE $.

    $( Weakly Dedekind-infinite sets are exactly those which can be mapped onto
       ` _om ` .  (Contributed by Stefan O'Rear, 6-Nov-2014.)  (Proof shortened
       by Mario Carneiro, 17-May-2015.) $)
    isfin3-2 $p |- ( A e. V -> ( A e. Fin3 <-> -. _om ~<_* A ) ) $=
      ( vx vg va wcel cfin3 com cwdom wbr isfin32i isf33lem isf32lem12 impbid2
      wn ) ABFAGFHAIJOAKCDGABECDELMN $.

    $( Weakly Dedekind-infinite sets are exactly those with an ` _om ` -indexed
       descending chain of subsets.  (Contributed by Stefan O'Rear,
       7-Nov-2014.) $)
    isfin3-3 $p |- ( A e. V -> ( A e. Fin3 <-> A. f e. ( ~P A ^m _om )
      ( A. x e. _om ( f ` suc x ) C_ ( f ` x ) -> |^| ran f e. ran f ) ) ) $=
      ( vg va vb cfin3 isf33lem isfin3ds ) ABCEHDFGGEFIJ $.

    $( Inference from ~ isfin3-3 .  (This is actually a bit stronger than
       ~ isfin3-3 because it does not assume ` F ` is a set and does not use
       the Axiom of Infinity either.)  (Contributed by Mario Carneiro,
       17-May-2015.) $)
    fin33i $p |- ( ( A e. Fin3 /\ F : _om --> ~P A /\
      A. x e. _om ( F ` suc x ) C_ ( F ` x ) ) -> |^| ran F e. ran F ) $=
      ( cfin3 wcel com cpw wf csuc cfv wss wral w3a crn cint cwdom wbr isfin32i
      cv wn 3ad2ant1 wi isf32lem11 3exp2 3imp mt3d ) BDEZFBGCHZASZICJUICJKAFLZM
      CNZOUKEZFBPQZUGUHUMTUJBRUAUGUHUJULTZUMUBUGUHUJUNUMCBDAUCUDUEUF $.
  $}

  ${
    $d a b c f g x y A $.  $d a b f y F $.  $d a b c x y V $.  $d a b c X $.
    $d y G $.
    $( Lemma for ~ compsscnv .  (Contributed by Mario Carneiro,
       17-May-2015.) $)
    compsscnvlem $p |- ( ( x e. ~P A /\ y = ( A \ x ) ) ->
      ( y e. ~P A /\ x = ( A \ y ) ) ) $=
      ( cv cpw wcel cdif wa wss simpr difss syl6eqss selpw sylibr difeq2d elpwi
      wceq adantr dfss4 sylib eqtr2d jca ) ADZCEZFZBDZCUCGZQZHZUFUDFZUCCUFGZQUI
      UFCIUJUIUFUGCUEUHJZCUCKLBCMNUIUKCUGGZUCUIUFUGCULOUIUCCIZUMUCQUEUNUHUCCPRU
      CCSTUAUB $.

    compss.a $e |- F = ( x e. ~P A |-> ( A \ x ) ) $.
    $( Complementation on a power set lattice is an involution.  (Contributed
       by Mario Carneiro, 17-May-2015.) $)
    compsscnv $p |- `' F = F $=
      ( vy cv cpw wcel cdif wceq wa copab ccnv cnvopab cmpt difeq2 compsscnvlem
      cbvmptv df-mpt 3eqtr4i 3eqtri cnveqi impbii opabbii ) EFZBGZHAFZBUEIZJKZE
      ALZMUIAELZCMCUIEANCUJCAUFBUGIZOZEUFUHOUJDAEUFULUHUGUEBPREAUFUHSUAUBUMUGUF
      HUEULJKZAELCUKAEUFULSDUIUNAEUIUNEABQAEBQUCUDTT $.

    $( Lemma for ~ isfin3-4 .  (Contributed by Stefan O'Rear, 7-Nov-2014.) $)
    isf34lem1 $p |- ( ( A e. V /\ X C_ A ) -> ( F ` X ) = ( A \ X ) ) $=
      ( va wcel wss wa cpw cdif cvv cfv wceq elpw2g biimpar cv difeq2 cmpt
      difexg adantr cbvmptv eqtri fvmptg syl2anc ) BDHZEBIZJEBKZHZBELZMHZECNUKO
      UGUJUHEBDPQUGULUHBEDUAUBGEBGRZLZUKUIMCUMEBSCAUIBARZLZTGUIUNTFAGUIUPUNUOUM
      BSUCUDUEUF $.

    $( Lemma for ~ isfin3-4 .  (Contributed by Stefan O'Rear, 7-Nov-2014.) $)
    isf34lem2 $p |- ( A e. V -> F : ~P A --> ~P A ) $=
      ( wcel cpw cv cdif wss difss elpw2g mpbiri adantr fmptd ) BDFZABGZBAHZIZQ
      CPSQFZRQFPTSBJBRKSBDLMNEO $.

    $( Complementation is an antiautomorphism on power set lattices.
       (Contributed by Stefan O'Rear, 4-Nov-2014.)  (Proof shortened by Mario
       Carneiro, 17-May-2015.) $)
    compssiso $p |- ( A e. V -> F Isom [C.] , `' [C.] ( ~P A , ~P A ) ) $=
      ( va vb wcel cv crpss wbr cfv ccnv wb wral wfn cdif wpss wss wceq cpw cvv
      wf1o wiso difexg ralrimivw syl compsscnv fneq1i sylibr dff1o4 sylanbrc wa
      fnmpt elpwi ad2antll isf34lem1 ad2antrl psseq12d difss pssdifcom1 sylancl
      syldan dfss4 psseq1d 3bitrrd brrpss fvex 3bitr4g relrpss relbrcnv syl6bbr
      sylib vex ralrimivva df-isom ) BDHZBUAZVRCUCZFIZGIZJKZVTCLZWACLZJMZKZNZGV
      ROFVROVRVRJWECUDVQCVRPZCMZVRPZVSVQBAIZQZUBHZAVROWHVQWMAVRBWKDUEUFAVRWLCUB
      EUNUGZVQWHWJWNVRWICABCEUHUIUJVRVRCUKULVQWGFGVRVRVQVTVRHZWAVRHZUMZUMZWBWDW
      CJKZWFWRVTWARZWDWCRZWBWSWRXABWAQZBVTQZRZBXCQZWARZWTWRWDXBWCXCVQWQWABSZWDX
      BTWPXGVQWOWABUOUPZABCDWAEUQVCVQWQVTBSZWCXCTWOXIVQWPVTBUOURZABCDVTEUQVCUSW
      RXGXCBSXDXFNXHBVTUTWAXCBVAVBWRXEVTWAWRXIXEVTTXJVTBVDVMVEVFVTWAGVNVGWDWCVT
      CVHVGVIWCWDJVJVKVLVOFGVRVRJWECVPUL $.

    $( Lemma for ~ isfin3-4 .  (Contributed by Stefan O'Rear, 7-Nov-2014.)
       (Revised by Mario Carneiro, 17-May-2015.) $)
    isf34lem3 $p |- ( ( A e. V /\ X C_ ~P A ) -> ( F " ( F " X ) ) = X ) $=
      ( wcel cpw wss cima ccnv compsscnv imaeq1i wceq crpss wiso wf1o compssiso
      wa wf1 isof1o f1of1 3syl f1imacnv sylan syl5eqr ) BDGZEBHZIZSCCEJZJCKZUJJ
      ZEUKCUJABCFLMUGUHUHCTZUIULENUGUHUHOOKZCPUHUHCQUMABCDFRUHUHOUNCUAUHUHCUBUC
      UHUHECUDUEUF $.

    $( Express image under of the complementation isomorphism.  (Contributed by
       Stefan O'Rear, 5-Nov-2014.)  (Proof shortened by Mario Carneiro,
       17-May-2015.) $)
    compss $p |- ( F " G ) = { y e. ~P A | ( A \ y ) e. G } $=
      ( ccnv cima cv cdif wcel crab compsscnv imaeq1i cmpt difeq2 cbvmptv eqtri
      cpw mptpreima eqtr3i ) DGZEHDEHCBIZJZEKBCSZLUBDEACDFMNBUEUDEDDAUECAIZJZOB
      UEUDOFABUEUGUDUFUCCPQRTUA $.

    $( Lemma for ~ isfin3-4 .  (Contributed by Stefan O'Rear, 7-Nov-2014.)
       (Revised by Mario Carneiro, 17-May-2015.) $)
    isf34lem4 $p |- ( ( A e. V /\ ( X C_ ~P A /\ X =/= (/) ) ) ->
        ( F ` U. X ) = |^| ( F " X ) ) $=
      ( va vb vc wcel wss wa cv cdif wceq wn wi ad2antrr simpr ex cpw cuni crab
      c0 wne cfv cint cima sspwuni isf34lem1 sylan2b adantrr wral simprl eldifd
      simplrr elunii syl2anc mt3d expr ralrimiva n0 sselda elpwid dfss4 eqeltrd
      wex sylib difss elpw2g mpbiri difeq2 eleq1d eleq2 imbi12d syl mpid eldifi
      rspcv syl6 exlimdv syl5bi impr eluni adantlrr adantrl elndif ad2antrl jca
      wrex annim notbid rspcev rexnal con2d jcad impbid eldif vex 3bitr4g eqrdv
      elintrab eqtrd compss inteqi syl6eqr ) BDJZEBUAZKZEUDUEZLZLZEUBZCUFZBGMZN
      ZEJZGXHUCZUGZCEUHZUGXLXNBXMNZXSXGXIXNYAOZXJXIXGXMBKYBEBUIABCDXMFUJUKULXLH
      YAXSXLHMZBJZYCXMJZPZLZXQYCXOJZQZGXHUMZYCYAJYCXSJXLYGYJXLYGYJXLYGLZYIGXHYK
      XOXHJZXQYHYKYLXQLZLZYHYEXLYDYFYMUPYNYHPZYEYNYOLZYCXPJXQYEYPYCBXOYKYDYMYOX
      LYDYFUNRYNYOSUOYKYLXQYOUPYCXPEUQURTUSUTVATXLYJYDYFXGXIXJYJYDQZXJIMZEJZIVG
      XGXILZYQIEVBYTYSYQIYTYSYQYTYSLZYJYCBYRNZJZYDUUAYJBUUBNZEJZUUCUUAUUDYREUUA
      YRBKUUDYROUUAYRBYTEXHYRXGXISVCVDYRBVEVHYTYSSVFZUUAUUBXHJZYJUUEUUCQZQXGUUG
      XIYSXGUUGUUBBKBYRVIUUBBDVJVKZRYIUUHGUUBXHXOUUBOZXQUUEYHUUCUUJXPUUDEXOUUBB
      VLVMXOUUBYCVNVOZVSVPVQYCBYRVRVTTWAWBWCXLYEYJYEYCYRJZYSLZIVGXLYJPZIYCEWDXL
      UUMUUNIXLUUMUUNXLUUMLZYIPZGXHWJZUUNUUOUUGUUHPZUUQXGUUGXKUUMUUIRUUOUUEUUCP
      ZLUURUUOUUEUUSXLYSUUEUULXGXIYSUUEXJUUFWEWFUULUUSXLYSYCYRBWGWHWIUUEUUCWKVH
      UUPUURGUUBXHUUJYIUUHUUKWLWMURYIGXHWNVHTWAWBWOWPWQYCBXMWRXQGYCXHHWSXBWTXAX
      CXTXRAGBCEFXDXEXF $.

    $( Lemma for ~ isfin3-4 .  (Contributed by Stefan O'Rear, 7-Nov-2014.)
       (Revised by Mario Carneiro, 17-May-2015.) $)
    isf34lem5 $p |- ( ( A e. V /\ ( X C_ ~P A /\ X =/= (/) ) ) ->
        ( F ` |^| X ) = U. ( F " X ) ) $=
      ( wcel wss c0 wne wa cima cfv cint wceq adantr syl sylib ccnv crpss eqtrd
      cpw cuni crn imassrn isf34lem2 frn syl5ss cdm cin simprl sseqtr4d sseqin2
      wf fdm simprr eqnetrd imadisj necon3bii sylibr isf34lem4 syldan isf34lem3
      adantrr inteqd fveq2d compsscnv fveq1i wf1o wiso compssiso isof1o sspwuni
      jca wb elpw2g mpbird f1ocnvfv1 syl2anc syl5eqr eqtr3d ) BDGZEBUBZHZEIJZKZ
      KZCELZUCZCMZCMZENZCMWIWGWJWLCWGWJCWHLZNZWLWBWFWHWCHZWHIJZKWJWNOWGWOWPWGWH
      CUDZWCCEUEWGWCWCCUNZWQWCHWBWRWFABCDFUFPZWCWCCUGQUHZWGCUIZEUJZIJWPWGXBEIWG
      EXAHXBEOWGEWCXAWBWDWEUKWGWRXAWCOWSWCWCCUOQULEXAUMRWBWDWEUPUQWHIXBICEURUSU
      TVNABCDWHFVAVBWGWMEWBWDWMEOWEABCDEFVCVDVEUAVFWGWKWJCSZMZWIWJXCCABCFVGVHWG
      WCWCCVIZWIWCGZXDWIOWBXEWFWBWCWCTTSZCVJXEABCDFVKWCWCTXGCVLQPWGXFWIBHZWGWOX
      HWTWHBVMRWBXFXHVOWFWIBDVPPVQWCWCWICVRVSVTWA $.

    $( Lemma for ~ isfin3-4 .  (Contributed by Stefan O'Rear, 7-Nov-2014.) $)
    isf34lem7 $p |- ( ( A e. Fin3 /\ G : _om --> ~P A /\
      A. y e. _om ( G ` y ) C_ ( G ` suc y ) ) -> U. ran G e. ran G ) $=
      ( cfin3 wcel com wf cfv wss crn 3adant3 syl wceq syl2anc eqtrd c0 wne cpw
      cv csuc wral w3a cima cint wfn isf34lem2 adantr ffn imassrn wa frn syl5ss
      cuni ccom simp1 sylan cdif sscon simpr peano2 fvco3 syl2an simpll ffvelrn
      fco elpwid isf34lem1 adantll sseq12d syl5ibr ralimdva 3impia fin33i rnco2
      syl3anc inteqi 3eltr3g fnfvima wb simpl cdm cin incom adantl fdm sseqtr4d
      df-ss sylib syl5eq peano1 ne0i eqnetrd dm0rn0 necon3bii imadisj isf34lem5
      mp1i sylibr syl12anc isf34lem3 unieqd eleq12d mpbid ) CGHZICUAZEJZBUBZEKZ
      XJUCZEKZLZBIUDZUEZDEMZUFZUGZDKZDXRUFZHZXQUPZXQHZXPDXHUHZXRXHLZXSXRHYBXPXH
      XHDJZYEXGXIYGXOXGYGXIACDGFUIZUJZNXHXHDUKOXPXRDMZXHDXQULZXGXIYJXHLZXOXGXIU
      MZYGYLYIXHXHDUNOZNUOXPDEUQZMZUGZYPXSXRXPXGIXHYOJZXLYOKZXJYOKZLZBIUDZYQYPH
      XGXIXOURXGXIYRXOXGYGXIYRYHIXHXHDEVHUSNXGXIXOUUBYMXNUUABIXNUUAYMXJIHZUMZCX
      MUTZCXKUTZLXKXMCVAUUDYSUUEYTUUFUUDYSXMDKZUUEYMXIXLIHZYSUUGPUUCXGXIVBZXJVC
      ZIXHXLDEVDVEUUDXGXMCLUUGUUEPXGXIUUCVFZUUDXMCYMXIUUHXMXHHUUCUUIUUJIXHXLEVG
      VEVIACDGXMFVJQRUUDYTXKDKZUUFXIUUCYTUULPXGIXHXJDEVDVKUUDXGXKCLUULUUFPUUKUU
      DXKCXIUUCXKXHHXGIXHXJEVGVKVIACDGXKFVJQRVLVMVNVOBCYOVPVRYPXRDEVQZVSUUMVTXH
      XRDXSWAVRXGXIYBYDWBXOYMXTYCYAXQYMXTYAUPZYCYMXGYFXRSTZXTUUNPXGXIWCZYMXRYJX
      HYKYNUOYMDWDZXQWEZSTUUOYMUURXQSYMUURXQUUQWEZXQUUQXQWFYMXQUUQLUUSXQPYMXQXH
      UUQXIXQXHLZXGIXHEUNWGZYMYGUUQXHPYIXHXHDWHOWIXQUUQWJWKWLYMEWDZSTXQSTYMUVBI
      SXIUVBIPXGIXHEWHWGSIHISTYMWMISWNWTWOUVBSXQSEWPWQWKWOXRSUURSDXQWRWQXAACDGX
      RFWSXBYMYAXQYMXGUUTYAXQPUUPUVAACDGXQFXCQZXDRUVCXENXF $.

    $( Lemma for ~ isfin3-4 .  (Contributed by Stefan O'Rear, 7-Nov-2014.)
       (Revised by Mario Carneiro, 17-May-2015.) $)
    isf34lem6 $p |- ( A e. V -> ( A e. Fin3 <-> A. f e. ( ~P A ^m _om )
      ( A. y e. _om ( f ` y ) C_ ( f ` suc y ) -> U. ran f e. ran f ) ) ) $=
      ( vg wcel cfv wss com wral crn cvv syl syl2anc wceq c0 wne cfin3 csuc cpw
      cv cuni wi cmap co wf elmapi isf34lem7 3expia ralrimiva cint ccom elmapex
      sylan2 cima simpld pwexb sylibr isf34lem2 fco wa wb elmapg mpbird sseq12d
      fveq1 ralbidv rneq rnco2 syl6eq unieqd eleq12d imbi12d rspccv syl5 adantr
      cdif sscon ffvelrnda elpwid isf34lem1 peano2 ffvelrn syl2an syl5ibr fvco3
      sylan sylibrd ralimdva wfn ffn imassrn frn fnfvima cdm cin incom sseqtr4d
      syl5ss fdm df-ss syl5eq peano1 ne0i mp1i eqnetrd dm0rn0 necon3bii imadisj
      sylib isf34lem4 syl12anc isf34lem3 inteqd eqtrd imim12d ralrimiv isfin3-3
      sylibd sylcom impbid2 ) CFIZCUAIZBUDZDUDZJZYGUBZYHJZKZBLMZYHNZUEZYNIZUFZD
      CUCZLUGUHZMZYFYQDYSYHYSIYFLYRYHUIZYQYHYRLUJYFUUAYMYPABCEYHGUKULUQUMYTYFYE
      YJHUDZJZYGUUBJZKZBLMZUUBNZUNZUUGIZUFZHYSMYTUUJHYSYTUUBYSIZYGEUUBUOZJZYJUU
      LJZKZBLMZEUUGURZUEZUUQIZUFZUUJUUKUULYSIZYTUUTUUKUVALYRUULUIZUUKYRYREUIZLY
      RUUBUIZUVBUUKCOIZUVCUUKYROIZUVEUUKUVFLOIZUUBYRLUPZUSCUTVAZACEOGVBPZUUBYRL
      UJZLYRYREUUBVCQUUKUVFUVGVDUVAUVBVEUVHYRLUULOOVFPVGYQUUTDUULYSYHUULRZYMUUP
      YPUUSUVLYLUUOBLUVLYIUUMYKUUNYGYHUULVIYJYHUULVIVHVJUVLYOUURYNUUQUVLYNUUQUV
      LYNUULNUUQYHUULVKEUUBVLVMZVNUVMVOVPVQVRUUKUUFUUPUUSUUIUUKUUEUUOBLUUKYGLIZ
      VDZUUEUUDEJZUUCEJZKZUUOUUEUVRUVOCUUDVTZCUUCVTZKUUCUUDCWAUVOUVPUVSUVQUVTUV
      OUVEUUDCKUVPUVSRUUKUVEUVNUVIVSZUVOUUDCUUKLYRYGUUBUVKWBWCACEOUUDGWDQUVOUVE
      UUCCKUVQUVTRUWAUVOUUCCUUKUVDYJLIZUUCYRIUVNUVKYGWEZLYRYJUUBWFWGWCACEOUUCGW
      DQVHWHUVOUUMUVPUUNUVQUUKUVDUVNUUMUVPRUVKLYRYGEUUBWIWJUUKUVDUWBUUNUVQRUVNU
      VKUWCLYRYJEUUBWIWGVHWKWLUUKUUSUUREJZEUUQURZIZUUIUUKEYRWMZUUQYRKZUUSUWFUFU
      UKUVCUWGUVJYRYREWNPUUKUUQENZYREUUGWOUUKUVCUWIYRKUVJYRYREWPPXBZUWGUWHUUSUW
      FYRUUQEUURWQULQUUKUWDUUHUWEUUGUUKUWDUWEUNZUUHUUKUVEUWHUUQSTZUWDUWKRUVIUWJ
      UUKEWRZUUGWSZSTUWLUUKUWNUUGSUUKUWNUUGUWMWSZUUGUWMUUGWTUUKUUGUWMKUWOUUGRUU
      KUUGYRUWMUUKUVDUUGYRKZUVKLYRUUBWPPZUUKUVCUWMYRRUVJYRYREXCPXAUUGUWMXDXMXEU
      UKUUBWRZSTUUGSTUUKUWRLSUUKUVDUWRLRUVKLYRUUBXCPSLILSTUUKXFLSXGXHXIUWRSUUGS
      UUBXJXKXMXIUUQSUWNSEUUGXLXKVAACEOUUQGXNXOUUKUWEUUGUUKUVEUWPUWEUUGRUVIUWQA
      CEOUUGGXPQZXQXRUWSVOYBXSYCXTBCHFYAWHYD $.
  $}

  ${
    $d f x y A $.  $d x G $.  $d x y V $.
    $( Inference from ~ isfin3-4 .  (Contributed by Mario Carneiro,
       17-May-2015.) $)
    fin34i $p |- ( ( A e. Fin3 /\ G : _om --> ~P A /\
      A. x e. _om ( G ` x ) C_ ( G ` suc x ) ) -> U. ran G e. ran G ) $=
      ( vy cpw cv cdif cmpt eqid isf34lem7 ) DABDBEBDFGHZCKIJ $.

    $( Weakly Dedekind-infinite sets are exactly those with an ` _om ` -indexed
       ascending chain of subsets.  (Contributed by Stefan O'Rear, 7-Nov-2014.)
       (Proof shortened by Mario Carneiro, 17-May-2015.) $)
    isfin3-4 $p |- ( A e. V -> ( A e. Fin3 <-> A. f e. ( ~P A ^m _om )
      ( A. x e. _om ( f ` x ) C_ ( f ` suc x ) -> U. ran f e. ran f ) ) ) $=
      ( vy cpw cv cdif cmpt eqid isf34lem6 ) EABCEBFBEGHIZDLJK $.
  $}

  ${
    $d a b c d f g x y A $.  $d f x B $.  $d x V $.
    $( Every I-finite set is Ia-finite.  (Contributed by Stefan O'Rear,
       30-Oct-2014.)  (Revised by Mario Carneiro, 17-May-2015.) $)
    fin11a $p |- ( A e. Fin -> A e. Fin1a ) $=
      ( vx cfn wcel cfin1a cv cdif wo cpw wral wa wss elpwi ssfi orcd ralrimiva
      sylan2 isfin1a mpbird ) ACDZAEDBFZCDZAUAGCDZHZBAIZJTUDBUETUAUEDZKUBUCUFTU
      AALUBUAAMAUANQOPBACRS $.

    $( Ia-finiteness is a cardinal property.  (Contributed by Mario Carneiro,
       18-May-2015.) $)
    enfin1ai $p |- ( A ~~ B -> ( A e. Fin1a -> B e. Fin1a ) ) $=
      ( vf vx cen wbr cv cfin1a wcel wa cfn cdif wo wss ad2antrr syl wb cvv vex
      cima wf1o wex ensym bren sylib cpw wral elpwi simplr crn imassrn f1of frn
      wi wf syl5ss fin1ai syl2anc wf1 f1of1 a1i f1imaeng syl3anc enfi ccnv wfun
      simpr wceq df-f1 simprbi imadif 3syl wfo f1ofo foima difeq1d eqtrd difssd
      adantr dmfex sylancr difexg orbi12d mpbid sylan2 ralrimiva isfin1a mpbird
      eqbrtrrd ex exlimiv ) ABEFZBACGZUAZCUBZAHIZBHIZUNZWLBAEFWOABUCBACUDUEWNWR
      CWNWPWQWNWPJZWQDGZKIZBWTLZKIZMZDBUFZUGZWSXDDXEWTXEIWSWTBNZXDWTBUHWSXGJZWM
      WTTZKIZAXILZKIZMZXDXHWPXIANXMWNWPXGUIXHXIWMUJZAWMWTUKXHBAWMUOZXNANWNXOWPX
      GBAWMULZOBAWMUMPUPAXIUQURXHXJXAXLXCXHXIWTEFZXJXAQXHBAWMUSZXGWTRIZXQWNXRWP
      XGBAWMUTOZWSXGVGXSXHDSVABAWTWMRVBVCXIWTVDPXHXKXBEFXLXCQXHWMXBTZXKXBEXHYAW
      MBTZXILZXKXHXRWMVEVFZYAYCVHXTXRXOYDBAWMVIVJBWTWMVKVLXHYBAXIWNYBAVHZWPXGWN
      BAWMVMYEBAWMVNBAWMVOPOVPVQXHXRXBBNXBRIZYAXBEFXTXHBWTVRXHBRIZYFWSYGXGWSWMR
      IXOYGCSWNXOWPXPVSBARWMVTWAZVSBWTRWBPBAXBWMRVBVCWIXKXBVDPWCWDWEWFWSYGWQXFQ
      YHDBRWGPWHWJWKP $.

    $( A set is finite in the usual sense iff the power set of its power set is
       Dedekind finite.  (Contributed by Stefan O'Rear, 3-Nov-2014.)  (Revised
       by Mario Carneiro, 17-May-2015.) $)
    isfin1-2 $p |- ( A e. Fin <-> ~P ~P A e. Fin4 ) $=
      ( cfn wcel cvv cpw cfin4 elex pwexb bitri sylibr com cdom wbr ominf domfi
      wn pwfi expcom syl5bi mtoi fineqvlem ex impbid2 con2bid wb isfin4-2 sylbi
      bitr4d pm5.21nii ) ABCZADCZAEZEZFCZABGUNUMDCZUKUMFGUKULDCUOAHULHIZJUKUJKU
      MLMZPZUNUKUQUJUKUQUJPZUQUJKBCZNUJUMBCZUQUTUJULBCVAAQULQIVAUQUTUMKORSTUKUS
      UQADUAUBUCUDUKUOUNURUEUPUMDUFUGUHUI $.

    $( A set is I-finite iff every system of subsets contains a maximal subset.
       Definition I of [Levy58] p. 2.  (Contributed by Stefan O'Rear,
       4-Nov-2014.)  (Proof shortened by Mario Carneiro, 17-May-2015.) $)
    isfin1-3 $p |- ( A e. V -> ( A e. Fin <-> `' [C.] Fr ~P A ) ) $=
      ( vc vb vd wcel cfn crpss wpo sylancr cv wbr wn cin wrex cvv wss wa wne
      c0 cpw ccnv wfr porpss cnvpo mpbi pwfi biimpi frfi wral inss2 pwexg ssexg
      0fin 0elpw elin mpbir2an ne0ii mpanr12 sylan ex inss1 simpl sseldi ralnex
      fri csn cun sseli adantr snfi sylancl simprbi elpwid snssi ad2antrl unssd
      unfi vex snex unex elpw sylibr elind wpss disjsn biimpri disjpss ad2antll
      wceq snnz brcnv brrpss bitri breq1 rspcev syl2anc expr con1d syl5bi ssrdv
      impancom ssfi rexlimiva syl6 impbid2 ) ABFZAGFZAUAZHUBZUCZXHXIXJIZXIGFZXK
      XIHIXLXIUDXIHUEUFXHXMAUGUHXIXJUIJXGXKCKZDKZXJLZMCGXINZUJZDXQOZXHXGXKXSXGX
      QPFZXKXSXGXQXIQZXIPFXTGXIUKZABULXQXIPUMJXTXKRYAXQTSXSYBTXQTXQFTGFTXIFUNAU
      OTGXIUPUQURDCXIXQPXJVFUSUTVAXRXHDXQXOXQFZXRRZXOGFZAXOQXHYDXQGXOGXIVBZYCXR
      VCVDYDEAXOYCEKZAFZXRYGXOFZXRXPCXQOZMYCYHRZYIXPCXQVEYKYIYJYCYHYIMZYJYCYHYL
      RZRZXOYGVGZVHZXQFYPXOXJLZYJYNGXIYPYNYEYOGFYPGFYCYEYMXQGXOYFVIVJYGVKXOYOVR
      VLYNYPAQYPXIFYNXOYOAYCXOAQYMYCXOAYCYEXOXIFXOGXIUPVMVNVJYHYOAQYCYLYGAVOVPV
      QYPAXOYODVSZYGVTWAZWBWCWDYNXOYPWEZYQYLYTYCYHYLXOYONTWJZYOTSYTUUAYLXOYGWFW
      GYGEVSWKXOYOWHVLWIYQXOYPHLYTYPXOHYSYRWLXOYPYSWMWNWCXPYQCYPXQXNYPXOXJWOWPW
      QWRWSWTXBXAXOAXCWQXDXEXF $.

    $( A set is I-finite iff every system of subsets contains a minimal subset.
       (Contributed by Stefan O'Rear, 4-Nov-2014.)  (Revised by Mario Carneiro,
       17-May-2015.) $)
    isfin1-4 $p |- ( A e. V -> ( A e. Fin <-> [C.] Fr ~P A ) ) $=
      ( vx wcel cfn cpw crpss ccnv isfin1-3 cv cdif cmpt wiso wb eqid compssiso
      wfr isofr syl bitr4d ) ABDZAEDAFZGHZQZUBGQZABIUAUBUBGUCCUBACJKLZMUEUDNCAU
      FBUFOPUBUBGUCUFRST $.

    $( Compact quantifier-free version of the standard definition ~ df-fin .
       (Contributed by Stefan O'Rear, 6-Jan-2015.) $)
    dffin1-5 $p |- Fin = ( ~~ " _om ) $=
      ( vx vy cen wbr com wrex cab cfn cima ensymb rexbii df-fin dfima2 3eqtr4i
      cv abbii ) AOZBOZCDZBEFZAGRQCDZBEFZAGHCEITUBASUABEQRJKPABLBACEMN $.

    $( Every II-finite set (every chain of subsets has a maximal element) is
       III-finite (has no denumerable collection of subsets).  The proof here
       is the only one I could find, from
       ~ http://matwbn.icm.edu.pl/ksiazki/fm/fm6/fm619.pdf p.94 (writeup by
       Tarski, credited to Kuratowski).  Translated into English and modern
       notation, the proof proceeds as follows (variables renamed for
       uniqueness):

       Suppose for a contradiction that ` A ` is a set which is II-finite but
       not III-finite.

       For any countable sequence of distinct subsets ` T ` of ` A ` , we can
       form a decreasing sequence of nonempty subsets ` ( U `` T ) ` by taking
       finite intersections of initial segments of ` T ` while skipping over
       any element of ` T ` which would cause the intersection to be empty.

       By II-finiteness (as ~ fin2i2 ) this sequence contains its intersection,
       call it ` Y ` ; since by induction every subset in the sequence ` U ` is
       nonempty, the intersection must be nonempty.

       Suppose that an element ` X ` of ` T ` has nonempty intersection with
       ` Y ` .  Thus, said element has a nonempty intersection with the
       corresponding element of ` U ` , therefore it was used in the
       construction of ` U ` and all further elements of ` U ` are subsets of
       ` X ` , thus ` X ` contains the ` Y ` .  That is, all elements of ` X `
       either contain ` Y ` or are disjoint from it.

       Since there are only two cases, there must exist an infinite subset of
       ` T ` which uniformly either contain ` Y ` or are disjoint from it.  In
       the former case we can create an infinite set by subtracting ` Y ` from
       each element.  In either case, call the result ` Z ` ; this is an
       infinite set of subsets of ` A ` , each of which is disjoint from ` Y `
       and contained in the union of ` T ` ; the union of ` Z ` is strictly
       contained in the union of ` T ` , because only the latter is a superset
       of the nonempty set ` Y ` .

       The preceding four steps may be iterated a countable number of times
       starting from the assumed denumerable set of subsets to produce a
       denumerable sequence ` B ` of the ` T ` sets from each stage.  Great
       caution is required to avoid ~ ax-dc here; in particular an effective
       version of the pigeonhole principle (for aleph-null pigeons and 2 holes)
       is required.  Since a denumerable set of subsets is assumed to exist, we
       can conclude ` _om e. _V ` without the axiom.

       This ` B ` sequence is strictly decreasing, thus it has no minimum,
       contradicting the first assumption.  (Contributed by Stefan O'Rear,
       2-Nov-2014.)  (Proof shortened by Mario Carneiro, 17-May-2015.) $)
    fin23 $p |- ( A e. Fin2 -> A e. Fin3 ) $=
      ( vx vg va cfin3 isf33lem fin23lem40 ) BACEDBCDFG $.

    $( Every III-finite set is IV-finite.  (Contributed by Stefan O'Rear,
       30-Oct-2014.) $)
    fin34 $p |- ( A e. Fin3 -> A e. Fin4 ) $=
      ( cfin3 wcel cfin4 com cdom wbr wn cpw isfin3 isfin4-2 ibi csdm brrelex2i
      cvv reldom canth2g syl domsdomtr mpdan sdomdom nsyl sylbi mpbird ) ABCZAD
      CEAFGZHZUEAIZDCZUGAJUIEUHFGZUFUIUJHUHDKLUFEUHMGZUJUFAUHMGZUKUFAOCULEAFPNA
      OQREAUHSTEUHUARUBUCABKUD $.

    $( Alternate definition of V-finite which emphasizes the idempotent
       behavior of V-infinite sets.  (Contributed by Stefan O'Rear,
       30-Oct-2014.)  (Revised by Mario Carneiro, 17-May-2015.) $)
    isfin5-2 $p |- ( A e. V ->
                     ( A e. Fin5 <-> -. ( A =/= (/) /\ A ~~ ( A +c A ) ) ) ) $=
      ( wcel c0 wceq ccda co csdm wbr wo wne wn cen cfin5 wa wb nne bicomi cdom
      a1i cdadom3 anidms brsdom baib syl orbi12d isfin5 ianor 3bitr4g ) ABCZADE
      ZAAAFGZHIZJADKZLZAULMIZLZJANCUNUPOLUJUKUOUMUQUKUOPUJUOUKADQRTUJAULSIZUMUQ
      PUJURAABBUAUBUMURUQAULUCUDUEUFAUGUNUPUHUI $.

    $( Every IV-finite set is V-finite: if we can pack two copies of the set
       into itself, we can certainly leave space.  (Contributed by Stefan
       O'Rear, 30-Oct-2014.)  (Proof shortened by Mario Carneiro,
       18-May-2015.) $)
    fin45 $p |- ( A e. Fin4 -> A e. Fin5 ) $=
      ( cfin4 wcel cfin5 c0 wne ccda co cen wbr wa c1o csdm cdom cvv adantl syl
      wn wb mpbird isfin4-3 simpl relen brrelexi 0sdomg 0sdom1dom sylib cdadom2
      domen2 domnsym con2i sylbi isfin5-2 ) ABCZADCAEFZAAAGHZIJZKZRZUNAALGHZMJZ
      USAUAURVAURUTANJZVARURVBUTUPNJZURLANJZVCUREAMJZVDURVEUOUOUQUBURAOCZVEUOSU
      QVFUOAUPIUCUDPAOUEQTAUFUGLAAUHQUQVBVCSUOAUPUTUIPTUTAUJQUKULABUMT $.

    $( Every V-finite set is VI-finite because multiplication dominates
       addition for cardinals.  (Contributed by Stefan O'Rear, 29-Oct-2014.)
       (Revised by Mario Carneiro, 17-May-2015.) $)
    fin56 $p |- ( A e. Fin5 -> A e. Fin6 ) $=
      ( c0 wceq ccda co csdm wbr wo c2o cxp cfin5 wcel c1o cen cdom cfn cvv com
      cfin6 con0 orc sdom2en01 sylibr orcd wn wb cin onfin2 eqsstri 2onn sselii
      inss2 relsdom brrelexi fidomtri sylancr wa xp2cda adantr xpdom2g eqbrtrrd
      syl sylan sdomdomtr syldan ex sylbird orrd jaoi isfin5 isfin6 3imtr4i ) A
      BCZAAADEZFGZHAIFGZAAAJZFGZHZAKLASLVMVSVOVMVPVRVMVMAMNGZHVPVMVTUAAUBUCUDVO
      VPVRVOVPUEZIAOGZVRVOIPLAQLZWBWAUFRPIRTPUGPUHTPULUIUJUKAVNFUMUNZIAQUOUPVOW
      BVRVOWBVNVQOGVRVOWBUQAIJZVNVQOVOWEVNCZWBVOWCWFWDAQURVBUSVOWCWBWEVQOGWDIAA
      QUTVCVAAVNVQVDVEVFVGVHVIAVJAVKVL $.

    $( Every I-finite set is VII-finite.  (Contributed by Mario Carneiro,
       17-May-2015.) $)
    fin17 $p |- ( A e. Fin -> A e. Fin7 ) $=
      ( vb cfn wcel cfin7 cv cen wbr con0 com cdif wrex wn wa wi enfi sylan9bbr
      eldif onfin biimpd con3d impancom sylbi rexlimiv con2i isfin7 mpbird ) AC
      DZAEDABFZGHZBIJKZLZMULUHUJUHMZBUKUIUKDUIIDZUIJDZMZNUJUMOUIIJRUNUJUPUMUNUJ
      NZUHUOUQUHUOUJUHUICDUNUOAUIPUISQTUAUBUCUDUEBACUFUG $.

    $( Every VI-finite set is VII-finite.  (Contributed by Stefan O'Rear,
       29-Oct-2014.)  (Revised by Mario Carneiro, 17-May-2015.) $)
    fin67 $p |- ( A e. Fin6 -> A e. Fin7 ) $=
      ( vb wcel c2o csdm wbr cfn cdom com wss sylancr syl cen con0 wn ensym cvv
      wa word wb cfin6 cxp wo cfin7 isfin6 2onn ssid ssnnfi mp2an sdomdom domfi
      fin17 cv cdif wrex sdomnen cdm eldifi isnumi syl2an vex eldif ordom eloni
      ccrd ordtri1 biimpar sylbi ssdomg domen2 syl5ibr impcom infxpidm2 syl2anc
      mpsyl rexlimiva nsyl relsdom brrelexi isfin7 mpbird jaoi ) AUACADEFZAAAUB
      ZEFZUCAUDCZAUEWCWFWEWCAGCZWFWCDGCZADHFWGDICDDJWHUFDUGDDUHUIADUJDAUKKAULLW
      EWFABUMZMFZBNIUNZUOZOZWEAWDMFZWLAWDUPWJWNBWKWIWKCZWJRZWDAMFZWNWPAVEUQCZIA
      HFZWQWOWINCZWIAMFWRWJWINIURAWIPWIAUSUTWJWOWSWOWSWJIWIHFZWIQCWOIWIJZXABVAW
      OWTWIICOZRXBWINIVBWTXBXCWTISWISXBXCTVCWIVDIWIVFKVGVHIWIQVIVOAWIIVJVKVLAVM
      VNWDAPLVPVQWEAQCWFWMTAWDEVRVSBAQVTLWAWBVH $.
  $}

  ${
    $d x A $.
    $( A set is VII-finite iff it is non-well-orderable or finite.
       (Contributed by Mario Carneiro, 17-May-2015.) $)
    isfin7-2 $p |- ( A e. V -> ( A e. Fin7 <->
      ( A e. dom card -> A e. Fin ) ) ) $=
      ( vx wcel cfin7 ccrd cdm cfn wi cv cen wbr con0 cdif wrex wn isfin7 ensym
      com wa ibi isnum2 simprl enfi onfin sylan9bbr biimprd con3d impcom eldifd
      simprr sylanr2 ex reximdv2 com12 sylbi con1d syl5com eldifi isnumi syl2an
      jca rexlimiva con3i syl5ibr fin17 a1i jad impbid2 ) ABDZAEDZAFGDZAHDZIVKA
      CJZKLZCMSNZOZPZVLVMVKVRCAEQUAVLVMVQVLVNAKLZCMOZVMPZVQICAUBWAVTVQWAVSVOCMV
      PWAVNMDZVSTVNVPDZVOTZVSWAWBVOWDVNARWAWBVOTZTZWCVOWFVNMSWAWBVOUCWEWAVNSDZP
      WEWGVMWEVMWGVOVMVNHDWBWGAVNUDVNUEUFUGUHUIUJWAWBVOUKVBULUMUNUOUPUQURVJVLVM
      VKVLPVKVJVRVQVLVOVLCVPWCWBVSVLVOVNMSUSAVNRVNAUTVAVCVDCABQVEVMVKIVJAVFVGVH
      VI $.
  $}

  $( A well-orderable set is VII-finite iff it is I-finite.  Thus, even without
     choice, on the class of well-orderable sets all eight definitions of
     finite set coincide.  (Contributed by Mario Carneiro, 18-May-2015.) $)
  fin71num $p |- ( A e. dom card -> ( A e. Fin7 <-> A e. Fin ) ) $=
    ( ccrd cdm wcel cfin7 cfn wi isfin7-2 biimt bitr4d ) ABCZDZAEDLAFDZGMAKHLMI
    J $.

  $( Class form of ~ isfin7-2 .  (Contributed by Mario Carneiro,
     17-May-2015.) $)
  dffin7-2 $p |- Fin7 = ( Fin u. ( _V \ dom card ) ) $=
    ( vx cfin7 cfn cvv ccrd cdm cdif cun cv wcel wi wn wo wb vex isfin7-2 ax-mp
    imor elun orcom eldif mpbiran orbi1i 3bitri 3bitr4i eqriv ) ABCDEFZGZHZAIZU
    GJZUJCJZKZUKLZULMZUJBJZUJUIJZUKULRUJDJZUPUMNAOZUJDPQUQULUJUHJZMUTULMUOUJCUH
    SULUTTUTUNULUTURUNUSUJDUGUAUBUCUDUEUF $.

  $( Axiom of Choice equivalent: the VII-finite sets are the same as I-finite
     sets.  (Contributed by Mario Carneiro, 18-May-2015.) $)
  dfacfin7 $p |- ( CHOICE <-> Fin7 = Fin ) $=
    ( vx cvv ccrd cdm cdif cfn wss cun wac cfin7 ssequn2 dfac10 cv finnum ssriv
    wceq mpbi eqeq1i bitr4i ssv eqss mpbiran ssundif 3bitri dffin7-2 3bitr4i )
    BCDZEZFGZFUHHZFPIJFPUHFKIUGFHZBPZBUKGZUIIUGBPULLUKUGBFUGGUKUGPAFUGAMNOFUGKQ
    RSULUKBGUMUKTUKBUAUBBUGFUCUDJUJFUERUF $.

  ${
    $d a x $.  $d a A $.  $d a b S $.
    fin1a2lem.a $e |- S = ( x e. On |-> suc x ) $.
    $( Lemma for ~ fin1a2 .  (Contributed by Stefan O'Rear, 7-Nov-2014.) $)
    fin1a2lem1 $p |- ( A e. On -> ( S ` A ) = suc A ) $=
      ( va con0 wcel csuc cfv wceq suceloni cv suceq cbvmptv eqtri fvmptg mpdan
      cmpt ) BFGBHZFGBCISJBKEBELZHZSFFCTBMCAFALZHZREFUARDAEFUCUAUBTMNOPQ $.

    $( Lemma for ~ fin1a2 .  (Contributed by Stefan O'Rear, 7-Nov-2014.) $)
    fin1a2lem2 $p |- S : On -1-1-> On $=
      ( va vb con0 wf1 wf cv cfv wceq weq wi wral csuc suceloni wcel fin1a2lem1
      fmpti wa eqeqan12d suc11 bitrd biimpd rgen2a dff13 mpbir2an ) FFBGFFBHDIZ
      BJZEIZBJZKZDELZMZEFNDFNAFFAIZOBCUOPSUNDEFUHFQZUJFQZTZULUMURULUHOZUJOZKUMU
      PUQUIUSUKUTAUHBCRAUJBCRUAUHUJUBUCUDUEDEFFBUFUG $.
  $}

  ${
    $d a x $.  $d a f y A $.  $d a b y E $.  $d a b S $.
    fin1a2lem.b $e |- E = ( x e. _om |-> ( 2o .o x ) ) $.
    $( Lemma for ~ fin1a2 .  (Contributed by Stefan O'Rear, 7-Nov-2014.) $)
    fin1a2lem3 $p |- ( A e. _om -> ( E ` A ) = ( 2o .o A ) ) $=
      ( va c2o cv comu co com oveq2 cmpt cbvmptv eqtri ovex fvmpt ) EBFEGZHIZFB
      HIJCQBFHKCAJFAGZHIZLEJRLDAEJTRSQFHKMNFBHOP $.

    $( Lemma for ~ fin1a2 .  (Contributed by Stefan O'Rear, 7-Nov-2014.) $)
    fin1a2lem4 $p |- E : _om -1-1-> _om $=
      ( va vb com cv cfv wceq wral c2o comu co wcel fin1a2lem3 con0 c0 a1i nnon
      c1o wf1 wf weq wi 2onn nnmcl mpan fmpti wa eqeqan12d wb 2on adantr adantl
      csuc 0lt1o elelsuc ax-mp df-2o eleqtrri omcan syl31anc bitrd biimpd dff13
      rgen2a mpbir2an ) FFBUAFFBUBDGZBHZEGZBHZIZDEUCZUDZEFJDFJAFFKAGZLMZBCKFNVO
      FNVPFNUEKVOUFUGUHVNDEFVHFNZVJFNZUIZVLVMVSVLKVHLMZKVJLMZIZVMVQVRVIVTVKWAAV
      HBCOAVJBCOUJVSKPNZVHPNZVJPNZQKNZWBVMUKWCVSULRVQWDVRVHSUMVRWEVQVJSUNWFVSQT
      UOZKQTNQWGNUPQTUQURUSUTRKVHVJVAVBVCVDVFDEFFBVEVG $.

    $( Lemma for ~ fin1a2 .  (Contributed by Stefan O'Rear, 7-Nov-2014.) $)
    fin1a2lem5 $p |- ( A e. _om -> ( A e. ran E <-> -. suc A e. ran E ) ) $=
      ( va com wcel c2o cv wceq wn wb ax-mp fvelrnb eqcom eqeq2d syl5bb rexbiia
      wrex bitri comu co csuc crn cfv wfn wf1 fin1a2lem4 f1fn fin1a2lem3 notbii
      nneob 3bitr4g ) BFGBHEIZUAUBZJZEFSZBUCZUOJZEFSZKBCUDZGZURVAGZKEBULVBUNCUE
      ZBJZEFSZUQCFUFZVBVFLFFCUGVGACDUHFFCUIMZEFBCNMVEUPEFVEBVDJUNFGZUPVDBOVIVDU
      OBAUNCDUJZPQRTVCUTVCVDURJZEFSZUTVGVCVLLVHEFURCNMVKUSEFVKURVDJVIUSVDUROVIV
      DUOURVJPQRTUKUM $.

    fin1a2lem.aa $e |- S = ( x e. On |-> suc x ) $.
    $( Lemma for ~ fin1a2 .  Establish that ` _om ` can be broken into two
       equipollent pieces.  (Contributed by Stefan O'Rear, 7-Nov-2014.) $)
    fin1a2lem6 $p |- ( S |` ran E ) : ran E -1-1-onto-> ( _om \ ran E ) $=
      ( va vb wf1o com con0 wf1 mp2an wceq wb wrex wcel wa eleq1 c0 ax-mp wf cv
      crn cima cres cdif wss fin1a2lem2 fin1a2lem4 f1f frn omsson syl6ss f1ores
      mp2b cfv wn csuc sseli fin1a2lem1 eqeq1d rexbiia peano2 fin1a2lem5 biimpd
      syl mpcom jca notbid anbi12d syl5ibcom rexlimiv wne c2o peano1 fin1a2lem3
      comu co om0x eqtri wfun cdm f1dm eleqtrri fvelrn eqeltrri mpbiri necon3bi
      f1fun nnsuc sylan2 anbi1d simplr adantl mpbird syl6bi com12 simprr eqcomd
      impr ex reximdv2 mpd impbii bitri wfn fvelimab eldif 3bitr4i eqriv f1oeq3
      f1fn mpbi ) CUCZBXNUDZBXNUEZHZXNIXNUFZXPHZJJBKZXNJUGZXQABEUHZIICKZIICUAZY
      AACDUIZIICUJZYDXNIJIICUKZULUMUOZJJXNBUNLXOXRMXQXSNFXOXRGUBZBUPZFUBZMZGXNO
      ZYKIPZYKXNPZUQZQZYKXOPZYKXRPYMYIURZYKMZGXNOZYQYLYTGXNYIXNPZYJYSYKUUBYIJPY
      JYSMXNJYIYHUSAYIBEUTVFVAVBUUAYQYTYQGXNUUBYSIPZYSXNPZUQZQZYTYQUUBUUCUUEUUB
      YIIPZUUCXNIYIYCYDXNIUGYEYFYGUOUSZYIVCVFUUGUUBUUEUUHUUGUUBUUEAYICDVDZVEVGV
      HYTUUCYNUUEYPYSYKIRYTUUDYOYSYKXNRVIVJVKVLYQYKYSMZGIOZUUAYPYNYKSVMUUKYOYKS
      YKSMYOSXNPSCUPZSXNUULVNSVQVRZSSIPUULUUMMVOASCDVPTVNVSVTCWAZSCWBZPUULXNPYC
      UUNYEIICWITSIUUOVOYCUUOIMYEIICWCTWDSCWELWFYKSXNRWGWHGYKWJWKYQUUJYTGIXNYQU
      UGUUJQZUUBYTQYQUUPQZUUBYTYQUUGUUJUUBUUJYQUUGQZUUBUUJUURUUFUUGQZUUBUUJYQUU
      FUUGUUJYNUUCYPUUEYKYSIRUUJYOUUDYKYSXNRVIVJWLUUSUUBUUEUUCUUEUUGWMUUGUUBUUE
      NUUFUUIWNWOWPWQWTUUQYKYSYQUUGUUJWRWSVHXAXBXCXDXEBJXFZYAYRYMNXTUUTYBJJBXLT
      YHGJXNYKBXGLYKIXNXHXIXJXOXRXNXPXKTXM $.

    $( Lemma for ~ fin1a2 .  Split a III-infinite set in two pieces.
       (Contributed by Stefan O'Rear, 7-Nov-2014.) $)
    fin1a2lem7 $p |- ( ( A e. V /\ A. y e. ~P A
      ( y e. Fin3 \/ ( A \ y ) e. Fin3 ) ) -> A e. Fin3 ) $=
      ( vf wcel cfin3 cdif com wn wfo wb cima cvv sylancr wceq cv wo wral cwdom
      cpw wbr wex c0 wne peano1 ne0i brwdomn0 mp2b wrex ccnv crn wf vex fof cdm
      dmfex cnvimass fdm syl5sseq sselpwd cres ccom wfun fin1a2lem4 f1cnv f1ofo
      syl wf1 wf1o fofun ax-mp resex cofunexg mp2an wss fores sylancl f1f mpan2
      frn foimacnv foeq3 mpbid foco fowdom cnvex imaex con2bii sylib fin1a2lem6
      isfin3-2 f1ocnv difss syl5sseqr syl2anc funcnvcnv imaeq2d fimacnv difeq1d
      imadif 3syl 3eqtr3rd difexg con2bid wa eleq1 difeq2 eleq1d orbi12d notbid
      ioran syl6bb rspcev syl12anc rexnal exlimiv sylbi con2i syl5ibr imp ) CFJ
      ZBUAZKJZCYGLZKJZUBZBCUEZUCZCKJZYMYNYFMCUDUFZNYOYMYOCMIUAZOZIUGZYMNZUHMJMU
      HUIYOYRPUJMUHUKIMCULUMYQYSIYQYKNZBYLUNZYSYQYPUOZEUPZQZYLJUUDKJZNZCUUDLZKJ
      ZNZUUAYQUUDCRYQYPRJCMYPUQZCRJZIURZCMYPUSZCMRYPVASZYQYPUTZUUDCYPUUCVBZYQUU
      JUUOCTUUMCMYPVCVLZVDVEYQMUUDUDUFZUUFYQEUOZYPUUDVFZVGZRJZUUDMUVAOZUURUUSVH
      ZUUTRJUVBUUCMUUSOZUVDMMEVMZUUCMUUSVNUVEAEGVIZMMEVJUUCMUUSVKUMZUUCMUUSVOVP
      YPUUDUULVQUUSUUTRVRVSYQUVEUUDUUCUUTOZUVCUVHYQUUDYPUUDQZUUTOZUVIYQYPVHZUUD
      UUOVTUVKCMYPVOZUUPUUDYPWAWBYQUVJUUCTZUVKUVIPYQUUCMVTZUVNUVFMMEUQUVOUVGMME
      WCMMEWEUMCMUUCYPWFWDUVJUUCUUDUUTWGVLWHUUDUUCMUUSUUTWISUVARMUUDWJSUUEUURUU
      DRJUUEUURNPUUBUUCYPUULWKWLUUDRWPVPWMWNYQMUUGUDUFZUUIYQUUSDUUCVFZUOZVGZYPU
      UGVFZVGZRJZUUGMUWAOZUVPUVSVHZUVTRJUWBMUUCLZMUVSOZUWDUVEUWEUUCUVROZUWFUVHU
      UCUWEUVQVNUWEUUCUVRVNUWGADEGHWOUUCUWEUVQWQUWEUUCUVRVKUMUWEUUCMUUSUVRWIVSZ
      UWEMUVSVOVPYPUUGUULVQUVSUVTRVRVSYQUWFUUGUWEUVTOZUWCUWHYQUUGYPUUGQZUVTOZUW
      IYQUVLUUGUUOVTUWKUVMYQCUUGUUOCUUDWRUUQWSUUGYPWAWTYQUWJUWETUWKUWIPYQYPUUBU
      WEQZQZYPUUBMQZUUDLZQUWEUWJYQUWLUWOYPYQUVLUUBUOVHUWLUWOTUVMYPXAMUUCUUBXEXF
      XBYQUWEMVTUWMUWETMUUCWRCMUWEYPWFWDYQUWOUUGYPYQUWNCUUDYQUUJUWNCTUUMCMYPXCV
      LXDXBXGUWJUWEUUGUVTWGVLWHUUGUWEMUVSUVTWISUWARMUUGWJSYQUUHUVPYQUUKUUGRJUUH
      UVPNPUUNCUUDRXHUUGRWPXFXIWHYTUUFUUIXJZBUUDYLYGUUDTZYTUUEUUHUBZNUWPUWQYKUW
      RUWQYHUUEYJUUHYGUUDKXKUWQYIUUGKYGUUDCXLXMXNXOUUEUUHXPXQXRXSYKBYLXTWNYAYBY
      CCFWPYDYE $.
  $}

  ${
    $d a b c d e f g h x y A $.  $d d e f g h B $.  $d c x V $.  $d b c d X $.
    $d e f g h x C $.
    $( Lemma for ~ fin1a2 .  Split a III-infinite set in two pieces.
       (Contributed by Stefan O'Rear, 7-Nov-2014.) $)
    fin1a2lem8 $p |- ( ( A e. V /\ A. x e. ~P A
      ( x e. Fin3 \/ ( A \ x ) e. Fin3 ) ) -> A e. Fin3 ) $=
      ( vy con0 cv csuc cmpt com c2o comu co eqid fin1a2lem7 ) DABDEDFZGHZDIJOK
      LHZCQMPMN $.

    $( Lemma for ~ fin1a2 .  In a chain of finite sets, initial segments are
       finite.  (Contributed by Stefan O'Rear, 8-Nov-2014.) $)
    fin1a2lem9 $p |- ( ( [C.] Or X /\ X C_ Fin /\ A e. _om ) ->
        { b e. X | b ~<_ A } e. Fin ) $=
      ( vc vd cfn wss com wcel cv cdom wbr con0 3ad2ant3 ccrd cfv wa wb syl2anc
      finnum crpss wor w3a csuc crab cin onfin2 inss2 peano2 sseldi breq1 elrab
      eqsstri simprr cdm simpl2 simprl sseldd syl simpl3 carddom2 mpbird cardnn
      ex sseq2d cardon nnon onsssuc sylancr bitrd sylibd syl5bi wceq wo wi ssel
      elrabi anim12d imp 3ad2antl2 sorpssi cen carden2 syl2an adantr fin23lem25
      3ad2antl1 3expa biimpd sylbid fveq2 impbid1 syl2ani dom2d mpd domfi ) BUA
      UBZBFGZAHIZUCZAUDZFIZCJZAKLZCBUEZXAKLZXEFIWSWQXBWRWSHFXAHMFUFFUGMFUHUMZAU
      IZUJNWTXAHIZXFWSWQXIWRXHNWTDEXEXADJZOPZEJZOPZHXJXEIZXJBIZXJAKLZQZWTXKXAIZ
      XDXPCXJBXCXJAKUKULWTXQXKAOPZGZXRWTXQXTWTXQQZXTXPWTXOXPUNYAXJOUOZIZAYBIZXT
      XPRYAXJFIZYCYABFXJWQWRWSXQUPWTXOXPUQURXJTZUSYAAFIYDYAHFAXGWQWRWSXQUTUJATU
      SXJAVASVBVDWSWQXTXRRWRWSXTXKAGZXRWSXSAXKAVCVEWSXKMIAMIYGXRRXJVFAVGXKAVHVI
      VJNVKVLXNWTXOXLBIZXKXMVMZXJXLVMZRZXLXEIXDCXJBVQXDCXLBVQWTXOYHQZYKWTYLQZYI
      YJYMYEXLFIZQZXJXLGXLXJGVNZYIYJVOWRWQYLYOWSWRYLYOWRXOYEYHYNBFXJVPBFXLVPVRV
      SVTWQWRYLYPWSBXJXLWAWGYOYPQZYIXJXLWBLZYJYOYIYRRZYPYEYCXLYBIYSYNYFXLTXJXLW
      CWDWEYQYRYJYEYNYPYRYJRXJXLWFWHWIWJSXJXLOWKWLVDWMWNWOXAXEWPS $.

    $( Lemma for ~ fin1a2 .  A nonempty finite union of members of a chain is a
       member of the chain.  (Contributed by Stefan O'Rear, 8-Nov-2014.) $)
    fin1a2lem10 $p |- ( ( A =/= (/) /\ A e. Fin /\ [C.] Or A ) ->
        U. A e. A ) $=
      ( vc c0 wne wcel crpss wor cuni wi cv wtru cun wceq a1i neeq1 soeq2 unieq
      eleq12d imbi12d wa va vb cfn csn eqneqall tru 2thd id w3a vex unisn vsnid
      eqeltri uneq1 uncom un0 eqtri syl6eq unieqd mpbiri a1d adantl simpr ssun1
      wss simpl2 soss mpsyl uniun uneq2i wo simprr elun1 ad2antll ssun2 sorpssi
      sselii syl12anc ssequn1 eleq1 syl5ibr impcom syl5eqel jaodan syl2anc expr
      sylbi embantd pm2.61dane 3exp com24 findcard2 com12 3imp ) ACDZAUCEZAFGZA
      HZAEZWPWOWQWSIZUAJZCDZXAFGZXAHZXAEZIZIZKUBJZCDZXHFGZXHHZXHEZIZIZXHBJZUDZL
      ZCDZXQFGZXQHZXQEZIZIWOWTIUAUBBAXACMZXGKXFXACUEKYCUFNUGXAXHMZXBXIXFXMXAXHC
      OYDXCXJXEXLXAXHFPYDXDXKXAXHXAXHQYDUHRSSXAXQMZXBXRXFYBXAXQCOYEXCXSXEYAXAXQ
      FPYEXDXTXAXQXAXQQYEUHRSSXAAMZXBWOXFWTXAACOYFXCWQXEWSXAAFPYFXDWRXAAXAAQYFU
      HRSSUFXHUCEZXSXRXNYAYGXSXRXNYAIZYGXSXRUIZYHXHCXHCMZYHYIYJYAXNYJYAXPHZXPEY
      KXOXPXOBUJUKZBULZUMYJXTYKXQXPYJXQXPYJXQCXPLZXPXHCXPUNYNXPCLXPCXPUOXPUPUQU
      RZUSYORUTVAVBYIXITZXIXMYAYIXIVCYPXJXLYAXHXQVEYPXSXJXHXPVDYGXSXRXIVFXHXQFV
      GVHYIXIXLYAYIXIXLTZTZXTXKXOLZXQXTXKYKLYSXHXPVIYKXOXKYLVJUQYRXLXKXOVEZXOXK
      VEZVKZYSXQEZYIXIXLVLYRXSXKXQEZXOXQEZUUBYGXSXRYQVFXLUUDYIXIXKXHXPVMZVNUUEY
      RXPXQXOXPXHVOYMVQZNXQXKXOVPVRXLYTUUCUUAYTXLUUCYTYSXOMZXLUUCIXKXOVSXLUUCUU
      HUUEUUEXLUUGNYSXOXQVTWAWGWBXLUUATYSXOXKLZXQXKXOUOUUAXLUUIXQEZUUAUUIXKMZXL
      UUJIXOXKVSXLUUJUUKUUDUUFUUIXKXQVTWAWGWBWCWDWEWCWFWHWHWIWJWKWLWMWN $.

    $( Lemma for ~ fin1a2 .  (Contributed by Stefan O'Rear, 8-Nov-2014.) $)
    fin1a2lem11 $p |- ( ( [C.] Or A /\ A C_ Fin ) -> ran ( b e. _om |->
        U. { c e. A | c ~<_ b } ) = ( A u. { (/) } ) ) $=
      ( vd crpss cfn wss wa com cv cdom wbr crab cuni wceq c0 wcel sylibr simpr
      wo wor cmpt crn wrex cab csn cun eqid rnmpt unieq syl6eq adantl 0ex elsn2
      uni0 olcd wne ssrab2 simplll simpllr simplr fin1a2lem9 syl3anc soss mpsyl
      fin1a2lem10 sseldi orcd pm2.61dane eleq1 orbi12d syl5ibrcom rexlimdva cfv
      ccrd sselda ficardom syl ficardid ensym endom 3syl breq1 sylanbrc elssuni
      cen elrab simprr adantr domentr syl2anc wb simprl sseldd sorpssi syl12anc
      wral fincssdom mpbid ex syl5bi ralrimiv unissb eqssd breq2 rabbidv unieqd
      eqeq2d rspcev velsn peano1 wi dom0 biimpi a1i 3imtr4g ssrdv uni0b sylancr
      eqcomd eqeq1 rexbidv jaod impbid elun syl6bbr abbi1dv syl5eq ) AEUAZAFGZH
      ZBICJZBJZKLZCAMZNZUBZUCDJZYPOZBIUDZDUEAPUFZUGZBDIYPYQYQUHUIYKYTDUUBYKYTYR
      AQZYRUUAQZTZYRUUBQYKYTUUEYKYSUUEBIYKYMIQZHZUUEYSYPAQZYPUUAQZTZUUGUUJYOPUU
      GYOPOZHZUUIUUHUULYPPOZUUIUUKUUMUUGUUKYPPNPYOPUJUOUKULYPPUMUNRUPUUGYOPUQZH
      ZUUHUUIUUOYOAYPYNCAURZUUOUUNYOFQZYOEUAZYPYOQUUGUUNSUUOYIYJUUFUUQYIYJUUFUU
      NUSZYIYJUUFUUNUTYKUUFUUNVAYMACVBVCYOAGUUOYIUURUUPUUSYOAEVDVEYOVFVCVGVHVIY
      SUUCUUHUUDUUIYRYPAVJYRYPUUAVJVKVLVMYKUUCYTUUDYKUUCYTYKUUCHZYRVOVNZIQZYRYL
      UVAKLZCAMZNZOZYTUUTYRFQZUVBYKAFYRYIYJSVPZYRVQVRUUTYRUVEUUTYRUVDQZYRUVEGUU
      TUUCYRUVAKLZUVIYKUUCSUUTUVAYRWFLZYRUVAWFLUVJUUTUVGUVKUVHYRVSVRZUVAYRVTYRU
      VAWAWBUVCUVJCYRAYLYRUVAKWCWGWDYRUVDWEVRUUTYMYRGZBUVDWQUVEYRGUUTUVMBUVDYMU
      VDQYMAQZYMUVAKLZHZUUTUVMUVCUVOCYMAYLYMUVAKWCWGUUTUVPUVMUUTUVPHZYMYRKLZUVM
      UVQUVOUVKUVRUUTUVNUVOWHUUTUVKUVPUVLWIYMUVAYRWJWKUVQYMFQUVGUVMYRYMGTZUVRUV
      MWLUVQAFYMYIYJUUCUVPUTUUTUVNUVOWMZWNUUTUVGUVPUVHWIUVQYIUVNUUCUVSYIYJUUCUV
      PUSUVTYKUUCUVPVAAYMYRWOWPYMYRWRVCWSWTXAXBBUVDYRXCRXDYSUVFBUVAIYMUVAOZYPUV
      EYRUWAYOUVDUWAYNUVCCAYMUVAYLKXEXFXGXHXIWKWTUUDYRPOZYKYTDPXJYKYTUWBPYPOZBI
      UDZYKPIQPYLPKLZCAMZNZOZUWDXKYKUWGPYKUWFUUAGUWGPOYKBUWFUUAYKUVNYMPKLZHZYMP
      OZYMUWFQYMUUAQUWJUWKXLYKUWIUWKUVNUWIUWKYMXMXNULXOUWEUWICYMAYLYMPKWCWGBPXJ
      XPXQUWFXRRXTUWCUWHBPIUWKYPUWGPUWKYOUWFUWKYNUWECAYMPYLKXEXFXGXHXIXSUWBYSUW
      CBIYRPYPYAYBVLXAYCYDYRAUUAYEYFYGYH $.

    $( Lemma for ~ fin1a2 .  (Contributed by Stefan O'Rear, 8-Nov-2014.)
       (Revised by Mario Carneiro, 17-May-2015.) $)
    fin1a2lem12 $p |- ( ( ( A C_ ~P B /\ [C.] Or A /\ -. U. A e. A ) /\
        ( A C_ Fin /\ A =/= (/) ) ) -> -. B e. Fin3 ) $=
      ( ve vf vd wss cuni wcel wn c0 wa cfin3 com cv cdom wbr crab cvv wceq id
      cpw crpss wor w3a cfn wne cmpt crn wf cfv csuc wral simpll1 adantr ssrab2
      simpr unissi sspwuni biimpi syl5ss syl wb elpw2g ad2antlr mpbird fmptd wi
      eqid vex sucex sssucid ssdomg mp2 domtr mpan2 a1i uniss mp1i pwexg adantl
      ss2rabi ssexd rabexg uniexg breq2 rabbidv unieqd fvmptg syl2anr ralrimiva
      3syl peano2 3sstr4d syl3anc csn cun fin1a2lem11 adantrr 3ad2antl2 simpll3
      fin34i wo simplrr ss0b bitri pw0 sseq2i sssn df-ne 0ex unisn snid eqeltri
      unieq eleq12d mpbiri orim2i syl5bi sylbi sylbir com12 con3d sylc sylanbrc
      ord ioran uniun uneq2i un0 3eqtri eleq1i elun elsn2 orbi2i 3bitri sylnibr
      notbid syl5ibrcom mpd pm2.65da ) ABUAZFZAUBUCZAGZAHZIZUDZAUEFZAJUFZKZKZBL
      HZCMDNZCNZOPZDAQZGZUGZUHZGZUUSHZUUKUULKZUULMUUAUURUIENZUURUJZUVCUKZUURUJZ
      FZEMULUVAUUKUULUPUVBCMUUQUUAUURUVBUUNMHZKZUUQUUAHZUUQBFZUVIUUBUVKUVBUUBUV
      HUUBUUCUUFUUJUULUMZUNUUBUUQUUDBUUPAUUODAUOUQUUBUUDBFABURUSUTVAUULUVJUVKVB
      UUKUVHUUQBLVCVDVEUURVHZVFUVBUVGEMUVBUVCMHZKZUUMUVCOPZDAQZGZUUMUVEOPZDAQZG
      ZUVDUVFUVQUVTFUVRUWAFUVOUVPUVSDAUVPUVSVGUUMAHUVPUVCUVEOPZUVSUVERHUVCUVEFU
      WBUVCEVIVJUVCVKUVCUVERVLVMUUMUVCUVEVNVOVPWAUVQUVTVQVRUVNUVNUVRRHZUVDUVRSU
      VBUVNTUVBARHZUVQRHUWCUVBAUUARUULUUARHUUKBLVSVTUVLWBZUVPDARWCUVQRWDWKCUVCU
      UQUVRMRUURUUNUVCSZUUPUVQUWFUUOUVPDAUUNUVCUUMOWEWFWGUVMWHWIUVNUVEMHUWARHZU
      VFUWASUVBUVCWLUVBUWDUVTRHUWGUWEUVSDARWCUVTRWDWKCUVEUUQUWAMRUURUUNUVESZUUP
      UVTUWHUUOUVSDAUUNUVEUUMOWEWFWGUVMWHWIWMWJEBUURXAWNUVBUUSAJWOZWPZSZUVAIZUU
      KUWKUULUUCUUBUUJUWKUUFUUCUUHUWKUUIACDWQWRWSUNUVBUWLUWKUWJGZUWJHZIUVBUUEUU
      DJSZXBZUWNUVBUUFUWOIZUWPIUUBUUCUUFUUJUULWTZUVBUUIUUFUWQUUGUUHUUIUULXCUWRU
      UIUWOUUEUWOUUIUUEUWOAJUAZFZUUIUUEVGZUWTUUDJFUWOAJURUUDXDXEUWTAJSZAUWISZXB
      ZUXAUWTAUWIFUXDUWSUWIAXFXGAJXHXEUUIUXBIUXDUUEAJXIUXDUXBUUEUXCUUEUXBUXCUUE
      UWIGZUWIHUXEJUWIJXJXKZJXJXLXMUXCUUDUXEAUWIAUWIXNUXCTXOXPXQYEXRXSXTYAYBYCU
      UEUWOYFYDUWNUUDUWJHUUEUUDUWIHZXBUWPUWMUUDUWJUWMUUDUXEWPUUDJWPUUDAUWIYGUXE
      JUUDUXFYHUUDYIYJYKUUDAUWIYLUXGUWOUUEUUDJXJYMYNYOYPUWKUVAUWNUWKUUTUWMUUSUW
      JUUSUWJXNUWKTXOYQYRYSYT $.

    $( Lemma for ~ fin1a2 .  (Contributed by Stefan O'Rear, 8-Nov-2014.)
       (Revised by Mario Carneiro, 17-May-2015.) $)
    fin1a2lem13 $p |- ( ( ( A C_ ~P B /\ [C.] Or A /\ -. U. A e. A ) /\
        ( -. C e. Fin /\ C e. A ) ) -> -. ( B \ C ) e. Fin2 ) $=
      ( vg vf vx ve vh wss wcel wa cdif cv c0 wceq wrex cvv elrnmpt sylibr wral
      cpw crpss wor cuni w3a cfn cfin2 cmpt crn wne simpr simpll1 elpwid ssdifd
      wn ssel2 sseq1 syl5ibrcom rexlimdva wb vex eqid ax-mp selpw 3imtr4g ssrdv
      syl simplrr difid eqcomi difeq1 eqeq2d rspcev mpan2 0ex ne0i 3syl simpll2
      wo weq cbvrexv sorpssi ssdif orim12i sseq2 orbi12d expr rexlimdv ralrimiv
      wi syl5bi ralbidv sorpss fin2i syl22anc simpll3 cbvmptv ibi adantl difexg
      mp2b elssuni simplr sseqtrd adantll cun unss2 uncom undif1 eqtri ad2antrr
      a1i simpllr ssdif0 biimpi ad2antlr eqtrd uni0c sylib eqeq1 rspcva syl2anc
      ralrimiva unissb eqssd simpll eqeltrd ex mtod simplrl syl12anc orel1 sylc
      undif sseq12d ssun1 sstr mpan syl6bi syl5 mpd ad2antrl simprl rexlimdvaa
      pm2.65da ) ABUAZIZAUBUCZAUDZAJZUOZUEZCUFJUOZCAJZKZKZBCLZUGJZDADMZCLZUHZUI
      ZUDZUVBJZUUPUURKZUURUVBUUQUAZIZUVBNUJZUVBUBUCZUVDUUPUURUKUVEUUGUVGUUGUUHU
      UKUUOUURULUUGEUVBUVFUUGEMZUUTOZDAPZUVJUUQIZUVJUVBJZUVJUVFJUUGUVKUVMDAUUGU
      USAJZKZUVMUVKUUTUUQIUVPUUSBCUVPUUSBAUUFUUSUPUMUNUVJUUTUUQUQURUSUVJQJUVNUV
      LUTEVADAUUTUVJUVAQUVAVBZRVCZEUUQVDVEVFVGUVEUUNNUVBJZUVHUULUUMUUNUURVHZUUN
      NUUTOZDAPZUVSUUNNCCLZOZUWBUWCNCVIVJUWAUWDDCAUUSCOUUTUWCNUUSCCVKVLVMVNNQJU
      VSUWBUTVODAUUTNUVAQUVQRVCSUVBNVPVQUVEUUHUVIUUGUUHUUKUUOUURVRZUUHFMZUVJIZU
      VJUWFIZVSZEUVBTZFUVBTUVIUUHUWJFUVBUWFUVBJZUWFUUTOZDAPZUUHUWJUWFQJZUWKUWMU
      TFVAZDAUUTUWFUVAQUVQRVCUWMUWFGMZCLZOZGAPUUHUWJUWLUWRDGADGVTUUTUWQUWFUUSUW
      PCVKVLWAUUHUWRUWJGAUUHUWPAJZKZUWJUWRUWQUVJIZUVJUWQIZVSZEUVBTUWTUXCEUVBUVN
      UVLUWTUXCUVRUWTUVKUXCDAUUHUWSUVOUVKUXCWJUUHUWSUVOKKZUXCUVKUWQUUTIZUUTUWQI
      ZVSZUXDUWPUUSIZUUSUWPIZVSUXGAUWPUUSWBUXHUXEUXIUXFUWPUUSCWCUUSUWPCWCWDVGUV
      KUXAUXEUXBUXFUVJUUTUWQWEUVJUUTUWQUQWFURWGWHWKWIUWRUWIUXCEUVBUWRUWGUXAUWHU
      XBUWFUWQUVJUQUWFUWQUVJWEWFWLURUSWKWKWIFEUVBWMSVGUUQUVBWNWOUVEUVDUUJUUGUUH
      UUKUUOUURWPZUVDUVCUVJCLZOZEAPZUVEUUJUVDUXMEAUXKUVCUVAUVBDEAUUTUXKUUSUVJCV
      KWQRWRUVEUXLUUJEAUVEUVJAJZUXLKZKZUUIUVJAUXPUUIUVJUXPHMZUVJIZHATUUIUVJIUXP
      UXRHAUXPUXQAJZKZUXQCLZUXKIZUXRUXOUXSUYBUVEUXOUXSKZUYAUVCUXKUYCUYAUVBJZUYA
      UVCIUYCUYAUUTOZDAPZUYDUXSUYFUXOUXSUYAUYAOZUYFUYAVBUYEUYGDUXQADHVTUUTUYAUY
      AUUSUXQCVKVLVMVNWSUXQQJUYAQJUYDUYFUTHVAUXQCQWTDAUUTUYAUVAQUVQRXASUYAUVBXB
      VGUXNUXLUXSXCXDXEUYBCUYAXFZCUXKXFZIZUXTUXRUYAUXKCXGUXTUYJUXQCXFZUVJIZUXRU
      XTUYHUYKUYIUVJUYHUYKOUXTUYHUYACXFUYKCUYAXHUXQCXIXJXLUXTCUVJIZUYIUVJOUXTUV
      JCIZUOUYNUYMVSZUYMUXTUYNUUJUVEUUKUXOUXSUXJXKUXTUUNUXLUYNUUJWJUVEUUNUXOUXS
      UVTXKZUVEUXNUXLUXSVHUUNUXLKZUYNUUJUYQUYNKZUUICAUYRUUICUYRUWFCIZFATUUICIUY
      RUYSFAUYRUWFAJZKZUWFCLZNOZUYSVUAVUBUVBJZUWPNOZGUVBTZVUCUYTVUDUYRUYTVUBUUT
      OZDAPZVUDUYTVUBVUBOZVUHVUBVBVUGVUIDUWFADFVTUUTVUBVUBUUSUWFCVKVLVMVNUWNVUB
      QJVUDVUHUTUWOUWFCQWTDAUUTVUBUVAQUVQRXASWSVUAUVCNOVUFVUAUVCUXKNUUNUXLUYNUY
      TXMUYNUXKNOZUYQUYTUYNVUJUVJCXNXOXPXQGUVBXRXSVUEVUCGVUBUVBUWPVUBNXTYAYBUWF
      CXNSYCFACYDSUUNCUUIIUXLUYNCAXBXKYEUUNUXLUYNYFYGYHYBYIUXTUUHUXNUUNUYOUVEUU
      HUXOUXSUWEXKUVEUXNUXLUXSYJUYPAUVJCWBYKUYNUYMYLYMCUVJYNXSYOUXQUYKIUYLUXRUX
      QCYPUXQUYKUVJYQYRYSYTUUAYCHAUVJYDSUXNUVJUUIIUVEUXLUVJAXBUUBYEUVEUXNUXLUUC
      YGUUDYTYIUUE $.

    $( Weak theorem which skips Ia but has a trivial proof, needed to prove
       ~ fin1a2 .  (Contributed by Stefan O'Rear, 8-Nov-2014.)  (Revised by
       Mario Carneiro, 17-May-2015.) $)
    fin12 $p |- ( A e. Fin -> A e. Fin2 ) $=
      ( vb vc vd cfn wcel cfin2 cv c0 wne crpss wor wa cpw wral wn wrex wbr cvv
      vex cuni wi wpss ccnv wfr wss a1i isfin1-3 ad2antrr elpwi ad2antlr simprl
      syl22anc brcnv brrpss bitri notbii ralbii rexbii sylib sorpssuni ad2antll
      ibi fri wb mpbid ex ralrimiva isfin2 mpbird ) AEFZAGFBHZIJZVLKLZMZVLUAVLF
      ZUBZBANZNZOVKVQBVSVKVLVSFZMZVOVPWAVOMZCHZDHZUCZPZDVLOZCVLQZVPWBWDWCKUDZRZ
      PZDVLOZCVLQZWHWBVLSFZVRWIUEZVLVRUFZVMWMWNWBBTUGVKWOVTVOVKWOAEUHVCUIVTWPVK
      VOVLVRUJUKWAVMVNULCDVRVLSWIVDUMWLWGCVLWKWFDVLWJWEWJWCWDKRWEWDWCKDTZCTUNWC
      WDWQUOUPUQURUSUTVNWHVPVEWAVMDCVLVAVBVFVGVHBAEVIVJ $.

    $( An II-infinite set can have an I-infinite part broken off and remain
       II-infinite.  (Contributed by Stefan O'Rear, 8-Nov-2014.)  (Proof
       shortened by Mario Carneiro, 17-May-2015.) $)
    fin1a2s $p |- ( ( A e. V /\
      A. x e. ~P A ( x e. Fin \/ ( A \ x ) e. Fin2 ) ) -> A e. Fin2 ) $=
      ( vc wcel cv cfn cfin2 wo cpw wa wi wss cfin3 fin23 syl adantr wn simplrl
      wral cdif wne crpss wor cuni elpwi fin12 orim12i ralimi fin1a2lem8 sylan2
      c0 simprrr simprl ssralv idd w3a fin1a2lem13 ex 3expa adantll imp ancom2s
      adantlrl expr con4d jaod ralimdva syld impr dfss3 sylibr simprrl syl32anc
      fin1a2lem12 impancom an32s mt4d exp32 syl5 ralrimiv wb isfin2 mpbird ) BC
      EZAFZGEZBWFUAZHEZIZABJZTZKZBHEZDFZULUBZWOUCUDZKZWOUEWOEZLZDWKJZTZWMWTDXAW
      OXAEWOWKMZWMWTWOWKUFWMXCWRWSWMXCWRKZKBNEZWSWMXEXDWLWEWFNEZWHNEZIZAWKTXEWJ
      XHAWKWGXFWIXGWGWFHEXFWFUGWFOPWHOUHUIABCUJUKQWEXDWLWSRZXERZLWEXDKZXIWLXJXK
      XIWLXJXKXIWLKZKZXCWQXIWOGMZWPXJWEXCWRXLSXKWQXLWEXCWPWQUMQXKXIWLUNXMWGAWOT
      ZXNXKXIWLXOXKXIKZWLWJAWOTZXOXPXCWLXQLWEXCWRXISWJAWOWKUOPXPWJWGAWOXPWFWOEZ
      KZWGWGWIXSWGUPXSWGWIXPXRWGRZWIRZXPXTXRYAXPXTXRKZYAXDXIYBYALZWEXCWQXIYCWPX
      CWQXIYCXCWQXIUQYBYAWOBWFURUSUTVDVAVBVCVEVFVGVHVIVJAWOGVKVLXKWPXLWEXCWPWQV
      MQWOBVOVNVEVPVQVRVSVTWAWEWNXBWBWLDBCWCQWD $.

    $( Every Ia-finite set is II-finite.  Theorem 1 of [Levy58], p. 3.
       (Contributed by Stefan O'Rear, 8-Nov-2014.)  (Proof shortened by Mario
       Carneiro, 17-May-2015.) $)
    fin1a2 $p |- ( A e. Fin1a -> A e. Fin2 ) $=
      ( vb cfin1a wcel cv cfn cdif cfin2 wo cpw wral wss elpwi wa fin1ai orim2i
      fin12 syl sylan2 ralrimiva fin1a2s mpdan ) ACDZBEZFDZAUDGZHDZIZBAJZKAHDUC
      UHBUIUDUIDUCUDALZUHUDAMUCUJNUEUFFDZIUHAUDOUKUGUEUFQPRSTBACUAUB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Hereditarily size-limited sets without Choice
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x y a b c $.  $d B x y a b c d $.  $d U a b c d $.
    ituni.u $e |- U = ( x e. _V |->
        ( rec ( ( y e. _V |-> U. y ) , x ) |` _om ) ) $.
    $( Function value of iterated unions. _EDITORIAL_:  The iterated unions and
       order types of ordered sets are split out here because they could
       conceivably be independently useful.  (Contributed by Stefan O'Rear,
       11-Feb-2015.) $)
    itunifval $p |- ( A e. V -> ( U ` A ) =
          ( rec ( ( y e. _V |-> U. y ) , A ) |` _om ) ) $=
      ( wcel cvv cfv cv cuni cmpt crdg com cres wceq elex rdgeq2 reseq1d wfun
      rdgfun omex resfunexg mp2an fvmpt syl ) CEGCHGCDIBHBJKLZCMZNOZPCEQACUGAJZ
      MZNOUIHDUJCPUKUHNUJCUGRSFUHTNHGUIHGCUGUAUBUHNHUCUDUEUF $.

    $( Functionality of the iterated union.  (Contributed by Stefan O'Rear,
       11-Feb-2015.) $)
    itunifn $p |- ( A e. V -> ( U ` A ) Fn _om ) $=
      ( wcel cfv com wfn cvv cuni cmpt crdg cres frfnom itunifval fneq1d mpbiri
      cv ) CEGZCDHZIJBKBTLMZCNIOZIJCUCPUAIUBUDABCDEFQRS $.

    $( A zero-fold iterated union.  (Contributed by Stefan O'Rear,
       11-Feb-2015.) $)
    ituni0 $p |- ( A e. V -> ( ( U ` A ) ` (/) ) = A ) $=
      ( wcel c0 cfv cvv cv cuni cmpt crdg com cres itunifval fveq1d fr0g eqtrd
      ) CEGZHCDIZIHBJBKLMZCNOPZICUAHUBUDABCDEFQRCEUCST $.

    $( Successor iterated union.  (Contributed by Stefan O'Rear,
       11-Feb-2015.) $)
    itunisuc $p |- ( ( U ` A ) ` suc B ) = U. ( ( U ` A ) ` B ) $=
      ( va cvv wcel cfv cuni wceq com wa cv fveq1d unieqd wn c0 syl frsuc unieq
      csuc cmpt crdg cres fvex uniex fvmpt ax-mp syl6eq adantl itunifval adantr
      cbvmptv 3eqtr4d uni0 eqcomi cdm wfn itunifn eleq2d peano2b syl6bbr notbid
      fndm biimpar ndmfv 3eqtr4a pm2.61dan 0fv unieqi 3eqtr4ri fvprc pm2.61i )
      CHIZDUCZCEJZJZDVRJZKZLZVPDMIZWBVPWCNZVQBHBOZKZUDZCUEMUFZJZDWHJZKZVSWAWCWI
      WKLVPWCWIWJWGJZWKCDWGUAWJHIWLWKLDWHUGZGWJGOZKZWKHWGWNWJUBBGHWFWOWEWNUBUOW
      JWMUHUIUJUKULVPVSWILWCVPVQVRWHABCEHFUMZPUNWDVTWJVPVTWJLWCVPDVRWHWPPUNQUPV
      PWCRZNZSSKZVSWAWSSUQURWRVQVRUSZIZRZVSSLVPXBWQVPXAWCVPXAVQMIWCVPWTMVQVPVRM
      UTWTMLABCEHFVAMVRVFTZVBDVCVDVEVGVQVRVHTWRVTSWRDWTIZRZVTSLVPXEWQVPXDWCVPWT
      MDXCVBVEVGDVRVHTQVIVJVPRZVQSJZDSJZKZVSWAWSSXIXGUQXHSDVKVLVQVKVMXFVQVRSCEV
      NZPXFVTXHXFDVRSXJPQVIVO $.

    $( Each union iterate is a member of the transitive closure.  (Contributed
       by Stefan O'Rear, 11-Feb-2015.) $)
    itunitc1 $p |- ( ( U ` A ) ` B ) C_ ( TC ` A ) $=
      ( va vb vc cvv wcel cfv ctc wss cv wceq fveq2 com c0 sseq1d fveq1d ituni0
      sseq12d csuc weq vex tcid eqsstrd wi cuni itunisuc cpw wtr tctr pwtr mpbi
      ax-mp trss fvex elpw sspwuni 3imtr3i syl5eqss a1i wn cdm wfn itunifn fndm
      finds mp2b eleq2i ndmfv sylnbir 0ss syl6eqss pm2.61i vtoclg fvprc syl6eq
      0fv ) CJKZDCELZLZCMLZNZDGOZELZLZWGMLZNZWFGCJWGCPZWIWDWJWEWLDWHWCWGCEQUAWG
      CMQUCDRKZWKHOZWHLZWJNSWHLZWJNZIOZWHLZWJNZWRUDZWHLZWJNZWKHIDWNSPWOWPWJWNSW
      HQTHIUEWOWSWJWNWRWHQTWNXAPWOXBWJWNXAWHQTWNDPWOWIWJWNDWHQTWGJKZWQGUFZXDWPW
      GWJABWGEJFUBWGJUGUHUQWTXCUIWRRKWTXBWSUJZWJABWGWREFUKWSWJULZKZWSXGNZWTXFWJ
      NXGUMZXHXIUIWJUMXJWGUNWJUOUPXGWSURUQWSWJWRWHUSUTWSWJVAVBVCVDVJWMVEWISWJWM
      DWHVFZKWISPXKRDXDWHRVGXKRPXEABWGEJFVHRWHVIVKVLDWHVMVNWJVOVPVQVRWBVEZWDSWE
      XLWDDSLSXLDWCSCEVSUADWAVTWEVOVPVQ $.

    $( The union of all union iterates creates the transitive closure; compare
       ~ trcl .  (Contributed by Stefan O'Rear, 11-Feb-2015.) $)
    itunitc $p |- ( TC ` A ) = U. ran ( U ` A ) $=
      ( va vb vc cvv wcel ctc cfv crn cuni wceq cv fveq2 wss c0 com eqeq12d wtr
      rneqd unieqd vex ituni0 ax-mp fvssunirn eqsstr3i wrex wfn itunifn fnunirn
      dftr3 wb mp2b elssuni itunisuc syl6ss rexlimivw sylbi mprgbir wa wi tcmin
      csuc mp2an unissb fvelrnb itunitc1 a1i sseq1 syl5ibcom rexlimiv vtoclg wn
      eqssi rn0 unieqi uni0 eqtr2i fvprc 3eqtr4a pm2.61i ) CIJZCKLZCDLZMZNZOZFP
      ZKLZWKDLZMZNZOWJFCIWKCOZWLWFWOWIWKCKQWPWNWHWPWMWGWKCDQUCUDUAWLWOWKWORZWOU
      BZWLWORZWKSWMLZWOWKIJZWTWKOFUEZABWKDIEUFUGWMSUHUIWRGPZWORZGWOGWOUNXCWOJZX
      CHPZWMLZJZHTUJZXDXAWMTUKZXEXIUOXBABWKDIEULZHXCWMTUMUPXHXDHTXHXCXGNZWOXCXG
      UQXLXFVFZWMLWOABWKXFDEURWMXMUHUIUSUTVAVBXAWQWRVCWSVDXBWKWOIVEUGVGWOWLRXCW
      LRZGWNGWNWLVHXCWNJZXGXCOZHTUJZXNXAXJXOXQUOXBXKHTXCWMVIUPXPXNHTXFTJZXGWLRZ
      XPXNXSXRABWKXFDEVJVKXGXCWLVLVMVNVAVBVQVOWEVPZSSMZNZWFWIYBSNSYASVRVSVTWACK
      WBXTWHYAXTWGSCDWBUCUDWCWD $.

    $( Unwrap an iterated union from the "other end".  (Contributed by Stefan
       O'Rear, 11-Feb-2015.) $)
    ituniiun $p |- ( A e. V -> ( ( U ` A ) ` suc B ) =
          U_ a e. A ( ( U ` a ) ` B ) ) $=
      ( csuc cfv ciun wceq fveq2 eqeq12d com wcel c0 iuneq2d cuni cvv vb fveq1d
      vd vc cv iuneq1 suceq fveq2d weq uniiun itunisuc vex ituni0 ax-mp iuneq2i
      unieqi eqtri 3eqtr4i wi unieq wel iuncom4 eqtr2i syl6eq syl5eq finds iun0
      a1i eqcomi cdm peano2b wfn itunifn fndm mp2b eleq2i bitr4i sylnbi sylnbir
      wn ndmfv 3eqtr4a pm2.61i vtoclg ) DIZUAUEZEJZJZGWFDGUEZEJZJZKZLZWECEJZJZG
      CWKKZLUACFWFCLZWHWOWLWPWQWEWGWNWFCEMUBGWFCWKUFNDOPZWMUCUEZIZWGJZGWFWSWJJZ
      KZLQIZWGJZGWFQWJJZKZLUDUEZIZWGJZGWFXHWJJZKZLZXIIZWGJZGWFXIWJJZKZLZWMUCUDD
      WSQLZXAXEXCXGXSWTXDWGWSQUGUHXSGWFXBXFWSQWJMRNUCUDUIZXAXJXCXLXTWTXIWGWSXHU
      GUHXTGWFXBXKWSXHWJMRNWSXILZXAXOXCXQYAWTXNWGWSXIUGUHYAGWFXBXPWSXIWJMRNWSDL
      ZXAWHXCWLYBWTWEWGWSDUGUHYBGWFXBWKWSDWJMRNWFSZGWFWIKXEXGGWFUJXEQWGJZSYCABW
      FQEHUKYDWFWFTPZYDWFLUAULZABWFETHUMUNUPUQGWFXFWIABWIEWFHUMUOURXMXRUSXHOPXM
      XOXJSZXQABWFXIEHUKXMYGXLSZXQXJXLUTXQGWFXKSZKYHGWFXPYIXPYILGUAVAABWIXHEHUK
      VHUOGWFXKVBVCVDVEVHVFWRVTZQGWFQKZWHWLYKQGWFVGVIWRWEWGVJZPZWHQLWRWEOPYMDVK
      YLOWEYEWGOVLYLOLYFABWFETHVMOWGVNVOVPVQWEWGWAVRYJGWFWKQWRDWJVJZPWKQLYNODWI
      TPWJOVLYNOLGULABWIETHVMOWJVNVOVPDWJWAVSRWBWCWD $.
  $}

  ${
    $d H b $.  $d X b z $.  $d a b z $.
    hsmexlem7.h $e |- H = ( rec ( ( z e. _V |-> ( har ` ~P ( X X. z ) ) ) ,
            ( har ` ~P X ) ) |` _om ) $.
    $( Lemma for ~ hsmex .  Properties of the recurrent sequence of ordinals.
       (Contributed by Stefan O'Rear, 14-Feb-2015.) $)
    hsmexlem7 $p |- ( H ` (/) ) = ( har ` ~P X ) $=
      ( c0 cfv cvv cxp cpw char cmpt crdg com cres fveq1i wcel wceq fvex fr0g
      cv ax-mp eqtri ) EBFEAGCATHIJFKZCIZJFZLMNZFZUEEBUFDOUEGPUGUEQUDJRUEGUCSUA
      UB $.

    $( Lemma for ~ hsmex .  Properties of the recurrent sequence of ordinals.
       (Contributed by Stefan O'Rear, 14-Feb-2015.) $)
    hsmexlem8 $p |- ( a e. _om -> ( H ` suc a ) =
          ( har ` ~P ( X X. ( H ` a ) ) ) ) $=
      ( vb cv com wcel cfv cxp cpw char cvv csuc wceq fvex xpeq2 pweqd fveq2d
      frsucmpt2 mpan2 ) DGZHICUCBJZKZLZMJZNIUCOBJUGPUFMQAFCLMJUCCAGZKZLZMJUGCFG
      ZKZLZMJBNEUKUHPZUMUJMUNULUIUKUHCRSTUKUDPZUMUFMUOULUEUKUDCRSTUAUB $.

    $( Lemma for ~ hsmex .  Properties of the recurrent sequence of ordinals.
       (Contributed by Stefan O'Rear, 14-Feb-2015.) $)
    hsmexlem9 $p |- ( a e. _om -> ( H ` a ) e. On ) $=
      ( vb cv com wcel c0 wceq csuc wrex cfv con0 fveq2 cpw char harcl syl6eqel
      wo nn0suc hsmexlem7 eqeltri cxp hsmexlem8 eleq1d syl5ibrcom rexlimiv jaoi
      syl ) DGZHIULJKZULFGZLZKZFHMZUAULBNZOIZFULUBUMUSUQUMURJBNZOULJBPUTCQZRNOA
      BCEUCVASUDTUPUSFHUNHIZUSUPUOBNZOIVBVCCUNBNUEQZRNOABCFEUFVDSTUPURVCOULUOBP
      UGUHUIUJUK $.
  $}

  ${
    hsmexlem.o $e |- O = OrdIso ( _E , A ) $.
    $( Lemma for ~ hsmex .  Bound the order type of a limited-cardinality set
       of ordinals.  (Contributed by Stefan O'Rear, 14-Feb-2015.)  (Revised by
       Mario Carneiro, 26-Jun-2015.) $)
    hsmexlem1 $p |- ( ( A C_ On /\ A ~<_* B ) -> dom O e. ( har ` ~P B ) ) $=
      ( con0 wss cwdom wbr wa wcel cpw cdom word cep cvv wb 3syl wf adantr syl
      cdm char cfv oicl cuni relwdom brrelexi adantl uniexg sucexg oif onsucuni
      csuc wsmo fss sylancr crn wceq oismo simpld ssorduni ordsuc sylib syl3anc
      smorndom ssexd elong mpbiri csdm canth2g sdomdom cen wf1o wiso wwe epweon
      simpl wess mpisyl oiiso2 sylancl isof1o simprd f1oeq3 mpbid f1oen2g endom
      epse domwdom wdomtr sylancom wdompwdom domtr syl2anc elharval sylanbrc
      wse ) AEFZABGHZIZCUAZEJZXABKZLHZXAXCUBUCJWTXBXAMZANCDUDWTXAOJZXBXEPWTXAAU
      EZUMZOWTAOJZXGOJXHOJWSXIWRABGUFUGUHZAOUIXGOUJQWTXAXHCRZCUNZXHMZXAXHFWTXAA
      CRAXHFZXKANCDUKWRXNWSAULSXAAXHCUOUPWTXLCUQZAURZWRXLXPIWSACDUSSZUTWTXGMZXM
      WRXRWSAVASXGVBVCXAXHCVEVDVFZXAOVGTVHZWTXAXAKZLHZYAXCLHZXDWTXFXAYAVIHYBXSX
      AOVJXAYAVKQWTXABGHZYCWRWSXAAGHZYDWTXAAVLHZXAALHYEWTXBXIXAACVMZYFXTXJWTXAX
      OCVMZYGWTXAXONNCVNZYHWTANVOZANWQYIWTWRENVOYJWRWSVQVPAENVRVSAWHANCDVTWAXAX
      ONNCWBTWTXPYHYGPWTXLXPXQWCXOAXACWDTWEXAACEOWFVDXAAWGXAAWIQXAABWJWKXABWLTX
      AYAXCWMWNXCXAWOWP $.
  $}

  ${
    $d a b c d e A $.  $d b c d e B $.  $d a b c d e C $.  $d b c d e F $.
    $d b c V $.
    hsmexlem.f $e |- F = OrdIso ( _E , B ) $.
    hsmexlem.g $e |- G = OrdIso ( _E , U_ a e. A B ) $.
    $( Lemma for ~ hsmex .  Bound the order type of a union of sets of
       ordinals, each of limited order type.  Vaguely reminiscent of ~ unictb
       but use of order types allows to canonically choose the sub-bijections,
       removing the choice requirement.  (Contributed by Stefan O'Rear,
       14-Feb-2015.)  (Revised by Mario Carneiro, 26-Jun-2015.)  (Revised by
       AV, 18-Sep-2021.) $)
    hsmexlem2 $p |- ( ( A e. V /\ C e. On /\ A. a e. A ( B e. ~P On /\
              dom F e. C ) ) -> dom G e. ( har ` ~P ( A X. C ) ) ) $=
      ( vb ve vd wcel con0 wa cfv cv cep wceq wrex vc cpw cdm wral w3a ciun wss
      cxp cwdom wbr char elpwi adantr ralimi iunss sylibr 3ad2ant3 cvv c2nd csb
      c1st coi xpexg 3adant3 nfv nfra1 nfan rsp onelss imp adantrl wfo crn wsmo
      wi wf oismo syl ad2antrl simprd oif jctil dffo2 dffo3 simprbi 3syl 3impia
      ssrexv sylc 3exp sylan9r reximdai 3adant1 nfcv nfcsb1v nfoi nfeq2 csbeq1a
      nffv nfrex oieq2 syl5eq fveq1d eqeq2d rexbidv cbvrex syl6ib eliun cop vex
      op1std csbeq1d op2ndd fveq12d rexxp 3imtr4g wdomd hsmexlem1 syl2anc ) AFM
      ZCNMZBNUBMZDUCZCMZOZGAUDZUEZGABUFZNUGZYHACUHZUIUJEUCYJUBUKPMYFXTYIYAYFBNU
      GZGAUDYIYEYKGAYBYKYDBNULZUMUNGABNUOUPUQYGJUAYHYJURUAQZUSPZGYMVAPZBUTZRVBZ
      PZXTYAYJURMYFACFNVCVDYGJQZYHMZYSYRSZUAYJTZYGYSBMZGATZYSKQZGLQZBUTZRVBZPZS
      ZKCTZLATZYTUUBYGUUDYSUUEDPZSZKCTZGATZUULYAYFUUDUUPVOXTYAYFOUUCUUOGAYAYFGY
      AGVEYEGAVFVGYFGQZAMYEYAUUCUUOVOYEGAVHYAYEUUCUUOYAYEUUCUEYCCUGZUUNKYCTZUUO
      YAYEUURUUCYAYDUURYBYAYDUURCYCVIVJVKVDYAYEUUCUUSYAYEOZYCBDVLZUUSJBUDZUUCUU
      SVOUUTYCBDVPZDVMBSZOUVAUUTUVDUVCUUTDVNZUVDYBUVEUVDOZYAYDYBYKUVFYLBDHVQVRV
      SVTBRDHWAWBYCBDWCUPUVAUVCUVBKJYCBDWDWEUUSJBVHWFWGUUNKYCCWHWIWJWKWLWMUUOUU
      KGLAUUOLVEUUJGKCGCWNGYSUUIGUUEUUHGUUGRGRWNGUUFBWOWPGUUEWNWSWQWTUUQUUFSZUU
      NUUJKCUVGUUMUUIYSUVGUUEDUUHUVGDBRVBZUUHHUVGBUUGSUVHUUHSGUUFBWRBUUGRXAVRXB
      XCXDXEXFXGGYSABXHUUAUUJUALKACYMUUFUUEXISZYRUUIYSUVIYNUUEYQUUHUVIYPUUGSYQU
      UHSUVIGYOUUFBUUFUUEYMLXJZKXJZXKXLYPUUGRXAVRUUFUUEYMUVJUVKXMXNXDXOXPVJXQYH
      YJEIXRXS $.

    $( Lemma for ~ hsmex .  Clear ` I ` hypothesis and extend previous result
       by dominance.  Note that this could be substantially strengthened, e.g.
       using the weak Hartogs function, but all we need here is that there be
       *some* dominating ordinal.  (Contributed by Stefan O'Rear, 14-Feb-2015.)
       (Revised by Mario Carneiro, 26-Jun-2015.) $)
    hsmexlem3 $p |- ( ( ( A ~<_* D /\ C e. On ) /\ A. a e. A ( B e. ~P On /\
        dom F e. C ) ) -> dom G e. ( har ` ~P ( D X. C ) ) ) $=
      ( cwdom wbr con0 wcel wa cpw cdm cxp char cfv adantr wral wdomref xpwdomg
      wss cdom sylan2 wdompwdom harword 3syl cvv relwdom simplr simpr hsmexlem2
      brrelexi syl3anc sseldd ) ADJKZCLMZNZBLOMEPCMNGAUAZNZACQZOZRSZDCQZOZRSZFP
      ZUTVEVHUDZVAUTVCVFJKZVDVGUEKVJUSURCCJKVKLCUBADCCUCUFVCVFUGVDVGUHUITVBAUJM
      ZUSVAVIVEMUTVLVAURVLUSADJUKUOTTURUSVAULUTVAUMABCEFUJGHIUNUPUQ $.
  $}

  ${
    $d a c d e f H $.  $d e O $.  $d c d e f S $.  $d c d f U $.  $d a b z X $.
    $d a b c d e f x y z $.
    hsmexlem4.x $e |- X e. _V $.
    hsmexlem4.h $e |- H = ( rec ( ( z e. _V |-> ( har ` ~P ( X X. z ) ) ) ,
            ( har ` ~P X ) ) |` _om ) $.
    hsmexlem4.u $e |- U = ( x e. _V |->
          ( rec ( ( y e. _V |-> U. y ) , x ) |` _om ) ) $.
    hsmexlem4.s $e |- S = { a e. U. ( R1 " On ) |
          A. b e. ( TC ` { a } ) b ~<_ X } $.
    hsmexlem4.o $e |- O = OrdIso ( _E , ( rank " ( ( U ` d ) ` c ) ) ) $.
    $( Lemma for ~ hsmex .  The core induction, establishing bounds on the
       order types of iterated unions of the initial set.  (Contributed by
       Stefan O'Rear, 14-Feb-2015.) $)
    hsmexlem4 $p |- ( ( c e. _om /\ d e. S ) -> dom O e. ( H ` c ) ) $=
      ( wcel cfv crnk ve vf cv com cdm wral c0 cima cep csuc wceq fveq2 imaeq2d
      coi oieq2 syl syl5eq dmeqd eleq12d ralbidv weq cpw char wss cwdom wbr crn
      con0 imassrn cr1 cuni wf rankf frn ax-mp cvv vex ituni0 imaeq2i wfun ffun
      sstri wdomimag mp2an cdom csn ctc sneq fveq2d raleqdv elrab2 simprbi snex
      wi tcid vsnid sselii breq1 domwdom 3syl wdomtr sylancr syl5eqbr hsmexlem1
      rspcv eqid hsmexlem7 syl6eleqr rgen wa nfra1 nfv nfan cxp ituniiun imaiun
      ciun eqtri dmeqi ad2antll hsmexlem9 ad2antrl ssrab2 eqsstri sseli r1elssi
      crab sselda snssi tcss tcel mp1i sstrd ssralv mpan9 adantll simpll fveq1d
      sylanbrc eleq1d sylc fvex funimaex elpw mpbir ralrimiva syl21anc syl5eqel
      jctil hsmexlem3 hsmexlem8 eleqtrrd expr ralrimi expcom finds1 r19.21bi )
      KUCZUDRGUEZUURFSZRZLDUVALDUFTUGLUCZESZSZUHZUIUNZUEZUGFSZRZLDUFTUAUCZUVCSZ
      UHZUIUNZUEZUVJFSZRZLDUFZTUVJUJZUVCSZUHZUIUNZUEZUVRFSZRZLDUFZKUAUURUGUKZUV
      AUVILDUWFUUSUVGUUTUVHUWFGUVFUWFGTUURUVCSZUHZUIUNZUVFQUWFUWHUVEUKUWIUVFUKU
      WFUWGUVDTUURUGUVCULUMUWHUVEUIUOUPUQURUURUGFULUSUTKUAVAZUVAUVPLDUWJUUSUVNU
      UTUVOUWJGUVMUWJGUWIUVMQUWJUWHUVLUKUWIUVMUKUWJUWGUVKTUURUVJUVCULUMUWHUVLUI
      UOUPUQURUURUVJFULUSUTUURUVRUKZUVAUWDLDUWKUUSUWBUUTUWCUWKGUWAUWKGUWIUWAQUW
      KUWHUVTUKUWIUWAUKUWKUWGUVSTUURUVRUVCULUMUWHUVTUIUOUPUQURUURUVRFULUSUTUVIL
      DUVBDRZUVGHVBVCSZUVHUWLUVEVHVDUVEHVEVFUVGUWMRUVETVGZVHTUVDVIVJVHUHVKZVHTV
      LZUWNVHVDVMUWOVHTVNVOZWBUWLUVETUVBUHZHVEUVDUVBTUVBVPRZUVDUVBUKLVQZABUVBEV
      POVRVOVSUWLUWRUVBVEVFZUVBHVEVFZUWRHVEVFTVTZUWSUXAUWPUXCVMUWOVHTWAVOZUWTUV
      BTVPWCWDUWLJUCZHWEVFZJUVBWFZWGSZUFZUVBHWEVFZUXBUWLUVBUWORZUXIUXFJIUCZWFZW
      GSZUFZUXIIUVBUWODILVAZUXFJUXNUXHUXPUXMUXGWGUXLUVBWHWIWJPWKWLZUVBUXHRUXIUX
      JWNUXGUXHUVBUXGVPRUXGUXHVDUVBWMZUXGVPWOVOLWPZWQUXFUXJJUVBUXHUXEUVBHWEWRXE
      VOUVBHWSWTZUWRUVBHXAXBXCUVEHUVFUVFXFXDXBCFHNXGXHXIUVQUVJUDRZUWEUVQUYAXJUW
      DLDUVQUYALUVPLDXKUYALXLXMUVQUYAUWLUWDUVQUYAUWLXJZXJZUWBHUVOXNVBVCSZUWCUYC
      UWBUBUVBTUVJUBUCZESZSZUHZXQZUIUNZUEZUYDUWAUYJUVTUYIUKUWAUYJUKUVTTUBUVBUYG
      XQZUHUYIUVSUYLTUWSUVSUYLUKUWTABUVBUVJEVPUBOXOVOVSUBTUVBUYGXPXRUVTUYIUIUOV
      OXSUYCUXBUVOVHRZUYHVHVBRZUYHUIUNZUEZUVORZXJZUBUVBUFUYKUYDRUWLUXBUVQUYAUXT
      XTUYAUYMUVQUWLCFHUANYAYBUYCUYRUBUVBUYCUYEUVBRZXJZUYQUYNUYTUYEDRZUVQUYQUYB
      UYSVUAUVQUWLUYSVUAUYAUWLUYSXJUYEUWORUXFJUYEWFZWGSZUFZVUAUWLUVBUWOUYEUWLUX
      KUVBUWOVDDUWOUVBDUXOIUWOYGUWOPUXOIUWOYCYDYEUVBYFUPYHUWLUXIUYSVUDUXQUYSVUC
      UXHVDUXIVUDWNUYSVUCUVBWGSZUXHUYSVUBUVBVDVUCVUEVDUYEUVBYIUVBVUBUWTYJUPUVBU
      XGRVUEUXHVDUYSUXSUXGUVBUXRYKYLYMUXFJVUCUXHYNUPYOUXOVUDIUYEUWODIUBVAZUXFJU
      XNVUCVUFUXMVUBWGUXLUYEWHWIWJPWKYSYPYPUVQUYBUYSYQUVPUYQLUYEDLUBVAZUVNUYPUV
      OVUGUVMUYOVUGUVLUYHUKUVMUYOUKVUGUVKUYGTVUGUVJUVCUYFUVBUYEEULYRUMUVLUYHUIU
      OUPURYTXEUUAUYNUYHVHVDUYHUWNVHTUYGVIUWQWBUYHVHUXCUYHVPRUXDTUYGUVJUYFUUBUU
      CVOUUDUUEUUIUUFUVBUYHUVOHUYOUYJUBUYOXFUYJXFUUJUUGUUHUYAUWCUYDUKUVQUWLCFHU
      ANUUKYBUULUUMUUNUUOUUPUUQ $.

    $( Lemma for ~ hsmex .  Combining the above constraints, along with
       ~ itunitc and ~ tcrank , gives an effective constraint on the rank of
       ` S ` .  (Contributed by Stefan O'Rear, 14-Feb-2015.) $)
    hsmexlem5 $p |- ( d e. S -> ( rank ` d ) e.
          ( har ` ~P ( _om X. U. ran H ) ) ) $=
      ( wcel com con0 crnk cfv cima ciun cep coi cdm crn cuni cxp cpw char cres
      cv cid ctc cr1 wceq cdom wbr csn wral ssrab2 eqsstri sseli tcrank syl wfn
      itunifn fniunfv itunitc syl6reqr imaeq2d imaiun a1i 3eqtrd dmresi syl6eqr
      crab word rankon syl6eqelr eloni oiid 3syl dmeqd eqtr4d cwdom wa cvv omex
      wdomref mp1i cmpt crdg frfnom fneq1i mpbir ax-mp iunon hsmexlem9 eqeltrri
      mpan mprg fvssunirn eqid hsmexlem4 ancoms sseldi wss imassrn wf rankf frn
      sstri wfun ffun fvex funimaex mp2b elpw jctil ralrimiva hsmexlem3 eqeltrd
      syl21anc ) LUNZDRZYGUAUBZKSUAKUNZYGEUBZUBZUCZUDZUEUFZUGZSFUHUIZUJUKULUBZY
      HYIUOYNUMZUGZYPYHYIYNYTYHYIUAYGUPUBZUCZUAKSYLUDZUCZYNYHYGUQTUCUIZRYIUUBUR
      DUUEYGDJUNHUSUTJIUNZVAUPUBVBZIUUEVSUUEPUUGIUUEVCVDVEYGVFVGYHUUAUUCUAYHUUC
      YKUHUIZUUAYHYKSVHUUCUUHURABYGEDOVIKSYKVJVGABYGEOVKVLVMUUDYNURYHKUASYLVNVO
      VPZYNVQVRYHYOYSYHYNTRYNVTYOYSURYHYNYITUUIYGWAWBYNWCYNWDWEWFWGYHSSWHUTZYQT
      RZYMTUKRZYMUEUFZUGZYQRZWIZKSVBYPYRRSWJRZUUJYHWKWJSWLWMUUKYHISUUFFUBZUDZYQ
      TFSVHZUUSYQURUUTCWJHCUNUJUKULUBWNZHUKULUBZWOSUMZSVHUVBUVAWPSFUVCNWQWRISFV
      JWSUURTRZUUSTRZISUUQUVDISVBUVEWKISUURWJWTXCCFHINXAXDXBVOYHUUPKSYHYJSRZWIZ
      UUOUULUVGYJFUBZYQUUNFYJXEUVFYHUUNUVHRABCDEFUUMHIJKLMNOPUUMXFZXGXHXIUULYMT
      XJYMUAUHZTUAYLXKUUETUAXLZUVJTXJXMUUETUAXNWSXOYMTUVKUAXPYMWJRXMUUETUAXQUAY
      LYJYKXRXSXTYAWRYBYCSYMYQSUUMYOKUVIYOXFYDYFYE $.

    $( Lemma for ~ hsmex .  (Contributed by Stefan O'Rear, 14-Feb-2015.) $)
    hsmexlem6 $p |- S e. _V $=
      ( cr1 wcel con0 com crn cuni cxp cpw char cfv fvex cv crnk hsmexlem5 cima
      cdm cdom wbr csn ctc wral crab ssrab2 eqsstri sseli harcl wfn wceq r1fnon
      wb fndm ax-mp eleqtrri rankr1ag sylancl mpbird ssriv ssexi ) DUAFUBUCUDUE
      ZUFUGZRUGZVQRUHLDVRLUIZDSZVSVRSZVSUJUGVQSZABCDEFGHIJKLMNOPQUKVTVSRTULUCZS
      VQRUMZSWAWBVGDWCVSDJUIHUNUOJIUIUPUQUGURZIWCUSWCPWEIWCUTVAVBVQTWDVPVCRTVDW
      DTVEVFTRVHVIVJVSVQVKVLVMVNVO $.
  $}

  ${
    $d a b c d e f s x y z X $.
    $( The collection of hereditarily size-limited well-founded sets comprise a
       set.  The proof is that of Randall Holmes at
       ~ http://math.boisestate.edu/~~holmes/holmes/hereditary.pdf , with
       modifications to use Hartogs' theorem instead of the weak variant
       (inconsequentially weakening some intermediate results), and making the
       well-foundedness condition explicit to avoid a direct dependence on
       ~ ax-reg .  (Contributed by Stefan O'Rear, 14-Feb-2015.) $)
    hsmex $p |- ( X e. V -> { s e. U. ( R1 " On ) |
            A. x e. ( TC ` { s } ) x ~<_ X } e. _V ) $=
      ( va vb vc vd ve vf cv cdom cfv cuni cvv wceq cmpt crdg com cres wbr wral
      vy vz csn ctc cr1 con0 cima crab wcel ralbidv rabbidv eleq1d cxp cpw char
      breq2 crnk cep coi vex rdgeq2 unieq cbvmptv rdgeq1 ax-mp syl6eq hsmexlem6
      eqid reseq1d vtoclg ) AKZEKZLUAZADKUEUFMZUBZDUGUHUINZUJZOUKVMCLUAZAVPUBZD
      VRUJZOUKECBVNCPZVSWBOWCVQWADVRWCVOVTAVPVNCVMLURULUMUNFGHVSIOJOJKZNZQZIKZR
      ZSTZQZHOVNHKUOUPUQMQVNUPUQMRSTZUSUCKUDKWJMMUIUTVAZVNDAUCUDEVBWKVJIFOWIGOG
      KZNZQZFKZRZSTWGWPPZWHWQSWRWHWFWPRZWQWGWPWFVCWFWOPWSWQPJGOWEWNWDWMVDVEWPWF
      WOVFVGVHVKVEVSVJWLVJVIVL $.

    $( The set of hereditary size-limited sets, assuming ~ ax-reg .
       (Contributed by Stefan O'Rear, 11-Feb-2015.) $)
    hsmex2 $p |- ( X e. V -> { s | A. x e. ( TC ` { s } ) x ~<_ X } e. _V ) $=
      ( wcel cv cdom wbr csn ctc cfv wral cab cr1 con0 cima cuni crab cvv wceq
      unir1 rabeq ax-mp rabab eqtr2i hsmex syl5eqel ) CBEAFCGHADFIJKLZDMZUHDNOP
      QZRZSUKUHDSRZUIUJSTUKULTUAUHDUJSUBUCUHDUDUEABCDUFUG $.

    $( The set of hereditary size-limited sets, assuming ~ ax-reg , using
       strict comparison (an easy corollary by separation).  (Contributed by
       Stefan O'Rear, 11-Feb-2015.) $)
    hsmex3 $p |- ( X e. V -> { s | A. x e. ( TC ` { s } ) x ~< X } e. _V ) $=
      ( wcel cv csdm wbr csn ctc cfv wral cab cdom wss cvv ralimi ss2abi hsmex2
      sdomdom ssexg sylancr ) CBEAFZCGHZADFIJKZLZDMZUCCNHZAUELZDMZOUJPEUGPEUFUI
      DUDUHAUEUCCTQRABCDSUGUJPUAUB $.
  $}


$(
###############################################################################
  ZFC (ZERMELO-FRAENKEL WITH CHOICE) SET THEORY
###############################################################################

  In this section we add the Axiom of Choice ~ ax-ac , as well as weaker forms
  such as the axiom of countable choice ~ ax-cc and dependent choice ~ ax-dc .
  We introduce these weaker forms so that theorems that do not need the full
  power of the axiom of choice, but need more than simple ZF, can use these
  intermediate axioms instead.

  The combination of the Zermelo-Fraenkel axioms and the axiom of choice is
  often abbreviated as ZFC.  The axiom of choice is widely accepted, and ZFC is
  the most commonly-accepted fundamental set of axioms for mathematics.

  However, there have been and still are some lingering controversies about the
  Axiom of Choice.  The axiom of choice does not satisfy those who wish to have
  a constructive proof (e.g., it will not satisfy intuitionistic logic).  Thus,
  we make it easy to identify which proofs depend on the axiom of choice or its
  weaker forms.

$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  ZFC Set Theory - add Countable Choice and Dependent Choice
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Countable Choice
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d f x z $.
    $( The axiom of countable choice (CC), also known as the axiom of
       denumerable choice.  It is clearly a special case of ~ ac5 , but is weak
       enough that it can be proven using DC (see ~ axcc ).  It is, however,
       strictly stronger than ZF and cannot be proven in ZF. It states that any
       countable collection of nonempty sets must have a choice function.
       (Contributed by Mario Carneiro, 9-Feb-2013.) $)
    ax-cc $a |- ( x ~~ _om ->
       E. f A. z e. x ( z =/= (/) -> ( f ` z ) e. z ) ) $.
  $}

  ${
    $d A a f z $.  $d A k n $.  $d A f n $.  $d F f g $.  $d G g n $.
    $d K n $.  $d n z $.
    axcc2lem.1 $e |- K = ( n e. _om |->
                       if ( ( F ` n ) = (/) , { (/) } , ( F ` n ) ) ) $.
    axcc2lem.2 $e |- A = ( n e. _om |-> ( { n } X. ( K ` n ) ) ) $.
    axcc2lem.3 $e |- G = ( n e. _om |-> ( 2nd ` ( f ` ( A ` n ) ) ) ) $.
    $( Lemma for ~ axcc2 .  (Contributed by Mario Carneiro, 8-Feb-2013.) $)
    axcc2lem $p |- E. g ( g Fn _om /\ A. n e. _om
                    ( ( F ` n ) =/= (/) -> ( g ` n ) e. ( F ` n ) ) ) $=
      ( vz c0 wne cfv wcel wi com wa cvv wceq vk va cv crn wral wfn c2nd fnmpti
      wex fvex w3a csn cxp snex xpex fvmpt2 mpan2 vex snnz iftrue neeq1d mpbiri
      cif 0ex wn iffalse df-ne biimpri eqnetrd pm2.61i p0ex ifex biimpi sylancr
      xpnz fnfvelrn mpan neeq1 fveq2 id eleq12d imbi12d rspccv syl5 mpdi impcom
      wb eleq2d adantr mpbid xp2nd syl 3ad2ant1 eqcomd ifnefalse 3ad2ant3 eqtrd
      3adant3 3eltr3d 3expia expcom ralrimiv omex fnex mp2an fneq1 fveq1 eleq1d
      imbi2d ralbidv anbi12d spcev wf1 cen wbr fmptd ax-mp sneq xpeq12d fvmpt3i
      wf a1i adantl eqeq2d eqeq1d xp11 sneqr syl6bi sylbid rgen2a mpbir2an wf1o
      dff13 f1f1orn f1oen ensym 3syl cmpt rneqi eqeltri wfun dmmptg mprg funmpt
      cdm funrnex mp2 breq1 raleq exbidv ax-cc vtocl mp2b exlimiiv ) KUCZLMZUUO
      BUCZNZUUOOZPZKAUDZUEZCUCZQUFZDUCZENZLMZUVEUVCNZUVFOZPZDQUEZRZCUIZBUVBFQUF
      ZUVGUVEFNZUVFOZPZDQUEZUVMDQUVEANZUUQNZUGNZFUVTUGUJZJUHZUVBUVQDQUVEQOZUVBU
      VQUWDUVBUVGUVPUWDUVBUVGUKZUWAUVEGNZUVOUVFUWDUVBUWAUWFOZUVGUWDUVBRZUVTUVEU
      LZUWFUMZOZUWGUWHUVTUVSOZUWKUVBUWDUWLUVBUWDUVSLMZUWLUWDUVSUWJLUWDUWJSOZUVS
      UWJTZUWIUWFUVEUNUVEGUJUOZDQUWJSAIUPUQZUWDUWILMZUWFLMZUWJLMZUVEDURZUSZUWDU
      WSUVFLTZLULZUVFVCZLMZUXCUXFUXCUXFUXDLMLVDUSUXCUXEUXDLUXCUXDUVFUTVAVBUXCVE
      ZUXEUVFLUXCUXDUVFVFUVGUXGUVFLVGVHVIVJUWDUWFUXELUWDUXESOUWFUXETZUXCUXDUVFV
      KUVEEUJVLDQUXESGHUPUQZVAVBZUWRUWSRUWTUWIUWFVOVMVNVIUWDUVSUVAOZUVBUWMUWLPZ
      AQUFUWDUXKDQUWJAUWPIUHQUVEAVPVQUUTUXLKUVSUVAUUOUVSTZUUPUWMUUSUWLUUOUVSLVR
      UXMUURUVTUUOUVSUUOUVSUUQVSUXMVTWAWBWCWDWEWFUWDUWLUWKWGUVBUWDUVSUWJUVTUWQW
      HWIWJUVTUWIUWFWKWLWRUWEUVOUWAUWDUVBUVOUWATZUVGUWDUWASOUXNUWBDQUWASFJUPUQW
      MWNUWEUWFUXEUVFUWDUVBUXHUVGUXIWMUVGUWDUXEUVFTUVBUVFLUXDUVFWOWPWQWSWTXAXBU
      VLUVNUVRRCFUVNQSOZFSOUWCXCQSFXDXEUVCFTZUVDUVNUVKUVRQUVCFXFUXPUVJUVQDQUXPU
      VIUVPUVGUXPUVHUVOUVFUVEUVCFXGXHXIXJXKXLVNQSAXMZUVAQXNXOZUVBBUIZUXQQSAYAZU
      VSUAUCZANZTZUVEUYATZPZUAQUEDQUEUXOUXTXCUXODQUWJSAUWNUXOUWDRUWPYBIXPXQUYED
      UAQUWDUYAQOZRZUYCUVSUYAULZUYAGNZUMZTZUYDUYGUYBUYJUVSUYFUYBUYJTUWDDUYAUWJU
      YJQAUYDUWIUYHUWFUYIUVEUYAXRUVEUYAGVSXSIUWPXTYCYDUYGUYKUWJUYJTZUYDUYGUVSUW
      JUYJUWDUWOUYFUWQWIYEUWDUYLUYDPUYFUWDUYLUWIUYHTZUWFUYITZRZUYDUWDUWRUWSUYLU
      YOWGUXBUXJUWIUWFUYHUYIYFVNUYMUYDUYNUVEUYAUXAYGWIYHWIYIYIYJDUAQSAYMYKUXQQU
      VAAYLQUVAXNXOUXRQSAYNQUVAAXCYOQUVAYPYQUBUCZQXNXOZUUTKUYPUEZBUIZPUXRUXSPUB
      UVAUVADQUWJYRZUDZSAUYTIYSUYTUUEZSOUYTUUAVUASOVUBQSUWNVUBQTDQDQUWJSUUBUWNU
      WDUWPYBUUCXCYTDQUWJUUDSUYTUUFUUGYTUYPUVATZUYQUXRUYSUXSUYPUVAQXNUUHVUCUYRU
      VBBUUTKUYPUVAUUIUUJWBUBKBUUKUULUUMUUN $.
  $}

  ${
    $d F f g m n $.
    $( A possibly more useful version of ax-cc using sequences instead of
       countable sets.  The Axiom of Infinity is needed to prove this, and
       indeed this implies the Axiom of Infinity.  (Contributed by Mario
       Carneiro, 8-Feb-2013.) $)
    axcc2 $p |- E. g ( g Fn _om /\ A. n e. _om
                    ( ( F ` n ) =/= (/) -> ( g ` n ) e. ( F ` n ) ) ) $=
      ( vm vf com cv csn cfv c0 wceq cif cmpt cxp c2nd nfcv fveq2 nffvmpt1 nffv
      cbvmpt eqeq1d ifbieq2d nfxp sneq xpeq12d fveq2d axcc2lem ) DFDGZHZUHDFUHC
      IZJKZJHZUJLZMZIZNZMZEABCDFUHUQIZEGZIZOIZMUNDBFUMBGZCIZJKZULVCLZBUMPDVEPUH
      VBKZUKVDUJVCULVFUJVCJUHVBCQZUAVGUBTDBFUPVBHZVBUNIZNBUPPDVHVIDVHPDFUMVBRUC
      VFUIVHUOVIUHVBUDUHVBUNQUETDBFVAVBUQIZUSIZOIBVAPDVKODOPDVJUSDUSPDFUPVBRSSV
      FUTVKOVFURVJUSUHVBUQQUFUFTUG $.
  $}

  ${
    $d F f g h k m $.  $d N f g h k m n $.
    axcc3.1 $e |- F e. _V $.
    axcc3.2 $e |- N ~~ _om $.
    $( A possibly more useful version of ~ ax-cc using sequences ` F ( n ) `
       instead of countable sets.  The Axiom of Infinity is needed to prove
       this, and indeed this implies the Axiom of Infinity.  (Contributed by
       Mario Carneiro, 8-Feb-2013.)  (Revised by Mario Carneiro,
       26-Dec-2014.) $)
    axcc3 $p |- E. f ( f Fn N /\ A. n e. N
                    ( F =/= (/) -> ( f ` n ) e. F ) ) $=
      ( vh vg vm cv wfn c0 wne cfv wcel wi wa com cvv wceq vk wral wex cmpt cen
      wbr relen brrelexi mptexg mp2b wf1o bren mpbi ccnv ccom axcc2 w3a wf f1of
      fnfco sylan2 adantlr 3adant1 nfmpt1 nfeq2 nf3an ffvelrnda eleq12d imbi12d
      nfv fveq2 neeq1d rspcv syl 3ad2antl3 f1ocnv fvco3 syldan f1ocnvfv1 fveq2d
      sylan fveq1 fvmpt2 mpan2 sylan9eq 3adant2 3eqtrd 3adantl2 3ad2ant3 eleq1d
      eqid 3expa eleq2d bitr3d sylibd com23 3exp com34 imp32 3impia ralrimi vex
      ex coex fneq1 imbi2d ralbidv anbi12d spcev syl2anc exlimdv mpi vtocle ) A
      JZDKZCLMZBJZXNNZCOZPZBDUBZQZAUCZUABDCUDZDRUEUFZDSOYDSOFDRUEUGUHBDCSUIUJUA
      JZYDTZDRGJZUKZGUCZYCYEYJFDRGULUMYGYIYCGYGHJZRKZIJZYFYHUNZUOZNZLMZYMYKNZYP
      OZPZIRUBZQZHUCYIYCPZHIYOUPYGUUBUUCHYGUUBYIYCYGUUBYIUQZYKYHUOZDKZXPXQUUENZ
      COZPZBDUBZYCUUBYIUUFYGYLYIUUFUUAYIYLDRYHURZUUFDRYHUSZRDYKYHUTVAVBVCUUDUUI
      BDYGUUBYIBBYFYDBDCVDVEUUBBVJYIBVJVFYGUUBYIXQDOZUUIPZYGYLUUAYIUUNPYGYLYIUU
      AUUNYGYLYIUUAUUNPYGYLYIUQZUUMUUAUUIUUOUUMUUAUUIPUUOUUMQZUUAXQYHNZYONZLMZU
      UQYKNZUUROZPZUUIYIYGUUMUUAUVBPZYLYIUUMQZUUQROZUVCYIDRXQYHUULVGZYTUVBIUUQR
      YMUUQTZYQUUSYSUVAUVGYPUURLYMUUQYOVKZVLUVGYRUUTYPUURYMUUQYKVKUVHVHVIVMVNVO
      UUPUUSXPUVAUUHUUPUURCLYGYIUUMUURCTZYLYGYIUUMUVIYGYIUUMUQUURUUQYNNZYFNZXQY
      FNZCYIUUMUURUVKTZYGYIUUMUVEUVMUVFYIRDYNURZUVEUVMYIRDYNUKUVNDRYHVPRDYNUSVN
      RDUUQYFYNVQWAVRVCYIUUMUVKUVLTYGUVDUVJXQYFDRXQYHVSVTVCYGUUMUVLCTYIYGUUMUVL
      XQYDNZCXQYFYDWBUUMCSOUVOCTEBDCSYDYDWKWCWDWEWFWGWLWHZVLUUPUUGUUROUVAUUHUUP
      UUGUUTUURUUOUUKUUMUUGUUTTYIYGUUKYLUULWIDRXQYKYHVQWAWJUUPUURCUUGUVPWMWNVIW
      OXCWPWQWRWSWTXAYBUUFUUJQAUUEYKYHHXBGXBXDXNUUETZXOUUFYAUUJDXNUUEXEUVQXTUUI
      BDUVQXSUUHXPUVQXRUUGCXQXNUUEWBWJXFXGXHXIXJWQXKXLXKXLXM $.
  $}

  ${
    $d A f n x $.  $d N f n $.  $d f ph $.  $d ps x $.
    axcc4.1 $e |- A e. _V $.
    axcc4.2 $e |- N ~~ _om $.
    axcc4.3 $e |- ( x = ( f ` n ) -> ( ph <-> ps ) ) $.
    $( A version of ~ axcc3 that uses wffs instead of classes.  (Contributed by
       Mario Carneiro, 7-Apr-2013.) $)
    axcc4 $p |- ( A. n e. N E. x e. A ph ->
                    E. f ( f : N --> A /\ A. n e. N ps ) ) $=
      ( wrex wral cv wfn wcel wi wa wex ralimi syl6 crab c0 wne cfv rabex axcc3
      rabn0 pm2.27 sylbir elrab syl6ib ral2imi simpl anim2d ffnfv syl6ibr simpr
      wf adantld jcad eximdv mpi ) ACDKZFGLZEMZGNZACDUAZUBUCZFMVEUDZVGOZPZFGLZQ
      ZERGDVEURZBFGLZQZEREFVGGACDHUEIUFVDVMVPEVDVMVNVOVDVMVFVIDOZFGLZQVNVDVLVRV
      FVDVLVQBQZFGLZVRVCVKVSFGVCVKVJVSVCVHVKVJPACDUGVHVJUHUIABCVIDJUJUKULZVSVQF
      GVQBUMSTUNFGDVEUOUPVDVLVOVFVDVLVTVOWAVSBFGVQBUQSTUSUTVAVB $.
  $}

  ${
    $d f g x y $.
    $( An ~ ax-cc equivalent: every set has choice sets of length ` _om ` .
       (Contributed by Mario Carneiro, 31-Aug-2015.) $)
    acncc $p |- AC_ _om = _V $=
      ( vx vy vg vf com wacn cvv cv wcel cfv wral wex cpw c0 cdif cmap co wb wa
      csn vex isacn mp2an wfn wne wi axcc2 wf elmapi ffvelrn eldifsni syl sylan
      omex id syl5com ralimdva adantld eximdv mpi mprgbir 2th eqriv ) AEFZGAHZV
      DIZVEGIZVFBHZCHZJVHDHZJZIZBEKZCLZDVEMZNTOZEPQZVGEGIVFVNDVQKRAUAZUNBEDCGGV
      EUBUCVJVQIZVIEUDZVKNUEZVLUFZBEKZSZCLVNCBVJUGVSWDVMCVSWCVMVTVSWBVLBEVSVHEI
      ZSWAWBVLVSEVPVJUHZWEWAVJVPEUIWFWESVKVPIWAEVPVHVJUJVKVONUKULUMWBUOUPUQURUS
      UTVAVRVBVC $.
  $}

  ${
    $d A f n x $.  $d N f n $.  $d f ph $.  $d ps x $.
    axcc4dom.1 $e |- A e. _V $.
    axcc4dom.2 $e |- ( x = ( f ` n ) -> ( ph <-> ps ) ) $.
    $( Relax the constraint on ~ axcc4 to dominance instead of equinumerosity.
       (Contributed by Mario Carneiro, 18-Jan-2014.) $)
    axcc4dom $p |- ( ( N ~<_ _om /\ A. n e. N E. x e. A ph ) ->
                    E. f ( f : N --> A /\ A. n e. N ps ) ) $=
      ( com cdom wbr wral wf wa wex cen wi raleq breq1 wrex cv csdm brdom2 wcel
      wo cfn isfinite ac6sfi ex sylbir cif wceq feq2 anbi12d imbi12d omex enref
      exbidv elimhyp axcc4 dedth jaoi sylbi imp ) GJKLZACDUAZFGMZGDEUBZNZBFGMZO
      ZEPZVFGJUCLZGJQLZUFVHVMRZGJUDVNVPVOVNGUGUEZVPGUHVQVHVMABFCGDEIUIUJUKVOVPV
      GFVOGJULZMZVRDVINZBFVRMZOZEPZRGJGVRUMZVHVSVMWCVGFGVRSWDVLWBEWDVJVTVKWAGVR
      DVIUNBFGVRSUOUSUPABCDEFVRHVOVRJQLJJQLGJGVRJQTJVRJQTJUQURUTIVAVBVCVDVE $.
  $}

  ${
    $d A b c n $.  $d A m n y $.  $d B b c $.  $d C c k n $.  $d b j k n $.
    $d b n y $.
    domtriomlem.1 $e |- A e. _V $.
    domtriomlem.2 $e |- B = { y | ( y C_ A /\ y ~~ ~P n ) } $.
    domtriomlem.3 $e |- C = ( n e. _om |->
                              ( ( b ` n ) \ U_ k e. n ( b ` k ) ) ) $.
    $( Lemma for ~ domtriom .  (Contributed by Mario Carneiro, 9-Feb-2013.) $)
    domtriomlem $p |- ( -. A e. Fin -> _om ~<_ A ) $=
      ( vc wcel cv com wral wex wbr wi wa cen vm vj cfn wn cfv cdom wfn wne wss
      c0 cpw cab cvv pwex simpl ss2abi df-pw sseqtr4i ssexi eqeltri enref axcc3
      omex nfv nfra1 nfan ccrd nnfi pwfi sylib ficardom isinf wceq breq2 anbi2d
      exbidv rspcv syl5 3syl finnum cardid2 entr expcom 4syl anim2d eximdv syld
      cdm neeq1i abn0 bitri syl6ibr com12 adantr rsp adantl mpdd ralrimi 3expib
      3adant2 mpi axcc2 w3a simp2 fvex sseq1 breq1 anbi12d elab2 simprbi ralimi
      ciun cdif weq pweq breq12d cbvralv csdm csuc peano2 omelon onelssi ssralv
      fveq2 pwsdompw eldifi syl6bi sseld imp sylanbrc word nnord eleq1 3ad2ant3
      ex wel 3impib pm2.21dd 3exp syl sdomdif syl5bi difss fvmpt2 mpan2 sylibrd
      syl6 neeq1d syl5com jca wf1 wf eleq2d simplbi com23 com13 ffnfv ordtri3or
      syl9 syl2an cbviunv iuneq1 syl5eq difeq12d eleq12d rspccv mpbidi 3ad2ant1
      w3o syl11 syl5ib ssiun2 3ad2ant2 eldifbd 3adant1 2a1 ssiun2s eldifn 3jaoi
      a1i 3imp 3expia mpid com3r expd ralrimd ralrimiv dff13 19.8a brdom sylibr
      exlimdv mpd exlimiv ) BUCLUDZFMZGMZUEZCLZFNOZGPZNBUFQZUWOUWQNUGZCUJUHZUWS
      RZFNOZSZGPUXAGFCNCAMZBUIZUXHUWPUKZTQZSZAULZUMIUXMBUKZBHUNUXMUXIAULUXNUXLU
      XIAUXIUXKUOUPABUQURUSUTNVCVAVBUWOUXGUWTGUWOUXCUXFUWTUWOUXFUWTUXCUWOUXFSZU
      WSFNUWOUXFFUWOFVDUXEFNVEVFUXOUWPNLZUXDUWSUWOUXPUXDRUXFUXPUWOUXDUXPUWOUXLA
      PZUXDUXPUWOUXIUXHUXJVGUEZTQZSZAPZUXQUXPUXJUCLZUXRNLZUWOUYARUXPUWPUCLUYBUW
      PVHUWPVIVJZUXJVKUWOUXIUXHUAMZTQZSZAPZUANOUYCUYAABUAVLUYHUYAUAUXRNUYEUXRVM
      ZUYGUXTAUYIUYFUXSUXIUYEUXRUXHTVNVOVPVQVRVSUXPUXTUXLAUXPUXSUXKUXIUXPUYBUXJ
      VGWHLUXRUXJTQZUXSUXKRUYDUXJVTUXJWAUXSUYJUXKUXHUXRUXJWBWCWDWEWFWGUXDUXMUJU
      HUXQCUXMUJIWIUXLAWJWKWLWMWNUXFUXPUXERUWOUXEFNWOWPWQWRWTWSWFXAUWTUXBGUWTKM
      ZNUGZUWPUYKUEZUWPDUEZLZFNOZSZKPZUXBUWTUYLUYNUJUHZUYORZFNOZSZKPUYRKFDXBUWT
      VUBUYQKUWTUYLVUAUYQUWTUYLVUAXCUYLUYPUWTUYLVUAXDUWTVUAUYPUYLUWTVUASZUYOFNU
      WTVUAFUWSFNVEZUYTFNVEVFVUCUXPUYSUYOUWTUXPUYSRVUAUWTUWRUXJTQZFNOZUXPUYSUWS
      VUEFNUWSUWRBUIZVUEUXLVUGVUESAUWRCUWPUWQXEZUXHUWRVMUXIVUGUXKVUEUXHUWRBXFUX
      HUWRUXJTXGXHIXIZXJXKUXPVUFUWREUWPEMZUWQUEZXLZXMZUJUHZUYSVUFVUKVUJUKZTQZEN
      OZUXPVUNVUEVUPFENFEXNZUWRVUKUXJVUOTUWPVUJUWQYDZUWPVUJXOXPXQUXPVUQVULUWRXR
      QZVUNUXPVUQVUPEUWPXSZOZVUTUXPVVANLVVANUIVUQVVBRUWPXTNVVAYAYBVUPEVVANYCVSU
      XPVVBVUTUWQEFYEYOWGVULUWRUUAUUGUUBUXPUYNVUMUJUXPVUMUMLUYNVUMVMVUMUWRVUHUW
      RVULUUCUSFNVUMUMDJUUDUUEZUUHUUFUUIWNVUAUXPUYTRUWTUYTFNWOWPWQWRWTUUJWSWFXA
      UWTUYQUXBKUWTUYLUYPUXBUWTUYLUYPXCZNBUYKUUKZKPZUXBVVDVVEVVFVVDNBUYKUULZVUJ
      UYKUEZUYMVMZEFXNZRZFNOZENOZVVEVVDUYLUYMBLZFNOZVVGUWTUYLUYPXDUWTUYPVVOUYLU
      WTUYPSVVNFNUWTUYPFVUDUYOFNVEZVFUWTUYPUXPVVNRUXPUYPUWTVVNUXPUYPUYOUWTVVNRU
      YPUXPUYOUYOFNWOZWMUXPUWTUYOVVNUXPUWTUWSUYOVVNRUWTUXPUWSUWSFNWOWMUXPUYOUYM
      UWRLZUWSVVNUXPUYOUYMVUMLZVVRUXPUYNVUMUYMVVCUUMZUYMUWRVULYFZYGUWSUWRBUYMUW
      SVUGVUEVUIUUNYHUUSWGUUOWGUUPYIWRWTFNBUYKUUQYJUYPUWTVVMUYLUYPVVLENUYPVUJNL
      ZVVKFNVVPVWBFVDUYPVWBUXPVVKVWBUXPSZVVIUYPVVJVWCVVIEFYPZVVJFEYPZUVIZUYPVVJ
      RZVWBVUJYKUWPYKVWFUXPVUJYLUWPYLVUJUWPUURUUTVWBUXPVVIVWFVWGRVWFVWBUXPVVIXC
      ZVWGVWDVWHVWGRVVJVWEVWDVWHUYPVVJVWDVWHUYPXCUYMVULLZVVJVWDVWHUYPVWIVWHUYPS
      ZUYMVUKLZVWDVWIVWHUYPVWKVWHUYPVVHVUKUBVUJUBMZUWQUEZXLZXMZLZVWKVWBUXPUYPVW
      PRVVIVVSFNOVWBVWPUYPVVSVWPFVUJNVURUYMVVHVUMVWOUWPVUJUYKYDVURUWRVUKVULVWNV
      USVURVULUBUWPVWMXLVWNEUBUWPVUKVWMVUJVWLUWQYDUVAUBUWPVUJVWMUVBUVCUVDUVEUVF
      UYPVVSFNVVPUXPUYOVVSUYPVVQVVTUVGZWRUVJUVHZVVIVWBVWPVWKRUXPVWPVVHVUKLVVIVW
      KVVHVUKVWNYFVVHUYMVUKYMUVKYNWGYIVWDVUKVULUYMEUWPVUKUVLYHVRYQVWHUYPVWIUDVW
      DVWJUYMUWRVULVWHUYPVVSUXPVWBUYPVVSRVVIUYPUXPVVSVWQWMUVMYIZUVNUVOYRYSVVJVW
      HUYPUVPVWEVWHUYPVVJVWEVWHUYPXCUYMVWNLZVVJVWEVWHUYPVWTVWJVVSVWEVWTVWSVVSVV
      RVWEVWTVWAVWEUWRVWNUYMUBVUJVWMUWPUWRVWLUWPUWQYDUVQYHVRVRYQVWEVWHUYPVWTUDZ
      VWHUYPVXARRVWEVWHUYPVWPVXAVWRVVIVWBVWPVXARUXPVVIVWPUYMVWOLVXAVVHUYMVWOYMU
      YMVUKVWNUVRYGYNWGUVTUWAYRYSUVSWMUWBUWCUWDUWEUWFUWGYNEFNBUYKUWHYJVVEKUWIYT
      NBKHUWJUWKWSUWLUWMUWNYT $.
  $}

  ${
    $d A b n y $.  $d b j k m n y $.
    domtriom.1 $e |- A e. _V $.
    $( Trichotomy of equinumerosity for ` _om ` , proven using countable
       choice.  Equivalently, all Dedekind-finite sets (as in ~ isfin4-2 ) are
       finite in the usual sense and conversely.  (Contributed by Mario
       Carneiro, 9-Feb-2013.) $)
    domtriom $p |- ( _om ~<_ A <-> -. A ~< _om ) $=
      ( vy vn vm vb vj vk com cdom wbr csdm wn domnsym cfn cfv ciun cdif fveq2
      cv wcel isfinite wss cpw cen wa cab cmpt eqid weq cbviunv iuneq1 difeq12d
      syl5eq cbvmptv domtriomlem sylnbir impbii ) IAJKZAILKZMIANUTAOUAUSAUBCACT
      ZAUCVADTZUDUEKUFCUGZEIETZFTZPZGVDGTZVEPZQZRZUHHDFBVCUIEDIVJVBVEPZHVBHTZVE
      PZQZREDUJZVFVKVIVNVDVBVESVOVIHVDVMQVNGHVDVHVMVGVLVESUKHVDVBVMULUNUMUOUPUQ
      UR $.
  $}

  $( Under countable choice, the IV-finite sets (Dedekind-finite) coincide with
     I-finite (finite in the usual sense) sets.  (Contributed by Mario
     Carneiro, 16-May-2015.) $)
  fin41 $p |- Fin4 = Fin $=
    ( vx cfin4 cfn cv com csdm wbr cdom wn vex domtriom con2bii isfinite cvv wb
    wcel isfin4-2 ax-mp 3bitr4ri eqriv ) ABCADZEFGZEUAHGZIZUACPUABPZUCUBUAAJZKL
    UAMUANPUEUDOUFUANQRST $.

  ${
    $d x y w A $.
    dominf.1 $e |- A e. _V $.
    $( A nonempty set that is a subset of its union is infinite.  This version
       is proved from ~ ax-cc .  See ~ dominfac for a version proved from
       ~ ax-ac .  The axiom of Regularity is used for this proof, via
       ~ inf3lem6 , and its use is necessary: otherwise the set ` A = { A } `
       or ` A = { (/) , A } ` (where the second example even has nonempty
       well-founded part) provides a counterexample.  (Contributed by Mario
       Carneiro, 9-Feb-2013.) $)
    dominf $p |- ( ( A =/= (/) /\ A C_ U. A ) -> _om ~<_ A ) $=
      ( vx vy vw cv c0 wne cuni wss wa com cdom wbr wi eqid csdm wn cfn wcel id
      wceq neeq1 unieq sseq12d anbi12d breq2 imbi12d cpw cvv cin crab cmpt crdg
      cres wf1 inf3lem6 vpwex f1dom pwfi biimpi isfinite 3imtr3i con3i domtriom
      vex 3imtr4i 3syl vtocl ) CFZGHZVJVJIZJZKZLVJMNZOAGHZAAIZJZKZLAMNZOCABVJAU
      BZVNVSVOVTWAVKVPVMVRVJAGUCWAVJAVLVQWAUAVJAUDUEUFVJALMUGUHVNLVJUIZDUJEFVJU
      KDFJEVJULUMZGUNLUOZUPLWBMNZVOCDEAAWDWCWCPWDPBBUQLWBWDCURZUSWBLQNZRVJLQNZR
      WEVOWHWGVJSTZWBSTZWHWGWIWJVJUTVAVJVBWBVBVCVDWBWFVEVJCVFVEVGVHVI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Dependent Choice
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d f n x y z $.
    $( Dependent Choice.  Axiom DC1 of [Schechter] p. 149.  This theorem is
       weaker than the Axiom of Choice but is stronger than Countable Choice.
       It shows the existence of a sequence whose values can only be shown to
       exist (but cannot be constructed explicitly) and also depend on earlier
       values in the sequence.  Dependent choice is equivalent to the statement
       that every (nonempty) pruned tree has a branch.  This axiom is redundant
       in ZFC; see ~ axdc .  But ZF+DC is strictly weaker than ZF+AC, so this
       axiom provides for theorems that do not need the full power of AC.
       (Contributed by Mario Carneiro, 25-Jan-2013.) $)
    ax-dc $a |- ( ( E. y E. z y x z /\ ran x C_ dom x ) ->
                  E. f A. n e. _om ( f ` n ) x ( f ` suc n ) ) $.
  $}

  ${
    $d s t $.  $d s t x $.  $d f x $.  $d f n s t x $.
    $( The Axiom of Dependent Choice implies Infinity, the way we have stated
       it.  Thus, we have _Inf+AC_ implies _DC_ and _DC_ implies _Inf_, but
       _AC_ does not imply _Inf_.  (Contributed by Mario Carneiro,
       25-Jan-2013.) $)
    dcomex $p |- _om e. _V $=
      ( vn vf vs vt cfv c1o cop csn wbr com wral wcel cdm wss wceq fvex syl wex
      vx cv csuc cvv wne 1n0 df-br elsni opth1 sylbi tz6.12i mpsyl vex con0 1on
      c0 elexi breldm ralimi dfss3 sylibr dmex ssex crn wa wi snex wb fvsn wfun
      funsn snid dmsnop eleqtrri funbrfvb mp2an mpbi breq12 spc2ev breq 2exbidv
      ax-mp mpbiri ssid rnsnop 3sstr4i rneq dmeq sseq12d syl2anc ralbidv exbidv
      pm5.5 bitrd ax-dc vtocl exlimiiv ) ATZBTZEZWPUAZWQEZFFGZHZIZAJKZJUBLZBXDJ
      WQMZNZXEXDWPXFLZAJKXGXCXHAJXCWPFWQIZXHFUNUCXCWRFOZXIUDXCWRWTGZXBLZXJWRWTX
      BUEXLXKXAOXJXKXAUFWRWTFFWPWQPWSWQPUGQUHWPFWQUIUJWPFWQAUKFULUMUOZUPQUQAJXF
      URUSJXFWQBUKUTVAQCTZDTZSTZIZDRCRZXPVBZXPMZNZVCZWRWTXPIZAJKZBRZVDZXDBRZSXB
      XAVEXPXBOZYFYEYGYHXRYAYFYEVFYHXRXNXOXBIZDRCRZFFXBIZYJFXBEFOZYKFFXMXMVGXBV
      HFXBMZLYLYKVFFFXMXMVIFFHZYMFXMVJFFXMVKZVLFFXBVMVNVOYIYKCDFFXMXMXNFXOFXBVP
      VQVTYHXQYICDXNXOXPXBVRVSWAYHYAXBVBZYMNYNYNYPYMYNWBFFXMWCYOWDYHXSYPXTYMXPX
      BWEXPXBWFWGWAYBYEWKWHYHYDXDBYHYCXCAJWRWTXPXBVRWIWJWLSCDBAWMWNWO $.
  $}

  ${
    $d A g h $.  $d A h x y $.  $d F g h $.  $d F h x y $.  $d G g k $.
    $d G k x y $.  $d R h k r x $.  $d r x y $.
    axdc2lem.1 $e |- A e. _V $.
    axdc2lem.2 $e |- R = { <. x , y >. | ( x e. A /\ y e. ( F ` x ) ) } $.
    axdc2lem.3 $e |- G = ( x e. _om |-> ( h ` x ) ) $.
    $( Lemma for ~ axdc2 .  We construct a relation ` R ` based on ` F ` such
       that ` x R y ` iff ` y e. ( F `` x ) ` , and show that the "function"
       described by ~ ax-dc can be restricted so that it is a real function
       (since the stated properties only show that it is the superset of a
       function).  (Contributed by Mario Carneiro, 25-Jan-2013.)  (Revised by
       Mario Carneiro, 26-Jun-2015.) $)
    axdc2lem $p |- ( ( A =/= (/) /\ F : A --> ( ~P A \ { (/) } ) ) -> E. g
      ( g : _om --> A /\ A. k e. _om ( g ` suc k ) e. ( F ` ( g ` k ) ) ) ) $=
      ( c0 wa cfv com wex wcel wceq cvv vr wne cpw csn cdif wf cv csuc wbr wral
      cdm crn wss crab ffvelrn eldifsni sylib syl ralrimiva rabid2 sylibr copab
      n0 dmeqi cab 19.42v abbii dmopab df-rab eqtri syl6reqr neeq1d biimparc wi
      3eqtr4i eldifi elelpwi expcom expimpd exlimdv alrimiv rneqi rnopab sseq1i
      wal 3syl abss bitri sseqtr4d adantl cun cuni cxp fvrn0 ax-mp sseli anim2i
      elssuni ssopab2i df-xp 3sstr4i pwex difexg ssex p0ex unexg sylancl uniexg
      frn xpexg sylancr ssexg vex eldm exbii bitr2i dmeq syl5bb sseq12d anbi12d
      rneq ralbidv exbidv imbi12d ax-dc vtoclg mp2and simpr fveq2 suceq breq12d
      breq fveq2d rspccv fvex breldm syl6 ex eleq1 fveq1 adantll eleq2 ad2antrr
      imp wb mpbid fmptd impcom fvmpt peano2 fvmptg eleq2d brab simprbi syl6bir
      anbi2d ralimia adantr cmpt rgenw eqid fmpt mpbi dcomex rnex mp3an eqeltri
      unex fex2 feq1 eleq12d spcev syl2anc exlimiv sylc ) CMUBZCCUCZMUDZUEZHUFZ
      NZGUGZFUGZOZUWBUHZUWCOZDUIZGPUJZFQZUVTPCEUGZUFZUWEUWJOZUWBUWJOZHOZRZGPUJZ
      NZEQZUWADUKZMUBZDULZUWSUMZUWIUVTUWTUVPUVTUWSCMUVTCBUGZAUGZHOZRZBQZACUNZUW
      SUVTUXGACUJCUXHSUVTUXGACUVTUXDCRZNZUXEUVSRZUXGCUVSUXDHUOZUXKUXEMUBUXGUXEU
      VQMUPBUXEVCUQURUSUXGACUTVAUWSUXIUXFNZABVBZUKZUXHDUXNKVDUXMBQZAVEUXIUXGNZA
      VEUXOUXHUXPUXQAUXIUXFBVFVGUXMABVHUXGACVIVOVJVKZVLVMUVTUXBUVPUVTUXACUWSUVT
      UXMAQZUXCCRZVNZBWEZUXACUMZUVTUYABUVTUXMUXTAUVTUXIUXFUXTUXJUXKUXEUVQRZUXFU
      XTVNUXLUXEUVQUVRVPUXFUYDUXTUXCUXECVQVRWFVSVTWAUYCUXSBVEZCUMUYBUXAUYECUXAU
      XNULUYEDUXNKWBUXMABWCVJWDUXSBCWGWHVAUXRWIWJUWADTRZUWTUXBNZUWIVNZUWADCHULZ
      UVRWKZWLZWMZUMUYLTRZUYFUXNUXIUXCUYKRZNZABVBDUYLUXMUYOABUXFUYNUXIUXEUYKUXC
      UXEUYJRUXEUYKUMHUXDWNUXEUYJWRWOWPWQWSKABCUYKWTXAUWACTRUYKTRZUYMJUWAUYJTRZ
      UYPUWAUYITRZUVRTRUYQUWAUYIUVSUMZUYRUVTUYSUVPCUVSHXIWJUYIUVSUVQTRUVSTRCJXB
      UVQUVRTXCWOXDURXEUYIUVRTTXFXGUYJTXHURCUYKTTXJXKDUYLTXLXKUXDUXCUAUGZUIBQZA
      QZUYTULZUYTUKZUMZNZUWDUWFUYTUIZGPUJZFQZVNUYHUADTUYTDSZVUFUYGVUIUWIVUJVUBU
      WTVUEUXBVUBVUDMUBZVUJUWTVUKUXDVUDRZAQVUBAVUDVCVULVUAABUXDUYTAXMXNXOXPVUJV
      UDUWSMUYTDXQZVLXRVUJVUCUXAVUDUWSUYTDYAVUMXSXTVUJVUHUWHFVUJVUGUWGGPUWDUWFU
      YTDYLYBYCYDUAABFGYEYFURYGUVPUVTYHUWHUVTUWRVNFUWHUVTUWRUWHUVTNPCIUFZUWEIOZ
      UWBIOZHOZRZGPUJZUWRUVTUWHVUNUVTUWSCSZUWHVUNVNUXRVUTUWHVUNVUTUWHNZAPUXDUWC
      OZCIVVAUXDPRZNVVBUWSRZVVBCRZUWHVVCVVDVUTUWHVVCVVDUWHVVCVVBUXDUHZUWCOZDUIZ
      VVDUWGVVHGUXDPUWBUXDSZUWDVVBUWFVVGDUWBUXDUWCYIVVIUWEVVFUWCUWBUXDYJYMYKYNV
      VBVVGDUXDUWCYOVVFUWCYOYPYQUUDUUAVUTVVDVVEUUEUWHVVCUWSCVVBUUBUUCUUFLUUGYRU
      RUUHUWHVUSUVTUWGVURGPUWBPRZUWGVUPVUODUIZVURVVJVUPUWDVUOUWFDAUWBVVBUWDPIUX
      DUWBUWCYILUWBUWCYOUUIVVJUWEPRUWFTRVUOUWFSUWBUUJUWEUWCYOAUWEVVBUWFPTIUXDUW
      EUWCYILUUKXGYKVVKVUPCRZVURUXMVVLUXCVUQRZNVVLVURNABVUPVUODUWBIYOUWEIYOUXDV
      UPSZUXIVVLUXFVVMUXDVUPCYSVVNUXEVUQUXCUXDVUPHYIUULXTUXCVUOSVVMVURVVLUXCVUO
      VUQYSUUPKUUMUUNUUOUUQUURUWQVUNVUSNEIIAPVVBUUSZTLPUWCULZUVRWKZVVOUFZPTRVVQ
      TRVVOTRVVBVVQRZAPUJVVRVVSAPUWCUXDWNUUTAPVVQVVBVVOVVOUVAUVBUVCUVDVVPUVRUWC
      FXMUVEXEUVHPVVQVVOTTUVIUVFUVGUWJISZUWKVUNUWPVUSPCUWJIUVJVVTUWOVURGPVVTUWL
      VUOUWNVUQUWEUWJIYTVVTUWMVUPHUWBUWJIYTYMUVKYBXTUVLUVMYRUVNUVO $.
  $}

  ${
    $d A g h k $.  $d A h k s t x y $.  $d F g h k $.  $d F h k s t x y $.
    $d g h k n $.  $d h n x y $.
    axdc2.1 $e |- A e. _V $.
    $( An apparent strengthening of ~ ax-dc (but derived from it) which shows
       that there is a denumerable sequence ` g ` for any function that maps
       elements of a set ` A ` to nonempty subsets of ` A ` such that
       ` g ( x + 1 ) e. F ( g ( x ) ) ` for all ` x e. _om ` .  The finitistic
       version of this can be proven by induction, but the infinite version
       requires this new axiom.  (Contributed by Mario Carneiro,
       25-Jan-2013.) $)
    axdc2 $p |- ( ( A =/= (/) /\ F : A --> ( ~P A \ { (/) } ) ) -> E. g
      ( g : _om --> A /\ A. k e. _om ( g ` suc k ) e. ( F ` ( g ` k ) ) ) ) $=
      ( vx vy vs vt vh vn cv wcel cfv wa copab com weq eleq1 fveq2 cmpt anbi12d
      wb adantr eleq2d sylan9bb cbvopabv cbvmptv axdc2lem ) FGAHLZAMZILZUJDNZMZ
      OZHIPBJCDKQKLZJLZNZUAEUOFLZAMZGLZUSDNZMZOHIFGHFRZIGRZOUKUTUNVCVDUKUTUCVEU
      JUSASUDVDUNULVBMVEVCVDUMVBULUJUSDTUEULVAVBSUFUBUGKFQURUSUQNUPUSUQTUHUI $.
  $}

  ${
    $d A n s $.
    axdc3lem.1 $e |- A e. _V $.
    axdc3lem.2 $e |- S = { s | E. n e. _om ( s : suc n --> A /\
       ( s ` (/) ) = C /\ A. k e. n ( s ` suc k ) e. ( F ` ( s ` k ) ) ) } $.
    $( The class ` S ` of finite approximations to the DC sequence is a set.
       (We derive here the stronger statement that ` S ` is a subset of a
       specific set, namely ` ~P ( _om X. A ) ` .)  (Unnecessary distinct
       variable restrictions were removed by David Abernethy, 18-Mar-2014.)
       (Contributed by Mario Carneiro, 27-Jan-2013.)  (Revised by Mario
       Carneiro, 18-Mar-2014.) $)
    axdc3lem $p |- S e. _V $=
      ( com cxp cpw dcomex xpex pwex cv csuc cfv wcel wss wf wceq wral w3a wrex
      c0 cab wa fssxp peano2 cvv con0 omelon2 ax-mp onelssi xpss1 3syl sylan9ss
      selpw sylibr ancoms 3ad2antr1 rexlimiva abssi eqsstri ssexi ) CJAKZLZVGJA
      MHNOCEPZQZAGPZUAZUFVKRBUBZDPZQVKRVNVKRFRSDVIUCZUDZEJUEZGUGVHIVQGVHVPVKVHS
      ZEJVIJSZVMVLVRVOVLVSVRVLVSUHVKVGTVRVLVSVKVJAKZVGVJAVKUIVSVJJSVJJTVTVGTVIU
      JJVJJUKSJULSMUMUNUOVJJAUPUQURGVGUSUTVAVBVCVDVEVF $.
  $}

  ${
    $d A g h $.  $d A n s $.  $d C g h $.  $d C n s $.  $d F g h $.
    $d F n s $.  $d G i j k m $.  $d S i j k m $.  $d S i k s $.
    $d S j m u v $.  $d S i x y $.  $d a b h j m u v $.  $d g h k $.
    $d h i j k m $.  $d h i k s $.  $d h i x y $.  $d k n s $.  $d s u v $.
    axdc3lem2.1 $e |- A e. _V $.
    axdc3lem2.2 $e |- S = { s | E. n e. _om ( s : suc n --> A /\
       ( s ` (/) ) = C /\ A. k e. n ( s ` suc k ) e. ( F ` ( s ` k ) ) ) } $.
    axdc3lem2.3 $e |- G = ( x e. S |-> { y e. S |
                             ( dom y = suc dom x /\ ( y |` dom x ) = x ) } ) $.
    $( Lemma for ~ axdc3 .  We have constructed a "candidate set" ` S ` , which
       consists of all finite sequences ` s ` that satisfy our property of
       interest, namely ` s ( x + 1 ) e. F ( s ( x ) ) ` on its domain, but
       with the added constraint that ` s ( 0 ) = C ` .  These sets are
       possible "initial segments" of the _infinite_ sequence satisfying these
       constraints, but we can leverage the standard ~ ax-dc (with no initial
       condition) to select a sequence of ever-lengthening finite sequences,
       namely ` ( h `` n ) : m --> A ` (for some integer ` m ` ).  We let our
       "choice" function select a sequence whose domain is one more than the
       last one, and agrees with the previous one on its domain.  Thus, the
       application of vanilla ~ ax-dc yields a sequence of sequences whose
       domains increase without bound, and whose union is a function which has
       all the properties we want.  In this lemma, we show that given the
       sequence ` h ` , we can construct the sequence ` g ` that we are after.
       (Contributed by Mario Carneiro, 30-Jan-2013.) $)
    axdc3lem2 $p |- ( E. h ( h : _om --> S /\
        A. k e. _om ( h ` suc k ) e. ( G ` ( h ` k ) ) ) ->
      E. g ( g : _om --> A /\ ( g ` (/) ) = C /\
        A. k e. _om ( g ` suc k ) e. ( F ` ( g ` k ) ) ) ) $=
      ( com wcel wa wceq wi vj vm vi vu vv vb va cv wf csuc cfv wral c0 w3a wex
      crn wfun cdm wss wel fveq2 dmeqd eleq12d eleq2 sseq2d imbi12d anbi12d weq
      id peano1 ffvelrn mpan2 cab wrex nnord syl peano2 syl2anc 3ad2ant1 impcom
      word rexlimiva ss2abi eqsstri sseli fvex dmeq eleq2d eleq1d simpld adantr
      elab sylib ancoms adantrr fveq2d simprd ordsucelsuc 3syl cres crab eqeq1d
      suceq wb wo syl6 sseq1d biimprd com13 anim12d ex expcom ralrimdv ralrimiv
      imp frn rexlimivw syl6ss sseld vex syl6ib fvelrnb raleqbi1dv rspcv rspccv
      wfn 3imp orcd 3exp com3r sseq12 com23 rexlimdv ssel funssfv syl3anc fveq1
      fnfvelrn mpd adantlr cuni elequ2 fdm 0elsuc biimprcd syl5com noel pm2.21i
      eleq1 jctir rspcva adantrl eqeq2d reseq2d eqeq12d rabbidv axdc3lem reseq1
      rabex fvmpt elrab syl6bb simplbda bitr4d biimpd resss sseq1 elsuci pm2.27
      mpbii sstr2 a1d jaoi finds2 funeq ffn anim12i w3o ordtri3or adantl eqimss
      ffun 3jaoi mpcom orbi12d biimpcd exp4b rexlimiv syl6bi sylbid com24 sylan
      2a1d olcd jcad fununi syldan cop eldm2 eluni2 opeldm simprbi elnn expcomd
      a1i syl5bi exlimdv ciun syl2anr eliuni dmuni syl6eleqr impbid eqrdv rnuni
      abid iunss sylibr syl5eqss df-fn biimpri sylanbr syl21anc sylancl elssuni
      df-f simp2 eqtrd nfv nfra1 ad2antrr syl2an mpan9 biimpa rsp syl9r 3adant2
      nfan sstr syl3c wtr ordtr trsuc 4syl simpl simpr mpbird ralrimi rnex feq1
      uniex ralbidv 3anbi123d spcev exlimiv ) PEGUHZUIZHUHZUJZVUPUKZVURVUPUKZKU
[encoded data, 6720 characters]
      NYPVUO $.
  $}

  ${
    $d A m $.  $d A n s $.  $d B k m n $.  $d B k n s $.  $d C m $.
    $d C n s $.  $d F m $.  $d F n s $.
    axdc3lem3.1 $e |- A e. _V $.
    axdc3lem3.2 $e |- S = { s | E. n e. _om ( s : suc n --> A /\
       ( s ` (/) ) = C /\ A. k e. n ( s ` suc k ) e. ( F ` ( s ` k ) ) ) } $.
    axdc3lem3.3 $e |- B e. _V $.
    $( Simple substitution lemma for ~ axdc3 .  (Contributed by Mario Carneiro,
       27-Jan-2013.) $)
    axdc3lem3 $p |- ( B e. S <-> E. m e. _om ( B : suc m --> A /\
       ( B ` (/) ) = C /\ A. k e. m ( B ` suc k ) e. ( F ` ( B ` k ) ) ) ) $=
      ( wcel cv csuc wf c0 cfv wceq com wral w3a wrex eleq2i feq1 eqeq1d fveq2d
      cab fveq1 eleq12d ralbidv 3anbi123d rexbidv elab weq suceq feq2d 3anbi13d
      raleq cbvrexv 3bitri ) BDMBGNZOZAINZPZQVDRZCSZENZOZVDRZVHVDRZHRZMZEVBUAZU
      BZGTUCZIUHZMVCABPZQBRZCSZVIBRZVHBRZHRZMZEVBUAZUBZGTUCZFNZOZABPZVTWDEWHUAZ
      UBZFTUCDVQBKUDVPWGIBLVDBSZVOWFGTWMVEVRVGVTVNWEVCAVDBUEWMVFVSCQVDBUIUFWMVM
      WDEVBWMVJWAVLWCVIVDBUIWMVKWBHVHVDBUIUGUJUKULUMUNWFWLGFTGFUOZVRWJWEWKVTWNV
      CWIABVBWHUPUQWDEVBWHUSURUTVA $.
  $}

  ${
    $d A g h k $.  $d A k m n p x z $.  $d A h k s x $.  $d C g h k $.
    $d C k m n p z $.  $d C h k s $.  $d F g h k $.  $d F k m n p x z $.
    $d F h k s x $.  $d G h k $.  $d S h k s x $.  $d S k m x z $.
    $d S h x y $.  $d m x y z $.  $d n s x z $.
    axdc3lem4.1 $e |- A e. _V $.
    axdc3lem4.2 $e |- S = { s | E. n e. _om ( s : suc n --> A /\
       ( s ` (/) ) = C /\ A. k e. n ( s ` suc k ) e. ( F ` ( s ` k ) ) ) } $.
    axdc3lem4.3 $e |- G = ( x e. S |-> { y e. S |
                             ( dom y = suc dom x /\ ( y |` dom x ) = x ) } ) $.
    $( Lemma for ~ axdc3 .  We have constructed a "candidate set" ` S ` , which
       consists of all finite sequences ` s ` that satisfy our property of
       interest, namely ` s ( x + 1 ) e. F ( s ( x ) ) ` on its domain, but
       with the added constraint that ` s ( 0 ) = C ` .  These sets are
       possible "initial segments" of the _infinite_ sequence satisfying these
       constraints, but we can leverage the standard ~ ax-dc (with no initial
       condition) to select a sequence of ever-lengthening finite sequences,
       namely ` ( h `` n ) : m --> A ` (for some integer ` m ` ).  We let our
       "choice" function select a sequence whose domain is one more than the
       last one, and agrees with the previous one on its domain.  Thus, the
       application of vanilla ~ ax-dc yields a sequence of sequences whose
       domains increase without bound, and whose union is a function which has
       all the properties we want.  In this lemma, we show that ` S ` is
       nonempty, and that ` G ` always maps to a nonempty subset of ` S ` , so
       that we can apply ~ axdc2 .  See ~ axdc3lem2 for the rest of the proof.
       (Contributed by Mario Carneiro, 27-Jan-2013.) $)
    axdc3lem4 $p |- ( ( C e. A /\ F : A --> ( ~P A \ { (/) } ) ) ->
                E. g ( g : _om --> A /\ ( g ` (/) ) = C /\
                  A. k e. _om ( g ` suc k ) e. ( F ` ( g ` k ) ) ) ) $=
      ( wcel c0 wa cfv wceq wi vh vm vz vp cpw csn cdif wf com cv csuc wral wex
      w3a wne wrex peano1 eqid wb fsng mpan mpbiri snssi fssd suc0 feq2i sylibr
      cop fvsng ral0 a1i 3jca suceq feq2d raleq 3anbi13d sylancr snex axdc3lem3
      rspcev ne0i syl cdm cres crab wss ssrab2 axdc3lem vex ffvelrn sylan2 elsn
      wn necon3bbii sylib cun expcom 3syl 3ad2ant3 3ad2ant1 cin simplr cvv word
      adantr adantl mpbird nnord eleq2 disjsn df-suc ex a1d ancoms 3adant1 3imp
      wfun syl5eq syl2anc funssfv syl3anc eqeq1d biimpar 3adant2 impcom 3adant3
      nfv nf3an biimparc syl2an fveq2d eleq12d 3adant2l fveq2 eqtrd com3r 3impd
      3expib mpd com12 elpw2 mpbir simp2 sucid mpan2 eldifn bitri simp32 eldifi
      fvex n0 elelpwi peano2 dmex mp2an simpr snssd fss eleq1 ordirr mtbid fun2
      fdm syl21anc sneq uneq2d syl6eqr ad2antlr mpbid adantrd ffun funsn dmsnop
      jctir ineq2i funun ssun1 0elsuc eleq2d adantrl nfra1 elsuci rsp ad2ant2lr
      wo adantlr ordsucelsuc biimpa 3adant1r ssun2 snid eleqtrri syl6eqelr fvsn
      eqeq2d syl5reqr syl3an3 3expa 3adant1l biimprd jaoi impd ralrimi syl13anc
      unex 3coml 3exp expd sylcom com23 mpdi imp resundir wrel frel resdm incom
      eqeq1i wfn fnsn fnresdisj 3bitr3ri uneq12d un0 syl6eq uneq2i dmun 3eqtr4i
      ax-mp jctil dmeq reseq1 anbi12d 3exp2 exlimdv mpan2d 3expd rexlimiv sylbi
      rabn0 rabex eldifd fmptd axdc2 axdc3lem2 ) DCOZCCUEZPUFZUGZIUHZQUIEUAUJZU
[encoded data, 5040 characters]
      JABCDEFUAGHIJKLMNVUEWB $.
  $}

  ${
    $d A g k $.  $d A k n s t x $.  $d A k n t x y $.  $d C g k $.
    $d C k n s t x $.  $d C k n t x y $.  $d F g k $.  $d F j k n s t x $.
    $d F j k n t x y $.
    axdc3.1 $e |- A e. _V $.
    $( Dependent Choice.  Axiom DC1 of [Schechter] p. 149, with the addition of
       an initial value ` C ` .  This theorem is weaker than the Axiom of
       Choice but is stronger than Countable Choice.  It shows the existence of
       a sequence whose values can only be shown to exist (but cannot be
       constructed explicitly) and also depend on earlier values in the
       sequence.  (Contributed by Mario Carneiro, 27-Jan-2013.) $)
    axdc3 $p |- ( ( C e. A /\ F : A --> ( ~P A \ { (/) } ) ) ->
                E. g ( g : _om --> A /\ ( g ` (/) ) = C /\
                  A. k e. _om ( g ` suc k ) e. ( F ` ( g ` k ) ) ) ) $=
      ( vx vy vn vt vj vs cv csuc c0 cfv wceq wcel wral com wf w3a wrex cab cdm
      cres wa crab cmpt fveq1 eqeq1d fveq2d eleq12d ralbidv suceq fveq2 cbvralv
      feq1 syl6bb 3anbi123d rexbidv cbvabv eqid axdc3lem4 ) GHABIMZNZAJMZUAZOVG
      PZBQZKMZNZVGPZVKVGPZEPZRZKVESZUBZITUCZJUDZCDIEGVTHMZUEGMZUEZNQWAWCUFWBQUG
      HVTUHUIZLFVSVFALMZUAZOWEPZBQZDMZNZWEPZWIWEPZEPZRZDVESZUBZITUCJLVGWEQZVRWP
      ITWQVHWFVJWHVQWOVFAVGWEURWQVIWGBOVGWEUJUKWQVQVLWEPZVKWEPZEPZRZKVESWOWQVPX
      AKVEWQVMWRVOWTVLVGWEUJWQVNWSEVKVGWEUJULUMUNXAWNKDVEVKWIQZWRWKWTWMXBVLWJWE
      VKWIUOULXBWSWLEVKWIWEUPULUMUQUSUTVAVBWDVCVD $.
  $}

  ${
    $d g h i k m n s t x z A $.  $d g h i k m z C $.  $d g h n s t x z F $.
    $d h i k m z G $.
    axdc4lem.1 $e |- A e. _V $.
    axdc4lem.2 $e |- G
        = ( n e. _om , x e. A |-> ( { suc n } X. ( n F x ) ) ) $.
    $( Lemma for ~ axdc4 .  (Contributed by Mario Carneiro, 31-Jan-2013.)
       (Revised by Mario Carneiro, 16-Nov-2013.) $)
    axdc4lem $p |- ( ( C e. A /\ F : ( _om X. A ) --> ( ~P A \ { (/) } ) ) ->
                E. g ( g : _om --> A /\ ( g ` (/) ) = C /\
                  A. k e. _om ( g ` suc k ) e. ( k F ( g ` k ) ) ) ) $=
      ( vz wcel com c0 wa cfv wceq wex wi c2nd vh vm vi vt vs cxp cpw csn wf cv
      cdif cop csuc wral co peano1 opelxpi mpan simp2 fovrn peano2 snssd eldifi
      w3a wss elpw2 xpss12 sylan2b syl2an snex ovex xpex elpw sylibr syl2anc wn
      eldifn wne elsn necon3bbii vex sucex snnz xpnz biimpi sylbi eldifd 3expib
      3syl ralrimivv fmpt2 sylib dcomex ccom cvv 2ndcof 3ad2ant1 adantl mp3an23
      axdc3 syl fvco3 mpan2 fveq2 3ad2ant2 eqtrd nfv opeq1 eqeq12d exbidv opeq2
      fex2 weq eqeq2d spcegv imp df-ov simplr ffvelrn eleq1 opelxp2 suceq sneqd
      syl6bi oveq1 xpeq12d oveq2 xpeq2d ovmpt2 eleq12d elxp exlimiv com3l com12
      fveq2d op2nd syl6eq oveq2d ex fveq1 op2ndg sylan9eqr nfra1 nfan 3ad2antr2
      nf3an syl6eqr mpan9 rspcv eleq2 velsn biimpac adantrr eximi expcom cbvexv
      ad2antlr sylsyld syl8ib impancom 3adant2 finds2 rspccv 3impia simp21 rspa
      ralrimiv simp3 3ad2antl3 3adant1 simprr syl5 syl5eqr eleq2d sylan2 simpll
      simpl biimprcd exp4c impcom exlimivv sylbid 3imp syl121anc 3expia ralrimi
      3jca feq1 eqeq1d ralbidv 3anbi123d sylc exlimdv adantr mpd ) CBLZMBUFZBUG
      ZNUHZUKZGUIZOMUWQUAUJZUIZNUXBPZNCULZQZEUJZUMZUXBPZUXGUXBPZHPZLZEMUNZVDZUA
      RZMBDUJZUIZNUXPPZCQZUXHUXPPZUXGUXGUXPPZGUOZLZEMUNZVDZDRZUWPUXEUWQLZUWQUWQ
      UGZUWSUKZHUIZUXOUXANMLZUWPUYGUPNCMBUQURUXAFUJZUMZUHZUYLAUJZGUOZUFZUYILZAB
      UNFMUNUYJUXAUYRFAMBUXAUYLMLZUYOBLZUYRUXAUYSUYTVDZUYQUYHUWSVUAUYSUYPUWTLZU
      YQUYHLZUXAUYSUYTUSUYLUYOUWTMBGUTZUYSVUBOUYQUWQVEZVUCUYSUYNMVEZUYPUWRLZVUE
      VUBUYSUYMMUYLVAVBUYPUWRUWSVCVUGVUFUYPBVEVUEUYPBIVFUYNMUYPBVGVHVIUYQUWQUYN
      UYPUYMVJUYLUYOGVKZVLZVMVNVOVUAVUBUYPUWSLZVPZUYQUWSLZVPZVUDUYPUWRUWSVQVUKU
      YQNVRZVUMVUKUYPNVRZVUNVUJUYPNUYPNVUHVSVTUYNNVRZVUOVUNUYMUYLFWAWBWCVUPVUOO
      VUNUYNUYPWDWEURWFVULUYQNUYQNVUIVSVTVNWIWGWHWJFAMBUYQUYIHJWKWLUWQUXEUAEHMB
      WMIVLWTVIUWPUXOUYFSUXAUWPUXNUYFUAUWPUXNUYFUWPUXNOZTUXBWNZWOLZMBVURUIZNVUR
      PZCQZUXHVURPZUXGUXGVURPZGUOZLZEMUNZVDZUYFVUQVUTVUSUXNVUTUWPUXCUXFVUTUXMMM
      BUXBWPWQWRZVUTMWOLBWOLVUSWMIMBVURWOWOXLWSXAVUQVUTVVBVVGVVIUXNUWPVVAUXETPZ
      CUXNVVAUXDTPZVVJUXCUXFVVAVVKQZUXMUXCUYKVVLUPMUWQNTUXBXBXCWQUXFUXCVVKVVJQU
      XMUXDUXETXDXEXFUYKUWPVVJCQUPNCMBUUAURUUBVUQVVFEMUWPUXNEUWPEXGUXCUXFUXMEUX
      CEXGUXFEXGUXLEMUUCUUFUUDUWPUXNUXGMLZVVFUWPUXNVVMVDUXJUXGKUJZULZQZKRZUXCVV
      MUXLVVFUWPUXNVVMVVQVUQUBUJZUXBPZVVRVVNULZQZKRZUBMUNVVMVVQSVUQVWBUBMVVRMLV
      UQVWBVWBUXDNVVNULZQZKRZUCUJZUXBPZVWFVVNULZQZKRZVWFUMZUXBPZVWKVVNULZQZKRZV
      UQUBUCVVRNQZVWAVWDKVWPVVSUXDVVTVWCVVRNUXBXDVVRNVVNXHXIXJUBUCXMZVWAVWIKVWQ
      VVSVWGVVTVWHVVRVWFUXBXDVVRVWFVVNXHXIXJVVRVWKQZVWAVWNKVWRVVSVWLVVTVWMVVRVW
      KUXBXDVVRVWKVVNXHXIXJUWPUXCUXFVWEUXMUWPUXFVWEVWDUXFKCBVVNCQVWCUXEUXDVVNCN
      XKXNXOXPUUEVUQVWFMLZVWJVWOSZUXNVWSVWTSZUWPUXCUXMVXAUXFUXCVWSUXMVWTUXCVWSO
      ZUXMVWJVWLVWKUDUJZULZQZUDRZVWOVWJVXBUXMVXFVWIVXBUXMVXFSZSKVXBVWIVXGVXBVWI
      OZVWGHPZVWKUHZVWFVVNGUOZUFZQZUXMVWLVXILZVXFVXHVXIVWFVVNHUOZVXLVWIVXIVXOQV
      XBVWIVXIVWHHPVXOVWGVWHHXDVWFVVNHXQUUGWRVXHVWSVVNBLZVXOVXLQUXCVWSVWIXRVXBV
      WGUWQLZVWIVXPMUWQVWFUXBXSVWIVXQVWHUWQLVXPVWGVWHUWQXTVWFVVNMBYAYDUUHFAVWFV
      VNMBUYQVXLHVXJVWFUYOGUOZUFFUCXMZUYNVXJUYPVXRVXSUYMVWKUYLVWFYBYCUYLVWFUYOG
      YEYFAKXMZVXRVXKVXJUYOVVNVWFGYGYHJVXJVXKVWKVJVWFVVNGVKVLYIVOXFVWSUXMVXNSUX
      CVWIUXLVXNEVWFMEUCXMZUXIVWLUXKVXIVYAUXHVWKUXBUXGVWFYBYOVYAUXJVWGHUXGVWFUX
      BXDYOYJUUIUUQVXMVXNVWLVXLLZVXFVXIVXLVWLUUJVYBVWLUEUJZVXCULZQZVYCVXJLZVXCV
      XKLZOOZUDRZUERVXFUEUDVWLVXJVXKYKVYIVXFUEVYHVXEUDVYEVYFVXEVYGVYFVYEVXEVYFV
      YDVXDVWLVYFVYCVWKQVYDVXDQUEVWKUUKVYCVWKVXCXHWFXNUULUUMUUNYLWFYDUURUUOYLYM
      VXEVWNUDKUDKXMVXDVWMVWLVXCVVNVWKXKXNUUPUUSUUTUVAWRYNUVBYNUVGVWBVVQUBUXGMU
      BEXMZVWAVVPKVYJVVSUXJVVTVVOVVRUXGUXBXDVVRUXGVVNXHXIXJUVCXAUVDUWPUXCUXFUXM
      VVMUVEUWPUXNVVMUVHUXNVVMUXLUWPUXMUXCVVMUXLUXFUXLEMUVFUVIUVJVVQUXCVVMOZUXL
      VVFVVPVYKUXLVVFSZSKVVPVYKVYLVVPVYKOZUXLUXIUXHUHZUXGVVNGUOZUFZLZVVFVYMUXKV
      YPUXIVYMUXKVVOHPZVYPVYMUXJVVOHVVPVYKUVQYOVYMVVMVXPVYRVYPQVVPUXCVVMUVKVVPV
      YKVXPVYKUXJUWQLZVVPVXPMUWQUXGUXBXSVVPVYSVVOUWQLVXPUXJVVOUWQXTUXGVVNMBYAYD
      UVLXPVVMVXPOVYRUXGVVNHUOVYPUXGVVNHXQFAUXGVVNMBUYQVYPHVYNUXGUYOGUOZUFFEXMZ
      UYNVYNUYPVYTWUAUYMUXHUYLUXGYBYCUYLUXGUYOGYEYFVXTVYTVYOVYNUYOVVNUXGGYGYHJV
      YNVYOUXHVJUXGVVNGVKVLYIUVMVOXFUVNVVPVYKVYQVVFSVYQVVPVYKVVFVYQUXIVYDQZVYCV
      YNLZVXCVYOLZOZOZUDRUERVVPVYKVVFSSZUEUDUXIVYNVYOYKWUFWUGUEUDWUEWUBWUGWUDWU
      BWUGSWUCWUDWUBVVPVYKVVFWUBVVPOZVYKOZVVFWUDWUIVVCVXCVVEVYOWUIVVCVYDTPZVXCW
      UIVVCUXITPZWUJVYKVVCWUKQZWUHVVMUXCUXHMLWULUXGVAMUWQUXHTUXBXBUVOWRWUIUXIVY
      DTWUBVVPVYKUVPYOXFVYCVXCUEWAUDWAYPYQWUIVVDVVNUXGGWUIVVDVVOTPZVVNWUIVVDUXJ
      TPZWUMVYKVVDWUNQWUHMUWQUXGTUXBXBWRWUIUXJVVOTWUBVVPVYKXRYOXFUXGVVNEWAKWAYP
      YQYRYJUVRUVSWRUVTUWAWFYMXPUWBYSYLUWCUWDUWEUWFUWGUYEVVHDVURWOUXPVURQZUXQVU
      TUXSVVBUYDVVGMBUXPVURUWHWUOUXRVVACNUXPVURYTUWIWUOUYCVVFEMWUOUXTVVCUYBVVEU
      XHUXPVURYTWUOUYAVVDUXGGUXGUXPVURYTYRYJUWJUWKXOUWLYSUWMUWNUWO $.
  $}

  ${
    $d A g k n x $.  $d C g k $.  $d F g k n x $.
    axdc4.1 $e |- A e. _V $.
    $( A more general version of ~ axdc3 that allows the function ` F ` to vary
       with ` k ` .  (Contributed by Mario Carneiro, 31-Jan-2013.) $)
    axdc4 $p |- ( ( C e. A /\ F : ( _om X. A ) --> ( ~P A \ { (/) } ) ) ->
                E. g ( g : _om --> A /\ ( g ` (/) ) = C /\
                  A. k e. _om ( g ` suc k ) e. ( k F ( g ` k ) ) ) ) $=
      ( vx vn com cv csuc csn co cxp cmpt2 eqid axdc4lem ) GABCDHEHGIAHJZKLRGJE
      MNOZFSPQ $.
  $}

  ${
    $d A c f h $.  $d A f h i n y $.  $d A c h k $.  $d A f h w z $.
    $d F c h k $.  $d F h i k z $.  $d G g z $.  $d G i z $.  $d f g h x $.
    axcclem.1 $e |- A = ( x \ { (/) } ) $.
    axcclem.2 $e |- F = ( n e. _om , y e. U. A |-> ( f ` n ) ) $.
    axcclem.3 $e |- G = ( w e. A |-> ( h ` suc ( `' f ` w ) ) ) $.
    $( Lemma for ~ axcc .  (Contributed by Mario Carneiro, 2-Feb-2013.)
       (Revised by Mario Carneiro, 16-Nov-2013.) $)
    axcclem $p |- ( x ~~ _om ->
       E. g A. z e. x ( z =/= (/) -> ( g ` z ) e. z ) ) $=
      ( com c0 cfv wcel cvv wceq vk vc vi cv cen wbr wne wi wral wex cdom wn wa
      csdm cfn isfinite2 csn cdif eleq1i undif1 snfi unfi mpan2 syl5eqelr ssun1
      cun wss ssfi sylancl sylbi wb isfiniteg ax-mp sdomnen 3syl con2i sdomentr
      dcomex expcom mtod vex difss eqsstri ssdomg mp2 jctil sylibr entr mpancom
      bren2 ensym wf1o bren cuni wf csuc f1of peano1 ffvelrn eldifn eleq2s fvex
      co elsn notbii neq0 bitr2i syl w3a cxp cpw elunii sylan2 ffvelrnda difabs
      difeq1i pwuni ssdif eqsstr3i sseli ralrimivw ralrimiva fmpt2 sylib adantl
      3eqtr4i difexg eqeltri uniex axdc4 syl2anc exlimiv suceq fveq2d fveq2 imp
      3ad2ant3 3adant1 3adant2 3ad2ant1 3simpb eximi ex mpcom necon3bbii eleq2i
      velsn eldif sylbbr sylan2br simpl wrex f1ofo foelrn sylan ccnv id oveq12d
      wfo eleq12d rspcv 3adant3 eqcom f1ocnvfv syl5bi eqcomd simpr eqidd ovmpt2
      3eltr3d eleq1 mpbird fvmpt simp3 3eltr4d 3exp com3r 3expd com4r mpid impd
      rexlimiv impancom syl5 expd ralrimiv cmpt fvrn0 rgenw eqid fmpt mpbi rnex
      crn p0ex unex fex2 mp3an fveq1 eleq1d imbi2d ralbidv spcev exlimddv ) AUD
      ZOUEUFZEOUEUFZOEUEUFZCUDZPUGZUXIGUDZQZUXIRZUHZCUXEUIZGUJZEUXEUEUFZUXFUXGU
      XFEUXEUKUFZEUXEUNUFZULZUMUXQUXFUXTUXRUXFUXSEOUNUFZUYAUXFUYAEUORZUXEUORZUX
      FULZEUPUYBUXEPUQZURZUORZUYCEUYFUOLUSUYGUXEUYEVFZUORUXEUYHVGUYCUYGUYHUYFUY
      EVFZUOUXEUYEUTUYGUYEUORUYIUORPVAUYFUYEVBVCVDUXEUYEVEUYHUXEVHVIVJUYCUXEOUN
      UFZUYDOSRUYCUYJVKVRUXEVLVMUXEOVNVJVOVPUXSUXFUYAEUXEOVQVSVTUXESRZEUXEVGUXR
      AWAZEUYFUXELUXEUYEWBWCEUXESWDWEWFEUXEWJWGEUXEOWHWIEOWKUXHOEFUDZWLZFUJUXPO
      EFWMUYNUXPFUYNOEWNZHUDZWOZUAUDZWPZUYPQZUYRUYRUYPQZJXCZRZUAOUIZUMZUXPHUBUD
      ZPUYMQZRZUBUJZUYNVUEHUJZUYNVUGERZVUIUYNOEUYMWOPORVUKOEUYMWQZWROEPUYMWSVIZ
      VUKVUGUYERZULZVUIVUOVUGUYFEVUGUXEUYEWTLXAVUOVUGPTZULVUIVUNVUPVUGPPUYMXBXD
      XEUBVUGXFXGWGXHVUHUYNVUJUHUBVUHUYNVUJVUHUYNUMZUYQPUYPQVUFTZVUDXIZHUJZVUJV
      UQVUFUYORZOUYOXJUYOXKZUYEURZJWOZVUTUYNVUHVUKVVAVUMVUFVUGEXLXMUYNVVDVUHUYN
      IUDZUYMQZVVCRZBUYOUIZIOUIVVDUYNVVHIOUYNVVEORUMVVFERZVVHUYNOEVVEUYMVULXNVV
      IVVGBUYOEVVCVVFEEUYEURZVVCUYFUYEURUYFVVJEUXEUYEXOEUYFUYELXPLYFEVVBVGVVJVV
      CVGEXQEVVBUYEXRVMXSXTYAXHYBIBOUYOVVFVVCJMYCYDYEUYOVUFHUAJEEUYFSLUYKUYFSRU
      YLUXEUYESYGVMYHZYIYJYKVUSVUEHUYQVURVUDUUAUUBXHUUCYLUUDUYNVUEUMZUXJUXIKQZU
      XIRZUHZCUXEUIZUXPVVLVVOCUXEVVLUXIUXERZUXJVVNVVQUXJUMUXIERZVVLVVNUXJVVQUXI
      UYERZULZVVRVVSUXIPCPUUGUUEVVRUXIUYFRVVQVVTUMEUYFUXILUUFUXIUXEUYEUUHUUIUUJ
      UYNVVRVUEVVNUYNVVRUMZUYQVUDVVNVWAUYQUYNVUDVVNUHZUYNVVRUUKVWAUXIUCUDZUYMQZ
      TZUCOUULZUYQUYNVWBUHUHZUYNOEUYMUUSVVRVWFOEUYMUUMUCOEUXIUYMUUNUUOVWEVWGUCO
      VWEUYQUYNVWCORZVWBVWEUYQUYNVWHVWBUYQUYNVWHXIZVUDVWEVVNVWIVUDVWEVVNVWIVUDV
      WEXIZUXIUYMUUPZQZWPZUYPQZVWDVVMUXIVWJVWCWPZUYPQZVWCVWCUYPQZJXCZVWNVWDVWIV
      UDVWPVWRRZVWEVWIVUDVWSVWHUYQVUDVWSUHUYNVUCVWSUAVWCOUYRVWCTZUYTVWPVUBVWRVW
      TUYSVWOUYPUYRVWCYMYNVWTUYRVWCVUAVWQJVWTUUQUYRVWCUYPYOUURUUTUVAYQYPUVBVWJV
      WOVWMUYPVWJVWCVWLTZVWOVWMTVWIVWEVXAVUDVWIVWEUMVWLVWCVWIVWEVWLVWCTZUYNVWHV
      WEVXBUHUYQVWEVWDUXITUYNVWHUMVXBUXIVWDUVCOEVWCUXIUYMUVDUVEYRYPUVFYSVWCVWLY
      MXHYNVWIVUDVWRVWDTZVWEUYQVWHVXCUYNUYQVWHUMVWHVWQUYORVXCUYQVWHUVGOUYOVWCUY
      PWSIBVWCVWQOUYOVVFVWDJVWDVVEVWCUYMYOBUDVWQTVWDUVHMVWCUYMXBUVIYKYSYTUVJVWJ
      VVRVVMVWNTVWJVVRVWDERZVWIVUDVXDVWEUYNVWHVXDUYQUYNOEVWCUYMVULXNYRYTVWEVWIV
      VRVXDVKVUDUXIVWDEUVKYQUVLDUXIDUDZVWKQZWPZUYPQZVWNEKVXEUXITZVXGVWMUYPVXIVX
      FVWLTVXGVWMTVXEUXIVWKYOVXFVWLYMXHYNNVWMUYPXBUVMXHVWIVUDVWEUVNUVOUVPUVQUVR
      UVSUWBXHUVTUWAUWCUWDUWEUWFUXOVVPGKKDEVXHUWGZSNEUYPUWNZUYEVFZVXJWOZESRVXLS
      RVXJSRVXHVXLRZDEUIVXMVXNDEUYPVXGUWHUWIDEVXLVXHVXJVXJUWJUWKUWLVVKVXKUYEUYP
      HWAUWMUWOUWPEVXLVXJSSUWQUWRYHUXKKTZUXNVVOCUXEVXOUXMVVNUXJVXOUXLVVMUXIUXIU
      XKKUWSUWTUXAUXBUXCXHUXDYLVJVO $.
  $}

  ${
    $d f t u v w x y z $.
    $( Although CC can be proven trivially using ~ ac5 , we prove it here using
       DC. (New usage is discouraged.)  (Contributed by Mario Carneiro,
       2-Feb-2013.) $)
    axcc $p |- ( x ~~ _om ->
       E. f A. z e. x ( z =/= (/) -> ( f ` z ) e. z ) ) $=
      ( vy vw vv vu vt cv c0 csn cdif com cuni cfv cmpt2 ccnv csuc cmpt eqid
      axcclem ) ADBEAIJKLZFCGHHDMUBNHIFIZOPZEUBEIUCQORGIOSZUBTUDTUETUA $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  ZFC Set Theory - add the Axiom of Choice
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Choice
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w v u t $.
    $( Axiom of Choice.  The Axiom of Choice (AC) is usually considered an
       extension of ZF set theory rather than a proper part of it.  It is
       sometimes considered philosophically controversial because it asserts
       the existence of a set without telling us what the set is.  ZF set
       theory that includes AC is called ZFC.

       The unpublished version given here says that given any set ` x ` , there
       exists a ` y ` that is a collection of unordered pairs, one pair for
       each nonempty member of ` x ` .  One entry in the pair is the member of
       ` x ` , and the other entry is some arbitrary member of that member of
       ` x ` .  See the rewritten version ~ ac3 for a more detailed
       explanation.  Theorem ~ ac2 shows an equivalent written compactly with
       restricted quantifiers.

       This version was specifically crafted to be short when expanded to
       primitives.  Kurt Maes' 5-quantifier version ~ ackm is slightly shorter
       when the biconditional of ~ ax-ac is expanded into implication and
       negation.  In ~ axac3 we allow the constant ` CHOICE ` to represent the
       Axiom of Choice; this simplifies the representation of theorems like
       ~ gchac (the Generalized Continuum Hypothesis implies the Axiom of
       Choice).

       Standard textbook versions of AC are derived as ~ ac8 , ~ ac5 , and
       ~ ac7 .  The Axiom of Regularity ~ ax-reg (among others) is used to
       derive our version from the standard ones; this reverse derivation is
       shown as theorem ~ dfac2 .  Equivalents to AC are the well-ordering
       theorem ~ weth and Zorn's lemma ~ zorn .  See ~ ac4 for comments about
       stronger versions of AC.

       In order to avoid uses of ~ ax-reg for derivation of AC equivalents, we
       provide ~ ax-ac2 (due to Kurt Maes), which is equivalent to the standard
       AC of textbooks.  The derivation of ~ ax-ac2 from ~ ax-ac is shown by
       theorem ~ axac2 , and the reverse derivation by ~ axac .  Therefore, new
       proofs should normally use ~ ax-ac2 instead.
       (New usage is discouraged.)  (Contributed by NM, 18-Jul-1996.) $)
    ax-ac $a |- E. y A. z A. w ( ( z e. w /\ w e. x ) -> E. v A. u ( E. t
              ( ( u e. w /\ w e. t ) /\ ( u e. t /\ t e. y ) ) <-> u = v ) ) $.

    $( Axiom of Choice expressed with the fewest number of different variables.
       The penultimate step shows the logical equivalence to ~ ax-ac .
       (New usage is discouraged.)  (Contributed by NM, 14-Aug-2003.) $)
    zfac $p |- E. x A. y A. z ( ( y e. z /\ z e. w ) -> E. w A. y ( E. w
              ( ( y e. z /\ z e. w ) /\ ( y e. w /\ w e. x ) ) <-> y = w ) ) $=
      ( vu vt vv wel wa wex weq wal elequ2 elequ1 anbi12d cbvexv syl6bb anbi1d
      wb wi ax-ac bibi2d anbi2d bibi1i albidv exbidv cbvalv imbi2i 2albii exbii
      equequ2 equequ1 bibi12d mpbi ) BCHZCDHZIZECHZCFHZIZEFHZFAHZIZIZFJZEGKZSZE
      LZGJZTZCLBLZAJUQUQBDHZDAHZIZIZDJZBDKZSZBLZDJZTZCLBLZAJDABCGEFUAVKWBAVJWAB
      CVIVTUQVHVSGDGDKZVHURUPIZEDHZVMIZIZDJZEDKZSZELVSWCVGWJEWCVGVEWISWJWCVFWIV
      EGDEUKUBVEWHWIVDWGFDFDKZUTWDVCWFWKUSUPURFDCMUCWKVAWEVBVMFDEMFDANOOPUDQUEW
      JVREBEBKZWHVPWIVQWLWGVODWLWDUQWFVNWLURUOUPEBCNRWLWEVLVMEBDNROUFEBDULUMUGQ
      PUHUIUJUN $.

    $( Axiom of Choice equivalent.  By using restricted quantifiers, we can
       express the Axiom of Choice with a single explicit conjunction.  (If you
       want to figure it out, the rewritten equivalent ~ ac3 is easier to
       understand.)  Note: ~ aceq0 shows the logical equivalence to ~ ax-ac .
       (New usage is discouraged.)  (Contributed by NM, 18-Jul-1996.) $)
    ac2 $p |- E. y A. z e. x A. w e. z E! v e. z E. u e. y
              ( z e. u /\ v e. u ) $=
      ( vt wel wa cv wrex wreu wral wex weq wb wal wi ax-ac aceq0 mpbir ) CFHEF
      HIFBJKECJZLDUBMCAJMBNCDHDAHIFDHDGHIFGHGBHIIGNFEOPFQENRDQCQBNABCDEFGSABCDE
      FGTUA $.
  $}

  ${
    $d x y z w v u $.
    $( Axiom of Choice using abbreviations.  The logical equivalence to ~ ax-ac
       can be established by chaining ~ aceq0 and ~ aceq2 .  A standard
       textbook version of AC is derived from this one in ~ dfac2a , and this
       version of AC is derived from the textbook version in ~ dfac2 .

       The following sketch will help you understand this version of the axiom.
       Given any set ` x ` , the axiom says that there exists a ` y ` that is a
       collection of unordered pairs, one pair for each nonempty member of
       ` x ` .  One entry in the pair is the member of ` x ` , and the other
       entry is some arbitrary member of that member of ` x ` .  Using the
       Axiom of Regularity, we can show that ` y ` is really a set of _ordered_
       pairs, very similar to the ordered pair construction ~ opthreg .  The
       key theorem for this (used in the proof of ~ dfac2 ) is ~ preleq .  With
       this modified definition of ordered pair, it can be seen that ` y ` is
       actually a choice function on the members of ` x ` .

       For example, suppose ` x = { { 1 , 2 } , { 1 , 3 } , { 2 , 3 , 4 } } ` .
       Let us try ` y = { { { 1 , 2 } , 1 } , { { 1 , 3 } , 1 } , `
       ` { { 2 , 3 , 4 } , 2 } } ` .  For the member (of ` x ` )
       ` z = { 1 , 2 } ` , the only assignment to ` w ` and ` v ` that
       satisfies the axiom is ` w = 1 ` and ` v = { { 1 , 2 } , 1 } ` , so
       there is exactly one ` w ` as required.  We verify the other two members
       of ` x ` similarly.  Thus, ` y ` satisfies the axiom.  Using our
       modified ordered pair definition, we can say that ` y ` corresponds to
       the choice function ` { <. { 1 , 2 } , 1 >. , <. { 1 , 3 } , 1 >. , `
       ` <. { 2 , 3 , 4 } , 2 >. } ` .  Of course other choices for ` y ` will
       also satisfy the axiom, for example
       ` y = { { { 1 , 2 } , 2 } , { { 1 , 3 } , 1 } , `
       ` { { 2 , 3 , 4 } , 4 } } ` .  What AC tells us is that there exists at
       least one such ` y ` , but it doesn't tell us which one.

       (New usage is discouraged.)  (Contributed by NM, 19-Jul-1996.) $)
    ac3 $p |- E. y A. z e. x ( z =/= (/) -> E! w e. z E. v e. y
              ( z e. v /\ w e. v ) ) $=
      ( vu wel wa cv wrex wreu wral wex c0 wne wi ac2 aceq2 mpbi ) CFGEFGHFBIZJ
      ECIZKDUALCAIZLBMUANOCEGDEGHETJDUAKPCUBLBMABCDEFQABCDEFRS $.
  $}

  ${
    $d x y z v u $.
    $( In order to avoid uses of ~ ax-reg for derivation of AC equivalents, we
       provide ~ ax-ac2 , which is equivalent to the standard AC of textbooks.
       This appears to be the shortest known equivalent to the standard AC when
       expressed in terms of set theory primitives.  It was found by Kurt Maes
       as theorem ~ ackm .  We removed the leading quantifier to make it
       slightly shorter, since we have ~ ax-gen available.  The derivation of
       ~ ax-ac2 from ~ ax-ac is shown by theorem ~ axac2 , and the reverse
       derivation by ~ axac .  Note that we use ~ ax-reg to derive ~ ax-ac from
       ~ ax-ac2 , but not to derive ~ ax-ac2 from ~ ax-ac .  (Contributed by
       NM, 19-Dec-2016.) $)
    ax-ac2 $a |- E. y A. z E. v A. u (
       ( y e. x /\ ( z e. y -> ( ( v e. x /\ -. y = v ) /\ z e. v ) ) ) \/
           ( -. y e. x /\ ( z e. x -> ( ( v e. z /\ v e. y ) /\
               ( ( u e. z /\ u e. y ) -> u = v ) ) ) ) ) $.
  $}

  ${
    $d v w x y z $.
    $( This theorem asserts that the constant ` CHOICE ` is a theorem, thus
       eliminating it as a hypothesis while assuming ~ ax-ac2 as an axiom.
       (Contributed by Mario Carneiro, 6-May-2015.)  (Revised by NM,
       20-Dec-2016.)  (Proof modification is discouraged.) $)
    axac3 $p |- CHOICE $=
      ( vy vx vz vw vv wac wel weq wn wa wi wal wex ax-ac2 ax-gen dfackm mpbir
      wo ) FABGZCAGDBGADHIJCDGJKJSICBGDCGDAGJECGEAGJEDHKJKJRELDMCLAMZBLTBBACDEN
      OBACDEPQ $.
  $}

  ${
    $d x y z v u $.
    $( A remarkable equivalent to the Axiom of Choice that has only five
       quantifiers (when expanded to ` e. ` , ` = ` primitives in prenex form),
       discovered and proved by Kurt Maes.  This establishes a new record,
       reducing from 6 to 5 the largest number of quantified variables needed
       by any ZFC axiom.  The ZF-equivalence to AC is shown by theorem
       ~ dfackm .  Maes found this version of AC in April, 2004 (replacing a
       longer version, also with five quantifiers, that he found in November,
       2003).  See Kurt Maes, "A 5-quantifier ( ` e. ` ,=)-expression
       ZF-equivalent to the Axiom of Choice"
       ( ~ http://arxiv.org/PS_cache/arxiv/pdf/0705/0705.3162v1.pdf ).

       The original FOM posts are:
       ~ http://www.cs.nyu.edu/pipermail/fom/2003-November/007631.html
       ~ http://www.cs.nyu.edu/pipermail/fom/2003-November/007641.html .
       (Contributed by NM, 29-Apr-2004.)  (Revised by Mario Carneiro,
       17-May-2015.)  (Proof modification is discouraged.) $)
    ackm $p |- A. x E. y A. z E. v A. u (
       ( y e. x /\ ( z e. y -> ( ( v e. x /\ -. y = v ) /\ z e. v ) ) ) \/
           ( -. y e. x /\ ( z e. x -> ( ( v e. z /\ v e. y ) /\
               ( ( u e. z /\ u e. y ) -> u = v ) ) ) ) ) $=
      ( wac cv wcel wceq wn wa wi wo wal wex axac3 dfackm mpbi ) FBGZAGZHZCGZSH
      DGZTHSUCIJKUBUCHKLKUAJUBTHUCUBHUCSHKEGZUBHUDSHKUDUCILKLKMENDOCNBOANPABCDE
      QR $.
  $}

  ${
    $d x y z v u $.
    $( Derive ~ ax-ac2 from ~ ax-ac .  (Contributed by NM, 19-Dec-2016.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    axac2 $p |- E. y A. z E. v A. u (
       ( y e. x /\ ( z e. y -> ( ( v e. x /\ -. y = v ) /\ z e. v ) ) ) \/
           ( -. y e. x /\ ( z e. x -> ( ( v e. z /\ v e. y ) /\
               ( ( u e. z /\ u e. y ) -> u = v ) ) ) ) ) $=
      ( wel weq wn wa wi wo wal wex wac cv c0 wne wrex wreu wral dfac2a ac3 mpg
      dfackm mpbi spi ) BAFZCBFDAFBDGHICDFIJIUGHCAFDCFDBFIECFEBFIEDGJIJIKELDMCL
      BMZANUHALCOZPQCEFDEFIEBORDUISJCAOTBMNAABCDEUAABCDEUBUCABCDEUDUEUF $.
  $}

  ${
    $d x y z w v u t $.
    $( Derive ~ ax-ac from ~ ax-ac2 .  Note that ~ ax-reg is used by the proof.
       (Contributed by NM, 19-Dec-2016.)
       (Proof modification is discouraged.) $)
    axac $p |- E. y A. z A. w ( ( z e. w /\ w e. x ) -> E. v A. u ( E. t
              ( ( u e. w /\ w e. t ) /\ ( u e. t /\ t e. y ) ) <-> u = v ) ) $=
      ( wel wa wex weq wb wal wi wac axac3 dfac0 mpbi spi ) CDHDAHIFDHDGHIFGHGB
      HIIGJFEKLFMEJNDMCMBJZAOTAMPABCDEFGQRS $.
  $}

  ${
    axaci.1 $e |- ( CHOICE <-> A. x ph ) $.
    $( Apply a choice equivalent.  (Contributed by Mario Carneiro,
       17-May-2015.) $)
    axaci $p |- ph $=
      ( wac wal axac3 mpbi spi ) ABDABEFCGH $.
  $}

  $( All sets are well-orderable under choice.  (Contributed by Mario Carneiro,
     28-Apr-2015.) $)
  cardeqv $p |- dom card = _V $=
    ( wac ccrd cdm cvv wceq axac3 dfac10 mpbi ) ABCDEFGH $.

  $( All sets are well-orderable under choice.  (Contributed by Stefan O'Rear,
     28-Feb-2015.) $)
  numth3 $p |- ( A e. V -> A e. dom card ) $=
    ( wcel cvv ccrd cdm elex cardeqv syl6eleqr ) ABCADEFABGHI $.

  ${
    $d f x A $.
    numth.1 $e |- A e. _V $.
    $( Numeration theorem: any set is equinumerous to some ordinal (using AC).
       Theorem 10.3 of [TakeutiZaring] p. 84.  (Contributed by NM,
       20-Oct-2003.) $)
    numth2 $p |- E. x e. On x ~~ A $=
      ( ccrd cdm wcel cv cen wbr con0 wrex cvv numth3 ax-mp isnum2 mpbi ) BDEFZ
      AGBHIAJKBLFQCBLMNABOP $.

    $( Numeration theorem: every set can be put into one-to-one correspondence
       with some ordinal (using AC).  Theorem 10.3 of [TakeutiZaring] p. 84.
       (Contributed by NM, 10-Feb-1997.)  (Proof shortened by Mario Carneiro,
       8-Jan-2015.) $)
    numth $p |- E. x e. On E. f f : x -1-1-onto-> A $=
      ( cv cen wbr con0 wrex wf1o wex numth2 bren rexbii mpbi ) AEZBFGZAHIPBCEJ
      CKZAHIABDLQRAHPBCMNO $.
  $}

  ${
    $d x f $.
    $( An Axiom of Choice equivalent similar to the Axiom of Choice (first
       form) of [Enderton] p. 49.  (Contributed by NM, 29-Apr-2004.) $)
    ac7 $p |- E. f ( f C_ x /\ f Fn dom x ) $=
      ( cv wss cdm wfn wa wex df-ac axaci ) BCZACZDKLEFGBHAABIJ $.
  $}

  ${
    $d f x R $.
    $( An Axiom of Choice equivalent similar to the Axiom of Choice (first
       form) of [Enderton] p. 49.  (Contributed by NM, 23-Jul-2004.) $)
    ac7g $p |- ( R e. A -> E. f ( f C_ R /\ f Fn dom R ) ) $=
      ( vx cv wss cdm wfn wex wceq sseq2 dmeq fneq2d anbi12d exbidv ac7 vtoclg
      wa ) CEZDEZFZSTGZHZRZCISBFZSBGZHZRZCIDBATBJZUDUHCUIUAUEUCUGTBSKUIUBUFSTBL
      MNODCPQ $.
  $}

  ${
    $d x z f $.
    $( Equivalent of Axiom of Choice.  We do not insist that ` f ` be a
       function.  However, theorem ~ ac5 , derived from this one, shows that
       this form of the axiom does imply that at least one such set ` f ` whose
       existence we assert is in fact a function.  Axiom of Choice of
       [TakeutiZaring] p. 83.

       Takeuti and Zaring call this "weak choice" in contrast to "strong
       choice" ` E. F A. z ( z =/= (/) -> ( F `` z ) e. z ) ` , which asserts
       the existence of a universal choice function but requires second-order
       quantification on (proper) class variable ` F ` and thus cannot be
       expressed in our first-order formalization.  However, it has been shown
       that ZF plus strong choice is a conservative extension of ZF plus weak
       choice.  See Ulrich Felgner, "Comparison of the axioms of local and
       universal choice," _Fundamenta Mathematica_, 71, 43-62 (1971).

       Weak choice can be strengthened in a different direction to choose from
       a collection of proper classes; see ~ ac6s5 .  (Contributed by NM,
       21-Jul-1996.) $)
    ac4 $p |- E. f A. z e. x ( z =/= (/) -> ( f ` z ) e. z ) $=
      ( cv c0 wne cfv wcel wi wral wex dfac3 axaci ) BDZEFNCDGNHIBADJCKAABCLM
      $.
  $}

  ${
    $d x y f A $.
    ac4c.1 $e |- A e. _V $.
    $( Equivalent of Axiom of Choice (class version).  (Contributed by NM,
       10-Feb-1997.) $)
    ac4c $p |- E. f A. x e. A ( x =/= (/) -> ( f ` x ) e. x ) $=
      ( vy cv c0 wne cfv wcel wi wral wex wceq raleq exbidv ac4 vtocl ) AFZGHSC
      FISJKZAEFZLZCMTABLZCMEBDUABNUBUCCTAUABOPEACQR $.
  $}

  ${
    $d f x y A $.
    ac5.1 $e |- A e. _V $.
    $( An Axiom of Choice equivalent: there exists a function ` f ` (called a
       choice function) with domain ` A ` that maps each nonempty member of the
       domain to an element of that member.  Axiom AC of [BellMachover] p. 488.
       Note that the assertion that ` f ` be a function is not necessary; see
       ~ ac4 .  (Contributed by NM, 29-Aug-1999.) $)
    ac5 $p |- E. f ( f Fn A /\ A. x e. A ( x =/= (/) -> ( f ` x ) e. x ) ) $=
      ( vy cv wfn c0 wne cfv wcel wi wral wex wceq fneq2 raleq anbi12d exbidv
      wa dfac4 axaci vtocl ) CFZEFZGZAFZHIUGUDJUGKLZAUEMZTZCNZUDBGZUHABMZTZCNEB
      DUEBOZUJUNCUOUFULUIUMUEBUDPUHAUEBQRSUKEEACUAUBUC $.
  $}

  ${
    $d x f A $.
    ac5b.1 $e |- A e. _V $.
    $( Equivalent of Axiom of Choice.  (Contributed by NM, 31-Aug-1999.) $)
    ac5b $p |- ( A. x e. A x =/= (/) ->
               E. f ( f : A --> U. A /\ A. x e. A ( f ` x ) e. x ) ) $=
      ( cv c0 wne wral cuni ccrd cdm wcel wn wf cfv wa wex cvv uniex numth3
      mp1i neirr neeq1 rspccv mtoi ac5num syl2anc ) AEZFGZABHZBIZJKLZFBLZMBUKCE
      ZNUHUNOUHLABHPCQUKRLULUJBDSUKRTUAUJUMFFGZFUBUIUOAFBUHFFUCUDUEABCUFUG $.
  $}

  ${
    $d f g x z A $.  $d f g x y z B $.  $d f g z ph $.  $d g y ps $.  $d g V $.
    ac6num.1 $e |- ( y = ( f ` x ) -> ( ph <-> ps ) ) $.
    $( A version of ~ ac6 which takes the choice as a hypothesis.  (Contributed
       by Mario Carneiro, 27-Aug-2015.) $)
    ac6num $p |- ( ( A e. V /\ U_ x e. A { y e. B | ph } e. dom card /\
      A. x e. A E. y e. B ph ) -> E. f ( f : A --> B /\ A. x e. A ps ) ) $=
      ( vg vz wcel wral cv wf cfv wa c0 wceq cvv crab ciun ccrd cdm w3a crn wex
      wrex cmpt cuni wn cab nfiu1 nfel1 wss ssiun2 ssexg expcom ralrimi dfiun2g
      syl5 syl eqid rnmpt unieqi syl6eqr id eqeltrrd 3ad2ant2 simp3 necom rabn0
      wne df-ne 3bitr3i ralbii ralnex bitri sylib wb 0ex elrnmpt sylnibr ac5num
      ax-mp syl2anc wfn ffn anim1i fveq2 eleq12d ralrnmpt anbi2d wsbc csb sseld
      syl5ib ralimia ad2antll nfv nfcsb1v nfel eleq1d cbvral nfcv cbvmpt simpl1
      csbeq1a fmpt simpl2 fex2 syl3anc ssrab2 sseli ralimi elrabsf simprbi feq1
      jca nfmpt1 nfeq2 fvex sbcie fveq1 fvmpt2 sylan9eq sbceq1d syl5bbr ralbida
      mpan2 anbi12d spcegv sylc ex syld exlimdv mpd ) EHLZCEADFUAZUBZUCUDZLZADF
      UHZCEMZUEZCEYSUIZUFZUUGUJZJNZOZKNZUUIPZUUKLZKUUGMZQZJUGZEFGNZOZBCEMZQZGUG
      ZUUEUUHUUALZRUUGLZUKUUPUUBYRUVBUUDUUBYTUUHUUAUUBYTUUKYSSZCEUHKULZUJZUUHUU
      BYSTLZCEMZYTUVFSUUBUVGCECYTUUACEYSUMZUNCNZELZYSYTUOZUUBUVGCEYSUPZUVLUUBUV
      GYSYTUUAUQURVAUSZCKEYSTUTVBUUGUVECKEYSUUFUUFVCZVDVEVFUUBVGVHVIUUERYSSZCEU
      HZUVCUUEUUDUVQUKZYRUUBUUDVJUUDUVPUKZCEMUVRUUCUVSCEYSRVMRYSVMUUCUVSYSRVKAD
      FVLRYSVNVOVPUVPCEVQVRVSRTLUVCUVQVTWACEYSRUUFTUVOWBWEWCKUUGJWDWFUUEUUOUVAJ
      UUEUUOUUIUUGWGZYSUUIPZYSLZCEMZQZUVAUUOUVTUUNQUUEUWDUUJUVTUUNUUGUUHUUIWHWI
      UUEUUNUWCUVTUUEUVHUUNUWCVTUUBYRUVHUUDUVNVIUUMUWBCKEYSUUFTUVOUVDUULUWAUUKY
      SUUKYSUUIWJUVDVGWKWLVBWMWQUUEUWDUVAUUEUWDQZCEUWAUIZTLZEFUWFOZADUWAWNZCEMZ
      QZUVAUWEEYTUWFOZYRUUBUWGUWECUUKUWAWOZYTLZKEMZUWLUWEUWAYTLZCEMZUWOUWCUWQUU
      EUVTUWBUWPCEUVKYSYTUWAUVMWPWRWSUWPUWNCKEUWPKWTCUWMYTCUUKUWAXAZUVIXBUVJUUK
      SUWAUWMYTCUUKUWAXHZXCXDVSKEYTUWMUWFCKEUWAUWMKUWAXEUWRUWSXFXIVSYRUUBUUDUWD
      XGYRUUBUUDUWDXJEYTUWFHUUAXKXLUWEUWHUWJUWEUWAFLZCEMZUWHUWCUXAUUEUVTUWBUWTC
      EYSFUWAADFXMXNXOWSCEFUWAUWFUWFVCZXIVSUWCUWJUUEUVTUWBUWICEUWBUWTUWIADUWAFD
      FXEXPXQXOWSXSUUTUWKGUWFTUUQUWFSZUURUWHUUSUWJEFUUQUWFXRUXCBUWICECUUQUWFCEU
      WAXTYABADUVJUUQPZWNUXCUVKQZUWIABDUXDUVJUUQYBIYCUXEADUXDUWAUXCUVKUXDUVJUWF
      PZUWAUVJUUQUWFYDUVKUWATLUXFUWASYSUUIYBCEUWATUWFUXBYEYJYFYGYHYIYKYLYMYNYOY
      PYQ $.
  $}

  ${
    $d f x A $.  $d f x y B $.  $d f ph $.  $d y ps $.
    ac6.1 $e |- A e. _V $.
    ac6.2 $e |- B e. _V $.
    ac6.3 $e |- ( y = ( f ` x ) -> ( ph <-> ps ) ) $.
    $( Equivalent of Axiom of Choice.  This is useful for proving that there
       exists, for example, a sequence mapping natural numbers to members of a
       larger set ` B ` , where ` ph ` depends on ` x ` (the natural number)
       and ` y ` (to specify a member of ` B ` ).  A stronger version of this
       theorem, ~ ac6s , allows ` B ` to be a proper class.  (Contributed by
       NM, 18-Oct-1999.)  (Revised by Mario Carneiro, 27-Aug-2015.) $)
    ac6 $p |- ( A. x e. A E. y e. B ph ->
              E. f ( f : A --> B /\ A. x e. A ps ) ) $=
      ( cvv wcel crab ciun ccrd cdm wrex wral cv wss wf rgenw iunss mpbir ssexi
      wa wex ssrab2 numth3 ax-mp ac6num mp3an12 ) EKLCEADFMZNZOPLZADFQCEREFGSUA
      BCERUFGUGHUNKLUOUNFIUNFTUMFTZCERUPCEADFUHUBCEUMFUCUDUEUNKUIUJABCDEFGKJUKU
      L $.
  $}

  ${
    $d A f x y z $.  $d B f y z $.
    ac6c4.1 $e |- A e. _V $.
    ac6c4.2 $e |- B e. _V $.
    $( Equivalent of Axiom of Choice. ` B ` is a collection ` B ( x ) ` of
       nonempty sets.  (Contributed by Mario Carneiro, 22-Mar-2013.) $)
    ac6c4 $p |- ( A. x e. A B =/= (/) ->
               E. f ( f Fn A /\ A. x e. A ( f ` x ) e. B ) ) $=
      ( vy vz c0 wne wral cv wcel wrex cfv wa wex nfv cbvral nfel2 csb ciun wfn
      wf nfcsb1v nfcv nfne weq csbeq1a neeq1d n0 nfre1 eleq2d rspce sylibr rspe
      eliun sylancom ex exlimd syl5bi ralimia sylbi iunex eleq1 ac6 ffn eleq12d
      fveq2 biimpri anim12i eximi 3syl ) CIJZABKZGLZAHLZCUAZMZGABCUBZNZHBKZBVTD
      LZUDZVQWCOZVRMZHBKZPZDQWCBUCZALZWCOZCMZABKZPZDQVOVRIJZHBKWBVNWOAHBVNHRAVR
      IAVQCUEZAIUFUGAHUHZCVRIAVQCUIZUJSWOWAHBWOVSGQVQBMZWAGVRUKWSVSWAGWSGRVSGVT
      ULWSVSWAWSVSVPVTMZWAWSVSPVPCMZABNWTXAVSAVQBAVPVRWPTWQCVRVPWRUMUNAVPBCUQUO
      VSGVTUPURUSUTVAVBVCVSWFHGBVTDEABCEFVDVPWEVRVEVFWHWNDWDWIWGWMBVTWCVGWMWGWL
      WFAHBWLHRAWEVRWPTWQWKWECVRWJVQWCVIWRVHSVJVKVLVM $.

    $( Equivalent of Axiom of Choice. ` B ` is a collection ` B ( x ) ` of
       nonempty sets.  Remark after Theorem 10.46 of [TakeutiZaring] p. 98.
       (Contributed by Mario Carneiro, 22-Mar-2013.) $)
    ac6c5 $p |- ( A. x e. A B =/= (/) -> E. f A. x e. A ( f ` x ) e. B ) $=
      ( c0 wne wral cv wfn cfv wcel wa wex ac6c4 exsimpr syl ) CGHABIDJZBKZAJSL
      CMABIZNDOUADOABCDEFPTUADQR $.

    $d A f x $.  $d B f $.
    $( An Axiom of Choice equivalent: the infinite Cartesian product of
       nonempty classes is nonempty.  Axiom of Choice (second form) of
       [Enderton] p. 55 and its converse.  (Contributed by Mario Carneiro,
       22-Mar-2013.) $)
    ac9 $p |- ( A. x e. A B =/= (/) <-> X_ x e. A B =/= (/) ) $=
      ( vf c0 wne wral cixp cv wfn cfv wcel wa wex ac6c4 n0 vex elixp bitr2i
      exbii sylib ixpn0 impbii ) CGHABIZABCJZGHZUFFKZBLAKUIMCNABIOZFPZUHABCFDEQ
      UHUIUGNZFPUKFUGRULUJFABCUIFSTUBUAUCABCUDUE $.
  $}

  ${
    $d x f z A $.  $d x y f z B $.  $d f z ph $.  $d y z ps $.
    ac6s.1 $e |- A e. _V $.
    ac6s.2 $e |- ( y = ( f ` x ) -> ( ph <-> ps ) ) $.
    $( Equivalent of Axiom of Choice.  Using the Boundedness Axiom ~ bnd2 , we
       derive this strong version of ~ ac6 that doesn't require ` B ` to be a
       set.  (Contributed by NM, 4-Feb-2004.) $)
    ac6s $p |- ( A. x e. A E. y e. B ph ->
                E. f ( f : A --> B /\ A. x e. A ps ) ) $=
      ( vz wrex wral cv wss wa wex wf bnd2 vex ac6 anim2i fss expcom anim1d imp
      eximi eximdv exlimiv 3syl ) ADFKCELJMZFNZADUJKCELZOZJPUKEUJGMZQZBCELZOZGP
      ZOZJPEFUNQZUPOZGPZACDJEFHRUMUSJULURUKABCDEUJGHJSITUAUFUSVBJUKURVBUKUQVAGU
      KUOUTUPUOUKUTEUJFUNUBUCUDUGUEUHUI $.

    $( Equivalent of Axiom of Choice.  Contrapositive of ~ ac6s .  (Contributed
       by NM, 10-Jun-2007.) $)
    ac6n $p |- ( A. f ( f : A --> B -> E. x e. A ps ) ->
                E. x e. A A. y e. B ph ) $=
      ( cv wf wn wral wa wex wrex wi wal cfv bitri wceq notbid ac6s con3i albii
      dfrex2 imbi2i alinexa dfral2 rexbii rexnal 3imtr4i ) EFGJZKZBLZCEMZNGOZLZ
      ALZDFPZCEMZLZUNBCEPZQZGRZADFMZCEPZVAUQUSUOCDEFGHDJCJUMSUAABIUBUCUDVEUNUPL
      ZQZGRURVDVIGVCVHUNBCEUFUGUEUNUPGUHTVGUTLZCEPVBVFVJCEADFUIUJUTCEUKTUL $.

    $( Generalization of the Axiom of Choice to classes.  Slightly strengthened
       version of ~ ac6s3 .  (Contributed by NM, 29-Sep-2006.) $)
    ac6s2 $p |- ( A. x e. A E. y ph -> E. f ( f Fn A /\ A. x e. A ps ) ) $=
      ( wex wral cvv wrex cv wfn wa rexv ralbii wf ac6s ffn anim1i eximi sylbir
      syl ) ADIZCEJADKLZCEJZFMZENZBCEJZOZFIZUFUECEADPQUGEKUHRZUJOZFIULABCDEKFGH
      SUNUKFUMUIUJEKUHTUAUBUDUC $.

    $( Generalization of the Axiom of Choice to classes.  Theorem 10.46 of
       [TakeutiZaring] p. 97.  (Contributed by NM, 3-Nov-2004.) $)
    ac6s3 $p |- ( A. x e. A E. y ph -> E. f A. x e. A ps ) $=
      ( wex wral cv wfn wa ac6s2 exsimpr syl ) ADICEJFKELZBCEJZMFIRFIABCDEFGHNQ
      RFOP $.
  $}

  ${
    $d A f x z $.  $d B f x y z $.  $d f z ph $.  $d y z ps $.
    ac6sg.1 $e |- ( y = ( f ` x ) -> ( ph <-> ps ) ) $.
    $( ~ ac6s with sethood as antecedent.  (Contributed by FL, 3-Aug-2009.) $)
    ac6sg $p |- ( A e. V -> ( A. x e. A E. y e. B ph ->
                E. f ( f : A --> B /\ A. x e. A ps ) ) ) $=
      ( vz wrex cv wral wf wa wex wi wceq raleq feq2 anbi12d exbidv imbi12d vex
      ac6s vtoclg ) ADFKZCJLZMZUHFGLZNZBCUHMZOZGPZQUGCEMZEFUJNZBCEMZOZGPZQJEHUH
      ERZUIUOUNUSUGCUHESUTUMURGUTUKUPULUQUHEFUJTBCUHESUAUBUCABCDUHFGJUDIUEUF $.
  $}

  ${
    $d f x z A $.  $d x y f z B $.  $d f z ph $.  $d z ps $.
    ac6sf.1 $e |- F/ y ps $.
    ac6sf.2 $e |- A e. _V $.
    ac6sf.3 $e |- ( y = ( f ` x ) -> ( ph <-> ps ) ) $.
    $( Version of ~ ac6 with bound-variable hypothesis.  (Contributed by NM,
       2-Mar-2008.) $)
    ac6sf $p |- ( A. x e. A E. y e. B ph ->
                E. f ( f : A --> B /\ A. x e. A ps ) ) $=
      ( vz wrex wral wsb cv wf wa wex cbvrexsv ralbii cfv sbhypf ac6s sylbi ) A
      DFLZCEMADKNZKFLZCEMEFGOZPBCEMQGRUEUGCEADKFSTUFBCKEFGIABDKCOUHUAHJUBUCUD
      $.
  $}

  ${
    $d f x y A $.  $d f y B $.
    ac6s4.1 $e |- A e. _V $.
    $( Generalization of the Axiom of Choice to proper classes. ` B ` is a
       collection ` B ( x ) ` of nonempty, possible proper classes.
       (Contributed by NM, 29-Sep-2006.) $)
    ac6s4 $p |- ( A. x e. A B =/= (/) ->
               E. f ( f Fn A /\ A. x e. A ( f ` x ) e. B ) ) $=
      ( vy c0 wne wral cv wcel wex wfn cfv wa n0 ralbii eleq1 ac6s2 sylbi ) CGH
      ZABIFJZCKZFLZABIDJZBMAJUENZCKZABIODLUAUDABFCPQUCUGAFBDEUBUFCRST $.

    $( Generalization of the Axiom of Choice to proper classes. ` B ` is a
       collection ` B ( x ) ` of nonempty, possible proper classes.  Remark
       after Theorem 10.46 of [TakeutiZaring] p. 98.  (Contributed by NM,
       27-Mar-2006.) $)
    ac6s5 $p |- ( A. x e. A B =/= (/) -> E. f A. x e. A ( f ` x ) e. B ) $=
      ( c0 wne wral cv wfn cfv wcel wa wex ac6s4 exsimpr syl ) CFGABHDIZBJZAIRK
      CLABHZMDNTDNABCDEOSTDPQ $.
  $}

  ${
    $d x z y w v $.
    $( An Axiom of Choice equivalent.  Given a family ` x ` of mutually
       disjoint nonempty sets, there exists a set ` y ` containing exactly one
       member from each set in the family.  Theorem 6M(4) of [Enderton] p. 151.
       (Contributed by NM, 14-May-2004.) $)
    ac8 $p |- ( ( A. z e. x z =/= (/) /\
                   A. z e. x A. w e. x ( z =/= w -> ( z i^i w ) = (/) ) ) ->
               E. y A. z e. x E! v v e. ( z i^i y ) ) $=
      ( cv c0 wne wral cin wceq wi wa wcel weu wex dfac5 axaci ) CFZGHCAFZISDFZ
      HSUAJGKLDTICTIMEFSBFJNEOCTIBPLAABCDEQR $.
  $}

  ${
    $d f x A $.  $d f B $.
    ac9.1 $e |- A e. _V $.
    $( An Axiom of Choice equivalent: the infinite Cartesian product of
       nonempty classes is nonempty.  Axiom of Choice (second form) of
       [Enderton] p. 55 and its converse.  This is a stronger version of the
       axiom in Enderton, with no existence requirement for the family of
       classes ` B ( x ) ` (achieved via the Collection Principle ~ cp ).
       (Contributed by NM, 29-Sep-2006.) $)
    ac9s $p |- ( A. x e. A B =/= (/) <-> X_ x e. A B =/= (/) ) $=
      ( vf c0 wne wral cixp cv wfn cfv wcel wa wex ac6s4 n0 vex elixp exbii
      bitr2i sylib ixpn0 impbii ) CFGABHZABCIZFGZUEEJZBKAJUHLCMABHNZEOZUGABCEDP
      UGUHUFMZEOUJEUFQUKUIEABCUHERSTUAUBABCUCUD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  AC equivalents:  well-ordering, Zorn's lemma
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y A $.
    $( Any set is strictly dominated by some ordinal.  (Contributed by NM,
       22-Oct-2003.) $)
    numthcor $p |- ( A e. V -> E. x e. On A ~< x ) $=
      ( vy cv csdm wbr con0 wrex wceq breq1 rexbidv cpw cen vpwex numth2 canth2
      vex ensym sdomentr sylancr reximi ax-mp vtoclg ) DEZAEZFGZAHIZBUFFGZAHIDB
      CUEBJUGUIAHUEBUFFKLUFUEMZNGZAHIUHAUJDOPUKUGAHUKUEUJFGUJUFNGUGUEDRQUFUJSUE
      UJUFTUAUBUCUD $.
  $}

  ${
    $d A x y $.
    $( Well-ordering theorem: any set ` A ` can be well-ordered.  This is an
       equivalent of the Axiom of Choice.  Theorem 6 of [Suppes] p. 242.  First
       proved by Ernst Zermelo (the "Z" in ZFC) in 1904.  (Contributed by Mario
       Carneiro, 5-Jan-2013.) $)
    weth $p |- ( A e. V -> E. x x We A ) $=
      ( vy cv wwe wex wceq weeq2 exbidv dfac8 axaci vtoclg ) DEZAEZFZAGZBOFZAGD
      BCNBHPRANBOIJQDDAKLM $.
  $}

  ${
    $d a b f g r s u v w x y z A $.  $d a b f u v y D $.
    $d a b f g r s u v x y z F $.  $d a b f g r s u v w x y z R $.  $d v C $.
    $( Generator function.  ` w ` is a well-ordering on ` A ` . $)
    zorn2lem.3 $e |- F =
      recs ( ( f e. _V |-> ( iota_ v e. C A. u e. C -. u w v ) ) ) $.
    $( Auxiliary sets. $)
    zorn2lem.4 $e |- C = { z e. A | A. g e. ran f g R z } $.
    zorn2lem.5 $e |- D = { z e. A | A. g e. ( F " x ) g R z } $.
    $( Lemma for ~ zorn2 .  (Contributed by NM, 3-Apr-1997.)  (Revised by Mario
       Carneiro, 9-May-2015.) $)
    zorn2lem1 $p |- ( ( x e. On /\ ( w We A /\ D =/= (/) ) ) ->
                   ( F ` x ) e. D ) $=
      ( cv con0 wcel wral cvv wwe c0 wne wa cfv wbr wn crio cres cmpt wceq tfr2
      adantr wfun wfn tfr1 fnfun ax-mp vex resfunexg mp2an crn crab cima df-ima
      rneq syl6eqr eleq2d imbi1d rabbidv 3eqtr4g riotaeqbidv eqid riotaex fvmpt
      ralbidv2 syl6eq wreu wss simprl weso ad2antrl soex sylancl rabexd eqsstri
      wor ssrab2 a1i simprr wereu syl13anc riotacl syl eqeltrd ) APZQRZFCPZUAZH
      UBUCZUDZUDZWPLUEZEPZDPWRUFUGZEHSZDHUHZHXBXCLWPUIZJTXEEGSZDGUHZUJZUEZXGWQX
      CXLUKXAWPLXKMULUMXHTRZXLXGUKLUNZWPTRXMLQUOXNLXKMUPQLUQURAUSLWPTUTVAJXHXJX
      GTXKJPZXHUKZXIXFDGHXPKPZBPIUFZKXOVBZSZBFVCXRKLWPVDZSZBFVCZGHXPXTYBBFXPXRX
      RKXSYAXPXQXSRXQYARXRXPXSYAXQXPXSXHVBYAXOXHVFLWPVEVGVHVIVPVJNOVKZXPXEXEEGH
      XPXDGRXDHRXEXPGHXDYDVHVIVPVLXKVMXFDHVNVOURVQXBXFDHVRZXGHRXBWSHTRHFVSZWTYE
      WQWSWTVTXBYBBFHTOXBFWRWGZWRTRFTRWSYGWQWTFWRWAWBCUSFWRTWCWDWEYFXBHYCFOYBBF
      WHWFWIWQWSWTWJDEFHWRTWKWLXFDHWMWNWO $.

    $( Lemma for ~ zorn2 .  (Contributed by NM, 3-Apr-1997.)  (Revised by Mario
       Carneiro, 9-May-2015.) $)
    zorn2lem2 $p |- ( ( x e. On /\ ( w We A /\ D =/= (/) ) ) ->
                   ( y e. x -> ( F ` y ) R ( F ` x ) ) ) $=
      ( cv con0 wcel wbr wwe c0 wne cfv cima wral zorn2lem1 wceq ralbidv elrab2
      wa breq2 simprbi syl wi wfn wss cvv wn crio cmpt tfr1 onss fnfvima 3expia
      sylancr adantr breq1 rspccv sylsyld ) AQZRSZGDQZUAIUBUCUKZUKZLQZVKMUDZJTZ
      LMVKUEZUFZBQZVKSZWAMUDZVSSZWCVQJTZVOVQISZVTACDEFGHIJKLMNOPUGWFVQGSVTVPCQZ
      JTZLVSUFVTCVQGIWGVQUHWHVRLVSWGVQVPJULUIPUJUMUNVLWBWDUOZVNVLMRUPZVKRUQZWIM
      KURFQEQVMTUSFHUFEHUTVANVBVKVCWJWKWBWDRVKMWAVDVEVFVGVRWELWCVSVPWCVQJVHVIVJ
      $.

    $( Lemma for ~ zorn2 .  (Contributed by NM, 3-Apr-1997.)  (Revised by Mario
       Carneiro, 9-May-2015.) $)
    zorn2lem3 $p |- ( ( R Po A /\ ( x e. On /\ ( w We A /\ D =/= (/) ) ) ) ->
                   ( y e. x -> -. ( F ` x ) = ( F ` y ) ) ) $=
      ( cv wcel wa wbr wpo con0 wwe c0 wne cfv wceq wn wi zorn2lem2 adantl cima
      wral crab ssrab2 zorn2lem1 sseldi breq1 biimprcd poirr nsyli com12 sylan2
      eqsstri syld ) GJUAZAQZUBRGDQUCIUDUESSZSBQZVGRZVIMUFZVGMUFZJTZVLVKUGZUHZV
      HVJVMUIVFABCDEFGHIJKLMNOPUJUKVHVFVLGRZVMVOUIVHIGVLILQCQJTLMVGULUMZCGUNGPV
      QCGUOVDACDEFGHIJKLMNOPUPUQVMVFVPSZVOVMVNVLVLJTZVRVNVSVMVLVKVLJURUSGVLJUTV
      AVBVCVE $.

    $( Lemma for ~ zorn2 .  (Contributed by NM, 3-Apr-1997.)  (Revised by Mario
       Carneiro, 9-May-2015.) $)
    zorn2lem4 $p |- ( ( R Po A /\ w We A ) -> E. x e. On D = (/) ) $=
      ( vy con0 cvv wcel wi wpo cv wwe wa c0 wceq wrex crn pm3.24 wne wal df-ne
      wn wral ralbii df-ral ralnex 3bitr3i wor weso adantr vex soex sylancl cfv
      wfn wb wbr crio cmpt tfr1 fvelrnb ax-mp nfv nfa1 nfan cima ssrab2 eqsstri
      crab zorn2lem1 sseldi eleq1 syl5ibcom exp32 com12 a2d spsd rexlimd syl5bi
      imp ssrdv ssexd ex adantl ccnv zorn2lem3 exp45 com23 imp4a alrimdv alimdv
      wfun r2al syl6ibr cres wss ssid tz7.48lem mpan cdm fnrel eqimssi relssres
      wrel fndm mp2an cnveqi funeqi sylib syl6 onprc funrnex df-rn eleq1i dfdm4
      eqtr3i 3imtr4g mtoi jcad syl5bir mt3i ) FIUAZFCUBZUCZUDZHUEUFZAQUGZLUHZRS
      ZYTUMZUDZYTUIYRUMZAUBZQSZHUEUJZTZAUKZYPUUBUUFAQUNYQUMZAQUNUUHUUCUUFUUIAQH
      UEULUOUUFAQUPYQAQUQURYPUUHYTUUAYOUUHYTTYMYOUUHYTYOUUHUDZYSFRUUJFYNUSZYNRS
      FRSYOUUKUUHFYNUTVACVBFYNRVCVDUUJPYSFPUBZYSSZUUDLVEZUULUFZAQUGZUUJUULFSZLQ
      VFZUUMUUPVGLJREUBDUBYNVHUMEGUNDGVIVJMVKZAQUULLVLVMUUJUUOUUQAQYOUUHAYOAVNU
      UGAVOVPUUQAVNYOUUHUUEUUOUUQTZTZYOUUGUVAAYOUUEUUFUUTUUEYOUUFUUTTUUEYOUUFUU
      TUUEYOUUFUDUDZUUNFSUUOUUQUVBHFUUNHKUBBUBIVHKLUUDVQUNZBFVTFOUVCBFVRVSABCDE
      FGHIJKLMNOWAWBUUNUULFWCWDWEWFWGWHWKWIWJWLWMWNWOYPUUHLWPZXCZUUAYPUUHUUNUUL
      LVEUFUMZPUUDUNAQUNZUVEYPUUHUUEUULUUDSZUDUVFTZPUKZAUKUVGYPUUGUVJAYPUUGUVIP
      YPUUGUUEUVHUVFYPUUEUUFUVHUVFTZYMYOUUEUUFUVKTZTYMUUEYOUVLYMUUEYOUUFUVKAPBC
      DEFGHIJKLMNOWQWRWSWKWGWTXAXBUVFAPQUUDXDXEUVGLQXFZWPZXCZUVEQQXGUVGUVOQXHAP
      QLUUSXIXJUVNUVDUVMLLXOZLXKZQXGUVMLUFUURUVPUUSQLXLVMUVQQUURUVQQUFUUSQLXPVM
      ZXMLQXNXQXRXSXTYAUVEYTQRSZYBUVEUVDXKZRSZUVDUHZRSZYTUVSUWAUVEUWCRUVDYCWFYS
      UVTRLYDYEQUWBRUVQQUWBUVRLYFYGYEYHYIYAYJYKYL $.

    ${
      $d x u v f s r a b H $.
      $( Auxiliary set.  ` H ` is ` D ` with ` x ` substituted for ` y ` . $)
      zorn2lem.7 $e |- H = { z e. A | A. g e. ( F " y ) g R z } $.
      $( Lemma for ~ zorn2 .  (Contributed by NM, 4-Apr-1997.)  (Revised by
         Mario Carneiro, 9-May-2015.) $)
      zorn2lem5 $p |- ( ( ( w We A /\ x e. On ) /\ A. y e. x H =/= (/) ) ->
            ( F " x ) C_ A ) $=
        ( cv wcel vs wwe con0 wa c0 wne wral cima cfv wceq wrex wfun wfn cvv wn
        wbr crio cmpt tfr1 fnfun ax-mp fvelima mpan nfra1 nfan wi df-ral onelon
        nfv wal ssrab2 eqsstri zorn2lem1 sseldi eleq1 syl5ib sylani com12 exp43
        crab com3r imp a2d spsd syl5bi rexlimd syl5 ssrdv ) GDSZUBZASZUCTZUDZNU
        EUFZBWKUGZUDZUAMWKUHZGUASZWQTZBSZMUIZWRUJZBWKUKZWPWRGTZMULZWSXCMUCUMXEM
        KUNFSESWIUPUOFHUGEHUQUROUSUCMUTVABWRWKMVBVCWPXBXDBWKWMWOBWMBVIWNBWKVDVE
        XDBVIWMWOWTWKTZXBXDVFZVFZWOXFWNVFZBVJWMXHWNBWKVGWMXIXHBWMXFWNXGWJWLXFWN
        XGVFZVFWLXFWJXJWLXFWJWNXGXBWLXFUDZWJWNUDZUDXDXKXBWTUCTZXLXDWKWTVHXMXLUD
        ZXAGTXBXDXNNGXANLSCSJUPLMWTUHUGZCGVTGRXOCGVKVLBCDEFGHNJKLMOPRVMVNXAWRGV
        OVPVQVRVSWAWBWCWDWEWBWFWGWH $.

      $( Lemma for ~ zorn2 .  (Contributed by NM, 4-Apr-1997.)  (Revised by
         Mario Carneiro, 9-May-2015.) $)
      zorn2lem6 $p |- ( R Po A ->
   ( ( ( w We A /\ x e. On ) /\ A. y e. x H =/= (/) ) -> R Or ( F " x ) ) ) $=
        ( wa wi vs vr vb va wpo cv wwe con0 wcel wne wral cima wbr wceq w3o wor
        c0 wss poss zorn2lem5 syl11 cfv wex wfn wfun cvv wn crio cmpt tfr1 wrex
        fnfun fvelima df-rex sylib ex anim12d mp2b an4 2exbii eeanv sylibr crab
        bitri neeq1i ralbii imaeq2 raleqdv neeq1d rspccv sylbi onelon anim12dan
        rabbidv word eloni ordtri3or syl2an eqid zorn2lem2 adantll biimpcd syl6
        breq12 com23 adantrrl imp fveq2 eqeq12 syl5ib adantl wb ancoms adantrrr
        adantlr 3orim123d syl5 exp31 com4r syl6c exp4a com3r a2d imp4b exlimdvv
        ralrimivv a1i jcad df-so syl6ibr ) GJUEZGDUFZUGZAUFZUHUIZSZNUQUJZBYNUKZ
        SZMYNULZJUEZUAUFZUBUFZJUMZUUBUUCUNZUUCUUBJUMZUOZUBYTUKUAYTUKZSYTJUPYKYS
        UUAUUHYTGURYKUUAYSYTGJUSABCDEFGHIJKLMNOPQRUTVAYSUUHTYKYSUUGUAUBYTYTUUBY
        TUIZUUCYTUIZSZUCUFZYNUIZUDUFZYNUIZSZUULMVBZUUBUNZUUNMVBZUUCUNZSZSZUDVCU
        CVCZYSUUGUUKUUMUURSZUCVCZUUOUUTSZUDVCZSZUVCMUHVDMVEZUUKUVHTMKVFFUFEUFYL
        UMVGFHUKEHVHVIOVJUHMVLUVIUUIUVEUUJUVGUVIUUIUVEUVIUUISUURUCYNVKUVEUCUUBY
        NMVMUURUCYNVNVOVPUVIUUJUVGUVIUUJSUUTUDYNVKUVGUDUUCYNMVMUUTUDYNVNVOVPVQV
        RUVCUVDUVFSZUDVCUCVCUVHUVBUVJUCUDUUMUUOUURUUTVSVTUVDUVFUCUDWAWDWBYSUVBU
        UGUCUDYPYRUUPUVAUUGYRUUPLUFCUFJUMZLMUULULZUKZCGWCZUQUJZUVKLMUUNULZUKZCG
        WCZUQUJZSZTZYPUUPUVAUUGTZTYRUVKLMBUFZULZUKZCGWCZUQUJZBYNUKZUWAYQUWGBYNN
        UWFUQRWEWFUWHUUMUVOUUOUVSUWGUVOBUULYNUWCUULUNZUWFUVNUQUWIUWEUVMCGUWIUVK
        LUWDUVLUWCUULMWGWHWNWIWJUWGUVSBUUNYNUWCUUNUNZUWFUVRUQUWJUWEUVQCGUWJUVKL
        UWDUVPUWCUUNMWGWHWNWIWJVQWKYPUUPUVTUWBYMYOUUPUVTUWBTZTYOUUPYMUWKYOUUPYM
        UVTUWBYOUUPUULUHUIZUUNUHUIZSZUWNYMUVTSZUWBTYOUUPUWNYOUUMUWLUUOUWMYNUULW
        LYNUUNWLWMVPZUWPUWNUWOUVAUWNUUGUWNUWOUVAUWNUUGTUWNUULUUNUIZUULUUNUNZUUN
        UULUIZUOZUWNUWOSZUVASZUUGUWLUULWOUUNWOUWTUWMUULWPUUNWPUULUUNWQWRUXBUWQU
        UDUWRUUEUWSUUFUXAUVAUWQUUDTZUWNYMUVSUVAUXCTUVOUWNYMUVSSZSZUWQUVAUUDUXEU
        WQUUQUUSJUMZUVAUUDTUWMUXDUWQUXFTUWLUDUCCDEFGHUVRJKLMOPUVRWSWTXAUVAUXFUU
        DUUQUUBUUSUUCJXDXBXCXEXFXGUVAUWRUUETUXAUWRUUQUUSUNUVAUUEUULUUNMXHUUQUUB
        UUSUUCXIXJXKUXAUVAUWSUUFTZUWNYMUVOUVAUXGTUVSUWNYMUVOSZSZUWSUVAUUFUXIUWS
        UUSUUQJUMZUVAUUFTUWLUXHUWSUXJTUWMUCUDCDEFGHUVNJKLMOPUVNWSWTXOUVAUXJUUFU
        UTUURUXJUUFXLUUSUUCUUQUUBJXDXMXBXCXEXNXGXPXQXRXSXTYAYBXGYCXQYDYEXQYFYGY
        HUAUBYTJYIYJ $.

      $( Lemma for ~ zorn2 .  (Contributed by NM, 6-Apr-1997.)  (Revised by
         Mario Carneiro, 9-May-2015.) $)
      zorn2lem7 $p |- ( ( A e. dom card /\ R Po A /\
      A. s ( ( s C_ A /\ R Or s ) -> E. a e. A A. r e. s ( r R a \/ r = a ) ) )
                  -> E. a e. A A. b e. A -. a R b ) $=
        ( ccrd cdm wcel wpo cv wss wor wa wbr weq wo wral wrex wal wwe wex ween
        wi wn c0 wceq con0 zorn2lem4 cima imaeq2 raleqdv rabbidv 3eqtr4g eqeq1d
        crab onminex df-ne ralbii anbi2i rexbii sylibr zorn2lem5 zorn2lem6 jcad
        wne a1i wfn wfun cvv crio cmpt tfr1 fnfun vex funimaex mp2b sseq1 soeq2
        anbi12d raleq rexbidv imbi12d spcv sylan9 adantld imp noel sseld 3anass
        w3a potr sylan2br expcomd breq1 biimprcd jaod exp42 sylan9r com24 com23
        adantl imp31 ralimdv2 cbvralv breq2 ralbidv elrab wb eqeq1i eleq2 sylbi
        a2d syl5bbr biimpd expdimp syl5bi exp32 com34 mtoi exp4a ex com4r impd
        pm2.43a com4l ralrimdv expd reximdvai com12 imp32 mpd exp45 imp4a com3l
        adantr rexlimiv 3syl adantlr pm2.43i expcom exlimiv 3impib ) GUCUDUEZGJ
        UFZOUGZGUHZUVBJUIZUJZPUGZQUGZJUKZPQULZUMZPUVBUNZQGUOZUTZOUPZUVGRUGZJUKZ
        VAZRGUNZQGUOZUUTGDUGZUQZDURUVAUVNUJZUVSUTZGDUSUWAUWCDUWBUWAUVSUWBUWAUJZ
        UVSUVAUWAUWDUVSUTZUVNUVAUWAUJIVBVCZAVDUOZUWFNVBWBZBAUGZUNZUJZAVDUOZUWEA
        CDEFGHIJKLMSTUAVEUWGUWFNVBVCZVAZBUWIUNZUJZAVDUOUWLUWFUWMABABULZINVBUWQL
        UGZCUGZJUKZLMUWIVFZUNZCGVLZUWTLMBUGZVFZUNZCGVLINUWQUXBUXFCGUWQUWTLUXAUX
        EUWIUXDMVGVHVIUAUBVJVKVMUWKUWPAVDUWJUWOUWFUWHUWNBUWINVBVNVOVPVQVRUWKUWE
        AVDUWDUWIVDUEZUWKUVSUWDUXGUWFUWJUVSUWBUWAUXGUWFUWJUVSUTZUTUWBUWFUWAUXGU
        JZUXHUWBUWFUXIUWJUVSUWBUWFUXIUWJUJZUJZUJUVJPUXAUNZQGUOZUVSUWBUXKUXMUWBU
        XJUXMUWFUVAUXJUXAGUHZUXAJUIZUJZUVNUXMUVAUXJUXNUXOUXJUXNUTUVAABCDEFGHIJK
        LMNSTUAUBVSZWCABCDEFGHIJKLMNSTUAUBVTWAUVMUXPUXMUTOUXAMVDWDMWEUXAWFUEMKW
        FFUGEUGUVTUKVAFHUNEHWGWHSWIVDMWJMUWIAWKWLWMUVBUXAVCZUVEUXPUVLUXMUXRUVCU
        XNUVDUXOUVBUXAGWNUVBUXAJWOWPUXRUVKUXLQGUVJPUVBUXAWQWRWSWTXAXBXCUWBUWFUX
        JUXMUVSUTZUVAUWFUXJUXSUTZUTUVNUWFUVAUXTUWFUVAUXJUXSUWFUVAUXJUJZUJZUXLUV
        RQGUYBUVGGUEZUXLUVRUYBUYCUXLUJUVQRGUYBUYCUXLUVOGUEZUVQUTUYDUYBUYCUXLUVQ
        UYDUWFUYAUYCUXLUVQUTZUTZUWFUYDUYAUYFUTUWFUYDUYAUYDUYFUWFUYDUYAUYDUYFUTU
        TUWFUYDUJZUYAUYCUYDUYEUYGUYAUYCUYDUYEUYGUYAUYCUYDUJZUXLUVQUYGUYAUYHUJZU
        JUXLUJUVPUVOVBUEZUVOXDUYGUYIUXLUVPUYJUTUYGUYIUVPUXLUYJUYGUYIUVPUXLUYJUT
        UYIUVPUJZUXLUVFUVOJUKZPUXAUNZUYGUYJUYKUVJUYLPUXAUXAUYKUVFUXAUEZUVJUYLUY
        AUYHUVPUYNUVJUYLUTZUTZUYAUVPUYHUYPUYAUYNUYHUVPUYOUXJUYNUVFGUEZUVAUYHUVP
        UYOUTUTUXJUXAGUVFUXQXEUVAUYQUYHUVPUYOUVAUYQUYHUJZUJZUVPUJUVHUYLUVIUYSUV
        PUVHUYLUTUYSUVHUVPUYLUYRUVAUYQUYCUYDXGUVHUVPUJUYLUTUYQUYCUYDXFGUVFUVGUV
        OJXHXIXJXCUVPUVIUYLUTUYSUVIUYLUVPUVFUVGUVOJXKXLXRXMXNXOXPXQXSYIXTUYMUWR
        UVOJUKZLUXAUNZUYGUYJUYLUYTPLUXAUVFUWRUVOJXKYAUWFUYDVUAUYJUWFUYDVUAUJZUY
        JVUBUVOUXCUEZUWFUYJUXBVUACUVOGCRULUWTUYTLUXAUWSUVOUWRJYBYCYDUWFUXCVBVCV
        UCUYJYEIUXCVBUAYFUXCVBUVOYGYHYJYKYLYMXOYNYOXSYPXNYQYOYRYSUUAYTUUBYTUUCU
        UDUUEYNUUFUULUUGUUHUUIXQYLUUJUUKUUMUUNUUOUUPUUQUURYHUUS $.
    $}
  $}

  ${
    $d x y z w v u g h t s r q d k m n R $.
    $d x y z w v u g h t s r q d k m n A $.
    $( Zorn's Lemma of [Monk1] p. 117.  This version of ~ zorn2 avoids the
       Axiom of Choice by assuming that ` A ` is well-orderable.  (Contributed
       by NM, 6-Apr-1997.)  (Revised by Mario Carneiro, 9-May-2015.) $)
    zorn2g $p |- ( ( A e. dom card /\ R Po A /\
      A. w ( ( w C_ A /\ R Or w ) -> E. x e. A A. z e. w ( z R x \/ z = x ) ) )
                  -> E. x e. A A. y e. A -. x R y ) $=
      ( vr vq vm vk vv vd vs vh vg vn cv wbr wral crab vu vt crn cvv crio crecs
      wn cmpt cima wceq weq breq1 notbid cbvralv breq2 ralbidv syl5bb cbvriotav
      rneq raleqdv rabbidv riotaeqbidv syl5eq cbvmptv recseq ax-mp cbvrabv eqid
      zorn2lem7 ) UAUBGHIJEHQZKQZFRZHLQZUCZSZKETZMQZGQZFRZMNUDOQZPQZVJRZUGZOVLH
      NQZUCZSZKETZSZPWGUEZUHZUFZUAQUISGETZFLMWKVSMWKUBQUISGETZDCABWJLUDJQZIQZVJ
      RZUGZJVPSZIVPUEZUHZUJWKWTUFUJNLUDWIWSNLUKZWIWQJWGSZIWGUEWSWHXBPIWGWHWNWAV
      JRZUGZJWGSPIUKZXBWCXDOJWGOJUKWBXCVTWNWAVJULUMUNXEXDWQJWGXEXCWPWAWOWNVJUOU
      MUPUQURXAXBWRIWGVPXAWFVOKEXAVLHWEVNWDVMUSUTVAZXAWQJWGVPXFUTVBVCVDWJWTVEVF
      VOVSMVNSZKGEVOVQVKFRZMVNSKGUKZXGVLXHHMVNVJVQVKFULUNXIXHVSMVNVKVRVQFUOUPUQ
      VGWLVHWMVHVI $.

    $( Zorn's Lemma.  If the union of every chain (with respect to inclusion)
       in a set belongs to the set, then the set contains a maximal element.
       Theorem 6M of [Enderton] p. 151.  This version of ~ zorn avoids the
       Axiom of Choice by assuming that ` A ` is well-orderable.  (Contributed
       by NM, 12-Aug-2004.)  (Revised by Mario Carneiro, 9-May-2015.) $)
    zorng $p |- ( ( A e. dom card /\ A. z ( ( z C_ A /\ [C.] Or z ) ->
       U. z e. A ) ) -> E. x e. A A. y e. A -. x C. y ) $=
      ( vu wcel cv wss crpss wa wi wal wbr wn wral wrex wpss wceq wo sylib ccrd
      cdm wor cuni risset eqimss2 unissb vex brrpss orbi1i bitr4i ralbii sylibr
      sspss reximi sylbi imim2i alimi porpss zorn2g mp3an2 sylan2 notbii rexbii
      wpo ) DUAUBFZCGZDHVGIUCJZVGUDZDFZKZCLZJAGZBGZIMZNZBDOZADPZVMVNQZNZBDOZADP
      VLVFVHEGZVMIMZWBVMRZSZEVGOZADPZKZCLZVRVKWHCVJWGVHVJVMVIRZADPWGAVIDUEWJWFA
      DWJWBVMHZEVGOZWFWJVIVMHWLVIVMUFEVGVMUGTWEWKEVGWEWBVMQZWDSWKWCWMWDWBVMAUHU
      IUJWBVMUNUKULUMUOUPUQURVFDIVEWIVRDUSABECDIUTVAVBVQWAADVPVTBDVOVSVMVNBUHUI
      VCULVDT $.

    $( Variant of Zorn's lemma ~ zorng in which ` (/) ` , the union of the
       empty chain, is not required to be an element of ` A ` .  (Contributed
       by Jeff Madsen, 5-Jan-2011.)  (Revised by Mario Carneiro,
       9-May-2015.) $)
    zornn0g $p |- ( ( A e. dom card /\ A =/= (/) /\ A. z ( ( z C_ A /\
      z =/= (/) /\ [C.] Or z ) -> U. z e. A ) )
                                  -> E. x e. A A. y e. A -. x C. y ) $=
      ( vw wcel c0 wne cv wss crpss wor w3a cuni wi wral wrex wa ax-mp wceq cdm
      ccrd wal wpss wn csn cun simp2 simp1 snfi finnum unnum sylancl cdif uncom
      cfn sseq2i ssundif bitri difss soss wb ssdif0 uni0b biimpri eleq1d sylbir
      imbi2d cvv vex sseq1 neeq1 soeq2 3anbi123d unieq imbi12d spcv com12 3expa
      difexg an32s unidif0 eleq1i elun1 sylbi syl6 0ex snid elun2 2a1i pm2.61ne
      sylan2 sylanb alrimiv 3ad2ant3 zorng syl2anc ssun1 ssralv reximi wo rexun
      simpr psseq1 0pss syl6bb notbid nne ralbidv rexsn biimpar sylan2b rexeqdv
      eqsn mpbird jaodan ) DUBUAZFZDGHZCIZDJZXTGHZXTKLZMZXTNZDFZOZCUCZMZXSAIZBI
      ZUDZUEZBDGUFZUGZPZAYOQZYMBDPZADQZXRXSYHUHYIYOXQFZEIZYOJZUUAKLZRZUUANZYOFZ
      OZEUCZYQYIXRYNXQFZYTXRXSYHUIYNUPFUUIGUJYNUKSDYNULUMYHXRUUHXSYHUUGEUUDYHUU
      FUUBUUAYNUNZDJZUUCYHUUFOZUUBUUAYNDUGZJUUKYOUUMUUADYNUOUQUUAYNDURUSUUCUUKU
      UJKLZUULUUJUUAJUUCUUNOUUAYNUTUUJUUAKVASUUKUUNRZUULYHGYOFZOUUJGUUJGTZUUFUU
      PYHUUQUUAYNJZUUFUUPVBUUAYNVCUURUUEGYOUUEGTUURUUAVDVEVFVGVHUUOUUJGHZRYHUUJ
      NZDFZUUFUUKUUSUUNYHUVAOZUUKUUSUUNUVBYHUUKUUSUUNMZUVAYGUVCUVAOCUUJUUAVIFUU
      JVIFEVJUUAYNVIVTSXTUUJTZYDUVCYFUVAUVDYAUUKYBUUSYCUUNXTUUJDVKXTUUJGVLXTUUJ
      KVMVNUVDYEUUTDXTUUJVOVFVPVQVRVSWAUVAUUEDFUUFUUTUUEDUUAWBWCUUEDYNWDWEWFUUP
      UUOYHGYNFUUPGWGWHGYNDWISWJWKWLWMVRWNWOABEYOWPWQYQXSYRAYOQZYSYPYRAYODYOJYP
      YRODYNWRYMBDYOWSSWTUVEXSYSYRAYNQZXAYSYRADYNXBXSYSYSUVFXSYSXCXSUVFRZYSUVFX
      SUVFXCUVGYRADYNUVFXSYKGTZBDPZDYNTZYRUVIAGWGYJGTZYMUVHBDUVKYMYKGHZUEUVHUVK
      YLUVLUVKYLGYKUDUVLYJGYKXDYKXEXFXGYKGXHXFXIXJXSUVJUVIBDGXNXKXLXMXOXPXLWLWQ
      $.
  $}

  ${
    $d w x y z A $.  $d w x y z R $.
    zornn0.1 $e |- A e. _V $.
    $( Zorn's Lemma of [Monk1] p. 117.  This theorem is equivalent to the Axiom
       of Choice and states that every partially ordered set ` A ` (with an
       ordering relation ` R ` ) in which every totally ordered subset has an
       upper bound, contains at least one maximal element.  The main proof
       consists of lemmas ~ zorn2lem1 through ~ zorn2lem7 ; this final piece
       mainly changes bound variables to eliminate the hypotheses of
       ~ zorn2lem7 .  (Contributed by NM, 6-Apr-1997.)  (Revised by Mario
       Carneiro, 9-May-2015.) $)
    zorn2 $p |- ( ( R Po A /\
      A. w ( ( w C_ A /\ R Or w ) -> E. x e. A A. z e. w ( z R x \/ z = x ) ) )
                  -> E. x e. A A. y e. A -. x R y ) $=
      ( ccrd cdm wcel wpo cv wss wor wa wbr weq wral wrex cvv wal numth3 zorn2g
      wo wi wn ax-mp mp3an1 ) EHIJZEFKDLZEMUJFNOCLALZFPCAQUDCUJRAESUEDUAUKBLFPU
      FBERAESETJUIGETUBUGABCDEFUCUH $.

    $( Zorn's Lemma.  If the union of every chain (with respect to inclusion)
       in a set belongs to the set, then the set contains a maximal element.
       This theorem is equivalent to the Axiom of Choice.  Theorem 6M of
       [Enderton] p. 151.  See ~ zorn2 for a version with general partial
       orderings.  (Contributed by NM, 12-Aug-2004.) $)
    zorn $p |- ( A. z ( ( z C_ A /\ [C.] Or z ) -> U. z e. A ) ->
                E. x e. A A. y e. A -. x C. y ) $=
      ( ccrd cdm wcel cv wss crpss wor wa cuni wi wal wpss wn wral cvv numth3
      wrex ax-mp zorng mpan ) DFGHZCIZDJUGKLMUGNDHOCPAIBIQRBDSADUBDTHUFEDTUAUCA
      BCDUDUE $.

    $( Variant of Zorn's lemma ~ zorn in which ` (/) ` , the union of the empty
       chain, is not required to be an element of ` A ` .  (Contributed by Jeff
       Madsen, 5-Jan-2011.) $)
    zornn0 $p |- ( ( A =/= (/) /\ A. z ( ( z C_ A /\ z =/= (/) /\
      [C.] Or z ) -> U. z e. A ) ) -> E. x e. A A. y e. A -. x C. y ) $=
      ( ccrd cdm wcel c0 wne cv wss crpss wor w3a cuni wi wal wpss cvv wn ax-mp
      wral wrex numth3 zornn0g mp3an1 ) DFGHZDIJCKZDLUIIJUIMNOUIPDHQCRAKBKSUABD
      UCADUDDTHUHEDTUEUBABCDUFUG $.
  $}

  ${
    $d a x y z C $.  $d x y D $.  $d a f u v w x y z G $.  $d a f u w y z ph $.
    $d a f u w x y z A $.  $d a f u w x y z B $.  $d x z F $.
    ttukeylem.1 $e |- ( ph ->
      F : ( card ` ( U. A \ B ) ) -1-1-onto-> ( U. A \ B ) ) $.
    ttukeylem.2 $e |- ( ph -> B e. A ) $.
    ttukeylem.3 $e |- ( ph -> A. x ( x e. A <-> ( ~P x i^i Fin ) C_ A ) ) $.
    $( Lemma for ~ ttukey .  Expand out the property of being an element of a
       property of finite character.  (Contributed by Mario Carneiro,
       15-May-2015.) $)
    ttukeylem1 $p |- ( ph -> ( C e. A <-> ( ~P C i^i Fin ) C_ A ) ) $=
      ( cvv wcel cpw cfn cin wss cdom cun ccrd ssexg wb wi elex a1i wa wbr cuni
      cdif ssun1 undif1 sseqtr4i cfv wfo fvex wf1o f1ofo syl fornex mpsyl unexg
      id syl2anc sylancr uniexb sylibr syl2anr infpwfidom reldom brrelexi ex cv
      3syl wal wceq eleq1 pweq ineq1d sseq1d bibi12d spcgv syl5com pm5.21ndd )
      AEJKZECKZELZMNZCOZWCWBUAAECUBUCAWFWBAWFUDWEJKZEWEPUEWBWFWFCJKZWGAWFUTACUF
      ZJKZWHAWIWIDUGZDQZOWLJKZWJWIWIDQWLWIDUHWIDUIUJAWKJKZDCKWMWKRUKZJKAWOWKFUL
      ZWNWKRUMAWOWKFUNWPGWOWKFUOUPWOWKJFUQURHWKDJCUSVAWIWLJSVBCVCVDWECJSVEEVFEW
      EPVGVHVKVIABVJZCKZWQLZMNZCOZTZBVLWBWCWFTZIXBXCBEJWQEVMZWRWCXAWFWQECVNXDWT
      WECXDWSWDMWQEVOVPVQVRVSVTWA $.

    $( Lemma for ~ ttukey .  A property of finite character is closed under
       subsets.  (Contributed by Mario Carneiro, 15-May-2015.) $)
    ttukeylem2 $p |- ( ( ph /\ ( C e. A /\ D C_ C ) ) -> D e. A ) $=
      ( wcel wss wa cpw cfn cin wi wb ttukeylem1 adantr simpr sspwb sylib ssrin
      sstr2 3syl 3imtr4d impancom impr ) AECKZFELZFCKZAUKUJULAUKMZENZOPZCLZFNZO
      PZCLZUJULUMUQUNLZURUOLUPUSQUMUKUTAUKUAFEUBUCUQUNOUDURUOCUEUFAUJUPRUKABCDE
      GHIJSTAULUSRUKABCDFGHIJSTUGUHUI $.

    ttukeylem.4 $e |- G = recs ( ( z e. _V |-> if ( dom z = U. dom z ,
      if ( dom z = (/) , B , U. ran z ) , ( ( z ` U. dom z ) u.
      if ( ( ( z ` U. dom z ) u. { ( F ` U. dom z ) } ) e. A ,
        { ( F ` U. dom z ) } , (/) ) ) ) ) ) $.
    $( Lemma for ~ ttukey .  (Contributed by Mario Carneiro, 11-May-2015.) $)
    ttukeylem3 $p |- ( ( ph /\ C e. On ) -> ( G ` C ) = if ( C = U. C ,
      if ( C = (/) , B , U. ( G " C ) ) , ( ( G ` U. C ) u. if ( ( ( G ` U. C )
         u. { ( F ` U. C ) } ) e. A , { ( F ` U. C ) } , (/) ) ) ) ) $=
      ( con0 wcel cfv cvv wceq c0 cif cun wa cres cv cdm cuni crn csn cmpt cima
      tfr2 adantl eqidd simpr dmeqd wfn tfr1 onss ad2antlr fnssres sylancr fndm
      wss syl eqtrd unieqd eqeq12d eqeq1d rneqd df-ima syl6eqr ifbieq2d fveq12d
      fveq2d sneqd uneq12d eleq1d ifbieq12d wn csuc onuni ad3antlr sucidg eloni
      word wo orduniorsuc orcanai eleqtrrd fvres ifbid ifeq2da wfun fnfun ax-mp
      uneq1d resfunexg elex funimaexg mpan uniexg ifcl syl2an fvex snex sylancl
      0ex ifex unex fvmptd ) AFMNZUAZFHOZHFUBZCPCUCZUDZXOUEZQZXORQZEXNUFZUEZSZX
      PXNOZYBXPGOZUGZTZDNZYDRSZTZSZUHZOZFFUEZQZFRQZEHFUIZUEZSZYLHOZYRYLGOZUGZTZ
      DNZYTRSZTZSZXJXLYKQAFHYJLUJUKXKCXMYIUUEPYJPXKYJULXKXNXMQZUAZYIYMYQYLXMOZU
      UHYTTZDNZYTRSZTZSUUEUUGXQYMYAYHYQUULUUGXOFXPYLUUGXOXMUDZFUUGXNXMXKUUFUMZU
      NUUGXMFUOZUUMFQUUGHMUOZFMVBZUUOHYJLUPZXJUUQAUUFFUQURMFHUSUTFXMVAVCVDZUUGX
      OFUUSVEZVFUUGXRYNXTYPEUUGXOFRUUSVGUUGXSYOUUGXSXMUFYOUUGXNXMUUNVHHFVIVJVEV
      KUUGYBUUHYGUUKUUGXPYLXNXMUUNUUTVLZUUGYFUUJYDRYTRUUGYEUUIDUUGYBUUHYDYTUVAU
      UGYCYSUUGXPYLGUUTVMVNZVOVPUVBUUGRULVQVOVQUUGYMUULUUDYQUUGYMVRZUAZUUHYRUUK
      UUCUVDYLFNUUHYRQUVDYLYLVSZFUVDYLMNZYLUVENXJUVFAUUFUVCFVTWAYLMWBVCUUGYMFUV
      EQZUUGFWDZYMUVGWEXJUVHAUUFFWCURFWFVCWGWHYLFHWIVCZUVDUUJUUBYTRUVDUUIUUADUV
      DUUHYRYTUVIWOVPWJVOWKVDXKHWLZXJXMPNUUPUVJUURMHWMWNZAXJUMHFMWPUTXKYQPNZUUD
      PNUUEPNAEPNZYPPNZUVLXJAEDNUVMJEDWQVCXJYOPNZUVNUVJXJUVOUVKHFMWRWSYOPWTVCYN
      EYPPXAXBYRUUCYLHXCUUBYTRYSXDXFXGXHYMYQUUDPXAXEXIVD $.

    $( Lemma for ~ ttukey .  (Contributed by Mario Carneiro, 15-May-2015.) $)
    ttukeylem4 $p |- ( ph -> ( G ` (/) ) = B ) $=
      ( c0 cfv cuni wceq cima cif cun wcel iftruei con0 0elon ttukeylem3 eqcomi
      csn mpan2 uni0 eqid eqtri syl6eq ) ALGMZLLNZOZLLOZEGLPNZQZULGMZUQULFMUEZR
      DSURLQRZQZEALUASUKUTOUBABCDELFGHIJKUCUFUTUPEUMUPUSULLUGUDTUNEUOLUHTUIUJ
      $.

    $( Lemma for ~ ttukey .  The ` G ` function forms a (transfinitely long)
       chain of inclusions.  (Contributed by Mario Carneiro, 15-May-2015.) $)
    ttukeylem5 $p |- ( ( ph /\ ( C e. On /\ D e. On /\ C C_ D ) ) ->
      ( G ` C ) C_ ( G ` D ) ) $=
      ( va con0 wcel wss cfv wi wceq vy wa cv sseq2 fveq2 sseq2d imbi12d imbi2d
      wral r19.21v wo simpllr simplr onsseleq syl2anc cuni cima cif csn cun wfn
      wb c0 cvv cdm crn cmpt tfr1 a1i syl simprr fnfvima syl3anc elssuni wn n0i
      onss iffalse 3syl adantr csuc vuniex sucid word eloni orduniorsuc orcanai
      sseqtr4d syl5eleqr simplrl rspcv syl3c syl6ss ifbothda simplll ttukeylem3
      ssun1 expr eqimss jaod sylbid ex expcom a2d syl5bi tfis3 expdcom 3imp2 )
      AFOPZGOPZFGQZFIRZGIRZQZXJAXIXKXNSZAXIUBZFUAUCZQZXLXQIRZQZSZSZXPFNUCZQZXLY
      CIRZQZSZSZXPXOSUANGXQYCTZYAYGXPYIXRYDXTYFXQYCFUDYIXSYEXLXQYCIUEUFUGUHXQGT
      ZYAXOXPYJXRXKXTXNXQGFUDYJXSXMXLXQGIUEUFUGUHYHNXQUIXPYGNXQUIZSXQOPZYBXPYGN
      XQUJYLXPYKYAXPYLYKYASXPYLUBZYKYAYMYKUBZXRFXQPZFXQTZUKZXTYNXIYLXRYQVBAXIYL
      YKULXPYLYKUMFXQUNUOYNYOXTYPYMYKYOXTYMYKYOUBZUBZXLXQXQUPZTZXQVCTZEIXQUQZUP
      ZURZYTIRZUUFYTHRUSZUTDPUUGVCURZUTZURZXSUUAXLUUEQZXLUUIQXLUUJQYSUUEUUIUUEU
      UJXLUDUUIUUJXLUDYSUUKUUAYSXLUUDUUEYSXLUUCPZXLUUDQYSIOVAZXQOQZYOUULUUMYSIC
      VDCUCZVEZUUPUPZTUUPVCTEUUOVFUPURUUQUUORZUURUUQHRUSZUTDPUUSVCURUTURVGMVHVI
      YSYLUUNXPYLYRUMZXQVQVJYMYKYOVKZOXQIFVLVMXLUUCVNVJYSYOUUBVOUUEUUDTUVAXQFVP
      UUBEUUDVRVSWHVTYSUUAVOZUBZXLUUFUUIUVCYTXQPYKFYTQZXLUUFQZUVCYTYTWAZXQYTUAW
      BWCYSUUAXQUVFTZYSYLXQWDUUAUVGUKUUTXQWEXQWFVSWGWIYMYKYOUVBWJUVCYOUVDYSYOUV
      BUVAVTFXQVNVJYGUVDUVESNYTXQYCYTTZYDUVDYFUVEYCYTFUDUVHYEUUFXLYCYTIUEUFUGWK
      WLUUFUUHWQWMWNYSAYLXSUUJTAXIYLYRWOUUTABCDEXQHIJKLMWPUOWHWRYPXTSYNYPXLXSTX
      TFXQIUEXLXSWSVJVIWTXAXBXCXDXEXFXGXH $.

    $( Lemma for ~ ttukey .  (Contributed by Mario Carneiro, 15-May-2015.) $)
    ttukeylem6 $p |- ( ( ph /\ C e. suc ( card ` ( U. A \ B ) ) ) ->
      ( G ` C ) e. A ) $=
      ( vu con0 wcel cfv wa wi wceq c0 vy va vw vf cuni cdif ccrd cardon onsuci
      vv csuc onelon sylan cv eleq1 fveq2 eleq1d imbi12d imbi2d wral r19.21v wb
      a1i word wss onordi ordelss sselda biimt syl ralbidva cima cif csn simprl
      cun onssi sseldi ttukeylem3 syldan ad3antrrr wn cpw cfn cin wf wrex inss2
      wex simpr ciun inss1 elpwid wfn wfun cvv cdm crn cmpt tfr1 fnfun funiunfv
      mp2b syl6sseqr dfss3 eliun ralbii bitri eleq2d ac6sfi syl2anc wne simp-4l
      sylib simprrl adantr frn onss sstrd wfo adantrr ffn dffn4 fofi dm0rn0 fdm
      eqeq1d syl5bbr necon3bid sseldd simplrr ad2antrr sylc ad2antrl ttukeylem2
      rspcv expr ex ifclda uneq2 biimpar ordunifi syl3anc ffvelrn rnex ssonunii
      adantl simprr fnfvelrn elssuni ttukeylem5 syl13anc sseld anassrs ralimdva
      vex expimpd impr sylibr syl12anc mpanr2 mpdan pm2.61ne exlimdv ttukeylem1
      0ss mpd ssrdv mpbird un0 syl5eqr vuniex sucid wo orduniorsuc 3syl orcanai
      eloni syl5eleqr ifbothda eqeltrd sylbird com23 a2i sylbi tfis3 impd mpcom
      ) FNOZAFDUEEUFZUGPZUKZOZQFHPZDOZAUWLNOZUWMUWIUWPAUWKUWJUHUIZVCUWLFULUMUWI
      AUWMUWOAUAUNZUWLOZUWRHPZDOZRZRZAUBUNZUWLOZUXDHPZDOZRZRZAUWMUWORZRUAUBFUWR
      UXDSZUXBUXHAUXKUWSUXEUXAUXGUWRUXDUWLUOUXKUWTUXFDUWRUXDHUPUQURUSUWRFSZUXBU
      XJAUXLUWSUWMUXAUWOUWRFUWLUOUXLUWTUWNDUWRFHUPUQURUSUXIUBUWRUTZUXCRUWRNOZUX
      MAUXHUBUWRUTZRUXCAUXHUBUWRVAAUXOUXBAUWSUXOUXAAUWSUXOUXARAUWSQZUXOUXGUBUWR
      UTZUXAUXPUXGUXHUBUWRUXPUXDUWROQUXEUXGUXHVBUXPUWRUWLUXDAUWLVDZUWSUWRUWLVEU
      XRAUWLUWQVFVCUWLUWRVGUMVHUXEUXGVIVJVKAUWSUXQUXAAUWSUXQQZQZUWTUWRUWRUEZSZU
      WRTSZEHUWRVLUEZVMZUYAHPZUYFUYAGPVNZVPZDOZUYGTVMZVPZVMZDAUXSUXNUWTUYLSUXTU
      WLNUWRUWLUWQVQAUWSUXQVOVRZABCDEUWRGHIJKLVSVTUXTUYBUYEUYKDUXTUYBQZUYCEUYDD
      AEDOZUXSUYBUYCJWAUYNUYDDOZUYCWBUYNUYPUYDWCZWDWEZDVEZUYNUCUYRDUYNUCUNZUYRO
      ZUYTDOZUYNVUAQZUYTUWRUDUNZWFZMUNZVUFVUDPZHPZOZMUYTUTZQZUDWIZVUBVUCUYTWDOZ
      VUFUJUNZHPZOZUJUWRWGZMUYTUTZVULVUCUYRWDUYTUYQWDWHUYNVUAWJZVRZVUCUYTUJUWRV
      UOWKZVEZVURVUCUYTUYDVVAVUCUYTUYDVUCUYRUYQUYTUYQWDWLVUSVRWMHNWNHWOVVAUYDSH
      CWPCUNZWQZVVDUEZSVVDTSEVVCWRUEVMVVEVVCPZVVFVVEGPVNZVPDOVVGTVMVPVMWSLWTNHX
      AUJUWRHXBXCXDVVBVUFVVAOZMUYTUTVURMUYTVVAXEVVHVUQMUYTUJVUFUWRVUOXFXGXHXNVU
      PVUIMUJUYTUWRUDVUNVUGSVUOVUHVUFVUNVUGHUPXIXJXKVUCVUKVUBUDUYNVUAVUKVUBUYNV
      UAVUKQZQZVUBTDOZUYTTUYTTDUOVVJUYTTXLZQZAVUDWRZUEZHPZDOZUYTVVPVEZVUBAUXSUY
      BVVIVVLXMVVMVVOUWROUXQVVQVVMVVNUWRVVOVVMVUEVVNUWRVEZVVJVUEVVLUYNVUAVUEVUJ
      XOZXPZUYTUWRVUDXQZVJZVVMVVNNVEZVVNWDOZVVNTXLZVVOVVNOVVMVVNUWRNVWCVVMUXNUW
      RNVEZUXTUXNUYBVVIVVLUYMWAUWRXRZVJXSVVMVUMUYTVVNVUDXTZVWEVVJVUMVVLUYNVUAVU
      MVUKVUTYAXPVVMVUDUYTWNZVWIVVMVUEVWJVWAUYTUWRVUDYBZVJUYTVUDYCXNUYTVVNVUDYD
      XKVVJVWFVVLVVJVVNTUYTTVVNTSVUDWQZTSVVJUYTTSVUDYEVVJVWLUYTTVVJVUEVWLUYTSVV
      TUYTUWRVUDYFVJYGYHYIUUAVVNUUBUUCYJUYNUXQVVIVVLAUWSUXQUYBYKYLUXGVVQUBVVOUW
      RUXDVVOSUXFVVPDUXDVVOHUPUQYPYMVVMVUFVVPOZMUYTUTZVVRVVJVWNVVLUYNVUAVUKVWNV
      UCVUEVUJVWNVUCVUEQVUIVWMMUYTVUCVUEVUFUYTOZVUIVWMRVUCVUEVWOQZQZVUHVVPVUFVW
      QAVUGNOVVONOZVUGVVOVEZVUHVVPVEAUXSUYBVUAVWPXMVWQUWRNVUGVWQUXNVWGUXTUXNUYB
      VUAVWPUYMWAVWHVJZVWPVUGUWROVUCUYTUWRVUFVUDUUDUUGYJVWQVWDVWRVWQVVNUWRNVUEV
      VSVUCVWOVWBYNVWTXSVVNVUDUDUUPUUEUUFVJVWQVUGVVNOZVWSVWQVWJVWOVXAVUEVWJVUCV
      WOVWKYNVUCVUEVWOUUHUYTVUFVUDUUIXKVUGVVNUUJVJABCDEVUGVVOGHIJKLUUKUULUUMUUN
      UUOUUQUURXPMUYTVVPXEUUSABDEVVPUYTGIJKYOUUTAVVKUXSUYBVVIAUYOVVKJAUYOTEVEVV
      KEUVFABDEETGIJKYOUVAUVBWAUVCYQUVDUVGYRUVHAUYPUYSVBUXSUYBABDEUYDGIJKUVEYLU
      VIXPYSUYIUYIUYFDOZUYKDOUXTUYBWBZQZUYGTUYGUYJSUYHUYKDUYGUYJUYFYTUQTUYJSZUY
      FUYKDVXEUYFUYFTVPUYKUYFUVJTUYJUYFYTUVKUQVXDUYIWJVXDVXBUYIWBVXDUYAUWROUXQV
      XBVXDUYAUYAUKZUWRUYAUAUVLUVMUXTUYBUWRVXFSZUXTUXNUWRVDUYBVXGUVNUYMUWRUVRUW
      RUVOUVPUVQUVSAUWSUXQVXCYKUXGVXBUBUYAUWRUXDUYASUXFUYFDUXDUYAHUPUQYPYMXPUVT
      YSUWAYQUWBYRUWCUWDUWEVCUWFUWGUWH $.

    $( Lemma for ~ ttukey .  (Contributed by Mario Carneiro, 15-May-2015.) $)
    ttukeylem7 $p |- ( ph -> E. x e. A ( B C_ x /\ A. y e. A -. x C. y ) ) $=
      ( cfv wcel wss wn wa c0 con0 wceq cuni cdif ccrd wpss wral wrex csuc fvex
      va cv sucid ttukeylem6 mpan2 ttukeylem4 w3a cardon 0ss 3pm3.2i ttukeylem5
      0elon eqsstr3d wi simprr cun ssun1 undif1 sseqtr4i ccnv simpl wf1o f1ocnv
      wf f1of 3syl adantr eldifi ad2antll simprll elunii eldifn eldifd ffvelrnd
      syl2anc onelon sylancr suceloni syl a1i word onordi ordsucss syl13anc csn
      mpsyl ssun2 eloni ordunisuc fveq2d f1ocnvfv2 eqtr2d velsn ordelss eqsstrd
      cif sylibr simprlr sstrd eqeltrrd snssd unssd ttukeylem2 syl12anc iftrued
      eleqtrrd sseldi cima syldan sucidg ordirr nelne1 neeqtrrd neneqd iffalsed
      ttukeylem3 wne eqtrd sseldd expr ssrdv syl5ss eqssd npss ralrimiva psseq1
      sseq2 notbid ralbidv anbi12d rspcev ) AEUAZFUBZUCMZHMZENZFUUCOZUUCCUJZUDZ
      PZCEUEZFBUJZOZUUJUUFUDZPZCEUEZQZBEUFAUUBUUBUGNUUDUUBUUAUCUHUKABDEFUUBGHIJ
      KLULUMAFRHMZUUCABDEFGHIJKLUNARSNZUUBSNZRUUBOZUOUUPUUCOUUQUURUUSUTUUAUPZUU
      BUQURABDEFRUUBGHIJKLUSUMVAZAUUHCEAUUFENZQUUCUUFOZUUCUUFTZVBUUHAUVBUVCUVDA
      UVBUVCQZQZUUCUUFAUVBUVCVCUVFUUFUUFFUBZFVDZUUCUUFUUFFVDUVHUUFFVEUUFFVFVGUV
      FUVGFUUCUVFUIUVGUUCAUVEUIUJZUVGNZUVIUUCNAUVEUVJQZQZUVIGVHZMZUGZHMZUUCUVIU
      VLAUVOSNZUURUVOUUBOZUVPUUCOAUVKVIZUVLUVNSNZUVQUVLUURUVNUUBNZUVTUUTUVLUUAU
      UBUVIUVMAUUAUUBUVMVLZUVKAUUBUUAGVJZUUAUUBUVMVJUWBIUUBUUAGVKUUAUUBUVMVMVNV
      OUVLUVIYTFUVLUVIUUFNZUVBUVIYTNUVJUWDAUVEUVIUUFFVPVQZAUVBUVCUVJVRZUVIUUFEV
      SWCUVJUVIFNPAUVEUVIUUFFVTVQWAZWBZUUBUVNWDWEZUVNWFWGZUURUVLUUTWHZUUBWIZUVL
      UWAUVRUUBUUTWJZUWHUVNUUBWKWNABDEFUVOUUBGHIJKLUSWLUVLUVIUVOUAZHMZUWOUWNGMZ
      WMZVDZENZUWQRXDZVDZUVPUVLUWTUXAUVIUWTUWOWOUVLUVIUWQUWTUVLUVIUWPTUVIUWQNUV
      LUWPUVNGMZUVIUVLUWNUVNGUVLUVTUVNWIZUWNUVNTUWIUVNWPZUVNWQVNZWRUVLUWCUVIUUA
      NUXBUVITAUWCUVKIVOUWGUUBUUAUVIGWSWCWTZUIUWPXAXEUVLUWSUWQRUVLAUVBUWRUUFOUW
      SUVSUWFUVLUWOUWQUUFUVLUWOUUCUUFUVLUWOUVNHMZUUCUVLUWNUVNHUXEWRUVLAUVTUURUV
      NUUBOZUXGUUCOUVSUWIUWKUVLUWLUWAUXHUWMUWHUUBUVNXBWEABDEFUVNUUBGHIJKLUSWLXC
      AUVBUVCUVJXFXGUVLUWPUUFUVLUVIUWPUUFUXFUWEXHXIXJABEFUUFUWRGIJKXKXLXMXNXOUV
      LUVPUVOUWNTZUVORTFHUVOXPUAXDZUXAXDZUXAAUVKUVQUVPUXKTUWJABDEFUVOGHIJKLYDXQ
      UVLUXIUXJUXAUVLUVOUWNUVLUVOUVNUWNUVLUVNUVONZUVNUVNNPZUVOUVNYEUVLUWAUXLUWH
      UVNUUBXRWGUVLUVTUXCUXMUWIUXDUVNXSVNUVNUVOUVNXTWCUXEYAYBYCYFXNYGYHYIAUUEUV
      EUVAVOXJYJYKYHUUCUUFYLXEYMUUOUUEUUIQBUUCEUUJUUCTZUUKUUEUUNUUIUUJUUCFYOUXN
      UUMUUHCEUXNUULUUGUUJUUCUUFYNYPYQYRYSXL $.
  $}

  ${
    $d f w x y z A $.  $d f w x y z B $.
    $( The Teichm&uuml;ller-Tukey Lemma ~ ttukey with a slightly stronger
       conclusion: we can set up the maximal element of ` A ` so that it also
       contains some given ` B e. A ` as a subset.  (Contributed by Mario
       Carneiro, 15-May-2015.) $)
    ttukey2g $p |- ( ( U. A e. dom card /\ B e. A /\
      A. x ( x e. A <-> ( ~P x i^i Fin ) C_ A ) )
        -> E. x e. A ( B C_ x /\ A. y e. A -. x C. y ) ) $=
      ( vf vz vw cuni ccrd cdm wcel cv wss wa cfv cvv wceq c0 cif cun cpw wb wn
      cfn cin wal wpss wral wrex cdif difss ssnum mpan2 wf1o wex cen wbr isnum3
      wi bren bitri w3a crn csn cmpt crecs simp1 simp2 simp3 dmeq unieqd eqeq1d
      eqeq12d rneq ifbieq2d id fveq12d fveq2d uneq12d eleq1d ifbieq1d ifbieq12d
      sneqd cbvmptv recseq ax-mp ttukeylem7 3expib exlimiv sylbi syl 3impib ) C
      HZIJZKZDCKZALZCKWQUAUDUECMUBAUFZDWQMWQBLUGUCBCUHNACUIZWOWMDUJZWNKZWPWRNWS
      USZWOWTWMMXAWMDUKWMWTULUMXAWTIOZWTELZUNZEUOZXBXAXCWTUPUQXFWTURXCWTEUTVAXE
      XBEXEWPWRWSXEWPWRVBABFCDXDGPGLZJZXHHZQZXHRQZDXGVCZHZSZXIXGOZXOXIXDOZVDZTZ
      CKZXQRSZTZSZVEZVFZXEWPWRVGXEWPWRVHXEWPWRVIYCFPFLZJZYFHZQZYFRQZDYEVCZHZSZY
      GYEOZYMYGXDOZVDZTZCKZYORSZTZSZVEZQYDUUAVFQGFPYBYTXGYEQZXJYHXNYAYLYSUUBXHY
      FXIYGXGYEVJZUUBXHYFUUCVKZVMUUBXKYIXMYKDUUBXHYFRUUCVLUUBXLYJXGYEVNVKVOUUBX
      OYMXTYRUUBXIYGXGYEUUBVPUUDVQZUUBXSYQXQYORUUBXRYPCUUBXOYMXQYOUUEUUBXPYNUUB
      XIYGXDUUDVRWCZVSVTUUFWAVSWBWDYCUUAWEWFWGWHWIWJWKWL $.

    $( The Teichm&uuml;ller-Tukey Lemma ~ ttukey stated with the "choice" as an
       antecedent (the hypothesis ` U. A e. dom card ` says that ` U. A ` is
       well-orderable).  (Contributed by Mario Carneiro, 15-May-2015.) $)
    ttukeyg $p |- ( ( U. A e. dom card /\ A =/= (/) /\
      A. x ( x e. A <-> ( ~P x i^i Fin ) C_ A ) )
        -> E. x e. A A. y e. A -. x C. y ) $=
      ( vz cuni ccrd cdm wcel c0 wne cv cpw cfn cin wss wb wal wpss wn wrex wex
      wral wi n0 w3a wa ttukey2g simpr reximi syl 3exp exlimdv syl5bi 3imp ) CE
      FGHZCIJZAKZCHUQLMNCOPAQZUQBKRSBCUBZACTZUPDKZCHZDUAUOURUTUCZDCUDUOVBVCDUOV
      BURUTUOVBURUEVAUQOZUSUFZACTUTABCVAUGVEUSACVDUSUHUIUJUKULUMUN $.
  $}

  ${
    $d x y A $.
    ttukey.1 $e |- A e. _V $.
    $( The Teichm&uuml;ller-Tukey Lemma, an Axiom of Choice equivalent.  If
       ` A ` is a nonempty collection of finite character, then ` A ` has a
       maximal element with respect to inclusion.  Here "finite character"
       means that ` x e. A ` iff every finite subset of ` x ` is in ` A ` .
       (Contributed by Mario Carneiro, 15-May-2015.) $)
    ttukey $p |- ( ( A =/= (/) /\ A. x ( x e. A <-> ( ~P x i^i Fin ) C_ A ) )
       -> E. x e. A A. y e. A -. x C. y ) $=
      ( cuni ccrd cdm wcel c0 wne cv cpw cfn cin wss wb wal wpss wn cvv ttukeyg
      wral wrex uniex numth3 ax-mp mp3an1 ) CEZFGHZCIJAKZCHUJLMNCOPAQUJBKRSBCUB
      ACUCUHTHUICDUDUHTUEUFABCUAUG $.
  $}

  ${
    $d F w y z $.  $d K w y z $.  $d g w y $.  $d s w y $.  $d w x y z $.
    axdclem.1 $e |- F = ( rec ( ( y e. _V |->
                            ( g ` { z | y x z } ) ) , s ) |` _om ) $.
    $( Lemma for ~ axdc .  (Contributed by Mario Carneiro, 25-Jan-2013.) $)
    axdclem $p |- ( ( A. y e. ~P dom x ( y =/= (/) -> ( g ` y ) e. y )
      /\ ran x C_ dom x /\ E. z ( F ` K ) x z ) ->
      ( K e. _om -> ( F ` K ) x ( F ` suc K ) ) ) $=
      ( vw cv c0 wne cfv wcel wss wbr cab wceq fvex nfcv wi cdm cpw crn wex w3a
      wral csuc neeq1 abn0 syl6bb eleq2 breq2 cbvabv eleq2i syl6bbr elab breq2d
      com fveq2 bitrd imbi12d rspcv vex brelrn abssi sstr mpan dmex elpw2 syl11
      sylibr 3imp cvv breq1 abbidv fveq2d frsucmpt mpan2 syl5ibrcom ) BJZKLZWAD
      JZMZWANZUAZBAJZUBZUCZUGZWGUDZWHOZFEMZCJZWGPZCUEZUFWMFUHEMZWGPFUSNZWMWOCQZ
      WCMZWGPZWJWLWPXAWSWINZWJWPXAUAZWLWFXCBWSWIWAWSRZWBWPWEXAXDWBWSKLWPWAWSKUI
      WOCUJUKXDWEWMWDWGPZXAXDWEWDWMIJZWGPZIQZNZXEXDWEWDWSNXIWAWSWDULXHWSWDXGWOI
      CXFWNWMWGUMUNUOUPXGXEIWDWAWCSXFWDWMWGUMUQUKXDWDWTWMWGWAWSWCUTURVAVBVCWLWS
      WHOZXBWSWKOWLXJWOCWKWMWNWGFESCVDVEVFWSWKWHVGVHWSWHWGAVDVIVJVLVKVMWRWQWTWM
      WGWRWTVNNWQWTRWSWCSBGJZFWAWNWGPZCQZWCMWTEVNBXKTBFTBWTTHWAWMRZXMWSWCXNXLWO
      CWAWMWNWGVOVPVQVRVSURVT $.
  $}

  ${
    $d F f n $.  $d F k n y z $.  $d f g n x $.  $d g k n s y $.
    $d g k n x y z $.
    axdclem2.1 $e |- F = ( rec ( ( y e. _V |->
                             ( g ` { z | y x z } ) ) , s ) |` _om ) $.
    $( Lemma for ~ axdc .  Using the full Axiom of Choice, we can construct a
       choice function ` g ` on ` ~P dom x ` .  From this, we can build a
       sequence ` F ` starting at any value ` s e. dom x ` by repeatedly
       applying ` g ` to the set ` ( F `` x ) ` (where ` x ` is the value from
       the previous iteration).  (Contributed by Mario Carneiro,
       25-Jan-2013.) $)
    axdclem2 $p |- ( E. z s x z -> ( ran x C_ dom x ->
       E. f A. n e. _om ( f ` n ) x ( f ` suc n ) ) ) $=
      ( cv c0 cfv wcel wi wral wbr wex com cvv wceq vk wne cdm cpw crn wss csuc
      w3a wf wfn cab cmpt crdg cres frfnom fneq1i mpbir a1i fveq2 suceq breq12d
      fveq2d fveq1i vex ax-mp eqtri breq1i biimpri eximi peano1 axdclem syl3an3
      fr0g mpi 3com23 fvex brelrn ssel syl5 syl6ib ad2antll peano2 3expia com3r
      wa eldm syld 3adantr2 ex finds2 com12 breldm syl6 ralrimiv ffnfv sylanbrc
      omex dmex fex2 syl3anc fveq1 ralbidv spcegv sylc 3exp pwex ac4c exlimiiv
      imp ) BJZKUBXJEJZLXJMNBAJZUCZUDZOZHJZCJZXLPZCQZXLUEZXMUFZFJZDJZLZYBUGZYCL
      ZXLPZFROZDQZNNEXOXSYAYIXOXSYAUHZGSMZYBGLZYEGLZXLPZFROZYIYJRXMGUIZRSMZXMSM
      ZYKYJGRUJZYLXMMZFROYPYSYJYSBSXJXQXLPCUKXKLULZXPUMRUNZRUJXPUUAUORGUUBIUPUQ
      URYJYTFRYJYBRMZYNYTUUCYJYNYNKGLZKUGZGLZXLPZUAJZGLZUUHUGZGLZXLPZUUKUUJUGZG
      LZXLPZYJFUAYBKTZYLUUDYMUUFXLYBKGUSUUPYEUUEGYBKUTVBVAYBUUHTZYLUUIYMUUKXLYB
      UUHGUSUUQYEUUJGYBUUHUTVBVAYBUUJTZYLUUKYMUUNXLYBUUJGUSUURYEUUMGYBUUJUTVBVA
      XOYAXSUUGXSXOYAUUDXQXLPZCQZUUGXRUUSCUUSXRUUDXPXQXLUUDKUUBLZXPKGUUBIVCXPSM
      UVAXPTHVDXPSUUAVMVEVFVGVHVIXOYAUUTUHKRMUUGVJABCEGKHIVKVNVLVOUUHRMZYJUULUU
      ONZUVBXOYAUVCXSUVBXOYAWEZWEUULUUKXQXLPCQZUUOYAUULUVENUVBXOYAUULUUKXMMZUVE
      UULUUKXTMYAUVFUUIUUKXLUUHGVPUUJGVPZVQXTXMUUKVRVSCUUKXLUVGWFVTWAUVBUVDUVEU
      UONUVDUVEUVBUUOXOYAUVEUVBUUONUVBUUJRMXOYAUVEUHUUOUUHWBABCEGUUJHIVKVSWCWDX
      IWGWHWIWJWKZYLYMXLYBGVPYEGVPWLWMWNFRXMGWOWPYQYJWQURYRYJXLAVDWRZURRXMGSSWS
      WTYJYNFRUVHWNYHYODGSYCGTZYGYNFRUVJYDYLYFYMXLYBYCGXAYEYCGXAVAXBXCXDXEBXNEX
      MUVIXFXGXH $.
  $}

  ${
    $d f n x y z v g u w $.
    $( This theorem derives ~ ax-dc using ~ ax-ac and ~ ax-inf .  Thus, _AC_
       implies _DC_, but not vice-versa (so that ZFC is strictly stronger than
       ZF+DC).  (New usage is discouraged.)  (Contributed by Mario Carneiro,
       25-Jan-2013.) $)
    axdc $p |- ( ( E. y E. z y x z /\ ran x C_ dom x ) ->
       E. f A. n e. _om ( f ` n ) x ( f ` suc n ) ) $=
      ( vv vg vu vw cv wbr wex cfv com cvv cab cmpt crdg cres wceq crn cdm csuc
      wss wral wi breq2 cbvabv breq1 abbidv syl5eq fveq2d cbvmptv rdgeq1 reseq1
      weq mp2b axdclem2 exlimiv imp ) BJZCJZAJZKCLZBLVCUAVCUBUDZEJZDJZMVFUCVGMV
      CKENUEDLZVDVEVHUFBAFCDGEHOHJZIJZVCKZIPZGJZMZQZVARZNSZBVOFOFJZVBVCKZCPZVMM
      ZQZTVPWBVARZTVQWCNSTHFOVNWAHFUPZVLVTVMWDVLVIVBVCKZCPVTVKWEICVJVBVIVCUGUHW
      DWEVSCVIVRVBVCUIUJUKULUMVAVOWBUNVPWCNUOUQURUSUT $.
  $}

  ${
    fodom.1 $e |- A e. _V $.
    $( An onto function implies dominance of domain over range.  Lemma 10.20 of
       [Kunen] p. 30.  This theorem uses the Axiom of Choice ~ ac7g .  AC is
       not needed for finite sets - see ~ fodomfi .  See also ~ fodomnum .
       (Contributed by NM, 23-Jul-2004.) $)
    fodom $p |- ( F : A -onto-> B -> B ~<_ A ) $=
      ( cvv wcel ccrd cdm wfo cdom wbr wi numth3 fodomnum mp2b ) AEFAGHFABCIBAJ
      KLDAEMABCNO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( An onto function implies dominance of domain over range.  (Contributed
       by NM, 23-Jul-2004.) $)
    fodomg $p |- ( A e. C -> ( F : A -onto-> B -> B ~<_ A ) ) $=
      ( vx cv wfo cdom wbr wi wceq foeq2 breq2 imbi12d vex fodom vtoclg ) EFZBD
      GZBRHIZJABDGZBAHIZJEACRAKSUATUBRABDLRABHMNRBDEOPQ $.
  $}

  ${
    $d x A $.
    $( The domain of a countable set is countable.  (Contributed by Thierry
       Arnoux, 29-Dec-2016.) $)
    dmct $p |- ( A ~<_ _om -> dom A ~<_ _om ) $=
      ( vx com cdom wbr cdm cvv cres dmresv wcel cv c1st cfv cmpt wfo wss resss
      ctex mpisyl domtr ssexg sylancr crn fvex eqid fnmpti dffn4 mpbi wrel wceq
      wfn relres reldm foeq3 mp2b mpbir fodomg ssdomg mpancom syl2anc syl5eqbrr
      wb ) ACDEZAFAGHZFZCDAIVCVEVDDEZVDCDEZVECDEVCVDGJZVDVEBVDBKZLMZNZOZVFVCVDA
      PZAGJZVHAGQZARZVDAGUAUBVLVDVKUCZVKOZVKVDUKVRBVDVJVKVILUDVKUEUFVDVKUGUHVDU
      IVEVQUJVLVRVBAGULBVDUMVEVQVDVKUNUOUPVDVEGVKUQSVDADEZVCVGVCVNVMVSVPVOVDAGU
      RSVDACTUSVEVDCTUTVA $.
  $}

  $( The range of a countable set is countable.  (Contributed by Thierry
     Arnoux, 29-Dec-2016.) $)
  rnct $p |- ( A ~<_ _om -> ran A ~<_ _om ) $=
    ( com cdom wbr ccnv cdm crn cnvct dmct df-rn breq1i biimpri 3syl ) ABCDAEZB
    CDNFZBCDZAGZBCDZAHNIRPQOBCAJKLM $.

  ${
    $d f A $.  $d f B $.
    $( Equivalence of an onto mapping and dominance for a nonempty set.
       Proposition 10.35 of [TakeutiZaring] p. 93.  (Contributed by NM,
       29-Jul-2004.) $)
    fodomb $p |- ( ( A =/= (/) /\ E. f f : A -onto-> B ) <->
                 ( (/) ~< B /\ B ~<_ A ) ) $=
      ( c0 wne cv wfo wa csdm wbr cdom wceq syl eqeq1d wb cvv wcel mpcom 0sdomg
      adantl wex cdm wf fof fdm crn dm0rn0 forn syl5bb bitr3d necon3bid biimpac
      vex dmex syl6eqelr fornex mpbird ex fodomg a1i jcad exlimdv imp sdomdomtr
      wi reldom brrelex2i mpbid fodomr jca impbii ) ADEZABCFZGZCUAZHDBIJZBAKJZH
      ZVLVOVRVLVNVRCVLVNVPVQVLVNVPVLVNHVPBDEZVNVLVSVNADBDVNVMUBZDLZADLBDLZVNVTA
      DVNABVMUCVTALABVMUDABVMUEMZNWAVMUFZDLVNWBVMUGVNWDBDABVMUHNUIUJUKULVNVPVSO
      ZVLVNBPQZWEAPQZVNWFVNAVTPWCVMCUMUNUOZABPVMUPRBPSMTUQURVNVQVEVLWGVNVQWHABP
      VMUSRUTVAVBVCVRVLVOVRDAIJZVLDBAVDVRWGWIVLOVQWGVPBAKVFVGTAPSMVHABCVIVJVK
      $.
  $}

  $( When assuming AC, weak and usual dominance coincide.  It is not known if
     this is an AC equivalent.  (Contributed by Stefan O'Rear, 11-Feb-2015.)
     (Revised by Mario Carneiro, 5-May-2015.) $)
  wdomac $p |- ( X ~<_* Y <-> X ~<_ Y ) $=
    ( cwdom wbr cvv wcel cdom relwdom brrelex2i reldom ccrd cdm numth3 wdomnumr
    wb syl pm5.21nii ) ABCDZBEFZABGDZABCHIABGJISBKLFRTOBEMABNPQ $.

  ${
    $d f x y A $.  $d f x y B $.
    brdom3.2 $e |- B e. _V $.
    $( Equivalence to a dominance relation.  (Contributed by NM,
       27-Mar-2007.) $)
    brdom3 $p |- ( A ~<_ B <-> E. f ( A. x E* y x f y /\
                 A. x e. A E. y e. B y f x ) ) $=
      ( cdom wbr cv wmo wal wrex wa wex c0 wceq cvv syl wrel wss wral wfo wo wn
      wi csdm wcel wb reldom brrelexi 0sdomg df-ne syl6bb biimpar fodomr ancoms
      wne syldan pm5.6 mpbi br0 nex exmo mtpor ax-gen 0ex mobidv albidv rexbidv
      rzal breq ralbidv anbi12d spcev sylancr fofun dffun6 simprbi wf dffo4 jca
      wfun eximi cxp cin cdm wfn crn inss1 ssbri moimi alimi relxp relin2 ax-mp
      jaoi mpbiran sylibr funfn sylib rninxp biimpri df-fo vex inex1 dmex fodom
      anim12i inss2 dmss dmxpss sstri ssdomg domtr mpan2 3syl exlimiv impbii
      mp2 ) CDGHZAIZBIZEIZHZBJZAKZYBYAYCHZBDLZACUAZMZENZXTCOPZDCYCUBZENZUCZYKXT
      YLUDZMYNUEXTYOUEXTYPOCUFHZYNXTYQYPXTYQCOUQZYPXTCQUGYQYRUHCDGUIUJCQUKRCOUL
      UMUNYQXTYNDCEUOUPURXTYLYNUSUTYLYKYNYLYAYBOHZBJZAKZYBYAOHZBDLZACUAZYKYTAYS
      BNYTYSBYAYBVAVBYSBVCVDVEUUCACVJYJUUAUUDMEOVFYCOPZYFUUAYIUUDUUEYEYTAUUEYDY
      SBYAYBYCOVKVGVHUUEYHUUCACUUEYGUUBBDYBYAYCOVKVIVLVMVNVOYMYJEYMYFYIYMYCWBZY
      FDCYCVPUUFYCSYFABYCVQVRRYMDCYCVSYIBADCYCVTVRWAWCWPRYJXTEYJYCDCWDZWEZWFZCU
      UHUBZCUUIGHZXTYJUUHUUIWGZUUHWHCPZMUUJYFUULYIUUMYFUUHWBZUULYFYAYBUUHHZBJZA
      KZUUNYEUUPAUUOYDBUUHYCYAYBYCUUGWIWJWKWLUUNUUHSZUUQUUGSUURDCWMYCUUGWNWOABU
      UHVQWQWRUUHWSWTUUMYIBADCYCXAXBXHUUICUUHXCWRUUICUUHUUHYCUUGEXDXEXFXGUUKUUI
      DGHZXTDQUGUUIDTUUSFUUIUUGWFZDUUHUUGTUUIUUTTYCUUGXIUUHUUGXJWODCXKXLUUIDQXM
      XSCUUIDXNXOXPXQXR $.

    $( An equivalence to a dominance relation.  (Contributed by NM,
       29-Mar-2007.) $)
    brdom5 $p |- ( A ~<_ B <->
  E. f ( A. x e. B E* y x f y /\ A. x e. A E. y e. B y f x ) ) $=
      ( cdom wbr cv wmo wral wa wex cdm wrel wcel wss ax-mp sylibr cvv wrex wal
      brdom3 alral anim1i eximi sylbi cxp cin wfo wfn crn wceq wfun dmss dmxpss
      inss2 sstri sseli inss1 ssbri moimi relxp relin2 jctil dffun7 funfn sylib
      imim12i ralimi2 rninxp biimpri anim12i df-fo vex inex1 fodom ssdomg domtr
      dmex mp2 mpan2 3syl exlimiv impbii ) CDGHZAIZBIZEIZHZBJZADKZWHWGWIHBDUAAC
      KZLZEMZWFWKAUBZWMLZEMWOABCDEFUCWQWNEWPWLWMWKADUDUEUFUGWNWFEWNWIDCUHZUIZNZ
      CWSUJZCWTGHZWFWNWSWTUKZWSULCUMZLXAWLXCWMXDWLWSUNZXCWLWSOZWGWHWSHZBJZAWTKZ
      LXEWLXIXFWKXHADWTWGWTPWGDPWKXHWTDWGWTWRNZDWSWRQWTXJQWIWRUQWSWRUORDCUPURZU
      SXGWJBWSWIWGWHWIWRUTVAVBVIVJWROXFDCVCWIWRVDRVEABWSVFSWSVGVHXDWMBADCWIVKVL
      VMWTCWSVNSWTCWSWSWIWREVOVPVTVQXBWTDGHZWFDTPWTDQXLFXKWTDTVRWACWTDVSWBWCWDW
      E $.

    $( An equivalence to a dominance relation.  (Contributed by NM,
       28-Mar-2007.)  (Revised by NM, 16-Jun-2017.) $)
    brdom4 $p |- ( A ~<_ B <->
           E. f ( A. x e. B E* y e. A x f y /\ A. x e. A E. y e. B y f x ) ) $=
      ( cdom wbr cv wrmo wral wa wex wmo wal syl cdm wcel wss ax-mp wrex brdom3
      mormo alimi alral anim1i eximi sylbi cxp cin wfo wfn wceq wfun wrel inss2
      crn dmss dmxpss sstri sseli rnss rnxpss inss1 ssbri anim12i moimi 3imtr4i
      df-rmo imim12i ralimi2 relxp relin2 jctil dffun9 sylibr funfn sylib df-fo
      rninxp biimpri vex inex1 dmex fodom cvv ssdomg mp2 sylancl exlimiv impbii
      domtr ) CDGHZAIZBIZEIZHZBCJZADKZWOWNWPHBDUAACKZLZEMZWMWQBNZAOZWTLZEMXBABC
      DEFUBXEXAEXDWSWTXDWRAOWSXCWRAWQBCUCUDWRADUEPUFUGUHXAWMEXACWPDCUIZUJZQZGHZ
      XHDGHZWMXAXHCXGUKZXIXAXGXHULZXGUQZCUMZLXKWSXLWTXNWSXGUNZXLWSXGUOZWNWOXGHZ
      BXMJZAXHKZLXOWSXSXPWRXRADXHWNXHRWNDRWRXRXHDWNXHXFQZDXGXFSZXHXTSWPXFUPZXGX
      FURTDCUSUTZVAWOCRZWQLZBNWOXMRZXQLZBNWRXRYGYEBYFYDXQWQXMCWOXMXFUQZCYAXMYHS
      YBXGXFVBTDCVCUTVAXGWPWNWOWPXFVDVEVFVGWQBCVIXQBXMVIVHVJVKXFUOXPDCVLWPXFVMT
      VNABXGVOVPXGVQVRXNWTBADCWPVTWAVFXHCXGVSVPXHCXGXGWPXFEWBWCWDWEPDWFRXHDSXJF
      YCXHDWFWGWHCXHDWLWIWJWK $.
  $}

  ${
    $d f g x y A v w z $.  $d f g x y B v w z $.
    brdom7disj.1 $e |- A e. _V $.
    brdom7disj.2 $e |- B e. _V $.
    brdom7disj.3 $e |- ( A i^i B ) = (/) $.
    $( An equivalence to a dominance relation for disjoint sets.  (Contributed
       by NM, 29-Mar-2007.)  (Revised by NM, 16-Jun-2017.) $)
    brdom7disj $p |- ( A ~<_ B <-> E. f ( A. x e. B E* y e. A { x , y } e. f
        /\ A. x e. A E. y e. B { y , x } e. f ) ) $=
      ( vv vz vw wbr cv wral wrex wa cpr wcel wceq cab cdom wrmo wex brdom4 cop
      vg weq wb wne cin incom eqtri disjne mp3an1 vex opthpr syl equcom anbi12i
      c0 syl6rbb df-br a1i anbi12d rexbidva rexbidv rexcom zfpair2 eqeq1 anbi1d
      2rexbidv elab bitr4i adantr breq1 breq2 ceqsrex2v rmobidva ralbiia ancoms
      bitrd eqcom ancom 3bitr4g bicomi syl5bb csn snex simpl ss2abi df-sn ssexi
      sseqtr4i ab2rexex2 eleq2 rmobidv ralbidv spcev exlimiv copab preq1 eleq1d
      syl2anbr preq2 eqid brab rmobii ralbii rexbii df-opab vuniex prid1 elunii
      cvv cuni mpan adantl prid2 eqeltrri abexex eqeltri breq impbii bitri ) CD
      UALAMZBMZUFMZLZBCUBZADNZYFYEYGLZBDOZACNZPZUFUCZYEYFQZEMZRZBCUBZADNZYFYEQZ
      YQRZBDOZACNZPZEUCZABCDUFGUDYOUUFYNUUFUFYJYPIMZJMZKMZQZSZUUHUUIUEYGRZPZJDO
      KCOZITZRZBCUBZADNZUUAUUORZBDOZACNZUUFYMUUQYIADYEDRZUUPYHBCUVBYFCRZPUUPJAU
      GZKBUGZPZUUHUUIYGLZPZKCOZJDOZYHUVBUUPUVJUHUVCUVBUVJYPUUJSZUULPZKCOZJDOZUU
      PUVBUVIUVMJDUVBUVHUVLKCUVBUUICRZPZUVFUVKUVGUULUVPUVKAJUGZBKUGZPZUVFUVPYEU
      UIUIZUVKUVSUHDCUJZUTSZUVBUVOUVTUWACDUJUTDCUKHULZDCYEUUIUMUNYEYFUUHUUIAUOZ
      BUOZJUOZKUOZUPUQUVQUVDUVRUVEAJURBKURUSVAUVGUULUHUVPUUHUUIYGVBZVCVDVEVFUVN
      UVLJDOKCOZUUPUVLJKDCVGUUNUWIIYPABVHUUGYPSZUUMUVLKJCDUWJUUKUVKUULUUGYPUUJV
      IVJVKVLVMVAVNUVGYEUUIYGLYHJKYEYFDCUUHYEUUIYGVOUUIYFYEYGVPVQWAVRVSUUTYLACY
      ECRZUUSYKBDUWKYFDRZPUUSKAUGZJBUGZPZUVGPZJDOZKCOZYKUWKUUSUWRUHUWLUUSUUAUUJ
      SZUULPZJDOZKCOZUWKUWRUUNUXBIUUABAVHUUGUUASZUUMUWTKJCDUXCUUKUWSUULUUGUUAUU
      JVIVJVKVLUWKUXAUWQKCUWKUWTUWPJDUWKUUHDRZPZUWSUWOUULUVGUXEUUJUUASZUWNUWMPZ
      UWSUWOUXEUUHYEUIZUXFUXGUHUXDUWKUXHUWBUXDUWKUXHUWCDCUUHYEUMUNVTUUHUUIYFYEU
      WFUWGUWEUWDUPUQUUAUUJWBUWMUWNWCWDUULUVGUHUXEUVGUULUWHWEVCVDVEVFWFVNUVGUUH
      YEYGLYKKJYEYFCDUUIYEUUHYGVPUUHYFYEYGVOVQWAVEVSUUEUURUVAPEUUOUUMKJICDFGUUM
      ITZUUJWGZUUJWHUXIUUKITUXJUUMUUKIUUKUULWIWJIUUJWKWMWLWNYQUUOSZYTUURUUDUVAU
      XKYSUUQADUXKYRUUPBCYQUUOYPWOWPWQUXKUUCUUTACUXKUUBUUSBDYQUUOUUAWOVFWQVDWRX
      CWSUUEYOEYTYEYFUUIUUHQZYQRZKJWTZLZBCUBZADNZYFYEUXNLZBDOZACNZYOUUDUXPYSADU
      XOYRBCUXMYEUUHQZYQRYRKJYEYFUXNUWDUWEUWMUXLUYAYQUUIYEUUHXAXBUWNUYAYPYQUUHY
      FYEXDXBUXNXEZXFXGXHUXSUUCACUXRUUBBDUXMYFUUHQZYQRUUBKJYFYEUXNUWEUWDUVEUXLU
      YCYQUUIYFUUHXAXBUVDUYCUUAYQUUHYEYFXDXBUYBXFXIXHYNUXQUXTPUFUXNUXNUUGUUIUUH
      UEZSZUXMPZJUCZKUCITXNUXMKJIXJUYGKIYQXOZEXKZUYFUUIUYHRZJUXMUYJUYEUUIUXLRUX
      MUYJUUIUUHUWGXLUUIUXLYQXMXPXQWSUYFJIUYHUYIUXMUUHUYHRZUYEUUHUXLRUXMUYKUUIU
      UHUWFXRUUHUXLYQXMXPXQUYFITUYEITZUYDWGUYLXNIUYDWKUYDWHXSUYFUYEIUYEUXMWIWJW
      LXTXTYAYGUXNSZYJUXQYMUXTUYMYIUXPADUYMYHUXOBCYEYFYGUXNYBWPWQUYMYLUXSACUYMY
      KUXRBDYFYEYGUXNYBVFWQVDWRXCWSYCYD $.

    $( An equivalence to a dominance relation for disjoint sets.  (Contributed
       by NM, 5-Apr-2007.) $)
    brdom6disj $p |- ( A ~<_ B <-> E. f ( A. x e. B E* y
      { x , y } e. f /\ A. x e. A E. y e. B { y , x } e. f ) ) $=
      ( vv vz vw wbr cv wral wrex wa cpr wcel wceq cab vg wmo wex brdom5 cop wi
      cdom wal zfpair2 eqeq1 anbi1d anbi2i syl6bbr 2rexbidv elab weq wne wb cin
      df-br incom eqtri disjne mp3an1 vex opthpr syl breq12 biimprd syl6bi impd
      c0 ex adantrd rexlimdvv syl5bi alrimiv ralimia ancoms eqcom ancom 3bitr4g
      moim bicomi a1i anbi12d rexbidv syl5bb adantr breq2 breq1 ceqsrex2v bitrd
      rexbidva ralbiia biimpri snex simpl ss2abi df-sn sseqtr4i ssexi ab2rexex2
      csn eleq2 mobidv ralbidv spcev syl2an exlimiv copab preq1 preq2 eqid brab
      eleq1d mobii ralbii rexbii cvv cuni vuniex prid1 elunii mpan adantl prid2
      df-opab eqeltrri abexex eqeltri breq syl2anbr impbii bitri ) CDUGLAMZBMZU
      AMZLZBUBZADNZYQYPYRLZBDOZACNZPZUAUCZYPYQQZEMZRZBUBZADNZYQYPQZUUHRZBDOZACN
      ZPZEUCZABCDUAGUDUUFUUQUUEUUQUAUUAUUGIMZJMZKMZQZSZUUSUUTUEYRRZPZJDOKCOZITZ
      RZBUBZADNZUULUVFRZBDOZACNZUUQUUDYTUVHADYPDRZUVGYSUFZBUHYTUVHUFUVMUVNBUVGU
      UGUVASZUUSUUTYRLZPZJDOKCOZUVMYSUVEUVRIUUGABUIUURUUGSZUVDUVQKJCDUVSUVDUVOU
      VCPUVQUVSUVBUVOUVCUURUUGUVAUJUKUVPUVCUVOUUSUUTYRUTZULUMUNUOUVMUVQYSKJCDUV
      MUUTCRZUVQYSUFZUUSDRZUVMUWAUWBUVMUWAPZUVOUVPYSUWDUVOAJUPBKUPPZUVPYSUFUWDY
      PUUTUQZUVOUWEURDCUSZVLSZUVMUWAUWFUWGCDUSVLDCVAHVBZDCYPUUTVCVDYPYQUUSUUTAV
      EZBVEZJVEZKVEZVFVGUWEYSUVPYPUUSYQUUTYRVHVIVJVKVMVNVOVPVQUVGYSBWCVGVRUVLUU
      DUVKUUCACYPCRZUVJUUBBDUWNYQDRZPUVJKAUPZJBUPZPZUVPPZJDOZKCOZUUBUWNUVJUXAUR
      UWOUVJUULUVASZUVCPZJDOZKCOZUWNUXAUVEUXEIUULBAUIUURUULSZUVDUXCKJCDUXFUVBUX
      BUVCUURUULUVAUJUKUNUOUWNUXDUWTKCUWNUXCUWSJDUWNUWCPZUXBUWRUVCUVPUXGUVAUULS
      ZUWQUWPPZUXBUWRUXGUUSYPUQZUXHUXIURUWCUWNUXJUWHUWCUWNUXJUWIDCUUSYPVCVDVSUU
      SUUTYQYPUWLUWMUWKUWJVFVGUULUVAVTUWPUWQWAWBUVCUVPURUXGUVPUVCUVTWDWEWFWNWGW
      HWIUVPUUSYPYRLUUBKJYPYQCDUUTYPUUSYRWJUUSYQYPYRWKWLWMWNWOWPUUPUVIUVLPEUVFU
      VDKJICDFGUVDITZUVAXDZUVAWQUXKUVBITUXLUVDUVBIUVBUVCWRWSIUVAWTXAXBXCUUHUVFS
      ZUUKUVIUUOUVLUXMUUJUVHADUXMUUIUVGBUUHUVFUUGXEXFXGUXMUUNUVKACUXMUUMUVJBDUU
      HUVFUULXEWGXGWFXHXIXJUUPUUFEUUKYPYQUUTUUSQZUUHRZKJXKZLZBUBZADNZYQYPUXPLZB
      DOZACNZUUFUUOUXRUUJADUXQUUIBUXOYPUUSQZUUHRUUIKJYPYQUXPUWJUWKUWPUXNUYCUUHU
      UTYPUUSXLXPUWQUYCUUGUUHUUSYQYPXMXPUXPXNZXOXQXRUYAUUNACUXTUUMBDUXOYQUUSQZU
      UHRUUMKJYQYPUXPUWKUWJKBUPUXNUYEUUHUUTYQUUSXLXPJAUPUYEUULUUHUUSYPYQXMXPUYD
      XOXSXRUUEUXSUYBPUAUXPUXPUURUUTUUSUEZSZUXOPZJUCZKUCITXTUXOKJIYHUYIKIUUHYAZ
      EYBZUYHUUTUYJRZJUXOUYLUYGUUTUXNRUXOUYLUUTUUSUWMYCUUTUXNUUHYDYEYFXJUYHJIUY
      JUYKUXOUUSUYJRZUYGUUSUXNRUXOUYMUUTUUSUWLYGUUSUXNUUHYDYEYFUYHITUYGITZUYFXD
      UYNXTIUYFWTUYFWQYIUYHUYGIUYGUXOWRWSXBYJYJYKYRUXPSZUUAUXSUUDUYBUYOYTUXRADU
      YOYSUXQBYPYQYRUXPYLXFXGUYOUUCUYAACUYOUUBUXTBDYQYPYRUXPYLWGXGWFXHYMXJYNYO
      $.
  $}

  $( Once we allow AC, the "strongest" definition of finite set becomes
     equivalent to the "weakest" and the entire hierarchy collapses.
     (Contributed by Stefan O'Rear, 29-Oct-2014.) $)
  fin71ac $p |- Fin7 = Fin $=
    ( wac cfin7 cfn wceq axac3 dfacfin7 mpbi ) ABCDEFG $.

  $( An image of a function under a set is dominated by the set.  Proposition
     10.34 of [TakeutiZaring] p. 92.  (Contributed by NM, 23-Jul-2004.) $)
  imadomg $p |- ( A e. B -> ( Fun F -> ( F " A ) ~<_ A ) ) $=
    ( wcel wfun cima cres cdm cdom wbr wa crn df-ima cvv resfunexg dmexg funres
    wfo syl expcom funforn sylib adantr fodomg syl5eqbr wss dmres inss1 eqsstri
    sylc cin ssdomg mpi domtr sylan2 syld ) ABDZCEZCAFZCAGZHZIJZUSAIJZURUQVBURU
    QKZUSUTLZVAICAMVDVANDZVAVEUTRZVEVAIJVDUTNDVFCABOUTNPSURVGUQURUTEVGACQUTUAUB
    UCVAVENUTUDUJUETVBUQVCUQVBVAAIJZVCUQVAAUFVHVAACHZUKACAUGAVIUHUIVAABULUMUSVA
    AUNUOTUP $.

  $( The image by a function of a countable set is countable.  (Contributed by
     Thierry Arnoux, 27-Mar-2018.) $)
  fimact $p |- ( ( A ~<_ _om /\ Fun F ) -> ( F " A ) ~<_ _om ) $=
    ( com cdom wbr wfun wa cima cvv wcel ctex imadomg sylan simpl domtr syl2anc
    imp ) ACDEZBFZGBAHZADEZRTCDERAIJZSUAAKUBSUAAIBLQMRSNTACOP $.

  $( The range of a function is dominated by its domain.  (Contributed by NM,
     1-Sep-2004.) $)
  fnrndomg $p |- ( A e. B -> ( F Fn A -> ran F ~<_ A ) ) $=
    ( wfn crn wfo wcel cdom wbr dffn4 fodomg syl5bi ) CADACEZCFABGMAHIACJAMBCKL
    $.

  $( If the domain of a function is countable, the function is countable.
     (Contributed by Thierry Arnoux, 29-Dec-2016.) $)
  fnct $p |- ( ( F Fn A /\ A ~<_ _om ) -> F ~<_ _om ) $=
    ( wfn com cdom wbr crn cxp cvv wcel wss ctex adantl cdm adantr sylc syl2anc
    wa sylancom domtr wfun wb fndm eleq1d fnfun funrnex xpexg simpl dffn3 sylib
    mpbird wf fssxp syl ssdomg cen xpdom1g omex fnrndomg xpdom2g sylancr xpomen
    domentr sylancl ) BACZADEFZRZBABGZHZEFZVIDEFZBDEFVGVIIJZBVIKZVJVGAIJZVHIJZV
    LVFVNVEALMZVGBNZIJZBUAZVOVGVRVNVPVEVRVNUBVFVEVQAIABUCUDOUKVEVSVFABUEOIBUFPZ
    AVHIIUGQVGAVHBULZVMVGVEWAVEVFUHZABUIUJAVHBUMUNBVIIUOPVGVIDDHZEFZWCDUPFVKVGV
    IDVHHZEFZWEWCEFZWDVEVFVOWFVTADVHIUQSVGDIJVHDEFZWGURVEVFVHAEFZWHVGVNVEWIVPWB
    AIBUSPVHADTSVHDDIUTVAVIWEWCTQVBVIWCDVCVDBVIDTQ $.

  ${
    $d x A $.
    $( A countable mapping set is countable.  (Contributed by Thierry Arnoux,
       29-Dec-2016.) $)
    mptct $p |- ( A ~<_ _om -> ( x e. A |-> B ) ~<_ _om ) $=
      ( com cdom wbr cmpt wfun cdm funmpt cvv wcel wss ctex eqid dmmptss ssdomg
      mpisyl domtr mpancom wfn funfn fnct sylanb sylancr ) BDEFZABCGZHZUGIZDEFZ
      UGDEFZABCJUIBEFZUFUJUFBKLUIBMULBNABCUGUGOPUIBKQRUIBDSTUHUGUIUAUJUKUGUBUIU
      GUCUDUE $.
  $}

  ${
    $d f g x y z A $.  $d f g y z B $.  $d f g x y z C $.  $d f y z T $.
    $d f ph $.
    iunfo.1 $e |- T = U_ x e. A ( { x } X. B ) $.
    $( Existence of an onto function from a disjoint union to a union.
       (Contributed by Mario Carneiro, 24-Jun-2013.)  (Revised by Mario
       Carneiro, 18-Jan-2014.) $)
    iunfo $p |- ( 2nd |` T ) : T -onto-> U_ x e. A B $=
      ( vy vz ciun c2nd wfo wfn wceq cvv wss mp2an cv cfv wrex wcel eliun fo2nd
      cres crn wf fof ffn mp2b ssv fnssres cima df-ima eleq2i bitri xp2nd eleq1
      csn cxp syl5ib reximdv syl5bi impcom rexlimiva nfiu1 nfcxfr nfv nfrex cop
      wa ssiun2 adantr simpr vsnid opelxp mpbiran sylibr sseldd syl6eleqr op2nd
      vex fveq2 eqeq1d rspcev sylancl ex rexlimi impbii fvelimab 3bitr4i eqtr3i
      wb eqriv df-fo mpbir2an ) DABCHZIDUBZJWODKZWOUCZWNLIMKZDMNZWPMMIJMMIUDWRU
      AMMIUEMMIUFUGZDUHZMDIUIOIDUJZWQWNIDUKFXBWNGPZIQZFPZLZGDRZXECSZABRZXEXBSZX
      EWNSXGXIXFXIGDXFXCDSZXIXKXCAPZUPZCUQZSZABRZXFXIXKXCABXNHZSXPDXQXCEULAXCBX
      NTUMXFXOXHABXOXDCSXFXHXCXMCUNXDXECUOURUSUTVAVBXHXGABXFAGDADXQEABXNVCVDXFA
      VEVFXLBSZXHXGXRXHVHZXLXEVGZDSXTIQZXELZXGXSXTXQDXSXNXQXTXRXNXQNXHABXNVIVJX
      SXHXTXNSZXRXHVKYCXLXMSXHAVLXLXEXMCVMVNVOVPEVQXLXEAVSFVSVRXFYBGXTDXCXTLXDY
      AXEXCXTIVTWAWBWCWDWEWFWRWSXJXGWJWTXAGMDXEIWGOAXEBCTWHWKWIDWNWOWLWM $.

    iundomg.2 $e |- ( ph -> U_ x e. A ( C ^m B ) e. AC_ A ) $.
    iundomg.3 $e |- ( ph -> A. x e. A B ~<_ C ) $.
    $( An upper bound for the cardinality of a disjoint indexed union, with
       explicit choice principles. ` B ` depends on ` x ` and should be thought
       of as ` B ( x ) ` .  (Contributed by Mario Carneiro, 1-Sep-2015.) $)
    iundom2g $p |- ( ph -> T ~<_ ( A X. C ) ) $=
      ( vy vg cfv wf1 wral wa wcel wb cvv syl wceq vf vz cmap co ciun cv wf csb
      wex cxp cdom wbr wacn wrex brdomi adantl reldom brrelex2i brrelexi elmapd
      f1f syl5ibr wss ssiun2 adantr sseld syld ancrd eximdv mpd df-rex ralimiaa
      sylibr nfv nfiu1 nfcv nfcsb1v nff1 nfrex weq csbeq1a f1eq2 rexbidv cbvral
      sylib f1eq1 acni3 syl2anc fveq2 bitrd c0 wn wne df-ne acnrcl wi rexlimivw
      r19.2z expcom xpexg syl6an syl5bir 0xp 0ex eqeltri syl6eqel pm2.61d2 c1st
      xpeq1 c2nd cop csn eleq2i eliun bitri r19.29 xp1st ad2antll elsni eqeltrd
      simpl fveq2d fveq1d ad2antrl xp2nd ffvelrnd opelxpi rexlimiva syl5bi fvex
      ex opth simpr eqeq2d djussxp eqsstri simprl sseldi simpll csbeq1d eleqtrd
      rspc sylc nfel2 eqcomd rexlimi imp adantrr ralrimiv eleq12d rspccva sylan
      adantrl eleqtrrd f1fveq bitr3d simprr xpopth syl5bb dom2d syl5com adantld
      syl12anc pm5.32da exlimdv ) ACBCEDUCUDZUEZUAUFZUGZBJUFZDUHZEUVJUVHLZMZJCN
      ZOZUAUIZFCEUJZUKULZAUVGCUMPZUVKEKUFZMZKUVGUNZJCNZUVPHADEUVTMZKUVGUNZBCNZU
      WCADEUKULZBCNZUWFIUWGUWEBCBUFZCPZUWGOZUVTUVGPZUWDOZKUIZUWEUWKUWDKUIZUWNUW
      GUWOUWJDEKUOUPUWKUWDUWMKUWKUWDUWLUWKUWDUVTUVFPZUWLUWDUWPUWKDEUVTUGZDEUVTV
      AUWGUWPUWQQUWJUWGEDUVTRRDEUKUQURZDEUKUQUSUTUPVBUWKUVFUVGUVTUWJUVFUVGVCUWG
      BCUVFVDVEVFVGVHVIVJUWDKUVGVKVMVLSUWEUWBBJCUWEJVNUWABKUVGBCUVFVOBUVKEUVTBU
      VTVPBUVJDVQZBEVPZVRVSBJVTZUWDUWAKUVGUXADUVKTZUWDUWAQBUVJDWAZDUVKEUVTWBSWC
      WDWEUWAUVMJKCUAUVGUVKEUVTUVLWFWGWHAUVOUVRUAAUVNUVRUVIUVNDEUWIUVHLZMZBCNZA
      UVRUXEUVMBJCUXEJVNBUVKEUVLBUVLVPUWSUWTVRUXAUXEDEUVLMZUVMUXAUXDUVLTUXEUXGQ
      UWIUVJUVHWIDEUXDUVLWFSUXAUXBUXGUVMQUXCDUVKEUVLWBSWJWDAUVQRPZUXFUVRACWKTZU
      XHUXIWLCWKWMZAUXHCWKWNACRPZUXJERPZUXHAUVSUXKHCUVGWOSAUWHUXJUXLWPIUXJUWHUX
      LUXJUWHOUWGBCUNUXLUWGBCWRUWGUXLBCUWRWQSWSSCERRWTXAXBUXIUVQWKEUJZRCWKEXIUX
      MWKREXCXDXEXFXGUXFJUBFUVQUVJXHLZUVJXJLZUXNUVHLZLZXKZUBUFZXHLZUXSXJLZUXTUV
      HLZLZXKZRUVJFPZUVJUWIXLZDUJZPZBCUNZUXFUXRUVQPZUYEUVJBCUYGUEZPUYIFUYKUVJGX
      MBUVJCUYGXNXOZUXFUYIUYJUXFUYIOZUXEUYHOZBCUNZUYJUXEUYHBCXPZUYNUYJBCUWJUYNO
      ZUXNCPZUXQEPUYJUYQUXNUWICUYQUXNUYFPZUXNUWITUYHUYSUWJUXEUVJUYFDXQXRUXNUWIX
      SSZUWJUYNYAXTUYQUXQUXOUXDLEUYQUXOUXPUXDUYQUXNUWIUVHUYTYBYCUYQDEUXOUXDUXED
      EUXDUGUWJUYHDEUXDVAYDUYHUXODPUWJUXEUVJUYFDYEXRZYFXTUXNUXQCEYGWHYHSYKYIUXF
      UYEUXSFPZOZUXRUYDTZJUBVTZQVUDUXNUXTTZUXQUYCTZOZUXFVUCOZVUEUXNUXQUXTUYCUVJ
      XHYJUXOUXPYJYLVUIVUHVUFUXOUYATZOZVUEVUIVUFVUGVUJVUIVUFOZUXQUYAUXPLZTZVUGV
      UJVULVUMUYCUXQVULUYAUXPUYBVULUXNUXTUVHVUIVUFYMZYBYCYNVULBUXNDUHZEUXPMZUXO
      VUPPZUYAVUPPVUNVUJQVULUYRUXFVUQVULUVJCRUJZPZUYRVUIVUTVUFVUIFVUSUVJFUYKVUS
      GBCDYOYPZUXFUYEVUBYQYRZVEUVJCRXQSUXFVUCVUFYSUXEVUQBUXNCBVUPEUXPBUXPVPBUXN
      DVQZUWTVRUWIUXNTZUXEDEUXPMZVUQVVDUXDUXPTUXEVVEQUWIUXNUVHWIDEUXDUXPWFSVVDD
      VUPTZVVEVUQQBUXNDWAZDVUPEUXPWBSWJUUBUUCVUIVURVUFUXFUYEVURVUBUXFUYEVURUYEU
      YIUXFVURUYLUXFUYIVURUYMUYOVURUYPUYNVURBCBUXOVUPVVCUUDUWJUYNVURUYQUXODVUPV
      UAUYQVVDVVFUYQUXNUWIUYTUUEVVGSUUAYKUUFSYKYIZUUGUUHVEVULUYABUXTDUHZVUPVUIU
      YAVVIPZVUFUXFVUBVVJUYEUXFVURJFNVUBVVJUXFVURJFVVHUUIVURVVJJUXSFVUEUXOUYAVU
      PVVIUVJUXSXJWIVUEBUXNUXTDUVJUXSXHWIYTUUJUUKUULUUMVEVULBUXNUXTDVUOYTUUNVUP
      EUXOUYAUXPUUOUVCUUPUVDVUIVUTUXSVUSPVUKVUEQVVBVUIFVUSUXSVVAUXFUYEVUBUUQYRU
      VJUXSCRCRUURWHWJUUSYKUUTUVAXBUVBUVEVJ $.

    iundomg.4 $e |- ( ph -> ( A X. C ) e. AC_ U_ x e. A B ) $.
    $( An upper bound for the cardinality of an indexed union, with explicit
       choice principles. ` B ` depends on ` x ` and should be thought of as
       ` B ( x ) ` .  (Contributed by Mario Carneiro, 1-Sep-2015.) $)
    iundomg $p |- ( ph -> U_ x e. A B ~<_ ( A X. C ) ) $=
      ( ciun cdom wbr cxp wacn wcel c2nd cres wfo iundom2g acndom2 iunfo mpisyl
      sylc fodomacn domtr syl2anc ) ABCDKZFLMZFCENZLMZUHUJLMAFUHOZPZFUHQFRZSUIA
      UKUJULPUMABCDEFGHITZJUHFUJUAUDBCDFGUBFUHUNUEUCUOUHFUJUFUG $.
  $}

  ${
    $d x A $.  $d x B $.
    $( An upper bound for the cardinality of an indexed union. ` C ` depends on
       ` x ` and should be thought of as ` C ( x ) ` .  (Contributed by NM,
       26-Mar-2006.) $)
    iundom $p |- ( ( A e. V /\ A. x e. A C ~<_ B ) ->
        U_ x e. A C ~<_ ( A X. B ) ) $=
      ( wcel cdom wbr wral wa cxp ciun cmap wacn cvv iunexg numth3 numacn sylc
      reldom cv csn eqid co ccrd simpl ovex rgenw sylancl simpr brrelexi ralimi
      cdm syl sylan2 iundom2g brrelex2i 3syl iundomg ) BEFZDCGHZABIZJZABDCABAUA
      UBDKLZVDUCZVCUTABCDMUDZLZUEUMZFZVGBNFUTVBUFZVCVGOFZVIVCUTVFOFZABIVKVJVLAB
      CDMUGUHABVFEOPUIVGOQUNBEVGRSZUTVBUJZVCABDLZOFZBCKZVHFZVQVONFVBUTDOFZABIVP
      VAVSABDCGTUKULABDEOPUOVCVDVQGHVQOFVRVCABDCVDVEVMVNUPVDVQGTUQVQOQURVOOVQRS
      US $.

    $( An upper bound for the cardinality of a union.  Theorem 10.47 of
       [TakeutiZaring] p. 98.  (Contributed by NM, 25-Mar-2006.)  (Proof
       shortened by Mario Carneiro, 1-Sep-2015.) $)
    unidom $p |- ( ( A e. V /\ A. x e. A x ~<_ B ) -> U. A ~<_ ( A X. B ) ) $=
      ( wcel cv cdom wbr wral wa cuni ciun cxp uniiun iundom syl5eqbr ) BDEAFZC
      GHABIJBKABQLBCMGABNABCQDOP $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    uniimadom.1 $e |- A e. _V $.
    uniimadom.2 $e |- B e. _V $.
    $( An upper bound for the cardinality of the union of an image.  Theorem
       10.48 of [TakeutiZaring] p. 99.  (Contributed by NM, 25-Mar-2006.) $)
    uniimadom $p |- ( ( Fun F /\ A. x e. A ( F ` x ) ~<_ B ) ->
                 U. ( F " A ) ~<_ ( A X. B ) ) $=
      ( vy wfun cv cdom wbr wral cxp cvv wcel adantr wi wrex syl syl2anc cfv wa
      cima cuni funimaex wceq fvelima ex breq1 biimpd reximi r19.36v syl6 com23
      imp ralrimiv unidom imadomg ax-mp xpdom1 domtr ) DHZAIDUAZCJKZABLZUBZDBUC
      ZUDZVGCMZJKZVIBCMZJKZVHVKJKVFVGNOZGIZCJKZGVGLVJVBVMVEDBEUEPVFVOGVGVBVEVNV
      GOZVOQVBVPVEVOVBVPVCVNUFZABRZVEVOQZVBVPVRAVNBDUGUHVRVDVOQZABRVSVQVTABVQVD
      VOVCVNCJUIUJUKVDVOABULSUMUNUOUPGVGCNUQTVBVLVEVBVGBJKZVLBNOVBWAQEBNDURUSVG
      BCFUTSPVHVIVKVAT $.
  $}

  ${
    $d x z A $.  $d x z B $.  $d z F $.
    uniimadomf.1 $e |- F/_ x F $.
    uniimadomf.2 $e |- A e. _V $.
    uniimadomf.3 $e |- B e. _V $.
    $( An upper bound for the cardinality of the union of an image.  Theorem
       10.48 of [TakeutiZaring] p. 99.  This version of ~ uniimadom uses a
       bound-variable hypothesis in place of a distinct variable condition.
       (Contributed by NM, 26-Mar-2006.) $)
    uniimadomf $p |- ( ( Fun F /\ A. x e. A ( F ` x ) ~<_ B ) ->
                 U. ( F " A ) ~<_ ( A X. B ) ) $=
      ( vz cv cfv cdom wbr wral wfun cima cuni cxp nfv nfcv nffv nfbr weq fveq2
      breq1d cbvral uniimadom sylan2b ) AIZDJZCKLZABMDNHIZDJZCKLZHBMDBOPBCQKLUJ
      UMAHBUJHRAULCKAUKDEAUKSTAKSACSUAAHUBUIULCKUHUKDUCUDUEHBCDFGUFUG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cardinal number theorems using Axiom of Choice
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.
    cardval.1 $e |- A e. _V $.
    $( The value of the cardinal number function.  Definition 10.4 of
       [TakeutiZaring] p. 85.  See ~ cardval2 for a simpler version of its
       value.  (Contributed by NM, 21-Oct-2003.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    cardval $p |- ( card ` A ) = |^| { x e. On | x ~~ A } $=
      ( cvv wcel ccrd cdm cfv cen wbr con0 crab cint wceq numth3 cardval3 mp2b
      cv ) BDEBFGEBFHARBIJAKLMNCBDOABPQ $.

    $( Any set is equinumerous to its cardinal number.  Proposition 10.5 of
       [TakeutiZaring] p. 85.  (Contributed by NM, 22-Oct-2003.)  (Revised by
       Mario Carneiro, 28-Apr-2015.) $)
    cardid $p |- ( card ` A ) ~~ A $=
      ( cvv wcel ccrd cdm cfv cen wbr numth3 cardid2 mp2b ) ACDAEFDAEGAHIBACJAK
      L $.
  $}

  $( Any set is equinumerous to its cardinal number.  Closed theorem form of
     ~ cardid .  (Contributed by David Moews, 1-May-2017.) $)
  cardidg $p |- ( A e. B -> ( card ` A ) ~~ A ) $=
    ( wcel cvv ccrd cfv cen wbr elex cdm cardeqv eleq2i cardid2 sylbir syl ) AB
    CADCZAEFAGHZABIPAEJZCQRDAKLAMNO $.

  ${
    cardidd.1 $e |- ( ph -> A e. B ) $.
    $( Any set is equinumerous to its cardinal number.  Deduction form of
       ~ cardid .  (Contributed by David Moews, 1-May-2017.) $)
    cardidd $p |- ( ph -> ( card ` A ) ~~ A ) $=
      ( wcel ccrd cfv cen wbr cardidg syl ) ABCEBFGBHIDBCJK $.
  $}

  ${
    $d x y $.
    $( The cardinality function is a function with domain the well-orderable
       sets.  Assuming AC, this is the universe.  (Contributed by Mario
       Carneiro, 6-Jun-2013.)  (Revised by Mario Carneiro, 13-Sep-2013.) $)
    cardf $p |- card : _V --> On $=
      ( vy vx cv cen wbr con0 wrex cab ccrd wf cvv cardf2 cdm fdmi eqtr3i feq2i
      cardeqv mpbi ) ACBCDEAFGBHZFIJKFIJBALZSKFIIMSKSFITNQOPR $.
  $}

  $( Two sets are equinumerous iff their cardinal numbers are equal.  This
     important theorem expresses the essential concept behind "cardinality" or
     "size."  This theorem appears as Proposition 10.10 of [TakeutiZaring]
     p. 85, Theorem 7P of [Enderton] p. 197, and Theorem 9 of [Suppes] p. 242
     (among others).  The Axiom of Choice is required for its proof.  Related
     theorems are ~ hasheni and the finite-set-only ~ hashen .

     This theorem is also known as Hume's Principle.  Gottlob Frege's
     two-volume _Grundgesetze der Arithmetik_ used his Basic Law V to prove
     this theorem.  Unfortunately Basic Law V caused Frege's system to be
     inconsistent because it was subject to Russell's paradox (see ~ ru ).
     Later scholars have found that Frege primarily used Basic Law V to Hume's
     Principle.  If Basic Law V is replaced by Hume's Principle in Frege's
     system, much of Frege's work is restored. _Grundgesetze der Arithmetik_,
     once Basic Law V is replaced, proves "Frege's theorem" (the Peano axioms
     of arithmetic can be derived in second-order logic from Hume's principle).
     See https://plato.stanford.edu/entries/frege-theorem .  We take a
     different approach, using first-order logic and ZFC, to prove the Peano
     axioms of arithmetic.

     The theory of cardinality can also be developed without AC by introducing
     "card" as a primitive notion and stating this theorem as an axiom, as is
     done with the axiom for cardinal numbers in [Suppes] p. 111.  Finally, if
     we allow the Axiom of Regularity, we can avoid AC by defining the cardinal
     number of a set as the set of all sets equinumerous to it and having the
     least possible rank (see ~ karden ).  (Contributed by NM, 22-Oct-2003.) $)
  carden $p |- ( ( A e. C /\ B e. D ) ->
               ( ( card ` A ) = ( card ` B ) <-> A ~~ B ) ) $=
    ( wcel wa ccrd cfv wceq cen wbr numth3 ad2antrr cardid2 ensym 3syl ad2antlr
    cdm simpr cardidd eqbrtrd entr syl2anc ex carden2b impbid1 ) ACEZBDEZFZAGHZ
    BGHZIZABJKZUIULUMUIULFZAUJJKZUJBJKUMUNAGRZEZUJAJKUOUGUQUHULACLMANUJAOPUNUJU
    KBJUIULSUNBUPUHBUPEUGULBDLQTUAAUJBUBUCUDABUEUF $.

  $( Only the empty set has cardinality zero.  (Contributed by NM,
     23-Apr-2004.) $)
  cardeq0 $p |- ( A e. V -> ( ( card ` A ) = (/) <-> A = (/) ) ) $=
    ( wcel ccrd cfv c0 cen wbr cvv wb 0ex carden mpan2 card0 eqeq2i en0 3bitr3g
    wceq ) ABCZADEZFDEZRZAFGHZTFRAFRSFICUBUCJKAFBILMUAFTNOAPQ $.

  ${
    unsnen.1 $e |- A e. _V $.
    unsnen.2 $e |- B e. _V $.
    $( Equinumerosity of a set with a new element added.  (Contributed by NM,
       7-Nov-2008.) $)
    unsnen $p |- ( -. B e. A -> ( A u. { B } ) ~~ suc ( card ` A ) ) $=
      ( wcel wn csn cun ccrd cfv csuc cen cin wceq wbr disjsn word cardon cvv
      c0 onordi orddisj ax-mp cardid ensymi fvex en2sn mp2an unen mpanl12 mpan2
      wa sylbir df-suc syl6breqr ) BAEFZABGZHZAIJZUSGZHZUSKLUPAUQMTNZURVALOZABP
      VBUSUTMTNZVCUSQVDUSARUAUSUBUCAUSLOUQUTLOZVBVDULVCUSAACUDUEBSEUSSEVEDAIUFB
      USSSUGUHAUSUQUTUIUJUKUMUSUNUO $.
  $}

  $( Two sets have the dominance relationship iff their cardinalities have the
     subset relationship.  Equation i of [Quine] p. 232.  (Contributed by NM,
     22-Oct-2003.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
  carddom $p |- ( ( A e. V /\ B e. W ) ->
               ( ( card ` A ) C_ ( card ` B ) <-> A ~<_ B ) ) $=
    ( wcel ccrd cdm cfv wss cdom wbr wb numth3 carddom2 syl2an ) ACEAFGZEBPEAFH
    BFHIABJKLBDEACMBDMABNO $.

  $( Two sets have the strict dominance relationship iff their cardinalities
     have the membership relationship.  Corollary 19.7(2) of [Eisenberg]
     p. 310.  (Contributed by NM, 22-Oct-2003.)  (Revised by Mario Carneiro,
     30-Apr-2015.) $)
  cardsdom $p |- ( ( A e. V /\ B e. W ) ->
               ( ( card ` A ) e. ( card ` B ) <-> A ~< B ) ) $=
    ( wcel ccrd cdm cfv csdm wbr wb numth3 cardsdom2 syl2an ) ACEAFGZEBOEAFHBFH
    EABIJKBDEACLBDLABMN $.

  $( Trichotomy law for dominance and strict dominance.  This theorem is
     equivalent to the Axiom of Choice.  (Contributed by NM, 4-Jan-2004.)
     (Revised by Mario Carneiro, 30-Apr-2015.) $)
  domtri $p |- ( ( A e. V /\ B e. W ) -> ( A ~<_ B <-> -. B ~< A ) ) $=
    ( wcel ccrd cdm cdom wbr csdm wn wb numth3 domtri2 syl2an ) ACEAFGZEBPEABHI
    BAJIKLBDEACMBDMABNO $.

  $( Trichotomy of equinumerosity and strict dominance.  This theorem is
     equivalent to the Axiom of Choice.  Theorem 8 of [Suppes] p. 242.
     (Contributed by NM, 4-Jan-2004.) $)
  entric $p |- ( ( A e. V /\ B e. W ) -> ( A ~< B \/ A ~~ B \/ B ~< A ) ) $=
    ( wcel wa csdm wbr cen wo wn cdom domtri biimprd brdom2 syl6ib con1d df-3or
    w3o orrd sylibr ) ACEBDEFZABGHZABIHZJZBAGHZJUCUDUFSUBUEUFUBUFUEUBUFKZABLHZU
    EUBUHUGABCDMNABOPQTUCUDUFRUA $.

  $( Trichotomy of dominance and strict dominance.  (Contributed by NM,
     4-Jan-2004.) $)
  entri2 $p |- ( ( A e. V /\ B e. W ) -> ( A ~<_ B \/ B ~< A ) ) $=
    ( wcel wa csdm wbr cen w3o cdom entric brdom2 orbi1i df-3or bitr4i sylibr
    wo ) ACEBDEFABGHZABIHZBAGHZJZABKHZUARZABCDLUDSTRZUARUBUCUEUAABMNSTUAOPQ $.

  $( Trichotomy of dominance.  This theorem is equivalent to the Axiom of
     Choice.  Part of Proposition 4.42(d) of [Mendelson] p. 275.  (Contributed
     by NM, 4-Jan-2004.) $)
  entri3 $p |- ( ( A e. V /\ B e. W ) -> ( A ~<_ B \/ B ~<_ A ) ) $=
    ( wcel wa cdom wbr csdm wo entri2 sdomdom orim2i syl ) ACEBDEFABGHZBAIHZJOB
    AGHZJABCDKPQOBALMN $.

  $( A set strictly dominates iff its cardinal strictly dominates.
     (Contributed by NM, 30-Oct-2003.) $)
  sdomsdomcard $p |- ( A ~< B <-> A ~< ( card ` B ) ) $=
    ( csdm wbr ccrd cfv cen cvv wcel cdm relsdom brrelex2i numth3 cardid2 ensym
    4syl sdomentr mpdan sdomsdomcardi impbii ) ABCDZABEFZCDZUABUBGDZUCUABHIBEJI
    UBBGDUDABCKLBHMBNUBBOPABUBQRABST $.

  $( Cantor's theorem in terms of cardinals.  This theorem tells us that no
     matter how large a cardinal number is, there is a still larger cardinal
     number.  Theorem 18.12 of [Monk1] p. 133.  (Contributed by NM,
     5-Nov-2003.) $)
  canth3 $p |- ( A e. V -> ( card ` A ) e. ( card ` ~P A ) ) $=
    ( wcel ccrd cfv cpw csdm wbr canth2g cvv wb pwexg cardsdom mpdan mpbird ) A
    BCZADEAFZDECZAQGHZABIPQJCRSKABLAQBJMNO $.

  $( The Cartesian product of an infinite set with itself is idempotent.  This
     theorem (which is an AC equivalent) provides the basis for infinite
     cardinal arithmetic.  Proposition 10.40 of [TakeutiZaring] p. 95.  This
     proof follows as a corollary of ~ infxpen .  (Contributed by NM,
     17-Sep-2004.)  (Revised by Mario Carneiro, 9-Mar-2013.) $)
  infxpidm $p |- ( _om ~<_ A -> ( A X. A ) ~~ A ) $=
    ( ccrd cdm wcel com cdom wbr cxp cen cvv reldom brrelex2i infxpidm2 mpancom
    numth3 syl ) ABCDZEAFGZAAHAIGRAJDQEAFKLAJOPAMN $.

  ${
    $d x y z A $.
    $( The collection of ordinal numbers dominated by a set is an ordinal
       number.  (In general, not all collections of ordinal numbers are
       ordinal.)  Theorem 56 of [Suppes] p. 227.  This theorem can be proved
       (with a longer proof) without the Axiom of Choice; see ~ hartogs .
       (Contributed by NM, 7-Nov-2003.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    ondomon $p |- ( A e. V -> { x e. On | x ~<_ A } e. On ) $=
      ( vy vz wcel cv cdom wbr con0 crab word wss wa wi wal cvv imp breq1 ccrd
      wtr onelon vex onelss ssdomg mpsyl domtr anim2i anassrs sylan exp31 com12
      jca impd elrab 3imtr4g gen2 dftr2 mpbir ssrab2 ordon trssord mp3an wb cpw
      csdm wral canth2g domsdomtr sylan2 expcom ralrimivw syl ss2rab sylibr cfv
      elex wceq pwexg numth3 cardval2 3syl syl6eqelr ssexg syl2anc elong mpbiri
      cdm fvex ) BCFZAGZBHIZAJKZJFZWMLZWMUAZWMJMJLWOWPDGZEGZFZWRWMFZNWQWMFZOZEP
      DPXBDEWSWTXAWSWRJFZWRBHIZNWQJFZWQBHIZNZWTXAWSXCXDXGXCWSXDXGOXCWSXDXGXCWSN
      ZXEWQWRHIZNXDXGXHXEXIWRWQUBWRQFXHWQWRMZXIEUCXCWSXJWRWQUDRWQWRQUEUFUMXEXIX
      DXGXIXDNXFXEWQWRBUGUHUIUJUKULUNWLXDAWRJWKWRBHSUOWLXFAWQJWKWQBHSUOUPRUQDEW
      MURUSWLAJUTVAWMJVBVCWJWMQFZWNWOVDWJWMWKBVEZVFIZAJKZMZXNQFXKWJWLXMOZAJVGZX
      OWJBQFZXQBCVQXRXPAJWLXRXMXRWLBXLVFIXMBQVHWKBXLVIVJVKVLVMWLXMAJVNVOWJXNXLT
      VPZQWJXLQFXLTWHFXSXNVRBCVSXLQVTAXLWAWBXLTWIWCWMXNQWDWEWMQWFVMWG $.
  $}

  ${
    $d x y A $.  $d y V $.
    $( The smallest ordinal that strictly dominates a set is a cardinal.
       (Contributed by NM, 28-Oct-2003.)  (Revised by Mario Carneiro,
       20-Sep-2014.) $)
    cardmin $p |- ( A e. V -> ( card ` |^| { x e. On | A ~< x } ) =
                      |^| { x e. On | A ~< x } ) $=
      ( vy wcel cv csdm wbr con0 crab cint wral ccrd cfv wceq wrex syl cvv nfcv
      breq2 numthcor onintrab2 sylib cdom wa wn wi onelon ex onnminsb wb domtri
      syli vex mpan sylibrd nfrab1 nfint nfbr onminsb jctird domsdomtr ralrimiv
      syl6 iscard sylanbrc ) BCEZBAFZGHZAIJZKZIEZDFZVKGHZDVKLVKMNVKOVGVIAIPZVLA
      BCUAZVIAUBUCZVGVNDVKVGVMVKEZVMBUDHZBVKGHZUEVNVGVRVSVTVGVRBVMGHZUFZVSVRVGV
      MIEZWBVGVLVRWCUGVQVLVRWCVKVMUHUIQVIWAAVMVHVMBGTUJUMVMREVGVSWBUKDUNVMBRCUL
      UOUPVGVOVTVPVIVTAABVKGABSAGSAVJVIAIUQURUSVHVKBGTUTQVAVMBVKVBVDVCDVKVEVF
      $.
  $}

  ${
    $d A x $.  $d V x $.
    $( A set is finite iff its cardinal is a natural number.  (Contributed by
       Jeff Madsen, 2-Sep-2009.) $)
    ficard $p |- ( A e. V -> ( A e. Fin <-> ( card ` A ) e. _om ) ) $=
      ( vx wcel cfn ccrd cfv com cv cen wrex isfi wa wceq carden wi cardnn eqtr
      wbr adantl expcom eleq1a syld sylbird rexlimdva syl5bi eqcomd mpbid ancld
      syl ex breq2 rspcev sylibr syl6 impbid ) ABDZAEDZAFGZHDZURACIZJSZCHKZUQUT
      CALZUQVBUTCHUQVAHDZMVBUSVAFGZNZUTAVABHOVEVGUTPUQVEVGUSVANZUTVEVFVANZVGVHP
      VAQVGVIVHUSVFVARUAUJVAHUSUBUCTUDUEUFUQUTUTAUSJSZMZURUQUTVJUQUTVJUQUTMUSUS
      FGZNZVJUTVMUQUTVLUSUSQUGTAUSBHOUHUKUIVKVCURVBVJCUSHVAUSAJULUMVDUNUOUP $.
  $}

  $( Equivalence between two infiniteness criteria for sets.  (Contributed by
     David Moews, 1-May-2017.) $)
  infinf $p |- ( A e. B -> ( -. A e. Fin <-> _om ~<_ A ) ) $=
    ( wcel com cdom wbr csdm wn cfn cvv wb omex domtri isfinite notbii syl6rbbr
    mpan ) ABCZDAEFZADGFZHZAICZHDJCRSUAKLDAJBMQUBTANOP $.

  ${
    $d F x $.
    unirnfdomd.1 $e |- ( ph -> F : T --> Fin ) $.
    unirnfdomd.2 $e |- ( ph -> -. T e. Fin ) $.
    unirnfdomd.3 $e |- ( ph -> T e. V ) $.
    $( The union of the range of a function from an infinite set into the class
       of finite sets is dominated by its domain.  Deduction form.
       (Contributed by David Moews, 1-May-2017.) $)
    unirnfdomd $p |- ( ph -> U. ran F ~<_ T ) $=
      ( vx crn cxp cdom wbr com cvv wcel wral cfn syl syl2anc domtr cuni cen cv
      wfn ffn fnex rnexg wss frn dfss3 sylib csdm isfinite sdomdom sylbi ralimi
      wf 3syl unidom fnrndomg sylc omex xpdom1 wn infinf mpbid xpdom2g infxpidm
      wb domentr ) ACIZUAZBBJZKLZVMBUBLZVLBKLAVLBMJZKLZVPVMKLZVNAVLVKMJZKLZVSVP
      KLZVQAVKNOZHUCZMKLZHVKPZVTACNOZWBACBUDZBDOZWFABQCUQZWGEBQCUERZGBDCUFSCNUG
      RAWIWCQOZHVKPZWEEWIVKQUHWLBQCUIHVKQUJUKWKWDHVKWKWCMULLWDWCUMWCMUNUOUPURHV
      KMNUSSAVKBKLZWAAWHWGWMGWJBDCUTVAVKBMVBVCRVLVSVPTSAWHMBKLZVRGABQOVDZWNFAWH
      WOWNVIGBDVERVFZMBBDVGSVLVPVMTSAWNVOWPBVHRVLVMBVJS $.
  $}

  ${
    konigth.1 $e |- A e. _V $.
    konigth.2 $e |- S = U_ i e. A ( M ` i ) $.
    konigth.3 $e |- P = X_ i e. A ( N ` i ) $.
    ${
      $d A a e f i $.  $d D a e $.  $d E a i $.  $d M a f $.  $d N a e f $.
      $d P a e f $.  $d S a e f $.
      konigth.4 $e |- D = ( i e. A |-> ( a e. ( M ` i ) |->
        ( ( f ` a ) ` i ) ) ) $.
      konigth.5 $e |- E = ( i e. A |-> ( e ` i ) ) $.
      $( Lemma for ~ konigth .  (Contributed by Mario Carneiro,
         22-Feb-2013.) $)
      konigthlem $p |- ( A. i e. A ( M ` i ) ~< ( N ` i ) -> S ~< P ) $=
        ( cfv c0 wcel cvv cv csdm wbr wral wn wfo wex crn cdif wne wa cdom fvex
        wfn cmpt eqid fnmpti wceq mptex fvmpt2 fneq1d mpbiri fnrndomg domsdomtr
        mpan2 mpsyl sylan sdomdif syl ralimiaa difss ssexi ac6c5 wi cixp eldifi
        equid eleq1d syl5ibr ralimia jctil eqeltri sylibr syl6eleqr wrex foelrn
        elixp expcom ciun eleq2i eliun bitri nfra1 nfv nfan w3a ad2antrl fveq1d
        fveq1 sylan9eq eqcomd eqtr3d fnfvelrn adantl eqeltrd 3adant1 simp3l rsp
        simp1 eldifn syl6 sylc pm2.21dd 3expia rexlimd syl5bi ex com23 rexlimdv
        expd syl9r mt2i exlimiv 3syl nexdv 0dom 0sdom sylib ralimi neeq1i rgenw
        mpd mpan ixpexg ax-mp ac9 3bitr4i wb iunex domtri biimpri fodomr syl2an
        mp2an mtand notnotrd ) GUAZIQZUUGJQZUBUCZGAUDZDCUBUCZUUKUULUEZDCFUAZUFZ
        FUGZUUKUUOFUUKUUIUUGBQZUHZUIZRUJZGAUDUUGEUAZQZUUSSZGAUDZEUGUUOUEZUUJUUT
        GAUUGASZUUJUKUURUUIUBUCZUUTUVFUURUUHULUCZUUJUVGUUHTSUVFUUQUUHUNZUVHUUGI
        UMZUVFUVIKUUHUUGKUAZUUNQZQZUOZUUHUNKUUHUVMUVNUUGUVLUMZUVNUPZUQUVFUUHUUQ
        UVNUVFUVNTSUUQUVNURKUUHUVMUVJUSGAUVNTBOUTVEZVAVBZUUHTUUQVCVFUURUUHUUIVD
        VGUURUUIVHVIVJGAUUSELUUSUUIUUGJUMZUUIUURVKVLVMUVDUVEEUVDUUOUUNUUNURZFVQ
        UVDHCSZUUOUVTUEZVNUVDHGAUUIVOZCUVDHAUNZUUGHQZUUISZGAUDZUKHUWCSUVDUWGUWD
        UVCUWFGAUVCUWFUVFUVBUUISUVBUUIUURVPUVFUWEUVBUUIUVFUVBTSUWEUVBURZUUGUVAU
        MZGAUVBTHPUTVEZVRVSVTGAUVBHUWIPUQWAGAUUIHHGAUVBUOTPGAUVBLUSWBWGWCNWDUWA
        UUOHUVLURZKDWEZUVDUWBUUOUWAUWLKDCHUUNWFWHUVDUWKUWBKDUVDUWKUVKDSZUWBUVDU
        WKUWMUWBVNUWMUVKUUHSZGAWEZUVDUWKUKZUWBUWMUVKGAUUHWIZSUWODUWQUVKMWJGUVKA
        UUHWKWLUWPUWNUWBGAUVDUWKGUVCGAWMUWKGWNWOUWBGWNUWPUVFUWNUWBUVDUWKUVFUWNU
        KZUWBUVDUWKUWRWPZUVBUURSZUWBUWKUWRUWTUVDUWKUWRUKZUVBUVKUUQQZUURUXAUWEUV
        BUXBUVFUWHUWKUWNUWJWQUWKUWRUWEUVMUXBUUGHUVLWSUWRUXBUVMUVFUWNUXBUVKUVNQZ
        UVMUVFUVKUUQUVNUVQWRUWNUVMTSUXCUVMURUVOKUUHUVMTUVNUVPUTVEWTXAWTXBUWRUXB
        UURSZUWKUVFUVIUWNUXDUVRUUHUVKUUQXCVGXDXEXFUWSUVDUVFUWTUEZUVDUWKUWRXIUVD
        UWKUVFUWNXGUVDUVFUVCUXEUVCGAXHUVBUUIUURXJXKXLXMXNXTXOXPXQXRXSYAYLYBYCYD
        YEUUKRCUBUCZCDULUCZUUPUUMUUKUUIRUJZGAUDZUXFUUJUXHGAUUJRUUIUBUCZUXHRUUHU
        LUCUUJUXJUUHUVJYFRUUHUUIVDYMUUIUVSYGYHYICRUJUWCRUJUXFUXICUWCRNYJCCUWCTN
        UUITSZGAUDUWCTSUXKGAUVSYKGAUUITYNYOWBZYGGAUUILUVSYPYQWCUXGUUMCTSDTSUXGU
        UMYRUXLDUWQTMGAUUHLUVJYSWBCDTTYTUUDUUADCFUUBUUCUUEUUF $.
    $}
    $d A a e f i $.  $d A a e i j $.  $d M a b e f $.  $d N a e f $.
    $d P a e f $.  $d S a e f $.  $d b e f i $.
    $( Konig's Theorem.  If ` m ( i ) ~< n ( i ) ` for all ` i e. A ` , then
       ` sum_ i e. A m ( i ) ~< prod_ i e. A n ( i ) ` , where the sums and
       products stand in for disjoint union and infinite cartesian product.
       The version here is proven with regular unions rather than disjoint
       unions for convenience, but the version with disjoint unions is clearly
       a special case of this version.  The Axiom of Choice is needed for this
       proof, but it contains AC as a simple corollary (letting
       ` m ( i ) = (/) ` , this theorem says that an infinite cartesian product
       of nonempty sets is nonempty), so this is an AC equivalent.  Theorem
       11.26 of [TakeutiZaring] p. 107.  (Contributed by Mario Carneiro,
       22-Feb-2013.) $)
    konigth $p |- ( A. i e. A ( M ` i ) ~< ( N ` i ) -> S ~< P ) $=
      ( vb vf ve vj va cv cfv cmpt weq fveq2 cbvmptv fveq1d mpteq2i konigthlem
      ) ADAJDOZEPZUDJOZKOZPZPZQZQBCLKDMAMOZLOZPZQEFNGHIDAUJNUEUDNOZUGPZPZQJNUEU
      IUPJNRUDUHUOUFUNUGSUATUBMDAUMUDULPUKUDULSTUC $.
  $}

  $( The power set of an aleph dominates the successor aleph.  (The Generalized
     Continuum Hypothesis says they are equinumerous, see ~ gch3 or
     ~ gchaleph2 .)  (Contributed by NM, 27-Aug-2005.) $)
  alephsucpw $p |- ( aleph ` suc A ) ~<_ ~P ( aleph ` A ) $=
    ( csuc cale cfv cpw cdom wbr csdm wn alephsucpw2 cvv wcel fvex domtri mp2an
    wb pwex mpbir ) ABZCDZACDZEZFGZUBTHGIZAJTKLUBKLUCUDPSCMUAACMQTUBKKNOR $.

  $( The set exponentiation of 2 to the aleph-zero has cardinality of at least
     aleph-one.  (If we were to assume the Continuum Hypothesis, their
     cardinalities would be the same.)  (Contributed by NM, 7-Jul-2004.) $)
  aleph1 $p |- ( aleph ` 1o ) ~<_ ( 2o ^m ( aleph ` (/) ) ) $=
    ( c1o cale cfv c0 csuc c2o cmap co cdom df-1o fveq2i cpw wbr alephsucpw cen
    wb fvex pw2en domen2 ax-mp mpbi eqbrtri ) ABCDEZBCZFDBCZGHZIAUCBJKUDUELZIMZ
    UDUFIMZDNUGUFOMUHUIPUEDBQRUGUFUDSTUAUB $.

  ${
    $d x y z A $.
    $( An alternate way to express the value of the aleph function for nonzero
       arguments.  Theorem 64 of [Suppes] p. 229.  (Contributed by NM,
       15-Nov-2003.) $)
    alephval2 $p |- ( ( A e. On /\ (/) e. A ) -> ( aleph ` A ) =
                    |^| { x e. On | A. y e. A ( aleph ` y ) ~< x } ) $=
      ( vz con0 wcel wa cale cfv csdm wbr wral wceq ccrd com cdom wi cvv wss wb
      c0 cv crab wn alephordi ralrimiv alephon jctil breq2 ralbidv elrab sylibr
      cint adantr cardsdomelir alephcard eqcomi eleq2s wo omex vex entri3 mp2an
      carddom cardom sseq1i bitr3i wrex cardidm cardalephex alephord ancoms cen
      mpbii cardid sdomen1 ax-mp breq1 syl5rbbr sylan9bb breq1d sdomirr sdomen2
      fveq2 rspcv syl5bbr mtbiri nsyli com12 adantl sylbird exp31 rexlimdv syl5
      syl5bi wne ne0i onelon alephgeom ssdomg sylbi domtr sylan2 domnsym r19.2z
      syl expr ex syl2im rexnal syl6ib expimpd a1d com3r jaod mpi simprbi con3i
      syl56 ssrab2 oneqmini syl2anc ) CEFZUACFZGZCHIZBUBZHIZAUBZJKZBCLZAEUCZFZD
      UBZYLFZUDZDYFLZYFYLUMMZYCYMYDYCYFEFZYHYFJKZBCLZGYMYCUUAYSYCYTBCYGCUEUFCUG
      UHYKUUAAYFEYIYFMYJYTBCYIYFYHJUIUJUKULUNYEYPDYFYNYFFYNYFJKZYEYHYNJKZBCLZUD
      ZYPUUBYNYFNIZYFYNYFUOUUFYFCUPUQURYEOYNPKZYNOPKZUSZUUBUUEQZORFZYNRFZUUIUTD
      VAZOYNRRVBVCYEUUGUUJUUHYCUUGUUJQYDUUGOYNNIZSZYCUUJUUGONIZUUNSZUUOUUKUULUU
      QUUGTUTUUMOYNRRVDVCUUPOUUNVEVFVGUUOUUNYIHIZMZAEVHZYCUUJUUOUUNNIUUNMUUTYNV
      IAUUNVJVNYCUUSUUJAEYCYIEFZUUSUUJYCUVAGZUUSGUUBYICFZUUEUVBUVCUURYFJKZUUSUU
      BUVAYCUVCUVDTYICVKVLUUBUUNYFJKZUUSUVDUUNYNVMKZUVEUUBTYNUUMVOZUUNYNYFVPVQU
      UNUURYFJVRVSVTUUSUVCUUEQUVBUVCUUSUUEUVCUUDUURYNJKZUUSUUCUVHBYICYGYIMYHUUR
      YNJYGYIHWDWAWEUUSUVHUURUURJKZUURWBUVHUURUUNJKZUUSUVIUVFUVJUVHTUVGUUNYNUUR
      WCVQUUNUURUURJUIWFWGWHWIWJWKWLWMWNWOUNUUHUUBYEUUEUUHYEUUEQUUBUUHYCYDUUEYD
      UUHYCGZUUEYDUVKUUCUDZBCVHZUUEYDCUAWPZUVKUVLBCLZUVMCUAWQUVKUVLBCUUHYCYGCFZ
      UVLYCUVPGUUHYGEFZUVLCYGWRUUHUVQGYNYHPKZUVLUVQUUHOYHPKZUVRUVQOYHSZUVSYGWSY
      HEFUVTUVSQYGUGOYHEWTVQXAYNOYHXBXCYNYHXDXFXCXGUFUVNUVOUVMUVLBCXEXHXIUUCBCX
      JXKWIXLXMXNXOXPYOUUDYOYNEFUUDYKUUDAYNEYIYNMYJUUCBCYIYNYHJUIUJUKXQXRXSUFYL
      ESYMYQGYRQYKAEXTDYFYLYAVQYB $.
  $}

  ${
    $d x y w A $.
    dominfac.1 $e |- A e. _V $.
    $( A nonempty set that is a subset of its union is infinite.  This version
       is proved from ~ ax-ac .  See ~ dominf for a version proved from
       ~ ax-cc .  (Contributed by NM, 25-Mar-2007.) $)
    dominfac $p |- ( ( A =/= (/) /\ A C_ U. A ) -> _om ~<_ A ) $=
      ( vx vy vw cv c0 wne cuni wss wa com cdom wbr wi cvv eqid csdm wn wcel id
      wceq neeq1 unieq sseq12d anbi12d breq2 imbi12d cpw cin crab cmpt crdg wf1
      cres inf3lem6 vpwex f1dom cfn pwfi biimpi isfinite 3imtr3i wb omex domtri
      con3i mp2an vex 3imtr4i 3syl vtocl ) CFZGHZVMVMIZJZKZLVMMNZOAGHZAAIZJZKZL
      AMNZOCABVMAUBZVQWBVRWCWDVNVSVPWAVMAGUCWDVMAVOVTWDUAVMAUDUEUFVMALMUGUHVQLV
      MUIZDPEFVMUJDFJEVMUKULZGUMLUOZUNLWEMNZVRCDEAAWGWFWFQWGQBBUPLWEWGCUQZURWEL
      RNZSZVMLRNZSZWHVRWLWJVMUSTZWEUSTZWLWJWNWOVMUTVAVMVBWEVBVCVGLPTZWEPTWHWKVD
      VEWILWEPPVFVHWPVMPTVRWMVDVECVILVMPPVFVHVJVKVL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cardinal number arithmetic using Axiom of Choice
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.
    $( The countable union of countable sets is countable (indexed union
       version of ~ unictb ).  (Contributed by Mario Carneiro, 18-Jan-2014.) $)
    iunctb $p |- ( ( A ~<_ _om /\ A. x e. A B ~<_ _om ) ->
                 U_ x e. A B ~<_ _om ) $=
      ( com cdom wbr wral wa ciun cxp cmap wacn wcel cvv reldom brrelexi iunexg
      cv sylancl sylc csn eqid co simpl adantr ovex rgenw acncc syl6eleqr simpr
      acndom omex xpdom1g sylancr xpomen domentr ccrd ralimi syl2an con0 omelon
      cen cdm onenon ax-mp numacn mpisyl acndom2 iundomg domtr syl2anc ) BDEFZC
      DEFZABGZHZABCIZBDJZEFVQDEFZVPDEFVOABCDABARUACJIZVSUBVOVLABDCKUCZIZDLZMWAB
      LMVLVNUDZVOWANWBVOBNMZVTNMZABGWANMVLWDVNBDEOPZUEWEABDCKUFUGABVTNNQSUHUIBD
      WAUKTVLVNUJVOVRDVPLZMZVQWGMVOVQDDJZEFZWIDVBFVRVODNMVLWJULWCBDDNUMUNUOVQWI
      DUPSZVOVPNMZDUQVCMZWHVLWDCNMZABGWLVNWFVMWNABCDEOPURABCNNQUSDUTMWMVADVDVEV
      PNDVFVGVPVQDVHTVIWKVPVQDVJVK $.
  $}

  ${
    $d x A $.
    $( The countable union of countable sets is countable.  Theorem 6Q of
       [Enderton] p. 159.  See ~ iunctb for indexed union version.
       (Contributed by NM, 26-Mar-2006.) $)
    unictb $p |- ( ( A ~<_ _om /\ A. x e. A x ~<_ _om ) -> U. A ~<_ _om ) $=
      ( com cdom wbr cv wral wa cuni ciun uniiun iunctb syl5eqbr ) BCDEAFZCDEAB
      GHBIABNJCDABKABNLM $.
  $}

  ${
    $d x A $.  $d x B $.
    $( An exponentiation law for infinite cardinals.  Similar to Lemma 6.2 of
       [Jech] p. 43.  (Contributed by NM, 1-Oct-2004.)  (Proof shortened by
       Mario Carneiro, 30-Apr-2015.) $)
    infmap $p |- ( ( _om ~<_ A /\ B ~<_ A ) ->
                      ( A ^m B ) ~~ { x | ( x C_ A /\ x ~~ B ) } ) $=
      ( com cdom wbr cmap co ccrd cdm wcel cv wss cen cab cvv ovex numth3 ax-mp
      wa infmap2 mp3an3 ) DBEFCBEFBCGHZIJKZUCALZBMUECNFTAONFUCPKUDBCGQUCPRSABCU
      AUB $.
  $}

  $( The sum of two alephs is their maximum.  Equation 6.1 of [Jech] p. 42.
     (Contributed by NM, 29-Sep-2004.)  (Revised by Mario Carneiro,
     30-Apr-2015.) $)
  alephadd $p |- ( ( aleph ` A ) +c ( aleph ` B ) ) ~~
                 ( ( aleph ` A ) u. ( aleph ` B ) ) $=
    ( con0 wcel cale cfv ccda co cun cen wbr wn cvv wa wceq cdm ax-mp cxp com
    c0 ovex wfn alephfnon eleq2i notbii csn c1o 0ex cdaval mp2an xpundi 3eqtr2i
    0xp ndmfv oveqan12d adantr adantl uneq12d un0 syl6eq 3eqtr4a syl2anbr eqeng
    fndm mpsyl ex wss alephgeom cdom wi fvex ssdomg ccrd alephon onenon mp3an12
    infcda syl sylbi cdacomen entr sylancr uncom syl6breq pm2.61ii ) ACDZBCDZAE
    FZBEFZGHZWHWIIZJKZWFLZWGLZWLWJMDWMWNNWJWKOZWLWHWIGUAWMAEPZDZLZBWPDZLZWOWNWQ
    WFWPCAECUBWPCOUCCEVDQZUDUEWSWGWPCBXAUDUEWRWTNZTTGHZTWJWKXCTTUFZRTUGUFZRIZTX
    DXEIZRTTMDZXHXCXFOUHUHTTMMUIUJTXDXEUKXGUMULWRWTWHTWITGAEUNZBEUNZUOXBWKTTITX
    BWHTWITWRWHTOWTXIUPWTWITOWRXJUQURTUSUTVAVBWJWKMVCVEVFWFSWHVGZWLAVHXKSWHVIKZ
    WLWHMDXKXLVJAEVKSWHMVLQWHVMPZDZWIXMDZXLWLWHCDXNAVNWHVOQZWICDXOBVNWIVOQZWHWI
    VQVPVRVSWGSWIVGZWLBVHXRSWIVIKZWLWIMDXRXSVJBEVKSWIMVLQXSWJWIWHIZWKJXSWJWIWHG
    HZJKYAXTJKZWJXTJKWHWIVTXOXNXSYBXQXPWIWHVQVPWJYAXTWAWBWIWHWCWDVRVSWE $.

  $( The product of two alephs is their maximum.  Equation 6.1 of [Jech] p. 42.
     (Contributed by NM, 29-Sep-2004.)  (Revised by Mario Carneiro,
     30-Apr-2015.) $)
  alephmul $p |- ( ( A e. On /\ B e. On ) ->
  ( ( aleph ` A ) X. ( aleph ` B ) ) ~~ ( ( aleph ` A ) u. ( aleph ` B ) ) ) $=
    ( con0 wcel cale cfv com cdom wbr wa wss alephgeom cvv wi fvex ssdomg ax-mp
    sylbi alephon onenon ccrd cdm wne cxp cun cen jctil infn0 syl infxp syl2an
    c0 ) ACDZAEFZUAUBZDZGUNHIZJBEFZUODZURULUCZJUNURUDUNURUEUFIBCDZUMUQUPUMGUNKZ
    UQALUNMDVBUQNAEOGUNMPQRUNCDUPASUNTQUGVAUTUSVAGURKZUTBLVCGURHIZUTURMDVCVDNBE
    OGURMPQURUHUIRURCDUSBSURTQUGUNURUJUK $.

  $( An exponentiation law for alephs.  Lemma 6.1 of [Jech] p. 42.
     (Contributed by NM, 29-Sep-2004.)  (Revised by Mario Carneiro,
     30-Apr-2015.) $)
  alephexp1 $p |- ( ( ( A e. On /\ B e. On ) /\ A C_ B ) ->
  ( ( aleph ` A ) ^m ( aleph ` B ) ) ~~ ( 2o ^m ( aleph ` B ) ) ) $=
    ( con0 wcel wa wss cale cfv cmap cen wbr c2o com cdom cvv fvex sylib ssdomg
    co ax-mp cpw ccrd cdm alephon onenon mp1i simplr alephgeom mpsyl word ordom
    2onn ordelss mp2an simpll syl5ss alephord3 wi syl6bi imp csdm sdomdom domtr
    canth2 sylancl mappwen syl22anc wb pw2en enen2 ) ACDZBCDZEZABFZEZAGHZBGHZIS
    ZVQUAZJKZVRLVQISZJKZVOVQUBUCDZMVQNKZLVPNKZVPVSNKZVTVQCDWCVOBUDVQUEUFVQODZVO
    MVQFZWDBGPZVOVLWHVKVLVNUGBUHQMVQORUIVPODVOLVPFWEAGPVOLMVPMUJLMDLMFUKULMLUMU
    NVOVKMVPFVKVLVNUOAUHQUPLVPORUIVOVPVQNKZVQVSNKZWFVMVNWJVMVNVPVQFZWJABUQWGWLW
    JURWIVPVQORTUSUTVQVSVAKWKVQWIVDVQVSVBTVPVQVSVCVEVPVQVFVGVSWAJKVTWBVHVQWIVIV
    SWAVRVJTQ $.

  ${
    $d x A $.
    $( An alternate representation of a successor aleph.  Compare ~ alephsuc
       and ~ alephsuc2 .  Equality can be obtained by taking the ` card ` of
       the right-hand side then using ~ alephcard and ~ carden .  (Contributed
       by NM, 23-Oct-2004.) $)
    alephsuc3 $p |- ( A e. On ->
               ( aleph ` suc A ) ~~ { x e. On | x ~~ ( aleph ` A ) } ) $=
      ( con0 wcel cale cfv cen wbr crab cdif cdom csdm wceq ccrd alephon onenon
      ax-mp a1i com cvv cv csuc alephsuc2 alephcard cardval2 eqtr3i difeq12d wn
      cdm wa difrab wb bren2 rabbiia eqtr4i syl6req wss sucelon alephgeom bitri
      mp1i wi fvex ssdomg sylbi alephordilem1 infdif syl3anc eqbrtrd ensymd ) B
      CDZAUAZBEFZGHZACIZBUBZEFZVKVOVQVMJZVQGVKVRVLVMKHZACIZVLVMLHZACIZJZVOVKVQV
      TVMWBABUCVMWBMVKVMNFZVMWBBUDVMNUIZDZWDWBMVMCDWFBOVMPQAVMUEQUFRUGWCVSWAUHU
      JZACIVOVSWAACUKVNWGACVNWGULVLCDVLVMUMRUNUOUPVKVQWEDZSVQKHZVMVQLHVRVQGHVQC
      DWHVKVPOVQPVAVKSVQUQZWIVKVPCDWJBURVPUSUTVQTDWJWIVBVPEVCSVQTVDQVEBVFVQVMVG
      VHVIVJ $.

    $( An expression equinumerous to 2 to an aleph power.  The proof equates
       the two laws for cardinal exponentiation ~ alephexp1 (which works if the
       base is less than or equal to the exponent) and ~ infmap (which works if
       the exponent is less than or equal to the base).  They can be equated
       only when the base is equal to the exponent, and this is the result.
       (Contributed by NM, 23-Oct-2004.) $)
    alephexp2 $p |- ( A e. On -> ( 2o ^m ( aleph ` A ) ) ~~
          { x | ( x C_ ( aleph ` A ) /\ x ~~ ( aleph ` A ) ) } ) $=
      ( con0 wcel cale cfv cmap co cv wss cen wbr wa cab c2o com cdom cvv ax-mp
      sylancl alephgeom wi fvex ssdomg sylbi domrefg wb pm3.2 pm2.43i alephexp1
      infmap ssid enen1 syl mpbid ) BCDZBEFZUQGHZAIZUQJUSUQKLMANZKLZOUQGHZUTKLZ
      UPPUQQLZUQUQQLZVAUPPUQJZVDBUAUQRDZVFVDUBBEUCZPUQRUDSUEVGVEVHUQRUFSAUQUQUK
      TUPURVBKLZVAVCUGUPUPUPMZBBJVIUPVJUPUPUHUIBULBBUJTURVBUTUMUNUO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cofinality using Axiom of Choice
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A f x y $.  $d A f y z $.
    $( A successor aleph is regular.  Theorem 11.15 of [TakeutiZaring] p. 103.
       (Contributed by Mario Carneiro, 9-Mar-2013.) $)
    alephreg $p |- ( cf ` ( aleph ` suc A ) ) = ( aleph ` suc A ) $=
      ( vf vx vy vz con0 wcel cale cfv ccf wceq csdm wbr wa cdom cv wss syl2anc
      wral cvv csuc alephordilem1 cxp wf1 wrex wex alephon cff1 ax-mp ciun fvex
      wn sucex iunex wf ad2antrr simplr wb oneli ffvelrn onelon sylancr onsssuc
      sylan2 anassrs rexbidva eliun syl6bbr ancoms ralbidva dfss3 biimpa ssdomg
      f1f mpsyl simprl suceloni wlim alephislim limsuc sylbi syl ccrd alephcard
      iscard simprbi vtoclri alephsucdom syl5ibr sylbid expdimp ralrimiv iundom
      breq1 syl5 domtr expcom exlimdv mpi cen com alephgeom infxpen mpan xpdom1
      syl6 domentr sylsyld imp domnsym ex mt2d wo cfon onsseleq mpbii mp2an ori
      cfle c0 cf0 cdm alephfnon fndm eleq2i sucelon bitr4i ndmfv sylnbir fveq2d
      wfn 3eqtr4a pm2.61i ) AFGZAUAZHIZJIZYPKZYNYQYPGZULYRYNYSAHIZYPLMZAUBYNYSU
      UAULZYNYSNZYPYTOMZUUBUUCYPYQYTUCZOMZUUEYTOMZUUDUUCYQYPBPZUDZCPZDPZUUHIZQZ
      DYQUEZCYPSZNZBUFZUUFYPFGZUUQYOUGZCDYPBUHUIUUCUUPUUFBUUPUUCUUFUUPUUCNZYPDY
      QUULUAZUJZOMZUVBUUEOMZUUFUVBTGUUTYPUVBQZUVCDYQUVAYPJUKZUULUUKUUHUKUMUNUUT
      YQYPUUHUOZUUOUVEUUIUVGUUOUUCYQYPUUHVNUPZUUIUUOUUCUQUVGUUOUVEUVGUUOUUJUVBG
      ZCYPSUVEUVGUUNUVICYPUUJYPGUVGUUJFGZUUNUVIURZYPUUJUUSUSUVJUVGUVKUVJUVGNZUU
      NUUJUVAGZDYQUEUVIUVLUUMUVMDYQUVJUVGUUKYQGZUUMUVMURZUVGUVNNZUVJUULFGZUVOUV
      PUURUULYPGZUVQUUSYQYPUUKUUHUTZYPUULVAVBUUJUULVCVDVEVFDUUJYQUVAVGVHVIVDVJC
      YPUVBVKVHVLRYPUVBTVMVOUUTYNUVGUVDUUPYNYSVPUVHYNUVGNZYQTGUVAYTOMZDYQSUVDUV
      FUVTUWADYQYNUVGUVNUWAUVPUVRYNUWAUVSYNUVRUVAYPGZUWAYNYOFGZUVRUWBURZAVQUWCY
      PVRUWDYOVSYPUULVTWAWBUWBUWAYNUVAYPLMZEPZYPLMZUWEEUVAYPUWFUVAYPLWNYPWCIYPK
      ZUWGEYPSZYOWDUWHUURUWIEYPWEWFUIZWGUVAAWHWIWJWOWKWLDYQYTUVATWMVBRYPUVBUUEW
      PRWQWRWSYNYSUUGYNYTYTUCZYTWTMZYSUUEUWKOMZUUGYNXAYTQZUWLAXBYTFGUWNUWLAUGYT
      XCXDWAYNYSYQYTOMZUWMYSUWOYNYQYPLMZUWGUWPEYQYPUWFYQYPLWNUWJWGYQAWHWIYQYTYT
      AHUKXEXFUWMUWLUUGUUEUWKYTXGWQXHXIYPUUEYTWPRYPYTXJWBXKXLYSYRYQFGZUURYSYRXM
      ZYPXNUUSUWQUURNYQYPQUWRYPXSYQYPXOXPXQXRWBYNULZXTJIXTYQYPYAUWSYPXTJYNYOHYB
      ZGZYPXTKUXAUWCYNUWTFYOHFYKUWTFKYCFHYDUIYEAYFYGYOHYHYIZYJUXBYLYM $.
  $}

  ${
    $d A f w y z $.  $d A f x y $.  $d H x $.
    pwcfsdom.1 $e |- H = ( y e. ( cf ` ( aleph ` A ) ) |->
       ( har ` ( f ` y ) ) ) $.
    $( A corollary of Konig's Theorem ~ konigth .  Theorem 11.28 of
       [TakeutiZaring] p. 108.  (Contributed by Mario Carneiro,
       20-Mar-2013.) $)
    pwcfsdom $p |- ( aleph ` A ) ~<
       ( ( aleph ` A ) ^m ( cf ` ( aleph ` A ) ) ) $=
      ( vx con0 wcel cale cfv ccf csdm wbr c0 wceq cvv wa com c2o wss cmap csuc
      vz vw co cv wrex wlim w3o onzsl biimpi aleph0 fveq2i 3eqtr4i fveq2 fveq2d
      cfom 3eqtr4a cdom cpw cen fvex canth2 pw2en sdomentr mp2an alephon omelon
      alephgeom 2onn onelss mp2 sstr mpan sylbi mpsyl mapdom1 sdomdomtr sylancr
      ssdomg syl oveq2 breq2d syl5ibrcom syl5 alephreg rexlimivw wi wf wsmo w3a
      wral wex cfsmo cixp limelon ciun crn cab wfn fnrnfv unieqd dfiun2 syl6eqr
      cuni ffn ad2antrl fnfvelrn sylan sseq2 rspcev ex rexlimdva ralimdv adantl
      imp wb alephislim frn adantr coflim syl2an mpbird char ffvelrn oneli ccrd
      eqtr3d simprbi ax-mp elharval mpan2 3syl ralrimiva eqid eleq2i c1o syl6eq
      wn cmpt harcard iscard domrefg biimpri breq1 rspccv harcl fvmptg eqbrtrrd
      konigth alephlim eleq2d eliun alephcard cardsdomelir sylbir domnsym con2i
      ovex ontri1 sylibr alephord2i ontr2 syl2anr exp31 rexlimdv syl5bi sylan9r
      sylbid cbvmptv eqtri fmptd ss2ixp ixpconst adantrr syl2anc expcom 3adant2
      syl6sseq exlimiv mp2b a1i 3jaod mpd cdm alephfnon ndmfv wne 1n0 1on elexi
      fndm 0sdom mpbir id cf0 oveq12d 0ex map0e breq12d mpbiri sylnbir pm2.61i
      ) BGHZBIJZUXEUXEKJZUAUEZLMZUXDBNOZBFUFZUBZOZFGUGZBPHBUHQZUIZUXHUXDUXOFBUJ
      UKUXDUXIUXHUXMUXNUXIUXFUXEOZUXDUXHUXINIJZKJZUXQUXFUXERKJRUXRUXQUQUXQRKULU
      MULUNUXIUXEUXQKBNIUOZUPUXSURUXDUXHUXPUXEUXEUXEUAUEZLMZUXDUXESUXEUAUEZLMZU
      YBUXTUSMZUYAUXEUXEUTZLMUYEUYBVAMUYCUXEBIVBZVCUXEUYFVDUXEUYEUYBVEVFUXDSUXE
      USMZUYDUXEGHZUXDSUXETZUYGBVGZUXDRUXETZUYIBVISRTZUYKUYIRGHSRHUYLVHVJRSVKVL
      SRUXEVMVNVOSUXEGVTVPSUXEUXEVQWAUXEUYBUXTVRVSUXPUXGUXTUXELUXFUXEUXEUAWBWCW
      DZWEUXMUXPUXDUXHUXLUXPFGUXLUXKIJZKJUYNUXFUXEUXJWFUXLUXEUYNKBUXKIUOZUPUYOU
      RWGUYMWEUXNUXHWHZUXDUYHUXFUXECUFZWIZUYQWJZUCUFZUDUFZUYQJZTZUDUXFUGZUCUXEW
      LZWKZCWMUYPUYJUCUDUXECWNVUFUYPCUYRVUEUYPUYSUXNUYRVUEQZUXHUXNVUGQUXEFUXFUX
      JDJZWOZLMZVUIUXGUSMZUXHUXNUXDVUGVUJBPWPZUXDVUGQZFUXFUXJUYQJZWQZUXEVUILVUM
      UYQWRZXEZVUOUXEUYRVUQVUOOUXDVUEUYRVUQAUFZVUNOFUXFUGAWSZXEZVUOUYRUYQUXFWTZ
      VUQVUTOUXFUXEUYQXFZVVAVUPVUSFAUXFUYQXAXBWAFAUXFVUNUXJUYQVBZXCXDXGVUMVUQUX
      EOZUYTVURTZAVUPUGZUCUXEWLZVUGVVGUXDUYRVUEVVGUYRVUDVVFUCUXEUYRVUCVVFUDUXFU
      YRVUAUXFHZQZVUCVVFVVIVUBVUPHZVUCVVFUYRVVAVVHVVJVVBUXFVUAUYQXHXIVVEVUCAVUB
      VUPVURVUBUYTXJXKXIXLXMXNXPXOUXDUXEUHZVUPUXETZVVDVVGXQVUGUXDVVKBXRUKUYRVVL
      VUEUXFUXEUYQXSXTUCAUXEVUPYAYBYCYHUYRVUOVUILMZUXDVUEUYRVUNVUHLMZFUXFWLVVMU
      YRVVNFUXFUYRUXJUXFHZQZVVNVUNVUNYDJZLMZVVPVUNUXEHZVUNGHZVVRUXFUXEUXJUYQYEZ
      UXEVUNUYJYFVURVVQLMZAVVQWLZVVTVUNVVQHZVVRVVQYGJVVQOZVWCVUNUUAVWEVVQGHZVWC
      AVVQUUBYIYJVVTVUNVUNUSMZVWDVUNPHVWGVVCVUNPUUCYJVWDVVTVWGQVUNVUNYKUUDYLVWB
      VVRAVUNVVQVURVUNVVQLUUEUUFVPYMVVOVVNVVRXQUYRVVOVUHVVQVUNLVVOVWFVUHVVQOVUN
      UUGZAUXJVURUYQJZYDJZVVQUXFGDVURUXJOVWIVUNYDVURUXJUYQUOUPZEUUHYLWCXOYCYNUX
      FVUIVUOFUYQDUXEKVBZVUOYOVUIYOUUJWAXGUUIXIUXNUYRVUKVUEUXGPHUXNUYRQZVUIUXGT
      ZVUKUXEUXFUAUUSVWMUXFUXEDWIZVUHUXETZFUXFWLZVWNVWMFUXFVVQUXEDVWMVVOVVQUXEH
      ZUYRVVOVVSUXNVWRUYRVVOVVSVWAXLUXNVVSVUNABVURIJZWQZHZVWRUXNUXEVWTVUNABPUUK
      UULUXNUXDVXAVWRWHVULVXAVUNVWSHZABUGUXDVWRAVUNBVWSUUMUXDVXBVWRABUXDVURBHZV
      XBVWRVXBVVQVWSTZVWSUXEHZVWRUXDVXCQVXBVUNVWSLMZVXDVXBVUNVWSYGJZHVXFVXGVWSV
      UNVURUUNYPVUNVWSUUOUUPVXFVWSVVQHZYSZVXDVXHVXFVXHVWSVUNUSMZVXFYSVXHVWSGHZV
      XJVUNVWSYKYIVWSVUNUUQWAUURVWFVXKVXDVXIXQVWHVURVGVVQVWSUUTVFUVAWAUXDVXCVXE
      VURBUVBXPVWFUYHVXDVXEQVWRWHVWHUYJVVQVWSUXEUVCVFUVDUVEUVFUVGWAUVIUVHXPDAUX
      FVWJYTFUXFVVQYTEAFUXFVWJVVQVWKUVJUVKUVLVWOVWPFUXFUYHVWOVVOQVUHUXEHVWPUYJU
      XFUXEUXJDYEUXEVUHVKVPYNVWQVUIFUXFUXEWOUXGFUXFVUHUXEUVMFUXFUXEVWLUYFUVNUVS
      YMVUIUXGPVTVPUVOUXEVUIUXGVRUVPUVQUVRUVTUWAUWBUWCUWDUXDBIUWEZHZUXHVXLGBIGW
      TVXLGOUWFGIUWLYJYPVXMYSUXENOZUXHBIUWGVXNUXHNYQLMZVXOYQNUWHUWIYQYQGUWJUWKU
      WMUWNVXNUXENUXGYQLVXNUWOZVXNUXGNNUAUEZYQVXNUXENUXFNUAVXPVXNUXFNKJNUXENKUO
      UWPYRUWQNPHVXQYQOUWRNPUWSYJYRUWTUXAWAUXBUXC $.
  $}

  ${
    $d x y z A $.  $d x B $.
    cfpwsdom.1 $e |- B e. _V $.
    $( A corollary of Konig's Theorem ~ konigth .  Theorem 11.29 of
       [TakeutiZaring] p. 108.  (Contributed by Mario Carneiro,
       20-Mar-2013.) $)
    cfpwsdom $p |- ( 2o ~<_ B ->
        ( aleph ` A ) ~< ( cf ` ( card ` ( B ^m ( aleph ` A ) ) ) ) ) $=
      ( con0 wcel cdom wbr cale cfv cmap co ccf csdm cen wceq com cvv ax-mp c1o
      c0 vx vy vz c2o ccrd wi wa cxp ovex cardid ensymi cv wrex crn wn cpw fvex
      canth2 pw2en sdomentr mp2an mapdom1 sdomdomtr sylancr cfn ficard isfinite
      wb sdomdom sylbi sylbir wss alephgeom alephon ssdomg domtr syl2an domnsym
      syl expcom con2d cardidm cun wo iscard3 elun df-or 3bitri syl56 alephfnon
      mpbi wfn fvelrnb syl6ib char cmpt pwcfsdom id fveq2 oveq12d breq12d mpbii
      eqid rexlimivw syl6 imp ensdomtr enref mapen mapxpen mp3an sylancl xpdom2
      entri biimpi infxpen domentr csuc nsuceq0 dom0 nemtbir df-2o breq1i breq2
      syl5bb biimpcd adantld mtoi mapdom2 expl com12 mt2d domtri biimpri ex cdm
      nsyl2 1onn syl6eq fveq2d eleq2i ndmfv sylnbir wne elexi 0sdom mpbir oveq2
      fndm 1n0 map0e cardnn df-1o fveq2i 0elon cfsuc eqtri mpbiri a1d pm2.61i )
      ADEZUDBFGZAHIZBUVCJKZUEIZLIZMGZUFZUVAUVBUVGUVAUVBUGZUVFUVCFGZUVGUVIUVJUVD
      BUVCUVFUHZJKZMGZUVIUVDUVEUVFJKZMGZUVNUVLNGUVMUVIUVDUVENGUVEUVNMGZUVOUVEUV
      DUVDBUVCJUIZUJZUKUVAUVBUVPUVAUVBUAULZHIZUVEOZUADUMZUVPUVAUVBUVEHUNZEZUWBU
      VBUVCUVDMGZUVAUVEPEZUOZUWDUVBUVCUDUVCJKZMGZUWHUVDFGUWEUVCUVCUPZMGUWJUWHNG
      UWIUVCAHUQZURUVCUWKUSUVCUWJUWHUTVAUDBUVCVBUVCUWHUVDVCVDUVAUWFUWEUWFUVAUWE
      UOZUWFUVAUGUVDUVCFGZUWLUWFUVDPFGZPUVCFGZUWMUVAUWFUVDVEEZUWNUVDQEUWPUWFVHU
      VQUVDQVFRUWPUVDPMGUWNUVDVGUVDPVIVJVKUVAPUVCVLZUWOAVMZUVCDEZUWQUWOUFAVNZPU
      VCDVORVJUVDPUVCVPVQUVDUVCVRVSVTWAUVEUEIUVEOZUWGUWDUFZUVDWBUXAUVEPUWCWCEUW
      FUWDWDUXBUVEWEUVEPUWCWFUWFUWDWGWHWKWIHDWLZUWDUWBVHWJUADUVEHWMRWNUWAUVPUAD
      UWAUVTUVTUVTLIZJKZMGUVPUBUVSUCUBUXDUBULUCULIWOIWPZUXFXCWQUWAUVTUVEUXEUVNM
      UWAWRZUWAUVTUVEUXDUVFJUXGUVTUVELWSWTXAXBXDXEXFUVDUVEUVNXGVDUVNUVDUVFJKZUV
      LUVEUVDNGUVFUVFNGUVNUXHNGUVRUVFUVELUQZXHUVEUVDUVFUVFXIVABQEZUWSUVFQEZUXHU
      VLNGCUWTUXIBUVCUVFQDQXJXKXNUVDUVNUVLUTXLUVJUVIUVMUOZUVJUVAUVBUXLUVJUVAUGZ
      UVBUGUVLUVDFGZUXLUXMUVKUVCFGZUVKTOZBTOZUGZUOUXNUVBUVJUVKUVCUVCUHZFGUXSUVC
      NGZUXOUVAUVFUVCUVCUWKXMUVAUWSUWQUXTUWTUVAUWQUWRXOUVCXPVDUVKUXSUVCXQVQUVBU
      XRSXRZTFGZUYBUYATSXSUYAXTYAUVBUXQUYBUXPUXQUVBUYBUVBUYABFGUXQUYBUDUYABFYBY
      CBTUYAFYDYEYFYGYHUVKUVCBYIVQUVLUVDVRVSYJYKYLUVJUVGUOZUXKUVCQEUVJUYCVHUXIU
      WKUVFUVCQQYMVAYNYQYOUVAUOUVCTOZUVHUVAAHYPZEUYDUYEDAUXCUYEDOWJDHUUIRUUAAHU
      UBUUCUYDUVGUVBUYDUVGTSMGZUYFSTUUDUUJSSPYRUUEUUFUUGUYDUVCTUVFSMUYDWRUYDUVF
      SLIZSUYDUVESLUYDUVESUEIZSUYDUVDSUEUYDUVDBTJKZSUVCTBJUUHUXJUYISOCBQUUKRYSY
      TSPEUYHSOYRSUULRYSYTUYGTXRZLIZSSUYJLUUMUUNTDEUYKSOUUOTUUPRUUQYSXAUURUUSVS
      UUT $.
  $}

  $( From ~ canth2 , we know that ` ( aleph `` 0 ) < ( 2 ^ _om ) ` , but we
     cannot prove that ` ( 2 ^ _om ) = ( aleph `` 1 ) ` (this is the Continuum
     Hypothesis), nor can we prove that it is less than any bound whatsoever
     (i.e. the statement ` ( aleph `` A ) < ( 2 ^ _om ) ` is consistent for any
     ordinal ` A ` ).  However, we can prove that ` ( 2 ^ _om ) ` is not equal
     to ` ( aleph `` _om ) ` , nor ` ( aleph `` ( aleph `` _om ) ) ` , on
     cofinality grounds, because by Konig's Theorem ~ konigth (in the form of
     ~ cfpwsdom ), ` ( 2 ^ _om ) ` has uncountable cofinality, which eliminates
     limit alephs like ` ( aleph `` _om ) ` .  (The first limit aleph that is
     _not_ eliminated is ` ( aleph `` ( aleph `` 1 ) ) ` , which has cofinality
     ` ( aleph `` 1 ) ` .)  (Contributed by Mario Carneiro, 21-Mar-2013.) $)
  alephom $p |- ( card ` ( 2o ^m _om ) ) =/= ( aleph ` _om ) $=
    ( com csdm wbr wn c2o cmap ccrd cfv cale wne sdomirr wceq ccf cvv wcel cdom
    co c0 aleph0 ax-mp 2onn elexi domrefg cfpwsdom oveq2i fveq2i eqeq1i biimpri
    mp2b fveq2d wlim limom alephsing cfom eqtri syl6eq breq12d mpbii necon3bi
    a1i ) AABCZDEAFQZGHZAIHZJAKVAVCVDVCVDLZRIHZEVFFQZGHZMHZBCZVAENOEEPCVJEAUAUB
    ZENUCREVKUDUIVEVFAVIABVFALVESUTVEVIVDMHZAVEVHVDMVHVDLVEVHVCVDVGVBGVFAEFSUEU
    FUGUHUJVLAMHZAAUKVLVMLULAUMTUNUOUPUQURUST $.

  ${
    $d x y $.
    $( The beth function is strictly monotone.  This function is not strictly
       the beth function, but rather beth_A is the same as
       ` ( card `` ( R1 `` ( _om +o A ) ) ) ` , since conventionally we start
       counting at the first infinite level, and ignore the finite levels.
       (Contributed by Mario Carneiro, 6-Jun-2013.)  (Revised by Mario
       Carneiro, 2-Jun-2015.) $)
    smobeth $p |- Smo ( card o. R1 ) $=
      ( vy vx ccrd cr1 cdm con0 wfn crn wss wfun ax-mp r1fnon mpbi cep wcel cfv
      wf wa wb sylan ccom ccnv cima cv cen wbr wrex cab cardf2 ffun fnfun funco
      mp2an funfn cres rnco resss rnss frn sstri eqsstri df-f mpbir2an dmco wtr
      feq2i word wwe wral elpreima simplbi onelon simprbi adantr r1ord2 syl2anc
      imp ssnum sylanbrc rgen2 dftr5 mpbir cnvimass cvv dffn2 fdmi sseqtri wess
      epweon mp2 df-ord csdm r1sdom cardsdom2 mpbird wceq fvco2 sylancr 3eltr4d
      wi ex adantl issmo ) ABCDUAZDUBCEZUCZXDEZFXDQZXFFXDQXHXDXGGZXDHZFIXDJZXIC
      JZDJZXKAUDZBUDZUEUFAFUGBUHZFCQZXLBAUIZXPFCUJKDFGZXMLFDUKKCDULUMXDUNMXJCDH
      ZUOZHZFCDUPYBCHZFYACIYBYCICXTUQYACURKXQYCFIXRXPFCUSKUTVAXGFXDVBVCXGXFFXDC
      DVDZVFMXFVGXFVEZXFNVHZYEXNXFOZAXOVIBXFVIYGBAXFXOXOXFOZXNXOOZRZXNFOZXNDPZX
      EOZYGYHXOFOZYIYKYHYNXODPZXEOZXSYHYNYPRSLFXOXEDVJKZVKZXOXNVLTZYJYPYLYOIZYM
      YHYPYIYHYNYPYQVMVNZYHYNYIYTYRYNYIYTXNXOVOVQTYOYLVRVPZXSYGYKYMRSLFXNXEDVJK
      VSVTBAXFWAWBXFFIFNVHYFXFDEFDXEWCFWDDXSFWDDQLFDWEMWFWGWIXFFNWHWJXFWKVCYHYI
      XNXDPZXOXDPZOZWTYGYHYIUUEYJYLCPZYOCPZUUCUUDYJUUFUUGOZYLYOWLUFZYHYNYIUUIYR
      XOXNWMTYJYMYPUUHUUISUUBUUAYLYOWNVPWOYJXSYKUUCUUFWPLYSFCDXNWQWRYJXSYNUUDUU
      GWPLYHYNYIYRVNFCDXOWQWRWSXAXBYDXC $.
  $}

$( I decided to comment out the Card class for now.  We have too many
   definitions, and this one doesn't really buy us much. $)

$(
  @c Card @. @( Class of all cardinal numbers @)

  @( Extend class definition to include the class of all cardinal numbers. @)
  ccdn @a class Card @.

  @( Define the class of all cardinal numbers.  The notation "Card" is used
     in Exercise 5(G) of [JustWeese] p. 174.  It should not be confused with
     the lower-case "card" for the cardinal number function ~ df-card .  @)
  df-cardn @a |- Card = ( _om u. ran aleph ) @.

  @( Membership in the class of cardinal numbers. @)
  elcard @p |- ( A e. Card <-> ( card ` A ) = A ) @=
    ( ccdn wcel com cale crn cun ccrd cfv wceq df-cardn eleq2i iscard3 bitr4i )
    ABCADEFGZCAHIAJBOAKLAMN @.
    @( [31-Dec-2004] @) @( [23-Sep-2004] @)

  @( The cardinality of a set is a cardinal number. @)
  cardel @p |- ( card ` A ) e. Card @=
    ( ccrd cfv ccdn wcel wceq cardidm elcard mpbir ) ABCZDEJBCJFAGJHI @.
    @( [16-Jan-2005] @) @( [23-Sep-2004] @)

  @( A natural number is a cardinal number. @)
  nncard @p |- ( A e. _om -> A e. Card ) @=
    ( com wcel ccrd cfv wceq ccdn cardnn elcard sylibr ) ABCADEAFAGCAHAIJ @.
    @( [16-Jan-2005] @) @( [23-Sep-2004] @)

  @( An alternate definition of the class of all cardinal numbers. @)
  cardnum2 @p |- Card = { x | ( card ` x ) = x } @=
    ( ccdn com cale crn cun cv ccrd cfv wceq cab df-cardn wcel iscard3 bicomi
    abbi2i eqcomi eqtr4i ) BCDEFZAGZHITJZAKZLSUBUAASUATSMTNOPQR @.
    @( [25-Jan-2005] @) @( [23-Sep-2004] @)

  @( The class of cardinal numbers is a proper class.  Exercise 5(G)(b) of
     [JustWeese] p. 174. @)
  cardnprc @p |- -. Card e. _V @=
    ( vx ccdn cvv wcel cv ccrd cfv wceq cab cardprc cardnum2 eleq1i mtbir ) BCD
    AEZFGNHAIZCDAJBOCAKLM @.
    @( [25-Jan-2005] @) @( [23-Sep-2004] @)

  @( The class of transfinite cardinals (the range of the aleph function) is a
     proper class. @)
  alephprc2 @p |- -. ran aleph e. _V @=
    ( cale crn cvv wcel com cun ccdn cardnprc df-cardn eleq1i mtbi omex wa
    unexb biimpi mpan mto ) ABZCDZERFZCDZGCDUAHGTCIJKECDZSUALUBSMUAERNOPQ @.
    @( [19-Feb-2005] @) @( [23-Sep-2004] @)
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  ZFC Axioms with no distinct variable requirements
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  $( A lemma for proving conditionless ZFC axioms.  (Contributed by NM,
     1-Jan-2002.) $)
  nd1 $p |- ( A. x x = y -> -. A. x y e. z ) $=
    ( weq wal wel elirrv wsb stdpc4 nfnth elequ1 sbie sylib mto axc11 mtoi ) AB
    DAEBCFZAEQBEZRCCFZCGZRQBCHSQBCIQSBCSBTJBCCKLMNQABOP $.

  $( A lemma for proving conditionless ZFC axioms.  (Contributed by NM,
     1-Jan-2002.) $)
  nd2 $p |- ( A. x x = y -> -. A. x z e. y ) $=
    ( weq wal wel elirrv wsb stdpc4 nfnth elequ2 sbie sylib mto axc11 mtoi ) AB
    DAECBFZAEQBEZRCCFZCGZRQBCHSQBCIQSBCSBTJBCCKLMNQABOP $.

  $( A lemma for proving conditionless ZFC axioms.  (Contributed by NM,
     2-Jan-2002.) $)
  nd3 $p |- ( A. x x = y -> -. A. z x e. y ) $=
    ( weq wal wel wn elirrv elequ2 mtbii sps sp nsyl ) ABDZAEABFZOCENOGANAAFOAH
    ABAIJKOCLM $.

  $( A lemma for proving conditionless ZFC axioms.  (Contributed by NM,
     2-Jan-2002.) $)
  nd4 $p |- ( A. x x = y -> -. A. z y e. x ) $=
    ( wel wal wn nd3 aecoms ) BADCEFBABACGH $.

  ${
    $d x w $.  $d y w $.  $d z w $.
    $( A version of the Axiom of Extensionality with no distinct variable
       conditions.  (Contributed by NM, 14-Aug-2003.) $)
    axextnd $p |- E. x ( ( x e. y <-> x e. z ) -> y = z ) $=
      ( vw wel wb weq wal wex wi wn nfnae wnfc nfcvf nfcrd elequ1 syl6 ax6e ax7
      cv wa nfan adantr adantl nfbid bibi12d a1i cbvald axext3 syl6bir 19.8a ex
      aleximi mpi a1d equcomi pm2.61ii 19.35ri ) ABEZACEZFZBCGZAABGZAHZACGZAHZV
      AAHZVBAIZJZVDKZVFKZVIVJVKUAZVGVBVHVLVGDBEZDCEZFZDHVBVLVOVADAVJVKAABALACAL
      UBVLVMVNAVLADBTZVJAVPMVKABNUCOVLADCTZVKAVQMVJACNUDOUEDAGZVOVAFJVLVRVMUSVN
      UTDABPDACPUFUGUHBCDUIUJVBAUKQULVDVHVGVDVEAIVHACRVCVEVBAABCSUMUNUOVFVHVGVF
      VCAIVHABRVEVCVBAVEVCCBGVBACBSCBUPQUMUNUOUQUR $.
  $}

  ${
    $d x z w $.  $d x y w $.  $d w ph $.
    $( Lemma for the Axiom of Replacement with no distinct variable conditions.
       (Contributed by NM, 2-Jan-2002.) $)
    axrepndlem1 $p |- ( -. A. y y = z -> E. x ( E. y A. z ( ph -> z = y ) ->
                 A. z ( z e. x <-> E. x ( x e. y /\ A. y ph ) ) ) ) $=
      ( vw weq wal wn wi wex wel wa wb nfnae a1i cv imbi12d cbvald exbid adantl
      wsb axrep2 wnf nfs1v nfcvd nfcvf2 nfeqd nfimd sbequ12r equequ1 nfvd nfcrd
      nfald nfand nfexd nfbid elequ1 nfeqf2 nfan1 albid anbi2d bibi12d ex mpbii
      exbidv ) CDFCGHZADEUAZECFZIZEGZCJZEBKZBCKZVGCGZLZBJZMZEGZIZBJADCFZIZDGZCJ
      ZDBKZVMACGZLZBJZMZDGZIZBJVGBCEUBVFVSWJBCDBNZVFVKWCVRWIVFVJWBCCDCNZVFVIWAE
      DCDDNZVFVGVHDVGDUCVFADEUDOZVFDEPZCPZVFDWOUECDUFZUGUHEDFZVIWAMIVFWRVGAVHVT
      AEDUIZEDCUJQORSVFVQWHEDWMVFVLVPDVFVLDUKVFVODBWKVFVMVNDVFDBWPWQULVFVGDCWLW
      NUMUNUOUPVFWRVQWHMVFWRLZVLWDVPWGWRVLWDMVFEDBUQTWTVOWFBWTVNWEVMWTVGACVFWRC
      WLCDEURUSWRVGAMVFWSTUTVAVEVBVCRQSVD $.
  $}

  ${
    $d x w $.  $d y w $.  $d z w $.  $d w ph $.
    $( Lemma for the Axiom of Replacement with no distinct variable conditions.
       (Contributed by NM, 2-Jan-2002.)  (Proof shortened by Mario Carneiro,
       6-Dec-2016.) $)
    axrepndlem2 $p |- ( ( ( -. A. x x = y /\ -. A. x x = z ) /\ -. A. y y = z )
                 -> E. x ( E. y A. z ( ph -> z = y ) ->
                     A. z ( z e. x <-> E. x ( x e. y /\ A. y ph ) ) ) ) $=
      ( vw weq wal wn wa wi wex wel wb nfnae nfan cv wnfc adantl adantr nfeqd
      wsb axrepndlem1 wnf nfs1v nfcvf nfimd nfald nfexd nfcvd nfeld nfand nfbid
      a1i nfv nfcvf2 nfan1 sbequ12r imbi1d albid exbid elequ2 elequ1 anbi12d ex
      cbvexd bibi12d imbi12d syl5ib imp ) BCFBGHZBDFBGHZIZCDFCGHZADCFZJZDGZCKZD
      BLZBCLZACGZIZBKZMZDGZJZBKZVMABEUAZVNJZDGZCKZDELZECLZWGCGZIZEKZMZDGZJZEKVL
      WFWGECDUBVLWRWEEBVJVKBBCBNBDBNOZVLWJWQBVLWIBCVJVKCBCCNBDCNOZVLWHBDVJVKDBC
      DNBDDNOZVLWGVNBWGBUCVLABEUDUMZVLBDPZCPZVKBXCQVJBDUERZVJBXDQVKBCUESZTUFUGU
      HVLWPBDXAVLWKWOBVLBXCEPZXEVLBXGUIZUJVLWNBEVLEUNVLWLWMBVLBXGXDXHXFUJVLWGBC
      WTXBUGUKZUHULUGUFVLEBFZWRWEMVLXJIZWJVQWQWDXKWIVPCVLXJCWTVLCXGBPZVLCXGUIVJ
      CXLQVKBCUOSTUPZXKWHVODVLXJDXAVLDXGXLVLDXGUIVKDXLQVJBDUORTUPZXJWHVOMVLXJWG
      AVNAEBUQZURRUSUTXKWPWCDXNXKWKVRWOWBXJWKVRMVLEBDVARVLWOWBMXJVLWNWAEBWSXIVL
      XJWNWAMXKWLVSWMVTXJWLVSMVLEBCVBRXKWGACXMXJWGAMVLXORUSVCVDVESVFUSVGVDVEVHV
      I $.
  $}

  $( A version of the Axiom of Replacement with no distinct variable
     conditions.  (Contributed by NM, 2-Jan-2002.) $)
  axrepnd $p |- E. x ( E. y A. z ( ph -> z = y ) ->
               A. z ( A. y z e. x <-> E. x ( A. z x e. y /\ A. y ph ) ) ) $=
    ( weq wal wi wex wa wn nfnae nfan cv wnfc nfcvf2 nfae intnanrd nexd 2falsed
    aecoms wb axrepndlem2 nfcvf adantl ad2antrr nfeld nf5rd sp impbid1 ad2antlr
    wel anbi1d exbid bibi12d albid imbi2d mpbid exp31 nd2 nd3 a1d 19.8a syl nd4
    alrimi nd1 pm2.61iii ) BCEBFZBDEBFZCDECFZADCEGDFCHZDBUKZCFZBCUKZDFZACFZIZBH
    ZUAZDFZGZBHZVHJZVIJZVJJZWBWCWDIZWEIZVKVLVNVPIZBHZUAZDFZGZBHWBABCDUBWGWLWABW
    FWEBWCWDBBCBKBDBKLCDBKLZWGWKVTVKWGWJVSDWFWEDWCWDDBCDKBDDKLCDDKLWGVLVMWIVRWG
    VLVMWGVLCWGCDMZBMZWECWNNWFCDUCUDWCCWONWDWEBCOUEUFUGVLCUHUIWGWHVQBWMWGVNVOVP
    WGVNVOWGVNDWGDWOCMZWDDWONWCWEBDOUJWEDWPNWFCDOUDUFUGVNDUHUIULUMUNUOUPUMUQURV
    HWAWBVHVTVKVHVSDBCDPVHVMVRVMJCBCBDUSTVHVQBBCBPVHVOVPBCDUTQRSVEVAWABVBZVCVIW
    AWBVIVTVKVIVSDBDDPVIVMVRBDCVDVIVQBBDBPVIVOVPVOJZDBDBCVFTQRSVEVAWQVCVJWAWBVJ
    VTVKVJVSDCDDPVJVMVRCDBVFVJVQBCDBPVJVOVPWRDCDCBUSTQRSVEVAWQVCVG $.

  ${
    $d x y w $.  $d x z w $.
    $( Lemma for the Axiom of Union with no distinct variable conditions.
       (Contributed by NM, 2-Jan-2002.) $)
    axunndlem1 $p |- E. x A. y ( E. x ( y e. x /\ x e. z ) -> y e. x ) $=
      ( vw weq wal wel wa wi wn cv en2lp elequ2 anbi2d mtbii nexdv nfnae exbidv
      wex sps pm2.21d axc4i 19.8a syl zfun nfcvf nfcrd nfand nfexd nfimd elequ1
      nfvd wb anbi1d imbi12d a1i cbvald mpbii pm2.61i ) BCEZBFZBAGZACGZHZASZVBI
      ZBFZASZVAVGVHUTVFBVAVEVBVAVDAUTVDJBUTVBABGZHVDBKAKLUTVIVCVBBCAMNOTPUAUBVG
      AUCUDVAJZDAGZVCHZASZVKIZDFZASVHADCUEVJVOVGAVJVNVFDBBCBQVJVMVKBVJVLBABCAQV
      JVKVCBVJVKBULZVJBACKBCUFUGUHUIVPUJDBEZVNVFUMIVJVQVMVEVKVBVQVLVDAVQVKVBVCD
      BAUKZUNRVRUOUPUQRURUS $.
  $}

  ${
    $d x w $.  $d y w $.  $d z w $.
    $( A version of the Axiom of Union with no distinct variable conditions.
       (Contributed by NM, 2-Jan-2002.) $)
    axunnd $p |- E. x A. y ( E. x ( y e. x /\ x e. z ) -> y e. x ) $=
      ( vw weq wal wel wa wex wi wn nfnae nfan cv wnfc nfcvf adantr nfcvd nfae
      wb axunndlem1 nfv nfeld adantl nfand nfexd nfimd nfald nfcvf2 nfeqd nfan1
      elequ2 elequ1 anbi12d a1i cbvexd imbi12d albid ex mpbii elirrv mtbiri sps
      intnanrd nexd pm2.21d alrimi 19.8a syl intnand pm2.61ii ) ABEZAFZACEZAFZB
      AGZACGZHZAIZVPJZBFZAIZVMKZVOKZWBWCWDHZBDGZDCGZHZDIZWFJZBFZDIWBDBCUAWEWKWA
      DAWCWDAABALACALMZWEWJABWCWDBABBLACBLMZWEWIWFAWEWHADWEDUBWEWFWGAWEABNZDNZW
      CAWNOWDABPQWEAWORZUCZWEAWOCNZWPWDAWROWCACPUDUCUEZUFWQUGUHWEDAEZWKWATWEWTH
      ZWJVTBWEWTBWMWEBWOANZWEBWORWCBXBOWDABUIQUJUKXAWIVSWFVPWEWIVSTWTWEWHVRDAWL
      WSWTWHVRTJWEWTWFVPWGVQDABULZDACUMUNUOUPQWTWFVPTWEXCUDUQURUSUPUTUSVMWAWBVM
      VTBABBSVMVSVPVMVRAABASVLVRKZAVLVPVQVLVPBBGBVAABBULVBVDVCVEVFVGWAAVHZVIVOW
      AWBVOVTBACBSVOVSVPVOVRAACASVNXDAVNVQVPVNVQCCGCVAACCUMVBVJVCVEVFVGXEVIVK
      $.
  $}

  $( Lemma for the Axiom of Power Sets with no distinct variable conditions.
     (Contributed by NM, 4-Jan-2002.) $)
  axpowndlem1 $p |- ( A. x x = y -> ( -. x = y ->
             E. x A. y ( A. x ( E. z x e. y -> A. y x e. z ) -> y e. x ) ) ) $=
    ( weq wn wel wex wal wi pm2.24 sps ) ABDZLEABFCGACFBHIAHBAFIBHAGZIALMJK $.

  ${
    $d x w $.  $d z y w $.
    $( Lemma for the Axiom of Power Sets with no distinct variable conditions.
       Revised to remove a redundant antecedent from the consequence.
       (Contributed by NM, 4-Jan-2002.)  (Proof shortened by Mario Carneiro,
       6-Dec-2016.)  (Revised and shortened by Wolf Lammen, 9-Jun-2019.) $)
    axpowndlem2 $p |- ( -. A. x x = y -> ( -. A. x x = z ->
         E. x A. y ( A. x ( E. z x e. y -> A. y x e. z ) -> y e. x ) ) ) $=
      ( vw weq wal wel wex wi wa nfnae cv nfeld adantr nfald adantl wb nfan1 ex
      wnf wn zfpow 19.8a imim12i alimi imim1i eximii nfan nfv nfcvd nfcvf nfexd
      sp nfimd nfeqf2 naecoms elequ1 exbid adantll albid adantlr imbi12d cbvald
      elequ2 cbvexd mpbii ) ABEAFUAZACEAFUAZABGZCHZACGZBFZIZAFZBAGZIZBFZAHZVGVH
      JZDBGZCHZDCGZBFZIZDFZBDGZIZBFZDHVRVTWBIZDFZWFIZBFWHDDBCUBWKWGBWEWJWFWDWID
      VTWAWCWBVTCUCWBBUMUDUEUFUEUGVSWHVQDAVGVHAABAKACAKUHZVSWGABVGVHBABBKZACBKZ
      UHZVSWEWFAVSWDADVSDUIVSWAWCAVGWAATVHVGVTACABCKVGADLZBLZVGAWPUJZABUKZMULNV
      HWCATVGVHWBABWNVHAWPCLVHAWPUJACUKMOPUNZOVGWFATVHVGAWQWPWSWRMNUNOVSDAEZWHV
      QQVSXAJZWGVPBVSXABWOVGXABTZVHXCBABADUOUPZNRXBWEVNWFVOVSWEVNQXAVSWDVMDAWLW
      TVSXAWDVMQXBWAVJWCVLVHXAWAVJQVGVHXAJVTVICVHXACACCKXACTCACADUOUPRXAVTVIQVH
      DABUQPURUSVGXAWCVLQVHVGXAJWBVKBVGXABWMXDRXAWBVKQVGDACUQPUTVAVBSVCNXAWFVOQ
      VSDABVDPVBUTSVEVFS $.
  $}

  ${
    $d x w $.  $d y z w $.
    $( Lemma for the Axiom of Power Sets with no distinct variable conditions.
       (Contributed by NM, 4-Jan-2002.)  (Revised by Mario Carneiro,
       10-Dec-2016.)  (Proof shortened by Wolf Lammen, 10-Jun-2019.) $)
    axpowndlem3 $p |- ( -. x = y ->
               E. x A. y ( A. x ( E. z x e. y -> A. y x e. z ) -> y e. x ) ) $=
      ( vw weq wn wal wel wex wi cv c0 wceq wcel nfnae nfeld adantl exbid nfae
      wb sp con3i csn p0ex eleq2 imbi2d albidv spcev 0ex snid eleq1 mpbiri neq0
      mpg con1bii imbi1i albii exbii mpbir nfcvf2 nfcvd nfexd nfnd nfimd nfeqf2
      wa nfan1 elequ2 notbid elequ1 imbi12d cbvald mpbii axc11r 3imtr3g pm2.21d
      ex alnex nd3 jad spsd imim1d alimd eximd syl5com axpowndlem2 pm2.61d syl
      ) ABEZFWIAGZFZABHZCIZACHBGZJZAGZBAHZJZBGZAIZWJWIWIAUAUBWKACEAGZWTWKWLAIZF
      ZWQJZBGZAIZXAWTWKADHZAIZFZDAHZJZDGZAIZXFXMDKZLMZXJJZDGZAIZXOXNLUCZNZJZXRD
      XQYADGAXSUDAKZXSMZXPYADYCXJXTXOYBXSXNUEUFUGUHXOXTLXSNLUIUJXNLXSUKULUNXLXQ
      AXKXPDXIXOXJXOXHAXNUMUOUPUQURUSWKXLXEAABAOZWKXKXDDBABBOWKXIXJBWKXHBWKXGBA
      YDWKBYBXNABUTZWKBXNVAZPVBVCWKBXNYBYFYEPVDWKDBEZXKXDTWKYGVFZXIXCXJWQYHXHXB
      YHXGWLAWKYGAYDABDVEVGYGXGWLTWKDBAVHQRVIYGXJWQTWKDBAVJQVKVQVLRVMXAXEWSAACA
      SXAXDWRBACBSXAWPXCWQXAWOXCAXAWMWNXCXAWLFZCGYIAGWMFXCYICAVNWLCVRWLAVRVOXAW
      NXCACBVSVPVTWAWBWCWDWEABCWFWGWH $.
  $}

  ${
    $d x w $.  $d y w $.  $d z w $.
    $( Lemma for the Axiom of Power Sets with no distinct variable conditions.
       (Contributed by NM, 4-Jan-2002.)  (Proof shortened by Mario Carneiro,
       10-Dec-2016.) $)
    axpowndlem4 $p |- ( -. A. y y = x -> ( -. A. y y = z -> ( -. x = y
      -> E. x A. y ( A. x ( E. z x e. y -> A. y x e. z ) -> y e. x ) ) ) ) $=
      ( vw weq wal wn wel wi nfnae nfan cv wnfc adantr nfcvd nfeqd nfeld adantl
      wex wb axpowndlem3 ax-gen nfcvf nfnd nfv nfexd nfald nfimd equequ2 notbid
      wa nfcvf2 nfan1 elequ2 exbid biidd cbvald imbi12d albid elequ1 ex 19.21bi
      a1i mpbii ) BAEBFGZBCEBFGZABEZGZABHZCSZACHZBFZIZAFZBAHZIZBFZASZIZVEVFUKZV
      SBVTADEZGZADHZCSZVKDFZIZAFZDAHZIZDFZASZIZDFVSBFWLDADCUAUBVTWLVSDBVEVFBBAB
      JBCBJKZVTWBWKBVTWABVTBALZDLZVEBWNMVFBAUCNZVTBWOOZPUDVTWJBAVEVFABAAJBCAJKZ
      VTWIBDVTDUEZVTWGWHBVTWFBAWRVTWDWEBVTWCBCVEVFCBACJBCCJKZVTBWNWOWPWQQUFVTVK
      BDWSVTBWNCLZWPVFBXAMVEBCUCRQZUGUHUGVTBWOWNWQWPQUHZUGUFUHVTDBEZWLVSTVTXDUK
      ZWBVHWKVRXDWBVHTVTXDWAVGDBAUIUJRVTWKVRTXDVTWJVQAWRVTWIVPDBWMXCVTXDWIVPTXE
      WGVNWHVOXEWFVMAVTXDAWRVTAWOBLZVTAWOOVEAXFMVFBAULNPUMXEWDVJWEVLXEWCVICVTXD
      CWTVTCWOXFVTCWOOVFCXFMVEBCULRPUMXDWCVITVTDBAUNRUOVTWEVLTXDVTVKVKDBWMXBXDV
      KVKTIVTXDVKUPVCUQNURUSXDWHVOTVTDBAUTRURVAUQUONURVAUQVDVBVA $.
  $}

  ${
    $d x w $.  $d y w $.
    $( A version of the Axiom of Power Sets with no distinct variable
       conditions.  (Contributed by NM, 4-Jan-2002.) $)
    axpownd $p |- ( -. x = y ->
               E. x A. y ( A. x ( E. z x e. y -> A. y x e. z ) -> y e. x ) ) $=
      ( vw weq wal wn wel wex wi axpowndlem4 axpowndlem1 aecoms a1d wa cv 19.8a
      wb syl alnex nfnae nfae nfan el nfcvf2 nfcvd nfeld elequ2 a1i mpbii df-ex
      cbvexd sylib adantr biidd dral1 3bitr3g nd2 mtt bitrd dral2 mtbid pm2.21d
      adantl alrimi ex pm2.61i pm2.61ii ) BAEBFBCEBFZABEZGZABHZCIZACHBFZJZAFZBA
      HZJZBFZAIZJZABCKWAABABCLZMVJAFZVIWAJWCWAVIWBNWCGZVIWAWDVIOZVTVKWEVSVTWEVR
      BWDVIBABBUAZBCBUBUCWEVPVQWEVLBIZGZAFZVPWDWIGZVIWDWGAIZWJWDWGWKWDADHZDIWGA
      DUDWDWLVLDBWFWDBAPDPZABUEWDBWMUFUGDBEWLVLRJWDDBAUHUIULUJWGAQSWGAUKUMUNVIW
      IVPRWDWHVOBCAVIWHVMGZVOVIVLGZBFWOCFWHWNWOWOBCVIWOUOUPVLBTVLCTUQVIVNGWNVOR
      BCAURVNVMUSSUTVAVDVBVCVEVSAQSNVFVGVH $.
  $}

$(
  @{
    @d x z @.  @d y z @.
    axpowndNEWlem1 @p |- ( A. x x = y ->
        ( ( A. x x = y -> E. z A. x ( E. z z e. y -> x e. z ) )
         -> E. x A. y ( A. x ( E. z x e. y -> A. y x e. z ) -> y e. x ) ) ) @=
      ( weq wal wel wex wi cv csn c0 wceq wn wcel wa en2lp vex snid biantru
      mtbir snnzOLD a1bi mtbi neq0 imbi1i albii bicomi snex eqeq1 notbid eleq1
    imbi12d spcv sylbi mto hbae wb elequ2 sps exbidv imbi1d albidh mtbii nexdv
     pm2.21d a2i com12 ) ABDZAEZCBFZCGZACFZHZAEZCGZHVIABFCGVLBEHAEBAFHBEAGZVIVO
      VPVIVOVPVIVNCVICAFZCGZVLHZAEZVNVTCIZJZKLZMZWBWANZHZWEWFWEWEWAWBNZOWBWAPWG
      WEWACQZRSTWDWEWAWHUAUBUCVTAIZKLZMZVLHZAEZWFWMVTWLVSAWKVRVLCWIUDUEUFUGWLWF
      AWBWAUHWIWBLZWKWDVLWEWNWJWCWIWBKUIUJWIWBWAUKULUMUNUOVIVSVMAABAUPVIVRVKVLV
      IVQVJCVHVQVJUQAABCURUSUTVAVBVCVDVEVFVG @.
  @}

  @{
    @d x w @.  @d y w @.
   axpowndNEW @p |- ( ( A. x x = y -> E. z A. x ( E. z z e. y -> x e. z ) ) ->
               E. x A. y ( A. x ( E. z x e. y -> A. y x e. z ) -> y e. x ) ) @=
?@.
  @}
$)

  $( Lemma for the Axiom of Regularity with no distinct variable conditions.
     (Contributed by NM, 3-Jan-2002.) $)
  axregndlem1 $p |- ( A. x x = z -> ( x e. y ->
               E. x ( x e. y /\ A. z ( z e. x -> -. z e. y ) ) ) ) $=
    ( wel wex weq wal wn wi wa 19.8a nfae elirrv elequ1 mtbii sps alrimi anim2i
    pm2.21d expcom eximd syl5 ) ABDZUCAEACFZAGZUCCADZCBDHZIZCGZJZAEUCAKUEUCUJAA
    CALUCUEUJUEUIUCUEUHCACCLUEUFUGUDUFHAUDAADUFAMACANOPSQRTUAUB $.

  ${
    $d x w $.  $d z y w $.
    $( Lemma for the Axiom of Regularity with no distinct variable conditions.
       (Contributed by NM, 3-Jan-2002.)  (Proof shortened by Mario Carneiro,
       10-Dec-2016.) $)
    axregndlem2 $p |- ( x e. y ->
                 E. x ( x e. y /\ A. z ( z e. x -> -. z e. y ) ) ) $=
      ( vw weq wal wel wn wi wa wex nfnae nfan cv nfcvd wnfc nfcvf nfeld wb ex
      axreg2 ax-gen adantr nfv adantl nfnd nfimd nfald nfand nfexd simpr eleq1d
      nfcvf2 nfeqd nfan1 eleq2d imbi1d albid anbi12d cbvexd cbvald mpbii elirrv
      imbi12d 19.21bi elequ2 mtbii sps pm2.21d axregndlem1 pm2.61ii ) ABEZAFZAC
      EAFZABGZVOCAGZCBGZHZIZCFZJZAKZIZVMHZVNHZWCWDWEJZWCAWFDBGZWGCDGZVRIZCFZJZD
      KZIZDFWCAFWMDDBCUAUBWFWMWCDAWDWEAABALACALMZWFWGWLAWFADNZBNZWFAWOOZWDAWPPW
      EABQUCZRZWFWKADWFDUDWFWGWJAWSWFWIACWDWECABCLACCLMZWFWHVRAWFACNZWOWEAXAPWD
      ACQUEZWQRWFVQAWFAXAWPXBWRRUFUGUHUIZUJUGWFDAEZWMWCSWFXDJZWGVOWLWBXEWOANZWP
      WFXDUKZULZWFWLWBSXDWFWKWADAWNXCWFXDWKWASXEWGVOWJVTXHXEWIVSCWFXDCWTWFCWOXF
      WFCWOOWECXFPWDACUMUEUNUOXEWHVPVRXEWOXFXAXGUPUQURUSTUTUCVDTVAVBVETVMVOWBVL
      VOHAVLAAGVOAVCABAVFVGVHVIABCVJVK $.
  $}

  ${
    $d x w $.  $d y w $.  $d z w $.
    $( A version of the Axiom of Regularity with no distinct variable
       conditions.  (Contributed by NM, 3-Jan-2002.)  (Proof shortened by Wolf
       Lammen, 18-Aug-2019.) $)
    axregnd $p |- ( x e. y ->
                 E. x ( x e. y /\ A. z ( z e. x -> -. z e. y ) ) ) $=
      ( vw weq wal wel wn wi wa wex axregndlem2 nfnae wnf cv nfcvf nfcrd adantr
      nfan elequ1 adantl nfimd wb notbid imbi12d a1i cbvald anbi2d exbid syl5ib
      nfnd axregndlem1 aecoms 19.8a elirrv elequ2 mtbii a1d alimi anim2i expcom
      ex nfae eximd syl5 pm2.61ii ) CAECFZCBEZCFZABGZVJCAGZCBGZHZIZCFZJZAKZIZVG
      HZVIHZVRVJVJDAGZDBGZHZIZDFZJZAKVSVTJZVQABDLWGWFVPAVSVTACAAMCBAMSWGWEVOVJW
      GWDVNDCVSVTCCACMCBCMSWGWAWCCVSWACNVTVSCDAOCAPQRVTWCCNVSVTWBCVTCDBOCBPQUKU
      AUBDCEZWDVNUCIWGWHWAVKWCVMDCATWHWBVLDCBTUDUEUFUGUHUIUJVBVRACABCULUMVJVJAK
      VIVQVJAUNVIVJVPACBAVCVJVIVPVIVOVJVHVNCVHVMVKVHCCGVLCUOCBCUPUQURUSUTVAVDVE
      VF $.
  $}

  ${
    $d x w $.  $d z y w $.
    $( Lemma for the Axiom of Infinity with no distinct variable conditions.
       (New usage is discouraged.)  (Contributed by NM, 5-Jan-2002.) $)
    axinfndlem1 $p |- ( A. x y e. z -> E. x ( y e. x /\
                 A. y ( y e. x -> E. z ( y e. z /\ z e. x ) ) ) ) $=
      ( vw weq wal wel wa wex wi wn nfnae nfan cv wnfc nfcvf adantr nfcvd nfeld
      adantl zfinf nfand nfexd nfimd nfald wb simpr eleq2d nfcvf2 elequ2 anbi2d
      nfeqd nfan1 exbid imbi12d albid anbi12d cbvexd mpbii a1d pm2.21d pm2.61ii
      ex nd1 nd2 ) ABEAFZACEAFZBCGZAFZBAGZVJVHCAGZHZCIZJZBFZHZAIZJZVFKZVGKZVRVS
      VTHZVQVIWABDGZWBVHCDGZHZCIZJZBFZHZDIVQDBCUAWAWHVPDAVSVTAABALACALMWAWBWGAW
      AABNZDNZVSAWIOVTABPQZWAAWJRZSZWAWFABVSVTBABBLACBLMZWAWBWEAWMWAWDACVSVTCAB
      CLACCLMZWAVHWCAWAAWICNZWKVTAWPOVSACPTZSWAAWPWJWQWLSUBUCUDUEUBWADAEZWHVPUF
      WAWRHZWBVJWGVOWSWJANZWIWAWRUGUHZWSWFVNBWAWRBWNWABWJWTWABWJRVSBWTOVTABUIQU
      LUMWSWBVJWEVMXAWSWDVLCWAWRCWOWACWJWTWACWJRVTCWTOVSACUITULUMWRWDVLUFWAWRWC
      VKVHDACUJUKTUNUOUPUQVCURUSUTVCVFVIVQABCVDVAVGVIVQACBVEVAVB $.
  $}

  ${
    $d x w $.  $d y w $.  $d z w $.
    $( A version of the Axiom of Infinity with no distinct variable conditions.
       (New usage is discouraged.)  (Contributed by NM, 5-Jan-2002.) $)
    axinfnd $p |- E. x ( y e. z -> ( y e. x /\
                 A. y ( y e. x -> E. z ( y e. z /\ z e. x ) ) ) ) $=
      ( vw wel wa wex wi wal weq wn nfnae nfan cv nfcvd wnfc nfeld adantr wb ex
      axinfndlem1 ax-gen nfcvf adantl nfald nfand nfexd nfimd nfeqd nfan1 simpr
      nfcvf2 eleq1d albid anbi1d exbid imbi12d cbvald anbi12d mpbii 19.21bi nd1
      aecoms pm2.21d nd3 pm2.61ii 19.35ri ) BCEZBAEZVIVHCAEZFZCGZHZBIZFZABAJBIZ
      BCJBIZVHAIZVOAGZHZVPKZVQKZVTWAWBFZVTBWCDCEZAIZDAEZWFWDVJFZCGZHZDIZFZAGZHZ
      DIVTBIWMDADCUAUBWCWMVTDBWAWBBBABLBCBLMZWCWEWLBWCWDBAWAWBABAALBCALMZWCBDNZ
      CNZWCBWPOZWBBWQPWABCUCUDZQZUEWCWKBAWOWCWFWJBWCBWPANZWRWABXAPWBBAUCRZQZWCW
      IBDWAWBDBADLBCDLMWCWFWHBXCWCWGBCWAWBCBACLBCCLMZWCWDVJBWTWCBWQXAWSXBQUFUGU
      HZUEUFUGUHWCDBJZWMVTSWCXFFZWEVRWLVSXGWDVHAWCXFAWOWCAWPBNZWCAWPOWAAXHPWBBA
      ULRUIUJZXGWPXHWQWCXFUKZUMZUNXGWKVOAXIXGWFVIWJVNXGWPXHXAXJUMZWCWJVNSXFWCWI
      VMDBWNXEWCXFWIVMSXGWFVIWHVLXLXGWGVKCWCXFCXDWCCWPXHWCCWPOWBCXHPWABCULUDUIU
      JXGWDVHVJXKUOUPUQTURRUSUPUQTURUTVATVPVRVSVRKABABCVBVCVDVQVRVSBCAVEVDVFVG
      $.
  $}

  $( Lemma for the Axiom of Choice with no distinct variable conditions.
     (Contributed by NM, 3-Jan-2002.) $)
  axacndlem1 $p |- ( A. x x = y ->
            E. x A. y A. z ( A. x ( y e. z /\ z e. w ) -> E. w A. y ( E. w
          ( ( y e. z /\ z e. w ) /\ ( y e. w /\ w e. x ) ) <-> y = w ) ) ) $=
    ( weq wal wel wa wex wb nfae simpl alimi nd1 pm2.21d syl5 alrimi 19.8a syl
    wi ) ABEAFZBCGZCDGZHZAFZUDBDGDAGHHDIBDEJBFDIZTZCFZBFZUIAIUAUHBABBKUAUGCABCK
    UEUBAFZUAUFUDUBAUBUCLMUAUJUFABCNOPQQUIARS $.

  $( Lemma for the Axiom of Choice with no distinct variable conditions.
     (Contributed by NM, 3-Jan-2002.) $)
  axacndlem2 $p |- ( A. x x = z ->
            E. x A. y A. z ( A. x ( y e. z /\ z e. w ) -> E. w A. y ( E. w
          ( ( y e. z /\ z e. w ) /\ ( y e. w /\ w e. x ) ) <-> y = w ) ) ) $=
    ( weq wal wel wa wex wb nfae simpr alimi nd1 pm2.21d syl5 alrimi 19.8a syl
    wi ) ACEAFZBCGZCDGZHZAFZUDBDGDAGHHDIBDEJBFDIZTZCFZBFZUIAIUAUHBACBKUAUGCACCK
    UEUCAFZUAUFUDUCAUBUCLMUAUJUFACDNOPQQUIARS $.

  $( Lemma for the Axiom of Choice with no distinct variable conditions.
     (Contributed by NM, 3-Jan-2002.) $)
  axacndlem3 $p |- ( A. y y = z ->
            E. x A. y A. z ( A. x ( y e. z /\ z e. w ) -> E. w A. y ( E. w
          ( ( y e. z /\ z e. w ) /\ ( y e. w /\ w e. x ) ) <-> y = w ) ) ) $=
    ( weq wal wel wa wex wb wi nfae simpl alimi pm2.21d syl5 alrimi axc4i 19.8a
    nd3 syl ) BCEZBFZBCGZCDGZHZAFZUFBDGDAGHHDIBDEJBFDIZKZCFZBFZUKAIUBUJBUCUICBC
    CLUGUDAFZUCUHUFUDAUDUEMNUCULUHBCATOPQRUKASUA $.

  ${
    $d x v $.  $d y z w v $.
    $( Lemma for the Axiom of Choice with no distinct variable conditions.
       (New usage is discouraged.)  (Contributed by NM, 8-Jan-2002.)  (Proof
       shortened by Mario Carneiro, 10-Dec-2016.) $)
    axacndlem4 $p |- E. x A. y A. z ( A. x ( y e. z /\ z e. w ) ->
              E. w A. y ( E. w ( ( y e. z /\ z e. w ) /\ ( y e. w /\ w e. x ) )
                     <-> y = w ) ) $=
      ( vv weq wal wel wa wex wb wi wn nfnae nf3an cv wnfc nfeld nfcvd nfeqd sp
      w3a nfcvf 3ad2ant2 3ad2ant1 3ad2ant3 nfand nfexd nfbid nfald nfimd nfcvf2
      nfan1 nf5rd adantr impbid1 simpr eleq2d anbi2d exbid bibi1d albid imbi12d
      zfac ex cbvexd mpbii 3exp axacndlem2 axacndlem1 nfae alimi pm2.21d alrimi
      nd2 syl5 19.8a syl pm2.61iii ) ACFAGZABFAGZADFAGZBCHZCDHZIZAGZWEBDHZDAHZI
      ZIZDJZBDFZKZBGZDJZLZCGZBGZAJZVTMZWAMZWBMZWSWTXAXBUBZWEWEWGDEHZIZIZDJZWLKZ
      BGZDJZLZCGZBGZEJWSEBCDVDXCXMWREAWTXAXBAACANABANADANOXCXLABWTXAXBBACBNABBN
      ADBNOZXCXKACWTXAXBCACCNABCNADCNOZXCWEXJAXCWCWDAXCABPZCPZXAWTAXPQXBABUCUDZ
      WTXAAXQQXBACUCUEZRXCAXQDPZXSXBWTAXTQXAADUCUFZRUGZXCXIADWTXAXBDACDNABDNADD
      NOZXCXHABXNXCXGWLAXCXFADYCXCWEXEAYBXCWGXDAXCAXPXTXRYARXCAXTEPZYAXCAYDSRUG
      UGUHXCAXPXTXRYATUIUJUHUKUJUJXCEAFZXMWRKXCYEIZXLWQBXCYEBXNXCBYDAPZXCBYDSXA
      WTBYGQXBABULUDTUMZYFXKWPCXCYECXOXCCYDYGXCCYDSWTXACYGQXBACULUETUMYFWEWFXJW
      OYFWEWFXCWEWFLYEXCWEAYBUNUOWEAUAUPYFXIWNDXCYEDYCXCDYDYGXCDYDSXBWTDYGQXAAD
      ULUFTUMZYFXHWMBYHYFXGWKWLYFXFWJDYIYFXEWIWEYFXDWHWGYFYDYGXTXCYEUQURUSUSUTV
      AVBUTVCVBVBVEVFVGVHABCDVIABCDVJWBWRWSWBWQBADBVKWBWPCADCVKWFWDAGZWBWOWEWDA
      WCWDUQVLWBYJWOADCVOVMVPVNVNWRAVQVRVS $.
  $}

  ${
    $d x v $.  $d y v $.  $d z w v $.
    $( Lemma for the Axiom of Choice with no distinct variable conditions.
       (New usage is discouraged.)  (Contributed by NM, 3-Jan-2002.)  (Proof
       shortened by Mario Carneiro, 10-Dec-2016.) $)
    axacndlem5 $p |- E. x A. y A. z ( A. x ( y e. z /\ z e. w ) ->
              E. w A. y ( E. w ( ( y e. z /\ z e. w ) /\ ( y e. w /\ w e. x ) )
                     <-> y = w ) ) $=
      ( vv weq wal wel wa wex wb wn nfnae nf3an cv nfcvd wnfc nfcvf nfeld nfeqd
      wi w3a axacndlem4 3ad2ant1 3ad2ant3 nfand nfald nfv 3ad2ant2 nfexd nfcvf2
      nfbid nfimd nfan1 simpr eleq1d anbi1d albid anbi12d eqeq1d bibi12d cbvald
      exbid adantr imbi12d mpbii 3exp axacndlem3 axacndlem1 aecoms en2lp elequ2
      ex nfae anbi2d mtbii sps pm2.21d spsd alrimi axc4i 19.8a syl pm2.61iii )
      BCFBGZBAFBGZBDFZBGZBCHZCDHZIZAGZWKBDHZDAHZIZIZDJZWGKZBGZDJZUAZCGZBGZAJZWE
      LZWFLZWHLZXDXEXFXGUBZECHZWJIZAGZXJEDHZWNIZIZDJZEDFZKZEGZDJZUAZCGZEGZAJXDA
      ECDUCXHYBXCAXEXFXGABCAMBAAMBDAMNZXHYAXBEBXEXFXGBBCBMBABMBDBMNZXHXTBCXEXFX
      GCBCCMBACMBDCMNZXHXKXSBXHXJBAYCXHXIWJBXHBEOZCOZXHBYFPZXEXFBYGQXGBCRUDZSXH
      BYGDOZYIXGXEBYJQXFBDRUEZSUFZUGXHXRBDXEXFXGDBCDMBADMBDDMNZXHXQBEXHEUHXHXOX
      PBXHXNBDYMXHXJXMBYLXHXLWNBXHBYFYJYHYKSXHBYJAOZYKXFXEBYNQXGBARUISUFUFUJXHB
      YFYJYHYKTULZUGUJUMUGXHEBFZYAXBKXHYPIZXTXACXHYPCYEXHCYFBOZXHCYFPXEXFCYRQXG
      BCUKUDTUNYQXKWLXSWTYQXJWKAXHYPAYCXHAYFYRXHAYFPXFXEAYRQXGBAUKUITUNYQXIWIWJ
      YQYFYRYGXHYPUOZUPUQZURXHXSWTKYPXHXRWSDYMXHXQWREBYDYOXHYPXQWRKYQXOWQXPWGYQ
      XNWPDXHYPDYMXHDYFYRXHDYFPXGXEDYRQXFBDUKUETUNYQXJWKXMWOYTYQXLWMWNYQYFYRYJY
      SUPUQUSVCYQYFYRYJYSUTVAVMVBVCVDVEURVMVBVCVFVGABCDVHXDABABCDVIVJWHXCXDWGXB
      BWHXACBDCVNWHWKWTAWHWKWTWGWKLBWGWICBHZIWKYRYGVKWGUUAWJWIBDCVLVOVPVQVRVSVT
      WAXCAWBWCWD $.
  $}

  ${
    $d x v $.  $d y v $.  $d z v $.  $d w v $.
    $( A version of the Axiom of Choice with no distinct variable conditions.
       (New usage is discouraged.)  (Contributed by NM, 3-Jan-2002.)  (Proof
       shortened by Mario Carneiro, 10-Dec-2016.) $)
    axacnd $p |- E. x A. y A. z ( A. x ( y e. z /\ z e. w ) -> E. w A. y
       ( E. w ( ( y e. z /\ z e. w ) /\ ( y e. w /\ w e. x ) ) <-> y = w ) ) $=
      ( vv weq wal wel wa wex wb wn nfnae nf3an cv wnfc nfcvf nfcvd nfeld nfeqd
      axacndlem5 3ad2ant2 3ad2ant3 nfand nfald 3ad2ant1 nfexd nfbid nfimd nfan1
      w3a nfcvf2 simpr eleq2d eleq1d anbi12d albid anbi1d bibi1d imbi12d cbvald
      wi exbid ex mpbii 3exp axacndlem2 aecoms axacndlem3 nfae nd3 pm2.21d syl5
      alimi axc4i alrimi 19.8a syl pm2.61iii ) CAFCGZCBFCGZCDFZCGZBCHZCDHZIZAGZ
      WFBDHZDAHZIZIZDJZBDFZKZBGZDJZVBZCGZBGZAJZVTLZWALZWCLZWTXAXBXCUKZBEHZEDHZI
      ZAGZXGWJIZDJZWMKZBGZDJZVBZEGZBGZAJWTABEDUAXDXPWSAXAXBXCACAAMCBAMCDAMNZXDX
      OWRBXAXBXCBCABMCBBMCDBMNZXDXNWQECXAXBXCCCACMCBCMCDCMNXDXHXMCXDXGCAXQXDXEX
      FCXDCBOZEOZXBXACXSPXCCBQUBZXDCXTRZSXDCXTDOZYBXCXACYCPXBCDQUCZSUDZUEXDXLCD
      XAXBXCDCADMCBDMCDDMNZXDXKCBXRXDXJWMCXDXICDYFXDXGWJCYEXDWHWICXDCXSYCYAYDSX
      DCYCAOZYDXAXBCYGPXCCAQUFSUDUDUGXDCXSYCYAYDTUHUEUGUIXDECFZXNWQKXDYHIZXHWGX
      MWPYIXGWFAXDYHAXQXDAXTCOZXDAXTRXAXBAYJPXCCAULUFTUJYIXEWDXFWEYIXTYJXSXDYHU
      MZUNYIXTYJYCYKUOUPZUQYIXLWODXDYHDYFXDDXTYJXDDXTRXCXADYJPXBCDULUCTUJZYIXKW
      NBXDYHBXRXDBXTYJXDBXTRXBXABYJPXCCBULUBTUJYIXJWLWMYIXIWKDYMYIXGWFWJYLURVCU
      SUQVCUTVDVAUQVCVEVFWTACABCDVGVHWTBCABCDVIVHWCWSWTWCWRBCDBVJWBWQCWGWEAGZWC
      WPWFWEAWDWEUMVNWCYNWPCDAVKVLVMVOVPWSAVQVRVS $.
  $}

  ${
    $d x y z w v u t $.
    $( Axiom of Extensionality ~ ax-ext , reproved from conditionless ZFC
       version and predicate calculus.  (Contributed by NM, 15-Aug-2003.)
       (Proof modification is discouraged.) $)
    zfcndext $p |- ( A. z ( z e. x <-> z e. y ) -> x = y ) $=
      ( cv wcel wb wceq axextnd 19.36iv ) CDZADZEJBDZEFKLGCCABHI $.

    $( Axiom of Replacement ~ ax-rep , reproved from conditionless ZFC axioms.
       (Contributed by NM, 15-Aug-2003.)
       (Proof modification is discouraged.) $)
    zfcndrep $p |- ( A. w E. y A. z ( A. y ph -> z = y ) ->
                     E. y A. z ( z e. y <-> E. w ( w e. x /\ A. y ph ) ) ) $=
      ( wal cv wceq wi wex wcel wa wb nfe1 nfv nfa1 nfex nfbi nfal exbii elequ2
      nfan nfim anbi1d exbidv bibi2d albidv imbi2d axrepnd 19.3v anbi1i bibi12i
      albii imbi2i mpbi chvar 19.35i 19.3 anbi2i a1i bibi12d cbvex sylib ) ACFZ
      DGZCGZHIDFZCJZEFVEEGZKZVIBGZKZVDCFZLZEJZMZDFZEJVEVFKZVLVDLZEJZMZDFZCJVHVQ
      EVHVJVIVFKZVMLZEJZMZDFZIZEJZVHVQIZEJCBWJCEVHVQCVGCNVPCDVJVOCVJCOVNCEVLVMC
      VLCOVDCPUBQRSZUCQVFVKHZWHWJEWLWGVQVHWLWFVPDWLWEVOVJWLWDVNEWLWCVLVMCBEUAUD
      UEUFUGUHUEVHVJCFZWCDFZVMLZEJZMZDFZIZEJWIVDECDUIWSWHEWRWGVHWQWFDWMVJWPWEVJ
      CUJWOWDEWNWCVMWCDUJUKTULUMUNTUOUPUQVQWBECWKWAEDVRVTEVREOVSENRSVIVFHZVPWAD
      WTVJVRVOVTECDUAVOVTMWTVNVSEVMVDVLVDCACPURUSTUTVAUGVBVC $.

    $( Axiom of Union ~ ax-un , reproved from conditionless ZFC axioms.
       (Contributed by NM, 15-Aug-2003.)
       (Proof modification is discouraged.) $)
    zfcndun $p |- E. y A. z ( E. w ( z e. w /\ w e. x ) -> z e. y ) $=
      ( cv wcel wa wex wi axunnd wceq elequ2 elequ1 anbi12d cbvexv imbi1i albii
      wal exbii mpbir ) CEZDEZFZUBAEZFZGZDHZUABEZFZIZCRZBHUIUHUDFZGZBHZUIIZCRZB
      HBCAJUKUPBUJUOCUGUNUIUFUMDBUBUHKUCUIUEULDBCLDBAMNOPQST $.

    $( Axiom of Power Sets ~ ax-pow , reproved from conditionless ZFC axioms.
       The proof uses the "Axiom of Twoness," ~ dtru .  (Contributed by NM,
       15-Aug-2003.)  (Proof modification is discouraged.) $)
    zfcndpow $p |- E. y A. z ( A. w ( w e. z -> w e. x ) -> z e. y ) $=
      ( cv wcel wi wal wceq wn dtru exnal mpbir nfe1 axpownd albii imbi1i exbii
      wex elequ1 exlimi ax-mp 19.9v 19.3v imbi12i mpbi imbi12d cbvalv ) DEZCEZF
      ZUIAEZFZGZDHZUJBEZFZGZCHZBSUPUJFZUPULFZGZBHZUQGZCHZBSZUTASZVACHZGZBHZUQGZ
      CHZBSZVFUPUJIZJZBSZVMVPVNBHJBCKVNBLMVOVMBVLBNBCAOUAUBVLVEBVKVDCVJVCUQVIVB
      BVGUTVHVAUTAUCVACUDUEPQPRUFUSVEBURVDCUOVCUQUNVBDBUIUPIUKUTUMVADBCTDBATUGU
      HQPRM $.

    $( Axiom of Regularity ~ ax-reg , reproved from conditionless ZFC axioms.
       (Contributed by NM, 15-Aug-2003.)
       (Proof modification is discouraged.) $)
    zfcndreg $p |- ( E. y y e. x ->
                 E. y ( y e. x /\ A. z ( z e. y -> -. z e. x ) ) ) $=
      ( cv wcel wn wi wal wa wex nfe1 axregnd exlimi ) BDZADZEZPCDZNEQOEFGCHIZB
      JBRBKBACLM $.

    $( Axiom of Infinity ~ ax-inf , reproved from conditionless ZFC axioms.
       Since we have already reproved Extensionality, Replacement, and Power
       Sets above, we are justified in referencing theorem ~ el in the proof.
       (New usage is discouraged.)  (Proof modification is discouraged.)
       (Contributed by NM, 15-Aug-2003.) $)
    zfcndinf $p |- E. y ( x e. y /\
                 A. z ( z e. y -> E. w ( z e. w /\ w e. y ) ) ) $=
      ( cv wcel wa wex wi wal el nfv nfe1 nfim nfal nfan axinfnd 19.37iv elequ1
      nfex exlimi ax-mp wceq anbi1d exbidv imbi12d cbvalv anbi2i exbii mpbir )
      AEZBEZFZCEZULFZUNDEZFZUPULFZGZDHZIZCJZGZBHUMUMUKUPFZURGZDHZIZAJZGZBHZVDDH
      VJADKVDVJDVIDBUMVHDUMDLZVGDAUMVFDVKVEDMNOPTVDVIBBADQRUAUBVCVIBVBVHUMVAVGC
      AUNUKUCZUOUMUTVFCABSVLUSVEDVLUQVDURCADSUDUEUFUGUHUIUJ $.

    $( Axiom of Choice ~ ax-ac , reproved from conditionless ZFC axioms.
       (Contributed by NM, 15-Aug-2003.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    zfcndac $p |- E. y A. z A. w ( ( z e. w /\ w e. x ) -> E. v A. u ( E. t
              ( ( u e. w /\ w e. t ) /\ ( u e. t /\ t e. y ) ) <-> u = v ) ) $=
      ( cv wcel wa wex wceq wb wal wi 2albii exbii elequ2 elequ1 anbi12d axacnd
      19.3v imbi1i mpbi bibi2d anbi2d cbvexv bibi1i syl6bb albidv anbi1d exbidv
      equequ2 equequ1 bibi12d cbvalv imbi2i mpbir ) CHZDHZIZUTAHZIZJZFHZUTIZUTG
      HZIZJZVEVGIZVGBHZIZJZJZGKZVEEHZLZMZFNZEKZOZDNCNZBKVDVDUSVBIZVBVKIZJZJZAKZ
      USVBLZMZCNZAKZOZDNCNZBKZVDBNZWKOZDNCNZBKWNBCDAUAWQWMBWPWLCDWOVDWKVDBUBUCP
      QUDWBWMBWAWLCDVTWKVDVSWJEAVPVBLZVSVFVCJZVEVBIZWDJZJZAKZVEVBLZMZFNWJWRVRXE
      FWRVRVOXDMXEWRVQXDVOEAFUMUEVOXCXDVNXBGAVGVBLZVIWSVMXAXFVHVCVFGADRUFXFVJWT
      VLWDGAFRGABSTTUGUHUIUJXEWIFCVEUSLZXCWGXDWHXGXBWFAXGWSVDXAWEXGVFVAVCFCDSUK
      XGWTWCWDFCASUKTULFCAUNUOUPUIUGUQPQUR $.
  $}

$(
  @{
    @d x y z w @.
    zfcndpowNEW @p |- E. x A. y ( A. x ( x e. y -> x e. z ) -> y e. x ) @=
     ( wel wi wal wex weq wa wb zfcndrep hbae 19.9rOLD equid a1bi albii exbii
       bitri
      imbi1i mpbir 19.37 mpbi ax-gen biantru bibi2i bicomi biimpr sylbi alimi
      eximi syl axpowndNEW ax-mp 19.9rvOLD ax-5 19.3rOLD imbi12i )
      ABDZACDZEZAFZBADZE
      ZBFZAGURCGZUSBFZEZAFZVBEZBFZAGZABHZAFZCBDZCGZUSEZAFZCGZEVKVMUSVNAAHZBFZIZ
      CGZJZAFZCGZVRVMWDEZCGZVMWEEWGVSVLEZAFZBGZWDEZCGVSCBAKWFWKCVMWJWDVMVMBGWJV
      MBABBLMVMWIBVLWHAVSVLANZOPQRSQTVMWDCABCLUAUBWDVQCWCVPAWCUSVOJZVPWMWCVOWBU
      SVNWACVTVNVSBWLUCUDQUEUFUSVOUGUHUIUJUKABCULUMVDVJAVCVIBVAVHVBUTVGAURVEUSV
      FURCUNUSBUSBUOUPUQPSPQT @.
  @}
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  The Generalized Continuum Hypothesis
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Sets satisfying the Generalized Continuum Hypothesis
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c GCH $.

  $( Extend class notation to include the collection of sets that satisfy the
     GCH. $)
  cgch $a class GCH $.

  ${
    $d x y $.
    $( Define the collection of "GCH-sets", or sets for which the generalized
       continuum hypothesis holds.  In this language the generalized continuum
       hypothesis can be expressed as ` GCH = _V ` .  A set ` x ` satisfies the
       generalized continuum hypothesis if it is finite or there is no set
       ` y ` strictly between ` x ` and its powerset in cardinality.  The
       continuum hypothesis is equivalent to ` _om e. GCH ` .  (Contributed by
       Mario Carneiro, 15-May-2015.) $)
    df-gch $a |- GCH = ( Fin u. { x | A. y -. ( x ~< y /\ y ~< ~P x ) } ) $.
  $}

  ${
    $d x y A $.  $d x B $.
    $( Elementhood in the collection of GCH-sets.  (Contributed by Mario
       Carneiro, 15-May-2015.) $)
    elgch $p |- ( A e. V -> ( A e. GCH <-> ( A e. Fin \/
      A. x -. ( A ~< x /\ x ~< ~P A ) ) ) ) $=
      ( vy cgch wcel cfn cv csdm wbr cpw wa wn wal cab cun df-gch eleq2i elun
      wo bitri wceq breq1 pweq breq2d anbi12d notbid albidv elabg orbi2d syl5bb
      ) BEFZBGFZBDHZAHZIJZUOUNKZIJZLZMZANZDOZFZTZBCFZUMBUOIJZUOBKZIJZLZMZANZTUL
      BGVBPZFVDEVLBDAQRBGVBSUAVEVCVKUMVAVKDBCUNBUBZUTVJAVMUSVIVMUPVFURVHUNBUOIU
      CVMUQVGUOIUNBUDUEUFUGUHUIUJUK $.

    $( A finite set is a GCH-set.  (Contributed by Mario Carneiro,
       15-May-2015.) $)
    fingch $p |- Fin C_ GCH $=
      ( vx vy cfn cv csdm wbr cpw wa wn wal cab cun cgch ssun1 df-gch sseqtr4i
      ) CCADZBDZEFRQGEFHIBJAKZLMCSNABOP $.

    $( The only GCH-sets which have other sets between it and its power set are
       finite sets.  (Contributed by Mario Carneiro, 15-May-2015.) $)
    gchi $p |- ( ( A e. GCH /\ A ~< B /\ B ~< ~P A ) -> A e. Fin ) $=
      ( vx cgch wcel csdm wbr cpw cfn wa cv wal wex cvv relsdom brrelexi adantl
      wn wceq breq2 breq1 anbi12d spcegv mpcom df-ex sylib elgch ibi orcomd ord
      wo syl5 3impib ) ADEZABFGZBAHZFGZAIEZUOUQJZACKZFGZUTUPFGZJZRCLZRZUNURUSVC
      CMZVEBNEZUSVFUQVGUOBUPFOPQVCUSCBNUTBSVAUOVBUQUTBAFTUTBUPFUAUBUCUDVCCUEUFU
      NVDURUNURVDUNURVDUKCADUGUHUIUJULUM $.

    $( If ` A <_ B < ~P A ` , and ` A ` is an infinite GCH-set, then ` A = B `
       in cardinality.  (Contributed by Mario Carneiro, 15-May-2015.) $)
    gchen1 $p |- ( ( ( A e. GCH /\ -. A e. Fin ) /\ ( A ~<_ B /\ B ~< ~P A ) )
      -> A ~~ B ) $=
      ( cgch wcel cfn wn wa cdom wbr cpw csdm cen simprl 3com23 3expia con3dimp
      gchi an32s adantrl bren2 sylanbrc ) ACDZAEDZFZGZABHIZBAJKIZGGUFABKIZFZABL
      IUEUFUGMUEUGUIUFUBUGUDUIUBUGGUHUCUBUGUHUCUBUHUGUCABQNOPRSABTUA $.

    $( If ` A < B <_ ~P A ` , and ` A ` is an infinite GCH-set, then
       ` B = ~P A ` in cardinality.  (Contributed by Mario Carneiro,
       15-May-2015.) $)
    gchen2 $p |- ( ( ( A e. GCH /\ -. A e. Fin ) /\ ( A ~< B /\ B ~<_ ~P A ) )
      -> B ~~ ~P A ) $=
      ( cgch wcel cfn wn wa csdm wbr cpw cdom simprr gchi 3expia con3dimp an32s
      cen adantrr bren2 sylanbrc ) ACDZAEDZFZGZABHIZBAJZKIZGGUGBUFHIZFZBUFQIUDU
      EUGLUDUEUIUGUAUEUCUIUAUEGUHUBUAUEUHUBABMNOPRBUFST $.

    $( If ` A <_ B <_ ~P A ` , and ` A ` is an infinite GCH-set, then either
       ` A = B ` or ` B = ~P A ` in cardinality.  (Contributed by Mario
       Carneiro, 15-May-2015.) $)
    gchor $p |- ( ( ( A e. GCH /\ -. A e. Fin ) /\ ( A ~<_ B /\ B ~<_ ~P A ) )
      -> ( A ~~ B \/ B ~~ ~P A ) ) $=
      ( cgch wcel cfn wn wa cdom wbr cpw csdm cen wo simprr brdom2 sylib gchen1
      wi expr adantrr orim1d mpd ) ACDAEDFGZABHIZBAJZHIZGGZBUEKIZBUELIZMZABLIZU
      IMUGUFUJUCUDUFNBUEOPUGUHUKUIUCUDUHUKRUFUCUDUHUKABQSTUAUB $.

    $( The property of being a GCH-set is a cardinal invariant.  (Contributed
       by Mario Carneiro, 15-May-2015.) $)
    engch $p |- ( A ~~ B -> ( A e. GCH <-> B e. GCH ) ) $=
      ( vx cen wbr cfn wcel cv csdm cpw wa wn wal wo cgch syl cvv relen elgch
      wb enfi sdomen1 sdomen2 anbi12d notbid orbi12d brrelexi brrelex2i 3bitr4d
      pwen albidv ) ABDEZAFGZACHZIEZUNAJZIEZKZLZCMZNZBFGZBUNIEZUNBJZIEZKZLZCMZN
      ZAOGZBOGZULUMVBUTVHABUAULUSVGCULURVFULUOVCUQVEABUNUBULUPVDDEUQVETABUJUPVD
      UNUCPUDUEUKUFULAQGVJVATABDRUGCAQSPULBQGVKVITABDRUHCBQSPUI $.
  $}

  $( Under certain conditions, a GCH-set can demonstrate trichotomy of
     dominance.  Lemma for ~ gchac .  (Contributed by Mario Carneiro,
     15-May-2015.) $)
  gchdomtri $p |- ( ( A e. GCH /\ ( A +c A ) ~~ A /\ B ~<_ ~P A ) ->
    ( A ~<_ B \/ B ~<_ A ) ) $=
    ( cgch wcel ccda co cen wbr cpw cdom wo wa wn sdomdom cvv wb adantr cdadom3
    csdm syl2anc w3a cfn con3i reldom brrelexi 3ad2ant3 fidomtri2 sylan syl5ibr
    orrd simp1 simpr cdalepw 3adant1 gchor syl22anc cdacomen domentr syl5ibrcom
    sylancl domen2 imp olcd simpl1 canth2g 3syl simpl2 pwen enen2 adantl mpbird
    syl endom pwcdadom domtr orcd jaodan syldan pm2.61dan ) ACDZAAEFZAGHZBAIZJH
    ZUAZAUBDZABJHZBAJHZKZWEWFLZWGWHWGMWHWJABSHZMZWKWGABNUCWEBODZWFWHWLPWDVTWMWB
    BWCJUDUEUFZBAOUGUHUIUJWEWFMZAABEFZGHZWPWCGHZKZWIWEWOLVTWOAWPJHZWPWCJHZWSWEV
    TWOVTWBWDUKZQWEWOULWEWTWOWEVTWMWTXBWNABCORTQWEXAWOWBWDXAVTABUMUNQAWPUOUPWEW
    QWIWRWEWQLWHWGWEWQWHWEWHWQBWPJHZWEBBAEFZJHZXDWPGHXCWEWMVTXEWNXBBAOCRTBAUQBX
    DWPURUTAWPBVAUSVBVCWEWRLZWGWHXFAWCJHZWCBJHZWGXFVTAWCSHXGVTWBWDWRVDACVEAWCNV
    FXFWAIZWPGHZXIWPJHXHXFXJXIWCGHZXFWBXKVTWBWDWRVGWAAVHVLWRXJXKPWEWPWCXIVIVJVK
    XIWPVMABVNVFAWCBVOTVPVQVRVS $.

  ${
    $d u y B $.  $d a b r s t u v w x y z F $.  $d a b n r s t u v w x y z X $.
    $d r u w x y z M $.  $d r u w x y z N $.  $d a b n r s t u v w x y z ph $.
    $d a r s t w x z A $.  $d r u w x y z R $.  $d r u w x y z Y $.
    $d r u x y z S $.
    fpwwe2.1 $e |- W = { <. x , r >. | ( ( x C_ A /\ r C_ ( x X. x ) ) /\
      ( r We x /\ A. y e. x [. ( `' r " { y } ) / u ].
        ( u F ( r i^i ( u X. u ) ) ) = y ) ) } $.
    $( Lemma for ~ fpwwe2 .  (Contributed by Mario Carneiro, 3-Jun-2015.) $)
    fpwwe2cbv $p |- W = { <. a , s >. | ( ( a C_ A /\ s C_ ( a X. a ) ) /\
      ( s We a /\ A. z e. a [. ( `' s " { z } ) / v ].
        ( v F ( s i^i ( v X. v ) ) ) = z ) ) } $=
      ( cv wss cxp wa wwe wceq wsbc weq cin co ccnv csn cima copab simpl sseq1d
      wral simpr sqxpeqd sseq12d anbi12d weeq2 weeq1 sylan9bb id ineq2d oveq12d
      eqeq1d cbvsbcv sneq imaeq2d sbceqbid syl5bb cbvralv cnveqd imaeq1d ineq1d
      eqeq2 oveq2d raleqbidv cbvopabv eqtri ) HAMZFNZJMZVOVOOZNZPZVOVQQZEMZVQWB
      WBOZUAZGUBZBMZRZEVQUCZWFUDZUEZSZBVOUIZPZPZAJUFKMZFNZIMZWOWOOZNZPZWOWQQZDM
      ZWQXBXBOZUAZGUBZCMZRZDWQUCZXFUDZUEZSZCWOUIZPZPZKIUFLWNXNAJKIAKTZJITZPZVTW
      TWMXMXQVPWPVSWSXQVOWOFXOXPUGZUHXQVQWQVRWRXOXPUJZXQVOWOXRUKULUMXQWAXAWLXLX
      OWAWOVQQXPXAVOWOVQUNWOVQWQUOUPWLXBVQXCUAZGUBZXFRZDWHXIUEZSZCVOUIXQXLWKYDB
      CVOWKYAWFRZDWJSBCTZYDWGYEEDWJEDTZWEYAWFYGWBXBWDXTGYGUQZYGWCXCVQYGWBXBYHUK
      URUSUTVAYFYEYBDWJYCYFWIXIWHWFXFVBVCWFXFYAVJVDVEVFXQYDXKCVOWOXRXQYBXGDYCXJ
      XQWHXHXIXQVQWQXSVGVHXQYAXEXFXQXTXDXBGXQVQWQXCXSVIVKUTVDVLVEUMUMVMVN $.

    $d a b n r s t u v w x y z W $.
    $( Lemma for ~ fpwwe2 .  (Contributed by Mario Carneiro, 15-May-2015.) $)
    fpwwe2lem1 $p |- W C_ ( ~P A X. ~P ( A X. A ) ) $=
      ( cv wss cxp wa wwe cin co copab cpw wcel selpw sylibr wceq ccnv csn cima
      wsbc wral simpll simplr xpss12 syl2anc sstrd jca ssopab2i df-xp 3sstr4i )
      AIZDJZGIZUPUPKZJZLUPURMCIZURVAVAKNEOBIZUACURUBVBUCUDUEBUPUFLZLZAGPUPDQZRZ
      URDDKZQZRZLZAGPFVEVHKVDVJAGVDVFVIVDUQVFUQUTVCUGZADSTVDURVGJVIVDURUSVGUQUT
      VCUHVDUQUQUSVGJVKVKUPDUPDUIUJUKGVGSTULUMHAGVEVHUNUO $.

    fpwwe2.2 $e |- ( ph -> A e. _V ) $.
    $( Lemma for ~ fpwwe2 .  (Contributed by Mario Carneiro, 19-May-2015.) $)
    fpwwe2lem2 $p |- ( ph -> ( X W R <-> ( ( X C_ A /\ R C_ ( X X. X ) ) /\
      ( R We X /\ A. y e. X [. ( `' R " { y } ) / u ].
        ( u F ( R i^i ( u X. u ) ) ) = y ) ) ) ) $=
      ( wss cxp wa wwe cv wceq cvv wcel wbr cin co ccnv csn cima wsbc wral wrel
      relopabi brrelex12 sylan adantr simprll ssexd xpexg syl2anc simprlr simpl
      a1i jca sseq1d simpr sqxpeqd sseq12d anbi12d weeq2 weeq1 sylan9bb imaeq1d
      cnveqd ineq1d oveq2d eqeq1d sbceqbid raleqbidv brabga pm5.21nd ) AIFHUAZI
      EMZFIINZMZOZIFPZDQZFWEWENZUBZGUCZCQZRZDFUDZWIUEZUFZUGZCIUHZOZOZISTZFSTZOZ
      AHUIZVSWTXAABQZEMZJQZXBXBNZMZOZXBXDPZWEXDWFUBZGUCZWIRZDXDUDZWLUFZUGZCXBUH
      ZOZOZBJHKUJUTIFHUKULAWQOZWRWSXRIESAESTWQLUMAVTWBWPUNUOZXRFWASXRWRWRWASTXS
      XSIISSUPUQAVTWBWPURUOVAXQWQBJIFHSSXBIRZXDFRZOZXGWCXPWPYBXCVTXFWBYBXBIEXTY
      AUSZVBYBXDFXEWAXTYAVCZYBXBIYCVDVEVFYBXHWDXOWOXTXHIXDPYAWDXBIXDVGIXDFVHVIY
      BXNWNCXBIYCYBXKWJDXMWMYBXLWKWLYBXDFYDVKVJYBXJWHWIYBXIWGWEGYBXDFWFYDVLVMVN
      VOVPVFVFKVQVR $.

    ${
      fpwwe2lem4.4 $e |- ( ph -> X W R ) $.
      $( Lemma for ~ fpwwe2 .  (Contributed by Mario Carneiro, 19-May-2015.) $)
      fpwwe2lem3 $p |- ( ( ph /\ B e. X ) -> ( ( `' R " { B } ) F
        ( R i^i ( ( `' R " { B } ) X. ( `' R " { B } ) ) ) ) = B ) $=
        ( wcel wa cv wceq wss cvv cxp cin co ccnv csn cima wsbc wral fpwwe2lem2
        wwe mpbid simprrd sneq imaeq2d eqeq2 sbceqbid rspccva sylan wb cnvimass
        wbr cdm relopabi brrelex2i dmexg 3syl sylancr id sqxpeqd ineq2d oveq12d
        ssexg eqeq1d sbcieg syl adantr ) AFJOZPDQZGVRVRUAZUBZHUCZFRZDGUDZFUEZUF
        ZUGZWEGWEWEUAZUBZHUCZFRZAWACQZRZDWCWKUEZUFZUGZCJUHZVQWFAJESGJJUASPZJGUJ
        ZWPAJGIVAZWQWRWPPPNABCDEGHIJKLMUIUKULWOWFCFJWKFRZWLWBDWNWEWTWMWDWCWKFUM
        UNWKFWAUOUPUQURAWFWJUSZVQAWETOZXAAWEGVBZSXCTOZXBGWDUTAWSGTOXDNJGIBQZESK
        QZXEXEUASPXEXFUJVRXFVSUBHUCWKRDXFUDWMUFUGCXEUHPPBKILVCVDGTVEVFWEXCTVLVG
        WBWJDWETVRWERZWAWIFXGVRWEVTWHHXGVHZXGVSWGGXGVRWEXHVIVJVKVMVNVOVPUK $.
    $}

    fpwwe2.3 $e |- ( ( ph /\ ( x C_ A /\ r C_ ( x X. x ) /\ r We x ) ) ->
      ( x F r ) e. A ) $.
    $( Lemma for ~ fpwwe2 .  (Contributed by Mario Carneiro, 15-May-2015.) $)
    fpwwe2lem5 $p |- ( ( ph /\ ( X C_ A /\ R C_ ( X X. X ) /\ R We X ) ) ->
      ( X F R ) e. A ) $=
      ( cvv wcel wa wss wwe w3a co cxp adantr simpr1 ssexd xpexg syl2anc simpr2
      cv wi wceq sseq1 xpeq12 anidms sseq2d weeq2 3anbi123d anbi2d oveq1 eleq1d
      jca imbi12d weeq1 3anbi23d oveq2 vtocl2g mpcom ) INOZFNOZPAIEQZFIIUAZQZIF
      RZSZPZIFGTZEOZVNVGVHVNIENAENOVMLUBAVIVKVLUCUDZVNFVJNVNVGVGVJNOVQVQIINNUEU
      FAVIVKVLUGUDUTABUHZEQZJUHZVRVRUAZQZVRVTRZSZPZVRVTGTZEOZUIAVIVTVJQZIVTRZSZ
      PZIVTGTZEOZUIVNVPUIBJIFNNVRIUJZWEWKWGWMWNWDWJAWNVSVIWBWHWCWIVRIEUKWNWAVJV
      TWNWAVJUJVRIVRIULUMUNVRIVTUOUPUQWNWFWLEVRIVTGURUSVAVTFUJZWKVNWMVPWOWJVMAW
      OWHVKWIVLVIVTFVJUKIVTFVBVCUQWOWLVOEVTFIGVDUSVAMVEVF $.

    ${
      fpwwe2lem9.x $e |- ( ph -> X W R ) $.
      fpwwe2lem9.y $e |- ( ph -> Y W S ) $.
      fpwwe2lem9.m $e |- M = OrdIso ( R , X ) $.
      fpwwe2lem9.n $e |- N = OrdIso ( S , Y ) $.
      ${
        fpwwe2lem7.1 $e |- ( ph -> B e. dom M ) $.
        fpwwe2lem7.2 $e |- ( ph -> B e. dom N ) $.
        fpwwe2lem7.3 $e |- ( ph -> ( M |` B ) = ( N |` B ) ) $.
        $( Lemma for ~ fpwwe2 .  (Contributed by Mario Carneiro,
           18-May-2015.) $)
        fpwwe2lem6 $p |- ( ( ph /\ C R ( M ` B ) ) ->
          ( C e. X /\ C e. Y /\ ( `' M ` C ) = ( `' N ` C ) ) ) $=
          ( cfv wbr wa wcel ccnv wceq cxp wss wwe cv cin co csn cima fpwwe2lem2
          wsbc wral mpbid simpld simprd ssbrd brxp simplbi syl6 imp crn imassrn
          cdm wf1o wfo cep wiso cvv relopabi brrelexi syl syl2anc adantr isof1o
          oiiso f1ofo forn 3syl syl5sseq f1ocnvfv2 simpr eqbrtrd wb f1ocnv f1of
          wf ffvelrnd isorel syl12anc mpbird epelg elpreima mpbir2and imacnvcnv
          wfn ffn syl6eleq cres rneqd df-ima 3eqtr4g eleqtrd sseldd cnveqd wfun
          dff1o3 simprbi funcnvres 3eqtr3d fveq1d fvres 3jca ) AGFKUGZHUHZUIZGN
          UJZGOUJGKUKZUGZGLUKZUGZULAYEYGAYEGYDNNUMZUHZYGAHYLGYDANEUNZHYLUNZAYNY
          OUIZNHUOZDUPZHYRYRUMZUQJURCUPZULDHUKYTUSZUTVBCNVCZUIZANHMUHZYPUUCUITA
          BCDEHJMNPQRVAVDZVEVFVGYMYGYDNUJGYDNNVHVIVJVKZYFLFUTZOGYFLVLZUUGOLFVMY
          FLVNZOLVOZUUIOLVPZUUHOULYFUUIOVQILVRZUUJAUULYEAOVSUJZOIUOZUULAOIMUHZU
          UMUAOIMBUPZEUNPUPZUUPUUPUMUNUIUUPUUQUOYRUUQYSUQJURYTULDUUQUKUUAUTVBCU
          UPVCUIUIBPMQVTZWAWBAUUNYRIYSUQJURYTULDIUKUUAUTVBCOVCZAOEUNIOOUMUNUIZU
          UNUUSUIZAUUOUUTUVAUIUAABCDEIJMOPQRVAVDVFVEOILVSUCWFWCWDUUIOVQILWEWBZU
          UIOLWGUUIOLWHWIWJYFGKFUTZUUGYFGYHUKFUTZUVCYFGUVDUJZYGYIFUJZUUFYFYIFVQ
          UHZUVFYFUVGYIKUGZYDHUHZYFUVHGYDHYFKVNZNKVOZYGUVHGULYFUVJNVQHKVRZUVKAU
          VLYEANVSUJZYQUVLAUUDUVMTNHMUURWAWBAYQUUBAYPUUCUUEVFVENHKVSUBWFWCWDZUV
          JNVQHKWEWBZUUFUVJNGKWKWCAYEWLWMYFUVLYIUVJUJFUVJUJZUVGUVIWNUVNYFNUVJGY
          HYFUVKNUVJYHVONUVJYHWQZUVOUVJNKWONUVJYHWPWIZUUFWRAUVPYEUDWDZUVJNYIFVQ
          HKWSWTXAYFUVPUVGUVFWNUVSYIFUVJXBWBVDYFUVQYHNXFUVEYGUVFUIWNUVRNUVJYHXG
          NGFYHXCWIXDKFXEXHZYFKFXIZVLLFXIZVLUVCUUGYFUWAUWBAUWAUWBULYEUFWDZXJKFX
          KLFXKXLXMZXNYFGYHUVCXIZUGZGYJUUGXIZUGZYIYKYFGUWEUWGYFUWAUKZUWBUKZUWEU
          WGYFUWAUWBUWCXOYFUVKYHXPZUWIUWEULUVOUVKUVJNKVPUWKUVJNKXQXRFKXSWIYFUUJ
          YJXPZUWJUWGULUVBUUJUUKUWLUUIOLXQXRFLXSWIXTYAYFGUVCUJUWFYIULUVTGUVCYHY
          BWBYFGUUGUJUWHYKULUWDGUUGYJYBWBXTYC $.

        $( Lemma for ~ fpwwe2 .  (Contributed by Mario Carneiro,
           18-May-2015.) $)
        fpwwe2lem7 $p |- ( ( ph /\ C R ( M ` B ) ) -> ( C S ( N ` B ) /\
          ( D R ( M ` B ) -> ( C R D <-> C S D ) ) ) ) $=
          ( cfv wbr wa wb wi ccnv cdm wf1o wcel wceq cep cvv wwe cv wss cxp cin
          wiso csn cima wsbc wral relopabi brrelexi syl fpwwe2lem2 mpbid simprd
          simpld oiiso syl2anc adantr isof1o fpwwe2lem6 simp2d f1ocnvfv2 simp3d
          simp1d simpr eqbrtrd f1ocnv f1of 3syl ffvelrnd isorel syl12anc mpbird
          co eqbrtrrd adantrr adantrl breq12d isocnv ssbrd brxp simplbi 3bitr4d
          wf imp expr jca ) AGFLUHZIUIZUJZGFMUHZJUIHXIIUIZGHIUIZGHJUIZUKZULXKGM
          UMZUHZMUHZGXLJXKMUNZPMUOZGPUPZXSGUQXKXTPURJMVEZYAAYCXJAPUSUPZPJUTZYCA
          PJNUIZYDUBPJNBVAZEVBQVAZYGYGVCVBUJYGYHUTDVAZYHYIYIVCZVDKWOCVAZUQDYHUM
          YKVFZVGVHCYGVIUJUJBQNRVJZVKVLAYEYIJYJVDKWOYKUQDJUMYLVGVHCPVIZAPEVBJPP
          VCVBUJZYEYNUJZAYFYOYPUJUBABCDEJKNPQRSVMVNVOVPPJMUSUDVQVRZVSZXTPURJMVT
          VLZXKGOUPZYBGLUMZUHZXRUQZABCDEFGIJKLMNOPQRSTUAUBUCUDUEUFUGWAZWBZXTPGM
          WCVRXKXRFURUIZXSXLJUIZXKUUBXRFURXKYTYBUUCUUDWDZXKUUBFURUIZUUBLUHZXIIU
          IZXKUUJGXIIXKLUNZOLUOZYTUUJGUQXKUULOURILVEZUUMAUUNXJAOUSUPZOIUTZUUNAO
          INUIZUUOUAOINYMVKVLAUUPYIIYJVDKWOYKUQDIUMYLVGVHCOVIZAOEVBZIOOVCZVBZUJ
          ZUUPUURUJZAUUQUVBUVCUJUAABCDEIKNOQRSVMVNZVOVPOILUSUCVQVRZVSZUULOURILV
          TVLZXKYTYBUUCUUDWEZUULOGLWCVRAXJWFWGXKUUNUUBUULUPFUULUPZUUIUUKUKUVFXK
          OUULGUUAXKUUMOUULUUAUOOUULUUAXEUVGUULOLWHOUULUUAWIWJUVHWKAUVIXJUEVSUU
          LOUUBFURILWLWMWNWPXKYCXRXTUPFXTUPZUUFUUGUKYRXKPXTGXQXKYAPXTXQUOPXTXQX
          EYSXTPMWHPXTXQWIWJUUEWKAUVJXJUFVSXTPXRFURJMWLWMVNWPAXJXMXPAXJXMUJZUJZ
          UUBHUUAUHZURUIZXRHXQUHZURUIZXNXOUVLUUBXRUVMUVOURAXJUUCXMUUHWQAXMUVMUV
          OUQZXJAXMUJZHOUPZHPUPZUVQABCDEFHIJKLMNOPQRSTUAUBUCUDUEUFUGWAZWDWRWSUV
          LOUULIURUUAVEZYTUVSXNUVNUKUVLUUNUWBAUUNUVKUVEVSUULOURILWTVLAXJYTXMUVH
          WQAXMUVSXJUVRHXIUUTUIZUVSAXMUWCAIUUTHXIAUUSUVAAUVBUVCUVDVPVOXAXFUWCUV
          SXIOUPHXIOOXBXCVLWROUULGHIURUUAWLWMUVLPXTJURXQVEZYBUVTXOUVPUKUVLYCUWD
          AYCUVKYQVSXTPURJMWTVLAXJYBXMUUEWQAXMUVTXJUVRUVSUVTUVQUWAWBWRPXTGHJURX
          QWLWMXDXGXH $.
      $}

      fpwwe2lem9.s $e |- ( ph -> dom M C_ dom N ) $.
      $( Lemma for ~ fpwwe2 .  Show by induction that the two isometries ` M `
         and ` N ` agree on their common domain.  (Contributed by Mario
         Carneiro, 15-May-2015.) $)
      fpwwe2lem8 $p |- ( ph -> M = ( N |` dom M ) ) $=
        ( vw vz cdm cres wf wfn oif ffn mp1i wss fnssres syl2anc cv wcel wa cfv
        wceq con0 word oicl ordelon mpan wi eleq1 fveq2 eqeq12d imbi12d r19.21v
        imbi2d a1i ordelss sylan sselda pm2.27 syl ralimdva adantr sstrd eqfnfv
        wral wb fvres ralbiia syl6bb ccnv csn cima cxp cin wbr cvv ad2antrr wwe
        co w3a simpll simplr fpwwe2lem7 simpld eqcomd impbida fvex vex eliniseg
        simpr ax-mp 3bitr4g eqrdv wrel inss2 relxp relss mp2 cop anbi12d simprd
        impr sylan2b pm5.32da brinxp2 df-br df-3an 3bitr3i sqxpeqd ineq2d eqtrd
        eqrelrdv oveq12d ffvelrni adantl fpwwe2lem3 3eqtr3d ex sylbird syld a2i
        com23 sylbi tfis2 com3l mpdi imp eqtr4d eqfnfvd ) AUCIUEZIJUUGUFZUUGLIU
        GIUUGUHZALFITUIZUUGLIUJUKZAJJUEZUHZUUGUULULZUUHUUGUHUULMJUGUUMAMGJUAUIZ
        UULMJUJUKZUBUULUUGJUMUNAUCUOZUUGUPZUQZUUQIURZUUQJURZUUQUUHURZAUURUUTUVA
        USZAUURUUQUTUPZUVCUUGVAZUURUVDLFITVBZUUGUUQVCVDUVDAUURUVCAUURUVCVEZVEZA
        CUOZUUGUPZUVIIURZUVIJURZUSZVEZVEZUCCUUQUVIUSZUVGUVNAUVPUURUVJUVCUVMUUQU
        VIUUGVFUVPUUTUVKUVAUVLUUQUVIIVGUUQUVIJVGVHVIVKUVOCUUQWBZUVHVEUVDUVQAUVN
        CUUQWBZVEUVHAUVNCUUQVJAUVRUVGAUURUVRUVCAUURUVRUVCVEUUSUVRUVMCUUQWBZUVCU
        USUVNUVMCUUQUUSUVIUUQUPZUQUVJUVNUVMVEUUSUUQUUGUVIAUVEUURUUQUUGULZUVEAUV
        FVLUUGUUQVMVNZVOUVJUVMVPVQVRUUSUVSIUUQUFZJUUQUFZUSZUVCUUSUWEUVIUWCURZUV
        IUWDURZUSZCUUQWBZUVSUUSUWCUUQUHZUWDUUQUHZUWEUWIWCUUSUUIUWAUWJAUUIUURUUK
        VSUWBUUGUUQIUMUNUUSUUMUUQUULULUWKAUUMUURUUPVSUUSUUQUUGUULUWBAUUNUURUBVS
        VTUULUUQJUMUNCUUQUWCUWDWAUNUWHUVMCUUQUVTUWFUVKUWGUVLUVIUUQIWDUVIUUQJWDV
        HWEWFUUSUWEUVCUUSUWEUQZFWGUUTWHWIZFUWMUWMWJZWKZHWPZGWGUVAWHWIZGUWQUWQWJ
        ZWKZHWPZUUTUVAUWLUWMUWQUWOUWSHUWLCUWMUWQUWLUVIUUTFWLZUVIUVAGWLZUVIUWMUP
        ZUVIUWQUPZUWLUXAUXBUWLUXAUQZUXBUDUOZUUTFWLZUVIUXFFWLZUVIUXFGWLZWCZVEZUW
        LBCDEUUQUVIUXFFGHIJKLMNOAEWMUPUURUWEPWNZUWLABUOZEULNUOZUXMUXMWJULUXMUXN
        WOWQUXMUXNHWPEUPAUURUWEWRZQVNZALFKWLUURUWERWNZAMGKWLUURUWESWNZTUAAUURUW
        EWSZUUSUUQUULUPZUWEAUUGUULUUQUBVOZVSZUUSUWEXGZWTZXAUWLUXBUQUXAUXFUVAGWL
        UXIUXHWCVEUWLBCDEUUQUVIUXFGFHJIKMLNOUXLUXPUXRUXQUATUYBUXSUWLUWCUWDUYCXB
        WTXAXCUUTWMUPZUXCUXAWCUUQIXDZFUUTUVIWMCXEZXFZXHUVAWMUPUXDUXBWCUUQJXDGUV
        AUVIWMUYGXFXHXIXJZUWLUWOGUWNWKZUWSUWLCUDUWOUYJUWOUWNULUWNXKZUWOXKFUWNXL
        UWMUWMXMZUWOUWNXNXOUYJUWNULUYKUYJXKGUWNXLUYLUYJUWNXNXOUWLUXCUXFUWMUPZUQ
        ZUXHUQZUYNUXIUQZUVIUXFXPZUWOUPZUYQUYJUPZUWLUYNUXHUXIUYNUWLUXAUXGUQZUXJU
        YEUYNUYTWCUYFUYEUXCUXAUYMUXGUYHFUUTUXFWMUDXEXFXQXHUWLUXAUXGUXJUXEUXBUXK
        UYDXRXSXTYAUVIUXFUWOWLUXCUYMUXHWQUYRUYOUVIUXFUWMUWMFYBUVIUXFUWOYCUXCUYM
        UXHYDYEUVIUXFUYJWLUXCUYMUXIWQUYSUYPUVIUXFUWMUWMGYBUVIUXFUYJYCUXCUYMUXIY
        DYEXIYIUWLUWNUWRGUWLUWMUWQUYIYFYGYHYJUWLAUUTLUPZUWPUUTUSUXOUUSVUAUWEUUR
        VUAAUUGLUUQIUUJYKYLVSABCDEUUTFHKLNOPRYMUNUWLAUVAMUPZUWTUVAUSUXOUUSVUBUW
        EUUSUXTVUBUYAUULMUUQJUUOYKVQVSABCDEUVAGHKMNOPSYMUNYNYOYPYQYOYSYRYTVLUUA
        UUBUUCUUDUURUVBUVAUSAUUQUUGJWDYLUUEUUF $.

      $( Lemma for ~ fpwwe2 .  Given two well-orders ` <. X , R >. ` and
         ` <. Y , S >. ` of parts of ` A ` , one is an initial segment of the
         other.  (The ` O C_ P ` hypothesis is in order to break the symmetry
         of ` X ` and ` Y ` .)  (Contributed by Mario Carneiro,
         15-May-2015.) $)
      fpwwe2lem9 $p |- ( ph -> ( X C_ Y /\ R = ( S i^i ( Y X. X ) ) ) ) $=
        ( wss cxp cin wceq cdm cima cres crn wf1o wfo cep wiso cvv wcel wwe wbr
        cv wa ccnv csn wsbc wral relopabi brrelexi syl fpwwe2lem2 simprd simpld
        co mpbid oiiso syl2anc isof1o f1ofo forn fpwwe2lem8 rneqd eqtr3d df-ima
        3syl syl6eqr imassrn syl5sseq eqsstrd wrel relxp relss mpisyl inss2 mp2
        jctir cop ssbrd brxp syl6ib w3a brinxp2 df-3an bitri cfv simprll simprr
        wb isocnv adantr simprlr sseldd isorel syl12anc fvex epelc sylib cnveqd
        wfn wfun f1ofn fnfun funcnvres eqtrd fveq1d eleqtrd fvres f1of ffvelrnd
        wf eqeltrrd word ordtr1 ax-mp elpreima mpbir2and imacnvcnv eleqtrrd jca
        wi oicl ex df-br syl5bi breq12d sylan isores3 syl3anc 3bitr4d biantrurd
        eqidd simprl sselda adantrr syl6bbr pm5.21ndd 3bitr3g eqrelrdv2 mpancom
        bitrd ) ALMUCZFGMLUDZUEZUFZALJIUGZUHZMALJUVBUIZUJZUVCAIUJZLUVEAUVBLIUKZ
        UVBLIULUVFLUFAUVBLUMFIUNZUVGALUOUPZLFUQZUVHALFKURZUVIRLFKBUSZEUCNUSZUVL
        UVLUDUCUTUVLUVMUQDUSZUVMUVNUVNUDZUEHVKCUSZUFDUVMVAUVPVBZUHVCCUVLVDUTUTB
        NKOVEZVFVGAUVJUVNFUVOUEHVKUVPUFDFVAUVQUHVCCLVDZALEUCZFLLUDZUCZUTZUVJUVS
        UTZAUVKUWCUWDUTRABCDEFHKLNOPVHVLZVIVJLFIUOTVMVNZUVBLUMFIVOVGUVBLIVPUVBL
        IVQWBAIUVDABCDEFGHIJKLMNOPQRSTUAUBVRZVSVTJUVBWAWCZAJUJZUVCMJUVBWDAJUGZM
        JUKZUWJMJULUWIMUFAUWJMUMGJUNZUWKAMUOUPZMGUQZUWLAMGKURZUWMSMGKUVRVFVGAUW
        NUVNGUVOUEHVKUVPUFDGVAUVQUHVCCMVDZAMEUCGMMUDUCUTZUWNUWPUTZAUWOUWQUWRUTS
        ABCDEGHKMNOPVHVLVIVJMGJUOUAVMVNZUWJMUMGJVOVGUWJMJVPUWJMJVQWBWEWFZFWGZUU
        TWGZUTAUVAAUXAUXBAUWBUWAWGUXAAUVTUWBAUWCUWDUWEVJVIZLLWHFUWAWIWJUUTUUSUC
        UUSWGUXBGUUSWKMLWHUUTUUSWIWLWMABCFUUTAUVLUVPFURZUVLUVPUUTURZUVLUVPWNZFU
        PUXFUUTUPAUVLLUPZUVPLUPZUTZUXDUXEAUXDUVLUVPUWAURUXIAFUWAUVLUVPUXCWOUVLU
        VPLLWPWQUXEUVLMUPZUXHUTZUVLUVPGURZUTZAUXIUXEUXJUXHUXLWRUXMUVLUVPMLGWSUX
        JUXHUXLWTXAZAUXMUXIAUXMUTZUXGUXHUXOUVLJVAZVAUVBUHZLUXOUVLUXQUPZUXJUVLUX
        PXBZUVBUPZAUXJUXHUXLXCZUXOUXSUVPUXPXBZUPZUYBUVBUPZUXTUXOUXSUYBUMURZUYCU
        XOUXLUYEAUXKUXLXDUXOMUWJGUMUXPUNZUXJUVPMUPUXLUYEXEAUYFUXMAUWLUYFUWSUWJM
        UMGJXFVGXGZUYAUXOLMUVPAUURUXMUWTXGAUXJUXHUXLXHZXIMUWJUVLUVPGUMUXPXJXKVL
        UXSUYBUVPUXPXLXMXNUXOUVPIVAZXBZUYBUVBUXOUYJUVPUXPUVCUIZXBZUYBUXOUVPUYIU
        YKUXOUYIUVDVAZUYKUXOIUVDAIUVDUFZUXMUWGXGXOUXOUXPMXPZUXPXQUYMUYKUFUXOUYF
        MUWJUXPUKUYOUYGMUWJGUMUXPVOMUWJUXPXRWBZMUXPXSUVBJXTWBYAYBUXOUVPUVCUPZUY
        LUYBUFUXOUVPLUVCUYHALUVCUFZUXMUWHXGZYCUVPUVCUXPYDVGYAUXOLUVBUVPUYIALUVB
        UYIYGZUXMALUVBFUMUYIUNZLUVBUYIUKUYTAUVHVUAUWFUVBLUMFIXFVGZLUVBFUMUYIVOL
        UVBUYIYEWBXGUYHYFYHUVBYIUYCUYDUTUXTYQLFITYRUXSUYBUVBYJYKVNUXOUYOUXRUXJU
        XTUTXEUYPMUVLUVBUXPYLVGYMUXOLUVCUXQUYSJUVBYNWCYOUYHYPYSUUAAUXIUXDUXEXEA
        UXIUTZUXDUXLUXEVUCUVLUYIXBZUYJUMURZUVLUYMXBZUVPUYMXBZUMURZUXDUXLVUCVUDV
        UFUYJVUGUMVUCUVLUYIUYMVUCIUVDAUYNUXIUWGXGXOZYBVUCUVPUYIUYMVUIYBUUBAVUAU
        XIUXDVUEXEVUBLUVBUVLUVPFUMUYIXJUUCVUCUVCUVBGUMUYMUNZUVLUVCUPUYQUXLVUHXE
        AVUJUXIAUVBUVCUMGUVDUNZVUJAUWLUVBUWJUCUVCUVCUFVUKUWSUBAUVCUUHUWJMUMGJUV
        BUVCUUDUUEUVBUVCUMGUVDXFVGXGVUCUVLLUVCAUXGUXHUUIAUYRUXIUWHXGZYCVUCUVPLU
        VCAUXGUXHXDZVULYCUVCUVBUVLUVPGUMUYMXJXKUUFVUCUXLUXMUXEVUCUXKUXLVUCUXJUX
        HAUXGUXJUXHALMUVLUWTUUJUUKVUMYPUUGUXNUULUUQYSUUMUVLUVPFYTUVLUVPUUTYTUUN
        UUOUUPYP $.
    $}

    ${
      fpwwe2lem10.4 $e |- ( ph -> X W R ) $.
      fpwwe2lem10.6 $e |- ( ph -> Y W S ) $.
      $( Lemma for ~ fpwwe2 .  Given two well-orders ` <. X , R >. ` and
         ` <. Y , S >. ` of parts of ` A ` , one is an initial segment of the
         other.  (Contributed by Mario Carneiro, 15-May-2015.) $)
      fpwwe2lem10 $p |- ( ph -> ( ( X C_ Y /\ R = ( S i^i ( Y X. X ) ) ) \/
                                ( Y C_ X /\ S = ( R i^i ( X X. Y ) ) ) ) ) $=
        ( wss wa adantr coi cdm wo cxp cin wceq word eqid oicl ordtri2or2 mp2an
        cvv wcel cv wwe w3a co adantlr wbr simpr fpwwe2lem9 ex orim12d mpi ) AJ
        FUAZUBZKGUAZUBZRZVHVFRZUCZJKRFGKJUDUEUFSZKJRGFJKUDUEUFSZUCVFUGVHUGVKJFV
        EVEUHZUIKGVGVGUHZUIVFVHUJUKAVIVLVJVMAVIVLAVISBCDEFGHVEVGIJKLMAEULUMZVIN
        TABUNZERLUNZVQVQUDRVQVRUOUPZVQVRHUQEUMZVIOURAJFIUSZVIPTAKGIUSZVIQTVNVOA
        VIUTVAVBAVJVMAVJSBCDEGFHVGVEIKJLMAVPVJNTAVSVTVJOURAWBVJQTAWAVJPTVOVNAVJ
        UTVAVBVCVD $.
    $}

    fpwwe2.4 $e |- X = U. dom W $.
    $( Lemma for ~ fpwwe2 .  (Contributed by Mario Carneiro, 15-May-2015.) $)
    fpwwe2lem11 $p |- ( ph -> W : dom W --> ~P ( X X. X ) ) $=
      ( vw vs wss cv wa wceq cin vt cdm wfn crn cxp cpw wf wfun wrel wbr wi wal
      wwe co ccnv csn cima wsbc wral relopabi simprr fpwwe2lem2 simprbda simprd
      a1i adantrl adantr df-ss sylib adantrr eqtr2d cvv wcel w3a adantlr simprl
      eqtrd fpwwe2lem10 mpjaodan alrimiv alrimivv dffun2 sylanbrc funfn wex vex
      ex elrn cuni releldmi adantl elssuni syl6sseqr xpss12 syl2anc sstrd selpw
      syl syl6ibr exlimdv syl5bi ssrdv df-f ) AGGUBZUCZGUDZHHUEZUFZPXDXHGUGAGUH
      ZXEAGUIZNQZOQZGUJZXKUAQZGUJZRZXLXNSZUKZUAULZOULNULXIXJABQZEPZIQZXTXTUEPZR
      XTYBUMZDQZYBYEYEUEZTFUNCQZSDYBUOYGUPZUQURCXTUSRRBIGJUTZVEAXSNOAXRUAAXPXQA
      XPRZXKXKPZXLXNXKXKUEZTZSZRZXQYKXNXLYLTZSZRZYJYORZXLYMXNYJYKYNVAYSXNYLPZYM
      XNSYJYTYOAXOYTXMAXORXKEPZYTAXOUUAYTRXKXNUMYEXNYFTFUNYGSDXNUOYHUQURCXKUSRA
      BCDEXNFGXKIJKVBVCVDVFVGXNYLVHVIVQYJYRRZXNYPXLYJYKYQVAUUBXLYLPZYPXLSYJUUCY
      RAXMUUCXOAXMRZUUAUUCAXMUUAUUCRXKXLUMYEXLYFTFUNYGSDXLUOYHUQURCXKUSRABCDEXL
      FGXKIJKVBVCVDZVJVGXLYLVHVIVKYJBCDEXLXNFGXKXKIJAEVLVMXPKVGAYAYCYDVNXTYBFUN
      EVMXPLVOAXMXOVPAXMXOVAVRVSWGVTWANOUAGWBWCGWDVIAOXFXHXLXFVMXMNWEAXLXHVMZNX
      LGOWFWHAXMUUFNAXMXLXGPZUUFAXMUUGUUDXLYLXGUUEUUDXKHPZUUHYLXGPUUDXKXDWIZHUU
      DXKXDVMZXKUUIPXMUUJAXKXLGYIWJWKXKXDWLWRMWMZUUKXKHXKHWNWOWPWGOXGWQWSWTXAXB
      XDXHGXCWC $.

    $( Lemma for ~ fpwwe2 .  (Contributed by Mario Carneiro, 18-May-2015.) $)
    fpwwe2lem12 $p |- ( ph -> X e. dom W ) $=
      ( va vw wbr wcel wss wa cvv vs vn vv vz vt vb cuni cdm cxp wwe cv co wceq
      cin ccnv cima wsbc wral cpw wex vex eldm fpwwe2lem2 simpld sylibr exlimdv
      selpw ex syl5bi ssrdv sspwuni elrn simprd releldmi adantl elssuni syl2anc
      sylib syl jca wfr weq w3o c0 wne wn wrex wi wal eleq2i eluni2 bitri inss2
      wel a1i simplrr simprr inss1 simprl sseldi df-br adantr ad2antrr syl12anc
      cop ssbrd mpd brxp simplbi brinxp2 breqd mpbird elind sseldd syl6eqss w3a
      wb wo mpjaodan expr syl5bir rexlimdv exp32 alrimiv anbi12i bitr4i simplrl
      wor weso solin relelrni idd 3orim123d adantrr ad2antrl ssexd imp eliniseg
      ax-mp wrel crn simprbda syl5eqss relopabi syl6sseqr xpss12 sstrd n0 ssel2
      csn simplbda ad2ant2r wefr inelcm syl22anc ralnex simprll simp-4l simprlr
      inex2 fri mpbid syl3anbrc breq1 rspcev adantlr fpwwe2lem10 mtod ralrimiva
      reximdv2 expimpd df-fr reeanv eeanv ad2antll exlimdvv rexlimdvv ralrimivv
      exp31 dfwe2 sylanbrc simpr fpwwe2lem3 anasss cnvimass xpexg dmexg sylancr
      fpwwe2cbv ssexg id olc syl6 a1d elequ1 biimprd jaodan impr jctird syl6ibr
      ancld brin syl6bb sylibrd com24 sylan2 breq2 imbi12d ceqsalv impbid eqrdv
      3bitr4g sylan9eqr sqxpeqd ineq2d relxp relss mp2 anbi12d adantrl pm5.32da
      orc sylan2b df-3an 3bitr3i eqrelrdv eqtrd oveq12d eqeq1d sbcied mpbir2and
      ralrimiv ) AHGUUAZUGZGPZHGUHZQAUYOHERZUYNHHUIZRZSHUYNUJZDUKZUYNVUAVUAUIZU
[encoded data, 6240 characters]
      TABCDEUYNFGHIJKVCUYKHUYNGVWCVNVS $.

    $( Lemma for ~ fpwwe2 .  (Contributed by Mario Carneiro, 18-May-2015.) $)
    fpwwe2lem13 $p |- ( ph -> ( X F ( W ` X ) ) e. X ) $=
      ( wcel wa wss wbr wceq cvv c0 vz va vb vs cfv co wn csn cun ssun2 cdm cxp
      cuni wwe cv cin ccnv cima wsbc wral adantr w3a adantlr fpwwe2lem12 cpw wb
      3syl mpbid fpwwe2lem2 simpld simprd unssd ssun1 mp2an a1i jca wfr w3o wne
      xpss12 wrex ad2antrr ssbrd brxp simplbi syl6 mtod nsyl brun syl6bb notbid
      wi wo ioran bitri sylanbrc simpr sylib mpd ralsn mpbird ex uncom syl6sseq
      vex syl idd simprbi adantl syl5bi ad3antrrr sylibr ssbri cnvimass sylancr
      elun elsni simplr eliniseg ax-mp sqxpeqd ineq2d indir incom syl5ss disjsn
      sylan9eqr syl5eq xpeq2d xp0 syl6eq eqtrd oveq12d eqeq1d sbcied cres eqtri
      un0 crn uneq12d wf wfun fpwwe2lem11 ffun funfvbrb fpwwe2lem5 syldan snssd
      3jca syl6ss wal cdif ssdif0 simpllr ovex breq2 rexsn simplrr sssn raleqdv
      neneqd ord breq1 rexeqbidv syl5bir mp1i wefr simplrl ssundif fri syl22anc
      difexg eldifn pm2.21d syl5 jaod con3d jctird undif1 sseqtr4i ralun ssralv
      ralimdv mpsyl eldifi expimpd reximdv2 pm2.61dne alrimiv df-fr anbi12i wor
      jctild weso solin sylan 3orim123d ancomd 3mix3 3mix1 syl2an 3mix2d ccased
      eqtr3 ralrimivv dfwe2 fpwwe2cbv fpwwe2lem3 fvex xpexg sylancl unexg dmexg
      ssexg id nelne2 syl2anc necon3ai biorf orcom bitr4i syl6rbb 3bitr4g eqrdv
      snex inxp dmxpid ssneldd uneq2d eqcomd eleq1d df-rn rnxpid 3sstr3g sylbid
      dmss rnss sseld ndmima sneqd imaeq2d df-ima cnvxp reseq1i ssid rneqi snnz
      xpssres cnvun imaeq1i imaundir eqtr3i 3eqtr4g df-ss xpindi 3eqtr3g jaodan
      rnxp sylan2b ralrimiva mpbir2and relopabi releldmi elssuni syl6sseqr snss
      pm2.18da ) AHHGUEZFUFZHNZAVVJUGZOZVVIUHZHPVVJVVLVVMHVVMUIZHVVMHUJZVVLVVNG
[encoded data, 5440 characters]
      UTOOBIGJVVBVVCVVNVVPVVDVGMVVEYEVVIHWUPVVFXLVVG $.

    $( Given any function ` F ` from well-orderings of subsets of ` A ` to
       ` A ` , there is a unique well-ordered subset ` <. X , ( W `` X ) >. `
       which "agrees" with ` F ` in the sense that each initial segment maps to
       its upper bound, and such that the entire set maps to an element of the
       set (so that it cannot be extended without losing the well-ordering).
       This theorem can be used to prove ~ dfac8a .  Theorem 1.1 of
       [KanamoriPincus] p. 415.  (Contributed by Mario Carneiro,
       18-May-2015.) $)
    fpwwe2 $p |- ( ph ->
      ( ( Y W R /\ ( Y F R ) e. Y ) <-> ( Y = X /\ R = ( W ` X ) ) ) ) $=
      ( wcel wa wceq wss cin vw vz wbr co cfv cdm wfun cxp cpw fpwwe2lem11 ffun
      wb wf syl funbrfv2b simprbda adantrr cuni elssuni syl6sseqr wi simpl cdif
      a1i c0 simplrr wne wral wrex cvv wfr adantr wwe ccnv csn cima fpwwe2lem12
      cv wn wsbc funfvbrb mpbid fpwwe2lem2 ad2antrr simpld difexg simprd difssd
      ssexd wefr fri expr syl21anc ssdif0 indif1 eqeq1i disj vex eliniseg ax-mp
      notbii ralbii bitri 3bitr2i cnvimass dmxpid syl6sseq syl5ss sseqin2 sylib
      dmss sseq1d syl5bbr rexbidv eldifn ad2antrl eleq1 notbid syl5ibrcom con2d
      simprr breqd eldifi simpr brxp sylanbrc brin rbaib bitrd biimpa ad3antrrr
      imp ssbrd simplbi sylibr ex eqssd df-ss eqtrd jca syl6 sylbird wor sselda
      mtod weso sotric ioran syl6bb syl12anc mpbir2and ssrdv in32 ineq1d eqtr3d
      wo inss2 xpss1 3eqtr3a sqxpeqd ineq2d oveq12d fpwwe2lem3 mpdan rexlimdvaa
      eqneltrd sylbid syld necon4ad mpd w3a adantlr simprl fpwwe2lem10 eqbrtrrd
      mpjaod funbrfv eqcomd fpwwe2lem13 breq12 oveq12 eleq12d anbi12d impbid
      sylc ) AJFHUCZJFGUDZJPZQZJIRZFIHUEZRZQZAUWIUWMAUWIQZUWJUWLUWNJIUWNJHUFZPZ
      JISZAUWFUWPUWHAUWFUWPJHUEFRZAHUGZUWFUWPUWRQULAUWOIIUHZUIZHUMUWSABCDEGHIKL
      MNOUJUWOUXAHUKUNZJFHUOUNUPUQUWPJUWOURIJUWOUSOUTUNZUWNIJSZUWKFJIUHTRZQZUXD
      UWQFUWKIJUHZTZRZQZUXFUXDVAUWNUXDUXEVBVDUWNUXJUXDUWNUXJQZIJVCZVERZUXDUXKUW
      HUXMAUWFUWHUXJVFUXKUWHUXLVEUXKUXLVEVGZUAVRZUBVRZUWKUCZVSZUAUXLVHZUBUXLVIZ
      UWHVSZUXKUXLVJPZIUWKVKZUXLISZUXNUXTVAUXKIVJPUYBUXKIEVJUWNEVJPZUXJAUYEUWIM
      VLZVLZUXKIESZUWKUWTSZUXKUYHUYIQZIUWKVMZDVRZUWKUYLUYLUHZTGUDCVRZRDUWKVNZUY
      NVOZVPVTCIVHZQZAUYJUYRQZUWIUXJAIUWKHUCZUYSAIUWOPZUYTABCDEGHIKLMNOVQAUWSVU
      AUYTULUXBIHWAUNWBZABCDEUWKGHIKLMWCWBWDZWEZWEWIIJVJWFUNUXKUYKUYCUXKUYKUYQU
      XKUYJUYRVUCWGWEZIUWKWJUNUXKIJWHUYBUYCQUYDUXNUXTUBUAIUXLVJUWKWKWLWMUXKUXTU
      YOUXPVOZVPZJSZUBUXLVIUYAUXKUXSVUHUBUXLUXSIVUGTZJSZUXKVUHVUJVUIJVCZVERUXLV
      UGTZVERZUXSVUIJWNVULVUKVEIVUGJWOWPVUMUXOVUGPZVSZUAUXLVHUXSUAUXLVUGWQVUOUX
      RUAUXLVUNUXQUXPVJPVUNUXQULUBWRUWKUXPUXOVJUAWRWSWTZXAXBXCXDUXKVUIVUGJUXKVU
      GISVUIVUGRUXKVUGUWKUFZIUWKVUFXEUXKVUQUWTUFZIUXKUYIVUQVURSUXKUYHUYIVUDWGUW
      KUWTXKUNIXFXGXHVUGIXIXJXLXMXNUXKVUHUYAUBUXLUXKUXPUXLPZVUHQZQZUWGUXPJVVAUW
      GVUGUWKVUGVUGUHZTZGUDZUXPVVAJVUGFVVCGVVAJVUGVVAUAJVUGVVAUXOJPZVUNVVAVVEQZ
      UXQVUNVVFUXQUXOUXPRZVSZUXPUXOUWKUCZVSZVVAVVEVVHVVAVVGVVEVVAVVEVSVVGUXPJPZ
      VSZVUSVVLUXKVUHUXPIJXOXPZVVGVVEVVKUXOUXPJXQXRXSXTYLVVFVVIVVKVVAVVLVVEVVMV
      LVVFVVIUXPUXOFUCZVVKVVFVVNUXPUXOUXHUCZVVIVVFFUXHUXPUXOUXKUXIVUTVVEUWNUWQU
      XIYAWDYBVVFUXPUXOUXGUCZVVOVVIULVVFUXPIPZVVEVVPVVAVVQVVEVUSVVQUXKVUHUXPIJY
      CXPZVLZVVAVVEYDUXPUXOIJYEYFVVOVVIVVPUXPUXOUWKUXGYGYHUNYIVVFVVNUXPUXOJJUHZ
      UCZVVKVVFFVVTUXPUXOUWNFVVTSZUXJVUTVVEUWNJESZVWBUWNVWCVWBQZJFVMUYLFUYMTGUD
      UYNRDFVNUYPVPVTCJVHQZAUWFVWDVWEQZUWHAUWFVWFABCDEFGHJKLMWCYJUQWEWGZYKYMVWA
      VVKVVEUXPUXOJJYEYNUUAUUBUUEVVFIUWKUUCZUXOIPZVVQUXQVVHVVJQZULVVFUYKVWHUXKU
      YKVUTVVEVUEWDIUWKUUFUNVVAJIUXOUWNUWQUXJVUTUXCWDZUUDVVSVWHVWIVVQQQUXQVVGVV
      IUUPVSVWJIUXOUXPUWKUUGVVGVVIUUHUUIUUJUUKVUPYOYPUULUXKVUSVUHYAYQZVVAFUWKVV
      TTZVVCVVAUXHVVTTZVWMUXGTZFVWMUWKUXGVVTUUMVVAFVVTTZVWNFVVAFUXHVVTUWNUWQUXI
      VUTVFUUNVVAVWBVWPFRUWNVWBUXJVUTVWGWDFVVTYRXJUUOVVAVWMUXGSVWOVWMRVVAVWMVVT
      UXGUWKVVTUUQVVAUWQVVTUXGSVWKJIJUURUNXHVWMUXGYRXJUUSVVAVVTVVBUWKVVAJVUGVWL
      UUTUVAYSUVBVVAVVQVVDUXPRVVRVVABCDEUXPUWKGHIKLUXKUYEVUTUYGVLUWNUYTUXJVUTAU
      YTUWIVUBVLZWDUVCUVDYSVVMUVFUVEUVGUVHUVIUVJIJWNYOYPUWNBCDEUWKFGHIJKLUYFABV
      RZESKVRZVWRVWRUHSVWRVWSVMUVKVWRVWSGUDEPUWINUVLVWQAUWFUWHUVMZUVNUVPYQZUWNU
      WKFUWNUWSIFHUCUWKFRAUWSUWIUXBVLUWNJIFHVXAVWTUVOIFHUVQUWEUVRYTYPAUWIUWMUYT
      IUWKGUDZIPZQAUYTVXCVUBABCDEGHIKLMNOUVSYTUWMUWFUYTUWHVXCJIFUWKHUVTUWMUWGVX
      BJIJIFUWKGUWAUWJUWLVBUWBUWCXSUWD $.
  $}

  ${
    $d a r s x A $.  $d a r s u x y z F $.  $d r u x y ph $.  $d r u x y R $.
    $d r u x y X $.  $d r u x y Y $.
    fpwwe.1 $e |- W = { <. x , r >. | ( ( x C_ A /\ r C_ ( x X. x ) ) /\
      ( r We x /\ A. y e. x ( F ` ( `' r " { y } ) ) = y ) ) } $.
    $( Lemma for ~ fpwwe .  (Contributed by Mario Carneiro, 15-May-2015.) $)
    fpwwecbv $p |- W = { <. a , s >. | ( ( a C_ A /\ s C_ ( a X. a ) ) /\
      ( s We a /\ A. z e. a ( F ` ( `' s " { z } ) ) = z ) ) } $=
      ( cv wss wa wwe cima cfv wceq wral weq anbi12d cxp csn copab simpl sseq1d
      ccnv simpr sqxpeqd sseq12d weeq2 weeq1 sylan9bb imaeq2d fveq2d id eqeq12d
      sneq cbvralv cnveqd imaeq1d eqeq1d raleqbidv syl5bb cbvopabv eqtri ) FAKZ
      DLZHKZVFVFUAZLZMZVFVHNZVHUFZBKZUBZOZEPZVNQZBVFRZMZMZAHUCIKZDLZGKZWBWBUAZL
      ZMZWBWDNZWDUFZCKZUBZOZEPZWJQZCWBRZMZMZIGUCJWAWQAHIGAISZHGSZMZVKWGVTWPWTVG
      WCVJWFWTVFWBDWRWSUDZUEWTVHWDVIWEWRWSUGZWTVFWBXAUHUITWTVLWHVSWOWRVLWBVHNWS
      WHVFWBVHUJWBVHWDUKULVSVMWKOZEPZWJQZCVFRWTWOVRXEBCVFBCSZVQXDVNWJXFVPXCEXFV
      OWKVMVNWJUQUMUNXFUOUPURWTXEWNCVFWBXAWTXDWMWJWTXCWLEWTVMWIWKWTVHWDXBUSUTUN
      VAVBVCTTVDVE $.

    $d r u x y W $.
    fpwwe.2 $e |- ( ph -> A e. _V ) $.
    $( Lemma for ~ fpwwe .  (Contributed by Mario Carneiro, 15-May-2015.) $)
    fpwwelem $p |- ( ph -> ( X W R <-> ( ( X C_ A /\ R C_ ( X X. X ) ) /\
      ( R We X /\ A. y e. X ( F ` ( `' R " { y } ) ) = y ) ) ) ) $=
      ( wss cxp wa wwe cv wceq cvv wcel anbi12d wbr ccnv csn cima cfv wral wrel
      relopabi brrelex12 sylan adantr simprll ssexd xpexg syl2anc simprlr simpl
      a1i jca sseq1d simpr sqxpeqd sseq12d weeq2 sylan9bb cnveqd imaeq1d fveq2d
      weeq1 eqeq1d raleqbidv brabga pm5.21nd ) AHEGUAZHDLZEHHMZLZNZHEOZEUBZCPZU
      CZUDZFUEZWAQZCHUFZNZNZHRSZERSZNZAGUGZVNWKWLABPZDLZIPZWMWMMZLZNZWMWOOZWOUB
      ZWBUDZFUEZWAQZCWMUFZNZNZBIGJUHURHEGUIUJAWHNZWIWJXGHDRADRSWHKUKAVOVQWGULUM
      ZXGEVPRXGWIWIVPRSXHXHHHRRUNUOAVOVQWGUPUMUSXFWHBIHEGRRWMHQZWOEQZNZWRVRXEWG
      XKWNVOWQVQXKWMHDXIXJUQZUTXKWOEWPVPXIXJVAZXKWMHXLVBVCTXKWSVSXDWFXIWSHWOOXJ
      VSWMHWOVDHWOEVIVEXKXCWECWMHXLXKXBWDWAXKXAWCFXKWTVTWBXKWOEXMVFVGVHVJVKTTJV
      LVM $.

    fpwwe.3 $e |- ( ( ph /\ x e. ( ~P A i^i dom card ) ) -> ( F ` x ) e. A ) $.
    fpwwe.4 $e |- X = U. dom W $.
    $( Given any function ` F ` from the powerset of ` A ` to ` A ` , ~ canth2
       gives that the function is not injective, but we can say rather more
       than that.  There is a unique well-ordered subset
       ` <. X , ( W `` X ) >. ` which "agrees" with ` F ` in the sense that
       each initial segment maps to its upper bound, and such that the entire
       set maps to an element of the set (so that it cannot be extended without
       losing the well-ordering).  This theorem can be used to prove ~ dfac8a .
       Theorem 1.1 of [KanamoriPincus] p. 415.  (Contributed by Mario Carneiro,
       18-May-2015.) $)
    fpwwe $p |- ( ph ->
      ( ( Y W R /\ ( F ` Y ) e. Y ) <-> ( Y = X /\ R = ( W ` X ) ) ) ) $=
      ( cfv wcel wa c1st wceq cvv vu wbr ccom co cop df-ov wfn fo1st fofn ax-mp
      wfo opex fvco2 mp2an eqtri cv wss cxp wwe ccnv cima wral bropaex12 op1stg
      csn syl fveq2d syl5eq eleq1d pm5.32i copab cin wsbc vex cnvex imaex inex1
      algrflem fveq2 eqeq1d sbcie ralbii anbi2i opabbii eqtr4i w3a cpw ccrd cdm
      simp1 selpw sylibr wex 19.8a 3ad2ant3 ween sylan2 syl5eqel fpwwe2 syl5bbr
      elind ) IEGUBZIFOZIPZQXBIEFRUCZUDZIPZQAIHSEHGOSQXBXGXDXBXFXCIXBXFIEUEZROZ
      FOZXCXFXHXEOZXJIEXEUFRTUGZXHTPXKXJSTTRUKXLUHTTRUIUJIEULTFRXHUMUNUOXBXIIFX
      BITPETPQXIISBUPZDUQZJUPZXMXMURUQZQZXMXOUSZXOUTZCUPZVEZVAZFOZXTSZCXMVBZQZQ
      ZBJIEGKVCIETTVDVFVGVHVIVJABCUADEXEGHIJGYGBJVKXQXRUAUPZXOYHYHURZVLZXEUDZXT
      SZUAYBVMZCXMVBZQZQZBJVKKYPYGBJYOYFXQYNYEXRYMYDCXMYLYDUAYBXSYAXOJVNZVOVPYH
      YBSZYKYCXTYRYKYHFOYCYHYJFUAVNXOYIYQVQVRYHYBFVSVHVTWAWBWCWCWDWELAXNXPXRWFZ
      QXMXOXEUDXMFOZDXMXOFBVNYQVRYSAXMDWGZWHWIZVLPYTDPYSUUAUUBXMYSXNXMUUAPXNXPX
      RWJBDWKWLYSXRJWMZXMUUBPXRXNUUCXPXRJWNWOXMJWPWLXAMWQWRNWSWT $.
  $}

  ${
    $d r x y A $.  $d r x y B $.  $d r x y D $.  $d r x y F $.  $d r x y V $.
    $d y C $.  $d r x y W $.
    canth4.1 $e |- W = { <. x , r >. | ( ( x C_ A /\ r C_ ( x X. x ) ) /\
      ( r We x /\ A. y e. x ( F ` ( `' r " { y } ) ) = y ) ) } $.
    canth4.2 $e |- B = U. dom W $.
    canth4.3 $e |- C = ( `' ( W ` B ) " { ( F ` B ) } ) $.
    $( An "effective" form of Cantor's theorem ~ canth .  For any function
       ` F ` from the powerset of ` A ` to ` A ` , there are two definable sets
       ` B ` and ` C ` which witness non-injectivity of ` F ` .  Corollary 1.3
       of [KanamoriPincus] p. 416.  (Contributed by Mario Carneiro,
       18-May-2015.) $)
    canth4 $p |- ( ( A e. V /\ F : D --> A /\ ( ~P A i^i dom card ) C_ D ) ->
      ( B C_ A /\ C C. B /\ ( F ` B ) = ( F ` C ) ) ) $=
      ( wcel wss cfv wceq wa simpld simprd wf cpw ccrd cdm cin w3a wpss cxp wwe
      ccnv cv csn cima wral wbr eqid pm3.2i elex 3ad2ant1 simpl2 simp3 ffvelrnd
      cvv sselda fpwwe mpbiri fpwwelem mpbid cnvimass eqsstri dmss syl syl6sseq
      dmxpid syl5ss wor wn weso sonr syl2anc eleq2i fvex eliniseg ax-mp sylnibr
      wb bitri ssnelpssd sneq imaeq2d syl6eqr fveq2d id eqeq12d rspcv sylc 3jca
      eqcomd ) CHNZFCGUAZCUBUCUDUEZFOZUFZDCOZEDUGDGPZEGPZQXCXDDIPZDDUHZOZXCXDXI
      RZDXGUIZXGUJZBUKZULZUMZGPZXMQZBDUNZRZXCDXGIUOZXJXSRXCXTXEDNZXCXTYARDDQZXG
      XGQZRYBYCDUPXGUPUQXCABCXGGIDDJKWSWTCVCNXBCHURUSZXCAUKZXANZRFCYEGWSWTXBYFU
      TXCXAFYEWSWTXBVAVDVBLVEVFZSXCABCXGGIDJKYDVGVHZSZSXCEDXEXCEXGUDZDEXLXEULZU
      MZYJMXGYKVIVJXCYJXHUDZDXCXIYJYMOXCXDXIYITXGXHVKVLDVNVMVOXCXTYAYGTZXCXEXEX
      GUOZXEENZXCDXGVPZYAYOVQXCXKYQXCXKXRXCXJXSYHTZSDXGVRVLYNDXEXGVSVTYPXEYLNZY
      OEYLXEMWAXEVCNYSYOWFDGWBZXGXEXEVCYTWCWDWGWEWHXCXFXEXCYAXRXFXEQZYNXCXKXRYR
      TXQUUABXEDXMXEQZXPXFXMXEUUBXOEGUUBXOYLEUUBXNYKXLXMXEWIWJMWKWLUUBWMWNWOWPW
      RWQ $.

    $( Lemma for ~ canthnum .  (Contributed by Mario Carneiro, 19-May-2015.) $)
    canthnumlem $p |- ( A e. V -> -. F : ( ~P A i^i dom card ) -1-1-> A ) $=
      ( wcel wceq wa cfv wss wb adantr cv cpw ccrd cdm cin wf1 wpss wf w3a ssid
      f1f canth4 mp3an3 sylan2 simp3d simpr simp1d elpw2g wwe wex ccnv csn cima
      mpbird wral cxp wbr eqid pm3.2i cvv elex ffvelrnda mpbiri simpld fpwwelem
      fpwwe mpbid simprd fvex weeq1 spcev ween sylibr elind simp2d pssssd sstrd
      syl ssnum syl2anc f1fveq syl12anc pssned necomd neneqd pm2.65da ) CGMZCUA
      ZUBUCZUDZCFUEZDENZWPWTOZDFPZEFPNZXAXBDCQZEDUFZXDWTWPWSCFUGZXEXFXDUHZWSCFU
      JZWPXGWSWSQXHWSUIABCDEWSFGHIJKLUKULUMZUNXBWTDWSMEWSMXDXARWPWTUOZXBWQWRDXB
      DWQMZXEXBXEXFXDXJUPZWPXLXERWTDCGUQSVCXBDITZURZIUSZDWRMZXBDDHPZURZXPXBXSXR
      UTBTZVAVBFPXTNBDVDZXBXEXRDDVEQOZXSYAOZXBDXRHVFZYBYCOXBYDXCDMZXBYDYEODDNZX
      RXRNZOYFYGDVGXRVGVHXBABCXRFHDDIJWPCVIMWTCGVJSZXBWSCATFXBWTXGXKXIWGVKKVOVL
      VMXBABCXRFHDIJYHVNVPVQVMXOXSIXRDHVRDXNXRVSVTWGDIWAWBZWCXBWQWREXBEWQMZECQZ
      XBEDCXBEDXBXEXFXDXJWDZWEZXMWFWPYJYKRWTECGUQSVCXBXQEDQEWRMYIYMDEWHWIWCWSCD
      EFWJWKVPXBDEXBEDXBEDYLWLWMWNWO $.
  $}

  ${
    $d a f r s x y z $.  $d a f r s x z A $.  $d a f s z V $.
    $( The set of well-orderable subsets of a set ` A ` strictly dominates
       ` A ` .  A stronger form of ~ canth2 .  Corollary 1.4(a) of
       [KanamoriPincus] p. 417.  (Contributed by Mario Carneiro,
       19-May-2015.) $)
    canthnum $p |- ( A e. V -> A ~< ( ~P A i^i dom card ) ) $=
      ( vx vf va vz vr vy vs wcel cdm cdom wbr cfn cvv wss cv wa cfv eqid pwexg
      cpw ccrd cin cen csdm inex1g infpwfidom 3syl syl finnum ssriv sslin ax-mp
      ssdomg mpisyl domtr syl2anc wf1o wex wf1 cxp wwe ccnv csn cima wceq copab
      wral cuni fpwwecbv canthnumlem f1of1 nsyl nexdv ensym bren sylib sylanbrc
      wn brsdom ) ABJZAAUBZUCKZUDZLMZAWEUEMZVTAWEUFMWBAWCNUDZLMZWHWELMZWFWBWCOJ
      ZWHOJWIABUAZWCNOUGAUHUIWBWEOJZWHWEPZWJWBWKWMWLWCWDOUGUJNWDPWNCNWDCQZUKULN
      WDWCUMUNWHWEOUOUPAWHWEUQURWBWEADQZUSZDUTZWGWBWQDWBWEAWPVAWQEFAWOAPGQZWOWO
      VBPRWOWSVCWSVDHQZVEVFWPSWTVGHWOVIRRCGVHZKVJZXBXASVDXBWPSVEVFZWPBXAICHFAWP
      XAIGEXATVKXBTXCTVLWEAWPVMVNVOWGWEAUEMWRAWEVPWEADVQVRVNAWEWAVS $.
  $}

  ${
    $d r u x y B $.  $d r x C $.  $d f r u v w x y O $.  $d f r u v w x y V $.
    $d a f r s v w x y z $.  $d a f r s u v w x y A $.  $d r u x y F $.
    $d r u x y W $.
    canthwe.1 $e |- O = { <. x , r >. |
      ( x C_ A /\ r C_ ( x X. x ) /\ r We x ) } $.
    ${
      canthwe.2 $e |- W = { <. x , r >. | ( ( x C_ A /\ r C_ ( x X. x ) ) /\
      ( r We x /\ A. y e. x [. ( `' r " { y } ) / u ].
        ( u F ( r i^i ( u X. u ) ) ) = y ) ) } $.
      canthwe.3 $e |- B = U. dom W $.
      canthwe.4 $e |- C = ( `' ( W ` B ) " { ( B F ( W ` B ) ) } ) $.
      $( Lemma for ~ canthwe .  (Contributed by Mario Carneiro,
         31-May-2015.) $)
      canthwelem $p |- ( A e. V -> -. F : O -1-1-> A ) $=
        ( wcel wa wceq cvv wss wf1 cfv co wbr ccnv cima eqid pm3.2i elex adantr
        csn cv cxp wwe w3a cop df-ov f1f ad2antlr copab opabid sylibr syl6eleqr
        simpr ffvelrnd syl5eqel fpwwe2 mpbiri simprd cin xpeq12i ineq2i oveq12i
        wf simpld fpwwe2lem3 mpdan syl5eq 3eqtr3g cnvimass wsbc wral fpwwe2lem2
        wb cdm mpbid dmss syl dmxpss syl6ss syl5ss syl5eqss sstrd a1i wess sylc
        inss2 weinxp sylib fvex cnvex imaex eqeltri inex1 simpl sqxpeqd sseq12d
        sseq1d weeq2 weeq1 sylan9bb 3anbi123d opelopaba syl3anbrc ssexd syl2anc
        opelopabga mpbir3and syl12anc opth1 eleqtrrd syl6eleq ovex eliniseg wor
        f1fveq wn weso sonr pm2.65da ) DIPZHDGUAZEEJUBZGUCZYNYMUDZYKYLQZYNYMUEZ
        YNUKZUFZPZYOYPYNFYSYPYNEFYPEYMJUDZYNEPZYPUUAUUBQEERZYMYMRZQUUCUUDEUGYMU
        GUHYPABCDYMGJEEKMYKDSPYLDIUIUJZYPAULZDTZKULZUUFUUFUMZTZUUFUUHUNZUOZQZUU
        FUUHGUCUUFUUHUPZGUBDUUFUUHGUQUUMHDUUNGYLHDGVNYKUULHDGURUSUUMUUNUULAKUTZ
        HUUMUULUUNUUOPYPUULVDUULAKVAVBLVCVEVFNVGVHZVIZYPFYMFFUMZVJZUPZEYMUPZRZF
        ERYPUUTGUBZUVAGUBZRZUVBYPFUUSGUCZYNUVCUVDYPUVFYSYMYSYSUMZVJZGUCZYNFYSUU
        SUVHGOUURUVGYMFYSFYSOOVKVLVMYPUUBUVIYNRUUQYPABCDYNYMGJEKMUUEYPUUAUUBUUP
        VOZVPVQVRFUUSGUQEYMGUQVSYPYLUUTHPUVAHPUVEUVBWDYKYLVDYPUUTUUOHYPFDTZUUSU
        URTZFUUSUNZUUTUUOPYPFEDYPFYSEOYPYSYMWEZEYMYRVTYPUVNEEUMZWEZEYPYMUVOTZUV
        NUVPTYPEDTZUVQYPUVRUVQQZEYMUNZCULZYMUWAUWAUMVJGUCBULZRCYQUWBUKUFWABEWBZ
        QZYPUUAUVSUWDQUVJYPABCDYMGJEKMUUEWCWFZVOZVIZYMUVOWGWHEEWIWJWKWLZYPUVRUV
        QUWFVOZWMUVLYPYMUURWQWNYPFYMUNZUVMYPFETUVTUWJUWHYPUVTUWCYPUVSUWDUWEVIVO
        ZFEYMWOWPFYMWRWSUULUVKUVLUVMUOAKFUUSFYSSOYQYRYMEJWTZXAXBXCZYMUURUWLXDZU
        UFFRZUUHUUSRZQZUUGUVKUUJUVLUUKUVMUWQUUFFDUWOUWPXEZXHUWQUUHUUSUUIUURUWOU
        WPVDUWQUUFFUWRXFXGUWOUUKFUUHUNUWPUVMUUFFUUHXIFUUHUUSXJXKXLXMXNLVCYPUVAU
        UOHYPUVAUUOPZUVRUVQUVTUWIUWGUWKYPESPYMSPZUWSUVRUVQUVTUOZWDYPEDSUUEUWIXO
        UWTYPUWLWNUULUXAAKEYMSSUUFERZUUHYMRZQZUUGUVRUUJUVQUUKUVTUXDUUFEDUXBUXCX
        EZXHUXDUUHYMUUIUVOUXBUXCVDUXDUUFEUXEXFXGUXBUUKEUUHUNUXCUVTUUFEUUHXIEUUH
        YMXJXKXLXQXPXRLVCHDUUTUVAGYFXSWFFUUSEYMUWMUWNXTWHYAOYBYPUUBYTYOWDUUQYMY
        NYNEEYMGYCYDWHWFYPEYMYEZUUBYOYGYPUVTUXFUWKEYMYHWHUUQEYNYMYIXPYJ $.
    $}

    $( The set of well-orders of a set ` A ` strictly dominates ` A ` .  A
       stronger form of ~ canth2 .  Corollary 1.4(b) of [KanamoriPincus]
       p. 417.  (Contributed by Mario Carneiro, 31-May-2015.) $)
    canthwe $p |- ( A e. V -> A ~< O ) $=
      ( vv vf wcel wbr cvv cxp wss cv wwe wa csn c0 wceq eqid vu vy vw va vs vz
      cdom cen csdm cpw w3a copab simp1 selpw sylibr simp2 xpss12 syl2anc sstrd
      wn jca ssopab2i df-xp 3sstr4i pwexg sqxpexg syl xpexg ssexg sylancr simpr
      cop snssd 0ss a1i wrel rel0 br0 wesn mpbiri mp1i 0ex simpl sseq1d sqxpeqd
      snex sseq12d weeq2 weeq1 sylan9bb 3anbi123d opelopaba syl3anbrc syl6eleqr
      ex wb opth2 mpbiran2 vex sneqbg ax-mp bitri 2a1i dom2d mpd wex wf1 cin co
      wf1o ccnv cima wsbc wral cuni fpwwe2cbv canthwelem f1of1 nsyl nexdv ensym
      cdm cfv bren sylib brsdom sylanbrc ) BDIZBCUGJZBCUHJZUTBCUIJYHCKIZYIYHCBU
      JZBBLZUJZLZMYOKIZYKANZBMZENZYQYQLZMZYQYSOZUKZAEULZYQYLIZYSYNIZPZAEULCYOUU
      CUUGAEUUCUUEUUFUUCYRUUEYRUUAUUBUMZABUNUOUUCYSYMMUUFUUCYSYTYMYRUUAUUBUPUUC
      YRYRYTYMMUUHUUHYQBYQBUQURUSEYMUNUOVAVBFAEYLYNVCVDYHYLKIYNKIZYPBDVEYHYMKIU
      UIBDVFYMKVEVGYLYNKKVHURCYOKVIVJYHUAGBCUANZQZRVLZGNZQZRVLZKYHUUJBIZUULCIYH
      UUPPZUULUUDCUUQUUKBMZRUUKUUKLZMZUUKROZUULUUDIUUQUUJBYHUUPVKVMUUTUUQUUSVNV
      ORVPZUVAUUQVQUVBUVAUUJUUJRJUTUUJUUJVRUUJRVSVTWAUUCUURUUTUVAUKAEUUKRUUJWFW
      BYQUUKSZYSRSZPZYRUURUUAUUTUUBUVAUVEYQUUKBUVCUVDWCZWDUVEYSRYTUUSUVCUVDVKUV
      EYQUUKUVFWEWGUVCUUBUUKYSOUVDUVAYQUUKYSWHUUKYSRWIWJWKWLWMFWNWOUULUUOSZUUJU
      UMSZWPYHUUPUUMBIPUVGUUKUUNSZUVHUVGUVIRRSRTUUKRUUNRUUMWFWBWQWRUUJKIUVIUVHW
      PUAWSUUJUUMKWTXAXBXCXDXEYHCBHNZXJZHXFZYJYHUVKHYHCBUVJXGUVKAUBUCBUDNZBMUEN
      ZUVMUVMLMPUVMUVNOUUMUVNUUMUUMLXHUVJXIUFNZSGUVNXKUVOQXLXMUFUVMXNPPUDUEULZY
      BXOZUVQUVPYCZXKUVQUVRUVJXIQXLZUVJCDUVPEFUDUFUBUCGBUVJUVPEUEAUVPTXPUVQTUVS
      TXQCBUVJXRXSXTYJCBUHJUVLBCYACBHYDYEXSBCYFYG $.
  $}

  ${
    $d x A $.
    $( Lemma for ~ canthp1 .  (Contributed by Mario Carneiro, 18-May-2015.) $)
    canthp1lem1 $p |- ( 1o ~< A -> ( A +c 2o ) ~<_ ~P A ) $=
      ( vx c1o csdm wbr c2o ccda co cxp cdom cpw wcel c0 wceq sylib csn cen cvv
      syl syl2anc 1sdom2 cdaxpdom mpan2 cv wn wex sdom0 breq2 mtbiri con2i neq0
      cdif relsdom brrelex2i adantr enrefg cpr df2o2 pwpw0 eqtr4i 0ex vex en2sn
      mp2an pwen ax-mp eqbrtri xpen sylancl snex pwex cun uncom wss simpr snssd
      undif syl5eq difexg canth2g domunsn 3syl eqbrtrrd xpdom1g sylancr endomtr
      pwcdaen ensymd domentr cin a1i incom disjdif eqtri cdaun syl3anc exlimddv
      wa breqtrd domtr ) CADEZAFGHZAFIZJEZXCAKZJEZXBXEJEXACFDEXDUAAFUBUCXABUDZA
      LZXFBXAAMNZUEXHBUFXIXAXIXACMDECUGAMCDUHUIUJBAUKOXAXHWRZXCAXGPZULZXKGHZKZJ
      EZXNXEQEZXFXJXCXLKZXKKZIZJEZXSXNQEXOXJXCAXRIZQEZYAXSJEZXTXJAAQEZFXRQEYBXJ
      ARLZYDXAYEXHCADUMUNUOZARUPSFMPZKZXRQFMYGUQYHURUSUTYGXKQEZYHXRQEMRLXGRLYIV
      ABVBMXGRRVCVDYGXKVEVFVGAAFXRVHVIXJXRRLAXQJEYCXKXGVJZVKXJXLXKVLZAXQJXJYKXK
      XLVLZAXLXKVMXJXKAVNYLANXJXGAXAXHVOVPXKAVQOVRZXJXLRLZXLXQDEYKXQJEXJYEYNYFA
      XKRVSSZXLRVTXLXQXGWAWBWCAXQXRRWDWEXCYAXSWFTXJXNXSXJYNXKRLZXNXSQEYOYJXLXKR
      RWGVIWHXCXSXNWITXJXMAQEXPXJXMYKAQXJYNYPXLXKWJZMNZXMYKQEYOYPXJYJWKYRXJYQXK
      XLWJMXLXKWLXKAWMWNWKXLXKRRWOWPYMWSXMAVESXCXNXEWITWQXBXCXEWTT $.
  $}

  ${
    $d r x y A $.  $d r x y B $.  $d r x y H $.  $d r x y ph $.  $d r x y W $.
    canthp1lem2.1 $e |- ( ph -> 1o ~< A ) $.
    canthp1lem2.2 $e |- ( ph -> F : ~P A -1-1-onto-> ( A +c 1o ) ) $.
    canthp1lem2.3 $e |- ( ph ->
      G : ( ( A +c 1o ) \ { ( F ` A ) } ) -1-1-onto-> A ) $.
    canthp1lem2.4 $e |- H = ( ( G o. F ) o.
      ( x e. ~P A |-> if ( x = A , (/) , x ) ) ) $.
    canthp1lem2.5 $e |- W = { <. x , r >. | ( ( x C_ A /\ r C_ ( x X. x ) ) /\
      ( r We x /\ A. y e. x ( H ` ( `' r " { y } ) ) = y ) ) } $.
    canthp1lem2.6 $e |- B = U. dom W $.
    $( Lemma for ~ canthp1 .  (Contributed by Mario Carneiro, 18-May-2015.) $)
    canthp1lem2 $p |- -. ph $=
      ( c1o wcel syl wceq ccda co cpw cen wbr wf1o csdm relsdom brrelex2i pwexg
      cvv f1oeng syl2anc ensym wn c2o cdom cfn wpss com canth2g sdomen2 sdomnen
      wb mpbid ccrd cdm con0 omelon onenon ax-mp wss cfv ccnv csn cima cin ccom
      wf w3a cdif cres cv c0 cif cmpt wfun wfo dff1o3 simprbi f1ofo wfn fnresdm
      f1ofn foeq1 4syl mpbird fvex f1osng sylancl fnressn f1oeq1 resdif syl3anc
      cop pwidg f1oco sylibr wne a1i eldifsn sylanbrc eqid pssned fveq1i elpw2g
      wa fvco3 3eqtr3d adantr ifcl eqeq1 ifbieq2d fvmptg neneqd iffalsed fveq2d
      sylancr id fvres mpd wwe cxp simpld 2onn cun df-2o 1onn mto cdaval simplr
      resco 0elpw sdom0 breq2 mtbii necon2ai ad2antrr simpr neqned ifclda fmptd
      f1of fco crn frn cores syl6eqr feq1d inss1 canth4 simp1d wi simp2d necomd
      simp3d 3eqtr3g pssssd sstrd pssne sspsstr sylan eqtrd anim12i 3eqtr4d wf1
      sylan9eq f1of1 f1fveq syl12anc ex necon3ad npss sylib wral pm3.2i ffvelrn
      wex sseli syl2an fpwwe mpbiri fpwwelem simprd weeq1 ween eqeltrrd domtri2
      spcev infcda1 syl6bir syl6 mt3d nnsdom cdafi isfinite csuc sseqtr4i xpss1
      sssucid unss2 mp1i ssun2 elexi sucid eleqtrri opelxpi mp2an sselii wo 1n0
      snid neii opelxp2 elsni word nnord ordirr mp2b opelxp1 pm3.2ni elun mtbir
      ssnelpss mp2ani psseq12d php3 canthp1lem1 sdomdomtr pm2.65i ) ADQUAUBZDUC
      ZUDUEZAVUBVUAUDUEZVUCAVUBUKRZVUBVUAFUFZVUDADUKRZVUEAQDUGUEZVUGKQDUGUHUISZ
      DUKUJSLVUBVUAUKFULUMZVUBVUAUNSAVUAVUBUGUEZVUCUOAVUADUPUAUBZUGUEZVULVUBUQU
      EZVUKAVULURRZVUAVULUSZVUMAVULUTUGUEZVUOADUTUGUEZUPUTUGUEZVUQAVURDVUAUDUEZ
      ADVUAUGUEZVUTUOADVUBUGUEZVVAAVUGVVBVUIDUKVASAVUDVVBVVAVDVUJVUBVUADVBSVEDV
      UAVCSAVURUOZVUADUDUEZVUTAVVCUTDUQUEZVVDAUTVFVGZRZDVVFRVVEVVCVDUTVHRVVGVIU
      TVJVKAEDVVFAEDVLZEDTZAVVHEIVMZVNZEHVMZVOVPZEUSZVVLVVMHVMZTZAVUGVUBDHVSZVU
      BVVFVQZVUBVLZVVHVVNVVPVTVUIAVUBDGFVRZVUBDVOZWAZWBZBVUBBWCZDTZWDVWDWEZWFZV
      RZVSZVVQAVWBDVWCVSZVUBVWBVWGVSZVWIAVWBDVWCUFZVWJAVWBDGFVWBWBZVRZUFZVWLAVU
      ADFVMZVOZWAZDGUFVWBVWRVWMUFZVWOMAFVNWGZVUBVUAFVUBWBZWHZVWAVWQFVWAWBZWHZVW
      SAVUFVWTLVUFVUBVUAFWHZVWTVUBVUAFWIWJSAVXBVXEAVUFVXELVUBVUAFWKSAVUFFVUBWLZ
      VXAFTVXBVXEVDLVUBVUAFWNZVUBFWMVUBVUAVXAFWOWPWQAVWAVWQVXCUFZVXDAVXHVWAVWQD
      VWPXEVOZUFZAVUGVWPUKRVXJVUIDFWRDVWPUKUKWSWTAVXCVXITZVXHVXJVDAVXFDVUBRZVXK
      AVUFVXFLVXGSAVUGVXLVUIDUKXFSVUBDFXAUMVWAVWQVXCVXIXBSWQVWAVWQVXCWKSVUBVWAV
      UAVWQFXCXDVWBVWRDGVWMXGUMVWCVWNTVWLVWOVDGFVWBUUBVWBDVWCVWNXBVKXHZVWBDVWCU
      UMSABVUBVWFVWBVWGAVWDVUBRZXQZVWEWDVWDVWBVXOVWEXQZWDVUBRZWDDXIZWDVWBRVXQVX
      PDUUCZXJAVXRVXNVWEAVUHVXRKVUHWDDWDDTQWDUGUEVUHQUUDWDDQUGUUEUUFUUGSUUHWDVU
      BDXKXLVXOVWEUOZXQZVXNVWDDXIVWDVWBRAVXNVXTUUAVYAVWDDVXOVXTUUIUUJVWDVUBDXKX
      LUUKVWGXMZUULZVUBVWBDVWCVWGUUNUMAVUBDVWHHAVWHVVTVWGVRZHAVWGUUOVWBVLZVWHVY
      DTAVWKVYEVYCVUBVWBVWGUUPSVVTVWGVWBUUQSNUURUUSVEZVVSAVUBVVFUUTZXJBCDEVVMVU
      BHUKIJOPVVMXMUVAXDZUVBZAEDUSZUOZVVHVVIUVCAEVVMXIVYKAVVMEAVVMEAVVHVVNVVPVY
      HUVDZXNUVEAVYJEVVMAVYJEVVMTZAVYJXQZEVWCVMZVVMVWCVMZTZVYMVYNEVVTVMZVVMVVTV
      MZVYOVYPVYNEVWGVMZVVTVMZVVMVWGVMZVVTVMZVYRVYSAWUAWUCTVYJAEVYDVMZVVMVYDVMZ
      WUAWUCAVVLVVOWUDWUEAVVHVVNVVPVYHUVFEHVYDNXOVVMHVYDNXOUVGAVWKEVUBRZWUDWUAT
      VYCAWUFVVHVYIAVUGWUFVVHVDVUIEDUKXPSWQZVUBVWBEVVTVWGXRUMAVWKVVMVUBRZWUEWUC
      TVYCAWUHVVMDVLZAVVMEDAVVMEVYLUVHZVYIUVIAVUGWUHWUIVDVUIVVMDUKXPSWQZVUBVWBV
      VMVVTVWGXRUMXSXTVYNVYTEVVTAVYJVYTVVIWDEWEZEAWUFWULVUBRZVYTWULTWUGAVXQWUFW
      UMVXSWUGVVIWDEVUBYAYHBEVWFWULVUBVUBVWGVWDETZVWEVVIVWDEWDVWDEDYBWUNYIYCVYB
      YDUMVYJVVIWDEVYJEDEDUVJZYEYFUVQYGVYNWUBVVMVVTVYNWUBVVMDTZWDVVMWEZVVMAWUBW
      UQTZVYJAWUHWUQVUBRZWURWUKAVXQWUHWUSVXSWUKWUPWDVVMVUBYAYHBVVMVWFWUQVUBVUBV
      WGVWDVVMTZVWEWUPVWDVVMWDVWDVVMDYBWUTYIYCVYBYDUMXTVYNWUPWDVVMVYNVVMDVYNVVM
      DAVVMEVLVYJVVMDUSWUJVVMEDUVKUVLXNZYEYFUVMYGXSVYNEVWBRZVYOVYRTVYNWUFEDXIZX
      QWVBAWUFVYJWVCWUGWUOUVNEVUBDXKXHZEVWBVVTYJSVYNVVMVWBRZVYPVYSTVYNWUHVVMDXI
      WVEAWUHVYJWUKXTWVAVVMVUBDXKXLZVVMVWBVVTYJSUVOVYNVWBDVWCUVPZWVBWVEVYQVYMVD
      AWVGVYJAVWLWVGVXMVWBDVWCUVRSXTWVDWVFVWBDEVVMVWCUVSUVTVEUWAUWBYKEDUWCUWDYK
      AEJWCZYLZJUWHZEVVFRAEVVJYLZWVJAWVKVVKCWCZVOVPHVMWVLTCEUWEZAVVHVVJEEYMVLXQ
      ZWVKWVMXQZAEVVJIUEZWVNWVOXQAWVPVVLERZAWVPWVQXQEETZVVJVVJTZXQWVRWVSEXMVVJX
      MUWFABCDVVJHIEEJOVUIAVVQVXNVWDHVMDRVWDVVRRVYFVVRVUBVWDVYGUWIVUBDVWDHUWGUW
      JPUWKUWLYNABCDVVJHIEJOVUIUWMVEUWNYNWVIWVKJVVJEIWREWVHVVJUWOUWSSEJUWPXHUWQ
      UTDUWRYHDUWTUXAVUADUNUXBUXCUPUTRZVUSYOUPUXDVKDUPUXEWTVULUXFXHAVUPDWDVOZYM
      ZQQVOZYMZYPZWWBUPWWCYMZYPZUSZAWWEWWGVLZWWHWWDWWFVLZWWIAQUPVLWWJQQUXGZUPQU
      XJYQUXHQUPWWCUXIVKWWDWWFWWBUXKUXLWWIQQXEZWWGRWWLWWERZUOWWHWWFWWGWWLWWFWWB
      UXMQUPRQWWCRWWLWWFRQWWKUPQQUTYRUXNZUXOYQUXPQWWNUYBQQUPWWCUXQUXRUXSWWMWWLW
      WBRZWWLWWDRZUXTWWOWWPWWOQWDTZQWDUYAUYCWWOQWWARWWQQQDWWAUYDQWDUYESYSWWPQQR
      ZQUTRZQUYFWWRUOYRQUYGQUYHUYIQQQWWCUYJYSUYKWWLWWBWWDUYLUYMWWEWWGWWLUYNUYOS
      AVUAWWEVULWWGAVUGWWSVUAWWETVUIYRDQUKUTYTWTAVUGWVTVULWWGTVUIYODUPUKUTYTWTU
      YPWQVULVUAUYQUMAVUHVUNKDUYRSVUAVULVUBUYSUMVUAVUBVCSUYT $.
  $}

  ${
    $d a f g r s w x y z A $.
    $( A slightly stronger form of Cantor's theorem:  For ` 1 < n ` ,
       ` n + 1 < 2 ^ n ` .  Corollary 1.6 of [KanamoriPincus] p. 417.
       (Contributed by Mario Carneiro, 18-May-2015.) $)
    canthp1 $p |- ( 1o ~< A -> ( A +c 1o ) ~< ~P A ) $=
      ( vf vg vx va vs vz vw c1o csdm wbr cdom cen c2o wfal cv wa wcel wceq c0
      vy vr ccda co cpw wn 1sdom2 sdomdom cdadom2 canthp1lem1 domtr sylancr fal
      mp2b wf1o wex ensym bren sylib cfv csn cdif wf f1of cvv relsdom brrelex2i
      pwidg syl ffvelrn syl2anr cda1dif wss cxp wwe ccnv cima ccom cif cmpt cdm
      wral copab cuni simpll simplr simpr eqeq1 id ifbieq2d cbvmptv coeq2i eqid
      fpwwecbv canthp1lem2 pm2.21i exlimddv exlimdv syl5 mtoi brsdom sylanbrc
      ex ) IAJKZAIUCUDZAUEZLKZXEXFMKZUFXEXFJKXDXEANUCUDZLKZXIXFLKXGINJKINLKXJUG
      INUHINAUIUNAUJXEXIXFUKULXDXHOUMXHXFXEBPZUOZBUPZXDOXHXFXEMKXMXEXFUQXFXEBUR
      USXDXLOBXDXLOXDXLQZXEAXKUTZVAVBZACPZUOZOCXNXPAMKZXRCUPXNXOXERZXSXLXFXEXKV
      CAXFRZXTXDXFXEXKVDXDAVERYAIAJVFVGAVEVHVIXFXEAXKVJVKAXOVLVIXPACURUSXNXRQZO
      YBDUAAEPZAVMFPZYCYCVNVMQYCYDVOYDVPGPZVAVQXQXKVRZHXFHPZASZTYGVSZVTZVRZUTYE
      SGYCWBQQEFWCZWAWDZXKXQYKYLUBXDXLXRWEXDXLXRWFXNXRWGYJDXFDPZASZTYNVSZVTYFHD
      XFYIYPYGYNSZYHYOYGYNTYGYNAWHYQWIWJWKWLEGUAAYKYLUBFDYLWMWNYMWMWOWPWQXCWRWS
      WTXEXFXAXB $.
  $}

  $( The exclusion of finite sets from consideration in ~ df-gch is necessary,
     because otherwise finite sets larger than a singleton would violate the
     GCH property.  (Contributed by Mario Carneiro, 10-Jun-2015.) $)
  finngch $p |- ( ( A e. Fin /\ 1o ~< A ) ->
      ( A ~< ( A +c 1o ) /\ ( A +c 1o ) ~< ~P A ) ) $=
    ( cfn wcel c1o ccda co wbr cpw cfin4 cfin2 cfin3 fin12 fin23 fin34 isfin4-3
    csdm 3syl sylib canthp1 anim12i ) ABCZAADEFZPGZDAPGUBAHPGUAAICZUCUAAJCAKCUD
    ALAMANQAORAST $.

  $( An infinite GCH-set is idempotent under cardinal successor.  (Contributed
     by Mario Carneiro, 18-May-2015.) $)
  gchcda1 $p |- ( ( A e. GCH /\ -. A e. Fin ) -> ( A +c 1o ) ~~ A ) $=
    ( cgch wcel cfn wn wa c1o ccda co cdom wbr cpw csdm cen com 1onn a1i sylan2
    mp1i syl cdadom3 simpr wb nnfi fidomtri2 wi domfi ex sylbird canthp1 gchen1
    mt3d jca mpdan ensymd ) ABCZADCZEZFZAAGHIZUSAUTJKZUTALMKZFAUTNKUSVAVBURUPGO
    CZVAVCURPQAGBOUARUSGAMKZVBUSVDUQUPURUBUSVDEZAGJKZUQURUPGDCZVFVEUCVCVGURPGUD
    ZSAGBUERUSVGVFUQUFVCVGUSPVHSVGVFUQGAUGUHTUIULAUJTUMAUTUKUNUO $.

  $( An infinite GCH-set is Dedekind-infinite.  (Contributed by Mario Carneiro,
     31-May-2015.) $)
  gchinf $p |- ( ( A e. GCH /\ -. A e. Fin ) -> _om ~<_ A ) $=
    ( cgch wcel cfn wn wa c1o ccda co cen wbr com gchcda1 ensymd cfin4 isfin4-2
    cdom wb adantr csdm isfin4-3 sdomnen sylbi syl6bir mt4d ) ABCZADCEZFZAAGHIZ
    JKZLAQKZUHUIAAMNUHUKEZAOCZUJEZUFUMULRUGABPSUMAUITKUNAUAAUIUBUCUDUE $.

  ${
    $d n r w x z $.  $d n y z D $.  $d a b s v y F $.  $d w y G $.  $d w y K $.
    $d a b r s v x y z H $.  $d a b n r s v x z ph $.  $d n z ps $.  $d s R $.
    $d a n r s x y z A $.  $d a b s v W $.  $d a b s v Z $.  $d a s Y $.
    pwfseqlem4.g $e |- ( ph -> G : ~P A -1-1-> U_ n e. _om ( A ^m n ) ) $.
    pwfseqlem4.x $e |- ( ph -> X C_ A ) $.
    pwfseqlem4.h $e |- ( ph -> H : _om -1-1-onto-> X ) $.
    pwfseqlem4.ps $e |- ( ps <->
      ( ( x C_ A /\ r C_ ( x X. x ) /\ r We x ) /\ _om ~<_ x ) ) $.
    pwfseqlem4.k $e |- ( ( ph /\ ps ) ->
      K : U_ n e. _om ( x ^m n ) -1-1-> x ) $.
    pwfseqlem4.d $e |- D = ( G ` { w e. x |
      ( ( `' K ` w ) e. ran G /\ -. w e. ( `' G ` ( `' K ` w ) ) ) } ) $.
    $( Lemma for ~ pwfseq .  Derive a contradiction by diagonalization.
       (Contributed by Mario Carneiro, 31-May-2015.) $)
    pwfseqlem1 $p |- ( ( ph /\ ps ) ->
        D e. ( U_ n e. _om ( A ^m n ) \ U_ n e. _om ( x ^m n ) ) ) $=
      ( wa wcel vy com cv cmap co ciun ccnv cfv crn crab cpw wf1 adantr f1f syl
      wn wf wss ssrab2 cxp wwe w3a cdom wbr simprl1 sylan2b syl5ss rabex sylibr
      vex elpw ffvelrnd syl5eqel wb pm5.19 ffvelrn sylancom wf1o wceq f1ocnvfv1
      f1f1orn wfn f1fn fnfvelrn syl2anc eqeltrd eleq1d id fveq2d eleq12d notbid
      fveq2 anbi12d cbvrabv elrab2 anass bitr4i baib syl6eq eqtrd bitrd ex mtoi
      eleq2d eldifd ) ABSZFGUBEGUCZUDUEUFZGUBCUCZXGUDUEUFZXFFDUCZJUGZUHZHUIZTZX
      KXMHUGZUHZTZUPZSZDXIUJZHUHZXHRXFEUKZXHYAHXFYCXHHULZYCXHHUQAYDBMUMZYCXHHUN
      UOXFYAEURYAYCTZXFYAXIEXTDXIUSBAXIEURZLUCZXIXIUTURZXIYHVAZVBUBXIVCVDZSYGPY
      GYIYJYKAVEVFVGYAEXTDXICVJVHVKVIZVLVMXFFXJTZFJUHZYATZYOUPZVNZYOVOXFYMYQXFY
      MSZYOYNYNXLUHZXPUHZTZUPZYPYRYNXITZYSXNTZYOUUBVNXFYMXJXIJUQZUUCYRXJXIJULZU
      UEXFUUFYMQUMZXJXIJUNUOXJXIFJVPVQYRYSFXNXFYMXJJUIZJVRZYSFVSYRUUFUUIUUGXJXI
      JWAUOXJUUHFJVTVQZXFFXNTYMXFFYBXNRXFHYCWBZYFYBXNTXFYDUUKYEYCXHHWCUOYLYCYAH
      WDWEVMUMWFYOUUCUUDSZUUBYOUUCUUDUUBSZSUULUUBSUAUCZXLUHZXNTZUUNUUOXPUHZTZUP
      ZSZUUMUAYNXIYAUUNYNVSZUUPUUDUUSUUBUVAUUOYSXNUUNYNXLWLZWGUVAUURUUAUVAUUNYN
      UUQYTUVAWHUVAUUOYSXPUVBWIWJWKWMXTUUTDUAXIXKUUNVSZXOUUPXSUUSUVCXMUUOXNXKUU
      NXLWLZWGUVCXRUURUVCXKUUNXQUUQUVCWHUVCXMUUOXPUVDWIWJWKWMWNWOUUCUUDUUBWPWQW
      RWEYRUUAYOYRYTYAYNYRYTYBXPUHZYAYRYSYBXPYRYSFYBUUJRWSWIXFUVEYAVSZYMXFYCXNH
      VRZYFUVFXFYDUVGYEYCXHHWAUOYLYCXNYAHVTWEUMWTXDWKXAXBXCXE $.

    $d a r s x V $.
    pwfseqlem4.f $e |- F = ( x e. _V , r e. _V |-> if ( x e. Fin ,
     ( H ` ( card ` x ) ) , ( D ` |^| { z e. _om | -. ( D ` z ) e. x } ) ) ) $.
    $( Lemma for ~ pwfseq .  (Contributed by Mario Carneiro, 18-Nov-2014.)
       (Revised by AV, 18-Sep-2021.) $)
    pwfseqlem2 $p |- ( ( Y e. Fin /\ R e. V ) ->
        ( Y F R ) = ( H ` ( card ` Y ) ) ) $=
      ( va vs cv ccrd cfv wceq cfn oveq1 fveq2 fveq2d eqeq12d oveq2 eqeq1d nfcv
      co cvv wcel com crab cint cif cmpt2 nfmpt21 nfcxfr nfov nfeq1 nfmpt22 weq
      wn vex fvex ifex ovmpt4g mp3an iftrue syl5eq adantr vtocl2gaf vtocl2ga )
      UEUGZUFUGZJUSZWDUHUIZLUIZUJZPWEJUSZPUHUIZLUIZUJPHJUSZWLUJUEUFPHUKNWDPUJZW
      FWJWHWLWDPWEJULWNWGWKLWDPUHUMUNUOWEHUJWJWMWLWEHPJUPUQCUGZQUGZJUSZWOUHUIZL
      UIZUJZWDWPJUSZWHUJWICQWDWEUKNCWDURZQWDURZQWEURZCXAWHCWDWPJXBCJCQUTUTWOUKV
      AZWSDUGGUIWOVAVMDVBVCVDZGUIZVEZVFZUDCQUTUTXHVGVHCWPURVIVJQWFWHQWDWEJXCQJX
      IUDCQUTUTXHVKVHXDVIVJCUEVLZWQXAWSWHWOWDWPJULXJWRWGLWOWDUHUMUNUOQUFVLXAWFW
      HWPWEWDJUPUQXEWTWPNVAXEWQXHWSWOUTVAWPUTVAXHUTVAWQXHUJCVNQVNXEWSXGWRLVOXFG
      VOVPCQUTUTXHJUTUDVQVRXEWSXGVSVTWAWBWC $.

    $( Lemma for ~ pwfseq .  Using the construction ` D ` from ~ pwfseqlem1 ,
       produce a function ` F ` that maps any well-ordered infinite set to an
       element outside the set.  (Contributed by Mario Carneiro,
       31-May-2015.) $)
    pwfseqlem3 $p |- ( ( ph /\ ps ) -> ( x F r ) e. ( A \ x ) ) $=
      ( vy wa cv co cfv wcel com crab cint cdif cfn ccrd cif cvv wceq fvex ifex
      wn vex ovmpt4g mp3an csdm wbr cdom wss cxp wwe w3a simprbi adantl domnsym
      syl isfinite iffalsed syl5eq cmap ciun wrex pwfseqlem1 eldif sylib simpld
      sylnibr eliun wf elmapi ad2antll wral ssiun2 ad2antrl simprd adantr elmap
      ssneldd wfn wb ffnfv baib 3syl syl5bb mtbid con0 nnon ssrab2 omsson sstri
      ffn wne word ordom simprl ordelss sylancr rexnal sylibr ssrexv sylc rabn0
      c0 onint sseldi ontri1 syl2anc wi ssintrab syl2an imbi2d syl6bbr pm5.74da
      con34b bi2.04 syl6bb elnn pm2.27 expcom a2d fveq2 eleq1d notbid rexlimddv
      sylbid ralimdv2 syl5bi sylbird ffvelrnd cbvrabv elrab2 eldifd eqeltrd
      mt3d ) ABUCZCUDZNUDZIUEZDUDZGUFZUUMUGZUSZDUHUIZUJZGUFZFUUMUKZUULUUOUUMULU
      GZUUMUMUFZKUFZUVBUNZUVBUUMUOUGUUNUOUGUVGUOUGUUOUVGUPCUTZNUTUVDUVFUVBUVEKU
      QUVAGUQURCNUOUOUVGIUOUAVAVBUULUVDUVFUVBUULUUMUHVCVDZUVDUULUHUUMVEVDZUVIUS
      BUVJABUUMFVFUUNUUMUUMVGVFUUMUUNVHVIUVJRVJVKUHUUMVLVMUUMVNWDVOVPUULGFHUDZV
      QUEZUGZUVBUVCUGHUHUULGHUHUVLVRZUGZUVMHUHVSUULUVOGHUHUUMUVKVQUEZVRZUGUSZUU
      LGUVNUVQUKUGUVOUVRUCABCEFGHJKLMNOPQRSTVTGUVNUVQWAWBZWCHGUHUVLWEWBUULUVKUH
      UGZUVMUCZUCZUVBFUUMUWBUVKFUVAGUVMUVKFGWFZUULUVTGFUVKWGWHZUWBUVAUVKUGZUURD
      UVKWIZUWBGUVPUGZUWFUWBUVPUVQGUVTUVPUVQVFUULUVMHUHUVPWJWKUULUVRUWAUULUVOUV
      RUVSWLWMWOUWGUVKUUMGWFZUWBUWFUUMUVKGUVHHUTWNUWBUWCGUVKWPZUWHUWFWQUWDUVKFG
      XHUWHUWIUWFDUVKUUMGWRWSWTXAXBZUWBUWEUSZUVKUVAVFZUWFUWBUVKXCUGZUVAXCUGUWLU
      WKWQUVTUWMUULUVMUVKXDZWKUWBUUTXCUVAUUTUHXCUUSDUHXEXFXGZUWBUUTXCVFUUTXTXIZ
      UVAUUTUGZUWOUWBUUSDUHVSZUWPUWBUVKUHVFZUUSDUVKVSZUWRUWBUHXJUVTUWSXKUULUVTU
      VMXLUHUVKXMXNUWBUWFUSUWTUWJUURDUVKXOXPUUSDUVKUHXQXRUUSDUHXSXPUUTYAXNZYBUV
      KUVAYCYDUWLUUSUVKUUPVFZYEZDUHWIUWBUWFUUSDUVKUHYFUWBUXCUURDUHUVKUVTUUPUHUG
      ZUXCYEZUUPUVKUGZUURYEZYEUULUVMUVTUXEUXFUXDUURYEZYEZUXGUVTUXEUXDUXGYEUXIUV
      TUXDUXCUXGUVTUXDUCZUXCUUSUXFUSZYEUXGUXJUXBUXKUUSUVTUWMUUPXCUGUXBUXKWQUXDU
      WNUUPXDUVKUUPYCYGYHUXFUURYKYIYJUXDUXFUURYLYMUVTUXFUXHUURUXFUVTUXHUURYEZUX
      FUVTUCUXDUXLUUPUVKYNUXDUURYOVMYPYQUUBWKUUCUUDUUEUUKUUFUWBUWQUVBUUMUGZUSZU
      XAUWQUVAUHUGUXNUBUDZGUFZUUMUGZUSZUXNUBUVAUHUUTUXOUVAUPZUXQUXMUXSUXPUVBUUM
      UXOUVAGYRYSYTUUSUXRDUBUHUUPUXOUPZUURUXQUXTUUQUXPUUMUUPUXOGYRYSYTUUGUUHVJV
      MUUIUUAUUJ $.

    $( Lemma for ~ pwfseqlem4 .  (Contributed by Mario Carneiro,
       7-Jun-2016.) $)
    pwfseqlem4a $p |- ( ( ph /\ ( a C_ A /\ s C_ ( a X. a ) /\ s We a ) ) ->
      ( a F s ) e. A ) $=
      ( cv wss cxp wwe w3a wa com csdm wbr co wcel cfn isfinite wi ccrd cfv cvv
      wceq vex pwfseqlem2 sylancl wf wf1o f1of syl fssd ficardom ffvelrn syl2an
      simpr eqeltrd ex adantr syl5bir wn cdom cdm wb omelon onenon ax-mp simpr3
      con0 wex 19.8a ween sylibr domtri2 sylancr cdif nfv nfcv crab cif nfmpt22
      cint cmpt2 nfcxfr nfov nfel1 weq sseq1 weeq1 3anbi23d anbi1d anbi2d oveq2
      eleq1d imbi12d nfmpt21 xpeq12 anidms sseq2d weeq2 3anbi123d breq2 anbi12d
      nfim syl5bb oveq1 difeq2 eleq12d pwfseqlem3 chvar eldifad sylbird pm2.61d
      expr ) APUDZFUEZNUDZYLYLUFZUEZYLYNUGZUHZUIZYLUJUKULZYLYNIUMZFUNZYTYLUOUNZ
      YSUUBYLUPAUUCUUBUQYRAUUCUUBAUUCUIZUUAYLURUSZKUSZFUUDUUCYNUTUNUUAUUFVAAUUC
      VMNVBABCDEFGYNHIJKLUTMYLOQRSTUAUBUCVCVDAUJFKVEUUEUJUNUUFFUNUUCAUJMFKAUJMK
      VFUJMKVESUJMKVGVHRVIYLVJUJFUUEKVKVLVNVOVPVQYSYTVRZUJYLVSULZUUBYSUJURVTZUN
      ZYLUUIUNZUUHUUGWAUJWFUNUUJWBUJWCWDYSYQNWGZUUKYSYQUULAYMYPYQWEYQNWHVHYLNWI
      WJUJYLWKWLAYRUUHUUBAYRUUHUIZUIZUUAFYLAYMOUDZYOUEZYLUUOUGZUHZUUHUIZUIZYLUU
      OIUMZFYLWMZUNZUQZUUNUUAUVBUNZUQONUUNUVEOUUNOWNOUUAUVBOYLYNIOYLWOOICOUTUTC
      UDZUOUNUVFURUSKUSDUDGUSUVFUNVRDUJWPWSGUSWQZWTZUCCOUTUTUVGWRXAOYNWOXBXCYAO
      NXDZUUTUUNUVCUVEUVIUUSUUMAUVIUURYRUUHUVIUUPYPUUQYQYMUUOYNYOXEYLUUOYNXFXGX
      HXIUVIUVAUUAUVBUUOYNYLIXJXKXLABUIZUVFUUOIUMZFUVFWMZUNZUQUVDCPUUTUVCCUUTCW
      NCUVAUVBCYLUUOICYLWOCIUVHUCCOUTUTUVGXMXACUUOWOXBXCYACPXDZUVJUUTUVMUVCUVNB
      UUSABUVFFUEZUUOUVFUVFUFZUEZUVFUUOUGZUHZUJUVFVSULZUIUVNUUSTUVNUVSUURUVTUUH
      UVNUVOYMUVQUUPUVRUUQUVFYLFXEUVNUVPYOUUOUVNUVPYOVAUVFYLUVFYLXNXOXPUVFYLUUO
      XQXRUVFYLUJVSXSXTYBXIUVNUVKUVAUVLUVBUVFYLUUOIYCUVFYLFYDYEXLABCDEFGHIJKLMO
      QRSTUAUBUCYFYGYGYHYKYIYJ $.

    pwfseqlem4.w $e |- W = { <. a , s >. |
    ( ( a C_ A /\ s C_ ( a X. a ) ) /\ ( s We a /\ A. b e. a
      [. ( `' s " { b } ) / v ]. ( v F ( s i^i ( v X. v ) ) ) = b ) ) } $.
    pwfseqlem4.z $e |- Z = U. dom W $.
    $( Lemma for ~ pwfseq .  Derive a final contradiction from the function
       ` F ` in ~ pwfseqlem3 .  Applying ~ fpwwe2 to it, we get a certain
       maximal well-ordered subset ` Z ` , but the defining property
       ` ( Z F ( W `` Z ) ) e. Z ` contradicts our assumption on ` F ` , so we
       are reduced to the case of ` Z ` finite.  This too is a contradiction,
       though, because ` Z ` and its preimage under ` ( W `` Z ) ` are distinct
       sets of the same cardinality and in a subset relation, which is
       impossible for finite sets.  (Contributed by Mario Carneiro,
       31-May-2015.) $)
    pwfseqlem4 $p |- -. ph $=
      ( ccrd cfv wbr ccnv csn cima wcel co cfn cvv wceq com csdm wa eqid pm3.2i
      cpw cmap ciun wf1 omex ovex iunex f1dmex sylancl pwexb sylibr pwfseqlem4a
      cv fpwwe2 mpbiri simprd wss cxp wwe cin wsbc wral simpld fpwwe2lem2 mpbid
      wi ssexd w3a sseq1 id sqxpeqd sseq2d weeq2 3anbi123d anbi2d 3expa adantrr
      syl pm4.71i syl6bbr oveq1 eleq12d breq1 imbi12d fvex weeq1 3anbi23d oveq2
      eleq1d imbi1d wn cdom cdm wb con0 omelon onenon ax-mp wex simpr3 cdif nfv
      19.8a nfcv nfcxfr nfov nfel1 weq chvar sylbird pwfseqlem2 ficardom finnum
      nfim syl2anc ween domtri2 sylancr crab cint nfmpt22 anbi1d nfmpt21 xpeq12
      cif cmpt2 anidms breq2 anbi12d syl5bb pwfseqlem3 eldifbd expr con4d vtocl
      difeq2 vtoclg mpcom mpd isfinite eqeltrrd fpwwe2lem3 cnvimass dmss dmxpss
      mpdan syl6ss syl5ss ssfid inex1 eqtr3d wf1o f1of1 f1fveq syl12anc carden2
      cen eqcomd wpss dfpss2 baib php3 sdomnen mt4d eleqtrrd eliniseg sylib wor
      ex weso sonr pm2.65i ) APUJUKZLUKZUWSPNUKZULZAUWSUWTUMZUWSUNZUOZUPZUXAAUW
      SPUXDAPUWTJUQZUWSPAPURUPZUWTUSUPUXFUWSUTAPVAVBULZUXGAUXFPUPZUXHAPUWTNULZU
      XIAUXJUXIVCPPUTZUWTUWTUTZVCUXKUXLPVDUWTVDVEASTFGUWTJNPPQUHAGVFZUSUPZGUSUP
      AUXMIVAGIVRZVGUQZVHZKVIUXQUSUPUXNUAIVAUXPVJGUXOVGVKVLUXMUXQUSKVMVNGVOVPZA
      BCDEGHIJKLMOQRSUAUBUCUDUEUFUGVQUIVSVTZWAZPUSUPAUXIUXHWKZAPGUSUXRAPGWBZUWT
      PPWCZWBZAUYBUYDVCZPUWTWDZFVRZUWTUYGUYGWCWEJUQTVRZUTFUXBUYHUNUOWFTPWGZVCZA
      UXJUYEUYJVCZAUXJUXIUXSWHZASTFGUWTJNPQUHUXRWIWJZWHZWHWLASVRZGWBZUWTUYOUYOW
      CZWBZUYOUWTWDZWMZVCZUYOUWTJUQZUYOUPZUYOVAVBULZWKZWKZAUYAWKSPUSUYOPUTZVUAA
      VUEUYAVUGVUAAUYBUYDUYFWMZVCAVUGUYTVUHAVUGUYPUYBUYRUYDUYSUYFUYOPGWNVUGUYQU
      YCUWTVUGUYOPVUGWOZWPWQUYOPUWTWRWSWTAVUHAUYKVUHUYMUYEUYFVUHUYIUYBUYDUYFVUH
      VUHWOXAXBXCXDXEVUGVUCUXIVUDUXHVUGVUBUXFUYOPUYOPUWTJXFVUIXGUYOPVAVBXHXIXIA
      UYPQVRZUYQWBZUYOVUJWDZWMZVCZUYOVUJJUQZUYOUPZVUDWKZWKVUFQUWTPNXJZVUJUWTUTZ
      VUNVUAVUQVUEVUSVUMUYTAVUSVUKUYRVULUYSUYPVUJUWTUYQWNUYOVUJUWTXKXLWTVUSVUPV
      UCVUDVUSVUOVUBUYOVUJUWTUYOJXMXNXOXIVUNVUDVUPVUNVUDXPZVAUYOXQULZVUPXPZVUNV
      AUJXRZUPZUYOVVCUPZVVAVUTXSVAXTUPVVDYAVAYBYCVUNVULQYDZVVEVUNVULVVFAUYPVUKV
      ULYEVULQYHXCUYOQUUAVPVAUYOUUBUUCAVUMVVAVVBAVUMVVAVCZVCZVUOGUYOAUYPRVRZUYQ
      WBZUYOVVIWDZWMZVVAVCZVCZUYOVVIJUQZGUYOYFZUPZWKZVVHVUOVVPUPZWKRQVVHVVSRVVH
      RYGRVUOVVPRUYOVUJJRUYOYIRJCRUSUSCVRZURUPVVTUJUKLUKDVRHUKVVTUPXPDVAUUDUUEH
      UKUUJZUUKZUGCRUSUSVWAUUFYJRVUJYIYKYLYSRQYMZVVNVVHVVQVVSVWCVVMVVGAVWCVVLVU
      MVVAVWCVVJVUKVVKVULUYPVVIVUJUYQWNUYOVVIVUJXKXLUUGWTVWCVVOVUOVVPVVIVUJUYOJ
      XMXNXIABVCZVVTVVIJUQZGVVTYFZUPZWKVVRCSVVNVVQCVVNCYGCVVOVVPCUYOVVIJCUYOYIC
      JVWBUGCRUSUSVWAUUHYJCVVIYIYKYLYSCSYMZVWDVVNVWGVVQVWHBVVMABVVTGWBZVVIVVTVV
      TWCZWBZVVTVVIWDZWMZVAVVTXQULZVCVWHVVMUDVWHVWMVVLVWNVVAVWHVWIUYPVWKVVJVWLV
      VKVVTUYOGWNVWHVWJUYQVVIVWHVWJUYQUTVVTUYOVVTUYOUUIUULWQVVTUYOVVIWRWSVVTUYO
      VAXQUUMUUNUUOWTVWHVWEVVOVWFVVPVVTUYOVVIJXFVVTUYOGUVAXGXIABCDEGHIJKLMORUAU
      BUCUDUEUFUGUUPYNYNUUQUURYOUUSUUTUVBUVCUVDPUVEVPZVURABCDEGHUWTIJKLMUSOPRUA
      UBUCUDUEUFUGYPVNUXTUVFZAUXDPUWBULZUXDPUTZAUXDUJUKZUWRUTZVWQAUWRVWSAUWSVWS
      LUKZUTZUWRVWSUTZAUXDUWTUXDUXDWCZWEZJUQZUWSVXAAUWSPUPZVXFUWSUTVWPASTFGUWSU
      WTJNPQUHUXRUYLUVGUVKAUXDURUPZVXEUSUPVXFVXAUTAPUXDVWOAUXDUWTXRZPUWTUXCUVHA
      VXIUYCXRZPAUYDVXIVXJWBAUYBUYDUYNWAUWTUYCUVIXCPPUVJUVLUVMZUVNZUWTVXDVURUVO
      ABCDEGHVXEIJKLMUSOUXDRUAUBUCUDUEUFUGYPVNUVPAVAOLVIZUWRVAUPZVWSVAUPZVXBVXC
      XSAVAOLUVQVXMUCVAOLUVRXCAUXGVXNVWOPYQXCAVXHVXOVXLUXDYQXCVAOUWRVWSLUVSUVTW
      JUWCAUXDVVCUPZPVVCUPZVWTVWQXSAVXHVXPVXLUXDYRXCAUXGVXQVWOPYRXCUXDPUWAYTWJA
      VWRXPZUXDPUWDZVWQXPZAUXDPWBZVXSVXRXSVXKVXSVYAVXRUXDPUWEUWFXCAUXGVXSVXTWKV
      WOUXGVXSVXTUXGVXSVCUXDPVBULVXTPUXDUWGUXDPUWHXCUWNXCYOUWIUWJUWSUSUPUXEUXAX
      SUWRLXJZUWTUWSUWSUSVYBUWKYCUWLAPUWTUWMZVXGUXAXPAUYFVYCAUYFUYIAUYEUYJUYMWA
      WHPUWTUWOXCVWPPUWSUWTUWPYTUWQ $.
  $}

  ${
    $d a b c d i j m n s w z G $.  $d a b c d j m r s t w z H $.  $d f k x P $.
    $d a b c d f i j k m n r s t u v w x y z $.  $d a b k n r s t w x y z ph $.
    $d a b c d i j m n s w z K $.  $d b N $.  $d k n x y z ps $.  $d n y S $.
    $d a b c d n r s t w z A $.  $d b u v x y O $.
    pwfseqlem5.g $e |- ( ph -> G : ~P A -1-1-> U_ n e. _om ( A ^m n ) ) $.
    pwfseqlem5.x $e |- ( ph -> X C_ A ) $.
    pwfseqlem5.h $e |- ( ph -> H : _om -1-1-onto-> X ) $.
    pwfseqlem5.ps $e |- ( ps <->
      ( ( t C_ A /\ r C_ ( t X. t ) /\ r We t ) /\ _om ~<_ t ) ) $.
    pwfseqlem5.n $e |- ( ph -> A. b e. ( har ` ~P A ) ( _om C_ b ->
      ( N ` b ) : ( b X. b ) -1-1-onto-> b ) ) $.
    pwfseqlem5.o $e |- O = OrdIso ( r , t ) $.
    pwfseqlem5.t $e |- T =
      ( u e. dom O , v e. dom O |-> <. ( O ` u ) , ( O ` v ) >. ) $.
    pwfseqlem5.p $e |- P = ( ( O o. ( N ` dom O ) ) o. `' T ) $.
    pwfseqlem5.s $e |- S = seqom ( ( k e. _V , f e. _V |->
      ( x e. ( t ^m suc k ) |-> ( ( f ` ( x |` k ) ) P ( x ` k ) ) ) ) ,
      { <. (/) , ( O ` (/) ) >. } ) $.
    pwfseqlem5.q $e |- Q = ( y e. U_ n e. _om ( t ^m n ) |->
      <. dom y , ( ( S ` dom y ) ` y ) >. ) $.
    pwfseqlem5.i $e |- I = ( x e. _om , y e. t |-> <. ( O ` x ) , y >. ) $.
    pwfseqlem5.k $e |- K = ( ( P o. I ) o. Q ) $.
    $( Lemma for ~ pwfseq .  Although in some ways ~ pwfseqlem4 is the "main"
       part of the proof, one last aspect which makes up a remark in the
       original text is by far the hardest part to formalize.  The main proof
       relies on the existence of an injection ` K ` from the set of finite
       sequences on an infinite set ` x ` to ` x ` .  Now this alone would not
       be difficult to prove; this is mostly the claim of ~ fseqen .  However,
       what is needed for the proof is a _canonical_ injection on these sets,
       so we have to start from scratch pulling together explicit bijections
       from the lemmas.

       If one attempts such a program, it will mostly go through, but there is
       one key step which is inherently nonconstructive, namely the proof of
       ~ infxpen .  The resolution is not obvious, but it turns out that
       reversing an infinite ordinal's Cantor normal form absorbs all the
       non-leading terms ( ~ cnfcom3c ), which can be used to construct a
       pairing function explicitly using properties of the ordinal exponential
       ( ~ infxpenc ).  (Contributed by Mario Carneiro, 31-May-2015.) $)
    pwfseqlem5 $p |- -. ph $=
      ( vz vi vw vc vd vj vm vs va cv ccnv cfv crn wcel wn wa crab cvv cfn ccrd
      com cint cif cmpt2 wss cxp wwe cin wceq csn cima wsbc wral copab cdm cuni
      cmap ciun ccom wf1 wf1o cep wiso vex w3a cdom wbr simprl3 sylan2b sylancr
      co oiiso isof1o syl cpw char wi con0 oion ax-mp a1i oien adantr omex ovex
      cen sylibr syl2anc wb onenon mp1i f1oeq1 f1oco cop wf feqmptd mpbid xpf1o
      cmpt f1of1 cres f1co c0 eqid iunex f1dmex sylancl pwexb simprl1 sylc csdm
      ssdomg canth2g sdomdom 3syl domtr endomtr elharval sylanbrc cardom simprr
      ensymd omelon carddom2 mpbird syl5eqssr cardonle sstrd sseq2 fveq2 xpeq12
      domentr anidms f1oeq2 f1oeq3 3bitrd imbi12d rspcv syl3c f1ssres feqresmpt
      f1of f1ocnv f1f1orn cid mptresid f1oi mpbiri f1f xpss1 4syl peano1 sseldd
      frn f1ss ffvelrnd fseqenlem2 f1eq1 fpwwe2cbv pwfseqlem4 ) ABGUQURUSHURVFZ
      SVGVHZPVIVJUWQUWRPVGVHVJVKVLURGVFZVMPVHZOGUCVNVNUWSVOVJUWSVPVHQVHUQVFUWTV
      HUWSVJVKUQVQVMVRUWTVHVSVTZPQSUTVFZHWAVAVFZUXBUXBWBWAVLUXBUXCWCVBVFZUXCUXD
      UXDWBWDUXAXGVCVFZWEVBUXCVGUXEWFWGWHVCUXBWIVLVLUTVAWJZUBUXFWKWLZVDUCVEUDUE
      UFUGUHABVLZOVQUWSOVFZWMXGWNZUWSIRWOZJWOZWPZUXJUWSSWPZUXHVQUWSWBZUWSUXKWPZ
      UXJUXOJWPUXMUXHUWSUWSWBZUWSIWPZUXOUXQRWPZUXPUXHUXQUWSIWQZUXRUXHUXQUWSUAUA
      WKZTVHZWOZLVGZWOZWQZUXTUXHUYAUYAWBZUWSUYCWQZUXQUYGUYDWQZUYFUXHUYAUWSUAWQZ
      UYGUYAUYBWQZUYHUXHUYAUWSWRUCVFZUAWSZUYJUXHUWSVNVJZUWSUYLWCZUYMGWTZBAUWSHW
      AZUYLUXQWAZUYOXAZVQUWSXBXCZVLZUYOUHUYQUYRUYOUYTAXDXEZUWSUYLUAVNUJXHXFUYAU
      WSWRUYLUAXIXJZUXHUYAHXKZXLVHZVJZVQUDVFZWAZVUGVUGWBZVUGVUGTVHZWQZXMZUDVUEW
      IZVQUYAWAZUYKUXHUYAXNVJZUYAVUDXBXCZVUFVUOUXHUYNVUOUYPUWSUYLUAVNUJXOXPZXQZ
      UXHUYAUWSYBXCZUWSVUDXBXCZVUPUXHUYNUYOVUSUYPVUBUWSUYLUAVNUJXRXFZUXHUWSHXBX
      CZHVUDXBXCZVUTUXHHVNVJZUYQVVBUXHVUDVNVJZVVDUXHVUDOVQHUXIWMXGZWNZPWPZVVGVN
      VJVVEAVVHBUEXSOVQVVFXTHUXIWMYAUUAVUDVVGVNPUUBUUCHUUDYCZBAVUAUYQUHUYQUYRUY
      OUYTAUUEXEUWSHVNUUHUUFUXHVVDHVUDUUGXCVVCVVIHVNUUIHVUDUUJUUKUWSHVUDUULYDUY
      AUWSVUDUUMYDVUDUYAUUNUUOAVUMBUIXSUXHVQUYAVPVHZUYAUXHVQVQVPVHZVVJUUPUXHVVK
      VVJWAZVQUYAXBXCZUXHUYTUWSUYAYBXCVVMBAVUAUYTUHAUYSUYTUUQXEUXHUYAUWSVVAUURV
      QUWSUYAUVHYDUXHVQVPWKZVJZUYAVVNVJZVVLVVMYEVQXNVJVVOUUSVQYFXPVUOVVPUXHVUQU
      YAYFYGVQUYAUUTXFUVAUVBUXHVUOVVJUYAWAVURUYAUVCXJUVDZVULVUNUYKXMUDUYAVUEVUG
      UYAWEZVUHVUNVUKUYKVUGUYAVQUVEVVRVUKVUIVUGUYBWQZUYGVUGUYBWQZUYKVVRVUJUYBWE
      VUKVVSYEVUGUYATUVFVUIVUGVUJUYBYHXJVVRVUIUYGWEZVVSVVTYEVVRVWAVUGUYAVUGUYAU
      VGUVIVUIUYGVUGUYBUVJXJVUGUYAUYGUYBUVKUVLUVMUVNUVOUYGUYAUWSUAUYBYIYDUXHUYG
      UXQLWQZUYIUXHUYGUXQFEUYAUYAFVFUAVHZEVFUAVHZYJVTZWQZVWBUXHFEUYAUWSUYAUWSVW
      CVWDUXHUYJUYAUWSFUYAVWCYOZWQZVUCUXHUAVWGWEUYJVWHYEUXHFUYAUWSUAUXHUYJUYAUW
      SUAYKVUCUYAUWSUAUVRXJZYLUYAUWSUAVWGYHXJYMUXHUYJUYAUWSEUYAVWDYOZWQZVUCUXHU
      AVWJWEUYJVWKYEUXHEUYAUWSUAVWIYLUYAUWSUAVWJYHXJYMYNLVWEWEVWBVWFYEUKUYGUXQL
      VWEYHXPYCUYGUXQLUVSXJUXQUYGUWSUYCUYDYIYDIUYEWEUXTUYFYEULUXQUWSIUYEYHXPYCZ
      UXQUWSIYPXJUXHUXOUAVQYQZVIZUWSWBZRWPZVWOUXQWAZUXSUXHUXOVWORWQZVWPUXHUXOVW
      OCDVQUWSCVFUAVHZDVFZYJVTZWQZVWRUXHCDVQVWNUWSUWSVWSVWTUXHVQVWNVWMWQZVQVWNC
      VQVWSYOZWQZUXHVQUWSVWMWPZVXCUXHUYAUWSUAWPZVUNVXFUXHUYJVXGVUCUYAUWSUAYPXJV
      VQUYAUWSVQUAUVPYDZVQUWSVWMUVTXJUXHVWMVXDWEVXCVXEYEUXHCUYAUWSVQUAVWIVVQUVQ
      VQVWNVWMVXDYHXJYMDUWSVWTYOZUWAUWSYQZWEZUWSUWSVXIWQZUXHDUWSUWBVXKVXLUWSUWS
      VXJWQUWSUWCUWSUWSVXIVXJYHUWDYGYNRVXAWEVWRVXBYEUOUXOVWORVXAYHXPYCUXOVWORYP
      XJUXHVXFVQUWSVWMYKVWNUWSWAVWQVXHVQUWSVWMUWEVQUWSVWMUWJVWNUWSUWSUWFUWGUXOV
      WOUXQRUWKYDUXOUXQUWSIRYRYDUXHCDUWSYSUAVHMONIKJVNUYNUXHUYPXQUXHUYAUWSYSUAV
      WIUXHVQUYAYSVVQYSVQVJUXHUWHXQUWIUWLVWLUMUNUWMUXJUXOUWSUXKJYRYDSUXLWEUXNUX
      MYEUPUXJUWSSUXLUWNXPYCUWTYTUXAYTUTVCUDUSVBHUXAUXFVDVAVEUXFYTUWOUXGYTUWP
      $.
  $}

  ${
    $d b f g h k m n p r s t u w x y z A $.
    $( The powerset of a Dedekind-infinite set does not inject into the set of
       finite sequences.  The proof is due to Halbeisen and Shelah.
       Proposition 1.7 of [KanamoriPincus] p. 418.  (Contributed by Mario
       Carneiro, 31-May-2015.) $)
    pwfseq $p |- ( _om ~<_ A -> -. ~P A ~<_ U_ n e. _om ( A ^m n ) ) $=
      ( vt vh vb vm vg vx vy vk com cv cmap co wss wa wf1o cfv wceq eqid vu cvv
      vr vz vs vp vf vw wcel cdom wbr cpw wn reldom brrelex2i cen wex domeng wi
      ciun bren cxp char wral con0 harcl infxpenc2 wf1 wwe w3a coi cdm ccom cop
      ax-mp cmpt2 ccnv csuc cres cmpt c0 cseqom simpr oveq2 cbviunv f1eq3 sylib
      csn wb simpllr simplll simplr sseq2 fveq2 f1oeq1 syl xpeq12 anidms f1oeq2
      biid f1oeq3 3bitrd imbi12d cbvralv mpteq1 pwfseqlem5 imnani nexdv nsyl ex
      brdomi exlimdv mpi exlimiv sylbi imp syl6bi mpcom ) AUBUIZKAUJUKZAULZBKAB
      LZMNZUTZUJUKZUMZKAUJUNUOXSXTKCLZUPUKZYGAOZPZCUQYFCKAUBURYJYFCYHYIYFYHKYGD
      LZQZDUQYIYFUSZKYGDVAYLYMDYLYIYFYLYIPZKELZOZYOYOVBZYOYOFLZRZQZUSZEYAVCRZVD
      ZFUQZYFUUBVEUIUUDYAVFUUBFEVGVOYNUUCYFFYNUUCYFYNUUCPZYAYDGLZVHZGUQYEUUEUUG
      GUUEUUGUUEUUGPZUALZAOUCLZUUIUUIVBOUUIUUJVIVJKUUIUJUKPZHIUDUEUAAUUIUUJVKZU
      ULVLZYRRVMUEUDUUMUUMUELUULRUDLUULRVNVPZVQVMZIBKUUIYBMNZUTZILZVLZUURUUSUFU
      GUBUBHUUIUFLZVRMNHLZUUTVSUGLRUUTUVARUUONVTVPWAWAUULRVNWHWBZRRVNZVTZUVBUUN
      UGUFJUUFYKHIKUUIUVAUULRUURVNVPZUUOUVEVMUVDVMZYRUULYGUCUHUUHUUGYAJKAJLZMNZ
      UTZUUFVHZUUEUUGWCYDUVISUUGUVJWIBJKYCUVHYBUVGAMWDWEYDUVIYAUUFWFVOWGYLYIUUC
      UUGWJYLYIUUCUUGWKUUKWTUUHUUCKUHLZOZUVKUVKVBZUVKUVKYRRZQZUSZUHUUBVDYNUUCUU
      GWLUUAUVPEUHUUBYOUVKSZYPUVLYTUVOYOUVKKWMUVQYTYQYOUVNQZUVMYOUVNQZUVOUVQYSU
      VNSYTUVRWIYOUVKYRWNYQYOYSUVNWOWPUVQYQUVMSZUVRUVSWIUVQUVTYOUVKYOUVKWQWRYQU
      VMYOUVNWSWPYOUVKUVMUVNXAXBXCXDWGUULTUUNTUUOTUVBTUUQJKUUIUVGMNZUTZSUVDIUWB
      UVCVTSBJKUUPUWAYBUVGUUIMWDWEIUUQUWBUVCXEVOUVETUVFTXFXGXHYAYDGXKXIXJXLXMXJ
      XNXOXPXNXQXR $.

    $( The powerset of a Dedekind-infinite set does not inject into its
       Cartesian product with itself.  (Contributed by Mario Carneiro,
       31-May-2015.) $)
    pwxpndom2 $p |- ( _om ~<_ A -> -. ~P A ~<_ ( A +c ( A X. A ) ) ) $=
      ( vn vx com cdom wbr co cv cmap c1o c2o cen c0 wceq cvv wcel ensym wn syl
      wss cpw cxp ccda ciun pwfseq wi cun cin reldom brrelex2i oveq1 id breq12d
      csn df1o2 oveq2i vex 0ex mapsnen eqbrtri vtoclg 3syl map2xp wa cdm elmapi
      fdm adantr csuc 1onn elexi sucid df-2o eleqtrri 1on onirri nelneq2 adantl
      wf mp2an eqeq1d mtbiri pm2.65i elin mtbir a1i eq0rdv cdaenun syl3anc omex
      ovex iunex oveq2 ssiun2s ax-mp 2onn unssi ssdomg mp2 endomtr domtr expcom
      sylancl mtod ) DAEFZAUAZAAAUBZUCGZEFZXFBDABHZIGZUDZEFZABUEXEXHXLEFZXIXMUF
      XEXHAJIGZAKIGZUGZLFZXQXLEFZXNXEAXOLFZXGXPLFZXOXPUHZMNXRXEAOPZXOALFZXTDAEU
      IUJZCHZJIGZYFLFYDCAOYFANZYGXOYFALYFAJIUKYHULUMYGYFMUNZIGYFLJYIYFIUOUPYFMC
      UQURUSUTVAXOAQVBXEYCXPXGLFYAYEAOVCXPXGQVBXECYBYFYBPZRXEYJYFXOPZYFXPPZVDZY
      MYFVEZJNZYKYOYLYKJAYFVSYOYFAJVFJAYFVGSVHYMYOKJNZJKPJJPRYPRJJVIKJJDVJVKVLV
      MVNJVOVPJKJVQVTYMYNKJYLYNKNZYKYLKAYFVSYQYFAKVFKAYFVGSVRWAWBWCYFXOXPWDWEWF
      WGAXOXGXPWHWIXLOPXQXLTXSBDXKWJAXJIWKWLXOXPXLJDPXOXLTVJBDXKJXOXJJAIWMWNWOK
      DPXPXLTWPBDXKKXPXJKAIWMWNWOWQXQXLOWRWSXHXQXLWTXCXIXNXMXFXHXLXAXBSXD $.
  $}

  $( The powerset of a Dedekind-infinite set does not inject into its Cartesian
     product with itself.  (Contributed by Mario Carneiro, 31-May-2015.) $)
  pwxpndom $p |- ( _om ~<_ A -> -. ~P A ~<_ ( A X. A ) ) $=
    ( com cdom wbr cpw cxp ccda co pwxpndom2 wi cen wcel reldom brrelex2i xpexg
    cvv syl2anc cdadom3 cdacomen domentr sylancl domtr expcom syl mtod ) BACDZA
    EZAAFZCDZUGAUHGHZCDZAIUFUHUJCDZUIUKJUFUHUHAGHZCDZUMUJKDULUFUHPLZAPLZUNUFUPU
    PUOBACMNZUQAAPPOQUQUHAPPRQUHASUHUMUJTUAUIULUKUGUHUJUBUCUDUE $.

  $( The powerset of a Dedekind-infinite set does not inject into its cardinal
     sum with itself.  (Contributed by Mario Carneiro, 31-May-2015.) $)
  pwcdandom $p |- ( _om ~<_ A -> -. ~P A ~<_ ( A +c A ) ) $=
    ( com cdom wbr cpw ccda co cxp pwxpndom2 wi c1o cen c0 csn df1o2 xpeq2i cvv
    wcel domtr syl2anc reldom brrelex2i 0ex xpsneng sylancl syl5eqbr ensymd wss
    omex word ordom 1onn ordelss ssdomg mp2 mpan xpdom2g endomtr cdadom2 expcom
    mp2an 3syl mtod ) BACDZAEZAAFGZCDZVEAAAHZFGZCDZAIVDAVHCDZVFVICDZVGVJJVDAAKH
    ZLDVMVHCDZVKVDVMAVDVMAMNZHZALKVOAOPVDAQRZMQRVPALDBACUAUBZUCAMQQUDUEUFUGVDVQ
    KACDZVNVRKBCDZVDVSBQRKBUHZVTUIBUJKBRWAUKULBKUMVAKBQUNUOKBASUPKAAQUQTAVMVHUR
    TAVHAUSVGVLVJVEVFVISUTVBVC $.

  $( An infinite GCH-set is idempotent under cardinal sum.  Part of Lemma 2.2
     of [KanamoriPincus] p. 419.  (Contributed by Mario Carneiro,
     31-May-2015.) $)
  gchcdaidm $p |- ( ( A e. GCH /\ -. A e. Fin ) -> ( A +c A ) ~~ A ) $=
    ( cgch wcel cfn wn wa ccda co cdom wbr cpw csdm cen cdadom3 syl2anc canth2g
    simpl adantr sdomdom syl cdadom1 cdadom2 domtr c1o pwcda1 gchcda1 pwen entr
    domentr com gchinf pwcdandom ensym endom nsyl brsdom sylanbrc gchen1 ensymd
    jca mpdan ) ABCZADCEZFZAAAGHZVDAVEIJZVEAKZLJZFAVEMJVDVFVHVDVBVBVFVBVCQZVIAA
    BBNOVDVEVGIJZVEVGMJZEVHVDVEVGVGGHZIJZVLVGMJZVJVDAVGIJZVMVDAVGLJZVOVBVPVCABP
    RAVGSTVOVEVGAGHZIJVQVLIJVMAVGAUAAVGVGUBVEVQVLUCOTVDVLAUDGHZKZMJZVSVGMJZVNVB
    VTVCABUERVDVRAMJWAAUFVRAUGTVLVSVGUHOVEVLVGUIOVDVGVEIJZVKVDUJAIJWBEAUKAULTVK
    VGVEMJWBVEVGUMVGVEUNTUOVEVGUPUQUTAVEURVAUS $.

  $( An infinite GCH-set is idempotent under cardinal product.  Part of Lemma
     2.2 of [KanamoriPincus] p. 419.  (Contributed by Mario Carneiro,
     31-May-2015.) $)
  gchxpidm $p |- ( ( A e. GCH /\ -. A e. Fin ) -> ( A X. A ) ~~ A ) $=
    ( cgch wcel cfn wn wa cxp cdom wbr cpw csdm cen c0 cvv ensymd adantr syldan
    c1o syl2anc syl csn 0ex a1i xpsneng sylan2 df1o2 wne wceq syl6eqel necon3bi
    id 0fin adantl wb 0sdomg mpbird 0sdom1dom syl5eqbrr xpdom2g endomtr canth2g
    sylib sdomdom xpdom1g pwexg domtr ccda co simpl pwcdaen gchcdaidm pwen entr
    domentr com gchinf pwxpndom ensym endom nsyl brsdom sylanbrc gchen1 mpdan
    jca ) ABCZADCZEZFZAAAGZWIAWJHIZWJAJZKIZFAWJLIWIWKWMWIAAMUAZGZLIWOWJHIZWKWIW
    OAWHWFMNCZWOALIWQWHUBUCAMBNUDUEOWFWHWNAHIWPWIWNRAHUFWIMAKIZRAHIWIWRAMUGZWHW
    SWFWGAMAMUHZAMDWTUKULUIUJUMWFWRWSUNWHABUOPUPAUQVBURWNAABUSQAWOWJUTSWIWJWLHI
    ZWJWLLIZEWMWIWJWLWLGZHIZXCWLLIZXAWIWJWLAGZHIZXFXCHIZXDWFWHAWLHIZXGWIAWLKIZX
    IWFXJWHABVAPAWLVCTZAWLABVDQWIWLNCZXIXHWFXLWHABVEPXKAWLWLNUSSWJXFXCVFSWIXCAA
    VGVHZJZLIXNWLLIZXEWIXNXCWFWHWFXNXCLIWFWHVIAABBVJQOWIXMALIXOAVKXMAVLTXCXNWLV
    MSWJXCWLVNSWIWLWJHIZXBWIVOAHIXPEAVPAVQTXBWLWJLIXPWJWLVRWLWJVSTVTWJWLWAWBWEA
    WJWCWDO $.

  $( A relationship between dominance over the powerset and strict dominance
     when the sets involved are infinite GCH-sets.  Proposition 3.1 of
     [KanamoriPincus] p. 421.  (Contributed by Mario Carneiro, 31-May-2015.) $)
  gchpwdom $p |- ( ( _om ~<_ A /\ A e. GCH /\ B e. GCH ) ->
      ( A ~< B <-> ~P A ~<_ B ) ) $=
    ( com cdom wbr cgch wcel csdm cpw ccda co cen cvv cdadom3 syl2anc entr 3syl
    syl cfn wn w3a wa simpl2 pwexg simpl3 domen2 syl5ibrcom cdacomen mpan ensym
    endom domsdomtr 3ad2antl1 sdomnsym isfinite sylnibr gchcdaidm pwen pwcdadom
    wb domen1 wi canth2g sdomdomtr gchi 3expia 3ad2antl2 simpl1 domnsym pm2.21d
    ex syl5bi 3syld syl5 sylbird domentr sylancl sdomdom adantl cdadom1 cdadom2
    pwdom domtr c1o pwcda1 gchcda1 gchor syl22anc mpjaod reldom brrelexi sylbir
    wo pwexb mpancom impbid1 ) CADEZAFGZBFGZUAZABHEZAIZBDEZWTXAXCWTXAUBZBXBBJKZ
    LEZXCXEBIZLEZXDXCXFXBXEDEZXDXBMGZWSXIXDWRXJWQWRWSXAUCAFUDRZWQWRWSXAUEZXBBMF
    NOBXEXBUFUGXHXGBXBJKZDEZXDXCXHXMXGLEZXGXMLEXNXMXELEZXHXOBXBUHZXMXEXGPUIXMXG
    UJXGXMUKQXDXNBBJKZIZXMDEZXCXDXRBLEZXSXGLEXTXNUTXDWSBSGZTZYAXLXDBCHEZYBXDCBH
    EZYDTWQWRXAYEWSCABULUMCBUNRBUOUPZBUQOXRBURXSXGXMVAQXTXGXBDEZXDXCBXBUSXDYGBX
    BHEZASGZXCXDWSBXGHEZYGYHVBXLBFVCZYJYGYHBXGXBVDVKQWRWQXAYHYIVBWSWRXAYHYIABVE
    VFVGYIACHEZXDXCAUOXDYLXCXDWQYLTWQWRWSXAVHCAVIRVJVLVMVNVOVNXDWSYCBXEDEZXEXGD
    EZXFXHWMXLYFXDBXMDEZXPYMXDWSXJYOXLXKBXBFMNOXQBXMXEVPVQXDXEXGXGJKZDEZYPXGLEZ
    YNXDXEXGBJKZDEZYSYPDEZYQXDABDEZXBXGDEYTXAUUBWTABVRVSABWBXBXGBVTQXDYJBXGDEUU
    AXDWSYJXLYKRBXGVRBXGXGWAQXEYSYPWCOXDYPBWDJKZIZLEZUUDXGLEZYRXDWSUUEXLBFWERXD
    UUCBLEZUUFXDWSYCUUGXLYFBWFOUUCBURRYPUUDXGPOXEYPXGVPOBXEWGWHWIVKAXBHEZXCXAXC
    XJUUHXBBDWJWKXJAMGUUHAWNAMVCWLRAXBBVDWOWP $.

  $( If ` ( aleph `` A ) ` is a GCH-set and its powerset is well-orderable,
     then the successor aleph ` ( aleph `` suc A ) ` is equinumerous to the
     powerset of ` ( aleph `` A ) ` .  (Contributed by Mario Carneiro,
     15-May-2015.) $)
  gchaleph $p |- ( ( A e. On /\ ( aleph ` A ) e. GCH /\
    ~P ( aleph ` A ) e. dom card ) ->
    ( aleph ` suc A ) ~~ ~P ( aleph ` A ) ) $=
    ( con0 wcel cale cfv cgch cpw ccrd cdm w3a csuc cdom wbr csdm wn wb domtri2
    com cvv syl2anc cen alephsucpw2 alephon onenon ax-mp sylancr mpbiri cfn wss
    simp3 simp1 alephgeom sylib ssdomg mpsyl domnsym syl isfinite sylnibr simp2
    fvex wi alephordilem1 3ad2ant1 gchi 3expia mtod sylancl mpbird sbth ) ABCZA
    DEZFCZVLGZHIZCZJZAKZDEZVNLMZVNVSLMZVSVNUAMVQVTVNVSNMOZAUBVQVSVOCZVPVTWBPVSB
    CWCVRUCVSUDUEZVKVMVPUJZVSVNQUFUGVQWAVSVNNMZOZVQWFVLUHCZVQVLRNMZWHVQRVLLMZWI
    OVLSCVQRVLUIZWJADVAVQVKWKVKVMVPUKAULUMRVLSUNUORVLUPUQVLURUSVQVMVLVSNMZWFWHV
    BVKVMVPUTVKVMWLVPAVCVDVMWLWFWHVLVSVEVFTVGVQVPWCWAWGPWEWDVNVSQVHVIVSVNVJT $.

  $( If ` ( aleph `` A ) ` and ` ( aleph `` suc A ) ` are GCH-sets, then the
     successor aleph ` ( aleph `` suc A ) ` is equinumerous to the powerset of
     ` ( aleph `` A ) ` .  (Contributed by Mario Carneiro, 31-May-2015.) $)
  gchaleph2 $p |- ( ( A e. On /\ ( aleph ` A ) e. GCH /\
    ( aleph ` suc A ) e. GCH ) ->
    ( aleph ` suc A ) ~~ ~P ( aleph ` A ) ) $=
    ( con0 wcel cale cfv cgch csuc cpw ccrd cdm cen wbr char cdom harcl alephon
    w3a csdm onenon com harsdom wb wss simp1 alephgeom sylib ssdomg mpsyl simp2
    mp2b wceq alephsuc simp3 eqeltrrd gchpwdom syl3anc ondomen sylancr gchaleph
    syl mpbii syld3an3 ) ABCZADEZFCZAGDEZFCZVDHZIJZCZVFVHKLVCVEVGQZVDMEZBCVHVLN
    LZVJVDOVKVDVLRLZVMVDBCZVDVICVNAPZVDSVDUAUJVKTVDNLZVEVLFCVNVMUBVOVKTVDUCZVQV
    PVKVCVRVCVEVGUDZAUEUFTVDBUGUHVCVEVGUIVKVFVLFVKVCVFVLUKVSAULUTVCVEVGUMUNVDVL
    UOUPVAVLVHUQURAUSVB $.

  ${
    $d x A $.
    $( If ` A + ~~ ~P A ` , then ` A ` is a GCH-set.  The much simpler converse
       to ~ gchhar .  (Contributed by Mario Carneiro, 2-Jun-2015.) $)
    hargch $p |- ( ( har ` A ) ~~ ~P A -> A e. GCH ) $=
      ( vx char cfv cpw cen wbr cgch wcel cfn cv csdm wa cdom ccrd con0 syl cvv
      wn wb wal wo wi cdm harcl sdomdom ondomen sylancr ax-mp cardsdom2 sylancl
      onenon ibir harcard syl6eleq elharval simprbi cardid2 domen1 3syl domnsym
      mpbid con2i sdomen2 notbid imnan sylib alrimiv olcd relen brrelex2i pwexb
      syl5ib sylibr elgch mpbird ) ACDZAEZFGZAHIZAJIZABKZLGZWBVRLGZMSZBUAZUBZVS
      WFWAVSWEBVSWCWDSZUCWEWCWBVQLGZSVSWHWIWCWIWBANGZWCSWIWBODZANGZWJWIWKVQIZWL
      WIWKVQODZVQWIWKWNIZWIWBOUDZIZVQWPIZWOWITWIVQPIZWBVQNGWQAUEZWBVQUFVQWBUGUH
      ZWSWRWTVQULUIWBVQUJUKUMAUNUOWMWKPIWLAWKUPUQQWIWQWKWBFGWLWJTXAWBURWKWBAUSU
      TVBWBAVAQVCVSWIWDVQVRWBVDVEVMWCWDVFVGVHVIVSARIZVTWGTVSVRRIXBVQVRFVJVKAVLV
      NBARVOQVP $.

    $( If ` ( aleph `` suc A ) ` is equinumerous to the powerset of
       ` ( aleph `` A ) ` , then ` ( aleph `` A ) ` is a GCH-set.  (Contributed
       by Mario Carneiro, 15-May-2015.) $)
    alephgch $p |- ( ( aleph ` suc A ) ~~ ~P ( aleph ` A ) ->
      ( aleph ` A ) e. GCH ) $=
      ( vx csuc cale cfv cpw cen wbr cfn wcel cv csdm wa wn wo cgch alephnbtwn2
      wal sdomen2 cvv anbi2d mtbii alrimiv olcd wb fvex elgch ax-mp sylibr ) AC
      DEZADEZFZGHZUKIJZUKBKZLHZUOULLHZMZNZBRZOZUKPJZUMUTUNUMUSBUMUPUOUJLHZMURAU
      OQUMVCUQUPUJULUOSUAUBUCUDUKTJVBVAUEADUFBUKTUGUHUI $.
  $}

  $( It is sufficient to require that all alephs are GCH-sets to ensure the
     full generalized continuum hypothesis.  (The proof uses the Axiom of
     Regularity.)  (Contributed by Mario Carneiro, 15-May-2015.) $)
  gch2 $p |- ( GCH = _V <-> ran aleph C_ GCH ) $=
    ( vx cgch cvv wceq cale wss wcel ccrd cfv com mpbi a1i cen wbr wac fnfvelrn
    con0 alephfnon sylancr sseldd crn ssv sseq2 mpbiri cun cardidm iscard3 elun
    cv wo wi cfn fingch nnfi sseldi ssel jaod mpi cdm vex cpw wral csuc alephon
    wb wa simpr simpl suceloni adantl gchaleph2 syl3anc isnumi ralrimiva dfac12
    sylibr dfac10 sylib syl5eleqr cardid2 engch 3syl mpbid 2thd eqrdv impbii
    wfn ) BCDZEUAZBFZWHWJWICFWIUBBCWIUCUDWJABCWJAUIZBGZWKCGZWJWKHIZBGZWLWJWNJGZ
    WNWIGZUJZWOWNJWIUEGZWRWNHIWNDWSWKUFWNUGKWNJWIUHKWJWPWOWQWPWOUKWJWPULBWNUMWN
    UNUOLWIBWNUPUQURWJWKHUSZGWNWKMNWOWLVEWJWKCWTAUTZWJOWTCDWJWKEIZVAZWTGZAQVBOW
    JXDAQWJWKQGZVFZWKVCZEIZQGXHXCMNZXDXGVDXFXEXBBGXHBGXIWJXEVGZXFWIBXBWJXEVHZXF
    EQWGZXEXBWIGRXJQWKEPSTXFWIBXHXKXFXLXGQGZXHWIGRXEXMWJWKVIVJQXGEPSTWKVKVLXHXC
    VMSVNAVOVPVQVRVSWKVTWNWKWAWBWCWMWJXALWDWEWF $.

  $( An equivalent formulation of the generalized continuum hypothesis.
     (Contributed by Mario Carneiro, 15-May-2015.) $)
  gch3 $p |- ( GCH = _V <->
    A. x e. On ( aleph ` suc x ) ~~ ~P ( aleph ` x ) ) $=
    ( cgch cvv wceq cv csuc cale cfv cpw cen con0 wral wcel syl5eleqr alephfnon
    wbr wa fvex mpbiran sylibr simpr simpl gchaleph2 syl3anc ralrimiva alephgch
    crn wss wf ralimi wfn ffnfv df-f sylib gch2 impbii ) BCDZAEZFZGHZURGHZIJPZA
    KLZUQVBAKUQURKMZQZVDVABMZUTBMVBUQVDUAVEVACBURGRUQVDUBZNVEUTCBUSGRVGNURUCUDU
    EVCGUGBUHZUQVCKBGUIZVHVCVFAKLZVIVBVFAKURUFUJVIGKUKZVJOAKBGULSTVIVKVHOKBGUMS
    UNUOTUP $.

  ${
    $d x A $.
    $( The equivalence of two versions of the Generalized Continuum Hypothesis.
       The right-hand side is the standard version in the literature.  The
       left-hand side is a version devised by Kannan Nambiar, which he calls
       the Axiom of Combinatorial Sets.  For the notation and motivation behind
       this axiom, see his paper, "Derivation of Continuum Hypothesis from
       Axiom of Combinatorial Sets," available at
       ~ http://www.e-atheneum.net/science/derivation&#95;ch.pdf .  The
       equivalence of the two sides provides a negative answer to Open Problem
       2 in
       ~ http://www.e-atheneum.net/science/open&#95;problem&#95;print.pdf .
       The key idea in the proof below is to equate both sides of ~ alephexp2
       to the successor aleph using ~ enen2 .  (Contributed by NM,
       1-Oct-2004.) $)
    gch-kn $p |- ( A e. On -> ( ( aleph ` suc A ) ~~
                { x | ( x C_ ( aleph ` A ) /\ x ~~ ( aleph ` A ) ) } <->
                ( aleph ` suc A ) ~~ ( 2o ^m ( aleph ` A ) ) ) ) $=
      ( con0 wcel csuc cale cfv c2o co cen wbr cv wss wa cab wb alephexp2 enen2
      cmap syl bicomd ) BCDZBEFGZHBFGZSIZJKZUCALZUDMUGUDJKNAOZJKZUBUEUHJKUFUIPA
      BQUEUHUCRTUA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derivation of the Axiom of Choice
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    gchaclem.1 $e |- ( ph -> _om ~<_ A ) $.
    gchaclem.3 $e |- ( ph -> ~P C e. GCH ) $.
    gchaclem.4 $e |- ( ph ->
      ( A ~<_ C /\ ( B ~<_ ~P C -> ~P A ~<_ B ) ) ) $.
    $( Lemma for ~ gchac (obsolete, used in Sierpi&#324;ski's proof).
       (Contributed by Mario Carneiro, 15-May-2015.) $)
    gchaclem $p |- ( ph ->
      ( A ~<_ ~P C /\ ( B ~<_ ~P ~P C -> ~P A ~<_ B ) ) ) $=
      ( cpw cdom wbr wi cvv wcel syl 3syl domtr syl2anc adantr com ex brrelex2i
      simpld csdm reldom canth2g sdomdom wo wa cgch ccda cen pwcdaidm gchdomtri
      co simpr syl3anc pwdom simprd jaod syld jca ) ABDHZIJZCVBHIJZBHZCIJZKABDI
      JZDVBIJZVCAVGCVBIJZVFKZGUBZADLMZDVBUCJVHAVGVLVKBDIUDUANDLUEDVBUFOBDVBPQAV
      DVBCIJZVIUGZVFAVDVNAVDUHZVBUIMZVBVBUJUNVBUKJZVDVNAVPVDFRVOSDIJZVQAVRVDASB
      IJVGVREVKSBDPQRDULNAVDUOVBCUMUPTAVMVFVIAVGVEVBIJZVMVFKVKBDUQVSVMVFVEVBCPT
      OAVGVJGURUSUTVA $.
  $}

  $( A "local" form of ~ gchac .  If ` A ` and ` ~P A ` are GCH-sets, then the
     Hartogs number of ` A ` is ` ~P A ` (so ` ~P A ` and a fortiori ` A ` are
     well-orderable).  The proof is due to Specker.  Theorem 2.1 of
     [KanamoriPincus] p. 419.  (Contributed by Mario Carneiro, 31-May-2015.) $)
  gchhar $p |- ( ( _om ~<_ A /\ A e. GCH /\ ~P A e. GCH ) ->
      ( har ` A ) ~~ ~P A ) $=
    ( com cdom wbr cgch wcel cpw cen ccda con0 cdadom3 csdm sylancl cvv syl2anc
    co wn syl entr domentr w3a char cfv harcl sylancr domnsym 3ad2ant1 isfinite
    simp3 cfn sylnibr pwfi sylnib ovex canth2 pwcdaen pwexg cwdom simp2 harwdom
    wdompwdom 3syl xpdom2g xpexg ensymd enrefg gchxpidm cdaen gchcdaidm endomtr
    cxp pwen sdomdomtr gchen1 syl22anc cdacomen domen2 syl5ibrcom mtoi sylanbrc
    harndom brsdom canth2g sdomdom cdadom1 4syl cdadom2 domtr gchen2 endom sbth
    pwcdadom ) BACDZAEFZAGZEFZUAZAUBUCZWOCDZWOWRCDZWRWOHDWQWRWRWOIPZCDZXAWOHDWS
    WQWRJFZWPXBAUDZWMWNWPUIZWRWOJEKUEWQWOXAWQWOWOWRIPZHDZXFXAHDWOXAHDWQWPWOUJFZ
    QZWOXFCDZXFWOGZLDZXGXEWQAUJFZXHWQABLDZXMWMWNXNQWPBAUFUGAUHUKZAULUMZWQWPXCXJ
    XEXDWOWREJKMWQXFXFGZLDXQXKCDZXLXFWOWRIUNUOWQXQXKWRGZVKZHDZXTXKCDZXRWQWPXCYA
    XEXDWOWREJUPMWQXTXKAAVKZGZGZVKZCDZYFXKHDZYBWQXKNFZXSYECDZYGWQWPYIXEWOEUQRWQ
    WNWRYDURDYJWMWNWPUSZEAUTWRYDVAVBXSYEXKNVCOWQYFWOYDIPZGZHDYMXKHDZYHWQYMYFWQW
    PYDNFZYMYFHDXEWQYCNFZYOWQWNWNYPYKYKAAEEVDOYCNUQRWOYDENUPOVEWQYLWOHDZYNWQYLW
    OWOIPZHDZYRWOHDZYQWQWOWOHDZYDWOHDZYSWQWPUUAXEWOEVFRWQYCAHDZUUBWQWNXMQZUUCYK
    XOAVGOYCAVLRWOWOYDWOVHOWQWPXIYTXEXPWOVIOZYLYRWOSOYLWOVLRYFYMXKSOXTYFXKTOXQX
    TXKVJOXFXQXKVMUEWOXFVNVOWOWRVPWOXFXASMVEWRXAWOTOZWQAAIPZGZAWRIPZHDZUUHUUICD
    WTWQUUHWOHDZWOUUIHDUUJWQUUGAHDZUUKWQWNUUDUULYKXOAVIOUUGAVLRWQUUIWOWQWNUUDAU
    UILDZUUIWOCDZUUIWOHDYKXOWQAUUICDZAUUIHDZQUUMWQWNXCUUOYKXDAWREJKMWQUUPWRACDZ
    AWAWQUUQUUPWRUUICDZWQWRWRAIPZCDZUUSUUIHDUURWQXCWNUUTXDYKWRAJEKUEWRAVPWRUUSU
    UITMAUUIWRVQVRVSAUUIWBVTWQUUIYRCDZYTUUNWQUUIXFCDZXFYRCDZUVAWQWNAWOLDAWOCDUV
    BYKAEWCAWOWDAWOWRWEWFWQWSUVCUUFWRWOWOWGRUUIXFYRWHOUUEUUIYRWOTOAUUIWIVOVEUUH
    WOUUISOUUHUUIWJAWRWLVBWRWOWKO $.

  $( A "local" form of ~ gchac .  If ` A ` and ` ~P A ` are GCH-sets, then
     ` ~P A ` is well-orderable.  The proof is due to Specker.  Theorem 2.1 of
     [KanamoriPincus] p. 419.  (Contributed by Mario Carneiro, 15-May-2015.) $)
  gchacg $p |- ( ( _om ~<_ A /\ A e. GCH /\ ~P A e. GCH ) ->
      ~P A e. dom card ) $=
    ( com cdom wbr cgch wcel cpw w3a char cfv con0 cen ccrd harcl gchhar isnumi
    cdm sylancr ) BACDAEFAGZEFHAIJZKFTSLDSMQFANAOTSPR $.

  $( The Generalized Continuum Hypothesis implies the Axiom of Choice.  The
     original proof is due to Sierpi&#324;ski (1947); we use a refinement of
     Sierpi&#324;ski's result due to Specker.  (Contributed by Mario Carneiro,
     15-May-2015.) $)
  gchac $p |- ( GCH = _V -> CHOICE ) $=
    ( vx cgch cvv wceq ccrd cdm wac wcel com cun wss cpw cdom wbr vex syl5eleqr
    cv omex a1i sylancl unex ssun2 ssdomg id pwex gchacg syl3anc canth2 sdomdom
    mp2 csdm ax-mp numdom ssun1 ssnum 2thd eqrdv dfac10 sylibr ) BCDZEFZCDGUTAV
    ACUTAQZVAHZVBCHZUTVBIJZVAHZVBVEKVCUTVELZVAHZVEVGMNZVFUTIVEMNZVEBHVGBHVHVJUT
    VECHIVEKVJVBIAOZRUAZIVBUBIVECUCUJSUTVECBVLUTUDZPUTVGCBVEVLUEVMPVEUFUGVEVGUK
    NVIVEVLUHVEVGUIULVGVEUMTVBIUNVEVBUOTVDUTVKSUPUQURUS $.


$(
###############################################################################
  TG (TARSKI-GROTHENDIECK) SET THEORY
###############################################################################

  Here we introduce Tarski-Grothendieck (TG) set theory, named after
  mathematicians Alfred Tarski and Alexander Grothendieck.  TG theory extends
  ZFC with the TG Axiom ~ ax-groth , which states that for every set ` x `
  there is an inaccessible cardinal ` y ` such that ` y ` is not in ` x ` .
  The addition of this axiom to ZFC set theory provides a framework for
  category theory, thus for all practical purposes giving us a complete
  foundation for "all of mathematics."

  We first introduce the concept of inaccessibles, including weakly and
  strongly inaccessible cardinals ( ~ df-wina and ~ df-ina respectively ),
  Tarski classes ( ~ df-tsk ), and Grothendieck universes ( ~ df-gru ).  We
  then introduce the Tarski's axiom ~ ax-groth and prove various properties
  from that.

$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Inaccessibles
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Weakly and strongly inaccessible cardinals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c InaccW $. $( Weakly inaccessible $)
  $c Inacc $. $( Strongly inaccessible $)

  $( The class of weak inaccessibles. $)
  cwina $a class InaccW $.

  $( The class of strong inaccessibles. $)
  cina $a class Inacc $.

  ${
    $d x y z $.
    $( An ordinal is weakly inaccessible iff it is a regular limit cardinal.
       Note that our definition allows ` _om ` as a weakly inaccessible
       cardinal.  (Contributed by Mario Carneiro, 22-Jun-2013.) $)
    df-wina $a |- InaccW = { x | ( x =/= (/) /\ ( cf ` x ) = x /\
      A. y e. x E. z e. x y ~< z ) } $.

    $( An ordinal is strongly inaccessible iff it is a regular strong limit
       cardinal, which is to say that it dominates the powersets of every
       smaller ordinal.  (Contributed by Mario Carneiro, 22-Jun-2013.) $)
    df-ina $a |- Inacc = { x | ( x =/= (/) /\ ( cf ` x ) = x /\
      A. y e. x ~P y ~< x ) } $.
  $}

  ${
    $d A x y z $.
    $( Conditions of weak inaccessibility.  (Contributed by Mario Carneiro,
       22-Jun-2013.) $)
    elwina $p |- ( A e. InaccW <-> ( A =/= (/) /\ ( cf ` A ) = A /\
        A. x e. A E. y e. A x ~< y ) ) $=
      ( vz cwina wcel cvv c0 wne ccf cfv wceq csdm wbr wrex wral w3a elex fvex
      cv eleq1 mpbii 3ad2ant2 neeq1 wb fveq2 mpancom rexeq raleqbi1dv 3anbi123d
      eqeq12 df-wina elab2g pm5.21nii ) CEFCGFZCHIZCJKZCLZATBTMNZBCOZACPZQZCERU
      RUPUOVAURUQGFUOCJSUQCGUAUBUCDTZHIZVCJKZVCLZUSBVCOZAVCPZQVBDCEGVCCLZVDUPVF
      URVHVAVCCHUDVEUQLVIVFURUEVCCJUFVEUQVCCUKUGVGUTAVCCUSBVCCUHUIUJDABULUMUN
      $.

    $( Conditions of strong inaccessibility.  (Contributed by Mario Carneiro,
       22-Jun-2013.) $)
    elina $p |- ( A e. Inacc <-> ( A =/= (/) /\ ( cf ` A ) = A /\
      A. x e. A ~P x ~< A ) ) $=
      ( vy cina wcel cvv c0 wne ccf cfv wceq cv cpw csdm wbr wral w3a elex fvex
      eleq1 mpbii 3ad2ant2 neeq1 wb fveq2 eqeq12 mpancom breq2 3anbi123d df-ina
      raleqbi1dv elab2g pm5.21nii ) BDEBFEZBGHZBIJZBKZALMZBNOZABPZQZBDRUQUOUNUT
      UQUPFEUNBISUPBFTUAUBCLZGHZVBIJZVBKZURVBNOZAVBPZQVACBDFVBBKZVCUOVEUQVGUTVB
      BGUCVDUPKVHVEUQUDVBBIUEVDUPVBBUFUGVFUSAVBBVBBURNUHUKUICAUJULUM $.
  $}

  ${
    $d A x y $.
    $( A weakly inaccessible cardinal is an ordinal.  (Contributed by Mario
       Carneiro, 29-May-2014.) $)
    winaon $p |- ( A e. InaccW -> A e. On ) $=
      ( vx vy cwina wcel c0 wne ccf cfv wceq csdm wbr wrex wral w3a con0 elwina
      cv cfon eleq1 mpbii 3ad2ant2 sylbi ) ADEAFGZAHIZAJZBRCRKLCAMBANZOAPEZBCAQ
      UFUDUHUGUFUEPEUHASUEAPTUAUBUC $.

    $( Lemma for ~ inawina .  (Contributed by Mario Carneiro, 8-Jun-2014.) $)
    inawinalem $p |- ( A e. On ->
        ( A. x e. A ~P x ~< A -> A. x e. A E. y e. A x ~< y ) ) $=
      ( con0 wcel cv cpw csdm wbr wrex cen cdom sdomdom ccrd cdm ondomen isnum2
      wa sylib mpd sylan2 ensdomtr ad2ant2l wi sdomel ad2ant2r vex canth2 ensym
      sdomentr sylancr ad2antlr jca expcom reximdv2 ex ralimdv ) CDEZAFZGZCHIZU
      SBFZHIZBCJZACURVAVDURVARZVBUTKIZBDJZVDVAURUTCLIZVGUTCMURVHRUTNOEVGCUTPBUT
      QSUAVEVFVCBDCVBDEZVFRZVEVBCEZVCRVJVERZVKVCVLVBCHIZVKVFVAVMVIURVBUTCUBUCVI
      URVMVKUDVFVAVBCUEUFTVFVCVIVEVFUSUTHIUTVBKIVCUSAUGUHVBUTUIUSUTVBUJUKULUMUN
      UOTUPUQ $.

    $( Every strongly inaccessible cardinal is weakly inaccessible.
       (Contributed by Mario Carneiro, 29-May-2014.) $)
    inawina $p |- ( A e. Inacc -> A e. InaccW ) $=
      ( vx vy c0 wne ccf cfv wceq cv cpw csdm wbr wral w3a wrex cina wcel cwina
      con0 idd cfon eleq1 mpbii inawinalem 3anim123d mpcom elina elwina 3imtr4i
      3ad2ant2 ) ADEZAFGZAHZBIZJAKLBAMZNZUKUMUNCIKLCAOBAMZNZAPQARQASQZUPURUMUKU
      SUOUMULSQUSAUAULASUBUCUJUSUKUKUMUMUOUQUSUKTUSUMTBCAUDUEUFBAUGBCAUHUI $.
  $}

  $( ` _om ` is a strongly inaccessible cardinal.  (Many definitions of
     "inaccessible" explicitly disallow ` _om ` as an inaccessible cardinal,
     but this choice allows us to reuse our results for inaccessibles for
     ` _om ` .)  (Contributed by Mario Carneiro, 29-May-2014.) $)
  omina $p |- _om e. Inacc $=
    ( vx com cina wcel c0 wne ccf cfv wceq cv cpw csdm wbr wral peano1 cfom cfn
    ne0ii nnfi sylib pwfi isfinite rgen elina mpbir3an ) BCDBEFBGHBIAJZKZBLMZAB
    NEBORPUHABUFBDZUGQDZUHUIUFQDUJUFSUFUATUGUBTUCABUDUE $.

  ${
    $d A x y $.
    $( A weakly inaccessible cardinal is a cardinal.  (Contributed by Mario
       Carneiro, 29-May-2014.) $)
    winacard $p |- ( A e. InaccW -> ( card ` A ) = A ) $=
      ( vx vy cwina wcel c0 wne ccf cfv wceq csdm wbr wrex wral w3a ccrd elwina
      cv cardcf fveq2 id 3eqtr3a 3ad2ant2 sylbi ) ADEAFGZAHIZAJZBRCRKLCAMBANZOA
      PIZAJZBCAQUGUEUJUHUGUFPIUFUIAASUFAPTUGUAUBUCUD $.
  $}

  ${
    $d A w x y z $.
    $( A weakly inaccessible cardinal is infinite.  (Contributed by Mario
       Carneiro, 29-May-2014.) $)
    winainflem $p |- ( ( A =/= (/) /\ A e. On /\
        A. x e. A E. y e. A x ~< y ) -> _om C_ A ) $=
      ( vz vw c0 con0 wcel cv csdm wbr wrex w3a com wss wn wceq wa eleq2 syl wo
      wne wral csuc nn0suc simp1 necon2bi vex sucid mpbiri adantl breq1 rexbidv
      wi breq2 cbvrexv syl6bb rspcv cdom cvv biimpa 3ad2antl2 wb suceloni eleq1
      nnon biimparc 3adant3 onelon simpl1 onsssuc syl2anc mpbird ssdomg domnsym
      sylan mpsyl nrexdv 3expia intn3an3d rexlimiva jaoi con2i word ordom eloni
      pm2.65d 3ad2ant2 ordtri1 sylancr ) CFUBZCGHZAIZBIZJKZBCLZACUCZMZNCOZCNHZP
      ZWTWRWTCFQZCDIZUDZQZDNLZUAWRPZDCUEXBXGXFWRCFWKWLWQUFUGXEXGDNXCNHZXERZWQWK
      WLXIWQXCEIZJKZECLZXIXCCHZWQXLUNXEXMXHXEXMXCXDHXCDUHZUICXDXCSUJUKWPXLAXCCW
      MXCQZWPXCWNJKZBCLXLXOWOXPBCWMXCWNJULUMXPXKBECWNXJXCJUOUPUQURTXHXEWQXLPXHX
      EWQMZXKECXQXJCHZRZXJXCUSKZXKPXCUTHXSXJXCOZXTXNXSYAXJXDHZXEXHXRYBWQXEXRYBC
      XDXJSVAVBXSXJGHZXCGHZYAYBVCXQWLXRYCXHXEWLWQXHXDGHZXEWLXHYDYEXCVFZXCVDTXEW
      LYECXDGVEVGVPVHCXJVIVPXSXHYDXHXEWQXRVJYFTXJXCVKVLVMXJXCUTVNVQXJXCVOTVRVSW
      GVTWAWBTWCWRNWDCWDZWSXAVCWEWLWKYGWQCWFWHNCWIWJVM $.

    $( A weakly inaccessible cardinal is infinite.  (Contributed by Mario
       Carneiro, 29-May-2014.) $)
    winainf $p |- ( A e. InaccW -> _om C_ A ) $=
      ( vx vy cwina wcel wne ccf cfv wceq csdm wbr wrex wral w3a com wss elwina
      c0 cv con0 cfon eleq1 mpbii winainflem syl3an2 sylbi ) ADEARFZAGHZAIZBSCS
      JKCALBAMZNOAPZBCAQUIUGATEZUJUKUIUHTEULAUAUHATUBUCBCAUDUEUF $.

    $( A weakly inaccessible cardinal is a limit ordinal.  (Contributed by
       Mario Carneiro, 29-May-2014.) $)
    winalim $p |- ( A e. InaccW -> Lim A ) $=
      ( cwina wcel com wss wlim winainf ccrd cfv wceq wb winacard cardlim sseq2
      limeq bibi12d mpbii syl mpbid ) ABCZDAEZAFZAGTAHIZAJZUAUBKZALUDDUCEZUCFZK
      UEAMUDUFUAUGUBUCADNUCAOPQRS $.

    $( A nontrivial weakly inaccessible cardinal is a limit aleph.
       (Contributed by Mario Carneiro, 29-May-2014.) $)
    winalim2 $p |- ( ( A e. InaccW /\ A =/= _om ) ->
      E. x ( ( aleph ` x ) = A /\ Lim x ) ) $=
      ( vy vw vz wcel com wne wa cv cale cfv wceq con0 wrex wex c0 wn csdm wbr
      cwina wlim ccrd winacard wss winainf cardalephex syl adantr df-rex simprr
      wb mpbid eqcomd csuc cvv w3o simprl onzsl sylib simplr aleph0 syl6eq eqtr
      fveq2 sylan2 ex necon3ad sylc pm2.21d wral suceloni vex alephord2i mpisyl
      sucid ad2antrl simplrr ad2antll eqtrd eleqtrrd ccf elwina ad3antrrr breq1
      simp3bi rexbidv rspcva syl2anc expr iscard simprbi rsp 3syl breq2d sylibd
      wi alephnbtwn2 pm3.21 mtoi syl6 imp nrexdv pm2.65d simpr a1i 3jaod eximdv
      mpd jca syl5bi ) BUAFZBGHZIZBAJZKLZMZANOZXPBMZXOUBZIZAPZXLXRXMXLBUCLBMZXR
      BUDZXLGBUEYCXRULBUFABUGUHUMUIXRXONFZXQIZAPXNYBXQANUJXNYFYAAXNYFYAXNYFIZXS
      XTYGBXPXNYEXQUKZUNYGXOQMZXOCJZUOZMZCNOZXOUPFZXTIZUQZXTYGYEYPXNYEXQURCXOUS
      UTYGYIXTYMYOYGYIXTYGXQXMYIRYHXLXMYFVAXQYIBGXQYIBGMZYIXQXPGMYQYIXPQKLGXOQK
      VEVBVCBXPGVDVFVGVHVIVJYGYMXTYGYLCNYGYJNFZIYLYJKLZDJZSTZDBOZYGYRYLUUBYGYRY
      LIZIZYSBFEJZYTSTZDBOZEBVKZUUBUUDYSYKKLZBYRYSUUIFZYGYLYRYKNFYJYKFUUJYJVLYJ
      CVMVPYJYKVNVOVQUUDBXPUUIXNYEXQUUCVRYLXPUUIMYGYRXOYKKVEVSVTZWAXLUUHXMYFUUC
      XLBQHBWBLBMUUHEDBWCWFWDUUGUUBEYSBUUEYSMUUFUUADBUUEYSYTSWEWGWHWIWJYGYRYLUU
      BRUUDUUADBUUDYTBFZUUARZUUDUULYTUUISTZUUMUUDUULYTBSTZUUNXLUULUUOWQZXMYFUUC
      XLYCUUODBVKZUUPYDYCBNFUUQDBWKWLUUODBWMWNWDUUDBUUIYTSUUKWOWPUUNUUAUUAUUNIY
      JYTWRUUNUUAWSWTXAXBXCWJXDXCVJYOXTWQYGYNXTXEXFXGXIXJVGXHXKXI $.
  $}

  ${
    $d A x $.  $d A y z $.
    $( A nontrivial weakly inaccessible cardinal is a fixed point of the aleph
       function.  (Contributed by Mario Carneiro, 29-May-2014.) $)
    winafp $p |- ( ( A e. InaccW /\ A =/= _om ) -> ( aleph ` A ) = A ) $=
      ( vx vy vz cwina wcel com wne wa cale cfv wceq wlim winalim2 cvv ad2antll
      cv ccf fveq2d eqtr3d wss con0 vex limelon mpan alephle syl simprl sseqtrd
      alephsing csdm wbr wrex wral elwina simp2bi ad2antrr cfle syl6eqssr eqssd
      c0 exlimddv ) AEFZAGHZIZBQZJKZALZVFMZIZAJKZALBBANVEVJIZVGVKAVLVFAJVLVFAVL
      VFVGAVIVFVGUAZVEVHVIVFUBFZVMVFOFVIVNBUCVFOUDUEVFUFUGPVEVHVIUHZUIVLAVFRKZV
      FVLARKZVPAVLVGRKZVQVPVLVGARVOSVIVRVPLVEVHVFUJPTVCVQALZVDVJVCAVAHVSCQDQUKU
      LDAUMCAUNCDAUOUPUQTVFURUSUTSVOTVB $.
  $}

  ${
    winafp.1 $e |- A e. InaccW $.
    winafp.2 $e |- A =/= _om $.
    $( This theorem, which states that a nontrivial inaccessible cardinal is
       its own aleph number, is stated here in inference form, where the
       assumptions are in the hypotheses rather than an antecedent.  Often, we
       use ~ dedth to turn this type of statement into the closed form
       statement ~ winafp , but in this case, since it is consistent with ZFC
       that there are no nontrivial inaccessible cardinals, it is not possible
       to prove ~ winafp using this theorem and ~ dedth , in ZFC. (You can
       prove this if you use ~ ax-groth , though.)  (Contributed by Mario
       Carneiro, 28-May-2014.) $)
    winafpi $p |- ( aleph ` A ) = A $=
      ( cwina wcel com wne cale cfv wceq winafp mp2an ) ADEAFGAHIAJBCAKL $.
  $}

  ${
    $d x y z $.
    $( Assuming the GCH, weakly and strongly inaccessible cardinals coincide.
       Theorem 11.20 of [TakeutiZaring] p. 106.  (Contributed by Mario
       Carneiro, 5-Jun-2015.) $)
    gchina $p |- ( GCH = _V -> InaccW = Inacc ) $=
      ( vx vy vz cgch cvv wceq cwina cina cv wcel wa cfv csdm wbr wral w3a cdom
      wi com syl simpr c0 wne ccf wrex cpw idd cfn pwfi isfinite winainf ssdomg
      wss mpd sdomdomtr expcom syl5bi ad3antlr a1dd wn wb vex simplll syl5eleqr
      simprr gchinf syl2anc gchpwdom syl3anc ccrd winacard con0 iscard ad2antlr
      simprbi r19.21bi domsdomtr adantrr sylbid expr pm2.61d rexlimdva ralimdva
      3anim123d elwina elina 3imtr4g ex inawina impbid1 eqrdv ) DEFZAGHWLAIZGJZ
      WMHJZWLWNWOWLWNKZWNWOWLWNUAWPWMUBUCZWMUDLWMFZBIZCIZMNZCWMUEZBWMOZPWQWRWSU
      FZWMMNZBWMOZPWNWOWPWQWQWRWRXCXFWPWQUGWPWRUGWPXBXEBWMWPWSWMJZKZXAXECWMXHWT
      WMJZKZWSUHJZXAXERZXJXKXEXAWNXKXERWLXGXIXKXDUHJZWNXEWSUIXMXDSMNZWNXEXDUJWN
      SWMQNZXNXERWNSWMUMXOWMUKSWMGULUNXNXOXEXDSWMUOUPTUQUQURUSXHXIXKUTZXLXHXIXP
      KZKZXAXDWTQNZXEXRSWSQNZWSDJZWTDJXAXSVAXRYAXPXTXRWSEDBVBWLWNXGXQVCZVDZXHXI
      XPVEWSVFVGYCXRWTEDCVBYBVDWSWTVHVIXHXIXSXERZXPXJWTWMMNZYDXHYECWMWNYECWMOZW
      LXGWNWMVJLWMFZYFWMVKYGWMVLJYFCWMVMVOTVNVPXSYEXEXDWTWMVQUPTVRVSVTWAWBWCWDB
      CWMWEBWMWFWGUNWHWMWIWJWK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Weak universes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c WUni $. $( The class of weak universes. $)
  $c wUniCl $. $( The function of "weak universe closure". $)

  $( Extend class definition to include the class of all weak universes. $)
  cwun $a class WUni $.

  $( Extend class definition to include the map whose value is the smallest
     weak universe of which the given set is a subset. $)
  cwunm $a class wUniCl $.

  ${
    $d x y A $.  $d y B $.  $d u x y U $.
    $( The class of all weak universes.  A weak universe is a nonempty
       transitive class closed under union, pairing, and powerset.  The
       advantage of weak universes over Grothendieck universes is that one can
       prove that every set is contained in a weak universe in ZF (see
       ~ uniwun ) whereas the analogue for Grothendieck universes requires
       ~ ax-groth (see ~ grothtsk ).  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    df-wun $a |- WUni = { u | ( Tr u /\ u =/= (/) /\
      A. x e. u ( U. x e. u /\ ~P x e. u /\ A. y e. u { x , y } e. u ) ) } $.

    $( A function that maps a set ` x ` to the smallest weak universe that
       contains the elements of the set.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    df-wunc $a |- wUniCl = ( x e. _V |-> |^| { u e. WUni | x C_ u } ) $.

    $( Properties of a weak universe.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    iswun $p |- ( U e. V -> ( U e. WUni <-> ( Tr U /\ U =/= (/) /\
      A. x e. U ( U. x e. U /\ ~P x e. U /\ A. y e. U { x , y } e. U ) ) ) ) $=
      ( vu cv wtr wne cuni wcel cpw cpr wral w3a cwun wceq raleqbi1dv 3anbi123d
      c0 eleq2 treq neeq1 df-wun elab2g ) EFZGZUESHZAFZIZUEJZUHKZUEJZUHBFLZUEJZ
      BUEMZNZAUEMZNCGZCSHZUICJZUKCJZUMCJZBCMZNZACMZNECODUECPZUFURUGUSUQVEUECUAU
      ECSUBUPVDAUECVFUJUTULVAUOVCUECUITUECUKTUNVBBUECUECUMTQRQRABEUCUD $.

    $( A weak universe is transitive.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    wuntr $p |- ( U e. WUni -> Tr U ) $=
      ( vx vy cwun wcel wtr c0 wne cv cuni cpw cpr wral w3a iswun ibi simp1d )
      ADEZAFZAGHZBIZJAEUAKAEUACILAECAMNBAMZRSTUBNBCADOPQ $.

    wununi.1 $e |- ( ph -> U e. WUni ) $.
    wununi.2 $e |- ( ph -> A e. U ) $.
    $( A weak universe is closed under union.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    wununi $p |- ( ph -> U. A e. U ) $=
      ( vx vy wcel cv cuni wral cwun cpw cpr w3a wtr c0 wne iswun ibi 3syl wceq
      simp3d simp1 ralimi unieq eleq1d rspcv sylc ) ABCHFIZJZCHZFCKZBJZCHZEACLH
      ZULUJMCHZUJGINCHGCKZOZFCKZUMDUPCPZCQRZUTUPVAVBUTOFGCLSTUCUSULFCULUQURUDUE
      UAULUOFBCUJBUBUKUNCUJBUFUGUHUI $.

    $( A weak universe is closed under powerset.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    wunpw $p |- ( ph -> ~P A e. U ) $=
      ( vx vy wcel cv cpw wral cwun cuni cpr w3a wtr c0 wne iswun ibi 3syl wceq
      simp3d simp2 ralimi pweq eleq1d rspcv sylc ) ABCHFIZJZCHZFCKZBJZCHZEACLHZ
      UJMCHZULUJGINCHGCKZOZFCKZUMDUPCPZCQRZUTUPVAVBUTOFGCLSTUCUSULFCUQULURUDUEU
      AULUOFBCUJBUBUKUNCUJBUFUGUHUI $.

    $( The elements of a weak universe are also subsets of it.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    wunelss $p |- ( ph -> A C_ U ) $=
      ( wtr wcel wss cwun wuntr syl trss sylc ) ACFZBCGBCHACIGNDCJKECBLM $.

    ${
      wunpr.3 $e |- ( ph -> B e. U ) $.
      $( A weak universe is closed under pairing.  (Contributed by Mario
         Carneiro, 2-Jan-2017.) $)
      wunpr $p |- ( ph -> { A , B } e. U ) $=
        ( vx vy wcel cv cpr wral cwun cuni cpw w3a wtr wceq eleq1d c0 wne iswun
        ibi simp3d simp3 ralimi 3syl preq1 preq2 rspc2va syl21anc ) ABDJCDJHKZI
        KZLZDJZIDMZHDMZBCLZDJZFGADNJZUMODJZUMPDJZUQQZHDMZUREVADRZDUAUBZVEVAVFVG
        VEQHIDNUCUDUEVDUQHDVBVCUQUFUGUHUPUTBUNLZDJHIBCDDUMBSUOVHDUMBUNUITUNCSVH
        USDUNCBUJTUKUL $.

      $( A weak universe is closed under binary union.  (Contributed by Mario
         Carneiro, 2-Jan-2017.) $)
      wunun $p |- ( ph -> ( A u. B ) e. U ) $=
        ( cpr cuni cun wcel wceq uniprg syl2anc wunpr wununi eqeltrrd ) ABCHZIZ
        BCJZDABDKCDKSTLFGBCDDMNARDEABCDEFGOPQ $.

      wuntp.3 $e |- ( ph -> C e. U ) $.
      $( A weak universe is closed under unordered triple.  (Contributed by
         Mario Carneiro, 2-Jan-2017.) $)
      wuntp $p |- ( ph -> { A , B , C } e. U ) $=
        ( ctp csn cpr cun tpass dfsn2 wunpr syl5eqel wunun ) ABCDJBKZCDLZMEBCDN
        ASTEFASBBLEBOABBEFGGPQACDEFHIPRQ $.
    $}

    ${
      wunss.3 $e |- ( ph -> B C_ A ) $.
      $( A weak universe is closed under subsets.  (Contributed by Mario
         Carneiro, 2-Jan-2017.) $)
      wunss $p |- ( ph -> B e. U ) $=
        ( cpw wunpw wunelss sselpwd sseldd ) ABHZDCAMDEABDEFIJACBDFGKL $.
    $}

    $( A weak universe is closed under binary intersections.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    wunin $p |- ( ph -> ( A i^i B ) e. U ) $=
      ( cin wss inss1 a1i wunss ) ABBCGZDEFLBHABCIJK $.

    $( A weak universe is closed under class difference.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    wundif $p |- ( ph -> ( A \ B ) e. U ) $=
      ( cdif difssd wunss ) ABBCGDEFABCHI $.

    $( A weak universe is closed under nonempty intersections.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    wunint $p |- ( ( ph /\ A =/= (/) ) -> |^| A e. U ) $=
      ( c0 wne wa cuni cint cwun wcel adantr wununi wss intssuni adantl wunss )
      ABFGZHBIZBJZCACKLSDMATCLSABCDENMSUATOABPQR $.

    $( A weak universe is closed under singletons.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    wunsn $p |- ( ph -> { A } e. U ) $=
      ( csn cpr dfsn2 wunpr syl5eqel ) ABFBBGCBHABBCDEEIJ $.

    $( A weak universe is closed under successors.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    wunsuc $p |- ( ph -> suc A e. U ) $=
      ( csuc csn cun df-suc wunsn wunun syl5eqel ) ABFBBGZHCBIABMCDEABCDEJKL $.
  $}

  ${
    $d x y z A $.  $d x y z ph $.  $d x y z U $.
    wun0.1 $e |- ( ph -> U e. WUni ) $.
    $( A weak universe contains the empty set.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    wun0 $p |- ( ph -> (/) e. U ) $=
      ( vx vy cv wcel wne wex cwun wtr cuni cpw cpr wral w3a iswun ibi simp2d
      c0 syl n0 sylib wa adantr simpr wss 0ss a1i wunss exlimddv ) ADFZBGZTBGDA
      BTHZUMDIABJGZUNCUOBKZUNULLBGULMBGULEFNBGEBOPDBOZUOUPUNUQPDEBJQRSUADBUBUCA
      UMUDZULTBAUOUMCUEAUMUFTULUGURULUHUIUJUK $.

    $( A weak universe is infinite, because it contains all the finite levels
       of the cumulative hierarchy.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    wunr1om $p |- ( ph -> ( R1 " _om ) C_ U ) $=
      ( vy vx cr1 com cima cv cfv wceq wrex wcel wi csuc fveq2 eleq1d r10 con0
      c0 wun0 syl5eqel wa cpw cwun adantr simpr wunpw nnon r1suc syl5ibr finds2
      syl expd eleq1 imbi2d syl5ibcom rexlimiv wfun wfn r1fnon fnfun ax-mp mpan
      fvelima syl11 ssrdv ) ADFGHZBEIZFJZDIZKZEGLZAVKBMZVKVHMZVLAVNNZEGVIGMAVJB
      MZNVLVPVQTFJZBMVKFJZBMZVKOZFJZBMZAEDVITKVJVRBVITFPQVIVKKVJVSBVIVKFPQVIWAK
      VJWBBVIWAFPQAVRTBRABCUAUBVKGMZAVTWCAVTUCZWCWDVSUDZBMWEVSBABUEMVTCUFAVTUGU
      HWDWBWFBWDVKSMWBWFKVKUIVKUJUMQUKUNULVLVQVNAVJVKBUOUPUQURFUSZVOVMFSUTWGVAS
      FVBVCEVKGFVEVDVFVG $.

    $( A weak universe contains all the finite ordinals, and hence is infinite.
       (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    wunom $p |- ( ph -> _om C_ U ) $=
      ( vx com cv wcel wa cr1 cfv cwun adantr cima wss wral wunr1om wfun cdm wb
      r1funlim simpli simpri limomss ax-mp funimass4 mp2an sylib r19.21bi simpr
      wlim sseldi onssr1 syl wunss ex ssrdv ) ADEBADFZEGZUQBGAURHZUQIJZUQBABKGU
      RCLAUTBGZDEAIEMBNZVADEOZABCPIQZEIRZNZVBVCSVDVEUJZTUAVGVFVDVGTUBVEUCUDZDEB
      IUEUFUGUHUSUQVEGUQUTNUSEVEUQVHAURUIUKUQULUMUNUOUP $.

    ${
      wunfi.2 $e |- ( ph -> A C_ U ) $.
      wunfi.3 $e |- ( ph -> A e. Fin ) $.
      $( A weak universe contains all finite sets with elements drawn from the
         universe.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
      wunfi $p |- ( ph -> A e. U ) $=
        ( vx vy vz wss wcel cfn wi cv c0 wceq sseq1 eleq1 imbi12d imbi2d imim1i
        csn cun wun0 a1d sstr mpan wa cwun adantr simprr simprl unssbd vex snss
        ssun1 sylibr wunsn wunun exp32 a2d syl5 a2i a1i findcard2 mpcom mpd ) A
        BCJZBCKZEBLKAVHVIMZFAGNZCJZVKCKZMZMAOCJZOCKZMZMAHNZCJZVRCKZMZMZAVRINZUB
        ZUCZCJZWECKZMZMZAVJMGHIBVKOPZVNVQAWJVLVOVMVPVKOCQVKOCRSTVKVRPZVNWAAWKVL
        VSVMVTVKVRCQVKVRCRSTVKWEPZVNWHAWLVLWFVMWGVKWECQVKWECRSTVKBPZVNVJAWMVLVH
        VMVIVKBCQVKBCRSTAVPVOACDUDUEWBWIMVRLKAWAWHWAWFVTMAWHWFVSVTVRWEJWFVSVRWD
        UPVRWECUFUGUAAWFVTWGAWFVTWGAWFVTUHZUHZVRWDCACUIKWNDUJZAWFVTUKWOWCCWPWOW
        DCJWCCKWOVRWDCAWFVTULUMWCCIUNUOUQURUSUTVAVBVCVDVEVFVG $.
    $}

    wunop.2 $e |- ( ph -> A e. U ) $.
    ${
      wunop.3 $e |- ( ph -> B e. U ) $.
      $( A weak universe is closed under ordered pairs.  (Contributed by Mario
         Carneiro, 2-Jan-2017.) $)
      wunop $p |- ( ph -> <. A , B >. e. U ) $=
        ( cop csn cpr wcel wceq dfopg syl2anc wunsn wunpr eqeltrd ) ABCHZBIZBCJ
        ZJZDABDKCDKRUALFGBCDDMNASTDEABDEFOABCDEFGPPQ $.

      ${
        wunot.3 $e |- ( ph -> C e. U ) $.
        $( A weak universe is closed under ordered triples.  (Contributed by
           Mario Carneiro, 2-Jan-2017.) $)
        wunot $p |- ( ph -> <. A , B , C >. e. U ) $=
          ( cotp cop df-ot wunop syl5eqel ) ABCDJBCKZDKEBCDLAODEFABCEFGHMIMN $.
      $}

      $( A weak universe is closed under cartesian products.  (Contributed by
         Mario Carneiro, 2-Jan-2017.) $)
      wunxp $p |- ( ph -> ( A X. B ) e. U ) $=
        ( cun cpw cxp wunun wunpw wss xpsspw a1i wunss ) ABCHZIZIZBCJZDEARDEAQD
        EABCDEFGKLLTSMABCNOP $.

      $( A weak universe is closed under partial mappings.  (Contributed by
         Mario Carneiro, 2-Jan-2017.) $)
      wunpm $p |- ( ph -> ( A ^pm B ) e. U ) $=
        ( cxp cpw cpm co wunxp wunpw wss pmsspw a1i wunss ) ACBHZIZBCJKZDEARDEA
        CBDEGFLMTSNABCOPQ $.

      $( A weak universe is closed under mappings.  (Contributed by Mario
         Carneiro, 2-Jan-2017.) $)
      wunmap $p |- ( ph -> ( A ^m B ) e. U ) $=
        ( cpm co cmap wunpm wss mapsspm a1i wunss ) ABCHIZBCJIZDEABCDEFGKQPLABC
        MNO $.

      wunf.3 $e |- ( ph -> F : A --> B ) $.
      $( A weak universe is closed under functions with known domain and
         codomain.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
      wunf $p |- ( ph -> F e. U ) $=
        ( cmap co wunmap wunelss wcel wf elmapd mpbird sseldd ) ACBJKZDEASDFACB
        DFHGLMAESNBCEOIACBEDDHGPQR $.
    $}

    $( A weak universe is closed under the domain operator.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    wundm $p |- ( ph -> dom A e. U ) $=
      ( cuni cdm wununi wss crn cun ssun1 dmrnssfld sstri a1i wunss ) ABFZFZBGZ
      CDAQCDABCDEHHSRIASSBJZKRSTLBMNOP $.

    $( A weak universe is closed under the range operator.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    wunrn $p |- ( ph -> ran A e. U ) $=
      ( cuni crn wununi wss cdm cun ssun2 dmrnssfld sstri a1i wunss ) ABFZFZBGZ
      CDAQCDABCDEHHSRIASBJZSKRSTLBMNOP $.

    $( A weak universe is closed under the converse operator.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    wuncnv $p |- ( ph -> `' A e. U ) $=
      ( crn cdm cxp ccnv wunrn wundm wunxp wss cnvssrndm a1i wunss ) ABFZBGZHZB
      IZCDAQRCDABCDEJABCDEKLTSMABNOP $.

    $( A weak universe is closed under restrictions.  (Contributed by Mario
       Carneiro, 12-Jan-2017.) $)
    wunres $p |- ( ph -> ( A |` B ) e. U ) $=
      ( cres wss resss a1i wunss ) ABBCGZDEFLBHABCIJK $.

    $( A weak universe is closed under the function value operator.
       (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    wunfv $p |- ( ph -> ( A ` B ) e. U ) $=
      ( crn cuni cfv wunrn wununi wss fvssunirn a1i wunss ) ABGZHZCBIZDEAPDEABD
      EFJKRQLABCMNO $.

    ${
      wunco.3 $e |- ( ph -> B e. U ) $.
      $( A weak universe is closed under composition.  (Contributed by Mario
         Carneiro, 12-Jan-2017.) $)
      wunco $p |- ( ph -> ( A o. B ) e. U ) $=
        ( ccom cdm crn cxp wundm wss dmcoss a1i wunss wunrn rncoss wunxp wrel
        relco relssdmrn mp1i ) ABCHZIZUDJZKZUDDEAUEUFDEACIZUEDEACDEGLUEUHMABCNO
        PABJZUFDEABDEFQUFUIMABCROPSUDTUDUGMABCUAUDUBUCP $.
    $}

    $( A weak universe is closed under transposition.  (Contributed by Mario
       Carneiro, 12-Jan-2017.) $)
    wuntpos $p |- ( ph -> tpos A e. U ) $=
      ( cdm ccnv c0 csn cun crn ctpos wundm wuncnv wun0 wunsn wunun wunrn wunxp
      cxp wss tposssxp a1i wunss ) ABFZGZHIZJZBKZTZBLZCDAUHUICDAUFUGCDAUECDABCD
      EMNAHCDACDOPQABCDERSUKUJUAABUBUCUD $.
  $}

  ${
    $d u x y A $.
    $( The intersection of a collection of weak universes is a weak universe.
       (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    intwun $p |- ( ( A C_ WUni /\ A =/= (/) ) -> |^| A e. WUni ) $=
      ( vx vy vu cwun wss c0 wne wa wcel wtr cv w3a sselda syl ralrimiva elint2
      wral sylibr adantlr cint cuni cpw cpr simpl wuntr trint 0ex intss1 adantl
      wun0 ne0i an32s wununi vuniex wunpw vpwex wunpr prex 3jca cvv simpr intex
      wb sylib iswun mpbir3and ) AEFZAGHZIZAUAZEJZVKKZVKGHZBLZUBZVKJZVOUCZVKJZV
      OCLZUDZVKJZCVKRZMZBVKRZVJDLZKZDARVMVJWGDAVJWFAJZIZWFEJZWGVJAEWFVHVIUENZWF
      UFOPDAUGOVJGVKJZVNVJGWFJZDARWLVJWMDAWIWFWKUKPDGAUHQSVKGULOVJWDBVKVJVOVKJZ
      IZVQVSWCWOVPWFJZDARVQWOWPDAWOWHIZVOWFVJWHWJWNWKTZVJWHWNVOWFJZWIVKWFVOWHVK
      WFFZVJWFAUIZUJNUMZUNPDVPABUOQSWOVRWFJZDARVSWOXCDAWQVOWFWRXBUPPDVRABUQQSWO
      WBCVKWOVTVKJZIZWAWFJZDARWBXEXFDAXEWHIVOVTWFWOWHWJXDWRTWOWHWSXDXBTWOWHXDVT
      WFJWQVKWFVTWHWTWOXAUJNUMURPDWAAVOVTUSQSPUTPVJVKVAJZVLVMVNWEMVDVJVIXGVHVIV
      BAVCVEBCVKVAVFOVG $.
  $}

  ${
    $d x y A $.  $d x y V $.
    $( Each limit stage in the cumulative hierarchy is a weak universe.
       (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    r1limwun $p |- ( ( A e. V /\ Lim A ) -> ( R1 ` A ) e. WUni ) $=
      ( vx vy wcel wa cr1 cfv c0 cv cuni wral w3a con0 ax-mp adantl crnk adantr
      wb syl2anc wlim wtr wne cpw cpr cwun r1tr a1i cdm wss limelon wceq r1fnon
      wfn fndm syl6eleqr onssr1 0ellim sseldd ne0i rankuni word rankon orduniss
      syl eloni mp2b rankr1ai wi onuni ontr2 sylancr mp2and syl5eqel cima uniwf
      r1elwf sylib rankr1ag mpbird r1pwcl biimpa csuc ad2antlr rankprb ad3antlr
      cun limord ordunel syl3anc limsuc mpbid eqeltrd prwf ralrimiva 3jca iswun
      cvv fvex syl3anbrc ) ABEZAUAZFZAGHZUBZXDIUCZCJZKZXDEZXGUDXDEZXGDJZUEZXDEZ
      DXDLZMZCXDLZXDUFEZXEXCAUGUHXCIXDEXFXCAXDIXCAGUIZEZAXDUJXCANXRABUKZGNUNXRN
      ULUMNGUOOUPZAUQVEXBIAEXAAURPUSXDIUTVEXCXOCXDXCXGXDEZFZXIXJXNYCXIXHQHZAEZY
      CYDXGQHZKZAXGVAYCYGYFUJZYFAEZYGAEZYHYCYFNEZYFVBYHXGVCZYFVFYFVDVGUHYBYIXCX
      GAVHPZYCYGNEZANEZYHYIFYJVIYKYNYLYFVJOXCYOYBXTRYGYFAVKVLVMVNYCXHGNVOKZEZXS
      XIYESYCXGYPEZYQYBYRXCXGAVQZPXGVPVRXCXSYBYARZXHAVSTVTXCYBXJXBYBXJSXAXGAWAP
      WBYCXMDXDYCXKXDEZFZXMXLQHZAEZUUBUUCYFXKQHZWGZWCZAUUBYRXKYPEZUUCUUGULYBYRX
      CUUAYSWDZUUAUUHYCXKAVQPZXGXKWETUUBUUFAEZUUGAEZUUBAVBZYIUUEAEZUUKXBUUMXAYB
      UUAAWHWFYCYIUUAYMRUUAUUNYCXKAVHPAYFUUEWIWJXBUUKUULSXAYBUUAAUUFWKWFWLWMUUB
      XLYPEZXSXMUUDSUUBYRUUHUUOUUIUUJXGXKWNTYCXSUUAYTRXLAVSTVTWOWPWOXDWREXQXEXF
      XPMSAGWSCDXDWRWQOWT $.

    $( The weak universes in the cumulative hierarchy are exactly the limit
       ordinals.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    r1wunlim $p |- ( A e. V -> ( ( R1 ` A ) e. WUni <-> Lim A ) ) $=
      ( vx wcel cr1 cfv cwun wlim wa c0 wceq csuc con0 wn syl sucidg r1ord sylc
      ad2antrl sylanbrc word cv wrex wo cdm simpr wun0 elfvdm r1fnon fndm ax-mp
      wfn syl6eleq eloni n0i fveq2 r10 syl6eq nsyl cima suceloni r1elwf wfelirr
      cuni 3syl cpw simprr fveq2d r1suc eqtrd simplr adantr eleqtrrd rexlimdvaa
      wunpw eqeltrd mtod ioran dflim3 r1limwun impbida ) ABDZAEFZGDZAHZWBWDIZAU
      AZAJKZACUBZLZKZCMUCZUDNZWEWFAMDZWGWFAEUEZMWFJWCDZAWODWFWCWBWDUFUGZJAEUHOE
      MULWOMKUIMEUJUKUMZAUNOWFWHNWLNWMWFWCJKZWHWFWPWSNWQWCJUOOWHWCJEFJAJEUPUQUR
      USWFWLWCWCDZWFWCALZEFDZWCEMUTVDDWTNWFXAMDZAXADZXBWFWNXCWRAVAOWFWNXDWRAMPO
      AXAQRWCXAVBWCVCVEWFWKWTCMWFWIMDZWKIZIZWCWIEFZVFZWCXGWCWJEFZXIXGAWJEWFXEWK
      VGZVHXEXJXIKWFWKWIVISVJXGXHWCWBWDXFVKXGWNWIADXHWCDWFWNXFWRVLXGWIWJAXEWIWJ
      DWFWKWIMPSXKVMWIAQRVOVPVNVQWHWLVRTCAVSTABVTWA $.
  $}

  ${
    $d a u v w x y z $.  $d a b m n w A $.  $d a b m n U $.  $d a b m n V $.
    $d b i k m n u v w F $.
    wunex2.f $e |- F = ( rec ( ( z e. _V |-> ( ( z u. U. z ) u.
      U_ x e. z ( { ~P x , U. x } u.
        ran ( y e. z |-> { x , y } ) ) ) ) , ( A u. 1o ) ) |` _om ) $.
    wunex2.u $e |- U = U. ran F $.
    $( Construct a weak universe from a given set.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    wunex2 $p |- ( A e. V -> ( U e. WUni /\ A C_ U ) ) $=
      ( va vm vu vv wcel wss cv com cvv cun wa vb vw vn vk vi cwun wtr wne cuni
      c0 cpw cpr wral w3a cfv wrex crn eleq2i wfn wb cmpt ciun crdg cres frfnom
      fneq1i mpbir fnunirn ax-mp bitri csuc elssuni ad2antll ssun2 ssun1 syl6ss
      c1o sstri wceq simprl fvex uniex unex prex mptex rnex iunex unieq uneq12d
      weq pweq preq12d preq2 cbvmptv preq1 mpteq2dv syl5eq rneqd cbviunv mpteq1
      id uneq2d iuneq12d frsucmpt2 sylancl sseqtr4d fvssunirn rexlimdvaa syl5bi
      sseqtr4i ralrimiv dftr3 sylibr con0 1on unexg mpan2 fveq1i fr0g syl6eqssr
      syl unssbd ssn0 ssiun2s syl5sseqr sstrd unssad vpwex vuniex syl2anc fveq2
      1n0 prss sseq2d vtoclga findsg sseldd wi imbi12d eqeltri simprd word ssid
      simpld simplrl ordom ordunel mp3an1 suceq fveq2d sseq12d ad2antrr syl5com
      a1i sstr2 simplrr biantrud bicomd eleq1 anbi2d anbi12d sseq1d chvarv expl
      sseq1 sylc simprr eqid elrnmpt1s 3jca wfun omex resfunexg mp2an syl3anbrc
      rdgfun iswun jca ) DGNZEUFNZDEOUVSEUGZEUJUHZJPZUIZENZUWCUKZENZUWCUAPZULZE
      NZUAEUMZUNZJEUMZUVTUVSUWCEOZJEUMUWAUVSUWNJEUWCENZUWCKPZFUOZNZKQUPZUVSUWNU
      WOUWCFUQZUIZNZUWSEUXAUWCIURFQUSZUXBUWSUTUXCCRCPZUXDUIZSZAUXDAPZUKZUXGUIZU
      LZBUXDUXGBPZULZVAZUQZSZVBZSZVAZDVQSZVCZQVDZQUSUXSUXRVEQFUYAHVFVGZKUWCFQVH
      VIVJZUVSUWRUWNKQUVSUWPQNZUWRTTZUWCUWPVKZFUOZEUYEUWCUWQUWQUIZSZLUWQLPZUKZU
      YJUIZULZMUWQUYJMPZULZVAZUQZSZVBZSZUYGUYEUWCUYHUYTUWRUWCUYHOUVSUYDUWCUWQVL
      VMUYHUYIUYTUYHUWQVNUYIUYSVOZVRVPUYEUYDUYTRNZUYGUYTVSZUVSUYDUWRVTUYIUYSUWQ
      UYHUWPFWAZUWQVUDWBWCLUWQUYRVUDUYMUYQUYKUYLWDZUYPMUWQUYOVUDWEWFWCWGWCZCUBU
      XSUWPUXQUYTUBPZVUGUIZSZLVUGUYMMVUGUYOVAZUQZSZVBZSZFRHUBCWJZVUIUXFVUMUXPVU
      OVUGUXDVUHUXEVUOXAZVUGUXDWHWIVUOVUMAVUGUXJBVUGUXLVAZUQZSZVBUXPLAVUGVULVUS
      LAWJZUYMUXJVUKVURVUTUYKUXHUYLUXIUYJUXGWKUYJUXGWHWLVUTVUJVUQVUTVUJBVUGUYJU
      XKULZVAVUQMBVUGUYOVVAUYNUXKUYJWMWNVUTBVUGVVAUXLUYJUXGUXKWOWPWQWRWIWSVUOAV
      UGUXDVUSUXOVUPVUOVURUXNUXJVUOVUQUXMBVUGUXDUXLWTWRXBXCWQWIZVUGUWQVSZVUIUYI
      VUMUYSVVCVUGUWQVUHUYHVVCXAZVUGUWQWHWIVVCLVUGUWQVULUYRVVDVVCVUKUYQUYMVVCVU
      JUYPMVUGUWQUYOWTWRXBXCWIXDZXEZXFUYGUXAEFUYFXGIXJZVPXHXIXKJEXLXMUVSVQEOVQU
      JUHUWBUVSDVQEUVSUXSUJFUOZEUVSUXSRNZVVHUXSVSUVSVQXNNVVIXODVQGXNXPXQVVIVVHU
      JUYAUOUXSUJFUYAHXRUXSRUXRXSWQYAVVHUXAEFUJXGIXJXTZYBYLVQEYCXEUVSUWLJEUWOUW
      SUVSUWLUYCUVSUWRUWLKQUYEUWEUWGUWKUYEUWGUWEUYEUWFUWDULZEOUWGUWETUYEVVKMUWQ
      UWCUYNULZVAZUQZEUYEVVKVVNSZUYSEUWRVVOUYSOUVSUYDLUWQUYRUWCVVOLJWJZUYMVVKUY
      QVVNVVPUYKUWFUYLUWDUYJUWCWKUYJUWCWHWLZVVPUYPVVMVVPMUWQUYOVVLUYJUWCUYNWOZW
      PWRWIYDVMUYEUYSUYGEUYEUYTUYSUYGUYSUYIVNVVFYEVVGVPYFYGUWFUWDEJYHJYIYMXMZUU
      AUYEUWGUWEVVSUUDUYEUWJUAEUWHENZUWHUCPZFUOZNZUCQUPZUYEUWJVVTUWHUXANZVWDEUX
      AUWHIURUXCVWEVWDUTUYBUCUWHFQVHVIVJUYEVWCUWJUCQUYEVWAQNZVWCTZTZMUWPVWASZFU
      OZVVLVAZUQZEUWIVWHVVKVWLEVWHVVKVWLSZLVWJUYMMVWJUYOVAZUQZSZVBZEVWHUWCVWJNV
      WMVWQOVWHUWQVWJUWCVWHVWIQNZUYDUWQVWJOZVWHUYDVWFVWRUVSUYDUWRVWGUUEZUYEVWFV
      WCVTZQUUBUYDVWFVWRUUFQUWPVWAUUGUUHYJZVWTVWRUYDTUWPVWIOVWSUWPVWAVOUWQUDPZF
      UOZOZUWQUWQOZUWQUEPZFUOZOZUWQVXGVKZFUOZOZVWSUDUEVWIUWPUDKWJVXDUWQUWQVXCUW
      PFYKYNZUDUEWJVXDVXHUWQVXCVXGFYKYNZVXCVXJVSVXDVXKUWQVXCVXJFYKYNZVXCVWIVSVX
      DVWJUWQVXCVWIFYKYNVXFUYDUWQUUCUUNZVXGQNZUYDTZUWPVXGOZTZVXHVXKOZVXIVXLVXQV
      YAUYDVXSUWQUYGOVYAKVXGQKUEWJZUWQVXHUYGVXKUWPVXGFYKVYBUYFVXJFUWPVXGUUIUUJU
      UKUYDUYTUWQUYGUWQUYIUYTUWQUYHVOVUAVRUYDVUBVUCVUFVVEXQYEYOUULUWQVXHVXKUUOU
      UMZYPXQYJUVSUYDUWRVWGUUPYQLVWJVWPUWCVWMVVPUYMVVKVWOVWLVVQVVPVWNVWKVVPMVWJ
      UYOVVLVVRWPWRWIYDYAVWHVWQVWIVKZFUOZEVWHVWJVWJUIZSZVWQSZVWQVYEVWQVYGVNVWHV
      WRVYHRNVYEVYHVSVXBVYGVWQVWJVYFVWIFWAZVWJVYIWBWCLVWJVWPVYIUYMVWOVUEVWNMVWJ
      UYOVYIWEWFWCWGWCCUBUXSVWIUXQVYHVUNFRHVVBVUGVWJVSZVUIVYGVUMVWQVYJVUGVWJVUH
      VYFVYJXAZVUGVWJWHWIVYJLVUGVWJVULVWPVYKVYJVUKVWOUYMVYJVUJVWNMVUGVWJUYOWTWR
      XBXCWIXDXEYEVYEUXAEFVYDXGIXJVPYFYBVWHUWHVWJNUWIRNUWIVWLNVWHVWBVWJUWHVWHVW
      RVWFVWBVWJOZVXBVXAVWFVWAVXGOZTZVWBVXHOZYRVWFVYLYRUEVWIQVXGVWIVSZVYNVWFVYO
      VYLVYPVWFVYNVYPVYMVWFVYPVWIVWAVXGVWAUWPVNVYPXAYEUUQUURVYPVXHVWJVWBVXGVWIF
      YKYNYSVXQVWFVYMVYOVXTVXIYRVXQVWFTZVYMTZVYOYRKUCKUCWJZVXTVYRVXIVYOVYSVXRVY
      QVXSVYMVYSUYDVWFVXQUWPVWAQUUSUUTUWPVWAVXGUVEUVAVYSUWQVWBVXHUWPVWAFYKUVBYS
      VXEVXFVXIVXLVXIUDUEVXGUWPVXMVXNVXOVXNVXPVYCYPUVCUVDYOUVFUYEVWFVWCUVGYQUWC
      UWHWDMVWJVVLUWIUWHVWKRVWKUVHUYNUWHUWCWMUVIXEYQXHXIXKUVJXHXIXKERNUVTUWAUWB
      UWMUNUTEUXARIUWTFFUYARHUXTUVKQRNUYARNUXSUXRUVPUVLUXTQRUVMUVNYTWFWBYTJUAER
      UVQVIUVOUVSDVQEVVJYGUVR $.
  $}

  ${
    $d u x y z $.  $d u A $.
    $( Construct a weak universe from a given set.  See also ~ wunex2 .
       (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    wunex $p |- ( A e. V -> E. u e. WUni A C_ u ) $=
      ( vz vx vy wcel cvv cv cuni cun cpw cpr cmpt crn ciun c1o cwun wss eqid
      crdg com cres wa wrex wunex2 sseq2 rspcev syl ) BCGDHDIZUJJKEUJEIZLUKJMFU
      JUKFIMNOKPKNBQKUAUBUCZOJZRGBUMSZUDBAIZSZARUEEFDBUMULCULTUMTUFUPUNAUMRUOUM
      BUGUHUI $.

    $( Every set is contained in a weak universe.  This is the analogue of
       ~ grothtsk for weak universes, but it is provable in ZF without the
       Tarski-Grothendieck axiom, contrary to ~ grothtsk .  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    uniwun $p |- U. WUni = _V $=
      ( vx vu cwun cuni cvv wceq cv wcel eqv csn wss wrex snex wunex eluni2 vex
      ax-mp snss rexbii bitri mpbir mpgbir ) CDZEFAGZUCHZAAUCIUEUDJZBGZKZBCLZUF
      EHUIUDMBUFENQUEUDUGHZBCLUIBUDCOUJUHBCUDUGAPRSTUAUB $.

    wunex3.u $e |- U = ( R1 ` ( ( rank ` A ) +o _om ) ) $.
    $( Construct a weak universe from a given set.  This version of ~ wunex has
       a simpler proof, but requires the axiom of regularity.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    wunex3 $p |- ( A e. V -> ( U e. WUni /\ A C_ U ) ) $=
      ( wcel wss cwun crnk cfv cr1 r1rankid com coa co con0 rankon omelon mp2an
      oacl wlim c0 peano1 wb oaord1 mpbi r1ord2 sseqtr4i syl6ss wa limom pm3.2i
      mp2 oalimcl r1limwun eqeltri jctil ) ACEZABFBGEUQAAHIZJIZBACKUSURLMNZJIZB
      UTOEZURUTEZUSVAFUROEZLOEZVBAPZQURLSRZUALEZVCUBVDVEVHVCUCVFQURLUDRUEURUTUF
      ULDUGUHBVAGDVBUTTZVAGEVGVDVELTZUIVIVFVEVJQUJUKURLOUMRUTOUNRUOUP $.
  $}

  ${
    $d u v w x y z $.  $d m n u v w x y A $.  $d u U $.  $d m n u v x y V $.
    $d m n u v w F $.
    $( Value of the weak universe closure operator.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    wuncval $p |- ( A e. V -> ( wUniCl ` A ) = |^| { u e. WUni | A C_ u } ) $=
      ( vx wcel cvv cv wss cwun crab cint cwunm cfv wceq elex c0 wne wrex wunex
      rabn0 sylibr intex sylib sseq1 rabbidv inteqd df-wunc fvmptg syl2anc ) BC
      EZBFEBAGZHZAIJZKZFEZBLMUNNBCOUJUMPQZUOUJULAIRUPABCSULAITUAUMUBUCDBDGZUKHZ
      AIJZKUNFFLUQBNZUSUMUTURULAIUQBUKUDUEUFDAUGUHUI $.

    $( The weak universe closure of a set contains the set.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    wuncid $p |- ( A e. V -> A C_ ( wUniCl ` A ) ) $=
      ( vu wcel cv wss cwun crab cint cwunm cfv ssintub wuncval syl5sseqr ) ABD
      ACEFCGHIAAJKCAGLCABMN $.

    $( The weak universe closure of a set is a weak universe.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    wunccl $p |- ( A e. V -> ( wUniCl ` A ) e. WUni ) $=
      ( vu wcel cwunm cfv cv wss cwun crab cint wuncval c0 wne wrex wunex rabn0
      ssrab2 sylibr intwun sylancr eqeltrd ) ABDZAEFACGHZCIJZKZICABLUCUEIHUEMNZ
      UFIDUDCIRUCUDCIOUGCABPUDCIQSUETUAUB $.

    $( The weak universe closure is a subset of any other weak universe
       containing the set.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    wuncss $p |- ( ( U e. WUni /\ A C_ U ) -> ( wUniCl ` A ) C_ U ) $=
      ( vu cwun wcel wss wa cwunm cfv cv crab cint cvv ssexg ancoms wuncval syl
      wceq sseq2 intminss eqsstrd ) BDEZABFZGZAHIZACJZFZCDKLZBUDAMEZUEUHRUCUBUI
      ABDNOCAMPQUGUCCBDUFBASTUA $.

    $( The weak universe closure is idempotent.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    wuncidm $p |- ( A e. V -> ( wUniCl ` ( wUniCl ` A ) ) = ( wUniCl ` A ) ) $=
      ( wcel cwunm cfv cwun wss wunccl ssid wuncss sylancl wuncid syl eqssd ) A
      BCZADEZDEZPOPFCZPPGQPGABHZPIPPJKORPQGSPFLMN $.

    wuncval2.f $e |- F = ( rec ( ( z e. _V |-> ( ( z u. U. z ) u.
      U_ x e. z ( { ~P x , U. x } u.
        ran ( y e. z |-> { x , y } ) ) ) ) , ( A u. 1o ) ) |` _om ) $.
    wuncval2.u $e |- U = U. ran F $.
    $( Our earlier expression for a containing weak universe is in fact the
       weak universe closure.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    wuncval2 $p |- ( A e. V -> ( wUniCl ` A ) = U ) $=
      ( vm vu vv wcel cfv wss com cv cuni cun c0 vn vw cwunm cwun wunex2 wuncss
      wa syl ciun crn wfn wceq cvv cpw cpr cmpt crdg cres frfnom fneq1i fniunfv
      c1o mpbir ax-mp eqtr4i wral csuc fveq2 sseq1d weq con0 unexg mpan2 fveq1i
      1on fr0g syl5eq wuncid csn df1o2 wunccl wun0 snssd syl5eqss unssd eqsstrd
      wi simplr fvex uniex unex prex mptex iunex id unieq uneq12d preq12d preq1
      rnex pweq mpteq2dv rneqd cbviunv cbvmptv mpteq1 uneq2d iuneq12d frsucmpt2
      preq2 sylancl simpr ad3antrrr sselda ralrimiva unissb sylibr wunpw wununi
      wunelss prssi syl2anc wf adantr wunpr fmptd frn iunss expcom finds2 com12
      eqid ex ralrimiv eqssd ) DGMZDUCNZEYPEUDMDEOUGYQEOABCDEFGHIUEDEUFUHYPEJPJ
      QZFNZUIZYQEFUJRZYTIFPUKZYTUUAULUUBCUMCQZUUCRZSZAUUCAQZUNZUUFRZUOZBUUCUUFB
      QZUOZUPZUJZSZUIZSZUPZDVBSZUQPURZPUKUURUUQUSPFUUSHUTVCJPFVAVDVEYPYSYQOZJPV
      FYTYQOYPUUTJPYRPMYPUUTUUTTFNZYQOUAQZFNZYQOZUVBVGZFNZYQOZYPJUAYRTULYSUVAYQ
      YRTFVHVIJUAVJYSUVCYQYRUVBFVHVIYRUVEULYSUVFYQYRUVEFVHVIYPUVAUURYQYPUURUMMZ
      UVAUURULYPVBVKMUVHVODVBGVKVLVMUVHUVATUUSNUURTFUUSHVNUURUMUUQVPVQUHYPDVBYQ
      DGVRYPVBTVSYQVTYPTYQYPYQDGWAZWBWCWDWEWFYPUVBPMZUVDUVGWGYPUVJUGZUVDUVGUVKU
      VDUGZUVFUVCUVCRZSZKUVCKQZUNZUVORZUOZLUVCUVOLQZUOZUPZUJZSZUIZSZYQUVLUVJUWE
      UMMUVFUWEULYPUVJUVDWHUVNUWDUVCUVMUVBFWIZUVCUWFWJWKKUVCUWCUWFUVRUWBUVPUVQW
      LUWALUVCUVTUWFWMWTWKWNWKCUBUURUVBUUPUWEUBQZUWGRZSZKUWGUVRLUWGUVTUPZUJZSZU
      IZSFUMHUBCVJZUWIUUEUWMUUOUWNUWGUUCUWHUUDUWNWOZUWGUUCWPWQUWNUWMAUWGUUILUWG
      UUFUVSUOZUPZUJZSZUIUUOKAUWGUWLUWSKAVJZUVRUUIUWKUWRUWTUVPUUGUVQUUHUVOUUFXA
      UVOUUFWPWRUWTUWJUWQUWTLUWGUVTUWPUVOUUFUVSWSXBXCWQXDUWNAUWGUUCUWSUUNUWOUWN
      UWRUUMUUIUWNUWQUULUWNUWQBUWGUUKUPUULLBUWGUWPUUKUVSUUJUUFXJXEBUWGUUCUUKXFV
      QXCXGXHVQWQUWGUVCULZUWIUVNUWMUWDUXAUWGUVCUWHUVMUXAWOZUWGUVCWPWQUXAKUWGUVC
      UWLUWCUXBUXAUWKUWBUVRUXAUWJUWALUWGUVCUVTXFXCXGXHWQXIXKUVLUVNUWDYQUVLUVCUV
      MYQUVKUVDXLZUVLUVOYQOZKUVCVFUVMYQOUVLUXDKUVCUVLUVOUVCMZUGZUVOYQYPYQUDMZUV
      JUVDUXEUVIXMZUVLUVCYQUVOUXCXNZXTXOKUVCYQXPXQWEUVLUWCYQOZKUVCVFUWDYQOUVLUX
      JKUVCUXFUVRUWBYQUXFUVPYQMUVQYQMUVRYQOUXFUVOYQUXHUXIXRUXFUVOYQUXHUXIXSUVPU
      VQYQYAYBUXFUVCYQUWAYCUWBYQOUXFLUVCUVTYQUWAUXFUVSUVCMZUGUVOUVSYQUXFUXGUXKU
      XHYDUXFUVOYQMUXKUXIYDUXFUVCYQUVSUVKUVDUXEWHXNYEUWAYLYFUVCYQUWAYGUHWEXOKUV
      CUWCYQYHXQWEWFYMYIYJYKYNJPYSYQYHXQWDYO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Tarski classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Tarski $. $( The class of Tarski classes. $)

  $( Extend class definition to include the class of all Tarski classes. $)
  ctsk $a class Tarski $.

  ${
    $d y z w $.
    $( The class of all Tarski classes.  Tarski classes is a phrase coined by
       Grzegorz Bancerek in his article _Tarski's Classes and Ranks_, Journal
       of Formalized Mathematics, Vol 1, No 3, May-August 1990.  A Tarski class
       is a set whose existence is ensured by Tarski's axiom A (see ~ ax-groth
       and the equivalent axioms).  Axiom A was first presented in Tarski's
       article _&Uuml;ber unerreichbare Kardinalzahlen_.  Tarski introduced the
       axiom A to enable ZFC to manage inaccessible cardinals.  Later
       Grothendieck introduced the concept of Grothendieck universes and showed
       they were equal to transitive Tarski classes.  (Contributed by FL,
       30-Dec-2010.) $)
    df-tsk $a |- Tarski = { y | ( A. z e. y ( ~P z C_ y
      /\ E. w e. y ~P z C_ w ) /\ A. z e. ~P y ( z ~~ y \/ z e. y ) ) } $.
  $}

  ${
    $d A x $.  $d T w x y z $.
    $( Properties of a Tarski class.  (Contributed by FL, 30-Dec-2010.) $)
    eltskg $p |- ( T e. V -> ( T e. Tarski <-> ( A. z e. T ( ~P z C_ T
      /\ E. w e. T ~P z C_ w ) /\ A. z e. ~P T ( z ~~ T \/ z e. T ) ) ) ) $=
      ( vy cv cpw wss wrex wa wral cen wbr wcel ctsk wceq sseq2 rexeq anbi12d
      wo raleqbi1dv pweq breq2 eleq2 orbi12d raleqbidv df-tsk elab2g ) AFZGZEFZ
      HZUJBFHZBUKIZJZAUKKZUIUKLMZUIUKNZTZAUKGZKZJUJCHZUMBCIZJZACKZUICLMZUICNZTZ
      ACGZKZJECODUKCPZUPVEVAVJUOVDAUKCVKULVBUNVCUKCUJQUMBUKCRSUAVKUSVHAUTVIUKCU
      BVKUQVFURVGUKCUILUCUKCUIUDUEUFSEABUGUH $.

    $( Properties of a Tarski class.  (Contributed by FL, 30-Dec-2010.)
       (Revised by Mario Carneiro, 20-Sep-2014.) $)
    eltsk2g $p |- ( T e. V -> ( T e. Tarski <-> ( A. z e. T ( ~P z C_ T
      /\ ~P z e. T ) /\ A. z e. ~P T ( z ~~ T \/ z e. T ) ) ) ) $=
      ( vw wcel ctsk cv cpw wss wrex wa wral cen wbr wo eltskg nfra1 weq r19.26
      wi pweq sseq1d rspccva adantlr vpwex elpw ssel syl5bir rexlimdva ralimdaa
      syl imdistani 3imtr4i ssid sseq2 rspcev mpan2 anim2i ralimi impbii anbi1i
      syl6bb ) BCEBFEAGZHZBIZVDDGZIZDBJZKZABLZVCBMNVCBEZOABHLZKVEVDBEZKZABLZVLK
      ADBCPVJVOVLVJVOVEABLZVHABLZKVPVMABLZKVJVOVPVQVRVPVHVMABVEABQVPVKKZVGVMDBV
      SVFBEZKVFHZBIZVGVMTVPVTWBVKVEWBAVFBADRVDWABVCVFUAUBUCUDVGVDWAEWBVMVDVFAUE
      UFWABVDUGUHUKUIUJULVEVHABSVEVMABSUMVNVIABVMVHVEVMVDVDIZVHVDUNVGWCDVDBVFVD
      VDUOUPUQURUSUTVAVB $.

    $( First axiom of a Tarski class.  The subsets of an element of a Tarski
       class belong to the class.  (Contributed by FL, 30-Dec-2010.)  (Proof
       shortened by Mario Carneiro, 20-Sep-2014.) $)
    tskpwss $p |- ( ( T e. Tarski /\ A e. T ) -> ~P A C_ T ) $=
      ( vx vy ctsk wcel cv cpw wss wral wrex wa cen wbr eltskg ibi simpld simpl
      wo ralimi syl wceq pweq sseq1d rspccva sylan ) BEFZCGZHZBIZCBJZABFAHZBIZU
      GUJUIDGIDBKZLZCBJZUKUGUPUHBMNUHBFSCBHJZUGUPUQLCDBEOPQUOUJCBUJUNRTUAUJUMCA
      BUHAUBUIULBUHAUCUDUEUF $.

    $( Second axiom of a Tarski class.  The powerset of an element of a Tarski
       class belongs to the class.  (Contributed by FL, 30-Dec-2010.)  (Proof
       shortened by Mario Carneiro, 20-Sep-2014.) $)
    tskpw $p |- ( ( T e. Tarski /\ A e. T ) -> ~P A e. T ) $=
      ( vx ctsk wcel cv cpw wral wss wa cen wbr eltsk2g ibi simpld simpr ralimi
      wo syl wceq pweq eleq1d rspccva sylan ) BDEZCFZGZBEZCBHZABEAGZBEZUEUGBIZU
      HJZCBHZUIUEUNUFBKLUFBERCBGHZUEUNUOJCBDMNOUMUHCBULUHPQSUHUKCABUFATUGUJBUFA
      UAUBUCUD $.

    $( Third axiom of a Tarski class.  A subset of a Tarski class is either
       equipotent to the class or an element of the class.  (Contributed by FL,
       30-Dec-2010.)  (Revised by Mario Carneiro, 20-Sep-2014.) $)
    tsken $p |- ( ( T e. Tarski /\ A C_ T ) -> ( A ~~ T \/ A e. T ) ) $=
      ( vx vy ctsk wcel cv cen wbr wo cpw wral wss wrex wa eltskg simprd elpw2g
      ibi biimpar wceq breq1 eleq1 orbi12d rspccva syl2an2r ) BEFZCGZBHIZUHBFZJ
      ZCBKZLZABMZAULFZABHIZABFZJZUGUHKZBMUSDGMDBNOCBLZUMUGUTUMOCDBEPSQUGUOUNABE
      RTUKURCAULUHAUAUIUPUJUQUHABHUBUHABUCUDUEUF $.
  $}

  $( The empty set is a (transitive) Tarski class.  (Contributed by FL,
     30-Dec-2010.) $)
  0tsk $p |- (/) e. Tarski $=
    ( vx c0 ctsk wcel cv cpw wss wa wral cen wbr wo ral0 wceq elsni enref breq1
    csn 0ex cvv mpbiri orcd syl pw0 eleq2s rgen wb eltsk2g ax-mp mpbir2an ) BCD
    ZAEZFZBGUMBDHZABIZULBJKZULBDZLZABFZIZUNAMURAUSURULBRZUSULVADULBNZURULBOVBUP
    UQVBUPBBJKBSPULBBJQUAUBUCUDUEUFBTDUKUOUTHUGSABTUHUIUJ $.

  $( An element of a Tarski class is strictly dominated by the class.  JFM
     CLASSES2 th. 1.  (Contributed by FL, 22-Feb-2011.)  (Revised by Mario
     Carneiro, 18-Jun-2013.) $)
  tsksdom $p |- ( ( T e. Tarski /\ A e. T ) -> A ~< T ) $=
    ( ctsk wcel wa cpw csdm wbr cdom canth2g adantl wss simpl tskpwss sdomdomtr
    ssdomg sylc syl2anc ) BCDZABDZEZAAFZGHZUBBIHZABGHTUCSABJKUASUBBLUDSTMABNUBB
    CPQAUBBOR $.

  $( A part of a Tarski class strictly dominated by the class is an element of
     the class.  JFM CLASSES2 th. 2.  (Contributed by FL, 22-Feb-2011.)  (Proof
     shortened by Mario Carneiro, 20-Sep-2014.) $)
  tskssel $p |- ( ( T e. Tarski /\ A C_ T /\ A ~< T ) -> A e. T ) $=
    ( ctsk wcel wss csdm wbr w3a cen wn sdomnen 3ad2ant3 tsken 3adant3 ord mpd
    wo ) BCDZABEZABFGZHZABIGZJZABDZTRUCSABKLUAUBUDRSUBUDQTABMNOP $.

  $( The subsets of an element of a Tarski class belong to the class.
     (Contributed by FL, 30-Dec-2010.)  (Revised by Mario Carneiro,
     18-Jun-2013.) $)
  tskss $p |- ( ( T e. Tarski /\ A e. T /\ B C_ A ) -> B e. T ) $=
    ( ctsk wcel wss wa cpw wb elpw2g adantl tskpwss sseld sylbird 3impia ) CDEZ
    ACEZBAFZBCEZPQGZRBAHZEZSQUBRIPBACJKTUACBACLMNO $.

  $( The intersection of two elements of a Tarski class belongs to the class.
     (Contributed by FL, 30-Dec-2010.)  (Proof shortened by Mario Carneiro,
     20-Sep-2014.) $)
  tskin $p |- ( ( T e. Tarski /\ A e. T ) -> ( A i^i B ) e. T ) $=
    ( ctsk wcel cin wss inss1 tskss mp3an3 ) CDEACEABFZAGKCEABHAKCIJ $.

  $( A singleton of an element of a Tarski class belongs to the class.  JFM
     CLASSES2 th. 2 (partly).  (Contributed by FL, 22-Feb-2011.)  (Revised by
     Mario Carneiro, 18-Jun-2013.) $)
  tsksn $p |- ( ( T e. Tarski /\ A e. T ) -> { A } e. T ) $=
    ( ctsk wcel cpw csn tskpw wss snsspw tskss mp3an3 syldan ) BCDZABDAEZBDZAFZ
    BDZABGMOPNHQAINPBJKL $.

  $( A transitive element of a Tarski class is a part of the class.  JFM
     CLASSES2 th. 8.  (Contributed by FL, 22-Feb-2011.)  (Revised by Mario
     Carneiro, 20-Sep-2014.) $)
  tsktrss $p |- ( ( T e. Tarski /\ Tr A /\ A e. T ) -> A C_ T ) $=
    ( ctsk wcel wtr w3a cpw wss simp2 dftr4 sylib tskpwss 3adant2 sstrd ) BCDZA
    EZABDZFZAAGZBRPASHOPQIAJKOQSBHPABLMN $.

  $( If an element of a Tarski class is an ordinal number, its successor is an
     element of the class.  JFM CLASSES2 th. 6 (partly).  (Contributed by FL,
     22-Feb-2011.)  (Proof shortened by Mario Carneiro, 20-Sep-2014.) $)
  tsksuc $p |- ( ( T e. Tarski /\ A e. On /\ A e. T ) -> suc A e. T ) $=
    ( ctsk wcel con0 w3a cpw csuc wss simp1 tskpw cuni word wceq eloni 3ad2ant2
    3adant2 ordunisuc eqimss 3syl sspwuni sylibr tskss syl3anc ) BCDZAEDZABDZFZ
    UEAGZBDZAHZUIIZUKBDUEUFUGJUEUGUJUFABKQUHUKLZAIZULUHAMZUMANUNUFUEUOUGAOPARUM
    ASTUKAUAUBUIUKBUCUD $.

  ${
    $d T x $.
    $( A nonempty Tarski class contains the empty set.  (Contributed by FL,
       30-Dec-2010.)  (Revised by Mario Carneiro, 18-Jun-2013.) $)
    tsk0 $p |- ( ( T e. Tarski /\ T =/= (/) ) -> (/) e. T ) $=
      ( vx c0 wne ctsk wcel cv wex wi wss 0ss tskss mp3an3 expcom exlimiv sylbi
      n0 impcom ) ACDZAEFZCAFZSBGZAFZBHTUAIZBAQUCUDBTUCUATUCCUBJUAUBKUBCALMNOPR
      $.
  $}

  $( One is an element of a nonempty Tarski class.  (Contributed by FL,
     22-Feb-2011.) $)
  tsk1 $p |- ( ( T e. Tarski /\ T =/= (/) ) -> 1o e. T ) $=
    ( ctsk wcel c0 wne wa c1o csn df1o2 tsk0 tsksn syldan syl5eqel ) ABCZADEZFG
    DHZAINODACPACAJDAKLM $.

  $( Two is an element of a nonempty Tarski class.  (Contributed by FL,
     22-Feb-2011.)  (Proof shortened by Mario Carneiro, 20-Sep-2014.) $)
  tsk2 $p |- ( ( T e. Tarski /\ T =/= (/) ) -> 2o e. T ) $=
    ( ctsk wcel c0 wne c1o c2o tsk1 wa csuc df-2o con0 1on tsksuc mp3an2 syldan
    syl5eqel ) ABCZADEFACZGACAHRSIGFJZAKRFLCSTACMFANOQP $.

  $( If a Tarski class is not empty, it has more than two elements.
     (Contributed by FL, 22-Feb-2011.) $)
  2domtsk $p |- ( ( T e. Tarski /\ T =/= (/) ) -> 2o ~< T ) $=
    ( ctsk wcel c0 wne c2o csdm wbr tsk2 tsksdom syldan ) ABCADEFACFAGHAIFAJK
    $.

  ${
    $d T x y $.
    $( A nonempty Tarski class is infinite, because it contains all the finite
       levels of the cumulative hierarchy.  (This proof does not use
       ~ ax-inf .)  (Contributed by Mario Carneiro, 24-Jun-2013.) $)
    tskr1om $p |- ( ( T e. Tarski /\ T =/= (/) ) -> ( R1 " _om ) C_ T ) $=
      ( vy vx ctsk wcel c0 wne wa cr1 com cima cv cfv wceq wrex wi fveq2 eleq1d
      csuc con0 r10 tsk0 syl5eqel cpw tskpw nnon r1suc syl syl5ibr expd adantrd
      finds2 eleq1 imbi2d syl5ibcom rexlimiv wfun wfn r1fnon fnfun fvelima mpan
      ax-mp syl11 ssrdv ) ADEZAFGZHZBIJKZACLZIMZBLZNZCJOZVHVLAEZVLVIEZVMVHVOPZC
      JVJJEVHVKAEZPVMVQVRFIMZAEVLIMZAEZVLSZIMZAEZVHCBVJFNVKVSAVJFIQRVJVLNVKVTAV
      JVLIQRVJWBNVKWCAVJWBIQRVHVSFAUAAUBUCVLJEZVFWAWDPVGWEVFWAWDVFWAHWDWEVTUDZA
      EVTAUEWEWCWFAWEVLTEWCWFNVLUFVLUGUHRUIUJUKULVMVRVOVHVKVLAUMUNUOUPIUQZVPVNI
      TURWGUSTIUTVCCVLJIVAVBVDVE $.

    $( A nonempty Tarski class contains the whole finite cumulative hierarchy.
       (This proof does not use ~ ax-inf .)  (Contributed by NM,
       22-Feb-2011.) $)
    tskr1om2 $p |- ( ( T e. Tarski /\ T =/= (/) ) -> U. ( R1 " _om ) C_ T ) $=
      ( vy vx ctsk wcel c0 wne wa cr1 com cima cuni cv wrex eluni2 wss wtr con0
      wi syld cfv wceq wfun wfn r1fnon fnfun ax-mp fvelima mpan r1tr treq mpbii
      rexlimivw trss 3syl adantl tskr1om sseld 3exp adantr imp rexlimdva syl5bi
      tskss ssrdv ) ADEZAFGZHZBIJKZLZABMZVJEVKCMZEZCVINVHVKAEZCVKVIOVHVMVNCVIVH
      VLVIEZHVMVKVLPZVNVOVMVPSZVHVOVKIUAZVLUBZBJNZVLQZVQIUCZVOVTIRUDWBUERIUFUGB
      VLJIUHUIVSWABJVSVRQWAVKUJVRVLUKULUMVLVKUNUOUPVHVOVPVNSZVHVOVLAEZWCVHVIAVL
      AUQURVFWDWCSVGVFWDVPVNVLVKAVDUSUTTVATVBVCVE $.
  $}

  $( A nonempty Tarski class is infinite.  (Contributed by FL, 22-Feb-2011.) $)
  tskinf $p |- ( ( T e. Tarski /\ T =/= (/) ) -> _om ~<_ T ) $=
    ( ctsk wcel wne com cr1 cima cen wbr cdom con0 cvv wf1 wss r111 omsson omex
    c0 wa f1imaen mp2an ensymi simpl tskr1om ssdomg sylc endomtr sylancr ) ABCZ
    ARDZSZEFEGZHIULAJIZEAJIULEKLFMEKNULEHIOPKLEFQTUAUBUKUIULANUMUIUJUCAUDULABUE
    UFEULAUGUH $.

  $( If ` A ` and ` B ` are members of a Tarski class, their unordered pair is
     also an element of the class.  JFM CLASSES2 th. 3 (partly).  (Contributed
     by FL, 22-Feb-2011.)  (Proof shortened by Mario Carneiro, 20-Jun-2013.) $)
  tskpr $p |- ( ( T e. Tarski /\ A e. T /\ B e. T )
    -> { A , B } e. T ) $=
    ( ctsk wcel w3a cpr wss csdm wbr simp1 prssi 3adant1 com cdom prfi isfinite
    wa cfn mpbi c0 ne0i tskinf sylan2 sdomdomtr sylancr 3adant3 tskssel syl3anc
    wne ) CDEZACEZBCEZFUKABGZCHZUNCIJZUNCEUKULUMKULUMUOUKABCLMUKULUPUMUKULRUNNI
    JZNCOJZUPUNSEUQABPUNQTULUKCUAUJURCAUBCUCUDUNNCUEUFUGUNCUHUI $.

  $( If ` A ` and ` B ` are members of a Tarski class, their ordered pair is
     also an element of the class.  JFM CLASSES2 th. 4.  (Contributed by FL,
     22-Feb-2011.) $)
  tskop $p |- ( ( T e. Tarski /\ A e. T /\ B e. T )
    -> <. A , B >. e. T ) $=
    ( ctsk wcel w3a cop csn cpr dfopg 3adant1 simp1 tsksn 3adant3 tskpr syl3anc
    wceq eqeltrd ) CDEZACEZBCEZFZABGZAHZABIZIZCTUAUCUFQSABCCJKUBSUDCEZUECEUFCES
    TUALSTUGUAACMNABCOUDUECOPR $.

  ${
    $d A x y z $.  $d B x y z $.  $d T x y z $.
    $( A Cartesian product of two parts of a Tarski class is a part of the
       class.  (Contributed by FL, 22-Feb-2011.)  (Proof shortened by Mario
       Carneiro, 20-Jun-2013.) $)
    tskxpss $p |- ( ( T e. Tarski /\ A C_ T /\ B C_ T )
    -> ( A X. B ) C_ T ) $=
      ( vz vx vy ctsk wcel wss cxp wa cv cop wceq wrex elxp2 w3a tskop eleq1a
      wi syl 3expib rexlimdvv syl5bi ssrdv xpss12 sstr expcom syl2im 3impib ) C
      GHZACIZBCIZABJZCIZUKCCJZCIZULUMKUNUPIZUOUKDUPCDLZUPHUSELZFLZMZNZFCOECOUKU
      SCHZEFUSCCPUKVCVDEFCCUKUTCHZVACHZVCVDTZUKVEVFQVBCHVGUTVACRVBCUSSUAUBUCUDU
      EACBCUFURUQUOUNUPCUGUHUIUJ $.
  $}

  ${
    $d T y $.
    $( A Tarski class is well-orderable.  (Contributed by Mario Carneiro,
       20-Jun-2013.) $)
    tskwe2 $p |- ( T e. Tarski -> T e. dom card ) $=
      ( vy ctsk wcel cv csdm wbr cpw crab wss ccrd wral elpwi tskssel 3exp syl5
      cdm wi ralrimiv rabss sylibr tskwe mpdan ) ACDZBEZAFGZBAHZIAJZAKQDUDUFUEA
      DZRZBUGLUHUDUJBUGUEUGDUEAJZUDUJUEAMUDUKUFUIUEANOPSUFBUGATUABACUBUC $.
  $}

  ${
    $d A t z $.
    $( The intersection of a collection of Tarski classes is a Tarski class.
       (Contributed by FL, 17-Apr-2011.)  (Proof shortened by Mario Carneiro,
       20-Sep-2014.) $)
    inttsk $p |- ( ( A C_ Tarski /\ A =/= (/) ) -> |^| A e. Tarski ) $=
      ( vz vt ctsk wss wa wcel cpw wral cen wbr syl2anc ralrimiva sylibr elint2
      cv wo wn cdom cvv wne cint simpll sselda elinti imp adantll tskpwss ssint
      c0 tskpw vpwex elpwi wrex rexnal simpr intex sylib ad2antrr simplr ssdomg
      jca sylc vex intss1 ad2antrl mpsyl simprr simplll simprl sseldd sstrd ord
      tsken mt3d ensymd domentr sbth rexlimdvaa syl5bir con1d syl6ibr sylan2 wb
      orrd eltsk2g syl mpbir2and ) ADEZAUJUAZFZAUBZDGZBPZHZWLEZWOWLGZFZBWLIZWNW
      LJKZWNWLGZQZBWLHZIZWKWRBWLWKXAFZWPWQXEWOCPZEZCAIWPXEXGCAXEXFAGZFZXFDGZWNX
      FGZXGXEADXFWIWJXAUCUDZXAXHXKWKXAXHXKWNAXFUEUFUGZWNXFUHLMCWOAUINXEWOXFGZCA
      IWQXEXNCAXIXJXKXNXLXMWNXFUKLMCWOABULONVBMWKXBBXCWNXCGWKWNWLEZXBWNWLUMWKXO
      FZWTXAXPWTRXKCAIZXAXPXQWTXQRXKRZCAUNXPWTXKCAUOXPXRWTCAXPXHXRFZFZWNWLSKZWL
      WNSKZWTXTWLTGZXOYAWKYCXOXSWKWJYCWIWJUPAUQURZUSWKXOXSUTZWNWLTVAVCXTWLXFSKZ
      XFWNJKYBXFTGXTWLXFEZYFCVDXHYGXPXRXFAVEVFZWLXFTVAVGXTWNXFXTWNXFJKZXKXPXHXR
      VHXTYIXKXTXJWNXFEYIXKQXTADXFWIWJXOXSVIXPXHXRVJVKXTWNWLXFYEYHVLWNXFVNLVMVO
      VPWLXFWNVQLWNWLVRLVSVTWACWNABVDOWBWEWCMWKYCWMWSXDFWDYDBWLTWFWGWH $.
  $}

  ${
    $d A w x y z $.
    $( ` ( R1 `` A ) ` for ` A ` a strongly inaccessible cardinal is equipotent
       to ` A ` .  (Contributed by Mario Carneiro, 6-Jun-2013.) $)
    inar1 $p |- ( A e. Inacc -> ( R1 ` A ) ~~ A ) $=
      ( vx vy vz wcel cr1 cfv cdom wbr con0 wceq syl syl2anc wral wa csdm wi c0
      cvv wss vw cina cen cxp cv ciun cwina inawina winaon winalim r1lim onelon
      wlim sylan csuc eleq1 fveq2 breq1d imbi12d weq ne0i 0sdomg syl5ibr breq1i
      wne r10 syl6ibr 3syl wtr word eloni ordtr trsuc ex adantl ccrd r1suc fvex
      cpw cardid ensymi pwen ax-mp syl6eqbr wb winacard eleq2d cardsdom sylancr
      bitr3d ccf elina simp3bi pweq rspccv sylbird ensdomtr syl2an expr imim12d
      imp cun vex mpan nfcv nfiu1 nfbr wel iunex ssiun2 ssdomg endomtr vtoclgaf
      mpsyl iundom mp2an mp2 domtr com domentr eqbrtrd ad2antlr wrex wfn sylibr
      wn wf eleq1d ralimdva impr sseq2d syl5bi ad2antrl sylibd iunon a1i onelss
      wo mprg mpd rgen ssun2 xpdom2 ssun1 xpdom1 limomss syl6ss infxpidm eleq1a
      unex ordirr nsyli ad2ant2r simpll wex ccom cres limord cardf r1fnon dffn2
      elon mpbi fco onss fssres ffn simpr simplll ontr1 syl12anc biimpd embantd
      fvres fvco3 eqtrd sylibrd ffnfv sylanbrc eleq2 biimpa cardon onelssi syl5
      eliun reximdva expdimp ralrimiv wfun ffun resfunexg fveq1 rexbidv ralbidv
      feq1 anbi12d spcev syl6an syld simp2bi sseq1d ontri1 mt2d ordequn sylancl
      cfflb eqcom mtord sylc sylsyld iunss unssd id iuneq1 uneq12d 0elon elimel
      cif elexi onun2i dedth adantr onsseleq mpbid orcomd ord simprbi domsdomtr
      iscard breq1 exp43 com4l tfinds2 impd mpcom sdomdom ralrimiva winainf cdm
      infxpen fdmi syl6eleqr onssr1 sbth ) AUBEZAFGZAHIZAVUFHIZVUFAUCIVUEVUFAAU
[encoded data, 4240 characters]
      EVUPAFUYSZEWXMVUQVUPAJWXNVURJSFWVQVUAVUBAVUCVHAVUFSXKXNVUFAVUDM $.
  $}

  $( Alternate proof of ~ r1om , shorter as a consequence of ~ inar1 , but
     requiring AC. (Contributed by Mario Carneiro, 27-May-2013.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  r1omALT $p |- ( R1 ` _om ) ~~ _om $=
    ( com cina wcel cr1 cfv cen wbr omina inar1 ax-mp ) ABCADEAFGHAIJ $.

  ${
    $d A w x y z $.
    $( Any set must be at least as large as the cofinality of its rank, because
       the ranks of the elements of ` A ` form a cofinal map into
       ` ( rank `` A ) ` .  (Contributed by Mario Carneiro, 27-May-2013.) $)
    rankcf $p |- -. A ~< ( cf ` ( rank ` A ) ) $=
      ( vx vy vw vz crnk cfv c0 wceq con0 wrex wcel ccf csdm wbr fveq2 cdom c1o
      wa syl cv csuc cvv wlim w3o wn rankon onzsl mpbi cf0 syl6eq breq2d mtbiri
      sdom0 cfsuc sylan9eqr wne nsuceq0 neeq1 mpbiri cr1 cdm 0elon r1fnon ax-mp
      wfn fndm eleqtrri rankonid necon3i cima rankvaln necon1ai breq2 0sdom1dom
      cuni vex 0sdom bitr3i vtoclbg mpbird adantl eqbrtrd rexlimiva domnsym csn
      wb cab wss nlim0 limeq con4i r1elssi sselda ranksnb rankelb limsuc sylibd
      wi imp eqeltrd eleq1a rexlimdva abssdv ciun snex dfiun2 iunid eqtr3i snwf
      fveq2i abrexexg eleq1 sseq1 r1elss rankuni2b syl5eqr abrexco unieqi eqtri
      3syl fvex syl6req cfslb mpd3an23 fveq2d breq12 mpdan rexeq abbidv mpancom
      imbi12d cmpt crn eqid rnmpt ccrd wfo cfon sdomdom ondomen fnmpti fodomnum
      sylancr dffn4 mpisyl syl5eqbrr vtoclg domtr syl6an pm2.01d 3jaoi ) AFGZHI
      ZUUMBUAZUBZIZBJKZUUMUCLZUUMUDZSZUEZAUUMMGZNOZUFZUUMJLUVBAUGBUUMUHUIUUNUVE
      UURUVAUUNUVDAHNOAUNUUNUVCHANUUNUVCHMGHUUMHMPUJUKULUMUURUVCAQOZUVEUUQUVFBJ
      UUOJLZUUQSUVCRAQUUQUVGUVCUUPMGRUUMUUPMPUUOUOUPUUQRAQOZUVGUUQUUMHUQZUVHUUQ
      UVIUUPHUQUUOURUUMUUPHUSUTUVIUVHAHUQZAHUUMHAHIUUMHFGZHAHFPHVAVBZLUVKHIHJUV
      LVCVAJVFUVLJIVDJVAVGVEVHHVIUIUKVJUVIAVAJVKVPZLZUVHUVJWGUVNUUMHAVLZVMRCUAZ
      QOZUVPHUQZUVHUVJCAUVMUVPARQVNUVPAHUSUVQHUVPNOUVRUVPVOUVPCVQVRVSVTTWATWBWC
      WDUVCAWEZTUUTUVEUUSUUTUVDUUTUVCDUAZUUOWFZFGZIZBAKZDWHZQOZUVDUWEAQOZUVEUUT
      UWEUUMWIUWEVPZUUMIZUWFUUTUWDDUUMUUTUWCUVTUUMLZBAUUTUUOALZSZUWBUUMLUWCUWJW
      SUWLUWBUUOFGZUBZUUMUWLUUOUVMLZUWBUWNIUUTAUVMUUOUUTUVNAUVMWIUVNUUTUVNUFUUN
      UUTUFUVOUUNUUTHUDWJUUMHWKUMTWLZAWMZTWNUUOWOTUUTUWKUWNUUMLZUUTUWKUWMUUMLZU
      WRUUTUVNUWKUWSWSUWPUUOAWPTUUMUWMWQWRWTXAUWBUUMUVTXBTXCXDUUTUVNUWIUWPUVNUU
      MEUVPUWAIZBAKZCWHZEUAZFGZXEZUWHUVNUUMUXBVPZFGZUXEUXFAFBAUWAXEUXFABCAUWAUU
      OXFZXGBAXHXIXKUVNUXBUVMLZUXGUXEIUVNUXIUXBUVMWIZUVNUXACUVMUVNUWTUVPUVMLZBA
      UVNUWKSUWOUWAUVMLUWTUXKWSUVNAUVMUUOUWQWNUUOXJUWAUVMUVPXBYAXCXDUVNUXBUCLUX
      IUXJWGBCAUWAUVMXLUXCUVMLUXCUVMWIUXIUXJEUXBUCUXCUXBUVMXMUXCUXBUVMXNUXCEVQX
      OVTTWAEUXBXPTXQUXEUVTUXDIEUXBKDWHZVPUWHEDUXBUXDUXCFYBXGUXLUWEDECBAUWAUXDU
      WBUXHUXCUWAFPXRXSXTYCTUUMUWEAFYBYDYEUUTUVNUVDUWGWSZUWPUVPUVPFGZMGZNOZUWCB
      UVPKZDWHZUVPQOZWSUXMCAUVMUVPAIZUXPUVDUXSUWGUXTUXOUVCIUXPUVDWGUXTUXNUUMMUV
      PAFPYFUVPAUXOUVCNYGYHUXRUWEIUXTUXSUWGWGUXTUXQUWDDUWCBUVPAYIYJUXRUWEUVPAQY
      GYKYLUXPUXRBUVPUWBYMZYNZUVPQBDUVPUWBUYAUYAYOZYPUXPUVPYQVBLZUVPUYBUYAYRZUY
      BUVPQOUXPUXOJLUVPUXOQOUYDUXNYSUVPUXOYTUXOUVPUUAUUDUYAUVPVFUYEBUVPUWBUYAUW
      AFYBUYCUUBUVPUYAUUEUIUVPUYBUYAUUCUUFUUGUUHTUWFUWGSUVFUVEUVCUWEAUUIUVSTUUJ
      UUKWBUULVE $.
  $}

  ${
    $d A x y $.
    $( ` ( R1 `` A ) ` for ` A ` a strongly inaccessible cardinal is a Tarski
       class.  (Contributed by Mario Carneiro, 8-Jun-2013.) $)
    inatsk $p |- ( A e. Inacc -> ( R1 ` A ) e. Tarski ) $=
      ( vx vy wcel cr1 cfv wss wa wral wbr wo con0 wceq syl sylbid imp csdm cvv
      wi wb cina cpw cen ctsk cwina inawina wrex ciun wlim winaon winalim r1lim
      cv syl2anc eleq2d eliun syl6bb csuc onelon sylan r1pw limsuc r1ord2 sseld
      rexlimdva cuni elssuni r1tr2 syl6ss jccil ralrimiva crnk rankr1ai syl6bir
      r1suc fvex elsuc sylib orcomd cdom elpwi ad2antlr ssdomg mpsyl ccf rankcf
      wn fveq2 c0 wne elina sylan9eqr breq2d mtbii inar1 sdomentr expcom adantr
      simp2bi mtod adantlr bren2 sylanbrc cima cdm r1elwf wfn r1fnon fndm ax-mp
      ex syl6eleqr rankr1ag biimprd orim12d mpd eltsk2g ) AUADZBUMZUBZAEFZGZXTY
      ADZHZBYAIZXSYAUCJZXSYADZKZBYAUBZIZYAUDDZXRYDBYAXRYGHYCYBXRYGYCXRAUEDZYGYC
      SAUFZYLYGXSCUMZEFZDZCAUGZYCYLYGXSCAYOUHZDYQYLYAYRXSYLALDZAUIZYAYRMAUJZAUK
      ZCALULUNUOCXSAYOUPUQYLYPYCCAYLYNADZHZYPXTYNURZEFZDZYCUUDYNLDZYPUUGTYLYSUU
      CUUHUUAAYNUSUTXSYNVANUUDUUFYAXTYLUUCUUFYAGZYLUUCUUEADZUUIYLYTUUCUUJTUUBAY
      NVBNYLYSUUJUUISUUAUUEAVCNOPVDOVEONPYCXTYAVFYAXTYAVGAVHVIVJVKXRYHBYIXRXSYI
      DZHZXSVLFZAMZUUMADZKYHUULUUOUUNUULUUMAURZDZUUOUUNKXRUUKUUQXRUUKXSUUPEFZDZ
      UUQXRYSUUSUUKTXRYLYSYMUUANZYSUURYIXSAVOUONZXSUUPVMVNPUUMAXSVLVPVQVRVSUULU
      UNYFUUOYGUULUUNYFUULUUNHZXSYAVTJZXSYAQJZWGZYFYARDZUVBXSYAGZUVCAEVPZUUKUVG
      XRUUNXSYAWAWBXSYARWCWDXRUUNUVEUUKXRUUNHZUVDXSAQJZUVIXSUUMWEFZQJUVJXSWFUVI
      UVKAXSQUUNXRUVKAWEFZAUUMAWEWHXRAWIWJUVLAMXTAQJBAIBAWKWSWLWMWNXRUVDUVJSZUU
      NXRYAAUCJZUVMAWOUVDUVNUVJXSYAAWPWQNWRWTXAXSYAXBXCXKUULYGUUOUULXSELXDVFDZA
      EXEZDZYGUUOTXRUUKUVOXRUUKUUSUVOUVAXSUUPXFVNPXRUVQUUKXRALUVPUUTELXGUVPLMXH
      LEXIXJXLWRXSAXMUNXNXOXPVKUVFYKYEYJHTUVHBYARXQXJXC $.
  $}

  $( The set of hereditarily finite sets is a Tarski class.  (The
     Tarski-Grothendieck Axiom is not needed for this theorem.)  (Contributed
     by Mario Carneiro, 28-May-2013.) $)
  r1omtsk $p |- ( R1 ` _om ) e. Tarski $=
    ( com cina wcel cr1 cfv ctsk omina inatsk ax-mp ) ABCADEFCGAHI $.

  ${
    $d T x y $.  $d A x $.
    $( A Tarski class contains all ordinals smaller than it.  (Contributed by
       Mario Carneiro, 8-Jun-2013.) $)
    tskord $p |- ( ( T e. Tarski /\ A e. On /\ A ~< T ) -> A e. T ) $=
      ( vx vy con0 wcel csdm wbr cv wa wceq breq1 anbi2d eleq1 imbi12d wral wss
      wi syld imp ctsk simplrl onelss ssdomg adantlr simplrr domsdomtr ralimdva
      cdom syl2anc pm2.27 dfss3 tskssel 3exp syl5bir com23 adantl 3impib 3com12
      ex tfis3 ) AEFZBUAFZABGHZABFZVBVCVDVEVCCIZBGHZJZVFBFZRVCDIZBGHZJZVJBFZRZV
      CVDJZVERCDAVFVJKZVHVLVIVMVPVGVKVCVFVJBGLMVFVJBNOVFAKZVHVOVIVEVQVGVDVCVFAB
      GLMVFABNOVFEFZVHVNDVFPZVIVRVHVSVIRVRVHJZVSVMDVFPZVIVTVNVMDVFVTVJVFFZJZVCV
      KVNVMRVRVCVGWBUBWCVJVFUIHZVGVKVRWBWDVHVRWBWDVRWBVJVFQWDVFVJUCVJVFEUDSTUEV
      RVCVGWBUFVJVFBUGUJVLVMUKUJUHVHWAVIRZVRVCVGWEVCWAVGVIWAVFBQZVCVGVIRDVFBULV
      CWFVGVIVFBUMUNUOUPTUQSUTUPVAURUS $.
  $}

  ${
    $d T w x y z $.
    $( An even more direct relationship than ~ r1tskina to get an inaccessible
       cardinal out of a Tarski class: the size of any nonempty Tarski class is
       an inaccessible cardinal.  (Contributed by Mario Carneiro,
       9-Jun-2013.) $)
    tskcard $p |- ( ( T e. Tarski /\ T =/= (/) ) -> ( card ` T ) e. Inacc ) $=
      ( vx vz vy ctsk wcel c0 wa ccrd cfv ccf wceq cv csdm wbr cmap cdom adantr
      wss syl2anc vw wne cpw wral cina cardeq0 necon3bid biimpar cale con0 crab
      wn co cint char cmpt eqid pwcfsdom vpwex canth2 simpl cardon oneli adantl
      com cardsdomelir tskord syl3anc tskpwss syldan ssdomg sylc cardidg ensymd
      cen tskpw domentr sdomdomtr sylancr ralrimiva inawinalem ax-mp winainflem
      wrex wi mp3an2 sylan2 cardidm cardaleph sylancl fveq2d oveq12d mpbiri w3a
      breq12d simp1 simp3 cxp wf fvex elmap fssxp sylbi ex ssrdv cfle sstr mpan
      tskxpss 3exp com23 mpdi mpd sstr2 syl2im simp2 wfn cvv ffn fndmeng syl2an
      ensdomtr tskssel 3expia imp domnsym syl mt2d cfon onsseli elina syl3anbrc
      wo mpbi ori ) AEFZAGUBZHZAIJZGUBZYSKJZYSLZBMZUCZYSNOZBYSUDZYSUEFYPYTYQYPY
      SGAGAEUFUGUHZYRUUAYSFZULUUBYRUUHYSYSUUAPUMZNOZYRUUJYSUUCUIJSBUJUKUNZUIJZU
      ULUULKJZPUMZNOCUUKUACUUMCMUAMJUOJUPZUUOUQURYRYSUULUUIUUNNYRVEYSSZYSIJYSLY
      SUULLYRYTUUFUUPUUGYPUUFYQYPUUEBYSYPUUCYSFZHZUUDUUDUCZNOUUSYSQOZUUEUUDBUSU
      TUURUUSAQOZAYSVOOZUUTUURYPUUSASZUVAYPUUQVAZYPUUQUUCAFZUVCUURYPUUCUJFZUUCA
      NOZUVEUVDUUQUVFYPYSUUCAVBZVCVDUUQUVGYPUUCAVFVDUUCAVGVHZYPUVEUUDAFUVCUUCAV
      PUUDAVIVJVJUUSAEVKVLYPUVBUUQYPYSAAEVMVNZRUUSAYSVQTUUDUUSYSVRVSVTRZUUFYTUU
      CDMNODYSWDBYSUDZUUPYSUJFZUUFUVLWEUVHBDYSWAWBYTUVMUVLUUPUVHBDYSWCWFWGTAWHB
      YSWIWJZYRYSUULUUAUUMPUVNYRYSUULKUVNWKWLWOWMYPUUHUUJULZWEYQYPUUHUVOYPUUHHZ
      UUIYSQOZUVOUVPUUIAQOZUVBUVQYPUUHUUIASZUVRUVPBUUIAYPUUHUUCUUIFZUVEYPUUHUVT
      WNZYPUUCASZUVGUVEYPUUHUVTWPZUWAUVTYPUWBYPUUHUVTWQZUWCUVTUUCUUAYSWRZSZYPUW
      EASZUWBUVTUUAYSUUCWSZUWFYSUUAUUCAIWTYSKWTZXAZUUAYSUUCXBXCYPYSASZUWGYPBYSA
      YPUUQUVEUVIXDXEYPUWKUUAASZUWGUUAYSSZUWKUWLYSXFZUUAYSAXGXHYPUWLUWKUWGYPUWL
      UWKUWGUUAYSAXIXJXKXLXMUUCUWEAXNXOVLUWAUVTUUHUVGUWDYPUUHUVTXPUVTUUCUUAVOOU
      UAANOUVGUUHUVTUUAUUCUVTUWHUUAUUCVOOZUWJUWHUUCUUAXQUUAXRFUWOUUAYSUUCXSUWIU
      UAXRUUCXTWJXCVNUUAAVFUUCUUAAYBYATUUCAYCVHYDXEYPUVSUVRUUIAEVKYEVJYPUVBUUHU
      VJRUUIAYSVQTUUIYSYFYGXDRYHUUHUUBUWMUUHUUBYMUWNUUAYSYSYIUVHYJYNYOYGUVKBYSY
      KYL $.
  $}

  ${
    $d A x $.
    $( There is a direct relationship between transitive Tarski classes and
       inaccessible cardinals: the Tarski classes that occur in the cumulative
       hierarchy are exactly at the strongly inaccessible cardinals.
       (Contributed by Mario Carneiro, 8-Jun-2013.) $)
    r1tskina $p |- ( A e. On ->
        ( ( R1 ` A ) e. Tarski <-> ( A = (/) \/ A e. Inacc ) ) ) $=
      ( vx con0 wcel cr1 cfv ctsk c0 wceq cina wo wa wn wne ccrd cen wbr simplr
      syl2anc csdm df-ne simpll crnk csuc cima cuni onwf sseli eqid rankr1c syl
      mpbii simpld cdm wfn r1fnon fndm ax-mp eleq2i rankonid bitr3i fveq2 sylbi
      neleqtrd adantl wss onssr1 sylbir tsken sylan2 ord mt3d carden2b cv simpl
      wral adantr sselda tsksdom ensymd sdomentr iscard sylanbrc eqtr3d on0eln0
      ralrimiva r10 biimpar r1sdom syldan syl5eqbrr 0sdom sylib adantlr tskcard
      fvex eqeltrrd ex syl5bir orrd syl6eq 0tsk syl6eqel inatsk jaoi impbid1 )
      ACDZAEFZGDZAHIZAJDZKZXGXIXLXGXILZXJXKXJMAHNZXMXKAHUAXMXNXKXMXNLZXHOFZAJXO
      AOFZXPAXOAXHPQZXQXPIXOXIXGXRXGXIXNRZXGXIXNUBXIXGLZXRAXHDZXGYAMXIXGAUCFZEF
      ZXHAXGAYCDMZAYBUDEFDZXGAECUEUFZDZYDYELZCYFAUGUHYGYBYBIYHYBUIAYBUJULUKUMXG
      YBAIZYCXHIXGAEUNZDZYIYJCAECUOYJCIUPCEUQURUSZAUTVAYBAEVBVCVDVEXTXRYAXGXIAX
      HVFZXRYAKXGYKYMYLAVGVHZAXHVIVJVKVLZSAXHVMUKXMXQAIZXNXMXGBVNZATQZBAVPYPXGX
      IVOXMYRBAXMYQADZLZYQXHTQZXHAPQZYRYTXIYQXHDUUAXGXIYSRZXMAXHYQXGYMXIYNVQVRY
      QXHVSSYTXIXGUUBUUCXGXIYSUBXTAXHYOVTSYQXHAWASWFBAWBWCVQWDXOXIXHHNZXPJDXSXG
      XNUUDXIXGXNLZHXHTQUUDUUEHHEFZXHTWGXGXNHADZUUFXHTQXGUUGXNAWEWHAHWIWJWKXHAE
      WPWLWMWNXHWOSWQWRWSWTWRXJXIXKXJXHHGXJXHUUFHAHEVBWGXAXBXCAXDXEXF $.
  $}

  ${
    $d A f x y z $.  $d T f x y z $.
    $( The union of an element of a transitive Tarski class is in the set.
       (Contributed by Mario Carneiro, 22-Jun-2013.) $)
    tskuni $p |- ( ( T e. Tarski /\ Tr T /\ A e. T ) -> U. A e. T ) $=
      ( vf vz vx vy wcel cen wbr cv wa wceq wrex csdm adantr syl2anc syl wss wi
      cdom ctsk wtr w3a cuni ccrd cfv wf1o wex cima cab wne ccf tsksdom cardidg
      wn ensymd sdomentr cmpt crn eqid rnmpt cdm cardon sdomdom ondomen sylancr
      wfo con0 adantl wfn vex imaex fnmpti dffn4 mpbi fodomnum mpisyl syl5eqbrr
      domsdomtr sylancom adantll mpdan cina c0 ne0i tskcard sylan2 wral simp2bi
      elina breqtrrd 3adant2 wlim cwina inawina winalim 3syl eqeq1 rexbidv elab
      cpw imassrn f1ofo forn syl5sseq ad2antlr wf1 f1of1 elssuni f1imaen syl2an
      simpl1 trss 3adant1 sselda adantlr ensdomtr sseq1 breq1 anbi12d rexlimdva
      imp biimprcd syl5bi ralrimiv fvex cfslb2n mpd ciun dfiun2 ralrimivw iunss
      sylibr wf fof foelrn ex 3ad2ant2 3ad2ant1 expcom eluni2 nfiu1 nfel2 simp3
      nfv ssiun2 fnfvima syl3anc sseldd 3exp rexlimd eleq1a syl6 rexlimdv ssrdv
      ffn sylsyld eqssd syl5eqr necon3ai pm2.01da nexdv entr bren sylib mtod wo
      uniss df-tr biimpi sylan9ss syld tsken 3impb ord ) BUAGZBUBZABGZUCZAUDZBH
      IZUOUVTBGZUVSUWAUVTBUEUFZCJZUGZCUHZUVSUWECUVSUWEUVSUWEKZDJZUWDEJZUIZLZEAM
      ZDUJZUDZUWCUKZUWEUOUWGUWMUWCULUFZNIZUWOUVSUWQUWEUVPUVRUWQUVQUVPUVRKZUWMUW
      CUWPNUWRAUWCNIZUWMUWCNIZUWRABNIBUWCHIZUWSABUMUVPUXAUVRUVPUWCBBUAUNUPZOABU
      WCUQPUVRUWSUWTUVPUVRUWSUWMATIUWTUVRUWSKZUWMEAUWJURZUSZATEDAUWJUXDUXDUTZVA
      UXCAUEVBGZAUXEUXDVGZUXEATIUWSUXGUVRUWSUWCVHGAUWCTIUXGBVCAUWCVDUWCAVEVFVIU
      XDAVJUXHEAUWJUXDUWDUWICVKVLZUXFVMAUXDVNVOAUXEUXDVPVQVRUWMAUWCVSVTWAWBUWRU
      WCWCGZUWPUWCLZUVRUVPBWDUKUXJBAWEBWFWGZUXJUWCWDUKUXKUWIXAUWCNIEUWCWHEUWCWJ
      WIZQWKWLOUWGUWCWMZFJZUWCRZUXOUWPNIZKZFUWMWHUWQUWOSUWGUXJUWCWNGUXNUVSUXJUW
      EUVPUVRUXJUVQUXLWLOZUWCWOUWCWPWQUWGUXRFUWMUXOUWMGUXOUWJLZEAMZUWGUXRUWLUYA
      DUXOFVKUWHUXOLUWKUXTEAUWHUXOUWJWRWSWTUWGUXTUXREAUWGUWIAGZKZUWJUWCRZUWJUWP
      NIZUXTUXRSUWEUYDUVSUYBUWEUWDUSZUWJUWCUWDUWIXBUWEUVTUWCUWDVGZUYFUWCLUVTUWC
      UWDXCZUVTUWCUWDXDQXEZXFUYCUWJUWCUWPNUYCUWJUWIHIZUWIUWCNIZUWJUWCNIUWEUYBUY
      JUVSUWEUVTUWCUWDXGUWIUVTRZUYJUYBUVTUWCUWDXHUWIAXIZUVTUWCUWIUWDEVKXJXKWAUV
      SUYBUYKUWEUVSUYBKZUWIBNIZUXAUYKUYNUVPUWIBGUYOUVPUVQUVRUYBXLZUVSABUWIUVQUV
      RABRZUVPUVQUVRUYQBAXMZYBXNXOUWIBUMPUYNUVPUXAUYPUXBQUWIBUWCUQPXPUWJUWIUWCX
      QPUWGUXKUYBUWGUXJUXKUXSUXMQOWKUXTUXRUYDUYEKUXTUXPUYDUXQUYEUXOUWJUWCXRUXOU
      WJUWPNXSXTYCPYAYDYEFUWCUWMBUEYFYGPYHUWEUWNUWCUWEUWNEAUWJYIZUWCEDAUWJUXIYJ
      UWEUYSUWCUWEUYDEAWHUYSUWCRUWEUYDEAUYIYKEAUWJUWCYLYMUWEFUWCUYSUWEUYGUXOUWC
      GZUXOUYSGZSUYHUYGUVTUWCUWDYNZUYTUXOUWHUWDUFZLZDUVTMZVUAUVTUWCUWDYOUYGUYTV
      UEDUVTUWCUXOUWDYPYQVUBVUDVUADUVTVUBUWHUVTGZVUCUYSGZVUDVUASVUFUWHUWIGZEAMV
      UBVUGEUWHAUUAVUBVUHVUGEAVUBEUUEEVUCUYSEAUWJUUBUUCVUBUYBVUHVUGVUBUYBVUHUCZ
      UWJUYSVUCUYBVUBUWJUYSRVUHEAUWJUUFYRVUIUWDUVTVJZUYLVUHVUCUWJGVUBUYBVUJVUHU
      VTUWCUWDUUPYSUYBVUBUYLVUHUYMYRVUBUYBVUHUUDUVTUWIUWDUWHUUGUUHUUIUUJUUKYDVU
      CUYSUXOUULUUMUUNUUQQUUOUURUUSUUTQUVAUVBUVPUVQUWAUWFSUVRUWAUVPUWFUWAUVPKUV
      TUWCHIZUWFUVPUWAUXAVUKUXBUVTBUWCUVCWGUVTUWCCUVDUVEYTYSUVFUVSUWAUWBUVPUVQU
      VRUWAUWBUVGZUVQUVRKUVPUVTBRZVULUVQUVRVUMUVQUVRUYQVUMUYRUYQUVQVUMUYQUVQUVT
      BUDZBABUVHUVQVUNBRBUVIUVJUVKYTUVLYBUVTBUVMWGUVNUVOYH $.

    $( A nonempty transitive Tarski class is a weak universe.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    tskwun $p |- ( ( T e. Tarski /\ Tr T /\ T =/= (/) ) -> T e. WUni ) $=
      ( vx vy ctsk wcel wtr c0 wne w3a cwun cv cuni cpw cpr wral simp2 simp3 wi
      3ad2ant1 ralrimiva tskuni 3expa 3adantl3 tskpw 3ad2antl1 tskpr 3exp imp31
      wa 3jca wb iswun mpbir3and ) ADEZAFZAGHZIZAJEZUOUPBKZLAEZUSMAEZUSCKZNAEZC
      AOZIZBAOZUNUOUPPUNUOUPQUQVEBAUQUSAEZUIZUTVAVDUNUOVGUTUPUNUOVGUTUSAUAUBUCU
      NUOVGVAUPUSAUDUEVHVCCAUQVGVBAEZVCUNUOVGVIVCRRUPUNVGVIVCUSVBAUFUGSUHTUJTUN
      UOURUOUPVFIUKUPBCADULSUM $.
  $}

  $( The intersection of an element of a transitive Tarski class is an element
     of the class.  (Contributed by FL, 17-Apr-2011.)  (Revised by Mario
     Carneiro, 20-Sep-2014.) $)
  tskint $p |- ( ( ( T e. Tarski /\ Tr T ) /\ A e. T /\ A =/= (/) ) ->
    |^| A e. T ) $=
    ( ctsk wcel wtr wa c0 wne w3a cuni wss simp1l tskuni 3expa 3adant3 intssuni
    cint 3ad2ant3 tskss syl3anc ) BCDZBEZFZABDZAGHZIUAAJZBDZAQZUFKZUHBDUAUBUDUE
    LUCUDUGUEUAUBUDUGABMNOUEUCUIUDAPRUFUHBST $.

  $( The union of two elements of a transitive Tarski class is in the set.
     (Contributed by Mario Carneiro, 20-Sep-2014.) $)
  tskun $p |- ( ( ( T e. Tarski /\ Tr T ) /\ A e. T /\ B e. T ) ->
    ( A u. B ) e. T ) $=
    ( ctsk wcel wtr wa w3a cpr cuni cun wceq uniprg 3adant1 simp1l simp1r tskpr
    3adant1r tskuni syl3anc eqeltrrd ) CDEZCFZGZACEZBCEZHZABIZJZABKZCUEUFUIUJLU
    DABCCMNUGUBUCUHCEZUICEUBUCUEUFOUBUCUEUFPUBUEUFUKUCABCQRUHCSTUA $.

  $( The Cartesian product of two elements of a transitive Tarski class is an
     element of the class.  JFM CLASSES2 th. 67 (partly).  (Contributed by FL,
     15-Apr-2011.)  (Proof shortened by Mario Carneiro, 20-Sep-2014.) $)
  tskxp $p |- ( ( ( T e. Tarski /\ Tr T ) /\ A e. T /\ B e. T )
  -> ( A X. B ) e. T ) $=
    ( ctsk wcel wtr wa w3a cwun c0 ne0i tskwun 3expa sylan2 3adant3 simp2 simp3
    wne wunxp ) CDEZCFZGZACEZBCEZHABCUBUCCIEZUDUCUBCJRZUECAKTUAUFUECLMNOUBUCUDP
    UBUCUDQS $.

  $( Set exponentiation is an element of a transitive Tarski class.  JFM
     CLASSES2 th. 67 (partly).  (Contributed by FL, 15-Apr-2011.)  (Proof
     shortened by Mario Carneiro, 20-Sep-2014.) $)
  tskmap $p |- ( ( ( T e. Tarski /\ Tr T ) /\ A e. T /\ B e. T )
  -> ( A ^m B ) e. T ) $=
    ( ctsk wcel wtr wa w3a cwun c0 ne0i tskwun 3expa sylan2 3adant3 simp2 simp3
    wne wunmap ) CDEZCFZGZACEZBCEZHABCUBUCCIEZUDUCUBCJRZUECAKTUAUFUECLMNOUBUCUD
    PUBUCUDQS $.

  $( A transitive Tarski class is closed under small unions.  (Contributed by
     Mario Carneiro, 22-Jun-2013.) $)
  tskurn $p |- ( ( ( T e. Tarski /\ Tr T ) /\ A e. T /\ F : A --> T )
  -> U. ran F e. T ) $=
    ( ctsk wcel wtr wa wf w3a crn cuni simp1l simp1r wss csdm wbr 3ad2ant3 sylc
    syl2anc syl3anc frn cdom ccrd cdm wfo tskwe2 syl simp2 trss ssnum wfn dffn4
    ffn sylib fodomnum tsksdom domsdomtr tskssel tskuni ) BDEZBFZGZABEZABCHZIZU
    TVACJZBEZVFKBEUTVAVCVDLZUTVAVCVDMZVEUTVFBNZVFBOPZVGVHVDVBVJVCABCUAQVEVFAUBP
    ZABOPZVKVEAUCUDZEZAVFCUEZVLVEBVNEZABNZVOVEUTVQVHBUFUGVEVAVCVRVIVBVCVDUHZBAU
    IRBAUJSVDVBVPVCVDCAUKVPABCUMACULUNQAVFCUORVEUTVCVMVHVSABUPSVFABUQSVFBURTVFB
    UST $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Grothendieck universes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Univ $. $( The class of all Grothendieck universes. $)

  $( Extend class notation to include the class of all Grothendieck
     universes. $)
  cgru $a class Univ $.

  ${
    $d u x y $.
    $( A Grothendieck universe is a set that is closed with respect to all the
       operations that are common in set theory: pairs, powersets, unions,
       intersections, Cartesian products etc.  Grothendieck and alii,
       S&eacute;minaire de G&eacute;om&eacute;trie Alg&eacute;brique 4,
       Expos&eacute; I, p. 185.  It was designed to give a precise meaning to
       the concepts of categories of sets, groups...  (Contributed by Mario
       Carneiro, 9-Jun-2013.) $)
    df-gru $a |- Univ = { u | ( Tr u /\ A. x e. u ( ~P x e. u /\
      A. y e. u { x , y } e. u /\ A. y e. ( u ^m x ) U. ran y e. u ) ) } $.
  $}

  ${
    $d U u x y $.
    $( Properties of a Grothendieck universe.  (Contributed by Mario Carneiro,
       9-Jun-2013.) $)
    elgrug $p |- ( U e. V ->
      ( U e. Univ <-> ( Tr U /\ A. x e. U ( ~P x e. U /\
        A. y e. U { x , y } e. U /\ A. y e. ( U ^m x ) U. ran y e. U ) ) ) ) $=
      ( vu cv wtr cpw wcel cpr wral crn cuni cmap co w3a cgru eleq2 raleqbi1dv
      wa wceq treq oveq1 raleqbidv 3anbi123d anbi12d df-gru elab2g ) EFZGZAFZHZ
      UIIZUKBFZJZUIIZBUIKZUNLMZUIIZBUIUKNOZKZPZAUIKZTCGZULCIZUOCIZBCKZURCIZBCUK
      NOZKZPZACKZTECQDUICUAZUJVDVCVLUICUBVBVKAUICVMUMVEUQVGVAVJUICULRUPVFBUICUI
      CUORSVMUSVHBUTVIUICUKNUCUICURRUDUESUFABEUGUH $.
  $}

  ${
    $d U x y $.  $d A x y $.  $d B y $.  $d F x y $.
    $( A Grothendieck universe is transitive.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    grutr $p |- ( U e. Univ -> Tr U ) $=
      ( vx vy cgru wcel wtr cv cpw cpr wral crn cuni cmap w3a elgrug ibi simpld
      co wa ) ADEZAFZBGZHAEUBCGZIAECAJUCKLAECAUBMRJNBAJZTUAUDSBCADOPQ $.

    $( A Grothendieck universe is transitive, so each element is a subset of
       the universe.  (Contributed by Mario Carneiro, 9-Jun-2013.) $)
    gruelss $p |- ( ( U e. Univ /\ A e. U ) -> A C_ U ) $=
      ( cgru wcel wtr wss grutr trss imp sylan ) BCDBEZABDZABFZBGKLMBAHIJ $.

    $( A Grothendieck universe contains the powerset of each of its members.
       (Contributed by Mario Carneiro, 9-Jun-2013.) $)
    grupw $p |- ( ( U e. Univ /\ A e. U ) -> ~P A e. U ) $=
      ( vy vx cgru wcel cpw cv cpr wral crn cuni cmap co w3a wi wtr elgrug ibi
      wa simprd simp1 ralimi wceq pweq eleq1d rspccv 3syl imp ) BEFZABFZAGZBFZU
      JCHZGZBFZUNDHZIBFDBJZUQKLBFDBUNMNJZOZCBJZUPCBJUKUMPUJBQZVAUJVBVATCDBERSUA
      UTUPCBUPURUSUBUCUPUMCABUNAUDUOULBUNAUEUFUGUHUI $.

    $( Any subset of an element of a Grothendieck universe is also an element.
       (Contributed by Mario Carneiro, 9-Jun-2013.) $)
    gruss $p |- ( ( U e. Univ /\ A e. U /\ B C_ A ) -> B e. U ) $=
      ( cgru wcel wss wa cpw wb elpw2g adantl grupw gruelss syldan sseld 3impia
      sylbird ) CDEZACEZBAFZBCEZRSGZTBAHZEZUASUDTIRBACJKUBUCCBRSUCCEUCCFACLUCCM
      NOQP $.

    ${
      $d B x $.
      $( A Grothendieck universe contains pairs derived from its elements.
         (Contributed by Mario Carneiro, 9-Jun-2013.) $)
      grupr $p |- ( ( U e. Univ /\ A e. U /\ B e. U ) -> { A , B } e. U ) $=
        ( vx vy cgru wcel cpr cv wral wi cpw crn cuni cmap co w3a eleq1d rspccv
        wceq wtr wa elgrug ibi simprd preq2 3ad2ant2 com12 ralimdv syl5com syl6
        preq1 com23 3imp ) CFGZACGZBCGZABHZCGZUOUQUPUSUOUQDIZBHZCGZDCJZUPUSKUOU
        TLCGZUTEIZHZCGZECJZVEMNCGECUTOPJZQZDCJZUQVCUOCUAZVKUOVLVKUBDECFUCUDUEUQ
        VJVBDCVJUQVBVHVDUQVBKVIVGVBEBCVEBTVFVACVEBUTUFRSUGUHUIUJVBUSDACUTATVAUR
        CUTABULRSUKUMUN $.
    $}

    $( A Grothendieck universe contains the range of any function which takes
       values in the universe (see ~ gruiun for a more intuitive version).
       (Contributed by Mario Carneiro, 9-Jun-2013.) $)
    gruurn $p |- ( ( U e. Univ /\ A e. U /\ F : A --> U ) -> U. ran F e. U ) $=
      ( vx vy cgru wcel wf crn cuni wa cmap co elmapg wi cpw wral wceq rspccv
      cv cpr w3a wtr elgrug ibi simprd rneq unieqd eleq1d 3ad2ant3 ralimi oveq2
      eleq2d imbi1d 3syl imp sylbird 3impia ) BFGZABGZABCHZCIZJZBGZUSUTKVACBALM
      ZGZVDBACFBNUSUTVFVDOZUSDTZPBGZVHETZUABGEBQZVJIZJZBGZEBVHLMZQZUBZDBQZCVOGZ
      VDOZDBQUTVGOUSBUCZVRUSWAVRKDEBFUDUEUFVQVTDBVPVIVTVKVNVDECVOVJCRZVMVCBWBVL
      VBVJCUGUHUISUJUKVTVGDABVHARZVSVFVDWCVOVECVHABLULUMUNSUOUPUQUR $.

    $( If ` B ( x ) ` is a family of elements of ` U ` and the index set ` A `
       is an element of ` U ` , then the indexed union ` U_ x e. A B ` is also
       an element of ` U ` , where ` U ` is a Grothendieck universe.
       (Contributed by Mario Carneiro, 9-Jun-2013.) $)
    gruiun $p |- ( ( U e. Univ /\ A e. U /\ A. x e. A B e. U )
        -> U_ x e. A B e. U ) $=
      ( cgru wcel wral ciun wa cmpt crn cuni wf wfn wss eqid fnmpt rnmptss df-f
      sylanbrc gruurn 3expia syl5com dfiun3g eleq1d sylibrd com12 3impia ) DEFZ
      BDFZCDFABGZABCHZDFZUKUIUJIZUMUKUNABCJZKZLZDFZUMUKBDUOMZUNURUKUOBNUPDOUSAB
      CUODUOPZQABCDUOUTRBDUOSTUIUJUSURBDUOUAUBUCUKULUQDABCDUDUEUFUGUH $.

    $( A Grothendieck universe contains unions of its elements.  (Contributed
       by Mario Carneiro, 17-Jun-2013.) $)
    gruuni $p |- ( ( U e. Univ /\ A e. U ) -> U. A e. U ) $=
      ( vx cgru wcel wa cuni cv ciun uniiun wral wss gruelss dfss3 sylib gruiun
      mpd3an3 syl5eqel ) BDEZABEZFZAGCACHZIZBCAJSTUBBECAKZUCBEUAABLUDABMCABNOCA
      UBBPQR $.

    $( A Grothendieck universe contains the range of any function which takes
       values in the universe (see ~ gruiun for a more intuitive version).
       (Contributed by Mario Carneiro, 9-Jun-2013.) $)
    grurn $p |- ( ( U e. Univ /\ A e. U /\ F : A --> U ) -> ran F e. U ) $=
      ( cgru wcel wf w3a crn cpw wss simp1 gruurn grupw syl2anc pwuni a1i gruss
      cuni syl3anc ) BDEZABEZABCFZGZTCHZRZIZBEZUDUFJZUDBETUAUBKZUCTUEBEUGUIABCL
      UEBMNUHUCUDOPUFUDBQS $.

    $( A Grothendieck universe contains image sets drawn from its members.
       (Contributed by Mario Carneiro, 9-Jun-2013.) $)
    gruima $p |- ( ( U e. Univ /\ Fun F /\ ( F " A ) C_ U ) ->
        ( A e. U -> ( F " A ) e. U ) ) $=
      ( cgru wcel wfun cima wss w3a wa cdm cin cres wrel wceq simpl2 wf syl3anc
      crn 3syl funrel resres resdm reseq1d syl5eqr rneqd df-ima syl6reqr simpl1
      simpr inss2 a1i gruss wfn wfo funforn fof sylbi fssres sylancl ffn simpl3
      inss1 eqsstr3d df-f sylanbrc grurn eqeltrd ex ) BDEZCFZCAGZBHZIZABEZVLBEV
      NVOJZVLCCKZALZMZSZBVPVKCNZVLVTOVJVKVMVOPZCUAWAVTCAMZSVLWAVSWCWAVSCVQMZAMW
      CCVQAUBWAWDCACUCUDUEUFCAUGUHTZVPVJVRBEZVRBVSQZVTBEVJVKVMVOUIZVPVJVOVRAHZW
      FWHVNVOUJWIVPVQAUKULAVRBUMRVPVSVRUNZVTBHWGVPVKVRCSZVSQZWJWBVKVQWKCQZVRVQH
      WLVKVQWKCUOWMCUPVQWKCUQURVQAVCVQWKVRCUSUTVRWKVSVATVPVTVLBWEVJVKVMVOVBVDVR
      BVSVEVFVRBVSVGRVHVI $.

    $( Any element of an element of a Grothendieck universe is also an element
       of the universe.  (Contributed by Mario Carneiro, 9-Jun-2013.) $)
    gruel $p |- ( ( U e. Univ /\ A e. U /\ B e. A ) -> B e. U ) $=
      ( cgru wcel wa gruelss sseld 3impia ) CDEZACEZBAEBCEJKFACBACGHI $.

    $( A Grothendieck universe contains the singletons of its elements.
       (Contributed by Mario Carneiro, 9-Jun-2013.) $)
    grusn $p |- ( ( U e. Univ /\ A e. U ) -> { A } e. U ) $=
      ( cgru wcel wa csn cpr dfsn2 grupr 3anidm23 syl5eqel ) BCDZABDZEAFAAGZBAH
      LMNBDAABIJK $.

    $( A Grothendieck universe contains ordered pairs of its elements.
       (Contributed by Mario Carneiro, 10-Jun-2013.) $)
    gruop $p |- ( ( U e. Univ /\ A e. U /\ B e. U ) -> <. A , B >. e. U ) $=
      ( cgru wcel w3a cop csn dfopg 3adant1 simp1 grusn 3adant3 syl3anc eqeltrd
      cpr wceq grupr ) CDEZACEZBCEZFZABGZAHZABPZPZCTUAUCUFQSABCCIJUBSUDCEZUECEU
      FCESTUAKSTUGUAACLMABCRUDUECRNO $.

    ${
      $d B x $.
      $( A Grothendieck universe contains binary unions of its elements.
         (Contributed by Mario Carneiro, 9-Jun-2013.) $)
      gruun $p |- ( ( U e. Univ /\ A e. U /\ B e. U ) -> ( A u. B ) e. U ) $=
        ( vx cgru wcel w3a cun cv ciun cuni uniiun wceq uniprg 3adant1 syl5reqr
        cpr wral simp1 eleq1a grupr wa wo vex elpr jaao syl5bi ralrimiv syl3anc
        gruiun eqeltrd ) CEFZACFZBCFZGZABHZDABQZDIZJZCUOUSUQKZUPDUQLUMUNUTUPMUL
        ABCCNOPUOULUQCFURCFZDUQRZUSCFULUMUNSABCUAUMUNVBULUMUNUBZVADUQURUQFURAMZ
        URBMZUCVCVAURABDUDUEUMVDVAUNVEACURTBCURTUFUGUHODUQURCUJUIUK $.
    $}

    $( A Grothendieck universe contains binary cartesian products of its
       elements.  (Contributed by Mario Carneiro, 9-Jun-2013.) $)
    gruxp $p |- ( ( U e. Univ /\ A e. U /\ B e. U ) -> ( A X. B ) e. U ) $=
      ( cgru wcel w3a cun cxp gruun cpw grupw wss xpsspw gruss mp3an3 3ad2antl1
      syldan mpdan ) CDEZACEZBCEZFABGZCEZABHZCEZABCISTUCUEUASUCUBJZCEZUEUBCKSUG
      UFJZCEZUEUFCKSUIUDUHLUEABMUHUDCNOQQPR $.

    $( A Grothendieck universe contains all powers of its elements.
       (Contributed by Mario Carneiro, 9-Jun-2013.) $)
    grumap $p |- ( ( U e. Univ /\ A e. U /\ B e. U ) -> ( A ^m B ) e. U ) $=
      ( cgru wcel w3a cxp cpw cmap wss simp1 gruxp 3com23 grupw syl2anc mapsspw
      co a1i gruss syl3anc ) CDEZACEZBCEZFZUABAGZHZCEZABIQZUFJZUHCEUAUBUCKZUDUA
      UECEZUGUJUAUCUBUKBACLMUECNOUIUDABPRUFUHCST $.

    $( A Grothendieck universe contains indexed cartesian products of its
       elements.  (Contributed by Mario Carneiro, 9-Jun-2013.) $)
    gruixp $p |- ( ( U e. Univ /\ A e. U /\ A. x e. A B e. U )
        -> X_ x e. A B e. U ) $=
      ( cgru wcel wral w3a ciun cmap cixp wss simp1 gruiun simp2 grumap syl3anc
      co ixpssmapg 3ad2ant3 gruss ) DEFZBDFZCDFABGZHZUBABCIZBJRZDFZABCKZUGLZUID
      FUBUCUDMZUEUBUFDFUCUHUKABCDNUBUCUDOUFBDPQUDUBUJUCABCDSTUGUIDUAQ $.

    $( A Grothendieck universe contains indexed intersections of its elements.
       (Contributed by Mario Carneiro, 9-Jun-2013.) $)
    gruiin $p |- ( ( U e. Univ /\ E. x e. A B e. U ) -> |^|_ x e. A B e. U ) $=
      ( cgru wcel wrex ciin nfv nfii1 nfel1 wss iinss2 gruss syl3an3 3exp com23
      cv rexlimd imp ) DEFZCDFZABGABCHZDFZUAUBUDABUAAIAUCDABCJKUAUBARBFZUDUAUBU
      EUDUEUAUBUCCLUDABCMCUCDNOPQST $.

    $( A Grothendieck universe contains all functions on its elements.
       (Contributed by Mario Carneiro, 10-Jun-2013.) $)
    gruf $p |- ( ( U e. Univ /\ A e. U /\ F : A --> U ) -> F e. U ) $=
      ( vx cgru wcel wf w3a cv cfv cop cmpt simp3 feqmptd fvex fnasrn syl6eq wa
      crn simpl1 gruel 3expa 3adantl3 ffvelrn gruop syl3anc eqid fmptd syld3an3
      3ad2antl3 grurn eqeltrd ) BEFZABFZABCGZHZCDADIZUQCJZKZLZSZBUPCDAURLVAUPDA
      BCUMUNUOMNDAURUQCOPQUMUNUOABUTGVABFUPDAUSBUTUPUQAFZRUMUQBFZURBFZUSBFUMUNU
      OVBTUMUNVBVCUOUMUNVBVCAUQBUAUBUCUOUMVBVDUNABUQCUDUJUQURBUEUFUTUGUHABUTUKU
      IUL $.

    $( A Grothendieck universe contains all subsets of itself that are
       equipotent to an element of the universe.  (Contributed by Mario
       Carneiro, 9-Jun-2013.) $)
    gruen $p |- ( ( U e. Univ /\ A C_ U /\ ( B e. U /\ B ~~ A ) )
        -> A e. U ) $=
      ( vy cgru wcel wss cen wbr wa wi cv wf1o wex bren wfo f1ofo w3a crn wf
      wceq simp3l forn syl fof sylan grurn syl3an3 eqeltrrd 3expia expd exlimdv
      fss syl5 com3r expdimp syl7bi impd ancoms 3impia ) CEFZACGZBCFZBAHIZJZACF
      ZVBVAVEVFKVBVAJZVCVDVFVDBADLZMZDNZVGVCVFBADOVBVAVCVJVFKVAVCJZVJVBVFVKVIVB
      VFKZDVIBAVHPZVKVLBAVHQVKVMVBVFVAVCVMVBJZVFVAVCVNRZVHSZACVOVMVPAUAVAVCVMVB
      UBBAVHUCUDVNVAVCBCVHTZVPCFVMBAVHTVBVQBAVHUEBACVHUMUFBCVHUGUHUIUJUKUNULUOU
      PUQURUSUT $.

    $( A nonempty Grothendieck universe is a weak universe.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    gruwun $p |- ( ( U e. Univ /\ U =/= (/) ) -> U e. WUni ) $=
      ( vx vy cgru wcel c0 wne wa cwun wtr cuni cpw cpr wral w3a adantr adantlr
      cv grutr ralrimiva simpr gruuni grupw grupr 3expa adantllr 3jca mpbir3and
      wb iswun ) ADEZAFGZHZAIEZAJZULBRZKAEZUPLAEZUPCRZMAEZCANZOZBANZUKUOULASPUK
      ULUAUMVBBAUMUPAEZHZUQURVAUKVDUQULUPAUBQUKVDURULUPAUCQVEUTCAUKVDUSAEZUTULU
      KVDVFUTUPUSAUDUEUFTUGTUKUNUOULVCOUIULBCADUJPUH $.
  $}

  ${
    $d u x y A $.
    $( The intersection of a family of universes is a universe.  (Contributed
       by Mario Carneiro, 9-Jun-2013.) $)
    intgru $p |- ( ( A C_ Univ /\ A =/= (/) ) -> |^| A e. Univ ) $=
      ( vx vy vu cgru wss wa cvv wcel wtr wral sylbi ral2imi vex elint2 3imtr4g
      cv adantlr wi 3expia c0 wne cint cpw cpr crn cuni cmap co w3a simpr intex
      sylib dfss3 grutr ralimi trint syl adantr grupw ex vpwex imp r19.26 grupr
      sylbir prex sylan2b ralrimiv wf wb elmapg mpan2 ad2antlr intss1 ralrimiva
      sylan2 gruurn syl5 rnex uniex syl6ibr sylbid 3jca sylanb biimpar syl12anc
      fss elgrug ) AEFZAUAUBZGZAUCZHIZWMJZBQZUDZWMIZWPCQZUEZWMIZCWMKZWSUFZUGZWM
      IZCWMWPUHUIZKZUJZBWMKZWMEIZWLWKWNWJWKUKAULZUMWJWOWKWJDQZJZDAKZWOWJXLEIZDA
      KZXNDAEUNZXOXMDAXLUOUPLDAUQURUSWJXPWKXIXQXPWKGZXHBWMXRWPWMIZGZWRXBXGXPXSW
      RWKXPXSWRXPWPXLIZDAKZWQXLIZDAKXSWRXOYAYCDAXOYAYCWPXLUTVAMDWPABNZOZDWQABVB
      OPVCRXPXSXBWKXPXSGZXACWMXSXPYBWSWMIZXASYEXPYBGZWSXLIZDAKZWTXLIZDAKZYGXAYH
      XOYAGZDAKZYJYLSXOYADAVDZYMYIYKDAXOYAYIYKWPWSXLVETMVFDWSACNZODWTAWPWSVGOPV
      HVIRXTXECXFXTWSXFIZWPWMWSVJZXEWKYQYRVKZXPXSWKWNYSXKWNWPHIYSYDWMWPWSHHVLVM
      LVNXPXSYRXESWKYFYRXDXLIZDAKZXEYRWPXLWSVJZDAKZYFUUAYRUUBDAXLAIYRWMXLFUUBXL
      AVOWPWMXLWSWHVQVPXSXPYBUUCUUASZYEYHYNUUDYOYMUUBYTDAXOYAUUBYTWPXLWSVRTMVFV
      HVSDXDAXCWSYPVTWAOWBRWCVIWDVPWEWNXJWOXIGBCWMHWIWFWG $.

    $d u U $.
    $( The intersection of a universe with a class that acts like a universe is
       another universe.  (Contributed by Mario Carneiro, 10-Jun-2013.) $)
    ingru $p |- ( ( Tr A /\ A. x e. A ( ~P x e. A /\
          A. y e. A { x , y } e. A /\ A. y ( y : x --> A -> U. ran y e. A ) ) )
        -> ( U e. Univ -> ( U i^i A ) e. Univ ) ) $=
      ( vu cgru wcel wtr cv wral wi w3a wa wss ssralv elin simplbi2 ral2imi cvv
      ax-mp cpw cpr wf crn cuni wal cin wceq ineq1 eleq1d imbi2d cmap co elgrug
      ibi trin ex inss1 inss2 syl2im im2anan9 vex mapss mp2an inex1 elmap mpan2
      fss sylbi imim1i alimi df-ral sylibr 3impa df-3an 3imtr4g syl6ibr vtoclga
      syl wb com12 ) DFGCHZAIZUAZCGZWCBIZUBZCGZBCJZWCCWFUCZWFUDUEZCGZKZBUFZLZAC
      JZMZDCUGZFGZWQEIZCUGZFGZKWQWSKEDFWTDUHZXBWSWQXCXAWRFWTDCUIUJUKWTFGZWQXAHZ
      WDXAGZWGXAGZBXAJZWKXAGZBXAWCULUMZJZLZAXAJZMZXBXDWTHZWDWTGZWGWTGZBWTJZWKWT
      GZBWTWCULUMZJZLZAWTJZMZWQXNKXDYDABWTFUNUOXOWBXEYCWPXMXOWBXEWTCUPUQYCYBAXA
      JZWPWOAXAJZXMXAWTNZYCYEKWTCURZYBAXAWTOTXACNZWPYFKWTCUSZWOAXACOTYBWOXLAXAY
      BWEWIMZWNMZXFXHMZXKMZWOXLXPXRYAYLYNKXPXRMYKYMYAWNXKXPWEXFXRWIXHXFXPWEWDWT
      CPQXRXQBXAJZWIWHBXAJZXHYGXRYOKYHXQBXAWTOTYIWIYPKYJWHBXACOTXQWHXGBXAXGXQWH
      WGWTCPQRUTVAYAXSBXJJZWNWLBXJJZXKXJXTNZYAYQKWTSGYGYSEVBZYHXAWTWCSVCVDXSBXJ
      XTOTWNWFXJGZWLKZBUFYRWMUUBBUUAWJWLUUAWCXAWFUCZWJXAWCWFWTCYTVEZAVBVFUUCYIW
      JYJWCXACWFVHVGVIVJVKWLBXJVLVMXSWLXIBXJXIXSWLWKWTCPQRUTVAVNWEWIWNVOXFXHXKV
      OVPRUTVAVSXASGXBXNVTUUDABXASUNTVQVRWA $.

    $( The wellfounded part of a universe is another universe.  (Contributed by
       Mario Carneiro, 17-Jun-2013.) $)
    wfgru $p |- ( U e. Univ -> ( U i^i U. ( R1 " On ) ) e. Univ ) $=
      ( vx vy cr1 con0 cima cuni wtr cv cpw wcel cpr wral wf crn wi wal w3a wss
      cgru cin dftr3 r1elssi mprgbir pwwf biimpi prwf ralrimiva frn rnex r1elss
      vex uniwf bitr3i sylib ax-gen a1i 3jca rgen ingru mp2an ) DEFGZHZBIZJVBKZ
      VDCIZLVBKZCVBMZVDVBVFNZVFOZGVBKZPZCQZRZBVBMATKAVBUATKPVCVDVBSBVBBVBUBVDUC
      UDVNBVBVDVBKZVEVHVMVOVEVDUEUFVOVGCVBVDVFUGUHVMVOVLCVIVJVBSZVKVDVBVFUIVPVJ
      VBKVKVJVFCULUJUKVJUMUNUOUPUQURUSBCVBAUTVA $.

    $d B x y $.  $d U x y $.
    $( Each ordinal that is comparable with an element of the universe is in
       the universe.  (Contributed by Mario Carneiro, 10-Jun-2013.) $)
    grudomon $p |- ( ( U e. Univ /\ A e. On /\ ( B e. U /\ A ~<_ B ) ) ->
        A e. U ) $=
      ( vx vy wcel cdom wbr wa con0 wi wceq breq1 eleq1 imbi12d imbi2d wral cvv
      cv wss cgru r19.21v w3a simpl1 vex onelss ssdomg mpsyl sylan simplr domtr
      imp syl2anc pm2.27 syl ralimdva dfss3 cen wb domeng 3ad2ant3 biimpa gruss
      wex simpl2 3expia 3adant1 adantr ensym anim12d ancomsd eximdv 3com23 3exp
      a1i gruen exlimdv sylsyld syl5bir syld ex com23 3expib syl5bi tfis3 com3l
      mpd a2d impr 3impia ) CUAFZBCFZABGHZIZAJFZACFZWKWNWOWPWKWLWMWOWPKWOWKWLIZ
      WMWPWQDSZBGHZWRCFZKZKZWQESZBGHZXCCFZKZKZWQWMWPKZKDEAWRXCLZXAXFWQXIWSXDWTX
      EWRXCBGMWRXCCNOPWRALZXAXHWQXJWSWMWTWPWRABGMWRACNOPXGEWRQWQXFEWRQZKWRJFZXB
      WQXFEWRUBXLWQXKXAXLWKWLXKXAKXLWKWLUCZWSXKWTXMWSXKWTKXMWSIZXKXEEWRQZWTXNXF
      XEEWRXNXCWRFZIZXDXFXEKXQXCWRGHZWSXDXNXLXPXRXLWKWLWSUDWRRFXLXPIXCWRTZXRDUE
      XLXPXSWRXCUFULXCWRRUGUHUIXMWSXPUJXCWRBUKUMXDXEUNUOUPXOWRCTZXNWTEWRCUQXNWR
      XCURHZXCBTZIZEVDZXTWTKZXMWSYDWLXLWSYDUSWKEWRBCUTVAVBXNWKYDXEXCWRURHZIZEVD
      YEXLWKWLWSVEXNYCYGEXNYBYAYGXNYBXEYAYFXMYBXEKZWSWKWLYHXLWKWLYBXEBXCCVCVFVG
      VHYAYFKXNWRXCVIVOVJVKVLWKYGYEEWKYGXTWTWKXTYGWTWRXCCVPVMVNVQVRWGVSVTWAWBWC
      WHWDWEWFWIWJVM $.
  $}

  ${
    $d A x y $.  $d U x y $.
    gruina.1 $e |- A = ( U i^i On ) $.
    $( If a Grothendieck universe ` U ` is nonempty, then the height of the
       ordinals in ` U ` is a strongly inaccessible cardinal.  (Contributed by
       Mario Carneiro, 17-Jun-2013.) $)
    gruina $p |- ( ( U e. Univ /\ U =/= (/) ) -> A e. Inacc ) $=
      ( vx vy wcel c0 wne wa cfv wceq csdm wbr con0 wss syl adantr sylc sylancr
      cen cgru ccf cv cpw wral cina wex wi cin 0ss gruss mp3an3 0elon sylanblrc
      n0 elin syl6eleqr ne0i expcom exlimiv sylbi impcom word cvv wtr cep grutr
      wn wwe tron trin sylancl inss2 epweon mp2 df-ord inex1g sylanbrc syl5eqel
      wess elon2 eloni ordirr biimpri mtod ccrd cuni cab cint wlim wrex eqsstri
      inss1 sseli cdom vpwex canth2 pwex cardid ensymi grupw syldan endom ax-mp
      com cardon mp3an2 mpanr2 onelss ssdomg endomtr sdomdomtr sylan2 ralrimiva
      grudomon inawinalem winainflem syl3anc wb vex sdomtr iscard cardlim sseq2
      limeq bibi12d mpbii mpbid cflm syl2anc eleq1 mpbiri abssi syl6eqelr intex
      fvex sylibr onint eqeltrd eqeq1 anbi1d exbidv elab simp2rr simp1l simp2rl
      sylib syl6ss 3ad2ant3 simp2l syl6eqbr gruen syl112anc gruuni 3exp exlimdv
      w3a mpd wo cfon cfle onsseleq mpan ord elina syl3anbrc ) BUAFZBGHZIZAGHZA
      UBJZAKZDUCZUDZALMZDAUEZAUFFUVHUVGUVJUVHUVMBFZDUGUVGUVJUHZDBUOUVQUVRDUVGUV
      QUVJUVGUVQIZGAFUVJUVSGBNUIZAUVSGBFZGNFGUVTFUVGUVQGUVMOUWAUVMUJUVMGBUKULUM
      GBNUPUNCUQAGURPUSUTVAVBZUVIANFZUVKAFZVHUVLUVGUWCUVHUVGAUVTNCUVGUVTVCZUVTV
      DFUVTNFUVGUVTVEZUVTVFVIZUWEUVGBVENVEUWFBVGVJBNVKVLUVTNONVFVIUWGBNVMVNUVTN
      VFVTVOUVTVPUNBNUAVQUVTWAVRVSZQZUVIUWDABFZUVIUWCUWJVHUWIUWCUWJAAFZUWCAVCUW
      KVHAWBAWCPUWJUWCUWKUWJUWCIZAUVTAAUVTFUWLABNUPWDCUQUSWEPUVIUVKEUCZWFJZKZUW
      MAOZAUWMWGZKZIZIZEUGZUWDUWJUHZUVIUVKUVMUWNKZUWSIZEUGZDWHZFUXAUVIUVKUXFWIZ
      UXFUVIUWCAWJZUVKUXGKUWIUVIXEAOZUXHUVIUVJUWCUVMUWMLMEAWKDAUEZUXIUWBUWIUVGU
      XJUVHUVGUWCUVPUXJUWHUVGUVODAUVMAFZUVGUVQUVOABUVMAUVTBCBNWMWLZWNUVSUVNUVNU
      DZLMUXMAWOMZUVOUVNDWPZWQUVSUXMUXMWFJZTMUXPAWOMZUXNUXPUXMUXMUVNUXOWRWSZWTU
      VSUWCUXPAOZUXQUVGUWCUVQUWHQUVGUVQUXMBFZUXSUVGUVQUVNBFUXTUVMBXAUVNBXAXBUVG
      UXTIZUWCUXPAFZUXSUVGUWCUXTUWHQUYAUXPBFZUXPNFZUYBUVGUXTUXPUXMWOMZUYCUXPUXM
      TMUYEUXRUXPUXMXCXDUVGUYDUXTUYEIUYCUXMXFZUXPUXMBXOXGXHUYFUYCUYDIZUXPUVTAUX
      PUVTFUYGUXPBNUPWDCUQVLAUXPXIRXBUXPANXJRUXMUXPAXKSUVNUXMAXLSXMZXNZDEAXPRQD
      EAXQXRUVGUXIUXHXSZUVHUVGAWFJZAKZUYJUVGUWCUVMALMZDAUEUYLUWHUVGUYMDAUVGUXKI
      UVMUVNLMUVOUYMUVMDXTWQUYHUVMUVNAYASXNDAYBVRUYLXEUYKOZUYKWJZXSUYJAYCUYLUYN
      UXIUYOUXHUYKAXEYDUYKAYEYFYGPQYHDEANYIYJZUVIUXFNOUXFGHZUXGUXFFUXEDNUXDUVMN
      FZEUXCUYRUWSUXCUYRUWNNFUWMXFUVMUWNNYKYLQUTYMUVIUXGVDFUYQUVIUXGUVKVDUYPAUB
      YPZYNUXFYOYQUXFYRSYSUXEUXADUVKUYSUVMUVKKZUXDUWTEUYTUXCUWOUWSUVMUVKUWNYTUU
      AUUBUUCUUGUVIUWTUXBEUVIUWTUWDUWJUVIUWTUWDUUQZAUWQBUWPUWRUWOUVIUWDUUDVUAUV
      GUWMBFZUWQBFUVGUVHUWTUWDUUEZVUAUVGUWMBOUVKBFZUVKUWMTMVUBVUCVUAUWMABUWPUWR
      UWOUVIUWDUUFUXLUUHUWDUVIVUDUWTABUVKUXLWNUUIVUAUVKUWNUWMTUVIUWOUWSUWDUUJUW
      MEXTWSUUKUWMUVKBUULUUMUWMBUUNYJYSUUOUUPUURWEUWCUWDUVLUVKNFZUWCUWDUVLUUSZA
      UUTVUEUWCIUVKAOVUFAUVAUVKAUVBYGUVCUVDRUVGUVPUVHUYIQDAUVEUVF $.

    $( A characterization of Grothendieck universes, part 1.  (Contributed by
       Mario Carneiro, 23-Jun-2013.) $)
    grur1a $p |- ( U e. Univ -> ( R1 ` A ) C_ U ) $=
      ( vx vy wcel cr1 cfv wss c0 wceq wi con0 fveq2 3syl wa sseli eleq1 eleq1d
      wral cin inss1 eqsstri sseq2 mpbii ss0 r10 syl6eq 0ss syl6eqss a1i wne cv
      cgru ciun cina cwina gruina inawina wlim winalim r1lim syl2anc inss2 csuc
      winaon imbi12d simpr elelsuc word wb syl sylan2 eloni ordsucelsuc syl5ibr
      ne0i mpd cpw grupw ex adantr r1suc biimprcd syl6 com23 com4r ontr1 pm2.27
      embantd expd sylc imp ralimdva gruiun 3expia syld cvv vex biimprd sylan9r
      com3r mpan exp32 com34 tfinds2 impcom gruelss syldan iunss sylibr eqsstrd
      ralrimiva pm2.61dne ) BUNFZAGHZBIZBJBJKZXQLXOXRAJIZAJKZXQXRABIXSABMUAZBCB
      MUBUCZBJAUDUEAUFXTXPJBXTXPJGHZJAJGNUGUHBUIUJOUKXOBJULZXQXOYDPZXPDADUMZGHZ
      UOZBYEAUPFZAUQFZXPYHKZABCURZAUSZYJAMFZAUTYKAVFZAVADAMVBVCOXOYHBIZYDXOYGBI
      ZDATYPXOYQDAXOYFAFZYGBFZYQYRXOYSYRYFMFZXOYSLAMYFAYAMCBMVDUCQYTXOYRYSYRYSL
      JAFZJBFZLZEUMZAFZUUDGHZBFZLZUUDVEZAFZUUIGHZBFZLXODEYFJKZYRUUAYSUUBYFJARUU
      MYGJBUUMYGYCJYFJGNUGUHSVGYFUUDKZYRUUEYSUUGYFUUDARUUNYGUUFBYFUUDGNSVGYFUUI
      KZYRUUJYSUULYFUUIARUUOYGUUKBYFUUIGNSVGUUCXOABJYBQUKXOUUHUUJUUDMFZUULXOUUJ
      UUHUUPUULLZXOUUJUUHUUQLXOUUJPZUUEUUGUUQUURUUJUUEXOUUJVHUUJUUEUURUUIAVEFZU
      UIAVIUURYNAVJUUEUUSVKUUJXOYDYNUUJUUIBFYDABUUIYBQBUUIVQVLYEYIYJYNYLYMYOOZV
      MAVNUUDAVOOVPVRUURUUGUUFVSZBFZUUQXOUUGUVBLUUJXOUUGUVBUUFBVTWAWBUUPUULUVBU
      UPUUKUVABUUDWCSWDWEWJWAWFWGYFUTZXOYRUUHEYFTZYSUVCXOYRUVDYSLXOYRPZUVDEYFUU
      FUOZBFZUVCYSUVEUVDUUGEYFTZUVGUVEUUHUUGEYFUVEUUDYFFZUUHUUGLZUVEYRYNUVIUVJL
      XOYRVHYRXOYDYNYRYFBFZYDABYFYBQZBYFVQVLUUTVMYNUVIYRUVJYNUVIYRUVJYNUVIYRPUU
      EUVJUUDYFAWHUUEUUGWIWEWKXBWLWMWNYRXOUVKUVHUVGLUVLXOUVKUVHUVGEYFUUFBWOWPVM
      WQUVCYSUVGUVCYGUVFBYFWRFUVCYGUVFKDWSEYFWRVBXCSWTXAXDXEXFXBVRXGYGBXHXIXMDA
      YGBXJXKWBXLWAXN $.

    $( A characterization of Grothendieck universes, part 2.  (Contributed by
       Mario Carneiro, 24-Jun-2013.) $)
    grur1 $p |- ( ( U e. Univ /\ U e. U. ( R1 " On ) ) -> U = ( R1 ` A ) ) $=
      ( vy vx wcel cr1 con0 wa cfv wss wn crnk wceq wi syl cvv ad2ant2r wbr ccf
      cgru cima cuni cv wrex wex nss fveq2 eqeq1d rspcev ex ad2antrl ctc simplr
      simprl r1elssi sseld sylc tcrank eleq2d wtr gruelss grutr vex tcmin ax-mp
      adantr syl2anc wfun wf rankf ffun fvelima ssrexv syl2im sylbid simprr cdm
      mpan wo wb cina cwina c0 wne ne0i gruina sylan2 inawina winaon wfn r1fnon
      3syl fndm syl6eleqr rankr1ag mtbid w3o rankon word eloni ordtri3or syl2an
      sylancr 3orass sylib ord mpd mpjaod exlimdv syl5bi cdom ad2antll cpw csdm
      simpll wral elina eqtrd rankcf fvex domtri mp2an mpbir syl6eqbrr grudomon
      simp2bi syl112anc cin elin biimpri ordirr adantl pm2.21dd rexlimdvaa syld
      pm2.18d grur1a eqssd ) BUAFZBGHUBUCZFZIZBAGJZUUCBUUDKZUUCUUELZDUDZMJZANZD
      BUEZUUEUUFEUDZBFZUUKUUDFZLZIZEUFUUCUUJEBUUDUGUUCUUOUUJEUUCUUOUUJUUCUUOIZU
      UKMJZANZUUJAUUQFZUULUURUUJOUUCUUNUULUURUUJUUIUURDUUKBUUGUUKNUUHUUQAUUGUUK
      MUHUIUJUKULUUPUUSAMUUKUMJZUBZFZUUJUUPUUQUVAAUUPUUKUUAFZUUQUVANUUPUUBUULUV
      CYTUUBUUOUNUUCUULUUNUOUUBBUUAUUKBUPUQURZUUKUSPUTYTUULUVBUUJOUUBUUNYTUULIZ
      UUTBKZUVBUUIDUUTUEZUUJUVEUUKBKZBVAZUVFUUKBVBYTUVIUULBVCVGUUKQFUVHUVIIUVFO
      EVDUUKBQVEVFVHMVIZUVBUVGUUAHMVJUVJVKUUAHMVLVFDAUUTMVMVSUUIDUUTBVNVORVPUUP
      UUQAFZLZUURUUSVTZUUPUUMUVKUUCUULUUNVQUUPUVCAGVRZFZUUMUVKWAUVDYTUULUVOUUBU
      UNUVEAHUVNUVEAWBFZAWCFZAHFZUULYTBWDWEZUVPBUUKWFABCWGZWHAWIZAWJZWMZGHWKUVN
      HNWLHGWNVFWORUUKAWPVHWQYTUULUVLUVMOUUBUUNUVEUVKUVMUVEUVKUURUUSWRZUVKUVMVT
      UVEUUQHFZUVRUWDUUKWSUWCUWEUUQWTAWTZUWDUVRUUQXAAXAZUUQAXBXCXDUVKUURUUSXEXF
      XGRXHXIUKXJXKUUCUUIUUEDBUUCUUGBFZUUIIZIZABFZUVRUUEUWJYTUVRUWHAUUGXLSUWKYT
      UUBUWIXPUWJUVPUVQUVRYTUWHUVPUUBUUIUWHYTUVSUVPBUUGWFUVTWHRZUWAUWBWMZUUCUWH
      UUIUOUWJAUUHTJZUUGXLUWJUWNATJZAUUIUWNUWONUUCUWHUUHATUHXMUWJUVPUWOANZUWLUV
      PAWDWEUWPUUKXNAXOSEAXQEAXRYGPXSUWNUUGXLSZUUGUWNXOSLZUUGXTUWNQFUUGQFUWQUWR
      WAUUHTYADVDUWNUUGQQYBYCYDYEAUUGBYFYHUWMUWKUVRIZAAFZUUEUWSABHYIZAAUXAFUWSA
      BHYJYKCWOUVRUWTLZUWKUVRUWFUXBUWGAYLPYMYNVHYOYPYQYTUUDBKUUBABCYRVGYS $.
  $}

  ${
    $d T x y $.
    $( Grothendieck universes are the same as transitive Tarski classes, part
       one: a transitive Tarski class is a universe.  (The hard work is in
       ~ tskuni .)  (Contributed by Mario Carneiro, 17-Jun-2013.) $)
    grutsk1 $p |- ( ( T e. Tarski /\ Tr T ) -> T e. Univ ) $=
      ( vx vy ctsk wcel wtr wa cgru cv cpw cpr wral crn cuni cmap w3a ralrimiva
      co adantlr wb simpr tskpw tskpr 3expa wf elmapg tskurn 3expia sylbid 3jca
      ralrimiv elgrug adantr mpbir2and ) ADEZAFZGZAHEZUPBIZJAEZUSCIZKAEZCALZVAM
      NAEZCAUSORZLZPZBALZUOUPUAUQVGBAUQUSAEZGZUTVCVFUOVIUTUPUSAUBSUOVIVCUPUOVIG
      VBCAUOVIVAAEVBUSVAAUCUDQSVJVDCVEVJVAVEEZUSAVAUEZVDUOVIVKVLTUPAUSVADAUFSUQ
      VIVLVDUSAVAUGUHUIUKUJQUOURUPVHGTUPBCADULUMUN $.
  $}

  ${
    $d x y $.
    $( Grothendieck universes are the same as transitive Tarski classes.  (The
       proof in the forward direction requires Foundation.)  (Contributed by
       Mario Carneiro, 24-Jun-2013.) $)
    grutsk $p |- Univ = { x e. Tarski | Tr x } $=
      ( vy cgru cv wtr ctsk crab wcel wa c0 wceq 0tsk eleq1 mpbiri a1i wne con0
      wi cin cr1 cfv cima cuni cvv vex unir1 eleqtrri grur1 mpan2 adantr gruina
      eqid cina inatsk syl eqeltrd ex pm2.61dne grutr grutsk1 impbii treq elrab
      jca bitr4i eqriv ) BCADZEZAFGZBDZCHZVJFHZVJEZIZVJVIHVKVNVKVLVMVKVLVJJVJJK
      ZVLRVKVOVLJFHLVJJFMNOVKVJJPZVLVKVPIZVJVJQSZTUAZFVKVJVSKZVPVKVJTQUBUCZHVTV
      JUDWABUEUFUGVRVJVRULZUHUIUJVQVRUMHVSFHVRVJWBUKVRUNUOUPUQURVJUSVDVJUTVAVHV
      MAVJFVGVJVBVCVEVF $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  ZFC Set Theory plus the Tarski-Grothendieck Axiom
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Tarski-Grothendieck Axiom
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w v u $.
    $( The Tarski-Grothendieck Axiom.  For every set ` x ` there is an
       inaccessible cardinal ` y ` such that ` y ` is not in ` x ` .  The
       addition of this axiom to ZFC set theory provides a framework for
       category theory, thus for all practical purposes giving us a complete
       foundation for "all of mathematics."  This version of the axiom is used
       by the Mizar project
       ( ~ http://www.mizar.org/JFM/Axiomatics/tarski.html ).  Unlike the ZFC
       axioms, this axiom is very long when expressed in terms of primitive
       symbols - see ~ grothprim .  An open problem is finding a shorter
       equivalent.  (Contributed by NM, 18-Mar-2007.) $)
    ax-groth $a |- E. y ( x e. y /\ A. z e. y ( A. w ( w C_ z -> w e. y ) /\
                       E. w e. y A. v ( v C_ z -> v e. w ) ) /\
                     A. z ( z C_ y -> ( z ~~ y \/ z e. y ) ) ) $.

    $( The Tarski-Grothendieck axiom using abbreviations.  (Contributed by NM,
       22-Jun-2009.) $)
    axgroth5 $p |- E. y ( x e. y /\ A. z e. y ( ~P z C_ y
             /\ E. w e. y ~P z C_ w ) /\ A. z e. ~P y ( z ~~ y \/ z e. y ) ) $=
      ( vv wel cv cpw wss wrex wa wral cen wbr wo w3a wex wi wal pwss biid wcel
      ax-groth rexbii anbi12i ralbii df-ral selpw imbi1i albii bitri 3anbi123i
      exbii mpbir ) ABFZCGZHZBGZIZUQDGZIZDURJZKZCURLZUPURMNCBFOZCURHZLZPZBQUOUT
      UPIDBFRDSZEGUPIEDFRESZDURJZKZCURLZUPURIZVERZCSZPZBQABCDEUCVHVQBUOUOVDVMVG
      VPUOUAVCVLCURUSVIVBVKDUPURTVAVJDUREUPUTTUDUEUFVGUPVFUBZVERZCSVPVECVFUGVSV
      OCVRVNVECURUHUIUJUKULUMUN $.

    $( Alternate version of the Tarski-Grothendieck Axiom.  (Contributed by NM,
       18-Mar-2007.) $)
    axgroth2 $p |- E. y ( x e. y /\ A. z e. y ( A. w ( w C_ z -> w e. y ) /\
                       E. w e. y A. v ( v C_ z -> v e. w ) ) /\
                     A. z ( z C_ y -> ( y ~<_ z \/ z e. y ) ) ) $=
      ( wel cv wss wi wal wrex wa wral cdom wbr wo w3a wex cen cvv ax-groth vex
      wcel ssdomg ax-mp biantrurd sbthb syl6bb orbi1d pm5.74i albii exbii mpbir
      3anbi3i ) ABFZDGCGZHDBFIDJEGUPHEDFIEJDBGZKLCUQMZUPUQHZUQUPNOZCBFZPZIZCJZQ
      ZBRUOURUSUPUQSOZVAPZIZCJZQZBRABCDEUAVEVJBVDVIUOURVCVHCUSVBVGUSUTVFVAUSUTU
      PUQNOZUTLVFUSVKUTUQTUCUSVKIBUBUPUQTUDUEUFUPUQUGUHUIUJUKUNULUM $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the Power Set, Infinity and Choice Axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

    $( Derive the Axiom of Power Sets ~ ax-pow from the Tarski-Grothendieck
       axiom ~ ax-groth .  That it follows is mentioned by Bob Solovay at
       ~ http://www.cs.nyu.edu/pipermail/fom/2008-March/012783.html .  Note
       that ~ ax-pow is not used by the proof.  (Contributed by G&eacute;rard
       Lang, 22-Jun-2009.)  (New usage is discouraged.) $)
    grothpw $p |- E. y A. z ( A. w ( w e. z -> w e. x ) -> z e. y ) $=
      ( cv cpw cvv wcel wel wi wal wex wss wrex wa wral cen wceq pweq bitri wbr
      wo w3a simpl ralimi sseq1d rspccv syl anim2i 3adant3 pm3.35 vex ssex 3syl
      axgroth5 exlimiiv pwidg eleq2d spcegv mpd elex exlimiv impbii elpw2 dfss2
      pwss imbi1i albii exbii mpbi ) AEZFZGHZDCIDAIJDKZCBIZJZCKZBLZABIZCEZFZBEZ
      MZWADEMDWBNZOZCWBPZVTWBQUAVOUBCWBFZPZUCZVMBWIVSVSVLWBMZJZOZWJVMVSWFWLWHWF
      WKVSWFWCCWBPWKWEWCCWBWCWDUDUEWCWJCVKWBVTVKRWAVLWBVTVKSUFUGUHUIUJVSWJUKVLW
      BBULZUMUNABCDUOUPVMVLWGHZBLZVRVMWOVMVLVLFZHZWOVLGUQWNWQBVLGWBVLRWGWPVLWBV
      LSURUSUTWNVMBVLWGVAVBVCWNVQBWNWJVQVLWBWMVDWJVTVKMZVOJZCKVQCVKWBVFWSVPCWRV
      NVODVTVKVEVGVHTTVITVJ $.

    $( Derive the Axiom of Power Sets from the Tarski-Grothendieck axiom
       ~ ax-groth .  Note that ~ ax-pow is not used by the proof.  Use ~ axpweq
       to obtain ~ ax-pow .  Use ~ pwex or ~ pwexg instead.  (Contributed by
       G&eacute;rard Lang, 22-Jun-2009.)  (New usage is discouraged.) $)
    grothpwex $p |- ~P x e. _V $=
      ( vy vz vw cv wcel cpw wss wrex wa cen wbr wo w3a cvv wi simpl ralimi weq
      wral pweq sseq1d rspccv anim2i 3adant3 pm3.35 ssex 3syl axgroth5 exlimiiv
      syl vex ) AEZBEZFZCEZGZUNHZUQDEHDUNIZJZCUNTZUPUNKLUPUNFMCUNGTZNZUMGZOFZBV
      CUOUOVDUNHZPZJZVFVEUOVAVHVBVAVGUOVAURCUNTVGUTURCUNURUSQRURVFCUMUNCASUQVDU
      NUPUMUAUBUCUKUDUEUOVFUFVDUNBULUGUHABCDUIUJ $.

    $( The Tarski-Grothendieck axiom using abbreviations.  This version is
       called Tarski's axiom: given a set ` x ` , there exists a set ` y `
       containing ` x ` , the subsets of the members of ` y ` , the power sets
       of the members of ` y ` , and the subsets of ` y ` of cardinality less
       than that of ` y ` .  (Contributed by NM, 21-Jun-2009.) $)
    axgroth6 $p |- E. y ( x e. y /\ A. z e. y ( ~P z C_ y /\ ~P z e. y )
                   /\ A. z e. ~P y ( z ~< y -> z e. y ) ) $=
      ( vw vv wel cv cpw wss wcel wa wral wbr wi w3a wex wb wceq pweq sylbi cen
      csdm wrex axgroth5 biid sseq1d cbvralv ssid sseq2 rspcev mpan2 rspccv wal
      pwss vpwex sseq1 eleq1 imbi12d spcv syl6 rexlimdv impbid2 ralbidv pm5.32i
      wo r19.26 3bitr4i selpw wn cdom impexp cvv vex ssdomg ax-mp imbi1i brsdom
      pm4.71i bitri imbi2i 3bitr4ri pm4.64 syl6bb ralbiia 3anbi123i exbii mpbir
      pm5.74ri ) ABFZCGZHZBGZIZWKWLJZKCWLLZWJWLUBMZCBFZNZCWLHZLZOZBPWIWMWKDGZIZ
      DWLUCZKCWLLZWJWLUAMZWQVEZCWSLZOZBPABCDUDXAXIBWIWIWOXEWTXHWIUEWMCWLLZWNCWL
      LZKXJXDCWLLZKWOXEXJXKXLXJEGZHZWLIZEWLLZXKXLQWMXOCEWLWJXMRWKXNWLWJXMSUFUGX
      PWNXDCWLXPWNXDWNWKWKIZXDWKUHXCXQDWKWLXBWKWKUIUJUKXPXCWNDWLXPDBFXBHZWLIZXC
      WNNZXOXSEXBWLXMXBRXNXRWLXMXBSUFULXSXMXBIZEBFZNZEUMXTEXBWLUNYCXTEWKCUOXMWK
      RYAXCYBWNXMWKXBUPXMWKWLUQURUSTUTVAVBVCTVDWMWNCWLVFWMXDCWLVFVGWRXGCWSWJWSJ
      WJWLIZWRXGQCWLVHYDWRXFVIZWQNZXGYDWRYFYDWJWLVJMZKZYFNYDYGYFNZNYDYFNYDWRNYD
      YGYFVKYDYHYFYDYGWLVLJYDYGNBVMWJWLVLVNVOVRVPWRYIYDWRYGYEKZWQNYIWPYJWQWJWLV
      QVPYGYEWQVKVSVTWAWHXFWQWBWCTWDWEWFWG $.

    $( The Tarski-Grothendieck Axiom implies the Axiom of Infinity (in the form
       of ~ omex ).  Note that our proof depends on neither the Axiom of
       Infinity nor Regularity.  (Contributed by Mario Carneiro, 19-Apr-2013.)
       (New usage is discouraged.) $)
    grothomex $p |- _om e. _V $=
      ( vy vz vw vx com cr1 cvv wcel con0 wss mp2an c0 cpw wral cfv wceq eleq1d
      cv wa wi cima cres wf1 wf1o r111 omsson f1ores f1of1 ax-mp wel wfn r1fnon
      wrex wb fvelimab csuc fveq2 weq r10 eleq1i biimpri adantr pweq nnon r1suc
      rspccv syl biimprcd syl6 com3r adantld finds2 eleq1 biimpd rexlimiv sylbi
      syl9 com12 ssrdv vex ssex wex 0ex anbi1d exbidv csdm wbr w3a simpr ralimi
      axgroth6 anim2i 3adant3 eximii vtocl exlimiiv f1dmex ) EFEUAZFEUBZUCZWRGH
      ZEGHEWRWSUDZWTIGFUCEIJZXBUEUFIGEFUGKEWRWSUHUILARZHZBRZMZXDHZBXDNZSZXAAXJW
      RXDJXAXJCWRXDCRZWRHZXJCAUJZXLDRZFOZXKPZDEUMZXJXMTZFIUKXCXLXQUNULUFDIEXKFU
      OKXPXRDEXNEHXJXOXDHZXPXMXSLFOZXDHZXKFOZXDHZXKUPZFOZXDHZXJDCXNLPZXOXTXDXNL
      FUQQDCURXOYBXDXNXKFUQQXNYDPXOYEXDXNYDFUQQXEYAXIYAXEXTLXDUSUTVAVBXKEHZXIYC
      YFTXEXIYCYHYFXIYCYBMZXDHZYHYFTXHYJBYBXDXFYBPXGYIXDXFYBVCQVFYHYFYJYHYEYIXD
      YHXKIHYEYIPXKVDXKVEVGQVHVIVJVKVLXPXSXMXOXKXDVMVNVQVOVPVRVSWRXDAVTWAVGDAUJ
      ZXISZAWBXJAWBDLWCYGYLXJAYGYKXEXIXNLXDVMWDWEYKXGXDJZXHSZBXDNZXFXDWFWGBAUJT
      BXDMNZWHYLADABWKYKYOYLYPYOXIYKYNXHBXDYMXHWIWJWLWMWNWOWPEWRGWSWQK $.

    $( The Tarski-Grothendieck Axiom implies the Axiom of Choice (in the form
       of ~ cardeqv ).  This can be put in a more conventional form via ~ ween
       and ~ dfac8 .  Note that the mere existence of strongly inaccessible
       cardinals doesn't imply AC, but rather the particular form of the
       Tarski-Grothendieck axiom (see
       ~ http://www.cs.nyu.edu/pipermail/fom/2008-March/012783.html ).
       (Contributed by Mario Carneiro, 19-Apr-2013.)
       (New usage is discouraged.) $)
    grothac $p |- dom card = _V $=
      ( vy vu vx ccrd cdm cvv cv wcel cpw wss wa wral csdm wbr wi w3a vex ax-mp
      cdom syl2im crab sseq1d eleq1d anbi12d rspcva simpld rabss biimpri canth2
      weq pweq sdomdom ssdomg domtr sylancr tskwe numdom expcom 3impia axgroth6
      mpan exlimiiv 2th eqriv ) ADEZFAGZVEHZVFFHVFBGZHZCGZIZVHJZVKVHHZKZCVHLZVJ
      VHMNZVJVHHOCVHIZLZPVGBVIVOVRVGVIVOKZVFIZVHJZVRVPCVQUAVHJZVGVSWAVTVHHZVNWA
      WCKCVFVHCAUJZVLWAVMWCWDVKVTVHVJVFUKZUBWDVKVTVHWEUCUDUEUFWBVRVPCVQVHUGUHWA
      VFVHSNZWBVHVEHZVGWAVFVTSNZVTVHSNZWFVFVTMNWHVFAQZUIVFVTULRVHFHZWAWIOBQZVTV
      HFUMRVFVTVHUNUOWKWBWGWLCVHFUPVAWGWFVGVHVFUQURTTUSABCUTVBWJVCVD $.

    $( Alternate version of the Tarski-Grothendieck Axiom. ~ ax-cc is used to
       derive this version.  (Contributed by NM, 26-Mar-2007.) $)
    axgroth3 $p |- E. y ( x e. y /\ A. z e. y ( A. w ( w C_ z -> w e. y ) /\
                       E. w e. y A. v ( v C_ z -> v e. w ) ) /\
                     A. z ( z C_ y -> ( ( y \ z ) ~<_ z \/ z e. y ) ) ) $=
      ( wel cv wss wi wal wrex wa wral cdom wbr wo w3a wex wb wcel axgroth2 weq
      cdif cuni sseq1 elequ1 imbi12d spv mpi reximi eluni2 sylibr adantl ralimi
      ssid dfss3 com c0 wne ne0i vex dominf sylan ccrd cdm cvv grothac eleqtrri
      infdif2 mp3an12 orbi1d imbi2d albidv sylan2 pm5.32i df-3an 3bitr4i exbii
      syl mpbir ) ABFZDGCGZHDBFIDJZEGZWBHZEDFZIZEJZDBGZKZLZCWIMZWBWIHZWIWBUCWBN
      OZCBFZPZIZCJZQZBRWAWLWMWIWBNOZWOPZIZCJZQZBRABCDEUAWSXDBWAWLLZWRLXEXCLWSXD
      XEWRXCWLWAWIWIUDZHZWRXCSWLWBXFTZCWIMXGWKXHCWIWJXHWCWJCDFZDWIKXHWHXIDWIWHW
      BWBHZXIWBUOWGXJXIIECECUBWEXJWFXIWDWBWBUEECDUFUGUHUIUJDWBWIUKULUMUNCWIXFUP
      ULWAXGLZWQXBCXKWPXAWMXKWNWTWOXKUQWINOZWNWTSZWAWIURUSXGXLWIAGUTWIBVAZVBVCW
      IVDVEZTWBXOTXLXMWIVFXOXNVGVHWBVFXOCVAVGVHWIWBVIVJVSVKVLVMVNVOWAWLWRVPWAWL
      XCVPVQVRVT $.

    $( Alternate version of the Tarski-Grothendieck Axiom. ~ ax-ac is used to
       derive this version.  (Contributed by NM, 16-Apr-2007.) $)
    axgroth4 $p |- E. y ( x e. y /\ A. z e. y E. v e. y A. w ( w C_ z ->
    w e. ( y i^i v ) ) /\ A. z ( z C_ y -> ( ( y \ z ) ~<_ z \/ z e. y ) ) ) $=
      ( vu wel cv wss wi wal wrex wa wral cdif w3a wex weq anbi2i 3bitr2i sseq1
      cdom wbr wo cin wcel axgroth3 elequ2 imbi2d albidv cbvrexv r19.42v elequ1
      imbi12d cbvalv 19.26 pm4.76 elin imbi2i bitr4i albii rexbii 3anbi2i exbii
      ralbii mpbi ) ABGZDHZCHZIZDBGZJZDKZFHZVIIZFDGZJZFKZDBHZLZMZCVSNZVIVSIVSVI
      OVIUBUCCBGUDJCKZPZBQVGVJVHVSEHZUEUFZJZDKZEVSLZCVSNZWCPZBQABCDFUGWDWKBWBWJ
      VGWCWAWICVSWAVMVOFEGZJZFKZEVSLZMVMWNMZEVSLWIVTWOVMVRWNDEVSDERZVQWMFWQVPWL
      VODEFUHUIUJUKSVMWNEVSULWPWHEVSWPVMVJDEGZJZDKZMVLWSMZDKWHWNWTVMWMWSFDFDRVO
      VJWLWRVNVHVIUAFDEUMUNUOSVLWSDUPXAWGDXAVJVKWRMZJWGVJVKWRUQWFXBVJVHVSWEURUS
      UTVATVBTVEVCVDVF $.
  $}

  ${
    $d x y z w v u t h g $.
    $( Lemma for ~ grothprim .  Expand the membership of an unordered pair into
       primitives.  (Contributed by NM, 29-Mar-2007.) $)
    grothprimlem $p |- ( { u , v } e. w <-> E. g ( g e. w /\ A. h
      ( h e. g <-> ( h = u \/ h = v ) ) ) ) $=
      ( cv cpr wcel weq wo cab wel wb wal wa wex dfpr2 eleq1i clabel bitri ) CF
      ZBFZGZAFZHECIEBIJZEKZUDHDALEDLUEMENODPUCUFUDEUAUBQRUEEDUDST $.

    $( The Tarski-Grothendieck Axiom ~ ax-groth expanded into set theory
       primitives using 163 symbols (allowing the defined symbols ` /\ ` ,
       ` \/ ` , ` <-> ` , and ` E. ` ).  An open problem is whether a shorter
       equivalent exists (when expanded to primitives).  (Contributed by NM,
       16-Apr-2007.) $)
    grothprim $p |- E. y ( x e. y /\ A. z ( ( z e. y -> E. v ( v e. y /\
       A. w ( A. u ( u e. w -> u e. z ) -> ( w e. y /\ w e. v ) ) ) ) /\ E. w
      ( ( w e. z -> w e. y ) -> ( A. v ( ( v e. z -> E. t A. u ( E. g ( g e. w
      /\ A. h ( h e. g <-> ( h = v \/ h = u ) ) ) -> u = t ) ) /\ ( v e. y ->
      ( v e. z \/ E. u ( u e. z /\ E. g ( g e. w /\ A. h ( h e. g <-> ( h = u
      \/ h = v ) ) ) ) ) ) ) \/ z e. y ) ) ) ) $=
      ( wel cv wcel wi wal wrex wral wo wex wa bitri wss cin cdif cdom axgroth4
      wbr w3a weq wb 3anass dfss2 imbi12i albii rexbii df-rex ralbii df-ral cpr
      elin wmo cvv difexg ax-mp c0 incom disjdif eqtri brdom6disj orbi1i 19.44v
      vex bitr4i 19.35 grothprimlem mobii mo2v eldif pm5.6 anbi12i 19.26 imbi2i
      wn exbii anbi2i mpbi ) ABJZDKZCKZUAZWGBKZEKZUBLZMZDNZEWJOZCWJPZWHWJUAZWJW
      HUCZWHUDUFZCBJZQZMZCNZUGZBRWFWTEBJZFDJFCJZMFNZDBJZDEJSZMZDNZSERZMZDCJXHMZ
      ECJZHDJZIHJZIEUHZIFUHZQUIINSHRZFGUHMFNGRZMZXEXOXFXPXQXSXRQUIINSHRZSFRZQMZ
      SENZWTQZMZDRZSCNZSZBRABCDEUEXDYKBXDWFWPXCSZSYKWFWPXCUJYLYJWFYLXMCNZYICNZS
      YJWPYMXCYNWPXLCWJPYMWOXLCWJWOXKEWJOXLWNXKEWJWMXJDWIXGWLXIFWGWHUKWGWJWKUSU
      LUMUNXKEWJUOTUPXLCWJUQTXBYICXBXNWKFKZURWGLZFUTZEWHPZYOWKURWGLZFWHOZEWRPZS
      ZWTQZMZDRZYIXBXNDNZUUCDRZMUUEWQUUFXAUUGDWHWJUKXAUUBDRZWTQUUGWSUUHWTEFWRWH
      DWJVALWRVALBVKWJWHVAVBVCCVKWRWHUBWHWRUBVDWRWHVEWHWJVFVGVHVIUUBWTDVJVLULXN
      UUCDVMVLUUDYHDUUCYGXNUUBYFWTUUBYBENZYEENZSYFYRUUIUUAUUJYRYAEWHPUUIYQYAEWH
      YQXTFUTYAYPXTFDFEHIVNVOXTFGVPTUPYAEWHUQTUUAWKWRLZYTMZENUUJYTEWRUQUULYEEUU
      LXEXOWBSZYDMYEUUKUUMYTYDWKWJWHVQYTYCFWHOYDYSYCFWHDEFHIVNUNYCFWHUOTULXEXOY
      DVRTUMTVSYBYEEVTVLVIWAWCTUMVSXMYICVTVLWDTWCWE $.
  $}

  ${
    $d w x y z $.
    $( The Tarski-Grothendieck Axiom, using abbreviations.  (Contributed by
       Mario Carneiro, 28-May-2013.) $)
    grothtsk $p |- U. Tarski = _V $=
      ( vw vx vy vz ctsk cuni cvv cv wcel wa wex cpw wss wrex wral cen wo mpbir
      wbr vex w3a axgroth5 wb eltskg ax-mp anbi2i 3anass bitr4i exbii eluni 2th
      eqriv ) AEFZGAHZUMIZUNGIUOUNBHZIZUPEIZJZBKZUTUQCHZLZUPMVBDHMDUPNJCUPOZVAU
      PPSVAUPIQCUPLOZUAZBKABCDUBUSVEBUSUQVCVDJZJVEURVFUQUPGIURVFUCBTCDUPGUDUEUF
      UQVCVDUGUHUIRBUNEUJRATUKUL $.
  $}

  ${
    $d w x y z $.
    $( An equivalent to the Tarski-Grothendieck Axiom: there is a proper class
       of inaccessible cardinals.  (Contributed by Mario Carneiro,
       9-Jun-2013.) $)
    inaprc $p |- Inacc e/ _V $=
      ( vx vy vz vw cina cvv cuni con0 cv wcel ssriv wrex ctsk eluni2 wa sylan2
      wss ccrd adantl wb wnel wceq word cwina inawina syl ssorduni ordsson mp2b
      winaon vex grothtsk eleqtrri mpbi cfv c0 wne ne0i tskcard wbr tsksdom cdm
      tskwe2 adantr cardsdomel mpbid eleq2 rspcev syl2anc rexlimdvaa mpi sylibr
      csdm eqssi ssonprc ax-mp mpbir ) EFUAZEGZHUBZVSHEHQZVSUCVSHQAEHAIZEJWBUDJ
      WBHJWBUEWBUJUFKZEUGVSUHUIBHVSBIZHJZWDCIZJZCELZWDVSJWEWDDIZJZDMLZWHWDMGZJW
      KWDFWLBUKULUMDWDMNUNWEWJWHDMWEWIMJZWJOZOZWIRUOZEJZWDWPJZWHWNWQWEWJWMWIUPU
      QWQWIWDURWIUSPSWOWDWIVMUTZWRWNWSWEWDWIVASWNWEWIRVBJZWSWRTWMWTWJWIVCVDWDWI
      VEPVFWGWRCWPEWFWPWDVGVHVIVJVKCWDENVLKVNWAVRVTTWCEVOVPVQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Tarski map function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c tarskiMap $.
  $( A function whose value is the smallest Tarski class
     containing a particular set. $)

  $( Extend class definition to include the map whose value is the smallest
     Tarski class. $)
  ctskm $a class tarskiMap $.

  ${
    $d x y $.
    $( A function that maps a set ` x ` to the smallest Tarski class that
       contains the set.  (Contributed by FL, 30-Dec-2010.) $)
    df-tskm $a |- tarskiMap = ( x e. _V |-> |^| { y e. Tarski | x e. y } ) $.
  $}

  ${
    $d A x y $.
    $( Value of our tarski map.  (Contributed by FL, 30-Dec-2010.)  (Revised by
       Mario Carneiro, 20-Sep-2014.) $)
    tskmval $p |- ( A e. V ->
      ( tarskiMap ` A ) = |^| { x e. Tarski | A e. x } ) $=
      ( vy wcel cvv ctsk crab cint ctskm wceq elex wrex cuni grothtsk syl6eleqr
      cv cfv eluni2 sylib intexrab eleq1 rabbidv inteqd df-tskm fvmptg syl2anc
      ) BCEZBFEBAQZEZAGHZIZFEZBJRULKBCLZUHUJAGMZUMUHBGNZEUOUHBFUPUNOPABGSTUJAGU
      ATDBDQZUIEZAGHZIULFFJUQBKZUSUKUTURUJAGUQBUIUBUCUDDAUEUFUG $.

    $( The set ` A ` is an element of the smallest Tarski class that contains
       ` A ` .  CLASSES1 th. 5.  (Contributed by FL, 30-Dec-2010.)  (Proof
       shortened by Mario Carneiro, 21-Sep-2014.) $)
    tskmid $p |- ( A e. V -> A e. ( tarskiMap ` A ) ) $=
      ( vx wcel cv ctsk crab cint ctskm cfv wi wral id elintrabg mpbiri tskmval
      rgenw eleqtrrd ) ABDZAACEDZCFGHZAIJSAUADTTKZCFLUBCFTMQTCAFBNOCABPR $.

    $( A Tarski class that contains ` A ` is a Tarski class.  (Contributed by
       FL, 17-Apr-2011.)  (Proof shortened by Mario Carneiro, 21-Sep-2014.) $)
    tskmcl $p |- ( tarskiMap ` A ) e. Tarski $=
      ( vx cvv wcel ctskm cfv ctsk cv crab cint tskmval wss c0 ssrab2 wrex cuni
      wne id grothtsk syl6eleqr eluni2 sylib rabn0 sylibr sylancr eqeltrd fvprc
      inttsk wn 0tsk syl6eqel pm2.61i ) ACDZAEFZGDUMUNABHDZBGIZJZGBACKUMUPGLUPM
      QZUQGDUOBGNUMUOBGOZURUMAGPZDUSUMACUTUMRSTBAGUAUBUOBGUCUDUPUHUEUFUMUIUNMGA
      EUGUJUKUL $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Being a part of ` ( tarskiMap `` A ) ` .  (Contributed by FL,
       17-Apr-2011.)  (Proof shortened by Mario Carneiro, 20-Sep-2014.) $)
    sstskm $p |- ( A e. V -> ( B C_ ( tarskiMap ` A ) <->
      A. x e. Tarski ( A e. x -> B C_ x ) ) ) $=
      ( wcel ctskm cfv wss cv ctsk cab cint wral crab tskmval df-rab inteqi wal
      wa wi syl6eq sseq2d impexp albii ssintab df-ral 3bitr4i syl6bb ) BDEZCBFG
      ZHCAIZJEZBUKEZSZAKZLZHZUMCUKHZTZAJMZUIUJUPCUIUJUMAJNZLUPABDOVAUOUMAJPQUAU
      BUNURTZARULUSTZARUQUTVBVCAULUMURUCUDUNACUEUSAJUFUGUH $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Belonging to ` ( tarskiMap `` A ) ` .  (Contributed by FL, 17-Apr-2011.)
       (Proof shortened by Mario Carneiro, 21-Sep-2014.) $)
    eltskm $p |- ( A e. V -> ( B e. ( tarskiMap ` A ) <->
      A. x e. Tarski ( A e. x -> B e. x ) ) ) $=
      ( wcel ctskm cfv cv ctsk crab cint wi wral tskmval eleq2d cvv elex tskmid
      a1i eleq2 tskmcl wceq imbi12d rspcv ax-mp syl5com syl6 wb elintrabg bitrd
      pm5.21ndd ) BDEZCBFGZEZCBAHZEZAIJKZEZUPCUOEZLZAIMZULUMUQCABDNOULCPEZURVAU
      RVBLULCUQQSULVAUNVBULBUMEZVAUNBDRUMIEVAVCUNLZLBUAUTVDAUMIUOUMUBUPVCUSUNUO
      UMBTUOUMCTUCUDUEUFCUMQUGVBURVAUHLULUPACIPUISUKUJ $.
  $}


$(
###############################################################################
  REAL AND COMPLEX NUMBERS
###############################################################################

  This section derives the basics of real and complex numbers.  We first
  construct and axiomatize real and complex numbers (e.g., ~ ax-resscn ).
  After that, we derive their basic properties, various operations like
  addition ( ~ df-add ) and sine ( ~ df-sin ), and subsets such as the integers
  ( ~ df-z ) and natural numbers ( ~ df-nn ).

$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Construction and axiomatization of real and complex numbers
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Dedekind-cut construction of real and complex numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)

  $c N. $. $( Set of positive integers $)

  $c +N $. $( Positive integer addition $)
  $c .N $. $( Positive integer multiplication $)
  $c <N $. $( Positive integer ordering relation $)

  $c +pQ $. $( Positive pre-fraction addition $)
  $c .pQ $. $( Positive pre-fraction multiplication $)
  $c <pQ $. $( Positive pre-fraction ordering relation $)

  $c ~Q $. $( Equivalence relation to construct positive fractions $)
  $c Q. $. $( Set of positive fractions $)
  $c 1Q $. $( Positive fraction constant 1 $)
  $c /Q $. $( Positive fraction equivalence class $)
  $c +Q $. $( Positive fraction addition $)
  $c .Q $. $( Positive fraction multiplication $)
  $c *Q $. $( Positive fraction reciprocal $)
  $c <Q $. $( Positive fraction ordering relation $)

  $c P. $. $( Set of positive reals $)
  $c 1P $. $( Positive real constant 1 $)
  $c +P. $. $( Positive real addition $)
  $c .P. $. $( Positive real multiplication $)
  $c <P $. $( Positive real ordering relation $)

  $c ~R $. $( Equivalence relation to construct signed reals $)
  $c R. $. $( Set of signed reals $)
  $c 0R $. $( Signed real constant 0 $)
  $c 1R $. $( Signed real constant 1 $)
  $c -1R $. $( Signed real constant minus 1 $)
  $c +R $. $( Signed real addition $)
  $c .R $. $( Signed real multiplication $)
  $c <R $. $( Signed real ordering relation $)
  $c <RR $. $( 'Less than' relation (restricted to non-extended reals) $)

  $c CC $. $( The set of complex numbers (blackboard bold C) $)
  $c RR $. $( The set of real numbers (blackboard bold R) $)
  $c 0 $. $( The real number 0. $)
  $c 1 $. $( The real number 1. $)
  $c _i $. $( Letter i (the imaginary unit = square root of -1) $)
  $c + $. $( Plus (addition) symbol $)
  $c x. $. $( Multiplication symbol (center dot) $)

  $( Extend class notation with new sets (constants) used for positive
     integers: $)

  $( The set of positive integers, which is the set of natural numbers ` _om `
     with 0 removed.

     _Note:  This is the start of the Dedekind-cut construction of real and_
     _complex numbers.  The last lemma of the construction is_ ~ mulcnsrec .
     _The actual set of Dedekind cuts is defined by_ ~ df-np . $)
  cnpi $a class N. $.
  $( Positive integer addition. $)
  cpli $a class +N $.
  $( Positive integer multiplication. $)
  cmi $a class .N $.
  $( Positive integer ordering relation. $)
  clti $a class <N $.

  $( Extend class notation with new sets (constants) used in construction of
    positive fractions: $)

  $( Positive pre-fraction addition. $)
  cplpq $a class +pQ $.
  $( Positive pre-fraction multiplication. $)
  cmpq $a class .pQ $.
  $( Positive pre-fraction ordering relation. $)
  cltpq $a class <pQ $.
  $( Equivalence class used to construct positive fractions. $)
  ceq $a class ~Q $.
  $( Set of positive fractions. $)
  cnq $a class Q. $.
  $( The positive fraction constant 1. $)
  c1q $a class 1Q $.
  $( Positive fraction equivalence class. $)
  cerq $a class /Q $.
  $( Positive fraction addition. $)
  cplq $a class +Q $.
  $( Positive fraction multiplication. $)
  cmq $a class .Q $.
  $( Positive fraction reciprocal operation. $)
  crq $a class *Q $.
  $( Positive fraction ordering relation. $)
  cltq $a class <Q $.

  $( Extend class notation with new sets (constants) used in construction of
    positive real numbers: $)

  $( Set of positive reals. $)
  cnp $a class P. $.
  $( Positive real constant 1. $)
  c1p $a class 1P $.
  $( Positive real addition. $)
  cpp $a class +P. $.
  $( Positive real multiplication. $)
  cmp $a class .P. $.
  $( Positive real ordering relation. $)
  cltp $a class <P $.

  $( Extend class notation with new sets (constants) used in construction of
    signed real numbers: $)

  $( Equivalence class used to construct signed reals. $)
  cer $a class ~R $.
  $( Set of signed reals. $)
  cnr $a class R. $.
  $( The signed real constant 0. $)
  c0r $a class 0R $.
  $( The signed real constant 1. $)
  c1r $a class 1R $.
  $( The signed real constant -1. $)
  cm1r $a class -1R $.
  $( Signed real addition. $)
  cplr $a class +R $.
  $( Signed real multiplication. $)
  cmr $a class .R $.
  $( Signed real ordering relation. $)
  cltr $a class <R $.

  $( Define the class of positive integers.  This is a "temporary" set used in
     the construction of complex numbers ~ df-c , and is intended to be used
     only by the construction.  (Contributed by NM, 15-Aug-1995.)
     (New usage is discouraged.) $)
  df-ni $a |- N. = ( _om \ { (/) } ) $.

  $( Define addition on positive integers.  This is a "temporary" set used in
     the construction of complex numbers ~ df-c , and is intended to be used
     only by the construction.  (Contributed by NM, 26-Aug-1995.)
     (New usage is discouraged.) $)
  df-pli $a |- +N = ( +o |` ( N. X. N. ) ) $.

  $( Define multiplication on positive integers.  This is a "temporary" set
     used in the construction of complex numbers ~ df-c , and is intended to be
     used only by the construction.  (Contributed by NM, 26-Aug-1995.)
     (New usage is discouraged.) $)
  df-mi $a |- .N = ( .o |` ( N. X. N. ) ) $.

  $( Define 'less than' on positive integers.  This is a "temporary" set used
     in the construction of complex numbers ~ df-c , and is intended to be used
     only by the construction.  (Contributed by NM, 6-Feb-1996.)
     (New usage is discouraged.) $)
  df-lti $a |- <N = ( _E i^i ( N. X. N. ) ) $.

  $( Membership in the class of positive integers.  (Contributed by NM,
     15-Aug-1995.)  (New usage is discouraged.) $)
  elni $p |- ( A e. N. <-> ( A e. _om /\ A =/= (/) ) ) $=
    ( cnpi wcel com c0 csn cdif wne wa df-ni eleq2i eldifsn bitri ) ABCADEFGZCA
    DCAEHIBNAJKADELM $.

  $( Membership in the class of positive integers.  (Contributed by NM,
     27-Nov-1995.)  (New usage is discouraged.) $)
  elni2 $p |- ( A e. N. <-> ( A e. _om /\ (/) e. A ) ) $=
    ( cnpi wcel com c0 wne wa elni word wb nnord ord0eln0 syl pm5.32i bitr4i )
    ABCADCZAEFZGPEACZGAHPRQPAIRQJAKALMNO $.

  $( A positive integer is a natural number.  (Contributed by NM, 15-Aug-1995.)
     (New usage is discouraged.) $)
  pinn $p |- ( A e. N. -> A e. _om ) $=
    ( cnpi com c0 csn cdif df-ni difss eqsstri sseli ) BCABCDEZFCGCKHIJ $.

  $( A positive integer is an ordinal number.  (Contributed by NM,
     23-Mar-1996.)  (New usage is discouraged.) $)
  pion $p |- ( A e. N. -> A e. On ) $=
    ( cnpi wcel com con0 pinn nnon syl ) ABCADCAECAFAGH $.

  $( A positive integer is ordinal.  (Contributed by NM, 29-Jan-1996.)
     (New usage is discouraged.) $)
  piord $p |- ( A e. N. -> Ord A ) $=
    ( cnpi wcel com word pinn nnord syl ) ABCADCAEAFAGH $.

  $( The class of positive integers is a set.  (Contributed by NM,
     15-Aug-1995.)  (New usage is discouraged.) $)
  niex $p |- N. e. _V $=
    ( cnpi com omex c0 csn cdif df-ni difss eqsstri ssexi ) ABCABDEZFBGBKHIJ $.

  $( The empty set is not a positive integer.  (Contributed by NM,
     26-Aug-1995.)  (New usage is discouraged.) $)
  0npi $p |- -. (/) e. N. $=
    ( c0 wceq cnpi wcel wn eqid com wne elni simprbi necon2bi ax-mp ) AABACDZEA
    FMAAMAGDAAHAIJKL $.

  $( Ordinal 'one' is a positive integer.  (Contributed by NM, 29-Oct-1995.)
     (New usage is discouraged.) $)
  1pi $p |- 1o e. N. $=
    ( c1o cnpi wcel com c0 wne 1onn 1n0 elni mpbir2an ) ABCADCAEFGHAIJ $.

  $( Positive integer addition in terms of ordinal addition.  (Contributed by
     NM, 27-Aug-1995.)  (New usage is discouraged.) $)
  addpiord $p |- ( ( A e. N. /\ B e. N. ) -> ( A +N B ) = ( A +o B ) ) $=
    ( cnpi wcel wa cop cxp cpli co coa wceq opelxpi cres cfv fvres df-ov df-pli
    fveq1i eqtri 3eqtr4g syl ) ACDBCDEABFZCCGZDZABHIZABJIZKABCCLUDUBJUCMZNZUBJN
    UEUFUBUCJOUEUBHNUHABHPUBHUGQRSABJPTUA $.

  $( Positive integer multiplication in terms of ordinal multiplication.
     (Contributed by NM, 27-Aug-1995.)  (New usage is discouraged.) $)
  mulpiord $p |- ( ( A e. N. /\ B e. N. ) -> ( A .N B ) = ( A .o B ) ) $=
    ( cnpi wcel wa cop cxp cmi co comu wceq opelxpi cres cfv fvres df-ov fveq1i
    df-mi eqtri 3eqtr4g syl ) ACDBCDEABFZCCGZDZABHIZABJIZKABCCLUDUBJUCMZNZUBJNU
    EUFUBUCJOUEUBHNUHABHPUBHUGRQSABJPTUA $.

  $( 1 is an identity element for multiplication on positive integers.
     (Contributed by NM, 4-Mar-1996.)  (Revised by Mario Carneiro,
     17-Nov-2014.)  (New usage is discouraged.) $)
  mulidpi $p |- ( A e. N. -> ( A .N 1o ) = A ) $=
    ( cnpi wcel c1o cmi co comu wceq 1pi mulpiord mpan2 com pinn nnm1 syl eqtrd
    ) ABCZADEFZADGFZAQDBCRSHIADJKQALCSAHAMANOP $.

  $( Positive integer 'less than' in terms of ordinal membership.  (Contributed
     by NM, 6-Feb-1996.)  (Revised by Mario Carneiro, 28-Apr-2015.)
     (New usage is discouraged.) $)
  ltpiord $p |- ( ( A e. N. /\ B e. N. ) -> ( A <N B <-> A e. B ) ) $=
    ( clti wbr cep cnpi cxp cin wcel wa df-lti breqi brinxp epelg adantl bitr3d
    wb syl5bb ) ABCDABEFFGHZDZAFIZBFIZJZABIZABCSKLUCABEDZTUDABFFEMUBUEUDQUAABFN
    OPR $.

  $( Positive integer 'less than' is a strict ordering.  (Contributed by NM,
     8-Feb-1996.)  (Proof shortened by Mario Carneiro, 10-Jul-2014.)
     (New usage is discouraged.) $)
  ltsopi $p |- <N Or N. $=
    ( cnpi clti wor cep con0 wss com c0 csn cdif df-ni difss omsson eqsstri wwe
    sstri epweon weso ax-mp soss mp2 cxp cin wceq wb df-lti soeq1 soinxp bitr4i
    mpbir ) ABCZADCZAEFEDCZULAGHIZJZEKUOGEGUNLMPNEDOUMQEDRSAEDTUAUKADAAUBUCZCZU
    LBUPUDUKUQUEUFABUPUGSADUHUIUJ $.

  $( Positive integer 'less than' is a relation on positive integers.
     (Contributed by NM, 8-Feb-1996.)  (New usage is discouraged.) $)
  ltrelpi $p |- <N C_ ( N. X. N. ) $=
    ( clti cep cnpi cxp cin df-lti inss2 eqsstri ) ABCCDZEIFBIGH $.

  $( Domain of addition on positive integers.  (Contributed by NM,
     26-Aug-1995.)  (New usage is discouraged.) $)
  dmaddpi $p |- dom +N = ( N. X. N. ) $=
    ( coa cnpi cxp cres cdm con0 cin cpli dmres wfn wceq fnoa fndm ax-mp ineq2i
    eqtri df-pli dmeqi wss com wa c0 csn df-ni difss eqsstri omsson sstri anidm
    cdif mpbir xpss12 dfss mpbi 3eqtr4i ) ABBCZDZEZUPFFCZGZHEUPURUPAEZGUTAUPIVA
    USUPAUSJVAUSKLUSAMNOPHUQQRUPUSSZUPUTKBFSZVCUAZVBVDVCBTFBTUBUCZUJTUDTVEUEUFU
    GUHVCUIUKBFBFULNUPUSUMUNUO $.

  $( Domain of multiplication on positive integers.  (Contributed by NM,
     26-Aug-1995.)  (New usage is discouraged.) $)
  dmmulpi $p |- dom .N = ( N. X. N. ) $=
    ( comu cnpi cxp cres cdm con0 cin cmi dmres wfn wceq fnom fndm ax-mp ineq2i
    eqtri df-mi dmeqi wss com wa c0 cdif df-ni difss eqsstri omsson sstri anidm
    csn mpbir xpss12 dfss mpbi 3eqtr4i ) ABBCZDZEZUPFFCZGZHEUPURUPAEZGUTAUPIVAU
    SUPAUSJVAUSKLUSAMNOPHUQQRUPUSSZUPUTKBFSZVCUAZVBVDVCBTFBTUBUJZUCTUDTVEUEUFUG
    UHVCUIUKBFBFULNUPUSUMUNUO $.

  $( Closure of addition of positive integers.  (Contributed by NM,
     18-Oct-1995.)  (New usage is discouraged.) $)
  addclpi $p |- ( ( A e. N. /\ B e. N. ) -> ( A +N B ) e. N. ) $=
    ( cnpi wcel wa cpli co coa addpiord com pinn wne nnacl sylan2 elni2 nnaordi
    c0 wi ne0i syl6 expcom imp32 sylan2b elni sylanbrc sylan eqeltrd ) ACDZBCDZ
    EABFGABHGZCABIUHAJDZUIUJCDZAKUKUIEUJJDZUJQLZULUIUKBJDZUMBKABMNUIUKUOQBDZEUN
    BOUKUOUPUNUOUKUPUNRUOUKEUPAQHGZUJDUNQBAPUJUQSTUAUBUCUJUDUEUFUG $.

  $( Closure of multiplication of positive integers.  (Contributed by NM,
     18-Oct-1995.)  (New usage is discouraged.) $)
  mulclpi $p |- ( ( A e. N. /\ B e. N. ) -> ( A .N B ) e. N. ) $=
    ( cnpi wcel wa cmi co comu mulpiord com wne pinn nnmcl syl2an elni2 simprbi
    c0 adantl wi adantr nnmordi syl21anc mpd ne0i syl elni sylanbrc eqeltrd ) A
    CDZBCDZEZABFGABHGZCABIUKULJDZULQKZULCDUIAJDZBJDZUMUJALZBLZABMNUKAQHGZULDZUN
    UKQBDZUTUJVAUIUJUPVABOPRUKUPUOQADZVAUTSUJUPUIURRUIUOUJUQTUIVBUJUIUOVBAOPTQB
    AUAUBUCULUSUDUEULUFUGUH $.

  $( Addition of positive integers is commutative.  (Contributed by NM,
     27-Aug-1995.)  (New usage is discouraged.) $)
  addcompi $p |- ( A +N B ) = ( B +N A ) $=
    ( cnpi wcel wa cpli wceq coa com pinn nnacom syl2an addpiord ancoms 3eqtr4d
    co dmaddpi ndmovcom pm2.61i ) ACDZBCDZEZABFPZBAFPZGUBABHPZBAHPZUCUDTAIDBIDU
    EUFGUAAJBJABKLABMUATUDUFGBAMNOABCFQRS $.

  $( Addition of positive integers is associative.  (Contributed by NM,
     27-Aug-1995.)  (New usage is discouraged.) $)
  addasspi $p |- ( ( A +N B ) +N C ) = ( A +N ( B +N C ) ) $=
    ( cnpi wcel w3a cpli co wceq coa com pinn nnaass syl3an wa addclpi addpiord
    sylan oveq1d eqtrd adantr 3impa sylan2 oveq2d adantl 3impb 3eqtr4d ndmovass
    dmaddpi 0npi pm2.61i ) ADEZBDEZCDEZFZABGHZCGHZABCGHZGHZIUOABJHZCJHZABCJHZJH
    ZUQUSULAKEUMBKEUNCKEVAVCIALBLCLABCMNULUMUNUQVAIULUMOZUNOUQUPCJHZVAVDUPDEUNU
    QVEIABPUPCQRVDVEVAIUNVDUPUTCJABQSUATUBULUMUNUSVCIULUMUNOZOUSAURJHZVCVFULURD
    EUSVGIBCPAURQUCVFVGVCIULVFURVBAJBCQUDUETUFUGABCDGUIUJUHUK $.

  $( Multiplication of positive integers is commutative.  (Contributed by NM,
     21-Sep-1995.)  (New usage is discouraged.) $)
  mulcompi $p |- ( A .N B ) = ( B .N A ) $=
    ( cnpi wcel wa cmi wceq comu com pinn nnmcom syl2an mulpiord ancoms 3eqtr4d
    co dmmulpi ndmovcom pm2.61i ) ACDZBCDZEZABFPZBAFPZGUBABHPZBAHPZUCUDTAIDBIDU
    EUFGUAAJBJABKLABMUATUDUFGBAMNOABCFQRS $.

  $( Multiplication of positive integers is associative.  (Contributed by NM,
     21-Sep-1995.)  (New usage is discouraged.) $)
  mulasspi $p |- ( ( A .N B ) .N C ) = ( A .N ( B .N C ) ) $=
    ( cnpi wcel w3a cmi co wceq comu com pinn nnmass syl3an wa mulclpi mulpiord
    sylan oveq1d eqtrd adantr 3impa sylan2 oveq2d adantl 3impb 3eqtr4d ndmovass
    dmmulpi 0npi pm2.61i ) ADEZBDEZCDEZFZABGHZCGHZABCGHZGHZIUOABJHZCJHZABCJHZJH
    ZUQUSULAKEUMBKEUNCKEVAVCIALBLCLABCMNULUMUNUQVAIULUMOZUNOUQUPCJHZVAVDUPDEUNU
    QVEIABPUPCQRVDVEVAIUNVDUPUTCJABQSUATUBULUMUNUSVCIULUMUNOZOUSAURJHZVCVFULURD
    EUSVGIBCPAURQUCVFVGVCIULVFURVBAJBCQUDUETUFUGABCDGUIUJUHUK $.

  $( Multiplication of positive integers is distributive.  (Contributed by NM,
     21-Sep-1995.)  (New usage is discouraged.) $)
  distrpi $p |- ( A .N ( B +N C ) ) = ( ( A .N B ) +N ( A .N C ) ) $=
    ( cnpi wcel w3a cpli co cmi wceq coa comu pinn nndi mulpiord addpiord eqtrd
    com wa mulclpi syl3an addclpi sylan2 oveq2d adantl syl2an oveqan12d 3eqtr4d
    3impb 3impdi dmaddpi 0npi dmmulpi ndmovdistr pm2.61i ) ADEZBDEZCDEZFZABCGHZ
    IHZABIHZACIHZGHZJUSABCKHZLHZABLHZACLHZKHZVAVDUPAREUQBREURCREVFVIJAMBMCMABCN
    UAUPUQURVAVFJUPUQURSZSVAAUTLHZVFVJUPUTDEVAVKJBCUBAUTOUCVJVKVFJUPVJUTVEALBCP
    UDUEQUIUPUQURVDVIJUPUQSZUPURSZSVDVBVCKHZVIVLVBDEVCDEVDVNJVMABTACTVBVCPUFVLV
    MVBVGVCVHKABOACOUGQUJUHABCDGIUKULUMUNUO $.

  $( Addition cancellation law for positive integers.  (Contributed by Mario
     Carneiro, 8-May-2013.)  (New usage is discouraged.) $)
  addcanpi $p |- ( ( A e. N. /\ B e. N. ) ->
                 ( ( A +N B ) = ( A +N C ) <-> B = C ) ) $=
    ( cnpi wcel wa cpli co wceq wi addclpi syl5ib imp dmaddpi 0npi coa addpiord
    eleq1 com pinn ndmovrcl simpr 3syl adantr adantlr eqeq12d w3a nnacan biimpd
    syl3an 3expa sylbid sylan2 exp32 imp4b pm2.43i ex oveq2 impbid1 ) ADEZBDEZF
    ZABGHZACGHZIZBCIZVBVEVFVBVEFVFVBVEVBVEVFVBVEVBVEVFJZVEVBFZVBCDEZVGVHVDDEZUT
    VIFVIVEVBVJVBVCDEVEVJABKVCVDDRLMACDGNOUAUTVIUBUCVBVIFZVEABPHZACPHZIZVFVKVCV
    LVDVMVBVCVLIVIABQUDUTVIVDVMIVAACQUEUFUTVAVIVNVFJZUTASEZVABSEZVICSEZVOATBTCT
    VPVQVRUGVNVFABCUHUIUJUKULUMUNUOUPUQBCAGURUS $.

  $( Multiplication cancellation law for positive integers.  (Contributed by
     NM, 4-Feb-1996.)  (Revised by Mario Carneiro, 10-May-2013.)
     (New usage is discouraged.) $)
  mulcanpi $p |- ( ( A e. N. /\ B e. N. ) ->
                 ( ( A .N B ) = ( A .N C ) <-> B = C ) ) $=
    ( cnpi wcel wa cmi co wceq wi mulclpi eleq1 syl5ib comu mulpiord com sylan2
    pinn ex pm2.43i imp dmmulpi 0npi ndmovrcl simpr 3syl adantr adantlr eqeq12d
    w3a elni2 simprbi nnmcan biimpd syl3an com4r imp31 sylbid exp32 imp4b oveq2
    c0 3exp impbid1 ) ADEZBDEZFZABGHZACGHZIZBCIZVGVJVKVGVJFVKVGVJVGVJVKVGVJVGVJ
    VKJZVJVGFZVGCDEZVLVMVIDEZVEVNFVNVJVGVOVGVHDEVJVOABKVHVIDLMUAACDGUBUCUDVEVNU
    EUFVGVNFZVJABNHZACNHZIZVKVPVHVQVIVRVGVHVQIVNABOUGVEVNVIVRIVFACOUHUIVEVFVNVS
    VKJZVEVFVNVTJJVEVFVNVEVTVEVFVNVEVTJZVEAPEZVFBPEZVNCPEZWAARBRCRWBWCWDUJZVEVT
    VEWEVBAEZVTVEWBWFAUKULWEWFFVSVKABCUMUNQSUOVCUPTUQURQUSUTTSBCAGVAVD $.

  $( There is no identity element for addition on positive integers.
     (Contributed by NM, 28-Nov-1995.)  (New usage is discouraged.) $)
  addnidpi $p |- ( A e. N. -> -. ( A +N B ) = A ) $=
    ( cnpi wcel wa cpli co wceq wn wi coa com pinn c0 elni2 nnaordi nna0 eleq1d
    con2d eqeq1d word nnord ordirr eleq2 notbid syl5ibrcom sylbid adantl expcom
    syl syld imp32 sylan2b sylan addpiord mtbird dmaddpi ndmov 0npi eleq1 mtbii
    a1d syl6bi pm2.61i ) ACDZBCDZEZVEABFGZAHZIZJVGVJVEVGVIABKGZAHZVEALDZVFVLIZA
    MVFVMBLDZNBDZEVNBOVMVOVPVNVOVMVPVNJVOVMEVPANKGZVKDZVNNBAPVMVRVNJVOVMVRAVKDZ
    VNVMVQAVKAQRVMVLVSVMVSIVLAADZIZVMAUAWAAUBAUCUJVLVSVTVKAAUDUEUFSUGUHUKUIULUM
    UNVGVHVKAABUOTUPVBVGIZVIVEWBVINAHZVEIWBVHNAABCFUQURTWCNCDVEUSNACUTVAVCSVD
    $.

  ${
    $d x A $.  $d x B $.
    $( Ordering on positive integers in terms of existence of sum.
       (Contributed by NM, 15-Mar-1996.)  (Revised by Mario Carneiro,
       14-Jun-2013.)  (New usage is discouraged.) $)
    ltexpi $p |- ( ( A e. N. /\ B e. N. ) ->
               ( A <N B <-> E. x e. N. ( A +N x ) = B ) ) $=
      ( cnpi wcel wa c0 cv coa wceq com wrex clti wbr cpli pinn nnaordex syl2an
      co wb ltpiord addpiord eqeq1d pm5.32da elni2 anbi1i anass syl6bb rexbidv2
      bitri adantr 3bitr4d ) BDEZCDEZFBCEZGAHZEZBUPISZCJZFZAKLZBCMNBUPOSZCJZADL
      ZUMBKECKEUOVATUNBPCPABCQRBCUAUMVDVATUNUMVCUTADKUMUPDEZVCFVEUSFZUPKEZUTFZU
      MVEVCUSUMVEFVBURCBUPUBUCUDVFVGUQFZUSFVHVEVIUSUPUEUFVGUQUSUGUJUHUIUKUL $.
  $}

  $( Ordering property of addition for positive integers.  (Contributed by NM,
     7-Mar-1996.)  (New usage is discouraged.) $)
  ltapi $p |- ( C e. N. -> ( A <N B <-> ( C +N A ) <N ( C +N B ) ) ) $=
    ( clti cnpi cpli dmaddpi wcel wbr co wb coa com pinn ltpiord adantr addclpi
    wa wceq addpiord ltrelpi nnaord syl3an syl2an adantl eleq12d anandis ancoms
    0npi 3expa bitrd 3bitr4d 3impa ndmovord ) ABCDEFGUAUIAEHZBEHZCEHZABDIZCAFJZ
    CBFJZDIZKUOUPRZUQRABHZCALJZCBLJZHZURVAUOUPUQVCVFKZUOAMHUPBMHUQCMHVGANBNCNAB
    CUBUCUJVBURVCKUQABOPUQVBVAVFKZUQUOUPVHUQUORZUQUPRZRZVAUSUTHZVFVIUSEHUTEHVAV
    LKVJCAQCBQUSUTOUDVKUSVDUTVEVIUSVDSVJCATPVJUTVESVICBTUEUFUKUGUHULUMUN $.

  $( Ordering property of multiplication for positive integers.  (Contributed
     by NM, 8-Feb-1996.)  (New usage is discouraged.) $)
  ltmpi $p |- ( C e. N. -> ( A <N B <-> ( C .N A ) <N ( C .N B ) ) ) $=
    ( clti cnpi cmi wcel wbr co wb wa comu com pinn syl2an ltpiord mulclpi wceq
    adantr mulpiord dmmulpi ltrelpi 0npi wi c0 elni2 w3a nnmord sylan9bbr 3exp1
    iba imp4b syl5bi adantl eleq12d bitrd anandis ancoms 3bitr4d 3impa ndmovord
    imp ) ABCDEFUAUBUCAEGZBEGZCEGZABDHZCAFIZCBFIZDHZJVCVDKZVEKABGZCALIZCBLIZGZV
    FVIVJVEVKVNJZVCAMGZBMGZVEVOUDVDANBNVECMGZUECGZKVPVQKVOCUFVPVQVRVSVOVPVQVRVS
    VOVSVKVKVSKVPVQVRUGVNVSVKUKABCUHUIUJULUMOVBVJVFVKJVEABPSVEVJVIVNJZVEVCVDVTV
    EVCKZVEVDKZKZVIVGVHGZVNWAVGEGVHEGVIWDJWBCAQCBQVGVHPOWCVGVLVHVMWAVGVLRWBCATS
    WBVHVMRWACBTUNUOUPUQURUSUTVA $.

  $( One is less than two (one plus one).  (Contributed by NM, 13-Mar-1996.)
     (New usage is discouraged.) $)
  1lt2pi $p |- 1o <N ( 1o +N 1o ) $=
    ( c1o cpli co clti wbr wcel coa c0 com wceq 1onn nna0 ax-mp 0lt1o wb peano1
    nnaord cnpi 1pi mp2an mp3an mpbi eqeltrri addpiord eleqtrri addclpi ltpiord
    mpbir ) AAABCZDEZAUIFZAAAGCZUIAHGCZAULAIFZUMAJKALMHAFZUMULFZNHIFUNUNUOUPOPK
    KHAAQUAUBUCARFZUQUIULJSSAAUDTUEUQUIRFZUJUKOSUQUQURSSAAUFTAUIUGTUH $.

  $( No positive integer is less than one.  (Contributed by NM, 23-Mar-1996.)
     (New usage is discouraged.) $)
  nlt1pi $p |- -. A <N 1o $=
    ( cnpi wcel c1o clti wbr wn c0 wne com elni simprbi wceq wa noel wo ltpiord
    wb 1pi mpan2 csuc df-1o eleq2i elsucg syl5bb biimpa ord mpi ex necon3ad mpd
    bitrd ltrelpi brel simpld con3i pm2.61i ) ABCZADEFZGZURAHIZUTURAJCVAAKLURUS
    AHURUSAHMZURUSNZAHCZGVBAOVCVDVBURUSVDVBPZURUSADCZVEURDBCZUSVFRSADQTVFAHUAZC
    URVEDVHAUBUCAHBUDUEULUFUGUHUIUJUKUSURUSURVGADBBEUMUNUOUPUQ $.

  ${
    $d x y $.  $d x A $.  $d x ps $.  $d x ch $.  $d x th $.  $d x ta $.
    $d y ph $.
    $( Substitutions. $)
    indpi.1 $e |- ( x = 1o -> ( ph <-> ps ) ) $.
    indpi.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    indpi.3 $e |- ( x = ( y +N 1o ) -> ( ph <-> th ) ) $.
    indpi.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Basis. $)
    indpi.5 $e |- ps $.
    $( Induction step. $)
    indpi.6 $e |- ( y e. N. -> ( ch -> th ) ) $.
    $( Principle of Finite Induction on positive integers.  (Contributed by NM,
       23-Mar-1996.)  (New usage is discouraged.) $)
    indpi $p |- ( A e. N. -> ta ) $=
      ( cnpi wcel c1o clti wi wa wceq wbr cv 1pi elexi eqvinc mpbiri eqcoms a1i
      gencl com wss pinn c0 elni2 csuc word nnord ordsucss df-1o sseq1i syl6ibr
      syl imp sylbi 1onn eleq1 breq2 anbi12d imbi12d wne peano2b syl6bbr syl5ib
      adantrd wb ltpiord mpan biimpa eleq2 wo elsuci ne0i 0lt1o mpbii jaoi syl5
      syl6bi jcad elni simpr cpli co addclpi mpan2 coa addpiord con0 pion eqtrd
      oa1suc eqeq2d eleq1d syl5ibr pm2.43d biimprd anim12d impbid imbi1d adantr
      biimparc syl6bir com12 pm5.74d bitrd 2a1i pm5.32i simplbi2 imim1d ltrelpi
      brel ibi jao mpi syl6com impd cvv 0ex sucssel ax-mp sylbir sylan2 adantlr
      ex syl9r findsg mpanl2 syl2anc expd pm2.43i wn nlt1pi ltsopi sotric mtbii
      wor notnotrd mpjaod ) HOPZHQUAZEQHRUBZUUJESUUIEQHAEFUCZQUAZQHUAFUULHFQHQO
      UDUEZUFLUUMABMIUGZUJUHUIUUIUUKESUUIUUIUUKEUUIHUKPZQHULZUUIUUKTZESZHUMUUIU
      UPUNHPZTUUQHUOUUPUUTUUQUUPUUTUNUPZHULZUUQUUPHUQUUTUVBSHURUNHUSVCQUVAHUTVA
      VBVDVEUUPQUKPZUUQUUSVFUULOPZQUULRUBZTZASZQOPZQQRUBZTZBSGUCZOPZQUVKRUBZTZC
      SZUVLQUVKUPZRUBZTZDSZUUSFGHQUUMUVFUVJABUUMUVDUVHUVEUVIUULQOVGUULQQRVHVIIV
      JUULUVKUAZUVFUVNACUVTUVDUVLUVEUVMUULUVKOVGUULUVKQRVHVIJVJUULUVPUAZUVGUVRA
      SUVSUWAUVFUVRAUWAUVFUVRUWAUVFUVLUVQUWAUVFUVKUKPZUVKUNVKZTUVLUWAUVFUWBUWCU
      WAUVDUWBUVEUVDUULUKPZUWAUWBUULUMUWAUWDUVPUKPUWBUULUVPUKVGUVKVLVMVNVOUVFQU
      ULPZUWAUWCUVDUVEUWEUVHUVDUVEUWEVPUDQUULVQVRVSUWAUWEQUVPPZUWCUULUVPQVTUWFQ
      UVKPZQUVKUAZWAZUWCQUVKWBZUWGUWCUWHUVKQWCUWHUNUVKPZUWCUWHUNQPUWKWDQUVKUNVT
      WEUVKUNWCVCWFVCWHWGWIUVKWJVBUVFUVEUWAUVQUVDUVEWKUULUVPQRVHZVNWIUWAUVLUVDU
      VQUVEUWAUVLUVDUWAUVLUVLUVDSUVLUVDUWAUVLTZUVKQWLWMZOPZUVLUVHUWOUDUVKQWNWOU
      WMUULUWNOUVLUULUWNUAZUWAUVLUWNUVPUULUVLUWNUVKQWPWMZUVPUVLUVHUWNUWQUAUDUVK
      QWQWOUVLUVKWRPUWQUVPUAUVKWSUVKXAVCWTXBZXKXCXDYNXEUWAUVEUVQUWLXFXGXHXIUWAU
      VRADUVRUWAADVPZUVLUWAUWSSUVQUVLUWAUWPUWSUWRKXLXJXMXNXOUULHUAZUVFUURAEUWTU
      VDUUIUVEUUKUULHOVGUULHQRVHVILVJBUVCUVJMXPUWBQUVKULZUVOUVSSUVCUVOUVRCUWBUX
      ATDUVOUVLUVQCUVLUVOUWGCSZUVQCSUVLUWGUVNCUVNUVLUWGUVLUVMUWGUVHUVLUVMUWGVPU
      DQUVKVQVRXQXRXSUVQUWFUXBCUVQUWFUVQUVHUVPOPTUVQUWFVPQUVPOORXTYAQUVPVQVCYBU
      WFUWIUXBCUWJUXBUWHCSUWICSACUUMUWHFUULUVKFQUVKUUNUFJUUOUJUWGCUWHYCYDWGWGYE
      YFUXAUWBUWKCDSZUXAUVAUVKULZUWKQUVAUVKUTVAUNYGPUXDUWKSYHUNUVKYGYIYJVEUWBUW
      KTUVLUXCUVKUONYKYLYOYMYPYQYRYSYTUUIUUJUUKWAZUUIHQRUBZUXEUUAZHUUBUUIUVHUXF
      UXGVPZUDORUUFUUIUVHTUXHUUCOHQRUUDVRWOUUEUUGUUH $.
  $}

  ${
    $d x y z w v u $.
    $( Define pre-addition on positive fractions.  This is a "temporary" set
       used in the construction of complex numbers ~ df-c , and is intended to
       be used only by the construction.  This "pre-addition" operation works
       directly with ordered pairs of integers.  The actual positive fraction
       addition ` +Q ` ( ~ df-plq ) works with the equivalence classes of these
       ordered pairs determined by the equivalence relation ` ~Q `
       ( ~ df-enq ).  (Analogous remarks apply to the other "pre-" operations
       in the complex number construction that follows.)  From Proposition
       9-2.3 of [Gleason] p. 117.  (Contributed by NM, 28-Aug-1995.)
       (New usage is discouraged.) $)
    df-plpq $a |- +pQ = ( x e. ( N. X. N. ) , y e. ( N. X. N. ) |->
      <. ( ( ( 1st ` x ) .N ( 2nd ` y ) ) +N
           ( ( 1st ` y ) .N ( 2nd ` x ) ) ) ,
           ( ( 2nd ` x ) .N ( 2nd ` y ) ) >. ) $.

    $( Define pre-multiplication on positive fractions.  This is a "temporary"
       set used in the construction of complex numbers ~ df-c , and is intended
       to be used only by the construction.  From Proposition 9-2.4 of
       [Gleason] p. 119.  (Contributed by NM, 28-Aug-1995.)
       (New usage is discouraged.) $)
    df-mpq $a |- .pQ = ( x e. ( N. X. N. ) , y e. ( N. X. N. ) |->
        <. ( ( 1st ` x ) .N ( 1st ` y ) ) ,
           ( ( 2nd ` x ) .N ( 2nd ` y ) ) >. ) $.

    $( Define pre-ordering relation on positive fractions.  This is a
       "temporary" set used in the construction of complex numbers ~ df-c , and
       is intended to be used only by the construction.  Similar to Definition
       5 of [Suppes] p. 162.  (Contributed by NM, 28-Aug-1995.)
       (New usage is discouraged.) $)
    df-ltpq $a |- <pQ = { <. x , y >. |
      ( ( x e. ( N. X. N. ) /\ y e. ( N. X. N. ) ) /\
        ( ( 1st ` x ) .N ( 2nd ` y ) ) <N ( ( 1st ` y ) .N ( 2nd ` x ) ) ) } $.

    $( Define equivalence relation for positive fractions.  This is a
       "temporary" set used in the construction of complex numbers ~ df-c , and
       is intended to be used only by the construction.  From Proposition 9-2.1
       of [Gleason] p. 117.  (Contributed by NM, 27-Aug-1995.)
       (New usage is discouraged.) $)
    df-enq $a |- ~Q = { <. x , y >. | ( ( x e. ( N. X. N. ) /\
                   y e. ( N. X. N. ) ) /\ E. z E. w E. v E. u
                   ( ( x = <. z , w >. /\ y = <. v , u >. ) /\
                   ( z .N u ) = ( w .N v ) ) ) } $.

    $( Define class of positive fractions.  This is a "temporary" set used in
       the construction of complex numbers ~ df-c , and is intended to be used
       only by the construction.  From Proposition 9-2.2 of [Gleason] p. 117.
       (Contributed by NM, 16-Aug-1995.)  (New usage is discouraged.) $)
    df-nq $a |- Q. = { x e. ( N. X. N. ) | A. y e. ( N. X. N. )
      ( x ~Q y -> -. ( 2nd ` y ) <N ( 2nd ` x ) ) } $.

    $( Define a convenience function that "reduces" a fraction to lowest terms.
       Note that in this form, it is not obviously a function; we prove this in
       ~ nqerf .  (Contributed by NM, 27-Aug-1995.)
       (New usage is discouraged.) $)
    df-erq $a |- /Q = ( ~Q i^i ( ( N. X. N. ) X. Q. ) ) $.

    $( Define addition on positive fractions.  This is a "temporary" set used
       in the construction of complex numbers ~ df-c , and is intended to be
       used only by the construction.  From Proposition 9-2.3 of [Gleason]
       p. 117.  (Contributed by NM, 24-Aug-1995.)
       (New usage is discouraged.) $)
    df-plq $a |- +Q = ( ( /Q o. +pQ ) |` ( Q. X. Q. ) ) $.

    $( Define multiplication on positive fractions.  This is a "temporary" set
       used in the construction of complex numbers ~ df-c , and is intended to
       be used only by the construction.  From Proposition 9-2.4 of [Gleason]
       p. 119.  (Contributed by NM, 24-Aug-1995.)
       (New usage is discouraged.) $)
    df-mq $a |- .Q = ( ( /Q o. .pQ ) |` ( Q. X. Q. ) ) $.

    $( Define positive fraction constant 1.  This is a "temporary" set used in
       the construction of complex numbers ~ df-c , and is intended to be used
       only by the construction.  From Proposition 9-2.2 of [Gleason] p. 117.
       (Contributed by NM, 29-Oct-1995.)  (New usage is discouraged.) $)
    df-1nq $a |- 1Q = <. 1o , 1o >. $.

    $( Define reciprocal on positive fractions.  It means the same thing as one
       divided by the argument (although we don't define full division since we
       will never need it).  This is a "temporary" set used in the construction
       of complex numbers ~ df-c , and is intended to be used only by the
       construction.  From Proposition 9-2.5 of [Gleason] p. 119, who uses an
       asterisk to denote this unary operation.  (Contributed by NM,
       6-Mar-1996.)  (New usage is discouraged.) $)
    df-rq $a |- *Q = ( `' .Q " { 1Q } ) $.

    $( Define ordering relation on positive fractions.  This is a "temporary"
       set used in the construction of complex numbers ~ df-c , and is intended
       to be used only by the construction.  Similar to Definition 5 of
       [Suppes] p. 162.  (Contributed by NM, 13-Feb-1996.)
       (New usage is discouraged.) $)
    df-ltnq $a |- <Q = ( <pQ i^i ( Q. X. Q. ) ) $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u D $.
    $( Equivalence relation for positive fractions in terms of positive
       integers.  (Contributed by NM, 27-Aug-1995.)
       (New usage is discouraged.) $)
    enqbreq $p |- ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. ) ) ->
          ( <. A , B >. ~Q <. C , D >. <-> ( A .N D ) = ( B .N C ) ) ) $=
      ( vx vy vz vw vv vu cmi ceq cnpi df-enq ecopoveq ) EFGHIJABCDKLMEFGHIJNO
      $.
  $}

  $( Equivalence relation for positive fractions in terms of positive integers.
     (Contributed by Mario Carneiro, 8-May-2013.)
     (New usage is discouraged.) $)
  enqbreq2 $p |- ( ( A e. ( N. X. N. ) /\ B e. ( N. X. N. ) ) ->
        ( A ~Q B <-> ( ( 1st ` A ) .N ( 2nd ` B ) ) =
                     ( ( 1st ` B ) .N ( 2nd ` A ) ) ) ) $=
    ( cnpi cxp wcel wa ceq wbr c1st cfv c2nd cop co wceq 1st2nd2 wb xp1st xp2nd
    cmi jca breqan12d enqbreq syl2an mulcompi eqeq2i a1i 3bitrd ) ACCDZEZBUHEZF
    ZABGHAIJZAKJZLZBIJZBKJZLZGHZULUPSMZUMUOSMZNZUSUOUMSMZNZUIUJAUNBUQGACCOBCCOU
    AUIULCEZUMCEZFUOCEZUPCEZFURVAPUJUIVDVEACCQACCRTUJVFVGBCCQBCCRTULUMUOUPUBUCV
    AVCPUKUTVBUSUMUOUDUEUFUG $.

  ${
    $d x y z w v u $.
    $( The equivalence relation for positive fractions is an equivalence
       relation.  Proposition 9-2.1 of [Gleason] p. 117.  (Contributed by NM,
       27-Aug-1995.)  (Revised by Mario Carneiro, 6-Jul-2015.)
       (New usage is discouraged.) $)
    enqer $p |- ~Q Er ( N. X. N. ) $=
      ( vx vy vz vw vv vu cmi ceq cnpi df-enq cv mulcompi mulclpi mulasspi wcel
      wa co wceq mulcanpi biimpd ecopover ) ABCDEFGHIABCDEFJAKZBKZLUBUCMUBUCCKZ
      NUBIOUCIOPUBUCGQUBUDGQRUCUDRUBUCUDSTUA $.
  $}

  ${
    $d x y z w v u $.
    $( The equivalence relation for positive fractions exists.  (Contributed by
       NM, 3-Sep-1995.)  (New usage is discouraged.) $)
    enqex $p |- ~Q e. _V $=
      ( vx vy vz vw vv vu ceq cnpi cxp niex xpex cv wcel wa cop wceq cmi co wex
      copab df-enq opabssxp eqsstri ssexi ) GHHIZUEIZUEUEHHJJKZUGKGALZUEMBLZUEM
      NUHCLZDLZOPUIELZFLZOPNUJUMQRUKULQRPNFSESDSCSZNABTUFABCDEFUAUNABUEUEUBUCUD
      $.
  $}

  ${
    $d x y $.
    $( The class of positive fractions exists.  (Contributed by NM,
       16-Aug-1995.)  (Revised by Mario Carneiro, 27-Apr-2013.)
       (New usage is discouraged.) $)
    nqex $p |- Q. e. _V $=
      ( vy vx cv ceq wbr c2nd cfv clti wn wi cnpi cxp wral cnq niex xpex rabex2
      df-nq ) ACZBCZDETFGSFGHEIJBKKLZMAUANABRKKOOPQ $.

    $( The empty set is not a positive fraction.  (Contributed by NM,
       24-Aug-1995.)  (Revised by Mario Carneiro, 27-Apr-2013.)
       (New usage is discouraged.) $)
    0nnq $p |- -. (/) e. Q. $=
      ( vy vx c0 cnq wcel cnpi cxp 0nelxp cv ceq wbr c2nd cfv clti wn wral crab
      wi df-nq ssrab2 eqsstri sseli mto ) CDECFFGZEFFHDUDCDAIZBIZJKUFLMUELMNKOR
      BUDPZAUDQUDABSUGAUDTUAUBUC $.

    $( Each positive fraction is an ordered pair of positive integers (the
       numerator and denominator, in "lowest terms".  (Contributed by Mario
       Carneiro, 28-Apr-2013.)  (New usage is discouraged.) $)
    elpqn $p |- ( A e. Q. -> A e. ( N. X. N. ) ) $=
      ( vy vx cnq cnpi cxp cv ceq wbr c2nd cfv clti wn wral crab ssrab2 eqsstri
      wi df-nq sseli ) DEEFZADBGZCGZHIUCJKUBJKLIMRCUANZBUAOUABCSUDBUAPQT $.

    $( Positive fraction 'less than' is a relation on positive fractions.
       (Contributed by NM, 14-Feb-1996.)  (Revised by Mario Carneiro,
       27-Apr-2013.)  (New usage is discouraged.) $)
    ltrelnq $p |- <Q C_ ( Q. X. Q. ) $=
      ( cltq cltpq cnq cxp cin df-ltnq inss2 eqsstri ) ABCCDZEIFBIGH $.
  $}

  ${
    $d A x y $.
    $( The representatives of positive integers as positive fractions.
       (Contributed by NM, 29-Oct-1995.)  (Revised by Mario Carneiro,
       6-May-2013.)  (New usage is discouraged.) $)
    pinq $p |- ( A e. N. -> <. A , 1o >. e. Q. ) $=
      ( vx vy cnpi wcel c1o cv ceq wbr c2nd cfv clti wn wral 1pi mpan2 cvv wceq
      wi breq2d cop cxp crab opelxpi nlt1pi elexi op2ndg mtbiri ralrimivw breq1
      cnq a1d fveq2 notbid imbi12d ralbidv elrab sylanbrc df-nq syl6eleqr ) ADE
      ZAFUAZBGZCGZHIZVDJKZVCJKZLIZMZSZCDDUBZNZBVKUCZUKVAVBVKEZVBVDHIZVFVBJKZLIZ
      MZSZCVKNZVBVMEVAFDEVNOAFDDUDPVAVSCVKVAVRVOVAVQVFFLIVFUEVAVPFVFLVAFQEVPFRF
      DOUFAFDQUGPTUHULUIVLVTBVBVKVCVBRZVJVSCVKWAVEVOVIVRVCVBVDHUJWAVHVQWAVGVPVF
      LVCVBJUMTUNUOUPUQURBCUSUT $.
  $}

  $( The positive fraction 'one'.  (Contributed by NM, 29-Oct-1995.)  (Revised
     by Mario Carneiro, 28-Apr-2013.)  (New usage is discouraged.) $)
  1nq $p |- 1Q e. Q. $=
    ( c1q c1o cop cnq df-1nq cnpi wcel 1pi pinq ax-mp eqeltri ) ABBCZDEBFGLDGHB
    IJK $.

  ${
    $d A a b x y $.  $d a b c d m x z $.  $d m x y z $.
    $( There is a unique element of ` Q. ` equivalent to each element of
       ` N. X. N. ` .  (Contributed by Mario Carneiro, 28-Apr-2013.)
       (New usage is discouraged.) $)
    nqereu $p |- ( A e. ( N. X. N. ) -> E! x e. Q. x ~Q A ) $=
      ( vy va vb vm vd vz cnpi wcel ceq wbr cnq wrex wa wi wral wceq clti wn vc
      cxp cv weq wreu cop elxp2 wel con0 csuc pion suceloni syl vex sucid eleq2
      rspcev sylancl adantl elequ2 imbi1d 2ralbidv breq2d rexbidv imbi2d elequ1
      opeq1 opeq2 imbi12d cbvral2v ralbii c2nd cfv rexnal pm4.63 ltpiord ancoms
      xp2nd sylan2 adantll anbi2d syl5bb rexbidva syl5bbr w3a c1st xp1st rspccv
      wb ralbidv eleq1 syl6 imp syl5 mpdi 1st2nd2 3ad2ant2 mpbird wer enqer a1i
      3imp simpr simpl ertr4d reximdv syl5com 3expia com23 impd rexlimdva com3r
      ex syl6bi com13 cmi co mulcompi enqbreq anidms mpbiri breq1 op2ndd notbid
      opelxpi elrab2 com12 rsp breq2 elpqn fveq2 simprbi breq1d rspcva ad2antrr
      syl2an ad2antlr syl2anc mpbid jca df-nq simplbi2 expcom sylsyld ralrimivv
      pm2.61d2 sylbir tfis2 rexlimdv syl5ibrcom rexlimivv sylbi anbi12d syl2anr
      a1dd mpd wo ersym rabeq2i wor ltsopi sotric mpan notnotb syl6bbr ord mt3d
      oveq2d syl5eq breqan12d bitrd biimpa eqtrd mulcanpi opeq12d rgen2a vtoclg
      id 3eqtr4d reu4 sylanbrc ) BIIUBZJZAUCZBKLZAMNZUWECUCZBKLZOZACUDZPZCMQAMQ
      ZUWEAMUEUWCBDUCZEUCZUFZRZEINDINUWFDEBIIUGUWPUWFDEIIUWMIJZUWNIJZOZUWFUWPUW
      DUWOKLZAMNZUWSECUHZCUINZUXAUWRUXCUWQUWRUWNUJZUIJZUWNUXDJZUXCUWRUWNUIJUXEU
      WNUKUWNULUMUWNEUNZUOUXBUXFCUXDUIUWGUXDUWNUPUQURUSUWSUXBUXACUIUWGUIJZUWSUX
      BUXAPZUXHUWQUWRUXIUXHUWQUXIEIQZUWRUXIPUXHUXJDIQZUWQUXJPUXKEFUHZUXAPZEIQDI
      QZCFCFUDZUXIUXMDEIIUXOUXBUXLUXACFEUTVAVBUXNFUWGQZUXKPUXHUXPGFUHZUWDUAUCZG
      UCZUFZKLZAMNZPZGIQUAIQZFUWGQZUXKUYDUXNFUWGUYCUXMUXQUWDUWMUXSUFZKLZAMNZPUA
      GDEIIUADUDZUYBUYHUXQUYIUYAUYGAMUYIUXTUYFUWDKUXRUWMUXSVGVCVDVEGEUDZUXQUXLU
      YHUXAGEFVFUYJUYGUWTAMUYJUYFUWOUWDKUXSUWNUWMVHVCVDVIVJVKUYEUXIDEIIUYEUWOHU
      CZKLZUYKVLVMZUWNSLZTZPZHUWBQZUWSUXIPUWSUYQTZUYEUXIUWSUYRUYLUYMUWNJZOZHUWB
      NZUYEUXIPUYRUYPTZHUWBNUWSVUAUYPHUWBVNUWSVUBUYTHUWBVUBUYLUYNOUWSUYKUWBJZOZ
      UYTUYLUYNVOVUDUYNUYSUYLUWRVUCUYNUYSWIZUWQVUCUWRUYMIJZVUEUYKIIVRZVUFUWRVUE
      UYMUWNVPVQVSVTWAWBWCWDUYEUXBVUAUXAUYEUXBVUAUXAPUYEUXBOZUYTUXAHUWBVUHVUCOZ
      UYLUYSUXAVUIUYSUYLUXAVUHVUCUYSUYLUXAPVUHVUCUYSWEZUWDUYKKLZAMNZUYLUXAVUJVU
      LUWDUYKWFVMZUYMUFZKLZAMNZVUHVUCUYSVUPVUHVUCVUFUYSVUPPZVUGVUCVUMIJZVUHVUFV
      UQPZUYKIIWGUYEUXBVURVUSPZUYEUXBGEUHZUYBPZGIQZUAIQZVUTUYDVVDFUWNUWGFEUDZUY
      CVVBUAGIIVVEUXQVVAUYBFEGUTVAVBWHVVDVURVVAUWDVUMUXSUFZKLZAMNZPZGIQZVUSVVCV
      VJUAVUMIUXRVUMRZVVBVVIGIVVKUYBVVHVVAVVKUYAVVGAMVVKUXTVVFUWDKUXRVUMUXSVGVC
      VDVEWJWHVVIVUQGUYMIUXSUYMRZVVAUYSVVHVUPUXSUYMUWNWKVVLVVGVUOAMVVLVVFVUNUWD
      KUXSUYMVUMVHVCVDVIWHWLWLWMWNWOXBVUCVUHVULVUPWIUYSVUCVUKVUOAMVUCUYKVUNUWDK
      UYKIIWPVCVDWQWRUYLVUKUWTAMUYLVUKUWTUYLVUKOZUWDUYKUWOKUWBUWBKWSZVVMWTXAUYL
      VUKXCUYLVUKXDXEXMXFXGXHXIXJXKXMXLXNXOUYQUWSUXAUXBUWSUYQUXAUWSUWOUWOKLZUYQ
      UWOMJZUXAUWSVVOUWMUWNXPXQUWNUWMXPXQRZUWMUWNXRUWSVVOVVQWIUWMUWNUWMUWNXSXTY
      AUWSUWOUWBJZUYQVVPPUWMUWNIIYEVVPVVRUYQUWGUYKKLZUYMUWGVLVMZSLZTZPZHUWBQZUY
      QCUWOUWBMUWGUWORZVWCUYPHUWBVWEVVSUYLVWBUYOUWGUWOUYKKYBVWEVWAUYNVWEVVTUWNU
      YMSUWMUWNUWGDUNUXGYCVCYDVIWJCHUUAZYFUUBUMVVPVVOUXAUWTVVOAUWOMUWDUWOUWOKYB
      UQUUCUUDYGUUOUUFUUEUUGXAUUHUXJDIYHUMUXIEIYHWLXJYGUUIUUPUWPUWEUWTAMBUWOUWD
      KYIVDUUJUUKUULUWDUWMKLZUWGUWMKLZOZUWJPZCMQAMQUWLDBUWBUWMBRZVWJUWKACMMVWKV
      WIUWIUWJVWKVWGUWEVWHUWHUWMBUWDKYIUWMBUWGKYIUUMVAVBVWJACMVWIUWDUWGKLZUWDMJ
      ZUWGMJZOZUWJVWIUWDUWMUWGKUWBVVNVWIWTXAVWGVWHXDVWGVWHXCXEVWOVWLUWJVWOVWLOZ
      UWDWFVMZUWDVLVMZUFZUWGWFVMZVVTUFZUWDUWGVWPVWQVWTVWRVVTVWPVWRVWQXPXQZVWRVW
      TXPXQZRZVWQVWTRZVWPVXBVWQVVTXPXQZVXCVWPVXBVWQVWRXPXQVXFVWRVWQXRVWPVWRVVTV
      WQXPVWPVWRVVTRZVVTVWRSLZVWOVWLVXHTZVWNUWGUWBJZVUKUYMVWRSLZTZPZHUWBQZVWLVX
      IPZVWMUWGYJZVWMUWDUWBJZVXNVWDVXNCUWDUWBMCAUDZVWCVXMHUWBVXRVVSVUKVWBVXLUWG
      UWDUYKKYBVXRVWAVXKVXRVVTVWRUYMSUWGUWDVLYKVCYDVIWJVWFYFYLVXMVXOHUWGUWBHCUD
      ZVUKVWLVXLVXIUYKUWGUWDKYIVXSVXKVXHVXSUYMVVTVWRSUYKUWGVLYKYMYDVIYNUUNWMVWP
      VXGVXHVWPVWRVVTSLZTZVXGVXHUUQZVWOVWLVYAVWLUWGUWDKLZVWOVYAVWLUWDUWGKUWBVVN
      VWLWTXAVWLUVRUURVWMVXQVWDVYCVYAPZVWNUWDYJZVWNVXJVWDVWDCMUWBVWFUUSYLVWCVYD
      HUWDUWBHAUDZVVSVYCVWBVYAUYKUWDUWGKYIVYFVWAVXTVYFUYMVWRVVTSUYKUWDVLYKYMYDV
      IYNYPWNWMVWPVWRIJZVVTIJZVYAVYBWIVWMVYGVWNVWLVWMVXQVYGVYEUWDIIVRZUMYOVWNVY
      HVWMVWLVWNVXJVYHVXPUWGIIVRZUMYQVYGVYHOZVYAVYBTZTVYBVYKVXTVYLISUUTVYKVXTVY
      LWIUVAIVWRVVTSUVBUVCYDVYBUVDUVEYRYSUVFUVGZUVHUVIVWOVWLVXFVXCRZVWMVXQVXJVW
      LVYNWIVWNVYEVXPVXQVXJOVWLVWSVXAKLZVYNVXQVXJUWDVWSUWGVXAKUWDIIWPZUWGIIWPZU
      VJVXQVWQIJZVYGOVWTIJZVYHOVYOVYNWIVXJVXQVYRVYGUWDIIWGZVYIYTVXJVYSVYHUWGIIW
      GVYJYTVWQVWRVWTVVTXSYPUVKYPUVLUVMVWPVXQVXDVXEWIZVWMVXQVWNVWLVYEYOZVXQVYGV
      YRWUAVYIVYTVWRVWQVWTUVNYRUMYSVYMUVOVWPVXQUWDVWSRWUBVYPUMVWPVXJUWGVXARVWNV
      XJVWMVWLVXPYQVYQUMUVSXMWNUVPUVQUWEUWHACMUWDUWGBKYBUVTUWA $.
  $}

  ${
    $d x y $.
    $( Corollary of ~ nqereu : the function ` /Q ` is actually a function.
       (Contributed by Mario Carneiro, 6-May-2013.)
       (New usage is discouraged.) $)
    nqerf $p |- /Q : ( N. X. N. ) --> Q. $=
      ( vx vy cnpi cxp cnq cerq crn wss cdm wceq cv wbr wmo cvv ceq df-erq wcel
      wa ax-mp mpbir2an wf wfn wfun wrel wal cin inss2 eqsstri xpss sstri mpbir
      df-rel wi wreu nqereu weu df-reu eumo sylbi syl moanimv simpld simprd wer
      brel enqer a1i inss1 ssbri ersym jca32 moimi ax-gen dffun6 c1q c0 wne 1nq
      dmss ne0i dmxp mp2b sseqtri wex wrex reurex simpll simplr simpr w3a breqi
      brinxp2 bitri syl3anbrc ex reximdva rexex syl56 mpd vex eldm sylibr ssriv
      eqssi df-fn rnss rnxpss df-f ) CCDZEFUAFXIUBZFGZEHXJFUCZFIZXIJXLFUDZAKZBK
      ZFLZBMZAUEXNFNNDZHFXIEDZXSFOXTUFZXTPOXTUGUHZXIEUIUJFULUKXRAXOXIQZXPEQZXPX
      OOLZRZRZBMZXRYHYCYFBMZUMYCYEBEUNZYIBXOUOZYJYFBUPYIYEBEUQYFBURUSUTYCYFBVAU
      KXQYGBXQYCYDYEXQYCYDXOXPXIEFYBVEZVBXQYCYDYLVCXQXOXPOXIXIOVDZXQVFVGFOXOXPF
      YAOPOXTVHUHVIVJVKVLSVMABFVNTXMXIXMXTIZXIFXTHZXMYNHYBFXTVSSVOEQEVPVQYNXIJV
      REVOVTXIEWAWBWCAXIXMYCXQBWDZXOXMQYCYJYPYKYJYEBEWEYCXQBEWEYPYEBEWFYCYEXQBE
      YCYDRZYEXQYQYERZYCYDXOXPOLZXQYCYDYEWGYCYDYEWHYRXPXOOXIYMYRVFVGYQYEWIVJXQX
      OXPYALYCYDYSWJXOXPFYAPWKXOXPXIEOWLWMWNWOWPXQBEWQWRWSBXOFAWTXAXBXCXDFXIXET
      XKXTGZEYOXKYTHYBFXTXFSXIEXGUJXIEFXHT $.
  $}

  $( Corollary of ~ nqereu : closure of ` /Q ` .  (Contributed by Mario
     Carneiro, 6-May-2013.)  (New usage is discouraged.) $)
  nqercl $p |- ( A e. ( N. X. N. ) -> ( /Q ` A ) e. Q. ) $=
    ( cnpi cxp cnq cerq nqerf ffvelrni ) BBCDAEFG $.

  $( Any member of ` ( N. X. N. ) ` relates to the representative of its
     equivalence class.  (Contributed by Mario Carneiro, 6-May-2013.)
     (New usage is discouraged.) $)
  nqerrel $p |- ( A e. ( N. X. N. ) -> A ~Q ( /Q ` A ) ) $=
    ( cnpi cxp wcel cerq cfv wbr ceq wceq wfn wb cnq wf nqerf ffn ax-mp fnbrfvb
    eqid mpan mpbii cin df-erq inss1 eqsstri ssbri syl ) ABBCZDZAAEFZEGZAUIHGUH
    UIUIIZUJUIREUGJZUHUKUJKUGLEMULNUGLEOPUGAUIEQSTEHAUIEHUGLCZUAHUBHUMUCUDUEUF
    $.

  $( Corollary of ~ nqereu : the function ` /Q ` acts as the identity on
     members of ` Q. ` .  (Contributed by Mario Carneiro, 6-May-2013.)
     (New usage is discouraged.) $)
  nqerid $p |- ( A e. Q. -> ( /Q ` A ) = A ) $=
    ( cerq wfun cnq wcel wbr cfv wceq cnpi cxp wf nqerf ffun ax-mp ceq elpqn id
    wer enqer a1i erref cin df-erq breqi brinxp2 bitri syl3anbrc funbrfv mpsyl
    w3a ) BCZADEZAABFZABGAHIIJZDBKUKLUNDBMNULAUNEZULAAOFZUMAPZULQULAOUNUNORULST
    UQUAUMAAOUNDJUBZFUOULUPUJAABURUCUDAAUNDOUEUFUGAABUHUI $.

  ${
    $d A x $.  $d B x $.
    $( Corollary of ~ nqereu : if two fractions are both reduced and
       equivalent, then they are equal.  (Contributed by Mario Carneiro,
       6-May-2013.)  (New usage is discouraged.) $)
    enqeq $p |- ( ( A e. Q. /\ B e. Q. /\ A ~Q B ) -> A = B ) $=
      ( vx cnq wcel ceq wbr w3a wa cv wmo wceq 3simpa wrmo cnpi cxp eleq1 breq1
      wreu anbi12d elpqn 3ad2ant2 nqereu reurmo df-rmo sylib 3simpb simp2 enqer
      3syl wer a1i erref jca moi syl112anc ) ADEZBDEZABFGZHZUQURICJZDEZVABFGZIZ
      CKZUQUSIZURBBFGZIZABLUQURUSMUTVCCDNZVEUTBOOPZEZVCCDSVIURUQVKUSBUAUBZCBUCV
      CCDUDUJVCCDUEUFUQURUSUGUTURVGUQURUSUHUTBFVJVJFUKUTUIULVLUMUNVDVFVHCABDDVA
      ALVBUQVCUSVAADQVAABFRTVABLVBURVCVGVABDQVABBFRTUOUP $.
  $}

  $( The function ` /Q ` acts as a substitute for equivalence classes, and it
     satisfies the fundamental requirement for equivalence representatives: the
     representatives are equal iff the members are equivalent.  (Contributed by
     Mario Carneiro, 6-May-2013.)  (Revised by Mario Carneiro, 12-Aug-2015.)
     (New usage is discouraged.) $)
  nqereq $p |- ( ( A e. ( N. X. N. ) /\ B e. ( N. X. N. ) ) ->
    ( A ~Q B <-> ( /Q ` A ) = ( /Q ` B ) ) ) $=
    ( cnpi cxp wcel wa ceq wbr cerq cfv wceq w3a nqercl 3ad2ant1 3ad2ant2 enqer
    cnq wer a1i nqerrel simp3 ertr3d ertrd syl3anc 3expia adantr simprr breqtrd
    enqeq ad2antrl ertr4d expr impbid ) ACCDZEZBUNEZFABGHZAIJZBIJZKZUOUPUQUTUOU
    PUQLZURQEZUSQEZURUSGHUTUOUPVBUQAMNUPUOVCUQBMOVAURBUSGUNUNGRZVAPSZVAURABGUNV
    EUOUPAURGHZUQATZNUOUPUQUAUBUPUOBUSGHZUQBTZOUCURUSUIUDUEUOUPUTUQUOUPUTFZFZAU
    SBGUNVDVKPSVKAURUSGUOVFVJVGUFUOUPUTUGUHUPVHUOUTVIUJUKULUM $.

  ${
    $d A x y $.  $d B x y $.  $d C y $.
    $( Addition of positive fractions in terms of positive integers.
       (Contributed by Mario Carneiro, 8-May-2013.)
       (New usage is discouraged.) $)
    addpipq2 $p |- ( ( A e. ( N. X. N. ) /\ B e. ( N. X. N. ) ) ->
      ( A +pQ B ) = <. ( ( ( 1st ` A ) .N ( 2nd ` B ) ) +N
                         ( ( 1st ` B ) .N ( 2nd ` A ) ) ) ,
                         ( ( 2nd ` A ) .N ( 2nd ` B ) ) >. ) $=
      ( vx vy cnpi cxp cv c1st cfv c2nd cmi cpli cop wceq oveq1d oveq2d oveq12d
      co fveq2 opeq12d cplpq df-plpq opex ovmpt2 ) CDABEEFZUECGZHIZDGZJIZKRZUHH
      IZUFJIZKRZLRZULUIKRZMAHIZBJIZKRZBHIZAJIZKRZLRZUTUQKRZMUAUPUIKRZUKUTKRZLRZ
      UTUIKRZMUFANZUNVFUOVGVHUJVDUMVELVHUGUPUIKUFAHSOVHULUTUKKUFAJSZPQVHULUTUIK
      VIOTUHBNZVFVBVGVCVJVDURVEVALVJUIUQUPKUHBJSZPVJUKUSUTKUHBHSOQVJUIUQUTKVKPT
      CDUBVBVCUCUD $.

    $( Addition of positive fractions in terms of positive integers.
       (Contributed by Mario Carneiro, 8-May-2013.)
       (New usage is discouraged.) $)
    addpipq $p |- ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. ) ) ->
          ( <. A , B >. +pQ <. C , D >. ) =
            <. ( ( A .N D ) +N ( C .N B ) ) , ( B .N D ) >. ) $=
      ( cnpi wcel wa cop cplpq c1st cfv c2nd cmi cpli cxp opelxpi op1stg op2ndg
      co oveqan12d wceq addpipq2 syl2an oveqan12rd oveq12d opeq12d eqtrd ) AEFB
      EFGZCEFDEFGZGZABHZCDHZISZUKJKZULLKZMSZULJKZUKLKZMSZNSZURUOMSZHZADMSZCBMSZ
      NSZBDMSZHUHUKEEOZFULVGFUMVBUAUIABEEPCDEEPUKULUBUCUJUTVEVAVFUJUPVCUSVDNUHU
      IUNAUODMABEEQCDEERZTUIUHUQCURBMCDEEQABEERZUDUEUHUIURBUODMVIVHTUFUG $.

    $( Addition of positive fractions in terms of positive integers.
       (Contributed by NM, 28-Aug-1995.)  (Revised by Mario Carneiro,
       26-Dec-2014.)  (New usage is discouraged.) $)
    addpqnq $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( A +Q B ) = ( /Q ` ( A +pQ B ) ) ) $=
      ( vx vy cnq wcel cop cplq cfv cplpq cerq co cxp wceq opelxpi cnpi cv c1st
      c2nd cmi wa ccom cres df-plq fveq1i a1i syl wfn cpli df-plpq opex fnmpt2i
      fvres elpqn syl2an fvco2 sylancr 3eqtrd df-ov fveq2i 3eqtr4g ) AEFZBEFZUA
      ZABGZHIZVEJIZKIZABHLABJLZKIVDVFVEKJUBZEEMZUCZIZVEVJIZVHVFVMNVDVEHVLUDUEUF
      VDVEVKFVMVNNABEEOVEVKVJUMUGVDJPPMZVOMZUHVEVPFZVNVHNCDVOVOCQZRIDQZSIZTLVSR
      IVRSIZTLUILZWAVTTLZGJCDUJWBWCUKULVBAVOFBVOFVQVCAUNBUNABVOVOOUOVPKJVEUPUQU
      RABHUSVIVGKABJUSUTVA $.

    $( Multiplication of positive fractions in terms of positive integers.
       (Contributed by Mario Carneiro, 8-May-2013.)
       (New usage is discouraged.) $)
    mulpipq2 $p |- ( ( A e. ( N. X. N. ) /\ B e. ( N. X. N. ) ) ->
      ( A .pQ B ) = <. ( ( 1st ` A ) .N ( 1st ` B ) ) ,
                       ( ( 2nd ` A ) .N ( 2nd ` B ) ) >. ) $=
      ( vx vy cnpi cxp cv c1st cfv cmi c2nd cop cmpq wceq oveq1d opeq12d oveq2d
      co fveq2 df-mpq opex ovmpt2 ) CDABEEFZUCCGZHIZDGZHIZJRZUDKIZUFKIZJRZLAHIZ
      BHIZJRZAKIZBKIZJRZLMULUGJRZUOUJJRZLUDANZUHURUKUSUTUEULUGJUDAHSOUTUIUOUJJU
      DAKSOPUFBNZURUNUSUQVAUGUMULJUFBHSQVAUJUPUOJUFBKSQPCDTUNUQUAUB $.

    $( Multiplication of positive fractions in terms of positive integers.
       (Contributed by NM, 28-Aug-1995.)  (Revised by Mario Carneiro,
       8-May-2013.)  (New usage is discouraged.) $)
    mulpipq $p |- ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. ) ) ->
          ( <. A , B >. .pQ <. C , D >. ) = <. ( A .N C ) , ( B .N D ) >. ) $=
      ( cnpi wcel wa cop cmpq co c1st cfv cmi c2nd cxp opelxpi op1stg oveqan12d
      wceq op2ndg mulpipq2 syl2an opeq12d eqtrd ) AEFBEFGZCEFDEFGZGZABHZCDHZIJZ
      UHKLZUIKLZMJZUHNLZUINLZMJZHZACMJZBDMJZHUEUHEEOZFUIUTFUJUQSUFABEEPCDEEPUHU
      IUAUBUGUMURUPUSUEUFUKAULCMABEEQCDEEQRUEUFUNBUODMABEETCDEETRUCUD $.

    $( Multiplication of positive fractions in terms of positive integers.
       (Contributed by NM, 28-Aug-1995.)  (Revised by Mario Carneiro,
       26-Dec-2014.)  (New usage is discouraged.) $)
    mulpqnq $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( A .Q B ) = ( /Q ` ( A .pQ B ) ) ) $=
      ( vx vy cnq wcel cop cmq cfv cmpq cerq co cxp wceq opelxpi cnpi c1st c2nd
      cv cmi ccom cres df-mq fveq1i a1i fvres syl wfn df-mpq opex fnmpt2i elpqn
      wa syl2an fvco2 sylancr 3eqtrd df-ov fveq2i 3eqtr4g ) AEFZBEFZUMZABGZHIZV
      DJIZKIZABHLABJLZKIVCVEVDKJUAZEEMZUBZIZVDVIIZVGVEVLNVCVDHVKUCUDUEVCVDVJFVL
      VMNABEEOVDVJVIUFUGVCJPPMZVNMZUHVDVOFZVMVGNCDVNVNCSZQIDSZQITLZVQRIVRRITLZG
      JCDUIVSVTUJUKVAAVNFBVNFVPVBAULBULABVNVNOUNVOKJVDUOUPUQABHURVHVFKABJURUSUT
      $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C x y $.  $d D x y $.
    $( Ordering of positive fractions in terms of positive integers.
       (Contributed by Mario Carneiro, 8-May-2013.)
       (New usage is discouraged.) $)
    ordpipq $p |- ( <. A , B >. <pQ <. C , D >. <->
                          ( A .N D ) <N ( C .N B ) ) $=
      ( vx vy wbr cnpi wcel wa cmi clti c1st cfv c2nd wceq fveq2 sylbi sylan9eq
      co cop cltpq cxp cv opex anbi1d opelxp op1stg adantr oveq1d op2ndg oveq2d
      eleq1 breq12d bitrd anbi2d adantl df-ltpq brab simpr ltrelpi brel dmmulpi
      pm5.32da 0npi ndmovrcl anim12i opelxpi ad2ant2rl simprl syl2anc jca ancri
      simplr 3syl impbii bitri ) ABUAZCDUAZUBGVRHHUCZIZVSVTIZJZADKTZCBKTZLGZJZW
      FEUDZVTIZFUDZVTIZJZWHMNZWJONZKTZWJMNZWHONZKTZLGZJZWAWKJZAWNKTZWPBKTZLGZJZ
      WGEFVRVSUBABUECDUEWHVRPZWTXAWSJXEXFWLXAWSXFWIWAWKWHVRVTUMUFUFXFXAWSXDXFXA
      JZWOXBWRXCLXGWMAWNKXFXAWMVRMNZAWHVRMQWAXHAPZWKWAAHIZBHIZJZXIABHHUGZABHHUH
      RUISUJXGWQBWPKXFXAWQVRONZBWHVROQWAXNBPZWKWAXLXOXMABHHUKRUISULUNVDUOWJVSPZ
      XEWCXDJWGXPXAWCXDXPWKWBWAWJVSVTUMUPUFXPWCXDWFXPWCJZXBWDXCWELXQWNDAKXPWCWN
      VSONZDWJVSOQWBXRDPZWAWBCHIZDHIZJZXSCDHHUGZCDHHUKRUQSULXQWPCBKXPWCWPVSMNZC
      WJVSMQWBYDCPZWAWBYBYEYCCDHHUHRUQSUJUNVDUOEFURUSWGWFWCWFUTWFWCWFWDHIZWEHIZ
      JXJYAJZXTXKJZJZWCWDWEHHLVAVBYFYHYGYIADHKVCVEVFCBHKVCVEVFVGYJWAWBXJXKWAYAX
      TABHHVHVIYJXTYAWBYHXTXKVJXJYAYIVNCDHHVHVKVLVOVMVPVQ $.
  $}

  $( Ordering of positive fractions in terms of positive integers.
     (Contributed by NM, 13-Feb-1996.)  (Revised by Mario Carneiro,
     28-Apr-2013.)  (New usage is discouraged.) $)
  ordpinq $p |- ( ( A e. Q. /\ B e. Q. ) ->
      ( A <Q B <-> ( ( 1st ` A ) .N ( 2nd ` B ) ) <N
                    ( ( 1st ` B ) .N ( 2nd ` A ) ) ) ) $=
    ( cnq wcel wa cltpq wbr cltq c1st cfv c2nd cmi co cxp cop cnpi elpqn 1st2nd
    wceq sylancr clti brinxp df-ltnq breqi syl6bbr wrel relxp breqan12d ordpipq
    cin syl6bb bitr3d ) ACDZBCDZEZABFGZABHGZAIJZBKJZLMBIJZAKJZLMUAGZUOUPABFCCNU
    JZGUQABCCFUBABHVCUCUDUEUOUPURVAOZUTUSOZFGVBUMUNAVDBVEFUMPPNZUFZAVFDAVDSPPUG
    ZAQAVFRTUNVGBVFDBVESVHBQBVFRTUHURVAUTUSUIUKUL $.

  ${
    $d A x y $.  $d B y $.
    $( Closure of addition on positive fractions.  (Contributed by NM,
       29-Aug-1995.)  (Revised by Mario Carneiro, 8-May-2013.)
       (New usage is discouraged.) $)
    addpqf $p |- +pQ : ( ( N. X. N. ) X. ( N. X. N. ) ) --> ( N. X. N. ) $=
      ( vx vy cv c1st cfv c2nd cmi co cpli cop cnpi wcel wral cplpq xp1st xp2nd
      cxp mulclpi syl2an syl2anc wf syl2anr addclpi opelxpi rgen2a df-plpq mpbi
      wa fmpt2 ) ACZDEZBCZFEZGHZULDEZUJFEZGHZIHZUPUMGHZJZKKQZLZBVAMAVAMVAVAQVAN
      UAVBABVAUJVALZULVALZUHZURKLZUSKLZVBVEUNKLZUQKLZVFVCUKKLUMKLZVHVDUJKKOULKK
      PZUKUMRSVDUOKLUPKLZVIVCULKKOUJKKPZUOUPRUBUNUQUCTVCVLVJVGVDVMVKUPUMRSURUSK
      KUDTUEABVAVAUTVANABUFUIUG $.

    $( Closure of addition on positive fractions.  (Contributed by NM,
       29-Aug-1995.)  (Revised by Mario Carneiro, 8-May-2013.)
       (New usage is discouraged.) $)
    addclnq $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A +Q B ) e. Q. ) $=
      ( cnq wcel wa cplq co cplpq cerq cfv addpqnq cnpi cxp elpqn addpqf syl2an
      fovcl nqercl syl eqeltrd ) ACDZBCDZEZABFGABHGZIJZCABKUCUDLLMZDZUECDUAAUFD
      BUFDUGUBANBNABUFUFUFHOQPUDRST $.

    $( Closure of multiplication on positive fractions.  (Contributed by NM,
       29-Aug-1995.)  (Revised by Mario Carneiro, 8-May-2013.)
       (New usage is discouraged.) $)
    mulpqf $p |- .pQ : ( ( N. X. N. ) X. ( N. X. N. ) ) --> ( N. X. N. ) $=
      ( vx vy cv c1st cfv cmi co c2nd cop cnpi cxp wcel wral cmpq wf wa mulclpi
      xp1st syl2an xp2nd opelxpi syl2anc rgen2a df-mpq fmpt2 mpbi ) ACZDEZBCZDE
      ZFGZUGHEZUIHEZFGZIZJJKZLZBUPMAUPMUPUPKUPNOUQABUPUGUPLZUIUPLZPUKJLZUNJLZUQ
      URUHJLUJJLUTUSUGJJRUIJJRUHUJQSURULJLUMJLVAUSUGJJTUIJJTULUMQSUKUNJJUAUBUCA
      BUPUPUOUPNABUDUEUF $.

    $( Closure of multiplication on positive fractions.  (Contributed by NM,
       29-Aug-1995.)  (Revised by Mario Carneiro, 8-May-2013.)
       (New usage is discouraged.) $)
    mulclnq $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A .Q B ) e. Q. ) $=
      ( cnq wcel wa cmq co cmpq cerq cfv mulpqnq cnpi elpqn mulpqf fovcl syl2an
      cxp nqercl syl eqeltrd ) ACDZBCDZEZABFGABHGZIJZCABKUCUDLLQZDZUECDUAAUFDBU
      FDUGUBAMBMABUFUFUFHNOPUDRST $.
  $}

  $( Domain of addition on positive fractions.  (Contributed by NM,
     24-Aug-1995.)  (Revised by Mario Carneiro, 10-Jul-2014.)
     (New usage is discouraged.) $)
  addnqf $p |- +Q : ( Q. X. Q. ) --> Q. $=
    ( vx cnq cxp cplq wf cerq cplpq ccom cres cnpi wss nqerf addpqf mp2an elpqn
    fco cv ssriv xpss12 fssres df-plq feq1i mpbir ) BBCZBDEUDBFGHZUDIZEZJJCZUHC
    ZBUEEZUDUIKZUGUHBFEUIUHGEUJLMUIUHBFGPNBUHKZULUKABUHAQORZUMBUHBUHSNUIBUDUETN
    UDBDUFUAUBUC $.

  $( Domain of multiplication on positive fractions.  (Contributed by NM,
     24-Aug-1995.)  (Revised by Mario Carneiro, 10-Jul-2014.)
     (New usage is discouraged.) $)
  mulnqf $p |- .Q : ( Q. X. Q. ) --> Q. $=
    ( vx cnq cxp cmq wf cerq cmpq ccom cres wss nqerf mulpqf fco mp2an cv elpqn
    cnpi ssriv xpss12 fssres df-mq feq1i mpbir ) BBCZBDEUDBFGHZUDIZEZQQCZUHCZBU
    EEZUDUIJZUGUHBFEUIUHGEUJKLUIUHBFGMNBUHJZULUKABUHAOPRZUMBUHBUHSNUIBUDUETNUDB
    DUFUAUBUC $.

  $( Addition of positive fractions is commutative.  (Contributed by NM,
     30-Aug-1995.)  (Revised by Mario Carneiro, 28-Apr-2013.)
     (New usage is discouraged.) $)
  addcompq $p |- ( A +pQ B ) = ( B +pQ A ) $=
    ( cnpi cxp wcel cplpq wceq c1st cfv c2nd cmi cpli addcompi mulcompi opeq12i
    wa co cop addpipq2 ancoms 3eqtr4a addpqf fdmi ndmovcom pm2.61i ) ACCDZEZBUF
    EZPZABFQZBAFQZGUIAHIBJIZKQZBHIAJIZKQZLQZUNULKQZRUOUMLQZULUNKQZRZUJUKUPURUQU
    SUMUOMUNULNOABSUHUGUKUTGBASTUAABUFFUFUFDUFFUBUCUDUE $.

  $( Addition of positive fractions is commutative.  (Contributed by NM,
     30-Aug-1995.)  (Revised by Mario Carneiro, 28-Apr-2013.)
     (New usage is discouraged.) $)
  addcomnq $p |- ( A +Q B ) = ( B +Q A ) $=
    ( cnq wcel wa cplq co wceq cplpq cfv addcompq fveq2i addpqnq ancoms 3eqtr4a
    cerq cxp addnqf fdmi ndmovcom pm2.61i ) ACDZBCDZEZABFGZBAFGZHUDABIGZPJBAIGZ
    PJZUEUFUGUHPABKLABMUCUBUFUIHBAMNOABCFCCQCFRSTUA $.

  $( Multiplication of positive fractions is commutative.  (Contributed by NM,
     31-Aug-1995.)  (Revised by Mario Carneiro, 28-Apr-2013.)
     (New usage is discouraged.) $)
  mulcompq $p |- ( A .pQ B ) = ( B .pQ A ) $=
    ( cnpi cxp wcel wa cmpq co wceq c1st cfv cmi c2nd mulcompi opeq12i mulpipq2
    cop ancoms 3eqtr4a mulpqf fdmi ndmovcom pm2.61i ) ACCDZEZBUDEZFZABGHZBAGHZI
    UGAJKZBJKZLHZAMKZBMKZLHZQUKUJLHZUNUMLHZQZUHUIULUPUOUQUJUKNUMUNNOABPUFUEUIUR
    IBAPRSABUDGUDUDDUDGTUAUBUC $.

  $( Multiplication of positive fractions is commutative.  (Contributed by NM,
     31-Aug-1995.)  (Revised by Mario Carneiro, 28-Apr-2013.)
     (New usage is discouraged.) $)
  mulcomnq $p |- ( A .Q B ) = ( B .Q A ) $=
    ( cnq wcel wa cmq wceq cmpq cerq cfv mulcompq fveq2i mulpqnq ancoms 3eqtr4a
    co cxp mulnqf fdmi ndmovcom pm2.61i ) ACDZBCDZEZABFPZBAFPZGUDABHPZIJBAHPZIJ
    ZUEUFUGUHIABKLABMUCUBUFUIGBAMNOABCFCCQCFRSTUA $.

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( Lemma for ~ adderpq .  (Contributed by Mario Carneiro, 8-May-2013.)
       (New usage is discouraged.) $)
    adderpqlem $p |- ( ( A e. ( N. X. N. ) /\ B e. ( N. X. N. ) /\
        C e. ( N. X. N. ) ) ->
      ( A ~Q B <-> ( A +pQ C ) ~Q ( B +pQ C ) ) ) $=
      ( vx vy cnpi wcel c1st cfv c2nd cmi co cpli wceq mulclpi syl2anc mulcompi
      fvex mulasspi eqtri vz cxp w3a cop cplpq wb xp1st 3ad2ant1 xp2nd 3ad2ant3
      ceq wbr addclpi 3ad2ant2 enqbreq syl22anc 3adant2 3adant1 breq12d 3adant3
      addpipq2 enqbreq2 mulcanpi cv caov4 oveq12i addcompi ovex distrpi caovdir
      3eqtr4i 3eqtrri oveq1i oveq2i eqeq12i addcanpi syl5rbbr 3bitr2d 3bitr4rd
      ) AFFUBZGZBVTGZCVTGZUCZAHIZCJIZKLZCHIZAJIZKLZMLZWIWFKLZUDZBHIZWFKLZWHBJIZ
      KLZMLZWPWFKLZUDZUKULZWKWSKLZWLWRKLZNZACUELZBCUELZUKULABUKULZWDWKFGZWLFGZW
      RFGZWSFGZXAXDUFWDWGFGZWJFGZXHWDWEFGZWFFGZXLWAWBXNWCAFFUGUHZWCWAXOWBCFFUIU
      JZWEWFOPWDWHFGZWIFGZXMWCWAXRWBCFFUGUJZWAWBXSWCAFFUIUHZWHWIOPWGWJUMPWDXSXO
      XIYAXQWIWFOPZWDWOFGZWQFGZXJWDWNFGZXOYCWBWAYEWCBFFUGUNXQWNWFOPWDXRWPFGZYDX
      TWBWAYFWCBFFUIUNZWHWPOPZWOWQUMPWDYFXOXKYGXQWPWFOPWKWLWRWSUOUPWDXEWMXFWTUK
      WAWCXEWMNWBACVAUQWBWCXFWTNWABCVAURUSWDXGWEWPKLZWNWIKLZNZWFWFKLZYIKLZYLYJK
      LZNZXDWAWBXGYKUFWCABVBUTWDYLFGZYIFGZYOYKUFWDXOXOYPXQXQWFWFOPZWDXNYFYQXPYG
      WEWPOPZYLYIYJVCPXDWLWQKLZYMMLZYTYNMLZNZWDYOUUAXBUUBXCYMYTMLWGWSKLZWJWSKLZ
      MLUUAXBYMUUDYTUUEMYMYIYLKLUUDYLYIQDEUAWEWPWFWFKAHRBJRZCJRZDVDZEVDZQZUUHUU
      IUAVDZSZUUGVETYTWIWHKLZWFWPKLZKLUUEDEUAWIWFWHWPKAJRUUGCHRUUJUULUUFVEUUMWJ
      UUNWSKWIWHQWFWPQVFTVFYTYMVGDEUAWGWJWSMKWEWFKVHWHWIKVHWPWFKVHUUJUUHUUIUUKV
      IVJVKYTWLWOKLZMLUUOYTMLUUBXCYTUUOVGYNUUOYTMYNWFWFYJKLZKLZUUOWFWFYJSUUQWLW
      NKLZWFKLZUUOUUQUUPWFKLUUSWFUUPQUUPUURWFKUURWIWFWNKLZKLUUTWIKLUUPWIWFWNSWI
      UUTQWFWNWISVLVMTWLWNWFSTTVNWLWOWQVIVKVOWDYTFGZYMFGZUUCYOUFWDXIYDUVAYBYHWL
      WQOPWDYPYQUVBYRYSYLYIOPYTYMYNVPPVQVRVS $.

    $( Lemma for ~ mulerpq .  (Contributed by Mario Carneiro, 8-May-2013.)
       (New usage is discouraged.) $)
    mulerpqlem $p |- ( ( A e. ( N. X. N. ) /\ B e. ( N. X. N. ) /\
        C e. ( N. X. N. ) ) ->
      ( A ~Q B <-> ( A .pQ C ) ~Q ( B .pQ C ) ) ) $=
      ( vx vy vz cnpi wcel c1st cfv cmi co c2nd ceq wb mulclpi syl2anc mulcompi
      wceq fvex cxp w3a cop cmpq xp1st 3ad2ant1 3ad2ant3 xp2nd 3ad2ant2 enqbreq
      syl22anc mulpipq2 3adant2 3adant1 breq12d enqbreq2 3adant3 mulcanpi caov4
      wbr cv mulasspi eqtri 3eqtri eqeq12i a1i 3bitr2d 3bitr4rd ) AGGUAZHZBVIHZ
      CVIHZUBZAIJZCIJZKLZAMJZCMJZKLZUCZBIJZVOKLZBMJZVRKLZUCZNUTZVPWDKLZVSWBKLZS
      ZACUDLZBCUDLZNUTABNUTZVMVPGHZVSGHZWBGHZWDGHZWFWIOVMVNGHZVOGHZWMVJVKWQVLAG
      GUEUFZVLVJWRVKCGGUEUGZVNVOPQVMVQGHZVRGHZWNVJVKXAVLAGGUHUFVLVJXBVKCGGUHUGZ
      VQVRPQVMWAGHZWRWOVKVJXDVLBGGUEUIWTWAVOPQVMWCGHZXBWPVKVJXEVLBGGUHUIZXCWCVR
      PQVPVSWBWDUJUKVMWJVTWKWENVJVLWJVTSVKACULUMVKVLWKWESVJBCULUNUOVMWLVNWCKLZW
      AVQKLZSZVOVRKLZXGKLZXJXHKLZSZWIVJVKWLXIOVLABUPUQVMXJGHZXGGHZXMXIOVMWRXBXN
      WTXCVOVRPQVMWQXEXOWSXFVNWCPQXJXGXHURQXMWIOVMXKWGXLWHXKXGXJKLWGXJXGRDEFVNW
      CVOVRKAITBMTCITZDVAZEVAZRZXQXRFVAVBZCMTZUSVCXLXHXJKLWBVSKLWHXJXHRDEFWAVQV
      OVRKBITAMTXPXSXTYAUSWBVSRVDVEVFVGVH $.
  $}

  $( Addition is compatible with the equivalence relation.  (Contributed by
     Mario Carneiro, 8-May-2013.)  (New usage is discouraged.) $)
  adderpq $p |- ( ( /Q ` A ) +Q ( /Q ` B ) ) = ( /Q ` ( A +pQ B ) ) $=
    ( cnpi cxp wcel cerq cfv cplq co cplpq wceq cnq ceq wbr wb syl mpbid addpqf
    wn c0 wa nqercl addpqnq syl2an wer enqer nqerrel adantr wi elpqn adderpqlem
    a1i mpd imp adantl mpan9 addcompq 3brtr3g ertrd fovcl nqereq syl2anc eqtr4d
    3exp 0nnq nqerf fdmi eleq2i ndmfv sylnbir eleq1d mtbiri con4i anim12i con3i
    cdm addnqf ndmov 0nelxp mtbir pm2.61i ) ACCDZEZBWBEZUAZAFGZBFGZHIZABJIZFGZK
    WEWHWFWGJIZFGZWJWCWFLEZWGLEZWHWLKWDAUBZBUBZWFWGUCUDWEWIWKMNZWJWLKZWEWIWFBJI
    ZWKMWBWBMUEWEUFULWEAWFMNZWIWSMNZWCWTWDAUGUHWCWDWTXAOZWCWFWBEZWDXBUIWCWMXCWO
    WFUJPZWCXCWDXBAWFBUKVDUMUNQWEBWFJIZWGWFJIZWSWKMWEBWGMNZXEXFMNZWDXGWCBUGUOWC
    XCWDXGXHOZXDWDWGWBEZXCXIUIWDWNXJWPWGUJPZWDXJXCXIBWGWFUKVDUMUPQBWFUQWGWFUQUR
    USWEWIWBEWKWBEZWQWROABWBWBWBJRUTWCXCXJXLWDXDXKWFWGWBWBWBJRUTUDWIWKVAVBQVCWE
    SZWHTWJXMWMWNUAZSWHTKXNWEWMWCWNWDWCWMWCSZWMTLEZVEXOWFTLWCAFVPZEWFTKXQWBAWBL
    FVFVGZVHAFVIVJVKVLVMWDWNWDSZWNXPVEXSWGTLWDBXQEWGTKXQWBBXRVHBFVIVJVKVLVMVNVO
    WFWGLHLLDLHVQVGVRPXMWIXQEZSWJTKXMXTTXQEZYATWBECCVSXQWBTXRVHVTXMWITXQABWBJWB
    WBDWBJRVGVRVKVLWIFVIPVCWA $.

  $( Multiplication is compatible with the equivalence relation.  (Contributed
     by Mario Carneiro, 8-May-2013.)  (New usage is discouraged.) $)
  mulerpq $p |- ( ( /Q ` A ) .Q ( /Q ` B ) ) = ( /Q ` ( A .pQ B ) ) $=
    ( cnpi cxp wcel cerq cfv cmq co cmpq wceq cnq ceq wbr wb mpbid mulpqf wn c0
    syl wa nqercl mulpqnq syl2an wer enqer nqerrel adantr elpqn mulerpqlem 3exp
    a1i mpd imp adantl mpan9 mulcompq 3brtr3g ertrd fovcl nqereq syl2anc eqtr4d
    0nnq cdm nqerf fdmi eleq2i ndmfv sylnbir eleq1d mtbiri con4i anim12i mulnqf
    wi con3i ndmov 0nelxp mtbir pm2.61i ) ACCDZEZBWBEZUAZAFGZBFGZHIZABJIZFGZKWE
    WHWFWGJIZFGZWJWCWFLEZWGLEZWHWLKWDAUBZBUBZWFWGUCUDWEWIWKMNZWJWLKZWEWIWFBJIZW
    KMWBWBMUEWEUFULWEAWFMNZWIWSMNZWCWTWDAUGUHWCWDWTXAOZWCWFWBEZWDXBVPWCWMXCWOWF
    UITZWCXCWDXBAWFBUJUKUMUNPWEBWFJIZWGWFJIZWSWKMWEBWGMNZXEXFMNZWDXGWCBUGUOWCXC
    WDXGXHOZXDWDWGWBEZXCXIVPWDWNXJWPWGUITZWDXJXCXIBWGWFUJUKUMUPPBWFUQWGWFUQURUS
    WEWIWBEWKWBEZWQWROABWBWBWBJQUTWCXCXJXLWDXDXKWFWGWBWBWBJQUTUDWIWKVAVBPVCWERZ
    WHSWJXMWMWNUAZRWHSKXNWEWMWCWNWDWCWMWCRZWMSLEZVDXOWFSLWCAFVEZEWFSKXQWBAWBLFV
    FVGZVHAFVIVJVKVLVMWDWNWDRZWNXPVDXSWGSLWDBXQEWGSKXQWBBXRVHBFVIVJVKVLVMVNVQWF
    WGLHLLDLHVOVGVRTXMWIXQEZRWJSKXMXTSXQEZYASWBECCVSXQWBSXRVHVTXMWISXQABWBJWBWB
    DWBJQVGVRVKVLWIFVITVCWA $.

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( Addition of positive fractions is associative.  (Contributed by NM,
       2-Sep-1995.)  (Revised by Mario Carneiro, 28-Apr-2013.)
       (New usage is discouraged.) $)
    addassnq $p |- ( ( A +Q B ) +Q C ) = ( A +Q ( B +Q C ) ) $=
      ( vx cnq wcel cplq wceq cplpq cerq cfv c2nd cmi cpli cop cnpi syl2anc syl
      co mulclpi vy vz w3a c1st addasspi ovex fvex cv mulcompi distrpi mulasspi
      caovdir oveq1i eqtri caov32 oveq2i oveq12i 3eqtr4i opeq12i elpqn 3ad2ant1
      cxp 3ad2ant2 addpipq2 relxp 3ad2ant3 1st2nd sylancr oveq12d xp1st addclpi
      wrel xp2nd addpipq syl22anc eqtrd 3eqtr4a adderpq 3eqtr4g addpqnq 3adant3
      fveq2d nqerid eqcomd 3adant1 3eqtr4d addnqf fdmi 0nnq ndmovass pm2.61i )
      AEFZBEFZCEFZUCZABGSZCGSZABCGSZGSZHWOABISZJKZCJKZGSZAJKZBCISZJKZGSZWQWSWOW
      TCISZJKAXEISZJKXCXGWOXHXIJWOAUDKZBLKZMSZBUDKZALKZMSZNSZCLKZMSZCUDKZXNXKMS
      ZMSZNSZXTXQMSZOZXJXKXQMSZMSZXMXQMSZXSXKMSZNSZXNMSZNSZXNYEMSZOZXHXIYBYKYCY
      LYFXOXQMSZNSZYANSYFYNYANSZNSYBYKYFYNYAUEXRYOYANXRXLXQMSZYNNSYODUAUBXLXOXQ
      NMXJXKMUFXMXNMUFCLUGZDUHZUAUHZUIZYSYTUBUHZUJZULYQYFYNNXJXKXQUKUMUNUMYJYPY
      FNYJYGXNMSZYHXNMSZNSYPDUAUBYGYHXNNMXMXQMUFXSXKMUFALUGZUUAUUCULUUDYNUUEYAN
      DUAUBXMXQXNMBUDUGYRUUFUUAYSYTUUBUKUOUUEXSXKXNMSZMSYAXSXKXNUKUUGXTXSMXKXNU
      IUPUNUQUNUPURXNXKXQUKUSWOXHXPXTOZXSXQOZISZYDWOWTUUHCUUIIWOAPPVBZFZBUUKFZW
      TUUHHWLWMUULWNAUTVAZWMWLUUMWNBUTVCZABVDQWOUUKVLZCUUKFZCUUIHPPVEZWNWLUUQWM
      CUTVFZCUUKVGVHVIWOXPPFZXTPFZXSPFZXQPFZUUJYDHWOXLPFZXOPFZUUTWOXJPFZXKPFZUV
      DWOUULUVFUUNAPPVJRZWOUUMUVGUUOBPPVMRZXJXKTQWOXMPFZXNPFZUVEWOUUMUVJUUOBPPV
      JRZWOUULUVKUUNAPPVMRZXMXNTQXLXOVKQWOUVKUVGUVAUVMUVIXNXKTQWOUUQUVBUUSCPPVJ
      RZWOUUQUVCUUSCPPVMRZXPXTXSXQVNVOVPWOXIXJXNOZYIYEOZISZYMWOAUVPXEUVQIWOUUPU
      ULAUVPHUURUUNAUUKVGVHWOUUMUUQXEUVQHUUOUUSBCVDQVIWOUVFUVKYIPFZYEPFZUVRYMHU
      VHUVMWOYGPFZYHPFZUVSWOUVJUVCUWAUVLUVOXMXQTQWOUVBUVGUWBUVNUVIXSXKTQYGYHVKQ
      WOUVGUVCUVTUVIUVOXKXQTQXJXNYIYEVNVOVPVQWBWTCVRAXEVRVSWOWPXACXBGWLWMWPXAHW
      NABVTWAWNWLCXBHWMWNXBCCWCWDVFVIWOAXDWRXFGWLWMAXDHWNWLXDAAWCWDVAWMWNWRXFHW
      LBCVTWEVIWFABCEGEEVBEGWGWHWIWJWK $.

    $( Multiplication of positive fractions is associative.  (Contributed by
       NM, 1-Sep-1995.)  (Revised by Mario Carneiro, 8-May-2013.)
       (New usage is discouraged.) $)
    mulassnq $p |- ( ( A .Q B ) .Q C ) = ( A .Q ( B .Q C ) ) $=
      ( cnq wcel cmq co wceq cmpq cerq cfv c1st cmi cop syl2anc oveq12d mulclpi
      c2nd cnpi syl w3a mulasspi opeq12i elpqn 3ad2ant1 3ad2ant2 mulpipq2 relxp
      cxp wrel 3ad2ant3 1st2nd sylancr xp1st xp2nd mulpipq eqtrd 3eqtr4a fveq2d
      mulerpq 3eqtr4g mulpqnq 3adant3 nqerid eqcomd 3adant1 3eqtr4d mulnqf fdmi
      syl22anc 0nnq ndmovass pm2.61i ) ADEZBDEZCDEZUAZABFGZCFGZABCFGZFGZHVQABIG
      ZJKZCJKZFGZAJKZBCIGZJKZFGZVSWAVQWBCIGZJKAWGIGZJKWEWIVQWJWKJVQALKZBLKZMGZC
      LKZMGZARKZBRKZMGZCRKZMGZNZWLWMWOMGZMGZWQWRWTMGZMGZNZWJWKWPXDXAXFWLWMWOUBW
      QWRWTUBUCVQWJWNWSNZWOWTNZIGZXBVQWBXHCXIIVQASSUIZEZBXKEZWBXHHVNVOXLVPAUDUE
      ZVOVNXMVPBUDUFZABUGOVQXKUJZCXKEZCXIHSSUHZVPVNXQVOCUDUKZCXKULUMPVQWNSEZWSS
      EZWOSEZWTSEZXJXBHVQWLSEZWMSEZXTVQXLYDXNASSUNTZVQXMYEXOBSSUNTZWLWMQOVQWQSE
      ZWRSEZYAVQXLYHXNASSUOTZVQXMYIXOBSSUOTZWQWRQOVQXQYBXSCSSUNTZVQXQYCXSCSSUOT
      ZWNWSWOWTUPVJUQVQWKWLWQNZXCXENZIGZXGVQAYNWGYOIVQXPXLAYNHXRXNAXKULUMVQXMXQ
      WGYOHXOXSBCUGOPVQYDYHXCSEZXESEZYPXGHYFYJVQYEYBYQYGYLWMWOQOVQYIYCYRYKYMWRW
      TQOWLWQXCXEUPVJUQURUSWBCUTAWGUTVAVQVRWCCWDFVNVOVRWCHVPABVBVCVPVNCWDHVOVPW
      DCCVDVEUKPVQAWFVTWHFVNVOAWFHVPVNWFAAVDVEUEVOVPVTWHHVNBCVBVFPVGABCDFDDUIDF
      VHVIVKVLVM $.
  $}

  ${
    $d A b c $.  $d B b c $.  $d C c $.
    $( Lemma for distributive law: cancellation of common factor.  (Contributed
       by NM, 2-Sep-1995.)  (Revised by Mario Carneiro, 8-May-2013.)
       (New usage is discouraged.) $)
    mulcanenq $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
      <. ( A .N B ) , ( A .N C ) >. ~Q <. B , C >. ) $=
      ( vb vc cnpi wcel cmi co cop ceq wbr wa cv wi wceq oveq2 breq12d mulasspi
      imbi2d opeq1d opeq1 opeq2d w3a mulcompi oveq2i 3eqtr4i wb mulclpi 3adant3
      opeq2 3adant2 3simpc enqbreq syl21anc mpbiri 3expb expcom vtocl2ga impcom
      3impb ) AFGZBFGZCFGZABHIZACHIZJZBCJZKLZVCVDMVBVIVBADNZHIZAENZHIZJZVJVLJZK
      LZOVBVEVMJZBVLJZKLZOVBVIODEBCFFVJBPZVPVSVBVTVNVQVOVRKVTVKVEVMVJBAHQUAVJBV
      LUBRTVLCPZVSVIVBWAVQVGVRVHKWAVMVFVEVLCAHQUCVLCBUKRTVBVJFGZVLFGZMZVPVBWBWC
      VPVBWBWCUDZVPVKVLHIZVMVJHIZPZAVJVLHIZHIAVLVJHIZHIWFWGWIWJAHVJVLUEUFAVJVLS
      AVLVJSUGWEVKFGZVMFGZWDVPWHUHVBWBWKWCAVJUIUJVBWCWLWBAVLUIULVBWBWCUMVKVMVJV
      LUNUOUPUQURUSUTVA $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( Multiplication of positive fractions is distributive.  (Contributed by
       NM, 2-Sep-1995.)  (Revised by Mario Carneiro, 28-Apr-2013.)
       (New usage is discouraged.) $)
    distrnq $p |- ( A .Q ( B +Q C ) ) = ( ( A .Q B ) +Q ( A .Q C ) ) $=
      ( cnq wcel cplq co cmq wceq cerq cfv cplpq cmpq c1st cmi c2nd cop mulclpi
      cnpi syl2anc vx vy w3a ceq wbr cpli mulcompi oveq1i fvex mulasspi caov411
      vz eqtri oveq12i distrpi 3eqtr2i caov12 oveq2i opeq12i cxp elpqn 3ad2ant1
      xp2nd xp1st 3ad2ant2 3ad2ant3 addclpi mulcanenq syl3anc syl5eqbr mulpipq2
      cv syl oveq12d addpipq syl22anc eqtrd wrel relxp sylancr addpipq2 mulpipq
      1st2nd 3brtr4d wb mulpqf fovcl addpqf nqereq mpbid eqcomd mulerpq adderpq
      3eqtr4g nqerid addpqnq 3adant1 mulpqnq 3adant3 3adant2 addnqf fdmi mulnqf
      3eqtr4d 0nnq ndmovdistr pm2.61i ) ADEZBDEZCDEZUCZABCFGZHGZABHGZACHGZFGZIX
      KAJKZBCLGZJKZHGZABMGZJKZACMGZJKZFGZXMXPXKAXRMGZJKZYAYCLGZJKZXTYEXKYIYGXKY
      HYFUDUEZYIYGIZXKANKZBNKZOGZAPKZCPKZOGZOGZYLCNKZOGZYOBPKZOGZOGZUFGZUUBYQOG
      ZQZYLYMYPOGZYSUUAOGZUFGZOGZYOUUAYPOGZOGZQZYHYFUDXKUUFYOUUJOGZYOUULOGZQZUU
      MUDUUDUUNUUEUUOUUDYOYLOGZUUGOGZUUQUUHOGZUFGUUQUUIOGUUNYRUURUUCUUSUFYRYMYL
      OGZYQOGUURYNUUTYQOYLYMUGUHUAUBULYMYLYOYPOBNUIANUIZAPUIZUAVLZUBVLZUGZUVCUV
      DULVLUJZCPUIZUKUMUUCYSYLOGZUUBOGUUSYTUVHUUBOYLYSUGUHUAUBULYSYLYOUUAOCNUIU
      VAUVBUVEUVFBPUIZUKUMUNUUQUUGUUHUOYOYLUUIUJUPUUEYOUUAYQOGZOGUUOYOUUAYQUJUV
      JUULYOOUAUBULUUAYOYPOUVIUVBUVGUVEUVFUQURUMUSXKYOSEZUUJSEZUULSEZUUPUUMUDUE
      XKASSUTZEZUVKXHXIUVOXJAVAVBZASSVCVMZXKYLSEZUUISEZUVLXKUVOUVRUVPASSVDVMZXK
      UUGSEZUUHSEZUVSXKYMSEZYPSEZUWAXKBUVNEZUWCXIXHUWEXJBVAVEZBSSVDVMZXKCUVNEZU
      WDXJXHUWHXICVAVFZCSSVCVMZYMYPRTXKYSSEZUUASEZUWBXKUWHUWKUWICSSVDVMZXKUWEUW
      LUWFBSSVCVMZYSUUARTUUGUUHVGTZYLUUIRTXKUVKUUKSEZUVMUVQXKUWLUWDUWPUWNUWJUUA
      YPRTZYOUUKRTYOUUJUULVHVIVJXKYHYNUUBQZYTYQQZLGZUUFXKYAUWRYCUWSLXKUVOUWEYAU
      WRIUVPUWFABVKTXKUVOUWHYCUWSIUVPUWIACVKTVNXKYNSEZUUBSEZYTSEZYQSEZUWTUUFIXK
      UVRUWCUXAUVTUWGYLYMRTXKUVKUWLUXBUVQUWNYOUUARTXKUVRUWKUXCUVTUWMYLYSRTXKUVK
      UWDUXDUVQUWJYOYPRTYNUUBYTYQVOVPVQXKYFYLYOQZUUIUUKQZMGZUUMXKAUXEXRUXFMXKUV
      NVRUVOAUXEISSVSUVPAUVNWCVTXKUWEUWHXRUXFIUWFUWIBCWATVNXKUVRUVKUVSUWPUXGUUM
      IUVTUVQUWOUWQYLYOUUIUUKWBVPVQWDXKYHUVNEZYFUVNEZYJYKWEXKYAUVNEZYCUVNEZUXHX
      KUVOUWEUXJUVPUWFABUVNUVNUVNMWFWGTXKUVOUWHUXKUVPUWIACUVNUVNUVNMWFWGTYAYCUV
      NUVNUVNLWHWGTXKUVOXRUVNEZUXIUVPXKUWEUWHUXLUWFUWIBCUVNUVNUVNLWHWGTAXRUVNUV
      NUVNMWFWGTYHYFWITWJWKAXRWLYAYCWMWNXKAXQXLXSHXHXIAXQIXJXHXQAAWOWKVBXIXJXLX
      SIXHBCWPWQVNXKXNYBXOYDFXHXIXNYBIXJABWRWSXHXJXOYDIXIACWRWTVNXDABCDFHDDUTZD
      FXAXBXEUXMDHXCXBXFXG $.
  $}

  $( The equivalence class of ratio 1.  (Contributed by NM, 4-Mar-1996.)
     (Revised by Mario Carneiro, 28-Apr-2013.)  (New usage is discouraged.) $)
  1nqenq $p |- ( A e. N. -> 1Q ~Q <. A , A >. ) $=
    ( cnpi wcel cop c1q ceq cxp wer enqer a1i c1o cmi mulidpi opeq12d mulcanenq
    co wbr 1pi mp3an23 df-1nq syl6breqr eqbrtrrd ersym ) ABCZAADZEFBBGZUFFHUDIJ
    UDAKLPZUGDZUEEFUDUGAUGAAMZUINUDUHKKDZEFUDKBCZUKUHUJFQRRAKKOSTUAUBUC $.

  $( Multiplication identity element for positive fractions.  (Contributed by
     NM, 3-Mar-1996.)  (Revised by Mario Carneiro, 28-Apr-2013.)
     (New usage is discouraged.) $)
  mulidnq $p |- ( A e. Q. -> ( A .Q 1Q ) = A ) $=
    ( cnq wcel c1q cmq co cmpq cerq cfv 1nq mulpqnq cop c1o cmi a1i syl mulidpi
    wceq cnpi 3eqtrd mpan2 c1st c2nd cxp wrel relxp elpqn 1st2nd sylancr df-1nq
    oveq12d xp1st xp2nd 1pi mulpipq syl22anc opeq12d eqtr4d fveq2d nqerid ) ABC
    ZADEFZADGFZHIZAHIAVADBCVBVDRJADKUAVAVCAHVAVCAUBIZAUCIZLZAVAVCVGMMLZGFZVEMNF
    ZVFMNFZLZVGVAAVGDVHGVASSUDZUEAVMCZAVGRSSUFAUGZAVMUHUIZDVHRVAUJOUKVAVESCZVFS
    CZMSCZVSVIVLRVAVNVQVOASSULZPVAVNVRVOASSUMZPVSVAUNOZWBVEVFMMUOUPVAVNVLVGRVOV
    NVJVEVKVFVNVQVJVERVTVEQPVNVRVKVFRWAVFQPUQPTVPURUSAUTT $.

  ${
    $d x y A $.  $d x y B $.  $d r s t x y $.
    $( Relationship between reciprocal and multiplication on positive
       fractions.  (Contributed by NM, 6-Mar-1996.)  (Revised by Mario
       Carneiro, 28-Apr-2015.)  (New usage is discouraged.) $)
    recmulnq $p |- ( A e. Q. ->
      ( ( *Q ` A ) = B <-> ( A .Q B ) = 1Q ) ) $=
      ( vx vy cnq wcel cvv crq cfv wceq cmq co c1q wa 1nq syl cv cop cerq cnpi
      vr vs vt fvex a1i eleq1 syl5ibcom wi id syl6eqel cxp mulnqf fdmi ndmovrcl
      0nnq simprd elex wb oveq1 eqeq1d oveq2 wex weu c2nd c1st cmpq nqerid wrel
      cmi relxp elpqn 1st2nd sylancr fveq2d eqtr3d oveq1d mulerpq xp1st mulpipq
      syl6eq xp2nd syl22anc opeq2i ax-mp ceq wbr mulclpi syl2anc 1nqenq opelxpi
      mulcompi nqereq mpbid syl5reqr 3eqtrd spcev wmo mulcomnq mulassnq mulidnq
      caovmo eu5 mpbiran2 sylibr copab wtru wss ccnv cima cnvimass df-rq eqcomi
      csn cdm 3sstr4i relss mp2 eleq2i wf wfn fniniseg mp2b ancom mpbiri simpld
      ffn 2thd pm5.32i df-ov eqeq1i anbi1i 3bitr2ri bitri 3bitri opabbi2dv trud
      fvopab3g ex pm5.21ndd ) AEFZBGFZAHIZBJZABKLZMJZYTUUBGFZUUCUUAUUFYTAHUDUEU
      UBBGUFUGUUEUUAUHYTUUEBEFZUUAUUEYTUUGUUEUUDEFYTUUGNUUEUUDMEUUEUIOUJABEKEEU
      KZEKULUMZUOUNPUPBEUQPUEYTUUAUUCUUEURCQZDQZKLZMJZAUUKKLZMJUUECDABEGHUUJAJU
      ULUUNMUUJAUUKKUSUTUUKBJUUNUUDMUUKBAKVAUTUUJEFZUUMDVBZUUMDVCZUUOUUJUUJVDIZ
      UUJVEIZRZSIZKLZMJZUUPUUOUVBUUSUURRZUUTVFLZSIZUUSUURVILZUVGRZSIZMUUOUVBUVD
      SIZUVAKLUVFUUOUUJUVJUVAKUUOUUJSIUUJUVJUUJVGUUOUUJUVDSUUOTTUKZVHUUJUVKFZUU
      JUVDJTTVJUUJVKZUUJUVKVLVMVNVOVPUVDUUTVQVTUUOUVEUVHSUUOUVEUVGUURUUSVILZRZU
      VHUUOUUSTFZUURTFZUVQUVPUVEUVOJUUOUVLUVPUVMUUJTTVRPZUUOUVLUVQUVMUUJTTWAPZU
      VSUVRUUSUURUURUUSVSWBUVNUVGUVGUURUUSWKWCVTVNUUOMMSIZUVIMEFZUVTMJOMVGWDUUO
      MUVHWEWFZUVTUVIJZUUOUVGTFZUWBUUOUVPUVQUWDUVRUVSUUSUURWGWHZUVGWIPUUOMUVKFZ
      UVHUVKFZUWBUWCURUWAUWFOMVKWDUUOUWDUWDUWGUWEUWEUVGUVGTTWJWHMUVHWLVMWMWNWOU
      UMUVCDUVAUUTSUDUUKUVAJUULUVBMUUKUVAUUJKVAUTWPPUUQUUPUUMDWQUAUBUCDUUJMEKOU
      UIUOUAQZUBQZWRUWHUWIUCQWSUWHWTXAUUMDXBXCXDHUUOUUMNZCDXEJXFUWJCDHHUUHXGUUH
      VHHVHKXHMXMZXIZKXNZHUUHKUWKXJXKUWMUUHUUIXLXOEEVJHUUHXPXQUUJUUKRZHFZUWJURX
      FUWOUWNUWLFZUWNUUHFZUWNKIZMJZNZUWJHUWLUWNXKXRUUHEKXSKUUHXTUWPUWTURULUUHEK
      YFUUHMUWNKYAYBUWTUWSUWQNZUWJUWQUWSYCUWJUUMUUONUUMUWQNUXAUUOUUMYCUUMUWQUUO
      UUMUWQUUOUUMUUOUUKEFZNZUWQUUMUULEFZUXCUUMUXDUWAOUULMEUFYDUUJUUKEKUUIUOUNP
      ZUUJUUKEEWJPUUMUUOUXBUXEYEYGYHUUMUWSUWQUULUWRMUUJUUKKYIYJYKYLYMYNUEYOYPYQ
      YRYS $.
  $}

  $( A positive fraction times its reciprocal is 1.  (Contributed by NM,
     6-Mar-1996.)  (Revised by Mario Carneiro, 8-May-2013.)
     (New usage is discouraged.) $)
  recidnq $p |- ( A e. Q. -> ( A .Q ( *Q ` A ) ) = 1Q ) $=
    ( cnq wcel crq cfv wceq cmq co c1q eqid recmulnq mpbii ) ABCADEZMFAMGHIFMJA
    MKL $.

  $( Closure law for positive fraction reciprocal.  (Contributed by NM,
     6-Mar-1996.)  (Revised by Mario Carneiro, 8-May-2013.)
     (New usage is discouraged.) $)
  recclnq $p |- ( A e. Q. -> ( *Q ` A ) e. Q. ) $=
    ( cnq wcel crq cfv cmq co c1q recidnq 1nq syl6eqel cxp mulnqf fdmi ndmovrcl
    wa 0nnq syl simprd ) ABCZTADEZBCZTAUAFGZBCTUBPTUCHBAIJKAUABFBBLBFMNQORS $.

  ${
    $d A x $.
    $( Reciprocal of reciprocal of positive fraction.  (Contributed by NM,
       26-Apr-1996.)  (Revised by Mario Carneiro, 29-Apr-2013.)
       (New usage is discouraged.) $)
    recrecnq $p |- ( A e. Q. -> ( *Q ` ( *Q ` A ) ) = A ) $=
      ( vx cv crq cfv wceq cnq fveq2 fveq2d id eqeq12d wcel cmq co c1q mulcomnq
      recidnq syl5eq wb recclnq recmulnq syl mpbird vtoclga ) BCZDEZDEZUEFZADEZ
      DEZAFBAGUEAFZUGUJUEAUKUFUIDUEADHIUKJKUEGLZUHUFUEMNZOFZULUMUEUFMNOUFUEPUEQ
      RULUFGLUHUNSUETUFUEUAUBUCUD $.
  $}

  $( Domain of reciprocal on positive fractions.  (Contributed by NM,
     6-Mar-1996.)  (Revised by Mario Carneiro, 10-Jul-2014.)
     (New usage is discouraged.) $)
  dmrecnq $p |- dom *Q = Q. $=
    ( vx crq cdm cnq cxp wss cmq ccnv c1q csn cima cnvimass eqsstri mulnqf fdmi
    df-rq sseqtri dmss wcel cfv ax-mp dmxpid wbr cop wceq recclnq opelxpi mpdan
    cv co df-ov recidnq syl5eqr wf wfn wa ffn fniniseg sylanbrc syl6eleqr df-br
    wb mp2b sylibr vex fvex breldm syl ssriv eqssi ) BCZDVKDDEZCZDBVLFVKVMFBGCZ
    VLBGHIJZKZVNPGVOLMVLDGNOQBVLRUADUBQADVKAUIZDSZVQVQBTZBUCZVQVKSVRVQVSUDZBSVT
    VRWAVPBVRWAVLSZWAGTZIUEZWAVPSZVRVSDSWBVQUFVQVSDDUGUHVRWCVQVSGUJIVQVSGUKVQUL
    UMVLDGUNGVLUOWEWBWDUPVBNVLDGUQVLIWAGURVCUSPUTVQVSBVAVDVQVSBAVEVQBVFVGVHVIVJ
    $.

  ${
    $d r s t x y z $.
    $( 'Less than' is a strict ordering on positive fractions.  (Contributed by
       NM, 19-Feb-1996.)  (Revised by Mario Carneiro, 4-May-2013.)
       (New usage is discouraged.) $)
    ltsonq $p |- <Q Or Q. $=
      ( vr vs vt cnq cltq cv wcel wa c1st cfv c2nd cmi co clti wbr cnpi ordpinq
      wb syl fvex vx vy vz wceq wo wn elpqn adantr xp1st adantl mulclpi syl2anc
      cxp xp2nd wor ltsopi sotric mpan fveq2 eqcomd oveq12d ceq enqbreq2 syl2an
      3expia sylbird impbid2 ancoms orbi12d notbid 3bitr4d w3a 3adant3 3ad2ant3
      enqeq ltmpi 3syl bitrd 3adant1 3ad2ant1 anbi12d mulcompi mulasspi breq12i
      caov13 ltrelpi syl5eqbrr sylan2b syl6bi 3adant2 3ad2ant2 sylibrd isso2i
      sotri ) UAUBUCDEUAFZDGZUBFZDGZHZWOIJZWQKJZLMZWQIJZWOKJZLMZNOZXBXEUDZXEXBN
      OZUEZUFZWOWQEOZWOWQUDZWQWOEOZUEZUFWSXBPGZXEPGZXFXJRZWSWTPGZXAPGZXOWSWOPPU
      MZGZXRWPYAWRWOUGZUHZWOPPUISWSWQXTGZXSWRYDWPWQUGZUJZWQPPUNZSWTXAUKULWSXCPG
      ZXDPGZXPWSYDYHYFWQPPUISWSYAYIYCWOPPUNZSXCXDUKULPNUOXOXPHXQUPPXBXENUQURULW
      OWQQZWSXNXIWSXLXGXMXHWSXLXGXLWTXCXAXDLWOWQIUSXLXDXAWOWQKUSUTVAWSXGWOWQVBO
      ZXLWPYAYDYLXGRWRYBYEWOWQVCVDWPWRYLXLWOWQVOVEVFVGWRWPXMXHRWQWOQVHVIVJVKWPW
      RUCFZDGZVLZXKWQYMEOZHZXAWTYMKJZLMZLMZXAYMIJZXDLMZLMZNOZWOYMEOZYOYQYRXBLMZ
      YRXELMZNOZXDXCYRLMZLMZXDUUAXALMZLMZNOZHUUDYOXKUUHYPUUMYOXKXFUUHWPWRXKXFRY
      NYKVMYOYMXTGZYRPGXFUUHRYNWPUUNWRYMUGVNYMPPUNXBXEYRVPVQVRYOYPUUIUUKNOZUUMW
      RYNYPUUORWPWQYMQVSYOYAYIUUOUUMRWPWRYAYNYBVTYJUUIUUKXDVPVQVRWAUUMUUHUUGUUC
      NOZUUDUUJUUGUULUUCNABCXDXCYRLWOKTZWQITYMKTZAFZBFZWBZUUSUUTCFWCZWEABCXDUUA
      XALUUQYMITWQKTZUVAUVBWEWDUUHUUPHYTUUFUUCNABCYRWTXALUURWOITUVCUVAUVBWEUUFU
      UGUUCNPUPWFWNWGWHWIYOUUEYSUUBNOZUUDWPYNUUEUVDRWRWOYMQWJYOYDXSUVDUUDRWRWPY
      DYNYEWKYGYSUUBXAVPVQVRWLWM $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    $( Compatibility of ordering on equivalent fractions.  (Contributed by
       Mario Carneiro, 9-May-2013.)  (New usage is discouraged.) $)
    lterpq $p |- ( A <pQ B <-> ( /Q ` A ) <Q ( /Q ` B ) ) $=
      ( vx vy cltpq wbr cnpi wcel wa cerq cfv c1st c2nd cmi co clti cnq wb fvex
      syl vz cxp cltq cv copab df-ltpq opabssxp eqsstri brel ltrelnq elpqn fdmi
      nqerf 0nelxp ndmfvrcl anim12i syl2an xp1st xp2nd mulclpi ltmpi nqercl cop
      ordpinq 1st2nd2 breqan12d ordpipq 3syl wceq mulcompi a1i nqerrel enqbreq2
      syl6bb mpdan mpbid eqcomd oveqan12d mulasspi caov411 eqtri 3eqtr4g 3bitrd
      ceq breq12d 3bitr4rd pm5.21nii ) ABEFZAGGUBZHZBWIHZIZAJKZBJKZUCFZABWIWIEE
      CUDZWIHDUDZWIHIWPLKWQMKNOWQLKWPMKNOPFZICDUEWIWIUBCDUFWRCDWIWIUGUHUIWOWMQH
      ZWNQHZIWLWMWNQQUCUJUIWSWMWIHZWNWIHZWLWTWMUKZWNUKZXAWJXBWKAWIJWIQJUMULZGGU
      NZUOBWIJXEXFUOUPUQTWLWMLKZWNMKZNOZWNLKZWMMKZNOZPFZALKZBMKZNOZXINOZXPXLNOZ
      PFZWOWHWLXPGHZXMXSRWJXNGHXOGHXTWKAGGURBGGUSXNXOUTUQXIXLXPVATWJWSWTWOXMRWK
      AVBZBVBZWMWNVDUQWLWHXPBLKZAMKZNOZPFZXIXPNOZXIYENOZPFZXSWLWHXNYDVCZYCXOVCZ
      EFYFWJWKAYJBYKEAGGVEBGGVEVFXNYDYCXOVGVNWLXIGHZYFYIRWJXGGHZXHGHZYLWKWJWSXA
      YMYAXCWMGGURVHWKWTXBYNYBXDWNGGUSVHXGXHUTUQXPYEXIVATWLYGXQYHXRPYGXQVIWLXIX
      PVJVKWLXGYDNOZYCXHNOZNOZXNXKNOZXJXONOZNOZYHXRWJWKYOYRYPYSNWJYRYOWJAWMWDFZ
      YRYOVIZAVLWJXAUUAUUBRWJWSXAYAXCTAWMVMVOVPVQWKBWNWDFZYPYSVIZBVLWKXBUUCUUDR
      WKWTXBYBXDTBWNVMVOVPVRYHYEXINOYQXIYEVJCDUAYCYDXGXHNBLSAMSWMLSWPWQVJZWPWQU
      AUDVSZWNMSVTWAXRXLXPNOYTXPXLVJCDUAXJXKXNXONWNLSWMMSALSUUEUUFBMSVTWAWBWEWC
      WFWG $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( Ordering property of addition for positive fractions.  Proposition
       9-2.6(ii) of [Gleason] p. 120.  (Contributed by NM, 6-Mar-1996.)
       (Revised by Mario Carneiro, 10-May-2013.)
       (New usage is discouraged.) $)
    ltanq $p |- ( C e. Q. ->
      ( A <Q B <-> ( C +Q A ) <Q ( C +Q B ) ) ) $=
      ( cltq cnq wcel wbr c1st cfv c2nd cmi clti cpli cnpi syl2anc syl mulcompi
      vx co fvex vy vz cplq cxp addnqf fdmi ltrelnq 0nnq w3a wb ordpinq 3adant3
      cplpq cltpq cop elpqn 3ad2ant3 3ad2ant1 addpipq2 3ad2ant2 breq12d addpqnq
      wceq cerq ancoms 3adant2 3adant1 lterpq syl6bbr xp2nd mulclpi ltmpi xp1st
      ltapi bitrd mulasspi caov411 eqtri oveq2i distrpi 3eqtr2i oveq12i breq12i
      cv syl6bb ordpipq 3bitr4rd ndmovord ) ABCDEUCEEUDEUCUEUFUGUHAEFZBEFZCEFZU
      IZABDGZAHIZBJIZKSZBHIZAJIZKSZLGZCAUCSZCBUCSZDGZWIWJWMWTUJWKABUKULWLCAUMSZ
      CBUMSZUNGZCHIZWRKSZWNCJIZKSZMSZXIWRKSZUOZXGWOKSZWQXIKSZMSZXIWOKSZUOZUNGZX
      CWTWLXDXMXEXRUNWLCNNUDZFZAXTFZXDXMVCWKWIYAWJCUPUQZWIWJYBWKAUPURZCAUSOWLYA
      BXTFZXEXRVCYCWJWIYEWKBUPUTZCBUSOVAWLXCXDVDIZXEVDIZDGXFWLXAYGXBYHDWIWKXAYG
      VCZWJWKWIYICAVBVEVFWJWKXBYHVCZWIWKWJYJCBVBVEVGVAXDXEVHVIWLWTXKXQKSZXPXLKS
      ZLGZXSWLWTXQXHKSZXIXIKSZWPKSZMSZYNYOWSKSZMSZLGZYMWLWTYPYRLGZYTWLYONFZWTUU
      AUJWLXINFZUUCUUBWLYAUUCYCCNNVJPZUUDXIXIVKOWPWSYOVLPWLYNNFZUUAYTUJWLXQNFZX
      HNFZUUEWLUUCWONFZUUFUUDWLYEUUHYFBNNVJPXIWOVKOWLXGNFZWRNFZUUGWLYAUUIYCCNNV
      MPWLYBUUJYDANNVJPXGWRVKOXQXHVKOYPYRYNVNPVOYQYKYSYLLYQYNXQXJKSZMSXQXKKSYKY
      PUUKYNMYPWPYOKSUUKYOWPQRUAUBWNWOXIXIKAHTBJTZCJTZRWDZUAWDZQZUUNUUOUBWDVPZU
      UMVQVRVSXQXHXJVTXQXKQWAYSXLXNKSZXLXOKSZMSXLXPKSYLYNUURYRUUSMYNXHXQKSUURXQ
      XHQRUAUBXGWRXIWOKCHTAJTZUUMUUPUUQUULVQVRYRWSYOKSUUSYOWSQRUAUBWQWRXIXIKBHT
      UUTUUMUUPUUQUUMVQVRWBXLXNXOVTXLXPQWAWCWEXKXLXPXQWFVIWGVOWH $.

    $( Ordering property of multiplication for positive fractions.  Proposition
       9-2.6(iii) of [Gleason] p. 120.  (Contributed by NM, 6-Mar-1996.)
       (Revised by Mario Carneiro, 10-May-2013.)
       (New usage is discouraged.) $)
    ltmnq $p |- ( C e. Q. ->
      ( A <Q B <-> ( C .Q A ) <Q ( C .Q B ) ) ) $=
      ( vx vy vz cltq cnq cmq wcel c1st cfv c2nd cmi co clti wbr cnpi fvex wceq
      cxp mulnqf fdmi ltrelnq 0nnq w3a cmpq cltpq wb elpqn 3ad2ant3 xp1st xp2nd
      cop syl mulclpi syl2anc ltmpi cv mulcompi mulasspi breq12i syl6bb ordpipq
      syl6bbr 3ad2ant1 mulpipq2 3ad2ant2 breq12d bitr4d ordpinq 3adant3 mulpqnq
      caov4 cerq ancoms 3adant2 3adant1 lterpq 3bitr4d ndmovord ) ABCGHIHHUAHIU
      BUCUDUEAHJZBHJZCHJZUFZAKLZBMLZNOZBKLZAMLZNOZPQZCAUGOZCBUGOZUHQZABGQZCAIOZ
      CBIOZGQZWEWLCKLZWFNOZCMLZWJNOZUNZWTWINOZXBWGNOZUNZUHQZWOWEWLXAXFNOZXEXCNO
      ZPQZXHWEWLWTXBNOZWHNOZXLWKNOZPQZXKWEXLRJZWLXOUIWEWTRJZXBRJZXPWECRRUAZJZXQ
      WDWBXTWCCUJUKZCRRULUOWEXTXRYACRRUMUOWTXBUPUQWHWKXLURUOXMXIXNXJPDEFWTXBWFW
      GNCKSZCMSZAKSDUSZEUSZUTZYDYEFUSVAZBMSVNDEFWTXBWIWJNYBYCBKSYFYGAMSVNVBVCXA
      XCXEXFVDVEWEWMXDWNXGUHWEXTAXSJZWMXDTYAWBWCYHWDAUJVFCAVGUQWEXTBXSJZWNXGTYA
      WCWBYIWDBUJVHCBVGUQVIVJWBWCWPWLUIWDABVKVLWEWSWMVOLZWNVOLZGQWOWEWQYJWRYKGW
      BWDWQYJTZWCWDWBYLCAVMVPVQWCWDWRYKTZWBWDWCYMCBVMVPVRVIWMWNVSVEVTWA $.
  $}

  $( One is less than two (one plus one).  (Contributed by NM, 13-Mar-1996.)
     (Revised by Mario Carneiro, 10-May-2013.)  (New usage is discouraged.) $)
  1lt2nq $p |- 1Q <Q ( 1Q +Q 1Q ) $=
    ( c1q cerq cfv cplpq co cltq cltpq wbr c1o cop cpli cmi clti wcel 1pi ax-mp
    wceq 3brtr4i df-1nq 1nq cplq 1lt2pi mulidpi addclpi ordpipq oveq12i addpipq
    cnpi mp2an mpbir mp4an opeq12i 3eqtri lterpq mpbi cnq nqerid eqcomi addpqnq
    ) ABCZAADEZBCZAAAUAEZFAVAGHUTVBFHIIJZIIKEZIJZAVAGVDVFGHIILEZVEILEZMHIVEVGVH
    MUBIUHNZVGIQOIUCPZVEUHNZVHVEQVIVIVKOOIIUDUIVEUCPRIIVEIUEUJSVAVDVDDEZVGVGKEZ
    VGJZVFAVDAVDDSSUFVIVIVIVIVLVNQOOOOIIIIUGUKVMVEVGIVGIVGIKVJVJUFVJULUMRAVAUNU
    OUTAAUPNZUTAQTAUQPURVOVOVCVBQTTAAUSUIR $.

  ${
    $d A x y $.  $d B y $.  $d r s t x y $.
    $( The sum of two fractions is greater than one of them.  (Contributed by
       NM, 14-Mar-1996.)  (Revised by Mario Carneiro, 10-May-2013.)
       (New usage is discouraged.) $)
    ltaddnq $p |- ( ( A e. Q. /\ B e. Q. ) -> A <Q ( A +Q B ) ) $=
      ( vx vy vr vs vt cv cplq co cltq wbr cnq wceq wcel c1q cmq ltanq addcomnq
      vex id oveq1 breq12d oveq2 breq2d wa 1lt2nq ltmnq mulidnq distrnq oveq12d
      mpbii syl5eq 3brtr3d syl5ib imp addassnq caov12 wb adantl mpbird vtocl2ga
      3brtr3g ) CHZVDDHZIJZKLZAAVEIJZKLAABIJZKLCDABMMVDANZVDAVFVHKVJUAVDAVEIUBU
      CVEBNVHVIAKVEBAIUDUEVDMOZVEMOZUFZVGVEVDIJZVEVFIJZKLZVMVFVDVEVEIJZIJZVNVOK
      VKVLVFVRKLZVLVEVQKLVKVSVLVEPQJZVEPPIJZQJZVEVQKVLPWAKLVTWBKLUGPWAVEUHULVEU
      IZVLWBVTVTIJVQVEPPUJVLVTVEVTVEIWCWCUKUMUNVEVQVDRUOUPVDVESEFGVDVEVEICTDTZW
      DEHZFHZSWEWFGHUQURVCVLVGVPUSVKVDVFVERUTVAVB $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    $( Ordering on positive fractions in terms of existence of sum.  Definition
       in Proposition 9-2.6 of [Gleason] p. 119.  (Contributed by NM,
       24-Apr-1996.)  (Revised by Mario Carneiro, 10-May-2013.)
       (New usage is discouraged.) $)
    ltexnq $p |- ( B e. Q. -> ( A <Q B <-> E. x ( A +Q x ) = B ) ) $=
      ( vy cnq wcel cltq wbr cplq co wceq wa cfv cmi adantr mulclpi syl2anc cop
      cnpi cerq vz cv wex ltrelnq brel c1st c2nd clti ordpinq cpli wb cxp elpqn
      wrex xp1st syl adantl xp2nd ltexpi cplpq wrel relxp 1st2nd sylancr oveq1d
      ad2antrr simpr addpipq syl22anc eqtrd oveq2 fvex mulcompi mulasspi caov12
      distrpi oveq12i eqtr2i oveq2i 3eqtr4g eqcomi a1i opeq12d eqeq2d syl5ibcom
      eqtri fveq2 adderpq nqerid syl5eqr ceq mulcanenq syl3anc ad2antlr opelxpi
      nqereq mpbid eqeq12d syl5ib syld eqeq1d spcev syl6 rexlimdva sylbid mpcom
      breqtrrd eleq1 biimparc addnqf fdmi 0nnq ndmovrcl ltaddnq 3syl breqtrd ex
      exlimdv impbid2 ) CEFZBCGHZBAUBZIJZCKZAUCZBEFZXTLZYAYEBCEEGUDUEYGYABUFMZC
      UGMZNJZCUFMZBUGMZNJZUHHZYEBCUIYGYNYJDUBZUJJZYMKZDSUNZYEYGYJSFZYMSFZYNYRUK
      YGYHSFZYISFZYSYGBSSULZFZUUAYFUUDXTBUMZOZBSSUOUPZYGCUUCFZUUBXTUUHYFCUMZUQZ
      CSSURUPZYHYIPQYGYKSFZYLSFZYTYGUUHUULUUJCSSUOUPZYGUUDUUMUUFBSSURUPZYKYLPQD
      YJYMUSQYGYQYEDSYGYOSFZLZYQBYOYLYINJZRZTMZIJZCKZYEUUQYQBUUSUTJZYLYLNJZYKNJ
      ZUVDYINJZRZKZUVBUUQUVCYHUURNJZYOYLNJZUJJZYLUURNJZRZKYQUVHUUQUVCYHYLRZUUSU
      TJZUVMUUQBUVNUUSUTUUQUUCVAZUUDBUVNKSSVBZYFUUDXTUUPUUEVFBUUCVCVDVEUUQUUAUU
      MUUPUURSFZUVOUVMKYGUUAUUPUUGOYGUUMUUPUUOOYGUUPVGYGUVRUUPYGUUMUUBUVRUUOUUK
      YLYIPQOYHYLYOUURVHVIVJYQUVMUVGUVCYQUVKUVEUVLUVFYQYLYPNJZYLYMNJZUVKUVEYPYM
      YLNVKUVSYLYJNJZYLYONJZUJJUVKYLYJYOVPUWAUVIUWBUVJUJADUAYLYHYINBUGVLBUFVLCU
      GVLYBYOVMYBYOUAUBVNVOYLYOVMVQVRUVEYLYLYKNJZNJUVTYLYLYKVNUWCYMYLNYLYKVMVSW
      FVTUVLUVFKYQUVFUVLYLYLYIVNWAWBWCWDWEUVHUVCTMZUVGTMZKUUQUVBUVCUVGTWGUUQUWD
      UVAUWECUUQUWDBTMZUUTIJUVABUUSWHUUQUWFBUUTIYFUWFBKXTUUPBWIVFVEWJUUQUWECTMZ
      CUUQUVGCWKHZUWEUWGKZUUQUVGYKYIRZCWKUUQUVDSFZUULUUBUVGUWJWKHYGUWKUUPYGUUMU
      UMUWKUUOUUOYLYLPQOZYGUULUUPUUNOZYGUUBUUPUUKOZUVDYKYIWLWMUUQUVPUUHCUWJKUVQ
      XTUUHYFUUPUUIWNZCUUCVCVDXGUUQUVGUUCFZUUHUWHUWIUKUUQUVESFZUVFSFZUWPUUQUWKU
      ULUWQUWLUWMUVDYKPQUUQUWKUUBUWRUWLUWNUVDYIPQUVEUVFSSWOQUWOUVGCWPQWQXTUWGCK
      YFUUPCWIWNVJWRWSWTYDUVBAUUTUUSTVLYBUUTKYCUVACYBUUTBIVKXAXBXCXDXEXEXFXTYDY
      AAXTYDYAXTYDLZBYCCGUWSYCEFZYFYBEFLBYCGHYDUWTXTYCCEXHXIBYBEIEEULEIXJXKXLXM
      BYBXNXOXTYDVGXPXQXRXS $.
  $}

  ${
    $d A x $.
    $( One-half of any positive fraction exists.  Lemma for Proposition
       9-2.6(i) of [Gleason] p. 120.  (Contributed by NM, 16-Mar-1996.)
       (Revised by Mario Carneiro, 10-May-2013.)
       (New usage is discouraged.) $)
    halfnq $p |- ( A e. Q. -> E. x ( x +Q x ) = A ) $=
      ( cnq wcel c1q cplq co crq cfv cmq wceq distrnq 1nq addclnq oveq1i oveq2i
      cv eqtr3i mulidnq 3eqtr3i wex mp2an recidnq ax-mp eqtri mulassnq mulcomnq
      oveq12i recclnq syl2anc mp2b syl5eq ovex oveq12 anidms eqeq1d spcev syl )
      BCDZBEEFGZHIZJGZVBFGZBKZAQZVEFGZBKZAUAUSVCBEJGZBBVAVAFGZJGVCVHBVAVALVIEBJ
      UTVIJGZVAJGZUTVAJGZVIEVJUTVAJVJVLVLFGUTUTVAVALVLEVLEFUTCDZVLEKECDZVNVMMME
      ENUBZUTUCUDZVPUHUEOVIVLJGZVIEJGZVKVIVLEVIJVPPVIUTJGZVAJGVQVKVIUTVAUFVSVJV
      AJVIUTUGORVMVICDZVRVIKVOVMVACDZWAVTUTUIZWBVAVANUJVISUKTVPTPRBSULVGVDAVBBV
      AJUMVEVBKZVFVCBWCVFVCKVEVBVEVBFUNUOUPUQUR $.
  $}

  ${
    $d x A $.
    $( The is no smallest positive fraction.  (Contributed by NM, 26-Apr-1996.)
       (Revised by Mario Carneiro, 10-May-2013.)
       (New usage is discouraged.) $)
    nsmallnq $p |- ( A e. Q. -> E. x x <Q A ) $=
      ( cnq wcel cv cplq co wceq wex cltq wbr halfnq eleq1a wa addnqf fdmi 0nnq
      cxp ndmovrcl ltaddnq syl syl6 breq2 mpbidi eximdv mpd ) BCDZAEZUHFGZBHZAI
      UHBJKZAIABLUGUJUKAUJUHUIJKZUKUGUGUJUICDZULBCUIMUMUHCDZUNNULUHUHCFCCRCFOPQ
      SUHUHTUAUBUIBUHJUCUDUEUF $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    $( There exists a number between any two positive fractions.  Proposition
       9-2.6(i) of [Gleason] p. 120.  (Contributed by NM, 17-Mar-1996.)
       (Revised by Mario Carneiro, 10-May-2013.)
       (New usage is discouraged.) $)
    ltbtwnnq $p |- ( A <Q B <-> E. x ( A <Q x /\ x <Q B ) ) $=
      ( vy vz cltq wbr cv wa wex cnq wcel ltrelnq brel simprd cplq co simpld ex
      wceq ltexnq eleq1 biimparc cxp addnqf fdmi 0nnq ndmovrcl nsmallnq ltaddnq
      syl2an ltanq biimpa sylan simplr breqtrd ovex breq2 breq1 anbi12d syl2anc
      syl spcev exlimdv syl5 mpd sylbid mpcom ltsonq sotri exlimiv impbii ) BCF
      GZBAHZFGZVNCFGZIZAJZCKLZVMVRVMBKLZVSBCKKFMNOVSVMBDHZPQZCTZDJVRDBCUAVSWCVR
      DVSWCVRVSWCIZWAKLZVRWDVTWEWDWBKLZVTWEIWCWFVSWBCKUBUCBWAKPKKUDKPUEUFUGUHVB
      ZOWEEHZWAFGZEJWDVREWAUIWDWIVREWDWIVRWDWIIZBBWHPQZFGZWKCFGZVRWDVTWHKLZWLWI
      WDVTWEWGRZWIWNWEWHWAKKFMNRBWHUJUKWJWKWBCFWDVTWIWKWBFGZWOVTWIWPWHWABULUMUN
      VSWCWIUOUPVQWLWMIAWKBWHPUQVNWKTVOWLVPWMVNWKBFURVNWKCFUSUTVCVASVDVEVFSVDVG
      VHVQVMABVNCFKVIMVJVKVL $.
  $}

  ${
    $d A x y $.  $d B y $.
    $( Ordering property of reciprocal for positive fractions.  Proposition
       9-2.6(iv) of [Gleason] p. 120.  (Contributed by NM, 9-Mar-1996.)
       (Revised by Mario Carneiro, 10-May-2013.)
       (New usage is discouraged.) $)
    ltrnq $p |- ( A <Q B <-> ( *Q ` B ) <Q ( *Q ` A ) ) $=
      ( vx vy cltq wbr cnq wcel wa crq cfv ltrelnq brel syl wb wceq co mulcomnq
      cmq c1q dmrecnq 0nnq ndmfvrcl anim12ci cv breq1 fveq2 breq2d breq2 breq1d
      bibi12d recclnq mulclnq syl2an ltmnq 3eqtr2i recidnq oveq2d syl5eq oveq2i
      mulassnq mulidnq sylan9eq eqtri sylan9eqr breq12d vtocl2ga pm5.21nii
      bitrd ) ABEFZAGHZBGHZIZBJKZAJKZEFZABGGELMVPVNGHZVOGHZIVMVNVOGGELMVQVLVRVK
      BGJUAUBUCAGJUAUBUCUDNCUEZDUEZEFZVTJKZVSJKZEFZOAVTEFZWBVOEFZOVJVPOCDABGGVS
      APZWAWEWDWFVSAVTEUFWGWCVOWBEVSAJUGUHUKVTBPZWEVJWFVPVTBAEUIWHWBVNVOEVTBJUG
      UJUKVSGHZVTGHZIZWAWCWBSQZVSSQZWLVTSQZEFZWDWKWLGHZWAWOOWIWCGHZWBGHZWPWJVSU
      LZVTULZWCWBUMUNVSVTWLUONWKWMWBWNWCEWKWMWBVSWCSQZSQZWBWMVSWLSQXAWBSQXBWLVS
      RVSWCWBVAXAWBRUPWIWJXBWBTSQZWBWIXATWBSVSUQURWJWRXCWBPWTWBVBNVCUSWKWNWCVTW
      BSQZSQZWCWNWCWBVTSQZSQXEWCWBVTVAXFXDWCSWBVTRUTVDWJWIXEWCTSQZWCWJXDTWCSVTU
      QURWIWQXGWCPWSWCVBNVEUSVFVIVGVH $.
  $}

  ${
    $d A x $.
    $( For any fraction, there is an integer that is greater than it.  This is
       also known as the "archimedean property".  (Contributed by Mario
       Carneiro, 10-May-2013.)  (New usage is discouraged.) $)
    archnq $p |- ( A e. Q. -> E. x e. N. A <Q <. x , 1o >. ) $=
      ( cnq wcel c1st cfv c1o cpli cnpi cop cltq wbr wrex syl 1pi cmi clti wceq
      co syl2anc cv cxp elpqn xp1st addclpi sylancl c2nd wn xp2nd mulclpi oveq2
      wa eqeq1d rspcev mp2an ltexpi mpbiri nlt1pi wb ltmpi mulidpi breq2d bitrd
      eqid mtbii ltsopi ltrelpi sotri3 syl3anc ordpinq mpdan elexi op2nd oveq2i
      pinq ovex syl5eq op1st oveq1i a1i breq12d mpbird opeq1 ) BCDZBEFZGHSZIDZB
      WFGJZKLZBAUAZGJZKLZAIMWDWEIDZGIDZWGWDBIIUBDZWMBUCZBIIUDNZOWEGUEUFZWDWIWEW
      FBUGFZPSZQLZWDWTIDZWEWFQLZWTWFQLZUHXAWDWGWSIDZXBWRWDWOXEWPBIIUINWFWSUJTWD
      WMWGXCWQWRWMWGULXCWEWJHSZWFRZAIMZWNWFWFRZXHOWFVDXGXIAGIWJGRXFWFWFWJGWEHUK
      UMUNUOAWEWFUPUQTWDWSGQLZXDWSURWDXJWTWFGPSZQLZXDWDWGXJXLUSWRWSGWFUTNWDXKWF
      WTQWDWGXKWFRWRWFVANVBVCVEWEWFWTQIVFVGVHVIWDWIWEWHUGFZPSZWHEFZWSPSZQLZXAWD
      WHCDZWIXQUSWDWGXRWRWFVONBWHVJVKWDXNWEXPWTQWDXNWEGPSZWEXMGWEPWFGWEGHVPZGIO
      VLZVMVNWDWMXSWERWQWEVANVQXPWTRWDXOWFWSPWFGXTYAVRVSVTWAVCWBWLWIAWFIWJWFRWK
      WHBKWJWFGWCVBUNT $.
  $}

  ${
    $d x y z $.
    $( Define the set of positive reals.  A "Dedekind cut" is a partition of
       the positive rational numbers into two classes such that all the numbers
       of one class are less than all the numbers of the other.  A positive
       real is defined as the lower class of a Dedekind cut.  Definition 9-3.1
       of [Gleason] p. 121.  (Note:  This is a "temporary" definition used in
       the construction of complex numbers ~ df-c , and is intended to be used
       only by the construction.)  (Contributed by NM, 31-Oct-1995.)
       (New usage is discouraged.) $)
    df-np $a |- P. = { x | ( ( (/) C. x /\ x C. Q. ) /\
         A. y e. x ( A. z ( z <Q y -> z e. x ) /\ E. z e. x y <Q z ) ) } $.
  $}

  $( Define the positive real constant 1.  This is a "temporary" set used in
     the construction of complex numbers ~ df-c , and is intended to be used
     only by the construction.  Definition of [Gleason] p. 122.  (Contributed
     by NM, 13-Mar-1996.)  (New usage is discouraged.) $)
  df-1p $a |- 1P = { x | x <Q 1Q } $.

  ${
    $d x y w v u $.
    $( Define addition on positive reals.  This is a "temporary" set used in
       the construction of complex numbers ~ df-c , and is intended to be used
       only by the construction.  From Proposition 9-3.5 of [Gleason] p. 123.
       (Contributed by NM, 18-Nov-1995.)  (New usage is discouraged.) $)
    df-plp $a |- +P. = ( x e. P. , y e. P. |->
                   { w | E. v e. x E. u e. y w = ( v +Q u ) } ) $.

    $( Define multiplication on positive reals.  This is a "temporary" set used
       in the construction of complex numbers ~ df-c , and is intended to be
       used only by the construction.  From Proposition 9-3.7 of [Gleason]
       p. 124.  (Contributed by NM, 18-Nov-1995.)
       (New usage is discouraged.) $)
    df-mp $a |- .P. = ( x e. P. , y e. P. |->
                   { w | E. v e. x E. u e. y w = ( v .Q u ) } ) $.

    $( Define ordering on positive reals.  This is a "temporary" set used in
       the construction of complex numbers ~ df-c , and is intended to be used
       only by the construction.  From Proposition 9-3.2 of [Gleason] p. 122.
       (Contributed by NM, 14-Feb-1996.)  (New usage is discouraged.) $)
    df-ltp $a |- <P = { <. x , y >. | ( ( x e. P. /\ y e. P. ) /\
                 x C. y ) } $.
  $}

  ${
    $d x y z $.
    $( The class of positive reals is a set.  (Contributed by NM, 31-Oct-1995.)
       (New usage is discouraged.) $)
    npex $p |- P. e. _V $=
      ( vx vz vy cnp cnq cpw nqex pwex c0 cv wpss wa cltq wbr wel wal wrex wral
      wi cab wss pssss ad2antlr ss2abi df-np df-pw 3sstr4i ssexi ) DEFZEGHIAJZK
      ZUJEKZLBJZCJZMNBAOSBPUNUMMNBUJQLCUJRZLZATUJEUAZATDUIUPUQAULUQUKUOUJEUBUCU
      DACBUEAEUFUGUH $.
  $}

  ${
    $d x y z A $.
    $( Membership in positive reals.  (Contributed by NM, 16-Feb-1996.)
       (New usage is discouraged.) $)
    elnp $p |- ( A e. P. <-> ( ( (/) C. A /\ A C. Q. ) /\
       A. x e. A ( A. y ( y <Q x -> y e. A ) /\ E. y e. A x <Q y ) ) ) $=
      ( vz cnp wcel cvv c0 wpss cnq wa cv cltq wbr wal wrex wral elex anbi12d
      wi wss pssss nqex ssex syl ad2antlr wceq psseq2 psseq1 eleq2 imbi2d rexeq
      albidv raleqbi1dv df-np elab2g pm5.21nii ) CEFCGFZHCIZCJIZKZBLZALZMNZVBCF
      ZTZBOZVCVBMNZBCPZKZACQZKZCERUTURUSVKUTCJUAURCJUBCJUCUDUEUFHDLZIZVMJIZKZVD
      VBVMFZTZBOZVHBVMPZKZAVMQZKVLDCEGVMCUGZVPVAWBVKWCVNUSVOUTVMCHUHVMCJUISWAVJ
      AVMCWCVSVGVTVIWCVRVFBWCVQVEVDVMCVBUJUKUMVHBVMCULSUNSDABUOUPUQ $.
  $}

  ${
    $d x y z A $.
    $( Membership in positive reals.  (Contributed by Mario Carneiro,
       11-May-2013.)  (New usage is discouraged.) $)
    elnpi $p |- ( A e. P. <-> ( ( A e. _V /\ (/) C. A /\ A C. Q. ) /\
       A. x e. A ( A. y ( y <Q x -> y e. A ) /\ E. y e. A x <Q y ) ) ) $=
      ( vz cnp wcel cvv c0 wpss cnq w3a cv cltq wbr wi wal wrex wa wral anbi12d
      elex simpl1 wceq psseq2 psseq1 eleq2 imbi2d albidv rexeq raleqbi1dv df-np
      wel elab2g id 3expib 3simpc impbid1 anbi1d bitrd pm5.21nii ) CEFZCGFZVBHC
      IZCJIZKZBLZALZMNZVFCFZOZBPZVGVFMNZBCQZRZACSZRZCEUAVBVCVDVOUBVBVAVCVDRZVOR
      ZVPHDLZIZVSJIZRZVHBDULZOZBPZVLBVSQZRZAVSSZRVRDCEGVSCUCZWBVQWHVOWIVTVCWAVD
      VSCHUDVSCJUETWGVNAVSCWIWEVKWFVMWIWDVJBWIWCVIVHVSCVFUFUGUHVLBVSCUITUJTDABU
      KUMVBVQVEVOVBVQVEVBVCVDVEVEUNUOVBVCVDUPUQURUSUT $.
  $}

  ${
    $d x y A $.
    $( A positive real is not empty.  (Contributed by NM, 15-May-1996.)
       (Revised by Mario Carneiro, 11-May-2013.)
       (New usage is discouraged.) $)
    prn0 $p |- ( A e. P. -> A =/= (/) ) $=
      ( vy vx cnp wcel c0 wpss wne cvv cnq w3a cv cltq wbr wi wal wrex wa elnpi
      wral simpl2 sylbi 0pss sylib ) ADEZFAGZAFHUEAIEZUFAJGZKBLZCLZMNUIAEOBPUJU
      IMNBAQRCATZRUFCBASUGUFUHUKUAUBAUCUD $.

    $( A positive real is a subset of the positive fractions.  (Contributed by
       NM, 29-Feb-1996.)  (Revised by Mario Carneiro, 11-May-2013.)
       (New usage is discouraged.) $)
    prpssnq $p |- ( A e. P. -> A C. Q. ) $=
      ( vy vx cnp wcel cvv c0 wpss cnq w3a cv cltq wbr wi wal wrex elnpi simpl3
      wa wral sylbi ) ADEAFEZGAHZAIHZJBKZCKZLMUEAENBOUFUELMBAPSCATZSUDCBAQUBUCU
      DUGRUA $.
  $}

  $( A positive real is a set of positive fractions.  (Contributed by NM,
     13-Mar-1996.)  (Revised by Mario Carneiro, 11-May-2013.)
     (New usage is discouraged.) $)
  elprnq $p |- ( ( A e. P. /\ B e. A ) -> B e. Q. ) $=
    ( cnp wcel cnq prpssnq pssssd sselda ) ACDZAEBIAEAFGH $.

  $( The empty set is not a positive real.  (Contributed by NM, 15-Nov-1995.)
     (New usage is discouraged.) $)
  0npr $p |- -. (/) e. P. $=
    ( c0 wceq cnp wcel wn eqid prn0 necon2bi ax-mp ) AABACDZEAFJAAAGHI $.

  ${
    $d x y A $.  $d x y B $.  $d y C $.
    $( A positive real is closed downwards under the positive fractions.
       Definition 9-3.1 (ii) of [Gleason] p. 121.  (Contributed by NM,
       25-Feb-1996.)  (Revised by Mario Carneiro, 11-May-2013.)
       (New usage is discouraged.) $)
    prcdnq $p |- ( ( A e. P. /\ B e. A ) -> ( C <Q B -> C e. A ) ) $=
      ( vx vy cnp wcel wa cltq wbr wi cvv cnq cxp wrel wceq eleq1 anbi2d wpss
      cv wss ltrelnq relxp relss mp2 brrelexi breq2 anbi12d imbi1d imbi12d wrex
      breq1 wal c0 w3a elnpi simprbi r19.21bi simpld 19.21bi imp vtocl2g sylan2
      wral adantll pm2.43i ex ) AFGZBAGZHZCBIJZCAGZVJVKHZVLVIVKVMVLKZVHVKVICLGV
      NCBIIMMNZUAVOOIOUBMMUCIVOUDUEUFVHDTZAGZHZETZVPIJZHZVSAGZKVJVSBIJZHZWBKVND
      EBCALVPBPZWAWDWBWEVRVJVTWCWEVQVIVHVPBAQRVPBVSIUGUHUIVSCPZWDVMWBVLWFWCVKVJ
      VSCBIULRVSCAQUJVRVTWBVRVTWBKZEVRWGEUMZVPVSIJEAUKZVHWHWIHZDAVHALGUNASAMSUO
      WJDAVDDEAUPUQURUSUTVAVBVCVEVFVG $.
  $}

  $( A positive fraction not in a positive real is an upper bound.  Remark (1)
     of [Gleason] p. 122.  (Contributed by NM, 25-Feb-1996.)
     (New usage is discouraged.) $)
  prub $p |- ( ( ( A e. P. /\ B e. A ) /\ C e. Q. ) ->
             ( -. C e. A -> B <Q C ) ) $=
    ( cnp wcel wa cnq wn wceq cltq wo wi eleq1 biimpcd adantl prcdnq jaod con3d
    wbr adantr wb elprnq wor ltsonq sotric mpan sylan sylibrd ) ADEZBAEZFZCGEZF
    CAEZHZBCIZCBJSZKZHZBCJSZUKUNURLULUKUQUMUKUOUMUPUJUOUMLUIUOUJUMBCAMNOABCPQRT
    UKBGEZULUSURUAZABUBGJUCUTULFVAUDGBCJUEUFUGUH $.

  ${
    $d x y A $.  $d x y B $.
    $( A positive real has no largest member.  Definition 9-3.1(iii) of
       [Gleason] p. 121.  (Contributed by NM, 9-Mar-1996.)  (Revised by Mario
       Carneiro, 11-May-2013.)  (New usage is discouraged.) $)
    prnmax $p |- ( ( A e. P. /\ B e. A ) -> E. x e. A B <Q x ) $=
      ( vy cnp wcel cv cltq wbr wrex wa wceq eleq1 anbi2d breq1 rexbidv imbi12d
      wi wal wpss cvv cnq w3a wral elnpi simprbi r19.21bi simprd vtoclg anabsi7
      c0 ) BEFZCBFZCAGZHIZABJZULDGZBFZKZUQUNHIZABJZRULUMKZUPRDCBUQCLZUSVBVAUPVC
      URUMULUQCBMNVCUTUOABUQCUNHOPQUSUNUQHIUNBFRASZVAULVDVAKZDBULBUAFUKBTBUBTUC
      VEDBUDDABUEUFUGUHUIUJ $.
  $}

  ${
    $d A x y $.
    $( A simplifying observation, and an indication of why any attempt to
       develop a theory of the real numbers without the Axiom of Infinity is
       doomed to failure: since every member of ` P. ` is an infinite set, the
       negation of Infinity implies that ` P. ` , and hence ` RR ` , is empty.
       (Note that this proof, which used the fact that Dedekind cuts have no
       maximum, could just as well have used that they have no minimum, since
       they are downward-closed by ~ prcdnq and ~ nsmallnq ).  (Contributed by
       Mario Carneiro, 11-May-2013.)  (Revised by Mario Carneiro, 16-Nov-2014.)
       (New usage is discouraged.) $)
    npomex $p |- ( A e. P. -> _om e. _V ) $=
      ( vx vy cnp wcel cfn cvv wne com wn elex cv cltq wbr wrex wral wor adantr
      cnq sylib prnmax ralrimiva wa wss prpssnq pssssd ltsonq soss mpisyl simpr
      c0 prn0 fimax2g syl3anc ralnex rexbii rexnal bitri ex mt2d nelne1 syl2anc
      necomd fineqv necon1abii ) ADEZFGHIGEZVFGFVFAGEAFEZJGFHADKVFVHBLZCLMNZCAO
      ZBAPZVFVKBACAVIUAUBVFVHVLJZVFVHUCZVJJCAPZBAOZVMVNAMQZVHAUKHZVPVFVQVHVFASU
      DSMQVQVFASAUEUFUGASMUHUIRVFVHUJVFVRVHAULRBCAMUMUNVPVKJZBAOVMVOVSBAVJCAUOU
      PVKBAUQURTUSUTAGFVAVBVCVGFGVDVET $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( A positive real has no largest member.  Addition version.  (Contributed
       by NM, 7-Apr-1996.)  (Revised by Mario Carneiro, 11-May-2013.)
       (New usage is discouraged.) $)
    prnmadd $p |- ( ( A e. P. /\ B e. A ) -> E. x ( B +Q x ) e. A ) $=
      ( vy cnp wcel wa cv cltq wbr wrex cplq wex prnmax wceq cnq ltrelnq simprd
      co brel ltexnq biimpcd mpd eleq1a eximdv syl5 rexlimiv syl ) BEFCBFGCDHZI
      JZDBKCAHLSZBFZAMZDBCNUJUMDBUJUKUIOZAMZUIBFZUMUJUIPFZUOUJCPFUQCUIPPIQTRUQU
      JUOACUIUAUBUCUPUNULAUIBUKUDUEUFUGUH $.
  $}

  ${
    $d x y $.
    $( Positive real 'less than' is a relation on positive reals.  (Contributed
       by NM, 14-Feb-1996.)  (New usage is discouraged.) $)
    ltrelpr $p |- <P C_ ( P. X. P. ) $=
      ( vx vy cltp cv cnp wcel wa wpss copab cxp df-ltp opabssxp eqsstri ) CADZ
      EFBDZEFGNOHZGABIEEJABKPABEELM $.
  $}

  ${
    $d x y z f g h A $.  $d x y z f g h B $.  $d x y z w v f g h G $.
    $d f g F $.  $d f g h C $.  $d g h D $.
    genp.1 $e |- F = ( w e. P. , v e. P. |->
                    { x | E. y e. w E. z e. v x = ( y G z ) } ) $.
    genp.2 $e |- ( ( y e. Q. /\ z e. Q. ) -> ( y G z ) e. Q. ) $.
    $( Value of general operation (addition or multiplication) on positive
       reals.  (Contributed by NM, 10-Mar-1996.)  (Revised by Mario Carneiro,
       17-Nov-2014.)  (New usage is discouraged.) $)
    genpv $p |- ( ( A e. P. /\ B e. P. ) -> ( A F B ) =
               { f | E. g e. A E. h e. B f = ( g G h ) } ) $=
      ( cnp wcel cv wceq wrex cnq wa cab oveq1 rexeq abbidv eqeq12d rexbidv cvv
      co oveq2 wss wi elprnq eleq1 syl5ibrcom syl2an an4s rexlimdvva nqex ssexg
      abssdv sylancl weq ovmpt2g vtocl2ga eqeq1 2rexbidv eqeq2d cbvrex2v syl6bb
      mpd3an3 cbvabv syl6eq ) FOPGOPUAFGKUIZAQZBQZCQZLUIZRZCGSZBFSZAUBZHQZIQZJQ
      ZLUIZRZJGSIFSZHUBWCWDKUIZVSCWDSZBWCSZAUBZRZFWDKUIZWJBFSZAUBZRVNWBRHIFGOOW
      CFRZWIWNWLWPWCFWDKUCWQWKWOAWJBWCFUDUEUFWDGRZWNVNWPWBWDGFKUJWRWOWAAWRWJVTB
      FVSCWDGUDUGUEUFWCOPZWDOPZWLUHPZWMWSWTUAZWLTUKTUHPXAXBWKATXBVSVOTPZBCWCWDW
      SVPWCPZWTVQWDPZVSXCULZWSXDUAVPTPZVQTPZXFWTXEUAWCVPUMWDVQUMXGXHUAXCVSVRTPN
      VOVRTUNUOUPUQURVAUSWLTUHUTVBDEWCWDOOVSCEQZSZBDQZSZAUBWLKXJBWCSZAUBUHDHVCX
      LXMAXJBXKWCUDUEEIVCZXMWKAXNXJWJBWCVSCXIWDUDUGUEMVDVKVEWAWHAHAHVCZWAWCVRRZ
      CGSBFSWHXOVSXPBCFGVOWCVRVFVGXPWGWCWDVQLUIZRBCIJFGBIVCVRXQWCVPWDVQLUCVHCJV
      CXQWFWCVQWEWDLUJVHVIVJVLVM $.

    $( Membership in value of general operation (addition or multiplication) on
       positive reals.  (Contributed by NM, 13-Mar-1996.)  (Revised by Mario
       Carneiro, 12-Jun-2013.)  (New usage is discouraged.) $)
    genpelv $p |- ( ( A e. P. /\ B e. P. ) -> ( C e. ( A F B ) <->
               E. g e. A E. h e. B C = ( g G h ) ) ) $=
      ( vf cnp wcel cv wceq wrex wa co cab genpv eleq2d ovex syl6eqel rexlimivw
      cvv id eqeq1 2rexbidv elab3 syl6bb ) FPQGPQUAZHFGKUBZQHORZIRZJRZLUBZSZJGT
      IFTZOUCZQHUTSZJGTZIFTZUOUPVCHABCDEFGOIJKLMNUDUEVBVFOHVEHUIQZIFVDVGJGVDHUT
      UIVDUJURUSLUFUGUHUHUQHSVAVDIJFGUQHUTUKULUMUN $.

    $( Pre-closure law for general operation on positive reals.  (Contributed
       by NM, 10-Mar-1996.)  (Revised by Mario Carneiro, 12-Jun-2013.)
       (New usage is discouraged.) $)
    genpprecl $p |- ( ( A e. P. /\ B e. P. ) -> ( ( C e. A /\ D e. B ) ->
                  ( C G D ) e. ( A F B ) ) ) $=
      ( vg vh wcel wa co cnp cv wceq wrex eqid rspceov mp3an3 genpelv syl5ibr )
      HFPZIGPZQHIKRZFGJRPFSPGSPQUJNTOTKRUAOGUBNFUBZUHUIUJUJUAUKUJUCNOFGHIUJKUDU
      EABCDEFGUJNOJKLMUFUG $.

    $( Domain of general operation on positive reals.  (Contributed by NM,
       18-Nov-1995.)  (Revised by Mario Carneiro, 17-Nov-2014.)
       (New usage is discouraged.) $)
    genpdm $p |- dom F = ( P. X. P. ) $=
      ( cv co wceq wrex cvv wcel cnp wral wa cnq elprnq cab wi eleq1 syl5ibrcom
      cxp wfn cdm wss syl2an an4s rexlimdvva abssdv ssexg sylancl rgen2a fnmpt2
      nqex fndm mp2b ) AJZBJZCJZGKZLZCEJZMBDJZMZAUAZNOZEPQDPQFPPUEZUFFUGVJLVIDE
      PVFPOZVEPOZRZVHSUHSNOVIVMVGASVMVDUTSOZBCVFVEVKVAVFOZVLVBVEOZVDVNUBZVKVORV
      ASOZVBSOZVQVLVPRVFVATVEVBTVRVSRVNVDVCSOIUTVCSUCUDUIUJUKULUQVHSNUMUNUODEPP
      VHFNHUPVJFURUS $.

    $( The result of an operation on positive reals is not empty.  (Contributed
       by NM, 28-Feb-1996.)  (Revised by Mario Carneiro, 12-Jun-2013.)
       (New usage is discouraged.) $)
    genpn0 $p |- ( ( A e. P. /\ B e. P. ) -> (/) C. ( A F B ) ) $=
      ( vf vg cnp wcel wa cv wex c0 wne co wpss prn0 n0 sylib anim12i genpprecl
      wi ne0i 0pss sylibr syl6 expcomd exlimdv com23 impd mpd ) FNOZGNOZPZLQZFO
      ZLRZMQZGOZMRZPSFGHUAZUBZURVCUSVFURFSTVCFUCLFUDUEUSGSTVFGUCMGUDUEUFUTVCVFV
      HUTVBVFVHUHLUTVFVBVHUTVEVBVHUHMUTVBVEVHUTVBVEPVAVDIUAZVGOZVHABCDEFGVAVDHI
      JKUGVJVGSTVHVGVIUIVGUJUKULUMUNUOUNUPUQ $.

    $( The result of an operation on positive reals is a subset of the positive
       fractions.  (Contributed by NM, 18-Nov-1995.)  (Revised by Mario
       Carneiro, 12-Jun-2013.)  (New usage is discouraged.) $)
    genpss $p |- ( ( A e. P. /\ B e. P. ) -> ( A F B ) C_ Q. ) $=
      ( vf vg vh cnp wcel wa co cnq cv wceq wrex genpelv elprnq im2anan9 caovcl
      wi ex syl6 eleq1a rexlimdvv sylbid ssrdv ) FOPZGOPZQZLFGHRZSUPLTZUQPURMTZ
      NTZIRZUAZNGUBMFUBURSPZABCDEFGURMNHIJKUCUPVBVCMNFGUPUSFPZUTGPZQZVASPZVBVCU
      GUPVFUSSPZUTSPZQVGUNVDVHUOVEVIUNVDVHFUSUDUHUOVEVIGUTUDUHUEBCUSUTSIKUFUIVA
      SURUJUIUKULUM $.

    ${
      $d w v A $.  $d w v B $.  $d w v F $.
      genpnnp.3 $e |- ( z e. Q. -> ( x <Q y <-> ( z G x ) <Q ( z G y ) ) ) $.
      genpnnp.4 $e |- ( x G y ) = ( y G x ) $.
      $( The result of an operation on positive reals is different from the set
         of positive fractions.  (Contributed by NM, 29-Feb-1996.)  (Revised by
         Mario Carneiro, 12-Jun-2013.)  (New usage is discouraged.) $)
      genpnnp $p |- ( ( A e. P. /\ B e. P. ) -> -. ( A F B ) = Q. ) $=
        ( vf vg wcel wa cnq wn wi cnp cv wex co wceq prpssnq pssnel syl anim12i
        wpss eeanv sylibr wrex wral cltq wbr prub im2anan9 elprnq anim1i ltsonq
        wor so2nr mpan ad2antrr wb simpr simpl ancoms vex caovord3 anbi2d sylan
        mtbid con2d syl2an syld com24 imp32 ralrimivv ralnex ralbii bitri sylib
        ex an4s adantr mtbird expcom caovcl eleq2 biimprcd con3d ad2ant2r syldc
        genpelv exlimdvv mpd ) FUAPZGUAPZQZDUBZRPZXBFPSZQZEUBZRPZXFGPSZQZQZEUCD
        UCZFGHUDZRUEZSZXAXEDUCZXIEUCZQXKWSXOWTXPWSFRUJXOFUFDFRUGUHWTGRUJXPGUFEG
        RUGUHUIXEXIDEUKULXAXJXNDEXJXAXBXFIUDZXLPZSZXNXCXGXDXHXAXSTZXDXHQZXCXGQZ
        XTXAYAYBQZXSXAYCQZXRXQNUBZOUBZIUDUEZOGUMZNFUMZYDYGSZOGUNZNFUNZYISZYDYJN
        OFGXAYAYBYEFPZYFGPZQZYJTXAYPYBYAYJXAYPYBYAYJTZTZWSYNWTYOYRWSYNQZWTYOQZQ
        YBYQYSXCYTXGYQYSXCQZYTXGQZQYAYEXBUOUPZYFXFUOUPZQZYJUUAXDUUCUUBXHUUDFYEX
        BUQGYFXFUQURUUAYERPZXCQZYFRPZXGQZUUEYJTUUBYSUUFXCFYEUSUTYTUUHXGGYFUSUTU
        UGUUIQZYGUUEUUJYGUUESUUJYGQUUCXBYEUOUPZQZUUEUUGUULSZUUIYGRUOVBUUGUUMVAR
        YEXBUOVCVDVEUUJXGUUFQZYGUULUUEVFUUIUUGUUNUUIXGUUGUUFUUHXGVGUUFXCVHUIVIU
        UNYGQUUKUUDUUCABCXBXFYEYFUORIDVJEVJLNVJMOVJVKVLVMVNWEVOVPVQWFWEWFWEVRVS
        VTYLYHSZNFUNYMYKUUONFYGOGWAWBYHNFWAWCWDXAXRYIVFYCABCDEFGXQNOHIJKWPWGWHW
        IVIWFXCXGXSXNTZXDXHYBXQRPZUUPBCXBXFRIKWJUUQXMXRXMXRUUQXLRXQWKWLWMUHWNWO
        WQWR $.
    $}

    ${
      $d F h $.
      genpcd.2 $e |- ( ( ( ( A e. P. /\ g e. A ) /\
                       ( B e. P. /\ h e. B ) ) /\ x e. Q. ) ->
                       ( x <Q ( g G h ) -> x e. ( A F B ) ) ) $.
      $( Downward closure of an operation on positive reals.  (Contributed by
         NM, 13-Mar-1996.)  (Revised by Mario Carneiro, 12-Jun-2013.)
         (New usage is discouraged.) $)
      genpcd $p |- ( ( A e. P. /\ B e. P. ) -> ( f e. ( A F B ) ->
                   ( x <Q f -> x e. ( A F B ) ) ) ) $=
        ( wcel wa cv cltq wi cnp wbr co cnq ltrelnq brel simpld wceq wb genpelv
        wrex adantr breq2 biimpd sylan9r an4s impancom rexlimdvv sylbid ex syl5
        exp31 com34 pm2.43d com23 ) FUAPZGUAPZQZARZHRZSUBZVJFGKUCZPZVIVLPZVHVKV
        MVNTVHVKVMVKVNVKVIUDPZVHVMVKVNTZTZVKVOVJUDPVIVJUDUDSUEUFUGVHVOVQVHVOQZV
        MVJIRZJRZLUCZUHZJGUKIFUKZVPVHVMWCUIVOABCDEFGVJIJKLMNUJULVRWBVPIJFGVHVSF
        PZVTGPZQVOWBVPTZVFWDVGWEVOWFTVFWDQVGWEQQZVOWBVPWBVKVIWASUBZWGVOQVNWBVKW
        HVJWAVISUMUNOUOVBUPUQURUSUTVAVCVDVE $.
    $}

    ${
      $d x y h F $.
      genpnmax.2 $e |- ( v e. Q. ->
                       ( z <Q w <-> ( v G z ) <Q ( v G w ) ) ) $.
      genpnmax.3 $e |- ( z G w ) = ( w G z ) $.
      $( An operation on positive reals has no largest member.  (Contributed by
         NM, 10-Mar-1996.)  (Revised by Mario Carneiro, 12-Jun-2013.)
         (New usage is discouraged.) $)
      genpnmax $p |- ( ( A e. P. /\ B e. P. ) -> ( f e. ( A F B ) ->
                     E. x e. ( A F B ) f <Q x ) ) $=
        ( vg vh wcel wa cv cltq cnp co wceq wbr genpelv prnmax adantr genpprecl
        wrex wi exp4b com34 imp32 cnq elprnq vex caovord2 biimpd adantl anim12d
        syl breq2 rspcev syl6 adantlr expd rexlimdv mpd rexbidv syl5ibr expdcom
        an4s breq1 rexlimdvv sylbid ) FUAQZGUAQZRZHSZFGIUBZQVSOSZPSZJUBZUCZPGUI
        OFUIVSASZTUDZAVTUIZABCDEFGVSOPIJKLUEVRWDWGOPFGWDVRWAFQZWBGQZRZWGVRWJRWG
        WDWCWETUDZAVTUIZVPWHVQWIWLVPWHRZVQWIRZRZWABSZTUDZBFUIZWLWMWRWNBFWAUFUGW
        OWQWLBFWOWPFQZWQWLVPWNWSWQRZWLUJWHVPWNRZWTWPWBJUBZVTQZWCXBTUDZRWLXAWSXC
        WQXDVPVQWIWSXCUJVPVQWSWIXCVPVQWSWIXCABCDEFGWPWBIJKLUHUKULUMWNWQXDUJZVPW
        NWBUNQZXEGWBUOXFWQXDCDEWAWPWBTUNJOUPBUPMPUPNUQURVAUSUTWKXDAXBVTWEXBWCTV
        BVCVDVEVFVGVHVLWDWFWKAVTVSWCWETVMVIVJVKVNVO $.
    $}

    ${
      $d w v A $.  $d w v B $.  $d x y w v h F $.
      genpcl.3 $e |- ( h e. Q. ->
                      ( f <Q g <-> ( h G f ) <Q ( h G g ) ) ) $.
      genpcl.4 $e |- ( x G y ) = ( y G x ) $.
      genpcl.5 $e |- ( ( ( ( A e. P. /\ g e. A ) /\
                       ( B e. P. /\ h e. B ) ) /\ x e. Q. ) ->
                       ( x <Q ( g G h ) -> x e. ( A F B ) ) ) $.
      $( Closure of an operation on reals.  (Contributed by NM, 13-Mar-1996.)
         (Revised by Mario Carneiro, 17-Nov-2014.)
         (New usage is discouraged.) $)
      genpcl $p |- ( ( A e. P. /\ B e. P. ) -> ( A F B ) e. P. ) $=
        ( wcel cnq cv cnp wa c0 co wpss cltq wbr wi wal wrex wral genpn0 wss wn
        wceq genpss vex caovord genpnnp dfpss2 sylanbrc genpcd alrimdv genpnmax
        caovcom jcad ralrimiv jca31 elnp sylibr ) FUARGUARUBZUCFGKUDZUEZVLSUEZU
        BATZHTZUFUGVOVLRUHZAUIZVPVOUFUGAVLUJZUBZHVLUKZUBVLUARVKVMVNWAABCDEFGKLM
        NULVKVLSUMVLSUOUNVNABCDEFGKLMNUPABCDEFGKLMNHIJVOBTCTZUFSLAUQBUQOURPUSVL
        SUTVAVKVTHVLVKVPVLRZVRVSVKWCVQAABCDEFGHIJKLMNQVBVCABCDEFGHKLMNHIJWBDTZE
        TUFSLCUQZDUQZOURABWBWDLWEWFPVEVDVFVGVHHAVLVIVJ $.
    $}

    ${
      $d x y z w v f g h t $.  $d x f g h t A $.  $d x f g h t B $.
      $d x y z f g h t C $.  $d x y z h t F $.  $d t G $.
      genpass.4 $e |- dom F = ( P. X. P. ) $.
      genpass.5 $e |- ( ( f e. P. /\ g e. P. ) -> ( f F g ) e. P. ) $.
      genpass.6 $e |- ( ( f G g ) G h ) = ( f G ( g G h ) ) $.
      $( Associativity of an operation on reals.  (Contributed by NM,
         18-Mar-1996.)  (Revised by Mario Carneiro, 12-Jun-2013.)
         (New usage is discouraged.) $)
      genpass $p |- ( ( A F B ) F C ) = ( A F ( B F C ) ) $=
        ( vt wrex cnp wcel w3a co wceq wex genpelv 3adant1 anbi1d exbidv df-rex
        cv wa wb ovex isseti biantrur 19.41v bitr4i rexcom4 bitri oveq2 syl6eqr
        rexbii eqeq2d pm5.32i r19.41v bitr3i exbii 3bitri 3bitr4g caovcl sylan2
        rexbidv 3impb 3adant3 oveq1 3bitr4ri r19.41vv bitrd 3bitr4rd eqrdv 0npr
        stoic3 ndmovass pm2.61i ) FUAUBZGUAUBZHUAUBZUCZFGLUDZHLUDZFGHLUDZLUDZUE
        WJAWLWNWJAULZIULZSULZMUDZUEZSWMTZIFTZWOWPJULZMUDZKULZMUDZUEZKHTZJGTZIFT
        ZWOWNUBZWOWLUBZWJWTXHIFWJWQWMUBZWSUMZSUFWQXBXDMUDZUEZKHTZJGTZWSUMZSUFZW
        TXHWJXMXRSWJXLXQWSWHWIXLXQUNWGABCDEGHWQJKLMNOUGUHUIUJWSSWMUKXHXOXFUMZKH
        TZSUFZJGTYAJGTZSUFXSXGYBJGXGXTSUFZKHTYBXFYDKHXFXOSUFZXFUMYDYEXFSXNXBXDM
        UOUPUQXOXFSURUSVDXTKSHUTVAVDYAJSGUTYCXRSYCXPWSUMZJGTXRYAYFJGYAXOWSUMZKH
        TYFYGXTKHXOWSXFXOWRXEWOXOWRWPXNMUDXEWQXNWPMVBRVCVEVFVDXOWSKHVGVHVDXPWSJ
        GVGVAVIVJVKVNWGWHWIXJXAUNZWHWIUMWGWMUAUBYHIJGHUALQVLABCDEFWMWOISLMNOUGV
        MVOWJXKWOWQXDMUDZUEZKHTZSWKTZXIWGWHWKUAUBWIXKYLUNIJFGUALQVLABCDEWKHWOSK
        LMNOUGWDWJWQWKUBZYKUMZSUFWQXCUEZJGTIFTZYKUMZSUFZYLXIWJYNYQSWJYMYPYKWGWH
        YMYPUNWIABCDEFGWQIJLMNOUGVPUIUJYKSWKUKXIYOYKUMZJGTZSUFZIFTYTIFTZSUFYRXH
        UUAIFXHYSSUFZJGTUUAXGUUCJGYOXGUMZSUFYOSUFZXGUMUUCXGYOXGSURYSUUDSYOYKXGY
        OYJXFKHYOYIXEWOWQXCXDMVQVEVNVFVIUUEXGSXCWPXBMUOUPUQVRVDYSJSGUTVAVDYTISF
        UTUUBYQSYOYKIJFGVSVIVJVKVTWAWBFGHUALPWCWEWF $.
    $}
  $}

  ${
    $d x y z f g h A $.  $d x y z f g h B $.  $d x y z v u f g h $.
    $( Value of addition on positive reals.  (Contributed by NM, 28-Feb-1996.)
       (New usage is discouraged.) $)
    plpv $p |- ( ( A e. P. /\ B e. P. ) -> ( A +P. B ) =
             { x | E. y e. A E. z e. B x = ( y +Q z ) } ) $=
      ( vf vg vh vu vv cpp cplq df-plp cv addclnq genpv ) FGHIJDEABCKLIJFGHMGNH
      NOP $.

    $( Value of multiplication on positive reals.  (Contributed by NM,
       28-Feb-1996.)  (New usage is discouraged.) $)
    mpv $p |- ( ( A e. P. /\ B e. P. ) -> ( A .P. B ) =
             { x | E. y e. A E. z e. B x = ( y .Q z ) } ) $=
      ( vf vg vh vu vv cmp cmq df-mp cv mulclnq genpv ) FGHIJDEABCKLIJFGHMGNHNO
      P $.

    $( Domain of addition on positive reals.  (Contributed by NM, 18-Nov-1995.)
       (New usage is discouraged.) $)
    dmplp $p |- dom +P. = ( P. X. P. ) $=
      ( vz vu vv vx vy cpp cplq df-plp cv addclnq genpdm ) ABCDEFGDEABCHBICIJK
      $.

    $( Domain of multiplication on positive reals.  (Contributed by NM,
       18-Nov-1995.)  (New usage is discouraged.) $)
    dmmp $p |- dom .P. = ( P. X. P. ) $=
      ( vz vu vv vx vy cmp cmq df-mp cv mulclnq genpdm ) ABCDEFGDEABCHBICIJK $.
  $}

  ${
    $d A x y z $.
    $( The canonical embedding of the rationals into the reals.  (Contributed
       by Mario Carneiro, 12-Jun-2013.)  (New usage is discouraged.) $)
    nqpr $p |- ( A e. Q. -> { x | x <Q A } e. P. ) $=
      ( vz vy cnq wcel c0 cv cltq wbr wa wi wex sylibr ltrelnq ltsonq breq1 jca
      wpss vex cab wal wrex wral cnp wne nsmallnq abn0 0pss wss wn simpld abssi
      brel soirri elabg mtbiri ancli ssnelpss mpsyl sotri expcom adantl syl6ibr
      elab alrimiv ltbtwnnq anbi2i biimpri ancomd eximi sylbi sylan2b ralrimiva
      df-rex elnp sylanbrc ) BEFZGAHZBIJZAUAZSZWAESZKCHZDHZIJZWDWAFZLZCUBZWEWDI
      JZCWAUCZKZDWAUDWAUEFVRWBWCVRWAGUFZWBVRVTAMWMABUGVTAUHNWAUINWAEUJVRVRBWAFZ
      UKZKWCVTAEVTVSEFVRVSBEEIOUNULUMVRWOVRWNBBIJZBIEPOUOVTWPABEVSBBIQUPUQURWAE
      BUSUTRVRWLDWAWEWAFVRWEBIJZWLVTWQAWEDTVSWEBIQVEVRWQKZWIWKWRWHCWRWFWDBIJZWG
      WQWFWSLVRWFWQWSWDWEBIEPOVAVBVCVTWSAWDCTVSWDBIQVEZVDVFWRWGWJKZCMZWKWQXBVRW
      QWJWSKZCMXBCWEBVGXCXACXCWJWGWJWGKXCWGWSWJWTVHVIVJVKVLVCWJCWAVONRVMVNDCWAV
      PVQ $.
  $}

  $( The positive real number 'one'.  (Contributed by NM, 13-Mar-1996.)
     (Revised by Mario Carneiro, 12-Jun-2013.)  (New usage is discouraged.) $)
  1pr $p |- 1P e. P. $=
    ( vx c1p cv c1q cltq wbr cab cnp df-1p cnq wcel 1nq nqpr ax-mp eqeltri ) BA
    CDEFAGZHAIDJKPHKLADMNO $.

  ${
    $d x y z w $.  $d y z w g $.  $d y z w h $.
    $( Lemma to prove downward closure in positive real addition.  Part of
       proof of Proposition 9-3.5 of [Gleason] p. 123.  (Contributed by NM,
       13-Mar-1996.)  (New usage is discouraged.) $)
    addclprlem1 $p |- ( ( ( A e. P. /\ g e. A ) /\ x e. Q. ) ->
   ( x <Q ( g +Q h ) -> ( ( x .Q ( *Q ` ( g +Q h ) ) ) .Q g ) e. A ) ) $=
      ( vy vz vw wcel cv wa cnq co cltq wbr crq cfv cmq ltmnq ovex c1q cnp cplq
      wb elprnq ltrnq mulcomnq caovord2 sylan9bbr syl5bb recidnq oveq1d mulidnq
      vex syl5eq sylan9eqr breq2d bitrd sylan wi prcdnq adantr sylbid ) BUAHCIZ
      BHJZAIZKHZJVEVCDIUBLZMNZVEVGOPZQLZVCQLZVCMNZVKBHZVDVCKHZVFVHVLUCBVCUDVNVF
      JZVHVKVEVEOPZQLZVCQLZMNZVLVHVIVPMNZVOVSVEVGUEVFVTVJVQMNVNVSVIVPVEREFGVJVQ
      VCMKQVEVIQSVEVPQSEIZFIZGIRCUMWAWBUFUGUHUIVOVRVCVKMVFVNVRTVCQLZVCVFVQTVCQV
      EUJUKVNWCVCTQLVCTVCUFVCULUNUOUPUQURVDVLVMUSVFBVCVKUTVAVB $.
  $}

  ${
    $d x y z w v g h $.  $d x y z A $.  $d x y z B $.
    $( Lemma to prove downward closure in positive real addition.  Part of
       proof of Proposition 9-3.5 of [Gleason] p. 123.  (Contributed by NM,
       13-Mar-1996.)  (New usage is discouraged.) $)
    addclprlem2 $p |- ( ( ( ( A e. P. /\ g e. A ) /\
                       ( B e. P. /\ h e. B ) ) /\ x e. Q. ) ->
                       ( x <Q ( g +Q h ) -> x e. ( A +P. B ) ) ) $=
      ( vy vz vw wcel cv wa cnq cplq co cltq crq cmq wi simpl c1q vv cnp breq2i
      wbr cfv addclprlem1 adantlr addcomnq fveq2i oveq2i oveq1i 3imtr4g adantll
      cpp eleq1i jcad anim12i df-plp addclnq genpprecl 3syl syld distrnq eqtr3i
      mulassnq mulcomnq wceq elprnq recidnq syl5eq oveq2d mulidnq eleq1d sylibd
      sylan9eq ) BUBIZDJZBIZKZCUBIZEJZCIZKZKZAJZLIZKZWEVQWAMNZOUDZWEWHPUEZQNZVQ
      QNZWKWAQNZMNZBCUNNZIZWEWOIWGWIWLBIZWMCIZKZWPWGWIWQWRVSWFWIWQRWCABDEUFUGWC
      WFWIWRRVSWCWFKWEWAVQMNZOUDWEWTPUEZQNZWAQNZCIWIWRACEDUFWHWTWEOVQWAUHZUCWMX
      CCWKXBWAQWJXAWEQWHWTPXDUIUJUKUOULUMUPWGWDVPVTKWSWPRWDWFSVSVPWCVTVPVRSVTWB
      SUQAFGHUABCWLWMUNMHUAAFGURFJGJUSUTVAVBWGWNWEWOWGWNWEWJWHQNZQNZWEWKWHQNWNX
      FWKVQWAVCWEWJWHVEVDWDWFXFWETQNWEWDXETWEQWDXEWHWJQNZTWJWHVFWDVQLIZWALIZKWH
      LIXGTVGVSXHWCXIBVQVHCWAVHUQVQWAUSWHVIVAVJVKWEVLVOVJVMVN $.
  $}

  ${
    $d x y z w v f g h $.  $d x y z w v f g h A $.  $d x y z w v f g h B $.
    $( Closure of addition on positive reals.  First statement of Proposition
       9-3.5 of [Gleason] p. 123.  (Contributed by NM, 13-Mar-1996.)
       (New usage is discouraged.) $)
    addclpr $p |- ( ( A e. P. /\ B e. P. ) -> ( A +P. B ) e. P. ) $=
      ( vx vy vz vw vv vf vg vh cpp cplq df-plp cv addclnq addcomnq addclprlem2
      ltanq genpcl ) CDEFGABHIJKLFGCDEMDNZENOHNINJNRCNTPCABIJQS $.
  $}

  ${
    $d x y z w v g h $.  $d x y z A $.  $d x y z B $.
    $( Lemma to prove downward closure in positive real multiplication.  Part
       of proof of Proposition 9-3.7 of [Gleason] p. 124.  (Contributed by NM,
       14-Mar-1996.)  (New usage is discouraged.) $)
    mulclprlem $p |- ( ( ( ( A e. P. /\ g e. A ) /\
                       ( B e. P. /\ h e. B ) ) /\ x e. Q. ) ->
                       ( x <Q ( g .Q h ) -> x e. ( A .P. B ) ) ) $=
      ( vy vz vw wcel cv wa cnq cmq co cltq wbr wi wb c1q syl5eq vv cnp crq cfv
      cmp elprnq recclnq vex ovex ltmnq fvex mulcomnq caovord2 mulassnq recidnq
      adantl oveq2d mulidnq sylan9eqr breq2d bitrd syl2an prcdnq adantr mulclnq
      syl sylbid df-mp genpprecl exp4b com34 imp32 adantlr syld sylan9eq eleq1d
      sylan sylibd ) BUBIZDJZBIZKZCUBIZEJZCIZKZKZAJZLIZKWHVTWDMNZOPZWHWDUCUDZMN
      ZWDMNZBCUENZIZWHWOIZWGWKWPQWIWGWKWMBIZWPWGWKWMVTOPZWRWBVTLIZWDLIZWKWSRWFB
      VTUFCWDUFZWTXAKZWKWMWJWLMNZOPZWSXCWLLIZWKXERXAXFWTWDUGUPFGHWHWJWLOLMAUHVT
      WDMUIFJZGJZHJUJWDUCUKXGXHULUMVFXCXDVTWMOXAWTXDVTSMNZVTXAXDVTWDWLMNZMNXIVT
      WDWLUNXAXJSVTMWDUOZUQTVTURUSUTVAVBWBWSWRQWFBVTWMVCVDVGVSWFWRWPQZWAVSWCWEX
      LVSWCWRWEWPVSWCWRWEWPAFGHUABCWMWDUEMHUAAFGVHXGXHVEVIVJVKVLVMVNVDWGXAWIWPW
      QRWFXAWBXBUPXAWIKWNWHWOXAWIWNWHSMNZWHXAWNWHWLWDMNZMNXMWHWLWDUNXAXNSWHMXAX
      NXJSWLWDULXKTUQTWHURVOVPVQVR $.
  $}

  ${
    $d x y z w v f g h $.  $d x y z w v f g h A $.  $d x y z w v f g h B $.
    $d x y z w A $.  $d x y z w B $.
    $( Closure of multiplication on positive reals.  First statement of
       Proposition 9-3.7 of [Gleason] p. 124.  (Contributed by NM,
       13-Mar-1996.)  (New usage is discouraged.) $)
    mulclpr $p |- ( ( A e. P. /\ B e. P. ) -> ( A .P. B ) e. P. ) $=
      ( vx vy vz vw vv vf vg vh cmp cmq df-mp mulclnq ltmnq mulcomnq mulclprlem
      cv genpcl ) CDEFGABHIJKLFGCDEMDRZERNHRIRJROCRTPCABIJQS $.
  $}

  ${
    $d f g h v w x y z $.  $d f g h x y z A $.  $d f g h x y z B $.
    $d f g h x y z C $.
    $( Addition of positive reals is commutative.  Proposition 9-3.5(ii) of
       [Gleason] p. 123.  (Contributed by NM, 19-Nov-1995.)
       (New usage is discouraged.) $)
    addcompr $p |- ( A +P. B ) = ( B +P. A ) $=
      ( vx vz vy cnp wcel wa cpp co wceq cv cplq wrex cab plpv addcomnq 2rexbii
      eqeq2i rexcom bitri abbii syl6eq ancoms eqtr4d dmplp ndmovcom pm2.61i ) A
      FGZBFGZHZABIJZBAIJZKUKULCLZDLZELZMJZKZEBNDANZCOZUMCDEABPUJUIUMUTKUJUIHUMU
      NUPUOMJZKZDANEBNZCOUTCEDBAPVCUSCVCURDANEBNUSVBUREDBAVAUQUNUPUOQSRUREDBATU
      AUBUCUDUEABFIUFUGUH $.

    $( Addition of positive reals is associative.  Proposition 9-3.5(i) of
       [Gleason] p. 123.  (Contributed by NM, 18-Mar-1996.)
       (New usage is discouraged.) $)
    addasspr $p |- ( ( A +P. B ) +P. C ) = ( A +P. ( B +P. C ) ) $=
      ( vx vy vz vw vv vf vg vh cplq df-plp cv addclnq addclpr addassnq genpass
      cpp dmplp ) DEFGHABCIJKSLGHDEFMENFNOTINZJNZPUAUBKNQR $.

    $( Multiplication of positive reals is commutative.  Proposition 9-3.7(ii)
       of [Gleason] p. 124.  (Contributed by NM, 19-Nov-1995.)
       (New usage is discouraged.) $)
    mulcompr $p |- ( A .P. B ) = ( B .P. A ) $=
      ( vx vz vy cnp wcel wa cmp co wceq cv cmq cab mpv mulcomnq eqeq2i 2rexbii
      wrex rexcom bitri abbii syl6eq ancoms eqtr4d dmmp ndmovcom pm2.61i ) AFGZ
      BFGZHZABIJZBAIJZKUKULCLZDLZELZMJZKZEBSDASZCNZUMCDEABOUJUIUMUTKUJUIHUMUNUP
      UOMJZKZDASEBSZCNUTCEDBAOVCUSCVCURDASEBSUSVBUREDBAVAUQUNUPUOPQRUREDBATUAUB
      UCUDUEABFIUFUGUH $.

    $( Multiplication of positive reals is associative.  Proposition 9-3.7(i)
       of [Gleason] p. 124.  (Contributed by NM, 18-Mar-1996.)
       (New usage is discouraged.) $)
    mulasspr $p |- ( ( A .P. B ) .P. C ) = ( A .P. ( B .P. C ) ) $=
      ( vx vy vz vw vv vf vg vh cmp df-mp mulclnq dmmp mulclpr mulassnq genpass
      cmq cv ) DEFGHABCIJKLSGHDEFMETFTNOITZJTZPUAUBKTQR $.
  $}

  ${
    $d x y z w v u f g h A $.  $d x y z w v u f g h B $.
    $d x y z w v u f g h C $.
    $( Lemma for distributive law for positive reals.  (Contributed by NM,
       1-May-1996.)  (Revised by Mario Carneiro, 13-Jun-2013.)
       (New usage is discouraged.) $)
    distrlem1pr $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
       ( A .P. ( B +P. C ) ) C_ ( ( A .P. B ) +P. ( A .P. C ) ) ) $=
      ( vw vx vv vf vg vh vy vz cnp wcel cpp co cmp cv cmq wceq wa wrex addclpr
      w3a df-mp mulclnq genpelv sylan2 3impb cplq df-plp addclnq 3adant1 adantr
      wb wi simprr simpr eqeq2d biimpac distrnq syl6eq mulclpr 3adant3 ad2antrr
      syl2an 3adant2 simpll genpprecl impl adantlrr simplr imp syl22anc eqeltrd
      oveq2 exp32 rexlimdvv sylbid com34 impd ssrdv ) ALMZBLMZCLMZUCZDABCNOZPOZ
      ABPOZACPOZNOZWEDQZWGMZWKEQZFQZROZSZFWFUAEAUAZWKWJMZWBWCWDWLWQUNZWCWDTWBWF
      LMWSBCUBGHIJKAWFWKEFPRJKGHIUDZHQZIQZUEZUFUGUHWEWPWREFAWFWEWMAMZWNWFMZWPWR
      UOWEXDWPXEWRWEXDWPXEWRUOWEXDWPTZTZXEWNJQZKQZUIOZSZKCUAJBUAZWRWEXEXLUNZXFW
      CWDXMWBGHIDEBCWNJKNUIDEGHIUJZXAXBUKZUFULUMXGXKWRJKBCXGXHBMZXICMZTZXKWRXGX
      RXKTZTZWKWMXHROZWMXIROZUIOZWJXGWPXKWKYCSXSWEXDWPUPXRXKUQWPXKTWKWMXJROZYCX
      KWPWKYDSXKWOYDWKWNXJWMRVOURUSWMXHXIUTVAVEXTWHLMZWILMZYAWHMZYBWIMZYCWJMZWE
      YEXFXSWBWCYEWDABVBVCVDWEYFXFXSWBWDYFWCACVBVFVDXSXGXPYGXPXQXKVGWEXDXPYGWPW
      EXDXPYGWBWCXDXPTYGUOWDGHIJKABWMXHPRWTXCVHVCVIVJUGXSXGXQYHXPXQXKVKWEXDXQYH
      WPWEXDXQYHWBWDXDXQTYHUOWCGHIJKACWMXIPRWTXCVHVFVIVJUGYEYFTYGYHTYIGHIDEWHWI
      YAYBNUIXNXOVHVLVMVNVPVQVRVPVSVTVQVRWA $.

    $( Lemma for distributive law for positive reals.  (Contributed by NM,
       2-May-1996.)  (Revised by Mario Carneiro, 14-Jun-2013.)
       (New usage is discouraged.) $)
    distrlem4pr $p |- ( ( ( A e. P. /\ B e. P. /\ C e. P. ) /\
         ( ( x e. A /\ y e. B ) /\ ( f e. A /\ z e. C ) ) ) ->
         ( ( x .Q y ) +Q ( f .Q z ) ) e. ( A .P. ( B +P. C ) ) ) $=
      ( vw vv vu vg vh wcel cv wa cltq cmq co cplq cnq cnp w3a wb simpl2 elprnq
      wbr cpp simprlr syl2anc simp1 simprl syl2an simpl3 simprrr ltmnq mulcomnq
      cmp vex caovord2 mulclnq ovex ltanq addcomnq syl sylan9bb syl12anc simpl1
      wi addclpr 3adant1 adantr mulclpr distrnq simprrl df-plp addclnq syl22anc
      genpprecl df-mp syl5eqelr prcdnq sylbid simpll sylan9bbr syl21anc simprll
      imp wo weq wor ltsonq sotrieq mpan oveq2d syl5eq eleq1d syl5ibcom sylbird
      wn oveq1 ecase3d ) DUAMZEUAMZFUAMZUBZANZDMZBNZEMZOZGNZDMZCNZFMZOZOZOZXFXK
      PUFZXKXFPUFZXFXHQRZXKXMQRZSRZDEFUGRZUQRZMZXQXRYBXKXHQRZYASRZPUFZYEXQXHTMZ
      XKTMZXMTMZXRYHUCXQXCXIYIXBXCXDXPUDZXEXGXIXOUHZEXHUEUIZXEXBXLYJXPXBXCXDUJZ
      XJXLXNUKDXKUEULZXQXDXNYKXBXCXDXPUMZXEXJXLXNUNZFXMUEUIZYIXRXTYFPUFZYJYKOZY
      HHIJXFXKXHPTQAURZGURZHNZINZJNZUOZBURUUDUUEUPZUSUUAYATMYTYHUCXKXMUTHIJXTYF
      YAPTSXFXHQVAXKXHQVAUUDUUEUUFVBXKXMQVAUUDUUEVCUSVDVEVFXQYDUAMZYGYDMYHYEVHX
      QXBYCUAMZUUIXBXCXDXPVGZXEUUJXPXCXDUUJXBEFVIVJVKZDYCVLUIZXQYGXKXHXMSRZQRZY
      DXKXHXMVMXQXBUUJXLUUNYCMZUUOYDMZUUKUULXEXJXLXNVNXQXCXDXIXNUUPYLYQYMYRXCXD
      OXIXNOUUPHKLJIEFXHXMUGSJIHKLVOKNZLNZVPVRWGVQZXBUUJOZXLUUPOUUQHKLJIDYCXKUU
      NUQQJIHKLVSZUURUUSUTZVRWGVQVTYDYGYBWAUIWBXQXSYBXTXFXMQRZSRZPUFZYEXQXFTMZY
      IYKXSUVFUCXEXBXGUVGXPYOXGXIXOWCDXFUEULZYNYSYKXSYAUVDPUFZUVGYIOZUVFHIJXKXF
      XMPTQUUCUUBUUGCURUUHUSUVJXTTMUVIUVFUCXFXHUTYAUVDXTVBVDWDWEXQUUIUVEYDMUVFY
      EVHUUMXQUVEXFUUNQRZYDXFXHXMVMZXQXBUUJXGUUPUVKYDMZUUKUULXEXGXIXOWFUUTUVAXG
      UUPOUVMHKLJIDYCXFUUNUQQUVBUVCVRWGVQZVTYDUVEYBWAUIWBXQXRXSWHWSZAGWIZYEXQUV
      GYJUVPUVOUCZUVHYPTPWJUVGYJOUVQWKTXFXKPWLWMUIXQUVMUVPYEUVNUVPUVKYBYDUVPUVK
      UVEYBUVLUVPUVDYAXTSXFXKXMQWTWNWOWPWQWRXA $.

    $( Lemma for distributive law for positive reals.  (Contributed by NM,
       2-May-1996.)  (Revised by Mario Carneiro, 14-Jun-2013.)
       (New usage is discouraged.) $)
    distrlem5pr $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
       ( ( A .P. B ) +P. ( A .P. C ) ) C_ ( A .P. ( B +P. C ) ) ) $=
      ( vw vv vu vf vg vh vx vy vz cnp wcel cmp co cv wrex wa wi w3a wb mulclpr
      cpp cplq 3adant3 3adant2 df-plp addclnq genpelv syl2anc cmq df-mp mulclnq
      wceq anbi2d distrlem4pr oveq12 eqeq2d eleq1 syl6bi syl5ibrcom exp4b com3l
      imp com23 rexlimivv rexlimdvv com3r sylbid impd ssrdv ) AMNZBMNZCMNZUAZDA
      BOPZACOPZUDPZABCUDPOPZVPDQZVSNZWAEQZFQZUEPZUOZFVRREVQRZWAVTNZVPVQMNZVRMNZ
      WBWGUBVMVNWIVOABUCUFVMVOWJVNACUCUGGHIJKVQVRWAEFUDUEJKGHIUHHQZIQZUIUJUKVPW
      FWHEFVQVRVPWCVQNZWDVRNZSWMWDGQZLQZULPZUOZLCRGARZSWFWHTZVPWNWSWMVMVOWNWSUB
      VNJHIDEACWDGLOULDEJHIUMWKWLUNZUJUGUPVPWMWSWTVPWMWCJQZKQZULPZUOZKBRJARZWSW
      TTVMVNWMXFUBVOGHIDEABWCJKOULDEGHIUMXAUJUFXFWSVPWTXFWRVPWTTZGLACXEWOANWPCN
      SZWRXGTZTJKABXBANXCBNSZXHXEXIXJXHXEWRXGVPXJXHSZXEWRSZWTVPXKXLWFWHVPXKSWHX
      LWFSXDWQUEPZVTNZJKLABCGUQXLWFWHXNUBZXLWFWAXMUOXOXLWEXMWAWCXDWDWQUEURUSWAX
      MVTUTVAVEVBVCVDVCVFVGVHVIVJVKVJVHVJVL $.
  $}

  $( Multiplication of positive reals is distributive.  Proposition 9-3.7(iii)
     of [Gleason] p. 124.  (Contributed by NM, 2-May-1996.)
     (New usage is discouraged.) $)
  distrpr $p |- ( A .P. ( B +P. C ) ) = ( ( A .P. B ) +P. ( A .P. C ) ) $=
    ( cnp wcel w3a cpp wceq distrlem1pr distrlem5pr eqssd dmplp 0npr ndmovdistr
    co cmp dmmp pm2.61i ) ADEBDECDEFZABCGOPOZABPOACPOGOZHSTUAABCIABCJKABCDGPLMQ
    NR $.

  ${
    $d x y z w v u f g A $.
    $( 1 is an identity element for positive real multiplication.  Theorem
       9-3.7(iv) of [Gleason] p. 124.  (Contributed by NM, 2-Apr-1996.)
       (New usage is discouraged.) $)
    1idpr $p |- ( A e. P. -> ( A .P. 1P ) = A ) $=
      ( vx vf vg vw vu vv vy vz wcel c1p co cv cmq wrex cltq wbr wa cnq c1q cnp
      cmp wceq wex df-rex 19.42v elprnq breq1 df-1p abeq2i ltmnq mulidnq breq2d
      wb bitrd syl5rbb sylan9bbr sylan pm5.32rd exbidv syl5rbbr syl5bb rexbidva
      ex 1pr df-mp mulclnq genpelv mpan2 prnmax wi crq cfv ltrelnq vex mulcomnq
      brel fvex caov12 recidnq oveq2d syl5eq sylan9eqr eqcomd ovex oveq2 eqeq2d
      mulassnq spcev 3syl a1i ancld reximia syl prcdnq adantrd rexlimdva impbid
      3bitr4d eqrdv ) AUAJZBAKUBLZAXABMZCMZDMZNLZUCZDKOZCAOZXCXDPQZXGDUDZRZCAOZ
      XCXBJZXCAJZXAXHXLCAXHXEKJZXGRZDUDZXAXDAJZRZXLXGDKUEXLXJXGRZDUDXTXRXJXGDUF
      XTYAXQDXTXGXJXPXTXGXJXPUNZXTXDSJZXGYBAXDUGXGXJXFXDPQZYCXPXCXFXDPUHXPXETPQ
      ZYCYDYEDKDUIUJYCYEXFXDTNLZPQYDXETXDUKYCYFXDXFPXDULUMUOUPUQURVDUSUTVAVBVCX
      AKUAJXNXIUNVEEFGHIAKXCCDUBNHIEFGVFFMGMVGVHVIXAXOXMXAXOXMXAXORXJCAOXMCAXCV
      JXJXLCAXSXJXKXJXKVKXSXJXCSJZYCRZXCXDXCXDVLVMZNLZNLZUCZXKXCXDSSPVNVQYHYKXC
      YCYGYKXCTNLZXCYCYKXCXDYINLZNLYMHIEXDXCYINCVOBVOXDVLVRHMZIMZVPYOYPEMWHVSYC
      YNTXCNXDVTWAWBXCULWCWDXGYLDYJXCYINWEXEYJUCXFYKXCXEYJXDNWFWGWIWJWKWLWMWNVD
      XAXLXOCAXTXJXOXKAXDXCWOWPWQWRWSWT $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Positive real 'less than' in terms of proper subset.  (Contributed by
       NM, 20-Feb-1996.)  (New usage is discouraged.) $)
    ltprord $p |- ( ( A e. P. /\ B e. P. ) -> ( A <P B <-> A C. B ) ) $=
      ( vx vy cnp wcel wa cltp wbr wpss wceq eleq1 anbi1d psseq1 anbi12d anbi2d
      cv psseq2 df-ltp brabg bianabs ) AEFZBEFZGZABHIABJZCQZEFZDQZEFZGZUFUHJZGU
      BUIGZAUHJZGUDUEGCDABEEHUFAKZUJULUKUMUNUGUBUIUFAELMUFAUHNOUHBKZULUDUMUEUOU
      IUCUBUHBELPUHBAROCDSTUA $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Proper subset is a linear ordering on positive reals.  Part of
       Proposition 9-3.3 of [Gleason] p. 122.  (Contributed by NM,
       25-Feb-1996.)  (New usage is discouraged.) $)
    psslinpr $p |- ( ( A e. P. /\ B e. P. ) ->
                ( A C. B \/ A = B \/ B C. A ) ) $=
      ( vx vy cnp wcel wa wpss wceq wo w3o cv wn wex wal cltq wss sspss orbi2i
      wi wbr cnq elprnq prub sylan2 prcdnq adantl exp43 com3r imp imp4a alrimdv
      syld com23 exlimdv xchnxbi dfss2 bitr3i 3imtr4g orrd df-3or orordir eqcom
      nss or32 bitr4i 3bitri sylibr ) AEFZBEFZGZABHZABIZJZBAHZBAIZJZJZVLVMVOKZV
      KVNVQVKCLZAFZVTBFMZGZCNZDLZBFZWEAFZTZDOZVNMVQVKWCWICVKWCWHDVKWFWCWGVKWFWA
      WBWGVIVJWFWAWBWGTZTZTVJWFVIWKVJWFVIWAWJVJWFGZVIWAGZGWBWEVTPUAZWGWMWLVTUBF
      WBWNTAVTUCBWEVTUDUEWMWNWGTWLAVTWEUFUGUMUHUIUJUKUNULUOABQWDVNCABVDABRUPVQB
      AQWIBARDBAUQURUSUTVSVNVOJVLVOJVMJZVRVLVMVOVAVLVMVOVEWOVNVOVMJZJVRVLVOVMVB
      VQWPVNVPVMVOBAVCSSVFVGVH $.
  $}

  ${
    $d x y z $.
    $( Positive real 'less than' is a strict ordering.  Part of Proposition
       9-3.3 of [Gleason] p. 122.  (Contributed by NM, 25-Feb-1996.)
       (New usage is discouraged.) $)
    ltsopr $p |- <P Or P. $=
      ( vx vy vz cnp cltp cv wcel wbr wn wa pssirr ltprord mtbiri anidms w3a wi
      wpss psstr wb w3o 3adant3 3adant1 anbi12d 3adant2 imbi12d mpbiri psslinpr
      weq biidd ancoms 3orbi123d mpbird issoi ) ABCDEAFZDGZUNUNEHZIUOUOJUPUNUNQ
      UNKUNUNLMNUOBFZDGZCFZDGZOZUNUQEHZUQUSEHZJZUNUSEHZPUNUQQZUQUSQZJZUNUSQZPUN
      UQUSRVAVDVHVEVIVAVBVFVCVGUOURVBVFSUTUNUQLZUAURUTVCVGSUOUQUSLUBUCUOUTVEVIS
      URUNUSLUDUEUFUOURJZVBABUHZUQUNEHZTVFVLUQUNQZTUNUQUGVKVBVFVLVLVMVNVJVKVLUI
      URUOVMVNSUQUNLUJUKULUM $.
  $}

  ${
    $d A b w x y z $.  $d B b x $.  $d b v w x y z $.
    prlem934.1 $e |- B e. _V $.
    $( Lemma 9-3.4 of [Gleason] p. 122.  (Contributed by NM, 25-Mar-1996.)
       (Revised by Mario Carneiro, 11-May-2013.)
       (New usage is discouraged.) $)
    prlem934 $p |- ( A e. P. -> E. x e. A -. ( x +Q B ) e. A ) $=
      ( vy wcel cv cplq co cnq wi wceq eleq1d wa cmq c1o cltq wbr syl2anc c1q
      vb vw vz vv cnp wral wn wrex c0 wne prn0 r19.2z ex syl prpssnq pssssd cxp
      sseld addnqf fdmi 0nnq ndmovrcl simprd syl6com com12 oveq2 ralbidv notbid
      rexlimivw imbi2d wss wpss dfpss2 sylib adantr w3a 3ad2ant1 wex simpl1 crq
      n0 cfv simprl simpl2 recclnq mulclnq archnq sylan2 simpll2 simplrl simprr
      cop cnpi wb ltmnq vex fvex mulcomnq mulassnq caov12 breq12i syl6bb oveq2d
      recidnq mulidnq sylan9eq breq1d bitrd syl21anc pinq sylan simpll1 simplrr
      biimpa elprnq ltaddnq addcomnq syl6breq ltsonq ltrelnq sotri simpll3 cpli
      opeq1 df-1nq syl6eqr oveq1d syl5eq oveq1 rspccva biimpar syl2an 1nq cplpq
      cerq cmi 1pi mpan2 mulidpi mpd 3impb 3simpa addassnq opex distrnq caovdir
      elexi addpqnq sylancl oveq2i addpipq mpanr12 oveq12d opeq12d eqtrd fveq2d
      a1i mp1i addclpi nqerid 3syl 3eqtrd adantl 3eqtr3rd expd expimpd syl5 a2d
      syl5ib indpi imp syl13anc prcdnq rexlimddv expr exlimdv ssrdv 3expia mtod
      eqssd expcom vtoclga 3syld pm2.01d rexnal sylibr ) BUEFZAGZCHIZBFZABUFZUG
      ZUWJUGABUHUWGUWKUWGUWKUWJABUHZCJFZUWLUWGBUIUJZUWKUWMKBUKZUWOUWKUWMUWJABUL
      UMUNUWMUWGUWNUWJUWGUWNKABUWGUWJUWIJFZUWNUWGBJUWIUWGBJBUOZUPZURUWQUWHJFUWN
      UWHCJHJJUQJHUSUTVAVBVCVDVIVEUWNUWGUWLUWGUWHUAGZHIZBFZABUFZUGZKUWGUWLKUACJ
      UWTCLZUXDUWLUWGUXEUXCUWKUXEUXBUWJABUXEUXAUWIBUWTCUWHHVFMVGVHVJUWGUWTJFZUX
      DUWGUXFNUXCBJLZUWGUXGUGZUXFUWGBJVKZUXHUWGBJVLUXIUXHNUWRBJVMVNVCVOUWGUXFUX
      CUXGUWGUXFUXCVPZBJUWGUXFUXIUXCUWSVQUXJUBJBUXJUBGZJFZUXKBFZUXJUXLNZEGZBFZE
      VRZUXMUXNUWGUXQUWGUXFUXCUXLVSUWGUWOUXQUWPEBWAVNUNUXNUXPUXMEUXJUXLUXPUXMUX
      JUXLUXPNZNZUXKUWTVTWBZOIZUCGZPWLZQRZUXMUCWMUXSUXLUXFUYDUCWMUHZUXJUXLUXPWC
      UWGUXFUXCUXRWDUXFUXLUXTJFZUYEUWTWEUXLUYFNUYAJFUYEUXKUXTWFUCUYAWGUNWHSUXSU
      YBWMFZUYDNZNZUXKUXOUYCUWTOIZHIZQRZUXMUYIUXKUYJQRZUYJUYKQRZUYLUYIUXFUXLUYD
      UYMUWGUXFUXCUXRUYHWIZUXJUXLUXPUYHWJUXSUYGUYDWKUXFUXLNZUYDUYMUYPUYDUXKUWTU
      XTOIZOIZUYJQRZUYMUXFUYDUYSWNUXLUXFUYDUWTUYAOIZUWTUYCOIZQRUYSUYAUYCUWTWOUY
      TUYRVUAUYJQUDAEUWTUXKUXTOUAWPZUBWPUWTVTWQUDGZUWHWRZVUCUWHUXOWSWTUWTUYCWRX
      AXBVOUYPUYRUXKUYJQUXFUXLUYRUXKTOIUXKUXFUYQTUXKOUWTXDXCUXKXEXFXGXHXNXIUYIU
      YJJFZUXOJFZUYNUYIUYGUXFVUEUXSUYGUYDWCZUYOUYGUYCJFZUXFVUEUYBXJZUYCUWTWFXKS
      UYIUWGUXPVUFUWGUXFUXCUXRUYHXLZUXJUXLUXPUYHXMZBUXOXOSVUEVUFNUYJUYJUXOHIUYK
      QUYJUXOXPUYJUXOXQXRSUXKUYJUYKQJXSXTYASUYIUWGUYKBFZUYLUXMKVUJUYIUYGUXFUXCU
      XPVULVUGUYOUWGUXFUXCUXRUYHYBVUKUYGUXFUXCUXPVPZVULVUMUXOUXKPWLZUWTOIZHIZBF
      ZKVUMUXOTUWTOIZHIZBFZKVUMVULKZVUMUXOUYBPYCIZPWLZUWTOIZHIZBFZKVVAUBUCUYBUX
      KPLZVUQVUTVUMVVGVUPVUSBVVGVUOVURUXOHVVGVUNTUWTOVVGVUNPPWLZTUXKPPYDYEYFYGX
      CMVJUXKUYBLZVUQVULVUMVVIVUPUYKBVVIVUOUYJUXOHVVIVUNUYCUWTOUXKUYBPYDYGXCMVJ
      ZUXKVVBLZVUQVVFVUMVVKVUPVVEBVVKVUOVVDUXOHVVKVUNVVCUWTOUXKVVBPYDYGXCMVJVVJ
      UXFUXCUXPVUTUXFVURUWTLZUXOUWTHIZBFZVUTUXCUXPNUXFVURUWTTOIUWTTUWTWRUWTXEYH
      ZUXBVVNAUXOBUWHUXOLUXAVVMBUWHUXOUWTHYIMYJVVLVUTVVNVVLVUSVVMBVURUWTUXOHVFM
      YKYLUUAUYGVUMVULVVFVUMUXFUXCNUYGVULVVFKZUXFUXCUXPUUBUYGUXFUXCVVPUYGUXFNZU
      XCVULVVFUXCVULNUYKUWTHIZBFZVVQVVFUXBVVSAUYKBUWHUYKLUXAVVRBUWHUYKUWTHYIMYJ
      VVQVVRVVEBVVQVVRUXOUYJUWTHIZHIVVEUXOUYJUWTUUCVVQVVTVVDUXOHVVQUYCTHIZUWTOI
      ZUYJVURHIZVVDVVTVWBVWCLVVQUDAEUYCTUWTHOUYBPUUDTJYMUUGVUBVUDVUCUWHUXOUUEUU
      FUUQVVQVWAVVCUWTOUYGVWAVVCLUXFUYGVWAUYCTYNIZYOWBZVVCYOWBZVVCUYGVUHTJFVWAV
      WELVUIYMUYCTUUHUUIUYGVWDVVCYOUYGVWDUYBPYPIZPPYPIZYCIZVWHWLZVVCUYGVWDUYCVV
      HYNIZVWJTVVHUYCYNYEUUJUYGPWMFZVWKVWJLZYQUYGVWLNVWLVWLVWMYQYQUYBPPPUUKUULY
      RYHUYGVWIVVBVWHPUYGVWGUYBVWHPYCUYBYSVWLVWHPLUYGYQPYSUURZUUMVWNUUNUUOUUPUY
      GVVBWMFZVVCJFVWFVVCLUYGVWLVWOYQUYBPUUSYRVVBXJVVCUUTUVAUVBVOYGVVQVURUWTUYJ
      HUXFVVLUYGVVOUVCXCUVDXCYHMUVIUVEUVFUVGUVHUVJUVKUVLBUYKUXKUVMSYTUVNUVOUVPY
      TUMUVQUVTUVRUVSUWAUWBVEUWCUWDUWJABUWEUWF $.
  $}

  ${
    $d x y z w v A $.  $d x y z w v B $.
    $( The sum of two positive reals is greater than one of them.  Proposition
       9-3.5(iii) of [Gleason] p. 123.  (Contributed by NM, 26-Mar-1996.)
       (Revised by Mario Carneiro, 12-Jun-2013.)
       (New usage is discouraged.) $)
    ltaddpr $p |- ( ( A e. P. /\ B e. P. ) -> A <P ( A +P. B ) ) $=
      ( vy vx vz vw vv cnp wcel wa cpp co wbr cv wn wi cplq adantr cnq mpd cltp
      wpss wex c0 wne prn0 n0 sylib adantl wss addclpr df-plp addclnq genpprecl
      wceq wal imp cltq elprnq addnqf fdmi 0nnq ndmovrcl ltaddnq prcdnq syl2anc
      3syl exp32 com23 alrimdv dfss2 syl6ibr wrex prlem934 eleq2 biimprcd con3d
      cxp syl6 expd com34 rexlimdv jcad dfpss2 exlimdv wb ltprord syldan mpbird
      vex ) AHIZBHIZJZAABKLZUAMZAWNUBZWMCNZBIZCUCZWPWLWSWKWLBUDUEWSBUFCBUGUHUIW
      MWRWPCWMWRAWNUJZAWNUOZOZJWPWMWRWTXBWMWRDNZAIZXCWNIZPZDUPWTWMWRXFDWMXDWRXE
      WMXDWRXEWMXDWRJZJWNHIZXCWQQLZWNIZXEWMXHXGABUKZRWMXGXJDCEFGABXCWQKQFGDCEUL
      WQENUMUNZUQXHXJJZXCXIURMZXEXMXISIXCSIWQSIJXNWNXIUSXCWQSQSSVRSQUTVAVBVCXCW
      QVDVGWNXIXCVETVFVHVIVJDAWNVKVLWMXIAIZOZDAVMZWRXBPZWKXQWLDAWQCWJVNRWMXPXRD
      AWMXDWRXPXBWMXDWRXPXBPZWMXGXJXSXLXJXAXOXAXOXJAWNXIVOVPVQVSVTWAWBTWCAWNWDV
      LWETWKWLXHWOWPWFXKAWNWGWHWI $.
  $}

  $( The sum of two positive reals is greater than one of them.  (Contributed
     by NM, 13-May-1996.)  (New usage is discouraged.) $)
  ltaddpr2 $p |- ( C e. P. -> ( ( A +P. B ) = C -> A <P C ) ) $=
    ( cpp co wceq cnp wcel cltp eleq1 dmplp 0npr ndmovrcl syl6bir ltaddpr breq2
    wa wbr syl5ib syldc ) ABDEZCFZCGHZAGHBGHQZACIRZUBUCUAGHUDUACGJABGDKLMNUDAUA
    IRUBUEABOUACAIPST $.

  ${
    $d x y z w v f g h A $.  $d x y z w v B $.  $d x z w v f g h C $.
    $d x y z w v u f g h $.
    ltexprlem.1 $e |- C = { x | E. y ( -. y e. A /\ ( y +Q x ) e. B ) } $.
    $( Lemma for Proposition 9-3.5(iv) of [Gleason] p. 123.  (Contributed by
       NM, 3-Apr-1996.)  (New usage is discouraged.) $)
    ltexprlem1 $p |- ( B e. P. -> ( A C. B -> C =/= (/) ) ) $=
      ( cnp wcel wpss cv wn cplq co wa wex c0 wne pssnel prnmadd anim2i impd n0
      19.42v sylibr exp32 com3l eximdv syl5 abeq2i exbii excom 3bitr4i syl6ibr
      ) DGHZCDIZBJZCHKZUPAJZLMDHZNZAOZBOZEPQZUOUPDHZUQNZBOUNVBBCDRUNVEVABUNVDUQ
      VAUQUNVDVAUQUNVDVAUQUNVDNZNUQUSAOZNVAVFVGUQADUPSTUQUSAUCUDUEUFUAUGUHUREHZ
      AOUTBOZAOVCVBVHVIAVIAEFUIUJAEUBUTBAUKULUM $.

    $( Lemma for Proposition 9-3.5(iv) of [Gleason] p. 123.  (Contributed by
       NM, 3-Apr-1996.)  (New usage is discouraged.) $)
    ltexprlem2 $p |- ( B e. P. -> C C. Q. ) $=
      ( cnp wcel cnq cv wn cplq co wa wex abeq2i elprnq cxp cltq wbr addnqf syl
      fdmi 0nnq ndmovrcl ltaddnq ancoms addcomnq syl6breq prcdnq mpd ex adantld
      syl5 exlimdv syl5bi ssrdv prpssnq sspsstrd ) DGHZEDIUTAEDAJZEHBJZCHKZVBVA
      LMZDHZNZBOZUTVADHZVGAEFPUTVFVHBUTVEVHVCUTVEVHUTVENZVBIHZVAIHZNZVHVIVDIHVL
      DVDQVBVAILIIRILUAUCUDUEUBVLVAVDSTVIVHVLVAVAVBLMZVDSVKVJVAVMSTVAVBUFUGVAVB
      UHUIDVDVAUJUNUKULUMUOUPUQDURUS $.

    $( Lemma for Proposition 9-3.5(iv) of [Gleason] p. 123.  (Contributed by
       NM, 6-Apr-1996.)  (New usage is discouraged.) $)
    ltexprlem3 $p |- ( B e. P. ->
                  ( x e. C -> A. z ( z <Q x -> z e. C ) ) ) $=
      ( cnp wcel cv cltq wbr wi wa wn cplq co wex cnq wb elprnq cxp addnqf fdmi
      0nnq ndmovrcl simpld 3syl prcdnq sylbid impancom anim2d eximdv abeq2i vex
      ltanq weq oveq2 eleq1d anbi2d exbidv elab2 3imtr4g ex com23 alrimdv ) EHI
      ZAJZFIZCJZVHKLZVJFIZMCVGVKVIVLVGVKVIVLMVGVKNZBJZDIOZVNVHPQZEIZNZBRZVOVNVJ
      PQZEIZNZBRZVIVLVMVRWBBVMVQWAVOVGVQVKWAVGVQNZVKVTVPKLZWAWDVPSIZVNSIZVKWETE
      VPUAWFWGVHSIVNVHSPSSUBSPUCUDUEUFUGVJVHVNUPUHEVPVTUIUJUKULUMVSAFGUNVSWCAVJ
      FCUOACUQZVRWBBWHVQWAVOWHVPVTEVHVJVNPURUSUTVAGVBVCVDVEVF $.

    $( Lemma for Proposition 9-3.5(iv) of [Gleason] p. 123.  (Contributed by
       NM, 6-Apr-1996.)  (New usage is discouraged.) $)
    ltexprlem4 $p |- ( B e. P. ->
                  ( x e. C -> E. z ( z e. C /\ x <Q z ) ) ) $=
      ( vw wcel cv cplq wa wex cltq wbr wceq cnq ltrelnq exbii sylibr cnp wn co
      wrex prnmax df-rex sylib brel simpld cxp addnqf fdmi ndmovrcl syl ltaddnq
      ltsonq sotri sylan mpancom simprd ltexnq biimpd mpcom eqcom anim2i 19.41v
      0nnq ancri an12 eximi excom ovex eleq1 breq2 anbi12d ltanq ndmovordi 3syl
      ceqsexv sylbi an12s 19.42v ex eximdv abeq2i vex oveq2 eleq1d anbi2d elab2
      exbidv anbi1i anass 3bitr2i bitr4i 3imtr4g ) EUAIZBJZDIUBZWRAJZKUCZEIZLZB
      MZWSWRCJZKUCZEIZWTXENOZLZLZCMZBMZWTFIXEFIZXHLZCMZWQXCXKBWQXCXKWQXCLWSXICM
      ZLZXKWSWQXBXQWQXBLZXPWSXRHJZEIZXAXSNOZLZHMZXSXFPZYBLZHMZCMZXPXRYAHEUDYCHE
      XAUEYAHEUFUGYCYECMZHMYGYBYHHYBYDCMZYBLZYHYBXTYIYALZLYJYAYKXTYAYIYAXFXSPZC
      MZYIYAWRXSNOZYMWRQIZWTQILZYAYNYAXAQIZYPYAYQXSQIZXAXSQQNRUHUIWRWTQKQQUJQKU
      KULZVGUMUNYPWRXANOYAYNWRWTUOWRXAXSNQUPRUQURUSYRYNYMYNYOYRWRXSQQNRUHUTYRYN
      YMCWRXSVAVBVCUNYDYLCXSXFVDSTVHVEYIXTYAVITYDYBCVFTVJYECHVKTYFXICYFXGXAXFNO
      ZLZXIYBUUAHXFWRXEKVLYDXTXGYAYTXSXFEVMXSXFXANVNVOVSYTXHXGWTXEWRNQKYSRVGWTX
      EWRVPVQVEVTVJVRVEWAWSXICWBTWCWDXDAFGWEXOXJBMZCMXLXNUUBCXNWSXGLZBMZXHLUUCX
      HLZBMUUBXMUUDXHXDUUDAXEFCWFWTXEPZXCUUCBUUFXBXGWSUUFXAXFEWTXEWRKWGWHWIWKGW
      JWLUUCXHBVFUUEXJBWSXGXHWMSWNSXJBCVKWOWP $.

    $( Lemma for Proposition 9-3.5(iv) of [Gleason] p. 123.  (Contributed by
       NM, 6-Apr-1996.)  (New usage is discouraged.) $)
    ltexprlem5 $p |- ( ( B e. P. /\ A C. B ) -> C e. P. ) $=
      ( vz cnp wcel wpss wa c0 cnq cv cltq wbr wi wal syl6ibr adantr ltexprlem1
      wrex wral wne 0pss imp ltexprlem2 ltexprlem3 wex ltexprlem4 jcad ralrimiv
      df-rex jca31 elnp sylibr ) DHIZCDJZKZLEJZEMJZKGNZANZOPVBEIZQGRZVCVBOPZGEU
      BZKZAEUCZKEHIUSUTVAVIUQURUTUQURELUDUTABCDEFUAEUESUFUQVAURABCDEFUGTUQVIURU
      QVHAEUQVCEIZVEVGABGCDEFUHUQVJVDVFKGUIVGABGCDEFUJVFGEUMSUKULTUNAGEUOUP $.

    $( Lemma for Proposition 9-3.5(iv) of [Gleason] p. 123.  (Contributed by
       NM, 8-Apr-1996.)  (Revised by Mario Carneiro, 12-Jun-2013.)
       (New usage is discouraged.) $)
    ltexprlem6 $p |- ( ( ( A e. P. /\ B e. P. ) /\ A C. B ) ->
                     ( A +P. C ) C_ B ) $=
      ( vz vw vg vh cnp wcel co wa cv cplq wi cltq cnq vex vf wpss cpp wss wceq
      vv vu wrex ltexprlem5 df-plp addclnq genpelv sylan2 wex abeq2i wbr elprnq
      wb wn cxp addnqf fdmi 0nnq ndmovrcl simpld syl prub simprd ltanq addcomnq
      caovord2 3syl prcdnq sylbid adantl exp32 com34 imp4b exlimdv syl5bi exp31
      syld com23 imp43 eleq1 biimparc sylan rexlimdvv adantrr ssrdv anassrs ) C
      KLZDKLZCDUBZCEUCMZDUDWLWMWNNZNZGWODWQGOZWOLZWRHOZAOZPMZUEZAEUHHCUHZWRDLZW
      PWLEKLWSXDURABCDEFUIUAIJGBCEWRHAUCPGBUAIJUJIOJOUKULUMWLWMXDXEQWNWLWMNZXCX
      EHACEXFWTCLZXAELZNZXCXEXFXINXBDLZXCXEWLWMXGXHXJWLXGWMXHXJQZWLXGWMXKXHBOZC
      LUSZXLXAPMZDLZNZBUNZWLXGNZWMNZXJXQAEFUOXSXPXJBXRWMXMXOXJXRWMXOXMXJXRWMXOX
      MXJQXRWMXONZNXMWTXLRUPZXJXTXRXLSLZXMYAQXTXNSLZYBDXNUQZYCYBXASLZXLXASPSSUT
      SPVAVBVCVDZVEVFCWTXLVGUMXTYAXJQXRXTYAXBXNRUPZXJXTYCYEYAYGURYDYCYBYEYFVHGU
      FUGWTXLXARSPHTBTWRUFOZUGOVIATWRYHVJVKVLDXNXBVMVNVOWBVPVQVRVSVTWAWCWDXCXEX
      JWRXBDWEWFWGWAWHWIVNWJWK $.

    $( Lemma for Proposition 9-3.5(iv) of [Gleason] p. 123.  (Contributed by
       NM, 8-Apr-1996.)  (Revised by Mario Carneiro, 12-Jun-2013.)
       (New usage is discouraged.) $)
    ltexprlem7 $p |- ( ( ( A e. P. /\ B e. P. ) /\ A C. B ) ->
                     B C_ ( A +P. C ) ) $=
      ( vw vv vz vf cnp wcel wa co cv wi wb expd cplq cnq vg vh wpss ltexprlem5
      cpp cltp wbr ltaddpr addclpr ltprord syldan mpbid pssssd sseld 2a1d com4r
      wex prnmadd elprnq cxp addnqf fdmi 0nnq ndmovrcl syl simpld wrex prlem934
      vex adantr wceq cltq prub ltexnq adantl sylibd ad2ant2r addcomnq addassnq
      wn ex caov32 oveq1 syl5eq eleq1d biimpar ovex eleq1 notbid anbi12d abeq2i
      spcev sylibr sylan2 df-plp addclnq genpprecl sylan2i exp4d imp42 ad2antrl
      exp32 exlimdv syl6d rexlimddv com14 syld com4t pm2.61i syl5 com34 pm2.43d
      mpd imp31 ssrdv ) CKLZDKLZMCDUCZMGDCEUENZXPXQXRGOZDLZXTXSLZPZXPXQXRYCPXPX
      QXRXQYCXPXQXRXQYCPZXQXRMEKLZXPYDABCDEFUDXTCLZXPYEYDPPYFXPYEYDXPYEMZXQYAYF
      YBYGYFYBPXQYAYGCXSXTYGCXSYGCXSUFUGZCXSUCZCEUHXPYEXSKLYHYIQCEUICXSUJUKULUM
      UNUOUPRYFVTZXPYEYDXQYAYJYGYBXQYAXTHOZSNZDLZHUQZYJYGYBPPZXQYAYNHDXTURWAXQY
      MYOHXQYMYOXQYMMZXTTLZYOYPYQYKTLZYPYLTLYQYRMDYLUSXTYKTSTTUTTSVAVBVCVDVEVFY
      MYQYOPXQYGYQYJYMYBYGIOZYKSNZCLZVTZYQYJYMYBPZPPICXPUUBICVGYEICYKHVIZVHVJYG
      YSCLZUUBMMZYQYJYSAOZSNZXTVKZAUQZUUCXPUUEYQYJUUJPZPYEUUBXPUUEMZYQUUKUULYQM
      YJYSXTVLUGZUUJCYSXTVMYQUUMUUJQUULAYSXTVNVOVPWAVQUUFUUIUUCAUUFUUIYMYBUUFUU
      IYMMZMUUHXSLZYBYGUUEUUBUUNUUOYGUUEUUBUUNUUOUUBUUNMYGUUEUUGELZUUOUUNUUBYTU
      UGSNZDLZUUPUUIUURYMUUIUUQYLDUUIUUQUUHYKSNYLJUAUBYSYKUUGSIVIUUDAVIJOZUAOZV
      RUUSUUTUBOVSWBUUHXTYKSWCWDWEWFUUBUURMZBOZCLZVTZUVBUUGSNZDLZMZBUQZUUPUVGUV
      ABYTYSYKSWGUVBYTVKZUVDUUBUVFUURUVIUVCUUAUVBYTCWHWIUVIUVEUUQDUVBYTUUGSWCWE
      WJWLUVHAEFWKWMWNIJHAGCEYSUUGUESAGIJHWOUUSYKWPWQWRWSWTUUIUUOYBQUUFYMUUHXTX
      SWHXAULXBXCXDXEXFVOXMWAXCXGXHRXIXJRXKXLXNXO $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Proposition 9-3.5(iv) of [Gleason] p. 123.  (Contributed by NM,
       13-May-1996.)  (Revised by Mario Carneiro, 14-Jun-2013.)
       (New usage is discouraged.) $)
    ltexpri $p |- ( A <P B -> E. x e. P. ( A +P. x ) = B ) $=
      ( vw vy vz cnp wcel wa cltp wbr cv cpp wceq wrex ltrelpr cplq wex oveq2
      co brel wpss ltprord wn eleq1d anbi2d exbidv cbvabv ltexprlem5 ltexprlem6
      cab adantll ltexprlem7 eqssd eqeq1d rspcev syl2anc ex sylbid mpcom ) BGHZ
      CGHZIZBCJKZBALZMTZCNZAGOZBCGGJPUAVCVDBCUBZVHBCUCVCVIVHVCVIIZDLZBHUDZVKELZ
      QTZCHZIZDRZEUKZGHZBVRMTZCNZVHVBVIVSVAFDBCVRVQVLVKFLZQTZCHZIZDREFVMWBNZVPW
      EDWFVOWDVLWFVNWCCVMWBVKQSUEUFUGUHZUIULVJVTCFDBCVRWGUJFDBCVRWGUMUNVGWAAVRG
      VEVRNVFVTCVEVRBMSUOUPUQURUSUT $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Lemma for Proposition 9-3.5(v) of [Gleason] p. 123.  (Contributed by NM,
       8-Apr-1996.)  (New usage is discouraged.) $)
    ltaprlem $p |- ( C e. P. -> ( A <P B ->
                    ( C +P. A ) <P ( C +P. B ) ) ) $=
      ( vx cnp wcel cltp wbr cpp co ltrelpr brel simpld cv wceq wrex wa ltexpri
      wi expd addclpr ltaddpr addasspr oveq2 syl5eq breq2d syl5ib syl5 rexlimiv
      com3r syl sylan2i pm2.43b ) CEFZABGHZCAIJZCBIJZGHZUOUNUOURUOUOUNAEFZURUOU
      SBEFABEEGKLMUOADNZIJZBOZDEPUNUSQZURSZDABRVBVDDEVBVCUTEFZURVCUPEFZVBVEURSC
      AUAVBVFVEURVFVEQUPUPUTIJZGHVBURUPUTUBVBVGUQUPGVBVGCVAIJUQCAUTUCVABCIUDUEU
      FUGTUHUJUIUKULTUM $.
  $}

  $( Ordering property of addition.  Proposition 9-3.5(v) of [Gleason] p. 123.
     (Contributed by NM, 8-Apr-1996.)  (New usage is discouraged.) $)
  ltapr $p |- ( C e. P. -> ( A <P B <-> ( C +P. A ) <P ( C +P. B ) ) ) $=
    ( cltp cnp cpp ltrelpr wcel wbr co wb wa ltaprlem adantr wceq ltsopr sotric
    wi wn wo dmplp 0npr olc mpan adantl addclpr anim12dan sylancr 3imtr3d con4d
    wor syl5 df-or syl6ib com23 soirri oveq2 breq2d mtbiri pm2.21d impbid 3impb
    pm2.61d2 3com13 ndmovord ) ABCDEFUAGUBCEHZBEHZAEHZABDIZCAFJZCBFJZDIZKZVFVGV
    HVMVFVGVHLZLZVIVLVFVIVLRVNABCMNVOBAOZVLVIRVOVLVPSZVIVOVLVPVITZVQVIRVLVKVJOZ
    VLTZVOVRVLVSUCVOVRVTVOBADIZVKVJDIZVRSZVTSZVFWAWBRVNBACMNVNWAWCKZVFEDUKZVNWE
    PEBADQUDUEVOWFVKEHZVJEHZLWBWDKPVFVGWGVHWHCBUFCAUFUGEVKVJDQUHUIUJULVPVIUMUNU
    OVPVLVIVPVLVJVJDIVJDEPGUPVPVKVJVJDBACFUQURUSUTVCVAVBVDVE $.

  $( Addition cancellation law for positive reals.  Proposition 9-3.5(vi) of
     [Gleason] p. 123.  (Contributed by NM, 9-Apr-1996.)
     (New usage is discouraged.) $)
  addcanpr $p |- ( ( A e. P. /\ B e. P. ) ->
                 ( ( A +P. B ) = ( A +P. C ) -> B = C ) ) $=
    ( cnp wcel wa cpp co wceq wi addclpr cltp wbr wo wn wb ltapr ltsopr sotrieq
    mpan eleq1 dmplp 0npr ndmovrcl syl6bi syl5com orbi12d ad2antrr wor ad2ant2l
    notbid syl2an 3bitr4d exbiri syld pm2.43d ) ADEZBDEZFZABGHZACGHZIZBCIZUSVBU
    QCDEZFZVBVCJUSUTDEZVBVEABKZVBVFVADEZVEUTVADUAACDGUBUCUDUEUFUSVEVCVBUSVEFBCL
    MZCBLMZNZOZUTVALMZVAUTLMZNZOZVCVBUQVLVPPURVEUQVKVOUQVIVMVJVNBCAQCBAQUGUKUHU
    RVDVCVLPZUQUQDLUIZURVDFVQRDBCLSTUJUSVFVHVBVPPZVEVGACKVRVFVHFVSRDUTVALSTULUM
    UNUOUP $.

  ${
    $d x y z b A $.  $d x b B $.  $d b u v w x y z $.
    $( Lemma 9-3.6 of [Gleason] p. 124.  (Contributed by NM, 26-Apr-1996.)
       (Revised by Mario Carneiro, 12-Jun-2013.)
       (New usage is discouraged.) $)
    prlem936 $p |- ( ( A e. P. /\ 1Q <Q B ) ->
                   E. x e. A -. ( x .Q B ) e. A ) $=
      ( vy vz cnq wcel c1q cltq wbr wa cv cmq co wi wceq adantr cplq syl wb cnp
      vb vu vw vv wn wrex ltrelnq brel simprd adantl breq2 anbi2d eleq1d notbid
      oveq2 rexbidv imbi12d wex c0 prn0 n0 sylib elprnq ad2ant2r mulidnq simplr
      wne ltmnq biimpa syl2anc eqbrtrrd ad2antlr mulclnq mpbid simplll prlem934
      ltexnq vex simprr eleq1 biimparc sylan cxp addnqf fdmi 0nnq ndmovrcl prub
      addclnq syl21anc ad2antrr crq cfv recclnq sylan2 ancoms mulassnq mulcomnq
      oveq2i eqtri recidnq oveq2d syl5eq breq1d bitrd adantll mulnqf ltanq ovex
      sylan9eq simpld distrnq caovdir caov12 sylan9eqr eqtr4i a1i breq2d bitr4d
      oveq12d adantrr addcomnq breq12i syl6bb ad2antrl caov411 adantrl syl22anc
      fvex oveq1 3bitr3d sylibd prcdnq impancom con3d ex com23 mpdd exlimddv
      reximdva mpd expr rspcev pm2.61d vtoclg mpcom ) CFGZBUAGZHCIJZKZALZCMNZBG
      ZUFZABUGZUUJUUHUUIUUJHFGZUUHHCFFIUHUIUJUKUUIHUBLZIJZKZUULUURMNZBGZUFZABUG
      ZOUUKUUPOUBCFUURCPZUUTUUKUVDUUPUVEUUSUUJUUIUURCHIULUMUVEUVCUUOABUVEUVBUUN
      UVEUVAUUMBUURCUULMUPUNUOUQURUUTDLZBGZUVDDUUIUVGDUSZUUSUUIBUTVHUVHBVADBVBV
      CQUUTUVGKUVFUURMNZBGZUVDUUTUVGUVJUVDUUTUVGUVJKZKZUVFELZRNZUVIPZUVDEUVLUVF
      UVIIJZUVOEUSZUVLUVFHMNZUVFUVIIUVLUVFFGZUVRUVFPUUIUVGUVSUUSUVJBUVFVDVEZUVF
      VFSUVLUVSUUSUVRUVIIJZUVTUUIUUSUVKVGUVSUUSUWAHUURUVFVIVJVKVLUVLUVIFGZUVPUV
      QTUVLUVSUURFGZUWBUVTUUSUWCUUIUVKUUSUUQUWCHUURFFIUHUIUJVMZUVFUURVNVKEUVFUV
      IVRSVOUVLUVOKZUULUVMRNZBGZUFZABUGZUVDUWEUUIUWIUUIUUSUVKUVOVPZABUVMEVSZVQS
      UWEUWHUVCABUWEUULBGZKZUWHUWFUVAIJZUVCUWMUWHUVNUWFIJZUWNUWMUUIUVNBGZUWFFGZ
      UWHUWOOUWEUUIUWLUWJQZUWEUWPUWLUVLUVJUVOUWPUUTUVGUVJVTUVOUWPUVJUVNUVIBWAWB
      WCZQUWMUULFGZUVMFGZUWQUWEUUIUWLUWTUWJBUULVDWCZUWEUXAUWLUWEUUIUWPUXAUWJUWS
      UUIUWPKUVNFGZUXABUVNVDUXCUVSUXAUVFUVMFRFFWDZFRWEWFWGWHUJSVKQZUULUVMWJVKBU
      VNUWFWIWKUWMUVAFGZUVSUXAUVOUWOUWNTUWMUWTUWCUXFUXBUVLUWCUVOUWLUWDWLUULUURV
      NVKUVLUVSUVOUWLUVTWLUXEUVLUVOUWLVGUXFUVSKZUXAUVOKKUVFUULIJZUWFUVNUULUVFWM
      WNZMNZMNZIJZUWOUWNUXGUXAUXHUXLTUVOUXGUXAKUXHUVMUVMUXIMNZUULMNZIJZUXLUVSUX
      AUXHUXOTUXFUVSUXAKZUXHUXMUVFMNZUXNIJZUXOUXPUXMFGZUXHUXRTUXAUVSUXSUVSUXAUX
      IFGUXSUVFWOUVMUXIVNWPWQUVFUULUXMVISUXPUXQUVMUXNIUXPUXQUVMUVFUXIMNZMNZUVMU
      XQUVMUXIUVFMNZMNUYAUVMUXIUVFWRUYBUXTUVMMUXIUVFWSWTXAUVSUXAUYAUVMHMNUVMUVS
      UXTHUVMMUVFXBZXCUVMVFXKXDXEXFXGUXGUXOUXLTUXAUXGUXOUWFUULUXNRNZIJZUXLUXFUX
      OUYETZUVSUXFUWTUYFUXFUWTUWCUULUURFMUXDFMXHWFWGWHXLZUVMUXNUULXISQUXGUXKUYD
      UWFIUXGUXKUVFUXJMNZUVMUXJMNZRNUYDUCUDUEUVFUVMUXJRMDVSZUWKUULUXIMXJUCLZUDL
      ZWSZUYKUYLUELZXMXNUXGUYHUULUYIUXNRUXGUYHUULUXTMNZUULUCUDUEUVFUULUXIMUYJAV
      SZUVFWMYJZUYMUYKUYLUYNWRZXOUVSUXFUYOUULHMNZUULUVSUXTHUULMUYCXCUXFUWTUYSUU
      LPUYGUULVFSXPXDUYIUXNPUXGUYIUVMUXIUULMNZMNUXNUXJUYTUVMMUULUXIWSWTUVMUXIUU
      LWRXQXRYAXDXSXTQXFYBUXAUXHUWOTUXGUVOUXAUXHUVMUVFRNZUVMUULRNZIJUWOUVFUULUV
      MXIVUAUVNVUBUWFIUVMUVFYCUVMUULYCYDYEYFUXGUVOUXLUWNTUXAUXGUVOKUXKUVAUWFIUV
      OUXGUXKUVIUXJMNZUVAUVNUVIUXJMYKUXGVUCUVAUXTMNZUVAUCUDUEUVFUURUULUXIMUYJUB
      VSUYPUYMUYRUYQYGUVSUXFVUDUVAHMNUVAUVSUXTHUVAMUYCXCUVAVFXPXDXPXSYHYLYIYMUW
      MUUIUWHUWNUVCOOUWRUUIUWNUWHUVCUUIUWNUWHUVCOUUIUWNKUVBUWGUUIUVBUWNUWGBUVAU
      WFYNYOYPYQYRSYSUUAUUBYTUUCUVGUVJUFZUVDOUUTUVGVUEUVDUVCVUEAUVFBUULUVFPZUVB
      UVJVUFUVAUVIBUULUVFUURMYKUNUOUUDYQUKUUEYTUUFUUG $.
  $}

  ${
    $d x y z w v u f g A $.  $d x z w v u f g B $.
    reclempr.1 $e |- B = { x | E. y ( x <Q y /\ -. ( *Q ` y ) e. A ) } $.
    $( Lemma for Proposition 9-3.7 of [Gleason] p. 124.  (Contributed by NM,
       30-Apr-1996.)  (Revised by Mario Carneiro, 12-Jun-2013.)
       (New usage is discouraged.) $)
    reclem2pr $p |- ( A e. P. -> B e. P. ) $=
      ( vz wcel c0 cnq wa cltq wbr wn wex crq cfv syl eleq1d sylibr jca wpss cv
      cnp wi wal wrex wral prpssnq pssnel recclnq nsmallnq adantr notbid anbi2d
      wne recrecnq fvex wceq breq2 fveq2 anbi12d spcev syl6bir vex breq1 anbi1d
      exbidv elab2 syl6ibr expcomd imp eximdv mpd n0 exlimiv 3syl 0pss wss prn0
      elprnq pm2.43i dmrecnq 0nnq ndmfvrcl prcdnq syl5bi alrimiv abeq2i exanali
      wb ltrnq bitri con2bii sylib eximi ex exlimdv 3imtr4g ltrelnq brel simpld
      nss sylbi ssriv jctil dfpss3 ltsonq sotri anim1d cab nfe1 nfab nfcxfr nfv
      com12 nfrex 19.8a adantll simpll expcom ltbtwnnq df-rex impcom rgen jctir
      exlimi elnp ) CUCGZHDUAZDIUAZJZFUBZAUBZKLZYLDGZUDZFUEZYMYLKLZFDUFZJZADUGZ
      JDUCGYHYKUUAYHYIYJYHDHUOZYIYHCIUAYMIGZYMCGZMZJZANUUBCUHACIUIUUFUUBAUUFYOF
      NZUUBUUFYLYMOPZKLZFNZUUGUUCUUJUUEUUCUUHIGZUUJYMUJFUUHUKQULUUFUUIYOFUUCUUE
      UUIYOUDUUCUUIUUEYOUUCUUIUUEJZYLBUBZKLZUUMOPZCGZMZJZBNZYOUUCUULUUIUUHOPZCG
      ZMZJZUUSUUCUVBUUEUUIUUCUVAUUDUUCUUTYMCYMUPRUMUNUURUVCBUUHYMOUQUUMUUHURZUU
      NUUIUUQUVBUUMUUHYLKUSUVDUUPUVAUVDUUOUUTCUUMUUHOUTRUMVAVBVCYMUUMKLZUUQJZBN
      ZUUSAYLDFVDYMYLURZUVFUURBUVHUVEUUNUUQYMYLUUMKVEVFVGEVHZVIVJVKVLVMFDVNSVOV
      PDVQSYHDIVRZIDVRMZJYJYHUVKUVJYHCHUOZUVKCVSYHYLCGZFNUUCYMDGZMZJZANZUVLUVKY
      HUVMUVQFYHUVMUVQYHUVMJZYHUUHCGZJZANZUVQUVRUWAUVRUVRYHYLOPZOPZCGZJZUWAUVRY
      LIGZUWEUVRWJCYLVTUWFUWDUVMYHUWFUWCYLCYLUPRUNQUVTUWEAUWBYLOUQYMUWBURZUVSUW
      DYHUWGUUHUWCCYMUWBOUTRUNVBVCWAUVTUVPAUVTUUCUVOUVTUUKUUCCUUHVTYMIOWBWCWDQU
      VTUVEUUPUDZBUEZUVOUVTUWHBUVEUUOUUHKLUVTUUPYMUUMWKCUUHUUOWEWFWGUVNUWIUVNUV
      GUWIMUVGADEWHZUVEUUPBWIWLWMWNTWOQWPWQFCVNAIDXBWRVMADIUVNUVGUUCUWJUVFUUCBU
      VEUUCUUQUVEUUCUUMIGYMUUMIIKWSWTXAULVOXCXDXEDIXFSTYTADUVNYQYSUVNYPFYNUVNYO
      YNUVGUUSUVNYOYNUVFUURBYNUVEUUNUUQYNUVEUUNYLYMUUMKIXGWSXHWPXIVLUWJUVIWRXOW
      GUVNUVGYSUWJUVFYSBYRBFDBDUVGAXJEUVGBAUVFBXKXLXMYRBXNXPUUQUVEYSUUQYRUUNJZF
      NYOYRJZFNUVEYSUUQUWKUWLFUWKUUQUWLUWKUUQJYOYRUUNUUQYOYRUURUUSYOUURBXQUVISX
      RYRUUNUUQXSTXTVLFYMUUMYAYRFDYBWRYCYFXCTYDYEAFDYGS $.

    $( Lemma for Proposition 9-3.7(v) of [Gleason] p. 124.  (Contributed by NM,
       30-Apr-1996.)  (Revised by Mario Carneiro, 12-Jun-2013.)
       (New usage is discouraged.) $)
    reclem3pr $p |- ( A e. P. -> 1P C_ ( A .P. B ) ) $=
      ( vw vv vz wcel co cv c1q cltq wbr wa crq cfv cmq cnq wceq vu cnp c1p cmp
      vf vg df-1p abeq2i wrex ltrnq mulcomnq recclnq mulidnq mp2b recidnq ax-mp
      wn 1nq 3eqtr3i breq1i prlem936 sylan2b prnmax ad2ant2r w3a elprnq 3adant3
      bitri simp1r ltrelnq brel simpld syl simp3 simp2r fvex ltmnq vex caovord2
      wb syl5bb adantl biimpd syl5eqr oveqan12d mulassnq caov4 3eqtr3g recmulnq
      mulclnq sylan mpbird eleq1d notbid biimprd anim12d wex ovex breq2 anbi12d
      fveq2 spcev breq1 anbi1d exbidv elab2 sylibr imp syl22anc simprd 3ad2ant3
      syl6 syl5reqr oveq1d sylan9eqr syl2anc oveq2 eqeq2d rspcev 3expia reximdv
      reclem2pr df-mp genpelv mpdan ad2antrr sylibrd mpd rexlimddv syl5bi ssrdv
      ex ) CUBIZFUCCDUDJZFKZUCIYOLMNZYMYOYNIZYPFUCFUGUHYMYPYQYMYPOZGKZYOPQZRJZC
      IZUQZYQGCYPYMLYTMNZUUCGCUIYPLPQZYTMNUUDYOLUJUUELYTMUUELRJZLUUERJZUUELUUEL
      UKLSIZUUESIUUFUUETURLULUUEUMUNUUHUUGLTURLUOUPUSUTVHGCYTVAVBYRYSCIZUUCOZOZ
      YSHKZMNZHCUIZYQYMUUIUUNYPUUCHCYSVCVDUUKUUNYOUULAKZRJZTZADUIZHCUIZYQUUKUUM
      UURHCYRUUJUUMUURYRUUJUUMVEZUULPQZYORJZDIZYOUULUVBRJZTZUURUUTYSSIZYOSIZUUM
      UUCUVCYRUUJUVFUUMYMUUIUVFYPUUCCYSVFVDVGUUTYPUVGYMYPUUJUUMVIYPUVGUUHYOLSSM
      VJVKVLVMZYRUUJUUMVNYRUUIUUCUUMVOUVFUVGOZUUMUUCOZUVCUVIUVJUVBYSPQZYORJZMNZ
      UVLPQZCIZUQZOZUVCUVIUUMUVMUUCUVPUVIUUMUVMUVGUUMUVMVTUVFUUMUVAUVKMNUVGUVMY
      SUULUJABUAUVAUVKYOMSRUULPVPYSPVPZUUOBKZUAKZVQFVRZUUOUVSUKZVSWAWBWCUVIUVPU
      UCUVIUVOUUBUVIUVNUUACUVIUVNUUATZUVLUUARJZLTZUVIUVKYSRJZYOYTRJZRJLLRJZUWDL
      UVFUVGUWFLUWGLRUVFUWFYSUVKRJLYSUVKUKYSUOWDYOUOWEABUAUVKYSYOYTRUVRGVRUWAUW
      BUUOUVSUVTWFYOPVPWGUUHUWHLTURLUMUPWHUVIUVLSIZUWCUWEVTUVFUVKSIUVGUWIYSULUV
      KYOWJWKUVLUUAWIVMWLWMWNWOWPUVQUVBUVSMNZUVSPQZCIZUQZOZBWQZUVCUWNUVQBUVLUVK
      YORWRUVSUVLTZUWJUVMUWMUVPUVSUVLUVBMWSUWPUWLUVOUWPUWKUVNCUVSUVLPXAWMWNWTXB
      UUOUVSMNZUWMOZBWQUWOAUVBDUVAYORWRUUOUVBTZUWRUWNBUWSUWQUWJUWMUUOUVBUVSMXCX
      DXEEXFXGXLXHXIUUTUULSIZUVGUVEUUMYRUWTUUJUUMUVFUWTYSUULSSMVJVKXJXKUVHUVGUW
      TYOLYORJZUVDUVGUXAYOLRJYOYOLUKYOUMXMUWTUVDUULUVARJZYORJUXAUULUVAYOWFUWTUX
      BLYORUULUOXNXMXOXPUUQUVEAUVBDUWSUUPUVDYOUUOUVBUULRXQXRXSXPXTYAYMYQUUSVTZY
      PUUJYMDUBIUXCABCDEYBUAUEUFBFCDYOHAUDRBFUAUEUFYCUEKUFKWJYDYEYFYGYHYIYLYJYK
      $.

    $( Lemma for Proposition 9-3.7(v) of [Gleason] p. 124.  (Contributed by NM,
       30-Apr-1996.)  (New usage is discouraged.) $)
    reclem4pr $p |- ( A e. P. -> ( A .P. B ) = 1P ) $=
      ( vw vz vf vg wcel co c1p cv c1q cltq wbr cmq wi wa cnq cnp cmp wceq wrex
      vu wb reclem2pr df-mp mulclnq genpelv mpdan crq cfv wn wex abeq2i ltrelnq
      brel simprd elprnq syl biimpd adantr recclnq prub sylan2 mulcomnq recidnq
      ltmnq breq12d bitrd adantl sylibd anim12d ltsonq sotri syl6 exp4b pm2.43d
      a1i syl5 impd exlimdv syl5bi breq1 expimpd rexlimdvv sylbid df-1p syl6ibr
      biimprcd ssrdv reclem3pr eqssd ) CUAJZCDUBKZLWOFWPLWOFMZWPJZWQNOPZWQLJWOW
      RWQGMZAMZQKZUCZADUDGCUDZWSWODUAJWRXDUFABCDEUGUEHIBFCDWQGAUBQBFUEHIUHHMIMU
      IUJUKWOXCWSGACDWOWTCJZXADJZXCWSRZWOXESZXFXBNOPZXGXFXABMZOPZXJULUMZCJUNZSZ
      BUOZXHXIXOADEUPXHXNXIBXHXKXMXIXHXKXMXIRZXKXJTJZXHXKXPRXKXATJXQXAXJTTOUQUR
      USXHXQXKXMXIXHXQSZXNXBWTXJQKZOPZXSNOPZSXIXRXKXTXMYAXHXKXTRXQXHXKXTXHWTTJX
      KXTUFCWTUTXAXJWTVIVAVBVCXRXMWTXLOPZYAXQXHXLTJXMYBRXJVDCWTXLVEVFXQYBYAUFXH
      XQYBXJWTQKZXJXLQKZOPYAWTXLXJVIXQYCXSYDNOYCXSUCXQXJWTVGVTXJVHVJVKVLVMVNXBX
      SNOTVOUQVPVQVRWAVSWBWCWDXCWSXIWQXBNOWEWKVQWFWGWHWSFLFWIUPWJWLABCDEWMWN $.
  $}

  ${
    $d x y z w A $.
    $( The reciprocal of a positive real exists.  Part of Proposition 9-3.7(v)
       of [Gleason] p. 124.  (Contributed by NM, 15-May-1996.)  (Revised by
       Mario Carneiro, 12-Jun-2013.)  (New usage is discouraged.) $)
    recexpr $p |- ( A e. P. -> E. x e. P. ( A .P. x ) = 1P ) $=
      ( vz vy vw cnp wcel cv cltq wbr crq cfv wn wa wex cab cmp co c1p wceq
      wrex breq1 anbi1d exbidv cbvabv reclem2pr reclem4pr eqeq1d rspcev syl2anc
      oveq2 ) BFGCHZDHZIJZUMKLBGMZNZDOZCPZFGBURQRZSTZBAHZQRZSTZAFUAEDBURUQEHZUM
      IJZUONZDOCEULVDTZUPVFDVGUNVEUOULVDUMIUBUCUDUEZUFEDBURVHUGVCUTAURFVAURTVBU
      SSVAURBQUKUHUIUJ $.
  $}

  ${
    $d x y z A $.
    $( The union of a nonempty, bounded set of positive reals is a positive
       real.  Part of Proposition 9-3.3 of [Gleason] p. 122.  (Contributed by
       NM, 19-May-1996.)  (Revised by Mario Carneiro, 12-Jun-2013.)
       (New usage is discouraged.) $)
    suplem1pr $p |- ( ( A =/= (/) /\
        E. x e. P. A. y e. A y <P x ) -> U. A e. P. ) $=
      ( vz c0 wne cv cltp wbr wral cnp wrex wa wpss cnq wcel wi wss sylibr ex
      cuni cltq wal ltrelpr brel simpld ralimi dfss3 rexlimivw adantl ssel prn0
      n0 0pss elssuni psssstr syl2an expcom sylcom exlimdv syl5bi prpssnq pssss
      ltprord syl6bi mpcom unissb sspsstr syl2im rexlimdva anim12d prcdnq com3r
      wex sylan9 reximdvai eluni2 3imtr4g com23 alrimdv eluni prnmax imp ssrexv
      syl6 syl expimpd jcad ralrimiv elnp sylanbrc ) CEFZBGZAGZHIZBCJZAKLZMZECU
      AZNZWSONZMZWMWNUBIZWMWSPZQZBUCZWNWMUBIZBWSLZMZAWSJZWSKPCKRZWRXBWQXKWLWPXK
      AKWPWMKPZBCJXKWOXLBCWOXLWNKPZWMWNKKHUDUEZUFUGBCKUHSUIUJZXKWLWTWQXAWLDGZCP
      ZDVNXKWTDCUMXKXQWTDXKXQXPKPZWTCKXPUKZXRXQWTXREXPNZXPWSRZWTXQXRXPEFXTXPULX
      PUNSXPCUOZEXPWSUPUQURUSUTVAXKWPXAAKXKXMMWNONZWPWSWNRZXAXMYCXKWNVBUJWPWMWN
      RZBCJYDWOYEBCXLXMMZWOYEXNYFWOWMWNNYEWMWNVDWMWNVCVEVFUGBCWNVGSYDYCXAWSWNOV
      HURVIVJVKVFWRXKXJXOXKXIAWSXKWNWSPZXFXHXKYGXEBXKXCYGXDXKXCYGXDQXKXCMZWNXPP
      ZDCLWMXPPZDCLYGXDYHYIYJDCXKXQXRXCYIYJQXSXRYIXCYJXRYIXCYJQXPWNWMVLTVMVOVPD
      WNCVQDWMCVQVRTVSVTYGYIXQMZDVNXKXHDWNCWAXKYKXHDXKYIXQXHXKYIMXQXGBXPLZXHXKY
      IXQYLQXKXQYIYLXKXQXRYIYLQXSXRYIYLBXPWNWBTWEVSWCXQYAYLXHQYBXGBXPWSWDWFUSWG
      UTVAWHWIWFABWSWJWK $.

    $( The union of a set of positive reals (if a positive real) is its
       supremum (the least upper bound).  Part of Proposition 9-3.3 of
       [Gleason] p. 122.  (Contributed by NM, 19-May-1996.)  (Revised by Mario
       Carneiro, 12-Jun-2013.)  (New usage is discouraged.) $)
    suplem2pr $p |- ( A C_ P. -> ( ( y e. A -> -. U. A <P y ) /\
           ( y <P U. A -> E. z e. A y <P z ) ) ) $=
      ( cnp wss cv cltp wbr wi wcel wn ltrelpr brel wa wral wb weq wpss ltprord
      wo cuni wrex simpld ralnex ssel2 ltsopr sotric mpan con2bid ancoms orbi2d
      wor sspss equcom orbi2i orcom 3bitri syl6bbr sylan an32s ralbidva syl5bbr
      bitr3d unissb ssnpss biimpd mpcom nsyl syl6bi ex syl5 pm2.43d elssuni syl
      con4d jctil ) CDEZAFZCUAZGHZVRBFZGHZBCUBZIZVRCJZVSVRGHZKIVQVTWCVTVRDJZVQW
      DVTWGVSDJZVRVSDDGLMZUCVQWGWDVQWGNZWCVTWJWCKZVSVREZVTKWJWKWAVREZBCOZWLWKWB
      KZBCOWJWNWBBCUDWJWOWMBCVQWACJZWGWOWMPZVQWPNWADJZWGWQCDWAUEWRWGNZABQZWAVRG
      HZTZWOWMWGWRXBWOPWGWRNZWBXBDGULXCWBXBKPUFDVRWAGUGUHUIUJWSXBWTWAVRRZTZWMWS
      XAXDWTWAVRSUKWMXDBAQZTXDWTTXEWAVRUMXFWTXDBAUNUOXDWTUPUQURVCUSUTVAVBBCVRVD
      URWLVRVSRZVTVSVRVEWGWHNZVTXGWIXHVTXGVRVSSVFVGVHVIVOVJVKVLWEVSVRRZWFWEVRVS
      EXIKVRCVMVRVSVEVNWHWGNZWFXIVSVRDDGLMXJWFXIVSVRSVFVGVHVP $.

    $( The union of a nonempty, bounded set of positive reals has a supremum.
       Part of Proposition 9-3.3 of [Gleason] p. 122.  (Contributed by NM,
       19-May-1996.)  (New usage is discouraged.) $)
    supexpr $p |- ( ( A =/= (/) /\ E. x e. P. A. y e. A y <P x ) ->
       E. x e. P. ( A. y e. A -. x <P y /\
           A. y e. P. ( y <P x -> E. z e. A y <P z ) ) ) $=
      ( c0 wne cv cltp wbr wral cnp wrex wa cuni wn wi suplem1pr simpld ralbidv
      wcel ltrelpr brel ralimi dfss3 sylibr rexlimivw adantl suplem2pr ralrimiv
      wss simprd ralrimivw jca breq1 notbid breq2 imbi1d anbi12d rspcev syl2anc
      syl wceq ) DEFZBGZAGZHIZBDJZAKLZMZDNZKTVJVDHIZOZBDJZVDVJHIZVDCGHICDLZPZBK
      JZMZVEVDHIZOZBDJZVFVOPZBKJZMZAKLABDQVIDKUJZVRVHWEVCVGWEAKVGVDKTZBDJWEVFWF
      BDVFWFVEKTVDVEKKHUAUBRUCBDKUDUEUFUGWEVMVQWEVLBDWEVDDTVLPZVPBCDUHZRUIWEVPB
      KWEWGVPWHUKULUMVAWDVRAVJKVEVJVBZWAVMWCVQWIVTVLBDWIVSVKVEVJVDHUNUOSWIWBVPB
      KWIVFVNVOVEVJVDHUPUQSURUSUT $.
  $}

  ${
    $d x y z w v u f $.
    $( Define equivalence relation for signed reals.  This is a "temporary" set
       used in the construction of complex numbers ~ df-c , and is intended to
       be used only by the construction.  From Proposition 9-4.1 of [Gleason]
       p. 126.  (Contributed by NM, 25-Jul-1995.)
       (New usage is discouraged.) $)
    df-enr $a |- ~R = { <. x , y >. | ( ( x e. ( P. X. P. ) /\
                   y e. ( P. X. P. ) ) /\ E. z E. w E. v E. u
                   ( ( x = <. z , w >. /\ y = <. v , u >. ) /\
                   ( z +P. u ) = ( w +P. v ) ) ) } $.

    $( Define class of signed reals.  This is a "temporary" set used in the
       construction of complex numbers ~ df-c , and is intended to be used only
       by the construction.  From Proposition 9-4.2 of [Gleason] p. 126.
       (Contributed by NM, 25-Jul-1995.)  (New usage is discouraged.) $)
    df-nr $a |- R. = ( ( P. X. P. ) /. ~R ) $.

    $( Define addition on signed reals.  This is a "temporary" set used in the
       construction of complex numbers ~ df-c , and is intended to be used only
       by the construction.  From Proposition 9-4.3 of [Gleason] p. 126.
       (Contributed by NM, 25-Aug-1995.)  (New usage is discouraged.) $)
    df-plr $a |- +R = { <. <. x , y >. , z >. | ( ( x e. R. /\ y e. R. ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~R /\ y = [ <. u , f >. ] ~R ) /\
               z = [ <. ( w +P. u ) , ( v +P. f ) >. ] ~R ) ) } $.

    $( Define multiplication on signed reals.  This is a "temporary" set used
       in the construction of complex numbers ~ df-c , and is intended to be
       used only by the construction.  From Proposition 9-4.3 of [Gleason]
       p. 126.  (Contributed by NM, 25-Aug-1995.)
       (New usage is discouraged.) $)
    df-mr $a |- .R = { <. <. x , y >. , z >. | ( ( x e. R. /\ y e. R. ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~R /\ y = [ <. u , f >. ] ~R ) /\
           z = [ <. ( ( w .P. u ) +P. ( v .P. f ) ) ,
             ( ( w .P. f ) +P. ( v .P. u ) ) >. ] ~R ) ) } $.

    $( Define ordering relation on signed reals.  This is a "temporary" set
       used in the construction of complex numbers ~ df-c , and is intended to
       be used only by the construction.  From Proposition 9-4.4 of [Gleason]
       p. 127.  (Contributed by NM, 14-Feb-1996.)
       (New usage is discouraged.) $)
    df-ltr $a |- <R = { <. x , y >. | ( ( x e. R. /\ y e. R. ) /\
       E. z E. w E. v E. u
       ( ( x = [ <. z , w >. ] ~R /\ y = [ <. v , u >. ] ~R ) /\
                ( z +P. u ) <P ( w +P. v ) ) ) } $.

    $( Define signed real constant 0.  This is a "temporary" set used in the
       construction of complex numbers ~ df-c , and is intended to be used only
       by the construction.  From Proposition 9-4.2 of [Gleason] p. 126.
       (Contributed by NM, 9-Aug-1995.)  (New usage is discouraged.) $)
    df-0r $a |- 0R = [ <. 1P , 1P >. ] ~R $.

    $( Define signed real constant 1.  This is a "temporary" set used in the
       construction of complex numbers ~ df-c , and is intended to be used only
       by the construction.  From Proposition 9-4.2 of [Gleason] p. 126.
       (Contributed by NM, 9-Aug-1995.)  (New usage is discouraged.) $)
    df-1r $a |- 1R = [ <. ( 1P +P. 1P ) , 1P >. ] ~R $.

    $( Define signed real constant -1.  This is a "temporary" set used in the
       construction of complex numbers ~ df-c , and is intended to be used only
       by the construction.  (Contributed by NM, 9-Aug-1995.)
       (New usage is discouraged.) $)
    df-m1r $a |- -1R = [ <. 1P , ( 1P +P. 1P ) >. ] ~R $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u D $.
    $( Equivalence relation for signed reals in terms of positive reals.
       (Contributed by NM, 3-Sep-1995.)  (New usage is discouraged.) $)
    enrbreq $p |- ( ( ( A e. P. /\ B e. P. ) /\
                     ( C e. P. /\ D e. P. ) ) ->
          ( <. A , B >. ~R <. C , D >. <-> ( A +P. D ) = ( B +P. C ) ) ) $=
      ( vx vy vz vw vv vu cpp cer cnp df-enr ecopoveq ) EFGHIJABCDKLMEFGHIJNO
      $.
  $}

  ${
    $d x y z w v u $.
    $( The equivalence relation for signed reals is an equivalence relation.
       Proposition 9-4.1 of [Gleason] p. 126.  (Contributed by NM, 3-Sep-1995.)
       (Revised by Mario Carneiro, 6-Jul-2015.)  (New usage is discouraged.) $)
    enrer $p |- ~R Er ( P. X. P. ) $=
      ( vx vy vz vw vv vu cpp cer cnp df-enr addcompr addclpr addasspr addcanpr
      cv ecopover ) ABCDEFGHIABCDEFJAOZBOZKQRLQRCOZMQRSNP $.
  $}

  $( Equivalence class equality of positive fractions in terms of positive
     integers.  (Contributed by NM, 29-Nov-1995.)
     (New usage is discouraged.) $)
  enreceq $p |- ( ( ( A e. P. /\ B e. P. ) /\ ( C e. P. /\ D e. P. ) ) ->
                ( [ <. A , B >. ] ~R = [ <. C , D >. ] ~R <->
                ( A +P. D ) = ( B +P. C ) ) ) $=
    ( cnp wcel wa cop cer wbr cec wceq cpp co cxp wer enrer a1i opelxpi adantr
    erth enrbreq bitr3d ) AEFBEFGZCEFDEFGZGZABHZCDHZIJUGIKUHIKLADMNBCMNLUFUGUHI
    EEOZUIIPUFQRUDUGUIFUEABEESTUAABCDUBUC $.

  ${
    $d x y z w v u $.
    $( The equivalence relation for signed reals exists.  (Contributed by NM,
       25-Jul-1995.)  (New usage is discouraged.) $)
    enrex $p |- ~R e. _V $=
      ( vx vy vz vw vv vu cer cnp cxp npex xpex cv wcel wa cop cpp co wex copab
      wceq df-enr opabssxp eqsstri ssexi ) GHHIZUEIZUEUEHHJJKZUGKGALZUEMBLZUEMN
      UHCLZDLZOTUIELZFLZOTNUJUMPQUKULPQTNFRERDRCRZNABSUFABCDEFUAUNABUEUEUBUCUD
      $.
  $}

  ${
    $d x y z w v u $.
    $( Signed real 'less than' is a relation on signed reals.  (Contributed by
       NM, 14-Feb-1996.)  (New usage is discouraged.) $)
    ltrelsr $p |- <R C_ ( R. X. R. ) $=
      ( vx vy vz vw vv vu cltr cv cnr wcel wa cop cer cec wceq cpp cltp wbr wex
      co copab cxp df-ltr opabssxp eqsstri ) GAHZIJBHZIJKUFCHZDHZLMNOUGEHZFHZLM
      NOKUHUKPTUIUJPTQRKFSESDSCSZKABUAIIUBABCDEFUCULABIIUDUE $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.  $d x y z F $.
    $d x y z G $.  $d x y z R $.  $d x y z S $.
    $( Lemma showing compatibility of addition.  (Contributed by NM,
       3-Sep-1995.)  (New usage is discouraged.) $)
    addcmpblnr $p |- ( ( ( ( A e. P. /\ B e. P. ) /\ ( C e. P. /\ D e. P. ) )
               /\ ( ( F e. P. /\ G e. P. ) /\ ( R e. P. /\ S e. P. ) ) ) ->
                ( ( ( A +P. D ) = ( B +P. C ) /\ ( F +P. S ) = ( G +P. R ) ) ->
     <. ( A +P. F ) , ( B +P. G ) >. ~R <. ( C +P. R ) , ( D +P. S ) >. ) ) $=
      ( cpp co wceq wa cop cnp wcel addclpr anim12i an4s addcompr addasspr cer
      wbr oveq12 wb enrbreq syl oveq1i 3eqtr3i oveq2i 3eqtr4i eqeq12i syl5ibr
      syl6bb ) ADIJZBCIJZKGFIJZHEIJZKLAGIJZBHIJZMCEIJZDFIJZMUAUBZANOZBNOZLZCNOZ
      DNOZLZLGNOZHNOZLZENOZFNOZLZLLZUNUPIJZUOUQIJZKZUNUOUPUQIUCVOVBURVAIJZUSUTI
      JZKZVRVOURNOZUSNOZLZUTNOZVANOZLZLZVBWAUDVEVKVHVNWHVEVKLWDVHVNLWGVCVIVDVJW
      DVCVILWBVDVJLWCAGPBHPQRVFVLVGVMWGVFVLLWEVGVMLWFCEPDFPQRQRURUSUTVAUEUFVSVP
      VTVQAGVAIJZIJADUPIJZIJVSVPWIWJAIGDIJZFIJDGIJZFIJWIWJWKWLFIGDSUGGDFTDGFTUH
      UIAGVATADUPTUJBHUTIJZIJBCUQIJZIJVTVQWMWNBIHCIJZEIJCHIJZEIJWMWNWOWPEIHCSUG
      HCETCHETUHUIBHUTTBCUQTUJUKUMUL $.

    $( Lemma used in lemma showing compatibility of multiplication.
       (Contributed by NM, 4-Sep-1995.)  (New usage is discouraged.) $)
    mulcmpblnrlem $p |- ( ( ( A +P. D ) = ( B +P. C ) /\
                            ( F +P. S ) = ( G +P. R ) ) ->
                    ( ( D .P. F ) +P. ( ( ( A .P. F ) +P. ( B .P. G ) ) +P.
                            ( ( C .P. S ) +P. ( D .P. R ) ) ) ) =
                    ( ( D .P. F ) +P. ( ( ( A .P. G ) +P. ( B .P. F ) ) +P.
                            ( ( C .P. R ) +P. ( D .P. S ) ) ) ) ) $=
      ( vx vy vz cpp co cmp distrpr mulcompr oveq12i 3eqtr3g addasspr ovex wceq
      oveq1 3eqtr4i oveq1d oveq2 oveq2d syl5eq sylan9eq addcompr caov32 syl6eqr
      wa cv caov12 sylan9eqr syl6eq eqtr4d caov13 caov4 oveq2i caov42 ) ADLMZBC
      LMZUAZGFLMZHELMZUAZULZDGNMZAGNMZCFNMZLMZBHNMZDENMZLMZLMZLMZVIAHNMZDFNMZLM
      ZBGNMZCENMZLMZLMZLMZVIVJVMLMVKVNLMLMZLMVIVRWALMWBVSLMLMZLMVHVOVLVILMZLMZV
      IVTLMZWCLMZVQWEVHWIVOCHNMZWCLMZLMZWKVHWHWMVOLVHVJVILMZVKLMZWAWLWBLMZLMZWH
      WMVDVGWPWACGNMZLMZVKLMZWRVDWOWTVKLVDVBGNMZVCGNMZWOWTVBVCGNUBGVBNMGANMZGDN
      MZLMXBWOGADOVBGPVJXDVIXELAGPDGPQUCGVCNMGBNMZGCNMZLMXCWTGBCOVCGPWAXFWSXGLB
      GPCGPQUCRUDVGXAWAWSVKLMZLMWRWAWSVKSVGXHWQWALVGCVENMCVFNMXHWQVEVFCNUECGFOC
      HEORUFUGUHIJKVJVIVKLAGNTZDGNTZCFNTZIUMZJUMZUIZXLXMKUMSZUJIJKWAWLWBLBGNTZC
      HNTZCENTZXNXOUNRUFVHWKVOWLLMZWCLMWNVHWJXSWCLVHVRVIVSLMZLMZVMWLLMZVNLMZWJX
      SVGVDYAVRDHNMZLMZVNLMZYCVGYAVRYDVNLMZLMYFVGXTYGVRLVGDVENMDVFNMXTYGVEVFDNU
      EDGFODHEORUFVRYDVNSUKVDYEYBVNLVDVBHNMZVCHNMZYEYBVBVCHNUBHVBNMHANMZHDNMZLM
      YHYEHADOVBHPVRYJYDYKLAHPDHPQUCHVCNMHBNMZHCNMZLMYIYBHBCOVCHPVMYLWLYMLBHPCH
      PQUCRUDUOIJKVRVIVSLAHNTZXJDFNTZXNXOUNIJKVMWLVNLBHNTZXQDENTZXNXOUJRUDVOWLW
      CSUPUQIJKVOVLVILVMVNLTVJVKLTXJXNXOURVIVTWCSRVPWFVILIJKVJVKVMVNLXIXKYPXNXO
      YQUSUTWDWGVILIJKVRVSWAWBLYNYOXPXNXOXRVAUTR $.

    $( Lemma showing compatibility of multiplication.  (Contributed by NM,
       5-Sep-1995.)  (New usage is discouraged.) $)
    mulcmpblnr $p |- ( ( ( ( A e. P. /\ B e. P. ) /\ ( C e. P. /\ D e. P. ) )
               /\ ( ( F e. P. /\ G e. P. ) /\ ( R e. P. /\ S e. P. ) ) ) ->
                ( ( ( A +P. D ) = ( B +P. C ) /\ ( F +P. S ) = ( G +P. R ) ) ->
    <. ( ( A .P. F ) +P. ( B .P. G ) ) , ( ( A .P. G ) +P. ( B .P. F ) ) >. ~R
 <. ( ( C .P. R ) +P. ( D .P. S ) ) , ( ( C .P. S ) +P. ( D .P. R ) ) >. ) ) $=
      ( cnp wcel wa cpp co wceq cmp cop mulclpr syl2anc addclpr syl22anc cer wi
      wbr mulcmpblnrlem simplll simprll simpllr simprlr simplrl simprrr simplrr
      ad2ant2lr simprrl addcanpr syl5 wb syl2an enrbreq sylibrd ) AIJZBIJZKZCIJ
      ZDIJZKZKZGIJZHIJZKZEIJZFIJZKZKZKZADLMBCLMNGFLMHELMNKZAGOMZBHOMZLMZCFOMZDE
      OMZLMZLMZAHOMZBGOMZLMZCEOMZDFOMZLMZLMZNZVRWEPWHWAPUAUCZVODGOMZWBLMWLWILMN
      ZVNWJABCDEFGHUDVNWLIJZWBIJZWMWJUBVEVIWNVBVLVDVGWNVCVHDGQULULVNVRIJZWAIJZW
      OVNVPIJZVQIJZWPVNUTVGWRUTVAVEVMUEZVFVGVHVLUFZAGQRVNVAVHWSUTVAVEVMUGZVFVGV
      HVLUHZBHQRVPVQSRZVNVSIJZVTIJZWQVNVCVKXEVBVCVDVMUIZVFVIVJVKUJZCFQRVNVDVJXF
      VBVCVDVMUKZVFVIVJVKUMZDEQRVSVTSRZVRWASRWLWBWIUNRUOVNWPWEIJZWHIJZWQWKWJUPX
      DVNUTVHVAVGXLWTXCXBXAUTVHKWCIJWDIJXLVAVGKAHQBGQWCWDSUQTVNVCVJVDVKXMXGXJXI
      XHVCVJKWFIJWGIJXMVDVKKCEQDFQWFWGSUQTXKVRWEWHWAURTUS $.
  $}

  ${
    $d a b c d f g h s t u v w x y $.
    $( Decomposing signed reals into positive reals.  Lemma for ~ addsrpr and
       ~ mulsrpr .  (Contributed by Jim Kingdon, 30-Dec-2019.) $)
    prsrlem1 $p |- ( (
        ( A e. ( ( P. X. P. ) /. ~R ) /\ B e. ( ( P. X. P. ) /. ~R ) )
        /\ ( ( A = [ <. w , v >. ] ~R /\ B = [ <. u , t >. ] ~R )
        /\ ( A = [ <. s , f >. ] ~R /\ B = [ <. g , h >. ] ~R ) ) ) -> (
        ( ( ( w e. P. /\ v e. P. ) /\ ( s e. P. /\ f e. P. ) )
          /\ ( ( u e. P. /\ t e. P. ) /\ ( g e. P. /\ h e. P. ) ) )
        /\ ( ( w +P. f ) = ( v +P. s ) /\ ( u +P. h ) = ( t +P. g ) ) ) ) $=
      ( cnp cer wcel wa cv cop cec wceq cpp co vx vy va vb vc cxp cqs cdm enrer
      vd wer erdm ax-mp simprll simpll eqeltrrd ecelqsdm sylancr opelxp simprrl
      sylib jca simprlr simplr simprrr wbr eqtr3d a1i mpbird wb df-enr ecopoveq
      erth syl2anc mpbid jca31 ) EKKUFZLUGZMZFVRMZNZEAOZBOZPZLQZRZFCOZDOZPZLQZR
      ZNZEJOZGOZPZLQZRZFHOZIOZPZLQZRZNZNZNZWBKMWCKMNZWMKMWNKMNZNWGKMWHKMNZWRKMW
      SKMNZNWBWNSTWCWMSTRZWGWSSTWHWRSTRZNXEXFXGXEWDVQMZXFXELUHVQRZWEVRMXLVQLUKZ
      XMUIVQLULUMZXEEWEVRWAWFWKXCUNZVSVTXDUOZUPVQWDLUQURZWBWCKKUSVAZXEWOVQMZXGX
      EXMWPVRMXTXOXEEWPVRWAWLWQXBUTZXQUPVQWOLUQURWMWNKKUSVAZVBXEXHXIXEWIVQMZXHX
      EXMWJVRMYCXOXEFWJVRWAWFWKXCVCZVSVTXDVDZUPVQWILUQURZWGWHKKUSVAZXEWTVQMZXIX
      EXMXAVRMYHXOXEFXAVRWAWLWQXBVEZYEUPVQWTLUQURWRWSKKUSVAZVBXEXJXKXEWDWOLVFZX
      JXEYKWEWPRXEEWEWPXPYAVGXEWDWOLVQXNXEUIVHZXRVMVIXEXFXGYKXJVJXSYBUAUBUCUDUE
      UJWBWCWMWNSLKUAUBUCUDUEUJVKZVLVNVOXEWIWTLVFZXKXEYNWJXARXEFWJXAYDYIVGXEWIW
      TLVQYLYFVMVIXEXHXIYNXKVJYGYJUAUBUCUDUEUJWGWHWRWSSLKYMVLVNVOVBVP $.
  $}

  ${
    $d A f g h q s t u v w z $.  $d B f g h q s t u v w z $.
    $( There is at most one result from adding signed reals.  (Contributed by
       Jim Kingdon, 30-Dec-2019.) $)
    addsrmo $p |- ( ( A e. ( ( P. X. P. ) /. ~R ) /\
        B e. ( ( P. X. P. ) /. ~R ) ) -> E* z E. w E. v E. u E. t
        ( ( A = [ <. w , v >. ] ~R /\ B = [ <. u , t >. ] ~R )
        /\ z = [ <. ( w +P. u ) , ( v +P. t ) >. ] ~R ) ) $=
      ( vq vs cnp cer wcel wa cv cop cec wceq cpp co wex vf cxp cqs wal wmo wer
      vg vh wi enrer a1i wbr prsrlem1 addcmpblnr imp syl erthi adantrlr simprlr
      adantrrr simprrr 3eqtr4d expr exlimdvv impd alrimivv opeq12 eceq1d eqeq2d
      ex anbi1d simpl oveq1d simpr opeq12d anbi12d anbi2d oveq2d cbvex4v anbi2i
      imbi1i 2albii sylibr eqeq1 4exbidv mo4 ) FJJUBZKUCZLGWHLMZFBNZCNZOZKPZQZG
      DNZENZOZKPZQZMZANZWJWORSZWKWPRSZOZKPZQZMZETDTZCTBTZWTHNZXEQZMZETDTCTBTZMZ
      XAXJQZUIZHUDAUDZXIAUEWIXIFINZUANZOZKPZQZGUGNZUHNZOZKPZQZMZXJXRYCRSZXSYDRS
      ZOZKPZQZMZUHTUGTZUATITZMZXOUIZHUDAUDXQWIYRAHWIXIYPXOWIXHYPXOUIZBCWIXGYSDE
      WIXGYSWIXGMZYOXOIUAYTYNXOUGUHWIXGYNXOWIXGYNMMXEYLXAXJWIXGYHXEYLQZYMWIWTYH
      UUAXFWIWTYHMMZXDYKKWGWGKUFUUBUJUKUUBWJJLWKJLMXRJLXSJLMMWOJLWPJLMYCJLYDJLM
      MMZWJXSRSWKXRRSQWOYDRSWPYCRSQMZMXDYKKULZBCDEFGUAUGUHIUMUUCUUDUUEWJWKXRXSY
      CYDWOWPUNUOUPUQURUTWIWTXFYNUSWIXGYHYMVAVBVCVDVDVJVDVDVEVFXPYRAHXNYQXOXMYP
      XIXLYBWSMZXJXRWORSZXSWPRSZOZKPZQZMYNBCDEIUAUGUHWJXRQZWKXSQZMZWTUUFXKUUKUU
      NWNYBWSUUNWMYAFUUNWLXTKWJWKXRXSVGVHVIVKUUNXEUUJXJUUNXDUUIKUUNXBUUGXCUUHUU
      NWJXRWORUULUUMVLVMUUNWKXSWPRUULUUMVNVMVOVHVIVPWOYCQZWPYDQZMZUUFYHUUKYMUUQ
      WSYGYBUUQWRYFGUUQWQYEKWOWPYCYDVGVHVIVQUUQUUJYLXJUUQUUIYKKUUQUUGYIUUHYJUUQ
      WOYCXRRUUOUUPVLVRUUQWPYDXSRUUOUUPVNVRVOVHVIVPVSVTWAWBWCXIXMAHXOXGXLBCDEXO
      XFXKWTXAXJXEWDVQWEWFWC $.

    $( There is at most one result from multiplying signed reals.  (Contributed
       by Jim Kingdon, 30-Dec-2019.) $)
    mulsrmo $p |- ( ( A e. ( ( P. X. P. ) /. ~R ) /\
        B e. ( ( P. X. P. ) /. ~R ) ) -> E* z E. w E. v E. u E. t
        ( ( A = [ <. w , v >. ] ~R /\ B = [ <. u , t >. ] ~R )
        /\ z = [ <. ( ( w .P. u ) +P. ( v .P. t ) ) ,
          ( ( w .P. t ) +P. ( v .P. u ) ) >. ] ~R ) ) $=
      ( vq cnp cer wcel wa cv cop cec wceq cmp co cpp wex vs vf cxp cqs wal wmo
      vg vh wi wer enrer a1i wbr prsrlem1 mulcmpblnr imp erthi adantrlr simprlr
      syl adantrrr simprrr 3eqtr4d expr exlimdvv ex impd alrimivv opeq12 eceq1d
      eqeq2d anbi1d oveq1d oveq12d opeq12d anbi12d anbi2d oveq2d cbvex4v anbi2i
      simpl simpr imbi1i 2albii sylibr eqeq1 4exbidv mo4 ) FIIUCZJUDZKGWJKLZFBM
      ZCMZNZJOZPZGDMZEMZNZJOZPZLZAMZWLWQQRZWMWRQRZSRZWLWRQRZWMWQQRZSRZNZJOZPZLZ
      ETDTZCTBTZXBHMZXKPZLZETDTCTBTZLZXCXPPZUIZHUEAUEZXOAUFWKXOFUAMZUBMZNZJOZPZ
      GUGMZUHMZNZJOZPZLZXPYDYIQRZYEYJQRZSRZYDYJQRZYEYIQRZSRZNZJOZPZLZUHTUGTZUBT
      UATZLZYAUIZHUEAUEYCWKUUHAHWKXOUUFYAWKXNUUFYAUIZBCWKXMUUIDEWKXMUUIWKXMLZUU
      EYAUAUBUUJUUDYAUGUHWKXMUUDYAWKXMUUDLLXKUUBXCXPWKXMYNXKUUBPZUUCWKXBYNUUKXL
      WKXBYNLLZXJUUAJWIWIJUJUULUKULUULWLIKWMIKLYDIKYEIKLLWQIKWRIKLYIIKYJIKLLLZW
      LYESRWMYDSRPWQYJSRWRYISRPLZLXJUUAJUMZBCDEFGUBUGUHUAUNUUMUUNUUOWLWMYDYEYIY
      JWQWRUOUPUTUQURVAWKXBXLUUDUSWKXMYNUUCVBVCVDVEVEVFVEVEVGVHYBUUHAHXTUUGYAXS
      UUFXOXRYHXALZXPYDWQQRZYEWRQRZSRZYDWRQRZYEWQQRZSRZNZJOZPZLUUDBCDEUAUBUGUHW
      LYDPZWMYEPZLZXBUUPXQUVEUVHWPYHXAUVHWOYGFUVHWNYFJWLWMYDYEVIVJVKVLUVHXKUVDX
      PUVHXJUVCJUVHXFUUSXIUVBUVHXDUUQXEUURSUVHWLYDWQQUVFUVGWAZVMUVHWMYEWRQUVFUV
      GWBZVMVNUVHXGUUTXHUVASUVHWLYDWRQUVIVMUVHWMYEWQQUVJVMVNVOVJVKVPWQYIPZWRYJP
      ZLZUUPYNUVEUUCUVMXAYMYHUVMWTYLGUVMWSYKJWQWRYIYJVIVJVKVQUVMUVDUUBXPUVMUVCU
      UAJUVMUUSYQUVBYTUVMUUQYOUURYPSUVMWQYIYDQUVKUVLWAZVRUVMWRYJYEQUVKUVLWBZVRV
      NUVMUUTYRUVAYSSUVMWRYJYDQUVOVRUVMWQYIYEQUVNVRVNVOVJVKVPVSVTWCWDWEXOXSAHYA
      XMXRBCDEYAXLXQXBXCXPXKWFVQWGWHWE $.
  $}

  ${
    $d x y z w v u t A $.  $d x y z w v u t B $.  $d x y z w v u t C $.
    $d x y z w v u t D $.
    $( Addition of signed reals in terms of positive reals.  (Contributed by
       NM, 3-Sep-1995.)  (Revised by Mario Carneiro, 12-Aug-2015.)
       (New usage is discouraged.) $)
    addsrpr $p |- ( ( ( A e. P. /\ B e. P. ) /\
                     ( C e. P. /\ D e. P. ) ) ->
                ( [ <. A , B >. ] ~R +R [ <. C , D >. ] ~R ) =
                   [ <. ( A +P. C ) , ( B +P. D ) >. ] ~R ) $=
      ( vw vv vu vt vz cnp wcel wa cop cer cec cv wceq cpp co wex vx vy cxp cqs
      cplr opelxpi enrex ecelqsi syl anim12i pm3.2i opeq12 eceq1d eqeq2d anbi1d
      eqid simpl oveq1d simpr opeq12d anbi12d spc2egv anbi2d oveq2d 2eximdv cvv
      sylan9 mp2ani wi ecexg ax-mp w3a simp1 eqeq1d simp2 simp3 4exbidv addsrmo
      coprab df-plr df-nr eleq2i anbi12i anbi1i oprabbii eqtri ovig mp3an3 sylc
      cnr ) AJKBJKLZCJKDJKLZLZABMZNOZJJUCZNUDZKZCDMZNOZWQKZLWOEPZFPZMZNOZQZWTGP
      ZHPZMZNOZQZLZACRSZBDRSZMZNOZXBXGRSZXCXHRSZMZNOZQZLZHTGTZFTETZWOWTUESXPQZW
      KWRWLXAWKWNWPKWRABJJUFWPWNNUGUHUIWLWSWPKXACDJJUFWPWSNUGUHUIUJWMWOWOQZWTWT
      QZLZXPXPQZYDYFYGWOUPWTUPUKXPUPWKYHYILZXFYGLZXPXBCRSZXCDRSZMZNOZQZLZFTETWL
      YDYQYJEFABJJXBAQZXCBQZLZYKYHYPYIYTXFYFYGYTXEWOWOYTXDWNNXBXCABULUMUNUOYTYO
      XPXPYTYNXONYTYLXMYMXNYTXBACRYRYSUQURYTXCBDRYRYSUSURUTUMUNVAVBWLYQYCEFYBYQ
      GHCDJJXGCQZXHDQZLZXLYKYAYPUUCXKYGXFUUCXJWTWTUUCXIWSNXGXHCDULUMUNVCUUCXTYO
      XPUUCXSYNNUUCXQYLXRYMUUCXGCXBRUUAUUBUQVDUUCXHDXCRUUAUUBUSVDUTUMUNVAVBVEVG
      VHWRXAXPVFKZYDYEVINVFKUUDUGXOVFNVJVKUAPZXEQZUBPZXJQZLZIPZXTQZLZHTGTFTETZY
      DUAUBIWOWTXPVFWQWQUEUUEWOQZUUGWTQZUUJXPQZVLZUULYBEFGHUUQUUIXLUUKYAUUQUUFX
      FUUHXKUUQUUEWOXEUUNUUOUUPVMVNUUQUUGWTXJUUNUUOUUPVOVNVAUUQUUJXPXTUUNUUOUUP
      VPVNVAVQIEFGHUUEUUGVRUEUUEWJKZUUGWJKZLZUUMLZUAUBIVSUUEWQKZUUGWQKZLZUUMLZU
      AUBIVSUAUBIEFGHVTUVAUVEUAUBIUUTUVDUUMUURUVBUUSUVCWJWQUUEWAWBWJWQUUGWAWBWC
      WDWEWFWGWHWI $.

    $( Multiplication of signed reals in terms of positive reals.  (Contributed
       by NM, 3-Sep-1995.)  (Revised by Mario Carneiro, 12-Aug-2015.)
       (New usage is discouraged.) $)
    mulsrpr $p |- ( ( ( A e. P. /\ B e. P. ) /\
                     ( C e. P. /\ D e. P. ) ) ->
                ( [ <. A , B >. ] ~R .R [ <. C , D >. ] ~R ) =
                   [ <. ( ( A .P. C ) +P. ( B .P. D ) ) ,
                              ( ( A .P. D ) +P. ( B .P. C ) ) >. ] ~R ) $=
      ( vw vv vu vt vz cnp wcel wa cop cer cec wceq cmp co cpp wex vx vy cxp cv
      cqs cmr opelxpi enrex ecelqsi syl eqid pm3.2i opeq12 eceq1d eqeq2d anbi1d
      anim12i simpl oveq1d simpr oveq12d opeq12d anbi12d spc2egv anbi2d 2eximdv
      oveq2d sylan9 mp2ani cvv ecexg ax-mp w3a simp1 eqeq1d simp2 simp3 4exbidv
      wi mulsrmo coprab df-mr df-nr eleq2i anbi12i anbi1i oprabbii eqtri mp3an3
      cnr ovig sylc ) AJKBJKLZCJKDJKLZLZABMZNOZJJUCZNUEZKZCDMZNOZWSKZLWQEUDZFUD
      ZMZNOZPZXBGUDZHUDZMZNOZPZLZACQRZBDQRZSRZADQRZBCQRZSRZMZNOZXDXIQRZXEXJQRZS
      RZXDXJQRZXEXIQRZSRZMZNOZPZLZHTGTZFTETZWQXBUFRYBPZWMWTWNXCWMWPWRKWTABJJUGW
      RWPNUHUIUJWNXAWRKXCCDJJUGWRXANUHUIUJUQWOWQWQPZXBXBPZLZYBYBPZYNYPYQWQUKXBU
      KULYBUKWMYRYSLZXHYQLZYBXDCQRZXEDQRZSRZXDDQRZXECQRZSRZMZNOZPZLZFTETWNYNUUK
      YTEFABJJXDAPZXEBPZLZUUAYRUUJYSUUNXHYPYQUUNXGWQWQUUNXFWPNXDXEABUMUNUOUPUUN
      UUIYBYBUUNUUHYANUUNUUDXQUUGXTUUNUUBXOUUCXPSUUNXDACQUULUUMURZUSUUNXEBDQUUL
      UUMUTZUSVAUUNUUEXRUUFXSSUUNXDADQUUOUSUUNXEBCQUUPUSVAVBUNUOVCVDWNUUKYMEFYL
      UUKGHCDJJXICPZXJDPZLZXNUUAYKUUJUUSXMYQXHUUSXLXBXBUUSXKXANXIXJCDUMUNUOVEUU
      SYJUUIYBUUSYIUUHNUUSYEUUDYHUUGUUSYCUUBYDUUCSUUSXICXDQUUQUURURZVGUUSXJDXEQ
      UUQUURUTZVGVAUUSYFUUEYGUUFSUUSXJDXDQUVAVGUUSXICXEQUUTVGVAVBUNUOVCVDVFVHVI
      WTXCYBVJKZYNYOVSNVJKUVBUHYAVJNVKVLUAUDZXGPZUBUDZXLPZLZIUDZYJPZLZHTGTFTETZ
      YNUAUBIWQXBYBVJWSWSUFUVCWQPZUVEXBPZUVHYBPZVMZUVJYLEFGHUVOUVGXNUVIYKUVOUVD
      XHUVFXMUVOUVCWQXGUVLUVMUVNVNVOUVOUVEXBXLUVLUVMUVNVPVOVCUVOUVHYBYJUVLUVMUV
      NVQVOVCVRIEFGHUVCUVEVTUFUVCWJKZUVEWJKZLZUVKLZUAUBIWAUVCWSKZUVEWSKZLZUVKLZ
      UAUBIWAUAUBIEFGHWBUVSUWCUAUBIUVRUWBUVKUVPUVTUVQUWAWJWSUVCWCWDWJWSUVEWCWDW
      EWFWGWHWKWIWL $.
  $}

  ${
    $d A x y z w v u f $.  $d B x y z w v u f $.  $d C x y z w v u f $.
    $d D x y z w v u f $.
    $( Ordering of signed reals in terms of positive reals.  (Contributed by
       NM, 20-Feb-1996.)  (Revised by Mario Carneiro, 12-Aug-2015.)
       (New usage is discouraged.) $)
    ltsrpr $p |- ( [ <. A , B >. ] ~R <R [ <. C , D >. ] ~R <->
                          ( A +P. D ) <P ( B +P. C ) ) $=
      ( vz vx vy cpp cer cnp cltp wceq cv co wcel wa cop cec addasspr ovex cltr
      vu vw vv vf cnr enrex cxp wer enrer erdm ax-mp df-nr ltrelsr ltrelpr 0npr
      cdm dmplp wbr df-ltr addclpr ad2ant2lr anim12ci an4s enreceq eqcom syl6bb
      wb bi2anan9 oveq12 addcompr oveq1i 3eqtr3i oveq2i 3eqtr4i syl6bi caovord3
      3eqtr4g ltapr syl6an brecop brecop2 ) ABCDHIUAJUFKUGJJUHZIUIIUQWCLUJWCIUK
      ULUMUNUOUPUREMZUBMZHNZUCMZUDMZHNZKUSZADHNZBCHNZKUSZFGEUCUDUBABCDIJUFUAUGU
      JUMFGEUCUDUBUTWDJOZWGJOZPZAJOZBJOZPZPZWHJOZWEJOZPZCJOZDJOZPZPZPZWLJOZWIJO
      ZPZWDWGQIRABQIRLZWHWEQIRCDQIRLZPZWFWLHNZWIWKHNZLZWJWMVHWPXCWSXFXKWPXCPXJW
      SXFPXIWOXAXJWNXBWGWHVAVBWRXDXIWQXEBCVAVBVCVDXHXNWDBHNZWGAHNZLZWECHNZWHDHN
      ZLZPZXQWTXLXTXGXMYCWDWGABVEXGXMYBYALYCWHWECDVEYBYAVFVGVIYDXRYAHNZXSYBHNZX
      OXPXRXSYAYBHVJWDWEWLHNZHNWDBYAHNZHNXOYEYGYHWDHWEBHNZCHNBWEHNZCHNYGYHYIYJC
      HWEBVKVLWEBCSBWECSVMVNWDWEWLSWDBYASVOWGWHWKHNZHNWGAYBHNZHNXPYFYKYLWGHWHAH
      NZDHNAWHHNZDHNYKYLYMYNDHWHAVKVLWHADSAWHDSVMVNWGWHWKSWGAYBSVOVRVPFGUEWFWLW
      IWKKJHWDWEHTBCHTFMZGMZUEMVSWGWHHTYOYPVKADHTVQVTWAWB $.
  $}

  $( Greater than zero in terms of positive reals.  (Contributed by NM,
     13-May-1996.)  (New usage is discouraged.) $)
  gt0srpr $p |- ( 0R <R [ <. A , B >. ] ~R <-> B <P A ) $=
    ( c1p cop cer cec cltr wbr cpp co cltp c0r ltsrpr df-0r breq1i cnp wcel 1pr
    wb ltapr ax-mp 3bitr4i ) CCDEFZABDEFZGHCBIJCAIJKHZLUDGHBAKHZCCABMLUCUDGNOCP
    QUFUESRBACTUAUB $.

  $( The empty set is not a signed real.  (Contributed by NM, 25-Aug-1995.)
     (Revised by Mario Carneiro, 10-Jul-2014.)  (New usage is discouraged.) $)
  0nsr $p |- -. (/) e. R. $=
    ( c0 wceq cnr wcel eqid wne cnp cxp cer cqs cdm wer enrer erdm ax-mp elqsn0
    wn mpan df-nr eleq2s necon2bi ) AABACDZQAEUBAAAAFZAGGHZIJZCIKUDBZAUEDUCUDIL
    UFMUDINOUDAIPRSTUAO $.

  $( The constant ` 0R ` is a signed real.  (Contributed by NM, 9-Aug-1995.)
     (New usage is discouraged.) $)
  0r $p |- 0R e. R. $=
    ( c1p cop cer cec cnp cxp cqs c0r cnr 1pr opelxpi mp2an enrex ecelqsi ax-mp
    wcel df-0r df-nr 3eltr4i ) AABZCDZEEFZCGZHITUBPZUAUCPAEPZUEUDJJAAEEKLUBTCMN
    OQRS $.

  $( The constant ` 1R ` is a signed real.  (Contributed by NM, 9-Aug-1995.)
     (New usage is discouraged.) $)
  1sr $p |- 1R e. R. $=
    ( c1p cpp co cop cer cec cnp cxp cqs c1r cnr wcel 1pr addclpr mp2an opelxpi
    enrex ecelqsi ax-mp df-1r df-nr 3eltr4i ) AABCZADZEFZGGHZEIZJKUDUFLZUEUGLUC
    GLZAGLZUHUJUJUIMMAANOMUCAGGPOUFUDEQRSTUAUB $.

  $( The constant ` -1R ` is a signed real.  (Contributed by NM, 9-Aug-1995.)
     (New usage is discouraged.) $)
  m1r $p |- -1R e. R. $=
    ( c1p cpp cop cer cec cnp cxp cqs cm1r cnr wcel addclpr mp2an opelxpi enrex
    co 1pr ecelqsi ax-mp df-m1r df-nr 3eltr4i ) AAABPZCZDEZFFGZDHZIJUDUFKZUEUGK
    AFKZUCFKZUHQUIUIUJQQAALMAUCFFNMUFUDDORSTUAUB $.

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Closure of addition on signed reals.  (Contributed by NM, 25-Jul-1995.)
       (New usage is discouraged.) $)
    addclsr $p |- ( ( A e. R. /\ B e. R. ) -> ( A +R B ) e. R. ) $=
      ( vx vy vz vw cnr wcel wa cplr co cnp cer cop cec df-nr wceq eleq1d cpp
      cv cxp cqs oveq1 oveq2 addsrpr addclpr anim12i an4s opelxpi enrex ecelqsi
      3syl eqeltrd 2ecoptocl syl6eleqr ) AGHBGHIABJKZLLUAZMUBZGCTZDTZNMOZETZFTZ
      NMOZJKZURHAVDJKZURHUPURHCDEFABLLMGPVAAQVEVFURVAAVDJUCRVDBQVFUPURVDBAJUDRU
      SLHZUTLHZIVBLHZVCLHZIIZVEUSVBSKZUTVCSKZNZMOZURUSUTVBVCUEVKVLLHZVMLHZIZVNU
      QHVOURHVGVIVHVJVRVGVIIVPVHVJIVQUSVBUFUTVCUFUGUHVLVMLLUIUQVNMUJUKULUMUNPUO
      $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Closure of multiplication on signed reals.  (Contributed by NM,
       10-Aug-1995.)  (New usage is discouraged.) $)
    mulclsr $p |- ( ( A e. R. /\ B e. R. ) -> ( A .R B ) e. R. ) $=
      ( vx vy vz vw cnr wcel wa cmr co cnp cer cop cec df-nr wceq cmp mulclpr
      cv cxp cqs oveq1 eleq1d oveq2 cpp mulsrpr addclpr syl2an an4s jca opelxpi
      an42s enrex ecelqsi 3syl eqeltrd 2ecoptocl syl6eleqr ) AGHBGHIABJKZLLUAZM
      UBZGCTZDTZNMOZETZFTZNMOZJKZVBHAVHJKZVBHUTVBHCDEFABLLMGPVEAQVIVJVBVEAVHJUC
      UDVHBQVJUTVBVHBAJUEUDVCLHZVDLHZIVFLHZVGLHZIIZVIVCVFRKZVDVGRKZUFKZVCVGRKZV
      DVFRKZUFKZNZMOZVBVCVDVFVGUGVOVRLHZWALHZIWBVAHWCVBHVOWDWEVKVMVLVNWDVKVMIVP
      LHVQLHWDVLVNIVCVFSVDVGSVPVQUHUIUJVKVNVLVMWEVKVNIVSLHVTLHWEVLVMIVCVGSVDVFS
      VSVTUHUIUMUKVRWALLULVAWBMUNUOUPUQURPUS $.
  $}

  ${
    $d x y z w v u f $.
    $( Domain of addition on signed reals.  (Contributed by NM, 25-Aug-1995.)
       (New usage is discouraged.) $)
    dmaddsr $p |- dom +R = ( R. X. R. ) $=
      ( vx vy vw vv vu vf vz cplr cdm cnr cv wcel wa cop cer cec wceq cpp wex
      co cxp coprab df-plr dmeqi dmoprabss eqsstri 0nsr addclsr oprssdm eqssi )
      HIZJJUAZUKAKZJLBKZJLMUMCKZDKZNOPQUNEKZFKZNOPQMGKUOUQRTUPURRTNOPQMFSESDSCS
      ZMABGUBZIULHUTABGCDEFUCUDUSABGJJUEUFABJHUGUMUNUHUIUJ $.
  $}

  ${
    $d x y z w v u f $.
    $( Domain of multiplication on signed reals.  (Contributed by NM,
       25-Aug-1995.)  (New usage is discouraged.) $)
    dmmulsr $p |- dom .R = ( R. X. R. ) $=
      ( vx vy vw vv vu vf vz cmr cdm cnr cv wcel wa cop cer cec wceq cmp co wex
      cxp cpp coprab df-mr dmeqi dmoprabss eqsstri 0nsr mulclsr oprssdm eqssi )
      HIZJJUAZULAKZJLBKZJLMUNCKZDKZNOPQUOEKZFKZNOPQMGKUPURRSUQUSRSUBSUPUSRSUQUR
      RSUBSNOPQMFTETDTCTZMABGUCZIUMHVAABGCDEFUDUEUTABGJJUFUGABJHUHUNUOUIUJUK $.
  $}

  ${
    $d f g h u v w x y z A $.  $d u v w z B $.  $d u v w x y z C $.
    $( Addition of signed reals is commutative.  (Contributed by NM,
       31-Aug-1995.)  (Revised by Mario Carneiro, 28-Apr-2015.)
       (New usage is discouraged.) $)
    addcomsr $p |- ( A +R B ) = ( B +R A ) $=
      ( vx vy vz vw cnr wcel wa cplr co wceq cpp cer cnp df-nr addsrpr addcompr
      cv ecovcom dmaddsr ndmovcom pm2.61i ) AGHBGHIABJKBAJKLCDEFABGCSZESZMKJNOD
      SZFSZMKUEUDMKUGUFMKPUDUFUEUGQUEUGUDUFQUDUERUFUGRTABGJUAUBUC $.

    $( Addition of signed reals is associative.  (Contributed by NM,
       2-Sep-1995.)  (Revised by Mario Carneiro, 28-Apr-2015.)
       (New usage is discouraged.) $)
    addasssr $p |- ( ( A +R B ) +R C ) = ( A +R ( B +R C ) ) $=
      ( vx vy vz vw vv vu cnr wcel cplr co cv cpp cnp addsrpr addclpr anim12i
      wa w3a wceq cer df-nr an4s addasspr ecovass dmaddsr 0nsr ndmovass pm2.61i
      ) AJKBJKCJKUAABLMCLMABCLMLMUBDEFGHIABCJLGNZINZOMZUCPDNZFNZOMZENZULOMZUQHN
      ZOMUSUMOMUOUPUTOMZOMURUNOMVAUDUOURUPULQUPULUTUMQUQUSUTUMQUOURVAUNQUOPKZUP
      PKZURPKZULPKZUQPKZUSPKZTVBVCTVFVDVETVGUOUPRURULRSUEVCUTPKZVEUMPKZVAPKZUNP
      KZTVCVHTVJVEVITVKUPUTRULUMRSUEUOUPUTUFURULUMUFUGABCJLUHUIUJUK $.

    $( Multiplication of signed reals is commutative.  (Contributed by NM,
       31-Aug-1995.)  (Revised by Mario Carneiro, 28-Apr-2015.)
       (New usage is discouraged.) $)
    mulcomsr $p |- ( A .R B ) = ( B .R A ) $=
      ( vx vy vz vw cnr wcel wa cmr co wceq cv cmp cpp cer cnp mulsrpr mulcompr
      oveq12i df-nr addcompr eqtri ecovcom dmmulsr ndmovcom pm2.61i ) AGHBGHIAB
      JKBAJKLCDEFABGCMZEMZNKZDMZFMZNKZOKJPQUHULNKZUKUINKZOKZUIUHNKZULUKNKZOKUIU
      KNKZULUHNKZOKZUAUHUKUIULRUIULUHUKRUJUQUMUROUHUISUKULSTUPUTUSOKVAUNUTUOUSO
      UHULSUKUISTUTUSUBUCUDABGJUEUFUG $.

    $( Multiplication of signed reals is associative.  (Contributed by NM,
       2-Sep-1995.)  (Revised by Mario Carneiro, 28-Apr-2015.)
       (New usage is discouraged.) $)
    mulasssr $p |- ( ( A .R B ) .R C ) = ( A .R ( B .R C ) ) $=
      ( vx vy vz cnr wcel cmr co cmp cpp cnp mulsrpr mulclpr addclpr syl2an vex
      cv wa vw vv vu vf vg vh w3a wceq cer df-nr an4s mulcompr distrpr mulasspr
      an42s addcompr addasspr caovlem2 ecovass dmmulsr 0nsr ndmovass pm2.61i
      jca ) AGHBGHCGHUGABIJCIJABCIJIJUHDEFUAUBUCABCGIFSZUCSZKJZUASZUBSZKJZLJZUI
      MDSZVEKJZESZVHKJZLJZVLVHKJZVNVEKJZLJZVPVIKJVSVFKJLJVPVFKJVSVIKJLJVLVEVIKJ
      ZVHVFKJZLJZKJVNVKKJLJVLVKKJVNWBKJLJWBUJVLVNVEVHNVEVHVIVFNVPVSVIVFNVLVNWBV
      KNVLMHZVNMHZTVEMHZVHMHZTZTVPMHZVSMHZWCWEWDWFWHWCWETVMMHVOMHWHWDWFTVLVEOVN
      VHOVMVOPQUKWCWFWDWEWIWCWFTVQMHVRMHWIWDWETVLVHOVNVEOVQVRPQUOVDWGVIMHZVFMHZ
      TTWBMHZVKMHZWEWJWFWKWLWEWJTVTMHWAMHWLWFWKTVEVIOVHVFOVTWAPQUKWEWKWFWJWMWEW
      KTVGMHVJMHWMWFWJTVEVFOVHVIOVGVJPQUOVDUDUEUFVLVNVEVHVFLKVIDRZERZFRZUDSZUES
      ZULZWQWRUFSZUMZUARZUBRZWQWRWTUNZUCRZWQWRUPZWQWRWTUQZURUDUEUFVLVNVEVHVILKV
      FWNWOWPWSXAXBXEXDXCXFXGURUSABCGIUTVAVBVC $.

    $( Multiplication of signed reals is distributive.  (Contributed by NM,
       2-Sep-1995.)  (Revised by Mario Carneiro, 28-Apr-2015.)
       (New usage is discouraged.) $)
    distrsr $p |- ( A .R ( B +R C ) ) = ( ( A .R B ) +R ( A .R C ) ) $=
      ( vf vg cnr wcel cplr co cmr cnp cv cpp wa addclpr mulclpr syl2an distrpr
      cmp ovex vx vy vz vw vv vu vh w3a wceq df-nr addsrpr mulsrpr anim12i an4s
      cer an42s jca oveq12i addcompr addasspr caov4 ecovdi dmaddsr 0nsr dmmulsr
      eqtri ndmovdistr pm2.61i ) AFGBFGCFGUHABCHIJIABJIACJIHIUIUAUBUCUDUEUFABCF
      HUOKJUALZUCLZUELZMIZSIZUBLZUDLZUFLZMIZSIZMIZVIVQSIZVNVLSIZMIZVIVJSIZVNVOS
      IZMIZVIVKSIZVNVPSIZMIZMIZVIVOSIZVNVJSIZMIZVIVPSIZVNVKSIZMIZMIZVLVQWEWLWHW
      OUJVJVOVKVPUKVIVNVLVQULVIVNVJVOULVIVNVKVPULWEWLWHWOUKVJKGZVKKGZVOKGZVPKGZ
      VLKGZVQKGZNWQWRNXAWSWTNXBVJVKOVOVPOUMUNVIKGZVNKGZNZWQWSNNWEKGZWLKGZXCWQXD
      WSXFXCWQNWCKGWDKGXFXDWSNVIVJPVNVOPWCWDOQUNXCWSXDWQXGXCWSNWJKGWKKGXGXDWQNV
      IVOPVNVJPWJWKOQUPUQXEWRWTNNWHKGZWOKGZXCWRXDWTXHXCWRNWFKGWGKGXHXDWTNVIVKPV
      NVPPWFWGOQUNXCWTXDWRXIXCWTNWMKGWNKGXIXDWRNVIVPPVNVKPWMWNOQUPUQVSWCWFMIZWD
      WGMIZMIWIVMXJVRXKMVIVJVKRVNVOVPRURDEUGWCWFWDWGMVIVJSTVIVKSTVNVOSTDLZELZUS
      ZXLXMUGLUTZVNVPSTVAVFWBWJWMMIZWKWNMIZMIWPVTXPWAXQMVIVOVPRVNVJVKRURDEUGWJW
      MWKWNMVIVOSTVIVPSTVNVJSTXNXOVNVKSTVAVFVBABCFHJVCVDVEVGVH $.
  $}

  $( Minus one plus one is zero for signed reals.  (Contributed by NM,
     5-May-1996.)  (New usage is discouraged.) $)
  m1p1sr $p |- ( -1R +R 1R ) = 0R $=
    ( cm1r c1r cplr co c1p cpp cop cer cec c0r df-m1r cnp wcel wceq 1pr addclpr
    df-1r mp2an mp4an eqtr4i oveq12i df-0r addsrpr addasspr oveq2i wb enreceq
    mpbir ) ABCDEEEFDZGHIZUIEGHIZCDZJAUJBUKCKQUAJEEGHIZULUBULEUIFDZUIEFDZGHIZUM
    ELMZUILMZURUQULUPNOUQUQUROOEEPRZUSOEUIUIEUCSUMUPNZEUOFDEUNFDNZUOUNEFEEEUDUE
    UQUQUNLMZUOLMZUTVAUFOOUQURVBOUSEUIPRURUQVCUSOUIEPREEUNUOUGSUHTTT $.

  $( Minus one times minus one is plus one for signed reals.  (Contributed by
     NM, 14-May-1996.)  (New usage is discouraged.) $)
  m1m1sr $p |- ( -1R .R -1R ) = 1R $=
    ( cm1r cmr c1p cpp cop cer cec c1r df-m1r oveq12i cmp cnp wcel wceq addclpr
    co 1pr mp2an eqtr4i mulclpr df-1r mulsrpr mp4an addasspr 1idpr ax-mp oveq1i
    distrpr mulcompr oveq2i wb enreceq mpbir ) AABPCCCDPZEFGZUOBPZHAUOAUOBIIJHU
    NCEFGZUPUAUPCCKPZUNUNKPZDPZCUNKPZUNCKPZDPZEFGZUQCLMZUNLMZVEVFUPVDNQVEVEVFQQ
    CCORZQVGCUNCUNUBUCUQVDNZUNVCDPZCUTDPZNZVICCVCDPZDPVJCCVCUDUTVLCDURCUSVCDVEU
    RCNQCUEUFUSVBVBDPVCUNCCUHVAVBVBDCUNUIUGSJUJSVFVEUTLMZVCLMZVHVKUKVGQURLMZUSL
    MZVMVEVEVOQQCCTRVFVFVPVGVGUNUNTRURUSORVALMZVBLMZVNVEVFVQQVGCUNTRVFVEVRVGQUN
    CTRVAVBORUNCUTVCULUCUMSSS $.

  ${
    $d x y z w v u f g h $.
    $( Signed real 'less than' is a strict ordering.  (Contributed by NM,
       19-Feb-1996.)  (New usage is discouraged.) $)
    ltsosr $p |- <R Or R. $=
      ( vf vg vh vx vy vw cltr cv cer wbr wceq wo wb cnp cpp co cltp wcel vex
      wa vz vv vu cnr cop cec wn df-nr breq1 eqeq1 breq2 orbi12d notbid bibi12d
      eqeq2 ltsrpr addclpr wor ltsopr sotric mpan syl2an an42s enreceq addcompr
      breq12i bitri a1i bitr4d syl5bb 2ecoptocl wi anbi1d imbi12d imbi1d anbi2d
      anbi12d ovex ltapr caovord2 addasspr syl6bb bi2anan9r ltrelpr sotri dmplp
      0npr ndmovordi caov12 3imtr4i syl6bi ad2ant2l 3adant2 3ecoptocl isso2i
      syl ) ABCUDGDHZEHZUEIUFZUAHZFHZUEIUFZGJZWSXBKZXBWSGJZLZUGZMAHZXBGJZXHXBKZ
      XBXHGJZLZUGZMXHBHZGJZXHXNKZXNXHGJZLZUGZMDEUAFXHXNNNIUDUHWSXHKZXCXIXGXMWSX
      HXBGUIZXTXFXLXTXDXJXEXKWSXHXBUJWSXHXBGUKULUMUNXBXNKZXIXOXMXSXBXNXHGUKZYBX
      LXRYBXJXPXKXQXBXNXHUOXBXNXHGUIULUMUNXCWQXAOPZWRWTOPZQJZWQNRZWRNRZTZWTNRZX
      ANRZTZTZXGWQWRWTXAUPZYMYFYDYEKZYEYDQJZLZUGZXGYGYKYHYJYFYRMZYGYKTYDNRZYENR
      ZYSYHYJTWQXAUQWRWTUQNQURYTUUATYSUSNYDYEQUTVAVBVCYMXFYQYMXDYOXEYPWQWRWTXAV
      DXEYPMYMXEWTWROPZXAWQOPZQJYPWTXAWQWRUPUUBYEUUCYDQWTWRVEXAWQVEVFVGVHULUMVI
      VJVKXCXBUBHZUCHZUEIUFZGJZTZWSUUFGJZVLZXIUUGTZXHUUFGJZVLXOXNUUFGJZTZUULVLX
      OXNCHZGJZTZXHUUOGJZVLDEUAFUBUCXHXNUUONIUDUHXTUUHUUKUUIUULXTXCXIUUGYAVMWSX
      HUUFGUIVNYBUUKUUNUULYBXIXOUUGUUMYCXBXNUUFGUIVQVOUUFUUOKZUUNUUQUULUURUUSUU
      MUUPXOUUFUUOXNGUKVPUUFUUOXHGUKVNYIUUDNRZUUENRZTUUJYLYHUVAUUJYGUUTYHUVATUU
      HWQXAUUEOPOPZWRWTUUEOPZOPZQJZUVDWRXAUUDOPZOPZQJZTZUUIUVAXCUVEYHUUGUVHXCYF
      UVAUVEYNUVAYFYDUUEOPZYEUUEOPZQJUVEABCYDYEUUEQNOWQXAOVRWRWTOVRXHXNUUOVSUCS
      ZXHXNVEZVTUVJUVBUVKUVDQWQXAUUEWAWRWTUUEWAVFWBVJUUGUVCUVFQJYHUVHWTXAUUDUUE
      UPUVCUVFWRVSVJWCUVIUVBUVGQJZUUIUVBUVDUVGQNUSWDWEXAWQUUEOPZOPZXAWRUUDOPZOP
      ZQJUVOUVQQJUVNUUIUVOUVQXAQNOWFWDWGUVOUVQXAVSWHUVBUVPUVGUVRQABCWQXAUUEODSF
      SZUVLUVMXHXNUUOWAZWIABCWRXAUUDOESUVSUBSUVMUVTWIVFWQWRUUDUUEUPWJWPWKWLWMWN
      WO $.
  $}

  $( 0 is less than 1 for signed reals.  (Contributed by NM, 26-Mar-1996.)
     (New usage is discouraged.) $)
  0lt1sr $p |- 0R <R 1R $=
    ( c1p cop cer cec cpp co c0r c1r cltr wbr cltp cnp wcel 1pr addclpr ltaddpr
    mp2an addcompr breqtrri ltsrpr mpbir df-0r df-1r 3brtr4i ) AABCDZAAEFZABCDZ
    GHIUEUGIJUFAUFEFZKJUFUFAEFZUHKUFLMZALMZUFUIKJUKUKUJNNAAOQNUFAPQAUFRSAAUFATU
    AUBUCUD $.

  $( 1 and 0 are distinct for signed reals.  (Contributed by NM, 26-Mar-1996.)
     (New usage is discouraged.) $)
  1ne0sr $p |- -. 1R = 0R $=
    ( c1r c0r wceq cltr wbr cnr wor wcel wn ltsosr 1sr sonr mp2an 0lt1sr mpbiri
    breq1 mto ) ABCZAADEZFDGAFHSIJKFADLMRSBADENABADPOQ $.

  ${
    $d x y z w v $.  $d x y A $.
    $( The signed real number 0 is an identity element for addition of signed
       reals.  (Contributed by NM, 10-Apr-1996.)
       (New usage is discouraged.) $)
    0idsr $p |- ( A e. R. -> ( A +R 0R ) = A ) $=
      ( vx vy vz vw vv cv cop cer cec c0r cplr co wceq cnp wcel wa c1p cpp 1pr
      df-nr oveq1 id eqeq12d df-0r oveq2i addsrpr mpanr12 addclpr mpan2 anim12i
      cnr vex elexi addcompr addasspr caov12 enreceq mpbiri mpdan eqtr4d syl5eq
      ecoptocl ) BGZCGZHIJZKLMZVFNAKLMZANBCAOOIULUAVFANZVGVHVFAVFAKLUBVIUCUDVDO
      PZVEOPZQZVGVFRRHIJZLMZVFKVMVFLUEUFVLVNVDRSMZVERSMZHIJZVFVLROPZVRVNVQNTTVD
      VERRUGUHVLVOOPZVPOPZQZVFVQNZVJVSVKVTVJVRVSTVDRUIUJVKVRVTTVERUIUJUKVLWAQWB
      VDVPSMVEVOSMNDEFVDVERSBUMCUMROTUNDGZEGZUOWCWDFGUPUQVDVEVOVPURUSUTVAVBVC
      $.
  $}

  ${
    $d x y A $.  $d x y z w v $.
    $( 1 is an identity element for multiplication.  (Contributed by NM,
       2-May-1996.)  (New usage is discouraged.) $)
    1idsr $p |- ( A e. R. -> ( A .R 1R ) = A ) $=
      ( vx vy cop cer cec c1r cmr wceq cnp wcel c1p cpp cmp 1pr addclpr mulclpr
      cv co mpan2 vz vw vv df-nr oveq1 id eqeq12d wa df-1r oveq2i mp2an mulsrpr
      cnr mpanr12 distrpr 1idpr oveq1d syl5req oveqan12d addasspr ovex addcompr
      syl5eq vex caov12 3eqtr3g wb syl2an anim12i syldan anidms mpbird ecoptocl
      enreceq eqtr4d ) BRZCRZDEFZGHSZVRIAGHSZAIBCAJJEUMUDVRAIZVSVTVRAVRAGHUEWAU
      FUGVPJKZVQJKZUHZVSVRLLMSZLDEFZHSZVRGWFVRHUIUJWDWGVPWENSZVQLNSZMSZVPLNSZVQ
      WENSZMSZDEFZVRWDWEJKZLJKZWGWNIWPWPWOOOLLPUKZOVPVQWELULUNWDVRWNIZVPWMMSZVQ
      WJMSZIZWDVPWKMSZWLMSWHVQWIMSZMSWSWTWBWCXBWHWLXCMWBWHWKWKMSXBVPLLUOWBWKVPW
      KMVPUPUQURWCWLWIWIMSXCVQLLUOWCWIVQWIMVQUPUQVCUSVPWKWLUTUAUBUCWHVQWIMVPWEN
      VACVDVQLNVAUARZUBRZVBXDXEUCRUTVEVFWDWRXAVGZWDWDWJJKZWMJKZUHXFWDXGWDXHWBWH
      JKZWIJKZXGWCWBWOXIWQVPWEQTWCWPXJOVQLQTWHWIPVHWBWKJKZWLJKZXHWCWBWPXKOVPLQT
      WCWOXLWQVQWEQTWKWLPVHVIVPVQWJWMVNVJVKVLVOVCVM $.
  $}

  ${
    $d x y A $.
    $( A signed real times 0 is 0.  (Contributed by NM, 10-Apr-1996.)
       (New usage is discouraged.) $)
    00sr $p |- ( A e. R. -> ( A .R 0R ) = 0R ) $=
      ( vx vy cv cop cer cec c0r cmr co wceq cnp wa c1p cmp cpp mpanr12 mulclpr
      wcel 1pr cnr df-nr oveq1 eqeq1d mulsrpr mpan2 addclpr syl2an anim12i eqid
      enreceq mpbiri sylan anidms eqtrd df-0r oveq2i 3eqtr4g ecoptocl ) BDZCDZE
      FGZHIJZHKAHIJZHKBCALLFUAUBVBAKVCVDHVBAHIUCUDUTLSZVALSZMZVBNNEFGZIJZVHVCHV
      GVIUTNOJZVANOJZPJZVLEFGZVHVGNLSZVNVIVMKTTUTVANNUEQVGVMVHKZVGVGMZVNVNVOTTV
      PVLLSZVQMZVNVNMZVOVGVQVGVQVEVJLSZVKLSZVQVFVEVNVTTUTNRUFVFVNWATVANRUFVJVKU
      GUHZWBUIVRVSMVOVLNPJZWCKWCUJVLVLNNUKULUMQUNUOHVHVBIUPUQUPURUS $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u f $.
    $( Ordering property of addition.  (Contributed by NM, 10-May-1996.)
       (New usage is discouraged.) $)
    ltasr $p |- ( C e. R. -> ( A <R B <-> ( C +R A ) <R ( C +R B ) ) ) $=
      ( vx vy cltr cnr cplr wcel wbr co wb cv cop cer cec cnp wceq cpp vex 0nsr
      vz vw vv vu dmaddsr ltrelsr df-nr oveq1 breq12d bibi2d breq1 oveq2 breq1d
      vf bibi12d breq2 breq2d w3a addclpr 3ad2ant1 cltp ltapr addcompr addasspr
      wa ltsrpr caov4 caov42 eqtri breq12i bitri 3bitr4g addsrpr 3adant3 bitr4d
      syl 3adant2 3ecoptocl 3coml ndmovord ) ABCFGHUFUGUACGIAGIBGIABFJZCAHKZCBH
      KZFJZLZDMZEMZNOPZUBMZUCMZNOPZFJZUDMZUEMZNOPZWIHKZWPWLHKZFJZLWMCWIHKZCWLHK
      ZFJZLAWLFJZWCXAFJZLWFUDUEDEUBUCCABQOGUHWPCRZWSXBWMXEWQWTWRXAFWPCWIHUIWPCW
      LHUIUJUKWIARZWMXCXBXDWIAWLFULXFWTWCXAFWIACHUMUNUPWLBRZXCWBXDWEWLBAFUQXGXA
      WDWCFWLBCHUMURUPWNQIWOQIVFZWGQIWHQIVFZWJQIWKQIVFZUSZWMWNWGSKZWOWHSKZNOPZW
      NWJSKZWOWKSKZNOPZFJZWSXKWNWOSKZQIZWMXRLXHXIXTXJWNWOUTVAXTWGWKSKZWHWJSKZVB
      JXSYASKZXSYBSKZVBJZWMXRYAYBXSVCWGWHWJWKVGXRXLXPSKZXMXOSKZVBJYEXLXMXOXPVGY
      FYCYGYDVBEUBUOWNWGWOWKSUDTZDTUETZWHWJVDWHWJUOMZVEUCTVHYGXOXMSKYDXMXOVDDUC
      UOWNWJWOWHSYHUBTYIWGWKVDWGWKYJVEETVIVJVKVLVMVQXKWQXNWRXQFXHXIWQXNRXJWNWOW
      GWHVNVOXHXJWRXQRXIWNWOWJWKVNVRUJVPVSVTWA $.
  $}

  $( A signed real plus its negative is zero.  (Contributed by NM,
     14-May-1996.)  (New usage is discouraged.) $)
  pn0sr $p |- ( A e. R. -> ( A +R ( A .R -1R ) ) = 0R ) $=
    ( cnr wcel c1r cmr co cm1r cplr 1idsr oveq1d distrsr m1p1sr oveq2i addcomsr
    c0r 3eqtr3i 00sr syl5eqr eqtr3d ) ABCZADEFZAGEFZHFZAUBHFOTUAAUBHAIJTUCAOEFZ
    OAGDHFZEFUBUAHFUDUCAGDKUEOAELMUBUANPAQRS $.

  ${
    $d x A $.
    $( Existence of negative signed real.  Part of Proposition 9-4.3 of
       [Gleason] p. 126.  (Contributed by NM, 2-May-1996.)
       (New usage is discouraged.) $)
    negexsr $p |- ( A e. R. -> E. x e. R. ( A +R x ) = 0R ) $=
      ( cnr wcel cm1r cmr co cplr c0r wceq cv wrex m1r mpan2 pn0sr oveq2 eqeq1d
      mulclsr rspcev syl2anc ) BCDZBEFGZCDZBUBHGZIJZBAKZHGZIJZACLUAECDUCMBERNBO
      UHUEAUBCUFUBJUGUDIUFUBBHPQST $.
  $}

  ${
    $d x y z A $.  $d x y z w v u f $.
    $( The reciprocal of a positive signed real exists.  Part of Proposition
       9-4.3 of [Gleason] p. 126.  (Contributed by NM, 15-May-1996.)
       (New usage is discouraged.) $)
    recexsrlem $p |- ( 0R <R A -> E. x e. R. ( A .R x ) = 1R ) $=
      ( vw vv vu cnr wcel c0r cv cmr co c1r wceq cer cnp cpp wa cmp c1p 1pr wbr
      vy vz vf cltr wrex ltrelsr brel simprd cop cec df-nr breq2 eqeq1d rexbidv
      wi oveq1 imbi12d cltp gt0srpr ltexpri sylbi recexpr addclpr mpan2 ecopqsi
      enrex sylancl ad2antlr jctir anim2i adantr mulsrpr syl eqcomd vex distrpr
      mulcompr caovdir oveq2 syl5eq sylan9eqr oveq1d ovex elexi addcompr caov32
      addasspr syl6eq oveq1i eqtri oveq2i caov12 3eqtr4g wb sylan2 syl2an an32s
      mulclpr anassrs jca mp2an pm3.2i enreceq syl5ibr imp eqtrd syl6eqr rspcev
      df-1r syl2anc exp43 rexlimdv syl5 ecoptocl mpcom ) BFGZHBUEUAZBAIZJKZLMZA
      FUFZXRHFGXQHBFFUEUGUHUIHUBIZUCIZUJNUKZUEUAZYEXSJKZLMZAFUFZUPXRYBUPUBUCBOO
      NFULYEBMZYFXRYIYBYEBHUEUMYJYHYAAFYJYGXTLYEBXSJUQUNUOURYFYDCIZPKZYCMZCOUFZ
      YCOGZYDOGZQZYIYFYDYCUSUAYNYCYDUTCYDYCVAVBYQYMYICOYKOGYKDIZRKZSMZDOUFYQYMY
      IUPZDYKVCYQYTUUADOYQYROGZYTYMYIYQUUBQZYTYMQZQZYRSPKZSUJNUKZFGZYEUUGJKZLMZ
      YIUUBUUHYQUUDUUBUUFOGZSOGZUUHUUBUULUUKTYRSVDVEZTOUUFSNFVGULVFVHVIUUEUUISS
      PKZSUJNUKZLUUEUUIYCUUFRKZYDSRKZPKZYCSRKZYDUUFRKZPKZUJNUKZUUOUUEYQUUKUULQZ
      QZUUIUVBMUUCUVDUUDUUBUVCYQUUBUUKUULUUMTVJVKVLYCYDUUFSVMVNUUCUUDUVBUUOMZUU
      DUVEUUCUURSPKZUVAUUNPKZMZUUDYCYRRKZUUSUUQPKZPKZSPKZYDYRRKZUVJPKZUUNPKZUVF
      UVGUUDUVLUVNSPKZSPKUVOUUDUVKUVPSPUUDUVKUVMSPKZUVJPKUVPUUDUVIUVQUVJPYMYTUV
      IYLYRRKZUVQYMUVRUVIYLYCYRRUQVOYTUVRUVMYSPKUVQEUDAYDYKYRPRUCVPCVPDVPEIZUDI
      ZVRUVSUVTXSVQVSYSSUVMPVTWAWBWCEUDAUVMSUVJPYDYRRWDZSOTWEUUSUUQPWDUVSUVTWFZ
      UVSUVTXSWHZWGWIWCUVNSSWHWIUURUVKSPUURUVIUUSPKZUUQPKUVKUUPUWDUUQPYCYRSVQWJ
      UVIUUSUUQWHWKWJUVAUVNUUNPUVAUUSUVMUUQPKZPKUVNUUTUWEUUSPYDYRSVQWLEUDAUUSUV
      MUUQPYCSRWDUWAYDSRWDUWBUWCWMWKWJWNUUCUUROGZUVAOGZQUUNOGZUULQUVEUVHWOUUCUW
      FUWGYOUUBYPUWFYOUUBQUUPOGZUUQOGZUWFYPUUBYOUUKUWIUUMYCUUFWSWPYPUULUWJTYDSW
      SVEUUPUUQVDWQWRYOYPUUBUWGYOUUSOGZUUTOGZUWGYPUUBQYOUULUWKTYCSWSVEUUBYPUUKU
      WLUUMYDUUFWSWPUUSUUTVDWQWTXAUWHUULUULUULUWHTTSSVDXBTXCUURUVAUUNSXDVHXEXFX
      GXJXHYHUUJAUUGFXSUUGMYGUUILXSUUGYEJVTUNXIXKXLXMXNXMXNXOXP $.
  $}

  $( The sum of two positive signed reals is positive.  (Contributed by NM,
     14-May-1996.)  (New usage is discouraged.) $)
  addgt0sr $p |- ( ( 0R <R A /\ 0R <R B ) -> 0R <R ( A +R B ) ) $=
    ( c0r cltr wbr cplr co wcel wb ltrelsr brel simprd ltasr 0idsr breq1d bitrd
    cnr syl biimpa ltsosr sotri syldan ) CADEZCBDEZAABFGZDEZCUEDEUCUDUFUCAQHZUD
    UFIUCCQHUGCAQQDJKLUGUDACFGZUEDEUFCBAMUGUHAUEDANOPRSCAUEDQTJUAUB $.

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w v u f g h $.
    $( The product of two positive signed reals is positive.  (Contributed by
       NM, 13-May-1996.)  (New usage is discouraged.) $)
    mulgt0sr $p |- ( ( 0R <R A /\ 0R <R B ) -> 0R <R ( A .R B ) ) $=
      ( vv vf vg vh cnr wcel wa c0r cltr wbr co cv wi cnp wceq cmp cpp ovex cmr
      vx vy vz vw vu ltrelsr brel simprd anim12i cop cer cec df-nr breq2 anbi1d
      oveq1 breq2d imbi12d anbi2d gt0srpr anbi12i simprr mulclpr addclpr syl2an
      cltp an4s wrex ltexpri oveq12 oveq1d distrpr syl5eqr vex mulcompr caovdir
      oveq12i addcompr addasspr 3eqtr4i caov12 3eqtr4g oveqan12rd eqtr3d eqtr3i
      oveq2 caov4 caov32 oveq2i addcanpr syl5 eqcom ltaddpr2 syl5bi adantl syld
      3eqtr3g sylan a1d exp4a com34 rexlimdv expl com24 rexlimiv syl2im syl2anc
      imp com12 mulsrpr syl6bb sylibrd 2ecoptocl mpcom ) AGHZBGHZIJAKLZJBKLZIZJ
      ABUAMZKLZXRXPXSXQXRJGHZXPJAGGKUGUHUIXSYCXQJBGGKUGUHUIUJJUBNZUCNZUKULUMZKL
      ZJUDNZUENZUKULUMZKLZIZJYFYJUAMZKLZOXRYKIZJAYJUAMZKLZOXTYBOUBUCUDUEABPPULG
      UNYFAQZYLYOYNYQYRYGXRYKYFAJKUOUPYRYMYPJKYFAYJUAUQURUSYJBQZYOXTYQYBYSYKXSX
      RYJBJKUOUTYSYPYAJKYJBAUAWGURUSYLYEYDVGLZYIYHVGLZIZYDPHZYEPHZIZYHPHZYIPHZI
      IZYNYGYTYKUUAYDYEVAYHYIVAVBUUHUUBYDYIRMZYEYHRMZSMZYDYHRMZYEYIRMZSMZVGLZYN
      UUHUUGUUNPHZUUBUUOOUUEUUFUUGVCUUCUUFUUDUUGUUPUUCUUFIUULPHUUMPHUUPUUDUUGIY
      DYHVDYEYIVDUULUUMVEVFVHUUBUUGUUPIZUUOYTUUAUUQUUOOZYTYECNZSMZYDQZCPVIUUAYI
      UFNZSMZYHQZUFPVIZUURCYEYDVJUFYIYHVJUVAUVEUUROCPUUSPHZUUQUVEUVAUUOUVFUUGUU
      PUVEUVAUUOOZOUVFUUGIZUUPIZUVDUVGUFPUVIUVBPHZUVAUVDUUOUVIUVJUVAUVDUUOUVIUV
      AUVDIZUUOOZUVJUVHUUSYIRMZPHZUUPUVLUUSYIVDUVNUUPIZUVKUUNUUKUUSUVBRMZSMZQZU
      UOUVKUVMUUNSMZUVMUVQSMZQUVOUVRUVKUULUUMUVMSMZSMZUVMUUJUVPSMZSMZUUISMZUVSU
      VTUVKUUTUVCRMZUWASMUWBUWEUVKUWFUULUWASUUTYDUVCYHRVKVLUVDUVAUWFUWDUWAUUISU
      VDUUMYEUVBRMZSMZUVMUVPSMZSMZUUJUWISMUWFUWDUVDUWHUUJUWISUVDUWHYEUVCRMUUJYE
      YIUVBVMUVCYHYERWGVNVLUUTYIRMZUUTUVBRMZSMUWAUWGUVPSMZSMUWFUWJUWKUWAUWLUWMS
      DEFYEUUSYISRUCVOZCVOZUEVODNZENZVPZUWPUWQFNZVMZVQZDEFYEUUSUVBSRUWNUWOUFVOU
      WRUWTVQVRUUTYIUVBVMDEFUUMUWGUVMUVPSYEYIRTYEUVBRTUUSYIRTZUWPUWQVSZUWPUWQUW
      SVTZUUSUVBRTZWHWADEFUVMUUJUVPSUXBYEYHRTUXEUXCUXDWBWCUVAUWAUWKUUIUXAUUTYDY
      IRUQVNWDWEUUNUVMSMUWBUVSUULUUMUVMVTUUNUVMVSWFUVMUUISMUWCSMUVMUUIUWCSMZSMU
      WEUVTUVMUUIUWCVTDEFUVMUWCUUISUXBUUJUVPSTYDYIRTUXCUXDWIUVQUXFUVMSUUIUUJUVP
      VTWJWAWRUVMUUNUVQWKWLUUPUVRUUOOUVNUVRUVQUUNQUUPUUOUUNUVQWMUUKUVPUUNWNWOWP
      WQWSWTXAXBXCXDXEXFXGXIXJXHUUHYNJUUNUUKUKULUMZKLUUOUUHYMUXGJKYDYEYHYIXKURU
      UNUUKVAXLXMWOXNXO $.
  $}

  ${
    $d x y A $.
    $( The square of a nonzero signed real is positive.  (Contributed by NM,
       14-May-1996.)  (New usage is discouraged.) $)
    sqgt0sr $p |- ( ( A e. R. /\ A =/= 0R ) -> 0R <R ( A .R A ) ) $=
      ( cnr wcel c0r cmr co cltr wbr wceq wb mpan2 cm1r cplr mulclsr syl syl5eq
      wa anidms c1r mulasssr wne wo wn wor ltsosr sotrieq mpan necon2abid ltasr
      0r m1r addcomsr pn0sr 0idsr breq12d bitrd mulgt0sr syl6bi mulcomsr oveq1i
      3eqtr3i m1m1sr oveq2i eqtri 3eqtr4i breq2d sylibd wi a1i jaod sylbird imp
      1idsr ) ABCZADUAZDAAEFZGHZVNVOADGHZDAGHZUBZVQVNVTADVNDBCZADIVTUCJZUJBGUDV
      NWAQWBUEBADGUFUGKUHVNVRVQVSVNVRDALEFZWCEFZGHZVQVNVRDWCGHZWEVNVRWCAMFZWCDM
      FZGHZWFVNWCBCZVRWIJVNLBCWJUKALNKZADWCUIOVNWGDWHWCGVNWGAWCMFDWCAULAUMPVNWJ
      WHWCIWKWCUNOUOUPWFWEWCWCUQRURVNWDVPDGVNWDVPSEFZVPALWCEFZEFAASEFZEFWDWLWMW
      NAEWMALLEFZEFZWNLAEFZLEFWCLEFWMWPWQWCLELAUSUTLALTALLTVAWOSAEVBVCVDVCALWCT
      AASTVEVNWLVPIZVNVNQVPBCWRAANVPVMORPVFVGVSVQVHVNVSVQAAUQRVIVJVKVL $.

    $( The reciprocal of a nonzero signed real exists.  Part of Proposition
       9-4.3 of [Gleason] p. 126.  (Contributed by NM, 15-May-1996.)
       (New usage is discouraged.) $)
    recexsr $p |- ( ( A e. R. /\ A =/= 0R ) -> E. x e. R. ( A .R x ) = 1R ) $=
      ( vy cnr wcel c0r wne cmr co cltr wbr cv c1r wceq wrex sqgt0sr recexsrlem
      wa mulclsr mulasssr eqeq1i oveq2 eqeq1d sylan2b sylan exp31 rexlimdv syl5
      rspcev imp syldan ) BDEZBFGFBBHIZJKZBALZHIZMNZADOZBPULUNURUNUMCLZHIZMNZCD
      OULURCUMQULVAURCDULUSDEZVAURULVBRBUSHIZDEZVAURBUSSVAVDBVCHIZMNZURUTVEMBBU
      STUAUQVFAVCDUOVCNUPVEMUOVCBHUBUCUIUDUEUFUGUHUJUK $.
  $}

  ${
    mappsrpr.2 $e |- C e. R. $.
    $( Mapping from positive signed reals to positive reals.  (Contributed by
       NM, 17-May-1996.)  (Revised by Mario Carneiro, 15-Jun-2013.)
       (New usage is discouraged.) $)
    mappsrpr $p |- ( ( C +R -1R ) <R ( C +R [ <. A , 1P >. ] ~R ) <->
                     A e. P. ) $=
      ( cm1r c1p cop cer cec cltr wbr cpp co cltp cplr cnp df-m1r breq1i simprd
      wcel 1pr ltsrpr bitri cnr wb ltasr ax-mp ltrelpr brel dmplp 0npr ndmovrcl
      syl addclpr mp2an ltaddpr mpan impbii 3bitr3i ) DAEFGHZIJZEEKLZVAAKLZMJZB
      DNLBUSNLIJZAOSZUTEVAFGHZUSIJVCDVFUSIPQEVAAEUAUBBUCSUTVDUDCDUSBUEUFVCVEVCV
      BOSZVEVCVAOSZVGVAVBOOMUGUHRVGVHVEVAAOKUIUJUKRULVHVEVCEOSZVIVHTTEEUMUNVAAU
      OUPUQUR $.
  $}

  ${
    ltpsrpr.3 $e |- C e. R. $.
    $( Mapping of order from positive signed reals to positive reals.
       (Contributed by NM, 17-May-1996.)  (Revised by Mario Carneiro,
       15-Jun-2013.)  (New usage is discouraged.) $)
    ltpsrpr $p |- ( ( C +R [ <. A , 1P >. ] ~R ) <R
           ( C +R [ <. B , 1P >. ] ~R ) <-> A <P B ) $=
      ( c1p cop cer cec cplr co cltr wbr cltp cnr wcel ltasr ax-mp cpp addcompr
      wb breq1i ltsrpr cnp 1pr ltapr 3bitr4i bitr3i ) CAEFGHZIJCBEFGHZIJKLZUHUI
      KLZABMLZCNOUKUJTDUHUICPQAERJZEBRJZMLEARJZUNMLZUKULUMUOUNMAESUAAEBEUBEUCOU
      LUPTUDABEUEQUFUG $.
  $}

  ${
    $d x y z A $.  $d x y z C $.
    map2psrpr.2 $e |- C e. R. $.
    $( Equivalence for positive signed real.  (Contributed by NM, 17-May-1996.)
       (Revised by Mario Carneiro, 15-Jun-2013.)
       (New usage is discouraged.) $)
    map2psrpr $p |- ( ( C +R -1R ) <R A <->
            E. x e. P. ( C +R [ <. x , 1P >. ] ~R ) = A ) $=
      ( cm1r cplr co cltr wbr c1p cer wceq cnp wrex cnr wcel wb c0r cpp cltp vy
      vz cv cop cec ltrelsr brel simprd cmr ltasr ax-mp pn0sr addasssr addcomsr
      oveq1i 3eqtr3i 0idsr syl5eq breq2d syl5bb m1r mulclsr mp2an addclsr df-nr
      mpan breq2 eqeq2 rexbidv imbi12d df-m1r breq1i addasspr breq2i ltsrpr 1pr
      wi ltapr 3bitr4i bitri ltexpri sylbi enreceq mpanl2 eqeq1i syl6bbr ancoms
      wa addcompr rexbidva syl5ibr ecoptocl syl oveq2 sylan9eqr ex reximdv syld
      sylbird mpcom mappsrpr syl5bbr biimpac rexlimiva impbii ) CEFGZBHIZCAUCZJ
      UDKUEZFGZBLZAMNZBOPZXGXLXGXFOPXMXFBOOHUFUGUHXMXGECEUIGZBFGZHIZXLXPXFCXOFG
      ZHIZXMXGCOPZXPXRQDEXOCUJUKXMXQBXFHXMXQBRFGZBCXNFGZBFGRBFGXQXTYARBFXSYARLD
      CULUKUOCXNBUMRBUNUPBUQURZUSUTXMXPXIXOLZAMNZXLXMXOOPZXPYDVQZXNOPZXMYEXSEOP
      YGDVACEVBVCXNBVDVFEUAUCZUBUCZUDKUEZHIZXIYJLZAMNZVQYFUAUBXOMMKOVEYJXOLZYKX
      PYMYDYJXOEHVGYNYLYCAMYJXOXIVHVIVJYKYMYHMPYIMPWHZYIXHSGZJYHSGZLZAMNZYKYIYQ
      TIZYSYKJJJSGZUDKUEZYJHIZYTEUUBYJHVKVLJYISGZUUAYHSGZTIUUDJYQSGZTIZUUCYTUUE
      UUFUUDTJJYHVMVNJUUAYHYIVOJMPZYTUUGQVPYIYQJVRUKVSVTAYIYQWAWBYOYLYRAMXHMPZY
      OYLYRQUUIYOWHYLXHYISGZYQLZYRUUIUUHYOYLUUKQVPXHJYHYIWCWDYPUUJYQYIXHWIWEWFW
      GWJWKWLWMXMYCXKAMXMYCXKYCXMXJXQBXIXOCFWNYBWOWPWQWRWSWTXKXGAMXKUUIXGUUIXFX
      JHIXKXGXHCDXAXJBXFHVGXBXCXDXE $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    supsrlem.1 $e |- B = { w | ( C +R [ <. w , 1P >. ] ~R ) e. A } $.
    supsrlem.2 $e |- C e. R. $.
    $( Lemma for supremum theorem.  (Contributed by NM, 21-May-1996.)  (Revised
       by Mario Carneiro, 15-Jun-2013.)  (New usage is discouraged.) $)
    supsrlem $p |- ( ( C e. A /\ E. x e. R. A. y e. A y <R x ) ->
       E. x e. R. ( A. y e. A -. x <R y /\
            A. y e. R. ( y <R x -> E. z e. A y <R z ) ) ) $=
      ( wcel cltr wbr wral cnr wrex wa wi cnp c1p cm1r vv vu cv cltp wn wne c0r
      c0 cplr co wceq 0idsr mp1i simpl eqeltrd cop cer elexi opeq1 eceq1d df-0r
      cec 1pr syl6eqr oveq2d eleq1d elab2 sylibr syl breq1 rspccv c1r 0lt1sr wb
      ne0i m1r ltasr ax-mp mpbi m1p1sr 3brtr3i breqtri ltsosr ltrelsr map2psrpr
      sotri mpan sylib syl6 breq2 ralbidv abeq2i ltpsrpr syl6ib syl5bi ralrimiv
      syl6bir com12 reximdv syld rexlimivw impcom supexpr syl2anc mappsrpr brel
      sylbir simprd adantl wex sylanbr rexex df-ral 19.29 syl5bb syl5bbr notbid
      wal imbi12d biimpac exlimiv sylanb expcom 3syl impd impancom pm2.01d expr
      ex r19.29 biimprd vex syl6bb rspcev rexlimiva rexbidv syl5ib imim12d a1dd
      eleq1 sylan2b sotri2 mp3an3 syl5 expcomd ad2antrr pm2.61d adantlr anim12d
      imbi1d anbi12d syl6an rexlimdva mpd ) GEJZBUCZAUCZKLZBEMZANOZPZUAUCZDUCZU
      DLZUEZDFMZUVCUVBUDLZUVCUBUCZUDLZUBFOZQZDRMZPZUAROZUUQUUPKLZUEZBEMZUURUUPC
      UCZKLZCEOZQZBNMZPZANOZUVAFUHUFZUVGDFMZUAROZUVNUVASFJZUWEUVAGUGUIUJZEJZUWH
      UVAUWIGEGNJZUWIGUKZUVAIGULZUMUUOUUTUNUOGUVCSUPZUQVBZUIUJZEJZUWJDSFSRVCURU
      VCSUKZUWPUWIEUWRUWOUGGUIUWRUWOSSUPZUQVBUGUWRUWNUWSUQUVCSSUSUTVAVDVEVFHVGV
      HFSVOVIUUTUUOUWGUUSUUOUWGQANUUSUUOGUVBSUPUQVBUIUJZUUQUKZUAROZUWGUUSUUOGUU
      QKLZUXBUURUXCBGEUUPGUUQKVJVKUXCGTUIUJZUUQKLZUXBUXDGKLZUXCUXEUXDUWIGKTUGKL
      ZUXDUWIKLZTUGUIUJZTVLUIUJZTUGKUGVLKLZUXIUXJKLZVMTNJZUXKUXLVNVPUGVLTVQVRVS
      UXMUXITUKVPTULVRVTWAUWKUXGUXHVNITUGGVQVRVSUWKUWLIUWMVRWBZUXDGUUQKNWCWDWFW
      GUAUUQGIWEWHWIUUSUXAUWFUARUXAUUSUWFUXAUUSUUPUWTKLZBEMZUWFUXAUXOUURBEUWTUU
      QUUPKWJWKUXPUVGDFUVCFJZUWQUXPUVGUWQDFHWLZUXPUWQUWPUWTKLZUVGUXOUXSBUWPEUUP
      UWPUWTKVJVKUVCUVBGIWMZWNWOWPWQWRWSWTXAXBUADUBFXCXDUVAUVMUWDUARUVAUVBRJZPZ
      UWTNJZUVMUWTUUPKLZUEZBEMZUXOUVTQZBNMZPZUWDUYAUYCUVAUYAUXDNJZUYCUYAUXDUWTK
      LZUYJUYCPUVBGIXEZUXDUWTNNKWDXFXGXHXIUYBUVFUYFUVLUYHUYAUVFUYFQUVAUYAUVFUYF
      UYAUVFPUYEBEUYAUVFUUPEJZUYEUYAUVFUYMPZPUYDUYAUYDUYNUYEUYAUYDPZUVFUYMUYEUY
      OUWPUUPUKZDROZUYPDXJZUVFUYMUYEQZQUYOUXDUUPKLZUYQUYAUYKUYDUYTUYLUXDUWTUUPK
      NWCWDWFXKDUUPGIWEZWHUYPDRXLUVFUYRUYSUVFUXQUVEQZDXRZUYRUYSUVEDFXMVUCUYRPVU
      BUYPPZDXJUYSVUBUYPDXNVUDUYSDUYPVUBUYSUYPUXQUYMUVEUYEUXQUWQUYPUYMUXRUWPUUP
      EYTXOUYPUVDUYDUVDUWTUWPKLUYPUYDUVBUVCGIWMUWPUUPUWTKWJXPXQXSXTYAVIYBYCYDYE
      YFYGYHWPYIXIUUOUYAUVLUYHQUUTUUOUYAPZUVLUYHVUEUVLPZUYGBNVUFUYTUUPNJZUYGQZV
      UFUYTUYGVUGUVLUYTUYGQVUEUVLUYTUYGUYTUVLUYQUYGVUAUVLUYQPUVKUYPPZDROUYGUVKU
      YPDRYJVUIUYGDRUYPUVKUYGUYPUXOUVGUVJUVTUYPUVGUXOUVGUXSUYPUXOUXTUWPUUPUWTKV
      JXPYKUVJUWPUVRKLZCEOZUYPUVTUVIVUKUBFUVHFJGUVHSUPZUQVBZUIUJZEJZUVIVUKUWQVU
      ODUVHFUBYLUVCUVHUKZUWPVUNEVUPUWOVUMGUIVUPUWNVULUQUVCUVHSUSUTVEVFHVGVUJUVI
      CVUNEUVRVUNUKVUJUWPVUNKLUVIUVRVUNUWPKWJUVCUVHGIWMYMYNYBYOUYPVUJUVSCEUWPUU
      PUVRKVJYPYQYRXBXAVIUUAYIXIYSUUOUYTUEZVUHQUYAUVLUUOVUGVUQUYGVUGVUQPUUPGKLZ
      UUOUYGVUGVUQUXFVURUXNUUPUXDGKNWCWDUUBUUCUUOVURUVTUXOUUOVURUVTUVSVURCGEUVR
      GUUPKWJYNYIYSUUDUUEUUFUUGWPYIUUHUUIUWCUYIAUWTNUUQUWTUKZUVQUYFUWBUYHVUSUVP
      UYEBEVUSUVOUYDUUQUWTUUPKVJXQWKVUSUWAUYGBNVUSUURUXOUVTUUQUWTUUPKWJUUJWKUUK
      YNUULUUMUUN $.
  $}

  ${
    $d x y z w v u A $.
    $( A nonempty, bounded set of signed reals has a supremum.  (Contributed by
       NM, 21-May-1996.)  (Revised by Mario Carneiro, 15-Jun-2013.)
       (New usage is discouraged.) $)
    supsr $p |- ( ( A =/= (/) /\ E. x e. R. A. y e. A y <R x ) ->
       E. x e. R. ( A. y e. A -. x <R y /\
            A. y e. R. ( y <R x -> E. z e. A y <R z ) ) ) $=
      ( vu vw vv cv cltr wbr wral cnr wrex wi wa wcel c1r c1p cer cplr c0 wn n0
      wne wex wss ltrelsr simpld ralimi dfss3 sylibr sseld rexlimivw impcom cif
      brel eleq1 anbi1d imbi1d cop cec co cab opeq1 eceq1d oveq2d eleq1d cbvabv
      wceq 1sr elimel supsrlem dedth mpcom ex exlimiv sylbi imp ) DUAUDZBHZAHZI
      JZBDKZALMZWAVTIJUBBDKWBVTCHIJCDMNBLKOALMZVSEHZDPZEUEWDWENZEDUCWGWHEWGWDWE
      WFLPZWGWDOZWEWDWGWIWCWGWINALWCDLWFWCVTLPZBDKDLUFWBWKBDWBWKWALPVTWALLIUGUP
      UHUIBDLUJUKULUMUNWIWJWENWIWFQUOZDPZWDOZWENWFQWFWLVIZWJWNWEWOWGWMWDWFWLDUQ
      URUSABCFDWLGHZRUTZSVAZTVBZDPZGVCWLWTWLFHZRUTZSVAZTVBZDPGFWPXAVIZWSXDDXEWR
      XCWLTXEWQXBSWPXARVDVEVFVGVHWFQLVJVKVLVMVNVOVPVQVR $.
  $}

  $( Class of complex numbers. $)
  cc $a class CC $.
  $( Class of real numbers. $)
  cr $a class RR $.
  $( Extend class notation to include the complex number 0. $)
  cc0 $a class 0 $.
  $( Extend class notation to include the complex number 1. $)
  c1 $a class 1 $.
  $( Extend class notation to include the complex number i. $)
  ci $a class _i $.
  $( Addition on complex numbers. $)
  caddc $a class + $.
  $( 'Less than' predicate (defined over real subset of complex numbers). $)
  cltrr $a class <RR $.
  $( Multiplication on complex numbers.  The token ` x. ` is a center dot. $)
  cmul $a class x. $.

  $( Define the set of complex numbers.  The 23 axioms for complex numbers
     start at ~ axresscn .  (Contributed by NM, 22-Feb-1996.)
     (New usage is discouraged.) $)
  df-c $a |- CC = ( R. X. R. ) $.

  $( Define the complex number 0.  (Contributed by NM, 22-Feb-1996.)
     (New usage is discouraged.) $)
  df-0 $a |- 0 = <. 0R , 0R >. $.

  $( Define the complex number 1.  (Contributed by NM, 22-Feb-1996.)
     (New usage is discouraged.) $)
  df-1 $a |- 1 = <. 1R , 0R >. $.

  $( Define the complex number ` _i ` (the imaginary unit).  (Contributed by
     NM, 22-Feb-1996.)  (New usage is discouraged.) $)
  df-i $a |- _i = <. 0R , 1R >. $.

  $( Define the set of real numbers.  (Contributed by NM, 22-Feb-1996.)
     (New usage is discouraged.) $)
  df-r $a |- RR = ( R. X. { 0R } ) $.

  ${
    $d x y z w v u f $.
    $( Define addition over complex numbers.  (Contributed by NM, 28-May-1995.)
       (New usage is discouraged.) $)
    df-add $a |- + = { <. <. x , y >. , z >. | ( ( x e. CC /\ y e. CC ) /\
                  E. w E. v E. u E. f ( ( x = <. w , v >. /\ y = <. u , f >. )
                  /\ z = <. ( w +R u ) , ( v +R f ) >. ) ) } $.

    $( Define multiplication over complex numbers.  (Contributed by NM,
       9-Aug-1995.)  (New usage is discouraged.) $)
    df-mul $a |- x. = { <. <. x , y >. , z >. | ( ( x e. CC /\ y e. CC ) /\
               E. w E. v E. u E. f ( ( x = <. w , v >. /\ y = <. u , f >. )
                  /\ z = <. ( ( w .R u ) +R ( -1R .R ( v .R f ) ) ) ,
                  ( ( v .R u ) +R ( w .R f ) ) >. ) ) } $.

    $( Define 'less than' on the real subset of complex numbers.  Proofs should
       typically use ` < ` instead; see ~ df-ltxr .  (Contributed by NM,
       22-Feb-1996.)  (New usage is discouraged.) $)
    df-lt $a |- <RR = { <. x , y >. | ( ( x e. RR /\ y e. RR ) /\
     E. z E. w ( ( x = <. z , 0R >. /\ y = <. w , 0R >. ) /\ z <R w ) ) } $.
  $}

  $( Ordered pair membership in the class of complex numbers.  (Contributed by
     NM, 14-May-1996.)  (New usage is discouraged.) $)
  opelcn $p |- ( <. A , B >. e. CC <-> ( A e. R. /\ B e. R. ) ) $=
    ( cop cc wcel cnr cxp wa df-c eleq2i opelxp bitri ) ABCZDEMFFGZEAFEBFEHDNMI
    JABFFKL $.

  $( Ordered pair membership in class of real subset of complex numbers.
     (Contributed by NM, 22-Feb-1996.)  (New usage is discouraged.) $)
  opelreal $p |- ( <. A , 0R >. e. RR <-> A e. R. ) $=
    ( c0r cop cr wcel cnr wceq eqid csn cxp wa df-r eleq2i opelxp 0r elexi elsn
    anbi2i 3bitri mpbiran2 ) ABCZDEZAFEZBBGZBHUBUAFBIZJZEUCBUEEZKUCUDKDUFUALMAB
    FUENUGUDUCBBBFOPQRST $.

  ${
    $d x y A $.
    $( Membership in class of real numbers.  (Contributed by NM, 31-Mar-1996.)
       (New usage is discouraged.) $)
    elreal $p |- ( A e. RR <-> E. x e. R. <. x , 0R >. = A ) $=
      ( vy cr wcel cnr c0r csn cxp cv cop wceq wrex eleq2i elxp2 0r elexi opeq2
      df-r bitri eqeq2d rexsn eqcom rexbii ) BDEBFGHZIZEZAJZGKZBLZAFMZDUFBSNUGB
      UHCJZKZLZCUEMZAFMUKACBFUEOUOUJAFUOBUILZUJUNUPCGGFPQULGLUMUIBULGUHRUAUBBUI
      UCTUDTT $.
  $}

  $( Ordered pair membership in the class of complex numbers.  (Contributed by
     Mario Carneiro, 15-Jun-2013.)  (New usage is discouraged.) $)
  elreal2 $p |- ( A e. RR <->
      ( ( 1st ` A ) e. R. /\ A = <. ( 1st ` A ) , 0R >. ) ) $=
    ( cr wcel cnr c0r csn cxp c1st cfv cop wceq wa df-r eleq2i xp1st c2nd xp2nd
    1st2nd2 elsni syl opeq2d eqtrd eleq1 0r elexi snid opelxp mpbiran2 biimparc
    jca syl6bb impbii bitri ) ABCADEFZGZCZAHIZDCZAUQEJZKZLZBUOAMNUPVAUPURUTADUN
    OUPAUQAPIZJUSADUNRUPVBEUQUPVBUNCVBEKADUNQVBESTUAUBUJUTUPURUTUPUSUOCZURAUSUO
    UCVCUREUNCEEDUDUEUFUQEDUNUGUHUKUIULUM $.

  $( The empty set is not a complex number.  Note: do not use this after the
     real number axioms are developed, since it is a construction-dependent
     property.  (Contributed by NM, 2-May-1996.)
     (New usage is discouraged.) $)
  0ncn $p |- -. (/) e. CC $=
    ( c0 cc wcel cnr cxp 0nelxp df-c eleq2i mtbir ) ABCADDEZCDDFBJAGHI $.

  ${
    $d x y z w $.
    $( 'Less than' is a relation on real numbers.  (Contributed by NM,
       22-Feb-1996.)  (New usage is discouraged.) $)
    ltrelre $p |- <RR C_ ( RR X. RR ) $=
      ( vx vy vz vw cltrr cv cr wcel wa c0r cop wceq wbr wex copab cxp opabssxp
      cltr df-lt eqsstri ) EAFZGHBFZGHIUACFZJKLUBDFZJKLIUCUDRMIDNCNZIABOGGPABCD
      SUEABGGQT $.
  $}

  ${
    $d x y z w v u f A $.  $d x y z w v u f B $.  $d x y z w v u f C $.
    $d x y z w v u f D $.
    $( Addition of complex numbers in terms of signed reals.  (Contributed by
       NM, 28-May-1995.)  (New usage is discouraged.) $)
    addcnsr $p |- ( ( ( A e. R. /\ B e. R. ) /\ ( C e. R. /\ D e. R. ) ) ->
           ( <. A , B >. + <. C , D >. ) = <. ( A +R C ) , ( B +R D ) >. ) $=
      ( vx vy vz vw vv vu vf cv cplr co cop wceq wa cc wcel wex caddc cnr oveq1
      opex opeq12 syl2an oveq2 sylan9eq coprab cxp df-add eleq2i anbi12i anbi1i
      df-c oprabbii eqtri ov3 ) EFGHIJABCDHLZJLZMNZILZKLZMNZOZACMNZBDMNZOZKUAUB
      VFVGUDUSAPZVBBPZQUTCPZVCDPZQVEAUTMNZBVCMNZOZVHVIVAVMPVDVNPVEVOPVJUSAUTMUC
      VBBVCMUCVAVDVMVNUEUFVKVMVFPVNVGPVOVHPVLUTCAMUGVCDBMUGVMVNVFVGUEUFUHUAELZR
      SZFLZRSZQZVPUSVBOPVRUTVCOPQGLVEPQKTJTITHTZQZEFGUIVPUBUBUJZSZVRWCSZQZWAQZE
      FGUIEFGHIJKUKWBWGEFGVTWFWAVQWDVSWERWCVPUOULRWCVRUOULUMUNUPUQUR $.

    $( Multiplication of complex numbers in terms of signed reals.
       (Contributed by NM, 9-Aug-1995.)  (New usage is discouraged.) $)
    mulcnsr $p |- ( ( ( A e. R. /\ B e. R. ) /\ ( C e. R. /\ D e. R. ) ) ->
               ( <. A , B >. x. <. C , D >. ) =
                   <. ( ( A .R C ) +R ( -1R .R ( B .R D ) ) ) ,
                          ( ( B .R C ) +R ( A .R D ) ) >. ) $=
      ( vx vy vz vw vv vu vf cv cmr co cm1r cplr cop wceq wa oveq1 cmul opeq12d
      cnr opex oveq2d oveqan12d oveqan12rd oveq2 sylan9eq cc wcel coprab df-mul
      wex cxp df-c eleq2i anbi12i anbi1i oprabbii eqtri ov3 ) EFGHIJABCDHLZJLZM
      NZOILZKLZMNZMNZPNZVFVDMNZVCVGMNZPNZQZACMNZOBDMNZMNZPNZBCMNZADMNZPNZQZKUAU
      CVRWAUDVCARZVFBRZSZVDCRZVGDRZSZVNAVDMNZOBVGMNZMNZPNZBVDMNZAVGMNZPNZQWBWEV
      JWLVMWOWCWDVEWIVIWKPVCAVDMTWDVHWJOMVFBVGMTUEUFWDWCVKWMVLWNPVFBVDMTVCAVGMT
      UGUBWHWLVRWOWAWFWGWIVOWKVQPVDCAMUHWGWJVPOMVGDBMUHUEUFWFWGWMVSWNVTPVDCBMUH
      VGDAMUHUFUBUIUAELZUJUKZFLZUJUKZSZWPVCVFQRWRVDVGQRSGLVNRSKUNJUNIUNHUNZSZEF
      GULWPUCUCUOZUKZWRXCUKZSZXASZEFGULEFGHIJKUMXBXGEFGWTXFXAWQXDWSXEUJXCWPUPUQ
      UJXCWRUPUQURUSUTVAVB $.
  $}

  ${
    eqresr.1 $e |- A e. _V $.
    $( Equality of real numbers in terms of intermediate signed reals.
       (Contributed by NM, 10-May-1996.)  (New usage is discouraged.) $)
    eqresr $p |- ( <. A , 0R >. = <. B , 0R >. <-> A = B ) $=
      ( c0r cop wceq eqid cnr 0r elexi opth mpbiran2 ) ADEBDEFABFDDFDGADBDCDHIJ
      KL $.
  $}

  $( Addition of real numbers in terms of intermediate signed reals.
     (Contributed by NM, 10-May-1996.)  (New usage is discouraged.) $)
  addresr $p |- ( ( A e. R. /\ B e. R. ) ->
           ( <. A , 0R >. + <. B , 0R >. ) = <. ( A +R B ) , 0R >. ) $=
    ( cnr wcel wa c0r cop caddc co cplr wceq 0r addcnsr an4s 0idsr ax-mp opeq2i
    mpanr12 syl6eq ) ACDZBCDZEZAFGBFGHIZABJIZFFJIZGZUDFGUBFCDZUGUCUFKZLLTUGUAUG
    UHAFBFMNRUEFUDUGUEFKLFOPQS $.

  $( Multiplication of real numbers in terms of intermediate signed reals.
     (Contributed by NM, 10-May-1996.)  (New usage is discouraged.) $)
  mulresr $p |- ( ( A e. R. /\ B e. R. ) ->
         ( <. A , 0R >. x. <. B , 0R >. ) = <. ( A .R B ) , 0R >. ) $=
    ( cnr wcel wa c0r cop cmul co cmr cm1r cplr wceq mulcnsr ax-mp oveq2i 0idsr
    0r 00sr syl5eq an4s mpanr12 m1r eqtri mulclsr syl oveqan12rd syl6eq opeq12d
    mulcomsr eqtrd ) ACDZBCDZEZAFGBFGHIZABJIZKFFJIZJIZLIZFBJIZAFJIZLIZGZUPFGUNF
    CDZVDUOVCMZRRULVDUMVDVEAFBFNUAUBUNUSUPVBFUNUSUPFLIZUPURFUPLURKFJIZFUQFKJVDU
    QFMRFSOPKCDVGFMUCKSOUDPUNUPCDVFUPMABUEUPQUFTUNVBFFLIZFUMULUTFVAFLUMUTBFJIFF
    BUJBSTASUGVDVHFMRFQOUHUIUK $.

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Ordering of real subset of complex numbers in terms of signed reals.
       (Contributed by NM, 22-Feb-1996.)  (New usage is discouraged.) $)
    ltresr $p |- ( <. A , 0R >. <RR <. B , 0R >. <-> A <R B ) $=
      ( vz vw vx vy c0r cop cltrr wbr cnr wcel wa cltr cr wceq wex anbi1d eqcom
      cv ltrelre brel opelreal anbi12i sylib ltrelsr opex eleq1 2exbidv anbi12d
      wb eqeq1 anbi2d df-lt brab baib eqresr 3bitr4i opth2 bitr4i anbi1i 2exbii
      vex syl6bb syl2anbr breq12 copsex2g bitrd pm5.21nii ) AGHZBGHZIJZAKLZBKLZ
      MZABNJZVLVJOLZVKOLZMZVOVJVKOOIUAUBVQVMVRVNAUCZBUCZUDUEABKKNUFUBVOVLABHCTZ
      DTZHPZWBWCNJZMZDQCQZVPVMVQVRVLWGUKVNVTWAVSVLVJWBGHZPZVKWCGHZPZMZWEMZDQCQZ
      WGVLVSWNETZOLZFTZOLZMZWOWHPZWQWJPZMZWEMZDQCQZMVQWRMZWIXAMZWEMZDQCQZMVSWNM
      EFVJVKIAGUGBGUGWOVJPZWSXEXDXHXIWPVQWRWOVJOUHRXIXCXGCDXIXBXFWEXIWTWIXAWOVJ
      WHULRRUIUJWQVKPZXEVSXHWNXJWRVRVQWQVKOUHUMXJXGWMCDXJXFWLWEXJXAWKWIWQVKWJUL
      UMRUIUJEFCDUNUOUPWMWFCDWLWDWEWLAWBPZBWCPZMWDWIXKWKXLWHVJPWBAPWIXKWBACVCZU
      QVJWHSAWBSURWJVKPWCBPWKXLWCBDVCZUQVKWJSBWCSURUDABWBWCXMXNUSUTVAVBVDVEWEVP
      CDABKKWBAWCBNVFVGVHVI $.
  $}

  $( Ordering of real subset of complex numbers in terms of signed reals.
     (Contributed by NM, 22-Feb-1996.)  (New usage is discouraged.) $)
  ltresr2 $p |- ( ( A e. RR /\ B e. RR ) ->
      ( A <RR B <-> ( 1st ` A ) <R ( 1st ` B ) ) ) $=
    ( cr wcel wa cltrr wbr c1st cfv c0r cop cltr wceq elreal2 simprbi breqan12d
    cnr ltresr syl6bb ) ACDZBCDZEABFGAHIZJKZBHIZJKZFGUBUDLGTUAAUCBUEFTUBQDAUCMA
    NOUAUDQDBUEMBNOPUBUDRS $.

  $( Technical trick to permit reuse of previous lemmas to prove arithmetic
     operation laws in ` CC ` from those in ` R. ` .  The trick involves
     ~ qsid , which shows that the coset of the converse epsilon relation
     (which is not an equivalence relation) acts as an identity divisor for the
     quotient set operation.  This lets us "pretend" that ` CC ` is a quotient
     set, even though it is not (compare ~ df-c ), and allows us to reuse some
     of the equivalence class lemmas we developed for the transition from
     positive reals to signed reals, etc.  (Contributed by NM, 13-Aug-1995.)
     (New usage is discouraged.) $)
  dfcnqs $p |- CC = ( ( R. X. R. ) /. `' _E ) $=
    ( cc cnr cxp cep ccnv cqs df-c qsid eqtr4i ) ABBCZJDEFGJHI $.

  $( Technical trick to permit re-use of some equivalence class lemmas for
     operation laws.  See ~ dfcnqs and ~ mulcnsrec .  (Contributed by NM,
     13-Aug-1995.)  (New usage is discouraged.) $)
  addcnsrec $p |- ( ( ( A e. R. /\ B e. R. ) /\ ( C e. R. /\ D e. R. ) ) ->
                 ( [ <. A , B >. ] `' _E + [ <. C , D >. ] `' _E ) =
                   [ <. ( A +R C ) , ( B +R D ) >. ] `' _E ) $=
    ( cnr wcel wa cop caddc cplr cep ccnv cec addcnsr opex ecid oveq12i 3eqtr4g
    co ) AEFBEFGCEFDEFGGABHZCDHZISACJSZBDJSZHZTKLZMZUAUEMZISUDUEMABCDNUFTUGUAIT
    ABOPUACDOPQUDUBUCOPR $.

  $( Technical trick to permit re-use of some equivalence class lemmas for
     operation laws.  The trick involves ~ ecid , which shows that the coset of
     the converse epsilon relation (which is not an equivalence relation)
     leaves a set unchanged.  See also ~ dfcnqs .

     _Note:  This is the last lemma (from which the axioms will be derived) in_
     _the construction of real and complex numbers.  The construction starts_
     _at_ ~ cnpi .  (Contributed by NM, 13-Aug-1995.)
     (New usage is discouraged.) $)
  mulcnsrec $p |- ( ( ( A e. R. /\ B e. R. ) /\ ( C e. R. /\ D e. R. ) ) ->
               ( [ <. A , B >. ] `' _E x. [ <. C , D >. ] `' _E ) =
                    [ <. ( ( A .R C ) +R ( -1R .R ( B .R D ) ) ) ,
                          ( ( B .R C ) +R ( A .R D ) ) >. ] `' _E ) $=
    ( cnr wcel wa cop cmul cmr cm1r cplr cep ccnv cec mulcnsr opex ecid oveq12i
    co 3eqtr4g ) AEFBEFGCEFDEFGGABHZCDHZITACJTKBDJTJTLTZBCJTADJTLTZHZUBMNZOZUCU
    GOZITUFUGOABCDPUHUBUIUCIUBABQRUCCDQRSUFUDUEQRUA $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Final derivation of real and complex number postulates
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w v u f $.
    $( Addition is an operation on the complex numbers.  This theorem can be
       used as an alternate axiom for complex numbers in place of the less
       specific ~ axaddcl .  This construction-dependent theorem should not be
       referenced directly; instead, use ~ ax-addf .  (Contributed by NM,
       8-Feb-2005.)  (New usage is discouraged.) $)
    axaddf $p |- + : ( CC X. CC ) --> CC $=
      ( vx vy vw vv vu vf vz cc cxp caddc cv co wcel wral wceq cop cplr wex cnr
      wa wf wfn wfun cdm coprab wmo moeq mosubop anass 2exbii bitri mobii mpbir
      19.42vv moani funoprab df-add funeqi dmeqi dmoprabss eqsstri oveq1 eleq1d
      0ncn df-c oveq2 addcnsr addclsr anim12i opelxpi eqeltrd 2optocl syl6eleqr
      an4s syl oprssdm eqssi df-fn mpbir2an rgen2a ffnov ) HHIZHJUAJWBUBZAKZBKZ
      JLZHMZBHNAHNWCJUCZJUDZWBOWHWDHMWEHMTZWDCKZDKZPOZWEEKZFKZPOZTGKZWKWNQLZWLW
      OQLPZOZTZFRERZDRCRZTZABGUEZUCXDABGXCWJGXCGUFWMWPWTTZFRERZTZDRCRZGUFXGGCDW
      DWTGEFWEGWSUGUHUHXCXIGXBXHCDXBWMXFTZFRERXHXAXJEFWMWPWTUIUJWMXFEFUNUKUJULU
      MUOUPJXEABGCDEFUQZURUMWIWBWIXEUDWBJXEXKUSXCABGHHUTVAABHJVDWJWFSSIZHWQWKPZ
      WLWNPZJLZXLMWDXNJLZXLMWFXLMGCDEWDWESSHVEXMWDOXOXPXLXMWDXNJVBVCXNWEOXPWFXL
      XNWEWDJVFVCWQSMZWKSMZTWLSMZWNSMZTTZXOWQWLQLZWRPZXLWQWKWLWNVGYAYBSMZWRSMZT
      ZYCXLMXQXSXRXTYFXQXSTYDXRXTTYEWQWLVHWKWNVHVIVNYBWRSSVJVOVKVLVEVMZVPVQJWBV
      RVSWGABHYGVTABHHHJWAVS $.

    $( Multiplication is an operation on the complex numbers.  This theorem can
       be used as an alternate axiom for complex numbers in place of the less
       specific ~ axmulcl .  This construction-dependent theorem should not be
       referenced directly; instead, use ~ ax-mulf .  (Contributed by NM,
       8-Feb-2005.)  (New usage is discouraged.) $)
    axmulf $p |- x. : ( CC X. CC ) --> CC $=
      ( vx vy vw vv vu vf vz cc cmul cv co wcel wceq wa cop cmr wex cnr mulclsr
      cm1r cxp wf wfn wral wfun cdm cplr coprab wmo moeq mosubop 2exbii 19.42vv
      anass bitri mobii mpbir moani funoprab df-mul funeqi dmeqi dmoprabss 0ncn
      eqsstri df-c oveq1 eleq1d mulcnsr m1r sylancr addclsr syl2an an4s syl2anr
      oveq2 an42s opelxpi syl2anc eqeltrd 2optocl syl6eleqr oprssdm eqssi df-fn
      mpbir2an rgen2a ffnov ) HHUAZHIUBIWIUCZAJZBJZIKZHLZBHUDAHUDWJIUEZIUFZWIMW
      OWKHLWLHLNZWKCJZDJZOMZWLEJZFJZOMZNGJZWRXAPKZTWSXBPKPKUGKWSXAPKWRXBPKUGKOZ
      MZNZFQEQZDQCQZNZABGUHZUEXKABGXJWQGXJGUIWTXCXGNZFQEQZNZDQCQZGUIXNGCDWKXGGE
      FWLGXFUJUKUKXJXPGXIXOCDXIWTXMNZFQEQXOXHXQEFWTXCXGUNULWTXMEFUMUOULUPUQURUS
      IXLABGCDEFUTZVAUQWPWIWPXLUFWIIXLXRVBXJABGHHVCVEABHIVDWQWMRRUAZHXDWROZWSXA
      OZIKZXSLWKYAIKZXSLWMXSLGCDEWKWLRRHVFXTWKMYBYCXSXTWKYAIVGVHYAWLMYCWMXSYAWL
      WKIVPVHXDRLZWRRLZNWSRLZXARLZNNZYBXDWSPKZTXEPKZUGKZWRWSPKZXDXAPKZUGKZOZXSX
      DWRWSXAVIYHYKRLZYNRLZYOXSLYDYFYEYGYPYDYFNYIRLYJRLZYPYEYGNZXDWSSYSTRLXERLY
      RVJWRXASTXESVKYIYJVLVMVNYDYGYEYFYQYEYFNYLRLYMRLYQYDYGNWRWSSXDXASYLYMVLVOV
      QYKYNRRVRVSVTWAVFWBZWCWDIWIWEWFWNABHYTWGABHHHIWHWF $.
  $}

  $( The complex numbers form a set.  This axiom is redundant in the presence
     of the other axioms (see ~ cnexALT ), but the proof requires the axiom of
     replacement, while the derivation from the construction here does not.
     Thus, we can avoid ~ ax-rep in later theorems by invoking the axiom
     ~ ax-cnex instead of ~ cnexALT .  Use ~ cnex instead.  (Contributed by
     Mario Carneiro, 17-Nov-2014.)  (New usage is discouraged.) $)
  axcnex $p |- CC e. _V $=
    ( cc cnr cxp cvv df-c cnp cer cqs df-nr cpw npex xpex pwex wss wtru wer a1i
    enrer qsss eqeltri trud ssexi ) ABBCDEBBBFFCZGHZDIUDUCJZUCFFKKLMUDUENOUCGUC
    GPORQSUAUBTZUFLT $.

  $( The real numbers are a subset of the complex numbers.  Axiom 1 of 22 for
     real and complex numbers, derived from ZF set theory.  This
     construction-dependent theorem should not be referenced directly; instead,
     use ~ ax-resscn .  (Contributed by NM, 1-Mar-1995.)  (Proof shortened by
     Andrew Salmon, 12-Aug-2011.)  (New usage is discouraged.) $)
  axresscn $p |- RR C_ CC $=
    ( cnr c0r csn cxp cr cc wcel wss 0r snssi xpss2 mp2b df-r df-c 3sstr4i ) AB
    CZDZAADZEFBAGPAHQRHIBAJPAAKLMNO $.

  $( 1 is a complex number.  Axiom 2 of 22 for real and complex numbers,
     derived from ZF set theory.  This construction-dependent theorem should
     not be referenced directly; instead, use ~ ax-1cn .  (Contributed by NM,
     12-Apr-2007.)  (New usage is discouraged.) $)
  ax1cn $p |- 1 e. CC $=
    ( cr cc c1 axresscn c1r c0r cop df-1 wcel cnr opelreal mpbir eqeltri sselii
    1sr ) ABCDCEFGZAHPAIEJIOEKLMN $.

  $( ` _i ` is a complex number.  Axiom 3 of 22 for real and complex numbers,
     derived from ZF set theory.  This construction-dependent theorem should
     not be referenced directly; instead, use ~ ax-icn .  (Contributed by NM,
     23-Feb-1996.)  (New usage is discouraged.) $)
  axicn $p |- _i e. CC $=
    ( ci cc wcel c0r cnr c1r 0r 1sr cop wa df-i eleq1i opelcn bitri mpbir2an )
    ABCZDECZFECZGHPDFIZBCQRJASBKLDFMNO $.

  ${
    $d x y A $.  $d x y B $.
    $( Closure law for addition of complex numbers.  Axiom 4 of 22 for real and
       complex numbers, derived from ZF set theory.  This
       construction-dependent theorem should not be referenced directly, nor
       should the proven axiom ~ ax-addcl be used later.  Instead, in most
       cases use ~ addcl .  (Contributed by NM, 14-Jun-1995.)
       (New usage is discouraged.) $)
    axaddcl $p |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) e. CC ) $=
      ( cc caddc axaddf fovcl ) ABCCCDEF $.

    $( Closure law for addition in the real subfield of complex numbers.  Axiom
       5 of 22 for real and complex numbers, derived from ZF set theory.  This
       construction-dependent theorem should not be referenced directly, nor
       should the proven axiom ~ ax-addrcl be used later.  Instead, in most
       cases use ~ readdcl .  (Contributed by NM, 31-Mar-1996.)
       (New usage is discouraged.) $)
    axaddrcl $p |- ( ( A e. RR /\ B e. RR ) -> ( A + B ) e. RR ) $=
      ( vx vy cv c0r cop caddc co cr wcel cnr elreal wceq oveq1 eleq1d oveq2 wa
      cplr addresr addclsr opelreal sylibr eqeltrd 2gencl ) CEZFGZDEZFGZHIZJKAU
      IHIZJKABHIZJKCDUGUIABLJCAMDBMUGANUJUKJUGAUIHOPUIBNUKULJUIBAHQPUFLKUHLKRZU
      JUFUHSIZFGZJUFUHTUMUNLKUOJKUFUHUAUNUBUCUDUE $.

    $( Closure law for multiplication of complex numbers.  Axiom 6 of 22 for
       real and complex numbers, derived from ZF set theory.  This
       construction-dependent theorem should not be referenced directly, nor
       should the proven axiom ~ ax-mulcl be used later.  Instead, in most
       cases use ~ mulcl .  (Contributed by NM, 10-Aug-1995.)
       (New usage is discouraged.) $)
    axmulcl $p |- ( ( A e. CC /\ B e. CC ) -> ( A x. B ) e. CC ) $=
      ( cc cmul axmulf fovcl ) ABCCCDEF $.

    $( Closure law for multiplication in the real subfield of complex numbers.
       Axiom 7 of 22 for real and complex numbers, derived from ZF set theory.
       This construction-dependent theorem should not be referenced directly,
       nor should the proven axiom ~ ax-mulrcl be used later.  Instead, in most
       cases use ~ remulcl .  (New usage is discouraged.)  (Contributed by NM,
       31-Mar-1996.) $)
    axmulrcl $p |- ( ( A e. RR /\ B e. RR ) -> ( A x. B ) e. RR ) $=
      ( vx vy cv c0r cop cmul co cr wcel cnr elreal wceq oveq1 eleq1d oveq2 cmr
      wa mulresr mulclsr opelreal sylibr eqeltrd 2gencl ) CEZFGZDEZFGZHIZJKAUIH
      IZJKABHIZJKCDUGUIABLJCAMDBMUGANUJUKJUGAUIHOPUIBNUKULJUIBAHQPUFLKUHLKSZUJU
      FUHRIZFGZJUFUHTUMUNLKUOJKUFUHUAUNUBUCUDUE $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Multiplication of complex numbers is commutative.  Axiom 8 of 22 for
       real and complex numbers, derived from ZF set theory.  This
       construction-dependent theorem should not be referenced directly, nor
       should the proven axiom ~ ax-mulcom be used later.  Instead, use
       ~ mulcom .  (Contributed by NM, 31-Aug-1995.)
       (New usage is discouraged.) $)
    axmulcom $p |- ( ( A e. CC /\ B e. CC ) -> ( A x. B ) = ( B x. A ) ) $=
      ( vx vy vz vw cc cv cmr co cm1r cplr cmul cep ccnv cnr mulcnsrec mulcomsr
      dfcnqs oveq12i oveq2i addcomsr eqtri ecovcom ) CDEFABGCHZEHZIJZKDHZFHZIJZ
      IJZLJMNOPUHUFIJZUEUIIJZLJZUFUEIJZKUIUHIJZIJZLJUIUEIJZUFUHIJZLJZSUEUHUFUIQ
      UFUIUEUHQUGUOUKUQLUEUFRUJUPKIUHUIRUATUNUSURLJUTULUSUMURLUHUFRUEUIRTUSURUB
      UCUD $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $( Addition of complex numbers is associative.  This theorem transfers the
       associative laws for the real and imaginary signed real components of
       complex number pairs, to complex number addition itself.  Axiom 9 of 22
       for real and complex numbers, derived from ZF set theory.  This
       construction-dependent theorem should not be referenced directly, nor
       should the proven axiom ~ ax-addass be used later.  Instead, use
       ~ addass .  (Contributed by NM, 2-Sep-1995.)
       (New usage is discouraged.) $)
    axaddass $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                 ( ( A + B ) + C ) = ( A + ( B + C ) ) ) $=
      ( vx vy vz vw vv vu cv cplr co cnr addcnsrec wcel wa addclsr anim12i an4s
      addasssr cc caddc cep ccnv dfcnqs ecovass ) DEFGHIABCUAUBGJZIJZKLZUCUDMDJ
      ZFJZKLZEJZUGKLZULHJZKLUNUHKLUJUKUOKLZKLUMUIKLUPUEUJUMUKUGNUKUGUOUHNULUNUO
      UHNUJUMUPUINUJMOZUKMOZUMMOZUGMOZULMOZUNMOZPUQURPVAUSUTPVBUJUKQUMUGQRSURUO
      MOZUTUHMOZUPMOZUIMOZPURVCPVEUTVDPVFUKUOQUGUHQRSUJUKUOTUMUGUHTUF $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u f g h $.
    $( Multiplication of complex numbers is associative.  Axiom 10 of 22 for
       real and complex numbers, derived from ZF set theory.  This
       construction-dependent theorem should not be referenced directly;
       instead, use ~ ax-mulass .  (Contributed by NM, 3-Sep-1995.)
       (New usage is discouraged.) $)
    axmulass $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                 ( ( A x. B ) x. C ) = ( A x. ( B x. C ) ) ) $=
      ( vf vg vh cv cmr co cplr cnr cm1r wcel mulclsr ovex distrsr oveq2i eqtri
      wa vex vx vy vz vw vv vu cc cmul cep dfcnqs mulcnsrec m1r sylancr addclsr
      ccnv syl2an an4s syl2anr an42s jca addcomsr addasssr caov42 oveq12i elexi
      mulcomsr mulasssr caovdilem caov12 3eqtr4ri ecovass ) UAUBUCUDUEUFABCUGUH
      UDGZUEGZHIZUCGZUFGZHIZJIZUIUOKUAGZVOHIZLUBGZVLHIZHIZJIZWAVOHIZVSVLHIZJIZW
      DVMHIZLWGVPHIZHIZJIZWGVMHIZWDVPHIZJIZVSVOVMHIZLVLVPHIZHIZJIZHIZLWAVRHIZHI
      ZJIZWAWRHIZVSVRHIZJIZWRUJVSWAVOVLUKVOVLVMVPUKWDWGVMVPUKVSWAWRVRUKVSKMZWAK
      MZSVOKMZVLKMZSZSWDKMZWGKMZXFXHXGXIXKXFXHSVTKMWCKMZXKXGXISZVSVONXNLKMZWBKM
      XMULWAVLNLWBNUMVTWCUNUPUQXFXIXGXHXLXGXHSWEKMWFKMXLXFXISWAVONVSVLNWEWFUNUR
      USUTXJVMKMZVPKMZSSWRKMZVRKMZXHXPXIXQXRXHXPSWOKMWQKMZXRXIXQSZVOVMNYAXOWPKM
      XTULVLVPNLWPNUMWOWQUNUPUQXHXQXIXPXSXIXPSVNKMVQKMXSXHXQSVLVMNVOVPNVNVQUNUR
      USUTVSWOHIZVSWQHIZJIZLWAVNHIZHIZLWAVQHIZHIZJIZJIYBYFJIZYHYCJIZJIXBWKDEFYB
      YCYFYHJVSWOHOVSWQHOLYEHODGZEGZVAZYLYMFGZVBZLYGHOVCWSYDXAYIJVSWOWQPXALYEYG
      JIZHIYIWTYQLHWAVNVQPQLYEYGPRVDWHYJWJYKJWHYBLWBVMHIZHIZJIYJDEFVSLVOWBJHVMU
      ATZLKULVEZUCTZYLYMVFZYLYMYOPZWAVLHOZUETZYLYMYOVGZVHYSYFYBJYRYELHWAVLVMVGQ
      QRWJLYGVSWPHIZJIZHIZYKWIUUILHDEFWAVSVOVLJHVPUBTZYTUUBUUCUUDUDTZUFTZUUGVHQ
      UUJYHLUUHHIZJIYKLYGUUHPUUNYCYHJDEFLVSWPHUUAYTVLVPHOZUUCUUGVIQRRVDVJWAWOHI
      ZWAWQHIZJIZVSVNHIZVSVQHIZJIZJIUUPUUSJIZUUTUUQJIZJIXEWNDEFUUPUUQUUSUUTJWAW
      OHOWAWQHOVSVNHOYNYPVSVQHOVCXCUURXDUVAJWAWOWQPVSVNVQPVDWLUVBWMUVCJDEFWAVSV
      OVLJHVMUUKYTUUBUUCUUDUULUUFUUGVHWMUUTLWBVPHIZHIZJIUVCDEFVSLVOWBJHVPYTUUAU
      UBUUCUUDUUEUUMUUGVHUVEUUQUUTJUVELWAWPHIZHIUUQUVDUVFLHWAVLVPVGQDEFLWAWPHUU
      AUUKUUOUUCUUGVIRQRVDVJVK $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $d x y z w v u f g h $.
    $( Distributive law for complex numbers (left-distributivity).  Axiom 11 of
       22 for real and complex numbers, derived from ZF set theory.  This
       construction-dependent theorem should not be referenced directly, nor
       should the proven axiom ~ ax-distr be used later.  Instead, use
       ~ adddi .  (Contributed by NM, 2-Sep-1995.)
       (New usage is discouraged.) $)
    axdistr $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( A x. ( B + C ) ) = ( ( A x. B ) + ( A x. C ) ) ) $=
      ( vf vg vh cnr cv cplr co cmr cm1r mulcnsrec wcel wa addclsr an4s mulclsr
      distrsr ovex vx vy vz vw vv vu cc caddc cep ccnv dfcnqs addcnsrec anim12i
      cmul m1r sylancr syl2an syl2anr an42s jca eqtri oveq12i addcomsr addasssr
      oveq2i caov4 ecovdi ) UAUBUCUDUEUFABCUGUHUIUJGUNUAHZUCHZUEHZIJZKJZLUBHZUD
      HZUFHZIJZKJZKJZIJZVMVKKJZVHVPKJZIJZVHVIKJZLVMVNKJZKJZIJZVHVJKJZLVMVOKJZKJ
      ZIJZIJZVMVIKJZVHVNKJZIJZVMVJKJZVHVOKJZIJZIJZVKVPWFWNWJWQUKVIVNVJVOULVHVMV
      KVPMVHVMVIVNMVHVMVJVOMWFWNWJWQULVIGNZVJGNZVNGNZVOGNZVKGNZVPGNZOWSWTOXCXAX
      BOXDVIVJPVNVOPUMQVHGNZVMGNZOZWSXAOOWFGNZWNGNZXEWSXFXAXHXEWSOWCGNWEGNZXHXF
      XAOZVHVIRXKLGNZWDGNXJUOVMVNRLWDRUPWCWEPUQQXEXAXFWSXIXFWSOWLGNWMGNXIXEXAOV
      MVIRVHVNRWLWMPURUSUTXGWTXBOOWJGNZWQGNZXEWTXFXBXMXEWTOWGGNWIGNZXMXFXBOZVHV
      JRXPXLWHGNXOUOVMVORLWHRUPWGWIPUQQXEXBXFWTXNXFWTOWOGNWPGNXNXEXBOVMVJRVHVOR
      WOWPPURUSUTVSWCWGIJZWEWIIJZIJWKVLXQVRXRIVHVIVJSVRLWDWHIJZKJXRVQXSLKVMVNVO
      SVELWDWHSVAVBDEFWCWGWEWIIVHVIKTVHVJKTLWDKTDHZEHZVCZXTYAFHVDZLWHKTVFVAWBWL
      WOIJZWMWPIJZIJWRVTYDWAYEIVMVIVJSVHVNVOSVBDEFWLWOWMWPIVMVIKTVMVJKTVHVNKTYB
      YCVHVOKTVFVAVG $.
  $}

  $( i-squared equals -1 (expressed as i-squared plus 1 is 0).  Axiom 12 of 22
     for real and complex numbers, derived from ZF set theory.  This
     construction-dependent theorem should not be referenced directly; instead,
     use ~ ax-i2m1 .  (Contributed by NM, 5-May-1996.)
     (New usage is discouraged.) $)
  axi2m1 $p |- ( ( _i x. _i ) + 1 ) = 0 $=
    ( c0r c1r cop cmul co caddc ci cm1r cplr cmr cnr wcel wceq 0r 1sr ax-mp m1r
    1idsr eqtri oveq12i c1 cc0 mulcnsr mp4an 00sr oveq2i addcomsr 0idsr opeq12i
    3eqtri oveq1i addresr mp2an m1p1sr opeq1i df-i df-1 df-0 3eqtr4i ) ABCZUTDE
    ZBACZFEZAACZGGDEZUAFEUBVCHACZVBFEZHBIEZACZVDVAVFVBFVAAAJEZHBBJEZJEZIEZBAJEZ
    ABJEZIEZCZVFAKLZBKLZVRVSVAVQMNONOABABUCUDVMHVPAVMAHIEHAIEZHVJAVLHIVRVJAMNAU
    EPVLHBJEZHVKBHJVSVKBMOBRPUFHKLZWAHMQHRPSTAHUGWBVTHMQHUHPUJVPAAIEZAVNAVOAIVS
    VNAMOBUEPVRVOAMNARPTVRWCAMNAUHPSUISUKWBVSVGVIMQOHBULUMVHAAUNUOUJVEVAUAVBFGU
    TGUTDUPUPTUQTURUS $.

  $( 1 and 0 are distinct.  Axiom 13 of 22 for real and complex numbers,
     derived from ZF set theory.  This construction-dependent theorem should
     not be referenced directly; instead, use ~ ax-1ne0 .  (Contributed by NM,
     19-Mar-1996.)  (New usage is discouraged.) $)
  ax1ne0 $p |- 1 =/= 0 $=
    ( c1 cc0 wceq c1r c0r cop 1ne0sr cnr 1sr elexi mtbir df-1 df-0 eqeq12i neir
    eqresr ) ABABCDEFZEEFZCZSDECGDEDHIJPKAQBRLMNKO $.

  ${
    $d A x y $.
    $( ` 1 ` is an identity element for real multiplication.  Axiom 14 of 22
       for real and complex numbers, derived from ZF set theory.  Weakened from
       the original axiom in the form of statement in ~ mulid1 , based on ideas
       by Eric Schmidt.  This construction-dependent theorem should not be
       referenced directly; instead, use ~ ax-1rid .  (Contributed by Scott
       Fenton, 3-Jan-2013.)  (New usage is discouraged.) $)
    ax1rid $p |- ( A e. RR -> ( A x. 1 ) = A ) $=
      ( vx vy cv cop c1 cmul co wceq cnr c0r csn cr df-r oveq1 id eqeq12d elsni
      wcel c1r df-1 oveq2i cmr 1sr mpan2 1idsr opeq1d eqtrd syl5eq opeq2 oveq1d
      mulresr syl5ibr impcom sylan2 optocl ) BDZCDZEZFGHZUSIZAFGHZAIBCAJKLZMNUS
      AIZUTVBUSAUSAFGOVDPQURVCSUQJSZURKIZVAURKRVFVEVAVEVAVFUQKEZFGHZVGIVEVHVGTK
      EZGHZVGFVIVGGUAUBVEVJUQTUCHZKEZVGVETJSVJVLIUDUQTULUEVEVKUQKUQUFUGUHUIVFUT
      VHUSVGVFUSVGFGURKUQUJZUKVMQUMUNUOUP $.
  $}

  ${
    $d x A $.
    $( Existence of negative of real number.  Axiom 15 of 22 for real and
       complex numbers, derived from ZF set theory.  This
       construction-dependent theorem should not be referenced directly;
       instead, use ~ ax-rnegex .  (Contributed by NM, 15-May-1996.)
       (New usage is discouraged.) $)
    axrnegex $p |- ( A e. RR -> E. x e. RR ( A + x ) = 0 ) $=
      ( cr wcel c1st cfv cm1r cmr co c0r cop caddc cc0 wceq cv wrex cnr elreal2
      simplbi syl2anc mulclsr sylancl opelreal sylibr cplr simprbi oveq1d pn0sr
      m1r addresr opeq1d df-0 syl6eqr syl 3eqtrd oveq2 eqeq1d rspcev ) BCDZBEFZ
      GHIZJKZCDZBVBLIZMNZBAOZLIZMNZACPUSVAQDZVCUSUTQDZGQDVIUSVJBUTJKZNZBRZSZUIU
      TGUAUBZVAUCUDUSVDVKVBLIZUTVAUEIZJKZMUSBVKVBLUSVJVLVMUFUGUSVJVIVPVRNVNVOUT
      VAUJTUSVJVRMNVNVJVRJJKMVJVQJJUTUHUKULUMUNUOVHVEAVBCVFVBNVGVDMVFVBBLUPUQUR
      T $.
  $}

  ${
    $d x y A $.  $d x y z $.
    $( Existence of reciprocal of nonzero real number.  Axiom 16 of 22 for real
       and complex numbers, derived from ZF set theory.  This
       construction-dependent theorem should not be referenced directly;
       instead, use ~ ax-rrecex .  (Contributed by NM, 15-May-1996.)
       (New usage is discouraged.) $)
    axrrecex $p |- ( ( A e. RR /\ A =/= 0 ) -> E. x e. RR ( A x. x ) = 1 ) $=
      ( vy vz cr wcel cc0 wne cv cmul co c1 wceq wrex c0r cop cnr bitri eqeq1d
      wa wi wex elreal df-rex neeq1 oveq1 rexbidv imbi12d df-0 eqeq2i necon3bii
      vex eqresr cmr recexsr ex opelreal anbi1i mulresr df-1 ovex syl6bb syl5bb
      c1r pm5.32da oveq2 rspcev syl6bir expd rexlimdv syld syl5bi gencl imp ) B
      EFZBGHZBAIZJKZLMZAENZCIZOPZGHZWBVQJKZLMZAENZUAVPVTUAWAQFZVOCWBBVOWBBMZCQN
      WGWHTCUBCBUCWHCQUDRWHWCVPWFVTWBBGUEWHWEVSAEWHWDVRLWBBVQJUFSUGUHWCWAOHZWGW
      FWBGWAOWBGMWBOOPZMWAOMGWJWBUIUJWAOCULUMRUKWGWIWADIZUNKZVDMZDQNZWFWGWIWNDW
      AUOUPWGWMWFDQWGWKQFZWMWFWGWOWMTZWKOPZEFZWBWQJKZLMZTZWFXAWOWTTWGWPWRWOWTWK
      UQURWGWOWTWMWGWOTZWTWLOPZLMZWMXBWSXCLWAWKUSSXDXCVDOPZMWMLXEXCUTUJWLVDWAWK
      UNVAUMRVBVEVCWEWTAWQEVQWQMWDWSLVQWQWBJVFSVGVHVIVJVKVLVMVN $.
  $}

  ${
    $d x y z w A $.
    $( A complex number can be expressed in terms of two reals.  Definition
       10-1.1(v) of [Gleason] p. 130.  Axiom 17 of 22 for real and complex
       numbers, derived from ZF set theory.  This construction-dependent
       theorem should not be referenced directly; instead, use ~ ax-cnre .
       (Contributed by NM, 13-May-1996.)  (New usage is discouraged.) $)
    axcnre $p |- ( A e. CC ->
                      E. x e. RR E. y e. RR A = ( x + ( _i x. y ) ) ) $=
      ( cv cop cmul co caddc wceq cr cnr wcel wa c0r cplr c1r cmr cm1r syl5eq
      0r vz vw ci wrex cc df-c eqeq1 2rexbidv wex opelreal anbi12i biimpri df-i
      oveq1i 1sr mulcnsr mpanl12 mpan2 mulcomsr oveq1d ax-mp oveq2i eqtri 0idsr
      00sr m1r syl6eq 1idsr eqtrd opeq12d oveq2d adantl addcnsr mpanl2 addcomsr
      mpanr1 opeq12 syl2an 3eqtrrd eleq1 bi2anan9 oveq1 sylan9eq eqeq2d anbi12d
      opex oveq2 spc2ev syl2anc r2ex sylibr optocl ) UADZUBDZEZADZUCBDZFGZHGZIZ
      BJUDAJUDZCWSIZBJUDAJUDUAUBCKKUEUFWOCIWTXBABJJWOCWSUGUHWMKLZWNKLZMZWPJLZWQ
      JLZMZWTMZBUIAUIZXAXEWMNEZJLZWNNEZJLZMZWOXKUCXMFGZHGZIZXJXOXEXLXCXNXDWMUJW
      NUJUKULXEXQXKNWNEZHGZWMNOGZNWNOGZEZWOXDXQXTIXCXDXPXSXKHXDXPNPEZXMFGZXSUCY
      DXMFUMUNXDYENWNQGZRPNQGZQGZOGZPWNQGZNNQGZOGZEZXSXDNKLZYEYMIZTYNPKLZXDYNMY
      OTUONPWNNUPUQURXDYINYLWNXDYINYHOGZNXDYFNYHOXDYFWNNQGNNWNUSWNVESUTYQNNOGZN
      YHNNOYHRNQGZNYGNRQYPYGNIUOPVEVAVBRKLYSNIVFRVEVAVCVBYNYRNITNVDVAVCVGXDYLWN
      YKOGZWNXDYJWNYKOXDYJWNPQGWNPWNUSWNVHSUTXDYTWNNOGZWNYKNWNOYNYKNITNVEVAVBWN
      VDZSVIVJVISVKVLXCYNXDXTYCIZTXCYNYNXDMUUCTWMNNWNVMVNVPXCYAWMIYBWNIYCWOIXDW
      MVDXDYBUUAWNNWNVOUUBSYAYBWMWNVQVRVSXIXOXRMABXKXMWMNWFWNNWFWPXKIZWQXMIZMZX
      HXOWTXRUUDXFXLUUEXGXNWPXKJVTWQXMJVTWAUUFWSXQWOUUDUUEWSXKWRHGXQWPXKWRHWBUU
      EWRXPXKHWQXMUCFWGVKWCWDWEWHWIWTABJJWJWKWL $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( Ordering on reals satisfies strict trichotomy.  Axiom 18 of 22 for real
       and complex numbers, derived from ZF set theory.  Note:  The more
       general version for extended reals is ~ axlttri .  This
       construction-dependent theorem should not be referenced directly;
       instead, use ~ ax-pre-lttri .  (Contributed by NM, 19-May-1996.)
       (Revised by Mario Carneiro, 16-Jun-2013.)
       (New usage is discouraged.) $)
    axpre-lttri $p |- ( ( A e. RR /\ B e. RR ) ->
                  ( A <RR B <-> -. ( A = B \/ B <RR A ) ) ) $=
      ( vx vy cv c0r cop cltrr wbr wceq wo wn wb cnr elreal breq1 breq2 orbi12d
      notbid cltr cr eqeq1 bibi12d eqeq2 wcel wor ltsosr sotric mpan ltresr vex
      wa eqresr orbi12i notbii 3bitr4g 2gencl ) CEZFGZDEZFGZHIZUSVAJZVAUSHIZKZL
      ZMAVAHIZAVAJZVAAHIZKZLZMABHIZABJZBAHIZKZLZMCDUSVAABNUACAODBOUSAJZVBVGVFVK
      USAVAHPVQVEVJVQVCVHVDVIUSAVAUBUSAVAHQRSUCVABJZVGVLVKVPVABAHQVRVJVOVRVHVMV
      IVNVABAUDVABAHPRSUCURNUEUTNUEULZURUTTIZURUTJZUTURTIZKZLZVBVFNTUFVSVTWDMUG
      NURUTTUHUIURUTUJVEWCVCWAVDWBURUTCUKUMUTURUJUNUOUPUQ $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d z C $.
    $( Ordering on reals is transitive.  Axiom 19 of 22 for real and complex
       numbers, derived from ZF set theory.  Note:  The more general version
       for extended reals is ~ axlttrn .  This construction-dependent theorem
       should not be referenced directly; instead, use ~ ax-pre-lttrn .
       (Contributed by NM, 19-May-1996.)  (Revised by Mario Carneiro,
       16-Jun-2013.)  (New usage is discouraged.) $)
    axpre-lttrn $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
               ( ( A <RR B /\ B <RR C ) -> A <RR C ) ) $=
      ( vx vy vz cv c0r cop cltrr wbr wa cnr elreal wceq breq1 breq2 wcel cltr
      wi anbi1d imbi12d anbi12d imbi1d anbi2d w3a ltresr ltsosr ltrelsr syl2anb
      cr sotri sylibr a1i 3gencl ) DGZHIZEGZHIZJKZUSFGZHIZJKZLZUQVBJKZTZAUSJKZV
      CLZAVBJKZTABJKZBVBJKZLZVITVJBCJKZLZACJKZTDEFUQUSVBAMUKBCDANEBNFCNUQAOZVDV
      HVEVIVPUTVGVCUQAUSJPUAUQAVBJPUBUSBOZVHVLVIVQVGVJVCVKUSBAJQUSBVBJPUCUDVBCO
      ZVLVNVIVOVRVKVMVJVBCBJQUEVBCAJQUBVFUPMRURMRVAMRUFVDUPVASKZVEUTUPURSKURVAS
      KVSVCUPURUGURVAUGUPURVASMUHUIULUJUPVAUGUMUNUO $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( Ordering property of addition on reals.  Axiom 20 of 22 for real and
       complex numbers, derived from ZF set theory.  Note:  The more general
       version for extended reals is ~ axltadd .  This construction-dependent
       theorem should not be referenced directly; instead, use ~ ax-pre-ltadd .
       (Contributed by NM, 11-May-1996.)  (New usage is discouraged.) $)
    axpre-ltadd $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                  ( A <RR B -> ( C + A ) <RR ( C + B ) ) ) $=
      ( vx vy vz cr wcel cltrr wbr caddc co cv c0r cop wb cnr elreal wceq wa
      w3a breq1 oveq2 breq1d bibi12d breq2 breq2d oveq1 breq12d cltr cplr ltasr
      bibi2d adantr ltresr addresr breqan12d anandis syl6bb ancoms 3impa 3gencl
      a1i 3bitr4d biimpd ) AGHBGHCGHUAABIJZCAKLZCBKLZIJZDMZNOZEMZNOZIJZFMZNOZVK
      KLZVPVMKLZIJZPZAVMIJZVPAKLZVRIJZPVFWBVPBKLZIJZPVFVIPDEFVKVMVPAQGBCDAREBRF
      CRVKASZVNWAVSWCVKAVMIUBWFVQWBVRIVKAVPKUCUDUEVMBSZWAVFWCWEVMBAIUFWGVRWDWBI
      VMBVPKUCUGUEVPCSZWEVIVFWHWBVGWDVHIVPCAKUHVPCBKUHUIUMVJQHZVLQHZVOQHZVTWKWI
      WJTZVTWKWLTZVJVLUJJZVOVJUKLZVOVLUKLZUJJZVNVSWKWNWQPWLVJVLVOULUNVNWNPWMVJV
      LUOVCWMVSWONOZWPNOZIJZWQWKWIWJVSWTPWKWITWKWJTVQWRVRWSIVOVJUPVOVLUPUQURWOW
      PUOUSVDUTVAVBVE $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The product of two positive reals is positive.  Axiom 21 of 22 for real
       and complex numbers, derived from ZF set theory.  Note:  The more
       general version for extended reals is ~ axmulgt0 .  This
       construction-dependent theorem should not be referenced directly;
       instead, use ~ ax-pre-mulgt0 .  (Contributed by NM, 13-May-1996.)
       (New usage is discouraged.) $)
    axpre-mulgt0 $p |- ( ( A e. RR /\ B e. RR ) ->
                  ( ( 0 <RR A /\ 0 <RR B ) -> 0 <RR ( A x. B ) ) ) $=
      ( vx vy cc0 cv c0r cop cltrr wbr wa cmul cnr elreal wceq cltr df-0 ltresr
      co wi cr breq2 anbi1d oveq1 breq2d imbi12d anbi2d oveq2 wcel breq1i bitri
      cmr mulgt0sr syl2anb a1i mulresr breq12d syl6bb syl5ibr 2gencl ) ECFZGHZI
      JZEDFZGHZIJZKZEVBVELSZIJZTEAIJZVFKZEAVELSZIJZTVJEBIJZKZEABLSZIJZTCDVBVEAB
      MUACANDBNVBAOZVGVKVIVMVRVCVJVFVBAEIUBUCVRVHVLEIVBAVELUDUEUFVEBOZVKVOVMVQV
      SVFVNVJVEBEIUBUGVSVLVPEIVEBALUHUEUFVGVIVAMUIVDMUIKZGVAVDULSZPJZVCGVAPJZGV
      DPJZWBVFVCGGHZVBIJWCEWEVBIQUJGVARUKVFWEVEIJWDEWEVEIQUJGVDRUKVAVDUMUNVTVIW
      EWAGHZIJWBVTEWEVHWFIEWEOVTQUOVAVDUPUQGWARURUSUT $.
  $}

  ${
    $d x y z w v u A $.
    $( A nonempty, bounded-above set of reals has a supremum.  Axiom 22 of 22
       for real and complex numbers, derived from ZF set theory.  Note:  The
       more general version with ordering on extended reals is ~ axsup .  This
       construction-dependent theorem should not be referenced directly;
       instead, use ~ ax-pre-sup .  (Contributed by NM, 19-May-1996.)  (Revised
       by Mario Carneiro, 16-Jun-2013.)  (New usage is discouraged.) $)
    axpre-sup $p |- ( ( A C_ RR /\ A =/= (/) /\ E. x e. RR
                    A. y e. A y <RR x ) -> E. x e. RR ( A. y e. A -. x <RR y /\
                    A. y e. RR ( y <RR x -> E. z e. A y <RR z ) ) ) $=
      ( vw vv vu cr cltrr wbr wral wrex wi wa cltr c1st cnr wcel wceq cvv c0 cv
      wss wne wn cfv c0r cop elreal2 simplbi adantl wfn wb wfo wf fo1st fof ffn
      cima mp2b fvelimab mp2an r19.29 ssel2 ltresr2 breq1 sylan9bb biimpd exp31
      ssv syl imp4b ancomsd an32s rexlimdva syl5 expd syl7bi impr ralrimiv expr
      adantlr breq2 ralbidv rspcev syl6an n0 fnfvima mp3an12 ne0i exlimiv sylbi
      wex supsr ex notbid rspccv syl5com simprbi breq2d ltresr syl6bb ralrimdva
      sylibrd ad2antrr breq1d rexbidv imbi12d com3l sylbid adantr sylan2 exbiri
      com4r imp reximdvai syl5bi com23 rexlimdv syl6d ralrimdv opelreal biimpri
      expcom imbi1d anbi12d syl2and 3syld 3impia ) DHUCZDUAUDZBUBZAUBZIJZBDKZAH
      LZYMYLIJZUEZBDKZYNYLCUBZIJZCDLZMZBHKZNZAHLZYJYKNZYPEUBZFUBZOJZEPDUSZKZFQL
      ZUUIUUHOJZUEZEUUKKZUUJUUHGUBZOJZGUUKLZMZEQKZNZFQLZUUFUUGYOUUMAHUUGYMHRZNY
      MPUFZQRZYOUUHUVEOJZEUUKKZUUMUVDUVFUUGUVDUVFYMUVEUGUHSYMUIUJUKUUGUVDYOUVHU
      UGUVDYONZNUVGEUUKYJUVIUUHUUKRZUVGMZYKYJUVDYOUVKUVJYLPUFZUUHSZBDLZYJUVDNZY
      OUVGPTULZDTUCZUVJUVNUMTTPUNTTPUOUVPUPTTPUQTTPURUTZDVJZBTDUUHPVAVBUVOYOUVN
      UVGYOUVNNYNUVMNZBDLUVOUVGYNUVMBDVCUVOUVTUVGBDYJYLDRZUVDUVTUVGMYJUWANZUVDN
      UVMYNUVGUWBUVDUVMYNUVGUWBYLHRZUVDUVMYNUVGMZMMDHYLVDZUWCUVDUVMUWDUWCUVDNZU
      VMNYNUVGUWFYNUVLUVEOJUVMUVGYLYMVEUVLUUHUVEOVFVGVHVIVKVLVMVNVOVPVQVRVSWBVT
      WAUULUVHFUVEQUUIUVESUUJUVGEUUKUUIUVEUUHOWCWDWEWFVOYKUUMUVCMZYJYKUUKUAUDZU
      WGYKUWABWMUWHBDWGUWAUWHBUWAUVLUUKRZUWHUVPUVQUWAUWIUVRUVSTDPYLWHWIZUUKUVLW
      JVKWKWLUWHUUMUVCFEGUUKWNWOVKUKUUGUVBUUFFQUUGUUIQRZNZUUPUUIUGUHZYLIJZUEZBD
      KZUVAYLUWMIJZUUBMZBHKZUUFYJUUPUWPMYKUWKYJUUPUWOBDUWBUUPUUIUVLOJZUEZUWOUWA
      UUPUXAMYJUWAUWIUUPUXAUWJUUOUXAEUVLUUKUUHUVLSZUUNUWTUUHUVLUUIOWCWPWQWRUKUW
      BUWNUWTUWBUWCUWNUWTUMUWEUWCUWNUWMUVLUGUHZIJUWTUWCYLUXCUWMIUWCUVLQRZYLUXCS
      ZYLUIZWSZWTUUIUVLXAXBVKWPXDXCXEUWLUVAUWRBHYJUVAUWCUWRMMYKUWKUWCYJUVAUWRUW
      CYJUVAUWRMUWCYJNZUWQUVAUUBUXHUWQUVAUVLUUQOJZGUUKLZUUBUWCUWQUVAUXJMZMYJUWC
      UWQUVLUUIOJZUXKUWCUWQUXCUWMIJUXLUWCYLUXCUWMIUXGXFUVLUUIXAXBUVAUWCUXLUXJUW
      CUXDUVAUXLUXJMZUWCUXDUXEUXFUJUUTUXMEUVLQUXBUUJUXLUUSUXJUUHUVLUUIOVFUXBUUR
      UXIGUUKUUHUVLUUQOVFXGXHWQVPXIXJXKUXHUXIUUBGUUKUXHUXIUUQUUKRZUUBUXIUXHUXNU
      UBMUXNYTPUFZUUQSZCDLZUXIUXHNZUUBUVPUVQUXNUXQUMUVRUVSCTDUUQPVAVBUXRUXPUUAC
      DUXIUXHYTDRZUXPUUAMMUXHUXSUXPUXIUUAUWCYJUXSUXPUXIUUAMMUWCYJUXSNZNZUXPUUAU
      XIUYAUUAUVLUXOOJZUXPUXIUXTUWCYTHRUUAUYBUMDHYTVDYLYTVEXLUXOUUQUVLOWCVGXMWA
      XNXOXPXQYDXRXSXTXRWOXIXEYAUWLUWMHRZUWPUWSNZUUFMUWKUYCUUGUYCUWKUUIYBYCUKUY
      CUYDUUFUUEUYDAUWMHYMUWMSZYSUWPUUDUWSUYEYRUWOBDUYEYQUWNYMUWMYLIVFWPWDUYEUU
      CUWRBHUYEYNUWQUUBYMUWMYLIWCYEWDYFWEWOVKYGVOYHYI $.
  $}

  ${
    wuncn.1 $e |- ( ph -> U e. WUni ) $.
    wuncn.2 $e |- ( ph -> _om e. U ) $.
    $( A weak universe containing ` _om ` contains the complex number
       construction.  This theorem is construction-dependent in the literal
       sense, but will also be satisfied by any other reasonable implementation
       of the complex numbers.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    wuncn $p |- ( ph -> CC e. U ) $=
      ( vx cnr cxp cnp cer cpw cnq com syl5eqel wunxp wss ssriv a1i wunss wunpw
      cnpi cc df-c cqs df-nr c0 csn cdif df-ni wundif elpqn wcel prpssnq pssssd
      cv selpw sylibr wer enrer qsss ) AUAFFGBUBAFFBCAFHHGZIUCZBUDAUTJVABCAUTBC
      AHHBCAKJZHBCAKBCATTGZKBCATTBCATLUEUFZUGBUHALVDBCDUIMZVENKVCOAEKVCEUNZUJPQ
      RSHVBOAEHVBVFHUKZVFKOVFVBUKVGVFKVFULUMEKUOUPPQRZVHNSAUTIUTIUQAURQUSRMZVIN
      M $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Real and complex number postulates restated as axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The complex numbers form a set.  This axiom is redundant - see ~ cnexALT -
     but we provide this axiom because the justification theorem ~ axcnex does
     not use ~ ax-rep even though the redundancy proof does.  Proofs should
     normally use ~ cnex instead.  (New usage is discouraged.)  (Contributed by
     NM, 1-Mar-1995.) $)
  ax-cnex $a |- CC e. _V $.
  $( $j restatement 'ax-cnex' of 'axcnex'; $)

  $( The real numbers are a subset of the complex numbers.  Axiom 1 of 22 for
     real and complex numbers, justified by theorem ~ axresscn .  (Contributed
     by NM, 1-Mar-1995.) $)
  ax-resscn $a |- RR C_ CC $.
  $( $j restatement 'ax-resscn' of 'axresscn'; $)

  $( 1 is a complex number.  Axiom 2 of 22 for real and complex numbers,
     justified by theorem ~ ax1cn .  (Contributed by NM, 1-Mar-1995.) $)
  ax-1cn $a |- 1 e. CC $.
  $( $j restatement 'ax-1cn' of 'ax1cn'; $)

  $( ` _i ` is a complex number.  Axiom 3 of 22 for real and complex numbers,
     justified by theorem ~ axicn .  (Contributed by NM, 1-Mar-1995.) $)
  ax-icn $a |- _i e. CC $.
  $( $j restatement 'ax-icn' of 'axicn'; $)

  $( Closure law for addition of complex numbers.  Axiom 4 of 22 for real and
     complex numbers, justified by theorem ~ axaddcl .  Proofs should normally
     use ~ addcl instead, which asserts the same thing but follows our naming
     conventions for closures.  (New usage is discouraged.)  (Contributed by
     NM, 22-Nov-1994.) $)
  ax-addcl $a |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) e. CC ) $.
  $( $j restatement 'ax-addcl' of 'axaddcl'; $)

  $( Closure law for addition in the real subfield of complex numbers.  Axiom 6
     of 23 for real and complex numbers, justified by theorem ~ axaddrcl .
     Proofs should normally use ~ readdcl instead.  (New usage is discouraged.)
     (Contributed by NM, 22-Nov-1994.) $)
  ax-addrcl $a |- ( ( A e. RR /\ B e. RR ) -> ( A + B ) e. RR ) $.
  $( $j restatement 'ax-addrcl' of 'axaddrcl'; $)

  $( Closure law for multiplication of complex numbers.  Axiom 6 of 22 for real
     and complex numbers, justified by theorem ~ axmulcl .  Proofs should
     normally use ~ mulcl instead.  (New usage is discouraged.)  (Contributed
     by NM, 22-Nov-1994.) $)
  ax-mulcl $a |- ( ( A e. CC /\ B e. CC ) -> ( A x. B ) e. CC ) $.
  $( $j restatement 'ax-mulcl' of 'axmulcl'; $)

  $( Closure law for multiplication in the real subfield of complex numbers.
     Axiom 7 of 22 for real and complex numbers, justified by theorem
     ~ axmulrcl .  Proofs should normally use ~ remulcl instead.
     (New usage is discouraged.)  (Contributed by NM, 22-Nov-1994.) $)
  ax-mulrcl $a |- ( ( A e. RR /\ B e. RR ) -> ( A x. B ) e. RR ) $.
  $( $j restatement 'ax-mulrcl' of 'axmulrcl'; $)

  $( Multiplication of complex numbers is commutative.  Axiom 8 of 22 for real
     and complex numbers, justified by theorem ~ axmulcom .  Proofs should
     normally use ~ mulcom instead.  (New usage is discouraged.)  (Contributed
     by NM, 22-Nov-1994.) $)
  ax-mulcom $a |- ( ( A e. CC /\ B e. CC ) -> ( A x. B ) = ( B x. A ) ) $.
  $( $j restatement 'ax-mulcom' of 'axmulcom'; $)

  $( Addition of complex numbers is associative.  Axiom 9 of 22 for real and
     complex numbers, justified by theorem ~ axaddass .  Proofs should normally
     use ~ addass instead.  (New usage is discouraged.)  (Contributed by NM,
     22-Nov-1994.) $)
  ax-addass $a |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A + B ) + C ) = ( A + ( B + C ) ) ) $.
  $( $j restatement 'ax-addass' of 'axaddass'; $)

  $( Multiplication of complex numbers is associative.  Axiom 10 of 22 for real
     and complex numbers, justified by theorem ~ axmulass .  Proofs should
     normally use ~ mulass instead.  (New usage is discouraged.)  (Contributed
     by NM, 22-Nov-1994.) $)
  ax-mulass $a |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A x. B ) x. C ) = ( A x. ( B x. C ) ) ) $.
  $( $j restatement 'ax-mulass' of 'axmulass'; $)

  $( Distributive law for complex numbers (left-distributivity).  Axiom 11 of
     22 for real and complex numbers, justified by theorem ~ axdistr .  Proofs
     should normally use ~ adddi instead.  (New usage is discouraged.)
     (Contributed by NM, 22-Nov-1994.) $)
  ax-distr $a |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
              ( A x. ( B + C ) ) = ( ( A x. B ) + ( A x. C ) ) ) $.
  $( $j restatement 'ax-distr' of 'axdistr'; $)

  $( i-squared equals -1 (expressed as i-squared plus 1 is 0).  Axiom 12 of 22
     for real and complex numbers, justified by theorem ~ axi2m1 .
     (Contributed by NM, 29-Jan-1995.) $)
  ax-i2m1 $a |- ( ( _i x. _i ) + 1 ) = 0 $.
  $( $j restatement 'ax-i2m1' of 'axi2m1'; $)

  $( 1 and 0 are distinct.  Axiom 13 of 22 for real and complex numbers,
     justified by theorem ~ ax1ne0 .  (Contributed by NM, 29-Jan-1995.) $)
  ax-1ne0 $a |- 1 =/= 0 $.
  $( $j restatement 'ax-1ne0' of 'ax1ne0'; $)

  $( ` 1 ` is an identity element for real multiplication.  Axiom 14 of 22 for
     real and complex numbers, justified by theorem ~ ax1rid .  Weakened from
     the original axiom in the form of statement in ~ mulid1 , based on ideas
     by Eric Schmidt.  (Contributed by NM, 29-Jan-1995.) $)
  ax-1rid $a |- ( A e. RR -> ( A x. 1 ) = A ) $.
  $( $j restatement 'ax-1rid' of 'ax1rid'; $)

  ${
    $d x A $.
    $( Existence of negative of real number.  Axiom 15 of 22 for real and
       complex numbers, justified by theorem ~ axrnegex .  (Contributed by Eric
       Schmidt, 21-May-2007.) $)
    ax-rnegex $a |- ( A e. RR -> E. x e. RR ( A + x ) = 0 ) $.
    $( $j restatement 'ax-rnegex' of 'axrnegex'; $)

    $( Existence of reciprocal of nonzero real number.  Axiom 16 of 22 for real
       and complex numbers, justified by theorem ~ axrrecex .  (Contributed by
       Eric Schmidt, 11-Apr-2007.) $)
    ax-rrecex $a |- ( ( A e. RR /\ A =/= 0 ) -> E. x e. RR ( A x. x ) = 1 ) $.
    $( $j restatement 'ax-rrecex' of 'axrrecex'; $)
  $}

  ${
    $d x y A $.
    $( A complex number can be expressed in terms of two reals.  Definition
       10-1.1(v) of [Gleason] p. 130.  Axiom 17 of 22 for real and complex
       numbers, justified by theorem ~ axcnre .  For naming consistency, use
       ~ cnre for new proofs.  (New usage is discouraged.)  (Contributed by NM,
       9-May-1999.) $)
    ax-cnre $a |- ( A e. CC ->
                      E. x e. RR E. y e. RR A = ( x + ( _i x. y ) ) ) $.
    $( $j restatement 'ax-cnre' of 'axcnre'; $)
  $}

  $( Ordering on reals satisfies strict trichotomy.  Axiom 18 of 22 for real
     and complex numbers, justified by theorem ~ axpre-lttri .  Note:  The more
     general version for extended reals is ~ axlttri .  Normally new proofs
     would use ~ xrlttri .  (New usage is discouraged.)  (Contributed by NM,
     13-Oct-2005.) $)
  ax-pre-lttri $a |- ( ( A e. RR /\ B e. RR ) ->
                ( A <RR B <-> -. ( A = B \/ B <RR A ) ) ) $.
  $( $j restatement 'ax-pre-lttri' of 'axpre-lttri'; $)

  $( Ordering on reals is transitive.  Axiom 19 of 22 for real and complex
     numbers, justified by theorem ~ axpre-lttrn .  Note:  The more general
     version for extended reals is ~ axlttrn .  Normally new proofs would use
     ~ lttr .  (New usage is discouraged.)  (Contributed by NM,
     13-Oct-2005.) $)
  ax-pre-lttrn $a |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
             ( ( A <RR B /\ B <RR C ) -> A <RR C ) ) $.
  $( $j restatement 'ax-pre-lttrn' of 'axpre-lttrn'; $)

  $( Ordering property of addition on reals.  Axiom 20 of 22 for real and
     complex numbers, justified by theorem ~ axpre-ltadd .  Normally new proofs
     would use ~ axltadd .  (New usage is discouraged.)  (Contributed by NM,
     13-Oct-2005.) $)
  ax-pre-ltadd $a |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A <RR B -> ( C + A ) <RR ( C + B ) ) ) $.
  $( $j restatement 'ax-pre-ltadd' of 'axpre-ltadd'; $)

  $( The product of two positive reals is positive.  Axiom 21 of 22 for real
     and complex numbers, justified by theorem ~ axpre-mulgt0 .  Normally new
     proofs would use ~ axmulgt0 .  (New usage is discouraged.)  (Contributed
     by NM, 13-Oct-2005.) $)
  ax-pre-mulgt0 $a |- ( ( A e. RR /\ B e. RR ) ->
                ( ( 0 <RR A /\ 0 <RR B ) -> 0 <RR ( A x. B ) ) ) $.
  $( $j restatement 'ax-pre-mulgt0' of 'axpre-mulgt0'; $)

  ${
    $d x y z A $.
    $( A nonempty, bounded-above set of reals has a supremum.  Axiom 22 of 22
       for real and complex numbers, justified by theorem ~ axpre-sup .  Note:
       Normally new proofs would use ~ axsup .  (New usage is discouraged.)
       (Contributed by NM, 13-Oct-2005.) $)
    ax-pre-sup $a |- ( ( A C_ RR /\ A =/= (/) /\ E. x e. RR
                    A. y e. A y <RR x ) -> E. x e. RR ( A. y e. A -. x <RR y /\
                    A. y e. RR ( y <RR x -> E. z e. A y <RR z ) ) ) $.
    $( $j restatement 'ax-pre-sup' of 'axpre-sup'; $)
  $}

  $( Addition is an operation on the complex numbers.  This deprecated axiom is
     provided for historical compatibility but is not a bona fide axiom for
     complex numbers (independent of set theory) since it cannot be interpreted
     as a first- or second-order statement (see
     ~ http://us.metamath.org/downloads/schmidt-cnaxioms.pdf ).  It may be
     deleted in the future and should be avoided for new theorems.  Instead,
     the less specific ~ addcl should be used.  Note that uses of ~ ax-addf can
     be eliminated by using the defined operation
     ` ( x e. CC , y e. CC |-> ( x + y ) ) ` in place of ` + ` , from which
     this axiom (with the defined operation in place of ` + ` ) follows as a
     theorem.

     This axiom is justified by theorem ~ axaddf .  (New usage is discouraged.)
     (Contributed by NM, 19-Oct-2004.) $)
  ax-addf $a |- + : ( CC X. CC ) --> CC $.
  $( $j restatement 'ax-addf' of 'axaddf'; $)

  $( Multiplication is an operation on the complex numbers.  This deprecated
     axiom is provided for historical compatibility but is not a bona fide
     axiom for complex numbers (independent of set theory) since it cannot be
     interpreted as a first- or second-order statement (see
     ~ http://us.metamath.org/downloads/schmidt-cnaxioms.pdf ).  It may be
     deleted in the future and should be avoided for new theorems.  Instead,
     the less specific ~ ax-mulcl should be used.  Note that uses of ~ ax-mulf
     can be eliminated by using the defined operation
     ` ( x e. CC , y e. CC |-> ( x x. y ) ) ` in place of ` x. ` , from which
     this axiom (with the defined operation in place of ` x. ` ) follows as a
     theorem.

     This axiom is justified by theorem ~ axmulf .  (New usage is discouraged.)
     (Contributed by NM, 19-Oct-2004.) $)
  ax-mulf $a |- x. : ( CC X. CC ) --> CC $.
  $( $j restatement 'ax-mulf' of 'axmulf'; $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Derive the basic properties from the field axioms
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Some deductions from the field axioms for complex numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Alias for ~ ax-cnex .  See also ~ cnexALT .  (Contributed by Mario
     Carneiro, 17-Nov-2014.) $)
  cnex $p |- CC e. _V $=
    ( ax-cnex ) A $.

  $( Alias for ~ ax-addcl , for naming consistency with ~ addcli .  Use this
     theorem instead of ~ ax-addcl or ~ axaddcl .  (Contributed by NM,
     10-Mar-2008.) $)
  addcl $p |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) e. CC ) $=
    ( ax-addcl ) ABC $.

  $( Alias for ~ ax-addrcl , for naming consistency with ~ readdcli .
     (Contributed by NM, 10-Mar-2008.) $)
  readdcl $p |- ( ( A e. RR /\ B e. RR ) -> ( A + B ) e. RR ) $=
    ( ax-addrcl ) ABC $.

  $( Alias for ~ ax-mulcl , for naming consistency with ~ mulcli .
     (Contributed by NM, 10-Mar-2008.) $)
  mulcl $p |- ( ( A e. CC /\ B e. CC ) -> ( A x. B ) e. CC ) $=
    ( ax-mulcl ) ABC $.

  $( Alias for ~ ax-mulrcl , for naming consistency with ~ remulcli .
     (Contributed by NM, 10-Mar-2008.) $)
  remulcl $p |- ( ( A e. RR /\ B e. RR ) -> ( A x. B ) e. RR ) $=
    ( ax-mulrcl ) ABC $.

  $( Alias for ~ ax-mulcom , for naming consistency with ~ mulcomi .
     (Contributed by NM, 10-Mar-2008.) $)
  mulcom $p |- ( ( A e. CC /\ B e. CC ) -> ( A x. B ) = ( B x. A ) ) $=
    ( ax-mulcom ) ABC $.

  $( Alias for ~ ax-addass , for naming consistency with ~ addassi .
     (Contributed by NM, 10-Mar-2008.) $)
  addass $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                 ( ( A + B ) + C ) = ( A + ( B + C ) ) ) $=
    ( ax-addass ) ABCD $.

  $( Alias for ~ ax-mulass , for naming consistency with ~ mulassi .
     (Contributed by NM, 10-Mar-2008.) $)
  mulass $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                 ( ( A x. B ) x. C ) = ( A x. ( B x. C ) ) ) $=
    ( ax-mulass ) ABCD $.

  $( Alias for ~ ax-distr , for naming consistency with ~ adddii .
     (Contributed by NM, 10-Mar-2008.) $)
  adddi $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( A x. ( B + C ) ) = ( ( A x. B ) + ( A x. C ) ) ) $=
    ( ax-distr ) ABCD $.

  $( A real number is a complex number.  (Contributed by NM, 10-Aug-1999.) $)
  recn $p |- ( A e. RR -> A e. CC ) $=
    ( cr cc ax-resscn sseli ) BCADE $.

  $( The real numbers form a set.  See also ~ reexALT .  (Contributed by Mario
     Carneiro, 17-Nov-2014.) $)
  reex $p |- RR e. _V $=
    ( cr cc cnex ax-resscn ssexi ) ABCDE $.

  $( Reals are a subset of the pair of real and complex numbers (common case).
     (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  reelprrecn $p |- RR e. { RR , CC } $=
    ( cr cc reex prid1 ) ABCD $.

  $( Complex numbers are a subset of the pair of real and complex numbers
     (common case).  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  cnelprrecn $p |- CC e. { RR , CC } $=
    ( cr cc cnex prid2 ) ABCD $.

  $( Hypothesis for weak deduction theorem to eliminate ` A =/= 0 ` .
     (Contributed by NM, 15-May-1999.) $)
  elimne0 $p |- if ( A =/= 0 , A , 1 ) =/= 0 $=
    ( cc0 wne c1 cif neeq1 ax-1ne0 elimhyp ) ABCZIADEZBCDBCADAJBFDJBFGH $.

  $( Distributive law for complex numbers (right-distributivity).  (Contributed
     by NM, 10-Oct-2004.) $)
  adddir $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
              ( ( A + B ) x. C ) = ( ( A x. C ) + ( B x. C ) ) ) $=
    ( cc wcel w3a caddc co cmul adddi 3coml addcl mulcom stoic3 3adant2 3adant1
    wceq oveq12d 3eqtr4d ) ADEZBDEZCDEZFZCABGHZIHZCAIHZCBIHZGHZUDCIHZACIHZBCIHZ
    GHUBTUAUEUHQCABJKTUAUDDEUBUIUEQABLUDCMNUCUJUFUKUGGTUBUJUFQUAACMOUAUBUKUGQTB
    CMPRS $.

  $( 0 is a complex number.  See also ~ 0cnALT .  (Contributed by NM,
     19-Feb-2005.) $)
  0cn $p |- 0 e. CC $=
    ( ci cmul co c1 caddc cc0 cc ax-i2m1 wcel ax-icn mulcl mp2an addcl eqeltrri
    ax-1cn ) AABCZDECZFGHPGIZDGIQGIAGIZSRJJAAKLOPDMLN $.

  $( 0 is a complex number, deductive form.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  0cnd $p |- ( ph -> 0 e. CC ) $=
    ( cc0 cc wcel 0cn a1i ) BCDAEF $.

  $( 0 is a set (common case).  (Contributed by David A. Wheeler,
     7-Jul-2016.) $)
  c0ex $p |- 0 e. _V $=
    ( cc0 cc 0cn elexi ) ABCD $.

  $( 1 is a set.  Common special case.  (Contributed by David A. Wheeler,
     7-Jul-2016.) $)
  1ex $p |- 1 e. _V $=
    ( c1 cc ax-1cn elexi ) ABCD $.

  ${
    $d A x y $.
    $( Alias for ~ ax-cnre , for naming consistency.  (Contributed by NM,
       3-Jan-2013.) $)
    cnre $p |- ( A e. CC -> E. x e. RR E. y e. RR A = ( x + ( _i x. y ) ) ) $=
      ( ax-cnre ) ABCD $.
  $}

  ${
    $d A x y $.
    $( ` 1 ` is an identity element for multiplication.  Based on ideas by Eric
       Schmidt.  (Contributed by Scott Fenton, 3-Jan-2013.) $)
    mulid1 $p |- ( A e. CC -> ( A x. 1 ) = A ) $=
      ( vx vy cc wcel cv ci cmul co caddc wceq cr wrex c1 ax-icn ax-1cn ax-1rid
      recn syl eqtrd cnre wa sylancr adddir mp3an3 syl2an mulass mp3an13 oveq2d
      mulcl oveqan12d oveq1 id eqeq12d syl5ibrcom rexlimivv ) ADEABFZGCFZHIZJIZ
      KZCLMBLMANHIZAKZBCAUAVAVCBCLLUQLEZURLEZUBZVCVAUTNHIZUTKVFVGUQNHIZUSNHIZJI
      ZUTVDUQDEZUSDEZVGVJKZVEUQRVEGDEZURDEZVLOURRZGURUJUCVKVLNDEZVMPUQUSNUDUEUF
      VDVEVHUQVIUSJUQQVEVIGURNHIZHIZUSVEVOVIVSKZVPVNVOVQVTOPGURNUGUHSVEVRURGHUR
      QUITUKTVAVBVGAUTAUTNHULVAUMUNUOUPS $.
  $}

  $( Identity law for multiplication.  Note: see ~ mulid1 for commuted version.
     (Contributed by NM, 8-Oct-1999.) $)
  mulid2 $p |- ( A e. CC -> ( 1 x. A ) = A ) $=
    ( cc wcel c1 cmul co wceq ax-1cn mulcom mpan mulid1 eqtrd ) ABCZDAEFZADEFZA
    DBCMNOGHDAIJAKL $.

  ${
    $d a b c d x y z $.

    $( ` 1 ` is a real number.  This used to be one of our postulates for
       complex numbers, but Eric Schmidt discovered that it could be derived
       from a weaker postulate, ~ ax-1cn , by exploiting properties of the
       imaginary unit ` _i ` .  (Contributed by Eric Schmidt, 11-Apr-2007.)
       (Revised by Scott Fenton, 3-Jan-2013.) $)
    1re $p |- 1 e. RR $=
      ( vx vy vz va vb vc vd cv wne cr wrex cc0 c1 wcel cmul co wceq neeq1 wa
      wi ci caddc ax-1ne0 cc ax-1cn ax-mp biimpcd 0cn neeq2 reximdv syl6mpi mpi
      cnre wo wn ioran df-ne con2bii anbi12i bitr4i id oveq2 oveqan12d necon1ai
      sylbi rspc2ev ad2ant2r ad2ant2l jaod syl5 rexlimdvva rexlimivv mp2b eqtr3
      3expia ex necon3d rspcev expcom syl6 com23 adantld adantrd a1dd pm2.61ine
      ax-rrecex remulcl adantlr eleq1 syl5ibcom rexlimdva mpd rexlimiva ) AHZBH
      ZIZBJKAJKZCHZLIZCJKZMJNZMLIZDHZUAEHZOPZUBPZFHZUAGHZOPZUBPZIZGJKZFJKZEJKZD
      JKZWQUCXBMXFQZEJKZDJKZXOMUDNXRUEDEMUMUFXBXQXNDJXBXPXMEJXBXPXFLIZLXJQZGJKZ
      FJKZXMXPXBXSMXFLRUGLUDNYBUHFGLUMUFXSYAXLFJXSXTXKGJXTXSXKLXJXFUIUGUJUJUKUJ
      UJULXMWQDEJJXCJNZXDJNZSZXKWQFGJJXKXCXGIZXDXHIZUNZYEXGJNZXHJNZSSZWQYHXFXJY
      HUOZXCXGQZXDXHQZSZXFXJQYLYFUOZYGUOZSYOYFYGUPYMYPYNYQYFYMXCXGUQURYGYNXDXHU
      QURUSUTYMYNXCXGXEXIUBYMVAXDXHUAOVBVCVEVDYKYFWQYGYCYIYFWQTYDYJYCYIYFWQWPYF
      XCWOIABXCXGJJWNXCWORWOXGXCUIVFVOVGYDYJYGWQTYCYIYDYJYGWQWPYGXDWOIABXDXHJJW
      NXDWORWOXHXDUIVFVOVHVIVJVKVLVMWPWTABJJWNJNZWOJNZSZWPWTTZTWNLWNLQZYSUUAYRU
      UBWPYSWTUUBWPWOLIZYSWTTUUBWOLWNWOUUBWOLQWNWOQWNWOLVNVPVQYSUUCWTWSUUCCWOJW
      RWOLRVRVSVTWAWBWNLIZYTWTWPUUDYRWTYSYRUUDWTWSUUDCWNJWRWNLRVRVSWCWDWEVLWSXA
      CJWRJNZWSSZWRWNOPZMQZAJKXAAWRWFUUFUUHXAAJUUFYRSUUGJNZUUHXAUUEYRUUIWSWRWNW
      GWHUUGMJWIWJWKWLWMVM $.
  $}

  $( ` 0 ` is a real number.  See also ~ 0reALT .  (Contributed by Eric
     Schmidt, 21-May-2007.)  (Revised by Scott Fenton, 3-Jan-2013.) $)
  0re $p |- 0 e. RR $=
    ( vx c1 cr wcel cv caddc cc0 wceq wrex 1re ax-rnegex readdcl mpan syl5ibcom
    co eleq1 rexlimiv mp2b ) BCDZBAEZFOZGHZACIGCDZJABKUBUCACTCDZUACDZUBUCSUDUEJ
    BTLMUAGCPNQR $.

  $( ` 0 ` is a real number, deductive form.  (Contributed by David A. Wheeler,
     6-Dec-2018.) $)
  0red $p |- ( ph -> 0 e. RR ) $=
    ( cc0 cr wcel 0re a1i ) BCDAEF $.

  ${
    axi.1 $e |- A e. CC $.
    $( Identity law for multiplication.  (Contributed by NM, 14-Feb-1995.) $)
    mulid1i $p |- ( A x. 1 ) = A $=
      ( cc wcel c1 cmul co wceq mulid1 ax-mp ) ACDAEFGAHBAIJ $.

    $( Identity law for multiplication.  (Contributed by NM, 14-Feb-1995.) $)
    mulid2i $p |- ( 1 x. A ) = A $=
      ( cc wcel c1 cmul co wceq mulid2 ax-mp ) ACDEAFGAHBAIJ $.

    axi.2 $e |- B e. CC $.
    $( Closure law for addition.  (Contributed by NM, 23-Nov-1994.) $)
    addcli $p |- ( A + B ) e. CC $=
      ( cc wcel caddc co addcl mp2an ) AEFBEFABGHEFCDABIJ $.

    $( Closure law for multiplication.  (Contributed by NM, 23-Nov-1994.) $)
    mulcli $p |- ( A x. B ) e. CC $=
      ( cc wcel cmul co mulcl mp2an ) AEFBEFABGHEFCDABIJ $.

    $( Commutative law for multiplication.  (Contributed by NM,
       23-Nov-1994.) $)
    mulcomi $p |- ( A x. B ) = ( B x. A ) $=
      ( cc wcel cmul co wceq mulcom mp2an ) AEFBEFABGHBAGHICDABJK $.

    ${
      mulcomli.3 $e |- ( A x. B ) = C $.
      $( Commutative law for multiplication.  (Contributed by NM,
         23-Nov-1994.) $)
      mulcomli $p |- ( B x. A ) = C $=
        ( cmul co mulcomi eqtri ) BAGHABGHCBAEDIFJ $.
    $}

    axi.3 $e |- C e. CC $.
    $( Associative law for addition.  (Contributed by NM, 23-Nov-1994.) $)
    addassi $p |- ( ( A + B ) + C ) = ( A + ( B + C ) ) $=
      ( cc wcel caddc co wceq addass mp3an ) AGHBGHCGHABIJCIJABCIJIJKDEFABCLM
      $.

    $( Associative law for multiplication.  (Contributed by NM,
       23-Nov-1994.) $)
    mulassi $p |- ( ( A x. B ) x. C ) = ( A x. ( B x. C ) ) $=
      ( cc wcel cmul co wceq mulass mp3an ) AGHBGHCGHABIJCIJABCIJIJKDEFABCLM $.

    $( Distributive law (left-distributivity).  (Contributed by NM,
       23-Nov-1994.) $)
    adddii $p |- ( A x. ( B + C ) ) = ( ( A x. B ) + ( A x. C ) ) $=
      ( cc wcel caddc co cmul wceq adddi mp3an ) AGHBGHCGHABCIJKJABKJACKJIJLDEF
      ABCMN $.

    $( Distributive law (right-distributivity).  (Contributed by NM,
       16-Feb-1995.) $)
    adddiri $p |- ( ( A + B ) x. C ) = ( ( A x. C ) + ( B x. C ) ) $=
      ( cc wcel caddc co cmul wceq adddir mp3an ) AGHBGHCGHABIJCKJACKJBCKJIJLDE
      FABCMN $.
  $}

  ${
    recni.1 $e |- A e. RR $.
    $( A real number is a complex number.  (Contributed by NM, 1-Mar-1995.) $)
    recni $p |- A e. CC $=
      ( cr cc ax-resscn sselii ) CDAEBF $.

    axri.2 $e |- B e. RR $.
    $( Closure law for addition of reals.  (Contributed by NM, 17-Jan-1997.) $)
    readdcli $p |- ( A + B ) e. RR $=
      ( cr wcel caddc co readdcl mp2an ) AEFBEFABGHEFCDABIJ $.

    $( Closure law for multiplication of reals.  (Contributed by NM,
       17-Jan-1997.) $)
    remulcli $p |- ( A x. B ) e. RR $=
      ( cr wcel cmul co remulcl mp2an ) AEFBEFABGHEFCDABIJ $.
  $}

  $( 1 is an real number, deductive form (common case).  (Contributed by David
     A. Wheeler, 6-Dec-2018.) $)
  1red $p |- ( ph -> 1 e. RR ) $=
    ( c1 cr wcel 1re a1i ) BCDAEF $.

  $( 1 is a complex number, deductive form (common case).  (Contributed by
     David A. Wheeler, 6-Dec-2018.) $)
  1cnd $p |- ( ph -> 1 e. CC ) $=
    ( c1 cc wcel ax-1cn a1i ) BCDAEF $.

  ${
    addcld.1 $e |- ( ph -> A e. CC ) $.
    $( Identity law for multiplication.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulid1d $p |- ( ph -> ( A x. 1 ) = A ) $=
      ( cc wcel c1 cmul co wceq mulid1 syl ) ABDEBFGHBICBJK $.

    $( Identity law for multiplication.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulid2d $p |- ( ph -> ( 1 x. A ) = A ) $=
      ( cc wcel c1 cmul co wceq mulid2 syl ) ABDEFBGHBICBJK $.

    addcld.2 $e |- ( ph -> B e. CC ) $.
    $( Closure law for addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    addcld $p |- ( ph -> ( A + B ) e. CC ) $=
      ( cc wcel caddc co addcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure law for multiplication.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulcld $p |- ( ph -> ( A x. B ) e. CC ) $=
      ( cc wcel cmul co mulcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Commutative law for multiplication.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulcomd $p |- ( ph -> ( A x. B ) = ( B x. A ) ) $=
      ( cc wcel cmul co wceq mulcom syl2anc ) ABFGCFGBCHICBHIJDEBCKL $.

    addassd.3 $e |- ( ph -> C e. CC ) $.
    $( Associative law for addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    addassd $p |- ( ph -> ( ( A + B ) + C ) = ( A + ( B + C ) ) ) $=
      ( cc wcel caddc co wceq addass syl3anc ) ABHICHIDHIBCJKDJKBCDJKJKLEFGBCDM
      N $.

    $( Associative law for multiplication.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulassd $p |- ( ph -> ( ( A x. B ) x. C ) = ( A x. ( B x. C ) ) ) $=
      ( cc wcel cmul co wceq mulass syl3anc ) ABHICHIDHIBCJKDJKBCDJKJKLEFGBCDMN
      $.

    $( Distributive law (left-distributivity).  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    adddid $p |- ( ph -> ( A x. ( B + C ) ) = ( ( A x. B ) + ( A x. C ) ) ) $=
      ( cc wcel caddc co cmul wceq adddi syl3anc ) ABHICHIDHIBCDJKLKBCLKBDLKJKM
      EFGBCDNO $.

    $( Distributive law (right-distributivity).  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    adddird $p |- ( ph -> ( ( A + B ) x. C ) = ( ( A x. C ) + ( B x. C ) ) ) $=
      ( cc wcel caddc co cmul wceq adddir syl3anc ) ABHICHIDHIBCJKDLKBDLKCDLKJK
      MEFGBCDNO $.
  $}

  ${
    adddirp1d.a $e |- ( ph -> A e. CC ) $.
    adddirp1d.b $e |- ( ph -> B e. CC ) $.
    $( Distributive law, plus 1 version.  (Contributed by Glauco Siliprandi,
       11-Dec-2019.) $)
    adddirp1d $p |- ( ph -> ( ( A + 1 ) x. B ) = ( ( A x. B ) + B ) ) $=
      ( c1 caddc co cmul 1cnd adddird mulid2d oveq2d eqtrd ) ABFGHCIHBCIHZFCIHZ
      GHOCGHABFCDAJEKAPCOGACELMN $.
  $}

  ${
    joinlmuladdmuld.1 $e |- ( ph -> A e. CC ) $.
    joinlmuladdmuld.2 $e |- ( ph -> B e. CC ) $.
    joinlmuladdmuld.3 $e |- ( ph -> C e. CC ) $.
    joinlmuladdmuld.4 $e |- ( ph -> ( ( A x. B ) + ( C x. B ) ) = D ) $.
    $( Join AB+CB into (A+C) on LHS. (Contributed by David A. Wheeler,
       26-Oct-2019.) $)
    joinlmuladdmuld $p |- ( ph -> ( ( A + C ) x. B ) = D ) $=
      ( caddc co cmul adddird eqtrd ) ABDJKCLKBCLKDCLKJKEABDCFHGMIN $.
  $}

  ${
    recnd.1 $e |- ( ph -> A e. RR ) $.
    $( Deduction from real number to complex number.  (Contributed by NM,
       26-Oct-1999.) $)
    recnd $p |- ( ph -> A e. CC ) $=
      ( cr wcel cc recn syl ) ABDEBFECBGH $.

    readdcld.2 $e |- ( ph -> B e. RR ) $.
    $( Closure law for addition of reals.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    readdcld $p |- ( ph -> ( A + B ) e. RR ) $=
      ( cr wcel caddc co readdcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure law for multiplication of reals.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    remulcld $p |- ( ph -> ( A x. B ) e. RR ) $=
      ( cr wcel cmul co remulcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Infinity and the extended real number system
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c <_ $. $( 'Less than or equal to' relation. $)
  $c +oo $. $( Plus infinity $)
  $c -oo $. $( Minus infinity $)
  $c RR* $. $( The set of extended reals $)
  $c < $. $( 'Less than' relation (over extended reals) $)

  $( Plus infinity. $)
  cpnf $a class +oo $.
  $( Minus infinity. $)
  cmnf $a class -oo $.
  $( The set of extended reals (includes plus and minus infinity). $)
  cxr $a class RR* $.
  $( 'Less than' predicate (extended to include the extended reals). $)
  clt $a class < $.
  $( Extend wff notation to include the 'less than or equal to' relation. $)
  cle $a class <_ $.

  $( Define plus infinity.  Note that the definition is arbitrary, requiring
     only that ` +oo ` be a set not in ` RR ` and different from ` -oo `
     ( ~ df-mnf ).  We use ` ~P U. CC ` to make it independent of the
     construction of ` CC ` , and Cantor's Theorem will show that it is
     different from any member of ` CC ` and therefore ` RR ` .  See ~ pnfnre ,
     ~ mnfnre , and ~ pnfnemnf .

     A simpler possibility is to define ` +oo ` as ` CC ` and ` -oo ` as
     ` { CC } ` , but that approach requires the Axiom of Regularity to show
     that ` +oo ` and ` -oo ` are different from each other and from all
     members of ` RR ` .  (Contributed by NM, 13-Oct-2005.)
     (New usage is discouraged.) $)
  df-pnf $a |- +oo = ~P U. CC $.

  $( Define minus infinity as the power set of plus infinity.  Note that the
     definition is arbitrary, requiring only that ` -oo ` be a set not in
     ` RR ` and different from ` +oo ` (see ~ mnfnre and ~ pnfnemnf ).
     (Contributed by NM, 13-Oct-2005.)  (New usage is discouraged.) $)
  df-mnf $a |- -oo = ~P +oo $.

  $( Define the set of extended reals that includes plus and minus infinity.
     Definition 12-3.1 of [Gleason] p. 173.  (Contributed by NM,
     13-Oct-2005.) $)
  df-xr $a |- RR* = ( RR u. { +oo , -oo } ) $.

  ${
    $d x y $.
    $( Define 'less than' on the set of extended reals.  Definition 12-3.1 of
       [Gleason] p. 173.  Note that in our postulates for complex numbers,
       ` <RR ` is primitive and not necessarily a relation on ` RR ` .
       (Contributed by NM, 13-Oct-2005.) $)
    df-ltxr $a |- < = ( { <. x , y >. | ( x e. RR /\ y e. RR /\ x <RR y ) }
      u. ( ( ( RR u. { -oo } ) X. { +oo } ) u. ( { -oo } X. RR ) ) ) $.
  $}

  $( Define 'less than or equal to' on the extended real subset of complex
     numbers.  Theorem ~ leloe relates it to 'less than' for reals.
     (Contributed by NM, 13-Oct-2005.) $)
  df-le $a |- <_ = ( ( RR* X. RR* ) \ `' < ) $.

  $( Plus infinity is not a real number.  (Contributed by NM, 13-Oct-2005.) $)
  pnfnre $p |- +oo e/ RR $=
    ( cpnf cr wcel cc cuni cpw pwuninel df-pnf eleq1i mtbir recn mto nelir ) AB
    ABCADCZNDEFZDCDGAODHIJAKLM $.

  $( Minus infinity is not a real number.  (Contributed by NM, 13-Oct-2005.) $)
  mnfnre $p |- -oo e/ RR $=
    ( cmnf cr wcel cc cuni cpw 2pwuninel df-mnf df-pnf pweqi eqtri eleq1i mtbir
    cpnf recn mto nelir ) ABABCADCZRDEFZFZDCDGATDANFTHNSIJKLMAOPQ $.

  $( The standard reals are a subset of the extended reals.  (Contributed by
     NM, 14-Oct-2005.) $)
  ressxr $p |- RR C_ RR* $=
    ( cr cpnf cmnf cpr cun cxr ssun1 df-xr sseqtr4i ) AABCDZEFAJGHI $.

  $( The Cartesian product of standard reals are a subset of the Cartesian
     product of extended reals (common case).  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  rexpssxrxp $p |- ( RR X. RR ) C_ ( RR* X. RR* ) $=
    ( cr cxr wss cxp ressxr xpss12 mp2an ) ABCZHAADBBDCEEABABFG $.

  $( A standard real is an extended real.  (Contributed by NM, 14-Oct-2005.) $)
  rexr $p |- ( A e. RR -> A e. RR* ) $=
    ( cr cxr ressxr sseli ) BCADE $.

  $( Zero is an extended real.  (Contributed by Mario Carneiro,
     15-Jun-2014.) $)
  0xr $p |- 0 e. RR* $=
    ( cr cxr cc0 ressxr 0re sselii ) ABCDEF $.

  $( No (finite) real equals plus infinity.  (Contributed by NM, 14-Oct-2005.)
     (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  renepnf $p |- ( A e. RR -> A =/= +oo ) $=
    ( cr wcel cpnf wceq pnfnre neli eleq1 mtbiri necon2ai ) ABCZADADEKDBCDBFGAD
    BHIJ $.

  $( No real equals minus infinity.  (Contributed by NM, 14-Oct-2005.)  (Proof
     shortened by Andrew Salmon, 19-Nov-2011.) $)
  renemnf $p |- ( A e. RR -> A =/= -oo ) $=
    ( cr wcel cmnf wceq mnfnre neli eleq1 mtbiri necon2ai ) ABCZADADEKDBCDBFGAD
    BHIJ $.

  ${
    rexrd.1 $e |- ( ph -> A e. RR ) $.
    $( A standard real is an extended real.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    rexrd $p |- ( ph -> A e. RR* ) $=
      ( cr cxr ressxr sseldi ) ADEBFCG $.

    $( No (finite) real equals plus infinity.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    renepnfd $p |- ( ph -> A =/= +oo ) $=
      ( cr wcel cpnf wne renepnf syl ) ABDEBFGCBHI $.

    $( No real equals minus infinity.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    renemnfd $p |- ( ph -> A =/= -oo ) $=
      ( cr wcel cmnf wne renemnf syl ) ABDEBFGCBHI $.
  $}

  $( Plus infinity belongs to the set of extended reals.  (Contributed by NM,
     13-Oct-2005.)  (Proof shortened by Anthony Hart, 29-Aug-2011.) $)
  pnfxr $p |- +oo e. RR* $=
    ( cpnf cr cmnf cpr cun cxr ssun2 cc cuni cpw df-pnf cnex uniex pwex eqeltri
    cvv prid1 sselii df-xr eleqtrri ) ABACDZEZFUAUBAUABGACAHIZJPKUCHLMNOQRST $.

  $( Plus infinity exists (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  pnfex $p |- +oo e. _V $=
    ( cpnf cxr pnfxr elexi ) ABCD $.

  $( Plus and minus infinity are different elements of ` RR* ` .  (Contributed
     by NM, 14-Oct-2005.) $)
  pnfnemnf $p |- +oo =/= -oo $=
    ( cpnf cpw cmnf cxr wcel wne pnfxr pwne ax-mp necomi df-mnf neeqtrri ) AABZ
    CMAADEMAFGADHIJKL $.

  $( Minus and plus infinity are different (common case).  (Contributed by
     David A. Wheeler, 8-Dec-2018.) $)
  mnfnepnf $p |- -oo =/= +oo $=
    ( cpnf cmnf pnfnemnf necomi ) ABCD $.

  $( Minus infinity belongs to the set of extended reals.  (Contributed by NM,
     13-Oct-2005.)  (Proof shortened by Anthony Hart, 29-Aug-2011.)  (Proof
     shortened by Andrew Salmon, 19-Nov-2011.) $)
  mnfxr $p |- -oo e. RR* $=
    ( cmnf cr cpnf cpr cun cxr wcel cpw cvv df-mnf pnfex pwex prid2 elun2 ax-mp
    eqeltri df-xr eleqtrri ) ABCADZEZFASGATGCAACHIJCKLPMASBNOQR $.

  ${
    rexri.1 $e |- A e. RR $.
    $( A standard real is an extended real (inference form.)  (Contributed by
       David Moews, 28-Feb-2017.) $)
    rexri $p |- A e. RR* $=
      ( cr wcel cxr rexr ax-mp ) ACDAEDBAFG $.
  $}

  $( The reals and the infinities are disjoint.  (Contributed by NM,
     25-Oct-2005.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  renfdisj $p |- ( RR i^i { +oo , -oo } ) = (/) $=
    ( vx cr cpnf cmnf cpr cin c0 wceq cv wcel wn renepnf renemnf nelprd mprgbir
    disj ) BCDEZFGHAIZQJKABABQPRBJRCDRLRMNO $.

  ${
    $d x y $.
    $( 'Less than' is a relation on extended reals.  (Contributed by Mario
       Carneiro, 28-Apr-2015.) $)
    ltrelxr $p |- < C_ ( RR* X. RR* ) $=
      ( vx vy cv cr wcel copab cmnf csn cun cxp cxr wa eqsstri sstri wss ressxr
      cpnf unssi xpss12 mp2an clt cltrr wbr w3a df-ltxr df-3an opabbii opabssxp
      rexpssxrxp cpr snsspr2 ssun2 df-xr sseqtr4i snsspr1 ) UAACZDEZBCZDEZUPURU
      BUCZUDZABFZDGHZIZQHZJZVCDJZIZIKKJZABUEVBVHVIVBDDJZVIVBUQUSLUTLZABFVJVAVKA
      BUQUSUTUFUGUTABDDUHMUINVFVGVIVDKOVEKOVFVIODVCKPVCQGUJZKQGUKVLDVLIKVLDULUM
      UNZNZRVEVLKQGUOVMNVDKVEKSTVCKODKOVGVIOVNPVCKDKSTRRM $.
  $}

  $( 'Less than' is a relation.  (Contributed by NM, 14-Oct-2005.) $)
  ltrel $p |- Rel < $=
    ( clt cxr cxp wss wrel ltrelxr relxp relss mp2 ) ABBCZDJEAEFBBGAJHI $.

  $( 'Less than or equal' is a relation on extended reals.  (Contributed by
     Mario Carneiro, 28-Apr-2015.) $)
  lerelxr $p |- <_ C_ ( RR* X. RR* ) $=
    ( cle cxr cxp clt ccnv cdif df-le difss eqsstri ) ABBCZDEZFJGJKHI $.

  $( 'Less or equal to' is a relation.  (Contributed by FL, 2-Aug-2009.)
     (Revised by Mario Carneiro, 28-Apr-2015.) $)
  lerel $p |- Rel <_ $=
    ( cle cxr cxp wss wrel lerelxr relxp relss mp2 ) ABBCZDJEAEFBBGAJHI $.

  $( 'Less than or equal to' expressed in terms of 'less than', for extended
     reals.  (Contributed by NM, 14-Oct-2005.) $)
  xrlenlt $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A <_ B <-> -. B < A ) ) $=
    ( cxr wcel wa cle wbr cop clt ccnv wn df-br cxp wb opelxpi cdif df-le eldif
    eleq2i bitri baib syl syl5bb opelcnvg syl6rbbr notbid bitr4d ) ACDBCDEZABFG
    ZABHZIJZDZKZBAIGZKUIUJFDZUHUMABFLUHUJCCMZDZUOUMNABCCOUOUQUMUOUJUPUKPZDUQUME
    FURUJQSUJUPUKRTUAUBUCUHUNULUHULBAHIDUNABCCIUDBAILUEUFUG $.

  ${
    xrlenltd.a $e |- ( ph -> A e. RR* ) $.
    xrlenltd.b $e |- ( ph -> B e. RR* ) $.
    $( 'Less than or equal to' expressed in terms of 'less than', for extended
       reals.  (Contributed by Glauco Siliprandi, 17-Aug-2020.) $)
    xrlenltd $p |- ( ph -> ( A <_ B <-> -. B < A ) ) $=
      ( cxr wcel cle wbr clt wn wb xrlenlt syl2anc ) ABFGCFGBCHICBJIKLDEBCMN $.
  $}

  $( 'Less than' expressed in terms of 'less than or equal to', for extended
     reals.  (Contributed by NM, 6-Feb-2007.) $)
  xrltnle $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A < B <-> -. B <_ A ) ) $=
    ( cxr wcel clt wbr cle wn wb wa xrlenlt con2bid ancoms ) BCDZACDZABEFZBAGFZ
    HINOJQPBAKLM $.

  ${
    xrnltled.1 $e |- ( ph -> A e. RR* ) $.
    xrnltled.2 $e |- ( ph -> B e. RR* ) $.
    xrnltled.3 $e |- ( ph -> -. B < A ) $.
    $( 'Not less than ' implies 'less than or equal to'.  (Contributed by
       Glauco Siliprandi, 11-Dec-2019.) $)
    xrnltled $p |- ( ph -> A <_ B ) $=
      ( cle wbr clt wn cxr wcel wb xrlenlt syl2anc mpbird ) ABCGHZCBIHJZFABKLCK
      LQRMDEBCNOP $.
  $}

  $( The three (non-exclusive) possibilities implied by a subset of extended
     reals.  (Contributed by NM, 25-Oct-2005.)  (Proof shortened by Andrew
     Salmon, 19-Nov-2011.) $)
  ssxr $p |- ( A C_ RR* -> ( A C_ RR \/ +oo e. A \/ -oo e. A ) ) $=
    ( cr cpnf cmnf cpr cun wss wcel wo cxr w3o wn cin c0 wceq csn disjsn sseq2i
    wa cdif df-pr ineq2i indi eqtri anbi12i biimpri pm4.56 un00 3imtr3i reldisj
    syl5eq renfdisj disj3 mpbi difun2 eqtr4i syl6bbr syl5ib df-xr 3orrot df-3or
    orrd bitri 3imtr4i ) ABCDEZFZGZCAHZDAHZIZABGZIZAJGVKVHVIKZVGVJVKVJLZAVEMZNO
    ZVGVKVNVOACPZMZADPZMZFZNVOAVQVSFZMWAVEWBACDUAUBAVQVSUCUDVHLZVILZSZVRNOZVTNO
    ZSZVNWANOWHWEWFWCWGWDACQADQUEUFVHVIUGVRVTUHUIUKVGVPAVFVETZGVKAVEVFUJBWIABBV
    ETZWIBVEMNOBWJOULBVEUMUNBVEUOUPRUQURVBJVFAUSRVMVHVIVKKVLVKVHVIUTVHVIVKVAVCV
    D $.

  ${
    $d x y A $.  $d x y B $.
    $( The standard less-than ` <RR ` and the extended real less-than ` < ` are
       identical when restricted to the non-extended reals ` RR ` .
       (Contributed by NM, 13-Oct-2005.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    ltxrlt $p |- ( ( A e. RR /\ B e. RR ) -> ( A < B <-> A <RR B ) ) $=
      ( vx vy cr wcel wa clt wbr cv cltrr cmnf csn cun cpnf cxp wn wo syl sylbi
      w3a copab brun brxp wceq elsni pnfnre neli simpr eleq1 syl5ib mtoi adantl
      wb mnfnre simpl adantr con2i wi biimt df-ltxr equncomi breqi df-or 3bitri
      jaoi syl6rbbr breq12 df-3an opabbii brab2a baibr bitr4d ) AEFZBEFZGZABHIZ
      ABCJZEFZDJZEFZVRVTKIZUAZCDUBZIZABKIZVPABELMZNZOMZPZWGEPZNZIZQZVQWEUNWMVPW
      MABWJIZABWKIZRVPQZABWJWKUCWOWQWPWOAWHFZBWIFZGWQABWHWIUDWSWQWRWSBOUEZWQBOU
      FWTVPOEFZOEUGUHVPVOWTXAVNVOUIBOEUJUKULSUMTWPAWGFZVOGWQABWGEUDXBWQVOXBALUE
      ZWQALUFXCVPLEFZLEUOUHVPVNXCXDVNVOUPALEUJUKULSUQTVFTURWNWEWNWEUSZVQWNWEUTV
      QABWLWDNZIWMWERXEABHXFHWDWLCDVAVBVCABWLWDUCWMWEVDVEVGSWEVPWFWBWFCDABEEWDV
      RAVTBKVHWCVSWAGWBGCDVSWAWBVIVJVKVLVM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Restate the ordering postulates with extended real "less than"
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Ordering on reals satisfies strict trichotomy.  Axiom 18 of 22 for real
     and complex numbers, derived from ZF set theory.  (This restates
     ~ ax-pre-lttri with ordering on the extended reals.)  (Contributed by NM,
     13-Oct-2005.) $)
  axlttri $p |- ( ( A e. RR /\ B e. RR ) ->
                ( A < B <-> -. ( A = B \/ B < A ) ) ) $=
    ( cr wcel wa cltrr wbr wceq wo clt ax-pre-lttri ltxrlt ancoms orbi2d notbid
    wn wb 3bitr4d ) ACDZBCDZEZABFGABHZBAFGZIZPABJGUBBAJGZIZPABKABLUAUFUDUAUEUCU
    BTSUEUCQBALMNOR $.

  $( Ordering on reals is transitive.  Axiom 19 of 22 for real and complex
     numbers, derived from ZF set theory.  This restates ~ ax-pre-lttrn with
     ordering on the extended reals.  New proofs should use ~ lttr instead for
     naming consistency.  (New usage is discouraged.)  (Contributed by NM,
     13-Oct-2005.) $)
  axlttrn $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
             ( ( A < B /\ B < C ) -> A < C ) ) $=
    ( cr wcel w3a cltrr wbr wa clt ax-pre-lttrn 3adant3 3adant1 anbi12d 3adant2
    wb ltxrlt 3imtr4d ) ADEZBDEZCDEZFZABGHZBCGHZIACGHZABJHZBCJHZIACJHZABCKUBUFU
    CUGUDSTUFUCPUAABQLTUAUGUDPSBCQMNSUAUHUEPTACQOR $.

  $( Ordering property of addition on reals.  Axiom 20 of 22 for real and
     complex numbers, derived from ZF set theory.  (This restates
     ~ ax-pre-ltadd with ordering on the extended reals.)  (Contributed by NM,
     13-Oct-2005.) $)
  axltadd $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A < B -> ( C + A ) < ( C + B ) ) ) $=
    ( cr wcel w3a cltrr wbr caddc co clt ax-pre-ltadd wb ltxrlt 3adant3 readdcl
    wa syl2an 3impdi 3coml 3imtr4d ) ADEZBDEZCDEZFABGHZCAIJZCBIJZGHZABKHZUFUGKH
    ZABCLUBUCUIUEMUDABNOUDUBUCUJUHMZUDUBUCUKUDUBQUFDEUGDEUKUDUCQCAPCBPUFUGNRSTU
    A $.

  $( The product of two positive reals is positive.  Axiom 21 of 22 for real
     and complex numbers, derived from ZF set theory.  (This restates
     ~ ax-pre-mulgt0 with ordering on the extended reals.)  (Contributed by NM,
     13-Oct-2005.) $)
  axmulgt0 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( ( 0 < A /\ 0 < B ) -> 0 < ( A x. B ) ) ) $=
    ( cr wcel wa cc0 cltrr wbr cmul co clt ax-pre-mulgt0 wb 0re ltxrlt bi2anan9
    mpan remulcl sylancr 3imtr4d ) ACDZBCDZEZFAGHZFBGHZEFABIJZGHZFAKHZFBKHZEFUF
    KHZABLUAUHUDUBUIUEFCDZUAUHUDMNFAOQUKUBUIUEMNFBOQPUCUKUFCDUJUGMNABRFUFOST $.

  ${
    $d x y z A $.
    $( A nonempty, bounded-above set of reals has a supremum.  Axiom 22 of 22
       for real and complex numbers, derived from ZF set theory.  (This
       restates ~ ax-pre-sup with ordering on the extended reals.)
       (Contributed by NM, 13-Oct-2005.) $)
    axsup $p |- ( ( A C_ RR /\ A =/= (/) /\ E. x e. RR A. y e. A y < x ) ->
                E. x e. RR ( A. y e. A -. x < y /\
                A. y e. RR ( y < x -> E. z e. A y < z ) ) ) $=
      ( cr cv clt wbr wral wrex wa cltrr wb wcel ltxrlt sylan ralbidva rexbidva
      an32s ancoms wss c0 wne wn ax-pre-sup 3expia ssel2 adantr adantll adantlr
      wi notbid imbi12d anbi12d 3imtr4d 3impia ) DEUAZDUBUCZBFZAFZGHZBDIZAEJZUT
      USGHZUDZBDIZVAUSCFZGHZCDJZUKZBEIZKZAEJZUQURKUSUTLHZBDIZAEJZUTUSLHZUDZBDIZ
      VNUSVGLHZCDJZUKZBEIZKZAEJZVCVMUQURVPWEABCDUEUFUQVCVPMURUQVBVOAEUQUTENZKZV
      AVNBDUQUSDNZWFVAVNMZUQWHKZUSENZWFWIDEUSUGZUSUTOZPSQRUHUQVMWEMURUQVLWDAEWG
      VFVSVKWCWGVEVRBDWGWHKVDVQUQWHWFVDVQMZWJWKWFWNWLWFWKWNUTUSOTPSULQWGVJWBBEW
      GWKKVAVNVIWAWFWKWIUQWKWFWIWMTUIUQWKVIWAMWFUQWKKVHVTCDUQVGDNZWKVHVTMZUQWOK
      VGENZWKWPDEVGUGWKWQWPUSVGOTPSRUJUMQUNRUHUOUP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordering on reals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Alias for ~ axlttrn , for naming consistency with ~ lttri .  New proofs
     should generally use this instead of ~ ax-pre-lttrn .  (Contributed by NM,
     10-Mar-2008.) $)
  lttr $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
             ( ( A < B /\ B < C ) -> A < C ) ) $=
    ( axlttrn ) ABCD $.

  $( The product of two positive numbers is positive.  (Contributed by NM,
     10-Mar-2008.) $)
  mulgt0 $p |- ( ( ( A e. RR /\ 0 < A ) /\
                ( B e. RR /\ 0 < B ) ) -> 0 < ( A x. B ) ) $=
    ( cr wcel cc0 clt wbr cmul co wa axmulgt0 imp an4s ) ACDZBCDZEAFGZEBFGZEABH
    IFGZNOJPQJRABKLM $.

  $( 'Less than or equal to' expressed in terms of 'less than'.  (Contributed
     by NM, 13-May-1999.) $)
  lenlt $p |- ( ( A e. RR /\ B e. RR ) -> ( A <_ B <-> -. B < A ) ) $=
    ( cr wcel cxr cle wbr clt wn wb rexr xrlenlt syl2an ) ACDAEDBEDABFGBAHGIJBC
    DAKBKABLM $.

  $( 'Less than' expressed in terms of 'less than or equal to'.  (Contributed
     by NM, 11-Jul-2005.) $)
  ltnle $p |- ( ( A e. RR /\ B e. RR ) -> ( A < B <-> -. B <_ A ) ) $=
    ( cr wcel wa cle wbr clt wn wb lenlt ancoms con2bid ) ACDZBCDZEBAFGZABHGZON
    PQIJBAKLM $.

  ${
    $d x y z $.
    $( 'Less than' is a strict ordering.  (Contributed by NM, 19-Jan-1997.) $)
    ltso $p |- < Or RR $=
      ( vx vy vz cr clt cv axlttri lttr isso2i ) ABCDEAFZBFZGJKCFHI $.
  $}

  $( 'Greater than' is a strict ordering.  (Contributed by JJ, 11-Oct-2018.) $)
  gtso $p |- `' < Or RR $=
    ( cr clt wor ccnv ltso cnvso mpbi ) ABCABDCEABFG $.

  $( Consequence of trichotomy.  (Contributed by NM, 9-Oct-1999.) $)
  lttri2 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( A =/= B <-> ( A < B \/ B < A ) ) ) $=
    ( cr wcel wa clt wbr wo wceq wn wor wb ltso sotrieq mpan bicomd necon1abid
    ) ACDBCDEZABFGBAFGHZABRABIZSJZCFKRTUALMCABFNOPQ $.

  $( Trichotomy law for 'less than'.  (Contributed by NM, 5-May-1999.) $)
  lttri3 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( A = B <-> ( -. A < B /\ -. B < A ) ) ) $=
    ( cr clt wor wcel wa wceq wbr wn wb ltso sotrieq2 mpan ) CDEACFBCFGABHABDIJ
    BADIJGKLCABDMN $.

  $( Trichotomy law for 'less than'.  (Contributed by NM, 20-Sep-2007.)  (Proof
     shortened by Andrew Salmon, 19-Nov-2011.) $)
  lttri4 $p |- ( ( A e. RR /\ B e. RR ) -> ( A < B \/ A = B \/ B < A ) ) $=
    ( cr clt wor wcel wa wbr wceq w3o ltso solin mpan ) CDEACFBCFGABDHABIBADHJK
    CABDLM $.

  $( Trichotomy law.  (Contributed by NM, 14-May-1999.) $)
  letri3 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( A = B <-> ( A <_ B /\ B <_ A ) ) ) $=
    ( cr wcel wa wceq clt wbr wn cle lttri3 ancom syl6bbr ancoms anbi12d bitr4d
    lenlt wb ) ACDZBCDZEZABFZBAGHIZABGHIZEZABJHZBAJHZEUAUBUDUCEUEABKUCUDLMUAUFU
    CUGUDABQTSUGUDRBAQNOP $.

  $( 'Less than or equal to' expressed in terms of 'less than' or 'equals'.
     (Contributed by NM, 13-May-1999.) $)
  leloe $p |- ( ( A e. RR /\ B e. RR ) ->
               ( A <_ B <-> ( A < B \/ A = B ) ) ) $=
    ( cr wcel wa cle wbr clt wn wceq wo lenlt eqcom orbi1i orcom axlttri ancoms
    bitri wb con2bid syl5rbbr bitrd ) ACDZBCDZEZABFGBAHGZIZABHGZABJZKZABLUJBAJZ
    UHKZUEUGULUIUHKUJUKUIUHBAMNUIUHORUEUFULUDUCUFULISBAPQTUAUB $.

  $( Equality in terms of 'less than or equal to', 'less than'.  (Contributed
     by NM, 7-Apr-2001.) $)
  eqlelt $p |- ( ( A e. RR /\ B e. RR ) ->
               ( A = B <-> ( A <_ B /\ -. A < B ) ) ) $=
    ( cr wcel wa wceq cle wbr clt wn letri3 wb lenlt ancoms anbi2d bitrd ) ACDZ
    BCDZEZABFABGHZBAGHZETABIHJZEABKSUAUBTRQUAUBLBAMNOP $.

  $( 'Less than' implies 'less than or equal to'.  (Contributed by NM,
     25-Aug-1999.) $)
  ltle $p |- ( ( A e. RR /\ B e. RR ) ->
               ( A < B -> A <_ B ) ) $=
    ( clt wbr cle cr wcel wa wceq wo orc leloe syl5ibr ) ABCDZABEDAFGBFGHNABIZJ
    NOKABLM $.

  $( 'Less than or equal to' implies 'less than' is not 'equals'.  (Contributed
     by NM, 27-Jul-1999.) $)
  leltne $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) ->
                ( A < B <-> B =/= A ) ) $=
    ( cr wcel cle wbr clt wne wb wa wceq wn wi lttri3 simpl syl6bi adantr leloe
    wo biimpa ord impbid necon2abid necom syl6bbr 3impa ) ACDZBCDZABEFZABGFZBAH
    ZIUGUHJZUIJZUJABHUKUMUJABUMABKZUJLZULUNUOMUIULUNUOBAGFLZJUOABNUOUPOPQUMUJUN
    ULUIUJUNSABRTUAUBUCBAUDUEUF $.

  $( Transitive law.  (Contributed by NM, 23-May-1999.) $)
  lelttr $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
             ( ( A <_ B /\ B < C ) -> A < C ) ) $=
    ( cr wcel w3a cle wbr clt wceq wo wi wb leloe 3adant3 lttr expd biimprd a1i
    breq1 jaod sylbid impd ) ADEZBDEZCDEZFZABGHZBCIHZACIHZUGUHABIHZABJZKZUIUJLZ
    UDUEUHUMMUFABNOUGUKUNULUGUKUIUJABCPQULUNLUGULUJUIABCITRSUAUBUC $.

  $( Transitive law.  (Contributed by NM, 25-Aug-1999.) $)
  ltletr $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
             ( ( A < B /\ B <_ C ) -> A < C ) ) $=
    ( cr wcel w3a clt wbr wceq wo wi wb leloe 3adant1 lttr expcomd breq2 biimpd
    cle a1i jaod sylbid com23 impd ) ADEZBDEZCDEZFZABGHZBCSHZACGHZUHUJUIUKUHUJB
    CGHZBCIZJZUIUKKZUFUGUJUNLUEBCMNUHULUOUMUHUIULUKABCOPUMUOKUHUMUIUKBCAGQRTUAU
    BUCUD $.

  $( Transitive law, weaker form of ~ ltletr .  (Contributed by AV,
     14-Oct-2018.) $)
  ltleletr $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A < B /\ B <_ C ) -> A <_ C ) ) $=
    ( cr wcel w3a wa clt wbr cle 3simpb ltletr ltle sylsyld ) ADEZBDEZCDEZFOQGA
    BHIBCJIGACHIACJIOPQKABCLACMN $.

  $( Transitive law.  (Contributed by NM, 12-Nov-1999.) $)
  letr $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
             ( ( A <_ B /\ B <_ C ) -> A <_ C ) ) $=
    ( cr wcel w3a cle wbr wa clt wceq wo wb leloe 3adant1 adantr lelttr wi ltle
    3adant2 syld expdimp breq2 biimpcd adantl jaod sylbid expimpd ) ADEZBDEZCDE
    ZFZABGHZBCGHZACGHZULUMIZUNBCJHZBCKZLZUOULUNUSMZUMUJUKUTUIBCNOPUPUQUOURULUMU
    QUOULUMUQIACJHZUOABCQUIUKVAUORUJACSTUAUBUMURUORULURUMUOBCAGUCUDUEUFUGUH $.

  $( 'Less than' is irreflexive.  (Contributed by NM, 18-Aug-1999.) $)
  ltnr $p |- ( A e. RR -> -. A < A ) $=
    ( cr clt wor wcel wbr wn ltso sonr mpan ) BCDABEAACFGHBACIJ $.

  $( 'Less than or equal to' is reflexive.  (Contributed by NM,
     18-Aug-1999.) $)
  leid $p |- ( A e. RR -> A <_ A ) $=
    ( cr wcel cle wbr wa clt wceq wo eqid olci leloe mpbiri anidms ) ABCZAADEZO
    OFPAAGEZAAHZIRQAJKAALMN $.

  $( 'Less than' implies not equal.  (Contributed by NM, 9-Oct-1999.)  (Revised
     by Mario Carneiro, 16-Sep-2015.) $)
  ltne $p |- ( ( A e. RR /\ A < B ) -> B =/= A ) $=
    ( cr wcel clt wbr wne wn wceq ltnr breq2 notbid syl5ibrcom necon2ad imp ) A
    CDZABEFZBAGPQBAPQHBAIZAAEFZHAJRQSBAAEKLMNO $.

  $( 'Less than' is not symmetric.  (Contributed by NM, 8-Jan-2002.) $)
  ltnsym $p |- ( ( A e. RR /\ B e. RR ) -> ( A < B -> -. B < A ) ) $=
    ( cr wcel wa clt wbr wceq wo wn axlttri pm2.46 syl6bi ) ACDBCDEABFGABHZBAFG
    ZIJOJABKNOLM $.

  $( 'Less than' is antisymmetric and irreflexive.  (Contributed by NM,
     13-Aug-2005.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  ltnsym2 $p |- ( ( A e. RR /\ B e. RR ) -> -. ( A < B /\ B < A ) ) $=
    ( cr clt wor wcel wa wbr wn ltso so2nr mpan ) CDEACFBCFGABDHBADHGIJCABDKL
    $.

  $( Trichotomy law.  (Contributed by NM, 18-Aug-1999.)  (Proof shortened by
     Andrew Salmon, 19-Nov-2011.) $)
  letric $p |- ( ( A e. RR /\ B e. RR ) -> ( A <_ B \/ B <_ A ) ) $=
    ( cr wcel cle wbr wo wa wn clt ltnle ltle sylbird orrd ancoms ) BCDZACDZABE
    FZBAEFZGPQHZRSTRIBAJFSBAKBALMNO $.

  $( 'Less than' expressed in terms of 'less than or equal to'.  (Contributed
     by NM, 27-Oct-1999.) $)
  ltlen $p |- ( ( A e. RR /\ B e. RR ) ->
               ( A < B <-> ( A <_ B /\ B =/= A ) ) ) $=
    ( cr wcel wa clt wbr cle wne ltle wi ltne ex adantr jcad wceq wo leloe ax-1
    wn df-ne pm2.24 eqcoms syl5bi jaoi syl6bi impd impbid ) ACDZBCDZEZABFGZABHG
    ZBAIZEUKULUMUNABJUIULUNKUJUIULUNABLMNOUKUMUNULUKUMULABPZQUNULKZABRULUPUOULU
    NSUNBAPZTZUOULBAUAURULKBAUQULUBUCUDUEUFUGUH $.

  $( Equality implies 'less than or equal to'.  (Contributed by NM,
     4-Apr-2005.) $)
  eqle $p |- ( ( A e. RR /\ A = B ) -> A <_ B ) $=
    ( cr wcel cle wbr wceq leid breq2 biimpac sylan ) ACDAAEFZABGZABEFZAHMLNABA
    EIJK $.

  ${
    eqled.1 $e |- ( ph -> A e. RR ) $.
    eqled.2 $e |- ( ph -> A = B ) $.
    $( Equality implies 'less than or equal to'.  (Contributed by Glauco
       Siliprandi, 11-Dec-2019.) $)
    eqled $p |- ( ph -> A <_ B ) $=
      ( cr wcel wceq cle wbr eqle syl2anc ) ABFGBCHBCIJDEBCKL $.
  $}

  $( Addition to both sides of 'less than'.  (Contributed by NM, 12-Nov-1999.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  ltadd2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A < B <-> ( C + A ) < ( C + B ) ) ) $=
    ( cr wcel w3a clt wbr caddc co axltadd wceq wo wn wi oveq2 readdcld axlttri
    wb syl2anc a1i 3com12 orim12d con3d simp3 simp1 simp2 3imtr4d impbid ) ADEZ
    BDEZCDEZFZABGHZCAIJZCBIJZGHZABCKUMUOUPLZUPUOGHZMZNZABLZBAGHZMZNZUQUNUMVDUTU
    MVBURVCUSVBUROUMABCIPUAUKUJULVCUSOBACKUBUCUDUMUODEUPDEUQVASUMCAUJUKULUEZUJU
    KULUFZQUMCBVFUJUKULUGZQUOUPRTUMUJUKUNVESVGVHABRTUHUI $.

  $( A nonzero nonnegative number is positive.  (Contributed by NM,
     20-Nov-2007.) $)
  ne0gt0 $p |- ( ( A e. RR /\ 0 <_ A ) -> ( A =/= 0 <-> 0 < A ) ) $=
    ( cr wcel cc0 cle wbr wa wne clt wo wb 0re lttri2 mpan2 adantr lenlt biimpa
    wn mpan biorf syl bitr4d ) ABCZDAEFZGZADHZADIFZDAIFZJZUHUCUFUIKZUDUCDBCZUJL
    ADMNOUEUGRZUHUIKUCUDULUKUCUDULKLDAPSQUGUHTUAUB $.

  ${
    lecase.1 $e |- ( ph -> A e. RR ) $.
    lecase.2 $e |- ( ph -> B e. RR ) $.
    lecase.3 $e |- ( ( ph /\ A <_ B ) -> ps ) $.
    lecase.4 $e |- ( ( ph /\ B <_ A ) -> ps ) $.
    $( Ordering elimination by cases.  (Contributed by NM, 6-Jul-2007.) $)
    lecasei $p |- ( ph -> ps ) $=
      ( cle wbr cr wcel wo letric syl2anc mpjaodan ) ACDIJZBDCIJZGHACKLDKLQRMEF
      CDNOP $.
  $}

  $( Trichotomy law.  (Contributed by NM, 4-Apr-2005.) $)
  lelttric $p |- ( ( A e. RR /\ B e. RR ) -> ( A <_ B \/ B < A ) ) $=
    ( cr wcel wa cle wbr clt wo wn pm2.1 lenlt orbi1d mpbiri ) ACDBCDEZABFGZBAH
    GZIQJZQIQKOPRQABLMN $.

  ${
    ltlecasei.1 $e |- ( ( ph /\ A < B ) -> ps ) $.
    ltlecasei.2 $e |- ( ( ph /\ B <_ A ) -> ps ) $.
    ltlecasei.3 $e |- ( ph -> A e. RR ) $.
    ltlecasei.4 $e |- ( ph -> B e. RR ) $.
    $( Ordering elimination by cases.  (Contributed by NM, 1-Jul-2007.)  (Proof
       shortened by Mario Carneiro, 27-May-2016.) $)
    ltlecasei $p |- ( ph -> ps ) $=
      ( cle wbr clt cr wcel wo lelttric syl2anc mpjaodan ) ADCIJZBCDKJZFEADLMCL
      MRSNHGDCOPQ $.
  $}

  ${
    lt.1 $e |- A e. RR $.
    $( 'Less than' is irreflexive.  (Contributed by NM, 18-Aug-1999.) $)
    ltnri $p |- -. A < A $=
      ( cr wcel clt wbr wn ltnr ax-mp ) ACDAAEFGBAHI $.

    $( Equality implies 'less than or equal to'.  (Contributed by NM,
       23-May-1999.)  (Revised by Alexander van der Vekens, 20-Mar-2018.) $)
    eqlei $p |- ( A = B -> A <_ B ) $=
      ( cr wcel wceq cle wbr wi eleq1a ax-mp eqcoms wa letri3 mpan simpl syl6bi
      wb mpcom ) BDEZABFZABGHZTBAADEZBAFTICADBJKLTUAUBBAGHZMZUBUCTUAUERCABNOUBU
      DPQS $.

    $( Equality implies 'less than or equal to'.  (Contributed by Alexander van
       der Vekens, 20-Mar-2018.) $)
    eqlei2 $p |- ( B = A -> B <_ A ) $=
      ( cr wcel wceq cle wbr wi eleq1a ax-mp wa eqcom letri3 mpan syl5bb syl6bi
      wb simpr mpcom ) BDEZBAFZBAGHZADEZUBUAICADBJKUAUBABGHZUCLZUCUBABFZUAUFBAM
      UDUAUGUFRCABNOPUEUCSQT $.

    ${
      ltneii.2 $e |- A < B $.
      $( 'Less than' implies not equal.  (Contributed by Mario Carneiro,
         30-Sep-2013.) $)
      gtneii $p |- B =/= A $=
        ( cr wcel clt wbr wne ltne mp2an ) AEFABGHBAICDABJK $.

      $( 'Greater than' implies not equal.  (Contributed by Mario Carneiro,
         16-Sep-2015.) $)
      ltneii $p |- A =/= B $=
        ( gtneii necomi ) BAABCDEF $.
    $}

    lt.2 $e |- B e. RR $.
    $( Consequence of trichotomy.  (Contributed by NM, 19-Jan-1997.) $)
    lttri2i $p |- ( A =/= B <-> ( A < B \/ B < A ) ) $=
      ( cr wcel wne clt wbr wo wb lttri2 mp2an ) AEFBEFABGABHIBAHIJKCDABLM $.

    $( Consequence of trichotomy.  (Contributed by NM, 14-May-1999.) $)
    lttri3i $p |- ( A = B <-> ( -. A < B /\ -. B < A ) ) $=
      ( cr wcel wceq clt wbr wn wa wb lttri3 mp2an ) AEFBEFABGABHIJBAHIJKLCDABM
      N $.

    $( Consequence of trichotomy.  (Contributed by NM, 14-May-1999.) $)
    letri3i $p |- ( A = B <-> ( A <_ B /\ B <_ A ) ) $=
      ( cr wcel wceq cle wbr wa wb letri3 mp2an ) AEFBEFABGABHIBAHIJKCDABLM $.

    $( 'Less than or equal to' in terms of 'less than'.  (Contributed by NM,
       14-May-1999.) $)
    leloei $p |- ( A <_ B <-> ( A < B \/ A = B ) ) $=
      ( cr wcel cle wbr clt wceq wo wb leloe mp2an ) AEFBEFABGHABIHABJKLCDABMN
      $.

    $( 'Less than' expressed in terms of 'less than or equal to'.  (Contributed
       by NM, 27-Oct-1999.) $)
    ltleni $p |- ( A < B <-> ( A <_ B /\ B =/= A ) ) $=
      ( cr wcel clt wbr cle wne wa wb ltlen mp2an ) AEFBEFABGHABIHBAJKLCDABMN
      $.

    $( 'Less than' is not symmetric.  (Contributed by NM, 6-May-1999.) $)
    ltnsymi $p |- ( A < B -> -. B < A ) $=
      ( cr wcel clt wbr wn wi ltnsym mp2an ) AEFBEFABGHBAGHIJCDABKL $.

    $( 'Less than or equal to' in terms of 'less than'.  (Contributed by NM,
       24-May-1999.) $)
    lenlti $p |- ( A <_ B <-> -. B < A ) $=
      ( cr wcel cle wbr clt wn wb lenlt mp2an ) AEFBEFABGHBAIHJKCDABLM $.

    $( 'Less than' in terms of 'less than or equal to'.  (Contributed by NM,
       11-Jul-2005.) $)
    ltnlei $p |- ( A < B <-> -. B <_ A ) $=
      ( cle wbr clt lenlti con2bii ) BAEFABGFBADCHI $.

    $( 'Less than' implies 'less than or equal to'.  (Contributed by NM,
       14-May-1999.) $)
    ltlei $p |- ( A < B -> A <_ B ) $=
      ( cr wcel clt wbr cle wi ltle mp2an ) AEFBEFABGHABIHJCDABKL $.

    ${
      ltlei.1 $e |- A < B $.
      $( 'Less than' implies 'less than or equal to' (inference).  (Contributed
         by NM, 22-Aug-1999.) $)
      ltleii $p |- A <_ B $=
        ( clt wbr cle ltlei ax-mp ) ABFGABHGEABCDIJ $.
    $}

    $( 'Less than' implies not equal.  (Contributed by NM, 28-Jul-1999.) $)
    ltnei $p |- ( A < B -> B =/= A ) $=
      ( cr wcel clt wbr wne ltne mpan ) AEFABGHBAICABJK $.

    $( Trichotomy law for 'less than or equal to'.  (Contributed by NM,
       2-Aug-1999.) $)
    letrii $p |- ( A <_ B \/ B <_ A ) $=
      ( cle wbr wn clt ltnlei ltlei sylbir orri ) ABEFZBAEFZMGBAHFNBADCIBADCJKL
      $.

    ${
      lt.3 $e |- C e. RR $.
      $( 'Less than' is transitive.  Theorem I.17 of [Apostol] p. 20.
         (Contributed by NM, 14-May-1999.) $)
      lttri $p |- ( ( A < B /\ B < C ) -> A < C ) $=
        ( cr wcel clt wbr wa wi lttr mp3an ) AGHBGHCGHABIJBCIJKACIJLDEFABCMN $.

      $( 'Less than or equal to', 'less than' transitive law.  (Contributed by
         NM, 14-May-1999.) $)
      lelttri $p |- ( ( A <_ B /\ B < C ) -> A < C ) $=
        ( cr wcel cle wbr clt wa wi lelttr mp3an ) AGHBGHCGHABIJBCKJLACKJMDEFAB
        CNO $.

      $( 'Less than', 'less than or equal to' transitive law.  (Contributed by
         NM, 14-May-1999.) $)
      ltletri $p |- ( ( A < B /\ B <_ C ) -> A < C ) $=
        ( cr wcel clt wbr cle wa wi ltletr mp3an ) AGHBGHCGHABIJBCKJLACIJMDEFAB
        CNO $.

      $( 'Less than or equal to' is transitive.  (Contributed by NM,
         14-May-1999.) $)
      letri $p |- ( ( A <_ B /\ B <_ C ) -> A <_ C ) $=
        ( cr wcel cle wbr wa wi letr mp3an ) AGHBGHCGHABIJBCIJKACIJLDEFABCMN $.

      $( Extended trichotomy law for 'less than or equal to'.  (Contributed by
         NM, 14-Aug-2000.) $)
      le2tri3i $p |- ( ( A <_ B /\ B <_ C /\ C <_ A ) <->
                      ( A = B /\ B = C /\ C = A ) ) $=
        ( cle wbr w3a wa letri letri3i biimpri sylan2 3impb 3comr eqcomd stoic3
        wceq eqlei 3jca 3anim123i impbii ) ABGHZBCGHZCAGHZIZABSZBCSZCASZIUGUHUI
        UJUDUEUFUHUEUFJUDBAGHZUHBCAEFDKUHUDUKJABDELMNOUEUFUDUIUEUFUDUIUFUDJUECB
        GHZUICABFDEKUIUEULJBCEFLMNOPUDUEACGHZUFUJABCDEFKUMUFJZACACSUNACDFLMQRUA
        UHUDUIUEUJUFABDTBCETCAFTUBUC $.

      $( Addition to both sides of 'less than'.  (Contributed by NM,
         21-Jan-1997.)  (Proof shortened by OpenAI, 25-Mar-2020.) $)
      ltadd2i $p |- ( A < B <-> ( C + A ) < ( C + B ) ) $=
        ( cr wcel clt wbr caddc co wb ltadd2 mp3an ) AGHBGHCGHABIJCAKLCBKLIJMDE
        FABCNO $.
    $}

    $( The product of two positive numbers is positive.  (Contributed by NM,
       16-May-1999.) $)
    mulgt0i $p |- ( ( 0 < A /\ 0 < B ) -> 0 < ( A x. B ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co wi axmulgt0 mp2an ) AEFBEFGAHIGBHIJGABKL
      HIMCDABNO $.

    mulgt0i.3 $e |- 0 < A $.
    mulgt0i.4 $e |- 0 < B $.
    $( The product of two positive numbers is positive.  (Contributed by NM,
       18-May-1999.) $)
    mulgt0ii $p |- 0 < ( A x. B ) $=
      ( cc0 clt wbr cmul co mulgt0i mp2an ) GAHIGBHIGABJKHIEFABCDLM $.
  $}

  ${
    ltd.1 $e |- ( ph -> A e. RR ) $.
    $( 'Less than' is irreflexive.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    ltnrd $p |- ( ph -> -. A < A ) $=
      ( cr wcel clt wbr wn ltnr syl ) ABDEBBFGHCBIJ $.

    ${
      ltned.2 $e |- ( ph -> A < B ) $.
      $( 'Less than' implies not equal.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      gtned $p |- ( ph -> B =/= A ) $=
        ( cr wcel clt wbr wne ltne syl2anc ) ABFGBCHICBJDEBCKL $.

      $( 'Greater than' implies not equal.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      ltned $p |- ( ph -> A =/= B ) $=
        ( gtned necomd ) ACBABCDEFG $.
    $}

    ${
      ne0gt0d.2 $e |- ( ph -> 0 <_ A ) $.
      ne0gt0d.3 $e |- ( ph -> A =/= 0 ) $.
      $( A nonzero nonnegative number is positive.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      ne0gt0d $p |- ( ph -> 0 < A ) $=
        ( cc0 wne clt wbr cr wcel cle wb ne0gt0 syl2anc mpbid ) ABFGZFBHIZEABJK
        FBLIQRMCDBNOP $.
    $}

    ltd.2 $e |- ( ph -> B e. RR ) $.
    $( Ordering on reals satisfies strict trichotomy.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    lttrid $p |- ( ph -> ( A < B <-> -. ( A = B \/ B < A ) ) ) $=
      ( cr wcel clt wbr wceq wo wn wb axlttri syl2anc ) ABFGCFGBCHIBCJCBHIKLMDE
      BCNO $.

    $( Consequence of trichotomy.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    lttri2d $p |- ( ph -> ( A =/= B <-> ( A < B \/ B < A ) ) ) $=
      ( cr wcel wne clt wbr wo wb lttri2 syl2anc ) ABFGCFGBCHBCIJCBIJKLDEBCMN
      $.

    $( Consequence of trichotomy.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    lttri3d $p |- ( ph -> ( A = B <-> ( -. A < B /\ -. B < A ) ) ) $=
      ( cr wcel wceq clt wbr wn wa wb lttri3 syl2anc ) ABFGCFGBCHBCIJKCBIJKLMDE
      BCNO $.

    $( Trichotomy law for 'less than'.  (Contributed by NM, 20-Sep-2007.)
       (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
    lttri4d $p |- ( ph -> ( A < B \/ A = B \/ B < A ) ) $=
      ( cr wcel clt wbr wceq w3o lttri4 syl2anc ) ABFGCFGBCHIBCJCBHIKDEBCLM $.

    $( Consequence of trichotomy.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    letri3d $p |- ( ph -> ( A = B <-> ( A <_ B /\ B <_ A ) ) ) $=
      ( cr wcel wceq cle wbr wa wb letri3 syl2anc ) ABFGCFGBCHBCIJCBIJKLDEBCMN
      $.

    $( 'Less than or equal to' in terms of 'less than'.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    leloed $p |- ( ph -> ( A <_ B <-> ( A < B \/ A = B ) ) ) $=
      ( cr wcel cle wbr clt wceq wo wb leloe syl2anc ) ABFGCFGBCHIBCJIBCKLMDEBC
      NO $.

    $( Equality in terms of 'less than or equal to', 'less than'.  (Contributed
       by NM, 7-Apr-2001.) $)
    eqleltd $p |- ( ph -> ( A = B <-> ( A <_ B /\ -. A < B ) ) ) $=
      ( cr wcel wceq cle wbr clt wn wa wb eqlelt syl2anc ) ABFGCFGBCHBCIJBCKJLM
      NDEBCOP $.

    $( 'Less than' expressed in terms of 'less than or equal to'.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    ltlend $p |- ( ph -> ( A < B <-> ( A <_ B /\ B =/= A ) ) ) $=
      ( cr wcel clt wbr cle wne wa wb ltlen syl2anc ) ABFGCFGBCHIBCJICBKLMDEBCN
      O $.

    $( 'Less than or equal to' in terms of 'less than'.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    lenltd $p |- ( ph -> ( A <_ B <-> -. B < A ) ) $=
      ( cr wcel cle wbr clt wn wb lenlt syl2anc ) ABFGCFGBCHICBJIKLDEBCMN $.

    $( 'Less than' in terms of 'less than or equal to'.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    ltnled $p |- ( ph -> ( A < B <-> -. B <_ A ) ) $=
      ( cr wcel clt wbr cle wn wb ltnle syl2anc ) ABFGCFGBCHICBJIKLDEBCMN $.

    ${
      ltled.1 $e |- ( ph -> A < B ) $.
      $( 'Less than' implies 'less than or equal to'.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      ltled $p |- ( ph -> A <_ B ) $=
        ( clt wbr cle cr wcel wi ltle syl2anc mpd ) ABCGHZBCIHZFABJKCJKPQLDEBCM
        NO $.

      $( 'Less than' implies 'less than or equal to'.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      ltnsymd $p |- ( ph -> -. B < A ) $=
        ( cle wbr clt wn ltled lenltd mpbid ) ABCGHCBIHJABCDEFKABCDELM $.
    $}

    ${
      nltled.1 $e |- ( ph -> -. B < A ) $.
      $( 'Not less than ' implies 'less than or equal to'.  (Contributed by
         Glauco Siliprandi, 11-Dec-2019.) $)
      nltled $p |- ( ph -> A <_ B ) $=
        ( cle wbr clt wn lenltd mpbird ) ABCGHCBIHJFABCDEKL $.
    $}

    ${
      lensymd.3 $e |- ( ph -> A <_ B ) $.
      $( 'Less than or equal to' implies 'not less than'.  (Contributed by
         Glauco Siliprandi, 11-Dec-2019.) $)
      lensymd $p |- ( ph -> -. B < A ) $=
        ( cle wbr clt wn lenltd mpbid ) ABCGHCBIHJFABCDEKL $.
    $}

    $( Trichotomy law for 'less than or equal to'.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    letrid $p |- ( ph -> ( A <_ B \/ B <_ A ) ) $=
      ( cr wcel cle wbr wo letric syl2anc ) ABFGCFGBCHICBHIJDEBCKL $.

    ${
      leltned.3 $e |- ( ph -> A <_ B ) $.
      $( 'Less than or equal to' implies 'less than' is not 'equals'.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      leltned $p |- ( ph -> ( A < B <-> B =/= A ) ) $=
        ( cr wcel cle wbr clt wne wb leltne syl3anc ) ABGHCGHBCIJBCKJCBLMDEFBCN
        O $.

      leneltd.4 $e |- ( ph -> B =/= A ) $.
      $( 'Less than or equal to' and 'not equals' implies 'less than'.
         (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
      leneltd $p |- ( ph -> A < B ) $=
        ( clt wbr wne leltned mpbird ) ABCHICBJGABCDEFKL $.
    $}

    ${
      mulgt0d.3 $e |- ( ph -> 0 < A ) $.
      mulgt0d.4 $e |- ( ph -> 0 < B ) $.
      $( The product of two positive numbers is positive.  (Contributed by
         Mario Carneiro, 27-May-2016.) $)
      mulgt0d $p |- ( ph -> 0 < ( A x. B ) ) $=
        ( cr wcel cc0 clt wbr cmul co mulgt0 syl22anc ) ABHIJBKLCHIJCKLJBCMNKLD
        FEGBCOP $.
    $}

    letrd.3 $e |- ( ph -> C e. RR ) $.
    $( Addition to both sides of 'less than'.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    ltadd2d $p |- ( ph -> ( A < B <-> ( C + A ) < ( C + B ) ) ) $=
      ( cr wcel clt wbr caddc co wb ltadd2 syl3anc ) ABHICHIDHIBCJKDBLMDCLMJKNE
      FGBCDOP $.

    ${
      letrd.4 $e |- ( ph -> A <_ B ) $.
      letrd.5 $e |- ( ph -> B <_ C ) $.
      $( Transitive law deduction for 'less than or equal to'.  (Contributed by
         NM, 20-May-2005.) $)
      letrd $p |- ( ph -> A <_ C ) $=
        ( cle wbr cr wcel wa wi letr syl3anc mp2and ) ABCJKZCDJKZBDJKZHIABLMCLM
        DLMSTNUAOEFGBCDPQR $.
    $}

    ${
      lelttrd.4 $e |- ( ph -> A <_ B ) $.
      lelttrd.5 $e |- ( ph -> B < C ) $.
      $( Transitive law deduction for 'less than or equal to', 'less than'.
         (Contributed by NM, 8-Jan-2006.) $)
      lelttrd $p |- ( ph -> A < C ) $=
        ( cle wbr clt cr wcel wa wi lelttr syl3anc mp2and ) ABCJKZCDLKZBDLKZHIA
        BMNCMNDMNTUAOUBPEFGBCDQRS $.
    $}

    ${
      ltletrd.4 $e |- ( ph -> A < B ) $.
      $( Addition to both sides of 'less than'.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      ltadd2dd $p |- ( ph -> ( C + A ) < ( C + B ) ) $=
        ( clt wbr caddc co ltadd2d mpbid ) ABCIJDBKLDCKLIJHABCDEFGMN $.

      ltletrd.5 $e |- ( ph -> B <_ C ) $.
      $( Transitive law deduction for 'less than', 'less than or equal to'.
         (Contributed by NM, 9-Jan-2006.) $)
      ltletrd $p |- ( ph -> A < C ) $=
        ( clt wbr cle cr wcel wa wi ltletr syl3anc mp2and ) ABCJKZCDLKZBDJKZHIA
        BMNCMNDMNTUAOUBPEFGBCDQRS $.
    $}

    ${
      lttrd.4 $e |- ( ph -> A < B ) $.
      lttrd.5 $e |- ( ph -> B < C ) $.
      $( Transitive law deduction for 'less than'.  (Contributed by NM,
         9-Jan-2006.) $)
      lttrd $p |- ( ph -> A < C ) $=
        ( clt wbr cr wcel wa wi lttr syl3anc mp2and ) ABCJKZCDJKZBDJKZHIABLMCLM
        DLMSTNUAOEFGBCDPQR $.
    $}
  $}

  ${
    lelttrdi.r $e |- ( ph -> ( A e. RR /\ B e. RR /\ C e. RR ) ) $.
    lelttrdi.l $e |- ( ph -> B <_ C ) $.
    $( If a number is less than another number, and the other number is less
       than or equal to a third number, the first number is less than the third
       number.  (Contributed by Alexander van der Vekens, 24-Mar-2018.) $)
    lelttrdi $p |- ( ph -> ( A < B -> A < C ) ) $=
      ( clt wbr wa cr wcel simp1d adantr simp2d simp3d simpr cle ltletrd ex ) A
      BCGHZBDGHATIBCDABJKZTAUACJKZDJKZELMAUBTAUAUBUCENMAUCTAUAUBUCEOMATPACDQHTF
      MRS $.
  $}

  ${
    $d A x y z w $.  $d B x y z w $.
    $( The Dedekind cut theorem.  This theorem, which may be used to replace
       ~ ax-pre-sup with appropriate adjustments, states that, if ` A `
       completely preceeds ` B ` , then there is some number separating the two
       of them.  (Contributed by Scott Fenton, 13-Jun-2013.) $)
    dedekind $p |- ( ( A C_ RR /\ B C_ RR /\ A. x e. A A. y e. B x < y ) ->
       E. z e. RR A. x e. A A. y e. B ( x <_ z /\ z <_ y ) ) $=
      ( vw cr clt wbr wral cle wa wrex wi c0 wn wcel nfv wceq c1 wss cv wne w3a
      nfra1 nf3an nfan simprrl r19.21bi simpl2l sselda simplrl lenltd mpbird ex
      nfra2 simpl3 simp2 simpr com12 adantl ssel2 adantlr adantr simplr syl2anc
      rsp ltnsym an32s ralimdva syl2an breq2 notbid cbvralv sylib ralnex simp2r
      syld mpd simplrr breq1 rexbidv imbi12d rspcv sylc simprll anim12d ralrimd
      mtod expr ralrimi simp2l simp1l wex simp1r n0 sseld ralcom ralbidv rspccv
      expd sylbi 3ad2ant3 jcad eximdv df-rex sylibr syl3anc reximddv 3expib 1re
      axsup rzal anbi12d 2ralbidv rspcev sylancr a1d ralrimivw pm2.61iine 3impa
      ) DGUAZEGUAZAUBZBUBZHIZBEJZADJZYDCUBZKIZYIYEKIZLZBEJZADJZCGMZYBYCLZYHLZYO
      NDEOODOUCZEOUCZLZYPYHYOYTYPYHUDZYIYDHIPZADJZYDYIHIZYDFUBZHIZFDMZNZAGJZLZY
      NCGUUAYIGQZUUJLZLZYMADUUAUULAYTYPYHAYTARYPARYGADUEUFUUKUUJAUUKARUUCUUIAUU
      BADUEUUHAGUEUGUGUGUUMYDDQZYLBEUUAUULBYTYPYHBYTBRYPBRYFABDEUPUFUULBRUGUUNB
      RUUMUUNYEEQZYLUUMUUNYJUUOYKUUMUUNYJUUMUUNLZYJUUBUUMUUBADUUAUUKUUCUUIUHUIU
      UPYDYIUUMDGYDYBYCYTYHUULUJUKUUAUUKUUJUUNULUMUNUOUUAUULUUOYKUUAUULUUOLZLZY
      KYEYIHIZPUURUUSYEUUEHIZFDMZUURUUTPZFDJZUVAPUURYEYDHIZPZADJZUVCUURYHUVFYTY
      PYHUUQUQUUAYPUUOYHUVFNUUQYTYPYHURUULUUOUSZYPUUOLYGUVEADYPUUNUUOYGUVENYPUU
      NLZUUOLZYGYFUVEUUOYGYFNUVHYGUUOYFYFBEVGUTVAUVIYDGQZYEGQZYFUVENUVHUVJUUOYB
      UUNUVJYCDGYDVBVCVDUVHEGYEYBYCUUNVEUKYDYEVHVFVRVIVJVKVSUVEUVBAFDYDUUESUVDU
      UTYDUUEYEHVLVMVNVOUUTFDVPVOUURUVKUUIUUSUVANZUUAYCUUOUVKUUQYTYBYCYHVQZUVGE
      GYEVBVKZUUQUUIUUAUUKUUCUUIUUOVTVAUUHUVLAYEGYDYESZUUDUUSUUGUVAYDYEYIHWAUVO
      UUFUUTFDYDYEUUEHWAWBWCWDWEWIUURYIYEUUAUUKUUJUUOWFUVNUMUNWJWGXAWHWKUUAYBYR
      UUDADJZCGMZUUJCGMYTYBYCYHWLYRYSYPYHWMUUAUUKUVPLZCWNZUVQUUAYIEQZCWNZUVSUUA
      YSUWAYRYSYPYHWOCEWPVOUUAUVTUVRCUUAUVTUUKUVPUUAEGYIUVMWQYHYTUVTUVPNZYPYHYF
      ADJZBEJUWBYFABDEWRUWCUVPBYIEYEYISYFUUDADYEYIYDHVLWSWTXBXCXDXEVSUVPCGXFXGC
      AFDXLXHXIXJDOSZYOYQUWDTGQZYDTKIZTYEKIZLZBEJZADJZYOXKUWIADXMYNUWJCTGYITSZY
      LUWHABDEUWKYJUWFYKUWGYITYDKVLYITYEKWAXNXOXPZXQXREOSZYOYQUWMUWEUWJYOXKUWMU
      WIADUWHBEXMXSUWLXQXRXTYA $.

    $( The Dedekind cut theorem, with the hypothesis weakened to only require
       non-strict less than.  (Contributed by Scott Fenton, 2-Jul-2013.) $)
    dedekindle $p |- ( ( A C_ RR /\ B C_ RR /\ A. x e. A A. y e. B x <_ y ) ->
       E. z e. RR A. x e. A A. y e. B ( x <_ z /\ z <_ y ) ) $=
      ( vw cr wss cv cle wbr wral wa wi c0 wcel syl2an weq ssel2 nfv w3a simpr1
      wrex cin wceq clt simpr2 wne wn simp1 simpl disjel eleq1 biimpcd necon3bd
      ad2antll mpd simp2 simp3 simpr ltlend biimprd mpan2d ralimdvva 3exp 3imp2
      dedekind syl3anc ex wex n0 inss1 sseli nfra1 nf3an nfan nfra2 inss2 breq2
      rsp rspccv syl5 syl6 com23 imp32 3ad2antl3 breq1 ralbidv rspccva r19.21bi
      adantr jca ralrimi expr anbi12d 2ralbidv rspcev syl2anc exlimiv pm2.61ine
      expcom sylbi ) DGHZEGHZAIZBIZJKZBELZADLZUAZXECIZJKZXKXFJKZMZBELADLZCGUCZN
      ZDEUDZOXROUEZXJXPXSXJMXCXDXEXFUFKZBELADLZXPXSXCXDXIUBXSXCXDXIUGXSXCXDXIYA
      XSXCXDXIYANXSXCXDUAZXGXTABDEYBXEDPZXFEPZMZMZXGXFXEUHZXTYFXEEPZUIZYGYBXSYC
      YIYEXSXCXDUJYCYDUKZDEXEULQYDYIYGNYBYCYDYHXFXEBARYDYHXFXEEUMUNUOUPUQYFXTXG
      YGMYFXEXFYBXCYCXEGPYEXSXCXDURYJDGXESQYBXDYDXFGPYEXSXCXDUSYCYDUTEGXFSQVAVB
      VCVDVEVFABCDEVGVHVIXROUHFIZXRPZFVJXQFXRVKYLXQFXJYLXPXJYLMZYKGPZXEYKJKZYKX
      FJKZMZBELZADLZXPXJXCYKDPZYNYLXCXDXIUJXRDYKDEVLVMZDGYKSQYMYRADXJYLAXCXDXIA
      XCATXDATXHADVNVOYLATVPXJYLYCYRXJYLYCMZMZYQBEXJUUBBXCXDXIBXCBTXDBTXGABDEVQ
      VOUUBBTVPUUCYDYQUUCYDMYOYPUUCYOYDXIXCUUBYOXDXIYLYCYOXIYCYLYOXIYCXHYLYONXH
      ADVTYLYKEPXHYOXREYKDEVRVMXGYOBYKEXFYKXEJVSWAWBWCWDWEWFWKUUCYPBEXJXIYTYPBE
      LZUUBXCXDXIUSYLYTYCUUAWKXHUUDAYKDAFRXGYPBEXEYKXFJWGWHWIQWJWLVIWMWNWMXOYSC
      YKGCFRZXNYQABDEUUEXLYOXMYPXKYKXEJVSXKYKXFJWGWOWPWQWRXAWSXBWT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Initial properties of the complex numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Commutative/associative law for multiplication.  (Contributed by NM,
     30-Apr-2005.) $)
  mul12 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( A x. ( B x. C ) ) = ( B x. ( A x. C ) ) ) $=
    ( cc wcel w3a cmul co wceq wa mulcom oveq1d 3adant3 mulass 3com12 3eqtr3d )
    ADEZBDEZCDEZFABGHZCGHZBAGHZCGHZABCGHGHBACGHGHZQRUAUCISQRJTUBCGABKLMABCNRQSU
    CUDIBACNOP $.

  $( Commutative/associative law.  (Contributed by NM, 8-Oct-1999.) $)
  mul32 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A x. B ) x. C ) = ( ( A x. C ) x. B ) ) $=
    ( cc wcel w3a cmul co wceq wa mulcom oveq2d 3adant1 mulass 3com23 3eqtr4d )
    ADEZBDEZCDEZFABCGHZGHZACBGHZGHZABGHCGHACGHBGHZRSUAUCIQRSJTUBAGBCKLMABCNQSRU
    DUCIACBNOP $.

  $( Commutative/associative law.  (Contributed by Scott Fenton,
     3-Jan-2013.) $)
  mul31 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A x. B ) x. C ) = ( ( C x. B ) x. A ) ) $=
    ( cc wcel cmul co wceq wa mulcom oveq2d 3adant1 mulass mulcl ancoms mulcomd
    w3a simp1 3eqtr4d ) ADEZBDEZCDEZQZABCFGZFGZACBFGZFGZABFGCFGUFAFGUAUBUEUGHTU
    AUBIUDUFAFBCJKLABCMUCUFAUAUBUFDEZTUBUAUHCBNOLTUAUBRPS $.

  $( Rearrangement of 4 factors.  (Contributed by NM, 8-Oct-1999.) $)
  mul4 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
              ( ( A x. B ) x. ( C x. D ) ) =
                 ( ( A x. C ) x. ( B x. D ) ) ) $=
    ( cc wcel wa cmul co wceq w3a mul32 oveq1d 3expa adantrr mulcl mulass 3expb
    sylan an4s 3eqtr3d ) AEFZBEFZGZCEFZDEFZGZGABHIZCHIZDHIZACHIZBHIZDHIZUHCDHIH
    IZUKBDHIHIZUDUEUJUMJZUFUBUCUEUPUBUCUEKUIULDHABCLMNOUDUHEFZUGUJUNJZABPUQUEUF
    URUHCDQRSUBUEUCUFUMUOJZUBUEGUKEFZUCUFGUSACPUTUCUFUSUKBDQRSTUA $.

  $( A simple product of sums expansion.  (Contributed by NM, 21-Feb-2005.) $)
  muladd11 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( 1 + A ) x. ( 1 + B ) ) =
                 ( ( 1 + A ) + ( B + ( A x. B ) ) ) ) $=
    ( cc wcel wa c1 caddc cmul wceq ax-1cn addcl mpan adddi mp3an2 sylan adantr
    co mulid1d adddir eqtrd mp3an1 mulid2 adantl oveq1d oveq12d ) ACDZBCDZEZFAG
    QZFBGQHQZUIFHQZUIBHQZGQZUIBABHQZGQZGQUFUICDZUGUJUMIZFCDZUFUPJFAKLZUPURUGUQJ
    UIFBMNOUHUKUIULUOGUFUKUIIUGUFUIUSRPUHULFBHQZUNGQZUOURUFUGULVAIJFABSUAUHUTBU
    NGUGUTBIUFBUBUCUDTUET $.

  $( Two times a number.  (Contributed by NM, 18-May-1999.)  (Revised by Mario
     Carneiro, 27-May-2016.) $)
  1p1times $p |- ( A e. CC -> ( ( 1 + 1 ) x. A ) = ( A + A ) ) $=
    ( cc wcel c1 caddc co 1cnd id cmul mulid2 oveq12d joinlmuladdmuld ) ABCZDAD
    AAEFMGZMHNMDAIFZAOAEAJZPKL $.

  $( A theorem for complex numbers analogous the second Peano postulate
     ~ peano2nn .  (Contributed by NM, 17-Aug-2005.) $)
  peano2cn $p |- ( A e. CC -> ( A + 1 ) e. CC ) $=
    ( cc wcel c1 caddc co ax-1cn addcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( A theorem for reals analogous the second Peano postulate ~ peano2nn .
     (Contributed by NM, 5-Jul-2005.) $)
  peano2re $p |- ( A e. RR -> ( A + 1 ) e. RR ) $=
    ( cr wcel c1 caddc co 1re readdcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( Cancellation law for addition over the reals.  (Contributed by Scott
     Fenton, 3-Jan-2013.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  readdcan $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( C + A ) = ( C + B ) <-> A = B ) ) $=
    ( cr wcel w3a clt wbr wn wa caddc co wceq ltadd2 notbid simp2 simp1 lttri3d
    simp3 readdcld ltadd2d anbi12d 3bitr4rd ) ADEZBDEZCDEZFZABGHZIZBAGHZIZJCAKL
    ZCBKLZGHZIZUMULGHZIZJABMULUMMUGUIUOUKUQUGUHUNABCNOUGUJUPUGBACUDUEUFPZUDUEUF
    QZUDUEUFSZUAOUBUGABUSURRUGULUMUGCAUTUSTUGCBUTURTRUC $.

  ${
    $d c y $.
    $( ` 0 ` is its own additive identity.  (Contributed by Scott Fenton,
       3-Jan-2013.) $)
    00id $p |- ( 0 + 0 ) = 0 $=
      ( vc vy cc0 cr wcel cv caddc co wceq 0re wa cmul c1 cc 0cn syl2anc eqtr3d
      recnd oveq1d remulcl wrex ax-rnegex oveq2 eqeq1d biimpd adantld ax-rrecex
      wi wne adantlr simplll simprl mulass mp3an3 oveq1 mulid2i syl6eq ad2antll
      simpllr mpan2 ad2antrl adddir mp3an1 sylancr addass eqtr2d sylan2 readdcl
      sylancl readdcan mp3an2 mpbid rexlimddv expcom pm2.61ine rexlimiva mp2b
      wb ) CDEZCAFZGHZCIZADUACCGHZCIZJACUBWBWDADVTDEZWBKZWDUHVTCVTCIZWBWDWEWGWB
      WDWGWAWCCVTCCGUCUDUEUFWFVTCUIZWDWFWHKZVTBFZLHZMIZWDBDWEWHWLBDUAWBBVTUGUJW
      IWJDEZWLKZKZVTWJCLHZLHZCGHZWCCWOWQCCGWOWKCLHZWQCWOVTNEZWJNEZWSWQIZWOVTWEW
      BWHWNUKZRZWOWJWIWMWLULZRWTXACNEZXBOVTWJCUMUNPWLWSCIWIWMWLWSMCLHCWKMCLUOCO
      UPUQURQSWOCWPLHZWRGHZXGCGHZIZWRCIZWOXIXGWQGHZCGHZXHWOXGXLCGWOWAWPLHZXGXLW
      OWACWPLWEWBWHWNUSSWOWTWPNEZXNXLIZXDWOWPWMWPDEZWIWLWMVSXQJWJCTUTZVAZRXFWTX
      OXPOCVTWPVBVCPQSWOXGNEZWQNEZXMXHIZWOXGWMXGDEZWIWLWMVSXQYCJXRCWPTVDVAZRWOW
      QWOWEXQWQDEZXCXSVTWPTZPRXTYAXFYBOXGWQCVEUNPVFWOWRDEZYCXJXKVRZWOWEWMYGXCXE
      WEWMKYEVSYGWMWEXQYEXRYFVGJWQCVHVIPYDYGVSYCYHJWRCXGVJVKPVLQVMVNVOVPVQ $.
  $}

  ${
    $d A y $.  $d B y $.
    $( Lemma for ~ mul02 .  If any real does not produce ` 0 ` when multiplied
       by ` 0 ` , then any complex is equal to double itself.  (Contributed by
       Scott Fenton, 3-Jan-2013.) $)
    mul02lem1 $p |- ( ( ( A e. RR /\ ( 0 x. A ) =/= 0 ) /\ B e. CC ) ->
                       B = ( B + B ) ) $=
      ( vy cr wcel cc0 cmul co wne wa cc c1 wceq caddc recnd mulcld 0cn syl2anc
      mp3an3 eqtrd cv wrex 0re remulcl mpan ax-rrecex adantr 00id oveq2i eqcomi
      sylan simprl simplll simplr mul32 mul31 simprr oveq1d mulid2 ad2antlr syl
      adddi mp3an23 oveq12d 3eqtr3a rexlimddv ) ADEZFAGHZFIZJZBKEZJZVHCUAZGHZLM
      ZBBBNHZMCDVJVOCDUBZVKVGVHDEZVIVQFDEVGVRUCFAUDUECVHUFUKUGVLVMDEZVOJZJZVMAG
      HZBGHZFGHZWCFFNHZGHZBVPWFWDWEFWCGUHUIUJWAWDWBFGHZBGHZBWAWBKEZVKWDWHMZWAVM
      AWAVMVLVSVOULOZWAAVGVIVKVTUMOZPZVJVKVTUNZWIVKFKEZWJQWBBFUOSRWAWHLBGHZBWAW
      GLBGWAWGVNLWAVMKEZAKEZWGVNMZWKWLWQWRWOWSQVMAFUPSRVLVSVOUQTURVKWPBMVJVTBUS
      UTTTZWAWFWDWDNHZVPWAWCKEZWFXAMZWAWBBWMWNPXBWOWOXCQQWCFFVBVCVAWAWDBWDBNWTW
      TVDTVEVF $.
  $}

  $( Lemma for ~ mul02 .  Zero times a real is zero.  (Contributed by Scott
     Fenton, 3-Jan-2013.) $)
  mul02lem2 $p |- ( A e. RR -> ( 0 x. A ) = 0 ) $=
    ( cr wcel c1 cc0 cmul co wceq ax-1ne0 wa caddc ci cc ax-1cn mul02lem1 mpan2
    wne ax-icn ax-i2m1 0re eqcomd oveq2d mulcli addassi oveq1i eqtr3i eqtr4i wb
    00id 3eqtr3g 1re readdcan mp3an sylib ex necon1d mpi ) ABCZDEQEAFGZEHIURUSE
    DEURUSEQZDEHZURUTJZEDKGZEEKGZHZVAVBLLFGZDDKGZKGZVFDKGZVCVDVBVGDVFKVBDVGVBDM
    CDVGHNADOPUAUBVIDKGVHVCVFDDLLRRUCNNUDVIEDKSUEUFVIEVDSUIUGUJDBCEBCZVJVEVAUHU
    KTTDEEULUMUNUOUPUQ $.

  ${
    $d A x y $.
    $( Multiplication by ` 0 ` .  Theorem I.6 of [Apostol] p. 18.  Based on
       ideas by Eric Schmidt.  (Contributed by NM, 10-Aug-1999.)  (Revised by
       Scott Fenton, 3-Jan-2013.) $)
    mul02 $p |- ( A e. CC -> ( 0 x. A ) = 0 ) $=
      ( vx vy cc wcel cv ci cmul co caddc wceq cr wrex cc0 cnre recn ax-icn 0cn
      mul02lem2 ax-mp wa mulcl sylancr adddi mp3an1 syl2an mul12 mp3an12 oveq2d
      syl eqtrd oveqan12d oveq2 eqeq1d syl5ibrcom rexlimivv 0re eqtr3i syl6eq )
      ADEABFZGCFZHIZJIZKZCLMBLMNAHIZNKZBCAOVDVFBCLLUTLEZVALEZUAZVFVDNVCHIZNKVIV
      JNGNHIZJIZNVIVJNUTHIZNVBHIZJIZVLVGUTDEZVBDEZVJVOKZVHUTPVHGDEZVADEZVQQVAPZ
      GVAUBUCNDEZVPVQVRRNUTVBUDUEUFVGVHVMNVNVKJUTSVHVNGNVAHIZHIZVKVHVTVNWDKZWAW
      BVSVTWERQNGVAUGUHUJVHWCNGHVASUIUKULUKZNNHIZVLNNVCKZCLMBLMZWGVLKZWBWIRBCNO
      TWHWJBCLLVIWJWHVJVLKWFWHWGVJVLNVCNHUMUNUOUPTNLEWGNKUQNSTURUSVDVEVJNAVCNHU
      MUNUOUPUJ $.
  $}

  $( Multiplication by ` 0 ` .  Theorem I.6 of [Apostol] p. 18.  (Contributed
     by NM, 15-May-1999.)  (Revised by Scott Fenton, 3-Jan-2013.) $)
  mul01 $p |- ( A e. CC -> ( A x. 0 ) = 0 ) $=
    ( cc wcel cc0 cmul co wceq 0cn mulcom mpan2 mul02 eqtrd ) ABCZADEFZDAEFZDMD
    BCNOGHADIJAKL $.

  ${
    $d A c x $.
    $( ` 0 ` is an additive identity.  This used to be one of our complex
       number axioms, until it was found to be dependent on the others.  Based
       on ideas by Eric Schmidt.  (Contributed by Scott Fenton, 3-Jan-2013.)
       (Proof shortened by Mario Carneiro, 27-May-2016.) $)
    addid1 $p |- ( A e. CC -> ( A + 0 ) = A ) $=
      ( vc vx c1 cr wcel caddc co cc0 wceq cc 1re wa ci ax-1cn mul01 eqtr3i 0re
      cmul a1i cv wrex ax-rnegex wne ax-1ne0 oveq2 eqeq1d biimpcd ax-icn mulcli
      wi 0cn adddii mulid1i ax-mp ax-i2m1 eqtr4i oveq12i eqeq12i addassi oveq2i
      eqtri oveq1i 00id eqcomi wb readdcan mp3an 3bitri sylib necon3d ax-rrecex
      syl6 mpi sylan2 simpr simplrl recnd mulcld simplll adddid addassd simpllr
      oveq1d eqtr3d 3eqtr4a readdcld syl3anc mpbid oveq2d mul31 simplrr mulid2d
      3eqtrd syl oveq12d 3eqtr3d exp42 rexlimdv mpd rexlimiva mp2b ) DEFZDBUAZG
      HZIJZBEUBAKFZAIGHZAJZUKZLBDUCXFXJBEXDEFZXFMZXDCUAZSHZDJZCEUBZXJXFXKXDIUDZ
      XPXFDIUDXQUEXFXDIDIXFXDIJZDIGHZIJZDIJZXRXFXTXRXEXSIXDIDGUFUGUHXTNNSHZYBSH
      ZXSSHZYCISHZJZYAXSIYCSUFYFYCYBDGHZGHZIJIDGHZIIGHZJZYAYDYHYEIYDYCDSHZYEGHY
      HYCDIYBYBNNUIUIUJZYMUJZOULUMYLYCYEYGGYCYNUNYEIYGYCKFYEIJYNYCPUOZUPUQURVBY
      OUSYHYIIYJYCYBGHZDGHYHYIYCYBDYNYMOUTYPIDGYCYBDSHZGHZYPIYQYBYCGYBYMUNVAYBY
      GSHZYRIYBYBDYMYMOUMYSYBISHZIYGIYBSUPVAYBKFYTIJYMYBPUOVBQQVCQYJIVDVEUSXCIE
      FZUUAYKYAVFLRRDIIVGVHVIVJVMVKVNCXDVLVOXLXOXJCEXLXMEFZXOXGXIXLUUBXOMZMZXGM
      ZAXMSHZXDSHZUUFISHZGHZUUGXHAUUEUUFXDIGHZSHUUIUUGUUEUUFXDIUUEAXMUUDXGVPZUU
      EXMXLUUBXOXGVQVRZVSZUUEXDXKXFUUCXGVTZVRZIKFUUEULTZWAUUEUUJXDUUFSUUEDUUJGH
      ZXEJZUUJXDJZUUEYJIUUQXEVDUUEXEIGHUUQYJUUEDXDIDKFUUEOTUUOUUPWBUUEXEIIGXKXF
      UUCXGWCZWDWEUUTWFUUEUUJEFXKXCUURUUSVFUUEXDIUUNUUAUUERTWGUUNXCUUELTUUJXDDV
      GWHWIWJWEUUEUUGAUUHIGUUEUUGXNASHZDASHAUUEXGXMKFXDKFUUGUVAJUUKUULUUOAXMXDW
      KWHUUEXNDASXLUUBXOXGWLWDUUEAUUKWMWNZUUEUUFKFUUHIJUUMUUFPWOWPUVBWQWRWSWTXA
      XB $.
  $}

  ${
    $d A x a b c d $.
    $( Existence of the negative of a complex number.  (Contributed by Eric
       Schmidt, 21-May-2007.)  (Revised by Scott Fenton, 3-Jan-2013.)  (Proof
       shortened by Mario Carneiro, 27-May-2016.) $)
    cnegex $p |- ( A e. CC -> E. x e. CC ( A + x ) = 0 ) $=
      ( va vb vc vd cc wcel cv ci cmul co caddc wceq cr wrex cc0 recnd eqtr3d
      wa cnre ax-rnegex anim12i reeanv sylibr ax-icn a1i simplrr mulcld simplrl
      addcld simplll simpllr adddid simprr oveq2d mul01 ax-mp syl6eq addid1 syl
      addassd 3eqtrd oveq1d simprl oveq2 eqeq1d rspcev syl2anc rexlimdvva oveq1
      ex mpd rexbidv syl5ibrcom rexlimivv ) BGHBCIZJDIZKLZMLZNZDOPCOPBAIZMLZQNZ
      AGPZCDBUAWAWECDOOVQOHZVROHZTZWEWAVTWBMLZQNZAGPZWHVQEIZMLZQNZVRFIZMLZQNZTZ
      FOPEOPZWKWHWNEOPZWQFOPZTWSWFWTWGXAEVQUBFVRUBUCWNWQEFOOUDUEWHWRWKEFOOWHWLO
      HZWOOHZTZTZWRWKXEWRTZJWOKLZWLMLZGHVTXHMLZQNZWKXFXGWLXFJWOJGHZXFUFUGZXFWOW
      HXBXCWRUHRZUIZXFWLWHXBXCWRUJRZUKXFWMXIQXFVTXGMLZWLMLWMXIXFXPVQWLMXFXPVQVS
      XGMLZMLVQQMLZVQXFVQVSXGXFVQWFWGXDWRULRZXFJVRXLXFVRWFWGXDWRUMRZUIZXNVBXFXQ
      QVQMXFJWPKLZXQQXFJVRWOXLXTXMUNXFYBJQKLZQXFWPQJKXEWNWQUOUPXKYCQNUFJUQURUSS
      UPXFVQGHXRVQNXSVQUTVAVCVDXFVTXGWLXFVQVSXSYAUKXNXOVBSXEWNWQVESWJXJAXHGWBXH
      NWIXIQWBXHVTMVFVGVHVIVLVJVMWAWDWJAGWAWCWIQBVTWBMVKVGVNVOVPVA $.
  $}

  ${
    $d A x $.
    $( Existence of a left inverse for addition.  (Contributed by Scott Fenton,
       3-Jan-2013.) $)
    cnegex2 $p |- ( A e. CC -> E. x e. CC ( x + A ) = 0 ) $=
      ( cc wcel ci cmul co caddc cc0 wceq cv wrex ax-icn mulcli mulcl c1 mulid2
      mpan oveq2d ax-i2m1 oveq1i ax-1cn adddir mul02 eqtr3d oveq1 eqeq1d rspcev
      mp3an12 3eqtr3a syl2anc ) BCDZEEFGZBFGZCDZUNBHGZIJZAKZBHGZIJZACLUMCDZULUO
      EEMMNZUMBORULUNPBFGZHGZUPIULVCBUNHBQSULUMPHGZBFGZIBFGVDIVEIBFTUAVAPCDULVF
      VDJVBUBUMPBUCUIBUDUJUEUTUQAUNCURUNJUSUPIURUNBHUFUGUHUK $.
  $}

  ${
    $d x y A $.  $d x B $.  $d x C $.
    $( ` 0 ` is a left identity for addition.  This used to be one of our
       complex number axioms, until it was discovered that it was dependent on
       the others.  Based on ideas by Eric Schmidt.  (Contributed by Scott
       Fenton, 3-Jan-2013.) $)
    addid2 $p |- ( A e. CC -> ( 0 + A ) = A ) $=
      ( vx vy cc wcel cv caddc co cc0 wceq cnegex wrex ad2antrl w3a 0cn mp3an12
      wa addass oveq2d 3eqtr3rd adantr 3ad2ant3 00id oveq1i simp1 simp2l simp3l
      addassd simp2r oveq1d simp3r addid1 3ad2ant1 eqtr3d syl5eq expd rexlimddv
      3expia rexlimdv mpd ) ADEZABFZGHZIJZIAGHZAJZBDBAKVAVBDEZVDQZQZVBCFZGHZIJZ
      CDLZVFVGVMVAVDCVBKMVIVLVFCDVIVJDEZVLVFVAVHVNVLQZVFVAVHVONZIIGHZVJGHZIIVJG
      HZGHZAVEVOVAVRVTJZVHVNWAVLIDEZWBVNWAOOIIVJRPUAUBVPVRVSAVQIVJGUCUDVPAIGHZV
      SAVPVCVJGHAVKGHVSWCVPAVBVJVAVHVOUEVAVGVDVOUFVAVHVNVLUGUHVPVCIVJGVAVGVDVOU
      IUJVPVKIAGVAVHVNVLUKSTVAVHWCAJVOAULUMUNZUOVPVSAIGWDSTURUPUSUTUQ $.

    $( Cancellation law for addition.  Theorem I.1 of [Apostol] p. 18.
       (Contributed by NM, 22-Nov-1994.)  (Proof shortened by Mario Carneiro,
       27-May-2016.) $)
    addcan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                   ( ( A + B ) = ( A + C ) <-> B = C ) ) $=
      ( vx cc wcel w3a cv caddc co cc0 wceq wb wa oveq1d addassd addid2 3eqtr3d
      oveq2 syl wrex cnegex2 3ad2ant1 simprr simprl simpl1 simpl2 simpl3 syl5ib
      eqeq12d impbid1 rexlimddv ) AEFZBEFZCEFZGZDHZAIJZKLZABIJZACIJZLZBCLZMDEUM
      UNUSDEUAUODAUBUCUPUQEFZUSNZNZVBVCVBUQUTIJZUQVAIJZLVFVCUTVAUQISVFVGBVHCVFU
      RBIJKBIJZVGBVFURKBIUPVDUSUDZOVFUQABUPVDUSUEZUMUNUOVEUFZUMUNUOVEUGZPVFUNVI
      BLVMBQTRVFURCIJKCIJZVHCVFURKCIVJOVFUQACVKVLUMUNUOVEUHZPVFUOVNCLVOCQTRUJUI
      BCAISUKUL $.

    $( Cancellation law for addition.  (Contributed by NM, 30-Jul-2004.)
       (Revised by Scott Fenton, 3-Jan-2013.) $)
    addcan2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                    ( ( A + C ) = ( B + C ) <-> A = B ) ) $=
      ( vx cc wcel w3a cv caddc co cc0 wb wa oveq1 addassd oveq2d addid1 3eqtrd
      wceq syl wrex cnegex 3ad2ant3 simpl1 simpl3 simprl simprr eqeq12d impbid1
      simpl2 syl5ib rexlimddv ) AEFZBEFZCEFZGZCDHZIJZKSZACIJZBCIJZSZABSZLDEUOUM
      USDEUAUNDCUBUCUPUQEFZUSMZMZVBVCVBUTUQIJZVAUQIJZSVFVCUTVAUQINVFVGAVHBVFVGA
      URIJAKIJZAVFACUQUMUNUOVEUDZUMUNUOVEUEZUPVDUSUFZOVFURKAIUPVDUSUGZPVFUMVIAS
      VJAQTRVFVHBURIJBKIJZBVFBCUQUMUNUOVEUJZVKVLOVFURKBIVMPVFUNVNBSVOBQTRUHUKAB
      CINUIUL $.
  $}

  $( Addition commutes.  This used to be one of our complex number axioms,
     until it was found to be dependent on the others.  Based on ideas by Eric
     Schmidt.  (Contributed by Scott Fenton, 3-Jan-2013.) $)
  addcom $p |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) = ( B + A ) ) $=
    ( cc wcel wa caddc co wceq c1 cmul 1cnd addcld simpl simpr 1p1times addassd
    adddid wb syl3anc mpbid oveqan12d 3eqtr3rd 3eqtr4d addcan2 3eqtr3d addcan
    syl ) ACDZBCDZEZAABFGZFGZABAFGZFGZHZUKUMHZUJAAFGZBFGZUKAFGZULUNUJURBFGZUSBF
    GZHZURUSHZUJUQBBFGZFGZUKUKFGZUTVAUJIIFGZUKJGZVGAJGZVGBJGZFGVFVEUJVGABUJIIUJ
    KZVKLUHUIMZUHUINZQUJUKCDZVHVFHUJABVLVMLZUKOUGUHUIVIUQVJVDFAOBOUAUBUJUQBBUJA
    AVLVLLZVMVMPUJUKABVOVLVMPUCUJURCDUSCDUIVBVCRUJUQBVPVMLUJUKAVOVLLVMURUSBUDST
    UJAABVLVLVMPUJABAVLVMVLPUEUJUHVNUMCDUOUPRVLVOUJBAVMVLLAUKUMUFST $.

  ${
    mul.1 $e |- A e. CC $.
    $( ` 0 ` is an additive identity.  (Contributed by NM, 23-Nov-1994.)
       (Revised by Scott Fenton, 3-Jan-2013.) $)
    addid1i $p |- ( A + 0 ) = A $=
      ( cc wcel cc0 caddc co wceq addid1 ax-mp ) ACDAEFGAHBAIJ $.

    $( ` 0 ` is a left identity for addition.  (Contributed by NM,
       3-Jan-2013.) $)
    addid2i $p |- ( 0 + A ) = A $=
      ( cc wcel cc0 caddc co wceq addid2 ax-mp ) ACDEAFGAHBAIJ $.

    $( Multiplication by 0.  Theorem I.6 of [Apostol] p. 18.  (Contributed by
       NM, 23-Nov-1994.) $)
    mul02i $p |- ( 0 x. A ) = 0 $=
      ( cc wcel cc0 cmul co wceq mul02 ax-mp ) ACDEAFGEHBAIJ $.

    $( Multiplication by ` 0 ` .  Theorem I.6 of [Apostol] p. 18.  (Contributed
       by NM, 23-Nov-1994.)  (Revised by Scott Fenton, 3-Jan-2013.) $)
    mul01i $p |- ( A x. 0 ) = 0 $=
      ( cc wcel cc0 cmul co wceq mul01 ax-mp ) ACDAEFGEHBAIJ $.

    mul.2 $e |- B e. CC $.
    $( Addition commutes.  Based on ideas by Eric Schmidt.  (Contributed by
       Scott Fenton, 3-Jan-2013.) $)
    addcomi $p |- ( A + B ) = ( B + A ) $=
      ( cc wcel caddc co wceq addcom mp2an ) AEFBEFABGHBAGHICDABJK $.

    ${
      addcomli.2 $e |- ( A + B ) = C $.
      $( Addition commutes.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
      addcomli $p |- ( B + A ) = C $=
        ( caddc co addcomi eqtri ) BAGHABGHCBAEDIFJ $.
    $}

    mul.3 $e |- C e. CC $.
    $( Cancellation law for addition.  Theorem I.1 of [Apostol] p. 18.
       (Contributed by NM, 27-Oct-1999.)  (Revised by Scott Fenton,
       3-Jan-2013.) $)
    addcani $p |- ( ( A + B ) = ( A + C ) <-> B = C ) $=
      ( cc wcel caddc co wceq wb addcan mp3an ) AGHBGHCGHABIJACIJKBCKLDEFABCMN
      $.

    $( Cancellation law for addition.  Theorem I.1 of [Apostol] p. 18.
       (Contributed by NM, 14-May-2003.)  (Revised by Scott Fenton,
       3-Jan-2013.) $)
    addcan2i $p |- ( ( A + C ) = ( B + C ) <-> A = B ) $=
      ( cc wcel caddc co wceq wb addcan2 mp3an ) AGHBGHCGHACIJBCIJKABKLDEFABCMN
      $.

    $( Commutative/associative law that swaps the first two factors in a triple
       product.  (Contributed by NM, 11-May-1999.)  (Proof shortened by Andrew
       Salmon, 19-Nov-2011.) $)
    mul12i $p |- ( A x. ( B x. C ) ) = ( B x. ( A x. C ) ) $=
      ( cc wcel cmul co wceq mul12 mp3an ) AGHBGHCGHABCIJIJBACIJIJKDEFABCLM $.

    $( Commutative/associative law that swaps the last two factors in a triple
       product.  (Contributed by NM, 11-May-1999.) $)
    mul32i $p |- ( ( A x. B ) x. C ) = ( ( A x. C ) x. B ) $=
      ( cc wcel cmul co wceq mul32 mp3an ) AGHBGHCGHABIJCIJACIJBIJKDEFABCLM $.

    mul4.4 $e |- D e. CC $.
    $( Rearrangement of 4 factors.  (Contributed by NM, 16-Feb-1995.) $)
    mul4i $p |- ( ( A x. B ) x. ( C x. D ) ) =
               ( ( A x. C ) x. ( B x. D ) ) $=
      ( cc wcel cmul co wceq mul4 mp4an ) AIJBIJCIJDIJABKLCDKLKLACKLBDKLKLMEFGH
      ABCDNO $.
  $}

  ${
    muld.1 $e |- ( ph -> A e. CC ) $.
    $( Multiplication by 0.  Theorem I.6 of [Apostol] p. 18.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    mul02d $p |- ( ph -> ( 0 x. A ) = 0 ) $=
      ( cc wcel cc0 cmul co wceq mul02 syl ) ABDEFBGHFICBJK $.

    $( Multiplication by ` 0 ` .  Theorem I.6 of [Apostol] p. 18.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    mul01d $p |- ( ph -> ( A x. 0 ) = 0 ) $=
      ( cc wcel cc0 cmul co wceq mul01 syl ) ABDEBFGHFICBJK $.

    $( ` 0 ` is an additive identity.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    addid1d $p |- ( ph -> ( A + 0 ) = A ) $=
      ( cc wcel cc0 caddc co wceq addid1 syl ) ABDEBFGHBICBJK $.

    $( ` 0 ` is a left identity for addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    addid2d $p |- ( ph -> ( 0 + A ) = A ) $=
      ( cc wcel cc0 caddc co wceq addid2 syl ) ABDEFBGHBICBJK $.

    addcomd.2 $e |- ( ph -> B e. CC ) $.
    $( Addition commutes.  Based on ideas by Eric Schmidt.  (Contributed by
       Scott Fenton, 3-Jan-2013.)  (Revised by Mario Carneiro, 27-May-2016.) $)
    addcomd $p |- ( ph -> ( A + B ) = ( B + A ) ) $=
      ( caddc co wceq c1 cmul 1cnd addcld cc wcel 1p1times syl addassd wb mpbid
      syl3anc adddid oveq12d 3eqtr3rd 3eqtr4d addcan2 3eqtr3d addcan ) ABBCFGZF
      GZBCBFGZFGZHZUHUJHZABBFGZCFGZUHBFGZUIUKAUOCFGZUPCFGZHZUOUPHZAUNCCFGZFGZUH
      UHFGZUQURAIIFGZUHJGZVDBJGZVDCJGZFGVCVBAVDBCAIIAKZVHLDEUAAUHMNZVEVCHABCDEL
      ZUHOPAVFUNVGVAFABMNZVFUNHDBOPACMNZVGVAHECOPUBUCAUNCCABBDDLZEEQAUHBCVJDEQU
      DAUOMNUPMNVLUSUTRAUNCVMELAUHBVJDLEUOUPCUETSABBCDDEQABCBDEDQUFAVKVIUJMNULU
      MRDVJACBEDLBUHUJUGTS $.

    addcand.3 $e |- ( ph -> C e. CC ) $.
    $( Cancellation law for addition.  Theorem I.1 of [Apostol] p. 18.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    addcand $p |- ( ph -> ( ( A + B ) = ( A + C ) <-> B = C ) ) $=
      ( cc wcel caddc co wceq wb addcan syl3anc ) ABHICHIDHIBCJKBDJKLCDLMEFGBCD
      NO $.

    $( Cancellation law for addition.  Theorem I.1 of [Apostol] p. 18.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    addcan2d $p |- ( ph -> ( ( A + C ) = ( B + C ) <-> A = B ) ) $=
      ( cc wcel caddc co wceq wb addcan2 syl3anc ) ABHICHIDHIBDJKCDJKLBCLMEFGBC
      DNO $.

    ${
      addcanad.4 $e |- ( ph -> ( A + B ) = ( A + C ) ) $.
      $( Cancelling a term on the left-hand side of a sum in an equality.
         Consequence of ~ addcand .  (Contributed by David Moews,
         28-Feb-2017.) $)
      addcanad $p |- ( ph -> B = C ) $=
        ( caddc co wceq addcand mpbid ) ABCIJBDIJKCDKHABCDEFGLM $.
    $}

    ${
      addcan2ad.4 $e |- ( ph -> ( A + C ) = ( B + C ) ) $.
      $( Cancelling a term on the right-hand side of a sum in an equality.
         Consequence of ~ addcan2d .  (Contributed by David Moews,
         28-Feb-2017.) $)
      addcan2ad $p |- ( ph -> A = B ) $=
        ( caddc co wceq addcan2d mpbid ) ABDIJCDIJKBCKHABCDEFGLM $.
    $}

    ${
      addneintrd.4 $e |- ( ph -> B =/= C ) $.
      $( Introducing a term on the left-hand side of a sum in a negated
         equality.  Contrapositive of ~ addcanad .  Consequence of ~ addcand .
         (Contributed by David Moews, 28-Feb-2017.) $)
      addneintrd $p |- ( ph -> ( A + B ) =/= ( A + C ) ) $=
        ( caddc co wne addcand necon3bid mpbird ) ABCIJZBDIJZKCDKHAOPCDABCDEFGL
        MN $.
    $}

    ${
      addneintr2d.4 $e |- ( ph -> A =/= B ) $.
      $( Introducing a term on the right-hand side of a sum in a negated
         equality.  Contrapositive of ~ addcan2ad .  Consequence of
         ~ addcan2d .  (Contributed by David Moews, 28-Feb-2017.) $)
      addneintr2d $p |- ( ph -> ( A + C ) =/= ( B + C ) ) $=
        ( caddc co wne addcan2d necon3bid mpbird ) ABDIJZCDIJZKBCKHAOPBCABCDEFG
        LMN $.
    $}

    $( Commutative/associative law that swaps the first two factors in a triple
       product.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    mul12d $p |- ( ph -> ( A x. ( B x. C ) ) = ( B x. ( A x. C ) ) ) $=
      ( cc wcel cmul co wceq mul12 syl3anc ) ABHICHIDHIBCDJKJKCBDJKJKLEFGBCDMN
      $.

    $( Commutative/associative law that swaps the last two factors in a triple
       product.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    mul32d $p |- ( ph -> ( ( A x. B ) x. C ) = ( ( A x. C ) x. B ) ) $=
      ( cc wcel cmul co wceq mul32 syl3anc ) ABHICHIDHIBCJKDJKBDJKCJKLEFGBCDMN
      $.

    $( Commutative/associative law.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mul31d $p |- ( ph -> ( ( A x. B ) x. C ) = ( ( C x. B ) x. A ) ) $=
      ( cc wcel cmul co wceq mul31 syl3anc ) ABHICHIDHIBCJKDJKDCJKBJKLEFGBCDMN
      $.

    mul4d.4 $e |- ( ph -> D e. CC ) $.
    $( Rearrangement of 4 factors.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mul4d $p |- ( ph -> ( ( A x. B ) x. ( C x. D ) ) =
                        ( ( A x. C ) x. ( B x. D ) ) ) $=
      ( cc wcel cmul co wceq mul4 syl22anc ) ABJKCJKDJKEJKBCLMDELMLMBDLMCELMLMN
      FGHIBCDEOP $.
  $}

  $( A simple product of sums expansion.  (Contributed by AV, 30-Jul-2021.) $)
  muladd11r $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A + 1 ) x. ( B + 1 ) ) =
                 ( ( ( A x. B ) + ( A + B ) ) + 1 ) ) $=
    ( cc wcel wa c1 caddc cmul simpl 1cnd addcomd simpr oveq12d muladd11 addcld
    co mulcl addassd addcl 3eqtrd eqtr3d oveq1d ) ACDZBCDZEZAFGPZBFGPZHPFAGPZFB
    GPZHPUHBABHPZGPZGPZUJABGPZGPZFGPZUEUFUHUGUIHUEAFUCUDIZUEJZKUEBFUCUDLZUQKMAB
    NUEULFAUKGPZGPUSFGPUOUEFAUKUQUPUEBUJURABQZOZRUEFUSUQUEAUKUPVAOKUEUSUNFGUEUM
    UJGPUSUNUEABUJUPURUTRUEUMUJABSUTKUAUBTT $.

  ${
    comraddd.1 $e |- ( ph -> B e. CC ) $.
    comraddd.2 $e |- ( ph -> C e. CC ) $.
    comraddd.3 $e |- ( ph -> A = ( B + C ) ) $.
    $( Commute RHS addition, in deduction form.  (Contributed by David A.
       Wheeler, 11-Oct-2018.) $)
    comraddd $p |- ( ph -> A = ( C + B ) ) $=
      ( caddc co addcomd eqtrd ) ABCDHIDCHIGACDEFJK $.
  $}

  $( Adding a negative number to another number decreases it.  (Contributed by
     Glauco Siliprandi, 11-Dec-2019.) $)
  ltaddneg $p |- ( ( A e. RR /\ B e. RR ) -> ( A < 0 <-> ( B + A ) < B ) ) $=
    ( cr wcel wa cc0 clt wbr caddc co wb ltadd2 mp3an2 wceq recn addid1d adantl
    0re breq2d bitrd ) ACDZBCDZEZAFGHZBAIJZBFIJZGHZUEBGHUAFCDUBUDUGKRAFBLMUCUFB
    UEGUBUFBNUAUBBBOPQST $.

  $( Adding a negative number to another number decreases it.  (Contributed by
     AV, 19-Mar-2021.) $)
  ltaddnegr $p |- ( ( A e. RR /\ B e. RR ) -> ( A < 0 <-> ( A + B ) < B ) ) $=
    ( cr wcel wa cc0 clt wbr caddc co ltaddneg cc wceq recn addcom breq1d bitrd
    syl2anr ) ACDZBCDZEZAFGHBAIJZBGHABIJZBGHABKUAUBUCBGTBLDALDUBUCMSBNANBAORPQ
    $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Real and complex numbers - basic operations
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Addition
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Commutative/associative law that swaps the first two terms in a triple
     sum.  (Contributed by NM, 11-May-2004.) $)
  add12 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( A + ( B + C ) ) = ( B + ( A + C ) ) ) $=
    ( cc wcel w3a caddc co wceq wa addcom oveq1d 3adant3 addass 3com12 3eqtr3d
    ) ADEZBDEZCDEZFABGHZCGHZBAGHZCGHZABCGHGHBACGHGHZQRUAUCISQRJTUBCGABKLMABCNRQ
    SUCUDIBACNOP $.

  $( Commutative/associative law that swaps the last two terms in a triple sum.
     (Contributed by NM, 13-Nov-1999.) $)
  add32 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A + B ) + C ) = ( ( A + C ) + B ) ) $=
    ( cc wcel w3a caddc co wceq wa addcom oveq2d 3adant1 addass 3com23 3eqtr4d
    ) ADEZBDEZCDEZFABCGHZGHZACBGHZGHZABGHCGHACGHBGHZRSUAUCIQRSJTUBAGBCKLMABCNQS
    RUDUCIACBNOP $.

  $( Commutative/associative law that swaps the last two terms in a triple sum,
     rearranging the parentheses.  (Contributed by Paul Chapman,
     18-May-2007.) $)
  add32r $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                          ( A + ( B + C ) ) = ( ( A + C ) + B ) ) $=
    ( cc wcel w3a caddc co addass add32 eqtr3d ) ADEBDECDEFABGHCGHABCGHGHACGHBG
    HABCIABCJK $.

  $( Rearrangement of 4 terms in a sum.  (Contributed by NM, 13-Nov-1999.)
     (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
  add4 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
              ( ( A + B ) + ( C + D ) ) = ( ( A + C ) + ( B + D ) ) ) $=
    ( cc wcel wa caddc wceq add12 3expb oveq2d adantll addcl addass sylan2 an4s
    co 3expa 3eqtr4d ) AEFZBEFZGZCEFZDEFZGZGABCDHRZHRZHRZACBDHRZHRZHRZABHRUGHRZ
    ACHRUJHRZUBUFUIULIUAUBUFGUHUKAHUBUDUEUHUKIBCDJKLMUFUCUGEFZUMUIIZCDNUAUBUOUP
    ABUGOSPUAUDUBUEUNULIZUBUEGUAUDGUJEFZUQBDNUAUDURUQACUJOSPQT $.

  $( Rearrangement of 4 terms in a sum.  (Contributed by NM, 12-May-2005.) $)
  add42 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
              ( ( A + B ) + ( C + D ) ) = ( ( A + C ) + ( D + B ) ) ) $=
    ( cc wcel wa caddc co add4 wceq addcom ad2ant2l oveq2d eqtrd ) AEFZBEFZGCEF
    ZDEFZGGZABHICDHIHIACHIZBDHIZHIUADBHIZHIABCDJTUBUCUAHQSUBUCKPRBDLMNO $.

  ${
    add.1 $e |- A e. CC $.
    add.2 $e |- B e. CC $.
    add.3 $e |- C e. CC $.
    $( Commutative/associative law that swaps the first two terms in a triple
       sum.  (Contributed by NM, 21-Jan-1997.) $)
    add12i $p |- ( A + ( B + C ) ) = ( B + ( A + C ) ) $=
      ( cc wcel caddc co wceq add12 mp3an ) AGHBGHCGHABCIJIJBACIJIJKDEFABCLM $.

    $( Commutative/associative law that swaps the last two terms in a triple
       sum.  (Contributed by NM, 21-Jan-1997.) $)
    add32i $p |- ( ( A + B ) + C ) = ( ( A + C ) + B ) $=
      ( cc wcel caddc co wceq add32 mp3an ) AGHBGHCGHABIJCIJACIJBIJKDEFABCLM $.

    add4.4 $e |- D e. CC $.
    $( Rearrangement of 4 terms in a sum.  (Contributed by NM, 9-May-1999.) $)
    add4i $p |- ( ( A + B ) + ( C + D ) ) = ( ( A + C ) + ( B + D ) ) $=
      ( cc wcel caddc co wceq add4 mp4an ) AIJBIJCIJDIJABKLCDKLKLACKLBDKLKLMEFG
      HABCDNO $.

    $( Rearrangement of 4 terms in a sum.  (Contributed by NM, 22-Aug-1999.)
       (Proof shortened by OpenAI, 25-Mar-2020.) $)
    add42i $p |- ( ( A + B ) + ( C + D ) ) = ( ( A + C ) + ( D + B ) ) $=
      ( cc wcel caddc co wceq add42 mp4an ) AIJBIJCIJDIJABKLCDKLKLACKLDBKLKLMEF
      GHABCDNO $.
  $}

  ${
    addd.1 $e |- ( ph -> A e. CC ) $.
    addd.2 $e |- ( ph -> B e. CC ) $.
    addd.3 $e |- ( ph -> C e. CC ) $.
    $( Commutative/associative law that swaps the first two terms in a triple
       sum.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    add12d $p |- ( ph -> ( A + ( B + C ) ) = ( B + ( A + C ) ) ) $=
      ( cc wcel caddc co wceq add12 syl3anc ) ABHICHIDHIBCDJKJKCBDJKJKLEFGBCDMN
      $.

    $( Commutative/associative law that swaps the last two terms in a triple
       sum.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    add32d $p |- ( ph -> ( ( A + B ) + C ) = ( ( A + C ) + B ) ) $=
      ( cc wcel caddc co wceq add32 syl3anc ) ABHICHIDHIBCJKDJKBDJKCJKLEFGBCDMN
      $.

    add4d.4 $e |- ( ph -> D e. CC ) $.
    $( Rearrangement of 4 terms in a sum.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    add4d $p |- ( ph ->
      ( ( A + B ) + ( C + D ) ) = ( ( A + C ) + ( B + D ) ) ) $=
      ( cc wcel caddc co wceq add4 syl22anc ) ABJKCJKDJKEJKBCLMDELMLMBDLMCELMLM
      NFGHIBCDEOP $.

    $( Rearrangement of 4 terms in a sum.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    add42d $p |- ( ph ->
      ( ( A + B ) + ( C + D ) ) = ( ( A + C ) + ( D + B ) ) ) $=
      ( cc wcel caddc co wceq add42 syl22anc ) ABJKCJKDJKEJKBCLMDELMLMBDLMECLML
      MNFGHIBCDEOP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subtraction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare symbols needed for some defined terms. $)
  $c - $. $( Subtraction (binary minus). $)
  $c -u $. $( Unary minus sign. $)

  $( Extend class notation to include subtraction. $)
  cmin $a class - $.

  $( Extend class notation to include unary minus.  The symbol ` -u ` is not a
     class by itself but part of a compound class definition.  We do this
     rather than making it a formal function since it is so commonly used.
     Note:  We use different symbols for unary minus ( ` -u ` ) and subtraction
     ~ cmin ( ` - ` ) to prevent syntax ambiguity.  For example, looking at the
     syntax definition ~ co , if we used the same symbol
     then " ` ( - A - B ) ` " could mean either " ` - A ` " minus " ` B ` ", or
     it could represent the (meaningless) operation of
     classes " ` - ` " and " ` - B ` " connected with "operation" " ` A ` ".
     On the other hand, " ` ( -u A - B ) ` " is unambiguous. $)
  cneg $a class -u A $.

  ${
    $d x y z $.
    $( Define subtraction.  Theorem ~ subval shows its value (and describes how
       this definition works), theorem ~ subaddi relates it to addition, and
       theorems ~ subcli and ~ resubcli prove its closure laws.  (Contributed
       by NM, 26-Nov-1994.) $)
    df-sub $a |- - = ( x e. CC , y e. CC |->
                   ( iota_ z e. CC ( y + z ) = x ) ) $.
  $}

  $( Define the negative of a number (unary minus).  We use different symbols
     for unary minus ( ` -u ` ) and subtraction ( ` - ` ) to prevent syntax
     ambiguity.  See ~ cneg for a discussion of this.  (Contributed by NM,
     10-Feb-1995.) $)
  df-neg $a |- -u A = ( 0 - A ) $.

  $( Alternate proof of ~ 0cn which does not reference ~ ax-1cn .  (Contributed
     by NM, 19-Feb-2005.)  (Revised by Mario Carneiro, 27-May-2016.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  0cnALT $p |- 0 e. CC $=
    ( vx ci cv caddc co cc0 wceq wrex wcel ax-icn cnegex ax-mp addcl mpan eleq1
    cc syl5ibcom rexlimiv ) BACZDEZFGZAPHZFPIZBPIZUBJABKLUAUCAPSPIZTPIZUAUCUDUE
    UFJBSMNTFPOQRL $.

  ${
    $d x y A $.  $d x y B $.
    $( Existential uniqueness of negatives.  Theorem I.2 of [Apostol] p. 18.
       (Contributed by NM, 22-Nov-1994.)  (Proof shortened by Mario Carneiro,
       27-May-2016.) $)
    negeu $p |- ( ( A e. CC /\ B e. CC ) -> E! x e. CC ( A + x ) = B ) $=
      ( vy cc wcel wa cv caddc co wceq wreu wrex cnegex adantr wral simpl simpr
      cc0 wb addcl syl2anr simplrr oveq1d simplll simplrl simpllr eqeq2d addcld
      addassd addid2d 3eqtr3rd addcand bitrd ralrimiva reu6i syl2anc rexlimddv
      ) BEFZCEFZGZBDHZIJZSKZBAHZIJZCKZAELZDEUSVDDEMUTDBNOVAVBEFZVDGZGZVBCIJZEFZ
      VGVEVLKZTZAEPVHVJVIUTVMVAVIVDQUSUTRVBCUAUBVKVOAEVKVEEFZGZVGVFBVLIJZKVNVQC
      VRVFVQVCCIJSCIJVRCVQVCSCIVAVIVDVPUCUDVQBVBCUSUTVJVPUEZVAVIVDVPUFZUSUTVJVP
      UGZUJVQCWAUKULUHVQBVEVLVSVKVPRVQVBCVTWAUIUMUNUOVGAEVLUPUQUR $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( Value of subtraction, which is the (unique) element ` x ` such that
       ` B + x = A ` .  (Contributed by NM, 4-Aug-2007.)  (Revised by Mario
       Carneiro, 2-Nov-2013.) $)
    subval $p |- ( ( A e. CC /\ B e. CC ) ->
                  ( A - B ) = ( iota_ x e. CC ( B + x ) = A ) ) $=
      ( vy vz cc cv caddc co wceq crio cmin eqeq2 riotabidv oveq1 eqeq1d df-sub
      riotaex ovmpt2 ) DEBCFFEGZAGZHIZDGZJZAFKCUAHIZBJZAFKLUBBJZAFKUCBJUDUGAFUC
      BUBMNTCJZUGUFAFUHUBUEBTCUAHOPNDEAQUFAFRS $.
  $}

  $( Equality theorem for negatives.  (Contributed by NM, 10-Feb-1995.) $)
  negeq $p |- ( A = B -> -u A = -u B ) $=
    ( wceq cc0 cmin co cneg oveq2 df-neg 3eqtr4g ) ABCDAEFDBEFAGBGABDEHAIBIJ $.

  ${
    negeqi.1 $e |- A = B $.
    $( Equality inference for negatives.  (Contributed by NM, 14-Feb-1995.) $)
    negeqi $p |- -u A = -u B $=
      ( wceq cneg negeq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    negeqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for negatives.  (Contributed by NM, 14-May-1999.) $)
    negeqd $p |- ( ph -> -u A = -u B ) $=
      ( wceq cneg negeq syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    nfnegd.1 $e |- ( ph -> F/_ x A ) $.
    $( Deduction version of ~ nfneg .  (Contributed by NM, 29-Feb-2008.)
       (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nfnegd $p |- ( ph -> F/_ x -u A ) $=
      ( cneg cc0 cmin co df-neg nfcvd nfovd nfcxfrd ) ABCEFCGHCIABFCGABFJABGJDK
      L $.
  $}

  ${
    nfneg.1 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for the negative of a complex number.
       (Contributed by NM, 12-Jun-2005.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    nfneg $p |- F/_ x -u A $=
      ( cneg wnfc wtru a1i nfnegd trud ) ABDEFABABEFCGHI $.
  $}

  $( Move class substitution in and out of the negative of a number.
     (Contributed by NM, 1-Mar-2008.)  (Proof shortened by Andrew Salmon,
     22-Oct-2011.) $)
  csbnegg $p |- ( A e. V -> [_ A / x ]_ -u B = -u [_ A / x ]_ B ) $=
    ( wcel cc0 cmin co csb cneg csbov2g df-neg csbeq2i 3eqtr4g ) BDEABFCGHZIFAB
    CIZGHABCJZIPJABFCGDKABQOCLMPLN $.

  $( A negative is a set.  (Contributed by NM, 4-Apr-2005.) $)
  negex $p |- -u A e. _V $=
    ( cneg cc0 cmin df-neg ovexi ) ABCADAEF $.

  ${
    $d x A $.  $d x B $.
    $( Closure law for subtraction.  (Contributed by NM, 10-May-1999.)
       (Revised by Mario Carneiro, 21-Dec-2013.) $)
    subcl $p |- ( ( A e. CC /\ B e. CC ) -> ( A - B ) e. CC ) $=
      ( vx cc wcel wa cmin co cv caddc wceq crio subval wreu ancoms riotacl syl
      negeu eqeltrd ) ADEZBDEZFZABGHBCIJHAKZCDLZDCABMUBUCCDNZUDDEUATUECBAROUCCD
      PQS $.
  $}

  $( Closure law for negative.  (Contributed by NM, 6-Aug-2003.) $)
  negcl $p |- ( A e. CC -> -u A e. CC ) $=
    ( cc wcel cneg cc0 cmin co df-neg 0cn subcl mpan syl5eqel ) ABCZADEAFGZBAHE
    BCMNBCIEAJKL $.

  $( ` -u _i ` is a complex number (common case).  (Contributed by David A.
     Wheeler, 7-Dec-2018.) $)
  negicn $p |- -u _i e. CC $=
    ( ci cc wcel cneg ax-icn negcl ax-mp ) ABCADBCEAFG $.

  ${
    $d x y z $.
    $( Subtraction is an operation on the complex numbers.  (Contributed by NM,
       4-Aug-2007.)  (Revised by Mario Carneiro, 16-Nov-2013.) $)
    subf $p |- - : ( CC X. CC ) --> CC $=
      ( vy vz vx cv caddc co wceq cc crio wcel wral cxp cmin wf wa subval subcl
      eqeltrrd rgen2a df-sub fmpt2 mpbi ) ADZBDEFCDZGBHIZHJZAHKCHKHHLHMNUFCAHUD
      HJUCHJOUDUCMFUEHBUDUCPUDUCQRSCAHHUEHMCABTUAUB $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Relationship between subtraction and addition.  (Contributed by NM,
       20-Jan-1997.)  (Revised by Mario Carneiro, 21-Dec-2013.) $)
    subadd $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( ( A - B ) = C <-> ( B + C ) = A ) ) $=
      ( vx cc wcel w3a cmin co wceq cv caddc crio wb subval eqeq1d 3adant3 wreu
      wa negeu oveq2 riota2 sylan2 3impb 3com13 bitr4d ) AEFZBEFZCEFZGABHIZCJZB
      DKZLIZAJZDEMZCJZBCLIZAJZUGUHUKUPNUIUGUHSUJUOCDABOPQUIUHUGURUPNZUIUHUGUSUH
      UGSUIUNDERUSDBATUNURDECULCJUMUQAULCBLUAPUBUCUDUEUF $.
  $}

  $( Relationship between subtraction and addition.  (Contributed by Scott
     Fenton, 5-Jul-2013.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  subadd2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
            ( ( A - B ) = C <-> ( C + B ) = A ) ) $=
    ( cc wcel w3a cmin co wceq caddc subadd simp2 simp3 addcomd eqeq1d bitrd )
    ADEZBDEZCDEZFZABGHCIBCJHZAICBJHZAIABCKTUAUBATBCQRSLQRSMNOP $.

  $( Swap subtrahend and result of subtraction.  (Contributed by NM,
     14-Dec-2007.) $)
  subsub23 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - B ) = C <-> ( A - C ) = B ) ) $=
    ( cc wcel caddc co wceq cmin addcom 3adant1 eqeq1d subadd wb 3com23 3bitr4d
    w3a ) ADEZBDEZCDEZQZBCFGZAHCBFGZAHZABIGCHACIGBHZUAUBUCASTUBUCHRBCJKLABCMRTS
    UEUDNACBMOP $.

  $( Cancellation law for subtraction.  (Contributed by NM, 10-May-2004.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  pncan $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A + B ) - B ) = A ) $=
    ( cc wcel wa caddc co cmin wceq simpr simpl addcomd wb addcl subadd syl3anc
    mpbird ) ACDZBCDZEZABFGZBHGAIZBAFGUAIZTBARSJZRSKZLTUACDSRUBUCMABNUDUEUABAOP
    Q $.

  $( Cancellation law for subtraction.  (Contributed by NM, 17-Apr-2005.) $)
  pncan2 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A + B ) - A ) = B ) $=
    ( cc wcel caddc co cmin wceq wa addcom oveq1d pncan eqtr3d ancoms ) BCDZACD
    ZABEFZAGFZBHOPIZBAEFZAGFRBSTQAGBAJKBALMN $.

  $( Subtraction and addition of equals.  (Contributed by NM, 14-Mar-2005.) $)
  pncan3 $p |- ( ( A e. CC /\ B e. CC ) -> ( A + ( B - A ) ) = B ) $=
    ( cc wcel wa cmin co wceq caddc eqid simpr simpl subcl ancoms syl3anc mpbii
    wb subadd ) ACDZBCDZEZBAFGZUBHZAUBIGBHZUBJUATSUBCDZUCUDQSTKSTLTSUEBAMNBAUBR
    OP $.

  $( Cancellation law for subtraction.  (Contributed by NM, 10-May-2004.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  npcan $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A - B ) + B ) = A ) $=
    ( cc wcel wa cmin co caddc subcl simpr addcomd wceq pncan3 ancoms eqtrd ) A
    CDZBCDZEZABFGZBHGBSHGZARSBABIPQJKQPTALBAMNO $.

  $( Associative-type law for addition and subtraction.  (Contributed by NM,
     6-Aug-2003.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  addsubass $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                   ( ( A + B ) - C ) = ( A + ( B - C ) ) ) $=
    ( cc wcel cmin co caddc simp1 subcl 3adant1 simp3 addassd wceq npcan oveq2d
    w3a eqtrd oveq1d addcld pncan syl2anc eqtr3d ) ADEZBDEZCDEZQZABCFGZHGZCHGZC
    FGZABHGZCFGUIUGUJULCFUGUJAUHCHGZHGULUGAUHCUDUEUFIZUEUFUHDEUDBCJKZUDUEUFLZMU
    GUMBAHUEUFUMBNUDBCOKPRSUGUIDEUFUKUINUGAUHUNUOTUPUICUAUBUC $.

  $( Law for addition and subtraction.  (Contributed by NM, 19-Aug-2001.)
     (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
  addsub $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( ( A + B ) - C ) = ( ( A - C ) + B ) ) $=
    ( cc wcel w3a caddc co cmin wa addcom oveq1d 3adant3 addsubass 3com12 subcl
    wceq sylan2 3impb 3eqtrd ) ADEZBDEZCDEZFABGHZCIHZBAGHZCIHZBACIHZGHZUHBGHZUA
    UBUEUGQUCUAUBJUDUFCIABKLMUBUAUCUGUIQBACNOUBUAUCUIUJQZUBUAUCUKUAUCJUBUHDEUKA
    CPBUHKRSOT $.

  $( Commutative/associative law for addition and subtraction.  (Contributed by
     NM, 1-Feb-2007.) $)
  subadd23 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A - B ) + C ) = ( A + ( C - B ) ) ) $=
    ( cc wcel cmin co caddc wceq w3a addsub addsubass eqtr3d 3com23 ) ADEZCDEZB
    DEZABFGCHGZACBFGHGZIOPQJACHGBFGRSACBKACBLMN $.

  $( Commutative/associative law for addition and subtraction.  (Contributed by
     NM, 8-Feb-2005.) $)
  addsub12 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( A + ( B - C ) ) = ( B + ( A - C ) ) ) $=
    ( cc wcel cmin co caddc wceq w3a subadd23 subcl addcom stoic3 eqtr3d 3com23
    ) ADEZCDEZBDEZABCFGHGZBACFGZHGZIQRSJUABHGZTUBACBKQRUADESUCUBIACLUABMNOP $.

  $( Law for subtraction and addition.  (Contributed by NM, 20-Nov-2005.) $)
  2addsub $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
                 ( ( ( A + B ) + C ) - D ) = ( ( ( A + C ) - D ) + B ) ) $=
    ( cc wcel wa caddc co cmin wceq add32 3expa oveq1d addcl addsub 3expb sylan
    adantrr an4s eqtrd ) AEFZBEFZGZCEFZDEFZGGZABHICHIZDJIACHIZBHIZDJIZUIDJIBHIZ
    UGUHUJDJUDUEUHUJKZUFUBUCUEUMABCLMSNUBUEUCUFUKULKZUBUEGUIEFZUCUFGUNACOUOUCUF
    UNUIBDPQRTUA $.

  $( Relation between sums and differences.  (Contributed by Jeff Madsen,
     17-Jun-2010.) $)
  addsubeq4 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
                    ( ( A + B ) = ( C + D ) <-> ( C - A ) = ( B - D ) ) ) $=
    ( cc wcel wa cmin co wceq caddc eqcom subcl ancoms subadd 3expa an4s syl5bb
    wb sylan addcom adantl oveq1d addsubass 3com12 eqtrd adantlr addcl 3bitr2rd
    eqeq1d 3expb sylan2 ) AEFZBEFZGZCEFZDEFZGZGZCAHIZBDHIZJZDUTKIZBJZCDKIZAHIZB
    JZABKIVEJZVBVAUTJZUSVDUTVALUMUPUNUQVIVDSZUMUPGUTEFZUNUQGZVJUPUMVKCAMNVLVKVJ
    UNUQVKVJBDUTOPNTQRUSVFVCBUMURVFVCJUNUMURGZVFDCKIZAHIZVCVMVEVNAHURVEVNJUMCDU
    AUBUCURUMVOVCJZUPUQUMVPUQUPUMVPDCAUDUEPNUFUGUJURUOVEEFZVGVHSZCDUHVQUOVRVQUM
    UNVRVEABOUKNULUI $.

  ${
    pncan3oi.1 $e |- A e. CC $.
    pncan3oi.2 $e |- B e. CC $.
    $( Subtraction and addition of equals.  Almost but not exactly the same as
       ~ pncan3i and ~ pncan , this order happens often when applying
       "operations to both sides" so create a theorem specifically for it.  A
       deduction version of this is available as ~ pncand .  (Contributed by
       David A. Wheeler, 11-Oct-2018.) $)
    pncan3oi $p |- ( ( A + B ) - B ) = A $=
      ( cc wcel caddc co cmin wceq pncan mp2an ) AEFBEFABGHBIHAJCDABKL $.
  $}

  ${
    mvrraddi.1 $e |- B e. CC $.
    mvrraddi.2 $e |- C e. CC $.
    mvrraddi.3 $e |- A = ( B + C ) $.
    $( Move RHS right addition to LHS. (Contributed by David A. Wheeler,
       11-Oct-2018.) $)
    mvrraddi $p |- ( A - C ) = B $=
      ( cmin co caddc oveq1i pncan3oi eqtri ) ACGHBCIHZCGHBAMCGFJBCDEKL $.
  $}

  ${
    mvlladdi.1 $e |- A e. CC $.
    mvlladdi.2 $e |- B e. CC $.
    mvlladdi.3 $e |- ( A + B ) = C $.
    $( Move LHS left addition to RHS. (Contributed by David A. Wheeler,
       11-Oct-2018.) $)
    mvlladdi $p |- B = ( C - A ) $=
      ( caddc co cmin pncan3oi addcomli oveq1i eqtr3i ) BAGHZAIHBCAIHBAEDJNCAIA
      BCDEFKLM $.
  $}

  $( Subtraction of a number from itself.  (Contributed by NM, 8-Oct-1999.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  subid $p |- ( A e. CC -> ( A - A ) = 0 ) $=
    ( cc wcel cc0 caddc co cmin addid1 oveq1d wceq 0cn pncan2 mpan2 eqtr3d ) AB
    CZADEFZAGFZAAGFDOPAAGAHIODBCQDJKADLMN $.

  $( Identity law for subtraction.  (Contributed by NM, 9-May-2004.)  (Revised
     by Mario Carneiro, 27-May-2016.) $)
  subid1 $p |- ( A e. CC -> ( A - 0 ) = A ) $=
    ( cc wcel cc0 caddc co cmin addid1 oveq1d wceq 0cn pncan mpan2 eqtr3d ) ABC
    ZADEFZDGFZADGFAOPADGAHIODBCQAJKADLMN $.

  $( Cancellation law for subtraction.  (Contributed by NM, 8-Feb-2005.) $)
  npncan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - B ) + ( B - C ) ) = ( A - C ) ) $=
    ( cc wcel w3a cmin co caddc wceq subcl 3adant3 addsubass syld3an1 wa oveq1d
    npcan eqtr3d ) ADEZBDEZCDEZFABGHZBIHZCGHZUBBCGHIHZACGHZUBDEZTSUAUDUEJSTUGUA
    ABKLUBBCMNSTUDUFJUASTOUCACGABQPLR $.

  $( Cancellation law for subtraction.  (Contributed by NM, 1-Sep-2005.) $)
  nppcan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( ( A - B ) + C ) + B ) = ( A + C ) ) $=
    ( cc wcel w3a cmin co caddc subcl 3adant3 simp3 simp2 add32d wceq wa oveq1d
    npcan eqtrd ) ADEZBDEZCDEZFZABGHZCIHBIHUDBIHZCIHZACIHZUCUDCBTUAUDDEUBABJKTU
    AUBLTUAUBMNTUAUFUGOUBTUAPUEACIABRQKS $.

  $( Cancellation law for subtraction:  ((a-b)-c)+b = a-c holds for complex
     numbers a,b,c.  (Contributed by Alexander van der Vekens, 24-Mar-2018.) $)
  nnpcan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC )
                    -> ( ( ( A - B ) - C ) + B ) = ( A - C ) ) $=
    ( cc wcel w3a cmin co caddc wceq subcl 3adant3 addsub eqcomd syld3an1 npcan
    oveq1d eqtrd ) ADEZBDEZCDEZFZABGHZCGHBIHZUCBIHZCGHZACGHUCDEZTSUAUDUFJSTUGUA
    ABKLUGTUAFUFUDUCBCMNOUBUEACGSTUEAJUAABPLQR $.

  $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
     14-Sep-2015.) $)
  nppcan3 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - B ) + ( C + B ) ) = ( A + C ) ) $=
    ( cc wcel w3a cmin co caddc subcl 3adant3 simp3 simp2 addassd nppcan eqtr3d
    ) ADEZBDEZCDEZFZABGHZCIHBIHUACBIHIHACIHTUACBQRUADESABJKQRSLQRSMNABCOP $.

  $( Cancellation law for subtraction.  (Contributed by NM, 8-Feb-2005.) $)
  subcan2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - C ) = ( B - C ) <-> A = B ) ) $=
    ( cc wcel w3a cmin co wceq caddc wb simp1 simp3 subcl 3adant1 subadd2 npcan
    syl3anc eqeq1d eqcom syl6bb bitrd ) ADEZBDEZCDEZFZACGHBCGHZIZUGCJHZAIZABIZU
    FUCUEUGDEZUHUJKUCUDUELUCUDUEMUDUEULUCBCNOACUGPRUFUJBAIUKUFUIBAUDUEUIBIUCBCQ
    OSBATUAUB $.

  $( If the difference between two numbers is zero, they are equal.
     (Contributed by NM, 16-Nov-1999.) $)
  subeq0 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A - B ) = 0 <-> A = B ) ) $=
    ( cc wcel wa cmin co wceq cc0 subid adantl eqeq2d subcan2 3anidm23 bitr3d
    wb ) ACDZBCDZEZABFGZBBFGZHZTIHABHZSUAITRUAIHQBJKLQRUBUCPABBMNO $.

  $( Cancellation law for subtraction.  (Contributed by Scott Fenton,
     21-Jun-2013.) $)
  npncan2 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A - B ) + ( B - A ) ) = 0 ) $=
    ( cc wcel wa cmin co caddc cc0 wceq npncan 3anidm13 subid adantr eqtrd ) AC
    DZBCDZEABFGBAFGHGZAAFGZIPQRSJABAKLPSIJQAMNO $.

  $( Law for double subtraction.  (Contributed by NM, 30-Jun-2005.)  (Revised
     by Mario Carneiro, 27-May-2016.) $)
  subsub2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( A - ( B - C ) ) = ( A + ( C - B ) ) ) $=
    ( cc wcel w3a cmin co caddc wceq cc0 subcl 3adant1 simp1 simp3 simp2 add12d
    syl2anc npncan2 oveq2d addid1d 3eqtrd wb addcld subadd syl3anc mpbird ) ADE
    ZBDEZCDEZFZABCGHZGHACBGHZIHZJZULUNIHZAJZUKUPAULUMIHZIHAKIHAUKULAUMUIUJULDEZ
    UHBCLMZUHUIUJNZUKUJUIUMDEUHUIUJOUHUIUJPCBLRZQUKURKAIUIUJURKJUHBCSMTUKAVAUAU
    BUKUHUSUNDEUOUQUCVAUTUKAUMVAVBUDAULUNUEUFUG $.

  $( Cancellation law for subtraction.  (Contributed by NM, 21-Jun-2005.)
     (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  nncan $p |- ( ( A e. CC /\ B e. CC ) -> ( A - ( A - B ) ) = B ) $=
    ( cc wcel wa cmin co caddc wceq subsub2 3anidm12 pncan3 eqtrd ) ACDZBCDZEAA
    BFGFGZABAFGHGZBNOPQIAABJKABLM $.

  $( Law for double subtraction.  (Contributed by NM, 13-May-2004.) $)
  subsub $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( A - ( B - C ) ) = ( ( A - B ) + C ) ) $=
    ( cc wcel w3a cmin caddc subsub2 wceq addsubass addsub eqtr3d 3com23 eqtrd
    co ) ADEZBDEZCDEZFABCGPGPACBGPHPZABGPCHPZABCIQSRTUAJQSRFACHPBGPTUAACBKACBLM
    NO $.

  $( Cancellation law for subtraction.  (Contributed by NM, 29-Sep-2005.) $)
  nppcan2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - ( B + C ) ) + C ) = ( A - B ) ) $=
    ( cc wcel w3a caddc co cmin wceq addcl 3adant1 subsub syld3an2 pncan oveq2d
    eqtr3d ) ADEZBDEZCDEZFZABCGHZCIHZIHZAUBIHCGHZABIHRUBDEZSTUDUEJSTUFRBCKLAUBC
    MNUAUCBAISTUCBJRBCOLPQ $.

  $( Law for double subtraction.  (Contributed by NM, 27-Jul-2005.) $)
  subsub3 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( A - ( B - C ) ) = ( ( A + C ) - B ) ) $=
    ( cc wcel w3a cmin co caddc subsub2 wceq addsubass 3com23 eqtr4d ) ADEZBDEZ
    CDEZFABCGHGHACBGHIHZACIHBGHZABCJOQPSRKACBLMN $.

  $( Law for double subtraction.  (Contributed by NM, 19-Aug-2005.)  (Revised
     by Mario Carneiro, 27-May-2016.) $)
  subsub4 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( ( A - B ) - C ) = ( A - ( B + C ) ) ) $=
    ( cc wcel w3a cmin co caddc wceq nppcan2 wb simp1 simp2 subcl syl2anc simp3
    addcld subadd2 syl3anc mpbird ) ADEZBDEZCDEZFZABGHZCGHABCIHZGHZJZUHCIHUFJZA
    BCKUEUFDEZUDUHDEZUIUJLUEUBUCUKUBUCUDMZUBUCUDNZABOPUBUCUDQZUEUBUGDEULUMUEBCU
    NUORAUGOPUFCUHSTUA $.

  $( Swap the second and third terms in a double subtraction.  (Contributed by
     NM, 19-Aug-2005.) $)
  sub32 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                  ( ( A - B ) - C ) = ( ( A - C ) - B ) ) $=
    ( cc wcel w3a caddc cmin wceq addcom 3adant1 oveq2d subsub4 3com23 3eqtr4d
    co ) ADEZBDEZCDEZFZABCGPZHPACBGPZHPZABHPCHPACHPBHPZTUAUBAHRSUAUBIQBCJKLABCM
    QSRUDUCIACBMNO $.

  $( Cancellation law for subtraction.  (Contributed by NM, 4-Sep-2005.) $)
  nnncan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - ( B - C ) ) - C ) = ( A - B ) ) $=
    ( cc wcel cmin co caddc wceq subcl 3adant1 subsub4 syld3an2 wa npcan oveq2d
    w3a eqtrd ) ADEZBDEZCDEZQABCFGZFGCFGZAUBCHGZFGZABFGZSUBDEZTUAUCUEITUAUGSBCJ
    KAUBCLMTUAUEUFISTUANUDBAFBCOPKR $.

  $( Cancellation law for subtraction.  (Contributed by NM, 8-Feb-2005.)
     (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  nnncan1 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - B ) - ( A - C ) ) = ( C - B ) ) $=
    ( cc wcel w3a cmin co wceq subcl 3adant2 sub32 syld3an3 nncan oveq1d eqtrd
    ) ADEZBDEZCDEZFZABGHACGHZGHZAUAGHZBGHZCBGHQRSUADEZUBUDIQSUERACJKABUALMTUCCB
    GQSUCCIRACNKOP $.

  $( Cancellation law for subtraction.  (Contributed by NM, 1-Oct-2005.) $)
  nnncan2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - C ) - ( B - C ) ) = ( A - B ) ) $=
    ( cc wcel w3a cmin co wceq subcl 3adant1 sub32 syld3an2 nnncan eqtr3d ) ADE
    ZBDEZCDEZFABCGHZGHCGHZACGHSGHZABGHPSDEZQRTUAIQRUBPBCJKASCLMABCNO $.

  $( Cancellation law for subtraction.  (Contributed by Scott Fenton,
     23-Jun-2013.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  npncan3 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
    ( ( A - B ) + ( C - A ) ) = ( C - B ) ) $=
    ( cc wcel w3a cmin co caddc simp1 subcl ancoms 3adant2 simp2 addsub syl3anc
    wceq pncan3 oveq1d eqtr3d ) ADEZBDEZCDEZFZACAGHZIHZBGHZABGHUEIHZCBGHUDUAUED
    EZUBUGUHQUAUBUCJUAUCUIUBUCUAUICAKLMUAUBUCNAUEBOPUDUFCBGUAUCUFCQUBACRMST $.

  $( Cancellation law for mixed addition and subtraction.  (Contributed by NM,
     4-Mar-2005.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  pnpcan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A + B ) - ( A + C ) ) = ( B - C ) ) $=
    ( cc wcel w3a caddc co cmin simp1 simp2 addcld simp3 subsub4 syl3anc pncan2
    wceq 3adant3 oveq1d eqtr3d ) ADEZBDEZCDEZFZABGHZAIHZCIHZUEACGHIHZBCIHUDUEDE
    UAUCUGUHQUDABUAUBUCJZUAUBUCKLUIUAUBUCMUEACNOUDUFBCIUAUBUFBQUCABPRST $.

  $( Cancellation law for mixed addition and subtraction.  (Contributed by
     Scott Fenton, 9-Jun-2006.) $)
  pnpcan2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A + C ) - ( B + C ) ) = ( A - B ) ) $=
    ( cc wcel w3a caddc co cmin wceq addcom 3adant2 3adant1 oveq12d 3coml eqtrd
    pnpcan ) ADEZBDEZCDEZFZACGHZBCGHZIHCAGHZCBGHZIHZABIHZUAUBUDUCUEIRTUBUDJSACK
    LSTUCUEJRBCKMNTRSUFUGJCABQOP $.

  $( Cancellation law for mixed addition and subtraction.  (Contributed by NM,
     30-Jun-2005.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  pnncan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A + B ) - ( A - C ) ) = ( B + C ) ) $=
    ( cc wcel caddc co cmin wceq simp1 simp2 addcld simp3 subsub syl3anc pncan2
    w3a 3adant3 oveq1d eqtrd ) ADEZBDEZCDEZQZABFGZACHGHGZUEAHGZCFGZBCFGUDUEDEUA
    UCUFUHIUDABUAUBUCJZUAUBUCKLUIUAUBUCMUEACNOUDUGBCFUAUBUGBIUCABPRST $.

  $( Cancellation law for mixed addition and subtraction.  (Contributed by NM,
     30-Jun-2005.) $)
  ppncan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A + B ) + ( C - B ) ) = ( A + C ) ) $=
    ( cc wcel w3a caddc co cmin wceq addcom 3adant3 oveq1d addcl subsub2 pnncan
    syld3an1 3com12 3eqtr3d ) ADEZBDEZCDEZFZABGHZBCIHZIHZBAGHZUEIHZUDCBIHGHZACG
    HZUCUDUGUEITUAUDUGJUBABKLMUDDEZUATUBUFUIJTUAUKUBABNLUDBCOQUATUBUHUJJBACPRS
    $.

  $( Rearrangement of 4 terms in a mixed addition and subtraction.
     (Contributed by NM, 4-Mar-2005.) $)
  addsub4 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
              ( ( A + B ) - ( C + D ) ) = ( ( A - C ) + ( B - D ) ) ) $=
    ( cc wcel caddc cmin wceq simpll simplr simprl addsub syl3anc oveq1d addcld
    wa co simprr subsub4 subcl ad2ant2r addsubass 3eqtr3d ) AEFZBEFZQZCEFZDEFZQ
    ZQZABGRZCHRZDHRZACHRZBGRZDHRZULCDGRHRZUOBDHRGRZUKUMUPDHUKUEUFUHUMUPIUEUFUJJ
    ZUEUFUJKZUGUHUILZABCMNOUKULEFUHUIUNURIUKABUTVAPVBUGUHUISZULCDTNUKUOEFZUFUIU
    QUSIUEUHVDUFUIACUAUBVAVCUOBDUCNUD $.

  $( Rearrangement of 4 terms in a mixed addition and subtraction.
     (Contributed by NM, 24-Aug-2006.) $)
  subadd4 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
              ( ( A - B ) - ( C - D ) ) = ( ( A + D ) - ( B + C ) ) ) $=
    ( cc wcel wa cmin caddc wceq subcl subsub2 3expb sylan addsub4 an42s eqtr4d
    co ) AEFZBEFZGZCEFZDEFZGZGABHRZCDHRHRZUEDCHRIRZADIRBCIRHRZUAUEEFZUDUFUGJZAB
    KUIUBUCUJUECDLMNSUCTUBUHUGJADBCOPQ $.

  $( Rearrangement of 4 terms in a subtraction.  (Contributed by NM,
     23-Nov-2007.) $)
  sub4 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
              ( ( A - B ) - ( C - D ) ) = ( ( A - C ) - ( B - D ) ) ) $=
    ( cc wcel wa caddc cmin wceq addcom ad2ant2lr oveq2d subadd4 an4s 3eqtr4d
    co ) AEFZBEFZGCEFZDEFZGGZADHQZBCHQZIQUCCBHQZIQZABIQCDIQIQACIQBDIQIQZUBUDUEU
    CISTUDUEJRUABCKLMABCDNRTSUAUGUFJACBDNOP $.

  $( Minus 0 equals 0.  (Contributed by NM, 17-Jan-1997.) $)
  neg0 $p |- -u 0 = 0 $=
    ( cc0 cneg cmin co df-neg cc wcel wceq 0cn subid ax-mp eqtri ) ABAACDZAAEAF
    GMAHIAJKL $.

  $( Addition of a number and its negative.  (Contributed by NM,
     14-Mar-2005.) $)
  negid $p |- ( A e. CC -> ( A + -u A ) = 0 ) $=
    ( cc wcel cneg caddc co cc0 cmin df-neg oveq2i wceq 0cn pncan3 mpan2 syl5eq
    ) ABCZAADZEFAGAHFZEFZGQRAEAIJPGBCSGKLAGMNO $.

  $( Relationship between subtraction and negative.  Theorem I.3 of [Apostol]
     p. 18.  (Contributed by NM, 21-Jan-1997.)  (Proof shortened by Mario
     Carneiro, 27-May-2016.) $)
  negsub $p |- ( ( A e. CC /\ B e. CC ) -> ( A + -u B ) = ( A - B ) ) $=
    ( cc wcel wa cneg caddc co cc0 cmin wceq df-neg oveq2i a1i addsubass mp3an2
    0cn simpl addid1d oveq1d 3eqtr2d ) ACDZBCDZEZABFZGHZAIBJHZGHZAIGHZBJHZABJHU
    FUHKUDUEUGAGBLMNUBICDUCUJUHKQAIBOPUDUIABJUDAUBUCRSTUA $.

  $( Relationship between subtraction and negative.  (Contributed by NM,
     10-May-2004.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  subneg $p |- ( ( A e. CC /\ B e. CC ) -> ( A - -u B ) = ( A + B ) ) $=
    ( cc wcel wa cneg cmin co cc0 caddc df-neg oveq2i wceq subsub mp3an2 syl5eq
    0cn subid1 adantr oveq1d eqtrd ) ACDZBCDZEZABFZGHZAIGHZBJHZABJHUDUFAIBGHZGH
    ZUHUEUIAGBKLUBICDUCUJUHMQAIBNOPUDUGABJUBUGAMUCARSTUA $.

  $( A number is equal to the negative of its negative.  Theorem I.4 of
     [Apostol] p. 18.  (Contributed by NM, 12-Jan-2002.)  (Revised by Mario
     Carneiro, 27-May-2016.) $)
  negneg $p |- ( A e. CC -> -u -u A = A ) $=
    ( cc wcel cneg cc0 caddc co cmin df-neg wceq 0cn subneg syl5eq addid2 eqtrd
    mpan ) ABCZADZDZEAFGZAQSERHGZTRIEBCQUATJKEALPMANO $.

  $( Negative is one-to-one.  (Contributed by NM, 8-Feb-2005.)  (Revised by
     Mario Carneiro, 27-May-2016.) $)
  neg11 $p |- ( ( A e. CC /\ B e. CC ) -> ( -u A = -u B <-> A = B ) ) $=
    ( cc wcel wa cneg wceq negeq negneg eqeqan12d syl5ib impbid1 ) ACDZBCDZEZAF
    ZBFZGZABGZRPFZQFZGOSPQHMNTAUABAIBIJKABHL $.

  $( Negative contraposition law.  (Contributed by NM, 9-May-2004.) $)
  negcon1 $p |- ( ( A e. CC /\ B e. CC ) -> ( -u A = B <-> -u B = A ) ) $=
    ( cc wcel wa cneg wceq negcl neg11 sylan negneg adantr eqeq1d bitr3d syl6bb
    wb eqcom ) ACDZBCDZEZAFZBGZABFZGZUCAGTUAFZUCGZUBUDRUACDSUFUBPAHUABIJTUEAUCR
    UEAGSAKLMNAUCQO $.

  $( Negative contraposition law.  (Contributed by NM, 14-Nov-2004.) $)
  negcon2 $p |- ( ( A e. CC /\ B e. CC ) -> ( A = -u B <-> B = -u A ) ) $=
    ( cc wcel wa cneg wceq negcon1 eqcom syl6rbbr syl6bb ) ACDBCDEZABFZGZAFZBGZ
    BOGLPMAGNABHAMIJOBIK $.

  $( A number is zero iff its negative is zero.  (Contributed by NM,
     12-Jul-2005.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  negeq0 $p |- ( A e. CC -> ( A = 0 <-> -u A = 0 ) ) $=
    ( cneg cc0 wceq cc wcel neg0 eqeq2i wb 0cn neg11 mpan2 syl5rbbr ) ABZCDNCBZ
    DZAEFZACDZOCNGHQCEFPRIJACKLM $.

  $( Cancellation law for subtraction.  (Contributed by NM, 8-Feb-2005.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  subcan $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( A - B ) = ( A - C ) <-> B = C ) ) $=
    ( cc wcel w3a caddc co wceq cmin simp2 simp1 addcomd eqeq1d simp3 addsubeq4
    wb syl22anc addcan 3bitr3d ) ADEZBDEZCDEZFZBAGHZACGHZIZABGHZUFIABJHACJHIZBC
    IUDUEUHUFUDBAUAUBUCKZUAUBUCLZMNUDUBUAUAUCUGUIQUJUKUKUAUBUCOBAACPRABCST $.

  $( Distribution of negative over subtraction.  (Contributed by NM,
     15-Nov-2004.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  negsubdi $p |- ( ( A e. CC /\ B e. CC ) -> -u ( A - B ) = ( -u A + B ) ) $=
    ( cc wcel wa cc0 cmin co caddc cneg 0cn subsub mp3an1 df-neg oveq1i 3eqtr4g
    wceq ) ACDZBCDZEFABGHZGHZFAGHZBIHZTJAJZBIHFCDRSUAUCQKFABLMTNUDUBBIANOP $.

  $( Distribution of negative over addition.  (Contributed by NM, 10-May-2004.)
     (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  negdi $p |- ( ( A e. CC /\ B e. CC ) ->
                 -u ( A + B ) = ( -u A + -u B ) ) $=
    ( cc wcel wa cneg cmin co caddc subneg negeqd negcl negsubdi sylan2 eqtr3d
    wceq ) ACDZBCDZEZABFZGHZFZABIHZFAFTIHZSUAUCABJKRQTCDUBUDPBLATMNO $.

  $( Distribution of negative over addition.  (Contributed by NM,
     1-Jan-2006.) $)
  negdi2 $p |- ( ( A e. CC /\ B e. CC ) ->
                 -u ( A + B ) = ( -u A - B ) ) $=
    ( cc wcel wa caddc co cneg cmin negdi wceq negcl negsub sylan eqtrd ) ACDZB
    CDZEABFGHAHZBHFGZRBIGZABJPRCDQSTKALRBMNO $.

  $( Distribution of negative over subtraction.  (Contributed by NM,
     4-Oct-1999.) $)
  negsubdi2 $p |- ( ( A e. CC /\ B e. CC ) -> -u ( A - B ) = ( B - A ) ) $=
    ( cc wcel wa cmin cneg caddc negsubdi wceq negcl addcom sylan negsub ancoms
    co 3eqtrd ) ACDZBCDZEABFPGAGZBHPZBTHPZBAFPZABIRTCDSUAUBJAKTBLMSRUBUCJBANOQ
    $.

  $( Relationship between subtraction and negative.  (Contributed by Paul
     Chapman, 8-Oct-2007.) $)
  neg2sub $p |- ( ( A e. CC /\ B e. CC ) -> ( -u A - -u B ) = ( B - A ) ) $=
    ( cc wcel wa cneg cmin co caddc wceq negcl sylan negsubdi negsubdi2 3eqtr2d
    subneg ) ACDZBCDZEAFZBFGHZSBIHZABGHFBAGHQSCDRTUAJAKSBPLABMABNO $.

  ${
    $d x A $.
    renegcl.1 $e |- A e. RR $.
    $( Closure law for negative of reals.  (Note: this inference proof style
       and the deduction theorem usage in ~ renegcl is deprecated, but is
       retained for its demonstration value.)  (Contributed by NM,
       17-Jan-1997.)  (Proof shortened by Andrew Salmon, 22-Oct-2011.) $)
    renegcli $p |- -u A e. RR $=
      ( vx cr wcel cv caddc co cc0 wceq wrex cneg ax-rnegex cc recn cmin df-neg
      wb eqeq1i 0cn recni subadd mp3an12 syl5bb eleq1a sylbird rexlimiv mp2b
      syl ) ADEACFZGHIJZCDKALZDEZBCAMUKUMCDUJDEZUKULUJJZUMUNUJNEZUOUKRUJOUOIAPH
      ZUJJZUPUKULUQUJAQSINEANEUPURUKRTABUAIAUJUBUCUDUIUJDULUEUFUGUH $.

    resubcl.2 $e |- B e. RR $.
    $( Closure law for subtraction of reals.  (Contributed by NM, 17-Jan-1997.)
       (Revised by Mario Carneiro, 27-May-2016.) $)
    resubcli $p |- ( A - B ) e. RR $=
      ( cneg caddc co cmin cr cc wcel wceq recni negsub mp2an renegcli readdcli
      eqeltrri ) ABEZFGZABHGZIAJKBJKTUALACMBDMABNOASCBDPQR $.
  $}

  $( Closure law for negative of reals.  The weak deduction theorem ~ dedth is
     used to convert hypothesis of the inference (deduction) form of this
     theorem, ~ renegcli , to an antecedent.  (Contributed by NM, 20-Jan-1997.)
     (Proof modification is discouraged.) $)
  renegcl $p |- ( A e. RR -> -u A e. RR ) $=
    ( cr wcel cneg c1 cif wceq negeq eleq1d 1re elimel renegcli dedth ) ABCZADZ
    BCNAEFZDZBCAEAPGOQBAPHIPAEBJKLM $.

  $( Closure law for subtraction of reals.  (Contributed by NM,
     20-Jan-1997.) $)
  resubcl $p |- ( ( A e. RR /\ B e. RR ) -> ( A - B ) e. RR ) $=
    ( cr wcel wa cneg caddc cmin wceq recn negsub syl2an renegcl readdcl sylan2
    co cc eqeltrrd ) ACDZBCDZEABFZGPZABHPZCSAQDBQDUBUCITAJBJABKLTSUACDUBCDBMAUA
    NOR $.

  $( The negative of a real is real.  (Contributed by NM, 11-Aug-1999.)
     (Revised by Mario Carneiro, 14-Jul-2014.) $)
  negreb $p |- ( A e. CC -> ( -u A e. RR <-> A e. RR ) ) $=
    ( cc wcel cneg cr renegcl negneg eleq1d syl5ib impbid1 ) ABCZADZECZAECZMLDZ
    ECKNLFKOAEAGHIAFJ $.

  $( "Reverse" second Peano postulate analogue for complex numbers:  A complex
     number minus 1 is a complex number.  (Contributed by Alexander van der
     Vekens, 18-Mar-2018.) $)
  peano2cnm $p |- ( N e. CC -> ( N - 1 ) e. CC ) $=
    ( cc wcel c1 cmin co ax-1cn subcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( "Reverse" second Peano postulate analogue for reals.  (Contributed by NM,
     6-Feb-2007.) $)
  peano2rem $p |- ( N e. RR -> ( N - 1 ) e. RR ) $=
    ( cr wcel c1 cmin co 1re resubcl mpan2 ) ABCDBCADEFBCGADHI $.

  ${
    negidi.1 $e |- A e. CC $.
    $( Closure law for negative.  (Contributed by NM, 26-Nov-1994.) $)
    negcli $p |- -u A e. CC $=
      ( cc wcel cneg negcl ax-mp ) ACDAECDBAFG $.

    $( Addition of a number and its negative.  (Contributed by NM,
       26-Nov-1994.) $)
    negidi $p |- ( A + -u A ) = 0 $=
      ( cc wcel cneg caddc co cc0 wceq negid ax-mp ) ACDAAEFGHIBAJK $.

    $( A number is equal to the negative of its negative.  Theorem I.4 of
       [Apostol] p. 18.  (Contributed by NM, 8-Feb-1995.)  (Proof shortened by
       Andrew Salmon, 22-Oct-2011.) $)
    negnegi $p |- -u -u A = A $=
      ( cc wcel cneg wceq negneg ax-mp ) ACDAEEAFBAGH $.

    $( Subtraction of a number from itself.  (Contributed by NM,
       26-Nov-1994.) $)
    subidi $p |- ( A - A ) = 0 $=
      ( cc wcel cmin co cc0 wceq subid ax-mp ) ACDAAEFGHBAIJ $.

    $( Identity law for subtraction.  (Contributed by NM, 29-May-1999.) $)
    subid1i $p |- ( A - 0 ) = A $=
      ( cc wcel cc0 cmin co wceq subid1 ax-mp ) ACDAEFGAHBAIJ $.

    $( A number is nonzero iff its negative is nonzero.  (Contributed by NM,
       10-Aug-1999.) $)
    negne0bi $p |- ( A =/= 0 <-> -u A =/= 0 ) $=
      ( cc0 cneg cc wcel wceq wb negeq0 ax-mp necon3bii ) ACADZCAEFACGLCGHBAIJK
      $.

    $( The negative of a real is real.  (Contributed by NM, 11-Aug-1999.) $)
    negrebi $p |- ( -u A e. RR <-> A e. RR ) $=
      ( cc wcel cneg cr wb negreb ax-mp ) ACDAEFDAFDGBAHI $.

    ${
      negne0i.2 $e |- A =/= 0 $.
      $( The negative of a nonzero number is nonzero.  (Contributed by NM,
         30-Jul-2004.) $)
      negne0i $p |- -u A =/= 0 $=
        ( cc0 wne cneg negne0bi mpbi ) ADEAFDECABGH $.
    $}

    pncan3i.2 $e |- B e. CC $.
    $( Closure law for subtraction.  (Contributed by NM, 26-Nov-1994.)
       (Revised by Mario Carneiro, 21-Dec-2013.) $)
    subcli $p |- ( A - B ) e. CC $=
      ( cc wcel cmin co subcl mp2an ) AEFBEFABGHEFCDABIJ $.

    $( Subtraction and addition of equals.  (Contributed by NM,
       26-Nov-1994.) $)
    pncan3i $p |- ( A + ( B - A ) ) = B $=
      ( cc wcel cmin co caddc wceq pncan3 mp2an ) AEFBEFABAGHIHBJCDABKL $.

    $( Relationship between subtraction and negative.  Theorem I.3 of [Apostol]
       p. 18.  (Contributed by NM, 26-Nov-1994.)  (Proof shortened by Andrew
       Salmon, 22-Oct-2011.) $)
    negsubi $p |- ( A + -u B ) = ( A - B ) $=
      ( cc wcel cneg caddc co cmin wceq negsub mp2an ) AEFBEFABGHIABJIKCDABLM
      $.

    $( Relationship between subtraction and negative.  (Contributed by NM,
       1-Dec-2005.) $)
    subnegi $p |- ( A - -u B ) = ( A + B ) $=
      ( cc wcel cneg cmin co caddc wceq subneg mp2an ) AEFBEFABGHIABJIKCDABLM
      $.

    $( If the difference between two numbers is zero, they are equal.
       (Contributed by NM, 8-May-1999.) $)
    subeq0i $p |- ( ( A - B ) = 0 <-> A = B ) $=
      ( cc wcel cmin co cc0 wceq wb subeq0 mp2an ) AEFBEFABGHIJABJKCDABLM $.

    $( Negative is one-to-one.  (Contributed by NM, 1-Aug-1999.) $)
    neg11i $p |- ( -u A = -u B <-> A = B ) $=
      ( cc wcel cneg wceq wb neg11 mp2an ) AEFBEFAGBGHABHICDABJK $.

    $( Negative contraposition law.  (Contributed by NM, 25-Aug-1999.) $)
    negcon1i $p |- ( -u A = B <-> -u B = A ) $=
      ( cc wcel cneg wceq wb negcon1 mp2an ) AEFBEFAGBHBGAHICDABJK $.

    $( Negative contraposition law.  (Contributed by NM, 25-Aug-1999.) $)
    negcon2i $p |- ( A = -u B <-> B = -u A ) $=
      ( cc wcel cneg wceq wb negcon2 mp2an ) AEFBEFABGHBAGHICDABJK $.

    $( Distribution of negative over addition.  (Contributed by NM,
       28-Jul-1999.)  (Proof shortened by OpenAI, 25-Mar-2011.) $)
    negdii $p |- -u ( A + B ) = ( -u A + -u B ) $=
      ( cc wcel caddc co cneg wceq negdi mp2an ) AEFBEFABGHIAIBIGHJCDABKL $.

    $( Distribution of negative over subtraction.  (Contributed by NM,
       6-Aug-1999.) $)
    negsubdii $p |- -u ( A - B ) = ( -u A + B ) $=
      ( cneg caddc co cmin negcli negdii negsubi negeqi negnegi oveq2i 3eqtr3i
      ) ABEZFGZEAEZPEZFGABHGZERBFGAPCBDIJQTABCDKLSBRFBDMNO $.

    $( Distribution of negative over subtraction.  (Contributed by NM,
       1-Oct-1999.) $)
    negsubdi2i $p |- -u ( A - B ) = ( B - A ) $=
      ( cmin co cneg caddc negsubdii negcli negsubi addcomli eqtri ) ABEFGAGZBH
      FBAEFZABCDIBNODACJBADCKLM $.

    subadd.3 $e |- C e. CC $.
    $( Relationship between subtraction and addition.  (Contributed by NM,
       26-Nov-1994.)  (Revised by Mario Carneiro, 21-Dec-2013.) $)
    subaddi $p |- ( ( A - B ) = C <-> ( B + C ) = A ) $=
      ( cc wcel cmin co wceq caddc wb subadd mp3an ) AGHBGHCGHABIJCKBCLJAKMDEFA
      BCNO $.

    $( Relationship between subtraction and addition.  (Contributed by NM,
       15-Dec-2006.) $)
    subadd2i $p |- ( ( A - B ) = C <-> ( C + B ) = A ) $=
      ( cc wcel cmin co wceq caddc wb subadd2 mp3an ) AGHBGHCGHABIJCKCBLJAKMDEF
      ABCNO $.

    ${
      subaddri.4 $e |- ( B + C ) = A $.
      $( Relationship between subtraction and addition.  (Contributed by NM,
         16-Dec-2006.) $)
      subaddrii $p |- ( A - B ) = C $=
        ( cmin co wceq caddc subaddi mpbir ) ABHICJBCKIAJGABCDEFLM $.
    $}

    $( Swap subtrahend and result of subtraction.  (Contributed by NM,
       7-Oct-1999.) $)
    subsub23i $p |- ( ( A - B ) = C <-> ( A - C ) = B ) $=
      ( cc wcel cmin co wceq wb subsub23 mp3an ) AGHBGHCGHABIJCKACIJBKLDEFABCMN
      $.

    $( Associative-type law for subtraction and addition.  (Contributed by NM,
       16-Sep-1999.) $)
    addsubassi $p |- ( ( A + B ) - C ) = ( A + ( B - C ) ) $=
      ( cc wcel caddc co cmin wceq addsubass mp3an ) AGHBGHCGHABIJCKJABCKJIJLDE
      FABCMN $.

    $( Law for subtraction and addition.  (Contributed by NM, 6-Aug-2003.) $)
    addsubi $p |- ( ( A + B ) - C ) = ( ( A - C ) + B ) $=
      ( cc wcel caddc co cmin wceq addsub mp3an ) AGHBGHCGHABIJCKJACKJBIJLDEFAB
      CMN $.

    $( Cancellation law for subtraction.  (Contributed by NM, 8-Feb-2005.) $)
    subcani $p |- ( ( A - B ) = ( A - C ) <-> B = C ) $=
      ( cc wcel cmin co wceq wb subcan mp3an ) AGHBGHCGHABIJACIJKBCKLDEFABCMN
      $.

    $( Cancellation law for subtraction.  (Contributed by NM, 8-Feb-2005.) $)
    subcan2i $p |- ( ( A - C ) = ( B - C ) <-> A = B ) $=
      ( cc wcel cmin co wceq wb subcan2 mp3an ) AGHBGHCGHACIJBCIJKABKLDEFABCMN
      $.

    $( Cancellation law for mixed addition and subtraction.  (Contributed by
       NM, 14-Jan-2006.) $)
    pnncani $p |- ( ( A + B ) - ( A - C ) ) = ( B + C ) $=
      ( cc wcel caddc co cmin wceq pnncan mp3an ) AGHBGHCGHABIJACKJKJBCIJLDEFAB
      CMN $.

    addsub4i.4 $e |- D e. CC $.
    $( Rearrangement of 4 terms in a mixed addition and subtraction.
       (Contributed by NM, 17-Oct-1999.) $)
    addsub4i $p |- ( ( A + B ) - ( C + D ) ) =
                 ( ( A - C ) + ( B - D ) ) $=
      ( cc wcel caddc co cmin wceq addsub4 mp4an ) AIJBIJCIJDIJABKLCDKLMLACMLBD
      MLKLNEFGHABCDOP $.
  $}

  $( Alternate proof of ~ 0re .  (Contributed by NM, 19-Feb-2005.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  0reALT $p |- 0 e. RR $=
    ( c1 cmin co cc0 cr ax-1cn subidi 1re resubcli eqeltrri ) AABCDEAFGAAHHIJ
    $.

  ${
    negidd.1 $e |- ( ph -> A e. CC ) $.
    $( Closure law for negative.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    negcld $p |- ( ph -> -u A e. CC ) $=
      ( cc wcel cneg negcl syl ) ABDEBFDECBGH $.

    $( Subtraction of a number from itself.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subidd $p |- ( ph -> ( A - A ) = 0 ) $=
      ( cc wcel cmin co cc0 wceq subid syl ) ABDEBBFGHICBJK $.

    $( Identity law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subid1d $p |- ( ph -> ( A - 0 ) = A ) $=
      ( cc wcel cc0 cmin co wceq subid1 syl ) ABDEBFGHBICBJK $.

    $( Addition of a number and its negative.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    negidd $p |- ( ph -> ( A + -u A ) = 0 ) $=
      ( cc wcel cneg caddc co cc0 wceq negid syl ) ABDEBBFGHIJCBKL $.

    $( A number is equal to the negative of its negative.  Theorem I.4 of
       [Apostol] p. 18.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    negnegd $p |- ( ph -> -u -u A = A ) $=
      ( cc wcel cneg wceq negneg syl ) ABDEBFFBGCBHI $.

    $( A number is zero iff its negative is zero.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    negeq0d $p |- ( ph -> ( A = 0 <-> -u A = 0 ) ) $=
      ( cc wcel cc0 wceq cneg wb negeq0 syl ) ABDEBFGBHFGICBJK $.

    $( A number is nonzero iff its negative is nonzero.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    negne0bd $p |- ( ph -> ( A =/= 0 <-> -u A =/= 0 ) ) $=
      ( cc0 cneg negeq0d necon3bid ) ABDBEDABCFG $.

    ${
      negcon1d.2 $e |- ( ph -> B e. CC ) $.
      $( Contraposition law for unary minus.  Deduction form of ~ negcon1 .
         (Contributed by David Moews, 28-Feb-2017.) $)
      negcon1d $p |- ( ph -> ( -u A = B <-> -u B = A ) ) $=
        ( cc wcel cneg wceq wb negcon1 syl2anc ) ABFGCFGBHCICHBIJDEBCKL $.
    $}

    ${
      negcon1ad.2 $e |- ( ph -> -u A = B ) $.
      $( Contraposition law for unary minus.  One-way deduction form of
         ~ negcon1 .  (Contributed by David Moews, 28-Feb-2017.) $)
      negcon1ad $p |- ( ph -> -u B = A ) $=
        ( cneg wceq cc negcld eqeltrrd negcon1d mpbid ) ABFZCGCFBGEABCDAMCHEABD
        IJKL $.
    $}

    ${
      neg11ad.2 $e |- ( ph -> B e. CC ) $.
      $( The negatives of two complex numbers are equal iff they are equal.
         Deduction form of ~ neg11 .  Generalization of ~ neg11d .
         (Contributed by David Moews, 28-Feb-2017.) $)
      neg11ad $p |- ( ph -> ( -u A = -u B <-> A = B ) ) $=
        ( cc wcel cneg wceq wb neg11 syl2anc ) ABFGCFGBHCHIBCIJDEBCKL $.
    $}

    ${
      negned.2 $e |- ( ph -> B e. CC ) $.
      negned.3 $e |- ( ph -> A =/= B ) $.
      $( If two complex numbers are unequal, so are their negatives.
         Contrapositive of ~ neg11d .  (Contributed by David Moews,
         28-Feb-2017.) $)
      negned $p |- ( ph -> -u A =/= -u B ) $=
        ( cneg wne neg11ad necon3bid mpbird ) ABGZCGZHBCHFALMBCABCDEIJK $.
    $}

    ${
      negne0d.2 $e |- ( ph -> A =/= 0 ) $.
      $( The negative of a nonzero number is nonzero.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      negne0d $p |- ( ph -> -u A =/= 0 ) $=
        ( cc0 wne cneg negne0bd mpbid ) ABEFBGEFDABCHI $.
    $}

    ${
      negrebd.2 $e |- ( ph -> -u A e. RR ) $.
      $( The negative of a real is real.  (Contributed by Mario Carneiro,
         28-May-2016.) $)
      negrebd $p |- ( ph -> A e. RR ) $=
        ( cneg cr wcel cc wb negreb syl mpbid ) ABEFGZBFGZDABHGMNICBJKL $.
    $}

    pncand.2 $e |- ( ph -> B e. CC ) $.
    $( Closure law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subcld $p |- ( ph -> ( A - B ) e. CC ) $=
      ( cc wcel cmin co subcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    pncand $p |- ( ph -> ( ( A + B ) - B ) = A ) $=
      ( cc wcel caddc co cmin wceq pncan syl2anc ) ABFGCFGBCHICJIBKDEBCLM $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    pncan2d $p |- ( ph -> ( ( A + B ) - A ) = B ) $=
      ( cc wcel caddc co cmin wceq pncan2 syl2anc ) ABFGCFGBCHIBJICKDEBCLM $.

    $( Subtraction and addition of equals.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    pncan3d $p |- ( ph -> ( A + ( B - A ) ) = B ) $=
      ( cc wcel cmin co caddc wceq pncan3 syl2anc ) ABFGCFGBCBHIJICKDEBCLM $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    npcand $p |- ( ph -> ( ( A - B ) + B ) = A ) $=
      ( cc wcel cmin co caddc wceq npcan syl2anc ) ABFGCFGBCHICJIBKDEBCLM $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nncand $p |- ( ph -> ( A - ( A - B ) ) = B ) $=
      ( cc wcel cmin co wceq nncan syl2anc ) ABFGCFGBBCHIHICJDEBCKL $.

    $( Relationship between subtraction and negative.  Theorem I.3 of [Apostol]
       p. 18.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    negsubd $p |- ( ph -> ( A + -u B ) = ( A - B ) ) $=
      ( cc wcel cneg caddc co cmin wceq negsub syl2anc ) ABFGCFGBCHIJBCKJLDEBCM
      N $.

    $( Relationship between subtraction and negative.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    subnegd $p |- ( ph -> ( A - -u B ) = ( A + B ) ) $=
      ( cc wcel cneg cmin co caddc wceq subneg syl2anc ) ABFGCFGBCHIJBCKJLDEBCM
      N $.

    ${
      subeq0d.3 $e |- ( ph -> ( A - B ) = 0 ) $.
      $( If the difference between two numbers is zero, they are equal.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      subeq0d $p |- ( ph -> A = B ) $=
        ( cmin co cc0 wceq cc wcel wb subeq0 syl2anc mpbid ) ABCGHIJZBCJZFABKLC
        KLQRMDEBCNOP $.
    $}

    ${
      subne0d.3 $e |- ( ph -> A =/= B ) $.
      $( Two unequal numbers have nonzero difference.  (Contributed by Mario
         Carneiro, 1-Jan-2017.) $)
      subne0d $p |- ( ph -> ( A - B ) =/= 0 ) $=
        ( cmin co cc0 wne cc wcel wceq wb subeq0 syl2anc necon3bid mpbird ) ABC
        GHZIJBCJFASIBCABKLCKLSIMBCMNDEBCOPQR $.
    $}

    $( The difference of two complex numbers is zero iff they are equal.
       Deduction form of ~ subeq0 .  Generalization of ~ subeq0d .
       (Contributed by David Moews, 28-Feb-2017.) $)
    subeq0ad $p |- ( ph -> ( ( A - B ) = 0 <-> A = B ) ) $=
      ( cc wcel cmin co cc0 wceq wb subeq0 syl2anc ) ABFGCFGBCHIJKBCKLDEBCMN $.

    ${
      subne0ad.3 $e |- ( ph -> ( A - B ) =/= 0 ) $.
      $( If the difference of two complex numbers is nonzero, they are unequal.
         Converse of ~ subne0d .  Contrapositive of ~ subeq0bd .  (Contributed
         by David Moews, 28-Feb-2017.) $)
      subne0ad $p |- ( ph -> A =/= B ) $=
        ( cmin co cc0 wne subeq0ad necon3bid mpbid ) ABCGHZIJBCJFANIBCABCDEKLM
        $.
    $}

    ${
      neg11d.3 $e |- ( ph -> -u A = -u B ) $.
      $( If the difference between two numbers is zero, they are equal.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      neg11d $p |- ( ph -> A = B ) $=
        ( cneg wceq neg11ad mpbid ) ABGCGHBCHFABCDEIJ $.
    $}

    $( Distribution of negative over addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    negdid $p |- ( ph -> -u ( A + B ) = ( -u A + -u B ) ) $=
      ( cc wcel caddc co cneg wceq negdi syl2anc ) ABFGCFGBCHIJBJCJHIKDEBCLM $.

    $( Distribution of negative over addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    negdi2d $p |- ( ph -> -u ( A + B ) = ( -u A - B ) ) $=
      ( cc wcel caddc co cneg cmin wceq negdi2 syl2anc ) ABFGCFGBCHIJBJCKILDEBC
      MN $.

    $( Distribution of negative over subtraction.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    negsubdid $p |- ( ph -> -u ( A - B ) = ( -u A + B ) ) $=
      ( cc wcel cmin co cneg caddc wceq negsubdi syl2anc ) ABFGCFGBCHIJBJCKILDE
      BCMN $.

    $( Distribution of negative over subtraction.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    negsubdi2d $p |- ( ph -> -u ( A - B ) = ( B - A ) ) $=
      ( cc wcel cmin co cneg wceq negsubdi2 syl2anc ) ABFGCFGBCHIJCBHIKDEBCLM
      $.

    $( Relationship between subtraction and negative.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    neg2subd $p |- ( ph -> ( -u A - -u B ) = ( B - A ) ) $=
      ( cc wcel cneg cmin co wceq neg2sub syl2anc ) ABFGCFGBHCHIJCBIJKDEBCLM $.

    subaddd.3 $e |- ( ph -> C e. CC ) $.
    $( Relationship between subtraction and addition.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    subaddd $p |- ( ph -> ( ( A - B ) = C <-> ( B + C ) = A ) ) $=
      ( cc wcel cmin co wceq caddc wb subadd syl3anc ) ABHICHIDHIBCJKDLCDMKBLNE
      FGBCDOP $.

    $( Relationship between subtraction and addition.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    subadd2d $p |- ( ph -> ( ( A - B ) = C <-> ( C + B ) = A ) ) $=
      ( cc wcel cmin co wceq caddc wb subadd2 syl3anc ) ABHICHIDHIBCJKDLDCMKBLN
      EFGBCDOP $.

    $( Associative-type law for subtraction and addition.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    addsubassd $p |- ( ph -> ( ( A + B ) - C ) = ( A + ( B - C ) ) ) $=
      ( cc wcel caddc co cmin wceq addsubass syl3anc ) ABHICHIDHIBCJKDLKBCDLKJK
      MEFGBCDNO $.

    $( Law for subtraction and addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    addsubd $p |- ( ph -> ( ( A + B ) - C ) = ( ( A - C ) + B ) ) $=
      ( cc wcel caddc co cmin wceq addsub syl3anc ) ABHICHIDHIBCJKDLKBDLKCJKMEF
      GBCDNO $.

    $( Commutative/associative law for addition and subtraction.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    subadd23d $p |- ( ph -> ( ( A - B ) + C ) = ( A + ( C - B ) ) ) $=
      ( cc wcel cmin co caddc wceq subadd23 syl3anc ) ABHICHIDHIBCJKDLKBDCJKLKM
      EFGBCDNO $.

    $( Commutative/associative law for addition and subtraction.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    addsub12d $p |- ( ph -> ( A + ( B - C ) ) = ( B + ( A - C ) ) ) $=
      ( cc wcel cmin co caddc wceq addsub12 syl3anc ) ABHICHIDHIBCDJKLKCBDJKLKM
      EFGBCDNO $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    npncand $p |- ( ph -> ( ( A - B ) + ( B - C ) ) = ( A - C ) ) $=
      ( cc wcel cmin co caddc wceq npncan syl3anc ) ABHICHIDHIBCJKCDJKLKBDJKMEF
      GBCDNO $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nppcand $p |- ( ph -> ( ( ( A - B ) + C ) + B ) = ( A + C ) ) $=
      ( cc wcel cmin co caddc wceq nppcan syl3anc ) ABHICHIDHIBCJKDLKCLKBDLKMEF
      GBCDNO $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nppcan2d $p |- ( ph -> ( ( A - ( B + C ) ) + C ) = ( A - B ) ) $=
      ( cc wcel caddc co cmin wceq nppcan2 syl3anc ) ABHICHIDHIBCDJKLKDJKBCLKME
      FGBCDNO $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nppcan3d $p |- ( ph -> ( ( A - B ) + ( C + B ) ) = ( A + C ) ) $=
      ( cc wcel cmin co caddc wceq nppcan3 syl3anc ) ABHICHIDHIBCJKDCLKLKBDLKME
      FGBCDNO $.

    $( Law for double subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subsubd $p |- ( ph -> ( A - ( B - C ) ) = ( ( A - B ) + C ) ) $=
      ( cc wcel cmin co caddc wceq subsub syl3anc ) ABHICHIDHIBCDJKJKBCJKDLKMEF
      GBCDNO $.

    $( Law for double subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subsub2d $p |- ( ph -> ( A - ( B - C ) ) = ( A + ( C - B ) ) ) $=
      ( cc wcel cmin co caddc wceq subsub2 syl3anc ) ABHICHIDHIBCDJKJKBDCJKLKME
      FGBCDNO $.

    $( Law for double subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subsub3d $p |- ( ph -> ( A - ( B - C ) ) = ( ( A + C ) - B ) ) $=
      ( cc wcel cmin co caddc wceq subsub3 syl3anc ) ABHICHIDHIBCDJKJKBDLKCJKME
      FGBCDNO $.

    $( Law for double subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subsub4d $p |- ( ph -> ( ( A - B ) - C ) = ( A - ( B + C ) ) ) $=
      ( cc wcel cmin co caddc wceq subsub4 syl3anc ) ABHICHIDHIBCJKDJKBCDLKJKME
      FGBCDNO $.

    $( Swap the second and third terms in a double subtraction.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    sub32d $p |- ( ph -> ( ( A - B ) - C ) = ( ( A - C ) - B ) ) $=
      ( cc wcel cmin co wceq sub32 syl3anc ) ABHICHIDHIBCJKDJKBDJKCJKLEFGBCDMN
      $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nnncand $p |- ( ph -> ( ( A - ( B - C ) ) - C ) = ( A - B ) ) $=
      ( cc wcel cmin co wceq nnncan syl3anc ) ABHICHIDHIBCDJKJKDJKBCJKLEFGBCDMN
      $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nnncan1d $p |- ( ph -> ( ( A - B ) - ( A - C ) ) = ( C - B ) ) $=
      ( cc wcel cmin co wceq nnncan1 syl3anc ) ABHICHIDHIBCJKBDJKJKDCJKLEFGBCDM
      N $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nnncan2d $p |- ( ph -> ( ( A - C ) - ( B - C ) ) = ( A - B ) ) $=
      ( cc wcel cmin co wceq nnncan2 syl3anc ) ABHICHIDHIBDJKCDJKJKBCJKLEFGBCDM
      N $.

    $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    npncan3d $p |- ( ph -> ( ( A - B ) + ( C - A ) ) = ( C - B ) ) $=
      ( cc wcel cmin co caddc wceq npncan3 syl3anc ) ABHICHIDHIBCJKDBJKLKDCJKME
      FGBCDNO $.

    $( Cancellation law for mixed addition and subtraction.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    pnpcand $p |- ( ph -> ( ( A + B ) - ( A + C ) ) = ( B - C ) ) $=
      ( cc wcel caddc co cmin wceq pnpcan syl3anc ) ABHICHIDHIBCJKBDJKLKCDLKMEF
      GBCDNO $.

    $( Cancellation law for mixed addition and subtraction.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    pnpcan2d $p |- ( ph -> ( ( A + C ) - ( B + C ) ) = ( A - B ) ) $=
      ( cc wcel caddc co cmin wceq pnpcan2 syl3anc ) ABHICHIDHIBDJKCDJKLKBCLKME
      FGBCDNO $.

    $( Cancellation law for mixed addition and subtraction.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    pnncand $p |- ( ph -> ( ( A + B ) - ( A - C ) ) = ( B + C ) ) $=
      ( cc wcel caddc co cmin wceq pnncan syl3anc ) ABHICHIDHIBCJKBDLKLKCDJKMEF
      GBCDNO $.

    $( Cancellation law for mixed addition and subtraction.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    ppncand $p |- ( ph -> ( ( A + B ) + ( C - B ) ) = ( A + C ) ) $=
      ( cc wcel caddc co cmin wceq ppncan syl3anc ) ABHICHIDHIBCJKDCLKJKBDJKMEF
      GBCDNO $.

    ${
      subcand.4 $e |- ( ph -> ( A - B ) = ( A - C ) ) $.
      $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      subcand $p |- ( ph -> B = C ) $=
        ( cmin co wceq cc wcel wb subcan syl3anc mpbid ) ABCIJBDIJKZCDKZHABLMCL
        MDLMRSNEFGBCDOPQ $.
    $}

    ${
      subcan2d.4 $e |- ( ph -> ( A - C ) = ( B - C ) ) $.
      $( Cancellation law for subtraction.  (Contributed by Mario Carneiro,
         22-Sep-2016.) $)
      subcan2d $p |- ( ph -> A = B ) $=
        ( cmin co wceq cc wcel wb subcan2 syl3anc mpbid ) ABDIJCDIJKZBCKZHABLMC
        LMDLMRSNEFGBCDOPQ $.
    $}

    $( Cancellation law for subtraction.  Deduction form of ~ subcan .
       Generalization of ~ subcand .  (Contributed by David Moews,
       28-Feb-2017.) $)
    subcanad $p |- ( ph -> ( ( A - B ) = ( A - C ) <-> B = C ) ) $=
      ( cc wcel cmin co wceq wb subcan syl3anc ) ABHICHIDHIBCJKBDJKLCDLMEFGBCDN
      O $.

    ${
      subneintrd.4 $e |- ( ph -> B =/= C ) $.
      $( Introducing subtraction on both sides of a statement of inequality.
         Contrapositive of ~ subcand .  (Contributed by David Moews,
         28-Feb-2017.) $)
      subneintrd $p |- ( ph -> ( A - B ) =/= ( A - C ) ) $=
        ( cmin co wne subcanad necon3bid mpbird ) ABCIJZBDIJZKCDKHAOPCDABCDEFGL
        MN $.
    $}

    $( Cancellation law for subtraction.  Deduction form of ~ subcan2 .
       Generalization of ~ subcan2d .  (Contributed by David Moews,
       28-Feb-2017.) $)
    subcan2ad $p |- ( ph -> ( ( A - C ) = ( B - C ) <-> A = B ) ) $=
      ( cc wcel cmin co wceq wb subcan2 syl3anc ) ABHICHIDHIBDJKCDJKLBCLMEFGBCD
      NO $.

    ${
      subneintr2d.4 $e |- ( ph -> A =/= B ) $.
      $( Introducing subtraction on both sides of a statement of inequality.
         Contrapositive of ~ subcan2d .  (Contributed by David Moews,
         28-Feb-2017.) $)
      subneintr2d $p |- ( ph -> ( A - C ) =/= ( B - C ) ) $=
        ( cmin co wne subcan2ad necon3bid mpbird ) ABDIJZCDIJZKBCKHAOPBCABCDEFG
        LMN $.
    $}

    addsub4d.4 $e |- ( ph -> D e. CC ) $.
    $( Rearrangement of 4 terms in a mixed addition and subtraction.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    addsub4d $p |- ( ph ->
                ( ( A + B ) - ( C + D ) ) = ( ( A - C ) + ( B - D ) ) ) $=
      ( cc wcel caddc co cmin wceq addsub4 syl22anc ) ABJKCJKDJKEJKBCLMDELMNMBD
      NMCENMLMOFGHIBCDEPQ $.

    $( Rearrangement of 4 terms in a mixed addition and subtraction.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    subadd4d $p |- ( ph ->
                ( ( A - B ) - ( C - D ) ) = ( ( A + D ) - ( B + C ) ) ) $=
      ( cc wcel cmin co caddc wceq subadd4 syl22anc ) ABJKCJKDJKEJKBCLMDELMLMBE
      NMCDNMLMOFGHIBCDEPQ $.

    $( Rearrangement of 4 terms in a subtraction.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    sub4d $p |- ( ph ->
                ( ( A - B ) - ( C - D ) ) = ( ( A - C ) - ( B - D ) ) ) $=
      ( cc wcel cmin co wceq sub4 syl22anc ) ABJKCJKDJKEJKBCLMDELMLMBDLMCELMLMN
      FGHIBCDEOP $.

    $( Law for subtraction and addition.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    2addsubd $p |- ( ph ->
      ( ( ( A + B ) + C ) - D ) = ( ( ( A + C ) - D ) + B ) ) $=
      ( cc wcel caddc co cmin wceq 2addsub syl22anc ) ABJKCJKDJKEJKBCLMDLMENMBD
      LMENMCLMOFGHIBCDEPQ $.

    $( Relation between sums and differences.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    addsubeq4d $p |- ( ph ->
        ( ( A + B ) = ( C + D ) <-> ( C - A ) = ( B - D ) ) ) $=
      ( cc wcel caddc co wceq cmin wb addsubeq4 syl22anc ) ABJKCJKDJKEJKBCLMDEL
      MNDBOMCEOMNPFGHIBCDEQR $.
  $}

  ${
    mvlraddd.1 $e |- ( ph -> A e. CC ) $.
    mvlraddd.2 $e |- ( ph -> B e. CC ) $.
    mvlraddd.3 $e |- ( ph -> ( A + B ) = C ) $.
    $( Move LHS right addition to RHS. (Contributed by David A. Wheeler,
       15-Oct-2018.) $)
    mvlraddd $p |- ( ph -> A = ( C - B ) ) $=
      ( caddc co cmin pncand oveq1d eqtr3d ) ABCHIZCJIBDCJIABCEFKANDCJGLM $.
  $}

  ${
    mvrraddd.1 $e |- ( ph -> B e. CC ) $.
    mvrraddd.2 $e |- ( ph -> C e. CC ) $.
    mvrraddd.3 $e |- ( ph -> A = ( B + C ) ) $.
    $( Move RHS right addition to LHS. (Contributed by David A. Wheeler,
       15-Oct-2018.) $)
    mvrraddd $p |- ( ph -> ( A - C ) = B ) $=
      ( cmin co caddc oveq1d pncand eqtrd ) ABDHICDJIZDHICABNDHGKACDEFLM $.
  $}

  ${
    subaddeqd.a $e |- ( ph -> A e. CC ) $.
    subaddeqd.b $e |- ( ph -> B e. CC ) $.
    subaddeqd.c $e |- ( ph -> C e. CC ) $.
    subaddeqd.d $e |- ( ph -> D e. CC ) $.
    subaddeqd.1 $e |- ( ph -> ( A + B ) = ( C + D ) ) $.
    $( Transfer two terms of a subtraction to an addition in an equality.
       (Contributed by Thierry Arnoux, 2-Feb-2020.) $)
    subaddeqd $p |- ( ph -> ( A - D ) = ( C - B ) ) $=
      ( caddc co cmin oveq1d addcomd eqtrd pnpcan2d pnpcand 3eqtr3d ) ABCKLZECK
      LZMLZEDKLZUAMLZBEMLDCMLAUBDEKLZUAMLUDATUEUAMJNAUEUCUAMADEHIONPABECFIGQAED
      CIHGRS $.
  $}

  ${
    addlsub.a $e |- ( ph -> A e. CC ) $.
    addlsub.b $e |- ( ph -> B e. CC ) $.
    addlsub.c $e |- ( ph -> C e. CC ) $.
    $( Left-subtraction:  Subtraction of the left summand from the result of an
       addition.  (Contributed by BJ, 6-Jun-2019.) $)
    addlsub $p |- ( ph -> ( ( A + B ) = C <-> A = ( C - B ) ) ) $=
      ( caddc co wceq cmin oveq1 pncand wa wi eqtr2 eqcomd a1i mpan2d syl5 eqtr
      npcand impbid ) ABCHIZDJZBDCKIZJZUEUDCKIZUFJZAUGUDDCKLAUIUHBJZUGABCEFMUIU
      JNZUGOAUKUFBUHUFBPQRSTUGUDUFCHIZJZAUEBUFCHLAUMULDJZUEADCGFUBUMUNNUEOAUDUL
      DUARSTUC $.

    $( Right-subtraction:  Subtraction of the right summand from the result of
       an addition.  (Contributed by BJ, 6-Jun-2019.) $)
    addrsub $p |- ( ph -> ( ( A + B ) = C <-> B = ( C - A ) ) ) $=
      ( caddc co wceq cmin addcomd eqeq1d addlsub bitrd ) ABCHIZDJCBHIZDJCDBKIJ
      APQDABCEFLMACBDFEGNO $.

    $( A subtraction law:  Exchanging the subtrahend and the result of the
       subtraction.  (Contributed by BJ, 6-Jun-2019.) $)
    subexsub $p |- ( ph -> ( A = ( C - B ) <-> B = ( C - A ) ) ) $=
      ( caddc co wceq cmin addlsub addrsub bitr3d ) ABCHIDJBDCKIJCDBKIJABCDEFGL
      ABCDEFGMN $.
  $}

  $( If adding a number to a another number yields the other number, the added
     number must be ` 0 ` .  This shows that ` 0 ` is the unique (right)
     identity of the complex numbers.  (Contributed by AV, 17-Jan-2021.) $)
  addid0 $p |- ( ( X e. CC /\ Y e. CC ) -> ( ( X + Y ) = X <-> Y = 0 ) ) $=
    ( cc wcel wa caddc co wceq cc0 simpl simpr subaddd eqcom subid adantr eqtrd
    cmin wi ex syl5bi sylbird oveq2 addid1 sylan9eqr impbid ) ACDZBCDZEZABFGZAH
    ZBIHZUHUJAAQGZBHZUKUHAABUFUGJZUNUFUGKLUFUMUKRUGUMBULHZUFUKULBMUFUOUKUFUOEBU
    LIUFUOKUFULIHUOANOPSTOUAUFUKUJRUGUFUKUJUKUFUIAIFGABIAFUBAUCUDSOUE $.

  $( Adding a nonzero number to a complex number does not yield the complex
     number.  (Contributed by AV, 17-Jan-2021.) $)
  addn0nid $p |- ( ( X e. CC /\ Y e. CC /\ Y =/= 0 ) -> ( X + Y ) =/= X ) $=
    ( cc wcel cc0 wne caddc co wa wceq addid0 biimpd necon3d 3impia ) ACDZBCDZB
    EFABGHZAFOPIZQABERQAJBEJABKLMN $.

  ${
    pnpncand.1 $e |- ( ph -> A e. CC ) $.
    pnpncand.2 $e |- ( ph -> B e. CC ) $.
    pnpncand.3 $e |- ( ph -> C e. CC ) $.
    $( Addition/subtraction cancellation law.  (Contributed by Scott Fenton,
       14-Dec-2017.) $)
    pnpncand $p |- ( ph -> ( ( A + ( B - C ) ) + ( C - B ) ) = A ) $=
      ( cmin co caddc subcld addcld subsub2d pncand eqtr3d ) ABCDHIZJIZPHIQDCHI
      JIBAQCDABPEACDFGKZLFGMABPERNO $.
  $}

  $( Reverse the order of subtraction in an equality.  (Contributed by Scott
     Fenton, 8-Jul-2013.) $)
  subeqrev $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
    ( ( A - B ) = ( C - D ) <-> ( B - A ) = ( D - C ) ) ) $=
    ( cc wcel wa cmin co cneg wb subcl neg11 syl2an negsubdi2 eqeqan12d bitr3d
    wceq ) AEFBEFGZCEFDEFGZGABHIZJZCDHIZJZRZUAUCRZBAHIZDCHIZRSUAEFUCEFUEUFKTABL
    CDLUAUCMNSTUBUGUDUHABOCDOPQ $.

  $( Cancellation law for addition and subtraction with 1.  (Contributed by
     Alexander van der Vekens, 3-Oct-2018.) $)
  pncan1 $p |- ( A e. CC -> ( ( A + 1 ) - 1 ) = A ) $=
    ( cc wcel c1 id 1cnd pncand ) ABCZADHEHFG $.

  $( Cancellation law for subtraction and addition with 1.  (Contributed by
     Alexander van der Vekens, 5-Oct-2018.) $)
  npcan1 $p |- ( A e. CC -> ( ( A - 1 ) + 1 ) = A ) $=
    ( cc wcel c1 id 1cnd npcand ) ABCZADHEHFG $.

  ${
    subeq0bd.1 $e |- ( ph -> A e. CC ) $.
    subeq0bd.2 $e |- ( ph -> A = B ) $.
    $( If two complex numbers are equal, their difference is zero.  Consequence
       of ~ subeq0ad .  Converse of ~ subeq0d .  Contrapositive of ~ subne0ad .
       (Contributed by David Moews, 28-Feb-2017.) $)
    subeq0bd $p |- ( ph -> ( A - B ) = 0 ) $=
      ( cmin co cc0 wceq cc eqeltrrd subeq0ad mpbird ) ABCFGHIBCIEABCDABCJEDKLM
      $.
  $}

  ${
    renegcld.1 $e |- ( ph -> A e. RR ) $.
    $( Closure law for negative of reals.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    renegcld $p |- ( ph -> -u A e. RR ) $=
      ( cr wcel cneg renegcl syl ) ABDEBFDECBGH $.

    resubcld.2 $e |- ( ph -> B e. RR ) $.
    $( Closure law for subtraction of reals.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    resubcld $p |- ( ph -> ( A - B ) e. RR ) $=
      ( cr wcel cmin co resubcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.
  $}

  ${
    $d A x y z $.
    $( The image under negation of a nonempty set of reals is nonempty.
       (Contributed by Paul Chapman, 21-Mar-2011.) $)
    negn0 $p |- ( ( A C_ RR /\ A =/= (/) ) ->
                  { z e. RR | -u z e. A } =/= (/) ) $=
      ( vx vy cr wss c0 wne cv cneg wcel crab wex n0 ssel wb renegcl wceq negeq
      eleq1d elrab3 syl recn negnegd bitrd biimprd elex2 syl6ibr exlimdv syl5bi
      syli syl6 imp ) BEFZBGHZAIZJZBKZAELZGHZUOCIZBKZCMUNUTCBNUNVBUTCUNVBDIUSKD
      MZUTUNVBVAJZUSKZVCVBUNVAEKZVEBEVAOVFVEVBVFVEVDJZBKZVBVFVDEKVEVHPVAQURVHAV
      DEUPVDRUQVGBUPVDSTUAUBVFVGVABVFVAVAUCUDTUEUFUKDVDUSUGULDUSNUHUIUJUM $.
  $}

  ${
    $d A n x y $.
    negf1o.1 $e |- F = ( x e. A |-> -u x ) $.
    $( Negation is an isomorphism of a subset of the real numbers to the
       negated elements of the subset.  (Contributed by AV, 9-Aug-2020.) $)
    negf1o $p |- ( A C_ RR -> F : A -1-1-onto-> { n e. RR | -u n e. A } ) $=
      ( vy cr cv cneg wcel wceq wa imp wi cc recn eleq1d adantl negeq elrab wss
      crab wf1o ccnv cmpt ssel renegcl syl6 negneg syl biimpcd mpd sylanbrc weq
      eqcomd simpr a1i syl5bi wb syl6com ad3antrrr negcon2 syl2anc exp31 impcom
      sylbi f1ocnv2d simpld ) BGUAZBCHZIZBJZCGUBZDUCDUDFVMFHZIZUEKVIAFBVMAHZIZV
      ODEVIVPBJZLZVQGJZVQIZBJZVQVMJVIVRVTVIVRVPGJZVTBGVPUFZVPUGUHMVSWCWBVIVRWCW
      DMVRWCWBNVIWCVRWBWCVPWABWCVPOJZVPWAKVPPZWEWAVPVPUIUOUJQUKRULVLWBCVQGVJVQK
      VKWABVJVQSQTUMVIVNVMJZVOBJZWGVNGJZWHLZVIWHVLWHCVNGCFUNVKVOBVJVNSQTZWJWHNV
      IWIWHUPUQURMVRWGLVIVPVOKVNVQKUSZWGVRVIWLNZWGWJVRWMNWKWJVRVIWLWJVRLZVILWEV
      NOJZWLWNVIWEVRVIWENWJVIVRWCWEWDWFUTRMWIWOWHVRVIVNPVAVPVNVBVCVDVFVEVEVGVH
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Multiplication
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( k times k minus 1 is a complex number if k is a complex number.
     (Contributed by Alexander van der Vekens, 11-Mar-2018.) $)
  kcnktkm1cn $p |- ( K e. CC -> ( K x. ( K - 1 ) ) e. CC ) $=
    ( cc wcel c1 cmin co id peano2cnm mulcld ) ABCZAADEFJGAHI $.

  $( Product of two sums.  (Contributed by NM, 14-Jan-2006.)  (Proof shortened
     by Andrew Salmon, 19-Nov-2011.) $)
  muladd $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
               ( ( A + B ) x. ( C + D ) ) =
       ( ( ( A x. C ) + ( D x. B ) ) + ( ( A x. D ) + ( C x. B ) ) ) ) $=
    ( cc wcel wa caddc co cmul wceq addcl 3expa adantrl oveq12d mulcl ad2ant2lr
    adddir syl2an ad2ant2l adddi adantrr ad2ant2r anandirs add32d mulcom oveq2d
    3expb sylan ad2ant2rl addassd ancoms 3eqtr3d an4s 3eqtrd ) AEFZBEFZGZCEFZDE
    FZGZGZABHIZCDHIJIZVCCJIZVCDJIZHIZACJIZBCJIZHIZADJIZBDJIZHIZHIZVHDBJIZHIZVKC
    BJIZHIHIZURVCEFZVAVDVGKZABLVSUSUTVTVCCDUAUHUIVBVEVJVFVMHURUSVEVJKZUTUPUQUSW
    AABCRMUBURUTVFVMKZUSUPUQUTWBABDRMNOVBVNVHVMHIZVIHIVPVKHIZVQHIVRVBVHVIVMUPUS
    VHEFZUQUTACPZUCZUQUSVIEFUPUTBCPQURUTVMEFZUSUPUQUTWHUPUTGVKEFZVLEFZWHUQUTGZA
    DPZBDPZVKVLLSUDNUEVBWCWDVIVQHVBVHVKHIZVLHIWNVOHIWCWDVBVLVOWNHUQUTVLVOKUPUSB
    DUFTUGVBVHVKVLWGUPUTWIUQUSWLUJZUQUTWJUPUSWMTUKVBVHVKVOWGWOUQUTVOEFZUPUSUTUQ
    WPDBPULZTUEUMUQUSVIVQKUPUTBCUFQOVBVPVKVQUPUSUQUTVPEFZUPUSGWEWPWRWKWFWQVHVOL
    SUNWOUQUSVQEFZUPUTUSUQWSCBPULQUKUOUO $.

  $( Distribution of multiplication over subtraction.  Theorem I.5 of [Apostol]
     p. 18.  (Contributed by NM, 18-Nov-2004.) $)
  subdi $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( A x. ( B - C ) ) = ( ( A x. B ) - ( A x. C ) ) ) $=
    ( cc wcel w3a cmul cmin wceq caddc simp1 simp3 3adant1 adddid pncan3 ancoms
    co subcl oveq2d mulcl eqtr3d 3adant3 3adant2 wa sylan2 3impb subaddd mpbird
    eqcomd ) ADEZBDEZCDEZFZABGQZACGQZHQZABCHQZGQZUMUPURIUOURJQZUNIUMACUQJQZGQUS
    UNUMACUQUJUKULKUJUKULLUKULUQDEZUJBCRZMNUMUTBAGUKULUTBIZUJULUKVCCBOPMSUAUMUN
    UOURUJUKUNDEULABTUBUJULUODEUKACTUCUJUKULURDEZUKULUDUJVAVDVBAUQTUEUFUGUHUI
    $.

  $( Distribution of multiplication over subtraction.  Theorem I.5 of [Apostol]
     p. 18.  (Contributed by NM, 30-Dec-2005.) $)
  subdir $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
               ( ( A - B ) x. C ) = ( ( A x. C ) - ( B x. C ) ) ) $=
    ( cc wcel cmin co cmul wceq subdi 3coml subcl mulcom stoic3 3adant2 3adant1
    w3a oveq12d 3eqtr4d ) ADEZBDEZCDEZQZCABFGZHGZCAHGZCBHGZFGZUDCHGZACHGZBCHGZF
    GUBTUAUEUHICABJKTUAUDDEUBUIUEIABLUDCMNUCUJUFUKUGFTUBUJUFIUAACMOUAUBUKUGITBC
    MPRS $.

  $( The imaginary unit ` _i ` is not zero.  (Contributed by NM,
     6-May-1999.) $)
  ine0 $p |- _i =/= 0 $=
    ( ci cc0 wceq c1 ax-1ne0 neii caddc cmul oveq2 ax-icn mul01i syl6req oveq1d
    co ax-1cn addid2i ax-i2m1 3eqtr3g mto neir ) ABABCZDBCDBEFUABDGNAAHNZDGNDBU
    ABUBDGUAUBABHNBABAHIAJKLMDOPQRST $.

  $( Product with negative is negative of product.  Theorem I.12 of [Apostol]
     p. 18.  (Contributed by NM, 14-May-1999.)  (Proof shortened by Mario
     Carneiro, 27-May-2016.) $)
  mulneg1 $p |- ( ( A e. CC /\ B e. CC ) ->
                 ( -u A x. B ) = -u ( A x. B ) ) $=
    ( cc wcel wa cmin co cmul cneg wceq subdir mp3an1 simpr mul02d oveq1d eqtrd
    cc0 0cn df-neg oveq1i 3eqtr4g ) ACDZBCDZEZQAFGZBHGZQABHGZFGZAIZBHGUGIUDUFQB
    HGZUGFGZUHQCDUBUCUFUKJRQABKLUDUJQUGFUDBUBUCMNOPUIUEBHASTUGSUA $.

  $( The product with a negative is the negative of the product.  (Contributed
     by NM, 30-Jul-2004.) $)
  mulneg2 $p |- ( ( A e. CC /\ B e. CC ) ->
                 ( A x. -u B ) = -u ( A x. B ) ) $=
    ( cc wcel wa cneg cmul co mulneg1 ancoms negcl mulcom sylan2 negeqd 3eqtr4d
    wceq ) ACDZBCDZEZBFZAGHZBAGHZFZATGHZABGHZFRQUAUCPBAIJRQTCDUDUAPBKATLMSUEUBA
    BLNO $.

  $( Swap the negative sign in a product.  (Contributed by NM, 30-Jul-2004.) $)
  mulneg12 $p |- ( ( A e. CC /\ B e. CC ) ->
                  ( -u A x. B ) = ( A x. -u B ) ) $=
    ( cc wcel wa cneg cmul co mulneg1 mulneg2 eqtr4d ) ACDBCDEAFBGHABGHFABFGHAB
    IABJK $.

  $( Product of two negatives.  Theorem I.12 of [Apostol] p. 18.  (Contributed
     by NM, 30-Jul-2004.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  mul2neg $p |- ( ( A e. CC /\ B e. CC ) -> ( -u A x. -u B ) = ( A x. B ) ) $=
    ( cc wcel wa cneg cmul co negcl mulneg12 sylan2 negneg adantl oveq2d eqtrd
    wceq ) ACDZBCDZEZAFBFZGHZATFZGHZABGHRQTCDUAUCPBIATJKSUBBAGRUBBPQBLMNO $.

  $( Convert a subtraction to addition using multiplication by a negative.
     (Contributed by NM, 2-Feb-2007.) $)
  submul2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                 ( A - ( B x. C ) ) = ( A + ( B x. -u C ) ) ) $=
    ( cc wcel cmul co cmin cneg caddc wceq wa adantl oveq2d mulcl negsub sylan2
    mulneg2 eqtr2d 3impb ) ADEZBDEZCDEZABCFGZHGZABCIFGZJGZKUAUBUCLZLZUGAUDIZJGZ
    UEUIUFUJAJUHUFUJKUABCRMNUHUAUDDEUKUEKBCOAUDPQST $.

  $( Product with minus one is negative.  (Contributed by NM, 16-Nov-1999.) $)
  mulm1 $p |- ( A e. CC -> ( -u 1 x. A ) = -u A ) $=
    ( cc wcel c1 cneg cmul co wceq ax-1cn mulneg1 mpan mulid2 negeqd eqtrd ) AB
    CZDEAFGZDAFGZEZAEDBCOPRHIDAJKOQAALMN $.

  $( Addition with product with minus one is a subtraction.  (Contributed by
     AV, 18-Oct-2021.) $)
  addneg1mul $p |- ( ( A e. CC /\ B e. CC )
                     -> ( A + ( -u 1 x. B ) ) = ( A - B ) ) $=
    ( cc wcel wa c1 cneg cmul caddc cmin wceq mulm1 adantl oveq2d negsub eqtrd
    co ) ACDZBCDZEZAFGBHQZIQABGZIQABJQTUAUBAISUAUBKRBLMNABOP $.

  $( Product of two differences.  (Contributed by NM, 14-Jan-2006.) $)
  mulsub $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
               ( ( A - B ) x. ( C - D ) ) =
       ( ( ( A x. C ) + ( D x. B ) ) - ( ( A x. D ) + ( C x. B ) ) ) ) $=
    ( cc wcel wa cneg caddc cmul cmin negsub oveqan12d wceq negcl mulneg2 mulcl
    co ancoms syl2an muladd sylanr2 sylanl2 mul2neg oveq2d negdi eqtr4d ancom2s
    ad2ant2l an42s oveq12d addcl an4s negsubd 3eqtrd eqtr3d ) AEFZBEFZGZCEFZDEF
    ZGZGZABHZIRZCDHZIRZJRZABKRZCDKRZJRACJRZDBJRZIRZADJRZCBJRZIRZKRZUSVBVEVIVGVJ
    JABLCDLMVCVHVKVFVDJRZIRZAVFJRZCVDJRZIRZIRZVMVPHZIRVQURUQVDEFZVBVHWCNZBOVAUQ
    WEGUTVFEFWFDOAVDCVFUAUBUCVCVSVMWBWDIURVAVSVMNUQUTURVAGZVRVLVKIVAURVRVLNDBUD
    SUEUIUQVAURUTWBWDNZUQVAGZUTURWHWIUTURGZGWBVNHZVOHZIRZWDWIWJVTWKWAWLIADPCBPM
    WIVNEFZVOEFZWDWMNWJADQZCBQZVNVOUFTUGUHUJUKVCVMVPUQUTURVAVMEFZUQUTGVKEFVLEFZ
    WRWGACQVAURWSDBQSVKVLULTUMUQVAURUTVPEFZWIWNWOWTURUTGWPUTURWOWQSVNVOULTUJUNU
    OUP $.

  $( Swap the order of subtraction in a multiplication.  (Contributed by Scott
     Fenton, 24-Jun-2013.) $)
  mulsub2 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
    ( ( A - B ) x. ( C - D ) ) = ( ( B - A ) x. ( D - C ) ) ) $=
    ( cc wcel wa cmin co cneg cmul wceq subcl syl2an negsubdi2 oveqan12d eqtr3d
    mul2neg ) AEFBEFGZCEFDEFGZGABHIZJZCDHIZJZKIZUAUCKIZBAHIZDCHIZKISUAEFUCEFUEU
    FLTABMCDMUAUCRNSTUBUGUDUHKABOCDOPQ $.

  ${
    mulm1.1 $e |- A e. CC $.
    $( Product with minus one is negative.  (Contributed by NM,
       31-Jul-1999.) $)
    mulm1i $p |- ( -u 1 x. A ) = -u A $=
      ( cc wcel c1 cneg cmul co wceq mulm1 ax-mp ) ACDEFAGHAFIBAJK $.

    mulneg.2 $e |- B e. CC $.
    $( Product with negative is negative of product.  Theorem I.12 of [Apostol]
       p. 18.  (Contributed by NM, 10-Feb-1995.)  (Revised by Mario Carneiro,
       27-May-2016.) $)
    mulneg1i $p |- ( -u A x. B ) = -u ( A x. B ) $=
      ( cc wcel cneg cmul co wceq mulneg1 mp2an ) AEFBEFAGBHIABHIGJCDABKL $.

    $( Product with negative is negative of product.  (Contributed by NM,
       31-Jul-1999.)  (Revised by Mario Carneiro, 27-May-2016.) $)
    mulneg2i $p |- ( A x. -u B ) = -u ( A x. B ) $=
      ( cc wcel cneg cmul co wceq mulneg2 mp2an ) AEFBEFABGHIABHIGJCDABKL $.

    $( Product of two negatives.  Theorem I.12 of [Apostol] p. 18.
       (Contributed by NM, 14-Feb-1995.)  (Revised by Mario Carneiro,
       27-May-2016.) $)
    mul2negi $p |- ( -u A x. -u B ) = ( A x. B ) $=
      ( cc wcel cneg cmul co wceq mul2neg mp2an ) AEFBEFAGBGHIABHIJCDABKL $.

    subdi.3 $e |- C e. CC $.
    $( Distribution of multiplication over subtraction.  Theorem I.5 of
       [Apostol] p. 18.  (Contributed by NM, 26-Nov-1994.) $)
    subdii $p |- ( A x. ( B - C ) ) = ( ( A x. B ) - ( A x. C ) ) $=
      ( cc wcel cmin co cmul wceq subdi mp3an ) AGHBGHCGHABCIJKJABKJACKJIJLDEFA
      BCMN $.

    $( Distribution of multiplication over subtraction.  Theorem I.5 of
       [Apostol] p. 18.  (Contributed by NM, 8-May-1999.) $)
    subdiri $p |- ( ( A - B ) x. C ) = ( ( A x. C ) - ( B x. C ) ) $=
      ( cc wcel cmin co cmul wceq subdir mp3an ) AGHBGHCGHABIJCKJACKJBCKJIJLDEF
      ABCMN $.

    muladdi.4 $e |- D e. CC $.
    $( Product of two sums.  (Contributed by NM, 17-May-1999.) $)
    muladdi $p |- ( ( A + B ) x. ( C + D ) ) =
        ( ( ( A x. C ) + ( D x. B ) ) + ( ( A x. D ) + ( C x. B ) ) ) $=
      ( cc wcel caddc co cmul wceq muladd mp4an ) AIJBIJCIJDIJABKLCDKLMLACMLDBM
      LKLADMLCBMLKLKLNEFGHABCDOP $.
  $}

  ${
    mulm1d.1 $e |- ( ph -> A e. CC ) $.
    $( Product with minus one is negative.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulm1d $p |- ( ph -> ( -u 1 x. A ) = -u A ) $=
      ( cc wcel c1 cneg cmul co wceq mulm1 syl ) ABDEFGBHIBGJCBKL $.

    mulnegd.2 $e |- ( ph -> B e. CC ) $.
    $( Product with negative is negative of product.  Theorem I.12 of [Apostol]
       p. 18.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    mulneg1d $p |- ( ph -> ( -u A x. B ) = -u ( A x. B ) ) $=
      ( cc wcel cneg cmul co wceq mulneg1 syl2anc ) ABFGCFGBHCIJBCIJHKDEBCLM $.

    $( Product with negative is negative of product.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    mulneg2d $p |- ( ph -> ( A x. -u B ) = -u ( A x. B ) ) $=
      ( cc wcel cneg cmul co wceq mulneg2 syl2anc ) ABFGCFGBCHIJBCIJHKDEBCLM $.

    $( Product of two negatives.  Theorem I.12 of [Apostol] p. 18.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    mul2negd $p |- ( ph -> ( -u A x. -u B ) = ( A x. B ) ) $=
      ( cc wcel cneg cmul co wceq mul2neg syl2anc ) ABFGCFGBHCHIJBCIJKDEBCLM $.

    subdid.3 $e |- ( ph -> C e. CC ) $.
    $( Distribution of multiplication over subtraction.  Theorem I.5 of
       [Apostol] p. 18.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    subdid $p |- ( ph -> ( A x. ( B - C ) ) = ( ( A x. B ) - ( A x. C ) ) ) $=
      ( cc wcel cmin co cmul wceq subdi syl3anc ) ABHICHIDHIBCDJKLKBCLKBDLKJKME
      FGBCDNO $.

    $( Distribution of multiplication over subtraction.  Theorem I.5 of
       [Apostol] p. 18.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    subdird $p |- ( ph -> ( ( A - B ) x. C ) = ( ( A x. C ) - ( B x. C ) ) ) $=
      ( cc wcel cmin co cmul wceq subdir syl3anc ) ABHICHIDHIBCJKDLKBDLKCDLKJKM
      EFGBCDNO $.

    $( Distribution of multiplication over subtraction.  (Contributed by Glauco
       Siliprandi, 5-Apr-2020.) $)
    subdir2d $p |- ( ph -> ( C x. ( A - B ) ) = ( ( C x. A ) - ( C x. B ) ) )
       $=
      ( cmin co cmul subcld mulcomd subdird oveq12d 3eqtrd ) ADBCHIZJIPDJIBDJIZ
      CDJIZHIDBJIZDCJIZHIADPGABCEFKLABCDEFGMAQSRTHABDEGLACDFGLNO $.

    muladdd.4 $e |- ( ph -> D e. CC ) $.
    $( Product of two sums.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    muladdd $p |- ( ph -> ( ( A + B ) x. ( C + D ) ) =
        ( ( ( A x. C ) + ( D x. B ) ) + ( ( A x. D ) + ( C x. B ) ) ) ) $=
      ( cc wcel caddc co cmul wceq muladd syl22anc ) ABJKCJKDJKEJKBCLMDELMNMBDN
      MECNMLMBENMDCNMLMLMOFGHIBCDEPQ $.

    $( Product of two differences.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    mulsubd $p |- ( ph -> ( ( A - B ) x. ( C - D ) ) =
         ( ( ( A x. C ) + ( D x. B ) ) - ( ( A x. D ) + ( C x. B ) ) ) ) $=
      ( cc wcel cmin co cmul caddc wceq mulsub syl22anc ) ABJKCJKDJKEJKBCLMDELM
      NMBDNMECNMOMBENMDCNMOMLMPFGHIBCDEQR $.
  $}

  ${
    muls1d.1 $e |- ( ph -> A e. CC ) $.
    muls1d.2 $e |- ( ph -> B e. CC ) $.
    $( Multiplication by one minus a number.  (Contributed by Scott Fenton,
       23-Dec-2017.) $)
    muls1d $p |- ( ph -> ( A x. ( B - 1 ) ) = ( ( A x. B ) - A ) ) $=
      ( c1 cmin co cmul 1cnd subdid mulid1d oveq2d eqtrd ) ABCFGHIHBCIHZBFIHZGH
      OBGHABCFDEAJKAPBOGABDLMN $.

    $( Multiplication followed by the subtraction of a factor.  (Contributed by
       Alexander van der Vekens, 28-Aug-2018.) $)
    mulsubfacd $p |- ( ph -> ( ( A x. B ) - B ) = ( ( A - 1 ) x. B ) ) $=
      ( c1 cmin co cmul 1cnd subdird mulid2d oveq2d eqtr2d ) ABFGHCIHBCIHZFCIHZ
      GHOCGHABFCDAJEKAPCOGACELMN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordering on reals (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Positive implies nonzero.  (Contributed by NM, 3-Oct-1999.)  (Proof
     shortened by Mario Carneiro, 27-May-2016.) $)
  gt0ne0 $p |- ( ( A e. RR /\ 0 < A ) -> A =/= 0 ) $=
    ( cr wcel cc0 clt wbr wne 0red ltne sylan ) ABCZDBCDAEFADGKHDAIJ $.

  $( A number which is less than zero is not zero.  (Contributed by Stefan
     O'Rear, 13-Sep-2014.) $)
  lt0ne0 $p |- ( ( A e. RR /\ A < 0 ) -> A =/= 0 ) $=
    ( cr wcel cc0 clt wbr wa ltne necomd ) ABCADEFGDAADHI $.

  $( Addition to both sides of 'less than'.  (Contributed by NM, 12-Nov-1999.)
     (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  ltadd1 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A < B <-> ( A + C ) < ( B + C ) ) ) $=
    ( cr wcel w3a clt wbr caddc co ltadd2 simp3 recnd simp1 addcomd simp2 bitrd
    breq12d ) ADEZBDEZCDEZFZABGHCAIJZCBIJZGHACIJZBCIJZGHABCKUBUCUEUDUFGUBCAUBCS
    TUALMZUBASTUANMOUBCBUGUBBSTUAPMORQ $.

  $( Addition to both sides of 'less than or equal to'.  (Contributed by NM,
     18-Oct-1999.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  leadd1 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A <_ B <-> ( A + C ) <_ ( B + C ) ) ) $=
    ( cr w3a clt wbr wn caddc co cle wb ltadd1 3com12 notbid simp1 simp2 lenltd
    wcel readdcld simp3 3bitr4d ) ADSZBDSZCDSZEZBAFGZHBCIJZACIJZFGZHABKGUIUHKGU
    FUGUJUDUCUEUGUJLBACMNOUFABUCUDUEPZUCUDUEQZRUFUIUHUFACUKUCUDUEUAZTUFBCULUMTR
    UB $.

  $( Addition to both sides of 'less than or equal to'.  (Contributed by NM,
     26-Oct-1999.) $)
  leadd2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A <_ B <-> ( C + A ) <_ ( C + B ) ) ) $=
    ( cr wcel w3a cle wbr caddc co leadd1 simp1 recnd simp3 addcomd simp2 bitrd
    breq12d ) ADEZBDEZCDEZFZABGHACIJZBCIJZGHCAIJZCBIJZGHABCKUBUCUEUDUFGUBACUBAS
    TUALMUBCSTUANMZOUBBCUBBSTUAPMUGORQ $.

  $( 'Less than' relationship between subtraction and addition.  (Contributed
     by NM, 21-Jan-1997.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  ltsubadd $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                  ( ( A - B ) < C <-> A < ( C + B ) ) ) $=
    ( cr wcel w3a co clt wbr caddc wb simp1 simp2 resubcld simp3 ltadd1 syl3anc
    cmin recnd npcand breq1d bitrd ) ADEZBDEZCDEZFZABRGZCHIZUGBJGZCBJGZHIZAUJHI
    UFUGDEUEUDUHUKKUFABUCUDUELZUCUDUEMZNUCUDUEOUMUGCBPQUFUIAUJHUFABUFAULSUFBUMS
    TUAUB $.

  $( 'Less than' relationship between subtraction and addition.  (Contributed
     by NM, 21-Jan-1997.) $)
  ltsubadd2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A - B ) < C <-> A < ( B + C ) ) ) $=
    ( cr wcel w3a cmin clt wbr caddc ltsubadd simp2 recnd addcomd breq2d bitr4d
    co simp3 ) ADEZBDEZCDEZFZABGQCHIACBJQZHIABCJQZHIABCKUBUDUCAHUBBCUBBSTUALMUB
    CSTUARMNOP $.

  $( 'Less than or equal to' relationship between subtraction and addition.
     (Contributed by NM, 17-Nov-2004.)  (Proof shortened by Mario Carneiro,
     27-May-2016.) $)
  lesubadd $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A - B ) <_ C <-> A <_ ( C + B ) ) ) $=
    ( cr wcel w3a co cle wbr caddc wb simp1 simp2 resubcld simp3 leadd1 syl3anc
    cmin recnd npcand breq1d bitrd ) ADEZBDEZCDEZFZABRGZCHIZUGBJGZCBJGZHIZAUJHI
    UFUGDEUEUDUHUKKUFABUCUDUELZUCUDUEMZNUCUDUEOUMUGCBPQUFUIAUJHUFABUFAULSUFBUMS
    TUAUB $.

  $( 'Less than or equal to' relationship between subtraction and addition.
     (Contributed by NM, 10-Aug-1999.) $)
  lesubadd2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A - B ) <_ C <-> A <_ ( B + C ) ) ) $=
    ( cr wcel w3a cmin cle wbr caddc lesubadd simp2 recnd addcomd breq2d bitr4d
    co simp3 ) ADEZBDEZCDEZFZABGQCHIACBJQZHIABCJQZHIABCKUBUDUCAHUBBCUBBSTUALMUB
    CSTUARMNOP $.

  $( 'Less than' relationship between addition and subtraction.  (Contributed
     by NM, 17-Nov-2004.) $)
  ltaddsub $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A + B ) < C <-> A < ( C - B ) ) ) $=
    ( cr wcel w3a caddc co clt wbr cmin cle wn wb lesubadd 3com13 resubcl lenlt
    stoic3 wa readdcl sylan2 3impb 3coml 3bitr3rd con4bid ) ADEZBDEZCDEZFZABGHZ
    CIJZACBKHZIJZUJUMALJZCUKLJZUNMZULMZUIUHUGUOUPNCBAOPUIUHUGUOUQNZUIUHUMDEUGUS
    CBQUMARSPUIUGUHUPURNZUIUGUHUTUGUHTUIUKDEUTABUACUKRUBUCUDUEUF $.

  $( 'Less than' relationship between addition and subtraction.  (Contributed
     by NM, 17-Nov-2004.) $)
  ltaddsub2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A + B ) < C <-> B < ( C - A ) ) ) $=
    ( cr wcel w3a caddc co clt wbr cmin wceq cc addcom syl2an 3adant3 breq1d wb
    recn ltaddsub 3com12 bitrd ) ADEZBDEZCDEZFZABGHZCIJBAGHZCIJZBCAKHIJZUFUGUHC
    IUCUDUGUHLZUEUCAMEBMEUKUDASBSABNOPQUDUCUEUIUJRBACTUAUB $.

  $( 'Less than or equal to' relationship between addition and subtraction.
     (Contributed by NM, 6-Apr-2005.) $)
  leaddsub $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A + B ) <_ C <-> A <_ ( C - B ) ) ) $=
    ( cr wcel w3a caddc co cle wbr cmin clt wn wb ltsubadd 3com13 resubcl ltnle
    stoic3 wa readdcl sylan2 3impb 3coml 3bitr3rd con4bid ) ADEZBDEZCDEZFZABGHZ
    CIJZACBKHZIJZUJUMALJZCUKLJZUNMZULMZUIUHUGUOUPNCBAOPUIUHUGUOUQNZUIUHUMDEUGUS
    CBQUMARSPUIUGUHUPURNZUIUGUHUTUGUHTUIUKDEUTABUACUKRUBUCUDUEUF $.

  $( 'Less than or equal to' relationship between and addition and subtraction.
     (Contributed by NM, 6-Apr-2005.) $)
  leaddsub2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A + B ) <_ C <-> B <_ ( C - A ) ) ) $=
    ( cr wcel w3a caddc co cle wbr cmin wceq cc addcom syl2an 3adant3 breq1d wb
    recn leaddsub 3com12 bitrd ) ADEZBDEZCDEZFZABGHZCIJBAGHZCIJZBCAKHIJZUFUGUHC
    IUCUDUGUHLZUEUCAMEBMEUKUDASBSABNOPQUDUCUEUIUJRBACTUAUB $.

  $( Swap subtrahends in an inequality.  (Contributed by NM, 29-Sep-2005.) $)
  suble $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A - B ) <_ C <-> ( A - C ) <_ B ) ) $=
    ( cr wcel w3a cmin co cle wbr caddc lesubadd wb lesubadd2 3com23 bitr4d ) A
    DEZBDEZCDEZFABGHCIJACBKHIJZACGHBIJZABCLQSRUATMACBNOP $.

  $( Swap subtrahends in an inequality.  (Contributed by NM, 29-Sep-2005.)
     (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  lesub $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( A <_ ( B - C ) <-> C <_ ( B - A ) ) ) $=
    ( cr wcel cmin co cle wbr wb w3a caddc leaddsub leaddsub2 bitr3d 3com23 ) A
    DEZCDEZBDEZABCFGHIZCBAFGHIZJQRSKACLGBHITUAACBMACBNOP $.

  $( 'Less than' relationship between subtraction and addition.  (Contributed
     by NM, 4-Oct-1999.) $)
  ltsub23 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( ( A - B ) < C <-> ( A - C ) < B ) ) $=
    ( cr wcel w3a cmin co clt wbr caddc ltsubadd wb ltsubadd2 3com23 bitr4d ) A
    DEZBDEZCDEZFABGHCIJACBKHIJZACGHBIJZABCLQSRUATMACBNOP $.

  $( 'Less than' relationship between subtraction and addition.  (Contributed
     by NM, 17-Nov-2004.) $)
  ltsub13 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                   ( A < ( B - C ) <-> C < ( B - A ) ) ) $=
    ( cr wcel cmin co clt wbr wb w3a caddc ltaddsub ltaddsub2 bitr3d 3com23 ) A
    DEZCDEZBDEZABCFGHIZCBAFGHIZJQRSKACLGBHITUAACBMACBNOP $.

  $( Adding both sides of two 'less than or equal to' relations.  (Contributed
     by NM, 17-Apr-2005.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  le2add $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
                ( ( A <_ C /\ B <_ D ) -> ( A + B ) <_ ( C + D ) ) ) $=
    ( cr wcel wa cle wbr caddc co wb simpll simprl simplr leadd1 syl3anc simprr
    leadd2 readdcld anbi12d wi letr sylbid ) AEFZBEFZGZCEFZDEFZGZGZACHIZBDHIZGA
    BJKZCBJKZHIZUOCDJKZHIZGZUNUQHIZUKULUPUMURUKUEUHUFULUPLUEUFUJMZUGUHUINZUEUFU
    JOZACBPQUKUFUIUHUMURLVCUGUHUIRZVBBDCSQUAUKUNEFUOEFUQEFUSUTUBUKABVAVCTUKCBVB
    VCTUKCDVBVDTUNUOUQUCQUD $.

  $( Adding both sides of two orderings.  (Contributed by NM, 23-Dec-2007.) $)
  ltleadd $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
                ( ( A < C /\ B <_ D ) -> ( A + B ) < ( C + D ) ) ) $=
    ( cr wcel wa clt wbr caddc co wb ltadd1 3com23 3expa adantrr leadd2 readdcl
    cle 3expb adantll anbi12d wi adantr ancoms ad2ant2lr adantl ltletr syl3anc
    sylbid ) AEFZBEFZGZCEFZDEFZGZGZACHIZBDSIZGABJKZCBJKZHIZVACDJKZSIZGZUTVCHIZU
    QURVBUSVDUMUNURVBLZUOUKULUNVGUKUNULVGACBMNOPULUPUSVDLZUKULUNUOVHULUOUNVHBDC
    QNTUAUBUQUTEFZVAEFZVCEFZVEVFUCUMVIUPABRUDULUNVJUKUOUNULVJCBRUEUFUPVKUMCDRUG
    UTVAVCUHUIUJ $.

  $( Adding both sides of two orderings.  (Contributed by NM, 15-Aug-2008.) $)
  leltadd $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
                ( ( A <_ C /\ B < D ) -> ( A + B ) < ( C + D ) ) ) $=
    ( cr wcel wa cle wbr caddc co wi ltleadd ancomsd cc wceq recn addcom syl2an
    clt ancom2s ancom1s breqan12d sylibrd ) AEFZBEFZGZCEFZDEFZGZGACHIZBDTIZGZBA
    JKZDCJKZTIZABJKZCDJKZTIUFUEUJUMUPLZUFUEGZUIUHUSUTUIUHGGULUKUPBADCMNUAUBUGUJ
    UQUNURUOTUEAOFBOFUQUNPUFAQBQABRSUHCOFDOFURUOPUICQDQCDRSUCUD $.

  $( Adding both sides of two 'less than' relations.  Theorem I.25 of [Apostol]
     p. 20.  (Contributed by NM, 15-Aug-1999.)  (Proof shortened by Mario
     Carneiro, 27-May-2016.) $)
  lt2add $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
                ( ( A < C /\ B < D ) -> ( A + B ) < ( C + D ) ) ) $=
    ( cr wcel wa clt wbr cle caddc co wi ltle ad2ant2r leltadd syland ) AEFZBEF
    ZGCEFZDEFZGGACHIZACJIZBDHIABKLCDKLHIRTUBUCMSUAACNOABCDPQ $.

  $( The sum of 2 positive numbers is positive.  (Contributed by NM,
     1-Jun-2005.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  addgt0 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 < A /\ 0 < B ) ) ->
                0 < ( A + B ) ) $=
    ( cr wcel wa cc0 clt wbr caddc co 00id wi 0re lt2add mpanl12 imp syl5eqbrr
    ) ACDBCDEZFAGHFBGHEZEFFFIJZABIJZGKRSTUAGHZFCDZUCRSUBLMMFFABNOPQ $.

  $( The sum of nonnegative and positive numbers is positive.  (Contributed by
     NM, 28-Dec-2005.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  addgegt0 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ A /\ 0 < B ) ) ->
                  0 < ( A + B ) ) $=
    ( cr wcel wa cc0 cle wbr clt caddc co 00id wi 0re leltadd mpanl12 syl5eqbrr
    imp ) ACDBCDEZFAGHFBIHEZEFFFJKZABJKZILSTUAUBIHZFCDZUDSTUCMNNFFABOPRQ $.

  $( The sum of nonnegative and positive numbers is positive.  (Contributed by
     NM, 28-Dec-2005.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  addgtge0 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 < A /\ 0 <_ B ) ) ->
                  0 < ( A + B ) ) $=
    ( cr wcel wa cc0 clt wbr cle caddc co 00id wi 0re ltleadd mpanl12 syl5eqbrr
    imp ) ACDBCDEZFAGHFBIHEZEFFFJKZABJKZGLSTUAUBGHZFCDZUDSTUCMNNFFABOPRQ $.

  $( The sum of 2 nonnegative numbers is nonnegative.  (Contributed by NM,
     17-Mar-2005.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  addge0 $p |- ( ( ( A e. RR /\ B e. RR ) /\
               ( 0 <_ A /\ 0 <_ B ) ) -> 0 <_ ( A + B ) ) $=
    ( cr wcel wa cc0 cle wbr caddc co 00id wi 0re le2add mpanl12 imp syl5eqbrr
    ) ACDBCDEZFAGHFBGHEZEFFFIJZABIJZGKRSTUAGHZFCDZUCRSUBLMMFFABNOPQ $.

  $( Adding a positive number to another number increases it.  (Contributed by
     NM, 17-Nov-2004.) $)
  ltaddpos $p |- ( ( A e. RR /\ B e. RR ) -> ( 0 < A <-> B < ( B + A ) ) ) $=
    ( cr wcel wa cc0 clt wbr caddc co wb ltadd2 mp3an1 wceq recn addid1d adantl
    0re breq1d bitrd ) ACDZBCDZEZFAGHZBFIJZBAIJZGHZBUFGHFCDUAUBUDUGKRFABLMUCUEB
    UFGUBUEBNUAUBBBOPQST $.

  $( Adding a positive number to another number increases it.  (Contributed by
     NM, 8-Apr-2005.) $)
  ltaddpos2 $p |- ( ( A e. RR /\ B e. RR ) -> ( 0 < A <-> B < ( A + B ) ) ) $=
    ( cr wcel wa cc0 clt wbr caddc co ltaddpos wceq addcom syl2an breq2d bitr4d
    cc recn ) ACDZBCDZEZFAGHBBAIJZGHBABIJZGHABKUAUCUBBGSAQDBQDUCUBLTARBRABMNOP
    $.

  $( Subtracting a positive number from another number decreases it.
     (Contributed by NM, 17-Nov-2004.)  (Proof shortened by Andrew Salmon,
     19-Nov-2011.) $)
  ltsubpos $p |- ( ( A e. RR /\ B e. RR ) -> ( 0 < A <-> ( B - A ) < B ) ) $=
    ( cr wcel wa cc0 clt wbr caddc co cmin ltaddpos wb ltsubadd 3anidm13 ancoms
    bitr4d ) ACDZBCDZEFAGHBBAIJGHZBAKJBGHZABLSRUATMZSRUBBABNOPQ $.

  $( Comparison of two numbers whose difference is positive.  (Contributed by
     NM, 17-Nov-2004.) $)
  posdif $p |- ( ( A e. RR /\ B e. RR ) -> ( A < B <-> 0 < ( B - A ) ) ) $=
    ( cr wcel wa cc0 cmin co clt caddc wb resubcl ancoms simpl ltaddpos syl2anc
    wbr cc wceq recn pncan3 syl2an breq2d bitr2d ) ACDZBCDZEZFBAGHZIQZAAUHJHZIQ
    ZABIQUGUHCDZUEUIUKKUFUEULBALMUEUFNUHAOPUGUJBAIUEARDBRDUJBSUFATBTABUAUBUCUD
    $.

  $( Subtraction from both sides of 'less than or equal to'.  (Contributed by
     NM, 13-May-2004.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  lesub1 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A <_ B <-> ( A - C ) <_ ( B - C ) ) ) $=
    ( cr wcel w3a cmin co cle caddc simp1 simp3 simp2 resubcld lesubadd syl3anc
    wbr wb recnd npcand breq2d bitr2d ) ADEZBDEZCDEZFZACGHBCGHZIQZAUGCJHZIQZABI
    QUFUCUEUGDEUHUJRUCUDUEKUCUDUELZUFBCUCUDUEMZUKNACUGOPUFUIBAIUFBCUFBULSUFCUKS
    TUAUB $.

  $( Subtraction of both sides of 'less than or equal to'.  (Contributed by NM,
     29-Sep-2005.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  lesub2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A <_ B <-> ( C - B ) <_ ( C - A ) ) ) $=
    ( cr wcel w3a cle wbr cmin co caddc leadd2 wb simp3 simp1 readdcld lesubadd
    simp2 syl3anc recnd addsubd breq1d 3bitr2d resubcld leaddsub bitrd ) ADEZBD
    EZCDEZFZABGHZCBIJZAKJZCGHZULCAIJGHZUJUKCAKJZCBKJGHZUPBIJZCGHZUNABCLUJUPDEUH
    UIUSUQMUJCAUGUHUINZUGUHUIOZPUGUHUIRZUTUPBCQSUJURUMCGUJCABUJCUTTUJAVATUJBVBT
    UAUBUCUJULDEUGUIUNUOMUJCBUTVBUDVAUTULACUESUF $.

  $( Subtraction from both sides of 'less than'.  (Contributed by FL,
     3-Jan-2008.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  ltsub1 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A < B <-> ( A - C ) < ( B - C ) ) ) $=
    ( cr wcel w3a cle wbr wn cmin co wb lesub1 3com12 notbid simp1 simp2 ltnled
    clt resubcld simp3 3bitr4d ) ADEZBDEZCDEZFZBAGHZIBCJKZACJKZGHZIABSHUIUHSHUF
    UGUJUDUCUEUGUJLBACMNOUFABUCUDUEPZUCUDUEQZRUFUIUHUFACUKUCUDUEUAZTUFBCULUMTRU
    B $.

  $( Subtraction of both sides of 'less than'.  (Contributed by NM,
     29-Sep-2005.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  ltsub2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( A < B <-> ( C - B ) < ( C - A ) ) ) $=
    ( cr wcel w3a cle wbr wn cmin co wb lesub2 3com12 notbid simp1 simp2 ltnled
    clt resubcld simp3 3bitr4d ) ADEZBDEZCDEZFZBAGHZICAJKZCBJKZGHZIABSHUIUHSHUF
    UGUJUDUCUEUGUJLBACMNOUFABUCUDUEPZUCUDUEQZRUFUIUHUFCBUCUDUEUAZULTUFCAUMUKTRU
    B $.

  $( Subtracting both sides of two 'less than' relations.  (Contributed by
     Mario Carneiro, 14-Apr-2016.) $)
  lt2sub $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
                ( ( A < C /\ D < B ) -> ( A - B ) < ( C - D ) ) ) $=
    ( cr wcel wa clt wbr cmin simpll simprl simplr ltsub1 syl3anc simprr ltsub2
    co wb resubcl anbi12d wi adantr resubcld adantl lttr sylbid ) AEFZBEFZGZCEF
    ZDEFZGZGZACHIZDBHIZGABJRZCBJRZHIZURCDJRZHIZGZUQUTHIZUNUOUSUPVAUNUHUKUIUOUSS
    UHUIUMKUJUKULLZUHUIUMMZACBNOUNULUIUKUPVASUJUKULPVEVDDBCQOUAUNUQEFZUREFUTEFZ
    VBVCUBUJVFUMABTUCUNCBVDVEUDUMVGUJCDTUEUQURUTUFOUG $.

  $( Subtracting both sides of two 'less than or equal to' relations.
     (Contributed by Mario Carneiro, 14-Apr-2016.) $)
  le2sub $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
                ( ( A <_ C /\ D <_ B ) -> ( A - B ) <_ ( C - D ) ) ) $=
    ( cr wcel wa cle wbr cmin simpll simprl simplr lesub1 syl3anc simprr lesub2
    co wb resubcl anbi12d wi adantr resubcld adantl letr sylbid ) AEFZBEFZGZCEF
    ZDEFZGZGZACHIZDBHIZGABJRZCBJRZHIZURCDJRZHIZGZUQUTHIZUNUOUSUPVAUNUHUKUIUOUSS
    UHUIUMKUJUKULLZUHUIUMMZACBNOUNULUIUKUPVASUJUKULPVEVDDBCQOUAUNUQEFZUREFUTEFZ
    VBVCUBUJVFUMABTUCUNCBVDVEUDUMVGUJCDTUEUQURUTUFOUG $.

  $( Negative of both sides of 'less than'.  Theorem I.23 of [Apostol] p. 20.
     (Contributed by NM, 27-Aug-1999.)  (Proof shortened by Mario Carneiro,
     27-May-2016.) $)
  ltneg $p |- ( ( A e. RR /\ B e. RR ) -> ( A < B <-> -u B < -u A ) ) $=
    ( cr wcel wa clt wbr cc0 cmin cneg 0re ltsub2 mp3an3 df-neg breq12i syl6bbr
    co wb ) ACDZBCDZEABFGZHBIQZHAIQZFGZBJZAJZFGSTHCDUAUDRKABHLMUEUBUFUCFBNANOP
    $.

  $( Contraposition of negative in 'less than'.  (Contributed by NM,
     8-Nov-2004.) $)
  ltnegcon1 $p |- ( ( A e. RR /\ B e. RR ) -> ( -u A < B <-> -u B < A ) ) $=
    ( cr wcel wa cneg clt wbr wb renegcl ltneg sylan simpl recnd negnegd breq2d
    bitrd ) ACDZBCDZEZAFZBGHZBFZUAFZGHZUCAGHRUACDSUBUEIAJUABKLTUDAUCGTATARSMNOP
    Q $.

  $( Contraposition of negative in 'less than'.  (Contributed by Mario
     Carneiro, 25-Feb-2015.) $)
  ltnegcon2 $p |- ( ( A e. RR /\ B e. RR ) -> ( A < -u B <-> B < -u A ) ) $=
    ( cr wcel wa cneg clt wbr wb renegcl ltneg sylan2 simpr recnd negnegd bitrd
    breq1d ) ACDZBCDZEZABFZGHZUAFZAFZGHZBUDGHSRUACDUBUEIBJAUAKLTUCBUDGTBTBRSMNO
    QP $.

  $( Negative of both sides of 'less than or equal to'.  (Contributed by NM,
     12-Sep-1999.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  leneg $p |- ( ( A e. RR /\ B e. RR ) -> ( A <_ B <-> -u B <_ -u A ) ) $=
    ( cr wcel wa cle wbr cc0 cmin cneg 0re lesub2 mp3an3 df-neg breq12i syl6bbr
    co wb ) ACDZBCDZEABFGZHBIQZHAIQZFGZBJZAJZFGSTHCDUAUDRKABHLMUEUBUFUCFBNANOP
    $.

  $( Contraposition of negative in 'less than or equal to'.  (Contributed by
     NM, 10-May-2004.) $)
  lenegcon1 $p |- ( ( A e. RR /\ B e. RR ) -> ( -u A <_ B <-> -u B <_ A ) ) $=
    ( cr wcel wa cneg cle wbr wb renegcl leneg sylan recn negnegd breq2d adantr
    bitrd ) ACDZBCDZEAFZBGHZBFZTFZGHZUBAGHZRTCDSUAUDIAJTBKLRUDUEISRUCAUBGRAAMNO
    PQ $.

  $( Contraposition of negative in 'less than or equal to'.  (Contributed by
     NM, 8-Oct-2005.) $)
  lenegcon2 $p |- ( ( A e. RR /\ B e. RR ) -> ( A <_ -u B <-> B <_ -u A ) ) $=
    ( cr wcel wa cneg cle wbr wb renegcl sylan2 wceq recn negnegd adantl breq1d
    leneg bitrd ) ACDZBCDZEZABFZGHZUBFZAFZGHZBUEGHTSUBCDUCUFIBJAUBQKUAUDBUEGTUD
    BLSTBBMNOPR $.

  $( Comparison of a number and its negative to zero.  Theorem I.23 of
     [Apostol] p. 20.  (Contributed by NM, 14-May-1999.) $)
  lt0neg1 $p |- ( A e. RR -> ( A < 0 <-> 0 < -u A ) ) $=
    ( cr wcel cc0 clt wbr cneg wb 0re ltneg mpan2 neg0 breq1i syl6bb ) ABCZADEF
    ZDGZAGZEFZDREFODBCPSHIADJKQDRELMN $.

  $( Comparison of a number and its negative to zero.  (Contributed by NM,
     10-May-2004.) $)
  lt0neg2 $p |- ( A e. RR -> ( 0 < A <-> -u A < 0 ) ) $=
    ( cr wcel cc0 clt wbr cneg wb 0re ltneg mpan neg0 breq2i syl6bb ) ABCZDAEFZ
    AGZDGZEFZQDEFDBCOPSHIDAJKRDQELMN $.

  $( Comparison of a number and its negative to zero.  (Contributed by NM,
     10-May-2004.) $)
  le0neg1 $p |- ( A e. RR -> ( A <_ 0 <-> 0 <_ -u A ) ) $=
    ( cr wcel cc0 cle wbr cneg wb 0re leneg mpan2 neg0 breq1i syl6bb ) ABCZADEF
    ZDGZAGZEFZDREFODBCPSHIADJKQDRELMN $.

  $( Comparison of a number and its negative to zero.  (Contributed by NM,
     24-Aug-1999.) $)
  le0neg2 $p |- ( A e. RR -> ( 0 <_ A <-> -u A <_ 0 ) ) $=
    ( cr wcel cc0 cle wbr cneg wb 0re leneg mpan neg0 breq2i syl6bb ) ABCZDAEFZ
    AGZDGZEFZQDEFDBCOPSHIDAJKRDQELMN $.

  $( A number is less than or equal to itself plus a nonnegative number.
     (Contributed by NM, 21-Feb-2005.) $)
  addge01 $p |- ( ( A e. RR /\ B e. RR ) -> ( 0 <_ B <-> A <_ ( A + B ) ) ) $=
    ( cr wcel wa cc0 cle wbr caddc co wb leadd2 mp3an1 ancoms wceq recn addid1d
    0re adantr breq1d bitrd ) ACDZBCDZEZFBGHZAFIJZABIJZGHZAUGGHUCUBUEUHKZFCDUCU
    BUIRFBALMNUDUFAUGGUBUFAOUCUBAAPQSTUA $.

  $( A number is less than or equal to itself plus a nonnegative number.
     (Contributed by NM, 27-Jul-2005.) $)
  addge02 $p |- ( ( A e. RR /\ B e. RR ) -> ( 0 <_ B <-> A <_ ( B + A ) ) ) $=
    ( cr wcel wa cc0 cle wbr caddc co addge01 cc wceq recn addcom syl2an breq2d
    bitrd ) ACDZBCDZEZFBGHAABIJZGHABAIJZGHABKUAUBUCAGSALDBLDUBUCMTANBNABOPQR $.

  $( Two nonnegative numbers are zero iff their sum is zero.  (Contributed by
     Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
     27-May-2016.) $)
  add20 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) )
                        -> ( ( A + B ) = 0 <-> ( A = 0 /\ B = 0 ) ) ) $=
    ( cr wcel cc0 cle wbr wa caddc wceq simpllr simplrl simplll addge02 syl2anc
    co wb mpbid simpr breqtrd simplrr letri3d mpbir2and oveq2d addid1d 3eqtr3rd
    0red recnd jca ex oveq12 00id syl6eq impbid1 ) ACDZEAFGZHZBCDZEBFGZHZHZABIP
    ZEJZAEJZBEJZHZVAVCVFVAVCHZVDVEVGVBAEIPEAVGBEAIVGVEBEFGUSVGBVBEFVGUPBVBFGZUO
    UPUTVCKVGURUOUPVHQUQURUSVCLZUOUPUTVCMZBANORVAVCSZTUQURUSVCUAVGBEVIVGUGUBUCZ
    UDVKVGAVGAVJUHUEUFVLUIUJVFVBEEIPEAEBEIUKULUMUN $.

  $( Nonnegative subtraction.  (Contributed by NM, 14-Mar-2005.)  (Proof
     shortened by Mario Carneiro, 27-May-2016.) $)
  subge0 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( 0 <_ ( A - B ) <-> B <_ A ) ) $=
    ( cr wcel wa cc0 caddc co cle wbr cmin wb 0red simpr simpl leaddsub syl3anc
    recnd addid2d breq1d bitr3d ) ACDZBCDZEZFBGHZAIJZFABKHIJZBAIJUDFCDUCUBUFUGL
    UDMUBUCNZUBUCOFBAPQUDUEBAIUDBUDBUHRSTUA $.

  $( Nonpositive subtraction.  (Contributed by NM, 20-Mar-2008.)  (Proof
     shortened by Mario Carneiro, 27-May-2016.) $)
  suble0 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( ( A - B ) <_ 0 <-> A <_ B ) ) $=
    ( cr wcel wa cmin co cc0 cle wbr wb suble mp3an3 simpl recnd subid1d breq1d
    0re bitrd ) ACDZBCDZEZABFGHIJZAHFGZBIJZABIJTUAHCDUCUEKRABHLMUBUDABIUBAUBATU
    ANOPQS $.

  $( The sum of a real number and a second real number is less than the real
     number iff the second real number is negative.  (Contributed by Alexander
     van der Vekens, 30-May-2018.) $)
  leaddle0 $p |- ( ( A e. RR /\ B e. RR ) -> ( ( A + B ) <_ A <-> B <_ 0 ) ) $=
    ( cr wcel wa caddc co cle wbr cmin wb leaddsub2 3anidm13 wceq subidd adantr
    cc0 recn breq2d bitrd ) ACDZBCDZEZABFGAHIZBAAJGZHIZBQHIUAUBUDUFKABALMUCUEQB
    HUAUEQNUBUAAAROPST $.

  $( Nonnegative subtraction.  (Contributed by NM, 27-Jul-2005.) $)
  subge02 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( 0 <_ B <-> ( A - B ) <_ A ) ) $=
    ( cr wcel wa cc0 cle wbr caddc co cmin addge01 wb lesubadd 3anidm13 bitr4d
    ) ACDZBCDZEFBGHAABIJGHZABKJAGHZABLQRTSMABANOP $.

  $( Lemma to show a nonnegative number is zero.  (Contributed by NM,
     8-Oct-1999.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  lesub0 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( ( 0 <_ A /\ B <_ ( B - A ) ) <-> A = 0 ) ) $=
    ( cr wcel wa cc0 wceq cle wbr cmin co 0red letri3 sylan2 ancom simpr lesub2
    wb simpl syl3anc recnd subid1d breq1d bitrd ancoms anbi2d syl5bb bitr2d ) A
    CDZBCDZEZAFGZAFHIZFAHIZEZUNBBAJKZHIZEZUJUIFCDZULUORUJLAFMNUOUNUMEUKURUMUNOU
    KUMUQUNUJUIUMUQRUJUIEZUMBFJKZUPHIZUQUTUIUSUJUMVBRUJUIPUTLUJUISZAFBQTUTVABUP
    HUTBUTBVCUAUBUCUDUEUFUGUH $.

  $( The product of two nonnegative numbers is nonnegative.  (Contributed by
     NM, 8-Oct-1999.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  mulge0 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\
                ( B e. RR /\ 0 <_ B ) ) -> 0 <_ ( A x. B ) ) $=
    ( cr wcel cc0 cle wbr cmul co wa clt wceq 0red leloed an4s syl5breqr breq2d
    wo recnd syl5ibcom simpl simpr anbi12d simpll simplr remulcld mulgt0 ex 0re
    ltled leid ax-mp mul02d oveq1 adantrd mul01d oveq2 adantld ccased sylbid
    imp ) ACDZBCDZEAFGZEBFGZEABHIZFGZVBVCJZVDVEJZVGVHVIEAKGZEALZRZEBKGZEBLZRZJV
    GVHVDVLVEVOVHEAVHMZVBVCUAZNVHEBVPVBVCUBZNUCVHVJVMVKVNVGVHVJVMJZVGVHVSJZEVFV
    TMVTABVBVCVSUDVBVCVSUEUFVBVJVCVMEVFKGABUGOUJUHVHVKVGVMVHEEBHIZFGVKVGVHEEWAF
    ECDEEFGUIEUKULZVHBVHBVRSUMPVKWAVFEFEABHUNQTUOVHVNVGVJVHEAEHIZFGVNVGVHEEWCFW
    BVHAVHAVQSUPPVNWCVFEFEBAHUQQTZURVHVNVGVKWDURUSUTVAO $.

  $( The product of two negative numbers is positive.  (Contributed by Jeff
     Hankins, 8-Jun-2009.) $)
  mullt0 $p |- ( ( ( A e. RR /\ A < 0 ) /\ ( B e. RR /\ B < 0 ) )
               -> 0 < ( A x. B ) ) $=
    ( cr wcel cc0 clt wbr wa cneg cmul renegcl adantr lt0neg1 biimpa jca mulgt0
    co syl2an cc recn wceq mul2neg ad2ant2r breqtrd ) ACDZAEFGZHZBCDZBEFGZHZHEA
    IZBIZJQZABJQZFUGUKCDZEUKFGZHULCDZEULFGZHEUMFGUJUGUOUPUEUOUFAKLUEUFUPAMNOUJU
    QURUHUQUIBKLUHUIURBMNOUKULPRUEUHUMUNUAZUFUIUEASDBSDUSUHATBTABUBRUCUD $.

  $( A nonzero square is positive.  Theorem I.20 of [Apostol] p. 20.
     (Contributed by NM, 6-May-1999.)  (Proof shortened by Mario Carneiro,
     27-May-2016.) $)
  msqgt0 $p |- ( ( A e. RR /\ A =/= 0 ) -> 0 < ( A x. A ) ) $=
    ( cr wcel cc0 wne clt wbr wo cmul co id lttri2d biimpa mullt0 anidms mulgt0
    0red wa jaodan syldan ) ABCZADEZADFGZDAFGZHZDAAIJFGZUAUBUEUAADUAKUAQLMUAUCU
    FUDUAUCRUFAANOUAUDRUFAAPOST $.

  $( A square is nonnegative.  (Contributed by NM, 23-May-2007.)  (Revised by
     Mario Carneiro, 27-May-2016.) $)
  msqge0 $p |- ( A e. RR -> 0 <_ ( A x. A ) ) $=
    ( cr wcel cc0 cmul co cle wbr oveq12 anidms 0cn mul01i syl6eq breq2d wne wa
    wceq 0red simpl remulcld msqgt0 ltled 0re leid mp1i pm2.61ne ) ABCZDAAEFZGH
    DDGHZADADQZUHDDGUJUHDDEFZDUJUHUKQADADEIJDKLMNUGADOZPZDUHUMRUMAAUGULSZUNTAUA
    UBDBCUIUGUCDUDUEUF $.

  $( 0 is less than 1.  Theorem I.21 of [Apostol] p. 20.  (Contributed by NM,
     17-Jan-1997.) $)
  0lt1 $p |- 0 < 1 $=
    ( cc0 c1 cmul co clt wcel wne wbr 1re ax-1ne0 msqgt0 ax-1cn mulid1i breqtri
    cr mp2an ) ABBCDZBEBOFBAGAQEHIJBKPBLMN $.

  $( 0 is less than or equal to 1.  (Contributed by Mario Carneiro,
     29-Apr-2015.) $)
  0le1 $p |- 0 <_ 1 $=
    ( cc0 c1 0re 1re 0lt1 ltleii ) ABCDEF $.

  $( An interval law for less than or equal.  (Contributed by Scott Fenton,
     27-Jun-2013.) $)
  relin01 $p |- ( A e. RR ->
    ( A <_ 0 \/ ( 0 <_ A /\ A <_ 1 ) \/ 1 <_ A ) ) $=
    ( cr cc0 cle wbr c1 wa wo w3o 1re letric mpan2 pm3.21 orim2d syl5com orim1d
    wcel 0re mpd df-3or sylibr ) ABQZACDEZCADEZAFDEZGZHZFADEZHZUCUFUHIUBUEUHHZU
    IUBFBQUJJAFKLUBUEUGUHUBUCUDHZUEUGUBCBQUKRACKLUEUDUFUCUEUDMNOPSUCUFUHTUA $.

  ${
    $d x B $.  $d x y C $.  $d x y D $.  $d x y M $.  $d x y N $.  $d x y ph $.
    $d x y S $.
    ltord.1 $e |- ( x = y -> A = B ) $.
    ltord.2 $e |- ( x = C -> A = M ) $.
    ltord.3 $e |- ( x = D -> A = N ) $.
    ltord.4 $e |- S C_ RR $.
    ltord.5 $e |- ( ( ph /\ x e. S ) -> A e. RR ) $.
    ${
      ltord.6 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x < y -> A < B ) ) $.
      $( Lemma for ~ ltord1 .  (Contributed by Mario Carneiro, 14-Jun-2014.) $)
      ltordlem $p |- ( ( ph /\ ( C e. S /\ D e. S ) ) ->
                        ( C < D -> M < N ) ) $=
        ( clt wbr wi wceq cv wral wcel wa ralrimivva breq1 breq1d imbi12d breq2
        eqeq1 eqeq1d chvarv breq2d rspc2v mpan9 ) ABUAZCUAZQRZDEQRZSZCHUBBHUBFH
        UCGHUCUDFGQRZIJQRZSZAUTBCHHPUEUTVCFUQQRZIEQRZSBCFGHHUPFTZURVDUSVEUPFUQQ
        UFVFDIEQLUGUHUQGTZVDVAVEVBUQGFQUIVGEJIQUPGTZDJTZSVGEJTZSBCUPUQTZVHVGVIV
        JUPUQGUJVKDEJKUKUHMULUMUHUNUO $.

      $( Infer an ordering relation from a proof in only one direction.
         (Contributed by Mario Carneiro, 14-Jun-2014.) $)
      ltord1 $p |- ( ( ph /\ ( C e. S /\ D e. S ) ) -> ( C < D <-> M < N ) ) $=
        ( wcel clt wceq cr wa wbr ltordlem wo wn wi eqeq1 eqeq1d imbi12d vtoclg
        cv ad2antrl ancom2s orim12d con3d wb ralrimiva eleq1d rspccva anim12dan
        wral sylan axlttri syl sseli syl2an adantl 3imtr4d impbid ) AFHQZGHQZUA
        ZUAZFGRUBZIJRUBZABCDEFGHIJKLMNOPUCVMIJSZJIRUBZUDZUEZFGSZGFRUBZUDZUEZVOV
        NVMWBVRVMVTVPWAVQVJVTVPUFZAVKBUKZGSZDJSZUFWDBFHWEFSZWFVTWGVPWEFGUGWHDIJ
        LUHUIMUJULAVKVJWAVQUFABCDEGFHJIKMLNOPUCUMUNUOVMITQZJTQZUAVOVSUPAVJWIVKW
        JADTQZBHVAZVJWIAWKBHOUQZWKWIBFHWHDITLURUSVBAWLVKWJWMWKWJBGHWFDJTMURUSVB
        UTIJVCVDVLVNWCUPZAVJFTQGTQWNVKHTFNVEHTGNVEFGVCVFVGVHVI $.

      $( Infer an ordering relation from a proof in only one direction.
         (Contributed by Mario Carneiro, 14-Jun-2014.) $)
      leord1 $p |- ( ( ph /\ ( C e. S /\ D e. S ) ) ->
                     ( C <_ D <-> M <_ N ) ) $=
        ( wcel wa wbr cr clt wn cle wb ltord1 ancom2s notbid sseli lenlt syl2an
        adantl wral ralrimiva wceq eleq1d rspccva sylan adantrr adantrl 3bitr4d
        cv lenltd ) AFHQZGHQZRZRZGFUASZUBZJIUASZUBFGUCSZIJUCSVFVGVIAVDVCVGVIUDA
        BCDEGFHJIKMLNOPUEUFUGVEVJVHUDZAVCFTQGTQVKVDHTFNUHHTGNUHFGUIUJUKVFIJAVCI
        TQZVDADTQZBHULZVCVLAVMBHOUMZVMVLBFHBVAZFUNDITLUOUPUQURAVDJTQZVCAVNVDVQV
        OVMVQBGHVPGUNDJTMUOUPUQUSVBUT $.

      $( Infer an ordering relation from a proof in only one direction.
         (Contributed by Mario Carneiro, 14-Jun-2014.) $)
      eqord1 $p |- ( ( ph /\ ( C e. S /\ D e. S ) ) -> ( C = D <-> M = N ) ) $=
        ( wcel wa cle cr wbr wceq leord1 wb ancom2s anbi12d sseli letri3 syl2an
        adantl wral ralrimiva cv eleq1d rspccva adantrr adantrl letri3d 3bitr4d
        sylan ) AFHQZGHQZRZRZFGSUAZGFSUAZRZIJSUAZJISUAZRFGUBZIJUBVDVEVHVFVIABCD
        EFGHIJKLMNOPUCAVBVAVFVIUDABCDEGFHJIKMLNOPUCUEUFVCVJVGUDZAVAFTQGTQVKVBHT
        FNUGHTGNUGFGUHUIUJVDIJAVAITQZVBADTQZBHUKZVAVLAVMBHOULZVMVLBFHBUMZFUBDIT
        LUNUOUTUPAVBJTQZVAAVNVBVQVOVMVQBGHVPGUBDJTMUNUOUTUQURUS $.
    $}

    ltord2.6 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x < y -> B < A ) ) $.
    $( Infer an ordering relation from a proof in only one direction.
       (Contributed by Mario Carneiro, 14-Jun-2014.) $)
    ltord2 $p |- ( ( ph /\ ( C e. S /\ D e. S ) ) -> ( C < D <-> N < M ) ) $=
      ( wcel clt wbr cr cneg wceq negeqd renegcld wral ralrimiva eleq1d rspccva
      wa cv wb sylan adantrl adantrr ltneg syl2anc sylibd ltord1 bitr4d ) AFHQZ
      GHQZUIUIZFGRSIUAZJUAZRSZJIRSZABCDUAZEUAZFGHVCVDBUJZCUJZUBZDEKUCVIFUBZDILU
      CVIGUBZDJMUCNAVIHQZUIDOUDAVNVJHQZUIUIZVIVJRSEDRSZVGVHRSZPVPETQZDTQZVQVRUK
      AVOVSVNAVTBHUEZVOVSAVTBHOUFZVTVSBVJHVKDETKUGUHULUMAVNVTVOOUNEDUOUPUQURVBJ
      TQZITQZVFVEUKAVAWCUTAWAVAWCWBVTWCBGHVMDJTMUGUHULUMAUTWDVAAWAUTWDWBVTWDBFH
      VLDITLUGUHULUNJIUOUPUS $.

    $( Infer an ordering relation from a proof in only one direction.
       (Contributed by Mario Carneiro, 14-Jun-2014.) $)
    leord2 $p |- ( ( ph /\ ( C e. S /\ D e. S ) ) -> ( C <_ D <-> N <_ M ) ) $=
      ( wcel wa wbr cr cle cneg cv wceq negeqd renegcld clt wb ralrimiva eleq1d
      rspccva sylan adantrl adantrr ltneg syl2anc sylibd leord1 leneg bitr4d
      wral ) AFHQZGHQZRRZFGUASIUBZJUBZUASZJIUASZABCDUBZEUBZFGHVEVFBUCZCUCZUDZDE
      KUEVKFUDZDILUEVKGUDZDJMUENAVKHQZRDOUFAVPVLHQZRRZVKVLUGSEDUGSZVIVJUGSZPVRE
      TQZDTQZVSVTUHAVQWAVPAWBBHVAZVQWAAWBBHOUIZWBWABVLHVMDETKUJUKULUMAVPWBVQOUN
      EDUOUPUQURVDJTQZITQZVHVGUHAVCWEVBAWCVCWEWDWBWEBGHVODJTMUJUKULUMAVBWFVCAWC
      VBWFWDWBWFBFHVNDITLUJUKULUNJIUSUPUT $.

    $( Infer an ordering relation from a proof in only one direction.
       (Contributed by Mario Carneiro, 14-Jun-2014.) $)
    eqord2 $p |- ( ( ph /\ ( C e. S /\ D e. S ) ) -> ( C = D <-> M = N ) ) $=
      ( wcel wa wceq cr cneg cv negeqd renegcld clt wb ralrimiva eleq1d rspccva
      wbr sylan adantrl adantrr ltneg syl2anc sylibd eqord1 recnd neg11ad bitrd
      wral ) AFHQZGHQZRRZFGSIUAZJUAZSIJSABCDUAZEUAZFGHVEVFBUBZCUBZSZDEKUCVIFSZD
      ILUCVIGSZDJMUCNAVIHQZRDOUDAVNVJHQZRRZVIVJUEUJEDUEUJZVGVHUEUJZPVPETQZDTQZV
      QVRUFAVOVSVNAVTBHVAZVOVSAVTBHOUGZVTVSBVJHVKDETKUHUIUKULAVNVTVOOUMEDUNUOUP
      UQVDIJVDIAVBITQZVCAWAVBWCWBVTWCBFHVLDITLUHUIUKUMURVDJAVCJTQZVBAWAVCWDWBVT
      WDBGHVMDJTMUHUIUKULURUSUT $.
  $}

  ${
    $d w x y z ph $.  $d w x y z S $.  $d x y ps $.  $d w z ch $.
    wlogle.1 $e |- ( ( z = x /\ w = y ) -> ( ps <-> ch ) ) $.
    wlogle.2 $e |- ( ( z = y /\ w = x ) -> ( ps <-> th ) ) $.
    wlogle.3 $e |- ( ph -> S C_ RR ) $.
    ${
      wloglei.4 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ x <_ y ) ) -> th ) $.
      wloglei.5 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ x <_ y ) ) -> ch ) $.
      $( Form of ~ wlogle where both sides of the equivalence are proven rather
         than showing that they are equivalent to each other.  (Contributed by
         Mario Carneiro, 9-Mar-2015.) $)
      wloglei $p |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ch ) $=
        ( cv wcel wa cle vex weq cr wss adantr simprr sseldd simprl wi bi2anan9
        wbr eleq1 anbi2d wb breq12 ancoms anbi12d imbi12d syl5bb equcom syl2anb
        ancom bicomd w3a df-3an sylan2br anassrs vtocl2 lecasei ) AEOZIPZFOZIPZ
        QZQZCVJVHVMIUAVJAIUAUBVLLUCZAVIVKUDUEVMIUAVHVNAVIVKUFUEAGOZIPZHOZIPZQZQ
        ZVQVORUIZQZBUGZVMVJVHRUIZQZCUGGHVHVJESFSGETZHFTZQZWBWEBCWHVTVMWAWDWHVSV
        LAWFVPVIWGVRVKVOVHIUJVQVJIUJUHUKWGWFWAWDULVQVJVOVHRUMUNUOJUPVMVHVJRUIZQ
        ZDUGWCFEVOVQGSHSFGTZEHTZQZWJWBDBWMVMVTWIWAWMVLVSAVLVKVIQWMVSVIVKUTWKVKV
        PWLVIVRVJVOIUJVHVQIUJUHUQUKWLWKWIWAULVHVQVJVORUMUNUOWMBDWKGFTHETBDULWLF
        GUREHURKUSVAUPAVLWIDVLWIQZAVIVKWIVBZDVIVKWIVCZMVDVEVFVFAVLWICWNAWOCWPNV
        DVEVG $.
    $}

    wlogle.4 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( ch <-> th ) ) $.
    wlogle.5 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ x <_ y ) ) -> ch ) $.
    $( If the predicate ` ch ( x , y ) ` is symmetric under interchange of
       ` x , y ` , then "without loss of generality" we can assume that
       ` x <_ y ` .  (Contributed by Mario Carneiro, 18-Aug-2014.)  (Revised by
       Mario Carneiro, 11-Sep-2014.) $)
    wlogle $p |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ch ) $=
      ( cv wcel cle wbr w3a wa wb 3adantr3 mpbid wloglei ) ABCDEFGHIJKLAEOZIPZF
      OZIPZUEUGQRZSTCDNAUFUHCDUAUIMUBUCNUD $.
  $}

  ${
    lt2.1 $e |- A e. RR $.
    $( 'Less than or equal to' is reflexive.  (Contributed by NM,
       18-Aug-1999.) $)
    leidi $p |- A <_ A $=
      ( cr wcel cle wbr leid ax-mp ) ACDAAEFBAGH $.

    $( Positive means nonzero (useful for ordering theorems involving
       division).  (Contributed by NM, 16-Sep-1999.) $)
    gt0ne0i $p |- ( 0 < A -> A =/= 0 ) $=
      ( cc0 0re ltnei ) CADBE $.

    ${
      gt0ne0i.2 $e |- 0 < A $.
      $( Positive implies nonzero.  (Contributed by NM, 15-May-1999.) $)
      gt0ne0ii $p |- A =/= 0 $=
        ( cc0 clt wbr wne gt0ne0i ax-mp ) DAEFADGCABHI $.
    $}

    $( A nonzero square is positive.  Theorem I.20 of [Apostol] p. 20.
       (Contributed by NM, 17-Jan-1997.)  (Revised by Mario Carneiro,
       27-May-2016.) $)
    msqgt0i $p |- ( A =/= 0 -> 0 < ( A x. A ) ) $=
      ( cr wcel cc0 wne cmul co clt wbr msqgt0 mpan ) ACDAEFEAAGHIJBAKL $.

    $( A square is nonnegative.  (Contributed by NM, 14-May-1999.)  (Proof
       shortened by Andrew Salmon, 19-Nov-2011.) $)
    msqge0i $p |- 0 <_ ( A x. A ) $=
      ( cr wcel cc0 cmul co cle wbr msqge0 ax-mp ) ACDEAAFGHIBAJK $.

    lt2.2 $e |- B e. RR $.
    $( Addition of 2 positive numbers is positive.  (Contributed by NM,
       16-May-1999.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
    addgt0i $p |- ( ( 0 < A /\ 0 < B ) -> 0 < ( A + B ) ) $=
      ( cr wcel cc0 clt wbr wa caddc co addgt0 mpanl12 ) AEFBEFGAHIGBHIJGABKLHI
      CDABMN $.

    $( Addition of 2 nonnegative numbers is nonnegative.  (Contributed by NM,
       28-May-1999.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
    addge0i $p |- ( ( 0 <_ A /\ 0 <_ B ) -> 0 <_ ( A + B ) ) $=
      ( cr wcel cc0 cle wbr wa caddc co addge0 mpanl12 ) AEFBEFGAHIGBHIJGABKLHI
      CDABMN $.

    $( Addition of nonnegative and positive numbers is positive.  (Contributed
       by NM, 25-Sep-1999.)  (Revised by Mario Carneiro, 27-May-2016.) $)
    addgegt0i $p |- ( ( 0 <_ A /\ 0 < B ) -> 0 < ( A + B ) ) $=
      ( cr wcel cc0 cle wbr clt wa caddc co addgegt0 mpanl12 ) AEFBEFGAHIGBJIKG
      ABLMJICDABNO $.

    ${
      addgt0i.3 $e |- 0 < A $.
      addgt0i.4 $e |- 0 < B $.
      $( Addition of 2 positive numbers is positive.  (Contributed by NM,
         18-May-1999.) $)
      addgt0ii $p |- 0 < ( A + B ) $=
        ( cc0 clt wbr caddc co addgt0i mp2an ) GAHIGBHIGABJKHIEFABCDLM $.
    $}

    $( Two nonnegative numbers are zero iff their sum is zero.  (Contributed by
       NM, 28-Jul-1999.) $)
    add20i $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
      ( ( A + B ) = 0 <-> ( A = 0 /\ B = 0 ) ) ) $=
      ( cr wcel cc0 cle wbr wa caddc co wceq wb add20 an4s mpanl12 ) AEFZBEFZGA
      HIZGBHIZJABKLGMAGMBGMJNZCDRTSUAUBABOPQ $.

    $( Negative of both sides of 'less than'.  Theorem I.23 of [Apostol] p. 20.
       (Contributed by NM, 21-Jan-1997.) $)
    ltnegi $p |- ( A < B <-> -u B < -u A ) $=
      ( cr wcel clt wbr cneg wb ltneg mp2an ) AEFBEFABGHBIAIGHJCDABKL $.

    $( Negative of both sides of 'less than or equal to'.  (Contributed by NM,
       1-Aug-1999.) $)
    lenegi $p |- ( A <_ B <-> -u B <_ -u A ) $=
      ( cr wcel cle wbr cneg wb leneg mp2an ) AEFBEFABGHBIAIGHJCDABKL $.

    $( Contraposition of negative in 'less than'.  (Contributed by NM,
       14-May-1999.) $)
    ltnegcon2i $p |- ( A < -u B <-> B < -u A ) $=
      ( cr wcel cneg clt wbr wb ltnegcon2 mp2an ) AEFBEFABGHIBAGHIJCDABKL $.

    $( The product of two nonnegative numbers is nonnegative.  (Contributed by
       NM, 30-Jul-1999.) $)
    mulge0i $p |- ( ( 0 <_ A /\ 0 <_ B ) -> 0 <_ ( A x. B ) ) $=
      ( cr wcel cc0 cle wbr wa cmul co mulge0 an4s mpanl12 ) AEFZBEFZGAHIZGBHIZ
      JGABKLHIZCDPRQSTABMNO $.

    $( Lemma to show a nonnegative number is zero.  (Contributed by NM,
       8-Oct-1999.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
    lesub0i $p |- ( ( 0 <_ A /\ B <_ ( B - A ) ) <-> A = 0 ) $=
      ( cr wcel cc0 cle wbr cmin co wa wceq wb lesub0 mp2an ) AEFBEFGAHIBBAJKHI
      LAGMNCDABOP $.

    $( Adding a positive number to another number increases it.  (Contributed
       by NM, 25-Aug-1999.) $)
    ltaddposi $p |- ( 0 < A <-> B < ( B + A ) ) $=
      ( cr wcel cc0 clt wbr caddc co wb ltaddpos mp2an ) AEFBEFGAHIBBAJKHILCDAB
      MN $.

    $( Comparison of two numbers whose difference is positive.  (Contributed by
       NM, 19-Aug-2001.) $)
    posdifi $p |- ( A < B <-> 0 < ( B - A ) ) $=
      ( cr wcel clt wbr cc0 cmin co wb posdif mp2an ) AEFBEFABGHIBAJKGHLCDABMN
      $.

    $( Contraposition of negative in 'less than'.  (Contributed by NM,
       14-May-1999.) $)
    ltnegcon1i $p |- ( -u A < B <-> -u B < A ) $=
      ( cr wcel cneg clt wbr wb ltnegcon1 mp2an ) AEFBEFAGBHIBGAHIJCDABKL $.

    $( Contraposition of negative in 'less than or equal to'.  (Contributed by
       NM, 6-Apr-2005.) $)
    lenegcon1i $p |- ( -u A <_ B <-> -u B <_ A ) $=
      ( cr wcel cneg cle wbr wb lenegcon1 mp2an ) AEFBEFAGBHIBGAHIJCDABKL $.

    $( Nonnegative subtraction.  (Contributed by NM, 13-Aug-2000.) $)
    subge0i $p |- ( 0 <_ ( A - B ) <-> B <_ A ) $=
      ( cr wcel cc0 cmin co cle wbr wb subge0 mp2an ) AEFBEFGABHIJKBAJKLCDABMN
      $.

    lt2.3 $e |- C e. RR $.
    $( Addition to both sides of 'less than'.  Theorem I.18 of [Apostol] p. 20.
       (Contributed by NM, 21-Jan-1997.) $)
    ltadd1i $p |- ( A < B <-> ( A + C ) < ( B + C ) ) $=
      ( cr wcel clt wbr caddc co wb ltadd1 mp3an ) AGHBGHCGHABIJACKLBCKLIJMDEFA
      BCNO $.

    $( Addition to both sides of 'less than or equal to'.  (Contributed by NM,
       11-Aug-1999.) $)
    leadd1i $p |- ( A <_ B <-> ( A + C ) <_ ( B + C ) ) $=
      ( cr wcel cle wbr caddc co wb leadd1 mp3an ) AGHBGHCGHABIJACKLBCKLIJMDEFA
      BCNO $.

    $( Addition to both sides of 'less than or equal to'.  (Contributed by NM,
       11-Aug-1999.) $)
    leadd2i $p |- ( A <_ B <-> ( C + A ) <_ ( C + B ) ) $=
      ( cr wcel cle wbr caddc co wb leadd2 mp3an ) AGHBGHCGHABIJCAKLCBKLIJMDEFA
      BCNO $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by NM, 21-Jan-1997.)  (Proof shortened by Andrew Salmon,
       19-Nov-2011.) $)
    ltsubaddi $p |- ( ( A - B ) < C <-> A < ( C + B ) ) $=
      ( cr wcel cmin co clt wbr caddc wb ltsubadd mp3an ) AGHBGHCGHABIJCKLACBMJ
      KLNDEFABCOP $.

    $( 'Less than or equal to' relationship between subtraction and addition.
       (Contributed by NM, 30-Sep-1999.)  (Proof shortened by Andrew Salmon,
       19-Nov-2011.) $)
    lesubaddi $p |- ( ( A - B ) <_ C <-> A <_ ( C + B ) ) $=
      ( cr wcel cmin co cle wbr caddc wb lesubadd mp3an ) AGHBGHCGHABIJCKLACBMJ
      KLNDEFABCOP $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by NM, 21-Jan-1997.) $)
    ltsubadd2i $p |- ( ( A - B ) < C <-> A < ( B + C ) ) $=
      ( cr wcel cmin co clt wbr caddc wb ltsubadd2 mp3an ) AGHBGHCGHABIJCKLABCM
      JKLNDEFABCOP $.

    $( 'Less than or equal to' relationship between subtraction and addition.
       (Contributed by NM, 3-Aug-1999.) $)
    lesubadd2i $p |- ( ( A - B ) <_ C <-> A <_ ( B + C ) ) $=
      ( cr wcel cmin co cle wbr caddc wb lesubadd2 mp3an ) AGHBGHCGHABIJCKLABCM
      JKLNDEFABCOP $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by NM, 14-May-1999.) $)
    ltaddsubi $p |- ( ( A + B ) < C <-> A < ( C - B ) ) $=
      ( cr wcel caddc co clt wbr cmin wb ltaddsub mp3an ) AGHBGHCGHABIJCKLACBMJ
      KLNDEFABCOP $.

    lt.4 $e |- D e. RR $.
    $( Adding both side of two inequalities.  Theorem I.25 of [Apostol] p. 20.
       (Contributed by NM, 14-May-1999.) $)
    lt2addi $p |- ( ( A < C /\ B < D ) -> ( A + B ) < ( C + D ) ) $=
      ( cr wcel clt wbr wa caddc co wi lt2add mp4an ) AIJBIJCIJDIJACKLBDKLMABNO
      CDNOKLPEFGHABCDQR $.

    $( Adding both side of two inequalities.  (Contributed by NM,
       16-Sep-1999.) $)
    le2addi $p |- ( ( A <_ C /\ B <_ D ) -> ( A + B ) <_ ( C + D ) ) $=
      ( cr wcel cle wbr wa caddc co wi le2add mp4an ) AIJBIJCIJDIJACKLBDKLMABNO
      CDNOKLPEFGHABCDQR $.
  $}

  ${
    gt0ne0d.1 $e |- ( ph -> 0 < A ) $.
    $( Positive implies nonzero.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    gt0ne0d $p |- ( ph -> A =/= 0 ) $=
      ( cc0 cr wcel clt wbr wne 0re ltne sylancr ) ADEFDBGHBDIJCDBKL $.
  $}

  ${
    lt0ne0d.1 $e |- ( ph -> A < 0 ) $.
    $( Something less than zero is not zero.  Deduction form.  (Contributed by
       David Moews, 28-Feb-2017.) $)
    lt0ne0d $p |- ( ph -> A =/= 0 ) $=
      ( cc0 clt wbr wne wceq 0re ltnri breq1 mtbiri necon2ai syl ) ABDEFZBDGCOB
      DBDHODDEFDIJBDDEKLMN $.
  $}

  ${
    leidd.1 $e |- ( ph -> A e. RR ) $.
    $( 'Less than or equal to' is reflexive.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    leidd $p |- ( ph -> A <_ A ) $=
      ( cr wcel cle wbr leid syl ) ABDEBBFGCBHI $.

    ${
      msqgt0d.2 $e |- ( ph -> A =/= 0 ) $.
      $( A nonzero square is positive.  Theorem I.20 of [Apostol] p. 20.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      msqgt0d $p |- ( ph -> 0 < ( A x. A ) ) $=
        ( cr wcel cc0 wne cmul co clt wbr msqgt0 syl2anc ) ABEFBGHGBBIJKLCDBMN
        $.
    $}

    $( A square is nonnegative.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    msqge0d $p |- ( ph -> 0 <_ ( A x. A ) ) $=
      ( cr wcel cc0 cmul co cle wbr msqge0 syl ) ABDEFBBGHIJCBKL $.

    $( Comparison of a number and its negative to zero.  Theorem I.23 of
       [Apostol] p. 20.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    lt0neg1d $p |- ( ph -> ( A < 0 <-> 0 < -u A ) ) $=
      ( cr wcel cc0 clt wbr cneg wb lt0neg1 syl ) ABDEBFGHFBIGHJCBKL $.

    $( Comparison of a number and its negative to zero.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    lt0neg2d $p |- ( ph -> ( 0 < A <-> -u A < 0 ) ) $=
      ( cr wcel cc0 clt wbr cneg wb lt0neg2 syl ) ABDEFBGHBIFGHJCBKL $.

    $( Comparison of a number and its negative to zero.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    le0neg1d $p |- ( ph -> ( A <_ 0 <-> 0 <_ -u A ) ) $=
      ( cr wcel cc0 cle wbr cneg wb le0neg1 syl ) ABDEBFGHFBIGHJCBKL $.

    $( Comparison of a number and its negative to zero.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    le0neg2d $p |- ( ph -> ( 0 <_ A <-> -u A <_ 0 ) ) $=
      ( cr wcel cc0 cle wbr cneg wb le0neg2 syl ) ABDEFBGHBIFGHJCBKL $.

    ltnegd.2 $e |- ( ph -> B e. RR ) $.
    ${
      addgegt0d.3 $e |- ( ph -> 0 <_ A ) $.
      addgegt0d.4 $e |- ( ph -> 0 < B ) $.
      $( Addition of nonnegative and positive numbers is positive.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      addgegt0d $p |- ( ph -> 0 < ( A + B ) ) $=
        ( cr wcel cc0 cle wbr clt caddc co addgegt0 syl22anc ) ABHICHIJBKLJCMLJ
        BCNOMLDEFGBCPQ $.
    $}

    ${
      addgt0d.3 $e |- ( ph -> 0 < A ) $.
      addgt0d.4 $e |- ( ph -> 0 < B ) $.
      $( Addition of 2 positive numbers is positive.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      addgt0d $p |- ( ph -> 0 < ( A + B ) ) $=
        ( cc0 0red ltled addgegt0d ) ABCDEAHBAIDFJGK $.
    $}

    ${
      addge0d.3 $e |- ( ph -> 0 <_ A ) $.
      addge0d.4 $e |- ( ph -> 0 <_ B ) $.
      $( Addition of 2 nonnegative numbers is nonnegative.  (Contributed by
         Mario Carneiro, 27-May-2016.) $)
      addge0d $p |- ( ph -> 0 <_ ( A + B ) ) $=
        ( cr wcel cc0 cle wbr caddc co addge0 syl22anc ) ABHICHIJBKLJCKLJBCMNKL
        DEFGBCOP $.

      $( The product of two nonnegative numbers is nonnegative.  (Contributed
         by Mario Carneiro, 27-May-2016.) $)
      mulge0d $p |- ( ph -> 0 <_ ( A x. B ) ) $=
        ( cr wcel cc0 cle wbr cmul co mulge0 syl22anc ) ABHIJBKLCHIJCKLJBCMNKLD
        FEGBCOP $.
    $}

    $( Negative of both sides of 'less than'.  Theorem I.23 of [Apostol] p. 20.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    ltnegd $p |- ( ph -> ( A < B <-> -u B < -u A ) ) $=
      ( cr wcel clt wbr cneg wb ltneg syl2anc ) ABFGCFGBCHICJBJHIKDEBCLM $.

    $( Negative of both sides of 'less than or equal to'.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    lenegd $p |- ( ph -> ( A <_ B <-> -u B <_ -u A ) ) $=
      ( cr wcel cle wbr cneg wb leneg syl2anc ) ABFGCFGBCHICJBJHIKDEBCLM $.

    ${
      ltnegcon1d.3 $e |- ( ph -> -u A < B ) $.
      $( Contraposition of negative in 'less than'.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      ltnegcon1d $p |- ( ph -> -u B < A ) $=
        ( cneg clt wbr cr wcel wb ltnegcon1 syl2anc mpbid ) ABGCHIZCGBHIZFABJKC
        JKPQLDEBCMNO $.
    $}

    ${
      ltnegcon2d.3 $e |- ( ph -> A < -u B ) $.
      $( Contraposition of negative in 'less than'.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      ltnegcon2d $p |- ( ph -> B < -u A ) $=
        ( cneg clt wbr cr wcel wb ltnegcon2 syl2anc mpbid ) ABCGHIZCBGHIZFABJKC
        JKPQLDEBCMNO $.

    $}

    ${
      lenegcon1d.3 $e |- ( ph -> -u A <_ B ) $.
      $( Contraposition of negative in 'less than or equal to'.  (Contributed
         by Mario Carneiro, 27-May-2016.) $)
      lenegcon1d $p |- ( ph -> -u B <_ A ) $=
        ( cneg cle wbr cr wcel wb lenegcon1 syl2anc mpbid ) ABGCHIZCGBHIZFABJKC
        JKPQLDEBCMNO $.

    $}

    ${
      lenegcon2d.3 $e |- ( ph -> A <_ -u B ) $.
      $( Contraposition of negative in 'less than or equal to'.  (Contributed
         by Mario Carneiro, 27-May-2016.) $)
      lenegcon2d $p |- ( ph -> B <_ -u A ) $=
        ( cneg cle wbr cr wcel wb lenegcon2 syl2anc mpbid ) ABCGHIZCBGHIZFABJKC
        JKPQLDEBCMNO $.
    $}

    $( Adding a positive number to another number increases it.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    ltaddposd $p |- ( ph -> ( 0 < A <-> B < ( B + A ) ) ) $=
      ( cr wcel cc0 clt wbr caddc co wb ltaddpos syl2anc ) ABFGCFGHBIJCCBKLIJMD
      EBCNO $.

    $( Adding a positive number to another number increases it.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    ltaddpos2d $p |- ( ph -> ( 0 < A <-> B < ( A + B ) ) ) $=
      ( cr wcel cc0 clt wbr caddc co wb ltaddpos2 syl2anc ) ABFGCFGHBIJCBCKLIJM
      DEBCNO $.

    $( Subtracting a positive number from another number decreases it.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    ltsubposd $p |- ( ph -> ( 0 < A <-> ( B - A ) < B ) ) $=
      ( cr wcel cc0 clt wbr cmin co wb ltsubpos syl2anc ) ABFGCFGHBIJCBKLCIJMDE
      BCNO $.

    $( Comparison of two numbers whose difference is positive.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    posdifd $p |- ( ph -> ( A < B <-> 0 < ( B - A ) ) ) $=
      ( cr wcel clt wbr cc0 cmin co wb posdif syl2anc ) ABFGCFGBCHIJCBKLHIMDEBC
      NO $.

    $( A number is less than or equal to itself plus a nonnegative number.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    addge01d $p |- ( ph -> ( 0 <_ B <-> A <_ ( A + B ) ) ) $=
      ( cr wcel cc0 cle wbr caddc co wb addge01 syl2anc ) ABFGCFGHCIJBBCKLIJMDE
      BCNO $.

    $( A number is less than or equal to itself plus a nonnegative number.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    addge02d $p |- ( ph -> ( 0 <_ B <-> A <_ ( B + A ) ) ) $=
      ( cr wcel cc0 cle wbr caddc co wb addge02 syl2anc ) ABFGCFGHCIJBCBKLIJMDE
      BCNO $.

    $( Nonnegative subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subge0d $p |- ( ph -> ( 0 <_ ( A - B ) <-> B <_ A ) ) $=
      ( cr wcel cc0 cmin co cle wbr wb subge0 syl2anc ) ABFGCFGHBCIJKLCBKLMDEBC
      NO $.

    $( Nonpositive subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    suble0d $p |- ( ph -> ( ( A - B ) <_ 0 <-> A <_ B ) ) $=
      ( cr wcel cmin co cc0 cle wbr wb suble0 syl2anc ) ABFGCFGBCHIJKLBCKLMDEBC
      NO $.

    $( Nonnegative subtraction.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    subge02d $p |- ( ph -> ( 0 <_ B <-> ( A - B ) <_ A ) ) $=
      ( cr wcel cc0 cle wbr cmin co wb subge02 syl2anc ) ABFGCFGHCIJBCKLBIJMDEB
      CNO $.

    ltadd1d.3 $e |- ( ph -> C e. RR ) $.
    $( Addition to both sides of 'less than'.  Theorem I.18 of [Apostol] p. 20.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    ltadd1d $p |- ( ph -> ( A < B <-> ( A + C ) < ( B + C ) ) ) $=
      ( cr wcel clt wbr caddc co wb ltadd1 syl3anc ) ABHICHIDHIBCJKBDLMCDLMJKNE
      FGBCDOP $.

    $( Addition to both sides of 'less than or equal to'.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    leadd1d $p |- ( ph -> ( A <_ B <-> ( A + C ) <_ ( B + C ) ) ) $=
      ( cr wcel cle wbr caddc co wb leadd1 syl3anc ) ABHICHIDHIBCJKBDLMCDLMJKNE
      FGBCDOP $.

    $( Addition to both sides of 'less than or equal to'.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    leadd2d $p |- ( ph -> ( A <_ B <-> ( C + A ) <_ ( C + B ) ) ) $=
      ( cr wcel cle wbr caddc co wb leadd2 syl3anc ) ABHICHIDHIBCJKDBLMDCLMJKNE
      FGBCDOP $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    ltsubaddd $p |- ( ph -> ( ( A - B ) < C <-> A < ( C + B ) ) ) $=
      ( cr wcel cmin co clt wbr caddc wb ltsubadd syl3anc ) ABHICHIDHIBCJKDLMBD
      CNKLMOEFGBCDPQ $.

    $( 'Less than or equal to' relationship between subtraction and addition.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    lesubaddd $p |- ( ph -> ( ( A - B ) <_ C <-> A <_ ( C + B ) ) ) $=
      ( cr wcel cmin co cle wbr caddc wb lesubadd syl3anc ) ABHICHIDHIBCJKDLMBD
      CNKLMOEFGBCDPQ $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    ltsubadd2d $p |- ( ph -> ( ( A - B ) < C <-> A < ( B + C ) ) ) $=
      ( cr wcel cmin co clt wbr caddc wb ltsubadd2 syl3anc ) ABHICHIDHIBCJKDLMB
      CDNKLMOEFGBCDPQ $.

    $( 'Less than or equal to' relationship between subtraction and addition.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    lesubadd2d $p |- ( ph -> ( ( A - B ) <_ C <-> A <_ ( B + C ) ) ) $=
      ( cr wcel cmin co cle wbr caddc wb lesubadd2 syl3anc ) ABHICHIDHIBCJKDLMB
      CDNKLMOEFGBCDPQ $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    ltaddsubd $p |- ( ph -> ( ( A + B ) < C <-> A < ( C - B ) ) ) $=
      ( cr wcel caddc co clt wbr cmin wb ltaddsub syl3anc ) ABHICHIDHIBCJKDLMBD
      CNKLMOEFGBCDPQ $.

    $( 'Less than' relationship between subtraction and addition.  (Contributed
       by Mario Carneiro, 29-Dec-2016.) $)
    ltaddsub2d $p |- ( ph -> ( ( A + B ) < C <-> B < ( C - A ) ) ) $=
      ( cr wcel caddc co clt wbr cmin wb ltaddsub2 syl3anc ) ABHICHIDHIBCJKDLMC
      DBNKLMOEFGBCDPQ $.

    $( 'Less than or equal to' relationship between and addition and
       subtraction.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    leaddsub2d $p |- ( ph -> ( ( A + B ) <_ C <-> B <_ ( C - A ) ) ) $=
      ( cr wcel caddc co cle wbr cmin wb leaddsub2 syl3anc ) ABHICHIDHIBCJKDLMC
      DBNKLMOEFGBCDPQ $.

    ${
      subled.4 $e |- ( ph -> ( A - B ) <_ C ) $.
      $( Swap subtrahends in an inequality.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      subled $p |- ( ph -> ( A - C ) <_ B ) $=
        ( cmin co cle wbr cr wcel wb suble syl3anc mpbid ) ABCIJDKLZBDIJCKLZHAB
        MNCMNDMNSTOEFGBCDPQR $.
    $}

    ${
      lesubd.4 $e |- ( ph -> A <_ ( B - C ) ) $.
      $( Swap subtrahends in an inequality.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      lesubd $p |- ( ph -> C <_ ( B - A ) ) $=
        ( cmin co cle wbr cr wcel wb lesub syl3anc mpbid ) ABCDIJKLZDCBIJKLZHAB
        MNCMNDMNSTOEFGBCDPQR $.
    $}

    ${
      ltsub23d.4 $e |- ( ph -> ( A - B ) < C ) $.
      $( 'Less than' relationship between subtraction and addition.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      ltsub23d $p |- ( ph -> ( A - C ) < B ) $=
        ( cmin co clt wbr cr wcel wb ltsub23 syl3anc mpbid ) ABCIJDKLZBDIJCKLZH
        ABMNCMNDMNSTOEFGBCDPQR $.
    $}

    ${
      ltsub13d.4 $e |- ( ph -> A < ( B - C ) ) $.
      $( 'Less than' relationship between subtraction and addition.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      ltsub13d $p |- ( ph -> C < ( B - A ) ) $=
        ( cmin co clt wbr cr wcel wb ltsub13 syl3anc mpbid ) ABCDIJKLZDCBIJKLZH
        ABMNCMNDMNSTOEFGBCDPQR $.
    $}

    $( Subtraction from both sides of 'less than or equal to'.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    lesub1d $p |- ( ph -> ( A <_ B <-> ( A - C ) <_ ( B - C ) ) ) $=
      ( cr wcel cle wbr cmin co wb lesub1 syl3anc ) ABHICHIDHIBCJKBDLMCDLMJKNEF
      GBCDOP $.

    $( Subtraction of both sides of 'less than or equal to'.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    lesub2d $p |- ( ph -> ( A <_ B <-> ( C - B ) <_ ( C - A ) ) ) $=
      ( cr wcel cle wbr cmin co wb lesub2 syl3anc ) ABHICHIDHIBCJKDCLMDBLMJKNEF
      GBCDOP $.

    $( Subtraction from both sides of 'less than'.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    ltsub1d $p |- ( ph -> ( A < B <-> ( A - C ) < ( B - C ) ) ) $=
      ( cr wcel clt wbr cmin co wb ltsub1 syl3anc ) ABHICHIDHIBCJKBDLMCDLMJKNEF
      GBCDOP $.

    $( Subtraction of both sides of 'less than'.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    ltsub2d $p |- ( ph -> ( A < B <-> ( C - B ) < ( C - A ) ) ) $=
      ( cr wcel clt wbr cmin co wb ltsub2 syl3anc ) ABHICHIDHIBCJKDCLMDBLMJKNEF
      GBCDOP $.

    ${
      ltadd1dd.4 $e |- ( ph -> A < B ) $.
      $( Addition to both sides of 'less than'.  Theorem I.18 of [Apostol]
         p. 20.  (Contributed by Mario Carneiro, 30-May-2016.) $)
      ltadd1dd $p |- ( ph -> ( A + C ) < ( B + C ) ) $=
        ( clt wbr caddc co ltadd1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.

      $( Subtraction from both sides of 'less than'.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      ltsub1dd $p |- ( ph -> ( A - C ) < ( B - C ) ) $=
        ( clt wbr cmin co ltsub1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.

      $( Subtraction of both sides of 'less than'.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      ltsub2dd $p |- ( ph -> ( C - B ) < ( C - A ) ) $=
        ( clt wbr cmin co ltsub2d mpbid ) ABCIJDCKLDBKLIJHABCDEFGMN $.
    $}

    ${
      leadd1dd.4 $e |- ( ph -> A <_ B ) $.
      $( Addition to both sides of 'less than or equal to'.  (Contributed by
         Mario Carneiro, 30-May-2016.) $)
      leadd1dd $p |- ( ph -> ( A + C ) <_ ( B + C ) ) $=
        ( cle wbr caddc co leadd1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.

      $( Addition to both sides of 'less than or equal to'.  (Contributed by
         Mario Carneiro, 30-May-2016.) $)
      leadd2dd $p |- ( ph -> ( C + A ) <_ ( C + B ) ) $=
        ( cle wbr caddc co leadd2d mpbid ) ABCIJDBKLDCKLIJHABCDEFGMN $.

      $( Subtraction from both sides of 'less than or equal to'.  (Contributed
         by Mario Carneiro, 30-May-2016.) $)
      lesub1dd $p |- ( ph -> ( A - C ) <_ ( B - C ) ) $=
        ( cle wbr cmin co lesub1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.

      $( Subtraction of both sides of 'less than or equal to'.  (Contributed by
         Mario Carneiro, 30-May-2016.) $)
      lesub2dd $p |- ( ph -> ( C - B ) <_ ( C - A ) ) $=
        ( cle wbr cmin co lesub2d mpbid ) ABCIJDCKLDBKLIJHABCDEFGMN $.
    $}

    ${
      lesub3d.x $e |- ( ph -> X e. RR ) $.
      lesub3d.g $e |- ( ph -> ( X + C ) <_ A ) $.
      lesub3d.l $e |- ( ph -> B <_ X ) $.
      $( The result of subtracting a number less than or equal to an
         intermediate number from a number greater than or equal to a third
         number increased by the intermediate number is greater than or equal
         to the third number.  (Contributed by AV, 13-Aug-2020.) $)
      lesub3d $p |- ( ph -> C <_ ( A - B ) ) $=
        ( caddc co cle wbr cmin readdcld recnd cr wcel addcomd leadd1dd eqbrtrd
        letrd wb leaddsub syl3anc mpbid ) ADCLMZBNOZDBCPMNOZAUIEDLMZBADCHGQAEDI
        HQFAUICDLMULNADCADHRACGRUAACEDGIHKUBUCJUDADSTCSTBSTUJUKUEHGFDCBUFUGUH
        $.
    $}

    lt2addd.4 $e |- ( ph -> D e. RR ) $.
    ${
      le2addd.5 $e |- ( ph -> A <_ C ) $.
      le2addd.6 $e |- ( ph -> B <_ D ) $.
      $( Adding both side of two inequalities.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      le2addd $p |- ( ph -> ( A + B ) <_ ( C + D ) ) $=
        ( cle wbr caddc co cr wcel wa wi le2add syl22anc mp2and ) ABDLMZCELMZBC
        NODENOLMZJKABPQCPQDPQEPQUCUDRUESFGHIBCDETUAUB $.

      $( Subtracting both sides of two 'less than or equal to' relations.
         (Contributed by Mario Carneiro, 27-May-2016.) $)
      le2subd $p |- ( ph -> ( A - D ) <_ ( C - B ) ) $=
        ( cle wbr cmin co cr wcel wa wi le2sub syl22anc mp2and ) ABDLMZCELMZBEN
        ODCNOLMZJKABPQEPQDPQCPQUCUDRUESFIHGBEDCTUAUB $.
    $}

    ${
      ltleaddd.5 $e |- ( ph -> A < C ) $.
      ltleaddd.6 $e |- ( ph -> B <_ D ) $.
      $( Adding both sides of two orderings.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      ltleaddd $p |- ( ph -> ( A + B ) < ( C + D ) ) $=
        ( clt wbr cle caddc co cr wcel wa wi ltleadd syl22anc mp2and ) ABDLMZCE
        NMZBCOPDEOPLMZJKABQRCQRDQREQRUDUESUFTFGHIBCDEUAUBUC $.
    $}

    ${
      leltaddd.5 $e |- ( ph -> A <_ C ) $.
      leltaddd.6 $e |- ( ph -> B < D ) $.
      $( Adding both sides of two orderings.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      leltaddd $p |- ( ph -> ( A + B ) < ( C + D ) ) $=
        ( cle wbr clt caddc co cr wcel wa wi leltadd syl22anc mp2and ) ABDLMZCE
        NMZBCOPDEOPNMZJKABQRCQRDQREQRUDUESUFTFGHIBCDEUAUBUC $.
    $}

    ${
      lt2addd.5 $e |- ( ph -> A < C ) $.
      lt2addd.6 $e |- ( ph -> B < D ) $.
      $( Adding both side of two inequalities.  Theorem I.25 of [Apostol]
         p. 20.  (Contributed by Mario Carneiro, 27-May-2016.) $)
      lt2addd $p |- ( ph -> ( A + B ) < ( C + D ) ) $=
        ( ltled ltleaddd ) ABCDEFGHIJACEGIKLM $.

      $( Subtracting both sides of two 'less than' relations.  (Contributed by
         Mario Carneiro, 27-May-2016.) $)
      lt2subd $p |- ( ph -> ( A - D ) < ( C - B ) ) $=
        ( clt wbr cmin co cr wcel wa wi lt2sub syl22anc mp2and ) ABDLMZCELMZBEN
        ODCNOLMZJKABPQEPQDPQCPQUCUDRUESFIHGBEDCTUAUB $.
    $}
  $}

  ${
    possumd.1 $e |- ( ph -> A e. RR ) $.
    possumd.2 $e |- ( ph -> B e. RR ) $.
    $( Condition for a positive sum.  (Contributed by Scott Fenton,
       16-Dec-2017.) $)
    possumd $p |- ( ph -> ( 0 < ( A + B ) <-> -u B < A ) ) $=
      ( cneg clt wbr cmin co caddc renegcld posdifd recnd subnegd breq2d bitr2d
      cc0 ) ACFZBGHRBSIJZGHRBCKJZGHASBACELDMATUARGABCABDNACENOPQ $.
  $}

  ${
    sublt0d.1 $e |- ( ph -> A e. RR ) $.
    sublt0d.2 $e |- ( ph -> B e. RR ) $.
    $( When a subtraction gives a negative result.  (Contributed by Glauco
       Siliprandi, 11-Dec-2019.) $)
    sublt0d $p |- ( ph -> ( ( A - B ) < 0 <-> A < B ) ) $=
      ( cmin co cc0 clt wbr caddc 0red ltsubaddd recnd addid2d breq2d bitrd ) A
      BCFGHIJBHCKGZIJBCIJABCHDEALMARCBIACACENOPQ $.
  $}

  $( Addition and subtraction on one side of 'less than'.  (Contributed by AV,
     24-Nov-2018.) $)
  ltaddsublt $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                    ( B < C <-> ( ( A + B ) - C ) < A ) ) $=
    ( cr wcel w3a clt caddc co cmin wb ltadd2 3comr readdcl 3adant3 simp3 simp1
    wbr ltsubaddd bitr4d ) ADEZBDEZCDEZFZBCGRZABHIZACHIGRZUFCJIAGRUBUCUAUEUGKBC
    ALMUDUFCAUAUBUFDEUCABNOUAUBUCPUAUBUCQST $.

  $( ` 1 <_ 1 ` .  Common special case.  (Contributed by David A. Wheeler,
     16-Jul-2016.) $)
  1le1 $p |- 1 <_ 1 $=
    ( c1 1re leidi ) ABC $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Reciprocals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( ` _i ` times itself is minus 1.  (Contributed by NM, 6-May-1999.)  (Proof
     shortened by Andrew Salmon, 19-Nov-2011.) $)
  ixi $p |- ( _i x. _i ) = -u 1 $=
    ( c1 cneg cc0 cmin co ci cmul df-neg caddc ax-i2m1 0cn ax-1cn ax-icn mulcli
    wceq subadd2i mpbir eqtr2i ) ABCADEZFFGEZAHSTOTAIECOJCATKLFFMMNPQR $.

  $( Lemma for ~ recex .  (Contributed by Eric Schmidt, 23-May-2007.) $)
  recextlem1 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A + ( _i x. B ) ) x.
      ( A - ( _i x. B ) ) ) = ( ( A x. A ) + ( B x. B ) ) ) $=
    ( cc wcel wa ci cmul caddc cmin cneg ax-icn mulcl adantl sylan2 subdid wceq
    co eqtrd anidms oveq12d simpl subcl adddird mulcom c1 oveq1i mulm1d syl5req
    mpan ixi mul4 mpanl12 eqtr4d adantr negcld npncand subneg syl2an 3eqtrd ) A
    CDZBCDZEZAFBGQZHQAVCIQZGQAVDGQZVCVDGQZHQAAGQZAVCGQZIQZVHBBGQZJZIQZHQZVGVJHQ
    ZVBAVCVDUTVAUAZVAVCCDZUTFCDZVAVPKFBLUIZMZVAUTVPVDCDVRAVCUBNUCVBVEVIVFVLHVBA
    AVCVOVOVSOVBVFVCAGQZVCVCGQZIQVLVBVCAVCVSVOVSOVBVHVTVKWAIVAUTVPVHVTPVRAVCUDN
    VAVKWAPZUTVAWBVAVAEZVKFFGQZVJGQZWAWCWEUEJZVJGQVKWDWFVJGUJUFWCVJBBLZUGUHVQVQ
    WCWEWAPKKFFBBUKULRSMTUMTVBVMVGVKIQZVNVBVGVHVKUTVGCDZVAUTWIAALSZUNVAUTVPVHCD
    VRAVCLNVAVKCDZUTVAWKWCVJWGUOSMUPUTWIVJCDZWHVNPVAWJVAWLWGSVGVJUQURRUS $.

  $( Lemma for ~ recex .  (Contributed by Eric Schmidt, 23-May-2007.) $)
  recextlem2 $p |- ( ( A e. RR /\ B e. RR /\ ( A + ( _i x. B ) ) =/= 0 ) ->
                        ( ( A x. A ) + ( B x. B ) ) =/= 0 ) $=
    ( cr wcel ci cmul co caddc cc0 wne clt wbr wa wceq syl6eq sylan2 cle anidms
    remulcl anim12i w3a wo wn ax-icn mul01i oveq12 00id necon3ai neorian sylibr
    oveq2 adantr msqgt0 msqge0 addgtge0 syl2anc anassrs addgegt0 jaodan gt0ne0d
    an32s 3impa ) ACDZBCDZAEBFGZHGZIJZUAAAFGZBBFGZHGZVCVDVGIVJKLZVGVCVDMZAIJZBI
    JZUBZVKVGAINZBINZMZUCVOVRVFIVRVFIIHGZIVQVPVEINVFVSNVQVEEIFGIBIEFUKEUDUEOAIV
    EIHUFPUGOUHAIBIUIUJVLVMVKVNVLVMMVHCDZVICDZMZIVHKLZIVIQLZMZVKVLWBVMVCVTVDWAV
    CVTAASRVDWABBSRTZULVCVMVDWEVCVMMWCVDWDAUMBUNTVAVHVIUOUPVLVNMWBIVHQLZIVIKLZM
    ZVKVLWBVNWFULVCVDVNWIVCWGVDVNMWHAUNBUMTUQVHVIURUPUSPVBUT $.

  ${
    $d x y a b A $.
    $( Existence of reciprocal of nonzero complex number.  (Contributed by Eric
       Schmidt, 22-May-2007.) $)
    recex $p |- ( ( A e. CC /\ A =/= 0 ) -> E. x e. CC ( A x. x ) = 1 ) $=
      ( va vb vy cc wcel cc0 wne cv cmul co c1 wceq wrex ci cr wi wa adantr mpd
      caddc cnre recextlem2 3expia remulcl anidms readdcl syl2an ax-rrecex recn
      sylan cmin ax-icn mulcl mpan subcl sylan2 addcl mulassd recextlem1 oveq1d
      simpr eqtr3d id sylan9eq oveq2 eqeq1d syl2anc exp31 syl5 rexlimdv ex syld
      rspcev wb neeq1 adantl oveq1 rexbidv 3imtr4d rexlimivv syl imp ) BFGZBHIZ
      BAJZKLZMNZAFOZWEBCJZPDJZKLZUBLZNZDQOCQOWFWJRZCDBUCWOWPCDQQWKQGZWLQGZSZWOW
      PWSWOSWNHIZWNWGKLZMNZAFOZWFWJWSWTXCRWOWSWTWKWKKLZWLWLKLZUBLZHIZXCWQWRWTXG
      WKWLUDUEWSXGXCWSXGSXFEJZKLZMNZEQOZXCWSXFQGZXGXKWQXDQGZXEQGZXLWRWQXMWKWKUF
      UGWRXNWLWLUFUGXDXEUHUIEXFUJULWSXKXCRZXGWQWKFGZWLFGZXOWRWKUKWLUKXPXQSZXJXC
      EQXHQGXHFGZXRXJXCRXHUKXRXSXJXCXRXSSZXJSWKWMUMLZXHKLZFGZWNYBKLZMNZXCXTYCXJ
      XRYAFGZXSYCXQXPWMFGZYFPFGXQYGUNPWLUOUPZWKWMUQURZYAXHUOULTXTXJYDXIMXTWNYAK
      LZXHKLYDXIXTWNYAXHXRWNFGZXSXQXPYGYKYHWKWMUSURTXRYFXSYITXRXSVCUTXTYJXFXHKX
      RYJXFNXSWKWLVATVBVDXJVEVFXBYEAYBFWGYBNXAYDMWGYBWNKVGVHVOVIVJVKVLUITUAVMVN
      TWOWFWTVPWSBWNHVQVRWOWJXCVPWSWOWIXBAFWOWHXAMBWNWGKVSVHVTVRWAVMWBWCWD $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.
    mulcand.1 $e |- ( ph -> A e. CC ) $.
    mulcand.2 $e |- ( ph -> B e. CC ) $.
    mulcand.3 $e |- ( ph -> C e. CC ) $.
    mulcand.4 $e |- ( ph -> C =/= 0 ) $.
    $( Cancellation law for multiplication.  Theorem I.7 of [Apostol] p. 18.
       (Contributed by NM, 26-Jan-1995.)  (Revised by Mario Carneiro,
       27-May-2016.) $)
    mulcand $p |- ( ph -> ( ( C x. A ) = ( C x. B ) <-> A = B ) ) $=
      ( vx cmul co wceq c1 cc wcel wa oveq2 adantr oveq1d mulassd cv wi cc0 wne
      wrex recex syl2anc simprl mulcomd eqtrd mulid2d 3eqtr3d eqeq12d rexlimddv
      simprr syl5ib impbid1 ) ADBJKZDCJKZLZBCLZADIUAZJKZMLZUTVAUBINADNOZDUCUDVD
      INUEGHIDUFUGUTVBURJKZVBUSJKZLAVBNOZVDPZPZVAURUSVBJQVJVFBVGCVJVBDJKZBJKMBJ
      KVFBVJVKMBJVJVKVCMVJVBDAVHVDUHZAVEVIGRZUIAVHVDUOUJZSVJVBDBVLVMABNOVIERZTV
      JBVOUKULVJVKCJKMCJKVGCVJVKMCJVNSVJVBDCVLVMACNOVIFRZTVJCVPUKULUMUPUNBCDJQU
      Q $.

    $( Cancellation law for multiplication.  Theorem I.7 of [Apostol] p. 18.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    mulcan2d $p |- ( ph -> ( ( A x. C ) = ( B x. C ) <-> A = B ) ) $=
      ( cmul co wceq mulcomd eqeq12d mulcand bitrd ) ABDIJZCDIJZKDBIJZDCIJZKBCK
      APRQSABDEGLACDFGLMABCDEFGHNO $.
  $}

  ${
    mulcanad.1 $e |- ( ph -> A e. CC ) $.
    mulcanad.2 $e |- ( ph -> B e. CC ) $.
    mulcanad.3 $e |- ( ph -> C e. CC ) $.
    mulcanad.4 $e |- ( ph -> C =/= 0 ) $.
    ${
      mulcanad.5 $e |- ( ph -> ( C x. A ) = ( C x. B ) ) $.
      $( Cancellation of a nonzero factor on the left in an equation.  One-way
         deduction form of ~ mulcand .  (Contributed by David Moews,
         28-Feb-2017.) $)
      mulcanad $p |- ( ph -> A = B ) $=
        ( cmul co wceq mulcand mpbid ) ADBJKDCJKLBCLIABCDEFGHMN $.
    $}

    ${
      mulcan2ad.5 $e |- ( ph -> ( A x. C ) = ( B x. C ) ) $.
      $( Cancellation of a nonzero factor on the right in an equation.  One-way
         deduction form of ~ mulcan2d .  (Contributed by David Moews,
         28-Feb-2017.) $)
      mulcan2ad $p |- ( ph -> A = B ) $=
        ( cmul co wceq mulcan2d mpbid ) ABDJKCDJKLBCLIABCDEFGHMN $.
    $}
  $}

  $( Cancellation law for multiplication (full theorem form).  Theorem I.7 of
     [Apostol] p. 18.  (Contributed by NM, 29-Jan-1995.)  (Revised by Mario
     Carneiro, 27-May-2016.) $)
  mulcan $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) ) ->
                 ( ( C x. A ) = ( C x. B ) <-> A = B ) ) $=
    ( cc wcel cc0 wne wa w3a simp1 simp2 simp3l simp3r mulcand ) ADEZBDEZCDEZCF
    GZHZIABCOPSJOPSKOPQRLOPQRMN $.

  $( Cancellation law for multiplication.  (Contributed by NM, 21-Jan-2005.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  mulcan2 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) ) ->
                 ( ( A x. C ) = ( B x. C ) <-> A = B ) ) $=
    ( cc wcel cc0 wne wa w3a simp1 simp2 simp3l simp3r mulcan2d ) ADEZBDEZCDEZC
    FGZHZIABCOPSJOPSKOPQRLOPQRMN $.

  ${
    mulcan.1 $e |- A e. CC $.
    mulcan.2 $e |- B e. CC $.
    mulcan.3 $e |- C e. CC $.
    mulcan.4 $e |- C =/= 0 $.
    $( Cancellation law for multiplication.  Theorem I.7 of [Apostol] p. 18.
       (Contributed by NM, 26-Jan-1995.) $)
    mulcani $p |- ( ( C x. A ) = ( C x. B ) <-> A = B ) $=
      ( cc wcel cc0 wne wa cmul co wceq wb pm3.2i mulcan mp3an ) AHIBHICHIZCJKZ
      LCAMNCBMNOABOPDETUAFGQABCRS $.
  $}

  $( If a product is zero, one of its factors must be zero.  Theorem I.11 of
     [Apostol] p. 18.  (Contributed by NM, 9-Oct-1999.)  (Revised by Mario
     Carneiro, 27-May-2016.) $)
  mul0or $p |- ( ( A e. CC /\ B e. CC ) ->
                 ( ( A x. B ) = 0 <-> ( A = 0 \/ B = 0 ) ) ) $=
    ( cc wcel wa cmul co cc0 wceq wne simpr adantr mul02d eqeq2d simpl mulcan2d
    wo 0cnd eqeq1d syl5ibrcom bitr3d biimpd impancom necon1bd orrd oveq1 mul01d
    ex oveq2 jaod impbid ) ACDZBCDZEZABFGZHIZAHIZBHIZQZUNUPUSUNUPEZUQURUTUQBHUN
    BHJZUPUQUNVAEZUPUQVBUOHBFGZIUPUQVBVCHUOVBBUNUMVAULUMKZLZMNVBAHBUNULVAULUMOZ
    LVBRVEUNVAKPUAUBUCUDUEUHUNUQUPURUNUPUQVCHIUNBVDMUQUOVCHAHBFUFSTUNUPURAHFGZH
    IUNAVFUGURUOVGHBHAFUISTUJUK $.

  $( The product of two nonzero numbers is nonzero.  (Contributed by NM,
     1-Aug-2004.)  (Proof shortened by Andrew Salmon, 19-Nov-2011.) $)
  mulne0b $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A =/= 0 /\ B =/= 0 ) <->
               ( A x. B ) =/= 0 ) ) $=
    ( cc wcel wa cmul co cc0 wne wceq wo wn mul0or necon3abid neanior syl6rbbr
    ) ACDBCDEZABFGZHIAHJBHJKZLAHIBHIEQSRHABMNAHBHOP $.

  $( The product of two nonzero numbers is nonzero.  (Contributed by NM,
     30-Dec-2007.) $)
  mulne0 $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) ) ->
               ( A x. B ) =/= 0 ) $=
    ( cc wcel cc0 wne cmul co wa mulne0b biimpa an4s ) ACDZBCDZAEFZBEFZABGHEFZM
    NIOPIQABJKL $.

  ${
    muln0.1 $e |- A e. CC $.
    muln0.2 $e |- B e. CC $.
    muln0.3 $e |- A =/= 0 $.
    muln0.4 $e |- B =/= 0 $.
    $( The product of two nonzero numbers is nonzero.  (Contributed by NM,
       15-Feb-1995.) $)
    mulne0i $p |- ( A x. B ) =/= 0 $=
      ( cc wcel cc0 wne cmul co mulne0 mp4an ) AGHAIJBGHBIJABKLIJCEDFABMN $.
  $}

  $( Property of numbers whose product equals their sum.  Equation 5 of
     [Kreyszig] p. 12.  (Contributed by NM, 13-Nov-2006.) $)
  muleqadd $p |- ( ( A e. CC /\ B e. CC ) ->
             ( ( A x. B ) = ( A + B ) <-> ( ( A - 1 ) x. ( B - 1 ) ) = 1 ) ) $=
    ( cc wcel wa c1 cmin co cmul wceq caddc ax-1cn mulsub mpanr2 mpanl2 mulid1i
    cc0 oveq2i a1i mulid1 oveqan12d oveq12d addsub mp3an2 syl2anc 3eqtrd eqeq1d
    mulcl addcl addid2i eqeq2i subcld 0cn addcan2 mp3an23 syl syl5rbbr subeq0ad
    wb 3bitr2rd ) ACDZBCDZEZAFGHBFGHIHZFJABIHZABKHZGHZFKHZFJZVGQJZVEVFJVCVDVHFV
    CVDVEFFIHZKHZAFIHZBFIHZKHZGHZVEFKHZVFGHZVHVAFCDZVBVDVPJZLVAVSEVBVSVTLAFBFMN
    OVCVLVQVOVFGVLVQJVCVKFVEKFLPRSVAVBVMAVNBKATBTUAUBVCVECDZVFCDZVRVHJZABUHZABU
    IZWAVSWBWCLVEFVFUCUDUEUFUGVIVHQFKHZJZVCVJWFFVHFLUJUKVCVGCDZWGVJUSZVCVEVFWDW
    EULWHQCDVSWIUMLVGQFUNUOUPUQVCVEVFWDWEURUT $.

  ${
    $d x y A $.  $d x y B $.
    $( Existential uniqueness of reciprocals.  Theorem I.8 of [Apostol] p. 18.
       (Contributed by NM, 29-Jan-1995.)  (Revised by Mario Carneiro,
       17-Feb-2014.) $)
    receu $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
                  E! x e. CC ( B x. x ) = A ) $=
      ( vy cc wcel cc0 w3a cv cmul co wceq wrex wa wi wral 3adant1 oveq2 eqeq1d
      c1 wreu recex simprl simpll mulcld oveq1 ad2antll mulassd mulid2d 3eqtr3d
      simplr rspcev syl2anc rexlimdvaa 3adant3 eqtr3 mulcan syl5ib 3expa expcom
      wne mpd ralrimivv reu4 sylanbrc ) BEFZCEFZCGVAZHZCAIZJKZBLZAEMZVLCDIZJKZB
      LZNZVJVNLZOZDEPAEPVLAEUAVIVOTLZDEMZVMVGVHWAVFDCUBQVFVGWAVMOVHVFVGNZVTVMDE
      WBVNEFZVTNZNZVNBJKZEFCWFJKZBLZVMWEVNBWBWCVTUCZVFVGWDUDZUEWEVOBJKZTBJKZWGB
      VTWKWLLWBWCVOTBJUFUGWECVNBVFVGWDUKWIWJUHWEBWJUIUJVLWHAWFEVJWFLVKWGBVJWFCJ
      RSULUMUNUOVBVIVSADEEVGVHVJEFZWCNZVSOVFWNVGVHNZVSWMWCWOVSVQVKVOLWMWCWOHVRV
      KVOBUPVJVNCUQURUSUTQVCVLVPADEVRVKVOBVJVNCJRSVDVE $.
  $}

  ${
    $d x y $.
    $( Multiplication maps nonzero complex numbers to nonzero complex numbers.
       (Contributed by Steve Rodriguez, 23-Feb-2007.) $)
    mulnzcnopr $p |- ( x. |` ( ( CC \ { 0 } ) X. ( CC \ { 0 } ) ) ) :
                             ( ( CC \ { 0 } ) X. ( CC \ { 0 } ) ) -->
                             ( CC \ { 0 } ) $=
      ( vx vy cc cc0 csn cdif cxp cmul wf wfn cv co wcel wss wa ffnov mp2an wne
      wral eldifsn cres ax-mulf mpbi simpli difss xpss12 fnssres ovres ad2ant2r
      mulcl mulne0 jca syl2anb sylibr eqeltrd rgen2a mpbir2an ) CDEZFZUSGZUSHUT
      UAZIVAUTJZAKZBKZVALZUSMZBUSSAUSSHCCGZJZUTVGNZVBVHVCVDHLZCMZBCSACSZVGCHIVH
      VLOUBABCCCHPUCUDUSCNZVMVICURUEZVNUSCUSCUFQVGUTHUGQVFABUSVCUSMZVDUSMZOZVEV
      JUSVCVDUSUSHUHVQVKVJDRZOZVJUSMVOVCCMZVCDRZOZVDCMZVDDRZOZVSVPVCCDTVDCDTWBW
      EOVKVRVTWCVKWAWDVCVDUJUIVCVDUKULUMVJCDTUNUOUPABUSUSUSVAPUQ $.
  $}

  ${
    mul0or.1 $e |- A e. CC $.
    $( A number is zero iff its square is zero (where square is represented
       using multiplication).  (Contributed by NM, 28-Jul-1999.) $)
    msq0i $p |- ( ( A x. A ) = 0 <-> A = 0 ) $=
      ( cmul co cc0 wceq wo cc wcel wb mul0or mp2an oridm bitri ) AACDEFZAEFZPG
      ZPAHIZROQJBBAAKLPMN $.

    mul0or.2 $e |- B e. CC $.
    $( If a product is zero, one of its factors must be zero.  Theorem I.11 of
       [Apostol] p. 18.  (Contributed by NM, 7-Oct-1999.) $)
    mul0ori $p |- ( ( A x. B ) = 0 <-> ( A = 0 \/ B = 0 ) ) $=
      ( cc wcel cmul co cc0 wceq wo wb mul0or mp2an ) AEFBEFABGHIJAIJBIJKLCDABM
      N $.
  $}

  ${
    msq0d.1 $e |- ( ph -> A e. CC ) $.
    $( A number is zero iff its square is zero (where square is represented
       using multiplication).  (Contributed by Mario Carneiro, 27-May-2016.) $)
    msq0d $p |- ( ph -> ( ( A x. A ) = 0 <-> A = 0 ) ) $=
      ( cmul co cc0 wceq wo cc wcel wb mul0or syl2anc oridm syl6bb ) ABBDEFGZBF
      GZQHZQABIJZSPRKCCBBLMQNO $.

    mul0ord.2 $e |- ( ph -> B e. CC ) $.
    $( If a product is zero, one of its factors must be zero.  Theorem I.11 of
       [Apostol] p. 18.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    mul0ord $p |- ( ph -> ( ( A x. B ) = 0 <-> ( A = 0 \/ B = 0 ) ) ) $=
      ( cc wcel cmul co cc0 wceq wo wb mul0or syl2anc ) ABFGCFGBCHIJKBJKCJKLMDE
      BCNO $.

    $( The product of two nonzero numbers is nonzero.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    mulne0bd $p |- ( ph -> ( ( A =/= 0 /\ B =/= 0 ) <-> ( A x. B ) =/= 0 ) ) $=
      ( cc wcel cc0 wne wa cmul co wb mulne0b syl2anc ) ABFGCFGBHICHIJBCKLHIMDE
      BCNO $.

    mulne0d.3 $e |- ( ph -> A =/= 0 ) $.
    mulne0d.4 $e |- ( ph -> B =/= 0 ) $.
    $( The product of two nonzero numbers is nonzero.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    mulne0d $p |- ( ph -> ( A x. B ) =/= 0 ) $=
      ( cc0 wne cmul co mulne0bd mpbi2and ) ABHICHIBCJKHIFGABCDELM $.
  $}

  $( A generalized form of the cancellation law for multiplication.
     (Contributed by Scott Fenton, 17-Jun-2013.) $)
  mulcan1g $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
    ( ( A x. B ) = ( A x. C ) <-> ( A = 0 \/ B = C ) ) ) $=
    ( cc wcel w3a cmul co cmin cc0 wceq wo mulcl 3adant3 3adant2 subeq0ad simp1
    subcl 3adant1 mul0ord subdi eqeq1d wb subeq0 orbi2d 3bitr3d bitr3d ) ADEZBD
    EZCDEZFZABGHZACGHZIHZJKZULUMKAJKZBCKZLZUKULUMUHUIULDEUJABMNUHUJUMDEUIACMOPU
    KABCIHZGHZJKUPUSJKZLUOURUKAUSUHUIUJQUIUJUSDEUHBCRSTUKUTUNJABCUAUBUKVAUQUPUI
    UJVAUQUCUHBCUDSUEUFUG $.

  $( A generalized form of the cancellation law for multiplication.
     (Contributed by Scott Fenton, 17-Jun-2013.) $)
  mulcan2g $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
    ( ( A x. C ) = ( B x. C ) <-> ( A = B \/ C = 0 ) ) ) $=
    ( cc wcel w3a cmul co wceq wo mulcom 3adant2 3adant1 eqeq12d mulcan1g 3coml
    cc0 wb orcom syl6bb bitrd ) ADEZBDEZCDEZFZACGHZBCGHZICAGHZCBGHZIZABIZCQIZJZ
    UEUFUHUGUIUBUDUFUHIUCACKLUCUDUGUIIUBBCKMNUEUJULUKJZUMUDUBUCUJUNRCABOPULUKST
    UA $.

  ${
    mulne0bad.1 $e |- ( ph -> A e. CC ) $.
    mulne0bad.2 $e |- ( ph -> B e. CC ) $.
    mulne0bad.3 $e |- ( ph -> ( A x. B ) =/= 0 ) $.
    $( A factor of a nonzero complex number is nonzero.  Partial converse of
       ~ mulne0d and consequence of ~ mulne0bd .  (Contributed by David Moews,
       28-Feb-2017.) $)
    mulne0bad $p |- ( ph -> A =/= 0 ) $=
      ( cc0 wne wa cmul co mulne0bd mpbird simpld ) ABGHZCGHZAOPIBCJKGHFABCDELM
      N $.

    $( A factor of a nonzero complex number is nonzero.  Partial converse of
       ~ mulne0d and consequence of ~ mulne0bd .  (Contributed by David Moews,
       28-Feb-2017.) $)
    mulne0bbd $p |- ( ph -> B =/= 0 ) $=
      ( cc0 wne wa cmul co mulne0bd mpbird simprd ) ABGHZCGHZAOPIBCJKGHFABCDELM
      N $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Division
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend class notation to include division. $)
  cdiv $a class / $.

  ${
    $d x y z $.
    $( Define division.  Theorem ~ divmuli relates it to multiplication, and
       ~ divcli and ~ redivcli prove its closure laws.  (Contributed by NM,
       2-Feb-1995.)  Use ~ divval instead.  (Revised by Mario Carneiro,
       1-Apr-2014.)  (New usage is discouraged.) $)
    df-div $a |- / = ( x e. CC , y e. ( CC \ { 0 } ) |->
                   ( iota_ z e. CC ( y x. z ) = x ) ) $.
  $}

  ${
    $d x y z $.
    $( You can't divide by zero, because division explicitly excludes zero from
       the domain of the function.  Thus, by the definition of function value,
       it evaluates to the empty set.  (This theorem is for information only
       and normally is not referenced by other proofs.  To be meaningful, it
       assumes that ` (/) ` is not a complex number, which depends on the
       particular complex number construction that is used.)  (Contributed by
       Mario Carneiro, 1-Apr-2014.)  (New usage is discouraged.) $)
    1div0 $p |- ( 1 / 0 ) = (/) $=
      ( vx vy vz cdiv cdm cc cc0 csn cdif wceq c1 wcel wa wn co c0 cv cmul crio
      cxp df-div riotaex dmmpt2 wne eldifsni adantl necon2bi ax-mp ndmovg mp2an
      eqid ) DEFFGHIZTJKFLZGULLZMZNZKGDOPJABFULBQCQROAQJZCFSDABCUAUQCFUBUCGGJUP
      GUKUOGGUNGGUDUMGFGUEUFUGUHKGFULDUIUJ $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y C $.
    $( Value of division: if ` A ` and ` B ` are complex numbers with ` B `
       nonzero, then ` ( A / B ) ` is the (unique) complex number such that
       ` ( B x. x ) = A ` .  (Contributed by NM, 8-May-1999.)  (Revised by
       Mario Carneiro, 17-Feb-2014.) $)
    divval $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
                   ( A / B ) = ( iota_ x e. CC ( B x. x ) = A ) ) $=
      ( vz vy cc wcel cc0 wne cdiv co cmul wceq crio csn cdif eldifsn riotabidv
      cv wa eqeq2 oveq1 eqeq1d df-div riotaex ovmpt2 sylan2br 3impb ) BFGZCFGZC
      HIZBCJKCASZLKZBMZAFNZMZUJUKTUICFHOPZGUPCFHQDEBCFUQESZULLKZDSZMZAFNUOJUSBM
      ZAFNUTBMVAVBAFUTBUSUARURCMZVBUNAFVCUSUMBURCULLUBUCRDEAUDUNAFUEUFUGUH $.

    $( Relationship between division and multiplication.  (Contributed by NM,
       2-Aug-2004.)  (Revised by Mario Carneiro, 17-Feb-2014.) $)
    divmul $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) )
                 -> ( ( A / C ) = B <-> ( C x. B ) = A ) ) $=
      ( vx cc wcel cc0 wne wa w3a cdiv co wceq cv cmul crio divval 3expb eqeq1d
      3adant2 wreu wb simp2 receu oveq2 riota2 syl2anc bitr4d ) AEFZBEFZCEFZCGH
      ZIZJZACKLZBMCDNZOLZAMZDEPZBMZCBOLZAMZUNUOUSBUIUMUOUSMZUJUIUKULVCDACQRTSUN
      UJURDEUAZVBUTUBUIUJUMUCUIUMVDUJUIUKULVDDACUDRTURVBDEBUPBMUQVAAUPBCOUESUFU
      GUH $.
  $}

  $( Relationship between division and multiplication.  (Contributed by NM,
     7-Feb-2006.) $)
  divmul2 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) )
              -> ( ( A / C ) = B <-> A = ( C x. B ) ) ) $=
    ( cc wcel cc0 wne wa w3a cdiv co wceq cmul divmul eqcom syl6bb ) ADEBDECDEC
    FGHIACJKBLCBMKZALAQLABCNQAOP $.

  $( Relationship between division and multiplication.  (Contributed by NM,
     13-Feb-2006.) $)
  divmul3 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) )
              -> ( ( A / C ) = B <-> A = ( B x. C ) ) ) $=
    ( cc wcel cc0 wne wa w3a cdiv co wceq divmul2 mulcom adantrr 3adant1 eqeq2d
    cmul bitr4d ) ADEZBDEZCDEZCFGZHZIZACJKBLACBRKZLABCRKZLABCMUEUGUFAUAUDUGUFLZ
    TUAUBUHUCBCNOPQS $.

  ${
    $d x A $.  $d x B $.
    $( Closure law for division.  (Contributed by NM, 21-Jul-2001.)  (Proof
       shortened by Mario Carneiro, 17-Feb-2014.) $)
    divcl $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) -> ( A / B ) e. CC ) $=
      ( vx cc wcel cc0 wne w3a cdiv co cmul wceq crio divval wreu receu riotacl
      cv syl eqeltrd ) ADEBDEBFGHZABIJBCRKJALZCDMZDCABNUAUBCDOUCDECABPUBCDQST
      $.
  $}

  $( Closure law for reciprocal.  (Contributed by NM, 30-Apr-2005.) $)
  reccl $p |- ( ( A e. CC /\ A =/= 0 ) -> ( 1 / A ) e. CC ) $=
    ( c1 cc wcel cc0 wne cdiv co ax-1cn divcl mp3an1 ) BCDACDAEFBAGHCDIBAJK $.

  $( A cancellation law for division.  (Contributed by NM, 3-Feb-2004.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  divcan2 $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
                 ( B x. ( A / B ) ) = A ) $=
    ( cc wcel cc0 wne w3a cdiv co wceq cmul eqid wa simp1 3simpc divmul syl3anc
    wb divcl mpbii ) ACDZBCDZBEFZGZABHIZUEJZBUEKIAJZUELUDUAUECDUBUCMUFUGRUAUBUC
    NABSUAUBUCOAUEBPQT $.

  $( A cancellation law for division.  (Contributed by NM, 5-Jun-2004.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  divcan1 $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 )
        -> ( ( A / B ) x. B ) = A ) $=
    ( cc wcel cc0 wne w3a cdiv co cmul divcl simp2 mulcomd divcan2 eqtrd ) ACDZ
    BCDZBEFZGZABHIZBJIBTJIASTBABKPQRLMABNO $.

  $( A ratio is zero iff the numerator is zero.  (Contributed by NM,
     20-Apr-2006.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  diveq0 $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
               ( ( A / B ) = 0 <-> A = 0 ) ) $=
    ( cc wcel cc0 wne cdiv co wceq cmul wa wb simp1 0cnd 3simpc divmul2 syl3anc
    w3a simp2 mul01d eqeq2d bitrd ) ACDZBCDZBEFZRZABGHEIZABEJHZIZAEIUFUCECDUDUE
    KUGUILUCUDUEMUFNUCUDUEOAEBPQUFUHEAUFBUCUDUESTUAUB $.

  $( The ratio of nonzero numbers is nonzero.  (Contributed by NM, 2-Aug-2004.)
     (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  divne0b $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
                  ( A =/= 0 <-> ( A / B ) =/= 0 ) ) $=
    ( cc wcel cc0 wne w3a cdiv co wceq diveq0 bicomd necon3bid ) ACDBCDBEFGZAEA
    BHIZENOEJAEJABKLM $.

  $( The ratio of nonzero numbers is nonzero.  (Contributed by NM,
     28-Dec-2007.) $)
  divne0 $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) ) ->
                  ( A / B ) =/= 0 ) $=
    ( cc wcel cc0 wne wa cdiv co wb divne0b 3expb biimpa an32s ) ACDZBCDZBEFZGZ
    AEFZABHIEFZORGSTOPQSTJABKLMN $.

  $( The reciprocal of a nonzero number is nonzero.  (Contributed by NM,
     9-Feb-2006.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  recne0 $p |- ( ( A e. CC /\ A =/= 0 ) -> ( 1 / A ) =/= 0 ) $=
    ( c1 cc wcel cc0 wne wa cdiv co ax-1cn ax-1ne0 divne0 mpanl12 ) BCDBEFACDAE
    FGBAHIEFJKBALM $.

  $( Multiplication of a number and its reciprocal.  (Contributed by NM,
     25-Oct-1999.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  recid $p |- ( ( A e. CC /\ A =/= 0 ) -> ( A x. ( 1 / A ) ) = 1 ) $=
    ( c1 cc wcel cc0 wne cdiv co cmul wceq ax-1cn divcan2 mp3an1 ) BCDACDAEFABA
    GHIHBJKBALM $.

  $( Multiplication of a number and its reciprocal.  (Contributed by NM,
     22-Jun-2006.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  recid2 $p |- ( ( A e. CC /\ A =/= 0 ) -> ( ( 1 / A ) x. A ) = 1 ) $=
    ( c1 cc wcel cc0 wne cdiv co cmul wceq ax-1cn divcan1 mp3an1 ) BCDACDAEFBAG
    HAIHBJKBALM $.

  $( Relationship between division and reciprocal.  Theorem I.9 of [Apostol]
     p. 18.  (Contributed by NM, 2-Aug-2004.)  (Revised by Mario Carneiro,
     27-May-2016.) $)
  divrec $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
                ( A / B ) = ( A x. ( 1 / B ) ) ) $=
    ( cc wcel cc0 wne w3a cdiv co c1 cmul wceq simp2 simp1 reccl 3adant1 mul12d
    recid oveq2d mulid1d 3eqtrd wa wb mulcld 3simpc divmul syl3anc mpbird ) ACD
    ZBCDZBEFZGZABHIAJBHIZKIZLZBUNKIZALZULUPABUMKIZKIAJKIAULBAUMUIUJUKMUIUJUKNZU
    JUKUMCDUIBOPZQULURJAKUJUKURJLUIBRPSULAUSTUAULUIUNCDUJUKUBUOUQUCUSULAUMUSUTU
    DUIUJUKUEAUNBUFUGUH $.

  $( Relationship between division and reciprocal.  (Contributed by NM,
     7-Feb-2006.) $)
  divrec2 $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
                ( A / B ) = ( ( 1 / B ) x. A ) ) $=
    ( cc wcel cc0 wne w3a cdiv co cmul divrec simp1 reccl 3adant1 mulcomd eqtrd
    c1 ) ACDZBCDZBEFZGZABHIAQBHIZJIUBAJIABKUAAUBRSTLSTUBCDRBMNOP $.

  $( An associative law for division.  (Contributed by NM, 2-Aug-2004.) $)
  divass $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) ) ->
                ( ( A x. B ) / C ) = ( A x. ( B / C ) ) ) $=
    ( cc wcel cc0 wne wa cmul co c1 cdiv wceq reccl mulass syl3an3 mulcl divrec
    w3a syl3anc 3adant3 simp3l simp3r simp2 oveq2d 3eqtr4d ) ADEZBDEZCDEZCFGZHZ
    SZABIJZKCLJZIJZABUNIJZIJZUMCLJZABCLJZIJUKUGUHUNDEUOUQMCNABUNOPULUMDEZUIUJUR
    UOMUGUHUTUKABQUAUGUHUIUJUBZUGUHUIUJUCZUMCRTULUSUPAIULUHUIUJUSUPMUGUHUKUDVAV
    BBCRTUEUF $.

  $( A commutative/associative law for division.  (Contributed by NM,
     2-Aug-2004.) $)
  div23 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) )
            -> ( ( A x. B ) / C ) = ( ( A / C ) x. B ) ) $=
    ( cc wcel cc0 wne wa w3a cmul cdiv wceq mulcom oveq1d 3adant3 divass 3com12
    co simp2 divcl 3expb 3adant2 mulcomd 3eqtrd ) ADEZBDEZCDEZCFGZHZIZABJRZCKRZ
    BAJRZCKRZBACKRZJRZUOBJRUEUFULUNLUIUEUFHUKUMCKABMNOUFUEUIUNUPLBACPQUJBUOUEUF
    UISUEUIUODEZUFUEUGUHUQACTUAUBUCUD $.

  $( A commutative/associative law for division.  (Contributed by Mario
     Carneiro, 27-May-2016.) $)
  div32 $p |- ( ( A e. CC /\ ( B e. CC /\ B =/= 0 ) /\ C e. CC )
            -> ( ( A / B ) x. C ) = ( A x. ( C / B ) ) ) $=
    ( cc wcel cc0 wne wa cdiv co cmul wceq w3a div23 divass eqtr3d 3com23 ) ADE
    ZCDEZBDEBFGHZABIJCKJZACBIJKJZLRSTMACKJBIJUAUBACBNACBOPQ $.

  $( A commutative/associative law for division.  (Contributed by NM,
     22-Apr-2005.) $)
  div13 $p |- ( ( A e. CC /\ ( B e. CC /\ B =/= 0 ) /\ C e. CC )
            -> ( ( A / B ) x. C ) = ( ( C / B ) x. A ) ) $=
    ( cc wcel cc0 wne wa w3a cmul co cdiv wceq mulcom oveq1d div23 3com23 3coml
    3adant2 3eqtr3d ) ADEZBDEBFGHZCDEZIACJKZBLKZCAJKZBLKZABLKCJKZCBLKAJKZUAUCUE
    UGMUBUAUCHUDUFBLACNOSUAUCUBUEUHMACBPQUCUAUBUGUIMCABPRT $.

  $( A commutative/associative law for division.  (Contributed by NM,
     30-Apr-2005.) $)
  div12 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) )
            -> ( A x. ( B / C ) ) = ( B x. ( A / C ) ) ) $=
    ( cc wcel cc0 wne wa w3a cdiv co cmul divcl 3expb mulcom sylan2 3impb div13
    wceq 3comr stoic3 3com23 3eqtrd ) ADEZBDEZCDEZCFGZHZIABCJKZLKZUIALKZACJKZBL
    KZBULLKZUDUEUHUJUKSZUEUHHUDUIDEZUOUEUFUGUPBCMNAUIOPQUEUHUDUKUMSBCARTUDUHUEU
    MUNSZUDUHULDEZUEUQUDUFUGURACMNULBOUAUBUC $.

  $( An associative law for division and multiplication.  (Contributed by AV,
     10-Jul-2021.) $)
  divmulass $p |- ( ( ( A e. CC /\ B e. CC /\ C e. CC )
                      /\ ( D e. CC /\ D =/= 0 ) )
              -> ( ( A x. ( B / D ) ) x. C ) = ( ( A x. B ) x. ( C / D ) ) ) $=
    ( cc wcel w3a cc0 wne wa cdiv cmul wceq simpl1 simpl2 divass syl3anc eqcomd
    co simpr oveq1d mulcl 3adant3 adantr simpl3 div32 eqtrd ) AEFZBEFZCEFZGZDEF
    DHIJZJZABDKSLSZCLSABLSZDKSZCLSZUOCDKSLSZUMUNUPCLUMUPUNUMUHUIULUPUNMUHUIUJUL
    NUHUIUJULOUKULTZABDPQRUAUMUOEFZULUJUQURMUKUTULUHUIUTUJABUBUCUDUSUHUIUJULUEU
    ODCUFQUG $.

  $( An associative/commutative law for division and multiplication.
     (Contributed by AV, 10-Jul-2021.) $)
  divmulasscom $p |- ( ( ( A e. CC /\ B e. CC /\ C e. CC )
                      /\ ( D e. CC /\ D =/= 0 ) )
              -> ( ( A x. ( B / D ) ) x. C ) = ( B x. ( ( A x. C ) / D ) ) ) $=
    ( cc wcel w3a cc0 wne cdiv cmul divmulass wceq mulcom 3adant3 adantr oveq1d
    wa co simpl2 simpl1 simp3 anim1i 3anass sylibr divcl mulassd divass syl3anc
    syl simpr eqcomd oveq2d eqtrd 3eqtrd ) AEFZBEFZCEFZGZDEFZDHIZRZRZABDJSKSCKS
    ABKSZCDJSZKSBAKSZVEKSZBACKSDJSZKSZABCDLVCVDVFVEKUSVDVFMZVBUPUQVJURABNOPQVCV
    GBAVEKSZKSVIVCBAVEUPUQURVBTUPUQURVBUAZVCURUTVAGZVEEFVCURVBRVMUSURVBUPUQURUB
    ZUCURUTVAUDUECDUFUJUGVCVKVHBKVCVHVKVCUPURVBVHVKMVLUSURVBVNPUSVBUKACDUHUIULU
    MUNUO $.

  $( Distribution of division over addition.  (Contributed by NM, 31-Jul-2004.)
     (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  divdir $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) )
               -> ( ( A + B ) / C ) = ( ( A / C ) + ( B / C ) ) ) $=
    ( cc wcel cc0 wne wa caddc co c1 cdiv cmul simp1 simp2 reccl divrec syl3anc
    w3a wceq 3ad2ant3 adddird addcld simp3l simp3r oveq12d 3eqtr4d ) ADEZBDEZCD
    EZCFGZHZSZABIJZKCLJZMJZAUOMJZBUOMJZIJUNCLJZACLJZBCLJZIJUMABUOUHUIULNZUHUIUL
    OZULUHUODEUICPUAUBUMUNDEUJUKUSUPTUMABVBVCUCUHUIUJUKUDZUHUIUJUKUEZUNCQRUMUTU
    QVAURIUMUHUJUKUTUQTVBVDVEACQRUMUIUJUKVAURTVCVDVEBCQRUFUG $.

  $( A cancellation law for division.  (Contributed by NM, 3-Feb-2004.)  (Proof
     shortened by Mario Carneiro, 27-May-2016.) $)
  divcan3 $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
                 ( ( B x. A ) / B ) = A ) $=
    ( cc wcel cc0 wne w3a cmul co cdiv wceq wa simp2 simp1 mulcld 3simpc divmul
    eqid wb syl3anc mpbiri ) ACDZBCDZBEFZGZBAHIZBJIAKZUFUFKZUFRUEUFCDUBUCUDLUGU
    HSUEBAUBUCUDMUBUCUDNZOUIUBUCUDPUFABQTUA $.

  $( A cancellation law for division.  (Contributed by NM, 8-Feb-2005.) $)
  divcan4 $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
                 ( ( A x. B ) / B ) = A ) $=
    ( cc wcel cc0 wne w3a cmul co cdiv wceq mulcom 3adant3 oveq1d divcan3 eqtrd
    ) ACDZBCDZBEFZGZABHIZBJIBAHIZBJIATUAUBBJQRUAUBKSABLMNABOP $.

  $( One-to-one relationship for division.  (Contributed by NM, 20-Apr-2006.)
     (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  div11 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) ) ->
               ( ( A / C ) = ( B / C ) <-> A = B ) ) $=
    ( cc wcel cc0 wne wa w3a cdiv co cmul wceq simp1 simp3l divcl syl3anc simp2
    simp3r divcan2 mulcand eqeq12d bitr3d ) ADEZBDEZCDEZCFGZHZIZCACJKZLKZCBCJKZ
    LKZMUJULMABMUIUJULCUIUDUFUGUJDEUDUEUHNZUDUEUFUGOZUDUEUFUGSZACPQUIUEUFUGULDE
    UDUEUHRZUOUPBCPQUOUPUAUIUKAUMBUIUDUFUGUKAMUNUOUPACTQUIUEUFUGUMBMUQUOUPBCTQU
    BUC $.

  $( A number divided by itself is one.  (Contributed by NM, 1-Aug-2004.) $)
  divid $p |- ( ( A e. CC /\ A =/= 0 ) -> ( A / A ) = 1 ) $=
    ( cc wcel cc0 wne wa cdiv co c1 cmul wceq divrec 3anidm12 recid eqtrd ) ABC
    ZADEZFAAGHZAIAGHJHZIPQRSKAALMANO $.

  $( Division into zero is zero.  (Contributed by NM, 14-Mar-2005.) $)
  div0 $p |- ( ( A e. CC /\ A =/= 0 ) -> ( 0 / A ) = 0 ) $=
    ( cc wcel cc0 wne wa cdiv co wceq simpl mul01d wb 0cn divmul mp3an12 mpbird
    cmul ) ABCZADEZFZDAGHDIZADQHDIZTARSJKDBCZUCTUAUBLMMDDANOP $.

  $( A number divided by 1 is itself.  (Contributed by NM, 9-Jan-2002.)  (Proof
     shortened by Mario Carneiro, 27-May-2016.) $)
  div1 $p |- ( A e. CC -> ( A / 1 ) = A ) $=
    ( cc wcel c1 cdiv co wceq mulid2 wb cc0 wne wa ax-1cn ax-1ne0 pm3.2i divmul
    cmul mp3an3 anidms mpbird ) ABCZADEFAGZDAQFAGZAHUAUBUCIZUAUADBCZDJKZLUDUEUF
    MNOAADPRST $.

  $( 1 divided by 1 is 1 (common case).  (Contributed by David A. Wheeler,
     7-Dec-2018.) $)
  1div1e1 $p |- ( 1 / 1 ) = 1 $=
    ( c1 cc wcel cdiv co wceq ax-1cn div1 ax-mp ) ABCAADEAFGAHI $.

  $( Equality in terms of unit ratio.  (Contributed by Stefan O'Rear,
     27-Aug-2015.) $)
  diveq1 $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
      ( ( A / B ) = 1 <-> A = B ) ) $=
    ( cc wcel cc0 wne w3a cdiv co c1 wceq cmul wb wa ax-1cn divmul2 3impb simp2
    mp3an2 mulid1d eqeq2d bitrd ) ACDZBCDZBEFZGZABHIJKZABJLIZKZABKUCUDUEUGUIMZU
    CJCDUDUENUJOAJBPSQUFUHBAUFBUCUDUERTUAUB $.

  $( Move negative sign inside of a division.  (Contributed by NM,
     17-Sep-2004.) $)
  divneg $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
                -u ( A / B ) = ( -u A / B ) ) $=
    ( cc wcel cc0 wne w3a cneg c1 cdiv co cmul wceq wa reccl sylan2 3impb negcl
    mulneg1 divrec syl3an1 negeqd 3eqtr4rd ) ACDZBCDZBEFZGZAHZIBJKZLKZAUILKZHZU
    HBJKZABJKZHUDUEUFUJULMZUEUFNUDUICDUOBOAUISPQUDUHCDUEUFUMUJMARUHBTUAUGUNUKAB
    TUBUC $.

  $( Distribution of division over addition with a multiplication.
     (Contributed by AV, 1-Jul-2021.) $)
  muldivdir $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) )
               -> ( ( ( C x. A ) + B ) / C ) = ( A + ( B / C ) ) ) $=
    ( cc wcel cc0 wne wa w3a cmul co caddc cdiv wceq simp3l simp1 mulcld divdir
    syld3an1 3anass biimpri 3adant2 divcan3 syl oveq1d eqtrd ) ADEZBDEZCDEZCFGZ
    HZIZCAJKZBLKCMKZUMCMKZBCMKZLKZAUPLKUMDEUHUGUKUNUQNULCAUGUHUIUJOUGUHUKPQUMBC
    RSULUOAUPLULUGUIUJIZUOANUGUKURUHURUGUKHUGUIUJTUAUBACUCUDUEUF $.

  $( Distribution of division over subtraction.  (Contributed by NM,
     4-Mar-2005.) $)
  divsubdir $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) )
               -> ( ( A - B ) / C ) = ( ( A / C ) - ( B / C ) ) ) $=
    ( cc wcel cc0 wne wa w3a cdiv co cneg caddc cmin negcl eqtr3d 3expb 3adant1
    wceq divcl divdir syl3an2 negsub oveq1d 3adant3 divneg 3adant2 negsubd
    oveq2d ) ADEZBDEZCDEZCFGZHZIZACJKZBLZCJKZMKZABNKZCJKZUPBCJKZNKZUOAUQMKZCJKZ
    USVAUKUJUQDEUNVEUSSBOAUQCUAUBUJUKVEVASUNUJUKHVDUTCJABUCUDUEPUOUPVBLZMKUSVCU
    OVFURUPMUKUNVFURSZUJUKULUMVGBCUFQRUIUOUPVBUJUNUPDEZUKUJULUMVHACTQUGUKUNVBDE
    ZUJUKULUMVIBCTQRUHPP $.

  $( A number is equal to the reciprocal of its reciprocal.  Theorem I.10 of
     [Apostol] p. 18.  (Contributed by NM, 26-Sep-1999.)  (Proof shortened by
     Mario Carneiro, 27-May-2016.) $)
  recrec $p |- ( ( A e. CC /\ A =/= 0 ) -> ( 1 / ( 1 / A ) ) = A ) $=
    ( cc wcel cc0 wne wa c1 cdiv co wceq cmul recid2 wb 1cnd simpl reccl recne0
    divmul syl112anc mpbird ) ABCZADEZFZGGAHIZHIAJZUDAKIGJZALUCGBCUAUDBCUDDEUEU
    FMUCNUAUBOAPAQGAUDRST $.

  $( Reciprocal is one-to-one.  (Contributed by NM, 16-Sep-1999.)  (Revised by
     Mario Carneiro, 27-May-2016.) $)
  rec11 $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) )
                  -> ( ( 1 / A ) = ( 1 / B ) <-> A = B ) ) $=
    ( cc wcel cc0 wne wa c1 cdiv co wceq cmul wb 1cnd reccl adantl simpl divmul
    syl3anc simpll simprl simprr divrec eqeq1d diveq1 3bitr2d ) ACDZAEFZGZBCDZB
    EFZGZGZHAIJHBIJZKZAUNLJZHKZABIJZHKZABKZUMHCDUNCDZUIUOUQMUMNULVAUIBOPUIULQHU
    NARSUMURUPHUMUGUJUKURUPKUGUHULTZUIUJUKUAZUIUJUKUBZABUCSUDUMUGUJUKUSUTMVBVCV
    DABUESUF $.

  $( Mutual reciprocals.  (Contributed by Paul Chapman, 18-Oct-2007.) $)
  rec11r $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) )
                  -> ( ( 1 / A ) = B <-> ( 1 / B ) = A ) ) $=
    ( cc wcel cc0 wne wa c1 cdiv co wceq cmul 1cnd simprl simpll simplr divmul2
    wb syl112anc simprr divmul3 bitr4d ) ACDZAEFZGZBCDZBEFZGZGZHAIJBKZHABLJKZHB
    IJAKZUIHCDZUFUCUDUJUKRUIMZUEUFUGNZUCUDUHOZUCUDUHPHBAQSUIUMUCUFUGULUKRUNUPUO
    UEUFUGTHABUASUB $.

  $( Multiplication of two ratios.  Theorem I.14 of [Apostol] p. 18.
     (Contributed by NM, 1-Aug-2004.) $)
  divmuldiv $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( C e. CC /\ C =/= 0 )
                    /\ ( D e. CC /\ D =/= 0 ) ) )
               -> ( ( A / C ) x. ( B / D ) ) = ( ( A x. B ) / ( C x. D ) ) ) $=
    ( cc wcel cc0 wne wa cdiv co cmul wceq 3anass divcl mulcl 3adantr1 3adantl1
    w3a syl2an ad2ant2r mulne0 divcan3 syl3anc simp2 jca mul4 divcan2 oveqan12d
    eqtr3d oveq1d syl2anbr an4s ) AEFZCEFZCGHZIZBEFZDEFZDGHZIZACJKZBDJKZLKZABLK
    ZCDLKZJKZMZUNUQIUNUOUPSZURUSUTSZVHURVAIUNUOUPNURUSUTNVIVJIZVFVDLKZVFJKZVDVG
    VKVDEFZVFEFZVFGHZVMVDMVIVBEFZVCEFZVNVJACOZBDOZVBVCPTUOUPVJVOUNUQUSUTVOURUOU
    SVOUPUTCDPUAQRUOUPVJVPUNUQUSUTVPURCDUBQRVDVFUCUDVKVLVEVFJVKCVBLKZDVCLKZLKZV
    LVEVIUOVQIUSVRIWCVLMVJVIUOVQUNUOUPUEVSUFVJUSVRURUSUTUEVTUFCVBDVCUGTVIVJWAAW
    BBLACUHBDUHUIUJUKUJULUM $.

  $( Division of two ratios.  Theorem I.15 of [Apostol] p. 18.  (Contributed by
     NM, 2-Aug-2004.) $)
  divdivdiv $p |- ( ( ( A e. CC /\ ( B e. CC /\ B =/= 0 ) ) /\
                  ( ( C e. CC /\ C =/= 0 ) /\ ( D e. CC /\ D =/= 0 ) ) )
                -> ( ( A / B ) / ( C / D ) ) = ( ( A x. D ) / ( B x. C ) ) ) $=
    ( cc wcel cc0 wa cdiv co cmul wceq divcl syl3anc mulcomd divmuldiv eqtrd c1
    wne mulcld simprrl simprll simprlr simplrl simplrr syl22anc simprrr mulne0d
    simpll simplr simprl oveq2d simprr divid syl2anc mulassd mulid2d 3eqtr3d wb
    oveq1d eqtr3d mulne0 ad2ant2lr divne0 adantl divmul syl112anc mpbird ) AEFZ
    BEFZBGSZHZHZCEFZCGSZHZDEFZDGSZHZHZHZABIJZCDIJZIJADKJZBCKJZIJZLZWCWFKJZWBLZW
    AWCDCIJZWBKJZKJZWHWBWAWKWFWCKWAWKWBWJKJZWFWAWJWBWAVQVNVOWJEFVMVPVQVRUAZVMVN
    VOVSUBZVMVNVOVSUCZDCMNZWAVIVJVKWBEFZVIVLVTUIZVIVJVKVTUDZVIVJVKVTUEABMNZOWAV
    IVQVLVPWMWFLWSWNVIVLVTUJVMVPVSUKZADBCPUFQULWAWCWJKJZWBKJRWBKJWLWBWAXCRWBKWA
    XCCDKJZDCKJZIJZRWAVNVQVSVPXCXFLWOWNVMVPVSUMXBCDDCPUFWAXFXEXEIJZRWAXDXEXEIWA
    CDWOWNOUTWAXEEFXEGSXGRLWADCWNWOTWADCWNWOVMVPVQVRUGZWPUHXEUNUOQQUTWAWCWJWBWA
    VNVQVRWCEFZWOWNXHCDMNZWQXAUPWAWBXAUQURVAWAWRWFEFZXIWCGSZWGWIUSXAWAWDEFWEEFW
    EGSZXKWAADWSWNTWABCWTWOTVLVPXMVIVSBCVBVCWDWEMNXJVTXLVMCDVDVEWBWFWCVFVGVH $.

  $( Cancellation of common factor in a ratio.  (Contributed by NM,
     9-Jan-2006.) $)
  divcan5 $p |- ( ( A e. CC /\ ( B e. CC /\ B =/= 0 ) /\
       ( C e. CC /\ C =/= 0 ) ) -> ( ( C x. A ) / ( C x. B ) ) = ( A / B ) ) $=
    ( cc wcel cc0 wne wa w3a cdiv co cmul c1 divid oveq1d 3ad2ant3 simp3l simp1
    wceq simp3 simp2 divmuldiv syl22anc divcl 3expb mulid2d 3adant3 3eqtr3d ) A
    DEZBDEZBFGZHZCDEZCFGZHZIZCCJKZABJKZLKZMURLKZCALKCBLKJKZURUOUIUSUTSULUOUQMUR
    LCNOPUPUMUIUOULUSVASUIULUMUNQUIULUORUIULUOTUIULUOUACACBUBUCUIULUTURSUOUIULH
    URUIUJUKURDEABUDUEUFUGUH $.

  $( Swap the denominators in the product of two ratios.  (Contributed by NM,
     3-May-2005.) $)
  divmul13 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( C e. CC /\ C =/= 0 )
                    /\ ( D e. CC /\ D =/= 0 ) ) )
                -> ( ( A / C ) x. ( B / D ) ) = ( ( B / C ) x. ( A / D ) ) ) $=
    ( cc wcel wa cc0 wne cmul co cdiv wceq mulcom adantr oveq1d ancom1s 3eqtr4d
    divmuldiv ) AEFZBEFZGZCEFCHIGDEFDHIGGZGZABJKZCDJKZLKBAJKZUFLKZACLKBDLKJKBCL
    KADLKJKZUDUEUGUFLUBUEUGMUCABNOPABCDSUATUCUIUHMBACDSQR $.

  $( Swap the numerators in the product of two ratios.  (Contributed by NM,
     3-May-2005.) $)
  divmul24 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( C e. CC /\ C =/= 0 )
                    /\ ( D e. CC /\ D =/= 0 ) ) )
                -> ( ( A / C ) x. ( B / D ) ) = ( ( A / D ) x. ( B / C ) ) ) $=
    ( cc wcel wa cc0 wne cmul cdiv wceq mulcom ad2ant2r adantl oveq2d divmuldiv
    co ancom2s 3eqtr4d ) AEFBEFGZCEFZCHIZGZDEFZDHIZGZGZGZABJRZCDJRZKRUJDCJRZKRZ
    ACKRBDKRJRADKRBCKRJRZUIUKULUJKUHUKULLZUAUBUEUOUCUFCDMNOPABCDQUAUGUDUNUMLABD
    CQST $.

  $( Cross-multiply in an equality of ratios.  (Contributed by Mario Carneiro,
     23-Feb-2014.) $)
  divmuleq $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( C e. CC /\ C =/= 0 ) /\
                     ( D e. CC /\ D =/= 0 ) ) ) ->
                   ( ( A / C ) = ( B / D ) <-> ( A x. D ) = ( B x. C ) ) ) $=
    ( cc wcel wa cc0 wne cdiv co cmul wceq divcl 3expb ad2ant2r mulassd divcan1
    ad2ant2l oveq1d wb mulne0 jca adantl mulcan2 syl3anc simprll simprrl eqtr3d
    mulcl mulcomd oveq2d 3eqtr2d eqeq12d bitr3d ) AEFZBEFZGZCEFZCHIZGZDEFZDHIZG
    ZGZGZACJKZCDLKZLKZBDJKZVHLKZMZVGVJMZADLKZBCLKZMVFVGEFZVJEFZVHEFZVHHIZGZVLVM
    UAUPVAVPUQVDUPUSUTVPACNOPZUQVDVQUPVAUQVBVCVQBDNOSZVEVTURVEVRVSUSVBVRUTVCCDU
    JPCDUBUCUDVGVJVHUEUFVFVIVNVKVOVFVGCLKZDLKVIVNVFVGCDWAURUSUTVDUGZURVAVBVCUHZ
    QVFWCADLUPVAWCAMZUQVDUPUSUTWFACROPTUIVFVKVJDCLKZLKVJDLKZCLKVOVFVHWGVJLVFCDW
    DWEUKULVFVJDCWBWEWDQVFWHBCLUQVDWHBMZUPVAUQVBVCWIBDROSTUMUNUO $.

  $( The reciprocal of a ratio.  (Contributed by NM, 3-Aug-2004.) $)
  recdiv $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) ) ->
                ( 1 / ( A / B ) ) = ( B / A ) ) $=
    ( cc wcel cc0 wne wa c1 cdiv cmul 1div1e1 oveq1i wceq ax-1cn ax-1ne0 pm3.2i
    co divdivdiv mpanl12 mulid2 syl5eqr oveqan12rd ad2ant2r eqtrd ) ACDZAEFZGBC
    DZBEFZGGZHABIQZIQZHBJQZHAJQZIQZBAIQZUIUKHHIQZUJIQZUNUPHUJIKLHCDZURHEFZGUIUQ
    UNMNURUSNOPHHABRSUAUEUGUNUOMUFUHUGUEULBUMAIBTATUBUCUD $.

  $( Cancellation of inverted fractions.  (Contributed by NM, 28-Dec-2007.) $)
  divcan6 $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) ) ->
         ( ( A / B ) x. ( B / A ) ) = 1 ) $=
    ( cc wcel cc0 wne wa cdiv co c1 cmul recdiv oveq2d wceq divcl 3expb adantlr
    divne0 recid syl2anc eqtr3d ) ACDZAEFZGBCDZBEFZGZGZABHIZJUHHIZKIZUHBAHIZKIJ
    UGUIUKUHKABLMUGUHCDZUHEFUJJNUBUFULUCUBUDUEULABOPQABRUHSTUA $.

  $( Swap denominators in a division.  (Contributed by NM, 2-Aug-2004.) $)
  divdiv32 $p |- ( ( A e. CC /\ ( B e. CC /\ B =/= 0 )
      /\ ( C e. CC /\ C =/= 0 ) ) -> ( ( A / B ) / C ) = ( ( A / C ) / B ) ) $=
    ( cc wcel cc0 wne wa w3a c1 cdiv cmul wceq reccl div23 syl3an2 divrec 3expb
    co 3adant3 oveq1d divcl syl3an1 3impa 3com23 3eqtr4d ) ADEZBDEZBFGZHZCDEZCF
    GZHZIZAJBKSZLSZCKSZACKSZUOLSZABKSZCKSURBKSZUJUGUODEUMUQUSMBNAUOCOPUNUTUPCKU
    GUJUTUPMZUMUGUHUIVBABQRTUAUGUMUJVAUSMZUGUMUJVCUGUMHZUHUIVCVDURDEZUHUIVCUGUK
    ULVEACUBRURBQUCRUDUEUF $.

  $( Cancel equal divisors in a division.  (Contributed by Jeff Hankins,
     29-Sep-2013.) $)
  divcan7 $p |- ( ( A e. CC /\ ( B e. CC /\ B =/= 0 ) /\
    ( C e. CC /\ C =/= 0 ) ) -> ( ( A / C ) / ( B / C ) ) = ( A / B ) ) $=
    ( cc wcel cc0 wne wa w3a cdiv co cmul wceq divdivdiv 3impdir mulcom adantrr
    3adant2 oveq1d divcan5 3eqtrd ) ADEZBDEBFGHZCDEZCFGZHZIZACJKBCJKJKZACLKZCBL
    KZJKZCALKZUJJKABJKUBUFUCUHUKMACBCNOUGUIULUJJUBUFUIULMZUCUBUDUMUEACPQRSABCTU
    A $.

  $( Cancellation law for division and multiplication.  (Contributed by Scott
     Fenton, 7-Jun-2013.)  (Proof shortened by Fan Zheng, 3-Jul-2016.) $)
  dmdcan $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) /\
         C e. CC ) ->
         ( ( A / B ) x. ( C / A ) ) = ( C / B ) ) $=
    ( cc wcel cc0 wne wa w3a cdiv co cmul wceq simp1l simp3 simp1r divcl simp2l
    syl3anc simp2r div23 syl112anc divcan2 oveq1d eqtr3d ) ADEZAFGZHZBDEZBFGZHZ
    CDEZIZACAJKZLKZBJKZABJKUNLKZCBJKUMUFUNDEZUIUJUPUQMUFUGUKULNZUMULUFUGURUHUKU
    LOZUSUFUGUKULPZCAQSUHUIUJULRUHUIUJULTAUNBUAUBUMUOCBJUMULUFUGUOCMUTUSVACAUCS
    UDUE $.

  $( Division into a fraction.  (Contributed by NM, 31-Dec-2007.) $)
  divdiv1 $p |- ( ( A e. CC /\ ( B e. CC /\ B =/= 0 ) /\
       ( C e. CC /\ C =/= 0 ) ) -> ( ( A / B ) / C ) = ( A / ( B x. C ) ) ) $=
    ( cc wcel cc0 wne wa cdiv co c1 cmul ax-1cn ax-1ne0 pm3.2i divdivdiv mpanr2
    w3a wceq 3impa div1 oveq2d ad2antrl 3adant1 mulid1 oveq1d 3ad2ant1 3eqtr3d
    ) ADEZBDEBFGHZCDEZCFGZHZRABIJZCKIJZIJZAKLJZBCLJZIJZUNCIJZAURIJZUIUJUMUPUSSZ
    UIUJHUMKDEZKFGZHVBVCVDMNOABCKPQTUJUMUPUTSZUIUKVEUJULUKUOCUNICUAUBUCUDUIUJUS
    VASUMUIUQAURIAUEUFUGUH $.

  $( Division by a fraction.  (Contributed by NM, 27-Dec-2008.) $)
  divdiv2 $p |- ( ( A e. CC /\ ( B e. CC /\ B =/= 0 ) /\ ( C e. CC /\ C =/= 0 )
              ) -> ( A / ( B / C ) ) = ( ( A x. C ) / B ) ) $=
    ( cc wcel cc0 wne wa c1 cdiv co cmul ax-1cn ax-1ne0 pm3.2i divdivdiv mpanl2
    w3a wceq 3impb div1 3ad2ant1 oveq1d mulid2 ad2antrl 3adant3 oveq2d 3eqtr3d
    ) ADEZBDEZBFGZHZCDECFGHZRZAIJKZBCJKZJKZACLKZIBLKZJKZAUPJKURBJKUIULUMUQUTSZU
    IIDEZIFGZHULUMHVAVBVCMNOAIBCPQTUNUOAUPJUIULUOASUMAUAUBUCUNUSBURJUIULUSBSZUM
    UJVDUIUKBUDUEUFUGUH $.

  $( Division into a reciprocal.  (Contributed by NM, 19-Oct-2007.) $)
  recdiv2 $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) ) ->
                ( ( 1 / A ) / B ) = ( 1 / ( A x. B ) ) ) $=
    ( c1 cc wcel cc0 wne wa cdiv co cmul wceq ax-1cn divdiv1 mp3an1 ) CDEADEAFG
    HBDEBFGHCAIJBIJCABKJIJLMCABNO $.

  $( Cancellation in a double division.  (Contributed by Mario Carneiro,
     26-Apr-2015.) $)
  ddcan $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) ) ->
                ( A / ( A / B ) ) = B ) $=
    ( cc wcel cc0 wne wa cdiv co wceq cmul simpll simprl simprr divcan1 syl3anc
    wb divcl divne0 divmul syl112anc mpbird ) ACDZAEFZGZBCDZBEFZGZGZAABHIZHIBJZ
    UJBKIAJZUIUCUFUGULUCUDUHLZUEUFUGMZUEUFUGNZABOPUIUCUFUJCDZUJEFUKULQUMUNUIUCU
    FUGUPUMUNUOABRPABSABUJTUAUB $.

  $( Addition of two ratios.  Theorem I.13 of [Apostol] p. 18.  (Contributed by
     NM, 1-Aug-2004.)  (Revised by Mario Carneiro, 2-May-2016.) $)
  divadddiv $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( C e. CC /\ C =/= 0 )
                    /\ ( D e. CC /\ D =/= 0 ) ) ) ->
  ( ( A / C ) + ( B / D ) ) = ( ( ( A x. D ) + ( B x. C ) ) / ( C x. D ) ) ) $=
    ( cc wcel wa cc0 wne cmul co caddc cdiv wceq mulcl ad2ant2r syl3anc mulcomd
    oveq12d divcan5 adantrl ad2ant2lr mulne0 adantl divdir simpll simprr simpld
    adantrr jca simprll simprl eqtrd simplr oveq1d eqtr2d ) AEFZBEFZGZCEFZCHIZG
    ZDEFZDHIZGZGZGZADJKZBCJKZLKCDJKZMKZVHVJMKZVIVJMKZLKZACMKZBDMKZLKVGVHEFZVIEF
    ZVJEFZVJHIZGZVKVNNUSVEVQVBUQVCVQURVDADOPUAURVBVRUQVEURUTVRVABCOUIUBVFWAUSVF
    VSVTUTVCVSVAVDCDOPCDUCUJUDVHVIVJUEQVGVLVOVMVPLVGVLDAJKZDCJKZMKZVOVGVHWBVJWC
    MVGADUQURVFUFZVGVCVDUSVBVEUGZUHZRVGCDUSUTVAVEUKZWGRSVGUQVBVEWDVONWEUSVBVEUL
    ZWFACDTQUMVGVMCBJKZVJMKZVPVGVIWJVJMVGBCUQURVFUNZWHRUOVGURVEVBWKVPNWLWFWIBDC
    TQUMSUP $.

  $( Subtraction of two ratios.  (Contributed by Scott Fenton, 22-Apr-2014.)
     (Revised by Mario Carneiro, 2-May-2016.) $)
  divsubdiv $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( C e. CC /\ C =/= 0 )
                    /\ ( D e. CC /\ D =/= 0 ) ) ) ->
  ( ( A / C ) - ( B / D ) ) = ( ( ( A x. D ) - ( B x. C ) ) / ( C x. D ) ) ) $=
    ( cc wcel wa cc0 wne cmul co cneg caddc cdiv cmin wceq syl3anc oveq2d divcl
    eqtr3d negcl divadddiv sylanl2 simplr simprrl simprrr divneg simpll simprll
    simprlr negsubd mulneg1d mulcld eqtrd oveq1d ) AEFZBEFZGZCEFZCHIZGZDEFZDHIZ
    GZGZGZADJKZBLZCJKZMKZCDJKZNKZACNKZBDNKZOKZVGBCJKZOKZVKNKVFVMVHDNKZMKZVLVOUQ
    UPVHEFVEVSVLPBUAAVHCDUBUCVFVMVNLZMKVSVOVFVTVRVMMVFUQVBVCVTVRPUPUQVEUDZURVAV
    BVCUEZURVAVBVCUFZBDUGQRVFVMVNVFUPUSUTVMEFUPUQVEUHZURUSUTVDUIZURUSUTVDUJACSQ
    VFUQVBVCVNEFWAWBWCBDSQUKTTVFVJVQVKNVFVJVGVPLZMKVQVFVIWFVGMVFBCWAWEULRVFVGVP
    VFADWDWBUMVFBCWAWEUMUKUNUOT $.

  $( Two numbers whose reciprocals sum to 1 are called "conjugates" and satisfy
     this relationship.  Equation 5 of [Kreyszig] p. 12.  (Contributed by NM,
     12-Nov-2006.) $)
  conjmul $p |- ( ( ( P e. CC /\ P =/= 0 ) /\ ( Q e. CC /\ Q =/= 0 ) ) ->
      ( ( ( 1 / P ) + ( 1 / Q ) ) = 1 <-> ( ( P - 1 ) x. ( Q - 1 ) ) = 1 ) ) $=
    ( cc wcel cc0 wne wa cmul co cdiv caddc wceq cmin reccl adantr recid 3eqtrd
    c1 adantl ad2ant2r simpll simprl mul32d oveq1d mulid2 mulassd oveq2d mulid1
    ad2antrl ad2antrr oveq12d mulcl adddid addcom 3eqtr4d mulid1d eqeq12d addcl
    syl2an mulne0 ax-1cn mulcan mp3an2 syl12anc eqcom muleqadd syl5bb 3bitr3d
    wb ) ACDZAEFZGZBCDZBEFZGZGZABHIZRAJIZRBJIZKIZHIZVQRHIZLZABKIZVQLZVTRLZARMIB
    RMIHIRLZVPWAWDWBVQVPVQVRHIZVQVSHIZKIBAKIZWAWDVPWHBWIAKVPWHAVRHIZBHIZRBHIZBV
    PABVRVJVKVOUAZVLVMVNUBZVLVRCDZVOANZOZUCVLWLWMLVOVLWKRBHAPUDOVMWMBLVLVNBUEUI
    QVPWIABVSHIZHIZARHIZAVPABVSWNWOVOVSCDZVLBNZSZUFVOWTXALVLVOWSRAHBPUGSVJXAALV
    KVOAUHUJQUKVPVQVRVSVJVMVQCDZVKVNABULZTZWRXDUMVJVMWDWJLVKVNABUNTUOVJVMWBVQLV
    KVNVJVMGZVQXFUPTUQVPVTCDZXEVQEFZWCWFVIZVLWPXBXIVOWQXCVRVSURUSXGABUTXIRCDXEX
    JGXKVAVTRVQVBVCVDVJVMWEWGVIVKVNWEVQWDLXHWGWDVQVEABVFVGTVH $.

  ${
    $d x A $.
    $( Closure law for reciprocal.  (Contributed by NM, 30-Apr-2005.)  (Revised
       by Mario Carneiro, 27-May-2016.) $)
    rereccl $p |- ( ( A e. RR /\ A =/= 0 ) -> ( 1 / A ) e. RR ) $=
      ( vx cr wcel cc0 wne wa cv c1 cdiv co wceq wrex cmul ax-rrecex eqcom 1cnd
      cc wb recnd simpll simplr divmul syl112anc syl5bb rexbidva mpbird risset
      simpr sylibr ) ACDZAEFZGZBHZIAJKZLZBCMZUOCDUMUQAUNNKILZBCMBAOUMUPURBCUPUO
      UNLZUMUNCDZGZURUNUOPVAIRDUNRDARDULUSURSVAQVAUNUMUTUITVAAUKULUTUATUKULUTUB
      IUNAUCUDUEUFUGBUOCUHUJ $.
  $}

  $( Closure law for division of reals.  (Contributed by NM, 27-Sep-1999.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  redivcl $p |- ( ( A e. RR /\ B e. RR /\ B =/= 0 ) -> ( A / B ) e. RR ) $=
    ( cr wcel cc0 wne w3a cdiv co c1 cmul wceq simp1 recnd simp2 divrec syl3anc
    cc simp3 rereccl 3adant1 remulcld eqeltrd ) ACDZBCDZBEFZGZABHIZAJBHIZKIZCUG
    ARDBRDUFUHUJLUGAUDUEUFMZNUGBUDUEUFONUDUEUFSABPQUGAUIUKUEUFUICDUDBTUAUBUC $.

  $( A number equal to its negative is zero.  (Contributed by NM, 12-Jul-2005.)
     (Revised by Mario Carneiro, 27-May-2016.) $)
  eqneg $p |- ( A e. CC -> ( A = -u A <-> A = 0 ) ) $=
    ( cc wcel c1 caddc cmul cc0 wceq cneg 1p1times negid ax-1cn addcli syl6reqr
    co mul01i eqeq12d a1i 1re 0lt1 id 0cnd wne readdcli addgt0ii gt0ne0ii negcl
    mulcand addcand 3bitr3rd ) ABCZDDEOZAFOZULGFOZHAAEOZAAIZEOZHAGHAUPHUKUMUOUN
    UQAJUKUQGUNAKULDDLLMZPNQUKAGULUKUAZUKUBULBCUKURRULGUCUKULDDSSUDDDSSTTUEUFRU
    HUKAAUPUSUSAUGUIUJ $.

  ${
    eqnegd.1 $e |- ( ph -> A e. CC ) $.
    $( A complex number equals its negative iff it is zero.  Deduction form of
       ~ eqneg .  (Contributed by David Moews, 28-Feb-2017.) $)
    eqnegd $p |- ( ph -> ( A = -u A <-> A = 0 ) ) $=
      ( cc wcel cneg wceq cc0 wb eqneg syl ) ABDEBBFGBHGICBJK $.
  $}

  ${
    eqnegad.1 $e |- ( ph -> A e. CC ) $.
    eqnegad.2 $e |- ( ph -> A = -u A ) $.
    $( If a complex number equals its own negative, it is zero.  One-way
       deduction form of ~ eqneg .  (Contributed by David Moews,
       28-Feb-2017.) $)
    eqnegad $p |- ( ph -> A = 0 ) $=
      ( cneg wceq cc0 eqnegd mpbid ) ABBEFBGFDABCHI $.
  $}

  $( Quotient of two negatives.  (Contributed by Paul Chapman, 10-Nov-2012.) $)
  div2neg $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
                  ( -u A / -u B ) = ( A / B ) ) $=
    ( cc wcel cc0 wne w3a cneg cdiv co wceq cmul negcl 3ad2ant2 simp1 syl112anc
    c1 3adant1 eqtrd 3ad2ant1 simp2 divneg syld3an1 negeqd eqtr3d oveq2d ax-1cn
    simp3 div12 divid negcli mulcom mpan2 negeq0 necon3bid biimpa divmul mpbird
    mulm1 wb divcl ) ACDZBCDZBEFZGZAHZBHZIJABIJZKZVGVHLJZVFKZVEVJAVGBIJZLJZVFVE
    VGCDZVBVCVDVJVMKVCVBVNVDBMNZVBVCVDOVBVCVDUAZVBVCVDUHVGABUIPVEVMAQHZLJZVFVEV
    LVQALVEBBIJZHZVLVQVCVCVBVDVTVLKVPBBUBUCVEVSQVCVDVSQKVBBUJRUDUEUFVBVCVRVFKVD
    VBVRVQALJZVFVBVQCDVRWAKQUGUKAVQULUMAUSSTSSVEVFCDZVHCDVNVGEFZVIVKUTVBVCWBVDA
    MTABVAVOVCVDWCVBVCVDWCVCBEVGEBUNUOUPRVFVHVGUQPUR $.

  $( Move negative sign inside of a division.  (Contributed by Mario Carneiro,
     15-Sep-2014.) $)
  divneg2 $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
                   -u ( A / B ) = ( A / -u B ) ) $=
    ( cc wcel cc0 wne w3a cdiv co cneg divneg wceq negcl div2neg syl3an1 negneg
    3ad2ant1 oveq1d 3eqtr2d ) ACDZBCDZBEFZGZABHIJAJZBHIZUDJZBJZHIZAUGHIABKTUDCD
    UAUBUHUELAMUDBNOUCUFAUGHTUAUFALUBAPQRS $.

  ${
    divclz.1 $e |- A e. CC $.
    $( Closure law for reciprocal.  (Contributed by NM, 30-Apr-2005.) $)
    recclzi $p |- ( A =/= 0 -> ( 1 / A ) e. CC ) $=
      ( cc wcel cc0 wne c1 cdiv co reccl mpan ) ACDAEFGAHICDBAJK $.

    $( The reciprocal of a nonzero number is nonzero.  (Contributed by NM,
       14-May-1999.) $)
    recne0zi $p |- ( A =/= 0 -> ( 1 / A ) =/= 0 ) $=
      ( cc wcel cc0 wne c1 cdiv co recne0 mpan ) ACDAEFGAHIEFBAJK $.

    $( Multiplication of a number and its reciprocal.  (Contributed by NM,
       14-May-1999.) $)
    recidzi $p |- ( A =/= 0 -> ( A x. ( 1 / A ) ) = 1 ) $=
      ( cc wcel cc0 wne c1 cdiv co cmul wceq recid mpan ) ACDAEFAGAHIJIGKBALM
      $.

    $( A number divided by 1 is itself.  (Contributed by NM, 9-Jan-2002.) $)
    div1i $p |- ( A / 1 ) = A $=
      ( cc wcel c1 cdiv co wceq div1 ax-mp ) ACDAEFGAHBAIJ $.

    $( A number equal to its negative is zero.  (Contributed by NM,
       29-May-1999.) $)
    eqnegi $p |- ( A = -u A <-> A = 0 ) $=
      ( cc wcel cneg wceq cc0 wb eqneg ax-mp ) ACDAAEFAGFHBAIJ $.

    ${
      reccl.2 $e |- A =/= 0 $.
      $( Closure law for reciprocal.  (Contributed by NM, 30-Apr-2005.) $)
      reccli $p |- ( 1 / A ) e. CC $=
        ( cc0 wne c1 cdiv co cc wcel recclzi ax-mp ) ADEFAGHIJCABKL $.

      $( Multiplication of a number and its reciprocal.  (Contributed by NM,
         9-Feb-1995.) $)
      recidi $p |- ( A x. ( 1 / A ) ) = 1 $=
        ( cc0 wne c1 cdiv co cmul wceq recidzi ax-mp ) ADEAFAGHIHFJCABKL $.

      $( A number is equal to the reciprocal of its reciprocal.  Theorem I.10
         of [Apostol] p. 18.  (Contributed by NM, 9-Feb-1995.) $)
      recreci $p |- ( 1 / ( 1 / A ) ) = A $=
        ( cc wcel cc0 wne c1 cdiv co wceq recrec mp2an ) ADEAFGHHAIJIJAKBCALM
        $.

      $( A number divided by itself is one.  (Contributed by NM,
         9-Feb-1995.) $)
      dividi $p |- ( A / A ) = 1 $=
        ( cc wcel cc0 wne cdiv co c1 wceq divid mp2an ) ADEAFGAAHIJKBCALM $.

      $( Division into zero is zero.  (Contributed by NM, 12-Aug-1999.) $)
      div0i $p |- ( 0 / A ) = 0 $=
        ( cc wcel cc0 wne cdiv co wceq div0 mp2an ) ADEAFGFAHIFJBCAKL $.
    $}

    divclz.2 $e |- B e. CC $.
    $( Closure law for division.  (Contributed by NM, 7-May-1999.)  (Revised by
       Mario Carneiro, 17-Feb-2014.) $)
    divclzi $p |- ( B =/= 0 -> ( A / B ) e. CC ) $=
      ( cc wcel cc0 wne cdiv co divcl mp3an12 ) AEFBEFBGHABIJEFCDABKL $.

    $( A cancellation law for division.  (Contributed by NM, 2-Oct-1999.) $)
    divcan1zi $p |- ( B =/= 0 -> ( ( A / B ) x. B ) = A ) $=
      ( cc wcel cc0 wne cdiv co cmul wceq divcan1 mp3an12 ) AEFBEFBGHABIJBKJALC
      DABMN $.

    $( A cancellation law for division.  (Contributed by NM, 10-Aug-1999.) $)
    divcan2zi $p |- ( B =/= 0 -> ( B x. ( A / B ) ) = A ) $=
      ( cc wcel cc0 wne cdiv co cmul wceq divcan2 mp3an12 ) AEFBEFBGHBABIJKJALC
      DABMN $.

    $( Relationship between division and reciprocal.  Theorem I.9 of [Apostol]
       p. 18.  (Contributed by NM, 11-Oct-1999.) $)
    divreczi $p |- ( B =/= 0 -> ( A / B ) = ( A x. ( 1 / B ) ) ) $=
      ( cc wcel cc0 wne cdiv co c1 cmul wceq divrec mp3an12 ) AEFBEFBGHABIJAKBI
      JLJMCDABNO $.

    $( A cancellation law for division.  (Eliminates a hypothesis of ~ divcan3i
       with the weak deduction theorem.)  (Contributed by NM, 3-Feb-2004.) $)
    divcan3zi $p |- ( B =/= 0 -> ( ( B x. A ) / B ) = A ) $=
      ( cc wcel cc0 wne cmul co cdiv wceq divcan3 mp3an12 ) AEFBEFBGHBAIJBKJALC
      DABMN $.

    $( A cancellation law for division.  (Contributed by NM, 12-Oct-1999.) $)
    divcan4zi $p |- ( B =/= 0 -> ( ( A x. B ) / B ) = A ) $=
      ( cc wcel cc0 wne cmul co cdiv wceq divcan4 mp3an12 ) AEFBEFBGHABIJBKJALC
      DABMN $.

    $( Reciprocal is one-to-one.  (Contributed by NM, 16-Sep-1999.) $)
    rec11i $p |- ( ( A =/= 0 /\ B =/= 0 ) ->
               ( ( 1 / A ) = ( 1 / B ) <-> A = B ) ) $=
      ( cc wcel cc0 wne wa c1 cdiv co wceq wb rec11 an4s mpanl12 ) AEFZBEFZAGHZ
      BGHZIJAKLJBKLMABMNZCDRTSUAUBABOPQ $.

    ${
      divcl.3 $e |- B =/= 0 $.
      $( Closure law for division.  (Contributed by NM, 2-Feb-1995.)  (Revised
         by Mario Carneiro, 17-Feb-2014.) $)
      divcli $p |- ( A / B ) e. CC $=
        ( cc0 wne cdiv co cc wcel divclzi ax-mp ) BFGABHIJKEABCDLM $.

      $( A cancellation law for division.  (Contributed by NM, 9-Feb-1995.) $)
      divcan2i $p |- ( B x. ( A / B ) ) = A $=
        ( cc0 wne cdiv co cmul wceq divcan2zi ax-mp ) BFGBABHIJIAKEABCDLM $.

      $( A cancellation law for division.  (Contributed by NM, 18-May-1999.) $)
      divcan1i $p |- ( ( A / B ) x. B ) = A $=
        ( cdiv co divcli divcan2i mulcomli ) BABFGADABCDEHABCDEIJ $.

      $( Relationship between division and reciprocal.  Theorem I.9 of
         [Apostol] p. 18.  (Contributed by NM, 9-Feb-1995.) $)
      divreci $p |- ( A / B ) = ( A x. ( 1 / B ) ) $=
        ( cc0 wne cdiv co c1 cmul wceq divreczi ax-mp ) BFGABHIAJBHIKILEABCDMN
        $.

      $( A cancellation law for division.  (Contributed by NM, 16-Feb-1995.) $)
      divcan3i $p |- ( ( B x. A ) / B ) = A $=
        ( cc0 wne cmul co cdiv wceq divcan3zi ax-mp ) BFGBAHIBJIAKEABCDLM $.

      $( A cancellation law for division.  (Contributed by NM, 18-May-1999.) $)
      divcan4i $p |- ( ( A x. B ) / B ) = A $=
        ( cc0 wne cmul co cdiv wceq divcan4zi ax-mp ) BFGABHIBJIAKEABCDLM $.
    $}

    ${
      divneq0.3 $e |- A =/= 0 $.
      divneq0.4 $e |- B =/= 0 $.
      $( The ratio of nonzero numbers is nonzero.  (Contributed by NM,
         9-Feb-1995.) $)
      divne0i $p |- ( A / B ) =/= 0 $=
        ( cc wcel cc0 wne cdiv co divne0 mp4an ) AGHAIJBGHBIJABKLIJCEDFABMN $.

      $( Reciprocal is one-to-one.  (Contributed by NM, 16-Sep-1999.) $)
      rec11ii $p |- ( ( 1 / A ) = ( 1 / B ) <-> A = B ) $=
        ( cc0 wne c1 cdiv co wceq wb rec11i mp2an ) AGHBGHIAJKIBJKLABLMEFABCDNO
        $.
    $}

    divmulz.3 $e |- C e. CC $.
    $( An associative law for division.  (Contributed by NM, 12-Aug-1999.) $)
    divasszi $p |- ( C =/= 0 -> ( ( A x. B ) / C ) = ( A x. ( B / C ) ) ) $=
      ( cc wcel cc0 wne cmul co cdiv wceq wa divass mp3an12 mpan ) CGHZCIJZABKL
      CMLABCMLKLNZFAGHBGHSTOUADEABCPQR $.

    $( Relationship between division and multiplication.  (Contributed by NM,
       8-May-1999.)  (Revised by Mario Carneiro, 17-Feb-2014.) $)
    divmulzi $p |- ( B =/= 0 -> ( ( A / B ) = C <-> ( B x. C ) = A ) ) $=
      ( cc wcel cc0 wne cdiv co wceq cmul wb wa divmul mp3an12 mpan ) BGHZBIJZA
      BKLCMBCNLAMOZEAGHCGHTUAPUBDFACBQRS $.

    $( Distribution of division over addition.  (Contributed by NM,
       31-Jul-2004.) $)
    divdirzi $p |- ( C =/= 0 ->
                    ( ( A + B ) / C ) = ( ( A / C ) + ( B / C ) ) ) $=
      ( cc wcel cc0 wne caddc co cdiv wceq wa divdir mp3an12 mpan ) CGHZCIJZABK
      LCMLACMLBCMLKLNZFAGHBGHSTOUADEABCPQR $.

    $( Swap denominators in a division.  (Contributed by NM, 15-Sep-1999.) $)
    divdiv23zi $p |- ( ( B =/= 0 /\ C =/= 0 ) ->
                ( ( A / B ) / C ) = ( ( A / C ) / B ) ) $=
      ( cc wcel cc0 wne cdiv co wceq wa divdiv32 mp3an1 mpanr1 mpanl1 ) BGHZBIJ
      ZCIJZABKLCKLACKLBKLMZESTNZCGHZUAUBFAGHUCUDUANUBDABCOPQR $.

    ${
      divmul.4 $e |- B =/= 0 $.
      $( Relationship between division and multiplication.  (Contributed by NM,
         2-Feb-1995.)  (Revised by Mario Carneiro, 17-Feb-2014.) $)
      divmuli $p |- ( ( A / B ) = C <-> ( B x. C ) = A ) $=
        ( cc0 wne cdiv co wceq cmul wb divmulzi ax-mp ) BHIABJKCLBCMKALNGABCDEF
        OP $.

      divdiv23.5 $e |- C =/= 0 $.
      $( Swap denominators in a division.  (Contributed by NM, 15-Sep-1999.) $)
      divdiv32i $p |- ( ( A / B ) / C ) = ( ( A / C ) / B ) $=
        ( cc0 wne cdiv co wceq divdiv23zi mp2an ) BIJCIJABKLCKLACKLBKLMGHABCDEF
        NO $.
    $}

    ${
      divass.4 $e |- C =/= 0 $.
      $( An associative law for division.  (Contributed by NM, 15-Feb-1995.) $)
      divassi $p |- ( ( A x. B ) / C ) = ( A x. ( B / C ) ) $=
        ( cc0 wne cmul co cdiv wceq divasszi ax-mp ) CHIABJKCLKABCLKJKMGABCDEFN
        O $.

      $( Distribution of division over addition.  (Contributed by NM,
         16-Feb-1995.) $)
      divdiri $p |- ( ( A + B ) / C ) = ( ( A / C ) + ( B / C ) ) $=
        ( cc0 wne caddc co cdiv wceq divdirzi ax-mp ) CHIABJKCLKACLKBCLKJKMGABC
        DEFNO $.

      $( A commutative/associative law for division.  (Contributed by NM,
         3-Sep-1999.) $)
      div23i $p |- ( ( A x. B ) / C ) = ( ( A / C ) x. B ) $=
        ( cc wcel cc0 wne wa cmul co cdiv wceq pm3.2i div23 mp3an ) AHIBHICHIZC
        JKZLABMNCONACONBMNPDETUAFGQABCRS $.

      $( One-to-one relationship for division.  (Contributed by NM,
         20-Aug-2001.) $)
      div11i $p |- ( ( A / C ) = ( B / C ) <-> A = B ) $=
        ( cc wcel cc0 wne wa cdiv co wceq wb pm3.2i div11 mp3an ) AHIBHICHIZCJK
        ZLACMNBCMNOABOPDETUAFGQABCRS $.
    $}

    divmuldiv.4 $e |- D e. CC $.
    divmuldiv.5 $e |- B =/= 0 $.
    divmuldiv.6 $e |- D =/= 0 $.
    $( Multiplication of two ratios.  Theorem I.14 of [Apostol] p. 18.
       (Contributed by NM, 16-Feb-1995.) $)
    divmuldivi $p |- ( ( A / B ) x. ( C / D ) ) =
                      ( ( A x. C ) / ( B x. D ) ) $=
      ( cc wcel cc0 wne wa cdiv co cmul wceq pm3.2i divmuldiv mp4an ) AKLCKLBKL
      ZBMNZODKLZDMNZOABPQCDPQRQACRQBDRQPQSEGUCUDFITUEUFHJTACBDUAUB $.

    $( Swap denominators of two ratios.  (Contributed by NM, 6-Aug-1999.) $)
    divmul13i $p |- ( ( A / B ) x. ( C / D ) ) =
                   ( ( C / B ) x. ( A / D ) ) $=
      ( cmul co cdiv mulcomi oveq1i divmuldivi 3eqtr4ri ) CAKLZBDKLZMLACKLZSMLC
      BMLADMLKLABMLCDMLKLRTSMCAGENOCBADGFEHIJPABCDEFGHIJPQ $.

    $( Addition of two ratios.  Theorem I.13 of [Apostol] p. 18.  (Contributed
       by NM, 21-Feb-1995.) $)
    divadddivi $p |- ( ( A / B ) + ( C / D ) ) =
                      ( ( ( A x. D ) + ( C x. B ) ) / ( B x. D ) ) $=
      ( cc wcel cc0 wne wa cdiv co caddc cmul pm3.2i wceq divadddiv mp4an ) AKL
      CKLBKLZBMNZODKLZDMNZOABPQCDPQRQADSQCBSQRQBDSQPQUAEGUDUEFITUFUGHJTACBDUBUC
      $.

    divdivdiv.7 $e |- C =/= 0 $.
    $( Division of two ratios.  Theorem I.15 of [Apostol] p. 18.  (Contributed
       by NM, 22-Feb-1995.) $)
    divdivdivi $p |- ( ( A / B ) / ( C / D ) )
                        = ( ( A x. D ) / ( B x. C ) ) $=
      ( cc wcel cc0 wne wa cdiv co cmul pm3.2i wceq divdivdiv mp4an ) ALMBLMZBN
      OZPCLMZCNOZPDLMZDNOZPABQRCDQRQRADSRBCSRQRUAEUDUEFITUFUGGKTUHUIHJTABCDUBUC
      $.
  $}

  ${
    redivcl.1 $e |- A e. RR $.
    $( Closure law for reciprocal.  (Contributed by NM, 30-Apr-2005.) $)
    rerecclzi $p |- ( A =/= 0 -> ( 1 / A ) e. RR ) $=
      ( cr wcel cc0 wne c1 cdiv co rereccl mpan ) ACDAEFGAHICDBAJK $.

    ${
      rereccl.2 $e |- A =/= 0 $.
      $( Closure law for reciprocal.  (Contributed by NM, 30-Apr-2005.) $)
      rereccli $p |- ( 1 / A ) e. RR $=
        ( cc0 wne c1 cdiv co cr wcel rerecclzi ax-mp ) ADEFAGHIJCABKL $.
    $}

    redivcl.2 $e |- B e. RR $.
    $( Closure law for division of reals.  (Contributed by NM, 9-May-1999.) $)
    redivclzi $p |- ( B =/= 0 -> ( A / B ) e. RR ) $=
      ( cr wcel cc0 wne cdiv co redivcl mp3an12 ) AEFBEFBGHABIJEFCDABKL $.

    redivcl.3 $e |- B =/= 0 $.
    $( Closure law for division of reals.  (Contributed by NM, 9-May-1999.) $)
    redivcli $p |- ( A / B ) e. RR $=
      ( cc0 wne cdiv co cr wcel redivclzi ax-mp ) BFGABHIJKEABCDLM $.
  $}

  ${
    div1d.1 $e |- ( ph -> A e. CC ) $.
    $( A number divided by 1 is itself.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    div1d $p |- ( ph -> ( A / 1 ) = A ) $=
      ( cc wcel c1 cdiv co wceq div1 syl ) ABDEBFGHBICBJK $.

    ${
      reccld.2 $e |- ( ph -> A =/= 0 ) $.
      $( Closure law for reciprocal.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      reccld $p |- ( ph -> ( 1 / A ) e. CC ) $=
        ( cc wcel cc0 wne c1 cdiv co reccl syl2anc ) ABEFBGHIBJKEFCDBLM $.

      $( The reciprocal of a nonzero number is nonzero.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      recne0d $p |- ( ph -> ( 1 / A ) =/= 0 ) $=
        ( cc wcel cc0 wne c1 cdiv co recne0 syl2anc ) ABEFBGHIBJKGHCDBLM $.

      $( Multiplication of a number and its reciprocal.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      recidd $p |- ( ph -> ( A x. ( 1 / A ) ) = 1 ) $=
        ( cc wcel cc0 wne c1 cdiv co cmul wceq recid syl2anc ) ABEFBGHBIBJKLKIM
        CDBNO $.

      $( Multiplication of a number and its reciprocal.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      recid2d $p |- ( ph -> ( ( 1 / A ) x. A ) = 1 ) $=
        ( cc wcel cc0 wne c1 cdiv co cmul wceq recid2 syl2anc ) ABEFBGHIBJKBLKI
        MCDBNO $.

      $( A number is equal to the reciprocal of its reciprocal.  (Contributed
         by Mario Carneiro, 27-May-2016.) $)
      recrecd $p |- ( ph -> ( 1 / ( 1 / A ) ) = A ) $=
        ( cc wcel cc0 wne c1 cdiv co wceq recrec syl2anc ) ABEFBGHIIBJKJKBLCDBM
        N $.

      $( A number divided by itself is one.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      dividd $p |- ( ph -> ( A / A ) = 1 ) $=
        ( cc wcel cc0 wne cdiv co c1 wceq divid syl2anc ) ABEFBGHBBIJKLCDBMN $.

      $( Division into zero is zero.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      div0d $p |- ( ph -> ( 0 / A ) = 0 ) $=
        ( cc wcel cc0 wne cdiv co wceq div0 syl2anc ) ABEFBGHGBIJGKCDBLM $.
    $}

    divcld.2 $e |- ( ph -> B e. CC ) $.
    ${
      divcld.3 $e |- ( ph -> B =/= 0 ) $.
      $( Closure law for division.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      divcld $p |- ( ph -> ( A / B ) e. CC ) $=
        ( cc wcel cc0 wne cdiv co divcl syl3anc ) ABGHCGHCIJBCKLGHDEFBCMN $.

      $( A cancellation law for division.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      divcan1d $p |- ( ph -> ( ( A / B ) x. B ) = A ) $=
        ( cc wcel cc0 wne cdiv co cmul wceq divcan1 syl3anc ) ABGHCGHCIJBCKLCML
        BNDEFBCOP $.

      $( A cancellation law for division.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      divcan2d $p |- ( ph -> ( B x. ( A / B ) ) = A ) $=
        ( cc wcel cc0 wne cdiv co cmul wceq divcan2 syl3anc ) ABGHCGHCIJCBCKLML
        BNDEFBCOP $.

      $( Relationship between division and reciprocal.  Theorem I.9 of
         [Apostol] p. 18.  (Contributed by Mario Carneiro, 27-May-2016.) $)
      divrecd $p |- ( ph -> ( A / B ) = ( A x. ( 1 / B ) ) ) $=
        ( cc wcel cc0 wne cdiv co c1 cmul wceq divrec syl3anc ) ABGHCGHCIJBCKLB
        MCKLNLODEFBCPQ $.

      $( Relationship between division and reciprocal.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      divrec2d $p |- ( ph -> ( A / B ) = ( ( 1 / B ) x. A ) ) $=
        ( cc wcel cc0 wne cdiv co c1 cmul wceq divrec2 syl3anc ) ABGHCGHCIJBCKL
        MCKLBNLODEFBCPQ $.

      $( A cancellation law for division.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      divcan3d $p |- ( ph -> ( ( B x. A ) / B ) = A ) $=
        ( cc wcel cc0 wne cmul co cdiv wceq divcan3 syl3anc ) ABGHCGHCIJCBKLCML
        BNDEFBCOP $.

      $( A cancellation law for division.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      divcan4d $p |- ( ph -> ( ( A x. B ) / B ) = A ) $=
        ( cc wcel cc0 wne cmul co cdiv wceq divcan4 syl3anc ) ABGHCGHCIJBCKLCML
        BNDEFBCOP $.

      ${
        diveq0d.4 $e |- ( ph -> ( A / B ) = 0 ) $.
        $( A ratio is zero iff the numerator is zero.  (Contributed by Mario
           Carneiro, 27-May-2016.) $)
        diveq0d $p |- ( ph -> A = 0 ) $=
          ( cdiv co cc0 wceq cc wcel wne wb diveq0 syl3anc mpbid ) ABCHIJKZBJKZ
          GABLMCLMCJNSTODEFBCPQR $.
      $}

      ${
        diveq1d.4 $e |- ( ph -> ( A / B ) = 1 ) $.
        $( Equality in terms of unit ratio.  (Contributed by Mario Carneiro,
           27-May-2016.) $)
        diveq1d $p |- ( ph -> A = B ) $=
          ( cdiv co c1 wceq cc wcel cc0 wne wb diveq1 syl3anc mpbid ) ABCHIJKZB
          CKZGABLMCLMCNOTUAPDEFBCQRS $.
      $}

      $( The quotient of two complex numbers is one iff they are equal.
         Deduction form of ~ diveq1 .  Generalization of ~ diveq1d .
         (Contributed by David Moews, 28-Feb-2017.) $)
      diveq1ad $p |- ( ph -> ( ( A / B ) = 1 <-> A = B ) ) $=
        ( cc wcel cc0 wne cdiv co c1 wceq wb diveq1 syl3anc ) ABGHCGHCIJBCKLMNB
        CNODEFBCPQ $.

      $( A fraction of complex numbers is zero iff its numerator is.  Deduction
         form of ~ diveq0 .  (Contributed by David Moews, 28-Feb-2017.) $)
      diveq0ad $p |- ( ph -> ( ( A / B ) = 0 <-> A = 0 ) ) $=
        ( cc wcel cc0 wne cdiv co wceq wb diveq0 syl3anc ) ABGHCGHCIJBCKLIMBIMN
        DEFBCOP $.

      ${
        divne1d.4 $e |- ( ph -> A =/= B ) $.
        $( If two complex numbers are unequal, their quotient is not one.
           Contrapositive of ~ diveq1d .  (Contributed by David Moews,
           28-Feb-2017.) $)
        divne1d $p |- ( ph -> ( A / B ) =/= 1 ) $=
          ( cdiv co c1 wne diveq1ad necon3bid mpbird ) ABCHIZJKBCKGAOJBCABCDEFL
          MN $.
      $}

      $( A ratio is zero iff the numerator is zero.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      divne0bd $p |- ( ph -> ( A =/= 0 <-> ( A / B ) =/= 0 ) ) $=
        ( cc wcel cc0 wne cdiv co wb divne0b syl3anc ) ABGHCGHCIJBIJBCKLIJMDEFB
        CNO $.

      $( Move negative sign inside of a division.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      divnegd $p |- ( ph -> -u ( A / B ) = ( -u A / B ) ) $=
        ( cc wcel cc0 wne cdiv co cneg wceq divneg syl3anc ) ABGHCGHCIJBCKLMBMC
        KLNDEFBCOP $.

      $( Move negative sign inside of a division.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      divneg2d $p |- ( ph -> -u ( A / B ) = ( A / -u B ) ) $=
        ( cc wcel cc0 wne cdiv co cneg wceq divneg2 syl3anc ) ABGHCGHCIJBCKLMBC
        MKLNDEFBCOP $.

      $( Quotient of two negatives.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      div2negd $p |- ( ph -> ( -u A / -u B ) = ( A / B ) ) $=
        ( cc wcel cc0 wne cneg cdiv co wceq div2neg syl3anc ) ABGHCGHCIJBKCKLMB
        CLMNDEFBCOP $.
    $}

    ${
      divne0d.3 $e |- ( ph -> A =/= 0 ) $.
      divne0d.4 $e |- ( ph -> B =/= 0 ) $.
      $( The ratio of nonzero numbers is nonzero.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      divne0d $p |- ( ph -> ( A / B ) =/= 0 ) $=
        ( cc wcel cc0 wne cdiv co divne0 syl22anc ) ABHIBJKCHICJKBCLMJKDFEGBCNO
        $.

      $( The reciprocal of a ratio.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      recdivd $p |- ( ph -> ( 1 / ( A / B ) ) = ( B / A ) ) $=
        ( cc wcel cc0 wne c1 cdiv co wceq recdiv syl22anc ) ABHIBJKCHICJKLBCMNM
        NCBMNODFEGBCPQ $.

      $( Division into a reciprocal.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      recdiv2d $p |- ( ph -> ( ( 1 / A ) / B ) = ( 1 / ( A x. B ) ) ) $=
        ( cc wcel cc0 wne c1 cdiv co cmul wceq recdiv2 syl22anc ) ABHIBJKCHICJK
        LBMNCMNLBCONMNPDFEGBCQR $.

      $( Cancellation of inverted fractions.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      divcan6d $p |- ( ph -> ( ( A / B ) x. ( B / A ) ) = 1 ) $=
        ( cc wcel cc0 wne cdiv co cmul c1 wceq divcan6 syl22anc ) ABHIBJKCHICJK
        BCLMCBLMNMOPDFEGBCQR $.

      $( Cancellation in a double division.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      ddcand $p |- ( ph -> ( A / ( A / B ) ) = B ) $=
        ( cc wcel cc0 wne cdiv co wceq ddcan syl22anc ) ABHIBJKCHICJKBBCLMLMCND
        FEGBCOP $.

      rec11d.5 $e |- ( ph -> ( 1 / A ) = ( 1 / B ) ) $.
      $( Reciprocal is one-to-one.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      rec11d $p |- ( ph -> A = B ) $=
        ( c1 cdiv co wceq cc wcel cc0 wne wb rec11 syl22anc mpbid ) AIBJKICJKLZ
        BCLZHABMNBOPCMNCOPUAUBQDFEGBCRST $.
    $}

    divmuld.3 $e |- ( ph -> C e. CC ) $.
    ${
      divmuld.4 $e |- ( ph -> B =/= 0 ) $.
      $( Relationship between division and multiplication.  (Contributed by
         Mario Carneiro, 27-May-2016.) $)
      divmuld $p |- ( ph -> ( ( A / B ) = C <-> ( B x. C ) = A ) ) $=
        ( cc wcel cc0 wne cdiv co wceq cmul wb divmul syl112anc ) ABIJDIJCIJCKL
        BCMNDOCDPNBOQEGFHBDCRS $.

      $( A commutative/associative law for division.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      div32d $p |- ( ph -> ( ( A / B ) x. C ) = ( A x. ( C / B ) ) ) $=
        ( cc wcel cc0 wne cdiv co cmul wceq div32 syl121anc ) ABIJCIJCKLDIJBCMN
        DONBDCMNONPEFHGBCDQR $.

      $( A commutative/associative law for division.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      div13d $p |- ( ph -> ( ( A / B ) x. C ) = ( ( C / B ) x. A ) ) $=
        ( cc wcel cc0 wne cdiv co cmul wceq div13 syl121anc ) ABIJCIJCKLDIJBCMN
        DONDCMNBONPEFHGBCDQR $.

      divdiv23d.5 $e |- ( ph -> C =/= 0 ) $.
      $( Swap denominators in a division.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      divdiv32d $p |- ( ph -> ( ( A / B ) / C ) = ( ( A / C ) / B ) ) $=
        ( cc wcel cc0 wne cdiv co wceq divdiv32 syl122anc ) ABJKCJKCLMDJKDLMBCN
        ODNOBDNOCNOPEFHGIBCDQR $.

      $( Cancellation of common factor in a ratio.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      divcan5d $p |- ( ph -> ( ( C x. A ) / ( C x. B ) ) = ( A / B ) ) $=
        ( cc wcel cc0 wne cmul co cdiv wceq divcan5 syl122anc ) ABJKCJKCLMDJKDL
        MDBNODCNOPOBCPOQEFHGIBCDRS $.

      $( Cancellation of common factor in a ratio.  (Contributed by Mario
         Carneiro, 1-Jan-2017.) $)
      divcan5rd $p |- ( ph -> ( ( A x. C ) / ( B x. C ) ) = ( A / B ) ) $=
        ( cmul co cdiv mulcomd oveq12d divcan5d eqtrd ) ABDJKZCDJKZLKDBJKZDCJKZ
        LKBCLKAQSRTLABDEGMACDFGMNABCDEFGHIOP $.

      $( Cancel equal divisors in a division.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      divcan7d $p |- ( ph -> ( ( A / C ) / ( B / C ) ) = ( A / B ) ) $=
        ( cc wcel cc0 wne cdiv co wceq divcan7 syl122anc ) ABJKCJKCLMDJKDLMBDNO
        CDNONOBCNOPEFHGIBCDQR $.

      $( Cancellation law for division and multiplication.  (Contributed by
         Mario Carneiro, 27-May-2016.) $)
      dmdcand $p |- ( ph -> ( ( B / C ) x. ( A / B ) ) = ( A / C ) ) $=
        ( cc wcel cc0 wne cdiv co cmul wceq dmdcan syl221anc ) ACJKCLMDJKDLMBJK
        CDNOBCNOPOBDNOQFHGIECDBRS $.

      $( Cancellation law for division and multiplication.  (Contributed by
         David Moews, 28-Feb-2017.) $)
      dmdcan2d $p |- ( ph -> ( ( A / B ) x. ( B / C ) ) = ( A / C ) ) $=
        ( cdiv co cmul divcld mulcomd dmdcand eqtrd ) ABCJKZCDJKZLKRQLKBDJKAQRA
        BCEFHMACDFGIMNABCDEFGHIOP $.

      $( Division into a fraction.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      divdiv1d $p |- ( ph -> ( ( A / B ) / C ) = ( A / ( B x. C ) ) ) $=
        ( cc wcel cc0 wne cdiv co cmul wceq divdiv1 syl122anc ) ABJKCJKCLMDJKDL
        MBCNODNOBCDPONOQEFHGIBCDRS $.

      $( Division by a fraction.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      divdiv2d $p |- ( ph -> ( A / ( B / C ) ) = ( ( A x. C ) / B ) ) $=
        ( cc wcel cc0 wne cdiv co cmul wceq divdiv2 syl122anc ) ABJKCJKCLMDJKDL
        MBCDNONOBDPOCNOQEFHGIBCDRS $.
    $}

    ${
      divassd.4 $e |- ( ph -> C =/= 0 ) $.
      $( Relationship between division and multiplication.  (Contributed by
         Mario Carneiro, 27-May-2016.) $)
      divmul2d $p |- ( ph -> ( ( A / C ) = B <-> A = ( C x. B ) ) ) $=
        ( cc wcel cc0 wne cdiv co wceq cmul wb divmul2 syl112anc ) ABIJCIJDIJDK
        LBDMNCOBDCPNOQEFGHBCDRS $.

      $( Relationship between division and multiplication.  (Contributed by
         Mario Carneiro, 27-May-2016.) $)
      divmul3d $p |- ( ph -> ( ( A / C ) = B <-> A = ( B x. C ) ) ) $=
        ( cc wcel cc0 wne cdiv co wceq cmul wb divmul3 syl112anc ) ABIJCIJDIJDK
        LBDMNCOBCDPNOQEFGHBCDRS $.

      $( An associative law for division.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      divassd $p |- ( ph -> ( ( A x. B ) / C ) = ( A x. ( B / C ) ) ) $=
        ( cc wcel cc0 wne cmul co cdiv wceq divass syl112anc ) ABIJCIJDIJDKLBCM
        NDONBCDONMNPEFGHBCDQR $.

      $( A commutative/associative law for division.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      div12d $p |- ( ph -> ( A x. ( B / C ) ) = ( B x. ( A / C ) ) ) $=
        ( cc wcel cc0 wne cdiv co cmul wceq div12 syl112anc ) ABIJCIJDIJDKLBCDM
        NONCBDMNONPEFGHBCDQR $.

      $( A commutative/associative law for division.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      div23d $p |- ( ph -> ( ( A x. B ) / C ) = ( ( A / C ) x. B ) ) $=
        ( cc wcel cc0 wne cmul co cdiv wceq div23 syl112anc ) ABIJCIJDIJDKLBCMN
        DONBDONCMNPEFGHBCDQR $.

      $( Distribution of division over addition.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      divdird $p |- ( ph -> ( ( A + B ) / C ) = ( ( A / C ) + ( B / C ) ) ) $=
        ( cc wcel cc0 wne caddc co cdiv wceq divdir syl112anc ) ABIJCIJDIJDKLBC
        MNDONBDONCDONMNPEFGHBCDQR $.

      $( Distribution of division over subtraction.  (Contributed by Mario
         Carneiro, 27-May-2016.) $)
      divsubdird $p |- ( ph ->
          ( ( A - B ) / C ) = ( ( A / C ) - ( B / C ) ) ) $=
        ( cc wcel cc0 wne cmin co cdiv wceq divsubdir syl112anc ) ABIJCIJDIJDKL
        BCMNDONBDONCDONMNPEFGHBCDQR $.

      div11d.5 $e |- ( ph -> ( A / C ) = ( B / C ) ) $.
      $( One-to-one relationship for division.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      div11d $p |- ( ph -> A = B ) $=
        ( cdiv co wceq cc wcel cc0 wne wb div11 syl112anc mpbid ) ABDJKCDJKLZBC
        LZIABMNCMNDMNDOPUAUBQEFGHBCDRST $.
    $}

    divmuldivd.4 $e |- ( ph -> D e. CC ) $.
    divmuldivd.5 $e |- ( ph -> B =/= 0 ) $.
    divmuldivd.6 $e |- ( ph -> D =/= 0 ) $.
    $( Multiplication of two ratios.  Theorem I.14 of [Apostol] p. 18.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    divmuldivd $p |- ( ph -> ( ( A / B ) x. ( C / D ) ) =
                             ( ( A x. C ) / ( B x. D ) ) ) $=
      ( cc wcel cc0 wne wa cdiv co cmul jca wceq divmuldiv syl22anc ) ABLMDLMCL
      MZCNOZPELMZENOZPBCQRDEQRSRBDSRCESRQRUAFHAUDUEGJTAUFUGIKTBDCEUBUC $.

    $( Swap denominators of two ratios.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    divmul13d $p |- ( ph -> ( ( A / B ) x. ( C / D ) ) =
                            ( ( C / B ) x. ( A / D ) ) ) $=
      ( cc wcel cc0 wne wa cdiv co cmul jca wceq divmul13 syl22anc ) ABLMDLMCLM
      ZCNOZPELMZENOZPBCQRDEQRSRDCQRBEQRSRUAFHAUDUEGJTAUFUGIKTBDCEUBUC $.

    $( Swap the numerators in the product of two ratios.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    divmul24d $p |- ( ph -> ( ( A / B ) x. ( C / D ) ) =
                           ( ( A / D ) x. ( C / B ) ) ) $=
      ( cc wcel cc0 wne wa cdiv co cmul jca wceq divmul24 syl22anc ) ABLMDLMCLM
      ZCNOZPELMZENOZPBCQRDEQRSRBEQRDCQRSRUAFHAUDUEGJTAUFUGIKTBDCEUBUC $.

    $( Addition of two ratios.  Theorem I.13 of [Apostol] p. 18.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    divadddivd $p |- ( ph -> ( ( A / B ) + ( C / D ) ) =
                      ( ( ( A x. D ) + ( C x. B ) ) / ( B x. D ) ) ) $=
      ( cc wcel cc0 wne wa cdiv co caddc cmul wceq jca divadddiv syl22anc ) ABL
      MDLMCLMZCNOZPELMZENOZPBCQRDEQRSRBETRDCTRSRCETRQRUAFHAUEUFGJUBAUGUHIKUBBDC
      EUCUD $.

    $( Subtraction of two ratios.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    divsubdivd $p |- ( ph -> ( ( A / B ) - ( C / D ) ) =
                       ( ( ( A x. D ) - ( C x. B ) ) / ( B x. D ) ) ) $=
      ( cc wcel cc0 wne wa cdiv co cmin cmul wceq jca divsubdiv syl22anc ) ABLM
      DLMCLMZCNOZPELMZENOZPBCQRDEQRSRBETRDCTRSRCETRQRUAFHAUEUFGJUBAUGUHIKUBBDCE
      UCUD $.

    $( Cross-multiply in an equality of ratios.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    divmuleqd $p |- ( ph ->
        ( ( A / B ) = ( C / D ) <-> ( A x. D ) = ( C x. B ) ) ) $=
      ( cc wcel cc0 wne wa cdiv co wceq cmul wb jca divmuleq syl22anc ) ABLMDLM
      CLMZCNOZPELMZENOZPBCQRDEQRSBETRDCTRSUAFHAUEUFGJUBAUGUHIKUBBDCEUCUD $.

    divdivdivd.7 $e |- ( ph -> C =/= 0 ) $.
    $( Division of two ratios.  Theorem I.15 of [Apostol] p. 18.  (Contributed
       by Mario Carneiro, 27-May-2016.) $)
    divdivdivd $p |- ( ph -> ( ( A / B ) / ( C / D ) )
                        = ( ( A x. D ) / ( B x. C ) ) ) $=
      ( cc wcel cc0 wne wa cdiv co jca cmul wceq divdivdiv syl22anc ) ABMNCMNZC
      OPZQDMNZDOPZQEMNZEOPZQBCRSDERSRSBEUASCDUASRSUBFAUEUFGJTAUGUHHLTAUIUJIKTBC
      DEUCUD $.
  $}

  ${
    diveq1bd.1 $e |- ( ph -> B e. CC ) $.
    diveq1bd.2 $e |- ( ph -> B =/= 0 ) $.
    diveq1bd.3 $e |- ( ph -> A = B ) $.
    $( If two complex numbers are equal, their quotient is one.  One-way
       deduction form of ~ diveq1 .  Converse of ~ diveq1d .  (Contributed by
       David Moews, 28-Feb-2017.) $)
    diveq1bd $p |- ( ph -> ( A / B ) = 1 ) $=
      ( cdiv co c1 wceq cc eqeltrd diveq1ad mpbird ) ABCGHIJBCJFABCABCKFDLDEMN
      $.
  $}

  $( Swap the order of subtraction in a division.  (Contributed by Scott
     Fenton, 24-Jun-2013.) $)
  div2sub $p |- ( ( ( A e. CC /\ B e. CC ) /\
    ( C e. CC /\ D e. CC /\ C =/= D ) ) ->
    ( ( A - B ) / ( C - D ) ) = ( ( B - A ) / ( D - C ) ) ) $=
    ( cc wcel wa wne w3a cmin cneg cdiv cc0 wceq subcl 3adant3 subeq0 necon3bid
    co negsubdi2 biimp3ar jca div2neg 3expb syl2an oveqan12d eqtr3d ) AEFBEFGZC
    EFZDEFZCDHZIZGABJSZKZCDJSZKZLSZUMUOLSZBAJSZDCJSZLSUHUMEFZUOEFZUOMHZGUQURNZU
    LABOULVBVCUIUJVBUKCDOPUIUJVCUKUIUJGUOMCDCDQRUAUBVAVBVCVDUMUOUCUDUEUHULUNUSU
    PUTLABTUIUJUPUTNUKCDTPUFUG $.

  ${
    div2subd.1 $e |- ( ph -> A e. CC ) $.
    div2subd.2 $e |- ( ph -> B e. CC ) $.
    div2subd.3 $e |- ( ph -> C e. CC ) $.
    div2subd.4 $e |- ( ph -> D e. CC ) $.
    div2subd.5 $e |- ( ph -> C =/= D ) $.
    $( Swap subtrahend and minuend inside the numerator and denominator of a
       fraction.  Deduction form of ~ div2sub .  (Contributed by David Moews,
       28-Feb-2017.) $)
    div2subd $p |- ( ph -> ( ( A - B ) / ( C - D ) ) =
                           ( ( B - A ) / ( D - C ) ) ) $=
      ( cc wcel wne cmin co cdiv wceq div2sub syl23anc ) ABKLCKLDKLEKLDEMBCNODE
      NOPOCBNOEDNOPOQFGHIJBCDERS $.
  $}

  ${
    redivcld.1 $e |- ( ph -> A e. RR ) $.
    ${
      rereccld.2 $e |- ( ph -> A =/= 0 ) $.
      $( Closure law for reciprocal.  (Contributed by Mario Carneiro,
         27-May-2016.) $)
      rereccld $p |- ( ph -> ( 1 / A ) e. RR ) $=
        ( cr wcel cc0 wne c1 cdiv co rereccl syl2anc ) ABEFBGHIBJKEFCDBLM $.
    $}

    redivcld.2 $e |- ( ph -> B e. RR ) $.
    redivcld.3 $e |- ( ph -> B =/= 0 ) $.
    $( Closure law for division of reals.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    redivcld $p |- ( ph -> ( A / B ) e. RR ) $=
      ( cr wcel cc0 wne cdiv co redivcl syl3anc ) ABGHCGHCIJBCKLGHDEFBCMN $.
  $}

  $( Subtraction of reciprocals.  (Contributed by Scott Fenton, 9-Jul-2015.) $)
  subrec $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) ) ->
    ( ( 1 / A ) - ( 1 / B ) ) = ( ( B - A ) / ( A x. B ) ) ) $=
    ( cc wcel cc0 wne wa c1 cdiv cmin cmul 1cnd simpll simprl simplr divsubdivd
    co simprr mulid2d oveq12d oveq1d eqtrd ) ACDZAEFZGZBCDZBEFZGZGZHAIQHBIQJQHB
    KQZHAKQZJQZABKQZIQBAJQZUMIQUIHAHBUILZUCUDUHMZUOUEUFUGNZUCUDUHOUEUFUGRPUIULU
    NUMIUIUJBUKAJUIBUQSUIAUPSTUAUB $.

  ${
    subreci.1 $e |- A e. CC $.
    subreci.2 $e |- B e. CC $.
    subreci.3 $e |- A =/= 0 $.
    subreci.4 $e |- B =/= 0 $.
    $( Subtraction of reciprocals.  (Contributed by Scott Fenton,
       9-Jan-2017.) $)
    subreci $p |- ( ( 1 / A ) - ( 1 / B ) ) = ( ( B - A ) / ( A x. B ) ) $=
      ( cc wcel cc0 wne c1 cdiv co cmin cmul wceq subrec mp4an ) AGHAIJBGHBIJKA
      LMKBLMNMBANMABOMLMPCEDFABQR $.
  $}

  ${
    subrecd.1 $e |- ( ph -> A e. CC ) $.
    subrecd.2 $e |- ( ph -> B e. CC ) $.
    subrecd.3 $e |- ( ph -> A =/= 0 ) $.
    subrecd.4 $e |- ( ph -> B =/= 0 ) $.
    $( Subtraction of reciprocals.  (Contributed by Scott Fenton,
       9-Jan-2017.) $)
    subrecd $p |- ( ph ->
      ( ( 1 / A ) - ( 1 / B ) ) = ( ( B - A ) / ( A x. B ) ) ) $=
      ( cc wcel cc0 wne c1 cdiv co cmin cmul wceq subrec syl22anc ) ABHIBJKCHIC
      JKLBMNLCMNONCBONBCPNMNQDFEGBCRS $.
  $}

  ${
    mvllmuld.1 $e |- ( ph -> A e. CC ) $.
    mvllmuld.2 $e |- ( ph -> B e. CC ) $.
    mvllmuld.3 $e |- ( ph -> A =/= 0 ) $.
    mvllmuld.4 $e |- ( ph -> ( A x. B ) = C ) $.
    $( Move LHS left multiplication to RHS. (Contributed by David A. Wheeler,
       15-Oct-2018.) $)
    mvllmuld $p |- ( ph -> B = ( C / A ) ) $=
      ( cmul co cdiv divcan4d mulcomd eqtr3d oveq1d ) ACBIJZBKJCDBKJACBFEGLAPDB
      KABCIJPDABCEFMHNON $.
  $}

  ${
    mvllmuli.1 $e |- A e. CC $.
    mvllmuli.2 $e |- B e. CC $.
    mvllmuli.3 $e |- A =/= 0 $.
    mvllmuli.4 $e |- ( A x. B ) = C $.
    $( Move LHS left multiplication to RHS. Uses ~ divcan4i .  (Contributed by
       David A. Wheeler, 11-Oct-2018.) $)
    mvllmuli $p |- B = ( C / A ) $=
      ( cmul co cdiv divcan4i mulcomli oveq1i eqtr3i ) BAHIZAJIBCAJIBAEDFKOCAJA
      BCDEGLMN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordering on reals (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Hypothesis for weak deduction theorem to eliminate ` 0 < A ` .
     (Contributed by NM, 15-May-1999.) $)
  elimgt0 $p |- 0 < if ( 0 < A , A , 1 ) $=
    ( cc0 clt wbr c1 cif breq2 0lt1 elimhyp ) BACDZBJAEFZCDBECDAEAKBCGEKBCGHI
    $.

  $( Hypothesis for weak deduction theorem to eliminate ` 0 <_ A ` .
     (Contributed by NM, 30-Jul-1999.) $)
  elimge0 $p |- 0 <_ if ( 0 <_ A , A , 0 ) $=
    ( cc0 cle wbr cif breq2 0re leidi elimhyp ) BACDZBJABEZCDBBCDABAKBCFBKBCFBG
    HI $.

  $( A number is less than itself plus 1.  (Contributed by NM, 20-Aug-2001.) $)
  ltp1 $p |- ( A e. RR -> A < ( A + 1 ) ) $=
    ( c1 cr wcel caddc co clt wbr 1re wa cc0 0lt1 ltaddpos mpbii mpan ) BCDZACD
    ZAABEFGHZIPQJKBGHRLBAMNO $.

  $( A number is less than or equal to itself plus 1.  (Contributed by NM,
     5-Jan-2006.) $)
  lep1 $p |- ( A e. RR -> A <_ ( A + 1 ) ) $=
    ( cr wcel c1 caddc co clt wbr cle ltp1 wi peano2re ltle mpdan mpd ) ABCZAAD
    EFZGHZAQIHZAJPQBCRSKALAQMNO $.

  $( A number minus 1 is less than itself.  (Contributed by NM, 9-Apr-2006.) $)
  ltm1 $p |- ( A e. RR -> ( A - 1 ) < A ) $=
    ( cr wcel c1 cmin co cc0 clt wbr 0lt1 wb 0re 1re mp3an12 mpbii recn subid1d
    ltsub2 breqtrd ) ABCZADEFZAGEFZAHTGDHIZUAUBHIZJGBCDBCTUCUDKLMGDARNOTAAPQS
    $.

  $( A number minus 1 is less than or equal to itself.  (Contributed by Mario
     Carneiro, 2-Oct-2015.) $)
  lem1 $p |- ( A e. RR -> ( A - 1 ) <_ A ) $=
    ( cr wcel c1 cmin co clt wbr cle ltm1 wi peano2rem ltle mpancom mpd ) ABCZA
    DEFZAGHZQAIHZAJQBCPRSKALQAMNO $.

  $( A transitive property of 'less than or equal' and plus 1.  (Contributed by
     NM, 5-Aug-2005.) $)
  letrp1 $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) -> A <_ ( B + 1 ) ) $=
    ( cr wcel cle wbr w3a c1 caddc co clt wa adantl peano2re ancli lelttr 3expb
    ltp1 wi sylan2 mpan2d 3impia ltle 3adant3 mpd ) ACDZBCDZABEFZGABHIJZKFZAUIE
    FZUFUGUHUJUFUGLUHBUIKFZUJUGULUFBRMUGUFUGUICDZLUHULLUJSZUGUMBNZOUFUGUMUNABUI
    PQTUAUBUFUGUJUKSZUHUGUFUMUPUOAUIUCTUDUE $.

  $( A transitive property of plus 1 and 'less than or equal'.  (Contributed by
     NM, 16-Aug-2005.) $)
  p1le $p |- ( ( A e. RR /\ B e. RR /\ ( A + 1 ) <_ B ) -> A <_ B ) $=
    ( cr wcel c1 caddc co cle wa lep1 adantr wi peano2re ancli letr 3expa sylan
    wbr mpand 3impia ) ACDZBCDZAEFGZBHRZABHRZUAUBIAUCHRZUDUEUAUFUBAJKUAUAUCCDZI
    UBUFUDIUELZUAUGAMNUAUGUBUHAUCBOPQST $.

  $( The reciprocal of a positive number is positive.  Exercise 4 of [Apostol]
     p. 21.  (Contributed by NM, 25-Aug-1999.)  (Revised by Mario Carneiro,
     27-May-2016.) $)
  recgt0 $p |- ( ( A e. RR /\ 0 < A ) -> 0 < ( 1 / A ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co wceq wo 0re cneg cmul rereccld lt0neg1d
    wn adantr mpbird simpl recnd gt0ne0 recne0d necomd neneqd 1re ltnsymi ax-mp
    0lt1 simpll wne renegcld simpr mpbid simplr mulgt0d reccld mulneg1d recid2d
    cc negeqd eqtrd breqtrd 1red ex mtoi ioran sylanbrc wb axlttri sylancr ) AB
    CZDAEFZGZDHAIJZEFZDVPKZVPDEFZLRZVOVRRVSRVTVODVPVOVPDVOAVOAVMVNUAZUBZAUCZUDU
    EUFVOVSHDEFZDHEFWDRUJDHMUGUHUIVOVSWDVOVSGZWDDHNZEFWEDVPNZAOJZWFEWEWGAWEVPWE
    AVMVNVSUKZVOADULVSWCSZPUMWIWEVSDWGEFVOVSUNWEVPVOVPBCZVSVOAWAWCPZSQUOVMVNVSU
    PUQWEWHVPAOJZNWFWEVPAWEAVOAVACVSWBSZWJURWNUSWEWMHWEAWNWJUTVBVCVDWEHWEVEQTVF
    VGVRVSVHVIVODBCWKVQVTVJMWLDVPVKVLT $.

  $( Infer that a multiplicand is positive from a nonnegative multiplier and
     positive product.  (Contributed by NM, 24-Apr-2005.)  (Revised by Mario
     Carneiro, 27-May-2016.) $)
  prodgt0 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ A /\ 0 < ( A x. B ) ) )
                 -> 0 < B ) $=
    ( cr wcel wa cc0 cle wbr cmul co clt wceq wo 0red simpl leloed recnd breq2d
    wi cdiv simpll simplr remulcld simprl gt0ne0d simprr recgt0 mulgt0d divrecd
    c1 rereccld ad2ant2r cc simpr adantr divcan3d eqtr3d exp32 0re ltnri mul02d
    breqtrd mtbiri pm2.21d oveq1 imbi1d syl5ibcom jaod sylbid imp32 ) ACDZBCDZE
    ZFAGHZFABIJZKHZFBKHZVMVNFAKHZFALZMVPVQSZVMFAVMNVKVLOPVMVRVTVSVMVRVPVQVMVRVP
    EZEZFVOUJATJZIJZBKWBVOWCWBABVKVLWAUAZVKVLWAUBUCZWBAWEWBAVMVRVPUDUEZUKVMVRVP
    UFVKVRFWCKHVLVPAUGULUHWBVOATJWDBWBVOAWBVOWFQWBAWEQZWGUIWBBAVMBUMDWAVMBVKVLU
    NQZUOWHWGUPUQVBURVMFFBIJZKHZVQSVSVTVMWKVQVMWKFFKHFUSUTVMWJFFKVMBWIVARVCVDVS
    WKVPVQVSWJVOFKFABIVERVFVGVHVIVJ $.

  $( Infer that a multiplier is positive from a nonnegative multiplicand and
     positive product.  (Contributed by NM, 24-Apr-2005.) $)
  prodgt02 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ B /\ 0 < ( A x. B ) ) )
                 -> 0 < A ) $=
    ( cr wcel wa cc0 cle wbr cmul co clt cc wceq mulcom syl2an breq2d biimpd wi
    recn prodgt0 ex ancoms sylan2d imp ) ACDZBCDZEZFBGHZFABIJZKHZEFAKHZUGUJFBAI
    JZKHZUHUKUGUJUMUGUIULFKUEALDBLDUIULMUFASBSABNOPQUFUEUHUMEZUKRUFUEEUNUKBATUA
    UBUCUD $.

  $( Infer that a multiplicand is nonnegative from a positive multiplier and
     nonnegative product.  (Contributed by NM, 2-Jul-2005.)  (Revised by Mario
     Carneiro, 27-May-2016.) $)
  prodge0 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 < A /\ 0 <_ ( A x. B ) ) )
                 -> 0 <_ B ) $=
    ( cr wcel wa cc0 clt wbr cmul co cle wn cneg simpll renegcld recnd lt0neg1d
    simplr 3imtr4d lenltd simprl simprr mulgt0d mulneg2d breqtrd remulcld con3d
    expr 0red impr ) ACDZBCDZEZFAGHZFABIJZKHZFBKHZUMUNEZUOFGHZLBFGHZLUPUQURUTUS
    URFBMZGHZFUOMZGHZUTUSUMUNVBVDUMUNVBEZEZFAVAIJVCGVFAVAUKULVENZVFBUKULVERZOUM
    UNVBUAUMUNVBUBUCVFABVFAVGPVFBVHPUDUEUHURBUKULUNRZQURUOURABUKULUNNVIUFZQSUGU
    RFUOURUIZVJTURFBVKVITSUJ $.

  $( Infer that a multiplier is nonnegative from a positive multiplicand and
     nonnegative product.  (Contributed by NM, 2-Jul-2005.) $)
  prodge02 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 < B /\ 0 <_ ( A x. B ) ) )
                 -> 0 <_ A ) $=
    ( cr wcel wa cc0 clt wbr cmul co cle cc wceq mulcom syl2an breq2d biimpd wi
    recn prodge0 ex ancoms sylan2d imp ) ACDZBCDZEZFBGHZFABIJZKHZEFAKHZUGUJFBAI
    JZKHZUHUKUGUJUMUGUIULFKUEALDBLDUIULMUFASBSABNOPQUFUEUHUMEZUKRUFUEEUNUKBATUA
    UBUCUD $.

  $( Lemma for ~ ltmul1 .  Multiplication of both sides of 'less than' by a
     positive number.  Theorem I.19 of [Apostol] p. 20.  (Contributed by NM,
     15-May-1999.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  ltmul1a $p |- ( ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) /\ A < B )
      -> ( A x. C ) < ( B x. C ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cmul co simpl2 simpl1 resubcld simpl3l posdifd
    cmin recnd remulcld simpr mpbid simpl3r mulgt0d subdird breqtrd mpbird ) AD
    EZBDEZCDEZFCGHZIZJZABGHZIZACKLZBCKLZGHFUQUPRLZGHUOFBARLZCKLURGUOUSCUOBAUHUI
    ULUNMZUHUIULUNNZOUJUKUHUIUNPZUOUNFUSGHUMUNUAUOABVAUTQUBUJUKUHUIUNUCUDUOBACU
    OBUTSUOAVASUOCVBSUEUFUOUPUQUOACVAVBTUOBCUTVBTQUG $.

  $( Multiplication of both sides of 'less than' by a positive number.  Theorem
     I.19 of [Apostol] p. 20.  (Contributed by NM, 13-Feb-2005.)  (Revised by
     Mario Carneiro, 27-May-2016.) $)
  ltmul1 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
               -> ( A < B <-> ( A x. C ) < ( B x. C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cmul co ltmul1a ex wceq wo wn remulcld lttrid
    wi oveq1 a1i 3com12 orim12d con3d simp1 simp3l simp2 3imtr4d impbid ) ADEZB
    DEZCDEZFCGHZIZJZABGHZACKLZBCKLZGHZUPUQUTABCMNUPURUSOZUSURGHZPZQABOZBAGHZPZQ
    UTUQUPVFVCUPVDVAVEVBVDVATUPABCKUAUBULUKUOVEVBTULUKUOJVEVBBACMNUCUDUEUPURUSU
    PACUKULUOUFZUKULUMUNUGZRUPBCUKULUOUHZVHRSUPABVGVISUIUJ $.

  $( Multiplication of both sides of 'less than' by a positive number.  Theorem
     I.19 of [Apostol] p. 20.  (Contributed by NM, 13-Feb-2005.) $)
  ltmul2 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
                -> ( A < B <-> ( C x. A ) < ( C x. B ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cmul co ltmul1 wb cc recn mulcom sylan 3adant2
    wceq 3adant1 breq12d syl3an3 3adant3r bitrd ) ADEZBDEZCDEZFCGHZIJABGHACKLZB
    CKLZGHZCAKLZCBKLZGHZABCMUFUGUHULUONZUIUHUFUGCOEZUPCPUFUGUQJUJUMUKUNGUFUQUJU
    MTZUGUFAOEUQURAPACQRSUGUQUKUNTZUFUGBOEUQUSBPBCQRUAUBUCUDUE $.

  $( Multiplication of both sides of 'less than or equal to' by a positive
     number.  (Contributed by NM, 21-Feb-2005.) $)
  lemul1 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
                -> ( A <_ B <-> ( A x. C ) <_ ( B x. C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a wceq wo cmul co cle ltmul1 cc wb recn remulcl
    wne adantr gt0ne0 jca mulcan2 syl3an bicomd orbi12d 3adant3 3adant2 3adant1
    leloe leloed 3adant3r 3bitr4d ) ADEZBDEZCDEZFCGHZIZJZABGHZABKZLZACMNZBCMNZG
    HZVEVFKZLZABOHZVEVFOHZVAVBVGVCVHABCPVAVHVCUPAQEUQBQEUTCQEZCFUAZIVHVCRASBSUT
    VLVMURVLUSCSUBCUCUDABCUEUFUGUHUPUQVJVDRUTABULUIUPUQURVKVIRUSUPUQURJVEVFUPUR
    VEDEUQACTUJUQURVFDEUPBCTUKUMUNUO $.

  $( Multiplication of both sides of 'less than or equal to' by a positive
     number.  (Contributed by NM, 16-Mar-2005.) $)
  lemul2 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
               -> ( A <_ B <-> ( C x. A ) <_ ( C x. B ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cle cmul co lemul1 wb wceq recn mulcom syl2an
    cc 3adant2 3adant1 breq12d 3adant3r bitrd ) ADEZBDEZCDEZFCGHZIJABKHACLMZBCL
    MZKHZCALMZCBLMZKHZABCNUFUGUHULUOOUIUFUGUHJUJUMUKUNKUFUHUJUMPZUGUFATECTEZUPU
    HAQCQZACRSUAUGUHUKUNPZUFUGBTEUQUSUHBQURBCRSUBUCUDUE $.

  $( Multiplication of both sides of 'less than or equal to' by a nonnegative
     number.  (Contributed by NM, 21-Feb-2005.) $)
  lemul1a $p |- ( ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 <_ C ) ) /\
                 A <_ B ) -> ( A x. C ) <_ ( B x. C ) ) $=
    ( cr wcel cc0 cle wbr wa w3a cmul co clt wceq 0re com12 recn mul01d oveq2
    wi wo leloe mpan pm5.32i lemul1 biimpd 3expia leidi breqan12d mpbiri syl5ib
    wb breq12d a1dd adantl jaodan sylbi 3impia imp ) ADEZBDEZCDEZFCGHZIZJABGHZA
    CKLZBCKLZGHZUTVAVDVEVHTZVDUTVAIZVIVDVBFCMHZFCNZUAZIVJVITZVBVCVMFDEVBVCVMULO
    FCUBUCUDVBVKVNVLVJVBVKIZVIUTVAVOVIUTVAVOJVEVHABCUEUFUGPVLVNVBVLVJVHVEVJAFKL
    ZBFKLZGHZVLVHVJVRFFGHFOUHUTVAVPFVQFGUTAAQRVABBQRUIUJVLVPVFVQVGGFCAKSFCBKSUM
    UKUNUOUPUQPURUS $.

  $( Multiplication of both sides of 'less than or equal to' by a nonnegative
     number.  (Contributed by Paul Chapman, 7-Sep-2007.) $)
  lemul2a $p |- ( ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 <_ C ) ) /\
                      A <_ B ) -> ( C x. A ) <_ ( C x. B ) ) $=
    ( cr wcel cc0 cle wbr wa cmul co lemul1a wceq cc recn mulcom syl2an adantrr
    w3a adantr 3adant2 3adant1 3brtr3d ) ADEZBDEZCDEZFCGHZIZSZABGHZIACJKZBCJKZC
    AJKZCBJKZGABCLUIUKUMMZUJUDUHUOUEUDUFUOUGUDANECNEZUOUFAOCOZACPQRUATUIULUNMZU
    JUEUHURUDUEUFURUGUEBNEUPURUFBOUQBCPQRUBTUC $.

  $( Comparison of product of two positive numbers.  (Contributed by NM,
     30-Dec-2005.) $)
  ltmul12a $p |- ( ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ A /\ A < B ) ) /\
               ( ( C e. RR /\ D e. RR ) /\ ( 0 <_ C /\ C < D ) ) ) ->
                 ( A x. C ) < ( B x. D ) ) $=
    ( cr wcel cc0 cle wbr clt cmul simpllr ad2ant2l imp ad2ant2r lelttr remulcl
    wa co wi simplll simpll simprl jca ltle adantrl lemul1a syl31anc wb simplrl
    simplrr 0re mp3an1 adantlr ltmul2 syl112anc biimpa anasss ad2ant2lr syl3anc
    adantrrl adantr mp2and an4s ) AEFZBEFZRZCEFZDEFZRZGAHIZABJIZRZGCHIZCDJIZRZA
    CKSZBDKSZJIZVGVJRZVMVPRZRZVQBCKSZHIZWCVRJIZVSWBVEVFVHVNRZABHIZWDVEVFVJWAUAV
    EVFVJWALVJVPWFVGVMVJVPRVHVNVHVIVPUBVJVNVOUCUDMVGVMWGVJVPVGVLWGVKVGVLWGABUEN
    UFOABCUGUHVTVMVOWEVNVTVMVOWEVTVMRZVOWEWHVHVIVFGBJIZVOWEUIVGVHVIVMUJVGVHVIVM
    UKVEVFVJVMLVGVMWIVJVGVMWIGEFVEVFVMWITULGABPUMNUNCDBUOUPUQURVAVTWDWERVSTZWAV
    TVQEFZWCEFZVREFZWJVEVHWKVFVIACQOVFVHWLVEVIBCQUSVFVIWMVEVHBDQMVQWCVRPUTVBVCV
    D $.

  $( Comparison of product of two nonnegative numbers.  (Contributed by NM,
     22-Feb-2008.) $)
  lemul12b $p |- ( ( ( ( A e. RR /\ 0 <_ A ) /\ B e. RR ) /\
       ( C e. RR /\ ( D e. RR /\ 0 <_ D ) ) ) -> ( ( A <_ B /\ C <_ D ) ->
                 ( A x. C ) <_ ( B x. D ) ) ) $=
    ( cr wcel cc0 cle wbr wa cmul co wi w3a lemul2a ex adantlr remulcl ad2ant2r
    3comr 3expb adantrrr lemul1a 3expa adantllr adantrl anim12d ancomsd adantrr
    ad2ant2rl ad2ant2l letr syl3anc syld ) AEFZGAHIZJZBEFZJZCEFZDEFZGDHIZJZJZJZ
    ABHIZCDHIZJACKLZADKLZHIZVIBDKLZHIZJZVHVKHIZVEVGVFVMVEVGVJVFVLUQVDVGVJMZURUQ
    UTVAVOVBUQUTVAVOUTVAUQVOUTVAUQNVGVJCDAOPTUAUBQUSVCVFVLMZUTUOURVCVPUPUOURVCV
    PUOURVCNVFVLABDUCPUDUEUFUGUHVEVHEFZVIEFZVKEFZVMVNMUQUTVQURVCUOUTVQUPACRQSUQ
    VCVRURUTUOVAVRUPVBADRSUJURVCVSUQUTURVAVSVBBDRUIUKVHVIVKULUMUN $.

  $( Comparison of product of two nonnegative numbers.  (Contributed by NM,
     22-Feb-2008.) $)
  lemul12a $p |- ( ( ( ( A e. RR /\ 0 <_ A ) /\ B e. RR ) /\
       ( ( C e. RR /\ 0 <_ C ) /\ D e. RR ) ) -> ( ( A <_ B /\ C <_ D ) ->
                 ( A x. C ) <_ ( B x. D ) ) ) $=
    ( cr wcel cc0 cle wbr wa cmul co simpll ad2antlr simplrr wi 0re letr mp3an1
    exp4b com23 imp41 ad2ant2l jca jca32 simpr lemul12b sylc ex ) AEFGAHIJBEFJZ
    CEFZGCHIZJZDEFZJZJZABHIZCDHIZJZACKLBDKLHIZUPUSJZUJUKUNGDHIZJZJJUSUTVAUJUKVC
    UJUOUSMUOUKUJUSUKULUNMNVAUNVBUJUMUNUSOUOURVBUJUQUKULUNURVBUKUNULURVBPUKUNUL
    URVBGEFUKUNULURJVBPQGCDRSTUAUBUCUDUEUPUSUFABCDUGUHUI $.

  $( The product of two numbers greater than 1 is greater than 1.  (Contributed
     by NM, 13-Feb-2005.) $)
  mulgt1 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 1 < A /\ 1 < B ) ) ->
                1 < ( A x. B ) ) $=
    ( cr wcel wa c1 clt wbr cmul co wi a1i cc0 0lt1 1re lttr adantr mp3an1 syld
    simpl 0re mp3an12 mpani ltmul2 biimpd exp32 impcom impd wceq ax-1rid breq1d
    w3a sylibd jcad remulcl syldan imp ) ACDZBCDZEZFAGHZFBGHZEZFABIJZGHZUTVCVAA
    VDGHZEZVEUTVCVAVFVCVAKUTVAVBTLUTVCAFIJZVDGHZVFUTVAVBVIUTVAMAGHZVBVIKZURVAVJ
    KUSURMFGHZVAVJNMCDFCDZURVLVAEVJKUAOMFAPUBUCQUSURVJVKKUSURVJVKVMUSURVJEZVKOV
    MUSVNULVBVIFBAUDUERUFUGSUHUTVHAVDGURVHAUIUSAUJQUKUMUNURUSVDCDZVGVEKZABUOVMU
    RVOVPOFAVDPRUPSUQ $.

  $( Multiplication by a number greater than 1.  (Contributed by NM,
     24-Dec-2005.) $)
  ltmulgt11 $p |- ( ( A e. RR /\ B e. RR /\ 0 < A ) ->
                ( 1 < B <-> A < ( A x. B ) ) ) $=
    ( cr wcel cc0 clt wbr w3a c1 cmul co wb 1re ltmul2 mp3an1 3impb 3com12 wceq
    wa ax-1rid 3ad2ant1 breq1d bitrd ) ACDZBCDZEAFGZHZIBFGZAIJKZABJKZFGZAUJFGUE
    UDUFUHUKLZUEUDUFULICDUEUDUFSULMIBANOPQUGUIAUJFUDUEUIARUFATUAUBUC $.

  $( Multiplication by a number greater than 1.  (Contributed by NM,
     24-Dec-2005.) $)
  ltmulgt12 $p |- ( ( A e. RR /\ B e. RR /\ 0 < A ) ->
                ( 1 < B <-> A < ( B x. A ) ) ) $=
    ( cr wcel cc0 clt wbr w3a c1 cmul ltmulgt11 wceq recn mulcom syl2an 3adant3
    co cc breq2d bitrd ) ACDZBCDZEAFGZHZIBFGAABJQZFGABAJQZFGABKUDUEUFAFUAUBUEUF
    LZUCUAARDBRDUGUBAMBMABNOPST $.

  $( Multiplication by a number greater than or equal to 1.  (Contributed by
     NM, 17-Dec-2005.) $)
  lemulge11 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ A /\ 1 <_ B ) ) ->
                A <_ ( A x. B ) ) $=
    ( cr wcel wa cc0 cle wbr c1 cmul co wceq ax-1rid ad2antrr simpll simprl jca
    simplr 1re 0le1 pm3.2i jctil jca31 leid simprr lemul12a sylc eqbrtrrd ) ACD
    ZBCDZEZFAGHZIBGHZEZEZAIJKZAABJKZGUIUPALUJUNAMNUOUIULEZUIEICDZFIGHZEZUJEZEAA
    GHZUMEUPUQGHUOURUIVBUOUIULUIUJUNOZUKULUMPQVDUOUJVAUIUJUNRUSUTSTUAUBUCUOVCUM
    UIVCUJUNAUDNUKULUMUEQAAIBUFUGUH $.

  $( Multiplication by a number greater than or equal to 1.  (Contributed by
     Paul Chapman, 21-Mar-2011.) $)
  lemulge12 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ A /\ 1 <_ B ) ) ->
                    A <_ ( B x. A ) ) $=
    ( cr wcel wa cc0 cle wbr c1 cmul co lemulge11 wb cc wceq recn mulcom syl2an
    breq2d adantr mpbid ) ACDZBCDZEZFAGHIBGHEZEAABJKZGHZABAJKZGHZABLUDUGUIMUEUD
    UFUHAGUBANDBNDUFUHOUCAPBPABQRSTUA $.

  $( Division of both sides of 'less than' by a positive number.  (Contributed
     by NM, 10-Oct-2004.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  ltdiv1 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) ->
               ( A < B <-> ( A / C ) < ( B / C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a c1 cdiv co wb simp1 simp2 simp3l recnd divrecd
    cmul simp3r gt0ne0d rereccld recgt0 3ad2ant3 ltmul1 syl112anc breq12d
    bitr4d ) ADEZBDEZCDEZFCGHZIZJZABGHZAKCLMZTMZBUQTMZGHZACLMZBCLMZGHUOUJUKUQDE
    FUQGHZUPUTNUJUKUNOZUJUKUNPZUOCUJUKULUMQZUOCUJUKULUMUAUBZUCUNUJVCUKCUDUEABUQ
    UFUGUOVAURVBUSGUOACUOAVDRUOCVFRZVGSUOBCUOBVERVHVGSUHUI $.

  $( Division of both sides of a less than or equal to relation by a positive
     number.  (Contributed by NM, 18-Nov-2004.) $)
  lediv1 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) ->
               ( A <_ B <-> ( A / C ) <_ ( B / C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a wn cdiv co cle ltdiv1 3adant1 redivcl syld3an3
    wb 3expb 3com12 notbid lenlt 3adant3 wne gt0ne0 3adant2 lenltd 3bitr4d ) AD
    EZBDEZCDEZFCGHZIZJZBAGHZKZBCLMZACLMZGHZKABNHZUSURNHUOUPUTUKUJUNUPUTSBACOUAU
    BUJUKVAUQSUNABUCUDUOUSURUJUNUSDEZUKUJULUMVBUJULUMCFUEZVBULUMVCUJCUFZPACQRTU
    GUKUNURDEZUJUKULUMVEUKULUMVCVEULUMVCUKVDPBCQRTPUHUI $.

  $( Division of a positive number by a positive number.  (Contributed by NM,
     28-Sep-2005.) $)
  gt0div $p |- ( ( A e. RR /\ B e. RR /\ 0 < B ) ->
               ( 0 < A <-> 0 < ( A / B ) ) ) $=
    ( cr wcel cc0 clt wbr w3a cdiv co wb wa 0re ltdiv1 mp3an1 3impb wceq gt0ne0
    wne cc recn div0 sylan syldan breq1d 3adant1 bitrd ) ACDZBCDZEBFGZHEAFGZEBI
    JZABIJZFGZEUMFGZUHUIUJUKUNKZECDUHUIUJLZUPMEABNOPUIUJUNUOKUHUQULEUMFUIUJBESZ
    ULEQZBRUIBTDURUSBUABUBUCUDUEUFUG $.

  $( Division of a nonnegative number by a positive number.  (Contributed by
     NM, 28-Sep-2005.) $)
  ge0div $p |- ( ( A e. RR /\ B e. RR /\ 0 < B ) ->
               ( 0 <_ A <-> 0 <_ ( A / B ) ) ) $=
    ( cr wcel cc0 clt wbr w3a cle cdiv co wb 0re lediv1 mp3an1 3impb wne gt0ne0
    wa wceq cc recn div0 sylan syldan breq1d 3adant1 bitrd ) ACDZBCDZEBFGZHEAIG
    ZEBJKZABJKZIGZEUNIGZUIUJUKULUOLZECDUIUJUKSZUQMEABNOPUJUKUOUPLUIURUMEUNIUJUK
    BEQZUMETZBRUJBUADUSUTBUBBUCUDUEUFUGUH $.

  $( The ratio of two positive numbers is positive.  (Contributed by NM,
     12-Oct-1999.) $)
  divgt0 $p |- ( ( ( A e. RR /\ 0 < A ) /\
             ( B e. RR /\ 0 < B ) ) -> 0 < ( A / B ) ) $=
    ( cr wcel cc0 clt wbr cdiv co wi w3a gt0div biimpd 3exp com34 com23 imp43 )
    ACDZEAFGZBCDZEBFGZEABHIFGZRTSUAUBJRTUASUBRTUASUBJRTUAKSUBABLMNOPQ $.

  $( The ratio of nonnegative and positive numbers is nonnegative.
     (Contributed by NM, 27-Sep-1999.) $)
  divge0 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\
             ( B e. RR /\ 0 < B ) ) -> 0 <_ ( A / B ) ) $=
    ( cr wcel cc0 cle wbr clt cdiv co w3a ge0div biimpd 3exp com34 com23 imp43
    wi ) ACDZEAFGZBCDZEBHGZEABIJFGZSUATUBUCRSUAUBTUCSUAUBTUCRSUAUBKTUCABLMNOPQ
    $.

  $( A condition for multiplication to be nonnegative.  (Contributed by Scott
     Fenton, 25-Jun-2013.) $)
  mulge0b $p |- ( ( A e. RR /\ B e. RR ) ->
    ( 0 <_ ( A x. B ) <->
      ( ( A <_ 0 /\ B <_ 0 ) \/ ( 0 <_ A /\ 0 <_ B ) ) ) ) $=
    ( cr wcel wa cc0 cmul co cle wbr wo wn clt wb 0re ltnle mpan adantr wi ex
    ianor adantl orbi12d ltle imp ad2ant2rl remulcl simprl simpll simprr divge0
    cdiv syl22anc recn ad2antlr ad2antrr wne gt0ne0 divcan3d breqtrd jca simplr
    cc expr ad2ant2l divcan4d jaod sylbird syl5bi orrd le0neg1 bi2anan9 renegcl
    cneg mulge0 an4s syl2an wceq mul2neg breq2d sylibd sylbid impbid ) ACDZBCDZ
    EZFABGHZIJZAFIJZBFIJZEZFAIJZFBIJZEZKZWFWHWOWFWHEZWKWNWKLWILZWJLZKZWPWNWIWJU
    AWPWSFAMJZFBMJZKZWNWFXBWSNWHWFWTWQXAWRWDWTWQNZWEFCDZWDXCOFAPQRWEXAWRNZWDXDW
    EXEOFBPQUBUCRWPWTWNXAWFWHWTWNWFWHWTEZEZWLWMWDWTWLWEWHWDWTWLXDWDWTWLSOFAUDQU
    EUFXGFWGAULHZBIXGWGCDZWHWDWTFXHIJWFXIXFABUGZRWFWHWTUHWDWEXFUIWFWHWTUJWGAUKU
    MXGBAWEBVCDZWDXFBUNZUOWDAVCDZWEXFAUNZUPWDWTAFUQWEWHAURUFUSUTVAVDWFWHXAWNWFW
    HXAEZEZWLWMXPFWGBULHZAIXPXIWHWEXAFXQIJWFXIXOXJRWFWHXAUHWDWEXOVBWFWHXAUJWGBU
    KUMXPABWDXMWEXOXNUPWEXKWDXOXLUOWEXABFUQWDWHBURVEVFUTWEXAWMWDWHWEXAWMXDWEXAW
    MSOFBUDQUEVEVAVDVGVHVIVJTWFWKWHWNWFWKFAVNZIJZFBVNZIJZEZWHWDWIXSWEWJYAAVKBVK
    VLWFYBFXRXTGHZIJZWHWDXRCDZXTCDZYBYDSWEAVMBVMYEYFEYBYDYEXSYFYAYDXRXTVOVPTVQW
    FYCWGFIWDXMXKYCWGVRWEXNXLABVSVQVTWAWBWFWNWHWDWLWEWMWHABVOVPTVGWC $.

  $( A condition for multiplication to be nonpositive.  (Contributed by Scott
     Fenton, 25-Jun-2013.) $)
  mulle0b $p |- ( ( A e. RR /\ B e. RR ) ->
    ( ( A x. B ) <_ 0 <->
      ( ( A <_ 0 /\ 0 <_ B ) \/ ( 0 <_ A /\ B <_ 0 ) ) ) ) $=
    ( cr wcel wa cmul co cc0 cle wbr cneg wo remulcl le0neg1d wb le0neg2 anbi2d
    le0neg1 cc recn orbi12d adantl renegcl mulge0b sylan2 mulneg2 breq2d syl2an
    3bitr2rd bitrd ) ACDZBCDZEZABFGZHIJHUNKZIJZAHIJZHBIJZEZHAIJZBHIJZEZLZUMUNAB
    MNUMVCUQBKZHIJZEZUTHVDIJZEZLZHAVDFGZIJZUPULVCVIOUKULUSVFVBVHULURVEUQBPQULVA
    VGUTBRQUAUBULUKVDCDVKVIOBUCAVDUDUEUKASDZBSDZVKUPOULATBTVLVMEVJUOHIABUFUGUHU
    IUJ $.

  $( A condition for multiplication of subtraction to be nonpositive.
     (Contributed by Scott Fenton, 25-Jun-2013.) $)
  mulsuble0b $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
    ( ( ( A - B ) x. ( C - B ) ) <_ 0 <->
      ( ( A <_ B /\ B <_ C ) \/ ( C <_ B /\ B <_ A ) ) ) ) $=
    ( cr wcel cmin co cc0 cle wbr wa wo wb resubcl 3adant3 ancoms suble0 subge0
    3adant1 anbi12d w3a cmul mulle0b syl2anc ancom syl6bb orbi12d bitrd ) ADEZB
    DEZCDEZUAZABFGZCBFGZUBGHIJZUMHIJZHUNIJZKZHUMIJZUNHIJZKZLZABIJZBCIJZKZCBIJZB
    AIJZKZLULUMDEZUNDEZUOVBMUIUJVIUKABNOUJUKVJUIUKUJVJCBNPSUMUNUCUDULURVEVAVHUL
    UPVCUQVDUIUJUPVCMUKABQOUJUKUQVDMZUIUKUJVKCBRPSTULVAVGVFKVHULUSVGUTVFUIUJUSV
    GMUKABROUJUKUTVFMZUIUKUJVLCBQPSTVGVFUEUFUGUH $.

  $( 'Less than' relationship between division and multiplication.
     (Contributed by NM, 12-Oct-1999.)  (Proof shortened by Mario Carneiro,
     27-May-2016.) $)
  ltmuldiv $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
                -> ( ( A x. C ) < B <-> A < ( B / C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cmul co cdiv wb simp1 simp3l remulcld syld3an1
    ltdiv1 recnd simp3r gt0ne0d divcan4d breq1d bitrd ) ADEZBDEZCDEZFCGHZIZJZAC
    KLZBGHZULCMLZBCMLZGHZAUOGHULDEUGUFUJUMUPNUKACUFUGUJOZUFUGUHUIPZQULBCSRUKUNA
    UOGUKACUKAUQTUKCURTUKCUFUGUHUIUAUBUCUDUE $.

  $( 'Less than' relationship between division and multiplication.
     (Contributed by NM, 18-Nov-2004.) $)
  ltmuldiv2 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
                   -> ( ( C x. A ) < B <-> A < ( B / C ) ) ) $=
    ( cr wcel cc0 clt wbr wa cmul co cdiv wceq cc mulcom syl2an adantrr 3adant2
    w3a recn breq1d ltmuldiv bitr3d ) ADEZBDEZCDEZFCGHZIZSZACJKZBGHCAJKZBGHABCL
    KGHUIUJUKBGUDUHUJUKMZUEUDUFULUGUDANECNEULUFATCTACOPQRUAABCUBUC $.

  $( 'Less than' relationship between division and multiplication.
     (Contributed by NM, 18-Nov-2004.) $)
  ltdivmul $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
              -> ( ( A / C ) < B <-> A < ( C x. B ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cmul co cdiv wb remulcl ancoms adantrr 3adant1
    cc recn ltdiv1 syld3an2 wceq adantr ad2antrl gt0ne0 adantl divcan3d breq2d
    wne bitr2d ) ADEZBDEZCDEZFCGHZIZJZACBKLZGHZACMLZURCMLZGHZUTBGHULURDEZUMUPUS
    VBNUMUPVCULUMUNVCUOUNUMVCCBOPQRAURCUAUBUQVABUTGUMUPVABUCULUMUPIBCUMBSEUPBTU
    DUNCSEUMUOCTUEUPCFUJUMCUFUGUHRUIUK $.

  $( 'Less than or equal to' relationship between division and multiplication.
     (Contributed by NM, 9-Dec-2005.) $)
  ledivmul $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) ->
                  ( ( A / C ) <_ B <-> A <_ ( C x. B ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cmul co cdiv wb remulcl ancoms 3adant1 cc recn
    cle adantrr lediv1 syld3an2 wceq adantr ad2antrl wne gt0ne0 adantl divcan3d
    breq2d bitr2d ) ADEZBDEZCDEZFCGHZIZJZACBKLZTHZACMLZUSCMLZTHZVABTHUMUSDEZUNU
    QUTVCNUNUQVDUMUNUOVDUPUOUNVDCBOPUAQAUSCUBUCURVBBVATUNUQVBBUDUMUNUQIBCUNBREU
    QBSUEUOCREUNUPCSUFUQCFUGUNCUHUIUJQUKUL $.

  $( 'Less than' relationship between division and multiplication.
     (Contributed by NM, 24-Feb-2005.) $)
  ltdivmul2 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) )
                 -> ( ( A / C ) < B <-> A < ( B x. C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cdiv co cmul ltdivmul wceq recn mulcom adantrr
    cc syl2an 3adant1 breq2d bitr4d ) ADEZBDEZCDEZFCGHZIZJZACKLBGHACBMLZGHABCML
    ZGHABCNUIUKUJAGUEUHUKUJOZUDUEUFULUGUEBSECSEULUFBPCPBCQTRUAUBUC $.

  $( 'Less than' relationship between division and multiplication.
     (Contributed by NM, 8-Jan-2006.) $)
  lt2mul2div $p |- ( ( ( A e. RR /\ ( B e. RR /\ 0 < B ) )
                   /\ ( C e. RR /\ ( D e. RR /\ 0 < D ) ) ) ->
                    ( ( A x. B ) < ( C x. D ) <-> ( A / D ) < ( C / B ) ) ) $=
    ( cr wcel cc0 clt wbr wa cmul co cdiv wceq recn adantl adantr jca syl3anc
    cc mulcom syl2an oveq1d wne ad2antll ad2antrl gt0ne0 eqtrd adantrrr adantll
    divass breq2d wb simpll remulcl adantrr simplr ltmuldiv simpl redivcl 3expb
    sylan2 ancoms ad2ant2lr simprr ltdivmul 3bitr4d ) AEFZBEFZGBHIZJZJZCEFZDEFZ
    GDHIZJZJZJZACDKLZBMLZHIZADCBMLZKLZHIZABKLVSHIZADMLWBHIZVRVTWCAHVKVQVTWCNZVH
    VKVMVNWGVOVKVMVNJZJZVTDCKLZBMLZWCWHVTWKNVKWHVSWJBMVMCTFZDTFZVSWJNVNCOZDOZCD
    UAUBUCPWIWMWLBTFZBGUDZJZWKWCNVNWMVKVMWOUEVMWLVKVNWNUFVKWRWHVKWPWQVIWPVJBOQB
    UGZRQDCBUKSUHUIUJULVRVHVSEFZVKWEWAUMVHVKVQUNZVQWTVLVMVNWTVOCDUOUPPVHVKVQUQA
    VSBURSVRVHWBEFZVPWFWDUMXAVKVMXBVHVPVMVKXBVKVMVIWQJXBVKVIWQVIVJUSWSRVMVIWQXB
    CBUTVAVBVCVDVLVMVPVEAWBDVFSVG $.

  $( 'Less than or equal to' relationship between division and multiplication.
     (Contributed by NM, 9-Dec-2005.) $)
  ledivmul2 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) ->
                  ( ( A / C ) <_ B <-> A <_ ( B x. C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cdiv cle cmul ledivmul wceq recn mulcom syl2an
    co cc adantrr 3adant1 breq2d bitr4d ) ADEZBDEZCDEZFCGHZIZJZACKSBLHACBMSZLHA
    BCMSZLHABCNUJULUKALUFUIULUKOZUEUFUGUMUHUFBTECTEUMUGBPCPBCQRUAUBUCUD $.

  $( 'Less than or equal' relationship between division and multiplication.
     (Contributed by NM, 10-Mar-2006.) $)
  lemuldiv $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) ->
                  ( ( A x. C ) <_ B <-> A <_ ( B / C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cdiv co wn cmul cle wb ltdivmul2 3com12 lenltd
    3adant1 notbid simp1 gt0ne0 redivcl syld3an3 3expb remulcl 3adant2 3adant3r
    wne simp2 3bitr4rd ) ADEZBDEZCDEZFCGHZIZJZBCKLZAGHZMBACNLZGHZMZAUSOHVABOHZU
    RUTVBUNUMUQUTVBPBACQRUAURAUSUMUNUQUBUNUQUSDEZUMUNUOUPVEUNUOUPCFUJZVEUOUPVFU
    NCUCTBCUDUEUFTSUMUNUOVDVCPUPUMUNUOJVABUMUOVADEUNACUGUHUMUNUOUKSUIUL $.

  $( 'Less than or equal' relationship between division and multiplication.
     (Contributed by NM, 10-Mar-2006.) $)
  lemuldiv2 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ 0 < C ) ) ->
                      ( ( C x. A ) <_ B <-> A <_ ( B / C ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cmul co cle cdiv wceq cc mulcom syl2an adantrr
    recn 3adant2 breq1d lemuldiv bitr3d ) ADEZBDEZCDEZFCGHZIZJZACKLZBMHCAKLZBMH
    ABCNLMHUJUKULBMUEUIUKULOZUFUEUGUMUHUEAPECPEUMUGATCTACQRSUAUBABCUCUD $.

  $( The reciprocal of both sides of 'less than'.  (Contributed by NM,
     26-Sep-1999.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  ltrec $p |- ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) ) ->
              ( A < B <-> ( 1 / B ) < ( 1 / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co cmul 1red simprl simpll simplr ltmuldiv
    wb syl112anc recnd mulid2d breq1d gt0ne0d divrecd 3bitr3d rereccld ltdivmul
    breq2d simprr bitr4d ) ACDZEAFGZHZBCDZEBFGZHZHZABFGZIBIAJKZLKZFGZIBJKUSFGZU
    QIALKZBFGZIBAJKZFGZURVAUQICDZUNUKULVDVFRUQMZUMUNUONZUKULUPOZUKULUPPZIBAQSUQ
    VCABFUQAUQAVJTZUAUBUQVEUTIFUQBAUQBVITVLUQAVKUCZUDUHUEUQVGUSCDUNUOVBVARVHUQA
    VJVMUFVIUMUNUOUIIUSBUGSUJ $.

  $( The reciprocal of both sides of 'less than or equal to'.  (Contributed by
     NM, 3-Oct-1999.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  lerec $p |- ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) ) ->
              ( A <_ B <-> ( 1 / B ) <_ ( 1 / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa wn c1 co cle wb ltrec ancoms notbid lenltd gt0ne0d
    cdiv rereccld simpll simprl simprr simplr 3bitr4d ) ACDZEAFGZHZBCDZEBFGZHZH
    ZBAFGZIJASKZJBSKZFGZIABLGUOUNLGULUMUPUKUHUMUPMBANOPULABUFUGUKUAZUHUIUJUBZQU
    LUOUNULBURULBUHUIUJUCRTULAUQULAUFUGUKUDRTQUE $.

  $( Lemma for ~ lt2msq .  (Contributed by Mario Carneiro, 27-May-2016.) $)
  lt2msq1 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ B e. RR /\ A < B ) ->
                  ( A x. A ) < ( B x. B ) ) $=
    ( cr wcel cc0 cle wbr wa clt w3a co simp1l remulcld simp2 simp1 simp3 ltled
    cmul lemul1a lelttrd syl31anc wb 0red simp1r ltmul2 syl112anc mpbid ) ACDZE
    AFGZHZBCDZABIGZJZAARKZBARKZBBRKZUMAAUHUIUKULLZUQMUMBAUJUKULNZUQMUMBBURURMUM
    UHUKUJABFGUNUOFGUQURUJUKULOUMABUQURUJUKULPZQABASUAUMULUOUPIGZUSUMUHUKUKEBIG
    ULUTUBUQURURUMEABUMUCUQURUHUIUKULUDUSTABBUEUFUGT $.

  $( Two nonnegative numbers compare the same as their squares.  (Contributed
     by Roy F. Longton, 8-Aug-2005.)  (Revised by Mario Carneiro,
     27-May-2016.) $)
  lt2msq $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
                  ( A < B <-> ( A x. A ) < ( B x. B ) ) ) $=
    ( cr wcel cc0 cle wbr wa cmul co wi lt2msq1 3expia adantrr wceq wo remulcld
    clt wn lttrid oveq12d a1i ancoms orim12d con3d simpll simprl 3imtr4d impbid
    id ) ACDZEAFGZHZBCDZEBFGZHZHZABRGZAAIJZBBIJZRGZUMUNURVAKUOUMUNURVAABLMNUQUS
    UTOZUTUSRGZPZSABOZBARGZPZSVAURUQVGVDUQVEVBVFVCVEVBKUQVEABABIVEUJZVHUAUBUPUM
    VFVCKZUPUKVIULUPUKVFVCBALMNUCUDUEUQUSUTUQAAUKULUPUFZVJQUQBBUMUNUOUGZVKQTUQA
    BVJVKTUHUI $.

  $( Division of a positive number by both sides of 'less than'.  (Contributed
     by NM, 27-Apr-2005.) $)
  ltdiv2 $p |- ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) /\
    ( C e. RR /\ 0 < C ) ) -> ( A < B <-> ( C / B ) < ( C / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a c1 cdiv co wb 3adant3 cmul wne cc recn adantr
    ltrec gt0ne0 rereccl syldan ltmul2 syl3an2 syl3an1 jca divrec 3expb 3adant2
    wceq breq12d syl3an 3coml bitr4d 3com12 bitrd ) ADEZFAGHZIZBDEZFBGHZIZCDEZF
    CGHZIZJABGHZKBLMZKALMZGHZCBLMZCALMZGHZVAVDVHVKNVGABUAOVDVAVGVKVNNVDVAVGJVKC
    VIPMZCVJPMZGHZVNVDVIDEZVAVGVKVQNZVBVCBFQZVRBUBZBUCUDVAVRVJDEZVGVSUSUTAFQZWB
    AUBZAUCUDVIVJCUEUFUGVGVDVAVNVQNZVGCREZVDBREZVTIZVAAREZWCIZWEVEWFVFCSTVDWGVT
    VBWGVCBSTWAUHVAWIWCUSWIUTASTWDUHWFWHWJJVLVOVMVPGWFWHVLVOULZWJWFWGVTWKCBUIUJ
    OWFWJVMVPULZWHWFWIWCWLCAUIUJUKUMUNUOUPUQUR $.

  $( Reciprocal swap in a 'less than' relation.  (Contributed by NM,
     24-Feb-2005.) $)
  ltrec1 $p |- ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) ) ->
              ( ( 1 / A ) < B <-> ( 1 / B ) < A ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co wb wne gt0ne0 rereccl syldan recgt0 jca
    ltrec sylan wceq cc recn recrec adantr breq2d bitrd ) ACDZEAFGZHZBCDEBFGHZH
    ZIAJKZBFGZIBJKZIUMJKZFGZUOAFGUJUMCDZEUMFGZHUKUNUQLUJURUSUHUIAEMZURANZAOPAQR
    UMBSTULUPAUOFUJUPAUAZUKUHUIUTVBVAUHAUBDUTVBAUCAUDTPUEUFUG $.

  $( Reciprocal swap in a 'less than or equal to' relation.  (Contributed by
     NM, 24-Feb-2005.) $)
  lerec2 $p |- ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) ) ->
              ( A <_ ( 1 / B ) <-> B <_ ( 1 / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co cle wb wne gt0ne0 rereccl syldan recgt0
    jca lerec sylan2 wceq cc recn recrec sylan adantl breq1d bitrd ) ACDEAFGHZB
    CDZEBFGZHZHZAIBJKZLGZIUOJKZIAJKZLGZBURLGUMUJUOCDZEUOFGZHUPUSMUMUTVAUKULBENZ
    UTBOZBPQBRSAUOTUAUNUQBURLUMUQBUBZUJUKULVBVDVCUKBUCDVBVDBUDBUEUFQUGUHUI $.

  $( Invert ratios of positive numbers and swap their ordering.  (Contributed
     by NM, 9-Jan-2006.) $)
  ledivdiv $p |- ( ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) ) /\
                      ( ( C e. RR /\ 0 < C ) /\ ( D e. RR /\ 0 < D ) ) ) ->
                  ( ( A / B ) <_ ( C / D ) <-> ( D / C ) <_ ( B / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa cdiv co cle wne gt0ne0 jca syl2an cc recn adantr
    c1 wb simpl redivcl 3expb sylan2 adantlr divgt0 lerec wceq breqan12rd bitrd
    recdiv ) AEFZGAHIZJZBEFZGBHIZJZJZCEFZGCHIZJZDEFZGDHIZJZJZJABKLZCDKLZMIZUAVI
    KLZUAVHKLZMIZDCKLZBAKLZMIUTVHEFZGVHHIZJVIEFZGVIHIZJVJVMUBVGUTVPVQUNUSVPUOUS
    UNUQBGNZJVPUSUQVTUQURUCBOZPUNUQVTVPABUDUEUFUGABUHPVGVRVSVAVFVRVBVFVAVDDGNZJ
    VRVFVDWBVDVEUCDOZPVAVDWBVRCDUDUEUFUGCDUHPVHVIUIQVGUTVKVNVLVOMVCCRFZCGNZJDRF
    ZWBJVKVNUJVFVCWDWEVAWDVBCSTCOPVFWFWBVDWFVEDSTWCPCDUMQUPARFZAGNZJBRFZVTJVLVO
    UJUSUPWGWHUNWGUOASTAOPUSWIVTUQWIURBSTWAPABUMQUKUL $.

  $( Division of a positive number by both sides of 'less than or equal to'.
     (Contributed by NM, 10-Jan-2006.) $)
  lediv2 $p |- ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) /\
       ( C e. RR /\ 0 < C ) ) -> ( A <_ B <-> ( C / B ) <_ ( C / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa w3a c1 cdiv co cle cmul wb wne gt0ne0 cc recn wceq
    rereccl syldan 3ad2ant2 simp3l simp3r lemul2 syl112anc lerec 3adant3 adantr
    3ad2ant1 jca divrec 3expb syl2an 3adant2 breq12d 3coml 3adant3r 3bitr4d ) A
    DEZFAGHZIZBDEZFBGHZIZCDEZFCGHZIZJZKBLMZKALMZNHZCVLOMZCVMOMZNHZABNHZCBLMZCAL
    MZNHZVKVLDEZVMDEZVHVIVNVQPVGVDWBVJVEVFBFQZWBBRZBUBUCUDVDVGWCVJVBVCAFQZWCARZ
    AUBUCULVDVGVHVIUEVDVGVHVIUFVLVMCUGUHVDVGVRVNPVJABUIUJVDVGVHWAVQPZVIVHVDVGWH
    VHVDVGJVSVOVTVPNVHVGVSVOUAZVDVHCSEZBSEZWDIWIVGCTZVGWKWDVEWKVFBTUKWEUMWJWKWD
    WICBUNUOUPUQVHVDVTVPUAZVGVHWJASEZWFIWMVDWLVDWNWFVBWNVCATUKWGUMWJWNWFWMCAUNU
    OUPUJURUSUTVA $.

  $( Swap denominator with other side of 'less than'.  (Contributed by NM,
     3-Oct-1999.) $)
  ltdiv23 $p |- ( ( A e. RR /\ ( B e. RR /\ 0 < B ) /\ ( C e. RR /\ 0 < C ) )
              -> ( ( A / B ) < C <-> ( A / C ) < B ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cdiv co cmul wb wne gt0ne0 jca 3expb cc recn
    simpl redivcl sylan2 3adant3 simp3 simp2 ltmul1 3adant3r wceq adantr adantl
    syl3anc ad2antrl breq1d remulcl ancoms adantrr 3adant1 ltdiv1 syl2an breq2d
    divcan1d syld3an2 divcan3 bitrd 3adant2r 3bitrd ) ADEZBDEZFBGHZIZCDEZFCGHZI
    ZJZABKLZCGHZVPBMLZCBMLZGHZAVSGHZACKLZBGHZVHVKVLVQVTNZVMVHVKVLJVPDEZVLVKWDVH
    VKWEVLVKVHVIBFOZIWEVKVIWFVIVJUABPZQVHVIWFWEABUBRUCUDVHVKVLUEVHVKVLUFVPCBUGU
    LUHVOVRAVSGVHVKVRAUIVNVHVKIABVHASEVKATUJVIBSEZVHVJBTZUMVKWFVHWGUKVBUDUNVHVI
    VNWAWCNVJVHVIVNJZWAWBVSCKLZGHZWCVHVSDEZVIVNWAWLNVIVNWMVHVIVLWMVMVLVIWMCBUOU
    PUQURAVSCUSVCWJWKBWBGVIVNWKBUIZVHVIWHCSEZCFOZIWNVNWIVNWOWPVLWOVMCTUJCPQWHWO
    WPWNBCVDRUTURVAVEVFVG $.

  $( Swap denominator with other side of 'less than or equal to'.  (Contributed
     by NM, 30-May-2005.) $)
  lediv23 $p |- ( ( A e. RR /\ ( B e. RR /\ 0 < B ) /\ ( C e. RR /\ 0 < C ) )
              -> ( ( A / B ) <_ C <-> ( A / C ) <_ B ) ) $=
    ( cr wcel cc0 clt wbr wa w3a cdiv co cle cmul wb wne gt0ne0 jca cc recn
    simpl redivcl 3expb sylan2 3adant3 simp3 simp2 lemul1 syl3anc 3adant3r wceq
    adantr ad2antrl adantl breq1d remulcl ancoms adantrr 3adant1 lediv1 divcan3
    divcan1d syld3an2 syl2an breq2d bitrd 3adant2r 3bitrd ) ADEZBDEZFBGHZIZCDEZ
    FCGHZIZJZABKLZCMHZVQBNLZCBNLZMHZAVTMHZACKLZBMHZVIVLVMVRWAOZVNVIVLVMJVQDEZVM
    VLWEVIVLWFVMVLVIVJBFPZIWFVLVJWGVJVKUABQZRVIVJWGWFABUBUCUDUEVIVLVMUFVIVLVMUG
    VQCBUHUIUJVPVSAVTMVIVLVSAUKVOVIVLIABVIASEVLATULVJBSEZVIVKBTZUMVLWGVIWHUNVBU
    EUOVIVJVOWBWDOVKVIVJVOJZWBWCVTCKLZMHZWDVIVTDEZVJVOWBWMOVJVOWNVIVJVMWNVNVMVJ
    WNCBUPUQURUSAVTCUTVCWKWLBWCMVJVOWLBUKZVIVJWICSEZCFPZIWOVOWJVOWPWQVMWPVNCTUL
    CQRWIWPWQWOBCVAUCVDUSVEVFVGVH $.

  $( Comparison of ratio of two nonnegative numbers.  (Contributed by NM,
     31-Dec-2005.) $)
  lediv12a $p |- ( ( ( ( A e. RR /\ B e. RR ) /\ ( 0 <_ A /\ A <_ B ) ) /\
               ( ( C e. RR /\ D e. RR ) /\ ( 0 < C /\ C <_ D ) ) ) ->
                 ( A / D ) <_ ( B / C ) ) $=
    ( cr wcel wa cc0 cle wbr clt c1 cdiv co cmul jca cc recn adantl adantlr 0re
    simplr wi ltletr mp3an1 imp gt0ne0d rereccld gt0ne0 rereccl syldan ad2ant2r
    wne recgt0 syl2anc ltle sylancr mpd simprr wb id lerec syl12anc mpbid jca31
    simplll simplrl simpllr simprll simprrl simprlr jca32 simplrr lemul12a sylc
    simprrr sylan2 ad2antlr divrecd ad2antrl adantrrr adantrlr adantll 3brtr4d
    wceq adantr ) AEFZBEFZGZHAIJZABIJZGZGZCEFZDEFZGZHCKJZCDIJZGZGZGALDMNZONZBLC
    MNZONZADMNZBCMNZIWTWMXAEFZXCEFZGZHXAIJZXAXCIJZGZGZXBXDIJZWTXGXHXLWTDWNWOWSU
    BZWTDWPWSHDKJZHEFZWNWOWSXPUCUAHCDUDUEUFZUGZUHZWNWQXHWOWRWNWQCHUMZXHCUIZCUJU
    KULWTXJXKWTHXAKJZXJWTWOXPYCXOXRDUNUOWTXQXGYCXJUCUAXTHXAUPUQURWTWRXKWPWQWRUS
    WTWNWQGZWOXPWRXKUTWNWQYDWOWRYDVAULXOXRCDVBVCVDPVEWMXMGZWGWJGWHGZXGXJGZXHGGW
    KXKGXNYEYFYGXHYEWGWJWHWGWHWLXMVFWIWJWKXMVGWGWHWLXMVHVEYEXGXJWMXGXHXLVIWMXIX
    JXKVJPWMXGXHXLVKVLYEWKXKWIWJWKXMVMWMXIXJXKVPPABXAXCVNVOVQWIWTXEXBWEZWLWGWTY
    HWHWGWTGADWGAQFWTARWFWTDQFZWGWOYIWNWSDRVRSWTDHUMWGXSSVSTTWIWTXFXDWEZWLWHWTY
    JWGWHWNWSYJWOWHWNWQYJWRWHYDGBCWHBQFYDBRWFWNCQFWHWQCRVTYDYAWHYBSVSWAWBWCTWD
    $.

  $( Division of both sides of 'less than or equal to' into a nonnegative
     number.  (Contributed by Paul Chapman, 7-Sep-2007.) $)
  lediv2a $p |- ( ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) /\
                     ( C e. RR /\ 0 <_ C ) ) /\
                   A <_ B ) -> ( C / B ) <_ ( C / A ) ) $=
    ( cr wcel cc0 clt wbr wa cle w3a cdiv co pm3.2 pm2.43i adantr anim2i ancoms
    leid jca ad2antlr 3adantl2 ad2ant2r simplr anim1i 3adantl3 lediv12a syl2anc
    id ) ADEZFAGHZIZBDEZFBGHZIZCDEZFCJHZIZKABJHZIUPUPIZUQCCJHZIZIZUJUMIZUKUSIZI
    ZCBLMCALMJHULURUSVCUOURVCULUSURUTVBUPUTUQUPUTUPUPNOPUQUPVBUPVAUQCSQRTUAUBUL
    UOUSVFURULUOIZUSIVDVEVGVDUSUJUMVDUKUNVDUIUCPVGUKUSUJUKUOUDUETUFCCABUGUH $.

  $( The reciprocal of a positive number less than 1 is greater than 1.
     (Contributed by NM, 23-Feb-2005.) $)
  reclt1 $p |- ( ( A e. RR /\ 0 < A ) -> ( A < 1 <-> 1 < ( 1 / A ) ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co wb 1re 0lt1 ltrec mpanr12 breq1i syl6bb
    1div1e1 ) ABCDAEFGZAHEFZHHIJZHAIJZEFZHUBEFSHBCDHEFTUCKLMAHNOUAHUBERPQ $.

  $( The reciprocal of a positive number greater than 1 is less than 1.
     (Contributed by NM, 28-Dec-2005.) $)
  recgt1 $p |- ( ( A e. RR /\ 0 < A ) -> ( 1 < A <-> ( 1 / A ) < 1 ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co wb 1re 0lt1 ltrec mpanl12 breq2i syl6bb
    1div1e1 ) ABCDAEFGZHAEFZHAIJZHHIJZEFZUAHEFHBCDHEFSTUCKLMHANOUBHUAERPQ $.

  $( The reciprocal of a number greater than 1 is positive and less than 1.
     (Contributed by NM, 23-Feb-2005.) $)
  recgt1i $p |- ( ( A e. RR /\ 1 < A ) ->
               ( 0 < ( 1 / A ) /\ ( 1 / A ) < 1 ) ) $=
    ( cr wcel c1 clt wbr wa cc0 cdiv co 0lt1 wi 0re 1re mp3an12 mpani imdistani
    lttr recgt0 syl recgt1 biimpa sylancom jca ) ABCZDAEFZGZHDAIJZEFZUHDEFZUGUE
    HAEFZGZUIUEUFUKUEHDEFZUFUKKHBCDBCUEUMUFGUKLMNHDAROPQZASTUEUFULUJUNULUFUJAUA
    UBUCUD $.

  $( Construct a number less than 1 from any nonnegative number.  (Contributed
     by NM, 30-Dec-2005.) $)
  recp1lt1 $p |- ( ( A e. RR /\ 0 <_ A ) -> ( A / ( 1 + A ) ) < 1 ) $=
    ( cr wcel cc0 cle wbr wa c1 caddc co cdiv clt cmul ltp1 cc wceq recn adantr
    1re recnd ax-1cn addcom sylancl breqtrd readdcl mpan addgtge0 mpanr1 mpanl1
    0lt1 gt0ne0d divcan1d mulid2d 3brtr4d simpl redivcld ltmul1 mp3an2 syl12anc
    wb mpbird ) ABCZDAEFZGZAHAIJZKJZHLFZVFVEMJZHVEMJZLFZVDAVEVHVILVBAVELFVCVBAA
    HIJZVELANVBAOCZHOCVKVEPAQZUAAHUBUCUDRVDAVEVBVLVCVMRVDVEVBVEBCZVCHBCZVBVNSHA
    UEUFZRZTVDVEVOVBVCDVELFZSVOVBGDHLFVCVRUJHAUGUHUIZUKZULVBVIVEPVCVBVEVBVEVPTU
    MRUNVDVFBCZVNVRVGVJUTZVDAVEVBVCUOVQVTUPVQVSWAVOVNVRGWBSVFHVEUQURUSVA $.

  $( Given a positive number ` A ` , construct a new positive number less than
     both ` A ` and 1.  (Contributed by NM, 28-Dec-2005.) $)
  recreclt $p |- ( ( A e. RR /\ 0 < A ) ->
        ( ( 1 / ( 1 + ( 1 / A ) ) ) < 1 /\ ( 1 / ( 1 + ( 1 / A ) ) ) < A ) ) $=
    ( cr wcel cc0 clt wbr wa c1 cdiv co caddc recgt0 1re ltaddpos sylancl mpbid
    wb sylancr 0lt1 cc wne gt0ne0 rereccl syldan readdcl 0re lttr mp3an12 mpani
    wi syl mpd recgt1 syl2anc mpbii wceq recnd ax-1cn addcom simpl simpr ltrec1
    breqtrd syl22anc jca ) ABCZDAEFZGZHHHAIJZKJZIJZHEFZVKAEFZVHHVJEFZVLVHDVIEFZ
    VNALVHVIBCZHBCZVOVNQVFVGADUAVPAUBAUCUDZMVIHNOPZVHVJBCZDVJEFZVNVLQVHVQVPVTMV
    RHVIUERZVHVNWAVSVHDHEFZVNWASVHVTWCVNGWAUJZWBDBCVQVTWDUFMDHVJUGUHUKUIULZVJUM
    UNPVHVIVJEFZVMVHVIVIHKJZVJEVHWCVIWGEFZSVHVQVPWCWHQMVRHVINRUOVHVITCHTCWGVJUP
    VHVIVRUQURVIHUSOVCVHVFVGVTWAWFVMQVFVGUTVFVGVAWBWEAVJVBVDPVE $.

  $( The square function on nonnegative reals is monotonic.  (Contributed by
     NM, 3-Aug-1999.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  le2msq $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
              ( A <_ B <-> ( A x. A ) <_ ( B x. B ) ) ) $=
    ( cr wcel cc0 cle wbr wa clt cmul lt2msq ancoms notbid simpll simprl lenltd
    wn co wb remulcld 3bitr4d ) ACDZEAFGZHZBCDZEBFGZHZHZBAIGZQBBJRZAAJRZIGZQABF
    GUKUJFGUHUIULUGUDUIULSBAKLMUHABUBUCUGNZUDUEUFOZPUHUKUJUHAAUMUMTUHBBUNUNTPUA
    $.

  $( The square of a nonnegative number is a one-to-one function.  (Contributed
     by NM, 29-Jul-1999.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  msq11 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
              ( ( A x. A ) = ( B x. B ) <-> A = B ) ) $=
    ( cr wcel cc0 cle wbr cmul wceq le2msq ancoms anbi12d simpll simprl letri3d
    wa co wb remulcld 3bitr4rd ) ACDZEAFGZPZBCDZEBFGZPZPZABFGZBAFGZPAAHQZBBHQZF
    GZUKUJFGZPABIUJUKIUGUHULUIUMABJUFUCUIUMRBAJKLUGABUAUBUFMZUCUDUENZOUGUJUKUGA
    AUNUNSUGBBUOUOSOT $.

  $( Less-than-or-equal-to and division relation.  (Lemma for computing upper
     bounds of products.  The "+ 1" prevents division by zero.)  (Contributed
     by NM, 28-Sep-2005.) $)
  ledivp1 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
                  ( ( A / ( B + 1 ) ) x. B ) <_ A ) $=
    ( cr wcel cc0 cle wbr wa c1 caddc cdiv cmul simprl peano2re ad2antrl simpll
    co clt jca cc wne ltp1 wi 0re lelttr mp3an1 mpdan mpan2d imp gt0ne0d adantl
    redivcld adantr divge0 sylan2 lep1 lemul2a syl31anc ad2antrr recnd divcan1d
    recn breqtrd ) ACDZEAFGZHZBCDZEBFGZHZHZABIJQZKQZBLQZVLVKLQZAFVJVGVKCDZVLCDZ
    EVLFGZHBVKFGZVMVNFGVFVGVHMVGVOVFVHBNZOZVJVPVQVJAVKVDVEVIPVTVIVKEUAVFVIVKVGV
    HEVKRGZVGVHBVKRGZWABUBVGVOVHWBHWAUCZVSECDVGVOWCUDEBVKUEUFUGUHUIZUJUKZULVIVF
    VOWAHVQVIVOWAVGVOVHVSUMWDSAVKUNUOSVGVRVFVHBUPOBVKVLUQURVJAVKVDATDVEVIAVBUSV
    GVKTDVFVHVGVKVSUTOWEVAVC $.

  ${
    $d x A $.
    $( If a nonnegative number is less than any positive number, it is zero.
       (Contributed by NM, 11-Feb-2006.) $)
    squeeze0 $p |- ( ( A e. RR /\ 0 <_ A /\ A. x e. RR ( 0 < x -> A < x ) ) ->
                   A = 0 ) $=
      ( cr wcel cc0 cle wbr cv clt wi wral wceq wo 0re leloe mpan breq2 imbi12d
      wb rspcv ltnr pm2.21d com12 imim2i com13 ax-1 eqcoms a1i jaod sylbid 3imp
      syl5d ) BCDZEBFGZEAHZIGZBUOIGZJZACKZBELZUMUNEBIGZEBLZMZUSUTJZECDUMUNVCSNE
      BOPUMVAVDVBUMUSVABBIGZJZVAUTURVFABCUOBLUPVAUQVEUOBEIQUOBBIQRTVFVAUMUTVEUM
      UTJVAUMVEUTUMVEUTBUAUBUCUDUEULVBVDJUMVDBEUTUSUFUGUHUIUJUK $.
  $}

  ${
    ltplus1.1 $e |- A e. RR $.
    $( A number is less than itself plus 1.  (Contributed by NM,
       20-Aug-2001.) $)
    ltp1i $p |- A < ( A + 1 ) $=
      ( cr wcel c1 caddc co clt wbr ltp1 ax-mp ) ACDAAEFGHIBAJK $.

    $( The reciprocal of a positive number is positive.  Exercise 4 of
       [Apostol] p. 21.  (Contributed by NM, 15-May-1999.) $)
    recgt0i $p |- ( 0 < A -> 0 < ( 1 / A ) ) $=
      ( cr wcel cc0 clt wbr c1 cdiv co recgt0 mpan ) ACDEAFGEHAIJFGBAKL $.

    ${
      recgt0i.2 $e |- 0 < A $.
      $( The reciprocal of a positive number is positive.  Exercise 4 of
         [Apostol] p. 21.  (Contributed by NM, 15-May-1999.) $)
      recgt0ii $p |- 0 < ( 1 / A ) $=
        ( cc0 c1 cdiv co clt wbr wn recni 0re 1re ax-mp cneg cmul cr wb lt0neg1
        wcel wceq ax-1cn ax-1ne0 gt0ne0ii divne0i nesymi 0lt1 rereccli renegcli
        wo ltnsymi mulgt0i mpan2 mulneg1i recidi mulcomli negeqi eqtri syl6breq
        3imtr4i mto pm3.2ni axlttri mp2an mpbir ) DEAFGZHIZDVFUAZVFDHIZUJJZVHVI
        VFDEAUBABKZUCABCUDZUEUFVIEDHIZDEHIVMJUGDELMUKNDVFOZHIZDEOZHIZVIVMVODVNA
        PGZVPHVODAHIDVRHICVNAVFABVLUHZUIBULUMVRVFAPGZOVPVFAVFVSKZVKUNVTEAVFEVKW
        AAVKVLUOUPUQURUSVFQTZVIVORVSVFSNEQTVMVQRMESNUTVAVBDQTWBVGVJRLVSDVFVCVDV
        E $.
    $}

    prodgt0.2 $e |- B e. RR $.
    $( Infer that a multiplicand is positive from a nonnegative multiplier and
       positive product.  (Contributed by NM, 15-May-1999.) $)
    prodgt0i $p |- ( ( 0 <_ A /\ 0 < ( A x. B ) ) -> 0 < B ) $=
      ( cr wcel cc0 cle wbr cmul co clt wa prodgt0 mpanl12 ) AEFBEFGAHIGABJKLIM
      GBLICDABNO $.

    $( Infer that a multiplicand is nonnegative from a positive multiplier and
       nonnegative product.  (Contributed by NM, 2-Jul-2005.) $)
    prodge0i $p |- ( ( 0 < A /\ 0 <_ ( A x. B ) ) -> 0 <_ B ) $=
      ( cr wcel cc0 clt wbr cmul co cle wa prodge0 mpanl12 ) AEFBEFGAHIGABJKLIM
      GBLICDABNO $.

    $( The ratio of two positive numbers is positive.  (Contributed by NM,
       16-May-1999.) $)
    divgt0i $p |- ( ( 0 < A /\ 0 < B ) -> 0 < ( A / B ) ) $=
      ( cr wcel cc0 clt wbr cdiv co wa divgt0 mpanr1 mpanl1 ) AEFZGAHIZGBHIZGAB
      JKHIZCPQLBEFRSDABMNO $.

    $( The ratio of nonnegative and positive numbers is nonnegative.
       (Contributed by NM, 12-Aug-1999.) $)
    divge0i $p |- ( ( 0 <_ A /\ 0 < B ) -> 0 <_ ( A / B ) ) $=
      ( cr wcel cc0 cle wbr clt cdiv co wa divge0 mpanr1 mpanl1 ) AEFZGAHIZGBJI
      ZGABKLHIZCQRMBEFSTDABNOP $.

    $( The reciprocal of both sides of 'less than'.  (Contributed by NM,
       15-Sep-1999.) $)
    ltreci $p |- ( ( 0 < A /\ 0 < B ) ->
                ( A < B <-> ( 1 / B ) < ( 1 / A ) ) ) $=
      ( cr wcel cc0 clt wbr c1 cdiv co wb wa ltrec mpanr1 mpanl1 ) AEFZGAHIZGBH
      IZABHIJBKLJAKLHIMZCRSNBEFTUADABOPQ $.

    $( The reciprocal of both sides of 'less than or equal to'.  (Contributed
       by NM, 16-Sep-1999.) $)
    lereci $p |- ( ( 0 < A /\ 0 < B ) ->
                ( A <_ B <-> ( 1 / B ) <_ ( 1 / A ) ) ) $=
      ( cr wcel cc0 clt wbr cle c1 cdiv co wb wa lerec mpanr1 mpanl1 ) AEFZGAHI
      ZGBHIZABJIKBLMKALMJINZCSTOBEFUAUBDABPQR $.

    $( The square function on nonnegative reals is strictly monotonic.
       (Contributed by NM, 3-Aug-1999.) $)
    lt2msqi $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
                ( A < B <-> ( A x. A ) < ( B x. B ) ) ) $=
      ( cr wcel cc0 cle wbr clt cmul co wb wa lt2msq mpanr1 mpanl1 ) AEFZGAHIZG
      BHIZABJIAAKLBBKLJIMZCRSNBEFTUADABOPQ $.

    $( The square function on nonnegative reals is monotonic.  (Contributed by
       NM, 2-Aug-1999.) $)
    le2msqi $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
                ( A <_ B <-> ( A x. A ) <_ ( B x. B ) ) ) $=
      ( cr wcel cc0 cle wbr cmul co wb wa le2msq mpanr1 mpanl1 ) AEFZGAHIZGBHIZ
      ABHIAAJKBBJKHILZCQRMBEFSTDABNOP $.

    $( The square of a nonnegative number is a one-to-one function.
       (Contributed by NM, 29-Jul-1999.) $)
    msq11i $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
                ( ( A x. A ) = ( B x. B ) <-> A = B ) ) $=
      ( cr wcel cc0 cle wbr cmul co wceq wb wa msq11 mpanr1 mpanl1 ) AEFZGAHIZG
      BHIZAAJKBBJKLABLMZCRSNBEFTUADABOPQ $.

    ${
      divgt0i2.3 $e |- 0 < B $.
      $( The ratio of two positive numbers is positive.  (Contributed by NM,
         16-May-1999.) $)
      divgt0i2i $p |- ( 0 < A -> 0 < ( A / B ) ) $=
        ( cc0 clt wbr cdiv co divgt0i mpan2 ) FAGHFBGHFABIJGHEABCDKL $.
    $}

    ${
      ltreci.3 $e |- 0 < A $.
      ltreci.4 $e |- 0 < B $.
      $( The reciprocal of both sides of 'less than'.  (Contributed by NM,
         15-Sep-1999.) $)
      ltrecii $p |- ( A < B <-> ( 1 / B ) < ( 1 / A ) ) $=
        ( cc0 clt wbr c1 cdiv co wb ltreci mp2an ) GAHIGBHIABHIJBKLJAKLHIMEFABC
        DNO $.

      $( The ratio of two positive numbers is positive.  (Contributed by NM,
         18-May-1999.) $)
      divgt0ii $p |- 0 < ( A / B ) $=
        ( cc0 clt wbr cdiv co divgt0i2i ax-mp ) GAHIGABJKHIEABCDFLM $.
    $}

    ltmul1.3 $e |- C e. RR $.
    $( Multiplication of both sides of 'less than' by a positive number.
       Theorem I.19 of [Apostol] p. 20.  (Contributed by NM, 16-May-1999.) $)
    ltmul1i $p |- ( 0 < C -> ( A < B <-> ( A x. C ) < ( B x. C ) ) ) $=
      ( cr wcel cc0 clt wbr cmul co wb wa ltmul1 mp3an12 mpan ) CGHZICJKZABJKAC
      LMBCLMJKNZFAGHBGHSTOUADEABCPQR $.

    $( Division of both sides of 'less than' by a positive number.
       (Contributed by NM, 16-May-1999.) $)
    ltdiv1i $p |- ( 0 < C -> ( A < B <-> ( A / C ) < ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr cdiv co wb wa ltdiv1 mp3an12 mpan ) CGHZICJKZABJKAC
      LMBCLMJKNZFAGHBGHSTOUADEABCPQR $.

    $( 'Less than' relationship between division and multiplication.
       (Contributed by NM, 12-Oct-1999.) $)
    ltmuldivi $p |- ( 0 < C -> ( ( A x. C ) < B <-> A < ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr cmul co cdiv wb wa ltmuldiv mp3an12 mpan ) CGHZICJK
      ZACLMBJKABCNMJKOZFAGHBGHTUAPUBDEABCQRS $.

    $( Multiplication of both sides of 'less than' by a positive number.
       Theorem I.19 of [Apostol] p. 20.  (Contributed by NM, 16-May-1999.) $)
    ltmul2i $p |- ( 0 < C -> ( A < B <-> ( C x. A ) < ( C x. B ) ) ) $=
      ( cr wcel cc0 clt wbr cmul co wb wa ltmul2 mp3an12 mpan ) CGHZICJKZABJKCA
      LMCBLMJKNZFAGHBGHSTOUADEABCPQR $.

    $( Multiplication of both sides of 'less than or equal to' by a positive
       number.  (Contributed by NM, 2-Aug-1999.) $)
    lemul1i $p |- ( 0 < C -> ( A <_ B <-> ( A x. C ) <_ ( B x. C ) ) ) $=
      ( cr wcel cc0 clt wbr cle cmul co wb wa lemul1 mp3an12 mpan ) CGHZICJKZAB
      LKACMNBCMNLKOZFAGHBGHTUAPUBDEABCQRS $.

    $( Multiplication of both sides of 'less than or equal to' by a positive
       number.  (Contributed by NM, 1-Aug-1999.) $)
    lemul2i $p |- ( 0 < C -> ( A <_ B <-> ( C x. A ) <_ ( C x. B ) ) ) $=
      ( cr wcel cc0 clt wbr cle cmul co wb wa lemul2 mp3an12 mpan ) CGHZICJKZAB
      LKCAMNCBMNLKOZFAGHBGHTUAPUBDEABCQRS $.

    $( Swap denominator with other side of 'less than'.  (Contributed by NM,
       26-Sep-1999.) $)
    ltdiv23i $p |- ( ( 0 < B /\ 0 < C ) ->
                ( ( A / B ) < C <-> ( A / C ) < B ) ) $=
      ( cc0 clt wbr cr wcel cdiv co wb wa ltdiv23 mp3an1 mpanl1 mpanr1 ) GBHIZC
      JKZGCHIZABLMCHIACLMBHINZFBJKZTUAUBOZUCEAJKUDTOUEUCDABCPQRS $.

    $( Less-than-or-equal-to and division relation.  (Lemma for computing upper
       bounds of products.  The "+ 1" prevents division by zero.)  (Contributed
       by NM, 17-Sep-2005.) $)
    ledivp1i $p |- ( ( 0 <_ A /\ 0 <_ C /\ A <_ ( B / ( C + 1 ) ) ) ->
                  ( A x. C ) <_ B ) $=
      ( cc0 cle wbr c1 co w3a cmul cr wcel wa mpan2 clt syl recni cdiv readdcli
      caddc 1re ltp1i ltleii lemul2a mp3an12 3ad2ant1 wi 0re lelttri wb gt0ne0i
      mpan wne redivclzi lemul1 mp3an1 ex mpani mpcom biimpd imp wceq divcan1zi
      3syl adantr breqtrd 3adant1 remulcli letri syl2anc ) GAHIZGCHIZABCJUCKZUA
      KZHIZLACMKZAVPMKZHIZVTBHIZVSBHIVNVOWAVRANOZVNWADCNOZVPNOZWCVNPZWAFCJFUDUB
      ZWDWEWFLCVPHIWACVPFWGCFUEZUFCVPAUGQUHUOUIVOVRWBVNVOVRPVTVQVPMKZBHVOVRVTWI
      HIZVOGVPRIZVRWJUJVOCVPRIWKWHGCVPUKFWGULQZWKVRWJVQNOZWKVRWJUMZWKVPGUPZWMVP
      WGUNZBVPEWGUQSWMWEWKWNWGWMWEWKPZWNWCWMWQWNDAVQVPURUSUTVAVBVCSVDVOWIBVEZVR
      VOWKWOWRWLWPBVPBETVPWGTVFVGVHVIVJVSVTBACDFVKAVPDWGVKEVLVM $.

    $( Less-than and division relation.  (Lemma for computing upper bounds of
       products.  The "+ 1" prevents division by zero.)  (Contributed by NM,
       17-Sep-2005.) $)
    ltdivp1i $p |- ( ( 0 <_ A /\ 0 <_ C /\ A < ( B / ( C + 1 ) ) ) ->
                  ( A x. C ) < B ) $=
      ( cc0 cle wbr c1 co clt w3a cmul cr wcel wa mpan2 lelttri syl caddc ltp1i
      cdiv 1re readdcli ltleii lemul2a mp3an12 mpan 3ad2ant1 wi 0re wne gt0ne0i
      wb redivclzi ltmul1 mp3an1 mpanr1 mpancom biimpd imp wceq recni divcan1zi
      3syl adantr breqtrd 3adant1 remulcli syl2anc ) GAHIZGCHIZABCJUAKZUCKZLIZM
      ACNKZAVNNKZHIZVRBLIZVQBLIVLVMVSVPAOPZVLVSDCOPZVNOPZWAVLQZVSFCJFUDUEZWBWCW
      DMCVNHIVSCVNFWECFUBZUFCVNAUGRUHUIUJVMVPVTVLVMVPQVRVOVNNKZBLVMVPVRWGLIZVMG
      VNLIZVPWHUKVMCVNLIWIWFGCVNULFWESRZWIVPWHVOOPZWIVPWHUOZWIVNGUMZWKVNWEUNZBV
      NEWEUPTWKWCWIWLWEWAWKWCWIQWLDAVOVNUQURUSUTVATVBVMWGBVCZVPVMWIWMWOWJWNBVNB
      EVDVNWEVDVEVFVGVHVIVQVRBACDFVJAVNDWEVJESVK $.

    ${
      ltdiv23i.4 $e |- 0 < B $.
      ltdiv23i.5 $e |- 0 < C $.
      $( Swap denominator with other side of 'less than'.  (Contributed by NM,
         26-Sep-1999.) $)
      ltdiv23ii $p |- ( ( A / B ) < C <-> ( A / C ) < B ) $=
        ( cc0 clt wbr cdiv co wb ltdiv23i mp2an ) IBJKICJKABLMCJKACLMBJKNGHABCD
        EFOP $.
    $}

    ${
      ltmul1i.4 $e |- 0 < C $.
      $( Multiplication of both sides of 'less than' by a positive number.
         Theorem I.19 of [Apostol] p. 20.  (Contributed by NM, 16-May-1999.)
         (Proof shortened by Paul Chapman, 25-Jan-2008.) $)
      ltmul1ii $p |- ( A < B <-> ( A x. C ) < ( B x. C ) ) $=
        ( cc0 clt wbr cmul co wb ltmul1i ax-mp ) HCIJABIJACKLBCKLIJMGABCDEFNO
        $.

      $( Division of both sides of 'less than' by a positive number.
         (Contributed by NM, 16-May-1999.) $)
      ltdiv1ii $p |- ( A < B <-> ( A / C ) < ( B / C ) ) $=
        ( cc0 clt wbr cdiv co wb ltdiv1i ax-mp ) HCIJABIJACKLBCKLIJMGABCDEFNO
        $.
    $}
  $}

  ${
    ltp1d.1 $e |- ( ph -> A e. RR ) $.
    $( A number is less than itself plus 1.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    ltp1d $p |- ( ph -> A < ( A + 1 ) ) $=
      ( cr wcel c1 caddc co clt wbr ltp1 syl ) ABDEBBFGHIJCBKL $.

    $( A number is less than or equal to itself plus 1.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    lep1d $p |- ( ph -> A <_ ( A + 1 ) ) $=
      ( cr wcel c1 caddc co cle wbr lep1 syl ) ABDEBBFGHIJCBKL $.

    $( A number minus 1 is less than itself.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    ltm1d $p |- ( ph -> ( A - 1 ) < A ) $=
      ( cr wcel c1 cmin co clt wbr ltm1 syl ) ABDEBFGHBIJCBKL $.

    $( A number minus 1 is less than or equal to itself.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    lem1d $p |- ( ph -> ( A - 1 ) <_ A ) $=
      ( cr wcel c1 cmin co cle wbr lem1 syl ) ABDEBFGHBIJCBKL $.

    ${
      recgt0d.2 $e |- ( ph -> 0 < A ) $.
      $( The reciprocal of a positive number is positive.  Exercise 4 of
         [Apostol] p. 21.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      recgt0d $p |- ( ph -> 0 < ( 1 / A ) ) $=
        ( cr wcel cc0 clt wbr c1 cdiv co recgt0 syl2anc ) ABEFGBHIGJBKLHICDBMN
        $.
    $}

    divgt0d.2 $e |- ( ph -> B e. RR ) $.
    ${
      divgt0d.3 $e |- ( ph -> 0 < A ) $.
      divgt0d.4 $e |- ( ph -> 0 < B ) $.
      $( The ratio of two positive numbers is positive.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      divgt0d $p |- ( ph -> 0 < ( A / B ) ) $=
        ( cr wcel cc0 clt wbr cdiv co divgt0 syl22anc ) ABHIJBKLCHIJCKLJBCMNKLD
        FEGBCOP $.
    $}

    ${
      mulgt1d.3 $e |- ( ph -> 1 < A ) $.
      mulgt1d.4 $e |- ( ph -> 1 < B ) $.
      $( The product of two numbers greater than 1 is greater than 1.
         (Contributed by Mario Carneiro, 28-May-2016.) $)
      mulgt1d $p |- ( ph -> 1 < ( A x. B ) ) $=
        ( cr wcel c1 clt wbr cmul co mulgt1 syl22anc ) ABHICHIJBKLJCKLJBCMNKLDE
        FGBCOP $.
    $}

    ${
      lemulge11d.3 $e |- ( ph -> 0 <_ A ) $.
      lemulge11d.4 $e |- ( ph -> 1 <_ B ) $.
      $( Multiplication by a number greater than or equal to 1.  (Contributed
         by Mario Carneiro, 28-May-2016.) $)
      lemulge11d $p |- ( ph -> A <_ ( A x. B ) ) $=
        ( cr wcel cc0 cle wbr c1 cmul co lemulge11 syl22anc ) ABHICHIJBKLMCKLBB
        CNOKLDEFGBCPQ $.

      $( Multiplication by a number greater than or equal to 1.  (Contributed
         by Mario Carneiro, 28-May-2016.) $)
      lemulge12d $p |- ( ph -> A <_ ( B x. A ) ) $=
        ( cr wcel cc0 cle wbr c1 cmul co lemulge12 syl22anc ) ABHICHIJBKLMCKLBC
        BNOKLDEFGBCPQ $.
    $}

    lemul1ad.3 $e |- ( ph -> C e. RR ) $.
    ${
      lemul1ad.4 $e |- ( ph -> 0 <_ C ) $.
      lemul1ad.5 $e |- ( ph -> A <_ B ) $.
      $( Multiplication of both sides of 'less than or equal to' by a
         nonnegative number.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      lemul1ad $p |- ( ph -> ( A x. C ) <_ ( B x. C ) ) $=
        ( cr wcel cc0 cle wbr wa cmul co jca lemul1a syl31anc ) ABJKCJKDJKZLDMN
        ZOBCMNBDPQCDPQMNEFAUAUBGHRIBCDST $.

      $( Multiplication of both sides of 'less than or equal to' by a
         nonnegative number.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      lemul2ad $p |- ( ph -> ( C x. A ) <_ ( C x. B ) ) $=
        ( cr wcel cc0 cle wbr wa cmul co jca lemul2a syl31anc ) ABJKCJKDJKZLDMN
        ZOBCMNDBPQDCPQMNEFAUAUBGHRIBCDST $.
    $}

    ltmul12ad.3 $e |- ( ph -> D e. RR ) $.
    ${
      ltmul12ad.4 $e |- ( ph -> 0 <_ A ) $.
      ltmul12ad.5 $e |- ( ph -> A < B ) $.
      ltmul12ad.6 $e |- ( ph -> 0 <_ C ) $.
      ltmul12ad.7 $e |- ( ph -> C < D ) $.
      $( Comparison of product of two positive numbers.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      ltmul12ad $p |- ( ph -> ( A x. C ) < ( B x. D ) ) $=
        ( cr wcel wa cc0 wbr clt jca cle cmul co ltmul12a syl22anc ) ABNOZCNOZP
        QBUARZBCSRZPDNOZENOZPQDUARZDESRZPBDUBUCCEUBUCSRAUFUGFGTAUHUIJKTAUJUKHIT
        AULUMLMTBCDEUDUE $.
    $}

    ${
      lemul12ad.4 $e |- ( ph -> 0 <_ A ) $.
      lemul12ad.5 $e |- ( ph -> 0 <_ C ) $.
      lemul12ad.6 $e |- ( ph -> A <_ B ) $.
      lemul12ad.7 $e |- ( ph -> C <_ D ) $.
      $( Comparison of product of two nonnegative numbers.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      lemul12ad $p |- ( ph -> ( A x. C ) <_ ( B x. D ) ) $=
        ( cle wbr cmul co cr wcel wa cc0 wi jca lemul12a syl22anc mp2and ) ABCN
        OZDENOZBDPQCEPQNOZLMABRSZUABNOZTCRSDRSZUADNOZTERSUGUHTUIUBAUJUKFJUCGAUL
        UMHKUCIBCDEUDUEUF $.
    $}

    ${
      lemul12bd.4 $e |- ( ph -> 0 <_ A ) $.
      lemul12bd.5 $e |- ( ph -> 0 <_ D ) $.
      lemul12bd.6 $e |- ( ph -> A <_ B ) $.
      lemul12bd.7 $e |- ( ph -> C <_ D ) $.
      $( Comparison of product of two nonnegative numbers.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      lemul12bd $p |- ( ph -> ( A x. C ) <_ ( B x. D ) ) $=
        ( cle wbr cmul co cr wcel wa cc0 wi jca lemul12b syl22anc mp2and ) ABCN
        OZDENOZBDPQCEPQNOZLMABRSZUABNOZTCRSDRSERSZUAENOZTUGUHTUIUBAUJUKFJUCGHAU
        LUMIKUCBCDEUDUEUF $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Completeness Axiom and Suprema
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x y $.
    $( A finite set of real numbers has a maximum.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    fimaxre $p |- ( ( A C_ RR /\ A e. Fin /\ A =/= (/) )
                                            -> E. x e. A A. y e. A y <_ x ) $=
      ( cr wss cfn wcel c0 wne cv clt wbr wi wral wrex wor wa ssel weq wo leloe
      w3a cle ltso mpi fimaxg syl3an1 anim12d imp wb ancoms equcom orbi2i orcom
      soss neor 3bitri syl6bb biimprd syl anassrs ralimdva reximdva 3ad2ant1
      mpd ) CDEZCFGZCHIZUBAJZBJZIVJVIKLZMZBCNZACOZVJVIUCLZBCNZACOZVFCKPZVGVHVNV
      FDKPVRUDCDKUOUEABCKUFUGVFVGVNVQMVHVFVMVPACVFVICGZQVLVOBCVFVSVJCGZVLVOMZVF
      VSVTQZQVIDGZVJDGZQZWAVFWBWEVFVSWCVTWDCDVIRCDVJRUHUIWEVOVLWEVOVKBASZTZVLWD
      WCVOWGUJVJVIUAUKWGVKABSZTWHVKTVLWFWHVKBAULUMVKWHUNVKVIVJUPUQURUSUTVAVBVCV
      DVE $.
  $}

  ${
    $d A x y $.
    $( A nonempty finite set of real numbers has an upper bound.  (Contributed
       by Jeff Madsen, 27-May-2011.)  (Revised by Mario Carneiro,
       13-Feb-2014.) $)
    fimaxre2 $p |- ( ( A C_ RR /\ A e. Fin ) ->
                     E. x e. RR A. y e. A y <_ x ) $=
      ( cr wss cfn wcel wa cv cle wbr wral wrex c0 wceq wi cc0 0re rzal breq2
      ralbidv rspcev sylancr a1i fimaxre 3expia ssrexv adantr syld pm2.61dne
      wne ) CDEZCFGZHZBIZAIZJKZBCLZADMZCNCNOZUSPUNUTQDGUOQJKZBCLZUSRVABCSURVBAQ
      DUPQOUQVABCUPQUOJTUAUBUCUDUNCNUKZURACMZUSULUMVCVDABCUEUFULVDUSPUMURACDUGU
      HUIUJ $.
  $}

  ${
    $d w x y z A $.  $d w x z B $.
    $( A nonempty finite set of real numbers has a maximum (image set version).
       (Contributed by Mario Carneiro, 13-Feb-2014.) $)
    fimaxre3 $p |- ( ( A e. Fin /\ A. y e. A B e. RR )
                                      -> E. x e. RR A. y e. A B <_ x ) $=
      ( vw vz cfn wcel cr wral wa cv cle wbr wceq wrex syl wb wi wal cab r19.29
      eleq1 biimparc rexlimivw ex abssdv abrexfi fimaxre2 syl2anr r19.23v albii
      wss ralcom4 eqeq1 rexbidv ralab 3bitr4i breq1 ceqsalg ralimi ralbi adantl
      nfv syl5bbr mpbid ) CGHZDIHZBCJZKELZALZMNZEFLZDOZBCPZFUAZJZAIPZDVKMNZBCJZ
      AIPZVIVPIUMVPGHVRVGVIVOFIVIVOVMIHZVIVOKVHVNKZBCPWBVHVNBCUBWCWBBCVNWBVHVMD
      IUCUDUEQUFUGBFCDUHAEVPUIUJVIVRWARVGVIVQVTAIVQVJDOZVLSZETZBCJZVIVTWEBCJZET
      WDBCPZVLSZETWGVQWHWJEWDVLBCUKULWEBECUNVOWIVLEFVMVJOVNWDBCVMVJDUOUPUQURVIW
      FVSRZBCJWGVTRVHWKBCVLVSEDIVSEVDVJDVKMUSUTVAWFVSBCVBQVEUPVCVF $.
  $}

  ${
    $d A a n x $.
    $( The negation of a finite set of real numbers is finite.  (Contributed by
       AV, 9-Aug-2020.) $)
    negfi $p |- ( ( A C_ RR /\ A e. Fin )
                  -> { n e. RR | -u n e. A } e. Fin ) $=
      ( va vx cr cfn wcel cv cneg crab wceq imp syl eqcomd eleq1d wb cvv cab wa
      adantl wss cmpt crn cdm wral ssel renegcl syl6 ralrimiva dmmptg fundmfibi
      wfun funmpt mp1i bitr4d reex ssex mptexg wf1o eqid negf1o f1of1 f1vrnfibi
      wf1 syl2anc wrex wi recn negnegd biimpcd jca mpdan eleq1 negeq syl5ibrcom
      anbi12d rexlimdva simprr eqeq2d cc negneg ad2antrl rspcedvd impbid abbidv
      ex rnmpt df-rab 3eqtr4g 3bitrd biimpa ) AEUAZAFGZBHZIZAGZBEJZFGZWLWMCACHZ
      IZUBZFGZXAUCZFGZWRWLWMXAUDZFGZXBWLAXEFWLXEAWLWTEGZCAUEXEAKWLXGCAWLWSAGZXG
      WLXHWSEGZXGAEWSUFZWSUGZUHLUICAWTEUJMNOXAULXBXFPWLCAWTUMXAUKUNUOWLXAQGZADH
      IAGDEJZXAVDZXBXDPWLAQGXLAEUPUQCAWTQURMWLAXMXAUSXNCADXAXAUTZVAAXMXAVBMAXMX
      AQVCVEWLXCWQFWLWNWTKZCAVFZBRWNEGZWPSZBRXCWQWLXQXSBWLXQXSWLXPXSCAWLXHSZXSX
      PXGWTIZAGZSZXTXIYCWLXHXIXJLXTXISXGYBXIXGXTXKTXTXIYBXHXIYBVGWLXIXHYBXIWSYA
      AXIYAWSXIWSWSVHVINOVJTLVKVLXPXRXGWPYBWNWTEVMXPWOYAAWNWTVNOVPVOVQWLXSXQWLX
      SSZXPWNWOIZKZCWOAWLXRWPVRWSWOKZXPYFPYDYGWTYEWNWSWOVNVSTXRYFWLWPXRWNVTGZYF
      WNVHYHYEWNWNWANMWBWCWFWDWECBAWTXAXOWGWPBEWHWIOWJWK $.
  $}

  ${
    $d A m n r x y $.
    $( A nonempty finite set of real numbers has a minimum.  Analogous to
       ~ fimaxre .  (Contributed by AV, 9-Aug-2020.) $)
    fiminre $p |- ( ( A C_ RR /\ A e. Fin /\ A =/= (/) )
                                            -> E. x e. A A. y e. A x <_ y ) $=
      ( vm vn vr cr wss cfn wcel c0 cv cle wbr cneg wral wi wa adantl imp negfi
      wne w3a crab wrex ssrab2 a1i 3adant3 negn0 3adant2 fimaxre syl3anc eleq1d
      weq negeq elrab simpllr wceq breq1 ralbidv ssel renegcl syl6 recn negnegd
      wb cc simpr eqeltrd sylanbrc rspcv syl simplll lenegcon1 syl2anc impancom
      sylibd ralrimiv rspcedvd ex sylbi impcom rexlimdva 3ad2ant1 mpd ) CGHZCIJ
      ZCKUBZUCZDLZELZMNZDFLZOZCJZFGUDZPZEWPUEZALZBLZMNZBCPZACUEZWIWPGHZWPIJZWPK
      UBZWRXDWIWOFGUFUGWFWGXEWHCFUAUHWFWHXFWGFCUIUJEDWPUKULWFWGWRXCQWHWFWQXCEWP
      WKWPJZWFWQXCQZXGWKGJZWKOZCJZRZWFXHQWOXKFWKGFEUNWNXJCWMWKUOUMUPXLWFXHXLWFR
      ZWQXCXMWQRZXBXJWTMNZBCPZAXJCXIXKWFWQUQWSXJURZXBXPVFXNXQXAXOBCWSXJWTMUSUTS
      XNXOBCXMWTCJZWQXOXMXRRZWQWTOZWKMNZXOXSXTWPJZWQYAQXSXTGJZXTOZCJZYBXMXRYCWF
      XRYCQXLWFXRWTGJZYCCGWTVAZWTVBVCSTXSYDWTCXSWTXMXRWTVGJZXMXRYFYHWFXRYFQXLYG
      SZWTVDVCTVEXMXRVHVIWOYEFXTGWMXTURWNYDCWMXTUOUMUPVJWLYADXTWPWJXTWKMUSVKVLX
      SYFXIYAXOVFXMXRYFYITXIXKWFXRVMWTWKVNVOVQVPVRVSVTVTWAWBWCWDWE $.
  $}

  ${
    $d w x y S $.  $d w y A $.
    $( If a set of reals contains a lower bound, it contains a unique lower
       bound.  (Contributed by NM, 9-Oct-2005.) $)
    lbreu $p |- ( ( S C_ RR /\ E. x e. S A. y e. S x <_ y ) ->
                E! x e. S A. y e. S x <_ y ) $=
      ( vw cr wss cv cle wbr wral wrex wa weq wi wreu wcel breq2 im2anan9r ssel
      rspcv anim12d impcom letri3 syl exbiri com23 syld ralrimivv anim2i ancoms
      wb com3r breq1 ralbidv reu4 sylibr ) CEFZAGZBGZHIZBCJZACKZLVBVADGZUSHIZBC
      JZLZADMZNZDCJACJZLZVAACOVBUQVJUQVIVBUQVHADCCURCPZVCCPZLZVFUQVGVMVFURVCHIZ
      VCURHIZLZUQVGNVLVAVNVKVEVOUTVNBVCCUSVCURHQTVDVOBURCUSURVCHQTRVMUQVPVGVMUQ
      VGVPVMUQLUREPZVCEPZLZVGVPUKUQVMVSUQVKVQVLVRCEURSCEVCSUAUBURVCUCUDUEUFUGUL
      UHUIUJVAVEADCVGUTVDBCURVCUSHUMUNUOUP $.

    $( If a set of reals contains a lower bound, it contains a unique lower
       bound that belongs to the set.  (Contributed by NM, 9-Oct-2005.)
       (Revised by Mario Carneiro, 24-Dec-2016.) $)
    lbcl $p |- ( ( S C_ RR /\ E. x e. S A. y e. S x <_ y ) ->
                ( iota_ x e. S A. y e. S x <_ y ) e. S ) $=
      ( cr wss cv cle wbr wral wrex wa wreu crio wcel lbreu riotacl syl ) CDEAF
      BFGHBCIZACJKRACLRACMCNABCORACPQ $.

    $( If a set of reals contains a lower bound, the lower bound is less than
       or equal to all members of the set.  (Contributed by NM, 9-Oct-2005.)
       (Proof shortened by Mario Carneiro, 24-Dec-2016.) $)
    lble $p |- ( ( S C_ RR /\ E. x e. S A. y e. S x <_ y /\ A e. S ) ->
                ( iota_ x e. S A. y e. S x <_ y ) <_ A ) $=
      ( cr wss cv cle wbr wral wrex wcel crio wa wreu lbreu nfcv nfriota1 nfral
      nfbr eqid wceq nfra1 nfriota nfeq2 breq1 ralbid riotaprop syl simprd rspc
      breq2 mpan9 3impa ) DEFZAGZBGZHIZBDJZADKZCDLZUSADMZCHIZUOUTNZVBUQHIZBDJZV
      AVCVDVBDLZVFVDUSADOVGVFNABDPUSVFADVBVEABDADQAVBUQHUSADRAHQAUQQTSVBUAUPVBU
      BURVEBDBUPVBUSBADURBDUCBDQUDZUEUPVBUQHUFUGUHUIUJVEVCBCDBVBCHVHBHQBCQTUQCV
      BHULUKUMUN $.
  $}

  ${
    $d S x y z $.
    $( If a set of reals contains a lower bound, the lower bound is its
       infimum.  (Contributed by NM, 9-Oct-2005.)  (Revised by AV,
       4-Sep-2020.) $)
    lbinf $p |- ( ( S C_ RR /\ E. x e. S A. y e. S x <_ y ) ->
                    inf ( S , RR , < ) = ( iota_ x e. S A. y e. S x <_ y ) ) $=
      ( vz cr wss cv cle wbr wral wrex crio clt wor ltso a1i wcel lbcl adantr
      wa wi ssel mpd ssel2 adantlr lble 3expa lensymd infmin ) CEFZAGBGHIBCJZAC
      KZTZDECUKACLZMEMNUMOPUMUNCQZUNEQZABCRZUJUOUPUAULCEUNUBSUCZUQUMDGZCQZTUNUS
      UMUPUTURSUJUTUSEQULCEUSUDUEUJULUTUNUSHIABUSCUFUGUHUI $.

    $( If a set of reals contains a lower bound, it contains its infimum.
       (Contributed by NM, 11-Oct-2005.)  (Revised by AV, 4-Sep-2020.) $)
    lbinfcl $p |- ( ( S C_ RR /\ E. x e. S A. y e. S x <_ y )
                         -> inf ( S , RR , < ) e. S ) $=
      ( cr wss cv cle wbr wral wrex wa clt cinf crio lbinf lbcl eqeltrd ) CDEAF
      BFGHBCIZACJKCDLMRACNCABCOABCPQ $.

    $d A y $.
    $( If a set of reals contains a lower bound, its infimum is less than or
       equal to all members of the set.  (Contributed by NM, 11-Oct-2005.)
       (Revised by AV, 4-Sep-2020.) $)
    lbinfle $p |- ( ( S C_ RR /\ E. x e. S A. y e. S x <_ y /\ A e. S )
                         -> inf ( S , RR , < ) <_ A ) $=
      ( cr wss cle wbr wral wrex wcel w3a clt cinf crio wceq lbinf 3adant3 lble
      cv eqbrtrd ) DEFZATBTGHBDIZADJZCDKZLDEMNZUCADOZCGUBUDUFUGPUEABDQRABCDSUA
      $.
  $}

  ${
    $d x y z w v u t A $.
    $( A nonempty, bounded-above set of reals has a supremum.  Stronger version
       of completeness axiom (it has a slightly weaker antecedent).
       (Contributed by NM, 19-Jan-1997.) $)
    sup2 $p |- ( ( A C_ RR /\ A =/= (/) /\
                  E. x e. RR A. y e. A ( y < x \/ y = x ) ) ->
               E. x e. RR ( A. y e. A -. x < y /\
                  A. y e. RR ( y < x -> E. z e. A y < z ) ) ) $=
      ( cr cv clt wbr wceq wral wrex w3a wi wa wcel wex c1 caddc adantr imp wss
      c0 wne wo wn peano2re a1i ssel ltp1 ancli lttr 3expb sylan2 sylan2i exp4b
      co com34 pm2.43d breq1 syl5ibrcom adantl jaod syl6 com23 ralimdv2 expimpd
      ex a2d jcad ovex eleq1 breq2 ralbidv anbi12d exlimdv cbvexv syl6ib df-rex
      spcev 3imtr4g imdistani df-3an 3imtr4i axsup syl ) DEUAZDUBUCZBFZAFZGHZWH
      WIIZUDZBDJZAEKZLZWFWGWJBDJZAEKZLZWIWHGHUEBDJWJWHCFZGHZCDKMBEJNAEKWFWGNZWN
      NXAWQNWOWRXAWNWQWFWNWQMWGWFWIEOZWMNZAPZXBWPNZAPZWNWQWFXDWSEOZWTBDJZNZCPZX
      FWFXCXJAWFXCWIQRUPZEOZWHXKGHZBDJZNZXJWFXCXLXNXCXLMWFXBXLWMWIUFZSUGWFXBWMX
      NWFXBNZWLXMBDDXQWHDOZWLXMWFXBXRWLXMMZMWFXRXBXSWFXRWHEOZXBXSMDEWHUHXTXBXSX
      TXBNZWJXMWKXTXBWJXMMZXTXBYBXTXBWJXBXMXTXBWJXBXMXBYAWJWIXKGHZXMWIUIZXBXTXB
      XLNWJYCNXMMZXBXLXPUJXTXBXLYEWHWIXKUKULUMUNUOUQURTXBWKXMMXTXBXMWKYCYDWHWIX
      KGUSUTVAVBVGVCVDTVHVEVFVIXIXOCXKWIQRVJWSXKIZXGXLXHXNWSXKEVKYFWTXMBDWSXKWH
      GVLVMVNVSVCVOXIXECAWSWIIZXGXBXHWPWSWIEVKYGWTWJBDWSWIWHGVLVMVNVPVQWMAEVRWP
      AEVRVTSWAWFWGWNWBWFWGWQWBWCABCDWDWE $.

    $( A version of the completeness axiom for reals.  (Contributed by NM,
       12-Oct-2004.) $)
    sup3 $p |- ( ( A C_ RR /\ A =/= (/) /\ E. x e. RR A. y e. A y <_ x ) ->
                  E. x e. RR ( A. y e. A -. x < y /\
                  A. y e. RR ( y < x -> E. z e. A y < z ) ) ) $=
      ( cr wss c0 wne cv cle wbr wral wrex w3a clt weq wo wa wcel 3anass expcom
      wn wi ssel leloe syl9 imp31 ralbidva rexbidva anbi2d pm5.32i 3bitr4i sup2
      wb sylbi ) DEFZDGHZBIZAIZJKZBDLZAEMZNZUPUQURUSOKZBAPQZBDLZAEMZNZUSUROKUBB
      DLVDURCIOKCDMUCBELRAEMUPUQVBRZRUPUQVGRZRVCVHUPVIVJUPVBVGUQUPVAVFAEUPUSESZ
      RUTVEBDUPVKURDSZUTVEUNZUPVLURESZVKVMDEURUDVNVKVMURUSUEUAUFUGUHUIUJUKUPUQV
      BTUPUQVGTULABCDUMUO $.

    $( Lemma for ~ infm3 .  (Contributed by NM, 14-Jun-2005.) $)
    infm3lem $p |- ( x e. RR -> E. y e. RR x = -u y ) $=
      ( cv wcel cneg wceq wrex renegcl recn negnegd eqcomd negeq eqeq2d syl2anc
      cr rspcev ) ACZODZQEZODQSEZFZQBCZEZFZBOGQHRTQRQQIJKUDUABSOUBSFUCTQUBSLMPN
      $.

    $( The completeness axiom for reals in terms of infimum: a nonempty,
       bounded-below set of reals has an infimum.  (This theorem is the dual of
       ~ sup3 .)  (Contributed by NM, 14-Jun-2005.) $)
    infm3 $p |- ( ( A C_ RR /\ A =/= (/) /\ E. x e. RR A. y e. A x <_ y ) ->
                  E. x e. RR ( A. y e. A -. y < x /\
                  A. y e. RR ( x < y -> E. z e. A z < y ) ) ) $=
      ( vu vv vw vt cr cv cle wbr wral wrex clt wi wa wcel wal df-ral wss c0 wn
      wne cneg crab wex ssel pm4.71rd exbidv df-rex renegcl eleq1 rexxfr bitr3i
      infm3lem syl6bb n0 rabn0 3bitr4g imbi1d impexp albidv wceq imbi12d ralxfr
      breq2 rexbidv breq1 imbi2d negeq eleq1d elrab imbi1i bitri albii 3bitr4ri
      ralbidv wb leneg ancoms syl5bbr rexbiia bitr4i anbi12d ssrab2 sup3 mp3an1
      ralbidva syl6bi notbid adantrd syl5bb ltneg rexrab anbi2d rexbidva adantl
      sylibrd 3impib ) DIUAZDUBUDZAJZBJZKLZBDMZAINZXDXCOLZUCZBDMZXCXDOLZCJZXDOL
      ZCDNZPZBIMZQZAINZXAXBXGQZEJZFJZOLZUCZFGJZUEZDRZGIUFZMZYAXTOLZYAHJZOLZHYGN
      ZPZFIMZQZEINZXRXAXSYGUBUDZYAXTKLZFYGMZEINZQYPXAXBYQXGYTXAYADRZFUGZYFGINZX
      BYQXAUUBYAIRZUUAQZFUGZUUCXAUUAUUEFXAUUAUUDDIYAUHUIUJUUFUUAFINUUCUUAFIUKUU
      AYFFGYEIIYDULFGUPYAYEDUMUNUOUQFDURYFGIUSUTXAXGYAUEZDRZXCUUGKLZPZFIMZAINZY
      TXAXFUUKAIXAXDDRZXEPZBSXDIRZUUNPZBSZXFUUKXAUUNUUPBXAUUNUUOUUMQZXEPUUPXAUU
      MUURXEXAUUMUUODIXDUHUIZVAUUOUUMXEVBUQVCXEBDTUUKUUNBIMUUQUUNUUJBFUUGIIYAUL
      ZBFUPZXDUUGVDZUUMUUHXEUUIXDUUGDUMZXDUUGXCKVGVEVFUUNBITUOUTVHUULUUHXTUEZUU
      GKLZPZFIMZEINYTUUKUVGAEUVDIIXTULZAEUPZXCUVDVDZUUJUVFFIUVJUUIUVEUUHXCUVDUU
      GKVIVJVRUNYSUVGEIYSUUHYRPZFIMZXTIRZUVGYAYGRZYRPZFSUUDUVKPZFSYSUVLUVOUVPFU
      VOUUDUUHQZYRPUVPUVNUVQYRYFUUHGYAIYDYAVDYEUUGDYDYAVKVLVMZVNUUDUUHYRVBVOVPY
      RFYGTUVKFITVQUVMUVKUVFFIUVMUUDQZYRUVEUUHUUDUVMYRUVEVSYAXTVTWAVJWIWBWCWDUQ
      WEYGIUAYQYTYPYFGIWFEFHYGWGWHWJXAXRUUHUUGXCOLZUCZPZFIMZXCUUGOLZYJUEZDRZUWE
      UUGOLZQZHINZPZFIMZQZAINZYPXAXQUWLAIXAXJUWCXPUWKXAUUMXIPZBSUUOUWNPZBSZXJUW
      CXAUWNUWOBXAUWNUURXIPUWOXAUUMUURXIUUSVAUUOUUMXIVBUQVCXIBDTUWCUWNBIMUWPUWN
      UWBBFUUGIIUUTUVAUVBUUMUUHXIUWAUVCUVBXHUVTXDUUGXCOVIWKVEVFUWNBITUOUTXPUWDX
      LUUGOLZCDNZPZFIMXAUWKXOUWSBFUUGIIUUTUVAUVBXKUWDXNUWRXDUUGXCOVGUVBXMUWQCDX
      DUUGXLOVGVHVEVFXAUWSUWJFIXAUWRUWIUWDXAXLDRZUWQQZCUGXLIRZUXAQZCUGZUWRUWIXA
      UXAUXCCXAUXAUXBXAUWTUXBUWQDIXLUHWLUIUJUWQCDUKUWIUXACINUXDUXAUWHCHUWEIIYJU
      LCHUPXLUWEVDUWTUWFUWQUWGXLUWEDUMXLUWEUUGOVIWEUNUXACIUKUOUTVJVRWMWEVHUWMUU
      HUUGUVDOLZUCZPZFIMZUVDUUGOLZUWIPZFIMZQZEINYPUWLUXLAEUVDIIUVHUVIUVJUWCUXHU
      WKUXKUVJUWBUXGFIUVJUWAUXFUUHUVJUVTUXEXCUVDUUGOVGWKVJVRUVJUWJUXJFIUVJUWDUX
      IUWIXCUVDUUGOVIVAVRWEUNYOUXLEIUVMYHUXHYNUXKYHUUHYCPZFIMZUVMUXHUVNYCPZFSUU
      DUXMPZFSYHUXNUXOUXPFUXOUVQYCPUXPUVNUVQYCUVRVNUUDUUHYCVBVOVPYCFYGTUXMFITVQ
      UVMUXMUXGFIUVSYCUXFUUHUVSYBUXEXTYAWNWKVJWIWBUVMYMUXJFIUVSYIUXIYLUWIUUDUVM
      YIUXIVSYAXTWNWAUUDYLUWIVSUVMYLUWFYKQZHINUUDUWIYFUWFYKHGIYDYJVDYEUWEDYDYJV
      KVLWOUUDUXQUWHHIUUDYJIRQYKUWGUWFYAYJWNWPWQWMWRVEWIWEWCWDUQWSWT $.

    $( Closure of supremum of a nonempty bounded set of reals.  (Contributed by
       NM, 12-Oct-2004.) $)
    suprcl $p |- ( ( A C_ RR /\ A =/= (/) /\ E. x e. RR A. y e. A y <_ x ) ->
                  sup ( A , RR , < ) e. RR ) $=
      ( vz cr wss c0 wne cv cle wbr wral wrex w3a clt wor ltso a1i sup3 supcl )
      CEFCGHBIAIJKBCLAEMNZABDECOEOPUAQRABDCST $.

    $( A member of a nonempty bounded set of reals is less than or equal to the
       set's upper bound.  (Contributed by NM, 12-Oct-2004.) $)
    suprub $p |- ( ( ( A C_ RR /\ A =/= (/) /\ E. x e. RR A. y e. A y <_ x )
                 /\ B e. A ) -> B <_ sup ( A , RR , < ) ) $=
      ( vz cr wss c0 wne cv cle wbr wral wrex w3a wcel wa clt csup wn ltso sup3
      wor a1i supub imp simp1 sselda suprcl adantr lenltd mpbird ) CFGZCHIZBJAJ
      KLBCMAFNZOZDCPZQZDCFRSZKLUSDRLTZUPUQUTUPABEFCDRFRUCUPUAUDABECUBUEUFURDUSU
      PCFDUMUNUOUGUHUPUSFPUQABCUIUJUKUL $.
  $}

  ${
    $d A x y $.
    suprubd.1 $e |- ( ph -> A C_ RR ) $.
    suprubd.2 $e |- ( ph -> A =/= (/) ) $.
    suprubd.3 $e |- ( ph -> E. x e. RR A. y e. A y <_ x ) $.
    suprubd.4 $e |- ( ph -> B e. A ) $.
    $( Natural deduction form of ~ suprubd .  (Contributed by Stanislas Polu,
       9-Mar-2020.) $)
    suprubd $p |- ( ph -> B <_ sup ( A , RR , < ) ) $=
      ( cr wss c0 wne cv cle wbr wral wrex wcel clt csup suprub syl31anc ) ADJK
      DLMCNBNOPCDQBJREDSEDJTUAOPFGHIBCDEUBUC $.
  $}

  ${
    $d A x y $.
    suprcld.2 $e |- ( ph -> A C_ RR ) $.
    suprcld.1 $e |- ( ph -> A =/= (/) ) $.
    suprcld.4 $e |- ( ph -> E. x e. RR A. y e. A y <_ x ) $.
    $( Natural deduction form of ~ suprcl .  (Contributed by Stanislas Polu,
       9-Mar-2020.) $)
    suprcld $p |- ( ph -> sup ( A , RR , < ) e. RR ) $=
      ( cr wss c0 wne cv cle wbr wral wrex clt csup wcel suprcl syl3anc ) ADHID
      JKCLBLMNCDOBHPDHQRHSEFGBCDTUA $.
  $}

  ${
    $d A w x y $.  $d A w z $.  $d B w z $.
    $( The supremum of a nonempty bounded set of reals is the least upper
       bound.  (Contributed by NM, 15-Nov-2004.)  (Revised by Mario Carneiro,
       6-Sep-2014.) $)
    suprlub $p |- ( ( ( A C_ RR /\ A =/= (/) /\
                      E. x e. RR A. y e. A y <_ x ) /\ B e. RR ) ->
                    ( B < sup ( A , RR , < ) <-> E. z e. A B < z ) ) $=
      ( vw cr wss c0 wne cv cle wbr wral wrex w3a wcel wa clt csup wor ltso a1i
      sup3 simp1 suplub2 breq2 cbvrexv syl6bb ) DGHZDIJZBKAKLMBDNAGOZPZEGQREDGS
      TSMEFKZSMZFDOECKZSMZCDOUMABFGDESGSUAUMUBUCABFDUDUJUKULUEUFUOUQFCDUNUPESUG
      UHUI $.

    $( An upper bound is not less than the supremum of a nonempty bounded set
       of reals.  (Contributed by NM, 15-Nov-2004.)  (Revised by Mario
       Carneiro, 6-Sep-2014.) $)
    suprnub $p |- ( ( ( A C_ RR /\ A =/= (/) /\
                      E. x e. RR A. y e. A y <_ x ) /\ B e. RR ) ->
                    ( -. B < sup ( A , RR , < ) <-> A. z e. A -. B < z ) ) $=
      ( cr wss c0 wne cv cle wbr wral wrex w3a wcel wa clt csup wn suprlub
      notbid ralnex syl6bbr ) DFGDHIBJAJKLBDMAFNOEFPQZEDFRSRLZTECJRLZCDNZTUGTCD
      MUEUFUHABCDEUAUBUGCDUCUD $.

    $( The supremum of a nonempty bounded set of reals is less than or equal to
       an upper bound.  (Contributed by NM, 18-Mar-2005.)  (Revised by Mario
       Carneiro, 6-Sep-2014.) $)
    suprleub $p |- ( ( ( A C_ RR /\ A =/= (/) /\
                       E. x e. RR A. y e. A y <_ x ) /\ B e. RR ) ->
                  ( sup ( A , RR , < ) <_ B <-> A. z e. A z <_ B ) ) $=
      ( vw cr wss c0 wne cv cle wbr wral wrex w3a wcel wa clt wn suprnub suprcl
      wb lenlt sylan simpl1 sselda simplr lenltd ralbidva 3bitr4d breq1 cbvralv
      csup syl6bb ) DGHZDIJZBKAKLMBDNAGOZPZEGQZRZDGSUNZELMZFKZELMZFDNZCKZELMZCD
      NVAEVBSMTZEVDSMTZFDNVCVFABFDEUAUSVBGQUTVCVIUCABDUBVBEUDUEVAVEVJFDVAVDDQZR
      VDEVADGVDUPUQURUTUFUGUSUTVKUHUIUJUKVEVHFCDVDVGELULUMUO $.
  $}

  ${
    $d x y z b v w a A $.  $d x y z b v w a B $.  $d x w a C $.
    $d z b v w a ph $.
    supadd.a1 $e |- ( ph -> A C_ RR ) $.
    supadd.a2 $e |- ( ph -> A =/= (/) ) $.
    supadd.a3 $e |- ( ph -> E. x e. RR A. y e. A y <_ x ) $.
    ${
      supaddc.b $e |- ( ph -> B e. RR ) $.
      supaddc.c $e |- C = { z | E. v e. A z = ( v + B ) } $.
      $( The supremum function distributes over addition in a sense similar to
         that in ~ supmul1 .  (Contributed by Brendan Leahy, 25-Sep-2017.) $)
      supaddc $p |- ( ph -> ( sup ( A , RR , < ) + B ) =
          sup ( C , RR , < ) ) $=
        ( vw va cr cle wbr wcel wrex clt csup caddc co wceq wn cv vex weq oveq1
        wral eqeq2d cbvrexv eqeq1 rexbidv syl5bb elab2 wa sselda wss wne suprcl
        c0 syl3anc adantr 3jca suprub sylan leadd1dd breq1 syl5ibrcom rexlimdva
        w3a syl5bi ralrimiv wb readdcld eleq1a syl ssrdv wex ovex isseti r19.2z
        wi rgenw sylancl exbii n0 rexcom4 3bitr4i sylibr ralbidv rspcev syl2anc
        breq2 suprleub syl31anc mpbird ltsubaddd biimpar resubcld suprlub mpbid
        cmin rspe adantl simplrr adantlr eqbrtrrd mpdan expr exlimdv mpi lenltd
        ad2antrr mtbird nrexdv pm2.65da eqleltd mpbir2and eqcomd ) AHPUAUBZFPUA
        UBZGUCUDZAYCYEUEYCYEQRZYCYEUARZUFAYFNUGZYEQRZNHUKZAYINHYHHSZYHOUGZGUCUD
        ZUEZOFTZAYIDUGZEUGZGUCUDZUEZEFTZYODYHHNUHYTYPYMUEZOFTDNUIZYOYSUUAEOFEOU
        IYRYMYPYQYLGUCUJULUMUUBUUAYNOFYPYHYMUNUOUPMUQZAYNYIOFAYLFSZURZYIYNYMYEQ
        RUUEYLYDGAFPYLIUSZAYDPSZUUDAFPUTZFVCVAZCUGBUGZQRCFUKBPTZUUGIJKBCFVBVDZV
        EAGPSZUUDLVEZAUUHUUIUUKVMUUDYLYDQRAUUHUUIUUKIJKVFBCFYLVGVHVIYHYMYEQVJVK
        VLVNVOZAHPUTZHVCVAZYHUUJQRZNHUKZBPTZYEPSZYFYJVPANHPYKYOAYHPSZUUCAYNUVBO
        FUUEYMPSZYNUVBWEUUEYLGUUFUUNVQZYMPYHVRVSVLVNVTZAYNNWAZOFTZUUQAUUIUVFOFU
        KUVGJUVFOFNYMYLGUCWBWCZWFUVFOFWDWGYKNWAYONWAUUQUVGYKYONUUCWHNHWIYNONFWJ
        WKWLZAUVAYJUUTAYDGUULLVQZUUOUUSYJBYEPUUJYEUEUURYINHUUJYEYHQWPWMWNWOZUVJ
        BNNHYEWQWRWSAYGYCGXEUDZYLUARZOFTZAYGURZUVLYDUARZUVNAUVPYGAYCGYDAUUPUUQU
        UTYCPSZUVEUVIUVKBNHVBVDZLUULWTXAAUVPUVNVPZYGAUUHUUIUUKUVLPSUVSIJKAYCGUV
        RLXBBCOFUVLXCWRVEXDUVOUVMOFUVOUUDURZUVMYCYMUARZUVTYMYCQRZUWAUFAUUDUWBYG
        UUEUVFUWBUVHUUEYNUWBNAUUDYNUWBAUUDYNURZURZYKUWBUWCYKAUWCYOYKYNOFXFUUCWL
        XGUWDYKURYHYMYCQAUUDYNYKXHAYKYHYCQRZUWCAUUPUUQUUTVMYKUWEAUUPUUQUUTUVEUV
        IUVKVFBNHYHVGVHXIXJXKXLXMXNXIUVTYMYCAUUDUVCYGUVDXIAUVQYGUUDUVRXPZXOXDUV
        TYCGYLUWFAUUMYGUUDLXPAUUDYLPSYGUUFXIWTXQXRXSAYCYEUVRUVJXTYAYB $.
    $}
    supadd.b1 $e |- ( ph -> B C_ RR ) $.
    supadd.b2 $e |- ( ph -> B =/= (/) ) $.
    supadd.b3 $e |- ( ph -> E. x e. RR A. y e. B y <_ x ) $.
    supadd.c $e |- C = { z | E. v e. A E. b e. B z = ( v + b ) } $.
    $( The supremum function distributes over addition in a sense similar to
       that in ~ supmul .  (Contributed by Brendan Leahy, 26-Sep-2017.) $)
    supadd $p |- ( ph -> ( sup ( A , RR , < ) + sup ( B , RR , < ) ) =
        sup ( C , RR , < ) ) $=
      ( va vw cr wrex clt csup caddc co wceq cle wbr cv cab wss wne wral suprcl
      c0 wcel syl3anc eqid supaddc wa sselda recnd adantr addcomd eqeq2d abbidv
      rexbidva supeq1d eqtrd vex eqeq1 rexbidv elab adantlr rspe oveq1 2rexbidv
      weq cbvrexv syl5bb elab2 sylibr ex sseld anim12d readdcl eleq1a rexlimdvv
      wi syl6 syl5bi ssrdv wex ovex isseti rgenw r19.2z sylancl sylib ralrimivw
      rexcom4 syl2anc n0 exbii bitri readdcld adantrr adantrl 3jca suprub sylan
      le2addd breq1 biimprcd ralrimiv breq2 ralbidv rspcev sylan9r wb rexlimdva
      w3a syl abssdv abn0 suprleub syl31anc mpbird eqbrtrd syl5ibrcom mpbir2and
      letri3d ) AFSUAUBZGSUAUBZUCUDZHSUAUBZUEYNYOUFUGYOYNUFUGZAYNDUHZYMQUHZUCUD
      ZUEZQFTZDUIZSUAUBZYOUFAYNYQYRYMUCUDZUEZQFTZDUIZSUAUBUUCABCDQFYMUUGJKLAGSU
      JZGUNUKZCUHBUHZUFUGZCGULBSTZYMSUOZMNOBCGUMUPZUUGUQURASUUGUUBUAAUUFUUADAUU
      EYTQFAYRFUOZUSZUUDYSYQUUPYRYMUUPYRAFSYRJUTZVAUUPYMAUUMUUOUUNVBZVAVCVDVFVE
      VGVHAUUCYOUFUGZRUHZYOUFUGZRUUBULZAUVARUUBUUTUUBUOUUTYSUEZQFTZAUVAUUAUVDDU
      UTRVIZDRVQZYTUVCQFYQUUTYSVJVKVLAUVCUVAQFUUPUVAUVCYSYOUFUGUUPYSYQYRIUHZUCU
      DZUEZIGTZDUIZSUAUBZYOUFUUPYSYQUVGYRUCUDZUEZIGTZDUIZSUAUBUVLUUPBCDIGYRUVPA
      UUHUUOMVBAUUIUUONVBAUULUUOOVBUUQUVPUQURUUPSUVPUVKUAUUPUVOUVJDUUPUVNUVIIGU
      UPUVGGUOZUSZUVMUVHYQUVRUVGYRUVRUVGAUVQUVGSUOZUUOAGSUVGMUTZVMZVAUVRYRUUPYR
      SUOZUVQUUQVBZVAVCVDVFVEVGVHUUPUVLYOUFUGZUVARUVKULZUUPUVARUVKUUTUVKUOUUTUV
      HUEZIGTZUUPUVAUVJUWGDUUTUVEUVFUVIUWFIGYQUUTUVHVJZVKVLUUOUWGUUTHUOZAUVAUUO
      UWGUWIUUOUWGUSUWGQFTZUWIUWGQFVNYQEUHZUVGUCUDZUEZIGTZEFTZUWJDUUTHUVEUWOUVJ
      QFTUVFUWJUWNUVJEQFEQVQZUWMUVIIGUWPUWLUVHYQUWKYRUVGUCVOVDVKVRUVFUVIUWFQIFG
      UWHVPVSPVTZWAWBAHSUJZHUNUKZUUTUUJUFUGZRHULZBSTZUWIUVAWHARHSUWIUWJAUUTSUOZ
      UWQAUWFUXCQIFGAUUOUVQUSZUVHSUOZUWFUXCWHAUXDUWBUVSUSUXEAUUOUWBUVQUVSAFSYRJ
      WCAGSUVGMWCWDYRUVGWEWIUVHSUUTWFWIWGWJWKZAUWJRWLZUWSAUWGRWLZQFTZUXGAFUNUKZ
      UXHQFULUXIKAUXHQFAUWFRWLZIGTZUXHAUUIUXKIGULUXLNUXKIGRUVHYRUVGUCWMZWNWOUXK
      IGWPWQUWFIRGWTWRWSUXHQFWPXAUWGQRFWTWRUWSUWIRWLUXGRHXBUWIUWJRUWQXCXDWAZAYN
      SUOZUUTYNUFUGZRHULZUXBAYLYMAFSUJZUXJUUKCFULBSTZYLSUOZJKLBCFUMUPZUUNXEZAUX
      PRHUWIUWJAUXPUWQAUWFUXPQIFGAUXDUVHYNUFUGZUWFUXPWHAUXDUYCAUXDUSYRUVGYLYMAU
      UOUWBUVQUUQXFAUVQUVSUUOUVTXGAUXTUXDUYAVBAUUMUXDUUNVBAUUOYRYLUFUGZUVQAUXRU
      XJUXSYAUUOUYDAUXRUXJUXSJKLXHBCFYRXIXJXFAUVQUVGYMUFUGZUUOAUUHUUIUULYAUVQUY
      EAUUHUUIUULMNOXHBCGUVGXIXJXGXKWBUWFUXPUYCUUTUVHYNUFXLXMWIWGWJXNZUXAUXQBYN
      SUUJYNUEUWTUXPRHUUJYNUUTUFXOXPXQXAZUWRUWSUXBYAUWIUVABRHUUTXIWBUPXRWJXNZUU
      PUVKSUJUVKUNUKZUWTRUVKULZBSTZYOSUOZUWDUWEXSUUPUVJDSUUPUVIYQSUOZIGUVRUXEUV
      IUYMWHUVRYRUVGUWCUWAXEUVHSYQWFYBXTYCAUYIUUOAUVJDWLZUYIAUVIDWLZIGTZUYNAUUI
      UYOIGULUYPNUYOIGDUVHUXMWNWOUYOIGWPWQUVIIDGWTWRUVJDYDWAVBUUPUYLUWEUYKAUYLU
      UOAUWRUWSUXBUYLUXFUXNUYGBRHUMUPZVBZUYHUYJUWEBYOSUUJYOUEZUWTUVARUVKUUJYOUU
      TUFXOZXPXQXAUYRBRRUVKYOYEYFYGYHUUTYSYOUFXLYIXTWJXNZAUUBSUJUUBUNUKZUWTRUUB
      ULZBSTZUYLUUSUVBXSAUUADSAYTUYMQFUUPYSSUOYTUYMWHUUPYMYRUURUUQXEYSSYQWFYBXT
      YCAUUADWLZVUBAYTDWLZQFTZVUEAUXJVUFQFULVUGKVUFQFDYSYMYRUCWMWNWOVUFQFWPWQYT
      QDFWTWRUUADYDWAAUYLUVBVUDUYQVUAVUCUVBBYOSUYSUWTUVARUUBUYTXPXQXAUYQBRRUUBY
      OYEYFYGYHAYPUXQUYFAUWRUWSUXBUXOYPUXQXSUXFUXNUYGUYBBRRHYNYEYFYGAYNYOUYBUYQ
      YKYJ $.
  $}

  ${
    $d A b v w x z $.  $d B b v w x y z $.  $d C b w x $.  $d ph b w $.
    supmul1.1 $e |- C = { z | E. v e. B z = ( A x. v ) } $.
    supmul1.2 $e |- ( ph <-> ( ( A e. RR /\ 0 <_ A /\ A. x e. B 0 <_ x ) /\
        ( B C_ RR /\ B =/= (/) /\ E. x e. RR A. y e. B y <_ x ) ) ) $.
    $( The supremum function distributes over multiplication, in the sense that
       ` A x. ( sup B ) = sup ( A x. B ) ` , where ` A x. B ` is shorthand for
       ` { A x. b | b e. B } ` and is defined as ` C ` below.  This is the
       simple version, with only one set argument; see ~ supmul for the more
       general case with two set arguments.  (Contributed by Mario Carneiro,
       5-Jul-2013.) $)
    supmul1 $p |- ( ph ->
      ( A x. sup ( B , RR , < ) ) = sup ( C , RR , < ) ) $=
      ( vw vb cr clt cle wbr wa wcel cc0 adantr csup cmul co wceq wral wrex vex
      wn cv oveq2 eqeq2d cbvrexv eqeq1 rexbidv syl5bb elab2 wss wne simpr sylbi
      c0 w3a simp1d sselda suprcl syl simpl1 simpl2 jca suprub lemul2a syl31anc
      sylan breq1 syl5ibrcom rexlimdva syl5bi ralrimiv wb remulcld eleq1a ssrdv
      wi wex simpr2 isseti rgenw r19.2z sylancl exbii n0 rexcom4 3bitr4i sylibr
      ovex ralbidv rspcev syl2anc 3jca suprleub mpbird cdiv 0red simpl3 rspccva
      breq2 ex exlimdv mpd imp mulge0d anim1i lelttr prodgt02 syl22anc ltdivmul
      letrd syl3anc syl112anc gt0ne0d suprlub mpbid rspe adantl simplrr adantlr
      redivcld eqbrtrrd expr mpi ad2antrr lenltd mtbird nrexdv pm2.65da eqleltd
      mpdan eqcomd ) AHMNUAZFGMNUAZUBUCZAYSUUAUDYSUUAOPZYSUUANPZUHZQAUUBUUDAUUB
      KUIZUUAOPZKHUEZAUUFKHUUEHRZUUEFLUIZUBUCZUDZLGUFZAUUFDUIZFEUIZUBUCZUDZEGUF
      ZUULDUUEHKUGUUQUUMUUJUDZLGUFUUMUUEUDZUULUUPUURELGUUNUUIUDUUOUUJUUMUUNUUIF
      UBUJUKULUUSUURUUKLGUUMUUEUUJUMUNUOIUPZAUUKUUFLGAUUIGRZQZUUFUUKUUJUUAOPZUV
      BUUIMRZYTMRZFMRZSFOPZQZUUIYTOPZUVCAGMUUIAGMUQZGVAURZCUIBUIZOPCGUEBMUFZAUV
      FUVGSUVLOPZBGUEZVBZUVJUVKUVMVBZQZUVQJUVPUVQUSUTZVCVDZAUVEUVAAUVQUVEUVSBCG
      VEVFZTZAUVHUVAAUVFUVGAUVRUVFJUVFUVGUVOUVQVGUTZAUVRUVGJUVFUVGUVOUVQVHUTZVI
      TAUVQUVAUVIUVSBCGUUIVJVMZUUIYTFVKVLUUEUUJUUAOVNVOVPVQVRZAHMUQZHVAURZUUEUV
      LOPZKHUEZBMUFZVBZUUAMRZUUBUUGVSAUWGUWHUWKAKHMUUHUULAUUEMRZUUTAUUKUWNLGUVB
      UUJMRZUUKUWNWCUVBFUUIAUVFUVAUWCTZUVTVTZUUJMUUEWAVFVPVQZWBAUUKKWDZLGUFZUWH
      AUVKUWSLGUEUWTAUVRUVKJUVPUVJUVKUVMWEUTZUWSLGKUUJFUUIUBWOWFZWGUWSLGWHWIUUH
      KWDZUULKWDUWHUWTUUHUULKUUTWJKHWKZUUKLKGWLWMWNZAUWMUUGUWKAFYTUWCUWAVTZUWFU
      WJUUGBUUAMUVLUUAUDUWIUUFKHUVLUUAUUEOXFWPWQWRWSZUXFBKKHUUAWTWRXAAUUCYSFXBU
      CZUUINPZLGUFZAUUCQZUXHYTNPZUXJUXKUXLUUCAUUCUSUXKYSMRZUVEUVFSFNPZUXLUUCVSA
      UXMUUCAUWLUXMUXGBKHVEVFZTZAUVEUUCUWATZAUVFUUCUWCTZUXKUVFUVESYTOPZSUUANPZU
      XNUXRUXQAUXSUUCAUVKUXSUXAUVKUVALWDAUXSLGWKAUVAUXSLAUVAUXSUVBSUUIYTUVBXCUV
      TUWBAUVOUVASUUIOPZAUVRUVOJUVFUVGUVOUVQXDUTUVNUYABUUIGUVLUUISOXFXEVMZUWEXQ
      XGXHVQXITUXKSYSOPZUUCQZUXTAUYCUUCAUWHUYCUXEUWHUXCAUYCUXDAUUHUYCKAUUHUYCAU
      UHQZSUUEYSUYEXCAUUHUWNUWRXJAUXMUUHUXOTAUUHSUUEOPZUUHUULAUYFUUTAUUKUYFLGUV
      BUYFUUKSUUJOPUVBFUUIUWPUVTAUVGUVAUWDTUYBXKUUEUUJSOXFVOVPVQXJAUWLUUHUUEYSO
      PZUXGBKHUUEVJVMZXQXGXHVQXIXLAUYDUXTWCZUUCASMRUXMUWMUYIAXCUXOUXFSYSUUAXMXR
      TXIFYTXNXOZYSYTFXPXSXAUXKUVQUXHMRUXLUXJVSAUVQUUCUVSTUXKYSFUXPUXRUXKFUYJXT
      YGBCLGUXHYAWRYBUXKUXILGUXKUVAQZUXIYSUUJNPZUYKUUJYSOPZUYLUHAUVAUYMUUCUVBUW
      SUYMUXBUVBUUKUYMKAUVAUUKUYMAUVAUUKQZQZUUHUYMUYNUUHAUYNUULUUHUUKLGYCUUTWNY
      DUYOUUHQUUEUUJYSOAUVAUUKUUHYEAUUHUYGUYNUYHYFYHYQYIXHYJYFUYKUUJYSAUVAUWOUU
      CUWQYFAUXMUUCUVAUXOYKZYLYBUYKUXMUVDUVFUXNUXIUYLVSUYPAUVAUVDUUCUVTYFAUVFUU
      CUVAUWCYKUXKUXNUVAUYJTYSUUIFXPXSYMYNYOVIAYSUUAUXOUXFYPXAYR $.
  $}

  ${
    $d A a b v x y w z $.  $d B a b v x y w z $.  $d C a x w $.
    $d ph a b w z $.
    supmul.1 $e |- C = { z | E. v e. A E. b e. B z = ( v x. b ) } $.
    supmul.2 $e |- ( ph <-> ( ( A. x e. A 0 <_ x /\ A. x e. B 0 <_ x ) /\
        ( A C_ RR /\ A =/= (/) /\ E. x e. RR A. y e. A y <_ x ) /\
        ( B C_ RR /\ B =/= (/) /\ E. x e. RR A. y e. B y <_ x ) ) ) $.
    $( Lemma for ~ supmul .  (Contributed by Mario Carneiro, 5-Jul-2013.) $)
    supmullem1 $p |- ( ph -> A. w e. C
        w <_ ( sup ( A , RR , < ) x. sup ( B , RR , < ) ) ) $=
      ( va cv cr cle wbr wcel wrex cc0 clt csup cmul wceq vex weq oveq1 rexbidv
      co eqeq2d cbvrexv eqeq1 2rexbidv syl5bb elab2 wa wss wne wral w3a simp2bi
      wi c0 simp1d sselda adantrr suprcl syl adantr simp3bi adantrl sylbi breq2
      simp1l rspccv simp1r suprub sylan lemul12ad breq1 biimprcd syl6 rexlimdvv
      imp ex syl5bi ralrimiv ) AENZGOUAUBZHOUAUBZUCUIZPQZEIWHIRWHMNZJNZUCUIZUDZ
      JHSMGSZAWLDNZFNZWNUCUIZUDZJHSZFGSZWQDWHIEUEXCWRWOUDZJHSZMGSDEUFZWQXBXEFMG
      FMUFZXAXDJHXGWTWOWRWSWMWNUCUGUJUHUKXFXDWPMJGHWRWHWOULUMUNKUOAWPWLMJGHAWMG
      RZWNHRZUPZWOWKPQZWPWLVBAXJXKAXJUPWMWIWNWJAXHWMORXIAGOWMAGOUQZGVCURZCNBNZP
      QZCGUSBOSZATXNPQZBGUSZXQBHUSZUPZXLXMXPUTZHOUQZHVCURZXOCHUSBOSZUTZLVAZVDVE
      VFAWIORZXJAYAYGYFBCGVGVHVIAXIWNORXHAHOWNAYBYCYDAXTYAYELVJZVDVEVKAWJORZXJA
      YEYIYHBCHVGVHVIAXHTWMPQZXIAXHYJAXRXHYJVBAXTYAYEUTZXRLXRXSYAYEVNVLXQYJBWMG
      XNWMTPVMVOVHWDVFAXITWNPQZXHAXIYLAXSXIYLVBAYKXSLXRXSYAYEVPVLXQYLBWNHXNWNTP
      VMVOVHWDVKAXHWMWIPQZXIAYAXHYMYFBCGWMVQVRVFAXIWNWJPQZXHAYEXIYNYHBCHWNVQVRV
      KVSWEWPWLXKWHWOWKPVTWAWBWCWFWG $.

    $( Lemma for ~ supmul .  (Contributed by Mario Carneiro, 5-Jul-2013.) $)
    supmullem2 $p |- ( ph ->
        ( C C_ RR /\ C =/= (/) /\ E. x e. RR A. w e. C w <_ x ) ) $=
      ( va cr cv cle wral wrex wcel wceq wss c0 wne wbr cmul vex eqeq2d rexbidv
      co oveq1 cbvrexv eqeq1 2rexbidv syl5bb elab2 wa wi cc0 w3a simp2bi simp1d
      sseld simp3bi anim12d remulcl syl6 eleq1a rexlimdvv syl5bi ssrdv wex ovex
      simp2d isseti rgenw r19.2z sylancl rexcom4 sylib ralrimivw n0 exbii bitri
      syl2anc sylibr clt csup suprcl syl remulcld supmullem1 breq2 ralbidv 3jca
      rspcev ) AINUAIUBUCZEOZBOZPUDZEIQZBNRZAEINWQISZWQMOZJOZUEUIZTZJHRZMGRZAWQ
      NSZDOZFOZXDUEUIZTZJHRZFGRZXHDWQIEUFXOXJXETZJHRZMGRXJWQTZXHXNXQFMGXKXCTZXM
      XPJHXSXLXEXJXKXCXDUEUJUGUHUKXRXPXFMJGHXJWQXEULUMUNKUOZAXFXIMJGHAXCGSZXDHS
      ZUPZXENSZXFXIUQAYCXCNSZXDNSZUPYDAYAYEYBYFAGNXCAGNUAZGUBUCZCOWRPUDZCGQBNRZ
      AURWRPUDZBGQYKBHQUPZYGYHYJUSZHNUAZHUBUCZYICHQBNRZUSZLUTZVAVBAHNXDAYNYOYPA
      YLYMYQLVCZVAVBVDXCXDVEVFXENWQVGVFVHVIVJAXHEVKZWPAXGEVKZMGRZYTAYHUUAMGQUUB
      AYGYHYJYRVMAUUAMGAXFEVKZJHRZUUAAYOUUCJHQUUDAYNYOYPYSVMUUCJHEXEXCXDUEVLVNV
      OUUCJHVPVQXFJEHVRVSVTUUAMGVPWDXGMEGVRVSWPXBEVKYTEIWAXBXHEXTWBWCWEAGNWFWGZ
      HNWFWGZUEUIZNSWQUUGPUDZEIQZXAAUUEUUFAYMUUENSYRBCGWHWIAYQUUFNSYSBCHWHWIWJA
      BCDEFGHIJKLWKWTUUIBUUGNWRUUGTWSUUHEIWRUUGWQPWLWMWOWDWN $.

    $( The supremum function distributes over multiplication, in the sense that
       ` ( sup A ) x. ( sup B ) = sup ( A x. B ) ` , where ` A x. B ` is
       shorthand for ` { a x. b | a e. A , b e. B } ` and is defined as ` C `
       below.  We made use of this in our definition of multiplication in the
       Dedekind cut construction of the reals (see ~ df-mp ).  (Contributed by
       Mario Carneiro, 5-Jul-2013.)  (Revised by Mario Carneiro,
       6-Sep-2014.) $)
    supmul $p |- ( ph ->
      ( sup ( A , RR , < ) x. sup ( B , RR , < ) ) = sup ( C , RR , < ) ) $=
      ( va vw cr wceq cle wbr wrex wcel wral clt csup cmul co cv cab wss c0 wne
      w3a cc0 wa simp2bi suprcl syl simp3bi cc mulcom syl2an syl2anc wex simp2d
      recn n0 sylib 0red simp1d sselda adantr wi simp1r sylbi rspccv imp suprub
      breq2 sylan letrd exlimddv simp1l eqid supmul1 syl31anc eqtrd vex rexbidv
      biid eqeq1 elab rspe oveq1 eqeq2d cbvrexv 2rexbidv syl5bb elab2 sylibr ex
      supmullem2 sylan9r syl5bi ralrimiv adantlr remulcld eleq1a rexlimdva ovex
      wb abssdv isseti rgenw r19.2z sylancl rexcom4 cbvexv abn0 rspcev suprleub
      ralbidv mpbird eqbrtrd breq1 syl5ibrcom supmullem1 letri3d mpbir2and ) AF
      NUAUBZGNUAUBZUCUDZHNUAUBZOYIYJPQYJYIPQZAYIDUEZYHLUEZUCUDZOZLFRZDUFZNUAUBZ
      YJPAYIYHYGUCUDZYRAYGNSZYHNSZYIYSOZAFNUGZFUHUIZCUEBUEZPQZCFTBNRZUJZYTAUKUU
      EPQZBFTZUUIBGTZULZUUHGNUGZGUHUIZUUFCGTBNRZUJZKUMZBCFUNUOZAUUPUUAAUULUUHUU
      PKUPZBCGUNUOZYTYGUQSYHUQSZUUBUUAYGVCYHVCZYGYHURUSUTAUUAUKYHPQZUUJUUHYSYRO
      UUTAIUEZGSZUVCIAUUNUVEIVAAUUMUUNUUOUUSVBZIGVDVEAUVEULZUKUVDYHUVGVFAGNUVDA
      UUMUUNUUOUUSVGVHZAUUAUVEUUTVIAUVEUKUVDPQZAUUKUVEUVIVJAUULUUHUUPUJZUUKKUUJ
      UUKUUHUUPVKVLZUUIUVIBUVDGUUEUVDUKPVPVMUOVNAUUPUVEUVDYHPQUUSBCGUVDVOVQVRVS
      AUVJUUJKUUJUUKUUHUUPVTVLZUUQUUAUVCUUJUJUUHULZBCDLYHFYQYQWAUVMWGWBWCWDAYRY
      JPQZMUEZYJPQZMYQTZAUVPMYQUVOYQSUVOYNOZLFRZAUVPYPUVSDUVOMWEZYLUVOOZYOUVRLF
      YLUVOYNWHWFWIAUVRUVPLFAYMFSZULZUVPUVRYNYJPQUWCYNYMYHUCUDZYJPUWCUUAYMNSZYN
      UWDOZAUUAUWBUUTVIZAFNYMAUUCUUDUUGUUQVGVHZUUAUVAYMUQSUWFUWEUVBYMVCYHYMURUS
      UTUWCUWDYLYMUVDUCUDZOZIGRZDUFZNUAUBZYJPUWCUWEUKYMPQZUUKUUPUWDUWMOUWHAUWBU
      WNAUUJUWBUWNVJUVLUUIUWNBYMFUUEYMUKPVPVMUOVNAUUKUWBUVKVIAUUPUWBUUSVIUWEUWN
      UUKUJUUPULZBCDIYMGUWLUWLWAUWOWGWBWCUWCUWMYJPQZUVPMUWLTZUWCUVPMUWLUVOUWLSU
      VOUWIOZIGRZUWCUVPUWKUWSDUVOUVTUWAUWJUWRIGYLUVOUWIWHZWFZWIUWBUWSUVOHSZAUVP
      UWBUWSUXBUWBUWSULUWSLFRZUXBUWSLFWJYLEUEZUVDUCUDZOZIGRZEFRZUXCDUVOHUVTUXHU
      WKLFRUWAUXCUXGUWKELFUXDYMOZUXFUWJIGUXIUXEUWIYLUXDYMUVDUCWKWLWFWMUWAUWJUWR
      LIFGUWTWNWOJWPWQWRAHNUGHUHUIUVOUUEPQZMHTBNRUJZUXBUVPVJABCDMEFGHIJKWSZUXKU
      XBUVPBMHUVOVOWRUOWTXAXBZUWCUWLNUGUWLUHUIZUXJMUWLTZBNRZYJNSZUWPUWQXHUWCUWK
      DNUWCUWJYLNSZIGUWCUVEULZUWINSUWJUXRVJUXSYMUVDUWCUWEUVEUWHVIAUVEUVDNSUWBUV
      HXCXDUWINYLXEUOXFXIAUXNUWBAUWKDVAZUXNAUWSMVAZUXTAUWRMVAZIGRZUYAAUUNUYBIGT
      UYCUVFUYBIGMUWIYMUVDUCXGXJXKUYBIGXLXMUWRIMGXNVEUWKUWSDMUXAXOWQUWKDXPWQVIU
      WCUXQUWQUXPAUXQUWBAUXKUXQUXLBMHUNUOZVIZUXMUXOUWQBYJNUUEYJOZUXJUVPMUWLUUEY
      JUVOPVPZXSXQUTUYEBMMUWLYJXRWCXTYAYAUVOYNYJPYBYCXFXAXBZAYQNUGYQUHUIZUXJMYQ
      TZBNRZUXQUVNUVQXHAYPDNAYOUXRLFUWCYNNSYOUXRVJUWCYHYMUWGUWHXDYNNYLXEUOXFXIA
      YPDVAZUYIAYODVAZLFRZUYLAUUDUYMLFTUYNAUUCUUDUUGUUQVBUYMLFDYNYHYMUCXGXJXKUY
      MLFXLXMYOLDFXNVEYPDXPWQAUXQUVQUYKUYDUYHUYJUVQBYJNUYFUXJUVPMYQUYGXSXQUTUYD
      BMMYQYJXRWCXTYAAYKUVOYIPQMHTZABCDMEFGHIJKYDAUXKYINSYKUYOXHUXLAYGYHUURUUTX
      DZBMMHYIXRUTXTAYIYJUYPUYDYEYF $.
  $}

  ${
    $d x y z A $.
    sup3i.1 $e |- ( A C_ RR /\ A =/= (/) /\ E. x e. RR A. y e. A y <_ x ) $.
    $( A version of the completeness axiom for reals.  (Contributed by NM,
       23-Aug-1999.) $)
    sup3ii $p |- E. x e. RR ( A. y e. A -. x < y /\
                  A. y e. RR ( y < x -> E. z e. A y < z ) ) $=
      ( cr wss c0 wne cv cle wbr wral wrex w3a clt wn wi wa sup3 ax-mp ) DFGDHI
      BJZAJZKLBDMAFNOUCUBPLQBDMUBUCPLUBCJPLCDNRBFMSAFNEABCDTUA $.

    $( Closure of supremum of a nonempty bounded set of reals.  (Contributed by
       NM, 12-Sep-1999.) $)
    suprclii $p |- sup ( A , RR , < ) e. RR $=
      ( cr wss c0 wne cv cle wbr wral wrex w3a clt csup wcel suprcl ax-mp ) CEF
      CGHBIAIJKBCLAEMNCEOPEQDABCRS $.

    $( A member of a nonempty bounded set of reals is less than or equal to the
       set's upper bound.  (Contributed by NM, 12-Sep-1999.) $)
    suprubii $p |- ( B e. A -> B <_ sup ( A , RR , < ) ) $=
      ( cr wss c0 wne cv cle wbr wral wrex w3a wcel clt csup suprub mpan ) CFGC
      HIBJAJKLBCMAFNODCPDCFQRKLEABCDST $.

    $d z B $.
    $( The supremum of a nonempty bounded set of reals is the least upper
       bound.  (Contributed by NM, 15-Oct-2004.)  (Revised by Mario Carneiro,
       6-Sep-2014.) $)
    suprlubii $p |- ( B e. RR ->
      ( B < sup ( A , RR , < ) <-> E. z e. A B < z ) ) $=
      ( cr wss c0 wne cv cle wbr wral wrex w3a wcel clt csup wb suprlub mpan )
      DGHDIJBKAKLMBDNAGOPEGQEDGRSRMECKRMCDOTFABCDEUAUB $.

    $( An upper bound is not less than the supremum of a nonempty bounded set
       of reals.  (Contributed by NM, 15-Oct-2004.)  (Revised by Mario
       Carneiro, 6-Sep-2014.) $)
    suprnubii $p |- ( B e. RR ->
      ( -. B < sup ( A , RR , < ) <-> A. z e. A -. B < z ) ) $=
      ( cr wss c0 wne cv cle wbr wral wrex w3a wcel clt csup wn wb suprnub mpan
      ) DGHDIJBKAKLMBDNAGOPEGQEDGRSRMTECKRMTCDNUAFABCDEUBUC $.

    $( The supremum of a nonempty bounded set of reals is less than or equal to
       an upper bound.  (Contributed by NM, 18-Mar-2005.)  (Revised by Mario
       Carneiro, 6-Sep-2014.) $)
    suprleubii $p |- ( B e. RR ->
      ( sup ( A , RR , < ) <_ B <-> A. z e. A z <_ B ) ) $=
      ( cr wss c0 wne cv cle wbr wral wrex w3a wcel clt csup wb suprleub mpan )
      DGHDIJBKAKLMBDNAGOPEGQDGRSELMCKELMCDNTFABCDEUAUB $.
  $}

  ${
    $d x y $.  $d y ph $.  $d x ps $.
    riotaneg.1 $e |- ( x = -u y -> ( ph <-> ps ) ) $.
    $( The negative of the unique real such that ` ph ` .  (Contributed by NM,
       13-Jun-2005.) $)
    riotaneg $p |- ( E! x e. RR ph ->
                ( iota_ x e. RR ph ) = -u ( iota_ y e. RR ps ) ) $=
      ( wtru cr wreu crio cneg wceq tru nfriota1 nfneg wcel renegcl adantl recn
      cv cc wa simpr renegcld negeq wb negcon2 syl2an reuhyp riotaxfrd mpan ) F
      ACGHACGIBDGIZJZKLFABCDGDSZJZULDUKBDGMNUMGOZUNGOFUMPQFUKGOZUAUKFUPUBUCEUMU
      KUDCSZGOZUQUNKZDGHFCDUNUQJZGUQPURUQTOUMTOUSUMUTKUEUOUQRUMRUQUMUFUGUHQUIUJ
      $.
  $}

  ${
    $d x y z $.  $d y z F $.
    negiso.1 $e |- F = ( x e. RR |-> -u x ) $.
    $( Negation is an order anti-isomorphism of the real numbers, which is its
       own inverse.  (Contributed by Mario Carneiro, 24-Dec-2016.) $)
    negiso $p |- ( F Isom < , `' < ( RR , RR ) /\ `' F = F ) $=
      ( vz vy cr clt ccnv wceq cv wbr cfv wb wral cneg cmpt wa wtru wcel negeq
      wiso wf1o simpr renegcld recn negcon2 syl2an adantl f1ocnv2d simpli ltneg
      cc trud negex brcnv syl6bbr fvmpt breqan12d bitr4d rgen2a df-isom cbvmptv
      mpbir2an simpri 3eqtr4i pm3.2i ) FFGGHZBUAZBHZBIVHFFBUBZDJZEJZGKZVKBLZVLB
      LZVGKZMZEFNDFNVJVIEFVLOZPZIZVJVTQRAEFFAJZOZVRBCRWAFSZQWARWCUCUDRVLFSZQVLR
      WDUCUDWCWDQWAVRIVLWBIMZRWCWAULSVLULSWEWDWAUEVLUEWAVLUFUGUHUIUMZUJVQDEFVKF
      SZWDQZVMVKOZVRVGKZVPWHVMVRWIGKWJVKVLUKWIVRGVKUNZVLUNZUOUPWGWDVNWIVOVRVGAV
      KWBWIFBWAVKTCWKUQAVLWBVRFBWAVLTCWLUQURUSUTDEFFGVGBVAVCVSAFWBPVIBEAFVRWBVL
      WATVBVJVTWFVDCVEVF $.
  $}

  ${
    $d A w x y z $.
    $( The infimum of a set of reals ` A ` .  (Contributed by NM, 9-Oct-2005.)
       (Revised by AV, 4-Sep-2020.) $)
    dfinfre $p |- ( A C_ RR -> inf ( A , RR , < ) = U. { x e. RR |
        ( A. y e. A x <_ y /\ A. y e. RR ( x < y -> E. z e. A z < y ) ) } ) $=
      ( cr clt cv wbr wral wrex wi wa crab cuni wn wcel wb vex brcnv syl5eq wss
      cinf ccnv csup cle df-inf df-sup ssel2 lenlt notbii syl6rbbr sylan2 an32s
      ancoms ralbidva rexbii imbi12i ralbii a1i anbi12d rabbidva unieqd ) DEUAZ
      DEFUBDEFUCZUDZAGZBGZUEHZBDIZVFVGFHZCGZVGFHZCDJZKZBEIZLZAEMZNZDEFUFVCVEVFV
      GVDHZOZBDIZVGVFVDHZVGVKVDHZCDJZKZBEIZLZAEMZNVRABCDEVDUGVCWHVQVCWGVPAEVCVF
      EPZLZWAVIWFVOWJVTVHBDVCVGDPZWIVTVHQZWIVCWKLZWLWMWIVGEPZWLDEVGUHWIWNLVHVGV
      FFHZOVTVFVGUIVSWOVFVGFARZBRZSUJUKULUNUMUOWFVOQWJWEVNBEWBVJWDVMVGVFFWQWPSW
      CVLCDVGVKFWQCRSUPUQURUSUTVAVBTT $.

    $( Closure of infimum of a nonempty bounded set of reals.  (Contributed by
       NM, 8-Oct-2005.)  (Revised by AV, 4-Sep-2020.) $)
    infrecl $p |- ( ( A C_ RR /\ A =/= (/) /\ E. x e. RR A. y e. A x <_ y )
                    -> inf ( A , RR , < ) e. RR ) $=
      ( vz cr wss c0 wne cv cle wbr wral wrex w3a clt wor ltso a1i infm3 infcl
      ) CEFCGHAIBIJKBCLAEMNZABDECOEOPUAQRABDCST $.

    $( The infimum of a set of reals ` A ` is the negative of the supremum of
       the negatives of its elements.  The antecedent ensures that ` A ` is
       nonempty and has a lower bound.  (Contributed by NM, 14-Jun-2005.)
       (Revised by AV, 4-Sep-2020.) $)
    infrenegsup $p |- ( ( A C_ RR /\ A =/= (/) /\ E. x e. RR A. y e. A x <_ y )
                        -> inf ( A , RR , < )
                           = -u sup ( { z e. RR | -u z e. A } , RR , < ) ) $=
      ( vw cr cv wbr wral wrex clt cneg wcel csup ccnv cfv cima wiso vex brcnv
      wss c0 wne cle w3a cinf crab infrecl recnd negnegd cmpt cbvmptv mptpreima
      negeq wceq eqid negiso simpri imaeq1i eqtr3i supeq1i simpli isocnv isoeq1
      ax-mp wb mpbi a1i simp1 wn wi notbii ralbii rexbii imbi12i anbi12i sylibr
      wa infm3 wor supiso syl5eq df-inf eqcomi fveq2i negex fvmpt eqtr2d negeqd
      gtso syl eqtr3d ) DFUAZDUBUCZAGZBGZUDHBDIAFJZUEZDFKUFZLZLWSCGZLZDMCFUGZFK
      NZLWRWSWRWSABDUHZUIUJWRWTXDWRXDDFKOZNZEFEGZLZUKZPZWTWRXDXJDQZFKNXKFXCXLKX
      JOZDQXCXLCFXBDXJECFXIXBXHXAUNULUMXMXJDFFKXFXJRZXMXJUOZEXJXJUPZUQZURZUSUTV
      AWRABCFFDXFKXJFFXFKXJRZWRFFXFKXMRZXSXNXTXNXOXQVBFFKXFXJVCVEXOXTXSVFXRFFXF
      KXJXMVDVEVGVHWMWNWQVIWRWPWOKHZVJZBDIZWOWPKHZXAWPKHZCDJZVKZBFIZVRZAFJWOWPX
      FHZVJZBDIZWPWOXFHZWPXAXFHZCDJZVKZBFIZVRZAFJABCDVSYRYIAFYLYCYQYHYKYBBDYJYA
      WOWPKASZBSZTVLVMYPYGBFYMYDYOYFWPWOKYTYSTYNYECDWPXAKYTCSTVNVOVMVPVNVQFXFVT
      WRWJVHWAWBWRWSFMZXKWTUOXEUUAXKWSXJPWTXGWSXJWSXGDFKWCWDWEEWSXIWTFXJXHWSUNX
      PWSWFWGWBWKWHWIWL $.
  $}

  ${
    $d w x y A $.  $d w z A $.  $d w z B $.
    $( Any lower bound of a nonempty set of real numbers is less than or equal
       to its infimum.  (Contributed by Jeff Hankins, 1-Sep-2013.)  (Revised by
       AV, 4-Sep-2020.)  (Proof modification is discouraged.) $)
    infregelb $p |- ( ( ( A C_ RR /\ A =/= (/) /\
                        E. x e. RR A. y e. A x <_ y ) /\ B e. RR ) ->
                      ( B <_ inf ( A , RR , < ) <-> A. z e. A B <_ z ) ) $=
      ( vw cr wss c0 cv cle wbr wral wrex wcel wa clt wn wb syl6bb wne w3a cinf
      wor a1i infm3 simp1 infglbb notbid infrecl anim1i ancomd lenlt syl simplr
      ltso wi adantr imp lenltd ralbidva 3ad2antl1 ralnex 3bitr4d breq2 cbvralv
      ssel ) DGHZDIUAZAJBJKLBDMAGNZUBZEGOZPZEDGQUCZKLZEFJZKLZFDMZECJZKLZCDMVMVN
      EQLZRZVPEQLZFDNZRZVOVRVMWAWDVKABFGDEQGQUDVKUPUEABFDUFVHVIVJUGUHUIVMVLVNGO
      ZPVOWBSVMWFVLVKWFVLABDUJUKULEVNUMUNVMVRWCRZFDMZWEVHVIVLVRWHSVJVHVLPZVQWGF
      DWIVPDOZPEVPVHVLWJUOWIWJVPGOZVHWJWKUQVLDGVPVGURUSUTVAVBWCFDVCTVDVQVTFCDVP
      VSEKVEVFT $.
  $}

  ${
    $d x y z B $.
    $( If a nonempty set of real numbers has a lower bound, its infimum is less
       than or equal to any of its elements.  (Contributed by Jeff Hankins,
       15-Sep-2013.)  (Revised by AV, 4-Sep-2020.) $)
    infrelb $p |- ( ( B C_ RR /\ E. x e. RR A. y e. B x <_ y /\ A e. B )
                    -> inf ( B , RR , < ) <_ A ) $=
      ( vz cr wss cv cle wbr wral wrex wcel w3a clt cinf syl3anc wn wa wi simp1
      c0 wne ne0i 3ad2ant3 simp2 infrecl ssel2 3adant2 wor simpll adantl simplr
      ltso a1i infm3 inflb expcom pm2.43b 3impia nltled ) DFGZAHZBHZIJBDKAFLZCD
      MZNZDFOPZCVGVBDUBUCZVEVHFMVBVEVFUAVFVBVIVEDCUDZUEVBVEVFUFABDUGQVBVFCFMVED
      FCUHUIVBVEVFCVHOJRZVBVESZVFVKVLVFVFVKTVLVFSZABEFDCOFOUJVMUNUOVMVBVIVEVDVC
      OJRBDKVCVDOJEHVDOJEDLTBFKSAFLVBVEVFUKVFVIVLVJULVBVEVFUMABEDUPQUQURUSUTVA
      $.
  $}

  ${
    supfirege.1 $e |- ( ph -> B C_ RR ) $.
    supfirege.2 $e |- ( ph -> B e. Fin ) $.
    supfirege.3 $e |- ( ph -> C e. B ) $.
    supfirege.4 $e |- ( ph -> S = sup ( B , RR , < ) ) $.
    $( The supremum of a finite set of real numbers is greater than or equal to
       all the real numbers of the set.  (Contributed by AV, 1-Oct-2019.) $)
    supfirege $p |- ( ph -> C <_ S ) $=
      ( cle wbr clt wceq wo cr wor ltso a1i supgtoreq sseldd wcel csup cfn ne0i
      c0 wne wss syl fisupcl syl13anc eqeltrd leloed mpbird ) ACDIJCDKJCDLMANBC
      KDNKOZAPQZEFGHRACDABNCEGSABNDEADBNKUAZBHAUMBUBTBUDUEZBNUFUOBTUNFACBTUPGBC
      UCUGENBKUHUIUJSUKUL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Imaginary and complex number properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The imaginary unit ` _i ` is not a real number.  (Contributed by NM,
     6-May-1999.) $)
  inelr $p |- -. _i e. RR $=
    ( ci cr wcel cc0 wceq ine0 neii cmul co clt wbr wn c1 0re 1re ltnsymi ax-mp
    0lt1 caddc cneg ixi renegcli eqeltri ltadd1i ax-1cn addid2i ax-i2m1 breq12i
    bitri mtbir wne msqgt0 ex necon1bd mpi mto ) ABCZADEZADFGUQDAAHIZJKZLURUTMD
    JKZDMJKVALRDMNOPQUTDMSIZUSMSIZJKVADUSMNUSMTBUAMOUBUCOUDVBMVCDJMUEUFUGUHUIUJ
    UQUTADUQADUKUTAULUMUNUOUP $.

  $( A real number times the imaginary unit is real only if the number is 0.
     (Contributed by NM, 28-May-1999.)  (Revised by Mario Carneiro,
     27-May-2016.) $)
  rimul $p |- ( ( A e. RR /\ ( _i x. A ) e. RR ) -> A = 0 ) $=
    ( cr wcel ci cmul co wa wn cc0 wceq inelr cdiv cc ax-icn simpll recnd simpr
    wne a1i divcan4d simplr redivcld eqeltrrd ex necon1bd mpi ) ABCZDAEFZBCZGZD
    BCZHAIJKUJUKAIUJAIRZUKUJULGZUHALFDBUMDADMCUMNSUMAUGUIULOZPUJULQZTUMUHAUGUIU
    LUAUNUOUBUCUDUEUF $.

  $( The representation of complex numbers in terms of real and imaginary parts
     is unique.  Proposition 10-1.3 of [Gleason] p. 130.  (Contributed by NM,
     9-May-1999.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  cru $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
      ( ( A + ( _i x. B ) ) = ( C + ( _i x. D ) ) <-> ( A = C /\ B = D ) ) ) $=
    ( cr wcel wa ci cmul co caddc wceq simplrl simplll cmin cc0 mulcld resubcld
    recnd subeq0d simpr cc ax-icn a1i simpllr simplrr addsubeq4d subdid eqeltrd
    mpbid eqtr4d rimul syl2anc oveq2d oveq1d subidd 3eqtrd eqcomd jca ex oveq12
    oveq2 sylan2 impbid1 ) AEFZBEFZGZCEFZDEFZGZGZAHBIJZKJCHDIJZKJLZACLZBDLZGZVK
    VNVQVKVNGZVOVPVRCAVRCAVRCVGVHVIVNMZSZVRAVEVFVJVNNZSZVRCAOJZVLVMOJZVMVMOJPVR
    VNWCWDLVKVNUAVRAVLCVMWBVRHBHUBFVRUCUDZVRBVEVFVJVNUEZSZQVTVRHDWEVRDVGVHVIVNU
    FZSZQZUGUJZVRVLVMVMOVRBDHIVRBDWGWIVRBDOJZEFHWLIJZEFWLPLVRBDWFWHRVRWMWCEVRWM
    WDWCVRHBDWEWGWIUHWKUKVRCAVSWARUIWLULUMTZUNUOVRVMWJUPUQTURWNUSUTVPVOVLVMLVNB
    DHIVBACVLVMKVAVCVD $.

  $( The real representation of complex numbers is nonzero iff one of its terms
     is nonzero.  (Contributed by NM, 29-Apr-2005.)  (Proof shortened by Mario
     Carneiro, 27-May-2016.) $)
  crne0 $p |- ( ( A e. RR /\ B e. RR ) ->
    ( ( A =/= 0 \/ B =/= 0 ) <-> ( A + ( _i x. B ) ) =/= 0 ) ) $=
    ( cr wcel wa ci cmul co caddc cc0 wne wceq wn wo ax-icn mul01i oveq2i eqtri
    00id 0re eqeq2i wb cru mpanr12 syl5bbr necon3abid neorian syl6rbbr ) ACDBCD
    EZAFBGHIHZJKAJLBJLEZMAJKBJKNUIUKUJJUJJLUJJFJGHZIHZLZUIUKUMJUJUMJJIHJULJJIFO
    PQSRUAUIJCDZUOUNUKUBTTABJJUCUDUEUFAJBJUGUH $.

  ${
    $d x y z w A $.
    $( The real part of a complex number is unique.  Proposition 10-1.3 of
       [Gleason] p. 130.  (Contributed by NM, 9-May-1999.)  (Proof shortened by
       Mario Carneiro, 27-May-2016.) $)
    creur $p |- ( A e. CC -> E! x e. RR E. y e. RR A = ( x + ( _i x. y ) ) ) $=
      ( vz vw cc wcel cv ci cmul co caddc wceq cr wrex wreu cnre wa wb wral cru
      ancoms eqcom ancom 3bitr4g anassrs rexbidva biidd ceqsrexv ad2antlr bitrd
      ralrimiva reu6i syldan eqeq1 rexbidv reubidv syl5ibrcom rexlimivv syl ) C
      FGCDHZIEHZJKLKZMZENODNOCAHZIBHZJKLKZMZBNOZANPZDECQVDVJDENNVANGZVBNGZRZVJV
      DVCVGMZBNOZANPZVKVLVOVEVAMZSZANTVPVMVRANVMVENGZRZVOVFVBMZVQRZBNOZVQVTVNWB
      BNVMVSVFNGZVNWBSVMVSWDRZRVGVCMZVQWARZVNWBWEVMWFWGSVEVFVAVBUAUBVCVGUCWAVQU
      DUEUFUGVLWCVQSVKVSVQVQBVBNWAVQUHUIUJUKULVOANVAUMUNVDVIVOANVDVHVNBNCVCVGUO
      UPUQURUSUT $.

    $( The imaginary part of a complex number is unique.  Proposition 10-1.3 of
       [Gleason] p. 130.  (Contributed by NM, 9-May-1999.)  (Proof shortened by
       Mario Carneiro, 27-May-2016.) $)
    creui $p |- ( A e. CC -> E! y e. RR E. x e. RR A = ( x + ( _i x. y ) ) ) $=
      ( vz vw cc wcel cv ci cmul co caddc wceq cr wrex wreu cnre wa wb wral cru
      simpr eqcom ancoms syl5bb anass1rs rexbidva biidd ceqsrexv ad2antrr bitrd
      ralrimiva reu6i syl2anc eqeq1 rexbidv reubidv syl5ibrcom rexlimivv syl )
      CFGCDHZIEHZJKLKZMZENODNOCAHZIBHZJKLKZMZANOZBNPZDECQVDVJDENNVANGZVBNGZRZVJ
      VDVCVGMZANOZBNPZVMVLVOVFVBMZSZBNTVPVKVLUBVMVRBNVMVFNGZRZVOVEVAMZVQRZANOZV
      QVTVNWBANVMVENGZVSVNWBSVNVGVCMZVMWDVSRZRWBVCVGUCWFVMWEWBSVEVFVAVBUAUDUEUF
      UGVKWCVQSVLVSVQVQAVANWAVQUHUIUJUKULVOBNVBUMUNVDVIVOBNVDVHVNANCVCVGUOUPUQU
      RUSUT $.
  $}

  ${
    $d x y z A $.
    $( The complex conjugate of a complex number is unique.  (Contributed by
       Mario Carneiro, 6-Nov-2013.) $)
    cju $p |- ( A e. CC -> E! x e. CC
               ( ( A + x ) e. RR /\ ( _i x. ( A - x ) ) e. RR ) ) $=
      ( vy vz cc wcel cv caddc co cr ci cmin cmul wrex wceq ax-icn oveq2d oveq2
      wa eleq1d wi wral wreu cnre recn mulcl sylancr subcl syl2an adantr adantl
      ppncand readdcl anidms eqeltrd pnncand a1i adddid eqtr4d addcld mulass c1
      mp3an12 syl cneg ixi 1re renegcli eqeltri readdcld remulcl anbi12d rspcev
      simpr syl12anc rexbidv syl5ibrcom rexlimivv an4 cc0 resubcl pnpcan syl5ib
      ancoms adantrl adantrr subdid nnncan1 3com23 eqtr3d anim12d subeq0 biimpd
      oveq1 3expb rimul 3syld syl5bi ralrimivva reu4 sylanbrc ) BEFZBAGZHIZJFZK
      BXCLIZMIZJFZSZAENZXIBCGZHIZJFZKBXKLIZMIZJFZSZSZXCXKOZUAZCEUBAEUBXIAEUCXBB
      XKKDGZMIZHIZOZDJNCJNXJCDBUDYDXJCDJJXKJFZYAJFZSZXJYDYCXCHIZJFZKYCXCLIZMIZJ
      FZSZAENZYGXKYBLIZEFZYCYOHIZJFZKYCYOLIZMIZJFZYNYEXKEFZYBEFZYPYFXKUEZYFKEFZ
      YAEFZUUCPYAUEZKYAUFUGZXKYBUHUIYGYQXKXKHIZJYGXKYBXKYEUUBYFUUDUJZYFUUCYEUUH
      UKZUUJULYEUUIJFZYFYEUULXKXKUMUNUJUOYGYTKKMIZYAYAHIZMIZJYGYTKKUUNMIZMIZUUO
      YGYSUUPKMYGYSYBYBHIUUPYGXKYBYBUUJUUKUUKUPYGKYAYAUUEYGPUQYFUUFYEUUGUKZUURU
      RUSQYGUUNEFZUUOUUQOZYGYAYAUURUURUTUUEUUEUUSUUTPPKKUUNVAVCVDUSYGUUMJFUUNJF
      UUOJFUUMVBVEJVFVBVGVHVIYGYAYAYEYFVNZUVAVJUUMUUNVKUGUOYMYRUUASAYOEXCYOOZYI
      YRYLUUAUVBYHYQJXCYOYCHRTUVBYKYTJUVBYJYSKMXCYOYCLRQTVLVMVOYDXIYMAEYDXEYIXH
      YLYDXDYHJBYCXCHWNTYDXGYKJYDXFYJKMBYCXCLWNQTVLVPVQVRVDXBXTACEEXRXEXMSZXHXP
      SZSZXBXCEFZUUBSZSZXSXEXHXMXPVSUVHUVEXCXKLIZJFZKUVIMIZJFZSZUVIVTOZXSUVHUVC
      UVJUVDUVLUVCXDXLLIZJFUVHUVJXDXLWAUVHUVOUVIJXBUVFUUBUVOUVIOBXCXKWBWOTWCUVD
      XOXGLIZJFZUVHUVLXPXHUVQXOXGWAWDUVHUVPUVKJUVHKXNXFLIZMIUVPUVKUVHKXNXFUUEUV
      HPUQXBUUBXNEFUVFBXKUHWEXBUVFXFEFUUBBXCUHWFWGUVHUVRUVIKMXBUVFUUBUVRUVIOZXB
      UUBUVFUVSBXKXCWHWIWOQWJTWCWKUVMUVNUAUVHUVIWPUQUVGUVNXSUAXBUVGUVNXSXCXKWLW
      MUKWQWRWSXIXQACEXSXEXMXHXPXSXDXLJXCXKBHRTXSXGXOJXSXFXNKMXCXKBLRQTVLWTXA
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Function operation analogue theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.  $d x F $.  $d x G $.  $d x V $.
    $( Function analogue of ~ subeq0 .  (Contributed by Mario Carneiro,
       24-Jul-2014.) $)
    ofsubeq0 $p |- ( ( A e. V /\ F : A --> CC /\ G : A --> CC ) ->
                     ( ( F oF - G ) = ( A X. { 0 } ) <-> F = G ) ) $=
      ( vx wcel cc wf cmin cfv cc0 wceq wral wfn ffn syl eqidd c0ex ffvelrnda
      co w3a cv cof csn cxp wa simp2 simp3 simp1 inidm fvconst2 adantl subeq0ad
      ofval eqeq12d bitrd ralbidva wb offn fconst ax-mp sylancl syl2anc 3bitr4d
      eqfnfv ) ADFZAGBHZAGCHZUAZEUBZBCIUCTZJZVJAKUDZUEZJZLZEAMZVJBJZVJCJZLZEAMZ
      VKVNLZBCLZVIVPVTEAVIVJAFZUFZVPVRVSITZKLVTWEVLWFVOKVIAAVRVSIABCDDVJVIVGBAN
      ZVFVGVHUGZAGBOPZVIVHCANZVFVGVHUHZAGCOPZVFVGVHUIZWMAUJZWEVRQWEVSQUNWDVOKLV
      IAKVJRUKULUOWEVRVSVIAGVJBWHSVIAGVJCWKSUMUPUQVIVKANVNANZWBVQURVIAAIABCDDWI
      WLWMWMWNUSAVMVNHWOAKRUTAVMVNOVAEAVKVNVEVBVIWGWJWCWAURWIWLEABCVEVCVD $.

    $( Function analogue of ~ negsub .  (Contributed by Mario Carneiro,
       24-Jul-2014.) $)
    ofnegsub $p |- ( ( A e. V /\ F : A --> CC /\ G : A --> CC ) ->
      ( F oF + ( ( A X. { -u 1 } ) oF x. G ) ) = ( F oF - G ) ) $=
      ( vx wcel cc wf cfv cneg caddc c1 cmul cof co cmin wfn ffn syl offn simp1
      w3a cv csn cxp simp2 ax-1cn negcli fnconstg mp1i simp3 inidm wa eqidd a1i
      ofc1 ffvelrnda mulm1d eqtrd negsubd ofval eqtr4d offveq ) ADFZAGBHZAGCHZU
      BZEAEUCZBIZVHCIZJZKBALJZUDUEZCMNOZBCPNOZDVDVEVFUAZVGVEBAQVDVEVFUFZAGBRSZV
      GAAMAVMCDDVLGFZVMAQVGLUGUHZAVLGUIUJVGVFCAQVDVEVFUKZAGCRSZVPVPAULZTVGAAPAB
      CDDVRWBVPVPWCTVGVHAFUMZVIUNZWDVHVNIVLVJMOVKVGAVLVJMCDGVHVPVSVGVTUOWBWDVJU
      NZUPWDVJVGAGVHCWAUQZURUSWDVIVKKOVIVJPOVHVOIWDVIVJVGAGVHBVQUQWGUTVGAAVIVJP
      ABCDDVHVRWBVPVPWCWEWFVAVBVC $.

    $( Function analogue of ~ subge0 .  (Contributed by Mario Carneiro,
       24-Jul-2014.) $)
    ofsubge0 $p |- ( ( A e. V /\ F : A --> RR /\ G : A --> RR ) ->
                     ( ( A X. { 0 } ) oR <_ ( F oF - G ) <-> G oR <_ F ) ) $=
      ( vx wcel cr wf cc0 cfv cmin co cle wbr wral ffvelrnda cc wfn ffn syl w3a
      cv csn cxp cof cofr simp2 simp3 subge0d ralbidva 0cn fnconstg simp1 inidm
      wa mp1i offn wceq c0ex fvconst2 adantl eqidd ofval ofrfval 3bitr4d ) ADFZ
      AGBHZAGCHZUAZIEUBZBJZVJCJZKLZMNZEAOVLVKMNZEAOAIUCUDZBCKUELZMUFZNCBVRNVIVN
      VOEAVIVJAFZUOZVKVLVIAGVJBVFVGVHUGZPVIAGVJCVFVGVHUHZPUIUJVIEAAIVMMAVPVQDDI
      QFVPARVIUKAIQULUPVIAAKABCDDVIVGBARWAAGBSTZVIVHCARWBAGCSTZVFVGVHUMZWEAUNZU
      QWEWEWFVSVJVPJIURVIAIVJUSUTVAVIAAVKVLKABCDDVJWCWDWEWEWFVTVKVBZVTVLVBZVCVD
      VIEAAVLVKMACBDDWDWCWEWEWFWHWGVDVE $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Integer sets
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Positive integers (as a subset of complex numbers)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c NN $. $( The set of positive integers (blackboard bold N). $)

  $( Extend class notation to include the class of positive integers. $)
  cn $a class NN $.

  $( Define the set of positive integers.  Some authors, especially in analysis
     books, call these the natural numbers, whereas other authors choose to
     include 0 in their definition of natural numbers.  Note that ` NN ` is a
     subset of complex numbers ( ~ nnsscn ), in contrast to the more elementary
     ordinal natural numbers ` _om ` , ~ df-om ).  See ~ nnind for the
     principle of mathematical induction.  See ~ df-n0 for the set of
     nonnegative integers ` NN0 ` .  See ~ dfn2 for ` NN ` defined in terms of
     ` NN0 ` .

     This is a technical definition that helps us avoid the Axiom of Infinity
     ~ ax-inf2 in certain proofs.  For a more conventional and intuitive
     definition ("the smallest set of reals containing ` 1 ` as well as the
     successor of every member") see ~ dfnn3 (or its slight variant ~ dfnn2 ).
     (Contributed by NM, 10-Jan-1997.)  (Revised by Mario Carneiro,
     3-May-2014.) $)
  df-nn $a |- NN = ( rec ( ( x e. _V |-> ( x + 1 ) ) , 1 ) " _om ) $.

  $( Alternate proof of ~ nnex , more direct, that makes use of ~ ax-rep .
     (Contributed by Mario Carneiro, 3-May-2014.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  nnexALT $p |- NN e. _V $=
    ( vx cn cvv cv c1 caddc cmpt crdg com cima df-nn wfun wcel rdgfun funimaexg
    co omex mp2an eqeltri ) BACADEFPGZEHZIJZCAKUALICMUBCMETNQUAICORS $.

  ${
    $d n x y z A $.
    $( Peano's inductive postulate.  Theorem I.36 (principle of mathematical
       induction) of [Apostol] p. 34.  (Contributed by NM, 10-Jan-1997.)
       (Revised by Mario Carneiro, 17-Nov-2014.) $)
    peano5nni $p |- ( ( 1 e. A /\ A. x e. A ( x + 1 ) e. A ) -> NN C_ A ) $=
      ( vn vy vz c1 wcel cv caddc co wral wa cvv com c0 wceq fveq2 eleq1d oveq1
      cfv cn cmpt crdg cres crn cima df-nn df-ima eqtri wss wfn frfnom a1i csuc
      wf cc ax-1cn fr0g ax-mp simpl syl5eqel wi ad2antlr wb ovex eqid frsucmpt2
      rspccv mpan2 adantl sylibrd expcom finds2 com12 ralrimiv sylanbrc frn syl
      ffnfv syl5eqss ) FBGZAHZFIJZBGZABKZLZUACMCHZFIJZUBZFUCZNUDZUEZBUAWJNUFWLC
      UGWJNUHUIWFNBWKUOZWLBUJWFWKNUKZDHZWKTZBGZDNKWMWNWFFWIULUMWFWQDNWONGWFWQWQ
      OWKTZBGEHZWKTZBGZWSUNZWKTZBGZWFDEWOOPWPWRBWOOWKQRWOWSPWPWTBWOWSWKQRWOXBPW
      PXCBWOXBWKQRWFWRFBFUPGWRFPUQFUPWIURUSWAWEUTVAWFWSNGZXAXDVBWFXELXAWTFIJZBG
      ZXDWEXAXGVBWAXEWDXGAWTBWBWTPWCXFBWBWTFISRVHVCXEXDXGVDWFXEXCXFBXEXFMGXCXFP
      WTFIVECDFWSWHXFWOFIJWKMWKVFWOWGFISWOWTFISVGVIRVJVKVLVMVNVODNBWKVSVPNBWKVQ
      VRVT $.
  $}

  $( The positive integers are a subset of the reals.  (Contributed by NM,
     10-Jan-1997.)  (Revised by Mario Carneiro, 16-Jun-2013.) $)
  nnssre $p |- NN C_ RR $=
    ( vx c1 cr wcel cv caddc co wral cn wss 1re peano2re rgen peano5nni mp2an )
    BCDAEZBFGCDZACHICJKQACPLMACNO $.

  $( The positive integers are a subset of the complex numbers.  (Contributed
     by NM, 2-Aug-2004.) $)
  nnsscn $p |- NN C_ CC $=
    ( cn cr cc nnssre ax-resscn sstri ) ABCDEF $.

  $( The set of positive integers exists.  (Contributed by NM, 3-Oct-1999.)
     (Revised by Mario Carneiro, 17-Nov-2014.) $)
  nnex $p |- NN e. _V $=
    ( cn cc cnex nnsscn ssexi ) ABCDE $.

  $( A positive integer is a real number.  (Contributed by NM, 18-Aug-1999.) $)
  nnre $p |- ( A e. NN -> A e. RR ) $=
    ( cn cr nnssre sseli ) BCADE $.

  $( A positive integer is a complex number.  (Contributed by NM,
     18-Aug-1999.) $)
  nncn $p |- ( A e. NN -> A e. CC ) $=
    ( cn cc nnsscn sseli ) BCADE $.

  ${
    nnre.1 $e |- A e. NN $.
    $( A positive integer is a real number.  (Contributed by NM,
       18-Aug-1999.) $)
    nnrei $p |- A e. RR $=
      ( cn wcel cr nnre ax-mp ) ACDAEDBAFG $.

    $( A positive integer is a complex number.  (Contributed by NM,
       18-Aug-1999.) $)
    nncni $p |- A e. CC $=
      ( nnrei recni ) AABCD $.
  $}

  ${
    $d x y z A $.
    $( Peano postulate: 1 is a positive integer.  (Contributed by NM,
       11-Jan-1997.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
    1nn $p |- 1 e. NN $=
      ( vx c1 cvv cv caddc co cmpt crdg com cres crn cn cfv wcel wceq 1ex ax-mp
      c0 fr0g wfn frfnom peano1 fnfvelrn mp2an eqeltrri cima df-nn df-ima eqtri
      eleqtrri ) BACADBEFGZBHZIJZKZLRUMMZBUNBCNUOBOPBCUKSQUMITRINUOUNNBUKUAUBIR
      UMUCUDUELULIUFUNAUGULIUHUIUJ $.

    $( Peano postulate: a successor of a positive integer is a positive
       integer.  (Contributed by NM, 11-Jan-1997.)  (Revised by Mario Carneiro,
       17-Nov-2014.) $)
    peano2nn $p |- ( A e. NN -> ( A + 1 ) e. NN ) $=
      ( vx vy vz c1 caddc co cn wcel cvv cmpt crdg com cres crn wceq wrex oveq1
      cv cfv wfn frfnom fvelrnb ax-mp csuc ovex frsucmpt2 mpan2 peano2 fnfvelrn
      wb eqid sylancr df-nn df-ima syl6eleqr eqeltrrd eleq1d syl5ibcom rexlimiv
      cima eqtri sylbi eleq2s ) AEFGZHIZABJBSZEFGZKZELZMNZOZHAVLIZCSZVKTZAPZCMQ
      ZVFVKMUAZVMVQUKEVIUBZCMAVKUCUDVPVFCMVNMIZVOEFGZHIVPVFVTVNUEZVKTZWAHVTWAJI
      WCWAPVOEFUFBDEVNVHWADSZEFGVKJVKULWDVGEFRWDVOEFRUGUHVTWCVLHVTVRWBMIWCVLIVS
      VNUIMWBVKUJUMHVJMVAVLBUNVJMUOVBZUPUQVPWAVEHVOAEFRURUSUTVCWEVD $.

    $( Alternate definition of the set of positive integers.  This was our
       original definition, before the current ~ df-nn replaced it.  This
       definition requires the axiom of infinity to ensure it has the
       properties we expect.  (Contributed by Jeff Hankins, 12-Sep-2013.)
       (Revised by Mario Carneiro, 3-May-2014.) $)
    dfnn2 $p |- NN = |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } $=
      ( vz cn c1 cv wcel caddc co wral wa cab cint wss wi elintab wal wceq rgen
      eleq2 1ex simpl mpgbir oveq1 eleq1d rspccv adantl a2i alimi vex peano5nni
      ovex 3imtr4i mp2an 1nn peano2nn nnex raleqbi1dv anbi12d elab intss1 ax-mp
      mpbir2an eqssi ) DEAFZGZBFZEHIZVEGZBVEJZKZALZMZEVMGZCFZEHIZVMGZCVMJDVMNVN
      VKVFOAVKAEUAPVFVJUBUCVQCVMVKVOVEGZOZAQVKVPVEGZOZAQVOVMGVQVSWAAVKVRVTVJVRV
      TOVFVIVTBVOVEVGVORVHVPVEVGVOEHUDUEUFUGUHUIVKAVOCUJPVKAVPVOEHULPUMSCVMUKUN
      DVLGZVMDNWBEDGZVHDGZBDJZUOWDBDVGUPSVKWCWEKADUQVEDRVFWCVJWEVEDETVIWDBVEDVE
      DVHTURUSUTVCDVLVAVBVD $.

    $( Alternate definition of the set of positive integers.  Definition of
       positive integers in [Apostol] p. 22.  (Contributed by NM,
       3-Jul-2005.) $)
    dfnn3 $p |- NN =
               |^| { x | ( x C_ RR /\ 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } $=
      ( vz cv cr wss c1 wcel caddc wral wa cab cint cn eleq2 raleqbi1dv anbi12d
      wceq dfnn2 pm3.2i co w3a wb eqeq2i sylbir nnssre eqsstr3i peano2nn intabs
      1nn rgen 3anass abbii inteqi 3eqtr4ri ) ADZEFZGUPHZBDZGIUAZUPHZBUPJZKZKZA
      LZMVCALMUQURVBUBZALZMNVCGCDZHZUTVHHZBVHJZKZGNHZUTNHZBNJZKZACEUPVHRURVIVBV
      KUPVHGOVAVJBUPVHUPVHUTOPQUPVLCLMZRUPNRZVCVPUCNVQUPCBSZUDVRURVMVBVOUPNGOVA
      VNBUPNUPNUTOPQUEVQEFVPVQNEVSUFUGVMVOUJVNBNUSUHUKTTUIVGVEVFVDAUQURVBULUMUN
      ABSUO $.
  $}

  ${
    nnred.1 $e |- ( ph -> A e. NN ) $.
    $( A positive integer is a real number.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nnred $p |- ( ph -> A e. RR ) $=
      ( cn cr nnssre sseldi ) ADEBFCG $.

    $( A positive integer is a complex number.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nncnd $p |- ( ph -> A e. CC ) $=
      ( cn cc nnsscn sseldi ) ADEBFCG $.

    $( Peano postulate: a successor of a positive integer is a positive
       integer.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    peano2nnd $p |- ( ph -> ( A + 1 ) e. NN ) $=
      ( cn wcel c1 caddc co peano2nn syl ) ABDEBFGHDECBIJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Principle of mathematical induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.  $d x A $.  $d x ps $.  $d x ch $.  $d x th $.  $d x ta $.
    $d y ph $.
    $( Substitutions. $)
    nnind.1 $e |- ( x = 1 -> ( ph <-> ps ) ) $.
    nnind.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    nnind.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    nnind.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Basis. $)
    nnind.5 $e |- ps $.
    $( Induction step. $)
    nnind.6 $e |- ( y e. NN -> ( ch -> th ) ) $.
    $( Principle of Mathematical Induction (inference schema).  The first four
       hypotheses give us the substitution instances we need; the last two are
       the basis and the induction step.  See ~ nnaddcl for an example of its
       use.  See ~ nn0ind for induction on nonnegative integers and ~ uzind ,
       ~ uzind4 for induction on an arbitrary upper set of integers.  See
       ~ indstr for strong induction.  See also ~ nnindALT .  This is an
       alternative for Metamath 100 proof #74.  (Contributed by NM,
       10-Jan-1997.)  (Revised by Mario Carneiro, 16-Jun-2013.) $)
    nnind $p |- ( A e. NN -> ta ) $=
      ( cn wcel crab wa c1 elrab cv caddc wral wss 1nn mpbir2an elrabi peano2nn
      co a1d anim12d 3imtr4g mpcom rgen peano5nni mp2an sseli sylib simprd ) HO
      PZUTEUTHAFOQZPUTEROVAHSVAPZGUAZSUBUIZVAPZGVAUCOVAUDVBSOPBUEMABFSOITUFVEGV
      AVCOPZVCVAPZVEAFVCOUGVFVFCRVDOPZDRVGVEVFVFVHCDVFVHVFVCUHUJNUKACFVCOJTADFV
      DOKTULUMUNGVAUOUPUQAEFHOLTURUS $.
  $}

  ${
    $d x y $.  $d x A $.  $d x ps $.  $d x ch $.  $d x th $.  $d x ta $.
    $d y ph $.
    $( Induction step. $)
    nnindALT.6 $e |- ( y e. NN -> ( ch -> th ) ) $.
    $( Basis. $)
    nnindALT.5 $e |- ps $.
    $( Substitutions. $)
    nnindALT.1 $e |- ( x = 1 -> ( ph <-> ps ) ) $.
    nnindALT.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    nnindALT.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    nnindALT.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Principle of Mathematical Induction (inference schema).  The last four
       hypotheses give us the substitution instances we need; the first two are
       the induction step and the basis.

       This ALT version of ~ nnind has a different hypothesis order.  It may be
       easier to use with the metamath program's Proof Assistant, because
       "MM-PA> assign last" will be applied to the substitution instances
       first.  We may eventually use this one as the official version.  You may
       use either version.  After the proof is complete, the ALT version can be
       changed to the non-ALT version with "MM-PA> minimize nnind /may_grow".
       (Contributed by NM, 7-Dec-2005.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    nnindALT $p |- ( A e. NN -> ta ) $=
      ( nnind ) ABCDEFGHKLMNJIO $.
  $}

  ${
    $d x y A $.
    $( Every positive integer is one or a successor.  (Contributed by Mario
       Carneiro, 16-May-2014.) $)
    nn1m1nn $p |- ( A e. NN -> ( A = 1 \/ ( A - 1 ) e. NN ) ) $=
      ( vx vy cv c1 wceq cmin co cn wcel wo caddc orc 1cnd eqeq1 eleq1d orbi12d
      cc oveq1 ax-1cn 2thd nncn pncan sylancl id eqeltrd olcd a1d nnind ) BDZEF
      ZUJEGHZIJZKZERJZCDZEFZUPEGHZIJZKZUPELHZEFZVAEGHZIJZKZAEFZAEGHZIJZKBCAUKUN
      UOUKUMMUKNUAUJUPFZUKUQUMUSUJUPEOVIULURIUJUPEGSPQUJVAFZUKVBUMVDUJVAEOVJULV
      CIUJVAEGSPQUJAFZUKVFUMVHUJAEOVKULVGIUJAEGSPQTUPIJZVEUTVLVDVBVLVCUPIVLUPRJ
      UOVCUPFUPUBTUPEUCUDVLUEUFUGUHUI $.
  $}

  ${
    $d x y $.  $d x y A $.  $d x ps $.  $d x ch $.  $d x th $.  $d y ph $.
    $( Substitutions. $)
    nn1suc.1 $e |- ( x = 1 -> ( ph <-> ps ) ) $.
    nn1suc.3 $e |- ( x = ( y + 1 ) -> ( ph <-> ch ) ) $.
    nn1suc.4 $e |- ( x = A -> ( ph <-> th ) ) $.
    $( Hypothesis showing it holds for 1. $)
    nn1suc.5 $e |- ps $.
    $( Hypothesis showing it holds for a successor. $)
    nn1suc.6 $e |- ( y e. NN -> ch ) $.
    $( If a statement holds for 1 and also holds for a successor, it holds for
       all positive integers.  The first three hypotheses give us the
       substitution instances we need; the last two show that it holds for 1
       and for a successor.  (Contributed by NM, 11-Oct-2004.)  (Revised by
       Mario Carneiro, 16-May-2014.) $)
    nn1suc $p |- ( A e. NN -> th ) $=
      ( cn wcel c1 wceq co wsbc sbcie caddc cmin wi 1ex mpbir 1nn mpbiri sbcieg
      wb eleq1 syl dfsbcq bitr3d a1i cv ovex oveq1 sbceq1d syl5bbr vtoclga nncn
      cc ax-1cn npcan sylancl bitrd syl5ib nn1m1nn mpjaod ) GMNZGOPZDGOUAQZMNZV
      JDUBVIVJDAEORZVMBKABEOUCHSUDVJAEGRZDVMVJVIVNDUHVJVIOMNUEGOMUIUFADEGMJUGZU
      JAEGOUKULUFUMVLAEVKOTQZRZVIDCVQFVKMCAEFUNZOTQZRVRVKPZVQACEVSVROTUOISVTAEV
      SVPVRVKOTUPUQURLUSVIVQVNDVIAEVPGVIGVANOVANVPGPGUTVBGOVCVDUQVOVEVFGVGVH $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Closure of addition of positive integers, proved by induction on the
       second addend.  (Contributed by NM, 12-Jan-1997.) $)
    nnaddcl $p |- ( ( A e. NN /\ B e. NN ) -> ( A + B ) e. NN ) $=
      ( vx vy cn wcel caddc co cv wi c1 wceq oveq2 eleq1d imbi2d peano2nn wa cc
      nncn ax-1cn addass mp3an3 syl2an syl5ib expcom a2d nnind impcom ) BEFAEFZ
      ABGHZEFZUIACIZGHZEFZJUIAKGHZEFZJUIADIZGHZEFZJUIAUQKGHZGHZEFZJUIUKJCDBULKL
      ZUNUPUIVCUMUOEULKAGMNOULUQLZUNUSUIVDUMUREULUQAGMNOULUTLZUNVBUIVEUMVAEULUT
      AGMNOULBLZUNUKUIVFUMUJEULBAGMNOAPUQEFZUIUSVBUIVGUSVBJUSURKGHZEFUIVGQZVBUR
      PVIVHVAEUIARFZUQRFZVHVALZVGASUQSVJVKKRFVLTAUQKUAUBUCNUDUEUFUGUH $.

    $( Closure of multiplication of positive integers.  (Contributed by NM,
       12-Jan-1997.) $)
    nnmulcl $p |- ( ( A e. NN /\ B e. NN ) -> ( A x. B ) e. NN ) $=
      ( vx vy cn wcel cmul co cv wi c1 caddc wceq oveq2 eleq1d imbi2d cc mulid1
      nncn wa biimprd nnaddcl ancoms ax-1cn mp3an3 oveq2d adantr syl2an syl5ibr
      mpcom adddi eqtrd exp4b pm2.43b a2d nnind impcom ) BEFAEFZABGHZEFZURACIZG
      HZEFZJURAKGHZEFZJURADIZGHZEFZJURAVFKLHZGHZEFZJURUTJCDBVAKMZVCVEURVLVBVDEV
      AKAGNOPVAVFMZVCVHURVMVBVGEVAVFAGNOPVAVIMZVCVKURVNVBVJEVAVIAGNOPVABMZVCUTU
      RVOVBUSEVABAGNOPAQFZURVEASZVPVEURVPVDAEARZOUAUJVFEFZURVHVKVSURVHVKJURVSUR
      VHVKURVHTVKURVSTZVGALHZEFZVHURWBVGAUBUCVTVJWAEURVPVFQFZVJWAMVSVQVFSVPWCTV
      JVGVDLHZWAVPWCKQFVJWDMUDAVFKUKUEVPWDWAMWCVPVDAVGLVRUFUGULUHOUIUMUNUOUPUQ
      $.
  $}

  ${
    nnmulcli.1 $e |- A e. NN $.
    nnmulcli.2 $e |- B e. NN $.
    $( Closure of multiplication of positive integers.  (Contributed by Mario
       Carneiro, 18-Feb-2014.) $)
    nnmulcli $p |- ( A x. B ) e. NN $=
      ( cn wcel cmul co nnmulcl mp2an ) AEFBEFABGHEFCDABIJ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( There exists a positive integer greater than or equal to any two others.
       (Contributed by NM, 18-Aug-1999.) $)
    nn2ge $p |- ( ( A e. NN /\ B e. NN ) ->
                E. x e. NN ( A <_ x /\ B <_ x ) ) $=
      ( cn wcel wa cv cle wbr wrex cr nnre adantr leid sylan wceq breq2 anbi12d
      rspcev syldan adantl biantrud biimpa adantll anim1i adantlr lecasei ) BDE
      ZCDEZFBAGZHIZCUJHIZFZADJZBCUHBKEZUIBLZMUICKEZUHCLZUAUIBCHIZUNUHUIUSUSCCHI
      ZFZUNUIUQUSVAURUQUSVAUQUTUSCNUBUCOUMVAACDUJCPUKUSULUTUJCBHQUJCCHQRSTUDUHC
      BHIZUNUIUHVBBBHIZVBFZUNUHUOVBVDUPUOVCVBBNUEOUMVDABDUJBPUKVCULVBUJBBHQUJBC
      HQRSTUFUG $.
  $}

  ${
    $d x y A $.
    $( A positive integer is one or greater.  (Contributed by NM,
       25-Aug-1999.) $)
    nnge1 $p |- ( A e. NN -> 1 <_ A ) $=
      ( vx vy c1 cv cle wbr caddc co breq2 wcel cr wi cc0 clt wn 0re 1re lenlt
      wb 1le1 cn nnre recn addid1d breq2d 0lt1 axltadd mp3an12 wa readdcl mpan2
      mpi peano2re mp3an3 syl2anc mpand con3d sylancr 3imtr4d sylbird syl nnind
      lttr ) DBEZFGDDFGDCEZFGZDVFDHIZFGZDAFGBCAVEDDFJVEVFDFJVEVHDFJVEADFJUAVFUB
      KVFLKZVGVIMVFUCVJVGDVFNHIZFGZVIVJVKVFDFVJVFVFUDUEUFVJVKDOGZPZVHDOGZPZVLVI
      VJVOVMVJVKVHOGZVOVMVJNDOGZVQUGNLKZDLKZVJVRVQMQRNDVFUHUIUMVJVKLKZVHLKZVQVO
      UJVMMZVJVSWAQVFNUKULZVFUNZWAWBVTWCRVKVHDVDUOUPUQURVJVTWAVLVNTRWDDVKSUSVJV
      TWBVIVPTRWEDVHSUSUTVAVBVC $.
  $}

  $( A positive integer is greater than one iff it is not equal to one.
     (Contributed by NM, 7-Oct-2004.) $)
  nngt1ne1 $p |- ( A e. NN -> ( 1 < A <-> A =/= 1 ) ) $=
    ( cn wcel cr c1 cle wbr clt wne wb nnre nnge1 1re leltne mp3an1 syl2anc ) A
    BCADCZEAFGZEAHGAEIJZAKALEDCQRSMEANOP $.

  $( A positive integer is less than or equal to one iff it is equal to one.
     (Contributed by NM, 3-Apr-2005.) $)
  nnle1eq1 $p |- ( A e. NN -> ( A <_ 1 <-> A = 1 ) ) $=
    ( cn wcel c1 cle wbr wa wceq nnge1 biantrud cr wb 1re letri3 sylancl bitr4d
    nnre ) ABCZADEFZSDAEFZGZADHZRTSAIJRAKCDKCUBUALAQMADNOP $.

  $( A positive integer is positive.  (Contributed by NM, 26-Sep-1999.) $)
  nngt0 $p |- ( A e. NN -> 0 < A ) $=
    ( cn wcel cr c1 cle wbr cc0 clt nnre nnge1 0lt1 wa wi 0re 1re mp3an12 mpani
    ltletr sylc ) ABCADCZEAFGZHAIGZAJAKUAHEIGZUBUCLHDCEDCUAUDUBMUCNOPHEASQRT $.

  $( A positive integer is not less than one.  (Contributed by NM,
     18-Jan-2004.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  nnnlt1 $p |- ( A e. NN -> -. A < 1 ) $=
    ( cn wcel c1 cle wbr clt wn nnge1 cr wb 1re nnre lenlt sylancr mpbid ) ABCZ
    DAEFZADGFHZAIQDJCAJCRSKLAMDANOP $.

  $( A positive integer is not less than or equal to zero .  (Contributed by
     AV, 13-May-2020.) $)
  nnnle0 $p |- ( A e. NN -> -. A <_ 0 ) $=
    ( cn wcel cc0 cle wbr wn clt nngt0 cr wb 0re wa ltnle bicomd sylancr mpbird
    nnre ) ABCZADEFGZDAHFZAISDJCZAJCZTUAKLARUBUCMUATDANOPQ $.

  $( Zero is not a positive integer.  (Contributed by NM, 25-Aug-1999.) $)
  0nnn $p |- -. 0 e. NN $=
    ( cc0 cn wcel c1 clt wbr 0lt1 nnnlt1 mt2 ) ABCADEFGAHI $.

  $( A positive integer is nonzero.  (Contributed by NM, 27-Sep-1999.) $)
  nnne0 $p |- ( A e. NN -> A =/= 0 ) $=
    ( cn wcel cc0 wceq 0nnn eleq1 mtbiri necon2ai ) ABCZADADEJDBCFADBGHI $.

  ${
    nngt0.1 $e |- A e. NN $.
    $( A positive integer is positive (inference version).  (Contributed by NM,
       17-Sep-1999.) $)
    nngt0i $p |- 0 < A $=
      ( cn wcel cc0 clt wbr nngt0 ax-mp ) ACDEAFGBAHI $.

    $( A positive integer is nonzero (inference version).  (Contributed by NM,
       25-Aug-1999.) $)
    nnne0i $p |- A =/= 0 $=
      ( nnrei nngt0i gt0ne0ii ) AABCABDE $.
  $}

  $( The quotient of a real and a positive integer is real.  (Contributed by
     NM, 28-Nov-2008.) $)
  nndivre $p |- ( ( A e. RR /\ N e. NN ) -> ( A / N ) e. RR ) $=
    ( cn wcel cr cc0 wne wa cdiv co nnre nnne0 jca redivcl 3expb sylan2 ) BCDZA
    EDZBEDZBFGZHABIJEDZQSTBKBLMRSTUAABNOP $.

  $( The reciprocal of a positive integer is real.  (Contributed by NM,
     8-Feb-2008.) $)
  nnrecre $p |- ( N e. NN -> ( 1 / N ) e. RR ) $=
    ( c1 cr wcel cn cdiv co 1re nndivre mpan ) BCDAEDBAFGCDHBAIJ $.

  $( The reciprocal of a positive integer is positive.  (Contributed by NM,
     25-Aug-1999.) $)
  nnrecgt0 $p |- ( A e. NN -> 0 < ( 1 / A ) ) $=
    ( cn wcel c1 cle wbr cc0 cdiv co clt nnge1 0lt1 cr wa wi 0re ltletr mp3an12
    nnre 1re recgt0 ex syld syl mpani mpd ) ABCZDAEFZGDAHIJFZAKUGGDJFZUHUILUGAM
    CZUJUHNZUIOASUKULGAJFZUIGMCDMCUKULUMOPTGDAQRUKUMUIAUAUBUCUDUEUF $.

  ${
    $d z A $.  $d x y z B $.
    $( Subtraction of positive integers.  (Contributed by NM, 20-Aug-2001.)
       (Revised by Mario Carneiro, 16-May-2014.) $)
    nnsub $p |- ( ( A e. NN /\ B e. NN ) -> ( A < B <-> ( B - A ) e. NN ) ) $=
      ( vz vx cn wcel clt wbr cmin co wi wral wceq breq2 eleq1d imbi12d ralbidv
      c1 oveq1 cr vy wa cv caddc nnnlt1 pm2.21d rgen breq1 oveq2 cbvralv adantr
      cc nncn ax-1cn pncan sylancl simpl eqeltrd syl5ibrcom a1dd rspcv nnre 1re
      ltsubadd mp3an2 syl2anr subsub3 mp3an3 syl2an biimpd syl9r nn1m1nn adantl
      wb wo mpjaod ralrimdva syl5bi nnind rspcva sylan2 cc0 nngt0 posdif impbid
      syl5ibr ) AEFZBEFZUBZABGHZBAIJZEFZWHWGCUCZBGHZBWMIJZEFZKZCELZWJWLKZWMDUCZ
      GHZWTWMIJZEFZKZCELWMRGHZRWMIJZEFZKZCELWMUAUCZGHZXIWMIJZEFZKZCELZWMXIRUDJZ
      GHZXOWMIJZEFZKZCELZWRDUABWTRMZXDXHCEYAXAXEXCXGWTRWMGNYAXBXFEWTRWMISOPQWTX
      IMZXDXMCEYBXAXJXCXLWTXIWMGNYBXBXKEWTXIWMISOPQWTXOMZXDXSCEYCXAXPXCXRWTXOWM
      GNYCXBXQEWTXOWMISOPQWTBMZXDWQCEYDXAWNXCWPWTBWMGNYDXBWOEWTBWMISOPQXHCEWMEF
      ZXEXGWMUEUFUGXNWTXIGHZXIWTIJZEFZKZDELZXIEFZXTXMYICDEWMWTMZXJYFXLYHWMWTXIG
      UHYLXKYGEWMWTXIIUIOPUJYKYJXSCEYKYEUBZWMRMZYJXSKWMRIJZEFZYMYNXSYJYMYNXRXPY
      MXRYNXORIJZEFYMYQXIEYMXIULFZRULFZYQXIMYKYRYEXIUMZUKUNXIRUOUPYKYEUQURYNXQY
      QEWMRXOIUIOUSUTUTYPYJYOXIGHZXIYOIJZEFZKZYMXSYIUUDDYOEWTYOMZYFUUAYHUUCWTYO
      XIGUHUUEYGUUBEWTYOXIIUIOPVAYMUUDXSYMUUAXPUUCXRYEWMTFZXITFZUUAXPVNZYKWMVBX
      IVBUUFRTFUUGUUHVCWMRXIVDVEVFYMUUBXQEYKYRWMULFZUUBXQMZYEYTWMUMYRUUIYSUUJUN
      XIWMRVGVHVIOPVJVKYEYNYPVOYKWMVLVMVPVQVRVSWQWSCAEWMAMZWNWJWPWLWMABGUHUUKWO
      WKEWMABIUIOPVTWAWLWJWIWBWKGHZWKWCWGATFBTFWJUULVNWHAVBBVBABWDVIWFWE $.

    nnsub.1 $e |- A e. NN $.
    nnsub.2 $e |- B e. NN $.
    $( Subtraction of positive integers.  (Contributed by NM, 19-Aug-2001.) $)
    nnsubi $p |- ( A < B <-> ( B - A ) e. NN ) $=
      ( cn wcel clt wbr cmin co wb nnsub mp2an ) AEFBEFABGHBAIJEFKCDABLM $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Two ways to express " ` A ` divides ` B ` " for positive integers.
       (Contributed by NM, 3-Feb-2004.)  (Proof shortened by Mario Carneiro,
       16-May-2014.) $)
    nndiv $p |- ( ( A e. NN /\ B e. NN ) ->
                ( E. x e. NN ( A x. x ) = B <-> ( B / A ) e. NN ) ) $=
      ( cdiv co cn wcel cv wceq wrex cmul risset eqcom ad2antlr ad2antrr adantl
      wa cc nncn cc0 wne nnne0 divmuld syl5bb rexbidva syl5rbb ) CBDEZFGAHZUGIZ
      AFJBFGZCFGZQZBUHKECIZAFJAUGFLULUIUMAFUIUGUHIULUHFGZQZUMUHUGMUOCBUHUKCRGUJ
      UNCSNUJBRGUKUNBSOUNUHRGULUHSPUJBTUAUKUNBUBOUCUDUEUF $.
  $}

  $( Transitive property of divisibility: if ` A ` divides ` B ` and ` B `
     divides ` C ` , then ` A ` divides ` C ` .  Typically, ` C ` would be an
     integer, although the theorem holds for complex ` C ` .  (Contributed by
     NM, 3-May-2005.) $)
  nndivtr $p |- ( ( ( A e. NN /\ B e. NN /\ C e. CC ) /\
               ( ( B / A ) e. NN /\ ( C / B ) e. NN ) ) -> ( C / A ) e. NN ) $=
    ( cn wcel cc w3a cdiv co wa cmul nnmulcl c1 cc0 wne wceq 3ad2ant2 nnne0 jca
    nncn 3ad2ant1 divmul24 syl22anc dividd oveq1d sylan2 ancoms mulid2d 3adant2
    simp3 divcl 3expb 3eqtrd eleq1d syl5ib imp ) ADEZBDEZCFEZGZBAHIZDECBHIZDEJZ
    CAHIZDEZVCVAVBKIZDEUTVEVAVBLUTVFVDDUTVFBBHIZVDKIZMVDKIZVDUTBFEZUSAFEZANOZJZ
    VJBNOZJZVFVHPURUQVJUSBTZQUQURUSUJUQURVMUSUQVKVLATARSZUAURUQVOUSURVJVNVPBRZS
    QBCABUBUCURUQVHVIPUSURVGMVDKURBVPVRUDUEQUQUSVIVDPURUQUSJVDUSUQVDFEZUQUSVMVS
    VQUSVKVLVSCAUKULUFUGUHUIUMUNUOUP $.

  ${
    nnge1d.1 $e |- ( ph -> A e. NN ) $.
    $( A positive integer is one or greater.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nnge1d $p |- ( ph -> 1 <_ A ) $=
      ( cn wcel c1 cle wbr nnge1 syl ) ABDEFBGHCBIJ $.

    $( A positive integer is positive.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nngt0d $p |- ( ph -> 0 < A ) $=
      ( cn wcel cc0 clt wbr nngt0 syl ) ABDEFBGHCBIJ $.

    $( A positive integer is nonzero.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nnne0d $p |- ( ph -> A =/= 0 ) $=
      ( cn wcel cc0 wne nnne0 syl ) ABDEBFGCBHI $.

    $( The reciprocal of a positive integer is real.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    nnrecred $p |- ( ph -> ( 1 / A ) e. RR ) $=
      ( cn wcel c1 cdiv co cr nnrecre syl ) ABDEFBGHIECBJK $.

    nnmulcld.2 $e |- ( ph -> B e. NN ) $.
    $( Closure of addition of positive integers.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    nnaddcld $p |- ( ph -> ( A + B ) e. NN ) $=
      ( cn wcel caddc co nnaddcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure of multiplication of positive integers.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    nnmulcld $p |- ( ph -> ( A x. B ) e. NN ) $=
      ( cn wcel cmul co nnmulcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.
  $}

  ${
    nndivred.1 $e |- ( ph -> A e. RR ) $.
    nndivred.2 $e |- ( ph -> B e. NN ) $.
    $( A positive integer is one or greater.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nndivred $p |- ( ph -> ( A / B ) e. RR ) $=
      ( cr wcel cn cdiv co nndivre syl2anc ) ABFGCHGBCIJFGDEBCKL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Decimal representation of numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The decimal representation of numbers/integers is based on the decimal digits
  0 through 9 ( ~ df-0 through ~ df-9 ), which are explicitly defined in the
  following.  Note that the numbers 0 and 1 are constants defined as primitives
  of the complex number axiom system (see ~ df-0 and ~ df-1 ).

  With the decimal constructor ~ df-dec , it is possible to easily express
  larger integers in base 10.  See ~ deccl and the theorems that follow it.
  See also ~ 4001prm (4001 is prime) and the proof of ~ bpos .  Note that
  the decimal constructor builds on the definitions in this section.

  Note: The symbol ` 10 ` representing the number 10 is deprecated (and will be
  removed in the near future).  The number 10 should be represented by its
  digits using the decimal constructor only, i.e. by ` ; 1 0 `.  Therefore,
  only decimal digits are needed (as symbols) for the decimal representation of
  a number.

  Integers can also be exhibited as sums of powers of 10 (e.g. the number 103
  can be expressed as ` ( ( ; 1 0 ^ 2 ) + 3 ) `) or as some other expression
  built from operations on the numbers 0 through 9.  For example, the prime
  number 823541 can be expressed as ` ( 7 ^ 7 ) - 2 ` .  Decimals can be
  expressed as ratios of integers, as in ~ cos2bnd .

  Most abstract math rarely requires numbers larger than 4.  Even in Wiles'
  proof of Fermat's Last Theorem, the largest number used appears to be 12.

$)

  $c 2 $. $( The decimal number 2 $)
  $c 3 $. $( The decimal number 3 $)
  $c 4 $. $( The decimal number 4 $)
  $c 5 $. $( The decimal number 5 $)
  $c 6 $. $( The decimal number 6 $)
  $c 7 $. $( The decimal number 7 $)
  $c 8 $. $( The decimal number 8 $)
  $c 9 $. $( The decimal number 9 $)
  $c 10 $. $( The decimal number 10 $)

  $( Extend class notation to include the number 2. $)
  c2 $a class 2 $.
  $( Extend class notation to include the number 3. $)
  c3 $a class 3 $.
  $( Extend class notation to include the number 4. $)
  c4 $a class 4 $.
  $( Extend class notation to include the number 5. $)
  c5 $a class 5 $.
  $( Extend class notation to include the number 6. $)
  c6 $a class 6 $.
  $( Extend class notation to include the number 7. $)
  c7 $a class 7 $.
  $( Extend class notation to include the number 8. $)
  c8 $a class 8 $.
  $( Extend class notation to include the number 9. $)
  c9 $a class 9 $.
  $( Extend class notation to include the number 10. $)
  c10 $a class 10 $.

  $( Define the number 2.  (Contributed by NM, 27-May-1999.) $)
  df-2 $a |- 2 = ( 1 + 1 ) $.

  $( Define the number 3.  (Contributed by NM, 27-May-1999.) $)
  df-3 $a |- 3 = ( 2 + 1 ) $.
  $( Define the number 4.  (Contributed by NM, 27-May-1999.) $)
  df-4 $a |- 4 = ( 3 + 1 ) $.
  $( Define the number 5.  (Contributed by NM, 27-May-1999.) $)
  df-5 $a |- 5 = ( 4 + 1 ) $.
  $( Define the number 6.  (Contributed by NM, 27-May-1999.) $)
  df-6 $a |- 6 = ( 5 + 1 ) $.
  $( Define the number 7.  (Contributed by NM, 27-May-1999.) $)
  df-7 $a |- 7 = ( 6 + 1 ) $.
  $( Define the number 8.  (Contributed by NM, 27-May-1999.) $)
  df-8 $a |- 8 = ( 7 + 1 ) $.
  $( Define the number 9.  (Contributed by NM, 27-May-1999.) $)
  df-9 $a |- 9 = ( 8 + 1 ) $.

  $( Define the number 10.  See remarks under ~ df-2 .  (Contributed by NM,
     5-Feb-2007.)  Obsolete as of 9-Sep-2021.  (New usage is discouraged.) $)
  df-10OLD $a |- 10 = ( 9 + 1 ) $.

  $( ` 0 =/= 1 ` (common case); the reverse order is already proved.
     (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  0ne1 $p |- 0 =/= 1 $=
    ( c1 cc0 ax-1ne0 necomi ) ABCD $.

  $( ` ( 1 - 1 ) = 0 ` (common case).  (Contributed by David A. Wheeler,
     7-Jul-2016.) $)
  1m1e0 $p |- ( 1 - 1 ) = 0 $=
    ( c1 ax-1cn subidi ) ABC $.

  $( The number 2 is real.  (Contributed by NM, 27-May-1999.) $)
  2re $p |- 2 e. RR $=
    ( c2 c1 caddc co cr df-2 1re readdcli eqeltri ) ABBCDEFBBGGHI $.

  $( The number 2 is a complex number.  (Contributed by NM, 30-Jul-2004.) $)
  2cn $p |- 2 e. CC $=
    ( c2 2re recni ) ABC $.

  $( 2 is a set (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  2ex $p |- 2 e. _V $=
    ( c2 cc 2cn elexi ) ABCD $.

  $( 2 is a complex number, deductive form (common case).  (Contributed by
     David A. Wheeler, 8-Dec-2018.) $)
  2cnd $p |- ( ph -> 2 e. CC ) $=
    ( c2 cc wcel 2cn a1i ) BCDAEF $.

  $( The number 3 is real.  (Contributed by NM, 27-May-1999.) $)
  3re $p |- 3 e. RR $=
    ( c3 c2 c1 caddc co cr df-3 2re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 3 is a complex number.  (Contributed by FL, 17-Oct-2010.) $)
  3cn $p |- 3 e. CC $=
    ( c3 3re recni ) ABC $.

  $( 3 is a set (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  3ex $p |- 3 e. _V $=
    ( c3 cc 3cn elexi ) ABCD $.

  $( The number 4 is real.  (Contributed by NM, 27-May-1999.) $)
  4re $p |- 4 e. RR $=
    ( c4 c3 c1 caddc co cr df-4 3re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 4 is a complex number.  (Contributed by David A. Wheeler,
     7-Jul-2016.) $)
  4cn $p |- 4 e. CC $=
    ( c4 4re recni ) ABC $.

  $( The number 5 is real.  (Contributed by NM, 27-May-1999.) $)
  5re $p |- 5 e. RR $=
    ( c5 c4 c1 caddc co cr df-5 4re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 5 is complex.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  5cn $p |- 5 e. CC $=
    ( c5 5re recni ) ABC $.

  $( The number 6 is real.  (Contributed by NM, 27-May-1999.) $)
  6re $p |- 6 e. RR $=
    ( c6 c5 c1 caddc co cr df-6 5re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 6 is complex.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  6cn $p |- 6 e. CC $=
    ( c6 6re recni ) ABC $.

  $( The number 7 is real.  (Contributed by NM, 27-May-1999.) $)
  7re $p |- 7 e. RR $=
    ( c7 c6 c1 caddc co cr df-7 6re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 7 is complex.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  7cn $p |- 7 e. CC $=
    ( c7 7re recni ) ABC $.

  $( The number 8 is real.  (Contributed by NM, 27-May-1999.) $)
  8re $p |- 8 e. RR $=
    ( c8 c7 c1 caddc co cr df-8 7re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 8 is complex.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  8cn $p |- 8 e. CC $=
    ( c8 8re recni ) ABC $.

  $( The number 9 is real.  (Contributed by NM, 27-May-1999.) $)
  9re $p |- 9 e. RR $=
    ( c9 c8 c1 caddc co cr df-9 8re 1re readdcli eqeltri ) ABCDEFGBCHIJK $.

  $( The number 9 is complex.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  9cn $p |- 9 e. CC $=
    ( c9 9re recni ) ABC $.

  $( Obsolete version of ~ 10re as of 8-Sep-2021.  (Contributed by NM,
     5-Feb-2007.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  10reOLD $p |- 10 e. RR $=
    ( c10 c9 c1 caddc co cr df-10OLD 9re 1re readdcli eqeltri ) ABCDEFGBCHIJK
    $.

  $( Zero is nonnegative.  (Contributed by David A. Wheeler, 7-Jul-2016.) $)
  0le0 $p |- 0 <_ 0 $=
    ( cc0 0re leidi ) ABC $.

  $( 0 is less than or equal to 2.  (Contributed by David A. Wheeler,
     7-Dec-2018.) $)
  0le2 $p |- 0 <_ 2 $=
    ( cc0 c1 caddc co c2 cle wbr 0le1 1re addge0i mp2an df-2 breqtrri ) ABBCDZE
    FABFGZOANFGHHBBIIJKLM $.

  $( The number 2 is positive.  (Contributed by NM, 27-May-1999.) $)
  2pos $p |- 0 < 2 $=
    ( cc0 c1 caddc co c2 clt 1re 0lt1 addgt0ii df-2 breqtrri ) ABBCDEFBBGGHHIJK
    $.

  $( The number 2 is nonzero.  (Contributed by NM, 9-Nov-2007.) $)
  2ne0 $p |- 2 =/= 0 $=
    ( c2 2re 2pos gt0ne0ii ) ABCD $.

  $( The number 3 is positive.  (Contributed by NM, 27-May-1999.) $)
  3pos $p |- 0 < 3 $=
    ( cc0 c2 c1 caddc co c3 clt 2re 1re 2pos 0lt1 addgt0ii df-3 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 3 is nonzero.  (Contributed by FL, 17-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 7-May-2011.) $)
  3ne0 $p |- 3 =/= 0 $=
    ( c3 3re 3pos gt0ne0ii ) ABCD $.

  $( The number 4 is positive.  (Contributed by NM, 27-May-1999.) $)
  4pos $p |- 0 < 4 $=
    ( cc0 c3 c1 caddc co c4 clt 3re 1re 3pos 0lt1 addgt0ii df-4 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 4 is nonzero.  (Contributed by David A. Wheeler,
     5-Dec-2018.) $)
  4ne0 $p |- 4 =/= 0 $=
    ( c4 4re 4pos gt0ne0ii ) ABCD $.

  $( The number 5 is positive.  (Contributed by NM, 27-May-1999.) $)
  5pos $p |- 0 < 5 $=
    ( cc0 c4 c1 caddc co c5 clt 4re 1re 4pos 0lt1 addgt0ii df-5 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 6 is positive.  (Contributed by NM, 27-May-1999.) $)
  6pos $p |- 0 < 6 $=
    ( cc0 c5 c1 caddc co c6 clt 5re 1re 5pos 0lt1 addgt0ii df-6 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 7 is positive.  (Contributed by NM, 27-May-1999.) $)
  7pos $p |- 0 < 7 $=
    ( cc0 c6 c1 caddc co c7 clt 6re 1re 6pos 0lt1 addgt0ii df-7 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 8 is positive.  (Contributed by NM, 27-May-1999.) $)
  8pos $p |- 0 < 8 $=
    ( cc0 c7 c1 caddc co c8 clt 7re 1re 7pos 0lt1 addgt0ii df-8 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 9 is positive.  (Contributed by NM, 27-May-1999.) $)
  9pos $p |- 0 < 9 $=
    ( cc0 c8 c1 caddc co c9 clt 8re 1re 8pos 0lt1 addgt0ii df-9 breqtrri ) ABCD
    EFGBCHIJKLMN $.

  $( The number 10 is positive.  (Contributed by NM, 5-Feb-2007.)  Obsolete
     version of ~ 10pos as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  10posOLD $p |- 0 < 10 $=
    ( cc0 c9 c1 caddc co c10 clt 9re 1re 9pos 0lt1 addgt0ii df-10OLD breqtrri )
    ABCDEFGBCHIJKLMN $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Some properties of specific numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This section includes specific theorems about one-digit natural numbers
  (membership, addition, subtraction, multiplication, division, ordering).

$)

  $( -1 is a complex number (common case).  (Contributed by David A. Wheeler,
     7-Jul-2016.) $)
  neg1cn $p |- -u 1 e. CC $=
    ( c1 ax-1cn negcli ) ABC $.

  $( -1 is a real number (common case).  (Contributed by David A. Wheeler,
     5-Dec-2018.) $)
  neg1rr $p |- -u 1 e. RR $=
    ( c1 1re renegcli ) ABC $.

  $( -1 is nonzero (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  neg1ne0 $p |- -u 1 =/= 0 $=
    ( c1 ax-1cn ax-1ne0 negne0i ) ABCD $.

  $( -1 is less than 0 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  neg1lt0 $p |- -u 1 < 0 $=
    ( c1 cneg cc0 clt wbr neg0 0lt1 eqbrtri 1re 0re ltnegcon1i mpbir ) ABCDECBZ
    ADEMCADFGHACIJKL $.

  $( ` -u -u 1 ` is 1 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  negneg1e1 $p |- -u -u 1 = 1 $=
    ( c1 ax-1cn negnegi ) ABC $.

  $( ` 1 + -u 1 ` is 0 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  1pneg1e0 $p |- ( 1 + -u 1 ) = 0 $=
    ( c1 ax-1cn negidi ) ABC $.

  $( 0 minus 0 equals 0 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  0m0e0 $p |- ( 0 - 0 ) = 0 $=
    ( cc0 0cn subidi ) ABC $.

  $( 1 - 0 = 1 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  1m0e1 $p |- ( 1 - 0 ) = 1 $=
    ( c1 ax-1cn subid1i ) ABC $.

  $( 0 + 1 = 1.  (Contributed by David A. Wheeler, 7-Jul-2016.) $)
  0p1e1 $p |- ( 0 + 1 ) = 1 $=
    ( c1 ax-1cn addid2i ) ABC $.

  $( 1 + 0 = 1.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  1p0e1 $p |- ( 1 + 0 ) = 1 $=
    ( c1 ax-1cn addid1i ) ABC $.

  $( 1 + 1 = 2.  (Contributed by NM, 1-Apr-2008.) $)
  1p1e2 $p |- ( 1 + 1 ) = 2 $=
    ( c2 c1 caddc co df-2 eqcomi ) ABBCDEF $.

  $( 2 - 1 = 1.  The result is on the right-hand-side to be consistent with
     similar proofs like ~ 4p4e8 .  (Contributed by David A. Wheeler,
     4-Jan-2017.) $)
  2m1e1 $p |- ( 2 - 1 ) = 1 $=
    ( c2 c1 2cn ax-1cn 1p1e2 subaddrii ) ABBCDDEF $.

  $( 1 = 2 - 1 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  1e2m1 $p |- 1 = ( 2 - 1 ) $=
    ( c2 c1 cmin co 2m1e1 eqcomi ) ABCDBEF $.

  $( 3 - 1 = 2.  (Contributed by FL, 17-Oct-2010.)  (Revised by NM,
     10-Dec-2017.)  (Proof shortened by AV, 6-Sep-2021.) $)
  3m1e2 $p |- ( 3 - 1 ) = 2 $=
    ( c3 c2 c1 2cn ax-1cn df-3 mvrraddi ) ABCDEFG $.

  $( 4 - 1 = 3.  (Contributed by AV, 8-Feb-2021.)  (Proof shortened by AV,
     6-Sep-2021.) $)
  4m1e3 $p |- ( 4 - 1 ) = 3 $=
    ( c4 c3 c1 3cn ax-1cn df-4 mvrraddi ) ABCDEFG $.

  $( 5 - 1 = 4.  (Contributed by AV, 6-Sep-2021.) $)
  5m1e4 $p |- ( 5 - 1 ) = 4 $=
    ( c5 c4 c1 4cn ax-1cn df-5 mvrraddi ) ABCDEFG $.

  $( 6 - 1 = 5.  (Contributed by AV, 6-Sep-2021.) $)
  6m1e5 $p |- ( 6 - 1 ) = 5 $=
    ( c6 c5 c1 5cn ax-1cn df-6 mvrraddi ) ABCDEFG $.

  $( 7 - 1 = 6.  (Contributed by AV, 6-Sep-2021.) $)
  7m1e6 $p |- ( 7 - 1 ) = 6 $=
    ( c7 c6 c1 6cn ax-1cn df-7 mvrraddi ) ABCDEFG $.

  $( 8 - 1 = 7.  (Contributed by AV, 6-Sep-2021.) $)
  8m1e7 $p |- ( 8 - 1 ) = 7 $=
    ( c8 c7 c1 7cn ax-1cn df-8 mvrraddi ) ABCDEFG $.

  $( 9 - 1 = 8.  (Contributed by AV, 6-Sep-2021.) $)
  9m1e8 $p |- ( 9 - 1 ) = 8 $=
    ( c9 c8 c1 8cn ax-1cn df-9 mvrraddi ) ABCDEFG $.

  $( Two plus two equals four.  For more information, see "2+2=4 Trivia" on the
     Metamath Proof Explorer Home Page: ~ mmset.html#trivia .  This proof is
     simple, but it depends on many other proof steps because 2 and 4 are
     complex numbers and thus it depends on our construction of complex
     numbers.  The proof ~ o2p2e4 is similar but proves ` 2 + 2 = 4 ` using
     ordinal natural numbers (finite integers starting at 0), so that proof
     depends on fewer intermediate steps.  (Contributed by NM, 27-May-1999.) $)
  2p2e4 $p |- ( 2 + 2 ) = 4 $=
    ( c2 caddc co c1 c4 df-2 oveq2i c3 df-4 oveq1i ax-1cn addassi 3eqtri eqtr4i
    df-3 2cn ) AABCADDBCZBCZEAQABFGEHDBCADBCZDBCRIHSDBOJADDPKKLMN $.

  $( Two times a number.  (Contributed by NM, 10-Oct-2004.)  (Revised by Mario
     Carneiro, 27-May-2016.)  (Proof shortened by AV, 26-Feb-2020.) $)
  2times $p |- ( A e. CC -> ( 2 x. A ) = ( A + A ) ) $=
    ( cc wcel c2 cmul co c1 caddc df-2 oveq1i 1p1times syl5eq ) ABCDAEFGGHFZAEF
    AAHFDMAEIJAKL $.

  $( A number times 2.  (Contributed by NM, 16-Oct-2007.) $)
  times2 $p |- ( A e. CC -> ( A x. 2 ) = ( A + A ) ) $=
    ( cc wcel c2 cmul co caddc wceq 2cn mulcom mpan2 2times eqtrd ) ABCZADEFZDA
    EFZAAGFNDBCOPHIADJKALM $.

  ${
    2timesi.1 $e |- A e. CC $.
    $( Two times a number.  (Contributed by NM, 1-Aug-1999.) $)
    2timesi $p |- ( 2 x. A ) = ( A + A ) $=
      ( cc wcel c2 cmul co caddc wceq 2times ax-mp ) ACDEAFGAAHGIBAJK $.

    $( A number times 2.  (Contributed by NM, 11-May-2004.) $)
    times2i $p |- ( A x. 2 ) = ( A + A ) $=
      ( cc wcel c2 cmul co caddc wceq times2 ax-mp ) ACDAEFGAAHGIBAJK $.
  $}


  $( Two times a complex number minus the number itself results in the number
     itself.  (Contributed by Alexander van der Vekens, 8-Jun-2018.) $)
  2txmxeqx $p |- ( X e. CC -> ( ( 2 x. X ) - X ) = X ) $=
    ( cc wcel c2 cmul co cmin caddc 2times oveq1d id pncan2d eqtrd ) ABCZDAEFZA
    GFAAHFZAGFANOPAGAIJNAANKZQLM $.

  $( 2 divided by 2 is 1 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  2div2e1 $p |- ( 2 / 2 ) = 1 $=
    ( c2 2cn 2ne0 dividi ) ABCD $.

  $( 2 + 1 = 3.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  2p1e3 $p |- ( 2 + 1 ) = 3 $=
    ( c3 c2 c1 caddc co df-3 eqcomi ) ABCDEFG $.

  $( 1 + 2 = 3 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  1p2e3 $p |- ( 1 + 2 ) = 3 $=
    ( c2 c1 c3 2cn ax-1cn 2p1e3 addcomli ) ABCDEFG $.

  $( 3 + 1 = 4.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  3p1e4 $p |- ( 3 + 1 ) = 4 $=
    ( c4 c3 c1 caddc co df-4 eqcomi ) ABCDEFG $.

  $( 4 + 1 = 5.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  4p1e5 $p |- ( 4 + 1 ) = 5 $=
    ( c5 c4 c1 caddc co df-5 eqcomi ) ABCDEFG $.

  $( 5 + 1 = 6.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  5p1e6 $p |- ( 5 + 1 ) = 6 $=
    ( c6 c5 c1 caddc co df-6 eqcomi ) ABCDEFG $.

  $( 6 + 1 = 7.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  6p1e7 $p |- ( 6 + 1 ) = 7 $=
    ( c7 c6 c1 caddc co df-7 eqcomi ) ABCDEFG $.

  $( 7 + 1 = 8.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  7p1e8 $p |- ( 7 + 1 ) = 8 $=
    ( c8 c7 c1 caddc co df-8 eqcomi ) ABCDEFG $.

  $( 8 + 1 = 9.  (Contributed by Mario Carneiro, 18-Apr-2015.) $)
  8p1e9 $p |- ( 8 + 1 ) = 9 $=
    ( c9 c8 c1 caddc co df-9 eqcomi ) ABCDEFG $.

  $( 9 + 1 = 10.  (Contributed by Mario Carneiro, 18-Apr-2015.)  Obsolete
     version of ~ 9p1e10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  9p1e10OLD $p |- ( 9 + 1 ) = 10 $=
    ( c10 c9 c1 caddc co df-10OLD eqcomi ) ABCDEFG $.

  $( 3 + 2 = 5.  (Contributed by NM, 11-May-2004.) $)
  3p2e5 $p |- ( 3 + 2 ) = 5 $=
    ( c3 c2 caddc co c4 c1 c5 df-2 oveq2i 3cn ax-1cn addassi eqtr4i df-4 oveq1i
    df-5 ) ABCDZEFCDZGQAFCDZFCDZRQAFFCDZCDTBUAACHIAFFJKKLMESFCNOMPM $.

  $( 3 + 3 = 6.  (Contributed by NM, 11-May-2004.) $)
  3p3e6 $p |- ( 3 + 3 ) = 6 $=
    ( c3 caddc co c2 c1 c6 df-3 oveq2i 3cn 2cn ax-1cn addassi eqtr4i df-6 3p2e5
    c5 oveq1i ) AABCZADBCZEBCZFRADEBCZBCTAUAABGHADEIJKLMFPEBCTNSPEBOQMM $.

  $( 4 + 2 = 6.  (Contributed by NM, 11-May-2004.) $)
  4p2e6 $p |- ( 4 + 2 ) = 6 $=
    ( c4 c2 caddc co c5 c1 c6 df-2 oveq2i 4cn ax-1cn addassi eqtr4i df-5 oveq1i
    df-6 ) ABCDZEFCDZGQAFCDZFCDZRQAFFCDZCDTBUAACHIAFFJKKLMESFCNOMPM $.

  $( 4 + 3 = 7.  (Contributed by NM, 11-May-2004.) $)
  4p3e7 $p |- ( 4 + 3 ) = 7 $=
    ( c4 c3 caddc co c2 c1 c7 df-3 oveq2i 4cn 2cn ax-1cn addassi eqtr4i c6 df-7
    4p2e6 oveq1i ) ABCDZAECDZFCDZGSAEFCDZCDUABUBACHIAEFJKLMNGOFCDUAPTOFCQRNN $.

  $( 4 + 4 = 8.  (Contributed by NM, 11-May-2004.) $)
  4p4e8 $p |- ( 4 + 4 ) = 8 $=
    ( c4 caddc co c3 c1 c8 df-4 oveq2i 4cn 3cn ax-1cn addassi eqtr4i df-8 4p3e7
    c7 oveq1i ) AABCZADBCZEBCZFRADEBCZBCTAUAABGHADEIJKLMFPEBCTNSPEBOQMM $.

  $( 5 + 2 = 7.  (Contributed by NM, 11-May-2004.) $)
  5p2e7 $p |- ( 5 + 2 ) = 7 $=
    ( c5 c2 caddc co c6 c1 c7 df-2 oveq2i 5cn ax-1cn addassi eqtr4i df-6 oveq1i
    df-7 ) ABCDZEFCDZGQAFCDZFCDZRQAFFCDZCDTBUAACHIAFFJKKLMESFCNOMPM $.

  $( 5 + 3 = 8.  (Contributed by NM, 11-May-2004.) $)
  5p3e8 $p |- ( 5 + 3 ) = 8 $=
    ( c5 c3 caddc co c2 c1 c8 df-3 oveq2i 5cn 2cn ax-1cn addassi eqtr4i c7 df-8
    5p2e7 oveq1i ) ABCDZAECDZFCDZGSAEFCDZCDUABUBACHIAEFJKLMNGOFCDUAPTOFCQRNN $.

  $( 5 + 4 = 9.  (Contributed by NM, 11-May-2004.) $)
  5p4e9 $p |- ( 5 + 4 ) = 9 $=
    ( c5 c4 caddc co c3 c1 c9 df-4 oveq2i 5cn 3cn ax-1cn addassi eqtr4i c8 df-9
    5p3e8 oveq1i ) ABCDZAECDZFCDZGSAEFCDZCDUABUBACHIAEFJKLMNGOFCDUAPTOFCQRNN $.

  $( 5 + 5 = 10.  (Contributed by NM, 5-Feb-2007.)  Obsolete version of
     ~ 5p5e10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  5p5e10OLD $p |- ( 5 + 5 ) = 10 $=
    ( c5 caddc co c4 c1 c10 oveq2i 5cn 4cn ax-1cn addassi eqtr4i df-10OLD 5p4e9
    df-5 c9 oveq1i ) AABCZADBCZEBCZFRADEBCZBCTAUAABOGADEHIJKLFPEBCTMSPEBNQLL $.

  $( 6 + 2 = 8.  (Contributed by NM, 11-May-2004.) $)
  6p2e8 $p |- ( 6 + 2 ) = 8 $=
    ( c6 c2 caddc co c7 c1 c8 df-2 oveq2i 6cn ax-1cn addassi eqtr4i df-7 oveq1i
    df-8 ) ABCDZEFCDZGQAFCDZFCDZRQAFFCDZCDTBUAACHIAFFJKKLMESFCNOMPM $.

  $( 6 + 3 = 9.  (Contributed by NM, 11-May-2004.) $)
  6p3e9 $p |- ( 6 + 3 ) = 9 $=
    ( c6 c3 caddc co c2 c1 c9 df-3 oveq2i 6cn 2cn ax-1cn addassi eqtr4i c8 df-9
    6p2e8 oveq1i ) ABCDZAECDZFCDZGSAEFCDZCDUABUBACHIAEFJKLMNGOFCDUAPTOFCQRNN $.

  $( 6 + 4 = 10.  (Contributed by NM, 5-Feb-2007.)  Obsolete version of
     ~ 6p4e10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  6p4e10OLD $p |- ( 6 + 4 ) = 10 $=
    ( c6 c4 caddc co c3 c1 c10 oveq2i 6cn 3cn ax-1cn addassi eqtr4i c9 df-10OLD
    df-4 6p3e9 oveq1i ) ABCDZAECDZFCDZGSAEFCDZCDUABUBACPHAEFIJKLMGNFCDUAOTNFCQR
    MM $.

  $( 7 + 2 = 9.  (Contributed by NM, 11-May-2004.) $)
  7p2e9 $p |- ( 7 + 2 ) = 9 $=
    ( c7 c2 caddc co c8 c1 c9 df-2 oveq2i 7cn ax-1cn addassi eqtr4i df-8 oveq1i
    df-9 ) ABCDZEFCDZGQAFCDZFCDZRQAFFCDZCDTBUAACHIAFFJKKLMESFCNOMPM $.

  $( 7 + 3 = 10.  (Contributed by NM, 5-Feb-2007.)  Obsolete version of
     ~ 7p3e10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  7p3e10OLD $p |- ( 7 + 3 ) = 10 $=
    ( c7 c3 caddc co c2 c1 c10 oveq2i 7cn 2cn ax-1cn addassi eqtr4i c9 df-10OLD
    df-3 7p2e9 oveq1i ) ABCDZAECDZFCDZGSAEFCDZCDUABUBACPHAEFIJKLMGNFCDUAOTNFCQR
    MM $.

  $( 8 + 2 = 10.  (Contributed by NM, 5-Feb-2007.)  Obsolete version of
     ~ 8p2e10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  8p2e10OLD $p |- ( 8 + 2 ) = 10 $=
    ( c8 c2 caddc co c9 c10 df-2 oveq2i 8cn ax-1cn addassi eqtr4i df-9 df-10OLD
    c1 oveq1i ) ABCDZEOCDZFQAOCDZOCDZRQAOOCDZCDTBUAACGHAOOIJJKLESOCMPLNL $.

  $( 1 times 1 equals 1.  (Contributed by David A. Wheeler, 7-Jul-2016.) $)
  1t1e1 $p |- ( 1 x. 1 ) = 1 $=
    ( c1 ax-1cn mulid1i ) ABC $.

  $( 2 times 1 equals 2.  (Contributed by David A. Wheeler, 6-Dec-2018.) $)
  2t1e2 $p |- ( 2 x. 1 ) = 2 $=
    ( c2 2cn mulid1i ) ABC $.

  $( 2 times 2 equals 4.  (Contributed by NM, 1-Aug-1999.) $)
  2t2e4 $p |- ( 2 x. 2 ) = 4 $=
    ( c2 cmul co caddc c4 2cn 2timesi 2p2e4 eqtri ) AABCAADCEAFGHI $.

  $( 3 times 1 equals 3.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  3t1e3 $p |- ( 3 x. 1 ) = 3 $=
    ( c3 3cn mulid1i ) ABC $.

  $( 3 times 2 equals 6.  (Contributed by NM, 2-Aug-2004.) $)
  3t2e6 $p |- ( 3 x. 2 ) = 6 $=
    ( c3 c2 cmul co caddc c6 3cn times2i 3p3e6 eqtri ) ABCDAAEDFAGHIJ $.

  $( 3 times 3 equals 9.  (Contributed by NM, 11-May-2004.) $)
  3t3e9 $p |- ( 3 x. 3 ) = 9 $=
    ( c3 cmul co c2 c1 caddc c9 df-3 oveq2i 3cn 2cn ax-1cn adddii 3t2e6 oveq12i
    c6 3t1e3 eqtri 6p3e9 ) AABCADEFCZBCZGATABHIUAPAFCZGUAADBCZAEBCZFCUBADEJKLMU
    CPUDAFNQORSRR $.

  $( 4 times 2 equals 8.  (Contributed by NM, 2-Aug-2004.) $)
  4t2e8 $p |- ( 4 x. 2 ) = 8 $=
    ( c4 c2 cmul co caddc c8 4cn times2i 4p4e8 eqtri ) ABCDAAEDFAGHIJ $.

  $( 5 times 2 equals 10.  (Contributed by NM, 5-Feb-2007.)  Obsolete version
     of ~ 5t2e10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  5t2e10OLD $p |- ( 5 x. 2 ) = 10 $=
    ( c5 c2 cmul co caddc c10 5cn times2i 5p5e10OLD eqtri ) ABCDAAEDFAGHIJ $.

  $( 2 times 0 equals 0.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  2t0e0 $p |- ( 2 x. 0 ) = 0 $=
    ( c2 2cn mul01i ) ABC $.

  $( One half of four is two.  (Contributed by NM, 3-Sep-1999.) $)
  4d2e2 $p |- ( 4 / 2 ) = 2 $=
    ( c4 c2 cdiv co wceq cmul 2t2e4 4cn 2cn 2ne0 divmuli mpbir ) ABCDBEBBFDAEGA
    BBHIIJKL $.

  $( 2 is a positive integer.  (Contributed by NM, 20-Aug-2001.) $)
  2nn $p |- 2 e. NN $=
    ( c2 c1 caddc co cn df-2 wcel 1nn peano2nn ax-mp eqeltri ) ABBCDZEFBEGLEGHB
    IJK $.

  $( 3 is a positive integer.  (Contributed by NM, 8-Jan-2006.) $)
  3nn $p |- 3 e. NN $=
    ( c3 c2 c1 caddc co cn df-3 wcel 2nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( 4 is a positive integer.  (Contributed by NM, 8-Jan-2006.) $)
  4nn $p |- 4 e. NN $=
    ( c4 c3 c1 caddc co cn df-4 wcel 3nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( 5 is a positive integer.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  5nn $p |- 5 e. NN $=
    ( c5 c4 c1 caddc co cn df-5 wcel 4nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( 6 is a positive integer.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  6nn $p |- 6 e. NN $=
    ( c6 c5 c1 caddc co cn df-6 wcel 5nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( 7 is a positive integer.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  7nn $p |- 7 e. NN $=
    ( c7 c6 c1 caddc co cn df-7 wcel 6nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( 8 is a positive integer.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  8nn $p |- 8 e. NN $=
    ( c8 c7 c1 caddc co cn df-8 wcel 7nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( 9 is a positive integer.  (Contributed by NM, 21-Oct-2012.) $)
  9nn $p |- 9 e. NN $=
    ( c9 c8 c1 caddc co cn df-9 wcel 8nn peano2nn ax-mp eqeltri ) ABCDEZFGBFHMF
    HIBJKL $.

  $( Obsolete version of ~ 10nn as of 6-Sep-2021.  (Contributed by NM,
     8-Nov-2012.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  10nnOLD $p |- 10 e. NN $=
    ( c10 c9 c1 caddc co cn df-10OLD wcel 9nn peano2nn ax-mp eqeltri ) ABCDEZFG
    BFHMFHIBJKL $.

  $( 1 is less than 2.  (Contributed by NM, 24-Feb-2005.) $)
  1lt2 $p |- 1 < 2 $=
    ( c1 caddc co c2 clt 1re ltp1i df-2 breqtrri ) AAABCDEAFGHI $.

  $( 2 is less than 3.  (Contributed by NM, 26-Sep-2010.) $)
  2lt3 $p |- 2 < 3 $=
    ( c2 c1 caddc co c3 clt 2re ltp1i df-3 breqtrri ) AABCDEFAGHIJ $.

  $( 1 is less than 3.  (Contributed by NM, 26-Sep-2010.) $)
  1lt3 $p |- 1 < 3 $=
    ( c1 c2 clt wbr c3 1lt2 2lt3 1re 2re 3re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 3 is less than 4.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  3lt4 $p |- 3 < 4 $=
    ( c3 c1 caddc co c4 clt 3re ltp1i df-4 breqtrri ) AABCDEFAGHIJ $.

  $( 2 is less than 4.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  2lt4 $p |- 2 < 4 $=
    ( c2 c3 clt wbr c4 2lt3 3lt4 2re 3re 4re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 1 is less than 4.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  1lt4 $p |- 1 < 4 $=
    ( c1 c2 clt wbr c4 1lt2 2lt4 1re 2re 4re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 4 is less than 5.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  4lt5 $p |- 4 < 5 $=
    ( c4 c1 caddc co c5 clt 4re ltp1i df-5 breqtrri ) AABCDEFAGHIJ $.

  $( 3 is less than 5.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  3lt5 $p |- 3 < 5 $=
    ( c3 c4 clt wbr c5 3lt4 4lt5 3re 4re 5re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 2 is less than 5.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  2lt5 $p |- 2 < 5 $=
    ( c2 c4 clt wbr c5 2lt4 4lt5 2re 4re 5re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 1 is less than 5.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  1lt5 $p |- 1 < 5 $=
    ( c1 c4 clt wbr c5 1lt4 4lt5 1re 4re 5re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 5 is less than 6.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  5lt6 $p |- 5 < 6 $=
    ( c5 c1 caddc co c6 clt 5re ltp1i df-6 breqtrri ) AABCDEFAGHIJ $.

  $( 4 is less than 6.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  4lt6 $p |- 4 < 6 $=
    ( c4 c5 clt wbr c6 4lt5 5lt6 4re 5re 6re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 3 is less than 6.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  3lt6 $p |- 3 < 6 $=
    ( c3 c4 clt wbr c6 3lt4 4lt6 3re 4re 6re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 2 is less than 6.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  2lt6 $p |- 2 < 6 $=
    ( c2 c3 clt wbr c6 2lt3 3lt6 2re 3re 6re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 1 is less than 6.  (Contributed by NM, 19-Oct-2012.) $)
  1lt6 $p |- 1 < 6 $=
    ( c1 c2 clt wbr c6 1lt2 2lt6 1re 2re 6re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 6 is less than 7.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  6lt7 $p |- 6 < 7 $=
    ( c6 c1 caddc co c7 clt 6re ltp1i df-7 breqtrri ) AABCDEFAGHIJ $.

  $( 5 is less than 7.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  5lt7 $p |- 5 < 7 $=
    ( c5 c6 clt wbr c7 5lt6 6lt7 5re 6re 7re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 4 is less than 7.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  4lt7 $p |- 4 < 7 $=
    ( c4 c5 clt wbr c7 4lt5 5lt7 4re 5re 7re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 3 is less than 7.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  3lt7 $p |- 3 < 7 $=
    ( c3 c4 clt wbr c7 3lt4 4lt7 3re 4re 7re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 2 is less than 7.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  2lt7 $p |- 2 < 7 $=
    ( c2 c3 clt wbr c7 2lt3 3lt7 2re 3re 7re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 1 is less than 7.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  1lt7 $p |- 1 < 7 $=
    ( c1 c2 clt wbr c7 1lt2 2lt7 1re 2re 7re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 7 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  7lt8 $p |- 7 < 8 $=
    ( c7 c1 caddc co c8 clt 7re ltp1i df-8 breqtrri ) AABCDEFAGHIJ $.

  $( 6 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  6lt8 $p |- 6 < 8 $=
    ( c6 c7 clt wbr c8 6lt7 7lt8 6re 7re 8re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 5 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  5lt8 $p |- 5 < 8 $=
    ( c5 c6 clt wbr c8 5lt6 6lt8 5re 6re 8re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 4 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  4lt8 $p |- 4 < 8 $=
    ( c4 c5 clt wbr c8 4lt5 5lt8 4re 5re 8re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 3 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  3lt8 $p |- 3 < 8 $=
    ( c3 c4 clt wbr c8 3lt4 4lt8 3re 4re 8re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 2 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  2lt8 $p |- 2 < 8 $=
    ( c2 c3 clt wbr c8 2lt3 3lt8 2re 3re 8re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 1 is less than 8.  (Contributed by Mario Carneiro, 15-Sep-2013.) $)
  1lt8 $p |- 1 < 8 $=
    ( c1 c2 clt wbr c8 1lt2 2lt8 1re 2re 8re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 8 is less than 9.  (Contributed by Mario Carneiro, 19-Feb-2014.) $)
  8lt9 $p |- 8 < 9 $=
    ( c8 c1 caddc co c9 clt 8re ltp1i df-9 breqtrri ) AABCDEFAGHIJ $.

  $( 7 is less than 9.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
  7lt9 $p |- 7 < 9 $=
    ( c7 c8 clt wbr c9 7lt8 8lt9 7re 8re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 6 is less than 9.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
  6lt9 $p |- 6 < 9 $=
    ( c6 c7 clt wbr c9 6lt7 7lt9 6re 7re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 5 is less than 9.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
  5lt9 $p |- 5 < 9 $=
    ( c5 c6 clt wbr c9 5lt6 6lt9 5re 6re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 4 is less than 9.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
  4lt9 $p |- 4 < 9 $=
    ( c4 c5 clt wbr c9 4lt5 5lt9 4re 5re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 3 is less than 9.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
  3lt9 $p |- 3 < 9 $=
    ( c3 c4 clt wbr c9 3lt4 4lt9 3re 4re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 2 is less than 9.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
  2lt9 $p |- 2 < 9 $=
    ( c2 c3 clt wbr c9 2lt3 3lt9 2re 3re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 1 is less than 9.  (Contributed by NM, 19-Oct-2012.)  (Revised by Mario
     Carneiro, 9-Mar-2015.) $)
  1lt9 $p |- 1 < 9 $=
    ( c1 c2 clt wbr c9 1lt2 2lt9 1re 2re 9re lttri mp2an ) ABCDBECDAECDFGABEHIJ
    KL $.

  $( 9 is less than 10.  (Contributed by Mario Carneiro, 8-Feb-2015.)  Obsolete
     version of ~ 9lt10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  9lt10OLD $p |- 9 < 10 $=
    ( c9 c1 caddc co c10 clt 9re ltp1i df-10OLD breqtrri ) AABCDEFAGHIJ $.

  $( 8 is less than 10.  (Contributed by Mario Carneiro, 8-Feb-2015.)  Obsolete
     version of ~ 8lt10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  8lt10OLD $p |- 8 < 10 $=
    ( c8 c9 clt wbr c10 8lt9 9lt10OLD 8re 9re 10reOLD lttri mp2an ) ABCDBECDAEC
    DFGABEHIJKL $.

  $( 7 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.)
     Obsolete version of ~ 7lt10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  7lt10OLD $p |- 7 < 10 $=
    ( c7 c8 clt wbr c10 7lt8 8lt10OLD 7re 8re 10reOLD lttri mp2an ) ABCDBECDAEC
    DFGABEHIJKL $.

  $( 6 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.)
     Obsolete version of ~ 6lt10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  6lt10OLD $p |- 6 < 10 $=
    ( c6 c7 clt wbr c10 6lt7 7lt10OLD 6re 7re 10reOLD lttri mp2an ) ABCDBECDAEC
    DFGABEHIJKL $.

  $( 5 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.)
     Obsolete version of ~ 5lt10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  5lt10OLD $p |- 5 < 10 $=
    ( c5 c6 clt wbr c10 5lt6 6lt10OLD 5re 6re 10reOLD lttri mp2an ) ABCDBECDAEC
    DFGABEHIJKL $.

  $( 4 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.)
     Obsolete version of ~ 4lt10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  4lt10OLD $p |- 4 < 10 $=
    ( c4 c5 clt wbr c10 4lt5 5lt10OLD 4re 5re 10reOLD lttri mp2an ) ABCDBECDAEC
    DFGABEHIJKL $.

  $( 3 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.)
     Obsolete version of ~ 3lt10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  3lt10OLD $p |- 3 < 10 $=
    ( c3 c4 clt wbr c10 3lt4 4lt10OLD 3re 4re 10reOLD lttri mp2an ) ABCDBECDAEC
    DFGABEHIJKL $.

  $( 2 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.)
     Obsolete version of ~ 2lt10 as of 8-Sep-2021.  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  2lt10OLD $p |- 2 < 10 $=
    ( c2 c3 clt wbr c10 2lt3 3lt10OLD 2re 3re 10reOLD lttri mp2an ) ABCDBECDAEC
    DFGABEHIJKL $.

  $( 1 is less than 10.  (Contributed by NM, 7-Nov-2012.)  (Revised by Mario
     Carneiro, 9-Mar-2015.)  Obsolete version of ~ 1lt10 as of 8-Sep-2021.
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  1lt10OLD $p |- 1 < 10 $=
    ( c1 c2 clt wbr c10 1lt2 2lt10OLD 1re 2re 10reOLD lttri mp2an ) ABCDBECDAEC
    DFGABEHIJKL $.

  $( 0 is not equal to 2.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  0ne2 $p |- 0 =/= 2 $=
    ( c2 cc0 2ne0 necomi ) ABCD $.

  $( 1 is not equal to 2.  (Contributed by NM, 19-Oct-2012.) $)
  1ne2 $p |- 1 =/= 2 $=
    ( c1 c2 1re 1lt2 ltneii ) ABCDE $.

  $( 1 is less than or equal to 2 (common case).  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  1le2 $p |- 1 <_ 2 $=
    ( c1 c2 1re 2re 1lt2 ltleii ) ABCDEF $.

  $( 2 is a nonzero complex number (common case).  (Contributed by David A.
     Wheeler, 7-Dec-2018.) $)
  2cnne0 $p |- ( 2 e. CC /\ 2 =/= 0 ) $=
    ( c2 cc wcel cc0 wne 2cn 2ne0 pm3.2i ) ABCADEFGH $.

  $( 2 is a nonzero real number (common case).  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  2rene0 $p |- ( 2 e. RR /\ 2 =/= 0 ) $=
    ( c2 cr wcel cc0 wne 2re 2ne0 pm3.2i ) ABCADEFGH $.

  $( 1 is less than or equal to 3.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  1le3 $p |- 1 <_ 3 $=
    ( c1 c3 1re 3re 1lt3 ltleii ) ABCDEF $.

  $( ` -u 1 x. -u 1 ` is 1 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  neg1mulneg1e1 $p |- ( -u 1 x. -u 1 ) = 1 $=
    ( c1 cneg cmul co ax-1cn mul2negi 1t1e1 eqtri ) ABZICDAACDAAAEEFGH $.

  $( One-half is real.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  halfre $p |- ( 1 / 2 ) e. RR $=
    ( c2 2re 2ne0 rereccli ) ABCD $.

  $( One-half is complex.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  halfcn $p |- ( 1 / 2 ) e. CC $=
    ( c2 2cn 2ne0 reccli ) ABCD $.

  $( One-half is greater than zero.  (Contributed by NM, 24-Feb-2005.) $)
  halfgt0 $p |- 0 < ( 1 / 2 ) $=
    ( c2 2re 2pos recgt0ii ) ABCD $.

  $( One-half is not negative.  (Contributed by AV, 7-Jun-2020.) $)
  halfge0 $p |- 0 <_ ( 1 / 2 ) $=
    ( cc0 c1 c2 cdiv co 0re halfre halfgt0 ltleii ) ABCDEFGHI $.

  $( One-half is less than one.  (Contributed by NM, 24-Feb-2005.) $)
  halflt1 $p |- ( 1 / 2 ) < 1 $=
    ( c1 cdiv co clt wbr 1div1e1 1lt2 eqbrtri 1re 2re 0lt1 2pos ltdiv23ii mpbi
    c2 ) AABCZODEAOBCADEPAODFGHAAOIIJKLMN $.

  $( Prove that 1 - 1/2 = 1/2.  (Contributed by David A. Wheeler,
     4-Jan-2017.) $)
  1mhlfehlf $p |- ( 1 - ( 1 / 2 ) ) = ( 1 / 2 ) $=
    ( c2 c1 cmin co cdiv cc wcel cc0 wne wceq 2cn ax-1cn 2cnne0 divsubdir mp3an
    wa 2m1e1 oveq1i 2div2e1 3eqtr3ri ) ABCDZAEDZAAEDZBAEDZCDZUDBUDCDAFGZBFGUFAH
    IPUBUEJKLMABANOUABAEQRUCBUDCSRT $.

  $( An eighth of four thirds is a sixth.  (Contributed by Paul Chapman,
     24-Nov-2007.) $)
  8th4div3 $p |- ( ( 1 / 8 ) x. ( 4 / 3 ) ) = ( 1 / 6 ) $=
    ( c1 c8 cdiv co c4 c3 cmul c6 ax-1cn 8re recni 4cn gt0ne0ii c2 eqtr3i eqtri
    3cn 2cn cc wcel divmuldivi mulcomi mul32i 4t2e8 oveq1i mulassi 3t2e6 oveq2i
    8pos 3ne0 oveq12i cc0 wne wceq 6re 6pos 4ne0 wa divcan5 mp3an1 mp4an ) ABCD
    EFCDGDZEAGDZEHGDZCDZAHCDZVBAEGDZBFGDZCDVEABEFIBJKLQBJUIMUJUAVGVCVHVDCAEILUB
    VHEFNGDZGDZVDEFGDNGDZVHVJENGDZFGDVKVHENFLRQUCVLBFGUDUEOEFNLQRUFOVIHEGUGUHPU
    KPHSTZHULUMZESTZEULUMZVEVFUNZHUOKHUOUPMLUQASTVMVNURVOVPURVQIAHEUSUTVAP $.

  $( One half plus or minus one sixth.  (Contributed by Paul Chapman,
     17-Jan-2008.) $)
  halfpm6th $p |- ( ( ( 1 / 2 ) - ( 1 / 6 ) ) = ( 1 / 3 ) /\
                       ( ( 1 / 2 ) + ( 1 / 6 ) ) = ( 2 / 3 ) ) $=
    ( c1 c2 cdiv co c6 cmin wceq caddc cmul 3cn ax-1cn 2cn 3ne0 2ne0 divmuldivi
    c3 oveq1i mulid1i 3t2e6 oveq12i dividi halfcn mulid2i eqtri 3eqtr3i cc wcel
    cc0 wne wa 6cn 6re 6pos gt0ne0ii pm3.2i divsubdir mp3an 3m1e2 oveq2i reccli
    3eqtr2i c4 divdiri df-4 3eqtr4ri 2t2e4 divcli ) ABCDZAECDZFDZAPCDZGVHVIHDZB
    PCDZGVJPECDZVIFDZPAFDZECDZVKVHVNVIFPPCDZVHIDZPAIDZPBIDZCDVHVNPPABJJKLMNOVSA
    VHIDVHVRAVHIPJMUAQVHUBUCUDVTPWAECPJRSTUEZQPUFUGAUFUGEUFUGZEUHUIZUJVQVOGJKWC
    WDUKEULUMUNZUOPAEUPUQVQBECDABIDZWACDZVKVPBECURQWFBWAECBLUCSTVKBBCDZIDVKAIDW
    GVKWHAVKIBLNUAZUSAPBBKJLLMNOVKPJMUTRUEVAVAVLVBECDZBBIDZWACDZVMPAHDZECDVNVIH
    DWJVLPAEJKUKWEVCVBWMECVDQVHVNVIHWBQVEWKVBWAECVFSTVMWHIDVMAIDWLVMWHAVMIWIUSB
    PBBLJLLMNOVMBPLJMVGRUEVAUO $.

  $( i times 0 equals 0 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  it0e0 $p |- ( _i x. 0 ) = 0 $=
    ( ci ax-icn mul01i ) ABC $.

  $( ` ( 2 x. _i ) e. CC ` (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  2mulicn $p |- ( 2 x. _i ) e. CC $=
    ( c2 ci 2cn ax-icn mulcli ) ABCDE $.

  $( ` ( 2 x. _i ) =/= 0 ` (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  2muline0 $p |- ( 2 x. _i ) =/= 0 $=
    ( c2 ci 2cn ax-icn 2ne0 ine0 mulne0i ) ABCDEFG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Simple number properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Closure of half of a number (common case).  (Contributed by NM,
     1-Jan-2006.) $)
  halfcl $p |- ( A e. CC -> ( A / 2 ) e. CC ) $=
    ( cc wcel c2 cc0 wne cdiv co 2cn 2ne0 divcl mp3an23 ) ABCDBCDEFADGHBCIJADKL
    $.

  $( Real closure of half.  (Contributed by NM, 1-Jan-2006.) $)
  rehalfcl $p |- ( A e. RR -> ( A / 2 ) e. RR ) $=
    ( cr wcel c2 cc0 wne cdiv co 2re 2ne0 redivcl mp3an23 ) ABCDBCDEFADGHBCIJAD
    KL $.

  $( Half of a number is zero iff the number is zero.  (Contributed by NM,
     20-Apr-2006.) $)
  half0 $p |- ( A e. CC -> ( ( A / 2 ) = 0 <-> A = 0 ) ) $=
    ( cc wcel c2 cc0 wne cdiv co wceq wb 2cn 2ne0 diveq0 mp3an23 ) ABCDBCDEFADG
    HEIAEIJKLADMN $.

  $( Two halves make a whole.  (Contributed by NM, 11-Apr-2005.) $)
  2halves $p |- ( A e. CC -> ( ( A / 2 ) + ( A / 2 ) ) = A ) $=
    ( cc wcel c2 cmul co cdiv caddc 2times oveq1d cc0 wne wceq 2cn 2ne0 divcan3
    mp3an23 wa 2cnne0 divdir mp3an3 anidms 3eqtr3rd ) ABCZDAEFZDGFZAAHFZDGFZAAD
    GFZUIHFZUDUEUGDGAIJUDDBCZDKLZUFAMNOADPQUDUHUJMZUDUDUKULRUMSAADTUAUBUC $.

  $( A number is positive iff its half is positive.  (Contributed by NM,
     10-Apr-2005.) $)
  halfpos2 $p |- ( A e. RR -> ( 0 < A <-> 0 < ( A / 2 ) ) ) $=
    ( cr wcel c2 cc0 clt wbr cdiv co wb 2re 2pos gt0div mp3an23 ) ABCDBCEDFGEAF
    GEADHIFGJKLADMN $.

  $( A positive number is greater than its half.  (Contributed by NM,
     28-Oct-2004.)  (Proof shortened by Mario Carneiro, 27-May-2016.) $)
  halfpos $p |- ( A e. RR -> ( 0 < A <-> ( A / 2 ) < A ) ) $=
    ( cr wcel cc0 clt c2 cdiv co caddc halfpos2 rehalfcl ltaddposd cc wceq recn
    wbr 2halves syl breq2d 3bitrd ) ABCZDAEPDAFGHZEPUBUBUBIHZEPUBAEPAJUAUBUBAKZ
    UDLUAUCAUBEUAAMCUCANAOAQRST $.

  $( A number is nonnegative iff its half is nonnegative.  (Contributed by NM,
     9-Dec-2005.) $)
  halfnneg2 $p |- ( A e. RR -> ( 0 <_ A <-> 0 <_ ( A / 2 ) ) ) $=
    ( cr wcel c2 cc0 clt wbr cle cdiv co wb 2re 2pos ge0div mp3an23 ) ABCDBCEDF
    GEAHGEADIJHGKLMADNO $.

  $( Closure of half-sum and half-difference.  (Contributed by Paul Chapman,
     12-Oct-2007.) $)
  halfaddsubcl $p |- ( ( A e. CC /\ B e. CC ) -> ( ( ( A + B ) / 2 ) e. CC /\
                         ( ( A - B ) / 2 ) e. CC ) ) $=
    ( cc wcel wa caddc co c2 cdiv cmin addcl halfcl syl subcl jca ) ACDBCDEZABF
    GZHIGCDZABJGZHIGCDZPQCDRABKQLMPSCDTABNSLMO $.

  $( Sum and difference of half-sum and half-difference.  (Contributed by Paul
     Chapman, 12-Oct-2007.) $)
  halfaddsub $p |- ( ( A e. CC /\ B e. CC ) ->
                      ( ( ( ( A + B ) / 2 ) + ( ( A - B ) / 2 ) ) = A /\
                        ( ( ( A + B ) / 2 ) - ( ( A - B ) / 2 ) ) = B ) ) $=
    ( cc wcel wa caddc cdiv cmin wceq 2times adantr eqtr4d oveq1d 2cnne0 mp3an3
    co c2 cmul syl2anc 2cn ppncan 3anidm13 addcl cc0 wne divdir divcan3 mp3an23
    subcl 2ne0 3eqtr3d pnncan 3anidm23 adantl divsubdir jca ) ACDZBCDZEZABFPZQG
    PZABHPZQGPZFPZAIVAVCHPZBIUSUTVBFPZQGPZQARPZQGPZVDAUSVFVHQGUSVFAAFPZVHUQURVF
    VJIABAUAUBUQVHVJIURAJKLMUSUTCDZVBCDZVGVDIZABUCZABUIZVKVLQCDZQUDUEZEZVMNUTVB
    QUFOSUQVIAIZURUQVPVQVSTUJAQUGUHKUKUSUTVBHPZQGPZQBRPZQGPZVEBUSVTWBQGUSVTBBFP
    ZWBUQURVTWDIABBULUMURWBWDIUQBJUNLMUSVKVLWAVEIZVNVOVKVLVRWENUTVBQUOOSURWCBIZ
    UQURVPVQWFTUJBQUGUHUNUKUP $.

  $( Subtracting the half of a number from the number yields the half of the
     number.  (Contributed by AV, 28-Jun-2021.) $)
  subhalfhalf $p |- ( A e. CC -> ( A - ( A / 2 ) ) = ( A / 2 ) ) $=
    ( cc wcel c2 cdiv co cmin cmul 2cnd cc0 wne 2ne0 a1i divcan1d eqcomd oveq1d
    id halfcl c1 3eqtrd mulcomd mulsubfacd wceq 2m1e1 mulid2d ) ABCZAADEFZGFUGD
    HFZUGGFDUGHFZUGGFZUGUFAUHUGGUFUHAUFADUFQUFIZDJKUFLMNOPUFUHUIUGGUFUGDARZUKUA
    PUFUJDSGFZUGHFSUGHFUGUFDUGUKULUBUFUMSUGHUMSUCUFUDMPUFUGULUETT $.

  $( TODO - use this to reduce:
  Statement "lt2add" is directly referenced in the proofs of 9 statements:
    2climnn 2climnn0 climaddlem3 climmullem5 climcaui ser1f0i
  MM> sh us 2halves
  Statement "2halves" is directly referenced in the proofs of 10 statements:
    2climnn 2climnn0 climmullem5 climcaui caucvgi ser1f0i
  MM>
  $)
  $( A sum is less than the whole if each term is less than half.  (Contributed
     by NM, 13-Dec-2006.) $)
  lt2halves $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                ( ( A < ( C / 2 ) /\ B < ( C / 2 ) ) -> ( A + B ) < C ) ) $=
    ( cr wcel w3a c2 co clt wbr wa caddc wi 3simpa rehalfcl jca 3ad2ant3 lt2add
    cdiv syl2anc wb cc wceq recn 2halves syl breq2d sylibd ) ADEZBDEZCDEZFZACGS
    HZIJBUMIJKZABLHZUMUMLHZIJZUOCIJZULUIUJKUMDEZUSKZUNUQMUIUJUKNUKUIUTUJUKUSUSC
    OZVAPQABUMUMRTUKUIUQURUAUJUKUPCUOIUKCUBEUPCUCCUDCUEUFUGQUH $.

  $( Sum is less than product for numbers greater than 2.  (Contributed by
     Stefan Allan, 24-Sep-2010.) $)
  addltmul $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 2 < A /\ 2 < B ) )
              -> ( A + B ) < ( A x. B ) ) $=
    ( cr wcel wa c2 clt wbr caddc co cmul c1 cmin 2re 1re ltsub1 syl2an remulcl
    wb cc mp3an13 2m1e1 breq1i syl6bb bi2anan9 wi peano2rem mulgt1 ex wceq recn
    sylbid ax-1cn mulsub mpanl2 mpanr2 breq2d 1t1e1 oveq2i breq2i mpan2 readdcl
    remulcli sylancl ltaddsub2 mp3an2 syl2anc syl5rbbr ltadd1 ax-1rid oveqan12d
    mp3an3 breq1d bitr3d 3bitrd sylibd imp ) ACDZBCDZEZFAGHZFBGHZEZABIJZABKJZGH
    ZVTWCLALMJZBLMJZKJZGHZWFVTWCLWGGHZLWHGHZEZWJVRWAWKVSWBWLVRWAFLMJZWGGHZWKFCD
    ZVRLCDZWAWOSNOFALPUAWNLWGGUBUCUDVSWBWNWHGHZWLWPVSWQWBWRSNOFBLPUAWNLWHGUBUCU
    DUEVRWGCDZWHCDZWMWJUFVSAUGBUGWSWTEWMWJWGWHUHUIQULVTWJLWELLKJZIJZALKJZBLKJZI
    JZMJZGHZXELIJZWELIJZGHZWFVTWIXFLGVRATDZBTDZWIXFUJZVSAUKBUKXKXLLTDZXMUMXKXNX
    LXNEXMUMALBLUNUOUPQUQXJXHXBGHZVTXGXBXIXHGXALWEIURUSUTVTXECDZXBCDZXOXGSZVRXC
    CDZXDCDZXPVSVRWQXSOALRVAVSWQXTOBLRVAXCXDVBQZVTWECDZXACDXQABRZLLOOVCWEXAVBVD
    XPWQXQXROXELXBVEVFVGVHVTXEWEGHZXJWFVTXPYBYDXJSZYAYCXPYBWQYEOXEWELVIVLVGVTXE
    WDWEGVRVSXCAXDBIAVJBVJVKVMVNVOVPVQ $.

  ${
    $d x y $.
    $( There is no smallest positive real number.  (Contributed by NM,
       28-Oct-2004.) $)
    nominpos $p |- -. E. x e. RR ( 0 < x /\
                   -. E. y e. RR ( 0 < y /\ y < x ) ) $=
      ( cc0 cv clt wbr wa cr wrex wn wcel wi c2 cdiv co rehalfcl divgt0 mpanr12
      2re 2pos halfpos biimpd jcad wceq breq2 breq1 anbi12d rspcev syl6an sylib
      ex iman nrex ) CADZEFZCBDZEFZUPUNEFZGZBHIZJGZAHUNHKZUOUTLVAJVBUNMNOZHKUOC
      VCEFZVCUNEFZGZUTUNPVBUOVDVEVBUOVDVBUOGMHKCMEFVDSTUNMQRUKVBUOVEUNUAUBUCUSV
      FBVCHUPVCUDUQVDURVEUPVCCEUEUPVCUNEUFUGUHUIUOUTULUJUM $.
  $}

  $( Ordering property for average.  (Contributed by Mario Carneiro,
     28-May-2014.) $)
  avglt1 $p |- ( ( A e. RR /\ B e. RR ) ->
                 ( A < B <-> A < ( ( A + B ) / 2 ) ) ) $=
    ( cr wcel wa clt wbr caddc co c2 cmul cdiv wb ltadd2 3anidm13 cc wceq simpl
    recnd times2 syl breq1d cc0 readdcl 2re pm3.2i a1i ltmuldiv syl3anc 3bitr2d
    2pos ) ACDZBCDZEZABFGZAAHIZABHIZFGZAJKIZUQFGZAUQJLIFGZULUMUOURMABANOUNUSUPU
    QFUNAPDUSUPQUNAULUMRZSATUAUBUNULUQCDJCDZUCJFGZEZUTVAMVBABUDVEUNVCVDUEUKUFUG
    AUQJUHUIUJ $.

  $( Ordering property for average.  (Contributed by Mario Carneiro,
     28-May-2014.) $)
  avglt2 $p |- ( ( A e. RR /\ B e. RR ) ->
                 ( A < B <-> ( ( A + B ) / 2 ) < B ) ) $=
    ( cr wcel wa caddc co c2 cmul clt wbr cdiv cc simpr recnd 2times syl breq2d
    wceq wb cc0 readdcl 2re 2pos pm3.2i a1i ltdivmul syl3anc 3anidm23 3bitr4rd
    ltadd1 ) ACDZBCDZEZABFGZHBIGZJKZUOBBFGZJKZUOHLGBJKZABJKZUNUPURUOJUNBMDUPURS
    UNBULUMNZOBPQRUNUOCDUMHCDZUAHJKZEZUTUQTABUBVBVEUNVCVDUCUDUEUFUOBHUGUHULUMVA
    USTABBUKUIUJ $.

  $( Ordering property for average.  (Contributed by Mario Carneiro,
     28-May-2014.) $)
  avgle1 $p |- ( ( A e. RR /\ B e. RR ) ->
                 ( A <_ B <-> A <_ ( ( A + B ) / 2 ) ) ) $=
    ( cr wcel wa clt wbr wn caddc co c2 cdiv cle wb avglt2 ancoms cc wceq lenlt
    recn addcom syl2an oveq1d breq1d bitr4d notbid readdcl rehalfcl syl 3bitr4d
    syldan ) ACDZBCDZEZBAFGZHABIJZKLJZAFGZHZABMGAUQMGZUNUOURUNUOBAIJZKLJZAFGZUR
    UMULUOVCNBAOPUNUQVBAFUNUPVAKLULAQDBQDUPVARUMATBTABUAUBUCUDUEUFABSULUMUQCDZU
    TUSNUNUPCDVDABUGUPUHUIAUQSUKUJ $.

  $( Ordering property for average.  (Contributed by Jeff Hankins,
     15-Sep-2013.)  (Revised by Mario Carneiro, 28-May-2014.) $)
  avgle2 $p |- ( ( A e. RR /\ B e. RR ) ->
                 ( A <_ B <-> ( ( A + B ) / 2 ) <_ B ) ) $=
    ( cr wcel wa clt wbr wn caddc co c2 cdiv cle wb avglt1 ancoms cc wceq lenlt
    recn addcom syl2an oveq1d breq2d bitr4d notbid readdcl rehalfcl syl 3bitr4d
    sylancom ) ACDZBCDZEZBAFGZHBABIJZKLJZFGZHZABMGUQBMGZUNUOURUNUOBBAIJZKLJZFGZ
    URUMULUOVCNBAOPUNUQVBBFUNUPVAKLULAQDBQDUPVARUMATBTABUAUBUCUDUEUFABSULUMUQCD
    ZUTUSNUNUPCDVDABUGUPUHUIUQBSUKUJ $.

  $( The average of two numbers is less than or equal to at least one of them.
     (Contributed by NM, 9-Dec-2005.)  (Revised by Mario Carneiro,
     28-May-2014.) $)
  avgle $p |- ( ( A e. RR /\ B e. RR ) ->
               ( ( ( A + B ) / 2 ) <_ A \/ ( ( A + B ) / 2 ) <_ B ) ) $=
    ( cr wcel wa cle wo caddc co c2 cdiv letric orcomd wb avgle2 ancoms cc wceq
    wbr recn addcom syl2an oveq1d breq1d bitr4d orbi12d mpbid ) ACDZBCDZEZBAFSZ
    ABFSZGABHIZJKIZAFSZUNBFSZGUJULUKABLMUJUKUOULUPUJUKBAHIZJKIZAFSZUOUIUHUKUSNB
    AOPUJUNURAFUJUMUQJKUHAQDBQDUMUQRUIATBTABUAUBUCUDUEABOUFUG $.

  ${
    2timesd.1 $e |- ( ph -> A e. CC ) $.
    $( Two times a number.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    2timesd $p |- ( ph -> ( 2 x. A ) = ( A + A ) ) $=
      ( cc wcel c2 cmul co caddc wceq 2times syl ) ABDEFBGHBBIHJCBKL $.

    $( A number times 2.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    times2d $p |- ( ph -> ( A x. 2 ) = ( A + A ) ) $=
      ( cc wcel c2 cmul co caddc wceq times2 syl ) ABDEBFGHBBIHJCBKL $.

    $( Closure of half of a number (frequently used special case).
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    halfcld $p |- ( ph -> ( A / 2 ) e. CC ) $=
      ( cc wcel c2 cdiv co halfcl syl ) ABDEBFGHDECBIJ $.

    $( Two halves make a whole.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    2halvesd $p |- ( ph -> ( ( A / 2 ) + ( A / 2 ) ) = A ) $=
      ( cc wcel c2 cdiv co caddc wceq 2halves syl ) ABDEBFGHZMIHBJCBKL $.
  $}

  ${
    rehalfcld.1 $e |- ( ph -> A e. RR ) $.
    $( Real closure of half.  (Contributed by Mario Carneiro, 27-May-2016.) $)
    rehalfcld $p |- ( ph -> ( A / 2 ) e. RR ) $=
      ( cr wcel c2 cdiv co rehalfcl syl ) ABDEBFGHDECBIJ $.

    lt2halvesd.2 $e |- ( ph -> B e. RR ) $.
    lt2halvesd.3 $e |- ( ph -> C e. RR ) $.
    lt2halvesd.4 $e |- ( ph -> A < ( C / 2 ) ) $.
    lt2halvesd.5 $e |- ( ph -> B < ( C / 2 ) ) $.
    $( A sum is less than the whole if each term is less than half.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    lt2halvesd $p |- ( ph -> ( A + B ) < C ) $=
      ( c2 cdiv co clt wbr caddc cr wcel wa wi lt2halves syl3anc mp2and ) ABDJK
      LZMNZCUCMNZBCOLDMNZHIABPQCPQDPQUDUERUFSEFGBCDTUAUB $.
  $}

  ${
    rehalfcli.1 $e |- A e. RR $.
    $( Half a real number is real.  Inference form.  (Contributed by David
       Moews, 28-Feb-2017.) $)
    rehalfcli $p |- ( A / 2 ) e. RR $=
      ( cr wcel c2 cdiv co rehalfcl ax-mp ) ACDAEFGCDBAHI $.
  $}

  ${
    lt2addmuld.a $e |- ( ph -> A e. RR ) $.
    lt2addmuld.b $e |- ( ph -> B e. RR ) $.
    lt2addmuld.c $e |- ( ph -> C e. RR ) $.
    lt2addmuld.altc $e |- ( ph -> A < C ) $.
    lt2addmuld.bltc $e |- ( ph -> B < C ) $.
    $( If two real numbers are less than a third real number, the sum of the
       two real numbers is less than twice the third real number.  (Contributed
       by Glauco Siliprandi, 11-Dec-2019.) $)
    lt2addmuld $p |- ( ph -> ( A + B ) < ( 2 x. C ) ) $=
      ( caddc co c2 cmul clt lt2addd recnd 2timesd breqtrrd ) ABCJKDDJKLDMKNABC
      DDEFGGHIOADADGPQR $.
  $}

  $( Adding two times 1 to a number.  (Contributed by AV, 22-Sep-2018.) $)
  add1p1 $p |- ( N e. CC -> ( ( N + 1 ) + 1 ) = ( N + 2 ) ) $=
    ( cc wcel c1 caddc co c2 id 1cnd addassd wceq 1p1e2 a1i oveq2d eqtrd ) ABCZ
    ADEFDEFADDEFZEFAGEFPADDPHPIZRJPQGAEQGKPLMNO $.

  $( Subtracting two times 1 from a number.  (Contributed by AV,
     23-Oct-2018.) $)
  sub1m1 $p |- ( N e. CC -> ( ( N - 1 ) - 1 ) = ( N - 2 ) ) $=
    ( cc wcel c1 cmin co caddc c2 id 1cnd subsub4d wceq 1p1e2 a1i oveq2d eqtrd
    ) ABCZADEFDEFADDGFZEFAHEFQADDQIQJZSKQRHAERHLQMNOP $.

  $( Subtracting 2 and afterwards 1 from a number results in the difference
     between the number and 3.  (Contributed by Alexander van der Vekens,
     16-Sep-2018.) $)
  cnm2m1cnm3 $p |- ( A e. CC -> ( ( A - 2 ) - 1 ) = ( A - 3 ) ) $=
    ( cc wcel c2 cmin co c1 caddc c3 id 2cnd 1cnd subsub4d wceq 2p1e3 a1i eqtrd
    oveq2d ) ABCZADEFGEFADGHFZEFAIEFSADGSJSKSLMSTIAETINSOPRQ $.

  $( A complex number increased by 1, then divided by 2, then decreased by 1
     equals the complex number decreased by 1 and then divided by 2.
     (Contributed by AV, 24-May-2020.) $)
  xp1d2m1eqxm1d2 $p |- ( X e. CC
                         -> ( ( ( X + 1 ) / 2 ) - 1 ) = ( ( X - 1 ) / 2 ) ) $=
    ( cc wcel c1 caddc co cdiv cmin peano2cn halfcld peano2cnm syl 2cnd cc0 wne
    c2 2ne0 a1i cmul divcan1d 1cnd subdird mulid2d oveq12d wceq 2m1e1 oveq2d id
    subsub3d 3eqtr2rd 3eqtrd mulcan2ad ) ABCZADEFZPGFZDHFZADHFZPGFZPUMUOBCUPBCU
    MUNAIZJZUOKLUMUQAKZJUMMZPNOUMQRZUMUPPSFUOPSFZDPSFZHFUNPHFZURPSFZUMUODPUTUMU
    AZVBUBUMVDUNVEPHUMUNPUSVBVCTUMPVBUCUDUMVGUQAPDHFZHFVFUMUQPVAVBVCTUMVIDAHVID
    UEUMUFRUGUMAPDUMUHVBVHUIUJUKUL $.

  $( An integer greater than 5, divided by 4 and increased by 1, is less than
     or equal to the half of the integer minus 1.  (Contributed by AV,
     8-Jul-2021.) $)
  div4p1lem1div2 $p |- ( ( N e. RR /\ 6 <_ N )
                         -> ( ( N / 4 ) + 1 ) <_ ( ( N - 1 ) / 2 ) ) $=
    ( cr wcel c6 cle wbr c4 co c1 caddc cmin c2 cmul a1i wceq adantr wb syl3anc
    cc cc0 wa cdiv 6re id leadd2d biimpa times2d breqtrrd 4cn 2cn addassd 4p2e6
    recn oveq2i syl6eq breq1d clt 4re wne redivcld peano2re peano2rem rehalfcld
    mpbird 4ne0 syl 4pos pm3.2i lemul1 divcan1d mulid2i oveq12d joinlmuladdmuld
    recnd 1cnd 2t2e4 eqcomi oveq2d w3a mulass eqcomd 2ne0 oveq1d subdird 3eqtrd
    breq12d readdcld 2re remulcld leaddsub bicomd 3bitrd ) ABCZDAEFZUAZAGUBHZIJ
    HZAIKHZLUBHZEFZAGJHZLJHZALMHZEFZWOXDADJHZXCEFZWOXEAAJHZXCEWMWNXEXGEFWMDAADB
    CWMUCNWMUDZXHUEUFWMXCXGOWNWMAAUMZUGPUHWMXDXFQWNWMXBXEXCEWMXBAGLJHZJHXEWMAGL
    XIGSCWMUINZLSCZWMUJNZUKXJDAJULUNUOUPPVDWMWTXDQWNWMWTWQGMHZWSGMHZEFZXAXCLKHZ
    EFZXDWMWQBCZWSBCGBCZTGUQFZUAZWTXPQWMWPBCXSWMAGXHXTWMURNZGTUSWMVENZUTZWPVAVF
    WMWRAVBZVCZYBWMXTYAURVGVHNWQWSGVIRWMXNXAXOXQEWMWPGIXAWMWPYEVNXKWMVOZWMWPGMH
    AIGMHZGJWMAGXIXKYDVJYIGOWMGUIVKNVLVMWMXOWSLLMHZMHZWSLMHZLMHZXQWMGYJWSMGYJOW
    MYJGVPVQNVRWMWSSCZXLXLYKYMOWMWSYGVNXMXMYNXLXLVSYMYKWSLLVTWARWMYMWRLMHXCILMH
    ZKHXQWMYLWRLMWMWRLWMWRYFVNXMLTUSWMWBNVJWCWMAILXIYHXMWDWMYOLXCKYOLOWMLUJVKNV
    RWEWEWFWMXABCZLBCZXCBCZXRXDQWMAGXHYCWGYQWMWHNZWMALXHYSWIYPYQYRVSXDXRXALXCWJ
    WKRWLPVD $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The Archimedean property
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( The set of positive integers is unbounded above.  Theorem I.28 of
       [Apostol] p. 26.  (Contributed by NM, 21-Jan-1997.) $)
    nnunb $p |- -. E. x e. RR A. y e. NN ( y < x \/ y = x ) $=
      ( vz cv clt wbr wceq cn wral cr wrex wn wi wa wcel wal wex c1 cmin co 1re
      wo peano2rem ltm1 ovex eleq1 breq1 rexbidv imbi12d spcv syl7 syl5 pm2.43d
      pm3.24 df-rex syl6ib com12 wb nnre ltsubadd mp3an2 sylan2 pm5.32da exbidv
      caddc breq2 anbi12d spcev sylan exlimiv syl6bi syld df-ral alinexa bitr2i
      peano2nn con1bii 3imtr4g anim2d mtoi nrex wss c0 wne nnssre 1nn n0ii neir
      sup2 mp3an12 mto ) BDZADZEFZWLWMGUBBHIAJKZWMWLEFZLZBHIZWNWLCDZEFZCHKZMZBJ
      IZNZAJKZXDAJWMJOZXDWRWRLZNWRUNXFXCXGWRXFWLJOZXBMZBPZWLHOZWPNZBQZXCXGXFXJW
      SHOZWMRSTZWSEFZNZCQZXMXJXFXRXJXFXPCHKZXRXJXFXSXFXOJOZXJXFXSMWMUCXFXOWMEFZ
      XJXTXSWMUDXIXTYAXSMZMBXOWMRSUEWLXOGZXHXTXBYBWLXOJUFYCWNYAXAXSWLXOWMEUGYCW
      TXPCHWLXOWSEUGUHUIUIUJUKULUMXPCHUOUPUQXFXRXNWMWSRVETZEFZNZCQXMXFXQYFCXFXN
      XPYEXNXFWSJOZXPYEURZWSUSXFRJOYGYHUAWMRWSUTVAVBVCVDYFXMCXNYDHOZYEXMWSVPXLY
      IYENBYDWSRVEUEWLYDGXKYIWPYEWLYDHUFWLYDWMEVFVGVHVIVJVKVLXBBJVMXMWRWRXKWQMB
      PXMLWQBHVMXKWPBVNVOVQVRVSVTWAHJWBHWCWDWOXEWEHWCRHWFWGWHABCHWIWJWK $.
  $}

  ${
    $d n y A $.
    $( Archimedean property of real numbers.  For any real number, there is an
       integer greater than it.  Theorem I.29 of [Apostol] p. 26.  (Contributed
       by NM, 21-Jan-1997.) $)
    arch $p |- ( A e. RR -> E. n e. NN A < n ) $=
      ( vy cv clt wbr cn wrex cr wceq breq1 rexbidv wo wral wn nnunb mpbir wcel
      ralnex rexnal wa wb nnre axlttri sylan2 equcom orbi1i orcom notbii syl6bb
      bitri biimprd reximdva syl5bir ralimia ax-mp vtoclri ) CDZBDZEFZBGHZAUSEF
      ZBGHCAIURAJUTVBBGURAUSEKLUSUREFZUSURJZMZBGNZOZCINZVACINVHVFCIHOCBPVFCISQV
      GVACIVGVEOZBGHURIRZVAVEBGTVJVIUTBGVJUSGRZUAZUTVIVLUTURUSJZVCMZOZVIVKVJUSI
      RUTVOUBUSUCURUSUDUEVNVEVNVDVCMVEVMVDVCCBUFUGVDVCUHUKUIUJULUMUNUOUPUQ $.
  $}

  ${
    $d n A $.
    $( There exists a positive integer whose reciprocal is less than a given
       positive real.  Exercise 3 of [Apostol] p. 28.  (Contributed by NM,
       8-Nov-2004.) $)
    nnrecl $p |- ( ( A e. RR /\ 0 < A ) -> E. n e. NN ( 1 / n ) < A ) $=
      ( cr wcel cc0 clt wbr wa c1 cdiv co cv cn simpl gt0ne0 rereccld wb adantr
      wrex jca arch recgt0 nnre nngt0 ltrec syl2an cc recn recrecd breq2d bitrd
      syl rexbidva mpbid ) ACDZEAFGZHZIAJKZBLZFGZBMSZIUSJKZAFGZBMSUQURCDZVAUQAU
      OUPNAOZPZURBUAULUQUTVCBMUQUSMDZHUTVBIURJKZFGZVCUQVDEURFGZHUSCDZEUSFGZHUTV
      IQVGUQVDVJVFAUBTVGVKVLUSUCUSUDTURUSUEUFUQVIVCQVGUQVHAVBFUQAUOAUGDUPAUHRVE
      UIUJRUKUMUN $.
  $}

  ${
    $d x A $.  $d x k $.
    $( A bounded real sequence ` A ( k ) ` is less than or equal to at least
       one of its indices.  (Contributed by NM, 18-Jan-2008.) $)
    bndndx $p |- ( E. x e. RR A. k e. NN ( A e. RR /\ A <_ x ) ->
                  E. k e. NN A <_ k ) $=
      ( cr wcel cv cle wbr wa cn wral wrex wi clt arch nnre lelttr ltle 3adant2
      w3a syld exp5o com3l imp4b com23 sylan2 reximdva r19.35 sylib rexlimiv
      mpd ) BDEZBAFZGHZIZCJKZBCFZGHZCJLZADUMDEZUOURMZCJLZUPUSMUTUMUQNHZCJLVBUMC
      OUTVCVACJUQJEUTUQDEZVCVAMUQPUTVDIUOVCURUTVDULUNVCURMZULUTVDUNVEMULUTVDUNV
      CURULUTVDTUNVCIBUQNHZURBUMUQQULVDVFURMUTBUQRSUAUBUCUDUEUFUGUKUOURCJUHUIUJ
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Nonnegative integers (as a subset of complex numbers)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c NN0 $. $( The set of nonnegative integers (blackboard bold N_0). $)

  $( Extend class notation to include the class of nonnegative integers. $)
  cn0 $a class NN0 $.

  $( Define the set of nonnegative integers.  (Contributed by Raph Levien,
     10-Dec-2002.) $)
  df-n0 $a |- NN0 = ( NN u. { 0 } ) $.

  $( Nonnegative integers expressed in terms of naturals and zero.
     (Contributed by Raph Levien, 10-Dec-2002.) $)
  elnn0 $p |- ( A e. NN0 <-> ( A e. NN \/ A = 0 ) ) $=
    ( cn0 wcel cn cc0 csn cun wceq df-n0 eleq2i elun c0ex elsn2 orbi2i 3bitri
    wo ) ABCADEFZGZCADCZAQCZPSAEHZPBRAIJADQKTUASAELMNO $.

  $( Positive naturals are a subset of nonnegative integers.  (Contributed by
     Raph Levien, 10-Dec-2002.) $)
  nnssnn0 $p |- NN C_ NN0 $=
    ( cn cc0 csn cun cn0 ssun1 df-n0 sseqtr4i ) AABCZDEAIFGH $.

  $( Nonnegative integers are a subset of the reals.  (Contributed by Raph
     Levien, 10-Dec-2002.) $)
  nn0ssre $p |- NN0 C_ RR $=
    ( cn0 cn cc0 csn cun cr df-n0 nnssre wcel wss 0re snssi ax-mp unssi eqsstri
    ) ABCDZEFGBPFHCFIPFJKCFLMNO $.

  $( Nonnegative integers are a subset of the complex numbers.)  (Contributed
     by NM, 9-May-2004.) $)
  nn0sscn $p |- NN0 C_ CC $=
    ( cn0 cr cc nn0ssre ax-resscn sstri ) ABCDEF $.

  $( The set of nonnegative integers exists.  (Contributed by NM,
     18-Jul-2004.) $)
  nn0ex $p |- NN0 e. _V $=
    ( cn0 cn cc0 csn cun cvv df-n0 nnex snex unex eqeltri ) ABCDZEFGBLHCIJK $.

  $( A positive integer is a nonnegative integer.  (Contributed by NM,
     9-May-2004.) $)
  nnnn0 $p |- ( A e. NN -> A e. NN0 ) $=
    ( cn cn0 nnssnn0 sseli ) BCADE $.

  ${
    nnnn0i.1 $e |- N e. NN $.
    $( A positive integer is a nonnegative integer.  (Contributed by NM,
       20-Jun-2005.) $)
    nnnn0i $p |- N e. NN0 $=
      ( cn wcel cn0 nnnn0 ax-mp ) ACDAEDBAFG $.
  $}

  $( A nonnegative integer is a real number.  (Contributed by NM,
     9-May-2004.) $)
  nn0re $p |- ( A e. NN0 -> A e. RR ) $=
    ( cn0 cr nn0ssre sseli ) BCADE $.

  $( A nonnegative integer is a complex number.  (Contributed by NM,
     9-May-2004.) $)
  nn0cn $p |- ( A e. NN0 -> A e. CC ) $=
    ( cn0 cc nn0sscn sseli ) BCADE $.

  ${
    nn0rei.1 $e |- A e. NN0 $.
    $( A nonnegative integer is a real number.  (Contributed by NM,
       14-May-2003.) $)
    nn0rei $p |- A e. RR $=
      ( cn0 cr nn0ssre sselii ) CDAEBF $.

    $( A nonnegative integer is a complex number.  (Contributed by NM,
       14-May-2003.) $)
    nn0cni $p |- A e. CC $=
      ( nn0rei recni ) AABCD $.
  $}

  $( The set of positive integers defined in terms of nonnegative integers.
     (Contributed by NM, 23-Sep-2007.)  (Proof shortened by Mario Carneiro,
     13-Feb-2013.) $)
  dfn2 $p |- NN = ( NN0 \ { 0 } ) $=
    ( cn0 cc0 csn cdif cn cun df-n0 difeq1i difun2 wcel wceq 0nnn difsn 3eqtrri
    wn ax-mp ) ABCZDEQFZQDEQDZEARQGHEQIBEJOSEKLBEMPN $.

  $( The positive integer property expressed in terms of difference from zero.
     (Contributed by Stefan O'Rear, 12-Sep-2015.) $)
  elnnne0 $p |- ( N e. NN <-> ( N e. NN0 /\ N =/= 0 ) ) $=
    ( cn wcel cn0 cc0 csn cdif wne wa dfn2 eleq2i eldifsn bitri ) ABCADEFGZCADC
    AEHIBNAJKADELM $.

  $( 0 is a nonnegative integer.  (Contributed by Raph Levien, 10-Dec-2002.) $)
  0nn0 $p |- 0 e. NN0 $=
    ( cc0 wceq cn0 wcel eqid cn wo elnn0 biimpri olcs ax-mp ) AABZACDZAEAFDZLMM
    NLGAHIJK $.

  $( 1 is a nonnegative integer.  (Contributed by Raph Levien, 10-Dec-2002.) $)
  1nn0 $p |- 1 e. NN0 $=
    ( c1 1nn nnnn0i ) ABC $.

  $( 2 is a nonnegative integer.  (Contributed by Raph Levien, 10-Dec-2002.) $)
  2nn0 $p |- 2 e. NN0 $=
    ( c2 2nn nnnn0i ) ABC $.

  $( 3 is a nonnegative integer.  (Contributed by Mario Carneiro,
     18-Feb-2014.) $)
  3nn0 $p |- 3 e. NN0 $=
    ( c3 3nn nnnn0i ) ABC $.

  $( 4 is a nonnegative integer.  (Contributed by Mario Carneiro,
     18-Feb-2014.) $)
  4nn0 $p |- 4 e. NN0 $=
    ( c4 4nn nnnn0i ) ABC $.

  $( 5 is a nonnegative integer.  (Contributed by Mario Carneiro,
     19-Apr-2015.) $)
  5nn0 $p |- 5 e. NN0 $=
    ( c5 5nn nnnn0i ) ABC $.

  $( 6 is a nonnegative integer.  (Contributed by Mario Carneiro,
     19-Apr-2015.) $)
  6nn0 $p |- 6 e. NN0 $=
    ( c6 6nn nnnn0i ) ABC $.

  $( 7 is a nonnegative integer.  (Contributed by Mario Carneiro,
     19-Apr-2015.) $)
  7nn0 $p |- 7 e. NN0 $=
    ( c7 7nn nnnn0i ) ABC $.

  $( 8 is a nonnegative integer.  (Contributed by Mario Carneiro,
     19-Apr-2015.) $)
  8nn0 $p |- 8 e. NN0 $=
    ( c8 8nn nnnn0i ) ABC $.

  $( 9 is a nonnegative integer.  (Contributed by Mario Carneiro,
     19-Apr-2015.) $)
  9nn0 $p |- 9 e. NN0 $=
    ( c9 9nn nnnn0i ) ABC $.

  $( Obsolete version of ~ 10nn0 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  10nn0OLD $p |- 10 e. NN0 $=
    ( c10 10nnOLD nnnn0i ) ABC $.

  $( A nonnegative integer is greater than or equal to zero.  (Contributed by
     NM, 9-May-2004.)  (Revised by Mario Carneiro, 16-May-2014.) $)
  nn0ge0 $p |- ( N e. NN0 -> 0 <_ N ) $=
    ( cn0 wcel cc0 cle wbr wceq wo cn elnn0 nngt0 id eqcomd orim12i sylbi cr wb
    clt 0re nn0re leloe sylancr mpbird ) ABCZDAEFZDARFZDAGZHZUDAICZADGZHUHAJUIU
    FUJUGAKUJADUJLMNOUDDPCAPCUEUHQSATDAUAUBUC $.

  $( A nonnegative integer is not less than zero.  (Contributed by NM,
     9-May-2004.)  (Revised by Mario Carneiro, 27-May-2016.) $)
  nn0nlt0 $p |- ( A e. NN0 -> -. A < 0 ) $=
    ( cn0 wcel cc0 cle wbr clt wn nn0ge0 cr wb 0re nn0re lenlt sylancr mpbid )
    ABCZDAEFZADGFHZAIQDJCAJCRSKLAMDANOP $.

  ${
    nn0ge0i.1 $e |- N e. NN0 $.
    $( Nonnegative integers are nonnegative.  (Contributed by Raph Levien,
       10-Dec-2002.) $)
    nn0ge0i $p |- 0 <_ N $=
      ( cn0 wcel cc0 cle wbr nn0ge0 ax-mp ) ACDEAFGBAHI $.
  $}

  $( A nonnegative integer is less than or equal to zero iff it is equal to
     zero.  (Contributed by NM, 9-Dec-2005.) $)
  nn0le0eq0 $p |- ( N e. NN0 -> ( N <_ 0 <-> N = 0 ) ) $=
    ( cn0 wcel cc0 cle wbr wa nn0ge0 biantrud cr wb nn0re letri3 sylancl bitr4d
    wceq 0re ) ABCZADEFZSDAEFZGZADPZRTSAHIRAJCDJCUBUAKALQADMNO $.

  $( A nonnegative integer increased by 1 is greater than 0.  (Contributed by
     Alexander van der Vekens, 3-Oct-2018.) $)
  nn0p1gt0 $p |- ( N e. NN0 -> 0 < ( N + 1 ) ) $=
    ( cn0 wcel c1 nn0re 1red nn0ge0 cc0 clt wbr 0lt1 a1i addgegt0d ) ABCZADAENF
    AGHDIJNKLM $.

  $( A positive integer plus a nonnegative integer is a positive integer.
     (Contributed by NM, 20-Apr-2005.)  (Proof shortened by Mario Carneiro,
     16-May-2014.) $)
  nnnn0addcl $p |- ( ( M e. NN /\ N e. NN0 ) -> ( M + N ) e. NN ) $=
    ( cn0 wcel cn cc0 wceq wo caddc co elnn0 nnaddcl wa oveq2 addid1d sylan9eqr
    nncn simpl eqeltrd jaodan sylan2b ) BCDAEDZBEDZBFGZHABIJZEDZBKUBUCUFUDABLUB
    UDMUEAEUDUBUEAFIJABFAINUBAAQOPUBUDRSTUA $.

  $( A nonnegative integer plus a positive integer is a positive integer.
     (Contributed by NM, 22-Dec-2005.) $)
  nn0nnaddcl $p |- ( ( M e. NN0 /\ N e. NN ) -> ( M + N ) e. NN ) $=
    ( cn wcel cn0 caddc co wa wceq nncn nn0cn addcom syl2an nnnn0addcl eqeltrrd
    cc ancoms ) BCDZAEDZABFGZCDRSHBAFGZTCRBPDAPDUATISBJAKBALMBANOQ $.

  $( The result of subtracting a positive integer from 0 is not a nonnegative
     integer.  (Contributed by Alexander van der Vekens, 19-Mar-2018.) $)
  0mnnnnn0 $p |- ( N e. NN -> ( 0 - N ) e/ NN0 ) $=
    ( cn wcel cc0 cmin co cn0 wnel cr 0re wn nnel cneg df-neg eqcomi eleq1i cle
    wbr nn0ge0 syl5bi nnre le0neg1d clt nngt0 0red ltnled pm2.21 syl6bi sylbird
    wi mpd syl5 mt4i ) ABCZDAEFZGHZDICZJUPKUOGCZUNUQKZUOGLURAMZGCZUNUSUOUTGUTUO
    ANOPVADUTQRZUNUSUTSUNVBADQRZUSUNAAUAZUBUNDAUCRZVCUSUJZAUDUNVEVCKVFUNDAUNUEV
    DUFVCUSUGUHUKUIULTTUM $.

  ${
    un0addcl.1 $e |- ( ph -> S C_ CC ) $.
    un0addcl.2 $e |- T = ( S u. { 0 } ) $.
    ${
      un0addcl.3 $e |- ( ( ph /\ ( M e. S /\ N e. S ) ) -> ( M + N ) e. S ) $.
      $( If ` S ` is closed under addition, then so is ` S u. { 0 } ` .
         (Contributed by Mario Carneiro, 17-Jul-2014.) $)
      un0addcl $p |- ( ( ph /\ ( M e. T /\ N e. T ) ) -> ( M + N ) e. T ) $=
        ( wcel caddc co cc0 wo wa eleq2i elun bitri cc sselda eqeltrd csn ssun1
        cun sseqtr4i sseldi expr addid2d wss a1i elsni oveq1d eleq1d syl5ibrcom
        wi impancom jaodan sylan2b 0cnd snssd unssd syl5eqss addid1d simpr jaod
        oveq2d syl5bi impr ) ADCIZECIZDEJKZCIZVIEBIZELUAZIZMZAVHNZVKVIEBVMUCZIV
        OCVQEGOEBVMPQVPVLVKVNVHADBIZDVMIZMZVLVKUNZVHDVQIVTCVQDGODBVMPQAVRWAVSAV
        RVLVKAVRVLNNBCVJBVQCBVMUBGUDZHUEUFAVLVSVKAVLNZVKVSLEJKZCIWCWDECWCEABREF
        SUGABCEBCUHAWBUISTVSVJWDCVSDLEJDLUJUKULUMUOUPUQVPVKVNDLJKZCIVPWEDCVPDAC
        RDACVQRGABVMRFALRAURUSUTVASVBAVHVCTVNVJWECVNELDJELUJVEULUMVDVFVG $.
    $}

    un0mulcl.3 $e |- ( ( ph /\ ( M e. S /\ N e. S ) ) -> ( M x. N ) e. S ) $.
    $( If ` S ` is closed under multiplication, then so is ` S u. { 0 } ` .
       (Contributed by Mario Carneiro, 17-Jul-2014.) $)
    un0mulcl $p |- ( ( ph /\ ( M e. T /\ N e. T ) ) -> ( M x. N ) e. T ) $=
      ( wcel cmul co cc0 wo wa eleq2i elun bitri sseqtr4i cc sselda csn wi expr
      cun ssun1 sseldi mul02d wss ssun2 c0ex mpbir syl6eqel elsni oveq1d eleq1d
      snss syl5ibrcom impancom jaodan sylan2b 0cnd snssd syl5eqss mul01d oveq2d
      unssd jaod syl5bi impr ) ADCIZECIZDEJKZCIZVKEBIZELUAZIZMZAVJNZVMVKEBVOUDZ
      IVQCVSEGOEBVOPQVRVNVMVPVJADBIZDVOIZMZVNVMUBZVJDVSIWBCVSDGODBVOPQAVTWCWAAV
      TVNVMAVTVNNNBCVLBVSCBVOUEGRHUFUCAVNWAVMAVNNZVMWALEJKZCIWDWELCWDEABSEFTUGL
      CIVOCUHVOVSCVOBUIGRLCUJUPUKZULWAVLWECWADLEJDLUMUNUOUQURUSUTVRVMVPDLJKZCIV
      RWGLCVRDACSDACVSSGABVOSFALSAVAVBVFVCTVDWFULVPVLWGCVPELDJELUMVEUOUQVGVHVI
      $.
  $}

  $( Closure of addition of nonnegative integers.  (Contributed by Raph Levien,
     10-Dec-2002.)  (Proof shortened by Mario Carneiro, 17-Jul-2014.) $)
  nn0addcl $p |- ( ( M e. NN0 /\ N e. NN0 ) -> ( M + N ) e. NN0 ) $=
    ( cn cc wss cn0 wcel wa caddc co nnsscn df-n0 nnaddcl adantl un0addcl mpan
    id ) CDEZAFGBFGHABIJZFGKRCFABRQLACGBCGHSCGRABMNOP $.

  $( Closure of multiplication of nonnegative integers.  (Contributed by NM,
     22-Jul-2004.)  (Proof shortened by Mario Carneiro, 17-Jul-2014.) $)
  nn0mulcl $p |- ( ( M e. NN0 /\ N e. NN0 ) -> ( M x. N ) e. NN0 ) $=
    ( cn cc wss cn0 wcel wa cmul co nnsscn df-n0 nnmulcl adantl un0mulcl mpan
    id ) CDEZAFGBFGHABIJZFGKRCFABRQLACGBCGHSCGRABMNOP $.

  ${
    nn0addcli.1 $e |- M e. NN0 $.
    nn0addcli.2 $e |- N e. NN0 $.
    $( Closure of addition of nonnegative integers, inference form.
       (Contributed by Raph Levien, 10-Dec-2002.) $)
    nn0addcli $p |- ( M + N ) e. NN0 $=
      ( cn0 wcel caddc co nn0addcl mp2an ) AEFBEFABGHEFCDABIJ $.

    $( Closure of multiplication of nonnegative integers, inference form.
       (Contributed by Raph Levien, 10-Dec-2002.) $)
    nn0mulcli $p |- ( M x. N ) e. NN0 $=
      ( cn0 wcel cmul co nn0mulcl mp2an ) AEFBEFABGHEFCDABIJ $.
  $}

  $( A nonnegative integer plus 1 is a positive integer.  Strengthening of
     ~ peano2nn .  (Contributed by Raph Levien, 30-Jun-2006.)  (Revised by
     Mario Carneiro, 16-May-2014.) $)
  nn0p1nn $p |- ( N e. NN0 -> ( N + 1 ) e. NN ) $=
    ( cn0 wcel c1 cn caddc co 1nn nn0nnaddcl mpan2 ) ABCDECADFGECHADIJ $.

  $( Second Peano postulate for nonnegative integers.  (Contributed by NM,
     9-May-2004.) $)
  peano2nn0 $p |- ( N e. NN0 -> ( N + 1 ) e. NN0 ) $=
    ( cn0 wcel c1 caddc co 1nn0 nn0addcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( A positive integer minus 1 is a nonnegative integer.  (Contributed by
     Jason Orendorff, 24-Jan-2007.)  (Revised by Mario Carneiro,
     16-May-2014.) $)
  nnm1nn0 $p |- ( N e. NN -> ( N - 1 ) e. NN0 ) $=
    ( cn wcel c1 cmin co cc0 wceq wo cn0 nn1m1nn oveq1 syl6eq orim1i syl orcomd
    1m1e0 elnn0 sylibr ) ABCZADEFZBCZUAGHZIUAJCTUCUBTADHZUBIUCUBIAKUDUCUBUDUADD
    EFGADDELQMNOPUARS $.

  $( The nonnegative integer property expressed in terms of positive integers.
     (Contributed by NM, 10-May-2004.)  (Proof shortened by Mario Carneiro,
     16-May-2014.) $)
  elnn0nn $p |- ( N e. NN0 <-> ( N e. CC /\ ( N + 1 ) e. NN ) ) $=
    ( cn0 wcel cc c1 caddc co cn nn0cn nn0p1nn jca cmin wceq simpl ax-1cn pncan
    wa sylancl nnm1nn0 adantl eqeltrrd impbii ) ABCZADCZAEFGZHCZQZUCUDUFAIAJKUG
    UEELGZABUGUDEDCUHAMUDUFNOAEPRUFUHBCUDUESTUAUB $.

  $( The positive integer property expressed in terms of nonnegative integers.
     (Contributed by NM, 10-May-2004.) $)
  elnnnn0 $p |- ( N e. NN <-> ( N e. CC /\ ( N - 1 ) e. NN0 ) ) $=
    ( cn wcel cc c1 cmin co cn0 nncn caddc wa npcan1 eleq1d peano2cnm biantrurd
    bitr3d elnn0nn syl6bbr biadan2 ) ABCZADCZAEFGZHCZAIUATUBDCZUBEJGZBCZKZUCUAU
    FTUGUAUEABALMUAUDUFANOPUBQRS $.

  $( The positive integer property expressed in terms of nonnegative integers.
     (Contributed by NM, 1-Sep-2005.) $)
  elnnnn0b $p |- ( N e. NN <-> ( N e. NN0 /\ 0 < N ) ) $=
    ( cn wcel cn0 cc0 clt wbr wa nnnn0 nngt0 jca wceq wo elnn0 ax-1 breq2 ltnri
    wi 0re pm2.21i syl6bi jaoi sylbi imp impbii ) ABCZADCZEAFGZHUFUGUHAIAJKUGUH
    UFUGUFAELZMUHUFRZANUFUJUIUFUHOUIUHEEFGZUFAEEFPUKUFESQTUAUBUCUDUE $.

  $( The positive integer property expressed in terms of nonnegative integers.
     (Contributed by NM, 10-Jan-2006.) $)
  elnnnn0c $p |- ( N e. NN <-> ( N e. NN0 /\ 1 <_ N ) ) $=
    ( cn wcel cn0 c1 cle wbr wa nnnn0 nnge1 jca cc0 clt 0lt1 cr wi nn0re ltletr
    0re 1re mp3an12 syl mpani imdistani elnnnn0b sylibr impbii ) ABCZADCZEAFGZH
    ZUHUIUJAIAJKUKUILAMGZHUHUIUJULUILEMGZUJULNUIAOCZUMUJHULPZAQLOCEOCUNUOSTLEAR
    UAUBUCUDAUEUFUG $.

  $( A number is less than or equal to itself plus a nonnegative integer.
     (Contributed by NM, 10-Mar-2005.) $)
  nn0addge1 $p |- ( ( A e. RR /\ N e. NN0 ) -> A <_ ( A + N ) ) $=
    ( cn0 wcel cr cc0 cle wbr wa caddc co nn0re nn0ge0 jca addge01 3expb sylan2
    biimp3a ) BCDZAEDZBEDZFBGHZIAABJKGHZSUAUBBLBMNTUAUBUCTUAUBUCABORPQ $.

  $( A number is less than or equal to itself plus a nonnegative integer.
     (Contributed by NM, 10-Mar-2005.) $)
  nn0addge2 $p |- ( ( A e. RR /\ N e. NN0 ) -> A <_ ( N + A ) ) $=
    ( cn0 wcel cr cc0 cle wbr wa caddc co nn0re nn0ge0 jca addge02 3expb sylan2
    biimp3a ) BCDZAEDZBEDZFBGHZIABAJKGHZSUAUBBLBMNTUAUBUCTUAUBUCABORPQ $.

  ${
    nn0addge1i.1 $e |- A e. RR $.
    nn0addge1i.2 $e |- N e. NN0 $.
    $( A number is less than or equal to itself plus a nonnegative integer.
       (Contributed by NM, 10-Mar-2005.) $)
    nn0addge1i $p |- A <_ ( A + N ) $=
      ( cr wcel cn0 caddc co cle wbr nn0addge1 mp2an ) AEFBGFAABHIJKCDABLM $.

    $( A number is less than or equal to itself plus a nonnegative integer.
       (Contributed by NM, 10-Mar-2005.) $)
    nn0addge2i $p |- A <_ ( N + A ) $=
      ( cr wcel cn0 caddc co cle wbr nn0addge2 mp2an ) AEFBGFABAHIJKCDABLM $.
  $}

  $( Subtraction of nonnegative integers.  (Contributed by NM, 9-May-2004.)
     (Proof shortened by Mario Carneiro, 16-May-2014.) $)
  nn0sub $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                ( M <_ N <-> ( N - M ) e. NN0 ) ) $=
    ( cn0 wcel wbr cmin co cn cc0 wo clt cr wb nn0re elnn0 nngt0 eleq1d bibi12d
    wceq syl5ibr wa leloe syl2an wi nnsub ex nncn subid1d id eqeltrd 2thd breq1
    cle oveq2 jaoi sylbi nn0nlt0 pm2.21d posdif sylancl impbid breq2 syl5ibrcom
    0re oveq1 jaod syl5bi cc nn0cn subeq0 syl2anr eqcom syl6rbb orbi12d syl6bbr
    imp bitrd ) ACDZBCDZUAZABUMEZBAFGZHDZWBISZJZWBCDVTWAABKEZABSZJZWEVRALDZBLDW
    AWHMVSANZBNABUBUCVTWFWCWGWDVRVSWFWCMZVSBHDZBISZJVRWKBOVRWLWKWMVRAHDZAISZJWL
    WKUDZAOWNWPWOWNWLWKABUEUFWLWKWOIBKEZBIFGZHDZMWLWQWSBPWLWRBHWLBBUGUHWLUIUJUK
    WOWFWQWCWSAIBKULWOWBWRHAIBFUNQRTUOUPVRWKWMAIKEZIAFGZHDZMVRWTXBVRWTXBAUQURXB
    WTVRIXAKEZXAPVRWIILDWTXCMWJVDAIUSUTTVAWMWFWTWCXBBIAKVBWMWBXAHBIAFVEQRVCVFVG
    VPVTWDBASZWGVSBVHDAVHDWDXDMVRBVIAVIBAVJVKBAVLVMVNVQWBOVO $.

  $( Subtracting a nonnegative integer from a nonnegative integer which is
     greater than the first one results in a nonnegative integer.  (Contributed
     by Alexander van der Vekens, 6-Apr-2018.) $)
  ltsubnn0 $p |- ( ( A e. NN0 /\ B e. NN0 )
                   -> ( B < A -> ( A - B ) e. NN0 ) ) $=
    ( cn0 wcel wa clt wbr cle cmin co cr wi nn0re ltle syl2anr wb nn0sub ancoms
    sylibd ) ACDZBCDZEBAFGZBAHGZABIJCDZUABKDAKDUBUCLTBMAMBANOUATUCUDPBAQRS $.

  $( A nonnegative integer is greater than or equal to its negative.
     (Contributed by AV, 13-Aug-2021.) $)
  nn0negleid $p |- ( A e. NN0 -> -u A <_ A ) $=
    ( cn0 wcel cneg cc0 nn0re renegcld 0red cle wbr nn0ge0 le0neg2d mpbid letrd
    ) ABCZADZEAOAAFZGOHQOEAIJPEIJAKZOAQLMRN $.

  $( If the difference of a real number and a nonnegative integer is greater
     than another real number, the sum of the real number and the nonnegative
     integer is also greater than the other real number.  (Contributed by AV,
     13-Aug-2021.) $)
  difgtsumgt $p |- ( ( A e. RR /\ B e. NN0 /\ C e. RR )
                     -> ( C < ( A - B ) -> C < ( A + B ) ) ) $=
    ( cr wcel cn0 w3a cmin co clt wbr cneg caddc cc wa wceq recn nn0cn 3ad2ant2
    readdcld anim12i 3adant3 negsub syl eqcomd breq2d simp3 simp1 renegcld 3jca
    nn0re cle nn0negleid leadd2dd lelttrdi sylbid ) ADEZBFEZCDEZGZCABHIZJKCABLZ
    MIZJKCABMIZJKUTVAVCCJUTVCVAUTANEZBNEZOZVCVAPUQURVGUSUQVEURVFAQBRUAUBABUCUDU
    EUFUTCVCVDUTUSVCDEVDDEUQURUSUGUTAVBUQURUSUHZURUQVBDEUSURBBUKZUISZTUTABVHURU
    QBDEUSVISZTUJUTVBBAVJVKVHURUQVBBULKUSBUMSUNUOUP $.

  ${
    nn0le2xi.1 $e |- N e. NN0 $.
    $( A nonnegative integer is less than or equal to twice itself.
       (Contributed by Raph Levien, 10-Dec-2002.) $)
    nn0le2xi $p |- N <_ ( 2 x. N ) $=
      ( caddc co c2 cmul cle nn0rei nn0addge1i nn0cni 2timesi breqtrri ) AAACDE
      AFDGAAABHBIAABJKL $.
  $}

  ${
    nn0lele2xi.1 $e |- M e. NN0 $.
    nn0lele2xi.2 $e |- N e. NN0 $.
    $( 'Less than or equal to' implies 'less than or equal to twice' for
       nonnegative integers.  (Contributed by Raph Levien, 10-Dec-2002.) $)
    nn0lele2xi $p |- ( N <_ M -> N <_ ( 2 x. M ) ) $=
      ( cle wbr c2 cmul co nn0le2xi nn0rei 2re remulcli letri mpan2 ) BAEFAGAHI
      ZEFBPEFACJBAPBDKACKZGALQMNO $.
  $}

  $( Two ways to write the support of a function on ` NN0 ` .  (Contributed by
     Mario Carneiro, 29-Dec-2014.)  (Revised by AV, 7-Jul-2019.) $)
  frnnn0supp $p |- ( ( I e. V /\ F : I --> NN0 )
                  -> ( F supp 0 ) = ( `' F " NN ) ) $=
    ( wcel cn0 wf wa cc0 csupp co ccnv csn cdif cima cn cvv wceq c0ex frnsuppeq
    imp mpanl2 dfn2 eqcomi imaeq2i syl6eq ) BCDZBEAFZGAHIJZAKZEHLMZNZUIONUFHPDZ
    UGUHUKQZRUFULGUGUMEABCPHSTUAUJOUIOUJUBUCUDUE $.

  $( A function on ` NN0 ` is finitely supported iff its support is finite.
     (Contributed by AV, 8-Jul-2019.) $)
  frnnn0fsupp $p |- ( ( I e. V /\ F : I --> NN0 )
                  -> ( F finSupp 0 <-> ( `' F " NN ) e. Fin ) ) $=
    ( wcel cn0 wf wa cc0 cfsupp wbr ccnv csn cdif cima cfn cn wb cvv wi c0ex
    frnfsuppbi mpan2 imp wceq dfn2 eqcomi a1i imaeq2d eleq1d bitrd ) BCDZBEAFZG
    ZAHIJZAKZEHLMZNZODZUOPNZODUKULUNURQZUKHRDULUTSTEABCRHUAUBUCUMUQUSOUMUPPUOUP
    PUDUMPUPUEUFUGUHUIUJ $.

  ${
    nnnn0d.1 $e |- ( ph -> A e. NN ) $.
    $( A positive integer is a nonnegative integer.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    nnnn0d $p |- ( ph -> A e. NN0 ) $=
      ( cn cn0 nnssnn0 sseldi ) ADEBFCG $.
  $}

  ${
    nn0red.1 $e |- ( ph -> A e. NN0 ) $.
    $( A nonnegative integer is a real number.  (Contributed by Mario Carneiro,
       27-May-2016.) $)
    nn0red $p |- ( ph -> A e. RR ) $=
      ( cn0 cr nn0ssre sseldi ) ADEBFCG $.

    $( A nonnegative integer is a complex number.  (Contributed by Mario
       Carneiro, 27-May-2016.) $)
    nn0cnd $p |- ( ph -> A e. CC ) $=
      ( nn0red recnd ) ABABCDE $.

    $( A nonnegative integer is greater than or equal to zero.  (Contributed by
       Mario Carneiro, 27-May-2016.) $)
    nn0ge0d $p |- ( ph -> 0 <_ A ) $=
      ( cn0 wcel cc0 cle wbr nn0ge0 syl ) ABDEFBGHCBIJ $.

    nn0addcld.2 $e |- ( ph -> B e. NN0 ) $.
    $( Closure of addition of nonnegative integers, inference form.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    nn0addcld $p |- ( ph -> ( A + B ) e. NN0 ) $=
      ( cn0 wcel caddc co nn0addcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure of multiplication of nonnegative integers, inference form.
       (Contributed by Mario Carneiro, 27-May-2016.) $)
    nn0mulcld $p |- ( ph -> ( A x. B ) e. NN0 ) $=
      ( cn0 wcel cmul co nn0mulcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.
  $}

  $( Closure law for addition of reals, restricted to nonnegative integers.
     (Contributed by Alexander van der Vekens, 6-Apr-2018.) $)
  nn0readdcl $p |- ( ( A e. NN0 /\ B e. NN0 ) -> ( A + B ) e. RR ) $=
    ( cn0 wcel wa caddc co nn0addcl nn0red ) ACDBCDEABFGABHI $.

  $( A nonnegative integer which is neither 0 nor 1 is greater than or equal to
     2.  (Contributed by Alexander van der Vekens, 6-Dec-2017.) $)
  nn0n0n1ge2 $p |- ( ( N e. NN0 /\ N =/= 0 /\ N =/= 1 ) -> 2 <_ N ) $=
    ( cn0 wcel cc0 wne c1 w3a c2 cle wbr cmin co wceq caddc 3ad2ant1 cn elnnne0
    wa nnm1nn0 syl nn0cn subsub4d oveq2i syl6req 3simpa sylibr subeq0ad necon3d
    1cnd 1p1e2 biimpd imp 3adant2 sylanbrc eqeltrd wb 2nn0 jctl nn0sub mpbird )
    ABCZADEZAFEZGZHAIJZAHKLZBCZVDVFAFKLZFKLZBVAVBVFVIMVCVAVIAFFNLZKLVFVAAFFAUAZ
    VAUIZVLUBVJHAKUJUCUDOVDVHPCZVIBCVDVHBCZVHDEZVMVDAPCZVNVDVAVBRVPVAVBVCUEAQUF
    ASTVAVCVOVBVAVCVOVAVHDAFVAVHDMAFMVAAFVKVLUGUKUHULUMVHQUNVHSTUOVDHBCZVARZVEV
    GUPVAVBVRVCVAVQUQUROHAUSTUT $.

  $( A nonnegative integer is neither 0 nor 1 if and only if it is greater than
     or equal to 2.  (Contributed by Alexander van der Vekens, 17-Jan-2018.) $)
  nn0n0n1ge2b $p |- ( N e. NN0 -> ( ( N =/= 0 /\ N =/= 1 ) <-> 2 <_ N ) ) $=
    ( cn0 wcel cc0 wne c1 wa c2 cle wbr nn0n0n1ge2 wn wceq nne clt breq1 mpbiri
    wo a1d cr 3expib ianor orbi12i bitri wi 2pos 1lt2 impcom wb nn0re 2re jctir
    jaoi adantr ltnle syl mpbid ex syl5bi impcon4bid ) ABCZADEZAFEZGZHAIJZVAVBV
    CVEAKUAVDLZADMZAFMZRZVAVELZVFVBLZVCLZRVIVBVCUBVKVGVLVHADNAFNUCUDVAVIVJVAVIG
    ZAHOJZVJVIVAVNVGVAVNUEVHVGVNVAVGVNDHOJUFADHOPQSVHVNVAVHVNFHOJUGAFHOPQSUMUHV
    MATCZHTCZGZVNVJUIVAVQVIVAVOVPAUJUKULUNAHUOUPUQURUSUT $.

  $( If a nonnegative integer is greater than or equal to two, the integer
     decreased by 1 is a positive integer.  (Contributed by Alexander van der
     Vekens, 1-Aug-2018.)  (Revised by AV, 4-Jan-2020.) $)
  nn0ge2m1nn $p |- ( ( N e. NN0 /\ 2 <_ N ) -> ( N - 1 ) e. NN ) $=
    ( c1 wceq cmin co cn wcel wo cn0 c2 cle wbr wa simpl cr w3a clt 2re 1lt2 wi
    1red a1i nn0re 3jca simpr jctil ltleletr sylc elnnnn0c sylanbrc nn1m1nn syl
    adantr breq2 1re ltnlei pm2.21 sylbi ax-mp syl6bi adantld ax-1 jaoi mpcom
    wn ) ABCZABDEFGZHZAIGZJAKLZMZVGVKAFGZVHVKVIBAKLZVLVIVJNVKBOGZJOGZAOGZPZBJQL
    ZVJMVMVIVQVJVIVNVOVPVIUAVOVIRUBAUCUDUMVKVJVRVIVJUESUFBJAUGUHAUIUJAUKULVFVKV
    GTVGVFVJVGVIVFVJJBKLZVGABJKUNVRVSVGTZSVRVSVEVTBJUORUPVSVGUQURUSUTVAVGVKVBVC
    VD $.

  $( If a nonnegative integer is greater than or equal to two, the integer
     decreased by 1 is also a nonnegative integer.  (Contributed by Alexander
     van der Vekens, 1-Aug-2018.) $)
  nn0ge2m1nn0 $p |- ( ( N e. NN0 /\ 2 <_ N ) -> ( N - 1 ) e. NN0 ) $=
    ( cn0 wcel c2 cle wbr wa c1 cmin co nn0ge2m1nn nnnn0d ) ABCDAEFGAHIJAKL $.

  $( Closure law for dividing of a nonnegative integer by a positive integer.
     (Contributed by Alexander van der Vekens, 14-Apr-2018.) $)
  nn0nndivcl $p |- ( ( K e. NN0 /\ L e. NN ) -> ( K / L ) e. RR ) $=
    ( cn0 wcel cn wa cr cc0 wne w3a cdiv co elnnne0 adantr ad2antrl simprr 3jca
    nn0re sylan2b redivcl syl ) ACDZBEDZFAGDZBGDZBHIZJZABKLGDUCUBBCDZUFFZUGBMUB
    UIFUDUEUFUBUDUIARNUHUEUBUFBROUBUHUFPQSABTUA $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Extended nonnegative integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The function values of the hash (set size) function are either nonnegative
  integers or positive infinity, see ~ hashf .  To avoid the need to
  distinguish between finite and infinite sets (and therefore if the set size
  is a nonnegative integer or positive infinity), it is useful to provide a
  definition of the set of nonnegative integers extended by positive infinity,
  analogously to the extension of the real numbers ` RR* ` , see ~ df-xr .  The
  definition of extended nonnegative integers can be used in Ramsey theory,
  because the Ramsey number is either a nonnegative integer or plus infinity,
  see ~ ramcl2 , or for the degree of polynomials, see ~ mdegcl , or for the
  degree of vertices in graph theory, see ~ vtxdgf .

$)

  $c NN0* $. $( The set of extended nonnegative integers $)

  $( The set of extended nonnegative integers. $)
  cxnn0 $a class NN0* $.

  $( Define the set of extended nonnegative integers that includes positive
     infinity.  Analogue of the extension of the real numbers ` RR* ` , see
     ~ df-xr .  (Contributed by AV, 10-Dec-2020.) $)
  df-xnn0 $a |- NN0* = ( NN0 u. { +oo } ) $.

  $( An extended nonnegative integer is either a standard nonnegative integer
     or positive infinity.  (Contributed by AV, 10-Dec-2020.) $)
  elxnn0 $p |- ( A e. NN0* <-> ( A e. NN0 \/ A = +oo ) ) $=
    ( cxnn0 wcel cn0 cpnf csn cun wceq df-xnn0 eleq2i pnfex elsn2 orbi2i 3bitri
    wo elun ) ABCADEFZGZCADCZAQCZOSAEHZOBRAIJADQPTUASAEKLMN $.

  $( The standard nonnegative integers are a subset of the extended nonnegative
     integers.  (Contributed by AV, 10-Dec-2020.) $)
  nn0ssxnn0 $p |- NN0 C_ NN0* $=
    ( cn0 cpnf csn cun cxnn0 ssun1 df-xnn0 sseqtr4i ) AABCZDEAIFGH $.

  $( A standard nonnegative integer is an extended nonnegative integer.
     (Contributed by AV, 10-Dec-2020.) $)
  nn0xnn0 $p |- ( A e. NN0 -> A e. NN0* ) $=
    ( cn0 cxnn0 nn0ssxnn0 sseli ) BCADE $.

  $( An extended nonnegative integer is an extended real.  (Contributed by AV,
     10-Dec-2020.) $)
  xnn0xr $p |- ( A e. NN0* -> A e. RR* ) $=
    ( cxnn0 wcel cn0 cpnf wceq wo cxr elxnn0 nn0re rexrd pnfxr eleq1 jaoi sylbi
    mpbiri ) ABCADCZAEFZGAHCZAIQSRQAAJKRSEHCLAEHMPNO $.

  $( Zero is an extended nonnegative integer.  (Contributed by AV,
     10-Dec-2020.) $)
  0xnn0 $p |- 0 e. NN0* $=
    ( cn0 cxnn0 cc0 nn0ssxnn0 0nn0 sselii ) ABCDEF $.

  $( Positive infinity is an extended nonnegative integer.  (Contributed by AV,
     10-Dec-2020.) $)
  pnf0xnn0 $p |- +oo e. NN0* $=
    ( cpnf cxnn0 wcel cn0 wceq wo eqid olci elxnn0 mpbir ) ABCADCZAAEZFLKAGHAIJ
    $.

  $( No standard nonnegative integer equals positive infinity.  (Contributed by
     AV, 10-Dec-2020.) $)
  nn0nepnf $p |- ( A e. NN0 -> A =/= +oo ) $=
    ( cn0 wcel cpnf wceq cr pnfnre neli nn0re mto eleq1 mtbiri necon2ai ) ABCZA
    DADENDBCZODFCDFGHDIJADBKLM $.

  ${
    nn0xnn0d.1 $e |- ( ph -> A e. NN0 ) $.
    $( A standard nonnegative integer is an extended nonnegative integer,
       deduction form.  (Contributed by AV, 10-Dec-2020.) $)
    nn0xnn0d $p |- ( ph -> A e. NN0* ) $=
      ( cn0 cxnn0 nn0ssxnn0 sseldi ) ADEBFCG $.

    $( No standard nonnegative integer equals positive infinity, deduction
       form.  (Contributed by AV, 10-Dec-2020.) $)
    nn0nepnfd $p |- ( ph -> A =/= +oo ) $=
      ( cn0 wcel cpnf wne nn0nepnf syl ) ABDEBFGCBHI $.
  $}

  $( No extended nonnegative integer equals negative infinity.  (Contributed by
     AV, 10-Dec-2020.) $)
  xnn0nemnf $p |- ( A e. NN0* -> A =/= -oo ) $=
    ( cxnn0 wcel cn0 cpnf wceq wo cmnf wne elxnn0 nn0re renemnfd pnfnemnf neeq1
    mpbiri jaoi sylbi ) ABCADCZAEFZGAHIZAJRTSRAAKLSTEHIMAEHNOPQ $.

  $( The extended nonnegative integers are extended reals without negative
     infinity.  (Contributed by AV, 10-Dec-2020.) $)
  xnn0xrnemnf $p |- ( A e. NN0* -> ( A e. RR* /\ A =/= -oo ) ) $=
    ( cxnn0 wcel cxr cmnf wne xnn0xr xnn0nemnf jca ) ABCADCAEFAGAHI $.

  $( An extended nonnegative integer which is not a standard nonnegative
     integer is positive infinity.  (Contributed by AV, 10-Dec-2020.) $)
  xnn0nnn0pnf $p |- ( ( N e. NN0* /\ -. N e. NN0 ) -> N = +oo ) $=
    ( cxnn0 wcel cn0 wn cpnf wceq wo wi elxnn0 pm2.53 sylbi imp ) ABCZADCZEZAFG
    ZNOQHPQIAJOQKLM $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Integers (as a subset of complex numbers)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ZZ $. $( The set of integers (blackboard bold Z). $)

  $( Extend class notation to include the class of integers. $)
  cz $a class ZZ $.

  $( Define the set of integers, which are the positive and negative integers
     together with zero.  Definition of integers in [Apostol] p. 22.  The
     letter Z abbreviates the German word Zahlen meaning "numbers."
     (Contributed by NM, 8-Jan-2002.) $)
  df-z $a |- ZZ = { n e. RR | ( n = 0 \/ n e. NN \/ -u n e. NN ) } $.

  ${
    $d x N $.
    $( Membership in the set of integers.  (Contributed by NM, 8-Jan-2002.) $)
    elz $p |- ( N e. ZZ <->
              ( N e. RR /\ ( N = 0 \/ N e. NN \/ -u N e. NN ) ) ) $=
      ( vx cv cc0 wceq cn wcel cneg w3o cr cz eqeq1 eleq1 eleq1d 3orbi123d df-z
      negeq elrab2 ) BCZDEZSFGZSHZFGZIADEZAFGZAHZFGZIBAJKSAEZTUDUAUEUCUGSADLSAF
      MUHUBUFFSAQNOBPR $.
  $}

  $( The negative of a positive integer is an integer.  (Contributed by NM,
     12-Jan-2002.) $)
  nnnegz $p |- ( N e. NN -> -u N e. ZZ ) $=
    ( cn wcel cneg cr cc0 wceq w3o cz nnre renegcld cc nncn negneg eleq1d mpcom
    biimprd 3mix3d elz sylanbrc ) ABCZADZECUBFGZUBBCZUBDZBCZHUBICUAAAJKUAUFUCUD
    ALCZUAUFAMUGUFUAUGUEABANOQPRUBST $.

  $( An integer is a real.  (Contributed by NM, 8-Jan-2002.) $)
  zre $p |- ( N e. ZZ -> N e. RR ) $=
    ( cz wcel cr cc0 wceq cn cneg w3o elz simplbi ) ABCADCAEFAGCAHGCIAJK $.

  $( An integer is a complex number.  (Contributed by NM, 9-May-2004.) $)
  zcn $p |- ( N e. ZZ -> N e. CC ) $=
    ( cz wcel zre recnd ) ABCAADE $.

  ${
    zrei.1 $e |- A e. ZZ $.
    $( An integer is a real number.  (Contributed by NM, 14-Jul-2005.) $)
    zrei $p |- A e. RR $=
      ( cz wcel cr zre ax-mp ) ACDAEDBAFG $.
  $}

  $( The integers are a subset of the reals.  (Contributed by NM,
     2-Aug-2004.) $)
  zssre $p |- ZZ C_ RR $=
    ( vx cz cr cv zre ssriv ) ABCADEF $.

  $( The integers are a subset of the complex numbers.  (Contributed by NM,
     2-Aug-2004.) $)
  zsscn $p |- ZZ C_ CC $=
    ( vx cz cc cv zcn ssriv ) ABCADEF $.

  $( The set of integers exists.  See also ~ zexALT .  (Contributed by NM,
     30-Jul-2004.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
  zex $p |- ZZ e. _V $=
    ( cz cc cnex zsscn ssexi ) ABCDE $.

  $( Positive integer property expressed in terms of integers.  (Contributed by
     NM, 8-Jan-2002.) $)
  elnnz $p |- ( N e. NN <-> ( N e. ZZ /\ 0 < N ) ) $=
    ( cn wcel cr cneg cc0 wceq wo wa clt wbr cz orc nngt0 jca31 wi wn w3o bitri
    nnre idd lt0neg2 renegcl 0re ltnsym sylancl sylbid nsyl gt0ne0 neneqd ioran
    imp sylanbrc pm2.21d jaod ex com23 imp31 impbii 3orrot 3orass anbi2i anbi1i
    elz bitr4i ) ABCZADCZVFAEZBCZAFGZHZHZIZFAJKZIZALCZVNIVFVOVFVGVLVNATVFVKMANO
    VGVLVNVFVGVNVLVFVGVNVLVFPVGVNIZVFVFVKVQVFUAVQVKVFVQVIQVJQVKQVQFVHJKZVIVGVNV
    RQZVGVNVHFJKZVSAUBVGVHDCFDCVTVSPAUCUDVHFUEUFUGULVHNUHVQAFAUIUJVIVJUKUMUNUOU
    PUQURUSVPVMVNVPVGVJVFVIRZIVMAVDWAVLVGWAVFVIVJRVLVJVFVIUTVFVIVJVASVBSVCVE $.

  $( Zero is an integer.  (Contributed by NM, 12-Jan-2002.) $)
  0z $p |- 0 e. ZZ $=
    ( cc0 cz wcel cr wceq cn cneg w3o 0re eqid 3mix1i elz mpbir2an ) ABCADCAAEZ
    AFCZAGFCZHINOPAJKALM $.

  $( Zero is an integer, deductive form (common case).  (Contributed by David
     A. Wheeler, 8-Dec-2018.) $)
  0zd $p |- ( ph -> 0 e. ZZ ) $=
    ( cc0 cz wcel 0z a1i ) BCDAEF $.

  $( Nonnegative integer property expressed in terms of integers.  (Contributed
     by NM, 9-May-2004.) $)
  elnn0z $p |- ( N e. NN0 <-> ( N e. ZZ /\ 0 <_ N ) ) $=
    ( cn0 wcel cn cc0 wceq wo cz clt wbr wa cle elnn0 elnnz eqcom orbi12i id 0z
    eleq1 cr mpbii jaoi orc impbii anbi1i ordir 0re zre sylancr pm5.32i 3bitr4i
    wb leloe 3bitri ) ABCADCZAEFZGAHCZEAIJZKZEAFZGZUQEALJZKZAMUOUSUPUTANAEOPUQU
    TGZURUTGZKUQVEKVAVCVDUQVEVDUQUQUQUTUQQUTEHCUQREAHSUAUBUQUTUCUDUEUQURUTUFUQV
    BVEUQETCATCVBVEULUGAUHEAUMUIUJUKUN $.

  $( Integer property expressed in terms nonnegative integers and positive
     integers.  (Contributed by NM, 10-May-2004.) $)
  elznn0nn $p |- ( N e. ZZ <-> ( N e. NN0 \/ ( N e. RR /\ -u N e. NN ) ) ) $=
    ( cz wcel cr cc0 wceq cn cneg w3o wa cn0 wo elz andi df-3or anbi2i pm4.71ri
    nn0re elnn0 bitri orcom orbi1i 3bitr4i ) ABCADCZAEFZAGCZAHGCZIZJZAKCZUDUGJZ
    LZAMUDUEUFLZUGLZJUDUMJZUKLUIULUDUMUGNUHUNUDUEUFUGOPUJUOUKUJUDUJJUOUJUDARQUJ
    UMUDUJUFUELUMASUFUEUATPTUBUCT $.

  $( Integer property expressed in terms of nonnegative integers.  (Contributed
     by NM, 9-May-2004.) $)
  elznn0 $p |- ( N e. ZZ <-> ( N e. RR /\ ( N e. NN0 \/ -u N e. NN0 ) ) ) $=
    ( cz wcel cr cc0 wceq cn cneg w3o wa cn0 wo elz wb elnn0 a1i recn 0cn bitri
    cc negcon1 sylancl eqeq1i eqcom syl6bb orbi2d syl5bb orbi12d 3orass orordir
    neg0 orcom 3bitrri syl6rbb pm5.32i ) ABCADCZAEFZAGCZAHZGCZIZJUPAKCZUSKCZLZJ
    AMUPVAVDUPVDURUQLZUTUQLZLZVAUPVBVEVCVFVBVENUPAOPVCUTUSEFZLUPVFUSOUPVHUQUTUP
    VHEHZAFZUQUPATCETCVHVJNAQRAEUAUBVJEAFUQVIEAUKUCEAUDSUEUFUGUHVAUQURUTLZLVKUQ
    LVGUQURUTUIUQVKULURUTUQUJUMUNUOS $.

  $( Integer property expressed in terms of positive integers and nonnegative
     integers.  (Contributed by NM, 12-Jul-2005.) $)
  elznn $p |- ( N e. ZZ <-> ( N e. RR /\ ( N e. NN \/ -u N e. NN0 ) ) ) $=
    ( cz wcel cr cc0 wceq cn cneg w3o wa cn0 wo elz recn negeq0d elnn0 syl6rbbr
    orbi2d 3orrot bitri 3orass pm5.32i ) ABCADCZAEFZAGCZAHZGCZIZJUCUEUFKCZLZJAM
    UCUHUJUCUJUEUGUDLZLZUHUCUIUKUEUCUKUGUFEFZLUIUCUDUMUGUCAANORUFPQRUHUEUGUDIUL
    UDUEUGSUEUGUDUATQUBT $.

  ${
    $d x y z N $.
    $( Membership in the set of integers.  Commonly used in constructions of
       the integers as equivalence classes under subtraction of the positive
       integers.  (Contributed by Mario Carneiro, 16-May-2014.) $)
    elz2 $p |- ( N e. ZZ <-> E. x e. NN E. y e. NN N = ( x - y ) ) $=
      ( wcel cr cn0 cneg wo wa cv cmin co wceq cn c1 1nn ax-1cn sylancr syl2an
      cc wrex elznn0 caddc nn0p1nn adantl a1i recn adantr pncan sylancl rspceov
      eqcomd syl3anc negsub simpr nnnn0addcl eqeltrrd nncan jaodan nnre resubcl
      cz cle wbr letric syl2anr wb nnnn0 nn0sub negsubdi2 eleq1d bitr4d orbi12d
      nncn mpbid jca eleq1 negeq anbi12d syl5ibrcom rexlimivv impbii bitri ) CV
      BDCEDZCFDZCGZFDZHZIZCAJZBJZKLZMZBNUAANUAZCUBWIWNWDWEWNWGWDWEIZCOUCLZNDZON
      DZCWPOKLZMWNWEWQWDCUDUEWRWOPUFWOWSCWOCTDZOTDZWSCMWDWTWECUGZUHQCOUIUJULABN
      NWPOCKUKUMWDWGIZWROCKLZNDCOXDKLZMWNWRXCPUFXCOWFUCLZXDNXCXAWTXFXDMQWDWTWGX
      BUHZOCUNRXCWRWGXFNDPWDWGUOOWFUPRUQXCXECXCXAWTXECMQXGOCURRULABNNOXDCKUKUMU
      SWMWIABNNWJNDZWKNDZIZWIWMWLEDZWLFDZWLGZFDZHZIXJXKXOXHWJEDZWKEDZXKXIWJUTZW
      KUTZWJWKVASXJWKWJVCVDZWJWKVCVDZHZXOXIXQXPYBXHXSXRWKWJVEVFXJXTXLYAXNXIWKFD
      ZWJFDZXTXLVGXHWKVHZWJVHZWKWJVIVFXJYAWKWJKLZFDZXNXHYDYCYAYHVGXIYFYEWJWKVIS
      XJXMYGFXHWJTDWKTDXMYGMXIWJVNWKVNWJWKVJSVKVLVMVOVPWMWDXKWHXOCWLEVQWMWEXLWG
      XNCWLFVQWMWFXMFCWLVRVKVMVSVTWAWBWC $.

    $( Alternative definition of the integers, based on ~ elz2 .  (Contributed
       by Mario Carneiro, 16-May-2014.) $)
    dfz2 $p |- ZZ = ( - " ( NN X. NN ) ) $=
      ( vx vy vz cz cmin cn cxp cima cv wcel co wceq wrex elz2 cc wfn wb nnsscn
      wss mp2an wf subf ffn ax-mp xpss12 ovelimab bitr4i eqriv ) ADEFFGZHZAIZDJ
      UKBICIEKLCFMBFMZUKUJJZBCUKNEOOGZPZUIUNSZUMULQUNOEUAUOUBUNOEUCUDFOSZUQUPRR
      FOFOUETBCUNFFUKEUFTUGUH $.
  $}

  $( Alternate proof of ~ zex .  (Contributed by NM, 30-Jul-2004.)  (Revised by
     Mario Carneiro, 16-May-2014.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  zexALT $p |- ZZ e. _V $=
    ( cz cmin cn cxp cima cvv dfz2 cc wfun wcel subf ffun nnexALT xpex funimaex
    wf mp2b eqeltri ) ABCCDZEZFGHHDZHBPBITFJKUAHBLBSCCMMNOQR $.

  $( Positive integers are a subset of integers.  (Contributed by NM,
     9-Jan-2002.) $)
  nnssz $p |- NN C_ ZZ $=
    ( vx cn cz cv wcel cc0 clt wbr elnnz simplbi ssriv ) ABCADZBELCEFLGHLIJK $.

  $( Nonnegative integers are a subset of the integers.  (Contributed by NM,
     9-May-2004.) $)
  nn0ssz $p |- NN0 C_ ZZ $=
    ( cn0 cn cc0 csn cun cz df-n0 nnssz wcel wss c0ex snss mpbi unssi eqsstri
    0z ) ABCDZEFGBQFHCFIQFJPCFKLMNO $.

  $( A positive integer is an integer.  (Contributed by NM, 9-May-2004.) $)
  nnz $p |- ( N e. NN -> N e. ZZ ) $=
    ( cn cz nnssz sseli ) BCADE $.

  $( A nonnegative integer is an integer.  (Contributed by NM, 9-May-2004.) $)
  nn0z $p |- ( N e. NN0 -> N e. ZZ ) $=
    ( cn0 cz nn0ssz sseli ) BCADE $.

  ${
    nnzi.1 $e |- N e. NN $.
    $( A positive integer is an integer.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    nnzi $p |- N e. ZZ $=
      ( cn cz nnssz sselii ) CDAEBF $.
  $}

  ${
    nn0zi.1 $e |- N e. NN0 $.
    $( A nonnegative integer is an integer.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    nn0zi $p |- N e. ZZ $=
      ( cn0 cz nn0ssz sselii ) CDAEBF $.
  $}

  $( Positive integer property expressed in terms of integers.  (Contributed by
     NM, 10-May-2004.)  (Proof shortened by Mario Carneiro, 16-May-2014.) $)
  elnnz1 $p |- ( N e. NN <-> ( N e. ZZ /\ 1 <_ N ) ) $=
    ( cn wcel cz c1 cle wbr wa nnz nnge1 jca cc0 clt 0lt1 cr zre 0re 1re ltletr
    wi mp3an12 syl mpani imdistani elnnz sylibr impbii ) ABCZADCZEAFGZHZUHUIUJA
    IAJKUKUILAMGZHUHUIUJULUILEMGZUJULNUIAOCZUMUJHULTZAPLOCEOCUNUOQRLEASUAUBUCUD
    AUEUFUG $.

  $( An integer is not a positive integer iff it is less than one.
     (Contributed by NM, 13-Jul-2005.) $)
  znnnlt1 $p |- ( N e. ZZ -> ( -. N e. NN <-> N < 1 ) ) $=
    ( cz wcel cn wn c1 cle wbr clt elnnz1 baib notbid cr zre 1re sylancl bitr4d
    wb ltnle ) ABCZADCZEFAGHZEZAFIHZTUAUBUATUBAJKLTAMCFMCUDUCRANOAFSPQ $.

  $( Positive integers expressed as a subset of integers.  (Contributed by NM,
     3-Oct-2004.) $)
  nnzrab $p |- NN = { x e. ZZ | 1 <_ x } $=
    ( cn cv cz wcel c1 cle wbr wa cab crab elnnz1 abbi2i df-rab eqtr4i ) BACZDE
    FPGHZIZAJQADKRABPLMQADNO $.

  $( Nonnegative integers expressed as a subset of integers.  (Contributed by
     NM, 3-Oct-2004.) $)
  nn0zrab $p |- NN0 = { x e. ZZ | 0 <_ x } $=
    ( cn0 cv cz wcel cc0 cle wbr wa cab crab elnn0z abbi2i df-rab eqtr4i ) BACZ
    DEFPGHZIZAJQADKRABPLMQADNO $.

  $( One is an integer.  (Contributed by NM, 10-May-2004.) $)
  1z $p |- 1 e. ZZ $=
    ( c1 1nn nnzi ) ABC $.

  $( 1 is an integer, deductive form (common case).  (Contributed by David A.
     Wheeler, 6-Dec-2018.) $)
  1zzd $p |- ( ph -> 1 e. ZZ ) $=
    ( c1 cz wcel 1z a1i ) BCDAEF $.

  $( 2 is an integer.  (Contributed by NM, 10-May-2004.) $)
  2z $p |- 2 e. ZZ $=
    ( c2 2nn nnzi ) ABC $.

  $( 3 is an integer.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  3z $p |- 3 e. ZZ $=
    ( c3 3nn nnzi ) ABC $.

  $( 4 is an integer.  (Contributed by BJ, 26-Mar-2020.) $)
  4z $p |- 4 e. ZZ $=
    ( c4 4nn nnzi ) ABC $.

  $( Closure law for negative integers.  (Contributed by NM, 9-May-2004.) $)
  znegcl $p |- ( N e. ZZ -> -u N e. ZZ ) $=
    ( cz wcel cr cc0 wceq cn cneg w3o elz negeq neg0 syl6eq syl6eqel nnnegz nnz
    wa 0z 3jaoi adantl sylbi ) ABCADCZAEFZAGCZAHZGCZIZQUEBCZAJUGUHUBUCUHUDUFUCU
    EEBUCUEEHEAEKLMRNAOUEPSTUA $.

  $( -1 is an integer (common case).  (Contributed by David A. Wheeler,
     5-Dec-2018.) $)
  neg1z $p |- -u 1 e. ZZ $=
    ( c1 cn wcel cneg cz 1nn nnnegz ax-mp ) ABCADECFAGH $.

  $( A complex number is an integer iff its negative is.  (Contributed by
     Stefan O'Rear, 13-Sep-2014.) $)
  znegclb $p |- ( A e. CC -> ( A e. ZZ <-> -u A e. ZZ ) ) $=
    ( cc wcel cz cneg znegcl negneg eleq1d syl5ib impbid2 ) ABCZADCZAEZDCZAFNME
    ZDCKLMFKOADAGHIJ $.

  $( The negative of a nonnegative integer is an integer.  (Contributed by NM,
     9-May-2004.) $)
  nn0negz $p |- ( N e. NN0 -> -u N e. ZZ ) $=
    ( cn0 wcel cz cneg nn0z znegcl syl ) ABCADCAEDCAFAGH $.

  ${
    nn0negzi.1 $e |- N e. NN0 $.
    $( The negative of a nonnegative integer is an integer.  (Contributed by
       Mario Carneiro, 18-Feb-2014.) $)
    nn0negzi $p |- -u N e. ZZ $=
      ( cn0 wcel cneg cz nn0negz ax-mp ) ACDAEFDBAGH $.
  $}

  ${
    $d u v w x y z M $.  $d w x y z N $.
    $( Closure of addition of integers.  (Contributed by NM, 9-May-2004.)
       (Proof shortened by Mario Carneiro, 16-May-2014.) $)
    zaddcl $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M + N ) e. ZZ ) $=
      ( vx vy vz vw vu vv cz wcel cv cmin co wceq cn wrex caddc wa cc nncn elz2
      reeanv nnaddcl adantr adantl anim12i addsub4 syl2an eqcomd rspceov sylibr
      syl3anc oveq12 eleq1d syl5ibrcom rexlimdvva syl5bir rexlimivv syl2anb
      sylbir ) AIJACKZDKZLMZNZDOPZCOPZBEKZFKZLMZNZFOPZEOPZABQMZIJZBIJCDAUAEFBUA
      VFVLRVEVKRZEOPCOPVNVEVKCEOOUBVOVNCEOOVOVDVJRZFOPDOPVAOJZVGOJZRZVNVDVJDFOO
      UBVSVPVNDFOOVSVBOJZVHOJZRZRZVNVPVCVIQMZIJZWCWDGKHKLMNHOPGOPZWEWCVAVGQMZOJ
      ZVBVHQMZOJZWDWGWILMZNWFVSWHWBVAVGUCUDWBWJVSVBVHUCUEWCWKWDVSVASJZVGSJZRVBS
      JZVHSJZRWKWDNWBVQWLVRWMVATVGTUFVTWNWAWOVBTVHTUFVAVGVBVHUGUHUIGHOOWGWIWDLU
      JULGHWDUAUKVPVMWDIAVCBVIQUMUNUOUPUQURUTUS $.
  $}

  $( Second Peano postulate generalized to integers.  (Contributed by NM,
     13-Feb-2005.) $)
  peano2z $p |- ( N e. ZZ -> ( N + 1 ) e. ZZ ) $=
    ( cz wcel c1 caddc co 1z zaddcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( Closure of subtraction of integers.  (Contributed by NM, 11-May-2004.) $)
  zsubcl $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M - N ) e. ZZ ) $=
    ( cz wcel wa cneg caddc co cmin wceq zcn negsub syl2an znegcl zaddcl sylan2
    cc eqeltrrd ) ACDZBCDZEABFZGHZABIHZCSAQDBQDUBUCJTAKBKABLMTSUACDUBCDBNAUAOPR
    $.

  $( "Reverse" second Peano postulate for integers.  (Contributed by NM,
     12-Sep-2005.) $)
  peano2zm $p |- ( N e. ZZ -> ( N - 1 ) e. ZZ ) $=
    ( cz wcel c1 cmin co 1z zsubcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( Transitive law of ordering for integers.  (Contributed by Alexander van
     der Vekens, 3-Apr-2018.) $)
  zletr $p |- ( ( J e. ZZ /\ K e. ZZ /\ L e. ZZ )
                -> ( ( J <_ K /\ K <_ L ) -> J <_ L ) ) $=
    ( cz wcel cr cle wbr wa wi zre letr syl3an ) ADEAFEBDEBFECDECFEABGHBCGHIACG
    HJAKBKCKABCLM $.

  $( Reverse closure law for addition of integers.  (Contributed by NM,
     11-May-2004.) $)
  zrevaddcl $p |- ( N e. ZZ ->
                   ( ( M e. CC /\ ( M + N ) e. ZZ ) <-> M e. ZZ ) ) $=
    ( cz wcel cc caddc co wa cmin zcn pncan sylan2 ancoms adantr zsubcl adantlr
    wceq eqeltrrd ex wi zaddcl expcom impbid pm5.32da pm4.71ri syl6bbr ) BCDZAE
    DZABFGZCDZHUHACDZHUKUGUHUJUKUGUHHZUJUKULUJUKULUJHUIBIGZACULUMAQZUJUHUGUNUGU
    HBEDUNBJABKLMNUGUJUMCDZUHUJUGUOUIBOMPRSUGUKUJTUHUKUGUJABUAUBNUCUDUKUHAJUEUF
    $.

  $( The positive difference of unequal integers is a positive integer.
     (Generalization of ~ nnsub .)  (Contributed by NM, 11-May-2004.) $)
  znnsub $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M < N <-> ( N - M ) e. NN ) ) $=
    ( cz wcel wa clt wbr cmin co cn cr wb posdif syl2an zsubcl ancoms biantrurd
    cc0 zre bitrd elnnz syl6bbr ) ACDZBCDZEZABFGZBAHIZCDZRUGFGZEZUGJDUEUFUIUJUC
    AKDBKDUFUILUDASBSABMNUEUHUIUDUCUHBAOPQTUGUAUB $.

  $( The nonnegative difference of integers is a nonnegative integer.
     (Generalization of ~ nn0sub .)  (Contributed by NM, 14-Jul-2005.) $)
  znn0sub $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
                ( M <_ N <-> ( N - M ) e. NN0 ) ) $=
    ( cz wcel wa cle wbr co cc0 cn0 wb cr subge0 syl2an zsubcl biantrurd bitr3d
    cmin zre ancoms elnn0z syl6bbr ) ACDZBCDZEABFGZBARHZCDZIUFFGZEZUFJDUDUCUEUI
    KUDUCEZUHUEUIUDBLDALDUHUEKUCBSASBAMNUJUGUHBAOPQTUFUAUB $.

  $( The sum of a real number not being an integer and an integer is not an
     integer.  (Contributed by AV, 19-Jul-2021.) $)
  nzadd $p |- ( ( A e. ( RR \ ZZ ) /\ B e. ZZ )
                -> ( A + B ) e. ( RR \ ZZ ) ) $=
    ( cr cz cdif wcel wa caddc co wn eldif zre readdcl sylan2 adantlr wi zsubcl
    cmin expcom cc adantl wceq zcn pncan syl2an eleq1d sylibd con3d com23 imp31
    recn ex jca sylanb sylibr ) ACDEZFZBDFZGABHIZCFZUSDFZJZGZUSUPFUQACFZADFZJZG
    ZURVCACDKVGURGUTVBVDURUTVFURVDBCFUTBLABMNOVDVFURVBVDURVFVBVDURVFVBPVDURGZVA
    VEVHVAUSBRIZDFZVEURVAVJPVDVAURVJUSBQSUAVHVIADVDATFBTFVIAUBURAUKBUCABUDUEUFU
    GUHULUIUJUMUNUSCDKUO $.

  $( Closure of multiplication of integers.  (Contributed by NM,
     30-Jul-2004.) $)
  zmulcl $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M x. N ) e. ZZ ) $=
    ( cz wcel cr cn0 cneg wo wa cmul co elznn0 nn0mulcl jctild cc syl2an eleq1d
    wceq syl5ib syl6 wi orcd a1i remulcl mulneg1 olc mulneg2 mul2neg orc ccased
    recn syl6ibr imp an4s syl2anb ) ACDAEDZAFDZAGZFDZHZIBEDZBFDZBGZFDZHZIABJKZC
    DZBCDALBLUPVAUTVEVGUPVAIZUTVEIZVGVHVIVFEDZVFFDZVFGZFDZHZIZVGVHUQVBUSVDVOVHU
    QVBIZVNVJVPVNUAVHVPVKVMABMUBUCABUDZNVHUSVBIZVNVJVHVRVMVNVRURBJKZFDVHVMURBMV
    HVSVLFUPAODZBODZVSVLRVAAUKZBUKZABUEPQSVMVKUFZTVQNVHUQVDIZVNVJVHWEVMVNWEAVCJ
    KZFDVHVMAVCMVHWFVLFUPVTWAWFVLRVAWBWCABUGPQSWDTVQNVHUSVDIZVNVJVHWGVKVNWGURVC
    JKZFDVHVKURVCMVHWHVFFUPVTWAWHVFRVAWBWCABUHPQSVKVMUITVQNUJVFLULUMUNUO $.

  $( Integer ordering relation.  (Contributed by NM, 10-May-2004.)  (Proof
     shortened by Mario Carneiro, 16-May-2014.) $)
  zltp1le $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M < N <-> ( M + 1 ) <_ N ) ) $=
    ( cz wcel wa clt wbr c1 caddc co cle cmin cn wi nnge1 a1i znnsub cr wb zre
    1re leaddsub2 mp3an2 syl2an 3imtr4d adantr ltp1d peano2re syl adantl ltletr
    syl3anc mpand impbid ) ACDZBCDZEZABFGZAHIJZBKGZUQBALJZMDZHVAKGZURUTVBVCNUQV
    AOPABQUOARDZBRDZUTVCSZUPATZBTZVDHRDVEVFUAAHBUBUCUDUEUQAUSFGZUTURUQAUOVDUPVG
    UFZUGUQVDUSRDZVEVIUTEURNVJUQVDVKVJAUHUIUPVEUOVHUJAUSBUKULUMUN $.

  $( Integer ordering relation.  (Contributed by NM, 10-May-2004.) $)
  zleltp1 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M <_ N <-> M < ( N + 1 ) ) ) $=
    ( cz wcel wa cle wbr c1 caddc co clt cr wb zre leadd1 mp3an3 syl2an peano2z
    1re zltp1le sylan2 bitr4d ) ACDZBCDZEABFGZAHIJBHIJZFGZAUFKGZUCALDZBLDZUEUGM
    ZUDANBNUIUJHLDUKSABHOPQUDUCUFCDUHUGMBRAUFTUAUB $.

  $( Integer ordering relation.  (Contributed by NM, 13-Nov-2004.) $)
  zlem1lt $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M <_ N <-> ( M - 1 ) < N ) ) $=
    ( cz wcel wa c1 cmin co clt wbr caddc cle wb peano2zm zltp1le sylan wceq cc
    zcn ax-1cn npcan sylancl adantr breq1d bitr2d ) ACDZBCDZEZAFGHZBIJZUIFKHZBL
    JZABLJUFUICDUGUJULMANUIBOPUHUKABLUFUKAQZUGUFARDFRDUMASTAFUAUBUCUDUE $.

  $( Integer ordering relation.  (Contributed by NM, 13-Nov-2004.) $)
  zltlem1 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M < N <-> M <_ ( N - 1 ) ) ) $=
    ( cz wcel wa c1 cmin co cle wbr caddc clt wb peano2zm zleltp1 sylan2 cc zcn
    wceq ax-1cn npcan sylancl adantl breq2d bitr2d ) ACDZBCDZEZABFGHZIJZAUIFKHZ
    LJZABLJUGUFUICDUJULMBNAUIOPUHUKBALUGUKBSZUFUGBQDFQDUMBRTBFUAUBUCUDUE $.

  $( An integer greater than ` 0 ` is greater than or equal to ` 1 ` .
     (Contributed by AV, 14-Oct-2018.) $)
  zgt0ge1 $p |- ( Z e. ZZ -> ( 0 < Z <-> 1 <_ Z ) ) $=
    ( cz wcel cc0 clt wbr c1 caddc co cle wb zltp1le mpan wceq 0p1e1 a1i breq1d
    0z bitrd ) ABCZDAEFZDGHIZAJFZGAJFDBCTUAUCKRDALMTUBGAJUBGNTOPQS $.

$( TODO: The following 14 theorems do not contain ` ZZ ` - these theorems are
   about positive or nonnegative integers which are defined earlier.  But the
   proofs of these theorems are based on theorems for ` ZZ `.  It should be
   clarified if these theorems could be proven without theorems for ` ZZ ` and
   then could be moved up into the corresponding subsections.  Alternately,
   these theorems could be moved into a new seperate subsection "Positive and
   nonnegative integers (cont.)". $)

  $( Positive integer ordering relation.  (Contributed by NM, 13-Aug-2001.)
     (Proof shortened by Mario Carneiro, 16-May-2014.) $)
  nnleltp1 $p |- ( ( A e. NN /\ B e. NN ) ->
                ( A <_ B <-> A < ( B + 1 ) ) ) $=
    ( cn wcel cz cle wbr c1 caddc co clt wb nnz zleltp1 syl2an ) ACDAEDBEDABFGA
    BHIJKGLBCDAMBMABNO $.

  $( Positive integer ordering relation.  (Contributed by NM, 19-Aug-2001.) $)
  nnltp1le $p |- ( ( A e. NN /\ B e. NN ) ->
                ( A < B <-> ( A + 1 ) <_ B ) ) $=
    ( cn wcel cz clt wbr c1 caddc co cle wb nnz zltp1le syl2an ) ACDAEDBEDABFGA
    HIJBKGLBCDAMBMABNO $.

  $( Closure of addition of positive integers minus one.  (Contributed by NM,
     6-Aug-2003.)  (Proof shortened by Mario Carneiro, 16-May-2014.) $)
  nnaddm1cl $p |- ( ( A e. NN /\ B e. NN ) -> ( ( A + B ) - 1 ) e. NN ) $=
    ( cn wcel wa caddc co c1 cmin wceq nncn ax-1cn addsub mp3an3 syl2an nnm1nn0
    cc cn0 nn0nnaddcl sylan eqeltrd ) ACDZBCDZEABFGHIGZAHIGZBFGZCUBAQDZBQDZUDUF
    JZUCAKBKUGUHHQDUILABHMNOUBUERDUCUFCDAPUEBSTUA $.

  $( Nonnegative integer ordering relation.  (Contributed by Raph Levien,
     10-Dec-2002.)  (Proof shortened by Mario Carneiro, 16-May-2014.) $)
  nn0ltp1le $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                ( M < N <-> ( M + 1 ) <_ N ) ) $=
    ( cn0 wcel cz clt wbr c1 caddc co cle wb nn0z zltp1le syl2an ) ACDAEDBEDABF
    GAHIJBKGLBCDAMBMABNO $.

  $( Nonnegative integer ordering relation.  (Contributed by Raph Levien,
     10-Apr-2004.) $)
  nn0leltp1 $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                ( M <_ N <-> M < ( N + 1 ) ) ) $=
    ( cn0 wcel cz cle wbr c1 caddc co clt wb nn0z zleltp1 syl2an ) ACDAEDBEDABF
    GABHIJKGLBCDAMBMABNO $.

  $( Nonnegative integer ordering relation.  (Contributed by NM, 10-May-2004.)
     (Proof shortened by Mario Carneiro, 16-May-2014.) $)
  nn0ltlem1 $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                ( M < N <-> M <_ ( N - 1 ) ) ) $=
    ( cn0 wcel cz clt wbr c1 cmin co cle wb nn0z zltlem1 syl2an ) ACDAEDBEDABFG
    ABHIJKGLBCDAMBMABNO $.

  $( Subtraction of nonnegative integers.  (Contributed by NM, 4-Sep-2005.) $)
  nn0sub2 $p |- ( ( M e. NN0 /\ N e. NN0 /\ M <_ N ) -> ( N - M ) e. NN0 ) $=
    ( cn0 wcel cle wbr cmin co nn0sub biimp3a ) ACDBCDABEFBAGHCDABIJ $.

  $( A nonnegative integer less than ` 1 ` is ` 0 ` .  (Contributed by Paul
     Chapman, 22-Jun-2011.)  (Proof shortened by OpenAI, 25-Mar-2020.) $)
  nn0lt10b $p |- ( N e. NN0 -> ( N < 1 <-> N = 0 ) ) $=
    ( cn0 wcel c1 clt wbr cc0 wceq cn wo wi elnn0 nnnlt1 pm2.21d ax-1 jaoi 0lt1
    sylbi breq1 mpbiri impbid1 ) ABCZADEFZAGHZUBAICZUDJUCUDKZALUEUFUDUEUCUDAMNU
    DUCOPRUDUCGDEFQAGDESTUA $.

  $( A nonnegative integer less than 2 must be 0 or 1.  (Contributed by
     Alexander van der Vekens, 16-Sep-2018.) $)
  nn0lt2 $p |- ( ( N e. NN0 /\ N < 2 ) -> ( N = 0 \/ N = 1 ) ) $=
    ( cn0 wcel c2 clt wbr wa cc0 wceq c1 wo wi olc a1d wne cle cz wb sylancl cr
    cmin co nn0z 2z zltlem1 2m1e1 breq2i syl6bb necom nn0re 1re nn0lt10b biimpa
    ltlen orcd ex sylbird expd syl7bi sylbid imp com12 pm2.61ine ) ABCZADEFZGZA
    HIZAJIZKZLAJVHVIVFVHVGMNVFAJOZVIVDVEVJVILZVDVEAJPFZVKVDVEADJUAUBZPFZVLVDAQC
    DQCVEVNRAUCUDADUESVMJAPUFUGUHVJJAOZVDVLVIAJUIVDVLVOVIVDVLVOGZAJEFZVIVDATCJT
    CVQVPRAUJUKAJUNSVDVQVIVDVQGVGVHVDVQVGAULUMUOUPUQURUSUTVAVBVC $.

  $( A nonnegative integer which is less than or equal to 2 is either 0 or 1 or
     2.  (Contributed by AV, 16-Mar-2019.) $)
  nn0le2is012 $p |- ( ( N e. NN0 /\ N <_ 2 )
                      -> ( N = 0 \/ N = 1 \/ N = 2 ) ) $=
    ( cn0 wcel c2 cle wbr cc0 wceq c1 w3o clt wo nn0re a1i leloed cz com12 jaoi
    a1d sylbid cr wi cmin co wb nn0z 2z zltlem1 sylancl 2m1e1 breq2d bitrd 1red
    2re nn0lt10b 3mix1 syl6bi 3mix2 3mix3 imp ) ABCZADEFZAGHZAIHZADHZJZVAVBADKF
    ZVELZVFVAADAMZDUACVAUNNOVHVAVFVGVAVFUBZVEVAVGVFVAVGAIEFZVFVAVGADIUCUDZEFZVK
    VAAPCDPCVGVMUEAUFUGADUHUIVAVLIAEVLIHVAUJNUKULVAVKAIKFZVDLZVFVAAIVIVAUMOVOVA
    VFVNVJVDVAVNVFVAVNVCVFAUOVCVDVEUPUQQVDVFVAVDVCVEURSRQTTQVEVFVAVEVCVDUSSRQTU
    T $.

  $( Nonnegative integer ordering relation.  (Contributed by NM,
     21-Jun-2005.) $)
  nn0lem1lt $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                   ( M <_ N <-> ( M - 1 ) < N ) ) $=
    ( cn0 wcel cz cle wbr c1 cmin co clt wb nn0z zlem1lt syl2an ) ACDAEDBEDABFG
    AHIJBKGLBCDAMBMABNO $.

  $( Positive integer ordering relation.  (Contributed by NM, 21-Jun-2005.) $)
  nnlem1lt $p |- ( ( M e. NN /\ N e. NN ) -> ( M <_ N <-> ( M - 1 ) < N ) ) $=
    ( cn wcel cz cle wbr c1 cmin co clt wb nnz zlem1lt syl2an ) ACDAEDBEDABFGAH
    IJBKGLBCDAMBMABNO $.

  $( Positive integer ordering relation.  (Contributed by NM, 21-Jun-2005.) $)
  nnltlem1 $p |- ( ( M e. NN /\ N e. NN ) -> ( M < N <-> M <_ ( N - 1 ) ) ) $=
    ( cn wcel cz clt wbr c1 cmin co cle wb nnz zltlem1 syl2an ) ACDAEDBEDABFGAB
    HIJKGLBCDAMBMABNO $.

  $( A positive integer decreased by 1 is greater than or equal to 0.
     (Contributed by AV, 30-Oct-2018.) $)
  nnm1ge0 $p |- ( N e. NN -> 0 <_ ( N - 1 ) ) $=
    ( cn wcel cc0 clt wbr c1 cmin co cle nngt0 cz wb nnz zltlem1 sylancr mpbid
    0z ) ABCZDAEFZDAGHIJFZAKSDLCALCTUAMRANDAOPQ $.

  $( Division of a nonnegative integer by a positive number is not negative.
     (Contributed by Alexander van der Vekens, 14-Apr-2018.) $)
  nn0ge0div $p |- ( ( K e. NN0 /\ L e. NN ) -> 0 <_ ( K / L ) ) $=
    ( cn0 wcel cn wa cc0 cle wbr cdiv co nn0ge0 adantr cr clt wb cz elnnz nn0re
    w3a zre ad2antrl simprr 3jca sylan2b ge0div syl mpbid ) ACDZBEDZFZGAHIZGABJ
    KHIZUIULUJALMUKANDZBNDZGBOIZTZULUMPUJUIBQDZUPFZUQBRUIUSFUNUOUPUIUNUSASMURUO
    UIUPBUAUBUIURUPUCUDUEABUFUGUH $.

  ${
    $d k M $.  $d k N $.
    $( Two ways to express " ` M ` divides ` N ` .  (Contributed by NM,
       3-Oct-2008.) $)
    zdiv $p |- ( ( M e. NN /\ N e. ZZ )
                -> ( E. k e. ZZ ( M x. k ) = N <-> ( N / M ) e. ZZ ) ) $=
      ( cn wcel cz wa cc0 wne cv cmul co wceq wrex cdiv wb nnne0 cc wi zcn nncn
      adantr divcan3 3coml 3expa sylan2 3adantl2 oveq1 sylan9req eqeltrrd exp31
      w3a simplr rexlimdv divcan2 3com12 eqeq1d rspcev expcom syl impbid 3expia
      oveq2 syl2an mpd ) BDEZCFEZGBHIZBAJZKLZCMZAFNZCBOLZFEZPZVFVHVGBQUBVFBREZC
      REZVHVOSVGBUACTVPVQVHVOVPVQVHULZVLVNVRVKVNAFVRVIFEZVKVNVRVSGZVKGVIVMFVTVK
      VIVJBOLZVMVPVHVSWAVIMZVQVSVPVHGVIREZWBVITVPVHWCWBWCVPVHWBVIBUCUDUEUFUGVJC
      BOUHUIVRVSVKUMUJUKUNVRBVMKLZCMZVNVLSVQVPVHWECBUOUPVNWEVLVKWEAVMFVIVMMVJWD
      CVIVMBKVCUQURUSUTVAVBVDVE $.
  $}

  $( Property of divisibility: if ` D ` divides ` A ` and ` B ` then it divides
     ` A + B ` .  (Contributed by NM, 3-Oct-2008.) $)
  zdivadd $p |- ( ( ( D e. NN /\ A e. ZZ /\ B e. ZZ ) /\
       ( ( A / D ) e. ZZ /\ ( B / D ) e. ZZ ) ) -> ( ( A + B ) / D ) e. ZZ ) $=
    ( cn wcel cz w3a cdiv co wa caddc wceq cc cc0 wne zcn nncn nnne0 jca divdir
    syl3an 3comr adantr zaddcl adantl eqeltrd ) CDEZAFEZBFEZGZACHIZFEBCHIZFEJZJ
    ABKICHIZUKULKIZFUJUNUOLZUMUHUIUGUPUHAMEUIBMEUGCMEZCNOZJUPAPBPUGUQURCQCRSABC
    TUAUBUCUMUOFEUJUKULUDUEUF $.

  $( Property of divisibility: if ` D ` divides ` A ` then it divides
     ` B x. A ` .  (Contributed by NM, 3-Oct-2008.) $)
  zdivmul $p |- ( ( ( D e. NN /\ A e. ZZ /\ B e. ZZ ) /\
       ( A / D ) e. ZZ ) -> ( ( B x. A ) / D ) e. ZZ ) $=
    ( cn wcel cz w3a cdiv co wa cmul wceq cc cc0 wne zcn 3ad2ant2 3ad2ant1 nncn
    nnne0 jca 3ad2ant3 divass syl3anc 3comr adantr zmulcl 3ad2antl3 eqeltrd ) C
    DEZAFEZBFEZGZACHIZFEZJBAKICHIZBUNKIZFUMUPUQLZUOUKULUJURUKULUJGBMEZAMEZCMEZC
    NOZJZURULUKUSUJBPQUKULUTUJAPRUJUKVCULUJVAVBCSCTUAUBBACUCUDUEUFULUJUOUQFEUKB
    UNUGUHUI $.

  ${
    $d k M $.  $d k N $.
    $( An extensionality-like property for integer ordering.  (Contributed by
       NM, 29-Oct-2005.) $)
    zextle $p |- ( ( M e. ZZ /\ N e. ZZ /\ A. k e. ZZ ( k <_ M <-> k <_ N ) )
                  -> M = N ) $=
      ( cz wcel cv cle wbr wb wral wceq wa zre leidd adantr breq1 bibi12d mpbid
      rspcva cr adantlr mpbird adantll jca ex letri3 syl2an sylibrd 3impia ) BD
      EZCDEZAFZBGHZULCGHZIZADJZBCKZUJUKLZUPBCGHZCBGHZLZUQURUPVAURUPLUSUTUJUPUSU
      KUJUPLBBGHZUSUJVBUPUJBBMZNOUOVBUSIABDULBKUMVBUNUSULBBGPULBCGPQSRUAUKUPUTU
      JUKUPLUTCCGHZUKVDUPUKCCMZNOUOUTVDIACDULCKUMUTUNVDULCBGPULCCGPQSUBUCUDUEUJ
      BTECTEUQVAIUKVCVEBCUFUGUHUI $.

    $( An extensionality-like property for integer ordering.  (Contributed by
       NM, 29-Oct-2005.) $)
    zextlt $p |- ( ( M e. ZZ /\ N e. ZZ /\ A. k e. ZZ ( k < M <-> k < N ) )
                  -> M = N ) $=
      ( cz wcel clt wbr wb wral wceq wa c1 cmin cle zltlem1 peano2zm syl2an zcn
      co cc cv adantrr adantrl bibi12d ancoms ralbidva wi zextle 3expia subcan2
      ax-1cn mp3an3 sylibd sylbid 3impia ) BDEZCDEZAUAZBFGZURCFGZHZADIZBCJZUPUQ
      KZVBURBLMSZNGZURCLMSZNGZHZADIZVCVDVAVIADURDEZVDVAVIHVKVDKUSVFUTVHVKUPUSVF
      HUQURBOUBVKUQUTVHHUPURCOUCUDUEUFVDVJVEVGJZVCUPVEDEZVGDEZVJVLUGUQBPCPVMVNV
      JVLAVEVGUHUIQUPBTEZCTEZVLVCHZUQBRCRVOVPLTEVQUKBCLUJULQUMUNUO $.
  $}

  $( The reciprocal of a number greater than 1 is not an integer.  (Contributed
     by NM, 3-May-2005.) $)
  recnz $p |- ( ( A e. RR /\ 1 < A ) -> -. ( 1 / A ) e. ZZ ) $=
    ( cr wcel c1 clt wbr wa cdiv co cz cc0 recgt1i simprd cle wn simpld zgt0ge1
    syl5ibcom wb 1re wne 0lt1 wi 0re mp3an12 mpani imdistani gt0ne0 syl rereccl
    lttr syldan lenlt sylancr sylibd mt2d ) ABCZDAEFZGZDAHIZJCZUTDEFZUSKUTEFZVB
    ALZMUSVADUTNFZVBOZUSVCVAVEUSVCVBVDPUTQRUSDBCZUTBCZVEVFSTUQURAKUAZVHUSUQKAEF
    ZGVIUQURVJUQKDEFZURVJUBKBCVGUQVKURGVJUCUDTKDAUKUEUFUGAUHUIAUJULDUTUMUNUOUP
    $.

  $( A number between an integer and its successor is not an integer.
     (Contributed by NM, 3-May-2005.) $)
  btwnnz $p |- ( ( A e. ZZ /\ A < B /\ B < ( A + 1 ) ) -> -. B e. ZZ ) $=
    ( cz wcel clt wbr c1 caddc co wn wa cle zltp1le cr wb peano2z zre syl lenlt
    syl2an bitrd biimpd impancom con2d 3impia ) ACDZABEFZBAGHIZEFZBCDZJUFUGKUJU
    IUFUJUGUIJZUFUJKZUGUKULUGUHBLFZUKABMUFUHNDZBNDUMUKOUJUFUHCDUNAPUHQRBQUHBSTU
    AUBUCUDUE $.

  $( A larger number does not divide a smaller positive integer.  (Contributed
     by NM, 3-May-2005.) $)
  gtndiv $p |- ( ( A e. RR /\ B e. NN /\ B < A ) -> -. ( B / A ) e. ZZ ) $=
    ( cr wcel cn clt wbr w3a cc0 cdiv co c1 caddc cz wn nnre 3ad2ant2 wa mp3an1
    wb simp1 nngt0 adantl 0re lttr sylan ancoms mpand 3impia divgt0d simp3 cmul
    wi 1re ltdivmul2 mp3an2 syl12anc mulid2d breq2d 3ad2ant1 bitrd mpbird 0p1e1
    recn syl6breqr 0z btwnnz syl2anc ) ACDZBEDZBAFGZHZIBAJKZFGZVMILMKZFGZVMNDOZ
    VLBAVJVIBCDZVKBPZQZVIVJVKUAZVJVIIBFGZVKBUBZQVIVJVKIAFGZVIVJRWBVKWDVJWBVIWCU
    CVJVIWBVKRWDUMZVJVRVIWEVSICDVRVIWEUDIBAUESUFUGUHUIZUJVLVMLVOFVLVMLFGZVKVIVJ
    VKUKVLWGBLAULKZFGZVKVLVRVIWDWGWITZVTWAWFVRLCDVIWDRWJUNBLAUOUPUQVIVJWIVKTVKV
    IWHABFVIAAVDURUSUTVAVBVCVEINDVNVPVQVFIVMVGSVH $.

  $( One-half is not an integer.  (Contributed by NM, 31-Jul-2004.) $)
  halfnz $p |- -. ( 1 / 2 ) e. ZZ $=
    ( c2 cr wcel c1 clt wbr cdiv co cz wn 2re 1lt2 recnz mp2an ) ABCDAEFDAGHICJ
    KLAMN $.

  $( Three halves is not an integer.  (Contributed by AV, 2-Jun-2020.) $)
  3halfnz $p |- -. ( 3 / 2 ) e. ZZ $=
    ( c1 cz wcel c3 c2 cdiv co clt wbr caddc wn cmul cr wb 3re 2re mp3an breq2i
    c4 mpbir 1z 2cn mulid2i 2lt3 eqbrtri cc0 1re 2pos pm3.2i ltmuldiv mpbi 3lt4
    wa 2t2e4 1p1e2 ltdivmul bitri btwnnz ) ABCADEFGZHIZUSAAJGZHIZUSBCKUAAELGZDH
    IZUTVCEDHEUBUCUDUEAMCDMCZEMCZUFEHIZUMZVDUTNUGOVFVGPUHUIZADEUJQUKVBDEELGZHIZ
    VKDSHIULVJSDHUNRTVBUSEHIZVKVAEUSHUORVEVFVHVLVKNOPVIDEEUPQUQTAUSURQ $.

  ${
    $d w x y z A $.
    $( The supremum of a bounded-above set of integers is a member of the set.
       (Contributed by Paul Chapman, 21-Mar-2011.)  (Revised by Mario Carneiro,
       26-Jun-2015.) $)
    suprzcl $p |- ( ( A C_ ZZ /\ A =/= (/) /\ E. x e. RR A. y e. A y <_ x ) ->
                    sup ( A , RR , < ) e. A ) $=
      ( vz vw cz wss cv cle wbr wral cr clt c1 wcel wb syl wa adantr syl3anl1
      c0 wne wrex w3a csup cmin zssre sstr mpan2 suprcl syl3an1 ltm1d peano2rem
      suprlub mpdan mpbid caddc simpl1 sselda sseldi simprl sseldd zre peano2re
      co wceq suprub adantlr simprr ltsubaddd lelttrd zleltp1 syl2anc ralrimiva
      1red mpbird suprleub syldan adantrr letri3d mpbir2and eqeltrd rexlimddv )
      CFGZCUAUBZBHAHIJBCKALUCZUDZCLMUEZNUFVEZDHZMJZWHCODCWGWIWHMJZWKDCUCZWGWHWD
      CLGZWEWFWHLOZWDFLGWNUGCFLUHUIZABCUJZUKZULWDWNWEWFWLWMPZWPWNWEWFUDZWILOZWS
      WTWOXAWQWHUMQABDCWIUNUOUKUPWGWJCOZWKRZRZWHWJCXDWHWJVFWHWJIJZWJWHIJZXDXEEH
      ZWJIJZECKZXDXHECXDXGCOZRZXHXGWJNUQVEZMJZXKXGWHXLXKFLXGUGXDCFXGWDWEWFXCURZ
      USZUTXDWOXJWGWOXCWRSZSXDXLLOZXJXDWJLOZXQXDWJFOZXRXDCFWJXNWGXBWKVAZVBZWJVC
      QZWJVDQSWGXJXGWHIJZXCWDWNWEWFXJYCWPABCXGVGTVHXDWHXLMJZXJXDWKYDWGXBWKVIXDW
      HNWJXPXDVOYBVJUPSVKXKXGFOXSXHXMPXOXDXSXJYASXGWJVLVMVPVNWGXCXRXEXIPZYBWDWN
      WEWFXRYEWPABECWJVQTVRVPWGXBXFWKWDWNWEWFXBXFWPABCWJVGTVSXDWHWJXPYBVTWAXTWB
      WC $.
  $}

  ${
    $d x A $.
    $( Two ways to express " ` A ` is a prime number (or 1)."  See also
       ~ isprm .  (Contributed by NM, 4-May-2005.) $)
    prime $p |- ( A e. NN -> (
                 A. x e. NN ( ( A / x ) e. NN -> ( x = 1 \/ x = A ) ) <->
          A. x e. NN ( ( 1 < x /\ x <_ A /\ ( A / x ) e. NN ) -> x = A ) ) ) $=
      ( cn wcel cv cdiv co c1 wceq wo wi clt wbr cle w3a wa wb wn cr nnre sylan
      wne bi2.04 impexp imbi2i 3bitr4ri nngt1ne1 adantl anbi1d cz gtndiv 3expia
      neor nnz con2d lenlt syl2an sylibrd ancoms pm4.71rd anbi2d 3anass syl6bbr
      syl5 bitr3d imbi1d syl5bb ralbidva ) BCDZBAEZFGZCDZVJHIVJBIZJZKZHVJLMZVJB
      NMZVLOZVMKZACVOVJHUBZVLPZVMKZVIVJCDZPZVSVTVLVMKKVLVTVMKZKWBVOVTVLVMUCVTVL
      VMUDVNWEVLVMVJHUMUEUFWDWAVRVMWDVPVLPZWAVRWDVPVTVLWCVPVTQVIVJUGUHUIWDWFVPV
      QVLPZPVRWDVLWGVPWDVLVQVLVKUJDZWDVQVKUNWCVIWHVQKWCVIPZWHBVJLMZRZVQWIWJWHWC
      VJSDZVIWJWHRZKVJTZWLVIWJWMVJBUKULUAUOWCWLBSDVQWKQVIWNBTVJBUPUQURUSVDUTVAV
      PVQVLVBVCVEVFVGVH $.
  $}

  $( The square of a nonzero integer is a positive integer.  (Contributed by
     NM, 2-Aug-2004.) $)
  msqznn $p |- ( ( A e. ZZ /\ A =/= 0 ) -> ( A x. A ) e. NN ) $=
    ( cz wcel cc0 wne wa co clt wbr cn zmulcl anidms adantr cr zre msqgt0 sylan
    cmul elnnz sylanbrc ) ABCZADEZFAARGZBCZDUCHIZUCJCUAUDUBUAUDAAKLMUAANCUBUEAO
    APQUCST $.

  $( No even integer equals an odd integer (i.e. no integer can be both even
     and odd).  Exercise 10(a) of [Apostol] p. 28.  (Contributed by NM,
     31-Jul-2004.)  (Proof shortened by Mario Carneiro, 18-May-2014.) $)
  zneo $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
             ( 2 x. A ) =/= ( ( 2 x. B ) + 1 ) ) $=
    ( cz wcel wa c2 cmul co c1 caddc cdiv wne wceq cc 2cn zcn mulcl sylancr a1i
    cmin wn halfnz adantr adantl 1cnd subaddd subdid oveq1d zsubcl syl cc0 2ne0
    divcan3d eqtr3d eqeltrd oveq1 eleq1d syl5ibcom sylbird necon3bd mpi necomd
    ) ACDZBCDZEZFBGHZIJHZFAGHZVEIFKHZCDZUAVGVHLUBVEVJVGVHVEVGVHMVHVFTHZIMZVJVEV
    HVFIVEFNDZANDZVHNDOVCVNVDAPUCZFAQRVEVMBNDZVFNDOVDVPVCBPUDZFBQRVEUEUFVEVKFKH
    ZCDVLVJVEVRABTHZCVEFVSGHZFKHVRVSVEVTVKFKVEFABVMVEOSZVOVQUGUHVEVSFVEVSCDVSND
    ABUIZVSPUJWAFUKLVEULSUMUNWBUOVLVRVICVKIFKUPUQURUSUTVAVB $.

  ${
    $d j k N $.
    $( A positive integer is even or odd but not both.  (Contributed by NM,
       1-Jan-2006.)  (Proof shortened by Mario Carneiro, 18-May-2014.) $)
    nneo $p |- ( N e. NN ->
                ( ( N / 2 ) e. NN <-> -. ( ( N + 1 ) / 2 ) e. NN ) ) $=
      ( vj vk cn wcel c2 cdiv co c1 caddc cmul wceq cc nncn syl oveq1d wo oveq1
      eleq1d orbi12d wn peano2cn 2cn a1i cc0 wne 2ne0 divcan2d eqtr4d cz syl2an
      nnz zneo expcom necon2bd syl5com df-2 oveq1i 2div2e1 1nn eqeltri peano2nn
      cv eqtr3i orci add1p1 wa 2cnne0 divdir mp3an23 oveq2i syl6eq eqtrd orim2d
      syl5ibr orcom syl6ib nnind ord impbid ) ADEZAFGHZDEZAIJHZFGHZDEZUAZWAFWEK
      HZFWBKHZIJHZLWCWGWAWHWDWJWAWDFWAAMEWDMEANZAUBOFMEZWAUCUDZFUEUFZWAUGUDZUHW
      AWIAIJWAAFWKWMWOUHPUIWCWFWHWJWFWCWHWJUFZWFWEUJEWBUJEWPWCWEULWBULWEWBUMUKU
      NUOUPWAWFWCBVCZIJHZFGHZDEZWQFGHZDEZQIIJHZFGHZDEZIFGHZDEZQCVCZIJHZFGHZDEZX
      HFGHZDEZQZXIIJHZFGHZDEZXKQZWFWCQBCAWQILZWTXEXBXGXSWSXDDXSWRXCFGWQIIJRPSXS
      XAXFDWQIFGRSTWQXHLZWTXKXBXMXTWSXJDXTWRXIFGWQXHIJRPSXTXAXLDWQXHFGRSTWQXILZ
      WTXQXBXKYAWSXPDYAWRXOFGWQXIIJRPSYAXAXJDWQXIFGRSTWQALZWTWFXBWCYBWSWEDYBWRW
      DFGWQAIJRPSYBXAWBDWQAFGRSTXEXGXDIDFFGHZXDIFXCFGUQURUSVDUTVAVEXHDEZXNXKXQQ
      XRYDXMXQXKXMXQYDXLIJHZDEXLVBYDXPYEDYDXHMEZXPYELXHNYFXPXHFJHZFGHZYEYFXOYGF
      GXHVFPYFYHXLYCJHZYEYFWLWLWNVGYHYILUCVHXHFFVIVJYCIXLJUSVKVLVMOSVOVNXKXQVPV
      QVRVSVT $.

    nneoi.1 $e |- N e. NN $.
    $( A positive integer is even or odd but not both.  (Contributed by NM,
       20-Aug-2001.) $)
    nneoi $p |- ( ( N / 2 ) e. NN <-> -. ( ( N + 1 ) / 2 ) e. NN ) $=
      ( cn wcel c2 cdiv co c1 caddc wn wb nneo ax-mp ) ACDAEFGCDAHIGEFGCDJKBALM
      $.
  $}

  $( An integer is even or odd.  (Contributed by NM, 1-Jan-2006.) $)
  zeo $p |- ( N e. ZZ -> ( ( N / 2 ) e. ZZ \/ ( ( N + 1 ) / 2 ) e. ZZ ) ) $=
    ( cz wcel c2 cdiv co c1 caddc cc0 wceq cn cneg wn 2cn cc mp3an23 syl eleq1d
    cmin ax-1cn cr w3o wa wi elz oveq1 div0i 0z eqeltri syl6eqel pm2.24d adantl
    2ne0 nnz con3i nneo biimprd con1d syl56 recn divneg syl6bir halfcld negnegd
    nnnegz sylibd adantr con3d peano2zm negsubdi2i 2m1e1 eqtr2i subcli negcon2i
    wne mpbi oveq2i negcl addsubass negdi mpan2 3eqtr4a oveq1d 2cnne0 divsubdir
    peano2cn 2div2e1 eqcomi syl6reqr 3eqtr4d syl5ib syl6 peano2re recnd sylan9r
    znegcl syl5 syld 3jaodan sylbi orrd ) ABCZADEFZBCZAGHFZDEFZBCZXBAUACZAIJZAK
    CZALZKCZUBUCXDMZXGUDZAUEXHXIXNXJXLXIXNXHXIXDXGXIXCIDEFZBAIDEUFXOIBDNUMUGUHU
    IUJUKULXJXNXHXMXCKCZMXJXFKCZXGXPXDXCUNUOXJXQXPXJXPXQMAUPUQURXFUNUSULXHXLUCZ
    XMXKDEFZKCZMZXGXRXTXDXHXTXDUDXLXHXTXCLZLZBCZXDXHXTYBKCYDXHYBXSKXHAOCZYBXSJZ
    AUTZYEDOCZDIVOZYFNUMADVAPQRYBVEVBXHYCXCBXHXCXHAYGVCVDRVFVGVHXLYAXKGHFZDEFZK
    CZXHXGXLYLXTXLXTYLMXKUPUQURYLYKBCZXHXGYKUNXHYMXFLZLZBCZXGXHYMYNBCZYPYMYKGSF
    ZBCXHYQYKVIXHYRYNBXHYEYRYNJYGYEYJDSFZDEFZXELZDEFZYRYNYEYSUUADEYEXKGDSFZHFZX
    KGLZHFZYSUUAUUCUUEXKHGUUCLZJUUCUUEJUUGDGSFGGDTNVJVKVLGUUCTGDTNVMVNVPVQYEXKO
    CZYSUUDJZAVRZUUHGOCZYHUUITNXKGDVSPQYEUUKUUAUUFJTAGVTWAWBWCYEYTYKDDEFZSFZYRY
    EYJOCZYTUUMJZYEUUHUUNUUJXKWFQUUNYHYHYIUCUUONWDYJDDWEPQGUULYKSUULGWGWHVQWIYE
    XEOCZYNUUBJZAWFUUPYHYIUUQNUMXEDVAPQWJQRWKYNWPWLXHYOXFBXHXFXHXEXHXEAWMWNVCVD
    RVFWQWOWRWSWTXA $.

  $( An integer is even or odd but not both.  (Contributed by Mario Carneiro,
     12-Sep-2015.) $)
  zeo2 $p |- ( N e. ZZ ->
              ( ( N / 2 ) e. ZZ <-> -. ( ( N + 1 ) / 2 ) e. ZZ ) ) $=
    ( cz wcel c2 cdiv co c1 caddc wn cmul wceq cc zcn peano2cn syl 2cnd cc0 wne
    2ne0 divcan2d a1i oveq1d eqtr4d zneo expcom necon2bd syl5com zeo ord impbid
    con1d ) ABCZADEFZBCZAGHFZDEFZBCZIZULDUPJFZDUMJFZGHFZKUNURULUSUOVAULUODULALC
    UOLCAMZANOULPZDQRULSUAZTULUTAGHULADVBVCVDTUBUCUNUQUSVAUQUNUSVARUPUMUDUEUFUG
    ULUNUQULUNUQAUHUIUKUJ $.

  ${
    $d x A $.  $d x B $.
    $( Second Peano postulate for upper integers.  (Contributed by NM,
       3-Oct-2004.) $)
    peano2uz2 $p |- ( ( A e. ZZ /\ B e. { x e. ZZ | A <_ x } ) ->
                             ( B + 1 ) e. { x e. ZZ | A <_ x } ) $=
      ( cz wcel cle wbr wa c1 caddc co cv crab peano2z ad2antrl cr wi zre breq2
      elrab lep1 adantl peano2re ancli letr 3expb sylan2 mpan2d syl2an impr jca
      anbi2i 3imtr4i ) BDEZCDEZBCFGZHZHZCIJKZDEZBUSFGZHUNCBALZFGZADMZEZHUSVDEUR
      UTVAUOUTUNUPCNOUNUOUPVAUNBPEZCPEZUPVAQUOBRCRVFVGHUPCUSFGZVAVGVHVFCUAUBVGV
      FVGUSPEZHUPVHHVAQZVGVICUCUDVFVGVIVJBCUSUEUFUGUHUIUJUKVEUQUNVCUPACDVBCBFST
      ULVCVAAUSDVBUSBFSTUM $.
  $}

  ${
    $d k n x A $.  $d k n x N $.
    ${
      peano5uzi.1 $e |- N e. ZZ $.
      $( Peano's inductive postulate for upper integers.  (Contributed by NM,
         6-Jul-2005.)  (Revised by Mario Carneiro, 3-May-2014.) $)
      peano5uzi $p |- ( ( N e. A /\ A. x e. A ( x + 1 ) e. A ) ->
                    { k e. ZZ | N <_ k } C_ A ) $=
        ( vn wcel c1 caddc co wa cz cc wceq ax-1cn cn wi oveq1 eleq1d imbi2d cv
        wral cle wbr crab breq2 elrab cmin ad2antrl ax-mp subcli sylancl subsub
        zcn npcan mp3an23 syl cn0 wb znn0sub mpan biimpa adantl nn0p1nn eqeltrd
        simpl pncan3i syl5eqel rspccv ad2antll adantr add32 sylibd ex a2d nnind
        nncn sylc eqeltrrd syl5bi ssrdv ) DBGZAUAZHIJZBGZABUBZKZFDCUAZUCUDZCLUE
        ZBFUAZWJGWKLGZDWKUCUDZKZWGWKBGZWIWMCWKLWHWKDUCUFUGWGWNWOWGWNKZWKDHUHJZU
        HJZWQIJZWKBWPWKMGZWQMGZWSWKNWLWTWGWMWKUNUIZDHDLGZDMGZEDUNUJZOUKZWKWQUOU
        LWPWRPGWGWSBGZWPWRWKDUHJZHIJZPWPWTWRXINZXBWTXDHMGZXJXEOWKDHUMUPUQWPXHUR
        GZXIPGWNXLWGWLWMXLXCWLWMXLUSEDWKUTVAVBVCXHVDUQVEWGWNVFWGWHWQIJZBGZQWGHW
        QIJZBGZQWGWKWQIJZBGZQWGWKHIJZWQIJZBGZQWGXGQCFWRWHHNZXNXPWGYBXMXOBWHHWQI
        RSTWHWKNZXNXRWGYCXMXQBWHWKWQIRSTWHXSNZXNYAWGYDXMXTBWHXSWQIRSTWHWRNZXNXG
        WGYEXMWSBWHWRWQIRSTWGXODBHDOXEVGWBWFVFVHWKPGZWGXRYAYFWGXRYAQYFWGKZXRXQH
        IJZBGZYAWFXRYIQYFWBWEYIAXQBWCXQNWDYHBWCXQHIRSVIVJYGYHXTBYGWTYHXTNZYFWTW
        GWKVQVKWTXAXKYJXFOWKWQHVLUPUQSVMVNVOVPVRVSVNVTWA $.
    $}

    $( Peano's inductive postulate for upper integers.  (Contributed by NM,
       6-Jul-2005.)  (Revised by Mario Carneiro, 25-Jul-2013.) $)
    peano5uzti $p |- ( N e. ZZ -> ( ( N e. A /\ A. x e. A ( x + 1 ) e. A )
                          -> { k e. ZZ | N <_ k } C_ A ) ) $=
      ( cz wcel cv c1 caddc co wral wa cle wbr crab wss wi cif wceq eleq1 breq1
      anbi1d rabbidv sseq1d imbi12d 1z elimel peano5uzi dedth ) DEFZDBFZAGHIJBF
      ABKZLZDCGZMNZCEOZBPZQUJDHRZBFZULLZURUNMNZCEOZBPZQDHDURSZUMUTUQVCVDUKUSULD
      URBTUBVDUPVBBVDUOVACEDURUNMUAUCUDUEABCURDHEUFUGUHUI $.
  $}

  ${
    $d x y z N $.
    dfuzi.1 $e |- N e. ZZ $.
    $( An expression for the upper integers that start at ` N ` that is
       analogous to ~ dfnn2 for positive integers.  (Contributed by NM,
       6-Jul-2005.)  (Proof shortened by Mario Carneiro, 3-May-2014.) $)
    dfuzi $p |- { z e. ZZ | N <_ z } =
               |^| { x | ( N e. x /\ A. y e. x ( y + 1 ) e. x ) } $=
      ( cv cle wbr cz crab wcel c1 caddc co wral wa cab wss mpbir2an eleq2 cint
      ssintab peano5uzi mpgbir zrei leidi breq2 elrab peano2uz2 mpan rgen rabex
      wi zex wceq raleqbi1dv anbi12d elab intss1 ax-mp eqssi ) DCFZGHZCIJZDAFZK
      ZBFZLMNZVEKZBVEOZPZAQZUAZVDVMRVKVDVERUMAVKAVDUBBVECDEUCUDVDVLKZVMVDRVNDVD
      KZVHVDKZBVDOZVODIKZDDGHZEDDEUEUFVCVSCDIVBDDGUGUHSVPBVDVRVGVDKVPECDVGUIUJU
      KVKVOVQPAVDVCCIUNULVEVDUOVFVOVJVQVEVDDTVIVPBVEVDVEVDVHTUPUQURSVDVLUSUTVA
      $.
  $}

  ${
    $d j w N $.  $d j ps $.  $d j ch $.  $d j th $.  $d j ta $.  $d k w ph $.
    $d j k w M $.
    $( Substitutions. $)
    uzind.1 $e |- ( j = M -> ( ph <-> ps ) ) $.
    uzind.2 $e |- ( j = k -> ( ph <-> ch ) ) $.
    uzind.3 $e |- ( j = ( k + 1 ) -> ( ph <-> th ) ) $.
    uzind.4 $e |- ( j = N -> ( ph <-> ta ) ) $.
    $( Basis. $)
    uzind.5 $e |- ( M e. ZZ -> ps ) $.
    $( Induction step. $)
    uzind.6 $e |- ( ( M e. ZZ /\ k e. ZZ /\ M <_ k ) -> ( ch -> th ) ) $.
    $( Induction on the upper integers that start at ` M ` .  The first four
       hypotheses give us the substitution instances we need; the last two are
       the basis and the induction step.  (Contributed by NM, 5-Jul-2005.) $)
    uzind $p |- ( ( M e. ZZ /\ N e. ZZ /\ M <_ N ) -> ta ) $=
      ( cz wcel cle wbr wa vw w3a cv crab c1 caddc wral wss zre leidd jca ancli
      co wceq breq2 anbi12d elrab sylibr wi peano2z a1i adantrd clt ltp1 adantl
      cr peano2re lelttr 3expb sylan2 mpan2d ltle syld syl2an expimpd 3exp jcad
      imp4d 3imtr4g ralrimiv peano5uzti mp2and sseld 3imtr3g 3impib simprrd ) H
      PQZIPQZHIRSZUBWHWIEWGWHWIWHWIETZTZWGIHUAUCZRSZUAPUDZQIHFUCZRSZATZFPUDZQWH
      WITWKWGWNWRIWGHWRQZGUCZUEUFUMZWRQZGWRUGWNWRUHWGWGHHRSZBTZTWSWGXDWGXCBWGHH
      UIZUJNUKULWQXDFHPWOHUNWPXCABWOHHRUOJUPUQURWGXBGWRWGWTPQZHWTRSZCTZTZXAPQZH
      XARSZDTZTWTWRQXBWGXIXJXLWGXFXJXHXFXJUSWGWTUTVAVBWGXIXKDWGXFXHXKWGXFTXGXKC
      WGHVFQZWTVFQZXGXKUSXFXEWTUIXMXNTZXGHXAVCSZXKXOXGWTXAVCSZXPXNXQXMWTVDVEXNX
      MXNXAVFQZTXGXQTXPUSZXNXRWTVGZULXMXNXRXSHWTXAVHVIVJVKXNXMXRXPXKUSXTHXAVLVJ
      VMVNVBVOWGXFXGCDWGXFXGCDUSOVPVRVQVQWQXHFWTPWOWTUNWPXGACWOWTHRUOKUPUQWQXLF
      XAPWOXAUNWPXKADWOXAHRUOLUPUQVSVTGWRUAHWAWBWCWMWIUAIPWLIHRUOUQWQWJFIPWOIUN
      WPWIAEWOIHRUOMUPUQWDWEWF $.
  $}

  ${
    $d j N $.  $d j ps $.  $d j ch $.  $d j th $.  $d j ta $.  $d k ph $.
    $d j k M $.
    $( Substitutions. $)
    uzind2.1 $e |- ( j = ( M + 1 ) -> ( ph <-> ps ) ) $.
    uzind2.2 $e |- ( j = k -> ( ph <-> ch ) ) $.
    uzind2.3 $e |- ( j = ( k + 1 ) -> ( ph <-> th ) ) $.
    uzind2.4 $e |- ( j = N -> ( ph <-> ta ) ) $.
    $( Basis. $)
    uzind2.5 $e |- ( M e. ZZ -> ps ) $.
    $( Induction step. $)
    uzind2.6 $e |- ( ( M e. ZZ /\ k e. ZZ /\ M < k ) -> ( ch -> th ) ) $.
    $( Induction on the upper integers that start _after_ an integer ` M ` .
       The first four hypotheses give us the substitution instances we need;
       the last two are the basis and the induction step.  (Contributed by NM,
       25-Jul-2005.) $)
    uzind2 $p |- ( ( M e. ZZ /\ N e. ZZ /\ M < N ) -> ta ) $=
      ( cz wcel wbr wi wceq clt wa c1 caddc co zltp1le peano2z cv imbi2d 3expia
      cle a1i w3a sylbird ex com3l imp 3adant1 a2d uzind 3exp syl com34 pm2.43a
      sylbid 3impia ) HPQZIPQZHIUARZEVGVHUBVIHUCUDUEZIUKRZEHIUFVGVHVKESZVHVGVLV
      GVHVKVGEVGVJPQZVHVKVGESZSSHUGVMVHVKVNVGASVGBSZVGCSVGDSVNFGVJIFUHZVJTABVGJ
      UIVPGUHZTACVGKUIVPVQUCUDUETADVGLUIVPITAEVGMUIVOVMNULVMVQPQZVJVQUKRZUMVGCD
      VRVSVGCDSZSZVMVRVSWAVGVRVSVTVGVRVSVTSVGVRUBVSHVQUARZVTHVQUFVGVRWBVTOUJUNU
      OUPUQURUSUTVAVBVCVDUQVEVF $.
  $}

  ${
    $d j k N $.  $d j ps $.  $d j ch $.  $d j th $.  $d j ta $.  $d m ph $.
    $d j m k M $.
    $( Substitutions. $)
    uzind3.1 $e |- ( j = M -> ( ph <-> ps ) ) $.
    uzind3.2 $e |- ( j = m -> ( ph <-> ch ) ) $.
    uzind3.3 $e |- ( j = ( m + 1 ) -> ( ph <-> th ) ) $.
    uzind3.4 $e |- ( j = N -> ( ph <-> ta ) ) $.
    $( Basis. $)
    uzind3.5 $e |- ( M e. ZZ -> ps ) $.
    $( Induction step. $)
    uzind3.6 $e |- ( ( M e. ZZ /\ m e. { k e. ZZ | M <_ k } ) ->
                   ( ch -> th ) ) $.
    $( Induction on the upper integers that start at an integer ` M ` .  The
       first four hypotheses give us the substitution instances we need, and
       the last two are the basis and the induction step.  (Contributed by NM,
       26-Jul-2005.) $)
    uzind3 $p |- ( ( M e. ZZ /\ N e. { k e. ZZ | M <_ k } ) -> ta ) $=
      ( cle wbr cz wcel cv wa breq2 elrab wi sylan2br 3impb uzind 3expb sylan2b
      crab ) JIGUAZQRZGSUKZTISTZJSTZIJQRZUBEUMUQGJSULJIQUCUDUOUPUQEABCDEFHIJKLM
      NOUOHUAZSTZIURQRZCDUEZUSUTUBUOURUNTVAUMUTGURSULURIQUCUDPUFUGUHUIUJ $.
  $}

  ${
    $d x y $.  $d A x $.  $d ps x $.  $d ch x $.  $d th x $.  $d ta x $.
    $d ph y $.
    nn0ind.1 $e |- ( x = 0 -> ( ph <-> ps ) ) $.
    nn0ind.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    nn0ind.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    nn0ind.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    nn0ind.5 $e |- ps $.
    nn0ind.6 $e |- ( y e. NN0 -> ( ch -> th ) ) $.
    $( Principle of Mathematical Induction (inference schema) on nonnegative
       integers.  The first four hypotheses give us the substitution instances
       we need; the last two are the basis and the induction step.
       (Contributed by NM, 13-May-2004.) $)
    nn0ind $p |- ( A e. NN0 -> ta ) $=
      ( cn0 wcel cz cc0 cle wbr wa elnn0z 0z a1i cv sylbir 3adant1 uzind mp3an1
      wi sylbi ) HOPHQPZRHSTZUAEHUBRQPZULUMEUCABCDEFGRHIJKLBUNMUDGUEZQPZRUOSTZC
      DUJZUNUPUQUAUOOPURUOUBNUFUGUHUIUK $.
  $}

  ${
    $d x y $.  $d A x $.  $d ps x $.  $d ch x $.  $d th x $.  $d ta x $.
    $d ph y $.
    nn0indALT.6 $e |- ( y e. NN0 -> ( ch -> th ) ) $.
    nn0indALT.5 $e |- ps $.
    nn0indALT.1 $e |- ( x = 0 -> ( ph <-> ps ) ) $.
    nn0indALT.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    nn0indALT.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    nn0indALT.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Principle of Mathematical Induction (inference schema) on nonnegative
       integers.  The last four hypotheses give us the substitution instances
       we need; the first two are the basis and the induction step.  Either
       ~ nn0ind or ~ nn0indALT may be used; see comment for ~ nnind .
       (Contributed by NM, 28-Nov-2005.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    nn0indALT $p |- ( A e. NN0 -> ta ) $=
      ( nn0ind ) ABCDEFGHKLMNJIO $.
  $}

  ${
    $d x A $.  $d x y ph $.  $d y ps $.  $d x ch $.  $d x et $.  $d x th $.
    $d x ta $.
    nn0indd.1 $e |- ( x = 0 -> ( ps <-> ch ) ) $.
    nn0indd.2 $e |- ( x = y -> ( ps <-> th ) ) $.
    nn0indd.3 $e |- ( x = ( y + 1 ) -> ( ps <-> ta ) ) $.
    nn0indd.4 $e |- ( x = A -> ( ps <-> et ) ) $.
    nn0indd.5 $e |- ( ph -> ch ) $.
    nn0indd.6 $e |- ( ( ( ph /\ y e. NN0 ) /\ th ) -> ta ) $.
    $( Principle of Mathematical Induction (inference schema) on nonnegative
       integers, a deduction version.  (Contributed by Thierry Arnoux,
       23-Mar-2018.) $)
    nn0indd $p |- ( ( ph /\ A e. NN0 ) -> et ) $=
      ( cn0 wcel wi wceq imbi2d cv cc0 c1 caddc co wa expcom a2d nn0ind impcom
      ex ) IPQAFABRACRADRAERAFRGHIGUAZUBSBCAJTULHUAZSBDAKTULUMUCUDUESBEALTULISB
      FAMTNUMPQZADEAUNDERAUNUFDEOUKUGUHUIUJ $.
  $}

  ${
    $d K x $.  $d M x y $.  $d N x y $.  $d ch x $.  $d ph y $.  $d ps x $.
    $d ta x $.  $d th x $.
    fzind.1 $e |- ( x = M -> ( ph <-> ps ) ) $.
    fzind.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    fzind.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    fzind.4 $e |- ( x = K -> ( ph <-> ta ) ) $.
    fzind.5 $e |- ( ( M e. ZZ /\ N e. ZZ /\ M <_ N ) -> ps ) $.
    fzind.6 $e |- ( ( ( M e. ZZ /\ N e. ZZ ) /\
                      ( y e. ZZ /\ M <_ y /\ y < N ) ) -> ( ch -> th ) ) $.
    $( Induction on the integers from ` M ` to ` N ` inclusive .  The first
       four hypotheses give us the substitution instances we need; the last two
       are the basis and the induction step.  (Contributed by Paul Chapman,
       31-Mar-2011.) $)
    fzind $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\
                    ( K e. ZZ /\ M <_ K /\ K <_ N ) ) -> ta ) $=
      ( cle wbr wa wi cz wcel w3a cv c1 caddc co breq1 anbi2d imbi12d 3expib cr
      wceq zre p1le 3expia syl2an imdistanda imim1d 3ad2ant2 wb zltp1le adantlr
      clt expcom pm5.32d adantl 3expa com12 sylbird com23 expd 3impib impd syld
      ex a2d uzind expcomd 3expb 3impia impcom ) HUAUBZIHQRZHJQRZUCZIUAUBZJUAUB
      ZSZEWFWGWHEWCWDWEWGWHETZTWCWDSZWGWEWJWGWKWEWJTZWGWCWDWLWGWCWDUCWHWEEWHFUD
      ZJQRZSZATWHIJQRZSZBTWHGUDZJQRZSZCTZWHWRUEUFUGZJQRZSZDTZWHWESZETFGIHWMIUMZ
      WOWQABXGWNWPWHWMIJQUHUIKUJWMWRUMZWOWTACXHWNWSWHWMWRJQUHUILUJWMXBUMZWOXDAD
      XIWNXCWHWMXBJQUHUIMUJWMHUMZWOXFAEXJWNWEWHWMHJQUHUINUJWGWHWPBOUKWGWRUAUBZI
      WRQRZUCZXAXDCTZXEXKWGXAXNTXLXKXDWTCXKWHXCWSXKWRULUBZJULUBZXCWSTWHWRUNJUNX
      OXPXCWSWRJUOUPUQURUSUTXMXDCDXMWHXCCDTZXMXCWHXQWGXKXLXCWHXQTZTWGXKXLSZXCXR
      WGWHXSXCSZXQWGWHXTXQTWIXTXSWRJVDRZSZXQWHYBXTVAWGWHXSYAXCXSWHYAXCVAZXKWHYC
      XLWRJVBVCVEVFVGYBWIXQXKXLYAWIXQTWIXKXLYAUCXQPVEVHVIVJVPVKVLVMVKVNVQVOVRVS
      VTVEVKWAVNWB $.
  $}

  ${
    $d K x $.  $d N x y $.  $d ch x $.  $d ph y $.  $d ps x $.  $d ta x $.
    $d th x $.
    fnn0ind.1 $e |- ( x = 0 -> ( ph <-> ps ) ) $.
    fnn0ind.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    fnn0ind.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    fnn0ind.4 $e |- ( x = K -> ( ph <-> ta ) ) $.
    fnn0ind.5 $e |- ( N e. NN0 -> ps ) $.
    fnn0ind.6 $e |- ( ( N e. NN0 /\ y e. NN0 /\ y < N ) -> ( ch -> th ) ) $.
    $( Induction on the integers from ` 0 ` to ` N ` inclusive.  The first four
       hypotheses give us the substitution instances we need; the last two are
       the basis and the induction step.  (Contributed by Paul Chapman,
       31-Mar-2011.) $)
    fnn0ind $p |- ( ( N e. NN0 /\ K e. NN0 /\ K <_ N ) -> ta ) $=
      ( wcel wbr wa cc0 wi cn0 cle cz elnn0z w3a nn0z 0z sylbir 3adant1 clt zre
      cv cr 0re lelttr ltle 3adant2 mp3an1 syl2an ex com23 3impib impcom anbi1i
      syld 3expb syl2anbr expcom 3impa expd mpd adantll fzind mpanl1 syl5 3expa
      sylanb 3impb ) IUAPZHUAPZHIUBQZEVTWARVSEVTHUCPZSHUBQZRWAVSETZHUDWBWCWAWDV
      SIUCPZWBWCWAUEZEIUFWEWFESUCPZWEWFEUGABCDEFGHSIJKLMWESIUBQZBWGWEWHRZVSBIUD
      ZNUHUIWEGULZUCPZSWKUBQZWKIUJQZUEZCDTZWGWEWORWHWPWOWEWHWLWMWNWEWHTWLWEWMWN
      RZWHWLWEWQWHTZWLWKUMPZIUMPZWRWEWKUKIUKSUMPZWSWTWRUNXAWSWTUEWQSIUJQZWHSWKI
      UOXAWTXBWHTWSSIUPUQVEURUSUTVAVBVCWOWEWHWPTWOWEWHWPWLWMWNWIWPTWIWLWMRZWNRZ
      WPWIVSWKUAPZWNRWPXDWJXEXCWNWKUDVDVSXEWNWPOVFVGVHVIVJVCVKVLVMVNVHVOVPVQVCV
      R $.
  $}

  ${
    $d x y z $.  $d A x z $.  $d ps x z $.  $d ch x z $.  $d th x z $.
    $d ta x z $.  $d ph y z $.
    nn0ind-raph.1 $e |- ( x = 0 -> ( ph <-> ps ) ) $.
    nn0ind-raph.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    nn0ind-raph.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    nn0ind-raph.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    nn0ind-raph.5 $e |- ps $.
    nn0ind-raph.6 $e |- ( y e. NN0 -> ( ch -> th ) ) $.
    $( Principle of Mathematical Induction (inference schema) on nonnegative
       integers.  The first four hypotheses give us the substitution instances
       we need; the last two are the basis and the induction step.  Raph Levien
       remarks:  "This seems a bit painful.  I wonder if an explicit
       substitution version would be easier."  (Contributed by Raph Levien,
       10-Apr-2004.) $)
    nn0ind-raph $p |- ( A e. NN0 -> ta ) $=
      ( vz wcel cc0 wceq c1 wi cn0 cn wo elnn0 wsb wsbc dfsbcq2 cv sbhypf caddc
      nfv co nfsbc1v 1ex c0ex wa 0nn0 eleq1a ax-mp mpbiri eqeq2 syl6bir pm5.74d
      wb mpbii com12 vtocle sylc adantr oveq1 0p1e1 syl6eq eqeq2d imp mpbird ex
      sbceq1a mpbid vtoclef nnnn0 syl nnind bicomd sylan9bb sylbird eqcoms jaoi
      eqeq1 sylbi ) HUAPHUBPZHQRZUCEHUDWJEWKAFOUEAFSUFZCDEOGHAFOSUGACFOGUHZCFUK
      JUIADFOWMSUJULZDFUKKUIAEFOHEFUKLUIWLFSAFSUMUNFUHZSRZAWLWPATGQUOWMQRZWPAWQ
      WPUPADWQDWPWQWMUAPZCDQUAPWQWRTUQQUAWMURUSWQCTFQUOWQWOQRZCWQWSATWSCTWSABMI
      UTWQWSACWQWSWOWMRACVDWMQWOVAJVBVCVEVFVGNVHVIWQWPADVDZWQWPWOWNRWTWQWNSWOWQ
      WNQSUJULSWMQSUJVJVKVLVMKVBVNVOVPVGAFSVQVRVSWMUBPWRCDTWMVTNWAWBEQHQHRZETZF
      QXBFUKUOWSXAWOHRZEWOQHWHWSXCEWSXCUPBEMWSBAXCEWSABIWCLWDVEVPWEVSWFWGWI $.
  $}

  ${
    $d A x $.  $d ch x $.  $d et x $.  $d ph y $.  $d ps x $.  $d ta x $.
    $d th x $.  $d x y ze $.
    zindd.1 $e |- ( x = 0 -> ( ph <-> ps ) ) $.
    zindd.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    zindd.3 $e |- ( x = ( y + 1 ) -> ( ph <-> ta ) ) $.
    zindd.4 $e |- ( x = -u y -> ( ph <-> th ) ) $.
    zindd.5 $e |- ( x = A -> ( ph <-> et ) ) $.
    zindd.6 $e |- ( ze -> ps ) $.
    zindd.7 $e |- ( ze -> ( y e. NN0 -> ( ch -> ta ) ) ) $.
    zindd.8 $e |- ( ze -> ( y e. NN -> ( ch -> th ) ) ) $.
    $( Principle of Mathematical Induction on all integers, deduction version.
       The first five hypotheses give the substitutions; the last three are the
       basis, the induction, and the extension to negative numbers.
       (Contributed by Paul Chapman, 17-Apr-2009.)  (Proof shortened by Mario
       Carneiro, 4-Jan-2017.) $)
    zindd $p |- ( ze -> ( A e. ZZ -> et ) ) $=
      ( cz wcel wral wi cv cneg cn0 cn wo cr znegcl elznn0nn sylib simpr orim2i
      wa syl zcn negnegd eleq1d orbi2d mpbid cc0 wceq imbi2d c1 caddc com12 a2d
      co nn0ind nnnn0 syl11 mpdd jaod ralrimiv wb negeq sylan9eqr eqcomd bicomd
      syl5 rspcdv rspccv 3syl ) GDISUAZAHSUAJSTFUBGDISIUCZSTZWEUDZUETZWEUFTZUGZ
      GDWFWHWGUDZUFTZUGZWJWFWHWGUHTZWLUNZUGZWMWFWGSTWPWEUIWGUJUKWOWLWHWNWLULUMU
      OWFWLWIWHWFWKWEUFWFWEWEUPUQURUSUTGWHDWIWHGDGAUBZGBUBZGCUBZGEUBZGDUBHIWGHU
      CZVAVBABGKVCZXAWEVBACGLVCZXAWEVDVEVHVBAEGMVCZXAWGVBZADGNVCPWEUETZGCEGXFCE
      UBQVFVGZVIVFGWICDXFGCWIWQWRWSWTWSHIWEXBXCXDXCPXGVIWEVJVKRVLVMVTVNWDAHSXAS
      TZWDAXHDAIXAUDZSXAUIXHWEXIVBZUNZADXKXEADVOXKWGXAXJXHWGXIUDXAWEXIVPXHXAXAU
      PUQVQVRNUOVSWAVFVNAFHJSOWBWC $.
  $}

  ${
    $d x z A $.  $d y A $.
    $( Any real number can be sandwiched between two integers.  Exercise 2 of
       [Apostol] p. 28.  (Contributed by NM, 10-Nov-2004.) $)
    btwnz $p |- ( A e. RR -> ( E. x e. ZZ x < A /\ E. y e. ZZ A < y ) ) $=
      ( vz cr wcel cv clt wbr cz wrex cneg cn renegcl arch wa wb nnre ltnegcon1
      syl ex syl5 pm5.32d nnnegz breq1 rspcev sylan syl6bi expd rexlimdv anim1i
      mpd nnz reximi2 jca ) CEFZAGZCHIZAJKZCBGZHIZBJKZUPCLZDGZHIZDMKZUSUPVCEFVF
      CNVCDOTUPVEUSDMUPVDMFZVEUSUPVGVEPVGVDLZCHIZPUSUPVGVEVIVGVDEFZUPVEVIQZVDRU
      PVJVKCVDSUAUBUCVGVHJFVIUSVDUDURVIAVHJUQVHCHUEUFUGUHUIUJULUPVABMKVBCBOVAVA
      BMJUTMFUTJFVAUTUMUKUNTUO $.
  $}

  ${
    nn0zd.1 $e |- ( ph -> A e. NN0 ) $.
    $( A positive integer is an integer.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    nn0zd $p |- ( ph -> A e. ZZ ) $=
      ( cn0 cz nn0ssz sseldi ) ADEBFCG $.
  $}

  ${
    nnzd.1 $e |- ( ph -> A e. NN ) $.
    $( A nonnegative integer is an integer.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    nnzd $p |- ( ph -> A e. ZZ ) $=
      ( nnnn0d nn0zd ) ABABCDE $.
  $}

  ${
    zred.1 $e |- ( ph -> A e. ZZ ) $.
    $( An integer is a real number.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    zred $p |- ( ph -> A e. RR ) $=
      ( cz cr zssre sseldi ) ADEBFCG $.

    $( An integer is a complex number.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    zcnd $p |- ( ph -> A e. CC ) $=
      ( zred recnd ) ABABCDE $.

    $( Closure law for negative integers.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    znegcld $p |- ( ph -> -u A e. ZZ ) $=
      ( cz wcel cneg znegcl syl ) ABDEBFDECBGH $.

    $( Deduction from second Peano postulate generalized to integers.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    peano2zd $p |- ( ph -> ( A + 1 ) e. ZZ ) $=
      ( cz wcel c1 caddc co peano2z syl ) ABDEBFGHDECBIJ $.

    zaddcld.1 $e |- ( ph -> B e. ZZ ) $.
    $( Closure of addition of integers.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    zaddcld $p |- ( ph -> ( A + B ) e. ZZ ) $=
      ( cz wcel caddc co zaddcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure of subtraction of integers.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    zsubcld $p |- ( ph -> ( A - B ) e. ZZ ) $=
      ( cz wcel cmin co zsubcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure of multiplication of integers.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    zmulcld $p |- ( ph -> ( A x. B ) e. ZZ ) $=
      ( cz wcel cmul co zmulcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.
  $}

  $( The negative of a negative integer, is a natural number.  (Contributed by
     Glauco Siliprandi, 11-Dec-2019.) $)
  znnn0nn $p |- ( ( N e. ZZ /\ -. N e. NN0 ) -> -u N e. NN ) $=
    ( cz wcel cn0 wn wa cn wo cr simpl znegcld elznn sylib simprd cc zcn adantr
    cneg negnegd simpr eqneltrd wi ax-1 pm2.24 jaoi sylc ) ABCZADCEZFZARZGCZUJR
    ZDCZHZUMEZUKUIUJICZUNUIUJBCUPUNFUIAUGUHJKUJLMNUIULADUIAUGAOCUHAPQSUGUHTUAUK
    UOUKUBUMUKUOUCUMUKUDUEUF $.

  $( Increasing an integer by 2 results in an integer.  (Contributed by
     Alexander van der Vekens, 16-Sep-2018.) $)
  zadd2cl $p |- ( N e. ZZ -> ( N + 2 ) e. ZZ ) $=
    ( cz wcel c2 id 2z a1i zaddcld ) ABCZADIEDBCIFGH $.

  ${
    $d x y $.  $d y ph $.  $d x ps $.
    zriotaneg.1 $e |- ( x = -u y -> ( ph <-> ps ) ) $.
    $( The negative of the unique integer such that ` ph ` .  (Contributed by
       AV, 1-Dec-2018.) $)
    zriotaneg $p |- ( E! x e. ZZ ph ->
                ( iota_ x e. ZZ ph ) = -u ( iota_ y e. ZZ ps ) ) $=
      ( wtru cz wreu crio cneg wceq tru cv nfriota1 nfneg wcel znegcl adantl cc
      zcn wa simpr znegcld negeq wb negcon2 syl2an reuhyp riotaxfrd mpan ) FACG
      HACGIBDGIZJZKLFABCDGDMZJZULDUKBDGNOUMGPZUNGPFUMQRFUKGPZUAUKFUPUBUCEUMUKUD
      CMZGPZUQUNKZDGHFCDUNUQJZGUQQURUQSPUMSPUSUMUTKUEUOUQTUMTUQUMUFUGUHRUIUJ $.
  $}

  ${
    $d A a b r $.
    $( The supremum of a nonempty finite set of integers is a member of the
       set.  (Contributed by AV, 1-Oct-2019.) $)
    suprfinzcl $p |- ( ( A C_ ZZ /\ A =/= (/) /\ A e. Fin )
                       -> sup ( A , RR , < ) e. A ) $=
      ( va vr vb cz wss c0 wne wcel cv wbr wral cr clt wi wa wor zssre 3ad2ant1
      wrex cfn cle csup w3a wn ltso soss mp2 simp3 simp2 simp1 fisup2g syl13anc
      a1i syl6ss ssrexv syl ssel2 zred adantr imp simplr lenltd bicomd ralbidva
      id ex biimpd adantrd reximdva syld mpd suprzcl syld3an3 ) AEFZAGHZAUAIZBJ
      ZCJZUBKZBALZCMTZAMNUCAIVOVPVQUDZVSVRNKUEZBALZVRVSNKVRDJNKDATOBELZPZCATZWB
      WCENQZVQVPVOWHWIWCEMFMNQWIRUFEMNUGUHUNVOVPVQUIVOVPVQUJVOVPVQUKCBDEANULUMW
      CWHWGCMTZWBWCAMFZWHWJOVOVPWKVQVOAEMVOVFRUOSWGCAMUPUQWCWGWACMWCVSMIZPZWEWA
      WFWMWEWAWMWDVTBAWMVRAIZPZVTWDWOVRVSWMWNVRMIZWCWNWPOZWLVOVPWQVQVOWNWPVOWNP
      VRAEVRURUSVGSUTVAWCWLWNVBVCVDVEVHVIVJVKVLCBAVMVN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Decimal arithmetic
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ; $.
  $( Constant used for decimal constructor. $)
  cdc $a class ; A B $.

  $( Define the "decimal constructor", which is used to build up "decimal
     integers" or "numeric terms" in base ` 1 0 ` .  For example,
     ` ( ; ; ; 1 0 0 0 + ; ; ; 2 0 0 0 ) = ; ; ; 3 0 0 0 ` ~ 1kp2ke3k .
     (Contributed by Mario Carneiro, 17-Apr-2015.)  (Revised by AV,
     1-Aug-2021.) $)
  df-dec $a |- ; A B = ( ( ( 9 + 1 ) x. A ) + B ) $.

  $( Define the "decimal constructor", which is used to build up "decimal
     integers" or "numeric terms" in base ` 10 ` .  Obsolete version of
     ~ df-dec as of 1-Aug-2021.  (Contributed by Mario Carneiro, 17-Apr-2015.)
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  dfdecOLD $p |- ; A B = ( ( 10 x. A ) + B ) $=
    ( cdc c9 c1 caddc co cmul c10 df-dec 9p1e10OLD oveq1i eqtri ) ABCDEFGZAHGZB
    FGIAHGZBFGABJOPBFNIAHKLLM $.

  $( 9 + 1 = 10.  (Contributed by Mario Carneiro, 18-Apr-2015.)  (Revised by
     Stanislas Polu, 7-Apr-2020.)  (Revised by AV, 1-Aug-2021.) $)
  9p1e10 $p |- ( 9 + 1 ) = ; 1 0 $=
    ( c1 cc0 cdc c9 caddc co cmul df-dec cn 9nn 1nn nnaddcl mp2an nncni mulid1i
    wcel oveq1i addid1i 3eqtrri ) ABCDAEFZAGFZBEFTBEFTABHUATBETTDIPAIPTIPJKDALM
    NZOQTUBRS $.

  $( Version of the definition of the "decimal constructor" using ` ; 1 0 `
     instead of the symbol 10.  Of course, this statement cannot be used as
     definition, because it uses the "decimal constructor".  (Contributed by
     AV, 1-Aug-2021.) $)
  dfdec10 $p |- ; A B = ( ( ; 1 0 x. A ) + B ) $=
    ( cdc c9 c1 caddc co cmul cc0 df-dec 9p1e10 oveq1i eqtri ) ABCDEFGZAHGZBFGE
    ICZAHGZBFGABJOQBFNPAHKLLM $.

  $( A decimal number is a set.  (Contributed by Mario Carneiro, 17-Apr-2015.)
     (Revised by AV, 6-Sep-2021.) $)
  decex $p |- ; A B e. _V $=
    ( cdc c9 c1 caddc co cmul df-dec ovexi ) ABCDEFGAHGBFABIJ $.

  $( Obsolete proof of ~ decex as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 17-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  decexOLD $p |- ; A B e. _V $=
    ( cdc c10 cmul co caddc cvv dfdecOLD ovex eqeltri ) ABCDAEFZBGFHABILBGJK $.

  $( Equality theorem for the decimal constructor.  (Contributed by Mario
     Carneiro, 17-Apr-2015.)  (Revised by AV, 6-Sep-2021.) $)
  deceq1 $p |- ( A = B -> ; A C = ; B C ) $=
    ( wceq c9 c1 caddc co cmul cdc oveq2 oveq1d df-dec 3eqtr4g ) ABDZEFGHZAIHZC
    GHPBIHZCGHACJBCJOQRCGABPIKLACMBCMN $.

  $( Obsolete proof of ~ deceq1 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 17-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  deceq1OLD $p |- ( A = B -> ; A C = ; B C ) $=
    ( wceq c10 cmul co caddc cdc oveq2 oveq1d dfdecOLD 3eqtr4g ) ABDZEAFGZCHGEB
    FGZCHGACIBCINOPCHABEFJKACLBCLM $.

  $( Equality theorem for the decimal constructor.  (Contributed by Mario
     Carneiro, 17-Apr-2015.)  (Revised by AV, 6-Sep-2021.) $)
  deceq2 $p |- ( A = B -> ; C A = ; C B ) $=
    ( wceq c9 c1 caddc co cmul cdc oveq2 df-dec 3eqtr4g ) ABDEFGHCIHZAGHNBGHCAJ
    CBJABNGKCALCBLM $.

  $( Obsolete proof of ~ deceq1 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 17-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  deceq2OLD $p |- ( A = B -> ; C A = ; C B ) $=
    ( wceq c10 cmul co caddc cdc oveq2 dfdecOLD 3eqtr4g ) ABDECFGZAHGMBHGCAICBI
    ABMHJCAKCBKL $.

  ${
    deceq1i.1 $e |- A = B $.
    $( Equality theorem for the decimal constructor.  (Contributed by Mario
       Carneiro, 17-Apr-2015.) $)
    deceq1i $p |- ; A C = ; B C $=
      ( wceq cdc deceq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality theorem for the decimal constructor.  (Contributed by Mario
       Carneiro, 17-Apr-2015.) $)
    deceq2i $p |- ; C A = ; C B $=
      ( wceq cdc deceq2 ax-mp ) ABECAFCBFEDABCGH $.

    deceq12i.2 $e |- C = D $.
    $( Equality theorem for the decimal constructor.  (Contributed by Mario
       Carneiro, 17-Apr-2015.) $)
    deceq12i $p |- ; A C = ; B D $=
      ( cdc deceq1i deceq2i eqtri ) ACGBCGBDGABCEHCDBFIJ $.
  $}

  ${
    numnncl.1 $e |- T e. NN0 $.
    numnncl.2 $e |- A e. NN0 $.
    ${
      numnncl.3 $e |- B e. NN $.
      $( Closure for a numeral (with units place).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      numnncl $p |- ( ( T x. A ) + B ) e. NN $=
        ( cmul co cn0 wcel cn caddc nn0mulcli nn0nnaddcl mp2an ) CAGHZIJBKJPBLH
        KJCADEMFPBNO $.
    $}

    $( Add a zero in the units place.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    num0u $p |- ( T x. A ) = ( ( T x. A ) + 0 ) $=
      ( cmul co cc0 caddc nn0mulcli nn0cni addid1i eqcomi ) BAEFZGHFMMMBACDIJKL
      $.

    $( Add a zero in the higher places.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    num0h $p |- A = ( ( T x. 0 ) + A ) $=
      ( cc0 cmul co caddc nn0cni mul01i oveq1i addid2i eqtr2i ) BEFGZAHGEAHGANE
      AHBBCIJKAADILM $.

    numcl.2 $e |- B e. NN0 $.
    $( Closure for a decimal integer (with units place).  (Contributed by Mario
       Carneiro, 18-Feb-2014.) $)
    numcl $p |- ( ( T x. A ) + B ) e. NN0 $=
      ( cmul co nn0mulcli nn0addcli ) CAGHBCADEIFJ $.

    numsuc.4 $e |- ( B + 1 ) = C $.
    numsuc.5 $e |- N = ( ( T x. A ) + B ) $.
    $( The successor of a decimal integer (no carry).  (Contributed by Mario
       Carneiro, 18-Feb-2014.) $)
    numsuc $p |- ( N + 1 ) = ( ( T x. A ) + C ) $=
      ( c1 caddc co cmul oveq1i nn0mulcli nn0cni ax-1cn addassi oveq2i 3eqtri )
      EKLMDANMZBLMZKLMUBBKLMZLMUBCLMEUCKLJOUBBKUBDAFGPQBHQRSUDCUBLITUA $.
  $}

  ${
    deccl.1 $e |- A e. NN0 $.
    deccl.2 $e |- B e. NN0 $.
    $( Closure for a numeral.  (Contributed by Mario Carneiro, 17-Apr-2015.)
       (Revised by AV, 6-Sep-2021.) $)
    deccl $p |- ; A B e. NN0 $=
      ( cdc c9 c1 caddc co cmul cn0 df-dec 9nn0 1nn0 nn0addcli numcl eqeltri )
      ABEFGHIZAJIBHIKABLABRFGMNOCDPQ $.

    $( Obsolete proof of ~ deccl as of 6-Sep-2021.  (Contributed by Mario
       Carneiro, 17-Apr-2015.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    decclOLD $p |- ; A B e. NN0 $=
      ( cdc c10 cmul co caddc cn0 dfdecOLD 10nn0OLD numcl eqeltri ) ABEFAGHBIHJ
      ABKABFLCDMN $.
  $}

  $( 10 is a positive integer.  (Contributed by NM, 8-Nov-2012.)  (Revised by
     AV, 6-Sep-2021.) $)
  10nn $p |- ; 1 0 e. NN $=
    ( c9 c1 caddc co cc0 cdc cn 9p1e10 wcel 9nn peano2nn ax-mp eqeltrri ) ABCDZ
    BEFGHAGINGIJAKLM $.

  $( The number 10 is positive.  (Contributed by NM, 5-Feb-2007.)  (Revised by
     AV, 8-Sep-2021.) $)
  10pos $p |- 0 < ; 1 0 $=
    ( c1 cc0 cdc 10nn nngt0i ) ABCDE $.

  $( 10 is a nonnegative integer.  (Contributed by Mario Carneiro,
     19-Apr-2015.)  (Revised by AV, 6-Sep-2021.) $)
  10nn0 $p |- ; 1 0 e. NN0 $=
    ( c1 cc0 1nn0 0nn0 deccl ) ABCDE $.

  $( The number 10 is real.  (Contributed by NM, 5-Feb-2007.)  (Revised by AV,
     8-Sep-2021.) $)
  10re $p |- ; 1 0 e. RR $=
    ( c1 cc0 cdc 10nn nnrei ) ABCDE $.

  ${
    decnncl.1 $e |- A e. NN0 $.
    decnncl.2 $e |- B e. NN $.
    $( Closure for a numeral.  (Contributed by Mario Carneiro, 17-Apr-2015.)
       (Revised by AV, 6-Sep-2021.) $)
    decnncl $p |- ; A B e. NN $=
      ( cdc c1 cc0 cmul co caddc cn dfdec10 10nn0 numnncl eqeltri ) ABEFGEZAHIB
      JIKABLABPMCDNO $.

    $( Obsolete proof of ~ decnncl as of 6-Sep-2021.  (Contributed by Mario
       Carneiro, 17-Apr-2015.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    decnnclOLD $p |- ; A B e. NN $=
      ( cdc c10 cmul co caddc cn dfdecOLD 10nn0OLD numnncl eqeltri ) ABEFAGHBIH
      JABKABFLCDMN $.
  $}

  ${
    dec0u.1 $e |- A e. NN0 $.
    $( Add a zero in the units place.  (Contributed by Mario Carneiro,
       17-Apr-2015.)  (Revised by AV, 6-Sep-2021.) $)
    dec0u $p |- ( ; 1 0 x. A ) = ; A 0 $=
      ( c1 cc0 cdc cmul co caddc 10nn0 num0u dfdec10 eqtr4i ) CDEZAFGZNDHGADEAM
      IBJADKL $.

    $( Obsolete version of ~ dec0u as of 6-Sep-2021.  (Contributed by Mario
       Carneiro, 17-Apr-2015.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    dec0uOLD $p |- ( 10 x. A ) = ; A 0 $=
      ( c10 cmul co cc0 caddc cdc 10nn0OLD num0u dfdecOLD eqtr4i ) CADEZMFGEAFH
      ACIBJAFKL $.

    $( Add a zero in the higher places.  (Contributed by Mario Carneiro,
       17-Apr-2015.)  (Revised by AV, 6-Sep-2021.) $)
    dec0h $p |- A = ; 0 A $=
      ( c1 cc0 cdc cmul co caddc 10nn0 num0h dfdec10 eqtr4i ) ACDEZDFGAHGDAEAMI
      BJDAKL $.

    $( Obsolete proof of ~ dec0h as of 6-Sep-2021.  (Contributed by Mario
       Carneiro, 17-Apr-2015.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    dec0hOLD $p |- A = ; 0 A $=
      ( c10 cc0 cmul co caddc cdc 10nn0OLD num0h dfdecOLD eqtr4i ) ACDEFAGFDAHA
      CIBJDAKL $.
  $}

  ${
    numnncl2.1 $e |- T e. NN $.
    numnncl2.2 $e |- A e. NN $.
    $( Closure for a decimal integer (zero units place).  (Contributed by Mario
       Carneiro, 9-Mar-2015.) $)
    numnncl2 $p |- ( ( T x. A ) + 0 ) e. NN $=
      ( cmul co cc0 caddc cn nnmulcli nncni addid1i eqeltri ) BAEFZGHFNINNBACDJ
      ZKLOM $.
  $}

  ${
    decnncl2.1 $e |- A e. NN $.
    $( Closure for a decimal integer (zero units place).  (Contributed by Mario
       Carneiro, 17-Apr-2015.)  (Revised by AV, 6-Sep-2021.) $)
    decnncl2 $p |- ; A 0 e. NN $=
      ( cc0 cdc c1 cmul co caddc cn dfdec10 10nn numnncl2 eqeltri ) ACDECDZAFGC
      HGIACJANKBLM $.

    $( Obsolete proof of ~ decnncl2 as of 6-Sep-2021.  (Contributed by Mario
       Carneiro, 17-Apr-2015.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    decnncl2OLD $p |- ; A 0 e. NN $=
      ( cc0 cdc c10 cmul co caddc cn dfdecOLD 10nnOLD numnncl2 eqeltri ) ACDEAF
      GCHGIACJAEKBLM $.
  $}

  ${
    numlt.1 $e |- T e. NN $.
    numlt.2 $e |- A e. NN0 $.
    numlt.3 $e |- B e. NN0 $.
    ${
      numlt.4 $e |- C e. NN $.
      numlt.5 $e |- B < C $.
      $( Comparing two decimal integers (equal higher places).  (Contributed by
         Mario Carneiro, 18-Feb-2014.) $)
      numlt $p |- ( ( T x. A ) + B ) < ( ( T x. A ) + C ) $=
        ( clt wbr cmul co caddc nn0rei nnrei nnnn0i nn0mulcli ltadd2i mpbi ) BC
        JKDALMZBNMUACNMJKIBCUABGOCHPUADADEQFROST $.
    $}

    numltc.3 $e |- C e. NN0 $.
    numltc.4 $e |- D e. NN0 $.
    numltc.5 $e |- C < T $.
    numltc.6 $e |- A < B $.
    $( Comparing two decimal integers (unequal higher places).  (Contributed by
       Mario Carneiro, 18-Feb-2014.) $)
    numltc $p |- ( ( T x. A ) + C ) < ( ( T x. B ) + D ) $=
      ( cmul co caddc clt wbr cle nn0rei wcel numlt nnrei ax-1cn adddii mulid1i
      c1 recni oveq2i eqtri breqtrri cn0 wb nn0ltp1le mp2an cc0 nngt0i peano2re
      mpbi cr ax-mp lemul2i remulcli readdcli ltletri nn0addge1i ) EAMNZCONZEBM
      NZPQZVHVHDONZRQVGVJPQVGEAUFONZMNZPQVLVHRQZVIVGVFEONZVLPACEEFGIFKUAVLVFEUF
      MNZONVNEAUFEEFUBZUGZAAGSZUGUCUDVOEVFOEVQUEUHUIUJVKBRQZVMABPQZVSLAUKTBUKTV
      TVSULGHABUMUNURUOEPQVSVMULEFUPVKBEAUSTVKUSTVRAUQUTZBHSZVPVAUTURVGVLVHVFCE
      AVPVRVBCISVCZEVKVPWAVBEBVPWBVBZVDUNVHDWDJVEVGVHVJWCWDVHDWDDJSVCVDUN $.
  $}

  ${
    le9lt10.c $e |- A e. NN0 $.
    le9lt10.e $e |- A <_ 9 $.
    $( A "decimal digit" (i.e. a nonnegative integer less than or equal to 9)
       is less then 10.  (Contributed by AV, 8-Sep-2021.) $)
    le9lt10 $p |- A < ; 1 0 $=
      ( c9 c1 caddc co cc0 cdc clt cle cz wcel wb nn0zi 9nn0 zleltp1 mp2an mpbi
      wbr 9p1e10 breqtri ) ADEFGZEHIJADKTZAUCJTZCALMDLMUDUENABODPOADQRSUAUB $.
  $}

  ${
    declt.a $e |- A e. NN0 $.
    declt.b $e |- B e. NN0 $.
    ${
      declt.c $e |- C e. NN $.
      declt.l $e |- B < C $.
      $( Comparing two decimal integers (equal higher places).  (Contributed by
         Mario Carneiro, 17-Apr-2015.)  (Revised by AV, 6-Sep-2021.) $)
      declt $p |- ; A B < ; A C $=
        ( c1 cc0 cdc cmul co caddc clt 10nn numlt dfdec10 3brtr4i ) HIJZAKLZBML
        TCMLABJACJNABCSODEFGPABQACQR $.

      $( Obsolete proof of ~ declt as of 6-Sep-2021.  (Contributed by Mario
         Carneiro, 17-Apr-2015.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      decltOLD $p |- ; A B < ; A C $=
        ( c10 cmul co caddc cdc clt 10nnOLD numlt dfdecOLD 3brtr4i ) HAIJZBKJRC
        KJABLACLMABCHNDEFGOABPACPQ $.
    $}

    ${
      decltc.c $e |- C e. NN0 $.
      decltc.d $e |- D e. NN0 $.
      decltc.s $e |- C < ; 1 0 $.
      decltc.l $e |- A < B $.
      $( Comparing two decimal integers (unequal higher places).  (Contributed
         by Mario Carneiro, 18-Feb-2014.)  (Revised by AV, 6-Sep-2021.) $)
      decltc $p |- ; A C < ; B D $=
        ( c1 cc0 cdc cmul co caddc clt 10nn numltc dfdec10 3brtr4i ) KLMZANOCPO
        UBBNODPOACMBDMQABCDUBREFGHIJSACTBDTUA $.
    $}

    ${
      decltcOLD.3 $e |- C e. NN0 $.
      decltcOLD.4 $e |- D e. NN0 $.
      decltcOLD.5 $e |- C < 10 $.
      decltcOLD.6 $e |- A < B $.
      $( Obsolete version of ~ decltc as of 6-Sep-2021.  (Contributed by Mario
         Carneiro, 17-Apr-2015.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      decltcOLD $p |- ; A C < ; B D $=
        ( c10 cmul co caddc cdc clt 10nnOLD numltc dfdecOLD 3brtr4i ) KALMCNMKB
        LMDNMACOBDOPABCDKQEFGHIJRACSBDST $.
    $}

    ${
      declth.c $e |- C e. NN0 $.
      declth.d $e |- D e. NN0 $.
      declth.e $e |- C <_ 9 $.
      declth.l $e |- A < B $.
      $( Comparing two decimal integers (unequal higher places).  (Contributed
         by AV, 8-Sep-2021.) $)
      declth $p |- ; A C < ; B D $=
        ( le9lt10 decltc ) ABCDEFGHCGIKJL $.
    $}

    decsuc.c $e |- ( B + 1 ) = C $.
    decsuc.n $e |- N = ; A B $.
    $( The successor of a decimal integer (no carry).  (Contributed by Mario
       Carneiro, 17-Apr-2015.)  (Revised by AV, 6-Sep-2021.) $)
    decsuc $p |- ( N + 1 ) = ; A C $=
      ( c1 caddc co cc0 cdc cmul 10nn0 dfdec10 eqtri numsuc eqtr4i ) DIJKILMZAN
      KZCJKACMABCTDOEFGDABMUABJKHABPQRACPS $.

    $( Obsolete proof of ~ decsuc as of 6-Sep-2021.  (Contributed by Mario
       Carneiro, 17-Apr-2015.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    decsucOLD $p |- ( N + 1 ) = ; A C $=
      ( c1 caddc co c10 cmul cdc 10nn0OLD dfdecOLD eqtri numsuc eqtr4i ) DIJKLA
      MKZCJKACNABCLDOEFGDABNTBJKHABPQRACPS $.
  $}

  ${
    3decltc.a $e |- A e. NN0 $.
    3decltc.b $e |- B e. NN0 $.
    3decltc.c $e |- C e. NN0 $.
    3decltc.d $e |- D e. NN0 $.
    3decltc.e $e |- E e. NN0 $.
    3decltc.f $e |- F e. NN0 $.
    3decltc.3 $e |- A < B $.
    ${
      3declth.1 $e |- C <_ 9 $.
      3declth.2 $e |- E <_ 9 $.
      $( Comparing two decimal integers with three "digits" (unequal higher
         places).  (Contributed by AV, 8-Sep-2021.) $)
      3declth $p |- ; ; A C E < ; ; B D F $=
        ( cdc deccl declth ) ACPBDPEFACGIQBDHJQKLOABCDGHIJNMRR $.
    $}

    3decltc.1 $e |- C < ; 1 0 $.
    3decltc.2 $e |- E < ; 1 0 $.
    $( Comparing two decimal integers with three "digits" (unequal higher
       places).  (Contributed by AV, 15-Jun-2021.)  (Revised by AV,
       6-Sep-2021.) $)
    3decltc $p |- ; ; A C E < ; ; B D F $=
      ( cdc deccl decltc ) ACPBDPEFACGIQBDHJQKLOABCDGHIJNMRR $.
  $}

  ${
    3decltcOLD.a $e |- A e. NN0 $.
    3decltcOLD.b $e |- B e. NN0 $.
    3decltcOLD.c $e |- C e. NN0 $.
    3decltcOLD.d $e |- D e. NN0 $.
    3decltcOLD.e $e |- E e. NN0 $.
    3decltcOLD.f $e |- F e. NN0 $.
    3decltcOLD.1 $e |- C < 10 $.
    3decltcOLD.2 $e |- E < 10 $.
    3decltcOLD.3 $e |- A < B $.
    $( Obsolete version of ~ 3decltc as of 6-Sep-2021.  (Contributed by AV,
       15-Jun-2021.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    3decltcOLD $p |- ; ; A C E < ; ; B D F $=
      ( cdc deccl decltcOLD ) ACPBDPEFACGIQBDHJQKLNABCDGHIJMORR $.
  $}

  ${
    decle.1 $e |- A e. NN0 $.
    decle.2 $e |- B e. NN0 $.
    decle.3 $e |- C e. NN0 $.
    ${
      decle.4 $e |- B <_ C $.
      $( Comparing two decimal integers (equal higher places).  (Contributed by
         AV, 17-Aug-2021.)  (Revised by AV, 8-Sep-2021.) $)
      decle $p |- ; A B <_ ; A C $=
        ( c1 cc0 cdc cmul caddc cle wbr nn0rei 10nn0 nn0mulcli leadd2i dfdec10
        co mpbi 3brtr4i ) HIJZAKTZBLTZUDCLTZABJACJMBCMNUEUFMNGBCUDBEOCFOUDUCAPD
        QORUAABSACSUB $.
    $}

    decleh.4 $e |- D e. NN0 $.
    decleh.5 $e |- C <_ 9 $.
    decleh.6 $e |- A < B $.
    $( Comparing two decimal integers (unequal higher places).  (Contributed by
       AV, 17-Aug-2021.)  (Revised by AV, 8-Sep-2021.) $)
    decleh $p |- ; A C <_ ; B D $=
      ( cdc deccl nn0rei declth ltleii ) ACKZBDKZPACEGLMQBDFHLMABCDEFGHIJNO $.
  $}

  ${
    declei.1 $e |- A e. NN $.
    declei.2 $e |- B e. NN0 $.
    declei.3 $e |- C e. NN0 $.
    declei.4 $e |- C <_ 9 $.
    $( Comparing a digit to a decimal integer.  (Contributed by AV,
       17-Aug-2021.) $)
    declei $p |- C <_ ; A B $=
      ( cc0 cdc cle dec0h 0nn0 nnnn0i nngt0i decleh eqbrtri ) CHCIABIJCFKHACBLA
      DMFEGADNOP $.
  $}

  ${
    decleOLD.1 $e |- A e. NN0 $.
    decleOLD.2 $e |- B e. NN0 $.
    decleOLD.3 $e |- C e. NN0 $.
    ${
      decleOLD.4 $e |- B <_ C $.
      $( Obsolete version of ~ decle as of 8-Sep-2021.  (Contributed by AV,
         17-Aug-2021.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      decleOLD $p |- ; A B <_ ; A C $=
        ( c10 cmul co cdc cle wbr nn0rei 10reOLD remulcli leadd2i mpbi dfdecOLD
        caddc 3brtr4i ) HAIJZBTJZUBCTJZABKACKLBCLMUCUDLMGBCUBBENCFNHAOADNPQRABS
        ACSUA $.
    $}

    declecOLD.4 $e |- D e. NN0 $.
    declecOLD.5 $e |- C <_ 9 $.
    declecOLD.6 $e |- A < B $.
    $( Obsolete version of ~ decleh as of 8-Sep-2021.  (Contributed by AV,
       17-Aug-2021.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    declecOLD $p |- ; A C <_ ; B D $=
      ( cdc deccl nn0rei c9 wbr c10 clt cz wcel nn0zi cle c1 caddc 9nn0 zleltp1
      co wb mp2an 9p1e10OLD breq2i bitri mpbi decltcOLD ltleii ) ACKZBDKZUOACEG
      LMUPBDFHLMABCDEFGHCNUAOZCPQOZIUQCNUBUCUFZQOZURCRSNRSUQUTUGCGTNUDTCNUEUHUS
      PCQUIUJUKULJUMUN $.
  $}

  ${
    numlti.1 $e |- T e. NN $.
    numlti.2 $e |- A e. NN $.
    numlti.3 $e |- B e. NN0 $.
    numlti.4 $e |- C e. NN0 $.
    numlti.5 $e |- C < T $.
    $( Comparing a digit to a decimal integer.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    numlti $p |- C < ( ( T x. A ) + B ) $=
      ( cc0 cmul co caddc clt nnnn0i num0h 0nn0 nngt0i numltc eqbrtri ) CDJKLCM
      LDAKLBMLNCDDEOHPJACBDEQAFOHGIAFRST $.
  $}

  ${
    declti.a $e |- A e. NN $.
    declti.b $e |- B e. NN0 $.
    declti.c $e |- C e. NN0 $.
    ${
      declti.l $e |- C < ; 1 0 $.
      $( Comparing a digit to a decimal integer.  (Contributed by Mario
         Carneiro, 18-Feb-2014.)  (Revised by AV, 6-Sep-2021.) $)
      declti $p |- C < ; A B $=
        ( c1 cc0 cdc cmul co caddc clt 10nn numlti dfdec10 breqtrri ) CHIJZAKLB
        MLABJNABCSODEFGPABQR $.
    $}

    decltdi.4 $e |- C <_ 9 $.
    $( Comparing a digit to a decimal integer.  (Contributed by AV,
       8-Sep-2021.) $)
    decltdi $p |- C < ; A B $=
      ( le9lt10 declti ) ABCDEFCFGHI $.
  $}

  ${
    decltiOLD.1 $e |- A e. NN $.
    decltiOLD.2 $e |- B e. NN0 $.
    decltiOLD.3 $e |- C e. NN0 $.
    decltiOLD.4 $e |- C < 10 $.
    $( Obsolete version of ~ declti as of 6-Sep-2021.  (Contributed by Mario
       Carneiro, 18-Feb-2014.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    decltiOLD $p |- C < ; A B $=
      ( c10 cmul co caddc cdc clt 10nnOLD numlti dfdecOLD breqtrri ) CHAIJBKJAB
      LMABCHNDEFGOABPQ $.
  $}

  ${
    numsucc.1 $e |- Y e. NN0 $.
    numsucc.2 $e |- T = ( Y + 1 ) $.
    numsucc.3 $e |- A e. NN0 $.
    numsucc.4 $e |- ( A + 1 ) = B $.
    numsucc.5 $e |- N = ( ( T x. A ) + Y ) $.
    $( The successor of a decimal integer (with carry).  (Contributed by Mario
       Carneiro, 18-Feb-2014.) $)
    numsucc $p |- ( N + 1 ) = ( ( T x. B ) + 0 ) $=
      ( c1 caddc co cmul cc0 cn0 1nn0 nn0addcli nn0cni oveq2i 3eqtr4ri eqeltrri
      eqeltri mulid1i ax-1cn adddii eqcomi numsuc num0u 3eqtri ) DKLMZCAKLMZNMZ
      CBNMZUNOLMCANMZCKNMZLMUOCLMUMUKUPCUOLCCCEKLMZPGEKFQRUCZSZUDTCAKUSAHSUEUFA
      ECCDURHFCUQGUGJUHUAULBCNITBCURULBPIAKHQRUBUIUJ $.
  $}

  ${
    decsucc.1 $e |- A e. NN0 $.
    decsucc.2 $e |- ( A + 1 ) = B $.
    decsucc.3 $e |- N = ; A 9 $.
    $( The successor of a decimal integer (with carry).  (Contributed by Mario
       Carneiro, 18-Feb-2014.)  (Revised by AV, 6-Sep-2021.) $)
    decsucc $p |- ( N + 1 ) = ; B 0 $=
      ( c1 caddc co cc0 cmul c9 9nn0 9p1e10 eqcomi dfdec10 eqtri numsucc eqtr4i
      cdc ) CGHIGJTZBKIJHIBJTABUACLMLGHIUANODECALTUAAKILHIFALPQRBJPS $.

    $( Obsolete version of ~ decsucc as of 6-Sep-2021.  (Contributed by Mario
       Carneiro, 18-Feb-2014.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    decsuccOLD $p |- ( N + 1 ) = ; B 0 $=
      ( c1 caddc co c10 cmul cc0 c9 9nn0 df-10OLD dfdecOLD eqtri numsucc eqtr4i
      cdc ) CGHIJBKILHIBLTABJCMNODECAMTJAKIMHIFAMPQRBLPS $.
  $}

  $( The successor of zero.  (Contributed by Mario Carneiro, 18-Feb-2014.) $)
  1e0p1 $p |- 1 = ( 0 + 1 ) $=
    ( cc0 c1 caddc co 0p1e1 eqcomi ) ABCDBEF $.

  $( Ten plus an integer.  (Contributed by Mario Carneiro, 19-Apr-2015.)
     (Revised by AV, 6-Sep-2021.) $)
  dec10p $p |- ( ; 1 0 + A ) = ; 1 A $=
    ( c1 cdc cc0 cmul co caddc dfdec10 10nn nncni mulid1i oveq1i eqtr2i ) BACBD
    CZBEFZAGFNAGFBAHONAGNNIJKLM $.

  $( Obsolete version of ~ dec10p as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  dec10pOLD $p |- ( 10 + A ) = ; 1 A $=
    ( c1 cdc c10 cmul co caddc dfdecOLD 10nnOLD nncni mulid1i oveq1i eqtr2i ) B
    ACDBEFZAGFDAGFBAHNDAGDDIJKLM $.

  $( The decimal form of 10.  NB:  In our presentations of large numbers later
     on, we will use our symbol for 10 at the highest digits when advantageous,
     because we can use this theorem to convert back to "long form" (where each
     digit is in the range 0-9) with no extra effort.  However, we _cannot_ do
     this for lower digits while maintaining the ease of use of the decimal
     system, since it requires nontrivial number knowledge (more than just
     equality theorems) to convert back.  (Contributed by Mario Carneiro,
     18-Feb-2014.)  Obsolete as of 6-Sep-2021, because the symbol ` 10 ` will
     be removed, and ` ; 1 0 ` will be used instead in general.
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  dec10OLD $p |- 10 = ; 1 0 $=
    ( c10 cc0 caddc co c1 cdc 10nnOLD nncni addid1i dec10pOLD eqtr3i ) ABCDAEBF
    AAGHIBJK $.

  $( Obsolete proof of ~ 9p1e10 as of 1-Aug-2021.  (Contributed by Stanislas
     Polu, 7-Apr-2020.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  9p1e10bOLD $p |- ( 9 + 1 ) = ; 1 0 $=
    ( c9 c1 caddc co c10 cc0 cdc 9p1e10OLD dec10OLD eqtri ) ABCDEBFGHIJ $.

  ${
    numma.1 $e |- T e. NN0 $.
    numma.2 $e |- A e. NN0 $.
    numma.3 $e |- B e. NN0 $.
    numma.4 $e |- C e. NN0 $.
    numma.5 $e |- D e. NN0 $.
    numma.6 $e |- M = ( ( T x. A ) + B ) $.
    numma.7 $e |- N = ( ( T x. C ) + D ) $.
    ${
      numma.8 $e |- P e. NN0 $.
      numma.9 $e |- ( ( A x. P ) + C ) = E $.
      numma.10 $e |- ( ( B x. P ) + D ) = F $.
      $( Perform a multiply-add of two decimal integers ` M ` and ` N ` against
         a fixed multiplicand ` P ` (no carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      numma $p |- ( ( M x. P ) + N ) = ( ( T x. E ) + F ) $=
        ( cmul caddc oveq1i oveq12i nn0cni mulcli adddii mulassi eqtr4i adddiri
        co add4i oveq2i 3eqtr2i ) IEUAUKZJUBUKFAUAUKZBUBUKZEUAUKZFCUAUKZDUBUKZU
        BUKZFAEUAUKZCUBUKZUAUKZBEUAUKZDUBUKZUBUKZFGUAUKZHUBUKUOURJUTUBIUQEUAPUC
        QUDVGUPEUAUKZUSUBUKZVFUBUKZVAVDVJVFUBVDFVBUAUKZUSUBUKVJFVBCFKUEZAEALUEZ
        ERUEZUFCNUEZUGVIVLUSUBFAEVMVNVOUHUCUIUCVAVIVEUBUKZUTUBUKVKURVQUTUBUPBEF
        AVMVNUFZBMUEZVOUJUCVIUSVEDUPEVRVOUFFCVMVPUFBEVSVOUFDOUEULUIUIVDVHVFHUBV
        CGFUASUMTUDUN $.
    $}

    ${
      nummac.8 $e |- P e. NN0 $.
      nummac.9 $e |- F e. NN0 $.
      nummac.10 $e |- G e. NN0 $.
      nummac.11 $e |- ( ( A x. P ) + ( C + G ) ) = E $.
      nummac.12 $e |- ( ( B x. P ) + D ) = ( ( T x. G ) + F ) $.
      $( Perform a multiply-add of two decimal integers ` M ` and ` N ` against
         a fixed multiplicand ` P ` (with carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      nummac $p |- ( ( M x. P ) + N ) = ( ( T x. E ) + F ) $=
        ( cmin co cmul caddc nn0cni mulcli addassi eqtri addcli eqeltrri subdii
        oveq1i wceq subadd2i mpbir eqcomi numma wcel npcan mp2an subcli 3eqtr4i
        cc eqtr3i ) FGIUDUEZUFUEZFIUFUEZHUGUEZUGUEFGUFUEZVJUDUEZVKUGUEZJEUFUEKU
        GUEVLHUGUEZVIVMVKUGFGIFLUHZAEUFUEZCUGUEZIUGUEZGVFVSVQCIUGUEUGUEGVQCIAEA
        MUHESUHUIZCOUHZIUAUHZUJUBUKZVRIVQCVTWAULZWBULUMZWBUNUOABCDEFVHVKJKLMNOP
        QRSVHVRVHVRUPVSGUPWCGIVRWEWBWDUQURUSUCUTVMVJUGUEZHUGUEVOVNWFVLHUGVLVFVA
        VJVFVAWFVLUPFGVPWEUIZFIVPWBUIZVLVJVBVCUOVMVJHVLVJWGWHVDWHHTUHUJVGVE $.
    $}

    ${
      numma2c.8 $e |- P e. NN0 $.
      numma2c.9 $e |- F e. NN0 $.
      numma2c.10 $e |- G e. NN0 $.
      numma2c.11 $e |- ( ( P x. A ) + ( C + G ) ) = E $.
      numma2c.12 $e |- ( ( P x. B ) + D ) = ( ( T x. G ) + F ) $.
      $( Perform a multiply-add of two decimal integers ` M ` and ` N ` against
         a fixed multiplicand ` P ` (with carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      numma2c $p |- ( ( P x. M ) + N ) = ( ( T x. E ) + F ) $=
        ( cmul co caddc nn0cni cn0 numcl eqeltri mulcomi oveq1i eqtri nummac )
        EJUDUEZKUFUEJEUDUEZKUFUEFGUDUEHUFUEUOUPKUFEJESUGZJJFAUDUEBUFUEUHQABFLMN
        UIUJUGUKULABCDEFGHIJKLMNOPQRSTUAAEUDUEZCIUFUEZUFUEEAUDUEZUSUFUEGURUTUSU
        FAEAMUGUQUKULUBUMBEUDUEZDUFUEEBUDUEZDUFUEFIUDUEHUFUEVAVBDUFBEBNUGUQUKUL
        UCUMUNUM $.
    $}

    ${
      numadd.8 $e |- ( A + C ) = E $.
      numadd.9 $e |- ( B + D ) = F $.
      $( Add two decimal integers ` M ` and ` N ` (no carry).  (Contributed by
         Mario Carneiro, 18-Feb-2014.) $)
      numadd $p |- ( M + N ) = ( ( T x. E ) + F ) $=
        ( co caddc c1 cmul numcl eqeltri nn0cni mulid1i oveq1i 1nn0 eqtri numma
        cn0 eqtr3i ) HUAUBSZITSHITSEFUBSGTSUMHITHHHEAUBSBTSUKOABEJKLUCUDUEUFUGA
        BCDUAEFGHIJKLMNOPUHAUAUBSZCTSACTSFUNACTAAKUEUFUGQUIBUAUBSZDTSBDTSGUOBDT
        BBLUEUFUGRUIUJUL $.
    $}

    ${
      numaddc.8 $e |- F e. NN0 $.
      numaddc.9 $e |- ( ( A + C ) + 1 ) = E $.
      numaddc.10 $e |- ( B + D ) = ( ( T x. 1 ) + F ) $.
      $( Add two decimal integers ` M ` and ` N ` (with carry).  (Contributed
         by Mario Carneiro, 18-Feb-2014.) $)
      numaddc $p |- ( M + N ) = ( ( T x. E ) + F ) $=
        ( co c1 cmul caddc cn0 numcl eqeltri nn0cni mulid1i oveq1i 1nn0 addassi
        ax-1cn 3eqtr2i eqtri nummac eqtr3i ) HUAUBTZIUCTHIUCTEFUBTGUCTUQHIUCHHH
        EAUBTBUCTUDOABEJKLUEUFUGUHUIABCDUAEFGUAHIJKLMNOPUJQUJAUAUBTZCUAUCTZUCTA
        USUCTACUCTUAUCTFURAUSUCAAKUGZUHUIACUAUTCMUGULUKRUMBUAUBTZDUCTBDUCTEUAUB
        TGUCTVABDUCBBLUGUHUISUNUOUP $.
    $}
  $}

  ${
    nummul1c.1 $e |- T e. NN0 $.
    nummul1c.2 $e |- P e. NN0 $.
    nummul1c.3 $e |- A e. NN0 $.
    nummul1c.4 $e |- B e. NN0 $.
    nummul1c.5 $e |- N = ( ( T x. A ) + B ) $.
    nummul1c.6 $e |- D e. NN0 $.
    nummul1c.7 $e |- E e. NN0 $.
    ${
      nummul1c.8 $e |- ( ( A x. P ) + E ) = C $.
      nummul1c.9 $e |- ( B x. P ) = ( ( T x. E ) + D ) $.
      $( The product of a decimal integer with a number.  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      nummul1c $p |- ( N x. P ) = ( ( T x. C ) + D ) $=
        ( co cc0 caddc cmul cn0 numcl eqeltri num0u num0h nn0cni addid2i oveq2i
        0nn0 eqtri eqtr3i nummac ) HEUARZUNSTRFCUARDTREHHFAUARBTRUBMABFIKLUCUDJ
        UEABSSEFCDGHSIKLUJUJMSFIUJUFJNOAEUARZSGTRZTRUOGTRCUPGUOTGGOUGUHUIPUKBEU
        ARZUQSTRFGUARDTREBLJUEQULUMUK $.
    $}

    ${
      nummul2c.7 $e |- ( ( P x. A ) + E ) = C $.
      nummul2c.8 $e |- ( P x. B ) = ( ( T x. E ) + D ) $.
      $( The product of a decimal integer with a number (with carry).
         (Contributed by Mario Carneiro, 18-Feb-2014.) $)
      nummul2c $p |- ( P x. N ) = ( ( T x. C ) + D ) $=
        ( cmul co caddc cn0 numcl eqeltri nn0cni oveq1i eqtri mulcomli nummul1c
        mulcomi ) HEFCRSDTSHHFARSBTSUAMABFIKLUBUCUDEJUDZABCDEFGHIJKLMNOAERSZGTS
        EARSZGTSCUKULGTAEAKUDUJUIUEPUFEBFGRSDTSUJBLUDQUGUHUG $.
    $}
  $}

  ${
    decma.a $e |- A e. NN0 $.
    decma.b $e |- B e. NN0 $.
    decma.c $e |- C e. NN0 $.
    decma.d $e |- D e. NN0 $.
    decma.m $e |- M = ; A B $.
    decma.n $e |- N = ; C D $.
    ${
      decma.p $e |- P e. NN0 $.
      decma.e $e |- ( ( A x. P ) + C ) = E $.
      decma.f $e |- ( ( B x. P ) + D ) = F $.
      $( Perform a multiply-add of two numerals ` M ` and ` N ` against a fixed
         multiplicand ` P ` (no carry).  (Contributed by Mario Carneiro,
         18-Feb-2014.)  (Revised by AV, 6-Sep-2021.) $)
      decma $p |- ( ( M x. P ) + N ) = ; E F $=
        ( cmul co caddc c1 cc0 cdc 10nn0 dfdec10 eqtri numma eqtr4i ) HESTIUATU
        BUCUDZFSTGUATFGUDABCDEUJFGHIUEJKLMHABUDUJASTBUATNABUFUGICDUDUJCSTDUATOC
        DUFUGPQRUHFGUFUI $.

      $( Obsolete proof of ~ decma as of 6-Sep-2021.  (Contributed by Mario
         Carneiro, 18-Feb-2014.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      decmaOLD $p |- ( ( M x. P ) + N ) = ; E F $=
        ( cmul co caddc c10 cdc 10nn0OLD dfdecOLD eqtri numma eqtr4i ) HESTIUAT
        UBFSTGUATFGUCABCDEUBFGHIUDJKLMHABUCUBASTBUATNABUEUFICDUCUBCSTDUATOCDUEU
        FPQRUGFGUEUH $.
    $}

    ${
      decmac.p $e |- P e. NN0 $.
      decmac.f $e |- F e. NN0 $.
      decmac.g $e |- G e. NN0 $.
      decmac.e $e |- ( ( A x. P ) + ( C + G ) ) = E $.
      decmac.2 $e |- ( ( B x. P ) + D ) = ; G F $.
      $( Perform a multiply-add of two numerals ` M ` and ` N ` against a fixed
         multiplicand ` P ` (with carry).  (Contributed by Mario Carneiro,
         18-Feb-2014.)  (Revised by AV, 6-Sep-2021.) $)
      decmac $p |- ( ( M x. P ) + N ) = ; E F $=
        ( cmul co caddc c1 cc0 cdc 10nn0 dfdec10 eqtri nummac eqtr4i ) IEUBUCJU
        DUCUEUFUGZFUBUCGUDUCFGUGABCDEUMFGHIJUHKLMNIABUGUMAUBUCBUDUCOABUIUJJCDUG
        UMCUBUCDUDUCPCDUIUJQRSTBEUBUCDUDUCHGUGUMHUBUCGUDUCUAHGUIUJUKFGUIUL $.

      $( Obsolete proof of ~ decmac as of 6-Sep-2021.  (Contributed by Mario
         Carneiro, 18-Feb-2014.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      decmacOLD $p |- ( ( M x. P ) + N ) = ; E F $=
        ( cmul co caddc c10 cdc 10nn0OLD dfdecOLD eqtri nummac eqtr4i ) IEUBUCJ
        UDUCUEFUBUCGUDUCFGUFABCDEUEFGHIJUGKLMNIABUFUEAUBUCBUDUCOABUHUIJCDUFUECU
        BUCDUDUCPCDUHUIQRSTBEUBUCDUDUCHGUFUEHUBUCGUDUCUAHGUHUIUJFGUHUK $.
    $}

    ${
      decma2c.p $e |- P e. NN0 $.
      decma2c.f $e |- F e. NN0 $.
      decma2c.g $e |- G e. NN0 $.
      decma2c.e $e |- ( ( P x. A ) + ( C + G ) ) = E $.
      decma2c.2 $e |- ( ( P x. B ) + D ) = ; G F $.
      $( Perform a multiply-add of two numerals ` M ` and ` N ` against a fixed
         multiplier ` P ` (with carry).  (Contributed by Mario Carneiro,
         18-Feb-2014.)  (Revised by AV, 6-Sep-2021.) $)
      decma2c $p |- ( ( P x. M ) + N ) = ; E F $=
        ( cmul co caddc c1 cc0 cdc 10nn0 dfdec10 eqtri numma2c eqtr4i ) EIUBUCJ
        UDUCUEUFUGZFUBUCGUDUCFGUGABCDEUMFGHIJUHKLMNIABUGUMAUBUCBUDUCOABUIUJJCDU
        GUMCUBUCDUDUCPCDUIUJQRSTEBUBUCDUDUCHGUGUMHUBUCGUDUCUAHGUIUJUKFGUIUL $.

      $( Obsolete proof of ~ decma2c as of 6-Sep-2021.  (Contributed by Mario
         Carneiro, 18-Feb-2014.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      decma2cOLD $p |- ( ( P x. M ) + N ) = ; E F $=
        ( cmul co caddc c10 cdc 10nn0OLD dfdecOLD eqtri numma2c eqtr4i ) EIUBUC
        JUDUCUEFUBUCGUDUCFGUFABCDEUEFGHIJUGKLMNIABUFUEAUBUCBUDUCOABUHUIJCDUFUEC
        UBUCDUDUCPCDUHUIQRSTEBUBUCDUDUCHGUFUEHUBUCGUDUCUAHGUHUIUJFGUHUK $.
    $}

    ${
      decadd.e $e |- ( A + C ) = E $.
      decadd.f $e |- ( B + D ) = F $.
      $( Add two numerals ` M ` and ` N ` (no carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.)  (Revised by AV, 6-Sep-2021.) $)
      decadd $p |- ( M + N ) = ; E F $=
        ( caddc co cdc cmul c1 cc0 10nn0 dfdec10 eqtri numadd eqtr4i ) GHQRUAUB
        SZETRFQREFSABCDUHEFGHUCIJKLGABSUHATRBQRMABUDUEHCDSUHCTRDQRNCDUDUEOPUFEF
        UDUG $.

      $( Obsolete proof of ~ decadd as of 6-Sep-2021.  (Contributed by Mario
         Carneiro, 18-Feb-2014.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      decaddOLD $p |- ( M + N ) = ; E F $=
        ( caddc co c10 cmul cdc 10nn0OLD dfdecOLD eqtri numadd eqtr4i ) GHQRSET
        RFQREFUAABCDSEFGHUBIJKLGABUASATRBQRMABUCUDHCDUASCTRDQRNCDUCUDOPUEEFUCUF
        $.
    $}

    decaddc.e $e |- ( ( A + C ) + 1 ) = E $.
    ${
      decaddc.f $e |- F e. NN0 $.
      decaddc.2 $e |- ( B + D ) = ; 1 F $.
      $( Add two numerals ` M ` and ` N ` (with carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.)  (Revised by AV, 6-Sep-2021.) $)
      decaddc $p |- ( M + N ) = ; E F $=
        ( caddc co cdc c1 cc0 cmul 10nn0 dfdec10 eqtri numaddc eqtr4i ) GHRSUAU
        BTZEUCSFRSEFTABCDUIEFGHUDIJKLGABTUIAUCSBRSMABUEUFHCDTUICUCSDRSNCDUEUFPO
        BDRSUAFTUIUAUCSFRSQUAFUEUFUGEFUEUH $.

      $( Obsolete proof of ~ decaddc as of 6-Sep-2021.  (Contributed by Mario
         Carneiro, 18-Feb-2014.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      decaddcOLD $p |- ( M + N ) = ; E F $=
        ( caddc co c10 cmul cdc 10nn0OLD dfdecOLD eqtri c1 numaddc eqtr4i ) GHR
        STEUASFRSEFUBABCDTEFGHUCIJKLGABUBTAUASBRSMABUDUEHCDUBTCUASDRSNCDUDUEPOB
        DRSUFFUBTUFUASFRSQUFFUDUEUGEFUDUH $.
    $}

    ${
      decaddc2OLD.t $e |- ( B + D ) = 10 $.
      $( Obsolete version of ~ decaddc2 as of 6-Sep-2021.  (Contributed by
         Mario Carneiro, 18-Feb-2014.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      decaddc2OLD $p |- ( M + N ) = ; E 0 $=
        ( cc0 0nn0 caddc co c10 c1 cdc dec10OLD eqtri decaddc ) ABCDEPFGHIJKLMN
        QBDRSTUAPUBOUCUDUE $.
    $}

    decaddc2.t $e |- ( B + D ) = ; 1 0 $.
    $( Add two numerals ` M ` and ` N ` (with carry).  (Contributed by Mario
       Carneiro, 18-Feb-2014.)  (Revised by AV, 6-Sep-2021.) $)
    decaddc2 $p |- ( M + N ) = ; E 0 $=
      ( cc0 0nn0 decaddc ) ABCDEPFGHIJKLMNQOR $.
  $}

  ${
    decrmanc.a $e |- A e. NN0 $.
    decrmanc.b $e |- B e. NN0 $.
    decrmanc.n $e |- N e. NN0 $.
    decrmanc.m $e |- M = ; A B $.
    decrmanc.p $e |- P e. NN0 $.
    ${
      decrmanc.e $e |- ( A x. P ) = E $.
      decrmanc.f $e |- ( ( B x. P ) + N ) = F $.
      $( Perform a multiply-add of two numerals ` M ` and ` N ` against a fixed
         multiplicand ` P ` (no carry).  (Contributed by AV, 16-Sep-2021.) $)
      decrmanc $p |- ( ( M x. P ) + N ) = ; E F $=
        ( cc0 0nn0 dec0h cmul co caddc nn0mulcli nn0cni addid1i eqtri decma ) A
        BOGCDEFGHIPJKGJQLACRSZOTSUFDUFUFACHLUAUBUCMUDNUE $.
    $}

    ${
      decrmac.f $e |- F e. NN0 $.
      decrmac.g $e |- G e. NN0 $.
      decrmac.e $e |- ( ( A x. P ) + G ) = E $.
      decrmac.2 $e |- ( ( B x. P ) + N ) = ; G F $.
      $( Perform a multiply-add of two numerals ` M ` and ` N ` against a fixed
         multiplicand ` P ` (with carry).  (Contributed by AV, 16-Sep-2021.) $)
      decrmac $p |- ( ( M x. P ) + N ) = ; E F $=
        ( cc0 co caddc 0nn0 dec0h cmul nn0cni addid2i oveq2i eqtri decmac ) ABR
        HCDEFGHIJUAKLHKUBMNOACUCSZRFTSZTSUIFTSDUJFUITFFOUDUEUFPUGQUH $.
    $}
  $}

  ${
    decaddm10.a $e |- A e. NN0 $.
    decaddm10.b $e |- B e. NN0 $.
    $( The sum of two multiples of 10 is a multiple of 10.  (Contributed by AV,
       30-Jul-2021.) $)
    decaddm10 $p |- ( ; A 0 + ; B 0 ) = ; ( A + B ) 0 $=
      ( cc0 caddc co cdc 0nn0 eqid 00id decadd ) AEBEABFGZEAEHZBEHZCIDINJOJMJKL
      $.
  $}

  ${
    decaddi.1 $e |- A e. NN0 $.
    decaddi.2 $e |- B e. NN0 $.
    decaddi.3 $e |- N e. NN0 $.
    decaddi.4 $e |- M = ; A B $.
    ${
      decaddi.5 $e |- ( B + N ) = C $.
      $( Add two numerals ` M ` and ` N ` (no carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      decaddi $p |- ( M + N ) = ; A C $=
        ( cc0 0nn0 dec0h nn0cni addid1i decadd ) ABKEACDEFGLHIEHMAAFNOJP $.
    $}

    decaddci.5 $e |- ( A + 1 ) = D $.
    ${
      decaddci.6 $e |- C e. NN0 $.
      decaddci.7 $e |- ( B + N ) = ; 1 C $.
      $( Add two numerals ` M ` and ` N ` (no carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.) $)
      decaddci $p |- ( M + N ) = ; D C $=
        ( cc0 0nn0 dec0h caddc co c1 nn0cni addid1i oveq1i eqtri decaddc ) ABNF
        DCEFGHOIJFIPANQRZSQRASQRDUEASQAAGTUAUBKUCLMUD $.
    $}

    ${
      decaddci2.6 $e |- ( B + N ) = ; 1 0 $.
      $( Add two numerals ` M ` and ` N ` (no carry).  (Contributed by Mario
         Carneiro, 18-Feb-2014.)  (Revised by AV, 6-Sep-2021.) $)
      decaddci2 $p |- ( M + N ) = ; D 0 $=
        ( cc0 0nn0 decaddci ) ABLCDEFGHIJMKN $.
    $}

    ${
      decaddci2OLD.6 $e |- ( B + N ) = 10 $.
      $( Obsolete version of ~ decaddci2 as of 6-Sep-2021.  (Contributed by
         Mario Carneiro, 18-Feb-2014.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      decaddci2OLD $p |- ( M + N ) = ; D 0 $=
        ( cc0 0nn0 caddc co c10 c1 cdc dec10OLD eqtri decaddci ) ABLCDEFGHIJMBE
        NOPQLRKSTUA $.
    $}

    ${
      decsubi.5 $e |- ( B - N ) = C $.
      $( Difference between a numeral ` M ` and a nonnegative integer ` N ` (no
         underflow).  (Contributed by AV, 22-Jul-2021.)  (Revised by AV,
         6-Sep-2021.) $)
      decsubi $p |- ( M - N ) = ; A C $=
        ( c1 cdc co caddc cmin nn0cni dfdec10 eqtri cmul 10nn0 nn0mulcli oveq1i
        cc0 addsubassi eqcomi oveq2i 3eqtr4i ) MUENZAUAOZBPOZFQOUKBFQOZPOZEFQOA
        CNZUKBFUKUJAUBGUCRBHRFIRUFEULFQEABNULJABSTUDUOUKCPOUNACSCUMUKPUMCLUGUHT
        UI $.

      $( Obsolete proof of ~ decsubi as of 6-Sep-2021.  (Contributed by AV,
         22-Jul-2021.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      decsubiOLD $p |- ( M - N ) = ; A C $=
        ( c10 co caddc cmin cdc nn0cni dfdecOLD eqtri cmul nn0mulcli addsubassi
        10nn0OLD oveq1i eqcomi oveq2i 3eqtr4i ) MAUANZBONZFPNUIBFPNZONZEFPNACQZ
        UIBFUIMAUDGUBRBHRFIRUCEUJFPEABQUJJABSTUEUMUICONULACSCUKUIOUKCLUFUGTUH
        $.
    $}
  $}

  ${
    decmul1.p $e |- P e. NN0 $.
    decmul1.a $e |- A e. NN0 $.
    decmul1.b $e |- B e. NN0 $.
    decmul1.n $e |- N = ; A B $.
    decmul1.0 $e |- D e. NN0 $.
    ${
      decmul1.c $e |- ( A x. P ) = C $.
      decmul1.d $e |- ( B x. P ) = D $.
      $( The product of a numeral with a number (no carry).  (Contributed by
         AV, 22-Jul-2021.)  (Revised by AV, 6-Sep-2021.) $)
      decmul1 $p |- ( N x. P ) = ; C D $=
        ( cmul co cc0 cdc caddc 10nn0 nn0cni c1 dfdec10 eqtri nn0mulcli addid1i
        0nn0 oveq2i addid2i mul01i eqcomi oveq1i 3eqtr3i nummul1c eqtr4i ) FENO
        UAPQZCNODROCDQABCDEUOPFSGHIFABQUOANOBROJABUBUCKUFAENOZPROUPCUPUPAEHGUDT
        UELUCPBENOZROPDROUQUOPNOZDROUQDPRMUGUQUQBEIGUDTUHPURDRURPUOUOSTUIUJUKUL
        UMCDUBUN $.

      $( Obsolete proof of ~ decmul1 as of 6-Sep-2021.  (Contributed by AV,
         22-Jul-2021.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      decmul1OLD $p |- ( N x. P ) = ; C D $=
        ( cmul co c10 caddc cc0 eqtri nn0cni cdc 10nn0OLD dfdecOLD 0nn0 addid1i
        nn0mulcli addid2i eqtr4i mul01i eqcomi oveq1i nummul1c ) FENOPCNODQOCDU
        AABCDEPRFUBGHIFABUAPANOBQOJABUCSKUDAENOZRQOUMCUMUMAEHGUFTUELSBENOZRDQOZ
        PRNOZDQOUNDUOMDDKTUGUHRUPDQUPRPPUBTUIUJUKSULCDUCUH $.
    $}

    decmul1c.e $e |- E e. NN0 $.
    ${
      decmul1c.c $e |- ( ( A x. P ) + E ) = C $.
      decmul1c.2 $e |- ( B x. P ) = ; E D $.
      $( The product of a numeral with a number (with carry).  (Contributed by
         Mario Carneiro, 18-Feb-2014.)  (Revised by AV, 6-Sep-2021.) $)
      decmul1c $p |- ( N x. P ) = ; C D $=
        ( cmul co cdc caddc dfdec10 c1 cc0 10nn0 eqtri nummul1c eqtr4i ) GEPQUA
        UBRZCPQDSQCDRABCDEUGFGUCHIJGABRUGAPQBSQKABTUDLMNBEPQFDRUGFPQDSQOFDTUDUE
        CDTUF $.

      $( Obsolete proof of ~ decmul1c as of 6-Sep-2021.  (Contributed by Mario
         Carneiro, 18-Feb-2014.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      decmul1cOLD $p |- ( N x. P ) = ; C D $=
        ( cmul co c10 caddc cdc 10nn0OLD dfdecOLD eqtri nummul1c eqtr4i ) GEPQR
        CPQDSQCDTABCDERFGUAHIJGABTRAPQBSQKABUBUCLMNBEPQFDTRFPQDSQOFDUBUCUDCDUBU
        E $.
    $}

    decmul2c.c $e |- ( ( P x. A ) + E ) = C $.
    decmul2c.2 $e |- ( P x. B ) = ; E D $.
    $( The product of a numeral with a number (with carry).  (Contributed by
       Mario Carneiro, 18-Feb-2014.)  (Revised by AV, 6-Sep-2021.) $)
    decmul2c $p |- ( P x. N ) = ; C D $=
      ( cmul co cdc caddc dfdec10 c1 cc0 10nn0 eqtri nummul2c eqtr4i ) EGPQUAUB
      RZCPQDSQCDRABCDEUGFGUCHIJGABRUGAPQBSQKABTUDLMNEBPQFDRUGFPQDSQOFDTUDUECDTU
      F $.

    $( Obsolete proof of ~ decmul2c as of 6-Sep-2021.  (Contributed by Mario
       Carneiro, 18-Feb-2014.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    decmul2cOLD $p |- ( P x. N ) = ; C D $=
      ( cmul co c10 caddc cdc 10nn0OLD dfdecOLD eqtri nummul2c eqtr4i ) EGPQRCP
      QDSQCDTABCDERFGUAHIJGABTRAPQBSQKABUBUCLMNEBPQFDTRFPQDSQOFDUBUCUDCDUBUE $.
  $}

  ${
    decmulnc.n $e |- N e. NN0 $.
    decmulnc.a $e |- A e. NN0 $.
    decmulnc.b $e |- B e. NN0 $.
    $( The product of a numeral with a number (no carry).  (Contributed by AV,
       15-Jun-2021.) $)
    decmulnc $p |- ( N x. ; A B ) = ; ( N x. A ) ( N x. B ) $=
      ( cmul co cc0 cdc eqid nn0mulcli 0nn0 nn0cni addid1i dec0h decmul2c ) ABC
      AGHZCBGHZCIABJZDEFTKCBDFLZMRRCADELNOSUAPQ $.
  $}

  ${
    11multnc.n $e |- N e. NN0 $.
    $( The product of 11 (as numeral) with a number (no carry).  (Contributed
       by AV, 15-Jun-2021.) $)
    11multnc $p |- ( N x. ; 1 1 ) = ; N N $=
      ( c1 cdc cmul co 1nn0 decmulnc nn0cni mulid1i deceq12i eqtri ) ACCDEFACEF
      ZMDAADCCABGGHMAMAAABIJZNKL $.
  $}

  ${
    decmul10add.1 $e |- A e. NN0 $.
    decmul10add.2 $e |- B e. NN0 $.
    decmul10add.3 $e |- M e. NN0 $.
    decmul10add.4 $e |- E = ( M x. A ) $.
    decmul10add.5 $e |- F = ( M x. B ) $.
    $( A multiplication of a number and a numeral expressed as addition with
       first summand as multiple of 10.  (Contributed by AV, 22-Jul-2021.)
       (Revised by AV, 6-Sep-2021.) $)
    decmul10add $p |- ( M x. ; A B ) = ( ; E 0 + F ) $=
      ( cdc cmul co cc0 caddc nn0cni 10nn0 nn0mulcli eqcomi 3eqtri oveq2i dec0u
      c1 dfdec10 adddii mul12i deceq1i oveq12i ) EABKZLMEUCNKZALMZBOMZLMEUKLMZE
      BLMZOMCNKZDOMUIULELABUDUAEUKBEHPZUKUJAQFRPBGPUEUMUOUNDOUMUJEALMZLMUQNKUOE
      UJAUPUJQPAFPUFUQEAHFRUBUQCNCUQISUGTDUNJSUHT $.

    $( Obsolete proof of ~ decmul10add as of 6-Sep-2021.  (Contributed by AV,
       22-Jul-2021.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    decmul10addOLD $p |- ( M x. ; A B ) = ( ; E 0 + F ) $=
      ( cdc cmul co c10 caddc cc0 nn0cni 10nn0OLD nn0mulcli eqcomi dfdecOLD
      oveq2i adddii mul12i dec0uOLD deceq1i 3eqtri oveq12i ) EABKZLMENALMZBOMZL
      MEUJLMZEBLMZOMCPKZDOMUIUKELABUAUBEUJBEHQZUJNARFSQBGQUCULUNUMDOULNEALMZLMU
      PPKUNENAUONRQAFQUDUPEAHFSUEUPCPCUPITUFUGDUMJTUHUG $.
  $}

  ${
    6p5lem.1 $e |- A e. NN0 $.
    6p5lem.2 $e |- D e. NN0 $.
    6p5lem.3 $e |- E e. NN0 $.
    6p5lem.4 $e |- B = ( D + 1 ) $.
    6p5lem.5 $e |- C = ( E + 1 ) $.
    6p5lem.6 $e |- ( A + D ) = ; 1 E $.
    $( Lemma for ~ 6p5e11 and related theorems.  (Contributed by Mario
       Carneiro, 19-Apr-2015.) $)
    6p5lem $p |- ( A + B ) = ; 1 C $=
      ( caddc co c1 cdc oveq2i nn0cni ax-1cn addassi 1nn0 eqcomi decsuc 3eqtr2i
      ) ABLMADNLMZLMADLMZNLMNCOBUDALIPADNAFQDGQRSNECUETHCENLMJUAKUBUC $.
  $}

  $( 5 + 5 = 10.  (Contributed by NM, 5-Feb-2007.)  (Revised by Stanislas Polu,
     7-Apr-2020.)  (Revised by AV, 6-Sep-2021.) $)
  5p5e10 $p |- ( 5 + 5 ) = ; 1 0 $=
    ( c5 caddc co c4 c1 cc0 cdc df-5 oveq2i 5cn 4cn ax-1cn addassi eqtr4i 5p4e9
    c9 oveq1i 9p1e10 3eqtri ) AABCZADBCZEBCZPEBCEFGTADEBCZBCUBAUCABHIADEJKLMNUA
    PEBOQRS $.

  $( Obsolete proof of ~ 5p5e10 as of 6-Sep-2021.  (Contributed by Stanislas
     Polu, 7-Apr-2020.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  5p5e10bOLD $p |- ( 5 + 5 ) = ; 1 0 $=
    ( c5 caddc co c10 c1 cc0 cdc 5p5e10OLD dec10OLD eqtri ) AABCDEFGHIJ $.

  $( 6 + 4 = 10.  (Contributed by NM, 5-Feb-2007.)  (Revised by Stanislas Polu,
     7-Apr-2020.)  (Revised by AV, 6-Sep-2021.) $)
  6p4e10 $p |- ( 6 + 4 ) = ; 1 0 $=
    ( c6 c4 caddc co c3 c1 c9 cc0 cdc df-4 oveq2i 6cn 3cn ax-1cn addassi eqtr4i
    6p3e9 oveq1i 9p1e10 3eqtri ) ABCDZAECDZFCDZGFCDFHIUAAEFCDZCDUCBUDACJKAEFLMN
    OPUBGFCQRST $.

  $( Obsolete proof of ~ 6p4e10 as of 6-Sep-2021.  (Contributed by Stanislas
     Polu, 7-Apr-2020.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  6p4e10bOLD $p |- ( 6 + 4 ) = ; 1 0 $=
    ( c6 c4 caddc co c10 c1 cc0 cdc 6p4e10OLD dec10OLD eqtri ) ABCDEFGHIJK $.

  $( 6 + 5 = 11.  (Contributed by Mario Carneiro, 19-Apr-2015.)  (Revised by
     AV, 6-Sep-2021.) $)
  6p5e11 $p |- ( 6 + 5 ) = ; 1 1 $=
    ( c6 c5 c1 c4 cc0 6nn0 4nn0 0nn0 df-5 1e0p1 6p4e10 6p5lem ) ABCDEFGHIJKL $.

  $( Obsolete proof of ~ 6p5e11 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  6p5e11OLD $p |- ( 6 + 5 ) = ; 1 1 $=
    ( c6 c5 c1 c4 cc0 6nn0 4nn0 0nn0 df-5 1e0p1 caddc co c10 6p4e10OLD dec10OLD
    cdc eqtri 6p5lem ) ABCDEFGHIJADKLMCEPNOQR $.

  $( 6 + 6 = 12.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  6p6e12 $p |- ( 6 + 6 ) = ; 1 2 $=
    ( c6 c2 c5 c1 6nn0 5nn0 1nn0 df-6 df-2 6p5e11 6p5lem ) AABCDEFGHIJK $.

  $( 7 + 3 = 10.  (Contributed by NM, 5-Feb-2007.)  (Revised by Stanislas Polu,
     7-Apr-2020.)  (Revised by AV, 6-Sep-2021.) $)
  7p3e10 $p |- ( 7 + 3 ) = ; 1 0 $=
    ( c7 c3 caddc co c2 c1 c9 cc0 cdc df-3 oveq2i 7cn 2cn ax-1cn addassi eqtr4i
    7p2e9 oveq1i 9p1e10 3eqtri ) ABCDZAECDZFCDZGFCDFHIUAAEFCDZCDUCBUDACJKAEFLMN
    OPUBGFCQRST $.

  $( Obsolete proof of ~ 7p3e10 as of 6-Sep-2021.  (Contributed by Stanislas
     Polu, 7-Apr-2020.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  7p3e10bOLD $p |- ( 7 + 3 ) = ; 1 0 $=
    ( c7 c3 caddc co c10 c1 cc0 cdc 7p3e10OLD dec10OLD eqtri ) ABCDEFGHIJK $.

  $( 7 + 4 = 11.  (Contributed by Mario Carneiro, 19-Apr-2015.)  (Revised by
     AV, 6-Sep-2021.) $)
  7p4e11 $p |- ( 7 + 4 ) = ; 1 1 $=
    ( c7 c4 c1 c3 cc0 7nn0 3nn0 0nn0 df-4 1e0p1 7p3e10 6p5lem ) ABCDEFGHIJKL $.

  $( Obsolete proof of ~ 7p4e11 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  7p4e11OLD $p |- ( 7 + 4 ) = ; 1 1 $=
    ( c7 c4 c1 c3 cc0 7nn0 3nn0 0nn0 df-4 1e0p1 caddc co c10 7p3e10OLD dec10OLD
    cdc eqtri 6p5lem ) ABCDEFGHIJADKLMCEPNOQR $.

  $( 7 + 5 = 12.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7p5e12 $p |- ( 7 + 5 ) = ; 1 2 $=
    ( c7 c5 c2 c4 c1 7nn0 4nn0 1nn0 df-5 df-2 7p4e11 6p5lem ) ABCDEFGHIJKL $.

  $( 7 + 6 = 13.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7p6e13 $p |- ( 7 + 6 ) = ; 1 3 $=
    ( c7 c6 c3 c5 c2 7nn0 5nn0 2nn0 df-6 df-3 7p5e12 6p5lem ) ABCDEFGHIJKL $.

  $( 7 + 7 = 14.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7p7e14 $p |- ( 7 + 7 ) = ; 1 4 $=
    ( c7 c4 c6 c3 7nn0 6nn0 3nn0 df-7 df-4 7p6e13 6p5lem ) AABCDEFGHIJK $.

  $( 8 + 2 = 10.  (Contributed by NM, 5-Feb-2007.)  (Revised by Stanislas Polu,
     7-Apr-2020.)  (Revised by AV, 6-Sep-2021.) $)
  8p2e10 $p |- ( 8 + 2 ) = ; 1 0 $=
    ( c8 c2 caddc co c1 c9 cc0 cdc df-2 oveq2i 8cn ax-1cn addassi eqtr4i oveq1i
    df-9 9p1e10 3eqtr2i ) ABCDZAECDZECDZFECDEGHSAEECDZCDUABUBACIJAEEKLLMNFTECPO
    QR $.

  $( Obsolete proof of ~ 8p2e10 as of 6-Sep-2021.  (Contributed by Stanislas
     Polu, 7-Apr-2020.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  8p2e10bOLD $p |- ( 8 + 2 ) = ; 1 0 $=
    ( c8 c2 caddc co c10 c1 cc0 cdc 8p2e10OLD dec10OLD eqtri ) ABCDEFGHIJK $.

  $( 8 + 3 = 11.  (Contributed by Mario Carneiro, 19-Apr-2015.)  (Revised by
     AV, 6-Sep-2021.) $)
  8p3e11 $p |- ( 8 + 3 ) = ; 1 1 $=
    ( c8 c3 c1 c2 cc0 8nn0 2nn0 0nn0 df-3 1e0p1 8p2e10 6p5lem ) ABCDEFGHIJKL $.

  $( Obsolete proof of ~ 8p3e11 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  8p3e11OLD $p |- ( 8 + 3 ) = ; 1 1 $=
    ( c8 c3 c1 c2 cc0 8nn0 2nn0 0nn0 df-3 1e0p1 caddc co c10 8p2e10OLD dec10OLD
    cdc eqtri 6p5lem ) ABCDEFGHIJADKLMCEPNOQR $.

  $( 8 + 4 = 12.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8p4e12 $p |- ( 8 + 4 ) = ; 1 2 $=
    ( c8 c4 c2 c3 c1 8nn0 3nn0 1nn0 df-4 df-2 8p3e11 6p5lem ) ABCDEFGHIJKL $.

  $( 8 + 5 = 13.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8p5e13 $p |- ( 8 + 5 ) = ; 1 3 $=
    ( c8 c5 c3 c4 c2 8nn0 4nn0 2nn0 df-5 df-3 8p4e12 6p5lem ) ABCDEFGHIJKL $.

  $( 8 + 6 = 14.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8p6e14 $p |- ( 8 + 6 ) = ; 1 4 $=
    ( c8 c6 c4 c5 c3 8nn0 5nn0 3nn0 df-6 df-4 8p5e13 6p5lem ) ABCDEFGHIJKL $.

  $( 8 + 7 = 15.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8p7e15 $p |- ( 8 + 7 ) = ; 1 5 $=
    ( c8 c7 c5 c6 c4 8nn0 6nn0 4nn0 df-7 df-5 8p6e14 6p5lem ) ABCDEFGHIJKL $.

  $( 8 + 8 = 16.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8p8e16 $p |- ( 8 + 8 ) = ; 1 6 $=
    ( c8 c6 c7 c5 8nn0 7nn0 5nn0 df-8 df-6 8p7e15 6p5lem ) AABCDEFGHIJK $.

  $( 9 + 2 = 11.  (Contributed by Mario Carneiro, 19-Apr-2015.)  (Revised by
     AV, 6-Sep-2021.) $)
  9p2e11 $p |- ( 9 + 2 ) = ; 1 1 $=
    ( c9 c2 c1 cc0 9nn0 1nn0 0nn0 df-2 1e0p1 9p1e10 6p5lem ) ABCCDEFGHIJK $.

  $( Obsolete proof of ~ 9p2e11 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  9p2e11OLD $p |- ( 9 + 2 ) = ; 1 1 $=
    ( c9 c2 c1 cc0 9nn0 1nn0 0nn0 df-2 1e0p1 c10 caddc co cdc df-10OLD dec10OLD
    eqtr3i 6p5lem ) ABCCDEFGHIJACKLCDMNOPQ $.

  $( 9 + 3 = 12.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p3e12 $p |- ( 9 + 3 ) = ; 1 2 $=
    ( c9 c3 c2 c1 9nn0 2nn0 1nn0 df-3 df-2 9p2e11 6p5lem ) ABCCDEFGHIJK $.

  $( 9 + 4 = 13.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p4e13 $p |- ( 9 + 4 ) = ; 1 3 $=
    ( c9 c4 c3 c2 9nn0 3nn0 2nn0 df-4 df-3 9p3e12 6p5lem ) ABCCDEFGHIJK $.

  $( 9 + 5 = 14.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p5e14 $p |- ( 9 + 5 ) = ; 1 4 $=
    ( c9 c5 c4 c3 9nn0 4nn0 3nn0 df-5 df-4 9p4e13 6p5lem ) ABCCDEFGHIJK $.

  $( 9 + 6 = 15.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p6e15 $p |- ( 9 + 6 ) = ; 1 5 $=
    ( c9 c6 c5 c4 9nn0 5nn0 4nn0 df-6 df-5 9p5e14 6p5lem ) ABCCDEFGHIJK $.

  $( 9 + 7 = 16.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p7e16 $p |- ( 9 + 7 ) = ; 1 6 $=
    ( c9 c7 c6 c5 9nn0 6nn0 5nn0 df-7 df-6 9p6e15 6p5lem ) ABCCDEFGHIJK $.

  $( 9 + 8 = 17.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p8e17 $p |- ( 9 + 8 ) = ; 1 7 $=
    ( c9 c8 c7 c6 9nn0 7nn0 6nn0 df-8 df-7 9p7e16 6p5lem ) ABCCDEFGHIJK $.

  $( 9 + 9 = 18.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9p9e18 $p |- ( 9 + 9 ) = ; 1 8 $=
    ( c9 c8 c7 9nn0 8nn0 7nn0 df-9 df-8 9p8e17 6p5lem ) AABBCDEFGHIJ $.

  $( 10 + 10 = 20.  (Contributed by Mario Carneiro, 19-Apr-2015.)  (Revised by
     AV, 6-Sep-2021.) $)
  10p10e20 $p |- ( ; 1 0 + ; 1 0 ) = ; 2 0 $=
    ( c1 cc0 c2 cdc 1nn0 0nn0 eqid 1p1e2 00id decadd ) ABABCBABDZKEFEFKGZLHIJ
    $.

  $( Obsolete version of ~ 10p10e20 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  10p10e20OLD $p |- ( 10 + 10 ) = ; 2 0 $=
    ( c1 cc0 c2 c10 1nn0 0nn0 dec10OLD 1p1e2 00id decadd ) ABABCBDDEFEFGGHIJ $.

  $( 10 - 1 = 9.  (Contributed by AV, 6-Sep-2021.) $)
  10m1e9 $p |- ( ; 1 0 - 1 ) = 9 $=
    ( c1 cc0 cdc c9 9cn ax-1cn caddc co 9p1e10 eqcomi mvrraddi ) ABCZDAEFDAGHLI
    JK $.

  ${
    4t3lem.1 $e |- A e. NN0 $.
    4t3lem.2 $e |- B e. NN0 $.
    4t3lem.3 $e |- C = ( B + 1 ) $.
    4t3lem.4 $e |- ( A x. B ) = D $.
    4t3lem.5 $e |- ( D + A ) = E $.
    $( Lemma for ~ 4t3e12 and related theorems.  (Contributed by Mario
       Carneiro, 19-Apr-2015.) $)
    4t3lem $p |- ( A x. C ) = E $=
      ( cmul co c1 caddc oveq2i nn0cni ax-1cn adddii mulid1i eqtri oveq12i ) AC
      KLABMNLZKLZECUBAKHOUCDANLZEUCABKLZAMKLZNLUDABMAFPZBGPQRUEDUFANIAUGSUATJTT
      $.
  $}

  $( 4 times 3 equals 12.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  4t3e12 $p |- ( 4 x. 3 ) = ; 1 2 $=
    ( c4 c2 c3 c8 c1 cdc 4nn0 2nn0 df-3 4t2e8 8p4e12 4t3lem ) ABCDEBFGHIJKL $.

  $( 4 times 4 equals 16.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  4t4e16 $p |- ( 4 x. 4 ) = ; 1 6 $=
    ( c4 c3 c1 c2 cdc c6 4nn0 3nn0 df-4 4t3e12 1nn0 2nn0 4cn 2cn 4p2e6 addcomli
    eqid decaddi 4t3lem ) ABACDEZCFEGHIJCDFTAKLGTQADFMNOPRS $.

  $( 5 times 2 equals 10.  (Contributed by NM, 5-Feb-2007.)  (Revised by AV,
     4-Sep-2021.) $)
  5t2e10 $p |- ( 5 x. 2 ) = ; 1 0 $=
    ( c5 c1 c2 cc0 cdc 5nn0 1nn0 df-2 5cn mulid1i 5p5e10 4t3lem ) ABCABDEFGHAIJ
    KL $.

  $( 5 times 3 equals 15.  (Contributed by Mario Carneiro, 19-Apr-2015.)
     (Revised by AV, 6-Sep-2021.) $)
  5t3e15 $p |- ( 5 x. 3 ) = ; 1 5 $=
    ( c5 c2 c3 c1 cc0 cdc 5nn0 2nn0 df-3 5t2e10 dec10p 4t3lem ) ABCDEFDAFGHIJAK
    L $.

  $( Obsolete proof of ~ 5t3e15 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  5t3e15OLD $p |- ( 5 x. 3 ) = ; 1 5 $=
    ( c5 c2 c3 c10 c1 cdc 5nn0 2nn0 df-3 5t2e10OLD dec10pOLD 4t3lem ) ABCDEAFGH
    IJAKL $.

  $( 5 times 4 equals 20.  (Contributed by Mario Carneiro, 19-Apr-2015.)
     (Revised by AV, 6-Sep-2021.) $)
  5t4e20 $p |- ( 5 x. 4 ) = ; 2 0 $=
    ( c5 c3 c4 c1 cdc c2 5nn0 3nn0 df-4 5t3e15 1nn0 eqid 1p1e2 5p5e10 decaddci2
    cc0 4t3lem ) ABCDAEZFPEGHIJDAFRAKGGRLMNOQ $.

  $( Obsolete proof of ~ 5t4e20 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  5t4e20OLD $p |- ( 5 x. 4 ) = ; 2 0 $=
    ( c5 c3 c4 c1 cdc c2 cc0 5nn0 3nn0 df-4 5t3e15 1nn0 eqid 1p1e2 decaddci2OLD
    5p5e10OLD 4t3lem ) ABCDAEZFGEHIJKDAFRALHHRMNPOQ $.

  $( 5 times 5 equals 25.  (Contributed by Mario Carneiro, 19-Apr-2015.)
     (Revised by AV, 6-Sep-2021.) $)
  5t5e25 $p |- ( 5 x. 5 ) = ; 2 5 $=
    ( c5 c4 c1 cc0 cdc c2 cmul co 5nn0 4nn0 df-5 5t4e20 2nn0 dec0u eqtr4i caddc
    dfdec10 eqcomi 4t3lem ) ABACDEFGHZFAEZIJKABGHFDETLFMNOUATAPHFAQRS $.

  $( Obsolete proof of ~ 5t5e25 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  5t5e25OLD $p |- ( 5 x. 5 ) = ; 2 5 $=
    ( c5 c4 c10 c2 cmul co cdc 5nn0 4nn0 df-5 5t4e20 2nn0 dec0uOLD eqtr4i caddc
    cc0 dfdecOLD eqcomi 4t3lem ) ABACDEFZDAGZHIJABEFDPGTKDLMNUATAOFDAQRS $.

  $( 6 times 2 equals 12.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  6t2e12 $p |- ( 6 x. 2 ) = ; 1 2 $=
    ( c6 c2 cmul co caddc c1 cdc 6cn times2i 6p6e12 eqtri ) ABCDAAEDFBGAHIJK $.

  $( 6 times 3 equals 18.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  6t3e18 $p |- ( 6 x. 3 ) = ; 1 8 $=
    ( c6 c2 c3 c1 cdc c8 6nn0 2nn0 df-3 6t2e12 1nn0 eqid 6cn 2cn 6p2e8 addcomli
    decaddi 4t3lem ) ABCDBEZDFEGHIJDBFSAKHGSLABFMNOPQR $.

  $( 6 times 4 equals 24.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  6t4e24 $p |- ( 6 x. 4 ) = ; 2 4 $=
    ( c6 c3 c4 c1 c8 cdc 6nn0 3nn0 df-4 6t3e18 1nn0 8nn0 eqid 1p1e2 4nn0 8p6e14
    c2 decaddci 4t3lem ) ABCDEFZQCFGHIJDECQTAKLGTMNOPRS $.

  $( 6 times 5 equals 30.  (Contributed by Mario Carneiro, 19-Apr-2015.)
     (Revised by AV, 6-Sep-2021.) $)
  6t5e30 $p |- ( 6 x. 5 ) = ; 3 0 $=
    ( c6 c4 c5 c2 cdc c3 cc0 6nn0 4nn0 df-5 6t4e24 2nn0 2p1e3 c1 6cn 4cn 6p4e10
    eqid addcomli decaddci2 4t3lem ) ABCDBEZFGEHIJKDBFUBALIHUBRMABNGEOPQSTUA $.

  $( Obsolete proof of ~ 6t5e30 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  6t5e30OLD $p |- ( 6 x. 5 ) = ; 3 0 $=
    ( c6 c4 c5 c2 cdc c3 6nn0 4nn0 df-5 6t4e24 2nn0 eqid 2p1e3 nn0cni 6p4e10OLD
    cc0 c10 addcomli decaddci2OLD 4t3lem ) ABCDBEZFPEGHIJDBFUAAKHGUALMABQAGNBHN
    ORST $.

  $( 6 times 6 equals 36.  (Contributed by Mario Carneiro, 19-Apr-2015.)
     (Revised by AV, 6-Sep-2021.) $)
  6t6e36 $p |- ( 6 x. 6 ) = ; 3 6 $=
    ( c6 c5 c1 cc0 cdc c3 cmul co 6nn0 5nn0 df-6 6t5e30 3nn0 dec0u eqtr4i caddc
    dfdec10 eqcomi 4t3lem ) ABACDEFGHZFAEZIJKABGHFDETLFMNOUATAPHFAQRS $.

  $( Obsolete proof of ~ 6t6e36 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  6t6e36OLD $p |- ( 6 x. 6 ) = ; 3 6 $=
    ( c6 c5 c10 c3 cmul co cdc 6nn0 5nn0 df-6 6t5e30 3nn0 dec0uOLD eqtr4i caddc
    cc0 dfdecOLD eqcomi 4t3lem ) ABACDEFZDAGZHIJABEFDPGTKDLMNUATAOFDAQRS $.

  $( 7 times 2 equals 14.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7t2e14 $p |- ( 7 x. 2 ) = ; 1 4 $=
    ( c7 c2 cmul co caddc c1 c4 cdc 7cn times2i 7p7e14 eqtri ) ABCDAAEDFGHAIJKL
    $.

  $( 7 times 3 equals 21.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7t3e21 $p |- ( 7 x. 3 ) = ; 2 1 $=
    ( c7 c2 c3 c1 c4 7nn0 2nn0 df-3 7t2e14 1nn0 4nn0 eqid 1p1e2 nn0cni addcomli
    cdc 7p4e11 decaddci 4t3lem ) ABCDEPZBDPFGHIDEDBTAJKFTLMJAEDDPAFNEKNQORS $.

  $( 7 times 4 equals 28.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7t4e28 $p |- ( 7 x. 4 ) = ; 2 8 $=
    ( c7 c3 c4 c2 c1 cdc c8 7nn0 3nn0 df-4 7t3e21 2nn0 1nn0 7cn ax-1cn addcomli
    eqid 7p1e8 decaddi 4t3lem ) ABCDEFZDGFHIJKDEGUAALMHUAQAEGNORPST $.

  $( 7 times 5 equals 35.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7t5e35 $p |- ( 7 x. 5 ) = ; 3 5 $=
    ( c7 c4 c5 c2 c8 cdc 7nn0 4nn0 df-5 7t4e28 2nn0 8nn0 eqid 2p1e3 5nn0 8p7e15
    c3 decaddci 4t3lem ) ABCDEFZQCFGHIJDECQTAKLGTMNOPRS $.

  $( 7 times 6 equals 42.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7t6e42 $p |- ( 7 x. 6 ) = ; 4 2 $=
    ( c7 c5 c6 c3 cdc c4 c2 7nn0 5nn0 df-6 7t5e35 3nn0 eqid 3p1e4 nn0cni 7p5e12
    2nn0 c1 addcomli decaddci 4t3lem ) ABCDBEZFGEHIJKDBGFUBALIHUBMNQABRGEAHOBIO
    PSTUA $.

  $( 7 times 7 equals 49.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  7t7e49 $p |- ( 7 x. 7 ) = ; 4 9 $=
    ( c7 c6 c4 c2 cdc c9 7nn0 6nn0 df-7 7t6e42 4nn0 2nn0 7cn 2cn 7p2e9 addcomli
    eqid decaddi 4t3lem ) ABACDEZCFEGHIJCDFTAKLGTQADFMNOPRS $.

  $( 8 times 2 equals 16.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8t2e16 $p |- ( 8 x. 2 ) = ; 1 6 $=
    ( c8 c2 cmul co caddc c1 c6 cdc 8cn times2i 8p8e16 eqtri ) ABCDAAEDFGHAIJKL
    $.

  $( 8 times 3 equals 24.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8t3e24 $p |- ( 8 x. 3 ) = ; 2 4 $=
    ( c8 c2 c3 c1 c6 cdc 8nn0 2nn0 df-3 8t2e16 1nn0 6nn0 eqid 1p1e2 4nn0 nn0cni
    c4 8p6e14 addcomli decaddci 4t3lem ) ABCDEFZBQFGHIJDEQBUBAKLGUBMNOAEDQFAGPE
    LPRSTUA $.

  $( 8 times 4 equals 32.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8t4e32 $p |- ( 8 x. 4 ) = ; 3 2 $=
    ( c8 c3 c4 c2 8nn0 3nn0 df-4 8t3e24 2nn0 4nn0 eqid 2p1e3 c1 nn0cni addcomli
    cdc 8p4e12 decaddci 4t3lem ) ABCDCPZBDPEFGHDCDBTAIJETKLIACMDPAENCJNQORS $.

  $( 8 times 5 equals 40.  (Contributed by Mario Carneiro, 19-Apr-2015.)
     (Revised by AV, 6-Sep-2021.) $)
  8t5e40 $p |- ( 8 x. 5 ) = ; 4 0 $=
    ( c8 c4 c5 c3 c2 cdc cc0 8nn0 4nn0 df-5 8t4e32 3nn0 2nn0 eqid 3p1e4 8cn 2cn
    c1 8p2e10 addcomli decaddci2 4t3lem ) ABCDEFZBGFHIJKDEBUCALMHUCNOAERGFPQSTU
    AUB $.

  $( Obsolete proof of ~ 8t5e40 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  8t5e40OLD $p |- ( 8 x. 5 ) = ; 4 0 $=
    ( c8 c4 c5 c3 c2 cdc cc0 8nn0 4nn0 df-5 8t4e32 3nn0 2nn0 eqid 3p1e4 c10 8cn
    2cn 8p2e10OLD addcomli decaddci2OLD 4t3lem ) ABCDEFZBGFHIJKDEBUCALMHUCNOAEP
    QRSTUAUB $.

  $( 8 times 6 equals 48.  (Contributed by Mario Carneiro, 19-Apr-2015.)
     (Revised by AV, 6-Sep-2021.) $)
  8t6e48 $p |- ( 8 x. 6 ) = ; 4 8 $=
    ( c8 c5 c6 c1 cc0 cdc c4 cmul 8nn0 5nn0 df-6 8t5e40 4nn0 dec0u eqtr4i caddc
    co dfdec10 eqcomi 4t3lem ) ABCDEFGHQZGAFZIJKABHQGEFUALGMNOUBUAAPQGARST $.

  $( Obsolete proof of ~ 8t6e48 as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 19-Apr-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  8t6e48OLD $p |- ( 8 x. 6 ) = ; 4 8 $=
    ( c8 c5 c6 c10 c4 cmul co cdc 8nn0 5nn0 df-6 cc0 8t5e40 4nn0 dec0uOLD caddc
    eqtr4i dfdecOLD eqcomi 4t3lem ) ABCDEFGZEAHZIJKABFGELHUAMENOQUBUAAPGEARST
    $.

  $( 8 times 7 equals 56.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8t7e56 $p |- ( 8 x. 7 ) = ; 5 6 $=
    ( c8 c6 c7 c4 cdc c5 8nn0 6nn0 df-7 8t6e48 4nn0 eqid 8p8e16 decaddci 4t3lem
    4p1e5 ) ABCDAEZFBEGHIJDABFQAKGGQLPHMNO $.

  $( 8 times 8 equals 64.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  8t8e64 $p |- ( 8 x. 8 ) = ; 6 4 $=
    ( c8 c7 c5 c6 cdc c4 8nn0 7nn0 df-8 8t7e56 5nn0 6nn0 eqid 5p1e6 4nn0 nn0cni
    c1 8p6e14 addcomli decaddci 4t3lem ) ABACDEZDFEGHIJCDFDUBAKLGUBMNOADQFEAGPD
    LPRSTUA $.

  $( 9 times 2 equals 18.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t2e18 $p |- ( 9 x. 2 ) = ; 1 8 $=
    ( c9 c2 cmul co caddc c1 c8 cdc 9cn times2i 9p9e18 eqtri ) ABCDAAEDFGHAIJKL
    $.

  $( 9 times 3 equals 27.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t3e27 $p |- ( 9 x. 3 ) = ; 2 7 $=
    ( c9 c2 c3 c1 c8 cdc 9nn0 2nn0 df-3 9t2e18 1nn0 8nn0 eqid 1p1e2 7nn0 nn0cni
    c7 9p8e17 addcomli decaddci 4t3lem ) ABCDEFZBQFGHIJDEQBUBAKLGUBMNOAEDQFAGPE
    LPRSTUA $.

  $( 9 times 4 equals 36.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t4e36 $p |- ( 9 x. 4 ) = ; 3 6 $=
    ( c9 c3 c4 c2 c7 cdc 9nn0 3nn0 df-4 9t3e27 2nn0 7nn0 eqid 2p1e3 6nn0 nn0cni
    c6 c1 9p7e16 addcomli decaddci 4t3lem ) ABCDEFZBQFGHIJDEQBUCAKLGUCMNOAERQFA
    GPELPSTUAUB $.

  $( 9 times 5 equals 45.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t5e45 $p |- ( 9 x. 5 ) = ; 4 5 $=
    ( c9 c4 c5 c3 c6 cdc 9nn0 4nn0 df-5 9t4e36 3nn0 6nn0 eqid 3p1e4 5nn0 nn0cni
    c1 9p6e15 addcomli decaddci 4t3lem ) ABCDEFZBCFGHIJDECBUBAKLGUBMNOAEQCFAGPE
    LPRSTUA $.

  $( 9 times 6 equals 54.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t6e54 $p |- ( 9 x. 6 ) = ; 5 4 $=
    ( c9 c5 c6 cdc 9nn0 5nn0 df-6 9t5e45 4nn0 eqid 4p1e5 nn0cni 9p5e14 addcomli
    c4 c1 decaddci 4t3lem ) ABCOBDZBODEFGHOBOBSAIFESJKIABPODAELBFLMNQR $.

  $( 9 times 7 equals 63.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t7e63 $p |- ( 9 x. 7 ) = ; 6 3 $=
    ( c9 c6 c7 c5 c4 cdc 9nn0 6nn0 df-7 9t6e54 5nn0 4nn0 eqid 5p1e6 3nn0 nn0cni
    c3 c1 9p4e13 addcomli decaddci 4t3lem ) ABCDEFZBQFGHIJDEQBUCAKLGUCMNOAERQFA
    GPELPSTUAUB $.

  $( 9 times 8 equals 72.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t8e72 $p |- ( 9 x. 8 ) = ; 7 2 $=
    ( c9 c7 c8 c6 c3 cdc c2 9nn0 7nn0 df-8 9t7e63 6nn0 3nn0 eqid 6p1e7 2nn0 9cn
    c1 3cn 9p3e12 addcomli decaddci 4t3lem ) ABCDEFZBGFHIJKDEGBUDALMHUDNOPAERGF
    QSTUAUBUC $.

  $( 9 times 9 equals 81.  (Contributed by Mario Carneiro, 19-Apr-2015.) $)
  9t9e81 $p |- ( 9 x. 9 ) = ; 8 1 $=
    ( c9 c8 c7 c2 cdc c1 9nn0 8nn0 df-9 9t8e72 7nn0 2nn0 eqid 7p1e8 1nn0 9p2e11
    9cn 2cn addcomli decaddci 4t3lem ) ABACDEZBFEGHIJCDFBUBAKLGUBMNOADFFEQRPSTU
    A $.

  $( 9 times 11 equals 99.  (Contributed by AV, 14-Jun-2021.)  (Revised by AV,
     6-Sep-2021.) $)
  9t11e99 $p |- ( 9 x. ; 1 1 ) = ; 9 9 $=
    ( c9 c1 cc0 cdc cmul co caddc 9cn 10nn0 nn0cni ax-1cn mulcli adddii mulid1i
    oveq2i mulcomi eqtri oveq12i dfdec10 3eqtr4i ) ABCDZBEFZBGFZEFZUAAEFZAGFZAB
    BDZEFAADUDAUBEFZABEFZGFUFAUBBHUABUAIJZKLKMUHUEUIAGUHAUAEFUEUBUAAEUAUJNOAUAH
    UJPQAHNRQUGUCAEBBSOAAST $.

  $( Obsolete proof of ~ 9t11e99 as of 6-Sep-2021.  (Contributed by AV,
     14-Jun-2021.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  9t11e99OLD $p |- ( 9 x. ; 1 1 ) = ; 9 9 $=
    ( c9 c10 c1 cmul co caddc cdc 9cn 10nnOLD nncni ax-1cn mulcli adddii oveq2i
    mulid1i mulcomi eqtri oveq12i dfdecOLD 3eqtr4i ) ABCDEZCFEZDEZBADEZAFEZACCG
    ZDEAAGUCAUADEZACDEZFEUEAUACHBCBIJZKLKMUGUDUHAFUGABDEUDUABADBUIONABHUIPQAHOR
    QUFUBADCCSNAAST $.

  $( 9 is less than 10.  (Contributed by Mario Carneiro, 8-Feb-2015.)  (Revised
     by AV, 8-Sep-2021.) $)
  9lt10 $p |- 9 < ; 1 0 $=
    ( c9 c1 caddc co cc0 cdc clt 9re ltp1i 9p1e10 breqtri ) AABCDBEFGAHIJK $.

  $( 8 is less than 10.  (Contributed by Mario Carneiro, 8-Feb-2015.)  (Revised
     by AV, 8-Sep-2021.) $)
  8lt10 $p |- 8 < ; 1 0 $=
    ( c8 c9 clt wbr c1 cc0 cdc 8lt9 9lt10 8re 9re 10re lttri mp2an ) ABCDBEFGZC
    DAOCDHIABOJKLMN $.

  $( 7 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.)
     (Revised by AV, 8-Sep-2021.) $)
  7lt10 $p |- 7 < ; 1 0 $=
    ( c7 c8 clt wbr c1 cc0 cdc 7lt8 8lt10 7re 8re 10re lttri mp2an ) ABCDBEFGZC
    DAOCDHIABOJKLMN $.

  $( 6 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.)
     (Revised by AV, 8-Sep-2021.) $)
  6lt10 $p |- 6 < ; 1 0 $=
    ( c6 c7 clt wbr c1 cc0 cdc 6lt7 7lt10 6re 7re 10re lttri mp2an ) ABCDBEFGZC
    DAOCDHIABOJKLMN $.

  $( 5 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.)
     (Revised by AV, 8-Sep-2021.) $)
  5lt10 $p |- 5 < ; 1 0 $=
    ( c5 c6 clt wbr c1 cc0 cdc 5lt6 6lt10 5re 6re 10re lttri mp2an ) ABCDBEFGZC
    DAOCDHIABOJKLMN $.

  $( 4 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.)
     (Revised by AV, 8-Sep-2021.) $)
  4lt10 $p |- 4 < ; 1 0 $=
    ( c4 c5 clt wbr c1 cc0 cdc 4lt5 5lt10 4re 5re 10re lttri mp2an ) ABCDBEFGZC
    DAOCDHIABOJKLMN $.

  $( 3 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.)
     (Revised by AV, 8-Sep-2021.) $)
  3lt10 $p |- 3 < ; 1 0 $=
    ( c3 c4 clt wbr c1 cc0 cdc 3lt4 4lt10 3re 4re 10re lttri mp2an ) ABCDBEFGZC
    DAOCDHIABOJKLMN $.

  $( 2 is less than 10.  (Contributed by Mario Carneiro, 10-Mar-2015.)
     (Revised by AV, 8-Sep-2021.) $)
  2lt10 $p |- 2 < ; 1 0 $=
    ( c2 c3 clt wbr c1 cc0 cdc 2lt3 3lt10 2re 3re 10re lttri mp2an ) ABCDBEFGZC
    DAOCDHIABOJKLMN $.

  $( 1 is less than 10.  (Contributed by NM, 7-Nov-2012.)  (Revised by Mario
     Carneiro, 9-Mar-2015.)  (Revised by AV, 8-Sep-2021.) $)
  1lt10 $p |- 1 < ; 1 0 $=
    ( c1 c2 clt wbr cc0 cdc 1lt2 2lt10 1re 2re 10re lttri mp2an ) ABCDBAEFZCDAN
    CDGHABNIJKLM $.

  ${
    decbin.1 $e |- A e. NN0 $.
    $( Decompose base 4 into base 2.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    decbin0 $p |- ( 4 x. A ) = ( 2 x. ( 2 x. A ) ) $=
      ( c2 cmul co c4 2t2e4 oveq1i 2cn nn0cni mulassi eqtr3i ) CCDEZADEFADECCAD
      EDEMFADGHCCAIIABJKL $.

    $( Decompose base 4 into base 2.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    decbin2 $p |- ( ( 4 x. A ) + 2 ) = ( 2 x. ( ( 2 x. A ) + 1 ) ) $=
      ( c2 cmul co c1 caddc c4 2t1e2 oveq2i nn0cni mulcli ax-1cn adddii decbin0
      2cn oveq1i 3eqtr4ri ) CCADEZDEZCFDEZGETCGECSFGEDEHADEZCGEUACTGIJCSFPCAPAB
      KLMNUBTCGABOQR $.

    $( Decompose base 4 into base 2.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    decbin3 $p |- ( ( 4 x. A ) + 3 ) = ( ( 2 x. ( ( 2 x. A ) + 1 ) ) + 1 ) $=
      ( c2 cmul co c1 caddc c4 c3 4nn0 2nn0 2p1e3 decbin2 eqcomi numsuc ) CCADE
      FGEDEZFGEHADEZIGEACIHPJBKLQCGEPABMNON $.
  $}

  $( Half minus a third.  (Contributed by Scott Fenton, 8-Jul-2015.) $)
  halfthird $p |- ( ( 1 / 2 ) - ( 1 / 3 ) ) = ( 1 / 6 ) $=
    ( c1 c2 cdiv co c3 cmin cmul c6 2cn 3cn 2ne0 subreci ax-1cn 2p1e3 subaddrii
    3ne0 3t2e6 mulcomli oveq12i eqtri ) ABCDAECDFDEBFDZBEGDZCDAHCDBEIJKPLUAAUBH
    CEBAJIMNOEBHJIQRST $.

  $( One fifth minus one sixth.  (Contributed by Scott Fenton, 9-Jan-2017.) $)
  5recm6rec $p |- ( ( 1 / 5 ) - ( 1 / 6 ) ) = ( 1 / ; 3 0 ) $=
    ( c1 c5 cdiv co c6 cmin cmul cc0 cdc 5cn 6cn 5re 5pos gt0ne0ii 6pos subreci
    c3 6re ax-1cn 5p1e6 subaddrii 6t5e30 mulcomli oveq12i eqtri ) ABCDAECDFDEBF
    DZBEGDZCDAQHIZCDBEJKBLMNERONPUFAUGUHCEBAKJSTUAEBUHKJUBUCUDUE $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Upper sets of integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ZZ>= $. $( ` ZZ ` with greater-than-or-equal-to subscript. $)

  $( Extend class notation with the upper integer function.
     Read " ` ZZ>= `` M ` " as "the set of integers greater than or equal to
     ` M ` ." $)
  cuz $a class ZZ>= $.

  ${
    $d j k N $.  $d k M $.
    $( Define a function whose value at ` j ` is the semi-infinite set of
       contiguous integers starting at ` j ` , which we will also call the
       upper integers starting at ` j ` .  Read " ` ZZ>= `` M ` " as "the set
       of integers greater than or equal to ` M ` ."  See ~ uzval for its
       value, ~ uzssz for its relationship to ` ZZ ` , ~ nnuz and ~ nn0uz for
       its relationships to ` NN ` and ` NN0 ` , and ~ eluz1 and ~ eluz2 for
       its membership relations.  (Contributed by NM, 5-Sep-2005.) $)
    df-uz $a |- ZZ>= = ( j e. ZZ |-> { k e. ZZ | j <_ k } ) $.

    $( The value of the upper integers function.  (Contributed by NM,
       5-Sep-2005.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    uzval $p |- ( N e. ZZ -> ( ZZ>= ` N ) = { k e. ZZ | N <_ k } ) $=
      ( vj cv cle wbr cz crab cuz wceq breq1 rabbidv df-uz zex rabex fvmpt ) CB
      CDZADZEFZAGHBREFZAGHGIQBJSTAGQBREKLCAMTAGNOP $.

    $( The domain and range of the upper integers function.  (Contributed by
       Scott Fenton, 8-Aug-2013.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    uzf $p |- ZZ>= : ZZ --> ~P ZZ $=
      ( vj vk cv cle wbr cz crab cpw wcel wral cuz wss ssrab2 elpw2 mpbir rgenw
      wf zex df-uz fmpt mpbi ) ACBCDEZBFGZFHZIZAFJFUDKQUEAFUEUCFLUBBFMUCFRNOPAF
      UDUCKABSTUA $.

    $( Membership in the upper set of integers starting at ` M ` .
       (Contributed by NM, 5-Sep-2005.) $)
    eluz1 $p |- ( M e. ZZ ->
           ( N e. ( ZZ>= ` M ) <-> ( N e. ZZ /\ M <_ N ) ) ) $=
      ( vk cz wcel cuz cfv cv cle wbr crab wa uzval eleq2d breq2 elrab syl6bb )
      ADEZBAFGZEBACHZIJZCDKZEBDEABIJZLRSUBBCAMNUAUCCBDTBAIOPQ $.

    $( Implication of membership in an upper set of integers.  (Contributed by
       NM, 6-Sep-2005.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    eluzel2 $p |- ( N e. ( ZZ>= ` M ) -> M e. ZZ ) $=
      ( cuz cfv wcel cdm cz elfvdm cpw uzf fdmi syl6eleq ) BACDEACFGBACHGGICJKL
      $.

    $( Membership in an upper set of integers.  We use the fact that a
       function's value (under our function value definition) is empty outside
       of its domain to show ` M e. ZZ ` .  (Contributed by NM, 5-Sep-2005.)
       (Revised by Mario Carneiro, 3-Nov-2013.) $)
    eluz2 $p |- ( N e. ( ZZ>= ` M ) <-> ( M e. ZZ /\ N e. ZZ /\ M <_ N ) ) $=
      ( cuz cfv wcel cz cle wbr w3a eluzel2 simp1 wa eluz1 bitrd 3anass syl6bbr
      ibar pm5.21nii ) BACDEZAFEZTBFEZABGHZIZABJTUAUBKTSTUAUBLZLZUCTSUDUEABMTUD
      QNTUAUBOPR $.
  $}

  $( Membership in an earlier upper set of integers.  (Contributed by Thierry
     Arnoux, 8-Oct-2018.) $)
  eluzmn $p |- ( ( M e. ZZ /\ N e. NN0 ) -> M e. ( ZZ>= ` ( M - N ) ) ) $=
    ( cz wcel cn0 wa cmin co cle wbr cuz simpl simpr nn0zd zsubcld caddc nn0red
    cfv zred recnd readdcld cr nn0addge1 sylancom lesub1dd pncand breqtrd eluz2
    syl3anbrc ) ACDZBEDZFZABGHZCDUJUMAIJAUMKRDULABUJUKLZULBUJUKMZNOUNULUMABPHZB
    GHAIULAUPBULAUNSZULABUQULBUOQZUAURUJUKAUBDAUPIJUQABUCUDUEULABULAUQTULBURTUF
    UGUMAUHUI $.

  ${
    eluz.1 $e |- M e. ZZ $.
    $( Membership in an upper set of integers.  (Contributed by NM,
       5-Sep-2005.) $)
    eluz1i $p |- ( N e. ( ZZ>= ` M ) <-> ( N e. ZZ /\ M <_ N ) ) $=
      ( cz wcel cuz cfv cle wbr wa wb eluz1 ax-mp ) ADEBAFGEBDEABHIJKCABLM $.
  $}

  $( An integer in an upper set of integers is an element of an upper set of
     integers with a smaller bound.  (Contributed by Alexander van der Vekens,
     17-Jun-2018.) $)
  eluzuzle $p |- ( ( B e. ZZ /\ B <_ A )
                   -> ( C e. ( ZZ>= ` A ) -> C e. ( ZZ>= ` B ) ) ) $=
    ( cuz cfv wcel cz cle wbr w3a wa eluz2 simpll simpr2 cr zre ad2antrr adantl
    3ad2ant1 3ad2ant2 simplr simpr3 letrd syl3anbrc ex syl5bi ) CADEFAGFZCGFZAC
    HIZJZBGFZBAHIZKZCBDEFZACLUMUJUNUMUJKZUKUHBCHIUNUKULUJMUMUGUHUINUOBACUKBOFUL
    UJBPQUJAOFZUMUGUHUPUIAPSRUJCOFZUMUHUGUQUICPTRUKULUJUAUMUGUHUIUBUCBCLUDUEUF
    $.

  $( A member of an upper set of integers is an integer.  (Contributed by NM,
     6-Sep-2005.) $)
  eluzelz $p |- ( N e. ( ZZ>= ` M ) -> N e. ZZ ) $=
    ( cuz cfv wcel cz cle wbr eluz2 simp2bi ) BACDEAFEBFEABGHABIJ $.

  $( A member of an upper set of integers is a real.  (Contributed by Mario
     Carneiro, 31-Aug-2013.) $)
  eluzelre $p |- ( N e. ( ZZ>= ` M ) -> N e. RR ) $=
    ( cuz cfv wcel eluzelz zred ) BACDEBABFG $.

  $( A member of an upper set of integers is a complex number.  (Contributed by
     Glauco Siliprandi, 29-Jun-2017.) $)
  eluzelcn $p |- ( N e. ( ZZ>= ` M ) -> N e. CC ) $=
    ( cuz cfv wcel eluzelre recnd ) BACDEBABFG $.

  $( Implication of membership in an upper set of integers.  (Contributed by
     NM, 6-Sep-2005.) $)
  eluzle $p |- ( N e. ( ZZ>= ` M ) -> M <_ N ) $=
    ( cuz cfv wcel cz cle wbr eluz2 simp3bi ) BACDEAFEBFEABGHABIJ $.

  $( Membership in an upper set of integers.  (Contributed by NM,
     2-Oct-2005.) $)
  eluz $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
         ( N e. ( ZZ>= ` M ) <-> M <_ N ) ) $=
    ( cz wcel cuz cfv cle wbr eluz1 baibd ) ACDBAEFDBCDABGHABIJ $.

  $( Membership of the least member in an upper set of integers.  (Contributed
     by NM, 2-Sep-2005.) $)
  uzid $p |- ( M e. ZZ -> M e. ( ZZ>= ` M ) ) $=
    ( cz wcel cuz cfv cle wbr wa zre leidd ancli eluz1 mpbird ) ABCZAADECNAAFGZ
    HNONAAIJKAALM $.

  ${
    $d k M $.
    $( The upper integers are all nonempty.  (Contributed by Mario Carneiro,
       16-Jan-2014.) $)
    uzn0 $p |- ( M e. ran ZZ>= -> M =/= (/) ) $=
      ( vk cuz crn wcel cv cfv wceq cz wrex c0 wne cpw wfn uzf ffn fvelrnb mp2b
      wf wb uzid ne0i syl neeq1 syl5ibcom rexlimiv sylbi ) ACDEZBFZCGZAHZBIJZAK
      LZIIMZCSCINUHULTOIUNCPBIACQRUKUMBIUIIEZUJKLZUKUMUOUIUJEUPUIUAUJUIUBUCUJAK
      UDUEUFUG $.
  $}

  $( Transitive law for sets of upper integers.  (Contributed by NM,
     20-Sep-2005.) $)
  uztrn $p |- ( ( M e. ( ZZ>= ` K ) /\ K e. ( ZZ>= ` N ) ) ->
              M e. ( ZZ>= ` N ) ) $=
    ( cuz cfv wcel wa cz cle eluzel2 adantl eluzelz adantr eluzle zletr syl3anc
    wbr wi mp2and eluz2 syl3anbrc ) BADEFZACDEZFZGZCHFZBHFZCBIQZBUCFUDUFUBCAJKZ
    UBUGUDABLMZUECAIQZABIQZUHUDUKUBCANKUBULUDABNMUEUFAHFZUGUKULGUHRUIUDUMUBCALK
    UJCABOPSCBTUA $.

  ${
    uztrn2.1 $e |- Z = ( ZZ>= ` K ) $.
    $( Transitive law for sets of upper integers.  (Contributed by Mario
       Carneiro, 26-Dec-2013.) $)
    uztrn2 $p |- ( ( N e. Z /\ M e. ( ZZ>= ` N ) ) -> M e. Z ) $=
      ( wcel cuz cfv wa eleq2i uztrn ancoms sylanb syl6eleqr ) CDFZBCGHFZIBAGHZ
      DOCQFZPBQFZDQCEJPRSCBAKLMEN $.
  $}

  $( Contraposition law for upper integers.  (Contributed by NM,
     28-Nov-2005.) $)
  uzneg $p |- ( N e. ( ZZ>= ` M ) -> -u M e. ( ZZ>= ` -u N ) ) $=
    ( cuz cfv wcel cneg cle wbr eluzle cz wb eluzel2 eluzelz zre syl2an syl2anc
    cr leneg mpbid znegcl eluz mpbird ) BACDEZAFZBFZCDEZUEUDGHZUCABGHZUGABIUCAJ
    EZBJEZUHUGKZABLZABMZUIAQEBQEUKUJANBNABROPSUCUJUIUFUGKZUMULUJUEJEUDJEUNUIBTA
    TUEUDUAOPUB $.

  ${
    $d k M $.  $d k N $.
    $( An upper set of integers is a subset of all integers.  (Contributed by
       NM, 2-Sep-2005.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    uzssz $p |- ( ZZ>= ` M ) C_ ZZ $=
      ( cuz cdm wcel cfv cz wss cpw uzf ffvelrni elpwid fdmi eleq2s wn c0 ndmfv
      0ss syl6eqss pm2.61i ) ABCZDZABEZFGZUCAFTAFDUBFFFHZABIJKFUDBILMUANUBOFABP
      FQRS $.

    $( Subset relationship for two sets of upper integers.  (Contributed by NM,
       5-Sep-2005.) $)
    uzss $p |- ( N e. ( ZZ>= ` M ) ->
               ( ZZ>= ` N ) C_ ( ZZ>= ` M ) ) $=
      ( vk cuz cfv wcel cv cz cle wbr wa eluzle adantr wi eluzel2 eluzelz eluz1
      jca wb syl zletr 3expa sylan mpand imdistanda 3imtr4d ssrdv ) BADEZFZCBDE
      ZUHUICGZHFZBUKIJZKZULAUKIJZKZUKUJFZUKUHFZUIULUMUOUIULKABIJZUMUOUIUSULABLM
      UIAHFZBHFZKULUSUMKUONZUIUTVAABOZABPZRUTVAULVBABUKUAUBUCUDUEUIVAUQUNSVDBUK
      QTUIUTURUPSVCAUKQTUFUG $.
  $}

  $( Totality of the ordering relation on integers, stated in terms of upper
     integers.  (Contributed by NM, 6-Jul-2005.)  (Revised by Mario Carneiro,
     25-Jun-2013.) $)
  uztric $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
      ( N e. ( ZZ>= ` M ) \/ M e. ( ZZ>= ` N ) ) ) $=
    ( cz wcel wa cuz cfv wo cle wbr cr zre letric syl2an eluz wb ancoms orbi12d
    mpbird ) ACDZBCDZEZBAFGDZABFGDZHABIJZBAIJZHZTAKDBKDUGUAALBLABMNUBUCUEUDUFAB
    OUATUDUFPBAOQRS $.

  $( The upper integers function is one-to-one.  (Contributed by NM,
     12-Dec-2005.) $)
  uz11 $p |- ( M e. ZZ ->
                ( ( ZZ>= ` M ) = ( ZZ>= ` N ) <-> M = N ) ) $=
    ( cz wcel cuz cfv wceq wa eleq2 eluzel2 syl6bi mpan9 cle wbr syl5ibr eluzle
    uzid syl6 cr zre syl5ib anim12d impl ancoms anassrs wb letri3 syl2an mpbird
    adantlr mpdan ex fveq2 impbid1 ) ACDZAEFZBEFZGZABGZUOURUSUOURHZBCDZUSUOAUPD
    ZURVAAQZURVBAUQDZVAUPUQAIZBAJKLUTVAHUSABMNZBAMNZHZUOURVAVHURVAHUOVHURVAUOVH
    URVAVFUOVGURVABUPDZVFVAVIURBUQDBQUPUQBIOABPRURUOVDVGUOVBURVDVCVEUABAPRUBUCU
    DUEUOVAUSVHUFZURUOASDBSDVJVAATBTABUGUHUJUIUKULABEUMUN $.

  $( Membership in the next upper set of integers.  (Contributed by NM,
     12-Sep-2005.) $)
  eluzp1m1 $p |- ( ( M e. ZZ /\
             N e. ( ZZ>= ` ( M + 1 ) ) ) -> ( N - 1 ) e. ( ZZ>= ` M ) ) $=
    ( cz wcel c1 caddc co cuz cfv cmin cle wbr wa peano2zm ad2antrl cr wb eluz1
    zre 1re leaddsub mp3an2 syl2an biimpa anasss jca ex peano2z syl 3imtr4d imp
    ) ACDZBAEFGZHIDZBEJGZAHIDZULBCDZUMBKLZMZUOCDZAUOKLZMZUNUPULUSVBULUSMUTVAUQU
    TULURBNOULUQURVAULUQMURVAULAPDZBPDZURVAQZUQASBSVCEPDVDVETAEBUAUBUCUDUEUFUGU
    LUMCDUNUSQAUHUMBRUIAUORUJUK $.

  $( Strict ordering implied by membership in the next upper set of integers.
     (Contributed by NM, 12-Sep-2005.) $)
  eluzp1l $p |- ( ( M e. ZZ /\
             N e. ( ZZ>= ` ( M + 1 ) ) ) -> M < N ) $=
    ( cz wcel c1 caddc cuz cfv clt wbr cle eluzle adantl eluzelz zltp1le sylan2
    co wa wb mpbird ) ACDZBAEFQZGHDZRABIJZUBBKJZUCUEUAUBBLMUCUABCDUDUESUBBNABOP
    T $.

  $( Membership in the next upper set of integers.  (Contributed by NM,
     5-Oct-2005.) $)
  eluzp1p1 $p |- ( N e. ( ZZ>= ` M ) ->
                       ( N + 1 ) e. ( ZZ>= ` ( M + 1 ) ) ) $=
    ( cz wcel cle wbr w3a c1 caddc co cuz cfv peano2z 3ad2ant1 3ad2ant2 zre 1re
    cr wb eluz2 leadd1 mp3an3 syl2an biimp3a 3jca 3imtr4i ) ACDZBCDZABEFZGZAHIJ
    ZCDZBHIJZCDZUKUMEFZGBAKLDUMUKKLDUJULUNUOUGUHULUIAMNUHUGUNUIBMOUGUHUIUOUGARD
    ZBRDZUIUOSZUHAPBPUPUQHRDURQABHUAUBUCUDUEABTUKUMTUF $.

  ${
    eluzaddi.1 $e |- M e. ZZ $.
    eluzaddi.2 $e |- K e. ZZ $.
    $( Membership in a later upper set of integers.  (Contributed by Paul
       Chapman, 22-Nov-2007.) $)
    eluzaddi $p |- ( N e. ( ZZ>= ` M )
          -> ( N + K ) e. ( ZZ>= ` ( M + K ) ) ) $=
      ( cuz cfv wcel caddc co cz cle wbr eluzelz zaddcl sylancl wa eluz1i zrei
      cr wb zre leadd1 mp3an13 syl biimpa sylbi mp2an sylanbrc ) CBFGHZCAIJZKHZ
      BAIJZUKLMZUKUMFGHUJCKHZAKHZULBCNECAOPUJUOBCLMZQUNBCDRUOUQUNUOCTHZUQUNUAZC
      UBBTHURATHUSBDSAESBCAUCUDUEUFUGUMUKBKHUPUMKHDEBAOUHRUI $.

    $( Membership in an earlier upper set of integers.  (Contributed by Paul
       Chapman, 22-Nov-2007.) $)
    eluzsubi $p |- ( N e. ( ZZ>= ` ( M + K ) )
         -> ( N - K ) e. ( ZZ>= ` M ) ) $=
      ( caddc co cuz cfv wcel cmin cz cle eluzelz zsubcl sylancl eluz1i cr zrei
      wbr wa zaddcl mp2an wb zre leaddsub mp3an12 syl biimpa sylbi sylanbrc ) C
      BAFGZHIJZCAKGZLJZBUNMTZUNBHIJUMCLJZALJZUOULCNECAOPUMUQULCMTZUAUPULCBLJURU
      LLJDEBAUBUCQUQUSUPUQCRJZUSUPUDZCUEBRJARJUTVABDSAESBACUFUGUHUIUJBUNDQUK $.
  $}

  $( Membership in a later upper set of integers.  (Contributed by Jeff Madsen,
     2-Sep-2009.) $)
  eluzadd $p |- ( ( N e. ( ZZ>= ` M ) /\ K e. ZZ ) ->
                                      ( N + K ) e. ( ZZ>= ` ( M + K ) ) ) $=
    ( cuz cfv wcel cz caddc co eluzel2 wa wi cc0 cif eleq2d fveq2d oveq2 elimel
    wceq 0z fveq2 oveq1 imbi12d eleq12d imbi2d eluzaddi dedth2h com12 mpand imp
    ) CBDEZFZAGFZCAHIZBAHIZDEZFZULBGFZUMUQBCJURUMKULUQURUMULUQLCURBMNZDEZFZUNUS
    AHIZDEZFZLVACUMAMNZHIZUSVEHIZDEZFZLBAMMBUSSZULVAUQVDVJUKUTCBUSDUAOVJUPVCUNV
    JUOVBDBUSAHUBPOUCAVESZVDVIVAVKUNVFVCVHAVECHQVKVBVGDAVEUSHQPUDUEVEUSCBMGTRAM
    GTRUFUGUHUIUJ $.

  $( Membership in an earlier upper set of integers.  (Contributed by Jeff
     Madsen, 2-Sep-2009.) $)
  eluzsub $p |- ( ( M e. ZZ /\ K e. ZZ /\ N e. ( ZZ>= ` ( M + K ) ) )
                                          -> ( N - K ) e. ( ZZ>= ` M ) ) $=
    ( cz wcel caddc co cuz cfv cmin wi cc0 cif wceq fveq2d eleq2d imbi12d oveq2
    0z elimel oveq1 fveq2 eleq1d eluzsubi dedth2h 3impia ) BDEZADEZCBAFGZHIZEZC
    AJGZBHIZEZUGUHUKUNKCUGBLMZAFGZHIZEZULUOHIZEZKCUOUHALMZFGZHIZEZCVAJGZUSEZKBA
    LLBUONZUKURUNUTVGUJUQCVGUIUPHBUOAFUAOPVGUMUSULBUOHUBPQAVANZURVDUTVFVHUQVCCV
    HUPVBHAVAUOFROPVHULVEUSAVACJRUCQVAUOCBLDSTALDSTUDUEUF $.

  $( Choices for an element of an upper interval of integers.  (Contributed by
     Jeff Madsen, 2-Sep-2009.) $)
  uzm1 $p |- ( N e. ( ZZ>= ` M ) -> ( N = M \/ ( N - 1 ) e. ( ZZ>= ` M ) ) ) $=
    ( cuz cfv wcel wceq c1 cmin co cle wbr w3a eluzel2 a1d eluzelz peano2zm syl
    wn cz clt wne df-ne eluzle wa zred eluzelre ltlend biimprd mpand syl5bir wb
    zltlem1 syl2anc sylibd 3jcad eluz2 syl6ibr orrd ) BACDZEZBAFZBGHIZUSEZUTVAR
    ZASEZVBSEZAVBJKZLVCUTVDVEVFVGUTVEVDABMZNUTVFVDUTBSEZVFABOZBPQNUTVDABTKZVGVD
    BAUAZUTVKBAUBUTABJKZVLVKABUCUTVKVMVLUDUTABUTAVHUEABUFUGUHUIUJUTVEVIVKVGUKVH
    VJABULUMUNUOAVBUPUQUR $.

  $( The nonnegative difference of integers is a nonnegative integer.
     (Contributed by NM, 4-Sep-2005.) $)
  uznn0sub $p |- ( N e. ( ZZ>= ` M ) -> ( N - M ) e. NN0 ) $=
    ( cuz cfv wcel cz cle wbr w3a cmin co cn0 eluz2 znn0sub biimp3a sylbi ) BAC
    DEAFEZBFEZABGHZIBAJKLEZABMQRSTABNOP $.

  $( Intersection of two upper intervals of integers.  (Contributed by Mario
     Carneiro, 24-Dec-2013.) $)
  uzin $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
    ( ( ZZ>= ` M ) i^i ( ZZ>= ` N ) ) = ( ZZ>= ` if ( M <_ N , N , M ) ) ) $=
    ( cz wcel wa cuz cfv wo cle wbr wceq wss uzss sylib eluzle fveq2d eqtr4d cr
    syl zre cin cif uztric sseqin2 iftrue eluzel2 eluzelz letri3 syl2an syl2anc
    df-ss biantrurd bitr4d biimprcd eqeq1d sylibrd com12 iffalse pm2.61d1 jaoi
    wb ) ACDZBCDZEBAFGZDZABFGZDZHVDVFUAZABIJZBAUBZFGZKZABUCVEVLVGVEVHVFVKVEVFVD
    LVHVFKABMVFVDUDNVEVJBFVEVIVJBKABOVIBAUEZSPQVGVHVDVKVGVDVFLVHVDKBAMVDVFUKNVG
    VJAFVGVIVJAKZVIVGVNVIVGBAKZVNVGVOVIVGVOBAIJZVIEZVIVGVCVBVOVQVAZBAUFBAUGVCBR
    DARDVRVBBTATBAUHUIUJVGVPVIBAOULUMUNVIVJBAVMUOUPUQVIBAURUSPQUTS $.

  $( Choices for an element of an upper interval of integers.  (Contributed by
     Jeff Madsen, 2-Sep-2009.) $)
  uzp1 $p |- ( N e. ( ZZ>= ` M ) -> ( N = M \/ N e. ( ZZ>= ` ( M + 1 ) ) ) ) $=
    ( cuz cfv wcel wceq c1 cmin co wo caddc uzm1 eluzp1p1 eluzelcn ax-1cn npcan
    cc sylancl eleq1d syl5ib orim2d mpd ) BACDZEZBAFZBGHIZUCEZJUEBAGKICDZEZJABL
    UDUGUIUEUGUFGKIZUHEUDUIAUFMUDUJBUHUDBQEGQEUJBFABNOBGPRSTUAUB $.

  $( Nonnegative integers expressed as an upper set of integers.  (Contributed
     by NM, 2-Sep-2005.) $)
  nn0uz $p |- NN0 = ( ZZ>= ` 0 ) $=
    ( vk cn0 cc0 cv cle wbr cz crab cuz nn0zrab wcel wceq 0z uzval ax-mp eqtr4i
    cfv ) BCADEFAGHZCIQZAJCGKSRLMACNOP $.

  $( Positive integers expressed as an upper set of integers.  (Contributed by
     NM, 2-Sep-2005.) $)
  nnuz $p |- NN = ( ZZ>= ` 1 ) $=
    ( vk cn c1 cv cle wbr cz crab cuz cfv nnzrab wcel wceq uzval ax-mp eqtr4i
    1z ) BCADEFAGHZCIJZAKCGLSRMQACNOP $.

  $( A positive integer expressed as a member of an upper set of integers.
     (Contributed by NM, 6-Jun-2006.) $)
  elnnuz $p |- ( N e. NN <-> N e. ( ZZ>= ` 1 ) ) $=
    ( cn c1 cuz cfv nnuz eleq2i ) BCDEAFG $.

  $( A nonnegative integer expressed as a member an upper set of integers.
     (Contributed by NM, 6-Jun-2006.) $)
  elnn0uz $p |- ( N e. NN0 <-> N e. ( ZZ>= ` 0 ) ) $=
    ( cn0 cc0 cuz cfv nn0uz eleq2i ) BCDEAFG $.

  $( An integer is greater than or equal to 2 is a positive integer.
     (Contributed by AV, 3-Nov-2018.) $)
  eluz2nn $p |- ( A e. ( ZZ>= ` 2 ) -> A e. NN ) $=
    ( c2 cuz cfv wcel c1 cn cz cle wbr wi 1z 1le2 eluzuzle mp2an nnuz syl6eleqr
    ) ABCDEZAFCDZGFHEFBIJRASEKLMBFANOPQ $.

  $( If an integer is greater than or equal to 2, then it is a nonnegative
     integer.  (Contributed by AV, 27-Aug-2018.)  (Proof shortened by AV,
     3-Nov-2018.) $)
  eluzge2nn0 $p |- ( N e. ( ZZ>= ` 2 ) -> N e. NN0 ) $=
    ( c2 cuz cfv wcel eluz2nn nnnn0d ) ABCDEAAFG $.

  $( An integer greater than or equal to 2 is not 0.  (Contributed by AV,
     25-May-2020.) $)
  eluz2n0 $p |- ( N e. ( ZZ>= ` 2 ) -> N =/= 0 ) $=
    ( c2 cuz cfv wcel eluz2nn nnne0d ) ABCDEAAFG $.

  $( An integer in the upper set of integers starting at 3 is element of the
     upper set of integers starting at 2.  (Contributed by Alexander van der
     Vekens, 17-Sep-2018.) $)
  uzuzle23 $p |- ( A e. ( ZZ>= ` 3 ) -> A e. ( ZZ>= ` 2 ) ) $=
    ( c2 cz wcel c3 cle wbr cuz cfv wi 2z 2re 3re 2lt3 ltleii eluzuzle mp2an )
    BCDBEFGAEHIDABHIDJKBELMNOEBAPQ $.

  $( If an integer is greater than 3, then it is a positive integer.
     (Contributed by Alexander van der Vekens, 17-Sep-2018.) $)
  eluzge3nn $p |- ( N e. ( ZZ>= ` 3 ) -> N e. NN ) $=
    ( c3 cuz cfv wcel c1 cn cz cle wbr wi 1z 1le3 eluzuzle mp2an elnnuz sylibr
    ) ABCDEZAFCDEZAGEFHEFBIJRSKLMBFANOAPQ $.

  $( An integer greater than or equal to 3 decreased by 2 is a positive
     integer, analogous to ~ uz2m1nn .  (Contributed by Alexander van der
     Vekens, 17-Sep-2018.) $)
  uz3m2nn $p |- ( N e. ( ZZ>= ` 3 ) -> ( N - 2 ) e. NN ) $=
    ( c3 cuz cfv wcel c2 clt wbr cmin co cn cz cle w3a eluz2 2lt3 cr wa wi a1i
    2re 3re zre ltletr syl3anc mpani imp 3adant1 sylbi wb 2nn eluzge3nn sylancr
    nnsub mpbid ) ABCDEZFAGHZAFIJKEZUPBLEZALEZBAMHZNUQBAOUTVAUQUSUTVAUQUTFBGHZV
    AUQPUTFQEZBQEZAQEVBVARUQSVCUTUATVDUTUBTAUCFBAUDUEUFUGUHUIUPFKEAKEUQURUJUKAU
    LFAUNUMUO $.

  $( 1 is an integer greater than or equal to 0.  (Contributed by Alexander van
     der Vekens, 8-Jun-2018.) $)
  1eluzge0 $p |- 1 e. ( ZZ>= ` 0 ) $=
    ( c1 cc0 cuz cfv wcel cz cle wbr 0z 1z 0le1 eluz2 mpbir3an ) ABCDEBFEAFEBAG
    HIJKBALM $.

  $( 2 is an integer greater than or equal to 0.  (Contributed by Alexander van
     der Vekens, 8-Jun-2018.)  (Proof shortened by OpenAI, 25-Mar-2020.) $)
  2eluzge0 $p |- 2 e. ( ZZ>= ` 0 ) $=
    ( c2 cn0 cc0 cuz cfv 2nn0 nn0uz eleqtri ) ABCDEFGH $.

  $( 2 is an integer greater than or equal to 1.  (Contributed by Alexander van
     der Vekens, 8-Jun-2018.) $)
  2eluzge1 $p |- 2 e. ( ZZ>= ` 1 ) $=
    ( c2 c1 cuz cfv wcel cz cle wbr 1z 2z 1le2 eluz2 mpbir3an ) ABCDEBFEAFEBAGH
    IJKBALM $.

  $( The upper integers starting from a natural are a subset of the naturals.
     (Contributed by Scott Fenton, 29-Jun-2013.) $)
  uznnssnn $p |- ( N e. NN -> ( ZZ>= ` N ) C_ NN ) $=
    ( cn wcel cuz cfv c1 wss elnnuz uzss sylbi nnuz syl6sseqr ) ABCZADEZFDEZBMA
    OCNOGAHFAIJKL $.

  ${
    $d m n M $.
    $( Restricted universal quantification in an upper set of integers.
       (Contributed by NM, 9-Sep-2005.) $)
    raluz $p |- ( M e. ZZ -> ( A. n e. ( ZZ>= ` M ) ph <->
               A. n e. ZZ ( M <_ n -> ph ) ) ) $=
      ( cz wcel cv cle wbr wi cuz cfv wa eluz1 imbi1d impexp syl6bb ralbidv2 )
      CDEZACBFZGHZAIZBCJKZDRSUBEZAISDEZTLZAIUDUAIRUCUEACSMNUDTAOPQ $.

    $( Restricted universal quantification in an upper set of integers.
       (Contributed by NM, 9-Sep-2005.) $)
    raluz2 $p |- ( A. n e. ( ZZ>= ` M ) ph <->
               ( M e. ZZ -> A. n e. ZZ ( M <_ n -> ph ) ) ) $=
      ( cuz cfv wral cz wcel cv cle wbr wi w3a eluz2 3anass bitri imbi1i impexp
      wa imbi2i bi2.04 ralbii2 r19.21v ) ABCDEZFCGHZCBIZJKZALZLZBGFUEUHBGFLAUIB
      UDGUFUDHZALUEUFGHZUGSZSZALZUKUILZUJUMAUJUEUKUGMUMCUFNUEUKUGOPQUNUEUKUHLZL
      ZUOUNUEULALZLUQUEULARURUPUEUKUGARTPUEUKUHUAPPUBUEUHBGUCP $.

    $( Restricted existential quantification in an upper set of integers.
       (Contributed by NM, 9-Sep-2005.) $)
    rexuz $p |- ( M e. ZZ -> ( E. n e. ( ZZ>= ` M ) ph <->
               E. n e. ZZ ( M <_ n /\ ph ) ) ) $=
      ( cz wcel cv cle wbr wa cuz cfv eluz1 anbi1d anass syl6bb rexbidv2 ) CDEZ
      ACBFZGHZAIZBCJKZDQRUAEZAIRDEZSIZAIUCTIQUBUDACRLMUCSANOP $.

    $( Restricted existential quantification in an upper set of integers.
       (Contributed by NM, 9-Sep-2005.) $)
    rexuz2 $p |- ( E. n e. ( ZZ>= ` M ) ph <->
               ( M e. ZZ /\ E. n e. ZZ ( M <_ n /\ ph ) ) ) $=
      ( cuz cfv wrex cz wcel cv cle wbr wa eluz2 df-3an bitri anbi1i anass an12
      w3a rexbii2 r19.42v ) ABCDEZFCGHZCBIZJKZALZLZBGFUCUFBGFLAUGBUBGUDUBHZALUC
      UDGHZLZUELZALZUIUGLZUHUKAUHUCUIUESUKCUDMUCUIUENOPULUJUFLZUMUJUEAQUNUCUIUF
      LLUMUCUIUFQUCUIUFROOOTUCUFBGUAO $.

    $( Double existential quantification in an upper set of integers.
       (Contributed by NM, 3-Nov-2005.) $)
    2rexuz $p |- ( E. m E. n e. ( ZZ>= ` m ) ph <->
                  E. m e. ZZ E. n e. ZZ ( m <_ n /\ ph ) ) $=
      ( cv cuz cfv wrex wex cz wcel cle wbr wa rexuz2 exbii df-rex bitr4i ) ACB
      DZEFGZBHRIJRCDKLAMCIGZMZBHTBIGSUABACRNOTBIPQ $.
  $}

  $( Second Peano postulate for an upper set of integers.  (Contributed by NM,
     7-Sep-2005.) $)
  peano2uz $p |- ( N e. ( ZZ>= ` M ) ->
                 ( N + 1 ) e. ( ZZ>= ` M ) ) $=
    ( cz wcel cle wbr w3a c1 caddc co cuz cfv simp1 peano2z 3ad2ant2 zre letrp1
    cr syl3an2 eluz2 syl3an1 3jca 3imtr4i ) ACDZBCDZABEFZGZUDBHIJZCDZAUHEFZGBAK
    LZDUHUKDUGUDUIUJUDUEUFMUEUDUIUFBNOUDARDZUEUFUJAPUEULBRDUFUJBPABQSUAUBABTAUH
    TUC $.

  ${
    peano2uzs.1 $e |- Z = ( ZZ>= ` M ) $.
    $( Second Peano postulate for an upper set of integers.  (Contributed by
       Mario Carneiro, 26-Dec-2013.) $)
    peano2uzs $p |- ( N e. Z -> ( N + 1 ) e. Z ) $=
      ( c1 caddc co wcel cuz cfv peano2uz syl6eleqr eleq2s ) BEFGZCHBAIJZCBOHNO
      CABKDLDM $.
  $}

  $( Reversed second Peano axiom for upper integers.  (Contributed by NM,
     2-Jan-2006.) $)
  peano2uzr $p |- ( ( M e. ZZ /\
             N e. ( ZZ>= ` ( M + 1 ) ) ) -> N e. ( ZZ>= ` M ) ) $=
    ( cz wcel c1 caddc co cuz cfv wa cmin wceq cc eluzelcn ax-1cn npcan sylancl
    adantl eluzp1m1 peano2uz syl eqeltrrd ) ACDZBAEFGZHIDZJZBEKGZEFGZBAHIZUEUHB
    LZUCUEBMDEMDUJUDBNOBEPQRUFUGUIDUHUIDABSAUGTUAUB $.

  ${
    $d j K $.  $d j k M $.  $d j k N $.
    $( Addition closure law for an upper set of integers.  (Contributed by NM,
       4-Jun-2006.) $)
    uzaddcl $p |- ( ( N e. ( ZZ>= ` M ) /\ K e. NN0 ) ->
                   ( N + K ) e. ( ZZ>= ` M ) ) $=
      ( vj vk cn0 wcel cuz caddc co cv wi cc0 c1 wa wceq cc eleq1d oveq2 imbi2d
      cfv eluzelcn ax-1cn addass mp3an3 syl2anr adantr peano2uz adantl eqeltrrd
      nn0cn exp31 a2d addid1d ibir nn0indALT impcom ) AFGCBHUAZGZCAIJZURGZUSCDK
      ZIJZURGZLUSCMIJZURGZLUSCEKZIJZURGZLUSCVGNIJZIJZURGZLUSVALDEAVGFGZUSVIVLVM
      USVIVLVMUSOZVIOVHNIJZVKURVNVOVKPZVIUSCQGZVGQGZVPVMBCUBZVGUKVQVRNQGVPUCCVG
      NUDUEUFUGVIVOURGVNBVHUHUIUJULUMUSVFUSVECURUSCVSUNRUOVBMPZVDVFUSVTVCVEURVB
      MCISRTVBVGPZVDVIUSWAVCVHURVBVGCISRTVBVJPZVDVLUSWBVCVKURVBVJCISRTVBAPZVDVA
      USWCVCUTURVBACISRTUPUQ $.
  $}

  $( The sum of a nonnegative integer and an integer is an integer greater than
     or equal to that integer.  (Contributed by Alexander van der Vekens,
     3-Oct-2018.) $)
  nn0pzuz $p |- ( ( N e. NN0 /\ Z e. ZZ ) -> ( N + Z ) e. ( ZZ>= ` Z ) ) $=
    ( cn0 wcel cz wa caddc co cle wbr cuz cfv simpr nn0z zaddcl sylan nn0addge2
    cr zre ancoms eluz2 syl3anbrc ) ACDZBEDZFUDABGHZEDZBUEIJZUEBKLDUCUDMUCAEDUD
    UFANABOPUDUCUGUDBRDUCUGBSBAQPTBUEUAUB $.

  ${
    $d j m N $.  $d j ps $.  $d j ch $.  $d j th $.  $d j ta $.  $d k ph $.
    $d j k m M $.
    $( Substitutions. $)
    uzind4.1 $e |- ( j = M -> ( ph <-> ps ) ) $.
    uzind4.2 $e |- ( j = k -> ( ph <-> ch ) ) $.
    uzind4.3 $e |- ( j = ( k + 1 ) -> ( ph <-> th ) ) $.
    uzind4.4 $e |- ( j = N -> ( ph <-> ta ) ) $.
    $( Basis. $)
    uzind4.5 $e |- ( M e. ZZ -> ps ) $.
    $( Induction step. $)
    uzind4.6 $e |- ( k e. ( ZZ>= ` M ) -> ( ch -> th ) ) $.
    $( Induction on the upper set of integers that starts at an integer ` M ` .
       The first four hypotheses give us the substitution instances we need,
       and the last two are the basis and the induction step.  (Contributed by
       NM, 7-Sep-2005.) $)
    uzind4 $p |- ( N e. ( ZZ>= ` M ) -> ta ) $=
      ( vm wcel cz cle wbr cuz cfv cv crab eluzel2 eluzelz breq2 elrab sylanbrc
      eluzle wa wi w3a eluz2 biimpri 3expb sylan2b syl uzind3 syl2anc ) IHUAUBZ
      QZHRQZIHPUCZSTZPRUDZQZEHIUEVBIRQHISTZVGHIUFHIUJVEVHPIRVDIHSUGUHUIABCDEFPG
      HIJKLMNVCGUCZVFQZUKVIVAQZCDULVJVCVIRQZHVISTZUKVKVEVMPVIRVDVIHSUGUHVCVLVMV
      KVKVCVLVMUMHVIUNUOUPUQOURUSUT $.
  $}

  ${
    $d j N $.  $d j ps $.  $d j ch $.  $d j th $.  $d j ta $.  $d k ph $.
    $d j k M $.
    $( Basis. $)
    uzind4ALT.5 $e |- ( M e. ZZ -> ps ) $.
    $( Induction step. $)
    uzind4ALT.6 $e |- ( k e. ( ZZ>= ` M ) -> ( ch -> th ) ) $.
    $( Substitutions. $)
    uzind4ALT.1 $e |- ( j = M -> ( ph <-> ps ) ) $.
    uzind4ALT.2 $e |- ( j = k -> ( ph <-> ch ) ) $.
    uzind4ALT.3 $e |- ( j = ( k + 1 ) -> ( ph <-> th ) ) $.
    uzind4ALT.4 $e |- ( j = N -> ( ph <-> ta ) ) $.
    $( Induction on the upper set of integers that starts at an integer ` M ` .
       The last four hypotheses give us the substitution instances we need; the
       first two are the basis and the induction step.  Either ~ uzind4 or
       ~ uzind4ALT may be used; see comment for ~ nnind .  (Contributed by NM,
       7-Sep-2005.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    uzind4ALT $p |- ( N e. ( ZZ>= ` M ) -> ta ) $=
      ( uzind4 ) ABCDEFGHILMNOJKP $.
  $}

  ${
    $d m k j M $.  $d j N $.  $d j m ph $.
    $( Basis. $)
    uzind4s.1 $e |- ( M e. ZZ -> [. M / k ]. ph ) $.
    $( Induction step. $)
    uzind4s.2 $e |- ( k e. ( ZZ>= ` M )
         -> ( ph -> [. ( k + 1 ) / k ]. ph ) ) $.
    $( Induction on the upper set of integers that starts at an integer ` M ` ,
       using explicit substitution.  The hypotheses are the basis and the
       induction step.  (Contributed by NM, 4-Nov-2005.) $)
    uzind4s $p |- ( N e. ( ZZ>= ` M ) -> [. N / k ]. ph ) $=
      ( vj vm wsb wsbc cv c1 caddc co dfsbcq2 sbequ wcel wi nfim imbi12d uzind4
      cuz cfv nfv nfs1v nfsbc1v weq eleq1 sbequ12 oveq1 sbceq1d chvar ) ABGIABC
      JABHIZABHKZLMNZJZABDJGHCDABGCOAGHBPABGUOOABGDOEBKZCUBUCZQZAABUQLMNZJZRZRU
      NURQZUMUPRZRBHVCVDBVCBUDUMUPBABHUEABUOUFSSBHUGZUSVCVBVDUQUNURUHVEAUMVAUPA
      BHUIVEABUTUOUQUNLMUJUKTTFULUA $.
  $}

  ${
    $d k m n M $.  $d m N $.  $d k m n ph $.  $d j k m n $.
    $( Basis. $)
    uzind4s2.1 $e |- ( M e. ZZ -> [. M / j ]. ph ) $.
    $( Induction step. $)
    uzind4s2.2 $e |- ( k e. ( ZZ>= ` M ) ->
                     ( [. k / j ]. ph -> [. ( k + 1 ) / j ]. ph ) ) $.
    $( Induction on the upper set of integers that starts at an integer ` M ` ,
       using explicit substitution.  The hypotheses are the basis and the
       induction step.  Use this instead of ~ uzind4s when ` j ` and ` k ` must
       be distinct in ` [. ( k + 1 ) / j ]. ph ` .  (Contributed by NM,
       16-Nov-2005.) $)
    uzind4s2 $p |- ( N e. ( ZZ>= ` M ) -> [. N / j ]. ph ) $=
      ( vm vn cv wsbc c1 caddc co dfsbcq wi cuz cfv weq oveq1 sbceq1d imbi12d
      vtoclga uzind4 ) ABHJZKABDKABIJZKZABUFLMNZKZABEKHIDEABUEDOABUEUFOABUEUHOA
      BUEEOFABCJZKZABUJLMNZKZPUGUIPCUFDQRCISZUKUGUMUIABUJUFOUNABULUHUJUFLMTUAUB
      GUCUD $.
  $}

  ${
    $d j N $.  $d j ps $.  $d j ch $.  $d j th $.  $d j ta $.  $d k ph $.
    $d j k M $.
    $( Lower bound. $)
    uzind4i.1 $e |- M e. ZZ $.
    $( Substitutions. $)
    uzind4i.2 $e |- ( j = M -> ( ph <-> ps ) ) $.
    uzind4i.3 $e |- ( j = k -> ( ph <-> ch ) ) $.
    uzind4i.4 $e |- ( j = ( k + 1 ) -> ( ph <-> th ) ) $.
    uzind4i.5 $e |- ( j = N -> ( ph <-> ta ) ) $.
    $( Basis. $)
    uzind4i.6 $e |- ps $.
    $( Induction step. $)
    uzind4i.7 $e |- ( k e. ( ZZ>= ` M ) -> ( ch -> th ) ) $.
    $( Induction on the upper integers that start at ` M ` .  The first
       hypothesis specifies the lower bound, the next four give us the
       substitution instances we need, and the last two are the basis and the
       induction step.  (Contributed by NM, 4-Sep-2005.) $)
    uzind4i $p |- ( N e. ( ZZ>= ` M ) -> ta ) $=
      ( cz wcel a1i uzind4 ) ABCDEFGHIKLMNBHQROSPT $.
  $}

  ${
    $d h t n m M $.  $d h j t k m n S $.
    $( Well-ordering principle: any nonempty subset of an upper set of integers
       has the least element.  (Contributed by NM, 8-Oct-2005.) $)
    uzwo $p |- ( ( S C_ ( ZZ>= ` M ) /\ S =/= (/) ) ->
               E. j e. S A. k e. S j <_ k ) $=
      ( vt vn wa cv cle wbr wral wn wcel wceq wi breq1 ralbidv imbi2d cz wb cuz
      vh vm cfv wss c0 wne wrex wal c1 caddc co ssel eluzle ralrimiv adantr a1i
      syl6 uzssz mpan2 eluzelz rspcev expcom con3rr3 ssel2 cr zre letri3 syl2an
      clt zleltp1 peano2re syl ltnle bitrd ancoms anbi2d sylan2 eleq1a ad2antll
      sstr sylbird expd con1 com23 exp32 com34 ralimdva ex sylan9r pm2.43d expl
      imp41 sylani a2d uzind4 adantl sylcom adantrd pm2.61i alrimdv eq0 syl6ibr
      necon1ad imp breq2 cbvralv rexbii sylib ) ADUAUDZUEZAUFUGZGBHZEHZIJZEAKZB
      AUHZXMCHZIJZCAKZBAUHXKXLXQXKXQAUFXKXQLZFHZAMZLZFUIAUFNXKYAYDFXKYAYDYBXJMZ
      XKYAGZYDOYEYFYBXNIJZEAKZYDYFUBHZXNIJZEAKZOYFDXNIJZEAKZOZYFUCHZXNIJZEAKZOY
      FYOUJUKULZXNIJZEAKZOYFYHOUBUCDYBYIDNZYKYMYFUUAYJYLEAYIDXNIPQRYIYONZYKYQYF
      UUBYJYPEAYIYOXNIPQRYIYRNZYKYTYFUUCYJYSEAYIYRXNIPQRYIYBNZYKYHYFUUDYJYGEAYI
      YBXNIPQRYNDSMXKYMYAXKYLEAXKXNAMZXNXJMYLAXJXNUMDXNUNURUOUPUQYOXJMZYFYQYTXK
      UUFASUEZYAYQYTOZXKXJSUEUUGDUSAXJSWAUTUUFYOSMZUUGYAGUUHODYOVAUUIUUGYAUUHUU
      IUUGGZYAGYQYTYAYQYOAMZLZUUJUUHYQUUKXQUUKYQXQXPYQBYOAXMYONXOYPEAXMYOXNIPQV
      BVCVDUUJUULUUHUUJUULGYPYSEAUUIUUGUULUUEYPYSOZUUIUUGUUEUULUUMUUIUUGUUEUULU
      UMOUUIUUGUUEGZGZYPUULYSUUOYPYSLZUUKOUULYSOUUOYPUUPUUKUUOYPUUPGZYOXNNZUUKU
      UNUUIXNSMZUURUUQTASXNVEUUIUUSGZUURYPXNYOIJZGZUUQUUIYOVFMZXNVFMZUURUVBTUUS
      YOVGZXNVGZYOXNVHVIUUTUVAUUPYPUUSUUIUVAUUPTUUSUUIGUVAXNYRVJJZUUPXNYOVKUUSU
      VDYRVFMZUVGUUPTUUIUVFUUIUVCUVHUVEYOVLVMXNYRVNVIVOVPVQVOVRUUEUURUUKOUUIUUG
      XNAYOVSVTWBWCYSUUKWDURWEWFWGWMWHWIWJWKWLVMWNWOWPYAYHYDOXKYHYCXQYCYHXQXPYH
      BYBAXMYBNXOYGEAXMYBXNIPQVBVCVDWQWRYELXKYDYAXKYCYEAXJYBUMVDWSWTWIXAFAXBXCX
      DXEXPXTBAXOXSECAXNXRXMIXFXGXHXI $.

    $( Well-ordering principle: any nonempty subset of an upper set of integers
       has a unique least element.  (Contributed by NM, 8-Oct-2005.) $)
    uzwo2 $p |- ( ( S C_ ( ZZ>= ` M ) /\ S =/= (/) ) ->
               E! j e. S A. k e. S j <_ k ) $=
      ( cuz cfv wss c0 wne cv cle wbr wral wrex wreu uzwo cr cz uzssz zssre
      sstri sstr mpan2 lbreu sylan syldan ) ADEFZGZAHIBJCJKLCAMZBANZUIBAOZABCDP
      UHAQGZUJUKUHUGQGULUGRQDSTUAAUGQUBUCBCAUDUEUF $.
  $}

  ${
    $d x y A $.
    $( Well-ordering principle: any nonempty set of positive integers has a
       least element.  Theorem I.37 (well-ordering principle) of [Apostol]
       p. 34.  (Contributed by NM, 17-Aug-2001.) $)
    nnwo $p |- ( ( A C_ NN /\ A =/= (/) ) -> E. x e. A A. y e. A x <_ y ) $=
      ( cn wss c1 cuz cfv c0 wne cv cle wbr wral wrex nnuz sseq2i uzwo sylanb )
      CDECFGHZECIJAKBKLMBCNACODTCPQCABFRS $.
  $}

  ${
    $d x y w v $.  $d w v A $.
    nnwof.1 $e |- F/_ x A $.
    nnwof.2 $e |- F/_ y A $.
    $( Well-ordering principle: any nonempty set of positive integers has a
       least element.  This version allows ` x ` and ` y ` to be present in
       ` A ` as long as they are effectively not free.  (Contributed by NM,
       17-Aug-2001.)  (Revised by Mario Carneiro, 15-Oct-2016.) $)
    nnwof $p |- ( ( A C_ NN /\ A =/= (/) ) -> E. x e. A A. y e. A x <_ y ) $=
      ( vw vv cn wss c0 wne wa cv cle wbr wral wrex nnwo nfcv nfv nfral ralbidv
      weq breq1 breq2 cbvralf syl6bb cbvrexf sylib ) CHICJKLFMZGMZNOZGCPZFCQAMZ
      BMZNOZBCPZACQFGCRUMUQFACFCSDULAGCDULATUAUQFTFAUCZUMUNUKNOZGCPUQURULUSGCUJ
      UNUKNUDUBUSUPGBCGCSEUSBTUPGTUKUOUNNUEUFUGUHUI $.
  $}

  ${
    $d x y $.  $d y ph $.  $d x ps $.
    nnwos.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Well-ordering principle: any nonempty set of positive integers has a
       least element (schema form).  (Contributed by NM, 17-Aug-2001.) $)
    nnwos $p |- ( E. x e. NN ph ->
                  E. x e. NN ( ph /\ A. y e. NN ( ps -> x <_ y ) ) ) $=
      ( cn crab wa cv wral wrex bitr3i wcel wex wal df-rex df-ral bitri exbii
      wi wss c0 wne cle wbr nfrab1 nfcv nnwof ssrab2 biantrur rabn0 rabid elrab
      imbi1i impexp albii anbi12i anbi2i anass bitr4i 3bitri 3imtr3i ) ACFGZFUA
      ZVCUBUCZHZCIZDIZUDUEZDVCJZCVCKZACFKZABVITZDFJZHZCFKZCDVCACFUFDVCUGUHVFVEV
      LVDVEACFUIUJACFUKLVKVGVCMZVJHZCNVGFMZAHZVHFMZVMTZDOZHZCNZVPVJCVCPVRWDCVQV
      TVJWCACFULVJVHVCMZVITZDOWCVIDVCQWGWBDWGWABHZVITWBWFWHVIABCVHFEUMUNWABVIUO
      RUPRUQSWEVSVOHZCNVPWDWICWDVTVNHWIVNWCVTVMDFQURVSAVNUSLSVOCFPUTVAVB $.
  $}

  ${
    $d x y $.  $d y ph $.  $d x ps $.
    $( Substitutions. $)
    indstr.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Induction step. $)
    indstr.2 $e |- ( x e. NN -> ( A. y e. NN ( y < x -> ps ) -> ph ) ) $.
    $( Strong Mathematical Induction for positive integers (inference schema).
       (Contributed by NM, 17-Aug-2001.) $)
    indstr $p |- ( x e. NN -> ph ) $=
      ( cn wral wn wrex cv cle wbr wi wa wcel pm3.24 clt cr nnre syl2an syl6bbr
      wb lenlt imbi2d con34b ralbidva sylbid anim2d syl6ib mtoi nrex weq notbid
      ancom nnwos mto dfral2 mpbir rspec ) ACGACGHAIZCGJZIVBVABIZCKZDKZLMZNZDGH
      ZOZCGJVICGVDGPZVIAVAOZAQVJVIVAAOVKVJVHAVAVJVHVEVDRMZBNZDGHAVJVGVMDGVJVEGP
      ZOZVGVCVLIZNVMVOVFVPVCVJVDSPVESPVFVPUCVNVDTVETVDVEUDUAUEVLBUFUBUGFUHUIVAA
      UOUJUKULVAVCCDCDUMABEUNUPUQACGURUSUT $.
  $}

  $( Membership in a nonnegative upper set of integers implies membership in
     ` NN0 ` .  (Contributed by Paul Chapman, 22-Jun-2011.) $)
  eluznn0 $p |- ( ( N e. NN0 /\ M e. ( ZZ>= ` N ) ) -> M e. NN0 ) $=
    ( cc0 cn0 nn0uz uztrn2 ) CABDEF $.

  $( Membership in a positive upper set of integers implies membership in
     ` NN ` .  (Contributed by JJ, 1-Oct-2018.) $)
  eluznn $p |- ( ( N e. NN /\ M e. ( ZZ>= ` N ) ) -> M e. NN ) $=
    ( c1 cn nnuz uztrn2 ) CABDEF $.

  $( Two ways to say "an integer greater than or equal to 2."  (Contributed by
     Paul Chapman, 23-Nov-2012.) $)
  eluz2b1 $p |- ( N e. ( ZZ>= ` 2 ) <-> ( N e. ZZ /\ 1 < N ) ) $=
    ( c2 cuz cfv wcel cz cle wbr wa c1 clt 2z eluz1i caddc co zltp1le mpan df-2
    wb 1z breq1i syl6bbr pm5.32i bitr4i ) ABCDEAFEZBAGHZIUEJAKHZIBALMUEUGUFUEUG
    JJNOZAGHZUFJFEUEUGUISTJAPQBUHAGRUAUBUCUD $.

  $( An integer greater than or equal to 2 is greater than 1.  (Contributed by
     AV, 24-May-2020.) $)
  eluz2gt1 $p |- ( N e. ( ZZ>= ` 2 ) -> 1 < N ) $=
    ( c2 cuz cfv wcel cz c1 clt wbr eluz2b1 simprbi ) ABCDEAFEGAHIAJK $.

  $( Two ways to say "an integer greater than or equal to 2."  (Contributed by
     Paul Chapman, 23-Nov-2012.) $)
  eluz2b2 $p |- ( N e. ( ZZ>= ` 2 ) <-> ( N e. NN /\ 1 < N ) ) $=
    ( c2 cuz cfv wcel cz c1 clt wbr wa cn eluz2b1 cle cr 1re zre ltle imdistani
    wi sylancr elnnz1 sylibr simpr jca nnz anim1i impbii bitri ) ABCDEAFEZGAHIZ
    JZAKEZUJJZALUKUMUKULUJUKUIGAMIZJULUIUJUNUIGNEANEUJUNSOAPGAQTRAUAUBUIUJUCUDU
    LUIUJAUEUFUGUH $.

  $( Two ways to say "an integer greater than or equal to 2."  (Contributed by
     Paul Chapman, 23-Nov-2012.) $)
  eluz2b3 $p |- ( N e. ( ZZ>= ` 2 ) <-> ( N e. NN /\ N =/= 1 ) ) $=
    ( c2 cuz cfv wcel cn c1 clt wbr wa wne eluz2b2 nngt1ne1 pm5.32i bitri ) ABC
    DEAFEZGAHIZJPAGKZJALPQRAMNO $.

  $( One less than an integer greater than or equal to 2 is a positive integer.
     (Contributed by Paul Chapman, 17-Nov-2012.) $)
  uz2m1nn $p |- ( N e. ( ZZ>= ` 2 ) -> ( N - 1 ) e. NN ) $=
    ( c2 cuz cfv wcel cz c1 clt wbr wa cmin co cn eluz2b1 wb znnsub mpan biimpa
    1z sylbi ) ABCDEAFEZGAHIZJAGKLMEZANUAUBUCGFEUAUBUCOSGAPQRT $.

  $( 1 is not in ` ( ZZ>= `` 2 ) ` .  (Contributed by Paul Chapman,
     21-Nov-2012.) $)
  1nuz2 $p |- -. 1 e. ( ZZ>= ` 2 ) $=
    ( c1 c2 cuz cfv wcel wne neirr cn eluz2b3 simprbi mto ) ABCDEZAAFZAGLAHEMAI
    JK $.

  $( A positive integer is either 1 or greater than or equal to 2.
     (Contributed by Paul Chapman, 17-Nov-2012.) $)
  elnn1uz2 $p |- ( N e. NN <-> ( N = 1 \/ N e. ( ZZ>= ` 2 ) ) ) $=
    ( c1 wceq c2 cuz cfv wcel wo cn wne wa eluz2b3 orbi2i exmidne ordi mpbiran2
    wi 1nn eleq1 mpbiri pm2.621 ax-mp olc impbii 3bitrri ) ABCZADEFGZHUFAIGZABJ
    ZKZHZUFUHHZUHUGUJUFALMUKULUFUIHABNUFUHUIOPULUHUFUHQULUHQUFUHBIGRABISTUFUHUA
    UBUHUFUCUDUE $.

  $( Closure of multiplication of integers greater than or equal to 2.
     (Contributed by Paul Chapman, 26-Oct-2012.) $)
  uz2mulcl $p |- ( ( M e. ( ZZ>= ` 2 ) /\ N e. ( ZZ>= ` 2 ) ) ->
                   ( M x. N ) e. ( ZZ>= ` 2 ) ) $=
    ( c2 cuz cfv wcel wa cmul co cz c1 clt wbr eluzelz syl2an cr eluz2b1 anim1i
    zre sylbi zmulcl mulgt1 an4s sylanbrc ) ACDEZFZBUEFZGABHIZJFZKUHLMZUHUEFUFA
    JFZBJFZUIUGCANCBNABUAOUFAPFZKALMZGZBPFZKBLMZGZUJUGUFUKUNGUOAQUKUMUNASRTUGUL
    UQGURBQULUPUQBSRTUMUPUNUQUJABUBUCOUHQUD $.

  ${
    $d ph y $.  $d ps x $.  $d x y $.
    indstr2.1 $e |- ( x = 1 -> ( ph <-> ch ) ) $.
    indstr2.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    indstr2.3 $e |- ch $.
    indstr2.4 $e |- ( x e. ( ZZ>= ` 2 ) ->
                      ( A. y e. NN ( y < x -> ps ) -> ph ) ) $.
    $( Strong Mathematical Induction for positive integers (inference schema).
       The first two hypotheses give us the substitution instances we need; the
       last two are the basis and the induction step.  (Contributed by Paul
       Chapman, 21-Nov-2012.) $)
    indstr2 $p |- ( x e. NN -> ph ) $=
      ( cv cn wcel c1 wceq c2 cuz clt wbr wi wb cfv wral elnn1uz2 nnnlt1 adantl
      wo wa wn breq2 adantr mtbird pm2.21d ralrimiva pm5.5 syl bitrd jaoi sylbi
      mpbiri indstr ) ABDEGDJZKLVAMNZVAOPUALZUFEJZVAQRZBSZEKUBZASZVAUCVBVHVCVBV
      HCHVBVHACVBVGVHATVBVFEKVBVDKLZUGZVEBVJVEVDMQRZVIVKUHVBVDUDUEVBVEVKTVIVAMV
      DQUIUJUKULUMVGAUNUOFUPUSIUQURUT $.
  $}

  ${
    $d k M $.
    uzinfi.1 $e |- M e. ZZ $.
    $( Extract the lower bound of an upper set of integers as its infimum.
       (Contributed by NM, 7-Oct-2005.)  (Revised by AV, 4-Sep-2020.) $)
    uzinfi $p |- inf ( ( ZZ>= ` M ) , RR , < ) = M $=
      ( vk cz wcel cuz cfv cr clt cinf wceq wor ltso a1i zre uzid cv wbr wn cle
      w3a wi eluz2 adantr adantl lenltd biimp3a a1d sylbi impcom infmin ax-mp
      wa ) ADEZAFGZHIJAKBUNCHUOAIHILUNMNAOZAPCQZUOEZUNUQAIRSZURUNUQDEZAUQTRZUAZ
      UNUSUBAUQUCVBUSUNUNUTVAUSUNUTUMAUQUNAHEUTUPUDUTUQHEUNUQOUEUFUGUHUIUJUKUL
      $.
  $}

  $( The infimum of the set of positive integers is one.  (Contributed by NM,
     16-Jun-2005.)  (Revised by AV, 5-Sep-2020.) $)
  nninf $p |- inf ( NN , RR , < ) = 1 $=
    ( cn cr clt cinf c1 cuz cfv nnuz infeq1i 1z uzinfi eqtri ) ABCDEFGZBCDEBAMC
    HIEJKL $.

  $( The infimum of the set of nonnegative integers is zero.  (Contributed by
     NM, 16-Jun-2005.)  (Revised by AV, 5-Sep-2020.) $)
  nn0inf $p |- inf ( NN0 , RR , < ) = 0 $=
    ( cn0 cr clt cinf cc0 cuz cfv nn0uz infeq1i 0z uzinfi eqtri ) ABCDEFGZBCDEB
    AMCHIEJKL $.

  ${
    $d A k $.  $d S j k $.
    $( The infimum of a subset of an upper set of integers is less than or
       equal to all members of the subset.  (Contributed by NM, 11-Oct-2005.)
       (Revised by AV, 5-Sep-2020.) $)
    infssuzle $p |- ( ( S C_ ( ZZ>= ` M ) /\ A e. S )
                           -> inf ( S , RR , < ) <_ A ) $=
      ( vj vk cuz cfv wss wcel cv cle wbr wral wrex cr clt cinf c0 wne ne0i cz
      uzwo sylan2 uzssz zssre sstri sstr mpan2 lbinfle 3com23 syl3an1 mpd3an3 )
      BCFGZHZABIZDJEJKLEBMDBNZBOPQAKLZUOUNBRSUPBATBDECUBUCUNBOHZUOUPUQUNUMOHURU
      MUAOCUDUEUFBUMOUGUHURUPUOUQDEABUIUJUKUL $.
  $}

  ${
    $d S j k $.
    $( The infimum of a subset of an upper set of integers belongs to the
       subset.  (Contributed by NM, 11-Oct-2005.)  (Revised by AV,
       5-Sep-2020.) $)
    infssuzcl $p |- ( ( S C_ ( ZZ>= ` M ) /\ S =/= (/) )
                           -> inf ( S , RR , < ) e. S ) $=
      ( vj vk cuz cfv wss c0 wne wa cr cv cle wbr wral wrex clt cinf wcel cz
      uzssz zssre sstri sstr mpan2 adantr uzwo lbinfcl syl2anc ) ABEFZGZAHIZJAK
      GZCLDLMNDAOCAPAKQRASUKUMULUKUJKGUMUJTKBUAUBUCAUJKUDUEUFACDBUGCDAUHUI $.
  $}

  ${
    $d A a b x y z $.
    $( The image under negation of a bounded-above set of reals is bounded
       below.  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    ublbneg $p |- ( E. x e. RR A. y e. A y <_ x ->
                    E. x e. RR A. y e. { z e. RR | -u z e. A } x <_ y ) $=
      ( vb va cv cle wbr wral cr wrex cneg wcel crab breq1 cbvralv wceq ralbidv
      rexbii breq2 cbvrexv bitri renegcl wa wi elrabi negeq eleq1d elrab3 mpcom
      biimpd rspcv adantl wb lenegcon1 sylan2 sylibrd ralrimdva rspcev rexlimiv
      syl syl6an sylbir ) BGZAGZHIZBDJZAKLZEGZFGZHIZEDJZFKLZVFVEHIZBCGZMZDNZCKO
      ZJZAKLZVNVEVKHIZBDJZFKLVIVMWCFKVLWBEBDVJVEVKHPQTWCVHFAKVKVFRWBVGBDVKVFVEH
      UASUBUCVMWAFKVKKNZVKMZKNVMWEVEHIZBVSJZWAVKUDWDVMWFBVSWDVEVSNZUEVMVEMZVKHI
      ZWFWHVMWJUFZWDWHWIDNZWKVEKNZWHWLVRCVEKUGZWMWHWLVRWLCVEKVPVERVQWIDVPVEUHUI
      UJULUKVLWJEWIDVJWIVKHPUMVBUNWHWDWMWFWJUOWNVKVEUPUQURUSVTWGAWEKVFWERVOWFBV
      SVFWEVEHPSUTVCVAVD $.
  $}

  ${
    $d A w z $.
    $( Two ways to express the image under negation of a set of integers.
       (Contributed by Paul Chapman, 21-Mar-2011.) $)
    eqreznegel $p |- ( A C_ ZZ ->
                       { z e. RR | -u z e. A } = { z e. ZZ | -u z e. A } ) $=
      ( vw cz wss cv cneg wcel cr crab wa wi ssel cc recn caddc cc0 negid elrab
      co 0z syl6eqel pm4.71i zrevaddcl syl5bb syl5ib syl6 com23 impd simpr jcad
      a1i zre anim1i impbid1 weq negeq eleq1d 3bitr4g eqrdv ) BDEZCAFZGZBHZAIJZ
      VDADJZVACFZIHZVGGZBHZKZVGDHZVJKZVGVEHVGVFHVAVKVMVAVKVLVJVAVHVJVLVAVJVHVLV
      AVJVIDHZVHVLLBDVIMVHVGNHZVNVLVGOVOVOVGVIPTZDHZKVNVLVOVQVOVPQDVGRUAUBUCVGV
      IUDUEUFUGUHUIVKVJLVAVHVJUJULUKVLVHVJVGUMUNUOVDVJAVGIACUPVCVIBVBVGUQURZSVD
      VJAVGDVRSUSUT $.
  $}

  ${
    $d A w x y z $.
    $( The supremum of a bounded-above set of reals is the negation of the
       infimum of that set's image under negation.  (Contributed by Paul
       Chapman, 21-Mar-2011.)  ( Revised by AV, 13-Sep-2020.) $)
    supminf $p |- ( ( A C_ RR /\ A =/= (/) /\ E. x e. RR A. y e. A y <_ x ) ->
      sup ( A , RR , < ) = -u inf ( { z e. RR | -u z e. A } , RR , < ) ) $=
      ( vw cr wss c0 wne cv cle wbr cneg wcel clt wceq syl2an wb eleq1d recn wa
      wral wrex w3a crab cinf csup negn0 ssrab2 infrenegsup mp3an1 3impa elrabi
      ublbneg adantl ssel2 negeq elrab3 renegcl negnegd 3bitrd supeq1d 3ad2ant1
      syl eqrdav negeqd eqtrd infrecl suprcl cc negcon2 syl2anc mpbid ) DFGZDHI
      ZBJZAJZKLBDUBAFUCZUDZCJZMZDNZCFUEZFOUFZDFOUGZMZPZWEWDMPZVSWDEJZMZWCNZEFUE
      ZFOUGZMZWFVNVOVRWDWNPZVNVOUAZWCHIZVQVPKLBWCUBAFUCZWOVRCDUHZABCDUNZWCFGZWQ
      WRWOWBCFUIZABEWCUJUKQULVSWMWEVNVOWMWEPVRVNFWLDOVNAWLDFVQWLNZVQFNZVNWKEVQF
      UMUODFVQUPXDXCVQDNZRVNXDXCVQMZWCNZXFMZDNZXEWKXGEVQFWIVQPWJXFWCWIVQUQSURXD
      XFFNXGXIRVQUSWBXICXFFVTXFPWAXHDVTXFUQSURVDXDXHVQDXDVQVQTUTSVAUOVEVBVCVFVG
      VSWDFNZWEFNZWGWHRZVNVOVRXJWPWQWRXJVRWSWTXAWQWRXJXBABWCVHUKQULABDVIXJWDVJN
      WEVJNXLXKWDTWETWDWEVKQVLVM $.

    $( If a set of reals is bounded below, it is bounded below by an integer.
       (Contributed by Paul Chapman, 21-Mar-2011.) $)
    lbzbi $p |- ( A C_ RR -> ( E. x e. RR A. y e. A x <_ y <->
                               E. x e. ZZ A. y e. A x <_ y ) ) $=
      ( vz cr wss cv cle wbr wral wrex cz wcel wi wa clt expdimp com23 imp ex
      nfv nfre1 btwnz simpld w3a zre ltleletr syl3an1 expd 3expia syl5 ralrimiv
      ssel2 ralim syl anasss expcom imdistand breq1 ralbidv rspcev syl6 ancomsd
      weq rexlimdv mpdi rexlimd zssre ssrexv ax-mp impbid1 ) CEFZAGZBGZHIZBCJZA
      EKZVPALKZVLVPVRAEVLAUAVPALUBVLVPVMEMZVRVLVPVSVRNVLVPOZVSDGZVMPIZDLKZVRVSW
      CVMWAPIDLKDDVMUCUDVSVTWCVRNZVSVLVPWDVSVLOZVPOWBVRDLWEVPWALMZWBVRNZWEWFVPW
      GWEWBWFVPOZVRWEWBWHVRNWEWBOZWHWFWAVNHIZBCJZOVRWIWFVPWKWEWBWFVPWKNZNWEWFWB
      WLWFWEWBWLNZWFVSVLWMWFVSOZVLOZWBWLWOWBOZVOWJNZBCJWLWPWQBCWOWBVNCMZWQNWOWR
      WBWQWNVLWRWBWQNZVLWROVNEMZWNWSCEVNUMWFVSWTWSWFVSWTUEWBVOWJWFWAEMVSWTWBVOO
      WJNWAUFWAVMVNUGUHUIUJUKQRSULVOWJBCUNUOTUPUQRSURVPWKAWALADVDVOWJBCVMWAVNHU
      SUTVAVBTRVCQVEUPUQVFTRVGLEFVRVQNVHVPALEVIVJVK $.
  $}

  ${
    $d m n w x y z A $.  $d n x B $.  $d x y M $.  $d x Z $.
    $( Any nonempty bounded subset of integers has a supremum in the set.  (The
       proof does not use ~ ax-pre-sup .)  (Contributed by Mario Carneiro,
       21-Apr-2015.) $)
    zsupss $p |- ( ( A C_ ZZ /\ A =/= (/) /\ E. x e. ZZ A. y e. A y <_ x ) ->
                    E. x e. A ( A. y e. A -. x < y /\
                      A. y e. B ( y < x -> E. z e. A y < z ) ) ) $=
      ( vm vn vw cz cv cle wbr wral wrex clt wa wceq wcel cneg zred c0 wn breq1
      wss wne wi cbvralv breq2 ralbidv syl5bb cbvrexv crab cinf cuz cfv simp1rl
      znegcld simp2 simp3 simp1rr rspcv sylc lenegcon1d eluz2 syl3anbrc rabssdv
      cr w3a n0 ssel2 zcnd negnegd simpr eqeltrd negeq eleq1d rspcev syl2anc ex
      wex exlimdv imp sylan2b adantr rabn0 sylibr infssuzcl cbvrabv simprbi syl
      elrab2 ssrab2 sseldi simpll sselda elrab sylanbrc lenegcon2d lenltd mpbid
      infssuzle ralrimiva ralrimivw notbid imbi1d anbi12d syl12anc rexlimdvaa
      syl5bi 3impia ) DIUDZDUAUEZBJZAJZKLZBDMZAINZXNXMOLZUBZBDMZXMXNOLZXMCJZOLZ
      CDNZUFZBEMZPZADNZXQFJZGJZKLZFDMZGINXKXLPZYHXPYLAGIXPYIXNKLZFDMXNYJQZYLXOY
      NBFDXMYIXNKUCUGYOYNYKFDXNYJYIKUHUIUJUKYMYLYHGIYMYJIRZYLPZPZHJZSZDRZHIULZV
      GOUMZSZDRZUUDXMOLZUBZBDMZXMUUDOLZYDUFZBEMZYHYRUUCUUBRZUUEYRUUBYJSZUNUOZUD
      ZUUBUAUEZUULYRUUAHIUUNYRYSIRZUUAVHZUUMIRZUUQUUMYSKLYSUUNRUURYJYPYLYMUUQUU
      AUPZUQYRUUQUUAURZUURYSYJUURYSUVATUURYJUUTTUURUUAYLYTYJKLZYRUUQUUAUSYPYLYM
      UUQUUAUTYKUVBFYTDYIYTYJKUCVAVBVCUUMYSVDVEVFZYRUUAHINZUUPYMUVDYQXLXKYJDRZG
      VTZUVDGDVIXKUVFUVDXKUVEUVDGXKUVEUVDXKUVEPZUUSUUMSZDRZUVDUVGYJDIYJVJZUQUVG
      UVHYJDUVGYJUVGYJUVJVKVLXKUVEVMVNUUAUVIHUUMIYSUUMQYTUVHDYSUUMVOVPVQVRVSWAW
      BWCWDUUAHIWEWFUUBUUMWGVRZUULUUCIRUUEUUMDRZUUEGUUCIUUBYJUUCQUUMUUDDYJUUCVO
      VPUUAUVLHGIYSYJQYTUUMDYSYJVOVPWHWKWIWJZYRUUGBDYRXMDRZPZXMUUDKLUUGUVOUUCXM
      UVOUUCUVOUUBIUUCUUAHIWLYRUULUVNUVKWDWMZTUVOXMYRDIXMXKXLYQWNWOZTZUVOUUOXMS
      ZUUBRZUUCUVSKLYRUUOUVNUVCWDUVOUVSIRUVSSZDRZUVTUVOXMUVQUQUVOUWAXMDUVOXMUVO
      XMUVQVKVLYRUVNVMVNUUAUWBHUVSIYSUVSQYTUWADYSUVSVOVPWPWQUVSUUBUUMXAVRWRUVOX
      MUUDUVRUVOUUDUVOUUCUVPUQTWSWTXBYRUUJBEYRUUEUUJUVMUUEUUIYDYCUUICUUDDYBUUDX
      MOUHVQVSWJXCYGUUHUUKPAUUDDXNUUDQZXTUUHYFUUKUWCXSUUGBDUWCXRUUFXNUUDXMOUCXD
      UIUWCYEUUJBEUWCYAUUIYDXNUUDXMOUHXEUIXFVQXGXHXIXJ $.

    $( The supremum of a bounded-above set of integers is a member of the set.
       (This version of ~ suprzcl avoids ~ ax-pre-sup .)  (Contributed by Mario
       Carneiro, 21-Apr-2015.)  (Revised by Mario Carneiro, 24-Dec-2016.) $)
    suprzcl2 $p |- ( ( A C_ ZZ /\ A =/= (/) /\ E. x e. ZZ A. y e. A y <_ x ) ->
                    sup ( A , RR , < ) e. A ) $=
      ( vz cz wss c0 wne cv cle wbr wral wrex w3a clt wi cr wa wcel wtru zsupss
      wn csup wceq ssel2 zred wor ltso eqsup trud 3expib simpr eleq1 syl5ibrcom
      a1i syl syld rexlimdva 3ad2ant1 mpd ) CEFZCGHZBIZAIZJKBCLAEMZNVDVCOKUBBCL
      ZVCVDOKVCDIOKDCMPBQLZRZACMZCQOUCZCSZABDCQUAVAVBVIVKPVEVAVHVKACVAVDCSZRZVH
      VJVDUDZVKVMVDQSZVHVNPVMVDCEVDUEUFVOVFVGVNVOVFVGNVNPTBDQCVDOQOUGTUHUOUIUJU
      KUPVMVKVNVLVAVLULVJVDCUMUNUQURUSUT $.

    $( The supremum of a bounded-above set of integers is greater than any
       member of the set.  (Contributed by Mario Carneiro, 21-Apr-2015.) $)
    suprzub $p |- ( ( A C_ ZZ /\ E. x e. ZZ A. y e. A y <_ x /\ B e. A ) ->
                    B <_ sup ( A , RR , < ) ) $=
      ( vz cz wss cv cle wbr wral wrex wcel w3a cr clt csup wn syl3anc sseldd
      simp3 wor ltso a1i wi wa simp1 zssre syl6ss c0 wne ne0i syl zsupss ssrexv
      simp2 sylc supub mpd suprzcl2 lenltd mpbird ) CFGZBHZAHZIJBCKAFLZDCMZNZDC
      OPQZIJVIDPJRZVHVGVJVCVFVGUAZVHABEOCDPOPUBVHUCUDVHCOGVEVDPJRBCKVDVEPJVDEHP
      JECLUEBOKUFZACLZVLAOLVHCFOVCVFVGUGZUHUIZVHVCCUJUKZVFVMVNVHVGVPVKCDULUMZVC
      VFVGUPZABECOUNSVLACOUOUQURUSVHDVIVHCODVOVKTVHCOVIVOVHVCVPVFVICMVNVQVRABCU
      TSTVAVB $.

    uzsupss.1 $e |- Z = ( ZZ>= ` M ) $.
    $( Any bounded subset of an upper set of integers has a supremum.
       (Contributed by Mario Carneiro, 22-Jul-2014.)  (Revised by Mario
       Carneiro, 21-Apr-2015.) $)
    uzsupss $p |- ( ( M e. ZZ /\ A C_ Z /\ E. x e. ZZ A. y e. A y <_ x ) ->
                    E. x e. Z ( A. y e. A -. x < y /\
                      A. y e. Z ( y < x -> E. z e. A y < z ) ) ) $=
      ( cz wcel wss cv cle wbr wral wrex clt wn wi wa c0 w3a cuz cfv simpl1 syl
      wceq uzid syl6eleqr simpr raleqdv mpbiri eluzle wb eluzel2 eluzelz cr zre
      ral0 lenlt syl2an syl2anc mpbid eleq2s pm2.21d breq1 notbid ralbidv breq2
      a1i imbi1d anbi12d rspcev syl12anc wne simpl2 uzssz eqsstri syl6ss simpl3
      rgen zsupss syl3anc ssrexv sylc pm2.61dane ) EHIZDFJZBKZAKZLMBDNAHOZUAZWI
      WHPMZQZBDNZWHWIPMZWHCKPMCDOZRZBFNZSZAFOZDTWKDTUFZSZEFIEWHPMZQZBDNZWHEPMZW
      PRZBFNZWTXBEEUBUCZFXBWFEXIIWFWGWJXAUDEUGUEGUHXBXEXDBTNXDBURXBXDBDTWKXAUIU
      JUKXHXBXGBFWHFIXFWPXFQZWHXIFWHXIIZEWHLMZXJEWHULXKWFWHHIZXLXJUMZEWHUNEWHUO
      WFEUPIWHUPIXNXMEUQWHUQEWHUSUTVAVBGVCVDVTVIWSXEXHSAEFWIEUFZWNXEWRXHXOWMXDB
      DXOWLXCWIEWHPVEVFVGXOWQXGBFXOWOXFWPWIEWHPVHVJVGVKVLVMWKDTVNZSZWGWSADOZWTW
      FWGWJXPVOZXQDHJXPWJXRXQDFHXSFXIHGEVPVQVRWKXPUIWFWGWJXPVSABCDFWAWBWSADFWCW
      DWE $.
  $}

  $( A (nonnegative) integer between 1 and 3 must be 1, 2 or 3.  (Contributed
     by Alexander van der Vekens, 13-Sep-2018.) $)
  nn01to3 $p |- ( ( N e. NN0 /\ 1 <_ N /\ N <_ 3 )
                  -> ( N = 1 \/ N = 2 \/ N = 3 ) ) $=
    ( c3 wceq wcel c1 cle wbr w3a c2 wi a1d wn wa wo clt wne cr a1i cz zre df-3
    cn0 w3o 3mix3 nn0re 3ad2ant1 3re simp3 leltned nesym syl6rbb cn orc cuz cfv
    elnnnn0c eluz2b3 eluz2 2a1 wb id leltne syl3an caddc co simpr breq2d biimpa
    2z adantr btwnnz syl3anc pm2.21d exp31 com24 pm2.43i 3ad2ant2 sylbird com12
    pm2.61ine sylbi imp olcd ex sylbir expcom 3adant3 sylbid impcom orcd df-3or
    sylibr pm2.61i ) ABCZAUBDZEAFGZABFGZHZAECZAICZWNUCZJWNXAWRWNWSWTUDKWNLZWRXA
    XBWRMZWSWTNZWNNXAXCXDWNWRXBXDWRXBABOGZXDWRXEBAPXBWRABWOWPAQDZWQAUEUFBQDWRUG
    RWOWPWQUHUIBAUJUKWOWPXEXDJZWQWOWPMAULDZXGAUPXHXGJAEWSXGXHWSXDXEWSWTUMKKXHAE
    PZXGXHXIMAIUNUODZXGAUQXJXEXDXJXEMWTWSXJXEWTXJISDZASDZIAFGZHZXEWTJZIAURXNXOJ
    AIWTXNXEUSXNAIPZXOXNXPIAOGZXOXKIQDXLXFXMXMXQXPUTITATXMVAIAVBVCXLXKXQXOJZXMX
    LXRXLXEXQXLWTXLXEXQXLWTJXLXEMZXQMZXLWTXTXKXQAIEVDVEZOGZXLLXKXTVIRXSXQVFXSYB
    XQXLXEYBXLBYAAOBYACXLUARVGVHVJIAVKVLVMVNVOVPVQVRVSVTWAWBWCWDWEWFVTWEWGWHWIW
    JWSWTWNWKWLWDWM $.

  $( Alternate proof of ~ nn0ge2m1nn :  If a nonnegative integer is greater
     than or equal to two, the integer decreased by 1 is a positive integer.
     This version is proved using ~ eluz2 , a theorem for upper sets of
     integers, which are defined later than the positive and nonnegative
     integers.  This proof is, however, much shorter than the proof of
     ~ nn0ge2m1nn .  (Contributed by Alexander van der Vekens, 1-Aug-2018.)
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  nn0ge2m1nnALT $p |- ( ( N e. NN0 /\ 2 <_ N ) -> ( N - 1 ) e. NN ) $=
    ( cn0 wcel c2 cle wbr wa cuz cfv c1 cmin co cn cz 2z a1i adantr simpr eluz2
    nn0z syl3anbrc uz2m1nn syl ) ABCZDAEFZGZADHICZAJKLMCUFDNCZANCZUEUGUHUFOPUDU
    IUEATQUDUERDASUAAUBUC $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Well-ordering principle for bounded-below sets of integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d n x y z A $.  $d n x y z B $.
    $( Well-ordering principle: any nonempty subset of an upper set of integers
       has a unique least element.  This generalization of ~ uzwo2 allows the
       lower bound ` B ` to be any real number.  See also ~ nnwo and ~ nnwos .
       (Contributed by NM, 12-Nov-2004.)  (Proof shortened by Mario Carneiro,
       2-Oct-2015.)  (Proof shortened by AV, 27-Sep-2020.) $)
    uzwo3 $p |- ( ( B e. RR /\ ( A C_ { z e. ZZ | B <_ z } /\ A =/= (/) ) )
                  -> E! x e. A A. y e. A x <_ y ) $=
      ( vn cr wcel cv cle wbr cz wss wa cneg wral cn adantr syl2anc ralrimiva
      crab c0 wne clt wreu wrex renegcl arch syl cinf wi cuz cfv simplrl nnnegz
      wceq zred simprl simpll nnred simplrr ltnegcon1d simprr ltletrd wb mpbird
      ltled eluz expr rabss adantlr sstrd infssuzcl infssuzle sylan breq2 rspcv
      sylibr sylc uzssz zssre sstri syl6ss sseldd letri3d mpbir2and breq1 eqreu
      ralbidv syl3anc rexlimddv ) EGHZDECIZJKZCLUAZMZDUBUCZNZNZEOZFIZUDKZAIZBIZ
      JKZBDPZADUEZFQWSWTGHZXBFQUFWLXHWREUGRWTFUHUIWSXAQHZXBNZNZDGUDUJZDHZXLXDJK
      ZBDPZXFXCXLUPZUKZADPXGXKDXAOZULUMZMZWQXMXKDWOXSWLWPWQXJUNWLXJWOXSMZWRWLXJ
      NZWNWMXSHZUKZCLPYAYBYDCLYBWMLHZWNYCYBYEWNNZNZYCXRWMJKZYGXRWMYGXRYGXIXRLHZ
      WLXIXBYFUNZXAUOUIZUQZYGWMYBYEWNURZUQZYGXREWMYLWLXJYFUSZYNYGEXAYOYGXAYJUTW
      LXIXBYFVAVBYBYEWNVCVDVGYGYIYEYCYHVEYKYMXRWMVHSVFVITWNCLXSVJVRVKVLZWLWPWQX
      JVADXRVMSZXKXNBDXKXTXDDHXNYPXDDXRVNVOTXKXQADXKXCDHZXFXPXKYRXFNZNZXPXCXLJK
      ZXLXCJKZYTXMXFUUAXKXMYSYQRXKYRXFVCXEUUABXLDXDXLXCJVPVQVSYTXTYRUUBXKXTYSYP
      RXKYRXFURZXCDXRVNSYTXCXLYTDGXCXKDGMYSXKDXSGYPXSLGXRVTWAWBWCZRUUCWDXKXLGHY
      SXKDGXLUUDYQWDRWEWFVITXFXOADXLXPXEXNBDXCXLXDJWGWIWHWJWK $.

    $( There is a unique smallest integer greater than or equal to a given real
       number.  (Contributed by NM, 12-Nov-2004.)  (Revised by Mario Carneiro,
       13-Jun-2014.) $)
    zmin $p |- ( A e. RR ->
                 E! x e. ZZ ( A <_ x /\ A. y e. ZZ ( A <_ y -> x <_ y ) ) ) $=
      ( vz vn cr wcel cv cle wbr cz crab wral wreu wi wa wrex cn wss breq2 arch
      c0 wne clt nnssz ssrexv mpsyl zre ltle sylan2 reximdva mpd sylibr cbvrabv
      rabn0 eqimssi uzwo3 mpanr1 mpdan elrab ralrab anbi12i anass bitri 3bitr4i
      weu eubii df-reu sylib ) CFGZAHZBHZIJZBCDHZIJZDKLZMZAVPNZCVKIJZCVLIJZVMOB
      KMZPZAKNZVJVPUBUCZVRVJVODKQZWDVJCVNUDJZDKQZWERKSVJWFDRQWGUECDUAWFDRKUFUGV
      JWFVODKVNKGVJVNFGWFVOOVNUHCVNUIUJUKULVODKUOUMVJVPCEHZIJZEKLZSWDVRVPWJVOWI
      DEKVNWHCITUNUPABEVPCUQURUSVKVPGZVQPZAVFVKKGZWBPZAVFVRWCWLWNAWLWMVSPZWAPWN
      WKWOVQWAVOVSDVKKVNVKCITUTVOVTVMBDKVNVLCITVAVBWMVSWAVCVDVGVQAVPVHWBAKVHVEV
      I $.
  $}

  ${
    $d x y z w A $.
    $( There is a unique largest integer less than or equal to a given real
       number.  (Contributed by NM, 15-Nov-2004.) $)
    zmax $p |- ( A e. RR ->
               E! x e. ZZ ( x <_ A /\ A. y e. ZZ ( y <_ A -> y <_ x ) ) ) $=
      ( vz vw cr wcel cneg cv cle wbr wi cz wral wa wreu wb znegcl wceq imbi12d
      renegcl zmin syl leneg sylan ancoms breq1 rspcv lenegcon1 adantrr adantrl
      zre sylan2 biimpd com23 syld com13 ralrimdv breq2 exbiri anbi12d reubidva
      ex impbid zcn negcon2 syl2an reuhyp imbi2d ralbidv reuxfr syl6rbbr mpbid
      cc ) CFGZCHZDIZJKZVPEIZJKZVQVSJKZLZEMNZOZDMPZAIZCJKZBIZCJKZWHWFJKZLZBMNZO
      ZAMPZVOVPFGWECUADEVPUBUCVOWNVPWFHZJKZVTWOVSJKZLZEMNZOZAMPWEVOWMWTAMVOWFMG
      ZOZWGWPWLWSXAVOWGWPQZXAWFFGZVOXCWFULZWFCUDUEUFXBWLWSXBWLWREMVSMGZWLXBWRXF
      WLVSHZCJKZXGWFJKZLZXBWRLXFXGMGWLXJLVSRWKXJBXGMWHXGSWIXHWJXIWHXGCJUGWHXGWF
      JUGTUHUCXFXBXJWRXFXBXJWRLXFXBOXJWRXFVSFGZXBXJWRQVSULXKXBOXHVTXIWQXKVOXHVT
      QXAVSCUIUJXKXAXIWQQZVOXAXKXDXLXEVSWFUIUMUKTUEUNVCUOUPUQURXBWSWKBMWHMGZWSX
      BWKXMWSVPWHHZJKZWOXNJKZLZXBWKLXMXNMGWSXQLWHRWRXQEXNMVSXNSVTXOWQXPVSXNVPJU
      SVSXNWOJUSTUHUCXMXBXQWKXMXBWKXQXMWHFGZXBWKXQQWHULXRXBOWIXOWJXPXRVOWIXOQXA
      WHCUDUJXRXAWJXPQZVOXAXRXDXSXEWHWFUDUMUKTUEUTUOUPUQURVDVAVBWDWTDAWOMWFRDAW
      OVQHZMVQRVQMGVQVNGWFVNGVQWOSZWFXTSQXAVQVEWFVEVQWFVFVGVHYAVRWPWCWSVQWOVPJU
      SYAWBWREMYAWAWQVTVQWOVSJUGVIVJVAVKVLVM $.
  $}

  ${
    $d x y A $.
    $( There is a unique integer between a real number and the number plus one.
       Exercise 5 of [Apostol] p. 28.  (Contributed by NM, 13-Nov-2004.) $)
    zbtwnre $p |- ( A e. RR -> E! x e. ZZ ( A <_ x /\ x < ( A + 1 ) ) ) $=
      ( vy cr wcel cv cle wbr wi cz wa wreu c1 co clt wb zre syl sylan2 zlem1lt
      wral caddc zmin cmin peano2rem ltletr syl3an1 3expa adantlr sylibrd exp4b
      com23 ralrimdv wn ltnrd peano2zm mpdan mtbird ad2antrr ancoms adantr wceq
      lenlt breq2 imbi12d rspcv imp sylbird ex impbid 1re ltsubadd mp3an2 sylan
      mt3d bitr3d anbi2d reubidva mpbid ) BDEZBAFZGHZBCFZGHZWAWCGHZIZCJUAZKZAJL
      WBWABMUBNOHZKZAJLACBUCVTWHWJAJVTWAJEZKWGWIWBWKVTWGWIPWKVTKZWAMUDNZBOHZWGW
      IWLWNWGWLWNWFCJWLWCJEZWNWFWLWOWNWDWEWLWOKWNWDKZWMWCOHZWEWOWLWCDEZWPWQIZWC
      QWKVTWRWSWKWMDEZVTWRWSWKWADEZWTWAQZWAUERZWMBWCUFUGUHSWKWOWEWQPVTWAWCTUIUJ
      UKULUMWLWGWNWLWGKZWNWAWMGHZWKXEUNVTWGWKXEWMWMOHZWKWMXCUOWKWMJEZXEXFPWAUPZ
      WAWMTUQURUSXDWNUNZBWMGHZXEWLXJXIPZWGVTWKXKWKVTWTXKXCBWMVCSUTVAWKWGXJXEIZV
      TWKWGXLWKXGWGXLIXHWFXLCWMJWCWMVBWDXJWEXEWCWMBGVDWCWMWAGVDVEVFRVGUIVHVOVIV
      JWKXAVTWNWIPZXBXAMDEVTXMVKWAMBVLVMVNVPUTVQVRVS $.
  $}

  ${
    $d x y A $.
    $( There is a unique greatest integer less than or equal to a real number.
       Exercise 4 of [Apostol] p. 28.  (Contributed by NM, 15-Nov-2004.) $)
    rebtwnz $p |- ( A e. RR -> E! x e. ZZ ( x <_ A /\ A < ( x + 1 ) ) ) $=
      ( vy cr wcel cneg cv cle wbr c1 caddc co clt wa cz wreu znegcl cc wceq wb
      renegcl zbtwnre syl zcn negcon2 syl2an reuhyp breq2 anbi12d reuxfr ancoms
      breq1 zre leneg peano2rem ltneg sylan 1re ltsubadd mp3an2 ax-1cn negsubdi
      cmin sylancl adantr breq2d 3bitr3d sylan2 bicomd reubidva syl5bb mpbid
      recn ) BDEZBFZCGZHIZVPVOJKLZMIZNZCOPZAGZBHIZBWBJKLMIZNZAOPZVNVODEWABUACVO
      UBUCWAVOWBFZHIZWGVRMIZNZAOPVNWFVTWJCAWGOWBQCAWGVPFZOVPQVPOEVPREWBREVPWGSZ
      WBWKSTWBOEZVPUDWBUDVPWBUEUFUGWLVQWHVSWIVPWGVOHUHVPWGVRMULUIUJVNWJWEAOVNWM
      NWEWJWMVNWBDEZWEWJTWBUMVNWNNZWCWHWDWIWNVNWCWHTWBBUNUKWOBJVCLZWBMIZWGWPFZM
      IZWDWIVNWPDEWNWQWSTBUOWPWBUPUQVNJDEWNWQWDTURBJWBUSUTWOWRVRWGMVNWRVRSZWNVN
      BREJREWTBVMVABJVBVDVEVFVGUIVHVIVJVKVL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Rational numbers (as a subset of complex numbers)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c QQ $. $( The set of rational numbers (blackboard bold Q). $)

  $( Extend class notation to include the class of rationals. $)
  cq $a class QQ $.

  $( Define the set of rational numbers.  Based on definition of rationals in
     [Apostol] p. 22.  See ~ elq for the relation "is rational."  (Contributed
     by NM, 8-Jan-2002.) $)
  df-q $a |- QQ = ( / " ( ZZ X. NN ) ) $.

  ${
    $d x y z A $.
    $( Membership in the set of rationals.  (Contributed by NM, 8-Jan-2002.)
       (Revised by Mario Carneiro, 28-Jan-2014.) $)
    elq $p |- ( A e. QQ <-> E. x e. ZZ E. y e. NN A = ( x / y ) ) $=
      ( vz cq wcel cdiv cz cn cxp cima cv co wceq wrex df-q cc cc0 wss mp2an wb
      eleq2i csn cdif wfn cmul crio df-div riotaex fnmpt2i zsscn wne nncn nnne0
      eldifsn sylanbrc ssriv xpss12 ovelimab bitri ) CEFCGHIJZKZFZCALZBLZGMNBIO
      AHOZEVBCPUBGQQRUCUDZJZUEVAVHSZVCVFUAABQVGVEDLUFMVDNZDQUGGABDUHVJDQUIUJHQS
      IVGSVIUKAIVGVDIFVDQFVDRULVDVGFVDUMVDUNVDQRUOUPUQHQIVGURTABVHHICGUSTUT $.

    $( If ` A ` is rational, then some integer multiple of it is an integer.
       (Contributed by NM, 7-Nov-2008.)  (Revised by Mario Carneiro,
       22-Jul-2014.) $)
    qmulz $p |- ( A e. QQ -> E. x e. NN ( A x. x ) e. ZZ ) $=
      ( vy cq wcel cv cdiv co wceq cn wrex cz elq rexcom wa cc zcn adantr sylbi
      cmul adantl nncn cc0 nnne0 divcan1d simpr eqeltrd oveq1 eleq1d syl5ibrcom
      wne rexlimdva reximia ) BDEBCFZAFZGHZIZAJKCLKZBUOTHZLEZAJKZCABMURUQCLKZAJ
      KVAUQCALJNVBUTAJUOJEZUQUTCLVCUNLEZOZUTUQUPUOTHZLEVEVFUNLVEUNUOVDUNPEVCUNQ
      UAVCUOPEVDUOUBRVCUOUCUKVDUOUDRUEVCVDUFUGUQUSVFLBUPUOTUHUIUJULUMSS $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The ratio of an integer and a positive integer is a rational number.
       (Contributed by NM, 12-Jan-2002.) $)
    znq $p |- ( ( A e. ZZ /\ B e. NN ) -> ( A / B ) e. QQ ) $=
      ( vx vy cz wcel cn wa cdiv co cv wceq wrex eqid rspceov mp3an3 elq sylibr
      cq ) AEFZBGFZHABIJZCKDKIJLDGMCEMZUBSFTUAUBUBLUCUBNCDEGABUBIOPCDUBQR $.
  $}

  ${
    $d x y A $.
    $( A rational number is a real number.  (Contributed by NM,
       14-Nov-2002.) $)
    qre $p |- ( A e. QQ -> A e. RR ) $=
      ( vx vy cq wcel cv cdiv co wceq cn wrex cz cr elq cc0 wne zre nnre nnne0
      wa jca redivcl 3expb syl2an eleq1 syl5ibrcom rexlimivv sylbi ) ADEABFZCFZ
      GHZIZCJKBLKAMEZBCANULUMBCLJUILEZUJJEZTUMULUKMEZUNUIMEZUJMEZUJOPZTUPUOUIQU
      OURUSUJRUJSUAUQURUSUPUIUJUBUCUDAUKMUEUFUGUH $.

    $( An integer is a rational number.  (Contributed by NM, 9-Jan-2002.) $)
    zq $p |- ( A e. ZZ -> A e. QQ ) $=
      ( vx vy cv wceq cz wrex cdiv co cn wcel cq c1 div1d eqeq2d eqcom syl6rbbr
      zcn 1nn oveq2 rspcev mpan syl6bi reximia risset elq 3imtr4i ) BDZAEZBFGAU
      HCDZHIZEZCJGZBFGAFKALKUIUMBFUHFKZUIAUHMHIZEZUMUNUPAUHEUIUNUOUHAUNUHUHRNOU
      HAPQMJKUPUMSULUPCMJUJMEUKUOAUJMUHHTOUAUBUCUDBAFUEBCAUFUG $.
  $}

  $( The integers are a subset of the rationals.  (Contributed by NM,
     9-Jan-2002.) $)
  zssq $p |- ZZ C_ QQ $=
    ( vx cz cq cv zq ssriv ) ABCADEF $.

  $( The nonnegative integers are a subset of the rationals.  (Contributed by
     NM, 31-Jul-2004.) $)
  nn0ssq $p |- NN0 C_ QQ $=
    ( cn0 cz cq nn0ssz zssq sstri ) ABCDEF $.

  $( The positive integers are a subset of the rationals.  (Contributed by NM,
     31-Jul-2004.) $)
  nnssq $p |- NN C_ QQ $=
    ( cn cz cq nnssz zssq sstri ) ABCDEF $.

  $( The rationals are a subset of the reals.  (Contributed by NM,
     9-Jan-2002.) $)
  qssre $p |- QQ C_ RR $=
    ( vx cq cr cv qre ssriv ) ABCADEF $.

  $( The rationals are a subset of the complex numbers.  (Contributed by NM,
     2-Aug-2004.) $)
  qsscn $p |- QQ C_ CC $=
    ( cq cr cc qssre ax-resscn sstri ) ABCDEF $.

  $( The set of rational numbers exists.  See also ~ qexALT .  (Contributed by
     NM, 30-Jul-2004.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
  qex $p |- QQ e. _V $=
    ( cq cc cnex qsscn ssexi ) ABCDE $.

  $( A positive integer is rational.  (Contributed by NM, 17-Nov-2004.) $)
  nnq $p |- ( A e. NN -> A e. QQ ) $=
    ( cn cq nnssq sseli ) BCADE $.

  $( A rational number is a complex number.  (Contributed by NM,
     2-Aug-2004.) $)
  qcn $p |- ( A e. QQ -> A e. CC ) $=
    ( cq cc qsscn sseli ) BCADE $.

  ${
    $d x y z $.
    $( Alternate proof of ~ qex .  (Contributed by NM, 30-Jul-2004.)  (Revised
       by Mario Carneiro, 16-Jun-2013.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    qexALT $p |- QQ e. _V $=
      ( vy vz vx cq cz cn cv cdiv co cmpt2 crn cvv wcel wceq wrex elq eqid ovex
      elrnmpt2 bitr4i eqriv zexALT nnexALT mpt2ex rnex eqeltri ) DABEFAGZBGZHIZ
      JZKZLCDUKCGZDMULUINBFOAEOULUKMABULPABEFUIULUJUJQUGUHHRSTUAUJABEFUIUBUCUDU
      EUF $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.
    $( Closure of addition of rationals.  (Contributed by NM, 1-Aug-2004.) $)
    qaddcl $p |- ( ( A e. QQ /\ B e. QQ ) -> ( A + B ) e. QQ ) $=
      ( vx vy vz vw vu vv cq wcel cv cdiv co wceq cn wrex cz caddc wa cc elq wi
      cmul zmulcl sylan2 ad2ant2rl simpl adantl syl2anr zaddcld adantr ad2ant2l
      nnz nnmulcl oveq12 cc0 wne zcn anim12i nncn nnne0 jca divadddiv sylan9eqr
      syl2an an4s w3a rspceov sylibr syl3anc exp43 rexlimivv rexlimdvv syl2anb
      imp ) AIJACKZDKZLMZNZDOPCQPZBEKZFKZLMZNZFOPEQPZABRMZIJZBIJCDAUAEFBUAVTWEW
      GVTWDWGEFQOVSWAQJZWBOJZSZWDWGUBUBCDQOVPQJZVQOJZSZVSWJWDWGWMWJVSWDWGWMWJSZ
      VSWDSZSVPWBUCMZWAVQUCMZRMZQJZVQWBUCMZOJZWFWRWTLMZNZWGWNWSWOWNWPWQWKWIWPQJ
      ZWLWHWIWKWBQJXDWBUMVPWBUDUEUFWJWHVQQJZWQQJWMWHWIUGWLXEWKVQUMUHWAVQUDUIUJU
      KWNXAWOWLWIXAWKWHVQWBUNULUKWOWNWFVRWCRMZXBAVRBWCRUOWKWHWLWIXFXBNZWKWHSVPT
      JZWATJZSVQTJZVQUPUQZSZWBTJZWBUPUQZSZSXGWLWISWKXHWHXIVPURWAURUSWLXLWIXOWLX
      JXKVQUTVQVAVBWIXMXNWBUTWBVAVBUSVPWAVQWBVCVEVFVDWSXAXCVGWFGKHKLMNHOPGQPWGG
      HQOWRWTWFLVHGHWFUAVIVJVFVKVLVMVOVN $.

    $( Closure law for the negative of a rational.  (Contributed by NM,
       2-Aug-2004.)  (Revised by Mario Carneiro, 15-Sep-2014.) $)
    qnegcl $p |- ( A e. QQ -> -u A e. QQ ) $=
      ( vx vy cq wcel cv cdiv co wceq cn wrex cz cneg elq wa cc zcn adantr nncn
      adantl cc0 wne nnne0 divnegd znegcl sylan eqeltrd negeq eleq1d syl5ibrcom
      znq rexlimivv sylbi ) ADEABFZCFZGHZIZCJKBLKAMZDEZBCANUQUSBCLJUNLEZUOJEZOZ
      USUQUPMZDEVBVCUNMZUOGHZDVBUNUOUTUNPEVAUNQRVAUOPEUTUOSTVAUOUAUBUTUOUCTUDUT
      VDLEVAVEDEUNUEVDUOUKUFUGUQURVCDAUPUHUIUJULUM $.

    $( Closure of multiplication of rationals.  (Contributed by NM,
       1-Aug-2004.) $)
    qmulcl $p |- ( ( A e. QQ /\ B e. QQ ) -> ( A x. B ) e. QQ ) $=
      ( vx vy vz vw vv vu cq wcel cv cdiv co wceq cn wrex cz cmul wa cc nnmulcl
      elq zmulcl anim12i an4s adantr oveq12 cc0 wne zcn ad2ant2r nncn nnne0 jca
      ad2ant2l divmuldiv syl2anc sylan9eqr rspceov 3expa sylibr exp43 rexlimivv
      wi rexlimdvv imp syl2anb ) AIJACKZDKZLMZNZDOPCQPZBEKZFKZLMZNZFOPEQPZABRMZ
      IJZBIJCDAUBEFBUBVLVQVSVLVPVSEFQOVKVMQJZVNOJZSZVPVSVDVDCDQOVHQJZVIOJZSZVKW
      BVPVSWEWBVKVPVSWEWBSZVKVPSZSVHVMRMZQJZVIVNRMZOJZSZVRWHWJLMZNZVSWFWLWGWCVT
      WDWAWLWCVTSWIWDWASWKVHVMUCVIVNUAUDUEUFWGWFVRVJVORMZWMAVJBVORUGWFVHTJZVMTJ
      ZSZVITJZVIUHUIZSZVNTJZVNUHUIZSZSZWOWMNWCVTWRWDWAWCWPVTWQVHUJVMUJUDUKWDWAX
      EWCVTWDXAWAXDWDWSWTVIULVIUMUNWAXBXCVNULVNUMUNUDUOVHVMVIVNUPUQURWLWNSVRGKH
      KLMNHOPGQPZVSWIWKWNXFGHQOWHWJVRLUSUTGHVRUBVAUQUEVBVCVEVFVG $.
  $}

  $( Closure of subtraction of rationals.  (Contributed by NM, 2-Aug-2004.) $)
  qsubcl $p |- ( ( A e. QQ /\ B e. QQ ) -> ( A - B ) e. QQ ) $=
    ( cq wcel wa cneg caddc co cmin wceq qcn negsub syl2an qnegcl qaddcl sylan2
    cc eqeltrrd ) ACDZBCDZEABFZGHZABIHZCSAQDBQDUBUCJTAKBKABLMTSUACDUBCDBNAUAOPR
    $.

  ${
    $d x y z w A $.
    $( Closure of reciprocal of rationals.  (Contributed by NM, 3-Aug-2004.) $)
    qreccl $p |- ( ( A e. QQ /\ A =/= 0 ) -> ( 1 / A ) e. QQ ) $=
      ( vx vy vz vw cq wcel cc0 wne c1 cdiv co cv wceq cn wrex cz wi wa adantlr
      elq cmul nnne0 ancli neeq1 cc zcn nncn anim12i divne0b 3expa sylan bicomd
      wb sylan9bbr nnz zmulcl sylan2 adantr msqznn jca oveq2 divid oveq1d simpl
      simpll simpr divdivdiv syl22anc eqtr3d anass1rs sylan9eqr an32s ex sylbid
      an4s anasss rspceov sylibr syl8 rexlimivv sylbi imp ) AFGZAHIZJAKLZFGZWDA
      BMZCMZKLZNZCOPBQPWEWGRZBCAUAWKWLBCQOWHQGZWIOGZSZWKWEWHWIUBLZQGZWHWHUBLZOG
      ZSZWFWPWRKLZNZSZWGWNWMWNWIHIZSWKWEXCRZRZWNXDWIUCUDWMWNXDXFWOXDSZWKXEXGWKS
      ZWEWHHIZXCWKWEWJHIZXGXIAWJHUEXGXIXJWOWHUFGZWIUFGZSZXDXIXJUNZWMXKWNXLWHUGW
      IUHUIZXKXLXDXNWHWIUJUKULUMUOXHXIXCXHXISWTXBXGXIWTWKWOXIWTXDWOXISWQWSWOWQX
      IWNWMWIQGWQWIUPWHWIUQURUSWMXIWSWNWHUTTVATTXGXIWKXBWKXGXISWFJWJKLZXAAWJJKV
      BWOXIXDXPXANZWOXMXIXDSXQXOXKXIXLXDXQXKXISZXLXDSZSZWHWHKLZWJKLZXPXAXTYAJWJ
      KXRYAJNXSWHVCUSVDXTXKXRXRXSYBXANXKXIXSVFXRXSVEZYCXRXSVGWHWHWHWIVHVIVJVPUL
      VKVLVMVAVNVOVNVQURXCWFDMEMKLNEOPDQPZWGWQWSXBYDDEQOWPWRWFKVRUKDEWFUAVSVTWA
      WBWC $.
  $}

  $( Closure of division of rationals.  (Contributed by NM, 3-Aug-2004.) $)
  qdivcl $p |- ( ( A e. QQ /\ B e. QQ /\ B =/= 0 ) -> ( A / B ) e. QQ ) $=
    ( cq wcel cc0 wne w3a cdiv co c1 cmul cc qcn id divrec syl3an qreccl qmulcl
    wceq wa sylan2 3impb eqeltrd ) ACDZBCDZBEFZGABHIZAJBHIZKIZCUDALDUEBLDUFUFUG
    UISAMBMUFNABOPUDUEUFUICDZUEUFTUDUHCDUJBQAUHRUAUBUC $.

  $( Reverse closure law for addition of rationals.  (Contributed by NM,
     2-Aug-2004.) $)
  qrevaddcl $p |- ( B e. QQ ->
                   ( ( A e. CC /\ ( A + B ) e. QQ ) <-> A e. QQ ) ) $=
    ( cq wcel cc caddc co wa cmin qcn pncan sylan2 ancoms adantr qsubcl adantlr
    wceq eqeltrrd ex wi qaddcl expcom impbid pm5.32da pm4.71ri syl6bbr ) BCDZAE
    DZABFGZCDZHUHACDZHUKUGUHUJUKUGUHHZUJUKULUJUKULUJHUIBIGZACULUMAQZUJUHUGUNUGU
    HBEDUNBJABKLMNUGUJUMCDZUHUJUGUOUIBOMPRSUGUKUJTUHUKUGUJABUAUBNUCUDUKUHAJUEUF
    $.

  $( The reciprocal of a positive integer is rational.  (Contributed by NM,
     17-Nov-2004.) $)
  nnrecq $p |- ( A e. NN -> ( 1 / A ) e. QQ ) $=
    ( c1 cz wcel cn cdiv co cq 1z znq mpan ) BCDAEDBAFGHDIBAJK $.

  $( The sum of an irrational number and a rational number is irrational.
     (Contributed by NM, 7-Nov-2008.) $)
  irradd $p |- ( ( A e. ( RR \ QQ ) /\ B e. QQ )
                -> ( A + B ) e. ( RR \ QQ ) ) $=
    ( cr cq cdif wcel wa caddc co wn eldif qre readdcl sylan2 adantlr wi qsubcl
    cmin expcom cc adantl wceq qcn pncan syl2an eleq1d sylibd con3d com23 imp31
    recn ex jca sylanb sylibr ) ACDEZFZBDFZGABHIZCFZUSDFZJZGZUSUPFUQACFZADFZJZG
    ZURVCACDKVGURGUTVBVDURUTVFURVDBCFUTBLABMNOVDVFURVBVDURVFVBVDURVFVBPVDURGZVA
    VEVHVAUSBRIZDFZVEURVAVJPVDVAURVJUSBQSUAVHVIADVDATFBTFVIAUBURAUKBUCABUDUEUFU
    GUHULUIUJUMUNUSCDKUO $.

  $( The product of an irrational with a nonzero rational is irrational.
     (Contributed by NM, 7-Nov-2008.) $)
  irrmul $p |- ( ( A e. ( RR \ QQ ) /\ B e. QQ /\ B =/= 0 )
                -> ( A x. B ) e. ( RR \ QQ ) ) $=
    ( cr cq cdif wcel cc0 wne w3a co wn wa eldif qre remulcl sylan2 wi 3expb cc
    cmul ad2ant2r cdiv qdivcl expcom adantl wceq divcan4 syl3an1 syl3an2 eleq1d
    qcn recn sylibd con3d ex com23 imp31 jca 3impb syl3an1b sylibr ) ACDEZFZBDF
    ZBGHZIABTJZCFZVFDFZKZLZVFVBFVCACFZADFZKZLZVDVEVJACDMVNVDVEVJVNVDVELZLVGVIVK
    VDVGVMVEVDVKBCFVGBNABOPUAVKVMVOVIVKVOVMVIVKVOVMVIQVKVOLZVHVLVPVHVFBUBJZDFZV
    LVOVHVRQVKVHVOVRVHVDVEVRVFBUCRUDUEVPVQADVKVDVEVQAUFZVDVKBSFZVEVSBUKVKASFVTV
    EVSAULABUGUHUIRUJUMUNUOUPUQURUSUTVFCDMVA $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Existence of the set of complex numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d F k n x y $.  $d T n y $.
    rpnnen1lem.1 $e |- T = { n e. ZZ | ( n / k ) < x } $.
    rpnnen1lem.2 $e |- F = ( x e. RR |->
        ( k e. NN |-> ( sup ( T , RR , < ) / k ) ) ) $.
    $( Lemma for ~ rpnnen1 .  (Contributed by Mario Carneiro, 12-May-2013.) $)
    rpnnen1lem2 $p |- ( ( x e. RR /\ k e. NN ) -> sup ( T , RR , < ) e. ZZ ) $=
      ( vy cv cr wcel wa cz clt co wbr c0 cle wrex syl2anc cn csup cdiv eqsstri
      crab ssrab2 wss wne wral a1i cmul nnre remulcl ancoms sylan2 btwnz simpld
      syl cc0 wb zre adantl simpll nngt0 jca ad2antlr ltdivmul syl3anc rexbidva
      mpbird rabn0 sylibr neeq1i rabeq2i wi ltle sylbid sylan2b ralrimiva breq2
      impr wceq ralbidv rspcev suprzcl sseldi ) AIZJKZCIZUAKZLZBMBJNUBZBDIZWIUC
      OWGNPZDMUEZMFWNDMUFUDZWKBMUGZBQUHZWMHIZRPZDBUIZHJSZWLBKWQWKWPUJWKWOQUHZWR
      WKWNDMSZXCWKXDWMWIWGUKOZNPZDMSZWKXEJKZXGWJWHWIJKZXHWIULZXIWHXHWIWGUMZUNUO
      ZXHXGXEWMNPDMSDDXEUPUQURWKWNXFDMWKWMMKZLZWMJKZWHXIUSWINPZLZWNXFUTXMXOWKWM
      VAVBZWHWJXMVCZWJXQWHXMWJXIXPXJWIVDVEVFWMWGWIVGVHZVIVJWNDMVKVLBWOQFVMVLWKX
      HWMXERPZDBUIZXBXLWKYADBWMBKWKXMWNLYAWNDBMFVNWKXMWNYAXNWNXFYAXTXNXOXHXFYAV
      OXRXNXIWHXHWJXIWHXMXJVFXSXKTWMXEVPTVQWAVRVSXAYBHXEJWSXEWBWTYADBWSXEWMRVTW
      CWDTHDBWEVHWF $.

    rpnnen1lem.n $e |- NN e. _V $.
    rpnnen1lem.q $e |- QQ e. _V $.
    $( Lemma for ~ rpnnen1 .  (Contributed by Mario Carneiro, 12-May-2013.)
       (Revised by NM, 13-Aug-2021.)  (Proof modification is discouraged.) $)
    rpnnen1lem1 $p |- ( x e. RR -> ( F ` x ) e. ( QQ ^m NN ) ) $=
      ( vy cv cr wcel cn clt co cq cz wa wbr cfv csup cdiv cmpt cmap wceq mptex
      cvv fvmpt2 mpan2 wf crab ssrab2 eqsstri wss c0 wne cle wral wrex a1i cmul
      remulcl ancoms sylan2 btwnz simpld syl cc0 wb zre adantl simpll nngt0 jca
      nnre ad2antlr ltdivmul syl3anc mpbird rabn0 sylibr neeq1i rabeq2i syl2anc
      rexbidva ltle sylbid impr sylan2b ralrimiva ralbidv rspcev suprzcl sseldi
      wi breq2 znq sylancom eqid fmptd elmap eqeltrd ) AKZLMZXDEUAZCNBLOUBZCKZU
      CPZUDZQNUEPZXEXJUHMXFXJUFCNXIHUGALXJUHEGUIUJXENQXJUKXJXKMXECNXIQXJXEXHNMZ
      XGRMXIQMXEXLSZBRXGBDKZXHUCPXDOTZDRULZRFXODRUMUNZXMBRUOZBUPUQZXNJKZURTZDBU
      SZJLUTZXGBMXRXMXQVAXMXPUPUQZXSXMXODRUTZYDXMYEXNXHXDVBPZOTZDRUTZXMYFLMZYHX
      LXEXHLMZYIXHVPZYJXEYIXHXDVCZVDVEZYIYHYFXNOTDRUTDDYFVFVGVHXMXOYGDRXMXNRMZS
      ZXNLMZXEYJVIXHOTZSZXOYGVJYNYPXMXNVKVLZXEXLYNVMZXLYRXEYNXLYJYQYKXHVNVOVQXN
      XDXHVRVSZWFVTXODRWAWBBXPUPFWCWBXMYIXNYFURTZDBUSZYCYMXMUUBDBXNBMXMYNXOSUUB
      XODBRFWDXMYNXOUUBYOXOYGUUBUUAYOYPYIYGUUBWPYSYOYJXEYIXLYJXEYNYKVQYTYLWEXNY
      FWGWEWHWIWJWKYBUUCJYFLXTYFUFYAUUBDBXTYFXNURWQWLWMWEJDBWNVSWOXGXHWRWSXJWTX
      AQNXJIHXBWBXC $.

    $( Lemma for ~ rpnnen1 .  (Contributed by Mario Carneiro, 12-May-2013.)
       (Revised by NM, 13-Aug-2021.)  (Proof modification is discouraged.) $)
    rpnnen1lem3 $p |- ( x e. RR -> A. n e. ran ( F ` x ) n <_ x ) $=
      ( vy cv cr wcel cle wbr wral cn wa clt cz cfv crn csup cdiv cmpt cvv wceq
      co mptex fvmpt2 mpan2 fveq1d ovex eqid sylan9eq rabeq2i cc0 wb zre adantl
      cmul simpll nnre nngt0 jca ad2antlr ltdivmul syl3anc remulcl syl2anc ltle
      wi sylbid impr sylan2b ralrimiva wss c0 wne wrex crab eqsstri zssre sstri
      ssrab2 a1i ancoms sylan2 btwnz simpld rexbidva mpbird rabn0 sylibr neeq1i
      syl breq2 ralbidv rspcev suprleub syl31anc rpnnen1lem2 zred simpl eqbrtrd
      ledivmul cq wf wfn cmap rpnnen1lem1 elmap sylib ffn breq1 ralrn 3syl ) AK
      ZLMZDKZXRNOZDXREUAZUBPZCKZYBUAZXRNOZCQPZXSYFCQXSYDQMZRZYEBLSUCZYDUDUHZXRN
      XSYHYEYDCQYKUEZUAZYKXSYDYBYLXSYLUFMYBYLUGCQYKHUIALYLUFEGUJUKULYHYKUFMYMYK
      UGYJYDUDUMCQYKUFYLYLUNUJUKUOYIYKXRNOZYJYDXRVAUHZNOZYIYPXTYONOZDBPZYIYQDBX
      TBMYIXTTMZXTYDUDUHXRSOZRYQYTDBTFUPYIYSYTYQYIYSRZYTXTYOSOZYQUUAXTLMZXSYDLM
      ZUQYDSOZRZYTUUBURYSUUCYIXTUSUTZXSYHYSVBZYHUUFXSYSYHUUDUUEYDVCZYDVDVEZVFXT
      XRYDVGVHZUUAUUCYOLMZUUBYQVLUUGUUAUUDXSUULYHUUDXSYSUUIVFUUHYDXRVIZVJXTYOVK
      VJVMVNVOVPZYIBLVQZBVRVSZXTJKZNOZDBPZJLVTZUULYPYRURUUOYIBTLBYTDTWAZTFYTDTW
      EWBWCWDWFYIUVAVRVSZUUPYIYTDTVTZUVBYIUVCUUBDTVTZYIUULUVDYHXSUUDUULUUIUUDXS
      UULUUMWGWHZUULUVDYOXTSODTVTDDYOWIWJWPYIYTUUBDTUUKWKWLYTDTWMWNBUVAVRFWOWNY
      IUULYRUUTUVEUUNUUSYRJYOLUUQYOUGUURYQDBUUQYOXTNWQWRWSVJUVEJDDBYOWTXAWLYIYJ
      LMXSUUFYNYPURYIYJABCDEFGXBXCXSYHXDYHUUFXSUUJUTYJXRYDXFVHWLXEVPXSQXGYBXHZY
      BQXIYCYGURXSYBXGQXJUHMUVFABCDEFGHIXKXGQYBIHXLXMQXGYBXNYAYFDCQYBXTYEXRNXOX
      PXQWL $.

    $( Lemma for ~ rpnnen1 .  (Contributed by Mario Carneiro, 12-May-2013.)
       (Revised by NM, 13-Aug-2021.)  (Proof modification is discouraged.) $)
    rpnnen1lem4 $p |- ( x e. RR -> sup ( ran ( F ` x ) , RR , < ) e. RR ) $=
      ( vy cv cr wcel c0 wne cle wbr wral cn cq cfv crn wss wrex clt csup wf co
      cmap rpnnen1lem1 elmap sylib frn qssre syl6ss syl cdm c1 1nn ne0ii neeq1d
      fdm mpbiri dm0rn0 necon3bii rpnnen1lem3 breq2 ralbidv rspcev mpdan suprcl
      weq syl3anc ) AKZLMZVNEUAZUBZLUCZVQNOZDKZJKZPQZDVQRZJLUDZVQLUEUFLMVOSTVPU
      GZVRVOVPTSUIUHMWEABCDEFGHIUJTSVPIHUKULZWEVQTLSTVPUMUNUOUPVOWEVSWFWEVPUQZN
      OZVSWEWHSNOURSUSUTWEWGSNSTVPVBVAVCWGNVQNVPVDVEULUPVOVTVNPQZDVQRZWDABCDEFG
      HIVFWCWJJVNLJAVLWBWIDVQWAVNVTPVGVHVIVJJDVQVKVM $.

    $( Lemma for ~ rpnnen1 .  (Contributed by Mario Carneiro, 12-May-2013.)
       (Revised by NM, 13-Aug-2021.)  (Proof modification is discouraged.) $)
    rpnnen1lem5 $p |- ( x e. RR -> sup ( ran ( F ` x ) , RR , < ) = x ) $=
      ( vy cr wcel clt cle wbr c0 cn co wa cz cv cfv csup wceq wral rpnnen1lem3
      crn wn wss wne wrex wb cq wf rpnnen1lem1 elmap sylib frn qssre syl6ss syl
      cmap cdm c1 1nn ne0ii neeq1d mpbiri dm0rn0 necon3bii breq2 ralbidv rspcev
      fdm mpdan id suprleub syl31anc mpbird cmin rpnnen1lem4 resubcl adantr cc0
      cdiv posdif mpancom biimpa gt0ne0d rereccld arch ex w3a caddc rpnnen1lem2
      zred 3adant3 ltp1d wi jca nnre nngt0 ltrec1 syl2an ad2antrr adantl simpll
      nnrecre ltaddsub2d wfn fnfvelrn sylan sseldd 3jca suprub syl2anc leadd1dd
      ffn readdcld readdcl simpl lelttr expd syl3anc mpd adantlr sylbird sylbid
      peano2zd oveq1 breq1d elrab2 biimpri ad2antlr sylibr cc fvmpt2 mpan2 syld
      cvv crab ssrab2 eqsstri zssre sstri a1i cmul remulcl ancoms sylan2 simpld
      btwnz zre ltdivmul rexbidva rabn0 neeq1i rabeq2i ltle impr sylan2b syldan
      ralrimiva zcnd 1cnd nncn nnne0 divdir cmpt fveq1d ovex eqid oveq1d eqtr4d
      mptex sylan9eq lenltd 3imtr3d exp31 com4l com14 rexlimdv3a pm2.01d eqlelt
      3imp mt2d mpbir2and ) AUAZKLZUWHEUBZUGZKMUCZUWHUDZUWLUWHNOZUWLUWHMOZUHZUW
      IUWNDUAZUWHNOZDUWKUEZABCDEFGHIUFZUWIUWKKUIZUWKPUJZUWQJUAZNOZDUWKUEZJKUKZU
      WIUWNUWSULUWIQUMUWJUNZUXAUWIUWJUMQVBRLUXGABCDEFGHIUOUMQUWJIHUPUQZUXGUWKUM
      KQUMUWJURUSUTVAZUWIUXGUXBUXHUXGUWJVCZPUJZUXBUXGUXKQPUJVDQVEVFUXGUXJQPQUMU
      WJVNVGVHUXJPUWKPUWJVIVJUQVAZUWIUWSUXFUWTUXEUWSJUWHKUXCUWHUDUXDUWRDUWKUXCU
      WHUWQNVKVLVMVOZUWIVPJDDUWKUWHVQVRVSUWIUWOUWIUWOVDUWHUWLVTRZWERZCUAZMOZCQU
      KZUWPUWIUWOUXRUWIUWOSZUXOKLUXRUXSUXNUWIUXNKLZUWOUWIUWLKLZUXTABCDEFGHIWAZU
      WHUWLWBVOWCZUXSUXNUWIUWOWDUXNMOZUYAUWIUWOUYDULUYBUWLUWHWFWGWHZWIWJUXOCWKV
      AWLUWIUXQUWPCQUWIUXPQLZUXQWMZUWOBKMUCZUYHVDWNRZMOZUYGUYHUWIUYFUYHKLUXQUWI
      UYFSZUYHABCDEFGWOZWPZWQWRUWIUYFUXQUWOUYJUHZWSUWOUYFUXQUWIUYNUWIUWOUYFUXQU
      YNUWIUWOUYFUXQUYNWSUXSUYFSZUXQUXPUWJUBZVDUXPWERZWNRZUWHMOZUYNUYOUXQUYQUXN
      MOZUYSUXSUXTUYDSUXPKLZWDUXPMOZSZUXQUYTULUYFUXSUXTUYDUYCUYEWTUYFVUAVUBUXPX
      AZUXPXBWTZUXNUXPXCXDUYOUYTUWLUYQWNRZUWHMOZUYSUYOUWLUYQUWHUWIUYAUWOUYFUYBX
      EUYFUYQKLZUXSUXPXHZXFUWIUWOUYFXGXIUWIUYFVUGUYSWSZUWOUYKUYRVUFNOZVUJUYKUYP
      UWLUYQUYKUWKKUYPUWIUXAUYFUXIWCUWIUWJQXJZUYFUYPUWKLZUWIUXGVULUXHQUMUWJXRVA
      QUXPUWJXKXLZXMZUWIUYAUYFUYBWCUYFVUHUWIVUIXFZUYKUXAUXBUXFWMZVUMUYPUWLNOUWI
      VUQUYFUWIUXAUXBUXFUXIUXLUXMXNWCVUNJDUWKUYPXOXPXQUYKUYRKLZVUFKLZUWIVUKVUJW
      SUYKUYPUYQVUOVUPXSUWIUYAVUHVUSUYFUYBVUIUWLUYQXTXDUWIUYFYAVURVUSUWIWMVUKVU
      GUYSUYRVUFUWHYBYCYDYEYFYGYHUWIUYFUYSUYNWSUWOUYKUYIUXPWERZUWHMOZUYIUYHNOZU
      YSUYNUYKVVAVVBUYKVVAUYIBLZVVBUYKUYITLZVVAVVCUYKUYHUYLYIZVVCVVDVVASUWQUXPW
      ERZUWHMOZVVADUYITBUWQUYIUDVVFVUTUWHMUWQUYIUXPWEYJYKFYLYMXLUYKBKUIZBPUJZUX
      DDBUEZJKUKZWMVVCVVBUYKVVHVVIVVKVVHUYKBTKBVVGDTUUAZTFVVGDTUUBUUCUUDUUEUUFU
      YKVVLPUJZVVIUYKVVGDTUKZVVMUYKVVNUWQUXPUWHUUGRZMOZDTUKZUYKVVOKLZVVQUYFUWIV
      UAVVRVUDVUAUWIVVRUXPUWHUUHZUUIUUJZVVRVVQVVOUWQMODTUKDDVVOUULUUKVAUYKVVGVV
      PDTUYKUWQTLZSZUWQKLZUWIVUCVVGVVPULVWAVWCUYKUWQUUMXFZUWIUYFVWAXGZUYFVUCUWI
      VWAVUEYNUWQUWHUXPUUNYDZUUOVSVVGDTUUPYOBVVLPFUUQYOUYKVVRUWQVVONOZDBUEZVVKV
      VTUYKVWGDBUWQBLUYKVWAVVGSVWGVVGDBTFUURUYKVWAVVGVWGVWBVVGVVPVWGVWFVWBVWCVV
      RVVPVWGWSVWDVWBVUAUWIVVRUYFVUAUWIVWAVUDYNVWEVVSXPUWQVVOUUSXPYHUUTUVAUVCVV
      JVWHJVVOKUXCVVOUDUXDVWGDBUXCVVOUWQNVKVLVMXPXNJDBUYIXOXLUVBWLUYKVUTUYRUWHM
      UYKVUTUYHUXPWERZUYQWNRZUYRUYKUYHYPLVDYPLUXPYPLZUXPWDUJZSZVUTVWJUDUYKUYHUY
      LUVDUYKUVEUYFVWMUWIUYFVWKVWLUXPUVFUXPUVGWTXFUYHVDUXPUVHYDUYKUYPVWIUYQWNUW
      IUYFUYPUXPCQVWIUVIZUBZVWIUWIUXPUWJVWNUWIVWNYTLUWJVWNUDCQVWIHUVOAKVWNYTEGY
      QYRUVJUYFVWIYTLVWOVWIUDUYHUXPWEUVKCQVWIYTVWNVWNUVLYQYRUVPUVMUVNYKUYKUYIUY
      HUYKUYIVVEWPUYMUVQUVRYFYSUVSUVTUWAUWEUWFUWBYSUWCUYAUWIUWMUWNUWPSULUYBUWLU
      WHUWDWGUWG $.

    $( Lemma for ~ rpnnen1 .  (Contributed by Mario Carneiro, 12-May-2013.)
       (Revised by NM, 15-Aug-2021.)  (Proof modification is discouraged.) $)
    rpnnen1lem6 $p |- RR ~<_ ( QQ ^m NN ) $=
      ( vy cq cn cmap cvv wcel cr cv cfv wceq clt cdom wbr ovex rpnnen1lem1 crn
      co wa csup rneq supeq1d rpnnen1lem5 fveq2 rneqd eqeq12d vtoclga eqeqan12d
      id syl5ib impbid1 dom2 ax-mp ) KLMUFZNOPVBUAUBKLMUCAJPVBAQZERZJQZERZNABCD
      EFGHIUDVCPOZVEPOZUGZVDVFSZVCVESZVJVDUEZPTUHZVFUEZPTUHZSVIVKVJPVLVNTVDVFUI
      UJVGVHVMVCVOVEABCDEFGHIUKZVMVCSVOVESAVEPVKVMVOVCVEVKPVLVNTVKVDVFVCVEEULZU
      MUJVKUQUNVPUOUPURVQUSUTVA $.
  $}

  ${
    $d j k m n x y $.
    rpnnen1.n $e |- NN e. _V $.
    rpnnen1.q $e |- QQ e. _V $.
    $( One half of ~ rpnnen , where we show an injection from the real numbers
       to sequences of rational numbers.  Specifically, we map a real number
       ` x ` to the sequence ` ( F `` x ) : NN --> QQ ` (see ~ rpnnen1lem6 )
       such that ` ( ( F `` x ) `` k ) ` is the largest rational number with
       denominator ` k ` that is strictly less than ` x ` .  In this manner, we
       get a monotonically increasing sequence that converges to ` x ` , and
       since each sequence converges to a unique real number, this mapping from
       reals to sequences of rational numbers is injective.  Note:  The ` NN `
       and ` QQ ` existence hypotheses provide for use with either ~ nnex and
       ~ qex , or ~ nnexALT and ~ qexALT .  The proof should not be modified to
       use any of those 4 theorems.  (Contributed by Mario Carneiro,
       13-May-2013.)  (Revised by Mario Carneiro, 16-Jun-2013.)  (Revised by
       NM, 15-Aug-2021.)  (Proof modification is discouraged.) $)
    rpnnen1 $p |- RR ~<_ ( QQ ^m NN ) $=
      ( vx vm vk vn vy vj cv cdiv co clt wbr cz crab cr cn csup cmpt weq breq1d
      oveq1 cbvrabv oveq2 rabbidv supeq1d oveq12d cbvmptv breq2 oveq1d mpteq2dv
      id syl5eq rpnnen1lem6 ) CDIZEIZJKZCIZLMZDNOZEFGPHQUOHIZJKZGIZLMZDNOZPLRZV
      AJKZSZSUSFIZUPJKZURLMDFNDFTUQVJURLUOVIUPJUBUAUCGCPVHEQUTPLRZUPJKZSZGCTZVH
      EQUQVCLMZDNOZPLRZUPJKZSVMHEQVGVRHETZVFVQVAUPJVSPVEVPLVSVDVODNVSVBUQVCLVAU
      PUOJUDUAUEUFVSULUGUHVNEQVRVLVNVQVKUPJVNPVPUTLVNVOUSDNVCURUQLUIUEUFUJUKUMU
      HABUN $.
  $}

  ${
    $d F k n x y $.  $d T n y $.
    rpnnen1.1OLD $e |- T = { n e. ZZ | ( n / k ) < x } $.
    rpnnen1.2OLD $e |- F = ( x e. RR |->
        ( k e. NN |-> ( sup ( T , RR , < ) / k ) ) ) $.
    $( Lemma for ~ rpnnen1OLD .  (Contributed by Mario Carneiro, 12-May-2013.)
       Obsolete version of ~ rpnnen1lem1 as of 13-Aug-2021.
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    rpnnen1lem1OLD $p |- ( x e. RR -> ( F ` x ) e. ( QQ ^m NN ) ) $=
      ( vy cv cr wcel cn clt co cq cz wa wbr c0 wrex csup cdiv cmpt cmap fvmpt2
      cfv cvv wceq nnex mptex mpan2 wf crab ssrab2 eqsstri wss wne cle wral a1i
      cmul nnre remulcl ancoms sylan2 btwnz simpld syl cc0 wb zre adantl simpll
      nngt0 jca ad2antlr ltdivmul syl3anc rexbidva mpbird sylibr neeq1i rabeq2i
      rabn0 wi syl2anc ltle sylbid impr sylan2b ralrimiva breq2 ralbidv suprzcl
      rspcev sseldi znq sylancom eqid fmptd qex elmap eqeltrd ) AIZJKZXDEUFZCLB
      JMUAZCIZUBNZUCZOLUDNZXEXJUGKXFXJUHCLXIUIUJAJXJUGEGUEUKXELOXJULXJXKKXECLXI
      OXJXEXHLKZXGPKXIOKXEXLQZBPXGBDIZXHUBNXDMRZDPUMZPFXODPUNUOZXMBPUPZBSUQZXNH
      IZURRZDBUSZHJTZXGBKXRXMXQUTXMXPSUQZXSXMXODPTZYDXMYEXNXHXDVANZMRZDPTZXMYFJ
      KZYHXLXEXHJKZYIXHVBZYJXEYIXHXDVCZVDVEZYIYHYFXNMRDPTDDYFVFVGVHXMXOYGDPXMXN
      PKZQZXNJKZXEYJVIXHMRZQZXOYGVJYNYPXMXNVKVLZXEXLYNVMZXLYRXEYNXLYJYQYKXHVNVO
      VPXNXDXHVQVRZVSVTXODPWDWABXPSFWBWAXMYIXNYFURRZDBUSZYCYMXMUUBDBXNBKXMYNXOQ
      UUBXODBPFWCXMYNXOUUBYOXOYGUUBUUAYOYPYIYGUUBWEYSYOYJXEYIXLYJXEYNYKVPYTYLWF
      XNYFWGWFWHWIWJWKYBUUCHYFJXTYFUHYAUUBDBXTYFXNURWLWMWOWFHDBWNVRWPXGXHWQWRXJ
      WSWTOLXJXAUIXBWAXC $.

    $( Lemma for ~ rpnnen1OLD .  (Contributed by Mario Carneiro, 12-May-2013.)
       Obsolete version of ~ rpnnen1lem3 as of 13-Aug-2021.
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    rpnnen1lem3OLD $p |- ( x e. RR -> A. n e. ran ( F ` x ) n <_ x ) $=
      ( vy cv cr wcel cle wbr wral cn wa clt co cvv cz csup cdiv cmpt wceq nnex
      cfv crn mptex fvmpt2 mpan2 fveq1d ovex eqid sylan9eq cmul rabeq2i cc0 zre
      wb adantl simpll nnre nngt0 jca ad2antlr ltdivmul syl3anc remulcl syl2anc
      wi ltle sylbid impr sylan2b ralrimiva wss c0 wne wrex crab ssrab2 eqsstri
      zssre sstri a1i ancoms sylan2 btwnz simpld syl mpbird rabn0 sylibr neeq1i
      rexbidva breq2 ralbidv rspcev suprleub syl31anc rpnnen1lem2 zred ledivmul
      simpl eqbrtrd cq wfn cmap rpnnen1lem1OLD qex elmap sylib breq1 ralrn 3syl
      wf ffn ) AIZJKZDIZXRLMZDXREUFZUGNZCIZYBUFZXRLMZCONZXSYFCOXSYDOKZPZYEBJQUA
      ZYDUBRZXRLXSYHYEYDCOYKUCZUFZYKXSYDYBYLXSYLSKYBYLUDCOYKUEUHAJYLSEGUIUJUKYH
      YKSKYMYKUDYJYDUBULCOYKSYLYLUMUIUJUNYIYKXRLMZYJYDXRUORZLMZYIYPXTYOLMZDBNZY
      IYQDBXTBKYIXTTKZXTYDUBRXRQMZPYQYTDBTFUPYIYSYTYQYIYSPZYTXTYOQMZYQUUAXTJKZX
      SYDJKZUQYDQMZPZYTUUBUSYSUUCYIXTURUTZXSYHYSVAZYHUUFXSYSYHUUDUUEYDVBZYDVCVD
      ZVEXTXRYDVFVGZUUAUUCYOJKZUUBYQVJUUGUUAUUDXSUULYHUUDXSYSUUIVEUUHYDXRVHZVIX
      TYOVKVIVLVMVNVOZYIBJVPZBVQVRZXTHIZLMZDBNZHJVSZUULYPYRUSUUOYIBTJBYTDTVTZTF
      YTDTWAWBWCWDWEYIUVAVQVRZUUPYIYTDTVSZUVBYIUVCUUBDTVSZYIUULUVDYHXSUUDUULUUI
      UUDXSUULUUMWFWGZUULUVDYOXTQMDTVSDDYOWHWIWJYIYTUUBDTUUKWOWKYTDTWLWMBUVAVQF
      WNWMYIUULYRUUTUVEUUNUUSYRHYOJUUQYOUDUURYQDBUUQYOXTLWPWQWRVIUVEHDDBYOWSWTW
      KYIYJJKXSUUFYNYPUSYIYJABCDEFGXAXBXSYHXDYHUUFXSUUJUTYJXRYDXCVGWKXEVOXSOXFY
      BXPZYBOXGYCYGUSXSYBXFOXHRKUVFABCDEFGXIXFOYBXJUEXKXLOXFYBXQYAYFDCOYBXTYEXR
      LXMXNXOWK $.

    $( Lemma for ~ rpnnen1OLD .  (Contributed by Mario Carneiro, 12-May-2013.)
       Obsolete version of ~ rpnnen1lem4 as of 13-Aug-2021.
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    rpnnen1lem4OLD $p |- ( x e. RR -> sup ( ran ( F ` x ) , RR , < ) e. RR ) $=
      ( vy cv cr wcel c0 wne cle wbr wral cn cq sylib syl cfv crn wss wrex csup
      clt wf cmap co rpnnen1lem1OLD qex elmap frn qssre syl6ss cdm c1 1nn ne0ii
      nnex fdm neeq1d mpbiri dm0rn0 necon3bii rpnnen1lem3OLD weq ralbidv rspcev
      breq2 mpdan suprcl syl3anc ) AIZJKZVNEUAZUBZJUCZVQLMZDIZHIZNOZDVQPZHJUDZV
      QJUFUEJKVOQRVPUGZVRVOVPRQUHUIKWEABCDEFGUJRQVPUKUTULSZWEVQRJQRVPUMUNUOTVOW
      EVSWFWEVPUPZLMZVSWEWHQLMUQQURUSWEWGQLQRVPVAVBVCWGLVQLVPVDVESTVOVTVNNOZDVQ
      PZWDABCDEFGVFWCWJHVNJHAVGWBWIDVQWAVNVTNVJVHVIVKHDVQVLVM $.

    $( Lemma for ~ rpnnen1OLD .  (Contributed by Mario Carneiro, 12-May-2013.)
       Obsolete version of ~ rpnnen1lem5 as of 13-Aug-2021.
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    rpnnen1lem5OLD $p |- ( x e. RR -> sup ( ran ( F ` x ) , RR , < ) = x ) $=
      ( vy cr wcel clt wceq cle wbr c0 cn cq co wa cz cv cfv crn rpnnen1lem3OLD
      csup wn wral wss wne wrex wb cmap rpnnen1lem1OLD qex nnex elmap sylib frn
      wf qssre syl6ss syl cdm c1 1nn ne0ii neeq1d mpbiri dm0rn0 necon3bii breq2
      ralbidv rspcev mpdan id suprleub syl31anc mpbird cmin cdiv rpnnen1lem4OLD
      fdm resubcl adantr cc0 posdif mpancom biimpa gt0ne0d rereccld arch ex w3a
      caddc rpnnen1lem2 zred 3adant3 ltp1d wi nnre nngt0 ltrec1 syl2an ad2antrr
      jca nnrecre adantl simpll ltaddsub2d wfn ffn fnfvelrn sylan sseldd suprub
      3jca syl2anc leadd1dd readdcld readdcl simpl expd syl3anc adantlr sylbird
      lelttr mpd sylbid peano2zd oveq1 breq1d elrab2 biimpri ad2antlr sylibr cc
      cvv fvmpt2 mpan2 syld crab ssrab2 eqsstri zssre sstri cmul remulcl ancoms
      a1i sylan2 btwnz simpld zre ltdivmul rexbidva neeq1i rabeq2i ltle sylan2b
      rabn0 impr ralrimiva syldan zcnd 1cnd nncn nnne0 divdir cmpt mptex fveq1d
      ovex eqid sylan9eq oveq1d eqtr4d lenltd exp31 com4l com14 3imp rexlimdv3a
      3imtr3d mt2d pm2.01d eqlelt mpbir2and ) AUAZIJZUWHEUBZUCZIKUEZUWHLZUWLUWH
      MNZUWLUWHKNZUFZUWIUWNDUAZUWHMNZDUWKUGZABCDEFGUDZUWIUWKIUHZUWKOUIZUWQHUAZM
      NZDUWKUGZHIUJZUWIUWNUWSUKUWIPQUWJUSZUXAUWIUWJQPULRJUXGABCDEFGUMQPUWJUNUOU
      PUQZUXGUWKQIPQUWJURUTVAVBZUWIUXGUXBUXHUXGUWJVCZOUIZUXBUXGUXKPOUIVDPVEVFUX
      GUXJPOPQUWJWBVGVHUXJOUWKOUWJVIVJUQVBZUWIUWSUXFUWTUXEUWSHUWHIUXCUWHLUXDUWR
      DUWKUXCUWHUWQMVKVLVMVNZUWIVOHDDUWKUWHVPVQVRUWIUWOUWIUWOVDUWHUWLVSRZVTRZCU
      AZKNZCPUJZUWPUWIUWOUXRUWIUWOSZUXOIJUXRUXSUXNUWIUXNIJZUWOUWIUWLIJZUXTABCDE
      FGWAZUWHUWLWCVNWDZUXSUXNUWIUWOWEUXNKNZUYAUWIUWOUYDUKUYBUWLUWHWFWGWHZWIWJU
      XOCWKVBWLUWIUXQUWPCPUWIUXPPJZUXQWMZUWOBIKUEZUYHVDWNRZKNZUYGUYHUWIUYFUYHIJ
      UXQUWIUYFSZUYHABCDEFGWOZWPZWQWRUWIUYFUXQUWOUYJUFZWSUWOUYFUXQUWIUYNUWIUWOU
      YFUXQUYNUWIUWOUYFUXQUYNWSUXSUYFSZUXQUXPUWJUBZVDUXPVTRZWNRZUWHKNZUYNUYOUXQ
      UYQUXNKNZUYSUXSUXTUYDSUXPIJZWEUXPKNZSZUXQUYTUKUYFUXSUXTUYDUYCUYEXEUYFVUAV
      UBUXPWTZUXPXAXEZUXNUXPXBXCUYOUYTUWLUYQWNRZUWHKNZUYSUYOUWLUYQUWHUWIUYAUWOU
      YFUYBXDUYFUYQIJZUXSUXPXFZXGUWIUWOUYFXHXIUWIUYFVUGUYSWSZUWOUYKUYRVUFMNZVUJ
      UYKUYPUWLUYQUYKUWKIUYPUWIUXAUYFUXIWDUWIUWJPXJZUYFUYPUWKJZUWIUXGVULUXHPQUW
      JXKVBPUXPUWJXLXMZXNZUWIUYAUYFUYBWDUYFVUHUWIVUIXGZUYKUXAUXBUXFWMZVUMUYPUWL
      MNUWIVUQUYFUWIUXAUXBUXFUXIUXLUXMXPWDVUNHDUWKUYPXOXQXRUYKUYRIJZVUFIJZUWIVU
      KVUJWSUYKUYPUYQVUOVUPXSUWIUYAVUHVUSUYFUYBVUIUWLUYQXTXCUWIUYFYAVURVUSUWIWM
      VUKVUGUYSUYRVUFUWHYFYBYCYGYDYEYHUWIUYFUYSUYNWSUWOUYKUYIUXPVTRZUWHKNZUYIUY
      HMNZUYSUYNUYKVVAVVBUYKVVAUYIBJZVVBUYKUYITJZVVAVVCUYKUYHUYLYIZVVCVVDVVASUW
      QUXPVTRZUWHKNZVVADUYITBUWQUYILVVFVUTUWHKUWQUYIUXPVTYJYKFYLYMXMUYKBIUHZBOU
      IZUXDDBUGZHIUJZWMVVCVVBUYKVVHVVIVVKVVHUYKBTIBVVGDTUUAZTFVVGDTUUBUUCUUDUUE
      UUIUYKVVLOUIZVVIUYKVVGDTUJZVVMUYKVVNUWQUXPUWHUUFRZKNZDTUJZUYKVVOIJZVVQUYF
      UWIVUAVVRVUDVUAUWIVVRUXPUWHUUGZUUHUUJZVVRVVQVVOUWQKNDTUJDDVVOUUKUULVBUYKV
      VGVVPDTUYKUWQTJZSZUWQIJZUWIVUCVVGVVPUKVWAVWCUYKUWQUUMXGZUWIUYFVWAXHZUYFVU
      CUWIVWAVUEYNUWQUWHUXPUUNYCZUUOVRVVGDTUUTYOBVVLOFUUPYOUYKVVRUWQVVOMNZDBUGZ
      VVKVVTUYKVWGDBUWQBJUYKVWAVVGSVWGVVGDBTFUUQUYKVWAVVGVWGVWBVVGVVPVWGVWFVWBV
      WCVVRVVPVWGWSVWDVWBVUAUWIVVRUYFVUAUWIVWAVUDYNVWEVVSXQUWQVVOUURXQYHUVAUUSU
      VBVVJVWHHVVOIUXCVVOLUXDVWGDBUXCVVOUWQMVKVLVMXQXPHDBUYIXOXMUVCWLUYKVUTUYRU
      WHKUYKVUTUYHUXPVTRZUYQWNRZUYRUYKUYHYPJVDYPJUXPYPJZUXPWEUIZSZVUTVWJLUYKUYH
      UYLUVDUYKUVEUYFVWMUWIUYFVWKVWLUXPUVFUXPUVGXEXGUYHVDUXPUVHYCUYKUYPVWIUYQWN
      UWIUYFUYPUXPCPVWIUVIZUBZVWIUWIUXPUWJVWNUWIVWNYQJUWJVWNLCPVWIUOUVJAIVWNYQE
      GYRYSUVKUYFVWIYQJVWOVWILUYHUXPVTUVLCPVWIYQVWNVWNUVMYRYSUVNUVOUVPYKUYKUYIU
      YHUYKUYIVVEWPUYMUVQUWCYDYTUVRUVSUVTUWAUWDUWBYTUWEUYAUWIUWMUWNUWPSUKUYBUWL
      UWHUWFWGUWG $.

    $( One half of ~ rpnnen , where we show an injection from the real numbers
       to sequences of rational numbers.  Specifically, we map a real number
       ` x ` to the sequence ` ( F `` x ) : NN --> QQ ` such that
       ` ( ( F `` x ) `` k ) ` is the largest rational number with denominator
       ` k ` that is strictly less than ` x ` .  In this manner, we get a
       monotonically increasing sequence that converges to ` x ` , and since
       each sequence converges to a unique real number, this mapping from reals
       to sequences of rational numbers is injective.  (Contributed by Mario
       Carneiro, 13-May-2013.)  (Revised by Mario Carneiro, 16-Jun-2013.)
       Obsolete version of ~ rpnnen1 as of 13-Aug-2021.
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    rpnnen1OLD $p |- RR ~<_ ( QQ ^m NN ) $=
      ( vy cq cn cmap cvv wcel cr cv cfv wceq crn clt csup co rpnnen1lem1OLD wa
      cdom wbr ovex rneq supeq1d rpnnen1lem5OLD fveq2 eqeq12d vtoclga eqeqan12d
      rneqd id syl5ib impbid1 dom2 ax-mp ) IJKUAZLMNUTUDUEIJKUFAHNUTAOZEPZHOZEP
      ZLABCDEFGUBVANMZVCNMZUCZVBVDQZVAVCQZVHVBRZNSTZVDRZNSTZQVGVIVHNVJVLSVBVDUG
      UHVEVFVKVAVMVCABCDEFGUIZVKVAQVMVCQAVCNVIVKVMVAVCVINVJVLSVIVBVDVAVCEUJZUNU
      HVIUOUKVNULUMUPVOUQURUS $.
  $}

  $( Alternate proof of ~ reex .  (Contributed by NM, 30-Jul-2004.)  (Revised
     by Mario Carneiro, 23-Aug-2014.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  reexALT $p |- RR e. _V $=
    ( cr cq cn cmap co cdom wbr cvv wcel nnexALT qexALT rpnnen1 reldom brrelexi
    ax-mp ) ABCDEZFGAHIJKLAPFMNO $.

  ${
    $d F u v w z $.  $d x y u v w z $.
    cnref1o.1 $e |- F = ( x e. RR , y e. RR |-> ( x + ( _i x. y ) ) ) $.
    $( There is a natural one-to-one mapping from ` ( RR X. RR ) ` to ` CC ` ,
       where we map ` <. x , y >. ` to ` ( x + ( _i x. y ) ) ` .  In our
       construction of the complex numbers, this is in fact our _definition_ of
       ` CC ` (see ~ df-c ), but in the axiomatic treatment we can only show
       that there is the expected mapping between these two sets.  (Contributed
       by Mario Carneiro, 16-Jun-2013.)  (Revised by Mario Carneiro,
       17-Feb-2014.) $)
    cnref1o $p |- F : ( RR X. RR ) -1-1-onto-> CC $=
      ( vz vw vu vv cr cc cv cfv wceq wcel ci cmul co caddc wa wrex cxp wf1 wfo
      wf1o wf wi wral wfn ovex fnmpt2i c1st c2nd cop 1st2nd2 fveq2d df-ov xp1st
      syl6eqr xp2nd oveq1 oveq2 oveq2d ovmpt2 syl2anc eqtrd recnd mulcl sylancr
      ax-icn addcld eqeltrd rgen ffnfv mpbir2an wb jca cru syl2an fveq2 oveq12d
      eqeq12d vtoclga eqeqan12d fvex opth syl6bb 3bitr4d biimpd rgen2a 2rexbiia
      dff13 cnre eqeq2d sylibr rexxp dffo3 df-f1o ) IIUAZJCUDWRJCUBZWRJCUCZWSWR
      JCUEZEKZCLZFKZCLZMZXBXDMZUFZFWRUGEWRUGXACWRUHXCJNZEWRUGABIIAKZOBKZPQZRQZC
      DXJXLRUIUJXIEWRXBWRNZXCXBUKLZOXBULLZPQZRQZJXNXCXOXPCQZXRXNXCXOXPUMZCLXSXN
      XBXTCXBIIUNZUOXOXPCUPURXNXOINZXPINZXSXRMXBIIUQZXBIIUSZABXOXPIIXMXRCXOXLRQ
      XJXOXLRUTXKXPMXLXQXORXKXPOPVAVBDXOXQRUIVCVDVEZXNXOXQXNXOYDVFXNOJNXPJNXQJN
      VIXNXPYEVFOXPVGVHVJVKVLEWRJCVMVNZXHEFWRXNXDWRNZSZXFXGYIXRXDUKLZOXDULLZPQZ
      RQZMZXOYJMXPYKMSZXFXGXNYBYCSYJINZYKINZSYNYOVOYHXNYBYCYDYEVPYHYPYQXDIIUQXD
      IIUSVPXOXPYJYKVQVRXNYHXCXRXEYMYFXCXRMXEYMMEXDWRXGXCXEXRYMXBXDCVSXGXOYJXQY
      LRXBXDUKVSXGXPYKOPXBXDULVSVBVTWAYFWBWCYIXGXTYJYKUMZMYOXNYHXBXTXDYRYAXDIIU
      NWCXOXPYJYKXBUKWDXBULWDWEWFWGWHWIEFWRJCWKVNWTXAXDXCMZEWRTZFJUGYGYTFJXDJNZ
      XDGKZHKZCQZMZHITGITZYTUUAXDUUBOUUCPQZRQZMZHITGITUUFGHXDWLUUEUUIGHIIUUBINU
      UCINSUUDUUHXDABUUBUUCIIXMUUHCUUBXLRQXJUUBXLRUTXKUUCMXLUUGUUBRXKUUCOPVAVBD
      UUBUUGRUIVCWMWJWNYSUUEEGHIIXBUUBUUCUMZMZXCUUDXDUUKXCUUJCLUUDXBUUJCVSUUBUU
      CCUPURWMWOWNVLEFWRJCWPVNWRJCWQVN $.
  $}

  ${
    $d x y $.
    $( The set of complex numbers exists.  This theorem shows that ~ ax-cnex is
       redundant if we assume ~ ax-rep .  See also ~ ax-cnex .  (Contributed by
       NM, 30-Jul-2004.)  (Revised by Mario Carneiro, 16-Jun-2013.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    cnexALT $p |- CC e. _V $=
      ( vx vy cr cxp cvv wcel cc cv ci cmul co caddc wfo reexALT xpex wf1o eqid
      cmpt2 cnref1o f1ofo ax-mp fornex mp2 ) CCDZEFUDGABCCAHIBHJKLKRZMZGEFCCNNO
      UDGUEPUFABUEUEQSUDGUETUAUDGEUEUBUC $.
  $}

  $( The set of extended reals exists.  (Contributed by NM, 24-Dec-2006.) $)
  xrex $p |- RR* e. _V $=
    ( cxr cr cpnf cmnf cpr cun cvv df-xr reex prex unex eqeltri ) ABCDEZFGHBMIC
    DJKL $.

  $( The addition operation is a set.  (Contributed by NM, 19-Oct-2004.)
     (Revised by Mario Carneiro, 17-Nov-2014.) $)
  addex $p |- + e. _V $=
    ( cc cxp caddc wf cvv wcel ax-addf cnex xpex fex2 mp3an ) AABZACDLEFAEFCEFG
    AAHHIHLACEEJK $.

  $( The multiplication operation is a set.  (Contributed by NM, 19-Oct-2004.)
     (Revised by Mario Carneiro, 17-Nov-2014.) $)
  mulex $p |- x. e. _V $=
    ( cc cxp cmul wf cvv wcel ax-mulf cnex xpex fex2 mp3an ) AABZACDLEFAEFCEFGA
    AHHIHLACEEJK $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Order sets
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Positive reals (as a subset of complex numbers)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c RR+ $. $( The set of positive reals (blackboard bold R^+). $)

  $( Extend class notation to include the class of positive reals. $)
  crp $a class RR+ $.

  $( Define the set of positive reals.  Definition of positive numbers in
     [Apostol] p. 20.  (Contributed by NM, 27-Oct-2007.) $)
  df-rp $a |- RR+ = { x e. RR | 0 < x } $.

  ${
    $d x A $.
    $( Membership in the set of positive reals.  (Contributed by NM,
       27-Oct-2007.) $)
    elrp $p |- ( A e. RR+ <-> ( A e. RR /\ 0 < A ) ) $=
      ( vx cc0 cv clt wbr cr crp breq2 df-rp elrab2 ) CBDZEFCAEFBAGHLACEIBJK $.
  $}

  ${
    elrpi.1 $e |- A e. RR $.
    elrpi.2 $e |- 0 < A $.
    $( Membership in the set of positive reals.  (Contributed by NM,
       23-Feb-2008.) $)
    elrpii $p |- A e. RR+ $=
      ( crp wcel cr cc0 clt wbr elrp mpbir2an ) ADEAFEGAHIBCAJK $.
  $}

  $( 1 is a positive real.  (Contributed by Jeff Hankins, 23-Nov-2008.) $)
  1rp $p |- 1 e. RR+ $=
    ( c1 1re 0lt1 elrpii ) ABCD $.

  $( 2 is a positive real.  (Contributed by Mario Carneiro, 28-May-2016.) $)
  2rp $p |- 2 e. RR+ $=
    ( c2 2re 2pos elrpii ) ABCD $.

  $( 3 is a positive real.  (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
  3rp $p |- 3 e. RR+ $=
    ( c3 3re 3pos elrpii ) ABCD $.

  $( A positive real is a real.  (Contributed by NM, 27-Oct-2007.) $)
  rpre $p |- ( A e. RR+ -> A e. RR ) $=
    ( vx crp cr cc0 cv clt wbr crab df-rp ssrab2 eqsstri sseli ) CDACEBFGHZBDID
    BJNBDKLM $.

  $( A positive real is an extended real.  (Contributed by Mario Carneiro,
     21-Aug-2015.) $)
  rpxr $p |- ( A e. RR+ -> A e. RR* ) $=
    ( crp wcel rpre rexrd ) ABCAADE $.

  $( A positive real is a complex number.  (Contributed by NM, 11-Nov-2008.) $)
  rpcn $p |- ( A e. RR+ -> A e. CC ) $=
    ( crp wcel rpre recnd ) ABCAADE $.

  $( A positive integer is a positive real.  (Contributed by NM,
     28-Nov-2008.) $)
  nnrp $p |- ( A e. NN -> A e. RR+ ) $=
    ( cn wcel cr cc0 clt wbr crp nnre nngt0 elrp sylanbrc ) ABCADCEAFGAHCAIAJAK
    L $.

  $( The positive reals are a subset of the reals.  (Contributed by NM,
     24-Feb-2008.) $)
  rpssre $p |- RR+ C_ RR $=
    ( vx crp cr cv rpre ssriv ) ABCADEF $.

  $( A positive real is greater than zero.  (Contributed by FL,
     27-Dec-2007.) $)
  rpgt0 $p |- ( A e. RR+ -> 0 < A ) $=
    ( crp wcel cr cc0 clt wbr elrp simprbi ) ABCADCEAFGAHI $.

  $( A positive real is greater than or equal to zero.  (Contributed by NM,
     22-Feb-2008.) $)
  rpge0 $p |- ( A e. RR+ -> 0 <_ A ) $=
    ( crp wcel cr cc0 clt wbr cle rpre rpgt0 wi 0re ltle mpan sylc ) ABCADCZEAF
    GZEAHGZAIAJEDCPQRKLEAMNO $.

  $( A positive real is a positive real number.  (Contributed by NM,
     11-Nov-2008.)  (Revised by Mario Carneiro, 31-Jan-2014.) $)
  rpregt0 $p |- ( A e. RR+ -> ( A e. RR /\ 0 < A ) ) $=
    ( crp wcel cr cc0 clt wbr wa elrp biimpi ) ABCADCEAFGHAIJ $.

  $( A positive real is a nonnegative real number.  (Contributed by Mario
     Carneiro, 31-Jan-2014.) $)
  rprege0 $p |- ( A e. RR+ -> ( A e. RR /\ 0 <_ A ) ) $=
    ( crp wcel cr cc0 cle wbr rpre rpge0 jca ) ABCADCEAFGAHAIJ $.

  $( A positive real is nonzero.  (Contributed by NM, 18-Jul-2008.) $)
  rpne0 $p |- ( A e. RR+ -> A =/= 0 ) $=
    ( crp wcel cr cc0 clt wbr wa wne rpregt0 gt0ne0 syl ) ABCADCEAFGHAEIAJAKL
    $.

  $( A positive real is a nonzero real number.  (Contributed by NM,
     11-Nov-2008.) $)
  rprene0 $p |- ( A e. RR+ -> ( A e. RR /\ A =/= 0 ) ) $=
    ( crp wcel cr cc0 wne rpre rpne0 jca ) ABCADCAEFAGAHI $.

  $( A positive real is a nonzero complex number.  (Contributed by NM,
     11-Nov-2008.) $)
  rpcnne0 $p |- ( A e. RR+ -> ( A e. CC /\ A =/= 0 ) ) $=
    ( crp wcel cc cc0 wne rpcn rpne0 jca ) ABCADCAEFAGAHI $.

  $( A positive real number is a complex number not being 0.  (Contributed by
     AV, 29-May-2020.) $)
  rpcndif0 $p |- ( A e. RR+ -> A e. ( CC \ { 0 } ) ) $=
    ( crp wcel cc cc0 wne wa csn cdif rpcnne0 eldifsn sylibr ) ABCADCAEFGADEHIC
    AJADEKL $.

  $( Quantification over positive reals.  (Contributed by NM, 12-Feb-2008.) $)
  ralrp $p |- ( A. x e. RR+ ph <-> A. x e. RR ( 0 < x -> ph ) ) $=
    ( cc0 cv clt wbr wi crp cr wcel wa elrp imbi1i impexp bitri ralbii2 ) ACBDZ
    EFZAGZBHIQHJZAGQIJZRKZAGUASGTUBAQLMUARANOP $.

  $( Quantification over positive reals.  (Contributed by Mario Carneiro,
     21-May-2014.) $)
  rexrp $p |- ( E. x e. RR+ ph <-> E. x e. RR ( 0 < x /\ ph ) ) $=
    ( cc0 cv clt wbr wa crp cr wcel elrp anbi1i anass bitri rexbii2 ) ACBDZEFZA
    GZBHIPHJZAGPIJZQGZAGTRGSUAAPKLTQAMNO $.

  $( Closure law for addition of positive reals.  Part of Axiom 7 of [Apostol]
     p. 20.  (Contributed by NM, 27-Oct-2007.) $)
  rpaddcl $p |- ( ( A e. RR+ /\ B e. RR+ ) -> ( A + B ) e. RR+ ) $=
    ( crp wcel wa caddc co cr cc0 clt wbr rpre readdcl syl2an elrp an4s syl2anb
    addgt0 sylanbrc ) ACDZBCDZEABFGZHDZIUBJKZUBCDTAHDZBHDZUCUAALBLABMNTUEIAJKZE
    UFIBJKZEUDUAAOBOUEUFUGUHUDABRPQUBOS $.

  $( Closure law for multiplication of positive reals.  Part of Axiom 7 of
     [Apostol] p. 20.  (Contributed by NM, 27-Oct-2007.) $)
  rpmulcl $p |- ( ( A e. RR+ /\ B e. RR+ ) -> ( A x. B ) e. RR+ ) $=
    ( crp wcel wa cmul co cc0 clt wbr rpre remulcl syl2an elrp syl2anb sylanbrc
    cr mulgt0 ) ACDZBCDZEABFGZQDZHUAIJZUACDSAQDZBQDZUBTAKBKABLMSUDHAIJEUEHBIJEU
    CTANBNABROUANP $.

  $( Closure law for division of positive reals.  (Contributed by FL,
     27-Dec-2007.) $)
  rpdivcl $p |- ( ( A e. RR+ /\ B e. RR+ ) -> ( A / B ) e. RR+ ) $=
    ( crp wcel wa cdiv co cr cc0 clt wbr rpre rprene0 redivcl 3expb syl2an elrp
    wne divgt0 syl2anb sylanbrc ) ACDZBCDZEABFGZHDZIUDJKZUDCDUBAHDZBHDZBIRZEUEU
    CALBMUGUHUIUEABNOPUBUGIAJKEUHIBJKEUFUCAQBQABSTUDQUA $.

  $( Closure law for reciprocation of positive reals.  (Contributed by Jeff
     Hankins, 23-Nov-2008.) $)
  rpreccl $p |- ( A e. RR+ -> ( 1 / A ) e. RR+ ) $=
    ( c1 crp wcel cdiv co 1rp rpdivcl mpan ) BCDACDBAEFCDGBAHI $.

  $( Closure law for half of a positive real.  (Contributed by Mario Carneiro,
     31-Jan-2014.) $)
  rphalfcl $p |- ( A e. RR+ -> ( A / 2 ) e. RR+ ) $=
    ( crp wcel c2 cdiv co 2rp rpdivcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( A number greater or equal to a positive real is positive real.
     (Contributed by Mario Carneiro, 28-May-2016.) $)
  rpgecl $p |- ( ( A e. RR+ /\ B e. RR /\ A <_ B ) -> B e. RR+ ) $=
    ( crp wcel cle wbr w3a cc0 clt simp2 0red rpre 3ad2ant1 rpgt0 simp3 ltletrd
    cr elrp sylanbrc ) ACDZBQDZABEFZGZUAHBIFBCDTUAUBJZUCHABUCKTUAAQDUBALMUDTUAH
    AIFUBANMTUAUBOPBRS $.

  $( Half of a positive real is less than the original number.  (Contributed by
     Mario Carneiro, 21-May-2014.) $)
  rphalflt $p |- ( A e. RR+ -> ( A / 2 ) < A ) $=
    ( crp wcel cr cc0 clt wbr wa c2 cdiv co elrp halfpos biimpa sylbi ) ABCADCZ
    EAFGZHAIJKAFGZALPQRAMNO $.

  $( Closure law for division of a real by a positive real.  (Contributed by
     NM, 10-Nov-2008.) $)
  rerpdivcl $p |- ( ( A e. RR /\ B e. RR+ ) -> ( A / B ) e. RR ) $=
    ( crp wcel cr cc0 wne wa cdiv co rprene0 redivcl 3expb sylan2 ) BCDAEDZBEDZ
    BFGZHABIJEDZBKOPQRABLMN $.

  $( A nonnegative number plus one is a positive number.  (Contributed by Mario
     Carneiro, 5-Oct-2015.) $)
  ge0p1rp $p |- ( ( A e. RR /\ 0 <_ A ) -> ( A + 1 ) e. RR+ ) $=
    ( cr wcel cc0 cle wbr wa c1 caddc co clt crp peano2re 0red simpl simpr ltp1
    adantr lelttrd elrp sylanbrc ) ABCZDAEFZGZAHIJZBCZDUEKFUELCUBUFUCAMRZUDDAUE
    UDNUBUCOUGUBUCPUBAUEKFUCAQRSUETUA $.

  $( Either a nonzero real or its negation is a positive real, but not both.
     Axiom 8 of [Apostol] p. 20.  (Contributed by NM, 7-Nov-2008.) $)
  rpneg $p |- ( ( A e. RR /\ A =/= 0 ) -> ( A e. RR+ <-> -. -u A e. RR+ ) ) $=
    ( cr wcel cc0 wne wa clt wbr cneg wn crp wo wi 0re mpan imp adantr wb bitrd
    elrp cle ltle olcd renegcl pm2.24d ltlen biimprd expcomd jaod simpl impbid2
    jctild lenlt lt0neg1 notbid orbi2d ianor syl6bbr notbii 3bitr4g ) ABCZADEZF
    ZVADAGHZFZAIZBCZDVFGHZFZJZAKCVFKCZJVCVEVGJZVHJZLZVJVCVEVLDAUAHZLZVNVCVEVPVE
    VOVLVAVDVODBCZVAVDVOMNDAUBOPUCVCVPVDVAVCVLVDVOVAVLVDMVBVAVGVDAUDUEQVAVBVOVD
    MVAVOVBVDVAVDVOVBFZVQVAVDVRRNDAUFOUGUHPUIVAVBUJULUKVCVOVMVLVAVOVMRVBVAVOADG
    HZJZVMVQVAVOVTRNDAUMOVAVSVHAUNUOSQUPSVGVHUQURATVKVIVFTUSUT $.

  $( Elementhood of a negation in the positive real numbers.  (Contributed by
     Thierry Arnoux, 19-Sep-2018.) $)
  negelrp $p |- ( A e. RR -> ( -u A e. RR+ <-> A < 0 ) ) $=
    ( cneg crp wcel cr cc0 clt wbr elrp lt0neg1 renegcl biantrurd bitr2d syl5bb
    wa ) ABZCDPEDZFPGHZOZAEDZAFGHZPITUARSAJTQRAKLMN $.

  $( Zero is not a positive real.  Axiom 9 of [Apostol] p. 20.  (Contributed by
     NM, 27-Oct-2007.) $)
  0nrp $p |- -. 0 e. RR+ $=
    ( cc0 crp wcel clt wbr 0re ltnri rpgt0 mto ) ABCAADEAFGAHI $.

  $( Subtracting a positive real from another number decreases it.
     (Contributed by FL, 27-Dec-2007.) $)
  ltsubrp $p |- ( ( A e. RR /\ B e. RR+ ) -> ( A - B ) < A ) $=
    ( crp wcel cr cc0 clt wbr wa cmin co elrp wi ltsubpos biimpd expcom sylan2b
    imp32 ) BCDAEDZBEDZFBGHZIABJKAGHZBLSTUAUBTSUAUBMTSIUAUBBANOPRQ $.

  $( Adding a positive number to another number increases it.  (Contributed by
     FL, 27-Dec-2007.) $)
  ltaddrp $p |- ( ( A e. RR /\ B e. RR+ ) -> A < ( A + B ) ) $=
    ( crp wcel cr cc0 clt wbr wa caddc co elrp wi ltaddpos biimpd imp32 sylan2b
    expcom ) BCDAEDZBEDZFBGHZIAABJKGHZBLSTUAUBTSUAUBMTSIUAUBBANORPQ $.

  $( Two ways to say one number is less than another.  (Contributed by Mario
     Carneiro, 21-May-2014.) $)
  difrp $p |- ( ( A e. RR /\ B e. RR ) ->
                ( A < B <-> ( B - A ) e. RR+ ) ) $=
    ( cr wcel wa clt wbr cc0 cmin co crp posdif wb resubcl ancoms elrp baib syl
    bitr4d ) ACDZBCDZEZABFGHBAIJZFGZUCKDZABLUBUCCDZUEUDMUATUFBANOUEUFUDUCPQRS
    $.

  ${
    elrpd.1 $e |- ( ph -> A e. RR ) $.
    elrpd.2 $e |- ( ph -> 0 < A ) $.
    $( Membership in the set of positive reals.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    elrpd $p |- ( ph -> A e. RR+ ) $=
      ( cr wcel cc0 clt wbr crp elrp sylanbrc ) ABEFGBHIBJFCDBKL $.
  $}

  ${
    nnrpd.1 $e |- ( ph -> A e. NN ) $.
    $( A positive integer is a positive real.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    nnrpd $p |- ( ph -> A e. RR+ ) $=
      ( cn wcel crp nnrp syl ) ABDEBFECBGH $.
  $}

  $( An integer greater than 1 is a positive real number not equal to 0 or 1.
     Useful for working with integer logarithm bases (which is a common case,
     e.g. base 2, base 3 or base 10).  (Contributed by Thierry Arnoux,
     26-Sep-2017.) $)
  zgt1rpn0n1 $p |- ( B e. ( ZZ>= ` 2 ) -> ( B e. RR+ /\ B =/= 0 /\ B =/= 1 ) )
    $=
    ( c2 cuz cfv wcel crp cc0 wne eluz2nn nnrpd cle wbr clt 2pos 0re 2re nelne2
    c1 wn mpan2 ltnlei mpbi eluzle mto 1nuz2 3jca ) ABCDZEZAFEAGHZARHZUHAAIJUHG
    UGEZSUIUKBGKLZGBMLULSNGBOPUAUBBGUCUDAGUGQTUHRUGESUJUEARUGQTUF $.

  ${
    rpred.1 $e |- ( ph -> A e. RR+ ) $.
    $( A positive real is a real.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    rpred $p |- ( ph -> A e. RR ) $=
      ( crp cr rpssre sseldi ) ADEBFCG $.

    $( A positive real is an extended real.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    rpxrd $p |- ( ph -> A e. RR* ) $=
      ( rpred rexrd ) ABABCDE $.

    $( A positive real is a complex number.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    rpcnd $p |- ( ph -> A e. CC ) $=
      ( rpred recnd ) ABABCDE $.

    $( A positive real is greater than zero.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    rpgt0d $p |- ( ph -> 0 < A ) $=
      ( crp wcel cc0 clt wbr rpgt0 syl ) ABDEFBGHCBIJ $.

    $( A positive real is greater than or equal to zero.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rpge0d $p |- ( ph -> 0 <_ A ) $=
      ( crp wcel cc0 cle wbr rpge0 syl ) ABDEFBGHCBIJ $.

    $( A positive real is nonzero.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    rpne0d $p |- ( ph -> A =/= 0 ) $=
      ( crp wcel cc0 wne rpne0 syl ) ABDEBFGCBHI $.

    $( A positive real is real and greater than zero.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rpregt0d $p |- ( ph -> ( A e. RR /\ 0 < A ) ) $=
      ( cr wcel cc0 clt wbr rpred rpgt0d jca ) ABDEFBGHABCIABCJK $.

    $( A positive real is real and greater or equal to zero.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    rprege0d $p |- ( ph -> ( A e. RR /\ 0 <_ A ) ) $=
      ( cr wcel cc0 cle wbr rpred rpge0d jca ) ABDEFBGHABCIABCJK $.

    $( A positive real is a nonzero real number.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rprene0d $p |- ( ph -> ( A e. RR /\ A =/= 0 ) ) $=
      ( cr wcel cc0 wne rpred rpne0d jca ) ABDEBFGABCHABCIJ $.

    $( A positive real is a nonzero complex number.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rpcnne0d $p |- ( ph -> ( A e. CC /\ A =/= 0 ) ) $=
      ( cc wcel cc0 wne rpcnd rpne0d jca ) ABDEBFGABCHABCIJ $.

    $( Closure law for reciprocation of positive reals.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rpreccld $p |- ( ph -> ( 1 / A ) e. RR+ ) $=
      ( crp wcel c1 cdiv co rpreccl syl ) ABDEFBGHDECBIJ $.

    $( Closure law for reciprocation of positive reals.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rprecred $p |- ( ph -> ( 1 / A ) e. RR ) $=
      ( c1 cdiv co rpreccld rpred ) ADBEFABCGH $.

    $( Closure law for half of a positive real.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rphalfcld $p |- ( ph -> ( A / 2 ) e. RR+ ) $=
      ( crp wcel c2 cdiv co rphalfcl syl ) ABDEBFGHDECBIJ $.

    $( The reciprocal of a positive number less than 1 is greater than 1.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    reclt1d $p |- ( ph -> ( A < 1 <-> 1 < ( 1 / A ) ) ) $=
      ( cr wcel cc0 clt wbr wa c1 cdiv co wb rpregt0d reclt1 syl ) ABDEFBGHIBJG
      HJJBKLGHMABCNBOP $.

    $( The reciprocal of a positive number greater than 1 is less than 1.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    recgt1d $p |- ( ph -> ( 1 < A <-> ( 1 / A ) < 1 ) ) $=
      ( cr wcel cc0 clt wbr wa c1 cdiv co wb rpregt0d recgt1 syl ) ABDEFBGHIJBG
      HJBKLJGHMABCNBOP $.

    rpaddcld.1 $e |- ( ph -> B e. RR+ ) $.
    $( Closure law for addition of positive reals.  Part of Axiom 7 of
       [Apostol] p. 20.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    rpaddcld $p |- ( ph -> ( A + B ) e. RR+ ) $=
      ( crp wcel caddc co rpaddcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure law for multiplication of positive reals.  Part of Axiom 7 of
       [Apostol] p. 20.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    rpmulcld $p |- ( ph -> ( A x. B ) e. RR+ ) $=
      ( crp wcel cmul co rpmulcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure law for division of positive reals.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rpdivcld $p |- ( ph -> ( A / B ) e. RR+ ) $=
      ( crp wcel cdiv co rpdivcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( The reciprocal of both sides of 'less than'.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    ltrecd $p |- ( ph -> ( A < B <-> ( 1 / B ) < ( 1 / A ) ) ) $=
      ( cr wcel cc0 clt wbr wa c1 cdiv co wb rpregt0d ltrec syl2anc ) ABFGHBIJK
      CFGHCIJKBCIJLCMNLBMNIJOABDPACEPBCQR $.

    $( The reciprocal of both sides of 'less than or equal to'.  (Contributed
       by Mario Carneiro, 28-May-2016.) $)
    lerecd $p |- ( ph -> ( A <_ B <-> ( 1 / B ) <_ ( 1 / A ) ) ) $=
      ( cr wcel cc0 clt wbr wa cle c1 cdiv co wb rpregt0d lerec syl2anc ) ABFGH
      BIJKCFGHCIJKBCLJMCNOMBNOLJPABDQACEQBCRS $.

    ${
      ltrec1d.2 $e |- ( ph -> ( 1 / A ) < B ) $.
      $( Reciprocal swap in a 'less than' relation.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      ltrec1d $p |- ( ph -> ( 1 / B ) < A ) $=
        ( c1 cdiv co clt wbr cr wcel cc0 wa wb rpregt0d ltrec1 syl2anc mpbid )
        AGBHICJKZGCHIBJKZFABLMNBJKOCLMNCJKOUAUBPABDQACEQBCRST $.
    $}

    ${
      lerec2d.2 $e |- ( ph -> A <_ ( 1 / B ) ) $.
      $( Reciprocal swap in a 'less than or equal to' relation.  (Contributed
         by Mario Carneiro, 28-May-2016.) $)
      lerec2d $p |- ( ph -> B <_ ( 1 / A ) ) $=
        ( c1 cdiv co cle wbr cr wcel cc0 clt wa wb rpregt0d lerec2 syl2anc
        mpbid ) ABGCHIJKZCGBHIJKZFABLMNBOKPCLMNCOKPUBUCQABDRACERBCSTUA $.
    $}

    ${
      lediv2ad.3 $e |- ( ph -> C e. RR ) $.
      lediv2ad.4 $e |- ( ph -> 0 <_ C ) $.
      lediv2ad.5 $e |- ( ph -> A <_ B ) $.
      $( Division of both sides of 'less than or equal to' into a nonnegative
         number.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      lediv2ad $p |- ( ph -> ( C / B ) <_ ( C / A ) ) $=
        ( cr wcel cc0 clt wbr wa cle cdiv co rpregt0d jca lediv2a syl31anc ) AB
        JKLBMNOCJKLCMNODJKZLDPNZOBCPNDCQRDBQRPNABESACFSAUCUDGHTIBCDUAUB $.
    $}

    ltdiv2d.3 $e |- ( ph -> C e. RR+ ) $.
    $( Division of a positive number by both sides of 'less than'.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltdiv2d $p |- ( ph -> ( A < B <-> ( C / B ) < ( C / A ) ) ) $=
      ( cr wcel cc0 clt wbr wa cdiv co wb rpregt0d ltdiv2 syl3anc ) ABHIJBKLMCH
      IJCKLMDHIJDKLMBCKLDCNODBNOKLPABEQACFQADGQBCDRS $.

    $( Division of a positive number by both sides of 'less than or equal to'.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    lediv2d $p |- ( ph -> ( A <_ B <-> ( C / B ) <_ ( C / A ) ) ) $=
      ( cr wcel cc0 clt wbr wa cle cdiv co wb rpregt0d lediv2 syl3anc ) ABHIJBK
      LMCHIJCKLMDHIJDKLMBCNLDCOPDBOPNLQABERACFRADGRBCDST $.

    ledivdivd.4 $e |- ( ph -> D e. RR+ ) $.
    ${
      ledivdivd.5 $e |- ( ph -> ( A / B ) <_ ( C / D ) ) $.
      $( Invert ratios of positive numbers and swap their ordering.
         (Contributed by Mario Carneiro, 28-May-2016.) $)
      ledivdivd $p |- ( ph -> ( D / C ) <_ ( B / A ) ) $=
        ( cdiv co cle wbr cr wcel cc0 clt wa rpregt0d ledivdiv syl22anc mpbid
        wb ) ABCKLDEKLMNZEDKLCBKLMNZJABOPQBRNSCOPQCRNSDOPQDRNSEOPQERNSUEUFUDABF
        TACGTADHTAEITBCDEUAUBUC $.
    $}
  $}

  $( The ratio of a number over a smaller positive number is larger than 1.
     (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
  divge1 $p |- ( ( A e. RR+ /\ B e. RR /\ A <_ B ) -> 1 <_ ( B / A ) ) $=
    ( crp wcel cr cle wbr c1 cdiv co wceq rpgecl rpcn rpne0 dividd eqcomd simp3
    w3a syl simp1 lediv2d mpbid eqbrtrd ) ACDZBEDZABFGZRZHBBIJZBAIJZFUGBCDZHUHK
    ABLZUJUHHUJBBMBNOPSUGUFUHUIFGUDUEUFQUGABBUDUEUFTUKUKUAUBUC $.

  $( A real number divided by a positive real number is less than 1 iff the
     real number is less than the positive real number.  (Contributed by AV,
     25-May-2020.) $)
  divlt1lt $p |- ( ( A e. RR /\ B e. RR+ ) -> ( ( A / B ) < 1 <-> A < B ) ) $=
    ( cr wcel crp wa cdiv co c1 clt wbr cc0 wb simpl rpregt0 adantl 0lt1 pm3.2i
    1re a1i ltdiv23 syl3anc wceq recn div1d adantr breq1d bitrd ) ACDZBEDZFZABG
    HIJKZAIGHZBJKZABJKUKUIBCDLBJKFZICDZLIJKZFZULUNMUIUJNUJUOUIBOPURUKUPUQSQRTAB
    IUAUBUKUMABJUIUMAUCUJUIAAUDUEUFUGUH $.

  $( A real number divided by a positive real number is less than or equal to 1
     iff the real number is less than or equal to the positive real number.
     (Contributed by AV, 29-Jun-2021.) $)
  divle1le $p |- ( ( A e. RR /\ B e. RR+ )
                   -> ( ( A / B ) <_ 1 <-> A <_ B ) ) $=
    ( cr wcel crp wa cdiv co c1 cle wbr cc0 clt simpl rpregt0 adantl 1re pm3.2i
    wb 0lt1 a1i lediv23 syl3anc wceq recn div1d adantr breq1d bitrd ) ACDZBEDZF
    ZABGHIJKZAIGHZBJKZABJKULUJBCDLBMKFZICDZLIMKZFZUMUOSUJUKNUKUPUJBOPUSULUQURQT
    RUAABIUBUCULUNABJUJUNAUDUKUJAAUEUFUGUHUI $.

  $( If a number is less than or equal to another number, the number divided by
     a positive number greater than or equal to one is less than or equal to
     the other number.  (Contributed by AV, 29-Jun-2021.) $)
  ledivge1le $p |- ( ( A e. RR /\ B e. RR+ /\ ( C e. RR+ /\ 1 <_ C ) )
                     -> ( A <_ B -> ( A / C ) <_ B ) ) $=
    ( cr wcel crp c1 cle wbr wa w3a cdiv co wi wb adantr 1red syl3anc cc0 clt
    divle1le rerpdivcl rpre letr expd sylbird com23 expimpd ex 3imp1 simp1 0lt1
    adantl 0red ltletr mpani imp jca 3ad2ant3 rpregt0 3ad2ant2 3jca lediv23 syl
    mpbird ) ADEZBFEZCFEZGCHIZJZKZABHIZACLMBHIZVKVLJZVMABLMZCHIZVFVGVJVLVPVFVGV
    JVLVPNZNVFVGJZVHVIVQVRVHJZVLVIVPVSVLVOGHIZVIVPNVRVTVLOVHABUAPVSVTVIVPVSVODE
    ZGDEZCDEZVTVIJVPNVRWAVHABUBPVSQVHWCVRCUCZUMVOGCUDRUEUFUGUHUIUJVNVFWCSCTIZJZ
    BDESBTIJZKZVMVPOVKWHVLVKVFWFWGVFVGVJUKVJVFWFVGVJWCWEVHWCVIWDPVHVIWEVHSGTIZV
    IWEULVHSDEWBWCWIVIJWENVHUNVHQWDSGCUORUPUQURUSVGVFWGVJBUTVAVBPACBVCVDVEUI $.

  ${
    rpgecld.1 $e |- ( ph -> A e. RR ) $.
    ${
      ge0p1rp.2 $e |- ( ph -> 0 <_ A ) $.
      $( A nonnegative number plus one is a positive number.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      ge0p1rpd $p |- ( ph -> ( A + 1 ) e. RR+ ) $=
        ( cr wcel cc0 cle wbr c1 caddc co crp ge0p1rp syl2anc ) ABEFGBHIBJKLMFC
        DBNO $.
    $}

    rpgecld.2 $e |- ( ph -> B e. RR+ ) $.
    $( Closure law for division of a real by a positive real.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    rerpdivcld $p |- ( ph -> ( A / B ) e. RR ) $=
      ( cr wcel crp cdiv co rerpdivcl syl2anc ) ABFGCHGBCIJFGDEBCKL $.

    $( Subtracting a positive real from another number decreases it.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltsubrpd $p |- ( ph -> ( A - B ) < A ) $=
      ( cr wcel crp cmin co clt wbr ltsubrp syl2anc ) ABFGCHGBCIJBKLDEBCMN $.

    $( Adding a positive number to another number increases it.  (Contributed
       by Mario Carneiro, 28-May-2016.) $)
    ltaddrpd $p |- ( ph -> A < ( A + B ) ) $=
      ( cr wcel crp caddc co clt wbr ltaddrp syl2anc ) ABFGCHGBBCIJKLDEBCMN $.

    $( Adding a positive number to another number increases it.  (Contributed
       by Mario Carneiro, 28-May-2016.) $)
    ltaddrp2d $p |- ( ph -> A < ( B + A ) ) $=
      ( caddc co clt ltaddrpd recnd rpcnd addcomd breqtrd ) ABBCFGCBFGHABCDEIAB
      CABDJACEKLM $.

    $( Multiplication by a number greater than 1.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    ltmulgt11d $p |- ( ph -> ( 1 < A <-> B < ( B x. A ) ) ) $=
      ( cr wcel cc0 clt wbr c1 cmul co wb rpred rpgt0d ltmulgt11 syl3anc ) ACFG
      BFGHCIJKBIJCCBLMIJNACEODACEPCBQR $.

    $( Multiplication by a number greater than 1.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    ltmulgt12d $p |- ( ph -> ( 1 < A <-> B < ( A x. B ) ) ) $=
      ( cr wcel cc0 clt wbr c1 cmul co wb rpred rpgt0d ltmulgt12 syl3anc ) ACFG
      BFGHCIJKBIJCBCLMIJNACEODACEPCBQR $.

    $( Division of a positive number by a positive number.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    gt0divd $p |- ( ph -> ( 0 < A <-> 0 < ( A / B ) ) ) $=
      ( cr wcel cc0 clt wbr cdiv co wb rpred rpgt0d gt0div syl3anc ) ABFGCFGHCI
      JHBIJHBCKLIJMDACENACEOBCPQ $.

    $( Division of a nonnegative number by a positive number.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    ge0divd $p |- ( ph -> ( 0 <_ A <-> 0 <_ ( A / B ) ) ) $=
      ( cr wcel cc0 clt wbr cle cdiv co wb rpred rpgt0d ge0div syl3anc ) ABFGCF
      GHCIJHBKJHBCLMKJNDACEOACEPBCQR $.

    ${
      rpgecld.3 $e |- ( ph -> B <_ A ) $.
      $( A number greater or equal to a positive real is positive real.
         (Contributed by Mario Carneiro, 28-May-2016.) $)
      rpgecld $p |- ( ph -> A e. RR+ ) $=
        ( crp wcel cr cle wbr rpgecl syl3anc ) ACGHBIHCBJKBGHEDFCBLM $.
    $}

    divge0d.3 $e |- ( ph -> 0 <_ A ) $.
    $( The ratio of nonnegative and positive numbers is nonnegative.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    divge0d $p |- ( ph -> 0 <_ ( A / B ) ) $=
      ( cr wcel cc0 cle wbr clt wa cdiv co rpregt0d divge0 syl21anc ) ABGHIBJKC
      GHICLKMIBCNOJKDFACEPBCQR $.
  $}

  ${
    ltmul1d.1 $e |- ( ph -> A e. RR ) $.
    ltmul1d.2 $e |- ( ph -> B e. RR ) $.
    ltmul1d.3 $e |- ( ph -> C e. RR+ ) $.
    $( The ratio of nonnegative and positive numbers is nonnegative.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltmul1d $p |- ( ph -> ( A < B <-> ( A x. C ) < ( B x. C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co wb rpregt0d ltmul1 syl3anc ) ABHICHIDHIJ
      DKLMBCKLBDNOCDNOKLPEFADGQBCDRS $.

    $( Multiplication of both sides of 'less than' by a positive number.
       Theorem I.19 of [Apostol] p. 20.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    ltmul2d $p |- ( ph -> ( A < B <-> ( C x. A ) < ( C x. B ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co wb rpregt0d ltmul2 syl3anc ) ABHICHIDHIJ
      DKLMBCKLDBNODCNOKLPEFADGQBCDRS $.

    $( Multiplication of both sides of 'less than or equal to' by a positive
       number.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    lemul1d $p |- ( ph -> ( A <_ B <-> ( A x. C ) <_ ( B x. C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cle cmul co wb rpregt0d lemul1 syl3anc ) ABHICHI
      DHIJDKLMBCNLBDOPCDOPNLQEFADGRBCDST $.

    $( Multiplication of both sides of 'less than or equal to' by a positive
       number.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    lemul2d $p |- ( ph -> ( A <_ B <-> ( C x. A ) <_ ( C x. B ) ) ) $=
      ( cr wcel cc0 clt wbr wa cle cmul co wb rpregt0d lemul2 syl3anc ) ABHICHI
      DHIJDKLMBCNLDBOPDCOPNLQEFADGRBCDST $.

    $( Division of both sides of 'less than' by a positive number.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltdiv1d $p |- ( ph -> ( A < B <-> ( A / C ) < ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cdiv co wb rpregt0d ltdiv1 syl3anc ) ABHICHIDHIJ
      DKLMBCKLBDNOCDNOKLPEFADGQBCDRS $.

    $( Division of both sides of a less than or equal to relation by a positive
       number.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    lediv1d $p |- ( ph -> ( A <_ B <-> ( A / C ) <_ ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cle cdiv co wb rpregt0d lediv1 syl3anc ) ABHICHI
      DHIJDKLMBCNLBDOPCDOPNLQEFADGRBCDST $.

    $( 'Less than' relationship between division and multiplication.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltmuldivd $p |- ( ph -> ( ( A x. C ) < B <-> A < ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co cdiv wb rpregt0d ltmuldiv syl3anc ) ABHI
      CHIDHIJDKLMBDNOCKLBCDPOKLQEFADGRBCDST $.

    $( 'Less than' relationship between division and multiplication.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltmuldiv2d $p |- ( ph -> ( ( C x. A ) < B <-> A < ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co cdiv wb rpregt0d ltmuldiv2 syl3anc ) ABH
      ICHIDHIJDKLMDBNOCKLBCDPOKLQEFADGRBCDST $.

    $( 'Less than or equal to' relationship between division and
       multiplication.  (Contributed by Mario Carneiro, 30-May-2016.) $)
    lemuldivd $p |- ( ph -> ( ( A x. C ) <_ B <-> A <_ ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co cle cdiv wb rpregt0d lemuldiv syl3anc )
      ABHICHIDHIJDKLMBDNOCPLBCDQOPLREFADGSBCDTUA $.

    $( 'Less than or equal to' relationship between division and
       multiplication.  (Contributed by Mario Carneiro, 30-May-2016.) $)
    lemuldiv2d $p |- ( ph -> ( ( C x. A ) <_ B <-> A <_ ( B / C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co cle cdiv wb rpregt0d lemuldiv2 syl3anc )
      ABHICHIDHIJDKLMDBNOCPLBCDQOPLREFADGSBCDTUA $.

    $( 'Less than' relationship between division and multiplication.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltdivmuld $p |- ( ph -> ( ( A / C ) < B <-> A < ( C x. B ) ) ) $=
      ( cr wcel cc0 clt wbr wa cdiv co cmul wb rpregt0d ltdivmul syl3anc ) ABHI
      CHIDHIJDKLMBDNOCKLBDCPOKLQEFADGRBCDST $.

    $( 'Less than' relationship between division and multiplication.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltdivmul2d $p |- ( ph -> ( ( A / C ) < B <-> A < ( B x. C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cdiv co cmul wb rpregt0d ltdivmul2 syl3anc ) ABH
      ICHIDHIJDKLMBDNOCKLBCDPOKLQEFADGRBCDST $.

    $( 'Less than or equal to' relationship between division and
       multiplication.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    ledivmuld $p |- ( ph -> ( ( A / C ) <_ B <-> A <_ ( C x. B ) ) ) $=
      ( cr wcel cc0 clt wbr wa cdiv co cle cmul wb rpregt0d ledivmul syl3anc )
      ABHICHIDHIJDKLMBDNOCPLBDCQOPLREFADGSBCDTUA $.

    $( 'Less than or equal to' relationship between division and
       multiplication.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    ledivmul2d $p |- ( ph -> ( ( A / C ) <_ B <-> A <_ ( B x. C ) ) ) $=
      ( cr wcel cc0 clt wbr wa cdiv co cle cmul wb rpregt0d ledivmul2 syl3anc )
      ABHICHIDHIJDKLMBDNOCPLBCDQOPLREFADGSBCDTUA $.

    ${
      ltdiv1dd.4 $e |- ( ph -> A < B ) $.
      $( The ratio of nonnegative and positive numbers is nonnegative.
         (Contributed by Mario Carneiro, 30-May-2016.) $)
      ltmul1dd $p |- ( ph -> ( A x. C ) < ( B x. C ) ) $=
        ( clt wbr cmul co ltmul1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.

      $( Multiplication of both sides of 'less than' by a positive number.
         Theorem I.19 of [Apostol] p. 20.  (Contributed by Mario Carneiro,
         30-May-2016.) $)
      ltmul2dd $p |- ( ph -> ( C x. A ) < ( C x. B ) ) $=
        ( clt wbr cmul co ltmul2d mpbid ) ABCIJDBKLDCKLIJHABCDEFGMN $.

      $( Division of both sides of 'less than' by a positive number.
         (Contributed by Mario Carneiro, 30-May-2016.) $)
      ltdiv1dd $p |- ( ph -> ( A / C ) < ( B / C ) ) $=
        ( clt wbr cdiv co ltdiv1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.
    $}

    ${
      lediv1dd.4 $e |- ( ph -> A <_ B ) $.
      $( Division of both sides of a less than or equal to relation by a
         positive number.  (Contributed by Mario Carneiro, 30-May-2016.) $)
      lediv1dd $p |- ( ph -> ( A / C ) <_ ( B / C ) ) $=
        ( cle wbr cdiv co lediv1d mpbid ) ABCIJBDKLCDKLIJHABCDEFGMN $.
    $}

    ${
      lediv12ad.4 $e |- ( ph -> D e. RR ) $.
      lediv12ad.5 $e |- ( ph -> 0 <_ A ) $.
      lediv12ad.6 $e |- ( ph -> A <_ B ) $.
      lediv12ad.7 $e |- ( ph -> C <_ D ) $.
      $( Comparison of ratio of two nonnegative numbers.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      lediv12ad $p |- ( ph -> ( A / D ) <_ ( B / C ) ) $=
        ( cr wcel wa cc0 cle wbr cdiv jca clt co rpred rpgt0d lediv12a syl22anc
        ) ABMNZCMNZOPBQRZBCQRZODMNZEMNZOPDUARZDEQRZOBESUBCDSUBQRAUGUHFGTAUIUJJK
        TAUKULADHUCITAUMUNADHUDLTBCDEUEUF $.
    $}
  $}

  ${
    mul2lt0.1 $e |- ( ph -> A e. RR ) $.
    mul2lt0.2 $e |- ( ph -> B e. RR ) $.
    ${
      mul2lt0.3 $e |- ( ph -> ( A x. B ) < 0 ) $.
      $( If the result of a multiplication is strictly negative, then
         multiplicands are of different signs.  (Contributed by Thierry Arnoux,
         19-Sep-2018.) $)
      mul2lt0rlt0 $p |- ( ( ph /\ B < 0 ) -> 0 < A ) $=
        ( cc0 clt wbr wa cneg cmul co cdiv cr wcel remulcld adantr cc recnd crp
        0red wb negelrp biimpar ltdiv1dd mulcld simpr lt0ne0d divneg2d divcan4d
        syl negeqd eqtr3d negcld negne0d div0d 3brtr3d lt0neg2d mpbird ) ACGHIZ
        JZGBHIBKZGHIVBBCLMZCKZNMZGVENMVCGHVBVDGVEAVDOPVAABCDEQRVBUBAVEUAPZVAACO
        PVGVAUCECUDULUEAVDGHIVAFRUFVBVDCNMZKVFVCVBVDCVBBCABSPVAABDTRZACSPVAACET
        RZUGVJVBCAVAUHUIZUJVBVHBVBBCVIVJVKUKUMUNVBVEVBCVJUOVBCVJVKUPUQURVBBABOP
        VADRUSUT $.

      $( If the result of a multiplication is strictly negative, then
         multiplicands are of different signs.  (Contributed by Thierry Arnoux,
         19-Sep-2018.) $)
      mul2lt0rgt0 $p |- ( ( ph /\ 0 < B ) -> A < 0 ) $=
        ( cc0 clt wbr wa cmul co adantr wcel recnd mul02d breqtrrd 0red simpr
        cr elrpd ltmul1d mpbird ) AGCHIZJZBGHIBCKLZGCKLZHIUEUFGUGHAUFGHIUDFMUEC
        UECACTNUDEMZOPQUEBGCABTNUDDMUERUECUHAUDSUAUBUC $.

      $( If the result of a multiplication is strictly negative, then
         multiplicands are of different signs.  (Contributed by Thierry Arnoux,
         19-Sep-2018.) $)
      mul2lt0llt0 $p |- ( ( ph /\ A < 0 ) -> 0 < B ) $=
        ( cmul co cc0 clt recnd mulcomd eqbrtrrd mul2lt0rlt0 ) ACBEDABCGHCBGHIJ
        ABCABDKACEKLFMN $.

      $( If the result of a multiplication is strictly negative, then
         multiplicands are of different signs.  (Contributed by Thierry Arnoux,
         2-Oct-2018.) $)
      mul2lt0lgt0 $p |- ( ( ph /\ 0 < A ) -> B < 0 ) $=
        ( cmul co cc0 clt recnd mulcomd eqbrtrrd mul2lt0rgt0 ) ACBEDABCGHCBGHIJ
        ABCABDKACEKLFMN $.
    $}

    $( If the result of a multiplication is strictly negative, then
       multiplicands are of different signs.  (Contributed by Thierry Arnoux,
       19-Sep-2018.) $)
    mul2lt0bi $p |- ( ph -> ( ( A x. B ) < 0
      <-> ( ( A < 0 /\ 0 < B ) \/ ( 0 < A /\ B < 0 ) ) ) ) $=
      ( cmul co cc0 clt wbr wa wo cle wn 0red ltnled adantr simprl simprr ex cr
      remulcld wcel mulge0d con3d sylbid ianor syl6ib orbi12d sylibrd imp simpr
      mul2lt0llt0 jca mul2lt0rlt0 orim12d elrpd ltmul1dd recnd breqtrd ltmul2dd
      mpd mul02d mul01d jaodan impbida ) ABCFGZHIJZBHIJZHCIJZKZHBIJZCHIJZKZLZAV
      HKZVIVMLZVOAVHVQAVHHBMJZNZHCMJZNZLZVQAVHVRVTKZNZWBAVHHVGMJZNWDAVGHABCDEUB
      AOZPAWCWEAWCWEAWCKBCABUAUCZWCDQACUAUCZWCEQAVRVTRAVRVTSUDTUEUFVRVTUGUHAVIV
      SVMWAABHDWFPACHEWFPUIUJUKVPVIVKVMVNVPVIVKVPVIKVIVJVPVIULVPBCAWGVHDQZAWHVH
      EQZAVHULZUMUNTVPVMVNVPVMKVLVMVPBCWIWJWKUOVPVMULUNTUPVBAVKVHVNAVKKZVGHCFGH
      IWLBHCAWGVKDQWLOWLCAWHVKEQZAVIVJSUQAVIVJRURWLCWLCWMUSVCUTAVNKZVGBHFGHIWNC
      HBAWHVNEQWNOWNBAWGVNDQZAVLVMRUQAVLVMSVAWNBWNBWOUSVDUTVEVF $.
  $}

  ${
    ltdiv23d.1 $e |- ( ph -> A e. RR ) $.
    ltdiv23d.2 $e |- ( ph -> B e. RR+ ) $.
    ltdiv23d.3 $e |- ( ph -> C e. RR+ ) $.
    ${
      ltdiv23d.4 $e |- ( ph -> ( A / B ) < C ) $.
      $( Swap denominator with other side of 'less than'.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      ltdiv23d $p |- ( ph -> ( A / C ) < B ) $=
        ( cdiv co clt wbr cr wcel cc0 wa wb rpregt0d ltdiv23 syl3anc mpbid ) AB
        CIJDKLZBDIJCKLZHABMNCMNOCKLPDMNODKLPUBUCQEACFRADGRBCDSTUA $.
    $}

    ${
      lediv23d.4 $e |- ( ph -> ( A / B ) <_ C ) $.
      $( Swap denominator with other side of 'less than or equal to'.
         (Contributed by Mario Carneiro, 28-May-2016.) $)
      lediv23d $p |- ( ph -> ( A / C ) <_ B ) $=
        ( cdiv co cle wbr cr wcel cc0 clt wa wb rpregt0d lediv23 syl3anc mpbid
        ) ABCIJDKLZBDIJCKLZHABMNCMNOCPLQDMNODPLQUCUDREACFSADGSBCDTUAUB $.
    $}
  $}

  ${
    lt2mul2divd.1 $e |- ( ph -> A e. RR ) $.
    lt2mul2divd.2 $e |- ( ph -> B e. RR+ ) $.
    lt2mul2divd.3 $e |- ( ph -> C e. RR ) $.
    lt2mul2divd.4 $e |- ( ph -> D e. RR+ ) $.
    $( The ratio of nonnegative and positive numbers is nonnegative.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    lt2mul2divd $p |- ( ph ->
      ( ( A x. B ) < ( C x. D ) <-> ( A / D ) < ( C / B ) ) ) $=
      ( cr wcel cc0 clt wbr wa cmul co cdiv wb rpregt0d lt2mul2div syl22anc ) A
      BJKCJKLCMNODJKEJKLEMNOBCPQDEPQMNBERQDCRQMNSFACGTHAEITBCDEUAUB $.
  $}

  $( Division of a positive integer by a positive number is less than or equal
     to the integer iff the number is greater than or equal to 1.  (Contributed
     by AV, 19-Jun-2021.) $)
  nnledivrp $p |- ( ( A e. NN /\ B e. RR+ )
                     -> ( 1 <_ B <-> ( A / B ) <_ A ) ) $=
    ( cn wcel crp wa c1 cle wbr cdiv co cr cc0 clt wb 1re pm3.2i rpregt0 adantr
    0lt1 adantl nnre nngt0 jca lediv2 mp3an2i wceq nncn div1d breq2d bitrd ) AC
    DZBEDZFZGBHIZABJKZAGJKZHIZUPAHIGLDZMGNIZFUNBLDMBNIFZALDZMANIZFZUOUROUSUTPTQ
    UMVAULBRUAULVDUMULVBVCAUBAUCUDSGBAUEUFUNUQAUPHULUQAUGUMULAAUHUISUJUK $.

  $( Division of a nonnegative integer by a positive integer is less than or
     equal to the integer.  (Contributed by AV, 19-Jun-2021.) $)
  nn0ledivnn $p |- ( ( A e. NN0 /\ B e. NN ) -> ( A / B ) <_ A ) $=
    ( cn0 wcel cn cdiv co cle wbr cc0 wceq wo wi elnn0 wa c1 nnge1 adantl wb ex
    crp nnrp nnledivrp sylan2 mpbid wne nncn nnne0 jca div0 0le0 syl6eqbr oveq1
    cc syl id breq12d adantr mpbird jaoi sylbi imp ) ACDZBEDZABFGZAHIZVCAEDZAJK
    ZLVDVFMZANVGVIVHVGVDVFVGVDOPBHIZVFVDVJVGBQRVDVGBUADVJVFSBUBABUCUDUETVHVDVFV
    HVDOZVFJBFGZJHIZVKVLJJHVKBUNDZBJUFZOZVLJKVDVPVHVDVNVOBUGBUHUIRBUJUOUKULVHVF
    VMSVDVHVEVLAJHAJBFUMVHUPUQURUSTUTVAVB $.


  $( If the sum of a real number and a positive real number is less than or
     equal to a third real number, the first real number is less than the third
     real number.  (Contributed by AV, 1-Jul-2021.) $)
  addlelt $p |- ( ( M e. RR /\ N e. RR /\ A e. RR+ )
                      -> ( ( M + A ) <_ N -> M < N ) ) $=
    ( cr wcel crp w3a caddc clt wbr cle cc0 rpgt0 3ad2ant3 rpre simp1 ltaddposd
    co mpbid wa wi simpl adantl readdcld 3adant2 simp2 ltletr syl3anc mpand ) B
    DEZCDEZAFEZGZBBAHRZIJZUNCKJZBCIJZUMLAIJZUOULUJURUKAMNUMABULUJADEZUKAOZNUJUK
    ULPZQSUMUJUNDEZUKUOUPTUQUAVAUJULVBUKUJULTBAUJULUBULUSUJUTUCUDUEUJUKULUFBUNC
    UGUHUI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Infinity and the extended real number system (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)
  $c -e $. $( the negative of an extended real number. $)
  $c +e $. $( Addition of extended real numbers. $)
  $c *e $. $( Multiplication of extended real numbers. $)

  $( Extend class notation to include the negative of an extended real. $)
  cxne $a class -e A $.

  $( Extend class notation to include addition of extended reals. $)
  cxad $a class +e $.

  $( Extend class notation to include multiplication of extended reals. $)
  cxmu $a class *e $.

  $( Define the negative of an extended real number.  (Contributed by FL,
     26-Dec-2011.) $)
  df-xneg $a |- -e A = if ( A = +oo , -oo , if ( A = -oo , +oo , -u A ) ) $.

  ${
    $d x y $.
    $( Define addition over extended real numbers.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    df-xadd $a |- +e = ( x e. RR* , y e. RR* |-> if ( x = +oo ,
            if ( y = -oo , 0 , +oo ) , if ( x = -oo ,
            if ( y = +oo , 0 , -oo ) , if ( y = +oo , +oo ,
                 if ( y = -oo , -oo , ( x + y ) ) ) ) ) ) $.

    $( Define multiplication over extended real numbers.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    df-xmul $a |- *e = ( x e. RR* , y e. RR* |-> if ( ( x = 0 \/ y = 0 ) , 0 ,
            if ( ( ( ( 0 < y /\ x = +oo ) \/ ( y < 0 /\ x = -oo ) ) \/
                   ( ( 0 < x /\ y = +oo ) \/ ( x < 0 /\ y = -oo ) ) ) , +oo ,
            if ( ( ( ( 0 < y /\ x = -oo ) \/ ( y < 0 /\ x = +oo ) ) \/
                   ( ( 0 < x /\ y = -oo ) \/ ( x < 0 /\ y = +oo ) ) ) , -oo ,
                 ( x x. y ) ) ) ) ) $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The 'less than' binary relation on the set of extended reals.
       Definition 12-3.1 of [Gleason] p. 173.  (Contributed by NM,
       14-Oct-2005.) $)
    ltxr $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A < B <->
              ( ( ( ( A e. RR /\ B e. RR ) /\ A <RR B ) \/
                   ( A = -oo /\ B = +oo ) ) \/ ( ( A e. RR /\ B = +oo )
                  \/ ( A = -oo /\ B e. RR ) ) ) ) ) $=
      ( vx vy cxr wcel wa cv cr cltrr wbr cmnf csn cun cpnf cxp wceq clt syl5bb
      wo w3a copab breq12 df-3an opabbii brab2a a1i brun brxp orcom bitri elsng
      wb orbi1d bi2anan9 andir syl6bb anbi1d adantr orbi12d orass df-ltxr breqi
      elun 3bitr4g ) AEFZBEFZGZABCHZIFZDHZIFZVIVKJKZUAZCDUBZKZABILMZNZOMZPZVQIP
      ZNZKZTZAIFZBIFZGABJKZGZALQZBOQZGZWEWJGZWIWFGZTZTZTABRKZWHWKTWNTVHVPWHWCWO
      VPWHUMVHVMWGCDABIIVOVIAVKBJUCVNVJVLGVMGCDVJVLVMUDUEUFUGWCABVTKZABWAKZTZVH
      WOABVTWAUHVHWSWKWLTZWMTWOVHWQWTWRWMWQAVRFZBVSFZGZVHWTABVRVSUIVHXCWIWETZWJ
      GWTVFXAXDVGXBWJXAAVQFZWETZVFXDXAWEXETXFAIVQVDWEXEUJUKVFXEWIWEALEULZUNSBOE
      ULUOWIWEWJUPUQSWRXEWFGZVHWMABVQIUIVFXHWMUMVGVFXEWIWFXGURUSSUTWKWLWMVAUQSU
      TWPABVOWBNZKWDABRXICDVBVCABVOWBUHUKWHWKWNVAVE $.
  $}

  $( Membership in the set of extended reals.  (Contributed by NM,
     14-Oct-2005.) $)
  elxr $p |- ( A e. RR* <-> ( A e. RR \/ A = +oo \/ A = -oo ) ) $=
    ( cxr wcel cr cpnf cmnf cpr cun wo wceq df-xr eleq2i elun pnfex mnfxr elexi
    w3o elpr2 orbi2i 3orass bitr4i 3bitri ) ABCADEFGZHZCADCZAUCCZIZUEAEJZAFJZQZ
    BUDAKLADUCMUGUEUHUIIZIUJUFUKUEAEFNFBOPRSUEUHUITUAUB $.

  $( An extended real other than minus infinity is real or positive infinite.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xrnemnf $p |- ( ( A e. RR* /\ A =/= -oo ) <-> ( A e. RR \/ A = +oo ) ) $=
    ( cr wcel cpnf wceq wo cmnf wn cxr wne pm5.61 w3o elxr df-3or bitri anbi12i
    wa df-ne renemnf pnfnemnf neeq1 mpbiri jaoi neneqd pm4.71i 3bitr4i ) ABCZAD
    EZFZAGEZFZUJHZQUIULQAICZAGJZQUIUIUJKUMUKUNULUMUGUHUJLUKAMUGUHUJNOAGRPUIULUI
    AGUGUNUHASUHUNDGJTADGUAUBUCUDUEUF $.

  $( An extended real other than plus infinity is real or negative infinite.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xrnepnf $p |- ( ( A e. RR* /\ A =/= +oo ) <-> ( A e. RR \/ A = -oo ) ) $=
    ( cr wcel cmnf wceq wo cpnf wn wa cxr wne pm5.61 w3o elxr df-3or or32 df-ne
    3bitri anbi12i renepnf mnfnepnf neeq1 mpbiri jaoi neneqd pm4.71i 3bitr4i )
    ABCZADEZFZAGEZFZUKHZIUJUMIAJCZAGKZIUJUJUKLUNULUOUMUNUHUKUIMUHUKFUIFULANUHUK
    UIOUHUKUIPRAGQSUJUMUJAGUHUOUIATUIUODGKUAADGUBUCUDUEUFUG $.

  $( The extended real 'less than' is irreflexive.  (Contributed by NM,
     14-Oct-2005.) $)
  xrltnr $p |- ( A e. RR* -> -. A < A ) $=
    ( cxr wcel cr cpnf wceq cmnf clt wbr wa cltrr neli intnanr pnfnemnf pm3.2ni
    wo intnan wb pnfxr ltxr w3o elxr ltnr pnfnre neii mp2an mtbir breq12 anidms
    wn mtbiri mnfnre nesymi mnfxr 3jaoi sylbi ) ABCADCZAEFZAGFZUAAAHIZUJZAUBUQV
    AURUSAUCURUTEEHIZVBEDCZVCJZEEKIZJZEGFZEEFZJZPZVCVHJZVGVCJZPZPZVJVMVFVIVDVEV
    CVCEDUDLZQMVGVHEGNUEMOVKVLVCVHVOMVCVGVOQOOEBCZVPVBVNRSSEETUFUGURUTVBRAEAEHU
    HUIUKUSUTGGHIZVQGDCZVRJZGGKIZJZGGFZGEFZJZPZVRWCJZWBVRJZPZPZWEWHWAWDVSVTVRVR
    GDULLZQMWCWBEGNUMQOWFWGVRWCWJMVRWBWJQOOGBCZWKVQWIRUNUNGGTUFUGUSUTVQRAGAGHUH
    UIUKUOUP $.

  $( Any (finite) real is less than plus infinity.  (Contributed by NM,
     14-Oct-2005.) $)
  ltpnf $p |- ( A e. RR -> A < +oo ) $=
    ( cr wcel cpnf clt wbr wa cltrr cmnf wceq wo eqid orc mpan2 olcd rexr pnfxr
    cxr wb ltxr sylancl mpbird ) ABCZADEFZUCDBCZGADHFGAIJZDDJZGKZUCUGGZUFUEGZKZ
    KZUCUKUHUCUGUKDLUIUJMNOUCARCDRCUDULSAPQADTUAUB $.

  ${
    ltpnfd.a $e |- ( ph -> A e. RR ) $.
    $( Any (finite) real is less than plus infinity.  (Contributed by Glauco
       Siliprandi, 11-Dec-2019.) $)
    ltpnfd $p |- ( ph -> A < +oo ) $=
      ( cr wcel cpnf clt wbr ltpnf syl ) ABDEBFGHCBIJ $.
  $}

  $( Zero is less than plus infinity (common case).  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  0ltpnf $p |- 0 < +oo $=
    ( cc0 cr wcel cpnf clt wbr 0re ltpnf ax-mp ) ABCADEFGAHI $.

  $( Minus infinity is less than any (finite) real.  (Contributed by NM,
     14-Oct-2005.) $)
  mnflt $p |- ( A e. RR -> -oo < A ) $=
    ( cr wcel cmnf clt wbr wa cltrr wceq cpnf wo eqid olc mpan olcd cxr wb rexr
    mnfxr ltxr sylancr mpbird ) ABCZDAEFZDBCZUCGDAHFGDDIZAJIZGKZUEUGGZUFUCGZKZK
    ZUCUKUHUFUCUKDLUJUIMNOUCDPCAPCUDULQSARDATUAUB $.

  ${
    mnfltd.a $e |- ( ph -> A e. RR ) $.
    $( Minus infinity is less than any (finite) real.  (Contributed by Glauco
       Siliprandi, 11-Dec-2019.) $)
    mnfltd $p |- ( ph -> -oo < A ) $=
      ( cr wcel cmnf clt wbr mnflt syl ) ABDEFBGHCBIJ $.
  $}

  $( Minus infinity is less than 0 (common case).  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  mnflt0 $p |- -oo < 0 $=
    ( cc0 cr wcel cmnf clt wbr 0re mnflt ax-mp ) ABCDAEFGAHI $.

  $( Minus infinity is less than plus infinity.  (Contributed by NM,
     14-Oct-2005.) $)
  mnfltpnf $p |- -oo < +oo $=
    ( cmnf cpnf clt wbr cr wcel wa cltrr wceq wo eqid olc mp2an cxr mnfxr pnfxr
    orci wb ltxr mpbir ) ABCDZAEFZBEFZGABHDGZAAIZBBIZGZJZUBUFGUEUCGJZJZUHUIUEUF
    UHAKBKUGUDLMQANFBNFUAUJROPABSMT $.

  $( Minus infinity is less than an extended real that is either real or plus
     infinity.  (Contributed by NM, 2-Feb-2006.) $)
  mnfltxr $p |- ( ( A e. RR \/ A = +oo ) -> -oo < A ) $=
    ( cr wcel cmnf clt wbr cpnf wceq mnflt mnfltpnf breq2 mpbiri jaoi ) ABCDAEF
    ZAGHZAIONDGEFJAGDEKLM $.

  $( No extended real is greater than plus infinity.  (Contributed by NM,
     15-Oct-2005.) $)
  pnfnlt $p |- ( A e. RR* -> -. +oo < A ) $=
    ( cxr wcel cpnf clt wbr cr wa cltrr cmnf wceq wo neli intnanr pnfnemnf neii
    pnfnre pm3.2ni wb pnfxr ltxr mpan mtbiri ) ABCZDAEFZDGCZAGCZHZDAIFZHZDJKZAD
    KZHZLZUFULHZUKUGHZLZLZUNUQUJUMUHUIUFUGDGQMZNNUKULDJOPZNRUOUPUFULUSNUKUGUTNR
    RDBCUDUEURSTDAUAUBUC $.

  $( No extended real is less than minus infinity.  (Contributed by NM,
     15-Oct-2005.) $)
  nltmnf $p |- ( A e. RR* -> -. A < -oo ) $=
    ( cxr wcel cmnf clt wbr cr wa cltrr wceq cpnf wo mnfnre neli intnan intnanr
    pnfnemnf nesymi pm3.2ni wb mnfxr ltxr mpan2 mtbiri ) ABCZADEFZAGCZDGCZHZADI
    FZHZADJZDKJZHZLZUGUMHZULUHHZLZLZUOURUKUNUIUJUHUGDGMNZOPUMULKDQRZOSUPUQUMUGV
    AOUHULUTOSSUEDBCUFUSTUAADUBUCUD $.

  $( Plus infinity is an upper bound for extended reals.  (Contributed by NM,
     30-Jan-2006.) $)
  pnfge $p |- ( A e. RR* -> A <_ +oo ) $=
    ( cxr wcel cpnf cle wbr clt wn pnfnlt wb pnfxr xrlenlt mpan2 mpbird ) ABCZA
    DEFZDAGFHZAIODBCPQJKADLMN $.

  $( An extended nonnegative integer is neither 0 nor 1 if and only if it is
     greater than or equal to 2.  (Contributed by AV, 5-Apr-2021.) $)
  xnn0n0n1ge2b $p |- ( N e. NN0* -> ( ( N =/= 0 /\ N =/= 1 ) <-> 2 <_ N ) ) $=
    ( cxnn0 wcel cn0 cpnf wceq wo cc0 wne c1 wa c2 cle wb nn0nepnf ax-mp necomi
    wbr neeq1 mpbiri elxnn0 nn0n0n1ge2b 0nn0 1nn0 jca cxr 2re rexri pnfge breq2
    2thd jaoi sylbi ) ABCADCZAEFZGAHIZAJIZKZLAMRZNZAUAUNUTUOAUBUOURUSUOUPUQUOUP
    EHIHEHDCHEIUCHOPQAEHSTUOUQEJIJEJDCJEIUDJOPQAEJSTUEUOUSLEMRZLUFCVALUGUHLUIPA
    ELMUJTUKULUM $.

  $( 0 less than or equal to positive infinity.  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  0lepnf $p |- 0 <_ +oo $=
    ( cc0 cxr wcel cpnf cle wbr 0xr pnfge ax-mp ) ABCADEFGAHI $.

  $( An extended nonnegative integer is greater than or equal to 0.
     (Contributed by Alexander van der Vekens, 6-Jan-2018.)  (Revised by AV,
     10-Dec-2020.) $)
  xnn0ge0 $p |- ( N e. NN0* -> 0 <_ N ) $=
    ( cxnn0 wcel cn0 cpnf wceq wo cc0 cle wbr elxnn0 nn0ge0 0lepnf breq2 mpbird
    a1i jaoi sylbi ) ABCADCZAEFZGHAIJZAKSUATALTUAHEIJZUBTMPAEHINOQR $.

  $( Obsolete version of ~ xnn0ge0 as of 24-Oct-2021.  If a number is a
     nonnegative integer or positive infinity, it is greater than or equal to
     0.  (Contributed by Alexander van der Vekens, 6-Jan-2018.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  nn0pnfge0OLD $p |- ( ( N e. NN0 \/ N = +oo ) -> 0 <_ N ) $=
    ( cn0 wcel cc0 cle wbr cpnf wceq nn0ge0 0lepnf breq2 mpbiri jaoi ) ABCDAEFZ
    AGHZAIONDGEFJAGDEKLM $.

  $( Minus infinity is less than or equal to any extended real.  (Contributed
     by NM, 19-Jan-2006.) $)
  mnfle $p |- ( A e. RR* -> -oo <_ A ) $=
    ( cxr wcel cmnf cle wbr clt wn nltmnf wb mnfxr xrlenlt mpan mpbird ) ABCZDA
    EFZADGFHZAIDBCOPQJKDALMN $.

  $( Ordering on the extended reals is not symmetric.  (Contributed by NM,
     15-Oct-2005.) $)
  xrltnsym $p |- ( ( A e. RR* /\ B e. RR* ) ->
                ( A < B -> -. B < A ) ) $=
    ( cxr wcel cr cpnf wceq cmnf clt wbr wn pnfnlt syl adantr adantl mtbird a1d
    wa wb pm2.21d wi elxr ltnsym rexr breq1 nltmnf breq2 3jaodan sylan2br mnfxr
    w3o ax-mp breq12 mtbiri ancoms xrltnr 3jaoian syl2anb ) ACDZAEDZAFGZAHGZUKB
    EDZBFGZBHGZUKZABIJZBAIJZKZUAZBCDZAUBBUBZUTVFVJVAVBUTVCVJVDVEABUCUTVDRZVIVGV
    MVHFAIJZUTVNKZVDUTUSVOAUDZALMNVDVHVNSUTBFAIUEOPQUTVERZVGVIVQVGAHIJZUTVRKZVE
    UTUSVSVPAUFMNVEVGVRSUTBHAIUGOPTUHVFVAVKVJVLVAVKRZVGVIVTVGFBIJZVKWAKVABLOVAV
    GWASVKAFBIUENPTUIVBVCVJVDVEVBVCRZVIVGWBVHBHIJZVCWCKZVBVCVKWDBUDBUFMOVBVHWCS
    VCAHBIUGNPQVBVDRVIVGVDVBVIVDVBRVHFHIJZHCDZWEKUJHLULBFAHIUMUNUOQVBVERZVGVIWG
    VGHHIJZWFWHKUJHUPULAHBHIUMUNTUHUQUR $.

  $( 'Less than' is antisymmetric and irreflexive for extended reals.
     (Contributed by NM, 6-Feb-2007.) $)
  xrltnsym2 $p |- ( ( A e. RR* /\ B e. RR* ) -> -. ( A < B /\ B < A ) ) $=
    ( cxr wcel wa clt wbr wn wi xrltnsym imnan sylib ) ACDBCDEABFGZBAFGZHIMNEHA
    BJMNKL $.

  $( Ordering on the extended reals satisfies strict trichotomy.  New proofs
     should generally use this instead of ~ ax-pre-lttri or ~ axlttri .
     (Contributed by NM, 14-Oct-2005.) $)
  xrlttri $p |- ( ( A e. RR* /\ B e. RR* ) ->
                ( A < B <-> -. ( A = B \/ B < A ) ) ) $=
    ( wcel wa wceq clt wbr wn wi adantr wb adantl cpnf cmnf mpbird pm2.24d olcd
    breq2 a1d 3jaodan cxr wo xrltnr mtbid xrltnsym ancoms jaod w3o elxr axlttri
    ex cr biimprd con1d ltpnf mnflt breq1 eqtr3 mnfltpnf breq12 3jaoian syl2anb
    orcd mpbiri impbid con2bid ) AUACZBUACZDZABEZBAFGZUBZABFGZVIVLVMHZVIVJVNVKV
    GVJVNIVHVGVJVNVGVJDAAFGZVMVGVOHVJAUCJVJVOVMKVGABAFRLUDUKJVHVGVKVNIBAUEUFUGV
    GAULCZAMEZANEZUHBULCZBMEZBNEZUHZVNVLIZVHAUIBUIVPWBWCVQVRVPVSWCVTWAVPVSDZVLV
    MWDVMVLHABUJUMUNVPVTDZVMVLWEVMAMFGZVPWFVTAUOJVTVMWFKVPBMAFRLOPVPWADZVLVNWGV
    KVJWGVKNAFGZVPWHWAAUPJWAVKWHKVPBNAFUQLOQSTVQVSWCVTWAVQVSDZVLVNWIVKVJWIVKBMF
    GZVSWJVQBUOLVQVKWJKVSAMBFRJOQSVQVTDZVLVNWKVJVKABMURVCSVQWADZVLVNWLVKVJWAVQV
    KWAVQDVKNMFGZUSBNAMFUTVDUFQSTVRVSWCVTWAVRVSDZVMVLWNVMNBFGZVSWOVRBUPLVRVMWOK
    VSANBFUQJOPVRVTDZVMVLWPVMWMUSANBMFUTVDPVRWADZVLVNWQVJVKABNURVCSTVAVBVEVF $.

  $( Ordering on the extended reals is transitive.  (Contributed by NM,
     15-Oct-2005.) $)
  xrlttr $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
             ( ( A < B /\ B < C ) -> A < C ) ) $=
    ( cxr wcel cr cpnf wceq cmnf w3o clt wbr wa wn adantr adantl mtbird pm2.21d
    wb adantlr wi elxr lttr 3expa an32s pnfnlt syl breq1 adantll adantld nltmnf
    rexr breq2 adantrd 3jaodan sylan2b ltpnf mpbird a1d anasss adantrr mnfltpnf
    mnflt breq12 mpbiri 3jaoian 3impb syl3an3b syl3an1b ) ADEZAFEZAGHZAIHZJZBDE
    ZCDEZABKLZBCKLZMZACKLZUAZAUBVPVNVOCFEZCGHZCIHZJZWACUBVNVOWEWAVKVOWEMWAVLVMV
    KVOWEWAVKVOMZWBWAWCWDVKWBVOWAVOVKWBMZBFEZBGHZBIHZJWABUBWGWHWAWIWJVKWHWBWAVK
    WHWBWAABCUCUDUEWGWIMVRVTVQWBWIVRVTUAVKWBWIMZVRVTWKVRGCKLZWBWLNZWIWBVPWMCULC
    UFUGOWIVRWLSWBBGCKUHPQRUIUJWGWJMVQVTVRVKWJVQVTUAWBVKWJMZVQVTWNVQAIKLZVKWONZ
    WJVKVJWPAULAUKUGOWJVQWOSVKBIAKUMPQRTUNUOUPUEWFWCMVTVSVKWCVTVOVKWCMVTAGKLZVK
    WQWCAUQOWCVTWQSVKCGAKUMPURTUSVOWDWAVKVOWDMZVRVTVQWRVRVTWRVRBIKLZVOWSNWDBUKO
    WDVRWSSVOCIBKUMPQRUJZUIUOUTVLVOWAWEVLVOMZVQVTVRXAVQVTXAVQGBKLZVOXBNVLBUFPVL
    VQXBSVOAGBKUHOQRUNVAVMVOWEWAVMVOMWBWAWCWDVMWBWAVOVMWBMZVTVSXCVTICKLZWBXDVMC
    VCPVMVTXDSWBAICKUHOURUSTVMWCWAVOVMWCMZVTVSXEVTIGKLVBAICGKVDVEUSTVOWDWAVMWTU
    IUOUTVFVGVHVI $.

  ${
    $d x y z $.
    $( 'Less than' is a strict ordering on the extended reals.  (Contributed by
       NM, 15-Oct-2005.) $)
    xrltso $p |- < Or RR* $=
      ( vx vy vz cxr clt cv xrlttri xrlttr isso2i ) ABCDEAFZBFZGJKCFHI $.
  $}

  $( Trichotomy law for 'less than' for extended reals.  (Contributed by NM,
     10-Dec-2007.) $)
  xrlttri2 $p |- ( ( A e. RR* /\ B e. RR* ) ->
                ( A =/= B <-> ( A < B \/ B < A ) ) ) $=
    ( cxr wcel wa clt wbr wo wceq wn wor xrltso sotrieq mpan bicomd necon1abid
    wb ) ACDBCDEZABFGBAFGHZABRABIZSJZCFKRTUAQLCABFMNOP $.

  $( Trichotomy law for 'less than' for extended reals.  (Contributed by NM,
     9-Feb-2006.) $)
  xrlttri3 $p |- ( ( A e. RR* /\ B e. RR* ) ->
                ( A = B <-> ( -. A < B /\ -. B < A ) ) ) $=
    ( cxr clt wor wcel wa wceq wbr wn wb xrltso sotrieq2 mpan ) CDEACFBCFGABHAB
    DIJBADIJGKLCABDMN $.

  $( 'Less than or equal' expressed in terms of 'less than' or 'equals', for
     extended reals.  (Contributed by NM, 19-Jan-2006.) $)
  xrleloe $p |- ( ( A e. RR* /\ B e. RR* ) ->
               ( A <_ B <-> ( A < B \/ A = B ) ) ) $=
    ( cxr wcel wa cle wbr clt wn wo xrlenlt eqcom orbi1i orcom bitri wb xrlttri
    wceq ancoms con2bid syl5rbbr bitrd ) ACDZBCDZEZABFGBAHGZIZABHGZABRZJZABKUJB
    ARZUHJZUEUGULUIUHJUJUKUIUHBALMUIUHNOUEUFULUDUCUFULIPBAQSTUAUB $.

  $( 'Less than or equal to' implies 'less than' is not 'equals', for extended
     reals.  (Contributed by NM, 9-Feb-2006.) $)
  xrleltne $p |- ( ( A e. RR* /\ B e. RR* /\ A <_ B ) ->
                ( A < B <-> B =/= A ) ) $=
    ( cxr wcel cle wbr clt wne wb wa wceq wn wi xrlttri3 simpl syl6bi adantr wo
    xrleloe biimpa ord impbid necon2abid necom syl6bbr 3impa ) ACDZBCDZABEFZABG
    FZBAHZIUGUHJZUIJZUJABHUKUMUJABUMABKZUJLZULUNUOMUIULUNUOBAGFLZJUOABNUOUPOPQU
    MUJUNULUIUJUNRABSTUAUBUCBAUDUEUF $.

  $( 'Less than' expressed in terms of 'less than or equal to'.  (Contributed
     by Mario Carneiro, 6-Nov-2015.) $)
  xrltlen $p |- ( ( A e. RR* /\ B e. RR* ) ->
               ( A < B <-> ( A <_ B /\ B =/= A ) ) ) $=
    ( cxr wcel wa clt wbr wn wceq cle wne wo xrlttri ioran ancom syl6bb xrlenlt
    bitri wb nesym a1i anbi12d bitr4d ) ACDBCDEZABFGZBAFGZHZABIZHZEZABJGZBAKZEU
    DUEUHUFLHZUJABMUMUIUGEUJUHUFNUIUGORPUDUKUGULUIABQULUISUDBATUAUBUC $.

  ${
    $d x y $.
    $( Alternative definition of 'less than or equal to' in terms of 'less
       than'.  (Contributed by Mario Carneiro, 6-Nov-2015.) $)
    dfle2 $p |- <_ = ( < u. ( _I |` RR* ) ) $=
      ( vx vy cle clt cid cxr cres cun lerel cxp wss wrel ltrelxr wf1o wbr wcel
      wf cv brel wo f1oi f1of fssxp mp2b unssi relxp mp2 wa lerelxr weq xrleloe
      relss resieq orbi2d bitr4d brun syl6bbr pm5.21nii eqbrriv ) ABCDEFGZHZIVA
      FFJZKVBLVALDUTVBMFFUTNFFUTQUTVBKFUAFFUTUBFFUTUCUDUEZFFUFVAVBULUGARZBRZCOZ
      VDFPVEFPUHZVDVEVAOZVDVEFFCUISVDVEFFVAVCSVGVFVDVEDOZVDVEUTOZTZVHVGVFVIABUJ
      ZTVKVDVEUKVGVJVLVIFVDVEUMUNUOVDVEDUTUPUQURUS $.

    $( Alternative definition of 'less than' in terms of 'less than or equal
       to'.  (Contributed by Mario Carneiro, 6-Nov-2015.) $)
    dflt2 $p |- < = ( <_ \ _I ) $=
      ( vx vy clt cle cid cdif ltrel wss wrel difss lerel relss mp2 cv wbr wcel
      cxr wa brel weq ltrelxr cxp lerelxr wn wne xrltlen equcom vex ideq bitr4i
      sstri necon3abii anbi2i syl6bb brdif syl6bbr pm5.21nii eqbrriv ) ABCDEFZG
      USDHDIUSIDEJZKUSDLMANZBNZCOZVAQPVBQPRZVAVBUSOZVAVBQQCUASVAVBQQUSUSDQQUBUT
      UCUKSVDVCVAVBDOZVAVBEOZUDZRZVEVDVCVFVBVAUEZRVIVAVBUFVJVHVFVGVBVABATABTVGB
      AUGVAVBBUHUIUJULUMUNVAVBDEUOUPUQUR $.
  $}

  $( 'Less than' implies 'less than or equal' for extended reals.  (Contributed
     by NM, 19-Jan-2006.) $)
  xrltle $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A < B -> A <_ B ) ) $=
    ( clt wbr cle cxr wcel wa wceq wo orc xrleloe syl5ibr ) ABCDZABEDAFGBFGHNAB
    IZJNOKABLM $.

  $( 'Less than or equal to' is reflexive for extended reals.  (Contributed by
     NM, 7-Feb-2007.) $)
  xrleid $p |- ( A e. RR* -> A <_ A ) $=
    ( cxr wcel cle wbr wa clt wceq wo eqid olci xrleloe mpbiri anidms ) ABCZAAD
    EZOOFPAAGEZAAHZIRQAJKAALMN $.

  $( Trichotomy law for extended reals.  (Contributed by NM, 7-Feb-2007.) $)
  xrletri $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A <_ B \/ B <_ A ) ) $=
    ( cxr wcel wa cle wbr wn clt wb xrltnle ancoms wi xrltle sylbird orrd ) ACD
    ZBCDZEZABFGZBAFGZSTHZBAIGZUARQUCUBJBAKLRQUCUAMBANLOP $.

  $( Trichotomy law for extended reals.  (Contributed by FL, 2-Aug-2009.) $)
  xrletri3 $p |- ( ( A e. RR* /\ B e. RR* ) ->
                   ( A = B <-> ( A <_ B /\ B <_ A ) ) ) $=
    ( cxr wcel wa wceq clt wbr wn cle xrlttri3 ancom syl6bbr xrlenlt wb anbi12d
    ancoms bitr4d ) ACDZBCDZEZABFZBAGHIZABGHIZEZABJHZBAJHZEUAUBUDUCEUEABKUCUDLM
    UAUFUCUGUDABNTSUGUDOBANQPR $.

  ${
    xrletrid.1 $e |- ( ph -> A e. RR* ) $.
    xrletrid.2 $e |- ( ph -> B e. RR* ) $.
    xrletrid.3 $e |- ( ph -> A <_ B ) $.
    xrletrid.4 $e |- ( ph -> B <_ A ) $.
    $( Trichotomy law for extended reals.  (Contributed by Glauco Siliprandi,
       17-Aug-2020.) $)
    xrletrid $p |- ( ph -> A = B ) $=
      ( wceq cle wbr wa jca cxr wcel wb xrletri3 syl2anc mpbird ) ABCHZBCIJZCBI
      JZKZATUAFGLABMNCMNSUBODEBCPQR $.
  $}

  $( Transitive law for ordering on extended reals.  (Contributed by NM,
     19-Jan-2006.) $)
  xrlelttr $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
             ( ( A <_ B /\ B < C ) -> A < C ) ) $=
    ( cxr wcel w3a cle wbr clt wceq wo wi wb xrleloe 3adant3 expd breq1 biimprd
    xrlttr a1i jaod sylbid impd ) ADEZBDEZCDEZFZABGHZBCIHZACIHZUGUHABIHZABJZKZU
    IUJLZUDUEUHUMMUFABNOUGUKUNULUGUKUIUJABCSPULUNLUGULUJUIABCIQRTUAUBUC $.

  $( Transitive law for ordering on extended reals.  (Contributed by NM,
     19-Jan-2006.) $)
  xrltletr $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
             ( ( A < B /\ B <_ C ) -> A < C ) ) $=
    ( cxr wcel w3a clt wbr cle wceq wo wi xrleloe 3adant1 xrlttr expcomd biimpd
    wb breq2 a1i jaod sylbid com23 impd ) ADEZBDEZCDEZFZABGHZBCIHZACGHZUHUJUIUK
    UHUJBCGHZBCJZKZUIUKLZUFUGUJUNRUEBCMNUHULUOUMUHUIULUKABCOPUMUOLUHUMUIUKBCAGS
    QTUAUBUCUD $.

  $( Transitive law for ordering on extended reals.  (Contributed by NM,
     9-Feb-2006.) $)
  xrletr $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
             ( ( A <_ B /\ B <_ C ) -> A <_ C ) ) $=
    ( cxr wcel w3a cle wbr wa clt wceq wo wb xrleloe 3adant1 adantr xrlelttr wi
    xrltle 3adant2 syld expdimp breq2 biimpcd adantl jaod sylbid expimpd ) ADEZ
    BDEZCDEZFZABGHZBCGHZACGHZULUMIZUNBCJHZBCKZLZUOULUNUSMZUMUJUKUTUIBCNOPUPUQUO
    URULUMUQUOULUMUQIACJHZUOABCQUIUKVAUORUJACSTUAUBUMURUORULURUMUOBCAGUCUDUEUFU
    GUH $.

  ${
    xrlttrd.1 $e |- ( ph -> A e. RR* ) $.
    xrlttrd.2 $e |- ( ph -> B e. RR* ) $.
    xrlttrd.3 $e |- ( ph -> C e. RR* ) $.
    ${
      xrlttrd.4 $e |- ( ph -> A < B ) $.
      xrlttrd.5 $e |- ( ph -> B < C ) $.
      $( Transitive law for ordering on extended reals.  (Contributed by Mario
         Carneiro, 23-Aug-2015.) $)
      xrlttrd $p |- ( ph -> A < C ) $=
        ( clt wbr cxr wcel wa wi xrlttr syl3anc mp2and ) ABCJKZCDJKZBDJKZHIABLM
        CLMDLMSTNUAOEFGBCDPQR $.
    $}

    ${
      xrlelttrd.4 $e |- ( ph -> A <_ B ) $.
      xrlelttrd.5 $e |- ( ph -> B < C ) $.
      $( Transitive law for ordering on extended reals.  (Contributed by Mario
         Carneiro, 23-Aug-2015.) $)
      xrlelttrd $p |- ( ph -> A < C ) $=
        ( cle wbr clt cxr wcel wa wi xrlelttr syl3anc mp2and ) ABCJKZCDLKZBDLKZ
        HIABMNCMNDMNTUAOUBPEFGBCDQRS $.
    $}

    ${
      xrltletrd.4 $e |- ( ph -> A < B ) $.
      xrltletrd.5 $e |- ( ph -> B <_ C ) $.
      $( Transitive law for ordering on extended reals.  (Contributed by Mario
         Carneiro, 23-Aug-2015.) $)
      xrltletrd $p |- ( ph -> A < C ) $=
        ( clt wbr cle cxr wcel wa wi xrltletr syl3anc mp2and ) ABCJKZCDLKZBDJKZ
        HIABMNCMNDMNTUAOUBPEFGBCDQRS $.
    $}

    ${
      xrletrd.4 $e |- ( ph -> A <_ B ) $.
      xrletrd.5 $e |- ( ph -> B <_ C ) $.
      $( Transitive law for ordering on extended reals.  (Contributed by Mario
         Carneiro, 23-Aug-2015.) $)
      xrletrd $p |- ( ph -> A <_ C ) $=
        ( cle wbr cxr wcel wa wi xrletr syl3anc mp2and ) ABCJKZCDJKZBDJKZHIABLM
        CLMDLMSTNUAOEFGBCDPQR $.
    $}
  $}

  $( 'Less than' implies not equal for extended reals.  (Contributed by NM,
     20-Jan-2006.) $)
  xrltne $p |- ( ( A e. RR* /\ B e. RR* /\ A < B ) -> B =/= A ) $=
    ( cxr wcel clt wbr w3a wne wo wa orc wor wceq wn wb sotrieq mpan necon2abid
    xrltso syl5ib 3impia necomd ) ACDZBCDZABEFZGABUCUDUEABHZUEUEBAEFZIZUCUDJZUF
    UEUGKUIUHABCELUIABMUHNOSCABEPQRTUAUB $.

  $( An extended real is not less than plus infinity iff they are equal.
     (Contributed by NM, 30-Jan-2006.) $)
  nltpnft $p |- ( A e. RR* -> ( A = +oo <-> -. A < +oo ) ) $=
    ( cxr wcel cpnf wceq clt wbr wn pnfxr xrltnr ax-mp breq1 mtbiri wo pnfge wb
    cle xrleloe mpan2 mpbid ord impbid2 ) ABCZADEZADFGZHUDUEDDFGZDBCZUFHIDJKADD
    FLMUCUEUDUCADQGZUEUDNZAOUCUGUHUIPIADRSTUAUB $.

  $( An extended real which is greater than plus infinity is plus infinity.
     (Contributed by Thierry Arnoux, 18-Dec-2016.) $)
  xgepnf $p |- ( A e. RR* -> ( +oo <_ A <-> A = +oo ) ) $=
    ( cxr wcel cpnf cle wbr clt wn wceq wb pnfxr xrlenlt mpan nltpnft bitr4d )
    ABCZDAEFZADGFHZADIDBCPQRJKDALMANO $.

  $( An extended real is not greater than minus infinity iff they are equal.
     (Contributed by NM, 2-Feb-2006.) $)
  ngtmnft $p |- ( A e. RR* -> ( A = -oo <-> -. -oo < A ) ) $=
    ( cxr wcel cmnf wceq clt wbr wn mnfxr xrltnr ax-mp breq2 mtbiri wo mnfle wb
    cle xrleloe mpan mpbid ord eqcom syl6ib impbid2 ) ABCZADEZDAFGZHZUFUGDDFGZD
    BCZUIHIDJKADDFLMUEUHDAEZUFUEUGUKUEDAQGZUGUKNZAOUJUEULUMPIDARSTUADAUBUCUD $.

  $( An extended real which is less than minus infinity is minus infinity.
     (Contributed by Thierry Arnoux, 18-Feb-2018.) $)
  xlemnf $p |- ( A e. RR* -> ( A <_ -oo <-> A = -oo ) ) $=
    ( cxr wcel cmnf cle wbr clt wn wceq wb mnfxr xrlenlt mpan2 ngtmnft bitr4d )
    ABCZADEFZDAGFHZADIPDBCQRJKADLMANO $.

  $( An extended real is real iff it is strictly bounded by infinities.
     (Contributed by NM, 2-Feb-2006.) $)
  xrrebnd $p |- ( A e. RR* -> ( A e. RR <-> ( -oo < A /\ A < +oo ) ) ) $=
    ( cxr wcel cr cmnf clt wbr cpnf wa mnflt ltpnf wceq nltpnft ngtmnft orbi12d
    jca wo wn ianor orcom bitr2i syl6bb con2bid w3o elxr 3orass bitri sylbb ord
    sylbid impbid2 ) ABCZADCZEAFGZAHFGZIZUMUNUOAJAKPULUPAHLZAELZQZRUMULUSUPULUS
    UORZUNRZQZUPRZULUQUTURVAAMANOVCVAUTQVBUNUOSVAUTTUAUBUCULUSUMULUMUQURUDZUSUM
    QZAUEVDUMUSQVEUMUQURUFUMUSTUGUHUIUJUK $.

  $( A way of proving that an extended real is real.  (Contributed by NM,
     9-Mar-2006.) $)
  xrre $p |- ( ( ( A e. RR* /\ B e. RR ) /\ ( -oo < A /\ A <_ B ) ) ->
              A e. RR ) $=
    ( cxr wcel cr wa cmnf clt wbr cle cpnf simprl ltpnf adantl wi rexr xrlelttr
    pnfxr mp3an3 sylan2 mpan2d imp adantrl wb xrrebnd ad2antrr mpbir2and ) ACDZ
    BEDZFZGAHIZABJIZFZFAEDZUKAKHIZUJUKULLUJULUOUKUJULUOUJULBKHIZUOUIUPUHBMNUIUH
    BCDZULUPFUOOZBPUHUQKCDURRABKQSTUAUBUCUHUNUKUOFUDUIUMAUEUFUG $.

  $( An extended real between two others is real.  (Contributed by NM,
     6-Feb-2007.) $)
  xrre2 $p |- ( ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\
              ( A < B /\ B < C ) ) -> B e. RR ) $=
    ( cxr wcel w3a clt wbr wa cr cmnf wi cle mnfle adantr mnfxr xrlelttr mp3an1
    cpnf mpand 3adant3 pnfge adantl pnfxr mp3an3 mpan2d 3adant1 anim12d xrrebnd
    xrltletr wb 3ad2ant2 sylibrd imp ) ADEZBDEZCDEZFZABGHZBCGHZIZBJEZURVAKBGHZB
    SGHZIZVBURUSVCUTVDUOUPUSVCLUQUOUPIKAMHZUSVCUOVFUPANOKDEUOUPVFUSIVCLPKABQRTU
    AUPUQUTVDLUOUPUQIUTCSMHZVDUQVGUPCUBUCUPUQSDEUTVGIVDLUDBCSUJUEUFUGUHUPUOVBVE
    UKUQBUIULUMUN $.

  $( A way of proving that an extended real is real.  (Contributed by FL,
     29-May-2014.) $)
  xrre3 $p |- ( ( ( A e. RR* /\ B e. RR ) /\ ( B <_ A /\ A < +oo ) )
      -> A e. RR ) $=
    ( cxr wcel cr wa cle wbr cpnf clt cmnf mnflt adantl wi mnfxr a1i rexr simpl
    xrltletr syl3anc mpand imp adantrr simprr wb xrrebnd ad2antrr mpbir2and ) A
    CDZBEDZFZBAGHZAIJHZFZFAEDZKAJHZUMUKULUPUMUKULUPUKKBJHZULUPUJUQUIBLMUKKCDZBC
    DZUIUQULFUPNURUKOPUJUSUIBQMUIUJRKBASTUAUBUCUKULUMUDUIUOUPUMFUEUJUNAUFUGUH
    $.

  $( A nonnegative extended real is greater than negative infinity.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  ge0gtmnf $p |- ( ( A e. RR* /\ 0 <_ A ) -> -oo < A ) $=
    ( cxr wcel cmnf cc0 clt wbr cle mnflt0 wa wi mnfxr 0xr xrltletr mp3an12 imp
    mpanr1 ) ABCZDEFGZEAHGZDAFGZIRSTJZUADBCEBCRUBUAKLMDEANOPQ $.

  $( A nonnegative extended real is greater than negative infinity.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  ge0nemnf $p |- ( ( A e. RR* /\ 0 <_ A ) -> A =/= -oo ) $=
    ( cxr wcel cc0 cle wbr cmnf clt wne ge0gtmnf wceq ngtmnft adantr necon2abid
    wa wn wb mpbid ) ABCZDAEFZOZGAHFZAGIAJUAUBAGSAGKUBPQTALMNR $.

  $( A nonnegative extended real that is less than a real bound is real.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xrrege0 $p |- ( ( ( A e. RR* /\ B e. RR ) /\ ( 0 <_ A /\ A <_ B ) ) ->
              A e. RR ) $=
    ( cxr wcel cr cc0 cle wbr cmnf clt ge0gtmnf ad2ant2r simprr jca xrre syldan
    wa ) ACDZBEDZQZFAGHZABGHZQZIAJHZUBQAEDTUCQUDUBRUAUDSUBAKLTUAUBMNABOP $.

  $( An extended real is less than or equal to the maximum of it and another.
     (Contributed by NM, 7-Feb-2007.) $)
  xrmax1 $p |- ( ( A e. RR* /\ B e. RR* ) -> A <_ if ( A <_ B , B , A ) ) $=
    ( cxr wcel cle wbr wn xrleid iffalse breq2d syl5ibrcom id breqtrrd pm2.61d2
    cif iftrue adantr ) ACDZAABEFZBAOZEFZBCDRSUARUASGZAAEFAHUBTAAESBAIJKSABTESL
    SBAPMNQ $.

  $( An extended real is less than or equal to the maximum of it and another.
     (Contributed by NM, 7-Feb-2007.) $)
  xrmax2 $p |- ( ( A e. RR* /\ B e. RR* ) -> B <_ if ( A <_ B , B , A ) ) $=
    ( cxr wcel wa cle wbr cif xrleid ad2antlr iftrue adantl breqtrrd wn xrletri
    wceq orcanai iffalse pm2.61dan ) ACDZBCDZEZABFGZBUCBAHZFGUBUCEBBUDFUABBFGTU
    CBIJUCUDBPUBUCBAKLMUBUCNZEBAUDFUBUCBAFGABOQUEUDAPUBUCBARLMS $.

  $( The minimum of two extended reals is less than or equal to one of them.
     (Contributed by NM, 7-Feb-2007.) $)
  xrmin1 $p |- ( ( A e. RR* /\ B e. RR* ) -> if ( A <_ B , A , B ) <_ A ) $=
    ( cxr wcel wa cle wbr wceq iftrue adantl xrleid ad2antrr eqbrtrd wn iffalse
    cif xrletri orcanai pm2.61dan ) ACDZBCDZEZABFGZUCABPZAFGUBUCEUDAAFUCUDAHUBU
    CABIJTAAFGUAUCAKLMUBUCNZEUDBAFUEUDBHUBUCABOJUBUCBAFGABQRMS $.

  $( The minimum of two extended reals is less than or equal to one of them.
     (Contributed by NM, 7-Feb-2007.) $)
  xrmin2 $p |- ( ( A e. RR* /\ B e. RR* ) -> if ( A <_ B , A , B ) <_ B ) $=
    ( cxr wcel cle wbr cif wn xrleid iffalse breq1d syl5ibrcom eqbrtrd pm2.61d2
    iftrue id adantl ) BCDZABEFZABGZBEFZACDRSUARUASHZBBEFBIUBTBBESABJKLSTABESAB
    OSPMNQ $.

  $( The maximum of two extended reals is equal to the first if the first is
     bigger.  (Contributed by Mario Carneiro, 25-Mar-2015.) $)
  xrmaxeq $p |- ( ( A e. RR* /\ B e. RR* /\ B <_ A ) ->
    if ( A <_ B , B , A ) = A ) $=
    ( cxr wcel cle wbr w3a cif wceq wa wb xrletri3 ancoms biimpar anassrs 3impa
    ifeq1da ifid syl6eq ) ACDZBCDZBAEFZGABEFZBAHZUCAAHZATUAUBUDUEITUAJZUBJUCBAA
    UFUBUCBAIZUFUGUBUCJZUATUGUHKBALMNOQPUCARS $.

  $( The minimum of two extended reals is equal to the second if the first is
     bigger.  (Contributed by Mario Carneiro, 25-Mar-2015.) $)
  xrmineq $p |- ( ( A e. RR* /\ B e. RR* /\ B <_ A ) ->
    if ( A <_ B , A , B ) = B ) $=
    ( cxr wcel cle wbr w3a cif ifid wceq wa wb xrletri3 biimpar anassrs ifeq1da
    ancoms 3impa syl5reqr ) ACDZBCDZBAEFZGBABEFZBBHZUCABHZUCBITUAUBUDUEJTUAKZUB
    KUCBABUFUBUCBAJZUFUGUBUCKZUATUGUHLBAMQNOPRS $.

  $( Two ways of saying the maximum of two extended reals is less than a third.
     (Contributed by NM, 7-Feb-2007.) $)
  xrmaxlt $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
               ( if ( A <_ B , B , A ) < C <-> ( A < C /\ B < C ) ) ) $=
    ( cxr wcel w3a cle wbr cif clt xrmax1 3adant3 ifcl ancoms xrlelttr syld3an2
    wa wi mpand breq1 xrmax2 simp2 simp3 syl3anc jcad ifboth impbid1 ) ADEZBDEZ
    CDEZFZABGHZBAIZCJHZACJHZBCJHZQUKUNUOUPUKAUMGHZUNUOUHUIUQUJABKLUHUMDEZUIUJUQ
    UNQUORUHUIURUJUIUHURULBADMNLZAUMCOPSUKBUMGHZUNUPUHUIUTUJABUALUKUIURUJUTUNQU
    PRUHUIUJUBUSUHUIUJUCBUMCOUDSUEUPUOUNULUPUOUNBABUMCJTAUMCJTUFNUG $.

  $( Two ways of saying an extended real is less than the minimum of two
     others.  (Contributed by NM, 7-Feb-2007.) $)
  xrltmin $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
               ( A < if ( B <_ C , B , C ) <-> ( A < B /\ A < C ) ) ) $=
    ( cxr wcel w3a cle wbr cif clt wa xrmin1 3adant1 wi simp1 ifcl simp2 mpan2d
    xrltletr breq2 syl3anc xrmin2 syld3an2 jcad ifboth impbid1 ) ADEZBDEZCDEZFZ
    ABCGHZBCIZJHZABJHZACJHZKUJUMUNUOUJUMULBGHZUNUHUIUPUGBCLMUJUGULDEZUHUMUPKUNN
    UGUHUIOUHUIUQUGUKBCDPMZUGUHUIQAULBSUARUJUMULCGHZUOUHUIUSUGBCUBMUGUQUHUIUMUS
    KUONURAULCSUCRUDUKUNUOUMBCBULAJTCULAJTUEUF $.

  $( Two ways of saying the maximum of two numbers is less than or equal to a
     third.  (Contributed by Mario Carneiro, 18-Jun-2014.) $)
  xrmaxle $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
                  ( if ( A <_ B , B , A ) <_ C <-> ( A <_ C /\ B <_ C ) ) ) $=
    ( cxr wcel w3a cle wbr cif wa xrmax1 3adant3 wi ifcl ancoms xrletr syld3an2
    mpand xrmax2 breq1 simp2 simp3 syl3anc jcad ifboth impbid1 ) ADEZBDEZCDEZFZ
    ABGHZBAIZCGHZACGHZBCGHZJUJUMUNUOUJAULGHZUMUNUGUHUPUIABKLUGULDEZUHUIUPUMJUNM
    UGUHUQUIUHUGUQUKBADNOLZAULCPQRUJBULGHZUMUOUGUHUSUIABSLUJUHUQUIUSUMJUOMUGUHU
    IUAURUGUHUIUBBULCPUCRUDUOUNUMUKUOUNUMBABULCGTAULCGTUEOUF $.

  $( Two ways of saying a number is less than or equal to the minimum of two
     others.  (Contributed by Mario Carneiro, 18-Jun-2014.) $)
  xrlemin $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
                  ( A <_ if ( B <_ C , B , C ) <-> ( A <_ B /\ A <_ C ) ) ) $=
    ( cxr wcel w3a cle wbr wa xrmin1 3adant1 wi simp1 ifcl simp2 xrletr syl3anc
    cif mpan2d breq2 xrmin2 syld3an2 jcad ifboth impbid1 ) ADEZBDEZCDEZFZABCGHZ
    BCRZGHZABGHZACGHZIUIULUMUNUIULUKBGHZUMUGUHUOUFBCJKUIUFUKDEZUGULUOIUMLUFUGUH
    MUGUHUPUFUJBCDNKZUFUGUHOAUKBPQSUIULUKCGHZUNUGUHURUFBCUAKUFUPUGUHULURIUNLUQA
    UKCPUBSUCUJUMUNULBCBUKAGTCUKAGTUDUE $.

  $( A number is less than or equal to the maximum of it and another.  See also
     ~ max1ALT .  (Contributed by NM, 3-Apr-2005.) $)
  max1 $p |- ( ( A e. RR /\ B e. RR ) -> A <_ if ( A <_ B , B , A ) ) $=
    ( cr wcel cxr cle wbr cif rexr xrmax1 syl2an ) ACDAEDBEDAABFGBAHFGBCDAIBIAB
    JK $.

  $( A number is less than or equal to the maximum of it and another.  This
     version of ~ max1 omits the ` B e. RR ` antecedent.  Although it doesn't
     exploit undefined behavior, it is still considered poor style, and the use
     of ~ max1 is preferred.  (Proof modification is discouraged.)
     (New usage is discouraged.)  (Contributed by NM, 3-Apr-2005.) $)
  max1ALT $p |- ( A e. RR -> A <_ if ( A <_ B , B , A ) ) $=
    ( cr wcel cle wbr cif wn iffalse breq2d syl5ibrcom iftrue breqtrrd pm2.61d2
    leid id ) ACDZABEFZARBAGZEFZQTRHZAAEFAOUASAAERBAIJKRABSERPRBALMN $.

  $( A number is less than or equal to the maximum of it and another.
     (Contributed by NM, 3-Apr-2005.) $)
  max2 $p |- ( ( A e. RR /\ B e. RR ) -> B <_ if ( A <_ B , B , A ) ) $=
    ( cr wcel cxr cle wbr cif rexr xrmax2 syl2an ) ACDAEDBEDBABFGBAHFGBCDAIBIAB
    JK $.

  $( The supremum of two real numbers is the maximum of these two numbers.
     (Contributed by AV, 8-Jun-2021.) $)
  2resupmax $p |- ( ( A e. RR /\ B e. RR )
                  -> sup ( { A , B } , RR , < ) = if ( A <_ B , B , A ) ) $=
    ( cr wcel wa cpr clt csup wbr cif cle wceq ltso suppr mp3an1 wn ifnot lenlt
    wor bicomd ifbid syl5eqr eqtrd ) ACDZBCDZEZABFCGHZBAGIZABJZABKIZBAJZCGSUDUE
    UGUILMCABGNOUFUIUHPZBAJUKUHBAQUFULUJBAUFUJULABRTUAUBUC $.

  $( The minimum of two numbers is less than or equal to the first.
     (Contributed by NM, 3-Aug-2007.) $)
  min1 $p |- ( ( A e. RR /\ B e. RR ) -> if ( A <_ B , A , B ) <_ A ) $=
    ( cr wcel cxr cle wbr cif rexr xrmin1 syl2an ) ACDAEDBEDABFGABHAFGBCDAIBIAB
    JK $.

  $( The minimum of two numbers is less than or equal to the second.
     (Contributed by NM, 3-Aug-2007.) $)
  min2 $p |- ( ( A e. RR /\ B e. RR ) -> if ( A <_ B , A , B ) <_ B ) $=
    ( cr wcel cxr cle wbr cif rexr xrmin2 syl2an ) ACDAEDBEDABFGABHBFGBCDAIBIAB
    JK $.

  $( Two ways of saying the maximum of two numbers is less than or equal to a
     third.  (Contributed by NM, 29-Sep-2005.) $)
  maxle $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
               ( if ( A <_ B , B , A ) <_ C <-> ( A <_ C /\ B <_ C ) ) ) $=
    ( cr wcel cxr cle wbr cif wa wb rexr xrmaxle syl3an ) ADEAFEBDEBFECDECFEABG
    HBAICGHACGHBCGHJKALBLCLABCMN $.

  $( Two ways of saying a number is less than or equal to the minimum of two
     others.  (Contributed by NM, 3-Aug-2007.) $)
  lemin $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
               ( A <_ if ( B <_ C , B , C ) <-> ( A <_ B /\ A <_ C ) ) ) $=
    ( cr wcel cxr cle wbr cif wa wb rexr xrlemin syl3an ) ADEAFEBDEBFECDECFEABC
    GHBCIGHABGHACGHJKALBLCLABCMN $.

  $( Two ways of saying the maximum of two numbers is less than a third.
     (Contributed by NM, 3-Aug-2007.) $)
  maxlt $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
               ( if ( A <_ B , B , A ) < C <-> ( A < C /\ B < C ) ) ) $=
    ( cr wcel cxr cle wbr cif clt wa wb rexr xrmaxlt syl3an ) ADEAFEBDEBFECDECF
    EABGHBAICJHACJHBCJHKLAMBMCMABCNO $.

  $( Two ways of saying a number is less than the minimum of two others.
     (Contributed by NM, 1-Sep-2006.) $)
  ltmin $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
               ( A < if ( B <_ C , B , C ) <-> ( A < B /\ A < C ) ) ) $=
    ( cr wcel cxr cle wbr cif clt wa wb rexr xrltmin syl3an ) ADEAFEBDEBFECDECF
    EABCGHBCIJHABJHACJHKLAMBMCMABCNO $.

  $( A real number which is less than or equal to a second real number is less
     than or equal to the maximum/supremum of the second real number and a
     third real number.  (Contributed by AV, 8-Jun-2021.) $)
  lemaxle $p |- ( ( ( B e. RR /\ C e. RR ) /\ A e. RR /\ A <_ B )
                  -> A <_ if ( C <_ B , B , C ) ) $=
    ( cr wcel wa cle wbr max2 ancoms adantr wi simpr simpll ifcl syl3anc mpan2d
    cif letr 3impia ) BDEZCDEZFZADEZABGHZACBGHZBCRZGHZUCUDFZUEBUGGHZUHUCUJUDUBU
    AUJCBIJKUIUDUAUGDEZUEUJFUHLUCUDMUAUBUDNUCUKUDUFBCDOKABUGSPQT $.

  $( Decompose a real number into positive and negative parts.  (Contributed by
     Mario Carneiro, 6-Aug-2014.) $)
  max0sub $p |- ( A e. RR ->
    ( if ( 0 <_ A , A , 0 ) - if ( 0 <_ -u A , -u A , 0 ) ) = A ) $=
    ( cr wcel cc0 cle wbr cif cneg cmin co wa cxr 0xr a1i adantr biimpa xrmaxeq
    wceq syl3anc oveq12d 0red id iftrue adantl renegcl rexrd le0neg2 cc subid1d
    recn eqtrd rexr simpr le0neg1 iftrued df-neg negnegd syl5eqr lecasei ) ABCZ
    DAEFZADGZDAHZEFZVCDGZIJZARDAUTUAUTUBUTVAKZVFADIJAVGVBAVEDIVAVBARUTVAADUCUDV
    GDLCZVCLCVCDEFZVEDRVHVGMNVGVCUTVCBCVAAUEOUFUTVAVIAUGPDVCQSTVGAUTAUHCZVAAUJZ
    OUIUKUTADEFZKZVFDVCIJZAVMVBDVEVCIVMVHALCZVLVBDRVHVMMNUTVOVLAULOUTVLUMDAQSVM
    VDVCDUTVLVDAUNPUOTVMVNVCHAVCUPVMAUTVJVLVKOUQURUKUS $.

  $( An if statement transforms an implication into an inequality of terms.
     (Contributed by Mario Carneiro, 31-Aug-2014.) $)
  ifle $p |- ( ( ( A e. RR /\ B e. RR /\ B <_ A ) /\ ( ph -> ps ) ) ->
    if ( ph , A , B ) <_ if ( ps , A , B ) ) $=
    ( cr wcel cle wbr w3a wi wa cif simpll1 leidd wceq iftrue adantl imp breq2
    id adantll iftrued 3brtr4d iffalse simpll3 simpll2 ifboth syl2anc pm2.61dan
    wn eqbrtrd ) CEFZDEFZDCGHZIZABJZKZAACDLZBCDLZGHUQAKZCCURUSGUTCULUMUNUPAMNAU
    RCOUQACDPQUTBCDUPABUOUPABUPTRUAUBUCUQAUJZKZURDUSGVAURDOUQACDUDQVBUNDDGHZDUS
    GHZULUMUNUPVAUEVBDULUMUNUPVAUFNBUNVCVDCDCUSDGSDUSDGSUGUHUKUI $.

  ${
    $d k M $.  $d k N $.
    $( There exists an integer greater than or equal to any two others.
       (Contributed by NM, 28-Aug-2005.) $)
    z2ge $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
                E. k e. ZZ ( M <_ k /\ N <_ k ) ) $=
      ( cz wcel wa cle wbr cif cv wrex ifcl ancoms cr zre max1 jca syl2an breq2
      max2 wceq anbi12d rspcev syl2anc ) BDEZCDEZFBCGHZCBIZDEZBUHGHZCUHGHZFZBAJ
      ZGHZCUMGHZFZADKUFUEUIUGCBDLMUEBNEZCNEZULUFBOCOUQURFUJUKBCPBCTQRUPULAUHDUM
      UHUAUNUJUOUKUMUHBGSUMUHCGSUBUCUD $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( The rational numbers are dense in ` RR ` : any two real numbers have a
       rational between them.  Exercise 6 of [Apostol] p. 28.  (Contributed by
       NM, 18-Nov-2004.)  (Proof shortened by Mario Carneiro, 13-Jun-2014.) $)
    qbtwnre $p |- ( ( A e. RR /\ B e. RR /\ A < B ) ->
                  E. x e. QQ ( A < x /\ x < B ) ) $=
      ( vy vz cr wcel clt wbr cv wa cq wrex c1 co cmin wi cz recnd wb cn posdif
      cdiv cc0 resubcl nnrecl sylan ex ancoms sylbid cmul cle caddc wreu adantl
      nnre simplr remulcld peano2rem syl zbtwnre 3syl znq an32 ad2antrl adantrr
      reurex simpll zre ad2antll ltletr syl3anc subdid breq2d resubcld ltdivmul
      nngt0 syl112anc ltsub13 3bitr4rd anbi1d ancom syl6bb ltmuldiv2 3imtr3d cc
      1red wceq ax-1cn npcan sylancl bitr4d biimpd anim12d syl5bi breq2 anbi12d
      breq1 rspcev syl6an expd expr rexlimdv mpd rexlimdva syld 3impia ) BFGZCF
      GZBCHIZBAJZHIZXKCHIZKZALMZXHXIKZXJNDJZUCOCBPOZHIZDUAMZXOXPXJUDXRHIZXTBCUB
      XIXHYAXTQXIXHKZYAXTYBXRFGZYAXTCBUEXRDUFUGUHUIUJXPXSXODUAXPXQUAGZKZXQCUKOZ
      NPOZEJZULIZYHYGNUMOZHIZKZERMZXSXOQZYEYGFGZYLERUNYMYEYFFGZYOYEXQCYDXQFGZXP
      XQUPZUOXHXIYDUQURZYFUSUTZEYGVAYLERVGVBYEYLYNERXPYDYHRGZYLYNQXPYDUUAKZKZYL
      XSXOUUCYHXQUCOZLGZYLXSKZBUUDHIZUUDCHIZKZXOUUBUUEXPUUAYDUUEYHXQVCUIUOUUFYI
      XSKZYKKUUCUUIYIYKXSVDUUCUUJUUGYKUUHUUCXQBUKOZYGHIZYIKZUUKYHHIZUUJUUGUUCUU
      KFGZYOYHFGZUUMUUNQUUCXQBYDYQXPUUAYRVEZXHXIUUBVHZURZXPYDYOUUAYTVFUUAUUPXPY
      DYHVIVJZUUKYGYHVKVLUUCUUMXSYIKUUJUUCUULXSYIUUCNXQXRUKOZHIZNYFUUKPOZHIZXSU
      ULUUCUVAUVCNHUUCXQCBUUCXQUUQSUUCCXHXIUUBUQZSUUCBUURSVMVNUUCNFGZYCYQUDXQHI
      ZXSUVBTUUCWGZUUCCBUVEUURVOUUQYDUVGXPUUAXQVQVEZNXRXQVPVRUUCUUOYPUVFUULUVDT
      UUSXPYDYPUUAYSVFZUVHUUKYFNVSVLVTWAXSYIWBWCUUCXHUUPYQUVGUUNUUGTUURUUTUUQUV
      IBYHXQWDVRWEUUCYKUUHUUCYKYHYFHIZUUHUUCYJYFYHHUUCYFWFGNWFGYJYFWHUUCYFUVJSW
      IYFNWJWKVNUUCUUPXIYQUVGUUHUVKTUUTUVEUUQUVIYHCXQVPVRWLWMWNWOXNUUIAUUDLXKUU
      DWHXLUUGXMUUHXKUUDBHWPXKUUDCHWRWQWSWTXAXBXCXDXEXFXG $.

    $( The rational numbers are dense in ` RR* ` : any two extended real
       numbers have a rational between them.  (Contributed by NM, 6-Feb-2007.)
       (Proof shortened by Mario Carneiro, 23-Aug-2015.) $)
    qbtwnxr $p |- ( ( A e. RR* /\ B e. RR* /\ A < B )
                   -> E. x e. QQ ( A < x /\ x < B ) ) $=
      ( wcel clt wbr wa cq wrex cr cpnf wceq qbtwnre c1 adantr adantl a1d breq2
      cmnf breq1 cxr cv w3o wi elxr 3expia caddc co simpl peano2re ltp1 syl3anc
      qre syl simplr breqtrrd anim2d reximdva mpd rexr wb nltmnf pm2.21d sylbid
      ltpnf sylan 3jaodan sylan2b pnfnlt cmin peano2rem simpr ltm1 simpll mnflt
      wn eqbrtrd anim1d 1re ax-mp mpbiri cz 1z anbi12d rspcev mpan syl2an 3mix3
      zq sylibr 3jaoian sylanb 3impia ) BUADZCUADZBCEFZBAUBZEFZWQCEFZGZAHIZWNBJ
      DZBKLZBSLZUCZWOWPXAUDZBUEZXBWOXFXCXDWOXBCJDZCKLZCSLZUCZXFCUEZXBXHXFXIXJXB
      XHWPXAABCMUFXBXIGZXAWPXMWRWQBNUGUHZEFZGZAHIZXAXMXBXNJDZBXNEFZXQXBXIUIXBXR
      XIBUJOXBXSXIBUKOABXNMULXMXPWTAHXMWQHDZGZXOWSWRYAWSXOYAWQKCEXTWQKEFZXMXTWQ
      JDZYBWQUMZWQVEUNPXBXIXTUOUPQUQURUSQXBWNXJXFBUTWNXJGZWPBSEFZXAXJWPYFVAWNCS
      BERPYEYFXAWNYFVPXJBVBOVCVDZVFVGVHXCWOGZWPKCEFZXAXCWPYIVAWOBKCETOYHYIXAWOY
      IVPXCCVIPVCVDWOXDXKXFXLXDXHXFXIXJXDXHGZXAWPYJCNVJUHZWQEFZWSGZAHIZXAYJYKJD
      ZXHYKCEFZYNXHYOXDCVKPXDXHVLXHYPXDCVMPAYKCMULYJYMWTAHYJXTGZYLWRWSYQWRYLYQB
      SWQEXDXHXTVNYQYCSWQEFXTYCYJYDPWQVOUNVQQVRURUSQXDXIGXAWPXDBNEFZNCEFZXAXIXD
      YRSNEFZNJDZYTVSNVOVTBSNETWAXIYSNKEFZUUAUUBVSNVEVTCKNERWANHDZYRYSGZXANWBDU
      UCWCNWIVTWTUUDANHWQNLWRYRWSYSWQNBERWQNCETWDWEWFWGQXDWNXJXFXDXEWNXDXBXCWHX
      GWJYGVFVGVHWKWLWM $.
  $}

  ${
    $d x A $.
    $( If a nonnegative real is less than any positive rational, it is zero.
       (Contributed by NM, 6-Feb-2007.) $)
    qsqueeze $p |- ( ( A e. RR /\ 0 <_ A /\ A. x e. QQ ( 0 < x -> A < x ) ) ->
                   A = 0 ) $=
      ( cr wcel cc0 cle wbr cv clt wi cq wral w3a wceq wn wa wrex wb 0re ltnle
      mpan qbtwnre mp3an1 qre ltnsym con2d sylan2 anim2d reximdva syld rexanali
      ex sylbird syl6ib con4d imp 3adant2 letri3 mpan2 rbaibd 3adant3 mpbird )
      BCDZEBFGZEAHZIGZBVEIGZJAKLZMBENZBEFGZVCVHVJVDVCVHVJVCVJVHVCVJOZVFVGOZPZAK
      QZVHOVCVKEBIGZVNECDZVCVOVKRSEBTUAVCVOVFVEBIGZPZAKQZVNVCVOVSVPVCVOVSSAEBUB
      UCULVCVRVMAKVCVEKDZPVQVLVFVTVCVECDZVQVLJVEUDVCWAPVGVQBVEUEUFUGUHUIUJUMVFV
      GAKUKUNUOUPUQVCVDVIVJRVHVCVIVJVDVCVPVIVJVDPRSBEURUSUTVAVB $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Lemma for ~ qextlt and qextle .  (Contributed by Mario Carneiro,
       3-Oct-2014.) $)
    qextltlem $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A < B ->
      E. x e. QQ ( -. ( x < A <-> x < B ) /\ -. ( x <_ A <-> x <_ B ) ) ) ) $=
      ( cxr wcel wa clt wbr cv cq wrex wb wn cle syl2anc xrltle 2thd nbbn sylib
      wi qbtwnxr 3expia simprl simplll rexrd ad2antlr xrltnle mpbid mtod simprr
      qre simpllr mpd jca ex reximdva syld ) BDEZCDEZFZBCGHZBAIZGHZVBCGHZFZAJKZ
      VBBGHZVDLMZVBBNHZVBCNHZLMZFZAJKURUSVAVFABCUAUBUTVEVLAJUTVBJEZFZVEVLVNVEFZ
      VHVKVOVGMZVDLVHVOVPVDVOVGVIVOVCVIMZVNVCVDUCVOURVBDEZVCVQLURUSVMVEUDZVMVRU
      TVEVMVBVBUKUEUFZBVBUGOUHZVOVRURVGVITVTVSVBBPOUIVNVCVDUJZQVGVDRSVOVQVJLVKV
      OVQVJWAVOVDVJWBVOVRUSVDVJTVTURUSVMVEULVBCPOUMQVIVJRSUNUOUPUQ $.

    $( An extensionality-like property for extended real ordering.
       (Contributed by Mario Carneiro, 3-Oct-2014.) $)
    qextlt $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A = B <->
      A. x e. QQ ( x < A <-> x < B ) ) ) $=
      ( cxr wcel wa wceq cv clt wbr wb cq wral wn wrex cle qextltlem simpl syl6
      reximi breq2 ralrimivw wne wo xrlttri2 wi bicom sylnib ancoms jaod sylbid
      rexnal syl6ib necon4ad impbid2 ) BDEZCDEZFZBCGZAHZBIJZUTCIJZKZALMZUSVCALB
      CUTIUAUBURVDBCURBCUCZVCNZALOZVDNURVEBCIJZCBIJZUDVGBCUEURVHVGVIURVHVFUTBPJ
      ZUTCPJZKNZFZALOVGABCQVMVFALVFVLRTSUQUPVIVGUFUQUPFVIVBVAKZNZVKVJKNZFZALOVG
      ACBQVQVFALVQVNVCVOVPRVBVAUGUHTSUIUJUKVCALULUMUNUO $.

    $( An extensionality-like property for extended real ordering.
       (Contributed by Mario Carneiro, 3-Oct-2014.) $)
    qextle $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A = B <->
      A. x e. QQ ( x <_ A <-> x <_ B ) ) ) $=
      ( cxr wcel wa wceq cv cle wbr wb cq wral wn wrex clt qextltlem simpr syl6
      reximi breq2 ralrimivw wne wo xrlttri2 wi bicom sylnib ancoms jaod sylbid
      rexnal syl6ib necon4ad impbid2 ) BDEZCDEZFZBCGZAHZBIJZUTCIJZKZALMZUSVCALB
      CUTIUAUBURVDBCURBCUCZVCNZALOZVDNURVEBCPJZCBPJZUDVGBCUEURVHVGVIURVHUTBPJZU
      TCPJZKNZVFFZALOVGABCQVMVFALVLVFRTSUQUPVIVGUFUQUPFVIVKVJKNZVBVAKZNZFZALOVG
      ACBQVQVFALVQVOVCVNVPRVBVAUGUHTSUIUJUKVCALULUMUNUO $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Show that ` A ` is less than ` B ` by showing that there is no positive
       bound on the difference.  (Contributed by Mario Carneiro,
       12-Jun-2014.) $)
    xralrple $p |- ( ( A e. RR* /\ B e. RR ) ->
                   ( A <_ B <-> A. x e. RR+ A <_ ( B + x ) ) ) $=
      ( vy cxr wcel cr wa cle wbr caddc co crp adantl mpbid rexrd wn cq syl2anc
      clt cv wral cc0 rpge0 simplr rpre addge01d simpll readdcld xrletr syl3anc
      mpan2d ralrimdva wrex rexr simpl qbtwnxr 3expia cmin simprrl qre ad2antrl
      wi wb difrp simprrr xrltnle recnd pncan3d breq2d mtbird wceq oveq2 notbid
      rspcev rexnal sylib rexlimdvaa syld con2d xrlenlt sylan2 sylibrd impbid )
      BEFZCGFZHZBCIJZBCAUAZKLZIJZAMUBZWGWHWKAMWGWIMFZHZWHCWJIJZWKWNUCWIIJZWOWMW
      PWGWIUDNWNCWIWEWFWMUEZWMWIGFWGWIUFNZUGOWNWECEFZWJEFWHWOHWKVCWEWFWMUHWNCWQ
      PWNWJWNCWIWQWRUIPBCWJUJUKULUMWGWLCBTJZQZWHWGWTWLWGWTCDUAZTJZXBBTJZHZDRUNZ
      WLQZWGWSWEWTXFVCWFWSWECUOZNWEWFUPWSWEWTXFDCBUQURSWGXEXGDRWGXBRFZXEHZHZWKQ
      ZAMUNZXGXKXBCUSLZMFZBCXNKLZIJZQZXMXKXCXOWGXIXCXDUTXKWFXBGFZXCXOVDWEWFXJUE
      ZXIXSWGXEXBVAVBZCXBVESOXKXQBXBIJZXKXDYBQZWGXIXCXDVFXKXBEFWEXDYCVDXKXBYAPW
      EWFXJUHXBBVGSOXKXPXBBIXKCXBXKCXTVHXKXBYAVHVIVJVKXLXRAXNMWIXNVLZWKXQYDWJXP
      BIWIXNCKVMVJVNVOSWKAMVPVQVRVSVTWFWEWSWHXAVDXHBCWAWBWCWD $.

    $( Show that ` A ` is less than ` B ` by showing that there is no positive
       bound on the difference.  (Contributed by Mario Carneiro,
       12-Jun-2014.) $)
    alrple $p |- ( ( A e. RR /\ B e. RR ) ->
                   ( A <_ B <-> A. x e. RR+ A <_ ( B + x ) ) ) $=
      ( cr wcel cxr cle wbr cv caddc co crp wral wb rexr xralrple sylan ) BDEBF
      ECDEBCGHBCAIJKGHALMNBOABCPQ $.
  $}

  $( Equality of two extended numbers with ` -e ` in front of them.
     (Contributed by FL, 26-Dec-2011.)  (Proof shortened by Mario Carneiro,
     20-Aug-2015.) $)
  xnegeq $p |- ( A = B -> -e A = -e B ) $=
    ( wceq cpnf cmnf cneg cif cxne eqeq1 negeq ifbieq2d df-xneg 3eqtr4g ) ABCZA
    DCZEAECZDAFZGZGBDCZEBECZDBFZGZGAHBHNOSRUBEABDINPTQUADABEIABJKKALBLM $.

  $( A negative extended real exists as a set.  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xnegex $p |- -e A e. _V $=
    ( cxne cpnf wceq cmnf cneg cif cvv df-xneg cxr mnfxr elexi pnfex negex ifex
    eqeltri ) ABACDZEAEDZCAFZGZGHAIQETEJKLRCSMANOOP $.

  $( Minus ` +oo ` .  Remark of [BourbakiTop1] p.  IV.15.  (Contributed by FL,
     26-Dec-2011.) $)
  xnegpnf $p |- -e +oo = -oo $=
    ( cpnf cxne wceq cmnf cneg cif df-xneg eqid iftruei eqtri ) ABAACZDADCAAEFZ
    FDAGKDLAHIJ $.

  $( Minus ` -oo ` .  Remark of [BourbakiTop1] p.  IV.15.  (Contributed by FL,
     26-Dec-2011.)  (Revised by Mario Carneiro, 20-Aug-2015.) $)
  xnegmnf $p |- -e -oo = +oo $=
    ( cmnf cxne cpnf wceq cneg cif df-xneg wne mnfnepnf ifnefalse ax-mp iftruei
    eqid 3eqtri ) ABACDAAADZCAEZFZFZQCAGACHRQDIACAQJKOCPAMLN $.

  $( Minus a real number.  Remark [BourbakiTop1] p.  IV.15.  (Contributed by
     FL, 26-Dec-2011.)  (Proof shortened by Mario Carneiro, 20-Aug-2015.) $)
  rexneg $p |- ( A e. RR -> -e A = -u A ) $=
    ( cr wcel cxne cpnf wceq cmnf cif df-xneg wne renepnf ifnefalse syl renemnf
    cneg eqtrd syl5eq ) ABCZADAEFGAGFEAOZHZHZSAIRUATSRAEJUATFAKAEGTLMRAGJTSFANA
    GESLMPQ $.

  $( The negative of zero.  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xneg0 $p |- -e 0 = 0 $=
    ( cc0 cxne cneg cr wcel wceq 0re rexneg ax-mp neg0 eqtri ) ABZACZAADELMFGAH
    IJK $.

  $( Closure of extended real negative.  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xnegcl $p |- ( A e. RR* -> -e A e. RR* ) $=
    ( cxr wcel cr cpnf wceq cmnf w3o cxne elxr cneg rexneg renegcl rexrd xnegeq
    eqeltrd xnegpnf mnfxr eqeltri syl6eqel xnegmnf pnfxr 3jaoi sylbi ) ABCADCZA
    EFZAGFZHAIZBCZAJUEUIUFUGUEUHUEUHAKDALAMPNUFUHEIZBAEOUJGBQRSTUGUHGIZBAGOUKEB
    UAUBSTUCUD $.

  $( Extended real version of ~ negneg .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xnegneg $p |- ( A e. RR* -> -e -e A = A ) $=
    ( cxr wcel cpnf wceq cmnf w3o cxne elxr cneg rexneg renegcl xnegmnf xnegpnf
    cr xnegeq syl syl6eq id 3eqtr4a recn negnegd 3eqtrd 3jaoi sylbi ) ABCAOCZAD
    EZAFEZGAHZHZAEZAIUFUKUGUHUFUJAJZHZULJZAUFUIULEUJUMEAKUIULPQUFULOCUMUNEALULK
    QUFAAUAUBUCUGFHZDUJAMUGUIFEUJUOEUGUIDHZFADPNRUIFPQUGSTUHUPFUJANUHUIDEUJUPEU
    HUIUODAFPMRUIDPQUHSTUDUE $.

  $( Extended real version of ~ neg11 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xneg11 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( -e A = -e B <-> A = B ) ) $=
    ( cxr wcel wa cxne wceq xnegeq xnegneg eqeqan12d syl5ib impbid1 ) ACDZBCDZE
    ZAFZBFZGZABGZRPFZQFZGOSPQHMNTAUABAIBIJKABHL $.

  $( Forward direction of ~ xltneg .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xltnegi $p |- ( ( A e. RR* /\ B e. RR* /\ A < B ) -> -e B < -e A ) $=
    ( cxr wcel clt wbr cxne cr cpnf wceq cmnf w3o wa wi elxr cneg syl adantr wn
    sylbid rexneg breqan12rd bitr4d biimpd xnegeq xnegpnf syl6eq adantl renegcl
    ltneg eqeltrd mnflt eqbrtrd a1d simpr breq2d nltmnf pm2.21d 3jaodan sylan2b
    rexr expimpd simpl breq1d pnfnlt breq1 anbi2d ltpnf mnfltpnf syl6eqbr breq2
    mnfxr ax-mp pm2.21i syl6bi imp 3jaoian sylanb xnegmnf syl5ibr 3jaoi 3impib
    sylbi ) ACDZBCDZABEFZBGZAGZEFZWDAHDZAIJZAKJZLWEWFMZWINZAOWJWNWKWLWJWEWFWIWE
    WJBHDZBIJZBKJZLZWFWINZBOZWJWOWSWPWQWJWOMZWFWIXAWFBPZAPZEFWIABUJWOWJWGXBWHXC
    EBUAZAUAZUBUCUDWJWPMZWIWFXFWGKWHEWPWGKJZWJWPWGIGKBIUEUFUGZUHWJKWHEFZWPWJWHH
    DXIWJWHXCHXEAUIUKWHULQRUMUNWJWQMZWFAKEFZWIXJBKAEWJWQUOUPXJXKWIWJXKSZWQWJWDX
    LAVAAUQQRURTUSUTVBWKWEWFWIWKWEMZWFIBEFZWIXMAIBEWKWEVCVDXMXNWIWEXNSWKBVEUHUR
    TVBWLWMWEKBEFZMZWIWLWFXOWEAKBEVFVGXPWIWLWGIEFZWEWRXOXQWTWOXOXQWPWQWOXOMWGHD
    ZXQWOXRXOWOWGXBHXDBUIUKRWGVHQWPXOMWGKIEWPXGXOXHRVIVJWQXOXQWQXOKKEFZXQBKKEVK
    XSXQKCDXSSVLKUQVMVNVOVPVQVRWLWHIWGEWLWHKGIAKUEVSUGUPVTTWAWCWB $.

  $( Extended real version of ~ ltneg .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xltneg $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A < B <-> -e B < -e A ) ) $=
    ( cxr wcel wa clt xltnegi 3expia wi xnegcl syl2anr xnegneg breqan12d sylibd
    wbr cxne impbid ) ACDZBCDZEZABFOZBPZAPZFOZRSUAUDABGHTUDUCPZUBPZFOZUASUBCDZU
    CCDZUDUGIRBJAJUHUIUDUGUBUCGHKRSUEAUFBFALBLMNQ $.

  $( Extended real version of ~ leneg .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xleneg $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A <_ B <-> -e B <_ -e A ) ) $=
    ( cxr wcel wa clt wbr wn cle wb xltneg ancoms notbid xrlenlt xnegcl syl2anr
    cxne 3bitr4d ) ACDZBCDZEZBAFGZHAQZBQZFGZHZABIGUDUCIGZUAUBUETSUBUEJBAKLMABNT
    UDCDUCCDUGUFJSBOAOUDUCNPR $.

  $( Extended real version of ~ lt0neg1 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xlt0neg1 $p |- ( A e. RR* -> ( A < 0 <-> 0 < -e A ) ) $=
    ( cxr wcel cc0 clt wbr cxne wb 0xr xltneg mpan2 xneg0 breq1i syl6bb ) ABCZA
    DEFZDGZAGZEFZDREFODBCPSHIADJKQDRELMN $.

  $( Extended real version of ~ lt0neg2 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xlt0neg2 $p |- ( A e. RR* -> ( 0 < A <-> -e A < 0 ) ) $=
    ( cxr wcel cc0 clt wbr cxne wb 0xr xltneg mpan xneg0 breq2i syl6bb ) ABCZDA
    EFZAGZDGZEFZQDEFDBCOPSHIDAJKRDQELMN $.

  $( Extended real version of ~ le0neg1 .  (Contributed by Mario Carneiro,
     9-Sep-2015.) $)
  xle0neg1 $p |- ( A e. RR* -> ( A <_ 0 <-> 0 <_ -e A ) ) $=
    ( cxr wcel cc0 cle wbr cxne wb 0xr xleneg mpan2 xneg0 breq1i syl6bb ) ABCZA
    DEFZDGZAGZEFZDREFODBCPSHIADJKQDRELMN $.

  $( Extended real version of ~ le0neg2 .  (Contributed by Mario Carneiro,
     9-Sep-2015.) $)
  xle0neg2 $p |- ( A e. RR* -> ( 0 <_ A <-> -e A <_ 0 ) ) $=
    ( cxr wcel cc0 cle wbr cxne wb 0xr xleneg mpan xneg0 breq2i syl6bb ) ABCZDA
    EFZAGZDGZEFZQDEFDBCOPSHIDAJKRDQELMN $.

  ${
    $d x y A $.  $d x y B $.
    $( Value of the extended real addition operation.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    xaddval $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A +e B ) = if ( A = +oo ,
            if ( B = -oo , 0 , +oo ) , if ( A = -oo ,
            if ( B = +oo , 0 , -oo ) , if ( B = +oo , +oo ,
                 if ( B = -oo , -oo , ( A + B ) ) ) ) ) ) $=
      ( vx vy cxr cv cpnf wceq cc0 cif caddc co eqeq1d ifbid ifbieq2d ifbieq12d
      cmnf c0ex pnfex ifex cxad wa simpl simpr df-xadd mnfxr elexi ovex ovmpt2a
      oveq12 ) CDABEECFZGHZDFZQHZIGJZUKQHZUMGHZIQJZUQGUNQUKUMKLZJZJZJZJAGHZBQHZ
      IGJZAQHZBGHZIQJZVGGVDQABKLZJZJZJZJUAUKAHZUMBHZUBZULVCUOVBVEVLVOUKAGVMVNUC
      ZMVOUNVDIGVOUMBQVMVNUDZMZNVOUPVFURVAVHVKVOUKAQVPMVOUQVGIQVOUMBGVQMZNVOUQV
      GUTVJGVSVOUNVDUSVIQVRUKAUMBKUJOOPPCDUEVCVEVLVDIGRSTVFVHVKVGIQRQEUFUGZTVGG
      VJSVDQVIVTABKUHTTTTUI $.

    $( The extended real addition operation is closed in extended reals.
       (Contributed by Mario Carneiro, 21-Aug-2015.) $)
    xaddf $p |- +e : ( RR* X. RR* ) --> RR* $=
      ( vx vy cv cpnf wceq cmnf cc0 cif cxr wcel wral cxad wa 0xr wn cr anassrs
      a1i wo ifclda caddc co cxp pnfxr keepel mnfxr ioran w3o elxr 3orass sylbb
      wf ord con1d imp sylan2br readdcl syl2an rexrd an32s rgen2a df-xadd fmpt2
      mpbi ) ACZDEZBCZFEZGDHZVEFEZVGDEZGFHZVKDVHFVEVGUAUBZHZHZHZHZIJZBIKAIKIIUC
      ILULVRABIVEIJZVGIJZMZVFVIVPIVIIJWAVFMVHGDINUDUERWAVFOZMZVJVLVOIVLIJWCVJMV
      KGFINUFUERWAWBVJOZVOIJZVSWBWDMZVTWEVSWFMZVTMZVKDVNIDIJWHVKMUDRWHVKOZMZVHF
      VMIFIJWJVHMUFRWHWIVHOZVMIJZWGVTWIWKMZWLWGVTWMMZMVMWGVEPJZVGPJZVMPJWNWFVSV
      FVJSZOZWOVFVJUGVSWRWOVSWOWQVSWOWQVSWOVFVJUHWOWQSVEUIWOVFVJUJUKUMUNUOUPWMV
      TVKVHSZOZWPVKVHUGVTWTWPVTWPWSVTWPWSVTWPVKVHUHWPWSSVGUIWPVKVHUJUKUMUNUOUPV
      EVGUQURUSQQTTUTQTTVAABIIVQILABVBVCVD $.

    $( Value of the extended real multiplication operation.  (Contributed by
       Mario Carneiro, 20-Aug-2015.) $)
    xmulval $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A *e B ) =
            if ( ( A = 0 \/ B = 0 ) , 0 ,
            if ( ( ( ( 0 < B /\ A = +oo ) \/ ( B < 0 /\ A = -oo ) ) \/
                   ( ( 0 < A /\ B = +oo ) \/ ( A < 0 /\ B = -oo ) ) ) , +oo ,
            if ( ( ( ( 0 < B /\ A = -oo ) \/ ( B < 0 /\ A = +oo ) ) \/
                   ( ( 0 < A /\ B = -oo ) \/ ( A < 0 /\ B = +oo ) ) ) , -oo ,
                 ( A x. B ) ) ) ) ) $=
      ( vx vy cxr cc0 wceq wo clt wbr cpnf cmnf cmul cif eqeq1d orbi12d anbi12d
      wa ifbieq2d ifex cv co cxmu simpl simpr breq2d breq1d oveq12 df-xmul c0ex
      pnfex mnfxr elexi ovex ovmpt2a ) CDABEECUAZFGZDUAZFGZHZFFURIJZUPKGZRZURFI
      JZUPLGZRZHZFUPIJZURKGZRZUPFIJZURLGZRZHZHZKVAVERZVDVBRZHZVHVLRZVKVIRZHZHZL
      UPURMUBZNZNZNAFGZBFGZHZFFBIJZAKGZRZBFIJZALGZRZHZFAIJZBKGZRZAFIJZBLGZRZHZH
      ZKWIWMRZWLWJRZHZWPWTRZWSWQRZHZHZLABMUBZNZNZNUCUPAGZURBGZRZUTWHWEXMFXPUQWF
      USWGXPUPAFXNXOUDZOXPURBFXNXOUEZOPXPVOXCWDXLKXPVGWOVNXBXPVCWKVFWNXPVAWIVBW
      JXPURBFIXRUFZXPUPAKXQOZQXPVDWLVEWMXPURBFIXRUGZXPUPALXQOZQPXPVJWRVMXAXPVHW
      PVIWQXPUPAFIXQUFZXPURBKXROZQXPVKWSVLWTXPUPAFIXQUGZXPURBLXROZQPPXPWBXJWCXK
      LXPVRXFWAXIXPVPXDVQXEXPVAWIVEWMXSYBQXPVDWLVBWJYAXTQPXPVSXGVTXHXPVHWPVLWTY
      CYFQXPVKWSVIWQYEYDQPPUPAURBMUHSSSCDUIWHFXMUJXCKXLUKXJLXKLEULUMABMUNTTTUO
      $.
  $}

  $( Addition of positive infinity on the right.  (Contributed by Mario
     Carneiro, 20-Aug-2015.) $)
  xaddpnf1 $p |- ( ( A e. RR* /\ A =/= -oo ) -> ( A +e +oo ) = +oo ) $=
    ( cxr wcel cmnf wne cpnf cxad co cc0 cif caddc pnfxr xaddval mpan2 pnfnemnf
    wceq ifnefalse mp1i eqid syl6eq iftruei ifeq12d ifid sylan9eq ) ABCZADEZAFG
    HZAFPZFDPZIFJZADPFFPZIDJZUKFUIDAFKHJZJZJZJZFUEFBCUGUPPLAFMNUFUPUHFFJFUFUHUJ
    FUOFFDEUJFPUFOFDIFQRUFUOUNFADULUNQUKFUMFSUATUBUHFUCTUD $.

  $( Addition of positive infinity on the left.  (Contributed by Mario
     Carneiro, 20-Aug-2015.) $)
  xaddpnf2 $p |- ( ( A e. RR* /\ A =/= -oo ) -> ( +oo +e A ) = +oo ) $=
    ( cxr wcel cmnf wne cpnf cxad co wceq cc0 cif caddc pnfxr xaddval mpan eqid
    iftruei ifnefalse syl5eq sylan9eq ) ABCZADEZFAGHZFFIZADIZJFKZFDIAFIZJDKUGFU
    EDFALHKKKZKZFFBCUAUCUIIMFANOUBUIUFFUDUFUHFPQADJFRST $.

  $( Addition of negative infinity on the right.  (Contributed by Mario
     Carneiro, 20-Aug-2015.) $)
  xaddmnf1 $p |- ( ( A e. RR* /\ A =/= +oo ) -> ( A +e -oo ) = -oo ) $=
    ( cxr wcel cpnf wne cmnf cxad co wceq cc0 cif caddc mnfxr xaddval ifnefalse
    mpan2 mnfnepnf ax-mp eqid eqtri iftruei ifeq12 mp2an ifid syl6eq sylan9eq )
    ABCZADEZAFGHZADIFFIZJDKZAFIZFDIZJFKZUMDUJFAFLHZKZKZKZKZFUGFBCUIUSIMAFNPUHUS
    URFADUKUROURULFFKZFUNFIZUQFIURUTIFDEZVAQFDJFORUQUPFVBUQUPIQFDDUPORUJFUOFSUA
    TULUNFUQFUBUCULFUDTUEUF $.

  $( Addition of negative infinity on the left.  (Contributed by Mario
     Carneiro, 20-Aug-2015.) $)
  xaddmnf2 $p |- ( ( A e. RR* /\ A =/= +oo ) -> ( -oo +e A ) = -oo ) $=
    ( cxr wcel cpnf wne cmnf cxad co wceq cc0 caddc mnfxr xaddval mpan mnfnepnf
    cif ifnefalse ax-mp eqid iftruei eqtri syl5eq sylan9eq ) ABCZADEZFAGHZFDIAF
    IZJDPZFFIZADIZJFPZUJDUGFFAKHPPZPZPZFFBCUDUFUNILFAMNUEUNUKFUNUMUKFDEUNUMIOFD
    UHUMQRUIUKULFSTUAADJFQUBUC $.

  $( Addition of positive and negative infinity.  This is often taken to be a
     "null" value or out of the domain, but we define it (somewhat arbitrarily)
     to be zero so that the resulting function is total, which simplifies
     proofs.  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  pnfaddmnf $p |- ( +oo +e -oo ) = 0 $=
    ( cpnf cmnf cxad wceq cc0 cif caddc cxr wcel pnfxr mnfxr xaddval mp2an eqid
    co iftruei 3eqtri ) ABCOZAADZBBDZEAFZABDBADZEBFUBATBABGOFFFZFZUAEAHIBHIRUDD
    JKABLMSUAUCANPTEABNPQ $.

  $( Addition of negative and positive infinity.  This is often taken to be a
     "null" value or out of the domain, but we define it (somewhat arbitrarily)
     to be zero so that the resulting function is total, which simplifies
     proofs.  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  mnfaddpnf $p |- ( -oo +e +oo ) = 0 $=
    ( cmnf cpnf cxad wceq cc0 cif caddc wcel mnfxr pnfxr xaddval mp2an mnfnepnf
    co cxr wne ifnefalse eqid iftruei eqtri ax-mp ) ABCNZABDBADZEBFZAADZBBDZEAF
    ZUFBUCAABGNFFZFZFZEAOHBOHUBUJDIJABKLUJUIEABPUJUIDMABUDUIQUAUIUGEUEUGUHARSUF
    EABRSTTT $.

  $( The extended real addition operation when both arguments are real.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  rexadd $p |- ( ( A e. RR /\ B e. RR ) -> ( A +e B ) = ( A + B ) ) $=
    ( cr wcel wa cxad cpnf wceq cmnf cc0 cif cxr rexr wne renepnf ifnefalse syl
    co renemnf eqtrd caddc xaddval syl2an sylan9eq ) ACDZBCDZEABFRZAGHBIHZJGKZA
    IHBGHZJIKZUJGUHIABUARZKZKZKZKZULUEALDBLDUGUPHUFAMBMABUBUCUEUFUPUNULUEUPUOUN
    UEAGNUPUOHAOAGUIUOPQUEAINUOUNHASAIUKUNPQTUFUNUMULUFBGNUNUMHBOBGGUMPQUFBINUM
    ULHBSBIIULPQTUDT $.

  $( Extended real subtraction when both arguments are real.  (Contributed by
     Mario Carneiro, 23-Aug-2015.) $)
  rexsub $p |- ( ( A e. RR /\ B e. RR ) -> ( A +e -e B ) = ( A - B ) ) $=
    ( cr wcel wa cxne cxad co cneg caddc cmin wceq rexneg adantl oveq2d renegcl
    rexadd sylan2 cc recn negsub syl2an 3eqtrd ) ACDZBCDZEZABFZGHABIZGHZAUHJHZA
    BKHZUFUGUHAGUEUGUHLUDBMNOUEUDUHCDUIUJLBPAUHQRUDASDBSDUJUKLUEATBTABUAUBUC $.

  ${
    rexaddd.1 $e |- ( ph -> A e. RR ) $.
    rexaddd.2 $e |- ( ph -> B e. RR ) $.
    $( The extended real addition operation when both arguments are real.
       Deduction version of ~ rexadd .  (Contributed by Glauco Siliprandi,
       24-Dec-2020.) $)
    rexaddd $p |- ( ph -> ( A +e B ) = ( A + B ) ) $=
      ( cr wcel cxad co caddc wceq rexadd syl2anc ) ABFGCFGBCHIBCJIKDEBCLM $.
  $}

  $( The extended nonnegative integers are closed under extended addition.
     (Contributed by AV, 10-Dec-2020.) $)
  xnn0xaddcl $p |- ( ( A e. NN0* /\ B e. NN0* ) -> ( A +e B ) e. NN0* ) $=
    ( cn0 wcel wa cxnn0 cxad co wi nn0re cpnf wceq xnn0nnn0pnf cxr cmnf wne syl
    cr wn ex caddc nn0addcl nn0xnn0d wb rexadd eleq1d syl2an mpbird ianor oveq1
    a1d xnn0xrnemnf xaddpnf2 sylan9eq expcom impd oveq2 xaddpnf1 com23 jaoi imp
    wo pnf0xnn0 syl6eqel sylbi pm2.61i ) ACDZBCDZEZAFDZBFDZEZABGHZFDZIZVIVNVLVI
    VNABUAHZFDZVIVPABUBUCVGARDZBRDZVNVQUDVHAJBJVRVSEVMVPFABUEUFUGUHUKVISVGSZVHS
    ZVBZVOVGVHUIWBVLVNWBVLEVMKFWBVLVMKLZVTVLWCIWAVTVJVKWCVJVTVKWCIZVJVTEAKLZWDA
    MWEVKWCWEVKVMKBGHZKAKBGUJVKBNDBOPEWFKLBULBUMQUNTQUOUPWAVJVKWCWAVKVJWCVKWAVJ
    WCIZVKWAEBKLZWGBMWHVJWCWHVJVMAKGHZKBKAGUQVJANDAOPEWIKLAULAURQUNTQUOUSUPUTVA
    VCVDTVEVF $.

  $( Closure of extended real addition in the subset ` RR* / { -oo } ` .
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xaddnemnf $p |- ( ( ( A e. RR* /\ A =/= -oo ) /\
                      ( B e. RR* /\ B =/= -oo ) ) -> ( A +e B ) =/= -oo ) $=
    ( cxr wcel cmnf wne wa cr cpnf wceq wo cxad co xrnemnf caddc rexadd readdcl
    pnfnemnf a1i eqnetrd eqeltrd renemnfd oveq2 rexr renemnf xaddpnf1 sylan9eqr
    syl2anc jaodan sylan2b oveq1 xaddpnf2 sylan9eq jaoian sylanb ) ACDZAEFZGAHD
    ZAIJZKBCDBEFGZABLMZEFZANURUTVBUSUTURBHDZBIJZKVBBNURVCVBVDURVCGZVAVEVAABOMHA
    BPABQUAUBURVDGZVAIEVDURVAAILMZIBIALUCURUPUQVGIJAUDAUEAUFUHUGIEFZVFRSTUIUJUS
    UTGZVAIEUSUTVAIBLMIAIBLUKBULUMVHVIRSTUNUO $.

  $( Closure of extended real addition in the subset ` RR* / { +oo } ` .
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xaddnepnf $p |- ( ( ( A e. RR* /\ A =/= +oo ) /\
                      ( B e. RR* /\ B =/= +oo ) ) -> ( A +e B ) =/= +oo ) $=
    ( cxr wcel cpnf wne wa cr cmnf wceq wo cxad co xrnepnf caddc rexadd readdcl
    mnfnepnf a1i eqnetrd eqeltrd renepnfd oveq2 rexr renepnf xaddmnf1 sylan9eqr
    syl2anc jaodan sylan2b oveq1 xaddmnf2 sylan9eq jaoian sylanb ) ACDZAEFZGAHD
    ZAIJZKBCDBEFGZABLMZEFZANURUTVBUSUTURBHDZBIJZKVBBNURVCVBVDURVCGZVAVEVAABOMHA
    BPABQUAUBURVDGZVAIEVDURVAAILMZIBIALUCURUPUQVGIJAUDAUEAUFUHUGIEFZVFRSTUIUJUS
    UTGZVAIEUSUTVAIBLMIAIBLUKBULUMVHVIRSTUNUO $.

  $( Extended real version of ~ negid .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xnegid $p |- ( A e. RR* -> ( A +e -e A ) = 0 ) $=
    ( cxr wcel cr cpnf wceq cmnf w3o cxne cxad co cc0 elxr cneg caddc rexneg id
    xnegeq syl6eq oveq12d oveq2d renegcl rexadd negidd 3eqtrd xnegpnf pnfaddmnf
    mpdan recn xnegmnf mnfaddpnf 3jaoi sylbi ) ABCADCZAEFZAGFZHAAIZJKZLFZAMUNUS
    UOUPUNURAANZJKZAUTOKZLUNUQUTAJAPUAUNUTDCVAVBFAUBAUTUCUHUNAAUIUDUEUOUREGJKLU
    OAEUQGJUOQUOUQEIGAERUFSTUGSUPURGEJKLUPAGUQEJUPQUPUQGIEAGRUJSTUKSULUM $.

  $( The extended real addition operation is closed in extended reals.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xaddcl $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A +e B ) e. RR* ) $=
    ( cxr cxad xaddf fovcl ) ABCCCDEF $.

  $( The extended real addition operation is commutative.  (Contributed by NM,
     26-Dec-2011.) $)
  xaddcom $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A +e B ) = ( B +e A ) ) $=
    ( cxr wcel cr cpnf wceq cmnf w3o cxad co elxr 3eqtr4d wne syl2anc sylan9eqr
    wa eqtr4d oveq2d oveq1d caddc recn addcom syl2an rexadd ancoms rexr renemnf
    oveq2 xaddpnf1 oveq1 xaddpnf2 renepnf xaddmnf1 xaddmnf2 3jaodan sylan2b cc0
    cc pnfaddmnf mnfaddpnf eqtr4i simpr 3eqtr4a pm2.61dane adantl simpl 3jaoian
    sylanb ) ACDZAEDZAFGZAHGZIBCDZABJKZBAJKZGZALVKVNVQVLVMVNVKBEDZBFGZBHGZIVQBL
    VKVRVQVSVTVKVRQABUAKZBAUAKZVOVPVKAUSDBUSDWAWBGVRAUBBUBABUCUDABUEVRVKVPWBGBA
    UEUFMVKVSQVOFVPVSVKVOAFJKZFBFAJUIVKVJAHNZWCFGAUGZAUHZAUJOPVSVKVPFAJKZFBFAJU
    KVKVJWDWGFGWEWFAULOPRVKVTQVOHVPVTVKVOAHJKZHBHAJUIVKVJAFNZWHHGWEAUMZAUNOPVTV
    KVPHAJKZHBHAJUKVKVJWIWKHGWEWJAUOOPRUPUQVLVNQZFBJKZBFJKZVOVPVNWMWNGZVLVNWOBH
    VNVTQZFHJKZHFJKZWMWNWQURWRUTVAVBWPBHFJVNVTVCZSWPBHFJWSTVDVNBHNQWMFWNBULBUJR
    VEVFWLAFBJVLVNVGZTWLAFBJWTSMVMVNQZHBJKZBHJKZVOVPVNXBXCGZVMVNXDBFVNVSQZWRWQX
    BXCWRURWQVAUTVBXEBFHJVNVSVCZSXEBFHJXFTVDVNBFNQXBHXCBUOBUNRVEVFXAAHBJVMVNVGZ
    TXAAHBJXGSMVHVI $.

  $( Extended real version of ~ addid1 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xaddid1 $p |- ( A e. RR* -> ( A +e 0 ) = A ) $=
    ( cxr wcel cr cpnf wceq cmnf w3o cc0 cxad co elxr 0re wne ax-mp mp2an oveq1
    0xr id 3eqtr4a caddc rexadd mpan2 addid1d renemnf xaddpnf2 renepnf xaddmnf2
    recn eqtrd 3jaoi sylbi ) ABCADCZAEFZAGFZHAIJKZAFZALUMUQUNUOUMUPAIUAKZAUMIDC
    ZUPURFMAIUBUCUMAAUIUDUJUNEIJKZEUPAIBCZIGNZUTEFRUSVBMIUEOIUFPAEIJQUNSTUOGIJK
    ZGUPAVAIENZVCGFRUSVDMIUGOIUHPAGIJQUOSTUKUL $.

  $( Extended real version of ~ addid2 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xaddid2 $p |- ( A e. RR* -> ( 0 +e A ) = A ) $=
    ( cxr wcel cc0 cxad co wceq 0xr xaddcom mpan xaddid1 eqtrd ) ABCZDAEFZADEFZ
    ADBCMNOGHDAIJAKL $.

  ${
    xaddid1d.1 $e |- ( ph -> A e. RR* ) $.
    $( ` 0 ` is a right identity for extended real addition.  (Contributed by
       Glauco Siliprandi, 17-Aug-2020.) $)
    xaddid1d $p |- ( ph -> ( A +e 0 ) = A ) $=
      ( cxr wcel cc0 cxad co wceq xaddid1 syl ) ABDEBFGHBICBJK $.
  $}

  $( An extended nonnegative integer which is less than or equal to a
     nonnegative integer is a nonnegative integer.  (Contributed by AV,
     24-Nov-2021.) $)
  xnn0lenn0nn0 $p |- ( ( M e. NN0* /\ N e. NN0 /\ M <_ N ) -> M e. NN0 ) $=
    ( cxnn0 wcel cn0 cle wbr cpnf wo wi elxnn0 2a1 wa wb breq1 nn0re syl sylbid
    wceq cr adantr cxr rexrd xgepnf wnel pnfnre eleq1 syl6bi com13 ax-mp adantl
    elnelall ex jaoi sylbi 3imp ) ACDZBEDZABFGZAEDZUQUTAHSZIURUSUTJZJZAKUTVCVAU
    TURUSLVAURVBVAURMUSHBFGZUTVAUSVDNURAHBFOUAURVDUTJVAURVDBHSZUTURBUBDVDVENURB
    BPUCBUDQHTUEZURVEUTJJUFVEURVFUTVEURHEDZVFUTJZBHEUGVGHTDVHHPUTHTULQUHUIUJRUK
    RUMUNUOUP $.

  $( An extended nonnegative integer which is less than or equal to 2 is either
     0 or 1 or 2.  (Contributed by AV, 24-Nov-2021.) $)
  xnn0le2is012 $p |- ( ( N e. NN0* /\ N <_ 2 )
                       -> ( N = 0 \/ N = 1 \/ N = 2 ) ) $=
    ( cxnn0 wcel c2 cle wbr cn0 cc0 wceq c1 w3o xnn0lenn0nn0 mp3an2 nn0le2is012
    2nn0 sylancom ) ABCZADEFZAGCZAHIAJIADIKQDGCRSOADLMANP $.

  $( The sum of two extended nonnegative integers is ` 0 ` iff each of the two
     extended nonnegative integers is ` 0 ` .  (Contributed by AV,
     14-Dec-2020.) $)
  xnn0xadd0 $p |- ( ( A e. NN0* /\ B e. NN0* )
                   -> ( ( A +e B ) = 0 <-> ( A = 0 /\ B = 0 ) ) ) $=
    ( cxnn0 wcel wa cxad co cc0 wceq wi cn0 cpnf wo elxnn0 cr syl2an eqeq1d cxr
    nn0re wne caddc rexadd cle wb nn0ge0 add20 bitrd biimpd expcom oveq2 adantr
    wbr jca cmnf nn0xnn0 xnn0xrnemnf xaddpnf1 3syl adantl renepnf ax-mp pm2.21i
    0re nesymi syl6bi ex sylbi com12 oveq1 xaddpnf2 syl sylan9bb imp oveq12 0xr
    jaoi xaddid1 syl6eq impbid1 ) ACDZBCDZEABFGZHIZAHIBHIEZVTWAWCWDJZVTAKDZALIZ
    MWAWEJZANWFWHWGWAWFWEWABKDZBLIZMWFWEJZBNWIWKWJWFWIWEWFWIEZWCWDWLWCABUAGZHIZ
    WDWLWBWMHWFAODZBODZWBWMIWIASZBSZABUBPQWFWOHAUCULZEWPHBUCULZEWNWDUDWIWFWOWSW
    QAUEUMWIWPWTWRBUEUMABUFPUGUHUIWJWFWEWJWFEZWCLHIZWDXAWCALFGZHIZXBWJWCXDUDWFW
    JWBXCHBLAFUJQUKXAXCLHWFXCLIZWJWFVTARDAUNTEXEAUOAUPAUQURUSQUGXBWDHLHODHLTVCH
    UTVAVDVBZVEVFVPVGVHWGWAWEWGWAEWCXBWDWGWCLBFGZHIWAXBWGWBXGHALBFVIQWAXGLHWABR
    DBUNTEXGLIBUPBVJVKQVLXFVEVFVPVGVMWDWBHHFGZHAHBHFVNHRDXHHIVOHVQVAVRVS $.

  $( Extended real version of ~ xnegdi .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xnegdi $p |- ( ( A e. RR* /\ B e. RR* ) ->
    -e ( A +e B ) = ( -e A +e -e B ) ) $=
    ( wcel cr cpnf wceq cmnf cxad co cxne syl xnegeq xnegpnf wne syl2anc syl6eq
    wa oveq2d 3eqtr4a cc0 cxr w3o elxr caddc cneg cc recn syl2an readdcl rexneg
    negdi renegcl rexadd 3eqtr4d oveqan12d oveq2 rexr renemnf sylan9eqr eqeltrd
    xaddpnf1 renepnf xaddmnf1 xnegmnf 3jaodan sylan2b xneg0 pnfaddmnf mnfaddpnf
    adantl xaddpnf2 xnegcl adantr xnegneg eqeq1d syl5ib imp xaddmnf2 pm2.61dane
    simpr necon3d simpl oveq1d 3jaoian sylanb ) AUACZADCZAEFZAGFZUBBUACZABHIZJZ
    AJZBJZHIZFZAUCWGWJWPWHWIWJWGBDCZBEFZBGFZUBWPBUCWGWQWPWRWSWGWQQZABUDIZJZAUEZ
    BUEZHIZWLWOWTXAUEZXCXDUDIZXBXEWGAUFCBUFCXFXGFWQAUGBUGABUKUHWTXADCXBXFFABUIX
    AUJKWGXCDCXDDCXEXGFWQAULZBULXCXDUMUHUNWTWKXAFWLXBFABUMWKXALKWGWQWMXCWNXDHAU
    JZBUJUOUNWGWRQZEJZGWLWOMXJWKEFWLXKFWRWGWKAEHIZEBEAHUPWGWFAGNXLEFAUQZAURAVAO
    USWKELKWRWGWOWMGHIZGWRWNGWMHWRWNXKGBELMPZRWGWMDCZXNGFZWGWMXCDXIXHUTZXPWMUAC
    ZWMENXQWMUQZWMVBWMVCOKUSSWGWSQZGJZEWLWOVDYAWKGFWLYBFWSWGWKAGHIZGBGAHUPWGWFA
    ENYCGFXMAVBAVCOUSWKGLKWSWGWOWMEHIZEWSWNEWMHWSWNYBEBGLVDPZRWGXPYDEFZXRXPXSWM
    GNYFXTWMURWMVAOKUSSVEVFWHWJQZEBHIZJZGWNHIZWLWOWJYIYJFZWHWJYKBGWJWSQZTJZTYIY
    JVGYLYHTFYIYMFYLYHEGHIZTYLBGEHWJWSVTRVHPYHTLKYLYJGEHIZTYLWNEGHWSWNEFZWJYEVJ
    RVIPSWJBGNZQZXKGYIYJMYRYHEFYIXKFBVKYHELKYRWNUACZWNENZYJGFWJYSYQBVLZVMWJYQYT
    WJWNEBGYPWNJZGFWJWSYPUUBXKGWNELMPWJUUBBGBVNZVOVPWAVQWNVROSVSVJYGWKYHFWLYIFY
    GAEBHWHWJWBWCWKYHLKYGWMGWNHYGWMXKGWHWMXKFWJAELVMMPWCUNWIWJQZGBHIZJZEWNHIZWL
    WOWJUUFUUGFZWIWJUUHBEWJWRQZYMTUUFUUGVGUUIUUETFUUFYMFUUIUUEYOTUUIBEGHWJWRVTR
    VIPUUETLKUUIUUGYNTUUIWNGEHWRWNGFZWJXOVJRVHPSWJBENZQZYBEUUFUUGVDUULUUEGFUUFY
    BFBVRUUEGLKUULYSWNGNZUUGEFWJYSUUKUUAVMWJUUKUUMWJWNGBEUUJUUBEFWJWRUUJUUBYBEW
    NGLVDPWJUUBBEUUCVOVPWAVQWNVKOSVSVJUUDWKUUEFWLUUFFUUDAGBHWIWJWBWCWKUUELKUUDW
    MEWNHUUDWMYBEWIWMYBFWJAGLVMVDPWCUNWDWE $.

  $( Associativity of extended real addition.  The correct condition here is
     "it is not the case that both ` +oo ` and ` -oo ` appear as one of
     ` A , B , C ` , i.e. ` -. { +oo , -oo } C_ { A , B , C } ` ", but this
     condition is difficult to work with, so we break the theorem into two
     parts: this one, where ` -oo ` is not present in ` A , B , C ` , and
     ~ xaddass2 , where ` +oo ` is not present.  (Contributed by Mario
     Carneiro, 20-Aug-2015.) $)
  xaddass $p |- ( ( ( A e. RR* /\ A =/= -oo ) /\ ( B e. RR* /\ B =/= -oo ) /\
  ( C e. RR* /\ C =/= -oo ) ) -> ( ( A +e B ) +e C ) = ( A +e ( B +e C ) ) ) $=
    ( cxr wcel cmnf wne wa cr cxad wceq cpnf caddc rexadd 3eqtr4d adantr oveq1d
    co syl2anc sylan9eqr w3a cc recn addass syl3an 3expa readdcl sylan2 anassrs
    sylan adantll oveq2d oveq2 simp1l simp2l xaddcl xaddnemnf xaddpnf1 3ad2ant1
    3adant3 eqtr4d 3ad2ant2 adantlr wo simp3 xrnemnf mpjaodan xaddpnf2 3ad2ant3
    sylib oveq1 simpl2 simpl3 syl simpl2l simpl3l simpr eqtrd simp1 ) ADEZAFGZH
    ZBDEZBFGZHZCDEZCFGZHZUAZAIEZABJRZCJRZABCJRZJRZKZALKZWIWJHZBIEZWOBLKZWIWJWRW
    OWIWJWRHZHCIEZWOCLKZWTXAWOWIWTXAHZABMRZCJRZABCMRZJRZWLWNXCXDCMRZAXFMRZXEXGW
    JWRXAXHXIKZWJAUBEWRBUBEXACUBEXJAUCBUCCUCABCUDUEUFWTXDIEXAXEXHKABUGXDCNUJWJW
    RXAXGXIKZWRXAHWJXFIEXKBCUGAXFNUHUIOXCWKXDCJWTWKXDKXAABNPQXCWMXFAJWRXAWMXFKW
    JBCNUKULOUKWIXBWOWTWIXBHZWLALJRZWNXLWLLXMXBWIWLWKLJRZLCLWKJUMWIWKDEZWKFGZXN
    LKWIVTWCXOVTWAWEWHUNWBWCWDWHUOABUPSWBWEXPWHABUQUTWKURSTWIXMLKZXBWBWEXQWHAUR
    USZPVAXLWMLAJXBWIWMBLJRZLCLBJUMWEWBXSLKWHBURVBTULVAVCWIXAXBVDZWTWIWHXTWBWEW
    HVECVFVJPVGUIWIWSWOWJWIWSHZLCJRZXMWLWNWIYBXMKWSWIYBLXMWHWBYBLKZWECVHZVIZXRV
    APYAWKLCJWSWIWKXMLBLAJUMXRTQYAWMLAJWSWIWMYBLBLCJVKYETULOVCWQWEWRWSVDWBWEWHW
    JVLBVFVJVGWIWPHZYBLWMJRZWLWNYFYBLYGYFWHYCWBWEWHWPVMZYDVNYFWMDEZWMFGZYGLKYFW
    CWFYIWCWDWBWHWPVOWFWGWBWEWPVPBCUPSYFWEWHYJWBWEWHWPVLZYHBCUQSWMVHSVAYFWKLCJY
    FWKLBJRZLYFALBJWIWPVQZQYFWEYLLKYKBVHVNVRQYFALWMJYMQOWIWBWJWPVDWBWEWHVSAVFVJ
    VG $.

  $( Associativity of extended real addition.  See ~ xaddass for notes on the
     hypotheses.  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xaddass2 $p |- ( ( ( A e. RR* /\ A =/= +oo ) /\ ( B e. RR* /\ B =/= +oo ) /\
  ( C e. RR* /\ C =/= +oo ) ) -> ( ( A +e B ) +e C ) = ( A +e ( B +e C ) ) ) $=
    ( cxr wcel cpnf wne wa cxad cxne wceq cmnf xnegcl syl xneg11 xnegdi syl2anc
    co wb xaddcl w3a simp1l simp1r sylancl necon3bid mpbird xnegpnf a1i neeqtrd
    pnfxr simp2l simp2r simp3l simp3r xaddass syl222anc oveq1d oveq2d 3eqtr4d
    mpbid ) ADEZAFGZHZBDEZBFGZHZCDEZCFGZHZUAZABIRZCIRZJZABCIRZIRZJZKZVLVOKZVJVK
    JZCJZIRZAJZVNJZIRZVMVPVJWBBJZIRZVTIRZWBWEVTIRZIRZWAWDVJWBDEZWBLGWEDEZWELGVT
    DEZVTLGWGWIKVJVAWJVAVBVFVIUBZAMNVJWBFJZLVJWBWNGVBVAVBVFVIUCVJWBWNAFVJVAFDEZ
    WBWNKAFKSWMUJAFOUDUEUFWNLKVJUGUHZUIVJVDWKVCVDVEVIUKZBMNVJWEWNLVJWEWNGVEVCVD
    VEVIULVJWEWNBFVJVDWOWEWNKBFKSWQUJBFOUDUEUFWPUIVJVGWLVCVFVGVHUMZCMNVJVTWNLVJ
    VTWNGVHVCVFVGVHUNVJVTWNCFVJVGWOVTWNKCFKSWRUJCFOUDUEUFWPUIWBWEVTUOUPVJVSWFVT
    IVJVAVDVSWFKWMWQABPQUQVJWCWHWBIVJVDVGWCWHKWQWRBCPQURUSVJVKDEZVGVMWAKVJVAVDW
    SWMWQABTQZWRVKCPQVJVAVNDEZVPWDKWMVJVDVGXAWQWRBCTQZAVNPQUSVJVLDEZVODEZVQVRSV
    JWSVGXCWTWRVKCTQVJVAXAXDWMXBAVNTQVLVOOQUT $.

  $( Extended real version of ~ pncan .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xpncan $p |- ( ( A e. RR* /\ B e. RR ) -> ( ( A +e B ) +e -e B ) = A ) $=
    ( cxr wcel cr wa cxad co wceq adantl oveq2d cmnf ad2antlr cpnf rexr syl2anc
    wne syl cc0 eqtrd cxne cneg rexneg renegcl renepnf xaddmnf2 oveq1 sylan9eqr
    oveq1d simpr 3eqtr4d simpll renemnf xaddass syl222anc simplr rexadd xaddid1
    caddc recnd negidd ad2antrr pm2.61dane ) ACDZBEDZFZABGHZBUAZGHVGBUBZGHZAVFV
    HVIVGGVEVHVIIVDBUCJKVFVJAIALVFALIZFZLVIGHZLVJAVLVIEDZVMLIZVEVNVDVKBUDZMVNVI
    CDZVINQVOVIOZVIUEVIUFPRVLVGLVIGVKVFVGLBGHZLALBGUGVEVSLIZVDVEBCDZBNQVTBOZBUE
    BUFPJUHUIVFVKUJUKVFALQZFZVJABVIGHZGHZAWDVDWCWABLQZVQVILQZVJWFIVDVEWCULVFWCU
    JVEWAVDWCWBMVEWGVDWCBUMMWDVNVQVEVNVDWCVPMZVRRWDVNWHWIVIUMRABVIUNUOWDWFASGHZ
    AWDWESAGWDWEBVIUSHZSWDVEVNWEWKIVDVEWCUPZWIBVIUQPWDBWDBWLUTVATKVDWJAIVEWCAUR
    VBTTVCT $.

  $( Extended real version of ~ npcan .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xnpcan $p |- ( ( A e. RR* /\ B e. RR ) -> ( ( A +e -e B ) +e B ) = A ) $=
    ( cxr wcel cr wa cxne cxad wceq rexr xnegneg syl adantl oveq2d cneg renegcl
    co rexneg eqeltrd xpncan sylan2 eqtr3d ) ACDZBEDZFZABGZHQZUFGZHQZUGBHQAUEUH
    BUGHUDUHBIZUCUDBCDUJBJBKLMNUDUCUFEDUIAIUDUFBOEBRBPSAUFTUAUB $.

  $( Extended real version of ~ leadd1 ; note that the converse implication is
     not true, unlike the real version (for example ` 0 < 1 ` but
     ` ( 1 +e +oo ) <_ ( 0 +e +oo ) ` ).  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xleadd1a $p |- ( ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\ A <_ B ) ->
    ( A +e C ) <_ ( B +e C ) ) $=
    ( cxr wcel cle wbr wa cxad co cpnf wceq cmnf syl2anc ad2antrr adantr simplr
    syl wne adantlr w3a cr caddc simplrr simpr simplrl simpllr leadd1dd 3brtr4d
    rexadd simpl1 simpl3 xaddcl pnfge oveq1 renemnf xaddpnf2 ad2antrl sylan9eqr
    rexr breqtrrd xrleid mnfle eqbrtrd simpl2 xrletri3 mpbir2and oveq1d breqtrd
    wb w3o elxr sylib mpjao3dan anassrs renepnf xaddmnf2 adantl oveq2d xaddpnf1
    sylan eqtrd pm2.61dane xaddmnf1 ) ADEZBDEZCDEZUAZABFGZHZCUBEZACIJZBCIJZFGZC
    KLZCMLZWJWKHZAUBEZWNAKLZAMLZWJWKWRWNWJWKWRHZHZBUBEZWNBKLZBMLZXBXCHZACUCJZBC
    UCJZWLWMFXFABCWJWKWRXCUDZXBXCUEZWJWKWRXCUFZWHWIXAXCUGUHXFWRWKWLXGLXIXKACUJN
    XFXCWKWMXHLXJXKBCUJNUIXBXDHZWLKWMFXLWLDEZWLKFGZWJXMXAXDWJWEWGXMWEWFWGWIUKZW
    EWFWGWIULZACUMNZOWLUNZRXDXBWMKCIJZKBKCIUOWKXSKLZWJWRWKWGCMSXTCUTZCUPCUQNURU
    SVAWJXEWNXAWJXEHZWLWLWMFYBXMWLWLFGZWJXMXEXQPWLVBZRYBABCIYBABLZWIBAFGZWHWIXE
    QYBBMAFWJXEUEYBWEMAFGWJWEXEXOPAVCRVDWJYEWIYFHVJZXEWJWEWFYGXOWEWFWGWIVEZABVF
    NZPVGVHVIZTWJXCXDXEVKZXAWJWFYKYHBVLVMPVNVOWJWSWNWKWJWSHZWLWLWMFYLXMYCWJXMWS
    XQPYDRYLABCIYLYEWIYFWHWIWSQYLBKAFWJBKFGZWSWJWFYMYHBUNRPWJWSUEVAWJYGWSYIPVGV
    HVIZTWQWTHZWLMWMFWTWQWLMCIJZMAMCIUOWKYPMLZWJWKWGCKSYQYACVPCVQNVRUSYOWMDEZMW
    MFGZWJYRWKWTWJWFWGYRYHXPBCUMNZOWMVCZRVDWJWRWSWTVKZWKWJWEUUBXOAVLVMPVNWJWOHZ
    WNBMWJXEWNWOYJTUUCBMSZHZWLKWMFUUEXMXNWJXMWOUUDXQOXRRUUEWMBKIJZKUUECKBIWJWOU
    UDQVSUUCWFUUDUUFKLWJWFWOYHPBVTWAWBVAWCWJWPHZWNAKWJWSWNWPYNTUUGAKSZHZWLMWMFU
    UIWLAMIJZMUUICMAIWJWPUUHQVSUUGWEUUHUUJMLWJWEWPXOPAWDWAWBUUIYRYSWJYRWPUUHYTO
    UUARVDWCWJWGWKWOWPVKXPCVLVMVN $.

  $( Commuted form of ~ xleadd1a .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xleadd2a $p |- ( ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\ A <_ B ) ->
    ( C +e A ) <_ ( C +e B ) ) $=
    ( cxr wcel w3a cle wbr wa cxad xleadd1a wceq xaddcom 3adant2 adantr 3adant1
    co 3brtr3d ) ADEZBDEZCDEZFZABGHZIACJQZBCJQZCAJQZCBJQZGABCKUBUDUFLZUCSUAUHTA
    CMNOUBUEUGLZUCTUAUISBCMPOR $.

  $( Weakened version of ~ xleadd1a under which the reverse implication is
     true.  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xleadd1 $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR ) ->
                  ( A <_ B <-> ( A +e C ) <_ ( B +e C ) ) ) $=
    ( cxr wcel cr w3a cle wbr cxad co rexr xleadd1a syl3an3 xaddcl syl2anc wceq
    wi ex xpncan cxne simp1 3ad2ant3 xnegcl syl syl3anc 3adant2 3adant1 breq12d
    simp2 sylibd impbid ) ADEZBDEZCFEZGZABHIZACJKZBCJKZHIZUOUMUNCDEZUQUTRCLZUMU
    NVAGUQUTABCMSNUPUTURCUAZJKZUSVCJKZHIZUQUPURDEZUSDEZVCDEZUTVFRUPUMVAVGUMUNUO
    UBUOUMVAUNVBUCZACOPUPUNVAVHUMUNUOUJVJBCOPUPVAVIVJCUDUEVGVHVIGUTVFURUSVCMSUF
    UPVDAVEBHUMUOVDAQUNACTUGUNUOVEBQUMBCTUHUIUKUL $.

  $( Extended real version of ~ ltadd1 .  (Contributed by Mario Carneiro,
     23-Aug-2015.) $)
  xltadd1 $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR ) ->
                  ( A < B <-> ( A +e C ) < ( B +e C ) ) ) $=
    ( cxr wcel cr w3a cle wbr wn co clt wb xleadd1 3com12 notbid xrltnle xaddcl
    cxad syl2anc 3adant3 simp1 rexr 3ad2ant3 simp2 3bitr4d ) ADEZBDEZCFEZGZBAHI
    ZJZBCSKZACSKZHIZJZABLIZUNUMLIZUJUKUOUHUGUIUKUOMBACNOPUGUHUQULMUIABQUAUJUNDE
    ZUMDEZURUPMUJUGCDEZUSUGUHUIUBUIUGVAUHCUCUDZACRTUJUHVAUTUGUHUIUEVBBCRTUNUMQT
    UF $.

  $( Extended real version of ~ ltadd2 .  (Contributed by Mario Carneiro,
     23-Aug-2015.) $)
  xltadd2 $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR ) ->
                  ( A < B <-> ( C +e A ) < ( C +e B ) ) ) $=
    ( cxr wcel cr w3a clt wbr cxad co xltadd1 rexr wceq xaddcom 3adant2 3adant1
    wb breq12d syl3an3 bitrd ) ADEZBDEZCFEZGABHIACJKZBCJKZHIZCAJKZCBJKZHIZABCLU
    DUBUCCDEZUGUJRCMUBUCUKGUEUHUFUIHUBUKUEUHNUCACOPUCUKUFUINUBBCOQSTUA $.

  $( The sum of nonnegative extended reals is nonnegative.  (Contributed by
     Mario Carneiro, 21-Aug-2015.) $)
  xaddge0 $p |- ( ( ( A e. RR* /\ B e. RR* ) /\ ( 0 <_ A /\ 0 <_ B ) ) ->
                  0 <_ ( A +e B ) ) $=
    ( cxr wcel wa cc0 cle wbr cxad co 0xr a1i simplr xaddcl adantr wceq xaddid2
    simprr syl simpll simprl xleadd1a syl31anc eqbrtrrd xrletrd ) ACDZBCDZEZFAG
    HZFBGHZEZEZFBABIJZFCDZULKLZUFUGUKMZUHUMCDUKABNOUHUIUJRULFBIJZBUMGULUGUQBPUP
    BQSULUNUFUGUIUQUMGHUOUFUGUKTUPUHUIUJUAFABUBUCUDUE $.

  $( Extended real version of ~ le2add .  (Contributed by Mario Carneiro,
     23-Aug-2015.) $)
  xle2add $p |- ( ( ( A e. RR* /\ B e. RR* ) /\ ( C e. RR* /\ D e. RR* ) ) ->
     ( ( A <_ C /\ B <_ D ) -> ( A +e B ) <_ ( C +e D ) ) ) $=
    ( cxr wcel wa cle wbr cxad simpll simprl simplr w3a xleadd1a syl3anc xaddcl
    co wi ex simprr xleadd2a adantr syl2anc adantl xrletr syl2and ) AEFZBEFZGZC
    EFZDEFZGZGZACHIZABJRZCBJRZHIZBDHIZUQCDJRZHIZUPUTHIZUNUHUKUIUOURSUHUIUMKUJUK
    ULLZUHUIUMMZUHUKUINUOURACBOTPUNUIULUKUSVASVDUJUKULUAVCUIULUKNUSVABDCUBTPUNU
    PEFZUQEFZUTEFZURVAGVBSUJVEUMABQUCUNUKUIVFVCVDCBQUDUMVGUJCDQUEUPUQUTUFPUG $.

  $( Extended real version of ~ lt2add .  Note that ~ ltleadd , which has
     weaker assumptions, is not true for the extended reals (since
     ` 0 + +oo < 1 + +oo ` fails).  (Contributed by Mario Carneiro,
     23-Aug-2015.) $)
  xlt2add $p |- ( ( ( A e. RR* /\ B e. RR* ) /\ ( C e. RR* /\ D e. RR* ) ) ->
     ( ( A < C /\ B < D ) -> ( A +e B ) < ( C +e D ) ) ) $=
    ( cxr wcel wa clt wbr cxad co cpnf wceq cmnf adantr wb mpbid wne necon2abid
    syl w3a xaddcl 3ad2ant1 simp1l simp2r syl2anc 3ad2ant2 simp3r simp1r simprl
    cr xltadd2 syl3anc simp3l simp2l simprr xltadd1 xrlttrd anassrs pnfxr pnfge
    a1i xrltletrd nltpnft xaddnepnf syl22anc mpbird oveq2 mnfxr mnfle xrlelttrd
    cle ngtmnft xaddpnf1 sylan9eqr breqtrrd adantlr a1d necon4bd imp elxr sylib
    wn w3o mpjao3dan oveq1 xaddmnf2 xaddnemnf eqbrtrd 3expia ) AEFZBEFZGZCEFZDE
    FZGZACHIZBDHIZGZABJKZCDJKZHIZWMWPWSUAZAUKFZXBALMZANMZXCXDGDUKFZXBDLMZDNMZXC
    XDXGXBXCXDXGGZGZWTADJKZXAXCWTEFZXJWMWPXMWSABUBUCZOXCXLEFZXJXCWKWOXOWKWLWPWS
    UDZWMWNWOWSUEZADUBUFOXCXAEFZXJWPWMXRWSCDUBUGZOXKWRWTXLHIZXCWRXJWMWPWQWRUHZO
    XKWLWOXDWRXTPXCWLXJWKWLWPWSUIZOXCWOXJXQOXCXDXGUJBDAULUMQXKWQXLXAHIZXCWQXJWM
    WPWQWRUNZOXKWKWNXGWQYCPXCWKXJXPOXCWNXJWMWNWOWSUOZOXCXDXGUPACDUQUMQURUSXCXHX
    BXDXCXHGWTLXAHXCWTLHIZXHXCYFWTLRZXCWKALRZWLBLRZYGXPXCALHIZYHXCACLXPYELEFXCU
    TVBZYDXCWNCLVLIYECVATVCXCWKYJYHPXPWKYJALAVDSTQZYBXCBLHIZYIXCBDLYBXQYKYAXCWO
    DLVLIXQDVATVCXCWLYMYIPYBWLYMBLBVDSTQZABVEVFXCXMYFYGPXNXMYFWTLWTVDSTVGOXHXCX
    ACLJKZLDLCJVHXCWNCNRZYOLMYEXCNCHIZYPXCNACNEFXCVIVBZXPYEXCWKNAVLIXPAVJTYDVKX
    CWNYQYPPYEWNYQCNCVMSTQZCVNUFVOVPVQXCXIXBXDXCXIXBXCXBDNXCDNRZXBWCZXCNDHIZYTX
    CNBDYRYBXQXCWLNBVLIYBBVJTYAVKXCWOUUBYTPXQWOUUBDNDVMSTQZVRVSVTVQXCXGXHXIWDZX
    DXCWOUUDXQDWAWBOWEXCXEXBXCXBALXCYHUUAYLVRVSVTXCXFGWTNXAHXFXCWTNBJKZNANBJWFX
    CWLYIUUENMYBYNBWGUFVOXCNXAHIZXFXCUUFXANRZXCWNYPWOYTUUGYEYSXQUUCCDWHVFXCXRUU
    FUUGPXSXRUUFXANXAVMSTVGOWIXCWKXDXEXFWDXPAWAWBWEWJ $.

  $( Extended real version of ~ subge0 .  (Contributed by Mario Carneiro,
     24-Aug-2015.) $)
  xsubge0 $p |- ( ( A e. RR* /\ B e. RR* ) ->
      ( 0 <_ ( A +e -e B ) <-> B <_ A ) ) $=
    ( cxr wcel cpnf wceq cmnf cc0 cxne co cle wbr wb wa adantl breq2d syl5breqr
    cxad syl6eq 3bitr4d cr w3o elxr 0xr rexr xnegcl xaddcl sylan2 simpr xleadd1
    a1i syl3anc xaddid2 syl xnpcan breq12d bitrd pnfxr xrletri3 mpan2 wn mnflt0
    wne clt mnfxr xrltnle mp2an mpbi xaddmnf1 mtbiri ex necon4ad 0le0 pnfaddmnf
    oveq1 impbid1 pnfge biantrurd adantr xnegeq xnegpnf oveq2d mnfaddpnf 0lepnf
    breq1 xaddpnf1 pm2.61dane mnfle 2thd xnegmnf 3jaodan sylan2b ) BCDZACDZBUAD
    ZBEFZBGFZUBHABIZRJZKLZBAKLZMZBUCWNWOXBWPWQWNWONZWTHBRJZWSBRJZKLZXAXCHCDZWSC
    DZWOWTXFMXGXCUDUKWOWNWMXHBUEZWMWNWRCDXHBUFAWRUGUHUHWNWOUIHWSBUJULXCXDBXEAKX
    CWMXDBFWOWMWNXIOBUMUNABUOUPUQWNWPNZHAGRJZKLZEAKLZWTXAWNXLXMMWPWNAEFZAEKLZXM
    NZXLXMWNECDXNXPMURAEUSUTWNXLXNWNXLAEWNAEVCZXLVAWNXQNZXLHGKLZGHVDLZXSVAZVBGC
    DXGXTYAMVEUDGHVFVGVHXRXKGHKAVIPVJVKVLXNHHXKKVMXNXKEGRJHAEGRVOVNSQVPWNXOXMAV
    QVRTVSXJWSXKHKXJWRGARWPWRGFWNWPWREIGBEVTWASOWBPWPXAXMMWNBEAKWEOTWNWQNZHAERJ
    ZKLZGAKLZWTXAWNYDYEMWQWNYDYEWNYDAGWNAGFZNHHYCKVMYFYCHFWNYFYCGERJHAGERVOWCSO
    QWNAGVCNHEYCKWDAWFQWGAWHWIVSYBWSYCHKYBWREARWQWREFWNWQWRGIEBGVTWJSOWBPWQXAYE
    MWNBGAKWEOTWKWL $.

  $( Extended real version of ~ posdif .  (Contributed by Mario Carneiro,
     24-Aug-2015.) $)
  xposdif $p |- ( ( A e. RR* /\ B e. RR* ) ->
      ( A < B <-> 0 < ( B +e -e A ) ) ) $=
    ( cxr wcel wa cxne cxad co cc0 clt wbr wb xnegcl xaddcl sylan2 xlt0neg1 cle
    wn xrltnle wceq syl xsubge0 notbid 0xr sylancl 3bitr4d xnegdi oveq2d adantl
    xnegneg xaddcom sylan 3eqtrd breq2d 3bitr3d ) ACDZBCDZEZABFZGHZIJKZIUTFZJKZ
    ABJKZIBAFZGHZJKURUTCDZVAVCLUQUPUSCDZVGBMZAUSNOZUTPUAURIUTQKZRZBAQKZRVAVDURV
    KVMABUBUCURVGICDVAVLLVJUDUTISUEABSUFURVBVFIJURVBVEUSFZGHZVEBGHZVFUQUPVHVBVO
    TVIAUSUGOUQVOVPTUPUQVNBVEGBUJUHUIUPVECDUQVPVFTAMVEBUKULUMUNUO $.

  $( Under certain conditions, the conclusion of ~ lesubadd is true even in the
     extended reals.  (Contributed by Mario Carneiro, 4-Sep-2015.) $)
  xlesubadd $p |- ( ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\
                      ( 0 <_ A /\ B =/= -oo /\ 0 <_ C ) ) ->
                    ( ( A +e -e B ) <_ C <-> A <_ ( C +e B ) ) ) $=
    ( cxr wcel cc0 cle wbr cmnf wne wa cxad co cpnf wceq syl syl2anc syl5ibrcom
    wb breq1d w3a cxne simpl1 simpl2 xnegcl xaddcl adantr simpll3 simpr xleadd1
    cr syl3anc xnpcan sylan bitrd simpr3 oveq1 pnfaddmnf syl6eq xaddmnf1 simpl3
    wi mnfle breq1 syld pm2.61dne pnfge ge0nemnf xaddpnf1 breqtrrd 2thd xnegpnf
    ex xnegeq oveq2d oveq2 breq2d bibi12d imp simpr2 jca xrnemnf sylib mpjaodan
    wo ) ADEZBDEZCDEZUAZFAGHZBIJZFCGHZUAZKZBUKEZABUBZLMZCGHZACBLMZGHZSZBNOZWNWO
    KZWRWQBLMZWSGHZWTXCWQDEZWHWOWRXESWNXFWOWNWFWPDEZXFWFWGWHWMUCZWNWGXGWFWGWHWM
    UDZBUEPAWPUFQUGWFWGWHWMWOUHWNWOUIWQCBUJULXCXDAWSGWNWFWOXDAOXHABUMUNTUOWNXBX
    AWNXAXBAILMZCGHZACNLMZGHZSWNXKXMWNXKANWNXKANOZWLWIWJWKWLUPZXNXJFCGXNXJNILMF
    ANILUQURUSTRWNANJZXJIOZXKWNWFXPXQVBXHWFXPXQAUTVMPWNXKXQICGHZWNWHXRWFWGWHWMV
    AZCVCPXJICGVDRVEVFWNANXLGWNWFANGHXHAVGPWNWHCIJZXLNOXSWNWHWLXTXSXOCVHQCVIQVJ
    VKXBWRXKWTXMXBWQXJCGXBWPIALXBWPNUBIBNVNVLUSVOTXBWSXLAGBNCLVPVQVRRVSWNWGWKKW
    OXBWEWNWGWKXIWIWJWKWLVTWABWBWCWD $.

  $( Lemma for ~ rexmul .  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xmullem $p |- ( ( ( ( ( A e. RR* /\ B e. RR* ) /\ -. ( A = 0 \/ B = 0 ) )
   /\ -. ( ( ( 0 < B /\ A = +oo ) \/ ( B < 0 /\ A = -oo ) ) \/
           ( ( 0 < A /\ B = +oo ) \/ ( A < 0 /\ B = -oo ) ) ) )
   /\ -. ( ( ( 0 < B /\ A = -oo ) \/ ( B < 0 /\ A = +oo ) ) \/
           ( ( 0 < A /\ B = -oo ) \/ ( A < 0 /\ B = +oo ) ) ) ) -> A e. RR ) $=
    ( cxr wcel wa cc0 wceq wo clt wbr cpnf cmnf ioran anbi12i bitri w3o pm2.21d
    wn adantl expdimp anbi2i simplll elxr sylib idd simprlr simplrr imp simpllr
    cr wi 0xr wor xrltso solin mpan sylancl mpjao3dan simprll 3jaod mpd syl2anb
    anassrs ) ACDZBCDZEZAFGZBFGZHRZEZFBIJZAKGZEZBFIJZALGZEZHZFAIJZBKGZEZAFIJZBL
    GZEZHZHRZVKVOEZVNVLEZHZVRWBEZWAVSEZHZHRZAUJDZVJVFVGRZVHRZEZEZVMRZVPRZEZVTRW
    CREZEZWFRZWGRZEZWIRWJREZEZEZWMWEWLEVIWPVFVGVHMUAWEXBWLXGWEVQRZWDRZEXBVQWDMX
    IWTXJXAVMVPMVTWCMNOWLWHRZWKRZEXGWHWKMXKXEXLXFWFWGMWIWJMNONWQXHEZWMVLVOPZWMX
    MVDXNVDVEWPXHUBAUCUDXMWMWMVLVOXMWMUEXMVNVLWMUKZVHVKXMVNVLWMXMWGWMXHXDWQXBXC
    XDXFUFSQTXMVHXOXMVHXOVFWNWOXHUGZQUHXMVKVLWMXMVMWMXHWRWQWRWSXAXGUBSQTXMVEFCD
    ZVNVHVKPZVDVEWPXHUIULCIUMVEXQEXRUNCBFIUOUPUQZURXMVNVOWMUKZVHVKXMVNVOWMXMVPW
    MXHWSWQWRWSXAXGUISQTXMVHXTXMVHXTXPQUHXMVKVOWMXMWFWMXHXCWQXBXCXDXFUSSQTXSURU
    TVAVBVC $.

  $( Lemma for ~ xmulneg1 .  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xmullem2 $p |- ( ( A e. RR* /\ B e. RR* ) ->
       ( ( ( ( 0 < B /\ A = +oo ) \/ ( B < 0 /\ A = -oo ) ) \/
           ( ( 0 < A /\ B = +oo ) \/ ( A < 0 /\ B = -oo ) ) ) ->
      -. ( ( ( 0 < B /\ A = -oo ) \/ ( B < 0 /\ A = +oo ) ) \/
           ( ( 0 < A /\ B = -oo ) \/ ( A < 0 /\ B = +oo ) ) ) ) ) $=
    ( wa cc0 clt wbr cpnf wceq wo cmnf wn wi con2i adantl 0xr mtbiri adantr a1i
    jaod syl6ibr cxr wcel wne mnfnepnf eqeq1 necon3bbid mpbiri ax-mp breq2 jaoi
    nltmnf simpr xrltnsym sylancl adantrd ianor orcom bitri con2d pnfnlt breq1d
    orim12d adantld breq1 jcad ioran pnfnemnf simpl or4 3imtr4g ) AUAUBZBUAUBZC
    ZDBEFZAGHZCZDAEFZBGHZCZIZBDEFZAJHZCZADEFZBJHZCZIZIZVNWBCZWAVOCZIZKZVQWECZWD
    VRCZIZKZCVPWCIVSWFIIWKWOIKVMWHWLWPVMWHWIKZWJKZCWLVMWHWQWRVMWHWBKZVNKZIZWQVM
    VTWSWGWTVTWSLVMVPWSVSVOWSVNWBVOWBVOKZJGUCUDWBVOJGAJGUEUFUGZMNVQWSVRWBVQWBVQ
    DJEFZDUAUBZXDKODUKUHZAJDEUIPZMQUJRVMWCWTWFVMWAWTWBVMVLXEWAWTLVKVLULOBDUMUNZ
    UOWFWTLVMWEWTWDWEVNXDXFBJDEUIPZNRSVBWQWTWSIXAVNWBUPWTWSUQURTVMWHWAKZXBIWRVM
    VTXJWGXBVMVPXJVSVMVNXJVOVMWAVNXHUSUOVSXJLVMVSWAGDEFZXEXKKODUTUHZVSBGDEVQVRU
    LVAPRSVMWCXBWFVMWBXBWAWBXBLVMXCRVCWFXBLVMWDXBWEVOWDVOWDXKXLAGDEVDPZMQRSVBWA
    VOUPTVEWIWJVFTVMWHWMKZWNKZCWPVMWHXNXOVMWHWEKZVQKZIZXNVMVTXPWGXQVMVPXPVSVPXP
    LVMVNXPVOWEVNXIMQRVSXPLVMVRXPVQVRXPGJUCVGVRWEGJBGJUEUFUGZNRSVMWCXQWFWCXQLVM
    WBXQWAXGNRVMWDXQWEVMVKXEWDXQLVKVLVHOADUMUNZUOSVBXNXQXPIXRVQWEUPXQXPUQURTVMW
    HWDKZVRKZIXOVMVTYAWGYBVMVPYAVSVPYALVMVOYAVNXMNRVMVQYAVRVMWDVQXTUSUOSWGYBLVM
    WCYBWFWAYBWBVRWAVRWAXKXLBGDEVDPMQWEYBWDVRWEXSMNUJRVBWDVRUPTVEWMWNVFTVEVPWCV
    SWFVIWKWOVFVJ $.

  $( Extended real multiplication is commutative.  (Contributed by Mario
     Carneiro, 20-Aug-2015.) $)
  xmulcom $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A *e B ) = ( B *e A ) ) $=
    ( wcel wa cc0 wceq wo clt wbr cpnf cmnf co wn orcom notbii ifeq2da wb ifbid
    cif a1i cmul cxmu xmullem recnd ancom anbi12i syl2anb mulcomd eqtrd xmulval
    cxr cr ancoms 3eqtr4d ) AUKCZBUKCZDZAEFZBEFZGZEEBHIZAJFZDBEHIZAKFZDGZEAHIZB
    JFZDAEHIZBKFZDGZGZJVAVDDVCVBDGZVFVIDVHVGDGZGZKABUALZSZSZSZUSURGZEVJVEGZJVMV
    LGZKBAUALZSZSZSZABUBLBAUBLZUQVRUTEWDSWEUQUTVQWDEUQUTMZDZVQVKJWCSWDWHVKVPWCJ
    WHVKMZDZVPVNKWBSWCWJVNVOWBKWJVNMZDZABWLAABUCUDWLBWJUPUODZVSMZDZVTMZDWAMBULC
    WKWHWOWIWPUQWMWGWNUOUPUEUTVSURUSNZOUFVKVTVEVJNZOUFVNWAVLVMNZOBAUCUGUDUHPWJV
    NWAKWBVNWAQWJWSTRUIPWHVKVTJWCVKVTQWHWRTRUIPUQUTVSEWDUTVSQUQWQTRUIABUJUPUOWF
    WEFBAUJUMUN $.

  $( Extended real version of ~ mul01 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xmul01 $p |- ( A e. RR* -> ( A *e 0 ) = 0 ) $=
    ( cxr wcel cc0 cxmu co wceq wo clt wbr cpnf cmnf cmul cif 0xr xmulval mpan2
    wa eqid olci iftruei syl6eq ) ABCZADEFZADGZDDGZHZDDDIJZAKGRZUHALGRZHDAIJZDK
    GZRADIJZDLGZRHHKUJUIHUKUNRUMULRHHLADMFNNZNZDUCDBCUDUPGOADPQUGDUOUFUEDSTUAUB
    $.

  $( Extended real version of ~ mul02 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xmul02 $p |- ( A e. RR* -> ( 0 *e A ) = 0 ) $=
    ( cxr wcel cc0 cxmu co wceq 0xr xmulcom mpan xmul01 eqtrd ) ABCZDAEFZADEFZD
    DBCMNOGHDAIJAKL $.

  $( Extended real version of ~ mulneg1 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xmulneg1 $p |- ( ( A e. RR* /\ B e. RR* ) ->
      ( -e A *e B ) = -e ( A *e B ) ) $=
    ( cxr wcel wa cxne cc0 wceq wo clt wbr cpnf co cif wb wn orbi12d xnegeq syl
    cmnf cmul xneg0 eqeq2i 0xr xneg11 mpan2 syl5bbr adantr orbi1d ifbid xnegpnf
    simpll pnfxr sylancl anbi2d xnegmnf mnfxr xlt0neg1 ad2antrr bicomd xlt0neg2
    anbi1d orcom syl6bb biimpar iftrued wi xmullem2 notbid sylibrd imp iffalsed
    cxmu iftrue adantl syl6eq 3eqtr4d con2d eqtrd adantlr iffalse ad2antlr cneg
    eqtr4d xmullem recnd cr ancom notbii anbi12i syl2anb mulneg1d rexneg oveq1d
    remulcld pm2.61dan ifeq2da ifsb syl6eqr xnegcl xmulval sylan ) ACDZBCDZEZAF
    ZGHZBGHZIZGGBJKZXFLHZEZBGJKZXFTHZEZIZGXFJKZBLHZEZXFGJKZBTHZEZIZIZLXJXNEZXMX
    KEZIZXQYAEZXTXREZIZIZTXFBUAMZNZNZNZAGHZXHIZGXJALHZEZXMATHZEZIZGAJKZXREZAGJK
    ZYAEZIZIZLXJYTEZXMYREZIZUUCYAEZUUEXREZIZIZTABUAMZNZNZNZFZXFBVMMZABVMMZFZXEY
    OYQGUURFZNZUUTXEYOYQGYNNUVEXEXIYQGYNXEXGYPXHXCXGYPOXDXGXFGFZHZXCYPUVFGXFUBU
    CXCGCDUVGYPOUDAGUEUFUGUHUIUJXEYQYNUVDGXEYQPZEZUUHYNUVDHZUVIUUHEZYMTYNUVDUVK
    YKTYLUVIYKUUHUVIYGUUBYJUUGUVIYEYSYFUUAUVIXNYRXJXNXFLFZHZUVIYRUVLTXFUKUCUVIX
    CLCDUVMYROXCXDUVHULZUMALUEUNUGZUOUVIXKYTXMXKXFTFZHZUVIYTUVPLXFUPUCUVIXCTCDU
    VQYTOUVNUQATUEUNUGZUOQUVIYJUUFUUDIUUGUVIYHUUFYIUUDUVIXQUUEYAUVIUUEXQXCUUEXQ
    OXDUVHAURUSUTZVBUVIXTUUCXRUVIUUCXTXCUUCXTOXDUVHAVAUSUTZVBQUUFUUDVCVDQZVEVFU
    VKYDLYMUVIUUHYDPZUVIUUHUUOPZUWBXEUUHUWCVGUVHABVHUHZUVIYDUUOUVIXPUUKYCUUNUVI
    XLUUIXOUUJUVIXKYTXJUVRUOUVIXNYRXMUVOUOQUVIYCUUMUULIUUNUVIXSUUMYBUULUVIXQUUE
    XRUVSVBUVIXTUUCYAUVTVBQUUMUULVCVDQZVIZVJVKVLUVKUVDUVLTUVKUURLHZUVDUVLHUUHUW
    GUVIUUHLUUQVNVOUURLRSUKVPVQUVIUUHPZEZUUOUVJUVIUUOUVJUWHUVIUUOEZYNLUVDUWJYDL
    YMUVIYDUUOUWEVEVFUWJUVDUVPLUWJUURTHUVDUVPHUWJUURUUQTUWJUUHLUUQUVIUUOUWHUVIU
    UHUUOUWDVRVKVLUUOUUQTHUVIUUOTUUPVNVOVSUURTRSUPVPWDVTUWIUWCEZYMYLYNUVDUWKYKT
    YLUWIYKPZUWCUVIUWLUWHUVIYKUUHUWAVIVEUHVLUWKYDLYMUVIUWCUWBUWHUVIUWBUWCUWFVEV
    TVLUWKUVDUUPFZYLUWKUURUUPHUVDUWMHUWKUURUUQUUPUWHUURUUQHUVIUWCUUHLUUQWAWBUWC
    UUQUUPHUWIUUOTUUPWAVOVSUURUUPRSUWKAWCZBUAMUUPWCZYLUWMUWKABUWKAABWEZWFUWKBUW
    IXDXCEZXHYPIZPZEZUUGUUBIZPZEUUNUUKIZPBWGDUWCUVIUWTUWHUXBXEUWQUVHUWSXCXDWHYQ
    UWRYPXHVCWIWJUUHUXAUUBUUGVCWIWJUUOUXCUUKUUNVCWIBAWEWKZWFWLUWKXFUWNBUAUWKAWG
    DXFUWNHUWPAWMSWNUWKUUPWGDUWMUWOHUWKABUWPUXDWOUUPWMSVQWDVQWPWPWQVSYQGUURUUTG
    UVDUUSGHUUTUVFGUUSGRUBVPUUSUURRWRWSXCXFCDXDUVAYOHAWTXFBXAXBXEUVBUUSHUVCUUTH
    ABXAUVBUUSRSVQ $.

  $( Extended real version of ~ mulneg2 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xmulneg2 $p |- ( ( A e. RR* /\ B e. RR* ) ->
      ( A *e -e B ) = -e ( A *e B ) ) $=
    ( cxr wcel wa cxne cxmu co xmulneg1 ancoms xnegcl xmulcom sylan2 xnegeq syl
    wceq 3eqtr4d ) ACDZBCDZEZBFZAGHZBAGHZFZAUAGHZABGHZFZSRUBUDPBAIJSRUACDUEUBPB
    KAUALMTUFUCPUGUDPABLUFUCNOQ $.

  $( The extended real multiplication when both arguments are real.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  rexmul $p |- ( ( A e. RR /\ B e. RR ) -> ( A *e B ) = ( A x. B ) ) $=
    ( cr wcel wa cc0 wceq clt wbr cpnf cmnf cmul cif wne adantr necon2bi adantl
    wo co jaoi cxmu wn renepnf renemnf con2i iffalsed eqtrd ifeq2d rexr xmulval
    cxr syl2an ifid oveq1 mul02lem2 sylan9eqr oveq2 recn mul01d ifeq1da syl5eqr
    jaodan 3eqtr4d ) ACDZBCDZEZAFGZBFGZRZFFBHIZAJGZEZBFHIZAKGZEZRZFAHIZBJGZEZAF
    HIZBKGZEZRZRZJVJVNEZVMVKEZRZVQWAEZVTVREZRZRZKABLSZMZMZMZVIFWLMZABUASZWLVFVI
    WNWLFVFWNWMWLVFWDJWMWDVFVPVFUBZWCVLWRVOVKWRVJVFAJVDAJNVEAUCOPZQVNWRVMVFAKVD
    AKNVEAUDOPZQTVSWRWBVRWRVQVFBJVEBJNVDBUCQPZQWAWRVTVFBKVEBKNVDBUDQPZQTTUEUFVF
    WKKWLWKVFWGWRWJWEWRWFVNWRVJWTQVKWRVMWSQTWHWRWIWAWRVQXBQVRWRVTXAQTTUEUFUGUHV
    DAUKDBUKDWQWOGVEAUIBUIABUJULVFWLVIWLWLMWPVIWLUMVFVIWLFWLVFVGWLFGVHVGVFWLFBL
    SZFAFBLUNVEXCFGVDBUOQUPVHVFWLAFLSZFBFALUQVDXDFGVEVDAAURUSOUPVBUTVAVC $.

  ${
    $d x y $.
    $( The extended real multiplication operation is closed in extended reals.
       (Contributed by Mario Carneiro, 21-Aug-2015.) $)
    xmulf $p |- *e : ( RR* X. RR* ) --> RR* $=
      ( vx vy cv cc0 wceq wo clt wbr cpnf wa cmnf cif cxr wcel a1i orcom notbii
      wral wn ifclda cmul co cxp cxmu wf pnfxr mnfxr xmullem cr anbi12i syl2anb
      0xr ancom remulcld rexrd rgen2a df-xmul fmpt2 mpbi ) ACZDEZBCZDEZFZDDVBGH
      ZUTIEZJVBDGHZUTKEZJFZDUTGHZVBIEZJUTDGHZVBKEZJFZFZIVEVHJVGVFJFZVJVMJVLVKJF
      ZFZKUTVBUAUBZLZLZLZMNZBMRAMRMMUCMUDUEWCABMUTMNZVBMNZJZVDDWAMDMNWFVDJULOWF
      VDSZJZVOIVTMIMNWHVOJUFOWHVOSZJZVRKVSMKMNWJVRJUGOWJVRSZJZVSWLUTVBUTVBUHWJW
      EWDJZVCVAFZSZJZVNVIFZSZJVQVPFZSVBUINWKWHWPWIWRWFWMWGWOWDWEUMVDWNVAVCPQUJV
      OWQVIVNPQUJVRWSVPVQPQVBUTUHUKUNUOTTTUPABMMWBMUDABUQURUS $.
  $}

  $( Closure of extended real multiplication.  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xmulcl $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A *e B ) e. RR* ) $=
    ( cxr cxmu xmulf fovcl ) ABCCCDEF $.

  $( Multiplication by plus infinity on the right.  (Contributed by Mario
     Carneiro, 20-Aug-2015.) $)
  xmulpnf1 $p |- ( ( A e. RR* /\ 0 < A ) -> ( A *e +oo ) = +oo ) $=
    ( cxr wcel cc0 clt wbr wa cpnf cxmu co wceq wo cmnf cif pnfxr xmulval mpan2
    cmul wne jctir adantr wn 0xr xrltne mp3an1 0re renepnf ax-mp necomi neanior
    cr sylib iffalsed simpr eqid orcd olcd iftrued 3eqtrd ) ABCZDAEFZGZAHIJZADK
    HDKLZDDHEFZAHKZGHDEFZAMKZGLZVAHHKZGZADEFZHMKZGZLZLZHVEVHGVGVFGLVAVMGVLVJGLL
    MAHRJNZNZNZVRHUTVCVSKZVAUTHBCVTOAHPQUAVBVDDVRVBADSZHDSZGVDUBVBWAWBDBCUTVAWA
    UCDAUDUEDHDUKCDHSUFDUGUHUITADHDUJULUMVBVPHVQVBVOVIVBVKVNVBVAVJUTVAUNHUOTUPU
    QURUS $.

  $( Multiplication by plus infinity on the left.  (Contributed by Mario
     Carneiro, 20-Aug-2015.) $)
  xmulpnf2 $p |- ( ( A e. RR* /\ 0 < A ) -> ( +oo *e A ) = +oo ) $=
    ( cxr wcel cc0 clt wbr wa cpnf cxmu wceq pnfxr xmulcom mpan adantr xmulpnf1
    co eqtrd ) ABCZDAEFZGHAIPZAHIPZHRTUAJZSHBCRUBKHALMNAOQ $.

  $( Multiplication by minus infinity on the right.  (Contributed by Mario
     Carneiro, 20-Aug-2015.) $)
  xmulmnf1 $p |- ( ( A e. RR* /\ 0 < A ) -> ( A *e -oo ) = -oo ) $=
    ( cxr wcel cc0 clt wbr wa cmnf cxmu co cpnf cxne xnegpnf oveq2i simpl pnfxr
    wceq xmulneg2 sylancl xmulpnf1 xnegeq syl syl6eq eqtrd syl5eqr ) ABCZDAEFZG
    ZAHIJAKLZIJZHUIHAIMNUHUJAKIJZLZHUHUFKBCUJULQUFUGOPAKRSUHULUIHUHUKKQULUIQATU
    KKUAUBMUCUDUE $.

  $( Multiplication by minus infinity on the left.  (Contributed by Mario
     Carneiro, 20-Aug-2015.) $)
  xmulmnf2 $p |- ( ( A e. RR* /\ 0 < A ) -> ( -oo *e A ) = -oo ) $=
    ( cxr wcel cc0 clt wbr wa cmnf cxmu wceq mnfxr xmulcom mpan adantr xmulmnf1
    co eqtrd ) ABCZDAEFZGHAIPZAHIPZHRTUAJZSHBCRUBKHALMNAOQ $.

  $( Multiplication by plus infinity on the right, for negative input.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xmulpnf1n $p |- ( ( A e. RR* /\ A < 0 ) -> ( A *e +oo ) = -oo ) $=
    ( cxr wcel cc0 clt wa cpnf cxmu cxne cmnf wceq simpl pnfxr xmulneg1 sylancl
    wbr co xnegcl adantr xlt0neg1 biimpa xmulpnf1 syl2anc eqtr3d xnegmnf xmulcl
    syl6eqr wb mnfxr xneg11 mpbid ) ABCZADEPZFZAGHQZIZJIZKZUOJKZUNUPGUQUNAIZGHQ
    ZUPGUNULGBCZVAUPKULUMLZMAGNOUNUTBCZDUTEPZVAGKULVDUMARSULUMVEATUAUTUBUCUDUEU
    GUNUOBCZJBCURUSUHUNULVBVFVCMAGUFOUIUOJUJOUK $.

  $( Extended real version of ~ mulid1 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xmulid1 $p |- ( A e. RR* -> ( A *e 1 ) = A ) $=
    ( cxr wcel cr cpnf wceq cmnf w3o c1 cxmu co elxr cmul 1re rexmul 0lt1 mp2an
    oveq1 id 3eqtr4a mpan2 ax-1rid eqtrd cc0 clt wbr rexri xmulpnf2 3jaoi sylbi
    xmulmnf2 ) ABCADCZAEFZAGFZHAIJKZAFZALULUPUMUNULUOAIMKZAULIDCUOUQFNAIOUAAUBU
    CUMEIJKZEUOAIBCZUDIUEUFZUREFINUGZPIUHQAEIJRUMSTUNGIJKZGUOAUSUTVBGFVAPIUKQAG
    IJRUNSTUIUJ $.

  $( Extended real version of ~ mulid2 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xmulid2 $p |- ( A e. RR* -> ( 1 *e A ) = A ) $=
    ( cxr wcel c1 cxmu co wceq 1re rexri xmulcom mpan xmulid1 eqtrd ) ABCZDAEFZ
    ADEFZADBCNOPGDHIDAJKALM $.

  $( Extended real version of ~ mulm1 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xmulm1 $p |- ( A e. RR* -> ( -u 1 *e A ) = -e A ) $=
    ( cxr wcel c1 cneg cxmu co cxne wceq 1re rexneg ax-mp oveq1i rexri xmulneg1
    cr mpan syl5eqr xmulid2 xnegeq syl eqtrd ) ABCZDEZAFGZDAFGZHZAHZUCUEDHZAFGZ
    UGUIUDAFDPCUIUDIJDKLMDBCUCUJUGIDJNDAOQRUCUFAIUGUHIASUFATUAUB $.

  $( Lemma for ~ xmulass .  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xmulasslem2 $p |- ( ( 0 < A /\ A = -oo ) -> ph ) $=
    ( cmnf wceq cc0 clt wbr breq2 cxr wn 0xr nltmnf ax-mp pm2.21i syl6bi impcom
    wcel ) BCDZEBFGZARSECFGZABCEFHTAEIQTJKELMNOP $.

  $( Extended real version of ~ mulgt0 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xmulgt0 $p |- ( ( ( A e. RR* /\ 0 < A ) /\ ( B e. RR* /\ 0 < B ) ) ->
      0 < ( A *e B ) ) $=
    ( cxr wcel cc0 clt wbr wa cr cxmu cpnf wceq cmnf simpr adantl 0ltpnf adantr
    co sylan sylan9eqr anim12i cmul mulgt0 ancoms rexmul breqtrrd anassrs oveq2
    an4s xmulpnf1 syl5breqr adantlr xmulasslem2 w3o simprl elxr sylib mpjao3dan
    simplrr oveq1 xmulpnf2 simplr simpll ) ACDZEAFGZHZBCDZEBFGZHZHZAIDZEABJRZFG
    ZAKLZAMLZVJVKHZBIDZVMBKLZBMLZVJVKVQVMVJVEVHHZVKVQHZVMVFVEVIVHVDVENVGVHNUAVT
    WAHEABUBRZVLFWAVTEWBFGZVKVEVQVHWCABUCUIUDWAVLWBLVTABUEOUFSUGVJVRVMVKVJVRHEK
    VLFPVRVJVLAKJRZKBKAJUHVFWDKLVIAUJQTUKULVPVHVSVMVFVGVHVKUSVMBUMSVJVQVRVSUNZV
    KVJVGWEVFVGVHUOBUPUQQURVJVNHEKVLFPVNVJVLKBJRZKAKBJUTVIWFKLVFBVAOTUKVJVEVOVM
    VDVEVIVBVMAUMSVJVDVKVNVOUNVDVEVIVCAUPUQUR $.

  $( Extended real version of ~ mulge0 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xmulge0 $p |- ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) ->
      0 <_ ( A *e B ) ) $=
    ( cxr wcel cc0 cle wbr wa clt cxmu co wceq 0xr adantr 0le0 eqcomd sylan9eqr
    wi syl5breqr wo xmulgt0 an4s xmulcl xrltle sylancr mpd ad2ant2r impl xmul01
    ex oveq2 ad2antrr adantlr wb xrleloe mpan biimpa ad2antlr mpjaodan ad2antrl
    oveq1 xmul02 ) ACDZEAFGZHZBCDZEBFGZHZHZEAIGZEABJKZFGZEALZVIVJHEBIGZVLEBLZVI
    VJVNVLVCVFVJVNHZVLRVDVGVCVFHZVPVLVQVPHZEVKIGZVLVCVJVFVNVSABUAUBVRECDZVKCDZV
    SVLRMVQWAVPABUCNEVKUDUEUFUJUGUHVIVOVLVJVIVOHEEVKFOVOVIVKAEJKZEVOWBVKEBAJUKP
    VCWBELVDVHAUIULQSUMVHVNVOTZVEVJVFVGWCVTVFVGWCUNMEBUOUPUQURUSVIVMHEEVKFOVMVI
    VKEBJKZEVMWDVKEABJVAPVFWDELVEVGBVBUTQSVEVJVMTZVHVCVDWEVTVCVDWEUNMEAUOUPUQNU
    S $.

  ${
    $d x D $.  $d x E $.  $d x F $.  $d x ph $.  $d x X $.  $d x Y $.
    xmulasslem.1 $e |- ( x = D -> ( ps <-> X = Y ) ) $.
    xmulasslem.2 $e |- ( x = -e D -> ( ps <-> E = F ) ) $.
    xmulasslem.x $e |- ( ph -> X e. RR* ) $.
    xmulasslem.y $e |- ( ph -> Y e. RR* ) $.
    xmulasslem.d $e |- ( ph -> D e. RR* ) $.
    xmulasslem.ps $e |- ( ( ph /\ ( x e. RR* /\ 0 < x ) ) -> ps ) $.
    xmulasslem.0 $e |- ( ph -> ( x = 0 -> ps ) ) $.
    xmulasslem.e $e |- ( ph -> E = -e X ) $.
    xmulasslem.f $e |- ( ph -> F = -e Y ) $.
    $( Lemma for ~ xmulass .  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
    xmulasslem $p |- ( ph -> X = Y ) $=
      ( cc0 cxr wi clt wbr wceq w3o wcel 0xr wor xrltso solin mpan sylancl cxne
      wa wb xlt0neg1 syl xnegcl breq2 imbi12d imbi2d exp32 com12 vtoclga sylbid
      cv mpcom eqeq12d xneg11 syl2anc bitrd sylibd eqeq1 vtoclg 3jaod mpd ) ADR
      UAUBZDRUCZRDUAUBZUDZGHUCZADSUEZRSUEZVSMUFSUAUGWAWBUMVSUHSDRUAUIUJUKAVPVTV
      QVRAVPEFUCZVTAVPRDULZUAUBZWCAWAVPWEUNMDUOUPWDSUEZAWEWCTZAWAWFMDUQUPARCVEZ
      UAUBZBTZTZAWGTCWDSWHWDUCZWJWGAWLWIWEBWCWHWDRUAURJUSUTAWHSUEZWJAWMWIBNVAVB
      ZVCVFVDAWCGULZHULZUCZVTAEWOFWPPQVGAGSUEHSUEWQVTUNKLGHVHVIVJVKWAAVQVTTZMAW
      HRUCZBTZTAWRTCDSWHDUCZWTWRAXAWSVQBVTWHDRVLIUSUTOVMVFWAAVRVTTZMWKAXBTCDSXA
      WJXBAXAWIVRBVTWHDRUAURIUSUTWNVCVFVNVO $.
  $}

  $( Lemma for ~ xmulass .  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xmulasslem3 $p |- ( ( ( A e. RR* /\ 0 < A ) /\ ( B e. RR* /\ 0 < B ) /\
    ( C e. RR* /\ 0 < C ) ) -> ( ( A *e B ) *e C ) = ( A *e ( B *e C ) ) ) $=
    ( cxr wcel cc0 clt wa cr cxmu co wceq cpnf cmul rexmul sylan 3eqtr4d adantr
    wbr sylan9eqr w3a cmnf cc mulass syl3an 3expa remulcl sylan2 anassrs oveq1d
    adantll oveq2d simp1l simp2l xmulcl syl2anc xmulgt0 3adant3 xmulpnf1 simpl1
    recn oveq2 syl eqtr4d 3ad2ant2 adantlr simpl3r xmulasslem2 w3o simp3l sylib
    mpjao3dan xmulpnf2 3ad2ant3 3ad2ant1 oveq1 simpl2r simpl3 3adant1 simp1r
    elxr ) ADEZFAGSZHZBDEZFBGSZHZCDEZFCGSZHZUAZAIEZABJKZCJKZABCJKZJKZLZAMLZAUBL
    ZWKWLHZBIEZWQBMLZBUBLZWKWLXAWQWKWLXAHZHZCIEZWQCMLZCUBLZXDXFWQWKXDXFHZABNKZC
    JKZABCNKZJKZWNWPXIXJCNKZAXLNKZXKXMWLXAXFXNXOLZWLAUCEXABUCEXFCUCEXPAVABVACVA
    ABCUDUEUFXDXJIEXFXKXNLABUGXJCOPWLXAXFXMXOLZXAXFHWLXLIEXQBCUGAXLOUHUIQXIWMXJ
    CJXDWMXJLXFABORUJXIWOXLAJXAXFWOXLLWLBCOUKULQUKWKXGWQXDWKXGHZWNAMJKZWPXRWNMX
    SXGWKWNWMMJKZMCMWMJVBWKWMDEZFWMGSZXTMLWKWBWEYAWBWCWGWJUMZWDWEWFWJUNZABUOUPW
    DWGYBWJABUQURWMUSUPTXRWDXSMLZWDWGWJXGUTAUSZVCVDXRWOMAJXGWKWOBMJKZMCMBJVBWGW
    DYGMLWJBUSVETULVDVFXEWIXHWQWHWIWDWGXDVGWQCVHPWKXFXGXHVIZXDWKWHYHWDWGWHWIVJZ
    CWAVKRVLUIWKXBWQWLWKXBHZMCJKZXSWNWPWKYKXSLXBWKYKMXSWJWDYKMLZWGCVMZVNZWDWGYE
    WJYFVOZVDRYJWMMCJXBWKWMXSMBMAJVBYOTUJYJWOMAJXBWKWOYKMBMCJVPYNTULQVFWTWFXCWQ
    WEWFWDWJWLVQWQBVHPWKXAXBXCVIZWLWKWEYPYDBWAVKRVLWKWRHZYKMWNWPYQWJYLWDWGWJWRV
    RYMVCYQWMMCJWRWKWMMBJKZMAMBJVPWGWDYRMLWJBVMVETUJWRWKWPMWOJKZMAMWOJVPWKWODEZ
    FWOGSZYSMLWKWEWHYTYDYIBCUOUPWGWJUUAWDBCUQVSWOVMUPTQWKWCWSWQWBWCWGWJVTWQAVHP
    WKWBWLWRWSVIYCAWAVKVL $.

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( Associativity of the extended real multiplication operation.
       Surprisingly, there are no restrictions on the values, unlike ~ xaddass
       which has to avoid the "undefined" combinations ` +oo +e -oo ` and
       ` -oo +e +oo ` .  The equivalent "undefined" expression here would be
       ` 0 *e +oo ` , but since this is defined to equal ` 0 ` any zeroes in
       the expression make the whole thing evaluate to zero (on both sides),
       thus establishing the identity in this case.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    xmulass $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
      ( ( A *e B ) *e C ) = ( A *e ( B *e C ) ) ) $=
      ( cxr wcel cxmu co wceq cxne oveq1 oveq1d eqeq12d xmulcl syl2anc wa oveq2
      cc0 oveq2d xmulneg2 xmulneg1 vx vy vz w3a cv stoic3 simp1 3adant1 clt wbr
      simprl simpl2 simpl3 adantr xmulasslem3 adantlll xmul01 eqtr4d syl5ibrcom
      3expa ad2antrl eqtrd xmulasslem xmul02 3ad2ant3 3eqtr4d 3ad2ant2 3adant3
      syl ) ADEZBDEZCDEZUDZUAUEZBFGZCFGZVNBCFGZFGZHZUAAAIZBFGZCFGZVTVQFGZABFGZC
      FGZAVQFGZVNAHZVPWEVRWFWGVOWDCFVNABFJKVNAVQFJLVNVTHZVPWBVRWCWHVOWACFVNVTBF
      JKVNVTVQFJLVJVKWDDEZVLWEDEABMZWDCMUFVMVJVQDEZWFDEVJVKVLUGZVKVLWKVJBCMUHZA
      VQMNWLVMVNDEZQVNUIUJZOZOZVNUBUEZFGZCFGZVNWRCFGZFGZHZUBBVNBIZFGZCFGZVNXDCF
      GZFGZVPVRWRBHZWTVPXBVRXIWSVOCFWRBVNFPKXIXAVQVNFWRBCFJRLWRXDHZWTXFXBXHXJWS
      XECFWRXDVNFPKXJXAXGVNFWRXDCFJRLWQVODEZVLVPDEWQWNVKXKVMWNWOUKZVJVKVLWPULZV
      NBMNZVJVKVLWPUMZVOCMNWQWNWKVRDEXLVMWKWPWMUNZVNVQMNXMWQWRDEZQWRUIUJZOZOZWS
      UCUEZFGZVNWRYAFGZFGZHZUCCWSCIZFGZVNWRYFFGZFGZWTXBYACHZYBWTYDXBYACWSFPYJYC
      XAVNFYACWRFPRLYAYFHZYBYGYDYIYAYFWSFPYKYCYHVNFYAYFWRFPRLXTWSDEZVLWTDEXTWNX
      QYLWQWNXSXLUNZWQXQXRUKZVNWRMNZWQVLXSXOUNZWSCMNXTWNXADEZXBDEYMXTXQVLYQYNYP
      WRCMNZVNXAMNYPWPXSYADEQYAUIUJOZYEVMWPXSYSYEVNWRYAUOUTUPXTYEYAQHZWSQFGZVNW
      RQFGZFGZHXTUUAVNQFGZUUCXTUUAQUUDXTYLUUAQHYOWSUQVIXTWNUUDQHZYMVNUQZVIURXTU
      UBQVNFXQUUBQHWQXRWRUQVARURYTYBUUAYDUUCYAQWSFPYTYCUUBVNFYAQWRFPRLUSXTYLVLY
      GWTIHYOYPWSCSNXTYIVNXAIZFGZXBIZXTYHUUGVNFXTXQVLYHUUGHYNYPWRCSNRXTWNYQUUHU
      UIHYMYRVNXASNVBVCWQXCWRQHZUUDCFGZVNQCFGZFGZHWQUULUUDUUKUUMWQUULQUUDVMUULQ
      HZWPVLVJUUNVKCVDVEZUNZWNUUEVMWOUUFVAZURWQUUDQCFUUQKWQUULQVNFUUPRVFUUJWTUU
      KXBUUMUUJWSUUDCFWRQVNFPKUUJXAUULVNFWRQCFJRLUSWQXFVOIZCFGZVPIZWQXEUURCFWQW
      NVKXEUURHXLXMVNBSNKWQXKVLUUSUUTHXNXOVOCTNVBWQXHVNVQIZFGZVRIZWQXGUVAVNFWQV
      KVLXGUVAHXMXOBCTNRWQWNWKUVBUVCHXLXPVNVQSNVBVCVMVSVNQHZQBFGZCFGZQVQFGZHVMU
      ULQUVFUVGUUOVMUVEQCFVKVJUVEQHVLBVDVGKVMWKUVGQHWMVQVDVIVFUVDVPUVFVRUVGUVDV
      OUVECFVNQBFJKVNQVQFJLUSVMWBWDIZCFGZWEIZVMWAUVHCFVJVKWAUVHHVLABTVHKVJVKWIV
      LUVIUVJHWJWDCTUFVBVMVJWKWCWFIHWLWMAVQTNVC $.
  $}

  $( Extended real version of ~ lemul1a .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xlemul1a $p |- ( ( ( A e. RR* /\ B e. RR* /\ ( C e. RR* /\ 0 <_ C ) ) /\
    A <_ B ) -> ( A *e C ) <_ ( B *e C ) ) $=
    ( cxr wcel cc0 cle wbr wa cxmu co clt wceq cpnf adantr syl eqbrtrd ad2antrr
    cmnf ax-mp w3a wi wo wb 0xr simpr xrleloe sylancr cr w3o simpllr elxr sylib
    cmul simplrr simprll simprlr simprr simplrl lemul1 syl112anc rexmul syl2anc
    mpbid 3brtr4d expr simprl 0re lttri4 sylancl simplll xmulpnf1n sylan xmulcl
    pnfxr mnfle oveq1 xmul02 syl6eq adantl breq1 syl5ibcom leloe pnfge xmulpnf1
    ex sylibd syl5breqr xrleid breqtrri oveq1d jaodan syldan ltletr mp3an1 impr
    imp syl5breq mpan2d breq12d mpbiri 3jaod mpd oveq2 syl5ibrcom nltmnf mtbiri
    wn breq2 con2i ad2antrl pm2.21d anassrs adantlr xmulpnf2 ad2ant2lr breqtrrd
    sylan9eqr xrletri3 ad3antrrr mpbir2and mpjao3dan xmulmnf2 exp32 xmul01 a1dd
    adantll ad2antlr jaod sylbid expimpd 3impia ) ADEZBDEZCDEZFCGHZIZUAABGHZACJ
    KZBCJKZGHZYMYNYQYRUUAUBZYMYNIZYOYPUUBUUCYOIZYPFCLHZFCMZUCZUUBUUDFDEZYOYPUUG
    UDUEUUCYOUFFCUGUHUUDUUEUUBUUFUUDUUEYRUUAUUDUUEYRIZIZAUIEZUUAANMZASMZUUJUUKI
    BUIEZUUABNMZBSMZUUJUUKUUNUUAUUJUUKUUNIZIZCUIEZCNMZCSMZUJZUUAUURYOUVBUUCYOUU
    IUUQUKCULUMUURUUSUUAUUTUVAUUJUUQUUSUUAUUJUUQUUSIZIZACUNKZBCUNKZYSYTGUVDYRUV
    EUVFGHZUUDUUEYRUVCUOUVDUUKUUNUUSUUEYRUVGUDUUJUUKUUNUUSUPZUUJUUKUUNUUSUQZUUJ
    UUQUUSURZUUDUUEYRUVCUSABCUTVAVDUVDUUKUUSYSUVEMUVHUVJACVBVCUVDUUNUUSYTUVFMUV
    IUVJBCVBVCVEVFUURUUAUUTANJKZBNJKZGHZUURAFLHZAFMZFALHZUJZUVMUURUUKFUIEZUVQUU
    JUUKUUNVGVHAFVIVJUURUVNUVMUVOUVPUURUVNUVMUURUVNIZUVKSUVLGUURYMUVNUVKSMUUJYM
    UUQYMYNYOUUIVKZOAVLVMUVSUVLDEZSUVLGHUVSYNNDEZUWAUURYNUVNUUJYNUUQYMYNYOUUIUK
    ZOZOVOBNVNVJUVLVPPQWFUURUVOUVMUURUVOIUVKFUVLGUVOUVKFMUURUVOUVKFNJKZFAFNJVQU
    WBUWEFMVONVRTZVSVTUURUVOFBLHZFBMZUCZFUVLGHZUURUVOUWIUURUVOFBGHZUWIUURYRUVOU
    WKUUDUUEYRUUQUOZAFBGWAWBUURUVRUUNUWKUWIUDVHUUJUUKUUNURFBWCUHWGWQUURUWGUWJUW
    HUURUWGIFNUVLGUUHFNGHUEFWDTUURYNUWGUVLNMZUWDBWEZVMWHUURUWHIZFUWEUVLGFFUWEGU
    UHFFGHZUEFWITZUWFWJUWOFBNJUURUWHUFWKWRWLWMQWFUUJUUQUVPUVMUUJUUQUVPIZIZUVMNN
    GHZUWBUWTVONWDTUWSUVKNUVLNGUWSYMUVPUVKNMUUJYMUWRUVTOUUJUUQUVPURAWEVCUWSYNUW
    GUWMUUJYNUWRUWCOUUJUUQUVPUWGUURUVPYRUWGUWLUUQUVPYRIUWGUBZUUJUVRUUKUUNUXAVHF
    ABWNWOVTWSWPUWNVCWTXAVFXBXCUUTYSUVKYTUVLGCNAJXDCNBJXDWTXEUURUVAUUAUUJUVAXHZ
    UUQUUEUXBUUDYRUVAUUEUVAUUEFSLHZUUHUXCXHUEFXFTCSFLXIXGXJXKOXLXBXCXMUUJUUOUUA
    UUKUUJUUOIZYSNYTGUXDYSDEZYSNGHUUDUXEUUIUUOYMYOUXEYNACVNXNRYSWDPUUOUUJYTNCJK
    ZNBNCJVQYOUUEUXFNMUUCYRCXOXPXRXQXNUUJUUPUUAUUKUUJUUPIZYSYTYTGUXGABCJUXGABMZ
    YRBAGHZUUDUUEYRUUPUOUXGBSAGUUJUUPUFUXGYMSAGHUUJYMUUPUVTOAVPPQUUCUXHYRUXIIUD
    ZYOUUIUUPABXSZXTYAWKUXGYTDEZYTYTGHZUUDUXLUUIUUPYNYOUXLYMBCVNYGZRYTWIZPQXNUU
    JUUNUUOUUPUJZUUKUUJYNUXPUWCBULUMOYBUUJUULIZYSYTYTGUXQABCJUXQUXHYRUXIUUDUUEY
    RUULUOUXQBNAGUXQYNBNGHUUJYNUULUWCOBWDPUUJUULUFXQUUCUXJYOUUIUULUXKXTYAWKUUDU
    XMUUIUULUUDUXLUXMUXNUXOPRQUUJUUMIZYSSYTGUUMUUJYSSCJKZSASCJVQYOUUEUXSSMUUCYR
    CYCXPXRUXRUXLSYTGHUUDUXLUUIUUMUXNRYTVPPQUUJYMUUKUULUUMUJUVTAULUMYBYDUUDUUFU
    UAYRUUDAFJKZBFJKZGHZUUFUUAUUDUYBUWPUWQUUDUXTFUYAFGYMUXTFMYNYOAYERYNUYAFMYMY
    OBYEYHWTXAUUFUXTYSUYAYTGFCAJXDFCBJXDWTWBYFYIYJYKYLWQ $.

  $( Extended real version of ~ lemul2a .  (Contributed by Mario Carneiro,
     8-Sep-2015.) $)
  xlemul2a $p |- ( ( ( A e. RR* /\ B e. RR* /\ ( C e. RR* /\ 0 <_ C ) ) /\
    A <_ B ) -> ( C *e A ) <_ ( C *e B ) ) $=
    ( cxr wcel cc0 cle wbr wa w3a cxmu co xlemul1a wceq simpl3l xmulcom syl2anc
    simpl1 simpl2 3brtr3d ) ADEZBDEZCDEZFCGHZIZJABGHZIZACKLZBCKLZCAKLZCBKLZGABC
    MUGUAUCUHUJNUAUBUEUFRUCUDUAUBUFOZACPQUGUBUCUIUKNUAUBUEUFSULBCPQT $.

  $( Extended real version of ~ lemul1 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xlemul1 $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR+ ) ->
    ( A <_ B <-> ( A *e C ) <_ ( B *e C ) ) ) $=
    ( cxr wcel crp w3a cle wbr cxmu co cc0 wa wi rpxr 3ad2ant3 syl2anc syl wceq
    c1 rpge0 jca xlemul1a ex syl3an3 cdiv simp1 simp2 rpreccl syl112anc xmulass
    xmulcl syl3anc cmul rpre rpred rexmul recnd wne rpne0 recidd oveq2d xmulid1
    cr eqtrd 3eqtrd breq12d sylibd impbid ) ADEZBDEZCFEZGZABHIZACJKZBCJKZHIZVLV
    JVKCDEZLCHIZMZVNVQNVLVRVSCOZCUAUBVJVKVTGVNVQABCUCUDUEVMVQVOTCUFKZJKZVPWBJKZ
    HIZVNVMVODEZVPDEZWBDEZLWBHIZVQWENVMVJVRWFVJVKVLUGZVLVJVRVKWAPZACULQVMVKVRWG
    VJVKVLUHZWKBCULQVMWBFEZWHVLVJWMVKCUIPZWBORZVMWMWIWNWBUARWFWGWHWIMGVQWEVOVPW
    BUCUDUJVMWCAWDBHVMWCACWBJKZJKZATJKZAVMVJVRWHWCWQSWJWKWOACWBUKUMVMWPTAJVMWPC
    WBUNKZTVMCVDEZWBVDEWPWSSVLVJWTVKCUOPZVMWBWNUPCWBUQQVMCVMCXAURVLVJCLUSVKCUTP
    VAVEZVBVMVJWRASWJAVCRVFVMWDBWPJKZBTJKZBVMVKVRWHWDXCSWLWKWOBCWBUKUMVMWPTBJXB
    VBVMVKXDBSWLBVCRVFVGVHVI $.

  $( Extended real version of ~ lemul2 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xlemul2 $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR+ ) ->
    ( A <_ B <-> ( C *e A ) <_ ( C *e B ) ) ) $=
    ( cxr wcel crp w3a cle wbr cxmu co xlemul1 wceq simp1 rpxr 3ad2ant3 xmulcom
    syl2anc simp2 breq12d bitrd ) ADEZBDEZCFEZGZABHIACJKZBCJKZHICAJKZCBJKZHIABC
    LUEUFUHUGUIHUEUBCDEZUFUHMUBUCUDNUDUBUJUCCOPZACQRUEUCUJUGUIMUBUCUDSUKBCQRTUA
    $.

  $( Extended real version of ~ ltmul1 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xltmul1 $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR+ ) ->
    ( A < B <-> ( A *e C ) < ( B *e C ) ) ) $=
    ( cxr wcel crp w3a cle wbr wn cxmu clt xlemul1 3com12 notbid xrltnle xmulcl
    co wb syl2anc 3adant3 simp1 rpxr 3ad2ant3 simp2 3bitr4d ) ADEZBDEZCFEZGZBAH
    IZJZBCKRZACKRZHIZJZABLIZUNUMLIZUJUKUOUHUGUIUKUOSBACMNOUGUHUQULSUIABPUAUJUND
    EZUMDEZURUPSUJUGCDEZUSUGUHUIUBUIUGVAUHCUCUDZACQTUJUHVAUTUGUHUIUEVBBCQTUNUMP
    TUF $.

  $( Extended real version of ~ ltmul2 .  (Contributed by Mario Carneiro,
     8-Sep-2015.) $)
  xltmul2 $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR+ ) ->
    ( A < B <-> ( C *e A ) < ( C *e B ) ) ) $=
    ( cxr wcel crp w3a clt cxmu co xltmul1 wb rpxr wceq xmulcom 3adant2 3adant1
    wbr breq12d syl3an3 bitrd ) ADEZBDEZCFEZGABHRACIJZBCIJZHRZCAIJZCBIJZHRZABCK
    UDUBUCCDEZUGUJLCMUBUCUKGUEUHUFUIHUBUKUEUHNUCACOPUCUKUFUINUBBCOQSTUA $.

  $( Lemma for ~ xadddi .  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xadddilem $p |- ( ( ( A e. RR /\ B e. RR* /\ C e. RR* ) /\ 0 < A ) ->
    ( A *e ( B +e C ) ) = ( ( A *e B ) +e ( A *e C ) ) ) $=
    ( cr wcel cxr wa cxad co cxmu wceq cpnf cmnf adantr syl2anc 3eqtr4d adantll
    cc0 oveq2d wne w3a clt simpl1 caddc cmul cc recn adddi syl3an 3expa readdcl
    wbr rexmul sylan2 anassrs remulcl adantlr oveq12d sylanl1 3ad2ant1 xmulpnf1
    rexadd rexr sylan eqeltrd renemnf xaddpnf1 syl eqtr4d oveq2 adantl xmulmnf1
    sylan9eqr renepnf xaddmnf1 w3o elxr sylib mpjao3dan ad2antrr xaddpnf2 simpr
    simpl3 oveq1d sylan9eq pnfxr pnfnemnf mp2an 3eqtr4a oveqan12d oveq12 syl6eq
    3eqtr4rd pnfaddmnf xmul01 3syl xaddmnf2 mnfaddpnf mnfxr mnfnepnf simpl2 ) A
    DEZBFEZCFEZUAZRAUBULZGZBDEZABCHIZJIZABJIZACJIZHIZKZBLKZBMKZXGXHGZCDEZXNCLKZ
    CMKZXGXBXHXRXNXBXCXDXFUCZXBXHGZXRGZABCUDIZJIZABUEIZACUEIZHIZXJXMYCAYDUEIZYF
    YGUDIZYEYHXBXHXRYIYJKZXBAUFEXHBUFEXRCUFEYKAUGBUGCUGABCUHUIUJXBXHXRYEYIKZXHX
    RGXBYDDEYLBCUKAYDUMUNUOYCYFDEZYGDEZYHYJKYBYMXRABUPZNXBXRYNXHACUPZUQYFYGVBOP
    YCXIYDAJXHXRXIYDKXBBCVBQSYCXKYFXLYGHYBXKYFKXRABUMZNXBXRXLYGKXHACUMZUQURPUSX
    QXSGZALJIZXKLHIZXJXMXQYTUUAKXSXQYTLUUAXGYTLKZXHXEAFEZXFUUBXBXCUUCXDAVCZUTZA
    VAVDZNZXQXKDEZUUALKZXGXBXHUUHYAYBXKYFDYQYOVEVDZUUHXKFEZXKMTUUIXKVCZXKVFXKVG
    OVHVINYSXILAJXSXQXIBLHIZLCLBHVJXHUUMLKZXGXHXCBMTUUNBVCZBVFBVGOVKVMSYSXLLXKH
    XSXQXLYTLCLAJVJZUUGVMSPXQXTGZAMJIZXKMHIZXJXMUUQUURMUUSXQUURMKZXTXGUUTXHXEUU
    CXFUUTUUEAVLVDZNZNUUQUUHUUSMKZXQUUHXTUUJNUUHUUKXKLTUVCUULXKVNXKVOOVHVIUUQXI
    MAJXTXQXIBMHIZMCMBHVJXHUVDMKZXGXHXCBLTUVEUUOBVNBVOOVKVMSUUQXLMXKHXTXQXLUURM
    CMAJVJZUVBVMSPXGXRXSXTVPZXHXGXDUVGXBXCXDXFWCCVQVRZNVSXGXOGZXRXNXSXTUVIXRGZY
    TLXLHIZXJXMUVJYTLUVKXGUUBXOXRUUFVTUVJXLDEZUVKLKZUVIXBXRUVLXGXBXOYANXBXRGXLY
    GDYRYPVEZVDUVLXLFEZXLMTUVMXLVCZXLVFXLWAOVHVIUVJXILAJUVIXRXILCHIZLUVIBLCHXGX
    OWBWDXRXDCMTUVQLKCVCZCVFCWAOWESUVJXKLXLHUVIXKLKXRXOXGXKYTLBLAJVJZUUFVMNWDPU
    VIXSGYTYTHIZYTXMXJXGUVTYTKXOXSXGLLHIZLUVTYTLFELMTUWALKWFWGLVGWHZXGYTLYTLHUU
    FUUFURUUFWIVTXOXSXMUVTKXGXOXSXKYTXLYTHUVSUUPWJQXOXSXJYTKXGXOXSGZXILAJUWCXIU
    WALBLCLHWKUWBWLSQWMUVIXTGYTUURHIZARJIZXMXJXGUWDUWEKXOXTXGLMHIZRUWDUWEWNXGYT
    LUURMHUUFUVAURXGXBUUCUWERKYAUUDAWOWPZWIVTXOXTXMUWDKXGXOXTXKYTXLUURHUVSUVFWJ
    QXOXTXJUWEKZXGXOXTGZXIRAJUWIXIUWFRBLCMHWKWNWLSQWMXGUVGXOUVHNVSXGXPGZXRXNXSX
    TUWJXRGZUURMXLHIZXJXMUWKUURMUWLXGUUTXPXRUVAVTUWKUVLUWLMKZUWJXBXRUVLXGXBXPYA
    NUVNVDUVLUVOXLLTUWMUVPXLVNXLWQOVHVIUWKXIMAJUWJXRXIMCHIZMUWJBMCHXGXPWBWDXRXD
    CLTUWNMKUVRCVNCWQOWESUWKXKMXLHUWJXKMKXRXPXGXKUURMBMAJVJZUVAVMNWDPUWJXSGUWEU
    URYTHIZXJXMXGUWEUWPKXPXSXGUWERUWPUWGXGUWPMLHIZRXGUURMYTLHUVAUUFURWRWLVIVTXP
    XSUWHXGXPXSGZXIRAJUWRXIUWQRBMCLHWKWRWLSQXPXSXMUWPKXGXPXSXKUURXLYTHUWOUUPWJQ
    PUWJXTGUURUURHIZUURXMXJXGUWSUURKXPXTXGMMHIZMUWSUURMFEMLTUWTMKWSWTMVOWHZXGUU
    RMUURMHUVAUVAURUVAWIVTXPXTXMUWSKXGXPXTXKUURXLUURHUWOUVFWJQXPXTXJUURKXGXPXTG
    ZXIMAJUXBXIUWTMBMCMHWKUXAWLSQWMXGUVGXPUVHNVSXGXCXHXOXPVPXBXCXDXFXABVQVRVS
    $.

  $( Distributive property for extended real addition and multiplication.  Like
     ~ xaddass , this has an unusual domain of correctness due to
     counterexamples like ` ( +oo x. ( 2 - 1 ) ) = -oo =/= `
     ` ( ( +oo x. 2 ) - ( +oo x. 1 ) ) = ( +oo - +oo ) = 0 ` .  In this theorem
     we show that if the multiplier is real then everything works as expected.
     (Contributed by Mario Carneiro, 20-Aug-2015.) $)
  xadddi $p |- ( ( A e. RR /\ B e. RR* /\ C e. RR* ) ->
    ( A *e ( B +e C ) ) = ( ( A *e B ) +e ( A *e C ) ) ) $=
    ( cr wcel cxr cc0 clt wbr cxad cxmu wceq syl2anc xmul02 syl oveq1d xmulneg1
    co cxne xmulcl w3a xadddilem simpl2 simpl3 xaddcl 0xr xaddid1 ax-mp syl6eqr
    wa simpr eqtr3d oveq12d 3eqtr3d simp1 adantr cneg rexneg renegcl eqeltrd wb
    rexrd xlt0neg1 biimpa syl31anc xnegdi eqtr4d xneg11 mpbid w3o 0re mpjao3dan
    lttri4 sylancr ) ADEZBFEZCFEZUAZGAHIZABCJRZKRZABKRZACKRZJRZLZGALZAGHIZABCUB
    VRWFUJZGVTKRZGGJRZWAWDWHWIGWJWHVTFEZWIGLWHVPVQWKVOVPVQWFUCZVOVPVQWFUDZBCUEZ
    MVTNOGFEWJGLUFGUGUHUIWHGAVTKVRWFUKZPWHGWBGWCJWHGBKRZGWBWHVPWPGLWLBNOWHGABKW
    OPULWHGCKRZGWCWHVQWQGLWMCNOWHGACKWOPULUMUNVRWGUJZWASZWDSZLZWEWRASZVTKRZXBBK
    RZXBCKRZJRZWSWTWRXBDEZVPVQGXBHIZXCXFLWRVOXGVRVOWGVOVPVQUOZUPVOXBAUQDAURAUSU
    TOVOVPVQWGUCZVOVPVQWGUDZVRWGXHVRAFEZWGXHVAVRAXIVBZAVCOVDXBBCUBVEWRXLWKXCWSL
    VRXLWGXMUPZWRVPVQWKXJXKWNMZAVTQMWRXFWBSZWCSZJRZWTWRXDXPXEXQJWRXLVPXDXPLXNXJ
    ABQMWRXLVQXEXQLXNXKACQMUMWRWBFEZWCFEZWTXRLWRXLVPXSXNXJABTMZWRXLVQXTXNXKACTM
    ZWBWCVFMVGUNWRWAFEZWDFEZXAWEVAWRXLWKYCXNXOAVTTMWRXSXTYDYAYBWBWCUEMWAWDVHMVI
    VRGDEVOVSWFWGVJVKXIGAVMVNVL $.

  $( Commuted version of ~ xadddi .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xadddir $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR ) ->
    ( ( A +e B ) *e C ) = ( ( A *e C ) +e ( B *e C ) ) ) $=
    ( cxr wcel cr w3a cxad co cxmu xadddi 3coml xaddcl 3adant3 3ad2ant3 xmulcom
    wceq rexr syl2anc simp1 simp2 oveq12d 3eqtr4d ) ADEZBDEZCFEZGZCABHIZJIZCAJI
    ZCBJIZHIZUHCJIZACJIZBCJIZHIUFUDUEUIULQCABKLUGUHDEZCDEZUMUIQUDUEUPUFABMNUFUD
    UQUECROZUHCPSUGUNUJUOUKHUGUDUQUNUJQUDUEUFTURACPSUGUEUQUOUKQUDUEUFUAURBCPSUB
    UC $.

  $( The assumption that the multiplier be real in ~ xadddi can be relaxed if
     the addends have the same sign.  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xadddi2 $p |- ( ( A e. RR* /\ ( B e. RR* /\ 0 <_ B ) /\
                                ( C e. RR* /\ 0 <_ C ) ) ->
    ( A *e ( B +e C ) ) = ( ( A *e B ) +e ( A *e C ) ) ) $=
    ( cxr wcel cc0 cle wbr wa cxad co cxmu wceq cpnf cmnf sylancr syl2anc oveq1
    adantr sylan9eqr w3a clt cr simpr simp2l ad2antrr simp3l xadddi syl3anc wne
    pnfxr xmulcl simpl3r 0lepnf xmulge0 mpanl12 ge0nemnf xaddpnf2 oveq12d sylan
    xmulpnf2 oveq1d xaddcl 0xr a1i xaddid1 xleadd2a syl31anc eqbrtrrd xrltletrd
    syl 3eqtr4rd mnfxr cxne xnegmnf oveq1i xmulneg1 syl5reqr xnegpnf eqeq12d wb
    xneg11 sylancl bitr3d necon3bid xaddmnf2 xmulmnf2 w3o simpl1 elxr mpjao3dan
    mpbid sylib simp1 xaddid2 eqcomd xmul01 3ad2ant1 oveq2d wo xrleloe mpjaodan
    oveq2 simp2r ) ADEZBDEZFBGHZIZCDEZFCGHZIZUAZFBUBHZABCJKZLKZABLKZACLKZJKZMZF
    BMZXLXMIZAUCEZXSANMZAOMZYAYBIYBXFXIXSYAYBUDXLXFXMYBXEXFXGXKUEZUFXLXIXMYBXEX
    HXIXJUGZUFABCUHUIYAYCIZNNCLKZJKZNXRXOYGYHDEZYHOUJZYINMYGNDEZXIYJUKYAXIYCXLX
    IXMYFSZSNCULZPYAYKYCYAYJFYHGHZYKYAYLXIYJUKYMYNPYAXIXJYOYMXIXJXEXHXMUMZYLFNG
    HXKYOUKUNNCUOUPQYHUQQZSYHURQYCYAXRNBLKZYHJKYIYCXPYRXQYHJANBLRANCLRUSYAYRNYH
    JXLXFXMYRNMYEBVAUTVBTYCYAXONXNLKZNANXNLRYAXNDEZFXNUBHZYSNMXLYTXMXLXFXIYTYEY
    FBCVCQSZYAFBXNFDEZYAVDVEZXLXFXMYESZUUBXLXMUDYABFJKZBXNGYAXFUUFBMUUEBVFVKYAU
    UCXIXFXJUUFXNGHUUDYMUUEYPFCBVGVHVIVJZXNVAQTVLYAYDIOOCLKZJKZOXRXOYAUUIOMZYDY
    AUUHDEZUUHNUJZUUJYAODEZXIUUKVMYMOCULPZYAYKUULYQYAYHOUUHNYAUUHVNZNVNZMZYHOMU
    UHNMZYAUUOYHUUPOYAYHOVNZCLKZUUOUUSNCLVOVPYAUUMXIUUTUUOMVMYMOCVQPVRUUPOMYAVS
    VEVTYAUUKYLUUQUURWAUUNUKUUHNWBWCWDWEWLUUHWFQSYDYAXROBLKZUUHJKUUIYDXPUVAXQUU
    HJAOBLRAOCLRUSYAUVAOUUHJXLXFXMUVAOMYEBWGUTVBTYDYAXOOXNLKZOAOXNLRYAYTUUAUVBO
    MUUBUUGXNWGQTVLYAXEYBYCYDWHXEXHXKXMWIAWJWMWKXLXTIZFXQJKZXQXRXOUVCXQDEZUVDXQ
    MXLUVEXTXLXEXIUVEXEXHXKWNYFACULQSXQWOVKUVCXPFXQJXTXLXPAFLKZFXTUVFXPFBALXCWP
    XEXHUVFFMXKAWQWRTVBUVCXNCALXTXLXNFCJKZCXTUVGXNFBCJRWPXLXIUVGCMYFCWOVKTWSVLX
    LXGXMXTWTZXEXFXGXKXDXLUUCXFXGUVHWAVDYEFBXAPWLXB $.

  $( Commuted version of ~ xadddi2 .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  xadddi2r $p |- ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) /\
    C e. RR* ) -> ( ( A +e B ) *e C ) = ( ( A *e C ) +e ( B *e C ) ) ) $=
    ( cxr wcel cc0 cle wbr wa w3a cxad co cxmu wceq xadddi2 3coml simp1l simp2l
    syl2anc xmulcom xaddcl simp3 oveq12d 3eqtr4d ) ADEZFAGHZIZBDEZFBGHZIZCDEZJZ
    CABKLZMLZCAMLZCBMLZKLZUMCMLZACMLZBCMLZKLUKUGUJUNUQNCABOPULUMDEZUKURUNNULUEU
    HVAUEUFUJUKQZUGUHUIUKRZABUASUGUJUKUBZUMCTSULUSUOUTUPKULUEUKUSUONVBVDACTSULU
    HUKUTUPNVCVDBCTSUCUD $.

  $( Extended real version of ~ 2times .  (Contributed by Mario Carneiro,
     20-Aug-2015.) $)
  x2times $p |- ( A e. RR* -> ( 2 *e A ) = ( A +e A ) ) $=
    ( cxr wcel c2 cxmu co c1 cxad caddc df-2 cr wceq rexadd mp2an eqtr4i oveq1i
    1re cc0 cle wbr wa rexri 0le1 pm3.2i xadddi2r mp3an12 xmulid2 oveq12d eqtrd
    syl5eq ) ABCZDAEFGGHFZAEFZAAHFZDULAEDGGIFZULJGKCZUPULUOLQQGGMNOPUKUMGAEFZUQ
    HFZUNGBCZRGSTZUAZVAUKUMURLUSUTGQUBUCUDZVBGGAUEUFUKUQAUQAHAUGZVCUHUIUJ $.

  ${
    xnegcld.1 $e |- ( ph -> A e. RR* ) $.
    $( Closure of extended real negative.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    xnegcld $p |- ( ph -> -e A e. RR* ) $=
      ( cxr wcel cxne xnegcl syl ) ABDEBFDECBGH $.

    xaddcld.2 $e |- ( ph -> B e. RR* ) $.
    $( The extended real addition operation is closed in extended reals.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    xaddcld $p |- ( ph -> ( A +e B ) e. RR* ) $=
      ( cxr wcel cxad co xaddcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

    $( Closure of extended real multiplication.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    xmulcld $p |- ( ph -> ( A *e B ) e. RR* ) $=
      ( cxr wcel cxmu co xmulcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.
  $}

  ${
    xadd4d.1 $e |- ( ph -> ( A e. RR* /\ A =/= -oo ) ) $.
    xadd4d.2 $e |- ( ph -> ( B e. RR* /\ B =/= -oo ) ) $.
    xadd4d.3 $e |- ( ph -> ( C e. RR* /\ C =/= -oo ) ) $.
    xadd4d.4 $e |- ( ph -> ( D e. RR* /\ D =/= -oo ) ) $.
    $( Rearrangement of 4 terms in a sum for extended addition, analogous to
       ~ add4d .  (Contributed by Alexander van der Vekens, 21-Dec-2017.) $)
    xadd4d $p |- ( ph ->
      ( ( A +e B ) +e ( C +e D ) ) = ( ( A +e C ) +e ( B +e D ) ) ) $=
      ( cxad co cxr wcel cmnf wne wa wceq xaddass simpld syl2anc syl3anc oveq2d
      xaddcld xaddnemnf syl112anc xaddcom oveq1d eqtr2d eqtrd 3eqtr4d ) ABDCJKZ
      EJKZJKZBDCEJKZJKZJKZBCJKDEJKZJKZBDJKUNJKZAULUOBJADLMZDNOZPZCLMZCNOZPZELMZ
      ENOZPZULUOQHGIDCERUAUBAURBCUQJKZJKZUMABLMBNOPZVEUQLMUQNOZURVJQFGADEAUTVAH
      SZAVFVGISZUCAVBVHVLHIDEUDTBCUQRUEAVIULBJAULCDJKZEJKZVIAUKVOEJAUTVCUKVOQVM
      AVCVDGSZDCUFTUGAVEVBVHVPVIQGHICDERUAUHUBUIAVKVBUNLMUNNOZUSUPQFHACEVQVNUCA
      VEVHVRGICEUDTBDUNRUEUJ $.
  $}

  ${
    xnn0add4d.1 $e |- ( ph -> A e. NN0* ) $.
    xnn0add4d.2 $e |- ( ph -> B e. NN0* ) $.
    xnn0add4d.3 $e |- ( ph -> C e. NN0* ) $.
    xnn0add4d.4 $e |- ( ph -> D e. NN0* ) $.
    $( Rearrangement of 4 terms in a sum for extended addition of extended
       nonnegative integers, analogous to ~ xadd4d .  (Contributed by AV,
       12-Dec-2020.) $)
    xnn0add4d $p |- ( ph -> ( ( A +e B ) +e ( C +e D ) )
                            = ( ( A +e C ) +e ( B +e D ) ) ) $=
      ( cxnn0 wcel cxr cmnf wne wa xnn0xrnemnf syl xadd4d ) ABCDEABJKBLKBMNOFBP
      QACJKCLKCMNOGCPQADJKDLKDMNOHDPQAEJKELKEMNOIEPQR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Supremum and infimum on the extended reals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Adding minus infinity to a set does not affect the existence of its
       supremum.  (Contributed by NM, 26-Oct-2005.) $)
    xrsupexmnf $p |- ( E. x e. RR* ( A. y e. A -. x < y /\
              A. y e. RR* ( y < x -> E. z e. A y < z ) ) ->
         E. x e. RR* ( A. y e. ( A u. { -oo } ) -. x < y /\
              A. y e. RR* ( y < x -> E. z e. ( A u. { -oo } ) y < z ) ) ) $=
      ( cv clt wbr wn wral wrex wi cxr wa cmnf csn cun wcel wo elun syl5bi wceq
      simpr velsn nltmnf breq2 notbid syl5ibrcom adantr jaod ex ralimdv2 anim1i
      elun1 reximi2 imim2i ralimi a1i anim12d reximia ) AEZBEZFGZHZBDIZVAUTFGZV
      ACEZFGZCDJZKZBLIZMVCBDNOZPZIZVEVGCVLJZKZBLIZMALUTLQZVDVMVJVPVQVCVCBDVLVQV
      ADQZVCKZVAVLQZVCKVTVRVAVKQZRVQVSMZVCVADVKSWBVRVCWAVQVSUBVQWAVCKVSWAVANUAZ
      VQVCBNUCVQVCWCUTNFGZHUTUDWCVBWDVANUTFUEUFUGTUHUITUJUKVJVPKVQVIVOBLVHVNVEV
      GVGCDVLVFDQVFVLQVGVFDVKUMULUNUOUPUQURUS $.

    $( Adding plus infinity to a set does not affect the existence of its
       infimum.  (Contributed by NM, 19-Jan-2006.) $)
    xrinfmexpnf $p |- ( E. x e. RR* ( A. y e. A -. y < x /\
              A. y e. RR* ( x < y -> E. z e. A z < y ) ) ->
         E. x e. RR* ( A. y e. ( A u. { +oo } ) -. y < x /\
              A. y e. RR* ( x < y -> E. z e. ( A u. { +oo } ) z < y ) ) ) $=
      ( cv clt wbr wn wral wrex wi cxr wa cpnf csn cun wcel wo elun syl5bi wceq
      simpr velsn pnfnlt breq1 notbid syl5ibrcom adantr jaod ex ralimdv2 anim1i
      elun1 reximi2 imim2i ralimi a1i anim12d reximia ) BEZAEZFGZHZBDIZVAUTFGZC
      EZUTFGZCDJZKZBLIZMVCBDNOZPZIZVEVGCVLJZKZBLIZMALVALQZVDVMVJVPVQVCVCBDVLVQU
      TDQZVCKZUTVLQZVCKVTVRUTVKQZRVQVSMZVCUTDVKSWBVRVCWAVQVSUBVQWAVCKVSWAUTNUAZ
      VQVCBNUCVQVCWCNVAFGZHVAUDWCVBWDUTNVAFUEUFUGTUHUITUJUKVJVPKVQVIVOBLVHVNVEV
      GVGCDVLVFDQVFVLQVGVFDVKUMULUNUOUPUQURUS $.

    $( Lemma for ~ xrsupss .  (Contributed by NM, 25-Oct-2005.) $)
    xrsupsslem $p |- ( ( A C_ RR* /\ ( A C_ RR \/ +oo e. A ) ) -> E. x e. RR*
        ( A. y e. A -. x < y /\ A. y e. RR* ( y < x -> E. z e. A y < z ) ) ) $=
      ( cxr cr clt wbr wn wral wrex wi wa cpnf wcel c0 wceq cle cmnf breq1 sup3
      wss cv raleq rexeq imbi2d ralbidv anbi12d rexbidv wne rexr anim1i reximi2
      w3a syl elxr simpr pnfnlt adantr wb notbid adantl mpbird pm2.21d ad2antlr
      w3o ex wex ssel mnflt syl6 ancld eximdv n0 df-rex 3imtr4g imp a1d imbi12d
      ad2antrr 3jaod syl5bi ralimdv2 anim2d reximdva 3adant3 3expa ralnex ssel2
      mpd rexnal letric ord sylan an32s syl5bir ralimdva sylan2br breq2 cbvrexv
      ralbii sylib pnfxr ralrimiv c1 caddc co rspcva adantrr ancoms sylan2 ltp1
      peano2re ancli ltletr mpand exp31 a1dd com4r xrltnr ax-mp mtbiri 2a1d cc0
      adantll 0re mpan mpan9 syl5ibr expd 3jaoi sylbi jca imbi1d rspcev sylancr
      com13 syldan adantlr pm2.61dan mnfxr ral0 nltmnf rgen pm3.2i a1i pm2.61ne
      mp2an ralrimivw anim12i jaodan ) DEUBZDFUBZAUCZBUCZGHZIZBDJZUUOUUNGHZUUOC
      UCZGHZCDKZLZBEJZMZAEKZNDOZUUMUVFUULUUMUVFUUQBPJZUUSUVACPKZLZBEJZMZAEKZDPD
      PQZUVEUVLAEUVNUURUVHUVDUVKUUQBDPUDUVNUVCUVJBEUVNUVBUVIUUSUVACDPUEUFUGUHUI
      UUMDPUJZMZUUOUUNRHZBDJZAFKZUVFUUMUVOUVSUVFUUMUVOUVSUNZUURUVCBFJZMZAEKZUVF
      UVTUWBAFKUWCABCDUAUWBUWBAFEUUNFOZUUNEOZUWBUUNUKULUMUOUUMUVOUWCUVFLUVSUVPU
      WBUVEAEUVPUWEMZUWAUVDUURUWFUVCUVCBFEUWFUUOFOZUVCLZUUOEOZUVCLUWIUWGUUONQZU
      UOSQZVFZUWFUWHMZUVCUUOUPZUWMUWGUVCUWJUWKUWFUWHUQUWEUWJUVCLUVPUWHUWEUWJUVC
      UWEUWJMZUUSUVBUWOUUSIZNUUNGHZIZUWEUWRUWJUUNURUSUWJUWPUWRUTUWEUWJUUSUWQUUO
      NUUNGTVAVBVCVDVGVEUWFUWKUVCLUWHUWFUWKUVCUWFUWKMUVCSUUNGHZSUUTGHZCDKZLZUVP
      UXBUWEUWKUVPUXAUWSUUMUVOUXAUUMUUTDOZCVHUXCUWTMZCVHUVOUXAUUMUXCUXDCUUMUXCU
      WTUUMUXCUUTFOZUWTDFUUTVIUUTVJZVKVLVMCDVNUWTCDVOVPVQVRVTUWKUVCUXBUTUWFUWKU
      USUWSUVBUXAUUOSUUNGTUWKUVAUWTCDUUOSUUTGTUIZVSVBVCVGUSWAWBVGWCWDWEWFWJWGUU
      MUVSIZUVFUVOUUMUXHUUNUUTRHZCDKZAFJZUVFUUMUXHMUUNUUORHZBDKZAFJZUXKUXHUUMUV
      RIZAFJZUXNUVRAFWHUUMUXPUXNUUMUXOUXMAFUXOUVQIZBDKUUMUWDMZUXMUVQBDWKUXRUXQU
      XLBDUUMUUODOZUWDUXQUXLLZUUMUXSMUWGUWDUXTDFUUOWIUWGUWDMUVQUXLUUOUUNWLWMWNW
      OWEWPWQVQWRUXMUXJAFUXLUXIBCDUUOUUTUUNRWSWTXAXBUUMUXKMZNEOZNUUOGHZIZBDJZUU
      ONGHZUVBLZBEJZMZUVFXCUYAUYEUYHUUMUYEUXKUUMUYDBDUUMUXSUWGUYDDFUUOVIUWGUWIU
      YDUUOUKUUOURZUOVKXDUSUYAUYGBEUUMUXKUWIUYGLUWIUXKUUMUYGUWIUWLUXKUUMUYGLLZU
      WNUWGUYKUWJUWKUXKUUMUYFUWGUVBUXKUUMUWGUVBLUYFUXKUUMUWGUVBUXKUUMMZUWGMUUOX
      EXFXGZUUTRHZCDKZUVBUWGUYLUYMFOZUYOUUOXMZUYPUYLUYOUYPUXKUYOUUMUXJUYOAUYMFU
      UNUYMQUXIUYNCDUUNUYMUUTRTUIXHXIXJXKUUMUWGUYOUVBLUXKUUMUWGMUYNUVACDUUMUXCU
      WGUYNUVALZUUMUXCMZUXEUWGUYRDFUUTWIZUWGUXEUYRUWGUXEMUUOUYMGHZUYNUVAUWGVUAU
      XEUUOXLUSUWGUWGUYPMUXEVUAUYNMUVALZUWGUYPUYQXNUWGUYPUXEVUBUUOUYMUUTXOWGWNX
      PXJWNWOWEYEWJXQXRXSUWJUYGUXKUUMUWJUYFUVBUWJUYFNNGHZUYBVUCIXCNXTYAUUONNGTY
      BVDYCUWKUXKUUMUYGUWKUYLUVBUYFUYLUVBUWKUXAUXKYDUUTRHZCDKZUUMUXAYDFOUXKVUEY
      FUXJVUEAYDFUUNYDQUXIVUDCDUUNYDUUTRTUIXHYGUUMVUDUWTCDUYSUWTVUDUYSUXEUWTUYT
      UXFUOVRWEYHUXGYIXRYJYKYLYQVQXDYMUVEUYIANEUUNNQZUURUYEUVDUYHVUFUUQUYDBDVUF
      UUPUYCUUNNUUOGTVAUGVUFUVCUYGBEVUFUUSUYFUVBUUNNUUOGWSYNUGUHYOZYPYRYSYTUVMU
      UMSEOSUUOGHZIZBPJZUUOSGHZUVILZBEJZMZUVMUUAVUJVUMVUIBUUBVULBEUWIVUKUVIUUOU
      UCVDUUDUUEUVLVUNASEUUNSQZUVHVUJUVKVUMVUOUUQVUIBPVUOUUPVUHUUNSUUOGTVAUGVUO
      UVJVULBEVUOUUSVUKUVIUUNSUUOGWSYNUGUHYOUUHUUFUUGVBUULUVGMUYBUYIUVFXCUULUYE
      UVGUYHUULUYDBDUULUXSUWIUYDDEUUOVIUYJVKXDUVGUYGBEUVGUYFUVBUVAUYFCNDUUTNUUO
      GWSYOVGUUIUUJVUGYPUUK $.

    $( Lemma for ~ xrinfmss .  (Contributed by NM, 19-Jan-2006.) $)
    xrinfmsslem $p |- ( ( A C_ RR* /\ ( A C_ RR \/ -oo e. A ) ) -> E. x e. RR*
        ( A. y e. A -. y < x /\ A. y e. RR* ( x < y -> E. z e. A z < y ) ) ) $=
      ( cxr cr clt wbr wn wral wrex wi wa cmnf wcel c0 wceq cle cpnf breq2 rexr
      wss raleq rexeq imbi2d ralbidv anbi12d rexbidv wne w3a anim1i reximi2 syl
      cv infm3 w3o elxr simpr wex ssel ltpnf ancld eximdv n0 df-rex 3imtr4g imp
      syl6 a1d ad2antrr wb imbi12d adantl mpbird adantr nltmnf pm2.21d ad2antlr
      ex notbid 3jaod syl5bi ralimdv2 anim2d reximdva 3adant3 mpd ralnex rexnal
      3expa ssel2 letric ancoms ord sylan an32s syl5bir ralimdva sylan2br breq1
      wo cbvrexv ralbii sylib mnfxr ralrimiv c1 cmin co peano2rem rspcva sylan2
      adantrr ltm1 ancri lelttr 3expb mpan2d adantll exp31 a1dd com4r cc0 mpan9
      0re mpan syl5ibr expd xrltnr ax-mp mtbiri 3jaoi sylbi com13 imbi1d rspcev
      2a1d jca sylancr syldan pm2.61dan pnfxr ral0 pnfnlt rgen pm3.2i mp2an a1i
      adantlr pm2.61ne ralrimivw anim12i jaodan ) DEUBZDFUBZBUNZAUNZGHZIZBDJZUU
      QUUPGHZCUNZUUPGHZCDKZLZBEJZMZAEKZNDOZUUOUVHUUNUUOUVHUUSBPJZUVAUVCCPKZLZBE
      JZMZAEKZDPDPQZUVGUVNAEUVPUUTUVJUVFUVMUUSBDPUCUVPUVEUVLBEUVPUVDUVKUVAUVCCD
      PUDUEUFUGUHUUODPUIZMZUUQUUPRHZBDJZAFKZUVHUUOUVQUWAUVHUUOUVQUWAUJZUUTUVEBF
      JZMZAEKZUVHUWBUWDAFKUWEABCDUOUWDUWDAFEUUQFOZUUQEOZUWDUUQUAUKULUMUUOUVQUWE
      UVHLUWAUVRUWDUVGAEUVRUWGMZUWCUVFUUTUWHUVEUVEBFEUWHUUPFOZUVELZUUPEOZUVELUW
      KUWIUUPSQZUUPNQZUPZUWHUWJMZUVEUUPUQZUWOUWIUVEUWLUWMUWHUWJURUWHUWLUVELUWJU
      WHUWLUVEUWHUWLMUVEUUQSGHZUVBSGHZCDKZLZUVRUWTUWGUWLUVRUWSUWQUUOUVQUWSUUOUV
      BDOZCUSUXAUWRMZCUSUVQUWSUUOUXAUXBCUUOUXAUWRUUOUXAUVBFOZUWRDFUVBUTUVBVAZVH
      VBVCCDVDUWRCDVEVFVGVIVJUWLUVEUWTVKUWHUWLUVAUWQUVDUWSUUPSUUQGTUWLUVCUWRCDU
      UPSUVBGTUHZVLVMVNVSVOUWGUWMUVELUVRUWJUWGUWMUVEUWGUWMMZUVAUVDUXFUVAIZUUQNG
      HZIZUWGUXIUWMUUQVPVOUWMUXGUXIVKUWGUWMUVAUXHUUPNUUQGTVTVMVNVQVSVRWAWBVSWCW
      DWEWFWGWJUUOUWAIZUVHUVQUUOUXJUVBUUQRHZCDKZAFJZUVHUUOUXJMUUPUUQRHZBDKZAFJZ
      UXMUXJUUOUVTIZAFJZUXPUVTAFWHUUOUXRUXPUUOUXQUXOAFUXQUVSIZBDKUUOUWFMZUXOUVS
      BDWIUXTUXSUXNBDUUOUUPDOZUWFUXSUXNLZUUOUYAMUWIUWFUYBDFUUPWKUWIUWFMUVSUXNUW
      FUWIUVSUXNXAUUQUUPWLWMWNWOWPWEWQWRVGWSUXOUXLAFUXNUXKBCDUUPUVBUUQRWTXBXCXD
      UUOUXMMZNEOZUUPNGHZIZBDJZNUUPGHZUVDLZBEJZMZUVHXEUYCUYGUYJUUOUYGUXMUUOUYFB
      DUUOUYAUWIUYFDFUUPUTUWIUWKUYFUUPUAUUPVPZUMVHXFVOUYCUYIBEUUOUXMUWKUYILUWKU
      XMUUOUYIUWKUWNUXMUUOUYILLZUWPUWIUYMUWLUWMUXMUUOUYHUWIUVDUXMUUOUWIUVDLUYHU
      XMUUOUWIUVDUXMUUOMZUWIMUVBUUPXGXHXIZRHZCDKZUVDUWIUYNUYOFOZUYQUUPXJZUYRUYN
      UYQUYRUXMUYQUUOUXLUYQAUYOFUUQUYOQUXKUYPCDUUQUYOUVBRTUHXKXMWMXLUUOUWIUYQUV
      DLUXMUUOUWIMUYPUVCCDUUOUXAUWIUYPUVCLZUUOUXAMZUXCUWIUYTDFUVBWKZUXCUWIMUYPU
      YOUUPGHZUVCUWIVUCUXCUUPXNVMUWIUXCUYRUWIMUYPVUCMUVCLZUWIUYRUYSXOUXCUYRUWIV
      UDUVBUYOUUPXPXQXLXRWOWPWEXSWGXTYAYBUWLUXMUUOUYIUWLUYNUVDUYHUYNUVDUWLUWSUX
      MUVBYCRHZCDKZUUOUWSYCFOUXMVUFYEUXLVUFAYCFUUQYCQUXKVUECDUUQYCUVBRTUHXKYFUU
      OVUEUWRCDVUAUWRVUEVUAUXCUWRVUBUXDUMVIWEYDUXEYGYAYHUWMUYIUXMUUOUWMUYHUVDUW
      MUYHNNGHZUYDVUGIXENYIYJUUPNNGTYKVQYQYLYMYNVGXFYRUVGUYKANEUUQNQZUUTUYGUVFU
      YJVUHUUSUYFBDVUHUURUYEUUQNUUPGTVTUFVUHUVEUYIBEVUHUVAUYHUVDUUQNUUPGWTYOUFU
      GYPZYSYTUUIUUAUVOUUOSEOUUPSGHZIZBPJZSUUPGHZUVKLZBEJZMZUVOUUBVULVUOVUKBUUC
      VUNBEUWKVUMUVKUUPUUDVQUUEUUFUVNVUPASEUUQSQZUVJVULUVMVUOVUQUUSVUKBPVUQUURV
      UJUUQSUUPGTVTUFVUQUVLVUNBEVUQUVAVUMUVKUUQSUUPGWTYOUFUGYPUUGUUHUUJVMUUNUVI
      MUYDUYKUVHXEUUNUYGUVIUYJUUNUYFBDUUNUYAUWKUYFDEUUPUTUYLVHXFUVIUYIBEUVIUYHU
      VDUVCUYHCNDUVBNUUPGWTYPVSUUKUULVUIYSUUM $.

    $( Any subset of extended reals has a supremum.  (Contributed by NM,
       25-Oct-2005.) $)
    xrsupss $p |- ( A C_ RR* -> E. x e. RR* (
         A. y e. A -. x < y /\ A. y e. RR* ( y < x -> E. z e. A y < z ) ) ) $=
      ( cxr wss cr cpnf wcel wo cv clt wbr wral wrex wi wa cmnf xrsupsslem w3o
      wn cdif ssdifss ssxr df-3or neldifsn biorfi bitr4i sylib mpdan xrsupexmnf
      csn syl wb snssi wceq undif uncom eqeq1i bitri raleq rexeq imbi2d ralbidv
      cun anbi12d sylbi rexbidv syl5ib mpan9 mpjaodan ) DEFZDGFZHDIZJZAKZBKZLMU
      AZBDNZVQVPLMZVQCKLMZCDOZPZBENZQZAEOZRDIZABCDSVLVRBDRULZUBZNVTWACWIOPBENQA
      EOZWGWFVLWIEFZWJDEWHUCWKWIGFZHWIIZJZWJWKWLWMRWIIZTZWNWIUDWPWNWOJWNWLWMWOU
      EWOWNRDUFUGUHUIABCWISUJUMWJVRBWIWHVEZNZVTWACWQOZPZBENZQZAEOWGWFABCWIUKWGX
      BWEAEWGWHDFZXBWEUNZRDUOXCWQDUPZXDXCWHWIVEZDUPXEWHDUQXFWQDWHWIURUSUTXEWRVS
      XAWDVRBWQDVAXEWTWCBEXEWSWBVTWACWQDVBVCVDVFVGUMVHVIVJVLVMVNWGTVOWGJDUDVMVN
      WGUEUIVK $.

    $( Any subset of extended reals has an infimum.  (Contributed by NM,
       25-Oct-2005.) $)
    xrinfmss $p |- ( A C_ RR* -> E. x e. RR* (
         A. y e. A -. y < x /\ A. y e. RR* ( x < y -> E. z e. A z < y ) ) ) $=
      ( cxr wss cr cmnf wcel wo cv clt wbr wn wral wrex wi wa cpnf bitri 3orass
      xrinfmsslem csn cdif ssdifss w3o ssxr pnfex snid elndif biorf mp2b orbi2i
      bitr4i sylib mpdan syl cun xrinfmexpnf wceq snss undif uncom eqeq1i raleq
      wb rexeq imbi2d ralbidv anbi12d sylbi rexbidv syl5ib df-3or or32 mpjaodan
      mpan9 ) DEFZDGFZHDIZJZBKZAKZLMNZBDOZWCWBLMZCKWBLMZCDPZQZBEOZRZAEPZSDIZABC
      DUBVRWDBDSUCZUDZOWFWGCWOPQBEORAEPZWMWLVRWOEFZWPDEWNUEWQWOGFZHWOIZJZWPWQWR
      SWOIZWSUFZWTWOUGXBWRXAWSJZJWTWRXAWSUAWSXCWRSWNIXANWSXCVFSUHUISWNDUJXAWSUK
      ULUMUNUOABCWOUBUPUQWPWDBWOWNURZOZWFWGCXDPZQZBEOZRZAEPWMWLABCWOUSWMXIWKAEW
      MXDDUTZXIWKVFWMWNDFZXJSDUHVAXKWNWOURZDUTXJWNDVBXLXDDWNWOVCVDTTXJXEWEXHWJW
      DBXDDVEXJXGWIBEXJXFWHWFWGCXDDVGVHVIVJVKVLVMVQVRVSWMVTUFZWAWMJZDUGXMVSWMJV
      TJXNVSWMVTVNVSWMVTVOTUOVP $.

    $( Any subset of extended reals has an infimum.  (Contributed by Mario
       Carneiro, 16-Mar-2014.) $)
    xrinfmss2 $p |- ( A C_ RR* -> E. x e. RR* ( A. y e. A -. x `' < y /\
                      A. y e. RR* ( y `' < x -> E. z e. A y `' < z ) ) ) $=
      ( cxr wss cv clt wbr wn wral wrex wi wa ccnv xrinfmss brcnv ralbii rexbii
      vex notbii imbi12i anbi12i sylibr ) DEFBGZAGZHIZJZBDKZUFUEHIZCGZUEHIZCDLZ
      MZBEKZNZAELUFUEHOZIZJZBDKZUEUFUQIZUEUKUQIZCDLZMZBEKZNZAELABCDPVFUPAEUTUIV
      EUOUSUHBDURUGUFUEHATZBTZQUARVDUNBEVAUJVCUMUEUFHVHVGQVBULCDUEUKHVHCTQSUBRU
      CSUD $.

    $( By quantifying only over reals, we can specify any extended real upper
       bound for any set of extended reals.  (Contributed by NM,
       9-Apr-2006.) $)
    xrub $p |- ( ( A C_ RR* /\ B e. RR* ) -> ( A. x e. RR ( x < B ->
          E. y e. A x < y ) <-> A. x e. RR* ( x < B -> E. y e. A x < y ) ) ) $=
      ( vz cxr wcel wa clt wbr wrex wi cr wceq breq1 rexbidv cpnf cmnf c1 ax-mp
      wss wral imbi12d cbvralv w3o elxr pm2.27 a1i pnfnlt notbid syl5ibr pm2.21
      cv wn syl6com ad2antlr a1dd cmin co peano2rem rspcv syl adantl id syl5com
      ltm1 mnflt ssel2 adantlr mnfxr xrlttr mp3an1 syl2anc mpand reximdva 3syld
      rexr 1re ltpnf breq2 mpbiri mp3an12 mpani sylan9r syl5 xrltnr pm2.21d a1d
      mtbiri 3jaodan sylan2b imp syl5ibrcom 3jaod syl5bi com23 ralimdv2 pm2.43d
      ex imim1i ralimi2 impbid1 ) CFUAZDFGZHZAUMZDIJZXFBUMZIJZBCKZLZAMUBZXKAFUB
      ZXEXLXMXLEUMZDIJZXNXHIJZBCKZLZEMUBZXEXLXMLZXKXRAEMXFXNNZXGXOXJXQXFXNDIOYA
      XIXPBCXFXNXHIOPUCUDXEXSXTXEXSHZXKXKAMFYBXFFGZXFMGZXKLZXKYCYDXFQNZXFRNZUEY
      BYEXKLZXFUFYBYDYHYFYGYDYHLYBYDXKUGUHYBYFXKYEXDYFXKLXCXSYFXDXGUNZXKXDYIYFQ
      DIJZUNDUIYFXGYJXFQDIOUJUKXGXJULUOUPUQYBYGXKYEYBXKYGRDIJZRXHIJZBCKZLZXEXSY
      NXDXCDMGZDQNZDRNZUEXSYNLZDUFXCYOYRYPYQXCYOHZXSYMYKYSXSDSURUSZDIJZYTXHIJZB
      CKZLZUUCYMYOXSUUDLZXCYOYTMGZUUEDUTZXRUUDEYTMXNYTNZXOUUAXQUUCXNYTDIOUUHXPU
      UBBCXNYTXHIOPUCVAVBVCYOUUDUUCLXCYOUUAUUDUUCDVFUUDVDVEVCYSUUBYLBCYSXHCGZHZ
      RYTIJZUUBYLUUJUUFUUKYOUUFXCUUIUUGUPZYTVGVBUUJYTFGZXHFGZUUKUUBHYLLZUUJUUFU
      UMUULYTVQVBXCUUIUUNYOCFXHVHZVIRFGZUUMUUNUUOVJRYTXHVKVLVMVNVOVPUQXCYPHZXSY
      MYKXSSDIJZSXHIJZBCKZLZUURYMSMGZXSUVBLVRXRUVBESMXNSNZXOUUSXQUVAXNSDIOUVDXP
      UUTBCXNSXHIOPUCVATYPUVBUVAXCYMYPUUSUVBUVAYPUUSSQIJZUVCUVEVRSVSTDQSIVTWAUV
      BVDVEXCUUTYLBCXCUUIHUUNUUTYLLUUPUUNRSIJZUUTYLUVCUVFVRSVGTUUQSFGZUUNUVFUUT
      HYLLVJUVCUVGVRSVQTRSXHVKWBWCVBVOWDWEUQXCYQHZYNXSUVHYKYMYQYKUNXCYQYKRRIJZU
      UQUVIUNVJRWFTDRRIVTWIVCWGWHWJWKWLYGXGYKXJYMXFRDIOYGXIYLBCXFRXHIOPUCWMUQWN
      WOWPWQWSWOWRXKXKAFMYDYCXKXFVQWTXAXB $.

    $( The supremum of a set of extended reals.  (Contributed by NM,
       9-Apr-2006.)  (Revised by Mario Carneiro, 21-Apr-2015.) $)
    supxr $p |- ( ( ( A C_ RR* /\ B e. RR* ) /\ ( A. x e. A -. B < x /\
    A. x e. RR ( x < B -> E. y e. A x < y ) ) ) -> sup ( A , RR* , < ) = B ) $=
      ( cxr wss wcel wa cv clt wbr wn wral wrex wi cr csup wceq simplr wtru w3a
      simprl xrub biimpa adantrl wor xrltso a1i eqsup trud syl3anc ) CEFZDEGZHZ
      DAIZJKLACMZUODJKUOBIJKBCNOZAPMZHZHUMUPUQAEMZCEJQDRZULUMUSSUNUPURUBUNURUTU
      PUNURUTABCDUCUDUEUMUPUTUAVAOTABECDJEJUFTUGUHUIUJUK $.

    $( The supremum of a set of extended reals.  (Contributed by NM,
       9-Apr-2006.) $)
    supxr2 $p |- ( ( ( A C_ RR* /\ B e. RR* ) /\ ( A. x e. A x <_ B /\
  A. x e. RR ( x < B -> E. y e. A x < y ) ) ) -> sup ( A , RR* , < ) = B ) $=
      ( cxr wss wcel wa cv cle wbr wral clt wrex wi cr wn csup wceq wb ralbidva
      ssel2 xrlenlt sylan an32s anbi1d biimpa supxr syldan ) CEFZDEGZHZAIZDJKZA
      CLZUMDMKUMBIMKBCNOAPLZHZDUMMKQZACLZUPHZCEMRDSULUQUTULUOUSUPULUNURACUJUMCG
      ZUKUNURTZUJVAHUMEGUKVBCEUMUBUMDUCUDUEUAUFUGABCDUHUI $.

    $( The supremum of an arbitrary set of extended reals is an extended real.
       (Contributed by NM, 24-Oct-2005.) $)
    supxrcl $p |- ( A C_ RR* -> sup ( A , RR* , < ) e. RR* ) $=
      ( vx vy vz cxr wss clt wor xrltso a1i xrsupss supcl ) AEFZBCDEAGEGHMIJBCD
      AKL $.

    $( The supremum of the union of two sets of extended reals equals the
       largest of their suprema.  (Contributed by NM, 19-Jan-2006.) $)
    supxrun $p |- ( ( A C_ RR* /\ B C_ RR*
                      /\ sup ( A , RR* , < ) <_ sup ( B , RR* , < ) )
                    -> sup ( ( A u. B ) , RR* , < ) = sup ( B , RR* , < ) ) $=
      ( vx vy vz vw cxr wss clt csup wbr wcel cv wn wral wi cr 3ad2ant2 xrsupss
      wa cle w3a cun wrex wceq unss biimpi 3adant3 supxrcl wo elun xrltso supub
      wor a1i 3ad2ant1 ad2antrr ad2antlr ssel2 adantlr xrlelttr syl3anc expdimp
      con3d exp41 com34 3imp mpdd jaod syl5bi ralrimiv rexr suplub sylani elun2
      anim1i reximi2 syl6 expd supxr syl22anc ) AGHZBGHZAGIJZBGIJZUAKZUBZABUCZG
      HZWEGLZWECMZIKZNZCWHOWKWEIKZWKDMZIKZDWHUDZPZCQOZWHGIJWEUEWBWCWIWFWBWCTZWI
      ABGUFUGUHWCWBWJWFBUIZRWGWMCWHWKWHLWKALZWKBLZUJWGWMWKABUKWGXBWMXCWGXBWDWKI
      KZNZWMWBWCXBXEPWFWBDEFGAWKIGIUNZWBULUODEFASUMUPWBWCWFXBXEWMPZPWBWCXBWFXGW
      BWCXBWFXGWTXBTZWFTWLXDXHWFWLXDXHWDGLZWJWKGLZWFWLTXDPWBXIWCXBAUIUQWCWJWBXB
      XAURWBXBXJWCAGWKUSUTWDWEWKVAVBVCVDVEVFVGVHWCWBXCWMPWFWCDEFGBWKIXFWCULUOZD
      EFBSUMRVIVJVKWCWBWSWFWCWRCQWCWKQLZWNWQWCXLWNTWPDBUDZWQXLWCXJWNXMWKVLWCCED
      GBWKIXKCEDBSVMVNWPWPDBWHWOBLWOWHLWPWOBAVOVPVQVRVSVKRCDWHWEVTWA $.

    $( Adding minus infinity to a set does not affect its supremum.
       (Contributed by NM, 19-Jan-2006.) $)
    supxrmnf $p |- ( A C_ RR* ->
                 sup ( ( A u. { -oo } ) , RR* , < ) = sup ( A , RR* , < ) ) $=
      ( cxr wss cmnf csn cun clt csup uncom supeq1i cle wbr wceq mnfxr snssi id
      wcel mp1i wor xrltso supsn mp2an supxrcl mnfle syl supxrun syl3anc syl5eq
      syl5eqbr ) ABCZADEZFZBGHUKAFZBGHZABGHZBULUMGAUKIJUJUKBCZUJUKBGHZUOKLUNUOM
      DBQZUPUJNDBORUJPUJUQDUOKBGSURUQDMTNBDGUAUBUJUOBQDUOKLAUCUOUDUEUIUKAUFUGUH
      $.

    $( The supremum of a set of extended reals containing plus infinity is plus
       infinity.  (Contributed by NM, 15-Oct-2005.) $)
    supxrpnf $p |- ( ( A C_ RR* /\ +oo e. A ) -> sup ( A , RR* , < ) = +oo ) $=
      ( vy vz cxr wss cpnf wcel cv clt wbr wn wral wrex wi cr wa csup wceq ssel
      pnfnlt syl6 ralrimiv breq2 rspcev ex ralrimivw anim12i pnfxr supxr mpanl2
      syldan ) ADEZFAGZFBHZIJKZBALZUNFIJZUNCHZIJZCAMZNZBOLZPZADIQFRZULUPUMVBULU
      OBAULUNAGUNDGUOADUNSUNTUAUBUMVABOUMUQUTUSUQCFAURFUNIUCUDUEUFUGULFDGVCVDUH
      BCAFUIUJUK $.

    $( The supremum of an unbounded-above set of extended reals is plus
       infinity.  (Contributed by NM, 19-Jan-2006.) $)
    supxrunb1 $p |- ( A C_ RR* -> ( A. x e. RR E. y e. A x <_ y <->
                    sup ( A , RR* , < ) = +oo ) ) $=
      ( vz vw cxr cv cle wbr wrex cr wral clt cpnf wceq wn wi wa wcel rexr csup
      wss ssel pnfnlt ralrimiv adantr c1 caddc co peano2re breq1 rexbidv rspcva
      syl6 adantrr ancoms ssel2 ltp1 ancli xrltletr syl3an2 syl3an1 3expa sylan
      sylan2 mpand an32s reximdva adantll mpd exp31 com4r com13 imp pnfxr supxr
      a1dd jca mpanl2 syldan ad2antlr ltpnf breq2 syl5ibr impcom wor xrltso a1i
      ex xrsupss ad2antrr suplub mp2and adantlr xrltle syl2anc ralrimdva impbid
      syld ) CFUBZAGZBGZHIZBCJZAKLZCFMUAZNOZWTXEXGWTXENDGZMIPZDCLZXHNMIZXHXBMIZ
      BCJZQZDKLZRZXGWTXERZXJXOWTXJXEWTXIDCWTXHCSXHFSZXICFXHUCXHUDUNUEUFXQXNDKWT
      XEXHKSZXNQXSXEWTXNXEWTXKXSXMXEWTXSXMQXKXEWTXSXMXEWTRZXSRXHUGUHUIZXBHIZBCJ
      ZXMXSXTYAKSZYCXHUJZYDXTYCYDXEYCWTXDYCAYAKXAYAOXCYBBCXAYAXBHUKULUMUOUPVEWT
      XSYCXMQXEWTXSRYBXLBCWTXBCSZXSYBXLQZWTYFRXBFSZXSYGCFXBUQZXSYHYGXSYHRXHYAMI
      ZYBXLXSYJYHXHURUFXSXSYDRYHYJYBRXLQZXSYDYEUSXSYDYHYKXSXRYDYHYKXHTYDXRYAFSY
      HYKYATXHYAXBUTVAVBVCVDVFUPVDVGVHVIVJVKVQVLVMVNUEVRWTNFSXPXGVODBCNVPVSVTWI
      WTXGXDAKWTXAKSZRZXGXAXBMIZBCJZXDYMXGYOYMXGRZXAFSZXAXFMIZYOYLYQWTXGXATZWAY
      LXGYRWTXGYLYRYLYRXGXANMIXAWBXFNXAMWCWDWEVIYPDEBFCXAMFMWFYPWGWHWTXHEGZMIPE
      CLYTXHMIYTXBMIBCJQEFLRDFJYLXGDEBCWJWKWLWMWIYMYNXCBCYMYFRYQYHYNXCQYLYQWTYF
      YSWAWTYFYHYLYIWNXAXBWOWPVHWSWQWR $.

    $( The supremum of an unbounded-above set of extended reals is plus
       infinity.  (Contributed by NM, 19-Jan-2006.) $)
    supxrunb2 $p |- ( A C_ RR* -> ( A. x e. RR E. y e. A x < y <->
                    sup ( A , RR* , < ) = +oo ) ) $=
      ( vz vw cxr cv clt wbr wrex cr wral cpnf wceq wn wi wcel ralrimiv exp31
      wa csup ssel pnfnlt syl6 adantr breq1 rexbidv rspcva adantrr ancoms com4r
      wss a1dd com13 imp pnfxr supxr mpanl2 syldan ex rexr ad2antlr ltpnf breq2
      jca syl5ibr impcom adantll wor xrltso a1i ad2antrr suplub mp2and ralrimdv
      xrsupss com23 impbid ) CFULZAGZBGZHIZBCJZAKLZCFHUAZMNZVSWDWFVSWDMDGZHIOZD
      CLZWGMHIZWGWAHIZBCJZPZDKLZTZWFVSWDTZWIWNVSWIWDVSWHDCVSWGCQWGFQWHCFWGUBWGU
      CUDRUEWPWMDKVSWDWGKQZWMPWQWDVSWMWDVSWJWQWLWDVSWQWLPWJWDVSWQWLWQWDVSTWLWQW
      DWLVSWCWLAWGKVTWGNWBWKBCVTWGWAHUFUGUHUIUJSUMUKUNUORVEVSMFQWOWFUPDBCMUQURU
      SUTVSWFWCAKVSVTKQZWFWCVSWRWFWCVSWRTWFTZVTFQZVTWEHIZWCWRWTVSWFVTVAVBWRWFXA
      VSWFWRXAWRXAWFVTMHIVTVCWEMVTHVDVFVGVHWSDEBFCVTHFHVIWSVJVKVSWGEGZHIOECLXBW
      GHIXBWAHIBCJPEFLTDFJWRWFDEBCVPVLVMVNSVQVOVR $.

    $( The supremum of a bounded-above set of extended reals is less than
       infinity.  (Contributed by NM, 30-Jan-2006.) $)
    supxrbnd1 $p |- ( A C_ RR* -> ( E. x e. RR A. y e. A y < x <->
                    sup ( A , RR* , < ) < +oo ) ) $=
      ( cxr wss cv clt wbr wral cr wrex csup cpnf wn cle wceq ralnex wcel wa wb
      rexr ssel2 xrlenlt syl2anr an32s rexbidva rexnal syl6rbb ralbidva syl5bbr
      supxrunb1 supxrcl nltpnft syl 3bitrd con4bid ) CDEZBFZAFZGHZBCIZAJKZCDGLZ
      MGHZUQVBNZUSUROHZBCKZAJIZVCMPZVDNZVEVANZAJIUQVHVAAJQUQVKVGAJUQUSJRZSZVGUT
      NZBCKVKVMVFVNBCUQURCRZVLVFVNTZVLUSDRURDRVPUQVOSUSUACDURUBUSURUCUDUEUFUTBC
      UGUHUIUJABCUKUQVCDRVIVJTCULVCUMUNUOUP $.

    $( The supremum of a bounded-above set of extended reals is less than
       infinity.  (Contributed by NM, 30-Jan-2006.) $)
    supxrbnd2 $p |- ( A C_ RR* -> ( E. x e. RR A. y e. A y <_ x <->
                    sup ( A , RR* , < ) < +oo ) ) $=
      ( cxr wss cv cle wbr wral cr wrex clt csup cpnf wn wceq ralnex wcel wa wb
      ssel2 rexr xrlenlt con2bid syl2an an32s rexbidva syl6rbb ralbidva syl5bbr
      rexnal supxrunb2 supxrcl nltpnft syl 3bitrd con4bid ) CDEZBFZAFZGHZBCIZAJ
      KZCDLMZNLHZURVCOZUTUSLHZBCKZAJIZVDNPZVEOZVFVBOZAJIURVIVBAJQURVLVHAJURUTJR
      ZSZVHVAOZBCKVLVNVGVOBCURUSCRZVMVGVOTZURVPSUSDRZUTDRZVQVMCDUSUAUTUBVRVSSVA
      VGUSUTUCUDUEUFUGVABCUKUHUIUJABCULURVDDRVJVKTCUMVDUNUOUPUQ $.

    $( The supremum of an empty set under the extended reals is minus infinity.
       (Contributed by NM, 15-Oct-2005.) $)
    xrsup0 $p |- sup ( (/) , RR* , < ) = -oo $=
      ( vy vz c0 cxr wss cmnf wcel cv clt wbr wn wral wrex wi cr csup 0ss mnfxr
      wceq ral0 rexr nltmnf syl pm2.21d rgen supxr mp4an ) CDEFDGFAHZIJKZACLUHF
      IJZUHBHIJBCMZNZAOLCDIPFSDQRUIATULAOUHOGZUJUKUMUHDGUJKUHUAUHUBUCUDUEABCFUF
      UG $.

    $( A member of a set of extended reals is less than or equal to the set's
       supremum.  (Contributed by NM, 7-Feb-2006.) $)
    supxrub $p |- ( ( A C_ RR* /\ B e. A ) -> B <_ sup ( A , RR* , < ) ) $=
      ( vx vy vz cxr wss wcel wa clt csup cle wbr wn wor xrltso a1i xrsupss imp
      supub wb ssel2 supxrcl adantr xrlenlt syl2anc mpbird ) AFGZBAHZIZBAFJKZLM
      ZUKBJMNZUHUIUMUHCDEFABJFJOUHPQCDEARTSUJBFHUKFHZULUMUAAFBUBUHUNUIAUCUDBUKU
      EUFUG $.

    $( The supremum of a set of extended reals is less than or equal to an
       upper bound.  (Contributed by Mario Carneiro, 13-Sep-2015.) $)
    supxrlub $p |- ( ( A C_ RR* /\ B e. RR* ) ->
                      ( B < sup ( A , RR* , < ) <-> E. x e. A B < x ) ) $=
      ( vy vz cxr wss clt wor xrltso a1i xrsupss id suplub2 ) BFGZDEAFBCHFHIOJK
      DEABLOMN $.

    $( The supremum of a set of extended reals is less than or equal to an
       upper bound.  (Contributed by NM, 22-Feb-2006.)  (Revised by Mario
       Carneiro, 6-Sep-2014.) $)
    supxrleub $p |- ( ( A C_ RR* /\ B e. RR* ) ->
                      ( sup ( A , RR* , < ) <_ B <-> A. x e. A x <_ B ) ) $=
      ( cxr wss wcel wa clt csup wbr wn cv wral cle wrex supxrlub notbid ralnex
      wb xrlenlt syl6bbr supxrcl sylan sselda simplr syl2anc ralbidva 3bitr4d
      simpl ) BDEZCDFZGZCBDHIZHJZKZCALZHJZKZABMZUMCNJZUPCNJZABMULUOUQABOZKUSULU
      NVBABCPQUQABRUAUJUMDFUKUTUOSBUBUMCTUCULVAURABULUPBFZGUPDFUKVAURSULBDUPUJU
      KUIUDUJUKVCUEUPCTUFUGUH $.

    $( The real and extended real suprema match when the real supremum exists.
       (Contributed by NM, 18-Oct-2005.)  (Proof shortened by Mario Carneiro,
       7-Sep-2014.) $)
    supxrre $p |- ( ( A C_ RR /\ A =/= (/) /\ E. x e. RR A. y e. A y <_ x ) ->
                  sup ( A , RR* , < ) = sup ( A , RR , < ) ) $=
      ( vz cr wss cv cle wbr wral cxr clt csup wcel suprleub mpdan syl2anc cmnf
      wb syl wne wrex w3a wceq suprcl leidd simp1 ressxr syl6ss rexrd supxrleub
      c0 bitr4d mpbid supxrcl xrleid wex simp2 n0 sylib mnfxr a1i sselda adantr
      mnflt supxrub sylan xrltletrd exlimddv xrre syl22anc xrletri3 mpbir2and
      wa ) CEFZCULUAZBGAGZHIBCJAEUBZUCZCKLMZCELMZUDZVTWAHIZWAVTHIZVSWAWAHIZWCVS
      WAABCUEZUFVSWEDGZWAHIDCJZWCVSWAENZWEWHSWFABDCWAOPVSCKFZWAKNZWCWHSVSCEKVOV
      PVRUGZUHUIZVSWAWFUJZDCWAUKQUMUNZVSVTVTHIZWDVSVTKNZWPVSWJWQWMCUOTZVTUPTVSW
      PVQVTHIACJZWDVSWJWQWPWSSWMWRACVTUKQVSVTENZWDWSSVSWQWIRVTLIZWCWTWRWFVSWGCN
      ZXADVSVPXBDUQVOVPVRURDCUSUTVSXBVNZRWGVTRKNXCVAVBXCWGVSCEWGWLVCZUJVSWQXBWR
      VDXCWGENRWGLIXDWGVETVSWJXBWGVTHIWMCWGVFVGVHVIWOVTWAVJVKABACVTOPUMUNVSWQWK
      WBWCWDVNSWRWNVTWAVLQVM $.

    $( The supremum of a bounded-above nonempty set of reals is real.
       (Contributed by NM, 19-Jan-2006.) $)
    supxrbnd $p |- ( ( A C_ RR /\ A =/= (/) /\ sup ( A , RR* , < ) < +oo ) ->
                    sup ( A , RR* , < ) e. RR ) $=
      ( vy vx cr wss c0 wne cxr clt csup cpnf wbr cv cle wral wrex wa wn syl6bb
      wcel ressxr sstr mpan2 wi supxrcl pnfxr xrltne mp3an2 necomd ex supxrunb2
      syl wceq wb adantlr rexr ad2antlr xrlenlt con2bid syl2anc rexbidva rexnal
      ssel2 ralbidva bitr3d ralnex necon2abid sylibrd imp sylan 3adant2 supxrre
      w3a suprcl eqeltrd syld3an3 ) ADEZAFGZAHIJZKILZBMZCMZNLZBAOZCDPZVSDTVQVTW
      EVRVQAHEZVTWEVQDHEWFUAADHUBUCWFVTWEWFVTVSKGZWEWFVSHTZVTWGUDAUEWHVTWGWHVTQ
      KVSWHKHTVTKVSGUFVSKUGUHUIUJULWFWEVSKWFVSKUMZWDRZCDOZWERWFWBWAILZBAPZCDOWI
      WKCBAUKWFWMWJCDWFWBDTZQZWMWCRZBAPWJWOWLWPBAWOWAATZQWAHTZWBHTZWLWPUNWFWQWR
      WNAHWAVCUOWNWSWFWQWBUPUQWRWSQWCWLWAWBURUSUTVAWCBAVBSVDVEWDCDVFSVGVHVIVJVK
      VQVRWEVMVSADIJDCBAVLCBAVNVOVP $.

    $( The supremum of a nonempty set of reals is greater than minus infinity.
       (Contributed by NM, 2-Feb-2006.) $)
    supxrgtmnf $p |- ( ( A C_ RR /\ A =/= (/) ) ->
                     -oo < sup ( A , RR* , < ) ) $=
      ( cr wss c0 wne wa cxr clt csup wcel cpnf wceq wo cmnf wn supxrbnd 3expia
      wbr con3d syl wb ressxr sstr mpan2 supxrcl adantr nltpnft sylibrd mnfltxr
      orrd ) ABCZADEZFZAGHIZBJZUNKLZMNUNHRUMUOUPUMUOOUNKHRZOZUPUMUQUOUKULUQUOAP
      QSUMUNGJZUPURUAUKUSULUKAGCZUSUKBGCUTUBABGUCUDAUETUFUNUGTUHUJUNUIT $.

    $( The supremum of a nonempty set of reals is real iff it is less than plus
       infinity.  (Contributed by NM, 5-Feb-2006.) $)
    supxrre1 $p |- ( ( A C_ RR /\ A =/= (/) ) ->
            ( sup ( A , RR* , < ) e. RR <-> sup ( A , RR* , < ) < +oo ) ) $=
      ( cr wss c0 wne wa cxr clt csup wcel cmnf wbr cpnf wb ressxr sstr supxrcl
      mpan2 xrrebnd 3syl adantr supxrgtmnf biantrurd bitr4d ) ABCZADEZFZAGHIZBJ
      ZKUHHLZUHMHLZFZUKUEUIULNZUFUEAGCZUHGJUMUEBGCUNOABGPRAQUHSTUAUGUJUKAUBUCUD
      $.

    $( The supremum of a nonempty set of reals is real iff it is not plus
       infinity.  (Contributed by NM, 5-Feb-2006.) $)
    supxrre2 $p |- ( ( A C_ RR /\ A =/= (/) ) ->
            ( sup ( A , RR* , < ) e. RR <-> sup ( A , RR* , < ) =/= +oo ) ) $=
      ( cr wss c0 wne wa cxr clt csup wcel cpnf supxrre1 wb wceq wn ressxr sstr
      wbr mpan2 supxrcl nltpnft 3syl necon2abid adantr bitrd ) ABCZADEZFAGHIZBJ
      UHKHRZUHKEZALUFUIUJMUGUFUIUHKUFAGCZUHGJUHKNUIOMUFBGCUKPABGQSATUHUAUBUCUDU
      E $.

    $( Smaller sets of extended reals have smaller suprema.  (Contributed by
       Mario Carneiro, 1-Apr-2015.) $)
    supxrss $p |- ( ( A C_ B /\ B C_ RR* ) ->
        sup ( A , RR* , < ) <_ sup ( B , RR* , < ) ) $=
      ( vx wss cxr wa clt csup cle wbr cv wral wcel simplr simpl sselda supxrub
      syl2anc ralrimiva wb sstr supxrcl adantl supxrleub mpbird ) ABDZBEDZFZAEG
      HBEGHZIJZCKZUIIJZCALZUHULCAUHUKAMZFUGUKBMULUFUGUNNUHABUKUFUGOPBUKQRSUHAED
      UIEMZUJUMTABEUAUGUOUFBUBUCCAUIUDRUE $.
  $}

  ${
    $d A x y z $.
    $( The infimum of an arbitrary set of extended reals is an extended real.
       (Contributed by NM, 19-Jan-2006.)  (Revised by AV, 5-Sep-2020.) $)
    infxrcl $p |- ( A C_ RR* -> inf ( A , RR* , < ) e. RR* ) $=
      ( vx vy vz cxr wss clt wor xrltso a1i xrinfmss infcl ) AEFZBCDEAGEGHMIJBC
      DAKL $.

    $( A member of a set of extended reals is greater than or equal to the
       set's infimum.  (Contributed by Mario Carneiro, 16-Mar-2014.)  (Revised
       by AV, 5-Sep-2020.) $)
    infxrlb $p |- ( ( A C_ RR* /\ B e. A )
                         -> inf ( A , RR* , < ) <_ B ) $=
      ( vx vy vz cxr wss wcel wa clt infxrcl adantr ssel2 wbr wn wor xrltso a1i
      cinf xrinfmss inflb imp xrnltled ) AFGZBAHZIAFJSZBUDUFFHUEAKLAFBMUDUEBUFJ
      NOUDCDEFABJFJPUDQRCDEATUAUBUC $.

    ${
      $d B x $.
      $( The infimum of a set of extended reals is greater than or equal to a
         lower bound.  (Contributed by Mario Carneiro, 16-Mar-2014.)  (Revised
         by AV, 5-Sep-2020.) $)
      infxrgelb $p |- ( ( A C_ RR* /\ B e. RR* ) ->
                     ( B <_ inf ( A , RR* , < ) <-> A. x e. A B <_ x ) ) $=
        ( vz vy cxr wss wcel wa clt cinf wbr wn cv wral cle wrex wor xrltso id
        xrinfmss infglbb notbid ralnex syl6bbr wb infxrcl xrlenlt syl2anr simpl
        a1i simplr sselda xrlenltd ralbidva 3bitr4d ) BFGZCFHZIZBFJKZCJLZMZANZC
        JLZMZABOZCUTPLZCVCPLZABOUSVBVDABQZMVFUSVAVIUQDEAFBCJFJRUQSUKDEABUAUQTUB
        UCVDABUDUEURURUTFHVGVBUFUQURTBUGCUTUHUIUSVHVEABUSVCBHZICVCUQURVJULUSBFV
        CUQURUJUMUNUOUP $.
    $}

    $( The real and extended real infima match when the real infimum exists.
       (Contributed by Mario Carneiro, 7-Sep-2014.)  (Revised by AV,
       5-Sep-2020.) $)
    infxrre $p |- ( ( A C_ RR /\ A =/= (/)
                          /\ E. x e. RR A. y e. A x <_ y ) ->
                  inf ( A , RR* , < ) = inf ( A , RR , < ) ) $=
      ( vz cr wss cv cle wbr wral cxr clt cinf wcel wb infxrgelb syl2anc adantr
      syl cmnf c0 wne wrex w3a simp1 ressxr syl6ss infxrcl infrecl rexrd xrleid
      wex simp2 n0 sylib wa sselda mnfxr a1i mnfltd leidd infregelb mpdan mpbid
      bitr4d xrltletrd infxrlb sylan xrre syl22anc exlimddv xrletrid ) CEFZCUAU
      BZAGZBGHIBCJAEUCZUDZCKLMZCELMZVQCKFZVRKNZVQCEKVMVNVPUEZUFUGZCUHSZVQVSABCU
      IZUJZVQVRVRHIZVRVSHIZVQWAWGWDVRUKSVQWGVRVOHIACJZWHVQVTWAWGWIOWCWDACVRPQVQ
      VRENZWHWIOVQDGZCNZWJDVQVNWLDULVMVNVPUMDCUNUOVQWLUPWAWKENTVRLIZVRWKHIZWJVQ
      WAWLWDRVQCEWKWBUQVQWMWLVQTVSVRTKNVQURUSWFWDVQVSWEUTVQVSVSHIZVSVRHIZVQVSWE
      VAVQWOVSVOHIACJZWPVQVSENWOWQOWEABACVSVBVCVQVTVSKNWPWQOWCWFACVSPQVEVDZVFRV
      QVTWLWNWCCWKVGVHVRWKVIVJVKABACVRVBVCVEVDWRVL $.
  $}

  $( The infinimum of a set of extended reals containing minus infinity is
     minus infinity.  (Contributed by Thierry Arnoux, 18-Feb-2018.)  (Revised
     by AV, 28-Sep-2020.) $)
  infxrmnf $p |- ( ( A C_ RR* /\ -oo e. A ) -> inf ( A , RR* , < ) = -oo ) $=
    ( cxr wss cmnf wcel clt cinf cle wbr wceq infxrlb infxrcl adantr xlemnf syl
    wa wb mpbid ) ABCZDAEZPZABFGZDHIZUBDJZADKUAUBBEZUCUDQSUETALMUBNOR $.

  ${
    $d y z $.
    $( The infimum of the empty set under the extended reals is positive
       infinity.  (Contributed by Mario Carneiro, 21-Apr-2015.)  (Revised by
       AV, 5-Sep-2020.) $)
    xrinf0 $p |- inf ( (/) , RR* , < ) = +oo $=
      ( vy vz c0 cxr clt cinf cpnf wceq wtru wor xrltso a1i wcel pnfxr wbr noel
      cv wn pm2.21i adantl wa wrex pnfnlt pm2.21d imp eqinfd trud ) CDEFGHIABDC
      GEDEJIKLGDMINLAQZCMZUHGEORZIUIUJUHPSTUHDMZGUHEOZUABQUHEOBCUBZIUKULUMUKULU
      MUHUCUDUETUFUG $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Larger sets of extended reals have smaller infima.  (Contributed by
       Glauco Siliprandi, 11-Dec-2019.)  (Revised by AV, 13-Sep-2020.) $)
    infxrss $p |- ( ( A C_ B /\ B C_ RR* )
                    -> inf ( B , RR* , < ) <_ inf ( A , RR* , < ) ) $=
      ( vx wss cxr wa clt cinf cle wbr cv wral wcel simplr simpl sselda infxrlb
      syl2anc ralrimiva wb sstr infxrcl adantl infxrgelb mpbird ) ABDZBEDZFZBEG
      HZAEGHIJZUICKZIJZCALZUHULCAUHUKAMZFUGUKBMULUFUGUNNUHABUKUFUGOPBUKQRSUHAED
      UIEMZUJUMTABEUAUGUOUFBUBUCCAUIUDRUE $.
  $}

  ${
    $d x y $.
    $( For all real numbers there is a smaller real number.  (Contributed by
       AV, 5-Sep-2020.) $)
    reltre $p |- A. x e. RR E. y e. RR y < x $=
      ( cv clt wbr cr wrex wcel c1 cmin co peano2rem wceq breq1 adantl rspcedvd
      wb ltm1 rgen ) BCZACZDEZBFGAFUAFHZUBUAIJKZUADEZBUDFUALTUDMUBUEQUCTUDUADNO
      UARPS $.

    $( For all positive real numbers there is a smaller positive real number.
       (Contributed by AV, 5-Sep-2020.) $)
    rpltrp $p |- A. x e. RR+ E. y e. RR+ y < x $=
      ( cv clt wbr crp wrex wcel c2 cdiv co rphalfcl wceq breq1 adantl rphalflt
      wb rspcedvd rgen ) BCZACZDEZBFGAFUAFHZUBUAIJKZUADEZBUDFUALTUDMUBUEQUCTUDU
      ADNOUAPRS $.

    $( For all extended real numbers not being minus infinity there is a
       smaller real number.  (Contributed by AV, 5-Sep-2020.) $)
    reltxrnmnf $p |- A. x e. RR* ( -oo < x -> E. y e. RR y < x ) $=
      ( cmnf cv clt wbr cr wrex wi cxr wcel cpnf wceq w3o elxr reltre rspec a1d
      cc0 breq2 0red wb breq1 adantl 0ltpnf mpbiri rspcedvd mnfxr pm2.21d ax-mp
      nltmnf syl6bi 3jaoi sylbi rgen ) CADZEFZBDZUPEFZBGHZIZAJUPJKUPGKZUPLMZUPC
      MZNVAUPOVBVAVCVDVBUTUQUTAGABPQRVCUTUQVCUSSUPEFZBSGVCUAURSMUSVEUBVCURSUPEU
      CUDVCVESLEFUEUPLSETUFUGRVDUQCCEFZUTUPCCETCJKZVFUTIUHVGVFUTCUKUIUJULUMUNUO
      $.
  $}

  ${
    $d x y z $.
    $( The infimum of the reals is minus infinity.  (Contributed by AV,
       5-Sep-2020.) $)
    infmremnf $p |- inf ( RR , RR* , < ) = -oo $=
      ( vx vz vy cmnf cv clt wbr cr wrex wi cxr wral cinf reltxrnmnf wor xrltso
      wceq a1i wcel breq2 mnfxr wn rexr nltmnf syl adantl rexbidv imbi12d rspcv
      wa weq com23 imp impcom eqinfd ax-mp ) DAEZFGZBEZUQFGZBHIZJZAKLZHKFMDQABN
      VCCBKHDFKFOVCPRDKSVCUARCEZHSZVDDFGUBZVCVEVDKSZVFVDUCVDUDUEUFVGDVDFGZUJVCU
      SVDFGZBHIZVGVHVCVJJVGVCVHVJVBVHVJJAVDKACUKZURVHVAVJUQVDDFTVKUTVIBHUQVDUSF
      TUGUHUIULUMUNUOUP $.

    $( The infimum of the positive reals is 0.  (Contributed by AV,
       5-Sep-2020.) $)
    infmrp1 $p |- inf ( RR+ , RR , < ) = 0 $=
      ( vy vx vz cv clt wbr crp wrex wral cr cinf cc0 wceq rpltrp wor ltso 0red
      a1i wcel wn rpre rpge0 lensymd adantl wa wi elrp weq breq2 rexbidv sylbir
      rspcv impcom eqinfd ax-mp ) ADZBDZEFZAGHZBGIZGJEKLMBANUTCAJGLEJEOUTPRUTQC
      DZGSZVALEFTUTVBLVAVBQVAUAVAUBUCUDVAJSLVAEFUEZUTUPVAEFZAGHZVCVBUTVEUFVAUGU
      SVEBVAGBCUHURVDAGUQVAUPEUIUJULUKUMUNUO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Real number intervals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c (,) $.
  $c (,] $.
  $c [,) $.
  $c [,] $.

  $( Extend class notation with the set of open intervals of extended reals. $)
  cioo $a class (,) $.

  $( Extend class notation with the set of open-below, closed-above intervals
     of extended reals. $)
  cioc $a class (,] $.

  $( Extend class notation with the set of closed-below, open-above intervals
     of extended reals. $)
  cico $a class [,) $.

  $( Extend class notation with the set of closed intervals of extended
     reals. $)
  cicc $a class [,] $.

  ${
    $d x y z $.
    $( Define the set of open intervals of extended reals.  (Contributed by NM,
       24-Dec-2006.) $)
    df-ioo $a |- (,) = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x < z /\ z < y ) } ) $.

    $( Define the set of open-below, closed-above intervals of extended reals.
       (Contributed by NM, 24-Dec-2006.) $)
    df-ioc $a |- (,] = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x < z /\ z <_ y ) } ) $.

    $( Define the set of closed-below, open-above intervals of extended reals.
       (Contributed by NM, 24-Dec-2006.) $)
    df-ico $a |- [,) = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x <_ z /\ z < y ) } ) $.

    $( Define the set of closed intervals of extended reals.  (Contributed by
       NM, 24-Dec-2006.) $)
    df-icc $a |- [,] = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x <_ z /\ z <_ y ) } ) $.
  $}

  ${
    $d w x y z A $.  $d w x y z C $.  $d w x y z D $.  $d w O $.  $d w Q $.
    $d w x y z B $.  $d w P $.  $d x y z R $.  $d x y z S $.  $d x y z T $.
    $d x y z U $.  $d w W $.  $d w X $.
    ixx.1 $e |- O = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x R z /\ z S y ) } ) $.
    $( Value of the interval function.  (Contributed by Mario Carneiro,
       3-Nov-2013.) $)
    ixxval $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A O B ) =
                 { z e. RR* | ( A R z /\ z S B ) } ) $=
      ( cxr cv wbr wa crab wceq breq1 anbi1d rabbidv breq2 anbi2d rabex ovmpt2
      xrex ) ABDEJJAKZCKZFLZUEBKZGLZMZCJNDUEFLZUEEGLZMZCJNHUJUHMZCJNUDDOZUIUMCJ
      UNUFUJUHUDDUEFPQRUGEOZUMULCJUOUHUKUJUGEUEGSTRIULCJUCUAUB $.

    $( Membership in an interval of extended reals.  (Contributed by Mario
       Carneiro, 3-Nov-2013.) $)
    elixx1 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. ( A O B ) <->
                 ( C e. RR* /\ A R C /\ C S B ) ) ) $=
      ( cxr wcel wa co cv wbr crab w3a ixxval eleq2d breq2 breq1 anbi12d 3anass
      wceq elrab bitr4i syl6bb ) DKLEKLMZFDEINZLFDCOZGPZUKEHPZMZCKQZLZFKLZDFGPZ
      FEHPZRZUIUJUOFABCDEGHIJSTUPUQURUSMZMUTUNVACFKUKFUEULURUMUSUKFDGUAUKFEHUBU
      CUFUQURUSUDUGUH $.

    $( The set of intervals of extended reals maps to subsets of extended
       reals.  (Contributed by FL, 14-Jun-2007.)  (Revised by Mario Carneiro,
       16-Nov-2013.) $)
    ixxf $p |- O : ( RR* X. RR* ) --> ~P RR* $=
      ( cv wbr wa cxr crab cpw wcel wral cxp wf wss ssrab2 xrex elpw2 rgen2w
      mpbir fmpt2 mpbi ) AHCHZDIUFBHEIJZCKLZKMZNZBKOAKOKKPUIFQUJABKKUJUHKRUGCKS
      UHKTUAUCUBABKKUHUIFGUDUE $.

    $( The set of intervals of extended reals exists.  (Contributed by Mario
       Carneiro, 3-Nov-2013.)  (Revised by Mario Carneiro, 17-Nov-2014.) $)
    ixxex $p |- O e. _V $=
      ( cxr cxp cpw xrex xpex pwex wf wss ixxf fssxp ax-mp ssexi ) FHHIZHJZIZTU
      AHHKKLHKMLTUAFNFUBOABCDEFGPTUAFQRS $.

    $( The set of intervals of extended reals maps to subsets of extended
       reals.  (Contributed by Mario Carneiro, 4-Jul-2014.) $)
    ixxssxr $p |- ( A O B ) C_ RR* $=
      ( co cxr cpw wcel wss cop cfv df-ov cxp ixxf 0elpw eqeltri ovex elpw mpbi
      f0cli ) DEHJZKLZMUFKNUFDEOZHPUGDEHQKKRUGUHHABCFGHISKTUEUAUFKDEHUBUCUD $.

    $( Membership in a set of open intervals of extended reals.  We use the
       fact that an operation's value is empty outside of its domain to show
       ` A e. RR* ` and ` B e. RR* ` .  (Contributed by Mario Carneiro,
       3-Nov-2013.) $)
    elixx3g $p |- ( C e. ( A O B ) <->
          ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\ ( A R C /\ C S B ) ) ) $=
      ( cxr wcel wa wbr w3a co anass df-3an bitrd c0 anbi1i wb elixx1 3anass wn
      ibar syl5bb cxp cpw ixxf fdmi ndmov eleq2d pm2.21i simpl pm5.21ni pm2.61i
      noel 3bitr4ri ) DKLZEKLZMZFKLZMZDFGNZFEHNZMZMVBVCVGMZMZUTVAVCOZVGMFDEIPZL
      ZVBVCVGQVJVDVGUTVAVCRUAVBVLVIUBVBVLVCVEVFOZVIABCDEFGHIJUCVMVHVBVIVCVEVFUD
      VBVHUFUGSVBUEZVLFTLZVIVNVKTFDEKIKKUHKUIIABCGHIJUJUKULUMVOVBVIVOVBFURUNVBV
      HUOUPSUQUS $.

    ${
      ixx.2 $e |- P = ( x e. RR* , y e. RR* |->
                       { z e. RR* | ( x T z /\ z U y ) } ) $.
      ixx.3 $e |- ( ( A e. RR* /\ w e. RR* ) -> ( A R w -> A T w ) ) $.
      ixx.4 $e |- ( ( w e. RR* /\ B e. RR* ) -> ( w S B -> w U B ) ) $.
      $( An interval is a subset of its closure.  (Contributed by Paul Chapman,
         18-Oct-2007.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
      ixxssixx $p |- ( A O B ) C_ ( A P B ) $=
        ( cxr wcel wa wbr co cv crab elmpt2cl w3a wi simp1 simpl 3simpa expimpd
        a1i syl2im simpr 3simpb ancoms 3jcad elixx1 3imtr4d mpcom ssriv ) DEFLU
        AZEFGUAZEQRZFQRZSZDUBZVARZVFVBRZABQQAUBCUBZHTVIBUBITSCQUCEFLVFMUDVEVFQR
        ZEVFHTZVFFITZUEZVJEVFJTZVFFKTZUEVGVHVEVMVJVNVOVMVJUFVEVJVKVLUGUKVEVCVMV
        JVKSVNVCVDUHVJVKVLUIVCVJVKVNOUJULVEVDVMVJVLSVOVCVDUMVJVKVLUNVDVJVLVOVJV
        DVLVOUFPUOUJULUPABCEFVFHILMUQABCEFVFJKGNUQURUSUT $.
    $}

    ${
      ixxun.2 $e |- P = ( x e. RR* , y e. RR* |->
                         { z e. RR* | ( x T z /\ z U y ) } ) $.
      ixxun.3 $e |- ( ( B e. RR* /\ w e. RR* ) -> ( B T w <-> -. w S B ) ) $.
      $( Split an interval into disjoint pieces.  (Contributed by Mario
         Carneiro, 16-Jun-2014.) $)
      ixxdisj $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
                      ( ( A O B ) i^i ( B P C ) ) = (/) ) $=
        ( cxr wcel c0 wbr w3a co cin wss wceq elin elixx1 3adant3 biimpa simp3d
        cv wa wb adantrr wn 3adant1 simp2d simpl2 simp1d syl2anc mpbid pm2.65da
        adantrl pm2.21d syl5bi ssrdv ss0 syl ) EQRZFQRZGQRZUAZEFMUBZFGHUBZUCZSU
        DVOSUEVLDVOSDUKZVORVPVMRZVPVNRZULZVLVPSRZVPVMVNUFVLVSVTVLVSVPFJTZVLVQWA
        VRVLVQULVPQRZEVPITZWAVLVQWBWCWAUAZVIVJVQWDUMVKABCEFVPIJMNUGUHUIUJUNVLVR
        WAUOZVQVLVRULZFVPKTZWEWFWBWGVPGLTZVLVRWBWGWHUAZVJVKVRWIUMVIABCFGVPKLHOU
        GUPUIZUQWFVJWBWGWEUMVIVJVKVRURWFWBWGWHWJUSPUTVAVCVBVDVEVFVOVGVH $.

      ixxun.4 $e |- Q = ( x e. RR* , y e. RR* |->
                         { z e. RR* | ( x R z /\ z U y ) } ) $.
      ixxun.5 $e |- ( ( w e. RR* /\ B e. RR* /\ C e. RR* ) ->
                      ( ( w S B /\ B X C ) -> w U C ) ) $.
      ixxun.6 $e |- ( ( A e. RR* /\ B e. RR* /\ w e. RR* ) ->
                      ( ( A W B /\ B T w ) -> A R w ) ) $.
      $( Split an interval into two parts.  (Contributed by Mario Carneiro,
         16-Jun-2014.) $)
      ixxun $p |- ( ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\
                      ( A W B /\ B X C ) ) ->
                    ( ( A O B ) u. ( B P C ) ) = ( A Q C ) ) $=
        ( cxr wcel w3a wbr wa co cun cv wo elun wb simpl1 simpl2 elixx1 syl2anc
        biimpa simp1d simp2d simp3d simplrr adantr simpl3 syl3anc mp2and jaodan
        wi 3jca simplrl biimpar syldan exmid df-3an syl6bb jca biantrurd bitr4d
        wn 3anan12 biantrud 3bitr2d orbi12d mpbiri impbida syl5bb eqrdv ) EUCUD
        ZFUCUDZGUCUDZUEZEFOUFZFGPUFZUGZUGZDEFNUHZFGHUHZUIZEGIUHZDUJZWRUDWTWPUDZ
        WTWQUDZUKZWOWTWSUDZWTWPWQULWOXCXDWOXCWTUCUDZEWTJUFZWTGMUFZUEZXDWOXAXHXB
        WOXAUGZXEXFXGXIXEXFWTFKUFZWOXAXEXFXJUEZWOWHWIXAXKUMWHWIWJWNUNZWHWIWJWNU
        OZABCEFWTJKNQUPUQZURZUSZXIXEXFXJXOUTXIXJWMXGXIXEXFXJXOVAWKWLWMXAVBXIXEW
        IWJXJWMUGXGVHXPWOWIXAXMVCWOWJXAWHWIWJWNVDZVCUAVEVFVIWOXBUGZXEXFXGXRXEFW
        TLUFZXGWOXBXEXSXGUEZWOWIWJXBXTUMXMXQABCFGWTLMHRUPUQZURZUSZXRWLXSXFWKWLW
        MXBVJXRXEXSXGYBUTXRWHWIXEWLXSUGXFVHWOWHXBXLVCWOWIXBXMVCYCUBVEVFXRXEXSXG
        YBVAVIVGWOXDXHWOWHWJXDXHUMXLXQABCEGWTJMITUPUQZVKVLWOXDUGZXCXJXJVSZUKXJV
        MYEXAXJXBYFYEXAXEXFUGZXJUGZXJWOXAYHUMXDWOXAXKYHXNXEXFXJVNVOVCYEYGXJYEXE
        XFYEXEXFXGWOXDXHYDURZUSZYEXEXFXGYIUTVPVQVRYEXBXSXEXGUGZUGZXSYFWOXBYLUMX
        DWOXBXTYLYAXEXSXGVTVOVCYEYKXSYEXEXGYJYEXEXFXGYIVAVPWAYEWIXEXSYFUMWOWIXD
        XMVCYJSUQWBWCWDWEWFWG $.
    $}

    ${
      ixxin.2 $e |- ( ( A e. RR* /\ C e. RR* /\ z e. RR* ) ->
        ( if ( A <_ C , C , A ) R z <-> ( A R z /\ C R z ) ) ) $.
      ixxin.3 $e |- ( ( z e. RR* /\ B e. RR* /\ D e. RR* ) ->
        ( z S if ( B <_ D , B , D ) <-> ( z S B /\ z S D ) ) ) $.
      $( Intersection of two intervals of extended reals.  (Contributed by
         Mario Carneiro, 3-Nov-2013.) $)
      ixxin $p |- ( ( ( A e. RR* /\ B e. RR* ) /\ ( C e. RR* /\ D e. RR* ) ) ->
          ( ( A O B ) i^i ( C O D ) ) =
            ( if ( A <_ C , C , A ) O if ( B <_ D , B , D ) ) ) $=
        ( cxr wcel wa co wbr crab ixxval cin cle cif cv inrab ineqan12d wceq wb
        3expa adantlr 3expb ancoms adantll anbi12d an4 syl6bbr rabbidva 3eqtr4a
        an4s ifcl syl2an eqtr4d ) DNOZENOZPZFNOZGNOZPZPZDEJQZFGJQZUAZDFUBRZFDUC
        ZCUDZHRZVOEGUBRZEGUCZIRZPZCNSZVNVRJQZVIDVOHRZVOEIRZPZCNSZFVOHRZVOGIRZPZ
        CNSZUAWEWIPZCNSZVLWAWEWICNUEVEVHVJWFVKWJABCDEHIJKTABCFGHIJKTUFVCVFVDVGW
        AWLUGVCVFPZVDVGPZPZVTWKCNWOVONOZPZVTWCWGPZWDWHPZPWKWQVPWRVSWSWMWPVPWRUH
        ZWNVCVFWPWTLUIUJWNWPVSWSUHZWMWPWNXAWPVDVGXAMUKULUMUNWCWDWGWHUOUPUQUSURV
        CVFVDVGWBWAUGZWMVNNOZVRNOXBWNVFVCXCVMFDNUTULVQEGNUTABCVNVRHIJKTVAUSVB
        $.
    $}

    ${
      ixxss1.2 $e |- P = ( x e. RR* , y e. RR* |->
                         { z e. RR* | ( x T z /\ z S y ) } ) $.
      ixxss1.3 $e |- ( ( A e. RR* /\ B e. RR* /\ w e. RR* ) ->
                       ( ( A W B /\ B T w ) -> A R w ) ) $.
      $( Subset relationship for intervals of extended reals.  (Contributed by
         Mario Carneiro, 3-Nov-2013.)  (Revised by Mario Carneiro,
         28-Apr-2015.) $)
      ixxss1 $p |- ( ( A e. RR* /\ A W B ) ->
                   ( B P C ) C_ ( A O C ) ) $=
        ( cxr wcel wbr wa co cv w3a elixx3g simplbi adantl simp3d simplr simpld
        simprbi wi simpll simp1d syl3anc mp2and simprd wb simp2d elixx1 syl2anc
        mpbir3and ex ssrdv ) EQRZEFMSZTZDFGHUAZEGLUAZVFDUBZVGRZVIVHRZVFVJTZVKVI
        QRZEVIISZVIGJSZVLFQRZGQRZVMVJVPVQVMUCZVFVJVRFVIKSZVOTZABCFGVIKJHOUDZUEU
        FZUGZVLVEVSVNVDVEVJUHVLVSVOVJVTVFVJVRVTWAUJUFZUIVLVDVPVMVEVSTVNUKVDVEVJ
        ULZVLVPVQVMWBUMWCPUNUOVLVSVOWDUPVLVDVQVKVMVNVOUCUQWEVLVPVQVMWBURABCEGVI
        IJLNUSUTVAVBVC $.
    $}

    ${
      ixxss2.2 $e |- P = ( x e. RR* , y e. RR* |->
                         { z e. RR* | ( x R z /\ z T y ) } ) $.
      ixxss2.3 $e |- ( ( w e. RR* /\ B e. RR* /\ C e. RR* ) ->
                       ( ( w T B /\ B W C ) -> w S C ) ) $.
      $( Subset relationship for intervals of extended reals.  (Contributed by
         Mario Carneiro, 3-Nov-2013.)  (Revised by Mario Carneiro,
         28-Apr-2015.) $)
      ixxss2 $p |- ( ( C e. RR* /\ B W C ) ->
                   ( A P B ) C_ ( A O C ) ) $=
        ( cxr wcel wbr wa co cv w3a elixx3g simplbi adantl simp3d simpld simprd
        simprbi simplr wi simp2d simpll syl3anc mp2and wb simp1d elixx1 syl2anc
        mpbir3and ex ssrdv ) GQRZFGMSZTZDEFHUAZEGLUAZVFDUBZVGRZVIVHRZVFVJTZVKVI
        QRZEVIISZVIGJSZVLEQRZFQRZVMVJVPVQVMUCZVFVJVRVNVIFKSZTZABCEFVIIKHOUDZUEU
        FZUGZVLVNVSVJVTVFVJVRVTWAUJUFZUHVLVSVEVOVLVNVSWDUIVDVEVJUKVLVMVQVDVSVET
        VOULWCVLVPVQVMWBUMVDVEVJUNZPUOUPVLVPVDVKVMVNVOUCUQVLVPVQVMWBURWEABCEGVI
        IJLNUSUTVAVBVC $.
    $}

    ${
      ixxss12.2 $e |- P = ( x e. RR* , y e. RR* |->
                         { z e. RR* | ( x T z /\ z U y ) } ) $.
      ixxss12.3 $e |- ( ( A e. RR* /\ C e. RR* /\ w e. RR* ) ->
                        ( ( A W C /\ C T w ) -> A R w ) ) $.
      ixxss12.4 $e |- ( ( w e. RR* /\ D e. RR* /\ B e. RR* ) ->
                        ( ( w U D /\ D X B ) -> w S B ) ) $.
      $( Subset relationship for intervals of extended reals.  (Contributed by
         Mario Carneiro, 20-Feb-2015.)  (Revised by Mario Carneiro,
         28-Apr-2015.) $)
      ixxss12 $p |- ( ( ( A e. RR* /\ B e. RR* ) /\ ( A W C /\ D X B ) ) ->
        ( C P D ) C_ ( A O B ) ) $=
        ( cxr wa wbr co cv elixx3g simplbi adantl simp3d simplrl simprbi simpld
        wcel w3a wi simplll simp1d syl3anc mp2and simprd simplrr simp2d simpllr
        wb elixx1 ad2antrr mpbir3and ex ssrdv ) EUAUMZFUAUMZUBZEGOUCZHFPUCZUBZU
        BZDGHIUDZEFNUDZVPDUEZVQUMZVSVRUMZVPVTUBZWAVSUAUMZEVSJUCZVSFKUCZWBGUAUMZ
        HUAUMZWCVTWFWGWCUNZVPVTWHGVSLUCZVSHMUCZUBZABCGHVSLMIRUFZUGUHZUIZWBVMWIW
        DVLVMVNVTUJWBWIWJVTWKVPVTWHWKWLUKUHZULWBVJWFWCVMWIUBWDUOVJVKVOVTUPWBWFW
        GWCWMUQWNSURUSWBWJVNWEWBWIWJWOUTVLVMVNVTVAWBWCWGVKWJVNUBWEUOWNWBWFWGWCW
        MVBVJVKVOVTVCTURUSVLWAWCWDWEUNVDVOVTABCEFVSJKNQVEVFVGVHVI $.
    $}

    ${
      ixxub.2 $e |- ( ( w e. RR* /\ B e. RR* ) -> ( w < B -> w S B ) ) $.
      ixxub.3 $e |- ( ( w e. RR* /\ B e. RR* ) -> ( w S B -> w <_ B ) ) $.
      ixxub.4 $e |- ( ( A e. RR* /\ w e. RR* ) -> ( A < w -> A R w ) ) $.
      ixxub.5 $e |- ( ( A e. RR* /\ w e. RR* ) -> ( A R w -> A <_ w ) ) $.
      $( Extract the upper bound of an interval.  (Contributed by Mario
         Carneiro, 17-Jun-2014.) $)
      ixxub $p |- ( ( A e. RR* /\ B e. RR* /\ ( A O B ) =/= (/) ) ->
                   sup ( ( A O B ) , RR* , < ) = B ) $=
        ( cxr wcel cle wbr syl2anc ad2antrr co c0 wne w3a clt csup wceq cv wral
        wa wb elixx1 3adant3 biimpa simp3d wi simp1d simp2 adantr mpd ralrimiva
        wss ex ssrdv supxrleub mpbird wn wrex simprl qre rexrd ad2antlr supxrcl
        cq simp1 syl wex simp3 n0 sylib simp2d supxrub sylan exlimddv xrlelttrd
        xrletrd simprr mpbir3and xrlenlt mpbid pm2.65da nrexdv qbtwnxr xrletri3
        3expia mtod mpbir2and ) EOPZFOPZEFIUAZUBUCZUDZWTOUEUFZFUGZXCFQRZFXCQRZX
        BXEDUHZFQRZDWTUIZXBXHDWTXBXGWTPZUJZXGFHRZXHXKXGOPZEXGGRZXLXBXJXMXNXLUDZ
        WRWSXJXOUKZXAABCEFXGGHIJULUMZUNZUOXKXMWSXLXHUPXKXMXNXLXRUQZXBWSXJWRWSXA
        URZUSLSUTVAXBWTOVBZWSXEXIUKXBDWTOXBXJXMXSVCVDZXTDWTFVESVFXBXFXCFUERZVGZ
        XBYCXCXGUERZXGFUERZUJZDVNVHZXBYGDVNXBXGVNPZUJZYGYEYJYEYFVIZYJYGUJZXGXCQ
        RZYEVGZYLYAXJYMXBYAYIYGYBTYLXJXMXNXLYIXMXBYGYIXGXGVJVKVLZYLEXGUERZXNYLE
        XCXGXBWRYIYGWRWSXAVOZTZXBXCOPZYIYGXBYAYSYBWTVMVPZTZYOXBEXCQRZYIYGXBXJUU
        BDXBXAXJDVQWRWSXAVRDWTVSVTXKEXGXCXBWRXJYQUSZXSXBYSXJYTUSXKXNEXGQRZXKXMX
        NXLXRWAXKWRXMXNUUDUPUUCXSNSUTXBYAXJYMYBWTXGWBZWCWFWDTYKWEYLWRXMYPXNUPYR
        YOMSUTYLYFXLYJYEYFWGYLXMWSYFXLUPYOXBWSYIYGXTTKSUTXBXPYIYGXQTWHUUESYLXMY
        SYMYNUKYOUUAXGXCWISWJWKWLXBYSWSYCYHUPYTXTYSWSYCYHDXCFWMWOSWPXBWSYSXFYDU
        KXTYTFXCWISVFXBYSWSXDXEXFUJUKYTXTXCFWNSWQ $.

      $( Extract the lower bound of an interval.  (Contributed by Mario
         Carneiro, 17-Jun-2014.)  (Revised by AV, 12-Sep-2020.) $)
      ixxlb $p |- ( ( A e. RR* /\ B e. RR* /\ ( A O B ) =/= (/) ) ->
                   inf ( ( A O B ) , RR* , < ) = A ) $=
        ( cxr wcel clt wbr cle syl2anc co c0 wne w3a cinf wss cv elixx1 3adant3
        wa wb biimpa simp1d ex ssrdv infxrcl syl simp1 wrex simprr ad2antrr qre
        cq wn rexrd ad2antlr simprl wi mpd simpll2 simp3 n0 sylib adantr simpl2
        wex infxrlb sylan simp3d exlimddv xrltletrd mpbir3and xrlenltd pm2.65da
        xrletrd mpbid nrexdv qbtwnxr 3expia mtod xrnltled wral simp2d ralrimiva
        infxrgelb mpbird xrletrid ) EOPZFOPZEFIUAZUBUCZUDZWTOQUEZEXBWTOUFZXCOPZ
        XBDWTOXBDUGZWTPZXFOPZXBXGUJZXHEXFGRZXFFHRZXBXGXHXJXKUDZWRWSXGXLUKZXAABC
        EFXFGHIJUHUIZULZUMZUNUOZWTUPUQZWRWSXAURZXBXCEXRXSXBEXCQRZEXFQRZXFXCQRZU
        JZDVCUSZXBYCDVCXBXFVCPZUJZYCYBYFYAYBUTZYFYCUJZXCXFSRZYBVDYHXDXGYIXBXDYE
        YCXQVAYHXGXHXJXKYEXHXBYCYEXFXFVBVEVFZYHYAXJYFYAYBVGYHWRXHYAXJVHXBWRYEYC
        XSVAYJMTVIYHXFFQRZXKYHXFXCFYJXBXEYEYCXRVAZWRWSXAYEYCVJZYGXBXCFSRZYEYCXB
        XGYNDXBXAXGDVPWRWSXAVKDWTVLVMXIXCXFFXBXEXGXRVNXPWRWSXAXGVOZXBXDXGYIXQWT
        XFVQZVRXIXKXFFSRZXIXHXJXKXOVSXIXHWSXKYQVHXPYOLTVIWEVTVAWAYHXHWSYKXKVHYJ
        YMKTVIXBXMYEYCXNVAWBYPTYHXCXFYLYJWCWFWDWGXBWRXEXTYDVHXSXRWRXEXTYDDEXCWH
        WITWJWKXBEXCSRZEXFSRZDWTWLZXBYSDWTXIXJYSXIXHXJXKXOWMXIWRXHXJYSVHXBWRXGX
        SVNXPNTVIWNXBXDWRYRYTUKXQXSDWTEWOTWPWQ $.
    $}
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z C $.  $d x y z D $.
    $( The set of open intervals of extended reals exists.  (Contributed by NM,
       6-Feb-2007.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    iooex $p |- (,) e. _V $=
      ( vx vy vz clt cioo df-ioo ixxex ) ABCDDEABCFG $.

    $( Value of the open interval function.  (Contributed by NM, 24-Dec-2006.)
       (Revised by Mario Carneiro, 3-Nov-2013.) $)
    iooval $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A (,) B ) =
                 { x e. RR* | ( A < x /\ x < B ) } ) $=
      ( vy vz clt cioo df-ioo ixxval ) DEABCFFGDEAHI $.

    $( An empty open interval of extended reals.  (Contributed by NM,
       6-Feb-2007.) $)
    ioo0 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( ( A (,) B ) = (/) <->
                 B <_ A ) ) $=
      ( vx cxr wcel wa cioo co c0 wceq cv clt wbr crab cle iooval wn wrex bitrd
      cq eqeq1d wne df-ne rabn0 bitr3i wi xrlttr 3com23 3expa rexlimdva qbtwnxr
      w3a qre rexrd anim1i reximi2 syl 3expia impbid syl5bb xrltnle con4bid ) A
      DEZBDEZFZABGHZIJACKZLMVGBLMFZCDNZIJZBAOMZVEVFVIICABPUAVEVJVKVEVJQZABLMZVK
      QVLVHCDRZVEVMVLVIIUBVNVIIUCVHCDUDUEVEVNVMVEVHVMCDVCVDVGDEZVHVMUFZVCVOVDVP
      AVGBUGUHUIUJVCVDVMVNVCVDVMULVHCTRVNCABUKVHVHCTDVGTEZVOVHVQVGVGUMUNUOUPUQU
      RUSUTABVASVBS $.

    $( An open interval of extended reals is nonempty iff the lower argument is
       less than the upper argument.  (Contributed by NM, 2-Mar-2007.) $)
    ioon0 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( ( A (,) B ) =/= (/) <->
                 A < B ) ) $=
      ( cxr wcel wa clt wbr cioo co c0 wceq cle wn wb xrlenlt ancoms necon1abid
      ioo0 bitr2d ) ACDZBCDZEZABFGZABHIZJUBUDJKBALGZUCMZABRUATUEUFNBAOPSQ $.

    $( The open interval function's value is empty outside of its domain.
       (Contributed by NM, 21-Jun-2007.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    ndmioo $p |- ( -. ( A e. RR* /\ B e. RR* ) -> ( A (,) B ) = (/) ) $=
      ( vx vy vz cxr cioo cxp cpw clt df-ioo ixxf fdmi ndmov ) ABFGFFHFIGCDEJJG
      CDEKLMN $.

    $( An open interval with identical lower and upper bounds is empty.
       (Contributed by NM, 21-Jun-2007.)  (Revised by Mario Carneiro,
       3-Nov-2013.) $)
    iooid $p |- ( A (,) A ) = (/) $=
      ( cxr wcel wa cioo co c0 wceq cle wbr xrleid adantr mpbird ndmioo pm2.61i
      ioo0 ) ABCZQDZAAEFGHZRSAAIJZQTQAKLAAPMAANO $.

    $( Membership in a set of open intervals of extended reals.  We use the
       fact that an operation's value is empty outside of its domain to show
       ` A e. RR* ` and ` B e. RR* ` .  (Contributed by NM, 24-Dec-2006.)
       (Revised by Mario Carneiro, 3-Nov-2013.) $)
    elioo3g $p |- ( C e. ( A (,) B ) <->
          ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\ ( A < C /\ C < B ) ) ) $=
      ( vx vy vz clt cioo df-ioo elixx3g ) DEFABCGGHDEFIJ $.

    $( A member of an open interval of reals is a real.  (Contributed by NM,
       17-Aug-2008.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    elioore $p |- ( A e. ( B (,) C ) -> A e. RR ) $=
      ( cioo co wcel cxr w3a clt wbr wa cr elioo3g 3ancomb xrre2 sylanb sylbi )
      ABCDEFBGFZCGFZAGFZHZBAIJACIJKZKALFZBCAMUARTSHUBUCRSTNBACOPQ $.

    $( An open interval does not contain its left endpoint.  (Contributed by
       Mario Carneiro, 29-Dec-2016.) $)
    lbioo $p |- -. A e. ( A (,) B ) $=
      ( cioo co wcel clt wbr cxr w3a wa elioo3g simprbi simpld wn simp3d xrltnr
      simplbi syl pm2.65i ) AABCDEZAAFGZTUAABFGZTAHEZBHEZUCIZUAUBJZABAKZLMTUCUA
      NTUCUDUCTUEUFUGQOAPRS $.

    $( An open interval does not contain its right endpoint.  (Contributed by
       Mario Carneiro, 29-Dec-2016.) $)
    ubioo $p |- -. B e. ( A (,) B ) $=
      ( cioo co wcel clt wbr cxr w3a wa elioo3g simprbi simprd wn simp2d xrltnr
      simplbi syl pm2.65i ) BABCDEZBBFGZTABFGZUATAHEZBHEZUDIZUBUAJZABBKZLMTUDUA
      NTUCUDUDTUEUFUGQOBPRS $.

    $( Value of the open interval function.  (Contributed by NM, 6-Feb-2007.)
       (Revised by Mario Carneiro, 3-Nov-2013.) $)
    iooval2 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A (,) B ) =
                 { x e. RR | ( A < x /\ x < B ) } ) $=
      ( cxr wcel wa cioo co cv clt wbr crab cr iooval cin inrab2 ressxr sseqin2
      wceq wss mpbi rabeq ax-mp eqtri elioore ssriv syl6eqssr df-ss sylib eqtrd
      syl5reqr ) BDECDEFZBCGHZBAIZJKUNCJKFZADLZUOAMLZABCNZULUQUPMOZUPUSUOADMOZL
      ZUQUOADMPUTMSZVAUQSMDTVBQMDRUAUOAUTMUBUCUDULUPMTUSUPSULUPUMMURAUMMUNBCUEU
      FUGUPMUHUIUKUJ $.

    $( Intersection of two open intervals of extended reals.  (Contributed by
       NM, 7-Feb-2007.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    iooin $p |- ( ( ( A e. RR* /\ B e. RR* ) /\ ( C e. RR* /\ D e. RR* ) ) ->
         ( ( A (,) B ) i^i ( C (,) D ) ) =
         ( if ( A <_ C , C , A ) (,) if ( B <_ D , B , D ) ) ) $=
      ( vx vy vz clt cioo df-ioo cv xrmaxlt xrltmin ixxin ) EFGABCDHHIEFGJACGKZ
      LOBDMN $.

    $( Subset relationship for open intervals of extended reals.  (Contributed
       by NM, 7-Feb-2007.)  (Revised by Mario Carneiro, 20-Feb-2015.) $)
    iooss1 $p |- ( ( A e. RR* /\ A <_ B ) ->
                 ( B (,) C ) C_ ( A (,) C ) ) $=
      ( vx vy vz vw cioo clt cle df-ioo cv xrlelttr ixxss1 ) DEFGABCHIIIHJDEFKZ
      OABGLMN $.

    $( Subset relationship for open intervals of extended reals.  (Contributed
       by NM, 7-Feb-2007.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    iooss2 $p |- ( ( C e. RR* /\ B <_ C ) ->
                 ( A (,) B ) C_ ( A (,) C ) ) $=
      ( vx vy vz vw cioo clt cle df-ioo cv xrltletr ixxss2 ) DEFGABCHIIIHJDEFKZ
      OGLBCMN $.

    $( Value of the open-below, closed-above interval function.  (Contributed
       by NM, 24-Dec-2006.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    iocval $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A (,] B ) =
                 { x e. RR* | ( A < x /\ x <_ B ) } ) $=
      ( vy vz clt cle cioc df-ioc ixxval ) DEABCFGHDEAIJ $.

    $( Value of the closed-below, open-above interval function.  (Contributed
       by NM, 24-Dec-2006.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    icoval $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A [,) B ) =
                 { x e. RR* | ( A <_ x /\ x < B ) } ) $=
      ( vy vz cle clt cico df-ico ixxval ) DEABCFGHDEAIJ $.

    $( Value of the closed interval function.  (Contributed by NM,
       24-Dec-2006.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    iccval $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A [,] B ) =
                 { x e. RR* | ( A <_ x /\ x <_ B ) } ) $=
      ( vy vz cle cicc df-icc ixxval ) DEABCFFGDEAHI $.

    $( Membership in an open interval of extended reals.  (Contributed by NM,
       24-Dec-2006.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    elioo1 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. ( A (,) B ) <->
                 ( C e. RR* /\ A < C /\ C < B ) ) ) $=
      ( vx vy vz clt cioo df-ioo elixx1 ) DEFABCGGHDEFIJ $.

    $( Membership in an open interval of extended reals.  (Contributed by NM,
       6-Feb-2007.) $)
    elioo2 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. ( A (,) B ) <->
                 ( C e. RR /\ A < C /\ C < B ) ) ) $=
      ( vx cxr wcel wa cioo co cv clt wbr cr crab w3a iooval2 eleq2d wceq breq2
      breq1 anbi12d elrab 3anass bitr4i syl6bb ) AEFBEFGZCABHIZFCADJZKLZUHBKLZG
      ZDMNZFZCMFZACKLZCBKLZOZUFUGULCDABPQUMUNUOUPGZGUQUKURDCMUHCRUIUOUJUPUHCAKS
      UHCBKTUAUBUNUOUPUCUDUE $.

    $( Membership in an open-below, closed-above interval of extended reals.
       (Contributed by NM, 24-Dec-2006.)  (Revised by Mario Carneiro,
       3-Nov-2013.) $)
    elioc1 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. ( A (,] B ) <->
                 ( C e. RR* /\ A < C /\ C <_ B ) ) ) $=
      ( vx vy vz clt cle cioc df-ioc elixx1 ) DEFABCGHIDEFJK $.

    $( Membership in a closed-below, open-above interval of extended reals.
       (Contributed by NM, 24-Dec-2006.)  (Revised by Mario Carneiro,
       3-Nov-2013.) $)
    elico1 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. ( A [,) B ) <->
                 ( C e. RR* /\ A <_ C /\ C < B ) ) ) $=
      ( vx vy vz cle clt cico df-ico elixx1 ) DEFABCGHIDEFJK $.

    $( Membership in a closed interval of extended reals.  (Contributed by NM,
       24-Dec-2006.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    elicc1 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. ( A [,] B ) <->
                 ( C e. RR* /\ A <_ C /\ C <_ B ) ) ) $=
      ( vx vy vz cle cicc df-icc elixx1 ) DEFABCGGHDEFIJ $.

    $( A closed interval with identical lower and upper bounds is a singleton.
       (Contributed by Jeff Hankins, 13-Jul-2009.) $)
    iccid $p |- ( A e. RR* -> ( A [,] A ) = { A } ) $=
      ( vx cxr wcel co csn cv cle wbr w3a wb wi wa clt wn xrlenlt ancoms sylbid
      cicc syl5ibrcom elicc1 anidms xrlttri3 biimprd expcomd com23 3impd eleq1a
      wceq ex xrleid breq2 breq1 3jcad impbid velsn syl6bbr bitrd eqrdv ) ACDZB
      AASEZAFZUTBGZVADZVCCDZAVCHIZVCAHIZJZVCVBDZUTVDVHKAAVCUAUBUTVHVCAUIZVIUTVH
      VJUTVEVFVGVJUTVEVFVGVJLZLUTVEMZVFVCANIOZVKAVCPVLVGVMVJVLVGAVCNIOZVMVJLVEU
      TVGVNKVCAPQVLVMVNVJVEUTVMVNMZVJLVEUTMVJVOVCAUCUDQUERUFRUJUGUTVJVEVFVGACVC
      UHUTVFVJAAHIZAUKZVCAAHULTUTVGVJVPVQVCAAHUMTUNUOBAUPUQURUS $.

    $( An empty open interval of extended reals.  (Contributed by FL,
       30-May-2014.) $)
    ico0 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( ( A [,) B ) = (/) <->
                 B <_ A ) ) $=
      ( vx cxr wcel wa cico co c0 wceq cv cle wbr clt crab wn wrex wi cq bitrd
      icoval eqeq1d wne df-ne rabn0 bitr3i xrlelttr 3expa rexlimdva w3a qbtwnxr
      3com23 qre rexrd a1i simpr1 simpl xrltle syl2anc anim1d anim12d ex adantr
      syl pm2.43b reximdv2 mpd 3expia impbid syl5bb xrltnle con4bid ) ADEZBDEZF
      ZABGHZIJACKZLMZVQBNMZFZCDOZIJZBALMZVOVPWAICABUAUBVOWBWCVOWBPZABNMZWCPWDVT
      CDQZVOWEWDWAIUCWFWAIUDVTCDUEUFVOWFWEVOVTWECDVMVNVQDEZVTWERZVMWGVNWHAVQBUG
      ULUHUIVMVNWEWFVMVNWEUJZAVQNMZVSFZCSQWFCABUKWIWKVTCSDWIVQSEZWKFZWGVTFZWLWI
      WMWNRZRZWKWLWGWPWLVQVQUMUNZWGWIWOWGWIFZWLWGWKVTWLWGRWRWQUOWRWJVRVSWRVMWGW
      JVRRWGVMVNWEUPWGWIUQAVQURUSUTVAVBVDVCVEVFVGVHVIVJABVKTVLT $.

    $( An empty open interval of extended reals.  (Contributed by FL,
       30-May-2014.) $)
    ioc0 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( ( A (,] B ) = (/) <->
                 B <_ A ) ) $=
      ( vx cxr wcel wa cioc co c0 wceq cv clt wbr cle crab wn wrex wi cq bitrd
      iocval eqeq1d wne df-ne rabn0 bitr3i xrltletr 3expa rexlimdva w3a qbtwnxr
      3com23 qre rexrd a1i xrltle 3ad2antr2 anim2d anim12d syl pm2.43b reximdv2
      ex adantr mpd 3expia impbid syl5bb xrltnle con4bid ) ADEZBDEZFZABGHZIJACK
      ZLMZVOBNMZFZCDOZIJZBANMZVMVNVSICABUAUBVMVTWAVMVTPZABLMZWAPWBVRCDQZVMWCWBV
      SIUCWDVSIUDVRCDUEUFVMWDWCVMVRWCCDVKVLVODEZVRWCRZVKWEVLWFAVOBUGULUHUIVKVLW
      CWDVKVLWCUJZVPVOBLMZFZCSQWDCABUKWGWIVRCSDWGVOSEZWIFZWEVRFZWJWGWKWLRZRZWIW
      JWEWNWJVOVOUMUNZWEWGWMWEWGFZWJWEWIVRWJWERWPWOUOWPWHVQVPWEVKVLWHVQRWCVOBUP
      UQURUSVCUTVDVAVBVEVFVGVHABVITVJT $.

    $( An empty closed interval of extended reals.  (Contributed by FL,
       30-May-2014.) $)
    icc0 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( ( A [,] B ) = (/) <->
                 B < A ) ) $=
      ( vx cxr wcel wa cicc co c0 wceq cv cle wbr crab iccval eqeq1d wrex bitrd
      clt wn wne df-ne rabn0 bitr3i wi xrletr 3com23 3expa rexlimdva w3a xrleid
      simp2 simp3 3ad2ant2 anbi12d rspcev syl12anc 3expia impbid syl5bb xrlenlt
      breq2 breq1 con4bid ) ADEZBDEZFZABGHZIJACKZLMZVIBLMZFZCDNZIJZBASMZVGVHVMI
      CABOPVGVNVOVGVNTZABLMZVOTVPVLCDQZVGVQVPVMIUAVRVMIUBVLCDUCUDVGVRVQVGVLVQCD
      VEVFVIDEZVLVQUEZVEVSVFVTAVIBUFUGUHUIVEVFVQVRVEVFVQUJVFVQBBLMZVRVEVFVQULVE
      VFVQUMVFVEWAVQBUKUNVLVQWAFCBDVIBJVJVQVKWAVIBALVBVIBBLVCUOUPUQURUSUTABVARV
      DR $.
  $}

  ${
    elicod.a $e |- ( ph -> A e. RR* ) $.
    elicod.b $e |- ( ph -> B e. RR* ) $.
    elicod.3 $e |- ( ph -> C e. RR* ) $.
    elicod.4 $e |- ( ph -> A <_ C ) $.
    elicod.5 $e |- ( ph -> C < B ) $.
    $( Membership in a left closed, right open interval.  (Contributed by
       Glauco Siliprandi, 11-Dec-2019.) $)
    elicod $p |- ( ph -> C e. ( A [,) B ) ) $=
      ( cico co wcel cxr cle wbr clt w3a wb elico1 syl2anc mpbir3and ) ADBCJKLZ
      DMLZBDNOZDCPOZGHIABMLCMLUBUCUDUEQREFBCDSTUA $.
  $}

  $( An element of a left closed right open interval is larger or equal to its
     lower bound.  (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
  icogelb $p |- ( ( A e. RR* /\ B e. RR* /\ C e. ( A [,) B ) ) -> A <_ C ) $=
    ( cxr wcel cico co cle wbr wa clt w3a elico1 simp2 syl6bi 3impia ) ADEZBDEZ
    CABFGEZACHIZQRJSCDEZTCBKIZLTABCMUATUBNOP $.

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( A member of a left closed, right open interval of reals is real.
       (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
    elicore $p |- ( ( A e. RR /\ C e. ( A [,) B ) ) -> C e. RR ) $=
      ( vx vy vz cr wcel cico co cxr cle wbr cpnf clt w3a simpld adantl simprd
      wa df-ico elixx3g biimpi simp3d simpl pnfxr a1i pnfge syl xrltletrd xrre3
      simp2d syl22anc ) AGHZCABIJHZTZCKHZUNACLMZCNOMCGHUOUQUNUOAKHZBKHZUQUOUSUT
      UQPZURCBOMZTZUOVAVCTDEFABCLOIDEFUAUBUCZQZUDRZUNUOUEUOURUNUOURVBUOVAVCVDSZ
      QRUPCBNVFUOUTUNUOUSUTUQVEULZRNKHUPUFUGUOVBUNUOURVBVGSRUOBNLMZUNUOUTVIVHBU
      HUIRUJCAUKUM $.
  $}

  $( The upper bound belongs to an open-below, closed-above interval.  See
     ~ ubicc2 .  (Contributed by FL, 29-May-2014.) $)
  ubioc1 $p |- ( ( A e. RR* /\ B e. RR* /\ A < B ) -> B e. ( A (,] B ) ) $=
    ( cxr wcel clt wbr w3a co cle simp2 simp3 xrleid 3ad2ant2 wb elioc1 3adant3
    cioc mpbir3and ) ACDZBCDZABEFZGBABQHDZTUABBIFZSTUAJSTUAKTSUCUABLMSTUBTUAUCG
    NUAABBOPR $.

  $( The lower bound belongs to a closed-below, open-above interval.  See
     ~ lbicc2 .  (Contributed by FL, 29-May-2014.) $)
  lbico1 $p |- ( ( A e. RR* /\ B e. RR* /\ A < B ) -> A e. ( A [,) B ) ) $=
    ( cxr wcel clt wbr w3a co cle simp1 xrleid 3ad2ant1 simp3 wb elico1 3adant3
    cico mpbir3and ) ACDZBCDZABEFZGAABQHDZSAAIFZUASTUAJSTUCUAAKLSTUAMSTUBSUCUAG
    NUAABAOPR $.

  $( An element of a closed interval is less than or equal to its upper bound.
     (Contributed by Jeff Hankins, 14-Jul-2009.) $)
  iccleub $p |- ( ( A e. RR* /\ B e. RR* /\ C e. ( A [,] B ) ) -> C <_ B ) $=
    ( cxr wcel cicc co cle wbr wa w3a elicc1 simp3 syl6bi 3impia ) ADEZBDEZCABF
    GEZCBHIZPQJRCDEZACHIZSKSABCLTUASMNO $.

  $( An element of a closed interval is more than or equal to its lower bound.
     (Contributed by Thierry Arnoux, 23-Dec-2016.) $)
  iccgelb $p |- ( ( A e. RR* /\ B e. RR* /\ C e. ( A [,] B ) ) -> A <_ C ) $=
    ( cxr wcel cicc co cle wbr wa w3a elicc1 biimpa simp2d 3impa ) ADEZBDEZCABF
    GEZACHIZPQJZRJCDEZSCBHIZTRUASUBKABCLMNO $.

  $( TODO - see if this shortens the uses of any other elioo*'s $)
  $( Membership in an open interval of extended reals.  (Contributed by NM,
     17-Aug-2008.) $)
  elioo5 $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* )
           -> ( C e. ( A (,) B ) <-> ( A < C /\ C < B ) ) ) $=
    ( cxr wcel w3a co clt wbr wa wb elioo1 3adant3 3anass baibr 3ad2ant3 bitr4d
    cioo ) ADEZBDEZCDEZFCABRGEZUAACHIZCBHIZFZUCUDJZSTUBUEKUAABCLMUASUFUEKTUEUAU
    FUAUCUDNOPQ $.

  $( A nonempty open interval spans an interval of extended reals.
     (Contributed by NM, 17-Aug-2008.) $)
  eliooxr $p |- ( A e. ( B (,) C ) -> ( B e. RR* /\ C e. RR* ) ) $=
    ( cioo co wcel c0 wne cxr wa ne0i ndmioo necon1ai syl ) ABCDEZFOGHBIFCIFJZO
    AKPOGBCLMN $.

  $( Ordering implied by a member of an open interval of reals.  (Contributed
     by NM, 17-Aug-2008.)  (Revised by Mario Carneiro, 9-May-2014.) $)
  eliooord $p |- ( A e. ( B (,) C ) -> ( B < A /\ A < C ) ) $=
    ( cioo co wcel cr clt wbr w3a wa cxr wb eliooxr elioo2 syl ibi 3simpc ) ABC
    DEFZAGFZBAHIZACHIZJZUAUBKSUCSBLFCLFKSUCMABCNBCAOPQTUAUBRP $.

  $( Membership in an open interval of extended reals.  (Contributed by NM,
     8-Jun-2007.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
  elioo4g $p |- ( C e. ( A (,) B ) <->
        ( ( A e. RR* /\ B e. RR* /\ C e. RR ) /\ ( A < C /\ C < B ) ) ) $=
    ( cioo co wcel cxr cr w3a clt wbr wa eliooxr elioore df-3an sylibr eliooord
    jca rexr 3anim3i anim1i elioo3g impbii ) CABDEFZAGFZBGFZCHFZIZACJKCBJKLZLZU
    DUHUIUDUEUFLZUGLUHUDUKUGCABMCABNRUEUFUGOPCABQRUJUEUFCGFZIZUILUDUHUMUIUGULUE
    UFCSTUAABCUBPUC $.

  ${
    $d x A $.  $d x B $.
    $( An open interval is a set of reals.  (Contributed by NM,
       31-May-2007.) $)
    ioossre $p |- ( A (,) B ) C_ RR $=
      ( vx cioo co cr cv elioore ssriv ) CABDEFCGABHI $.
  $}

  $( Membership in an open-below, closed-above real interval.  (Contributed by
     Paul Chapman, 30-Dec-2007.)  (Revised by Mario Carneiro, 14-Jun-2014.) $)
  elioc2 $p |- ( ( A e. RR* /\ B e. RR ) ->
      ( C e. ( A (,] B ) <-> ( C e. RR /\ A < C /\ C <_ B ) ) ) $=
    ( cxr wcel cr wa cioc clt wbr cle w3a rexr cmnf cpnf a1i xrlelttrd ad2antlr
    co wb elioc1 sylan2 mnfxr simpll simpr1 mnfle ad2antrr simpr2 pnfxr xrrebnd
    simpr3 ltpnf syl mpbir2and 3jca ex 3anim1i impbid1 bitrd ) ADEZBFEZGZCABHSE
    ZCDEZACIJZCBKJZLZCFEZVEVFLZVAUTBDEZVCVGTBMZABCUAUBVBVGVIVBVGVIVBVGGZVHVEVFV
    LVHNCIJZCOIJZVLNACNDEVLUCPUTVAVGUDVBVDVEVFUEZUTNAKJVAVGAUFUGVBVDVEVFUHZQVLC
    BOVOVAVJUTVGVKRODEVLUIPVBVDVEVFUKZVABOIJUTVGBULRQVLVDVHVMVNGTVOCUJUMUNVPVQU
    OUPVHVDVEVFCMUQURUS $.

  $( Membership in a closed-below, open-above real interval.  (Contributed by
     Paul Chapman, 21-Jan-2008.)  (Revised by Mario Carneiro, 14-Jun-2014.) $)
  elico2 $p |- ( ( A e. RR /\ B e. RR* ) ->
      ( C e. ( A [,) B ) <-> ( C e. RR /\ A <_ C /\ C < B ) ) ) $=
    ( cr wcel cxr wa cico cle wbr clt w3a rexr cmnf cpnf a1i ad2antrr xrltletrd
    co wb elico1 sylan mnfxr simpr1 mnflt simpr2 simplr simpr3 ad2antlr xrrebnd
    pnfxr pnfge syl mpbir2and 3jca ex 3anim1i impbid1 bitrd ) ADEZBFEZGZCABHSEZ
    CFEZACIJZCBKJZLZCDEZVEVFLZUTAFEZVAVCVGTAMZABCUAUBVBVGVIVBVGVIVBVGGZVHVEVFVL
    VHNCKJZCOKJZVLNACNFEVLUCPUTVJVAVGVKQVBVDVEVFUDZUTNAKJVAVGAUEQVBVDVEVFUFZRVL
    CBOVOUTVAVGUGOFEVLUKPVBVDVEVFUHZVABOIJUTVGBULUIRVLVDVHVMVNGTVOCUJUMUNVPVQUO
    UPVHVDVEVFCMUQURUS $.

  $( Membership in a closed real interval.  (Contributed by Paul Chapman,
     21-Sep-2007.)  (Revised by Mario Carneiro, 14-Jun-2014.) $)
  elicc2 $p |- ( ( A e. RR /\ B e. RR ) -> ( C e. ( A [,] B ) <->
                    ( C e. RR /\ A <_ C /\ C <_ B ) ) ) $=
    ( cr wcel wa cicc co cxr cle wbr w3a wb rexr cmnf clt a1i ad2antrr ad2antlr
    cpnf elicc1 syl2an mnfxr simpr1 mnflt simpr2 xrltletrd pnfxr simpr3 xrrebnd
    ltpnf xrlelttrd syl mpbir2and 3jca ex 3anim1i impbid1 bitrd ) ADEZBDEZFZCAB
    GHEZCIEZACJKZCBJKZLZCDEZVEVFLZUTAIEZBIEZVCVGMVAANZBNZABCUAUBVBVGVIVBVGVIVBV
    GFZVHVEVFVNVHOCPKZCTPKZVNOACOIEVNUCQUTVJVAVGVLRVBVDVEVFUDZUTOAPKVAVGAUERVBV
    DVEVFUFZUGVNCBTVQVAVKUTVGVMSTIEVNUHQVBVDVEVFUIZVABTPKUTVGBUKSULVNVDVHVOVPFM
    VQCUJUMUNVRVSUOUPVHVDVEVFCNUQURUS $.

  ${
    elicc2i.1 $e |- A e. RR $.
    elicc2i.2 $e |- B e. RR $.
    $( Inference for membership in a closed interval.  (Contributed by Scott
       Fenton, 3-Jun-2013.) $)
    elicc2i $p |- ( C e. ( A [,] B ) <-> ( C e. RR /\ A <_ C /\ C <_ B ) ) $=
      ( cr wcel cicc co cle wbr w3a wb elicc2 mp2an ) AFGBFGCABHIGCFGACJKCBJKLM
      DEABCNO $.
  $}

  $( Membership in a closed real interval.  (Contributed by Stefan O'Rear,
     16-Nov-2014.)  (Proof shortened by Mario Carneiro, 1-Jan-2017.) $)
  elicc4 $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
      ( C e. ( A [,] B ) <-> ( A <_ C /\ C <_ B ) ) ) $=
    ( cxr wcel cicc co cle wbr wa wb w3a elicc1 3anass syl6bb baibd 3impa ) ADE
    ZBDEZCDEZCABFGEZACHIZCBHIZJZKRSJZUATUDUEUATUBUCLTUDJABCMTUBUCNOPQ $.

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z C $.  $d w x y z D $.
    $( Condition for a closed interval to be a subset of another closed
       interval.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario
       Carneiro, 20-Feb-2015.) $)
    iccss $p |- ( ( ( A e. RR /\ B e. RR ) /\
                    ( A <_ C /\ D <_ B ) ) -> ( C [,] D ) C_ ( A [,] B ) ) $=
      ( vx vy vz vw cr wcel wa cxr cle wbr cicc co wss rexr anim12i xrletr cv
      df-icc ixxss12 sylan ) AIJZBIJZKALJZBLJZKACMNDBMNKCDOPABOPQUEUGUFUHARBRSE
      FGHABCDOMMMMOMMEFGUBZUIACHUAZTUJDBTUCUD $.

    $( Condition for a closed interval to be a subset of an open interval.
       (Contributed by Mario Carneiro, 20-Feb-2015.) $)
    iccssioo $p |- ( ( ( A e. RR* /\ B e. RR* ) /\
      ( A < C /\ D < B ) ) -> ( C [,] D ) C_ ( A (,) B ) ) $=
      ( vx vy vz vw cicc clt cle cioo df-ioo df-icc xrltletr xrlelttr ixxss12
      cv ) EFGHABCDIJJKKLJJEFGMEFGNACHRZOSDBPQ $.

    $( Condition for a closed-below, open-above interval to be a subset of a
       closed-below, open-above interval.  (Contributed by Thierry Arnoux,
       21-Sep-2017.) $)
    icossico $p |- ( ( ( A e. RR* /\ B e. RR* ) /\
      ( A <_ C /\ D <_ B ) ) -> ( C [,) D ) C_ ( A [,) B ) ) $=
      ( vx vy vz vw cico cle clt df-ico cv xrletr xrltletr ixxss12 ) EFGHABCDIJ
      KJKIJJEFGLZQACHMZNRDBOP $.

    $( Condition for a closed interval to be a subset of another closed
       interval.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario
       Carneiro, 28-Apr-2015.) $)
    iccss2 $p |- ( ( C e. ( A [,] B ) /\ D e. ( A [,] B ) ) ->
      ( C [,] D ) C_ ( A [,] B ) ) $=
      ( vx vy vz vw cicc co wcel cxr cle wbr w3a elixx3g adantr simprbi xrletr
      wa wss df-icc simplbi simp1d simp2d simpld simprd adantl ixxss12 syl22anc
      cv ) CABIJZKZDULKZTZALKZBLKZACMNZDBMNZCDIJULUAUOUPUQCLKZUMUPUQUTOZUNUMVAU
      RCBMNZTZEFGABCMMIEFGUBZPZUCQZUDUOUPUQUTVFUEUOURVBUMVCUNUMVAVCVERQUFUNUSUM
      UNADMNZUSUNUPUQDLKOVGUSTEFGABDMMIVDPRUGUHEFGHABCDIMMMMIMMVDVDACHUKZSVHDBS
      UIUJ $.

    $( Condition for a closed interval to be a subset of a half-open interval.
       (Contributed by Mario Carneiro, 9-Sep-2015.) $)
    iccssico $p |- ( ( ( A e. RR* /\ B e. RR* ) /\
      ( A <_ C /\ D < B ) ) -> ( C [,] D ) C_ ( A [,) B ) ) $=
      ( vx vy vz vw cicc cle clt cico df-ico df-icc cv xrletr xrlelttr ixxss12
      ) EFGHABCDIJKJJLJKEFGMEFGNACHOZPSDBQR $.

    $( Condition for a closed interval to be a subset of an open interval.
       (Contributed by Mario Carneiro, 20-Feb-2015.) $)
    iccssioo2 $p |- ( ( C e. ( A (,) B ) /\ D e. ( A (,) B ) ) ->
      ( C [,] D ) C_ ( A (,) B ) ) $=
      ( cioo co wcel wa cxr clt wbr cicc wss c0 wne ne0i adantr ndmioo necon1ai
      eliooord syl simpld adantl simprd iccssioo syl12anc ) CABEFZGZDUGGZHZAIGB
      IGHZACJKZDBJKZCDLFUGMUJUGNOZUKUHUNUIUGCPQUKUGNABRSUAUJULCBJKZUHULUOHUICAB
      TQUBUJADJKZUMUIUPUMHUHDABTUCUDABCDUEUF $.

    $( Condition for a closed interval to be a subset of a closed-below,
       open-above interval.  (Contributed by Mario Carneiro, 20-Feb-2015.) $)
    iccssico2 $p |- ( ( C e. ( A [,) B ) /\ D e. ( A [,) B ) ) ->
      ( C [,] D ) C_ ( A [,) B ) ) $=
      ( vx vy vz cico co wcel wa cxr cle wbr clt cv adantr w3a elixx3g simprbi
      cicc wss crab df-ico elmpt2cl1 elmpt2cl2 simpld simprd iccssico syl22anc
      adantl ) CABHIZJZDULJZKALJZBLJZACMNZDBONZCDUAIULUBUMUOUNEFLLEPGPZMNUSFPON
      KGLUCZABHCEFGUDZUEQUMUPUNEFLLUTABHCVAUFQUMUQUNUMUQCBONZUMUOUPCLJRUQVBKEFG
      ABCMOHVASTUGQUNURUMUNADMNZURUNUOUPDLJRVCURKEFGABDMOHVASTUHUKABCDUIUJ $.
  $}

  $( The open interval from minus to plus infinity.  (Contributed by NM,
     6-Feb-2007.) $)
  ioomax $p |- ( -oo (,) +oo ) = RR $=
    ( vx cmnf cpnf cioo co cv clt wbr wa crab cxr wcel wceq mnfxr pnfxr iooval2
    cr mp2an rabid2 mnflt ltpnf jca mprgbir eqtr4i ) BCDEZBAFZGHZUFCGHZIZAQJZQB
    KLCKLUEUJMNOABCPRQUJMUIAQUIAQSUFQLUGUHUFTUFUAUBUCUD $.

  $( The closed interval from minus to plus infinity.  (Contributed by Mario
     Carneiro, 4-Jul-2014.) $)
  iccmax $p |- ( -oo [,] +oo ) = RR* $=
    ( vx cmnf cpnf cicc co cv cle wbr wa cxr crab wcel mnfxr pnfxr iccval mp2an
    wceq rabid2 mnfle pnfge jca mprgbir eqtr4i ) BCDEZBAFZGHZUECGHZIZAJKZJBJLCJ
    LUDUIQMNABCOPJUIQUHAJUHAJRUEJLUFUGUESUETUAUBUC $.

  $( The set of positive reals expressed as an open interval.  (Contributed by
     NM, 7-May-2007.) $)
  ioopos $p |- ( 0 (,) +oo ) = { x e. RR | 0 < x } $=
    ( cc0 cpnf cioo co cv clt wbr wa crab cxr wcel wceq 0xr pnfxr iooval2 mp2an
    cr ltpnf biantrud rabbiia eqtr4i ) BCDEZBAFZGHZUDCGHZIZARJZUEARJBKLCKLUCUHM
    NOABCPQUEUGARUDRLUFUEUDSTUAUB $.

  $( The set of positive reals expressed as an open interval.  (Contributed by
     Steve Rodriguez, 25-Nov-2007.) $)
  ioorp $p |- ( 0 (,) +oo ) = RR+ $=
    ( vx cc0 cpnf cioo co cv clt wbr cr crab crp ioopos df-rp eqtr4i ) BCDEBAFG
    HAIJKALAMN $.

  $( Shift the arguments of the open interval function.  (Contributed by NM,
     17-Aug-2008.) $)
  iooshf $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) )
     -> ( ( A - B ) e. ( C (,) D ) <-> A e. ( ( C + B ) (,) ( D + B ) ) ) ) $=
    ( cr wcel wa caddc co clt wbr cioo wb 3expa cxr readdcl rexrd rexr ad2antrl
    elioo5 ltaddsub 3com13 adantrr w3a ltsubadd bicomd adantrl anbi12d ad2ant2l
    cmin ad2ant2rl syl3anc ancoms ad2antll resubcl adantr 3bitr4rd ) AEFZBEFZGZ
    CEFZDEFZGZGZCBHIZAJKZADBHIZJKZGZCABUJIZJKZVJDJKZGZAVEVGLIFZVJCDLIFZVDVFVKVH
    VLUTVAVFVKMZVBURUSVAVPVAUSURVPCBAUAUBNUCUTVBVHVLMZVAURUSVBVQURUSVBUDVLVHABD
    UEUFNUGUHVCUTVNVIMZVCUTGVEOFZVGOFZAOFZVRVAUSVSVBURVAUSGVECBPQUKVBUSVTVAURVB
    USGVGDBPQUIURWAVCUSARSVEVGATULUMVDCOFZDOFZVJOFZVOVMMVAWBUTVBCRSVBWCUTVADRUN
    UTWDVCUTVJABUOQUPCDVJTULUQ $.

  ${
    $d w x y z A $.  $d w x y z B $.
    $( A closed-above interval with real upper bound is a set of reals.
       (Contributed by FL, 29-May-2014.) $)
    iocssre $p |- ( ( A e. RR* /\ B e. RR ) -> ( A (,] B ) C_ RR ) $=
      ( vx cxr wcel cr wa cioc co cv w3a clt wbr cle elioc2 simp1d 3expia ssrdv
      biimp3a ) ADEZBFEZGCABHIZFTUACJZUBEZUCFEZTUAUDKUEAUCLMZUCBNMZTUAUDUEUFUGK
      ABUCOSPQR $.

    $( A closed-below interval with real lower bound is a set of reals.
       (Contributed by Mario Carneiro, 14-Jun-2014.) $)
    icossre $p |- ( ( A e. RR /\ B e. RR* ) -> ( A [,) B ) C_ RR ) $=
      ( vx cr wcel cxr wa cico co cv w3a cle wbr clt elico2 simp1d 3expia ssrdv
      biimp3a ) ADEZBFEZGCABHIZDTUACJZUBEZUCDEZTUAUDKUEAUCLMZUCBNMZTUAUDUEUFUGK
      ABUCOSPQR $.

    $( A closed real interval is a set of reals.  (Contributed by FL,
       6-Jun-2007.)  (Proof shortened by Paul Chapman, 21-Jan-2008.) $)
    iccssre $p |- ( ( A e. RR /\ B e. RR ) -> ( A [,] B ) C_ RR ) $=
      ( vx cr wcel wa cicc co cv w3a cle wbr elicc2 biimp3a simp1d 3expia ssrdv
      ) ADEZBDEZFCABGHZDRSCIZTEZUADEZRSUBJUCAUAKLZUABKLZRSUBUCUDUEJABUAMNOPQ $.

    $( A closed interval is a set of extended reals.  (Contributed by FL,
       28-Jul-2008.)  (Revised by Mario Carneiro, 4-Jul-2014.) $)
    iccssxr $p |- ( A [,] B ) C_ RR* $=
      ( vx vy vz cle cicc df-icc ixxssxr ) CDEABFFGCDEHI $.

    $( An open-below, closed-above interval is a subset of the extended reals.
       (Contributed by FL, 29-May-2014.)  (Revised by Mario Carneiro,
       4-Jul-2014.) $)
    iocssxr $p |- ( A (,] B ) C_ RR* $=
      ( vx vy vz clt cle cioc df-ioc ixxssxr ) CDEABFGHCDEIJ $.

    $( A closed-below, open-above interval is a subset of the extended reals.
       (Contributed by FL, 29-May-2014.)  (Revised by Mario Carneiro,
       4-Jul-2014.) $)
    icossxr $p |- ( A [,) B ) C_ RR* $=
      ( vx vy vz cle clt cico df-ico ixxssxr ) CDEABFGHCDEIJ $.

    $( An open interval is a subset of its closure.  (Contributed by Paul
       Chapman, 18-Oct-2007.) $)
    ioossicc $p |- ( A (,) B ) C_ ( A [,] B ) $=
      ( vx vy vz vw cicc clt cle cioo df-ioo df-icc cv xrltle ixxssixx ) CDEFAB
      GHHIIJCDEKCDELAFMZNPBNO $.
  $}

  ${
    $d a b w x A $.  $d a b w x B $.  $d a b w x C $.  $d a b w x D $.
    $( A closed-below, open-above interval is a subset of its closure.
       (Contributed by Thierry Arnoux, 25-Oct-2016.) $)
    icossicc $p |- ( A [,) B ) C_ ( A [,] B ) $=
      ( va vb vx vw cicc cle clt cico df-ico df-icc cxr wcel cv wa wbr ixxssixx
      idd xrltle ) CDEFABGHIHHJCDEKCDELAMNFOZMNPAUAHQSUABTR $.

    $( A closed-above, open-below interval is a subset of its closure.
       (Contributed by Thierry Arnoux, 1-Apr-2017.) $)
    iocssicc $p |- ( A (,] B ) C_ ( A [,] B ) $=
      ( va vb vx vw cicc clt cle cioc df-ioc df-icc cv xrltle cxr wcel ixxssixx
      wa wbr idd ) CDEFABGHIIIJCDEKCDELAFMZNUAOPBOPRUABISTQ $.

    $( An open interval is a subset of its closure-below.  (Contributed by
       Thierry Arnoux, 3-Mar-2017.) $)
    ioossico $p |- ( A (,) B ) C_ ( A [,) B ) $=
      ( va vb vx vw cico clt cle cioo df-ioo df-ico cv xrltle cxr wcel ixxssixx
      wa wbr idd ) CDEFABGHHIHJCDEKCDELAFMZNUAOPBOPRUABHSTQ $.

    $( Condition for a closed interval to be a subset of an open interval.
       (Contributed by Thierry Arnoux, 29-Mar-2017.) $)
    iocssioo $p |- ( ( ( A e. RR* /\ B e. RR* ) /\
      ( A <_ C /\ D < B ) ) -> ( C (,] D ) C_ ( A (,) B ) ) $=
      ( va vb vx vw cioc clt cle cioo df-ioo df-ioc cv xrlelttr ixxss12 ) EFGHA
      BCDIJJJKLKJEFGMEFGNACHOZPRDBPQ $.

    $( Condition for a closed interval to be a subset of an open interval.
       (Contributed by Thierry Arnoux, 29-Mar-2017.) $)
    icossioo $p |- ( ( ( A e. RR* /\ B e. RR* ) /\
      ( A < C /\ D <_ B ) ) -> ( C [,) D ) C_ ( A (,) B ) ) $=
      ( va vb vx vw cico clt cle cioo df-ioo df-ico cv xrltletr ixxss12 ) EFGHA
      BCDIJJKJLJKEFGMEFGNACHOZPRDBPQ $.

    $( Condition for an open interval to be a subset of an open interval.
       (Contributed by Thierry Arnoux, 26-Sep-2017.) $)
    ioossioo $p |- ( ( ( A e. RR* /\ B e. RR* ) /\
      ( A <_ C /\ D <_ B ) ) -> ( C (,) D ) C_ ( A (,) B ) ) $=
      ( va vb vx vw cioo clt cle df-ioo cv xrlelttr xrltletr ixxss12 ) EFGHABCD
      IJJJJIKKEFGLZQACHMZNRDBOP $.
  $}

  ${
    $d A y $.  $d B x y $.  $d S x y $.
    $( A nonempty subset of a closed real interval satisfies the conditions for
       the existence of its supremum (see ~ suprcl ).  (Contributed by Paul
       Chapman, 21-Jan-2008.) $)
    iccsupr $p |- ( ( ( A e. RR /\ B e. RR ) /\ S C_ ( A [,] B ) /\ C e. S ) ->
                   ( S C_ RR /\ S =/= (/) /\ E. x e. RR A. y e. S y <_ x ) ) $=
      ( cr wcel wa cicc co wss w3a c0 wne cv cle wbr wral 3adant3 iccssre sylan
      wrex sstr ancoms ne0i 3ad2ant3 simplr elicc2 biimpd sylan9r imp ralrimiva
      ssel simp3d wceq breq2 ralbidv rspcev syl2anc 3jca ) CGHZDGHZIZFCDJKZLZEF
      HZMFGLZFNOZBPZAPZQRZBFSZAGUCZVDVFVHVGVDVEGLZVFVHCDUAVFVOVHFVEGUDUEUBTVGVD
      VIVFFEUFUGVDVFVNVGVDVFIZVCVJDQRZBFSZVNVBVCVFUHVPVQBFVPVJFHZIVJGHZCVJQRZVQ
      VPVSVTWAVQMZVFVSVJVEHZVDWBFVEVJUNVDWCWBCDVJUIUJUKULUOUMVMVRADGVKDUPVLVQBF
      VKDVJQUQURUSUTTVA $.
  $}

  ${
    $d w x y z A $.  $d x B $.
    $( Membership in an unbounded interval of extended reals.  (Contributed by
       Mario Carneiro, 18-Jun-2014.) $)
    elioopnf $p |- ( A e. RR* ->
                     ( B e. ( A (,) +oo ) <-> ( B e. RR /\ A < B ) ) ) $=
      ( cxr wcel cpnf cioo co cr clt wbr w3a wa pnfxr elioo2 mpan2 df-3an ltpnf
      wb adantr pm4.71i bitr4i syl6bb ) ACDZBAEFGDZBHDZABIJZBEIJZKZUEUFLZUCECDU
      DUHRMAEBNOUHUIUGLUIUEUFUGPUIUGUEUGUFBQSTUAUB $.

    $( Membership in an unbounded interval of extended reals.  (Contributed by
       Mario Carneiro, 18-Jun-2014.) $)
    elioomnf $p |- ( A e. RR* ->
                     ( B e. ( -oo (,) A ) <-> ( B e. RR /\ B < A ) ) ) $=
      ( cxr wcel cmnf cioo co cr clt wbr w3a wa wb mnfxr elioo2 mpan an32 mnflt
      df-3an adantr pm4.71i 3bitr4i syl6bb ) ACDZBEAFGDZBHDZEBIJZBAIJZKZUFUHLZE
      CDUDUEUIMNEABOPUFUGLUHLUJUGLUIUJUFUGUHQUFUGUHSUJUGUFUGUHBRTUAUBUC $.

    $( Membership in a closed unbounded interval of reals.  (Contributed by
       Mario Carneiro, 16-Sep-2014.) $)
    elicopnf $p |- ( A e. RR ->
                     ( B e. ( A [,) +oo ) <-> ( B e. RR /\ A <_ B ) ) ) $=
      ( cr wcel cpnf cico co cle wbr clt w3a wa cxr wb pnfxr elico2 mpan2 ltpnf
      adantr pm4.71i df-3an bitr4i syl6bbr ) ACDZBAEFGDZBCDZABHIZBEJIZKZUFUGLZU
      DEMDUEUINOAEBPQUJUJUHLUIUJUHUFUHUGBRSTUFUGUHUAUBUC $.

    $( Two ways of saying that a real number is positive.  (Contributed by NM,
       7-May-2007.) $)
    repos $p |- ( A e. ( 0 (,) +oo ) <-> ( A e. RR /\ 0 < A ) ) $=
      ( vx cc0 cv clt wbr cr cpnf cioo co breq2 ioopos elrab2 ) CBDZEFCAEFBAGCH
      IJNACEKBLM $.

    $( The set of open intervals of extended reals maps to subsets of reals.
       (Contributed by NM, 7-Feb-2007.)  (Revised by Mario Carneiro,
       16-Nov-2013.) $)
    ioof $p |- (,) : ( RR* X. RR* ) --> ~P RR $=
      ( vx vz vy cv clt wbr wa cxr crab cr cpw wcel wral cxp cioo wf iooval wss
      co ioossre ovex elpw mpbir syl6eqelr rgen2a df-ioo fmpt2 mpbi ) ADZBDZEFU
      JCDZEFGBHIZJKZLZCHMAHMHHNUMOPUNACHUIHLUKHLGULUIUKOSZUMBUIUKQUOUMLUOJRUIUK
      TUOJUIUKOUAUBUCUDUEACHHULUMOACBUFUGUH $.

    $( The set of closed intervals of extended reals maps to subsets of
       extended reals.  (Contributed by FL, 14-Jun-2007.)  (Revised by Mario
       Carneiro, 3-Nov-2013.) $)
    iccf $p |- [,] : ( RR* X. RR* ) --> ~P RR* $=
      ( vx vy vz cle cicc df-icc ixxf ) ABCDDEABCFG $.

    $( The union of the range of the open interval function.  (Contributed by
       NM, 7-May-2007.)  (Revised by Mario Carneiro, 30-Jan-2014.) $)
    unirnioo $p |- RR = U. ran (,) $=
      ( cr cioo crn cuni wcel wss cmnf cpnf co ioomax cxr cxp wfn wf ioof ax-mp
      cpw ffn mnfxr pnfxr fnovrn mp3an eqeltrri elssuni frn sspwuni mpbi eqssi
      ) ABCZDZAUIEAUJFGHBIZAUIJBKKLZMZGKEHKEUKUIEULAQZBNZUMOULUNBRPSTKKGHBUAUBU
      CAUIUDPUIUNFZUJAFUOUPOULUNBUEPUIAUFUGUH $.

    $( Alternate definition of the set of open intervals of extended reals.
       (Contributed by NM, 1-Mar-2007.)  (Revised by Mario Carneiro,
       1-Sep-2015.) $)
    dfioo2 $p |- (,) = ( x e. RR* , y e. RR* |->
                         { w e. RR | ( x < w /\ w < y ) } ) $=
      ( cioo cxr cv co cmpt2 clt wbr wa cr crab cxp wfn wceq cpw wf ioof ffn
      ax-mp fnov mpbi iooval2 mpt2eq3ia eqtri ) DABEEAFZBFZDGZHZABEEUGCFZIJUKUH
      IJKCLMZHDEENZOZDUJPUMLQZDRUNSUMUODTUAABEEDUBUCABEEUIULCUGUHUDUEUF $.

    $( Open intervals are elements of the set of all open intervals.
       (Contributed by Mario Carneiro, 26-Mar-2015.) $)
    ioorebas $p |- ( A (,) B ) e. ran (,) $=
      ( vx cioo co crn wcel c0 wceq id cc0 iooid cxr cxp wfn cr cpw 0xr fnovrn
      wf ioof ffn ax-mp mp3an eqeltrri syl6eqel wne cv wex n0 wa eliooxr mp3an1
      syl exlimiv sylbi pm2.61ine ) ABDEZDFZGZURHURHIZURHUSVAJKKDEZHUSKLDMMNZOZ
      KMGZVEVBUSGVCPQZDTVDUAVCVFDUBUCZRRMMKKDSUDUEUFURHUGCUHZURGZCUIUTCURUJVIUT
      CVIAMGZBMGZUKUTVHABULVDVJVKUTVGMMABDSUMUNUOUPUQ $.
  $}

  $( An extended nonnegative real cannot be minus infinity.  (Contributed by
     Thierry Arnoux, 9-Jun-2017.) $)
  xrge0neqmnf $p |- ( A e. ( 0 [,] +oo ) -> A =/= -oo ) $=
    ( cc0 cpnf cicc co wcel cmnf wn wceq cle wbr cxr w3a clt mnflt0 mnfxr mp2an
    wb 0xr con3i xrltnle mpbi simp2 pnfxr elicc1 biimpi nelneq mpan2 neqned
    mp2b ) ABCDEZFZAGULGUKFZHZAGIHBGJKZHZGLFZUOGCJKZMZHUNGBNKZUPOUQBLFZUTUPRPSG
    BUAQUBUSUOUQUOURUCTUMUSUMUSVACLFUMUSRSUDBCGUEQUFTUJAGUKUGUHUI $.

  $( An extended real which is not a real is plus infinity.  (Contributed by
     Thierry Arnoux, 16-Oct-2017.) $)
  xrge0nre $p |- ( ( A e. ( 0 [,] +oo ) /\ -. A e. RR ) -> A = +oo ) $=
    ( cc0 cpnf cicc co wcel cr wceq cxr cmnf wne wo iccssxr xrge0neqmnf xrnemnf
    sseli wa biimpi syl2anc orcanai ) ABCDEZFZAGFZACHZUBAIFZAJKZUCUDLZUAIABCMPA
    NUEUFQUGAORST $.

  $( The predicate "is a nonnegative real".  (Contributed by Jeff Madsen,
     2-Sep-2009.)  (Proof shortened by Mario Carneiro, 18-Jun-2014.) $)
  elrege0 $p |- ( A e. ( 0 [,) +oo ) <-> ( A e. RR /\ 0 <_ A ) ) $=
    ( cc0 cr wcel cpnf cico co cle wbr wa wb 0re elicopnf ax-mp ) BCDABEFGDACDB
    AHIJKLBAMN $.

  $( A nonnegative integer is a nonnegative real number.  (Contributed by AV,
     24-May-2020.) $)
  nn0rp0 $p |- ( N e. NN0 -> N e. ( 0 [,) +oo ) ) $=
    ( cn0 wcel cr cc0 cle wbr cpnf cico co nn0re nn0ge0 elrege0 sylanbrc ) ABCA
    DCEAFGAEHIJCAKALAMN $.

  $( Nonnegative real numbers are real numbers.  (Contributed by Thierry
     Arnoux, 9-Sep-2018.)  (Proof shortened by AV, 8-Sep-2019.) $)
  rge0ssre $p |- ( 0 [,) +oo ) C_ RR $=
    ( vx cc0 cpnf cico co cr cv wcel cle wbr elrege0 simplbi ssriv ) ABCDEZFAGZ
    NHOFHBOIJOKLM $.

  $( Elementhood in the set of nonnegative extended reals.  (Contributed by
     Mario Carneiro, 28-Jun-2014.) $)
  elxrge0 $p |- ( A e. ( 0 [,] +oo ) <-> ( A e. RR* /\ 0 <_ A ) ) $=
    ( cxr wcel cc0 cle wbr cpnf w3a wa cicc co df-3an wb 0xr pnfxr elicc1 mp2an
    pnfge adantr pm4.71i 3bitr4i ) ABCZDAEFZAGEFZHZUBUCIZUDIADGJKCZUFUBUCUDLDBC
    GBCUGUEMNODGAPQUFUDUBUDUCARSTUA $.

  $( 0 is a member of ` ( 0 [,) +oo ) ` (common case).  (Contributed by David
     A. Wheeler, 8-Dec-2018.) $)
  0e0icopnf $p |- 0 e. ( 0 [,) +oo ) $=
    ( cc0 cpnf cico co wcel cr cle wbr 0re 0le0 elrege0 mpbir2an ) AABCDEAFEAAG
    HIJAKL $.

  $( 0 is a member of ` ( 0 [,] +oo ) ` (common case).  (Contributed by David
     A. Wheeler, 8-Dec-2018.) $)
  0e0iccpnf $p |- 0 e. ( 0 [,] +oo ) $=
    ( cc0 cpnf cicc co wcel cxr cle wbr 0xr 0le0 elxrge0 mpbir2an ) AABCDEAFEAA
    GHIJAKL $.

  $( The nonnegative reals are closed under addition.  (Contributed by Mario
     Carneiro, 19-Jun-2014.) $)
  ge0addcl $p |- ( ( A e. ( 0 [,) +oo ) /\ B e. ( 0 [,) +oo ) ) ->
                   ( A + B ) e. ( 0 [,) +oo ) ) $=
    ( cc0 cpnf cico co wcel cr cle wbr wa caddc elrege0 readdcl ad2ant2r addge0
    an4s sylanbrc syl2anb ) ACDEFZGAHGZCAIJZKZBHGZCBIJZKZABLFZTGZBTGAMBMUCUFKUG
    HGZCUGIJZUHUAUDUIUBUEABNOUAUDUBUEUJABPQUGMRS $.

  $( The nonnegative reals are closed under multiplication.  (Contributed by
     Mario Carneiro, 19-Jun-2014.) $)
  ge0mulcl $p |- ( ( A e. ( 0 [,) +oo ) /\ B e. ( 0 [,) +oo ) ) ->
                   ( A x. B ) e. ( 0 [,) +oo ) ) $=
    ( cc0 cpnf cico co wcel cr cle wbr wa cmul elrege0 ad2ant2r mulge0 sylanbrc
    remulcl syl2anb ) ACDEFZGAHGZCAIJZKZBHGZCBIJZKZABLFZSGZBSGAMBMUBUEKUFHGZCUF
    IJUGTUCUHUAUDABQNABOUFMPR $.

  $( The nonnegative reals are closed under addition.  (Contributed by Mario
     Carneiro, 26-Aug-2015.) $)
  ge0xaddcl $p |- ( ( A e. ( 0 [,] +oo ) /\ B e. ( 0 [,] +oo ) ) ->
                   ( A +e B ) e. ( 0 [,] +oo ) ) $=
    ( cc0 cpnf cicc co wcel cxr cle wbr wa cxad elxrge0 xaddcl ad2ant2r xaddge0
    an4s sylanbrc syl2anb ) ACDEFZGAHGZCAIJZKZBHGZCBIJZKZABLFZTGZBTGAMBMUCUFKUG
    HGZCUGIJZUHUAUDUIUBUEABNOUAUDUBUEUJABPQUGMRS $.

  $( The nonnegative extended reals are closed under multiplication.
     (Contributed by Mario Carneiro, 26-Aug-2015.) $)
  ge0xmulcl $p |- ( ( A e. ( 0 [,] +oo ) /\ B e. ( 0 [,] +oo ) ) ->
                   ( A *e B ) e. ( 0 [,] +oo ) ) $=
    ( cc0 cpnf cicc co wcel cxr cle wbr wa cxmu elxrge0 xmulcl ad2ant2r xmulge0
    sylanbrc syl2anb ) ACDEFZGAHGZCAIJZKZBHGZCBIJZKZABLFZSGZBSGAMBMUBUEKUFHGZCU
    FIJUGTUCUHUAUDABNOABPUFMQR $.

  $( The lower bound of a closed interval is a member of it.  (Contributed by
     Paul Chapman, 26-Nov-2007.)  (Revised by FL, 29-May-2014.)  (Revised by
     Mario Carneiro, 9-Sep-2015.) $)
  lbicc2 $p |- ( ( A e. RR* /\ B e. RR* /\ A <_ B ) -> A e. ( A [,] B ) ) $=
    ( cxr wcel cle wbr w3a cicc co simp1 xrleid 3ad2ant1 simp3 elicc1 mpbir3and
    wb 3adant3 ) ACDZBCDZABEFZGAABHIDZRAAEFZTRSTJRSUBTAKLRSTMRSUARUBTGPTABANQO
    $.

  $( The upper bound of a closed interval is a member of it.  (Contributed by
     Paul Chapman, 26-Nov-2007.)  (Revised by FL, 29-May-2014.) $)
  ubicc2 $p |- ( ( A e. RR* /\ B e. RR* /\ A <_ B ) -> B e. ( A [,] B ) ) $=
    ( cxr wcel cle wbr w3a cicc co simp2 simp3 xrleid 3ad2ant2 elicc1 mpbir3and
    wb 3adant3 ) ACDZBCDZABEFZGBABHIDZSTBBEFZRSTJRSTKSRUBTBLMRSUASTUBGPTABBNQO
    $.

  $( Zero is an element of the closed unit.  (Contributed by Scott Fenton,
     11-Jun-2013.) $)
  0elunit $p |- 0 e. ( 0 [,] 1 ) $=
    ( cc0 c1 cicc co wcel cr cle wbr 0re 0le0 0le1 1re elicc2i mpbir3an ) AABCD
    EAFEAAGHABGHIJKABAILMN $.

  $( One is an element of the closed unit.  (Contributed by Scott Fenton,
     11-Jun-2013.) $)
  1elunit $p |- 1 e. ( 0 [,] 1 ) $=
    ( c1 cc0 cicc co wcel cr cle wbr 1re 0le1 1le1 0re elicc2i mpbir3an ) ABACD
    EAFEBAGHAAGHIJKBAALIMN $.

  $( Membership in a negated open real interval.  (Contributed by Paul Chapman,
     26-Nov-2007.) $)
  iooneg $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                  ( C e. ( A (,) B ) <-> -u C e. ( -u B (,) -u A ) ) ) $=
    ( cr wcel w3a clt wbr wa cneg cioo co ltneg 3adant2 cxr rexr elioo5 renegcl
    wb syl3an ancoms 3adant1 anbi12d ancom syl6bb 3com12 3bitr4d ) ADEZBDEZCDEZ
    FZACGHZCBGHZIZBJZCJZGHZUPAJZGHZIZCABKLEZUPUOURKLEZUKUNUSUQIUTUKULUSUMUQUHUJ
    ULUSSUIACMNUIUJUMUQSZUHUJUIVCCBMUAUBUCUSUQUDUEUHAOEUIBOEUJCOEVAUNSAPBPCPABC
    QTUIUHUJVBUTSZUIUODEZUHURDEZUJUPDEZVDBRARCRVEUOOEVFUROEVGUPOEVDUOPURPUPPUOU
    RUPQTTUFUG $.

  $( Membership in a negated closed real interval.  (Contributed by Paul
     Chapman, 26-Nov-2007.) $)
  iccneg $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                  ( C e. ( A [,] B ) <-> -u C e. ( -u B [,] -u A ) ) ) $=
    ( cr wcel w3a cle wbr wa cneg cicc co renegcl anbi12d elicc2 3adant3 3anass
    wb leneg syl6bb ax-1 impbid2 3ad2ant3 ancom 3adant1 3adant2 syl5bbr syl2anr
    ancoms 3bitr4d ) ADEZBDEZCDEZFZUMACGHZCBGHZIZIZCJZDEZBJZUSGHZUSAJZGHZIZIZCA
    BKLEZUSVAVCKLEZUNUMUTUQVEUMUKUMUTRULUMUMUTCMUMUTUAUBUCUQUPUOIUNVEUPUOUDUNUP
    VBUOVDULUMUPVBRZUKUMULVICBSUIUEUKUMUOVDRULACSUFNUGNUNVGUMUOUPFZURUKULVGVJRU
    MABCOPUMUOUPQTUNVHUTVBVDFZVFUKULVHVKRZUMULVADEVCDEVLUKBMAMVAVCUSOUHPUTVBVDQ
    TUJ $.

  $( A shifted real is a member of a shifted, closed-below, open-above real
     interval.  (Contributed by Paul Chapman, 25-Mar-2008.) $)
  icoshft $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) -> ( X e. ( A [,) B ) ->
                  ( X + C ) e. ( ( A + C ) [,) ( B + C ) ) ) ) $=
    ( cr wcel w3a cico co cle wbr clt wa caddc wi cxr wb rexr elico2 readdcl
    sylan2 biimpd 3adant3 3anass syl6ib leadd1 3com12 3expib 3adant2 imp ltadd1
    com12 3adant1 anbi12d pm5.32da expcom syl6ibr 3ad2ant3 biimprd syl2anc syld
    anim1d sylbid ) AEFZBEFZCEFZGZDABHIFZDEFZADJKZDBLKZMZMZDCNIZACNIZBCNIZHIFZV
    GVHVIVJVKGZVMVDVEVHVROVFVDVEMVHVRVEVDBPFVHVRQBRABDSUAUBUCVIVJVKUDUEVGVMVIVO
    VNJKZVNVPLKZMZMZVQVGVIVLWAVGVIMVJVSVKVTVGVIVJVSQZVDVFVIWCOVEVIVDVFMWCVIVDVF
    WCVDVIVFWCADCUFUGUHULUIUJVGVIVKVTQZVEVFVIWDOVDVIVEVFMWDVIVEVFWDDBCUKUHULUMU
    JUNUOVGWBVNEFZVSVTGZVQVFVDWBWFOVEVFWBWEWAMWFVFVIWEWAVIVFWEDCTUPVBWEVSVTUDUQ
    URVGVOEFZVPEFZWFVQOVDVFWGVEACTUIVEVFWHVDBCTUMWGWHMVQWFWHWGVPPFVQWFQVPRVOVPV
    NSUAUSUTVAVCVA $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d y F $.
    icoshftf1o.1 $e |- F = ( x e. ( A [,) B ) |-> ( x + C ) ) $.
    $( Shifting a closed-below, open-above interval is one-to-one onto.
       (Contributed by Paul Chapman, 25-Mar-2008.)  (Proof shortened by Mario
       Carneiro, 1-Sep-2015.) $)
    icoshftf1o $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
        F : ( A [,) B ) -1-1-onto-> ( ( A + C ) [,) ( B + C ) ) ) $=
      ( vy cr wcel cv caddc co cico wral wceq wreu icoshft cmin recnd negsubd
      wf1o ralrimiv wa cneg wi readdcl 3adant2 3adant1 renegcl 3ad2ant3 syl3anc
      w3a imp cxr rexrd icossre syl2anc sselda simpl3 simp3 simp1 eqtrd oveq12d
      wss pncand simp2 adantr 3eltr3d reueq sylib simpll3 simpl1 subadd2d eqcom
      simpl2 3bitr4g reubidva mpbid ralrimiva f1ompt sylanbrc ) BHIZCHIZDHIZULZ
      AJZDKLZBDKLZCDKLZMLZIZABCMLZNGJZWGOZAWLPZGWJNWLWJEUAWEWKAWLBCDWFQUBWEWOGW
      JWEWMWJIZUCZWFWMDRLZOZAWLPZWOWQWRWLIWTWQWMDUDZKLZWHXAKLZWIXAKLZMLZWRWLWEW
      PXBXEIZWEWHHIZWIHIZXAHIZWPXFUEWBWDXGWCBDUFUGZWCWDXHWBCDUFUHZWDWBXIWCDUIUJ
      WHWIXAWMQUKUMWQWMDWQWMWEWJHWMWEXGWIUNIWJHVDXJWEWIXKUOWHWIUPUQURZSWQDWBWCW
      DWPUSSTWEXEWLOWPWEXCBXDCMWEXCWHDRLBWEWHDWEWHXJSWEDWBWCWDUTSZTWEBDWEBWBWCW
      DVASXMVEVBWEXDWIDRLCWEWIDWEWIXKSXMTWECDWECWBWCWDVFSXMVEVBVCVGVHAWLWRVIVJW
      QWSWNAWLWQWFWLIZUCZWRWFOWGWMOWSWNXOWMDWFXOWMWQWMHIXNXLVGSXODWBWCWDWPXNVKS
      XOWFWQWLHWFWQWBCUNIWLHVDWBWCWDWPVLWQCWBWCWDWPVOUOBCUPUQURSVMWFWRVNWMWGVNV
      PVQVRVSAGWLWJWGEFVTWA $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z C $.  $d w x y z D $.
    $( The union of end-to-end closed-below, open-above real intervals.
       (Contributed by Paul Chapman, 15-Mar-2008.)  (Proof shortened by Mario
       Carneiro, 16-Jun-2014.) $)
    icoun $p |- ( ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\
                    ( A <_ B /\ B <_ C ) ) ->
                  ( ( A [,) B ) u. ( B [,) C ) ) = ( A [,) C ) ) $=
      ( vx vy vz vw cico cle clt df-ico cv xrlenlt xrltletr xrletr ixxun ) DEFG
      ABCHHIJIJHIIDEFKZQBGLZMQRBCNABROP $.

    $( End-to-end closed-below, open-above real intervals are disjoint.
       (Contributed by Mario Carneiro, 16-Jun-2014.) $)
    icodisj $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
                    ( ( A [,) B ) i^i ( B [,) C ) ) = (/) ) $=
      ( vx cxr wcel w3a cico co cin c0 wss wceq wa clt wbr cle wb elico1 biimpa
      cv 3adant3 simp3d adantrr wn 3adant1 simp2d simpl2 simp1d xrlenlt syl2anc
      elin mpbid adantrl pm2.65da pm2.21d syl5bi ssrdv ss0 syl ) AEFZBEFZCEFZGZ
      ABHIZBCHIZJZKLVGKMVDDVGKDUAZVGFVHVEFZVHVFFZNZVDVHKFZVHVEVFULVDVKVLVDVKVHB
      OPZVDVIVMVJVDVINVHEFZAVHQPZVMVDVIVNVOVMGZVAVBVIVPRVCABVHSUBTUCUDVDVJVMUEZ
      VIVDVJNZBVHQPZVQVRVNVSVHCOPZVDVJVNVSVTGZVBVCVJWARVABCVHSUFTZUGVRVBVNVSVQR
      VAVBVCVJUHVRVNVSVTWBUIBVHUJUKUMUNUOUPUQURVGUSUT $.

    $( The closure of one end of an open real interval.  (Contributed by Paul
       Chapman, 15-Mar-2008.)  (Proof shortened by Mario Carneiro,
       16-Jun-2014.) $)
    snunioo $p |- ( ( A e. RR* /\ B e. RR* /\ A < B ) ->
                    ( { A } u. ( A (,) B ) ) = ( A [,) B ) ) $=
      ( vx vy vz vw cxr wcel clt wbr w3a cicc co cioo cun csn cico wceq syl cle
      simp1 iccid uneq1d simp2 xrleid simp3 df-icc df-ioo cv df-ico xrlelttr wi
      xrltnle xrltle 3adant1 adantld ixxun syl32anc eqtr3d ) AGHZBGHZABIJZKZAAL
      MZABNMZOZAPZVEOABQMZVCVDVGVEVCUTVDVGRUTVAVBUAZAUBSUCVCUTUTVAAATJZVBVFVHRV
      IVIUTVAVBUDVCUTVJVIAUESUTVAVBUFCDEFAABNQTTIILTICDEUGCDEUHAFUIZUMCDEUJVKAB
      UKUTUTVKGHZKAVKIJZAVKTJZVJUTVLVMVNULUTAVKUNUOUPUQURUS $.

    $( The closure of the open end of a right-open real interval.  (Contributed
       by Mario Carneiro, 16-Jun-2014.) $)
    snunico $p |- ( ( A e. RR* /\ B e. RR* /\ A <_ B ) ->
                    ( ( A [,) B ) u. { B } ) = ( A [,] B ) ) $=
      ( vx vy vz vw cxr wcel cle wbr w3a cico cicc cun csn wceq simp2 syl clt
      co iccid uneq2d simp1 xrleid df-ico df-icc xrlenlt xrltle 3adant3 adantrd
      simp3 cv wi xrletr ixxun syl32anc eqtr3d ) AGHZBGHZABIJZKZABLTZBBMTZNZVBB
      OZNABMTZVAVCVEVBVAUSVCVEPURUSUTQZBUARUBVAURUSUSUTBBIJZVDVFPURUSUTUCVGVGUR
      USUTUKVAUSVHVGBUDRCDEFABBMMISIILIICDEUECDEUFZBFULZUGVIVJGHZUSUSKVJBSJZVJB
      IJZVHVKUSVLVMUMUSVJBUHUIUJABVJUNUOUPUQ $.

    $( The closure of the open end of a left-open real interval.  (Contributed
       by Thierry Arnoux, 28-Mar-2017.) $)
    snunioc $p |- ( ( A e. RR* /\ B e. RR* /\ A <_ B ) ->
                    ( { A } u. ( A (,] B ) ) = ( A [,] B ) ) $=
      ( vx vy vz vw cxr wcel cle wbr w3a cicc co cioc cun csn wceq 3ad2ant1 clt
      wa iccid uneq1d simp1 simp2 xrleid df-icc df-ioc cv xrltnle xrletr simprr
      simp3 wi simpl1 simpl3 xrltle syl2anc mpd ex ixxun syl32anc eqtr3d ) AGHZ
      BGHZABIJZKZAALMZABNMZOZAPZVHOABLMZVFVGVJVHVCVDVGVJQVEAUARUBVFVCVCVDAAIJZV
      EVIVKQVCVDVEUCZVMVCVDVEUDVCVDVLVEAUERVCVDVEULCDEFAABNLIISILIICDEUFZCDEUGA
      FUHZUIVNVOABUJVCVCVOGHZKZVLAVOSJZTZAVOIJZVQVSTZVRVTVQVLVRUKWAVCVPVRVTUMVC
      VCVPVSUNVCVCVPVSUOAVOUPUQURUSUTVAVB $.

    $( The closure of an open real interval.  (Contributed by Paul Chapman,
       15-Mar-2008.)  (Proof shortened by Mario Carneiro, 16-Jun-2014.) $)
    prunioo $p |- ( ( A e. RR* /\ B e. RR* /\ A <_ B ) ->
                    ( ( A (,) B ) u. { A , B } ) = ( A [,] B ) ) $=
      ( cxr wcel cle wbr w3a cioo co cpr cun cicc wceq simp3 uncom syl5eq oveq2
      csn c0 syl5eqr clt wo wb xrleloe 3adant3 cico df-pr uneq2i eqtr4i snunioo
      wa unass uneq1d 3expa 3adantl3 snunico adantr eqtrd iccid 3ad2ant1 eqcomd
      ex un0 eqtri iooid dfsn2 preq2 uneq12d eqeq12d syl5ibcom jaod sylbid mpd
      ) ACDZBCDZABEFZGZVPABHIZABJZKZABLIZMZVNVOVPNVQVPABUAFZABMZUBZWBVNVOVPWEUC
      VPABUDUEVQWCWBWDVQWCWBVQWCUKVTABUFIZBRZKZWAVNVOWCVTWHMZVPVNVOWCWIVNVOWCGZ
      VTVRARZKZWGKZWHVTVRWKWGKZKWMVSWNVRABUGUHVRWKWGULUIWJWLWFWGWJWLWKVRKWFVRWK
      OABUJPUMPUNUOVQWHWAMWCABUPUQURVBVQWKAALIZMWDWBVQWOWKVNVOWOWKMVPAUSUTVAWDW
      KVTWOWAWDWKSWKKZVTWPWKSKWKSWKOWKVCVDWDSVRWKVSWDSAAHIVRAVEABAHQTWDWKAAJVSA
      VFABAVGPVHTABALQVIVJVKVLVM $.

    $( If the upper bound of one open interval is less than or equal to the
       lower bound of the other, the intervals are disjoint.  (Contributed by
       Jeff Hankins, 13-Jul-2009.) $)
    ioodisj $p |- ( ( ( ( A e. RR* /\ B e. RR* ) /\ ( C e. RR* /\ D e. RR* ) )
     /\ B <_ C ) -> ( ( A (,) B ) i^i ( C (,) D ) ) = (/) ) $=
      ( vx vy vz vw cxr wcel wa cle cioo co cin c0 wss wceq cicc syl wbr iooss1
      simpllr sylancom ioossicc syl6ss sslin simplll simplrr clt df-ioo xrlenlt
      df-icc cv ixxdisj syl3anc sseqtrd ss0 ) AIJZBIJZKZCIJZDIJZKZKZBCLUAZKZABM
      NZCDMNZOZPQVJPRVGVJVHBDSNZOZPVGVIVKQVJVLQVGVIBDMNZVKVEVFUTVIVMQUSUTVDVFUC
      ZBCDUBUDBDUEUFVIVKVHUGTVGUSUTVCVLPRUSUTVDVFUHVNVAVBVCVFUIEFGHABDSUJUJLLME
      FGUKEFGUMBHUNULUOUPUQVJURT $.

    $( Join two open intervals to create a third.  (Contributed by NM,
       11-Aug-2008.)  (Proof shortened by Mario Carneiro, 16-Jun-2014.) $)
    ioojoin $p |- ( ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\
                    ( A < B /\ B < C ) ) ->
                 ( ( ( A (,) B ) u. { B } ) u. ( B (,) C ) ) = ( A (,) C ) ) $=
      ( vx vy vz vw cxr wcel w3a clt wbr wa cioo co csn cun unass cico wceq cle
      snunioo 3expa 3adantl1 adantrl uneq2d df-ioo df-ico xrlttr xrltletr ixxun
      cv xrlenlt eqtrd syl5eq ) AHIZBHIZCHIZJZABKLZBCKLZMMZABNOZBPZQBCNOZQVCVDV
      EQZQZACNOZVCVDVERVBVGVCBCSOZQVHVBVFVIVCUSVAVFVITZUTUQURVAVJUPUQURVAVJBCUB
      UCUDUEUFDEFGABCSNKKUAKNKKDEFUGZDEFUHBGULZUMVKVLBCUIABVLUJUKUNUO $.

    $( The class difference of ` RR ` and a closed interval.  (Contributed by
       FL, 18-Jun-2007.) $)
    difreicc $p |- ( ( A e. RR /\ B e. RR ) -> ( RR \ ( A [,] B ) ) =
      ( ( -oo (,) A ) u. ( B (,) +oo ) ) ) $=
      ( cr wcel wa co cmnf cpnf wn cxr wbr w3a wb adantr wi adantl clt ad2antlr
      ex syl5bi vx cicc cdif cioo cun cv eldif wo cle rexr elicc1 syl2an notbid
      3anass notbii ianor pm2.24d mnflt simpr simpll ltnle bicomd syl2anc mnfxr
      biimpa ad3antrrr sylancr mpbir3and adantll ltpnf ad3antlr sylancl sylbird
      elioo1 pnfxr orim12d jaod sylbid expimpd elun syl6ibr ioossre unssi sseli
      elioo2 biimpd a1i com13 3impd xrltnle com3l com14 syl imp intnand sylnibr
      sylibr anim12i mpbird jca impbid syl5bb eqrdv ) ACDZBCDZEZUACABUBFZUCZGAU
      DFZBHUDFZUEZUAUFZXHDXLCDZXLXGDZIZEZXFXLXKDZXLCXGUGXFXPXQXFXPXLXIDZXLXJDZU
      HZXQXFXMXOXTXFXMEZXOXLJDZAXLUIKZXLBUIKZLZIZXTYAXNYEXFXNYEMZXMXDAJDZBJDZYG
      XEAUJZBUJZABXLUKZULNUMYFYBYCYDEZEZIZYAXTYEYNYBYCYDUNZUOYOYBIZYMIZUHYAXTYB
      YMUPYAYQXTYRXMYQXTOXFXMYBXTXLUJZUQPYRYCIZYDIZUHZYAXTYCYDUPZYAYTXRUUAXSYAY
      TXRYAYTEZXRYBGXLQKZXLAQKZXMYBXFYTYSRXMUUEXFYTXLURRYAYTUUFYAXMXDYTUUFMXFXM
      USXDXEXMUTXMXDEZUUFYTXLAVAZVBVCVEUUDGJDZYHXRYBUUEUUFLMVDXDYHXEXMYTYJVFGAX
      LVNVGVHSYAUUABXLQKZXSXEXMUUJUUAMXDBXLVAVIYAUUJXSYAUUJEZXSYBUUJXLHQKZXMYBX
      FUUJYSRYAUUJUSXMUULXFUUJXLVJRUUKYIHJDZXSYBUUJUULLZMZXEYIXDXMUUJYKVKVOBHXL
      VNZVLVHSVMVPTVQTTVRVSXLXIXJVTZWAXFXQXPXFXQEZXMXOXQXMXFXKCXLXIXJCGAWBBHWBW
      CWDPUURXOYFUURYNYEUURYMYBUURUUBYRXFXQUUBXQXTXFUUBUUQXFXRYTXSUUAXFXRXMUUEU
      UFLZYTXDXRUUSMZXEXDUUIYHUUTVDYJGAXLWEVGNXFXMUUEUUFYTXDXMUUEUUFYTOZOOXEUUE
      XMXDUVAXMXDUVAOOUUEXMXDUVAUUGUUFYTUUHWFSWGWHNWIVRXFXSUUNUUAXFYIUUMUUOXEYI
      XDYKPVOUUPVLXFYBUUJUULUUAXEYBUUJUULUUAOOOZXDXEYIUVBYKUULYBUUJYIUUAYBUUJYI
      UUAOOOUULYIYBUUJUUAYIYBUUJUUAOYIYBEUUJUUABXLWJWFSWKWGWLWMPWIVRVPTWNUUCWQW
      OYPWPUURYHYIEZXOYFMXFUVCXQXDYHXEYIYJYKWRNUVCXNYEYLUMWMWSWTSXAXBXC $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Split a closed interval into the union of two closed intervals.
       (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    iccsplit $p |- ( ( A e. RR /\ B e. RR /\ C e. ( A [,] B ) ) ->
                        ( A [,] B ) = ( ( A [,] C ) u. ( C [,] B ) ) ) $=
      ( cr wcel cicc co w3a cle wbr wa 3impia simp1 a1i simp2 3ad2ant3 3ad2ant2
      wi elicc2 wb vx cun cv wo clt simplr1 simplr2 simpr1 iccssre sseld adantr
      ltle syl2anc 3jca orcd simpr simplr3 olcd ltlecasei ex simp1r simp3 letrd
      imp 3exp sylbid 3jcad simp1l jaod impbid 3adant3 imdistani adantlr ancoms
      3impa adantll orbi12d syl 3bitr4d elun syl6bbr eqrdv ) ADEZBDEZCABFGZEZHZ
      UAWEACFGZCBFGZUBZWGUAUCZWEEZWKWHEZWKWIEZUDZWKWJEWGWKDEZAWKIJZWKBIJZHZWPWQ
      WKCIJZHZWPCWKIJZWRHZUDZWLWOWGWSXDWGWSXDWGWSKZXDWKCXEWKCUEJZKZXAXCXGWPWQWT
      WPWQWRWGXFUFWPWQWRWGXFUGXEXFWTXEWPCDEZXFWTRWGWPWQWRUHZWGXHWSWCWDWFXHWCWDK
      ZWEDCABUIUJZLUKZWKCULUMVDUNUOXEXBKZXCXAXMWPXBWRWPWQWRWGXBUFXEXBUPWPWQWRWG
      XBUQUNURXIXLUSUTWGXAWSXCWGXAWPWQWRXAWPRWGWPWQWTMZNXAWQRWGWPWQWTONWCWDWFXA
      WRRZXJWFXHACIJZCBIJZHZXOABCSZXJXRXAWRXJXRXAHWKCBXAXJWPXRXNPXRXJXHXAXHXPXQ
      MZQWCWDXRXAVAXAXJWTXRWPWQWTVBPXRXJXQXAXHXPXQVBQVCVEVFLVGWGXCWPWQWRXCWPRWG
      WPXBWRMZNWCWDWFXCWQRZXJWFXRYBXSXJXRXCWQXJXRXCHACWKWCWDXRXCVHXRXJXHXCXTQXC
      XJWPXRYAPXRXJXPXCXHXPXQOQXCXJXBXRWPXBWROPVCVEVFLXCWRRWGWPXBWRVBNVGVIVJWCW
      DWLWSTWFABWKSVKWGXJXHKZWOXDTWCWDWFYCXJWFXHXKVLVOYCWMXAWNXCWCXHWMXATWDACWK
      SVMWDXHWNXCTZWCXHWDYDCBWKSVNVPVQVRVSWKWHWIVTWAWB $.
  $}

  ${
    iccshftr.1 $e |- ( A + R ) = C $.
    iccshftr.2 $e |- ( B + R ) = D $.
    $( Membership in a shifted interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    iccshftr $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( X e. RR /\ R e. RR ) )
                  -> ( X e. ( A [,] B ) <-> ( X + R ) e. ( C [,] D ) ) ) $=
      ( cr wcel wa cle wbr w3a caddc co cicc wb readdcl leadd1 simpl 2thd 3expb
      adantl adantlr breq1i syl6bb an12s adantll breq2i 3anbi123d elicc2 adantr
      syl5eqelr syl2an anandirs adantrl 3bitr4d ) AIJZBIJZKZFIJZEIJZKZKZVBAFLMZ
      FBLMZNZFEOPZIJZCVILMZVIDLMZNZFABQPJZVICDQPJZVEVBVJVFVKVGVLVDVBVJRVAVDVBVJ
      VBVCUAFESUBUDVEVFAEOPZVILMZVKUSVDVFVQRZUTUSVBVCVRAFETUCUEVPCVILGUFUGVEVGV
      IBEOPZLMZVLUTVDVGVTRZUSVBUTVCWAVBUTVCWAFBETUCUHUIVSDVILHUJUGUKVAVNVHRVDAB
      FULUMVAVCVOVMRZVBUSUTVCWBUSVCKZCIJDIJWBUTVCKZWCCVPIGAESUNWDDVSIHBESUNCDVI
      ULUOUPUQUR $.
  $}

  ${
    iccshftri.1 $e |- A e. RR $.
    iccshftri.2 $e |- B e. RR $.
    iccshftri.3 $e |- R e. RR $.
    iccshftri.4 $e |- ( A + R ) = C $.
    iccshftri.5 $e |- ( B + R ) = D $.
    $( Membership in a shifted interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    iccshftri $p |- ( X e. ( A [,] B ) -> ( X + R ) e. ( C [,] D ) ) $=
      ( cr wcel cicc co caddc wss iccssre mp2an sseli wb iccshftr mpanl12 mpan2
      wa biimpd mpcom ) FLMZFABNOZMZFEPOCDNOMZUILFALMZBLMZUILQGHABRSTUHUJUKUHEL
      MZUJUKUAZIULUMUHUNUEUOGHABCDEFJKUBUCUDUFUG $.
  $}

  ${
    iccshftl.1 $e |- ( A - R ) = C $.
    iccshftl.2 $e |- ( B - R ) = D $.
    $( Membership in a shifted interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    iccshftl $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( X e. RR /\ R e. RR ) )
                  -> ( X e. ( A [,] B ) <-> ( X - R ) e. ( C [,] D ) ) ) $=
      ( cr wcel wa cle wbr w3a cmin co cicc wb resubcl lesub1 simpl 2thd adantl
      3expb adantlr breq1i syl6bb adantll breq2i 3anbi123d elicc2 adantr syl2an
      an12s syl5eqelr anandirs adantrl 3bitr4d ) AIJZBIJZKZFIJZEIJZKZKZVBAFLMZF
      BLMZNZFEOPZIJZCVILMZVIDLMZNZFABQPJZVICDQPJZVEVBVJVFVKVGVLVDVBVJRVAVDVBVJV
      BVCUAFESUBUCVEVFAEOPZVILMZVKUSVDVFVQRZUTUSVBVCVRAFETUDUEVPCVILGUFUGVEVGVI
      BEOPZLMZVLUTVDVGVTRZUSVBUTVCWAVBUTVCWAFBETUDUNUHVSDVILHUIUGUJVAVNVHRVDABF
      UKULVAVCVOVMRZVBUSUTVCWBUSVCKZCIJDIJWBUTVCKZWCCVPIGAESUOWDDVSIHBESUOCDVIU
      KUMUPUQUR $.
  $}

  ${
    iccshftli.1 $e |- A e. RR $.
    iccshftli.2 $e |- B e. RR $.
    iccshftli.3 $e |- R e. RR $.
    iccshftli.4 $e |- ( A - R ) = C $.
    iccshftli.5 $e |- ( B - R ) = D $.
    $( Membership in a shifted interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    iccshftli $p |- ( X e. ( A [,] B ) -> ( X - R ) e. ( C [,] D ) ) $=
      ( cr wcel cicc co cmin wss iccssre mp2an sseli wb iccshftl mpanl12 biimpd
      wa mpan2 mpcom ) FLMZFABNOZMZFEPOCDNOMZUILFALMZBLMZUILQGHABRSTUHUJUKUHELM
      ZUJUKUAZIULUMUHUNUEUOGHABCDEFJKUBUCUFUDUG $.
  $}

  ${
    iccdil.1 $e |- ( A x. R ) = C $.
    iccdil.2 $e |- ( B x. R ) = D $.
    $( Membership in a dilated interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    iccdil $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( X e. RR /\ R e. RR+ ) )
                  -> ( X e. ( A [,] B ) <-> ( X x. R ) e. ( C [,] D ) ) ) $=
      ( cr wcel wa cle wbr w3a cmul co cicc wb remulcl sylan2 simpl rpre adantl
      crp 2thd cc0 clt elrp lemul1 syl3an3b 3expb adantlr breq1i syl6bb adantll
      breq2i 3anbi123d elicc2 adantr syl5eqelr syl2an anandirs adantrl 3bitr4d
      an12s ) AIJZBIJZKZFIJZEUDJZKZKZVIAFLMZFBLMZNZFEOPZIJZCVPLMZVPDLMZNZFABQPJ
      ZVPCDQPJZVLVIVQVMVRVNVSVKVIVQRVHVKVIVQVIVJUAVJVIEIJZVQEUBZFESTUEUCVLVMAEO
      PZVPLMZVRVFVKVMWFRZVGVFVIVJWGVJVFVIWCUFEUGMKZWGEUHZAFEUIUJUKULWECVPLGUMUN
      VLVNVPBEOPZLMZVSVGVKVNWKRZVFVIVGVJWLVIVGVJWLVJVIVGWHWLWIFBEUIUJUKVEUOWJDV
      PLHUPUNUQVHWAVORVKABFURUSVHVJWBVTRZVIVJVHWCWMWDVFVGWCWMVFWCKZCIJDIJWMVGWC
      KZWNCWEIGAESUTWODWJIHBESUTCDVPURVAVBTVCVD $.
  $}

  ${
    iccdili.1 $e |- A e. RR $.
    iccdili.2 $e |- B e. RR $.
    iccdili.3 $e |- R e. RR+ $.
    iccdili.4 $e |- ( A x. R ) = C $.
    iccdili.5 $e |- ( B x. R ) = D $.
    $( Membership in a dilated interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    iccdili $p |- ( X e. ( A [,] B ) -> ( X x. R ) e. ( C [,] D ) ) $=
      ( cr wcel cicc co cmul wss iccssre mp2an sseli wb wa iccdil mpanl12 mpan2
      crp biimpd mpcom ) FLMZFABNOZMZFEPOCDNOMZUJLFALMZBLMZUJLQGHABRSTUIUKULUIE
      UFMZUKULUAZIUMUNUIUOUBUPGHABCDEFJKUCUDUEUGUH $.
  $}

  ${
    icccntr.1 $e |- ( A / R ) = C $.
    icccntr.2 $e |- ( B / R ) = D $.
    $( Membership in a contracted interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    icccntr $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( X e. RR /\ R e. RR+ ) )
                  -> ( X e. ( A [,] B ) <-> ( X / R ) e. ( C [,] D ) ) ) $=
      ( cr wcel wa cle wbr w3a cdiv co cicc wb rerpdivcl lediv1 crp 2thd adantl
      simpl cc0 clt elrp syl3an3b 3expb adantlr breq1i syl6bb adantll 3anbi123d
      an12s breq2i elicc2 adantr syl5eqelr syl2an anandirs adantrl 3bitr4d ) AI
      JZBIJZKZFIJZEUAJZKZKZVGAFLMZFBLMZNZFEOPZIJZCVNLMZVNDLMZNZFABQPJZVNCDQPJZV
      JVGVOVKVPVLVQVIVGVORVFVIVGVOVGVHUDFESUBUCVJVKAEOPZVNLMZVPVDVIVKWBRZVEVDVG
      VHWCVHVDVGEIJUEEUFMKZWCEUGZAFETUHUIUJWACVNLGUKULVJVLVNBEOPZLMZVQVEVIVLWGR
      ZVDVGVEVHWHVGVEVHWHVHVGVEWDWHWEFBETUHUIUOUMWFDVNLHUPULUNVFVSVMRVIABFUQURV
      FVHVTVRRZVGVDVEVHWIVDVHKZCIJDIJWIVEVHKZWJCWAIGAESUSWKDWFIHBESUSCDVNUQUTVA
      VBVC $.
  $}

  ${
    icccntri.1 $e |- A e. RR $.
    icccntri.2 $e |- B e. RR $.
    icccntri.3 $e |- R e. RR+ $.
    icccntri.4 $e |- ( A / R ) = C $.
    icccntri.5 $e |- ( B / R ) = D $.
    $( Membership in a contracted interval.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    icccntri $p |- ( X e. ( A [,] B ) -> ( X / R ) e. ( C [,] D ) ) $=
      ( cr wcel cicc co cdiv wss iccssre mp2an sseli crp icccntr mpanl12 biimpd
      wb wa mpan2 mpcom ) FLMZFABNOZMZFEPOCDNOMZUJLFALMZBLMZUJLQGHABRSTUIUKULUI
      EUAMZUKULUEZIUMUNUIUOUFUPGHABCDEFJKUBUCUGUDUH $.
  $}

  $( A condition for a ratio to be a member of the closed unit.  (Contributed
     by Scott Fenton, 11-Jun-2013.) $)
  divelunit $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 < B ) ) ->
      ( ( A / B ) e. ( 0 [,] 1 ) <-> A <_ B ) ) $=
    ( cdiv co cc0 c1 cicc wcel cr cle wbr wa clt w3a 0re 1re elicc2i bitri cmul
    df-3an ledivmul mp3an2 adantlr simpll simprl wne gt0ne0 adantl redivcld jca
    wb divge0 biantrurd cc recn ad2antrl mulid1d breq2d 3bitr3d syl5bb ) ABCDZE
    FGDHZVAIHZEVAJKZLZVAFJKZLZAIHZEAJKZLZBIHZEBMKZLZLZABJKZVBVCVDVFNVGEFVAOPQVC
    VDVFTRVNVFABFSDZJKZVGVOVHVMVFVQUKZVIVHFIHVMVRPAFBUAUBUCVNVEVFVNVCVDVNABVHVI
    VMUDVJVKVLUEVMBEUFVJBUGUHUIABULUJUMVNVPBAJVNBVKBUNHVJVLBUOUPUQURUSUT $.

  $( A linear combination of two reals which lies in the interval between them.
     (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario
     Carneiro, 8-Sep-2015.) $)
  lincmb01cmp $p |- ( ( ( A e. RR /\ B e. RR /\ A < B ) /\ T e. ( 0 [,] 1 ) )
                  -> ( ( ( 1 - T ) x. A ) + ( T x. B ) ) e. ( A [,] B ) ) $=
    ( cr wcel wbr cc0 c1 cicc co cmin cmul caddc wb 0re a1i 1re cle eqid recnd
    clt w3a wa simpr elicc2i simp1bi adantl difrp biimp3a adantr syl22anc mpbid
    crp iccdil simpl2 simpl1 resubcld mulid2d oveq12d eleqtrd remulcld iccshftr
    mul02d mulcld subadd23d subdid oveq1d resubcl sylancr addcomd subdird eqtrd
    1cnd oveq2d 3eqtr4d addid2d npcand 3eltr3d ) ADEZBDEZABUAFZUBZCGHIJEZUCZCBA
    KJZLJZAMJZGAMJZWEAMJZIJZHCKJZALJZCBLJZMJZABIJWDWFGWEIJZEZWGWJEZWDWFGWELJZHW
    ELJZIJZWOWDWCWFWTEZWBWCUDWDGDEZHDEZCDEZWEUMEZWCXANXBWDOPZXCWDQPWCXDWBWCXDGC
    RFCHRFGHCOQUEUFUGZWBXEWCVSVTWAXEABUHUIUJGHWRWSWECWRSWSSUNUKULWDWRGWSWEIWDWE
    WDWEWDBAVSVTWAWCUOZVSVTWAWCUPZUQZTZVCWDWEXKURUSUTWDXBWEDEWFDEVSWPWQNXFXJWDC
    WEXGXJVAXIGWEWHWIAWFWHSWISVBUKULWDWMCALJZKJZAMJWMAXLKJZMJZWGWNWDWMXLAWDCBWD
    CXGTZWDBXHTZVDZWDCAXPWDAXITZVDXSVEWDWFXMAMWDCBAXPXQXSVFVGWDWNWMWLMJXOWDWLWM
    WDWLWDWKAWDXCXDWKDEQXGHCVHVIXIVATXRVJWDWLXNWMMWDWLHALJZXLKJXNWDHCAWDVMXPXSV
    KWDXTAXLKWDAXSURVGVLVNVLVOWDWHAWIBIWDAXSVPWDBAXQXSVQUSVR $.

  ${
    $d x y A $.  $d x y B $.
    iccf1o.1 $e |- F = ( x e. ( 0 [,] 1 ) |->
      ( ( x x. B ) + ( ( 1 - x ) x. A ) ) ) $.
    $( Describe a bijection from ` [ 0 , 1 ] ` to an arbitrary nontrivial
       closed interval ` [ A , B ] ` .  (Contributed by Mario Carneiro,
       8-Sep-2015.) $)
    iccf1o $p |- ( ( A e. RR /\ B e. RR /\ A < B ) ->
      ( F : ( 0 [,] 1 ) -1-1-onto-> ( A [,] B ) /\ `' F =
        ( y e. ( A [,] B ) |-> ( ( y - A ) / ( B - A ) ) ) ) ) $=
      ( cr wcel wbr cc0 c1 cicc co cmul cmin caddc recnd cc wceq adantrl clt cv
      w3a cdiv wa cle 0re 1re elicc2i simp1bi adantl simpl2 mulcld ax-1cn subcl
      sylancr simpl1 addcomd lincmb01cmp eqeltrd simpr wb elicc2 3adant3 biimpa
      simp1d iccshftl syl22anc mpbid resubcld difrp biimp3a adantr rpcnd rpne0d
      eqid crp divcan1d mul02d subidd eqtr4d mulid2d oveq12d 3eltr4d rerpdivcld
      0red 1red iccdil mpbird eqcom adantrr wne divmul3d syl5bb remulcld syl6bb
      subadd2d subadd23d subdid oveq1d 1cnd subdird eqtrd oveq2d 3eqtr4d eqeq2d
      3bitrd f1ocnv2d ) CGHZDGHZCDUAIZUCZABJKLMZCDLMZAUBZDNMZKXOOMZCNMZPMZBUBZC
      OMZDCOMZUDMZEFXLXOXMHZUEZXSXRXPPMXNYEXPXRYEXODYEXOYDXOGHZXLYDYFJXOUFIXOKU
      FIJKXOUGUHUIUJUKZQZYEDXIXJXKYDULZQZUMZYEXQCYEKRHXORHZXQRHUNYHKXOUOUPYECXI
      XJXKYDUQZQZUMURCDXOUSUTXLXTXNHZUEZYCXMHZYCYBNMZJYBNMZKYBNMZLMZHZYPYACCOMZ
      YBLMZYRUUAYPYOYAUUDHZXLYOVAYPXIXJXTGHZXIYOUUEVBXIXJXKYOUQZXIXJXKYOULYPUUF
      CXTUFIZXTDUFIZXLYOUUFUUHUUIUCZXIXJYOUUJVBXKCDXTVCVDVEVFZUUGCDUUCYBCXTUUCV
      PYBVPVGVHVIYPYAYBYPYAYPXTCUUKUUGVJZQZYPYBXLYBVQHZYOXIXJXKUUNCDVKVLVMZVNZY
      PYBUUOVOZVRYPYSUUCYTYBLYPYSJUUCYPYBUUPVSYPCYPCUUGQZVTWAYPYBUUPWBWCWDYPJGH
      KGHYCGHUUNYQUUBVBYPWFYPWGYPYAYBUULUUOWEUUOJKYSYTYBYCYSVPYTVPWHVHWIXLYDYOU
      EUEZXOYCSZYAXOYBNMZSZXTUVACPMZSZXTXSSUUTYCXOSUUSUVBXOYCWJUUSYAXOYBXLYOYAR
      HYDUUMTXLYDYLYOYHWKXLYOYBRHYDUUPTXLYOYBJWLYDUUQTWMWNUUSUVBUVCXTSUVDUUSXTC
      UVAUUSXTXLYOUUFYDUUKTQXLYOCRHYDUURTUUSUVAXLYDUVAGHYOYEXOYBYGYEDCYIYMVJWOW
      KQWQUVCXTWJWPUUSUVCXSXTXLYDUVCXSSYOYEXPXOCNMZOMZCPMXPCUVEOMZPMUVCXSYEXPUV
      ECYKYEXOCYHYNUMYNWRYEUVAUVFCPYEXODCYHYJYNWSWTYEXRUVGXPPYEXRKCNMZUVEOMUVGY
      EKXOCYEXAYHYNXBYEUVHCUVEOYECYNWBWTXCXDXEWKXFXGXH $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Any nontrivial closed interval is equinumerous to the unit interval.
       (Contributed by Mario Carneiro, 26-Jul-2014.)  (Revised by Mario
       Carneiro, 8-Sep-2015.) $)
    iccen $p |- ( ( A e. RR /\ B e. RR /\ A < B ) ->
      ( 0 [,] 1 ) ~~ ( A [,] B ) ) $=
      ( vx vy cr wcel clt wbr w3a cc0 c1 cicc co cmul cmin caddc cmpt cvv ovex
      cv wf1o cen ccnv cdiv wceq eqid iccf1o simpld f1oen2g mp3an12 syl ) AEFBE
      FABGHIZJKLMZABLMZCUMCTZBNMKUOOMANMPMQZUAZUMUNUBHZULUQUPUCDUNDTAOMBAOMUDMQ
      UECDABUPUPUFUGUHUMRFUNRFUQURJKLSABLSUMUNUPRRUIUJUK $.
  $}

  ${
    xov1plusxeqvd.1 $e |- ( ph -> X e. CC ) $.
    xov1plusxeqvd.2 $e |- ( ph -> X =/= -u 1 ) $.
    $( A complex number ` X ` is positive real iff ` X / ( 1 + X ) ` is in
       ` ( 0 (,) 1 ) ` .  Deduction form.  (Contributed by David Moews,
       28-Feb-2017.) $)
    xov1plusxeqvd $p |- ( ph -> ( X e. RR+ <->
                              ( X / ( 1 + X ) ) e. ( 0 (,) 1 ) ) ) $=
      ( crp wcel c1 caddc co cdiv cc0 wa cr clt wbr cmin oveq1d adantr syl5eqbr
      wceq cioo simpr rpred 1rp rpaddcld rerpdivcld rprecred 1red 0red readdcld
      ltaddrpd recgt1i syl2anc simprd 1m0e1 syl6breqr ltsub13d 1cnd addcld cneg
      a1i negcld addneintrd 1pneg1e0 neeqtrd divsubdird pncan2d dividd breqtrrd
      3eqtr3d 1m1e0 simpld ltsub23d eqbrtrd cxr w3a wb 0xr 1re elioo2 syl3anbrc
      rexri mp2an wne recrecd pncand sylib simp1d resubcld eqeltrd simp3d elrpd
      cc eqeltrrd 1p0e1 simp2d reclt1d mpbid breqtrd ltadd2d mpbird impbida ) A
      BEFZBGBHIZJIZKGUAIFZAXCLZXEMFZKXENOZXEGNOZXFXGBXDXGBAXCUBZUCZXGGBGEFXGUDV
      AXKUEZUFXGKGGXDJIZPIZXENXGXNGKXGXDXMUGZXGUHZXGUIXGXNGGKPIZNXGKXNNOZXNGNOZ
      XGXDMFGXDNOXSXTLXGGBXQXLUJXGGBXQXKUKXDULUMZUNUOUPUQAXEXOTXCAXDGPIZXDJIXDX
      DJIZXNPIXEXOAXDGXDAGBAURZCUSZYDYEAXDGGUTZHIZKAGBYFYDCAGYDVBDVCYGKTAVDVAVE
      ZVFAYBBXDJAGBYDCVGZQAYCGXNPAXDYEYHVHZQVJRZVIXGXEXOGNYKXGGGXNXQXQXPXGGGPIZ
      KXNNVKXGXSXTYAVLSVMVNKVOFGVOFXFXHXIXJVPZVQVRGVSWBKGXEVTWCZWAAXFLZBYOYBBMA
      YBBTXFYIRYOXDGYOGXNJIZXDMYOXDAXDWMFXFYERAXDKWDXFYHRWEZYOXNYOXNYOXNGXEPIZM
      AXNYRTXFAXDBPIZXDJIYCXEPIXNYRAXDBXDYECYEYHVFAYSGXDJAGBYDCWFQAYCGXEPYJQVJR
      ZYOGXEYOUHZYOXHXIXJYOXFYMAXFUBYNWGZWHZWIWJYOKYRXNNYOXEGKUUCUUAYOUIZYOXEGX
      RNYOXHXIXJUUBWKUOUPUQYTVIWLZUGWNUUAWIWNZYOKBNOGKHIZXDNOYOUUGGXDNWOYOGYPXD
      NYOXTGYPNOYOXNYRGNYTYOGGXEUUAUUAUUCYOYLKXENVKYOXHXIXJUUBWPSVMVNYOXNUUEWQW
      RYQWSSYOKBGUUDUUFUUAWTXAWLXB $.
  $}

  $( ` ( 0 [,] 1 ) ` is a subset of the reals.  (Contributed by David Moews,
     28-Feb-2017.) $)
  unitssre $p |- ( 0 [,] 1 ) C_ RR $=
    ( cc0 cr wcel c1 cicc co wss 0re 1re iccssre mp2an ) ABCDBCADEFBGHIADJK $.

  ${
    $d A x y $.  $d B x $.  $d C x y $.  $d ph x $.
    supicc.1 $e |- ( ph -> B e. RR ) $.
    supicc.2 $e |- ( ph -> C e. RR ) $.
    supicc.3 $e |- ( ph -> A C_ ( B [,] C ) ) $.
    supicc.4 $e |- ( ph -> A =/= (/) ) $.
    $( Supremum of a bounded set of real numbers.  (Contributed by Thierry
       Arnoux, 17-May-2019.) $)
    supicc $p |- ( ph -> sup ( A , RR , < ) e. ( B [,] C ) ) $=
      ( vx vy cr wcel cle wbr wss wral syl2anc adantr syl3anc wb clt csup co c0
      cicc wne cv wrex iccssre sstrd wa cxr rexrd sselda iccleub ralrimiva wceq
      breq2 ralbidv rspcev suprcl w3a simpr iccsupr syl211anc syl iccgelb letrd
      suprub r19.3rzv mpbird suprleub syl31anc elicc2 mpbir3and ) ABKUAUBZCDUEU
      CZLZVPKLZCVPMNZVPDMNZABKOZBUDUFZIUGZJUGZMNZIBPZJKUHZVSABVQKGACKLZDKLZVQKO
      EFCDUIQUJZHAWJWDDMNZIBPZWHFAWLIBAWDBLZUKZCULLZDULLZWDVQLZWLWOCAWIWNERZUMZ
      WODAWJWNFRZUMZABVQWDGUNZCDWDUOSUPZWGWMJDKWEDUQWFWLIBWEDWDMURUSUTQZJIBVAZS
      AVTVTIBPZAVTIBWOCWDVPWSABKWDWKUNWOWBWCWHVBZVSWOWIWJBVQOZWNXHWSXAAXIWNGRAW
      NVCZJICDWDBVDVEZXFVFWOWPWQWRCWDMNWTXBXCCDWDVGSWOXHWNWDVPMNXKXJJIBWDVIQVHU
      PAWCVTXGTHVTIBVJVFVKAWAWMXDAWBWCWHWJWAWMTWKHXEFJIIBDVLVMVKAWIWJVRVSVTWAVB
      TEFCDVPVNQVO $.

    supiccub.1 $e |- ( ph -> D e. A ) $.
    $( The supremum of a bounded set of real numbers is an upper bound.
       (Contributed by Thierry Arnoux, 20-May-2019.) $)
    supiccub $p |- ( ph -> D <_ sup ( A , RR , < ) ) $=
      ( vx vy cr wss cv cle wbr wral wcel syl2anc c0 wne wrex csup cicc iccssre
      clt co sstrd cxr adantr rexrd sselda iccleub syl3anc ralrimiva wceq breq2
      wa ralbidv rspcev suprub syl31anc ) ABMNBUAUBKOZLOZPQZKBRZLMUCZEBSEBMUGUD
      PQABCDUEUHZMHACMSZDMSZVIMNFGCDUFTUIIAVKVDDPQZKBRZVHGAVLKBAVDBSZUSZCUJSDUJ
      SVDVISVLVOCAVJVNFUKULVODAVKVNGUKULABVIVDHUMCDVDUNUOUPVGVMLDMVEDUQVFVLKBVE
      DVDPURUTVATJLKBEVBVC $.

    $d A z $.  $d D z $.
    $( The supremum of a bounded set of real numbers is the least upper bound.
       (Contributed by Thierry Arnoux, 23-May-2019.) $)
    supicclub $p |- ( ph -> ( D < sup ( A , RR , < ) <-> E. z e. A D < z ) ) $=
      ( vx vy cr wss cv cle wbr wcel clt c0 wral wrex csup cicc iccssre syl2anc
      wne wb co sstrd wa cxr adantr rexrd sselda iccleub syl3anc ralrimiva wceq
      breq2 ralbidv rspcev sseldd suprlub syl31anc ) ACNOCUAUHLPZMPZQRZLCUBZMNU
      CZFNSFCNTUDTRFBPTRBCUCUIACDEUEUJZNIADNSZENSZVLNOGHDEUFUGUKZJAVNVGEQRZLCUB
      ZVKHAVPLCAVGCSZULZDUMSEUMSVGVLSVPVSDAVMVRGUNUOVSEAVNVRHUNUOACVLVGIUPDEVGU
      QURUSVJVQMENVHEUTVIVPLCVHEVGQVAVBVCUGACNFVOKVDMLBCFVEVF $.

    $d ph z $.
    supicclub2.1 $e |- ( ( ph /\ z e. A ) -> z <_ D ) $.
    $( The supremum of a bounded set of real numbers is the least upper bound.
       (Contributed by Thierry Arnoux, 23-May-2019.) $)
    supicclub2 $p |- ( ph -> sup ( A , RR , < ) <_ D ) $=
      ( clt cle wbr wn wcel cxr wb xrlenlt cr csup cv wrex wa co iccssxr syl6ss
      sselda sseldd adantr syl2anc nrexdv supicclub mtbird supicc sseldi mpbird
      cicc mpbid ) ACUAMUBZFNOZFVAMOZPZAVCFBUCZMOZBCUDAVFBCAVECQZUEZVEFNOZVFPZL
      VHVERQFRQZVIVJSACRVEACDEUSUFZRIDEUGZUHZUIAVKVGACRFVNKUJZUKVEFTULUTUMABCDE
      FGHIJKUNUOAVARQVKVBVDSAVLRVAVMACDEGHIJUPUQVOVAFTULUR $.
  $}

  $( The sum of an integer and a real number between 0 and 1 is less than or
     equal to a second integer iff the sum is less than the second integer.
     (Contributed by AV, 1-Jul-2021.) $)
  zltaddlt1le $p |- ( ( M e. ZZ /\ N e. ZZ /\ A e. ( 0 (,) 1 ) )
                      -> ( ( M + A ) < N <-> ( M + A ) <_ N ) ) $=
    ( cz wcel cc0 c1 co w3a caddc clt wbr cle cr wi zre cxr simplbiim 3ad2ant3
    wa cioo adantr elioore adantl readdcld 3adant2 3ad2ant2 syl2anc crp elioo3g
    ltle simpl elrpd addlelt syl3an zltp1le 3adant3 1red 3ad2ant1 simpr peano2z
    wb ltadd2dd zred ltletr syl3anc mpand sylbid syld impbid ) BDEZCDEZAFGUAHEZ
    IZBAJHZCKLZVOCMLZVNVONEZCNEZVPVQOVKVMVRVLVKVMTBAVKBNEZVMBPZUBVMANEZVKAFGUCZ
    UDUEUFZVLVKVSVMCPZUGZVOCUKUHVNVQBCKLZVPVKVTVLVSVMAUIEVQWGOWAWEVMAWCVMFQEGQE
    AQEIZFAKLZAGKLZTZWIFGAUJZWIWJULRUMABCUNUOVNWGBGJHZCMLZVPVKVLWGWNVBVMBCUPUQV
    NVOWMKLZWNVPVNAGBVMVKWBVLWCSVNURVKVLVTVMWAUSVMVKWJVLVMWHWKWJWLWIWJUTRSVCVNV
    RWMNEZVSWOWNTVPOWDVKVLWPVMVKWMBVAVDUSWFVOWMCVEVFVGVHVIVJ $.

  $( An extended nonnegative integer is an extended nonnegative real.
     (Contributed by AV, 10-Dec-2020.) $)
  xnn0xrge0 $p |- ( A e. NN0* -> A e. ( 0 [,] +oo ) ) $=
    ( cxnn0 wcel cn0 cpnf wceq wo cc0 cicc co elxnn0 cxr cle nn0re rexrd nn0ge0
    wbr elxrge0 sylanbrc 0xr pnfxr 0lepnf ubicc2 mp3an eleq1 mpbiri jaoi sylbi
    ) ABCADCZAEFZGAHEIJZCZAKUIULUJUIALCHAMQULUIAANOAPARSUJULEUKCZHLCELCHEMQUMTU
    AUBHEUCUDAEUKUEUFUGUH $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finite intervals of integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ... $. $( Dots. $)

  $( Extend class notation to include the notation for a contiguous finite set
     of integers.  Read " ` M ... N ` " as "the set of integers from ` M ` to
     ` N ` inclusive." $)
  cfz $a class ... $.

  ${
    $d m n k $.
    $( Define an operation that produces a finite set of sequential integers.
       Read " ` M ... N ` " as "the set of integers from ` M ` to ` N `
       inclusive."  See ~ fzval for its value and additional comments.
       (Contributed by NM, 6-Sep-2005.) $)
    df-fz $a |- ... = ( m e. ZZ , n e. ZZ |->
                  { k e. ZZ | ( m <_ k /\ k <_ n ) } ) $.
  $}

  ${
    $d k m n M $.  $d k m n N $.
    $( The value of a finite set of sequential integers.  E.g., ` 2 ... 5 `
       means the set ` { 2 , 3 , 4 , 5 } ` .  A special case of this definition
       (starting at 1) appears as Definition 11-2.1 of [Gleason] p. 141, where
       ` NN ` _k means our ` 1 ... k ` ; he calls these sets _segments_ of the
       integers.  (Contributed by NM, 6-Sep-2005.)  (Revised by Mario Carneiro,
       3-Nov-2013.) $)
    fzval $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M ... N ) =
                 { k e. ZZ | ( M <_ k /\ k <_ N ) } ) $=
      ( vm vn cz cv cle wbr wa crab cfz breq1 anbi1d rabbidv breq2 anbi2d df-fz
      wceq zex rabex ovmpt2 ) DEBCFFDGZAGZHIZUDEGZHIZJZAFKBUDHIZUDCHIZJZAFKLUIU
      GJZAFKUCBSZUHULAFUMUEUIUGUCBUDHMNOUFCSZULUKAFUNUGUJUIUFCUDHPQOADERUKAFTUA
      UB $.

    $( An alternative way of expressing a finite set of sequential integers.
       (Contributed by Mario Carneiro, 3-Nov-2013.) $)
    fzval2 $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
        ( M ... N ) = ( ( M [,] N ) i^i ZZ ) ) $=
      ( vk cz wcel wa cfz co cv cle wbr crab cicc cin fzval wceq cr zssre sseli
      cxr ressxr sstri iccval syl2an ineq1d inrab2 wss sseqin2 mpbi rabeq ax-mp
      eqtri syl6req eqtrd ) ADEZBDEZFZABGHACIZJKURBJKFZCDLZABMHZDNZCABOUQVBUSCT
      LZDNZUTUQVAVCDUOATEBTEVAVCPUPDTADQTRUAUBZSDTBVESCABUCUDUEVDUSCTDNZLZUTUSC
      TDUFVFDPZVGUTPDTUGVHVEDTUHUIUSCVFDUJUKULUMUN $.

    $( Establish the domain and codomain of the finite integer sequence
       function.  (Contributed by Scott Fenton, 8-Aug-2013.)  (Revised by Mario
       Carneiro, 16-Nov-2013.) $)
    fzf $p |- ... : ( ZZ X. ZZ ) --> ~P ZZ $=
      ( vm vk vn cv cle wbr wa cz crab cpw wcel cxp cfz wf wss ssrab2 zex elpw2
      wral mpbir rgen2w df-fz fmpt2 mpbi ) ADBDZEFUECDEFGZBHIZHJZKZCHSAHSHHLUHM
      NUIACHHUIUGHOUFBHPUGHQRTUAACHHUGUHMBACUBUCUD $.
  $}

  ${
    $d j K $.  $d j M $.  $d j N $.
    $( Membership in a finite set of sequential integers.  (Contributed by NM,
       21-Jul-2005.) $)
    elfz1 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( K e. ( M ... N ) <->
                 ( K e. ZZ /\ M <_ K /\ K <_ N ) ) ) $=
      ( vj cz wcel wa cfz co cv cle wbr crab w3a fzval wceq breq2 breq1 anbi12d
      eleq2d elrab 3anass bitr4i syl6bb ) BEFCEFGZABCHIZFABDJZKLZUGCKLZGZDEMZFZ
      AEFZBAKLZACKLZNZUEUFUKADBCOTULUMUNUOGZGUPUJUQDAEUGAPUHUNUIUOUGABKQUGACKRS
      UAUMUNUOUBUCUD $.
  $}

  $( Membership in a finite set of sequential integers.  (Contributed by NM,
     29-Sep-2005.) $)
  elfz $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) -> ( K e. ( M ... N ) <->
                 ( M <_ K /\ K <_ N ) ) ) $=
    ( cz wcel cfz co cle wbr wa wb w3a elfz1 3anass baib sylan9bb 3impa 3comr )
    BDEZCDEZADEZABCFGEZBAHIZACHIZJZKZSTUAUFSTJUBUAUCUDLZUAUEABCMUGUAUEUAUCUDNOP
    QR $.

  $( Membership in a finite set of sequential integers.  We use the fact that
     an operation's value is empty outside of its domain to show ` M e. ZZ `
     and ` N e. ZZ ` .  (Contributed by NM, 6-Sep-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfz2 $p |- ( K e. ( M ... N ) <->
         ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ ) /\ ( M <_ K /\ K <_ N ) ) ) $=
    ( cz wcel wa cle wbr w3a cfz co anass df-3an anbi1i elfz1 3anass ibar bitrd
    wb c0 syl5bb wn cxp cpw fzf fdmi ndmov eleq2d noel pm2.21i pm5.21ni pm2.61i
    simpl 3bitr4ri ) BDEZCDEZFZADEZFZBAGHZACGHZFZFUQURVBFZFZUOUPURIZVBFABCJKZEZ
    UQURVBLVEUSVBUOUPURMNUQVGVDSUQVGURUTVAIZVDABCOVHVCUQVDURUTVAPUQVCQUARUQUBZV
    GATEZVDVIVFTABCDJDDUCDUDJUEUFUGUHVJUQVDVJUQAUIUJUQVCUMUKRULUN $.

  $( Membership in a finite set of sequential integers.  (Contributed by NM,
     26-Dec-2005.) $)
  elfz5 $p |- ( ( K e. ( ZZ>= ` M ) /\ N e. ZZ ) ->
                 ( K e. ( M ... N ) <-> K <_ N ) ) $=
    ( cuz cfv wcel cz wa cfz co cle wbr wb eluzelz eluzel2 jca elfz 3expa sylan
    eluzle biantrurd adantr bitr4d ) ABDEFZCGFZHABCIJFZBAKLZACKLZHZUHUDAGFZBGFZ
    HUEUFUIMZUDUJUKBANBAOPUJUKUEULABCQRSUDUHUIMUEUDUGUHBATUAUBUC $.

  $( Membership in a finite set of sequential integers.  (Contributed by NM,
     21-Jul-2005.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
  elfz4 $p |- ( ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ ) /\ ( M <_ K /\ K <_ N ) )
               -> K e. ( M ... N ) ) $=
    ( cfz co wcel cz w3a cle wbr wa elfz2 biimpri ) ABCDEFBGFCGFAGFHBAIJACIJKKA
    BCLM $.

  $( Membership in a finite set of sequential integers in terms of sets of
     upper integers.  (Contributed by NM, 18-Sep-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfzuzb $p |- ( K e. ( M ... N ) <->
         ( K e. ( ZZ>= ` M ) /\ N e. ( ZZ>= ` K ) ) ) $=
    ( cz wcel w3a cle wbr wa cfz cuz cfv df-3an an6 anandir ancom anbi2i 3bitri
    co eluz2 anbi1i 3bitr4ri elfz2 anbi12i 3bitr4i ) BDEZCDEZADEZFZBAGHZACGHZIZ
    IZUFUHUJFZUHUGUKFZIZABCJSEABKLEZCAKLEZIUFUHIZUHUGIZULFUSUTIZULIUPUMUSUTULMU
    FUHUJUHUGUKNUIVAULUIUFUGIUHIUSUGUHIZIVAUFUGUHMUFUGUHOVBUTUSUGUHPQRUAUBABCUC
    UQUNURUOBATACTUDUE $.

  $( Membership in a finite set of sequential integers.  (Contributed by NM,
     4-Oct-2005.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
  eluzfz $p |- ( ( K e. ( ZZ>= ` M ) /\ N e. ( ZZ>= ` K ) )
               -> K e. ( M ... N ) ) $=
    ( cfz co wcel cuz cfv wa elfzuzb biimpri ) ABCDEFABGHFCAGHFIABCJK $.

  $( A member of a finite set of sequential integers belongs to an upper set of
     integers.  (Contributed by NM, 17-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  elfzuz $p |- ( K e. ( M ... N ) -> K e. ( ZZ>= ` M ) ) $=
    ( cfz co wcel cuz cfv elfzuzb simplbi ) ABCDEFABGHFCAGHFABCIJ $.

  $( Membership in a finite set of sequential integers implies membership in an
     upper set of integers.  (Contributed by NM, 28-Sep-2005.)  (Revised by
     Mario Carneiro, 28-Apr-2015.) $)
  elfzuz3 $p |- ( K e. ( M ... N ) -> N e. ( ZZ>= ` K ) ) $=
    ( cfz co wcel cuz cfv elfzuzb simprbi ) ABCDEFABGHFCAGHFABCIJ $.

  $( Membership in a finite set of sequential integer implies the upper bound
     is an integer.  (Contributed by NM, 6-Sep-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfzel2 $p |- ( K e. ( M ... N ) -> N e. ZZ ) $=
    ( cfz co wcel cuz cfv cz elfzuz3 eluzelz syl ) ABCDEFCAGHFCIFABCJACKL $.

  $( Membership in a finite set of sequential integer implies the lower bound
     is an integer.  (Contributed by NM, 6-Sep-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfzel1 $p |- ( K e. ( M ... N ) -> M e. ZZ ) $=
    ( cfz co wcel cuz cfv cz elfzuz eluzel2 syl ) ABCDEFABGHFBIFABCJBAKL $.

  $( A member of a finite set of sequential integer is an integer.
     (Contributed by NM, 6-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  elfzelz $p |- ( K e. ( M ... N ) -> K e. ZZ ) $=
    ( cfz co wcel cuz cfv cz elfzuz eluzelz syl ) ABCDEFABGHFAIFABCJBAKL $.

  ${
    $d M x $.  $d N x $.
    $( A finite sequence of integers is a set of integers.  (Contributed by
       Glauco Siliprandi, 11-Dec-2019.) $)
    fzssz $p |- ( M ... N ) C_ ZZ $=
      ( vx cfz co cz cv elfzelz ssriv ) CABDEFCGABHI $.
  $}

  $( A member of a finite set of sequential integer is greater than or equal to
     the lower bound.  (Contributed by NM, 6-Sep-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfzle1 $p |- ( K e. ( M ... N ) -> M <_ K ) $=
    ( cfz co wcel cuz cfv cle wbr elfzuz eluzle syl ) ABCDEFABGHFBAIJABCKBALM
    $.

  $( A member of a finite set of sequential integer is less than or equal to
     the upper bound.  (Contributed by NM, 6-Sep-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfzle2 $p |- ( K e. ( M ... N ) -> K <_ N ) $=
    ( cfz co wcel cuz cfv cle wbr elfzuz3 eluzle syl ) ABCDEFCAGHFACIJABCKACLM
    $.

  $( Implication of membership in a finite set of sequential integers.
     (Contributed by NM, 20-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  elfzuz2 $p |- ( K e. ( M ... N ) -> N e. ( ZZ>= ` M ) ) $=
    ( cfz co wcel cuz cfv wa elfzuzb eqid uztrn2 sylbi ) ABCDEFABGHZFCAGHFICNFA
    BCJBCANNKLM $.

  $( Membership in a finite set of sequential integer implies the bounds are
     comparable.  (Contributed by NM, 18-Sep-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfzle3 $p |- ( K e. ( M ... N ) -> M <_ N ) $=
    ( cfz co wcel cuz cfv cle wbr elfzuz2 eluzle syl ) ABCDEFCBGHFBCIJABCKBCLM
    $.

  $( Membership in a finite set of sequential integers - special case.
     (Contributed by NM, 21-Jul-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  eluzfz1 $p |- ( N e. ( ZZ>= ` M ) -> M e. ( M ... N ) ) $=
    ( cuz cfv wcel cfz co cz eluzel2 uzid syl eluzfz mpancom ) AACDZEZBNEZAABFG
    EPAHEOABIAJKAABLM $.

  $( Membership in a finite set of sequential integers - special case.
     (Contributed by NM, 13-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  eluzfz2 $p |- ( N e. ( ZZ>= ` M ) -> N e. ( M ... N ) ) $=
    ( cuz cfv wcel cfz co cz eluzelz uzid syl eluzfz mpdan ) BACDEZBBCDEZBABFGE
    NBHEOABIBJKBABLM $.

  $( Membership in a finite set of sequential integers - special case.
     (Contributed by NM, 14-Sep-2005.) $)
  eluzfz2b $p |- ( N e. ( ZZ>= ` M ) <-> N e. ( M ... N ) ) $=
    ( cuz cfv wcel cfz co eluzfz2 elfzuz impbii ) BACDEBABFGEABHBABIJ $.

  $( Membership in a finite set of sequential integers containing one integer.
     (Contributed by NM, 21-Jul-2005.) $)
  elfz3 $p |- ( N e. ZZ -> N e. ( N ... N ) ) $=
    ( cz wcel cuz cfv cfz co uzid eluzfz1 syl ) ABCAADECAAAFGCAHAAIJ $.

  $( Membership in a finite set of sequential integers containing one integer.
     (Contributed by NM, 19-Sep-2005.) $)
  elfz1eq $p |- ( K e. ( N ... N ) -> K = N ) $=
    ( cfz co wcel wceq cle wbr elfzle2 elfzle1 cz wa elfzelz elfzel2 zre letri3
    wb cr syl2an syl2anc mpbir2and ) ABBCDEZABFZABGHZBAGHZABBIABBJUBAKEZBKEZUCU
    DUELQZABBMABBNUFAREBREUHUGAOBOABPSTUA $.

  $( If there is a member in a finite set of sequential integers, the upper
     bound is also a member of this finite set of sequential integers.
     (Contributed by Alexander van der Vekens, 31-May-2018.) $)
  elfzubelfz $p |- ( K e. ( M ... N ) -> N e. ( M ... N ) ) $=
    ( cfz co wcel cuz cfv elfzuz2 eluzfz2 syl ) ABCDEZFCBGHFCLFABCIBCJK $.

  $( A Peano-postulate-like theorem for downward closure of a finite set of
     sequential integers.  (Contributed by Mario Carneiro, 27-May-2014.) $)
  peano2fzr $p |- ( ( K e. ( ZZ>= ` M ) /\ ( K + 1 ) e. ( M ... N ) )
                    -> K e. ( M ... N ) ) $=
    ( cuz cfv wcel c1 caddc co cfz wa simpl cz eluzelz elfzuz3 peano2uzr syl2an
    elfzuzb sylanbrc ) ABDEFZAGHIZBCJIZFZKTCADEFZAUBFTUCLTAMFCUADEFUDUCBANUABCO
    ACPQABCRS $.

  ${
    $d M x $.  $d N x $.
    $( Properties of a finite interval of integers which is nonempty.
       (Contributed by Jeff Madsen, 17-Jun-2010.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    fzn0 $p |- ( ( M ... N ) =/= (/) <-> N e. ( ZZ>= ` M ) ) $=
      ( vx cfz co c0 wne cuz cfv wcel cv wex elfzuz2 exlimiv sylbi eluzfz1 ne0i
      n0 syl impbii ) ABDEZFGZBAHIJZUBCKZUAJZCLUCCUARUEUCCUDABMNOUCAUAJUBABPUAA
      QST $.
  $}

  $( A finite set of sequential integers is empty if its bounds are not
     integers.  (Contributed by AV, 13-Oct-2018.) $)
  fz0 $p |- ( ( M e/ ZZ \/ N e/ ZZ ) -> ( M ... N ) = (/) ) $=
    ( cz wnel wo wcel wn cfz co c0 wceq df-nel orbi12i ianor cxp cpw fdmi ndmov
    wa fzf sylbir sylbi ) ACDZBCDZEACFZGZBCFZGZEZABHIJKZUCUFUDUHACLBCLMUIUEUGSG
    UJUEUGNABCHCCOCPHTQRUAUB $.

  ${
    $d K k m $.  $d M k m $.  $d N k m $.
    $( A finite set of sequential integers is empty if the bounds are reversed.
       (Contributed by NM, 22-Aug-2005.) $)
    fzn $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( N < M <-> ( M ... N ) = (/) ) ) $=
      ( cz wcel wa clt wbr cfz co c0 wne cle wn cuz cfv fzn0 eluz syl5bb cr zre
      wb lenlt syl2an bitr2d necon4bbid ) ACDZBCDZEZBAFGZABHIZJUHUJJKZABLGZUIMZ
      UKBANODUHULABPABQRUFASDBSDULUMUAUGATBTABUBUCUDUE $.

    $( A shifted finite set of sequential integers is equinumerous to the
       original set.  (Contributed by Paul Chapman, 11-Apr-2009.) $)
    fzen $p |- ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ ) ->
                 ( M ... N ) ~~ ( ( M + K ) ... ( N + K ) ) ) $=
      ( cz wcel w3a cfz co caddc cle wbr wi wa elfz1 biimpd cr zre syl3an wceq
      wb vk vm cv cmin ovexd 3adant3 zaddcl expcom adantrd leadd1 3com23 3expia
      impd 3adant2 adantld 3coml 3adant1 3jcad syl2anc biimprd syldc 3impb syld
      3ad2ant3 com12 zsubcl leaddsub lesubadd ancoms imp simp1d ex cc zcn eqcom
      subadd 3bitr3g addcom eqeq2d bitrd 3expib syl2and en3d ) BDEZCDEZADEZFZUA
      UBBCGHZBAIHZCAIHZGHZUAUCZAIHZUBUCZAUDHZWGBCGUEWGWIWJGUEWGWLWHEZWLDEZBWLJK
      ZWLCJKZFZWMWKEZWDWEWPWTLWFWDWEMZWPWTWLBCNOUFZWTWGXAWQWRWSWGXALWGWQWRWSMZM
      ZWMDEZWIWMJKZWMWJJKZFZXAWGXEXFXGXHWGWQXFXDWFWDWQXFLWEWQWFXFWLAUGUHVDUIWDW
      FXEXGLWEWDWFMZWQXDXGWDWFWQXDXGLZWDWQWFXKWDWQWFFZWRXGWSXLWRXGWDBPEZWQWLPEZ
      WFAPEZWRXGTBQZWLQZAQZBWLAUJROUIUKULUMUNWEWFXEXHLWDWEWFMWQXDXHWEWFWQXDXHLZ
      WQWEWFXSWQWEWFFZWSXHWRXTWSXHWQXNWECPEZWFXOWSXHTXQCQZXRWLCAUJROUOUPULUMUQU
      RWGXAXIWGWIDEZWJDEZXAXITWDWFYCWEBAUGUNZWEWFYDWDCAUGUQZWMWIWJNUSUTVAVBVEVC
      WGWNWKEZWNDEZWIWNJKZWNWJJKZFZWOWHEZWGYGYKWGYCYDYGYKTYEYFWNWIWJNUSOZYKWGYL
      YHYIYJWGYLLWGYHYIYJMZMZWODEZBWOJKZWOCJKZFZYLWGYOYPYQYRWGYHYPYNWFWDYHYPLWE
      YHWFYPWNAVFUHVDUIWDWFYOYQLWEXJYHYNYQWDWFYHYNYQLWDWFYHFZYIYQYJYTYIYQWDXMWF
      XOYHWNPEZYIYQTXPXRWNQZBAWNVGROUIULUMUNWEWFYOYRLZWDWFWEUUCWFWEMYHYNYRWFWEY
      HYNYRLZYHWFWEUUDYHWFWEFZYJYRYIUUEYRYJYHUUAWFXOWEYAYRYJTUUBXRYBWNACVHRUTUO
      UPULUMVIUQURWDWEYSYLLWFXBYLYSWOBCNUTUFVAVBVEVCWGWPWQYGYHWLWOSZWNWMSZTZWGW
      PWQWGWPMWQWRWSWGWPWTXCVJVKVLWGYGYHWGYGMYHYIYJWGYGYKYMVJVKVLWFWDWQYHMUUHLW
      EWFWQYHUUHYHWFWQUUHYHWNVMEZWFAVMEZWQWLVMEZUUHWNVNAVNWLVNUUIUUJUUKFZUUFWNA
      WLIHZSZUUGUULWOWLSUUMWNSUUFUUNWNAWLVPWOWLVOUUMWNVOVQUULUUMWMWNUUJUUKUUMWM
      SUUIAWLVRUQVSVTRUPWAVDWBWC $.
  $}

  $( A 1-based finite set of sequential integers is empty iff it ends at index
     ` 0 ` .  (Contributed by Paul Chapman, 22-Jun-2011.) $)
  fz1n $p |- ( N e. NN0 -> ( ( 1 ... N ) = (/) <-> N = 0 ) ) $=
    ( cn0 wcel c1 clt wbr cfz co c0 wceq cc0 cz wb 1z nn0z fzn sylancr nn0lt10b
    bitr3d ) ABCZADEFZDAGHIJZAKJTDLCALCUAUBMNAODAPQARS $.

  $( 0 is not an element of a finite interval of integers starting at 1.
     (Contributed by AV, 27-Aug-2020.) $)
  0nelfz1 $p |- 0 e/ ( 1 ... N ) $=
    ( cc0 c1 cfz co wnel cz wcel w3a cle wbr wa wn clt 0lt1 0re 1re ltnlei mpbi
    intnanr intnan df-nel elfz2 xchbinx mpbir ) BCADEZFZCGHAGHBGHIZCBJKZBAJKZLZ
    LZMUKUHUIUJBCNKUIMOBCPQRSTUAUGBUFHULBUFUBBCAUCUDUE $.

  $( Two ways to say a finite 1-based sequence is empty.  (Contributed by Paul
     Chapman, 26-Oct-2012.) $)
  0fz1 $p |- ( ( N e. NN0 /\ F Fn ( 1 ... N ) ) -> ( F = (/) <-> N = 0 ) ) $=
    ( c1 cfz co wfn c0 wceq cn0 wcel cc0 fndmu sylan2br ex fneq2 syl6bb biimpcd
    fn0 impbid fz1n sylan9bbr ) ACBDEZFZAGHZUBGHZBIJBKHUCUDUEUCUDUEUDUCAGFZUEAR
    ZUBGALMNUEUCUDUEUCUFUDUBGAOUGPQSBTUA $.

  $( There are no integers between 1 and 0.  (Contributed by Jeff Madsen,
     16-Jun-2010.)  (Proof shortened by Mario Carneiro, 28-Apr-2015.) $)
  fz10 $p |- ( 1 ... 0 ) = (/) $=
    ( cc0 c1 clt wbr cfz co c0 wceq 0lt1 cz wcel wb 1z 0z fzn mp2an mpbi ) ABCD
    ZBAEFGHZIBJKAJKRSLMNBAOPQ $.

  $( Membership of an integer greater than L decreased by ( L - M ) in an M
     based finite set of sequential integers.  (Contributed by Alexander van
     der Vekens, 14-Sep-2018.) $)
  uzsubsubfz $p |- ( ( L e. ( ZZ>= ` M ) /\ N e. ( ZZ>= ` L ) )
                     -> ( N - ( L - M ) ) e. ( M ... N ) ) $=
    ( cuz wcel cmin co cz cle wbr w3a wi wa adantr cr zre adantl syl2anr cc zcn
    cfv cfz eluz2 simpr zsubcl adantlr zsubcld 3jca 3adant3 com12 imp caddc cc0
    subge0d exbiri com23 3impia impcom resubcl addge02d mpbid 3ad2ant2 3ad2ant1
    ex subsubd breqtrrd subge0 imp31 subge02d jca elfz2 sylanbrc 3adant2 syl5bi
    wb sylbi ) ABDUAEZCADUAEZCABFGZFGZBCUBGEZVQBHEZAHEZBAIJZKZVRWALBAUCVRWCCHEZ
    ACIJZKZWEWAACUCWBWDWHWALWCWBWDMZWHWAWIWHMZWBWFVTHEZKZBVTIJZVTCIJZMWAWIWHWLW
    BWHWLLWDWHWBWLWCWFWBWLLWGWCWFMZWBWLWOWBMZWBWFWKWOWBUDWOWFWBWCWFUDNZWPCVSWQW
    CWBVSHEWFABUEUFUGUHVDUIUJNUKWJWMWNWJBCAFGZBULGZVTIWJUMWRIJZBWSIJWHWIWTWCWFW
    GWIWTLWOWIWGWTWOWIWTWGWOWIMCAWOCOEZWIWFXAWCCPZQNWOAOEZWIWCXCWFAPZNNUNUOUPUQ
    URWJBWRWIBOEZWHWBXEWDBPZNZNWHWROEZWIWCWFXHWGWFXAXCXHWCXBXDCAUSRUIQUTVAWJCAB
    WHCSEZWIWFWCXIWGCTVBQWHASEZWIWCWFXJWGATVCQWIBSEZWHWBXKWDBTNNVEVFWJUMVSIJZWN
    WBWDWHXLWBWHWDXLWBWHXLWDWHXCXEXLWDVOWBWCWFXCWGXDVCZXFABVGRUOUPVHWJCVSWHXAWI
    WFWCXAWGXBVBQWHXCXEVSOEWIXMXGABUSRVIVAVJVTBCVKVLVDVMVNVPUK $.

  $( Membership of an integer greater than L decreased by ( L - 1 ) in a 1
     based finite set of sequential integers.  (Contributed by Alexander van
     der Vekens, 14-Sep-2018.) $)
  uzsubsubfz1 $p |- ( ( L e. NN /\ N e. ( ZZ>= ` L ) )
                      -> ( N - ( L - 1 ) ) e. ( 1 ... N ) ) $=
    ( cn wcel c1 cuz cfv cmin co cfz elnnuz uzsubsubfz sylanb ) ACDAEFGDBAFGDBA
    EHIHIEBJIDAKAEBLM $.

  $( Membership of an integer greater than 2 decreased by 2 in a 1 based finite
     set of sequential integers.  (Contributed by Alexander van der Vekens,
     14-Sep-2018.) $)
  ige3m2fz $p |- ( N e. ( ZZ>= ` 3 ) -> ( N - 2 ) e. ( 1 ... N ) ) $=
    ( c3 cuz cfv wcel c2 cmin co c1 cfz wceq 3m1e2 eqcomi oveq2d cn uzsubsubfz1
    a1i 3nn mpan eqeltrd ) ABCDEZAFGHABIGHZGHZIAJHZUAFUBAGFUBKUAUBFLMQNBOEUAUCU
    DERBAPST $.

  ${
    $d M x $.  $d N x $.  $d K x $.
    $( Split a finite interval of integers into two parts.  (Contributed by
       Mario Carneiro, 13-Apr-2016.) $)
    fzsplit2 $p |- ( ( ( K + 1 ) e. ( ZZ>= ` M ) /\ N e. ( ZZ>= ` K ) ) ->
      ( M ... N ) = ( ( M ... K ) u. ( ( K + 1 ) ... N ) ) ) $=
      ( vx co cuz cfv wcel wa cfz wo cle wbr cz adantl syl2anr wb elfzuz syl2an
      elfzuz3 c1 caddc cun cv elfzelz zred eluzel2 lelttric elfz5 simpl eluzelz
      clt cr syl eluz elfzuzb rbaib zltp1le 3bitr4d mpbird simpr uztrn sylanbrc
      orbi12d jaodan impbida elun syl6bbr eqrdv ) AUAUBEZBFGZHZCAFGHZIZDBCJEZBA
      JEZVJCJEZUCZVNDUDZVOHZVSVPHZVSVQHZKZVSVRHVNVTWCVNVTIZWCVSALMZAVSULMZKZVTV
      SUMHAUMHWGVNVTVSVSBCUEZUFVNAVMANHZVLACUGOZUFVSAUHPWDWAWEWBWFVTVSVKHZWIWAW
      EQVNVSBCRWJVSBAUIPWDVSVJFGHZVJVSLMZWBWFVNVJNHZVSNHZWLWMQVTVNVLWNVLVMUJZBV
      JUKUNWHVJVSUOSWDCVSFGZHZWBWLQVTWRVNVSBCTOWBWLWRVSVJCUPUQUNVNWIWOWFWMQVTWJ
      WHAVSURSUSVDUTVNWAVTWBVNWAIWKWRVTWAWKVNVSBAROVNVMAWQHWRWAVLVMVAVSBATACVSV
      BSVSBCUPZVCVNWBIWKWRVTWBWLVLWKVNVSVJCRWPVJVSBVBPWBWRVNVSVJCTOWSVCVEVFVSVP
      VQVGVHVI $.

    $( Split a finite interval of integers into two parts.  (Contributed by
       Jeff Madsen, 17-Jun-2010.)  (Revised by Mario Carneiro, 13-Apr-2016.) $)
    fzsplit $p |- ( K e. ( M ... N ) ->
      ( M ... N ) = ( ( M ... K ) u. ( ( K + 1 ) ... N ) ) ) $=
      ( cfz co wcel caddc cuz cfv cun wceq elfzuz peano2uz syl elfzuz3 fzsplit2
      c1 syl2anc ) ABCDEZFZAQGEZBHIZFZCAHIFSBADEUACDEJKTAUBFUCABCLBAMNABCOABCPR
      $.

    $d J x $.
    $( Condition for two finite intervals of integers to be disjoint.
       (Contributed by Jeff Madsen, 17-Jun-2010.) $)
    fzdisj $p |- ( K < M -> ( ( J ... K ) i^i ( M ... N ) ) = (/) ) $=
      ( vx clt wbr cfz co cin cv wcel wa wn elin cle cz adantl zred adantr cr
      elfzel1 elfzelz elfzel2 elfzle1 elfzle2 letrd lenltd mpbid sylbi eq0rdv
      con2i ) BCFGZEABHIZCDHIZJZEKZUPLZUMURUQUNLZUQUOLZMZUMNZUQUNUOOVACBPGVBVAC
      UQBVACUTCQLUSUQCDUBRSZUTUQUALUSUTUQUQCDUCSRVABUSBQLUTUQABUDTSZUTCUQPGUSUQ
      CDUERUSUQBPGUTUQABUFTUGVACBVCVDUHUIUJULUK $.
  $}

  $( 0-based and 1-based finite sets of sequential integers are equinumerous.
     (Contributed by Paul Chapman, 11-Apr-2009.) $)
  fz01en $p |- ( N e. ZZ -> ( 0 ... ( N - 1 ) ) ~~ ( 1 ... N ) ) $=
    ( cz wcel cc0 c1 cmin co cfz caddc cen wbr peano2zm 0z 1z fzen mp3an13 wceq
    syl 0p1e1 cc a1i zcn ax-1cn npcan sylancl oveq12d breqtrd ) ABCZDAEFGZHGZDE
    IGZUIEIGZHGZEAHGJUHUIBCZUJUMJKZALDBCUNEBCUOMNEDUIOPRUHUKEULAHUKEQUHSUAUHATC
    ETCULAQAUBUCAEUDUEUFUG $.

  $( A member of a finite set of sequential integers starting at 1 is a
     positive integer.  (Contributed by NM, 24-Aug-2005.) $)
  elfznn $p |- ( K e. ( 1 ... N ) -> K e. NN ) $=
    ( c1 cfz co wcel cz cle wbr cn elfzelz elfzle1 elnnz1 sylanbrc ) ACBDEFAGFC
    AHIAJFACBKACBLAMN $.

  $( A nonempty finite range of integers contains its end point.  (Contributed
     by Stefan O'Rear, 10-Oct-2014.) $)
  elfz1end $p |- ( A e. NN <-> A e. ( 1 ... A ) ) $=
    ( cn wcel c1 cfz co cuz cfv elnnuz biimpi cz nnz uzid eluzfz syl2anc elfznn
    syl impbii ) ABCZADAEFCZSADGHCZAAGHCZTSUAAIJSAKCUBALAMQADANOAAPR $.

  ${
    $d A a $.
    $( A finite set of positive integers is a set of positive integers.
       (Contributed by Stefan O'Rear, 16-Oct-2014.) $)
    fz1ssnn $p |- ( 1 ... A ) C_ NN $=
      ( va c1 cfz co cn cv elfznn ssriv ) BCADEFBGAHI $.
  $}

  $( Subtraction closure for a member of a finite set of sequential integers.
     (Contributed by NM, 16-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  fznn0sub $p |- ( K e. ( M ... N ) -> ( N - K ) e. NN0 ) $=
    ( cfz co wcel cuz cfv cmin cn0 elfzuz3 uznn0sub syl ) ABCDEFCAGHFCAIEJFABCK
    ACLM $.

  $( Subtracting the difference of a member of a finite range of integers and
     the lower bound of the range from the difference of the upper bound and
     the lower bound of the range results in the difference of the upper bound
     of the range and the member.  (Contributed by Alexander van der Vekens,
     27-May-2018.) $)
  fzmmmeqm $p |- ( M e. ( L ... N )
                   -> ( ( N - L ) - ( M - L ) ) = ( N - M ) ) $=
    ( cfz co wcel cc w3a cmin wceq cz cle wa elfz2 3anim123i 3comr adantr sylbi
    wbr zcn nnncan2 syl ) BACDEFZCGFZBGFZAGFZHZCAIEBAIEIECBIEJUCAKFZCKFZBKFZHZA
    BLSBCLSMZMUGBACNUKUGULUIUJUHUGUIUDUJUEUHUFCTBTATOPQRCBAUAUB $.

  $( Membership of a sum in a finite set of sequential integers.  (Contributed
     by NM, 30-Jul-2005.) $)
  fzaddel $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ ( J e. ZZ /\ K e. ZZ ) ) ->
         ( J e. ( M ... N ) <-> ( J + K ) e. ( ( M + K ) ... ( N + K ) ) ) ) $=
    ( cz wcel wa cle wbr w3a caddc co cfz wb zaddcl cr zre leadd1 syl3an 3expb
    simpl adantl adantlr 3com12 adantll 3anbi123d elfz1 adantr anandirs adantrl
    2thd syl2an 3bitr4d ) CEFZDEFZGZAEFZBEFZGZGZUQCAHIZADHIZJZABKLZEFZCBKLZVDHI
    ZVDDBKLZHIZJZACDMLFZVDVFVHMLFZUTUQVEVAVGVBVIUSUQVENUPUSUQVEUQURUAABOUKUBUNU
    SVAVGNZUOUNUQURVMUNCPFUQAPFZURBPFZVMCQAQZBQZCABRSTUCUOUSVBVINZUNUOUQURVRUQU
    OURVRUQVNUODPFURVOVRVPDQVQADBRSUDTUEUFUPVKVCNUSACDUGUHUPURVLVJNZUQUNUOURVSU
    NURGVFEFVHEFVSUOURGCBODBOVDVFVHUGULUIUJUM $.

  $( Membership of a sum in a finite interval of integers.  (Contributed by
     Jeff Madsen, 17-Jun-2010.) $)
  fzadd2 $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ ( O e. ZZ /\ P e. ZZ ) ) ->
                    ( ( J e. ( M ... N ) /\ K e. ( O ... P ) ) ->
                        ( J + K ) e. ( ( M + O ) ... ( N + P ) ) ) ) $=
    ( cz wcel wa cfz co cle wbr w3a caddc wi cr zre anim12i zaddcl bi2anan9 an6
    le2add syl2an impr 3adantr3 adantlr syl2anr 3adantr2 adantll wb elfz syl3an
    elfz1 3expb ancoms 3ad2antr1 mpbir2and ex an4s syl5bi sylbid ) DGHZEGHZIZFG
    HZAGHZIZIZBDEJKHZCFAJKHZIBGHZDBLMZBELMZNZCGHZFCLMZCALMZNZIZBCOKZDFOKZEAOKZJ
    KHZVEVJVOVHVKVSBDEUNCFAUNUAVTVLVPIZVMVQIZVNVRIZNZVIWDVLVMVNVPVQVRUBVCVFVDVG
    WHWDPVCVFIZVDVGIZIZWHWDWKWHIWDWBWALMZWAWCLMZWIWHWLWJWIWEWFWLWGWIWEWFWLWIDQH
    ZFQHZIBQHZCQHZIZWFWLPWEVCWNVFWODRFRSVLWPVPWQBRCRSZDFBCUCUDUEUFUGWJWHWMWIWJW
    EWGWMWFWJWEWGWMWEWREQHZAQHZIWGWMPWJWSVDWTVGXAERARSBCEAUCUHUEUIUJWKWFWEWDWLW
    MIUKZWGWEWKXBWEWIWJXBWEWAGHWIWBGHWJWCGHXBBCTDFTEATWAWBWCULUMUOUPUQURUSUTVAV
    B $.

  $( Membership of a difference in a finite set of sequential integers.
     (Contributed by NM, 30-Jul-2005.) $)
  fzsubel $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ ( J e. ZZ /\ K e. ZZ ) ) ->
         ( J e. ( M ... N ) <-> ( J - K ) e. ( ( M - K ) ... ( N - K ) ) ) ) $=
    ( cz wcel wa cfz co cneg caddc cmin wb znegcl fzaddel cc zcn anim12i negsub
    wceq sylanr2 adantl oveqan12d anandirs adantrl eleq12d syl2an bitrd ) CEFZD
    EFZGZAEFZBEFZGZGACDHIFZABJZKIZCUPKIZDUPKIZHIZFZABLIZCBLIZDBLIZHIZFZUMUKULUP
    EFUOVAMBNAUPCDOUAUKCPFZDPFZGZAPFZBPFZGZVAVFMUNUIVGUJVHCQDQRULVJUMVKAQBQRVIV
    LGUQVBUTVEVLUQVBTVIABSUBVIVKUTVETZVJVGVHVKVMVGVKGVHVKGURVCUSVDHCBSDBSUCUDUE
    UFUGUH $.

  $( A finite set of sequential integers has the ordered pair property (compare
     ~ opth ) under certain conditions.  (Contributed by NM, 31-Oct-2005.)
     (Revised by Mario Carneiro, 28-Apr-2015.) $)
  fzopth $p |- ( N e. ( ZZ>= ` M ) ->
                ( ( M ... N ) = ( J ... K ) <-> ( M = J /\ N = K ) ) ) $=
    ( cuz cfv wcel cfz co wceq wa wss eluzfz1 adantr eleqtrd uzss 3syl eleqtrrd
    elfzuz eqssd simpr elfzuz2 cz wb eluzel2 uz11 mpbid eluzfz2 elfzuz3 eluzelz
    syl jca ex oveq12 impbid1 ) DCEFZGZCDHIZABHIZJZCAJZDBJZKZUQUTVCUQUTKZVAVBVD
    UPAEFZJZVAVDUPVEVDCUSGZCVEGUPVELVDCURUSUQCURGUTCDMNUQUTUAZOZCABSACPQVDAURGA
    UPGVEUPLVDAUSURVDVGBVEGZAUSGVICABUBZABMQVHRACDSCAPQTVDCUCGZVFVAUDUQVLUTCDUE
    NCAUFUKUGVDDEFZBEFZJZVBVDVMVNVDBURGDVNGVMVNLVDBUSURVDVGVJBUSGVIVKABUHQVHRBC
    DUIBDPQVDDUSGBVMGVNVMLVDDURUSUQDURGUTCDUHNVHODABUIDBPQTVDDUCGZVOVBUDUQVPUTC
    DUJNDBUFUKUGULUMCADBHUNUO $.

  $( Two ways to express a nondecreasing sequence of four integers.
     (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  fzass4 $p |- ( ( B e. ( A ... D ) /\ C e. ( B ... D ) ) <->
      ( B e. ( A ... C ) /\ C e. ( A ... D ) ) ) $=
    ( cuz cfv wcel wa cfz co simpll simprl uztrn ancoms ad2ant2r simprr elfzuzb
    jca jca32 anbi12i ad2ant2l simplr impbii 3bitr4i ) BAEFZGZDBEFZGZHZCUGGZDCE
    FGZHZHZUFUJHZCUEGZUKHZHZBADIJZGZCBDIJGZHBACIJGZCURGZHUMUQUMUNUOUKUMUFUJUFUH
    ULKUIUJUKLRUFUJUOUHUKUJUFUOBCAMNOUIUJUKPSUQUIUJUKUQUFUHUFUJUPKUJUKUHUFUOUKU
    JUHCDBMNUARUFUJUPUBUNUOUKPSUCUSUIUTULBADQCBDQTVAUNVBUPBACQCADQTUD $.

$(
  @{
    @d j K @.  @d j M @.  @d j N @.
    @( Union of two adjacent finite sets of sequential integers. @)
    fzunt @p |- ( ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) /\ ( K <_ M /\ M <_ N ) )
                 -> ( ( K ... M ) u. ( M ... N ) ) = ( K ... N ) ) @=
      ( vj cz wcel w3a cle wbr wa cfz co cun cv wo cr wb wi letr expd com23
      3exp com3l imp42 adantlll adantrl anim2d 3expa imp adantlrl adantrr
      anim1d jaod impbid exp42 com34 ex 3imp zre syl3anOLD syl5OLD pm5.32d andi
      bicomi syl5bbOLD elfz1 3anass syl6bb 3adant3 adantr 3adant1 orbi12d
      3adant2 3bitr4d elun eqrdv ) AEFZBEFZCEFZGZABHIZBCHIZJZJZDABKLZBCKLZMZACK
      LZWDDNZWEFZWIWFFZOZWIWHFZWIWGFWDWIEFZAWIHIZWIBHIZJZJZWNBWIHIZWICHIZJZJZOZ
      WNWOWTJZJZWLWMWDWNWQXAOZJZXEXCWDWNXFXDWDWIPFZXFXDQZWNVTWCXHXIRZAPFZBPFZCP
      FZWCXJRZVQVRVSXKXLXMXNXKXLXMXNRXKXLJZXMXHWCXIXOXMXHWCXIXOXMXHJZJZWCJZXFXD
      XRWQXDXAXRWPWTWOXQWBWPWTRZWAXLXPWBXSXKXLXMXHWBXSXHXLXMWBXSRZXHXLXMXTXHXLX
      MGZWPWBWTYAWPWBWTWIBCSTUAUBUCUDUEUFUGXRWSWOWTXQWAWSWORZWBXOXHWAYBXMXOXHJZ
      WAYBYCWAWSWOXKXLXHWAWSJWORABWISUHTUIUJUKULUM?UNUOUPUQURAUSBUSCUSUTUIWIUSV
      AVBXGXCWNWQXAVCVDVEWDWJWRWKXBVTWJWRQZWCVQVRYDVSVQVRJWJWNWOWPGWRWIABVFWNWO
      WPVGVHVIVJVTWKXBQZWCVRVSYEVQVRVSJWKWNWSWTGXBWIBCVFWNWSWTVGVHVKVJVLVTWMXEQ
      ZWCVQVSYFVRVQVSJWMWNWOWTGXEWIACVFWNWOWTVGVHVMVJVNWIWEWFVOVEVP @.
      @( [ ?] @) @( [21-Jul-2005] @)
  @}
$)

  ${
    $d k M $.  $d k N $.  $d k K $.
    $( Subset relationship for finite sets of sequential integers.
       (Contributed by NM, 28-Sep-2005.)  (Proof shortened by Mario Carneiro,
       28-Apr-2015.) $)
    fzss1 $p |- ( K e. ( ZZ>= ` M ) -> ( K ... N ) C_ ( M ... N ) ) $=
      ( vk cuz cfv wcel co cv wa elfzuz id uztrn syl2anr elfzuz3 adantl elfzuzb
      cfz sylanbrc ex ssrdv ) ABEFZGZDACRHZBCRHZUCDIZUDGZUFUEGZUCUGJUFUBGZCUFEF
      GZUHUGUFAEFGUCUIUCUFACKUCLAUFBMNUGUJUCUFACOPUFBCQSTUA $.

    $( Subset relationship for finite sets of sequential integers.
       (Contributed by NM, 4-Oct-2005.)  (Revised by Mario Carneiro,
       30-Apr-2015.) $)
    fzss2 $p |- ( N e. ( ZZ>= ` K ) -> ( M ... K ) C_ ( M ... N ) ) $=
      ( vk cuz cfv wcel cfz co cv wa elfzuz adantl elfzuz3 uztrn sylan2 elfzuzb
      sylanbrc ex ssrdv ) CAEFGZDBAHIZBCHIZUADJZUBGZUDUCGZUAUEKUDBEFGZCUDEFZGZU
      FUEUGUAUDBALMUEUAAUHGUIUDBANACUDOPUDBCQRST $.

    $( A finite set of sequential integers is a subset of an upper set of
       integers.  (Contributed by NM, 28-Oct-2005.) $)
    fzssuz $p |- ( M ... N ) C_ ( ZZ>= ` M ) $=
      ( vk cfz co cuz cfv cv elfzuz ssriv ) CABDEAFGCHABIJ $.

    $( A finite interval of integers with one element.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    fzsn $p |- ( M e. ZZ -> ( M ... M ) = { M } ) $=
      ( vk cz wcel cfz co csn wceq elfz1eq elfz3 eleq1 syl5ibrcom impbid2 velsn
      cv syl6bbr eqrdv ) ACDZBAAEFZAGZRBOZSDZUAAHZUATDRUBUCUAAIRUBUCASDAJUAASKL
      MBANPQ $.

    $( Subset relationship for finite sets of sequential integers.
       (Contributed by NM, 21-Jul-2005.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    fzssp1 $p |- ( M ... N ) C_ ( M ... ( N + 1 ) ) $=
      ( vk cfz co c1 caddc cv wcel cuz cfv wss elfzel2 uzid peano2uz fzss2 4syl
      cz id sseldd ssriv ) CABDEZABFGEZDEZCHZUBIZUBUDUEUFBRIBBJKZIUCUGIUBUDLUEA
      BMBNBBOBAUCPQUFSTUA $.
  $}

  $( Finite sets of sequential integers starting from a natural are a subset of
     the positive integers.  (Contributed by Thierry Arnoux, 4-Aug-2017.) $)
  fzssnn $p |- ( M e. NN -> ( M ... N ) C_ NN ) $=
    ( cn wcel cfz co c1 wss cuz cfv fzss1 nnuz eleq2s fzssuz sseqtr4i syl6ss )
    ACDABEFZGBEFZCQRHAGIJZCAGBKLMRSCGBNLOP $.

  ${
    $d I k $.  $d M k $.  $d N k $.
    $( A subset of a finite sequence of integers extended by an integer is a
       subset of a (possibly extended) finite sequence of integers.
       (Contributed by AV, 13-Nov-2021.) $)
    ssfzunsnext $p |- ( ( S C_ ( M ... N )
                          /\ ( M e. ZZ /\ N e. ZZ /\ I e. ZZ ) )
                      -> ( S u. { I } ) C_ ( if ( I <_ M , I , M )
                                             ... if ( I <_ N , N , I ) ) ) $=
      ( vk cfz co wss cz wcel wa cle wbr adantr adantl cr zred zre ancomd syl
      w3a csn cif simpl cv cuz cfv simp3 simp1 elfzelz 3ad2ant1 anim12i 3adant2
      ifcld min2 elfzle1 letrd eluz2 syl3anbrc 3ad2ant2 elfzle2 3adant1 elfzuzb
      simp2 max2 sylanbrc ex ssrdv sstrd 3jca min1 max1 jca elfz2 snssd unssd )
      ACDFGZHZCIJZDIJZBIJZUAZKZABUBBCLMZBCUCZBDLMZDBUCZFGZWCAVQWHVRWBUDWBVQWHHV
      RWBEVQWHWBEUEZVQJZWIWHJZWBWJKZWIWEUFUGJZWGWIUFUGJZWKWLWEIJZWIIJZWEWILMWMW
      BWOWJWBWDBCIVSVTWAUHZVSVTWAUIUNZNWJWPWBWICDUJZOZWLWECWIWBWEPJWJWBWEWRQNWB
      CPJZWJVSVTXAWACRZUKNWJWIPJWBWJWIWSQOZWLBPJZXAKZWECLMWBXEWJVSWAXEVTVSWAKXA
      XDVSXAWAXDXBBRZULZSUMNBCUOTWJCWILMWBWICDUPOUQWEWIURUSWLWPWGIJZWIWGLMWNWTW
      BXHWJWBWFDBIVSVTWAVDWQUNZNWLWIDWGXCWBDPJZWJVTVSXJWADRZUTNWBWGPJWJWBWGXIQN
      WJWIDLMWBWICDVAOWBDWGLMZWJWBXDXJKZXLWBXJXDVTWAXJXDKZVSVTXJWAXDXKXFULVBZSB
      DVETNUQWIWGURUSWIWEWGVCVFVGVHOVIWCBWHWCWOXHWAUAWEBLMZBWGLMZKBWHJWCWOXHWAW
      BWOVRWROWBXHVRXIOWBWAVRWQOVJWCXPXQWCXEXPWCXAXDWBXAXDKZVRVSWAXRVTXGUMOSBCV
      KTWCXMXQWCXJXDWBXNVRXOOSBDVLTVMBWEWGVNVFVOVP $.
  $}

  $( A subset of a finite sequence of integers extended by an integer is a
     subset of a (possibly extended) finite sequence of integers.  (Contributed
     by AV, 8-Jun-2021.)  (Proof shortened by AV, 13-Nov-2021.) $)
  ssfzunsn $p |- ( ( S C_ ( M ... N ) /\ N e. ZZ /\ I e. ( ZZ>= ` M ) )
                   -> ( S u. { I } ) C_ ( M ... if ( I <_ N , N , I ) ) ) $=
    ( cfz co wss cz wcel cuz cfv w3a cle wbr cif 3ad2ant3 wceq cxr zre rexrd
    csn simp1 eluzel2 simp2 eluzelz ssfzunsnext syl13anc eluz2 3ad2ant2 xrmineq
    cun 3ad2ant1 simp3 syl3anc eqcomd sylbi oveq1d sseqtr4d ) ACDEFGZDHIZBCJKIZ
    LZABUAUKZBCMNBCOZBDMNDBOZEFZCVEEFVBUSCHIZUTBHIZVCVFGUSUTVAUBVAUSVGUTCBUCPUS
    UTVAUDVAUSVHUTCBUEPABCDUFUGVBCVDVEEVAUSCVDQZUTVAVGVHCBMNZLZVICBUHVKVDCVKBRI
    ZCRIZVJVDCQVHVGVLVJVHBBSTUIVGVHVMVJVGCCSTULVGVHVJUMBCUJUNUOUPPUQUR $.

  $( Join a successor to the end of a finite set of sequential integers.
     (Contributed by NM, 19-Jul-2008.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  fzsuc $p |- ( N e. ( ZZ>= ` M ) ->
                ( M ... ( N + 1 ) ) = ( ( M ... N ) u. { ( N + 1 ) } ) ) $=
    ( cuz cfv wcel c1 caddc co cfz cun csn peano2uz eluzfz2 syl peano2fzr mpdan
    wceq fzsplit cz eluzelz fzsn 3syl uneq2d eqtrd ) BACDZEZABFGHZIHZABIHZUGUGI
    HZJZUIUGKZJUFBUHEZUHUKQUFUGUHEZUMUFUGUEEZUNABLZAUGMNBAUGOPBAUGRNUFUJULUIUFU
    OUGSEUJULQUPAUGTUGUAUBUCUD $.

  $( Join a predecessor to the beginning of a finite set of sequential
     integers.  (Contributed by AV, 24-Aug-2019.) $)
  fzpred $p |- ( N e. ( ZZ>= ` M )
                 -> ( M ... N ) = ( { M } u. ( ( M + 1 ) ... N ) ) ) $=
    ( cuz cfv wcel cfz co c1 caddc cun wceq eluzel2 uzid peano2uz 3syl fzsplit2
    csn cz mpancom fzsn syl uneq1d eqtrd ) BACDZEZABFGZAAFGZAHIGZBFGZJZAQZUIJUH
    UDEZUEUFUJKUEAREZAUDEULABLZAMAANOAABPSUEUGUKUIUEUMUGUKKUNATUAUBUC $.

  $( A finite set of sequential integers is disjoint with its predecessor.
     (Contributed by AV, 24-Aug-2019.) $)
  fzpreddisj $p |- ( N e. ( ZZ>= ` M )
                 -> ( { M } i^i ( ( M + 1 ) ... N ) ) = (/) ) $=
    ( cuz cfv wcel csn c1 caddc co cfz cin c0 wn cz cle wbr wa cc0 1re cr incom
    wceq w3a clt 0lt1 0re ltnlei mpbi wb eluzel2 zred leaddle0 sylancl intnanrd
    mtbiri intnand elfz2 sylnibr disjsn sylibr syl5eq ) BACDEZAFZAGHIZBJIZKVEVC
    KZLVCVEUAVBAVEEZMVFLUBVBVDNEBNEANEUCZVDAOPZABOPZQZQVGVBVKVHVBVIVJVBVIGROPZR
    GUDPVLMUERGUFSUGUHVBATEGTEVIVLUIVBAABUJUKSAGULUMUOUNUPAVDBUQURVEAUSUTVA $.

  $( Append an element to a finite set of sequential integers.  (Contributed by
     NM, 19-Sep-2005.)  (Proof shortened by Mario Carneiro, 28-Apr-2015.) $)
  elfzp1 $p |- ( N e. ( ZZ>= ` M ) ->
    ( K e. ( M ... ( N + 1 ) ) <-> ( K e. ( M ... N ) \/ K = ( N + 1 ) ) ) ) $=
    ( cuz cfv wcel c1 caddc co cfz csn cun wceq wo fzsuc eleq2d elun ovex elsn2
    orbi2i bitri syl6bb ) CBDEFZABCGHIZJIZFABCJIZUDKZLZFZAUFFZAUDMZNZUCUEUHABCO
    PUIUJAUGFZNULAUFUGQUMUKUJAUDCGHRSTUAUB $.

  $( Subset relationship for finite sets of sequential integers.  (Contributed
     by NM, 26-Jul-2005.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
  fzp1ss $p |- ( M e. ZZ -> ( ( M + 1 ) ... N ) C_ ( M ... N ) ) $=
    ( cz wcel cuz cfv c1 caddc co cfz wss uzid peano2uz fzss1 3syl ) ACDAAEFZDA
    GHIZPDQBJIABJIKALAAMQABNO $.

  $( Membership in a set of sequential integers with an appended element.
     (Contributed by NM, 7-Dec-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  fzelp1 $p |- ( K e. ( M ... N ) -> K e. ( M ... ( N + 1 ) ) ) $=
    ( cfz co c1 caddc fzssp1 sseli ) BCDEBCFGEDEABCHI $.

  $( Add one to an element of a finite set of integers.  (Contributed by Jeff
     Madsen, 6-Jun-2010.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
  fzp1elp1 $p |- ( K e. ( M ... N ) -> ( K + 1 ) e. ( M ... ( N + 1 ) ) ) $=
    ( cfz co wcel c1 caddc cuz cfv elfzuz peano2uz syl elfzuz3 eluzp1p1 elfzuzb
    sylanbrc ) ABCDEFZAGHEZBIJZFZCGHEZSIJFZSBUBDEFRATFUAABCKBALMRCAIJFUCABCNACO
    MSBUBPQ $.

  $( Shift membership in a finite sequence of naturals.  (Contributed by Scott
     Fenton, 17-Jul-2013.) $)
  fznatpl1 $p |- ( ( N e. NN /\ I e. ( 1 ... ( N - 1 ) ) ) ->
           ( I + 1 ) e. ( 1 ... N ) ) $=
    ( wcel c1 co cfz wa caddc cle wbr cr zred adantl peano2re syl wb 1re mp3an2
    cz syl2anc cn cmin elfzelz ltp1d elfzle1 leadd1 mp3an13 mpbid ltletrd ltled
    1red elfzle2 nnz adantr leaddsub mpbird peano2zd 1z elfz mpbir2and ) BUACZA
    DBDUBEZFECZGZADHEZDBFECZDVEIJZVEBIJZVDDVEVDUKZVDAKCZVEKCVCVJVAVCAADVBUCZLMZ
    ANOZVDDDDHEZVEVIVDDKCZVNKCVIDNOVMVDDVIUDVDDAIJZVNVEIJZVCVPVAADVBUEMVDVJVPVQ
    PZVLVOVJVOVRQQDADUFUGOUHUIUJVDVHAVBIJZVCVSVAADVBULMVDVJBKCZVHVSPZVLVDBVABSC
    ZVCBUMUNZLVJVOVTWAQADBUORTUPVDVESCZWBVFVGVHGPZVCWDVAVCAVKUQMWCWDDSCWBWEURVE
    DBUSRTUT $.

  ${
    $d M m $.

    $( A finite interval of integers with two elements.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    fzpr $p |- ( M e. ZZ -> ( M ... ( M + 1 ) ) = { M , ( M + 1 ) } ) $=
      ( vm cz wcel c1 caddc co cfz cpr cv wceq cuz cfv uzid elfzp1 syl csn fzsn
      wo wb eleq2d velsn syl6bb orbi1d bitrd vex elpr syl6bbr eqrdv ) ACDZBAAEF
      GZHGZAUKIZUJBJZULDZUNAKZUNUKKZSZUNUMDUJUOUNAAHGZDZUQSZURUJAALMDUOVATANUNA
      AOPUJUTUPUQUJUTUNAQZDUPUJUSVBUNARUABAUBUCUDUEUNAUKBUFUGUHUI $.

    $( A finite interval of integers with three elements.  (Contributed by NM,
       13-Sep-2011.)  (Revised by Mario Carneiro, 7-Mar-2014.) $)
    fztp $p |- ( M e. ZZ -> ( M ... ( M + 2 ) )
                 = { M , ( M + 1 ) , ( M + 2 ) } ) $=
      ( cz wcel c1 caddc co cfz csn cun c2 ctp cuz cfv wceq uzid peano2uz fzsuc
      cc ax-1cn syl6eqr 3syl zcn addass mp3an23 syl df-2 oveq2i oveq2d cpr fzpr
      sneqd uneq12d df-tp 3eqtr3d ) ABCZAADEFZDEFZGFZAUPGFZUQHZIZAAJEFZGFAUPVBK
      ZUOAALMZCUPVDCURVANAOAAPAUPQUAUOUQVBAGUOUQADDEFZEFZVBUOARCZUQVFNZAUBVGDRC
      ZVIVHSSADDUCUDUEJVEAEUFUGTZUHUOVAAUPUIZVBHZIVCUOUSVKUTVLAUJUOUQVBVJUKULAU
      PVBUMTUN $.
  $}

  $( Join a successor to the end of a finite set of sequential integers.
     (Contributed by Mario Carneiro, 7-Mar-2014.) $)
  fzsuc2 $p |- ( ( M e. ZZ /\ N e. ( ZZ>= ` ( M - 1 ) ) ) ->
                 ( M ... ( N + 1 ) ) = ( ( M ... N ) u. { ( N + 1 ) } ) ) $=
    ( c1 cmin co cuz cfv wcel cz wceq caddc wo cfz csn cun cc oveq2d c0 uneq12d
    sneqd uzp1 zcn ax-1cn npcan sylancl uncom un0 eqtri clt wbr zre wb peano2zm
    ltm1d fzn mpdan mpbid fzsn 3eqtr4a eqtr4d oveq1 oveq2 eqeq12d syl5ibrcom wa
    imp fveq2d eleq2d biimpa fzsuc syl jaodan sylan2 ) BACDEZFGHAIHZBVNJZBVNCKE
    ZFGZHZLABCKEZMEZABMEZVTNZOZJZVNBUAVOVPWEVSVOVPWEVOWEVPAVQMEZAVNMEZVQNZOZJVO
    WFAAMEZWIVOVQAAMVOAPHCPHVQAJAUBUCACUDUEZQVORANZOZWLWIWJWMWLROWLRWLUFWLUGUHV
    OWGRWHWLVOVNAUIUJZWGRJZVOAAUKUNVOVNIHWNWOULAUMAVNUOUPUQVOVQAWKTSAURUSUTVPWA
    WFWDWIVPVTVQAMBVNCKVAZQVPWBWGWCWHBVNAMVBVPVTVQWPTSVCVDVFVOVSVEBAFGZHZWEVOVS
    WRVOVRWQBVOVQAFWKVGVHVIABVJVKVLVM $.

  $( ` ( M ... ( N + 1 ) ) ` is the disjoint union of ` ( M ... N ) ` with
     ` { ( N + 1 ) } ` .  (Contributed by Mario Carneiro, 7-Mar-2014.) $)
  fzp1disj $p |- ( ( M ... N ) i^i { ( N + 1 ) } ) = (/) $=
    ( cfz co c1 caddc csn cin c0 wceq wcel wn cle wbr elfzle2 elfzel2 zred ltp1
    cr clt wb peano2re ltnle mpdan mpbid syl pm2.65i disjsn mpbir ) ABCDZBEFDZG
    HIJUKUJKZLULUKBMNZUKABOULBSKZUMLZULBUKABPQUNBUKTNZUOBRUNUKSKUPUOUABUBBUKUCU
    DUEUFUGUJUKUHUI $.

  $( Remove a successor from the end of a finite set of sequential integers.
     (Contributed by AV, 4-Sep-2019.) $)
  fzdifsuc $p |- ( N e. ( ZZ>= ` M )
                  -> ( M ... N ) = ( ( M ... ( N + 1 ) ) \ { ( N + 1 ) } ) ) $=
    ( cuz cfv wcel c1 caddc co cfz csn cdif cun fzsuc difeq1d wceq uncom wss c0
    cin wb ssun2 incom fzp1disj eqtri a1i uneqdifeq sylancr mpbii eqtr2d ) BACD
    EZABFGHZIHZUKJZKABIHZUMLZUMKZUNUJULUOUMABMNUJUMUNLUOOZUPUNOZUMUNPUJUMUOQUMU
    NSZROZUQURTUMUNUAUTUJUSUNUMSRUMUNUBABUCUDUEUMUNUOUFUGUHUI $.

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( Two ways of defining the first two values of a sequence on ` NN ` .
       (Contributed by NM, 5-Sep-2011.) $)
    fzprval $p |- ( A. x e. ( 1 ... 2 ) ( F ` x ) = if ( x = 1 , A , B )
                  <-> ( ( F ` 1 ) = A /\ ( F ` 2 ) = B ) ) $=
      ( cv cfv c1 wceq cif c2 cfz co wral cpr wa caddc df-2 fveq2 eqeq12d wne
      cz wcel 1z fzpr ax-mp oveq2i preq2i 3eqtr4i raleqi 1ex iftrue 1ne2 necomi
      2ex pm13.181 mpan2 neneqd iffalsed ralpr bitri ) AEZDFZVAGHZBCIZHZAGJKLZM
      VEAGJNZMGDFZBHZJDFZCHZOVEAVFVGGGGPLZKLZGVLNZVFVGGUAUBVMVNHUCGUDUEJVLGKQUF
      JVLGQUGUHUIVEVIVKAGJUJUNVCVBVHVDBVAGDRVCBCUKSVAJHZVBVJVDCVAJDRVOVCBCVOVAG
      VOJGTVAGTGJULUMVAJGUOUPUQURSUSUT $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x F $.
    $( Two ways of defining the first three values of a sequence on ` NN ` .
       (Contributed by NM, 13-Sep-2011.) $)
    fztpval $p |- ( A. x e. ( 1 ... 3 ) ( F ` x )
                      = if ( x = 1 , A , if ( x = 2 , B , C ) )
                  <-> ( ( F ` 1 ) = A /\ ( F ` 2 ) = B /\ ( F ` 3 ) = C ) ) $=
      ( cfv c1 wceq c2 c3 cfz co ctp caddc ax-mp fveq2 eqeq12d wne gtneii neeq1
      cv cif wral w3a cz wcel 1z fztp df-3 2cn ax-1cn addcomi eqtri oveq2i df-2
      tpeq3 tpeq2 3eqtr4i raleqi 1ex 2ex 3ex iftrue 1lt2 mpbiri ifnefalse eqtrd
      1re syl 1lt3 2re 2lt3 raltp bitri ) AUAZEFZVOGHZBVOIHZCDUBZUBZHZAGJKLZUCW
      AAGIJMZUCGEFZBHZIEFZCHZJEFZDHZUDWAAWBWCGGINLZKLZGGGNLZWJMZWBWCGUEUFWKWMHU
      GGUHOJWJGKJIGNLWJUIIGUJUKULUMZUNWCGIWJMZWMJWJHWCWOHWNJWJGIUPOIWLHWOWMHUOI
      WLGWJUQOUMURUSWAWEWGWIAGIJUTVAVBVQVPWDVTBVOGEPVQBVSVCQVRVPWFVTCVOIEPVRVTV
      SCVRVOGRZVTVSHZVRWPIGRGIVHVDSVOIGTVEVOGBVSVFZVIVRCDVCVGQVOJHZVPWHVTDVOJEP
      WSVTVSDWSWPWQWSWPJGRGJVHVJSVOJGTVEWRVIWSVOIRZVSDHWSWTJIRIJVKVLSVOJITVEVOI
      CDVFVIVGQVMVN $.
  $}

  $( Reversal of start and end of a finite set of sequential integers.
     (Contributed by NM, 25-Nov-2005.) $)
  fzrev $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ ( J e. ZZ /\ K e. ZZ ) ) ->
         ( K e. ( ( J - N ) ... ( J - M ) ) <-> ( J - K ) e. ( M ... N ) ) ) $=
    ( cz wcel wa cmin co cle wbr cfz wb cr zre syl3an 3expb zsubcl ancoms elfz
    ancom suble 3comr adantll lesub adantlr anbi12d syl5rbbr ad2ant2lr ad2ant2r
    simprr syl3anc adantl simpll simplr 3bitr4d ) CEFZDEFZGZAEFZBEFZGZGZADHIZBJ
    KZBACHIZJKZGZCABHIZJKZVIDJKZGZBVDVFLIFZVICDLIFZVLVKVJGVCVHVKVJUAVCVKVEVJVGU
    RVBVKVEMZUQURUTVAVOUTVAURVOUTANFZVABNFZURDNFVOAOZBOZDOABDUBPUCQUDUQVBVJVGMZ
    URUQUTVAVTUQCNFUTVPVAVQVTCOVRVSCABUEPQUFUGUHVCVAVDEFZVFEFZVMVHMUSUTVAUKURUT
    WAUQVAUTURWAADRSUIUQUTWBURVAUTUQWBACRSUJBVDVFTULVCVIEFZUQURVNVLMVBWCUSABRUM
    UQURVBUNUQURVBUOVICDTULUP $.

  $( Reversal of start and end of a finite set of sequential integers.
     (Contributed by NM, 25-Nov-2005.) $)
  fzrev2 $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ ( J e. ZZ /\ K e. ZZ ) ) ->
         ( K e. ( M ... N ) <-> ( J - K ) e. ( ( J - N ) ... ( J - M ) ) ) ) $=
    ( cz wcel wa cmin co cfz wb simpl zsubcl jca fzrev sylan2 wceq cc zcn nncan
    syl2an adantl eleq1d bitr2d ) CEFDEFGZAEFZBEFZGZGZABHIZADHIACHIJIFZAUJHIZCD
    JIZFZBUMFUHUEUFUJEFZGUKUNKUHUFUOUFUGLABMNAUJCDOPUIULBUMUHULBQZUEUFARFBRFUPU
    GASBSABTUAUBUCUD $.

  $( Reversal of start and end of a finite set of sequential integers.
     (Contributed by NM, 25-Nov-2005.) $)
  fzrev2i $p |- ( ( J e. ZZ /\ K e. ( M ... N ) )
                 -> ( J - K ) e. ( ( J - N ) ... ( J - M ) ) ) $=
    ( cz wcel co wa cmin simpr wb elfzel1 adantl elfzel2 simpl elfzelz syl22anc
    cfz fzrev2 mpbid ) AEFZBCDRGFZHZUBABIGADIGACIGRGFZUAUBJUCCEFZDEFZUABEFZUBUD
    KUBUEUABCDLMUBUFUABCDNMUAUBOUBUGUABCDPMABCDSQT $.

  $( The "complement" of a member of a finite set of sequential integers.
     (Contributed by NM, 20-Nov-2005.) $)
  fzrev3 $p |- ( K e. ZZ -> ( K e. ( M ... N )
                <-> ( ( M + N ) - K ) e. ( M ... N ) ) ) $=
    ( cz wcel cfz co caddc cmin w3a wa simpl elfzel1 adantl elfzel2 3jca wb zcn
    cc 3adant1 wceq pncan pncan2 syl2an eleq2d 3simpc zaddcl simp1 fzrev bitr3d
    oveq12d syl12anc pm5.21nd ) ADEZABCFGZEZBCHGZAIGZUOEZUNBDEZCDEZJZUNUPKUNUTV
    AUNUPLUPUTUNABCMNUPVAUNABCONPUNUSKUNUTVAUNUSLUSUTUNURBCMNUSVAUNURBCONPVBAUQ
    CIGZUQBIGZFGZEZUPUSUTVAVFUPQUNUTVAKZVEUOAUTBSEZCSEZVEUOUAVABRCRVHVIKVCBVDCF
    BCUBBCUCUKUDUETVBVGUQDEZUNVFUSQUNUTVAUFUTVAVJUNBCUGTUNUTVAUHUQABCUIULUJUM
    $.

  $( The "complement" of a member of a finite set of sequential integers.
     (Contributed by NM, 20-Nov-2005.) $)
  fzrev3i $p |- ( K e. ( M ... N ) -> ( ( M + N ) - K ) e. ( M ... N ) ) $=
    ( cfz co wcel caddc cmin cz wb elfzelz fzrev3 syl ibi ) ABCDEZFZBCGEAHEOFZP
    AIFPQJABCKABCLMN $.

  $( Finite set of sequential integers starting at 1.  (Contributed by NM,
     31-Aug-2011.)  (Revised by Mario Carneiro, 18-Jun-2015.) $)
  fznn $p |- ( N e. ZZ
              -> ( K e. ( 1 ... N ) <-> ( K e. NN /\ K <_ N ) ) ) $=
    ( c1 cfz co wcel cn cuz cfv wa cz cle wbr elfzuzb elnnuz anbi1i bitr4i eluz
    wb nnz sylan ancoms pm5.32da syl5bb ) ACBDEFZAGFZBAHIFZJZBKFZUFABLMZJUEACHI
    FZUGJUHACBNUFUKUGAOPQUIUFUGUJUFUIUGUJSZUFAKFUIULATABRUAUBUCUD $.

  $( Membership in a 1 based finite set of sequential integers.  (Contributed
     by AV, 30-Oct-2018.)  (Proof shortened by AV, 23-Jan-2022.) $)
  elfz1b $p |- ( N e. ( 1 ... M ) <-> ( N e. NN /\ M e. NN /\ N <_ M ) ) $=
    ( c1 cfz co wcel cn cle wbr wa cz elfz2 simpl2 cr wi 1red 3ad2ant3 sylanbrc
    w3a zre 3ad2ant2 letr syl3anc imp elnnz1 sylbi elfzel2 biimpd mpcom 3anan12
    fznn wb nnz syl biimprd expd 3imp21 impbii ) BCADEFZBGFZAGFZBAHIZSZUSVAUTVB
    JZVCUSCKFZAKFZBKFZSZCBHIVBJZJZVABCALVJVFCAHIZVAVEVFVGVIMVHVIVKVHCNFBNFZANFZ
    VIVKOVHPVGVEVLVFBTQVFVEVMVGATUACBAUBUCUDAUERUFVFUSVDBCAUGVFUSVDBAUKZUHUIUTV
    AVBUJRVAUTVBUSVAUTVBUSVAUSVDVAVFUSVDULAUMVNUNUOUPUQUR $.

  $( Membership in a 1 based finite set of sequential integers with an upper
     integer.  (Contributed by AV, 23-Jan-2022.) $)
  elfz1uz $p |- ( ( N e. NN /\ M e. ( ZZ>= ` N ) ) -> N e. ( 1 ... M ) ) $=
    ( cn wcel cuz cfv wa c1 cfz co cle wbr simpl eluzle adantl eluzelz fznn syl
    cz wb mpbir2and ) BCDZABEFDZGZBHAIJDZUBBAKLZUBUCMUCUFUBBANOUDASDZUEUBUFGTUC
    UGUBBAPOBAQRUA $.

  $( Membership in a finite set of sequential integers.  (Contributed by Paul
     Chapman, 21-Mar-2011.) $)
  elfzm11 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( K e. ( M ... ( N - 1 ) ) <->
                                         ( K e. ZZ /\ M <_ K /\ K < N ) ) ) $=
    ( cz wcel wa c1 cmin co cfz cle wbr w3a clt wb peano2zm elfz1 sylan2 3anass
    zltlem1 anbi2d expcom pm5.32d 3bitr4g adantl bitr4d ) BDEZCDEZFABCGHIZJIEZA
    DEZBAKLZAUIKLZMZUKULACNLZMZUHUGUIDEUJUNOCPABUIQRUHUPUNOUGUHUKULUOFZFUKULUMF
    ZFUPUNUHUKUQURUKUHUQUROUKUHFUOUMULACTUAUBUCUKULUOSUKULUMSUDUEUF $.

  ${
    $d k M $.  $d k N $.
    $( Express an upper integer set as the disjoint (see ~ uzdisj ) union of
       the first ` N ` values and the rest.  (Contributed by Mario Carneiro,
       24-Apr-2014.) $)
    uzsplit $p |- ( N e. ( ZZ>= ` M ) -> ( ZZ>= ` M ) =
                  ( ( M ... ( N - 1 ) ) u. ( ZZ>= ` N ) ) ) $=
      ( vk cuz cfv wcel c1 cmin co cfz wo wa cle wbr cr eluzelre syl2an eluzelz
      cz wb cun clt lelttric eluz eluzel2 w3a elfzm11 df-3an syl6bb syl2anr jca
      cv eluzle adantl biantrurd bitr4d orbi12d mpbird orcomd elfzuz a1i expcom
      ex wi uztrn jaod impbid elun syl6bbr eqrdv ) BADEZFZCVKABGHIZJIZBDEZUAZVL
      CULZVKFZVQVNFZVQVOFZKZVQVPFVLVRWAVLVRWAVLVRLZVTVSWBVTVSKBVQMNZVQBUBNZKZVL
      BOFVQOFWEVRABPAVQPBVQUCQWBVTWCVSWDVLBSFZVQSFZVTWCTVRABRZAVQRZBVQUDQWBVSWG
      AVQMNZLZWDLZWDVRASFZWFVSWLTVLAVQUEWHWMWFLVSWGWJWDUFWLVQABUGWGWJWDUHUIUJWB
      WKWDVRWKVLVRWGWJWIAVQUMUKUNUOUPUQURUSVCVLVSVRVTVSVRVDVLVQAVMUTVAVTVLVRBVQ
      AVEVBVFVGVQVNVOVHVIVJ $.

    $( The first ` N ` elements of an upper integer set are distinct from any
       later members.  (Contributed by Mario Carneiro, 24-Apr-2014.) $)
    uzdisj $p |- ( ( M ... ( N - 1 ) ) i^i ( ZZ>= ` N ) ) = (/) $=
      ( vk c1 cmin co cfz cuz cfv cin c0 wss wceq wcel wbr cle syl mpbid zred
      cz cv elin simprbi eluzle eluzel2 eluzelz zlem1lt syl2anc simplbi elfzle2
      clt wb wn peano2zm lenltd pm2.21dd ssriv ss0 ax-mp ) ABDEFZGFZBHIZJZKLVCK
      MCVCKCUAZVCNZUTVDUKOZVDKNVEBVDPOZVFVEVDVBNZVGVEVDVANZVHVDVAVBUBZUCZBVDUDQ
      VEBTNZVDTNZVGVFULVEVHVLVKBVDUEQZVEVHVMVKBVDUFQZBVDUGUHRVEVDUTPOZVFUMVEVIV
      PVEVIVHVJUIVDAUTUJQVEVDUTVEVDVOSVEUTVEVLUTTNVNBUNQSUORUPUQVCURUS $.
  $}

  ${
    fseq1p1m1.1 $e |- H = { <. ( N + 1 ) , B >. } $.
    $( Add/remove an item to/from the end of a finite sequence.  (Contributed
       by Paul Chapman, 17-Nov-2012.)  (Revised by Mario Carneiro,
       7-Mar-2014.) $)
    fseq1p1m1 $p |- ( N e. NN0 ->
        ( ( F : ( 1 ... N ) --> A /\ B e. A /\ G = ( F u. H ) ) <->
          ( G : ( 1 ... ( N + 1 ) ) --> A /\ ( G ` ( N + 1 ) ) = B /\
            F = ( G |` ( 1 ... N ) ) ) ) ) $=
      ( cn0 wcel c1 co wf cun wceq cfv cres csn c0 cn 3syl cfz w3a caddc wa cin
      simpr1 nn0p1nn adantr simpr2 fsng mpbiri syl2anc snssd fssd fzp1disj fun2
      cop a1i syl21anc cz cmin cuz simpl cc0 nn0uz 1m1e0 fveq2i eqtr4i syl6eleq
      1z fzsuc2 sylancr eqcomd feq2d mpbid simpr3 feq1d mpbird ovex fvres ax-mp
      reseq1d wfn wb ffn fnresdisj uneq1d resundir uncom eqtr2i 3eqtr4g fnresdm
      snid 3eqtrd fveq1d fveq1i fvsng syl5eq eqtrd syl5eqr incom uneq2d 3eqtrrd
      un0 eqcomi 3jca wss fzssp1 sylancl nnuz eluzfz2 ffvelrnd eqeltrrd fnressn
      fssres syl opeq2 sneqd syl6reqr uneq12d reseq2d resundi syl6req impbida )
      FHIZJFUAKZACLZBAIZDCEMZNZUBZJFJUCKZUAKZADLZYLDOZBNZCDYFPZNZUBZYEYKUDZYNYP
      YRYTYNYMAYILZYTYFYLQZMZAYILZUUAYTYGUUBAELZYFUUBUEZRNZUUDYEYGYHYJUFZYTUUBB
      QZAEYTYLSIZYHUUBUUIELZYEUUJYKFUGZUHZYEYGYHYJUIZUUJYHUDZUUKEYLBUQZQZNGYLBS
      AEUJUKULZYTBAUUNUMUNZUUGYTJFUOURZYFUUBACEUPUSYTUUCYMAYIYTYMUUCYTJUTIZFJJV
      AKZVBOZIZYMUUCNZVJYTFHUVCYEYKVCHVDVBOUVCVEUVBVDVBVFVGVHZVIJFVKZVLVMVNVOYT
      YMADYIYEYGYHYJVPZVQVRYTYOYLDUUBPZOZBYLUUBIUVJYONYLFJUCVSWMYLUUBDVTWAYTUVJ
      YLEOZBYTYLUVIEYTUVIYIUUBPZEUUBPZEYTDYIUUBUVHWBYTCUUBPZUVMMRUVMMZUVLUVMYTU
      VNRUVMYTUUGUVNRNZUUTYTYGCYFWCZUUGUVPWDUUHYFACWEZYFUUBCWFTVOWGCEUUBWHUVOUV
      MRMUVMRUVMWIUVMXDWJWKYTUUEEUUBWCZUVMENUUSUUBAEWEUUBEWLTWNWOYTUUJYHUVKBNUU
      MUUNUUOUVKYLUUQOBYLEUUQGWPYLBSAWQWRULWSWTYTYQYIYFPZCYFPZCYTDYIYFUVHWBYTUW
      AEYFPZMUWARMZUVTUWAYTUWBRUWAYTUUBYFUEZRNZUWBRNZYTUWDUUFRUUBYFXAUUTWRYTUUK
      UVSUWEUWFWDUURUUBUUIEWEUUBYFEWFTVOXBCEYFWHUWCUWAUWAXDXEWKYTYGUVQUWACNUUHU
      VRYFCWLTXCXFYEYSUDZYGYHYJUWGYGYFAYQLZUWGYNYFYMXGUWHYEYNYPYRUFZJFXHYMAYFDX
      OXIUWGYFACYQYEYNYPYRVPZVQVRUWGYOBAYEYNYPYRUIZUWGYMAYLDUWIUWGYLJVBOZIYLYMI
      ZUWGYLSUWLYEUUJYSUULUHXJVIJYLXKXPZXLXMUWGYIYQUVIMZDYMPZDUWGCYQEUVIUWJUWGU
      VIUUQEUWGUVIYLYOUQZQZUUQUWGDYMWCZUWMUVIUWRNUWGYNUWSUWIYMADWEZXPUWNYMYLDXN
      ULUWGYPUWRUUQNUWKYPUWQUUPYOBYLXQXRXPWSGXSXTUWGUWPDUUCPUWOUWGYMUUCDUWGUVAU
      VDUVEVJUWGFHUVCYEYSVCUVFVIUVGVLYADYFUUBYBYCUWGYNUWSUWPDNUWIUWTYMDWLTXCXFY
      D $.
  $}

  ${
    fseq1m1p1.1 $e |- H = { <. N , B >. } $.
    $( Add/remove an item to/from the end of a finite sequence.  (Contributed
       by Paul Chapman, 17-Nov-2012.) $)
    fseq1m1p1 $p |- ( N e. NN ->
        ( ( F : ( 1 ... ( N - 1 ) ) --> A /\ B e. A /\ G = ( F u. H ) ) <->
          ( G : ( 1 ... N ) --> A /\ ( G ` N ) = B /\
            F = ( G |` ( 1 ... ( N - 1 ) ) ) ) ) ) $=
      ( cn wcel c1 co cfz wf cop csn cun wceq w3a cfv cc cmin caddc cres cn0 wb
      nnm1nn0 eqid fseq1p1m1 syl nncn ax-1cn npcan sylancl opeq1d sneqd syl6eqr
      uneq2d eqeq2d 3anbi3d oveq2d feq2d fveq2d eqeq1d 3anbi12d 3bitr3d ) FHIZJ
      FJUAKZLKZACMZBAIZDCVGJUBKZBNZOZPZQZRZJVKLKZADMZVKDSZBQZCDVHUCQZRZVIVJDCEP
      ZQZRJFLKZADMZFDSZBQZWARVFVGUDIVPWBUEFUFABCDVMVGVMUGUHUIVFVOWDVIVJVFVNWCDV
      FVMECVFVMFBNZOEVFVLWIVFVKFBVFFTIJTIVKFQFUJUKFJULUMZUNUOGUPUQURUSVFVRWFVTW
      HWAVFVQWEADVFVKFJLWJUTVAVFVSWGBVFVKFDWJVBVCVDVE $.
  $}

  ${
    $d k N $.
    $( Quantification over a one-member finite set of sequential integers in
       terms of substitution.  (Contributed by NM, 28-Nov-2005.) $)
    fz1sbc $p |- ( N e. ZZ
        -> ( A. k e. ( N ... N ) ph <-> [. N / k ]. ph ) ) $=
      ( cz wcel wsbc cv wceq wi wal cfz co wral sbc6g df-ral elfz1eq syl5ibrcom
      elfz3 eleq1 impbid2 imbi1d albidv syl5rbb bitr2d ) CDEZABCFBGZCHZAIZBJZAB
      CCKLZMZABCDNUKUFUJEZAIZBJUEUIABUJOUEUMUHBUEULUGAUEULUGUFCPUEULUGCUJECRUFC
      UJSQTUAUBUCUD $.
  $}

  $( An integer is a member of a 0-based finite set of sequential integers iff
     its successor is a member of the corresponding 1-based set.  (Contributed
     by Paul Chapman, 22-Jun-2011.) $)
  elfzp1b $p |- ( ( K e. ZZ /\ N e. ZZ ) ->
                ( K e. ( 0 ... ( N - 1 ) ) <-> ( K + 1 ) e. ( 1 ... N ) ) ) $=
    ( cz wcel wa c1 caddc co cfz cc0 wb peano2z 1z fzsubel mpanl1 mpanr2 sylan2
    cmin cc wceq ancoms zcn ax-1cn pncan sylancl 1m1e0 oveq1i a1i adantr bitr2d
    eleq12d ) ACDZBCDZEAFGHZFBIHDZUNFRHZFFRHZBFRHZIHZDZAJURIHZDZUMULUOUTKZULUMU
    NCDZVCALUMVDFCDZVCMVEUMVDVEEVCMUNFFBNOPQUAULUTVBKUMULUPAUSVAULASDFSDUPATAUB
    UCAFUDUEUSVATULUQJURIUFUGUHUKUIUJ $.

  $( An integer is a member of a 1-based finite set of sequential integers iff
     its predecessor is a member of the corresponding 0-based set.
     (Contributed by Paul Chapman, 22-Jun-2011.) $)
  elfzm1b $p |- ( ( K e. ZZ /\ N e. ZZ ) ->
                ( K e. ( 1 ... N ) <-> ( K - 1 ) e. ( 0 ... ( N - 1 ) ) ) ) $=
    ( cz wcel c1 cfz co cmin wb wa 1z fzsubel mpanl1 mpanr2 1m1e0 oveq1i eleq2i
    cc0 syl6bb ancoms ) BCDZACDZAEBFGDZAEHGZRBEHGZFGZDZIUAUBJUCUDEEHGZUEFGZDZUG
    UAUBECDZUCUJIZKUKUAUBUKJULKAEEBLMNUIUFUDUHRUEFOPQST $.

  $( Options for membership in a finite interval of integers.  (Contributed by
     Jeff Madsen, 18-Jun-2010.) $)
  elfzp12 $p |- ( N e. ( ZZ>= ` M ) -> ( K e. ( M ... N ) <->
                                ( K = M \/ K e. ( ( M + 1 ) ... N ) ) ) ) $=
    ( cuz cfv wcel cfz co wceq c1 caddc wo cvv wa elex anim2i elfvex syl5ibrcom
    eleq1 imdistani jaodan csn cun fzpred eleq2d syl6bb elsng sylan9bb pm5.21nd
    elun orbi1d ) CBDEFZABCGHZFZABIZABJKHCGHZFZLZULAMFZNZUNUSULAUMOPULUOUTUQULU
    OUSULUSUOBMFCBDQABMSRTUQUSULAUPOPUAULUNABUBZFZUQLZUSURULUNAVAUPUCZFVCULUMVD
    ABCUDUEAVAUPUJUFUSVBUOUQABMUGUKUHUI $.

  $( Choices for an element of a finite interval of integers.  (Contributed by
     Jeff Madsen, 2-Sep-2009.) $)
  fzm1 $p |- ( N e. ( ZZ>= ` M ) -> ( K e. ( M ... N ) <->
                              ( K e. ( M ... ( N - 1 ) ) \/ K = N ) ) ) $=
    ( cuz wcel wceq cfz co c1 wo wb wa eleq2d adantl c0 clt wbr cz adantr mpbid
    cfv cmin wi oveq1 elfz1eq syl6bir olc syl6 noel eluzelz ltm1d breq2 eluzel2
    zred 1zzd zsubcld syl2anc mtbiri pm2.21d eluzfz2 ad2antrr eleq1 mpbird jaod
    fzn ex impbid caddc elfzp1 cc zcnd npcan1 oveq2d eqeq2d orbi2d 3bitr3d uzm1
    syl mpjaodan ) CBDUAZEZCBFZABCGHZEZABCIUBHZGHZEZACFZJZKWEVTEZWAWBLZWDWIWBWD
    WIUCWAWBWDWHWIWBWDACCGHZEWHWBWLWCACBCGUDMACUEUFWHWGUGUHNWKWGWDWHWKWGWDWKWGA
    OEAUIWKWFOAWKWEBPQZWFOFZWKWECPQZWMWKCWKCWACREZWBBCUJZSZUNUKWBWOWMKWACBWEPUL
    NTWKBREZWEREWMWNKWAWSWBBCUMSWKCIWRWKUOUPBWEVEUQTMURUSWKWHWDWKWHLWDCWCEZWAWT
    WBWHBCUTVAWHWDWTKWKACWCVBNVCVFVDVGWAWJLZABWEIVHHZGHZEZWGAXBFZJZWDWIWJXDXFKW
    AABWEVINXAXCWCAXAXBCBGXACVJEXBCFXACWAWPWJWQSVKCVLVRZVMMXAXEWHWGXAXBCAXGVNVO
    VPBCVQVS $.

  $( No finite set of sequential integers equals an upper set of integers.
     (Contributed by NM, 11-Dec-2005.) $)
  fzneuz $p |- ( ( N e. ( ZZ>= ` M ) /\ K e. ZZ )
               -> -. ( M ... N ) = ( ZZ>= ` K ) ) $=
    ( cuz cfv wcel cz wa cfz co wceq wn c1 caddc peano2uz adantl wbr cr nelneq2
    ad2antrr cle eluzelre clt wb peano2re ltnle mpdan mpbid syl elfzle2 syl2anc
    ltp1 nsyl eqcom sylnib eluzfz2 sylancom pm2.61dan ) CBDEFZAGFZHZCADEZFZBCIJ
    ZVBKZLZVAVCHZVBVDKZVEVGCMNJZVBFZVIVDFZLZVHLVCVJVAACOPUSVLUTVCUSVICUAQZVKUSC
    RFZVMLZBCUBVNCVIUCQZVOCULVNVIRFVPVOUDCUECVIUFUGUHUIVIBCUJUMTVIVBVDSUKVBVDUN
    UOVAVCLZCVDFZVFUSVRUTVQBCUPTCVDVBSUQUR $.

  $( Disjointness of the upper integers and a finite sequence.  (Contributed by
     Mario Carneiro, 30-Jun-2013.)  (Revised by Mario Carneiro,
     24-Aug-2013.) $)
  fznuz $p |- ( K e. ( M ... N ) -> -. K e. ( ZZ>= ` ( N + 1 ) ) ) $=
    ( cfz co wcel c1 caddc cuz cfv cle wbr elfzle2 clt wn cz wi elfzel2 cr zre
    eluzp1l ex syl wb elfzelz ltnle syl2an syl2anc sylibd mt2d ) ABCDEFZACGHEIJ
    FZACKLZABCMUKULCANLZUMOZUKCPFZULUNQABCRZUPULUNCAUAUBUCUKUPAPFZUNUOUDZUQABCU
    EUPCSFASFUSURCTATCAUFUGUHUIUJ $.

  $( Disjointness of the upper integers and a finite sequence.  (Contributed by
     Mario Carneiro, 24-Aug-2013.) $)
  uznfz $p |- ( K e. ( ZZ>= ` N ) -> -. K e. ( M ... ( N - 1 ) ) ) $=
    ( cuz cfv wcel c1 cmin co cfz cle wbr eluzle clt wn cz eluzel2 wi cr zre wa
    elfzel1 w3a elfzm11 simp3 syl6bi impancom mpancom syl5com wb eluzelz syl2an
    ltnle syl2anc sylibd mt2d ) ACDEFZABCGHIZJIFZCAKLZCAMUQUSACNLZUTOZUQCPFZUSV
    ACAQZBPFZUSVCVARABURUBVEVCUSVAVEVCUAUSAPFZBAKLZVAUCVAABCUDVFVGVAUEUFUGUHUIU
    QVFVCVAVBUJZCAUKVDVFASFCSFVHVCATCTACUMULUNUOUP $.

  $( One plus the upper bound of a finite set of integers is not a member of
     that set.  (Contributed by Scott Fenton, 16-Dec-2017.) $)
  fzp1nel $p |- -. ( N + 1 ) e. ( M ... N ) $=
    ( c1 caddc co cfz wcel wn cz w3a cle wbr wa wi cr zre clt ltp1 id peano2re
    ltnled mpbid syl intnand 3ad2ant2 elfz2 notbii imnan bitr4i mpbir ) BCDEZAB
    FEGZHZAIGZBIGZUKIGZJZAUKKLZUKBKLZMZHZNZUOUNVAUPUOUSURUOBOGZUSHZBPVCBUKQLVDB
    RVCBUKVCSBTUAUBUCUDUEUMUQUTMZHVBULVEUKABUFUGUQUTUHUIUJ $.

  ${
    $d j k x K $.  $d j k x M $.  $d j k x N $.  $d k x ph $.
    $( Reversal of scanning order inside of a quantification over a finite set
       of sequential integers.  (Contributed by NM, 25-Nov-2005.) $)
    fzrevral $p |- ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ )
     -> ( A. j e. ( M ... N ) ph
         <-> A. k e. ( ( K - N ) ... ( K - M ) ) [. ( K - k ) / j ]. ph ) ) $=
      ( cz wcel cfz co wral cv cmin wsbc wi wa wb elfzelz syl wceq simpr sylan2
      w3a fzrev anassrs mpbid rspsbc ex 3impa com23 ralrimdv nfcv nfsbc1v nfral
      nfv fzrev2i oveq2 sbceq1d rspcv cc zcn zcnd syl2an eqcomd sbceq1a sylibrd
      nncan ralrimd 3ad2ant3 impbid ) EGHZFGHZDGHZUCZABEFIJZKZABDCLZMJZNZCDFMJZ
      DEMJZIJZKZVNVPVSCWBVNVQWBHZVPVSVKVLVMWDVPVSOZOVKVLPZVMPZWDWEWGWDPZVRVOHZW
      EWHWDWIWGWDUAWDWGVQGHZWDWIQZVQVTWARWFVMWJWKDVQEFUDUEUBUFABVRVOUGSUHUIUJUK
      VMVKWCVPOVLVMWCABVOVMBUOVSBCWBBWBULABVRUMUNVMBLZVOHZWCAVMWMWCAOVMWMPZWCAB
      DDWLMJZMJZNZAWNWOWBHWCWQODWLEFUPVSWQCWOWBVQWOTABVRWPVQWODMUQURUSSWNWLWPTA
      WQQWNWPWLVMDUTHWLUTHWPWLTWMDVAWMWLWLEFRVBDWLVGVCVDABWPVESVFUHUJVHVIVJ $.

    $( Reversal of scanning order inside of a quantification over a finite set
       of sequential integers.  (Contributed by NM, 25-Nov-2005.) $)
    fzrevral2 $p |- ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ )
        -> ( A. j e. ( ( K - N ) ... ( K - M ) ) ph
             <-> A. k e. ( M ... N ) [. ( K - k ) / j ]. ph ) ) $=
      ( cz wcel cmin co cfz wral wb w3a zsubcl 3adant2 3adant3 cc wceq zcn wsbc
      cv simp1 fzrevral syl3anc nncan oveq12d syl3an raleqdv bitrd 3coml ) DGHZ
      EGHZFGHZABDFIJZDEIJZKJLZABDCUBIJUAZCEFKJZLZMULUMUNNZUQURCDUPIJZDUOIJZKJZL
      ZUTVAUOGHZUPGHZULUQVEMULUNVFUMDFOPULUMVGUNDEOQULUMUNUCABCDUOUPUDUEVAURCVD
      USULDRHZUMERHZUNFRHZVDUSSDTETFTVHVIVJNVBEVCFKVHVIVBESVJDEUFQVHVJVCFSVIDFU
      FPUGUHUIUJUK $.

    $( Reversal of scanning order inside of a quantification over a finite set
       of sequential integers.  (Contributed by NM, 20-Nov-2005.) $)
    fzrevral3 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( A. j e. ( M ... N ) ph
              <-> A. k e. ( M ... N ) [. ( ( M + N ) - k ) / j ]. ph ) ) $=
      ( cz wcel wa cfz co wral caddc cv cmin wsbc wb zaddcl fzrevral cc zcn
      mpd3an3 wceq pncan pncan2 oveq12d syl2an raleqdv bitrd ) DFGZEFGZHZABDEIJ
      ZKZABDELJZCMNJOZCUNENJZUNDNJZIJZKZUOCULKUIUJUNFGUMUSPDEQABCUNDERUAUKUOCUR
      ULUIDSGZESGZURULUBUJDTETUTVAHUPDUQEIDEUCDEUDUEUFUGUH $.

    $( Shift the scanning order inside of a quantification over a finite set of
       sequential integers.  (Contributed by NM, 27-Nov-2005.) $)
    fzshftral $p |- ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ )
        -> ( A. j e. ( M ... N ) ph
          <-> A. k e. ( ( M + K ) ... ( N + K ) ) [. ( k - K ) / j ]. ph ) ) $=
      ( vx cz wcel cfz co wral cc0 cmin wsbc caddc wb cc wceq wa cv 0z fzrevral
      w3a mp3an3 3adant3 zsubcl mpan syl3an 3com12 cvv ovex oveq2 sbcco3g ax-mp
      ralbii zcn cneg df-neg oveq2i subneg addcom eqtrd syl5eqr 3adant2 oveq12d
      id 3coml raleqdv elfzelz negsubdi2 syl2an sbceq1d ralbidva 3ad2ant3 bitrd
      zcnd syl5bb 3bitrd ) EHIZFHIZDHIZUDZABEFJKLZABMGUAZNKZOZGMFNKZMENKZJKLZWG
      GDCUAZNKZOZCDWINKZDWHNKZJKZLZABWKDNKZOZCEDPKZFDPKZJKZLZVTWAWDWJQZWBVTWAMH
      IZXDUBABGMEFUCUEUFWAVTWBWJWQQZWAWHHIZVTWIHIZWBWBXFXEWAXGUBMFUGUHXEVTXHUBM
      EUGUHWBVGWGGCDWHWIUCUIUJWQABMWLNKZOZCWPLZWCXCWMXJCWPWLUKIWMXJQDWKNULAGBWL
      WFXIUKWEWLMNUMUNUOUPWCXKXJCXBLZXCWCXJCWPXBVTERIZWAFRIZWBDRIZWPXBSZEUQFUQD
      UQZXOXMXNXPXOXMXNUDWNWTWOXAJXOXMWNWTSXNXOXMTZWNDEURZNKZWTXSWIDNEUSUTXRXTD
      EPKWTDEVADEVBVCVDUFXOXNWOXASXMXOXNTZWODFURZNKZXAYBWHDNFUSUTYAYCDFPKXADFVA
      DFVBVCVDVEVFVHUIVIWBVTXLXCQWAWBXJWSCXBWBWKXBIZTABXIWRWBXOWKRIZXIWRSYDXQYD
      WKWKWTXAVJVQXOYETXIWLURWRWLUSDWKVKVDVLVMVNVOVPVRVS $.
  $}

  $( Membership of an integer greater than 1 decreased by 1 in a 1 based finite
     set of sequential integers.  (Contributed by Alexander van der Vekens,
     14-Sep-2018.) $)
  ige2m1fz1 $p |- ( N e. ( ZZ>= ` 2 ) -> ( N - 1 ) e. ( 1 ... N ) ) $=
    ( c2 cuz cfv wcel c1 cmin co cfz wceq 1e2m1 a1i oveq2d 2nn uzsubsubfz1 mpan
    cn eqeltrd ) ABCDEZAFGHABFGHZGHZFAIHZSFTAGFTJSKLMBQESUAUBENBAOPR $.

  $( Membership in a 0 based finite set of sequential integers.  (Contributed
     by Alexander van der Vekens, 18-Jun-2018.)  (Proof shortened by Alexander
     van der Vekens, 15-Sep-2018.) $)
  ige2m1fz $p |- ( ( N e. NN0 /\ 2 <_ N ) -> ( N - 1 ) e. ( 0 ... N ) ) $=
    ( cn0 wcel c2 cle wbr wa c1 cfz co cc0 cmin cuz cfv 1eluzge0 fzss1 ax-mp cz
    wss 2z a1i nn0z adantr simpr eluz2 syl3anbrc ige2m1fz1 syl sseldi ) ABCZDAE
    FZGZHAIJZKAIJZAHLJZHKMNCUMUNSOHKAPQULADMNCZUOUMCULDRCZARCZUKUPUQULTUAUJURUK
    AUBUCUJUKUDDAUEUFAUGUHUI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finite intervals of nonnegative integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Finite intervals of nonnegative integers (or "finite sets of sequential
nonnegative integers") are finite intervals of integers with 0 as lower bound:
` ( 0 ... N ) `, usually abbreviated by "fz0".
$)

  $( Membership in a finite set of sequential nonnegative integers.
     (Contributed by NM, 16-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  elfz2nn0 $p |- ( K e. ( 0 ... N ) <-> ( K e. NN0 /\ N e. NN0 /\ K <_ N ) ) $=
    ( cc0 cuz cfv wcel cn0 cle wbr cfz w3a elnn0uz anbi1i eluznn0 eluzle adantl
    wa co cz nn0z jca wb eluz syl2an biimprd impr impbida pm5.32i bitr3i 3anass
    elfzuzb 3bitr4i ) ACDEFZBADEFZQZAGFZBGFZABHIZQZQZACBJRFUPUQURKUOUPUNQZUTUPU
    MUNALMUPUNUSUPUNUSVAUQURBANUNURUPABOPUAUPUQURUNUPUQQUNURUPASFBSFUNURUBUQATB
    TABUCUDUEUFUGUHUIACBUKUPUQURUJUL $.

  $( Characterization of a finite set of sequential nonnegative integers.
     (Contributed by NM, 1-Aug-2005.) $)
  fznn0 $p |- ( N e. NN0
                -> ( K e. ( 0 ... N ) <-> ( K e. NN0 /\ K <_ N ) ) ) $=
    ( cn0 wcel cc0 cfz co cz cle wbr w3a wa wb nn0z elfz1 sylancr df-3an elnn0z
    0z anbi1i bitr4i syl6bb ) BCDZAEBFGDZAHDZEAIJZABIJZKZACDZUGLZUCEHDBHDUDUHMS
    BNAEBOPUHUEUFLZUGLUJUEUFUGQUIUKUGARTUAUB $.

  $( A member of a finite set of sequential nonnegative integers is a
     nonnegative integer.  (Contributed by NM, 5-Aug-2005.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  elfznn0 $p |- ( K e. ( 0 ... N ) -> K e. NN0 ) $=
    ( cc0 cfz co wcel cn0 cle wbr elfz2nn0 simp1bi ) ACBDEFAGFBGFABHIABJK $.

  $( The upper bound of a nonempty finite set of sequential nonnegative
     integers is a nonnegative integer.  (Contributed by NM, 16-Sep-2005.)
     (Revised by Mario Carneiro, 28-Apr-2015.) $)
  elfz3nn0 $p |- ( K e. ( 0 ... N ) -> N e. NN0 ) $=
    ( cc0 cfz co wcel cn0 cle wbr elfz2nn0 simp2bi ) ACBDEFAGFBGFABHIABJK $.

  ${
    $d k N $.
    $( Finite sets of sequential nonnegative integers starting with 0 are
       subsets of NN0.  (Contributed by JJ, 1-Jun-2021.) $)
    fz0ssnn0 $p |- ( 0 ... N ) C_ NN0 $=
      ( vk cc0 cfz co cn0 cv elfznn0 ssriv ) BCADEFBGAHI $.
  $}

  $( 0 is an element of a finite set of sequential nonnegative integers with a
     nonnegative integer as upper bound.  (Contributed by AV, 6-Apr-2018.) $)
  0elfz $p |- ( N e. NN0 -> 0 e. ( 0 ... N ) ) $=
    ( cn0 wcel cc0 cle wbr cfz co 0nn0 a1i id nn0ge0 elfz2nn0 syl3anbrc ) ABCZD
    BCZODAEFDDAGHCPOIJOKALDAMN $.

  $( A nonnegative integer is always part of the finite set of sequential
     nonnegative integers with this integer as upper bound.  (Contributed by
     Scott Fenton, 21-Mar-2018.) $)
  nn0fz0 $p |- ( N e. NN0 <-> N e. ( 0 ... N ) ) $=
    ( cn0 wcel cc0 cfz co cle wbr nn0re leidd fznn0 mpbir2and elfz3nn0 impbii
    id ) ABCZADAEFCZPQPAAGHPOPAAIJAAKLAAMN $.

  $( An element of a finite set of sequential nonnegative integers is an
     element of an extended finite set of sequential nonnegative integers.
     (Contributed by Alexander van der Vekens, 28-Mar-2018.)  (Proof shortened
     by OpenAI, 25-Mar-2020.) $)
  elfz0add $p |- ( ( A e. NN0 /\ B e. NN0 )
                   -> ( N e. ( 0 ... A ) -> N e. ( 0 ... ( A + B ) ) ) ) $=
    ( cn0 wcel wa cc0 cfz co caddc cuz cfv wss cz nn0z uzid syl anim12i uzaddcl
    id fzss2 sseld ) ADEZBDEZFZGAHIZGABJIZHIZCUEUGAKLZEZUFUHMUEAUIEZUDFUJUCUKUD
    UDUCANEUKAOAPQUDTRBAASQAGUGUAQUB $.

  $( An integer range from 0 to 0 is a singleton.  (Contributed by AV,
     18-Apr-2021.) $)
  fz0sn $p |- ( 0 ... 0 ) = { 0 } $=
    ( cc0 cz wcel cfz co csn wceq 0z fzsn ax-mp ) ABCAADEAFGHAIJ $.

  $( An integer range from 0 to 2 is an unordered triple.  (Contributed by
     Alexander van der Vekens, 1-Feb-2018.) $)
  fz0tp $p |- ( 0 ... 2 ) = { 0 , 1 , 2 } $=
    ( cc0 c2 cfz co caddc c1 ctp 2cn addid2i eqcomi oveq2i cz wcel wceq 0z fztp
    ax-mp eqid id a1i 0p1e1 tpeq123d 3eqtri ) ABCDAABEDZCDZAAFEDZUDGZAFBGZBUDAC
    UDBBHIZJKALMUEUGNOAPQAANZUGUHNARUJAAUFFUDBUJSUFFNUJUATUDBNUJUITUBQUC $.

  $( An integer range from 0 to 3 is the union of two unordered pairs.
     (Contributed by AV, 7-Feb-2021.) $)
  fz0to3un2pr $p |- ( 0 ... 3 ) = ( { 0 , 1 } u. { 2 , 3 } ) $=
    ( cc0 c3 cfz co c1 caddc cun cpr c2 wcel wceq cn0 cle wbr 1nn0 ax-mp preq2i
    cz fzpr 3eqtri 3nn0 1le3 elfz2nn0 mpbir3an fzsplit 1e0p1 oveq2i 0p1e1 1p1e2
    0z df-3 oveq12i 2z 2p1e3 uneq12i eqtri ) ABCDZAECDZEEFDZBCDZGZAEHZIBHZGEUQJ
    ZUQVAKVDELJBLJEBMNOUAUBEBUCUDEABUEPURVBUTVCURAAEFDZCDZAVEHZVBEVEACUFUGARJVF
    VGKUJASPVEEAUHQTUTIIEFDZCDZIVHHZVCUSIBVHCUIUKULIRJVIVJKUMISPVHBIUNQTUOUP $.

  $( An integer range from 0 to 4 is the union of a triple and a pair.
     (Contributed by Alexander van der Vekens, 13-Aug-2017.) $)
  fz0to4untppr $p |- ( 0 ... 4 ) = ( { 0 , 1 , 2 } u. { 3 , 4 } ) $=
    ( cc0 c4 cfz co c2 caddc c1 c3 cuz cfv wcel wceq eqtri cz cle wbr 3z ltleii
    eluz1i ax-mp cun ctp cpr df-3 2cn addid2i eqcomi oveq1i 0re 3re 0z mpbir2an
    3pos eqeltrri 4z 2re 4re 2lt4 2z fveq2i eleqtri fzsplit2 mp2an ax-1cn eqidd
    fztp cc addid2 tpeq123d oveq1d syl6eqr wa eqid df-4 pm3.2i wb fzopth sylibr
    a1i 3lt4 fzpr eqtrd preq2i syl6eq uneq12i ) ABCDZAAEFDZCDZWGGFDZBCDZUAZAGEU
    BZHBUCZUAWIAIJZKBWGIJZKWFWKLHWIWNHEGFDZWIUDEWGGFWGEEUEUFZUGZUHMHWNKHNKZAHOP
    QAHUIUJUMRAHUKSULUNBEIJZWOBWTKBNKZEBOPUOEBUPUQURREBUSSULEWGIWRUTVAWGABVBVCW
    HWLWJWMWHAAGFDZWGUBZWLANKWHXCLUKAVFTGVGKZXCWLLVDXDAAXBGWGEXDAVEGVHWGELZXDWQ
    VSVITMWSWJWMLQWSWJHBCDZWMWSWIHBCWSWIWPHWSWGEGFXEWSWQVSVJUDVKVJWSXFHHGFDZUCZ
    WMWSXFHXGCDZXHWSHHLZBXGLZVLZXFXILZXLWSXJXKHVMVNVOVSBHIJKZXMXLVPXNXAHBOPUOHB
    UJUQVTRHBQSULHXGHBVQTVRHWAWBXGBHBXGVNUGWCWDWBTWEM $.

  $( An element of a finite set of sequential nonnegative integers is an
     element of a finite set of sequential nonnegative integers with the upper
     bound being an element of the finite set of sequential nonnegative
     integers with the same lower bound as for the first interval and the
     element under consideration as upper bound.  (Contributed by Alexander van
     der Vekens, 3-Apr-2018.) $)
  elfz0ubfz0 $p |- ( ( K e. ( 0 ... N ) /\ L e. ( K ... N ) )
                     -> K e. ( 0 ... L ) ) $=
    ( cc0 cfz co wa cn0 cle wbr w3a wi elfz2nn0 cz elfz2 elnn0z sylbi com12 imp
    wcel simpr1 simpr 0z zletr mp3an1 simplbi2 sylsyld impancom adantr 3ad2ant3
    expd com13 3ad2ant1 impcom simplrl 3jca ex sylibr ) ADCEFTZBACEFTZGAHTZBHTZ
    ABIJZKZADBEFTUSUTVDUSVACHTZACIJZKZUTVDLACMUTVGVDUTANTZCNTZBNTZKZVCBCIJZGZGZ
    VGVDLBACOVNVGVDVNVGGVAVBVCVNVAVEVFUAVGVNVBVAVEVNVBLVFVNVAVBVKVMVAVBLZVJVHVM
    VOLVIVMVJVOVCVJVOLVLVAVJVCVBVAVHDAIJZGVJVCVBLZLAPVHVJVPVQVHVJGZVPVCVBVRVJVP
    VCGZDBIJZVBVHVJUBDNTVHVJVSVTLUCDABUDUEVBVJVTBPUFUGUKUHQULUIRUJSRUMUNVKVCVLV
    GUOUPUQQRQSABMUR $.

  $( A member of a finite set of sequential nonnegative integers is a member of
     a finite set of sequential nonnegative integers with a member of a finite
     set of sequential nonnegative integers starting at the upper bound of the
     first interval.  (Contributed by Alexander van der Vekens,
     27-May-2018.) $)
  elfz0fzfz0 $p |- ( ( M e. ( 0 ... L ) /\ N e. ( L ... X ) )
                     -> M e. ( 0 ... N ) ) $=
    ( cc0 cfz co wcel wa cn0 cle wbr w3a wi elfz2nn0 cz cr adantr imp sylbi zre
    elfz2 nn0re 3anim123i 3expa letr syl simplll simpr elnn0z 0red adantl exp4b
    syl3anc com23 sylanbrc 3jca ex syld 3impia com13 com12 3ad2ant3 sylibr ) BE
    AFGHZCADFGHZIBJHZCJHZBCKLZMZBECFGHVEVFVJVEVGAJHZBAKLZMZVFVJNBAOVFVMVJVFAPHZ
    DPHZCPHZMZACKLZCDKLZIZIVMVJNZCADUBVQVTWAVPVNVTWANVOVTVPWAVRVPWANVSVMVPVRVJV
    GVKVLVPVRVJNZNVGVKIZVPVLWBWCVPVLVRVJWCVPIZVLVRIZVIVJWDBQHZAQHZCQHZMZWEVINVG
    VKVPWIVGWFVKWGVPWHBUCAUCCUAZUDUEBACUFUGWDVIVJWDVIIZVGVHVIVGVKVPVIUHWKVPECKL
    ZVHWDVPVIWCVPUIRWDVIWLWCVPVIWLNZVGVPWMNZVKVGBPHZEBKLZIWNBUJWOWPWNWOVPWPWMWO
    VPWPVIWLWOVPIZEQHWFWHWPVIIWLNWQUKWOWFVPBUARVPWHWOWJULEBCUFUNUMUOSTRSSCUJUPW
    DVIUIUQURUSUMUOUTVARVBVCSTVBTSBCOVD $.

  $( If a member of a finite set of sequential integers with a lower bound
     being a member of a finite set of sequential nonnegative integers with the
     same upper bound, this member is also a member of the finite set of
     sequential nonnegative integers.  (Contributed by Alexander van der
     Vekens, 21-Apr-2018.) $)
  fz0fzelfz0 $p |- ( ( N e. ( 0 ... R ) /\ M e. ( N ... R ) )
                     -> M e. ( 0 ... R ) ) $=
    ( cc0 cfz co wcel wa cn0 cle wbr w3a wi elfz2nn0 cz adantr 3jca imp sylbi
    cr elfz2 simplr 0red nn0re zre adantl nn0ge0 anim1i letr elnn0z exp31 com23
    sylc sylanbrc 3ad2ant1 com13 adantrd 3ad2ant3 simpr2 simplrr com12 sylibr
    ex ) CDAEFZGZBCAEFGZHBIGZAIGZBAJKZLZBVDGVEVFVJVECIGZVHCAJKZLZVFVJMCANVFVMVJ
    VFCOGZAOGZBOGZLZCBJKZVIHZHZVMVJMBCAUAVTVMVJVTVMHVGVHVIVTVMVGVQVSVMVGMZVPVNV
    SWAMVOVPVRWAVIVMVRVPVGVKVHVRVPVGMMVLVKVPVRVGVKVPVRVGVKVPHZVRHZVPDBJKZVGVKVP
    VRUBWCDTGZCTGZBTGZLZDCJKZVRHWDWBWHVRWBWEWFWGWBUCVKWFVPCUDPVPWGVKBUEUFQPWBWI
    VRVKWIVPCUGPUHDCBUIUMBUJUNUKULUOUPUQURRRVTVKVHVLUSVQVRVIVMUTQVCSVASRBANVB
    $.

  $( Subtraction closure for a member of a finite set of sequential nonnegative
     integers.  (Contributed by NM, 26-Sep-2005.)  (Revised by Mario Carneiro,
     28-Apr-2015.) $)
  fznn0sub2 $p |- ( K e. ( 0 ... N ) -> ( N - K ) e. ( 0 ... N ) ) $=
    ( cc0 cfz co wcel cmin cle wbr elfzle1 cz wb elfzel2 elfzelz cr zre subge02
    syl2an syl2anc mpbid cuz cfv cn0 fznn0sub nn0uz syl6eleq elfz5 mpbird ) ACB
    DEZFZBAGEZUIFZUKBHIZUJCAHIZUMACBJUJBKFZAKFZUNUMLZACBMZACBNUOBOFAOFUQUPBPAPB
    AQRSTUJUKCUAUBZFUOULUMLUJUKUCUSACBUDUEUFURUKCBUGSUH $.

  $( Membership of an integer greater than L decreased by L in a finite set of
     sequential nonnegative integers.  (Contributed by Alexander van der
     Vekens, 16-Sep-2018.) $)
  uzsubfz0 $p |- ( ( L e. NN0 /\ N e. ( ZZ>= ` L ) )
                   -> ( N - L ) e. ( 0 ... N ) ) $=
    ( cn0 wcel cuz cfv wa cc0 cfz co cmin cle wbr simpl eluznn0 eluzle elfz2nn0
    adantl syl3anbrc fznn0sub2 syl ) ACDZBAEFDZGZAHBIJZDZBAKJUEDUDUBBCDABLMZUFU
    BUCNBAOUCUGUBABPRABQSABTUA $.

  $( The difference of an integer in a finite set of sequential nonnegative
     integers and and an integer of a finite set of sequential integers with
     the same upper bound and the nonnegative integer as lower bound is a
     member of the finite set of sequential nonnegative integers.  (Contributed
     by Alexander van der Vekens, 6-Jun-2018.) $)
  fz0fzdiffz0 $p |- ( ( M e. ( 0 ... N ) /\ K e. ( M ... N ) )
                      -> ( K - M ) e. ( 0 ... N ) ) $=
    ( cc0 cfz co wcel wa cn0 cle wbr w3a adantl wb elfznn0 adantr mpbid wi cz
    cr cmin fz0fzelfz0 elfzle1 nn0sub syl2anr elfz3nn0 elfz2 zsubcl zred ancoms
    elfz2nn0 3adant2 zre 3ad2ant3 3ad2ant2 3jca nn0ge0 nn0re syl2an anim1i letr
    subge02 sylc exp31 a1i com14 impcom sylbi com13 3adant3 imp mpancom sylibr
    ) BDCEFZGZABCEFGZHZABUAFZIGZCIGZVRCJKZLZVRVNGAVNGZVQWBCABUBWCVQHZVSVTWAWDBA
    JKZVSVQWEWCVPWEVOABCUCMMVQBIGZAIGWEVSNWCVOWFVPBCOPACOBAUDUEQWCVTVQACUFPVQWA
    WCVOVPWAVOWFVTBCJKZLVPWARZBCUKWFVTWHWGVTWFWHVPWFVTWAVPBSGZCSGZASGZLZWEACJKZ
    HZHWFVTWARRZABCUGWNWLWOWMWLWORWEVTWLWFWMWAWLWFWMWARRRVTWLWFWMWAWLWFHZWMHVRT
    GZATGZCTGZLZVRAJKZWMHWAWPWTWMWLWTWFWLWQWRWSWIWKWQWJWKWIWQWKWIHVRABUHUIUJULW
    KWIWRWJAUMUNZWJWIWSWKCUMUOUPPPWPXAWMWPDBJKZXAWFXCWLBUQMWLWRBTGXCXANWFXBBURA
    BVBUSQUTVRACVAVCVDVEVFMVGVHVIVGVJVHVKMUPVLVRCUKVM $.

  $( Subtracting the lower bound of a finite set of sequential integers from an
     element of this set.  (Contributed by Alexander van der Vekens,
     29-Mar-2018.)  (Proof shortened by OpenAI, 25-Mar-2020.) $)
  elfzmlbm $p |- ( K e. ( M ... N ) -> ( K - M ) e. ( 0 ... ( N - M ) ) ) $=
    ( cfz wcel cmin cn0 cle wbr cc0 cuz cfv elfzuz uznn0sub syl elfzuz2 elfzelz
    co zred elfzel2 elfzel1 elfzle2 lesub1dd elfz2nn0 syl3anbrc ) ABCDREZABFRZG
    EZCBFRZGEZUGUIHIUGJUIDREUFABKLZEUHABCMBANOUFCUKEUJABCPBCNOUFACBUFAABCQSUFCA
    BCTSUFBABCUASABCUBUCUGUIUDUE $.

  $( Subtracting the lower bound of a finite set of sequential integers from an
     element of this set.  (Contributed by Alexander van der Vekens,
     29-Mar-2018.) $)
  elfzmlbp $p |- ( ( N e. ZZ /\ K e. ( M ... ( M + N ) ) )
                   -> ( K - M ) e. ( 0 ... N ) ) $=
    ( cz wcel co cfz wa cn0 cle wbr w3a cc0 wi wb adantr cr zre adantl imp cmin
    caddc elfz2 znn0sub biimpcd impcom zaddcl adantlr zred letr syl3anc addge01
    syl2an elnn0z simplbi2 sylbird syld df-3an bitr3i 3anim123i sylbi lesubadd2
    3ancoma syl biimprcd 3jca exp31 com23 3adant2 com12 syl5bi elfz2nn0 sylibr
    ) CDEZABBCUBFZGFEZHABUAFZIEZCIEZVQCJKZLZVQMCGFEVNVPWAVPBDEZVODEZADEZLZBAJKZ
    AVOJKZHZHZVNWAABVOUCWIVNWAWEWHVNWANZWBWDWHWJNWCWBWDHZVNWHWAWKVNWHWAWKVNHZWH
    HVRVSVTWHWLVRWFWLVRNWGWLWFVRWKWFVROVNBAUDPUEPUFWLWHVSWLWHBVOJKZVSWLBQEZAQEZ
    VOQEWHWMNWKWNVNWBWNWDBRZPZPWKWOVNWDWOWBARZSPWLVOWBVNWCWDBCUGUHUIBAVOUJUKWLW
    MMCJKZVSWKWNCQEZWSWMOVNWQCRZBCULUMVNWSVSNWKVSVNWSCUNUOSUPUQTWHWLVTWGWLVTNWF
    WLVTWGWLWOWNWTLZVTWGOWLWDWBVNLZXBWLWBWDVNLXCWBWDVNURWBWDVNVCUSWDWOWBWNVNWTW
    RWPXAUTVAABCVBVDVESUFVFVGVHVITVJVKTVQCVLVM $.

  $( Lemma for theorems about the central binomial coefficient.  (Contributed
     by Mario Carneiro, 8-Mar-2014.)  (Revised by Mario Carneiro,
     2-Aug-2014.) $)
  fzctr $p |- ( N e. NN0 -> N e. ( 0 ... ( 2 x. N ) ) ) $=
    ( cn0 wcel cc0 c2 cmul co cfz cle wbr nn0ge0 caddc cr nn0re nn0addge1 nn0cn
    mpancom 2timesd breqtrrd cz wa wb nn0z 0zd 2z zmulcl sylancr elfz mpbir2and
    syl3anc ) ABCZADEAFGZHGCZDAIJZAULIJZAKUKAAALGZULIAMCUKAUPIJANAAOQUKAAPRSUKA
    TCZDTCULTCZUMUNUOUAUBAUCZUKUDUKETCUQURUEUSEAUFUGADULUHUJUI $.

  $( The difference of two integers from a finite set of sequential nonnegative
     integers is also element of this finite set of sequential integers.
     (Contributed by Alexander van der Vekens, 12-Jun-2018.) $)
  difelfzle $p |- ( ( K e. ( 0 ... N ) /\ M e. ( 0 ... N ) /\ K <_ M )
                   -> ( M - K ) e. ( 0 ... N ) ) $=
    ( cc0 co wcel cle wbr w3a cn0 cz wa wi elfznn0 nn0z syl2anr adantr cr nn0re
    wb cfz cmin zsubcl subge0 biimpar jca exp31 syl2im elnn0z elfz3nn0 3ad2ant1
    3imp sylibr elfz2nn0 resubcl syl2an 3ad2ant2 nn0ge0 adantl subge02 mpbid ex
    simpl3 letrd sylbi syl5com a1dd syl3anbrc ) ADCUAEZFZBVIFZABGHZIZBAUBEZJFZC
    JFZVNCGHZVNVIFVMVNKFZDVNGHZLZVOVJVKVLVTVJAJFZVKBJFZVLVTMACNZBCNWAWBVLVTWAWB
    LZVLLVRVSWDVRVLWBBKFAKFVRWABOAOBAUCPQWDVSVLWBBRFZARFZVSVLTWABSZASZBAUDPUEUF
    UGUHULVNUIUMVJVKVPVLACUJUKVJVKVLVQVJVKVQVLVJWAVKVQWCVKWBVPBCGHZIZWAVQMBCUNW
    JWAVQWJWALZVNBCWJWEWFVNRFWAWBVPWEWIWGUKZWHBAUOUPWJWEWAWLQWJCRFZWAVPWBWMWICS
    UQQWKDAGHZVNBGHZWAWNWJAURUSWJWEWFWNWOTWAWLWHBAUTUPVAWBVPWIWAVCVDVBVEVFVGULV
    NCUNVH $.

  $( The difference of two integers from a finite set of sequential nonnegative
     integers increased by the upper bound is also element of this finite set
     of sequential integers.  (Contributed by Alexander van der Vekens,
     12-Jun-2018.) $)
  difelfznle $p |- ( ( K e. ( 0 ... N ) /\ M e. ( 0 ... N ) /\ -. K <_ M )
                   -> ( ( M + N ) - K ) e. ( 0 ... N ) ) $=
    ( cc0 co wcel cle wbr w3a caddc cn0 cz elfz2nn0 wa 3adant3 sylbi cr zred wb
    syl wn cmin nn0addcl nn0zd elfzelz zsubcl syl2anr adantr elfzel2 nn0readdcl
    cfz adantl elfzle2 elfzle1 nn0re anim12ci addge02 anim12i letr imp syl31anc
    mpbid zre readdcl sylan subge0 mpbird elnn0z sylanbrc elfz3nn0 3ad2ant1 clt
    wi ltnle ancoms ltle sylbird syl2an 3impia leadd1d lesubadd2d syl3anbrc ) A
    DCUKEZFZBWCFZABGHUAZIZBCJEZAUBEZKFZCKFZWICGHZWIWCFWGWILFZDWIGHZWJWDWEWMWFWE
    WHLFZALFZWMWDWEBKFZWKBCGHZIZWOBCMZWQWKWOWRWQWKNWHBCUCUDOPADCUEZWHAUFUGOWGWN
    AWHGHZWDWEXBWFWDWENZAQFZCQFZWHQFZACGHZCWHGHZNZXBWDXDWEWDAXARUHZWDXEWEWDCADC
    UIRUHZWEXFWDWEWSXFWTWQWKXFWRBCUJOPULZWDXGWEXHADCUMWEDBGHZXHBDCUNWEXEBQFZNZX
    MXHSWEWSXOWTWQWKXOWRWQXNWKXEBUOZCUOZUPOPCBUQTVBURXDXEXFIXIXBACWHUSUTVAOWGXF
    XDNZWNXBSWDWEXRWFWDWPWEXRXAWPXDWEXFAVCZWEXNXENZXFWEWSXTWTWQWKXTWRWQXNWKXEXP
    XQUROPBCVDTUPVEOWHAVFTVGWIVHVIWDWEWKWFACVJVKWGWLWHACJEGHZWGBAGHZYAWDWEWFYBW
    DWPBLFZWFYBVMZWEXABDCUEZWPXDXNYDYCXSBVCXDXNNWFBAVLHZYBXNXDYFWFSBAVNVOXNXDYF
    YBVMBAVPVOVQVRVRVSWDWEYBYASWFXCBACWEXNWDWEBYERULXJXKVTOVBWDWEWLYASWFXCWHACX
    LXJXKWAOVGWICMWB $.

  $( Express the set of nonnegative integers as the disjoint (see ~ nn0disj )
     union of the first ` N + 1 ` values and the rest.  (Contributed by AV,
     8-Nov-2019.) $)
  nn0split $p |- ( N e. NN0
                   -> NN0 = ( ( 0 ... N ) u. ( ZZ>= ` ( N + 1 ) ) ) ) $=
    ( cn0 wcel cc0 cuz cfv c1 caddc co cmin cfz cun wceq a1i peano2nn0 syl6eleq
    nn0uz uzsplit syl cc nn0cn pncan1 oveq2d uneq1d 3eqtrd ) ABCZBDEFZDAGHIZGJI
    ZKIZUHEFZLZDAKIZUKLBUGMUFQNUFUHUGCUGULMUFUHBUGAOQPDUHRSUFUJUMUKUFUIADKUFATC
    UIAMAUAAUBSUCUDUE $.

  ${
    $d N k $.
    $( The first ` N + 1 ` elements of the set of nonnegative integers are
       distinct from any later members.  (Contributed by AV, 8-Nov-2019.) $)
    nn0disj $p |- ( ( 0 ... N ) i^i ( ZZ>= ` ( N + 1 ) ) ) = (/) $=
      ( vk cc0 cfz co c1 caddc cuz cfv c0 wceq wcel clt wbr cle syl cz mpbid wn
      zred cin wss cv cmin elin simprbi eluzel2 eluzelz zlem1lt syl2anc simplbi
      eluzle wb elfzle2 elfzel2 adantr sylbi lenltd pncan1 eqcomd breq1d notbid
      wa cc zcnd bitrd pm2.21dd ssriv ss0 ax-mp ) CADEZAFGEZHIZUAZJUBVNJKBVNJBU
      CZVNLZVLFUDEZVOMNZVOJLVPVLVOONZVRVPVOVMLZVSVPVOVKLZVTVOVKVMUEZUFZVLVOULPV
      PVLQLZVOQLZVSVRUMVPVTWDWCVLVOUGPVPVTWEWCVLVOUHPZVLVOUIUJRVPVOAONZVRSZVPWA
      WGVPWAVTWBUKVOCAUNPVPWGAVOMNZSWHVPVOAVPVOWFTVPAVPWAVTVCAQLZWBWAWJVTVOCAUO
      UPUQZTURVPWIVRVPAVQVOMVPVQAVPAVDLVQAKVPAWKVEAUSPUTVAVBVFRVGVHVNVIVJ $.
  $}

  $( A finite set of sequential nonnegative integers is the union of the
     singleton containing 0 and a finite set of sequential positive integers.
     (Contributed by AV, 20-Mar-2021.) $)
  fz0sn0fz1 $p |- ( N e. NN0 -> ( 0 ... N ) = ( { 0 } u. ( 1 ... N ) ) ) $=
    ( cn0 wcel cc0 cfz co cun csn wceq 0elfz caddc fzsplit oveq1i uneq2i syl6eq
    c1 0p1e1 syl cz 0z fzsn mp1i uneq1d eqtrd ) ABCZDAEFZDDEFZPAEFZGZDHZUHGUEDU
    FCZUFUIIAJUKUFUGDPKFZAEFZGUIDDALUMUHUGULPAEQMNORUEUGUJUHDSCUGUJIUETDUAUBUCU
    D $.

  $( The function value of a function from a finite interval of nonnegative
     integers.  (Contributed by AV, 13-Feb-2021.) $)
  fvffz0 $p |- ( ( ( N e. NN0 /\ I e. NN0 /\ I < N ) /\ P : ( 0 ... N ) --> V )
                 -> ( P ` I ) e. V ) $=
    ( cn0 wcel clt wbr w3a cc0 cfz co wf wa simpr cle simp2 simp1 cr nn0re ltle
    wi syl2anr 3impia elfz2nn0 syl3anbrc adantr ffvelrnd ) CEFZBEFZBCGHZIZJCKLZ
    DAMZNUMDBAULUNOULBUMFZUNULUJUIBCPHZUOUIUJUKQUIUJUKRUIUJUKUPUJBSFCSFUKUPUBUI
    BTCTBCUAUCUDBCUEUFUGUH $.

  $( A one value function.  (Contributed by Alexander van der Vekens,
     3-Dec-2017.)  (Proof shortened by AV, 18-Apr-2021.) $)
  1fv $p |- ( ( N e. V /\ P = { <. 0 , N >. } )
                 -> ( P : ( 0 ... 0 ) --> V /\ ( P ` 0 ) = N ) ) $=
    ( wcel cc0 cop csn wceq wa cfz co wf cfv cz 0z a1i id fsnd fvsng mpan fz0sn
    jca adantr wb feq12d fveq1 eqeq1d anbi12d adantl mpbird ) BCDZAEBFGZHZIEEJK
    ZCALZEAMZBHZIZEGZCULLZEULMZBHZIZUKVCUMUKUTVBUKEBNCENDZUKOPUKQRVDUKVBOEBNCST
    UBUCUMURVCUDUKUMUOUTUQVBUMUNUSCAULUMQUNUSHUMUAPUEUMUPVABEAULUFUGUHUIUJ $.

  ${
    $d P a b c d $.  $d V a b c d $.
    $( The first four function values of a word of length at least 4.
       (Contributed by Alexander van der Vekens, 18-Nov-2017.) $)
    4fvwrd4 $p |- ( ( L e. ( ZZ>= ` 3 ) /\ P : ( 0 ... L ) --> V )
                    -> E. a e. V E. b e. V E. c e. V E. d e. V
                       ( ( ( P ` 0 ) = a /\ ( P ` 1 ) = b )
                      /\ ( ( P ` 2 ) = c /\ ( P ` 3 ) = d ) ) ) $=
      ( c3 cuz cfv wcel cc0 wa cv wceq wrex c1 c2 rexbii bitri cfz co simpr cn0
      wf 0nn0 elnn0uz mpbi 3nn0 uzss ax-mp sseli eluzfz sylancr adantr ffvelrnd
      wss risset eqcom sylib 1eluzge0 cz cle 1z 3z 1le3 eluz2 mpbir3an 2eluzge0
      wbr jca uzuzle23 mpan r19.42v anbi2i 2rexbii r19.41v anbi1i 3bitri sylibr
      jca32 ) BHIJZKZLBUAUBZCAUEZMZLAJZDNZOZDCPZQAJZENZOZECPZMZRAJZFNZOZFCPZHAJ
      ZGNZOZGCPZMZMZWIWMMZWRXBMZMGCPZFCPZECPDCPZWFWOWSXCWFWJWNWFWGCKZWJWFWDCLAW
      CWEUCZWCLWDKZWEWCLLIJZKZBXNKXMLUDKXOUFLUGUHWBXNBHXNKZWBXNUQHUDKXPUIHUGUHZ
      LHUJUKULLLBUMUNUOUPXKWHWGOZDCPWJDWGCURXRWIDCWHWGUSSTUTWFWKCKZWNWFWDCQAXLW
      CQWDKZWEWCQXNKBQIJZKXTVAWBYABHYAKZWBYAUQYBQVBKHVBKQHVCVJVDVEVFQHVGVHQHUJU
      KULQLBUMUNUOUPXSWLWKOZECPWNEWKCURYCWMECWLWKUSSTUTVKWFWPCKZWSWFWDCRAXLWCRW
      DKZWEWCRXNKBRIJKYEVIBVLRLBUMUNUOUPYDWQWPOZFCPWSFWPCURYFWRFCWQWPUSSTUTWFWT
      CKZXCWFWDCHAXLWCHWDKZWEXPWCYHXQHLBUMVMUOUPYGXAWTOZGCPXCGWTCURYIXBGCXAWTUS
      STUTWAXJXFWRXCMZMZFCPZECPDCPXFXDMZECPZDCPZXEXIYLDECCXHYKFCXHXFXGGCPZMYKXF
      XGGCVNYPYJXFWRXBGCVNVOTSVPYLYMDECCYLXFYJFCPZMYMXFYJFCVNYQXDXFWRXCFCVQVOTV
      PYOWIWNMZXDMZDCPYRDCPZXDMXEYNYSDCYNXFECPZXDMYSXFXDECVQUUAYRXDWIWMECVNVRTS
      YRXDDCVQYTWOXDWIWNDCVQVRVSVSVT $.
  $}

  ${
    $d F i $.  $d M i $.  $d P i $.
    $( Two functions over 0 based finite set of sequential integers are equal
       if and only if their domains have the same length and the function
       values are the same at each position.  (Contributed by Alexander van der
       Vekens, 30-Jun-2018.) $)
    2ffzeq $p |- ( ( M e. NN0 /\ F : ( 0 ... M ) --> X
                              /\ P : ( 0 ... N ) --> Y ) -> ( F = P
              <-> ( M = N /\ A. i e. ( 0 ... M ) ( F ` i ) = ( P ` i ) ) ) ) $=
      ( cn0 wcel cc0 cfz co wf w3a wceq cfv wa wfn wb ffn cv anim12i syl fzopth
      wral 3adant1 eqfnfv2 cuz elnn0uz sylbi simpr syl6bi anim1d anim1i impbid1
      oveq2 3ad2ant1 bitrd ) DHIZJDKLZFCMZJEKLZGAMZNZCAOZUTVBOZBUAZCPVGAPOBUTUE
      ZQZDEOZVHQZVDCUTRZAVBRZQZVEVISVAVCVNUSVAVLVCVMUTFCTVBGATUBUFBUTVBCAUGUCUS
      VAVIVKSVCUSVIVKUSVFVJVHUSVFJJOZVJQZVJUSDJUHPIVFVPSDUIJEJDUDUJVOVJUKULUMVJ
      VFVHDEJKUPUNUOUQUR $.
  $}

  ${
    $d N x $.  $d M x $.
    $( The value of the predecessor class over an upper integer set.
       (Contributed by Scott Fenton, 16-May-2014.) $)
    preduz $p |- ( N e. ( ZZ>= ` M ) -> Pred ( < , ( ZZ>= ` M ) , N ) = ( M ...
        ( N - 1 ) ) ) $=
      ( vx cuz cfv wcel clt cpred c1 cmin co cz wa cle wbr wb eluzelz syl bitrd
      anass cfz cv vex elpred zltlem1 syl2anr pm5.32da eluzel2 eluz1 anbi1d jca
      peano2zm biantrurd elfz2 df-3an anbi1i anbi2i bitr4i 3bitri syl6bbr eqrdv
      w3a ) BADEZFZCVCGBHZABIJKZUAKZVDCUBZVEFZALFZVFLFZMZVHLFZAVHNOZMZVHVFNOZMZ
      MZVHVGFZVDVIVQVRVDVIVHVCFZVHBGOZMZVQVCVCGBVHCUCUDVDWBVTVPMVQVDVTWAVPVTVMB
      LFZWAVPPVDAVHQABQZVHBUEUFUGVDVTVOVPVDVJVTVOPABUHZAVHUIRUJSSVDVLVQVDVJVKWE
      VDWCVKWDBULRUKUMSVSVJVKVMVBZVNVPMZMVLVMMZWGMZVRVHAVFUNWFWHWGVJVKVMUOUPWIV
      LVMWGMZMVRVLVMWGTVQWJVLVMVNVPTUQURUSUTVA $.
  $}

  $( The value of the predecessor class over the naturals.  (Contributed by
     Scott Fenton, 6-Aug-2013.) $)
  prednn $p |- ( N e. NN -> Pred ( < , NN , N ) = ( 1 ... ( N - 1 ) ) ) $=
    ( cn wcel clt cpred c1 cuz cfv cmin co cfz wceq predeq2 ax-mp elnnuz preduz
    nnuz sylbi syl5eq ) ABCZBDAEZFGHZDAEZFAFIJKJZBUBLUAUCLQBUBDAMNTAUBCUCUDLAOF
    APRS $.

  $( The value of the predecessor class over ` NN0 ` .  (Contributed by Scott
     Fenton, 9-May-2014.) $)
  prednn0 $p |- ( N e. NN0 -> Pred ( < , NN0 , N ) = ( 0 ... ( N - 1 ) ) ) $=
    ( cn0 clt cpred cc0 c1 cmin co cfz wceq cuz wcel nn0uz predeq2 ax-mp preduz
    cfv syl5eq eleq2s ) BCADZEAFGHIHZJAEKQZBAUBLTUBCADZUABUBJTUCJMBUBCANOEAPRMS
    $.

  ${
    $d K x $.  $d M x $.  $d N x $.
    $( Calculate the predecessor of an integer under a finite set of integers.
       (Contributed by Scott Fenton, 8-Aug-2013.)  (Proof shortened by Mario
       Carneiro, 3-May-2015.) $)
    predfz $p |- ( K e. ( M ... N ) ->
       Pred ( < , ( M ... N ) , K ) = ( M ... ( K - 1 ) ) ) $=
      ( vx cfz co wcel clt cpred c1 wbr wa cz wb elfzelz syl2anr cuz cfv syl cc
      cv cle zltlem1 elfzuz peano2zm elfz5 bitr4d pm5.32da vex elpred wss caddc
      cmin elfzuz3 wceq zcnd ax-1cn npcan sylancl fveq2d eleqtrrd syl2anc fzss2
      peano2uzr sseld pm4.71rd 3bitr4d eqrdv ) ABCEFZGZDVIHAIZBAJUMFZEFZVJDUAZV
      IGZVNAHKZLVOVNVMGZLVNVKGVQVJVOVPVQVJVOLVPVNVLUBKZVQVOVNMGAMGZVPVRNVJVNBCO
      ABCOZVNAUCPVOVNBQRGVLMGZVQVRNVJVNBCUDVJVSWAVTAUESZVNBVLUFPUGUHVIVIHAVNDUI
      UJVJVQVOVJVMVIVNVJCVLQRGZVMVIUKVJWACVLJULFZQRZGWCWBVJCAQRWEABCUNVJWDAQVJA
      TGJTGWDAUOVJAVTUPUQAJURUSUTVAVLCVDVBVLBCVCSVEVFVGVH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Half-open integer ranges
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ..^ $.
  $( Syntax for half-open integer ranges. $)
  cfzo $a class ..^ $.

  ${
    $d m n N $.  $d m n M $.
    $( Define a function generating sets of integers using a _half-open_ range.
       Read ` ( M ..^ N ) ` as the integers from ` M ` up to, but not
       including, ` N ` ; contrast with ` ( M ... N ) ` ~ df-fz , which
       includes ` N ` .  Not including the endpoint simplifies a number of
       formulae related to cardinality and splitting; contrast ~ fzosplit with
       ~ fzsplit , for instance.  (Contributed by Stefan O'Rear,
       14-Aug-2015.) $)
    df-fzo $a |- ..^ = ( m e. ZZ , n e. ZZ |-> ( m ... ( n - 1 ) ) ) $.

    $( Functionality of the half-open integer set function.  (Contributed by
       Stefan O'Rear, 14-Aug-2015.) $)
    fzof $p |- ..^ : ( ZZ X. ZZ ) --> ~P ZZ $=
      ( vm vn cv c1 cmin co cfz cz cpw wcel wral cxp cfzo wf wss cuz cfv fzssuz
      uzssz sstri ovex elpw mpbir rgen2w df-fzo fmpt2 mpbi ) ACZBCDEFZGFZHIZJZB
      HKAHKHHLUKMNULABHHULUJHOUJUHPQHUHUIRUHSTUJHUHUIGUAUBUCUDABHHUJUKMABUEUFUG
      $.

    $( Reverse closure for half-open integer sets.  (Contributed by Stefan
       O'Rear, 14-Aug-2015.) $)
    elfzoel1 $p |- ( A e. ( B ..^ C ) -> B e. ZZ ) $=
      ( cfzo co wcel cz c0 wne ne0i cxp cpw fzof fdmi ndmov necon1ai syl simpld
      wa ) ABCDEZFZBGFZCGFZUATHIUBUCSZTAJUDTHBCGDGGKGLDMNOPQR $.

    $( Reverse closure for half-open integer sets.  (Contributed by Stefan
       O'Rear, 14-Aug-2015.) $)
    elfzoel2 $p |- ( A e. ( B ..^ C ) -> C e. ZZ ) $=
      ( cfzo co wcel cz c0 wne ne0i cxp cpw fzof fdmi ndmov necon1ai syl simprd
      wa ) ABCDEZFZBGFZCGFZUATHIUBUCSZTAJUDTHBCGDGGKGLDMNOPQR $.

    $( Reverse closure for half-open integer sets.  (Contributed by Stefan
       O'Rear, 14-Aug-2015.) $)
    elfzoelz $p |- ( A e. ( B ..^ C ) -> A e. ZZ ) $=
      ( cfzo co wcel cz cpw elfzoel1 elfzoel2 fzof fovcl syl2anc elpwid sseldd
      id ) ABCDEZFZQGARQGRBGFCGFQGHZFABCIABCJBCSGGDKLMNRPO $.

    $( Value of the half-open integer set in terms of the closed integer set.
       (Contributed by Stefan O'Rear, 14-Aug-2015.) $)
    fzoval $p |- ( N e. ZZ -> ( M ..^ N ) = ( M ... ( N - 1 ) ) ) $=
      ( vm vn cz wcel cfzo co c1 cmin cfz wceq cv wn c0 simpl con3i fdmi ndmov
      wa oveq1 oveqan12d df-fzo ovex ovmpt2a cxp cpw fzof syl fzf eqtr4d adantr
      id pm2.61ian ) AEFZBEFZABGHZABIJHZKHZLZCDABEECMZDMZIJHZKHUSGVAALZVBBLVAAV
      CURKVDUMVBBIJUAUBCDUCAURKUDUEUONZUTUPVEUQOUSVEUOUPTZNUQOLVFUOUOUPPQABEGEE
      UFZEUGZGUHRSUIVEUOUREFZTZNUSOLVJUOUOVIPQAUREKVGVHKUJRSUIUKULUN $.
  $}

  $( Membership in a half-open finite set of integers.  (Contributed by Stefan
     O'Rear, 15-Aug-2015.) $)
  elfzo $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) -> ( K e. ( M ..^ N ) <->
        ( M <_ K /\ K < N ) ) ) $=
    ( cz wcel w3a c1 cmin co cfz cle wbr wa cfzo clt wb peano2zm syl3an3 fzoval
    elfz eleq2d 3ad2ant3 zltlem1 3adant2 anbi2d 3bitr4d ) ADEZBDEZCDEZFZABCGHIZ
    JIZEZBAKLZAUKKLZMZABCNIZEZUNACOLZMUIUGUHUKDEUMUPPCQABUKTRUIUGURUMPUHUIUQULA
    BCSUAUBUJUSUOUNUGUIUSUOPUHACUCUDUEUF $.

  $( Membership in a half-open integer interval.  (Contributed by Mario
     Carneiro, 29-Sep-2015.) $)
  elfzo2 $p |- ( K e. ( M ..^ N ) <->
      ( K e. ( ZZ>= ` M ) /\ N e. ZZ /\ K < N ) ) $=
    ( cz wcel w3a cle wbr clt wa cuz cfv cfzo an4 df-3an anbi1i 3ancoma 3bitr4i
    co eluz2 3bitri elfzoelz elfzoel1 elfzoel2 3jca elfzo biadan2 3anass ) ADEZ
    BDEZCDEZFZBAGHZACIHZJZJZABKLEZUKUNJZJZABCMSEZUQUKUNFUIUJJZUKJZUOJVAUMJZURJU
    PUSVAUKUMUNNULVBUOUIUJUKOPUQVCURUQUJUIUMFUIUJUMFVCBATUJUIUMQUIUJUMOUAPRUTUL
    UOUTUIUJUKABCUBABCUCABCUDUEABCUFUGUQUKUNUHR $.

  $( Membership in a half-open integer interval.  (Contributed by Mario
     Carneiro, 29-Sep-2015.) $)
  elfzouz $p |- ( K e. ( M ..^ N ) -> K e. ( ZZ>= ` M ) ) $=
    ( cfzo co wcel cuz cfv cz clt wbr elfzo2 simp1bi ) ABCDEFABGHFCIFACJKABCLM
    $.

  $( An integer not being a member of a half-open finite set of integers.
     (Contributed by AV, 29-Apr-2020.) $)
  nelfzo $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ )
                 -> ( K e/ ( M ..^ N ) <-> ( K < M \/ N <_ K ) ) ) $=
    ( cfzo co wnel wcel wn cz w3a clt wbr cle wo df-nel wa wb cr zre syl notbid
    ianor a1i elfzo anim12i 3adant3 ltnle anim12ci 3adant2 lenlt orbi12d syl5bb
    3bitr4d ) ABCDEZFAUNGZHZAIGZBIGZCIGZJZABKLZCAMLZNZAUNOUTBAMLZACKLZPZHZVDHZV
    EHZNZUPVCVGVJQUTVDVEUBUCUTUOVFABCUDUAUTVAVHVBVIUTARGZBRGZPZVAVHQUQURVMUSUQV
    KURVLASZBSUEUFABUGTUTCRGZVKPZVBVIQUQUSVPURUQVKUSVOVNCSUHUICAUJTUKUMUL $.

  $( The left endpoint of a half-open integer interval is in the set iff the
     two arguments are integers with ` M < N ` .  This provides an alternative
     notation for the "strict upper integer" predicate by analogy to the "weak
     upper integer" predicate ` M e. ( ZZ>= `` N ) ` .  (Contributed by Mario
     Carneiro, 29-Sep-2015.) $)
  fzolb $p |- ( M e. ( M ..^ N ) <-> ( M e. ZZ /\ N e. ZZ /\ M < N ) ) $=
    ( cfzo co wcel cuz cfv clt wbr w3a elfzo2 eluzel2 uzid impbii 3anbi1i bitri
    cz ) AABCDEAAFGEZBQEZABHIZJAQEZSTJAABKRUASTRUAAALAMNOP $.

  $( The left endpoint of a half-open integer interval is in the set iff the
     two arguments are integers with ` M < N ` .  This provides an alternative
     notation for the "strict upper integer" predicate by analogy to the "weak
     upper integer" predicate ` M e. ( ZZ>= `` N ) ` .  (Contributed by Mario
     Carneiro, 29-Sep-2015.) $)
  fzolb2 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M e. ( M ..^ N ) <-> M < N ) ) $=
    ( cfzo co wcel cz wa clt wbr w3a fzolb df-3an bitri baib ) AABCDEZAFEZBFEZG
    ZABHIZOPQSJRSGABKPQSLMN $.

  $( A member in a half-open integer interval is greater than or equal to the
     lower bound.  (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  elfzole1 $p |- ( K e. ( M ..^ N ) -> M <_ K ) $=
    ( cfzo co cle wbr clt wa cz wb elfzoelz elfzoel1 elfzoel2 elfzo syl3anc ibi
    wcel simpld ) ABCDERZBAFGZACHGZTUAUBIZTAJRBJRCJRTUCKABCLABCMABCNABCOPQS $.

  $( A member in a half-open integer interval is less than the upper bound.
     (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  elfzolt2 $p |- ( K e. ( M ..^ N ) -> K < N ) $=
    ( cfzo co cle wbr clt wa cz wb elfzoelz elfzoel1 elfzoel2 elfzo syl3anc ibi
    wcel simprd ) ABCDERZBAFGZACHGZTUAUBIZTAJRBJRCJRTUCKABCLABCMABCNABCOPQS $.

  $( Membership in a half-open integer interval implies that the bounds are
     unequal.  (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  elfzolt3 $p |- ( K e. ( M ..^ N ) -> M < N ) $=
    ( cfzo co wcel elfzoel1 zred elfzoelz elfzoel2 elfzole1 elfzolt2 lelttrd )
    ABCDEFZBACNBABCGHNAABCIHNCABCJHABCKABCLM $.

  $( A member in a half-open integer interval is less than the upper bound.
     (Contributed by Mario Carneiro, 29-Sep-2015.) $)
  elfzolt2b $p |- ( K e. ( M ..^ N ) -> K e. ( K ..^ N ) ) $=
    ( cfzo co wcel cz clt wbr elfzoelz elfzoel2 elfzolt2 fzolb syl3anbrc ) ABCD
    EFAGFCGFACHIAACDEFABCJABCKABCLACMN $.

  $( Membership in a half-open integer interval implies that the bounds are
     unequal.  (Contributed by Mario Carneiro, 29-Sep-2015.) $)
  elfzolt3b $p |- ( K e. ( M ..^ N ) -> M e. ( M ..^ N ) ) $=
    ( cfzo co wcel cz clt wbr elfzoel1 elfzoel2 elfzolt3 fzolb syl3anbrc ) ABCD
    EZFBGFCGFBCHIBOFABCJABCKABCLBCMN $.

  $( A half-open range does not contain its right endpoint.  (Contributed by
     Stefan O'Rear, 25-Aug-2015.) $)
  fzonel $p |- -. B e. ( A ..^ B ) $=
    ( cfzo co wcel clt wbr elfzolt2 elfzoel2 zred ltnrd pm2.65i ) BABCDEZBBFGBA
    BHMBMBBABIJKL $.

  $( The upper bound of a half-open range is greater or equal to an element of
     the range.  (Contributed by Mario Carneiro, 29-Sep-2015.) $)
  elfzouz2 $p |- ( K e. ( M ..^ N ) -> N e. ( ZZ>= ` K ) ) $=
    ( cfzo co wcel cz cle wbr cuz cfv elfzoelz elfzoel2 clt elfzolt2 wi cr ltle
    zre syl2an syl2anc mpd eluz2 syl3anbrc ) ABCDEFZAGFZCGFZACHIZCAJKFABCLZABCM
    ZUEACNIZUHABCOUEUFUGUKUHPZUIUJUFAQFCQFULUGASCSACRTUAUBACUCUD $.

  $( A half-open range is contained in the corresponding closed range.
     (Contributed by Stefan O'Rear, 23-Aug-2015.) $)
  elfzofz $p |- ( K e. ( M ..^ N ) -> K e. ( M ... N ) ) $=
    ( cfzo co wcel cuz cfv cfz elfzouz elfzouz2 elfzuzb sylanbrc ) ABCDEFABGHFC
    AGHFABCIEFABCJABCKABCLM $.

  $( Express membership in a half-open integer interval in terms of the "less
     than or equal" and "less than" predicates on integers, resp.
     ` K e. ( ZZ>= `` M ) <-> M <_ K ` , ` K e. ( K ..^ N ) <-> K < N ` .
     (Contributed by Mario Carneiro, 29-Sep-2015.) $)
  elfzo3 $p |- ( K e. ( M ..^ N ) <->
      ( K e. ( ZZ>= ` M ) /\ K e. ( K ..^ N ) ) ) $=
    ( cuz cfv wcel cz clt wbr wa cfzo co 3anass elfzo2 eluzelz fzolb bitri baib
    w3a wb syl pm5.32i 3bitr4i ) ABDEFZCGFZACHIZSUDUEUFJZJABCKLFUDAACKLFZJUDUEU
    FMABCNUDUHUGUDAGFZUHUGTBAOUHUIUGUHUIUEUFSUIUGJACPUIUEUFMQRUAUBUC $.

  ${
    $d x A $.  $d x B $.  $d x M $.  $d x N $.
    $( A half-open integer interval is nonempty iff it contains its left
       endpoint.  (Contributed by Mario Carneiro, 29-Sep-2015.) $)
    fzon0 $p |- ( ( M ..^ N ) =/= (/) <-> M e. ( M ..^ N ) ) $=
      ( vx cfzo co c0 wne wcel cv wex n0 elfzolt3b exlimiv sylbi ne0i impbii )
      ABDEZFGZAQHZRCIZQHZCJSCQKUASCTABLMNQAOP $.

    $( A half-open range is contained in the corresponding closed range.
       (Contributed by Stefan O'Rear, 23-Aug-2015.)  (Revised by Mario
       Carneiro, 29-Sep-2015.) $)
    fzossfz $p |- ( A ..^ B ) C_ ( A ... B ) $=
      ( vx cfzo co cfz cv elfzofz ssriv ) CABDEABFECGABHI $.
  $}

  $( A half-open set of sequential integers is empty if the bounds are equal or
     reversed.  (Contributed by Alexander van der Vekens, 30-Oct-2017.) $)
  fzon $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( N <_ M <-> ( M ..^ N ) = (/) ) ) $=
    ( cz wcel wa c1 cmin co clt wbr cfz c0 wceq cle cfzo wb peano2zm fzn sylan2
    zlem1lt ancoms fzoval adantl eqeq1d 3bitr4d ) ACDZBCDZEZBFGHZAIJZAUIKHZLMZB
    ANJZABOHZLMUGUFUICDUJULPBQAUIRSUGUFUMUJPBATUAUHUNUKLUGUNUKMUFABUBUCUDUE $.

  $( A half-open range of nonnegative integers is empty iff the upper bound is
     not positive.  (Contributed by AV, 2-May-2020.) $)
  fzo0n $p |- ( ( M e. ZZ /\ N e. ZZ )
                -> ( N <_ M <-> ( 0 ..^ ( N - M ) ) = (/) ) ) $=
    ( cz wcel cle wbr cc0 cmin co cfzo c0 wceq wb wa cr suble0 syl2an 0z zsubcl
    zre fzon sylancr bitr3d ancoms ) BCDZACDZBAEFZGBAHIZJIKLZMUEUFNZUHGEFZUGUIU
    EBODAODUKUGMUFBTATBAPQUJGCDUHCDUKUIMRBASGUHUAUBUCUD $.

  $( A half-open integer range is empty if the bounds are equal or reversed.
     (Contributed by AV, 20-Oct-2018.) $)
  fzonlt0 $p |- ( ( M e. ZZ /\ N e. ZZ )
                  -> ( -. M < N <-> ( M ..^ N ) = (/) ) ) $=
    ( cz wcel wa cle wbr clt wn cfzo co c0 wceq cr wb lenlt syl2anr fzon bitr3d
    zre ) ACDZBCDZEBAFGZABHGIZABJKLMUBBNDANDUCUDOUABTATBAPQABRS $.

  $( Half-open sets with equal endpoints are empty.  (Contributed by Stefan
     O'Rear, 15-Aug-2015.)  (Revised by Mario Carneiro, 29-Sep-2015.) $)
  fzo0 $p |- ( A ..^ A ) = (/) $=
    ( cfzo co wcel wn c0 wceq fzonel fzon0 necon1bbii mpbi ) AAABCZDZELFGAAHMLF
    AAIJK $.

  $( If ` K < N ` then ` N - K ` is a positive integer.  (Contributed by Mario
     Carneiro, 29-Sep-2015.)  (Revised by Mario Carneiro, 1-Jan-2017.) $)
  fzonnsub $p |- ( K e. ( M ..^ N ) -> ( N - K ) e. NN ) $=
    ( cfzo co wcel clt wbr cmin cn elfzolt2 cz elfzoelz elfzoel2 znnsub syl2anc
    wb mpbid ) ABCDEFZACGHZCAIEJFZABCKSALFCLFTUAQABCMABCNACOPR $.

  $( If ` M < N ` then ` N - M ` is a positive integer.  (Contributed by Mario
     Carneiro, 1-Jan-2017.) $)
  fzonnsub2 $p |- ( K e. ( M ..^ N ) -> ( N - M ) e. NN ) $=
    ( cfzo co wcel cmin cn elfzolt3b fzonnsub syl ) ABCDEZFBLFCBGEHFABCIBBCJK
    $.

  $( Subset relationship for half-open sequences of integers.  (Contributed by
     Stefan O'Rear, 15-Aug-2015.)  (Revised by Mario Carneiro, 29-Sep-2015.) $)
  fzoss1 $p |- ( K e. ( ZZ>= ` M ) -> ( K ..^ N ) C_ ( M ..^ N ) ) $=
    ( cuz cfv wcel cfzo co wss c0 sseq1 wne cz fzon0 elfzoel2 sylbi wceq fzoval
    cfz adantl wa c1 cmin fzss1 adantr 3sstr4d sylan2 0ss a1i pm2.61ne ) ABDEFZ
    ACGHZBCGHZIZJUMIZULJULJUMKULJLZUKCMFZUNUPAULFUQACNAACOPUKUQUAACUBUCHZSHZBUR
    SHZULUMUKUSUTIUQABURUDUEUQULUSQUKACRTUQUMUTQUKBCRTUFUGUOUKUMUHUIUJ $.

  $( Subset relationship for half-open sequences of integers.  (Contributed by
     Stefan O'Rear, 15-Aug-2015.)  (Revised by Mario Carneiro, 29-Sep-2015.) $)
  fzoss2 $p |- ( N e. ( ZZ>= ` K ) -> ( M ..^ K ) C_ ( M ..^ N ) ) $=
    ( cuz cfv wcel c1 cmin co cfz cfzo wss cz caddc eluzel2 peano2zm syl fzoval
    cc wceq 1zzd id zcnd ax-1cn sylancl fveq2d eleqtrrd eluzsub syl3anc eluzelz
    npcan fzss2 3sstr4d ) CADEZFZBAGHIZJIZBCGHIZJIZBAKIZBCKIZUOURUPDEFZUQUSLUOU
    PMFZGMFCUPGNIZDEZFVBUOAMFZVCACOZAPQUOUAUOCUNVEUOUBUOVDADUOASFGSFVDATUOAVGUC
    UDAGUKUEUFUGGUPCUHUIUPBURULQUOVFUTUQTVGBARQUOCMFVAUSTACUJBCRQUM $.

  $( Subset of a half open range.  (Contributed by Alexander van der Vekens,
     1-Nov-2017.) $)
  fzossrbm1 $p |- ( N e. ZZ -> ( 0 ..^ ( N - 1 ) ) C_ ( 0 ..^ N ) ) $=
    ( cz wcel c1 cmin co cuz cfv cc0 cfzo wss cle wbr peano2zm id zre syl3anbrc
    lem1d eluz2 fzoss2 syl ) ABCZAADEFZGHCZIUCJFIAJFKUBUCBCUBUCALMUDANUBOUBAAPR
    UCASQUCIATUA $.

  $( Subset relationship for half-open integer ranges with lower bounds 0 and
     1.  (Contributed by Alexander van der Vekens, 18-Mar-2018.) $)
  fzo0ss1 $p |- ( 1 ..^ N ) C_ ( 0 ..^ N ) $=
    ( c1 cc0 cuz cfv wcel cfzo co wss 1eluzge0 fzoss1 ax-mp ) BCDEFBAGHCAGHIJBC
    AKL $.

  $( A half-open integer range starting at a nonnegative integer is a subset of
     the nonnegative integers.  (Contributed by Alexander van der Vekens,
     13-May-2018.) $)
  fzossnn0 $p |- ( M e. NN0 -> ( M ..^ N ) C_ NN0 ) $=
    ( cn0 wcel cfzo co cc0 cfz fzossfz wss cuz cfv fzss1 eleq2s syl5ss fz0ssnn0
    nn0uz syl6ss ) ACDZABEFZGBHFZCSTABHFZUAABIUBUAJAGKLCAGBMQNOBPR $.

  $( One direction of splitting a half-open integer range in half.
     (Contributed by Stefan O'Rear, 14-Aug-2015.) $)
  fzospliti $p |- ( ( A e. ( B ..^ C ) /\ D e. ZZ ) ->
      ( A e. ( B ..^ D ) \/ A e. ( D ..^ C ) ) ) $=
    ( cfzo co wcel cz wa wo cle wbr clt cr zre adantr a1d wb elfzo syl3anc zred
    adantl elfzoelz lelttric syl2anc orcomd elfzole1 ancrd elfzolt2 orim12d mpd
    ancld elfzoel1 simpr elfzoel2 orbi12d mpbird ) ABCEFGZDHGZIZABDEFGZADCEFGZJ
    BAKLZADMLZIZDAKLZACMLZIZJZUTVDVFJVIUTVFVDUTDNGZANGVFVDJUSVJURDOUBUTAURAHGZU
    SABCUCPZUADAUDUEUFUTVDVEVFVHUTVDVCUTVCVDURVCUSABCUGPQUHUTVFVGUTVGVFURVGUSAB
    CUIPQULUJUKUTVAVEVBVHUTVKBHGZUSVAVERVLURVMUSABCUMPURUSUNZABDSTUTVKUSCHGZVBV
    HRVLVNURVOUSABCUOPADCSTUPUQ $.

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.
    $( Split a half-open integer range in half.  (Contributed by Stefan O'Rear,
       14-Aug-2015.) $)
    fzosplit $p |- ( D e. ( B ... C ) -> ( B ..^ C ) =
          ( ( B ..^ D ) u. ( D ..^ C ) ) ) $=
      ( vx cfz co wcel cfzo cun cv wa wo simpr elfzelz adantr cuz cfv wss syl
      cz fzospliti syl2anc elun sylibr ssrdv elfzuz3 fzoss2 elfzuz fzoss1 unssd
      ex eqssd ) CABEFGZABHFZACHFZCBHFZIZUMDUNUQUMDJZUNGZURUQGZUMUSKZURUOGURUPG
      LZUTVAUSCTGZVBUMUSMUMVCUSCABNOURABCUAUBURUOUPUCUDUKUEUMUOUPUNUMBCPQGUOUNR
      CABUFCABUGSUMCAPQGUPUNRCABUHCABUISUJUL $.

    $( Abutting half-open integer ranges are disjoint.  (Contributed by Stefan
       O'Rear, 14-Aug-2015.) $)
    fzodisj $p |- ( ( A ..^ B ) i^i ( B ..^ C ) ) = (/) $=
      ( vx cfzo co cin c0 wceq cv wcel wn wi cle wbr clt elfzolt2 elfzoelz zred
      disj1 elfzoel2 ltnled mpbid elfzole1 nsyl mpgbir ) ABEFZBCEFZGHIDJZUGKZUI
      UHKZLMDDUGUHTUJBUINOZUKUJUIBPOULLUIABQUJUIBUJUIUIABRSUJBUIABUASUBUCUIBCUD
      UEUF $.

    $( Split an upper integer set into a half-open integer range and another
       upper integer set.  (Contributed by Mario Carneiro, 21-Sep-2016.) $)
    fzouzsplit $p |- ( B e. ( ZZ>= ` A ) ->
      ( ZZ>= ` A ) = ( ( A ..^ B ) u. ( ZZ>= ` B ) ) ) $=
      ( vx cuz cfv wcel cfzo co cun cv wo wa clt wbr cr eluzelre syl2an eluzelz
      cz wb cle lelttric orcomd id w3a elfzo2 df-3an bitri baib syl2anr orbi12d
      eluz mpbird ex elun syl6ibr ssrdv wss elfzouz ssriv a1i uzss unssd eqssd
      ) BADEZFZVEABGHZBDEZIZVFCVEVIVFCJZVEFZVJVGFZVJVHFZKZVJVIFVFVKVNVFVKLZVNVJ
      BMNZBVJUANZKVOVQVPVFBOFVJOFVQVPKVKABPAVJPBVJUBQUCVOVLVPVMVQVKVKBSFZVLVPTV
      FVKUDABRZVLVKVRLZVPVLVKVRVPUEVTVPLVJABUFVKVRVPUGUHUIUJVFVRVJSFVMVQTVKVSAV
      JRBVJULQUKUMUNVJVGVHUOUPUQVFVGVHVEVGVEURVFCVGVEVJABUSUTVAABVBVCVD $.

    $( A half-open integer range does not overlap the upper integer range
       starting at the endpoint of the first range.  (Contributed by Mario
       Carneiro, 21-Sep-2016.) $)
    fzouzdisj $p |- ( ( A ..^ B ) i^i ( ZZ>= ` B ) ) = (/) $=
      ( vx cfzo co cuz cfv cin cv wcel wa clt wbr elfzolt2 adantr cle wn eluzle
      adantl cz eluzel2 zred cr eluzelre lenltd mpbid pm2.65i elin mtbir nel0 )
      CABDEZBFGZHZCIZUMJUNUKJZUNULJZKZUQUNBLMZUOURUPUNABNOUQBUNPMZURQUPUSUOBUNR
      SUQBUNUQBUPBTJUOBUNUASUBUPUNUCJUOBUNUDSUEUFUGUNUKULUHUIUJ $.
  $}

  ${
    $d A x $.  $d B x $.
    $( A half-open integer range and the singleton of its upper bound are
       disjoint.  (Contributed by AV, 7-Mar-2021.) $)
    fzodisjsn $p |- ( ( A ..^ B ) i^i { B } ) = (/) $=
      ( vx cfzo co csn c0 wceq cv wcel wn wi disj1 elfzoelz zred elfzolt2 ltned
      cin neneqd elsni nsyl mpgbir ) ABDEZBFZRGHCIZUCJZUEUDJZKLCCUCUDMUFUEBHUGU
      FUEBUFUEBUFUEUEABNOUEABPQSUEBTUAUB $.
  $}

  $( The intersection of a half-open integer range and the pair of its outer
     left borders is empty.  (Contributed by AV, 9-Jan-2021.) $)
  prinfzo0 $p |- ( M e. ZZ -> ( { M , N } i^i ( ( M + 1 ) ..^ N ) ) = (/) ) $=
    ( cz wcel csn c1 caddc co cfzo cin c0 cpr wn cuz sylibr incom eqeq1i disjsn
    wceq bitri cfv clt wbr w3o elfz3 fznuz 3mix1d 3ianor elfzo2 xchnxbir fzonel
    cfz syl w3a a1i cun wa df-pr ineq1i undisj1 bitr4i sylanbrc ) ACDZAEZAFGHZB
    IHZJZKSZBEZVFJZKSZABLZVFJZKSZVCAVFDZMZVHVCAVENUADZMZBCDZMZABUBUCZMZUDZVPVCV
    RVTWBVCAAAULHDVRAUEAAAUFUMUGVQVSWAUNWCVOVQVSWAUHAVEBUIUJOVHVFVDJZKSVPVGWDKV
    DVFPQVFARTOVCBVFDMZVKWEVCVEBUKUOVKVFVIJZKSWEVJWFKVIVFPQVFBRTOVNVDVIUPZVFJZK
    SVHVKUQVMWHKVLWGVFABURUSQVDVIVFUTVAVB $.

  $( An integer is strictly greater than zero iff it is a member of ` NN ` .
     (Contributed by Mario Carneiro, 29-Sep-2015.) $)
  lbfzo0 $p |- ( 0 e. ( 0 ..^ A ) <-> A e. NN ) $=
    ( cc0 cz wcel clt wbr w3a wa cfzo co cn 3anass mpbiran fzolb elnnz 3bitr4i
    0z ) BCDZACDZBAEFZGZSTHZBBAIJDAKDUARUBQRSTLMBANAOP $.

  $( Membership in a half-open integer range based at 0.  (Contributed by
     Stefan O'Rear, 15-Aug-2015.)  (Revised by Mario Carneiro, 29-Sep-2015.) $)
  elfzo0 $p |- ( A e. ( 0 ..^ B ) <-> ( A e. NN0 /\ B e. NN /\ A < B ) ) $=
    ( cc0 cfzo co wcel cn0 clt wbr w3a cuz cfv elfzouz elnn0uz sylibr elfzolt3b
    cn lbfzo0 sylib elfzolt2 3jca cz simp1 nnz 3ad2ant2 elfzo2 syl3anbrc impbii
    simp3 ) ACBDEZFZAGFZBQFZABHIZJZUKULUMUNUKACKLFZULACBMANZOUKCUJFUMACBPBRSACB
    TUAUOUPBUBFZUNUKUOULUPULUMUNUCUQSUMULURUNBUDUEULUMUNUIACBUFUGUH $.

  $( Membership in a half-open range of nonnegative integers, generalization of
     ~ elfzo0 requiring the upper bound to be an integer only.  (Contributed by
     Alexander van der Vekens, 23-Sep-2018.) $)
  elfzo0z $p |- ( A e. ( 0 ..^ B ) <-> ( A e. NN0 /\ B e. ZZ /\ A < B ) ) $=
    ( cc0 cfzo co wcel cn0 cn clt wbr w3a cz elfzo0 nnz 3anim2i wa wi cr adantl
    zre simp1 cle elnn0z 0red adantr lelttr syl3anc simplbi2 syld expd impancom
    elnnz sylbi 3imp simp3 3jca impbii bitri ) ACBDEFAGFZBHFZABIJZKZUSBLFZVAKZA
    BMVBVDUTVCUSVABNOVDUSUTVAUSVCVAUAUSVCVAUTUSALFZCAUBJZPVCVAUTQZQAUCVEVCVFVGV
    EVCPZVFVAUTVHVFVAPZCBIJZUTVHCRFARFZBRFZVIVJQVHUDVEVKVCATUEVCVLVEBTSCABUFUGV
    CVJUTQVEUTVCVJBULUHSUIUJUKUMUNUSVCVAUOUPUQUR $.

  $( A nonnegative integer increased by 1 which is less than or equal to
     another integer is an element of a half-open range of integers.
     (Contributed by AV, 27-Feb-2021.) $)
  nn0p1elfzo $p |- ( ( K e. NN0 /\ N e. NN0 /\ ( K + 1 ) <_ N )
                 -> K e. ( 0 ..^ N ) ) $=
    ( cn0 wcel c1 caddc co cle wbr w3a cn clt cfzo nn0ltp1le wa simpr adantr cr
    cc0 nn0re biimp3ar simpl1 nn0ge0 wi lelttr mp3an3an mpand elnnnn0b sylanbrc
    0re imp 3adantl3 3jca mpdan elfzo0 sylibr ) ACDZBCDZAEFGBHIZJZUQBKDZABLIZJZ
    ASBMGDUTVBVCUQURVBUSABNUAUTVBOUQVAVBUQURUSVBUBUQURVBVAUSUQUROZVBOURSBLIZVAV
    DURVBUQURPQVDVBVEVDSAHIZVBVEUQVFURAUCQSRDUQARDURBRDVFVBOVEUDUJATBTSABUEUFUG
    UKBUHUIULUTVBPUMUNABUOUP $.

  $( A member in a half-open range of nonnegative integers is less than or
     equal to the upper bound of the range.  (Contributed by Alexander van der
     Vekens, 23-Sep-2018.) $)
  elfzo0le $p |- ( A e. ( 0 ..^ B ) -> A <_ B ) $=
    ( cc0 cfzo co wcel cn0 cn clt wbr w3a elfzo0 cr wi nn0re nnre syl2an 3impia
    cle ltle sylbi ) ACBDEFAGFZBHFZABIJZKABSJZABLUBUCUDUEUBAMFBMFUDUENUCAOBPABT
    QRUA $.

  $( A member of a half-open range of nonnegative integers is a nonnegative
     integer.  (Contributed by Alexander van der Vekens, 21-May-2018.) $)
  elfzonn0 $p |- ( K e. ( 0 ..^ N ) -> K e. NN0 ) $=
    ( cc0 cfzo co wcel cuz cfv cn0 elfzouz elnn0uz sylibr ) ACBDEFACGHFAIFACBJA
    KL $.

  $( The result of subtracting a nonnegative integer from a positive integer
     and adding another nonnegative integer which is less than the first one is
     less than the positive integer.  (Contributed by Alexander van der Vekens,
     19-May-2018.) $)
  fzonmapblen $p |- ( ( A e. ( 0 ..^ N ) /\ B e. ( 0 ..^ N ) /\ B < A )
                      -> ( B + ( N - A ) ) < N ) $=
    ( cc0 cfzo co wcel clt wbr cmin caddc cr wa wi cn0 cn anim12i adantr recn
    cc w3a elfzo0 nn0re nnre 3adant3 sylbi elfzoelz simpr simpll resubcl ancoms
    zred ltadd1d biimpa wceq pncan3 syl breqtrd ex syl2an 3impia ) ADCEFZGZBVBG
    ZBAHIZBCAJFZKFZCHIZVCALGZCLGZMZBLGZVEVHNVDVCAOGZCPGZACHIZUAVKACUBVMVNVKVOVM
    VIVNVJAUCCUDQUEUFVDBBDCUGULVKVLMZVEVHVPVEMZVGAVFKFZCHVPVEVGVRHIVPBAVFVKVLUH
    VIVJVLUIVKVFLGZVLVJVIVSCAUJUKRUMUNVQATGZCTGZMZVRCUOVPWBVEVKWBVLVIVTVJWAASCS
    QRRACUPUQURUSUTVA $.

  $( If a nonnegative integer in a finite interval of integers is not the upper
     bound of the interval, it is contained in the corresponding half-open
     integer range.  (Contributed by Alexander van der Vekens, 15-Jun-2018.) $)
  fzofzim $p |- ( ( K =/= M /\ K e. ( 0 ... M ) ) -> K e. ( 0 ..^ M ) ) $=
    ( wne cc0 co wcel wa cn0 clt wbr w3a cle wi cr nn0re adantl expd sylbi imp
    cz cfz cn cfzo elfz2nn0 simpl1 necom wb ltlen syl2an bicomd elnn0z 0red zre
    adantr lelttr syl3anc nn0z elnnz simplbi2 syl impancom sylbid syl7bi 3impia
    syld biimpd exp4b 3imp syl5bi 3jca ex impcom elfzo0 sylibr ) ABCZADBUAEFZGA
    HFZBUBFZABIJZKZADBUCEFVPVOVTVPVQBHFZABLJZKZVOVTMABUDWCVOVTWCVOGVQVRVSVQWAWB
    VOUEWCVOVRVQWAWBVOVRMVOBACZVQWAGZWBVRABUFZWEWBWDVRWEWBWDGZVSVRWEVSWGVQANFZB
    NFZVSWGUGWAAOBOZABUHUIUJZVQWAVSVRMZVQATFZDALJZGWAWLMAUKWMWAWNWLWMWAGZWNVSVR
    WOWNVSGZDBIJZVRWODNFWHWIWPWQMWOULWMWHWAAUMUNWAWIWMWJPDABUOUPWAWQVRMZWMWABTF
    ZWRBUQVRWSWQBURUSUTPVEQVARSVBQVCVDSWCVOVSVOWDWCVSWFVQWAWBWDVSMVQWAWBWDVSWEW
    GVSWKVFVGVHVISVJVKRVLABVMVN $.

  $( Translation of one between closed and open integer ranges.  (Contributed
     by Thierry Arnoux, 28-Jul-2020.) $)
  fz1fzo0m1 $p |- ( M e. ( 1 ... N ) -> ( M - 1 ) e. ( 0 ..^ N ) ) $=
    ( c1 cfz co wcel cmin cc0 cfzo cz 1zzd elfzel2 elfzelz fzsubel syl22anc ibi
    wb 1m1e0 oveq1i syl6eleq wceq fzoval syl eleqtrrd ) ACBDEFZACGEZHBCGEZDEZHB
    IEZUEUFCCGEZUGDEZUHUEUFUKFZUECJFZBJFZAJFUMUEULQUEKZACBLZACBMUOACCBNOPUJHUGD
    RSTUEUNUIUHUAUPHBUBUCUD $.

  ${
    $d k N $.
    $( Half-open integer ranges starting with 1 are subsets of NN. (Contributed
       by Thierry Arnoux, 28-Dec-2016.) $)
    fzossnn $p |- ( 1 ..^ N ) C_ NN $=
      ( vk c1 cfzo co cfz cn fzossfz cv elfznn ssriv sstri ) CADECAFEZGCAHBMGBI
      AJKL $.
  $}

  $( Membership in a half-open integer range based at 1.  (Contributed by
     Thierry Arnoux, 14-Feb-2017.) $)
  elfzo1 $p |- ( N e. ( 1 ..^ M ) <-> ( N e. NN /\ M e. NN /\ N < M ) ) $=
    ( c1 cfzo co wcel clt wbr w3a fzossnn sseli cuz cfv elfzouz2 eluznn syl2anc
    cn elfzolt2 3jca cz nnuz eqimssi nnz id 3anim123i elfzo2 sylibr impbii ) BC
    ADEZFZBQFZAQFZBAGHZIZUJUKULUMUIQBAJKZUJUKABLMFULUOBCANABOPBCARSUNBCLMZFZATF
    ZUMIUJUKUQULURUMUMQUPBQUPUAUBKAUCUMUDUEBCAUFUGUH $.

  $( An integer between 1 and an upper bound of a half-open integer range is
     not 0 and between 0 and the upper bound of the half-open integer range.
     (Contributed by Alexander van der Vekens, 21-Mar-2018.) $)
  fzo1fzo0n0 $p |- ( K e. ( 1 ..^ N ) <-> ( K e. ( 0 ..^ N ) /\ K =/= 0 ) ) $=
    ( c1 cfzo co wcel cc0 wne wa cz clt wbr w3a cn wi adantr adantl 3jca sylbir
    cr cuz cfv elfzo2 cn0 nnnn0 nngt0 0red nnre zre lttr syl3anc elnnz simplbi2
    elnnuz syld exp4b com13 mpcom imp31 simpr exp31 3imp elfzo0 sylibr 3ad2ant1
    nnne0 jca sylbi cle elnnne0 nnge1 3ad2antl1 simpl3 wb nn0z 1zzd nnz 3adant3
    elfzo syl mpbir2and sylanb impbii ) ACBDEFZAGBDEFZAGHZIZWDACUAUBFZBJFZABKLZ
    MZWGACBUCWKWEWFWKAUDFZBNFZWJMZWEWHWIWJWNWHANFZWIWJWNOOAUNZWOWIWJWNWOWIIZWJI
    WLWMWJWQWLWJWOWLWIAUEPPWOWIWJWMGAKLZWOWIWJWMOZOAUFWIWOWRWSWIWOWRWJWMWIWOIZW
    RWJIZGBKLZWMWTGTFATFZBTFZXAXBOWTUGWOXCWIAUHQWIXDWOBUIPGABUJUKWIXBWMOWOWMWIX
    BBULUMPUOUPUQURUSWQWJUTRVASVBABVCZVDWHWIWFWJWHWOWFWPAVFSVEVGVHWEWNWFWDXEWNW
    FIZWDCAVILZWJWLWMWFXGWJWLWFIWOXGAVJAVKSVLWLWMWJWFVMXFAJFZCJFZWIMZWDXGWJIVNW
    NXJWFWLWMXJWJWLWMIZXHXIWIWLXHWMAVOPXKVPWMWIWLBVQQRVRPACBVSVTWAWBWC $.

  $( A half-open integer range based at 0 is nonempty precisely if the upper
     bound is a positive integer.  (Contributed by Stefan O'Rear, 15-Aug-2015.)
     (Revised by Mario Carneiro, 29-Sep-2015.) $)
  fzo0n0 $p |- ( ( 0 ..^ A ) =/= (/) <-> A e. NN ) $=
    ( cc0 cfzo co c0 wne wcel cn fzon0 lbfzo0 bitri ) BACDZEFBLGAHGBAIAJK $.

  $( Translate membership in a half-open integer range.  (Contributed by Stefan
     O'Rear, 15-Aug-2015.) $)
  fzoaddel $p |- ( ( A e. ( B ..^ C ) /\ D e. ZZ ) ->
      ( A + D ) e. ( ( B + D ) ..^ ( C + D ) ) ) $=
    ( cfzo co wcel cz wa caddc cle wbr clt elfzoel1 adantr zred elfzoelz zaddcl
    simpr sylan elfzole1 leadd1dd elfzoel2 elfzolt2 ltadd1dd wb elfzo mpbir2and
    syl3anc ) ABCEFGZDHGZIZADJFZBDJFZCDJFZEFGZUNUMKLZUMUOMLZULBADULBUJBHGZUKABC
    NZOPULAUJAHGZUKABCQZOPZULDUJUKSPZUJBAKLUKABCUAOUBULACDVCULCUJCHGZUKABCUCZOP
    VDUJACMLUKABCUDOUEULUMHGZUNHGZUOHGZUPUQURIUFUJVAUKVGVBADRTUJUSUKVHUTBDRTUJV
    EUKVIVFCDRTUMUNUOUGUIUH $.

  $( Translate membership in a 0 based half-open integer range.  (Contributed
     by AV, 30-Apr-2020.) $)
  fzo0addel $p |- ( ( A e. ( 0 ..^ C ) /\ D e. ZZ )
                     -> ( A + D ) e. ( D ..^ ( C + D ) ) ) $=
    ( cc0 cfzo co wcel cz wa caddc fzoaddel wceq cc addid2 eqcomd adantl oveq1d
    zcn syl eleqtrrd ) ADBEFGZCHGZIZACJFDCJFZBCJFZEFCUEEFADBCKUCCUDUEEUBCUDLZUA
    UBCMGZUFCRUGUDCCNOSPQT $.

  $( Translate membership in a 0 based half-open integer range.  (Contributed
     by AV, 30-Apr-2020.) $)
  fzo0addelr $p |- ( ( A e. ( 0 ..^ C ) /\ D e. ZZ )
                     -> ( A + D ) e. ( D ..^ ( D + C ) ) ) $=
    ( cc0 cfzo co wcel cz caddc fzo0addel wceq zcn elfzoel2 zcnd addcom syl2anr
    wa cc oveq2d eleqtrrd ) ADBEFGZCHGZQZACIFCBCIFZEFCCBIFZEFABCJUCUEUDCEUBCRGB
    RGUEUDKUACLUABADBMNCBOPST $.

  $( Translate membership in a shifted-down half-open integer range.
     (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  fzoaddel2 $p |- ( ( A e. ( 0 ..^ ( B - C ) ) /\ B e. ZZ /\ C e. ZZ ) ->
      ( A + C ) e. ( C ..^ B ) ) $=
    ( cc0 cmin co cfzo wcel cz w3a caddc fzoaddel 3adant2 wceq cc zcn wa addid2
    adantl npcan oveq12d syl2an 3adant1 eleqtrd ) ADBCEFZGFHZBIHZCIHZJACKFZDCKF
    ZUECKFZGFZCBGFZUFUHUIULHUGADUECLMUGUHULUMNZUFUGBOHZCOHZUNUHBPCPUOUPQUJCUKBG
    UPUJCNUOCRSBCTUAUBUCUD $.

  $( Membership of an integer in an extended open range of integers.
     (Contributed by AV, 30-Apr-2020.) $)
  elfzoext $p |- ( ( Z e. ( M ..^ N ) /\ I e. NN0 )
                   -> Z e. ( M ..^ ( N + I ) ) ) $=
    ( cfzo co wcel cn0 caddc cz elfzoel2 wa cuz cfv wss wceq zcn nn0cn addcom
    cc syl2an nn0pzuz ancoms eqeltrd fzoss2 syl sselda expcom mpand imp ) DBCEF
    ZGZAHGZDBCAIFZEFZGZULCJGZUMUPDBCKUQUMLZULUPURUKUODURUNCMNZGUKUOOURUNACIFZUS
    UQCTGATGUNUTPUMCQARCASUAUMUQUTUSGACUBUCUDCBUNUEUFUGUHUIUJ $.

  $( Membership of an increased integer in a correspondingly extended half-open
     range of integers.  (Contributed by AV, 30-Apr-2020.) $)
  elincfzoext $p |- ( ( Z e. ( M ..^ N ) /\ I e. NN0 )
                      -> ( Z + I ) e. ( M ..^ ( N + I ) ) ) $=
    ( cfzo co wcel wa caddc cle wbr clt wi cr zred adantr adantl syl3anc mpd cz
    elfzole1 elfzoelz nn0addge1 sylan elfzoel1 nn0re readdcld exp4b com23 imp31
    cn0 letr exp31 imp elfzoel2 elfzolt2 ltadd1dd nn0z zaddcld elfzo mpbir2and
    wb ) DBCEFGZAUKGZHZDAIFZBCAIFZEFGZBVFJKZVFVGLKZVCVDVIVCBDJKZVDVIMDBCUAVCVKV
    DVIVCVKHZVDHDVFJKZVIVLDNGZVDVMVCVNVKVCDDBCUBZOZPDAUCUDVCVKVDVMVIMZVCVDVKVQV
    CVDVKVMVIVEBNGZVNVFNGVKVMHVIMVCVRVDVCBDBCUEZOPVCVNVDVPPZVEDAVTVDANGVCAUFQZU
    GBDVFULRUHUIUJSUMSUNVEDCAVTVCCNGVDVCCDBCUOZOPWAVCDCLKVDDBCUPPUQVEVFTGBTGZVG
    TGVHVIVJHVBVEDAVCDTGVDVOPVDATGVCAURQZUSVCWCVDVSPVECAVCCTGVDWBPWDUSVFBVGUTRV
    A $.

  $( Translate membership in a half-open integer range.  (Contributed by Stefan
     O'Rear, 15-Aug-2015.) $)
  fzosubel $p |- ( ( A e. ( B ..^ C ) /\ D e. ZZ ) ->
      ( A - D ) e. ( ( B - D ) ..^ ( C - D ) ) ) $=
    ( cfzo co wcel cz wa cneg caddc cmin znegcl fzoaddel sylan2 elfzoelz adantr
    zcnd simpr negsubd elfzoel1 elfzoel2 oveq12d 3eltr3d ) ABCEFGZDHGZIZADJZKFZ
    BUHKFZCUHKFZEFZADLFBDLFZCDLFZEFUFUEUHHGUIULGDMABCUHNOUGADUGAUEAHGUFABCPQRUG
    DUEUFSRZTUGUJUMUKUNEUGBDUGBUEBHGUFABCUAQRUOTUGCDUGCUECHGUFABCUBQRUOTUCUD $.

  $( Membership in a translated half-open integer range implies translated
     membership in the original range.  (Contributed by Stefan O'Rear,
     15-Aug-2015.) $)
  fzosubel2 $p |- ( ( A e. ( ( B + C ) ..^ ( B + D ) ) /\ ( B e. ZZ /\
        C e. ZZ /\ D e. ZZ ) ) -> ( A - B ) e. ( C ..^ D ) ) $=
    ( caddc co cfzo wcel cz w3a cmin fzosubel 3ad2antr1 wceq zcn pncan2 3adant3
    wa cc 3adant2 oveq12d syl3an adantl eleqtrd ) ABCEFZBDEFZGFHZBIHZCIHZDIHZJZ
    RABKFZUEBKFZUFBKFZGFZCDGFZUGUIUHULUOHUJAUEUFBLMUKUOUPNZUGUHBSHZUICSHZUJDSHZ
    UQBOCODOURUSUTJUMCUNDGURUSUMCNUTBCPQURUTUNDNUSBDPTUAUBUCUD $.

  $( Membership in a translated half-open integer range when the original range
     is zero-based.  (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  fzosubel3 $p |- ( ( A e. ( B ..^ ( B + D ) ) /\ D e. ZZ ) ->
      ( A - B ) e. ( 0 ..^ D ) ) $=
    ( caddc co cfzo wcel cz wa cmin simpl elfzoel1 adantr zcnd addid1d eleqtrrd
    cc0 oveq1d 0zd simpr fzosubel2 syl13anc ) ABBCDEZFEZGZCHGZIZABQDEZUCFEZGBHG
    ZQHGUFABJEQCFEGUGAUDUIUEUFKUGUHBUCFUGBUGBUEUJUFABUCLMZNORPUKUGSUEUFTABQCUAU
    B $.

  $( Membership of the difference of integers in a half-open range of
     nonnegative integers.  (Contributed by Alexander van der Vekens,
     17-Sep-2018.) $)
  eluzgtdifelfzo $p |- ( ( A e. ZZ /\ B e. ZZ )
                         -> ( ( N e. ( ZZ>= ` A ) /\ B < A )
                              -> ( N - A ) e. ( 0 ..^ ( N - B ) ) ) ) $=
    ( cz wcel wa clt wbr cmin co cc0 cfzo caddc simpl adantl adantr ad2antrr cr
    zre cc cuz cfv eluzelz simprr zsubcld ancoms zaddcld posdif syl2anr adantld
    wi biimpd imp resubcl syl2an eluzelre ad2antrl ltaddposd mpbid zcn eluzelcn
    wb w3a addsub12 breq2d syl3anc mpbird elfzo2 syl3anbrc fzosubel3 syl2anc ex
    ) ADEZBDEZFZCAUAUBEZBAGHZFZCAIJKCBIJZLJEZVOVRFZCAAVSMJZLJEZVSDEZVTWAVPWBDEC
    WBGHZWCVRVPVOVPVQNOWAAVSVOVMVRVMVNNPVRVOWDVRVOFCBVPCDEVQVOACUCQVRVMVNUDUEUF
    ZUGWAWECCABIJZMJZGHZWAKWGGHZWIVOVRWJVOVQWJVPVNBREZAREZVQWJUKVMBSZASZWKWLFVQ
    WJBAUHULUIUJUMWAWGCVOWGREZVRVMWLWKWOVNWNWMABUNUOPVPCREVOVQACUPUQURUSWAATEZC
    TEZBTEZWEWIVBVMWPVNVRAUTQVPWQVOVQACVAUQVOWRVRVNWRVMBUTOPWPWQWRVCWBWHCGACBVD
    VEVFVGCAWBVHVIWFCAVSVJVKVL $.

  $( Membership of an integer greater than 1 decreased by 2 in a half-open
     range of nonnegative integers.  (Contributed by Alexander van der Vekens,
     3-Oct-2018.) $)
  ige2m2fzo $p |- ( N e. ( ZZ>= ` 2 ) -> ( N - 2 ) e. ( 0 ..^ ( N - 1 ) ) ) $=
    ( c2 cuz cfv wcel cz c1 wa clt wbr cmin co cc0 cfzo eluzel2 jctir 1lt2 jctr
    1z eluzgtdifelfzo sylc ) ABCDEZBFEZGFEZHUBGBIJZHABKLMAGKLNLEUBUCUDBAOSPUBUE
    QRBGATUA $.

  $( Translate membership in a half-open integer range.  (Contributed by
     Thierry Arnoux, 28-Sep-2018.) $)
  fzocatel $p |- ( ( ( A e. ( 0 ..^ ( B + C ) ) /\ -. A e. ( 0 ..^ B ) )
    /\ ( B e. ZZ /\ C e. ZZ ) ) -> ( A - B ) e. ( 0 ..^ C ) ) $=
    ( cc0 caddc co cfzo wcel wn wa cz cmin simplr wo fzospliti ad2ant2r ord mpd
    simprl zcnd fzosubel syl2anc wceq zcn subidd simprr pncan2d oveq12d eleqtrd
    syl ) ADBCEFZGFHZADBGFHZIZJZBKHZCKHZJZJZABLFZBBLFZUKBLFZGFZDCGFUSABUKGFHZUP
    UTVCHUSUNVDULUNURMUSUMVDULUPUMVDNUNUQADUKBOPQRUOUPUQSZABUKBUAUBUSVADVBCGUSU
    PVADUCVEUPBBUDUEUJUSBCUSBVETUSCUOUPUQUFTUGUHUI $.

  $( If an integer in a 1 based finite set of sequential integers is subtracted
     from the upper bound of this finite set of sequential integers, the result
     is contained in a half-open range of nonnegative integers with the same
     upper bound.  (Contributed by AV, 18-Mar-2018.)  (Revised by AV,
     30-Oct-2018.) $)
  ubmelfzo $p |- ( K e. ( 1 ... N ) -> ( N - K ) e. ( 0 ..^ N ) ) $=
    ( cn wcel cle wbr w3a co cn0 clt cc0 wa wb nnnn0 anim12i 3adant3 mpbid nnre
    syl cr cmin cfz cfzo simp3 nn0sub simp2 nngt0 3ad2ant1 ltsubpos 3jca elfz1b
    c1 elfzo0 3imtr4i ) ACDZBCDZABEFZGZBAUAHZIDZUPUSBJFZGAULBUBHDUSKBUCHDURUTUP
    VAURUQUTUOUPUQUDURAIDZBIDZLZUQUTMUOUPVDUQUOVBUPVCANBNOPABUESQUOUPUQUFURKAJF
    ZVAUOUPVEUQAUGUHURATDZBTDZLZVEVAMUOUPVHUQUOVFUPVGARBROPABUISQUJBAUKUSBUMUN
    $.

  $( If an integer is in a half-open range of nonnegative integers with a
     difference as upper bound, the sum of the integer with the subtrahend of
     the difference is in the a half-open range of nonnegative integers
     containing the minuend of the difference.  (Contributed by AV,
     13-Nov-2018.) $)
  elfzodifsumelfzo $p |- ( ( M e. ( 0 ... N ) /\ N e. ( 0 ... P ) )
                           -> ( I e. ( 0 ..^ ( N - M ) )
                                -> ( I + M ) e. ( 0 ..^ P ) ) ) $=
    ( cc0 co wcel wi cn0 cle wbr w3a wa clt cz adantr cr nn0re adantl imp caddc
    cfz cmin cfzo elfz2nn0 cn elfzo0 wb nn0z znnsub syl2an simpr simpll syl2anr
    nn0addcl 0red 3jca nn0ge0 anim1i lelttr sylc ex ltletr syl3anc simplbi2 syl
    elnnz syld exp4b com24 com13 readdcl ltaddsubd exbiri impd anasss syl3anbrc
    com23 exp53 sylbird 3adant3 com14 3imp sylbi 3adant1 com12 ) CEDUBFGZDEAUBF
    GZBEDCUCFZUDFGZBCUAFZEAUDFGZHZWGCIGZDIGZCDJKZLZWHWMHCDUEWHWQWMWHWOAIGZDAJKZ
    LWQWMHZDAUEWRWSWTWOWJWQWRWSMZWLWJBIGZWIUFGZBWINKZLWQXAWLHZHZBWIUGXBXCXDXFWQ
    XCXDXBXEWNWOXCXDXBXEHHZHWPWNWOMZXCCDNKZXGWNCOGDOGXIXCUHWOCUIDUICDUJUKXHXIXD
    XBXAWLXHXIMZXDXBMZMZXAMWKIGZAUFGZWKANKZWLXLXMXAXKXBWNXMXJXDXBULWNWOXIUMBCUO
    UNPXLXAXNXJXAXNHZXKXHXIXPXHXIEDNKZXPXHXIXQXJEQGZCQGZDQGZLZECJKZXIMXQXHYAXIX
    HXRXSXTXHUPWNXSWOCRPZWOXTWNDRZSZUQPXHYBXIWNYBWOCURPUSECDUTVAVBWOXQXPHWNXAXQ
    WOXNWRWSXQWOXNHHWRWOXQWSXNWRWOXQWSXNWRWOMZXQWSMZEANKZXNYFXRXTAQGZYGYHHYFUPW
    OXTWRYDSWRYIWOARZPEDAVCVDWRYHXNHZWOWRAOGZYKAUIXNYLYHAVGVEVFPVHVIVJTVKSVHTPT
    XLWRWSXOXLWRMZWSMWKQGZXTYILZWKDNKZWSMXOYMYOWSYMYNXTYIXLYNWRXKBQGZXSYNXJXBYQ
    XDBRZSXHXSXIYCPBCVLUNPXLXTWRXJXTXKXHXTXIYEPPPWRYIXLYJSUQPYMYPWSXLYPWRXJXKYP
    XHXKYPHXIXHXDXBYPXHXBXDYPXHXBYPXDXHXBMBCDXBYQXHYRSXHXSXBYCPXHXTXBYEPVMVNVRV
    OPTPUSWKDAVCVAVPWKAUGVQVSVTWAWBWCWDVKWEWDWFWDT $.

  $( Membership of an integer incremented by one in a half-open range of
     nonnegative integers.  (Contributed by Alexander van der Vekens,
     24-Jun-2018.)  (Proof shortened by AV, 5-Jan-2020.) $)
  elfzom1elp1fzo $p |- ( ( N e. ZZ /\ I e. ( 0 ..^ ( N - 1 ) ) )
                         -> ( I + 1 ) e. ( 0 ..^ N ) ) $=
    ( cz wcel cc0 c1 cmin co cfzo cfz caddc cn0 cle wbr w3a sylibr 3syl wss jca
    wa cn cuz cfv wi elfzofz elfzuz2 elnn0uz cc zcn anim1i expcom sylbir impcom
    elnnnn0 1nn0 a1i nnnn0 nnge1 3jca syl fzossrbm1 adantr fzossfz syl6ss simpr
    elfz2nn0 ssel2 elfzubelfz elfzodifsumelfzo sylc ) BCDZAEBFGHZIHZDZTZFEBJHZD
    ZBVPDZTVNAFKHEBIHZDVOVQVRVOFLDZBLDZFBMNZOZVQVOBUADZWCVNVKWDVNAEVLJHDVLEUBUC
    DZVKWDUDZAEVLUEAEVLUFWEVLLDZWFVLUGVKWGWDVKWGTBUHDZWGTWDVKWHWGBUIUJBUNPUKULQ
    UMWDVTWAWBVTWDUOUPBUQBURUSUTFBVFPVOVMVPRZVNTAVPDVRVOWIVNVOVMVSVPVKVMVSRVNBV
    AVBEBVCVDVKVNVEZSVMVPAVGAEBVHQSWJBAFBVIVJ $.

  $( Membership in a half-open range of nonnegative integers.  (Contributed by
     Alexander van der Vekens, 18-Jun-2018.) $)
  elfzom1elfzo $p |- ( ( N e. ZZ /\ I e. ( 0 ..^ ( N - 1 ) ) )
                       -> I e. ( 0 ..^ N ) ) $=
    ( cz wcel cc0 c1 cmin co cfzo fzossrbm1 sselda ) BCDEBFGHIHEBIHABJK $.

  $( Expressing a closed integer range as a half-open integer range.
     (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  fzval3 $p |- ( N e. ZZ -> ( M ... N ) = ( M ..^ ( N + 1 ) ) ) $=
    ( cz wcel c1 caddc co cfzo cmin cfz wceq peano2z fzoval syl cc ax-1cn pncan
    zcn sylancl oveq2d eqtr2d ) BCDZABEFGZHGZAUCEIGZJGZABJGUBUCCDUDUFKBLAUCMNUB
    UEBAJUBBODEODUEBKBRPBEQSTUA $.

  $( Translate membership in a 0 based half-open integer range into membership
     in a 1 based finite sequence of integers.  (Contributed by Alexander van
     der Vekens, 23-Nov-2017.) $)
  fz0add1fz1 $p |- ( ( N e. NN0 /\ X e. ( 0 ..^ N ) )
                         -> ( X + 1 ) e. ( 1 ... N ) ) $=
    ( cn0 wcel cc0 cfzo co wa c1 caddc cfz cz 1z fzoaddel mpan2 adantl wb 0p1e1
    oveq1i wceq nn0z fzval3 eqcomd syl syl5eq eleq2d adantr mpbid ) ACDZBEAFGDZ
    HBIJGZEIJGZAIJGZFGZDZUKIAKGZDZUJUOUIUJILDUOMBEAINOPUIUOUQQUJUIUNUPUKUIUNIUM
    FGZUPULIUMFRSUIALDZURUPTAUAUSUPURIAUBUCUDUEUFUGUH $.

  $( Expressing a singleton as a half-open range.  (Contributed by Stefan
     O'Rear, 23-Aug-2015.) $)
  fzosn $p |- ( A e. ZZ -> ( A ..^ ( A + 1 ) ) = { A } ) $=
    ( cz wcel cfz co c1 caddc cfzo csn fzval3 fzsn eqtr3d ) ABCAADEAAFGEHEAIAAJ
    AKL $.

  $( Membership of an integer in the smallest open range of integers.
     (Contributed by Alexander van der Vekens, 22-Sep-2018.) $)
  elfzomin $p |- ( Z e. ZZ -> Z e. ( Z ..^ ( Z + 1 ) ) ) $=
    ( cz wcel csn c1 caddc co cfzo snidg fzosn eleqtrrd ) ABCAADAAEFGHGABIAJK
    $.

  $( Membership of an integer increased by a nonnegative integer in a half-
     open integer range.  (Contributed by Alexander van der Vekens,
     22-Sep-2018.) $)
  zpnn0elfzo $p |- ( ( Z e. ZZ /\ N e. NN0 )
                     -> ( Z + N ) e. ( Z ..^ ( ( Z + N ) + 1 ) ) ) $=
    ( cz wcel cn0 wa cuz cfv caddc cfzo uzid anim1i nn0z zaddcl sylan2 elfzomin
    co c1 syl wss uzaddcl fzoss1 sselda syl2anc ) BCDZAEDZFZBBGHZDZUFFZBAIQZUKU
    KRIQZJQZDZUKBULJQZDUEUIUFBKLUGUKCDZUNUFUEACDUPAMBANOUKPSUJUMUOUKUJUKUHDUMUO
    TABBUAUKBULUBSUCUD $.

  $( Membership of an integer increased by a nonnegative integer in a half-
     open integer range.  (Contributed by Alexander van der Vekens,
     22-Sep-2018.) $)
  zpnn0elfzo1 $p |- ( ( Z e. ZZ /\ N e. NN0 )
                     -> ( Z + N ) e. ( Z ..^ ( Z + ( N + 1 ) ) ) ) $=
    ( cz wcel cn0 wa caddc co c1 cfzo zpnn0elfzo cc adantr nn0cn adantl addassd
    zcn 1cnd oveq2d eleqtrd ) BCDZAEDZFZBAGHZBUDIGHZJHBBAIGHGHZJHABKUCUEUFBJUCB
    AIUABLDUBBQMUBALDUAANOUCRPST $.

  $( Removing a singleton from a half-open integer range at the end.
     (Contributed by Alexander van der Vekens, 23-Mar-2018.) $)
  fzosplitsnm1 $p |- ( ( A e. ZZ /\ B e. ( ZZ>= ` ( A + 1 ) ) ) ->
      ( A ..^ B ) = ( ( A ..^ ( B - 1 ) ) u. { ( B - 1 ) } ) ) $=
    ( cz wcel c1 caddc co cuz cfv wa cfzo cmin cun csn wceq eluzelz zcnd adantl
    cc syl ax-1cn npcan eqcomd sylancl cfz eluzp1m1 peano2zm uzid peano2uz 4syl
    oveq2d elfzuzb sylanbrc fzosplit fzosn uneq2d 3eqtrd ) ACDZBAEFGZHIDZJZABKG
    ABELGZEFGZKGZAVBKGZVBVCKGZMZVEVBNZMVABVCAKVABSDZESDZBVCOUTVIURUTBUSBPZQRUAV
    IVJJVCBBEUBUCUDUKVAVBAVCUEGDZVDVGOVAVBAHIDVCVBHIZDZVLABUFVABCDZVBCDZVBVMDVN
    UTVOURVKRBUGZVBUHVBVBUIUJVBAVCULUMAVCVBUNTVAVFVHVEVAVPVFVHOUTVPURUTVOVPVKVQ
    TRVBUOTUPUQ $.

  $( If an element of a half-open integer range is not less than the upper
     bound of the range decreased by 1, it must be equal to the upper bound of
     the range decreased by 1.  (Contributed by AV, 3-Nov-2018.) $)
  elfzonlteqm1 $p |- ( ( A e. ( 0 ..^ B ) /\ -. A < ( B - 1 ) )
                       -> A = ( B - 1 ) ) $=
    ( cc0 cfzo co wcel c1 cmin clt wbr wn wceq csn cun cuz cfv w3a elfzo0 sylbi
    cn wi cz caddc 0z elnnuz biimpi 0p1e1 fveq2d eleqtrrd 3ad2ant2 fzosplitsnm1
    cn0 a1i sylancr eleq2 elun pm2.24 3ad2ant3 elsni a1d jaoi syl6bi mpcom imp
    wo ) ACBDEZFZABGHEZIJZKZAVHLZVFCVHDEZVHMZNZLZVGVJVKUAZVGCUBFBCGUCEZOPZFZVOU
    DVGAULFZBTFZABIJZQVSABRWAVTVSWBWABGOPZVRWABWCFBUEUFWAVQGOVQGLWAUGUMUHUIUJSC
    BUKUNVOVGAVNFZVPVFVNAUOWDAVLFZAVMFZVEVPAVLVMUPWEVPWFWEVTVHTFZVIQVPAVHRVIVTV
    PWGVIVKUQURSWFVKVJAVHUSUTVASVBVCVD $.

  $( A nonnegative integer is element of the half-open range of nonnegative
     integers with the element increased by one as an upper bound.
     (Contributed by Alexander van der Vekens, 5-Aug-2018.) $)
  fzonn0p1 $p |- ( N e. NN0 -> N e. ( 0 ..^ ( N + 1 ) ) ) $=
    ( cn0 wcel c1 caddc co cn clt wbr cc0 cfzo id nn0p1nn nn0re ltp1d syl3anbrc
    elfzo0 ) ABCZRADEFZGCASHIAJSKFCRLAMRAANOASQP $.

  $( A half-open range of nonnegative integers is a subset of a half-open range
     of nonnegative integers with the upper bound increased by one.
     (Contributed by Alexander van der Vekens, 5-Aug-2018.) $)
  fzossfzop1 $p |- ( N e. NN0 -> ( 0 ..^ N ) C_ ( 0 ..^ ( N + 1 ) ) ) $=
    ( cn0 wcel c1 caddc co cuz cfv cc0 cfzo wss cz cle wbr w3a nn0z peano2z zre
    id syl lep1d 3jca eluz2 sylibr fzoss2 ) ABCZADEFZAGHCZIAJFIUGJFKUFALCZUGLCZ
    AUGMNZOZUHUFUIULAPUIUIUJUKUISAQUIAARUAUBTAUGUCUDAIUGUET $.

  $( If a nonnegative integer is element of a half-open range of nonnegative
     integers, increasing this integer by one results in an element of a half-
     open range of nonnegative integers with the upper bound increased by one.
     (Contributed by Alexander van der Vekens, 5-Aug-2018.) $)
  fzonn0p1p1 $p |- ( I e. ( 0 ..^ N ) -> ( I + 1 ) e. ( 0 ..^ ( N + 1 ) ) ) $=
    ( cc0 cfzo co wcel cn0 cn clt wbr w3a c1 elfzo0 peano2nn0 3ad2ant1 peano2nn
    caddc 3ad2ant2 simp3 cr nn0re nnre 1red ltadd1 syl3an mpbid syl3anbrc sylbi
    wb ) ACBDEFAGFZBHFZABIJZKZALQEZCBLQEZDEFZABMUMUNGFZUOHFZUNUOIJZUPUJUKUQULAN
    OUKUJURULBPRUMULUSUJUKULSUJATFUKBTFULLTFULUSUIAUABUBULUCABLUDUEUFUNUOMUGUH
    $.

  $( Increasing an element of a half-open range of nonnegative integers by 1
     results in an element of the half-open range of nonnegative integers with
     an upper bound increased by 1.  (Contributed by Alexander van der Vekens,
     1-Aug-2018.) $)
  elfzom1p1elfzo $p |- ( ( N e. NN /\ X e. ( 0 ..^ ( N - 1 ) ) )
                           -> ( X + 1 ) e. ( 0 ..^ N ) ) $=
    ( cc0 c1 cmin co cfzo wcel cn caddc cn0 clt wbr w3a elfzo0 peano2nn0 adantr
    wi wa cr 3ad2ant1 simpr 1red nnre adantl ltaddsubd biimprd impancom 3adant2
    nn0re imp syl3anbrc ex sylbi impcom ) BCADEFZGFHZAIHZBDJFZCAGFHZUQBKHZUPIHZ
    BUPLMZNZURUTRBUPOVDURUTVDURSUSKHZURUSALMZUTVDVEURVAVBVEVCBPUAQVDURUBVDURVFV
    AVCURVFRVBVAURVCVFVAURSZVFVCVGBDAVABTHURBUJQVGUCURATHVAAUDUEUFUGUHUIUKUSAOU
    LUMUNUO $.

  ${
    $d k N $.
    $( Half-open integer ranges starting with 0 are subsets of NN0.
       (Contributed by Thierry Arnoux, 8-Oct-2018.)  (Proof shortened by JJ,
       1-Jun-2021.) $)
    fzo0ssnn0 $p |- ( 0 ..^ N ) C_ NN0 $=
      ( vk cc0 cfzo co cn0 cv elfzonn0 ssriv ) BCADEFBGAHI $.

    $( Obsolete proof of ~ fzo0ssnn0 as of 1-Jun-2021.  Half-open integer
       ranges starting with 0 are subsets of NN0.  (Contributed by Thierry
       Arnoux, 8-Oct-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    fzo0ssnn0OLD $p |- ( 0 ..^ N ) C_ NN0 $=
      ( vk cc0 cfzo co cfz cn0 fzossfz cv elfznn0 ssriv sstri ) CADECAFEZGCAHBM
      GBIAJKL $.
  $}

  $( Expressing the singleton of ` 0 ` as a half-open integer range.
     (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
  fzo01 $p |- ( 0 ..^ 1 ) = { 0 } $=
    ( cc0 c1 cfzo co caddc csn 1e0p1 oveq2i cz wcel wceq 0z fzosn ax-mp eqtri )
    ABCDAABEDZCDZAFZBPACGHAIJQRKLAMNO $.

  $( A 1-based half-open integer interval up to, but not including, 2 is a
     singleton.  (Contributed by Alexander van der Vekens, 31-Jan-2018.) $)
  fzo12sn $p |- ( 1 ..^ 2 ) = { 1 } $=
    ( c1 c2 cfzo co caddc csn df-2 oveq2i cz wcel wceq 1z fzosn ax-mp eqtri ) A
    BCDAAAEDZCDZAFZBPACGHAIJQRKLAMNO $.

  $( A 1-based half-open integer interval up to, but not including, 3 is a
     pair.  (Contributed by Thierry Arnoux, 11-Jul-2020.) $)
  fzo13pr $p |- ( 1 ..^ 3 ) = { 1 , 2 } $=
    ( c1 c3 cfzo co caddc cpr c2 cmin cfz cz wcel wceq fzoval ax-mp 3m1e2 1p1e2
    3z eqtr4i oveq2i 1z fzpr 3eqtri preq2i eqtri ) ABCDZAAAEDZFZAGFUEABAHDZIDZA
    UFIDZUGBJKUEUILQABMNUHUFAIUHGUFOPRSAJKUJUGLTAUANUBUFGAPUCUD $.

  $( A half-open integer range from 0 to 2 is an unordered pair.  (Contributed
     by Alexander van der Vekens, 4-Dec-2017.) $)
  fzo0to2pr $p |- ( 0 ..^ 2 ) = { 0 , 1 } $=
    ( cc0 c2 cfzo co c1 cmin cfz caddc cz wcel wceq 2z fzoval ax-mp 2m1e1 0p1e1
    cpr eqtr4i oveq2i 0z fzpr preq2i syl6eq 3eqtri ) ABCDZABEFDZGDZAAEHDZGDZAEQ
    ZBIJUEUGKLABMNUFUHAGUFEUHOPRSAIJZUIUJKTUKUIAUHQUJAUAUHEAPUBUCNUD $.

  $( A half-open integer range from 0 to 3 is an unordered triple.
     (Contributed by Alexander van der Vekens, 9-Nov-2017.) $)
  fzo0to3tp $p |- ( 0 ..^ 3 ) = { 0 , 1 , 2 } $=
    ( cc0 c3 cfzo co c1 cmin cfz c2 caddc ctp cz wcel 3z fzoval ax-mp 3m1e2 2cn
    wceq addid2i a1i eqtr4i oveq2i 0z fztp eqidd 0p1e1 tpeq123d eqtrd 3eqtri )
    ABCDZABEFDZGDZAAHIDZGDZAEHJZBKLUJULRMABNOUKUMAGUKHUMPHQSZUAUBAKLZUNUORUCUQU
    NAAEIDZUMJUOAUDUQAAUREUMHUQAUEURERUQUFTUMHRUQUPTUGUHOUI $.

  $( A half-open integer range from 0 to 4 is a union of two unordered pairs.
     (Contributed by Alexander van der Vekens, 17-Nov-2017.) $)
  fzo0to42pr $p |- ( 0 ..^ 4 ) = ( { 0 , 1 } u. { 2 , 3 } ) $=
    ( cc0 c4 cfzo co c2 cun c1 cpr c3 cfz wcel wceq ax-mp caddc cz ax-1cn eqtri
    cn0 3cn eqcomi cle wbr 2nn0 4nn0 2re 2lt4 ltleii elfz2nn0 mpbir3an fzosplit
    4re fzo0to2pr cmin 4z fzoval 4cn df-4 addcomi subaddrii df-3 oveq2i 2z fzpr
    preq2i 3eqtri uneq12i ) ABCDZAECDZEBCDZFZAGHZEIHZFEABJDKZVGVJLVMERKBRKEBUAU
    BUCUDEBUEUKUFUGEBUHUIABEUJMVHVKVIVLULVIEBGUMDZJDZEEGNDZHZVLBOKVIVOLUNEBUOMV
    OEVPJDZVQVNVPEJVNIVPBGIUPPSBGINDZBIGNDVSUQIGSPURQTUSUTQVAEOKVRVQLVBEVCMQVPI
    EIVPUTTVDVEVFQ $.

  $( A half-open integer range from 1 to 4 is an unordered triple.
     (Contributed by AV, 28-Jul-2021.) $)
  fzo1to4tp $p |- ( 1 ..^ 4 ) = { 1 , 2 , 3 } $=
    ( c1 c4 cfzo co cmin cfz c2 caddc c3 ctp cz wcel wceq 4z fzoval ax-mp 4m1e3
    df-3 3eqtri a1i ax-1cn addcomi oveq2i fztp eqidd 1p1e2 1p2e3 tpeq123d eqtrd
    2cn 1z ) ABCDZABAEDZFDZAAGHDZFDZAGIJZBKLULUNMNABOPUMUOAFUMIGAHDUOQRGAUJUAUB
    SUCAKLZUPUQMUKURUPAAAHDZUOJUQAUDURAAUSGUOIURAUEUSGMURUFTUOIMURUGTUHUIPS $.

  $( A half-open range of nonnegative integers is the union of the singleton
     set containing 0 and a half-open range of positive integers.  (Contributed
     by Alexander van der Vekens, 18-May-2018.) $)
  fzo0sn0fzo1 $p |- ( N e. NN -> ( 0 ..^ N ) = ( { 0 } u. ( 1 ..^ N ) ) ) $=
    ( cn wcel cc0 cfzo co c1 cun csn cfz wceq cn0 cle 1nn0 nnnn0 nnge1 elfz2nn0
    wbr a1i syl3anbrc fzosplit syl fzo01 uneq1d eqtrd ) ABCZDAEFZDGEFZGAEFZHZDI
    ZUIHUFGDAJFCZUGUJKUFGLCZALCGAMRULUMUFNSAOAPGAQTDAGUAUBUFUHUKUIUHUKKUFUCSUDU
    E $.

  $( A member of a half-open range of nonnegative integers is either 0 or a
     member of the corresponding half-open range of positive integers.
     (Contributed by AV, 5-Feb-2021.) $)
  elfzo0l $p |- ( K e. ( 0 ..^ N ) -> ( K = 0 \/ K e. ( 1 ..^ N ) ) ) $=
    ( cn wcel cc0 cfzo co wceq c1 wo cn0 clt wbr elfzo0 simp2bi csn fzo0sn0fzo1
    cun eleq2d elun elsni orim1i sylbi syl6bi mpcom ) BCDZAEBFGZDZAEHZAIBFGZDZJ
    ZUHAKDUFABLMABNOUFUHAEPZUJRZDZULUFUGUNABQSUOAUMDZUKJULAUMUJTUPUIUKAEUAUBUCU
    DUE $.

  $( The endpoint of a half-open integer range.  (Contributed by Mario
     Carneiro, 29-Sep-2015.) $)
  fzoend $p |- ( A e. ( A ..^ B ) -> ( B - 1 ) e. ( A ..^ B ) ) $=
    ( cfzo co wcel c1 cmin cfz cuz cfv wceq elfzoel2 fzoval syl eleqtrd elfzuz3
    id cz eluzfz2 eleqtrrd ) AABCDZEZBFGDZAUCHDZUAUBUCAIJEZUCUDEUBAUDEUEUBAUAUD
    UBQUBBREUAUDKAABLABMNZOAAUCPNAUCSNUFT $.

  $( The endpoint of a zero-based half-open range.  (Contributed by Stefan
     O'Rear, 27-Aug-2015.)  (Revised by Mario Carneiro, 29-Sep-2015.) $)
  fzo0end $p |- ( B e. NN -> ( B - 1 ) e. ( 0 ..^ B ) ) $=
    ( cn wcel cc0 cfzo co c1 cmin lbfzo0 fzoend sylbir ) ABCDDAEFZCAGHFLCAIDAJK
    $.

  $( Subset relationship for half-open integer ranges.  (Contributed by
     Alexander van der Vekens, 16-Mar-2018.) $)
  ssfzo12 $p |- ( ( K e. ZZ /\ L e. ZZ /\ K < L )
                 -> ( ( K ..^ L ) C_ ( M ..^ N ) -> ( M <_ K /\ L <_ N ) ) ) $=
    ( cfzo co wcel cz clt wbr w3a wss cle wa wi fzolb2 biimp3ar ssel2 ex mpcom
    c1 cmin fzoend elfzolt2 wb simp2 elfzoel2 zlem1lt elfzole1 pm3.2 syl adantr
    syl2anr sylbird com13 3syl com24 syl5com pm2.43a com14 ) AABEFZGZAHGZBHGZAB
    IJZKZVACDEFZLZCAMJZBDMJZNZOZVCVDVBVEABPQBUAUBFZVAGZVBVFVLOABUCVHVBVFVNVKVBV
    HVFVNVKOOZVHVBVHVOOVHVBNAVGGZVHVOVAVGARVHVNVFVPVKVHVNVFVPVKOOZVHVNNVMVGGVMD
    IJZVQVAVGVMRVMCDUDVPVFVRVKVPVFVRVKOVPVFNVRVJVKVFVDDHGVJVRUEVPVCVDVEUFACDUGB
    DUHUMVPVJVKOZVFVPVIVSACDUIVIVJUJUKULUNSUOUPSUQURSUSUTTT $.

  $( If a half-open integer range is a subset of a half-open range of
     nonnegative integers, but its lower bound is greater than or equal to the
     upper bound of the containing range, or its upper bound is less than or
     equal to 0, then its upper bound is less than or equal to its lower bound
     (and therefore it is actually empty).  (Contributed by Alexander van der
     Vekens, 24-May-2018.) $)
  ssfzoulel $p |- ( ( N e. NN0 /\ A e. ZZ /\ B e. ZZ )
                         -> ( ( N <_ A \/ B <_ 0 )
                            -> ( ( A ..^ B ) C_ ( 0 ..^ N ) -> B <_ A ) ) ) $=
    ( wcel cz w3a cle wbr cc0 cfzo co wi wa wn cr zre 3adant1 syl3anc letr imp
    cn0 wo wss simpl2 simpl3 wb ltnle syl2an biimpar ssfzo12 adantl 0red adantr
    clt expcomd con3d ex com23 nn0re 3anim123i 3coml syl expdimp impancom ioran
    anim12d ancom bitri syl6ibr syld con2d con4d ) CUADZAEDZBEDZFZCAGHZBIGHZUBZ
    ABJKICJKUCZBAGHZLVPVSMWAVTVPWANZVSVTNVPWBMZVTVSWCVTIAGHZBCGHZMZVSNZWCVNVOAB
    UNHZVTWFLVMVNVOWBUDVMVNVOWBUEVPWHWBVNVOWHWBUFZVMVNAODZBODZWIVOAPZBPZABUGUHQ
    UIABICUJRWCWFVRNZVQNZMZWGWCWDWNWEWOVPWBWDWNLVPWDWBWNVNVOWDWBWNLZLVMVNVOMZWD
    WQWRWDMVRWAWRWDVRWALWRVRWDWAWRWKIODWJVRWDMWALVOWKVNWMUKWRULVNWJVOWLUMBIASRU
    OTUPUQQURTVPWEWBWOVPWEMVQWAVPWEVQWAVPWKCODZWJFZWEVQMWALVOVMVNWTVOWKVMWSVNWJ
    WMCUSWLUTVABCASVBVCUPVDVFWGWOWNMWPVQVRVEWOWNVGVHVIVJVKVDVLUQ $.

  ${
    $d K x $.  $d L x $.  $d M x $.  $d N x $.
    $( Subset relationship for half-open integer ranges.  (Contributed by
       Alexander van der Vekens, 5-Nov-2018.) $)
    ssfzo12bi $p |- ( ( ( K e. ZZ /\ L e. ZZ ) /\ ( M e. ZZ /\ N e. ZZ )
                        /\ K < L )
                -> ( ( K ..^ L ) C_ ( M ..^ N ) <-> ( M <_ K /\ L <_ N ) ) ) $=
      ( vx cz wcel wa clt wbr w3a cfzo cle wi adantr cr zre adantl imp com12 co
      wss df-3an biimpri 3adant2 ssfzo12 syl cv cuz elfzo2 eluz2 simprrl simpll
      cfv letr syl3anc exp31 com23 expdimp impancom com13 3adant3 impcom sylibr
      simpl2r ad3antlr ltletr ex expcomd adantld syl3anbrc 3adant1 sylbi impbid
      3jca ssrdv ) AFGZBFGZHZCFGZDFGZHZABIJZKZABLUAZCDLUAZUBZCAMJZBDMJZHZWDVQVR
      WCKZWGWJNVSWCWKWBWKVSWCHVQVRWCUCUDUEABCDUFUGWDWJWGWDWJHZEWEWFEUHZWEGZWLWM
      WFGZWNWMAUIUNGZVRWMBIJZKWLWONZWMABUJWPWQWRVRWPWQWRWPVQWMFGZAWMMJZKWQWRNZA
      WMUKWSWTXAVQWSWTHZWQWLWOXBWQHZWLHZWMCUIUNGZWAWMDIJZWOXDVTWSCWMMJZKZXEXCWL
      XHXBWLXHNWQWLXBXHWJWDXBXHNZWHWDXINWIWDWHXIVSWBWHXINWCXBWHVSWBHZXHWSWHWTXJ
      XHNZWSWHWTXKWSXJWHWTHZXHWSXJXLXHWSXJHZXLHVTWSXGXMVTXLWSVSVTWAULOWSXJXLUMX
      MXLXGXMCPGZAPGZWMPGZXLXGNXJXNWSWBXNVSVTXNWACQORRXJXOWSVSXOWBVQXOVRAQOORWS
      XPXJWMQZOCAWMUOUPSVOUQURUSUTVAVBTOVCTOSCWMUKVDWLWAXCVTWAVSWCWJVERXCWLXFXB
      WQWLXFNZWSWQXRNWTWLWQWSXFWDWJWQWSXFNZNZWDWIXTWHWDWQWIXSVSWBWQWIHZXSNWCXJW
      SYAXFXJWSYAXFNZXJWSHXPBPGZDPGZYBWSXPXJXQRVRYCVQWBWSBQVFXJYDWSWBYDVSWAYDVT
      DQRROWMBDVGUPVHURVBVIVJSVAOSSWMCDUJVKUQVLVMSUEVMTVPVHVN $.
  $}

  $( The result of subtracting 1 and an integer of a half-open range of
     nonnegative integers from the upper bound of this range is contained in
     this range.  (Contributed by AV, 23-Mar-2018.)  (Revised by AV,
     30-Oct-2018.) $)
  ubmelm1fzo $p |- ( K e. ( 0 ..^ N ) -> ( ( N - K ) - 1 ) e. ( 0 ..^ N ) ) $=
    ( cc0 co wcel cn0 cn clt wbr cmin c1 elfzo0 cz wa adantr adantl syl 3adant3
    wb cr cfzo w3a cle nnz zsubcld ancoms peano2zm simp3 anim12i znnsub nnm1ge0
    nn0z mpbid elnn0z sylanbrc simp2 caddc cc nncn nn0cn 1cnd subsub4d nn0p1gt0
    nn0re peano2re nnre ltsubpos syl2an eqbrtrd syl3anbrc sylbi ) ACBUADZEAFEZB
    GEZABHIZUBZBAJDZKJDZVLEZABLVPVRFEZVNVRBHIZVSVPVRMEZCVRUCIZVTVMVNWBVOVMVNNZV
    QMEZWBVNVMWEVNVMNBAVNBMEZVMBUDZOVMAMEZVNAULZPUEUFVQUGQRVPVQGEZWCVPVOWJVMVNV
    OUHVPWHWFNZVOWJSVMVNWKVOVMWHVNWFWIWGUIRABUJQUMVQUKQVRUNUOVMVNVOUPVMVNWAVOWD
    VRBAKUQDZJDZBHWDBAKVNBUREVMBUSPVMAUREVNAUTOWDVAVBWDCWLHIZWMBHIZVMWNVNAVCOVM
    WLTEZBTEWNWOSVNVMATEWPAVDAVEQBVFWLBVGVHUMVIRVRBLVJVK $.

  $( If a point is in a half-open range, the next point is in the closed range.
     (Contributed by Stefan O'Rear, 23-Aug-2015.) $)
  fzofzp1 $p |- ( C e. ( A ..^ B ) -> ( C + 1 ) e. ( A ... B ) ) $=
    ( cfzo co wcel c1 caddc cfz cz cuz cfv wss elfzoel1 uzid peano2uz fzoss1 1z
    4syl fzoaddel mpan2 sseldd wceq elfzoel2 fzval3 syl eleqtrrd ) CABDEFZCGHEZ
    ABGHEZDEZABIEZUHAGHEZUJDEZUKUIUHAJFAAKLZFUMUOFUNUKMCABNAOAAPUMAUJQSUHGJFUIU
    NFRCABGTUAUBUHBJFULUKUCCABUDABUEUFUG $.

  $( If a point is in a half-open range, the next point is in the closed range.
     (Contributed by Mario Carneiro, 27-Sep-2015.) $)
  fzofzp1b $p |- ( C e. ( ZZ>= ` A ) ->
      ( C e. ( A ..^ B ) <-> ( C + 1 ) e. ( A ... B ) ) ) $=
    ( cuz cfv wcel cfzo co c1 caddc fzofzp1 cmin simpl eluzelz elfzuz3 eluzp1m1
    cfz wa cz syl2an elfzuzb sylanbrc wceq elfzel2 adantl fzoval syl ex impbid2
    eleqtrrd ) CADEFZCABGHZFZCIJHZABQHFZABCKUKUOUMUKUORZCABILHZQHZULUPUKUQCDEFZ
    CURFUKUOMUKCSFBUNDEFUSUOACNUNABOCBPTCAUQUAUBUPBSFZULURUCUOUTUKUNABUDUEABUFU
    GUJUHUI $.

  $( An integer is a member of a 1-based finite set of sequential integers iff
     its predecessor is a member of the corresponding 0-based set.
     (Contributed by Mario Carneiro, 27-Sep-2015.) $)
  elfzom1b $p |- ( ( K e. ZZ /\ N e. ZZ ) ->
      ( K e. ( 1 ..^ N ) <-> ( K - 1 ) e. ( 0 ..^ ( N - 1 ) ) ) ) $=
    ( cz wcel wa c1 cmin co cfz cc0 cfzo wb peano2zm elfzm1b sylan2 wceq fzoval
    adantl eleq2d syl 3bitr4d ) ACDZBCDZEZAFBFGHZIHZDZAFGHZJUEFGHIHZDZAFBKHZDUH
    JUEKHZDUCUBUECDZUGUJLBMZAUENOUDUKUFAUCUKUFPUBFBQRSUDULUIUHUDUMULUIPUCUMUBUN
    RJUEQTSUA $.

  $( Membership of a nonnegative integer incremented by one in a half-open
     range of positive integers.  (Contributed by AV, 20-Mar-2021.) $)
  elfzom1elp1fzo1 $p |- ( ( N e. ZZ /\ I e. ( 0 ..^ ( N - 1 ) ) )
                          -> ( I + 1 ) e. ( 1 ..^ N ) ) $=
    ( cz wcel cc0 c1 cmin co cfzo wa caddc cc wceq elfzoelz zcnd pncan1 eqeltrd
    syl id adantl wb peano2zd anim1i ancoms elfzom1b mpbird ) BCDZAEBFGHZIHZDZJ
    ZAFKHZFBIHDZULFGHZUIDZUJUOUGUJUNAUIUJALDUNAMUJAAEUHNZOAPRUJSQTUKULCDZUGJZUM
    UOUAUJUGURUJUQUGUJAUPUBUCUDULBUERUF $.

  $( Membership of a positive integer decremented by one in a half-open range
     of nonnegative integers.  (Contributed by AV, 20-Mar-2021.) $)
  elfzo1elm1fzo0 $p |- ( I e. ( 1 ..^ N )
                          -> ( I - 1 ) e. ( 0 ..^ ( N - 1 ) ) ) $=
    ( cz wcel wa c1 cfzo cmin cc0 elfzoelz elfzoel2 jca elfzom1b biimpd mpcom
    co ) ACDZBCDZEZAFBGPDZAFHPIBFHPGPDZTQRAFBJAFBKLSTUAABMNO $.

  $( If an element of a half-open integer range is not contained in the lower
     subrange, it must be in the upper subrange.  (Contributed by Alexander van
     der Vekens, 30-Mar-2018.) $)
  elfzonelfzo $p |- ( N e. ZZ -> ( ( K e. ( M ..^ R ) /\ -. K e. ( M ..^ N ) )
                                   -> K e. ( N ..^ R ) ) ) $=
    ( cfzo co wcel wn wa cz cuz cfv clt wbr w3a wi elfzo2 3ad2ant1 cr ex cle wb
    simpr eluzelz ad2antrr eluzelre zre ltnle syl2an 3expa sylibr sylbird con1d
    id com23 imp31 eluz2 syl3anbrc simpll2 simpll3 sylanb com12 ) BCAEFGZBCDEFG
    ZHZIDJGZBDAEFGZVCBCKLGZAJGZBAMNZOZVEVFVGPBCAQVKVEIZVFVGVLVFIZBDKLGZVIVJVGVM
    VFBJGZDBUANZVNVLVFUCVKVOVEVFVHVIVOVJCBUDRUEVKVEVFVPVHVIVEVFVPPPVJVHVFVEVPVH
    VFVEVPPVHVFIZVPVDVQVPHZBDMNZVDVHBSGDSGVSVRUBVFCBUFDUGBDUHUIVQVSVDVQVSIVHVFV
    SOZVDVHVFVSVTVTUNUJBCDQUKTULUMTUORUPDBUQURVHVIVJVEVFUSVHVIVJVEVFUTBDAQURTVA
    VB $.

  $( If an element of a half-open integer range is not in the upper part of the
     range, it is in the lower part of the range.  (Contributed by Alexander
     van der Vekens, 29-Oct-2018.) $)
  fzonfzoufzol $p |- ( ( M e. ZZ /\ M < N /\ I e. ( 0 ..^ N ) )
                       -> ( -. I e. ( ( N - M ) ..^ N )
                            -> I e. ( 0 ..^ ( N - M ) ) ) ) $=
    ( cz wcel clt wbr cc0 cfzo co w3a cmin wn wa wi elfzoel2 zsubcl syl impcom
    ex 3adant2 adantr simp3 anim1i elfzonelfzo sylc con1d ) BDEZBCFGZAHCIJEZKZA
    HCBLJZIJEZAULCIJEZUKUMMZUNUKUONULDEZUJUONUNUKUPUOUHUJUPUIUJUHUPUJCDEZUHUPOA
    HCPUQUHUPCBQTRSUAUBUKUJUOUHUIUJUCUDCAHULUEUFTUG $.

  $( An integer increased by another integer is an element of a half-open
     integer range if and only if the integer is contained in the half-open
     integer range with bounds decreased by the other integer.  (Contributed by
     Alexander van der Vekens, 30-Mar-2018.) $)
  elfzomelpfzo $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ ( K e. ZZ /\ L e. ZZ ) )
      -> ( K e. ( ( M - L ) ..^ ( N - L ) ) <-> ( K + L ) e. ( M ..^ N ) ) ) $=
    ( cz wcel wa cmin co cuz cfv clt wbr w3a cfzo adantr 2thd adantl cr zre cle
    caddc zsubcl ad2ant2rl simpl zaddcl lesubaddd eluz2 3bitr4g ad2ant2l simplr
    3anbi123d ltaddsubd bicomd elfzo2 ) CEFZDEFZGZAEFZBEFZGZGZACBHIZJKFZDBHIZEF
    ZAVELMZNABUBIZCJKFZUQVHDLMZNAVCVEOIFVHCDOIFVBVDVIVFUQVGVJVBVCEFZUSVCAUAMZNU
    PVHEFZCVHUAMZNVDVIVBVKUPUSVMVLVNVBVKUPUPUTVKUQUSCBUCUDURUPVAUPUQUEPQVBUSVMV
    AUSURUSUTUERVAVMURABUFRQVBCBAURCSFZVAUPVOUQCTPPVABSFZURUTVPUSBTRRZVAASFZURU
    SVRUTATPRZUGULVCAUHCVHUHUIVBVFUQUQUTVFUPUSDBUCUJUPUQVAUKQVBVJVGVBABDVSVQURD
    SFZVAUQVTUPDTRPUMUNULAVCVEUOVHCDUOUI $.

  $( A value in a finite set of sequential integers is a border value if it is
     not contained in the half-open integer range contained in the finite set
     of sequential integers.  (Contributed by Alexander van der Vekens,
     31-Oct-2017.)  (Revised by Thierry Arnoux, 22-Dec-2021.) $)
  elfznelfzo $p |- ( ( M e. ( 0 ... K ) /\ -. M e. ( 1 ..^ K ) )
                     -> ( M = 0 \/ M = K ) ) $=
    ( cc0 co wcel c1 wn wbr wi wa wb syl clt sylbi ex imp com12 adantr sylbid
    cr cfz cfzo wceq wo cn0 cle w3a elfz2nn0 cmin nn0z anim12i 3adant3 elfzom1b
    cz notbid cn elfzo0 a1i w3o 3ianor elnnne0 df-ne anbi2i bitr2i nnm1nn0 orcd
    wne con1d 3ad2ant1 ioran nn1m1nn nn0re ad2antlr simpr necom syl6rbbr biimpa
    leltned breq1 1red ltsub1d 1m1e0 breq1i 1zzd zsubcld elnnz syl5bi syl5 expd
    sylanbrc exp31 com14 sylbir com23 com13 adantl lesub1d nngt0 0red peano2rem
    ltletr syl3anc com24 imp41 a1d jaoi pm2.43a 3imp com3l ltsub1 bicomd eqlelt
    3jca syl2an biimpar olcd exp43 3jaoi ) BCAUADEZBFAUBDEZGZBCUCZBAUCZUDZXSBUE
    EZAUEEZBAUFHZUGZYAYDIBAUHYHYABFUIDZCAFUIDZUBDEZGZYDYHXTYKYHBUNEZAUNEZJZXTYK
    KYEYFYOYGYEYMYFYNBUJAUJZUKULBAUMLUOYHYLYIUEEZYJUPEZYIYJMHZUGZGZYDYHYKYTYKYT
    KYHYIYJUQURUOUUAYHYDUUAYQGZYRGZYSGZUSYHYDIZYQYRYSUTUUBUUEUUCUUDYHUUBYDYEYFU
    UBYDIYGYEUUBYDYEUUBJYBYCYEUUBYBYEYBYQYEYBGZYQYEUUFJZBUPEZYQUUHYEBCVGZJZUUGB
    VAZUUIUUFYEBCVBZVCVDBVENOVHPVFOVIQYHUUCYDYHYDYRYDGZYHYRUUMUUFYCGZJYHYRIZYBY
    CVJUUFUUNUUOUUFUUIUUNUUOIUULYHUUIUUNYRYEYFYGUUIUUNYRIZIYEUUIYGYFUUPUUIYEYGY
    FUUPIZIZYEUUIYEUURIZUUJUUHUUSUUKUUHBFUCZYIUPEZUDUUSBVKUUTUUSUVAYGYEUUTUUQYF
    YEUUTYGUUPYFYEUUTYGUUPIZIUUNUUTYGYFYEJZYRUUNYGUUTUVCYRIZUUNBAVGZYGUUTUVDIIB
    AVBUVCYGUUTUVEYRUVCYGUUTUVEYRIUVCYGJZUUTJUVEBAMHZYRUVFUVEUVGKUUTUVFUVGABVGU
    VEUVFBAYEBTEZYFYGBVLZVMUVCATEZYGYFUVJYEAVLZRZRUVCYGVNVRBAVOVPRUVFUUTUVGYRIZ
    UVCUUTUVMIYGUVCUUTUVGYRUUTUVGJFAMHZUVCYRUUTUVGUVNBFAMVSVQUVCUVNFFUIDZYJMHZY
    RUVCFAFUVCVTZUVLUVQWAUVPCYJMHZUVCYRUVOCYJMWBWCUVCUVRYRUVCUVRJYJUNEZUVRYRUVC
    UVSUVRYFUVSYEYFAFYPYFWDWERRUVCUVRVNYJWFZWJOWGSWHWIRPSWKWLWMWNWLOWLWOUVAYEUU
    RUVAYEJZYFYGUUPUWAYFUVBUWAYFJZYGYIYJUFHZUUPUWBBAFYEUVHUVAYFUVIVMYFUVJUWAUVK
    WPUWBVTWQUWBUWCUUPUWBUWCJZYRUUNUWDUVSUVRYRUWDAFYFYNUWAUWCYPVMUWDWDWEUVAYEYF
    UWCUVRUVACYIMHZYEYFUWCUVRIIIYIWRUWEUWCYFYEUVRUWEUWCYFYEUVRIIYEYFUWEUWCJZUVR
    YEYFUWFUVRIZYEYFJZCTEYITEZYJTEZUWGUWHWSYEUWIYFYEUVHUWIUVIBWTLRYFUWJYEYFUVJU
    WJUVKAWTLWPCYIYJXAXBOWOOXCLXDUVTWJXEOSOWNOXFLWMOXGXCXHXIWMPNQVHQYHUUDYDYHUU
    DUVGGZYDYHYSUVGYHUVGYSYHUVHUVJFTEZUGZUVGYSKYEYFUWMYGUWHUVHUVJUWLYEUVHYFUVIR
    YFUVJYEUVKWPUWHVTXMULBAFXJLXKUOYEYFYGUWKYDIYEYFYGUWKYDUWHYGUWKJZJYCYBUWHYCU
    WNYEUVHUVJYCUWNKYFUVIUVKBAXLXNXOXPXQXHSQXRNQSSNP $.

  $( A value in a finite set of sequential integers is a border value if and
     only if it is not contained in the half-open integer range contained in
     the finite set of sequential integers.  (Contributed by Alexander van der
     Vekens, 17-Jan-2018.)  (Revised by Thierry Arnoux, 22-Dec-2021.) $)
  elfznelfzob $p |- ( M e. ( 0 ... K ) -> ( -. M e. ( 1 ..^ K )
                      <-> ( M = 0 \/ M = K ) ) ) $=
    ( cc0 co wcel c1 wn wceq ex wi wa cle wbr clt cz cr zre adantl con2d wne wo
    cfz cfzo elfznelfzo elfzole1 elfzolt2 elfzoel2 elfzoelz breq1 mpbiri ltnled
    0lt1 1red syl5ib wb ltlen syl2anr necom df-ne sylbb syl6bi com23 impcom imp
    jctird syl21anc mpd ioran sylibr a1i impbid ) BCAUBDEZBFAUCDEZGZBCHZBAHZUAZ
    VLVNVQABUDIVLVMVQVMVQGZJVLVMVOGZVPGZKZVRVMFBLMZWABFAUEVMBANMZAOEZBOEZWBWAJB
    FAUFBFAUGBFAUHWCWDKZWEKZWBVSVTWGVOWBVOBFNMZWGWBGVOWHCFNMULBCFNUIUJWGBFWEBPE
    ZWFBQZRWGUMUKUNSWFWEVTWDWCWEVTJWDWEWCVTWDWEWCVTJWDWEKWCBALMZABTZKZVTWEWIAPE
    WCWMUOWDWJAQBAUPUQWLVTWKWLBATVTABURBAUSUTRVAIVBVCVDVEVFVGVOVPVHVIVJSVK $.

  $( A Peano-postulate-like theorem for downward closure of a half-open integer
     range.  (Contributed by Mario Carneiro, 1-Oct-2015.) $)
  peano2fzor $p |- ( ( K e. ( ZZ>= ` M ) /\ ( K + 1 ) e. ( M ..^ N ) ) ->
    K e. ( M ..^ N ) ) $=
    ( cuz cfv wcel c1 caddc co cfzo wa cmin cfz simpr cz elfzoel2 adantl fzoval
    wceq syl eleqtrd peano2fzr syldan eleqtrrd ) ABDEFZAGHIZBCJIZFZKZABCGLIZMIZ
    UGUEUHUFUKFAUKFUIUFUGUKUEUHNUICOFZUGUKSUHULUEUFBCPQBCRTZUAABUJUBUCUMUD $.

  $( Extending a half-open range by a singleton on the end.  (Contributed by
     Stefan O'Rear, 23-Aug-2015.) $)
  fzosplitsn $p |- ( B e. ( ZZ>= ` A ) ->
      ( A ..^ ( B + 1 ) ) = ( ( A ..^ B ) u. { B } ) ) $=
    ( cuz cfv wcel c1 caddc co cfzo cun csn cfz wceq eluzelz uzid peano2uz 3syl
    id cz syl elfzuzb sylanbrc fzosplit fzosn uneq2d eqtrd ) BACDEZABFGHZIHZABI
    HZBUHIHZJZUJBKZJUGBAUHLHEZUIULMUGUGUHBCDZEZUNUGRUGBSEZBUOEUPABNZBOBBPQBAUHU
    AUBAUHBUCTUGUKUMUJUGUQUKUMMURBUDTUEUF $.

  $( Extending a half-open integer range by an unordered pair at the end.
     (Contributed by Alexander van der Vekens, 22-Sep-2018.) $)
  fzosplitpr $p |- ( B e. ( ZZ>= ` A ) ->
      ( A ..^ ( B + 2 ) ) = ( ( A ..^ B ) u. { B , ( B + 1 ) } ) ) $=
    ( cuz cfv wcel c2 caddc co cfzo csn cun cpr wceq df-2 a1i oveq2d fzosplitsn
    c1 cc 3eqtrd eluzelcn 1cnd add32r syl3anc eqtrd peano2uz uneq1d unass df-pr
    syl eqcomi uneq2d ) BACDZEZABFGHZIHABRGHZRGHZIHZAUPIHZUPJZKZABIHZBUPLZKZUNU
    OUQAIUNUOBRRGHZGHZUQUNFVEBGFVEMUNNOPUNBSERSEZVGVFUQMABUAUNUBZVHBRRUCUDUEPUN
    UPUMEURVAMABUFAUPQUJUNVAVBBJZKZUTKZVBVIUTKZKZVDUNUSVJUTABQUGVKVMMUNVBVIUTUH
    OUNVLVCVBVLVCMUNVCVLBUPUIUKOULTT $.

  $( Extending a half-open integer range by an unordered pair at the end.
     (Contributed by Alexander van der Vekens, 22-Sep-2018.)  (Proof shortened
     by AV, 25-Jun-2022.) $)
  fzosplitprm1 $p |- ( ( A e. ZZ /\ B e. ZZ /\ A < B ) ->
      ( A ..^ ( B + 1 ) ) = ( ( A ..^ ( B - 1 ) ) u. { ( B - 1 ) , B } ) ) $=
    ( cz wcel clt wbr w3a c1 caddc co cfzo cmin cpr cun c2 cuz cfv 3ad2ant2 syl
    wceq cle simp1 peano2zm zltlem1 biimp3a eluz2 syl3anbrc fzosplitpr zcn 1cnd
    wb 2cnd subadd23d oveq2i syl6req oveq2d npcan1 eqcomd preq2d uneq2d eqeq12d
    2m1e1 cc mpbird ) ACDZBCDZABEFZGZABHIJZKJZABHLJZKJZVKBMZNZTZAVKOIJZKJZVLVKV
    KHIJZMZNZTZVHVKAPQDZWAVHVEVKCDZAVKUAFZWBVEVFVGUBVFVEWCVGBUCRVEVFVGWDABUDUEA
    VKUFUGAVKUHSVFVEVOWAUKVGVFVJVQVNVTVFVIVPAKVFVPBOHLJZIJVIVFBHOBUIZVFUJVFULUM
    WEHBIVBUNUOUPVFVMVSVLVFBVRVKVFVRBVFBVCDVRBTWFBUQSURUSUTVARVD $.

  $( Membership in a half-open range extended by a singleton.  (Contributed by
     Stefan O'Rear, 23-Aug-2015.) $)
  fzosplitsni $p |- ( B e. ( ZZ>= ` A ) -> ( C e. ( A ..^ ( B + 1 ) ) <->
        ( C e. ( A ..^ B ) \/ C = B ) ) ) $=
    ( cuz cfv wcel c1 caddc co cfzo csn wceq wo fzosplitsn eleq2d elsn2g orbi2d
    cun elun syl5bb bitrd ) BADEZFZCABGHIJIZFCABJIZBKZRZFZCUEFZCBLZMZUCUDUGCABN
    OUHUICUFFZMUCUKCUEUFSUCULUJUICBUBPQTUA $.

  $( A finite interval of integers as union of a half-open integer range and a
     singleton.  (Contributed by Alexander van der Vekens, 15-Jun-2018.) $)
  fzisfzounsn $p |- ( B e. ( ZZ>= ` A )
                      -> ( A ... B ) = ( ( A ..^ B ) u. { B } ) ) $=
    ( cuz cfv wcel cfz co caddc cfzo csn cun wceq eluzelz fzval3 syl fzosplitsn
    c1 cz eqtrd ) BACDEZABFGZABQHGIGZABIGBJKTBREUAUBLABMABNOABPS $.

  $( A member of a finite interval of integers is either a member of the
     corresponding half-open integer range or the upper bound of the interval.
     (Contributed by AV, 5-Feb-2021.) $)
  elfzr $p |- ( K e. ( M ... N ) -> ( K e. ( M ..^ N ) \/ K = N ) ) $=
    ( cuz cfv wcel cfz co cfzo wceq wo elfzuz2 csn cun fzisfzounsn eleq2d elsni
    elun orim2i sylbi syl6bi mpcom ) CBDEFZABCGHZFZABCIHZFZACJZKZABCLUCUEAUFCMZ
    NZFZUIUCUDUKABCOPULUGAUJFZKUIAUFUJRUMUHUGACQSTUAUB $.

  $( A member of a finite interval of integers is either its lower bound or its
     upper bound or an element of its interior.  (Contributed by AV,
     5-Feb-2021.) $)
  elfzlmr $p |- ( K e. ( M ... N )
                   -> ( K = M \/ K e. ( ( M + 1 ) ..^ N ) \/ K = N ) ) $=
    ( cuz cfv wcel cfz co wceq c1 caddc w3o elfzuz2 csn cun fzpred eleq2d elsni
    cfzo wo elfzr orim12i elun 3orass 3imtr4i syl6bi mpcom ) CBDEFZABCGHZFZABIZ
    ABJKHZCSHFZACIZLZABCMUHUJABNZULCGHZOZFZUOUHUIURABCPQAUPFZAUQFZTUKUMUNTZTUSU
    OUTUKVAVBABRAULCUAUBAUPUQUCUKUMUNUDUEUFUG $.

  $( A member of a finite interval of nonnegative integers is either 0 or its
     upper bound or an element of its interior.  (Contributed by AV,
     5-Feb-2021.) $)
  elfz0lmr $p |- ( K e. ( 0 ... N )
                   -> ( K = 0 \/ K e. ( 1 ..^ N ) \/ K = N ) ) $=
    ( cc0 cfz co wcel wceq caddc cfzo w3o elfzlmr 0p1e1 oveq1i eleq2i 3orbi123i
    c1 biid sylib ) ACBDEFACGZACPHEZBIEZFZABGZJSAPBIEZFZUCJACBKSSUBUEUCUCSQUAUD
    ATPBILMNUCQOR $.

  $( Two possibilities for a number one greater than a number in a half-open
     range.  (Contributed by Stefan O'Rear, 23-Aug-2015.) $)
  fzostep1 $p |- ( A e. ( B ..^ C ) -> ( ( A + 1 ) e. ( B ..^ C ) \/
          ( A + 1 ) = C ) ) $=
    ( cfzo co wcel c1 caddc wceq wo cz cuz cfv wss elfzoel1 peano2uz wbr cr zre
    uzid fzoss1 4syl 1z fzoaddel mpan2 sseldd wb cle elfzoel2 clt elfzolt3 ltle
    wi syl2an syl2anc mpd eluz2 syl3anbrc fzosplitsni syl mpbid ) ABCDEZFZAGHEZ
    BCGHEZDEZFZVDVBFVDCIJZVCBGHEZVEDEZVFVDVCBKFZBBLMZFVIVLFVJVFNABCOZBTBBPVIBVE
    UAUBVCGKFVDVJFUCABCGUDUEUFVCCVLFZVGVHUGVCVKCKFZBCUHQZVNVMABCUIZVCBCUJQZVPAB
    CUKVCVKVOVRVPUMZVMVQVKBRFCRFVSVOBSCSBCULUNUOUPBCUQURBCVDUSUTVA $.

  ${
    $d K j k $.  $d M j k $.  $d N j k $.  $d ph k $.
    $( Shift the scanning order inside of a quantification over a half-open
       integer range, analogous to ~ fzshftral .  (Contributed by Alexander van
       der Vekens, 23-Sep-2018.) $)
    fzoshftral $p |- ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ )
        -> ( A. j e. ( M ..^ N ) ph
          <-> A. k e. ( ( M + K ) ..^ ( N + K ) ) [. ( k - K ) / j ]. ph ) ) $=
      ( cz wcel cfzo co wral c1 cmin cfz caddc wceq fzoval raleqdv 3adant1 cc
      w3a cv 3ad2ant2 wb peano2zm fzshftral syl3an2 zaddcl syl wa adantr adantl
      wsbc zcn 1cnd addsubd oveq2d eqtr2d 3bitrd ) EGHZFGHZDGHZUAZABEFIJZKABEFL
      MJZNJZKZABCUBDMJUMZCEDOJZVEDOJZNJZKZVHCVIFDOJZIJZKVCABVDVFVAUTVDVFPVBEFQU
      CRVAUTVEGHVBVGVLUDFUEABCDEVEUFUGVCVHCVKVNVCVNVIVMLMJZNJZVKVCVMGHZVNVPPVAV
      BVQUTFDUHSVIVMQUIVCVOVJVINVAVBVOVJPUTVAVBUJZFDLVAFTHVBFUNUKVBDTHVADUNULVR
      UOUPSUQURRUS $.
  $}

  ${
    $d K x $.  $d M x y $.  $d N x y $.  $d ch x $.  $d ph y $.  $d ps x $.
    $d ta x $.  $d th x $.
    fzind2.1 $e |- ( x = M -> ( ph <-> ps ) ) $.
    fzind2.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    fzind2.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    fzind2.4 $e |- ( x = K -> ( ph <-> ta ) ) $.
    fzind2.5 $e |- ( N e. ( ZZ>= ` M ) -> ps ) $.
    fzind2.6 $e |- ( y e. ( M ..^ N ) -> ( ch -> th ) ) $.
    $( Induction on the integers from ` M ` to ` N ` inclusive.  The first four
       hypotheses give us the substitution instances we need; the last two are
       the basis and the induction step.  Version of ~ fzind using integer
       range definitions.  (Contributed by Mario Carneiro, 6-Feb-2016.) $)
    fzind2 $p |- ( K e. ( M ... N ) -> ta ) $=
      ( wcel wa wbr w3a cfz co cz cle elfz2 df-3an anbi1i 3anass anbi2i 3bitr4i
      anass bitri cuz cfv eluz2 sylbir cv clt wi cfzo elfzo syl6bir 3coml 3expa
      impr sylan2b fzind sylbi ) HIJUAUBQZIUCQZJUCQZRZHUCQZIHUDSZHJUDSZTZRZEVIV
      JVKVMTZVNVORZRZVQHIJUEVLVMRZVSRVLVMVSRZRVTVQVLVMVSUKVRWAVSVJVKVMUFUGVPWBV
      LVMVNVOUHUIUJULABCDEFGHIJKLMNVJVKIJUDSTJIUMUNQBIJUOOUPGUQZUCQZIWCUDSZWCJU
      RSZTVLWDWEWFRZRCDUSZWDWEWFUHVLWDWGWHVJVKWDWGWHUSZWDVJVKWIWDVJVKTWGWCIJUTU
      BQWHWCIJVAPVBVCVDVEVFVGVH $.
  $}

  ${
    $d F v $.  $d K v $.
    $( The function values for the borders of a finite interval of integers,
       which is the domain of the function, are not in the image of the
       interior of the interval iff the intersection of the images of the
       interior and the borders is empty.  (Contributed by Alexander van der
       Vekens, 31-Oct-2017.)  (Revised by AV, 5-Feb-2021.) $)
    fvinim0ffz $p |- ( ( F : ( 0 ... K ) --> V /\ K e. NN0 )
                       -> ( ( ( F " { 0 , K } ) i^i ( F " ( 1 ..^ K ) ) ) = (/)
                            <-> ( ( F ` 0 ) e/ ( F " ( 1 ..^ K ) )
                               /\ ( F ` K ) e/ ( F " ( 1 ..^ K ) ) ) ) ) $=
      ( vv cc0 co cn0 wcel wa cpr cima cin c0 wceq cfv wnel cle wbr adantl wn
      cfz wf c1 cfzo wfn ffn adantr 0nn0 a1i simpr nn0ge0 elfz2nn0 syl3anbrc id
      nn0re leidd fnimapr syl3anc ineq1d eqeq1d cv wral disj fvex notbid df-nel
      eleq1 syl6bbr ralpr bitri syl6bb ) EBUAFZCAUBZBGHZIZAEBJKZAUCBUDFKZLZMNEA
      OZBAOZJZVQLZMNZVSVQPZVTVQPZIZVOVRWBMVOVPWAVQVOAVLUEZEVLHZBVLHZVPWANVMWGVN
      VLCAUFUGVOEGHZVNEBQRZWHWJVOUHUIVMVNUJVNWKVMBUKSEBULUMVNWIVMVNVNVNBBQRWIVN
      UNZWLVNBBUOUPBBULUMSVLEBAUQURUSUTWCDVAZVQHZTZDWAVBWFDWAVQVCWOWDWEDVSVTEAV
      DBAVDWMVSNZWOVSVQHZTWDWPWNWQWMVSVQVGVEVSVQVFVHWMVTNZWOVTVQHZTWEWRWNWSWMVT
      VQVGVEVTVQVFVHVIVJVK $.
  $}

  ${
    $d F z $.  $d K z $.  $d Y z $.  $d X z $.
    $( Lemma for ~ injresinj .  (Contributed by Alexander van der Vekens,
       31-Oct-2017.)  (Proof shortened by AV, 14-Feb-2021.)  (Revised by
       Thierry Arnoux, 23-Dec-2021.) $)
    injresinjlem $p |- ( -. Y e. ( 1 ..^ K ) -> ( ( F ` 0 ) =/= ( F ` K )
       -> ( ( F : ( 0 ... K ) --> V /\ K e. NN0 )
         -> ( ( ( F " { 0 , K } ) i^i ( F " ( 1 ..^ K ) ) ) = (/)
           -> ( ( X e. ( 0 ... K ) /\ Y e. ( 0 ... K ) )
             -> ( ( F ` X ) = ( F ` Y ) -> X = Y ) ) ) ) ) ) $=
      ( vz wcel wn cc0 wa wceq cfv wi fveq2 eqcoms notbid 2a1d syl com12 sylbi
      c1 cfzo co cfz wf cn0 cpr cima cin c0 wne wo elfznelfzo fvinim0ffz df-nel
      wnel eleq1d biimpd cv wrex wfn wss wb ffn cuz 1eluzge0 fzoss1 mp1i syl6ss
      fzossfz fvelimab syl2an wral ralnex eqeq1d rspcva pm2.21 a1d expcom com24
      sylbir sylbid syl6com adantr adantl com13 com14 com15 eqtr3 neeq12d df-ne
      jaoi 2a1 pm2.24 syl6bi ccase ex pm2.61i com23 impcom com25 ) EUABUBUCZGHZ
      DIBUDUCZGZEXDGZJZXDCAUEZBUFGZJZAIBUGUHAXBUHZUIUJKZIALZBALZUKZDALZEALZKZDE
      KZMZXGXCXJXLXOXTMZMMZXFXEXCYBMXFXCXEYBXFXCXEYBMZXFXCJEIKZEBKZULZYCBEUMXEY
      FYBDXBGZXEYFYBMZMXLXEYFXJYGYAXEXLYFXJYGYAMZMMXJXLYFXEYIXJXLXMXKUPZXNXKUPZ
      JZYFXEYIMZMABCUNYFYLXJYMYDYLXJYMMZMYEYLYDYNYJYDYNMZYKYJXMXKGZHZYOXMXKUOYD
      YQXQXKGZHZYNYDYQYSYDYPYRYDXMXQXKXMXQKZIEIEANOZUQPURXJYSYMXJYSFUSZALZXQKZF
      XBUTZHZYMXJYRUUEXHAXDVAXBXDVBYRUUEVCXIXDCAVDXIXBIBUBUCZXDUAIVELGXBUUGVBXI
      VFUAIBVGVHIBVJVIFXDXBXQAVKVLPUUFXJYMUUFUUDHZFXBVMZYNUUDFXBVNUUIYGXEXJYAYG
      UUIXEXJYAMMZYGUUIJXRHZUUJUUHUUKFDXBUUBDKZUUDXRUULUUCXPXQUUBDANVOPVPUUKYAX
      EXJUUKXTXOXRXSVQZVRQRVSVTWASWBSZWCTWDSYLYEYNYKYEYNMZYJYKXNXKGZHZUUOXNXKUO
      YEUUQYSYNYEUUQYSYEUUPYRYEXNXQXKXNXQKZBEBEANOZUQPURUUNWCTWESWLWFWBWGSWHXEY
      GHZYHXEUUTJDIKZDBKZULZYHBDUMUVCYFYBUVAYDUVBYEYBUVAYDJXSYBDEIWIXSYAXJXLXSX
      OXRWMQZRUVBYDJZYAXJXLUVEXOXQXPUKZXTUVEXMXQXNXPYDYTUVBUUAWEUVBXNXPKZYDUVGB
      DBDANOWDWJUVFXQXPKZHZXTXQXPWKXRUVIXSUVIXSMXQXPUVHXSWNOSTWOQUVAYEJZYAXJXLU
      VJXOXPXQUKZXTUVJXMXPXNXQUVAXMXPKZYEUVLIDIDANOWDYEUURUVAUUSWEWJUVKUUKXTXPX
      QWKUUMTWOQUVBYEJXSYBDEBWIUVDRWPWQRVSWRSRWQWSWTSXA $.
  $}

  ${
    $d F v w x y $.  $d K v w x y $.  $d V x y $.
    $( A function whose restriction is injective and the values of the
       remaining arguments are different from all other values is injective
       itself.  (Contributed by Alexander van der Vekens, 31-Oct-2017.) $)
    injresinj $p |- ( K e. NN0 -> ( ( F : ( 0 ... K ) --> V
                   /\ Fun `' ( F |` ( 1 ..^ K ) ) /\ ( F ` 0 ) =/= ( F ` K ) )
                      -> ( ( ( F " { 0 , K } ) i^i ( F " ( 1 ..^ K ) ) ) = (/)
                           -> Fun `' F ) ) ) $=
      ( vx vy vv vw cc0 co cfv wcel wceq wi wa cv wral ex wn imp41 exp41 cfz wf
      c1 cfzo cres ccnv wfun wne w3a cn0 cpr cima cin wf1 fzo0ss1 fzossfz sstri
      c0 wss fssres mpan2 biantrud ancom df-f1 bitr4i syl6bb dff13 fveq2 eqeq1d
      simp-4r equequ1 imbi12d eqeq2d equequ2 rspc2va fvres eqcomd biimpd imim1d
      eqeqan12d imp 2a1d expcom syl pm2.43a wo ianor injresinjlem syl6ib syl5bi
      eqcom ancomsd jaoi a1d sylbi ralrimivv adantl com13 com24 impcom sylanbrc
      pm2.61i biantrurd syl6bbr mpbird syl6bi 3imp com12 ) HBUAIZCAUBZAUCBUDIZU
      EZUFUGZHAJBAJUHZUIBUJKZAHBUKULAXKULUMURLZAUFUGZMZXJXMXNXOXRMZXMXJXNXSMZXJ
      XMXKCXLUNZXJXTMXJXMXMXKCXLUBZNZYAXJYBXMXJXKXIUSYBXKHBUDIXIBUOHBUPUQXICXKA
      UTVAVBYCYBXMNYAXMYBVCXKCXLVDVEVFYAXJXNXOXRYAXJNZXNNXONZXPXQYEXPNZXQXICAUN
      ZYFXJDOZAJZEOZAJZLZYHYJLZMZEXIPDXIPZYGYAXJXNXOXPVJZYDXNXOXPYOXJYAXNXOXPYO
      MZMMXJXOXNYAYQXJXOXNYAYQMMYAXNXJXONZYQYAYBFOZXLJZGOZXLJZLZYSUUALZMZGXKPFX
      KPZNXNYRYQMMZFGXKCXLVGUUFUUGYBUUFXNYRXPYOUUFXNNYRNXPNYNDEXIXIUUFXNYRXPYHX
      IKZYJXIKZNZYNMZYHXKKZYJXKKZNZUUFXNYRXPUUKMZMMZMZUUFUUNUUPUUNUUFUUNUUPMZUU
      NUUFNYHXLJZYJXLJZLZYMMZUURUUEUVBUUSUUBLZYHUUALZMFGYHYJXKXKYSYHLZUUCUVCUUD
      UVDUVEYTUUSUUBYSYHXLVHVIFDGVKVLUUAYJLZUVCUVAUVDYMUVFUUBUUTUUSUUAYJXLVHVMG
      EDVNVLVOUUNUVBUUPUUNUVBNZUUOXNYRUVGYNXPUUJUUNUVBYNUUNYLUVAYMUUNYLUVAUULUU
      MYIUUSYKUUTUULUUSYIYHXKAVPVQUUMUUTYKYJXKAVPVQVTVRVSWAWBWBWCWDQWEUUNRUULRZ
      UUMRZWFZUUQUULUUMWGUVJUUPUUFUVHUUPUVIUVHXNYRXPUUKUVHXNNZYRNXPNZUUIUUHYNUV
      LUUIUUHNZYNYLYKYILZUVLUVMNZYMYIYKWKUVOUVNYJYHLZYMUVKYRXPUVMUVNUVPMZUVHXNY
      RXPUVMUVQMMMABCYJYHWHWASYJYHWKWIWJQWLTABCYHYJWHWMWNWOXBSWPTWQWOWRQWSWTSDE
      XICAVGXAYFXQXJXQNYGYFXJXQYPXCXICAVDXDXEQTXFWEXGXH $.
  $}

  $( The difference between two elements in a half-open range of nonnegative
     integers is greater than the negation of the upper bound and less than the
     upper bound of the range.  (Contributed by AV, 20-Mar-2021.) $)
  subfzo0 $p |- ( ( I e. ( 0 ..^ N ) /\ J e. ( 0 ..^ N ) )
                  -> ( -u N < ( I - J ) /\ ( I - J ) < N ) ) $=
    ( cc0 co wcel cmin clt wbr wa caddc cr cle adantr syl2an 3adant3 anim12i cc
    3ad2ant1 adantl cfzo cneg cn0 cn wi elfzo0 nn0re nnre resubcl ancoms nn0ge0
    w3a wb posdif biimp3a addgegt0 syl2anc nn0cn nncn 3ad2ant2 breqtrrd possumd
    subadd23d mpbid readdcl addge02 syl lelttrdi impancom imp ltsubadd2d mpbird
    3jca jca ex syl5bi 3adant2 sylbi ) ADCUAEZFZBVSFZCUBABGEZHIZWBCHIZJZVTAUCFZ
    CUDFZACHIZULWAWEUEZACUFWFWHWIWGWABUCFZWGBCHIZULZWFWHJZWEBCUFWMWLWEWMWLJZWCW
    DWNDWBCKEZHIWCWNDACBGEZKEZWOHWNALFZWPLFZJDAMIZDWPHIZJDWQHIWMWRWLWSWFWRWHAUG
    ZNZWJWGWSWKWGWJWSWGCLFZBLFZWSWJCUHZBUGZCBUIOUJPQWMWTWLXAWFWTWHAUKNWJWGWKXAW
    JXEXDWKXAUMWGXGXFBCUNOUOQAWPUPUQWNABCWMARFZWLWFXHWHAURNNWLBRFZWMWJWGXIWKBUR
    STWLCRFZWMWGWJXJWKCUSUTTVCVAWNWBCWMWRXEWBLFWLXCWJWGXEWKXGSZABUIOWLXDWMWGWJX
    DWKXFUTZTZVBVDWNWDABCKEZHIZWMWLXOWFWLWHXOWFWLJZACXNXPWRXDXNLFZWFWRWLXBNWLXD
    WFXLTWLXQWFWJWGXQWKWJXEXDXQWGXGXFBCVEOPTVMXPDBMIZCXNMIZWLXRWFWJWGXRWKBUKSTX
    PXDXEJZXRXSUMWLXTWFWJWGXTWKWGWJXTWGXDWJXEXFXGQUJPTCBVFVGVDVHVIVJWNABCWMWRWL
    XCNWLXEWMXKTXMVKVLVNVOVPVQVRVJ $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Elementary integer functions
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The floor and ceiling functions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c |_ $.  $( Floor function. $)
  $c |^ $.  $( Ceiling function. $)

  $( Extend class notation with floor (greatest integer) function. $)
  cfl $a class |_ $.
  $( Extend class notation to include the ceiling function. $)
  cceil $a class |^ $.

  ${
    $d x y $.
    $( Define the floor (greatest integer less than or equal to) function.  See
       ~ flval for its value, ~ fllelt for its basic property, and ~ flcl for
       its closure.  For example, ` ( |_ `` ( 3 / 2 ) ) = 1 ` while
       ` ( |_ `` -u ( 3 / 2 ) ) = -u 2 ` ( ~ ex-fl ).

       The term "floor" was coined by Ken Iverson.  He also invented a
       mathematical notation for floor, consisting of an L-shaped left bracket
       and its reflection as a right bracket.  In APL, the left-bracket alone
       is used, and we borrow this idea.  (Thanks to Paul Chapman for this
       information.)  (Contributed by NM, 14-Nov-2004.) $)
    df-fl $a |- |_ = ( x e. RR |->
                ( iota_ y e. ZZ ( y <_ x /\ x < ( y + 1 ) ) ) ) $.
  $}

  $( The ceiling (least integer greater than or equal to) function.  Defined in
     ISO 80000-2:2009(E) operation 2-9.18 and the "NIST Digital Library of
     Mathematical Functions" , front introduction, "Common Notations and
     Definitions" section at ~ http://dlmf.nist.gov/front/introduction#Sx4 .
     See ~ ceilval for its value, ~ ceilge and ~ ceilm1lt for its basic
     properties, and ~ ceilcl for its closure.  For example,
     ` ( |^ `` ( 3 / 2 ) ) = 2 ` while ` ( |^ `` -u ( 3 / 2 ) ) = -u 1 `
     ( ~ ex-ceil ).

     The symbol ` |^ ` is inspired by the gamma shaped left bracket of the
     usual notation.  (Contributed by David A. Wheeler, 19-May-2015.) $)
  df-ceil $a |- |^ = ( x e. RR |-> -u ( |_ ` -u x ) ) $.

  ${
    $d x y A $.
    $( Value of the floor (greatest integer) function.  The floor of ` A ` is
       the (unique) integer less than or equal to ` A ` whose successor is
       strictly greater than ` A ` .  (Contributed by NM, 14-Nov-2004.)
       (Revised by Mario Carneiro, 2-Nov-2013.) $)
    flval $p |- ( A e. RR ->
              ( |_ ` A ) = ( iota_ x e. ZZ ( x <_ A /\ A < ( x + 1 ) ) ) ) $=
      ( vy cv cle wbr c1 caddc co clt wa cz crio cfl wceq breq2 breq1 riotabidv
      cr anbi12d df-fl riotaex fvmpt ) CBADZCDZEFZUEUDGHIZJFZKZALMUDBEFZBUGJFZK
      ZALMSNUEBOZUIULALUMUFUJUHUKUEBUDEPUEBUGJQTRCAUAULALUBUC $.

    $( The floor (greatest integer) function is an integer (closure law).
       (Contributed by NM, 15-Nov-2004.)  (Revised by Mario Carneiro,
       2-Nov-2013.) $)
    flcl $p |- ( A e. RR -> ( |_ ` A ) e. ZZ ) $=
      ( vx cr wcel cfl cfv cv cle wbr c1 caddc co wa cz crio flval wreu rebtwnz
      clt riotacl syl eqeltrd ) ACDZAEFBGZAHIAUDJKLSIMZBNOZNBAPUCUEBNQUFNDBARUE
      BNTUAUB $.

    $( The floor (greatest integer) function is real.  (Contributed by NM,
       15-Jul-2008.) $)
    reflcl $p |- ( A e. RR -> ( |_ ` A ) e. RR ) $=
      ( cr wcel cfl cfv flcl zred ) ABCADEAFG $.

    $( A basic property of the floor (greatest integer) function.  (Contributed
       by NM, 15-Nov-2004.)  (Revised by Mario Carneiro, 2-Nov-2013.) $)
    fllelt $p |- ( A e. RR ->
                  ( ( |_ ` A ) <_ A /\ A < ( ( |_ ` A ) + 1 ) ) ) $=
      ( vx cr wcel cfl cfv cle wbr c1 caddc co clt wa cv crio wceq flval eqcomd
      cz wreu wb flcl rebtwnz breq1 oveq1 breq2d anbi12d riota2 syl2anc mpbird
      ) ACDZAEFZAGHZAULIJKZLHZMZBNZAGHZAUQIJKZLHZMZBSOZULPZUKULVBBAQRUKULSDVABS
      TUPVCUAAUBBAUCVAUPBSULUQULPZURUMUTUOUQULAGUDVDUSUNALUQULIJUEUFUGUHUIUJ $.
  $}

  ${
    flcld.1 $e |- ( ph -> A e. RR ) $.
    $( The floor (greatest integer) function is an integer (closure law).
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    flcld $p |- ( ph -> ( |_ ` A ) e. ZZ ) $=
      ( cr wcel cfl cfv cz flcl syl ) ABDEBFGHECBIJ $.
  $}

  $( A basic property of the floor (greatest integer) function.  (Contributed
     by NM, 24-Feb-2005.) $)
  flle $p |- ( A e. RR -> ( |_ ` A ) <_ A ) $=
    ( cr wcel cfl cfv cle wbr c1 caddc co clt fllelt simpld ) ABCADEZAFGANHIJKG
    ALM $.

  $( A basic property of the floor (greatest integer) function.  (Contributed
     by NM, 24-Feb-2005.) $)
  flltp1 $p |- ( A e. RR -> A < ( ( |_ ` A ) + 1 ) ) $=
    ( cr wcel cfl cfv cle wbr c1 caddc co clt fllelt simprd ) ABCADEZAFGANHIJKG
    ALM $.

  $( A basic property of the floor (greatest integer) function.  (Contributed
     by Mario Carneiro, 21-May-2016.) $)
  fllep1 $p |- ( A e. RR -> A <_ ( ( |_ ` A ) + 1 ) ) $=
    ( cr wcel cfl cfv c1 caddc co clt wbr cle flltp1 reflcl peano2re ltle mpdan
    wi syl mpd ) ABCZAADEZFGHZIJZAUBKJZALTUBBCZUCUDQTUABCUEAMUANRAUBOPS $.

  $( The fractional part of a real number is less than one.  (Contributed by
     NM, 15-Jul-2008.) $)
  fraclt1 $p |- ( A e. RR -> ( A - ( |_ ` A ) ) < 1 ) $=
    ( cr wcel cfl cfv co c1 clt wbr caddc flltp1 wb reflcl 1re ltsubadd2 mp3an3
    cmin mpdan mpbird ) ABCZAADEZQFGHIZAUAGJFHIZAKTUABCZUBUCLZAMTUDGBCUENAUAGOP
    RS $.

  $( The fractional part of a real number is less than or equal to one.
     (Contributed by Mario Carneiro, 21-May-2016.) $)
  fracle1 $p |- ( A e. RR -> ( A - ( |_ ` A ) ) <_ 1 ) $=
    ( cr wcel cfl cfv cmin co c1 clt wbr cle fraclt1 wi reflcl resubcl 1re ltle
    mpdan sylancl mpd ) ABCZAADEZFGZHIJZUCHKJZALUAUCBCZHBCUDUEMUAUBBCUFANAUBORP
    UCHQST $.

  $( The fractional part of a real number is nonnegative.  (Contributed by NM,
     17-Jul-2008.) $)
  fracge0 $p |- ( A e. RR -> 0 <_ ( A - ( |_ ` A ) ) ) $=
    ( cr wcel cc0 cfl cfv cmin co cle wbr flle wb reflcl subge0 mpdan mpbird )
    ABCZDAAEFZGHIJZRAIJZAKQRBCSTLAMARNOP $.

  $( The floor function value is the greatest integer less than or equal to its
     argument.  (Contributed by NM, 15-Nov-2004.)  (Proof shortened by Fan
     Zheng, 14-Jul-2016.) $)
  flge $p |- ( ( A e. RR /\ B e. ZZ ) -> ( B <_ A <-> B <_ ( |_ ` A ) ) ) $=
    ( cr wcel cz wa cle wbr cfl cfv c1 caddc co flltp1 adantr wi syl3anc mpan2d
    clt zred simpr simpl peano2zd lelttr wb zleltp1 syl2anc sylibrd flle impbid
    flcld letr ) ACDZBEDZFZBAGHZBAIJZGHZUOUPBUQKLMZSHZURUOUPAUSSHZUTUMVAUNANOUO
    BCDZUMUSCDUPVAFUTPUOBUMUNUAZTZUMUNUBZUOUSUOUQUOAVEUKZUCTBAUSUDQRUOUNUQEDURU
    TUEVCVFBUQUFUGUHUOURUQAGHZUPUMVGUNAUIOUOVBUQCDUMURVGFUPPVDUOUQVFTVEBUQAULQR
    UJ $.

  $( The floor function value is less than the next integer.  (Contributed by
     NM, 24-Feb-2005.) $)
  fllt $p |- ( ( A e. RR /\ B e. ZZ ) -> ( A < B <-> ( |_ ` A ) < B ) ) $=
    ( cr wcel cz wa clt wbr cfl cfv cle wn flge zre lenlt ancoms reflcl syl2anr
    wb sylan 3bitr3d con4bid ) ACDZBEDZFZABGHZAIJZBGHZUEBAKHZBUGKHZUFLZUHLZABMU
    DUCUIUKSZUDBCDZUCUMBNZBAOTPUDUNUGCDUJULSUCUOAQBUGORUAUB $.

  ${
    $d x A $.  $d x B $.
    $( Move floor function between strict and non-strict inequality.
       (Contributed by Brendan Leahy, 25-Oct-2017.) $)
    flflp1 $p |- ( ( A e. RR /\ B e. RR ) -> ( ( |_ ` A ) <_ B <->
          A < ( ( |_ ` B ) + 1 ) ) ) $=
      ( vx cr wcel wa cfl cle wbr c1 caddc co clt cz wceq simplr adantr mpd3an3
      wi adantl cfv flltp1 ad3antrrr cv crio flval ad3antlr reflcl peano2re syl
      lttr ancoms mpan2d imp adantlr wb wreu rebtwnz breq1 oveq1 breq2d anbi12d
      riota2 syl2an ad2antrr mpbi2and eqtrd oveq1d breqtrrd ex wn lenlt sylbird
      flcl lelttr pm2.61d ad2antlr simpll flle simpr lelttrd ltled syl2anr letr
      eqbrtrd 3coml mpand impbida ) ADEZBDEZFZAGUAZBHIZABGUAZJKLZMIZWKWMFZBAMIZ
      WPWQWRWPWQWRFZAWLJKLZWOMWIAWTMIZWJWMWRAUBZUCWSWNWLJKWSWNCUDZBHIZBXCJKLZMI
      ZFZCNUEZWLWJWNXHOWIWMWRCBUFUGWSWMBWTMIZXHWLOZWKWMWRPWKWRXIWMWKWRXIWKWRXAX
      IWIXAWJXBQWJWIWRXAFXISZWJWIWTDEZXKWIXLWJWIWLDEZXLAUHZWLUIUJTBAWTUKRULUMUN
      UOWKWMXIFZXJUPZWMWRWIWLNEXGCNUQXPWJAVNCBURXGXOCNWLXCWLOZXDWMXFXIXCWLBHUSX
      QXEWTBMXCWLJKUTVAVBVCVDVEVFVGVHVIVJWKWRVKZWPSWMWKXRABHIZWPABVLZWKXSBWOMIZ
      WPWJYAWIBUBTWIWJWODEZXSYAFWPSWJYBWIWJWNDEZYBBUHZWNUIUJTABWOVORUMVMQVPWKWP
      FZWRWMYEWRWMYEWRFZWLWNBHYFWLXCAHIZAXEMIZFZCNUEZWNWIWLYJOWJWPWRCAUFUCYFWNA
      HIZWPYJWNOZWKWRYKWPWKWRFZWNAWJYCWIWRYDVQZWIWJWRVRZYMWNBAYNWIWJWRPYOWJWNBH
      IZWIWRBVSZVQWKWRVTWAWBUOWKWPWRPWKYKWPFZYLUPZWPWRWJWNNEYICNUQYSWIBVNCAURYI
      YRCNWNXCWNOZYGYKYHWPXCWNAHUSYTXEWOAMXCWNJKUTVAVBVCWCVEVFVGWJYPWIWPWRYQUGW
      EVJWKXRWMSWPWKXRXSWMXTWKWLAHIZXSWMWIUUAWJAVSQWIWJXMUUAXSFWMSZWIXMWJXNQXMW
      IWJUUBWLABWDWFRWGVMQVPWH $.
  $}

  $( An integer is its own floor.  (Contributed by NM, 15-Nov-2004.) $)
  flid $p |- ( A e. ZZ -> ( |_ ` A ) = A ) $=
    ( cz wcel cfl cfv wceq cle wbr cr zre flle syl leidd wb flge mpancom reflcl
    mpbid letri3d mpbir2and ) ABCZADEZAFUBAGHZAUBGHZUAAICZUCAJZAKLUAAAGHZUDUAAU
    FMUEUAUGUDNUFAAOPRUAUBAUAUEUBICUFAQLUFST $.

  $( The floor function is idempotent.  (Contributed by NM, 17-Aug-2008.) $)
  flidm $p |- ( A e. RR -> ( |_ ` ( |_ ` A ) ) = ( |_ ` A ) ) $=
    ( cr wcel cfl cfv cz wceq flcl flid syl ) ABCADEZFCKDEKGAHKIJ $.

  $( A real number equals its floor iff it is an integer.  (Contributed by NM,
     11-Nov-2008.) $)
  flidz $p |- ( A e. RR -> ( ( |_ ` A ) = A <-> A e. ZZ ) ) $=
    ( cr wcel cfl cfv wceq cz flcl eleq1 syl5ibcom flid impbid1 ) ABCZADEZAFZAG
    CZMNGCOPAHNAGIJAKL $.

  $( If A is not an integer, then the floor of A is less than A. (Contributed
     by Glauco Siliprandi, 11-Dec-2019.) $)
  flltnz $p |- ( ( A e. RR /\ -. A e. ZZ ) -> ( |_ ` A ) < A ) $=
    ( cr cz wn wa cfl cfv reflcl adantr simpl cle wbr c1 caddc co fllelt simpld
    wcel clt wceq simpr wb flidz mtbird neqned necomd leneltd ) ABRZACRZDZEZAFG
    ZAUHULBRUJAHIUHUJJUKULAKLZAULMNOSLZUHUMUNEUJAPIQUKULAUKULAUKULATZUIUHUJUAUH
    UOUIUBUJAUCIUDUEUFUG $.

  $( Ordering relationship for the greatest integer function.  (Contributed by
     NM, 31-Dec-2005.)  (Proof shortened by Fan Zheng, 14-Jul-2016.) $)
  flwordi $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) ->
                 ( |_ ` A ) <_ ( |_ ` B ) ) $=
    ( cr wcel cle wbr w3a cfl cfv simp1 flcld zred simp2 flle simp3 letrd cz wb
    syl flge syl2anc mpbid ) ACDZBCDZABEFZGZAHIZBEFZUGBHIEFZUFUGABUFUGUFAUCUDUE
    JZKZLUJUCUDUEMZUFUCUGAEFUJANSUCUDUEOPUFUDUGQDUHUIRULUKBUGTUAUB $.

  $( Ordering relationship for the greatest integer function.  (Contributed by
     Mario Carneiro, 7-Jun-2016.) $)
  flword2 $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) ->
                 ( |_ ` B ) e. ( ZZ>= ` ( |_ ` A ) ) ) $=
    ( cr wcel cle wbr w3a cfl cfv cuz simp1 flcld simp2 flwordi eluz2 syl3anbrc
    cz ) ACDZBCDZABEFZGZAHIZQDBHIZQDUBUCEFUCUBJIDUAARSTKLUABRSTMLABNUBUCOP $.

  ${
    $d x y z A $.  $d x y B $.
    $( An alternate way to define the floor (greatest integer) function.
       (Contributed by NM, 16-Nov-2004.) $)
    flval2 $p |- ( A e. RR -> ( |_ ` A ) =
           ( iota_ x e. ZZ ( x <_ A /\ A. y e. ZZ ( y <_ A -> y <_ x ) ) ) ) $=
      ( cr wcel cv cle wbr wi wral crio cfl cfv wceq flle flge biimpd ralrimiva
      cz wa wreu wb flcl zmax breq1 breq2 imbi2d ralbidv anbi12d riota2 syl2anc
      mpbi2and eqcomd ) CDEZAFZCGHZBFZCGHZUQUOGHZIZBSJZTZASKZCLMZUNVDCGHZURUQVD
      GHZIZBSJZVCVDNZCOUNVGBSUNUQSETURVFCUQPQRUNVDSEVBASUAVEVHTZVIUBCUCABCUDVBV
      JASVDUOVDNZUPVEVAVHUOVDCGUEVKUTVGBSVKUSVFURUOVDUQGUFUGUHUIUJUKULUM $.

    $( An alternate way to define the floor (greatest integer) function, as the
       supremum of all integers less than or equal to its argument.
       (Contributed by NM, 15-Nov-2004.)  (Proof shortened by Mario Carneiro,
       6-Sep-2014.) $)
    flval3 $p |- ( A e. RR ->
                  ( |_ ` A ) = sup ( { x e. ZZ | x <_ A } , RR , < ) ) $=
      ( vz vy cr wcel cfl cfv cv cle wbr cz crab wceq wral breq1 elrab syl31anc
      clt wa csup wss c0 wne wrex ssrab2 zssre sstri a1i flcl flle sylanbrc syl
      reflcl biimpd expimpd syl5bi ralrimiv breq2 ralbidv rspcev syl2anc suprub
      ne0i flge wb suprleub mpbird suprcl syl3anc letri3d mpbir2and ) BEFZBGHZA
      IZBJKZALMZESUAZNVNVRJKZVRVNJKZVMVQEUBZVQUCUDZCIZDIZJKZCVQOZDEUEZVNVQFZVSW
      AVMVQLEVPALUFUGUHUIZVMWHWBVMVNLFVNBJKZWHBUJBUKVPWJAVNLVOVNBJPQULZVQVNVDUM
      ZVMVNEFZWCVNJKZCVQOZWGBUNZVMWNCVQWCVQFWCLFZWCBJKZTVMWNVPWRAWCLVOWCBJPQVMW
      QWRWNVMWQTWRWNBWCVEUOUPUQURZWFWODVNEWDVNNWEWNCVQWDVNWCJUSUTVAVBZWKDCVQVNV
      CRVMVTWOWSVMWAWBWGWMVTWOVFWIWLWTWPDCCVQVNVGRVHVMVNVRWPVMWAWBWGVREFWIWLWTD
      CVQVIVJVKVL $.

    $( A condition equivalent to floor.  (Contributed by NM, 11-Mar-2005.)
       (Revised by Mario Carneiro, 2-Nov-2013.) $)
    flbi $p |- ( ( A e. RR /\ B e. ZZ ) ->
                ( ( |_ ` A ) = B <-> ( B <_ A /\ A < ( B + 1 ) ) ) ) $=
      ( vx cr wcel cz wa cfl cfv wceq cv cle wbr c1 caddc co clt crio wb flval
      eqeq1d adantr wreu rebtwnz breq1 oveq1 breq2d riota2 sylan2 ancoms bitr4d
      anbi12d ) ADEZBFEZGAHIZBJZCKZALMZAUQNOPZQMZGZCFRZBJZBALMZABNOPZQMZGZUMUPV
      CSUNUMUOVBBCATUAUBUNUMVGVCSZUMUNVACFUCVHCAUDVAVGCFBUQBJZURVDUTVFUQBALUEVI
      USVEAQUQBNOUFUGULUHUIUJUK $.
  $}

  $( A condition equivalent to floor.  (Contributed by NM, 15-Aug-2008.) $)
  flbi2 $p |- ( ( N e. ZZ /\ F e. RR ) ->
              ( ( |_ ` ( N + F ) ) = N <-> ( 0 <_ F /\ F < 1 ) ) ) $=
    ( cz wcel cr wa caddc co cfl cfv wceq cle wbr c1 clt cc0 zre readdcl sylan
    wb simpl flbi syl2anc addge01 1re ltadd2 mp3an2 ancoms anbi12d bitr4d ) BCD
    ZAEDZFZBAGHZIJBKZBUNLMZUNBNGHOMZFZPALMZANOMZFZUMUNEDZUKUOURTUKBEDZULVBBQZBA
    RSUKULUAUNBUBUCUKVCULVAURTVDVCULFUSUPUTUQBAUDULVCUTUQTZULNEDVCVEUEANBUFUGUH
    UISUJ $.

  $( The floor of a sum of an integer and a fraction is equal to the integer
     iff the denominator of the fraction is less than the numerator.
     (Contributed by AV, 14-Jul-2021.) $)
  adddivflid $p |- ( ( A e. ZZ /\ B e. NN0 /\ C e. NN )
                 -> ( B < C <-> ( |_ ` ( A + ( B / C ) ) ) = A ) ) $=
    ( cz wcel cn0 cn w3a co cc0 cle wbr clt wa cr wb 3adant1 jca syl anim12i c1
    cdiv caddc cfl cfv wceq simp1 nn0nndivcl flbi2 nn0re nn0ge0 nngt0 biantrurd
    nnre divge0 crp nnrp divlt1lt 3bitr2rd ) ADEZBFEZCGEZHZABCUBIZUCIUDUEAUFZJV
    DKLZVDUAMLZNZVGBCMLZVCUTVDOEZNVEVHPVCUTVJUTVAVBUGVAVBVJUTBCUHQRVDAUISVCVFVG
    VCBOEZJBKLZNZCOEZJCMLZNZNZVFVAVBVQUTVAVMVBVPVAVKVLBUJZBUKRVBVNVOCUNCULRTQBC
    UOSUMVCVKCUPEZNZVGVIPVAVBVTUTVAVKVBVSVRCUQTQBCURSUS $.

  $( The floor of a real number in ` [ 0 , 1 ) ` is 0.  Remark: may shorten the
     proof of ~ modid or a version of it where the antecedent is membership in
     an interval.  (Contributed by BJ, 29-Jun-2019.) $)
  ico01fl0 $p |- ( A e. ( 0 [,) 1 ) -> ( |_ ` A ) = 0 ) $=
    ( cc0 c1 cico co wcel cr cle wbr clt cfl cfv cxr wss 0re 1re rexri mp2an wb
    wceq icossre sseli w3a 0xr elico1 simp2bi simp3bi caddc recn addid2d fveq2d
    wa eqeq1d cz 0z flbi2 mpan bitr3d biimpar syl12anc ) ABCDEZFZAGFZBAHIZACJIZ
    AKLZBTZVAGABGFCMFZVAGNOCPQZBCUARUBVBAMFZVDVEBMFVHVBVJVDVEUCSUDVIBCAUERZUFVB
    VJVDVEVKUGVCVGVDVEULZVCBAUHEZKLZBTZVGVLVCVNVFBVCVMAKVCAAUIUJUKUMBUNFVCVOVLS
    UOABUPUQURUSUT $.

  $( The floor of a number greater than or equal to 0 is a nonnegative integer.
     (Contributed by NM, 26-Apr-2005.) $)
  flge0nn0 $p |- ( ( A e. RR /\ 0 <_ A ) -> ( |_ ` A ) e. NN0 ) $=
    ( cr wcel cc0 cle wbr wa cfl cfv cz cn0 flcl adantr wb 0z flge mpan2 biimpa
    elnn0z sylanbrc ) ABCZDAEFZGAHIZJCZDUCEFZUCKCUAUDUBALMUAUBUEUADJCUBUENOADPQ
    RUCST $.

  $( The floor of a number greater than or equal to 1 is a positive integer.
     (Contributed by NM, 26-Apr-2005.) $)
  flge1nn $p |- ( ( A e. RR /\ 1 <_ A ) -> ( |_ ` A ) e. NN ) $=
    ( cr wcel c1 cle wbr wa cfl cfv cz cn flcl adantr wb 1z mpan2 biimpa elnnz1
    flge sylanbrc ) ABCZDAEFZGAHIZJCZDUCEFZUCKCUAUDUBALMUAUBUEUADJCUBUENOADSPQU
    CRT $.

  $( The floor function of a division of a nonnegative integer by a positive
     integer is a nonnegative integer.  (Contributed by Alexander van der
     Vekens, 14-Apr-2018.) $)
  fldivnn0 $p |- ( ( K e. NN0 /\ L e. NN ) -> ( |_ ` ( K / L ) ) e. NN0 ) $=
    ( cn0 wcel cn wa cdiv co cr cc0 cle wbr cfl cfv nn0nndivcl flge0nn0 syl2anc
    nn0ge0div ) ACDBEDFABGHZIDJSKLSMNCDABOABRSPQ $.

  $( The floor function of a division of a real number by a positive real
     number is a real number.  (Contributed by Alexander van der Vekens,
     14-Apr-2018.) $)
  refldivcl $p |- ( ( K e. RR /\ L e. RR+ ) -> ( |_ ` ( K / L ) ) e. RR ) $=
    ( cr wcel crp wa cdiv co cfl cfv rerpdivcl reflcl syl ) ACDBEDFABGHZCDNIJCD
    ABKNLM $.

  $( The floor of a fraction is 0 iff the denominator is less than the
     numerator.  (Contributed by AV, 8-Jul-2021.) $)
  divfl0 $p |- ( ( A e. NN0 /\ B e. NN )
                 -> ( A < B <-> ( |_ ` ( A / B ) ) = 0 ) ) $=
    ( cn0 wcel cn wa cdiv co cfl cfv cc0 wceq caddc cle wbr c1 clt cc cr wb syl
    nn0nndivcl recnd addid2 eqcomd fveq2d eqeq1d cz sylancr nn0ge0div biantrurd
    0z flbi2 bicomd crp nn0re nnrp divlt1lt syl2an bitrd 3bitrrd ) ACDZBEDZFZAB
    GHZIJZKLKVEMHZIJZKLZKVENOZVEPQOZFZABQOZVDVFVHKVDVEVGIVDVERDZVEVGLVDVEABUBZU
    CVNVGVEVEUDUEUAUFUGVDKUHDVESDVIVLTULVOVEKUMUIVDVLVKVMVDVKVLVDVJVKABUJUKUNVB
    ASDBUODVKVMTVCAUPBUQABURUSUTVA $.

  $( An integer can be moved in and out of the floor of a sum.  (Contributed by
     NM, 27-Apr-2005.)  (Proof shortened by Fan Zheng, 16-Jun-2016.) $)
  fladdz $p |- ( ( A e. RR /\ N e. ZZ ) -> ( |_ ` ( A + N ) ) =
                ( ( |_ ` A ) + N ) ) $=
    ( cr wcel cz wa caddc co cfl cfv wceq cle wbr c1 clt reflcl adantr readdcld
    simpl recnd simpr zred flle leadd1dd 1red flltp1 ltadd1dd add32d breqtrd wb
    1cnd flcld zaddcld flbi syl2anc mpbir2and ) ACDZBEDZFZABGHZIJAIJZBGHZKZVBUT
    LMZUTVBNGHZOMZUSVAABUQVACDURAPQZUQURSZUSBUQURUAZUBZUQVAALMURAUCQUDUSUTVANGH
    ZBGHVEOUSAVKBVHUSVANVGUSUERVJUQAVKOMURAUFQUGUSVANBUSVAVGTUSUKUSBVJTUHUIUSUT
    CDVBEDVCVDVFFUJUSABVHVJRUSVABUSAVHULVIUMUTVBUNUOUP $.

  $( An integer can be moved in and out of the floor of a sum.  (Contributed by
     NM, 2-Jan-2009.) $)
  flzadd $p |- ( ( N e. ZZ /\ A e. RR ) -> ( |_ ` ( N + A ) ) =
                ( N + ( |_ ` A ) ) ) $=
    ( cr wcel cz caddc co cfl cfv wceq wa fladdz cc addcom syl2an fveq2d reflcl
    recn zcn recnd 3eqtr3d ancoms ) ACDZBEDZBAFGZHIZBAHIZFGZJUCUDKZABFGZHIUGBFG
    ZUFUHABLUIUJUEHUCAMDBMDZUJUEJUDARBSZABNOPUCUGMDULUKUHJUDUCUGAQTUMUGBNOUAUB
    $.

  $( Move a nonnegative integer in and out of a floor.  (Contributed by NM,
     2-Jan-2009.)  (Proof shortened by Fan Zheng, 7-Jun-2016.) $)
  flmulnn0 $p |- ( ( N e. NN0 /\ A e. RR )
              -> ( N x. ( |_ ` A ) ) <_ ( |_ ` ( N x. A ) ) ) $=
    ( cn0 wcel cr wa cfl cfv cmul co cle wbr reflcl adantl simpr nn0red nn0ge0d
    simpl flle cz lemul2ad remulcld nn0z flcl zmulcl syl2an flge syl2anc mpbid
    wb ) BCDZAEDZFZBAGHZIJZBAIJZKLZUOUPGHKLZUMUNABULUNEDUKAMNUKULOZUMBUKULRZPZU
    MBUTQULUNAKLUKASNUAUMUPEDUOTDZUQURUJUMBAVAUSUBUKBTDUNTDVBULBUCAUDBUNUEUFUPU
    OUGUHUI $.

  $( A real bounded between an integer and its successor is nonnegative iff the
     integer is nonnegative.  Second half of Lemma 13-4.1 of [Gleason] p. 217.
     (For the first half see ~ rebtwnz .)  (Contributed by NM, 12-Mar-2005.) $)
  btwnzge0 $p |- ( ( ( A e. RR /\ N e. ZZ ) /\ ( N <_ A /\ A < ( N + 1 ) ) )
                -> ( 0 <_ A <-> 0 <_ N ) ) $=
    ( cr wcel cz wa cle wbr c1 caddc co clt cc0 cfl cfv wb flge mpan2 ad2antrr
    0z wceq flbi biimpar breq2d bitrd ) ACDZBEDZFZBAGHABIJKLHFZFZMAGHZMANOZGHZM
    BGHUFUKUMPZUGUIUFMEDUNTAMQRSUJULBMGUHULBUAUIABUBUCUDUE $.

  $( Two times an integer plus one is not negative iff the integer is not
     negative.  (Contributed by AV, 19-Jun-2021.) $)
  2tnp1ge0ge0 $p |- ( N e. ZZ -> ( 0 <_ ( ( 2 x. N ) + 1 ) <-> 0 <_ N ) ) $=
    ( cz wcel cc0 c2 cmul co c1 caddc cle wbr cdiv cr clt wb 2z a1i id syl3anc
    cc zmulcld peano2zd zred 2re 2pos ge0div wne wa wceq zcnd 2cnne0 divdir zcn
    1cnd 2cnd divcan3d oveq1d eqtrd breq2d zre halfre readdcld halfge0 addge01d
    2ne0 mpbii 1red halflt1 ltadd2dd btwnzge0 syl22anc 3bitrd ) ABCZDEAFGZHIGZJ
    KZDVOELGZJKZDAHELGZIGZJKZDAJKZVMVOMCEMCZDENKZVPVROVMVOVMVNVMEAEBCVMPQVMRZUA
    ZUBUCWCVMUDQWDVMUEQVOEUFSVMVQVTDJVMVQVNELGZVSIGZVTVMVNTCHTCETCEDUGZUHZVQWHU
    IVMVNWFUJVMUNWJVMUKQVNHEULSVMWGAVSIVMAEAUMVMUOWIVMVEQUPUQURUSVMVTMCVMAVTJKZ
    VTAHIGNKWAWBOVMAVSAUTZVSMCVMVAQZVBWEVMDVSJKWKVCVMAVSWLWMVDVFVMVSHAWMVMVGWLV
    SHNKVMVHQVIVTAVJVKVL $.

  $( Ordering relation for the floor of half of an integer.  (Contributed by
     NM, 1-Jan-2006.)  (Proof shortened by Mario Carneiro, 7-Jun-2016.) $)
  flhalf $p |- ( N e. ZZ -> N <_ ( 2 x. ( |_ ` ( ( N + 1 ) / 2 ) ) ) ) $=
    ( cz wcel c2 c1 caddc co cdiv cfl cfv cle wbr clt cr syl readdcld a1i recnd
    cmul mpbird zre peano2re rehalfcld flltp1 flcld zred 1red crp 2rp ltdivmuld
    mpbid 2timesd oveq2d adddid 2re remulcld addassd 3eqtr4d breqtrd ltadd1d wb
    2cnd 2z zmulcld zleltp1 mpdan ) ABCZADAEFGZDHGZIJZSGZKLZAVKEFGZMLZVGVNVHVME
    FGZMLVGVHDVJEFGZSGZVOMVGVIVPMLZVHVQMLVGVINCVRVGVHVGANCVHNCAUAZAUBOZUCZVIUDO
    VGVHVPDVTVGVJEVGVJVGVIWAUEZUFZVGUGZPDUHCVGUIQUJUKVGVKDESGZFGVKEEFGZFGVQVOVG
    WEWFVKFVGEVGEWDRZULUMVGDVJEVGVBVGVJWCRWGUNVGVKEEVGVKVGDVJDNCVGUOQWCUPZRWGWG
    UQURUSVGAVMEVSVGVKEWHWDPWDUTTVGVKBCVLVNVAVGDVJDBCVGVCQWBVDAVKVEVFT $.

  $( The floor function of a division of a real number by a positive real
     number is less than or equal to the division.  (Contributed by Alexander
     van der Vekens, 14-Apr-2018.) $)
  fldivle $p |- ( ( K e. RR /\ L e. RR+ )
                  -> ( |_ ` ( K / L ) ) <_ ( K / L ) ) $=
    ( cr wcel crp wa cdiv co cfl cfv cle wbr c1 caddc clt rerpdivcl fllelt 3syl
    simpl ) ACDBEDFABGHZCDTIJZTKLZTUAMNHOLZFUBABPTQUBUCSR $.

  $( The floor function of a division of a nonnegative integer by a positive
     integer is less than or equal to the division.  (Contributed by Alexander
     van der Vekens, 14-Apr-2018.) $)
  fldivnn0le $p |- ( ( K e. NN0 /\ L e. NN )
                     -> ( |_ ` ( K / L ) ) <_ ( K / L ) ) $=
    ( cn0 wcel cr crp cdiv co cfl cfv cle wbr cn nn0re nnrp fldivle syl2an ) AC
    DAEDBFDABGHZIJRKLBMDANBOABPQ $.

  $( The floor function of a division of a nonnegative integer by a positive
     integer is less than the division of a greater dividend by the same
     positive integer.  (Contributed by Alexander van der Vekens,
     14-Apr-2018.) $)
  flltdivnn0lt $p |- ( ( K e. NN0 /\ N e. NN0 /\ L e. NN )
                       -> ( K < N -> ( |_ ` ( K / L ) ) < ( N / L ) ) ) $=
    ( cn0 wcel cn w3a clt wbr cdiv co cfl wa cr nn0nndivcl 3adant2 adantr nn0re
    syl jca cfv cle reflcl 3adant1 3jca fldivnn0le simpr cc0 wb nngt0 3anim123i
    nnre ltdiv1 mpbid lelttr sylc ex ) ADEZCDEZBFEZGZACHIZABJKZLUAZCBJKZHIZVAVB
    MZVDNEZVCNEZVENEZGZVDVCUBIZVCVEHIZMVFVAVKVBVAVHVIVJURUTVHUSURUTMVIVHABOZVCU
    CSPURUTVIUSVNPUSUTVJURCBOUDUEQVGVLVMVAVLVBURUTVLUSABUFPQVGVBVMVAVBUGVGANEZC
    NEZBNEZUHBHIZMZGZVBVMUIVAVTVBURVOUSVPUTVSARCRUTVQVRBULBUJTUKQACBUMSUNTVDVCV
    EUOUPUQ $.

  $( If the dividend of a division is less than the difference between a real
     number and the divisor, the floor function of the division plus 1 is less
     than the division of the real number by the divisor.  (Contributed by
     Alexander van der Vekens, 14-Apr-2018.) $)
  ltdifltdiv $p |- ( ( A e. RR /\ B e. RR+ /\ C e. RR )
                     -> ( A < ( C - B )
                          -> ( ( |_ ` ( A / B ) ) + 1 ) < ( C / B ) ) ) $=
    ( cr wcel co clt wbr cdiv c1 caddc wa syl 3adant3 adantr cmul recn 3ad2ant2
    wb cc crp w3a cmin cfl cfv refldivcl peano2re rerpdivcl ancoms 3adant1 1red
    cle 3simpa fldivle leadd1dd rpre ltaddsub syl3an2 biimpar 1cnd rpcn adddird
    3ad2ant1 cc0 wne rpne0 divcan1d wceq mulid2d oveq12d eqtrd 3ad2ant3 breq12d
    mpbird simp2 ltmul1d lelttrd ex ) ADEZBUAEZCDEZUBZACBUCFGHZABIFZUDUEZJKFZCB
    IFZGHWBWCLZWFWDJKFZWGWBWFDEZWCVSVTWJWAVSVTLZWEDEZWJABUFZWEUGMNOWBWIDEZWCVSV
    TWNWAWKWDDEZWNABUHZWDUGZMNOWBWGDEZWCVTWAWRVSWAVTWRCBUHUIUJZOWHWEWDJWBWLWCVS
    VTWLWAWMNOWBWOWCVSVTWOWAWPNZOWHUKWHWKWEWDULHWBWKWCVSVTWAUMOABUNMUOWHWIWGGHZ
    WIBPFZWGBPFZGHZWHXDABKFZCGHZWBXFWCVTVSBDEWAXFWCSBUPABCUQURUSWBXDXFSWCWBXBXE
    XCCGWBXBWDBPFZJBPFZKFXEWBWDJBVSVTWDTEZWAWKWOXIWPWDQMNWBUTVTVSBTEWABVAZRZVBW
    BXGAXHBKWBABVSVTATEWAAQVCXKVTVSBVDVEWABVFRZVGVTVSXHBVHWAVTBXJVIRVJVKWBCBWAV
    SCTEVTCQVLXKXLVGVMOVNWBXAXDSWCWBWIWGBWBWOWNWTWQMWSVSVTWAVOVPOVNVQVR $.

  $( The floor of an integer equal to 3 or greater than 4, increased by 1, is
     less than or equal to the half of the integer minus 1.  (Contributed by
     AV, 8-Jul-2021.) $)
  fldiv4p1lem1div2 $p |- ( ( N = 3 \/ N e. ( ZZ>= ` 5 ) )
                        -> ( ( |_ ` ( N / 4 ) ) + 1 ) <_ ( ( N - 1 ) / 2 ) ) $=
    ( c3 c4 cdiv co cfl cfv c1 caddc cmin c2 cle wbr c5 wcel a1i cc0 syl6eq syl
    cr wceq cuz 1le1 oveq1 fveq2d clt 3lt4 cn0 cn wb 3nn0 4nn divfl0 mp2an mpbi
    oveq1d 0p1e1 3m1e2 2div2e1 3brtr4d wo uzp1 2re leidi df-5 oveq1i 4cn ax-1cn
    4ne0 divdiri dividi eqtri fveq2i 1re 0le1 4re 4pos divge0 mp4an 1lt4 recgt1
    cz wa 1z rereccli flbi2 mpbir2an 1p1e2 mvrraddi 4d2e2 c6 w3a eluz2 redivcld
    zre id wne flle 3syl adantr flcld zred leadd1 mpbid div4p1lem1div2 sylan wi
    3jca peano2re peano2rem rehalfcld letr mp2and 3adant1 sylbi 5p1e6 eleq2s
    jaoi ) ABUAZACDEZFGZHIEZAHJEZKDEZLMZANUBGOZXSHHYBYDLHHLMXSUCPXSYBQHIEHXSYAQ
    HIXSYABCDEZFGZQXSXTYGFABCDUDUEBCUFMZYHQUAZUGBUHOCUIOYIYJUJUKULBCUMUNUORUPUQ
    RXSYDKKDEHXSYCKKDXSYCBHJEKABHJUDURRUPUSRUTYFANUAZANHIEZUBGZOZVAYENAVBYKYEYN
    YKKKYBYDLKKLMYKKVCVDPYKYBHHIEKYKYAHHIYKYANCDEZFGZHYKXTYOFANCDUDUEYPHHCDEZIE
    ZFGZHYOYRFYOCHIEZCDEZYRNYTCDVEVFUUACCDEZYQIEYRCHCVGVHVGVIVJUUBHYQICVGVIVKVF
    VLVLVMYSHUAZQYQLMZYQHUFMZHTOZQHLMCTOZQCUFMZUUDVNVOVPVQHCVRVSHCUFMZUUEVTUUGU
    UHUUIUUEUJVPVQCWAUNUOHWBOYQTOUUCUUDUUEWCUJWDCVPVIWEYQHWFUNWGVLRUPWHRYKYDCKD
    EKYKYCCKDYKYCNHJECANHJUDNCHVGVHVEWIRUPWJRUTYEAWKUBGZYMAUUJOWKWBOZAWBOZWKALM
    ZWLYEWKAWMUULUUMYEUUKUULUUMWCZYBXTHIEZLMZUUOYDLMZYEUUNYAXTLMZUUPUULUURUUMUU
    LATOZXTTOZUURAWOZUUSACUUSWPUUGUUSVPPCQWQUUSVIPWNZXTWRWSWTUUNYATOZUUTUUFWLZU
    URUUPUJUULUVDUUMUULUUSUVDUVAUUSUVCUUTUUFUUSYAUUSXTUVBXAXBZUVBUUFUUSVNPXHSWT
    YAXTHXCSXDUULUUSUUMUUQUVAAXEXFUUNYBTOZUUOTOZYDTOZWLZUUPUUQWCYEXGUULUVIUUMUU
    LUUSUVIUVAUUSUVFUVGUVHUUSUVCUVFUVEYAXISUUSUUTUVGUVBXTXISUUSYCAXJXKXHSWTYBUU
    OYDXLSXMXNXOYLWKUBXPVMXQXRSXR $.

  $( The floor of an integer greater than 1, divided by 4 is less than or equal
     to the half of the integer minus 1.  (Contributed by AV, 5-Jul-2021.) $)
  fldiv4lem1div2uz2 $p |- ( N e. ( ZZ>= ` 2 )
                         -> ( |_ ` ( N / 4 ) ) <_ ( ( N - 1 ) / 2 ) ) $=
    ( c2 cfv wcel c4 cdiv co cle wbr c1 cmin cr a1i cc0 wne syl 3syl syl3anc wa
    wceq cuz cfl cz eluzelz zre id 4re 4ne0 redivcld flle eluzelre rehalfcl crp
    1red 2rp eluzle divge1 cc eluzelcn subhalfhalf breqtrrd lesubd 2t2e4 eqcomi
    cmul oveq2d 2cnne0 divdiv1 eqtr4d breq1d clt w3a wb peano2rem 2re 2pos 3jca
    pm3.2i lediv1 bitr4d mpbird wi flcld zred rehalfcld letr mp2and ) ABUACDZAE
    FGZUBCZWIHIZWIAJKGZBFGZHIZWJWMHIZWHAUCDZWILDZWKBAUDZWPALDZWQAUEZWSAEWSUFELD
    WSUGMENOWSUHMUIZPWIUJQWHWNABFGZWLHIZWHJAXBWHUNBAUKZWHWPWSXBLDZWRWTAULZQWHJX
    BAXBKGZHWHBUMDZWSBAHIJXBHIXHWHUOMXDBAUPBAUQRWHAURDZXGXBTBAUSZAUTPVAVBWHWNXB
    BFGZWMHIZXCWHWIXKWMHWHWIABBVEGZFGZXKWHEXMAFEXMTWHXMEVCVDMVFWHXIBURDBNOSZXOX
    KXNTXJXOWHVGMZXPABBVHRVIVJWHXEWLLDZBLDZNBVKIZSZVLZXCXLVMWHWPWSYAWRWTWSXEXQX
    TXFAVNZXTWSXRXSVOVPVRMVQQXBWLBVSPVTWAWHWJLDZWQWMLDZVLZWKWNSWOWBWHWPWSYEWRWT
    WSYCWQYDWSWJWSWIXAWCWDXAWSWLYBWEVQQWJWIWMWFPWG $.

  $( The floor of a positive integer divided by 4 is less than or equal to the
     half of the integer minus 1.  (Contributed by AV, 9-Jul-2021.) $)
  fldiv4lem1div2 $p |- ( N e. NN
                         -> ( |_ ` ( N / 4 ) ) <_ ( ( N - 1 ) / 2 ) ) $=
    ( cn wcel c1 wceq c2 cuz cfv c4 cdiv co cfl cle wbr cc0 cr wne oveq1 syl6eq
    cmin wo elnn1uz2 clt 1lt4 cn0 wb 1nn0 4nn divfl0 mp2an mpbi 1re 4re redivcl
    4ne0 w3a flcld zred mp3an eqlei mp1i fveq2d 1m1e0 oveq1d cc wa 2cnne0 ax-mp
    div0 3brtr4d fldiv4lem1div2uz2 jaoi sylbi ) ABCADEZAFGHCZUAAIJKZLHZADTKZFJK
    ZMNZAUBVNVTVOVNDIJKZLHZOVQVSMWBOEZWBOMNVNDIUCNZWCUDDUECIBCWDWCUFUGUHDIUIUJU
    KWBODPCZIPCZIOQZWBPCULUMUOWEWFWGUPZWBWHWADIUNUQURUSUTVAVNVPWALADIJRVBVNVSOF
    JKZOVNVROFJVNVRDDTKOADDTRVCSVDFVECFOQVFWIOEVGFVIVHSVJAVKVLVM $.

  ${
    $d x A $.
    $( The value of the ceiling function.  (Contributed by David A. Wheeler,
       19-May-2015.) $)
    ceilval $p |- ( A e. RR -> ( |^ ` A ) = -u ( |_ ` -u A ) ) $=
      ( vx cv cneg cfl cfv cceil wceq negeq fveq2d negeqd df-ceil negex fvmpt
      cr ) BABCZDZEFZDADZEFZDOGPAHZRTUAQSEPAIJKBLTMN $.
  $}

  ${
    $d x y z $.
    $( Alternative definition of the ceiling function using restricted iota.
       (Contributed by AV, 1-Dec-2018.) $)
    dfceil2 $p |- |^ = ( x e. RR |->
                         ( iota_ y e. ZZ ( x <_ y /\ y < ( x + 1 ) ) ) ) $=
      ( vz cr cv cneg cmpt cle wbr c1 caddc co clt wa cz crio wcel wb syl wceq
      cceil cfl cfv df-ceil zre lenegcon2 peano2re anim2i ancoms ltnegcon1 recn
      1cnd negdid adantr breq1d cmin renegcl neg1rr a1i simpr ltaddsubd subnegd
      adantl breq2d bitrd 3bitrd anbi12d sylan2 riotabidva negeqd zbtwnre breq2
      wreu breq1 zriotaneg flval 3eqtr4rd mpteq2ia eqtri ) UAADAEZFZUBUCZFZGADV
      TBEZHIZWDVTJKLZMIZNZBOPZGAUDADWCWIVTDQZVTCEZFZHIZWLWFMIZNZCOPZFZWKWAHIZWA
      WKJKLZMIZNZCOPZFWIWCWJWPXBWJWOXACOWKOQWJWKDQZWOXARWKUEWJXCNZWMWRWNWTVTWKU
      FXDWNWFFZWKMIZWAJFZKLZWKMIZWTXDXCWFDQZNZWNXFRXCWJXKWJXJXCVTUGUHUIWKWFUJSX
      DXEXHWKMWJXEXHTXCWJVTJVTUKWJULUMUNUOXDXIWAWKXGUPLZMIWTXDWAXGWKWJWADQZXCVT
      UQZUNXGDQXDURUSWJXCUTVAXDXLWSWAMXCXLWSTWJXCWKJWKUKXCULVBVCVDVEVFVGVHVIVJW
      JWHBOVMWIWQTBVTVKWHWOBCWDWLTWEWMWGWNWDWLVTHVLWDWLWFMVNVGVOSWJWBXBWJXMWBXB
      TXNCWAVPSVJVQVRVS $.
  $}

  ${
    $d x y A $.
    $( The value of the ceiling function using restricted iota.  (Contributed
       by AV, 1-Dec-2018.) $)
    ceilval2 $p |- ( A e. RR -> ( |^ ` A )
                           = ( iota_ y e. ZZ ( A <_ y /\ y < ( A + 1 ) ) ) ) $=
      ( vx cv cle wbr c1 caddc co clt wa cz crio cceil wceq breq1 oveq1 anbi12d
      cr breq2d riotabidv dfceil2 riotaex fvmpt ) CBCDZADZEFZUFUEGHIZJFZKZALMBU
      FEFZUFBGHIZJFZKZALMSNUEBOZUJUNALUOUGUKUIUMUEBUFEPUOUHULUFJUEBGHQTRUACAUBU
      NALUCUD $.
  $}

  $( The ceiling function returns an integer (closure law).  (Contributed by
     Jeff Hankins, 10-Jun-2007.) $)
  ceicl $p |- ( A e. RR -> -u ( |_ ` -u A ) e. ZZ ) $=
    ( cr wcel cneg cfl cfv renegcl flcld znegcld ) ABCZADZEFJKAGHI $.

  $( Closure of the ceiling function.  (Contributed by David A. Wheeler,
     19-May-2015.) $)
  ceilcl $p |- ( A e. RR -> ( |^ ` A ) e. ZZ ) $=
    ( cr wcel cceil cfv cneg cfl cz ceilval ceicl eqeltrd ) ABCADEAFGEFHAIAJK
    $.

  $( The ceiling of a real number is greater than or equal to that number.
     (Contributed by Jeff Hankins, 10-Jun-2007.) $)
  ceige $p |- ( A e. RR -> A <_ -u ( |_ ` -u A ) ) $=
    ( wcel cneg cfl cfv cle wbr renegcl reflcl syl flle adantr lenegcon2 mpbird
    cr wa mpdan ) AOBZACZDEZOBZATCFGZRSOBZUAAHZSIJRUAPUBTSFGZRUEUARUCUEUDSKJLAT
    MNQ $.

  $( The ceiling of a real number is greater than or equal to that number.
     (Contributed by AV, 30-Nov-2018.) $)
  ceilge $p |- ( A e. RR -> A <_ ( |^ ` A ) ) $=
    ( cr wcel cneg cfl cfv cceil cle ceige ceilval breqtrrd ) ABCAADEFDAGFHAIAJ
    K $.

  $( One less than the ceiling of a real number is strictly less than that
     number.  (Contributed by Jeff Hankins, 10-Jun-2007.) $)
  ceim1l $p |- ( A e. RR -> ( -u ( |_ ` -u A ) - 1 ) < A ) $=
    ( cr wcel cneg cfl cfv c1 cmin co caddc cc wceq renegcl reflcl recnd ax-1cn
    clt syl sylancl wbr negdi negcld negsub eqtr2d peano2re wa flltp1 ltnegcon1
    adantr mpbid mpdan eqbrtrd ) ABCZADZEFZDZGHIZUOGJIZDZAQUMUSUPGDJIZUQUMUOKCG
    KCZUSUTLUMUOUMUNBCZUOBCZAMZUNNRZOZPUOGUASUMUPKCVAUTUQLUMUOVFUBPUPGUCSUDUMUR
    BCZUSAQTZUMVCVGVEUOUERUMVGUFUNURQTZVHUMVIVGUMVBVIVDUNUGRUIAURUHUJUKUL $.

  $( One less than the ceiling of a real number is strictly less than that
     number.  (Contributed by AV, 30-Nov-2018.) $)
  ceilm1lt $p |- ( A e. RR -> ( ( |^ ` A ) - 1 ) < A ) $=
    ( cr wcel cceil cfv c1 cmin co cneg cfl clt ceilval oveq1d ceim1l eqbrtrd )
    ABCZADEZFGHAIJEIZFGHAKPQRFGALMANO $.

  $( The ceiling of a real number is the smallest integer greater than or equal
     to it.  (Contributed by Jeff Hankins, 10-Jun-2007.) $)
  ceile $p |- ( ( A e. RR /\ B e. ZZ /\ A <_ B ) -> -u ( |_ ` -u A ) <_ B ) $=
    ( cr wcel cz cle wbr cneg cfl cfv wa c1 cmin co clt ceim1l adantr ceicl zre
    wi peano2rem 3syl simpl adantl ltletr syl3anc mpand wb zlem1lt sylan 3impia
    sylibrd ) ACDZBEDZABFGZAHIJHZBFGZUMUNKZUOUPLMNZBOGZUQURUSAOGZUOUTUMVAUNAPQU
    RUSCDZUMBCDZVAUOKUTTUMVBUNUMUPEDZUPCDVBARZUPSUPUAUBQUMUNUCUNVCUMBSUDUSABUEU
    FUGUMVDUNUQUTUHVEUPBUIUJULUK $.

  $( The ceiling of a real number is the smallest integer greater than or equal
     to it.  (Contributed by AV, 30-Nov-2018.) $)
  ceille $p |- ( ( A e. RR /\ B e. ZZ /\ A <_ B ) -> ( |^ ` A ) <_ B ) $=
    ( cr wcel cz cle wbr w3a cceil cfv cneg wceq ceilval 3ad2ant1 ceile eqbrtrd
    cfl ) ACDZBEDZABFGZHAIJZAKQJKZBFRSUAUBLTAMNABOP $.

  $( An integer is its own ceiling.  (Contributed by AV, 30-Nov-2018.) $)
  ceilid $p |- ( A e. ZZ -> ( |^ ` A ) = A ) $=
    ( cz wcel cceil cfv cneg cfl cr wceq zre ceilval syl znegcl flid negeqd zcn
    negnegd 3eqtrd ) ABCZADEZAFZGEZFZUAFASAHCTUCIAJAKLSUBUASUABCUBUAIAMUANLOSAA
    PQR $.

  $( A real number equals its ceiling iff it is an integer.  (Contributed by
     AV, 30-Nov-2018.) $)
  ceilidz $p |- ( A e. RR -> ( A e. ZZ <-> ( |^ ` A ) = A ) ) $=
    ( cr wcel cz cceil cfv wceq ceilid ceilcl eleq1 syl5ibcom impbid2 ) ABCZADC
    ZAEFZAGZAHMODCPNAIOADJKL $.

  $( The floor of a real number is less than or equal to its ceiling.
     (Contributed by AV, 30-Nov-2018.) $)
  flleceil $p |- ( A e. RR -> ( |_ ` A ) <_ ( |^ ` A ) ) $=
    ( cr wcel cfl cfv cceil reflcl id ceilcl zred flle ceilge letrd ) ABCZADEAA
    FEZAGNHNOAIJAKALM $.

  $( A real number is an integer iff its floor equals its ceiling.
     (Contributed by AV, 30-Nov-2018.) $)
  fleqceilz $p |- ( A e. RR -> ( A e. ZZ <-> ( |_ ` A ) = ( |^ ` A ) ) ) $=
    ( cr wcel cz cfl cfv cceil wceq wi wa wb adantr adantl sylbid ex wn cle wbr
    wne clt ceilid eqtr4d eqeq1 ceilidz eqcom syl6bb biimprd df-ne necom reflcl
    flid flle id ltlend breq1 ceilge ceilcl zred lenltd pm2.21 syl6bi mpd com23
    sylbird expd com3r sylbi sylbir mpdi pm2.61i impbid2 ) ABCZADCZAEFZAGFZHZVM
    VNAVOAUKAUAUBVNAHZVLVPVMIZIVQVLVRVQVLJVPAVOHZVMVQVPVSKVLVNAVOUCLVLVSVMIVQVL
    VMVSVLVMVOAHVSAUDVOAUEUFUGMNOVQPZVLVNAQRZVRAULVTVNASZVLWAVRIIZVNAUHWBAVNSZW
    CVNAUIVLWAWDVRVLWAWDVRVLWAWDJVNATRZVRVLVNAAUJVLUMZUNVLVPWEVMVLVPWEVMIVLVPJW
    EVOATRZVMVPWEWGKVLVNVOATUOMVLWGVMIZVPVLAVOQRZWHAUPVLWIWGPWHVLAVOWFVLVOAUQUR
    USWGVMUTVAVBLNOVCVDVEVFVGVHVIVJVK $.

  ${
    quorem.1 $e |- Q = ( |_ ` ( A / B ) ) $.
    quorem.2 $e |- R = ( A - ( B x. Q ) ) $.
    $( Quotient and remainder of an integer divided by a positive integer.
       TODO - is this really needed for anything?  Should we use ` mod ` to
       simplify it?  Remark (AV):  This is a special case of ~ divalg .
       (Contributed by NM, 14-Aug-2008.) $)
    quoremz $p |- ( ( A e. ZZ /\ B e. NN ) -> ( ( Q e. ZZ /\ R e. NN0 )
          /\ ( R < B /\ A = ( ( B x. Q ) + R ) ) ) ) $=
      ( cz wcel wa cn0 clt wbr co caddc cdiv cr adantl cmin cle c1 cn cmul wceq
      cfl cfv zre adantr nnre cc0 wne nnne0 redivcld flcld syl5eqel cc divcan3d
      zcnd nncn flle syl syl5eqbr eqbrtrd wb nnz zmulcld nngt0 lediv1 syl112anc
      zred mpbird simpl znn0sub syl2anc oveq2i fraclt1 oveq1i zcn jca divsubdir
      mpbid syl3anc oveq2d syl5eq dividd 3brtr4d nn0red ltdiv1 pncan3d syl5req
      eqtrd jca31 ) AGHZBUAHZIZCGHDJHDBKLZABCUBMZDNMZUCZIWNCABOMZUDUEZGEWNWSWNA
      BWLAPHZWMAUFUGZWMBPHZWLBUHQZWMBUIUJZWLBUKZQZULZUMUNZWNDAWPRMZJFWNWPASLZXJ
      JHZWNXKWPBOMZWSSLZWNXMCWSSWNCBWNCXIUQWMBUOHZWLBURZQXGUPZWNCWTWSSEWNWSPHZW
      TWSSLXHWSUSUTVAVBWNWPPHXAXCUIBKLZXKXNVCWNWPWNBCWMBGHWLBVDQXIVEZVIXBXDWMXS
      WLBVFQZWPABVGVHVJWNWPGHWLXKXLVCXTWLWMVKWPAVLVMVTUNZWNWOWRWNWODBOMZBBOMZKL
      ZWNWSCRMZTYCYDKWNYFWSWTRMZTKCWTWSREVNWNXRYGTKLXHWSVOUTVAWNYCXJBOMZYFDXJBO
      FVPWNYHWSXMRMZYFWNAUOHZWPUOHXOXEIZYHYIUCWLYJWMAVQUGZWNWPXTUQZWMYKWLWMXOXE
      XPXFVRQAWPBVSWAWNXMCWSRXQWBWJWCWMYDTUCWLWMBXPXFWDQWEWNDPHXCXCXSWOYEVCWNDY
      BWFXDXDYADBBWGVHVJWNWQWPXJNMADXJWPNFVNWNWPAYMYLWHWIVRWK $.

    $( Quotient and remainder of a nonnegative integer divided by a positive
       integer.  (Contributed by NM, 14-Aug-2008.) $)
    quoremnn0 $p |- ( ( A e. NN0 /\ B e. NN ) -> ( ( Q e. NN0 /\ R e. NN0 )
          /\ ( R < B /\ A = ( ( B x. Q ) + R ) ) ) ) $=
      ( cn0 wcel cn wa cz clt wbr cmul co caddc wceq cdiv anim1i anasss cfl cfv
      fldivnn0 syl5eqel nn0z quoremz sylan simpl syl2anc ) AGHZBIHZJZCGHZCKHZDG
      HZJZDBLMABCNODPOQJZJZUMUOJZUQJZULCABROUAUBGEABUCUDUJAKHUKURAUEABCDEFUFUGU
      MUPUQUTUMUPJUSUQUMUNUOUSUMUNJUMUOUMUNUHSTSTUI $.

    $( Alternate proof of ~ quoremnn0 not using ~ quoremz .  TODO - Keep either
       ~ quoremnn0ALT (if we don't keep ~ quoremz ) or ~ quoremnn0 .
       (Contributed by NM, 14-Aug-2008.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    quoremnn0ALT $p |- ( ( A e. NN0 /\ B e. NN ) -> ( ( Q e. NN0 /\ R e. NN0 )
          /\ ( R < B /\ A = ( ( B x. Q ) + R ) ) ) ) $=
      ( cn0 wcel wa clt wbr co caddc wceq cdiv cmin cle adantl cr c1 cn cfl cfv
      cmul fldivnn0 syl5eqel nnnn0 nn0mulcld simpl nn0cnd cc nncn cc0 wne nnne0
      divcan3d nn0nndivcl flle syl syl5eqbr eqbrtrd wb nn0red nn0re adantr nnre
      nngt0 lediv1 syl112anc mpbird nn0sub2 syl3anc oveq2i fraclt1 oveq1i nn0cn
      divsubdir oveq2d eqtrd syl5eq dividd 3brtr4d ltdiv1 pncan3d syl5req jca31
      jca ) AGHZBUAHZIZCGHDGHDBJKZABCUDLZDMLZNZIWJCABOLZUBUCZGEABUEUFZWJDAWLPLZ
      GFWJWLGHWHWLAQKZWRGHWJBCWIBGHWHBUGRWQUHZWHWIUIWJWSWLBOLZWOQKZWJXACWOQWJCB
      WJCWQUJWIBUKHZWHBULZRWIBUMUNZWHBUOZRUPZWJCWPWOQEWJWOSHZWPWOQKABUQZWOURUSU
      TVAWJWLSHASHZBSHZUMBJKZWSXBVBWJWLWTVCWHXJWIAVDVEWIXKWHBVFRZWIXLWHBVGRZWLA
      BVHVIVJWLAVKVLUFZWJWKWNWJWKDBOLZBBOLZJKZWJWOCPLZTXPXQJWJXSWOWPPLZTJCWPWOP
      EVMWJXHXTTJKXIWOVNUSUTWJXPWRBOLZXSDWRBOFVOWJYAWOXAPLZXSWJAUKHZWLUKHXCXEIZ
      YAYBNWHYCWIAVPVEZWJWLWTUJZWIYDWHWIXCXEXDXFWGRAWLBVQVLWJXACWOPXGVRVSVTWIXQ
      TNWHWIBXDXFWARWBWJDSHXKXKXLWKXRVBWJDXOVCXMXMXNDBBWCVIVJWJWMWLWRMLADWRWLMF
      VMWJWLAYFYEWDWEWGWF $.
  $}

  ${
    intfrac2.1 $e |- Z = ( |_ ` A ) $.
    intfrac2.2 $e |- F = ( A - Z ) $.
    $( Decompose a real into integer and fractional parts.  TODO - should we
       replace this with ~ intfrac ?  (Contributed by NM, 16-Aug-2008.) $)
    intfrac2 $p |- ( A e. RR -> ( 0 <_ F /\ F < 1 /\ A = ( Z + F ) ) ) $=
      ( cr wcel cc0 cle wbr c1 clt caddc co wceq cfl cfv cmin fracge0 oveq2i cz
      eqtri syl6breqr fraclt1 syl5eqbr flcl syl5eqel zcnd recn pncan3d syl5req
      3jca ) AFGZHBIJBKLJACBMNZOUMHAAPQZRNZBIASBACRNZUPECUOARDTUBZUCUMBUPKLURAU
      DUEUMUNCUQMNABUQCMETUMCAUMCUMCUOUADAUFUGUHAUIUJUKUL $.
  $}

  ${
    intfracq.1 $e |- Z = ( |_ ` ( M / N ) ) $.
    intfracq.2 $e |- F = ( ( M / N ) - Z ) $.
    $( Decompose a rational number, expressed as a ratio, into integer and
       fractional parts.  The fractional part has a tighter bound than that of
       ~ intfrac2 .  (Contributed by NM, 16-Aug-2008.) $)
    intfracq $p |- ( ( M e. ZZ /\ N e. NN )
         -> ( 0 <_ F /\ F <_ ( ( N - 1 ) / N ) /\ ( M / N ) = ( Z + F ) ) ) $=
      ( cz wcel cc0 cle wbr c1 cmin co cdiv clt cr adantl syl cmul cn caddc w3a
      wa wceq zre adantr nnre wne nnne0 redivcld intfrac2 simp1d cfl cfv oveq2i
      fraclt1 eqtri a1i dividd 3brtr4d reflcl syl5eqel resubcld nngt0 ltmuldiv2
      nncn wb jca syl3anc mpbird cc recnd flcld zcnd subdid syl5eq zcn divcan2d
      simpl eqeltrd zmulcld zsubcld zltlem1 syl2anc mpbid peano2rem simp3d 3jca
      nnz lemuldiv2 ) BGHZCUAHZUDZIAJKZACLMNZCONJKZBCONZDAUBNUEZWNWOALPKZWSWNWR
      QHZWOWTWSUCWNBCWLBQHWMBUFUGWMCQHZWLCUHZRZWMCIUIWLCUJZRZUKZWRADEFULSZUMWNC
      ATNZWPJKZWQWNXICPKZXJWNXKACCONZPKZWNWRWRUNUOZMNZLAXLPWNXAXOLPKXGWRUQSAXOU
      EWNAWRDMNZXOFDXNWRMEUPURUSWMXLLUEWLWMCCVGZXEUTRVAWNAQHZXBXBICPKZUDZXKXMVH
      WNAXPQFWNWRDXGWNDXNQEWNXAXNQHXGWRVBSVCVDVCZXDWMXTWLWMXBXSXCCVEVIRZACCVFVJ
      VKWNXIGHCGHZXKXJVHWNXICWRTNZCDTNZMNZGWNXICXPTNYFAXPCTFUPWNCWRDWMCVLHWLXQR
      ZWNWRXGVMWNDWNDXNGEWNWRXGVNVCZVOVPVQWNYDYEWNYDBGWNBCWLBVLHWMBVRUGYGXFVSWL
      WMVTWAWNCDWMYCWLCWJRZYHWBWCWAYIXICWDWEWFWNXRWPQHZXTXJWQVHYAWMYJWLWMXBYJXC
      CWGSRYBAWPCWKVJWFWNWOWTWSXHWHWI $.
  $}

  $( Cancellation of the embedded floor of a real divided by an integer.
     (Contributed by NM, 16-Aug-2008.) $)
  fldiv $p |- ( ( A e. RR /\ N e. NN )
                  -> ( |_ ` ( ( |_ ` A ) / N ) ) = ( |_ ` ( A / N ) ) ) $=
    ( cr wcel wa cdiv co cfl caddc wceq cc0 cle wbr c1 clt adantr cc jca adantl
    recnd cn cfv cmin eqid intfrac2 simp3d oveq1d wne reflcl resubcl mpdan nncn
    nnne0 divdir syl3anc eqtrd cz flcl intfracq sylan nnre redivcld syl addassd
    resubcld 3eqtrd fveq2d simp1d fracge0 nngt0 divge0 syl2an addge0d peano2rem
    nnrecre jca31 simp2d fraclt1 wb 1re ltdiv1 mp3an2 mpbid leltadd sylc ax-1cn
    npcan sylancl syl12anc dividd 3eqtr3d breqtrd flcld flbi2 syl2anc mpbir2and
    readdcld eqtr2d ) ACDZBUADZEZABFGZHUBAHUBZBFGZHUBZXDXEUCGZAXCUCGZBFGZIGZIGZ
    HUBZXEXAXBXJHXAXBXDXHIGZXEXFIGZXHIGXJXAXBXCXGIGZBFGZXLXAAXNBFWSAXNJZWTWSKXG
    LMZXGNOMZXPAXGXCXCUDXGUDUEUFPUGXAXCQDZXGQDZBQDZBKUHZEZXOXLJWSXSWTWSXCAUIZTP
    WSXTWTWSXGWSXCCDZXGCDZYDAXCUJUKZTPWTYCWSWTYAYBBULZBUMZRSXCXGBUNUOUPXAXDXMXH
    IWSXCUQDZWTXDXMJZAURZYJWTEZKXFLMZXFBNUCGZBFGZLMZYKXFXCBXEXEUDXFUDUSZUFUTUGX
    AXEXFXHXAXEXAXDCDXECDXAXCBWSYEWTYDPWTBCDZWSBVAZSZWTYBWSYISZVBZXDUIVCZTXAXFX
    AXDXEUUCUUDVEZTXAXHXAXGBWSYFWTYGPUUAUUBVBZTVDVFVGXAXKXEJZKXILMZXINOMZXAXFXH
    UUEUUFWSYJWTYNYLYMYNYQYKYRVHUTWSYFXQEYSKBOMZEZKXHLMWTWSYFXQYGAVIRWTYSUUJYTB
    VJRZXGBVKVLVMXAXIYPNBFGZIGZNOXAXFCDZXHCDZEYPCDZUUMCDZEZEYQXHUUMOMZEXIUUNOMX
    AUUOUUPUUSUUEUUFWTUUSWSWTUUQUURWTYOBWTYSYOCDYTBVNVCZYTYIVBBVORSVPXAYQUUTWSY
    JWTYQYLYMYNYQYKYRVQUTXAXRUUTWSXRWTAVRPWSYFUUKXRUUTVSZWTYGUULYFNCDUUKUVBVTXG
    NBWAWBVLWCRXFXHYPUUMWDWEWTUUNNJWSWTYONIGZBFGZBBFGUUNNWTUVCBBFWTYANQDZUVCBJY
    HWFBNWGWHUGWTYOQDZYAYBUVDUUNJZWTYOUVATYHYIUVFUVEYCUVGWFYONBUNWBWIWTBYHYIWJW
    KSWLXAXEUQDXICDUUGUUHUUIEVSXAXDUUCWMXAXFXHUUEUUFWQXIXEWNWOWPWR $.

  $( Cancellation of an embedded floor of a ratio.  Generalization of Equation
     2.4 in [CormenLeisersonRivest] p. 33 (where ` A ` must be an integer).
     (Contributed by NM, 9-Nov-2008.) $)
  fldiv2 $p |- ( ( A e. RR /\ M e. NN /\ N e. NN )
      -> ( |_ ` ( ( |_ ` ( A / M ) ) / N ) ) = ( |_ ` ( A / ( M x. N ) ) ) ) $=
    ( cr wcel cn w3a cdiv co cfl cfv cmul wceq cc cc0 wne wa nncn nnne0 jca
    nndivre fldiv stoic3 recn divdiv1 syl3an fveq2d eqtrd ) ADEZBFEZCFEZGZABHIZ
    JKCHIJKZUMCHIZJKZABCLIHIZJKUIUJUMDEUKUNUPMABUAUMCUBUCULUOUQJUIANEUJBNEZBOPZ
    QUKCNEZCOPZQUOUQMAUDUJURUSBRBSTUKUTVACRCSTABCUEUFUGUH $.

  $( Finite set of sequential integers starting at 1 and ending at a real
     number.  (Contributed by Mario Carneiro, 3-May-2016.) $)
  fznnfl $p |- ( N e. RR
              -> ( K e. ( 1 ... ( |_ ` N ) ) <-> ( K e. NN /\ K <_ N ) ) ) $=
    ( cr wcel c1 cfl cfv cfz co cn cle wbr wa cz wb flcl fznn syl nnz flge
    sylan2 pm5.32da bitr4d ) BCDZAEBFGZHIDZAJDZAUEKLZMZUGABKLZMUDUENDUFUIOBPAUE
    QRUDUGUJUHUGUDANDUJUHOASBATUAUBUC $.

  ${
    $d n x M $.  $d n x Z $.
    uzsup.1 $e |- Z = ( ZZ>= ` M ) $.
    $( An upper set of integers is unbounded above.  (Contributed by Mario
       Carneiro, 7-May-2016.) $)
    uzsup $p |- ( M e. ZZ -> sup ( Z , RR* , < ) = +oo ) $=
      ( vx vn cz wcel cv cle wbr wrex wral cxr clt csup cfv syl2an adantl sstri
      cr cpnf wceq wa cfl c1 caddc cif cuz simpl flcl peano2zd ifcl syl2anr zre
      co id reflcl peano2re syl max1 eluz2 syl3anbrc syl6eleqr zred fllep1 max2
      simpr letrd breq2 rspcev syl2anc ralrimiva wss uzssz eqsstri zssre ressxr
      wb supxrunb1 ax-mp sylib ) AFGZDHZEHZIJZEBKZDTLZBMNOUAUBZWBWFDTWBWCTGZUCZ
      AWCUDPZUEUFUOZIJZWLAUGZBGWCWNIJZWFWJWNAUHPZBWJWBWNFGZAWNIJZWNWPGWBWIUIWIW
      LFGWBWQWBWIWKWCUJUKWBUPWMWLAFULUMZWBATGZWLTGZWRWIAUNZWIWKTGXAWCUQWKURUSZA
      WLUTQAWNVAVBCVCWJWCWLWNWBWIVGWIXAWBXCRWJWNWSVDWIWCWLIJWBWCVERWBWTXAWLWNIJ
      WIXBXCAWLVFQVHWEWOEWNBWDWNWCIVIVJVKVLBMVMWGWHVRBTMBFTBWPFCAVNVOVPSVQSDEBV
      SVTWA $.
  $}

  ${
    $d w x y z A $.
    $( An upper set of reals is unbounded above.  (Contributed by Mario
       Carneiro, 7-May-2016.) $)
    ioopnfsup $p |- ( ( A e. RR* /\ A =/= +oo ) ->
      sup ( ( A (,) +oo ) , RR* , < ) = +oo ) $=
      ( vx vy vz vw cxr wcel cpnf wne wa cioo co c0 clt csup wceq simpl wbr idd
      xrltle pnfxr a1i nltpnft necon2abid biimpar wb ioon0 syldan mpbird df-ioo
      cv ixxub syl3anc ) AFGZAHIZJZUNHFGZAHKLZMIZURFNOHPUNUOQUQUPUAUBZUPUSAHNRZ
      UNVAUOUNVAAHAUCUDUEUNUOUQUSVAUFUTAHUGUHUIBCDEAHNNKBCDUJEUKZFGZUQJVBHNRSVB
      HTUNVCJAVBNRSAVBTULUM $.

    $( An upper set of reals is unbounded above.  (Contributed by Mario
       Carneiro, 7-May-2016.) $)
    icopnfsup $p |- ( ( A e. RR* /\ A =/= +oo ) ->
      sup ( ( A [,) +oo ) , RR* , < ) = +oo ) $=
      ( vx vy vz vw cxr wcel cpnf wne wa cico co c0 clt csup wbr syl3anc xrltle
      cle idd wceq simpl pnfxr a1i nltpnft necon2abid biimpar lbico1 syl df-ico
      ne0i cv ixxub ) AFGZAHIZJZUNHFGZAHKLZMIZURFNOHUAUNUOUBZUQUPUCUDZUPAURGZUS
      UPUNUQAHNPZVBUTVAUNVCUOUNVCAHAUEUFUGAHUHQURAUKUIBCDEAHSNKBCDUJEULZFGZUQJV
      DHNPTVDHRAVDRUNVEJAVDSPTUMQ $.
  $}

  $( The positive reals are unbounded above.  (Contributed by Mario Carneiro,
     7-May-2016.) $)
  rpsup $p |- sup ( RR+ , RR* , < ) = +oo $=
    ( cc0 cpnf cioo co cxr clt csup crp ioorp supeq1i wcel wne wceq 0xr renepnf
    cr 0re ax-mp ioopnfsup mp2an eqtr3i ) ABCDZEFGZHEFGBEUBHFIJAEKABLZUCBMNAPKU
    DQAORASTUA $.

  $( The real numbers are unbounded above.  (Contributed by Mario Carneiro,
     7-May-2016.) $)
  resup $p |- sup ( RR , RR* , < ) = +oo $=
    ( cmnf cpnf cioo co cxr clt csup cr ioomax supeq1i wcel wceq mnfxr mnfnepnf
    wne ioopnfsup mp2an eqtr3i ) ABCDZEFGZHEFGBESHFIJAEKABOTBLMNAPQR $.

  $( The extended real numbers are unbounded above.  (Contributed by Mario
     Carneiro, 7-May-2016.) $)
  xrsup $p |- sup ( RR* , RR* , < ) = +oo $=
    ( cxr wss cpnf wcel clt csup wceq ssid pnfxr supxrpnf mp2an ) AABCADAAEFCGA
    HIAJK $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The modulo (remainder) operation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c mod $.  $( Modulo operation. $)
  $c == $.  $( Equivalence/congruence symbol
               - currently used in comments only.  The modulus should be
               presented as follows: ` n == A ` (mod ` N ` ) $)

  $( Extend class notation with the modulo operation. $)
  cmo $a class mod $.

  ${
    $d x y $.
    $( Define the modulo (remainder) operation.  See ~ modval for its value.
       For example, ` ( 5 mod 3 ) = 2 ` and ` ( -u 7 mod 2 ) = 1 `
       ( ~ ex-mod ).  (Contributed by NM, 10-Nov-2008.) $)
    df-mod $a |- mod = ( x e. RR , y e. RR+ |->
          ( x - ( y x. ( |_ ` ( x / y ) ) ) ) ) $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The value of the modulo operation.  The modulo congruence notation of
       number theory, ` J == K ` (modulo ` N ` ), can be expressed in our
       notation as ` ( J mod N ) = ( K mod N ) ` .  Definition 1 in Knuth, _The
       Art of Computer Programming_, Vol.  I (1972), p. 38.  Knuth uses "mod"
       for the operation and "modulo" for the congruence.  Unlike Knuth, we
       restrict the second argument to positive reals to simplify certain
       theorems.  (This also gives us future flexibility to extend it to any
       one of several different conventions for a zero or negative second
       argument, should there be an advantage in doing so.)  (Contributed by
       NM, 10-Nov-2008.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    modval $p |- ( ( A e. RR /\ B e. RR+ )
           -> ( A mod B ) = ( A - ( B x. ( |_ ` ( A / B ) ) ) ) ) $=
      ( vx vy cr crp cv cdiv co cfl cfv cmul cmin cmo wceq fveq2d oveq2d oveq12
      oveq1 mpdan oveq2 df-mod ovex ovmpt2 ) CDABEFCGZDGZUEUFHIZJKZLIZMIZABABHI
      ZJKZLIZMINAUFAUFHIZJKZLIZMIZUEAOZUIUPOUJUQOURUHUOUFLURUGUNJUEAUFHSPQUEAUI
      UPMRTUFBOZUPUMAMUSUOULOUPUMOUSUNUKJUFBAHUAPUFBUOULLRTQCDUBAUMMUCUD $.
  $}

  $( The value of the modulo operation (multiplication in reversed order).
     (Contributed by Alexander van der Vekens, 14-Apr-2018.) $)
  modvalr $p |- ( ( A e. RR /\ B e. RR+ )
                  -> ( A mod B ) = ( A - ( ( |_ ` ( A / B ) ) x. B ) ) ) $=
    ( cr wcel crp wa cmo co cdiv cfl cfv cmul cmin modval rpcn adantl rerpdivcl
    cc reflcl recnd syl mulcomd oveq2d eqtrd ) ACDZBEDZFZABGHABABIHZJKZLHZMHAUI
    BLHZMHABNUGUJUKAMUGBUIUFBRDUEBOPUGUHCDZUIRDABQULUIUHSTUAUBUCUD $.

  $( Closure law for the modulo operation.  (Contributed by NM,
     10-Nov-2008.) $)
  modcl $p |- ( ( A e. RR /\ B e. RR+ ) -> ( A mod B ) e. RR ) $=
    ( cr wcel crp wa cmo co cdiv cfl cfv cmul cmin modval rpre adantl refldivcl
    remulcld resubcl syldan eqeltrd ) ACDZBEDZFZABGHABABIHJKZLHZMHZCABNUBUCUFCD
    UGCDUDBUEUCBCDUBBOPABQRAUFSTUA $.

  $( Partition of a division into its integer part and the remainder.
     (Contributed by Alexander van der Vekens, 14-Apr-2018.) $)
  flpmodeq $p |- ( ( A e. RR /\ B e. RR+ )
                   -> ( ( ( |_ ` ( A / B ) ) x. B ) + ( A mod B ) ) = A ) $=
    ( cr wcel crp wa cdiv co cfl cfv cmul cmin cmo wceq caddc modvalr eqcomd cc
    recn adantr rerpdivcl flcl zcnd syl adantl mulcld modcl recnd subaddd mpbid
    rpcn ) ACDZBEDZFZAABGHZIJZBKHZLHZABMHZNUQUSOHANUNUSURABPQUNAUQUSULARDUMASTU
    NUPBUNUOCDZUPRDABUAUTUPUOUBUCUDUMBRDULBUKUEUFUNUSABUGUHUIUJ $.

  ${
    modcld.1 $e |- ( ph -> A e. RR ) $.
    modcld.2 $e |- ( ph -> B e. RR+ ) $.
    $( Closure law for the modulo operation.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    modcld $p |- ( ph -> ( A mod B ) e. RR ) $=
      ( cr wcel crp cmo co modcl syl2anc ) ABFGCHGBCIJFGDEBCKL $.
  $}

  $( ` A mod B ` is zero iff ` A ` is evenly divisible by ` B ` .  (Contributed
     by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Fan Zheng,
     7-Jun-2016.) $)
  mod0 $p |- ( ( A e. RR /\ B e. RR+ ) ->
                              ( ( A mod B ) = 0 <-> ( A / B ) e. ZZ ) ) $=
    ( cr wcel crp wa cmo co cc0 wceq cdiv cfl cfv cz cmul cc adantl recnd bitrd
    wb cmin modval eqeq1d recn adantr refldivcl remulcld subeq0ad eqcom rpcnne0
    rpre wne divmul2 syl3anc syl5rbbr rerpdivcl flidz syl ) ACDZBEDZFZABGHZIJZA
    BKHZLMZVDJZVDNDZVAVCABVEOHZJZVFVAVCAVHUAHZIJVIVAVBVJIABUBUCVAAVHUSAPDZUTAUD
    UEZVAVHVABVEUTBCDUSBUKQABUFZUGRUHSVFVDVEJZVAVIVDVEUIVAVKVEPDBPDBIULFZVNVITV
    LVAVEVMRUTVOUSBUJQAVEBUMUNUOSVAVDCDVFVGTABUPVDUQURS $.

  $( The product of an integer and a positive real number is 0 modulo the
     positive real number.  (Contributed by Alexander van der Vekens,
     17-May-2018.)  (Revised by AV, 5-Jul-2020.) $)
  mulmod0 $p |- ( ( A e. ZZ /\ M e. RR+ ) -> ( ( A x. M ) mod M ) = 0 ) $=
    ( cz wcel crp wa cmul co cmo cc0 wceq cdiv zcn adantr rpcn adantl wne rpne0
    cc cr divcan4d simpl eqeltrd zre rpre remulcl syl2an mod0 sylancom mpbird
    wb ) ACDZBEDZFZABGHZBIHJKZUOBLHZCDZUNUQACUNABULASDUMAMNUMBSDULBOPUMBJQULBRP
    UAULUMUBUCULUMUOTDZUPURUKULATDBTDUSUMAUDBUEABUFUGUOBUHUIUJ $.

  $( ` A ` is divisible by ` B ` iff its negative is.  (Contributed by Jeff
     Madsen, 2-Sep-2009.)  (Proof shortened by Fan Zheng, 7-Jun-2016.) $)
  negmod0 $p |- ( ( A e. RR /\ B e. RR+ ) ->
                    ( ( A mod B ) = 0 <-> ( -u A mod B ) = 0 ) ) $=
    ( cr wcel crp wa cdiv co cz cneg cmo cc0 wceq rerpdivcl recn znegclb adantl
    cc wb mod0 3syl adantr wne rpne0 divnegd eleq1d bitrd renegcl sylan 3bitr4d
    rpcn ) ACDZBEDZFZABGHZIDZAJZBGHZIDZABKHLMUQBKHLMZUNUPUOJZIDZUSUNUOCDUORDUPV
    BSABNUOOUOPUAUNVAURIUNABULARDUMAOUBUMBRDULBUKQUMBLUCULBUDQUEUFUGABTULUQCDUM
    UTUSSAUHUQBTUIUJ $.

  $( The modulo operation is nonnegative.  (Contributed by NM, 10-Nov-2008.) $)
  modge0 $p |- ( ( A e. RR /\ B e. RR+ ) -> 0 <_ ( A mod B ) ) $=
    ( cr wcel crp wa cc0 cdiv co cfl cfv cmul cmo cle wbr fldivle adantl mpbird
    cmin wb clt refldivcl rpregt0 lemuldiv2 syl3anc rpre remulcld subge0 syldan
    simpl modval breqtrrd ) ACDZBEDZFZGABABHIZJKZLIZSIZABMINUOGUSNOZURANOZUOVAU
    QUPNOZABPUOUQCDUMBCDZGBUAOFZVAVBTABUBZUMUNUJUNVDUMBUCQUQABUDUERUMUNURCDUTVA
    TUOBUQUNVCUMBUFQVEUGAURUHUIRABUKUL $.

  $( The modulo operation is less than its second argument.  (Contributed by
     NM, 10-Nov-2008.) $)
  modlt $p |- ( ( A e. RR /\ B e. RR+ ) -> ( A mod B ) < B ) $=
    ( cr wcel crp wa cmo co cdiv cmin cmul clt cc cc0 wceq adantl recnd wbr syl
    c1 cfl cfv wne recn rpcnne0 divcan2 3expb syl2an oveq1d rerpdivcl refldivcl
    rpcn subdid modval 3eqtr4rd fraclt1 divid breqtrrd wb resubcld rpre rpregt0
    ltmuldiv2 syl3anc mpbird eqbrtrd ) ACDZBEDZFZABGHZBABIHZVKUAUBZJHZKHZBLVIBV
    KKHZBVLKHZJHAVPJHVNVJVIVOAVPJVGAMDZBMDZBNUCZFZVOAOZVHAUDBUEZVQVRVSWAABUFUGU
    HUIVIBVKVLVHVRVGBULPVIVKABUJZQVIVLABUKZQUMABUNUOVIVNBLRZVMBBIHZLRZVIVMTWFLV
    IVKCDVMTLRWCVKUPSVHWFTOZVGVHVTWHWBBUQSPURVIVMCDBCDZWINBLRFZWEWGUSVIVKVLWCWD
    UTVHWIVGBVAPVHWJVGBVBPVMBBVCVDVEVF $.

  $( Modular reduction produces a half-open interval.  (Contributed by Stefan
     O'Rear, 12-Sep-2014.) $)
  modelico $p |- ( ( A e. RR /\ B e. RR+ ) -> ( A mod B ) e. ( 0 [,) B ) ) $=
    ( cr wcel crp wa cmo co cc0 cico cle wbr clt modcl modge0 modlt cxr w3a 0re
    wb rpxr adantl elico2 sylancr mpbir3and ) ACDZBEDZFZABGHZIBJHDZUICDZIUIKLZU
    IBMLZABNABOABPUHICDBQDZUJUKULUMRTSUGUNUFBUAUBIBUIUCUDUE $.

  $( The modulo operation differs from ` A ` by an integer multiple of ` B ` .
     (Contributed by Mario Carneiro, 6-Sep-2016.) $)
  moddiffl $p |- ( ( A e. RR /\ B e. RR+ ) ->
    ( ( A - ( A mod B ) ) / B ) = ( |_ ` ( A / B ) ) ) $=
    ( cr wcel crp wa cmo co cmin cdiv cfl cfv cmul modval oveq2d simpl recnd cc
    adantl eqtrd rpcn rerpdivcl flcld zcnd mulcld nncand cc0 wne rpne0 divcan3d
    oveq1d ) ACDZBEDZFZAABGHZIHZBJHBABJHZKLZMHZBJHURUNUPUSBJUNUPAAUSIHZIHUSUNUO
    UTAIABNOUNAUSUNAULUMPQUNBURUMBRDULBUASZUNURUNUQABUBUCUDZUEUFTUKUNURBVBVAUMB
    UGUHULBUISUJT $.

  $( The modulo operation differs from ` A ` by an integer multiple of ` B ` .
     (Contributed by Mario Carneiro, 15-Jul-2014.) $)
  moddifz $p |- ( ( A e. RR /\ B e. RR+ ) ->
    ( ( A - ( A mod B ) ) / B ) e. ZZ ) $=
    ( cr wcel crp wa cmo co cmin cdiv cfl cfv moddiffl rerpdivcl flcld eqeltrd
    cz ) ACDBEDFZAABGHIHBJHABJHZKLQABMRSABNOP $.

  $( The fractional part of a number is the number modulo 1.  (Contributed by
     NM, 11-Nov-2008.) $)
  modfrac $p |- ( A e. RR -> ( A mod 1 ) = ( A - ( |_ ` A ) ) ) $=
    ( cr wcel c1 cmo co cdiv cfl cfv cmul cmin crp wceq modval mpan2 recn div1d
    1rp oveq2d eqtrd fveq2d reflcl recnd mulid2d ) ABCZADEFZADADGFZHIZJFZKFZAAH
    IZKFUEDLCUFUJMRADNOUEUIUKAKUEUIDUKJFUKUEUHUKDJUEUGAHUEAAPQUASUEUKUEUKAUBUCU
    DTST $.

  $( The floor function expressed in terms of the modulo operation.
     (Contributed by NM, 11-Nov-2008.) $)
  flmod $p |- ( A e. RR -> ( |_ ` A ) = ( A - ( A mod 1 ) ) ) $=
    ( cr wcel c1 cmo co cmin cfl modfrac oveq2d recn reflcl recnd nncand eqtr2d
    cfv ) ABCZAADEFZGFAAAHPZGFZGFSQRTAGAIJQASAKQSALMNO $.

  $( Break a number into its integer part and its fractional part.
     (Contributed by NM, 31-Dec-2008.) $)
  intfrac $p |- ( A e. RR -> A = ( ( |_ ` A ) + ( A mod 1 ) ) ) $=
    ( cr wcel cfl cfv c1 co caddc cmin modfrac oveq2d reflcl recnd recn pncan3d
    cmo eqtr2d ) ABCZADEZAFPGZHGSASIGZHGARTUASHAJKRSARSALMANOQ $.

  $( An integer modulo 1 is 0.  (Contributed by Paul Chapman, 22-Jun-2011.) $)
  zmod10 $p |- ( N e. ZZ -> ( N mod 1 ) = 0 ) $=
    ( cz wcel c1 cmo co cfl cfv cmin cc0 cr wceq zre modfrac flid oveq2d subidd
    syl zcn 3eqtrd ) ABCZADEFZAAGHZIFZAAIFJUAAKCUBUDLAMANRUAUCAAIAOPUAAASQT $.

  $( Two arbitrary integers are congruent modulo 1, see example 4 in
     [ApostolNT] p. 107.  (Contributed by AV, 21-Jul-2021.) $)
  zmod1congr $p |- ( ( A e. ZZ /\ B e. ZZ ) -> ( A mod 1 ) = ( B mod 1 ) ) $=
    ( cz wcel wa c1 cmo co cc0 wceq zmod10 adantr adantl eqtr4d ) ACDZBCDZEAFGH
    ZIBFGHZOQIJPAKLPRIJOBKMN $.

  $( Move a positive integer in and out of a floor in the first argument of a
     modulo operation.  (Contributed by NM, 2-Jan-2009.) $)
  modmulnn $p |- ( ( N e. NN /\ A e. RR /\ M e. NN ) -> ( ( N x. ( |_ ` A ) )
           mod ( N x. M ) ) <_ ( ( |_ ` ( N x. A ) ) mod ( N x. M ) ) ) $=
    ( cn wcel cr cfl cfv cmul co cdiv cmin reflcl 3adant3 wa 3adant2 cc0 wne cc
    wceq w3a cmo cle nnre remulcl syl2an sylan syl nnmulcl nnred nncn nnne0 jca
    mulne0 redivcld remulcld wbr cn0 nnnn0 flmulnn0 lesub1dd crp modval syl2anc
    nnrpd fldiv recnd divcan5 syl3an fveq2d 3eqtr4rd 3comr eqtrd oveq2d 3brtr4d
    recn ) CDEZAFEZBDEZUAZCAGHZIJZCBIJZWBWCKJZGHZIJZLJZCAIJZGHZWFLJZWBWCUBJZWIW
    CUBJZUCVTWBWIWFVQVRWBFEZVSVQCFEZWAFEWMVRCUDZAMZCWAUEUFNZVQVRWIFEZVSVQVROWHF
    EZWRVQWNVRWSWOCAUEUGZWHMUHNZVTWCWEVQVSWCFEVRVQVSOZWCCBUIZUJPZVTWDFEWEFEVTWB
    WCWQXDVQVSWCQRZVRVQCSEZCQRZOZBSEZBQRZOZXEVSVQXFXGCUKCULUMZVSXIXJBUKBULUMZCB
    UNUFPUOWDMUHUPVQVRWBWIUCUQZVSVQCUREVRXNCUSACUTUGNVAVTWMWCVBEZWKWGTWQVQVSXOV
    RXBWCXCVEPZWBWCVCVDVTWLWIWCWIWCKJGHZIJZLJZWJVTWRXOWLXSTXAXPWIWCVCVDVTXRWFWI
    LVTXQWEWCIVTXQWHWCKJZGHZWEVTWSWCDEZXQYATVQVRWSVSWTNVQVSYBVRXCPWHWCVFVDVRVSV
    QYAWETVRVSVQUAZWABKJZGHZABKJZGHZWEYAVRVSYEYGTVQABVFNYCWDYDGVRWASEVSXKVQXHWD
    YDTVRWAWPVGXMXLWABCVHVIVJYCXTYFGVRASEVSXKVQXHXTYFTAVPXMXLABCVHVIVJVKVLVMVNV
    NVMVO $.

  $( The value of the modulo operation (expressed with sum of denominator and
     nominator).  (Contributed by Alexander van der Vekens, 14-Apr-2018.) $)
  modvalp1 $p |- ( ( A e. RR /\ B e. RR+ )
      -> ( ( A + B ) - ( ( ( |_ ` ( A / B ) ) + 1 ) x. B ) ) = ( A mod B ) ) $=
    ( cr wcel crp wa caddc co cdiv cfl cfv cmul cmin c1 cmo cc adantr refldivcl
    recn recnd rpcn adantl mulcld pnpcan2d adddirp1d oveq2d modvalr 3eqtr4d ) A
    CDZBEDZFZABGHZABIHJKZBLHZBGHZMHAUNMHULUMNGHBLHZMHABOHUKAUNBUIAPDUJASQUKUMBU
    KUMABRTZUJBPDUIBUAUBZUCURUDUKUPUOULMUKUMBUQURUEUFABUGUH $.

  $( Closure law for the modulo operation restricted to integers.  (Contributed
     by NM, 27-Nov-2008.) $)
  zmodcl $p |- ( ( A e. ZZ /\ B e. NN ) -> ( A mod B ) e. NN0 ) $=
    ( cz wcel cn wa cmo co cc0 cle wbr cn0 cdiv cfl cfv cmul cmin cr crp syl2an
    wceq zre nnrp modval nnz adantl nndivre sylan zmulcld zsubcl syldan eqeltrd
    flcld modge0 elnn0z sylanbrc ) ACDZBEDZFZABGHZCDIUTJKZUTLDUSUTABABMHZNOZPHZ
    QHZCUQARDZBSDZUTVEUAURAUBZBUCZABUDTUQURVDCDVECDUSBVCURBCDUQBUEUFUSVBUQVFURV
    BRDVHABUGUHUMUIAVDUJUKULUQVFVGVAURVHVIABUNTUTUOUP $.

  ${
    zmodcld.1 $e |- ( ph -> A e. ZZ ) $.
    zmodcld.2 $e |- ( ph -> B e. NN ) $.
    $( Closure law for the modulo operation restricted to integers.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    zmodcld $p |- ( ph -> ( A mod B ) e. NN0 ) $=
      ( cz wcel cn cmo co cn0 zmodcl syl2anc ) ABFGCHGBCIJKGDEBCLM $.
  $}

  $( An integer mod ` B ` lies in the first ` B ` nonnegative integers.
     (Contributed by Jeff Madsen, 17-Jun-2010.) $)
  zmodfz $p |- ( ( A e. ZZ /\ B e. NN ) ->
                                  ( A mod B ) e. ( 0 ... ( B - 1 ) ) ) $=
    ( cz wcel cn wa cmo co cc0 c1 cmin cfz cle wbr clt zmodcl nn0zd nn0ge0d crp
    cr zre nnrp modlt syl2an w3a wb 0z nnz adantl elfzm11 sylancr mpbir3and ) A
    CDZBEDZFZABGHZIBJKHLHDZUPCDZIUPMNZUPBONZUOUPABPZQUOUPVARUMATDBSDUTUNAUABUBA
    BUCUDUOICDBCDZUQURUSUTUEUFUGUNVBUMBUHUIUPIBUJUKUL $.

  $( An integer mod ` B ` lies in the first ` B ` nonnegative integers.
     (Contributed by Stefan O'Rear, 6-Sep-2015.) $)
  zmodfzo $p |- ( ( A e. ZZ /\ B e. NN ) -> ( A mod B ) e. ( 0 ..^ B ) ) $=
    ( cz wcel cn wa cmo co cc0 c1 cmin cfz cfzo zmodfz wceq nnz fzoval eleqtrrd
    syl adantl ) ACDZBEDZFABGHIBJKHLHZIBMHZABNUBUDUCOZUAUBBCDUEBPIBQSTR $.

  $( An integer mod ` B ` lies in the first ` B + 1 ` nonnegative integers.
     (Contributed by AV, 27-Oct-2018.) $)
  zmodfzp1 $p |- ( ( A e. ZZ /\ B e. NN ) -> ( A mod B ) e. ( 0 ... B ) ) $=
    ( cz wcel cn wa cc0 cfzo co cfz cmo fzossfz zmodfzo sseldi ) ACDBEDFGBHIGBJ
    IABKIGBLABMN $.

  $( Identity law for modulo.  (Contributed by NM, 29-Dec-2008.) $)
  modid $p |- ( ( ( A e. RR /\ B e. RR+ ) /\ ( 0 <_ A /\ A < B ) )
               -> ( A mod B ) = A ) $=
    ( cr wcel wa cc0 cle wbr clt co cfl cmul cmin wceq adantr c1 ad2antlr eqtrd
    cfv wb crp cmo modval caddc cc rerpdivcl recnd addid2 fveq2d rpregt0 divge0
    cdiv syl sylan2 an32s adantrr simpr rpcn mulid1d breqtrrd ad2ant2l ltdivmul
    simpll 1re mp3an2 syl2anc mpbird cz 0z flbi2 mpbir2and eqtr3d oveq2d mul01d
    sylancr recn subid1d ad2antrr ) ACDZBUADZEZFAGHZABIHZEZEZABUBJZABABULJZKSZL
    JZMJZAWAWFWJNWDABUCOWEWJAFMJZAWEWIFAMWEWIBFLJZFWEWHFBLWEFWGUDJZKSZWHFWEWGUE
    DZWNWHNWEWGWAWGCDZWDABUFOZUGWOWMWGKWGUHUIUMWEWNFNZFWGGHZWGPIHZWAWBWSWCVSWBV
    TWSVTVSWBEBCDFBIHEZWSBUJZABUKUNUOUPWEWTABPLJZIHZVTWCXDVSWBVTWCEABXCIVTWCUQV
    TXCBNWCVTBBURZUSOUTVAWEVSXAWTXDTZVSVTWDVCVTXAVSWDXBQVSPCDXAXFVDAPBVBVEVFVGW
    EFVHDWPWRWSWTETVIWQWGFVJVOVKVLVMVTWLFNVSWDVTBXEVNQRVMVSWKANVTWDVSAAVPVQVRRR
    $.

  $( A positive real number modulo itself is 0.  (Contributed by Alexander van
     der Vekens, 15-May-2018.) $)
  modid0 $p |- ( N e. RR+ -> ( N mod N ) = 0 ) $=
    ( crp wcel cmo co cc0 wceq cdiv cz c1 rpcn rpne0 dividd 1z syl6eqel cr rpre
    wb mod0 mpancom mpbird ) ABCZAADEFGZAAHEZICZUBUDJIUBAAKALMNOAPCUBUCUERAQAAS
    TUA $.

  $( Identity law for modulo.  (Contributed by NM, 29-Dec-2008.) $)
  modid2 $p |- ( ( A e. RR /\ B e. RR+ )
     -> ( ( A mod B ) = A <-> ( 0 <_ A /\ A < B ) ) ) $=
    ( cr wcel crp wa cmo co wceq cc0 cle wbr clt modge0 modlt jca breq2 anbi12d
    breq1 syl5ibcom modid ex impbid ) ACDBEDFZABGHZAIZJAKLZABMLZFZUDJUEKLZUEBML
    ZFUFUIUDUJUKABNABOPUFUJUGUKUHUEAJKQUEABMSRTUDUIUFABUAUBUC $.

  $( Identity law for modulo restricted to integers.  (Contributed by Paul
     Chapman, 22-Jun-2011.) $)
  zmodid2 $p |- ( ( M e. ZZ /\ N e. NN ) -> ( ( M mod N ) = M <->
                                              M e. ( 0 ... ( N - 1 ) ) ) ) $=
    ( cz wcel cn wa cmo co wceq cc0 cle wbr clt c1 cmin cfz cr crp wb zre nnrp
    modid2 syl2an nnz w3a 0z elfzm11 mpan 3anass syl6bb bicomd sylan9bbr bitr4d
    syl ibar ) ACDZBEDZFABGHAIZJAKLZABMLZFZAJBNOHPHDZUPAQDBRDURVASUQATBUAABUBUC
    UQVBUPVAFZUPVAUQBCDZVBVCSBUDVDVBUPUSUTUEZVCJCDVDVBVESUFAJBUGUHUPUSUTUIUJUNU
    PVAVCUPVAUOUKULUM $.

  $( Identity law for modulo restricted to integers.  (Contributed by AV,
     27-Oct-2018.) $)
  zmodidfzo $p |- ( ( M e. ZZ /\ N e. NN )
                    -> ( ( M mod N ) = M <-> M e. ( 0 ..^ N ) ) ) $=
    ( cz wcel cn wa cmo co wceq cc0 cmin cfz cfzo zmodid2 nnz fzoval syl adantl
    c1 eqcomd eleq2d bitrd ) ACDZBEDZFZABGHAIAJBSKHLHZDAJBMHZDABNUEUFUGAUEUGUFU
    DUGUFIZUCUDBCDUHBOJBPQRTUAUB $.

  $( Identity law for modulo restricted to integers.  (Contributed by AV,
     27-Oct-2018.) $)
  zmodidfzoimp $p |- ( M e. ( 0 ..^ N ) -> ( M mod N ) = M ) $=
    ( cz wcel cn wa cc0 cfzo co cmo wceq cn0 clt wbr elfzo0 nn0z anim1i 3adant3
    w3a sylbi zmodidfzo biimprd mpcom ) ACDZBEDZFZAGBHIDZABJIAKZUGALDZUEABMNZSU
    FABOUIUEUFUJUIUDUEAPQRTUFUHUGABUAUBUC $.

  $( Special case: 0 modulo a positive real number is 0.  (Contributed by Mario
     Carneiro, 22-Feb-2014.) $)
  0mod $p |- ( N e. RR+ -> ( 0 mod N ) = 0 ) $=
    ( crp wcel cc0 cr wa cle wbr clt cmo wceq 0re jctl rpgt0 0le0 jctil syl2anc
    co modid ) ABCZDECZTFDDGHZDAIHZFDAJRDKTUALMTUCUBANOPDASQ $.

  $( Special case: 1 modulo a real number greater than 1 is 1.  (Contributed by
     Mario Carneiro, 18-Feb-2014.) $)
  1mod $p |- ( ( N e. RR /\ 1 < N ) -> ( 1 mod N ) = 1 ) $=
    ( cr wcel c1 clt wbr wa crp cc0 cle cmo co wceq 0lt1 0re lttr mp3an12 jctil
    wi 1re mpani imdistani elrp sylibr simpr 0le1 modid syl2anc ) ABCZDAEFZGZDB
    CZAHCZGIDJFZUJGDAKLDMUKUMULUKUIIAEFZGUMUIUJUOUIIDEFZUJUONIBCULUIUPUJGUOSOTI
    DAPQUAUBAUCUDTRUKUJUNUIUJUEUFRDAUGUH $.

  $( Absorption law for modulo.  (Contributed by NM, 29-Dec-2008.) $)
  modabs $p |- ( ( ( A e. RR /\ B e. RR+ /\ C e. RR+ ) /\ B <_ C )
           -> ( ( A mod B ) mod C ) = ( A mod B ) ) $=
    ( cr wcel crp w3a cle wbr wa cmo co cc0 clt wceq anim1i adantr 3adant3 rpre
    modcl 3impa modge0 3ad2ant2 3ad2ant3 modlt simpr ltletrd modid syl12anc ) A
    DEZBFEZCFEZGZBCHIZJZABKLZDEZULJZMUPHIZUPCNIUPCKLUPOUMURUNUJUKULURUJUKJUQULA
    BTZPUAQUMUSUNUJUKUSULABUBRQUOUPBCUMUQUNUJUKUQULUTRQUMBDEZUNUKUJVAULBSUCQUMC
    DEZUNULUJVBUKCSUDQUMUPBNIZUNUJUKVCULABUERQUMUNUFUGUPCUHUI $.

  $( Absorption law for modulo.  (Contributed by NM, 29-Dec-2008.) $)
  modabs2 $p |- ( ( A e. RR /\ B e. RR+ )
           -> ( ( A mod B ) mod B ) = ( A mod B ) ) $=
    ( cr wcel crp wa cle wbr cmo co wceq leidd adantl wi w3a modabs ex 3anidm23
    rpre mpd ) ACDZBEDZFBBGHZABIJZBIJUDKZUBUCUAUBBBSLMUAUBUCUENUAUBUBOUCUEABBPQ
    RT $.

  $( The modulo operation is periodic.  (Contributed by NM, 10-Nov-2008.) $)
  modcyc $p |- ( ( A e. RR /\ B e. RR+ /\ N e. ZZ )
        -> ( ( A + ( N x. B ) ) mod B ) = ( A mod B ) ) $=
    ( cr wcel cmul co caddc cmo wceq cdiv cfl cfv cmin wa syl2an 3adant1 oveq2d
    cc 3adant2 cz crp w3a zre remulcl readdcl sylan2 3impb simp3 modval syl2anc
    rpre cc0 wne recn 3ad2ant1 recnd rpcnne0 3ad2ant3 syl3anc zcn divcan4 3expb
    divdir eqtrd fveq2d rerpdivcl fladdz rpcn reflcl syl 3ad2ant2 adddid mulcom
    simp2 eqcomd 3eqtrd adantl mulcld pnpcan2d eqtr4d 3com23 ) ADEZCUAEZBUBEZAC
    BFGZHGZBIGZABIGZJWCWDWEUCZWHABABKGZLMZFGZNGZWIWJWHWGBWGBKGZLMZFGZNGZWGWMWFH
    GZNGWNWJWGDEZWEWHWRJWCWDWEWTWDWEOZWCWFDEZWTWDCDEBDEXBWECUDBULCBUEPZAWFUFUGU
    HWCWDWEUIWGBUJUKWJWQWSWGNWJWQBWLCHGZFGWMBCFGZHGWSWJWPXDBFWJWPWKCHGZLMZXDWJW
    OXFLWJWOWKWFBKGZHGZXFWJASEZWFSEZBSEZBUMUNZOZWOXIJWCWDXJWEAUOUPZWDWEXKWCXAWF
    XCUQQZWEWCXNWDBURZUSAWFBVDUTWJXHCWKHWDWEXHCJZWCWDCSEZXNXRWECVAZXQXSXLXMXRCB
    VBVCPQRVEVFWJWKDEZWDXGXDJWCWEYAWDABVGZTWCWDWEVOWKCVHUKVERWJBWLCWEWCXLWDBVIZ
    USWCWEWLSEZWDWCWEOZYAYDYBYAWLWKVJUQVKZTWDWCXSWEXTVLVMWJXEWFWMHWJWFXEWDWEWFX
    EJZWCWDXSXLYGWEXTYCCBVNPQVPRVQRWJAWMWFXOWCWEWMSEWDYEBWLWEXLWCYCVRYFVSTXPVTV
    QWCWEWIWNJWDABUJTWAWB $.

  $( The modulo operation is periodic.  (Contributed by NM, 12-Nov-2008.) $)
  modcyc2 $p |- ( ( A e. RR /\ B e. RR+ /\ N e. ZZ )
        -> ( ( A - ( B x. N ) ) mod B ) = ( A mod B ) ) $=
    ( cr wcel crp cz w3a cmul co cmin cmo cneg caddc cc wceq recn rpcn zcn wa
    mulneg1 ancoms mulcom negeqd eqtr4d oveq2d mulcl negsub sylan2 3impb eqtr2d
    3adant1 syl3an oveq1d znegcl modcyc syl3an3 eqtrd ) ADEZBFEZCGEZHZABCIJZKJZ
    BLJACMZBIJZNJZBLJZABLJZVBVDVGBLUSAOEZUTBOEZVACOEZVDVGPAQBRCSVJVKVLHZVGAVCMZ
    NJZVDVMVFVNANVKVLVFVNPVJVKVLTZVFCBIJZMZVNVLVKVFVRPCBUAUBVPVCVQBCUCUDUEULUFV
    JVKVLVOVDPZVPVJVCOEVSBCUGAVCUHUIUJUKUMUNVAUSUTVEGEVHVIPCUOABVEUPUQUR $.

  $( Addition property of the modulo operation.  (Contributed by NM,
     12-Nov-2008.) $)
  modadd1 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR+ )
       /\ ( A mod D ) = ( B mod D ) )
       -> ( ( A + C ) mod D ) = ( ( B + C ) mod D ) ) $=
    ( cr wcel wa cmo co wceq caddc cdiv cfl cfv cmul cmin modval adantrl recn
    cc wb eqeqan12d anandirs oveq1 syl6bi adantr ad2antrl rpcn adantl rerpdivcl
    crp reflcl recnd syl mulcld addsubd adantlr adantll eqeq12d sylibrd readdcl
    cz adantrr simprr flcld modcyc2 syl3anc syl5ib syld 3impia ) AEFZBEFZGZCEFZ
    DUKFZGZADHIZBDHIZJZACKIZDHIZBCKIZDHIZJZVMVPGZVSVTDADLIZMNZOIZPIZWBDBDLIZMNZ
    OIZPIZJZWDWEVSAWHPIZCKIZBWLPIZCKIZJZWNWEVSWOWQJZWSVMVOVSWTUAZVNVKVLVOXAVKVO
    GZVLVOGZVQWOVRWQADQBDQUBUCRWOWQCKUDUEWEWIWPWMWRVKVPWIWPJVLVKVPGZACWHVKATFVP
    ASUFVNCTFZVKVOCSZUGVKVOWHTFVNXBDWGVODTFZVKDUHZUIXBWFEFZWGTFADUJZXIWGWFULUMU
    NUORUPUQVLVPWMWRJVKVLVPGZBCWLVLBTFVPBSUFVNXEVLVOXFUGVLVOWLTFVNXCDWKVOXGVLXH
    UIXCWJEFZWKTFBDUJZXLWKWJULUMUNUORUPURUSUTWNWIDHIZWMDHIZJWEWDWIWMDHUDWEXNWAX
    OWCVKVPXNWAJZVLXDVTEFZVOWGVBFZXPVKVNXQVOACVAVCVKVNVOVDVKVOXRVNXBWFXJVERVTDW
    GVFVGUQVLVPXOWCJZVKXKWBEFZVOWKVBFZXSVLVNXTVOBCVAVCVLVNVOVDVLVOYAVNXCWJXMVER
    WBDWKVFVGURUSVHVIVJ $.

  $( Absorption law for modulo.  (Contributed by Paul Chapman, 22-Jun-2011.) $)
  modaddabs $p |- ( ( A e. RR /\ B e. RR /\ C e. RR+ ) ->
            ( ( ( A mod C ) + ( B mod C ) ) mod C ) = ( ( A + B ) mod C ) ) $=
    ( cr wcel cmo co caddc cc wa modcl recnd 3adant2 3adant1 addcomd wceq simpl
    oveq1d jca modabs2 crp w3a simpr modadd1 recn 3ad2ant2 eqtr4d 3simpc 3eqtrd
    syl3anc ) ADEZBDEZCUAEZUBZACFGZBCFGZHGZCFGUPUOHGZCFGZUOBHGZCFGZABHGCFGZUNUQ
    URCFUNUOUPUKUMUOIEULUKUMJZUOACKZLMZULUMUPIEUKULUMJZUPBCKZLNORUNUSBUOHGZCFGZ
    VAUNUPDEZULJZUODEZUMJZUPCFGUPPZUSVIPULUMVKUKVFVJULVGULUMQSNUKUMVMULVCVLUMVD
    UKUMUCSMULUMVNUKBCTNUPBUOCUDUJUNUTVHCFUNUOBVEULUKBIEUMBUEUFORUGUNVLUKJZVFUO
    CFGUOPZVAVBPUKUMVOULVCVLUKVDUKUMQSMUKULUMUHUKUMVPULACTMUOABCUDUJUI $.

  $( The sum of a real number modulo a positive real number and another real
     number equals the sum of the two real numbers modulo the positive real
     number.  (Contributed by Alexander van der Vekens, 13-May-2018.) $)
  modaddmod $p |- ( ( A e. RR /\ B e. RR /\ M e. RR+ )
                    -> ( ( ( A mod M ) + B ) mod M ) = ( ( A + B ) mod M ) ) $=
    ( cr wcel crp w3a cmo co wceq caddc modcl simpl jca 3adant2 modabs2 modadd1
    wa 3simpc syl3anc ) ADEZBDEZCFEZGACHIZDEZUARZUBUCRUDCHIUDJZUDBKICHIABKICHIJ
    UAUCUFUBUAUCRUEUAACLUAUCMNOUAUBUCSUAUCUGUBACPOUDABCQT $.

  $( The sum of a positive real number less than an upper bound and the product
     of an integer and the upper bound is the positive real number modulo the
     upper bound.  (Contributed by AV, 5-Jul-2020.) $)
  muladdmodid $p |- ( ( N e. ZZ /\ M e. RR+ /\ A e. ( 0 [,) M ) )
                      -> ( ( ( N x. M ) + A ) mod M ) = A ) $=
    ( cz wcel crp cc0 cico co cmul caddc cmo wa cr wbr syl2anc adantl cc adantr
    wceq cle clt w3a wb cxr 0red rpxr elico2 zcn rpcn mulcl syl2an recn addcomd
    3ad2ant1 oveq1d simp1 simpr simpll modcyc syl3anc anim12ci 3simpc 3eqtrd ex
    modid sylbid 3impia ) CDEZBFEZAGBHIEZCBJIZAKIZBLIZATZVIVJMZVKANEZGAUAOZABUB
    OZUCZVOVJVKVTUDZVIVJGNEBUEEWAVJUFBUGGBAUHPQVPVTVOVPVTMZVNAVLKIZBLIZABLIZAWB
    VMWCBLWBVLAVPVLREZVTVICREBREWFVJCUIBUJCBUKULSVTAREZVPVQVRWGVSAUMUOQUNUPWBVQ
    VJVIWDWETVTVQVPVQVRVSUQZQVPVJVTVIVJURZSVIVJVTUSABCUTVAWBVQVJMVRVSMZWEATVPVJ
    VTVQWIWHVBVTWJVPVQVRVSVCQABVFPVDVEVGVH $.

  $( The product of an integer and an integer greater than 1 increased by 1 is
     1 modulo the integer greater than 1.  (Contributed by AV, 15-Jul-2021.) $)
  mulp1mod1 $p |- ( ( A e. ZZ /\ N e. ( ZZ>= ` 2 ) )
                    -> ( ( ( N x. A ) + 1 ) mod N ) = 1 ) $=
    ( cz wcel c2 cuz cfv wa cmul co cmo c1 caddc cc0 cc adantl adantr oveq1d cr
    wceq eluzelcn zcn mulcomd eluz2nn nnrpd mulmod0 sylan2 eqtrd 0p1e1 eluzelre
    crp syl6eq zre remulcld 1red modaddmod syl3anc clt wbr eluz2gt1 jca 3eqtr3d
    1mod syl ) ACDZBEFGDZHZBAIJZBKJZLMJZBKJZLBKJZVHLMJBKJZLVGVJLBKVGVJNLMJLVGVI
    NLMVGVIABIJZBKJZNVGVHVNBKVGBAVFBODVEEBUAPVEAODVFAUBQUCRVFVEBUKDZVONTVFBBUDU
    EZABUFUGUHRUIULRVGVHSDLSDVPVKVMTVGBAVFBSDZVEEBUJZPVEASDVFAUMQUNVGUOVFVPVEVQ
    PVHLBUPUQVGVRLBURUSZHZVLLTVFWAVEVFVRVTVSBUTVAPBVCVDVB $.

  ${
    $d A k $.  $d B k $.  $d M k $.
    $( Decomposition of an integer into a multiple of a modulus and a
       remainder.  (Contributed by AV, 14-Jul-2021.) $)
    modmuladd $p |- ( ( A e. ZZ /\ B e. ( 0 [,) M ) /\ M e. RR+ )
                     -> ( ( A mod M ) = B
                          <-> E. k e. ZZ A = ( ( k x. M ) + B ) ) ) $=
      ( cz wcel cc0 co cmo wceq cmul caddc wa cr adantl 3adant2 wb oveq1 eqeq2d
      wrex cico crp w3a cv cdiv cfl cfv adantr rpre rpne0 redivcld flcld oveq1d
      zre wne anim1i flpmodeq syl eqcomd rspcedvd oveq2 eqcoms syl5ibrcom simpr
      rexbidv simpl3 simpl2 muladdmodid syl3anc sylan9eqr ex rexlimdva impbid )
      AEFZBGDUAHFZDUBFZUCZADIHZBJZACUDZDKHZBLHZJZCETZVQWDVSAWAVRLHZJZCETVQWFAAD
      UEHZUFUGZDKHZVRLHZJZCWHEVNVPWHEFVOVNVPMZWGWLADVNANFZVPAUNZUHVPDNFVNDUIOVP
      DGUOVNDUJOUKULPVTWHJZWFWKQVQWOWEWJAWOWAWIVRLVTWHDKRUMSOVQWJAVQWMVPMZWJAJV
      NVPWPVOVNWMVPWNUPPADUQURUSUTVSWCWFCEWCWFQBVRBVRJWBWEABVRWALVASVBVEVCVQWCV
      SCEVQVTEFZMZWCVSWCWRVRWBDIHZBAWBDIRWRWQVPVOWSBJVQWQVDVNVOVPWQVFVNVOVPWQVG
      BDVTVHVIVJVKVLVM $.

    $( Implication of a decomposition of an integer into a multiple of a
       modulus and a remainder.  (Contributed by AV, 14-Jul-2021.) $)
    modmuladdim $p |- ( ( A e. ZZ /\ M e. RR+ ) -> ( ( A mod M ) = B
                                    -> E. k e. ZZ A = ( ( k x. M ) + B ) ) ) $=
      ( cz wcel crp wa cmo co wceq cv cmul caddc wrex cc0 cico adantr wb simpr
      cr zre modelico sylan eleq1 adantl mpbid simpll modmuladd biimpd impancom
      syl3anc mpd ex ) AEFZDGFZHZADIJZBKZACLDMJBNJKCEOZUQUSHZBPDQJZFZUTVAURVBFZ
      VCUQVDUSUOAUAFUPVDAUBADUCUDRUSVDVCSUQURBVBUEUFUGUQVCUSUTUQVCHZUSUTVEUOVCU
      PUSUTSUOUPVCUHUQVCTUQUPVCUOUPTRABCDUIULUJUKUMUN $.

    $d A i k $.  $d B i $.  $d M i $.
    $( Implication of a decomposition of a nonnegative integer into a multiple
       of a modulus and a remainder.  (Contributed by AV, 14-Jul-2021.) $)
    modmuladdnn0 $p |- ( ( A e. NN0 /\ M e. RR+ ) -> ( ( A mod M ) = B
                                   -> E. k e. NN0 A = ( ( k x. M ) + B ) ) ) $=
      ( vi cn0 wcel wa co wceq cz cc0 cle wbr adantr cdiv cc ad2antrr cr adantl
      crp cmo cv cmul caddc wrex simpr cfl cfv nn0cn nn0re modcl sylan recnd wb
      cmin eleq1 mpbid zcn rpcn mulcld subadd2d syl6rbbr subcld rpcnne0 divmul3
      eqcom syl3anc oveq2 oveq1d eqcoms moddiffl eqtrd eqeq1d 3bitr2d wi nn0ge0
      wne clt jca rpregt0 divge0 syl2an rpre redivcld 0z flge sylancl syl5ibcom
      rpne0 breq2 sylbid elnn0z sylanbrc oveq1 eqeq2d rspcedvd nn0z modmuladdim
      imp weq r19.29a ex ) AFGZDUAGZHZADUBIZBJZACUCZDUDIZBUEIZJZCFUFZXFXHHZAEUC
      ZDUDIZBUEIZJZXMEKXNXOKGZHZXRHZXLXRCXOFYAXSLXOMNZXOFGXTXSXRXNXSUGOXTXRYBXT
      XRADPIZUHUIZXOJZYBXTXRABUPIZXPJZYFDPIZXOJZYEXTYGXQAJXRXTABXPXFAQGZXHXSXDY
      JXEAUJZORXNBQGZXSXNXGQGZYLXFYMXHXFXGXDASGZXEXGSGAUKZADULUMUNOXHYMYLUOXFXG
      BQUQTURZOXTXODXSXOQGZXNXOUSTZXFDQGZXHXSXEYSXDDUTTRVAVBAXQVGVCXTYFQGZYQYSD
      LVRZHZYIYGUOXNYTXSXNABXDYJXEXHYKRYPVDOYRXFUUBXHXSXEUUBXDDVETRYFXODVFVHXTY
      HYDXOXTYHAXGUPIZDPIZYDXNYHUUDJZXSXHUUEXFUUEBXGBXGJYFUUCDPBXGAUPVIVJVKTOXF
      UUDYDJZXHXSXDYNXEUUFYOADVLUMRVMVNVOXFYEYBVPXHXSXFLYDMNZYEYBXFLYCMNZUUGXDY
      NLAMNZHDSGZLDVSNHUUHXEXDYNUUIYOAVQVTDWAADWBWCXFYCSGLKGUUHUUGUOXFADXDYNXEY
      OOXEUUJXDDWDTXEUUAXDDWJTWEWFYCLWGWHURYDXOLMWKWIRWLWTXOWMWNCEXAZXLXRUOYAUU
      KXKXQAUUKXJXPBUEXIXODUDWOVJWPTXTXRUGWQXFXHXREKUFZXDAKGXEXHUULVPAWRABEDWSU
      MWTXBXC $.
  $}

  $( The negation of a number modulo a positive number is equal to the
     difference of the modulus and the number modulo the modulus.  (Contributed
     by AV, 5-Jul-2020.) $)
  negmod $p |- ( ( A e. RR /\ N e. RR+ )
                       -> ( -u A mod N ) = ( ( N - A ) mod N ) ) $=
    ( cr wcel crp wa cmin co cneg caddc c1 cmul cc wceq rpcn recn negsub oveq1d
    cmo adantr syl2anr eqcomd mulid2d adantl mulcl syl2an renegcl recnd addcomd
    1cnd cz simpr 1zzd modcyc syl3anc eqtrd 3eqtr2rd ) ACDZBEDZFZBAGHZBSHBAIZJH
    ZBSHKBLHZVBJHZBSHZVBBSHZUTVAVCBSUTVCVAUSBMDZAMDVCVANURBOZAPBAQUAUBRUTVEVCBS
    UTVDBVBJUSVDBNURUSBVIUCUDRRUTVFVBVDJHZBSHZVGUTVEVJBSUTVDVBURKMDVHVDMDUSURUJ
    VIKBUEUFURVBMDUSURVBAUGZUHTUIRUTVBCDZUSKUKDVKVGNURVMUSVLTURUSULUTUMVBBKUNUO
    UPUQ $.

  $( Minus one modulo a positive integer is equal to the integer minus one.
     (Contributed by AV, 14-Jul-2021.) $)
  m1modnnsub1 $p |- ( M e. NN -> ( -u 1 mod M ) = ( M - 1 ) ) $=
    ( cn wcel c1 cneg cmo cmin crp wceq 1re nnrp negmod sylancr cc0 cle wbr clt
    co cr nnre peano2rem syl nnm1ge0 ltm1d modid syl22anc eqtrd ) ABCZDEAFRZADG
    RZAFRZUJUHDSCAHCZUIUKIJAKZDALMUHUJSCZULNUJOPUJAQPUKUJIUHASCUNATZAUAUBUMAUCU
    HAUOUDUJAUEUFUG $.

  $( Minus one modulo an integer greater than two is greater than one.
     (Contributed by AV, 14-Jul-2021.) $)
  m1modge3gt1 $p |- ( M e. ( ZZ>= ` 3 ) -> 1 < ( -u 1 mod M ) ) $=
    ( c3 cuz cfv wcel c1 cmin co cneg cmo clt caddc wbr c2 1p1e2 2p1e3 syl5eqbr
    cle eluzle cz wb 2z eluzelz zltp1le sylancr mpbird 1red eluzelre ltaddsub2d
    mpbid cn wceq eluzge3nn m1modnnsub1 syl breqtrrd ) ABCDEZFAFGHZFIAJHZKUQFFL
    HZAKMFURKMUQUTNAKOUQNAKMZNFLHZARMZUQVBBARPBASQUQNTEATEVAVCUAUBBAUCNAUDUEUFQ
    UQFFAUQUGZVDBAUHUIUJUQAUKEUSURULAUMAUNUOUP $.

  $( The sum of a positive integer and a nonnegative integer less than the
     positive integer is equal to the nonnegative integer modulo the positive
     integer.  (Contributed by Alexander van der Vekens, 30-Oct-2018.)  (Proof
     shortened by AV, 5-Jul-2020.) $)
  addmodid $p |- ( ( A e. NN0 /\ M e. NN /\ A < M )
                   -> ( ( M + A ) mod M ) = A ) $=
    ( cn0 wcel cn clt wbr w3a caddc co cmo c1 cmul wceq 3ad2ant2 oveq1d cc0 cxr
    rexrd 3ad2ant1 nncn mulid2d eqcomd cz crp cico 1zzd nnrp nn0re nn0ge0 simp3
    cle wb 0xr nnre elico1 sylancr mpbir3and muladdmodid syl3anc eqtrd ) ACDZBE
    DZABFGZHZBAIJZBKJLBMJZAIJZBKJZAVEVFVHBKVEBVGAIVEVGBVCVBVGBNVDVCBBUAUBOUCPPV
    ELUDDBUEDZAQBUFJDZVIANVEUGVCVBVJVDBUHOVEVKARDZQAULGZVDVBVCVLVDVBAAUISTVBVCV
    MVDAUJTVBVCVDUKVEQRDBRDZVKVLVMVDHUMUNVCVBVNVDVCBBUOSOQBAUPUQURABLUSUTVA $.

  $( The sum of a positive integer and a nonnegative integer less than the
     positive integer is equal to the nonnegative integer modulo the positive
     integer.  (Contributed by AV, 19-Mar-2021.) $)
  addmodidr $p |- ( ( A e. NN0 /\ M e. NN /\ A < M )
                    -> ( ( A + M ) mod M ) = A ) $=
    ( cn0 wcel cn clt wbr w3a caddc co wceq cc nn0cn nncn addcom syl2an 3adant3
    cmo oveq1d addmodid eqtrd ) ACDZBEDZABFGZHZABIJZBRJBAIJZBRJAUEUFUGBRUBUCUFU
    GKZUDUBALDBLDUHUCAMBNABOPQSABTUA $.

  $( The sum of a real number modulo a positive real number and another real
     number equals the sum of the two real numbers modulo the positive real
     number.  (Contributed by Alexander van der Vekens, 17-May-2018.) $)
  modadd2mod $p |- ( ( A e. RR /\ B e. RR /\ M e. RR+ )
                    -> ( ( B + ( A mod M ) ) mod M ) = ( ( B + A ) mod M ) ) $=
    ( cr wcel crp w3a cmo co caddc cc recn 3ad2ant2 modcl recnd 3adant2 addcomd
    wa oveq1d wceq modaddmod addcom syl2an 3adant3 3eqtrd ) ADEZBDEZCFEZGZBACHI
    ZJIZCHIUJBJIZCHIABJIZCHIZBAJIZCHIZUIUKULCHUIBUJUGUFBKEZUHBLZMUFUHUJKEUGUFUH
    RUJACNOPQSABCUAUFUGUNUPTUHUFUGRUMUOCHUFAKEUQUMUOTUGALURABUBUCSUDUE $.

  $( If an real number modulo a positive real number equals the positive real
     number decreased by 1, the real number increased by 1 modulo the positive
     real number equals 0.  (Contributed by AV, 2-Nov-2018.) $)
  modm1p1mod0 $p |- ( ( A e. RR /\ M e. RR+ )
                 -> ( ( A mod M ) = ( M - 1 ) -> ( ( A + 1 ) mod M ) = 0 ) ) $=
    ( cr wcel crp wa cmo co c1 cmin wceq cc0 1re modaddmod mp3an2 eqcomd adantr
    caddc oveq1d eqtrd oveq1 cc rpcn npcan1 syl modid0 adantl sylan9eqr ex ) AC
    DZBEDZFZABGHZBIJHZKZAIRHBGHZLKULUOFUPUMIRHZBGHZLULUPURKUOULURUPUJICDUKURUPK
    MAIBNOPQUOULURUNIRHZBGHZLUOUQUSBGUMUNIRUASUKUTLKUJUKUTBBGHLUKUSBBGUKBUBDUSB
    KBUCBUDUESBUFTUGUHTUI $.

  $( If a real number modulo a positive real number is less than the positive
     real number decreased by 1, the real number increased by 1 modulo the
     positive real number equals the real number modulo the positive real
     number increased by 1.  (Contributed by AV, 2-Nov-2018.) $)
  modltm1p1mod $p |- ( ( A e. RR /\ M e. RR+ /\ ( A mod M ) < ( M - 1 ) )
                      -> ( ( A + 1 ) mod M ) = ( ( A mod M ) + 1 ) ) $=
    ( cr wcel crp cmo co c1 cmin clt wbr w3a caddc wceq wa 1red 3adant3 syl cc0
    simpl simpr 3jca modaddmod cle modcl peano2re jca modge0 lep1d letrd adantl
    0red rpre ltaddsubd biimp3ar modid syl12anc eqtr3d ) ACDZBEDZABFGZBHIGJKZLZ
    VAHMGZBFGZAHMGBFGZVDVCUSHCDZUTLZVEVFNUSUTVHVBUSUTOZUSVGUTUSUTTVIPZUSUTUAZUB
    QAHBUCRVCVDCDZUTOZSVDUDKZVDBJKZVEVDNUSUTVMVBVIVLUTVIVACDVLABUEZVAUFRZVKUGQU
    SUTVNVBVISVAVDVIULVPVQABUHVIVAVPUIUJQUSUTVOVBVIVAHBVPVJUTBCDUSBUMUKUNUOVDBU
    PUQUR $.

  $( Multiplication property of the modulo operation.  Note that the multiplier
     ` C ` must be an integer.  (Contributed by NM, 12-Nov-2008.) $)
  modmul1 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. ZZ /\ D e. RR+ )
       /\ ( A mod D ) = ( B mod D ) )
       -> ( ( A x. C ) mod D ) = ( ( B x. C ) mod D ) ) $=
    ( cr wcel wa cz cmo co wceq cmul cdiv cfl cfv cmin modval adantrl oveq1 cc
    crp wb eqeqan12d anandirs syl6bi rpcn ad2antll zcn ad2antrl rerpdivcl flcld
    zcnd mulassd mul32d eqtr3d oveq2d recn adantr adantl mulcld subdird adantlr
    eqtr4d adantll eqeq12d sylibrd remulcl sylan2 adantrr simprr simprl zmulcld
    zre modcyc2 syl3anc syl5ib syld 3impia ) AEFZBEFZGZCHFZDUAFZGZADIJZBDIJZKZA
    CLJZDIJZBCLJZDIJZKZWAWDGZWGWHDCADMJZNOZLJZLJZPJZWJDCBDMJZNOZLJZLJZPJZKZWLWM
    WGADWOLJZPJZCLJZBDWTLJZPJZCLJZKZXDWMWGXFXIKZXKWAWCWGXLUBZWBVSVTWCXMVSWCGZVT
    WCGZWEXFWFXIADQBDQUCUDRXFXICLSUEWMWRXGXCXJVSWDWRXGKVTVSWDGZWRWHXECLJZPJXGXP
    WQXQWHPXPDCLJZWOLJWQXQXPDCWOWCDTFZVSWBDUFZUGZWBCTFZVSWCCUHZUIZVSWCWOTFWBXNW
    OXNWNADUJUKZULZRZUMXPDCWOYAYDYGUNUOUPXPAXECVSATFWDAUQURVSWCXETFWBXNDWOWCXSV
    SXTUSYFUTRYDVAVCVBVTWDXCXJKVSVTWDGZXCWJXHCLJZPJXJYHXBYIWJPYHXRWTLJXBYIYHDCW
    TWCXSVTWBXTUGZWBYBVTWCYCUIZVTWCWTTFWBXOWTXOWSBDUJUKZULZRZUMYHDCWTYJYKYNUNUO
    UPYHBXHCVTBTFWDBUQURVTWCXHTFWBXODWTWCXSVTXTUSYMUTRYKVAVCVDVEVFXDWRDIJZXCDIJ
    ZKWMWLWRXCDISWMYOWIYPWKVSWDYOWIKZVTXPWHEFZWCWPHFYQVSWBYRWCWBVSCEFZYRCVMZACV
    GVHVIVSWBWCVJXPCWOVSWBWCVKVSWCWOHFWBYERVLWHDWPVNVOVBVTWDYPWKKZVSYHWJEFZWCXA
    HFUUAVTWBUUBWCWBVTYSUUBYTBCVGVHVIVTWBWCVJYHCWTVTWBWCVKVTWCWTHFWBYLRVLWJDXAV
    NVOVDVEVPVQVR $.

  ${
    modmul12d.1 $e |- ( ph -> A e. ZZ ) $.
    modmul12d.2 $e |- ( ph -> B e. ZZ ) $.
    modmul12d.3 $e |- ( ph -> C e. ZZ ) $.
    modmul12d.4 $e |- ( ph -> D e. ZZ ) $.
    modmul12d.5 $e |- ( ph -> E e. RR+ ) $.
    modmul12d.6 $e |- ( ph -> ( A mod E ) = ( B mod E ) ) $.
    modmul12d.7 $e |- ( ph -> ( C mod E ) = ( D mod E ) ) $.
    $( Multiplication property of the modulo operation, see theorem 5.2(b) in
       [ApostolNT] p. 107.  (Contributed by Mario Carneiro, 5-Feb-2015.) $)
    modmul12d $p |- ( ph -> ( ( A x. C ) mod E ) = ( ( B x. D ) mod E ) ) $=
      ( cmul co cmo cr wcel wceq zred crp modmul1 syl221anc zcnd mulcomd oveq1d
      cz 3eqtrd eqtrd ) ABDNOFPOZCDNOZFPOZCENOZFPOZABQRCQRDUGRFUARZBFPOCFPOSUJU
      LSABGTACHTIKLBCDFUBUCAULDCNOZFPOZECNOZFPOZUNAUKUPFPACDACHUDZADIUDUEUFADQR
      EQRCUGRUODFPOEFPOSUQUSSADITAEJTHKMDECFUBUCAURUMFPAECAEJUDUTUEUFUHUI $.
  $}

  ${
    modnegd.1 $e |- ( ph -> A e. RR ) $.
    modnegd.2 $e |- ( ph -> B e. RR ) $.
    modnegd.3 $e |- ( ph -> C e. RR+ ) $.
    modnegd.4 $e |- ( ph -> ( A mod C ) = ( B mod C ) ) $.
    $( Negation property of the modulo operation.  (Contributed by Mario
       Carneiro, 9-Sep-2016.) $)
    modnegd $p |- ( ph -> ( -u A mod C ) = ( -u B mod C ) ) $=
      ( c1 cneg cmul co cmo cr wcel wceq recnd mulcomd mulm1d eqtrd cz crp 1zzd
      znegcld modmul1 syl221anc 1cnd negcld oveq1d 3eqtr3d ) ABIJZKLZDMLZCUKKLZ
      DMLZBJZDMLCJZDMLABNOCNOUKUAODUBOBDMLCDMLPUMUOPEFAIAUCUDGHBCUKDUEUFAULUPDM
      AULUKBKLUPABUKABEQZAIAUGUHZRABURSTUIAUNUQDMAUNUKCKLUQACUKACFQZUSRACUTSTUI
      UJ $.
  $}

  ${
    modadd12d.1 $e |- ( ph -> A e. RR ) $.
    modadd12d.2 $e |- ( ph -> B e. RR ) $.
    modadd12d.3 $e |- ( ph -> C e. RR ) $.
    modadd12d.4 $e |- ( ph -> D e. RR ) $.
    modadd12d.5 $e |- ( ph -> E e. RR+ ) $.
    modadd12d.6 $e |- ( ph -> ( A mod E ) = ( B mod E ) ) $.
    modadd12d.7 $e |- ( ph -> ( C mod E ) = ( D mod E ) ) $.
    $( Additive property of the modulo operation.  (Contributed by Mario
       Carneiro, 9-Sep-2016.) $)
    modadd12d $p |- ( ph -> ( ( A + C ) mod E ) = ( ( B + D ) mod E ) ) $=
      ( caddc co cmo cr wcel wceq recnd modadd1 syl221anc addcomd oveq1d 3eqtrd
      crp eqtrd ) ABDNOFPOZCDNOZFPOZCENOZFPOZABQRCQRZDQRZFUFRZBFPOCFPOSUHUJSGHI
      KLBCDFUAUBAUJDCNOZFPOZECNOZFPOZULAUIUPFPACDACHTZADITUCUDAUNEQRUMUODFPOEFP
      OSUQUSSIJHKMDECFUAUBAURUKFPAECAEJTUTUCUDUEUG $.

    $( Subtraction property of the modulo operation.  (Contributed by Mario
       Carneiro, 9-Sep-2016.) $)
    modsub12d $p |- ( ph -> ( ( A - C ) mod E ) = ( ( B - D ) mod E ) ) $=
      ( cneg caddc co cmo cmin renegcld recnd modnegd modadd12d negsubd 3eqtr3d
      oveq1d ) ABDNZOPZFQPCENZOPZFQPBDRPZFQPCERPZFQPABCUFUHFGHADISAEJSKLADEFIJK
      MUAUBAUGUJFQABDABGTADITUCUEAUIUKFQACEACHTAEJTUCUEUD $.
  $}

  $( The difference of a real number modulo a positive real number and another
     real number equals the difference of the two real numbers modulo the
     positive real number.  (Contributed by Alexander van der Vekens,
     17-May-2018.) $)
  modsubmod $p |- ( ( A e. RR /\ B e. RR /\ M e. RR+ )
                    -> ( ( ( A mod M ) - B ) mod M ) = ( ( A - B ) mod M ) ) $=
    ( cr wcel crp w3a cmo co modcl 3adant2 simp1 simp2 simp3 wceq modabs2 eqidd
    modsub12d ) ADEZBDEZCFEZGZACHIZABBCSUAUCDETACJKSTUALSTUAMZUDSTUANSUAUCCHIUC
    OTACPKUBBCHIQR $.

  $( The difference of a real number modulo a positive real number and another
     real number modulo this positive real number equals the difference of the
     two real numbers modulo the positive real number.  (Contributed by
     Alexander van der Vekens, 17-May-2018.) $)
  modsubmodmod $p |- ( ( A e. RR /\ B e. RR /\ M e. RR+ )
          -> ( ( ( A mod M ) - ( B mod M ) ) mod M ) = ( ( A - B ) mod M ) ) $=
    ( cr wcel crp w3a co modcl 3adant2 simp1 3adant1 simp2 simp3 wceq modsub12d
    cmo modabs2 ) ADEZBDEZCFEZGACQHZABCQHZBCSUAUBDETACIJSTUAKTUAUCDESBCILSTUAMS
    TUANSUAUBCQHUBOTACRJTUAUCCQHUCOSBCRLP $.

  $( Two times a positive real number modulo the real number is zero.
     (Contributed by Alexander van der Vekens, 8-Jun-2018.) $)
  2txmodxeq0 $p |- ( X e. RR+ -> ( ( 2 x. X ) mod X ) = 0 ) $=
    ( crp wcel c2 cmul co cmo wceq cdiv cz 2cnd rpcn rpne0 divcan4d 2z syl6eqel
    cc0 cr wb 2re a1i rpre remulcld mod0 mpancom mpbird ) ABCZDAEFZAGFQHZUHAIFZ
    JCZUGUJDJUGDAUGKALAMNOPUHRCUGUIUKSUGDADRCUGTUAAUBUCUHAUDUEUF $.

  $( If a real number is between a positive real number and twice the positive
     real number, the real number modulo the positive real number equals the
     real number minus the positive real number.  (Contributed by Alexander van
     der Vekens, 13-May-2018.) $)
  2submod $p |- ( ( ( A e. RR /\ B e. RR+ ) /\ ( B <_ A /\ A < ( 2 x. B ) ) )
                 -> ( A mod B ) = ( A - B ) ) $=
    ( cr wcel crp wa cle wbr c2 cmul clt cmin cmo wceq syl adantl adantr sylan2
    co c1 rpre ax-1rid oveq2d oveq1d cz w3a simpl 1zzd 3jca modcyc2 cc0 resubcl
    simpr wb subge0 bicomd caddc 2timesd breq2d ltsubaddd bitr4d anbi12d biimpa
    jca rpcn modid syl2anc 3eqtr3d ) ACDZBEDZFZBAGHZAIBJSZKHZFZFZABTJSZLSZBMSZA
    BLSZBMSZABMSZVTVKVSWANVOVKVRVTBMVKVQBALVJVQBNZVIVJBCDZWCBUAZBUBOPUCUDQVPVIV
    JTUEDZUFZVSWBNVKWGVOVKVIVJWFVIVJUGZVIVJUMZVKUHUIQABTUJOVPVTCDZVJFZUKVTGHZVT
    BKHZFZWAVTNVKWKVOVKWJVJVJVIWDWJWEABULRWIVDQVKVOWNVKVLWLVNWMVKWLVLVJVIWDWLVL
    UNWEABUORUPVKVNABBUQSZKHWMVKVMWOAKVJVMWONVIVJBBVEURPUSVKABBWHVJWDVIWEPZWPUT
    VAVBVCVTBVFVGVH $.

  $( If a nonnegative integer is less than twice a positive integer, the
     nonnegative integer modulo the positive integer equals the nonnegative
     integer or the nonnegative integer minus the positive integer.
     (Contributed by Alexander van der Vekens, 21-May-2018.) $)
  modifeq2int $p |- ( ( A e. NN0 /\ B e. NN /\ A < ( 2 x. B ) )
                      -> ( A mod B ) = if ( A < B , A , ( A - B ) ) ) $=
    ( clt wbr cn0 wcel cn c2 cmul co w3a wa cr cle 3adant3 adantl eqcomd adantr
    wceq eqtrd cmo cmin cif wi crp cc0 nn0re nnrp nn0ge0 3ad2ant1 anim1i ancoms
    anim12i modid syl2anc iftrue ex wn wb lenlt syl2anr biimpar simpl3 syl12anc
    nnre 2submod iffalse expcom pm2.61i ) ABCDZAEFZBGFZAHBIJCDZKZABUAJZVJAABUBJ
    ZUCZSZUDVJVNVRVJVNLZVOAVQVSAMFZBUEFZLZUFANDZVJLZVOASVNWBVJVKVLWBVMVKVTVLWAA
    UGZBUHUMOZPVNVJWDVNWCVJVKVLWCVMAUIUJUKULABUNUOVJAVQSVNVJVQAVJAVPUPQRTUQVNVJ
    URZVRVNWGLZVOVPVQWHWBBANDZVMVOVPSVNWBWGWFRVNWIWGVKVLWIWGUSZVMVLBMFVTWJVKBVE
    WEBAUTVAOVBVKVLVMWGVCABVFVDWHVQVPWGVQVPSVNVJAVPVGPQTVHVI $.

  $( The sum of an integer modulo a positive integer and another integer minus
     the positive integer equals the sum of the two integers modulo the
     positive integer if the other integer is in the upper part of the range
     between 0 and the positive integer.  (Contributed by AV, 30-Oct-2018.) $)
  modaddmodup $p |- ( ( A e. ZZ /\ M e. NN )
               -> ( B e. ( ( M - ( A mod M ) ) ..^ M )
                    -> ( ( B + ( A mod M ) ) - M ) = ( ( B + A ) mod M ) ) ) $=
    ( cz wcel wa cmo co caddc wceq cr cle wbr clt adantr adantl ad2antlr wi jca
    sylbi cn cmin cfzo c2 cmul elfzoelz zred zmodcl nn0red readdcld ancoms nnrp
    crp cuz cfv w3a elfzo2 eluz2 zre lesubaddd biimpd impancom 3adant1 3ad2ant1
    nnre impcom eluzelz anim12i simpr modlt ltled ltleadd sylc 2timesd breqtrrd
    syl2an nncn exp31 com23 syl imp 3adant2 2submod syl22anc modadd2mod syl3anc
    eqcomd eqtrd ex ) ADEZCUAEZFZBCACGHZUBHZCUCHEZBWMIHZCUBHZBAIHCGHZJWLWOFZWQW
    PCGHZWRWSWPKEZCUMEZCWPLMZWPUDCUEHZNMZWQWTJWOWLXAWOWLFBWMWOBKEZWLWOBBWNCUFUG
    ZOWLWMKEZWOWLWMACUHUIZPUJUKWKXBWJWOCULZQZWOWLXCWOBWNUNUOEZCDEZBCNMZUPZWLXCR
    ZBWNCUQZXLXMXPXNXLWNDEZBDEZWNBLMZUPXPWNBURXSXTXPXRXSWLXTXCXSWLFZXTXCYACWMBW
    LCKEZXSWKYBWJCVEZPZPWLXHXSXIPXSXFWLBUSZOUTVAVBVCTVDTVFWOWLXEWOXOWLXERZXQXLX
    NYFXMXLXNYFXLXSXNYFRWNBVGXSWLXNXEXSWLXNXEYAXNFZWPCCIHZXDNYGXFXHFZYBYBFZFZXN
    WMCLMZFWPYHNMYAYKXNYAYIYJXSXFWLXHYEXIVHWLYJXSWKYJWJWKYBYBYCYCSPPSOYGXNYLYAX
    NVIWLYLXSXNWLWMCXIYDWJAKEZXBWMCNMWKAUSZXJACVJVPVKQSBWMCCVLVMWLXDYHJZXSXNWKY
    OWJWKCCVQVNPQVOVRVSVTWAWBTVFXAXBFXCXEFFWTWQWPCWCWGWDWSYMXFXBWTWRJWLYMWOWJYM
    WKYNOOWOXFWLXGPXKABCWEWFWHWI $.

  $( The sum of an integer modulo a positive integer and another integer equals
     the sum of the two integers modulo the positive integer if the other
     integer is in the lower part of the range between 0 and the positive
     integer.  (Contributed by AV, 30-Oct-2018.) $)
  modaddmodlo $p |- ( ( A e. ZZ /\ M e. NN )
                     -> ( B e. ( 0 ..^ ( M - ( A mod M ) ) )
                          -> ( B + ( A mod M ) ) = ( ( B + A ) mod M ) ) ) $=
    ( cz wcel cn wa cc0 cmo co cmin caddc cr cle wbr clt adantr adantl ad2antlr
    wceq cfzo elfzoelz zred zmodcl nn0red readdcld ancoms nnrp elfzole1 nn0ge0d
    crp addge0d elfzolt2 ltaddsubd mpbird modid syl22anc zre modadd2mod syl3anc
    nnre eqtr3d ex ) ADEZCFEZGZBHCACIJZKJZUAJEZBVGLJZBALJCIJZTVFVIGZVJCIJZVJVKV
    LVJMEZCUKEZHVJNOVJCPOZVMVJTVIVFVNVIVFGBVGVIBMEZVFVIBBHVHUBUCZQVFVGMEZVIVFVG
    ACUDZUEZRUFUGVEVOVDVICUHSZVLBVGVIVQVFVRRZVFVSVIWAQZVIHBNOVFBHVHUIRVFHVGNOVI
    VFVGVTUJQULVLVPBVHPOZVIWEVFBHVHUMRVLBVGCWCWDVECMEVDVICVASUNUOVJCUPUQVLAMEZV
    QVOVMVKTVFWFVIVDWFVEAURQQWCWBABCUSUTVBVC $.

  $( The product of a real number modulo a positive real number and an integer
     equals the product of the real number and the integer modulo the positive
     real number.  (Contributed by Alexander van der Vekens, 17-May-2018.) $)
  modmulmod $p |- ( ( A e. RR /\ B e. ZZ /\ M e. RR+ )
                  -> ( ( ( A mod M ) x. B ) mod M ) = ( ( A x. B ) mod M ) ) $=
    ( cr wcel cz crp w3a cmo co wa wceq cmul modcl simpl 3adant2 3simpc modabs2
    jca modmul1 syl3anc ) ADEZBFEZCGEZHACIJZDEZUBKZUCUDKUECIJUELZUEBMJCIJABMJCI
    JLUBUDUGUCUBUDKUFUBACNUBUDOSPUBUCUDQUBUDUHUCACRPUEABCTUA $.

  $( The product of an integer and a real number modulo a positive real number
     equals the product of the integer and the real number modulo the positive
     real number.  (Contributed by Alexander van der Vekens, 9-Jul-2021.) $)
  modmulmodr $p |- ( ( A e. ZZ /\ B e. RR /\ M e. RR+ )
                  -> ( ( A x. ( B mod M ) ) mod M ) = ( ( A x. B ) mod M ) ) $=
    ( cz wcel cr crp w3a cmo co cc zcn 3ad2ant1 simp2 simp3 modcld recnd oveq1d
    cmul wceq mulcomd modmulmod 3com12 recn anim12ci 3adant3 mulcom syl 3eqtrd
    wa ) ADEZBFEZCGEZHZABCIJZSJZCIJUOASJZCIJZBASJZCIJZABSJZCIJUNUPUQCIUNAUOUKUL
    AKEZUMALZMUNUOUNBCUKULUMNUKULUMOPQUARULUKUMURUTTBACUBUCUNUSVACIUNBKEZVBUJZU
    SVATUKULVEUMUKVBULVDVCBUDUEUFBAUGUHRUI $.

  $( The sum of a real number and the product of a second real number modulo a
     positive real number and an integer equals the sum of the real number and
     the product of the other real number and the integer modulo the positive
     real number.  (Contributed by Alexander van der Vekens, 17-May-2018.) $)
  modaddmulmod $p |- ( ( ( A e. RR /\ B e. RR /\ C e. ZZ ) /\ M e. RR+ )
                       -> ( ( A + ( ( B mod M ) x. C ) ) mod M )
                          = ( ( A + ( B x. C ) ) mod M ) ) $=
    ( cr wcel wa cmo cmul caddc recn adantr modcld 3ad2ant3 addcomd oveq1d wceq
    co cc 3adant1 w3a crp 3ad2ant1 simpl2 simpr recnd zcn mulcld remulcld simpl
    cz zre adantl anim1i simpl3 modmulmod syl3anc remulcl sylan2 modabs2 eqtr4d
    simp1 sylan modadd1 syl211anc modaddmod mulcl syl2an eqtrd 3eqtrd ) AEFZBEF
    ZCUKFZUAZDUBFZGZABDHRZCIRZJRZDHRVRAJRZDHRZBCIRZDHRZAJRDHRZAWBJRZDHRZVPVSVTD
    HVPAVRVNASFZVOVKVLWGVMAKUCZLVPVQCVPVQVPBDVKVLVMVOUDZVNVOUEZMZUFVNCSFZVOVMVK
    WLVLCUGZNLUHOPVPVREFWCEFVKVOGVRDHRZWCDHRZQWAWDQVPVQCWKVNCEFZVOVMVKWPVLCULZN
    LUIVPWBDVNWBEFZVOVLVMWRVKVLVMGBCVLVMUJVMWPVLWQUMUITLWJMVNVKVOVKVLVMVBZUNVPW
    NWCWOVPVLVMVOWNWCQWIVKVLVMVOUOWJBCDUPUQVNWRVOWOWCQVLVMWRVKVMVLWPWRWQBCURUST
    ZWBDUTVCVAVRWCADVDVEVPWDWBAJRZDHRZWFVPWRVKVOWDXBQVNWRVOWTLVNVKVOWSLWJWBADVF
    UQVPXAWEDHVNXAWEQVOVNWBAVLVMWBSFZVKVLBSFWLXCVMBKWMBCVGVHTWHOLPVIVJ $.

  $( Distribute multiplication over a modulo operation.  (Contributed by NM,
     11-Nov-2008.) $)
  moddi $p |- ( ( A e. RR+ /\ B e. RR /\ C e. RR+ )
      -> ( A x. ( B mod C ) ) = ( ( A x. B ) mod ( A x. C ) ) ) $=
    ( crp wcel cr cdiv co cfl cfv cmul cmin cmo cc rpcn 3ad2ant1 3adant1 oveq2d
    wa wceq w3a recn 3ad2ant2 rpre adantl refldivcl remulcld subdid cc0 rpcnne0
    recnd wne 3ad2ant3 divcan5 syl3anc fveq2d rerpdivcl reflcl syl eqtr2d eqtrd
    mulassd modval remulcl sylan 3adant3 rpmulcl 3adant2 syl2anc 3eqtr4d ) ADEZ
    BFEZCDEZUAZABCBCGHZIJZKHZLHZKHZABKHZACKHZVTWAGHZIJZKHZLHZABCMHZKHVTWAMHZVNV
    SVTAVQKHZLHWEVNABVQVKVLANEZVMAOPZVLVKBNEZVMBUBUCZVLVMVQNEVKVLVMSZVQWMCVPVMC
    FEVLCUDUEBCUFUGUKQUHVNWHWDVTLVNWDWAVPKHWHVNWCVPWAKVNWBVOIVNWKCNEZCUIULSZWIA
    UIULSZWBVOTWLVMVKWOVLCUJUMVKVLWPVMAUJPBCAUNUOUPRVNACVPWJVMVKWNVLCOUMVLVMVPN
    EZVKWMVOFEZWQBCUQWRVPVOURUKUSQVBUTRVAVNWFVRAKVLVMWFVRTVKBCVCQRVNVTFEZWADEZW
    GWETVKVLWSVMVKAFEVLWSAUDABVDVEVFVKVMWTVLACVGVHVTWAVCVIVJ $.

  $( Distribute the modulo operation over a subtraction.  (Contributed by NM,
     30-Dec-2008.) $)
  modsubdir $p |- ( ( A e. RR /\ B e. RR /\ C e. RR+ )
            -> ( ( B mod C ) <_ ( A mod C )
                 <-> ( ( A - B ) mod C ) = ( ( A mod C ) - ( B mod C ) ) ) ) $=
    ( cr wcel cc0 cmo co cmin cle wbr wceq 3adant2 3adant1 wa cmul cz cc adantr
    recnd crp w3a modcl subge0d cfl cfv resubcl 3adant3 simp3 rerpdivcl zsubcld
    cdiv flcld modcyc2 syl3anc recn 3ad2ant1 3ad2ant2 adantl refldivcl remulcld
    rpre sub4d 3ad2ant3 subdid oveq2d modval oveq12d oveq1d eqtr3d clt resubcld
    3eqtr4d simpl3 simpr modge0 subge02d mpbid modlt lelttrd modid eqtrd stoic3
    syl22anc breqtrd impbida bitr3d ) ADEZBDEZCUAEZUBZFACGHZBCGHZIHZJKZWMWLJKAB
    IHZCGHZWNLZWKWLWMWHWJWLDEWIACUCMZWIWJWMDEWHBCUCNZUDWKWOWRWKWOOZWQWNCGHZWNWK
    WQXBLWOWKWPCACULHZUEUFZBCULHZUEUFZIHZPHZIHZCGHZWQXBWKWPDEZWJXGQEXJWQLWHWIXK
    WJABUGZUHWHWIWJUIWKXDXFWHWJXDQEWIWHWJOZXCACUJUMMWIWJXFQEWHWIWJOZXEBCUJUMNUK
    WPCXGUNUOWKXIWNCGWKWPCXDPHZCXFPHZIHZIHAXOIHZBXPIHZIHXIWNWKABXOXPWHWIAREWJAU
    PUQWIWHBREWJBUPURWHWJXOREWIXMXOXMCXDWJCDEZWHCVBZUSACUTZVATMWIWJXPREWHXNXPXN
    CXFWJXTWIYAUSBCUTZVATNVCWKXHXQWPIWKCXDXFWKCWJWHXTWIYAVDZTWHWJXDREWIXMXDYBTM
    WIWJXFREWHXNXFYCTNVEVFWKWLXRWMXSIWHWJWLXRLWIACVGMWIWJWMXSLWHBCVGNVHVMVIVJSX
    AWNDEZWJWOWNCVKKZXBWNLWKYEWOWKWLWMWSWTVLZSWHWIWJWOVNWKWOVOWKYFWOWKWNWLCYGWS
    YDWKFWMJKZWNWLJKWIWJYHWHBCVPNWKWLWMWSWTVQVRWHWJWLCVKKWIACVSMVTSWNCWAWDWBWKW
    ROFWQWNJWKFWQJKZWRWHWIXKWJYIXLWPCVPWCSWKWRVOWEWFWG $.

  $( A real number equals the difference of the real number and a positive real
     number modulo the positive real number.  (Contributed by AV,
     3-Nov-2018.) $)
  modeqmodmin $p |- ( ( A e. RR /\ M e. RR+ )
                     -> ( A mod M ) = ( ( A - M ) mod M ) ) $=
    ( cr wcel crp wa cmin co cmo cc0 cle wbr modid0 adantl modge0 eqbrtrd simpl
    wceq wb rpre simpr syl3anc mpbid eqcomd oveq2d modcl recnd subid1d 3eqtr2rd
    modsubdir ) ACDZBEDZFZABGHBIHZABIHZBBIHZGHZUOJGHUOUMUPUOKLZUNUQRZUMUPJUOKUL
    UPJRUKBMNZABOPUMUKBCDZULURUSSUKULQULVAUKBTNUKULUAABBUJUBUCUMJUPUOGUMUPJUTUD
    UEUMUOUMUOABUFUGUHUI $.

  $( A number modulo an irrational multiple of it is nonzero.  (Contributed by
     NM, 11-Nov-2008.) $)
  modirr $p |- ( ( A e. RR /\ B e. RR+ /\ ( A / B ) e. ( RR \ QQ ) )
      -> ( A mod B ) =/= 0 ) $=
    ( cr wcel crp cdiv co cq cdif cmo cc0 wne wn wa eldif wceq adantl recnd syl
    cc cfl cmul cmin modval eqeq1d recn adantr rpre refldivcl remulcld subeq0ad
    cfv eqcom wb rerpdivcl reflcl rpcnne0 divmul2 syl3anc syl5rbbr 3bitrd wi cz
    flidz zq syl6bi sylbid necon3bd adantld syl5bi 3impia ) ACDZBEDZABFGZCHIDZA
    BJGZKLZVOVNCDZVNHDZMZNVLVMNZVQVNCHOWAVTVQVRWAVSVPKWAVPKPZVNUAULZVNPZVSWAWBA
    BWCUBGZUCGZKPAWEPZWDWAVPWFKABUDUEWAAWEVLATDZVMAUFUGZWAWEWABWCVMBCDVLBUHQABU
    IUJRUKWDVNWCPZWAWGVNWCUMWAWHWCTDZBTDBKLNZWJWGUNWIWAVRWKABUOZVRWCVNUPRSVMWLV
    LBUQQAWCBURUSUTVAWAVRWDVSVBWMVRWDVNVCDVSVNVDVNVEVFSVGVHVIVJVK $.

  ${
    $d J i $.  $d K i $.  $d N i $.
    $( For a number within a half-open range of nonnegative integers with one
       excluded integer there is a positive integer so that the number is equal
       to the sum of the positive integer and the excluded integer modulo the
       upper bound of the range.  (Contributed by AV, 19-Mar-2021.) $)
    modfzo0difsn $p |- ( ( J e. ( 0 ..^ N ) /\ K e. ( ( 0 ..^ N ) \ { J } ) )
                         -> E. i e. ( 1 ..^ N ) K = ( ( i + J ) mod N ) ) $=
      ( wbr co wcel wa caddc wceq wi clt wb syl w3a adantr adantl sylbi com12
      cn cle cc0 cfzo csn cdif cv cmo c1 wrex wo cr elfzoelz zred leloe syl2anr
      eldifi cmin cn0 elfzo0 cc nn0cn 3ad2ant1 nncn 3ad2ant2 subadd23d simpl cz
      nn0z znnsub syl2an biimp3a nn0nnaddcl eqeltrd simp2 sublt0d bicomd biimpa
      nnz nn0re resubcl nnre jca ltaddnegr mpbid elfzo1 syl3anbrc exp31 3adant2
      impcom zcnd 3jca ex 3adant3 imp nppcan sylan9eqr oveq1d eqeq2d biimpi a1d
      oveq1 addmodidr eqcomd rspcedvd wne eldifsn eqneqall jaoi sylbid wn ltnle
      nn0ge0 subge02 ancoms simp3 lelttr impancom sylibr zmodidfzoimp pm2.61i
      mpand npcan ) CBUAEZBUBDUCFZGZCYDBUDZUEGZHZCAUFZBIFZDUGFZJZAUHDUCFZUIZKZY
      HYCYNYHYCCBLEZCBJZUJZYNYGCUKGZBUKGZYCYRMYEYGCYDGZYSCYDYFUPZUUACCUBDULZUMN
      ZYEBBUBDULZUMZCBUNUOYRYHYNYPYOYQYPYHYNYPYHHZYLCCDIFZDUGFZJZACBUQFZDIFZYMY
      HYPUULYMGZYGYEYPUUMKZYGUUAYEUUNKZUUBUUACURGZDTGZCDLEZOZUUOCDUSZUUPUURUUOU
      UQYEUUPUURHZUUNYEBURGZUUQBDLEZOZUVAUUNKBDUSZUVDUVAYPUUMUVDUVAHZYPHZUULTGZ
      UUQUULDLEZUUMUVFUVHYPUVFUULCDBUQFZIFZTUVFCBDUVACUTGZUVDUUPUVLUURCVAPQUVDB
      UTGZUVAUVBUUQUVMUVCBVAZVBPUVDDUTGZUVAUUQUVBUVOUVCDVCZVDPVEUVAUUPUVJTGZUVK
      TGUVDUUPUURVFUVBUUQUVCUVQUVBBVGGZDVGGUVCUVQMUUQBVHZDVRBDVIVJVKCUVJVLUOVMP
      UVFUUQYPUVDUUQUVAUVBUUQUVCVNZPPUVGUUKUBLEZUVIUVFYPUWAUVFUWAYPUVFCBUVAYSUV
      DUUPYSUURCVSZPZQUVDYTUVAUVBUUQYTUVCBVSVBZPVOVPVQUVGUUKUKGZDUKGZHZUWAUVIMU
      VFUWGYPUVFUWEUWFUVAYSYTUWEUVDUWCUWDCBVTZUOUVDUWFUVAUUQUVBUWFUVCDWAVDZPWBP
      UUKDWCNWDDUULWEWFWGRSWHRNWIWIUUGYIUULJZHZYKUUICUWKYJUUHDUGUWJUUGYJUULBIFZ
      UUHYIUULBIXAUUGUVLUVMUVOOZUWLUUHJYHUWMYPYEYGUWMYEUVDYGUWMKZUVEUVBUUQUWNUV
      CYGUVBUUQHZUWMYGUUAUWOUWMKUUBUUAUWOUWMUUAUWOHUVLUVMUVOUUAUVLUWOUUACUUCWJZ
      PUWOUVMUUAUVBUVMUUQUVNPQUWOUVOUUAUUQUVOUVBUVPQQWKWLNSWMRWNQCBDWONWPWQWRUU
      GUUSUUJYHUUSYPYGYEUUSYGUUAYEUUSKUUBUUAUUSYEUUAUUSUUTWSWTNWIQUUSUUICCDXBXC
      NXDWLYHYQYNYGYQYNKZYEYGUUACBXEZHUWQCYDBXFUWRUWQUUAYQUWRYNYNCBXGSQRQSXHSXI
      SYCXJZYHYNUWSYHHZYLCCDUGFZJAUUKYMUWTUUKTGZUUQUUKDLEZOZUUKYMGYHUWSUXDYHUWS
      BCLEZUXDYHUXEUWSYEYTYSUXEUWSMYGUUFUUDBCXKVJVPYEYGUXEUXDKZYEUVDYGUXFKUVEYG
      UVDUXFYGUUAUVDUXFKZUUBUUAUUSUXGUUTUUPUURUXGUUQUVAUVDUXEUXDUVAUVDHZUXEHUXB
      UUQUXCUXHUXEUXBUVDUVRCVGGZUXEUXBMUVAUVBUUQUVRUVCUVSVBUUPUXIUURCVHPBCVIUOV
      QUXHUUQUXEUVDUUQUVAUVTQPUXHUXCUXEUVAUVDUXCUUPUVDUURUXCUUPUVDHZUUKCUAEZUUR
      UXCUXJUBBUAEZUXKUVDUXLUUPUVBUUQUXLUVCBXLVBQUUPYSYTUXLUXKMUVDUWBUWDCBXMVJW
      DUXJUWEYSUWFOZUXKUURHUXCKUXJYTYSUWFOZUXMUXJYTYSUWFUVDYTUUPUWDQUUPYSUVDUWB
      PUVDUWFUUPUWIQWKUXNUWEYSUWFYTYSUWEUWFYSYTUWEUWHXNWMYTYSUWFVNYTYSUWFXOWKNU
      UKCDXPNYAXQWNPWKWGWHRNSRWNXIWIDUUKWEXRUWTYIUUKJZHZYKUXACUXPYJCDUGUXOUWTYJ
      UUKBIFZCYIUUKBIXAYHUXQCJZUWSYGUVLUVMUXRYEYGUUAUVLUUBUWPNYEBUUEWJCBYBUOQWP
      WQWRUWTUXACYHUXACJZUWSYGUXSYEYGUUAUXSUUBCDXSNQQXCXDWLXT $.
  $}

  $( The sum of a number within a half-open range of positive integers is an
     element of the corresponding open range of nonnegative integers with one
     excluded integer modulo the excluded integer.  (Contributed by AV,
     19-Mar-2021.) $)
  modsumfzodifsn $p |- ( ( J e. ( 0 ..^ N ) /\ K e. ( 1 ..^ N ) )
                         -> ( ( K + J ) mod N ) e. ( ( 0 ..^ N ) \ { J } ) ) $=
    ( caddc co clt wbr cc0 wcel wa cr wceq w3a adantr adantl sylbi wne syl cz
    wi cfzo c1 cmo csn cdif crp cle cn0 cn elfzoelz zred nn0re 3ad2ant1 readdcl
    elfzo0 syl2anr nnrp 3ad2ant2 jca sylanb elfzo1 nnnn0 elfzonn0 nn0ge0d simpl
    nn0addcl modid syl2anc simp2 syl3anbrc zcnd nnne0 addneintr2d addid2 eqcomd
    cc 0cnd neeqtrrd eldifsn sylanbrc eqeltrd wn cmin cneg cmul elfzoel2 mulm1d
    oveq2d zaddcl negsub eqtrd oveq1d syl2an ancoms resubcld nnrpd nnre 3adant3
    simp3 lenltd biimprd subge0d sylibrd syl3anc anim12ci simpr jca31 lt2add wb
    imp ltsubadd mpbird jctird ex syl5bi 3adant2 impcom neg1z modcyc syl2an23an
    zsubcld sylbird elnn0z expcom com12 3jca subcl ltned subne0d addsub 3netr4d
    a1i nncn pm2.61ian ) BADEZCFGZAHCUAEZIZBUBCUAEIZJZYOCUCEZYQAUDUEZIYPYTJZUUA
    YOUUBUUCYOKIZCUFIZJZHYOUGGZYPJUUAYOLYTUUFYPYRAUHIZCUIIZACFGZMZYSUUFACUOZUUK
    YSJUUDUUEYSBKIZAKIZUUDUUKYSBBUBCUJZUKZUUHUUIUUNUUJAULZUMBAUNZUPUUKUUEYSUUIU
    UHUUEUUJCUQURZNUSUTOUUCUUGYPUUCYOYTYOUHIZYPYSBUHIZUUHUUTYRYSBUIIZUUIBCFGZMZ
    UVACBVAZUVBUUIUVAUVCBVBUMPACVCBAVFUPOZVDYPYTVEZUSYOCVGVHUUCYOYQIZYOAQYOUUBI
    UUCUUTUUIYPUVHUVFYTUUIYPYRUUIYSYRUUKUUIUULUUHUUIUUJVIZPNZOUVGYOCUOVJUUCYOHA
    DEZAYTYOUVKQYPYTBHAYSBVPIZYRYSBUUOVKZOZYTVQYRAVPIZYSYRAAHCUJZVKNZYSBHQZYRYS
    UVDUVRUVEUVBUUIUVRUVCBVLUMPOVMOUUCUVOAUVKLYTUVOYPUVQOUVOUVKAAVNZVORVRYOYQAV
    SVTWAYPWBZYTJZUUAYOCWCEZUUBUWAUWBUUAUWAUWBYOUBWDZCWEEZDEZCUCEZUUAUWAUWFUWBU
    WAUWFUWBCUCEZUWBUWAUWEUWBCUCUWAUWEYOCWDZDEZUWBUWAUWDUWHYODUWACYTCVPIZUVTYRU
    WJYSYRCAHCWFZVKNZOWGWHUWAYOVPIZUWJJZUWIUWBLYTUWNUVTYTUWMUWJYTYOYSBSIZASIZYO
    SIZYRUUOUVPBAWIZUPZVKUWLUSOYOCWJRWKWLUWAUWBKIZUUEJHUWBUGGZUWBCFGZJZJUWGUWBL
    UWAUWTUUEUXCYTUWTUVTYTYOCYSYRUUDYSYRJYOYSUWOUWPUWQYRUUOUVPUWRWMUKWNZYRCKIZY
    SYRCUWKUKNZWOOYTUUEUVTYRUUEYSYRUUKUUEUULUUKCUVIWPPNOYTUVTUXCYRYSUVTUXCTZYRU
    UKYSUXGTZUULUUHUUJUXHUUIYSUVDUUHUUJJZUXGUVEUXIUVDUXGUXIUVDJZUVTUXAUXBUXJUUM
    UUNUXEUVTUXATZUVDUUMUXIUVBUUIUUMUVCBWQUMZOUXIUUNUVDUUHUUNUUJUUQNZNUVDUXEUXI
    UUIUVBUXEUVCCWQZUROZUUMUUNUXEMZUVTCYOUGGZUXAUXPUXQUVTUXPCYOUUMUUNUXEWSZUUMU
    UNUUDUXEUURWRZWTZXAUXPYOCUXSUXRXBZXCXDUXJUXBYOCCDEFGZUXJUUMUUNJZUXEUXEJZJZU
    VCUUJJZJZUYBUXJUYCUYDUYFUXIUUNUVDUUMUXMUXLXEUVDUYDUXIUUIUVBUYDUVCUUIUXEUXEU
    XNUXNUSUROUXIUUJUVDUVCUUHUUJXFUVBUUIUVCWSZXEXGZUYEUYFUYBBACCXHXJZRUXJUUDUXE
    UXEUXBUYBXIZUVDUUMUUNUUDUXIUXLUXMUURUPUXOUXOYOCCXKZXDXLXMXNXOXPPXJXQXGUWBCV
    GRWKVOYTUUDUUEUVTUWCSIZUWFUUALUXDYRUUEYSYRUUKUUEUULUUSPNUYMUWAXRYLYOCUWCXSX
    TWKVOUWAUWBYQIZUWBAQUWBUUBIUWAUWBUHIZUUIUXBUYNUWAUWBSIZUXAUYOYTUYPUVTYTYOCU
    WSYRCSIYSUWKNYAOYTUVTUXAYTUUMUUNUXEUXKYSUUMYRUUPOYRUUNYSYRAUVPUKNUXFUXPUVTU
    XQUXAUXTUXPUXAUXQUYAXAYBXDXQUWBYCVTYTUUIUVTUVJOYTUXBUVTYTUXBUYBYTUYGUYBYRYS
    UYGYRUUKYSUYGTZUULUUHUUJUYQUUIYSUXIUYGYSUVDUXIUYGTUVEUXIUVDUYGUYIYDPYEXPPXJ
    UYJRYTUUDUXEUXEMZUYKYRYSUYRYRUUKYSUYRTZUULUUHUUIUYSUUJUUHUUIJZYSUYRUYTYSJUU
    DUXEUXEYSUUMUUNUUDUYTUUPUUHUUNUUIUUQNUURUPUYTUXEYSUUIUXEUUHUXNONZVUAYFXNWRP
    XJUYLRXLOUWBCUOVJUWABCWCEZADEZUVKUWBAUWAVUBHAYTVUBVPIZUVTYSVUDYRYSUVDVUDUVE
    UVBUUIVUDUVCUVBUVLUWJVUDUUIBYMCYMBCYGWMWRPOOUWAVQYTUVOUVTUVQOZYTVUBHQZUVTYS
    VUFYRYSBCUVMYSCBUBCWFVKYSUVDBCQUVEUVDBCUXLUYHYHPYIOOVMUWAUVLUVOUWJMZUWBVUCL
    YTVUGUVTYTUVLUVOUWJUVNUVQUWLYFOBACYJRUWAUVKAUWAUVOUVKALVUEUVSRVOYKUWBYQAVSV
    TWAYN $.

  $( Two nonnegative integers less than the modulus are equal iff they are
     equal modulo the modulus.  (Contributed by AV, 14-Mar-2021.) $)
  modlteq $p |- ( ( I e. ( 0 ..^ N ) /\ J e. ( 0 ..^ N ) )
                  -> ( ( I mod N ) = ( J mod N ) <-> I = J ) ) $=
    ( cc0 cfzo co wcel cmo zmodidfzoimp eqeqan12d ) ADCEFZGBKGACHFABCHFBACIBCIJ
    $.

  ${
    $d I k $.  $d J k $.  $d N k $.
    $( Two nonnegative integers less than the modulus are equal iff the sums of
       these integer with another integer are equal modulo the modulus.  A much
       shorter proof exists if the "divides" relation ` || ` can be used, see
       ~ addmodlteqALT .  (Contributed by AV, 20-Mar-2021.) $)
    addmodlteq $p |- ( ( I e. ( 0 ..^ N ) /\ J e. ( 0 ..^ N ) /\ S e. ZZ )
                -> ( ( ( I + S ) mod N ) = ( ( J + S ) mod N ) <-> I = J ) ) $=
      ( cc0 co wcel cz caddc cmo wceq cr clt wbr wa wi adantr adantl c1 cle w3a
      vk cfzo crp elfzoelz 3ad2ant1 simp3 cn0 cn elfzo0 simp2bi nnrpd modaddmod
      zred syl3anc eqcomd 3ad2ant2 eqeq12d cmin cc nn0re nnrp anim12i modcl syl
      3adant3 sylbi readdcld recnd syl2anc subeq0ad oveq1 modsubmodmod pnpcan2d
      zcnd oveq1d eqtrd 0mod zmodidfzoimp oveq12d eqeq1d cdiv wb zsubcl mod0 cv
      syl2an cmul wrex zdiv syl2an2r oveq2 elfzoel2 mul01d subeq0 biimpd syl5bi
      sylan9eq eqcom sylbid ex wn cneg subfzo0 w3o elz pm2.24 a1d breq1 mulid1d
      2a1d nncn breq2d nnre 1red ltmul2d nnge1 lenltd pm2.21 syl6bi mpd sylbird
      com13 a1dd syl6bir com15 com12 breq2 remulcl possumd oveq2d adddid eqtr4d
      simpr recn 1cnd peano2re remulcld 0red impcom wo nnnn0 nn0ge0d id addcomd
      subnegd renegcl suble0d eqbrtrd sylan olcd mulle0b mpbird lensymd pm2.21d
      biimparc com14 3jaoi pm2.61i rexlimdva syl5 impbid1 ) BEDUCFZGZCUVCGZAHGZ
      UAZBAIFZDJFZCAIFZDJFZKZBCKZUVGUVLBDJFZAIFZDJFZCDJFZAIFZDJFZKZUVMUVGUVIUVP
      UVKUVSUVGUVPUVIUVGBLGZALGZDUDGZUVPUVIKUVDUVEUWAUVFUVDBBEDUEZUNUFUVGAUVDUV
      EUVFUGZUNZUVDUVEUWCUVFUVDDUVDBUHGZDUIGZBDMNZBDUJZUKZULZUFZBADUMUOUPUVGUVS
      UVKUVGCLGZUWBUWCUVSUVKKUVEUVDUWNUVFUVECCEDUEZUNUQUWFUWMCADUMUOUPURUVGUVTU
      VPUVSUSFZEKZUVMUVGUVPUVSUVGUVOLGZUWCUVPUTGUVGUVNAUVDUVEUVNLGZUVFUVDUWGUWH
      UWIUAZUWSUWJUWTUWAUWCOZUWSUWGUWHUXAUWIUWGUWAUWHUWCBVADVBZVCVFBDVDVEVGZUFU
      WFVHZUWMUWRUWCOUVPUVODVDVIVJUVGUVRLGZUWCUVSUTGUVGUVQAUVEUVDUVQLGZUVFUVECU
      HGZUWHCDMNZUAZUXFCDUJZUXIUWNUWCOZUXFUXGUWHUXKUXHUXGUWNUWHUWCCVAUXBVCVFCDV
      DVEVGZUQUWFVHZUWMUXEUWCOUVSUVRDVDVIVJVKUWQUWPDJFZEDJFZKZUVGUVMUWPEDJVLUVG
      UXPUVNUVQUSFZDJFZEKZUVMUVGUXNUXRUXOEUVGUXNUVOUVRUSFZDJFZUXRUVGUWRUXEUWCUX
      NUYAKUXDUXMUWMUVOUVRDVMUOUVGUXTUXQDJUVGUVNUVQAUVDUVEUVNUTGUVFUVDUVNUXCVIU
      FUVEUVDUVQUTGUVFUVEUVQUXLVIUQUVGAUWEVOVNVPVQUVEUVDUXOEKZUVFUVEUWCUYBUVEDU
      VEUXGUWHUXHUXJUKULDVRVEUQURUVGUXSBCUSFZDJFZEKZUVMUVGUXRUYDEUVGUXQUYCDJUVG
      UVNBUVQCUSUVDUVEUVNBKUVFBDVSUFUVEUVDUVQCKUVFCDVSUQVTVPWAUVDUVEUYEUVMPUVFU
      VDUVEOZUYEUYCDWBFHGZUVMUYFUYCLGUWCUYEUYGWCUYFUYCUVDBHGCHGUYCHGZUVEUWDUWOB
      CWDWGZUNUVDUWCUVEUWLQUYCDWEVJUYFUYGDUBWFZWHFZUYCKZUBHWIZUVMUVDUWHUVEUYHUY
      MUYGWCUWKUYIUBDUYCWJWKUYFUYLUVMUBHUYJEKZUYFUYJHGZOZUYLUVMPZPUYNUYPUYQUYNU
      YPOZUYLEUYCKZUVMUYRUYKEUYCUYNUYPUYKDEWHFZEUYJEDWHWLUYFUYTEKZUYOUVDVUAUVEU
      VDDUVDDBEDWMVOWNQQWRWAUYPUYSUVMPZUYNUYFVUBUYOUYSUYCEKZUYFUVMEUYCWSUYFVUCU
      VMUVDBUTGCUTGVUCUVMWCUVEUVDBUWDVOUVECUWOVOBCWOWGWPWQQRWTXAUYPUYNXBZUYQUYP
      DXCZUYCMNZUYCDMNZOZVUDUYQPZUYFVUHUYOBCDXDQUYOUYFVUHVUIPZUYOUYJLGZUYNUYJUI
      GZUYJXCZUIGZXEZOUYFVUJPZUYJXFVUOVUKVUPUYNVUKVUPPVULVUNUYNVUJVUKUYFUYNVUIV
      UHUYNUYQXGXHXKVULVUPVUKVUHUYFVULVUIVUGUYFVULVUIPZPVUFUYFVUGVUQUYLVUGVULVU
      DUYFUVMUYLVUGUYKDMNZVULVUDUYFUVMPZPZPUYKUYCDMXIVURVULVUSVUDUYFVULVURUVMUV
      EVULVURUVMPZPZUVDUVEUXIVVBUXJUWHUXGVVBUXHUWHVULVVAUWHVULOZVURUYKDSWHFZMNZ
      UVMVVCDVVDUYKMVVCVVDDUWHVVDDKVULUWHDDXLZXJQUPXMVVCVVEUYJSMNZUVMVVCUYJSDVU
      LVUKUWHUYJXNZRVVCXOUWHUWCVULUXBQXPVULVVGUVMPZUWHVULSUYJTNZVVIUYJXQVULVVJV
      VGXBVVIVULSUYJVULXOVVHXRVVGUVMXSXTYARYBWTXAUQVGRYCYDYEYFYGRYCXHVUNVUKVUPV
      UHUYFVUNVUKOZVUIVUFUYFVVKVUIPZPVUGUYFVUFVVLUYLVUFVVKVUDUYFUVMUYLVUFVUEUYK
      MNZVVKVUTPUYKUYCVUEMYHUYFVVKVUDVVMUVMUVDVVKVUDVVMUVMPZPZPZUVEUVDUWTVVPUWJ
      UWHUWGVVPUWIUWHVVKVVOUWHVVKOZVVNVUDVVQVVMEUYKDIFZMNZUVMVVQUYKDUWHDLGZVUKU
      YKLGVVKDXNZVUNVUKYNDUYJYIWGUWHVVTVVKVWAQZYJVVQVVSEDUYJSIFZWHFZMNZUVMVVQVV
      RVWDEMVVQVVRUYKVVDIFVWDVVQDVVDUYKIVVQVVDDVVQDUWHDUTGVVKVVFQZXJUPYKVVQDUYJ
      SVWFVVKUYJUTGZUWHVUKVWGVUNUYJYOZRRVVQYPYLYMXMVVQVWEUVMVVQVWDEVVQDVWCVWBVV
      KVWCLGZUWHVUKVWIVUNUYJYQRZRYRVVQYSVVQVWDETNZDETNEVWCTNOZEDTNZVWCETNZOZUUA
      ZVVQVWOVWLUWHVWMVVKVWNUWHDDUUBUUCVUNSVUMTNZVUKVWNVUMXQVWQVUKOVWCSVUMUSFZE
      TVUKVWCVWRKZVWQVUKVWGVWSVWHVWGVWCSUYJIFVWRVWGUYJSVWGUUDZVWGYPZUUEVWGSUYJV
      XAVWTUUFYMVERVUKVWRETNVWQVUKSVUMVUKXOUYJUUGUUHUUPUUIUUJVCUUKUWHVVTVWIVWKV
      WPWCVVKVWAVWJDVWCUULWGUUMUUNUUOWTYBXHXAUQVGQUUQYEYFYGQYCXAUURYTVGYTYAYGUU
      SUUTYBWTVFWTWTUVAYBWTUVMUVHUVJDJBCAIVLVPUVB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Miscellaneous theorems about integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d y z A $.  $d w z B $.  $d v w x y z C $.  $d v w y z G $.
    om2uz.1 $e |- C e. ZZ $.
    om2uz.2 $e |- G = ( rec ( ( x e. _V |-> ( x + 1 ) ) , C ) |` _om ) $.
    $( The mapping ` G ` is a one-to-one mapping from ` _om ` onto upper
       integers that will be used to construct a recursive definition
       generator.  Ordinal natural number 0 maps to complex number ` C `
       (normally 0 for the upper integers ` NN0 ` or 1 for the upper integers
       ` NN ` ), 1 maps to ` C ` + 1, etc.  This theorem shows the value of
       ` G ` at ordinal natural number zero.  (This series of theorems
       generalizes an earlier series for ` NN0 ` contributed by Raph Levien,
       10-Apr-2004.)  (Contributed by NM, 3-Oct-2004.)  (Revised by Mario
       Carneiro, 13-Sep-2013.) $)
    om2uz0i $p |- ( G ` (/) ) = C $=
      ( c0 cfv cvv cv c1 caddc co cmpt crdg com cres fveq1i cz wcel wceq ax-mp
      fr0g eqtri ) FCGFAHAIJKLMZBNOPZGZBFCUEEQBRSUFBTDBRUDUBUAUC $.

    $( The value of ` G ` (see ~ om2uz0i ) at a successor.  (Contributed by NM,
       3-Oct-2004.)  (Revised by Mario Carneiro, 13-Sep-2013.) $)
    om2uzsuci $p |- ( A e. _om -> ( G ` suc A ) = ( ( G ` A ) + 1 ) ) $=
      ( vz vy cv csuc cfv c1 caddc co wceq com suceq wcel cvv oveq1 fveq2d ovex
      fveq2 oveq1d eqeq12d frsucmpt2 mpan2 vtoclga ) GIZJZDKZUIDKZLMNZOZBJZDKZB
      DKZLMNZOGBPUIBOZUKUPUMURUSUJUODUIBQUAUSULUQLMUIBDUCUDUEUIPRUMSRUNULLMUBAH
      CUIAIZLMNUMHIZLMNDSFVAUTLMTVAULLMTUFUGUH $.

    $( The value ` G ` (see ~ om2uz0i ) at an ordinal natural number is in the
       upper integers.  (Contributed by NM, 3-Oct-2004.)  (Revised by Mario
       Carneiro, 13-Sep-2013.) $)
    om2uzuzi $p |- ( A e. _om -> ( G ` A ) e. ( ZZ>= ` C ) ) $=
      ( vy vz cv cfv cuz wcel c0 csuc wceq fveq2 eleq1d om2uz0i cz uzid eqeltri
      ax-mp com c1 caddc co peano2uz om2uzsuci syl5ibr finds ) GIZDJZCKJZLMDJZU
      MLHIZDJZUMLZUONZDJZUMLZBDJZUMLGHBUKMOULUNUMUKMDPQUKUOOULUPUMUKUODPQUKUROU
      LUSUMUKURDPQUKBOULVAUMUKBDPQUNCUMACDEFRCSLCUMLECTUBUAUQUTUOUCLZUPUDUEUFZU
      MLCUPUGVBUSVCUMAUOCDEFUHQUIUJ $.

    $( Less-than relation for ` G ` (see ~ om2uz0i ).  (Contributed by NM,
       3-Oct-2004.)  (Revised by Mario Carneiro, 13-Sep-2013.) $)
    om2uzlti $p |- ( ( A e. _om /\ B e. _om ) ->
                   ( A e. B -> ( G ` A ) < ( G ` B ) ) ) $=
      ( com wcel cfv clt wbr wi c0 wceq eleq2 fveq2 breq2d imbi12d imbi2d vz vy
      cv csuc pm2.21i a1i wo wa id orim12d wb elsuc2g bicomd adantl c1 caddc co
      noel cle om2uzsuci cuz om2uzuzi cz eluzelz zleltp1 syl2an cr syl 3bitr2rd
      zred leloe syl5ib expcom a2d finds impcom ) CHIBHIZBCIZBEJZCEJZKLZMZVQBUA
      UCZIZVSWCEJZKLZMZMVQBNIZVSNEJZKLZMZMVQBUBUCZIZVSWLEJZKLZMZMVQBWLUDZIZVSWQ
      EJZKLZMZMVQWBMUAUBCWCNOZWGWKVQXBWDWHWFWJWCNBPXBWEWIVSKWCNEQRSTWCWLOZWGWPV
      QXCWDWMWFWOWCWLBPXCWEWNVSKWCWLEQRSTWCWQOZWGXAVQXDWDWRWFWTWCWQBPXDWEWSVSKW
      CWQEQRSTWCCOZWGWBVQXEWDVRWFWAWCCBPXEWEVTVSKWCCEQRSTWKVQWHWJBURUEUFWLHIZVQ
      WPXAVQXFWPXAMWPWMBWLOZUGZWOVSWNOZUGZMVQXFUHZXAWPWMWOXGXIWPUIXGXIMWPBWLEQU
      FUJXKXHWRXJWTXFXHWRUKVQXFWRXHBWLHULUMUNXKWTVSWNUOUPUQZKLZVSWNUSLZXJXFWTXM
      UKVQXFWSXLVSKAWLDEFGUTRUNVQVSDVAJZIZWNXOIZXNXMUKZXFABDEFGVBZAWLDEFGVBZXPV
      SVCIZWNVCIZXRXQDVSVDZDWNVDZVSWNVEVFVFVQVSVGIWNVGIXNXJUKXFVQVSVQXPYAXSYCVH
      VJXFWNXFXQYBXTYDVHVJVSWNVKVFVISVLVMVNVOVP $.

    $( The mapping ` G ` (see ~ om2uz0i ) preserves order.  (Contributed by NM,
       4-May-2005.)  (Revised by Mario Carneiro, 13-Sep-2013.) $)
    om2uzlt2i $p |- ( ( A e. _om /\ B e. _om ) ->
                   ( A e. B <-> ( G ` A ) < ( G ` B ) ) ) $=
      ( com wcel wa cfv clt wbr om2uzlti wceq wo wn wi con0 wb fveq2 a1i ancoms
      orim12d nnon wss onsseleq ontri1 bitr3d syl2anr cuz om2uzuzi eluzelre syl
      cr cle leloe lenlt 3imtr3d impcon4bid ) BHIZCHIZJZBCIZBEKZCEKZLMZABCDEFGN
      VCCBIZCBOZPZVFVELMZVFVEOZPZVDQZVGQZVBVAVJVMRVBVAJZVHVKVIVLACBDEFGNVIVLRVP
      CBEUAUBUDUCVBCSIZBSIZVJVNTVACUEBUEVQVRJCBUFVJVNCBUGCBUHUIUJVBVFUOIZVEUOIZ
      VMVOTVAVBVFDUKKZIVSACDEFGULDVFUMUNVAVEWAIVTABDEFGULDVEUMUNVSVTJVFVEUPMVMV
      OVFVEUQVFVEURUIUJUSUT $.

    $( Range of ` G ` (see ~ om2uz0i ).  (Contributed by NM, 3-Oct-2004.)
       (Revised by Mario Carneiro, 13-Sep-2013.) $)
    om2uzrani $p |- ran G = ( ZZ>= ` C ) $=
      ( vy vz crn cfv cv wcel com wfn c1 caddc co eleq1 sylbi c0 fnfvelrn mpbir
      cuz wceq wrex wb cvv cmpt crdg cres frfnom fneq1i fvelrnb ax-mp syl5ibcom
      om2uzuzi rexlimiv om2uz0i peano1 mp2an eqeltrri wi wa csuc oveq1 sylan9eq
      om2uzsuci peano2 sylancr adantr eqeltrrd rexlimiva uzind4i impbii eqriv
      a1i ) FCHZBUBIZFJZVPKZVRVQKZVSGJZCIZVRUCZGLUDZVTCLMZVSWDUEWEAUFAJNOPUGZBU
      HLUIZLMBWFUJLCWGEUKUAZGLVRCULUMZWCVTGLWALKZWBVQKWCVTAWABCDEUOWBVRVQQUNUPR
      WAVPKBVPKVSVRNOPZVPKZVSGFBVRDWABVPQWAVRVPQZWAWKVPQWMSCIZBVPABCDEUQWESLKWN
      VPKWHURLSCTUSUTVSWLVAVTVSWDWLWIWCWLGLWJWCVBWAVCZCIZWKVPWJWCWPWBNOPWKAWABC
      DEVFWBVRNOVDVEWJWPVPKZWCWJWEWOLKWQWHWAVGLWOCTVHVIVJVKRVOVLVMVN $.

    $( ` G ` (see ~ om2uz0i ) is a one-to-one onto mapping.  (Contributed by
       NM, 3-Oct-2004.)  (Revised by Mario Carneiro, 13-Sep-2013.) $)
    om2uzf1oi $p |- G : _om -1-1-onto-> ( ZZ>= ` C ) $=
      ( vy vz com cfv wceq cv wi wral wfn mpbir2an wcel wa clt wbr wn cuz wf c1
      wf1o wf1 crn wss cvv caddc cmpt crdg cres frfnom fneq1i om2uzrani eqimssi
      co mpbir df-f wo cr wb cz om2uzuzi eluzelz syl zred lttri3 syl2an syl6bbr
      ioran nnord ordtri3 con2bid om2uzlti ancoms orim12d sylbird sylbid rgen2a
      word con1d dff13 dff1o5 ) HBUAIZCUDHWECUEZCUFZWEJWFHWECUBZFKZCIZGKZCIZJZW
      IWKJZLZGHMFHMWHCHNZWGWEUGWPAUHAKUCUIUQUJZBUKHULZHNBWQUMHCWREUNURWGWEABCDE
      UOZUPHWECUSOWOFGHWIHPZWKHPZQZWMWJWLRSZWLWJRSZUTZTZWNXBWMXCTXDTQZXFWTWJVAP
      WLVAPWMXGVBXAWTWJWTWJWEPWJVCPAWIBCDEVDBWJVEVFVGXAWLXAWLWEPWLVCPAWKBCDEVDB
      WLVEVFVGWJWLVHVIXCXDVKVJXBWNXEXBWNTWIWKPZWKWIPZUTZXEXBWNXJWTWIWAWKWAWNXJT
      VBXAWIVLWKVLWIWKVMVIVNXBXHXCXIXDAWIWKBCDEVOXAWTXIXDLAWKWIBCDEVOVPVQVRWBVS
      VTFGHWECWCOWSHWECWDO $.

    $( ` G ` (see ~ om2uz0i ) is an isomorphism from natural ordinals to upper
       integers.  (Contributed by NM, 9-Oct-2008.)  (Revised by Mario Carneiro,
       13-Sep-2013.) $)
    om2uzisoi $p |- G Isom _E , < ( _om , ( ZZ>= ` C ) ) $=
      ( vy vz com cuz cfv cep clt wiso wf1o cv wbr wb wral om2uzf1oi wcel epel
      wa om2uzlt2i syl5bb rgen2a df-isom mpbir2an ) HBIJZKLCMHUHCNFOZGOZKPZUICJ
      UJCJLPZQZGHRFHRABCDESUMFGHUKUIUJTUIHTUJHTUBULFGUAAUIUJBCDEUCUDUEFGHUHKLCU
      FUG $.

    $( An alternative definition of ` G ` in terms of ~ df-oi .  (Contributed
       by Mario Carneiro, 2-Jun-2015.) $)
    om2uzoi $p |- G = OrdIso ( < , ( ZZ>= ` C ) ) $=
      ( com cuz cfv clt coi cdm wceq cep wa ordom wwe wb ax-mp mpbi cvv pm3.2i
      word wiso om2uzisoi wse ordwe isowe wcel fvex exse eqid oieu mp2an simpri
      ) FBGHZIJZKLZCUPLZFUBZFUOMICUCZNZUQURNZUSUTOABCDEUDZUAUOIPZUOIUEZVAVBQFMP
      ZVDUSVFOFUFRUTVFVDQVCFUOMICUGRSUOTUHVEBGUIUOITUJRUOFIUPCUPUKULUMSUN $.

    $d w x y z F $.  $d v w z R $.
    uzrdg.1 $e |- A e. _V $.
    uzrdg.2 $e |- R = ( rec ( ( x e. _V , y e. _V |->
      <. ( x + 1 ) , ( x F y ) >. ) , <. C , A >. ) |` _om ) $.
    $( A helper lemma for the value of a recursive definition generator on
       upper integers (typically either ` NN ` or ` NN0 ` ) with characteristic
       function ` F ( x , y ) ` and initial value ` A ` .  Normally ` F ` is a
       function on the partition, and ` A ` is a member of the partition.  See
       also comment in ~ om2uz0i .  (Contributed by Mario Carneiro,
       26-Jun-2013.)  (Revised by Mario Carneiro, 18-Nov-2014.) $)
    om2uzrdg $p |- ( B e. _om -> ( R ` B ) =
        <. ( G ` B ) , ( 2nd ` ( R ` B ) ) >. ) $=
      ( cfv c2nd cop wceq c0 fveq2 cvv co vz vv vw cv fveq2d opeq12d eqeq12d c1
      csuc caddc cmpt2 crdg com cres fveq1i wcel opex fr0g ax-mp om2uz0i fveq2i
      eqtri cz elexi op2nd opeq12i eqtr4i frsuc 3eqtr4g df-ov fvex oveq1 opeq2d
      wa oveq2 cbvmpt2v ovmpt2 mp2an eqtr3i syl6eq om2uzsuci adantr ovex eqtr4d
      sylan9eq ex finds ) UAUDZFMZWHHMZWINMZOZPQFMZQHMZWMNMZOZPUBUDZFMZWQHMZWRN
      MZOZPZWQUIZFMZXCHMZXDNMZOZPZDFMZDHMZXINMZOZPUAUBDWHQPZWIWMWLWPWHQFRZXMWJW
      NWKWOWHQHRXMWIWMNXNUEUFUGWHWQPZWIWRWLXAWHWQFRZXOWJWSWKWTWHWQHRXOWIWRNXPUE
      UFUGWHXCPZWIXDWLXGWHXCFRZXQWJXEWKXFWHXCHRXQWIXDNXRUEUFUGWHDPZWIXIWLXLWHDF
      RZXSWJXJWKXKWHDHRXSWIXINXTUEUFUGWMECOZWPWMQABSSAUDZUHUJTZYBBUDZGTZOZUKZYA
      ULUMUNZMZYAQFYHLUOYASUPYIYAPECUQYASYGURUSVBZWNEWOCAEHIJUTWOYANMCWMYANYJVA
      ECEVCIVDKVEVBVFVGWQUMUPZXBXHYKXBVNZXDWSUHUJTZWSWTGTZOZXGYKXBXDWRYGMZYOYKX
      CYHMWQYHMZYGMXDYPYAWQYGVHXCFYHLUOWRYQYGWQFYHLUOVAVIXBYPXAYGMZYOWRXAYGRWSW
      TYGTZYRYOWSWTYGVJWSSUPWTSUPYSYOPWQHVKWRNVKUCUAWSWTSSUCUDZUHUJTZYTWHGTZOZY
      OYGYMWSWHGTZOYTWSPUUAYMUUBUUDYTWSUHUJVLYTWSWHGVLUFWHWTPUUDYNYMWHWTWSGVOVM
      ABUCUASSYFUUCUUAYTYDGTZOYBYTPYCUUAYEUUEYBYTUHUJVLYBYTYDGVLUFYDWHPUUEUUBUU
      AYDWHYTGVOVMVPYMYNUQVQVRVSVTWEZYLXEYMXFYNYKXEYMPXBAWQEHIJWAWBYLXFYONMYNYL
      XDYONUUFUEYMYNWSUHUJWCWSWTGWCVEVTUFWDWFWG $.

    $( A helper lemma for the value of a recursive definition generator on
       upper integers.  (Contributed by Mario Carneiro, 26-Jun-2013.)  (Revised
       by Mario Carneiro, 18-Nov-2014.) $)
    uzrdglem $p |- ( B e. ( ZZ>= ` C ) ->
        <. B , ( 2nd ` ( R ` ( `' G ` B ) ) ) >. e. ran R ) $=
      ( cfv wcel cop com wceq mpan wfn cvv cuz ccnv c2nd crn om2uzf1oi f1ocnvdm
      wf1o om2uzrdg syl f1ocnvfv2 opeq1d eqtrd cv c1 caddc co cmpt2 crdg frfnom
      cres fneq1i mpbir fnfvelrn sylancr eqeltrrd ) DEUAMZNZDHUBMZFMZDVIUCMZOZF
      UDZVGVIVHHMZVJOZVKVGVHPNZVIVNQPVFHUGZVGVOAEHIJUEZPVFDHUFRZABCVHEFGHIJKLUH
      UIVGVMDVJVPVGVMDQVQPVFDHUJRUKULVGFPSZVOVIVLNVSABTTAUMZUNUOUPVTBUMGUPOUQZE
      COZURPUTZPSWBWAUSPFWCLVAVBVRPVHFVCVDVE $.

    $d v w z S $.
    uzrdg.3 $e |- S = ran R $.
    $( The recursive definition generator on upper integers is a function.  See
       comment in ~ om2uzrdg .  (Contributed by Mario Carneiro, 26-Jun-2013.)
       (Revised by Mario Carneiro, 4-May-2015.) $)
    uzrdgfni $p |- S Fn ( ZZ>= ` C ) $=
      ( vz vw cfv wceq wcel cvv com vv cuz wfn wfun cdm wrel cv cop wal wex cxp
      wi wss wrex crn eleq2i wb c1 caddc co cmpt2 crdg cres frfnom fneq1i mpbir
      fvelrnb ax-mp bitri c2nd om2uzrdg om2uzuzi fvex opelxpi sylancl syl5ibcom
      eqeltrd eleq1 rexlimiv sylbi ssriv sstri df-rel eqeq2 imbi2d albidv spcev
      xpss ccnv wa eqeq1d opth1 syl6bi wf1o om2uzf1oi f1ocnvfv mpan syld fveq2d
      fveq2 syl6 imp op2ndd adantl eqtr2d rexlimiva ax-gen dffun5 mpbir2an dmss
      vex mpg dmxpss uzrdglem syl6eleqr opeldm syl eqssi df-fn ) FDUBPZUCFUDZFU
      EZXTQYAFUFZUAUGZNUGZUHZFRZYEOUGZQZULZNUIZOUJZUAUIYCFSSUKZUMFXTSUKZYMNFYNY
      EFRZYHEPZYEQZOTUNZYEYNRZYOYEEUOZRZYRFYTYEMUPETUCZUUAYRUQUUBABSSAUGZURUSUT
      UUCBUGGUTUHVAZDCUHZVBTVCZTUCUUEUUDVDTEUUFLVEVFZOTYEEVGVHVIYQYSOTYHTRZYPYN
      RYQYSUUHYPYHHPZYPVJPZUHZYNABCYHDEGHIJKLVKZUUHUUIXTRUUJSRUUKYNRAYHDHIJVLYP
      VJVMZUUIUUJXTSVNVOVQYPYEYNVRVPVSVTWAZXTSWHWBFWCVFYLUAYGYEYDHWIPZEPZVJPZQZ
      ULZYLNYKUUSNUIOUUQUUPVJVMZYHUUQQZYJUUSNUVAYIUURYGYHUUQYEWDWEWFWGYGYPYFQZO
      TUNZUURYGYFYTRZUVCFYTYFMUPUUBUVDUVCUQUUGOTYFEVGVHVIUVBUUROTUUHUVBWJUUQUUJ
      YEUUHUVBUUQUUJQZUUHUVBUUOYHQZUVEUUHUVBUUIYDQZUVFUUHUVBUUKYFQUVGUUHYPUUKYF
      UULWKUUIUUJYDYEYHHVMUUMWLWMTXTHWNUUHUVGUVFULADHIJWOTXTYHYDHWPWQWRUVFUUPYP
      VJUUOYHEWTWSXAXBUVBUUJYEQUUHYDYEYPUAXKZNXKXCXDXEXFVTXLXGUANOFXHXIYBXTYBYN
      UEZXTFYNUMYBUVIUMUUNFYNXJVHXTSXMWBUAXTYBYDXTRZYDUUQUHZFRYDYBRUVJUVKYTFABC
      YDDEGHIJKLXNMXOYDUUQFUVHUUTXPXQWAXRFXTXSXI $.

    $( Initial value of a recursive definition generator on upper integers.
       See comment in ~ om2uzrdg .  (Contributed by Mario Carneiro,
       26-Jun-2013.)  (Revised by Mario Carneiro, 18-Nov-2014.) $)
    uzrdg0i $p |- ( S ` C ) = A $=
      ( cop wcel cfv wfn c0 cvv com wfun wceq cuz uzrdgfni fnfun ax-mp cv caddc
      c1 co cmpt2 crdg cres fveq1i opex fr0g eqtri frfnom fneq1i mpbir fnfvelrn
      crn peano1 mp2an eqeltrri eleqtrri funopfv mp2 ) FUAZDCNZFODFPCUBFDUCPZQV
      IABCDEFGHIJKLMUDVKFUEUFVJEVBZFREPZVJVLVMRABSSAUGZUIUHUJVNBUGGUJNUKZVJULTU
      MZPZVJREVPLUNVJSOVQVJUBDCUOVJSVOUPUFUQETQZRTOVMVLOVRVPTQVJVOURTEVPLUSUTVC
      TREVAVDVEMVFDCFVGVH $.

    $( Successor value of a recursive definition generator on upper integers.
       See comment in ~ om2uzrdg .  (Contributed by Mario Carneiro,
       26-Jun-2013.)  (Revised by Mario Carneiro, 13-Sep-2013.) $)
    uzrdgsuci $p |- ( B e. ( ZZ>= ` C ) ->
        ( S ` ( B + 1 ) ) = ( B F ( S ` B ) ) ) $=
      ( cfv wcel c1 co cop wceq vz cuz caddc ccnv csuc c2nd wfun uzrdgfni fnfun
      wfn ax-mp crn peano2uz uzrdglem syl syl6eleqr funopfv mpsyl com om2uzf1oi
      vw wf1o f1ocnvdm mpan peano2 om2uzsuci f1ocnvfv2 oveq1d eqtrd wi f1ocnvfv
      sylc fveq2d cv cmpt2 crdg cres frsuc fveq1i fveq2i 3eqtr4g om2uzrdg df-ov
      syl6eqr fvex oveq1 opeq12d oveq2 opeq2d cbvmpt2v opex ovmpt2 mp2an syl6eq
      cvv ovex op2nd eqcomd oveq12d 3eqtrd ) DEUBOZPZDQUCRZGOZDIUDZOZUEZFOZUFOZ
      XFIOZXFFOZUFOZHRZDDGOZHRXBXDXCXEOZFOZUFOZXIGUGZXBXCXQSZGPXDXQTGXAUJXRABCE
      FGHIJKLMNUHXAGUIUKZXBXSFULZGXBXCXAPXSYAPEDUMABCXCEFHIJKLMUNUONUPXCXQGUQUR
      XBXPXHUFXBXOXGFXBXGUSPZXGIOZXCTZXOXGTZXBXFUSPZYBUSXAIVBZXBYFAEIJKUTZUSXAD
      IVCVDZXFVEUOXBYCXJQUCRZXCXBYFYCYJTYIAXFEIJKVFUOXBXJDQUCYGXBXJDTYHUSXADIVG
      VDZVHVIYGYBYDYEVJYHUSXAXGXCIVKVDVLVMVMVIXBYFXIXMTYIYFXIYJXMSZUFOXMYFXHYLU
      FYFXHXJXLABWOWOAVNZQUCRZYMBVNZHRZSZVOZRZYLYFXHXKYROZYSYFXGYRECSZVPUSVQZOX
      FUUBOZYROXHYTUUAXFYRVRXGFUUBMVSXKUUCYRXFFUUBMVSVTWAYFYTXJXLSZYROYSYFXKUUD
      YRABCXFEFHIJKLMWBVMXJXLYRWCWDVIXJWOPXLWOPYSYLTXFIWEXKUFWEUAVAXJXLWOWOUAVN
      ZQUCRZUUEVAVNZHRZSZYLYRYJXJUUGHRZSUUEXJTUUFYJUUHUUJUUEXJQUCWFUUEXJUUGHWFW
      GUUGXLTUUJXMYJUUGXLXJHWHWIABUAVAWOWOYQUUIUUFUUEYOHRZSYMUUETYNUUFYPUUKYMUU
      EQUCWFYMUUEYOHWFWGYOUUGTUUKUUHUUFYOUUGUUEHWHWIWJYJXMWKWLWMWNVMYJXMXJQUCWP
      XJXLHWPWQWNUOXBXJDXLXNHYKXBXNXLXRXBDXLSZGPXNXLTXTXBUULYAGABCDEFHIJKLMUNNU
      PDXLGUQURWRWSWT $.
  $}

  ${
    $d x y A $.
    $( ` < ` is a well-founded relation on any sequence of upper integers.
       (Contributed by Andrew Salmon, 13-Nov-2011.)  (Revised by Mario
       Carneiro, 26-Jun-2015.) $)
    ltweuz $p |- < We ( ZZ>= ` A ) $=
      ( vx vy cuz cdm wcel cfv clt wwe cz com cep cvv cv wiso cc0 wceq wb syl
      c0 word ordom ordwe ax-mp c1 caddc co cmpt crdg cres ccnv cima wal wi cif
      rdgeq2 reseq1d isoeq1 fveq2 isoeq5 0z elimel om2uzisoi dedth2v isocnv cin
      eqid dmres inex1 eqeltri cnvimass ssexi ax-gen isowe2 sylancl mpi cpw uzf
      omex fdmi eleq2s wn we0 ndmfv weeq2 mpbiri pm2.61i ) ADEZFZADGZHIZWKAJWHA
      JFZKLIZWKKUAWMUBKUCUDWLWJKHLBMBNUEUFUGUHZAUIZKUJZUKZOZWQCNZULZMFZCUMWMWKU
      NWLKWJLHWPOZWRWLXBKWJLHWNWLAPUOZUIZKUJZOZKXCDGZLHXEOZAAPPAXCQZWPXEQXBXFRX
      IWOXDKAXCWNUPUQKWJLHXEWPURSXIWJXGQXFXHRAXCDUSKWJXGLHXEUTSBXCXEAPJVAVBXEVG
      VCVDKWJLHWPVESXACWTWPEZXJKWOEZVFMWOKVHKXKVSVIVJWPWSVKVLVMCWJKHLWQVNVOVPJJ
      VQDVRVTWAWIWBZWKTHIZHWCXLWJTQWKXMRADWDWJTHWESWFWG $.
  $}

  $( Less than well-orders the naturals.  (Contributed by Scott Fenton,
     6-Aug-2013.) $)
  ltwenn $p |- < We NN $=
    ( cn clt wwe c1 cuz cfv ltweuz wceq wb nnuz weeq2 ax-mp mpbir ) ABCZDEFZBCZ
    DGAOHNPIJAOBKLM $.

  $( Less than well-orders a set of finite integers.  (Contributed by Scott
     Fenton, 8-Aug-2013.) $)
  ltwefz $p |- < We ( M ... N ) $=
    ( cfz co cuz cfv wss clt wwe fzssuz ltweuz wess mp2 ) ABCDZAEFZGOHINHIABJAK
    NOHLM $.

  ${
    $d x M $.
    uzinf.1 $e |- Z = ( ZZ>= ` M ) $.
    $( An upper integer set is denumerable.  (Contributed by Mario Carneiro,
       15-Oct-2015.) $)
    uzenom $p |- ( M e. ZZ -> Z ~~ _om ) $=
      ( vx cz wcel com cen wbr cc0 cif cuz cfv wceq fveq2 syl5eq breq1d cvv cv
      c1 caddc co cmpt crdg cres wf1o omex fvex 0z eqid om2uzf1oi f1oen2g mp3an
      elimel ensymi dedth ) AEFZBGHIUQAJKZLMZGHIAJAURNZBUSGHUTBALMUSCAURLOPQGUS
      GRFUSRFGUSDRDSTUAUBUCURUDGUEZUFGUSHIUGURLUHDURVAAJEUIUNVAUJUKGUSVARRULUMU
      OUP $.

    $( An upper integer set is infinite.  (Contributed by Mario Carneiro,
       12-Mar-2015.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    uzinf $p |- ( M e. ZZ -> -. Z e. Fin ) $=
      ( cz wcel cfn com ominf cen wbr wb uzenom enfi syl mtbiri ) ADEZBFEZGFEZH
      PBGIJQRKABCLBGMNO $.
  $}

  $( The set of positive integers is infinite.  (Contributed by Glauco
     Siliprandi, 11-Oct-2020.) $)
  nnnfi $p |- -. NN e. Fin $=
    ( c1 cz wcel cn cfn wn 1z nnuz uzinf ax-mp ) ABCDECFGADHIJ $.

  ${
    $d k x y A $.  $d k x y B $.  $d k y G $.  $d k y H $.  $d y N $.
    uzrdgxfr.1 $e |- G = ( rec ( ( x e. _V |-> ( x + 1 ) ) , A ) |` _om ) $.
    uzrdgxfr.2 $e |- H = ( rec ( ( x e. _V |-> ( x + 1 ) ) , B ) |` _om ) $.
    uzrdgxfr.3 $e |- A e. ZZ $.
    uzrdgxfr.4 $e |- B e. ZZ $.
    $( Transfer the value of the recursive sequence builder from one base to
       another.  (Contributed by Mario Carneiro, 1-Apr-2014.) $)
    uzrdgxfr $p |- ( N e. _om ->
                     ( G ` N ) = ( ( H ` N ) + ( A - B ) ) ) $=
      ( cfv co caddc wceq c0 fveq2 oveq1d eqeq12d wcel c1 vy vk cv cmin csuc cz
      cc zcn ax-mp pncan3i om2uz0i oveq1i 3eqtr4ri com oveq1 om2uzsuci om2uzuzi
      cuz eluzelz syl zcnd ax-1cn subcli add32 mp3an23 eqtrd syl5ibr finds ) UA
      UCZDKZVIEKZBCUDLZMLZNODKZOEKZVLMLZNUBUCZDKZVQEKZVLMLZNZVQUEZDKZWBEKZVLMLZ
      NZFDKZFEKZVLMLZNUAUBFVIONZVJVNVMVPVIODPWJVKVOVLMVIOEPQRVIVQNZVJVRVMVTVIVQ
      DPWKVKVSVLMVIVQEPQRVIWBNZVJWCVMWEVIWBDPWLVKWDVLMVIWBEPQRVIFNZVJWGVMWIVIFD
      PWMVKWHVLMVIFEPQRCVLMLBVPVNCBCUFSCUGSJCUHUIZBUFSBUGSIBUHUIZUJVOCVLMACEJHU
      KULABDIGUKUMWAWFVQUNSZVRTMLZVTTMLZNVRVTTMUOWPWCWQWEWRAVQBDIGUPWPWEVSTMLZV
      LMLZWRWPWDWSVLMAVQCEJHUPQWPVSUGSZWTWRNZWPVSWPVSCURKSVSUFSAVQCEJHUQCVSUSUT
      VAXATUGSVLUGSXBVBBCWOWNVCVSTVLVDVEUTVFRVGVH $.
  $}

  ${
    $d m n G $.  $d n N $.
    fzennn.1 $e |- G = ( rec ( ( x e. _V |-> ( x + 1 ) ) , 0 ) |` _om ) $.
    $( The cardinality of a finite set of sequential integers.  (See ~ om2uz0i
       for a description of the hypothesis.)  (Contributed by Mario Carneiro,
       12-Feb-2013.)  (Revised by Mario Carneiro, 7-Mar-2014.) $)
    fzennn $p |- ( N e. NN0 -> ( 1 ... N ) ~~ ( `' G ` N ) ) $=
      ( c1 cfz co cfv cen wbr cc0 caddc wceq oveq2 fveq2 breq12d com wcel cn0
      c0 vn vm cv ccnv 0ex enref fz10 cuz wa 0z om2uzf1oi peano1 pm3.2i om2uz0i
      wf1o f1ocnvfv mp2 3brtr4i csn cun cin simpr cvv ovex fvex en2sn mp2an a1i
      fzp1disj word f1ocnvdm mpan nn0uz eleq2s ordirr 3syl adantr disjsn sylibr
      wn nnord unen syl22anc cz cmin fveq2i eqtr4i eleq2i biimpi fzsuc2 sylancr
      1z 1m1e0 csuc peano2 jctil om2uzsuci f1ocnvfv2 oveq1d eqtrd df-suc syl6eq
      syl sylc 3brtr4d ex nn0ind ) EUAUCZFGZXHBUDZHZIJEKFGZKXJHZIJEUBUCZFGZXNXJ
      HZIJZEXNELGZFGZXRXJHZIJZECFGZCXJHZIJUAUBCXHKMXIXLXKXMIXHKEFNXHKXJOPXHXNMX
      IXOXKXPIXHXNEFNXHXNXJOPXHXRMXIXSXKXTIXHXREFNXHXRXJOPXHCMXIYBXKYCIXHCEFNXH
      CXJOPTTXLXMITUEUFUGQKUHHZBUOZTQRZUITBHKMXMTMYEYFAKBUJDUKZULUMAKBUJDUNQYDT
      KBUPUQURXNSRZXQYAYHXQUIZXOXRUSZUTZXPXPUSZUTZXSXTIYIXQYJYLIJZXOYJVATMZXPYL
      VATMZYKYMIJYHXQVBYNYIXRVCRXPVCRYNXNELVDXNXJVEXRXPVCVCVFVGVHYOYIEXNVIVHYIX
      PXPRVTZYPYHYQXQYHXPQRZXPVJYQYRXNYDSYEXNYDRZYRYGQYDXNBVKVLVMVNZXPWAXPVOVPV
      QXPXPVRVSXOXPYJYLWBWCYHXSYKMZXQYHEWDRXNEEWEGZUHHZRZUUAWLYHUUDSUUCXNSYDUUC
      VMUUBKUHWMWFWGWHWIEXNWJWKVQYIXTXPWNZYMYHXTUUEMZXQYHYEUUEQRZUIUUEBHZXRMUUF
      YHUUGYEYHYRUUGYTXPWOXCYGWPYHUUHXPBHZELGZXRYHYRUUHUUJMYTAXPKBUJDWQXCYHUUIX
      NELYHYEYSUUIXNMYGYHYSSYDXNVMWHWIQYDXNBWRWKWSWTQYDUUEXRBUPXDVQXPXAXBXEXFXG
      $.

    $( The cardinality of a finite set of sequential integers with arbitrary
       endpoints.  (Contributed by Mario Carneiro, 13-Feb-2014.) $)
    fzen2 $p |- ( N e. ( ZZ>= ` M ) ->
                  ( M ... N ) ~~ ( `' G ` ( ( N + 1 ) - M ) ) ) $=
      ( cfv wcel cfz co c1 caddc cmin cen wbr cz cc wceq ax-1cn zcn syl2anc cuz
      ccnv eluzel2 eluzelz 1z zsubcl sylancr fzen syl3anc zcnd pncan3 addsubass
      sylancl mp3an2 syl2an eqcomd oveq12d breqtrd cn0 peano2uz uznn0sub fzennn
      3syl entr ) DCUAFZGZCDHIZJDJKIZCLIZHIZMNVJVIBUBFZMNZVGVKMNVFVGCJCLIZKIZDV
      MKIZHIZVJMVFCOGZDOGZVMOGZVGVPMNCDUCZCDUDZVFJOGVQVSUEVTJCUFUGVMCDUHUIVFVNJ
      VOVIHVFCPGZJPGZVNJQVFCVTUJRCJUKUMVFVIVOVFVRVQVIVOQZWAVTVRDPGZWBWDVQDSCSWE
      WCWBWDRDJCULUNUOTUPUQURVFVHVEGVIUSGVLCDUTCVHVAABVIEVBVCVGVJVKVDT $.

    $( The cardinality of a finite set of sequential integers.  (See ~ om2uz0i
       for a description of the hypothesis.)  (Contributed by NM, 7-Nov-2008.)
       (Revised by Mario Carneiro, 15-Sep-2013.) $)
    cardfz $p |- ( N e. NN0 -> ( card ` ( 1 ... N ) ) = ( `' G ` N ) ) $=
      ( cn0 wcel c1 cfz ccrd cfv ccnv cen wbr wceq fzennn carden2b syl com cc0
      co cuz wf1o 0z om2uzf1oi elnn0uz biimpi f1ocnvdm sylancr cardnn eqtrd ) C
      EFZGCHTZIJZCBKJZIJZUNUKULUNLMUMUONABCDOULUNPQUKUNRFZUOUNNUKRSUAJZBUBCUQFZ
      UPASBUCDUDUKURCUEUFRUQCBUGUHUNUIQUJ $.

    $( ` G ` maps ` _om ` one-to-one onto ` NN0 ` .  (Contributed by Paul
       Chapman, 22-Jun-2011.)  (Revised by Mario Carneiro, 13-Sep-2013.) $)
    hashgf1o $p |- G : _om -1-1-onto-> NN0 $=
      ( com cn0 wf1o cc0 cuz cfv 0z om2uzf1oi wceq wb nn0uz f1oeq3 ax-mp mpbir
      ) DEBFZDGHIZBFZAGBJCKESLRTMNESDBOPQ $.
  $}

  $( A finite interval of integers is finite.  (Contributed by Jeff Madsen,
     2-Sep-2009.)  (Revised by Mario Carneiro, 12-Mar-2015.) $)
  fzfi $p |- ( M ... N ) e. Fin $=
    ( vx cfz co cfn wcel c0 wceq 0fin eleq1 mpbiri wne cuz cfv c1 caddc com cn0
    con0 fzn0 cmin cvv cmpt cc0 crdg cres ccnv cen wbr cin onfin2 inss2 eqsstri
    cv wf1o eqid hashgf1o peano2uz uznn0sub f1ocnvdm sylancr sseldi fzen2 enfii
    syl syl2anc sylbi pm2.61ine ) ABDEZFGZVJHVJHIVKHFGJVJHFKLVJHMBANOZGZVKABUAV
    MBPQEZAUBEZCUCCUOPQEUDUEUFRUGZUHOZFGVJVQUIUJVKVMRFVQRTFUKFULTFUMUNVMRSVPUPV
    OSGZVQRGCVPVPUQZURVMVNVLGVRABUSAVNUTVFRSVOVPVAVBVCCVPABVSVDVJVQVEVGVHVI $.

  $( Commonly used special case of ~ fzfi .  (Contributed by Mario Carneiro,
     25-May-2014.) $)
  fzfid $p |- ( ph -> ( M ... N ) e. Fin ) $=
    ( cfz co cfn wcel fzfi a1i ) BCDEFGABCHI $.

  $( Half-open integer sets are finite.  (Contributed by Stefan O'Rear,
     15-Aug-2015.) $)
  fzofi $p |- ( M ..^ N ) e. Fin $=
    ( cz wcel wa cfzo co cfn c1 cmin cfz wceq fzoval adantl fzfi syl6eqel wn c0
    cxp cpw fzof fdmi ndmov 0fin pm2.61i ) ACDZBCDZEZABFGZHDUHUIABIJGZKGZHUGUIU
    KLUFABMNAUJOPUHQUIRHABCFCCSCTFUAUBUCUDPUE $.

  ${
    $d k x y F $.  $d k x y M $.  $d k x y N $.
    $( The values of a finite real sequence have an upper bound.  (Contributed
       by NM, 19-Sep-2005.)  (Proof shortened by Mario Carneiro,
       28-Apr-2015.) $)
    fsequb $p |- ( A. k e. ( M ... N ) ( F ` k ) e. RR
                 -> E. x e. RR A. k e. ( M ... N ) ( F ` k ) < x ) $=
      ( vy cv cfv cr wcel cfz co wral cle wbr wrex clt wi wa adantr fzfi r19.26
      cfn fimaxre3 mpan caddc peano2re ltp1 simpr lelttr syl3anc mpan2d expimpd
      c1 simpl ralimdv wceq ralbidv rspcev syl6an syl5bir expd impcom rexlimdva
      breq2 mpd ) BGCHZIJZBDEKLZMZVGFGZNOZBVIMZFIPZVGAGZQOZBVIMZAIPZVIUCJVJVNDE
      UAFBVIVGUDUEVJVMVRFIVKIJZVJVMVRRVSVJVMVRVJVMSVHVLSZBVIMZVSVRVHVLBVIUBVSVK
      UNUFLZIJZWAVGWBQOZBVIMZVRVKUGZVSVTWDBVIVSVHVLWDVSVHSZVLVKWBQOZWDVSWHVHVKU
      HTWGVHVSWCVLWHSWDRVSVHUIVSVHUOVSWCVHWFTVGVKWBUJUKULUMUPVQWEAWBIVOWBUQVPWD
      BVIVOWBVGQVEURUSUTVAVBVCVDVF $.

    $( The values of a finite real sequence have an upper bound.  (Contributed
       by NM, 20-Sep-2005.)  (Proof shortened by Mario Carneiro,
       28-Apr-2015.) $)
    fsequb2 $p |- ( F : ( M ... N ) --> RR ->
                  E. x e. RR A. y e. ran F y <_ x ) $=
      ( vk cfz co cr wf cv cle wbr crn wral wrex cfv cfn wcel fzfi fimaxre3 wfn
      ffvelrn ralrimiva sylancr wb ffn breq1 ralrn syl rexbidv mpbird ) DEGHZIC
      JZBKZAKZLMZBCNOZAIPFKZCQZUPLMZFUMOZAIPZUNUMRSUTISZFUMOVCDETUNVDFUMUMIUSCU
      CUDAFUMUTUAUEUNURVBAIUNCUMUBURVBUFUMICUGUQVABFUMCUOUTUPLUHUIUJUKUL $.

    $( The values of a finite real sequence have a supremum.  (Contributed by
       NM, 20-Sep-2005.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
    fseqsupcl $p |- ( ( N e. ( ZZ>= ` M ) /\ F : ( M ... N ) --> RR )
                 -> sup ( ran F , RR , < ) e. RR ) $=
      ( cuz cfv wcel cfz co cr wf wa crn clt csup wss adantl cfn c0 wne sylib
      frn wfo fzfi wfn ffn dffn4 fofi sylancr cdm wceq fdm simpl sylibr eqnetrd
      fzn0 dm0rn0 necon3bii wor w3a ltso fisupcl mpan syl3anc sseldd ) CBDEFZBC
      GHZIAJZKZALZIVIIMNZVGVIIOZVEVFIAUAPZVHVIQFZVIRSZVKVJVIFZVHVFQFVFVIAUBZVMB
      CUCVHAVFUDZVPVGVQVEVFIAUEPVFAUFTVFVIAUGUHVHAUIZRSVNVHVRVFRVGVRVFUJVEVFIAU
      KPVHVEVFRSVEVGULBCUOUMUNVRRVIRAUPUQTVLIMURVMVNVKUSVOUTIVIMVAVBVCVD $.

    $( The values of a finite real sequence are bounded by their supremum.
       (Contributed by NM, 20-Sep-2005.) $)
    fseqsupubi $p |- ( ( K e. ( M ... N ) /\ F : ( M ... N ) --> RR ) ->
               ( F ` K ) <_ sup ( ran F , RR , < ) ) $=
      ( vx vy cfz co wcel cr wf wa crn cfv adantl wceq c0 wne sylan2 cv wss frn
      cdm fdm ne0i dm0rn0 eqeq1 syl5bir necon3d mpan9 cle wbr wral wrex fsequb2
      biimpd wfn ffn fnfvelrn ancoms suprubd ) BCDGHZIZVBJAKZLEFAMZBANZVDVEJUAV
      CVBJAUBOVDVCAUCZVBPZVEQRZVBJAUDVCVBQRVHVIVBBUEVHVEQVBQVEQPVGQPZVHVBQPZAUF
      VHVJVKVGVBQUGUPUHUIUJSVDFTETUKULFVEUMEJUNVCEFACDUOOVDVCAVBUQZVFVEIZVBJAUR
      VLVCVMVBBAUSUTSVA $.
  $}

  ${
    $d x y $.
    $( The nonnegative integers are equinumerous to the positive integers.
       (Contributed by NM, 19-Jul-2004.) $)
    nn0ennn $p |- NN0 ~~ NN $=
      ( vx vy cn cv c1 caddc co cmin nn0ex nnex nn0p1nn nnm1nn0 wcel cc wceq wb
      cn0 nncn ax-1cn eqcom nn0cn wa subadd mp3an2 3bitr4g addcom eqeq2d adantl
      mpan bitrd syl2anr en3i ) ABQCADZEFGZBDZEHGZIJUMKUOLUOCMUONMZUMNMZUMUPOZU
      OUNOZPUMQMUORUMUAUQURUBZUSUOEUMFGZOZUTVAUPUMOZVBUOOZUSVCUQENMZURVDVEPSUOE
      UMUCUDUMUPTUOVBTUEURVCUTPUQURVBUNUOVFURVBUNOSEUMUFUIUGUHUJUKUL $.

    $( The set of positive integers (as a subset of complex numbers) is
       equinumerous to omega (the set of finite ordinal numbers).  (Contributed
       by NM, 31-Jul-2004.)  (Revised by Mario Carneiro, 15-Sep-2013.) $)
    nnenom $p |- NN ~~ _om $=
      ( vx com cn0 cn cvv wcel cv c1 caddc cmpt cc0 crdg cres wf1o cen wbr omex
      co nn0ex eqid hashgf1o f1oen2g mp3an nn0ennn entr2i ) BCDBEFCEFBCAEAGHIRJ
      KLBMZNBCOPQSAUFUFTUABCUFEEUBUCUDUE $.
  $}

  $( ` NN ` is countable.  (Contributed by Thierry Arnoux, 29-Dec-2016.) $)
  nnct $p |- NN ~<_ _om $=
    ( cn com cen wbr cdom nnenom endom ax-mp ) ABCDABEDFABGH $.

  ${
    $d x y L $.  $d x A $.  $d x S $.  $d x y T $.  $d x ch $.  $d x y ph $.
    $d x th $.  $d y R $.  $d y ps $.
    uzindi.a $e |- ( ph -> A e. V ) $.
    uzindi.b $e |- ( ph -> T e. ( ZZ>= ` L ) ) $.
    uzindi.c $e |- ( ( ph /\ R e. ( L ... T ) /\
          A. y ( S e. ( L ..^ R ) -> ch ) ) -> ps ) $.
    uzindi.d $e |- ( x = y -> ( ps <-> ch ) ) $.
    uzindi.e $e |- ( x = A -> ( ps <-> th ) ) $.
    uzindi.f $e |- ( x = y -> R = S ) $.
    uzindi.g $e |- ( x = A -> R = T ) $.
    $( Indirect strong induction on the upper integers.  (Contributed by Stefan
       O'Rear, 25-Aug-2015.) $)
    uzindi $p |- ( ph -> th ) $=
      ( wcel cfz co cuz cfv eluzfz2 syl wi cfzo cfn ccrd fzofi finnum mp1i csdm
      cdm wbr wal cdom wa simpll simpr wss elfzuz3 adantl fzoss2 fzossfz syl6ss
      sselda wpss wn elfzofz 3syl fzonel jctr ssnelpss sylc sylancr id com13 ex
      php3 com23 alimdv imp31 syl3anc 3adant2 weq eleq1d imbi12d cv wceq oveq2d
      indcardi mpd ) AJKJUAUBZTZDAJKUCUDTWPNKJUEUFAHWOTZBUGZIWOTZCUGZWPDUGEFGKH
      UHUBZKIUHUBZKJUHUBZLMXCUITXCUJUOTAKJUKXCULUMAXBXAUNUPZWTUGZFUQZWRXAXCURUP
      AXFUSZWQBXGWQUSAWQIXATZCUGZFUQZBAXFWQUTXGWQVAAXFWQXJAWQXFXJAWQXFXJUGAWQUS
      ZXEXIFXKXHXECXKXHXECUGZXKXHUSZWSXDXLXKXAWOIXKJHUCUDTZXAWOVBWQXNAHKJVCVDXN
      XAXCWOHKJVEKJVFVGUFVHXMXAUITXBXAVIZXDKHUKXMXBXAVBZXHIXBTVJZUSZXOXMIKHUAUB
      TZHIUCUDTXPXHXSXKIKHVKVDIKHVCIKHVEVLXHXRXKXHXQKIVMVNVDXBXAIVOVPXAXBWAVQXE
      XDWSCXEVRVSVPVTWBWCVTWBWDOWEVTWFEFWGZWQWSBCXTHIWORWHPWIEWJGWKZWQWPBDYAHJW
      OSWHQWIXTHIKUHRWLYAHJKUHSWLWMWN $.
  $}

  ${
    $d f g k m n x A $.  $d f g m C $.  $d f g k n x F $.  $d f g k n x y M $.
    $d f g n x Z $.
    axdc4uz.1 $e |- M e. ZZ $.
    axdc4uz.2 $e |- Z = ( ZZ>= ` M ) $.
    ${
      $d g k m n x G $.  $d f k m H $.
      axdc4uz.3 $e |- A e. _V $.
      axdc4uz.4 $e |- G = ( rec ( ( y e. _V |-> ( y + 1 ) ) , M ) |` _om ) $.
      axdc4uz.5 $e |- H = ( n e. _om , x e. A |-> ( ( G ` n ) F x ) ) $.
      $( Lemma for ~ axdc4uz .  (Contributed by Mario Carneiro, 8-Jan-2014.)
         (Revised by Mario Carneiro, 26-Dec-2014.) $)
      axdc4uzlem $p |- ( ( C e. A /\ F : ( Z X. A ) --> ( ~P A \ { (/) } ) ) ->
                E. g ( g : Z --> A /\ ( g ` M ) = C /\
                  A. k e. Z ( g ` ( k + 1 ) ) e. ( k F ( g ` k ) ) ) ) $=
        ( wcel com cfv vf vm cxp cpw c0 csn cdif wf wa cv wceq csuc co wral w3a
        wex c1 caddc wf1o om2uzf1oi wb f1oeq3 ax-mp mpbir f1of ffvelrni syl3an2
        cuz fovrn 3expb ralrimivva fmpt2 sylib sylan2 ccnv ccom f1ocnv mp2b fco
        axdc4 mpan2 3ad2ant1 cz eleqtrri fvco3 mp2an om2uz0i wi peano1 f1ocnvfv
        uzid fveq2i eqtri simp2 syl5eq adantl suceq fveq2 oveq12d eleq12d rspcv
        fveq2d id syl peano2uzs sylancr om2uzsuci f1ocnvfv2 oveq1d eqtrd peano2
        mpd eqtr2d ffvelrn oveq2 ovmpt2 syl2anc eqcomd sylibd impancom ralrimiv
        mpan ovex 3adant2 vex cmpt crdg cres wfun rdgfun omex resfunexg eqeltri
        cvv cnvex coex feq1 fveq1 eqeq1d oveq2d ralbidv 3anbi123d spcev syl3anc
        exlimiv ) DCRZLCUCCUDUEUFUGZHUHZUISCUAUJZUHZUEUUITZDUKZUBUJZULZUUITZUUM
        UUMUUITZJUMZRZUBSUNZUOZUAUPZLCEUJZUHZKUVBTZDUKZFUJZUQURUMZUVBTZUVFUVFUV
        BTZHUMZRZFLUNZUOZEUPZUUHUUFSCUCUUGJUHZUVAUUHGUJZITZAUJZHUMZUUGRZACUNGSU
        NUVOUUHUVTGASCUUHUVPSRZUVRCRZUVTUWAUUHUVQLRUWBUVTSLUVPISLIUSZSLIUHUWCSK
        VHTZIUSZBKIMPUTLUWDUKUWCUWEVANLUWDSIVBVCVDZSLIVEVCVFUVQUVRUUGLCHVIVGVJV
        KGASCUVSUUGJQVLVMCDUAUBJOVTVNUUTUVNUAUUTLCUUIIVOZVPZUHZKUWHTZDUKZUVGUWH
        TZUVFUVFUWHTZHUMZRZFLUNZUVNUUJUULUWIUUSUUJLSUWGUHZUWIUWCLSUWGUSUWQUWFSL
        IVQLSUWGVEVRZLSCUUIUWGVSWAWBUUTUWJUUKDUWJKUWGTZUUITZUUKUWQKLRUWJUWTUKUW
        RKUWDLKWCRKUWDRMKWKVCNWDLSKUUIUWGWEWFUWSUEUUIUEITKUKZUWSUEUKZBKIMPWGUWC
        UESRUXAUXBWHUWFWISLUEKIWJWFVCWLWMUUJUULUUSWNWOUUJUUSUWPUULUUJUUSUIUWOFL
        UUJUVFLRZUUSUWOUUJUXCUIZUUSUVFUWGTZULZUUITZUXEUXEUUITZJUMZRZUWOUXDUXESR
        ZUUSUXJWHUXCUXKUUJLSUVFUWGUWRVFZWPZUURUXJUBUXESUUMUXEUKZUUOUXGUUQUXIUXN
        UUNUXFUUIUUMUXEWQXBUXNUUMUXEUUPUXHJUXNXCUUMUXEUUIWRWSWTXAXDUXDUXGUWLUXI
        UWNUXCUXGUWLUKUUJUXCUWLUVGUWGTZUUITZUXGUXCUWQUVGLRUWLUXPUKUWRKUVFLNXELS
        UVGUUIUWGWEXFUXCUXOUXFUUIUXCUXFITZUVGUKZUXOUXFUKZUXCUXQUXEITZUQURUMZUVG
        UXCUXKUXQUYAUKUXLBUXEKIMPXGXDUXCUXTUVFUQURUWCUXCUXTUVFUKUWFSLUVFIXHYBZX
        IXJUXCUWCUXFSRZUXRUXSWHUWFUXCUXKUYCUXLUXEXKXDSLUXFUVGIWJXFXLXBXMWPUXDUX
        IUXTUXHHUMZUWNUXDUXKUXHCRZUXIUYDUKUXMUXCUUJUXKUYEUXLSCUXEUUIXNVNGAUXEUX
        HSCUVSUYDJUXTUVRHUMUVPUXEUKUVQUXTUVRHUVPUXEIWRXIUVRUXHUXTHXOQUXTUXHHYCX
        PXQUXCUYDUWNUKUUJUXCUXTUVFUXHUWMHUYBUXCUWMUXHUWQUXCUWMUXHUKUWRLSUVFUUIU
        WGWEYBXRWSWPXJWTXSXTYAYDUVMUWIUWKUWPUOEUWHUUIUWGUAYEIIBYNBUJUQURUMYFZKY
        GZSYHZYNPUYGYISYNRUYHYNRKUYFYJYKUYGSYNYLWFYMYOYPUVBUWHUKZUVCUWIUVEUWKUV
        LUWPLCUVBUWHYQUYIUVDUWJDKUVBUWHYRYSUYIUVKUWOFLUYIUVHUWLUVJUWNUVGUVBUWHY
        RUYIUVIUWMUVFHUVFUVBUWHYRYTWTUUAUUBUUCUUDUUEXD $.
    $}

    $( A version of ~ axdc4 that works on an upper set of integers instead of
       ` _om ` .  (Contributed by Mario Carneiro, 8-Jan-2014.) $)
    axdc4uz $p |- ( ( A e. V /\ C e. A /\
                    F : ( Z X. A ) --> ( ~P A \ { (/) } ) ) ->
                E. g ( g : Z --> A /\ ( g ` M ) = C /\
                  A. k e. Z ( g ` ( k + 1 ) ) e. ( k F ( g ` k ) ) ) ) $=
      ( vf vx vy vn wcel cxp wf cv cfv co cpw c0 csn cdif wceq c1 caddc w3a wex
      wral wa wi eleq2 xpeq2 pweq difeq1d feq23d anbi12d 3anbi1d exbidv imbi12d
      feq3 cvv cmpt crdg com cres cmpt2 vex eqid axdc4uzlem vtoclg 3impib ) AGO
      BAOZHAPZAUAZUBUCZUDZEQZHACRZQZFVTSBUEZDRZUFUGTVTSWCWCVTSETODHUJZUHZCUIZBK
      RZOZHWGPZWGUAZVQUDZEQZUKZHWGVTQZWBWDUHZCUIZULVNVSUKZWFULKAGWGAUEZWMWQWPWF
      WRWHVNWLVSWGABUMWRWIWKVOVREWGAHUNWRWJVPVQWGAUOUPUQURWRWOWECWRWNWAWBWDWGAH
      VTVBUSUTVALMWGBCDNEMVCMRUFUGTVDFVEVFVGZNLVFWGNRWSSLRETVHZFHIJKVIWSVJWTVJV
      KVLVM $.
  $}

  ${
    $d S s x y $.  $d S s y z $.
    $( A subset of the nonnegative integers is finite if and only if there is a
       nonnegative integer so that all integers greater than this integer are
       not contained in the subset.  (Contributed by AV, 3-Oct-2019.) $)
    ssnn0fi $p |- ( S C_ NN0 -> ( S e. Fin
                         <-> E. s e. NN0 A. x e. NN0 ( s < x -> x e/ S ) ) ) $=
      ( vy vz cn0 wcel cv clt wbr wi wral wrex cc0 wn cr wa ex adantr com12 wss
      cfn wnel c0 wceq 0nn0 a1i wb breq1 imbi1d ralbidv adantl nnel sylbi con4i
      n0i a1d ralrimivw rspcedvd 2a1d wne w3a id nn0ssre syl6ss 3anim3i fisup2g
      wor sylancr simp3 weq breq2 notbid rspcva expcom com24 imp31 syl5bi con4d
      ltso ralrimiva reximdva ssrexv sylsyld mpd 3exp pm2.61ine cfz co fzfi cle
      com3l wo elfz2nn0 notbii 3ianor 3orass 3bitri ssel con3rr3 notnotb pm2.24
      w3o neleq1 imbi12d nn0re ltnle syl2an df-nel biimpd mpid imp jaoi syl5bir
      com13 impcom jaoi3 ssrdv ssfi rexlimdva impbid ) BFUAZBUBGZCHZAHZIJZYEBUC
      ZKZAFLZCFMZYBYCYJKKBUDBUDUEZYJYBYCYKYINYEIJZYGKZAFLZCNFNFGYKUFUGYDNUEZYIY
      NUHYKYOYHYMAFYOYFYLYGYDNYEIUIUJUKULYKYMAFYKYGYLYGYKYGOZYEBGZYKOYEBUMZBYEU
      PUNUOUQURUSUTYCBUDVAZYBYJYCYSYBYJYCYSYBVBZYDDHZIJZOZDBLZUUAYDIJUUAEHIJEBM
      KDPLZQZCBMZYJYTPIVHYCYSBPUAZVBUUGVTYBUUHYCYSYBBFPYBVCVDVEVFCDEPBIVGVIYTYB
      UUGYICBMYJYCYSYBVJYTUUFYICBUUFYTYDBGQZYIUUDUUIYIKUUEUUDUUIYIUUDUUIQZYHAFU
      UJYEFGZQZYGYFYPYQUULYFOZYRUUDUUIUUKYQUUMKUUDYQUUKUUIUUMYQUUDUUKUUIUUMKKYQ
      UUDQUUMUUKUUIUUCUUMDYEBDAVKUUBYFUUAYEYDIVLVMVNUTVOVPVQVRVSWARSTWBYICBFWCW
      DWEWFWLWGYBYIYCCFYBYDFGZQZYIYCUUOYIQZNYDWHWIZUBGBUUQUAYCNYDWJUUPDBUUQUUPU
      UAUUQGZUUABGZUUROZUUPUUSOZUUTUUAFGZOZUUNOZUUAYDWKJZOZWMZWMZUUPUVAKZUUTUVB
      UUNUVEVBZOUVCUVDUVFXCUVHUURUVJUUAYDWNWOUVBUUNUVEWPUVCUVDUVFWQWRUVCUVIUVGU
      UPUUSUVBUUOUUSUVBKZYIYBUVKUUNBFUUAWSSSWTUVGUVCOZUVIUVLUVBUVGUVIUVBXAUVDUV
      BUVIKUVFUVDUVIUVBUUPUVDUVAUUOUVDUVAKZYIUUNUVMYBUUNUVAXBULSTUQUUPUVBUVFUVA
      UUOYIUVBUVFUVAKZKUVBYIUUOUVNUVBYIUUOUVNKUVBYIQUUOUUBUUABUCZKZUVNYHUVPAUUA
      FADVKYFUUBYGUVOYEUUAYDIVLYEUUABXDXEVNUVBUUOUVPUVNKZKYIUUOUVBUVQUUNUVBUVQK
      YBUUNUVBUVQUUNUVBQZUVPUVNUVRUUBUVFUVOUVAUUNYDPGUUAPGUUBUVFUHUVBYDXFUUAXFY
      DUUAXGXHUVOUVAUHUVRUUABXIUGXEXJRULTSXKRXOXLXOXMXNXPXQUNTVSXRUUQBXSVIRXTYA
      $.
  $}

  ${
    $d s x y $.  $d ph s y $.
    $( A subset of the nonnegative integers defined by a restricted class
       abstraction is finite if there is a nonnegative integer so that for all
       integers greater than this integer the condition of the class
       abstraction is not fulfilled.  (Contributed by AV, 3-Oct-2019.) $)
    rabssnn0fi $p |- ( { x e. NN0 | ph } e. Fin
                       <-> E. s e. NN0 A. x e. NN0 ( s < x -> -. ph ) ) $=
      ( vy cn0 crab wss cfn wcel cv clt wbr wn wi wral wrex wb nfcv weq nfv nfn
      ssrab2 wnel ssnn0fi wsbc nnel nfsbc1v sbceq2a equcoms con2bid elrabf baib
      wa syl5bb con4bid imbi2d ralbiia nfim breq2 imbi12d cbvral bitri rexbidva
      a1i bitrd ax-mp ) ABEFZEGZVGHIZCJZBJZKLZAMZNZBEOZCEPZQABEUBVHVIVJDJZKLZVQ
      VGUCZNZDEOZCEPVPDVGCUDVHWAVOCEWAVOQVHVJEIUMWAVRVMBVQUEZNZDEOVOVTWCDEVQEIZ
      VSWBVRWDVSWBVSMVQVGIZWDWBMZVQVGUFWEWDWFAWFBVQEBVQRBERWBBVMBVQUGZUABDSWBAW
      BVMQDBVMBVQUHZUIUJUKULUNUOUPUQWCVNDBEVRWBBVRBTWGURVNDTDBSVRVLWBVMVQVKVJKU
      SWHUTVAVBVDVCVEVF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Strong induction over upper sets of integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d ch x $.  $d M x y $.  $d N x $.  $d ph y $.  $d ps x $.
    uzsinds.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    uzsinds.2 $e |- ( x = N -> ( ph <-> ch ) ) $.
    uzsinds.3 $e |- ( x e. ( ZZ>= ` M ) ->
      ( A. y e. ( M ... ( x - 1 ) ) ps -> ph ) ) $.
    $( Strong (or "total") induction principle over an upper set of integers.
       (Contributed by Scott Fenton, 16-May-2014.) $)
    uzsinds $p |- ( N e. ( ZZ>= ` M ) -> ch ) $=
      ( cuz cfv clt ltweuz cvv wcel wse fvex wral co exse ax-mp cv cpred c1 cfz
      cmin preduz raleqdv sylbid wfis3 ) ABCDEFKLZGMFNULOPULMQFKRULMOUAUBHIDUCZ
      ULPZBEULMUMUDZSBEFUMUEUGTUFTZSAUNBEUOUPFUMUHUIJUJUK $.
  $}

  ${
    $d ch x $.  $d N x $.  $d ph y $.  $d ps x $.  $d x y $.
    nnsinds.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    nnsinds.2 $e |- ( x = N -> ( ph <-> ch ) ) $.
    nnsinds.3 $e |- ( x e. NN ->
      ( A. y e. ( 1 ... ( x - 1 ) ) ps -> ph ) ) $.
    $( Strong (or "total") induction principle over the naturals.  (Contributed
       by Scott Fenton, 16-May-2014.) $)
    nnsinds $p |- ( N e. NN -> ch ) $=
      ( cn wcel c1 cuz cfv elnnuz cv cmin co cfz wral wi sylbir uzsinds sylbi )
      FJKFLMNZKCFOABCDELFGHDPZUEKUFJKBELUFLQRSRTAUAUFOIUBUCUD $.
  $}

  ${
    $d ch x $.  $d N x $.  $d ph y $.  $d ps x $.  $d x y $.
    nn0sinds.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    nn0sinds.2 $e |- ( x = N -> ( ph <-> ch ) ) $.
    nn0sinds.3 $e |- ( x e. NN0 ->
      ( A. y e. ( 0 ... ( x - 1 ) ) ps -> ph ) ) $.
    $( Strong (or "total") induction principle over the nonnegative integers.
       (Contributed by Scott Fenton, 16-May-2014.) $)
    nn0sinds $p |- ( N e. NN0 -> ch ) $=
      ( cn0 wcel cc0 cuz cfv elnn0uz cv c1 cmin co cfz wi sylbir uzsinds sylbi
      wral ) FJKFLMNZKCFOABCDELFGHDPZUFKUGJKBELUGQRSTSUEAUAUGOIUBUCUD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finitely supported functions over the nonnegative integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d M f x $.  $d R f x $.  $d S x $.  $d U f x $.  $d V f x $.  $d Z f x $.
    fsuppmapnn0fiub.u $e |- U = U_ f e. M ( f supp Z ) $.
    fsuppmapnn0fiub.s $e |- S = sup ( U , RR , < ) $.
    $( Lemma for ~ fsuppmapnn0fiub and ~ fsuppmapnn0fiubex .  (Contributed by
       AV, 2-Oct-2019.) $)
    fsuppmapnn0fiublem $p |- ( ( M C_ ( R ^m NN0 ) /\ M e. Fin /\ Z e. V )
                 -> ( ( A. f e. M f finSupp Z /\ U =/= (/) ) -> S e. NN0 ) ) $=
      ( cn0 co wss cfn wcel wral wa ex adantr cr clt cmap w3a cv cfsupp wbr wne
      c0 csupp ciun nfv nfra1 nfan cdm suppssdm wi wfn elmapfn wceq fndm eqimss
      ssel2 syl 3syl 3ad2ant1 imp syl5ss ralrimi iunss sylibr syl5eqss wor ltso
      a1i simp2 id fsuppimpd ralimi iunfi syl2an syl5eqel simprr nn0ssre sseq1i
      syl6eqss bitri csup fisupcl syl13anc sseldd ) EAJUAKZLZEMNZGFNZUBZDUCZGUD
      UEZDEOZCUGUFZPZBJNWNWSPZCJBWTCDEWOGUHKZUIZJHWTXAJLZDEOXBJLWTXCDEWNWSDWNDU
      JWQWRDWPDEUKWRDUJULULZWTWOENZXCWTXEPZXAWOUMZJWOGUNZWTXEXGJLZWNXEXIUOZWSWK
      WLXJWMWKXEXIWKXEPZWOWJNZWOJUPZXIEWJWOVAZWOAJUQZXMXGJURZXIJWOUSZXGJUTVBVCQ
      VDRVEVFQVGDEXAJVHVIVJWTSTVKZCMNZWRCSLZBCNXRWTVLVMWTCXBMHWNWLXAMNZDEOZXBMN
      WSWKWLWMVNWQYBWRWPYADEWPWOGWPVOVPVQRDEXAVRVSVTWNWQWRWAWTXASLZDEOZXTWTYCDE
      XDWTXEYCXFXAXGSXHXFXGJSWTXEXPWNXEXPUOZWSWKWLYEWMWKXEXPXKXLXMXPXNXOXQVCQVD
      RVEWBWDVFQVGXTXBSLYDCXBSHWCDEXASVHWEVIXRXSWRXTUBPBCSTWFCISCTWGVTWHWIQ $.

    $( If all functions of a finite set of functions over the nonnegative
       integers are finitely supported, then the support of all these functions
       is contained in a finite set of sequential integers starting at 0 and
       ending with the supremum of the union of the support of these functions.
       (Contributed by AV, 2-Oct-2019.)  (Proof shortened by JJ,
       2-Aug-2021.) $)
    fsuppmapnn0fiub $p |- ( ( M C_ ( R ^m NN0 ) /\ M e. Fin /\ Z e. V )
                          -> ( ( A. f e. M f finSupp Z /\ U =/= (/) )
                               -> A. f e. M ( f supp Z ) C_ ( 0 ... S ) ) ) $=
      ( cn0 co wss cfn wcel wral wa imp ad2antrr cr ex vx cmap w3a cv cfsupp c0
      wbr wne csupp cc0 cfz nfv nfra1 nfan cle wi cdm suppssdm wfn elmapfn wceq
      ssel2 fndm eqimss syl 3syl 3ad2antl1 syl5ss sseld fsuppmapnn0fiublem ciun
      adantlr 3ad2ant1 adantr nn0ssre syl6eqss ralrimi iunss sylibr syl5eqss id
      simp2 fsuppimpd ralimi anim12i iunfi syl5eqel wrex rspe syl6eleqr adantll
      eliun clt csup a1i supfirege elfz2nn0 syl3anbrc ssrdv ) EAJUBKZLZEMNZGFNZ
      UCZDUDZGUEUGZDEOZCUFUHZPZXEGUIKZUJBUKKZLZDEOXDXIPZXLDEXDXIDXDDULXGXHDXFDE
      UMXHDULUNUNZXMXEENZXLXMXOPZUAXJXKXPUAUDZXJNZXQXKNZXPXRPZXQJNZBJNZXQBUOUGX
      SXPXRYAXDXOXRYAUPXIXDXOPZXJJXQYCXJXEUQZJXEGURZXAXBXOYDJLZXCXAXOPZXEWTNZXE
      JUSZYFEWTXEVBZXEAJUTZYIYDJVAZYFJXEVCZYDJVDVEVFVGVHVIVLQXMYBXOXRXDXIYBABCD
      EFGHIVJQRXTCXQBXTCDEXJVKZSHXTXJSLZDEOZYNSLXMYPXOXRXMYODEXNXMXOYOXPXJYDSYE
      XPYDJSXMXOYLXDXOYLUPZXIXAXBYQXCXAXOYLYGYHYIYLYJYKYMVFTVMVNQVOVPVHTVQRDEXJ
      SVRVSVTXTCYNMHXTXBXJMNZDEOZPZYNMNXMYTXOXRXDXBXIYSXAXBXCWBXGYSXHXFYRDEXFXE
      GXFWAWCWDVNWERDEXJWFVEWGXOXRXQCNXMXOXRPZXQYNCUUAXRDEWHXQYNNXRDEWIDXQEXJWL
      VSHWJWKBCSWMWNVAXTIWOWPXQBWQWRTWSTVQT $.

    $d f g x $.  $d M g $.  $d R g $.  $d U g $.  $d V g $.  $d Z g $.
    $( Obsolete proof of ~ fsuppmapnn0fiub as of 2-Aug-2021.  (Contributed by
       AV, 2-Oct-2019.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    fsuppmapnn0fiubOLD $p |- ( ( M C_ ( R ^m NN0 ) /\ M e. Fin /\ Z e. V )
                          -> ( ( A. f e. M f finSupp Z /\ U =/= (/) )
                               -> A. f e. M ( f supp Z ) C_ ( 0 ... S ) ) ) $=
      ( vg cn0 co wss cfn wcel wral wa csupp cr ex vx cmap w3a cv cfsupp wbr c0
      wne cc0 cfz nfv nfra1 nfan cle cdm suppssdm wfn ssel2 elmapfn wceq eqimss
      wi fndm syl 3syl 3ad2antl1 syl5ss adantlr imp fsuppmapnn0fiublem ad2antrr
      sseld ciun 3ad2ant1 adantr nn0ssre syl6eqss ralrimi iunss sylibr syl5eqss
      simp2 id fsuppimpd ralimi anim12i iunfi syl5eqel wrex simpr weq wb eleq2d
      oveq1 adantl rspcedv cbvrexv eleq2i eliun clt csup a1i supfirege elfz2nn0
      bitri syl3anbrc ssrdv ) EAKUBLZMZENOZGFOZUCZDUDZGUEUFZDEPZCUGUHZQZXMGRLZU
      IBUJLZMZDEPXLXQQZXTDEXLXQDXLDUKXOXPDXNDEULXPDUKUMUMZYAXMEOZXTYAYCQZUAXRXS
      YDUAUDZXROZYEXSOZYDYFQZYEKOZBKOZYEBUNUFYGYDYFYIXLYCYFYIVBXQXLYCQZXRKYEYKX
      RXMUOZKXMGUPZXIXJYCYLKMZXKXIYCQZXMXHOZXMKUQZYNEXHXMURZXMAKUSZYQYLKUTZYNKX
      MVCZYLKVAVDVEVFVGVLVHVIYAYJYCYFXLXQYJABCDEFGHIVJVIVKYHCYEBYHCDEXRVMZSHYHX
      RSMZDEPZUUBSMYAUUDYCYFYAUUCDEYBYAYCUUCYDXRYLSYMYDYLKSYAYCYTXLYCYTVBZXQXIX
      JUUEXKXIYCYTYOYPYQYTYRYSUUAVETVNVOVIVPVQVGTVRVKDEXRSVSVTWAYHCUUBNHYHXJXRN
      OZDEPZQZUUBNOYAUUHYCYFXLXJXQUUGXIXJXKWBXOUUGXPXNUUFDEXNXMGXNWCWDWEVOWFVKD
      EXRWGVDWHYHYFDEWIZYECOZYHYEJUDZGRLZOZJEWIZUUIYDYFUUNYDUUMYFJXMEYAYCWJJDWK
      ZUUMYFWLYDUUOUULXRYEUUKXMGRWNWMWOWPVIYFUUMDJEDJWKXRUULYEXMUUKGRWNWMWQVTUU
      JYEUUBOUUICUUBYEHWRDYEEXRWSXEVTBCSWTXAUTYHIXBXCYEBXDXFTXGTVRT $.
  $}

  ${
    $d M f g m $.  $d R f m $.  $d V f m $.  $d Z f g m $.
    $( If all functions of a finite set of functions over the nonnegative
       integers are finitely supported, then the support of all these functions
       is contained in a finite set of sequential integers starting at 0.
       (Contributed by AV, 2-Oct-2019.) $)
    fsuppmapnn0fiubex $p |- ( ( M C_ ( R ^m NN0 ) /\ M e. Fin /\ Z e. V )
               -> ( A. f e. M f finSupp Z
                    -> E. m e. NN0 A. f e. M ( f supp Z ) C_ ( 0 ... m ) ) ) $=
      ( vg c0 wceq csupp co wral cn0 wss wcel cc0 cfz wrex wn wa cv wo cmap cfn
      w3a cfsupp wbr wi 0nn0 a1i wb oveq2 sseq2d ralbidv adantl raleq mpbii 0ss
      ral0 sseq1 mpbiri ralimi jaoi rspcedvd 2a1d ciun cr clt csup simplr simpr
      ioran oveq1 eqeq1d cbvralv notbii anbi2i bitri rexnal df-ne bicomi rexbii
      wne sylbb1 sylbi ad2antrr iunn0 sylib jca cbviunv eqid fsuppmapnn0fiublem
      sylc nfv nfra1 nfor nfn nfan ralbid neeq1i fsuppmapnn0fiub exp31 pm2.61i
      ) HDIZBUAZFJKZHIZBDLZUBZDAMUCKNDUDOFEOUEZXEFUFUGZBDLZXFPCUAZQKZNZBDLZCMRZ
      UHUHXIXQXJXLXIXPXFPPQKZNZBDLZCPMPMOXIUIUJXMPIZXPXTUKXIYAXOXSBDYAXNXRXFXMP
      PQULUMUNUOXDXTXHXDXSBHLXTXSBUSXSBHDUPUQXGXSBDXGXSHXRNXRURXFHXRUTVAVBVCVDV
      EXISZXJXLXQYBXJTZXLTZXPXFPGDGUAZFJKZVFZVGVHVIZQKZNZBDLZCYHMYDXJXLYGHWCZTZ
      YHMOYBXJXLVJZYDXLYLYCXLVKZYDYFHWCZGDRZYLYBYQXJXLYBXDSZYFHIZGDLZSZTZYQYBYR
      XHSZTZUUBXDXHVLZUUCUUAYRXHYTXGYSBGDXEYEIXFYFHXEYEFJVMZVNVOVPVQVRUUAYQYRYS
      SZGDRUUAYQYSGDVSUUGYPGDYPUUGYFHVTWAWBWDUOWEWFGDYFWGWHWIAYHYGBDEFGBDYFXFYE
      XEFJVMWJZYHWKZWLWMYDXMYHIZTXOYJBDYDUUJBYCXLBYBXJBXIBXDXHBXDBWNXGBDWOWPWQX
      JBWNWRXKBDWOWRUUJBWNWRUUJXOYJUKYDUUJXNYIXFXMYHPQULUMUOWSYDXJYMYKYNYDXLYLY
      OYDXFHWCZBDRZYLYBUULXJXLYBUUDUULUUEUUCUULYRXGSZBDRUUCUULXGBDVSUUMUUKBDUUK
      UUMXFHVTWAWBWDUOWEWFUULBDXFVFZHWCYLBDXFWGUUNYGHBGDXFYFUUFWJWTVRWHWIAYHYGB
      DEFUUHUUIXAWMVDXBXC $.

    $d M x $.  $d R x $.  $d V x $.  $d Z x $.  $d f x $.  $d m x $.
    $( If all functions of a finite set of functions over the nonnegative
       integers are finitely supported, then all these functions are zero for
       all integers greater than a fixed integer.  (Contributed by AV,
       3-Oct-2019.) $)
    fsuppmapnn0fiub0 $p |- ( ( M C_ ( R ^m NN0 ) /\ M e. Fin /\ Z e. V )
                -> ( A. f e. M f finSupp Z -> E. m e. NN0 A. f e. M A. x e. NN0
                     ( m < x -> ( f ` x ) = Z ) ) ) $=
      ( cn0 co wss wcel w3a cv wbr wral wrex wceq wi wa cvv cmap cfn cfsupp cc0
      csupp cfz clt cfv fsuppmapnn0fiubex wne crab wfn ssel2 ancoms elmapfn syl
      expcom adantr imp nn0ex a1i simpll3 suppvalfn syl3anc sseq1d rabss syl6bb
      3ad2ant1 wn nne biimpi 2a1d cle elfz2nn0 cr wb nn0re syl2an pm2.21 syl6bi
      lenlt 3impia a1d sylbi ja com12 ralimdva sylbid reximdva syld ) EBHUAIZJZ
      EUBKZGFKZLZCMZGUCNCEOWPGUEIZUDDMZUFIZJZCEOZDHPWRAMZUGNZXBWPUHZGQZRZAHOZCE
      OZDHPBCDEFGUIWOXAXHDHWOWRHKZSZWTXGCEXJWPEKZSZWTXDGUJZXBWSKZRZAHOZXGXLWTXM
      AHUKZWSJXPXLWQXQWSXLWPHULZHTKZWNWQXQQXJXKXRWOXKXRRZXIWLWMXTWNXKWLXRXKWLSW
      PWKKZXRWLXKYAEWKWPUMUNWPBHUOUPUQVHURUSXSXLUTVAWLWMWNXIXKVBAWPTFHGVCVDVEXM
      AHWSVFVGXLXOXFAHXOXLXBHKZSZXFXMXNYCXFRZXMVIZXEYCXCYEXEXDGVJVKVLXNYBXIXBWR
      VMNZLZYDXBWRVNYGXFYCYBXIYFXFYBXISYFXCVIZXFYBXBVOKWRVOKYFYHVPXIXBVQWRVQXBW
      RWAVRXCXEVSVTWBWCWDWEWFWGWHWGWIWJ $.
  $}

  ${
    $d F n x $.  $d S n x $.  $d Z n x $.  $d ph n $.
    suppssfz.z $e |- ( ph -> Z e. V ) $.
    suppssfz.f $e |- ( ph -> F e. ( B ^m NN0 ) ) $.
    suppssfz.s $e |- ( ph -> S e. NN0 ) $.
    suppssfz.b $e |- ( ph -> A. x e. NN0 ( S < x -> ( F ` x ) = Z ) ) $.
    $( Condition for a function over the nonnegative integers to have a support
       contained in a finite set of sequential integers.  (Contributed by AV,
       9-Oct-2019.) $)
    suppssfz $p |- ( ph -> ( F supp Z ) C_ ( 0 ... S ) ) $=
      ( clt wbr wceq wi cn0 co wa wcel syl vn cv cfv wral csupp cc0 cfz wss wne
      wfn cvv w3a wb cmap elmapfn nn0ex 3jca adantr elsuppfn breq2 fveq2 eqeq1d
      a1i imbi12d rspcva wn cle simplr cr nn0re lenlt syl2anr biimpar syl3anbrc
      elfz2nn0 a1d ex eqneqall jad com23 com14 pm2.43a com13 sylbid ssrdv mpdan
      imp ) ADBUBZLMZWHEUCZGNZOZBPUDZEGUEQZUFDUGQZUHKAWMRZUAWNWOWPUAUBZWNSZWQPS
      ZWQEUCZGUIZRZWQWOSZWPEPUJZPUKSZGFSZULZWRXBUMAXGWMAXDXEXFAECPUNQSXDIECPUOT
      XEAUPVCHUQURWQEUKFPGUSTAWMXBXCOXBWMAXCWSXAWMAXCOZOWSWMXAXHWMWSXAXHOZWSWMW
      SXIOZWSWMRDWQLMZWTGNZOZXJWLXMBWQPWHWQNZWIXKWKXLWHWQDLUTXNWJWTGWHWQEVAVBVD
      VEAWSXAXMXCAWSXAXMXCOOAWSRZXMXAXCXOXKXLXAXCOZXOXKVFZXPXOXQRZXCXAXRWSDPSZW
      QDVGMZXCAWSXQVHXOXSXQAXSWSJURURXOXTXQWSWQVISDVISZXTXQUMAWQVJAXSYAJDVJTWQD
      VKVLVMWQDVOVNVPVQXLXPOXOXCWTGVRVCVSVTVQWATVQWBVTWGWCWGWDWEWF $.
  $}

  ${
    $d F m x $.  $d V x $.  $d Z m x $.
    $( If a function over the nonnegative integers is finitely supported, then
       there is an upper bound for the arguments resulting in nonzero values.
       (Contributed by AV, 6-Oct-2019.) $)
    fsuppmapnn0ub $p |- ( ( F e. ( R ^m NN0 ) /\ Z e. V ) -> ( F finSupp Z
                   -> E. m e. NN0 A. x e. NN0 ( m < x -> ( F ` x ) = Z ) ) ) $=
      ( cn0 cmap co wcel wa wbr cfn cv wceq wi wral wrex simpr cvv cfsupp csupp
      clt cfv fsuppimpd wne crab wfn elmapfn adantr nn0ex a1i suppvalfn syl3anc
      ex eleq1d wn rabssnn0fi nne imbi2i ralbii rexbii sylbb syl6bi syld ) DBGH
      IJZFEJZKZDFUALZDFUBIZMJZCNANZUCLZVLDUDZFOZPZAGQZCGRZVHVIVKVHVIKDFVHVISUEU
      OVHVKVNFUFZAGUGZMJZVRVHVJVTMVHDGUHZGTJZVGVJVTOVFWBVGDBGUIUJWCVHUKULVFVGSA
      DTEGFUMUNUPWAVMVSUQZPZAGQZCGRVRVSACURWFVQCGWEVPAGWDVOVMVNFUSUTVAVBVCVDVE
      $.

    $d R m $.  $d V m $.
    $( If a function over the nonnegative integers is finitely supported, then
       there is an upper bound for a finite set of sequential integers
       containing the support of the function.  (Contributed by AV,
       30-Sep-2019.)  (Proof shortened by AV, 6-Oct-2019.) $)
    fsuppmapnn0fz $p |- ( ( F e. ( R ^m NN0 ) /\ Z e. V )
             -> ( F finSupp Z -> E. m e. NN0 ( F supp Z ) C_ ( 0 ... m ) ) ) $=
      ( vx cn0 cmap co wcel wa cfsupp wbr cv clt cfv wceq wi wral wrex suppssfz
      csupp cc0 cfz fsuppmapnn0ub simpllr simplll simplr simpr ex reximdva syld
      wss ) CAGHIJZEDJZKZCELMBNZFNZOMURCPEQRFGSZBGTCEUBIUCUQUDIUMZBGTFABCDEUEUP
      USUTBGUPUQGJZKZUSUTVBUSKFAUQCDEUNUOVAUSUFUNUOVAUSUGUPVAUSUHVBUSUIUAUJUKUL
      $.
  $}

  ${
    $d B k $.  $d C s x $.  $d ph k s x $.  $d .0. s x $.
    mptnn0fsupp.0 $e |- ( ph -> .0. e. V ) $.
    mptnn0fsupp.c $e |- ( ( ph /\ k e. NN0 ) -> C e. B ) $.
    ${

      mptnn0fsupp.s $e |- ( ph -> E. s e. NN0 A. x e. NN0
                                ( s < x -> [_ x / k ]_ C = .0. ) ) $.
      $( A mapping from the nonnegative integers is finitely supported under
         certain conditions.  (Contributed by AV, 5-Oct-2019.)  (Revised by AV,
         23-Dec-2019.) $)
      mptnn0fsupp $p |- ( ph -> ( k e. NN0 |-> C ) finSupp .0. ) $=
        ( cn0 wbr cfn wcel cv cvv wceq wral a1i cmpt cfsupp co cfv wne crab wfn
        csupp ralrimiva eqid fnmpt syl nn0ex elex suppvalfn syl3anc clt wn wrex
        wi csb nne simpr ad2antrr rspcsbela syl2anc fvmpts eqeq1d syl5bb imbi2d
        wa ralbidva rexbidva mpbird rabssnn0fi sylibr eqeltrd wfun funmpt mptex
        wb funisfsupp ) AELDUAZGUBMZWCGUHUCZNOZAWEBPZWCUDZGUEZBLUFZNAWCLUGZLQOZ
        GQOZWEWJRADCOZELSZWKAWNELJUIZELDWCCWCUJZUKULWLAUMTAGFOWMIGFUNULZBWCQQLG
        UOUPAHPZWGUQMZWIURZUTZBLSZHLUSZWJNOAXDWTEWGDVAZGRZUTZBLSZHLUSKAXCXHHLAW
        SLOZVKZXBXGBLXJWGLOZVKZXAXFWTXAWHGRXLXFWHGVBXLWHXEGXLXKXECOZWHXERXJXKVC
        ZXLXKWOXMXNAWOXIXKWPVDEWGLDCVEVFEWGDLWCCWQVGVFVHVIVJVLVMVNWIBHVOVPVQAWC
        VRZWCQOZWMWDWFWAXOAELDVSTXPAELDUMVTTWRWCQQGWBUPVN $.
    $}

    ${
      $d D k $.
      mptnn0fsuppd.d $e |- ( k = x -> C = D ) $.
      mptnn0fsuppd.s $e |- ( ph -> E. s e. NN0 A. x e. NN0
                                      ( s < x -> D = .0. ) ) $.
      $( A mapping from the nonnegative integers is finitely supported under
         certain conditions.  (Contributed by AV, 2-Dec-2019.)  (Revised by AV,
         23-Dec-2019.) $)
      mptnn0fsuppd $p |- ( ph -> ( k e. NN0 |-> C ) finSupp .0. ) $=
        ( cv clt wceq wi cn0 wral wrex wbr csbie id syl5eq imim2i ralimi reximi
        csb vex syl mptnn0fsupp ) ABCDFGHIJKAINBNZOUAZEHPZQZBRSZIRTUMFULDUHZHPZ
        QZBRSZIRTMUPUTIRUOUSBRUNURUMUNUQEHFULDEBUILUBUNUCUDUEUFUGUJUK $.
    $}

    mptnn0fsuppr.s $e |- ( ph -> ( k e. NN0 |-> C ) finSupp .0. ) $.
    $( A finitely supported mapping from the nonnegative integers fulfills
       certain conditions.  (Contributed by AV, 3-Nov-2019.)  (Revised by AV,
       23-Dec-2019.) $)
    mptnn0fsuppr $p |- ( ph -> E. s e. NN0 A. x e. NN0
                              ( s < x -> [_ x / k ]_ C = .0. ) ) $=
      ( cn0 cfn wcel wceq wi wral wa cvv syl cv csb wne crab clt wrex cmpt wfun
      wbr cfsupp csupp fsuppimp cfv wfn w3a ralrimiva eqid fnmpt nn0ex a1i elex
      co adantr suppvalfn simpr rspcsbela syl2anc fvmpts neeq1d rabbidva eleq1d
      3jca eqtrd biimpd expcom com23 imp wn rabssnn0fi nne imbi2i ralbii rexbii
      mpcom bitri sylib ) AEBUAZDUBZGUCZBLUDZMNZHUAWGUEUIZWHGOZPZBLQZHLUFZELDUG
      ZGUJUIZAWKKWRWQUHZWQGUKVBZMNZRAWKPZWQGULWSXAXBWSAXAWKAWSXAWKPAWSRZXAWKXCW
      TWJMXCWTWGWQUMZGUCZBLUDZWJXCWQLUNZLSNZGSNZUOZWTXFOAXJWSAXGXHXIADCNZELQZXG
      AXKELJUPZELDWQCWQUQZURTXHAUSUTAGFNXIIGFVATVLVCBWQSSLGVDTXCXEWIBLXCWGLNZRZ
      XDWHGXPXOWHCNZXDWHOXCXOVEZXPXOXLXQXRXCXLXOAXLWSXMVCVCEWGLDCVFVGEWGDLWQCXN
      VHVGVIVJVMVKVNVOVPVQTWDWKWLWIVRZPZBLQZHLUFWPWIBHVSYAWOHLXTWNBLXSWMWLWHGVT
      WAWBWCWEWF $.
  $}

  ${
    f13idfv.a $e |- A = ( 0 ... 2 ) $.
    $( A one-to-one function with the domain { 0, 1 ,2 } in terms of function
       values.  (Contributed by Alexander van der Vekens, 26-Jan-2018.) $)
    f13idfv $p |- ( F : A -1-1-> B
      <-> ( F : A --> B /\ ( ( F ` 0 ) =/= ( F ` 1 ) /\ ( F ` 0 ) =/= ( F ` 2 )
                             /\ ( F ` 1 ) =/= ( F ` 2 ) ) ) ) $=
      ( cc0 cz wcel c1 c2 w3a wne wf1 wf cfv wa wb 0z 1z 2z 3pm3.2i 0ne1 cfz co
      0ne2 1ne2 ctp fz0tp eqtri f13dfv mp2an ) EFGZHFGZIFGZJEHKZEIKZHIKZJABCLAB
      CMECNZHCNZKUQICNZKURUSKJOPUKULUMQRSTUNUOUPUAUDUETABFCFFEHIAEIUBUCEHIUFDUG
      UHUIUJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The infinite sequence builder "seq" - extension
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c seq $.
  $( Extend class notation with recursive sequence builder. $)
  cseq $a class seq M ( .+ , F ) $.

  ${
    $d .+ x y $.  $d F x y $.  $d M x y $.
    $( Define a general-purpose operation that builds a recursive sequence
       (i.e. a function on the positive integers ` NN ` or some other upper
       integer set) whose value at an index is a function of its previous value
       and the value of an input sequence at that index.  This definition is
       complicated, but fortunately it is not intended to be used directly.
       Instead, the only purpose of this definition is to provide us with an
       object that has the properties expressed by ~ seq1 and ~ seqp1 .
       Typically, those are the main theorems that would be used in practice.

       The first operand in the parentheses is the operation that is applied to
       the previous value and the value of the input sequence (second operand).
       The operand to the left of the parenthesis is the integer to start from.
       For example, for the operation ` + ` , an input sequence ` F ` with
       values 1, 1/2, 1/4, 1/8,... would be transformed into the output
       sequence ` seq 1 ( + , F ) ` with values 1, 3/2, 7/4, 15/8,.., so that
       ` ( seq 1 ( + , F ) `` 1 ) = 1 ` , ` ( seq 1 ( + , F ) `` 2 ) = ` 3/2,
       etc.  In other words, ` seq M ( + , F ) ` transforms a sequence ` F `
       into an infinite series. ` seq M ( + , F ) ~~> 2 ` means "the sum of
       F(n) from n = M to infinity is 2."  Since limits are unique
       ( ~ climuni ), by ~ climdm the "sum of F(n) from n = 1 to infinity" can
       be expressed as ` ( ~~> `` seq 1 ( + , F ) ) ` (provided the sequence
       converges) and evaluates to 2 in this example.

       Internally, the ` rec ` function generates as its values a set of
       ordered pairs starting at ` <. M , ( F `` M ) >. ` , with the first
       member of each pair incremented by one in each successive value.  So,
       the range of ` rec ` is exactly the sequence we want, and we just
       extract the range (restricted to omega) and throw away the domain.

       This definition has its roots in a series of theorems from ~ om2uz0i
       through ~ om2uzf1oi , originally proved by Raph Levien for use with
       ~ df-exp and later generalized for arbitrary recursive sequences.
       Definition ~ df-sum extracts the summation values from partial (finite)
       and complete (infinite) series.  (Contributed by NM, 18-Apr-2005.)
       (Revised by Mario Carneiro, 4-Sep-2013.) $)
    df-seq $a |- seq M ( .+ , F ) = ( rec (
       ( x e. _V , y e. _V |-> <. ( x + 1 ) , ( y .+ ( F ` ( x + 1 ) ) ) >. ) ,
          <. M , ( F ` M ) >. ) " _om ) $.
  $}

  ${
    $d x y F $.  $d x y .+ $.  $d x y G $.  $d x y M $.  $d x y N $.
    $d x y Q $.
    $( Existence of the sequence builder operation.  (Contributed by Mario
       Carneiro, 4-Sep-2013.) $)
    seqex $p |- seq M ( .+ , F ) e. _V $=
      ( vx vy cseq cvv cv c1 caddc cfv cop cmpt2 crdg com cima df-seq wfun wcel
      co rdgfun omex funimaexg mp2an eqeltri ) ABCFDEGGDHIJTZEHUFBKATLMZCCBKLZN
      ZOPZGDEABCQUIROGSUJGSUHUGUAUBUIOGUCUDUE $.

    $( Equality theorem for the sequence builder operation.  (Contributed by
       Mario Carneiro, 4-Sep-2013.) $)
    seqeq1 $p |- ( M = N -> seq M ( .+ , F ) = seq N ( .+ , F ) ) $=
      ( vx vy wceq cvv cv c1 caddc co cfv cop cmpt2 crdg com cima cseq df-seq
      fveq2 opeq12 mpdan rdgeq2 syl imaeq1d 3eqtr4g ) CDGZEFHHEIJKLZFIUIBMALNOZ
      CCBMZNZPZQRUJDDBMZNZPZQRABCSABDSUHUMUPQUHULUOGZUMUPGUHUKUNGUQCDBUACUKDUNU
      BUCULUOUJUDUEUFEFABCTEFABDTUG $.

    $( Equality theorem for the sequence builder operation.  (Contributed by
       Mario Carneiro, 4-Sep-2013.) $)
    seqeq2 $p |- ( .+ = Q -> seq M ( .+ , F ) = seq M ( Q , F ) ) $=
      ( vx vy wceq cvv cv c1 caddc co cfv cop cmpt2 crdg com cima cseq df-seq
      oveq opeq2d mpt2eq3dv rdgeq1 syl imaeq1d 3eqtr4g ) ABGZEFHHEIJKLZFIZUICMZ
      ALZNZOZDDCMNZPZQREFHHUIUJUKBLZNZOZUOPZQRACDSBCDSUHUPUTQUHUNUSGUPUTGUHEFHH
      UMURUHULUQUIUJUKABUAUBUCUOUNUSUDUEUFEFACDTEFBCDTUG $.

    $( Equality theorem for the sequence builder operation.  (Contributed by
       Mario Carneiro, 4-Sep-2013.) $)
    seqeq3 $p |- ( F = G -> seq M ( .+ , F ) = seq M ( .+ , G ) ) $=
      ( vx vy wceq cvv cv cfv cop cmpt2 crdg com cima cseq fveq1 opeq2d df-seq
      co c1 caddc oveq2d mpt2eq3dv rdgeq12 syl2anc imaeq1d 3eqtr4g ) BCGZEFHHEI
      UAUBTZFIZUJBJZATZKZLZDDBJZKZMZNOEFHHUJUKUJCJZATZKZLZDDCJZKZMZNOABDPACDPUI
      URVENUIUOVBGUQVDGURVEGUIEFHHUNVAUIUMUTUJUIULUSUKAUJBCQUCRUDUIUPVCDDBCQRUQ
      VDUOVBUEUFUGEFABDSEFACDSUH $.
  $}

  ${
    seqeqd.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for the sequence builder operation.  (Contributed by
       Mario Carneiro, 7-Sep-2013.) $)
    seqeq1d $p |- ( ph -> seq A ( .+ , F ) = seq B ( .+ , F ) ) $=
      ( wceq cseq seqeq1 syl ) ABCGDEBHDECHGFDEBCIJ $.

    $( Equality deduction for the sequence builder operation.  (Contributed by
       Mario Carneiro, 7-Sep-2013.) $)
    seqeq2d $p |- ( ph -> seq M ( A , F ) = seq M ( B , F ) ) $=
      ( wceq cseq seqeq2 syl ) ABCGBDEHCDEHGFBCDEIJ $.

    $( Equality deduction for the sequence builder operation.  (Contributed by
       Mario Carneiro, 7-Sep-2013.) $)
    seqeq3d $p |- ( ph -> seq M ( .+ , A ) = seq M ( .+ , B ) ) $=
      ( wceq cseq seqeq3 syl ) ABCGDBEHDCEHGFDBCEIJ $.
  $}

  ${
    seqeq123d.1 $e |- ( ph -> M = N ) $.
    seqeq123d.2 $e |- ( ph -> .+ = Q ) $.
    seqeq123d.3 $e |- ( ph -> F = G ) $.
    $( Equality deduction for the sequence builder operation.  (Contributed by
       Mario Carneiro, 7-Sep-2013.) $)
    seqeq123d $p |- ( ph -> seq M ( .+ , F ) = seq N ( Q , G ) ) $=
      ( cseq seqeq1d seqeq2d seqeq3d 3eqtrd ) ABDFKBDGKCDGKCEGKAFGBDHLABCDGIMAD
      ECGJNO $.
  $}

  ${
    $d w x z $.  $d w z F $.  $d w z .+ $.  $d w z M $.
    nfseq.1 $e |- F/_ x M $.
    nfseq.2 $e |- F/_ x .+ $.
    nfseq.3 $e |- F/_ x F $.
    $( Hypothesis builder for the sequence builder operation.  (Contributed by
       Mario Carneiro, 24-Jun-2013.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    nfseq $p |- F/_ x seq M ( .+ , F ) $=
      ( vz vw cseq cvv cv c1 co cfv cop com nfcv nffv nfop caddc crdg cima nfov
      cmpt2 df-seq nfmpt2 nfrdg nfima nfcxfr ) ABCDJHIKKHLMUANZILZUKCOZBNZPZUEZ
      DDCOZPZUBZQUCHIBCDUFAUSQAURUPHIAKKUOAKRZUTAUKUNAUKRZAULUMBAULRFAUKCGVASUD
      TUGADUQEADCGESTUHAQRUIUJ $.
  $}

  ${
    $d F w x y z $.  $d .+ w x y z $.  $d M x y $.
    seqval.1 $e |- R = ( rec (
        ( x e. _V , y e. _V |-> <. ( x + 1 ) ,
          ( x ( z e. _V , w e. _V |-> ( w .+ ( F ` ( z + 1 ) ) ) ) y ) >. ) ,
          <. M , ( F ` M ) >. ) |` _om ) $.
    $( Value of the sequence builder function.  (Contributed by Mario Carneiro,
       24-Jun-2013.) $)
    seqval $p |- seq M ( .+ , F ) = ran R $=
      ( cvv cv c1 caddc co cfv cop cmpt2 crdg com wceq cima cres cseq eqid wcel
      crn df-ima df-seq oveq1 fveq2d oveq2d ovex ovmpt2 mp2an opeq2i mpt2eq123i
      vex rdgeq1 ax-mp reseq1i eqtri rneqi 3eqtr4i ) ABJJAKZLMNZBKZVEGOZENZPZQZ
      HHGOPZRZSUAVLSUBZUFEGHUCFUFVLSUGABEGHUHFVMFABJJVEVDVFCDJJDKZCKZLMNZGOZENZ
      QZNZPZQZVKRZSUBVMIWCVLSWBVJTWCVLTABJJWAJJVIJUDZWDVTVHVEVDJUEVFJUEVTVHTAUQ
      BUQCDVDVFJJVRVHVSVNVGENVOVDTZVQVGVNEWEVPVEGVOVDLMUIUJUKVNVFVGEUIVSUDVFVGE
      ULUMUNUOUPVKWBVJURUSUTVAVBVC $.
  $}

  ${
    $d w x y z F $.  $d w x y z .+ $.  $d x y M $.
    $( The sequence builder function is a function.  (Contributed by Mario
       Carneiro, 24-Jun-2013.)  (Revised by Mario Carneiro, 15-Sep-2013.) $)
    seqfn $p |- ( M e. ZZ -> seq M ( .+ , F ) Fn ( ZZ>= ` M ) ) $=
      ( vx vy vz vw cz cseq cuz cfv wfn cc0 cvv cv c1 caddc co cmpt2 cop seqeq1
      wcel cif wceq fveq2 fneq12d crdg com cres cmpt 0z elimel eqid fvex seqval
      uzrdgfni dedth ) CHUBZABCIZCJKZLABURCMUCZIZVAJKZLCMCVAUDUTVCUSVBABCVAUACV
      AJUEUFDEVABKZVADENNDOZPQRZVEEOFGNNGOFOPQRBKARSZRTSVAVDTUGUHUIZVBVGDNVFUJV
      AUGUHUIZCMHUKULVIUMVABUNVHUMZDEFGAVHBVAVJUOUPUQ $.
  $}

  ${
    $d w x y z F $.  $d w x y z .+ $.  $d x y M $.
    $( Value of the sequence builder function at its initial value.
       (Contributed by Mario Carneiro, 24-Jun-2013.)  (Revised by Mario
       Carneiro, 15-Sep-2013.) $)
    seq1 $p |- ( M e. ZZ ->
        ( seq M ( .+ , F ) ` M ) = ( F ` M ) ) $=
      ( vx vy vz vw cz cseq cfv wceq cc0 cvv cv c1 caddc co cmpt2 cop crdg wcel
      cif seqeq1 id fveq12d fveq2 eqeq12d com cres cmpt elimel eqid fvex seqval
      0z uzrdg0i dedth ) CHUAZCABCIZJZCBJZKURCLUBZABVBIZJZVBBJZKCLCVBKZUTVDVAVE
      VFCVBUSVCABCVBUCVFUDUECVBBUFUGDEVEVBDEMMDNZOPQZVGENFGMMGNFNOPQBJAQRZQSRVB
      VESTUHUIZVCVIDMVHUJVBTUHUIZCLHUOUKVKULVBBUMVJULZDEFGAVJBVBVLUNUPUQ $.
  $}

  ${
    seq1i.1 $e |- M e. ZZ $.
    seq1i.2 $e |- ( ph -> ( F ` M ) = A ) $.
    $( Value of the sequence builder function at its initial value.
       (Contributed by Mario Carneiro, 30-Apr-2014.) $)
    seq1i $p |- ( ph -> ( seq M ( .+ , F ) ` M ) = A ) $=
      ( cseq cfv cz wcel wceq seq1 ax-mp syl5eq ) AECDEHIZEDIZBEJKPQLFCDEMNGO
      $.
  $}

  ${
    $d x y z w .+ $.  $d x y z w F $.  $d x y z w M $.  $d z w N $.
    $( Value of the sequence builder function at a successor.  (Contributed by
       Mario Carneiro, 24-Jun-2013.)  (Revised by Mario Carneiro,
       15-Sep-2013.) $)
    seqp1 $p |- ( N e. ( ZZ>= ` M ) ->
        ( seq M ( .+ , F ) ` ( N + 1 ) ) =
          ( ( seq M ( .+ , F ) ` N ) .+ ( F ` ( N + 1 ) ) ) ) $=
      ( vz vw vx vy cuz cfv wcel c1 caddc co cseq cvv cv wceq cc0 eqid cmpt2 cz
      eluzel2 wi cif fveq2 eleq2d seqeq1 fveq1d oveq2d eqeq12d imbi12d cop crdg
      com cres cmpt 0z elimel fvex seqval uzrdgsuci dedth mpcom elex oveq1 ovex
      fveq2d ovmpt2 sylancl eqtrd ) DCIJZKZDLMNZABCOZJZDDVOJZEFPPFQZEQZLMNZBJZA
      NZUAZNZVQVNBJZANZCUBKZVMVPWDRZCDUCWGVMWHUDDWGCSUEZIJZKZVNABWIOZJZDDWLJZWC
      NZRZUDCSCWIRZVMWKWHWPWQVLWJDCWIIUFUGWQVPWMWDWOWQVNVOWLABCWIUHZUIWQVQWNDWC
      WQDVOWLWRUIUJUKULGHWIBJZDWIGHPPGQZLMNZWTHQWCNUMUAWIWSUMUNUOUPZWLWCGPXAUQW
      IUNUOUPZCSUBURUSXCTWIBUTXBTZGHEFAXBBWIXDVAVBVCVDVMDPKVQPKWDWFRDVLVEDVOUTE
      FDVQPPWBWFWCVRWEANVSDRZWAWEVRAXEVTVNBVSDLMVFVHUJVRVQWEAVFWCTVQWEAVGVIVJVK
      $.
  $}

  ${
    seqp1i.1 $e |- Z = ( ZZ>= ` M ) $.
    seqp1i.2 $e |- N e. Z $.
    seqp1i.3 $e |- K = ( N + 1 ) $.
    seqp1i.4 $e |- ( ph -> ( seq M ( .+ , F ) ` N ) = A ) $.
    seqp1i.5 $e |- ( ph -> ( F ` K ) = B ) $.
    $( Value of the sequence builder function at a successor.  (Contributed by
       Mario Carneiro, 30-Apr-2014.) $)
    seqp1i $p |- ( ph -> ( seq M ( .+ , F ) ` K ) = ( A .+ B ) ) $=
      ( cseq cfv c1 caddc co fveq2i wcel wceq eleqtri seqp1 ax-mp eqtri syl5eqr
      cuz oveq12d syl5eq ) AFDEGOZPZHUKPZHQRSZEPZDSZBCDSULUNUKPZUPFUNUKLTHGUHPZ
      UAUQUPUBHIURKJUCDEGHUDUEUFAUMBUOCDMAUOFEPCFUNELTNUGUIUJ $.
  $}

  $( Value of the sequence builder function at a successor.  (Contributed by
     Mario Carneiro, 24-Jun-2013.) $)
  seqm1 $p |- ( ( M e. ZZ /\ N e. ( ZZ>= ` ( M + 1 ) ) ) ->
      ( seq M ( .+ , F ) ` N ) =
        ( ( seq M ( .+ , F ) ` ( N - 1 ) ) .+ ( F ` N ) ) ) $=
    ( cz wcel c1 caddc co cuz cfv wa cmin cseq wceq eluzp1m1 seqp1 syl fveq2d
    cc eluzelcn ax-1cn npcan sylancl adantl oveq2d 3eqtr3d ) CEFZDCGHIZJKFZLZDG
    MIZGHIZABCNZKZULUNKZUMBKZAIZDUNKUPDBKZAIUKULCJKFUOUROCDPABCULQRUKUMDUNUJUMD
    OZUHUJDTFGTFUTUIDUAUBDGUCUDUEZSUKUQUSUPAUKUMDBVASUFUG $.

  ${
    $d k n x y C $.  $d x y D $.  $d k n x y F $.  $d k n x y M $.  $d n x N $.
    $d k n x y .+ $.  $d k n x y ph $.
    seqcl2.1 $e |- ( ph -> ( F ` M ) e. C ) $.
    seqcl2.2 $e |- ( ( ph /\ ( x e. C /\ y e. D ) ) -> ( x .+ y ) e. C ) $.
    ${
      seqcl2.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
      seqcl2.4 $e |- ( ( ph /\ x e. ( ( M + 1 ) ... N ) ) -> ( F ` x ) e. D )
          $.
      $( Closure properties of the recursive sequence builder.  (Contributed by
         Mario Carneiro, 2-Jul-2013.)  (Revised by Mario Carneiro,
         27-May-2014.) $)
      seqcl2 $p |- ( ph -> ( seq M ( .+ , F ) ` N ) e. C ) $=
        ( co wcel cfv wi wceq fveq2 eleq1d vn cfz cseq cuz eluzfz2 syl cv caddc
        c1 eleq1 imbi12d imbi2d cz seq1 syl5ibr a1dd wa peano2fzr adantl imim1d
        expr wral eluzp1p1 ad2antrl elfzuz3 ad2antll elfzuzb sylanbrc ralrimiva
        adantr rspcv sylc caovclg ex mpan2d seqp1 sylibrd a2d syld expcom mpcom
        uzind4 mpd ) AIHIUBNZOZIFGHUCZPZDOZAIHUDPZOZWELHIUEUFWJAWEWHQZLABUGZWDO
        ZWLWFPZDOZQZQAHWDOZHWFPZDOZQZQAUAUGZWDOZXAWFPZDOZQZQAXAUIUHNZWDOZXFWFPZ
        DOZQZQAWKQBUAHIWLHRZWPWTAXKWMWQWOWSWLHWDUJXKWNWRDWLHWFSTUKULWLXARZWPXEA
        XLWMXBWOXDWLXAWDUJXLWNXCDWLXAWFSTUKULWLXFRZWPXJAXMWMXGWOXIWLXFWDUJXMWNX
        HDWLXFWFSTUKULWLIRZWPWKAXNWMWEWOWHWLIWDUJXNWNWGDWLIWFSTUKULHUMOZAWSWQAW
        SXOHGPZDOJXOWRXPDFGHUNTUOUPXAWIOZAXEXJAXQXEXJQAXQUQZXEXGXDQXJXRXGXBXDAX
        QXGXBXQXGUQZXBAXAHIURUSVAUTXRXGXDXIAXQXGXDXIQAXSUQZXDXCXFGPZFNZDOZXIXTX
        DYAEOZYCXTXFHUIUHNZIUBNZOZWLGPZEOZBYFVBZYDXTXFYEUDPOZIXFUDPOZYGXQYKAXGH
        XAVCVDXGYLAXQXFHIVEVFXFYEIVGVHAYJXSAYIBYFMVIVJYIYDBXFYFXMYHYAEWLXFGSTVK
        VLAXDYDUQZYCQXSAYMYCABCXCYADEDFKVMVNVJVOXTXHYBDXQXHYBRAXGFGHXAVPVDTVQVA
        VRVSVTVRWBWAWC $.
    $}

    seqf2.3 $e |- Z = ( ZZ>= ` M ) $.
    seqf2.4 $e |- ( ph -> M e. ZZ ) $.
    seqf2.5 $e |- ( ( ph /\ x e. ( ZZ>= ` ( M + 1 ) ) ) -> ( F ` x ) e. D ) $.
    $( Range of the recursive sequence builder.  (Contributed by Mario
       Carneiro, 24-Jun-2013.)  (Revised by Mario Carneiro, 27-May-2014.) $)
    seqf2 $p |- ( ph -> seq M ( .+ , F ) : Z --> C ) $=
      ( vk cuz cfv cv wcel co cseq wf wfn wral cz seqfn wa adantr adantlr simpr
      syl caddc cfz elfzuz sylan2 seqcl2 ralrimiva ffnfv sylanbrc feq2i sylibr
      c1 ) AHPQZDFGHUAZUBZIDVDUBAVDVCUCZORZVDQDSZOVCUDVEAHUESVFMFGHUFUKAVHOVCAV
      GVCSZUGBCDEFGHVGAHGQDSVIJUHABRZDSCRZESUGVJVKFTDSVIKUIAVIUJAVJHVBULTZVGUMT
      SZVJGQESZVIVMAVJVLPQSVNVJVLVGUNNUOUIUPUQOVCDVDURUSIVCDVDLUTVA $.
  $}

  ${
    $d x y .+ $.  $d x y F $.  $d x y M $.  $d x y ph $.  $d x y S $.
    $d x N $.
    seqcl.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqcl.2 $e |- ( ( ph /\ x e. ( M ... N ) ) -> ( F ` x ) e. S ) $.
    seqcl.3 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( Closure properties of the recursive sequence builder.  (Contributed by
       Mario Carneiro, 2-Jul-2013.)  (Revised by Mario Carneiro,
       27-May-2014.) $)
    seqcl $p |- ( ph -> ( seq M ( .+ , F ) ` N ) e. S ) $=
      ( cfz co wcel cv cfv wral cuz eluzfz1 syl ralrimiva wceq fveq2 rspcv sylc
      eleq1d c1 caddc cz wss eluzel2 fzp1ss sselda syldan seqcl2 ) ABCEEDFGHAGG
      HLMZNZBOZFPZENZBUPQGFPZENZAHGRPNZUQIGHSTAUTBUPJUAUTVBBGUPURGUBUSVAEURGFUC
      UFUDUEKIAURGUGUHMHLMZNURUPNUTAVDUPURAGUINZVDUPUJAVCVEIGHUKTGHULTUMJUNUO
      $.
  $}

  ${
    $d x y .+ $.  $d x y F $.  $d x y M $.  $d x y ph $.  $d x y S $.
    $d x Z $.
    seqf.1 $e |- Z = ( ZZ>= ` M ) $.
    seqf.2 $e |- ( ph -> M e. ZZ ) $.
    seqf.3 $e |- ( ( ph /\ x e. Z ) -> ( F ` x ) e. S ) $.
    seqf.4 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( Range of the recursive sequence builder (special case of ~ seqf2 ).
       (Contributed by Mario Carneiro, 24-Jun-2013.) $)
    seqf $p |- ( ph -> seq M ( .+ , F ) : Z --> S ) $=
      ( wcel cv cfv wral cuz cz uzid syl6eleqr syl ralrimiva fveq2 eleq1d rspcv
      wceq sylc c1 caddc co wa peano2uzr sylan syldan seqf2 ) ABCEEDFGHAGHMBNZF
      OZEMZBHPGFOZEMZAGGQOZHAGRMZGVAMJGSUAITAURBHKUBURUTBGHUPGUFUQUSEUPGFUCUDUE
      UGLIJAUPGUHUIUJQOMZUPHMURAVCUKUPVAHAVBVCUPVAMJGUPULUMITKUNUO $.
  $}

  ${
    $d k n x F $.  $d k n x G $.  $d k n x K $.  $d k n x N $.  $d k n x ph $.
    $d n x M $.  $d n x .+ $.
    seqfveq2.1 $e |- ( ph -> K e. ( ZZ>= ` M ) ) $.
    seqfveq2.2 $e |- ( ph -> ( seq M ( .+ , F ) ` K ) = ( G ` K ) ) $.
    ${
      seqfveq2.3 $e |- ( ph -> N e. ( ZZ>= ` K ) ) $.
      seqfveq2.4 $e |- ( ( ph /\ k e. ( ( K + 1 ) ... N ) ) ->
                         ( F ` k ) = ( G ` k ) ) $.
      $( Equality of sequences.  (Contributed by NM, 17-Mar-2005.)  (Revised by
         Mario Carneiro, 27-May-2014.) $)
      seqfveq2 $p |- ( ph ->
                       ( seq M ( .+ , F ) ` N ) = ( seq K ( .+ , G ) ` N ) ) $=
        ( co wcel cfv wceq cuz wi fveq2 eqeq12d vx vn cfz cseq eluzfz2 cv caddc
        syl c1 eleq1 imbi12d imbi2d cz eluzelz seq1 eqtr4d a1d a1i wa peano2fzr
        adantl imim1d oveq1 simpl uztrn syl2anr seqp1 ad2antrl eluzp1p1 elfzuz3
        expr wral ad2antll elfzuzb sylanbrc ralrimiva adantr rspcv sylc syl5ibr
        oveq2d a2d syld expcom uzind4 mpcom mpd ) AHFHUCMZNZHBDGUDZOZHBEFUDZOZP
        ZAHFQOZNZWIKFHUEUHWPAWIWNRZKAUAUFZWHNZWRWJOZWRWLOZPZRZRAFWHNZFWJOZFWLOZ
        PZRZRZAUBUFZWHNZXJWJOZXJWLOZPZRZRAXJUIUGMZWHNZXPWJOZXPWLOZPZRZRAWQRUAUB
        FHWRFPZXCXHAYBWSXDXBXGWRFWHUJYBWTXEXAXFWRFWJSWRFWLSTUKULWRXJPZXCXOAYCWS
        XKXBXNWRXJWHUJYCWTXLXAXMWRXJWJSWRXJWLSTUKULWRXPPZXCYAAYDWSXQXBXTWRXPWHU
        JYDWTXRXAXSWRXPWJSWRXPWLSTUKULWRHPZXCWQAYEWSWIXBWNWRHWHUJYEWTWKXAWMWRHW
        JSWRHWLSTUKULXIFUMNZAXGXDAXEFEOZXFJAYFXFYGPAFGQOZNZYFIGFUNUHBEFUOUHUPUQ
        URXJWONZAXOYAAYJXOYARAYJUSZXOXQXNRYAYKXQXKXNAYJXQXKYJXQUSZXKAXJFHUTVAVK
        VBYKXQXNXTAYJXQXNXTRXNXTAYLUSZXLXPDOZBMZXMYNBMZPXLXMYNBVCYMXRYOXSYPYMXJ
        YHNZXRYOPYLYJYIYQAYJXQVDIFXJGVEVFBDGXJVGUHYMXSXMXPEOZBMZYPYJXSYSPAXQBEF
        XJVGVHYMYNYRXMBYMXPFUIUGMZHUCMZNZCUFZDOZUUCEOZPZCUUAVLZYNYRPZYMXPYTQONZ
        HXPQONZUUBYJUUIAXQFXJVIVHXQUUJAYJXPFHVJVMXPYTHVNVOAUUGYLAUUFCUUALVPVQUU
        FUUHCXPUUAUUCXPPUUDYNUUEYRUUCXPDSUUCXPESTVRVSWAUPTVTVKWBWCWDWBWEWFWG $.
    $}

    seqfeq2.4 $e |- ( ( ph /\ k e. ( ZZ>= ` ( K + 1 ) ) ) ->
                       ( F ` k ) = ( G ` k ) ) $.
    $( Equality of sequences.  (Contributed by Mario Carneiro, 13-Jul-2013.)
       (Revised by Mario Carneiro, 27-May-2014.) $)
    seqfeq2 $p |- ( ph -> ( seq M ( .+ , F ) |` ( ZZ>= ` K ) ) =
                            seq K ( .+ , G ) ) $=
      ( vx cuz cfv cseq wfn wcel cz seqfn 3syl wceq wss eluzel2 fnssres syl2anc
      cres uzss syl eluzelz cv wa fvres adantl adantr simpr c1 caddc cfz elfzuz
      co sylan2 adantlr seqfveq2 eqtrd eqfnfvd ) AKFLMZBDGNZVEUEZBEFNZAVFGLMZOZ
      VEVIUAZVGVEOAFVIPZGQPVJHGFUBBDGRSAVLVKHGFUFUGVIVEVFUCUDAVLFQPVHVEOHGFUHBE
      FRSAKUIZVEPZUJZVMVGMZVMVFMZVMVHMVNVPVQTAVMVEVFUKULVOBCDEFGVMAVLVNHUMAFVFM
      FEMTVNIUMAVNUNACUIZFUOUPUSZVMUQUSPZVRDMVREMTZVNVTAVRVSLMPWAVRVSVMURJUTVAV
      BVCVD $.
  $}

  ${
    $d k F $.  $d k G $.  $d k M $.  $d k N $.  $d k ph $.
    seqfveq.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqfveq.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) = ( G ` k ) ) $.
    $( Equality of sequences.  (Contributed by NM, 17-Mar-2005.)  (Revised by
       Mario Carneiro, 27-May-2014.) $)
    seqfveq $p |- ( ph ->
                    ( seq M ( .+ , F ) ` N ) = ( seq M ( .+ , G ) ` N ) ) $=
      ( cz wcel cuz cfv eluzel2 syl uzid wceq cfz co fveq2 cseq seq1 cv eluzfz1
      wral ralrimiva eqeq12d rspcv sylc eqtrd c1 caddc wss fzp1ss sselda syldan
      seqfveq2 ) ABCDEFFGAFJKZFFLMZKAGUSKZURHFGNOZFPOAFBDFUAMZFDMZFEMZAURVBVCQV
      ABDFUBOAFFGRSZKZCUCZDMZVGEMZQZCVEUEVCVDQZAUTVFHFGUDOAVJCVEIUFVJVKCFVEVGFQ
      VHVCVIVDVGFDTVGFETUGUHUIUJHAVGFUKULSGRSZKVGVEKVJAVLVEVGAURVLVEUMVAFGUNOUO
      IUPUQ $.
  $}

  ${
    $d k x F $.  $d k x G $.  $d k x M $.  $d x .+ $.  $d k x ph $.
    seqfeq.1 $e |- ( ph -> M e. ZZ ) $.
    seqfeq.2 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( F ` k ) = ( G ` k ) ) $.
    $( Equality of sequences.  (Contributed by Mario Carneiro, 13-Jul-2013.)
       (Revised by Mario Carneiro, 27-May-2014.) $)
    seqfeq $p |- ( ph -> seq M ( .+ , F ) = seq M ( .+ , G ) ) $=
      ( vx cuz cfv cseq cz wcel wfn seqfn syl cv wa simpr co wceq elfzuz sylan2
      cfz adantlr seqfveq eqfnfvd ) AIFJKZBDFLZBEFLZAFMNZUJUIOGBDFPQAULUKUIOGBE
      FPQAIRZUINZSBCDEFUMAUNTACRZFUMUEUANZUODKUOEKUBZUNUPAUOUINUQUOFUMUCHUDUFUG
      UH $.
  $}

  ${
    $d k n x F $.  $d k n x G $.  $d k n x K $.  $d k n x M $.  $d k n x ph $.
    $d k n x N $.  $d n x .+ $.
    seqshft2.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqshft2.2 $e |- ( ph -> K e. ZZ ) $.
    seqshft2.3 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
                       ( F ` k ) = ( G ` ( k + K ) ) ) $.
    $( Shifting the index set of a sequence.  (Contributed by Mario Carneiro,
       27-Feb-2014.)  (Revised by Mario Carneiro, 27-May-2014.) $)
    seqshft2 $p |- ( ph -> ( seq M ( .+ , F ) ` N ) =
                           ( seq ( M + K ) ( .+ , G ) ` ( N + K ) ) ) $=
      ( co wcel cfv caddc wceq syl wi oveq1 fveq2d vx vn cfz cseq eluzfz2 cv c1
      eleq1 fveq2 eqeq12d imbi12d imbi2d ralrimiva eluzfz1 rspcdva eluzel2 seq1
      cuz cz zaddcld 3eqtr4d a1i13 wa peano2fzr adantl expr imim1d simprl seqp1
      adantr eluzadd syl2anc eluzelz zcn ax-1cn add32 mp3an2 syl2an wral simprr
      cc eqtrd oveq2d syl5ibr a2d syld expcom uzind4 mpcom mpd ) AHGHUCLZMZHBDG
      UDZNZHFOLZBEGFOLZUDZNZPZAHGURNZMZWLIGHUEQXAAWLWSRZIAUAUFZWKMZXCWMNZXCFOLZ
      WQNZPZRZRAGWKMZGWMNZWPWQNZPZRZRAUBUFZWKMZXOWMNZXOFOLZWQNZPZRZRAXOUGOLZWKM
      ZYBWMNZYBFOLZWQNZPZRZRAXBRUAUBGHXCGPZXIXNAYIXDXJXHXMXCGWKUHYIXEXKXGXLXCGW
      MUIYIXFWPWQXCGFOSTUJUKULXCXOPZXIYAAYJXDXPXHXTXCXOWKUHYJXEXQXGXSXCXOWMUIYJ
      XFXRWQXCXOFOSTUJUKULXCYBPZXIYHAYKXDYCXHYGXCYBWKUHYKXEYDXGYFXCYBWMUIYKXFYE
      WQXCYBFOSTUJUKULXCHPZXIXBAYLXDWLXHWSXCHWKUHYLXEWNXGWRXCHWMUIYLXFWOWQXCHFO
      STUJUKULGUSMZAXJXMAGDNZWPENZXKXLACUFZDNZYPFOLZENZPZYNYOPCWKGYPGPZYQYNYSYO
      YPGDUIUUAYRWPEYPGFOSTUJAYTCWKKUMZAXAXJIGHUNQUOAYMXKYNPAXAYMIGHUPQZBDGUQQA
      WPUSMXLYOPAGFUUCJUTBEWPUQQVAVBXOWTMZAYAYHAUUDYAYHRAUUDVCZYAYCXTRYHUUEYCXP
      XTAUUDYCXPUUDYCVCZXPAXOGHVDVEVFVGUUEYCXTYGAUUDYCXTYGRXTYGAUUFVCZXQYBDNZBL
      ZXSUUHBLZPXQXSUUHBSUUGYDUUIYFUUJUUGUUDYDUUIPAUUDYCVHZBDGXOVIQUUGXRUGOLZWQ
      NZXSUULENZBLZYFUUJUUGXRWPURNMZUUMUUOPUUGUUDFUSMZUUPUUKAUUQUUFJVJZFGXOVKVL
      BEWPXRVIQUUGYEUULWQUUGXOUSMZUUQYEUULPZUUGUUDUUSUUKGXOVMQUURUUSXOWAMZFWAMZ
      UUTUUQXOVNFVNUVAUGWAMUVBUUTVOXOUGFVPVQVRVLZTUUGUUHUUNXSBUUGUUHYEENZUUNUUG
      YTUUHUVDPCWKYBYPYBPZYQUUHYSUVDYPYBDUIUVEYRYEEYPYBFOSTUJAYTCWKVSUUFUUBVJAU
      UDYCVTUOUUGYEUULEUVCTWBWCVAUJWDVFWEWFWGWEWHWIWJ $.
  $}

  ${
    $d F k $.  $d M k $.
    $( Restricting its characteristic function to ` ( ZZ>= `` M ) ` does not
       affect the ` seq ` function.  (Contributed by Mario Carneiro,
       24-Jun-2013.)  (Revised by Mario Carneiro, 27-May-2014.) $)
    seqres $p |- ( M e. ZZ -> seq M ( .+ , ( F |` ( ZZ>= ` M ) ) ) =
                              seq M ( .+ , F ) ) $=
      ( vk cz wcel cuz cfv cres id cv wceq fvres adantl seqfeq ) CEFZADBCGHZIZB
      CPJDKZQFSRHSBHLPSQBMNO $.
  $}

  ${
    $d k x F $.  $d k x M $.  $d k x ph $.  $d k Z $.
    serf.1 $e |- Z = ( ZZ>= ` M ) $.
    serf.2 $e |- ( ph -> M e. ZZ ) $.
    ${
      serf.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
      $( An infinite series of complex terms is a function from ` NN ` to
         ` CC ` .  (Contributed by NM, 18-Apr-2005.)  (Revised by Mario
         Carneiro, 27-May-2014.) $)
      serf $p |- ( ph -> seq M ( + , F ) : Z --> CC ) $=
        ( vx caddc cc cv wcel wa co addcl adantl seqf ) ABIJKCDEFGHBLZKMILZKMNS
        TJOKMASTPQR $.
    $}

    serfre.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
    $( An infinite series of real numbers is a function from ` NN ` to ` RR ` .
       (Contributed by NM, 18-Apr-2005.)  (Revised by Mario Carneiro,
       27-May-2014.) $)
    serfre $p |- ( ph -> seq M ( + , F ) : Z --> RR ) $=
      ( vx caddc cr cv wcel wa co readdcl adantl seqf ) ABIJKCDEFGHBLZKMILZKMNS
      TJOKMASTPQR $.
  $}

  ${
    $d k n x F $.  $d k n x M $.  $d k n x N $.  $d k n x ph $.
    monoord.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    monoord.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. RR ) $.
    monoord.3 $e |- ( ( ph /\ k e. ( M ... ( N - 1 ) ) ) ->
                   ( F ` k ) <_ ( F ` ( k + 1 ) ) ) $.
    $( Ordering relation for a monotonic sequence, increasing case.
       (Contributed by NM, 13-Mar-2005.)  (Revised by Mario Carneiro,
       9-Feb-2014.) $)
    monoord $p |- ( ph -> ( F ` M ) <_ ( F ` N ) ) $=
      ( co wcel cfv cle wbr syl wi c1 wceq eleq1 fveq2 cr vx vn cfz cuz eluzfz2
      cv caddc breq2d imbi12d imbi2d cz wral eluzfz1 ralrimiva rspcv sylc leidd
      eleq1d a1d wa simprl simprr peano2fzr syl2anc expr imim1d eluzelz elfzuz3
      cmin eluzp1m1 elfzuzb sylanbrc adantr oveq1 fveq2d breq12d syl3anc mpan2d
      a1i letr a2d syld expcom uzind4 mpcom mpd ) AEDEUCIZJZDCKZECKZLMZAEDUDKZJ
      ZWHFDEUENWMAWHWKOZFAUAUFZWGJZWIWOCKZLMZOZOADWGJZWIWILMZOZOZAUBUFZWGJZWIXD
      CKZLMZOZOAXDPUGIZWGJZWIXICKZLMZOZOAWNOUAUBDEWODQZWSXBAXNWPWTWRXAWODWGRXNW
      QWIWILWODCSUHUIUJWOXDQZWSXHAXOWPXEWRXGWOXDWGRXOWQXFWILWOXDCSUHUIUJWOXIQZW
      SXMAXPWPXJWRXLWOXIWGRXPWQXKWILWOXICSUHUIUJWOEQZWSWNAXQWPWHWRWKWOEWGRXQWQW
      JWILWOECSUHUIUJXCDUKJAXAWTAWIAWTBUFZCKZTJZBWGULZWITJZAWMWTFDEUMNAXTBWGGUN
      ZXTYBBDWGXRDQXSWITXRDCSURUOUPZUQUSVSXDWLJZAXHXMAYEXHXMOAYEUTZXHXJXGOXMYFX
      JXEXGAYEXJXEAYEXJUTZUTZYEXJXEAYEXJVAZAYEXJVBZXDDEVCVDZVEVFYFXJXGXLAYEXJXG
      XLOYHXGXFXKLMZXLYHXDDEPVIIZUCIZJZXSXRPUGIZCKZLMZBYNULZYLYHYEYMXDUDKJZYOYI
      YHXDUKJZEXIUDKJZYTYHYEUUAYIDXDVGNYHXJUUBYJXIDEVHNXDEVJVDXDDYMVKVLAYSYGAYR
      BYNHUNVMYRYLBXDYNXRXDQZXSXFYQXKLXRXDCSZUUCYPXICXRXDPUGVNVOVPUOUPYHYBXFTJZ
      XKTJZXGYLUTXLOAYBYGYDVMYHXEYAUUEYKAYAYGYCVMZXTUUEBXDWGUUCXSXFTUUDURUOUPYH
      XJYAUUFYJUUGXTUUFBXIWGXRXIQXSXKTXRXICSURUOUPWIXFXKVTVQVRVEWAWBWCWAWDWEWF
      $.
  $}

  ${
    $d k n F $.  $d k n M $.  $d k n N $.  $d k n ph $.
    monoord2.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    monoord2.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. RR ) $.
    monoord2.3 $e |- ( ( ph /\ k e. ( M ... ( N - 1 ) ) ) ->
                   ( F ` ( k + 1 ) ) <_ ( F ` k ) ) $.
    $( Ordering relation for a monotonic sequence, decreasing case.
       (Contributed by Mario Carneiro, 18-Jul-2014.) $)
    monoord2 $p |- ( ph -> ( F ` N ) <_ ( F ` M ) ) $=
      ( vn cfv cle wbr cneg cfz co cr wcel c1 wceq syl cv cmpt wa renegcld eqid
      fmptd ffvelrnda cmin caddc wral ralrimiva fveq2d breq12d cbvralv r19.21bi
      oveq1 fveq2 sylib fzp1elp1 adantl cc cz eluzelz zcnd ax-1cn npcan sylancl
      cuz oveq2d adantr eleqtrd eleq1d rspcv sylc fzssp1 syl5sseq sselda lenegd
      mpbid negeqd negex fvmpt 3brtr4d monoord eluzfz1 eluzfz2 3brtr3d mpbird )
      AECJZDCJZKLWJMZWIMZKLADBDENOZBUAZCJZMZUBZJZEWQJZWKWLKAIWQDEFAWMPIUAZWQABW
      MWPPWQAWNWMQUCWOGUDWQUEZUFUGAWTDERUHOZNOZQZUCZWTCJZMZWTRUIOZCJZMZWTWQJZXH
      WQJZKXEXIXFKLZXGXJKLAXMIXCAWNRUIOZCJZWOKLZBXCUJXMIXCUJAXPBXCHUKXPXMBIXCWN
      WTSZXOXIWOXFKXQXNXHCWNWTRUIUPULWNWTCUQZUMUNURUOXEXIXFXEXHWMQZWOPQZBWMUJZX
      IPQZXEXHDXBRUIOZNOZWMXDXHYDQAWTDXBUSUTAYDWMSXDAYCEDNAEVAQRVAQYCESAEAEDVHJ
      QZEVBQFDEVCTVDVEERVFVGVIZVJVKZAYAXDAXTBWMGUKZVJZXTYBBXHWMWNXHSZWOXIPWNXHC
      UQZVLVMVNXEWTWMQZYAXFPQZAXCWMWTAYDXCWMDXBVOYFVPVQZYIXTYMBWTWMXQWOXFPXRVLV
      MVNVRVSXEYLXKXGSYNBWTWPXGWMWQXQWOXFXRVTXAXFWAWBTXEXSXLXJSYGBXHWPXJWMWQYJW
      OXIYKVTXAXIWAWBTWCWDADWMQZWRWKSAYEYOFDEWETZBDWPWKWMWQWNDSZWOWJWNDCUQZVTXA
      WJWAWBTAEWMQZWSWLSAYEYSFDEWFTZBEWPWLWMWQWNESZWOWIWNECUQZVTXAWIWAWBTWGAWIW
      JAYSYAWIPQZYTYHXTUUCBEWMUUAWOWIPUUBVLVMVNAYOYAWJPQZYPYHXTUUDBDWMYQWOWJPYR
      VLVMVNVRWH $.
  $}

  ${
    $d k x y F $.  $d k x y K $.  $d k x y M $.  $d k x y N $.  $d k x y ph $.
    sermono.1 $e |- ( ph -> K e. ( ZZ>= ` M ) ) $.
    sermono.2 $e |- ( ph -> N e. ( ZZ>= ` K ) ) $.
    sermono.3 $e |- ( ( ph /\ x e. ( M ... N ) ) -> ( F ` x ) e. RR ) $.
    sermono.4 $e |- ( ( ph /\ x e. ( ( K + 1 ) ... N ) ) -> 0 <_ ( F ` x ) ) $.
    $( The partial sums in an infinite series of positive terms form a
       monotonic sequence.  (Contributed by NM, 17-Mar-2005.)  (Revised by
       Mario Carneiro, 30-Jun-2013.) $)
    sermono $p |- ( ph ->
                    ( seq M ( + , F ) ` K ) <_ ( seq M ( + , F ) ` N ) ) $=
      ( caddc cfz co wcel cr cfv adantl syl c1 cle vk vy cv wa cuz elfzuz uztrn
      cseq syl2anr wss elfzuz3 fzss2 sselda adantlr syldan readdcl cmin cc0 wbr
      seqcl wral simpr cz adantr eluzelz peano2zm elfzelz 1zzd fzaddel syl22anc
      wb mpbid wceq cc zcn ax-1cn npcan sylancl oveq2d eleqtrd ralrimiva breq2d
      fveq2 rspcv fzelp1 fzss1 fzp1elp1 sseldd eleq1d addge01d breqtrrd monoord
      sylc seqp1 ) AUAKCEUHZDFHAUAUCZDFLMZNZUDZBUBKOCEWPWRWPDUEPZNDEUEPZNZWPXAN
      ZAWPDFUFGDWPEUGUIZWSBUCZEWPLMZNXEEFLMZNZXECPZONZWSXFXGXEWSFWPUEPNZXFXGUJW
      RXKAWPDFUKQWPEFULRUMAXHXJWRIUNUOXEONUBUCZONUDXEXLKMONWSXEXLUPQUTZAWPDFSUQ
      MZLMNZUDZWPWOPZXQWPSKMZCPZKMZXRWOPZTXPURXSTUSZXQXTTUSXPXRDSKMZFLMZNURXITU
      SZBYDVAZYBXPXRYCXNSKMZLMZYDXPXOXRYHNZAXOVBXPDVCNZXNVCNZWPVCNZSVCNXOYIVKXP
      XBYJAXBXOGVDZEDVERXPFVCNZYKXPFWTNZYNAYOXOHVDDFVERZFVFRXOYLAWPDXNVGQXPVHWP
      SDXNVIVJVLXPYGFYCLXPYNYGFVMZYPYNFVNNSVNNYQFVOVPFSVQVRRZVSVTAYFXOAYEBYDJWA
      VDYEYBBXRYDXEXRVMZXIXSURTXEXRCWCZWBWDWMXPXQXSAXOWRXQONXPWPDYGLMZWQXOWPUUA
      NAWPDXNWEQXPYGFDLYRVSZVTZXMUOXPXRXGNXJBXGVAZXSONZXPWQXGXRXPXBWQXGUJYMDEFW
      FRXPXRUUAWQXOXRUUANAWPDXNWGQUUBVTWHAUUDXOAXJBXGIWAVDXJUUEBXRXGYSXIXSOYTWI
      WDWMWJVLXPXCYAXTVMAXOWRXCUUCXDUOKCEWPWNRWKWL $.
  $}

  ${
    $d n x y z F $.  $d n x y z K $.  $d n x y z M $.  $d n x y z ph $.
    $d n x y z N $.  $d n x y z .+ $.  $d x y z S $.
    seqsplit.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    seqsplit.2 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
                       ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) ) $.
    seqsplit.3 $e |- ( ph -> N e. ( ZZ>= ` ( M + 1 ) ) ) $.
    ${
      seqsplit.4 $e |- ( ph -> M e. ( ZZ>= ` K ) ) $.
      seqsplit.5 $e |- ( ( ph /\ x e. ( K ... N ) ) -> ( F ` x ) e. S ) $.
      $( Split a sequence into two sequences.  (Contributed by NM,
         17-Mar-2005.)  (Revised by Mario Carneiro, 27-May-2014.) $)
      seqsplit $p |- ( ph -> ( seq K ( .+ , F ) ` N ) =
          ( ( seq K ( .+ , F ) ` M ) .+ ( seq ( M + 1 ) ( .+ , F ) ` N ) ) ) $=
        ( co wcel cfv wceq wi vn c1 caddc cfz cseq cuz eluzfz2 syl eleq1 oveq2d
        cv fveq2 eqeq12d imbi12d imbi2d cz seqp1 eluzel2 seq1 3syl eqtr4d a1i13
        peano2fzr adantl expr imim1d oveq1 simprl peano2uz adantr uztrn syl2anc
        wa simpl wss eluzelz peano2uzr fzss2 sselda seqcl elfzuz3 fzss1 adantlr
        syldan sstrd eleq1d wral ralrimiva simpr ssel2 syl2an caovassg syl13anc
        rspcdva syl5ibr a2d syld expcom uzind4 mpcom mpd ) AJIUBUCPZJUDPZQZJEGH
        UEZRZIXERZJEGXBUEZRZEPZSZAJXBUFRZQZXDMXBJUGUHXMAXDXKTZMABUKZXCQZXOXERZX
        GXOXHRZEPZSZTZTAXBXCQZXBXERZXGXBXHRZEPZSZTZTAUAUKZXCQZYHXERZXGYHXHRZEPZ
        SZTZTAYHUBUCPZXCQZYOXERZXGYOXHRZEPZSZTZTAXNTBUAXBJXOXBSZYAYGAUUBXPYBXTY
        FXOXBXCUIUUBXQYCXSYEXOXBXEULUUBXRYDXGEXOXBXHULUJUMUNUOXOYHSZYAYNAUUCXPY
        IXTYMXOYHXCUIUUCXQYJXSYLXOYHXEULUUCXRYKXGEXOYHXHULUJUMUNUOXOYOSZYAUUAAU
        UDXPYPXTYTXOYOXCUIUUDXQYQXSYSXOYOXEULUUDXRYRXGEXOYOXHULUJUMUNUOXOJSZYAX
        NAUUEXPXDXTXKXOJXCUIUUEXQXFXSXJXOJXEULUUEXRXIXGEXOJXHULUJUMUNUOXBUPQZAY
        BYFAYCXGXBGRZEPZYEAIHUFRZQZYCUUHSNEGHIUQUHAYDUUGXGEAXMUUFYDUUGSMXBJUREG
        XBUSUTUJVAVBYHXLQZAYNUUAAUUKYNUUATAUUKVMZYNYPYMTUUAUULYPYIYMAUUKYPYIUUK
        YPVMZYIAYHXBJVCVDZVEVFUULYPYMYTAUUKYPYMYTTYMYTAUUMVMZYJYOGRZEPZYLUUPEPZ
        SYJYLUUPEVGUUOYQUUQYSUURUUOYHUUIQZYQUUQSUUOUUKXBUUIQZUUSAUUKYPVHZAUUTUU
        MAUUJUUTNHIVIZUHVJXBYHHVKVLEGHYHUQUHUUOYSXGYKUUPEPZEPZUURUUOYRUVCXGEUUO
        UUKYRUVCSUVAEGXBYHUQUHUJUUOAXGFQZYKFQUUPFQZUURUVDSAUUMVNAUVEUUMABCEFGHI
        NAXOHIUDPZQXOHJUDPZQZXOGRZFQZAUVGUVHXOAJIUFRQZUVGUVHVOAIUPQZXMUVLAUUJUV
        MNHIVPUHMIJVQVLIHJVRUHVSOWDKVTVJUUOBCEFGXBYHUVAUUOXOXBYHUDPZQUVIUVKUUOU
        VNUVHXOUUOUVNXCUVHUUOYIJYHUFRQUVNXCVOUUNYHXBJWAYHXBJVRUTAXCUVHVOZUUMAUU
        JUUTUVONUVBXBHJWBUTZVJWEVSAUVIUVKUUMOWCWDAXOFQCUKZFQVMXOUVQEPFQUUMKWCVT
        UUOUVKUVFBUVHYOUUDUVJUUPFXOYOGULWFAUVKBUVHWGUUMAUVKBUVHOWHVJAUVOYPYOUVH
        QUUMUVPUUKYPWIXCUVHYOWJWKWNABCDXGYKUUPFELWLWMVAUMWOVEWPWQWRWPWSWTXA $.
    $}

    seq1p.4 $e |- ( ph -> M e. ZZ ) $.
    seq1p.5 $e |- ( ( ph /\ x e. ( M ... N ) ) -> ( F ` x ) e. S ) $.
    $( Removing the first term from a sequence.  (Contributed by NM,
       17-Mar-2005.)  (Revised by Mario Carneiro, 27-May-2014.) $)
    seq1p $p |- ( ph -> ( seq M ( .+ , F ) ` N ) =
                  ( ( F ` M ) .+ ( seq ( M + 1 ) ( .+ , F ) ` N ) ) ) $=
      ( cseq cfv c1 co wcel syl caddc cuz uzid seqsplit wceq seq1 oveq1d eqtrd
      cz ) AIEGHOZPHUJPZIEGHQUAROPZERHGPZULERABCDEFGHHIJKLAHUISZHHUBPSMHUCTNUDA
      UKUMULEAUNUKUMUEMEGHUFTUGUH $.
  $}

  ${
    $d k n x y z F $.  $d k n z H $.  $d k n x y z N $.  $d k n x y z ph $.
    $d k n x y z G $.  $d k n x y z M $.  $d k n x y z Q $.  $d n x y z .+ $.
    $d k x y z S $.
    seqcaopr3.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    seqcaopr3.2 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x Q y ) e. S ) $.
    seqcaopr3.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqcaopr3.4 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. S ) $.
    seqcaopr3.5 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( G ` k ) e. S ) $.
    seqcaopr3.6 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
                        ( H ` k ) = ( ( F ` k ) Q ( G ` k ) ) ) $.
    seqcaopr3.7 $e |- ( ( ph /\ n e. ( M ..^ N ) ) ->
      ( ( ( seq M ( .+ , F ) ` n ) Q ( seq M ( .+ , G ) ` n ) ) .+
        ( ( F ` ( n + 1 ) ) Q ( G ` ( n + 1 ) ) ) ) =
      ( ( ( seq M ( .+ , F ) ` n ) .+ ( F ` ( n + 1 ) ) ) Q
        ( ( seq M ( .+ , G ) ` n ) .+ ( G ` ( n + 1 ) ) ) ) ) $.
    $( Lemma for ~ seqcaopr2 .  (Contributed by Mario Carneiro,
       25-Apr-2016.) $)
    seqcaopr3 $p |- ( ph -> ( seq M ( .+ , H ) ` N ) =
                   ( ( seq M ( .+ , F ) ` N ) Q ( seq M ( .+ , G ) ` N ) ) ) $=
      ( vz cfz co wcel cseq cfv wceq cuz eluzfz2 cv wi c1 caddc oveq12d eqeq12d
      syl fveq2 imbi2d wral eluzfz1 ralrimiva rspcv sylc cz eluzel2 3eqtr4d a1i
      seq1 wa oveq1 elfzouz adantl seqp1 fzofzp1 adantr oveq2d 3eqtr4rd syl5ibr
      cfzo expcom a2d fzind2 mpcom ) MLMUBUCZUDZAMDKLUEZUFZMDILUEZUFZMDJLUEZUFZ
      EUCZUGZAMLUHUFZUDZWEPLMUIUPAUAUJZWFUFZWPWHUFZWPWJUFZEUCZUGZUKALWFUFZLWHUF
      ZLWJUFZEUCZUGZUKZAHUJZWFUFZXHWHUFZXHWJUFZEUCZUGZUKAXHULUMUCZWFUFZXNWHUFZX
      NWJUFZEUCZUGZUKAWMUKUAHMLMWPLUGZXAXFAXTWQXBWTXEWPLWFUQXTWRXCWSXDEWPLWHUQW
      PLWJUQUNUOURWPXHUGZXAXMAYAWQXIWTXLWPXHWFUQYAWRXJWSXKEWPXHWHUQWPXHWJUQUNUO
      URWPXNUGZXAXSAYBWQXOWTXRWPXNWFUQYBWRXPWSXQEWPXNWHUQWPXNWJUQUNUOURWPMUGZXA
      WMAYCWQWGWTWLWPMWFUQYCWRWIWSWKEWPMWHUQWPMWJUQUNUOURXGWOALKUFZLIUFZLJUFZEU
      CZXBXEALWDUDZGUJZKUFZYIIUFZYIJUFZEUCZUGZGWDUSZYDYGUGZAWOYHPLMUTUPAYNGWDSV
      AZYNYPGLWDYILUGZYJYDYMYGYILKUQYRYKYEYLYFEYILIUQYILJUQUNUOVBVCALVDUDZXBYDU
      GAWOYSPLMVEUPZDKLVHUPAYSXEYGUGYTYSXCYEXDYFEDILVHDJLVHUNUPVFVGXHLMVSUCUDZA
      XMXSAUUAXMXSUKXMXSAUUAVIZXIXNKUFZDUCZXLUUCDUCZUGXIXLUUCDVJUUBXOUUDXRUUEUU
      BXHWNUDZXOUUDUGUUAUUFAXHLMVKVLZDKLXHVMUPUUBXLXNIUFZXNJUFZEUCZDUCXJUUHDUCZ
      XKUUIDUCZEUCZUUEXRTUUBUUCUUJXLDUUBXNWDUDZYOUUCUUJUGZUUAUUNALMXHVNVLAYOUUA
      YQVOYNUUOGXNWDYIXNUGZYJUUCYMUUJYIXNKUQUUPYKUUHYLUUIEYIXNIUQYIXNJUQUNUOVBV
      CVPUUBUUFXRUUMUGUUGUUFXPUUKXQUULEDILXHVMDJLXHVMUNUPVQUOVRVTWAWBWC $.
  $}

  ${
    $d k n w x y z F $.  $d k n z H $.  $d k n x y z N $.  $d k n w x y z ph $.
    $d k n w x y z G $.  $d k n w x y z M $.  $d k n w x y z Q $.
    $d n w x y z .+ $.  $d k w x y z S $.
    seqcaopr2.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    seqcaopr2.2 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x Q y ) e. S ) $.
    seqcaopr2.3 $e |- ( ( ph /\
                        ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ) ->
                  ( ( x Q z ) .+ ( y Q w ) ) = ( ( x .+ y ) Q ( z .+ w ) ) ) $.
    seqcaopr2.4 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqcaopr2.5 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. S ) $.
    seqcaopr2.6 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( G ` k ) e. S ) $.
    seqcaopr2.7 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
                        ( H ` k ) = ( ( F ` k ) Q ( G ` k ) ) ) $.
    $( The sum of two infinite series (generalized to an arbitrary commutative
       and associative operation).  (Contributed by Mario Carneiro,
       30-May-2014.) $)
    seqcaopr2 $p |- ( ph -> ( seq M ( .+ , H ) ` N ) =
                   ( ( seq M ( .+ , F ) ` N ) Q ( seq M ( .+ , G ) ` N ) ) ) $=
      ( vn cv cfzo co wcel wa cseq cfv c1 caddc wceq cuz elfzouz adantl cfz wss
      wral elfzouz2 fzss2 syl sselda ralrimiva adantr fveq2 eleq1d sylan syldan
      rspccva adantlr fzofzp1 syl2an anassrs ralrimivva oveq1d eqeq12d 2ralbidv
      seqcl oveq1 oveq2d oveq2 rspc2va syl21anc seqcaopr3 ) ABCFGHIUBJKLMNOPRST
      UAAUBUCZMNUDUEUFZUGZWEFKMUHUIZHUFWEUJUKUEZKUIZHUFZWEFJMUHUIZDUCZGUEZWIJUI
      ZEUCZGUEZFUEZWLWOFUEZWMWPFUEZGUEZULZEHURDHURZWLWHGUEZWOWJGUEZFUEZWSWHWJFU
      EZGUEZULZWGBCFHKMWEWFWEMUMUIUFAWEMNUNUOZWGBUCZMWEUPUEZUFZXKMNUPUEZUFZXKKU
      IZHUFZWGXLXNXKWGNWEUMUIUFZXLXNUQWFXRAWEMNUSUOWEMNUTVAVBZWGIUCZKUIZHUFZIXN
      URZXOXQAYCWFAYBIXNTVCZVDYBXQIXKXNXTXKULZYAXPHXTXKKVEVFVIVGVHAXKHUFCUCZHUF
      UGZXKYFFUEZHUFWFOVJZVRAYCWIXNUFZWKWFYDMNWEVKZYBWKIWIXNXTWIULZYAWJHXTWIKVE
      VFVIVLWGWLHUFWOHUFZXKWMGUEZYFWPGUEZFUEZYHWTGUEZULZEHURDHURZCHURBHURZXCWGB
      CFHJMWEXJWGXMXOXKJUIZHUFZXSAXOUUBWFAXTJUIZHUFZIXNURZXOUUBAUUDIXNSVCZUUDUU
      BIXKXNYEUUCUUAHXTXKJVEVFVIVGVJVHYIVRAUUEYJYMWFUUFYKUUDYMIWIXNYLUUCWOHXTWI
      JVEVFVIVLAYTWFAYSBCHHAYGUGYRDEHHAYGWMHUFWPHUFUGYRQVMVNVNVDYSXCWNYOFUEZWLY
      FFUEZWTGUEZULZEHURDHURBCWLWOHHXKWLULZYRUUJDEHHUUKYPUUGYQUUIUUKYNWNYOFXKWL
      WMGVSVOUUKYHUUHWTGXKWLYFFVSVOVPVQYFWOULZUUJXBDEHHUULUUGWRUUIXAUULYOWQWNFY
      FWOWPGVSVTUULUUHWSWTGYFWOWLFWAVOVPVQWBWCXBXIXDWQFUEZWSWHWPFUEZGUEZULDEWHW
      JHHWMWHULZWRUUMXAUUOUUPWNXDWQFWMWHWLGWAVOUUPWTUUNWSGWMWHWPFVSVTVPWPWJULZU
      UMXFUUOXHUUQWQXEXDFWPWJWOGWAVTUUQUUNXGWSGWPWJWHFWAVTVPWBWCWD $.
  $}

  ${
    $d a b c d k F $.  $d a b c d k G $.  $d c k H $.  $d a b c d k x y z ph $.
    $d a b c d k M $.  $d a b c d k x y z .+ $.  $d a b c d k x y z S $.
    $d a b c k N $.
    seqcaopr.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    seqcaopr.2 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                       ( x .+ y ) = ( y .+ x ) ) $.
    seqcaopr.3 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
                       ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) ) $.
    seqcaopr.4 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqcaopr.5 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. S ) $.
    seqcaopr.6 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( G ` k ) e. S ) $.
    seqcaopr.7 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
                        ( H ` k ) = ( ( F ` k ) .+ ( G ` k ) ) ) $.
    $( The sum of two infinite series (generalized to an arbitrary commutative
       and associative operation).  (Contributed by NM, 17-Mar-2005.)  (Revised
       by Mario Carneiro, 30-May-2014.) $)
    seqcaopr $p |- ( ph -> ( seq M ( .+ , H ) ` N ) =
                  ( ( seq M ( .+ , F ) ` N ) .+ ( seq M ( .+ , G ) ` N ) ) ) $=
      ( co va vb vc vd cv caovclg wcel wa simpl simprrl simprlr caovcomg oveq1d
      syl12anc simprrr caovassg syl13anc 3eqtr3d oveq2d simprll adantrl 3eqtr4d
      wceq seqcaopr2 ) AUAUBUCUDEEFGHIJKLABCUAUEZUBUEZFFFEMUFZVGAVEFUGZVFFUGZUH
      ZUCUEZFUGZUDUEZFUGZUHZUHZUHZVEVKVFVMETZETZETZVEVFVKVMETZETZETZVEVKETVRETZ
      VEVFETWAETZVQVSWBVEEVQVKVFETZVMETZVFVKETZVMETZVSWBVQWFWHVMEVQAVLVIWFWHVCA
      VPUIZAVJVLVNUJZAVHVIVOUKZABCVKVFFENULUNUMVQAVLVIVNWGVSVCWJWKWLAVJVLVNUOZA
      BCDVKVFVMFEOUPUQVQAVIVLVNWIWBVCWJWLWKWMABCDVFVKVMFEOUPUQURUSVQAVHVLVRFUGZ
      WDVTVCWJAVHVIVOUTZWKVQAVIVNWNWJWLWMABCVFVMFFFEMUFUNABCDVEVKVRFEOUPUQVQAVH
      VIWAFUGZWEWCVCWJWOWLAVOWPVJABCVKVMFFFEMUFVAABCDVEVFWAFEOUPUQVBPQRSVD $.
  $}

  ${
    $d f g k x y z F $.  $d f g k m n x y z G $.  $d f g k m n s t w x y z M $.
    $d f g k m n s t w x y z .+ $.  $d f g x y z J $.  $d f g k m n x y z N $.
    $d k m n x y z K $.  $d f g k m n s t w x y z ph $.  $d k s t w x y z S $.
    $d f g k s t w x y z C $.  $d k H $.
    seqf1o.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    seqf1o.2 $e |- ( ( ph /\ ( x e. C /\ y e. C ) ) ->
                     ( x .+ y ) = ( y .+ x ) ) $.
    seqf1o.3 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
                     ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) ) $.
    seqf1o.4 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqf1o.5 $e |- ( ph -> C C_ S ) $.
    ${
      seqf1olem2a.1 $e |- ( ph -> G : A --> C ) $.
      seqf1olem2a.3 $e |- ( ph -> K e. A ) $.
      seqf1olem2a.4 $e |- ( ph -> ( M ... N ) C_ A ) $.
      $( Lemma for ~ seqf1o .  (Contributed by Mario Carneiro, 24-Apr-2016.) $)
      seqf1olem2a $p |- ( ph ->
        ( ( G ` K ) .+ ( seq M ( .+ , G ) ` N ) ) =
        ( ( seq M ( .+ , G ) ` N ) .+ ( G ` K ) ) ) $=
        ( vm vn cfz co wcel cfv cseq wceq cuz eluzfz2 syl cv wi c1 caddc oveq2d
        oveq1d eqeq12d imbi2d ffvelrnd eluzel2 seq1 3syl eluzfz1 sseldd eqeltrd
        fveq2 cz caovcomd a1i cfzo wa oveq1 elfzouz adantl seqp1 adantlr adantr
        w3a wss wf elfzouz2 fzss2 sstrd sselda fzofzp1 caovassd 3eqtr4d syl5ibr
        seqcl eqtr4d expcom a2d fzind2 mpcom ) LKLUCUDZUEZAJIUFZLGIKUGZUFZGUDZW
        TWRGUDZUHZALKUIUFZUEZWQPKLUJUKAWRUAULZWSUFZGUDZXGWRGUDZUHZUMAWRKWSUFZGU
        DZXKWRGUDZUHZUMZAWRUBULZWSUFZGUDZXQWRGUDZUHZUMAWRXPUNUOUDZWSUFZGUDZYBWR
        GUDZUHZUMAXCUMUAUBLKLXFKUHZXJXNAYFXHXLXIXMYFXGXKWRGXFKWSVGZUPYFXGXKWRGY
        GUQURUSXFXPUHZXJXTAYHXHXRXIXSYHXGXQWRGXFXPWSVGZUPYHXGXQWRGYIUQURUSXFYAU
        HZXJYEAYJXHYCXIYDYJXGYBWRGXFYAWSVGZUPYJXGYBWRGYKUQURUSXFLUHZXJXCAYLXHXA
        XIXBYLXGWTWRGXFLWSVGZUPYLXGWTWRGYMUQURUSXOXEABCWRXKFGNAEFJIRSUTZAXKKIUF
        ZFAXEKVHUEXKYOUHPKLVAGIKVBVCAEFKIRAWPEKTAXEKWPUEPKLVDUKVEUTVFVIVJXPKLVK
        UDUEZAXTYEAYPXTYEUMXTYEAYPVLZXRYAIUFZGUDZXSYRGUDZUHXRXSYRGVMYQYCYSYDYTY
        QYCWRXQYRGUDZGUDYSYQYBUUAWRGYQXPXDUEZYBUUAUHYPUUBAXPKLVNVOZGIKXPVPUKZUP
        YQBCDWRXQYRHGABULZHUEZCULZHUEZDULZHUEVSUUEUUGGUDZUUIGUDUUEUUGUUIGUDGUDU
        HYPOVQZAWRHUEYPAFHWRQYNVEVRZYQBCGHIKXPUUCYQUUEKXPUCUDZUEZVLZFHUUEIUFYQF
        HVTZUUNAUUPYPQVRZVRUUOEFUUEIYQEFIWAZUUNAUURYPRVRZVRYQUUMEUUEYQUUMWPEYQL
        XPUIUFUEZUUMWPVTYPUUTAXPKLWBVOXPKLWCUKAWPEVTYPTVRZWDWEUTVEAUUFUUHVLUUJH
        UEYPMVQWJZYQFHYRUUQYQEFYAIUUSYQWPEYAUVAYPYAWPUEAKLXPWFVOVEUTZVEZWGWKYQU
        UAWRGUDXQYRWRGUDZGUDZYDYTYQBCDXQYRWRHGUUKUVBUVDUULWGYQYBUUAWRGUUDUQYQYT
        XQWRYRGUDZGUDUVFYQBCDXQWRYRHGUUKUVBUULUVDWGYQUVEUVGXQGYQBCYRWRFGAUUEFUE
        UUGFUEVLUUJUUGUUEGUDUHYPNVQUVCAWRFUEYPYNVRVIUPWKWHURWIWLWMWNWO $.
    $}

    ${
      seqf1olem.5 $e |- ( ph ->
                  F : ( M ... ( N + 1 ) ) -1-1-onto-> ( M ... ( N + 1 ) ) ) $.
      seqf1olem.6 $e |- ( ph -> G : ( M ... ( N + 1 ) ) --> C ) $.
      seqf1olem.7 $e |- J = ( k e. ( M ... N ) |->
                              ( F ` if ( k < K , k , ( k + 1 ) ) ) ) $.
      seqf1olem.8 $e |- K = ( `' F ` ( N + 1 ) ) $.
      $( Lemma for ~ seqf1o .  (Contributed by Mario Carneiro, 26-Feb-2014.)
         (Revised by Mario Carneiro, 27-May-2014.) $)
      seqf1olem1 $p |- ( ph -> J : ( M ... N ) -1-1-onto-> ( M ... N ) ) $=
        ( cfz co cv clt wbr c1 caddc cif cfv ccnv cmin cvv wcel fvexd fvex ovex
        wa ifex a1i wceq wi iftrue fveq2d eqeq2d adantl simprr wne elfzelz zred
        wb cr ad2antlr simprl gtned wn wo wf wf1o f1of syl fzssp1 simplr sseldi
        ad2antrr ffvelrnd cuz elfzp1 mpbid f1ocnvfv syl2anc eqeq1i syl6ibr syld
        ord necon1ad mpd eqeltrd eqcomd eqbrtrd eqtr2d sylbid iffalse cz f1ocnv
        jca expr wf1 f1of1 f1f peano2uz eluzfz2 syl5eqel peano2re lenltd mpbird
        cle ltp1d lelttrd ltned fzp1elp1 breq1d lttr syl3anc mpand oveq1d recnd
        mtod ax-1cn sylancl 3eqtrrd pm2.61dan expimpd elfzle1 elfzle2 mpbir2and
        cc adantr pncan eluzelz peano2zd ltletrd zleltp1 eluzel2 elfz f1ocnvfv2
        peano2zm f1fveq syl12anc necon3bid neeq1i sylibr necomd ltlend breqtrrd
        zltlem1 letrd 1re lesubadd mp3an2 zcnd npcan eqtrd impbid f1od ) AHBMNU
[encoded data, 4240 characters]
        EVWJVWKAUXEUWBVWNTWGVWTVWLWMYMXHXIXDYNYOUVFUVG $.

      seqf1olem.9 $e |- ( ph -> A. g A. f
                       ( ( f : ( M ... N ) -1-1-onto-> ( M ... N ) /\
                           g : ( M ... N ) --> C ) ->
            ( seq M ( .+ , ( g o. f ) ) ` N ) = ( seq M ( .+ , g ) ` N ) ) ) $.
      $( Lemma for ~ seqf1o .  (Contributed by Mario Carneiro, 27-Feb-2014.)
         (Revised by Mario Carneiro, 24-Apr-2016.) $)
      seqf1olem2 $p |- ( ph -> ( seq M ( .+ , ( G o. F ) ) ` ( N + 1 ) ) =
                              ( seq M ( .+ , G ) ` ( N + 1 ) ) ) $=
        ( cfz co cres ccom cseq cfv c1 caddc cvv wcel wa cv wf1o wf wceq wi wal
        cfn wfn wss ffn syl fzssp1 fnssres sylancl fnfi syl2anc elex seqf1olem1
        fzfid f1of fex2 syl3anc jca fssres f1oeq1 seqeq3d fveq1d adantl seqfveq
        fvres oveq1d adantlr w3a cuz elfzuz3 elfzuz fco fssd ffvelrnda seqsplit
        eqtrd wo biimpa sylan 3syl peano2uz ffvelrnd elfzelz simpr adantr fzss1
        cz sselda syldan clt wbr cif fveq2d wn cle cr zred mpbid 3eqtr4d eqtr2d
        fvco3 oveq12d seqeq1d cmin eluzp1m1 syl2an cc zcnd eleqtrrd fzss2 seqcl
        ax-1cn wb 3jca caovassg seqp1 ad2antrr elfzp1 feq1 coeq1 coeq2 sylan9eq
        bi2anan9r simpl eqeq12d imbi12d spc2gv syl3c elfzp12 seqeq1 eqcomd ccnv
        eluzp1p1 f1ocnv eluzfz2 seq1 sylan9eqr eluzfz1 eqeltrd seqf1olem2a 1zzd
        syl5eqel breq1 id oveq1 ifbieq12d fvmpt elfzle1 lenltd iffalse fzp1elp1
        seqshft2 fveq2i f1ocnvfv2 syl5eq eqtr4d 3eqtrd eluzel2 eluzelz peano2zm
        pncan npcan eqeltrrd elfzm11 simp3d iftrue fzp1ss sseldd seqm1 peano2re
        fvex oveq2d jaodan elfzle2 ltp1d lelttrd simplr breqtrrd wne fzelp1 ord
        gtned f1ocnvfv eqeq1i syl6ibr syld necon1ad mpd syl5eqr eqtr3d mpjaodan
        ) APFLOPUGUHZUIZMUJZOUKZULZPUMUNUHZLULZFUHZPFLOUKZULZUXTFUHZUXSFLKUJZOU
[encoded data, 5840 characters]
        VVGWSZVYBAVXGVXPXUJYOTNOPYTVHXTUXMAVXGUYHUYDVATFLOPYRVHYA $.
    $}

    seqf1o.6 $e |- ( ph -> F : ( M ... N ) -1-1-onto-> ( M ... N ) ) $.
    seqf1o.7 $e |- ( ( ph /\ x e. ( M ... N ) ) -> ( G ` x ) e. C ) $.
    seqf1o.8 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
                     ( H ` k ) = ( G ` ( F ` k ) ) ) $.
    $( Rearrange a sum via an arbitrary bijection on ` ( M ... N ) ` .
       (Contributed by Mario Carneiro, 27-Feb-2014.)  (Revised by Mario
       Carneiro, 24-Apr-2016.) $)
    seqf1o $p |-
               ( ph -> ( seq M ( .+ , H ) ` N ) = ( seq M ( .+ , G ) ` N ) ) $=
      ( vf vg vt vs vw cfz co cv cfv cmpt ccom cseq wf1o wf wceq eqid fmptd wal
      wa wi cuz wcel c1 caddc oveq2 f1oeq23 syl2anc feq2d anbi12d fveq2 eqeq12d
      wb imbi12d 2albidv imbi2d weq f1of adantr elfz3 fvco3 syl2anr ffvelrn csn
      cz fzsn eleq2d elsni syl6bi imp syldan adantrr fveq2d eqtrd seq1 alrimivv
      3eqtr4d ex a1d f1oeq1 bi2anan9r coeq1 coeq2 sylan9eq seqeq3d fveq1d simpl
      feq1 cbval2v ccnv clt wbr cif simplll sylan w3a simpllr wss simprl simprr
      syl simplr sylib seqf1olem2 exp31 syl5bir alrimdv syl5bi expcom a2d mpcom
      uzind4 cfn cvv wfn fvex fnmpti fzfi fvmpt seqfveq fnfi mp2an fex2 syl3anc
      ovexd spc2gv sylancr mpd mp2and ffvelrnda adantl 3eqtr3d ) AMFBLMUGUHZBUI
      ZJUJZUKZIULZLUMZUJZMFUUPLUMZUJZMFKLUMUJMFJLUMUJAUUMUUMIUNZUUMEUUPUOZUUSUV
      AUPZSABUUMUUOEUUPTUUPUQZURAUUMUUMUBUIZUNZUUMEUCUIZUOZUTZMFUVHUVFULZLUMZUJ
      ZMFUVHLUMZUJZUPZVAZUBUSUCUSZUVBUVCUTZUVDVAZMLVBUJZVCAUVRQALUUNUGUHZUWBUVF
      UNZUWBEUVHUOZUTZUUNUVLUJZUUNUVNUJZUPZVAZUBUSUCUSZVAALLUGUHZUWKUVFUNZUWKEU
      VHUOZUTZLUVLUJZLUVNUJZUPZVAZUBUSUCUSZVAALHUIZUGUHZUXAUVFUNZUXAEUVHUOZUTZU
      WTUVLUJZUWTUVNUJZUPZVAZUBUSUCUSZVAALUWTVDVEUHZUGUHZUXKUVFUNZUXKEUVHUOZUTZ
      UXJUVLUJZUXJUVNUJZUPZVAZUBUSZUCUSZVAAUVRVABHLMUUNLUPZUWJUWSAUYAUWIUWRUCUB
      UYAUWEUWNUWHUWQUYAUWCUWLUWDUWMUYAUWBUWKUPZUYBUWCUWLVMUUNLLUGVFZUYCUWBUWKU
      WBUWKUVFVGVHUYAUWBUWKEUVHUYCVIVJUYAUWFUWOUWGUWPUUNLUVLVKUUNLUVNVKVLVNVOVP
      BHVQZUWJUXIAUYDUWIUXHUCUBUYDUWEUXDUWHUXGUYDUWCUXBUWDUXCUYDUWBUXAUPZUYEUWC
      UXBVMUUNUWTLUGVFZUYFUWBUXAUWBUXAUVFVGVHUYDUWBUXAEUVHUYFVIVJUYDUWFUXEUWGUX
      FUUNUWTUVLVKUUNUWTUVNVKVLVNVOVPUUNUXJUPZUWJUXTAUYGUWIUXRUCUBUYGUWEUXNUWHU
      XQUYGUWCUXLUWDUXMUYGUWBUXKUPZUYHUWCUXLVMUUNUXJLUGVFZUYIUWBUXKUWBUXKUVFVGV
      HUYGUWBUXKEUVHUYIVIVJUYGUWFUXOUWGUXPUUNUXJUVLVKUUNUXJUVNVKVLVNVOVPUUNMUPZ
      UWJUVRAUYJUWIUVQUCUBUYJUWEUVJUWHUVPUYJUWCUVGUWDUVIUYJUWBUUMUPZUYKUWCUVGVM
      UUNMLUGVFZUYLUWBUUMUWBUUMUVFVGVHUYJUWBUUMEUVHUYLVIVJUYJUWFUVMUWGUVOUUNMUV
      LVKUUNMUVNVKVLVNVOVPLWEVCZUWSAUYMUWRUCUBUYMUWNUWQUYMUWNUTZLUVKUJZLUVHUJZU
      WOUWPUYNUYOLUVFUJZUVHUJZUYPUWNUWKUWKUVFUOZLUWKVCZUYOUYRUPUYMUWLUYSUWMUWKU
      WKUVFVRZVSLVTZUWKUWKLUVHUVFWAWBUYNUYQLUVHUYMUWLUYQLUPZUWMUYMUWLUYQUWKVCZV
      UCUWLUYSUYTVUDUYMVUAVUBUWKUWKLUVFWCWBUYMVUDVUCUYMVUDUYQLWDZVCVUCUYMUWKVUE
      UYQLWFWGUYQLWHWIWJWKWLWMWNUYMUWOUYOUPUWNFUVKLWOVSUYMUWPUYPUPUWNFUVHLWOVSW
      QWRWPWSUWTUWAVCZAUXIUXTAVUFUXIUXTVAUXIUXAUXAUDUIZUNZUXAEUEUIZUOZUTZUWTFVU
      IVUGULZLUMZUJZUWTFVUILUMZUJZUPZVAZUDUSUEUSZAVUFUTZUXTUXHVURUCUBUEUDUCUEVQ
      ZUBUDVQZUTZUXDVUKUXGVUQVVBUXBVUHVVAUXCVUJUXAUXAUVFVUGWTUXAEUVHVUIXHXAVVCU
      XEVUNUXFVUPVVCUWTUVLVUMVVCUVKVULFLVVAVVBUVKVUIUVFULVULUVHVUIUVFXBUVFVUGVU
      IXCXDXEXFVVCUWTUVNVUOVVCUVHVUIFLVVAVVBXGXEXFVLVNXIZVUTVUSUXSUCVUTVUSUXRUB
      VUSUXIVUTUXRVVDVUTUXIUXNUXQVUTUXIUTZUXNUTZBCDEFGUDUEUFUVFUVHUFUXAUFUIZUXJ
      UVFXJUJZXKXLVVGVVGVDVEUHXMUVFUJUKZVVHLUWTVVFAUUNGVCZCUIZGVCZUTUUNVVKFUHZG
      VCAVUFUXIUXNXNZNXOVVFAUUNEVCVVKEVCUTVVMVVKUUNFUHUPVVNOXOVVFAVVJVVLDUIZGVC
      XPVVMVVOFUHUUNVVKVVOFUHFUHUPVVNPXOAVUFUXIUXNXQVVFAEGXRVVNRYAVVEUXLUXMXSVV
      EUXLUXMXTVVIUQVVHUQVVFUXIVUSVUTUXIUXNYBVVDYCYDYEYFYGYGYHYIYJYLYKAUUPYMVCZ
      IYNVCZUVRUVTVAUUPUUMYOUUMYMVCVVPBUUMUUOUUPUUNJYPUVEYQLMYRUUMUUPUUAUUBAUUM
      UUMIUOZUUMYNVCZVVSVVQAUVBVVRSUUMUUMIVRYAZALMUGUUEZVWAUUMUUMIYNYNUUCUUDUVQ
      UVTUCUBUUPIYMYNUVHUUPUPZUVFIUPZUTZUVJUVSUVPUVDVWCUVGUVBVWBUVIUVCUUMUUMUVF
      IWTUUMEUVHUUPXHXAVWDUVMUUSUVOUVAVWDMUVLUURVWDUVKUUQFLVWBVWCUVKUUPUVFULUUQ
      UVHUUPUVFXBUVFIUUPXCXDXEXFVWDMUVNUUTVWDUVHUUPFLVWBVWCXGXEXFVLVNUUFUUGUUHU
      UIAFHUUQKLMQAUWTUUMVCZUTZUWTIUJZUUPUJZVWGJUJZUWTUUQUJZUWTKUJVWFVWGUUMVCVW
      HVWIUPAUUMUUMUWTIVVTUUJBVWGUUOVWIUUMUUPUUNVWGJVKUVEVWGJYPYSYAAVVRVWEVWJVW
      HUPVVTUUMUUMUWTUUPIWAXOUAWQYTAFHUUPJLMQVWEUWTUUPUJUWTJUJZUPABUWTUUOVWKUUM
      UUPUUNUWTJVKUVEUWTJYPYSUUKYTUUL $.
  $}

  ${
    $d k x y z F $.  $d k x y z G $.  $d k x y z M $.  $d k x y z ph $.
    $d k z H $.  $d k x y z N $.
    seradd.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seradd.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. CC ) $.
    seradd.3 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( G ` k ) e. CC ) $.
    seradd.4 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
                     ( H ` k ) = ( ( F ` k ) + ( G ` k ) ) ) $.
    $( The sum of two infinite series.  (Contributed by NM, 17-Mar-2005.)
       (Revised by Mario Carneiro, 26-May-2014.) $)
    seradd $p |- ( ph -> ( seq M ( + , H ) ` N ) =
                   ( ( seq M ( + , F ) ` N ) + ( seq M ( + , G ) ` N ) ) ) $=
      ( vx vy vz caddc cc cv wcel co adantl wa addcl addcom w3a addass seqcaopr
      wceq ) ALMNOPBCDEFGLQZPRZMQZPRZUAZUHUJOSZPRAUHUJUBTULUMUJUHOSUGAUHUJUCTUI
      UKNQZPRUDUMUNOSUHUJUNOSOSUGAUHUJUNUETHIJKUF $.
  $}

  ${
    $d k w x y z F $.  $d k w x y z G $.  $d k w x y z M $.  $d k w x y z ph $.
    $d k z H $.  $d k x y z N $.
    sersub.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    sersub.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. CC ) $.
    sersub.3 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( G ` k ) e. CC ) $.
    sersub.4 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
                     ( H ` k ) = ( ( F ` k ) - ( G ` k ) ) ) $.
    $( The difference of two infinite series.  (Contributed by NM,
       17-Mar-2005.)  (Revised by Mario Carneiro, 27-May-2014.) $)
    sersub $p |- ( ph -> ( seq M ( + , H ) ` N ) =
                   ( ( seq M ( + , F ) ` N ) - ( seq M ( + , G ) ` N ) ) ) $=
      ( vx caddc cmin cc cv wcel wa co adantl vy vz vw addcl subcl wceq addsub4
      eqcomd seqcaopr2 ) ALUAUBUCMNOBCDEFGLPZOQUAPZOQRZUJUKMSZOQAUJUKUDTULUJUKN
      SOQAUJUKUETULUBPZOQUCPZOQRRZUJUNNSUKUONSMSZUMUNUOMSNSZUFAUPURUQUJUKUNUOUG
      UHTHIJKUI $.
  $}

  ${
    $d x y .+ $.  $d x y F $.  $d x y M $.  $d x y ph $.  $d x y Z $.
    $d x N $.
    seqid3.1 $e |- ( ph -> ( Z .+ Z ) = Z ) $.
    seqid3.2 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqid3.3 $e |- ( ( ph /\ x e. ( M ... N ) ) -> ( F ` x ) = Z ) $.
    $( A sequence that consists entirely of "zeroes" sums to "zero".  More
       precisely, a constant sequence with value an element which is a ` .+ `
       -idempotent sums (or " ` .+ ` 's") to that element.  (Contributed by
       Mario Carneiro, 15-Dec-2014.) $)
    seqid3 $p |- ( ph -> ( seq M ( .+ , F ) ` N ) = Z ) $=
      ( vy cfv wcel wceq cv co wa elsn sylibr elsni cseq csn cfz fvex oveqan12d
      ovex eleq1d syl5ibrcom imp seqcl syl ) AFCDEUALZGUBZMULGNABKCUMDEFIABOZEF
      UCPMQUNDLZGNUOUMMJUOGUNDUDRSAUNUMMZKOZUMMZQZUNUQCPZUMMZAVAUSGGCPZUMMZAVBG
      NVCHVBGGGCUFRSUSUTVBUMUPURUNGUQGCUNGTUQGTUEUGUHUIUJULGTUK $.
  $}

  ${
    $d x .+ $.  $d x F $.  $d x M $.  $d x N $.  $d x S $.  $d x Z $.
    $d x ph $.
    seqid.1 $e |- ( ( ph /\ x e. S ) -> ( Z .+ x ) = x ) $.
    seqid.2 $e |- ( ph -> Z e. S ) $.
    seqid.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqid.4 $e |- ( ph -> ( F ` N ) e. S ) $.
    seqid.5 $e |- ( ( ph /\ x e. ( M ... ( N - 1 ) ) ) -> ( F ` x ) = Z ) $.
    $( Discarding the first few terms of a sequence that starts with all zeroes
       (or any element which is a left-identity for ` .+ ` ) has no effect on
       its sum.  (Contributed by Mario Carneiro, 13-Jul-2013.)  (Revised by
       Mario Carneiro, 27-May-2014.) $)
    seqid $p |-
           ( ph -> ( seq M ( .+ , F ) |` ( ZZ>= ` N ) ) = seq N ( .+ , F ) ) $=
      ( wceq cfv c1 co cuz wcel adantr cseq caddc cz eluzelz seq1 seqeq1 fveq1d
      3syl eqeq1d syl5ibcom wa cmin eluzel2 seqm1 sylan cv wral ralrimiva oveq2
      syl id eqeq12d rspcv sylc eluzp1m1 cfz adantlr seqid3 oveq1d 3eqtrd ex wo
      uzp1 mpjaod eqidd seqfeq2 ) ACBEEGFKAGFNZGCEFUAZOZGEOZNZGFPUBQROSZAGCEGUA
      ZOZVTNZVQWAAGFROZSZGUCSWEKFGUDCEGUEUHVQWDVSVTVQGWCVRCEGFUFUGUIUJAWBWAAWBU
      KZVSGPULQZVROZVTCQZHVTCQZVTAFUCSZWBVSWKNAWGWMKFGUMUTZCEFGUNUOWHWJHVTCWHBC
      EFWIHAHHCQZHNZWBAHDSHBUPZCQZWQNZBDUQZWPJAWSBDIURZWSWPBHDWQHNZWRWOWQHWQHHC
      USXBVAVBVCVDTAWMWBWIWFSWNFGVEUOAWQFWIVFQSWQEOZHNWBMVGVHVIWHVTDSZWTWLVTNZA
      XDWBLTAWTWBXATWSXEBVTDWQVTNZWRWLWQVTWQVTHCUSXFVAVBVCVDVJVKAWGVQWBVLKFGVMU
      TVNAWQGPUBQROSUKXCVOVP $.
  $}

  ${
    $d n x F $.  $d n x K $.  $d n x M $.  $d n x N $.  $d n x ph $.  $d x S $.
    $d n x .+ $.  $d x Z $.
    seqid2.1 $e |- ( ( ph /\ x e. S ) -> ( x .+ Z ) = x ) $.
    seqid2.2 $e |- ( ph -> K e. ( ZZ>= ` M ) ) $.
    seqid2.3 $e |- ( ph -> N e. ( ZZ>= ` K ) ) $.
    seqid2.4 $e |- ( ph -> ( seq M ( .+ , F ) ` K ) e. S ) $.
    seqid2.5 $e |- ( ( ph /\ x e. ( ( K + 1 ) ... N ) ) -> ( F ` x ) = Z ) $.
    $( The last few partial sums of a sequence that ends with all zeroes (or
       any element which is a right-identity for ` .+ ` ) are all the same.
       (Contributed by Mario Carneiro, 13-Jul-2013.)  (Revised by Mario
       Carneiro, 27-May-2014.) $)
    seqid2 $p |-
               ( ph -> ( seq M ( .+ , F ) ` K ) = ( seq M ( .+ , F ) ` N ) ) $=
      ( co wcel cfv wceq wi fveq2 vn cfz cseq cuz eluzfz2 syl cv c1 caddc eleq1
      eqeq2d imbi12d imbi2d cz eqidd 2a1i wa peano2fzr adantl expr imim1d oveq1
      wral eluzp1p1 ad2antrl elfzuz3 ad2antll elfzuzb sylanbrc ralrimiva adantr
      eqeq1d rspcv sylc oveq2d id eqeq12d eqtr2d simprl uztrn syl2anc seqp1 a2d
      syl5ibr syld expcom uzind4 mpcom mpd ) AHFHUBOZPZFCEGUCZQZHWLQZRZAHFUDQZP
      ZWKLFHUEUFWQAWKWOSZLABUGZWJPZWMWSWLQZRZSZSAFWJPZWMWMRZSZSAUAUGZWJPZWMXGWL
      QZRZSZSAXGUHUIOZWJPZWMXLWLQZRZSZSAWRSBUAFHWSFRZXCXFAXQWTXDXBXEWSFWJUJXQXA
      WMWMWSFWLTUKULUMWSXGRZXCXKAXRWTXHXBXJWSXGWJUJXRXAXIWMWSXGWLTUKULUMWSXLRZX
      CXPAXSWTXMXBXOWSXLWJUJXSXAXNWMWSXLWLTUKULUMWSHRZXCWRAXTWTWKXBWOWSHWJUJXTX
      AWNWMWSHWLTUKULUMXFFUNPAXDWMUOUPXGWPPZAXKXPAYAXKXPSAYAUQZXKXMXJSXPYBXMXHX
      JAYAXMXHYAXMUQZXHAXGFHURUSUTVAYBXMXJXOAYAXMXJXOSXJXOAYCUQZWMXLEQZCOZXIYEC
      OZRWMXIYECVBYDWMYFXNYGYDYFWMICOZWMYDYEIWMCYDXLFUHUIOZHUBOZPZWSEQZIRZBYJVC
      ZYEIRZYDXLYIUDQPZHXLUDQPZYKYAYPAXMFXGVDVEXMYQAYAXLFHVFVGXLYIHVHVIAYNYCAYM
      BYJNVJVKYMYOBXLYJXSYLYEIWSXLETVLVMVNVOAYHWMRZYCAWMDPWSICOZWSRZBDVCYRMAYTB
      DJVJYTYRBWMDWSWMRZYSYHWSWMWSWMICVBUUAVPVQVMVNVKVRYDXGGUDQZPZXNYGRYDYAFUUB
      PZUUCAYAXMVSAUUDYCKVKFXGGVTWACEGXGWBUFVQWDUTWCWEWFWCWGWHWI $.
  $}

  ${
    $d n x y F $.  $d n x y H $.  $d n x y M $.  $d n x y N $.  $d n x y ph $.
    $d n x G $.  $d x y K $.  $d n x y .+ $.  $d n x y Q $.  $d x y S $.
    $d x y Z $.
    seqhomo.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    seqhomo.2 $e |- ( ( ph /\ x e. ( M ... N ) ) -> ( F ` x ) e. S ) $.
    ${
      seqhomo.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
      seqhomo.4 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                        ( H ` ( x .+ y ) ) = ( ( H ` x ) Q ( H ` y ) ) ) $.
      seqhomo.5 $e |- ( ( ph /\ x e. ( M ... N ) ) ->
                        ( H ` ( F ` x ) ) = ( G ` x ) ) $.
      $( Apply a homomorphism to a sequence.  (Contributed by Mario Carneiro,
         28-Jul-2013.)  (Revised by Mario Carneiro, 27-May-2014.) $)
      seqhomo $p |- ( ph -> ( H ` ( seq M ( .+ , F ) ` N ) ) =
                                  ( seq M ( Q , G ) ` N ) ) $=
        ( wcel cfv wceq wi vn cfz co cseq cuz eluzfz2 syl cv caddc eleq1 fveq2d
        c1 fveq2 eqeq12d imbi12d imbi2d cz wral eluzfz1 ralrimiva rspcv eluzel2
        sylc seq1 3syl 3eqtr4d a1d a1i wa simprl simprr peano2fzr syl2anc oveq1
        expr imim1d seqp1 ad2antrl ralrimivva adantr wss elfzuz3 sselda adantlr
        fzss2 syldan seqcl eleq1d oveq1d oveq2 oveq2d rspc2v mpd 3eqtrd syl5ibr
        a2d syld expcom uzind4 mpcom ) AKJKUBUCZQZKDGJUDZRZIRZKEHJUDZRZSZAKJUER
        ZQZXBNJKUFUGXJAXBXHTZNABUHZXAQZXLXCRZIRZXLXFRZSZTZTAJXAQZJXCRZIRZJXFRZS
        ZTZTZAUAUHZXAQZYFXCRZIRZYFXFRZSZTZTAYFULUIUCZXAQZYMXCRZIRZYMXFRZSZTZTAX
        KTBUAJKXLJSZXRYDAYTXMXSXQYCXLJXAUJYTXOYAXPYBYTXNXTIXLJXCUMUKXLJXFUMUNUO
        UPXLYFSZXRYLAUUAXMYGXQYKXLYFXAUJUUAXOYIXPYJUUAXNYHIXLYFXCUMUKXLYFXFUMUN
        UOUPXLYMSZXRYSAUUBXMYNXQYRXLYMXAUJUUBXOYPXPYQUUBXNYOIXLYMXCUMUKXLYMXFUM
        UNUOUPXLKSZXRXKAUUCXMXBXQXHXLKXAUJUUCXOXEXPXGUUCXNXDIXLKXCUMUKXLKXFUMUN
        UOUPYEJUQQZAYCXSAJGRZIRZJHRZYAYBAXSXLGRZIRZXLHRZSZBXAURZUUFUUGSZAXJXSNJ
        KUSUGAUUKBXAPUTZUUKUUMBJXAYTUUIUUFUUJUUGYTUUHUUEIXLJGUMUKXLJHUMUNVAVCAX
        TUUEIAXJUUDXTUUESNJKVBZDGJVDVEUKAXJUUDYBUUGSNUUOEHJVDVEVFVGVHYFXIQZAYLY
        SAUUPYLYSTAUUPVIZYLYNYKTYSUUQYNYGYKAUUPYNYGAUUPYNVIZVIZUUPYNYGAUUPYNVJZ
        AUUPYNVKZYFJKVLVMZVOVPUUQYNYKYRAUUPYNYKYRTYKYRUUSYIYMHRZEUCZYJUVCEUCZSY
        IYJUVCEVNUUSYPUVDYQUVEUUSYPYHYMGRZDUCZIRZYIUVFIRZEUCZUVDUUSYOUVGIUUPYOU
        VGSAYNDGJYFVQVRUKUUSXLCUHZDUCZIRZXLIRZUVKIRZEUCZSZCFURBFURZUVHUVJSZAUVR
        UURAUVQBCFFOVSVTUUSYHFQUVFFQZUVRUVSTUUSBCDFGJYFUUTUUSXLJYFUBUCZQXMUUHFQ
        ZUUSUWAXAXLUUSYGKYFUERQUWAXAWAUVBYFJKWBYFJKWEVEWCAXMUWBUURMWDWFAXLFQUVK
        FQVIUVLFQUURLWDWGUUSYNUWBBXAURZUVTUVAAUWCUURAUWBBXAMUTVTUWBUVTBYMXAUUBU
        UHUVFFXLYMGUMZWHVAVCUVQUVSYHUVKDUCZIRZYIUVOEUCZSBCYHUVFFFXLYHSZUVMUWFUV
        PUWGUWHUVLUWEIXLYHUVKDVNUKUWHUVNYIUVOEXLYHIUMWIUNUVKUVFSZUWFUVHUWGUVJUW
        IUWEUVGIUVKUVFYHDWJUKUWIUVOUVIYIEUVKUVFIUMWKUNWLVMWMUUSUVIUVCYIEUUSYNUU
        LUVIUVCSZUVAAUULUURUUNVTUUKUWJBYMXAUUBUUIUVIUUJUVCUUBUUHUVFIUWDUKXLYMHU
        MUNVAVCWKWNUUPYQUVESAYNEHJYFVQVRUNWOVOWPWQWRWPWSWTWM $.
    $}

    seqz.3 $e |- ( ( ph /\ x e. S ) -> ( Z .+ x ) = Z ) $.
    seqz.4 $e |- ( ( ph /\ x e. S ) -> ( x .+ Z ) = Z ) $.
    seqz.5 $e |- ( ph -> K e. ( M ... N ) ) $.
    seqz.6 $e |- ( ph -> N e. V ) $.
    seqz.7 $e |- ( ph -> ( F ` K ) = Z ) $.
    $( If the operation ` .+ ` has an absorbing element ` Z ` (a.k.a. zero
       element), then any sequence containing a ` Z ` evaluates to ` Z ` .
       (Contributed by Mario Carneiro, 27-May-2014.) $)
    seqz $p |- ( ph -> ( seq M ( .+ , F ) ` N ) = Z ) $=
      ( wcel wceq cseq cfv cfz co cuz elfzuz syl c1 caddc cz eluzelz seq1 eqtrd
      seqeq1 fveq1d eqeq1d syl5ibcom wa cmin eluzel2 seqm1 sylan adantr cv wral
      oveq2d eluzp1m1 wss fzssp1 cc ax-1cn npcan sylancl syl5sseq elfzuz3 fzss2
      zcnd sstrd sselda adantlr syldan seqcl ralrimiva oveq1 rspcv sylc ex uzp1
      wo mpjaod eqtr4d eqidd seqfveq2 csn fvex sylibr simprl velsn sylib oveq1d
      elsn simprr oveq2 ovex peano2uz fzss1 seqcl2 elsni ) AIDFHUAZUBIDFGUAZUBZ
      KADBFFGHIAGHIUCUDZSZGHUEUBZSZPGHIUFUGZAGXIUBZKGFUBZAGHTZXQKTZGHUHUIUDUEUB
      SZAGXJUBZKTXSXTAYBXRKAGUJSZYBXRTAXOYCXPHGUKUGZDFGULUGRUMXSYBXQKXSGXJXIDFG
      HUNUOUPUQAYAXTAYAURZXQGUHUSUDZXIUBZXRDUDZKAHUJSZYAXQYHTAXOYIXPHGUTUGZDFHG
      VAVBYEYHYGKDUDZKYEXRKYGDAXRKTZYARVCVFYEYGESBVDZKDUDZKTZBEVEZYKKTZYEBCDEFH
      YFAYIYAYFXNSYJHGVGVBYEYMHYFUCUDZSYMXLSZYMFUBZESZYEYRXLYMAYRXLVHYAAYRHGUCU
      DZXLAHYFUHUIUDZUCUDYRUUBHYFVIAUUCGHUCAGVJSUHVJSUUCGTAGYDVQVKGUHVLVMVFVNAI
      GUEUBSZUUBXLVHAXMUUDPGHIVOUGZGHIVPUGVRVCVSAYSUUAYAMVTWAAYMESCVDZESZURYMUU
      FDUDZESYALVTWBAYPYAAYOBEOWCVCYOYQBYGEYMYGTYNYKKYMYGKDWDUPWEWFUMUMWGAXOXSY
      AWIXPHGWHUGWJRWKUUEAYMGUHUIUDZIUCUDZSZURYTWLWMAXKKWNZSXKKTABCUULEDFGIAYLX
      RUULSRXRKGFWOXAWPAYMUULSZUUGURZURZUUHKTUUHUULSUUOUUHKUUFDUDZKUUOYMKUUFDUU
      OUUMYMKTAUUMUUGWQBKWRWSWTUUOUUGKYMDUDZKTZBEVEZUUPKTZAUUMUUGXBAUUSUUNAUURB
      ENWCVCUURUUTBUUFEYMUUFTUUQUUPKYMUUFKDXCUPWEWFUMUUHKYMUUFDXDXAWPUUEAUUKYSU
      UAAUUJXLYMAUUIXNSZUUJXLVHAXOUVAXPHGXEUGUUIHIXFUGVSMWAXGXKKXHUGUM $.
  $}

  ${
    $d x y .+ $.  $d x y F $.  $d x y M $.  $d x y N $.  $d x y ph $.
    $d x y Q $.  $d x y S $.
    seqfeq4.m $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqfeq4.f $e |- ( ( ph /\ x e. ( M ... N ) ) -> ( F ` x ) e. S ) $.
    seqfeq4.cl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    seqfeq4.id $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
        ( x .+ y ) = ( x Q y ) ) $.
    $( Equality of series under different addition operations which agree on an
       additively closed subset.  (Contributed by Mario Carneiro,
       25-Apr-2016.) $)
    seqfeq4 $p |- ( ph ->
      ( seq M ( .+ , F ) ` N ) = ( seq M ( Q , F ) ` N ) ) $=
      ( cfv cid cvv wcel wceq fvi ax-mp cseq fvex cv wa co ovex oveq12i 3eqtr4g
      vex cfz mp1i seqhomo syl5eqr ) AIDGHUAZNZUOONZIEGHUANUOPQUPUORIUNUBUOPSTA
      BCDEFGGOHILKJABUCZFQCUCZFQUDUDUQURDUEZUQUREUEUSONZUQONZURONZEUEMUSPQUTUSR
      UQURDUFUSPSTVAUQVBUREUQPQVAUQRBUIUQPSTURPQVBURRCUIURPSTUGUHUQGNZPQVCONVCR
      AUQHIUJUEQUDUQGUBVCPSUKULUM $.
  $}

  ${
    $d ph a x y $.  $d F a x y $.  $d M a x y $.  $d .+ a x y $.  $d Q a x y $.
    $d S x y $.
    seqfeq3.m $e |- ( ph -> M e. ZZ ) $.
    seqfeq3.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    seqfeq3.cl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    seqfeq3.id $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
        ( x .+ y ) = ( x Q y ) ) $.
    $( Equality of series under different addition operations which agree on an
       additively closed subset.  (Contributed by Stefan O'Rear, 21-Mar-2015.)
       (Revised by Mario Carneiro, 25-Apr-2016.) $)
    seqfeq3 $p |- ( ph -> seq M ( .+ , F ) = seq M ( Q , F ) ) $=
      ( va cfv cseq wcel wfn cv wa co cuz cz seqfn syl cfz simpll elfzuz adantl
      simpr syl2anc adantlr wceq seqfeq4 eqfnfvd ) AMHUANZDGHOZEGHOZAHUBPZUPUOQ
      IDGHUCUDAURUQUOQIEGHUCUDAMRZUOPZSZBCDEFGHUSAUTUIVABRZHUSUETPZSAVBUOPZVBGN
      FPAUTVCUFVCVDVAVBHUSUGUHJUJAVBFPCRZFPSZVBVEDTZFPUTKUKAVFVGVBVEETULUTLUKUM
      UN $.
  $}

  ${
    $d x y z C $.  $d x y z G $.  $d x y z M $.  $d x y z N $.  $d x y z .+ $.
    $d x F $.  $d x y ph $.  $d x y z S $.  $d x y z T $.
    seqdistr.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    seqdistr.2 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                        ( C T ( x .+ y ) ) = ( ( C T x ) .+ ( C T y ) ) ) $.
    seqdistr.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqdistr.4 $e |- ( ( ph /\ x e. ( M ... N ) ) -> ( G ` x ) e. S ) $.
    seqdistr.5 $e |- ( ( ph /\ x e. ( M ... N ) ) ->
                       ( F ` x ) = ( C T ( G ` x ) ) ) $.
    $( The distributive property for series.  (Contributed by Mario Carneiro,
       28-Jul-2013.)  (Revised by Mario Carneiro, 27-May-2014.) $)
    seqdistr $p |- ( ph -> ( seq M ( .+ , F ) ` N ) =
                           ( C T ( seq M ( .+ , G ) ` N ) ) ) $=
      ( vz cfv co wcel cseq cv cmpt wceq oveq2 eqid fvmpt syl ad2antrl ad2antll
      wa ovex oveq12d 3eqtr4d cfz eqtr4d seqhomo seqcl eqtr3d ) AKEIJUARZQFDQUB
      ZGSZUCZRZKEHJUARDUTGSZABCEEFIHVCJKLONABUBZFTZCUBZFTZUKUKZDVFVHESZGSZDVFGS
      ZDVHGSZESVKVCRZVFVCRZVHVCRZESMVJVKFTVOVLUDLQVKVBVLFVCVAVKDGUEVCUFZDVKGULU
      GUHVJVPVMVQVNEVGVPVMUDAVIQVFVBVMFVCVAVFDGUEVRDVFGULUGUIVIVQVNUDAVGQVHVBVN
      FVCVAVHDGUEVRDVHGULUGUJUMUNAVFJKUOSTUKZVFIRZVCRZDVTGSZVFHRVSVTFTWAWBUDOQV
      TVBWBFVCVAVTDGUEVRDVTGULUGUHPUPUQAUTFTVDVEUDABCEFIJKNOLURQUTVBVEFVCVAUTDG
      UEVRDUTGULUGUHUS $.
  $}

  ${
    $d k M $.  $d k N $.  $d k Z $.
    ser0.1 $e |- Z = ( ZZ>= ` M ) $.
    $( The value of the partial sums in a zero-valued infinite series.
       (Contributed by Mario Carneiro, 31-Aug-2013.)  (Revised by Mario
       Carneiro, 15-Dec-2014.) $)
    ser0 $p |- ( N e. Z -> ( seq M ( + , ( Z X. { 0 } ) ) ` N ) = 0 ) $=
      ( vk wcel caddc cc0 csn cxp co wceq 00id a1i cuz cfv eleq2i biimpi cv cc
      cfz wa 0cn elfzuz syl6eleqr adantl fvconst2g sylancr seqid3 ) BCFZEGCHIJZ
      ABHHHGKHLUJMNUJBAOPZFCULBDQRUJESZABUAKFZUBHTFUMCFZUMUKPHLUCUNUOUJUNUMULCU
      MABUDDUEUFCHUMTUGUHUI $.

    $( A zero-valued infinite series is equal to the constant zero function.
       (Contributed by Mario Carneiro, 8-Feb-2014.) $)
    ser0f $p |- ( M e. ZZ -> seq M ( + , ( Z X. { 0 } ) ) = ( Z X. { 0 } ) ) $=
      ( vk cz wcel caddc cc0 csn cxp cseq wceq cv cfv wral ser0 fvconst2 eqtr4d
      c0ex wfn rgen wb cuz seqfn fneq2i sylibr fconst ffn eqfnfv sylancl mpbiri
      wf ax-mp ) AEFZGBHIZJZAKZUPLZDMZUQNZUSUPNZLZDBOZVBDBUSBFUTHVAAUSBCPBHUSSQ
      RUAUNUQBTZUPBTZURVCUBUNUQAUCNZTVDGUPAUDBVFUQCUEUFBUOUPULVEBHSUGBUOUPUHUMD
      BUQUPUIUJUK $.
  $}

  ${
    $d k x y F $.  $d k x G $.  $d k x y M $.  $d k x N $.  $d k x y ph $.
    serge0.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    serge0.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. RR ) $.
    ${
      serge0.3 $e |- ( ( ph /\ k e. ( M ... N ) ) -> 0 <_ ( F ` k ) ) $.
      $( A finite sum of nonnegative terms is nonnegative.  (Contributed by
         Mario Carneiro, 8-Feb-2014.)  (Revised by Mario Carneiro,
         27-May-2014.) $)
      serge0 $p |- ( ph -> 0 <_ ( seq M ( + , F ) ` N ) ) $=
        ( vx vy caddc cc0 cv cle wbr cr wcel wa breq2 elrab cfv cfz co sylanbrc
        cseq crab readdcl ad2ant2r addge0 an4s syl2anb adantl seqcl simprbi syl
        ) AEKCDUEUAZLIMZNOZIPUFZQZLUPNOZABJKUSCDEFABMZDEUBUCQRVBCUAZPQLVCNOZVCU
        SQGHURVDIVCPUQVCLNSTUDVBUSQZJMZUSQZRVBVFKUCZUSQZAVEVBPQZLVBNOZRZVFPQZLV
        FNOZRZVIVGURVKIVBPUQVBLNSTURVNIVFPUQVFLNSTVLVORVHPQZLVHNOZVIVJVMVPVKVNV
        BVFUGUHVJVMVKVNVQVBVFUIUJURVQIVHPUQVHLNSTUDUKULUMUTUPPQVAURVAIUPPUQUPLN
        STUNUO $.
    $}

    serle.3 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( G ` k ) e. RR ) $.
    serle.4 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) <_ ( G ` k ) ) $.
    $( Comparison of partial sums of two infinite series of reals.
       (Contributed by NM, 27-Dec-2005.)  (Revised by Mario Carneiro,
       27-May-2014.) $)
    serle $p |- ( ph ->
                   ( seq M ( + , F ) ` N ) <_ ( seq M ( + , G ) ` N ) ) $=
      ( vx cc0 caddc cfv cmin co cle wbr wcel cr cseq cvv cv cmpt wa wceq fveq2
      cfz vex oveq12d eqid ovex fvmpt ax-mp resubcld syl5eqel subge0d syl6breqr
      mpbird serge0 recnd a1i sersub breqtrd readdcl adantl seqcl mpbid ) ALFMD
      EUANZFMCEUANZOPZQRVJVIQRALFMKUBKUCZDNZVLCNZOPZUDZEUANVKQABVPEFGABUCZEFUHP
      SUEZVQVPNZVQDNZVQCNZOPZTVQUBSVSWBUFZBUIKVQVOWBUBVPVLVQUFVMVTVNWAOVLVQDUGV
      LVQCUGUJVPUKVTWAOULUMUNZVRVTWAIHUOUPVRLWBVSQVRLWBQRWAVTQRJVRVTWAIHUQUSWDU
      RUTABDCVPEFGVRVTIVAVRWAHVAWCVRWDVBVCVDAVIVJABKMTDEFGIVQTSVLTSUEVQVLMPTSAV
      QVLVEVFZVGABKMTCEFGHWEVGUQVH $.
  $}

  ${
    $d j k A $.  $d j N $.
    $( Value of the partial series sum of a constant function.  (Contributed by
       NM, 8-Aug-2005.)  (Revised by Mario Carneiro, 16-Feb-2014.) $)
    ser1const $p |- ( ( A e. CC /\ N e. NN ) ->
                   ( seq 1 ( + , ( NN X. { A } ) ) ` N ) = ( N x. A ) ) $=
      ( vj vk cn wcel cc caddc c1 cmul co wceq cv wi fveq2 oveq1 eqeq12d imbi2d
      cfv fvconst2g csn cxp cseq 1z 1nn mpan2 mulid2 eqtr4d seq1i wa seqp1 nnuz
      cuz eleq2s adantl peano2nn sylan2 oveq2d eqtrd nncn ax-1cn adddir syl2anr
      id mp3an2 adantr syl5ibr expcom a2d nnind impcom ) BEFAGFZBHEAUAUBZIUCZSZ
      BAJKZLZVLCMZVNSZVRAJKZLZNVLIVNSZIAJKZLZNVLDMZVNSZWEAJKZLZNVLWEIHKZVNSZWIA
      JKZLZNVLVQNCDBVRILZWAWDVLWMVSWBVTWCVRIVNOVRIAJPQRVRWELZWAWHVLWNVSWFVTWGVR
      WEVNOVRWEAJPQRVRWILZWAWLVLWOVSWJVTWKVRWIVNOVRWIAJPQRVRBLZWAVQVLWPVSVOVTVP
      VRBVNOVRBAJPQRVLWCHVMIUDVLIVMSZAWCVLIEFWQALUEEAIGTUFAUGZUHUIWEEFZVLWHWLVL
      WSWHWLNWHWLVLWSUJZWFAHKZWGAHKZLWFWGAHPWTWJXAWKXBWTWJWFWIVMSZHKZXAWSWJXDLZ
      VLXEWEIUMSEHVMIWEUKULUNUOWTXCAWFHWSVLWIEFXCALWEUPEAWIGTUQURUSWTWKWGWCHKZX
      BWSWEGFZVLWKXFLZVLWEUTVLVDXGIGFVLXHVAWEIAVBVEVCWTWCAWGHVLWCALWSWRVFURUSQV
      GVHVIVJVK $.
  $}

  ${
    $d x y z A $.  $d w x y z F $.  $d x G $.  $d w x y z M $.  $d w x y z N $.
    $d w x y z .+ $.  $d x y z ph $.
    seqof.1 $e |- ( ph -> A e. V ) $.
    seqof.2 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqof.3 $e |- ( ( ph /\ x e. ( M ... N ) ) ->
      ( F ` x ) = ( z e. A |-> ( G ` x ) ) ) $.
    $( Distribute function operation through a sequence.  Note that ` G ( z ) `
       is an implicit function on ` z ` .  (Contributed by Mario Carneiro,
       3-Mar-2015.) $)
    seqof $p |- ( ph -> ( seq M ( oF .+ , F ) ` N ) =
      ( z e. A |-> ( seq M ( .+ , G ) ` N ) ) ) $=
      ( vw cfv wceq wcel wa cvv fvex vy cof cseq cv cmpt wfn cab cfz wral rgenw
      eqid fnmpt mp1i fneq1d mpbird fneq1 elab sylibr simprl simprr adantr offn
      co inidm ex vex anbi12i 3imtr4g imp seqcl sylib dffn5 fveq1 fvmpt adantlr
      ovex eqidd ofval an32s ax-mp oveq12i 3eqtr4g sylan2b fveq1d simplr fvmpt2
      cuz sylancl eqtrd syl5eq seqhomo eqtr3d mpteq2dva ) AIEUBZFHUCZOZCDCUDZWP
      OZUEZCDIEGHUCOZUEAWPDUFZWPWSPAWPWQDUFZCUGZQXAABUAWNXCFHILABUDZHIUHVCQZRZX
      DFOZDUFZXGXCQZXFXHCDXDGOZUEZDUFZXJSQZCDUIXLXFXMCDXDGTZUJCDXJXKSXKUKZULUMX
      FDXGXKMUNUOXBXHCXGXDFTZDWQXGUPUQURZAXDXCQZUAUDZXCQZRZXDXSWNVCZXCQZAXDDUFZ
      XSDUFZRZYBDUFZYAYCAYFYGAYFRZDDEDXDXSJJAYDYEUSZAYDYEUTZADJQYFKVAZYKDVDZVBV
      EXRYDXTYEXBYDCXDBVFZDWQXDUPUQXBYECXSUAVFZDWQXSUPUQVGZXBYGCYBXDXSWNVPZDWQY
      BUPUQVHVIZVJXBXACWPIWOTZDWQWPUPUQVKCDWPVLVKACDWRWTAWQDQZRZWPNSWQNUDZOZUEZ
      OZWRWTWPSQUUDWRPYTYRNWPUUBWRSUUCWQUUAWPVMUUCUKZWQWPTVNUMYTBUAWNEXCFGUUCHI
      AYAYCYSYQVOAXEXIYSXQVOAIHWGOQYSLVAYAYTYFYBUUCOZXDUUCOZXSUUCOZEVCZPYOYTYFR
      WQYBOZWQXDOZWQXSOZEVCZUUFUUIAYFYSUUJUUMPYHDDUUKUULEDXDXSJJWQYIYJYKYKYLYHY
      SRZUUKVQUUNUULVQVRVSYBSQUUFUUJPYPNYBUUBUUJSUUCWQUUAYBVMUUEWQYBTVNVTUUGUUK
      UUHUULEXDSQUUGUUKPYMNXDUUBUUKSUUCWQUUAXDVMUUEWQXDTVNVTXSSQUUHUULPYNNXSUUB
      UULSUUCWQUUAXSVMUUEWQXSTVNVTWAWBWCYTXERZXGUUCOZWQXGOZXJXGSQUUPUUQPXPNXGUU
      BUUQSUUCWQUUAXGVMUUEWQXGTVNVTUUOUUQWQXKOZXJUUOWQXGXKAXEXGXKPYSMVOWDUUOYSX
      MUURXJPAYSXEWEXNCDXJSXKXOWFWHWIWJWKWLWMWI $.
  $}

  ${
    $d n x y z A $.  $d n x y z M $.  $d n x y z N $.  $d n x y z ph $.
    $d n y z .+ $.  $d n x y B $.  $d n y X $.
    seqof2.1 $e |- ( ph -> A e. V ) $.
    seqof2.2 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqof2.3 $e |- ( ph -> ( M ... N ) C_ B ) $.
    seqof2.4 $e |- ( ( ph /\ ( x e. B /\ z e. A ) ) -> X e. W ) $.
    $( Distribute function operation through a sequence.  Maps-to notation
       version of ~ seqof .  (Contributed by Mario Carneiro, 7-Jul-2017.) $)
    seqof2 $p |- ( ph ->
      ( seq M ( oF .+ , ( x e. B |-> ( z e. A |-> X ) ) ) ` N ) =
      ( z e. A |-> ( seq M ( .+ , ( x e. B |-> X ) ) ` N ) ) ) $=
      ( vy cmpt cfv wcel nfcv vn cof cseq cv csb cfz co wa wceq wi nfv nffvmpt1
      nfmpt nfeq nfim eleq1 anbi2d fveq2 mpteq2dv eqeq12d imbi12d sselda adantr
      weq cvv mptexg eqid fvmpt2 syl2anc simpll simpr syl12anc mpteq2dva eqtr4d
      syl chvar nfcsb1v nffv csbeq1a fveq1d cbvmpt syl6eq seqof seqeq3d syl6eqr
      nfseq ) AHFUBBECDKQZQZGUCRPDHFCPUDZBEKQZUEZGUCZRZQCDHFWJGUCZRZQAUAPDFWHWK
      GHILMAUAUDZGHUFUGZSZUHZWPWHRZCDWPWJRZQZPDWPWKRZQABUDZWQSZUHZXDWHRZCDXDWJR
      ZQZUIZUJWSWTXBUIZUJBUAWSXKBWSBUKBWTXBBEWGWPULBCDXABDTBEKWPULUMUNUOBUAVDZX
      FWSXJXKXLXEWRAXDWPWQUPUQXLXGWTXIXBXDWPWHURXLCDXHXAXDWPWJURUSUTVAXFXGWGXIX
      FXDESZWGVESZXGWGUIAWQEXDNVBZXFDISZXNAXPXELVCCDKIVFVOBEWGVEWHWHVGVHVIXFCDX
      HKXFCUDDSZUHZXMKJSZXHKUIXFXMXQXOVCZXRAXMXQXSAXEXQVJXTXFXQVKOVLBEKJWJWJVGV
      HVIVMVNVPCPDXAXCPXATCWPWKCWIWJVQZCWPTVRCPVDZWPWJWKCWIWJVSZVTWAWBWCCPDWOWM
      PWOTCHWLCFWKGCGTCFTYAWFCHTVRYBHWNWLYBWJWKFGYCWDVTWAWE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Integer powers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ^ $. $( Exponentiation. $)

  $( Extend class notation to include exponentiation of a complex number to an
     integer power. $)
  cexp $a class ^ $.

  ${
    $d x y $.
    $( Define exponentiation to nonnegative integer powers.  For example,
       ` ( 5 ^ 2 ) = 2 5 ` ( ~ ex-exp ).

       This definition is not meant to be used directly; instead, ~ exp0 and
       ~ expp1 provide the standard recursive definition.  The up-arrow
       notation is used by Donald Knuth for iterated exponentiation (_Science_
       194, 1235-1242, 1976) and is convenient for us since we don't have
       superscripts.

       10-Jun-2005:  The definition was extended to include zero exponents, so
       that ` 0 ^ 0 = 1 ` per the convention of Definition 10-4.1 of [Gleason]
       p. 134 ( ~ 0exp0e1 ).

       4-Jun-2014:  The definition was extended to include negative integer
       exponents.  For example, ` ( -u 3 ^ -u 2 ) = ( 1 / 9 ) ` ( ~ ex-exp ).
       The case ` x = 0 , y < 0 ` gives the value ` ( 1 / 0 ) ` , so we will
       avoid this case in our theorems.  (Contributed by Raph Levien,
       20-May-2004.)  (Revised by NM, 15-Oct-2004.) $)
    df-exp $a |- ^ = ( x e. CC , y e. ZZ |-> if ( y = 0 , 1 , if ( 0 < y ,
                       ( seq 1 ( x. , ( NN X. { x } ) ) ` y ) ,
                 ( 1 / ( seq 1 ( x. , ( NN X. { x } ) ) ` -u y ) ) ) ) ) $.

    $(
    Raph Levien's original definition of 20-May-2004:
    df-exp $a |- ^ = { <. <. x , y >. , z >. | ( ( x e. CC /\ y e. NN0 ) /\
          z = ( ( rec ( { <. w , v >. | v = ( w x. x ) } , 1 ) o.
       `' ( rec ( { <. w , v >. | v = ( w + 1 ) } , 0 ) |` _om ) ) ` y ) ) } $.
    $)
  $}

  ${
    $d x y A $.  $d x y N $.
    $( Value of exponentiation to integer powers.  (Contributed by NM,
       20-May-2004.)  (Revised by Mario Carneiro, 4-Jun-2014.) $)
    expval $p |- ( ( A e. CC /\ N e. ZZ ) -> ( A ^ N ) =
      if ( N = 0 , 1 , if ( 0 < N ,
                       ( seq 1 ( x. , ( NN X. { A } ) ) ` N ) ,
                 ( 1 / ( seq 1 ( x. , ( NN X. { A } ) ) ` -u N ) ) ) ) ) $=
      ( vx vy cv cc0 wceq c1 clt wbr cmul cn csn cxp cseq cfv cneg cdiv co cif
      cc cz cexp simpr eqeq1d breq2d simpl xpeq2d seqeq3d fveq12d negeqd oveq2d
      wa sneqd ifbieq12d ifbieq2d df-exp 1ex fvex ovex ifex ovmpt2a ) CDABUAUBD
      EZFGZHFVCIJZVCKLCEZMZNZHOZPZHVCQZVIPZRSZTZTBFGZHFBIJZBKLAMZNZHOZPZHBQZVSP
      ZRSZTZTUCVFAGZVCBGZUMZVDVOVNWDHWGVCBFWEWFUDZUEWGVEVPVJVMVTWCWGVCBFIWHUFWG
      VCBVIVSWGVHVRKHWGVGVQLWGVFAWEWFUGUNUHUIZWHUJWGVLWBHRWGVKWAVIVSWIWGVCBWHUK
      UJULUOUPCDUQVOHWDURVPVTWCBVSUSHWBRUTVAVAVB $.
  $}

  $( Value of exponentiation to positive integer powers.  (Contributed by Mario
     Carneiro, 4-Jun-2014.) $)
  expnnval $p |- ( ( A e. CC /\ N e. NN ) -> ( A ^ N ) =
                   ( seq 1 ( x. , ( NN X. { A } ) ) ` N ) ) $=
    ( cc wcel cn wa cexp co cc0 wceq c1 clt wbr cmul csn cxp cseq cfv cif eqtrd
    cneg cdiv cz nnz expval sylan2 nnne0 neneqd iffalsed nngt0 iftrued adantl )
    ACDZBEDZFABGHZBIJZKIBLMZBNEAOPKQZRZKBUAURRUBHZSZSZUSUNUMBUCDUOVBJBUDABUEUFU
    NVBUSJUMUNVBVAUSUNUPKVAUNBIBUGUHUIUNUQUSUTBUJUKTULT $.

  $( Value of a complex number raised to the 0th power.  Note that under our
     definition, ` 0 ^ 0 = 1 ` , following the convention used by Gleason.
     Part of Definition 10-4.1 of [Gleason] p. 134.  (Contributed by NM,
     20-May-2004.)  (Revised by Mario Carneiro, 4-Jun-2014.) $)
  exp0 $p |- ( A e. CC -> ( A ^ 0 ) = 1 ) $=
    ( cc wcel cc0 cexp co wceq c1 clt wbr cmul cn csn cxp cseq cfv cneg cdiv cz
    cif 0z expval mpan2 eqid iftruei syl6eq ) ABCZADEFZDDGZHDDIJDKLAMNHOZPHDQUJ
    PRFTZTZHUGDSCUHULGUAADUBUCUIHUKDUDUEUF $.

  $( ` 0 ^ 0 = 1 ` (common case).  This is our convention.  It follows the
     convention used by Gleason; see Part of Definition 10-4.1 of [Gleason]
     p. 134.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  0exp0e1 $p |- ( 0 ^ 0 ) = 1 $=
    ( cc0 cc wcel cexp co c1 wceq 0cn exp0 ax-mp ) ABCAADEFGHAIJ $.

  $( Value of a complex number raised to the first power.  (Contributed by NM,
     20-Oct-2004.)  (Revised by Mario Carneiro, 2-Jul-2013.) $)
  exp1 $p |- ( A e. CC -> ( A ^ 1 ) = A ) $=
    ( cc wcel c1 cexp co cn csn cxp cfv cmul cseq wceq 1nn expnnval mpan2 cz 1z
    seq1 ax-mp syl6eq fvconst2g eqtrd ) ABCZADEFZDGAHIZJZAUDUEDKUFDLJZUGUDDGCZU
    EUHMNADOPDQCUHUGMRKUFDSTUAUDUIUGAMNGADBUBPUC $.

  $( Value of a complex number raised to a nonnegative integer power plus one.
     Part of Definition 10-4.1 of [Gleason] p. 134.  (Contributed by NM,
     20-May-2005.)  (Revised by Mario Carneiro, 2-Jul-2013.) $)
  expp1 $p |- ( ( A e. CC /\ N e. NN0 ) -> ( A ^ ( N + 1 ) ) =
               ( ( A ^ N ) x. A ) ) $=
    ( cn0 wcel cc cn cc0 wceq c1 caddc co cexp cmul wa cfv sylan2 oveq2d oveq1d
    expnnval 3eqtr4d wo elnn0 csn cxp cseq seqp1 nnuz eleq2s peano2nn fvconst2g
    cuz adantl eqtrd exp1 mulid2 eqtr4d adantr simpr 0p1e1 oveq2 exp0 sylan9eqr
    syl6eq jaodan sylan2b ) BCDAEDZBFDZBGHZUAABIJKZLKZABLKZAMKZHZBUBVFVGVMVHVFV
    GNZVIMFAUCUDZIUEZOZBVPOZAMKZVJVLVNVQVRVIVOOZMKZVSVGVQWAHZVFWBBIUKOFMVOIBUFU
    GUHULVNVTAVRMVGVFVIFDZVTAHBUIZFAVIEUJPQUMVGVFWCVJVQHWDAVISPVNVKVRAMABSRTVFV
    HNZAILKZIAMKZVJVLVFWFWGHVHVFWFAWGAUNAUOUPUQWEVIIALWEVIGIJKIWEBGIJVFVHURRUSV
    CQWEVKIAMVHVFVKAGLKIBGALUTAVAVBRTVDVE $.

  $( Value of a complex number raised to a negative integer power.
     (Contributed by Mario Carneiro, 4-Jun-2014.) $)
  expneg $p |- ( ( A e. CC /\ N e. NN0 ) ->
                 ( A ^ -u N ) = ( 1 / ( A ^ N ) ) ) $=
    ( wcel cc cn cc0 wceq cneg cexp co c1 cdiv wa clt wbr cfv cif adantl oveq2d
    wn cn0 elnn0 cmul csn cxp cseq nnne0 nncn negeq0d necon3abid mpbid iffalsed
    wo wne nnnn0 nn0nlt0 syl nn0red lt0neg1d mtbid negnegd fveq2d 3eqtrd nnnegz
    cz expval sylan2 expnnval 3eqtr4d 1div1e1 eqcomi neg0 syl6eq exp0 sylan9eqr
    negeq oveq2 3eqtr4a jaodan sylan2b ) BUACZADCZBECZBFGZUMABHZIJZKABIJZLJZGZB
    UBWBWCWIWDWBWCMZWEFGZKFWENOZWEUCEAUDUEKUFZPZKWEHZWMPZLJZQZQZKBWMPZLJZWFWHWJ
    WSWRWQXAWJWKKWRWJBFUNZWKTWCXBWBBUGRWJWKBFWJBWCBDCWBBUHRZUIUJUKULWJWLWNWQWJB
    FNOZWLWJWAXDTWCWAWBBUORZBUPUQWJBWJBXEURUSUTULWJWPWTKLWJWOBWMWJBXCVAVBSVCWCW
    BWEVECWFWSGBVDAWEVFVGWJWGWTKLABVHSVIWBWDMZKKKLJZWFWHXGKVJVKWDWBWFAFIJZKWDWE
    FAIWDWEFHFBFVPVLVMSAVNZVOXFWGKKLWDWBWGXHKBFAIVQXIVOSVRVSVT $.

  $( Value of a complex number raised to a negative integer power.
     (Contributed by Mario Carneiro, 4-Jun-2014.) $)
  expneg2 $p |- ( ( A e. CC /\ N e. CC /\ -u N e. NN0 ) ->
                 ( A ^ N ) = ( 1 / ( A ^ -u N ) ) ) $=
    ( cc wcel cneg cn0 w3a cexp cdiv wceq negneg 3ad2ant2 oveq2d expneg 3adant2
    co c1 eqtr3d ) ACDZBCDZBEZFDZGZAUAEZHPZABHPQAUAHPIPZUCUDBAHTSUDBJUBBKLMSUBU
    EUFJTAUANOR $.

  $( A number to the negative one power is the reciprocal.  (Contributed by
     Mario Carneiro, 4-Jun-2014.) $)
  expn1 $p |- ( A e. CC -> ( A ^ -u 1 ) = ( 1 / A ) ) $=
    ( cc wcel c1 cneg cexp co cdiv cn0 wceq 1nn0 expneg mpan2 exp1 oveq2d eqtrd
    ) ABCZADEFGZDADFGZHGZDAHGQDICRTJKADLMQSADHANOP $.

  ${
    $d x y z w A $.  $d x z B $.  $d x y z w F $.
    expcllem.1 $e |- F C_ CC $.
    expcllem.2 $e |- ( ( x e. F /\ y e. F ) -> ( x x. y ) e. F ) $.
    expcllem.3 $e |- 1 e. F $.
    $( Lemma for proving nonnegative integer exponentiation closure laws.
       (Contributed by NM, 14-Dec-2005.) $)
    expcllem $p |- ( ( A e. F /\ B e. NN0 ) -> ( A ^ B ) e. F ) $=
      ( vz wcel cc0 wceq cexp co wi c1 oveq2 eleq1d imbi2d wa vw cn wo elnn0 cv
      cn0 caddc cc sseli exp1 syl ibir caovcl ancoms adantlr nnnn0 expp1 syl2an
      cmul adantr mpbird exp31 com12 a2d nnind impcom sylan9eqr syl6eqel jaodan
      wb exp0 sylan2b ) DUFJCEJZDUBJZDKLZUCCDMNZEJZDUDVMVNVQVOVNVMVQVMCIUEZMNZE
      JZOVMCPMNZEJZOVMCUAUEZMNZEJZOVMCWCPUGNZMNZEJZOVMVQOIUADVRPLZVTWBVMWIVSWAE
      VRPCMQRSVRWCLZVTWEVMWJVSWDEVRWCCMQRSVRWFLZVTWHVMWKVSWGEVRWFCMQRSVRDLZVTVQ
      VMWLVSVPEVRDCMQRSVMWBVMWACEVMCUHJZWACLEUHCFUIZCUJUKRULWCUBJZVMWEWHVMWOWEW
      HOVMWOWEWHVMWOTZWETWHWDCUSNZEJZVMWEWRWOWEVMWRABWDCEUSGUMUNUOWPWHWRVJWEWPW
      GWQEVMWMWCUFJWGWQLWOWNWCUPCWCUQURRUTVAVBVCVDVEVFVMVOTVPPEVOVMVPCKMNZPDKCM
      QVMWMWSPLWNCVKUKVGHVHVIVL $.

    expcl2lem.4 $e |- ( ( x e. F /\ x =/= 0 ) -> ( 1 / x ) e. F ) $.
    $( Lemma for proving integer exponentiation closure laws.  (Contributed by
       Mario Carneiro, 4-Jun-2014.)  (Revised by Mario Carneiro,
       9-Sep-2014.) $)
    expcl2lem $p |- ( ( A e. F /\ A =/= 0 /\ B e. ZZ ) -> ( A ^ B ) e. F ) $=
      ( wcel cc0 wne co wa wi ex c1 cc eldifsn sseli cz cexp cn0 cr cn elznn0nn
      cneg expcllem adantr cdiv wceq simpll sseldi recnd nnnn0 ad2antll expneg2
      wo simprl syl3anc csn cdif difss simpl sylibr sstri cv cmul syl2an anim1i
      sylbi mulne0 sylanbrc ax-1ne0 mpbir2an syl2anc sylib simprd neeq1 imbi12d
      oveq2 eleq1d vtoclga sylc eqeltrd jaod syl5bi 3impia ) CEJZCKLZDUAJZCDUBM
      ZEJZWKDUCJZDUDJZDUGZUEJZNZURWIWJNZWMDUFWSWNWMWRWIWNWMOWJWIWNWMABCDEFGHUHP
      UIWSWRWMWSWRNZWLQCWPUBMZUJMZEWTCRJDRJWPUCJZWLXBUKWTERCFWIWJWRULUMWTDWSWOW
      QUSUNWQXCWSWOWPUOUPZCDUQUTWTXAEJZXAKLZXBEJZWTEKVAZVBZEXAEXHVCZWTCXIJZXCXA
      XIJZWTWSXKWSWRVDCEKSVEXDABCWPXIXIERXJFVFAVGZXIJZBVGZXIJZNXMXOVHMZEJZXQKLZ
      XQXIJXNXMEJZXOEJZXRXPXIEXMXJTXIEXOXJTGVIXNXMRJZXMKLZNZXORJZXOKLZNZXSXPXNX
      TYCNYDXMEKSXTYBYCERXMFTVJVKXPYAYFNYGXOEKSYAYEYFERXOFTVJVKXMXOVLVIXQEKSVMQ
      XIJQEJQKLHVNQEKSVOUHVPZUMWTXEXFWTXLXEXFNYHXAEKSVQVRYCQXMUJMZEJZOXFXGOAXAE
      XMXAUKZYCXFYJXGXMXAKVSYKYIXBEXMXAQUJWAWBVTXTYCYJIPWCWDWEPWFWGWH $.
  $}

  ${
    $d x y A $.  $d x y N $.
    $( Closure of exponentiation of nonnegative integers.  (Contributed by NM,
       16-Dec-2005.) $)
    nnexpcl $p |- ( ( A e. NN /\ N e. NN0 ) -> ( A ^ N ) e. NN ) $=
      ( vx vy cn nnsscn cv nnmulcl 1nn expcllem ) CDABEFCGDGHIJ $.

    $( Closure of exponentiation of nonnegative integers.  (Contributed by NM,
       14-Dec-2005.) $)
    nn0expcl $p |- ( ( A e. NN0 /\ N e. NN0 ) -> ( A ^ N ) e. NN0 ) $=
      ( vx vy cn0 nn0sscn cv nn0mulcl 1nn0 expcllem ) CDABEFCGDGHIJ $.

    $( Closure of exponentiation of integers.  (Contributed by NM,
       16-Dec-2005.) $)
    zexpcl $p |- ( ( A e. ZZ /\ N e. NN0 ) -> ( A ^ N ) e. ZZ ) $=
      ( vx vy cz zsscn cv zmulcl 1z expcllem ) CDABEFCGDGHIJ $.

    $( Closure of exponentiation of rationals.  (Contributed by NM,
       16-Dec-2005.) $)
    qexpcl $p |- ( ( A e. QQ /\ N e. NN0 ) -> ( A ^ N ) e. QQ ) $=
      ( vx vy cq qsscn cv qmulcl c1 cz wcel 1z zq ax-mp expcllem ) CDABEFCGDGHI
      JKIEKLIMNO $.

    $( Closure of exponentiation of reals.  (Contributed by NM,
       14-Dec-2005.) $)
    reexpcl $p |- ( ( A e. RR /\ N e. NN0 ) -> ( A ^ N ) e. RR ) $=
      ( vx vy cr ax-resscn cv remulcl 1re expcllem ) CDABEFCGDGHIJ $.

    $( Closure law for nonnegative integer exponentiation.  (Contributed by NM,
       26-May-2005.) $)
    expcl $p |- ( ( A e. CC /\ N e. NN0 ) -> ( A ^ N ) e. CC ) $=
      ( vx vy cc ssid cv mulcl ax-1cn expcllem ) CDABEEFCGDGHIJ $.

    $( Closure law for exponentiation of positive reals.  (Contributed by NM,
       24-Feb-2008.)  (Revised by Mario Carneiro, 9-Sep-2014.) $)
    rpexpcl $p |- ( ( A e. RR+ /\ N e. ZZ ) -> ( A ^ N ) e. RR+ ) $=
      ( vx vy crp wcel cz wa cc0 wne cexp co simpl rpne0 adantr simpr cr rpssre
      cc cv ax-resscn sstri rpmulcl 1rp c1 cdiv rpreccl expcl2lem syl3anc ) AEF
      ZBGFZHUJAIJZUKABKLEFUJUKMUJULUKANOUJUKPCDABEEQSRUAUBCTZDTUCUDUMEFUEUMUFLE
      FUMIJUMUGOUHUI $.

    $( Closure of exponentiation of reals.  (Contributed by Mario Carneiro,
       4-Jun-2014.)  (Revised by Mario Carneiro, 9-Sep-2014.) $)
    reexpclz $p |- ( ( A e. RR /\ A =/= 0 /\ N e. ZZ ) ->
                     ( A ^ N ) e. RR ) $=
      ( vx vy cr ax-resscn cv remulcl 1re rereccl expcl2lem ) CDABEFCGZDGHILJK
      $.

    $( Closure of exponentiation of rational numbers.  (Contributed by Mario
       Carneiro, 9-Sep-2014.) $)
    qexpclz $p |- ( ( A e. QQ /\ A =/= 0 /\ N e. ZZ ) -> ( A ^ N ) e. QQ ) $=
      ( vx vy cq qsscn cv qmulcl c1 cz wcel 1z zq ax-mp qreccl expcl2lem ) CDAB
      EFCGZDGHIJKIEKLIMNQOP $.

    $( Closure of exponentiation of negative one.  (Contributed by Mario
       Carneiro, 18-Jun-2015.) $)
    m1expcl2 $p |- ( N e. ZZ -> ( -u 1 ^ N ) e. { -u 1 , 1 } ) $=
      ( vx vy c1 cneg wcel cc0 wne co cc ax-1cn cmul wceq eqeltri syl6eqel jaoi
      cv wo syl cdiv cpr cz negex prid1 neg1ne0 wss neg1cn prssi mp2an wi elpri
      cexp sseli mulm1d negeq negneg1e1 1ex prid2 eqeltrd oveq1 syl5ibr mulid2d
      eleq1d id imp oveq2 ax-1ne0 divneg2 mp3an 1div1e1 negeqi eqtr3i expcl2lem
      adantr mp3an12 ) DEZVPDUAZFVPGHAUBFVPAULIVQFVPDDUCUDZUEBCVPAVQVPJFDJFZVQJ
      UFUGKVPDJUHUIZBQZVQFZCQZVQFZWAWCLIZVQFZWBWAVPMZWADMZRZWDWFUJZWAVPDUKZWGWJ
      WHWDWFWGVPWCLIZVQFWDWLWCEZVQWDWCVQJWCVTUMZUNWDWCVPMZWCDMZRWMVQFZWCVPDUKWO
      WQWPWOWMVPEZVQWCVPUOWRDVQUPVPDUQURZNOWPWMVPVQWCDUOVROPSUSWGWEWLVQWAVPWCLU
      TVCVAWDWFWHDWCLIZVQFWDWTWCVQWDWCWNVBWDVDUSWHWEWTVQWADWCLUTVCVAPSVEWSWBDWA
      TIZVQFZWAGHWBWIXBWKWGXBWHWGXADVPTIZVQWAVPDTVFXCVPVQDDTIZEZXCVPVSVSDGHXEXC
      MKKVGDDVHVIXDDVJVKVLVRNOWHXAXDVQWADDTVFXDDVQVJWSNOPSVNVMVO $.

    $( Closure of exponentiation of negative one.  (Contributed by Mario
       Carneiro, 18-Jun-2015.) $)
    m1expcl $p |- ( N e. ZZ -> ( -u 1 ^ N ) e. ZZ ) $=
      ( cz wcel c1 cneg cpr cexp co wss neg1z 1z prssi mp2an m1expcl2 sseldi )
      ABCDEZDFZBPAGHPBCDBCQBIJKPDBLMANO $.

    $( Closure law for integer exponentiation.  (Contributed by Mario Carneiro,
       4-Jun-2014.) $)
    expclzlem $p |- ( ( A e. CC /\ A =/= 0 /\ N e. ZZ ) ->
                      ( A ^ N ) e. ( CC \ { 0 } ) ) $=
      ( vx vy cc wcel cc0 wne cz cexp co csn cdif wi wa eldifsn difss cv cmul
      c1 mulcl ad2ant2r mulne0 sylanbrc syl2anb ax-1ne0 mpbir2an cdiv reccl jca
      ax-1cn recne0 3imtr4i adantr expcl2lem 3expia sylanbr anabss3 3impia ) AE
      FZAGHZBIFZABJKEGLZMZFZUTVAVBVENZUTVAOAVDFZVAVFAEGPVGVAVBVECDABVDEVCQCRZVD
      FZVHEFZVHGHZOZDRZEFZVMGHZOZVHVMSKZVDFZVMVDFVHEGPZVMEGPVLVPOVQEFZVQGHVRVJV
      NVTVKVOVHVMUAUBVHVMUCVQEGPUDUETVDFTEFTGHUKUFTEGPUGVITVHUHKZVDFZVKVLWAEFZW
      AGHZOVIWBVLWCWDVHUIVHULUJVSWAEGPUMUNUOUPUQURUS $.

    $( Closure law for integer exponentiation.  (Contributed by Mario Carneiro,
       4-Jun-2014.) $)
    expclz $p |- ( ( A e. CC /\ A =/= 0 /\ N e. ZZ ) -> ( A ^ N ) e. CC ) $=
      ( cc wcel cc0 wne cz w3a cexp co csn expclzlem eldifad ) ACDAEFBGDHABIJCE
      KABLM $.
  $}

  ${
    nn0expcli.1 $e |- A e. NN0 $.
    nn0expcli.2 $e |- N e. NN0 $.
    $( Closure of exponentiation of nonnegative integers.  (Contributed by
       Mario Carneiro, 17-Apr-2015.) $)
    nn0expcli $p |- ( A ^ N ) e. NN0 $=
      ( cn0 wcel cexp co nn0expcl mp2an ) AEFBEFABGHEFCDABIJ $.
  $}

  $( The square of a nonnegative integer is a nonnegative integer.
     (Contributed by Stefan O'Rear, 16-Oct-2014.) $)
  nn0sqcl $p |- ( A e. NN0 -> ( A ^ 2 ) e. NN0 ) $=
    ( cn0 wcel c2 cexp co 2nn0 nn0expcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( Exponentiation in terms of predecessor exponent.  (Contributed by NM,
     19-Dec-2005.) $)
  expm1t $p |- ( ( A e. CC /\ N e. NN ) -> ( A ^ N ) =
               ( ( A ^ ( N - 1 ) ) x. A ) ) $=
    ( cc wcel cn wa c1 cmin co caddc cexp cmul wceq ax-1cn npcan sylancl oveq2d
    nncn adantl cn0 nnm1nn0 expp1 sylan2 eqtr3d ) ACDZBEDZFABGHIZGJIZKIZABKIZAU
    GKIALIZUFUIUJMUEUFUHBAKUFBCDGCDUHBMBRNBGOPQSUFUEUGTDUIUKMBUAAUGUBUCUD $.

  ${
    $d x y j N $.  $d j k A $.
    $( Value of one raised to a nonnegative integer power.  (Contributed by NM,
       15-Dec-2005.)  (Revised by Mario Carneiro, 4-Jun-2014.) $)
    1exp $p |- ( N e. ZZ -> ( 1 ^ N ) = 1 ) $=
      ( vx vy cz wcel c1 co wceq cc0 wne cc cv wa cmul elsni syl6eq ovex sylibr
      elsn cdiv cexp csn 1ex ax-1ne0 wss ax-1cn snssi ax-mp oveq12 1t1e1 syl2an
      snid oveq2d 1div1e1 adantr expcl2lem mp3an12 syl ) ADEZFAUAGZFUBZEZUTFHFV
      AEFIJUSVBFUCULZUDBCFAVAFKEVAKUEUFFKUGUHBLZVAEZCLZVAEZMVDVFNGZFHZVHVAEVEVD
      FHZVFFHZVIVGVDFOZVFFOVJVKMVHFFNGFVDFVFFNUIUJPUKVHFVDVFNQSRVCVEFVDTGZVAEZV
      DIJVEVMFHVNVEVMFFTGFVEVDFFTVLUMUNPVMFFVDTQSRUOUPUQUTFOUR $.

    $( Positive integer exponentiation is 0 iff its mantissa is 0.
       (Contributed by NM, 23-Feb-2005.) $)
    expeq0 $p |- ( ( A e. CC /\ N e. NN ) -> ( ( A ^ N ) = 0 <-> A = 0 ) ) $=
      ( vj vk cn wcel cc cexp co wceq wb cv wi c1 oveq2 eqeq1d bibi1d imbi2d wa
      cc0 caddc exp1 wo nnnn0 cmul expp1 expcl simpl mul0ord bitrd sylan2 biimp
      cn0 idd jaod olc impbid1 sylan9bb exp31 com12 a2d nnind impcom ) BEFAGFZA
      BHIZTJZATJZKZVDACLZHIZTJZVGKZMVDANHIZTJZVGKZMVDADLZHIZTJZVGKZMVDAVPNUAIZH
      IZTJZVGKZMVDVHMCDBVINJZVLVOVDWDVKVNVGWDVJVMTVINAHOPQRVIVPJZVLVSVDWEVKVRVG
      WEVJVQTVIVPAHOPQRVIVTJZVLWCVDWFVKWBVGWFVJWATVIVTAHOPQRVIBJZVLVHVDWGVKVFVG
      WGVJVETVIBAHOPQRVDVMATAUBPVPEFZVDVSWCVDWHVSWCMVDWHVSWCVDWHSWBVRVGUCZVSVGW
      HVDVPUMFZWBWIKVPUDVDWJSZWBVQAUEIZTJWIWKWAWLTAVPUFPWKVQAAVPUGVDWJUHUIUJUKV
      SWIVGVSVRVGVGVRVGULVSVGUNUOVGVRUPUQURUSUTVAVBVC $.
  $}

  $( Positive integer exponentiation is nonzero iff its mantissa is nonzero.
     (Contributed by NM, 6-May-2005.) $)
  expne0 $p |- ( ( A e. CC /\ N e. NN ) ->
                  ( ( A ^ N ) =/= 0 <-> A =/= 0 ) ) $=
    ( cc wcel cn wa cexp co cc0 expeq0 necon3bid ) ACDBEDFABGHIAIABJK $.

  $( Nonnegative integer exponentiation is nonzero if its mantissa is nonzero.
     (Contributed by NM, 2-Aug-2006.)  (Revised by Mario Carneiro,
     4-Jun-2014.) $)
  expne0i $p |- ( ( A e. CC /\ A =/= 0 /\ N e. ZZ )
              -> ( A ^ N ) =/= 0 ) $=
    ( cc wcel cc0 wne cz w3a cexp co csn cdif expclzlem eldifsni syl ) ACDAEFBG
    DHABIJZCEKLDPEFABMPCENO $.

  $( Nonnegative integer exponentiation with a positive mantissa is positive.
     (Contributed by NM, 16-Dec-2005.)  (Revised by Mario Carneiro,
     4-Jun-2014.) $)
  expgt0 $p |- ( ( A e. RR /\ N e. ZZ /\ 0 < A ) -> 0 < ( A ^ N ) ) $=
    ( cr wcel cc0 clt wbr cz cexp co wa crp rpexpcl rpgt0d sylanbr 3impa 3com23
    elrp ) ACDZEAFGZBHDZEABIJZFGZSTUAUCSTKALDZUAUCARUDUAKUBABMNOPQ $.

  $( Value of a complex number raised to a negative power.  (Contributed by
     Mario Carneiro, 4-Jun-2014.) $)
  expnegz $p |- ( ( A e. CC /\ A =/= 0 /\ N e. ZZ ) ->
                 ( A ^ -u N ) = ( 1 / ( A ^ N ) ) ) $=
    ( cc wcel cc0 wne cz cneg cexp co c1 cdiv wceq cr cn0 wo wa elznn0 syl3anc
    wi expneg ad2antrr simpll simprl recnd simprr oveq2d expcl ad2ant2rl simplr
    ex expneg2 nn0zd expne0i recrecd eqtr2d expr jaod expimpd syl5bi 3impia ) A
    CDZAEFZBGDZABHZIJZKABIJZLJZMZVDBNDZBODZVEODZPZQVBVCQZVIBRVNVJVMVIVNVJQVKVIV
    LVBVKVITVCVJVBVKVIABUAUKUBVNVJVLVIVNVJVLQZQZVHKKVFLJZLJVFVPVGVQKLVPVBBCDVLV
    GVQMVBVCVOUCZVPBVNVJVLUDUEVNVJVLUFZABULSUGVPVFVBVLVFCDVCVJAVEUHUIVPVBVCVEGD
    VFEFVRVBVCVOUJVPVEVSUMAVEUNSUOUPUQURUSUTVA $.

  $( Value of zero raised to a positive integer power.  (Contributed by NM,
     19-Aug-2004.) $)
  0exp $p |- ( N e. NN -> ( 0 ^ N ) = 0 ) $=
    ( cn wcel cc0 cexp co wceq eqid cc wb 0cn expeq0 mpan mpbiri ) ABCZDAEFDGZD
    DGZDHDICOPQJKDALMN $.

  ${
    $d x y z A $.  $d x z N $.
    $( Nonnegative integer exponentiation with a nonnegative mantissa is
       nonnegative.  (Contributed by NM, 16-Dec-2005.)  (Revised by Mario
       Carneiro, 4-Jun-2014.) $)
    expge0 $p |- ( ( A e. RR /\ N e. NN0 /\ 0 <_ A ) -> 0 <_ ( A ^ N ) ) $=
      ( vz vx vy cr wcel cc0 cle wbr cn0 cexp co wa cv crab breq2 elrab cc c1
      ssrab2 ax-resscn sstri cmul remulcl ad2ant2r mulge0 sylanbrc syl2anb 0le1
      1re mpbir2an expcllem simprbi syl sylanbr 3impa 3com23 ) AFGZHAIJZBKGZHAB
      LMZIJZUSUTVAVCUSUTNAHCOZIJZCFPZGZVAVCVEUTCAFVDAHIQRVGVANVBVFGZVCDEABVFVFF
      SVECFUAUBUCDOZVFGVIFGZHVIIJZNZEOZFGZHVMIJZNZVIVMUDMZVFGZVMVFGVEVKCVIFVDVI
      HIQRVEVOCVMFVDVMHIQRVLVPNVQFGZHVQIJZVRVJVNVSVKVOVIVMUEUFVIVMUGVEVTCVQFVDV
      QHIQRUHUITVFGTFGHTIJZUKUJVEWACTFVDTHIQRULUMVHVBFGVCVEVCCVBFVDVBHIQRUNUOUP
      UQUR $.

    $( Nonnegative integer exponentiation with a mantissa greater than or equal
       to 1 is greater than or equal to 1.  (Contributed by NM, 21-Feb-2005.)
       (Revised by Mario Carneiro, 4-Jun-2014.) $)
    expge1 $p |- ( ( A e. RR /\ N e. NN0 /\ 1 <_ A ) -> 1 <_ ( A ^ N ) ) $=
      ( vz vx vy cr wcel cn0 c1 cle wbr w3a co cv wa breq2 elrab cmul 1re jctl
      cexp crab cc ssrab2 ax-resscn sstri remulcl ad2ant2r 1t1e1 wi 0le1 pm3.2i
      cc0 lemul12a syl2an imp syl5eqbrr an4s sylanbrc syl2anb mpbir2an expcllem
      1le1 sylanbr 3impa 3com23 simprbi syl ) AFGZBHGZIAJKZLABUAMZICNZJKZCFUBZG
      ZIVLJKZVIVKVJVPVIVKVJVPVIVKOAVOGVJVPVNVKCAFVMAIJPQDEABVOVOFUCVNCFUDUEUFDN
      ZVOGVRFGZIVRJKZOZENZFGZIWBJKZOZVRWBRMZVOGZWBVOGVNVTCVRFVMVRIJPQVNWDCWBFVM
      WBIJPQWAWEOWFFGZIWFJKZWGVSWCWHVTWDVRWBUGUHVSWCVTWDWIVSWCOZVTWDOZOIIIRMZWF
      JUIWJWKWLWFJKZVSIFGZUMIJKZOZVSOWPWCOWKWMUJWCVSWPWNWOSUKULZTWCWPWQTIVRIWBU
      NUOUPUQURVNWICWFFVMWFIJPQUSUTIVOGWNIIJKZSVCVNWRCIFVMIIJPQVAVBVDVEVFVPVLFG
      VQVNVQCVLFVMVLIJPQVGVH $.
  $}

  $( Positive integer exponentiation with a mantissa greater than 1 is greater
     than 1.  (Contributed by NM, 13-Feb-2005.)  (Revised by Mario Carneiro,
     4-Jun-2014.) $)
  expgt1 $p |- ( ( A e. RR /\ N e. NN /\ 1 < A ) -> 1 < ( A ^ N ) ) $=
    ( cr wcel cn c1 clt wbr w3a cexp 1re a1i simp1 cn0 reexpcl syl2anc cmul cle
    co cc0 simp2 nnnn0d simp3 cmin nnm1nn0 syl wi sylancr mpd expge1 syl3anc wb
    ltle 0red 0lt1 lttrd lemul1 syl112anc mpbid cc recn 3ad2ant1 mulid2d eqcomd
    wceq expm1t 3brtr4d ltletrd ) ACDZBEDZFAGHZIZFAABJSZFCDZVLKLZVIVJVKMZVLVIBN
    DVMCDVPVLBVIVJVKUAZUBABOPVIVJVKUCZVLFAQSZABFUDSZJSZAQSZAVMRVLFWARHZVSWBRHZV
    LVIVTNDZFARHZWCVPVLVJWEVQBUEUFZVLVKWFVRVLVNVIVKWFUGKVPFAUMUHUIAVTUJUKVLVNWA
    CDZVITAGHWCWDULVOVLVIWEWHVPWGAVTOPVPVLTFAVLUNVOVPTFGHVLUOLVRUPFWAAUQURUSVLV
    SAVLAVIVJAUTDZVKAVAVBZVCVDVLWIVJVMWBVEWJVQABVFPVGVH $.

  ${
    $d j k A $.  $d j k B $.  $d j k M $.  $d j N $.
    $( Positive integer exponentiation of a product.  Proposition 10-4.2(c) of
       [Gleason] p. 135, restricted to nonnegative integer exponents.
       (Contributed by NM, 13-Feb-2005.) $)
    mulexp $p |- ( ( A e. CC /\ B e. CC /\ N e. NN0 ) ->
                  ( ( A x. B ) ^ N ) = ( ( A ^ N ) x. ( B ^ N ) ) ) $=
      ( vj cc wcel cmul co cexp wceq wa wi c1 oveq2 oveq12d eqeq12d imbi2d exp0
      cc0 expp1 vk cn0 cv caddc mulcl oveqan12d 1t1e1 syl6eq eqtr4d sylan oveq1
      syl adantr expcl anim12i anandirs simpl syl2anc adantlr adantll sylan9eqr
      mul4 eqtrd exp31 com12 a2d nn0ind expdcom 3imp ) AEFZBEFZCUBFZABGHZCIHZAC
      IHZBCIHZGHZJZVLVJVKVRVJVKKZVMDUCZIHZAVTIHZBVTIHZGHZJZLVSVMSIHZASIHZBSIHZG
      HZJZLVSVMUAUCZIHZAWKIHZBWKIHZGHZJZLVSVMWKMUDHZIHZAWQIHZBWQIHZGHZJZLVSVRLD
      UACVTSJZWEWJVSXCWAWFWDWIVTSVMINXCWBWGWCWHGVTSAINVTSBINOPQVTWKJZWEWPVSXDWA
      WLWDWOVTWKVMINXDWBWMWCWNGVTWKAINVTWKBINOPQVTWQJZWEXBVSXEWAWRWDXAVTWQVMINX
      EWBWSWCWTGVTWQAINVTWQBINOPQVTCJZWEVRVSXFWAVNWDVQVTCVMINXFWBVOWCVPGVTCAINV
      TCBINOPQVSWFMWIVSVMEFZWFMJABUEZVMRULVSWIMMGHMVJVKWGMWHMGARBRUFUGUHUIWKUBF
      ZVSWPXBVSXIWPXBLVSXIWPXBVSXIKZWPKWRWLVMGHZXAXJWRXKJZWPVSXGXIXLXHVMWKTUJUM
      WPXJXKWOVMGHZXAWLWOVMGUKXJXMWMAGHZWNBGHZGHZXAXJWMEFZWNEFZKZVSXMXPJVJVKXIX
      SVJXIKXQVKXIKXRAWKUNBWKUNUOUPVSXIUQWMWNABVBURXJWSXNWTXOGVJXIWSXNJVKAWKTUS
      VKXIWTXOJVJBWKTUTOUIVAVCVDVEVFVGVHVI $.

    $( Integer exponentiation of a product.  Proposition 10-4.2(c) of [Gleason]
       p. 135.  (Contributed by Mario Carneiro, 4-Jun-2014.) $)
    mulexpz $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) /\
                     N e. ZZ ) ->
                  ( ( A x. B ) ^ N ) = ( ( A ^ N ) x. ( B ^ N ) ) ) $=
      ( cc wcel cc0 wne wa cz cmul co cexp wceq simpl c1 expneg2 syl3anc eqtr4d
      cn0 cdiv cr cneg cn wo elznn0nn anim12i mulexp 3expa sylan simplll mulcld
      simplrl ad2antrl nnnn0 ad2antll oveq12d oveq2d 1t1e1 oveq1i syl6eqr expcl
      recn syl2anc simpllr nnz expne0i simplrr ax-1cn divmuldiv syl22anc jaodan
      mpanl12 sylan2b 3impa ) ADEZAFGZHZBDEZBFGZHZCIEZABJKZCLKZACLKZBCLKZJKZMZW
      AVQVTHZCSEZCUAEZCUBZUCEZHZUDWGCUEWHWIWGWMWHVOVRHWIWGVQVOVTVRVOVPNVRVSNUFV
      OVRWIWGABCUGUHUIWHWMHZWCOWBWKLKZTKZWFWNWBDECDEZWKSEZWCWPMWNABVOVPVTWMUJZV
      QVRVSWMULZUKWJWQWHWLCVBUMZWLWRWHWJWKUNUOZWBCPQWNWFOAWKLKZTKZOBWKLKZTKZJKZ
      WPWNWDXDWEXFJWNVOWQWRWDXDMWSXAXBACPQWNVRWQWRWEXFMWTXAXBBCPQUPWNWPOOJKZXCX
      EJKZTKZXGWNWPOXITKXJWNWOXIOTWNVOVRWRWOXIMWSWTXBABWKUGQUQXHOXITURUSUTWNXCD
      EZXCFGZXEDEZXEFGZXGXJMZWNVOWRXKWSXBAWKVAVCWNVOVPWKIEZXLWSVOVPVTWMVDWLXPWH
      WJWKVEUOZAWKVFQWNVRWRXMWTXBBWKVAVCWNVRVSXPXNWTVQVRVSWMVGXQBWKVFQODEZXRXKX
      LHXMXNHHXOVHVHOOXCXEVIVLVJRRRVKVMVN $.

    $( Nonnegative integer exponentiation of a reciprocal.  (Contributed by NM,
       2-Aug-2006.)  (Revised by Mario Carneiro, 4-Jun-2014.) $)
    exprec $p |- ( ( A e. CC /\ A =/= 0 /\ N e. ZZ ) ->
                  ( ( 1 / A ) ^ N ) = ( 1 / ( A ^ N ) ) ) $=
      ( cc wcel cc0 wne cz w3a cexp co cdiv expclz reccl 3adant3 recne0 syl3anc
      c1 simp3 cmul wceq expne0i simp1 recidd oveq1d mulexpz syl221anc 1exp syl
      simp2 3eqtr3d mvllmuld ) ACDZAEFZBGDZHZABIJZQAKJZBIJZQABLUOUQCDZUQEFZUNUR
      CDULUMUSUNAMNZULUMUTUNAONZULUMUNRZUQBLPABUAUOAUQSJZBIJZQBIJZUPURSJZQUOVDQ
      BIUOAULUMUNUBZULUMUNUIZUCUDUOULUMUSUTUNVEVGTVHVIVAVBVCAUQBUEUFUOUNVFQTVCB
      UGUHUJUK $.

    $( Sum of exponents law for nonnegative integer exponentiation.
       Proposition 10-4.2(a) of [Gleason] p. 135.  (Contributed by NM,
       30-Nov-2004.) $)
    expadd $p |- ( ( A e. CC /\ M e. NN0 /\ N e. NN0 ) ->
                  ( A ^ ( M + N ) ) = ( ( A ^ M ) x. ( A ^ N ) ) ) $=
      ( vj cc wcel cn0 caddc co cexp cmul wi cc0 c1 oveq2 oveq2d eqeq12d imbi2d
      wceq eqtr4d vk wa cv nn0cn addid1d adantl expcl mulid1d exp0 adantr oveq1
      ax-1cn addass mp3an3 syl2an adantll simpll nn0addcl expp1 syl2anc adantlr
      eqtr3d mulassd syl5ibr expcom a2d nn0ind expdcom 3imp ) AEFZBGFZCGFZABCHI
      ZJIZABJIZACJIZKIZSZVLVJVKVRVJVKUBZABDUCZHIZJIZVOAVTJIZKIZSZLVSABMHIZJIZVO
      AMJIZKIZSZLVSABUAUCZHIZJIZVOAWKJIZKIZSZLVSABWKNHIZHIZJIZVOAWQJIZKIZSZLVSV
      RLDUACVTMSZWEWJVSXCWBWGWDWIXCWAWFAJVTMBHOPXCWCWHVOKVTMAJOPQRVTWKSZWEWPVSX
      DWBWMWDWOXDWAWLAJVTWKBHOPXDWCWNVOKVTWKAJOPQRVTWQSZWEXBVSXEWBWSWDXAXEWAWRA
      JVTWQBHOPXEWCWTVOKVTWQAJOPQRVTCSZWEVRVSXFWBVNWDVQXFWAVMAJVTCBHOPXFWCVPVOK
      VTCAJOPQRVSWGVONKIZWIVSWGVOXGVSWFBAJVKWFBSVJVKBBUDZUEUFPVSVOABUGZUHTVSWHN
      VOKVJWHNSVKAUIUJPTWKGFZVSWPXBVSXJWPXBLWPXBVSXJUBZWMAKIZWOAKIZSWMWOAKUKXKW
      SXLXAXMXKAWLNHIZJIZWSXLXKXNWRAJVKXJXNWRSZVJVKBEFZWKEFZXPXJXHWKUDXQXRNEFXP
      ULBWKNUMUNUOUPPXKVJWLGFZXOXLSVJVKXJUQZVKXJXSVJBWKURUPAWLUSUTVBXKXAVOWNAKI
      ZKIXMXKWTYAVOKVJXJWTYASVKAWKUSVAPXKVOWNAVSVOEFXJXIUJVJXJWNEFVKAWKUGVAXTVC
      TQVDVEVFVGVHVI $.

    $( Lemma for ~ expaddz .  (Contributed by Mario Carneiro, 4-Jun-2014.) $)
    expaddzlem $p |- ( ( ( A e. CC /\ A =/= 0 ) /\
                       ( M e. RR /\ -u M e. NN ) /\ N e. NN0 ) ->
                       ( A ^ ( M + N ) ) = ( ( A ^ M ) x. ( A ^ N ) ) ) $=
      ( cc wcel wa cn0 cexp co cdiv c1 cmul caddc cz syl3anc wceq adantr eqtr3d
      eqtrd oveq1d cc0 wne cr cneg w3a simp1l simp3 expcl syl2anc simp2r nnnn0d
      cn simp1r expne0i divrec2d simp2l recnd negnegd nnnegz syl eqeltrrd nn0zd
      nnzd zaddcld expclz divcan4d simpr expadd cmin zcnd negsubd nn0cnd oveq2d
      pncan2d expneg2 znegcld negdi2d negcld npcand recdivd wo simprbi mpjaodan
      elznn0 3eqtr4d ) ADEZAUAUBZFZBUCEZBUDZULEZFZCGEZUEZACHIZAWJHIZJIZKWPJIZWO
      LIABCMIZHIZABHIZWOLIWNWOWPWNWFWMWODEZWFWGWLWMUFZWHWLWMUGZACUHUIZWNWFWJGEZ
      WPDEZXCWNWJWHWIWKWMUJZUKZAWJUHUIZWNWFWGWJNEWPUAUBZXCWFWGWLWMUMZWNWJXHVCAW
      JUNOZUOWNWSGEZWTWQPWSUDZGEZWNXNFZWTWPLIZWPJIWTWQXQWTWPWNWTDEZXNWNWFWGWSNE
      ZXSXCXLWNBCWNWJUDZBNWNBWNBWHWIWKWMUPUQZURWNWKYANEXHWJUSUTVAWNCXDVBZVDZAWS
      VEOQWNXGXNXJQWNXKXNXMQVFXQXRWOWPJXQAWSWJMIZHIZXRWOXQWFXNXFYFXRPWNWFXNXCQW
      NXNVGWNXFXNXIQAWSWJVHOXQYECAHWNYECPXNWNYEWSBVIICWNWSBWNWSYDVJZYBVKWNBCYBW
      NCXDVLZVNSQVMRTRWNXPFZWTKAXOHIZJIZWQYIWFWSDEZXPWTYKPWNWFXPXCQZWNYLXPYGQWN
      XPVGZAWSVOOYIYKKWPWOJIZJIZWQYIYJYOKJYIYJWOLIZWOJIYJYOYIYJWOWNYJDEZXPWNWFW
      GXONEYRXCXLWNWSYDVPAXOVEOQWNXBXPXEQWNWOUAUBZXPWNWFWGCNEYSXCXLYCACUNOZQVFY
      IYQWPWOJYIAXOCMIZHIZYQWPYIWFXPWMUUBYQPYMYNWNWMXPXDQAXOCVHOYIUUAWJAHWNUUAW
      JPXPWNUUAWJCVIIZCMIWJWNXOUUCCMWNBCYBYHVQTWNWJCWNBYBVRYHVSSQVMRTRVMWNYPWQP
      XPWNWPWOXJXEXMYTVTQSSWNXTXNXPWAZYDXTWSUCEUUDWSWDWBUTWCWNXAWRWOLWNWFBDEXFX
      AWRPXCYBXIABVOOTWE $.

    $( Sum of exponents law for integer exponentiation.  Proposition 10-4.2(a)
       of [Gleason] p. 135.  (Contributed by Mario Carneiro, 4-Jun-2014.) $)
    expaddz $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( M e. ZZ /\ N e. ZZ ) ) ->
                  ( A ^ ( M + N ) ) = ( ( A ^ M ) x. ( A ^ N ) ) ) $=
      ( cc wcel cc0 wne wa cz caddc cexp cmul wceq cn0 cneg 3expia syl3anc cdiv
      co c1 cr cn wo elznn0nn expadd adantlr expaddzlem jaodan w3a simp3 nn0cnd
      wi simp2l recnd addcomd oveq2d simp1l expcl syl2anc simp1r negnegd simp2r
      nnnn0d nn0negz syl eqeltrrd expclz mulcomd 3eqtr4d impancom simp3l negdid
      simp3r eqtrd 1t1e1 oveq1i syl6eqr nn0zd expne0i ax-1cn divmuldiv syl22anc
      mpanl12 eqtr4d addcld nn0addcld eqeltrd expneg2 oveq12d jaod sylan2b impr
      syl5bi ) ADEZAFGZHZBIEZCIEZABCJSZKSZABKSZACKSZLSZMZWRCNEZCUAEZCOZUBEZHZUC
      ZWPWQHXDCUDWQWPBNEZBUAEZBOZUBEZHZUCZXJXDULBUDWPXPHXEXDXIWPXKXEXDULZXOWNXK
      XQWOWNXKXEXDABCUEPUFWPXOXEXDABCUGPUHWPXKXIXDULXOWPXIXKXDWPXIXKXDWPXIXKUIZ
      ACBJSZKSXBXALSWTXCACBUGXRWSXSAKXRBCXRBWPXIXKUJZUKXRCWPXFXHXKUMUNZUOUPXRXA
      XBXRWNXKXADEWNWOXIXKUQZXTABURUSXRWNWOWRXBDEYBWNWOXIXKUTXRXGOZCIXRCYAVAXRX
      GNEZYCIEXRXGWPXFXHXKVBVCXGVDVEVFACVGQVHVIPVJWPXOXIXDWPXOXIUIZTAWSOZKSZRSZ
      TAXMKSZRSZTAXGKSZRSZLSZWTXCYEYHTTLSZYIYKLSZRSZYMYEYHTYORSYPYEYGYOTRYEYGAX
      MXGJSZKSZYOYEYFYQAKYEBCYEBWPXLXNXIUMUNZYECWPXOXFXHVKUNZVLZUPYEWNXMNEZYDYR
      YOMWNWOXOXIUQZYEXMWPXLXNXIVBVCZYEXGWPXOXFXHVMVCZAXMXGUEQVNUPYNTYORVOVPVQY
      EYIDEZYIFGZYKDEZYKFGZYMYPMZYEWNUUBUUFUUCUUDAXMURUSYEWNWOXMIEUUGUUCWNWOXOX
      IUTZYEXMUUDVRAXMVSQYEWNYDUUHUUCUUEAXGURUSYEWNWOXGIEUUIUUCUUKYEXGUUEVRAXGV
      SQTDEZUULUUFUUGHUUHUUIHHUUJVTVTTTYIYKWAWCWBWDYEWNWSDEYFNEWTYHMUUCYEBCYSYT
      WEYEYFYQNUUAYEXMXGUUDUUEWFWGAWSWHQYEXAYJXBYLLYEWNBDEUUBXAYJMUUCYSUUDABWHQ
      YEWNCDEYDXBYLMUUCYTUUEACWHQWIVIPUHWJWKWMWL $.

    $( Product of exponents law for positive integer exponentiation.
       Proposition 10-4.2(b) of [Gleason] p. 135, restricted to nonnegative
       integer exponents.  (Contributed by NM, 4-Jan-2006.) $)
    expmul $p |- ( ( A e. CC /\ M e. NN0 /\ N e. NN0 ) ->
               ( A ^ ( M x. N ) ) = ( ( A ^ M ) ^ N ) ) $=
      ( vj cc wcel cn0 cmul co cexp wceq wa wi cc0 c1 caddc oveq2 oveq2d imbi2d
      eqeq12d vk cv nn0cn mul01d exp0 sylan9eqr expcl eqtr4d oveq1 ax-1cn adddi
      mp3an3 mulid1 adantr syl2an adantll simpll nn0mulcl simplr expadd syl3anc
      syl eqtrd expp1 sylan syl5ibr expcom a2d nn0ind expdcom 3imp ) AEFZBGFZCG
      FZABCHIZJIZABJIZCJIZKZVNVLVMVSVLVMLZABDUBZHIZJIZVQWAJIZKZMVTABNHIZJIZVQNJ
      IZKZMVTABUAUBZHIZJIZVQWJJIZKZMVTABWJOPIZHIZJIZVQWOJIZKZMVTVSMDUACWANKZWEW
      IVTWTWCWGWDWHWTWBWFAJWANBHQRWANVQJQTSWAWJKZWEWNVTXAWCWLWDWMXAWBWKAJWAWJBH
      QRWAWJVQJQTSWAWOKZWEWSVTXBWCWQWDWRXBWBWPAJWAWOBHQRWAWOVQJQTSWACKZWEVSVTXC
      WCVPWDVRXCWBVOAJWACBHQRWACVQJQTSVTWGOWHVMVLWGANJIOVMWFNAJVMBBUCZUDRAUEUFV
      TVQEFZWHOKABUGZVQUEVBUHWJGFZVTWNWSVTXGWNWSMWNWSVTXGLZWLVQHIZWMVQHIZKWLWMV
      QHUIXHWQXIWRXJXHWQAWKBPIZJIZXIXHWPXKAJVMXGWPXKKZVLVMBEFZWJEFZXMXGXDWJUCXN
      XOLZWPWKBOHIZPIZXKXNXOOEFWPXRKUJBWJOUKULXPXQBWKPXNXQBKXOBUMUNRVCUOUPRXHVL
      WKGFZVMXLXIKVLVMXGUQVMXGXSVLBWJURUPVLVMXGUSAWKBUTVAVCVTXEXGWRXJKXFVQWJVDV
      ETVFVGVHVIVJVK $.

    $( Product of exponents law for integer exponentiation.  Proposition
       10-4.2(b) of [Gleason] p. 135.  (Contributed by Mario Carneiro,
       7-Jul-2014.) $)
    expmulz $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( M e. ZZ /\ N e. ZZ ) ) ->
               ( A ^ ( M x. N ) ) = ( ( A ^ M ) ^ N ) ) $=
      ( cc wcel wa cz cmul co cexp wceq cn0 expmul 3expia c1 cdiv oveq2d nnnn0d
      recnd syl3anc cc0 wne cr cneg cn wo elznn0nn wi adantlr w3a simp2l nn0cnd
      simp3 simp1l simp2r eqtr3d expcl syl2anc simp1r nnzd expne0i nn0zd exprec
      mulneg1d eqtr4d mulcld nn0mulcld eqeltrrd expneg2 oveq1d 3eqtr4d mulneg2d
      jaodan simp2 simp3l simp3r reccld recrecd mul2negd 3eqtrd 3eqtrrd sylan2b
      jaod syl5bi impr ) ADEZAUAUBZFZBGEZCGEZABCHIZJIZABJIZCJIZKZWJCLEZCUCEZCUD
      ZUEEZFZUFZWHWIFWOCUGWIWHBLEZBUCEZBUDZUEEZFZUFZXAWOUHBUGWHXGFWPWOWTWHXBWPW
      OUHZXFWFXBXHWGWFXBWPWOABCMNUIWHXFWPWOWHXFWPUJZOAWKUDZJIZPIZOAXDJIZPIZCJIZ
      WLWNXIXLOXMCJIZPIZXOXIXKXPOPXIAXDCHIZJIZXKXPXIXRXJAJXIBCXIBWHXCXEWPUKSZXI
      CWHXFWPUMZULZVDZQXIWFXDLEZWPXSXPKWFWGXFWPUNZXIXDWHXCXEWPUOZRZYAAXDCMTUPQX
      IXMDEZXMUAUBZWJXOXQKXIWFYDYHYEYGAXDUQZURXIWFWGXDGEZYIYEWFWGXFWPUSXIXDYFUT
      AXDVAZTXICYAVBXMCVCTVEXIWFWKDEZXJLEZWLXLKZYEXIBCXTYBVFXIXRXJLYCXIXDCYGYAV
      GVHAWKVIZTXIWMXNCJXIWFBDEZYDWMXNKZYEXTYGABVIZTVJVKNVMWHXBWTWOUHXFWHXBWTWO
      WHXBWTUJZXLOWMWRJIZPIZWLWNYTXKUUAOPYTABWRHIZJIZXKUUAYTUUCXJAJYTBCYTBWHXBW
      TVNZULZYTCWHXBWQWSVOSZVLZQYTWFXBWRLEZUUDUUAKWFWGXBWTUNZUUEYTWRWHXBWQWSVPR
      ZABWRMTUPQYTWFYMYNYOUUJYTBCUUFUUGVFYTUUCXJLUUHYTBWRUUEUUKVGVHYPTYTWMDEZCD
      EZUUIWNUUBKYTWFXBUULUUJUUEABUQURUUGUUKWMCVITVKNWHXFWTWOWHXFWTUJZWNXOOXNWR
      JIZPIZWLUUNWMXNCJUUNWFYQYDYRWFWGXFWTUNZUUNBWHXCXEWTUKSZUUNXDWHXCXEWTUOZRZ
      YSTVJUUNXNDEUUMUUIXOUUPKUUNXMUUNWFYDYHUUQUUTYJURZUUNWFWGYKYIUUQWFWGXFWTUS
      UUNXDUUSUTYLTZVQUUNCWHXFWQWSVOSZUUNWRWHXFWQWSVPZRZXNCVITUUNUUPOOXMWRJIZPI
      ZPIUVFWLUUNUUOUVGOPUUNYHYIWRGEZUUOUVGKUVAUVBUUNWRUVDUTZXMWRVCTQUUNUVFUUNY
      HUUIUVFDEUVAUVEXMWRUQURUUNYHYIUVHUVFUAUBUVAUVBUVIXMWRVATVRUUNAXDWRHIZJIZU
      VFWLUUNWFYDUUIUVKUVFKUUQUUTUVEAXDWRMTUUNUVJWKAJUUNBCUURUVCVSQUPVTWANVMWCW
      BWDWE $.
  $}

  $( Exponentiation of negative one to an even power.  (Contributed by Scott
     Fenton, 17-Jan-2018.) $)
  m1expeven $p |- ( N e. ZZ -> ( -u 1 ^ ( 2 x. N ) ) = 1 ) $=
    ( cz wcel c1 cneg c2 cmul cexp caddc zcn 2timesd oveq2d wceq cc0 wne anidms
    co cc oveq12 syl6eq wa neg1cn neg1ne0 expaddz mpanl12 m1expcl2 wo ovex elpr
    cpr neg1mulneg1e1 1t1e1 jaoi sylbi syl 3eqtrd ) ABCZDEZFAGQZHQURAAIQZHQZURA
    HQZVBGQZDUQUSUTURHUQAAJKLUQVAVCMZURRCURNOUQUQUAVDUBUCURAAUDUEPUQVBURDUJCZVC
    DMZAUFVEVBURMZVBDMZUGVFVBURDURAHUHUIVGVFVHVGVCURURGQZDVGVCVIMVBURVBURGSPUKT
    VHVCDDGQZDVHVCVJMVBDVBDGSPULTUMUNUOUP $.

  $( Exponent subtraction law for nonnegative integer exponentiation.
     (Contributed by NM, 2-Aug-2006.)  (Revised by Mario Carneiro,
     4-Jun-2014.) $)
  expsub $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( M e. ZZ /\ N e. ZZ ) ) ->
                 ( A ^ ( M - N ) ) = ( ( A ^ M ) / ( A ^ N ) ) ) $=
    ( cc wcel cc0 wne wa cz cneg co cexp cmul cdiv wceq zcn oveq2d 3expa expclz
    adantrl cmin znegcl expaddz sylanr2 negsub syl2an adantl c1 expnegz adantrr
    caddc expne0i divrecd eqtr4d 3eqtr3d ) ADEZAFGZHZBIEZCIEZHZHZABCJZUKKZLKZAB
    LKZAVCLKZMKZABCUAKZLKVFACLKZNKZUTURUSVCIEVEVHOCUBABVCUCUDVBVDVIALVAVDVIOZUR
    USBDECDEVLUTBPCPBCUEUFUGQVBVHVFUHVJNKZMKVKVBVGVMVFMURUTVGVMOZUSUPUQUTVNACUI
    RTQVBVFVJURUSVFDEZUTUPUQUSVOABSRUJURUTVJDEZUSUPUQUTVPACSRTURUTVJFGZUSUPUQUT
    VQACULRTUMUNUO $.

  $( Value of a nonzero complex number raised to an integer power plus one.
     (Contributed by Mario Carneiro, 4-Jun-2014.) $)
  expp1z $p |- ( ( A e. CC /\ A =/= 0 /\ N e. ZZ ) -> ( A ^ ( N + 1 ) ) =
               ( ( A ^ N ) x. A ) ) $=
    ( cc wcel cc0 wne cz w3a c1 caddc co cexp cmul wceq wa expaddz mpanr2 3impa
    1z exp1 3ad2ant1 oveq2d eqtrd ) ACDZAEFZBGDZHZABIJKLKZABLKZAILKZMKZUIAMKUDU
    EUFUHUKNZUDUEOUFIGDULSABIPQRUGUJAUIMUDUEUJANUFATUAUBUC $.

  $( Value of a complex number raised to an integer power minus one.
     (Contributed by NM, 25-Dec-2008.)  (Revised by Mario Carneiro,
     4-Jun-2014.) $)
  expm1 $p |- ( ( A e. CC /\ A =/= 0 /\ N e. ZZ ) -> ( A ^ ( N - 1 ) ) =
               ( ( A ^ N ) / A ) ) $=
    ( cc wcel cc0 wne cz w3a c1 cmin co cexp cdiv wceq wa 1z expsub mpanr2 exp1
    3impa 3ad2ant1 oveq2d eqtrd ) ACDZAEFZBGDZHZABIJKLKZABLKZAILKZMKZUIAMKUDUEU
    FUHUKNZUDUEOUFIGDULPABIQRTUGUJAUIMUDUEUJANUFASUAUBUC $.

  $( Nonnegative integer exponentiation of a quotient.  (Contributed by NM,
     2-Aug-2006.)  (Revised by Mario Carneiro, 4-Jun-2014.) $)
  expdiv $p |- ( ( A e. CC /\ ( B e. CC /\ B =/= 0 ) /\ N e. NN0 ) ->
                ( ( A / B ) ^ N ) = ( ( A ^ N ) / ( B ^ N ) ) ) $=
    ( cc wcel cc0 wne wa cn0 w3a cdiv co cexp c1 cmul wceq divrec 3expb syl3anc
    expcl 3adant3 oveq1d mulexp syl3an2 cz simp2l simp2r 3ad2ant3 exprec oveq2d
    reccl nn0z 3adant2 adantlr 3adant1 expne0i divrecd eqtr4d 3eqtrd ) ADEZBDEZ
    BFGZHZCIEZJZABKLZCMLANBKLZOLZCMLZACMLZVGCMLZOLZVJBCMLZKLZVEVFVHCMUTVCVFVHPZ
    VDUTVAVBVOABQRUAUBVCUTVGDEVDVIVLPBUKAVGCUCUDVEVLVJNVMKLZOLVNVEVKVPVJOVEVAVB
    CUEEZVKVPPUTVAVBVDUFZUTVAVBVDUGZVDUTVQVCCULUHZBCUISUJVEVJVMUTVDVJDEVCACTUMV
    CVDVMDEZUTVAVDWAVBBCTUNUOVEVAVBVQVMFGVRVSVTBCUPSUQURUS $.

  $( Ordering relationship for exponentiation.  (Contributed by NM,
     2-Aug-2006.)  (Revised by Mario Carneiro, 4-Jun-2014.) $)
  ltexp2a $p |- ( ( ( A e. RR /\ M e. ZZ /\ N e. ZZ ) /\
             ( 1 < A /\ M < N ) ) -> ( A ^ M ) < ( A ^ N ) ) $=
    ( cr wcel cz w3a c1 clt wbr wa cexp co cmul crp rpexpcl syl2anc rpred recnd
    cc0 simpl1 0red 1red 0lt1 a1i simprl lttrd elrpd simpl2 mulid2d cdiv simprr
    cmin cn simpl3 znnsub mpbid expgt1 syl3anc wne wceq gt0ne0d expsub syl22anc
    wb cc breqtrd ltmuldivd mpbird eqbrtrrd ) ADEZBFEZCFEZGZHAIJZBCIJZKZKZHABLM
    ZNMZVSACLMZIVRVSVRVSVRVSVRAOEZVLVSOEVRAVKVLVMVQUAZVRTHAVRUBVRUCZWCTHIJVRUDU
    EVNVOVPUFZUGZUHZVKVLVMVQUIZABPQZRSUJVRVTWAIJHWAVSUKMZIJVRHACBUMMZLMZWJIVRVK
    WKUNEZVOHWLIJWCVRVPWMVNVOVPULVRVLVMVPWMVEWHVKVLVMVQUOZBCUPQUQWEAWKURUSVRAVF
    EATUTVMVLWLWJVAVRAWCSVRAWFVBWNWHACBVCVDVGVRHWAVSWDVRWAVRWBVMWAOEWGWNACPQRWI
    VHVIVJ $.

  ${
    $d x y A $.  $d x y M $.  $d x y N $.
    $( Cancellation law for exponentiation.  (Contributed by NM, 2-Aug-2006.)
       (Revised by Mario Carneiro, 4-Jun-2014.) $)
    expcan $p |- ( ( ( A e. RR /\ M e. ZZ /\ N e. ZZ ) /\
               1 < A ) -> ( ( A ^ M ) = ( A ^ N ) <-> M = N ) ) $=
      ( vx vy cr wcel cz w3a c1 clt wbr wa wceq cexp co cv oveq2 crp cc0 wb a1i
      zssre simpl 0red 1red simpr lttrd elrpd rpexpcl sylan rpred simpll simprl
      0lt1 simprr simplr ltexp2a expr syl31anc eqord1 ancom2s exp43 com24 3imp1
      wi bicomd ) AFGZBHGZCHGZIJAKLZMBCNZABOPZACOPZNZVHVIVJVKVLVOUAZVHVKVJVIVPV
      HVKVJVIVPVHVKMZVIVJVPVQDEADQZOPZAEQZOPZBCHVMVNVRVTAORVRBAORVRCAORUCVQVRHG
      ZMVSVQASGWBVSSGVQAVHVKUDZVQTJAVQUEVQUFWCTJKLVQUOUBVHVKUGUHUIAVRUJUKULVQWB
      VTHGZMZMVHWBWDVKVRVTKLZVSWAKLZVFVHVKWEUMVQWBWDUNVQWBWDUPVHVKWEUQVHWBWDIVK
      WFWGAVRVTURUSUTVAVBVCVDVEVG $.

    $( Ordering law for exponentiation.  (Contributed by NM, 2-Aug-2006.)
       (Revised by Mario Carneiro, 5-Jun-2014.) $)
    ltexp2 $p |- ( ( ( A e. RR /\ M e. ZZ /\ N e. ZZ ) /\
             1 < A ) -> ( M < N <-> ( A ^ M ) < ( A ^ N ) ) ) $=
      ( vx vy cr wcel cz c1 clt wbr cexp co wb wa cv oveq2 zssre crp cc0 a1i wi
      simpl 0red 1red 0lt1 simpr lttrd elrpd rpexpcl sylan simpll simprl simprr
      rpred simplr w3a ltexp2a expr syl31anc ltord1 ancom2s exp43 com24 3imp1 )
      AFGZBHGZCHGZIAJKZBCJKABLMZACLMZJKNZVFVIVHVGVLVFVIVHVGVLVFVIOZVGVHVLVMDEAD
      PZLMZAEPZLMZBCHVJVKVNVPALQVNBALQVNCALQRVMVNHGZOVOVMASGVRVOSGVMAVFVIUCZVMT
      IAVMUDVMUEVSTIJKVMUFUAVFVIUGUHUIAVNUJUKUOVMVRVPHGZOZOVFVRVTVIVNVPJKZVOVQJ
      KZUBVFVIWAULVMVRVTUMVMVRVTUNVFVIWAUPVFVRVTUQVIWBWCAVNVPURUSUTVAVBVCVDVE
      $.

    $( Ordering law for exponentiation.  (Contributed by Mario Carneiro,
       26-Apr-2016.) $)
    leexp2 $p |- ( ( ( A e. RR /\ M e. ZZ /\ N e. ZZ ) /\
             1 < A ) -> ( M <_ N <-> ( A ^ M ) <_ ( A ^ N ) ) ) $=
      ( cr wcel cz w3a c1 clt wbr wa wn cexp co cle wb zre cc0 reexpclz syl3anc
      3ancomb ltexp2 sylanb notbid simpl2 simpl3 syl2an syl2anc wne simpl1 0red
      lenlt 1red 0lt1 a1i simpr lttrd gt0ne0d lenltd 3bitr4d ) ADEZBFEZCFEZGZHA
      IJZKZCBIJZLZACMNZABMNZIJZLBCOJZVJVIOJVFVGVKVDVAVCVBGVEVGVKPVAVBVCUAACBUBU
      CUDVFVBVCVLVHPZVAVBVCVEUEZVAVBVCVEUFZVBBDECDEVMVCBQCQBCULUGUHVFVJVIVFVAAR
      UIZVBVJDEVAVBVCVEUJZVFAVFRHAVFUKVFUMVQRHIJVFUNUOVDVEUPUQURZVNABSTVFVAVPVC
      VIDEVQVRVOACSTUSUT $.
  $}

  $( Weak ordering relationship for exponentiation.  (Contributed by NM,
     14-Dec-2005.)  (Revised by Mario Carneiro, 5-Jun-2014.) $)
  leexp2a $p |- ( ( A e. RR /\ 1 <_ A /\ N e. ( ZZ>= ` M ) ) ->
                   ( A ^ M ) <_ ( A ^ N ) ) $=
    ( cr wcel c1 cle wbr cuz cfv cexp co crp cc0 3ad2ant3 rpexpcl syl2anc rpred
    cz recnd w3a cmul simp1 0red 1red clt 0lt1 simp2 ltletrd elrpd eluzel2 cdiv
    a1i mulid2d cmin cn0 uznn0sub expge1 syl3anc cc wceq gt0ne0d eluzelz expsub
    wne syl22anc breqtrd lemuldivd mpbird eqbrtrrd ) ADEZFAGHZCBIJEZUAZFABKLZUB
    LZVOACKLZGVNVOVNVOVNVOVNAMEZBSEZVOMEVNAVKVLVMUCZVNNFAVNUDVNUEZVTNFUFHVNUGUM
    VKVLVMUHZUIZUJZVMVKVSVLBCUKOZABPQZRTUNVNVPVQGHFVQVOULLZGHVNFACBUOLZKLZWGGVN
    VKWHUPEZVLFWIGHVTVMVKWJVLBCUQOWBAWHURUSVNAUTEANVECSEZVSWIWGVAVNAVTTVNAWCVBV
    MVKWKVLBCVCOZWEACBVDVFVGVNFVQVOWAVNVQVNVRWKVQMEWDWLACPQRWFVHVIVJ $.

  $( The power of a positive number smaller than 1 decreases as its exponent
     increases.  (Contributed by NM, 2-Aug-2006.)  (Revised by Mario Carneiro,
     5-Jun-2014.) $)
  ltexp2r $p |- ( ( ( A e. RR+ /\ M e. ZZ /\ N e. ZZ ) /\ A < 1 ) ->
                  ( M < N <-> ( A ^ N ) < ( A ^ M ) ) ) $=
    ( crp wcel cz w3a c1 clt wbr wa cdiv co cexp cc wceq exprec syl3anc rpexpcl
    syl2anc cc0 wne simpl1 rpcnd rpne0d simpl2 simpl3 breq12d cr rprecred simpr
    wb reclt1d mpbid ltexp2 syl31anc ltrecd 3bitr4d ) ADEZBFEZCFEZGZAHIJZKZHALM
    ZBNMZVECNMZIJZHABNMZLMZHACNMZLMZIJBCIJZVKVIIJVDVFVJVGVLIVDAOEZAUAUBZUTVFVJP
    VDAUSUTVAVCUCZUDZVDAVPUEZUSUTVAVCUFZABQRVDVNVOVAVGVLPVQVRUSUTVAVCUGZACQRUHV
    DVEUIEUTVAHVEIJZVMVHULVDAVPUJVSVTVDVCWAVBVCUKVDAVPUMUNVEBCUOUPVDVKVIVDUSVAV
    KDEVPVTACSTVDUSUTVIDEVPVSABSTUQUR $.

  ${
    $d j k A $.  $d j k B $.  $d j k M $.  $d j k N $.
    $( Weak ordering relationship for exponentiation.  (Contributed by Paul
       Chapman, 14-Jan-2008.)  (Revised by Mario Carneiro, 29-Apr-2014.) $)
    leexp2r $p |- ( ( ( A e. RR /\ M e. NN0 /\ N e. ( ZZ>= ` M ) ) /\
                        ( 0 <_ A /\ A <_ 1 ) ) ->
                      ( A ^ N ) <_ ( A ^ M ) ) $=
      ( vj cr wcel cn0 cle wbr c1 wa cexp co wceq breq1d imbi2d reexpcl syl2anc
      wi oveq2 vk cuz cfv w3a cc0 cv caddc cz adantr leidd cmul simprll simprlr
      1red simpl eluznn0 simprrl expge0 syl3anc simprrr lemul2ad cc recnd expp1
      a1i mulid1d eqcomd 3brtr4d peano2nn0 syl ad2antrl letr ex a2d uzind4 expd
      mpand com12 3impia imp ) AEFZBGFZCBUBUCZFZUDUEAHIZAJHIZKZACLMZABLMZHIZWAW
      BWDWGWJSZWDWAWBKZWKWDWLWGWJWLWGKZADUFZLMZWIHIZSWMWIWIHIZSZWMAUAUFZLMZWIHI
      ZSWMAWSJUGMZLMZWIHIZSWMWJSDUABCWNBNZWPWQWMXEWOWIWIHWNBALTOPWNWSNZWPXAWMXF
      WOWTWIHWNWSALTOPWNXBNZWPXDWMXGWOXCWIHWNXBALTOPWNCNZWPWJWMXHWOWHWIHWNCALTO
      PWRBUHFWMWIWLWIEFZWGABQZUIUJVEWSWCFZWMXAXDXKWMXAXDSXKWMKZXCWTHIZXAXDXLWTA
      UKMZWTJUKMZXCWTHXLAJWTXKWAWBWGULZXLUNXLWAWSGFZWTEFZXPXLWBXKXQXKWAWBWGUMXK
      WMUOWSBUPRZAWSQRZXLWAXQWEUEWTHIXPXSXKWLWEWFUQAWSURUSXKWLWEWFUTVAXLAVBFXQX
      CXNNXLAXPVCXSAWSVDRXLXOWTXLWTXLWTXTVCVFVGVHXLXCEFZXRXIXMXAKXDSXLWAXBGFZYA
      XPXLXQYBXSWSVIVJAXBQRXTWLXIXKWGXJVKXCWTWIVLUSVQVMVNVOVPVRVSVT $.

    $( Weak mantissa ordering relationship for exponentiation.  (Contributed by
       NM, 18-Dec-2005.) $)
    leexp1a $p |- ( ( ( A e. RR /\ B e. RR /\ N e. NN0 ) /\
               ( 0 <_ A /\ A <_ B ) ) -> ( A ^ N ) <_ ( B ^ N ) ) $=
      ( cr wcel cc0 cle wa cexp co wi c1 wceq oveq2 breq12d imbi2d adantr sylan
      wbr adantlr vj vk cn0 cv caddc cc recn exp0 1le1 syl6eqbr adantl breqtrrd
      syl2an simpll reexpcl simplll simpr simplrl expge0 syl3anc simplr anim12i
      cmul jca31 simpl simpllr jca32 simplrr jca lemul12a expp1 adantll 3brtr4d
      sylc ex expcom a2d nn0ind exp4c com3l 3imp1 ) ADEZBDEZCUCEZFAGSZABGSZHZAC
      IJZBCIJZGSZWDWBWCWGWJKWDWBWCWGWJWBWCHZWGHZAUAUDZIJZBWMIJZGSZKWLAFIJZBFIJZ
      GSZKWLAUBUDZIJZBWTIJZGSZKWLAWTLUEJZIJZBXDIJZGSZKWLWJKUAUBCWMFMZWPWSWLXHWN
      WQWOWRGWMFAINWMFBINOPWMWTMZWPXCWLXIWNXAWOXBGWMWTAINWMWTBINOPWMXDMZWPXGWLX
      JWNXEWOXFGWMXDAINWMXDBINOPWMCMZWPWJWLXKWNWHWOWIGWMCAINWMCBINOPWKWSWGWBAUF
      EZBUFEZWSWCAUGZBUGZXLXMHZWQLWRGXPWQLLGXLWQLMXMAUHQUIUJXMWRLMXLBUHUKULUMQW
      TUCEZWLXCXGWLXQXCXGKWLXQHZXCXGXRXCHZXAAVCJZXBBVCJZXEXFGXSXADEZFXAGSZHXBDE
      ZHZWBWEHZWCHHZXCWFHXTYAGSXRYGXCXRYEYFWCXRYBYCYDWLWBXQYBWBWCWGUNAWTUORXRWB
      XQWEYCWBWCWGXQUPWLXQUQWKWEWFXQURAWTUSUTWLWCXQYDWBWCWGVABWTUORVDWLYFXQWKWB
      WGWEWBWCVEWEWFVEVBQWBWCWGXQVFVGQXSXCWFXRXCUQXRWFXCWKWEWFXQVHQVIXAXBABVJVN
      XRXEXTMZXCWKXQYHWGWBXQYHWCWBXLXQYHXNAWTVKRTTQXRXFYAMZXCWKXQYIWGWCXQYIWBWC
      XMXQYIXOBWTVKRVLTQVMVOVPVQVRVSVTWA $.
  $}

  $( Nonnegative integer exponentiation with a mantissa between 0 and 1
     inclusive is less than or equal to 1.  (Contributed by Paul Chapman,
     29-Dec-2007.)  (Revised by Mario Carneiro, 5-Jun-2014.) $)
  exple1 $p |- ( ( ( A e. RR /\ 0 <_ A /\ A <_ 1 ) /\ N e. NN0 ) ->
                  ( A ^ N ) <_ 1 ) $=
    ( cr wcel cc0 cle wbr c1 w3a cn0 wa cexp co cuz cfv simpl1 0nn0 simpr nn0uz
    a1i syl6eleq simpl2 simpl3 leexp2r syl32anc cc wceq recnd exp0 syl breqtrd
    ) ACDZEAFGZAHFGZIZBJDZKZABLMZAELMZHFUQULEJDZBENOZDUMUNURUSFGULUMUNUPPZUTUQQ
    TUQBJVAUOUPRSUAULUMUNUPUBULUMUNUPUCAEBUDUEUQAUFDUSHUGUQAVBUHAUIUJUK $.

  $( An upper bound on ` A ^ N ` when ` 2 <_ A ` .  (Contributed by NM,
     19-Dec-2005.) $)
  expubnd $p |- ( ( A e. RR /\ N e. NN0 /\ 2 <_ A ) ->
                  ( A ^ N ) <_ ( ( 2 ^ N ) x. ( ( A - 1 ) ^ N ) ) ) $=
    ( cr wcel c2 cle wbr cexp co c1 cmin cmul cc0 wa 2re caddc mp3an1 wceq 2cn
    cc cn0 w3a simp1 peano2rem remulcl sylancr 3ad2ant1 simp2 0le2 letr mp3an12
    wi 0re mpani wb resubcl mpan2 leadd2 mpdan biimpa recn npcan sylancl adantr
    imp ax-1cn subdi mp3an13 2times 2t1e2 a1i oveq12d addsub mp3an3 3eqtrrd syl
    anidms 3brtr3d 3adant2 leexp1a syl31anc recnd mulexp sylan 3adant3 breqtrd
    jca ) ACDZBUADZEAFGZUBZABHIZEAJKIZLIZBHIZEBHIWMBHILIZFWKWHWNCDZWIMAFGZAWNFG
    ZNZWLWOFGWHWIWJUCWHWIWQWJWHECDZWMCDWQOAUDZEWMUEUFUGWHWIWJUHWHWJWTWIWHWJNZWR
    WSWHWJWRWHMEFGZWJWRUIMCDXAWHXDWJNWRULUMOMEAUJUKUNVEXCAEKIZEPIZXEAPIZAWNFWHW
    JXFXGFGZWHXECDZWJXHUOZWHXAXIOAEUPUQXAWHXIXJOEAXEURQUSUTWHXFARZWJWHATDZETDZX
    KAVAZSAEVBVCVDWHXGWNRZWJWHXLXOXNXLWNEALIZEJLIZKIZAAPIZEKIZXGXMXLJTDWNXRRSVF
    EAJVGVHXLXPXSXQEKAVIXQERXLVJVKVLXLXTXGRZXLXLXMYASAAEVMVNVQVOVPVDVRWGVSAWNBV
    TWAWHWIWOWPRZWJWHWMTDZWIYBWHWMXBWBXMYCWIYBSEWMBWCQWDWEWF $.

  $( Value of the square of a complex number.  (Contributed by Raph Levien,
     10-Apr-2004.) $)
  sqval $p |- ( A e. CC -> ( A ^ 2 ) = ( A x. A ) ) $=
    ( cc wcel c2 cexp co c1 cmul caddc df-2 oveq2i wceq 1nn0 expp1 mpan2 syl5eq
    cn0 exp1 oveq1d eqtrd ) ABCZADEFZAGEFZAHFZAAHFUAUBAGGIFZEFZUDDUEAEJKUAGQCUF
    UDLMAGNOPUAUCAAHARST $.

  $( The square of the negative of a number.  (Contributed by NM,
     15-Jan-2006.) $)
  sqneg $p |- ( A e. CC -> ( -u A ^ 2 ) = ( A ^ 2 ) ) $=
    ( cc wcel cneg cmul co c2 cexp wceq mul2neg anidms negcl sqval syl 3eqtr4d
    ) ABCZADZQEFZAAEFZQGHFZAGHFPRSIAAJKPQBCTRIALQMNAMO $.

  $( Swap the order of subtraction in a square.  (Contributed by Scott Fenton,
     10-Jun-2013.) $)
  sqsubswap $p |- ( ( A e. CC /\ B e. CC ) ->
             ( ( A - B ) ^ 2 ) = ( ( B - A ) ^ 2 ) ) $=
    ( cc wcel wa cmin co cneg cexp wceq subcl sqneg syl negsubdi2 oveq1d eqtr3d
    c2 ) ACDBCDEZABFGZHZQIGZSQIGZBAFGZQIGRSCDUAUBJABKSLMRTUCQIABNOP $.

  $( Closure of square.  (Contributed by NM, 10-Aug-1999.) $)
  sqcl $p |- ( A e. CC -> ( A ^ 2 ) e. CC ) $=
    ( cc wcel c2 cexp co cmul sqval mulcl anidms eqeltrd ) ABCZADEFAAGFZBAHLMBC
    AAIJK $.

  $( Distribution of square over multiplication.  (Contributed by NM,
     21-Mar-2008.) $)
  sqmul $p |- ( ( A e. CC /\ B e. CC ) ->
             ( ( A x. B ) ^ 2 ) = ( ( A ^ 2 ) x. ( B ^ 2 ) ) ) $=
    ( cc wcel c2 cn0 cmul co cexp wceq 2nn0 mulexp mp3an3 ) ACDBCDEFDABGHEIHAEI
    HBEIHGHJKABELM $.

  $( A number is zero iff its square is zero.  (Contributed by NM,
     11-Mar-2006.) $)
  sqeq0 $p |- ( A e. CC -> ( ( A ^ 2 ) = 0 <-> A = 0 ) ) $=
    ( cc wcel c2 cn cexp co cc0 wceq wb 2nn expeq0 mpan2 ) ABCDECADFGHIAHIJKADL
    M $.

  $( Distribution of square over division.  (Contributed by Scott Fenton,
     7-Jun-2013.)  (Proof shortened by Mario Carneiro, 9-Jul-2013.) $)
  sqdiv $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
      ( ( A / B ) ^ 2 ) = ( ( A ^ 2 ) / ( B ^ 2 ) ) ) $=
    ( cc wcel cc0 wne w3a cdiv co cmul c2 cexp wa wceq simp1 divmuldiv syl22anc
    3simpc divcl sqval syl oveqan12d 3adant3 3eqtr4d ) ACDZBCDZBEFZGZABHIZUIJIZ
    AAJIZBBJIZHIZUIKLIZAKLIZBKLIZHIZUHUEUEUFUGMZURUJUMNUEUFUGOZUSUEUFUGRZUTAABB
    PQUHUICDUNUJNABSUITUAUEUFUQUMNUGUEUFUOUKUPULHATBTUBUCUD $.

  $( The square of a nonzero number divided by itself yields the number itself.
     (Contributed by AV, 19-Jul-2021.) $)
  sqdivid $p |- ( ( A e. CC /\ A =/= 0 ) -> ( ( A ^ 2 ) / A ) = A ) $=
    ( cc wcel cc0 wne wa c2 cexp co cdiv cmul wceq sqval adantr oveq1d 3anidm12
    divcan3 eqtrd ) ABCZADEZFZAGHIZAJIAAKIZAJIZAUAUBUCAJSUBUCLTAMNOSTUDALAAQPR
    $.

  $( A number is nonzero iff its square is nonzero.  (Contributed by NM,
     11-Mar-2006.) $)
  sqne0 $p |- ( A e. CC -> ( ( A ^ 2 ) =/= 0 <-> A =/= 0 ) ) $=
    ( cc wcel c2 cexp co cc0 sqeq0 necon3bid ) ABCADEFGAGAHI $.

  $( Closure of the square of a real number.  (Contributed by NM,
     18-Oct-1999.) $)
  resqcl $p |- ( A e. RR -> ( A ^ 2 ) e. RR ) $=
    ( cr wcel c2 cn0 cexp co 2nn0 reexpcl mpan2 ) ABCDECADFGBCHADIJ $.

  $( The square of a nonzero real is positive.  (Contributed by NM,
     8-Sep-2007.) $)
  sqgt0 $p |- ( ( A e. RR /\ A =/= 0 ) -> 0 < ( A ^ 2 ) ) $=
    ( cr wcel cc0 wne wa cmul co c2 cexp clt msqgt0 wceq cc recn sqval breqtrrd
    syl adantr ) ABCZADEZFDAAGHZAIJHZKALTUCUBMZUATANCUDAOAPRSQ $.

  $( The naturals are closed under squaring.  (Contributed by Scott Fenton,
     29-Mar-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  nnsqcl $p |- ( A e. NN -> ( A ^ 2 ) e. NN ) $=
    ( cn wcel c2 cexp co cmul cc wceq nncn sqval syl nnmulcl anidms eqeltrd ) A
    BCZADEFZAAGFZBPAHCQRIAJAKLPRBCAAMNO $.

  $( Integers are closed under squaring.  (Contributed by Scott Fenton,
     18-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  zsqcl $p |- ( A e. ZZ -> ( A ^ 2 ) e. ZZ ) $=
    ( cz wcel c2 cn0 cexp co 2nn0 zexpcl mpan2 ) ABCDECADFGBCHADIJ $.

  $( The square of a rational is rational.  (Contributed by Stefan O'Rear,
     15-Sep-2014.) $)
  qsqcl $p |- ( A e. QQ -> ( A ^ 2 ) e. QQ ) $=
    ( cq wcel c2 cexp co cmul cc wceq qcn sqval syl qmulcl anidms eqeltrd ) ABC
    ZADEFZAAGFZBPAHCQRIAJAKLPRBCAAMNO $.

  $( The square function is one-to-one for nonnegative reals.  (Contributed by
     NM, 8-Apr-2001.)  (Proof shortened by Mario Carneiro, 28-May-2016.) $)
  sq11 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
               ( ( A ^ 2 ) = ( B ^ 2 ) <-> A = B ) ) $=
    ( cr wcel cc0 cle wbr wa c2 cexp co wceq cc simpl recnd sqval syl eqeqan12d
    cmul msq11 bitrd ) ACDZEAFGZHZBCDZEBFGZHZHAIJKZBIJKZLAASKZBBSKZLABLUDUGUHUJ
    UIUKUDAMDUHUJLUDAUBUCNOAPQUGBMDUIUKLUGBUEUFNOBPQRABTUA $.

  $( The square function on nonnegative reals is strictly monotonic.
     (Contributed by NM, 24-Feb-2006.) $)
  lt2sq $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
              ( A < B <-> ( A ^ 2 ) < ( B ^ 2 ) ) ) $=
    ( cr wcel cc0 cle wbr wa clt cmul co c2 cexp lt2msq wb recn sqval breqan12d
    cc syl2an ad2ant2r bitr4d ) ACDZEAFGZHBCDZEBFGZHHABIGAAJKZBBJKZIGZALMKZBLMK
    ZIGZABNUCUEULUIOZUDUFUCASDZBSDZUMUEAPBPUNUOUJUGUKUHIAQBQRTUAUB $.

  $( The square function on nonnegative reals is monotonic.  (Contributed by
     NM, 18-Oct-1999.) $)
  le2sq $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
              ( A <_ B <-> ( A ^ 2 ) <_ ( B ^ 2 ) ) ) $=
    ( cr wcel cc0 cle wbr wa cmul co c2 cexp le2msq wb cc recn breqan12d syl2an
    sqval ad2ant2r bitr4d ) ACDZEAFGZHBCDZEBFGZHHABFGAAIJZBBIJZFGZAKLJZBKLJZFGZ
    ABMUBUDUKUHNZUCUEUBAODZBODZULUDAPBPUMUNUIUFUJUGFASBSQRTUA $.

  $( The square of a 'less than or equal to' ordering.  (Contributed by NM,
     21-Mar-2008.) $)
  le2sq2 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ A <_ B ) ) ->
              ( A ^ 2 ) <_ ( B ^ 2 ) ) $=
    ( cr wcel cc0 cle wbr wa c2 cexp co simprr wb simprl 0re mp3an1 exp4b com23
    wi letr imp43 jca le2sq syldan mpbid ) ACDZEAFGZHZBCDZABFGZHZHZUJAIJKBIJKFG
    ZUHUIUJLUHUKUIEBFGZHUJUMMULUIUNUHUIUJNUFUGUIUJUNUFUIUGUJUNSUFUIUGUJUNECDUFU
    IUGUJHUNSOEABTPQRUAUBABUCUDUE $.

  $( A square of a real is nonnegative.  (Contributed by NM, 18-Oct-1999.) $)
  sqge0 $p |- ( A e. RR -> 0 <_ ( A ^ 2 ) ) $=
    ( cr wcel cc0 cmul co c2 cexp cle msqge0 cc wceq recn sqval syl breqtrrd )
    ABCZDAAEFZAGHFZIAJQAKCSRLAMANOP $.

  $( The square of an integer is a nonnegative integer.  (Contributed by Mario
     Carneiro, 18-Apr-2014.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  zsqcl2 $p |- ( A e. ZZ -> ( A ^ 2 ) e. NN0 ) $=
    ( cz wcel c2 cexp co cc0 cle wbr cn0 zsqcl cr zre sqge0 syl elnn0z sylanbrc
    ) ABCZADEFZBCGSHIZSJCAKRALCTAMANOSPQ $.

  $( Two real numbers are equal to 0 iff their Euclidean norm is.  (Contributed
     by NM, 29-Apr-2005.)  (Revised by Stefan O'Rear, 5-Oct-2014.)  (Proof
     shortened by Mario Carneiro, 28-May-2016.) $)
  sumsqeq0 $p |- ( ( A e. RR /\ B e. RR ) ->
    ( ( A = 0 /\ B = 0 ) <-> ( ( A ^ 2 ) + ( B ^ 2 ) ) = 0 ) ) $=
    ( cr wcel wa c2 cexp co cc0 wceq cle wbr wb resqcl sqge0 jca recn sqeq0 syl
    cc caddc add20 syl2an bi2anan9 bitr2d ) ACDZBCDZEAFGHZBFGHZUAHIJZUHIJZUIIJZ
    EZAIJZBIJZEUFUHCDZIUHKLZEUICDZIUIKLZEUJUMMUGUFUPUQANAOPUGURUSBNBOPUHUIUBUCU
    FUKUNUGULUOUFATDUKUNMAQARSUGBTDULUOMBQBRSUDUE $.

  ${
    sqval.1 $e |- A e. CC $.
    $( Value of square.  Inference version.  (Contributed by NM,
       1-Aug-1999.) $)
    sqvali $p |- ( A ^ 2 ) = ( A x. A ) $=
      ( cc wcel c2 cexp co cmul wceq sqval ax-mp ) ACDAEFGAAHGIBAJK $.

    $( Closure of square.  (Contributed by NM, 2-Aug-1999.) $)
    sqcli $p |- ( A ^ 2 ) e. CC $=
      ( cc wcel c2 cexp co sqcl ax-mp ) ACDAEFGCDBAHI $.

    $( A number is zero iff its square is zero.  (Contributed by NM,
       2-Oct-1999.) $)
    sqeq0i $p |- ( ( A ^ 2 ) = 0 <-> A = 0 ) $=
      ( cc wcel c2 cexp co cc0 wceq wb sqeq0 ax-mp ) ACDAEFGHIAHIJBAKL $.

    ${
      sqreci.1 $e |- A =/= 0 $.
      $( Square of reciprocal.  (Contributed by NM, 17-Sep-1999.) $)
      sqrecii $p |- ( ( 1 / A ) ^ 2 ) = ( 1 / ( A ^ 2 ) ) $=
        ( c1 cdiv co cmul c2 ax-1cn divmuldivi 1t1e1 oveq1i eqtri reccli sqvali
        cexp oveq2i 3eqtr4i ) DAEFZSGFZDAAGFZEFZSHPFDAHPFZEFTDDGFZUAEFUBDADAIBI
        BCCJUDDUAEKLMSABCNOUCUADEABOQR $.
    $}

    sqmul.2 $e |- B e. CC $.
    $( Distribution of square over multiplication.  (Contributed by NM,
       3-Sep-1999.) $)
    sqmuli $p |- ( ( A x. B ) ^ 2 ) = ( ( A ^ 2 ) x. ( B ^ 2 ) ) $=
      ( cc wcel cmul co c2 cexp wceq sqmul mp2an ) AEFBEFABGHIJHAIJHBIJHGHKCDAB
      LM $.

    sqdiv.3 $e |- B =/= 0 $.
    $( Distribution of square over division.  (Contributed by NM,
       20-Aug-2001.) $)
    sqdivi $p |- ( ( A / B ) ^ 2 ) = ( ( A ^ 2 ) / ( B ^ 2 ) ) $=
      ( cdiv co cmul c2 cexp divmuldivi divcli sqvali oveq12i 3eqtr4i ) ABFGZPH
      GAAHGZBBHGZFGPIJGAIJGZBIJGZFGABABCDCDEEKPABCDELMSQTRFACMBDMNO $.
  $}

  ${
    resqcl.1 $e |- A e. RR $.
    $( Closure of square in reals.  (Contributed by NM, 2-Aug-1999.) $)
    resqcli $p |- ( A ^ 2 ) e. RR $=
      ( cr wcel c2 cexp co resqcl ax-mp ) ACDAEFGCDBAHI $.

    $( The square of a nonzero real is positive.  (Contributed by NM,
       17-Sep-1999.) $)
    sqgt0i $p |- ( A =/= 0 -> 0 < ( A ^ 2 ) ) $=
      ( cr wcel cc0 wne c2 cexp co clt wbr sqgt0 mpan ) ACDAEFEAGHIJKBALM $.

    $( A square of a real is nonnegative.  (Contributed by NM, 3-Aug-1999.) $)
    sqge0i $p |- 0 <_ ( A ^ 2 ) $=
      ( cc0 cmul co c2 cexp cle msqge0i recni sqvali breqtrri ) CAADEAFGEHABIAA
      BJKL $.

    lt2sq.2 $e |- B e. RR $.
    $( The square function on nonnegative reals is strictly monotonic.
       (Contributed by NM, 12-Sep-1999.) $)
    lt2sqi $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
              ( A < B <-> ( A ^ 2 ) < ( B ^ 2 ) ) ) $=
      ( cc0 cle wbr wa clt cmul co c2 cexp lt2msqi recni sqvali breq12i syl6bbr
      ) EAFGEBFGHABIGAAJKZBBJKZIGALMKZBLMKZIGABCDNUASUBTIAACOPBBDOPQR $.

    $( The square function on nonnegative reals is monotonic.  (Contributed by
       NM, 12-Sep-1999.) $)
    le2sqi $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
              ( A <_ B <-> ( A ^ 2 ) <_ ( B ^ 2 ) ) ) $=
      ( cc0 cle wbr wa cmul co c2 cexp le2msqi recni sqvali breq12i syl6bbr ) E
      AFGEBFGHABFGAAIJZBBIJZFGAKLJZBKLJZFGABCDMTRUASFAACNOBBDNOPQ $.

    $( The square function is one-to-one for nonnegative reals.  (Contributed
       by NM, 27-Oct-1999.) $)
    sq11i $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
              ( ( A ^ 2 ) = ( B ^ 2 ) <-> A = B ) ) $=
      ( c2 cexp co wceq cmul cc0 cle wbr wa recni sqvali eqeq12i msq11i syl5bb
      ) AEFGZBEFGZHAAIGZBBIGZHJAKLJBKLMABHSUATUBAACNOBBDNOPABCDQR $.
  $}

  $( The square of 0 is 0.  (Contributed by NM, 6-Jun-2006.) $)
  sq0 $p |- ( 0 ^ 2 ) = 0 $=
    ( cc0 c2 cexp co wceq eqid 0cn sqeq0i mpbir ) ABCDAEAAEAFAGHI $.

  $( If a number is zero, its square is zero.  (Contributed by FL,
     10-Dec-2006.) $)
  sq0i $p |- ( A = 0 -> ( A ^ 2 ) = 0 ) $=
    ( cc0 wceq c2 cexp co oveq1 sq0 syl6eq ) ABCADEFBDEFBABDEGHI $.

  ${
    sq0id.1 $e |- ( ph -> A = 0 ) $.
    $( If a number is zero, its square is zero.  Deduction form of ~ sq0i .
       Converse of ~ sqeq0d .  (Contributed by David Moews, 28-Feb-2017.) $)
    sq0id $p |- ( ph -> ( A ^ 2 ) = 0 ) $=
      ( cc0 wceq c2 cexp co sq0i syl ) ABDEBFGHDECBIJ $.
  $}

  $( The square of 1 is 1.  (Contributed by NM, 22-Aug-1999.) $)
  sq1 $p |- ( 1 ^ 2 ) = 1 $=
    ( c2 cz wcel c1 cexp co wceq 2z 1exp ax-mp ) ABCDAEFDGHAIJ $.

  $( ` -u 1 ` squared is 1 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  neg1sqe1 $p |- ( -u 1 ^ 2 ) = 1 $=
    ( c1 cneg c2 cexp co cc wcel wceq ax-1cn sqneg ax-mp sq1 eqtri ) ABCDEZACDE
    ZAAFGNOHIAJKLM $.

  $( The square of 2 is 4.  (Contributed by NM, 22-Aug-1999.) $)
  sq2 $p |- ( 2 ^ 2 ) = 4 $=
    ( c2 cexp co cmul c4 2cn sqvali 2t2e4 eqtri ) AABCAADCEAFGHI $.

  $( The square of 3 is 9.  (Contributed by NM, 26-Apr-2006.) $)
  sq3 $p |- ( 3 ^ 2 ) = 9 $=
    ( c3 c2 cexp co cmul c9 3cn sqvali 3t3e9 eqtri ) ABCDAAEDFAGHIJ $.

  $( The square of 4 is 2 times 8.  (Contributed by AV, 20-Jul-2021.) $)
  sq4e2t8 $p |- ( 4 ^ 2 ) = ( 2 x. 8 ) $=
    ( c4 c2 cexp co cmul c8 eqcomi oveq1i 2cn sqmuli sqvali sq2 oveq12i mulassi
    2t2e4 4cn 4t2e8 mulcomli oveq2i 3eqtri ) ABCDBBEDZBCDBBCDZUBEDZBFEDZAUABCUA
    AOGHBBIIJUCUAAEDBBAEDZEDUDUBUAUBAEBIKLMBBAIIPNUEFBEABFPIQRSTT $.

  $( The cube of 2 is 8.  (Contributed by NM, 2-Aug-2004.) $)
  cu2 $p |- ( 2 ^ 3 ) = 8 $=
    ( c2 c3 cexp co c1 caddc c8 df-3 oveq2i cmul wcel cn0 wceq 2nn0 expp1 mp2an
    cc 2cn c4 eqtri sq2 oveq1i 4t2e8 ) ABCDAAEFDZCDZGBUDACHIUEAACDZAJDZGAQKALKU
    EUGMRNAAOPUGSAJDGUFSAJUAUBUCTTT $.

  $( The reciprocal of ` _i ` .  (Contributed by NM, 11-Oct-1999.) $)
  irec $p |- ( 1 / _i ) = -u _i $=
    ( c1 ci cdiv co cneg wceq cmul ax-icn mulneg2i ax-1cn mulcli negcon2i mpbir
    ixi eqtr4i negicn ine0 divmuli ) ABCDBEZFBSGDZAFTBBGDZEZABBHHIAUBFUAAEFNAUA
    JBBHHKLMOABSJHPQRM $.

  $( ` _i ` squared.  (Contributed by NM, 6-May-1999.) $)
  i2 $p |- ( _i ^ 2 ) = -u 1 $=
    ( ci c2 cexp co cmul c1 cneg ax-icn sqvali ixi eqtri ) ABCDAAEDFGAHIJK $.

  $( ` _i ` cubed.  (Contributed by NM, 31-Jan-2007.) $)
  i3 $p |- ( _i ^ 3 ) = -u _i $=
    ( ci c3 cexp co c2 c1 caddc cneg df-3 oveq2i cmul wcel cn0 wceq ax-icn 2nn0
    cc expp1 mp2an eqtri i2 oveq1i mulm1i ) ABCDAEFGDZCDZAHZBUDACIJUEAECDZAKDZU
    FAQLEMLUEUHNOPAERSUHFHZAKDUFUGUIAKUAUBAOUCTTT $.

  $( ` _i ` to the fourth power.  (Contributed by NM, 31-Jan-2007.) $)
  i4 $p |- ( _i ^ 4 ) = 1 $=
    ( ci c2 caddc co cexp cmul c4 c1 cc wcel cn0 wceq ax-icn expadd mp3an 2p2e4
    2nn0 oveq2i i2 ax-1cn cneg oveq12i mul2negi 1t1e1 3eqtri 3eqtr3i ) ABBCDZED
    ZABEDZUIFDZAGEDHAIJBKJZUKUHUJLMQQABBNOUGGAEPRUJHUAZULFDHHFDHUIULUIULFSSUBHH
    TTUCUDUEUF $.

  $( A positive integer is less than or equal to its square.  (Contributed by
     NM, 15-Sep-1999.)  (Revised by Mario Carneiro, 12-Sep-2015.) $)
  nnlesq $p |- ( N e. NN -> N <_ ( N ^ 2 ) ) $=
    ( cn wcel cmul co c2 cexp cle c1 nncn mulid1d wbr nnge1 cr cc0 wb 1red nnre
    clt nngt0 lemul2 syl112anc mpbid eqbrtrrd cc wceq sqval syl breqtrrd ) ABCZ
    AAADEZAFGEZHUJAIDEZAUKHUJAAJZKUJIAHLZUMUKHLZAMUJINCANCZUQOASLUOUPPUJQARZURA
    TIAAUAUBUCUDUJAUECULUKUFUNAUGUHUI $.

  $( Taking ` _i ` to the ` K ` -th power is the same as using the ` K mod 4 `
     -th power instead, by ~ i4 .  (Contributed by Mario Carneiro,
     7-Jul-2014.) $)
  iexpcyc $p |- ( K e. ZZ -> ( _i ^ ( K mod 4 ) ) = ( _i ^ K ) ) $=
    ( cz wcel ci c4 co cexp cdiv cr wceq sylancl oveq2d 4z sylancr cc wa ax-icn
    ine0 c1 eqtrd cmo cfl cfv cmul cmin crp zre 4re 4pos elrpii modval cn flcld
    4nn nndivre zmulcl cc0 wne expsub mpanl12 expmulz i4 oveq1i 1exp syl syl5eq
    mpdan expclz mp3an12 div1d ) ABCZDAEUAFZGFDAEAEHFZUBUCZUDFZUEFZGFZDAGFZVKVL
    VPDGVKAICZEUFCVLVPJAUGZEUHUIUJAEUKKLVKVQVRDVOGFZHFZVRVKVOBCZVQWBJZVKEBCZVNB
    CZWCMVKVMVKVSEULCVMICVTUNAEUOKUMZEVNUPNDOCZDUQURZVKWCPWDQRDAVOUSUTVGVKWBVRS
    HFVRVKWASVRHVKWADEGFZVNGFZSVKWEWFWAWKJZMWGWHWIWEWFPWLQRDEVNVAUTNVKWKSVNGFZS
    WJSVNGVBVCVKWFWMSJWGVNVDVEVFTLVKVRWHWIVKVROCQRDAVHVIVJTTT $.

  $( A counterexample showing that exponentiation is not associative.
     (Contributed by Stefan Allan and G&eacute;rard Lang, 21-Sep-2010.) $)
  expnass $p |- ( ( 3 ^ 3 ) ^ 3 ) < ( 3 ^ ( 3 ^ 3 ) ) $=
    ( c3 cmul co cexp clt cc wcel 3cn 3nn0 mp3an wbr 3re nn0zi w3a 1lt3 ltexp2a
    cz c2 mpanr12 eqbrtrri wceq expmul cr nn0mulcli nn0expcli c1 sqvali 2z 2lt3
    cn0 3z ) AAABCZDCZAADCZADCZAUNDCZEAFGAUJGZUQUMUOUAHIIAAAUBJAUCGZULQGZUNQGZU
    MUPEKZLULAAIIUDMUNAAIIUEMURUSUTNUFAEKZULUNEKVAOARDCZULUNEAHUGURRQGZAQGZVCUN
    EKZLUHUKURVDVENVBRAEKVFOUIARAPSJTAULUNPSJT $.

  $( Cancel one factor of a square in a ` <_ ` comparison.  Unlike ~ lemul1 ,
     the common factor ` A ` may be zero.  (Contributed by NM, 17-Jan-2008.) $)
  sqlecan $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
      ( ( A ^ 2 ) <_ ( B x. A ) <-> A <_ B ) ) $=
    ( cr wcel cc0 cle wbr wa c2 cexp co cmul wb clt wceq wo wi 0re leloe recn
    mpan w3a sqval syl breq1d 3ad2ant1 lemul1 bitr4d 3exp exp4a pm2.43a adantrd
    cc com23 sq0 0le0 eqbrtri mul01d syl5breqr adantl oveq1 oveq2 breq12d mpbid
    adantr adantrr breq1 biimpa adantrl 2thd ex a1i jaod sylbid imp31 ) ACDZEAF
    GZBCDZEBFGZHZAIJKZBALKZFGZABFGZMZVPVQEANGZEAOZPZVTWEQZECDVPVQWHMREASUAVPWFW
    IWGVPVTWFWEVPVRWFWEQZVSVRVPWJVPVRVPWFWEVPVRVPWFHZWEVPVRWKUBWCAALKZWBFGZWDVP
    VRWCWMMWKVPWAWLWBFVPAUMDWAWLOATAUCUDUEUFABAUGUHUIUJUKULUNWGWIQVPWGVTWEWGVTH
    WCWDWGVRWCVSWGVRHEIJKZBELKZFGZWCVRWPWGVRWNEWOFWNEEFUOUPUQVRBBTURUSUTWGWPWCM
    VRWGWNWAWOWBFEAIJVAEABLVBVCVEVDVFWGVSWDVRWGVSWDEABFVGVHVIVJVKVLVMVNVO $.

  $( Factor the difference of two squares.  (Contributed by NM,
     21-Feb-2008.) $)
  subsq $p |- ( ( A e. CC /\ B e. CC ) ->
          ( ( A ^ 2 ) - ( B ^ 2 ) ) = ( ( A + B ) x. ( A - B ) ) ) $=
    ( cc wcel wa caddc co cmin cmul cexp simpl simpr sqval adantr eqtr4d adantl
    c2 wceq oveq12d sqcl subcl adddird subdi oveq1d subdid mulcom mulcl npncand
    3anidm12 3eqtrrd ) ACDZBCDZEZABFGABHGZIGAUNIGZBUNIGZFGAQJGZABIGZHGZURBQJGZH
    GZFGUQUTHGUMABUNUKULKZUKULLZABUAUBUMUOUSUPVAFUMUOAAIGZURHGZUSUKULUOVERAABUC
    UIUMUQVDURHUKUQVDRULAMNUDOUMUPBAIGZBBIGZHGVAUMBABVCVBVCUEUMURVFUTVGHABUFULU
    TVGRUKBMPSOSUMUQURUTUKUQCDULATNABUGULUTCDUKBTPUHUJ $.

  $( Express the difference of the squares of two numbers as a polynomial in
     the difference of the numbers.  (Contributed by NM, 21-Feb-2008.) $)
  subsq2 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A ^ 2 ) - ( B ^ 2 ) ) =
    ( ( ( A - B ) ^ 2 ) + ( ( 2 x. B ) x. ( A - B ) ) ) ) $=
    ( cc wcel wa caddc co cmin cmul c2 cexp wceq 2cn mulcl mpan adantl subadd23
    mpd3an3 oveq1d eqtrd 2times pncan anidms oveq2d subcl adddird subsq 3eqtr4d
    eqtr3d sqval syl ) ACDZBCDZEZABFGZABHGZIGZUPUPIGZJBIGZUPIGZFGZAJKGBJKGHGUPJ
    KGZUTFGUNUPUSFGZUPIGUQVAUNVCUOUPIUNVCAUSBHGZFGZUOULUMUSCDZVCVELUMVFULJCDUMV
    FMJBNOPZABUSQRUNVDBAFUMVDBLULUMVDBBFGZBHGZBUMUSVHBHBUASUMVIBLBBUBUCTPUDTSUN
    UPUSUPABUEZVGVJUFUIABUGUNVBURUTFUNUPCDVBURLVJUPUJUKSUH $.

  ${
    binom2.1 $e |- A e. CC $.
    binom2.2 $e |- B e. CC $.
    $( The square of a binomial.  (Contributed by NM, 11-Aug-1999.) $)
    binom2i $p |- ( ( A + B ) ^ 2 ) = ( ( ( A ^ 2 ) + ( 2 x.
                ( A x. B ) ) ) + ( B ^ 2 ) ) $=
      ( caddc co cmul c2 cexp addcli adddii adddiri mulcomi oveq2i eqtri mulcli
      oveq12i addassi oveq1i sqvali 3eqtr2i 2timesi 3eqtr4i ) ABEFZUDGFZAAGFZAB
      GFZUGEFZEFZBBGFZEFZUDHIFAHIFZHUGGFZEFZBHIFZEFUEUDAGFZUDBGFZEFZUKUDABABCDJ
      ZCDKURUFUGEFZUGUJEFZEFUTUGEFZUJEFUKUPUTUQVAEUPUFBAGFZEFUTABACDCLVCUGUFEBA
      DCMNOABBCDDLQUTUGUJUFUGAACCPZABCDPZJVEBBDDPRVBUIUJEUFUGUGVDVEVERSUAOUDUST
      UNUIUOUJEULUFUMUHEACTUGVEUBQBDTQUC $.

    $( Factor the difference of two squares.  (Contributed by NM,
       7-Feb-2005.) $)
    subsqi $p |- ( ( A ^ 2 ) - ( B ^ 2 ) ) = ( ( A + B ) x. ( A - B ) ) $=
      ( cc wcel c2 cexp co cmin caddc cmul wceq subsq mp2an ) AEFBEFAGHIBGHIJIA
      BKIABJILIMCDABNO $.

    $( The squares of two complex numbers are equal iff one number equals the
       other or its negative.  Lemma 15-4.7 of [Gleason] p. 311 and its
       converse.  (Contributed by NM, 15-Jan-2006.) $)
    sqeqori $p |- ( ( A ^ 2 ) = ( B ^ 2 ) <-> ( A = B \/ A = -u B ) ) $=
      ( c2 cexp co wceq caddc cc0 cmin wo cneg cmul subsqi eqeq1i sqcli subeq0i
      addcli subcli mul0ori 3bitr3i orcom subnegi negcli bitr3i orbi12i 3bitri
      ) AEFGZBEFGZHZABIGZJHZABKGZJHZLZUOUMLABHZABMZHZLUIUJKGZJHULUNNGZJHUKUPUTV
      AJABCDOPUIUJACQBDQRULUNABCDSABCDTUAUBUMUOUCUOUQUMUSABCDRUMAURKGZJHUSVBULJ
      ABCDUDPAURCBDUERUFUGUH $.

    $( The two solutions to the difference of squares set equal to zero.
       (Contributed by NM, 25-Apr-2006.) $)
    subsq0i $p |- ( ( ( A ^ 2 ) - ( B ^ 2 ) ) = 0
                  <-> ( A = B \/ A = -u B ) ) $=
      ( c2 cexp co cmin cc0 wceq cneg wo sqcli subeq0i sqeqori bitri ) AEFGZBEF
      GZHGIJQRJABJABKJLQRACMBDMNABCDOP $.
  $}

  $( The squares of two complex numbers are equal iff one number equals the
     other or its negative.  Lemma 15-4.7 of [Gleason] p. 311 and its converse.
     (Contributed by Paul Chapman, 15-Mar-2008.) $)
  sqeqor $p |- ( ( A e. CC /\ B e. CC ) ->
                  ( ( A ^ 2 ) = ( B ^ 2 ) <-> ( A = B \/ A = -u B ) ) ) $=
    ( cc wcel c2 cexp co wceq cneg wo wb cc0 oveq1 eqeq1 orbi12d bibi12d eqeq2d
    cif 0cn elimel eqeq1d eqeq2 negeq sqeqori dedth2h ) ACDZBCDZAEFGZBEFGZHZABH
    ZABIZHZJZKUFALRZEFGZUIHZUOBHZUOULHZJZKUPUGBLRZEFGZHZUOVAHZUOVAIZHZJZKABLLAU
    OHZUJUQUNUTVHUHUPUIAUOEFMUAVHUKURUMUSAUOBNAUOULNOPBVAHZUQVCUTVGVIUIVBUPBVAE
    FMQVIURVDUSVFBVAUOUBVIULVEUOBVAUCQOPUOVAALCSTBLCSTUDUE $.

  $( The square of a binomial.  (Contributed by FL, 10-Dec-2006.) $)
  binom2 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A + B ) ^ 2 ) =
     ( ( ( A ^ 2 ) + ( 2 x. ( A x. B ) ) ) + ( B ^ 2 ) ) ) $=
    ( cc wcel caddc co c2 cexp cmul cc0 cif oveq1 oveq1d oveq2d oveq12d eqeq12d
    wceq oveq2 0cn elimel binom2i dedth2h ) ACDZBCDZABEFZGHFZAGHFZGABIFZIFZEFZB
    GHFZEFZQUCAJKZBEFZGHFZUMGHFZGUMBIFZIFZEFZUKEFZQUMUDBJKZEFZGHFZUPGUMVAIFZIFZ
    EFZVAGHFZEFZQABJJAUMQZUFUOULUTVIUEUNGHAUMBELMVIUJUSUKEVIUGUPUIUREAUMGHLVIUH
    UQGIAUMBILNOMPBVAQZUOVCUTVHVJUNVBGHBVAUMERMVJUSVFUKVGEVJURVEUPEVJUQVDGIBVAU
    MIRNNBVAGHLOPUMVAAJCSTBJCSTUAUB $.

  $( Special case of ~ binom2 where ` B = 1 ` .  (Contributed by Scott Fenton,
     11-May-2014.) $)
  binom21 $p |- ( A e. CC -> ( ( A + 1 ) ^ 2 ) = ( ( ( A ^ 2
      ) + ( 2 x. A ) ) + 1 ) ) $=
    ( cc wcel c1 caddc co c2 cexp cmul wceq ax-1cn binom2 mulid1 oveq2d sq1 a1i
    mpan2 oveq12d eqtrd ) ABCZADEFGHFZAGHFZGADIFZIFZEFZDGHFZEFZUBGAIFZEFZDEFTDB
    CUAUGJKADLQTUEUIUFDETUDUHUBETUCAGIAMNNUFDJTOPRS $.

  $( Expand the square of a subtraction.  (Contributed by Scott Fenton,
     10-Jun-2013.) $)
  binom2sub $p |- ( ( A e. CC /\ B e. CC ) ->
    ( ( A - B ) ^ 2 ) =
    ( ( ( A ^ 2 ) - ( 2 x. ( A x. B ) ) ) + ( B ^ 2 ) ) ) $=
    ( cc wcel wa c2 cexp co cneg cmul caddc cmin wceq eqtr3d mulneg2 oveq2d 2cn
    negcl mulcl sylancr binom2 sylan2 negsub oveq1d eqtr2d adantr negsubd sqneg
    sqcl adantl oveq12d ) ACDZBCDZEZAFGHZFABIZJHZJHZKHZUPFGHZKHZABLHZFGHZUOFABJ
    HZJHZLHZBFGHZKHUNAUPKHZFGHZVAVCUMULUPCDVIVAMBRAUPUAUBUNVHVBFGABUCUDNUNUSVFU
    TVGKUNUOVEIZKHUSVFUNVJURUOKUNURFVDIZJHZVJUNUQVKFJABOPUNFCDZVDCDZVLVJMQABSZF
    VDOTUEPUNUOVEULUOCDUMAUIUFUNVMVNVECDQVOFVDSTUGNUMUTVGMULBUHUJUKN $.

  $( Special case of ~ binom2sub where ` B = 1 ` .  (Contributed by AV,
     2-Aug-2021.) $)
  binom2sub1 $p |- ( A e. CC -> ( ( A - 1 ) ^ 2 )
                                = ( ( ( A ^ 2 ) - ( 2 x. A ) ) + 1 ) ) $=
    ( cc wcel c1 cmin co cexp cmul caddc wceq binom2sub mpdan mulid1 oveq2d sq1
    c2 1cnd a1i oveq12d eqtrd ) ABCZADEFPGFZAPGFZPADHFZHFZEFZDPGFZIFZUCPAHFZEFZ
    DIFUADBCUBUHJUAQADKLUAUFUJUGDIUAUEUIUCEUAUDAPHAMNNUGDJUAORST $.

  ${
    binom2subi.1 $e |- A e. CC $.
    binom2subi.2 $e |- B e. CC $.
    $( Expand the square of a subtraction.  (Contributed by Scott Fenton,
       13-Jun-2013.) $)
    binom2subi $p |- ( ( A - B ) ^ 2 ) =
    ( ( ( A ^ 2 ) - ( 2 x. ( A x. B ) ) ) + ( B ^ 2 ) ) $=
      ( cc wcel cmin co c2 cexp cmul caddc wceq binom2sub mp2an ) AEFBEFABGHIJH
      AIJHIABKHKHGHBIJHLHMCDABNO $.
  $}

  $( The square of a binomial with factor.  (Contributed by AV,
     19-Jul-2021.) $)
  mulbinom2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC )
                   -> ( ( ( C x. A ) + B ) ^ 2 )
                      = ( ( ( ( C x. A ) ^ 2 ) + ( ( 2 x. C ) x. ( A x. B ) ) )
                          + ( B ^ 2 ) ) ) $=
    ( cc wcel w3a cmul co caddc c2 cexp wceq mulcl ancoms 3adant2 simp2 syl2anc
    binom2 mulass oveq2d 3coml 2cnd simp3 3adant3 mulassd eqtr4d oveq1d eqtrd )
    ADEZBDEZCDEZFZCAGHZBIHJKHZUMJKHZJUMBGHZGHZIHZBJKHZIHZUOJCGHABGHZGHZIHZUSIHU
    LUMDEZUJUNUTLUIUKVDUJUKUIVDCAMNOUIUJUKPUMBRQULURVCUSIULUQVBUOIULUQJCVAGHZGH
    VBULUPVEJGUKUIUJUPVELCABSUATULJCVAULUBUIUJUKUCUIUJVADEUKABMUDUEUFTUGUH $.

  $( The cube of a binomial.  (Contributed by Mario Carneiro, 24-Apr-2015.) $)
  binom3 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A + B ) ^ 3 ) =
     ( ( ( A ^ 3 ) + ( 3 x. ( ( A ^ 2 ) x. B ) ) ) +
       ( ( 3 x. ( A x. ( B ^ 2 ) ) ) + ( B ^ 3 ) ) ) ) $=
    ( cc wcel caddc co c3 cexp cmul df-3 wceq sylancl syl oveq1d adddird oveq2d
    c2 c1 eqtr4d oveq12d wa oveq2i cn0 addcl 2nn0 expp1 syl5eq sqcl simpl simpr
    adddid binom2 mulcl sylancr addcld sqval mul32d 2cnd mulassd mulcomd 3eqtrd
    2cn eqtrd mulcld 3nn0 expcl addassd eqtr3d add4d 1cnd mulid2d 1p2e3 syl5eqr
    oveq1i eqtr2d ) ACDZBCDZUAZABEFZGHFZVSQHFZVSIFZAGHFZQAQHFZBIFZIFZEFZWEEFZAB
    QHFZIFZQWJIFZBGHFZEFZEFZEFZWCGWEIFZEFZGWJIFZWLEFZEFVRVTVSQREFZHFZWBGWTVSHJU
    BVRVSCDZQUCDZXAWBKABUDZUEVSQUFLUGVRWBWAAIFZWABIFZEFWGWJEFZWEWMEFZEFWOVRWAAB
    VRXBWACDXDVSUHMVPVQUIZVPVQUJZUKVRXEXGXFXHEVRXEWDQABIFZIFZEFZWIEFZAIFXMAIFZW
    IAIFZEFXGVRWAXNAIABULZNVRXMWIAVRWDXLVRVPWDCDXIAUHMZVRQCDZXKCDXLCDVBABUMZQXK
    UMUNZUOZVRVQWICDXJBUHMZXIOVRXOWGXPWJEVRXOWDAIFZXLAIFZEFWGVRWDXLAXRYAXIOVRWC
    YDWFYEEVRWCAWTHFZYDGWTAHJUBVRVPXCYFYDKXIUEAQUFLUGVRWFQXKAIFZIFYEVRWEYGQIVRW
    EAAIFZBIFYGVRWDYHBIVRVPWDYHKXIAUPMNVRAABXIXIXJUQVCPVRQXKAVRURZXTXIUSSTSVRWI
    AYCXIUTTVAVRXFXNBIFXMBIFZWIBIFZEFZXHVRWAXNBIXQNVRXMWIBYBYCXJOVRWEWKEFZWLEFY
    LXHVRYMYJWLYKEVRYMWEXLBIFZEFYJVRWKYNWEEVRWKQXKBIFZIFYNVRWJYOQIVRWJABBIFZIFY
    OVRWIYPAIVRVQWIYPKXJBUPMPVRABBXIXJXJUSSPVRQXKBYIXTXJUSSPVRWDXLBXRYAXJOSVRWL
    BWTHFZYKGWTBHJUBVRVQXCYQYKKXJUEBQUFLUGTVRWEWKWLVRWDBXRXJVDZVRXSWJCDWKCDVBVR
    AWIXIYCVDZQWJUMUNZVRVQGUCDZWLCDXJVEBGVFLZVGVHVATVRWGWJWEWMVRWCWFVRVPUUAWCCD
    XIVEAGVFLZVRXSWECDWFCDVBYRQWEUMUNZUOYSYRVRWKWLYTUUBUOVIVAVRWHWQWNWSEVRWHWCW
    FWEEFZEFWQVRWCWFWEUUCUUDYRVGVRWPUUEWCEVRWPWFRWEIFZEFZUUEVRWPWTWEIFUUGGWTWEI
    JVNVRQRWEYIVRVJZYROUGVRUUFWEWFEVRWEYRVKPVCPSVRWSWJWKEFZWLEFWNVRWRUUIWLEVRWR
    RWJIFZWKEFZUUIVRWRRQEFZWJIFUUKUULGWJIVLVNVRRQWJUUHYIYSOVMVRUUJWJWKEVRWJYSVK
    NVCNVRWJWKWLYSYTUUBVGVOTVA $.

  $( If a complex number equals its square, it must be 0 or 1.  (Contributed by
     NM, 6-Jun-2006.) $)
  sq01 $p |- ( A e. CC -> ( ( A ^ 2 ) = A <-> ( A = 0 \/ A = 1 ) ) ) $=
    ( cc wcel c2 cexp co wceq cc0 c1 wo wa wn df-ne cmul wb sqval oveq1 3eqtr4a
    wne id mulid1 eqcomd eqeq12d adantr ax-1cn mulcan mp3an2 anabss5 bitrd orrd
    biimpd impancom syl5bir ex sq0 sq1 jaoi impbid1 ) ABCZADEFZAGZAHGZAIGZJZUSV
    AVDUSVAKZVBVCVBLAHSZVEVCAHMUSVFVAVCUSVFKZVAVCVGVAAANFZAINFZGZVCUSVAVJOVFUSU
    TVHAVIAPUSVIAAUAUBUCUDUSVFVJVCOZUSIBCVGVKUEAIAUFUGUHUIUKULUMUJUNVBVAVCVBHDE
    FHUTAUOAHDEQVBTRVCIDEFIUTAUPAIDEQVCTRUQUR $.

  $( An integer is even iff its square is even.  (Contributed by Mario
     Carneiro, 12-Sep-2015.) $)
  zesq $p |- ( N e. ZZ ->
              ( ( N / 2 ) e. ZZ <-> ( ( N ^ 2 ) / 2 ) e. ZZ ) ) $=
    ( cz wcel c2 cdiv co cexp wa cmul wceq cc sqval syl oveq1d 2cnd a1i divassd
    2ne0 c1 caddc zcn cc0 wne eqtrd adantr zmulcl eqeltrd wn cmin sqcl peano2cn
    halfcld pncand binom21 2cn mulcl sylancr 1cnd add32d 3eqtr3d divdird oveq2d
    divcan3d peano2z sylan eqeltrrd simpl zsubcld ex con3d wb zsqcl 3imtr4d imp
    zeo2 impbida ) ABCZADEFZBCZADGFZDEFZBCZVQVSHWAAVRIFZBVQWAWCJVSVQWAAAIFZDEFW
    CVQVTWDDEVQAKCZVTWDJAUAZALMNVQAADWFWFVQODUBUCZVQRPQUDUEAVRUFUGVQWBVSVQVTSTF
    ZDEFZBCZUHZASTFZDEFZBCZUHWBVSVQWNWJVQWNWJVQWNHZWIATFZAUIFWIBWOWIAWOWHWOVTKC
    ZWHKCWOWEWQVQWEWNWFUEZAUJMZVTUKMZULWRUMWOWPAWOWLWMIFZWPBWOWLWLIFZDEFWHDAIFZ
    TFZDEFZXAWPWOXBXDDEWOWLDGFZVTXCTFSTFZXBXDWOWEXFXGJWRAUNMWOWLKCZXFXBJWOWEXHW
    RAUKMZWLLMWOVTXCSWSWODKCWEXCKCUOWRDAUPUQZWOURUSUTNWOWLWLDXIXIWOOZWGWORPZQWO
    XEWIXCDEFZTFWPWOWHXCDWTXJXKXLVAWOXMAWITWOADWRXKXLVCVBUDUTVQWLBCWNXABCAVDWLW
    MUFVEVFVQWNVGVHVFVIVJVQVTBCWBWKVKAVLVTVOMAVOVMVNVP $.

  $( A positive integer is even iff its square is even.  (Contributed by NM,
     20-Aug-2001.)  (Revised by Mario Carneiro, 12-Sep-2015.) $)
  nnesq $p |- ( N e. NN ->
               ( ( N / 2 ) e. NN <-> ( ( N ^ 2 ) / 2 ) e. NN ) ) $=
    ( cn wcel c2 cdiv co cz cc0 clt wbr cexp nnz zesq syl nnrp rphalfcld rpgt0d
    wa wb elnnz nnsqcl nnrpd 2thd anbi12d 3bitr4g ) ABCZADEFZGCZHUGIJZRADKFZDEF
    ZGCZHUKIJZRUGBCUKBCUFUHULUIUMUFAGCUHULSALAMNUFUIUMUFUGUFAAOPQUFUKUFUJUFUJAU
    AUBPQUCUDUGTUKTUE $.

  ${
    crrecz.1 $e |- A e. RR $.
    crrecz.2 $e |- B e. RR $.
    $( Reciprocal of a complex number in terms of real and imaginary
       components.  Remark in [Apostol] p. 361.  (Contributed by NM,
       29-Apr-2005.)  (Proof shortened by Jeff Hankins, 16-Dec-2013.) $)
    crreczi $p |- ( ( A =/= 0 \/ B =/= 0 ) -> ( 1 / ( A + ( _i x. B ) ) ) =
                    ( ( A - ( _i x. B ) ) / ( ( A ^ 2 ) + ( B ^ 2 ) ) ) ) $=
      ( cc0 wne c1 ci cmul co caddc cdiv c2 cexp wceq cneg sqcli ax-1cn wcel cc
      wo cmin recni ax-icn mulcli negsubi sqmuli oveq1i mulneg1i 3eqtri negnegi
      i2 negeqi mulid2i oveq2i 3eqtr3ri wa wn neorian cr wb sumsqeq0 necon3bbii
      subsqi mp2an bitri addcli subcli divasszi sylbi divid 3eqtr3a divclzi a1i
      mpan crne0 biimpi divmul mp3an1 syl12anc mpbird ) AEFBEFUAZGAHBIJZKJZLJAW
      CUBJZAMNJZBMNJZKJZLJZOZWDWIIJZGOZWBWDWEIJZWHLJZWHWHLJZWKGWMWHWHLWFWCMNJZP
      ZKJWFWPUBJWHWMWFWPAACUCZQZWCHBUDBDUCZUEZQUFWQWGWFKWQGWGIJZPZPXBWGWPXCWPHM
      NJZWGIJGPZWGIJXCHBUDWTUGXDXEWGIULUHGWGRBWTQZUIUJUMXBGWGRXFUEUKWGXFUNUJUOA
      WCWRXAVDUPUHWBWHEFZWNWKOWBAEOBEOUQZURXGAEBEUSXHWHEAUTSZBUTSZXHWHEOVACDABV
      BVEVCVFZWDWEWHAWCWRXAVGZAWCWRXAVHZWFWGWSXFVGZVIVJWBXGWOGOZXKWHTSXGXOXNWHV
      KVOVJVLWBWITSZWDTSZWDEFZWJWLVAZWBXGXPXKWEWHXMXNVMVJXQWBXLVNWBXRXIXJWBXRVA
      CDABVPVEVQGTSXPXQXRUQXSRGWIWDVRVSVTWA $.
  $}

  ${
    $d j k A $.  $d j k N $.
    $( Bernoulli's inequality, due to Johan Bernoulli (1667-1748).
       (Contributed by NM, 21-Feb-2005.) $)
    bernneq $p |- ( ( A e. RR /\ N e. NN0 /\ -u 1 <_ A ) ->
                 ( 1 + ( A x. N ) ) <_ ( ( 1 + A ) ^ N ) ) $=
      ( cr wcel c1 cle wbr cmul co caddc cexp wi wa wceq oveq2 oveq2d cc ax-1cn
      cc0 adantr vj vk cn0 cneg cv breq12d imbi2d recn mul01 1p0e1 syl6eq addcl
      1le1 mpan exp0 syl syl5breqr eqbrtrd nn0re remulcl sylan2 readdcl sylancr
      1re simpl syl2anc remulcld reexpcl anidms msqge0 jca nn0ge0 mulge0 syl2an
      sylan nn0cn adantl mul32d breqtrd addge01d mulcld addassd muladd11 eqtr4d
      mpbid mulcl wb neg1rr leadd2 mp3an13 1pneg1e0 breq1i syl6bb biimpa simprr
      ad2ant2r letrd adddi mp3an3 mulid1 eqtrd addass expp1 3brtr4d exp43 com12
      lemul1ad mp3an1 impd a2d nn0ind expd 3imp ) ACDZBUCDZEUDZAFGZEABHIZJIZEAJ
      IZBKIZFGZXOXNXQYBLXOXNXQYBXNXQMZEAUAUEZHIZJIZXTYDKIZFGZLYCEASHIZJIZXTSKIZ
      FGZLYCEAUBUEZHIZJIZXTYMKIZFGZLYCEAYMEJIZHIZJIZXTYRKIZFGZLYCYBLUAUBBYDSNZY
      HYLYCUUCYFYJYGYKFUUCYEYIEJYDSAHOPYDSXTKOUFUGYDYMNZYHYQYCUUDYFYOYGYPFUUDYE
      YNEJYDYMAHOPYDYMXTKOUFUGYDYRNZYHUUBYCUUEYFYTYGUUAFUUEYEYSEJYDYRAHOPYDYRXT
      KOUFUGYDBNZYHYBYCUUFYFXSYGYAFUUFYEXREJYDBAHOPYDBXTKOUFUGXNYLXQXNAQDZYLAUH
      ZUUGYJEYKFUUGYJESJIEUUGYISEJAUIPUJUKUUGEEYKFUMUUGXTQDZYKENEQDZUUGUUIREAUL
      ZUNXTUOUPUQURUPTYMUCDZYCYQUUBUULXNXQYQUUBLZXNUULXQUUMLXNUULXQYQUUBXNUULMZ
      XQYQMZMZYOAJIZYPXTHIZYTUUAFUUPUUQYOXTHIZUURUUNUUQCDZUUOUUNYOCDZXNUUTUUNEC
      DZYNCDZUVAVDUULXNYMCDZUVCYMUSZAYMUTZVAEYNVBVCZXNUULVEYOAVBVFZTUUNUUSCDUUO
      UUNYOXTUVGXNXTCDZUULUVBXNUVIVDEAVBUNZTZVGTUUNUURCDUUOUUNYPXTXNUVIUULYPCDZ
      UVJXTYMVHVOZUVKVGTUUNUUQUUSFGUUOUUNUUQUUQYNAHIZJIZUUSFUUNSUVNFGUUQUVOFGUU
      NSAAHIZYMHIZUVNFXNUVPCDZSUVPFGZMUVDSYMFGZMSUVQFGUULXNUVRUVSXNUVRAAUTVIAVJ
      VKUULUVDUVTUVEYMVLVKUVPYMVMVNUUNAAYMXNUUGUULUUHTZUWAUULYMQDZXNYMVPZVQVRVS
      UUNUUQUVNUVHUULXNUVDUVNCDUVEXNUVDMYNAUVFXNUVDVEVGVAVTWEXNUUGUWBUVOUUSNUUL
      UUHUWCUUGUWBMZUVOYOAUVNJIJIZUUSUWDYOAUVNUWDUUJYNQDZYOQDRAYMWFZEYNULVCUUGU
      WBVEZUWDYNAUWGUWHWAWBUWDUWFUUGUUSUWENUWGUWHYNAWCVFWDVNVSTUUPYOYPXTUUNUVAU
      UOUVGTUUNUVLUUOUVMTUUNUVIUUOUVKTXNXQSXTFGZUULYQXNXQUWIXNXQEXPJIZXTFGZUWIX
      PCDXNUVBXQUWKWGWHVDXPAEWIWJUWJSXTFWKWLWMWNWPUUNXQYQWOXGWQUUNYTUUQNZUUOXNU
      UGUWBUWLUULUUHUWCUWDYTEYNAJIZJIZUUQUWDYSUWMEJUWDYSYNAEHIZJIZUWMUUGUWBUUJY
      SUWPNRAYMEWRWSUWDUWOAYNJUUGUWOANUWBAWTTPXAPUWDUWFUUGUUQUWNNZUWGUWHUUJUWFU
      UGUWQREYNAXBXHVFWDVNTUUNUUAUURNZUUOXNUUIUULUWRXNUUJUUGUUIRUUHUUKVCXTYMXCV
      OTXDXEXFXIXJXKXLXFXM $.
  $}

  $( Variation of Bernoulli's inequality ~ bernneq .  (Contributed by NM,
     18-Oct-2007.) $)
  bernneq2 $p |- ( ( A e. RR /\ N e. NN0 /\ 0 <_ A ) ->
               ( ( ( A - 1 ) x. N ) + 1 ) <_ ( A ^ N ) ) $=
    ( cr wcel cn0 cc0 cle wbr w3a c1 cmin co caddc cexp 3ad2ant1 wa wceq ax-1cn
    cc sylancr cmul cneg peano2rem simp2 df-neg 0re 1re lesub1 mp3an13 syl5eqbr
    biimpa 3adant2 bernneq syl3anc recnd nn0cn mulcl syl2an addcom 3adant3 recn
    wb pncan3 oveq1d 3brtr3d ) ACDZBEDZFAGHZIZJAJKLZBUALZMLZJVJMLZBNLZVKJMLZABN
    LZGVIVJCDZVGJUBZVJGHZVLVNGHVFVGVQVHAUCZOVFVGVHUDVFVHVSVGVFVHPVRFJKLZVJGJUEV
    FVHWAVJGHZFCDVFJCDVHWBVBUFUGFAJUHUIUKUJULVJBUMUNVFVGVLVOQZVHVFVGPJSDZVKSDZW
    CRVFVJSDBSDWEVGVFVJVTUOBUPVJBUQURJVKUSTUTVFVGVNVPQVHVFVMABNVFWDASDVMAQRAVAJ
    AVCTVDOVE $.

  $( A corollary of ~ bernneq .  (Contributed by Mario Carneiro,
     11-Mar-2014.) $)
  bernneq3 $p |- ( ( P e. ( ZZ>= ` 2 ) /\ N e. NN0 ) ->
                   N < ( P ^ N ) ) $=
    ( c2 cuz cfv wcel cn0 wa c1 caddc co adantl peano2re syl adantr cc0 cle wbr
    cr nn0ge0 cexp nn0re eluzelre reexpcl sylan ltp1d cn uz2m1nn nnred remulcld
    cmin cmul 1red nnge1d lemulge12d leadd1dd simpr eluzge2nn0 bernneq2 syl3anc
    letrd ltletrd ) ACDEFZBGFZHZBBIJKZABUAKZVDBSFZVCBUBLZVEVHVFSFVIBMNZVCASFZVD
    VGSFCAUCZABUDUEZVEBVIUFVEVFAIUKKZBULKZIJKZVGVJVEVOSFVPSFVEVNBVEVNVCVNUGFVDA
    UHOZUIZVIUJZVOMNVMVEBVOIVIVSVEUMVEBVNVIVRVDPBQRVCBTLVEVNVQUNUOUPVEVKVDPAQRZ
    VPVGQRVCVKVDVLOVCVDUQVCVTVDVCAGFVTAURATNOABUSUTVAVB $.

  ${
    $d j k A $.  $d j k B $.
    $( TODO - note that min w/ ad2antlr, ad2antrl make compressed
       proof longer $)
    $( Exponentiation with a mantissa greater than 1 has no upper bound.
       (Contributed by NM, 20-Oct-2007.) $)
    expnbnd $p |- ( ( A e. RR /\ B e. RR /\ 1 < B ) ->
          E. k e. NN A < ( B ^ k ) ) $=
      ( cr wcel c1 clt wbr cexp co cn wa 1re syl adantr cle cc0 adantl syl2anc
      wb w3a cv wrex 1nn wi lttr mp3an2 exp4b com34 3imp1 wceq cc recn 3ad2ant2
      exp1 breqtrrd oveq2 breq2d rspcev sylancr cmin cdiv cfl cfv cn0 peano2rem
      caddc wne posdif mpan biimpa gt0ne0d redivcld adantll subge0 biimparc jca
      mpan2 divge0 syl2an flge0nn0 nn0p1nn cmul simplr nn0red remulcld peano2re
      peano2nn0 simprl reexpcl flltp1 ltdivmul syl112anc mpbid ltsubadd mp3an12
      0lt1 0re mpani ltle syld imp bernneq2 syl3anc exp43 com4l simp1 ltlecasei
      ltletrd 1red ) ADEZBDEZFBGHZUAZABCUBZIJZGHZCKUCZAFXNAFGHZLZFKEABFIJZGHZXR
      UDXTABYAGXKXLXMXSABGHZXKXLXSXMYCXKXLXSXMYCXKFDEZXLXSXMLYCUEMAFBUFUGUHUIUJ
      XNYABUKZXSXLXKYEXMXLBULEYEBUMBUONUNOUPXQYBCFKXOFUKXPYAAGXOFBIUQURUSUTXKXL
      XMFAPHZXRYFXKXLXMXRYFXKXLXMXRYFXKLZXLXMLZLZAFVAJZBFVAJZVBJZVCVDZFVGJZKEZA
      BYNIJZGHZXRYIYMVEEZYOYIYLDEZQYLPHZYRXKYHYSYFXKYHLYJYKXKYJDEZYHAVFZOYHYKDE
      ZXKXLUUCXMBVFOZRYHYKQVHXKYHYKXLXMQYKGHZYDXLXMUUETMFBVIVJVKZVLRVMVNZYGUUAQ
      YJPHZLUUCUUELYTYHYGUUAUUHXKUUAYFUUBRZXKUUHYFXKYDUUHYFTMAFVOVRVPVQYHUUCUUE
      UUDUUFVQYJYKVSVTYLWASZYMWBNYIAYKYNWCJZFVGJZYPYFXKYHWDZYIUUKDEZUULDEYIYKYN
      YHUUCYGUUDRZYIYNYIYRYNVEEZUUJYMWHNZWEZWFZUUKWGNYIXLUUPYPDEYGXLXMWIZUUQBYN
      WJSYIYJUUKGHZAUULGHZYIYLYNGHZUVAYIYSUVCUUGYLWKNYIUUAYNDEUUCUUEUVCUVATYGUU
      AYHUUIOUURUUOYHUUEYGUUFRYJYNYKWLWMWNYIXKUUNUVAUVBTZUUMUUSXKYDUUNUVDMAFUUK
      WOUGSWNYIXLUUPQBPHZUULYPPHUUTUUQYHUVEYGXLXMUVEXLXMQBGHZUVEXLQFGHZXMUVFWQQ
      DEZYDXLUVGXMLUVFUEWRMQFBUFWPWSUVHXLUVFUVEUEWRQBWTVJXAXBRBYNXCXDXIXQYQCYNK
      XOYNUKXPYPAGXOYNBIUQURUSSXEXFUJXKXLXMXGXNXJXH $.

    $( The reciprocal of exponentiation with a mantissa greater than 1 has no
       lower bound.  (Contributed by NM, 18-Jul-2008.) $)
    expnlbnd $p |- ( ( A e. RR+ /\ B e. RR /\ 1 < B ) ->
          E. k e. NN ( 1 / ( B ^ k ) ) < A ) $=
      ( crp wcel cr c1 clt wbr w3a cdiv co cv cexp cn wrex rpre wa cc0 adantr
      rpne0 rereccld expnbnd syl3an1 rpregt0 3ad2ant1 cn0 nnnn0 reexpcl adantlr
      wb sylan2 cz simpll nnz adantl 0lt1 0re 1re lttr mp3an12 mpani imp expgt0
      wi syl3anc jca 3adantl1 ltrec1 syl2anc rexbidva mpbid ) ADEZBFEZGBHIZJZGA
      KLZBCMZNLZHIZCOPZGVSKLAHIZCOPVMVQFEVNVOWAVMAAQAUAUBVQBCUCUDVPVTWBCOVPVROE
      ZRAFESAHIRZVSFEZSVSHIZRZVTWBUKVPWDWCVMVNWDVOAUEUFTVNVOWCWGVMVNVORZWCRZWEW
      FVNWCWEVOWCVNVRUGEWEVRUHBVRUIULUJWIVNVRUMEZSBHIZWFVNVOWCUNWCWJWHVRUOUPWHW
      KWCVNVOWKVNSGHIZVOWKUQSFEGFEVNWLVORWKVEURUSSGBUTVAVBVCTBVRVDVFVGVHAVSVIVJ
      VKVL $.

    $( The reciprocal of exponentiation with a mantissa greater than 1 has no
       lower bound.  (Contributed by NM, 18-Jul-2008.)  (Proof shortened by
       Mario Carneiro, 5-Jun-2014.) $)
    expnlbnd2 $p |- ( ( A e. RR+ /\ B e. RR /\ 1 < B ) ->
          E. j e. NN A. k e. ( ZZ>= ` j ) ( 1 / ( B ^ k ) ) < A ) $=
      ( crp wcel cr c1 clt wbr cv cexp co cdiv cn wrex wa wi cle mpd w3a simpl2
      cuz cfv wral expnlbnd simpl3 1re ltle sylancr simprr leexp2a syl3anc 0red
      cz cc0 1red a1i lttrd elrpd nnz ad2antrl rpexpcl syl2anc eluzelz ad2antll
      0lt1 lerecd mpbid rprecred simpl1 rpred lelttr anassrs ralrimdva reximdva
      mpand ) AEFZBGFZHBIJZUAZHBCKZLMZNMZAIJZCOPHBDKZLMZNMZAIJZDWBUCUDZUEZCOPAB
      CUFWAWEWKCOWAWBOFZQWEWIDWJWAWLWFWJFZWEWIRWAWLWMQZQZWHWDSJZWEWIWOWCWGSJZWP
      WOVSHBSJZWMWQVRVSVTWNUBZWOVTWRVRVSVTWNUGZWOHGFVSVTWRRUHWSHBUIUJTWAWLWMUKB
      WBWFULUMWOWCWGWOBEFZWBUOFZWCEFWOBWSWOUPHBWOUNWOUQWSUPHIJWOVGURWTUSUTZWLXB
      WAWMWBVAVBBWBVCVDZWOXAWFUOFZWGEFXCWMXEWAWLWBWFVEVFBWFVCVDZVHVIWOWHGFWDGFA
      GFWPWEQWIRWOWGXFVJWOWCXDVJWOAVRVSVTWNVKVLWHWDAVMUMVQVNVOVPT $.
  $}

  ${
    $d j k n A $.  $d j k n B $.
    $( Exponentiation with a mantissa greater than 1 is not bounded by any
       linear function.  (Contributed by Mario Carneiro, 31-Mar-2015.) $)
    expmulnbnd $p |- ( ( A e. RR /\ B e. RR /\ 1 < B ) ->
          E. j e. NN0 A. k e. ( ZZ>= ` j ) ( A x. k ) < ( B ^ k ) ) $=
      ( cr wcel c1 clt wbr c2 cmul co cuz cn0 cn 2re sylancr cc0 cle recnd cmin
      vn w3a cdiv cv cexp cfv wral wrex simp1 remulcl crp simp3 1re simp2 difrp
      wb mpbid rerpdivcld expnbnd syl3anc 2nn0 nnnn0 ad2antrl nn0mulcl ad2antrr
      wa cif 2nn simprl nnmulcl eluznn sylan nnred remulcld 0re sylancl simplrl
      ifcl resubcld nnnn0d reexpcl syl2anc nn0ge0d caddc eluzle adantl leadd2dd
      max1 2timesd breqtrrd leaddsub 2cnd subdid max2 lemul12bd mulcomd 3brtr4d
      mul32d rpred simplrr ltdivmuld posdif cz nnzd a1i 0lt1 lttrd mulgt0d wceq
      expgt0 oveq2 breq1d 2t0e0 syl5eqr ifboth fveq2d eleqtrd eluzsub syl112anc
      simpr nngt0d ltmul1 breqtrd peano2re syl ltp1d ltled bernneq2 ltletrd wne
      cc gt0ne0d eluzelz expsub syl22anc ltmuldiv mpbird lelttrd ralrimiva
      fveq2 raleqdv rspcev rexlimddv ) AEFZBEFZGBHIZUCZJAKLZBGUALZUDLZBUBUEZUFL
      ZHIZADUEZKLZBUUOUFLZHIZDCUEZMUGZUHZCNUIZUBOUUHUUKEFUUFUUGUUNUBOUIUUHUUIUU
      JUUHJEFZUUEUUIEFZPUUEUUFUUGUJZJAUKZQUUHUUGUUJULFZUUEUUFUUGUMZUUHGEFZUUFUU
      GUVGUQUNUUEUUFUUGUOZGBUPQURZUSUVJUVHUUKBUBUTVAUUHUULOFZUUNVGZVGZJUULKLZNF
      ZUURDUVOMUGZUHZUVBUVNJNFUULNFZUVPVBUVLUVSUUHUUNUULVCVDJUULVEQUVNUURDUVQUV
      NUUOUVQFZVGZUUPJRASIZARVHZKLZUUOUULUALZKLZUUQUWAAUUOUUHUUEUVMUVTUVEVFZUWA
      UUOUVNUVOOFZUVTUUOOFUVNJOFUVLUWHVIUUHUVLUUNVJJUULVKQUUOUVOVLVMZVNZVOUWAUW
      DUWEUWAUVCUWCEFZUWDEFZPUWAUUEREFZUWKUWGVPUWBAREVSVQZJUWCUKQZUWAUUOUULUWJU
      WAUULUUHUVLUUNUVTVRZVNZVTZVOZUWAUUFUUONFUUQEFZUUHUUFUVMUVTUVJVFZUWAUUOUWI
      WAZBUUOWBWCZUWAUUOAKLJUWEKLZUWCKLUUPUWFSUWAUUOUXDAUWCUWJUWAUVCUWEEFZUXDEF
      PUWRJUWEUKQUWGUWNUWAUUOUXBWDUWAUWMUUERUWCSIVPUWGRAWIQUWAUUOJUUOKLZUVOUALZ
      UXDSUWAUUOUVOWELZUXFSIZUUOUXGSIZUWAUXHUUOUUOWELUXFSUWAUVOUUOUUOUWAUVCUULE
      FUVOEFZPUWQJUULUKQZUWJUWJUVTUVOUUOSIUVNUVOUUOWFWGWHUWAUUOUWAUUOUWJTZWJWKU
      WAUUOEFZUXKUXFEFZUXIUXJUQUWJUXLUWAUVCUXNUXOPUWJJUUOUKQUUOUVOUXFWLVAURUWAJ
      UUOUULUWAWMZUXMUWAUULUWQTZWNWKUWAUWMUUEAUWCSIVPUWGRAWOQWPUWAAUUOUWAAUWGTU
      XMWQUWAJUWCUWEUXPUWAUWCUWNTUWAUWEUWRTZWSWRUWAUWFUUJUWEKLZUUMKLZUUQUWSUWAU
      XSUUMUWAUUJUWEUWAUUJUUHUVGUVMUVTUVKVFZWTZUWRVOZUWAUUFUVSUUMEFZUXAUWAUULUW
      PWABUULWBWCZVOUXCUWAUWFUUJUUMKLZUWEKLZUXTHUWAUWDUYFHIZUWFUYGHIZUWAUUIUYFH
      IZRUYFHIZUYHUWAUUNUYJUUHUVLUUNUVTXAUWAUUIUUMUUJUWAUVCUUEUVDPUWGUVFQUYEUYA
      XBURUWAUUJUUMUYBUYEUWAUUGRUUJHIZUUHUUGUVMUVTUVHVFZUWAUVIUUFUUGUYLUQUNUXAG
      BXCQURUWAUUFUULXDFZRBHIRUUMHIZUXAUWAUULUWPXEZUWARGBUWMUWAVPXFZUVIUWAUNXFU
      XARGHIUWAXGXFUYMXHZBUULXKVAZXIUWBUYJUYKUYHARAUWCXJUUIUWDUYFHAUWCJKXLXMRUW
      CXJZRUWDUYFHUYTRJRKLUWDXNRUWCJKXLXOXMXPWCUWAUWLUYFEFUXERUWEHIUYHUYIUQUWOU
      WAUUJUUMUYBUYEVOUWRUWAUWEUWAUVLUWEUULMUGFZUWEOFUWPUWAUYNUYNUUOUULUULWELZM
      UGZFVUAUYPUYPUWAUUOUVQVUCUVNUVTYAUWAUVOVUBMUWAUULUXQWJXQXRUULUULUUOXSVAUW
      EUULVLWCZYBUWDUYFUWEYCXTURUWAUUJUUMUWEUWAUUJUYBTUWAUUMUYETUXRWSYDUWAUXTUU
      QHIZUXSUUQUUMUDLZHIZUWAUXSBUWEUFLZVUFHUWAUXSUXSGWELZVUHUYCUWAUXSEFZVUIEFU
      YCUXSYEYFUWAUUFUWENFZVUHEFUXAUWAUWEVUDWAZBUWEWBWCUWAUXSUYCYGUWAUUFVUKRBSI
      VUIVUHSIUXAVULUWARBUYQUXAUYRYHBUWEYIVAYJUWABYLFBRYKUUOXDFZUYNVUHVUFXJUWAB
      UXATUWABUYRYMUVTVUMUVNUVOUUOYNWGUYPBUUOUULYOYPYDUWAVUJUWTUYDUYOVUEVUGUQUY
      CUXCUYEUYSUXSUUQUUMYQXTYRXHYSYTUVAUVRCUVONUUSUVOXJUURDUUTUVQUUSUVOMUUAUUB
      UUCWCUUD $.
  $}

  $( Two ways to express the ` K ` th digit in the decimal (when base
     ` B = 1 0 ` ) expansion of a number ` A ` . ` K = 1 ` corresponds to the
     first digit after the decimal point.  (Contributed by NM, 25-Dec-2008.) $)
  digit2 $p |- ( ( A e. RR /\ B e. NN /\ K e. NN )
    -> ( ( |_ ` ( ( B ^ K ) x. A ) ) mod B ) = ( ( |_ ` ( ( B ^ K ) x.
      A ) ) - ( B x. ( |_ ` ( ( B ^ ( K - 1 ) ) x. A ) ) ) ) ) $=
    ( cr wcel cn cexp co cmul cfl cfv cdiv cmin wceq syl2an 3ad2ant2 syl2anc cc
    3adant1 eqtrd w3a cmo c1 crp nnre nnnn0 reexpcl remulcl stoic3 3comr reflcl
    cn0 syl nnrp modval simp2 fldiv cc0 wa nncn expcl recn 3ad2ant1 nnne0 div23
    wne jca syl3anc cz nnz expm1 3expa oveq1d eqtr4d fveq2d oveq2d ) ADEZBFEZCF
    EZUAZBCGHZAIHZJKZBUBHZWCBWCBLHJKZIHZMHZWCBBCUCMHGHZAIHZJKZIHZMHVTWCDEZBUDEZ
    WDWGNVTWBDEZWLVRVSVQWNVRVSWADEZVQWNVRBDECULEZWOVSBUECUFZBCUGOWAAUHUIUJZWBUK
    UMVRVQWMVSBUNPWCBUOQVTWFWKWCMVTWEWJBIVTWEWBBLHZJKZWJVTWNVRWEWTNWRVQVRVSUPWB
    BUQQVTWSWIJVTWSWABLHZAIHZWIVTWAREZAREZBREZBURVFZUSZWSXBNVRVSXCVQVRXEWPXCVSB
    UTZWQBCVAOSVQVRXDVSAVBVCVRVQXGVSVRXEXFXHBVDVGZPWAABVEVHVTWHXAAIVRVSWHXANZVQ
    VRXGCVIEZXJVSXICVJXEXFXKXJBCVKVLOSVMVNVOTVPVPT $.

  $( Two ways to express the ` K ` th digit in the decimal expansion of a
     number ` A ` (when base ` B = 1 0 ` ). ` K = 1 ` corresponds to the first
     digit after the decimal point.  (Contributed by NM, 3-Jan-2009.) $)
  digit1 $p |- ( ( A e. RR /\ B e. NN /\ K e. NN ) -> ( ( |_ ` ( ( B ^ K ) x.
        A ) ) mod B ) = ( ( ( |_ ` ( ( B ^ K ) x. A ) ) mod ( B ^ K ) )
        - ( ( B x. ( |_ ` ( ( B ^ ( K - 1 ) ) x. A ) ) ) mod ( B ^ K ) ) ) ) $=
    ( cn wcel cr cexp co cmul cfl cfv cmo c1 cmin wceq wa cle wbr syl2an adantr
    digit2 3coml 3expa oveq1d crp cc0 clt cn0 nnre nnnn0 reexpcl remulcl reflcl
    sylan syl nnrp ad2antrr modcld nnexpcl sylan2 nnrpd modge0 syl2anc modlt cc
    nncn exp1 cuz nnge1 nnuz syl6eleq leexp2a syl3anc eqbrtrrd ltletrd syl22anc
    simpr modid simpll nnm1nn0 modmulnn expm1t expcl simpl mulcomd eqtrd oveq2d
    recn adantl mulassd fveq2d oveq12d 3brtr4d wb modsubdir mpbid 3eqtr3d 3impa
    3comr ) BDEZCDEZAFEZBCGHZAIHZJKZBLHZXEXCLHZBBCMNHZGHZAIHZJKZIHZXCLHZNHZOZWT
    XAXBXOWTXAPZXBPZXFXCLHZXEXLNHZXCLHZXFXNXQXFXSXCLWTXAXBXFXSOZXBWTXAYAABCUAUB
    UCUDXQXFFEXCUEEZUFXFQRZXFXCUGRXRXFOXQXEBXQXDFEZXEFEZXPXCFEZXBYDWTBFEZCUHEZY
    FXABUIZCUJZBCUKSZXCAULUNXDUMUOZWTBUEEZXAXBBUPUQZURZXPYBXBXPXCXAWTYHXCDEYJBC
    USUTVATZXQYEYMYCYLYNXEBVBVCXQXFBXCYOWTYGXAXBYIUQZXPYFXBYKTXQYEYMXFBUGRYLYNX
    EBVDVCXPBXCQRXBXPBMGHZBXCQWTYRBOZXAWTBVEEZYSBVFZBVGUOTXPYGMBQRZCMVHKZEYRXCQ
    RWTYGXAYITWTUUBXABVITXPCDUUCWTXAVQVJVKBMCVLVMVNTVOXFXCVRVPXQXMXGQRZXTXNOZXQ
    XLBXIIHZLHZBXJIHZJKZUUFLHZXMXGQXQWTXJFEZXIDEZUUGUUJQRWTXAXBVSXPXIFEZXBUUKWT
    YGXHUHEZUUMXAYICVTZBXHUKSXIAULUNZXPUULXBXAWTUUNUULUUOBXHUSUTTXJXIBWAVMXQXCU
    UFXLLXPXCUUFOZXBWTYTXAUUQUUAYTXAPZXCXIBIHUUFBCWBUURXIBXAYTUUNXIVEEZUUOBXHWC
    ZUTYTXAWDWEWFUNTZWGXQXEUUIXCUUFLXQXDUUHJXQXDUUFAIHUUHXQXCUUFAIUVAUDXQBXIAWT
    YTXAXBUUAUQXPUUSXBWTYTUUNUUSXAUUAUUOUUTSTXBAVEEXPAWHWIWJWFWKUVAWLWMXQYEXLFE
    ZYBUUDUUEWNYLXQYGXKFEZUVBYQXQUUKUVCUUPXJUMUOBXKULVCYPXEXLXCWOVMWPWQWRWS $.

$(
  @( Two ways to express the ` K ` th digit in the decimal expansion of a
     number ` A ` (when base ` B = 10 ` ). ` K = 1 ` corresponds to the first
     digit after the decimal point. @)
  digit3 @p |- ( ( A e. RR /\ B e. NN /\ K e. NN ) -> ( ( B ^ K ) x. ( ( A mod
 ( 1 / ( B ^ K ) ) ) - ( A mod ( 1 / ( B ^ ( K - 1 ) ) ) ) ) ) = ( ( |_ ` ( ( B
   ^ K ) x. A ) ) - ( B x. ( |_ ` ( ( B ^ ( K - 1 ) ) x. A ) ) ) ) ) @=
    ( cr wcel cn w3a cexp co cmul cfl cfv c1 cmin cdiv cmo oveq12d cc wceq
    subdi wa crp cn0 rpexpcl nnrp nnnn0 syl2anOLD rpre syl recnd 3adant1 mulcl
    nnm1nn0 rpreccl rpcn remulcl reexpcl nnre sylan2OLD 3impb reflcl
    sylancOLD cc0
    wne ax-1ne0 redivcl mp3an3 1re sylanclOLD syl3anc eqcomd eqtrd eqid a1i
    nnncan1 recn 3ad2ant1 modval ax-1cn pm3.2i divdiv2 mp3an2 expcl sylanOLD
    expne0i 3expa rpcnne0 jca fveq2d oveq2d adantlr div1 ) ADEZBFEZCFEZGZBCHIZ
    AJIKLBBCMNIZHIZAJIKLJINIZWQAMWQOIZPIZAMWSOIZPIZNIZJIZWPWTWQXCAWSJIZKLZJIZXA
    AWQJIZMOIZKLZJIZNIZJIZXFWPWTWQXIJIWQXMJINIZXO????????QWPXOXPWQREZXIREZXMREZ
    XOXPSWPWQXIXMT??????WNWOUAZWQUBEZWQDEZBUBEZCUCEZYAWNWOBCUDBUEZCUFZUGZWQUHUI
    ZUJUKXCREZXHREXRWPXCXHULWNWOYIWMXTXCUBEZYIXTWSUBEZYJYCWRUCEZYKWNWOBWRUDYECU
    MZUGWSUNUIZXCUOUIUKWPXHWPXGDEZXHDEWMWNWOYOWMWSDEZYOXTAWSUPBDEYLYPWNWOBWRUQB
    URYMUGZUSUTXGVAUIUJVBZWPXMXADEZXLDEZXMDEWPXAXLUPWNWOYSWMXTXAUBEZYSXTYAUUAYG
    WQUNUIZXAUHUIUKWPXKDEZYTXJDEZMDEZUUCWPUUDUUEMVCVDZUUCVEXJMVFVGWMWNWOUUDWMYB
    UUDXTAWQUPYHUSUTVHVIXKVAUIVBUJZVJVKVLWPWQWQXNXEJWQWQSWPWQVMVNWPXNAXMNIZAXIN
    IZNIZXEWPUUJXNAREZXSXRUUJXNSWPAXMXIVOWMWNUUKWOAVPZVQUUGYRVJVKWPXEUUJWMWNWOX
    EUUJSWMXTUAZXBUUHXDUUINUUMXBAXAAXAOIZKLZJIZNIZUUHWMUUAXBUUQSXTAXAVRUUBUSUUM
    UUPXMANUUMUUOXLXAJUUMUUNXKKUUKXQWQVCVDZUAZUUNXKSZWMXTUUKMREZUUFUAZUUSUUTUVA
    UUFVSVEVTZAMWQWAWBUULYCYDUUSWNWOYCYDUAXQUURBREZYDXQYCBCWCBUOWDUVDBVCVDZUAZY
    DUURYCUVDUVEYDUURBCWEWFBWGZWDWHYEYFUGUGWIWJWJVLUUMXDAXCAXCOIZKLZJIZNIZUUIWM
    YJXDUVKSXTAXCVRYNUSUUMUVJXIANUUMUVIXHXCJUUMUVHXGKUUMUVHXGMOIZXGUUKWSREZWSVC
    VDZUAZUVHUVLSZWMXTUUKUVBUVOUVPUVCAMWSWAWBUULUVFYLUVOWNWOUVFYLUAUVMUVNUVDYLU
    VMUVEBWRWCWKUVDUVEYLUVNBWRWEWFWHWNYCUVFYEUVGUIYMUGUGUUMXGREZUVLXGSUUKUVMUVQ
    WMXTAWSULUULXTWSYQUJUGXGWLUIVLWIWJWJVLQUTVKVLQVLVK @.
    @( [ ?] @) @( [27-Dec-2008] @)
$)

  ${
    $d k x A $.  $d k x B $.  $d k x D $.  $d x C $.
    $( Exponentiation property of the modulo operation, see theorem 5.2(c) in
       [ApostolNT] p. 107.  (Contributed by Mario Carneiro, 28-Feb-2014.) $)
    modexp $p |- ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. NN0 /\ D e. RR+ )
         /\ ( A mod D ) = ( B mod D ) )
         -> ( ( A ^ C ) mod D ) = ( ( B ^ C ) mod D ) ) $=
      ( vx cz wcel cmo co wceq w3a cexp wi cc0 c1 oveq1d eqeq12d imbi2d syl2anc
      oveq2 vk wa cn0 crp simp2l id 3adant2l caddc zcn exp0 syl eqcomd sylan9eq
      cv cc 3ad2ant1 simp21l simp1 zexpcl simp21r simp22 simp3 simp23 modmul12d
      cmul zcnd expp1 3eqtr4d 3exp a2d nn0ind sylc ) AFGZBFGZUBZCUCGZDUDGZUBADH
      IBDHIJZKVPVOVQVRKZACLIZDHIZBCLIZDHIZJZVOVPVQVRUEVOVQVRVSVPVSUFUGVSAEUNZLI
      ZDHIZBWELIZDHIZJZMVSANLIZDHIZBNLIZDHIZJZMVSAUAUNZLIZDHIZBWPLIZDHIZJZMVSAW
      POUHIZLIZDHIZBXBLIZDHIZJZMVSWDMEUACWENJZWJWOVSXHWGWLWIWNXHWFWKDHWENALTPXH
      WHWMDHWENBLTPQRWEWPJZWJXAVSXIWGWRWIWTXIWFWQDHWEWPALTPXIWHWSDHWEWPBLTPQRWE
      XBJZWJXGVSXJWGXDWIXFXJWFXCDHWEXBALTPXJWHXEDHWEXBBLTPQRWECJZWJWDVSXKWGWAWI
      WCXKWFVTDHWECALTPXKWHWBDHWECBLTPQRVOVQWOVRVOWKWMDHVMVNWKOWMVMAUOGZWKOJAUI
      AUJUKVNWMOVNBUOGZWMOJBUIBUJUKULUMPUPWPUCGZVSXAXGXNVSXAXGXNVSXAKZWQAVEIZDH
      IWSBVEIZDHIXDXFXOWQWSABDXOVMXNWQFGVMVNVQVRXNXAUQZXNVSXAURZAWPUSSXOVNXNWSF
      GVMVNVQVRXNXAUTZXSBWPUSSXRXTXNVOVQVRXAVAXNVSXAVBXNVOVQVRXAVCVDXOXCXPDHXOX
      LXNXCXPJXOAXRVFXSAWPVGSPXOXEXQDHXOXMXNXEXQJXOBXTVFXSBWPVGSPVHVIVJVKVL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x X $.  $d x ph $.
    discr.1 $e |- ( ph -> A e. RR ) $.
    discr.2 $e |- ( ph -> B e. RR ) $.
    discr.3 $e |- ( ph -> C e. RR ) $.
    discr.4 $e |- ( ( ph /\ x e. RR ) ->
                    0 <_ ( ( ( A x. ( x ^ 2 ) ) + ( B x. x ) ) + C ) ) $.
    ${
      discr1.5 $e |- X =
        if ( 1 <_ ( ( ( B + if ( 0 <_ C , C , 0 ) ) + 1 ) / -u A ) ,
             ( ( ( B + if ( 0 <_ C , C , 0 ) ) + 1 ) / -u A ) , 1 ) $.
      $( A nonnegative quadratic form has nonnegative leading coefficient.
         (Contributed by Mario Carneiro, 4-Jun-2014.) $)
      discr1 $p |- ( ph -> 0 <_ A ) $=
        ( cc0 cle wbr co cmul caddc cr wcel c1 clt c2 cexp wa cv wral cneg cdiv
        cif adantr 0re ifcl sylancl readdcld peano2re renegcld lt0neg1d gt0ne0d
        syl biimpa redivcld syl5eqel ralrimiva wceq oveq1 oveq2d oveq12d oveq1d
        1re oveq2 breq2d rspcv sylc resqcl remulcld max2 sylancr max1 syl6breqr
        wn a1i lemulge11d letrd leadd2dd recnd adddird addassd mulassd cc sqval
        eqtr4d eqtrd 3eqtr3d breqtrrd ltp1d wb ledivmul syl112anc mpbid ltletrd
        cmin df-neg syl6eq breqtrd ltaddsub2d mpbird 0lt1 ltmul1 mul02d lelttrd
        mulneg1d ltnle pm2.65da wo lelttric ord mt3d ) ALCMNZCLUANZAXSLCFUBUCOZ
        POZDFPOZQOZEQOZMNZAXSUDZFRSZLCBUEZUBUCOZPOZDYHPOZQOZEQOZMNZBRUFZYEYFFTD
        LEMNZELUIZQOZTQOZCUGZUHOZMNZUUATUIZRKYFUUARSZTRSZUUCRSYFYSYTYFYRRSYSRSZ
        YFDYQADRSXSHUJZYFERSZLRSZYQRSAUUHXSIUJZUKYPELRULUMZUNZYRUOUSZYFCACRSZXS
        GUJZUPZYFYTAXSLYTUANZACGUQUTZURVAZVIUUBUUATRULUMVBZAYOXSAYNBRJVCUJYNYEB
        FRYHFVDZYMYDLMUVAYLYCEQUVAYJYAYKYBQUVAYIXTCPYHFUBUCVEVFYHFDPVJVGVHVKVLV
        MYFYDLUANZYEVTZYFYDCFPOZYRQOZFPOZLYFYCEYFYAYBYFCXTUUOYFYGXTRSUUTFVNUSVO
        YFDFUUGUUTVOUNZUUJUNZYFUVEFYFUVDYRYFCFUUOUUTVOZUULUNZUUTVOUUIYFUKWAZYFY
        DYCYQFPOZQOZUVFMYFEUVLYCUUJYFYQFUUKUUTVOZUVGYFEYQUVLUUJUUKUVNYFUUIUUHEY
        QMNUKUUJLEVPVQYFYQFUUKUUTYFUUIUUHLYQMNUKUUJLEVRVQYFTUUCFMYFUUEUUDTUUCMN
        VIUUSTUUAVRVQKVSZWBWCWDYFUVDDQOZYQQOZFPOUVPFPOZUVLQOUVFUVMYFUVPYQFYFUVP
        YFUVDDUVIUUGUNWEYFYQUUKWEZYFFUUTWEZWFYFUVQUVEFPYFUVDDYQYFUVDUVIWEZYFDUU
        GWEZUVSWGVHYFUVRYCUVLQYFUVRUVDFPOZYBQOYCYFUVDDFUWAUWBUVTWFYFUWCYAYBQYFU
        WCCFFPOZPOYAYFCFFYFCUUOWEZUVTUVTWHYFXTUWDCPYFFWISXTUWDVDUVTFWJUSVFWKVHW
        LVHWMWNYFUVFLFPOZLUAYFUVELUANZUVFUWFUANZYFUWGYRLUVDXAOZUANYFYRYTFPOZUWI
        UAYFYRYSUWJUULUUMYFYTFUUPUUTVOYFYRUULWOYFUUAFMNZYSUWJMNZYFUUAUUCFMYFUUE
        UUDUUAUUCMNVIUUSTUUAVPVQKVSYFUUFYGYTRSUUQUWKUWLWPUUMUUTUUPUURYSFYTWQWRW
        SWTYFUWJUVDUGUWIYFCFUWEUVTXKUVDXBXCXDYFUVDYRLUVIUULUVKXEXFYFUVERSUUIYGL
        FUANUWGUWHWPUVJUVKUUTYFLTFUVKUUEYFVIWAUUTLTUANYFXGWAUVOWTUVELFXHWRWSYFF
        UVTXIXDXJYFYDRSUUIUVBUVCWPUVHUKYDLXLUMWSXMAXRXSAUUIUUNXRXSXNUKGLCXOVQXP
        XQ $.
    $}

    $( If a quadratic polynomial with real coefficients is nonnegative for all
       values, then its discriminant is nonpositive.  (Contributed by NM,
       10-Aug-1999.)  (Revised by Mario Carneiro, 4-Jun-2014.) $)
    discr $p |- ( ph -> ( ( B ^ 2 ) - ( 4 x. ( A x. C ) ) ) <_ 0 ) $=
      ( cc0 wbr c2 co c4 cmul cle cdiv cr wcel caddc cexp cmin wa adantr resqcl
      clt wceq syl recnd 4re remulcld remulcl sylancr 4pos elrpii simpr rpmulcl
      crp elrpd rpcnd rpne0d divsubdird cc 4cn a1i 4ne0 divcan5d divcan3d eqtrd
      wne oveq2d rerpdivcld 2timesd 2t2e4 2cnd mulassd syl5eqr divassd 2rp 2ne0
      oveq1i 3eqtr3d eqtr3d cneg cv wral renegcld ralrimiva oveq1 oveq2 oveq12d
      oveq1d breq2d rspcv sylc sqneg sqdiv syl3anc mul32d syl6eq 3eqtr2d 3eqtrd
      divdiv1d eqtr4d divcan2d mulneg2d negeqd negsubd addsubd breqtrd readdcld
      sqval subge0d mpbid eqbrtrd leadd2d mpbird resubcld 0red ledivmuld mul01d
      suble0d wn c1 ltp1d peano2re ltnegd df-neg syl6breq ltaddsubd expr simprr
      redivcld simprl sqcl mul02d addid2d wb 0re cif lenlt pm2.65d sylib mul01i
      nne sq0id 0m0e0 0le0 eqbrtri syl6eqbr wo eqid discr1 leloe mpjaodan ) AJC
      UFKZDLUAMZNCEOMZOMZUBMZJPKJCUGZAUUPUCZUUTNCOMZJOMZJPUVBUUTUVCQMZJPKUUTUVD
      PKUVBUVEUUQUVCQMZEUBMZJPUVBUVEUVFUUSUVCQMZUBMUVGUVBUUQUUSUVCUVBUUQUVBDRSZ
      UUQRSAUVIUUPGUDZDUEUHZUIZUVBUUSUVBNRSUURRSUUSRSUJUVBCEACRSZUUPFUDZAERSZUU
      PHUDZUKZNUURULUMZUIUVBUVCUVBNURSCURSZUVCURSNUJUNUOUVBCUVNAUUPUPUSZNCUQUMZ
      UTZUVBUVCUWAVAZVBUVBUVHEUVFUBUVBUVHUURCQMEUVBUURCNUVBUURUVQUIUVBCUVNUIZNV
      CSUVBVDVEUVBCUVTVAZNJVJUVBVFVEVGUVBECUVBEUVPUIZUWDUWEVHVIVKVIUVBUVGJPKUVF
      EPKZUVBUWGUVFUVFTMZUVFETMZPKUVBUWHUUQLCOMZQMZUWIPUVBLUVFOMZUWHUWKUVBUVFUV
      BUVFUVBUUQUVCUVKUWAVLZUIZVMUVBLUUQOMZUVCQMUWOLUWJOMZQMUWLUWKUVBUVCUWPUWOQ
      UVBUVCLLOMZCOMZUWPUWQNCOVNWAZUVBLLCUVBVOZUWTUWDVPVQVKUVBLUUQUVCUWTUVLUWBU
      WCVRUVBUUQUWJLUVLUVBUWJUVBLURSUVSUWJURSVSUVTLCUQUMZUTZUWTUVBUWJUXAVAZLJVJ
      UVBVTVEVGWBWCUVBJUWIUWKUBMZPKUWKUWIPKUVBJCDUWJQMZWDZLUAMZOMZDUXFOMZTMZETM
      ZUXDPUVBUXFRSJCBWEZLUAMZOMZDUXLOMZTMZETMZPKZBRWFZJUXKPKZUVBUXEUVBDUWJUVJU
      XAVLZWGAUXSUUPAUXRBRIWHZUDUXRUXTBUXFRUXLUXFUGZUXQUXKJPUYCUXPUXJETUYCUXNUX
      HUXOUXITUYCUXMUXGCOUXLUXFLUAWIVKUXLUXFDOWJWKWLWMWNWOUVBUXKUVFUWKUBMZETMUX
      DUVBUXJUYDETUVBUXJUVFUWKWDZTMUYDUVBUXHUVFUXIUYETUVBUXHCUVFCQMZOMUVFUVBUXG
      UYFCOUVBUXGUUQUVCCOMZQMZUYFUVBUXGUXELUAMZUUQUWJLUAMZQMZUYHUVBUXEVCSUXGUYI
      UGUVBUXEUYAUIZUXEWPUHUVBDVCSZUWJVCSZUWJJVJUYIUYKUGUVBDUVJUIZUXBUXCDUWJWQW
      RUVBUYJUYGUUQQUVBUYJUWJUWJOMZUWJLOMZCOMUYGUVBUYNUYJUYPUGUXBUWJXLUHUVBUWJL
      CUXBUWTUWDVPUVBUYQUVCCOUVBUYQUWRUVCUVBLCLUWTUWDUWTWSUWSWTWLXAVKXBUVBUUQUV
      CCUVLUWBUWDUWCUWEXCXDVKUVBUVFCUWNUWDUWEXEVIUVBUXIDUXEOMZWDUYEUVBDUXEUYOUY
      LXFUVBUWKUYRUVBUWKDDOMZUWJQMUYRUVBUUQUYSUWJQUVBUYMUUQUYSUGUYODXLUHWLUVBDD
      UWJUYOUYOUXBUXCVRVIXGXDWKUVBUVFUWKUWNUVBUWKUVBUUQUWJUVKUXAVLZUIZXHVIWLUVB
      UVFEUWKUWNUWFVUAXIXDXJUVBUWIUWKUVBUVFEUWMUVPXKUYTXMXNXOUVBUVFEUVFUWMUVPUW
      MXPXQUVBUVFEUWMUVPYBXQXOUVBUUTJUVCUVBUUQUUSUVKUVRXRUVBXSUWAXTXNUVBUVCUWBY
      AXJAUVAUCZUUTJJUBMZJPVUBUUQJUUSJUBVUBDVUBDJVJZYCDJUGVUBVUDEYDTMZWDZETMZJU
      FKZAUVAVUDVUHAUVAVUDUCZUCZVUHVUFJEUBMZUFKVUJVUFEWDZVUKUFVUJEVUEUFKVUFVULU
      FKVUJEAUVOVUIHUDZYEVUJEVUEVUMVUJUVOVUERSVUMEYFUHZYGXNEYHYIVUJVUFEJVUJVUEV
      UNWGZVUMVUJXSYJXQYKAUVAVUDVUHYCZVUJJVUGPKZVUPVUJJCVUFDQMZLUAMZOMZDVUROMZT
      MZETMZVUGPVUJVURRSUXSJVVCPKZVUJVUFDVUOAUVIVUIGUDZAUVAVUDYLZYMZAUXSVUIUYBU
      DUXRVVDBVURRUXLVURUGZUXQVVCJPVVHUXPVVBETVVHUXNVUTUXOVVATVVHUXMVUSCOUXLVUR
      LUAWIVKUXLVURDOWJWKWLWMWNWOVUJVVBVUFETVUJVVBJVUFTMVUFVUJVUTJVVAVUFTVUJJVU
      SOMVUTJVUJJCVUSOAUVAVUDYNWLVUJVUSVUJVURVCSVUSVCSVUJVURVVGUIVURYOUHYPWCVUJ
      VUFDVUJVUFVUOUIZVUJDVVEUIVVFXEWKVUJVUFVVIYQVIWLXJVUJJRSZVUGRSVUQVUPYRYSVU
      JVUFEVUOVUMXKJVUGUUAUMXNYKUUBDJUUEUUCUUFVUBUUSNJOMJVUBUURJNOVUBJEOMUURJVU
      BJCEOAUVAUPWLVUBEAEVCSUVAAEHUIUDYPWCVKNVDUUDWTWKVUCJJPUUGUUHUUIUUJAJCPKZU
      UPUVAUUKZABCDEYDDJEPKEJYTTMYDTMCWDQMZPKVVMYDYTZFGHIVVNUULUUMAVVJUVMVVKVVL
      YRYSFJCUUNUMXNUUO $.
  $}

  ${
    expcld.1 $e |- ( ph -> A e. CC ) $.
    $( Value of a complex number raised to the 0th power.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    exp0d $p |- ( ph -> ( A ^ 0 ) = 1 ) $=
      ( cc wcel cc0 cexp co c1 wceq exp0 syl ) ABDEBFGHIJCBKL $.

    $( Value of a complex number raised to the first power.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    exp1d $p |- ( ph -> ( A ^ 1 ) = A ) $=
      ( cc wcel c1 cexp co wceq exp1 syl ) ABDEBFGHBICBJK $.

    ${
      expeq0d.2 $e |- ( ph -> N e. NN ) $.
      expeq0d.3 $e |- ( ph -> ( A ^ N ) = 0 ) $.
      $( Positive integer exponentiation is 0 iff its mantissa is 0.
         (Contributed by Mario Carneiro, 28-May-2016.) $)
      expeq0d $p |- ( ph -> A = 0 ) $=
        ( cexp co cc0 wceq cc wcel cn wb expeq0 syl2anc mpbid ) ABCGHIJZBIJZFAB
        KLCMLRSNDEBCOPQ $.
    $}

    $( Value of square.  Inference version.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    sqvald $p |- ( ph -> ( A ^ 2 ) = ( A x. A ) ) $=
      ( cc wcel c2 cexp co cmul wceq sqval syl ) ABDEBFGHBBIHJCBKL $.

    $( Closure of square.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    sqcld $p |- ( ph -> ( A ^ 2 ) e. CC ) $=
      ( cc wcel c2 cexp co sqcl syl ) ABDEBFGHDECBIJ $.

    ${
      sqeq0d.1 $e |- ( ph -> ( A ^ 2 ) = 0 ) $.
      $( A number is zero iff its square is zero.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      sqeq0d $p |- ( ph -> A = 0 ) $=
        ( c2 cn wcel 2nn a1i expeq0d ) ABECEFGAHIDJ $.
    $}

    ${
      expcld.2 $e |- ( ph -> N e. NN0 ) $.
      $( Closure law for nonnegative integer exponentiation.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      expcld $p |- ( ph -> ( A ^ N ) e. CC ) $=
        ( cc wcel cn0 cexp co expcl syl2anc ) ABFGCHGBCIJFGDEBCKL $.

      $( Value of a complex number raised to a nonnegative integer power plus
         one.  Part of Definition 10-4.1 of [Gleason] p. 134.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      expp1d $p |- ( ph -> ( A ^ ( N + 1 ) ) = ( ( A ^ N ) x. A ) ) $=
        ( cc wcel cn0 c1 caddc co cexp cmul wceq expp1 syl2anc ) ABFGCHGBCIJKLK
        BCLKBMKNDEBCOP $.

      expaddd.2 $e |- ( ph -> M e. NN0 ) $.
      $( Sum of exponents law for nonnegative integer exponentiation.
         Proposition 10-4.2(a) of [Gleason] p. 135.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      expaddd $p |- ( ph -> ( A ^ ( M + N ) ) = ( ( A ^ M ) x. ( A ^ N ) ) ) $=
        ( cc wcel cn0 caddc co cexp cmul wceq expadd syl3anc ) ABHICJIDJIBCDKLM
        LBCMLBDMLNLOEGFBCDPQ $.

      $( Product of exponents law for positive integer exponentiation.
         Proposition 10-4.2(b) of [Gleason] p. 135, restricted to nonnegative
         integer exponents.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      expmuld $p |- ( ph -> ( A ^ ( M x. N ) ) = ( ( A ^ M ) ^ N ) ) $=
        ( cc wcel cn0 cmul co cexp wceq expmul syl3anc ) ABHICJIDJIBCDKLMLBCMLD
        MLNEGFBCDOP $.
    $}

    ${
      sqrecd.1 $e |- ( ph -> A =/= 0 ) $.
      $( Square of reciprocal.  (Contributed by Mario Carneiro,
         28-May-2016.) $)
      sqrecd $p |- ( ph -> ( ( 1 / A ) ^ 2 ) = ( 1 / ( A ^ 2 ) ) ) $=
        ( cc wcel cc0 wne c2 cz c1 cdiv co cexp wceq 2z a1i exprec syl3anc ) AB
        EFBGHIJFZKBLMINMKBINMLMOCDTAPQBIRS $.

      expclzd.3 $e |- ( ph -> N e. ZZ ) $.
      $( Closure law for integer exponentiation.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      expclzd $p |- ( ph -> ( A ^ N ) e. CC ) $=
        ( cc wcel cc0 wne cz cexp co expclz syl3anc ) ABGHBIJCKHBCLMGHDEFBCNO
        $.

      $( Nonnegative integer exponentiation is nonzero if its mantissa is
         nonzero.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      expne0d $p |- ( ph -> ( A ^ N ) =/= 0 ) $=
        ( cc wcel cc0 wne cz cexp co expne0i syl3anc ) ABGHBIJCKHBCLMIJDEFBCNO
        $.

      $( Value of a complex number raised to a negative power.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      expnegd $p |- ( ph -> ( A ^ -u N ) = ( 1 / ( A ^ N ) ) ) $=
        ( cc wcel cc0 wne cz cneg cexp co c1 cdiv wceq expnegz syl3anc ) ABGHBI
        JCKHBCLMNOBCMNPNQDEFBCRS $.

      $( Nonnegative integer exponentiation of a reciprocal.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      exprecd $p |- ( ph -> ( ( 1 / A ) ^ N ) = ( 1 / ( A ^ N ) ) ) $=
        ( cc wcel cc0 wne cz c1 cdiv co cexp wceq exprec syl3anc ) ABGHBIJCKHLB
        MNCONLBCONMNPDEFBCQR $.

      $( Value of a nonzero complex number raised to an integer power plus one.
         (Contributed by Mario Carneiro, 28-May-2016.) $)
      expp1zd $p |- ( ph -> ( A ^ ( N + 1 ) ) = ( ( A ^ N ) x. A ) ) $=
        ( cc wcel cc0 wne cz c1 caddc co cexp cmul wceq expp1z syl3anc ) ABGHBI
        JCKHBCLMNONBCONBPNQDEFBCRS $.

      $( Value of a complex number raised to an integer power minus one.
         (Contributed by Mario Carneiro, 28-May-2016.) $)
      expm1d $p |- ( ph -> ( A ^ ( N - 1 ) ) = ( ( A ^ N ) / A ) ) $=
        ( cc wcel cc0 wne cz c1 cmin co cexp cdiv wceq expm1 syl3anc ) ABGHBIJC
        KHBCLMNONBCONBPNQDEFBCRS $.

      expsubd.3 $e |- ( ph -> M e. ZZ ) $.
      $( Exponent subtraction law for nonnegative integer exponentiation.
         (Contributed by Mario Carneiro, 28-May-2016.) $)
      expsubd $p |- ( ph -> ( A ^ ( M - N ) ) = ( ( A ^ M ) / ( A ^ N ) ) ) $=
        ( cc wcel cc0 wne cz cmin co cexp cdiv wceq expsub syl22anc ) ABIJBKLCM
        JDMJBCDNOPOBCPOBDPOQOREFHGBCDST $.
    $}

    mulexpd.2 $e |- ( ph -> B e. CC ) $.
    $( Distribution of square over multiplication.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    sqmuld $p |- ( ph -> ( ( A x. B ) ^ 2 ) = ( ( A ^ 2 ) x. ( B ^ 2 ) ) ) $=
      ( cc wcel cmul co c2 cexp wceq sqmul syl2anc ) ABFGCFGBCHIJKIBJKICJKIHILD
      EBCMN $.

    ${
      sqdivd.3 $e |- ( ph -> B =/= 0 ) $.
      $( Distribution of square over division.  (Contributed by Mario Carneiro,
         28-May-2016.) $)
      sqdivd $p |- ( ph -> ( ( A / B ) ^ 2 ) = ( ( A ^ 2 ) / ( B ^ 2 ) ) ) $=
        ( cc wcel cc0 wne cdiv co c2 cexp wceq sqdiv syl3anc ) ABGHCGHCIJBCKLMN
        LBMNLCMNLKLODEFBCPQ $.

      expdivd.3 $e |- ( ph -> N e. NN0 ) $.
      $( Nonnegative integer exponentiation of a quotient.  (Contributed by
         Mario Carneiro, 28-May-2016.) $)
      expdivd $p |- ( ph -> ( ( A / B ) ^ N ) = ( ( A ^ N ) / ( B ^ N ) ) ) $=
        ( cc wcel cc0 wne cn0 cdiv co cexp wceq expdiv syl121anc ) ABIJCIJCKLDM
        JBCNODPOBDPOCDPONOQEFGHBCDRS $.
    $}

    mulexpd.3 $e |- ( ph -> N e. NN0 ) $.
    $( Positive integer exponentiation of a product.  Proposition 10-4.2(c) of
       [Gleason] p. 135, restricted to nonnegative integer exponents.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    mulexpd $p |- ( ph -> ( ( A x. B ) ^ N ) = ( ( A ^ N ) x. ( B ^ N ) ) ) $=
      ( cc wcel cn0 cmul co cexp wceq mulexp syl3anc ) ABHICHIDJIBCKLDMLBDMLCDM
      LKLNEFGBCDOP $.
  $}

  ${
    0exp.1 $e |- ( ph -> N e. NN ) $.
    $( Value of zero raised to a positive integer power.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    0expd $p |- ( ph -> ( 0 ^ N ) = 0 ) $=
      ( cn wcel cc0 cexp co wceq 0exp syl ) ABDEFBGHFICBJK $.
  $}

  ${
    reexpcld.1 $e |- ( ph -> A e. RR ) $.
    reexpcld.2 $e |- ( ph -> N e. NN0 ) $.
    $( Closure of exponentiation of reals.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    reexpcld $p |- ( ph -> ( A ^ N ) e. RR ) $=
      ( cr wcel cn0 cexp co reexpcl syl2anc ) ABFGCHGBCIJFGDEBCKL $.

    ${
      expge0d.3 $e |- ( ph -> 0 <_ A ) $.
      $( Nonnegative integer exponentiation with a nonnegative mantissa is
         nonnegative.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      expge0d $p |- ( ph -> 0 <_ ( A ^ N ) ) $=
        ( cr wcel cn0 cc0 cle wbr cexp co expge0 syl3anc ) ABGHCIHJBKLJBCMNKLDE
        FBCOP $.
    $}

    ${
      expge1d.3 $e |- ( ph -> 1 <_ A ) $.
      $( Nonnegative integer exponentiation with a nonnegative mantissa is
         nonnegative.  (Contributed by Mario Carneiro, 28-May-2016.) $)
      expge1d $p |- ( ph -> 1 <_ ( A ^ N ) ) $=
        ( cr wcel cn0 c1 cle wbr cexp co expge1 syl3anc ) ABGHCIHJBKLJBCMNKLDEF
        BCOP $.
    $}
  $}

  $( A squared odd number minus 1 divided by 8 is the odd number multiplied
     with its successor divided by 2.  (Contributed by AV, 19-Jul-2021.) $)
  sqoddm1div8 $p |- ( ( N e. ZZ /\ M = ( ( 2 x. N ) + 1 ) )
                 -> ( ( ( M ^ 2 ) - 1 ) / 8 ) = ( ( N x. ( N + 1 ) ) / 2 ) ) $=
    ( wcel c2 cmul co c1 caddc wceq cexp cmin c8 cdiv c4 a1i zcnd oveq1d eqcomd
    cc eqtrd cz wa oveq1 2z id zmulcld binom21 syl sylan9eqr zcn sqmuld sq2 w3a
    mulass syl3anc 2t2e4 oveq12d 4z zsqcl addcld pncan1 adantr 4cn adddid 4t2e8
    2cnd oveq2d cc0 wne zaddcld 2cnne0 4ne0 pm3.2i divcan5 sqvald mulid1d adddi
    1cnd 3eqtrd ) BUACZADBEFZGHFZIZUBZADJFZGKFZLMFNBDJFZEFZNBEFZHFZLMFZNWGBHFZE
    FZLMFZBBGHFEFZDMFZWDWFWJLMWDWFWADJFZDWAEFZHFZGHFZGKFZWJWDWEWTGKWCVTWEWBDJFZ
    WTAWBDJUCVTWASCXBWTIVTWAVTDBDUACVTUDOVTUEZUFPWAUGUHUIQVTXAWJIWCVTXAWJGHFZGK
    FZWJVTWTXDGKVTWSWJGHVTWQWHWRWIHVTWQDDJFZWGEFWHVTDBVTVFZBUJZUKVTXFNWGEXFNIVT
    ULOQTVTWRDDEFZBEFZWIVTDSCZXKBSCZWRXJIXGXGXHXKXKXLUMXJWRDDBUNRUOVTXINBEXINIV
    TUPOQTUQQQVTWJSCXEWJIVTWHWIVTWHVTNWGNUACVTUROZBUSZUFPVTWIVTNBXMXCUFPUTWJVAU
    HTVBTQVTWKWNIWCVTWJWMLMVTWMWJVTNWGBNSCZVTVCOVTWGXNPXHVDRQVBVTWNWPIWCVTWNWMN
    DEFZMFZWLDMFZWPVTLXPWMMVTXPLXPLIVTVEORVGVTWLSCXKDVHVIUBZXONVHVIZUBZXQXRIVTW
    LVTWGBXNXCVJPXSVTVKOYAVTXOXTVCVLVMOWLDNVNUOVTWLWODMVTWLBBEFZBHFYBBGEFZHFZWO
    VTWGYBBHVTBXHVOQVTBYCYBHVTYCBVTBXHVPRVGVTXLXLGSCZYDWOIXHXHVTVRXLXLYEUMWOYDB
    BGVQRUOVSQVSVBVS $.

  ${
    nnexpcld.1 $e |- ( ph -> A e. NN ) $.
    $( The naturals are closed under squaring.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    nnsqcld $p |- ( ph -> ( A ^ 2 ) e. NN ) $=
      ( cn wcel c2 cexp co nnsqcl syl ) ABDEBFGHDECBIJ $.

    nnexpcld.2 $e |- ( ph -> N e. NN0 ) $.
    $( Closure of exponentiation of nonnegative integers.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    nnexpcld $p |- ( ph -> ( A ^ N ) e. NN ) $=
      ( cn wcel cn0 cexp co nnexpcl syl2anc ) ABFGCHGBCIJFGDEBCKL $.
  $}

  ${
    nn0expcld.1 $e |- ( ph -> A e. NN0 ) $.
    nn0expcld.2 $e |- ( ph -> N e. NN0 ) $.
    $( Closure of exponentiation of nonnegative integers.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    nn0expcld $p |- ( ph -> ( A ^ N ) e. NN0 ) $=
      ( cn0 wcel cexp co nn0expcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.
  $}

  ${
    rpexpcld.1 $e |- ( ph -> A e. RR+ ) $.
    rpexpcld.2 $e |- ( ph -> N e. ZZ ) $.
    $( Closure law for exponentiation of positive reals.  (Contributed by Mario
       Carneiro, 28-May-2016.) $)
    rpexpcld $p |- ( ph -> ( A ^ N ) e. RR+ ) $=
      ( crp wcel cz cexp co rpexpcl syl2anc ) ABFGCHGBCIJFGDEBCKL $.

    ltexp2rd.3 $e |- ( ph -> M e. ZZ ) $.
    ltexp2rd.4 $e |- ( ph -> A < 1 ) $.
    $( The power of a positive number smaller than 1 decreases as its exponent
       increases.  (Contributed by Mario Carneiro, 28-May-2016.) $)
    ltexp2rd $p |- ( ph -> ( M < N <-> ( A ^ N ) < ( A ^ M ) ) ) $=
      ( crp wcel cz c1 clt wbr cexp co wb ltexp2r syl31anc ) ABIJCKJDKJBLMNCDMN
      BDOPBCOPMNQEGFHBCDRS $.
  $}

  ${
    rpexpclzd.1 $e |- ( ph -> A e. RR ) $.
    rpexpclzd.2 $e |- ( ph -> A =/= 0 ) $.
    rpexpclzd.3 $e |- ( ph -> N e. ZZ ) $.
    $( Closure of exponentiation of reals.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    reexpclzd $p |- ( ph -> ( A ^ N ) e. RR ) $=
      ( cr wcel cc0 wne cz cexp co reexpclz syl3anc ) ABGHBIJCKHBCLMGHDEFBCNO
      $.
  $}

  ${
    resqcld.1 $e |- ( ph -> A e. RR ) $.
    $( Closure of square in reals.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    resqcld $p |- ( ph -> ( A ^ 2 ) e. RR ) $=
      ( cr wcel c2 cexp co resqcl syl ) ABDEBFGHDECBIJ $.

    $( A square of a real is nonnegative.  (Contributed by Mario Carneiro,
       28-May-2016.) $)
    sqge0d $p |- ( ph -> 0 <_ ( A ^ 2 ) ) $=
      ( cr wcel cc0 c2 cexp co cle wbr sqge0 syl ) ABDEFBGHIJKCBLM $.

    ${
      sqgt0d.2 $e |- ( ph -> A =/= 0 ) $.
      $( The square of a nonzero real is positive.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      sqgt0d $p |- ( ph -> 0 < ( A ^ 2 ) ) $=
        ( cr wcel cc0 wne c2 cexp co clt wbr sqgt0 syl2anc ) ABEFBGHGBIJKLMCDBN
        O $.
    $}

    ${
      ltexp2d.2 $e |- ( ph -> M e. ZZ ) $.
      ltexp2d.3 $e |- ( ph -> N e. ZZ ) $.
      ltexp2d.4 $e |- ( ph -> 1 < A ) $.
      $( Ordering relationship for exponentiation.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      ltexp2d $p |- ( ph -> ( M < N <-> ( A ^ M ) < ( A ^ N ) ) ) $=
        ( cr wcel cz c1 clt wbr cexp co wb ltexp2 syl31anc ) ABIJCKJDKJLBMNCDMN
        BCOPBDOPMNQEFGHBCDRS $.

      $( Ordering law for exponentiation.  (Contributed by Mario Carneiro,
         28-May-2016.) $)
      leexp2d $p |- ( ph -> ( M <_ N <-> ( A ^ M ) <_ ( A ^ N ) ) ) $=
        ( cr wcel cz c1 clt wbr cle cexp co wb leexp2 syl31anc ) ABIJCKJDKJLBMN
        CDONBCPQBDPQONREFGHBCDST $.

      expcand.5 $e |- ( ph -> ( A ^ M ) = ( A ^ N ) ) $.
      $( Ordering relationship for exponentiation.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      expcand $p |- ( ph -> M = N ) $=
        ( cexp co wceq cr wcel cz c1 clt wbr wb expcan syl31anc mpbid ) ABCJKBD
        JKLZCDLZIABMNCONDONPBQRUCUDSEFGHBCDTUAUB $.
    $}

    ${
      leexp2ad.2 $e |- ( ph -> 1 <_ A ) $.
      leexp2ad.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
      $( Ordering relationship for exponentiation.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      leexp2ad $p |- ( ph -> ( A ^ M ) <_ ( A ^ N ) ) $=
        ( cr wcel c1 cle wbr cuz cfv cexp co leexp2a syl3anc ) ABHIJBKLDCMNIBCO
        PBDOPKLEFGBCDQR $.
    $}

    ${
      leexp2rd.2 $e |- ( ph -> M e. NN0 ) $.
      leexp2rd.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
      leexp2rd.4 $e |- ( ph -> 0 <_ A ) $.
      leexp2rd.5 $e |- ( ph -> A <_ 1 ) $.
      $( Ordering relationship for exponentiation.  (Contributed by Mario
         Carneiro, 28-May-2016.) $)
      leexp2rd $p |- ( ph -> ( A ^ N ) <_ ( A ^ M ) ) $=
        ( cr wcel cn0 cuz cfv cc0 cle wbr c1 cexp co leexp2r syl32anc ) ABJKCLK
        DCMNKOBPQBRPQBDSTBCSTPQEFGHIBCDUAUB $.
    $}

    lt2sqd.2 $e |- ( ph -> B e. RR ) $.
    lt2sqd.3 $e |- ( ph -> 0 <_ A ) $.
    lt2sqd.4 $e |- ( ph -> 0 <_ B ) $.
    $( The square function on nonnegative reals is strictly monotonic.
       (Contributed by Mario Carneiro, 28-May-2016.) $)
    lt2sqd $p |- ( ph -> ( A < B <-> ( A ^ 2 ) < ( B ^ 2 ) ) ) $=
      ( cr wcel cc0 cle wbr clt c2 cexp co wb lt2sq syl22anc ) ABHIJBKLCHIJCKLB
      CMLBNOPCNOPMLQDFEGBCRS $.

    $( The square function on nonnegative reals is monotonic.  (Contributed by
       Mario Carneiro, 28-May-2016.) $)
    le2sqd $p |- ( ph -> ( A <_ B <-> ( A ^ 2 ) <_ ( B ^ 2 ) ) ) $=
      ( cr wcel cc0 cle wbr c2 cexp co wb le2sq syl22anc ) ABHIJBKLCHIJCKLBCKLB
      MNOCMNOKLPDFEGBCQR $.

    sq11d.5 $e |- ( ph -> ( A ^ 2 ) = ( B ^ 2 ) ) $.
    $( The square function is one-to-one for nonnegative reals.  (Contributed
       by Mario Carneiro, 28-May-2016.) $)
    sq11d $p |- ( ph -> A = B ) $=
      ( c2 cexp co wceq cr wcel cc0 cle wbr wb sq11 syl22anc mpbid ) ABIJKCIJKL
      ZBCLZHABMNOBPQCMNOCPQUBUCRDFEGBCSTUA $.
  $}

  $( The square of a binomial with factor minus a number divided by a nonzero
     number.  (Contributed by AV, 19-Jul-2021.) $)
  mulsubdivbinom2 $p |- ( ( ( A e. CC /\ B e. CC /\ D e. CC )
                            /\ ( C e. CC /\ C =/= 0 ) )
                          -> ( ( ( ( ( C x. A ) + B ) ^ 2 ) - D ) / C )
                             = ( ( ( C x. ( A ^ 2 ) ) + ( 2 x. ( A x. B ) ) )
                                 + ( ( ( B ^ 2 ) - D ) / C ) ) ) $=
    ( cc wcel wa cmul co caddc cexp cmin cdiv wceq adantr adantl oveq1d syl3anc
    c2 mulcld w3a cc0 wne simp1 simpl2 simpl mulbinom2 sqcld 2cnd mulcl 3adant3
    id addcld sqcl 3ad2ant2 simpl3 simpr divsubdir sqmul syl2anr 3ad2ant1 div23
    divdir sqdivid 3eqtrd divcan4d oveq12d divcld addsubassd eqcomd oveq2d
    eqtrd ) AEFZBEFZDEFZUAZCEFZCUBUCZGZGZCAHIZBJISKIZDLIZCMIZWASKIZSCHIZABHIZHI
    ZJIZBSKIZJIZDLIZCMIZCASKIZHIZSWGHIZJIZWJCMIZDCMIZLIZJIZWQWJDLICMIZJIVTVMVNV
    QWDWMNVPVMVSVMVNVOUDZOZVMVNVOVSUEVSVQVPVQVRUFZPZVMVNVQUAZWCWLCMXGWBWKDLABCU
    GQQRVTWMWKCMIZWSLIZWQWRJIZWSLIXAVTWKEFVOVSWMXINVTWIWJVTWEWHVTWAVTCAXFXDTUHZ
    VTWFWGVSWFEFZVPVQXLVRVQSCVQUIVQULTOPZVPWGEFZVSVMVNXNVOABUJZUKOZTZUMZVPWJEFZ
    VSVNVMXSVOBUNUOOZUMVMVNVOVSUPZVPVSUQZWKDCURRVTXHXJWSLVTXHWICMIZWRJIZXJVTWIE
    FXSVSXHYDNXRXTYBWIWJCVCRVTYCWQWRJVTYCWECMIZWHCMIZJIZWQVTWEEFWHEFVSYCYGNXKXQ
    YBWEWHCVCRVTYEWOYFWPJVTYECSKIZWNHIZCMIZYHCMIZWNHIZWOVTWEYICMVSVQVMWEYINVPXE
    XCCAUSUTQVTYHEFZWNEFZVSYJYLNVSYMVPVQYMVRCUNOPVPYNVSVMVNYNVOAUNVAOZYBYHWNCVB
    RVTYKCWNHVSYKCNVPCVDPQVEVTYFWFCMIZWGHIZWPVTXLXNVSYFYQNXMXPYBWFWGCVBRVTYPSWG
    HVSYPSNVPVSSCVSUIXEVQVRUQZVFPQVLVGVLQVLQVTWQWRWSVTWOWPVTCWNXFYOTVPWPEFZVSVM
    VNYSVOVMVNGZSWGYTUIXOTUKOUMVTWJCXTXFVSVRVPYRPZVHVTDCYAXFUUAVHVIVEVTWTXBWQJV
    TXBWTVTXSVOVSXBWTNXTYAYBWJDCURRVJVKVE $.

  $( The square of a binomial with factor divided by a nonzero number.
     (Contributed by AV, 19-Jul-2021.) $)
  muldivbinom2 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) )
                       -> ( ( ( ( C x. A ) + B ) ^ 2 ) / C )
                          = ( ( ( C x. ( A ^ 2 ) ) + ( 2 x. ( A x. B ) ) )
                              + ( ( B ^ 2 ) / C ) ) ) $=
    ( cc wcel cc0 wne wa w3a cmul co caddc c2 cexp cmin cdiv wceq eqcomd oveq1d
    subid1d simpl simpr mulsubdivbinom2 stoic3 simp3l simp1 mulcld simp2 addcld
    0cnd 3jca sqcld sqcl 3ad2ant2 oveq2d 3eqtr4d ) ADEZBDEZCDEZCFGZHZIZCAJKZBLK
    ZMNKZFOKZCPKZCAMNKJKMABJKJKLKZBMNKZFOKZCPKZLKZVECPKVHVICPKZLKUQURUQURFDEZIV
    AVGVLQUQURHZUQURVNUQURUAUQURUBVOUJUKABCFUCUDVBVEVFCPVBVFVEVBVEVBVDVBVCBVBCA
    UQURUSUTUEUQURVAUFUGUQURVAUHUIULTRSVBVMVKVHLVBVIVJCPVBVJVIURUQVJVIQVAURVIBU
    MTUNRSUOUP $.

  $( The square of 10 is 100.  (Contributed by AV, 14-Jun-2021.)  (Revised by
     AV, 1-Aug-2021.) $)
  sq10 $p |- ( ; 1 0 ^ 2 ) = ; ; 1 0 0 $=
    ( c1 cc0 cdc c2 cexp cmul 1nn0 0nn0 deccl nn0cni sqvali eqid mulid2i mul02i
    co decmul1 eqtri ) ABCZDEORRFORBCRRABGHIZJZKABRBRRSGHRLHRTMRTNPQ $.

  $( The square of 10 is 99 plus 1.  (Contributed by AV, 14-Jun-2021.)
     (Revised by AV, 1-Aug-2021.) $)
  sq10e99m1 $p |- ( ; 1 0 ^ 2 ) = ( ; 9 9 + 1 ) $=
    ( c1 cc0 cdc c2 cexp co c9 caddc sq10 9nn0 9p1e10 eqid decsucc eqtr4i ) ABC
    ZDEFOBCGGCZAHFIGOPJKPLMN $.

  ${
    3dec.a $e |- A e. NN0 $.
    3dec.b $e |- B e. NN0 $.
    $( A "decimal constructor" which is used to build up "decimal integers" or
       "numeric terms" in base 10 with 3 "digits".  (Contributed by AV,
       14-Jun-2021.)  (Revised by AV, 1-Aug-2021.) $)
    3dec $p |- ; ; A B C = ( ( ( ( ; 1 0 ^ 2 ) x. A )
                               + ( ; 1 0 x. B ) ) + C ) $=
      ( cdc c1 cc0 cmul co caddc c2 cexp dfdec10 oveq2i 1nn nn0cni eqtri eqcomi
      oveq1i decnncl2 nncni mulcli adddii mulassi sqvali ) ABFZCFGHFZUGIJZCKJUH
      LMJZAIJZUHBIJZKJZCKJUGCNUIUMCKUIUHUHAIJZIJZULKJZUMUIUHUNBKJZIJUPUGUQUHIAB
      NOUHUNBUHGPUAUBZUHAURADQZUCBEQUDRUOUKULKUOUHUHIJZAIJZUKVAUOUHUHAURURUSUES
      UTUJAIUJUTUHURUFSTRTRTR $.
  $}

  $( Old version of ~ sq10 .  Obsolete as of 1-Aug-2021.  (Contributed by AV,
     14-Jun-2021.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  sq10OLD $p |- ( 10 ^ 2 ) = ; ; 1 0 0 $=
    ( c10 c2 cexp co cmul c1 cc0 cdc 10nnOLD nncni sqvali caddc dfdecOLD eqcomi
    dec10OLD oveq2i oveq1i mulcli addid1i 3eqtrri eqtri ) ABCDAAEDZFGHZGHZAAIJZ
    KUDAUCEDZGLDUBGLDUBUCGMUFUBGLUCAAEAUCONPQUBAAUEUERSTUA $.

  $( Old version of ~ sq10e99m1 .  Obsolete as of 1-Aug-2021.  (Contributed by
     AV, 14-Jun-2021.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  sq10e99m1OLD $p |- ( 10 ^ 2 ) = ( ; 9 9 + 1 ) $=
    ( c10 c2 cexp co c1 cc0 cdc caddc sq10OLD 9nn0 9p1e10 eqid decsucc eqtr4i
    c9 ) ABCDEFGZFGOOGZEHDIOPQJKQLMN $.

  ${
    3decOLD.a $e |- A e. NN0 $.
    3decOLD.b $e |- B e. NN0 $.
    $( Old version of ~ 3dec .  Obsolete as of 1-Aug-2021.  (Contributed by AV,
       14-Jun-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    3decOLD $p |- ; ; A B C = ( ( ( ( 10 ^ 2 ) x. A ) + ( 10 x. B ) ) + C ) $=
      ( cdc c10 cmul co caddc c2 cexp dfdecOLD oveq2i nncni nn0cni eqtri eqcomi
      10nnOLD oveq1i mulcli adddii mulassi sqvali ) ABFZCFGUEHIZCJIGKLIZAHIZGBH
      IZJIZCJIUECMUFUJCJUFGGAHIZHIZUIJIZUJUFGUKBJIZHIUMUEUNGHABMNGUKBGSOZGAUOAD
      PZUABEPUBQULUHUIJULGGHIZAHIZUHURULGGAUOUOUPUCRUQUGAHUGUQGUOUDRTQTQTQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordered pair theorem for nonnegative integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    nn0le2msqi.1 $e |- A e. NN0 $.
    nn0le2msqi.2 $e |- B e. NN0 $.
    $( The square function on nonnegative integers is monotonic.  (Contributed
       by Raph Levien, 10-Dec-2002.) $)
    nn0le2msqi $p |- ( A <_ B <-> ( A x. A ) <_ ( B x. B ) ) $=
      ( cle wbr c2 cexp co cmul cc0 nn0ge0i nn0rei le2sqi nn0cni sqvali breq12i
      wb mp2an bitri ) ABEFZAGHIZBGHIZEFZAAJIZBBJIZEFKAEFKBEFUAUDRACLBDLABACMBD
      MNSUBUEUCUFEAACOPBBDOPQT $.
  $}

  ${
    nn0opthlem1.1 $e |- A e. NN0 $.
    nn0opthlem1.2 $e |- C e. NN0 $.
    $( A rather pretty lemma for ~ nn0opthi .  (Contributed by Raph Levien,
       10-Dec-2002.) $)
    nn0opthlem1 $p |- ( A < C <-> ( ( A x. A ) + ( 2 x. A ) ) < ( C x. C ) ) $=
      ( c1 caddc co cle wbr cmul clt c2 nn0addcli wcel wb nn0mulcli cexp ax-1cn
      cn0 sqvali 1nn0 nn0le2msqi nn0ltp1le nn0cni binom2i addcli oveq1i oveq12i
      mp2an 2nn0 3eqtr3i mulid1i oveq2i eqtri breq1i bitr4i 3bitr4i ) AEFGZBHIZ
      URURJGZBBJGZHIZABKIZAAJGZLAJGZFGZVAKIZURBAECUAMDUBASNBSNVCUSOCDABUCUIVGVF
      EFGZVAHIZVBVFSNVASNVGVIOVDVEAACCPLAUJCPMBBDDPVFVAUCUIUTVHVAHUTVDLAEJGZJGZ
      FGZEEJGZFGZVHURLQGALQGZVKFGZELQGZFGUTVNAEACUDZRUEURAEVRRUFTVPVLVQVMFVOVDV
      KFAVRTUGERTUHUKVLVFVMEFVKVEVDFVJALJAVRULUMUMERULUHUNUOUPUQ $.
  $}

  ${
    nn0opth.1 $e |- A e. NN0 $.
    nn0opth.2 $e |- B e. NN0 $.
    nn0opth.3 $e |- C e. NN0 $.
    nn0opth.4 $e |- D e. NN0 $.
    $( Lemma for ~ nn0opthi .  (Contributed by Raph Levien, 10-Dec-2002.)
       (Revised by Scott Fenton, 8-Sep-2010.) $)
    nn0opthlem2 $p |- ( ( A + B ) < C
           -> ( ( C x. C ) + D ) =/= ( ( ( A + B ) x. ( A + B ) ) + B ) ) $=
      ( caddc co clt wbr cmul wne c2 nn0addcli cle nn0rei remulcli readdcli 2re
      nn0opthlem1 nn0addge2i nn0lele2xi leadd2i lelttri mpan nn0addge1i ltletri
      sylib ax-mp sylbi mpan2 ltnei 3syl ) ABIJZCKLZUPUPMJZBIJZCCMJZKLZUSUTDIJZ
      KLZVBUSNUQUROUPMJZIJZUTKLZVAUPCABEFPZGUBUSVEQLZVFVABUPQLZVHBABFRZEUCVIBVD
      QLVHUPBVGFUDBVDURVJOUPUAUPVGRZSZUPUPVKVKSZUEUJUKUSVEUTURBVMVJTZURVDVMVLTC
      CCGRZVOSZUFUGULVAUTVBQLVCUTDVPHUHUSUTVBVNVPUTDVPDHRTZUIUMUSVBVNVQUNUO $.

    $( An ordered pair theorem for nonnegative integers.  Theorem 17.3 of
       [Quine] p. 124.  We can represent an ordered pair of nonnegative
       integers ` A ` and ` B ` by ` ( ( ( A + B ) x. ( A + B ) ) + B ) ` .  If
       two such ordered pairs are equal, their first elements are equal and
       their second elements are equal.  Contrast this ordered pair
       representation with the standard one ~ df-op that works for any set.
       (Contributed by Raph Levien, 10-Dec-2002.)  (Proof shortened by Scott
       Fenton, 8-Sep-2010.) $)
    nn0opthi $p |- ( ( ( ( A + B ) x. ( A + B ) ) + B ) =
            ( ( ( C + D ) x. ( C + D ) ) + D ) <-> ( A = C /\ B = D ) ) $=
      ( caddc cmul wceq wne clt wbr nn0addcli nn0rei nn0opthlem2 oveq12d nn0cni
      co wa wo lttri2i necomd jaoi sylbi necon4i id oveq1d eqtr4d addcani sylib
      mulcli oveq2d addcan2i jca oveq12 simpr impbii ) ABITZUTJTZBITZCDITZVCJTZ
      DITZKZACKZBDKZUAZVFVGVHVFUTCBITZKVGVFUTVCVJUTVCVBVEUTVCLUTVCMNZVCUTMNZUBV
      BVELZUTVCUTABEFOZPVCCDGHOZPUCVKVMVLVKVEVBABVCDEFVOHQUDCDUTBGHVNFQUEUFUGZV
      FBDCIVFVBVADITZKVHVFVBVEVQVFUHVFVAVDDIVFUTVCUTVCJVPVPRUIUJVABDUTUTUTVNSZV
      RUMBFSZDHSUKULZUNUJACBAESCGSVSUOULVTUPVIVAVDBDIVIUTVCUTVCJACBDIUQZWARVGVH
      URRUS $.

    $( An ordered pair theorem for nonnegative integers.  Theorem 17.3 of
       [Quine] p. 124.  See comments for ~ nn0opthi .  (Contributed by NM,
       22-Jul-2004.) $)
    nn0opth2i $p |- ( ( ( ( A + B ) ^ 2 ) + B ) = ( ( ( C + D ) ^ 2 ) + D ) <->
                   ( A = C /\ B = D ) ) $=
      ( caddc co c2 cexp wceq cmul wa nn0cni addcli sqvali oveq1i eqeq12i bitri
      nn0opthi ) ABIJZKLJZBIJZCDIJZKLJZDIJZMUCUCNJZBIJZUFUFNJZDIJZMACMBDMOUEUJU
      HULUDUIBIUCABAEPBFPQRSUGUKDIUFCDCGPDHPQRSTABCDEFGHUBUA $.
  $}

  $( An ordered pair theorem for nonnegative integers.  Theorem 17.3 of [Quine]
     p. 124.  See ~ nn0opthi .  (Contributed by NM, 22-Jul-2004.) $)
  nn0opth2 $p |- ( ( ( A e. NN0 /\ B e. NN0 ) /\ ( C e. NN0 /\ D e. NN0 ) ) ->
          ( ( ( ( A + B ) ^ 2 ) + B ) = ( ( ( C + D ) ^ 2 ) + D ) <->
                   ( A = C /\ B = D ) ) ) $=
    ( cn0 wcel caddc co c2 cexp wceq wa wb cc0 oveq1 oveq1d bibi12d 0nn0 elimel
    cif eqeq1d eqeq1 anbi1d oveq2 oveq12d anbi2d eqeq2d eqeq2 nn0opth2i dedth4h
    id ) AEFZBEFZCEFZDEFZABGHZIJHZBGHZCDGHZIJHZDGHZKZACKZBDKZLZMULANTZBGHZIJHZB
    GHZVAKZVFCKZVDLZMVFUMBNTZGHZIJHZVMGHZVAKZVKVMDKZLZMVPUNCNTZDGHZIJHZDGHZKZVF
    VTKZVRLZMVPVTUODNTZGHZIJHZWGGHZKZWEVMWGKZLZMABCDNNNNAVFKZVBVJVEVLWNURVIVAWN
    UQVHBGWNUPVGIJAVFBGOPPUAWNVCVKVDAVFCUBUCQBVMKZVJVQVLVSWOVIVPVAWOVHVOBVMGWOV
    GVNIJBVMVFGUDPWOUKUEUAWOVDVRVKBVMDUBUFQCVTKZVQWDVSWFWPVAWCVPWPUTWBDGWPUSWAI
    JCVTDGOPPUGWPVKWEVRCVTVFUHUCQDWGKZWDWKWFWMWQWCWJVPWQWBWIDWGGWQWAWHIJDWGVTGU
    DPWQUKUEUGWQVRWLWEDWGVMUHUFQVFVMVTWGANERSBNERSCNERSDNERSUIUJ $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Factorial function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ! $. $( Factorial. $)

  $( Extend class notation to include the factorial of nonnegative integers. $)
  cfa $a class ! $.

  $( Define the factorial function on nonnegative integers.  For example,
     ` ( ! `` 5 ) = 1 2 0 ` because ` 1 x. 2 x. 3 x. 4 x. 5 = 1 2 0 `
     ( ~ ex-fac ).  In the literature, the factorial function is written as a
     postscript exclamation point.  (Contributed by NM, 2-Dec-2004.) $)
  df-fac $a |- ! = ( { <. 0 , 1 >. } u. seq 1 ( x. , _I ) ) $.

  $( Value of the factorial function for positive integers.  (Contributed by
     NM, 2-Dec-2004.)  (Revised by Mario Carneiro, 13-Jul-2013.) $)
  facnn $p |- ( N e. NN ->
      ( ! ` N ) = ( seq 1 ( x. , _I ) ` N ) ) $=
    ( cfa cfv cmul cid c1 cseq wceq cn0 cc0 csn cdif c0ex 1ex cop cun cres dfn2
    cn eqtr3i df-fac cuz nnuz reseq2i cz wcel wfn 1z fnresdm mp2b uneq2i eqtr4i
    seqfn fvsnun2 eleq2s ) ABCADEFGZCHAIJKLZSJFIAUPBMNBJFOKZUPPURUPUQQZPUAUSUPU
    RUPFUBCZQZUSUPUTUQUPSUTUQUCRTUDFUEUFUPUTUGVAUPHUHDEFUMUTUPUIUJTUKULUNRUO $.

  $( The factorial of 0.  (Contributed by NM, 2-Dec-2004.)  (Revised by Mario
     Carneiro, 13-Jul-2013.) $)
  fac0 $p |- ( ! ` 0 ) = 1 $=
    ( cc0 c1 cn0 cmul cid cseq cfa c0ex 1ex cop csn cun cdif cres df-fac cuz cn
    cfv nnuz eqtr3i dfn2 reseq2i cz wcel wfn wceq 1z fnresdm mp2b uneq2i eqtr4i
    seqfn fvsnun1 ) ABCDEBFZGHIGABJKZUNLUOUNCAKMZNZLOUQUNUOUNBPRZNZUQUNURUPUNQU
    RUPSUATUBBUCUDUNURUEUSUNUFUGDEBULURUNUHUITUJUKUM $.

  $( The factorial of 1.  (Contributed by NM, 2-Dec-2004.)  (Revised by Mario
     Carneiro, 13-Jul-2013.) $)
  fac1 $p |- ( ! ` 1 ) = 1 $=
    ( c1 cfa cfv cmul cid cseq cn wcel wceq 1nn facnn ax-mp cz seq1 fvi 3eqtri
    1z ) ABCZADEAFCZAECZAAGHZRSIJAKLAMHSTIQDEANLUATAIJAGOLP $.

  $( The factorial of a successor.  (Contributed by NM, 2-Dec-2004.)  (Revised
     by Mario Carneiro, 13-Jul-2013.) $)
  facp1 $p |- ( N e. NN0 ->
               ( ! ` ( N + 1 ) ) = ( ( ! ` N ) x. ( N + 1 ) ) ) $=
    ( cn0 wcel cn cc0 wceq wo c1 caddc cfa cfv cmul elnn0 cid facnn cvv 3eqtr4a
    co 0p1e1 eqtri cseq peano2nn syl ovex ax-mp oveq2i seqp1 nnuz eleq2s oveq1d
    fvi cuz eqtrd fveq2i fac1 oveq1 fveq2d fveq2 oveq12d fac0 1t1e1 syl6eq jaoi
    oveq12i sylbi ) ABCADCZAEFZGAHIRZJKZAJKZVHLRZFZAMVFVLVGVFVIVHLNHUAZKZVKVFVH
    DCVIVNFAUBVHOUCVFAVMKZVHNKZLRZVOVHLRVNVKVPVHVOLVHPCVPVHFAHIUDVHPUKUEUFVNVQF
    AHULKDLNHAUGUHUIVFVJVOVHLAOUJQUMVGEHIRZJKZHVIVKVSHJKHVRHJSUNUOTVGVHVRJAEHIU
    PZUQVGVKEJKZVRLRZHVGVJWAVHVRLAEJURVTUSWBHHLRHWAHVRHLUTSVDVATVBQVCVE $.

  $( The factorial of 2.  (Contributed by NM, 17-Mar-2005.) $)
  fac2 $p |- ( ! ` 2 ) = 2 $=
    ( c2 cfa cfv c1 caddc df-2 fveq2i cmul cn0 wcel wceq 1nn0 facp1 ax-mp 1p1e2
    co fac1 oveq12i 2cn eqtri mulid2i ) ABCDDEPZBCZAAUBBFGUCDBCZUBHPZADIJUCUEKL
    DMNUEDAHPAUDDUBAHQORASUATTT $.

  $( The factorial of 3.  (Contributed by NM, 17-Mar-2005.) $)
  fac3 $p |- ( ! ` 3 ) = 6 $=
    ( c3 cfa cfv c2 c1 caddc co cmul df-3 fveq2i cn0 wcel wceq 2nn0 facp1 ax-mp
    c6 fac2 2p1e3 3eqtri oveq12i 2cn 3cn mulcomi 3t2e6 ) ABCDEFGZBCZDBCZUFHGZQA
    UFBIJDKLUGUIMNDOPUIDAHGADHGQUHDUFAHRSUADAUBUCUDUETT $.

  $( The factorial of 4.  (Contributed by Mario Carneiro, 18-Jun-2015.) $)
  fac4 $p |- ( ! ` 4 ) = ; 2 4 $=
    ( c3 c1 caddc co cfa cfv cmul c4 cdc cn0 wcel wceq facp1 ax-mp 3p1e4 fveq2i
    c2 3nn0 c6 fac3 oveq12i 6t4e24 eqtri 3eqtr3i ) ABCDZEFZAEFZUEGDZHEFQHIZAJKU
    FUHLRAMNUEHEOPUHSHGDUIUGSUEHGTOUAUBUCUD $.

  $( Value of the factorial function expressed recursively.  (Contributed by
     NM, 2-Dec-2004.) $)
  facnn2 $p |- ( N e. NN ->
               ( ! ` N ) = ( ( ! ` ( N - 1 ) ) x. N ) ) $=
    ( cn wcel cc c1 cmin co cn0 wa cfa cfv cmul wceq elnnnn0 caddc facp1 adantl
    npcan1 fveq2d adantr oveq2d 3eqtr3d sylbi ) ABCADCZAEFGZHCZIZAJKZUEJKZALGZM
    ANUGUEEOGZJKZUIUKLGZUHUJUFULUMMUDUEPQUDULUHMUFUDUKAJARZSTUDUMUJMUFUDUKAUILU
    NUATUBUC $.

  ${
    $d j k N $.
    $( Closure of the factorial function.  (Contributed by NM, 2-Dec-2004.) $)
    faccl $p |- ( N e. NN0 -> ( ! ` N ) e. NN ) $=
      ( vj vk cv cfa cfv cn wcel cc0 c1 caddc co wceq fveq2 eleq1d fac0 eqeltri
      1nn cn0 wa cmul facp1 adantl nn0p1nn nnmulcl sylan2 eqeltrd expcom nn0ind
      ) BDZEFZGHIEFZGHCDZEFZGHZUMJKLZEFZGHZAEFZGHBCAUJIMUKULGUJIENOUJUMMUKUNGUJ
      UMENOUJUPMUKUQGUJUPENOUJAMUKUSGUJAENOULJGPRQUOUMSHZURUOUTTUQUNUPUALZGUTUQ
      VAMUOUMUBUCUTUOUPGHVAGHUMUDUNUPUEUFUGUHUI $.
  $}

  ${
    faccld.1 $e |- ( ph -> N e. NN0 ) $.
    $( Closure of the factorial function, deduction version of ~ faccl .
       (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    faccld $p |- ( ph -> ( ! ` N ) e. NN ) $=
      ( cn0 wcel cfa cfv cn faccl syl ) ABDEBFGHECBIJ $.
  $}

  $( The factorial function restricted to positive integers is a mapping from
     the positive integers to the positive integers.  (Contributed by AV,
     8-Aug-2020.) $)
  facmapnn $p |- ( n e. NN |-> ( ! ` n ) ) e. ( NN ^m NN ) $=
    ( cn cv cfa cfv cmpt cmap co wcel eqid cn0 nnnn0 faccl syl fmpti nnex elmap
    wf mpbir ) ABACZDEZFZBBGHIBBUBRABBUAUBUBJTBITKIUABITLTMNOBBUBPPQS $.

  $( The factorial function is nonzero.  (Contributed by NM, 26-Apr-2005.) $)
  facne0 $p |- ( N e. NN0 -> ( ! ` N ) =/= 0 ) $=
    ( cn0 wcel cfa cfv faccl nnne0d ) ABCADEAFG $.

  ${
    $d j M $.  $d j k N $.
    $( A positive integer divides the factorial of an equal or larger number.
       (Contributed by NM, 2-May-2005.) $)
    facdiv $p |- ( ( M e. NN0 /\ N e. NN /\ N <_ M ) ->
                  ( ( ! ` M ) / N ) e. NN ) $=
      ( wcel cn cle wbr cfa cfv cdiv co wi cc0 wceq breq2 oveq1d eleq1d imbi12d
      fveq2 imbi2d wa vj vk cn0 cv c1 caddc clt wn nngt0 cr wb 0re nnre sylancr
      ltnle mpbid pm2.21d cmul wo peano2nn0 nn0red leloe syl2an nnnn0 nn0leltp1
      sylan nn0p1nn nnmulcl sylan2 expcom adantl cc wne faccl nncnd nn0cnd nncn
      nnne0 jca adantr div23 syl3anc sylibrd imim2d com23 sylbird eqeltrd oveq2
      divcan4d syl5ibcom a1dd jaod sylbid ex com34 com12 imp4d facp1 a2d nn0ind
      exp4d 3imp ) AUCCBDCZBAEFZAGHZBIJZDCZXCBUAUDZEFZXHGHZBIJZDCZKZKXCBLEFZLGH
      ZBIJZDCZKZKXCBUBUDZEFZXSGHZBIJZDCZKZKXCBXSUEUFJZEFZYEGHZBIJZDCZKZKXCXDXGK
      ZKUAUBAXHLMZXMXRXCYLXIXNXLXQXHLBENYLXKXPDYLXJXOBIXHLGROPQSXHXSMZXMYDXCYMX
      IXTXLYCXHXSBENYMXKYBDYMXJYABIXHXSGROPQSXHYEMZXMYJXCYNXIYFXLYIXHYEBENYNXKY
      HDYNXJYGBIXHYEGROPQSXHAMZXMYKXCYOXIXDXLXGXHABENYOXKXFDYOXJXEBIXHAGROPQSXC
      XNXQXCLBUGFZXNUHZBUIXCLUJCBUJCZYPYQUKULBUMZLBUOUNUPUQXSUCCZXCYDYJYTXCYDYF
      YIYTXCYDYFTTYAYEURJZBIJZDCZYIYTXCYDYFUUCXCYTYDYFUUCKKXCYTYFYDUUCXCYTYFYDU
      UCKZKXCYTTZYFBYEUGFZBYEMZUSZUUDXCYRYEUJCYFUUHUKYTYSYTYEXSUTZVABYEVBVCUUEU
      UFUUDUUGUUEUUFXTUUDXCBUCCYTXTUUFUKBVDBXSVEVFUUEYDXTUUCUUEYCUUCXTUUEYCYBYE
      URJZDCZUUCYTYCUUKKXCYCYTUUKYTYCYEDCUUKXSVGYBYEVHVIVJVKUUEUUBUUJDUUEYAVLCZ
      YEVLCZBVLCZBLVMZTZUUBUUJMYTUULXCYTYAXSVNZVOVKZYTUUMXCYTYEUUIVPVKXCUUPYTXC
      UUNUUOBVQZBVRZVSVTYAYEBWAWBPWCWDWEWFUUEUUGUUCYDUUEYABURJZBIJZDCUUGUUCUUEU
      VBYADUUEYABUURXCUUNYTUUSVTXCUUOYTUUTVTWIYTYADCXCUUQVKWGUUGUVBUUBDUUGUVAUU
      ABIBYEYAURWHOPWJWKWLWMWNWOWPWQYTYHUUBDYTYGUUABIXSWROPWCXAWSWTXB $.
  $}

  $( No positive integer (greater than one) divides the factorial plus one of
     an equal or larger number.  (Contributed by NM, 3-May-2005.) $)
  facndiv $p |- ( ( ( M e. NN0 /\ N e. NN ) /\ ( 1 < N /\ N <_ M ) ) ->
                -. ( ( ( ! ` M ) + 1 ) / N ) e. ZZ ) $=
    ( cn0 wcel cn wa c1 clt wbr cle cfa cfv caddc co cdiv cz cmin wceq ad2antrr
    cc wn cr nnre recnz sylan ad2ant2lr facdiv 3expa nnzd adantrl zsubcl ex cc0
    syl5com wne faccl nncnd peano2cn syl nncn nnne0 jca ad2antlr syl3anc ax-1cn
    divsubdir pncan2 sylancl oveq1d eqtr3d eleq1d sylibd mtod ) ACDZBEDZFZGBHIZ
    BAJIZFZFZAKLZGMNZBONZPDZGBONZPDZVOVQWFUAZVNVRVOBUBDVQWGBUCBUDUEUFVTWDWCWABO
    NZQNZPDZWFVTWHPDZWDWJVPVRWKVQVPVRFWHVNVOVRWHEDABUGUHUIUJWDWKWJWCWHUKULUNVTW
    IWEPVTWBWAQNZBONZWIWEVTWBTDZWATDZBTDZBUMUOZFZWMWIRVNWNVOVSVNWOWNVNWAAUPUQZW
    AURUSSVNWOVOVSWSSVOWRVNVSVOWPWQBUTBVAVBVCWBWABVFVDVNWMWERVOVSVNWLGBOVNWOGTD
    WLGRWSVEWAGVGVHVISVJVKVLVM $.

  ${
    $d j k M $.  $d j N $.
    $( Ordering property of factorial.  (Contributed by NM, 9-Dec-2005.) $)
    facwordi $p |- ( ( M e. NN0 /\ N e. NN0 /\ M <_ N ) ->
                  ( ! ` M ) <_ ( ! ` N ) ) $=
      ( vj vk cn0 wcel cle wbr cfa cfv wa wi cc0 wceq breq2 anbi2d fveq2 breq2d
      imbi12d cr cv c1 caddc weq nn0le0eq0 biimpa fveq2d fac0 1re eqeltri leidi
      co syl6eqbr impexp clt wo nn0re peano2re syl leloe syl2an nn0leltp1 faccl
      cmul nnred nnnn0d nn0ge0d nn0p1nn nnge1d lemulge11d facp1 breqtrrd adantl
      wb adantr peano2nn0 faccld letr syl3anc mpan2d imim2d com23 sylbird leidd
      syl5ibcom syl5 a1dd jaod sylbid ex com13 com4l imp4a syl5bi nn0ind 3impib
      a2d 3com12 ) BEFZAEFZABGHZAIJZBIJZGHZWSWTXAXDWTACUAZGHZKZXBXEIJZGHZLWTAMG
      HZKZXBMIJZGHZLWTADUAZGHZKZXBXNIJZGHZLZWTAXNUBUCULZGHZKZXBXTIJZGHZLZWTXAKZ
      XDLCDBXEMNZXGXKXIXMYGXFXJWTXEMAGOPYGXHXLXBGXEMIQRSCDUDZXGXPXIXRYHXFXOWTXE
      XNAGOPYHXHXQXBGXEXNIQRSXEXTNZXGYBXIYDYIXFYAWTXEXTAGOPYIXHYCXBGXEXTIQRSXEB
      NZXGYFXIXDYJXFXAWTXEBAGOPYJXHXCXBGXEBIQRSXKXBXLXLGXKAMIWTXJAMNAUEUFUGXLXL
      UBTUHUIUJUKUMXSWTXOXRLZLZXNEFZYEWTXOXRUNYMYLWTYAYDYMWTYKYAYDLYAYMWTYKYDWT
      YMYAYKYDLZWTYMYAYNLWTYMKZYAAXTUOHZAXTNZUPZYNWTATFXTTFZYAYRVNYMAUQYMXNTFYS
      XNUQXNURUSZAXTUTVAYOYPYNYQYOYPXOYNAXNVBYOYKXOYDYOXRYDXOYOXRXQYCGHZYDYMUUA
      WTYMXQXQXTVDULYCGYMXQXTYMXQXNVCZVEZYTYMXQYMXQUUBVFVGYMXTXNVHVIVJXNVKVLVMY
      OXBTFZXQTFZYCTFZXRUUAKYDLWTUUDYMWTXBAVCVEZVOYMUUEWTUUCVMYMUUFWTYMYCYMXTXN
      VPVQVEVMXBXQYCVRVSVTWAWBWCYOYQYDYKWTYQYDLYMYQXBYCNZWTYDAXTIQWTXBXBGHUUHYD
      WTXBUUGWDXBYCXBGOWEWFVOWGWHWIWJWKWLWQWMWNWOWPWR $.

    $( A lower bound for the factorial function.  (Contributed by NM,
       17-Dec-2005.) $)
    faclbnd $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                   ( M ^ ( N + 1 ) ) <_ ( ( M ^ M ) x. ( ! ` N ) ) ) $=
      ( cn0 wcel cc0 wceq c1 caddc co cexp cfa cfv cmul cle wbr wi oveq2d wa cr
      adantr vj vk cn wo elnn0 oveq1 fveq2 breq12d imbi2d nnre nnge1 cuz elnnuz
      biimpi leexp2ad 0p1e1 oveq2i a1i fac0 nnnn0 reexpcld recnd mulid1d syl5eq
      cv 3brtr4d clt ad3antrrr simpllr peano2nn0 faccld nnred remulcld peano2re
      syl nn0re 3syl 0re ltle mpan sylc expge0d simplr simprr lemul12ad anandis
      nngt0 cc nncn expp1 syl2an facp1 adantl faccl nncnd nn0cn peano2cn eqtr4d
      mulassd exp32 com23 wb syl2anr reexpcl ad2antrr remulcl simpr cz ad2antlr
      nn0ltp1le nn0zd nnz eluz syl2anc mpbird anim12i id nn0ge0 lemulge11 letrd
      nnge1d ex sylbid a1dd lelttric mpjaod expcom nn0ind impcom nnnn0d nn0ge0d
      a2d nn0p1nn 0expd 0exp0e1 oveq1i mulid2d oveq12 anidms oveq1d syl5ibr imp
      jaoian sylanb ) ACDZAUCDZAEFZUDBCDZABGHIZJIZAAJIZBKLZMIZNOZAUEUUFUUHUUNUU
      GUUHUUFUUNUUFAUAVEZGHIZJIZUUKUUOKLZMIZNOZPUUFAEGHIZJIZUUKEKLZMIZNOZPUUFAU
      BVEZGHIZJIZUUKUVFKLZMIZNOZPUUFAUVGGHIZJIZUUKUVGKLZMIZNOZPUUFUUNPUAUBBUUOE
      FZUUTUVEUUFUVQUUQUVBUUSUVDNUVQUUPUVAAJUUOEGHUFQUVQUURUVCUUKMUUOEKUGQUHUIU
      UOUVFFZUUTUVKUUFUVRUUQUVHUUSUVJNUVRUUPUVGAJUUOUVFGHUFQUVRUURUVIUUKMUUOUVF
      KUGQUHUIUUOUVGFZUUTUVPUUFUVSUUQUVMUUSUVONUVSUUPUVLAJUUOUVGGHUFQUVSUURUVNU
      UKMUUOUVGKUGQUHUIUUOBFZUUTUUNUUFUVTUUQUUJUUSUUMNUVTUUPUUIAJUUOBGHUFQUVTUU
      RUULUUKMUUOBKUGQUHUIUUFAGJIZUUKUVBUVDNUUFAGAAUJZAUKZUUFAGULLDAUMUNUOUVBUW
      AFUUFUVAGAJUPUQURUUFUVDUUKGMIUUKUVCGUUKMUSUQUUFUUKUUFUUKUUFAAUWBAUTZVAZVB
      ZVCVDVFUVFCDZUUFUVKUVPUUFUWGUVKUVPPZUUFUWGRZAUVGNOZUWHUVGAVGOZUWIUVKUWJUV
      PUWIUVKUWJUVPUWIUVKUWJRZRUVHAMIZUVJUVGMIZUVMUVONUWIUVKUWJUWMUWNNOUWIUVKRZ
      UWIUWJRZRZUVHUVJAUVGUWQAUVGUUFASDZUWGUVKUWPUWBVHZUWQUWGUVGCDZUUFUWGUVKUWP
      VIZUVFVJZVOZVAUWQUUKUVIUWQAAUWSUUFUUEUWGUVKUWPUWDVHVAUWQUVIUWQUVFUXAVKVLV
      MUWSUWQUWGUVFSDZUVGSDZUXAUVFVPZUVFVNZVQUWQAUVGUWSUXCUWQUWREAVGOZEANOZUWSU
      UFUXHUWGUVKUWPAWGVHESDUWRUXHUXIPVREAVSVTWAZWBUXJUWIUVKUWPWCUWOUWIUWJWDWEW
      FUWIUVMUWMFZUWLUUFAWHDUWTUXKUWGAWIUXBAUVGWJWKTUWIUVOUWNFUWLUWIUVOUUKUVIUV
      GMIZMIUWNUWIUVNUXLUUKMUWGUVNUXLFUUFUVFWLWMQUWIUUKUVIUVGUUFUUKWHDUWGUWFTUW
      GUVIWHDUUFUWGUVIUVFWNWOWMUWGUVGWHDZUUFUWGUVFWHDUXMUVFWPUVFWQVOWMWSWRTVFWT
      XAUWIUWKUVPUVKUWIUWKUVLANOZUVPUWGUWTUUEUWKUXNXBUUFUXBUWDUVGAXJXCUWIUXNUVP
      UWIUXNRZUVMUUKUVOUWIUVMSDZUXNUUFUWRUVLCDZUXPUWGUWBUWGUWTUXQUXBUVGVJVOZAUV
      LXDWKTUUFUUKSDZUWGUXNUWEXEUWIUVOSDZUXNUUFUXSUVNSDZUXTUWGUWEUWGUVNUWGUVGUX
      BVKZVLZUUKUVNXFWKTUXOAUVLAUUFUWRUWGUXNUWBXEUUFGANOUWGUXNUWCXEUXOAUVLULLDZ
      UXNUWIUXNXGUXOUVLXHDAXHDZUYDUXNXBUXOUVLUWGUXQUUFUXNUXRXIXKUUFUYEUWGUXNAXL
      XEUVLAXMXNXOUOUWIUUKUVONOZUXNUWIUXSUYAREUUKNOZGUVNNOZRUYFUUFUXSUWGUYAUWEU
      YCXPUUFUYGUWGUYHUUFUUEUYGUWDUUEAAAVPUUEXQAXRWBVOUWGUVNUYBYAXPUUKUVNXSXNTX
      TYBYCYDUUFUWRUXEUWJUWKUDUWGUWBUWGUXDUXEUXFUXGVOAUVGYEWKYFYGYLYHYIUUGUUHUU
      NUUHUUNUUGEUUIJIZEEJIZUULMIZNOUUHEUULUYIUYKNUUHUULUUHUULBWNZYJYKUUHUUIBYM
      YNUUHUYKGUULMIUULUYJGUULMYOYPUUHUULUUHUULUYLWOYQVDVFUUGUUJUYIUUMUYKNAEUUI
      JUFUUGUUKUYJUULMUUGUUKUYJFAEAEJYRYSYTUHUUAUUBUUCUUD $.
  $}

  $( A lower bound for the factorial function.  (Contributed by NM,
     17-Dec-2005.) $)
  faclbnd2 $p |- ( N e. NN0 -> ( ( 2 ^ N ) / 2 ) <_ ( ! ` N ) ) $=
    ( cn0 wcel c2 cexp co cdiv c1 cle cmul c4 sq2 oveq2i cc 2cn mpan wa cc0 wbr
    cr caddc cfa cfv 2t2e4 eqtr4i wceq expp1 oveq1d syl5eq wne 2cnne0 divmuldiv
    expcl mpanr12 sylancl 2div2e1 halfcld mulid1d 3eqtr2rd faclbnd wb peano2nn0
    2nn0 2re reexpcl sylancr faccl nnred clt 4re eqeltri 4pos breqtrri ledivmul
    pm3.2i mp3an3 syl2anc mpbird eqbrtrd ) ABCZDAEFZDGFZDAHUAFZEFZDDEFZGFZAUBUC
    ZIVTWFWADJFZDDJFZGFZWBDDGFZJFZWBVTWFWDWIGFWJWEWIWDGWEKWILUDUEMVTWDWHWIGDNCZ
    VTWDWHUFODAUGPUHUIVTWANCZWMWLWJUFZWMVTWNODAUMPZOWNWMQWMDRUJQZWQWOUKUKWADDDU
    LUNUOVTWLWBHJFWBWKHWBJUPMVTWBVTWAWPUQURUIUSVTWFWGISZWDWEWGJFISZDBCVTWSVCDAU
    TPVTWDTCZWGTCZWRWSVAZVTDTCWCBCWTVDAVBDWCVEVFVTWGAVGVHWTXAWETCZRWEVISZQXBXCX
    DWEKTLVJVKRKWEVIVLLVMVOWDWGWEVNVPVQVRVS $.

  $( A lower bound for the factorial function.  (Contributed by NM,
     19-Dec-2005.) $)
  faclbnd3 $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                 ( M ^ N ) <_ ( ( M ^ M ) x. ( ! ` N ) ) ) $=
    ( cn0 wcel cn cc0 wceq wo cexp co cfv cle wbr wa c1 cr adantr sylan reexpcl
    cmul cfa elnn0 caddc nnre nnge1 cuz nn0z adantl uzid peano2uz 3syl leexp2ad
    cz nnnn0 faclbnd wi nn0re peano2nn0 syl2an mpancom faccl nnred remulcl letr
    syl3anc mp2and 0exp 0le1 syl6eqbr oveq2 0exp0e1 1le1 eqbrtri jaoi sylbi 1nn
    nnmulcl sylancr nnge1d 0re 1re mp3an2 syl2anc wb oveq1 oveq12 anidms syl6eq
    mpan oveq1d breq12d mpbird jaoian sylanb ) ACDZAEDZAFGZHBCDZABIJZAAIJZBUAKZ
    TJZLMZAUBWPWRXCWQWPWRNZWSABOUCJZIJZLMZXFXBLMZXCXDABXEWPAPDZWRAUDQWPOALMWRAU
    EQXDBUMDZBBUFKZDXEXKDWRXJWPBUGUHBUIBBUJUKULWPWOWRXHAUNZABUORWPWOWRXGXHNXCUP
    ZXLWOWRNWSPDZXFPDZXBPDZXMWOXIWRXNAUQZABSRWOXIXECDXOWRXQBURAXESUSWOWTPDZXAPD
    ZXPWRXIWOXRXQAASUTWRXABVAZVBZWTXAVCUSWSXFXBVDVERVFWQWRNXCFBIJZOXATJZLMZWRYD
    WQWRYBOLMZOYCLMZYDWRBEDZBFGZHYEBUBYGYEYHYGYBFOLBVGVHVIYHYBFFIJZOLBFFIVJYIOO
    LVKVLVMVIVNVOWRYCWROEDXAEDYCEDVPXTOXAVQVRVSWRYBPDZYCPDZYEYFNYDUPZFPDWRYJVTF
    BSWIWROPDZXSYKWAYAOXAVCVRYJYMYKYLWAYBOYCVDWBWCVFUHWQXCYDWDWRWQWSYBXBYCLAFBI
    WEWQWTOXATWQWTYIOWQWTYIGAFAFIWFWGVKWHWJWKQWLWMWN $.

  ${
    faclbnd4lem1.1 $e |- N e. NN $.
    faclbnd4lem1.2 $e |- K e. NN0 $.
    faclbnd4lem1.3 $e |- M e. NN0 $.
    $( Lemma for ~ faclbnd4 .  Prepare the induction step.  (Contributed by NM,
       20-Dec-2005.) $)
    faclbnd4lem1 $p |- ( ( ( ( N - 1 ) ^ K ) x. ( M ^ ( N - 1 ) ) ) <_
       ( ( ( 2 ^ ( K ^ 2 ) ) x. ( M ^ ( M + K ) ) ) x. ( ! ` ( N - 1 ) ) ) ->
                   ( ( N ^ ( K + 1 ) ) x. ( M ^ N ) ) <_ ( ( (
  2 ^ ( ( K + 1 ) ^ 2 ) ) x. ( M ^ ( M + ( K + 1 ) ) ) ) x. ( ! ` N ) ) ) $=
      ( c1 cle wbr co cexp cmul c2 cr wcel mp2an wceq cc0 wa remulcli clt caddc
      wo cmin cfa cfv nnrei 1re lelttric cn nnge1 ax-mp letri3i mpbiran2 pm3.2i
      0le1 cn0 2re nn0nnaddcl nnnn0i 2nn0 nn0expcli reexpcl nn0rei nn0ge0i exp0
      1nn cc 2cn cuz 1le2 nn0uz eleqtri leexp2a mp3an eqbrtrri elnn0 nncn exp1d
      nnuz mp3an13 syl eqbrtrrd breq1 mpbiri jaoi sylbi lemul12a mp2 oveq1 nnzi
      cz 1exp syl6eq oveq2 nn0cni exp1 oveq12d fveq2 fac1 oveq2d mulcli mulid1i
      recni breq12d sylbir adantr a1i faccl nn0mulcli nncni expm1t oveq12i mpbi
      expp1 elnnnn0 simpri mulassi eqtri nn0addcli w3a 3pm3.2i wb nnltp1le df-2
      breq1i bitr4i expubnd lemul1a mul4i oveq2i 3eqtr2i syl6breq ax-1cn eqtr3i
      mpan letrd eqtr4i nn0zi sqvali mp3an12 mul12i adantl mul32i facnn2 expadd
      sylancr addassi syl5eqbr ltp1i ltleii eqcomi adddii 3brtr4i eluz1i jaoian
      mpbir2an syl6breqr ) CGHIZGCUAIZUCZCGUDJZAKJZBUVBKJZLJZMAMKJZKJZBBAUBJZKJ
      ZLJZUVBUEUFZLJZHIZCAGUBJZKJZBCKJZLJZMUVNMKJZKJZBBUVNUBJZKJZLJZCUEUFZLJZHI
      ZCNOZGNOZUVACDUGZUHCGUIPUUSUVMUWEUUTUUSUWEUVMUUSCGQZUWEUWIUUSGCHIZCUJOZUW
      JDCUKULCGUWHUHUMUNUWIUWEGBLJZUWBHIZUWGRGHIZSZUVSNOZSZBNOZRBHIZSZUWANOZSZS
      GUVSHIZBUWAHIZSUWMUWQUXBUWOUWPUWGUWNUHUPUOMNOZUVRUQOUWPURUVNMUVNAUQOZGUJO
      ZUVNUJOZEVGAGUSPZUTZVAVBZMUVRVCPZUOUWTUXAUWRUWSBFVDZBFVEUOUWABUVTFUVTBUQO
      ZUXHUVTUJOFUXIBUVNUSPZUTVBZVDUOUOUXCUXDMRKJZGUVSHMVHOZUXQGQVIMVFULUXEGMHI
      ZUVRRVJUFZOUXQUVSHIURVKUVRUQUXTUXKVLVMMRUVRVNVOVPUXNUXDFUXNBUJOZBRQZUCUXD
      BVQUYAUXDUYBUYABGKJZBUWAHUYABBVRVSUYAGBHIZUYCUWAHIZBUKUWRUYDUVTGVJUFZOUYE
      UXMUVTUJUYFUXOVTVMBGUVTVNWAWBWCUYBUXDRUWAHIUWAUXPVEBRUWAHWDWEWFWGULUOGUVS
      BUWAWHWIUWIUVQUWLUWDUWBHUWIUVOGUVPBLUWIUVOGUVNKJZGCGUVNKWJUVNWLOUYGGQUVNU
      XIWKUVNWMULWNUWIUVPUYCBCGBKWOBVHOZUYCBQBFWPZBWQULWNWRUWIUWDUWBGLJUWBUWIUW
      CGUWBLUWIUWCGUEUFGCGUEWSWTWNXAUWBUVSUWAUVSUXLXDZUWAUXPWPZXBXCWNXEWEXFXGUU
      TUVMSZUVQUVSUWAUWCLJZLJZUWDHUYLUVQUVGMAKJZLJZUYMLJZUYNUVQNOUYLUVOUVPUWFUV
      NUQOUVONOUWHUXJCUVNVCPUWRCUQOZUVPNOUXMCDUTZBCVCPTXHUYQNOUYLUYPUYMUVGUYOUX
      EUVFUQOZUVGNOURAMEVAVBZMUVFVCPZUYOMAVAEVBZVDZTZUYMUWAUWCUXPUWCUYRUWCUJOUY
      SCXIULZUTXJZVDZTXHUYNNOUYLUVSUYMUXLVUHTXHUYLUVQCAKJZCUVDBLJZLJZLJZUYQHUVQ
      VUICLJZVUJLJVULUVOVUMUVPVUJLCVHOZUXFUVOVUMQCDXKZECAXOPUYHUWKUVPVUJQUYIDBC
      XLPXMVUICVUJVUIUWFUXFVUINOZUWHECAVCPZXDVUOVUJUVDBBUVBFVUNUVBUQOZUWKVUNVUR
      SDCXPXNXQZVBZFXJZWPZXRXSUYLVULUVLUYOCLJZBLJZLJZUYQHUYLVULUVEVVDLJZVVEVULN
      OUYLVUIVUKVUQVUKCVUJUYSVVAXJZVDZTXHVVFNOUYLUVEVVDUVCUVDUVBNOUXFUVCNOUVBVU
      SVDEUVBAVCPZUVDVUTVDTZVVDVVCBUYOCVUCUYSXJZFXJZVDZTXHVVENOUYLUVLVVDUVJUVKU
      VGUVIVUBUWRUVHUQOZUVINOUXMBAFEXTZBUVHVCPZTZUVKVURUVKUJOVUSUVBXIULZUGTZVVM
      TXHUUTVULVVFHIUVMUUTVULUYOUVCLJZVUKLJZVVFHUUTVUPVVTNOZVUKNOZRVUKHIZSZYAVU
      IVVTHIZVULVWAHIVUPVWBVWEVUQUYOUVCVUDVVITVWCVWDVVHVUKVVGVEUOYBUUTMCHIZVWFU
      UTGGUBJZCHIZVWGUXGUWKUUTVWIYCVGDGCYDPMVWHCHYEYFYGUWFUXFVWGVWFUWHECAYHUUAW
      GVUIVVTVUKYIUUGVWAVVCUVCVUJLJZLJVVCUVEBLJZLJVVFUYOUVCCVUJUYOVUCWPZUVCVVIX
      DZVUOVVBYJVWKVWJVVCLUVCUVDBVWMUVDVUTWPUYIXRYKVVCUVEBVVCVVKWPUVEVVJXDUYIUU
      BYLYMXGUVMVVFVVEHIZUUTUVENOZUVLNOZVVDNOZRVVDHIZSZYAUVMVWNVWOVWPVWSVVJVVSV
      WQVWRVVMVVDVVLVEUOYBUVEUVLVVDYIYPUUCYQVVEUVLUYOBLJZCLJZLJZUYPUWALJZUWCLJZ
      UYQVVDVXAUVLLUYOCBVWLVUOUYIUUDYKVXDUVJVWTLJZUVKCLJZLJVXBVXCVXEUWCVXFLUYPU
      VIBLJZLJVXCVXEVXGUWAUYPLBUVHGUBJZKJZVXGUWAUYHVVNVXIVXGQUYIVVOBUVHXOPVXHUV
      TBKBAGUYIAEWPZYNUUHYKYOYKUVGUYOUVIBUVGVUBXDVWLUVIVVPXDUYIYJYOUWKUWCVXFQDC
      UUEULXMUVJUVKVWTCUVJVVQXDUVKVVRXKUYOBVWLUYIXBVUOYJYRUYPUWAUWCUYPVUEXDUYKU
      WCVUFXKZXRYLYMUUIUYQUYNHIZUYLUYPNOZUWPUYMNOZRUYMHIZSZYAUYPUVSHIVXLVXMUWPV
      XPVUEUXLVXNVXOVUHUYMVUGVEUOYBMUVFAUBJZKJZUYPUVSHUXRUYTUXFVXRUYPQVIVUAEMUV
      FAUUFVOUXEUXSUVRVXQVJUFOZVXRUVSHIURVKVXSUVRWLOVXQUVRHIUVRUXKYSAUVNLJZUVNU
      VNLJZVXQUVRHANOZUVNNOZVYCRUVNHIZSZYAAUVNHIVXTVYAHIVYBVYCVYEAEVDZUVNUXIUGZ
      VYCVYDVYGUVNUXJVEUOYBAUVNVYFVYGAVYFUUJUUKAUVNUVNYIPVXQAALJZAGLJZUBJVXTUVF
      VYHAVYIUBAVXJYTVYIAAVXJXCUULXMAAGVXJVXJYNUUMYRUVNUVNUXIXKYTUUNVXQUVRVXQUV
      FAVUAEXTYSUUOUUQMVXQUVRVNVOVPUYPUVSUYMYIPXHYQUVSUWAUWCUYJUYKVXKXRUURUUPYP
      $.
  $}

  $( Lemma for ~ faclbnd4 .  Use the weak deduction theorem to convert the
     hypotheses of ~ faclbnd4lem1 to antecedents.  (Contributed by NM,
     23-Dec-2005.) $)
  faclbnd4lem2 $p |- ( ( M e. NN0 /\ K e. NN0 /\ N e. NN ) ->
           ( ( ( ( N - 1 ) ^ K ) x. ( M ^ ( N - 1 ) ) ) <_
       ( ( ( 2 ^ ( K ^ 2 ) ) x. ( M ^ ( M + K ) ) ) x. ( ! ` ( N - 1 ) ) ) ->
                   ( ( N ^ ( K + 1 ) ) x. ( M ^ N ) ) <_ ( ( (
  2 ^ ( ( K + 1 ) ^ 2 ) ) x. ( M ^ ( M + ( K + 1 ) ) ) ) x. ( ! ` N ) ) ) ) $=
    ( cn0 c1 co cexp cmul c2 caddc cfa cfv cle wbr oveq1 oveq2d oveq12d breq12d
    wi oveq1d wcel cn cmin cif wceq imbi12d oveq2 fveq2d fveq2 1nn faclbnd4lem1
    id elimel 1nn0 dedth3h ) BDUAZADUAZCUBUAZCEUCFZAGFZBUSGFZHFZIAIGFZGFZBBAJFZ
    GFZHFZUSKLZHFZMNZCAEJFZGFZBCGFZHFZIVKIGFZGFZBBVKJFZGFZHFZCKLZHFZMNZSUTUPBEU
    DZUSGFZHFZVDWCWCAJFZGFZHFZVHHFZMNZVLWCCGFZHFZVPWCWCVKJFZGFZHFZVTHFZMNZSUSUQ
    AEUDZGFZWDHFZIWRIGFZGFZWCWCWRJFZGFZHFZVHHFZMNZCWREJFZGFZWKHFZIXHIGFZGFZWCWC
    XHJFZGFZHFZVTHFZMNZSURCEUDZEUCFZWRGFZWCXSGFZHFZXEXSKLZHFZMNZXRXHGFZWCXRGFZH
    FZXOXRKLZHFZMNZSBACEEEBWCUEZVJWJWBWQYLVBWEVIWIMYLVAWDUTHBWCUSGOPYLVGWHVHHYL
    VFWGVDHYLBWCVEWFGYLULZBWCAJOQPTRYLVNWLWAWPMYLVMWKVLHBWCCGOPYLVSWOVTHYLVRWNV
    PHYLBWCVQWMGYMBWCVKJOQPTRUFAWRUEZWJXGWQXQYNWEWTWIXFMYNUTWSWDHAWRUSGUGTYNWHX
    EVHHYNVDXBWGXDHYNVCXAIGAWRIGOPYNWFXCWCGAWRWCJUGPQTRYNWLXJWPXPMYNVLXIWKHYNVK
    XHCGAWREJOZPTYNWOXOVTHYNVPXLWNXNHYNVOXKIGYNVKXHIGYOTPYNWMXMWCGYNVKXHWCJYOPP
    QTRUFCXRUEZXGYEXQYKYPWTYBXFYDMYPWSXTWDYAHYPUSXSWRGCXREUCOZTYPUSXSWCGYQPQYPV
    HYCXEHYPUSXSKYQUHPRYPXJYHXPYJMYPXIYFWKYGHCXRXHGOCXRWCGUGQYPVTYIXOHCXRKUIPRU
    FWRWCXRCEUBUJUMAEDUNUMBEDUNUMUKUO $.

  $( Lemma for ~ faclbnd4 .  The ` N = 0 ` case.  (Contributed by NM,
     23-Dec-2005.) $)
  faclbnd4lem3 $p |- ( ( ( M e. NN0
            /\ K e. NN0 ) /\ N = 0 ) -> ( ( N ^ K ) x. ( M ^ N ) )
       <_ ( ( ( 2 ^ ( K ^ 2 ) ) x. ( M ^ ( M + K ) ) ) x. ( ! ` N ) ) ) $=
    ( cn0 wcel wa cc0 wceq cexp co cmul c2 caddc cle c1 cn adantl syl6eq oveq2d
    wbr cfa cfv wo elnn0 0exp nnnn0 nn0sqcl nn0expcl sylancr nn0addcl nn0mulcld
    2nn0 syldan sylan2 nn0ge0d eqbrtrd 0nn0 sylancl nnexpcl mpdan id oveq1 00id
    1nn oveq12d 0exp0e1 syl6eqel jaoi sylbi nnmulcl nnge1d adantr wb oveq2 sq0i
    cc exp0 ax-mp breq12d mpbird jaodan sylan2b nn0cn exp0d mpan nn0cnd mulid1d
    2cn sylan9eq 3brtr4d fveq2 fac0 ) BDEZADEZFZCGHZFCAIJZBCIJZKJZLALIJZIJZBBAM
    JZIJZKJZCUAUBZKJZNTZGAIJZBGIJZKJZXDOKJZNTZWOXLWPWOXHXDXJXKNWNWMAPEZAGHZUCXH
    XDNTZAUDWMXMXOXNWMXMFZXHGXDNXMXHGHWMAUEQXPXDXMWMWNXDDEAUFWOXAXCWNXADEZWMWNL
    DEWTDEXQULAUGLWTUHUIQWMWNXBDEXCDEBAUJBXBUHUMUKZUNUOUPWMXNFXOOOBBGMJZIJZKJZN
    TZWMYBXNWMYAWMOPEXTPEZYAPEVDWMBPEZBGHZUCYCBUDYDYCYEYDXSDEZYCYDWMGDEZYFBUFUQ
    BGUJURBXSUSUTYEXTOPYEXTGGIJZOYEBGXSGIYEVAYEXSGGMJGBGGMVBVCRVEVFRVDVGVHVIOXT
    VJUIVKVLXNXOYBVMWMXNXHOXDYANXNXHYHOAGGIVNVFRXNXAOXCXTKXNXALGIJZOXNWTGLIAVOS
    LVPEYIOHWHLVQVRRXNXBXSBIAGBMVNSVEVSQVTWAWBWMWNXJXHOKJXHWMXIOXHKWMBBWCWDSWNX
    HWNXHYGWNXHDEUQGAUHWEWFWGWIWOXDWOXDXRWFWGWJVLWPXGXLVMWOWPWSXJXFXKNWPWQXHWRX
    IKCGAIVBCGBIVNVEWPXEOXDKWPXEGUAUBOCGUAWKWLRSVSQVT $.

  ${
    $d j m n M $.  $d j m n K $.  $d j n N $.
    $( Lemma for ~ faclbnd4 .  Prove the ` 0 < N ` case by induction on ` K ` .
       (Contributed by NM, 19-Dec-2005.) $)
    faclbnd4lem4 $p |- ( ( N e. NN /\ K e. NN0 /\ M e. NN0 ) ->
                   ( ( N ^ K ) x. ( M ^ N ) ) <_
              ( ( ( 2 ^ ( K ^ 2 ) ) x. ( M ^ ( M + K ) ) ) x. ( ! ` N ) ) ) $=
      ( vn cn wcel cexp co cmul c2 caddc cle wbr wa c1 wceq oveq2 oveq2d oveq1d
      cc0 vm vj cn0 cfa cfv cv wral wi oveq1 oveq12d fveq2 breq12d cbvralv cmin
      clt wo cr nnre 1re lelttric sylancl ancli andi sylib nnge1 letri3 biimpar
      wb anassrs mpidan 1m1e0 syl6eq syl faclbnd4lem3 sylan2 a1d 1nn nnsub mpan
      biimpa rspcv adantl jaodan faclbnd4lem2 3expa ralrimdva syl5bi expcom a2d
      syld nnnn0 faclbnd3 nncn exp0d cc nn0cn expcl syl2an mulid2d eqtrd oveq2i
      sq0 2cn exp0 ax-mp eqtri addid1d mpancom adantr 3brtr4d ralrimiva ralbidv
      a1i imbi2d nn0indALT imp rspcva 3impb ) CEFZAUCFZBUCFZCAGHZBCGHZIHZJAJGHZ
      GHZBBAKHZGHZIHZCUDUEZIHZLMZXTYANXSDUFZAGHZBYMGHZIHZYIYMUDUEZIHZLMZDEUGZYL
      XTYAYTYAYMUAUFZGHZYOIHZJUUAJGHZGHZBBUUAKHZGHZIHZYQIHZLMZDEUGZUHYAYMTGHZYO
      IHZJTJGHZGHZBBTKHZGHZIHZYQIHZLMZDEUGZUHYAYMUBUFZGHZYOIHZJUVBJGHZGHZBBUVBK
      HZGHZIHZYQIHZLMZDEUGZUHYAYMUVBOKHZGHZYOIHZJUVMJGHZGHZBBUVMKHZGHZIHZYQIHZL
      MZDEUGZUHYAYTUHUAUBAUVBUCFZYAUVLUWCYAUWDUVLUWCUHUVLUUAUVBGHZBUUAGHZIHZUVI
      UUAUDUEZIHZLMZUAEUGZYAUWDNZUWCUVKUWJDUAEYMUUAPZUVDUWGUVJUWILUWMUVCUWEYOUW
      FIYMUUAUVBGUIYMUUABGQUJUWMYQUWHUVIIYMUUAUDUKRULUMUWLUWKUWBDEUWLYMEFZNUWKY
      MOUNHZUVBGHZBUWOGHZIHZUVIUWOUDUEZIHZLMZUWBUWNUWLUWNYMOLMZNZUWNOYMUOMZNZUP
      ZUWKUXAUHZUWNUWNUXBUXDUPZNUXFUWNUXHUWNYMUQFZOUQFZUXHYMURZUSYMOUTVAVBUWNUX
      BUXDVCVDUWLUXCUXGUXEUWLUXCNUXAUWKUXCUWLUWOTPZUXAUXCYMOPZUXLUWNUXBOYMLMZUX
      MYMVEUWNUXBUXNUXMUWNUXMUXBUXNNZUWNUXIUXJUXMUXOVHUXKUSYMOVFVAVGVIVJUXMUWOO
      OUNHTYMOOUNUIVKVLVMUVBBUWOVNVOVPUXEUXGUWLUXEUWOEFZUXGUWNUXDUXPOEFUWNUXDUX
      PVHVQOYMVRVSVTUWJUXAUAUWOEUUAUWOPZUWGUWRUWIUWTLUXQUWEUWPUWFUWQIUUAUWOUVBG
      UIUUAUWOBGQUJUXQUWHUWSUVIIUUAUWOUDUKRULWAVMWBWCVOYAUWDUWNUXAUWBUHUVBBYMWD
      WEWJWFWGWHWIYAUUTDEYAUWNNZYOBBGHZYQIHZUUMUUSLUWNYAYMUCFZYOUXTLMYMWKZBYMWL
      VOUXRUUMOYOIHZYOUWNUUMUYCPYAUWNUULOYOIUWNYMYMWMWNSWBUXRYOYABWOFZUYAYOWOFU
      WNBWPZUYBBYMWQWRWSWTYAUUSUXTPUWNYAUURUXSYQIYAUUROUXSIHUXSYAUUOOUUQUXSIUUO
      OPYAUUOJTGHZOUUNTJGXBXAJWOFUYFOPXCJXDXEXFXMYAUUPBBGYABUYEXGRUJYAUXSUYDYAU
      XSWOFUYEBBWQXHWSWTSXIXJXKUUATPZUUKUVAYAUYGUUJUUTDEUYGUUCUUMUUIUUSLUYGUUBU
      ULYOIUUATYMGQSUYGUUHUURYQIUYGUUEUUOUUGUUQIUYGUUDUUNJGUUATJGUIRUYGUUFUUPBG
      UUATBKQRUJSULXLXNUUAUVBPZUUKUVLYAUYHUUJUVKDEUYHUUCUVDUUIUVJLUYHUUBUVCYOIU
      UAUVBYMGQSUYHUUHUVIYQIUYHUUEUVFUUGUVHIUYHUUDUVEJGUUAUVBJGUIRUYHUUFUVGBGUU
      AUVBBKQRUJSULXLXNUUAUVMPZUUKUWCYAUYIUUJUWBDEUYIUUCUVOUUIUWALUYIUUBUVNYOIU
      UAUVMYMGQSUYIUUHUVTYQIUYIUUEUVQUUGUVSIUYIUUDUVPJGUUAUVMJGUIRUYIUUFUVRBGUU
      AUVMBKQRUJSULXLXNUUAAPZUUKYTYAUYJUUJYSDEUYJUUCYPUUIYRLUYJUUBYNYOIUUAAYMGQ
      SUYJUUHYIYQIUYJUUEYFUUGYHIUYJUUDYEJGUUAAJGUIRUYJUUFYGBGUUAABKQRUJSULXLXNX
      OXPYSYLDCEYMCPZYPYDYRYKLUYKYNYBYOYCIYMCAGUIYMCBGQUJUYKYQYJYIIYMCUDUKRULXQ
      VOXR $.
  $}

  $( Variant of ~ faclbnd5 providing a non-strict lower bound.  (Contributed by
     NM, 23-Dec-2005.) $)
  faclbnd4 $p |- ( ( N e. NN0 /\ K e. NN0 /\ M e. NN0 ) ->
                 ( ( N ^ K ) x. ( M ^ N ) ) <_
            ( ( ( 2 ^ ( K ^ 2 ) ) x. ( M ^ ( M + K ) ) ) x. ( ! ` N ) ) ) $=
    ( cn0 wcel cexp co cmul c2 caddc cfa cfv cle wbr wa cn cc0 wceq wo 3com13
    elnn0 faclbnd4lem4 3expa faclbnd4lem3 jaodan sylan2b 3impa ) BDEZADEZCDEZCA
    FGBCFGHGIAIFGFGBBAJGFGHGCKLHGMNZUHUIUJUKUJUHUIOZCPEZCQRZSUKCUAULUMUKUNUHUIU
    MUKUMUIUHUKABCUBTUCABCUDUEUFUGT $.

  $( The factorial function grows faster than powers and exponentiations.  If
     we consider ` K ` and ` M ` to be constants, the right-hand side of the
     inequality is a constant times ` N ` -factorial.  (Contributed by NM,
     24-Dec-2005.) $)
  faclbnd5 $p |- ( ( N e. NN0 /\ K e. NN0 /\ M e. NN ) ->
                 ( ( N ^ K ) x. ( M ^ N ) ) <
      ( ( 2 x. ( ( 2 ^ ( K ^ 2 ) ) x. ( M ^ ( M + K ) ) ) ) x. ( ! ` N ) ) ) $=
    ( cn0 wcel cn cexp co cmul c2 clt wa cr reexpcl sylan ancoms remulcl syl2an
    wbr cc caddc cfa cfv nn0re nnre anandirs 2nn nn0sqcl nnexpcl nnnn0 nn0addcl
    sylancr sylan2 anabss7 nnmulcl anabss5 nnred faccl 2re cle faclbnd4 syl3an3
    3coml 3expa c1 1lt2 cc0 nngt0d ltmulgt12 mp3an2 syl2anc mpbii lelttrd nncnd
    wb wceq 2cn mulass mp3an1 breqtrrd 3impa 3comr ) ADEZBFEZCDEZCAGHZBCGHZIHZJ
    JAJGHZGHZBBAUAHZGHZIHZIHCUBUCZIHZKSZWCWDWEWPWCWDLZWELZWHJWMWNIHZIHZWOKWRWHW
    SWTWCWDWEWHMEZWCWELWFMEZWGMEZXAWDWELWEWCXBWECMEWCXBCUDCANOPWDBMEWEXCBUEBCNO
    WFWGQRUFWQWMMEWNMEWSMEZWEWQWMWCWDWMFEZWCWJFEZWLFEZXEWQWCJFEWIDEXFUGAUHJWIUI
    ULWCWDXGWQWDWKDEZXGWDWCBDEZXHBUJZXIWCXHBAUKPUMBWKUIUMUNWJWLUORUPZUQWEWNCURZ
    UQWMWNQRZWRJMEZXDWTMEUSXMJWSQULWCWDWEWHWSUTSZWEWCWDXOWDWEWCXIXOXJABCVAVBVCV
    DWRVEJKSZWSWTKSZVFWRXDVGWSKSZXPXQVOZXMWRWSWQXEWNFEWSFEWEXKXLWMWNUORVHXDXNXR
    XSUSWSJVIVJVKVLVMWQWMTEZWNTEZWOWTVPZWEWQWMXKVNWEWNXLVNJTEXTYAYBVQJWMWNVRVSR
    VTWAWB $.

  ${
    $d M m $.  $d N k m $.
    $( Geometric lower bound for the factorial function, where N is usually
       held constant.  (Contributed by Paul Chapman, 28-Dec-2007.) $)
    faclbnd6 $p |- ( ( N e. NN0 /\ M e. NN0 ) ->
             ( ( ! ` N ) x. ( ( N + 1 ) ^ M ) ) <_ ( ! ` ( N + M ) ) ) $=
      ( wcel cfa cfv c1 caddc co cexp cmul cle wbr cc0 wceq oveq2 oveq2d adantr
      wi wa cr vm vk cn0 cv fveq2d breq12d imbi2d faccl nnred leidd cc peano2cn
      weq nn0cn syl exp0d nncnd mulid1d eqtrd addid1d 3brtr4d peano2nn0 reexpcl
      nn0red sylan remulcld cn nnnn0 nn0ge0d simpr expge0d mulge0d jca nn0addcl
      nn0re readdcl syl2an jca31 nn0ge0 adantl 0re leadd2 mp3an1 mpbid eqbrtrrd
      syl2anc 1re leadd1 mp3an3 ax-1cn addass breqtrd lemul12a sylc expp1 expcl
      wb mulassd eqtr4d facp1 3eqtr3d ex expcom a2d nn0ind impcom ) AUCCBUCCZBD
      EZBFGHZAIHZJHZBAGHZDEZKLZXGXHXIUAUDZIHZJHZBXOGHZDEZKLZRXGXHXIMIHZJHZBMGHZ
      DEZKLZRXGXHXIUBUDZIHZJHZBYFGHZDEZKLZRXGXHXIYFFGHZIHZJHZBYLGHZDEZKLZRXGXNR
      UAUBAXOMNZXTYEXGYRXQYBXSYDKYRXPYAXHJXOMXIIOPYRXRYCDXOMBGOUEUFUGUAUBUMZXTY
      KXGYSXQYHXSYJKYSXPYGXHJXOYFXIIOPYSXRYIDXOYFBGOUEUFUGXOYLNZXTYQXGYTXQYNXSY
      PKYTXPYMXHJXOYLXIIOPYTXRYODXOYLBGOUEUFUGXOANZXTXNXGUUAXQXKXSXMKUUAXPXJXHJ
      XOAXIIOPUUAXRXLDXOABGOUEUFUGXGXHXHYBYDKXGXHXGXHBUHZUIZUJXGYBXHFJHXHXGYAFX
      HJXGXIXGBUKCZXIUKCZBUNZBULUOZUPPXGXHXGXHUUBUQZURUSXGYCBDXGBUUFUTZUEVAYFUC
      CZXGYKYQXGUUJYKYQRXGUUJSZYKYQUUKYKSZYHXIJHZYJYOJHZYNYPKUULYHTCZMYHKLZSZYJ
      TCZSXITCZMXIKLZSYOTCZSZSZYKXIYOKLZSUUMUUNKLUUKUVCYKUUKUUQUURUVBUUKUUOUUPU
      UKXHYGXGXHTCUUJUUCQZXGUUSUUJYGTCXGXIBVBZVDZXIYFVCVEZVFUUKXHYGUVEUVHXGMXHK
      LZUUJXGXHVGCZUVIUUBUVJXHXHVHVIUOQUUKXIYFXGUUSUUJUVGQZXGUUJVJXGUUTUUJXGXIU
      VFVIQZVKVLVMUUKYJUUKYIUCCZYJVGCBYFVNZYIUHUOUIUUKUUSUUTUVAUVKUVLXGBTCZYLTC
      UVAUUJBVOZUUJYLYFVBVDBYLVPVQVRVRQUULYKUVDUUKYKVJUUKUVDYKUUKXIYIFGHZYOKUUK
      BYIKLZXIUVQKLZUUKYCBYIKXGYCBNUUJUUIQUUKMYFKLZYCYIKLZUUJUVTXGYFVSVTUUKYFTC
      ZUVOUVTUWAWQZUUJUWBXGYFVOVTXGUVOUUJUVPQZMTCUWBUVOUWCWAMYFBWBWCWFWDWEUUKUV
      OYITCZUVRUVSWQZUWDUUKYIUVNVDUVOUWEFTCUWFWGBYIFWHWIWFWDXGUUDYFUKCZUVQYONZU
      UJUUFYFUNUUDUWGFUKCUWHWJBYFFWKWIVQZWLQVMYHYJXIYOWMWNUUKYNUUMNYKUUKYNXHYGX
      IJHZJHUUMUUKYMUWJXHJXGUUEUUJYMUWJNUUGXIYFWOVEPUUKXHYGXIXGXHUKCUUJUUHQXGUU
      EUUJYGUKCUUGXIYFWPVEXGUUEUUJUUGQWRWSQUUKYPUUNNYKUUKUVQDEZYJUVQJHZYPUUNUUK
      UVMUWKUWLNUVNYIWTUOUUKUVQYODUWIUEUUKUVQYOYJJUWIPXAQVAXBXCXDXEXF $.

    $( An upper bound for the factorial function.  (Contributed by Mario
       Carneiro, 15-Apr-2016.) $)
    facubnd $p |- ( N e. NN0 -> ( ! ` N ) <_ ( N ^ N ) ) $=
      ( vm vk cv cfa cfv cexp co cle wbr c1 cc0 wceq fveq2 oveq12d breq12d wcel
      id adantr cr caddc fac0 syl6eq 0exp0e1 1le1 cn0 wa cmul faccl nnred nn0re
      cn simpl reexpcld nn0p1nn simpr nn0ge0 lep1d syl32anc letrd clt wb nngt0d
      leexp1a lemul1 syl112anc mpbid facp1 nncnd expp1d 3brtr4d ex nn0ind ) BDZ
      EFZVNVNGHZIJKKIJCDZEFZVQVQGHZIJZVQKUAHZEFZWAWAGHZIJZAEFZAAGHZIJBCAVNLMZVO
      KVPKIWGVOLEFKVNLENUBUCWGVPLLGHKWGVNLVNLGWGRZWHOUDUCPVNVQMZVOVRVPVSIVNVQEN
      WIVNVQVNVQGWIRZWJOPVNWAMZVOWBVPWCIVNWAENWKVNWAVNWAGWKRZWLOPVNAMZVOWEVPWFI
      VNAENWMVNAVNAGWMRZWNOPUEVQUFQZVTWDWOVTUGZVRWAUHHZWAVQGHZWAUHHZWBWCIWPVRWR
      IJZWQWSIJZWPVRVSWRWPVRWOVRULQVTVQUISUJZWPVQVQWOVQTQZVTVQUKSZWOVTUMZUNWPWA
      VQWPWAWOWAULQVTVQUOSZUJZXEUNZWOVTUPWPXCWATQZWOLVQIJZVQWAIJVSWRIJXDXGXEWOX
      JVTVQUQSWPVQXDURVQWAVQVDUSUTWPVRTQWRTQXILWAVAJWTXAVBXBXHXGWPWAXFVCVRWRWAV
      EVFVGWOWBWQMVTVQVHSWPWAVQWPWAXFVIXEVJVKVLVM $.
  $}

  $( The product of two factorials is greater than or equal to the factorial of
     (the floor of) their average.  (Contributed by NM, 9-Dec-2005.) $)
  facavg $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
       ( ! ` ( |_ ` ( ( M + N ) / 2 ) ) ) <_ ( ( ! ` M ) x. ( ! ` N ) ) ) $=
    ( cn0 wcel wa co cle wbr cfv cfa cmul cr syl adantr letr syl3anc cc0 adantl
    wi c1 caddc c2 cdiv nn0readdcl rehalfcld flle reflcl nn0re nn0addcl nn0ge0d
    cfl mpand wb halfnneg2 mpbid flge0nn0 syl2anc simpl facwordi 3exp sylc wceq
    faccl nncnd mulid1d nnnn0d jca nnge1d 1re lemul2a mp3anl1 syl21anc eqbrtrrd
    nnred cn remulcl syl2an mpan2d 3syld simpr mulid2d lemul1a wo avgle mpjaod
    ) ACDZBCDZEZABUAFZUBUCFZAGHZWJUKIZJIZAJIZBJIZKFZGHZWJBGHZWHWKWLAGHZWMWNGHZW
    QWHWLWJGHZWKWSWHWJLDZXAWHWIABUDZUEZWJUFMZWHWLLDZXBALDZXAWKEWSSWHXBXFXDWJUGM
    ZXDWFXGWGAUHZNWLWJAOPULWHWLCDZWFWSWTSWHXBQWJGHZXJXDWHQWIGHZXKWHWIABUIUJWHWI
    LDXLXKUMXCWIUNMUOWJUPUQZWFWGURXJWFWSWTWLAUSUTVAWHWTWNWPGHZWQWHWNTKFZWNWPGWF
    XOWNVBWGWFWNWFWNAVCZVDVENWHWOLDZWNLDZQWNGHZEZTWOGHZXOWPGHZWGXQWFWGWOBVCZVNZ
    RZWFXTWGWFXRXSWFWNXPVNZWFWNWFWNXPVFUJVGNWGYAWFWGWOYCVHRTLDZXQXTYAYBVITWOWNV
    JVKVLVMWHWMLDZXRWPLDZWTXNEWQSWHWMWHXJWMVODXMWLVCMVNZWFXRWGYFNZWFXRXQYIWGYFY
    DWNWOVPVQZWMWNWPOPVRVSWHWRWLBGHZWMWOGHZWQWHXAWRYMXEWHXFXBBLDZXAWREYMSXHXDWG
    YOWFBUHZRWLWJBOPULWHXJWGYMYNSXMWFWGVTXJWGYMYNWLBUSUTVAWHYNWOWPGHZWQWHTWOKFZ
    WOWPGWGYRWOVBWFWGWOWGWOYCVDWARWHXRXQQWOGHZEZTWNGHZYRWPGHZYKWGYTWFWGXQYSYDWG
    WOWGWOYCVFUJVGRWFUUAWGWFWNXPVHNYGXRYTUUAUUBVITWNWOWBVKVLVMWHYHXQYIYNYQEWQSY
    JYEYLWMWOWPOPVRVSWFXGYOWKWRWCWGXIYPABWDVQWE $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The binomial coefficient operation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c _C $. $( Binomial coefficient operation. $)

  $( Extend class notation to include the binomial coefficient operation
     (combinatorial choose operation). $)
  cbc $a class _C $.

  ${
    $d n k $.
    $( Define the binomial coefficient operation.  For example,
       ` ( 5 _C 3 ) = 1 0 ` ( ~ ex-bc ).

       In the literature, this function is often written as a column vector of
       the two arguments, or with the arguments as subscripts before and after
       the letter "C". ` ( N _C K ) ` is read " ` N ` choose ` K ` ."
       Definition of binomial coefficient in [Gleason] p. 295.  As suggested by
       Gleason, we define it to be 0 when ` 0 <_ k <_ n ` does not hold.
       (Contributed by NM, 10-Jul-2005.) $)
    df-bc $a |- _C = ( n e. NN0 , k e. ZZ |-> if ( k e. ( 0 ... n ) ,
                ( ( ! ` n ) / ( ( ! ` ( n - k ) ) x. ( ! ` k ) ) ) , 0 ) ) $.
  $}

  ${
    $d n k N $.  $d n k K $.
    $( Value of the binomial coefficient, ` N ` choose ` K ` .  Definition of
       binomial coefficient in [Gleason] p. 295.  As suggested by Gleason, we
       define it to be 0 when ` 0 <_ K <_ N ` does not hold.  See ~ bcval2 for
       the value in the standard domain.  (Contributed by NM, 10-Jul-2005.)
       (Revised by Mario Carneiro, 7-Nov-2013.) $)
    bcval $p |- ( ( N e. NN0 /\ K e. ZZ ) -> ( N _C K ) = if ( K e. ( 0 ... N )
      , ( ( ! ` N ) / ( ( ! ` ( N - K ) ) x. ( ! ` K ) ) ) , 0 ) ) $=
      ( vn vk cv cc0 cfz co wcel cfa cfv cmin cmul cdiv wceq oveq2 fveq2 fveq2d
      cif oveq12d cn0 cz cbc eleq2d oveq1 oveq1d ifbieq1d eleq1 df-bc ovex c0ex
      oveq2d ifex ovmpt2 ) CDBAUAUBDEZFCEZGHZIZUPJKZUPUOLHZJKZUOJKZMHZNHZFSAFBG
      HZIZBJKZBALHZJKZAJKZMHZNHZFSUCUOVEIZVGBUOLHZJKZVBMHZNHZFSUPBOZURVMVDVQFVR
      UQVEUOUPBFGPUDVRUSVGVCVPNUPBJQVRVAVOVBMVRUTVNJUPBUOLUERUFTUGUOAOZVMVFVQVL
      FUOAVEUHVSVPVKVGNVSVOVIVBVJMVSVNVHJUOABLPRUOAJQTULUGDCUIVFVLFVGVKNUJUKUMU
      N $.

    $( Value of the binomial coefficient, ` N ` choose ` K ` , in its standard
       domain.  (Contributed by NM, 9-Jun-2005.)  (Revised by Mario Carneiro,
       7-Nov-2013.) $)
    bcval2 $p |- ( K e. ( 0 ... N ) -> ( N _C K ) =
                    ( ( ! ` N ) / ( ( ! ` ( N - K ) ) x. ( ! ` K ) ) ) ) $=
      ( cc0 cfz co wcel cbc cfa cfv cmin cmul cdiv cif cz wceq elfz3nn0 elfzelz
      cn0 bcval syl2anc iftrue eqtrd ) ACBDEFZBAGEZUCBHIBAJEHIAHIKELEZCMZUEUCBR
      FANFUDUFOABPACBQABSTUCUECUAUB $.

    $( Value of the binomial coefficient, ` N ` choose ` K ` , outside of its
       standard domain.  Remark in [Gleason] p. 295.  (Contributed by NM,
       14-Jul-2005.)  (Revised by Mario Carneiro, 8-Nov-2013.) $)
    bcval3 $p |- ( ( N e. NN0 /\ K e. ZZ /\ -. K e. ( 0 ... N ) ) ->
          ( N _C K ) = 0 ) $=
      ( cn0 wcel cz cc0 cfz co wn w3a cbc cfa cfv cmin cmul cdiv cif wceq bcval
      3adant3 iffalse 3ad2ant3 eqtrd ) BCDZAEDZAFBGHDZIZJBAKHZUFBLMBANHLMALMOHP
      HZFQZFUDUEUHUJRUGABSTUGUDUJFRUEUFUIFUAUBUC $.

    $( Value of the binomial coefficient, ` N ` choose ` K ` , outside of its
       standard domain.  Remark in [Gleason] p. 295.  (Contributed by NM,
       14-Jul-2005.)  (Revised by Mario Carneiro, 7-Nov-2013.) $)
    bcval4 $p |- ( ( N e. NN0 /\ K e. ZZ /\ ( K < 0 \/ N < K ) ) ->
          ( N _C K ) = 0 ) $=
      ( cn0 wcel cz cc0 clt wbr wo cfz co wn cbc wa cle cr lenlt mpbid adantl
      wb wceq elfzle1 elfzelz zred sylancr elfzle2 nn0re syl2anr ioran sylanbrc
      wi 0re ex adantr con2d 3impia bcval3 syld3an3 ) BCDZAEDZAFGHZBAGHZIZAFBJK
      DZLZBAMKFUAUSUTVCVEUSUTNVDVCUSVDVCLZUKUTUSVDVFUSVDNZVALZVBLZVFVDVHUSVDFAO
      HZVHAFBUBVDFPDAPDZVJVHTULVDAAFBUCUDZFAQUERSVGABOHZVIVDVMUSAFBUFSVDVKBPDVM
      VITUSVLBUGABQUHRVAVBUIUJUMUNUOUPABUQUR $.
  $}

  $( Closure of the binomial coefficient in the positive reals.  (This is
     mostly a lemma before we have ~ bccl2 .)  (Contributed by Mario Carneiro,
     10-Mar-2014.) $)
  bcrpcl $p |- ( K e. ( 0 ... N ) -> ( N _C K ) e. RR+ ) $=
    ( cc0 cfz co wcel cbc cfa cfv cmin cmul cdiv crp bcval2 cn cn0 faccl syl2an
    syl2anc nnrp elfz3nn0 syl fznn0sub elfznn0 nnmulcl rpdivcl eqeltrd ) ACBDEF
    ZBAGEBHIZBAJEZHIZAHIZKEZLEZMABNUHUIOFZUMOFZUNMFZUHBPFUOABUABQUBUHUJPFZAPFZU
    PACBUCABUDURUKOFULOFUPUSUJQAQUKULUERSUOUIMFUMMFUQUPUITUMTUIUMUFRSUG $.

  $( "Complementing" its second argument doesn't change a binary coefficient.
     (Contributed by NM, 21-Jun-2005.)  (Revised by Mario Carneiro,
     5-Mar-2014.) $)
  bccmpl $p |- ( ( N e. NN0 /\ K e. ZZ ) -> ( N _C K ) =
                    ( N _C ( N - K ) ) ) $=
    ( cn0 wcel cz cc0 co cbc cmin wceq cfa cfv cmul cdiv bcval2 fznn0sub2 cc cn
    syl eqtr4d cfz elfznn0 faccl nncnd mulcomd elfz3nn0 elfzelz nn0cn zcn nncan
    wa syl2an syl2anc fveq2d oveq1d oveq2d adantl w3a bcval3 simp1 zsubcl sylan
    wn nn0z 3adant3 eleq1d syl5ib con3d 3impia syl3anc 3expa pm2.61dan ) BCDZAE
    DZUKZAFBUAGZDZBAHGZBBAIGZHGZJZVQWAVOVQVRBKLZVSKLZAKLZMGZNGZVTABOVQVTWBBVSIG
    ZKLZWCMGZNGZWFVQVSVPDZVTWJJABPZVSBOSVQWEWIWBNVQWEWDWCMGWIVQWCWDVQWKWCQDWLWK
    WCWKVSCDWCRDVSBUBVSUCSUDSVQWDVQACDWDRDABUBAUCSUDUEVQWHWDWCMVQWGAKVQVMVNWGAJ
    ZABUFAFBUGVMBQDAQDWMVNBUHAUIBAUJULZUMUNUOTUPTTUQVMVNVQVCZWAVMVNWOURZVRFVTAB
    USWPVMVSEDZWKVCZVTFJVMVNWOUTVMVNWQWOVMBEDVNWQBVDBAVAVBVEVMVNWOWRVOWKVQWKWGV
    PDVOVQVSBPVOWGAVPWNVFVGVHVIVSBUSVJTVKVL $.

  $( ` N ` choose 0 is 1.  Remark in [Gleason] p. 296.  (Contributed by NM,
     17-Jun-2005.)  (Revised by Mario Carneiro, 8-Nov-2013.) $)
  bcn0 $p |- ( N e. NN0 -> ( N _C 0 ) = 1 ) $=
    ( cn0 wcel cc0 cbc co cfa cfv cmin cmul cdiv c1 cfz wceq 0elfz bcval2 nn0cn
    syl subid1d eqtrd fveq2d oveq12 sylancl faccl mulid1d oveq2d facne0 dividd
    fac0 nncnd ) ABCZADEFZAGHZADIFZGHZDGHZJFZKFZLUKDDAMFCULURNAODAPRUKURUMUMKFL
    UKUQUMUMKUKUQUMLJFZUMUKUOUMNUPLNUQUSNUKUNAGUKAAQSUAUIUOUMUPLJUBUCUKUMUKUMAU
    DUJZUETUFUKUMUTAUGUHTT $.

  $( The binomial coefficient " 0 choose ` K ` " is 0 for a positive integer K.
     Note that ` ( 0 _C 0 ) = 1 ` (see ~ bcn0 ).  (Contributed by Alexander van
     der Vekens, 1-Jan-2018.) $)
  bc0k $p |- ( K e. NN -> ( 0 _C K ) = 0 ) $=
    ( cn wcel cc0 cn0 cz clt wbr wo cbc co wceq 0nn0 a1i nnz nngt0 olcd syl3anc
    bcval4 ) ABCZDECZAFCADGHZDAGHZIDAJKDLUATMNAOTUCUBAPQADSR $.

  $( ` N ` choose ` N ` is 1.  Remark in [Gleason] p. 296.  (Contributed by NM,
     17-Jun-2005.)  (Revised by Mario Carneiro, 8-Nov-2013.) $)
  bcnn $p |- ( N e. NN0 -> ( N _C N ) = 1 ) $=
    ( cn0 wcel cc0 co cmin c1 cz wceq 0z bccmpl mpan2 bcn0 nn0cn subid1d oveq2d
    cbc 3eqtr3rd ) ABCZADQEZAADFEZQEZGAAQESDHCTUBIJDAKLAMSUAAAQSAANOPR $.

  $( Binomial coefficient: ` N ` choose ` 1 ` .  (Contributed by NM,
     21-Jun-2005.)  (Revised by Mario Carneiro, 8-Nov-2013.) $)
  bcn1 $p |- ( N e. NN0 -> ( N _C 1 ) = N ) $=
    ( cn0 wcel cn cc0 wceq wo c1 cbc co elnn0 cfa cfv cmin cmul cuz syl clt wbr
    cdiv cfz 1eluzge0 elnnuz biimpi elfzuzb sylanbrc bcval2 facnn2 fac1 nnm1nn0
    a1i oveq2i faccl mulid1d syl5eq oveq12d nncn nnne0d divcan3d 3eqtrd cz 0nn0
    nncnd 1z 0lt1 olci bcval4 mp3an wb oveq1 eqeq12 mpancom mpbiri jaoi sylbi )
    ABCADCZAEFZGAHIJZAFZAKVPVSVQVPVRALMZAHNJZLMZHLMZOJZTJZWBAOJZWBTJAVPHEAUAJCZ
    VRWEFVPHEPMCZAHPMCZWGWHVPUBUKVPWIAUCUDHEAUEUFHAUGQVPVTWFWDWBTAUHVPWDWBHOJWB
    WCHWBOUIULVPWBVPWBVPWABCWBDCAUJWAUMQZVCZUNUOUPVPAWBAUQWKVPWBWJURUSUTVQVSEHI
    JZEFZEBCHVACHERSZEHRSZGWMVBVDWOWNVEVFHEVGVHVRWLFVQVSWMVIAEHIVJVRWLAEVKVLVMV
    NVO $.

  $( Binomial coefficient: ` N + 1 ` choose ` N ` .  (Contributed by NM,
     20-Jun-2005.)  (Revised by Mario Carneiro, 8-Nov-2013.) $)
  bcnp1n $p |- ( N e. NN0 -> ( ( N + 1 ) _C N ) = ( N + 1 ) ) $=
    ( cn0 wcel c1 caddc co cbc cmin cz wceq peano2nn0 nn0z bccmpl syl2anc nn0cn
    cc ax-1cn pncan2 sylancl oveq2d bcn1 syl 3eqtrd ) ABCZADEFZAGFZUEUEAHFZGFZU
    EDGFZUEUDUEBCZAICUFUHJAKZALAUEMNUDUGDUEGUDAPCDPCUGDJAOQADRSTUDUJUIUEJUKUEUA
    UBUC $.

  $( The proportion of one binomial coefficient to another with ` K ` decreased
     by 1.  (Contributed by Mario Carneiro, 10-Mar-2014.) $)
  bcm1k $p |- ( K e. ( 1 ... N ) -> ( N _C K ) =
                ( ( N _C ( K - 1 ) ) x. ( ( N - ( K - 1 ) ) / K ) ) ) $=
    ( c1 cfz co wcel cfa cfv cmin cmul cdiv caddc cc cc0 cn0 cn faccl syl nncnd
    wceq cbc wne cuz elfzuz2 nnuz syl6eleqr nnnn0d fznn0sub nn0p1nn elfznn 3syl
    nnm1nn0 nnmulcld nncn nnne0 jca nnne0d divmuldiv syl22anc elfzel2 zcnd 1cnd
    wa subsubd fveq2d oveq1d oveq2d oveq12d facp1 eqcomd facnn2 mulassd 3eqtr4d
    mul32d mulcomd divcan5d 3eqtrrd 0p1e1 oveq1i cz wss 0z ax-mp eqsstr3i sseli
    fzp1ss bcval2 ax-1cn npcan sylancl peano2zm uzid peano2uz eqeltrrd elfzmlbm
    4syl fzss2 sseldd ) ACBDEZFZBGHZBAIEZGHZAGHZJEZKEZXABACIEZIEZGHZXGGHZJEZKEZ
    XHAKEZJEZBAUAEZBXGUAEZXMJEWTXNXAXBCLEZJEZXEXQJEZKEZXQXAJEZXQXEJEZKEXFWTXAXQ
    GHZXJJEZKEZXQAKEZJEZXRYDAJEZKEZXNXTWTXAMFXQMFYDMFZYDNUBZVCZAMFZANUBZVCYGYIT
    WTXAWTBOFXAPFWTBWTBCUCHPACBUDUEUFUGBQRSZWTXQWTXBOFZXQPFACBUHZXBUIRZSZWTYDPF
    ZYLWTYCXJWTXQOFYCPFWTXQYRUGXQQRZWTAPFZXGOFXJPFABUJZAULXGQUKZUMYTYJYKYDUNYDU
    OUPRWTYMYNWTAUUCSZWTAUUCUQUPXAXQYDAURUSWTXLYEXMYFJWTXKYDXAKWTXIYCXJJWTXHXQG
    WTBACWTBACBUTZVAZUUEWTVBVDZVEVFVGWTXHXQAKUUHVFVHWTXSYHXRKWTXCXQJEZXDJEYCXJA
    JEZJEXSYHWTUUIYCXDUUJJWTYCUUIWTYPYCUUITYQXBVIRVJWTUUBXDUUJTUUCAVKRVHWTXCXDX
    QWTXCWTYPXCPFYQXBQRZSWTXDWTAOFXDPFWTAUUCUGAQRZSYSVNWTYCXJAWTYCUUASWTXJUUDSU
    UEVLVMVGVMWTXRYAXSYBKWTXAXQYOYSVOWTXEXQWTXEWTXCXDUUKUULUMZSZYSVOVHWTXAXEXQY
    OUUNYSWTXEUUMUQWTXQYRUQVPVQWTANBDEZFXOXFTWSUUOAWSNCLEZBDEZUUOUUPCBDVRVSNVTF
    UUQUUOWAWBNBWFWCWDWEABWGRWTXPXLXMJWTXGUUOFXPXLTWTNBCIEZDEZUUOXGWTBUURUCHZFU
    USUUOWAWTUURCLEZBUUTWTBMFCMFUVABTUUGWHBCWIWJWTBVTFUURVTFUURUUTFUVAUUTFUUFBW
    KUURWLUURUURWMWPWNUURNBWQRACBWOWRXGBWGRVFVM $.

  $( The proportion of one binomial coefficient to another with ` N ` increased
     by 1.  (Contributed by Mario Carneiro, 10-Mar-2014.) $)
  bcp1n $p |- ( K e. ( 0 ... N ) -> ( ( N + 1 ) _C K ) =
                ( ( N _C K ) x. ( ( N + 1 ) / ( ( N + 1 ) - K ) ) ) ) $=
    ( cc0 cfz co wcel c1 caddc cfa cfv cmin cmul cdiv cbc wceq syl faccld nncnd
    cn cc cn0 elfz3nn0 facp1 fznn0sub nn0cnd 1cnd elfznn0 addsubd fveq2d oveq2d
    3eqtr4d oveq1d nn0p1nn eqeltrd mul32d eqtrd oveq12d wne nnmulcld nncn nnne0
    wa jca nnne0d divmuldiv syl22anc eqtr4d fzelp1 bcval2 ) ACBDEFZBGHEZIJZVKAK
    EZIJZAIJZLEZMEZBIJZBAKEZIJZVOLEZMEZVKVMMEZLEZVKANEZBANEZWCLEVJVQVRVKLEZWAVM
    LEZMEZWDVJVLWGVPWHMVJBUAFZVLWGOABUBZBUCPVJVPVTVMLEZVOLEWHVJVNWLVOLVJVSGHEZI
    JZVTWMLEZVNWLVJVSUAFZWNWOOACBUDZVSUCPVJVMWMIVJBGAVJBWKUEVJUFVJAABUGZUEUHZUI
    VJVMWMVTLWSUJUKULVJVTVMVOVJVTVJVSWQQZRVJVMVJVMWMSWSVJWPWMSFWQVSUMPUNZRZVJVO
    VJAWRQZRUOUPUQVJVRTFVKTFWATFZWACURZVBZVMTFZVMCURZVBWDWIOVJVRVJBWKQRVJVKVJWJ
    VKSFWKBUMPRVJWASFZXFVJVTVOWTXCUSXIXDXEWAUTWAVAVCPVJXGXHXBVJVMXAVDVCVRVKWAVM
    VEVFVGVJACVKDEFWEVQOACBVHAVKVIPVJWFWBWCLABVIULUK $.

  $( The proportion of one binomial coefficient to another with ` N ` and ` K `
     increased by 1.  (Contributed by Mario Carneiro, 16-Jan-2015.) $)
  bcp1nk $p |- ( K e. ( 0 ... N ) -> ( ( N + 1 ) _C ( K + 1 ) ) =
                ( ( N _C K ) x. ( ( N + 1 ) / ( K + 1 ) ) ) ) $=
    ( cc0 cfz co wcel c1 caddc cbc cmin cdiv cmul wceq cz wb syl cc oveq2d zred
    eqtrd elfzel1 elfzel2 elfzelz fzaddel syl22anc 1e0p1 oveq1i syl6eleqr bcm1k
    1zzd ibi zcnd ax-1cn pncan sylancl bcp1n oveq1d oveq12d bcrpcl peano2zd clt
    rpcnd wbr elfzle2 ltp1d lelttrd znnsub syl2anc mpbid nndivred recnd elfznn0
    cn nnred cn0 nn0p1nn mulassd nncnd nnne0d dmdcan2d ) ACBDEFZBGHEZAGHEZIEZWB
    WCGJEZIEZWBWEJEZWCKEZLEZBAIEZWBWCKEZLEZWAWCGWBDEZFWDWIMWAWCCGHEZWBDEZWMWAWC
    WOFZWACNFBNFANFZGNFWAWPOACBUAACBUBZACBUCZWAUJAGCBUDUEUKGWNWBDUFUGUHWCWBUIPW
    AWIWJWBWBAJEZKEZLEZWTWCKEZLEZWLWAWFXBWHXCLWAWFWBAIEXBWAWEAWBIWAAQFGQFWEAMWA
    AWSULUMAGUNUOZRABUPTWAWGWTWCKWAWEAWBJXERUQURWAXDWJXAXCLEZLEWLWAWJXAXCWAWJAB
    USVBWAXAWAWBWTWAWBWABWRUTZSZWAAWBVAVCZWTVMFZWAABWBWAAWSSWABWRSZXHACBVDWABXK
    VEVFWAWQWBNFXIXJOWSXGAWBVGVHVIZVJVKWAXCWAWTWCWAWTXLVNWAAVOFWCVMFABVLAVPPZVJ
    VKVQWAXFWKWJLWAWBWTWCWAWBXGULWAWTXLVRWAWCXMVRWAWTXLVSWAWCXMVSVTRTTT $.

  ${
    $d k x y K $.  $d k x y N $.
    $( Write out the top and bottom parts of the binomial coefficient
       ` ( N _C K ) = ( N x. ( N - 1 ) x. ... x. ( ( N - K ) + 1 ) ) / K ! `
       explicitly.  In this form, it is valid even for ` N < K ` , although it
       is no longer valid for nonpositive ` K ` .  (Contributed by Mario
       Carneiro, 22-May-2014.) $)
    bcval5 $p |- ( ( N e. NN0 /\ K e. NN ) -> ( N _C K ) =
                 ( ( seq ( ( N - K ) + 1 ) ( x. , _I ) ` N ) / ( ! ` K ) ) ) $=
      ( cn0 wcel cn wa cc0 co cmul cid c1 cfv cfa cdiv adantl cc wbr syl2anc wb
      wceq vk vx vy cfz cbc cmin caddc cseq bcval2 mulcl w3a mulass cuz cle clt
      cv simplr elfzuz3 eluznn adantrr cr crp nnre nnrp ltsubrp syl2an nnzd nnz
      cz ad2antlr zsubcld zltp1le peano2zd eluz mpbird simprr nnuz syl6eleq fvi
      mpbid elfzelz zcnd eqeltrd seqsplit facnn syl oveq1d 3eqtr4d simpll faccl
      expr nncn 3syl mulid2d oveq2d eqtr3d fveq2 fac0 syl6eq oveq1 0p1e1 fveq1d
      seqeq1d oveq12d eqeq2d syl5ibrcom fznn0sub elnn0 sylib mpjaod eqid zsubcl
      wo nn0z adantr eluzelcn seqf ffvelrnd elfznn0 nncnd nnne0d divcan5d nnnn0
      3eqtrd wn nnne0 div0d mul02 mul01 simpr nn0uz ad2antrr elfz5 nn0re bitr4d
      subge0d mtbid zred 0re sylancl ltnle 0z nn0ge0 0zd elfz syl3anc mpbir2and
      0cn mp1i seqz bcval3 syl3an2 3expa 3eqtr4rd pm2.61dan ) BCDZAEDZFZAGBUDHD
      ZBAUEHZBIJBAUFHZKUGHZUHZLZAMLZNHZTUURUUSFZUUTBMLZUVAMLZUVEIHZNHZUVIUVDIHZ
      UVJNHUVFUUSUUTUVKTUURABUIOUVGUVHUVLUVJNUVGUVAEDZUVHUVLTZUVAGTZUURUUSUVMUV
      NUURUUSUVMFZFZBIJKUHZLZUVAUVRLZUVDIHUVHUVLUVQUAUBUCIPJKUVABUAUPZPDZUBUPZP
      DZFZUWAUWCIHZPDZUVQUWAUWCUJZOUWBUWDUCUPZPDUKUWFUWIIHUWAUWCUWIIHIHTUVQUWAU
      WCUWIULOUVQBUVBUMLZDZUVBBUNQZUVQUVABUOQZUWLUVQBEDZUUQUWMUURUUSUWNUVMUVGUU
      QBAUMLDZUWNUUPUUQUUSUQZUUSUWOUURAGBUROBAUSRZUTZUUPUUQUVPUQUWNBVADZAVBDUWM
      UUQBVCAVDBAVEVFZRUVQUVAVIDZBVIDZUWMUWLSZUVQBAUVQBUWRVGZUUQAVIDZUUPUVPAVHZ
      VJVKZUXDUVABVLZRVTUVQUVBVIDZUXBUWKUWLSZUVQUVAUXGVMUXDUVBBVNZRVOUVQUVAEKUM
      LUURUUSUVMVPZVQVRUWAKBUDHZDZUWAJLZPDZUVQUXNUXOUWAPUWAUXMVSUXNUWAUWAKBWAWB
      WCOWDUVQUWNUVHUVSTZUWRBWEZWFUVQUVIUVTUVDIUVQUVMUVIUVTTUXLUVAWEWFWGWHWKUVG
      UVNUVOUVHKUVSIHZTUVGKUVHIHUVHUXSUVGUVHUVGUUPUVHEDUVHPDUUPUUQUUSWIBWJUVHWL
      WMWNUVGUVHUVSKIUVGUWNUXQUWQUXRWFWOWPUVOUVLUXSUVHUVOUVIKUVDUVSIUVOUVIGMLKU
      VAGMWQWRWSUVOBUVCUVRUVOUVBKIJUVOUVBGKUGHKUVAGKUGWTXAWSXCXBXDXEXFUVGUVACDZ
      UVMUVOXMUUSUXTUURAGBXGOZUVAXHXIXJWGUVGUVDUVEUVIUVGUWJPBUVCUVGUAUBIPJUVBUW
      JUWJXKUURUXIUUSUURUVAUUPUXBUXEUXAUUQBXNZUXFBAXLVFZVMZXOZUWAUWJDZUXPUVGUYF
      UXOUWAPUWAUWJVSUVBUWAXPWCOUWEUWGUVGUWHOXQUVGUWKUWLUVGUWMUWLUVGUWNUUQUWMUW
      QUWPUWTRUVGUXAUXBUXCUURUXAUUSUYCXOUVGBUWQVGZUXHRVTUVGUXIUXBUXJUYEUYGUXKRV
      OXRUVGUVEUVGACDZUVEEDZUUSUYHUURABXSOAWJZWFZXTUVGUVIUVGUXTUVIEDUYAUVAWJWFZ
      XTUVGUVEUYKYAUVGUVIUYLYAYBYDUURUUSYEZFZGUVENHZGUVFUUTUYNUYHUYIUYOGTUUQUYH
      UUPUYMAYCVJZUYJUYIUVEUVEWLUVEYFYGWMUYNUVDGUVENUYNUAUBIPJGUVBBCGUWEUWGUYNU
      WHOUWAUVBBUDHZDZUXPUYNUYRUXOUWAPUWAUYQVSUYRUWAUWAUVBBWAWBWCOUWBGUWAIHGTUY
      NUWAYHOUWBUWAGIHGTUYNUWAYIOUYNGUYQDZUVBGUNQZGBUNQZUYNUVAGUOQZUYTUYNVUBGUV
      AUNQZYEZUYNUUSVUCUURUYMYJUYNUUSABUNQZVUCUYNAGUMLZDUXBUUSVUESUYNACVUFUYPYK
      VRUUPUXBUUQUYMUYBYLZAGBYMRUYNBAUUPUWSUUQUYMBYNYLUUQAVADUUPUYMAVCVJYPYOYQU
      YNUVAVADGVADVUBVUDSUYNUVAUURUXAUYMUYCXOZYRYSUVAGUUAYTVOUYNUXAGVIDZVUBUYTS
      VUHUUBUVAGVLYTVTUUPVUAUUQUYMBUUCYLUYNVUIUXIUXBUYSUYTVUAFSUYNUUDUURUXIUYMU
      YDXOVUGGUVBBUUEUUFUUGUUPUUQUYMWIGPDGJLGTUYNUUHGPVSUUIUUJWGUUPUUQUYMUUTGTZ
      UUQUUPUXEUYMVUJUXFABUUKUULUUMUUNUUO $.
  $}

  $( Binomial coefficient: ` N ` choose ` 2 ` .  (Contributed by Mario
     Carneiro, 22-May-2014.) $)
  bcn2 $p |- ( N e. NN0 -> ( N _C 2 ) = ( ( N x. ( N - 1 ) ) / 2 ) ) $=
    ( cn0 wcel c2 co cmul cid cmin c1 caddc cseq cfv cdiv wceq cc ax-1cn syl cz
    cuz eqtrd cbc cfa cn 2nn bcval5 mpan2 2m1e1 oveq2i nn0cn 2cn npncan mp3an23
    syl5eqr seqeq1d fveq1d peano2zm npcan sylancl fveq2d eleqtrrd seqm1 syl2anc
    nn0z uzid seq1 fvi oveq12d subcl mulcomd fac2 a1i ) ABCZADUAEZAFGADHEZIJEZK
    ZLZDUBLZMEZAAIHEZFEZDMEVLDUCCVMVSNUDDAUEUFVLVQWAVRDMVLVQAFGVTKZLZWAVLAVPWBV
    LVOVTFGVLVOVNDIHEZJEZVTWDIVNJUGUHVLAOCZWEVTNZAUIZWFDOCIOCZWGUJPADIUKULQUMUN
    UOVLWCVTAFEZWAVLWCVTWBLZAGLZFEZWJVLVTRCZAVTIJEZSLZCWCWMNVLARCZWNAVCZAUPQZVL
    AASLZWPVLWQAWTCWRAVDQVLWOASVLWFWIWOANWHPAIUQURUSUTFGVTAVAVBVLWKVTWLAFVLWKVT
    GLZVTVLWNWKXANWSFGVTVEQVLWNXAVTNWSVTRVFQTABVFVGTVLVTAVLWFWIVTOCWHPAIVHURWHV
    ITTVRDNVLVJVKVGT $.

  $( Compute the binomial coefficient of ` ( N + 1 ) ` over ` ( N - 1 ) `
     (Contributed by Scott Fenton, 11-May-2014.)  (Revised by Mario Carneiro,
     22-May-2014.) $)
  bcp1m1 $p |- ( N e. NN0 -> ( ( N + 1 ) _C ( N - 1 ) ) =
                 ( ( ( N + 1 ) x. N ) / 2 ) ) $=
    ( cn0 wcel c1 caddc co cmin cbc cmul c2 cdiv cz wceq peano2nn0 peano2zm syl
    nn0z oveq2d cc eqtrd bccmpl syl2anc nn0cn 1cnd pnncand syl6eqr ax-1cn pncan
    df-2 bcn2 sylancl oveq1d ) ABCZADEFZADGFZHFZUNUNUOGFZHFZUNAIFZJKFZUMUNBCZUO
    LCZUPURMANZUMALCVBAQAOPUOUNUAUBUMURUNJHFZUTUMUQJUNHUMUQDDEFJUMADDAUCZUMUDZV
    FUEUIUFRUMVDUNUNDGFZIFZJKFZUTUMVAVDVIMVCUNUJPUMVHUSJKUMVGAUNIUMASCDSCVGAMVE
    UGADUHUKRULTTT $.

  $( Pascal's rule for the binomial coefficient, generalized to all integers
     ` K ` .  Equation 2 of [Gleason] p. 295.  (Contributed by NM,
     13-Jul-2005.)  (Revised by Mario Carneiro, 10-Mar-2014.) $)
  bcpasc $p |- ( ( N e. NN0 /\ K e. ZZ ) ->
                ( ( N _C K ) + ( N _C ( K - 1 ) ) ) = ( ( N + 1 ) _C K ) ) $=
    ( cn0 wcel cz wa cc0 c1 caddc co cfz cbc cmin wceq wo syl oveq12d cdiv cmul
    oveq2d wb peano2nn0 cuz cfv elfzp12 nn0uz eleq2s 1p0e1 clt wbr 0z 1z zsubcl
    bcn0 mp2an cr ltm1 ax-mp orci bcval4 mp3an23 3eqtr4a oveq2 oveq1 syl5ibrcom
    eqeq12d simpr 0p1e1 oveq1i syl6eleq cn nn0p1nn nnuz fzm1 biimpa sylan nn0cn
    0re cc ax-1cn pncan sylancl eleq2d wss 1eluzge0 fzss1 sseli bcp1n crp rpcnd
    bcrpcl elfzuz2 syl6eleqr peano2nnd nncnd 1cnd elfzelz zcnd addsubd fznn0sub
    eqeltrd nnne0d div12d nnrpd rpdivcld mulcomd npcand adddid 3eqtr2d divcan1d
    eqtrd elfznn divdiv2d bcm1k oveq1d fzelp1 nnzd elfzm1b syl2anc mpbid rpne0d
    subsub3d eleqtrd divmul3d mpbird 3eqtr3rd 3eqtrrd nn0re ltp1d olcd mpd3an23
    div23d sylan9eqr bcnn adantr jaodan syldan wn bcval3 syl3anc ex jaod sylbid
    imp adantlr 00id con3i 3expa sylan2 simpll simplr peano2zm id nn0zd syl2anr
    fzp1ss eqsstr3i syl6bir sylbird con3dimp pm2.61dan ) BCDZAEDZFZAGBHIJZKJZDZ
    BALJZBAHMJZLJZIJZUVEALJZNZUVBUVGUVMUVCUVBUVGUVMUVBUVGAGNZAGHIJZUVEKJZDZOZUV
    MUVBUVECDZUVGUVRUAZBUBZUVTUVEGUCUDZCAGUVEUEUFUGPUVBUVNUVMUVQUVBUVMUVNBGLJZB
    GHMJZLJZIJZUVEGLJZNUVBHGIJHUWFUWGUHUVBUWCHUWEGIBUNUVBUWDEDZUWDGUIUJZBUWDUIU
    JZOUWEGNGEDZHEDUWHUKULGHUMUOUWIUWJGUPDUWIVRGUQURUSUWDBUTVAQUVBUVSUWGHNUWAUV
    EUNPVBUVNUVKUWFUVLUWGUVNUVHUWCUVJUWEIAGBLVCUVNUVIUWDBLAGHMVDTQAGUVELVCVFVEU
    VBUVQUVMUVBUVQAHUVEKJZDZUVMUVBUVQFAUVPUWLUVBUVQVGUVOHUVEKVHVIZVJUVBUWMAHUVE
    HMJZKJZDZAUVENZOZUVMUVBUVEHUCUDZDZUWMUWSUVBUVEVKUWTBVLZVMVJUXAUWMUWSAHUVEVN
    VOVPUVBUWQUVMUWRUVBUWQFAHBKJZDZUVMUVBUWQUXDUVBUWPUXCAUVBUWOBHKUVBBVSDZHVSDZ
    UWOBNZBVQZVTBHWAZWBZTWCVOUXDUVLUVHUVEUVEAMJZRJSJZUVHUXKRJZUXKSJZUXMASJZIJZU
    VKUXDAGBKJZDZUVLUXLNUXCUXQAHUWBDUXCUXQWDWEHGBWFURWGZABWHPUXDUXLUXMUVESJZUXM
    UXKAIJZSJUXPUXDUXLUVEUXMSJUXTUXDUVHUVEUXKUXDUVHUXDUXRUVHWIDUXSABWKPZWJZUXDU
    VEUXDBUXDBUWTVKAHBWLVMWMZWNZWOZUXDUXKUXDUXKBAMJZHIJZVKUXDBHAUXDBUYDWOZUXDWP
    ZUXDAAHBWQZWRZWSUXDUYGCDUYHVKDAHBWTUYGVLPXAZWOZUXDUXKUYMXBZXCUXDUVEUXMUYFUX
    DUXMUXDUVHUXKUYBUXDUXKUYMXDZXEWJZXFXKUXDUYAUVEUXMSUXDUVEAUYFUYLXGTUXDUXMUXK
    AUYQUYNUYLXHXIUXDUXNUVHUXOUVJIUXDUVHUXKUYCUYNUYOXJUXDUVHUXKARJZRJZUVHASJUXK
    RJUVJUXOUXDUVHUXKAUYCUYNUYLUYOUXDAABXLZXBXMUXDUYSUVJNUVHUVJUYRSJZNUXDUVHUVJ
    BUVIMJZARJZSJVUAABXNUXDVUCUYRUVJSUXDVUBUXKARUXDBAHUYIUYLUYJYBXOTXKUXDUVHUVJ
    UYRUYCUXDUVJUXDUVIUXQDZUVJWIDUXDUVIGUWOKJZUXQUXDUWMUVIVUEDZAHBXPUXDUVCUVEED
    ZUWMVUFUAZUYKUXDUVEUYEXQAUVEXRZXSXTUXDUWOBGKUXDUXEUXFUXGUYIVTUXIWBTYCUVIBWK
    PWJUXDUYRUXDUXKAUYPUXDAUYTXDXEZWJUXDUYRVUJYAYDYEUXDUVHAUXKUYCUYLUYNUYOYLYFQ
    YGPUVBUWRFZUVOHUVKUVLVHVUKUVHGUVJHIUWRUVBUVHBUVELJZGAUVEBLVCUVBVUGUVEGUIUJZ
    BUVEUIUJZOVULGNUVBUVEUXBXQUVBVUNVUMUVBBBYHYIYJUVEBUTYKYMVUKUVJBBLJZHVUKUVIB
    BLUWRUVBUVIUWOBAUVEHMVDUXJYMTUVBVUOHNUWRBYNYOXKQUWRUVBUVLUVEUVELJZHAUVEUVEL
    VCUVBUVSVUPHNUWAUVEYNPYMVBYPYQYQUUAUUBUUCUUDUUEUVDUVGYRZFZGGIJGUVKUVLUUFVUR
    UVHGUVJGIVUQUVDUXRYRZUVHGNZUXRUVGAGBXPUUGUVBUVCVUSVUTABYSUUHUUIVURUVBUVIEDZ
    VUDYRUVJGNUVBUVCVUQUUJZVURUVCVVAUVBUVCVUQUUKZAUULPUVDVUDUVGUVDVUDVUFUVGUVDV
    UEUXQUVIUVDUWOBGKUVDUXEUXFUXGUVBUXEUVCUXHYOVTUXIWBTWCUVDVUFUWMUVGUVCUVCVUGV
    UHUVBUVCUUMUVBUVEUWAUUNVUIUUOUWLUVFAUWLUVPUVFUWNUWKUVPUVFWDUKGUVEUUPURUUQWG
    UURUUSUUTUVIBYSYTQVURUVSUVCVUQUVLGNVURUVBUVSVVBUWAPVVCUVDVUQVGAUVEYSYTVBUVA
    $.

  ${
    $d k m n N $.  $d k m n K $.
    $( A binomial coefficient, in its extended domain, is a nonnegative
       integer.  (Contributed by NM, 10-Jul-2005.)  (Revised by Mario Carneiro,
       9-Nov-2013.) $)
    bccl $p |- ( ( N e. NN0 /\ K e. ZZ ) -> ( N _C K ) e. NN0 ) $=
      ( vk vm cn0 wcel cv cbc co cz wral cc0 c1 wceq oveq1 eleq1d ralbidv oveq2
      wa 0nn0 vn caddc cfz elfz1eq adantl bcn0 1nn0 eqeltri syl6eqel syl bcval3
      ax-mp wn mp3an1 pm2.61dan rgen cbvralv cmin bcpasc adantlr rspccva sylan2
      peano2zm nn0addcld adantll eqeltrrd ralrimiva ex syl5bi nn0ind sylan ) BE
      FBCGZHIZEFZCJKZAJFBAHIZEFZDGZVLHIZEFZCJKLVLHIZEFZCJKUAGZVLHIZEFZCJKZWCMUB
      IZVLHIZEFZCJKZVODUABVRLNZVTWBCJWKVSWAEVRLVLHOPQVRWCNZVTWECJWLVSWDEVRWCVLH
      OPQVRWGNZVTWICJWMVSWHEVRWGVLHOPQVRBNZVTVNCJWNVSVMEVRBVLHOPQWBCJVLJFZVLLLU
      CIFZWBWOWPSVLLNZWBWPWQWOVLLUDUEWQWALLHIZEVLLLHRWRMELEFZWRMNTLUFULUGUHUIUJ
      WOWPUMZSWALEWSWOWTWALNTVLLUKUNTUIUOUPWFWCVRHIZEFZDJKZWCEFZWJWEXBCDJVLVRNW
      DXAEVLVRWCHRPUQXDXCWJXDXCSZWICJXEWOSWDWCVLMURIZHIZUBIZWHEXDWOXHWHNXCVLWCU
      SUTXCWOXHEFXDXCWOSWDXGXBWEDVLJVRVLNXAWDEVRVLWCHRPVAWOXCXFJFXGEFZVLVCXBXID
      XFJVRXFNXAXGEVRXFWCHRPVAVBVDVEVFVGVHVIVJVNVQCAJVLANVMVPEVLABHRPVAVK $.

    $( A binomial coefficient, in its standard domain, is a positive integer.
       (Contributed by NM, 3-Jan-2006.)  (Revised by Mario Carneiro,
       10-Mar-2014.) $)
    bccl2 $p |- ( K e. ( 0 ... N ) -> ( N _C K ) e. NN ) $=
      ( cc0 cfz co wcel cbc cn0 clt wbr cn elfz3nn0 elfzelz bccl syl2anc bcrpcl
      cz rpgt0d elnnnn0b sylanbrc ) ACBDEFZBAGEZHFZCUBIJUBKFUABHFAQFUCABLACBMAB
      NOUAUBABPRUBST $.
  $}

  $( Compute the binomial coefficient " ` N ` choose 2 " from " ` ( N - 1 ) `
     choose 2 ":  (N-1) + ( (N-1) 2 ) = ( N 2 ).  (Contributed by Alexander van
     der Vekens, 7-Jan-2018.) $)
  bcn2m1 $p |- ( N e. NN
                 -> ( ( N - 1 ) + ( ( N - 1 ) _C 2 ) ) = ( N _C 2 ) ) $=
    ( cn wcel c1 cmin co c2 cbc caddc nnm1nn0 nn0cnd cz 2z bccl sylancl addcomd
    cn0 wceq oveq2d eqtrd bcn1 eqcomd syl 1e2m1 a1i bcpasc npcand oveq1d 3eqtrd
    nncn 1cnd ) ABCZADEFZUMGHFZIFUNUMIFUNUMGDEFZHFZIFZAGHFZULUMUNULUMAJZKULUNUL
    UMQCZGLCZUNQCUSMGUMNOKPULUMUPUNIULUMUMDHFZUPULUTUMVBRUSUTVBUMUMUAUBUCULDUOU
    MHDUORULUDUESTSULUQUMDIFZGHFZURULUTVAUQVDRUSMGUMUFOULVCAGHULADAUJULUKUGUHTU
    I $.

  $( Compute the binomial coefficient " ` ( N + 1 ) ` choose 2 " from " ` N `
     choose 2 ":  N + ( N 2 ) = ( (N+1) 2 ).  (Contributed by Alexander van der
     Vekens, 8-Jan-2018.) $)
  bcn2p1 $p |- ( N e. NN0 -> ( N + ( N _C 2 ) ) = ( ( N + 1 ) _C 2 ) ) $=
    ( cn0 wcel c2 cbc co caddc c1 cmin nn0cn cz 2z bccl mpan2 addcomd bcn1 wceq
    nn0cnd 1e2m1 oveq2d a1i eqtr3d bcpasc 3eqtrd ) ABCZAADEFZGFUFAGFUFADHIFZEFZ
    GFZAHGFDEFZUEAUFAJUEUFUEDKCZUFBCLDAMNROUEAUHUFGUEAHEFAUHAPUEHUGAEHUGQUESUAT
    UBTUEUKUIUJQLDAUCNUD $.

  $( The number of permutations of ` N - R ` objects from a collection of ` N `
     objects is a positive integer.  (Contributed by Jason Orendorff,
     24-Jan-2007.) $)
  permnn $p |- ( R e. ( 0 ... N ) -> ( ( ! ` N ) / ( ! ` R ) ) e. NN ) $=
    ( cc0 cfz co wcel cfa cfv cn cmin cmul cdiv elfznn0 faccl fznn0sub nnmulcld
    cc cn0 syl nncnd elfz3nn0 wne facne0 divcan4d eqeltrd bcval2 bccl2 eqeltrrd
    cbc nndivtr syl32anc ) ACBDEFZAGHZIFZBAJEZGHZUMKEZIFBGHZQFZUQUMLEZIFURUQLEZ
    IFURUMLEIFULARFZUNABMZANSZULUPUMULUORFUPIFACBOUONSZVDPULBRFZUSABUAVFURBNTSU
    LUTUPIULUPUMULUPVETULUMVDTULVBUMCUBVCAUCSUDVEUEULBAUIEVAIABUFABUGUHUMUQURUJ
    UK $.

  $( The binomial coefficent of ` ( N - 1 ) ` is ` N ` .  (Contributed by Scott
     Fenton, 16-May-2014.) $)
  bcnm1 $p |- ( N e. NN0 -> ( N _C ( N - 1 ) ) = N ) $=
    ( cn0 wcel c1 cbc co cmin cz wceq 1z bccmpl mpan2 bcn1 eqtr3d ) ABCZADEFZAA
    DGFEFZAODHCPQIJDAKLAMN $.

  $( The value of four choose three.  (Contributed by Scott Fenton,
     11-Jun-2016.) $)
  4bc3eq4 $p |- ( 4 _C 3 ) = 4 $=
    ( c4 c1 cmin co cbc 4cn ax-1cn 3cn 3p1e4 addcomli subaddrii oveq2i cn0 wcel
    c3 wceq 4nn0 bcnm1 ax-mp eqtr3i ) AABCDZEDZAOEDAUAOAEABOFGHOBAHGIJKLAMNUBAP
    QARST $.

  $( The value of four choose two.  (Contributed by Scott Fenton,
     9-Jan-2017.) $)
  4bc2eq6 $p |- ( 4 _C 2 ) = 6 $=
    ( c4 c2 co cfa cfv cmul cdiv c6 cc0 wcel wceq cz cle wbr ax-mp c3 3nn0 df-4
    fveq2i eqtri cbc cmin cfz w3a wa 0z 3pm3.2i 0le2 2re 4re 2lt4 ltleii pm3.2i
    4z 2z elfz4 mp2an bcval2 caddc cn0 facp1 oveq2i 3eqtr4i 4cn 2p2e4 subaddrii
    c1 2cn fac2 oveq12i 2t2e4 cn faccl nncni 4ne0 divcan4i fac3 ) ABUACZADEZABU
    BCZDEZBDEZFCZGCZHBIAUCCJZVRWDKILJZALJZBLJZUDIBMNZBAMNZUEWEWFWGWHUFUNUOUGWIW
    JUHBAUIUJUKULUMBIAUPUQBAUROWDPDEZAFCZAGCZHVSWLWCAGPVGUSCZDEZWKWNFCZVSWLPUTJ
    ZWOWPKQPVAOAWNDRSAWNWKFRVBVCWCBBFCAWABWBBFWAWBBVTBDABBVDVHVHVEVFSVITVIVJVKT
    VJWMWKHWKAWKWQWKVLJQPVMOVNVDVOVPVQTTT $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The ` # ` (set size) function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c # $.

  $( Extend the definition of a class to include the set size function. $)
  chash $a class # $.

  $( Define the set size function ` # ` , which gives the cardinality of a
     finite set as a member of ` NN0 ` , and assigns all infinite sets the
     value ` +oo ` .  For example, ` ( # `` { 0 , 1 , 2 } ) = 3 `
     ( ~ ex-hash ).  (Contributed by Paul Chapman, 22-Jun-2011.) $)
  df-hash $a |- # = ( ( ( rec (
                 ( x e. _V |-> ( x + 1 ) ) , 0 ) |` _om ) o. card ) u.
                 ( ( _V \ Fin ) X. { +oo } ) ) $.

  ${
    $d A x y $.  $d K y $.
    hashgval.1 $e |- G = ( rec ( ( x e. _V |-> ( x + 1 ) ) , 0 ) |` _om ) $.
    ${
      hashkf.2 $e |- K = ( G o. card ) $.
      $( The finite part of the size function maps all finite sets to their
         cardinality, as members of ` NN0 ` .  (Contributed by Mario Carneiro,
         13-Sep-2013.)  (Revised by Mario Carneiro, 26-Dec-2014.) $)
      hashkf $p |- K : Fin --> NN0 $=
        ( vy cfn cn0 wf wfn cfv wcel ccrd wfun cdm wceq com ax-mp cen wbr cv c1
        wral ccom cvv caddc co cmpt cc0 crdg cres frfnom fneq1i mpbir con0 wrex
        fnfun cardf2 ffun funco mp2an ccnv cima dmco fndm imaeq2i wa funfn mpbi
        wb elpreima id cardid2 ensymd breq2 rspcev syl2anr isfi sylibr ficardom
        cab finnum impbii bitri eqriv 3eqtri df-fn mpbir2an fveq1i fvco sylancr
        jca syl5eq wf1o hashgf1o f1of ffvelrni syl eqeltrd rgen ffnfv ) GHCICGJ
        ZFUAZCKZHLZFGUCXBBMUDZGJZXGXFNZXFOZGPBNZMNZXHBQJZXJXLAUEAUAZUBUFUGUHZUI
        UJQUKZQJUIXNULQBXODUMUNZQBUQRXMXCSTAUOUPFWAZUOMIXKFAURXQUOMUSRZBMUTVAXI
        MVBZBOZVCXSQVCZGBMVDXTQXSXLXTQPXPQBVERVFFYAGXCYALZXCMOZLZXCMKZQLZVGZXCG
        LZMYCJZYBYGVJXKYIXRMVHVIYCXCQMVKRYGYHYGXCXMSTZAQUPZYHYFYFXCYESTZYKYDYFV
        LYDYEXCXCVMVNYJYLAYEQXMYEXCSVOVPVQAXCVRVSYHYDYFXCWBZXCVTZWLWCWDWEWFXFGW
        GWHGCXFEUMUNXEFGYHXDYEBKZHYHXDXCXFKZYOXCCXFEWIYHXKYDYPYOPXRYMXCBMWJWKWM
        YHYFYOHLYNQHYEBQHBWNQHBIABDWOQHBWPRWQWRWSWTFGHCXAWH $.
    $}

    $( The value of the ` # ` function in terms of the mapping ` G ` from
       ` _om ` to ` NN0 ` .  The proof avoids the use of ~ ax-ac .
       (Contributed by Paul Chapman, 22-Jun-2011.)  (Revised by Mario Carneiro,
       26-Dec-2014.) $)
    hashgval $p |- ( A e. Fin -> ( G ` ( card ` A ) ) = ( # ` A ) ) $=
      ( vy cfn wcel chash cres cfv ccrd ccom cvv cv cun c0 wf wceq eqtri con0
      c1 caddc cmpt cc0 crdg com cdif cpnf csn cxp resundir cn0 wfn eqid hashkf
      co ffn fnresdm mp2b cin incom disjdif pnfex fconst fnresdisj mpbi uneq12i
      wb un0 df-hash reseq1i coeq1i 3eqtr4i fveq1i wfun cdm cen wbr wrex cardf2
      cab ffun ax-mp finnum fvco sylancr syl5eq fvres eqtr3d ) BFGZBHFIZJZBKJCJ
      ZBHJWJWLBCKLZJZWMBWKWNAMANZUAUBUPUCUDUEUFIZKLZMFUGZUHUIZUJZOZFIZWRWKWNXCW
      RFIZXAFIZOZWRWRXAFUKXFWRPOWRXDWRXEPFULWRQWRFUMXDWRRAWQWRWQUNWRUNUOFULWRUQ
      FWRURUSWSFUTZPRZXEPRZXGFWSUTPWSFVAFMVBSWSWTXAQXAWSUMXHXIVHWSUHVCVDWSWTXAU
      QWSFXAVEUSVFVGWRVISSHXBFAVJVKCWQKDVLVMVNWJKVOZBKVPGWOWMRENWPVQVRETVSAWAZT
      KQXJAEVTXKTKWBWCBWDBCKWEWFWGBFHWHWI $.

    $( ` ``' G ` maps the size function's value to ` card ` .  (Contributed by
       Paul Chapman, 22-Jun-2011.)  (Revised by Mario Carneiro,
       15-Sep-2013.) $)
    hashginv $p |- ( A e. Fin -> ( `' G ` ( # ` A ) ) = ( card ` A ) ) $=
      ( cfn wcel ccrd cfv com chash wceq ccnv ficardom hashgval cn0 wi hashgf1o
      wf1o f1ocnvfv mpan sylc ) BEFBGHZIFZUBCHBJHZKZUDCLHUBKZBMABCDNIOCRUCUEUFP
      ACDQIOUBUDCSTUA $.
  $}

  ${
    $d A x $.
    $( The value of the ` # ` function on an infinite set.  (Contributed by
       Mario Carneiro, 13-Jul-2014.) $)
    hashinf $p |- ( ( A e. V /\ -. A e. Fin ) -> ( # ` A ) = +oo ) $=
      ( vx wcel cvv cfn chash cfv cpnf wceq cres cun c0 cn0 wfn eqid mp2b pnfex
      wf ffn wn elex wa cdif eldif csn cxp cv caddc cmpt cc0 crdg com ccrd ccom
      c1 co df-hash reseq1i resundir disjdif wb hashkf fnresdisj fconst fnresdm
      cin mpbi uneq12i uncom 3eqtri fveq1i fvres fvconst2 3eqtr3a sylbir sylan
      un0 ) ABDAEDZAFDUAZAGHZIJZABUBVSVTUCAEFUDZDZWBAEFUEWDAGWCKZHAWCIUFZUGZHWA
      IAWEWGWECECUHUPUIUQUJUKULUMKZUNUOZWGLZWCKWIWCKZWGWCKZLZWGGWJWCCURUSWIWGWC
      UTWMMWGLWGMLWGWKMWLWGFWCVGMJZWKMJZFEVAFNWISWIFOWNWOVBCWHWIWHPWIPVCFNWITFW
      CWIVDQVHWCWFWGSWGWCOWLWGJWCIRVEWCWFWGTWCWGVFQVIMWGVJWGVRVKVKVLAWCGVMWCIAR
      VNVOVPVQ $.

    $( If ` A ` has size bounded by an integer ` B ` , then ` A ` is finite.
       (Contributed by Mario Carneiro, 14-Jun-2015.) $)
    hashbnd $p |- ( ( A e. V /\ B e. NN0 /\ ( # ` A ) <_ B ) -> A e. Fin ) $=
      ( wcel cn0 chash cfv cle wbr cfn wa wn wi cpnf cr nn0re clt ltpnf cxr wb
      rexr pnfxr xrltnle sylancl mpbid hashinf breq1d notbid syl5ibrcom expdimp
      syl ancoms con4d 3impia ) ACDZBEDZAFGZBHIZAJDZUOUPKUSURUPUOUSLZURLZMUPUOU
      TVAUPVAUOUTKZNBHIZLZUPBODZVDBPVEBNQIZVDBRVEBSDNSDVFVDTBUAUBBNUCUDUEUKVBUR
      VCVBUQNBHACUFUGUHUIUJULUMUN $.
  $}

  $( The size function is a function into the extended nonnegative integers.
     (Contributed by Mario Carneiro, 13-Sep-2013.)  (Revised by AV,
     10-Dec-2020.) $)
  hashfxnn0 $p |- # : _V --> NN0* $=
    ( vx cvv cxnn0 chash wf cfn cdif cun cn0 cpnf csn cv c1 caddc cmpt cc0 crdg
    co wceq eqid com cres ccrd cxp wa cin c0 hashkf pnfex fconst pm3.2i disjdif
    ccom fun mp2an wb df-hash df-xnn0 feq123 mp3an unvdif feq2i bitr4i mpbir )
    BCDEZFBFGZHZIJKZHZABALMNROPQUAUBZUCUMZVFVHUDZHZEZFIVKEZVFVHVLEZUEFVFUFUGSVN
    VOVPAVJVKVJTVKTUHVFJUIUJUKFBULFVFIVHVKVLUNUOVEBVIVMEZVNDVMSBBSCVISVEVQUPAUQ
    BTURBCBVIDVMUSUTVGBVIVMFVAVBVCVD $.

  $( The size function maps all finite sets to their cardinality, as members of
     ` NN0 ` , and infinite sets to ` +oo ` .  TODO-AV: mark as OBSOLETE and
     replace it by ~ hashfxnn0 ?  (Contributed by Mario Carneiro, 13-Sep-2013.)
     (Revised by Mario Carneiro, 13-Jul-2014.)  (Proof shortened by AV,
     24-Oct-2021.) $)
  hashf $p |- # : _V --> ( NN0 u. { +oo } ) $=
    ( cvv cn0 cpnf csn cun chash wf cxnn0 hashfxnn0 df-xnn0 eqcomi feq23i mpbir
    eqid ) ABCDEZFGAHFGIAOAHFANHOJKLM $.

  $( Obsolete version of ~ hashf as of 24-Oct-2021.  The size function maps all
     finite sets to their cardinality, as members of ` NN0 ` , and infinite
     sets to ` +oo ` .  (Contributed by Mario Carneiro, 13-Sep-2013.)  (Revised
     by Mario Carneiro, 13-Jul-2014.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  hashfOLD $p |- # : _V --> ( NN0 u. { +oo } ) $=
    ( vx cvv cn0 cpnf csn cun chash wf cfn cdif cv caddc cmpt cc0 crdg com cres
    c1 co eqid ccrd ccom cxp wa cin wceq hashkf pnfex fconst pm3.2i disjdif fun
    c0 mp2an df-hash feq1i unvdif feq2i bitr4i mpbir ) BCDEZFZGHZIBIJZFZVBABAKR
    LSMNOPQZUAUBZVDVAUCZFZHZICVGHZVDVAVHHZUDIVDUEUMUFVJVKVLAVFVGVFTVGTUGVDDUHUI
    UJIBUKIVDCVAVGVHULUNVCBVBVIHVJBVBGVIAUOUPVEBVBVIIUQURUSUT $.

  $( The value of the hash function for a set is an extended nonnegative
     integer.  (Contributed by Alexander van der Vekens, 6-Dec-2017.)  (Revised
     by AV, 10-Dec-2020.) $)
  hashxnn0 $p |- ( M e. V -> ( # ` M ) e. NN0* ) $=
    ( wcel cvv cxnn0 chash wf hashfxnn0 a1i elex ffvelrnd ) ABCZDEAFDEFGLHIABJK
    $.

  $( Restriction of the domain of the size function.  (Contributed by Thierry
     Arnoux, 31-Jan-2017.) $)
  hashresfn $p |- ( # |` A ) Fn A $=
    ( chash cvv cin cres wfn cn0 cpnf csn cun hashf ffn fnresin2 mp2b wceq inv1
    wf wb reseq2i fneq12 mp2an mpbi ) BACDZEZUCFZBAEZAFZCGHIJZBQBCFUEKCUHBLCABM
    NUDUFOUCAOUEUGRUCABAPZSUIUCAUDUFTUAUB $.

  $( Restriction of the domain of the size function.  (Contributed by Thierry
     Arnoux, 12-Jan-2017.) $)
  dmhashres $p |- dom ( # |` A ) = A $=
    ( chash cres cdm cin cvv dmres cn0 cpnf csn hashf fdmi ineq2i inv1 3eqtri
    cun ) BACDABDZEAFEABAGQFAFHIJPBKLMANO $.

  $( The value of the hash function for a set is either a nonnegative integer
     or positive infinity.  TODO-AV: mark as OBSOLETE and replace it by
     ~ hashxnn0 ?  (Contributed by Alexander van der Vekens, 6-Dec-2017.) $)
  hashnn0pnf $p |- ( M e. V -> ( ( # ` M ) e. NN0 \/ ( # ` M ) = +oo ) ) $=
    ( wcel chash cfv cn0 cpnf csn cun wceq wo cvv hashf a1i elex ffvelrnd elsni
    wf elun orim2i sylbi syl ) ABCZADEZFGHZIZCZUDFCZUDGJZKZUCLUFADLUFDRUCMNABOP
    UGUHUDUECZKUJUDFUESUKUIUHUDGQTUAUB $.

  $( If the size of a set is not a nonnegative integer, it is greater than or
     equal to any nonnegative integer.  (Contributed by Alexander van der
     Vekens, 6-Dec-2017.) $)
  hashnnn0genn0 $p |- ( ( M e. V /\ ( # ` M ) e/ NN0 /\ N e. NN0 )
                        -> N <_ ( # ` M ) ) $=
    ( wcel chash cfv cn0 wnel w3a cle wbr cpnf wceq wi wn df-nel sylbi 3ad2ant2
    pm2.21 cxr clt cr nn0re ltpnf syl rexrd pnfxr xrltle sylancl mpd syl5ibrcom
    breq2 3ad2ant3 wo hashnn0pnf 3ad2ant1 mpjaod ) ACDZAEFZGHZBGDZIUSGDZBUSJKZU
    SLMZUTURVBVCNZVAUTVBOVEUSGPVBVCSQRVAURVDVCNUTVAVCVDBLJKZVABLUAKZVFVABUBDVGB
    UCZBUDUEVABTDLTDVGVFNVABVHUFUGBLUHUIUJUSLBJULUKUMURUTVBVDUNVAACUOUPUQ $.

  $( The size of a set is never minus infinity.  (Contributed by Alexander van
     der Vekens, 21-Dec-2017.) $)
  hashnemnf $p |- ( A e. V -> ( # ` A ) =/= -oo ) $=
    ( wcel chash cfv cn0 cpnf wceq wo cmnf wne hashnn0pnf cr wnel mnfnre df-nel
    wn nn0re con3i sylbi ax-mp eleq1 mtbiri necon2ai pnfnemnf neeq1 mpbiri jaoi
    syl ) ABCADEZFCZUJGHZIUJJKZABLUKUMULUKUJJUJJHUKJFCZJMNZUNQZOUOJMCZQUPJMPUNU
    QJRSTUAUJJFUBUCUDULUMGJKUEUJGJUFUGUHUI $.

  $( The size of a set is either 0 or 1 or greater than 1.  (Contributed by
     Alexander van der Vekens, 29-Dec-2017.) $)
  hashv01gt1 $p |- ( M e. V
                    -> ( ( # ` M ) = 0 \/ ( # ` M ) = 1 \/ 1 < ( # ` M ) ) ) $=
    ( wcel chash cfv cn0 cpnf wceq wo cc0 c1 clt wbr hashnn0pnf cn elnn0 mpbiri
    w3o wne jaoi exmidne nngt1ne1 orbi2d 3orass sylibr 3mix1 sylbi cr 1re ltpnf
    olcd ax-mp breq2 3mix3d syl ) ABCADEZFCZUPGHZIUPJHZUPKHZKUPLMZRZABNUQVBURUQ
    UPOCZUSIVBUPPVCVBUSVCUSUTVAIZIVBVCVDUSVCVDUTUPKSZIUPKUAVCVAVEUTUPUBUCQUKUSU
    TVAUDUEUSUTVAUFTUGURVAUSUTURVAKGLMZKUHCVFUIKUJULUPGKLUMQUNTUO $.

  ${
    $d A x $.  $d B x $.  $d x N $.
    $( The set ` ( 1 ... N ) ` has ` N ` elements.  (Contributed by Paul
       Chapman, 22-Jun-2011.)  (Revised by Mario Carneiro, 15-Sep-2013.) $)
    hashfz1 $p |- ( N e. NN0 -> ( # ` ( 1 ... N ) ) = N ) $=
      ( vx cn0 wcel c1 cfz co ccrd cfv cvv cv caddc cmpt cc0 crdg com cres ccnv
      chash wceq eqid cardfz fveq2d fzfid hashgval wf1o hashgf1o f1ocnvfv2 mpan
      cfn syl 3eqtr3d ) ACDZEAFGZHIZBJBKELGMNOPQZIZAUPRIZUPIZUNSIZAUMUOURUPBUPA
      UPUAZUBUCUMUNUJDUQUTTUMEAUDBUNUPVAUEUKPCUPUFUMUSATBUPVAUGPCAUPUHUIUL $.

    $( Two finite sets have the same number of elements iff they are
       equinumerous.  (Contributed by Paul Chapman, 22-Jun-2011.)  (Revised by
       Mario Carneiro, 15-Sep-2013.) $)
    hashen $p |- ( ( A e. Fin /\ B e. Fin ) ->
                   ( ( # ` A ) = ( # ` B ) <-> A ~~ B ) ) $=
      ( vx cfn wcel wa chash cfv wceq ccrd cen wbr cvv fveq2 hashginv eqeqan12d
      cv syl5ib hashgval finnum c1 caddc co cmpt cc0 crdg cres ccnv eqid impbid
      com cdm wb carden2 syl2an bitrd ) ADEZBDEZFZAGHZBGHZIZAJHZBJHZIZABKLZUSVB
      VEVBUTCMCQUAUBUCUDUEUFUKUGZUHZHZVAVHHZIUSVEUTVAVHNUQURVIVCVJVDCAVGVGUIZOC
      BVGVKOPRVEVCVGHZVDVGHZIUSVBVCVDVGNUQURVLUTVMVACAVGVKSCBVGVKSPRUJUQAJULZEB
      VNEVEVFUMURATBTABUNUOUP $.

    $( Equinumerous sets have the same number of elements (even if they are not
       finite).  (Contributed by Mario Carneiro, 15-Apr-2015.) $)
    hasheni $p |- ( A ~~ B -> ( # ` A ) = ( # ` B ) ) $=
      ( cen wbr cfn wcel chash cfv wceq wa simpl wb enfii ancoms hashen wn cpnf
      cvv relen hashinf sylancom mpbird brrelexi enfi biimpar syl2anc brrelex2i
      adantr notbid sylan eqtr4d pm2.61dan ) ABCDZBEFZAGHZBGHZIZUMUNJUQUMUMUNKU
      MUNAEFZUQUMLUNUMURABMNABOUAUBUMUNPZJZUOQUPUTARFZURPZUOQIUMVAUSABCSUCUHUMV
      BUSUMURUNABUDUIUEARTUFUMBRFUSUPQIABCSUGBRTUJUKUL $.
  $}

  ${
    $d A f $.  $d B f $.
    $( The size of two finite sets is equal if and only if there is a bijection
       mapping one of the sets onto the other.  (Contributed by Alexander van
       der Vekens, 17-Dec-2017.) $)
    hasheqf1o $p |- ( ( A e. Fin /\ B e. Fin )
                 -> ( ( # ` A ) = ( # ` B ) <-> E. f f : A -1-1-onto-> B ) ) $=
      ( cfn wcel wa chash cfv wceq cen wbr cv wf1o wex hashen bren syl6bb ) ADE
      BDEFAGHBGHIABJKABCLMCNABOABCPQ $.

    $( There is no bijection between a finite set and an infinite set.
       (Contributed by Alexander van der Vekens, 25-Dec-2017.) $)
    fiinfnf1o $p |- ( ( A e. Fin /\ -. B e. Fin )
                      -> -. E. f f : A -1-1-onto-> B ) $=
      ( cfn wcel cv wf1o wex wfo f1ofo fofi ex syl5 exlimdv con3dimp ) ADEZABCF
      ZGZCHBDEZPRSCRABQIZPSABQJPTSABQKLMNO $.
  $}

  $( The codomain of an onto function is a set if its domain is a set.
     (Contributed by AV, 4-May-2021.) $)
  focdmex $p |- ( ( A e. V /\ F : A -onto-> B ) -> B e. _V ) $=
    ( wcel wfo wa crn cvv wf fof anim2i ancomd rnexg 3syl wb forn eleq1d adantl
    fex mpbid ) ADEZABCFZGZCHZIEZBIEZUDABCJZUBGCIEUFUDUBUHUCUHUBABCKLMABDCTCINO
    UCUFUGPUBUCUEBIABCQRSUA $.

  ${
    $d A f g $.  $d B f g $.  $d V f $.
    $( The size of two sets is equal if there is a bijection mapping one of the
       sets onto the other.  (Contributed by Alexander van der Vekens,
       25-Dec-2017.)  (Revised by AV, 4-May-2021.) $)
    hasheqf1oi $p |- ( A e. V -> ( E. f f : A -1-1-onto-> B
                                      -> ( # ` A ) = ( # ` B ) ) ) $=
      ( vg cfn wcel cv wf1o wex chash cfv wceq wi wa wn adantr cvv ex cpnf ccnv
      hasheqf1o biimprd a1d fiinfnf1o pm2.21d 19.41v wrel wb f1orel f1ocnvb syl
      f1of fex sylan cnvexg f1oeq1 spcegv 3syl pm2.24 syl6 sylbid com12 anabsi5
      wf exlimiv sylbir com13 ancoms hashinf expcom imp wfo simpr f1ofo focdmex
      syl2an ad3antlr mpd eqtr4d exlimdv 4cases ) AFGZBFGZADGZABCHZIZCJZAKLZBKL
      ZMZNZNZWCWDOZWLWEWNWKWHABCUBUCUDWCWDPZOZWLWEWPWHWKABCUEUFUDWDWCPZWMWDWQOB
      AEHZIZEJZPZWMBAEUEWHWEXAWKWHWEXAWKNZWHWEOWGWEOZCJXBWGWECUGXCXBCWGWEXBXCWG
      XBXCWGBAWFUAZIZXBXCWFUHZWGXEUIWGXFWEABWFUJQABWFUKULXCXEWTXBXCWFRGZXDRGXEW
      TNWGABWFVEWEXGABWFUMABDWFUNUOWFRUPWSXEEXDRBAWRXDUQURUSWTWKUTVAVBVCVDVFVGS
      VHULVIWQWOOZWEWLXHWEOZWGWKCXIWGWKXIWGOZWITWJXIWITMZWGXHWEXKWQWEXKNWOWEWQX
      KADVJVKQVLQXJBRGZWJTMZXIWEABWFVMXLWGXHWEVNABWFVOABWFDVPVQWOXLXMNWQWEWGXLW
      OXMBRVJVKVRVSVTSWASWB $.
  $}

  ${
    $d A f g $.  $d B f g $.  $d V f $.  $d W f $.
    $( Obsolete version of ~ hasheqf1oi as of 4-May-2021.  (Contributed by
       Alexander van der Vekens, 25-Dec-2017.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    hasheqf1oiOLD $p |- ( ( A e. V /\ B e. W )
                 -> ( E. f f : A -1-1-onto-> B -> ( # ` A ) = ( # ` B ) ) ) $=
      ( vg cfn wcel wa cv wf1o wex wceq wi a1d wn adantr cvv com12 cpnf biimprd
      chash cfv hasheqf1o fiinfnf1o pm2.21d 19.41v ccnv wrel f1orel f1ocnvb syl
      wb wf f1of simprl simprr fex2 syl3anc cnvexg f1oeq1 spcegv pm2.24 anabsi5
      3syl syl6 sylbid exlimiv sylbir com13 ancoms hashinf expcom impcom adantl
      ex eqtr4d 4cases ) AGHZBGHZADHZBEHZIZABCJZKZCLZAUBUCZBUBUCZMZNZNZVSVTIZWJ
      WCWLWIWFABCUDUAOVSVTPZIZWJWCWNWFWIABCUEUFOVTVSPZWKVTWOIBAFJZKZFLZPZWKBAFU
      EWFWCWSWIWFWCWSWINZWFWCIWEWCIZCLWTWEWCCUGXAWTCWEWCWTXAWEWTXAWEBAWDUHZKZWT
      XAWDUIZWEXCUMWEXDWCABWDUJQABWDUKULXAXCWRWTXAWDRHZXBRHXCWRNXAABWDUNZWAWBXE
      WEXFWCABWDUOQWEWAWBUPWEWAWBUQABWDDEURUSWDRUTWQXCFXBRBAWPXBVAVBVEWRWIVCVFV
      GSVDVHVIVPVJULVKWOWMIZWCWJXGWCIZWIWFXHWGTWHWCXGWGTMZWAXGXINWBXGWAXIWOWAXI
      NWMWAWOXIADVLVMQSQVNWCXGWHTMZWBXGXJNWAXGWBXJWMWBXJNWOWBWMXJBEVLVMVOSVOVNV
      QOVPVR $.
  $}

  ${
    $d A f $.  $d B f $.  $d F f $.  $d V f $.
    $( The size of a finite set which is a one-to-one function is equal to the
       size of the function's range.  (Contributed by Alexander van der Vekens,
       12-Jan-2018.)  (Revised by AV, 4-May-2021.) $)
    hashf1rn $p |- ( ( A e. V /\ F : A -1-1-> B )
                     -> ( # ` F ) = ( # ` ran F ) ) $=
      ( vf vx wcel wf1 wa cvv crn cv wf1o wex chash cfv wceq wf c2nd wi f1f fex
      anim2i ancomd syl cres f1o2ndf1 wfun csn df-2nd funmpt2 resfunexg sylancr
      cuni f1oeq1 biimpd eqcoms adantl spcimedv ex com13 impcom hasheqf1oi sylc
      mpcom ) ADGZABCHZIZCJGZCCKZELZMZENZCOPVJOPQVHABCRZVFIVIVHVFVNVGVNVFABCUAU
      CUDABDCUBUEZVGVFVMCVJSCUFZMZVGVFVMTABCUGVFVGVQVMVFVGVQVMTVHVLVQEVPJVHSUHV
      IVPJGFJFLUIKUNSFUJUKVOSCJULUMVKVPQVQVLTZVHVRVPVKVPVKQVQVLCVJVPVKUOUPUQURU
      SUTVAVEVBCVJEJVCVD $.
  $}

  ${
    $d A f $.  $d B f $.  $d F f $.  $d V f $.  $d W f $.
    $( Obsolete version of ~ hashf1rn as of 4-May-2021.  (Contributed by
       Alexander van der Vekens, 12-Jan-2018.)  (Revised by Alexander van der
       Vekens, 4-Feb-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    hashf1rnOLD $p |- ( ( A e. V /\ B e. W )
                     -> ( F : A -1-1-> B -> ( # ` F ) = ( # ` ran F ) ) ) $=
      ( vf vx wcel wa chash cfv crn wceq cvv cv wf1o wi ex adantr c2nd wf com12
      wf1 wex f1f fex syl imp rnexg jccir cres f1o2ndf1 wfun csn df-2nd funmpt2
      cuni expcom syl5com impcom resfunexg f1oeq1 biimpd eqcoms adantl spcimedv
      sylancr com13 mpcom hasheqf1oiOLD sylc ) ADHZBEHZIZABCUCZCJKCLZJKMZVNVOIZ
      CNHZVPNHZICVPFOZPZFUDZVQVRVSVTVNVOVSVLVOVSQVMVOVLVSVOABCUAZVLVSQABCUEZWDV
      LVSABDCUFZRUGUBSUHCNUIUJVOVNWCCVPTCUKZPZVOVNWCQABCULVNVOWHWCVNVOWHWCQVRWB
      WHFWGNVRTUMVSWGNHGNGOUNLUQTGUOUPVOVNVSVOWDVNVSWEVLWDVSQVMWDVLVSWFURSUSUTT
      CNVAVGWAWGMWHWBQZVRWIWGWAWGWAMWHWBCVPWGWAVBVCVDVEVFRVHVIUTCVPFNNVJVKR $.
  $}

  ${
    $d A f $.  $d B f $.  $d F f $.  $d U f $.  $d ph f $.
    hasheqf1od.a $e |- ( ph -> A e. U ) $.
    hasheqf1od.f $e |- ( ph -> F : A -1-1-onto-> B ) $.
    $( The size of two sets is equal if there is a bijection mapping one of the
       sets onto the other.  (Contributed by AV, 4-May-2021.) $)
    hasheqf1od $p |- ( ph -> ( # ` A ) = ( # ` B ) ) $=
      ( vf wcel cv wf1o wex chash cfv wceq wf cvv f1of syl fex elabd hasheqf1oi
      syl2anc f1oeq1 sylc ) ABDIZBCHJZKZHLBMNCMNOFAUHBCEKZHEABCEPZUFEQIAUIUJGBC
      ERSFBCDETUCGBCUGEUDUABCHDUBUE $.
  $}

  $( Two possibly-empty 1-based finite sets of sequential integers are equal
     iff their endpoints are equal.  (Contributed by Paul Chapman,
     22-Jun-2011.)  (Proof shortened by Mario Carneiro, 29-Mar-2014.) $)
  fz1eqb $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
               ( ( 1 ... M ) = ( 1 ... N ) <-> M = N ) ) $=
    ( cn0 wcel wa c1 cfz co wceq chash cfv fveq2 hashfz1 eqeqan12d syl5ib oveq2
    impbid1 ) ACDZBCDZEZFAGHZFBGHZIZABIZUCUAJKZUBJKZITUDUAUBJLRSUEAUFBAMBMNOABF
    GPQ $.

  ${
    $d x A $.
    $( The size function of the cardinality function.  (Contributed by Mario
       Carneiro, 19-Sep-2013.)  (Revised by Mario Carneiro, 4-Nov-2013.) $)
    hashcard $p |- ( A e. Fin -> ( # ` ( card ` A ) ) = ( # ` A ) ) $=
      ( vx cfn wcel ccrd cfv cvv cv c1 caddc co cmpt cc0 crdg com chash cardidm
      cres fveq2i hashgval wceq wss ficardom ssid ssnnfi sylancl eqid 3eqtr3a
      syl ) ACDZAEFZEFZBGBHIJKLMNORZFZUKUMFUKPFZAPFULUKUMAQSUJUKCDZUNUOUAUJUKOD
      UKUKUBUPAUCUKUDUKUKUEUFBUKUMUMUGZTUIBAUMUQTUH $.

    $( Closure of the ` # ` function.  (Contributed by Paul Chapman,
       26-Oct-2012.)  (Revised by Mario Carneiro, 13-Jul-2014.) $)
    hashcl $p |- ( A e. Fin -> ( # ` A ) e. NN0 ) $=
      ( vx cfn wcel ccrd cfv cvv cv c1 caddc co cmpt cc0 crdg com cres cn0 eqid
      chash hashgval ficardom wf1o wf hashgf1o f1of ax-mp ffvelrni syl eqeltrrd
      ) ACDZAEFZBGBHIJKLMNOPZFZASFQBAULULRZTUJUKODUMQDAUAOQUKULOQULUBOQULUCBULU
      NUDOQULUEUFUGUHUI $.

    $( Extended real closure of the ` # ` function.  (Contributed by Mario
       Carneiro, 22-Apr-2015.) $)
    hashxrcl $p |- ( A e. V -> ( # ` A ) e. RR* ) $=
      ( wcel cn0 cpnf csn cun cxr chash cfv cr nn0ssre ressxr sstri pnfxr snssi
      wss ax-mp unssi cvv elex hashf ffvelrni syl sseldi ) ABCZDEFZGZHAIJZDUGHD
      KHLMNEHCUGHQOEHPRSUFATCUIUHCABUATUHAIUBUCUDUE $.

    $( Reverse closure of the ` # ` function.  (Contributed by Mario Carneiro,
       15-Jan-2015.) $)
    hashclb $p |- ( A e. V -> ( A e. Fin <-> ( # ` A ) e. NN0 ) ) $=
      ( wcel cfn chash cfv cn0 hashcl cr nn0re wn wa cpnf pnfnre hashinf eleq1d
      neli mtbiri ex con4d syl5 impbid2 ) ABCZADCZAEFZGCZAHUFUEICZUCUDUEJUCUDUG
      UCUDKZUGKUCUHLZUGMICMINQUIUEMIABOPRSTUAUB $.
  $}

  $( The size of any infinite set is always greater than or equal to the size
     of any set.  (Contributed by AV, 13-Nov-2020.) $)
  nfile $p |- ( ( A e. V /\ B e. W /\ -. B e. Fin )
                -> ( # ` A ) <_ ( # ` B ) ) $=
    ( wcel cfn wn w3a chash cfv cle wbr cxr hashxrcl pnfge syl 3ad2ant1 hashinf
    cpnf wceq 3adant1 breqtrrd ) ACEZBDEZBFEGZHAIJZSBIJZKUCUDUFSKLZUEUCUFMEUHAC
    NUFOPQUDUEUGSTUCBDRUAUB $.

  $( A set of finite size is a finite set.  (Contributed by Alexander van der
     Vekens, 8-Dec-2017.) $)
  hashvnfin $p |- ( ( S e. V /\ N e. NN0 )
                    -> ( ( # ` S ) = N -> S e. Fin ) ) $=
    ( wcel cn0 wa chash cfv wceq cfn eleq1a adantl hashclb bicomd adantr sylibd
    wi wb ) ACDZBEDZFAGHZBIZUAEDZAJDZTUBUCQSBEUAKLSUCUDRTSUDUCACMNOP $.

  $( The size of an infinite set is not a nonnegative integer.  (Contributed by
     Alexander van der Vekens, 21-Dec-2017.)  (Proof shortened by Alexander van
     der Vekens, 18-Jan-2018.) $)
  hashnfinnn0 $p |- ( ( A e. V /\ -. A e. Fin ) -> ( # ` A ) e/ NN0 ) $=
    ( wcel cfn wn chash cfv cn0 wnel nnel hashclb biimprd syl5bi con1d imp ) AB
    CZADCZEAFGZHIZPSQSERHCZPQRHJPQTABKLMNO $.

  $( A finite set is equinumerous to the range of integers from one up to the
     hash value of the set.  In other words, counting objects with natural
     numbers works if and only if it is a finite collection.  (Contributed by
     Richard Penner, 26-Feb-2020.) $)
  isfinite4 $p |- ( A e. Fin <-> ( 1 ... ( # ` A ) ) ~~ A ) $=
    ( cfn wcel c1 chash cfv cfz cen wbr wceq cn0 hashcl hashfz1 syl fzfi hashen
    co wb mpan mpbid ensym enfi biimprcd mpsyl impbii ) ABCZDAEFZGQZAHIZUFUHEFU
    GJZUIUFUGKCUJALUGMNUHBCZUFUJUIRDUGOZUHAPSTUKUIAUHHIZUFULUHAUAUMUFUKAUHUBUCU
    DUE $.

  $( Two ways of saying a finite set is empty.  (Contributed by Paul Chapman,
     26-Oct-2012.)  (Revised by Mario Carneiro, 27-Jul-2014.) $)
  hasheq0 $p |- ( A e. V -> ( ( # ` A ) = 0 <-> A = (/) ) ) $=
    ( wcel cfn chash cfv cc0 wceq c0 wb wn wa cpnf pnfnre neli hashinf syl6eqel
    cr id 0fin eleq1d mtbiri 0re nsyl con3i adantl 2falsed cen wbr hashen mpan2
    ex c1 cfz fz10 fveq2i cn0 0nn0 hashfz1 ax-mp eqtr3i eqeq2i 3bitr3g pm2.61d2
    co en0 ) ABCZADCZAEFZGHZAIHZJZVGVHKZVLVGVMLZVJVKVNVIRCZVJVNVOMRCMRNOVNVIMRA
    BPUAUBVJVIGRVJSUCQUDVMVKKVGVKVHVKAIDVKSTQUEUFUGULVHVIIEFZHZAIUHUIZVJVKVHIDC
    VQVRJTAIUJUKVPGVIUMGUNVEZEFZVPGVSIEUOUPGUQCVTGHURGUSUTVAVBAVFVCVD $.

  $( Two ways of saying a set is not empty.  (Contributed by Alexander van der
     Vekens, 23-Sep-2018.) $)
  hashneq0 $p |- ( A e. V -> ( 0 < ( # ` A ) <-> A =/= (/) ) ) $=
    ( wcel cc0 chash cfv clt wbr wne c0 cn0 cpnf wceq wo wb hashnn0pnf cr nn0re
    cle bitrd nn0ge0 ne0gt0 syl2anc bicomd breq2 neeq1 0ltpnf 0re renepnf ax-mp
    necomi 2th syl6rbbr jaoi syl hasheq0 necon3bid ) ABCZDAEFZGHZUSDIZAJIURUSKC
    ZUSLMZNUTVAOZABPVBVDVCVBVAUTVBUSQCDUSSHVAUTOUSRUSUAUSUBUCUDVCUTDLGHZVAUSLDG
    UEVCVALDIZVEUSLDUFVEVFUGDLDQCDLIUHDUIUJUKULUMTUNUOURUSDAJABUPUQT $.

  $( If the size of a set is greater than 0, the set is not empty.
     (Contributed by AV, 5-Aug-2018.)  (Prove shortened by AV, 18-Nov-2018.) $)
  hashgt0n0 $p |- ( ( A e. V /\ 0 < ( # ` A ) ) -> A =/= (/) ) $=
    ( wcel cc0 chash cfv clt wbr c0 wne hashneq0 biimpa ) ABCDAEFGHAIJABKL $.

  $( Positive natural closure of the hash function.  (Contributed by Mario
     Carneiro, 16-Jan-2015.) $)
  hashnncl $p |- ( A e. Fin -> ( ( # ` A ) e. NN <-> A =/= (/) ) ) $=
    ( cfn wcel chash cfv cn cc0 wne c0 nnne0 wceq cn0 wo hashcl elnn0 sylib ord
    necon1ad impbid2 hasheq0 necon3bid bitrd ) ABCZADEZFCZUDGHZAIHUCUEUFUDJUCUE
    UDGUCUEUDGKZUCUDLCUEUGMANUDOPQRSUCUDGAIABTUAUB $.

  $( The empty set has size zero.  (Contributed by Mario Carneiro,
     8-Jul-2014.) $)
  hash0 $p |- ( # ` (/) ) = 0 $=
    ( c0 chash cfv cc0 wceq eqid cvv wcel wb 0ex hasheq0 ax-mp mpbir ) ABCDEZAA
    EZAFAGHNOIJAGKLM $.

  $( The size of a singleton.  (Contributed by Paul Chapman, 26-Oct-2012.)
     (Proof shortened by Mario Carneiro, 13-Feb-2013.) $)
  hashsng $p |- ( A e. V -> ( # ` { A } ) = 1 ) $=
    ( wcel csn chash cfv c1 cen wbr wceq cz 1z en2sn mpan2 wb snfi hashen mp2an
    cfn ax-mp sylibr cfz co cn0 1nn0 hashfz1 fzsn fveq2d syl5reqr syl6eq ) ABCZ
    ADZEFZGDZEFZGUKULUNHIZUMUOJZUKGKCZUPLAGBKMNULSCUNSCUQUPOAPGPULUNQRUAURUOGJL
    URGGGUBUCZEFZUOGUDCUTGJUEGUFTURUSUNEGUGUHUITUJ $.

  $( A set has size 1 if and only if it is equinumerous to the ordinal 1.
     (Contributed by AV, 14-Apr-2019.) $)
  hashen1 $p |- ( A e. V -> ( ( # ` A ) = 1 <-> A ~~ 1o ) ) $=
    ( wcel chash cfv c1 wceq csn cen wbr c1o cvv 0ex hashsng eqcomi a1i cfn cn0
    c0 wb ax-mp eqeq2d wa simpr wi 1nn0 eqeltri hashvnfin mpan2 imp snfi hashen
    sylancl mpbid ex hasheni impbid1 df1o2 breq2i 3bitrd ) ABCZADEZFGVBSHZDEZGZ
    AVCIJZAKIJZVAFVDVBFVDGVAVDFSLCVDFGMSLNUAZOPUBVAVEVFVAVEVFVAVEUCZVEVFVAVEUDV
    IAQCZVCQCVEVFTVAVEVJVAVDRCVEVJUEVDFRVHUFUGAVDBUHUIUJSUKAVCULUMUNUOAVCUPUQVF
    VGTVAVCKAIKVCUROUSPUT $.

  ${
    $d x A $.
    $( The size of a restricted class abstraction restricted to a singleton is
       a nonnegative integer.  (Contributed by Alexander van der Vekens,
       22-Dec-2017.) $)
    hashrabrsn $p |- ( # ` { x e. { A } | ph } ) e. NN0 $=
      ( csn crab wceq c0 wo chash cfv cn0 wcel eqid rabrsn fveq2 cc0 hash0 0nn0
      syl6eqel cvv eqeltri c1 hashsng 1nn0 wn snprc sylbi pm2.61i jaoi mp2b ) A
      BCDZEZULFULGFZULUKFZHULIJZKLZULMABCULNUMUPUNUMUOGIJZKULGIOUQPKQRUAZSUNUOU
      KIJZKULUKIOCTLZUSKLZUTUSUBKCTUCUDSUTUEUKGFZVACUFVBUSUQKUKGIOURSUGUHSUIUJ
      $.

    $( The size of a restricted class abstraction restricted to a singleton is
       either 0 or 1.  (Contributed by Alexander van der Vekens,
       3-Sep-2018.) $)
    hashrabsn01 $p |- ( ( # ` { x e. { A } | ph } ) = N
                         -> ( N = 0 \/ N = 1 ) ) $=
      ( csn crab c0 wo chash cfv cc0 c1 wi fveq2 eqeq1d eqcom biimpi syl6bi cvv
      wceq eqid rabrsn hash0 orcd wcel wa hashsng sylan9eqr olcd ex snprc sylbi
      syl6eq wn pm2.61i jaoi mp2b ) ABCEZFZUSTUSGTZUSURTZHUSIJZDTZDKTZDLTZHZMZU
      SUAABCUSUBUTVGVAUTVCGIJZDTZVFUTVBVHDUSGINOVIVDVEVIDVHKVIDVHTVHDPQUCUMUDZR
      VAVCURIJZDTZVFVAVBVKDUSURINOCSUEZVLVFMZVMVLVFVMVLUFVEVDVLVMDVKLVLDVKTVKDP
      QCSUGUHUIUJVMUNURGTZVNCUKVOVLVIVFVOVKVHDURGINOVJRULUORUPUQ $.

    $( If the size of a restricted class abstraction restricted to a singleton
       is 1, the condition of the class abstraction must hold for the
       singleton.  (Contributed by Alexander van der Vekens, 3-Sep-2018.) $)
    hashrabsn1 $p |- ( ( # ` { x e. { A } | ph } ) = 1 -> [. A / x ]. ph ) $=
      ( csn crab wceq c0 wo chash cfv c1 cc0 wne eqneqall mpi sylbi syl6bi wcel
      wi cvv wsbc eqid rabrsn fveq2 eqeq1d hash0 eqeq1i 0ne1 wa snidg adantr wb
      eleq2 adantl mpbird nfcv elrabsf simprbi syl a1d ex wn snprc eqeq2 eqcoms
      ax-1ne0 pm2.61i jaoi mp2b ) ABCDZEZVKFVKGFZVKVJFZHVKIJZKFZABCUAZSZVKUBABC
      VKUCVLVQVMVLVOGIJZKFZVPVLVNVRKVKGIUDUEZVSLKFZVPVRLKUFUGZWALKMVPUHVPLKNOPQ
      CTRZVMVQSZWCVMVQWCVMUIZVPVOWECVKRZVPWEWFCVJRZWCWGVMCTUJUKVMWFWGULWCVKVJCU
      MUNUOWFWGVPABCVJBVJUPUQURUSUTVAWCVBVJGFZWDCVCWHVMVLVQVJGVKVDVLVOVSVPVTVSW
      AVPWBVPKLKLFKLMVPVFVPKLNOVEPQQPVGVHVI $.
  $}

  $( A function is equinumerous to its domain.  (Contributed by Mario Carneiro,
     12-Mar-2015.) $)
  hashfn $p |- ( F Fn A -> ( # ` F ) = ( # ` A ) ) $=
    ( wfn cvv wcel chash cfv wceq wa cen fndmeng ensym hasheni 3syl wn c0 dmexg
    wbr cdm fvprc fndm eleq1d syl5ib con3dimp syl adantl eqtr4d pm2.61dan ) BAC
    ZADEZBFGZAFGZHZUIUJIABJRBAJRUMADBKABLBAMNUIUJOZIZUKPULUOBDEZOUKPHUIUPUJUPBS
    ZDEUIUJBDQUIUQADABUAUBUCUDBFTUEUNULPHUIAFTUFUGUH $.

  $( The value of the size function on a finite 1-based sequence.  (Contributed
     by Paul Chapman, 26-Oct-2012.)  (Proof shortened by Mario Carneiro,
     12-Mar-2015.) $)
  fseq1hash $p |- ( ( N e. NN0 /\ F Fn ( 1 ... N ) ) -> ( # ` F ) = N ) $=
    ( c1 cfz co wfn cn0 wcel chash cfv hashfn hashfz1 sylan9eqr ) ACBDEZFBGHAIJ
    NIJBNAKBLM $.

  ${
    $d A n z $.  $d B n $.  $d G n z $.
    hashgadd.1 $e |- G = ( rec ( ( x e. _V |-> ( x + 1 ) ) , 0 ) |` _om ) $.
    $( ` G ` maps ordinal addition to integer addition.  (Contributed by Paul
       Chapman, 30-Nov-2012.)  (Revised by Mario Carneiro, 15-Sep-2013.) $)
    hashgadd $p |- ( ( A e. _om /\ B e. _om ) ->
                     ( G ` ( A +o B ) ) = ( ( G ` A ) + ( G ` B ) ) ) $=
      ( com wcel coa co cfv caddc wceq wi c0 oveq2 fveq2d oveq2d cc0 cn0 c1 a1i
      vn vz cv csuc fveq2 eqeq12d imbi2d wf1o wf hashgf1o ax-mp ffvelrni nn0cnd
      f1of addid1d 0z om2uz0i oveq2i 3eqtr4rd w3a wa nnasuc nnacl om2uzsuci syl
      nna0 eqtrd 3adant3 cc ax-1cn addass mp3an3 syl2an oveq1 3ad2ant3 3ad2ant2
      3eqtr4d 3expia expcom a2d finds impcom ) CFGBFGZBCHIZDJZBDJZCDJZKIZLZWDBU
      BUDZHIZDJZWGWKDJZKIZLZMWDBNHIZDJZWGNDJZKIZLZMWDBUCUDZHIZDJZWGXBDJZKIZLZMW
      DBXBUEZHIZDJZWGXHDJZKIZLZMWDWJMUBUCCWKNLZWPXAWDXNWMWRWOWTXNWLWQDWKNBHOPXN
      WNWSWGKWKNDUFQUGUHWKXBLZWPXGWDXOWMXDWOXFXOWLXCDWKXBBHOPXOWNXEWGKWKXBDUFQU
      GUHWKXHLZWPXMWDXPWMXJWOXLXPWLXIDWKXHBHOPXPWNXKWGKWKXHDUFQUGUHWKCLZWPWJWDX
      QWMWFWOWIXQWLWEDWKCBHOPXQWNWHWGKWKCDUFQUGUHWDWGRKIZWGWTWRWDWGWDWGFSBDFSDU
      IFSDUJADEUKFSDUOULZUMUNZUPWTXRLWDWSRWGKARDUQEURUSUAWDWQBDBVGPUTXBFGZWDXGX
      MWDYAXGXMMWDYAXGXMWDYAXGVAZXJXDTKIZXLWDYAXJYCLXGWDYAVBZXJXCUEZDJZYCYDXIYE
      DBXBVCPYDXCFGYFYCLBXBVDAXCRDUQEVEVFVHVIYBXFTKIZWGXETKIZKIZYCXLWDYAYGYILZX
      GWDWGVJGZXEVJGZYJYAXTYAXEFSXBDXSUMUNYKYLTVJGYJVKWGXETVLVMVNVIXGWDYCYGLYAX
      DXFTKVOVPYAWDXLYILXGYAXKYHWGKAXBRDUQEVEQVQVRVHVSVTWAWBWC $.
  $}

  ${
    $d f x y A $.  $d f x y B $.
    $( A short expression for the ` G ` function of ~ hashgf1o .  (Contributed
       by Mario Carneiro, 24-Jan-2015.) $)
    hashgval2 $p |- ( # |` _om ) =
      ( rec ( ( x e. _V |-> ( x + 1 ) ) , 0 ) |` _om ) $=
      ( vy chash com cres cvv cv c1 caddc co cmpt cc0 crdg wceq cfv wfn wral wb
      hashresfn wcel frfnom eqfnfv mp2an ccrd cfn nnfi eqid hashgval syl cardnn
      fvres fveq2d 3eqtr2d mprgbir ) CDEZAFAGHIJKZLMDEZNZBGZUOOZUSUQOZNZBDUODPU
      QDPURVBBDQRDSLUPUABDUOUQUBUCUSDTZUTUSCOZUSUDOZUQOZVAUSDCUKVCUSUETVFVDNUSU
      FAUSUQUQUGUHUIVCVEUSUQUSUJULUMUN $.

    $( Dominance relation for the size function.  (Contributed by Mario
       Carneiro, 22-Sep-2013.)  (Revised by Mario Carneiro, 22-Apr-2015.) $)
    hashdom $p |- ( ( A e. Fin /\ B e. V )
         -> ( ( # ` A ) <_ ( # ` B ) <-> A ~<_ B ) ) $=
      ( vy vx cfn wcel wa cfv cle wbr wb ccrd coa wceq com caddc cn0 ad2antlr
      co vf chash cdom cv wrex wss c1 cmin cfz fzfi ficardom ax-mp cvv cmpt cc0
      crdg cres ccnv hashgval ad2antrr hashcl simpr nn0sub2 syl3anc hashfz1 syl
      eqid syl5eq oveq12d cc nn0cnd pncan3 syl2an adantr eqtrd hashgadd sylancl
      3eqtr4d fveq2d wf1o hashgf1o nnacl f1ocnvfv1 sylancr 3eqtr3d oveq2 eqeq1d
      rspcev ex cardnn adantl oveq2d fveq2 wi oveqan12d adantlr eqeq12d nn0ge0d
      nnfi cr nn0red addge01 mpbid breq2 syl5ibcom sylbid sylan2 syl5 rexlimdva
      sylbird impbid nnawordex cdm finnum carddom2 3bitr2d wn cpnf cxr hashxrcl
      pnfge hashinf adantll breqtrrd wf1 isinffi ancoms brdomg mpbird pm2.61dan
      wex 2thd ) AFGZBCGZHZBFGZAUBIZBUBIZJKZABUCKZLZYMYPUUAYNYMYPHZYSAMIZDUDZNT
      ZBMIZOZDPUEZUUCUUFUFZYTUUBYSUUHUUBYSUUHUUBYSHZUGYRYQUHTZUITZMIZPGZUUCUUMN
      TZUUFOZUUHUULFGZUUNUGUUKUJZUULUKULZUUJUUOEUMEUDUGQTUNUOUPPUQZIZUUTURZIZUU
      FUUTIZUVBIZUUOUUFUUJUVAUVDUVBUUJUUCUUTIZUUMUUTIZQTZYRUVAUVDUUJUVHYQUUKQTZ
      YRUUJUVFYQUVGUUKQYMUVFYQOYPYSEAUUTUUTVGZUSZUTUUJUVGUULUBIZUUKUUQUVGUVLOUU
      REUULUUTUVJUSULUUJUUKRGZUVLUUKOUUJYQRGZYRRGZYSUVMYMUVNYPYSAVAZUTYPUVOYMYS
      BVAZSUUBYSVBYQYRVCVDUUKVEVFVHVIUUBUVIYROZYSYMYQVJGYRVJGUVRYPYMYQUVPVKYPYR
      UVQVKYQYRVLVMVNVOUUJUUCPGZUUNUVAUVHOYMUVSYPYSAUKZUTZUUSEUUCUUMUUTUVJVPVQY
      PUVDYROZYMYSEBUUTUVJUSZSVRVSUUJPRUUTVTZUUOPGZUVCUUOOEUUTUVJWAZUUJUVSUUNUW
      EUWAUUSUUCUUMWBVQPRUUOUUTWCWDUUJUWDUUFPGZUVEUUFOUWFYPUWGYMYSBUKZSPRUUFUUT
      WCWDWEUUGUUPDUUMPUUDUUMOUUEUUOUUFUUDUUMUUCNWFWGWHWDWIUUBUUGYSDPUUBUUDPGZH
      ZUUGUUCUUDMIZNTZUUFOZYSUWJUWLUUEUUFUWJUWKUUDUUCNUWIUWKUUDOUUBUUDWJWKWLWGU
      WMUWLUUTIZUVDOZUWJYSUWLUUFUUTWMUWIUUBUUDFGZUWOYSWNUUDWSUUBUWPHZUWOYQUUDUB
      IZQTZYROZYSUWQUWNUWSUVDYRYMUWPUWNUWSOYPYMUWPHZUWNUVFUWKUUTIZQTZUWSYMUVSUW
      KPGUWNUXCOUWPUVTUUDUKEUUCUWKUUTUVJVPVMYMUWPUVFYQUXBUWRQUVKEUUDUUTUVJUSWOV
      OWPYPUWBYMUWPUWCSWQUWQYQUWSJKZUWTYSYMUWPUXDYPUXAUOUWRJKZUXDUWPUXEYMUWPUWR
      UUDVAZWRWKYMYQWTGUWRWTGUXEUXDLUWPYMYQUVPXAUWPUWRUXFXAYQUWRXBVMXCWPUWSYRYQ
      JXDXEXFXGXHXJXIXKYMUVSUWGUUIUUHLYPUVTUWHDUUCUUFXLVMYMAMXMZGBUXGGUUIYTLYPA
      XNBXNABXOVMXPWPYOYPXQZHZYSYTUXIYQXRYRJUXIYQXSGZYQXRJKYMUXJYNUXHAFXTUTYQYA
      VFYNUXHYRXROYMBCYBYCYDUXIYTABUAUDYEUAYKZYMUXHUXKYNUXHYMUXKBAUAYFYGWPYNYTU
      XKLYMUXHABCUAYHSYIYLYJ $.
  $}

  $( Non-strict order relation of the ` # ` function on the full cardinal
     poset.  (Contributed by Stefan O'Rear, 12-Sep-2015.) $)
  hashdomi $p |- ( A ~<_ B -> ( # ` A ) <_ ( # ` B ) ) $=
    ( cdom wbr cfn wcel chash cfv cle wa simpl wb reldom adantr syl2anc wn cpnf
    cvv wceq hashinf simpr brrelex2i mpbird cxr pnfxr pnfge mp1i brrelexi sylan
    hashdom domfi stoic1b 3brtr4d pm2.61dan ) ABCDZAEFZAGHZBGHZIDZUOUPJZUSUOUOU
    PKUTUPBRFZUSUOLUOUPUAUOVAUPABCMUBZNABRUJOUCUOUPPZJZQQUQURIQUDFQQIDVDUEQUFUG
    UOARFVCUQQSABCMUHARTUIVDVABEFZPURQSUOVAVCVBNVEUOUPBAUKULBRTOUMUN $.

  $( Strict dominance relation for the size function.  (Contributed by Mario
     Carneiro, 18-Aug-2014.) $)
  hashsdom $p |- ( ( A e. Fin /\ B e. Fin )
       -> ( ( # ` A ) < ( # ` B ) <-> A ~< B ) ) $=
    ( cfn wcel wa chash cfv clt wbr cdom cen wn csdm cle hashcl cr nn0re syl2an
    cn0 wceq wne wb ltlen hashdom eqcom hashen syl5bb necon3abid anbi12d brsdom
    bitrd syl6bbr ) ACDZBCDZEZAFGZBFGZHIZABJIZABKIZLZEZABMIUOURUPUQNIZUQUPUAZEZ
    VBUMUPSDZUQSDZURVEUBZUNAOBOVFUPPDUQPDVHVGUPQUQQUPUQUCRRUOVCUSVDVAABCUDUOUTU
    QUPUQUPTUPUQTUOUTUQUPUEABUFUGUHUIUKABUJUL $.

  ${
    $d x A $.  $d x B $.
    $( The size of the union of disjoint finite sets is the sum of their sizes.
       (Contributed by Paul Chapman, 30-Nov-2012.)  (Revised by Mario Carneiro,
       15-Sep-2013.) $)
    hashun $p |- ( ( A e. Fin /\ B e. Fin /\ ( A i^i B ) = (/) ) ->
                   ( # ` ( A u. B ) ) = ( ( # ` A ) + ( # ` B ) ) ) $=
      ( vx cfn wcel cin c0 wceq w3a cun ccrd cfv cvv caddc co com chash 3adant3
      hashgval ficardom cv cmpt cc0 crdg cres coa ficardun fveq2d unfi eqid syl
      c1 wa hashgadd syl2an oveqan12d eqtrd 3eqtr3d ) ADEZBDEZABFGHZIZABJZKLZCM
      CUAULNOUBUCUDPUEZLZAKLZBKLZUFOZVELZVCQLZAQLZBQLZNOZVBVDVIVEABUGUHUSUTVFVK
      HZVAUSUTUMZVCDEVOABUICVCVEVEUJZSUKRUSUTVJVNHVAVPVJVGVELZVHVELZNOZVNUSVGPE
      VHPEVJVTHUTATBTCVGVHVEVQUNUOUSUTVRVLVSVMNCAVEVQSCBVEVQSUPUQRUR $.

    $( The size of the union of finite sets is less than or equal to the sum of
       their sizes.  (Contributed by Mario Carneiro, 23-Sep-2013.)  (Proof
       shortened by Mario Carneiro, 27-Jul-2014.) $)
    hashun2 $p |- ( ( A e. Fin /\ B e. Fin ) ->
                   ( # ` ( A u. B ) ) <_ ( ( # ` A ) + ( # ` B ) ) ) $=
      ( cfn wcel wa cun chash cfv cdif caddc co cle undif2 fveq2i adantl hashcl
      wceq cn0 nn0red wbr diffi cin c0 disjdif hashun mp3an3 sylan2 syl5eqr syl
      adantr cdom simpr difss ssdomg mpisyl wb hashdom sylancom mpbird leadd2dd
      wss eqbrtrd ) ACDZBCDZEZABFZGHZAGHZBAIZGHZJKZVHBGHZJKLVEVGAVIFZGHZVKVMVFG
      ABMNVDVCVICDZVNVKQZBAUAZVCVOAVIUBUCQVPABUDAVIUEUFUGUHVEVJVLVHVEVJVEVOVJRD
      VDVOVCVQOZVIPUISVEVLVDVLRDVCBPOSVEVHVCVHRDVDAPUJSVEVJVLLTZVIBUKTZVEVDVIBV
      AVTVCVDULBAUMVIBCUNUOVCVDVOVSVTUPVRVIBCUQURUSUTVB $.

    $( The size of the union of finite sets is the sum of their sizes minus the
       size of the intersection.  (Contributed by Mario Carneiro,
       6-Aug-2017.) $)
    hashun3 $p |- ( ( A e. Fin /\ B e. Fin ) -> ( # ` ( A u. B ) ) =
      ( ( ( # ` A ) + ( # ` B ) ) - ( # ` ( A i^i B ) ) ) ) $=
      ( cfn wcel chash cfv cin cmin co caddc cun c0 adantl wss incom a1i hashcl
      wceq cn0 nn0cnd wa cdif diffi simpl inss1 sylancl sslin ax-mp eqtri sseq0
      ssfi disjdif mp2an hashun syl3anc uneq2i inundif 3eqtri fveq2d eqtr3d syl
      subadd2d mpbird oveq2d adantr addsubassd undif2 fveq2i syl5eqr 3eqtr4rd
      uncom ) ACDZBCDZUAZAEFZBEFZABGZEFZHIZJIVOBAUBZEFZJIZVOVPJIVRHIABKZEFZVNVS
      WAVOJVNVSWARWAVRJIZVPRVNVTVQKZEFZWEVPVNVTCDZVQCDZVTVQGZLRZWGWERVMWHVLBAUC
      MZVNVLVQANZWIVLVMUDZABUEZAVQUKUFZWKVNWJVTAGZNZWQLRWKWMWRWOVQAVTUGUHWQAVTG
      ZLVTAOABULZUIWJWQUJUMPVTVQUNUOVNWFBEWFBRVNWFVTBAGZKXAVTKBVQXAVTABOUPVTXAV
      KBAUQURPUSUTVNVPVRWAVNVPVMVPSDVLBQMTZVNVRVNWIVRSDWPVQQVATZVNWAVNWHWASDWLV
      TQVATVBVCVDVNVOVPVRVNVOVLVOSDVMAQVETXBXCVFVNWDAVTKZEFZWBXDWCEABVGVHVNVLWH
      WSLRZXEWBRWNWLXFVNWTPAVTUNUOVIVJ $.
  $}

  $( The extended real addition of the size of an infinite set with the size of
     an arbitrary set yields plus infinity.  (Contributed by Alexander van der
     Vekens, 20-Dec-2017.) $)
  hashinfxadd $p |- ( ( A e. V /\ B e. W /\ ( # ` A ) e/ NN0 )
                      -> ( ( # ` A ) +e ( # ` B ) ) = +oo ) $=
    ( chash cfv cpnf wceq cn0 wcel wn wa wnel w3a cxad co wo wi hashnn0pnf syl
    df-nel anbi2i pm5.61 sylbb orcoms imp 3adant2 oveq1 cmnf hashxrcl hashnemnf
    ex cxr wne jca 3ad2ant2 xaddpnf2 sylan9eqr expcom adantr mpcom ) AEFZGHZVBI
    JZKZLZACJZBDJZVBIMZNZVBBEFZOPZGHZVGVIVFVHVGVIVFVGVDVCQVIVFRZACSVCVDVNVCVDQZ
    VIVFVOVILVOVELVFVIVEVOVBIUAUBVCVDUCUDULUETUFUGVCVJVMRVEVJVCVMVCVJVLGVKOPZGV
    BGVKOUHVJVKUMJZVKUIUNZLZVPGHVHVGVSVIVHVQVRBDUJBDUKUOUPVKUQTURUSUTVA $.

  $( The size of the union of disjoint sets is the result of the extended real
     addition of their sizes, analogous to ~ hashun .  (Contributed by
     Alexander van der Vekens, 21-Dec-2017.) $)
  hashunx $p |- ( ( A e. V /\ B e. W /\ ( A i^i B ) = (/) ) ->
                  ( # ` ( A u. B ) ) = ( ( # ` A ) +e ( # ` B ) ) ) $=
    ( wcel wceq cfn wa chash cfv cxad co wi cr hashcl eqcomd eqtrd wn cpnf ex
    cin c0 w3a cun caddc hashun 3expa nn0red anim12i adantr rexadd syl 3ad2ant3
    expcom cvv unexg unfir con3i hashinf syl2anr wo cn0 wnel simprl hashnfinnn0
    ianor simprr impcom hashinfxadd syl3anc cxr hashxrcl xaddcom jaoi sylbi imp
    adantl 3adant3 pm2.61d ) ACEZBDEZABUAUBFZUCAGEZBGEZHZABUDZIJZAIJZBIJZKLZFZW
    BVTWEWKMWAWEWBWKWEWBHZWGWHWIUELZWJWCWDWBWGWMFABUFUGWLWJWMWLWHNEZWINEZHZWJWM
    FWEWPWBWCWNWDWOWCWHAOUHWDWIBOUHUIUJWHWIUKULPQUNUMVTWAWERZWKMWBWQVTWAHZWKWQW
    RHWGSWJWRWFUOEWFGEZRWGSFWQABCDUPWSWEABUQURWFUOUSUTWQWRSWJFZWQWCRZWDRZVAWRWT
    MZWCWDVFXAXCXBXAWRWTXAWRHZWJSXDVTWAWHVBVCZWJSFXAVTWAVDXAVTWAVGWRXAXEVTXAXEM
    WAVTXAXEACVETUJVHABCDVIVJPTXBWRWTXBWRHZWJSXFWJWIWHKLZSXFWHVKEZWIVKEZHZWJXGF
    WRXJXBVTXHWAXIACVLBDVLUIVQWHWIVMULXFWAVTWIVBVCZXGSFXBVTWAVGXBVTWAVDWRXBXKWA
    XBXKMVTWAXBXKBDVETVQVHBADCVIVJQPTVNVOVPQUNVRVS $.

  $( The cardinality of a set is greater than or equal to zero.  (Contributed
     by Thierry Arnoux, 2-Mar-2017.) $)
  hashge0 $p |- ( A e. V -> 0 <_ ( # ` A ) ) $=
    ( wcel cdom wbr chash cfv cle cc0 0domg hashdomi hash0 breq1i biimpi 3syl
    c0 ) ABCPADEPFGZAFGZHEZIRHEZABJPAKSTQIRHLMNO $.

  $( The cardinality of a nonempty set is greater than zero.  (Contributed by
     Thierry Arnoux, 2-Mar-2017.) $)
  hashgt0 $p |- ( ( A e. V /\ A =/= (/) ) -> 0 < ( # ` A ) ) $=
    ( wcel c0 wne cc0 chash cfv cle wbr wa clt hashge0 adantr hasheq0 necon3bid
    biimpar jca cxr wb 0xr hashxrcl xrltlen sylancr syldan ) ABCZADEZFAGHZIJZUH
    FEZKZFUHLJZUFUGKUIUJUFUIUGABMNUFUJUGUFUHFADABOPQRUFULUKUFFSCUHSCULUKTUAABUB
    FUHUCUDQUE $.

  $( The cardinality of a nonempty set is greater or equal to one.
     (Contributed by Thierry Arnoux, 20-Jun-2017.) $)
  hashge1 $p |- ( ( A e. V /\ A =/= (/) ) -> 1 <_ ( # ` A ) ) $=
    ( wcel c0 wne wa cfn c1 chash cfv cle wbr cn simpr hashnncl biimpar syl2anc
    simplr nnge1d cpnf cxr 1re rexri pnfge ax-mp wceq hashinf adantlr syl5breqr
    wn pm2.61dan ) ABCZADEZFZAGCZHAIJZKLUNUOFZUPUQUOUMUPMCZUNUONULUMUORUOURUMAO
    PQSUNUOUJZFHTUPKHUACHTKLHUBUCHUDUEULUSUPTUFUMABUGUHUIUK $.

  $( 1 is an element of the finite set of sequential nonnegative integers
     bounded by the size of a nonempty finite set.  (Contributed by AV,
     9-May-2020.) $)
  1elfz0hash $p |- ( ( A e. Fin /\ A =/= (/) )
                     -> 1 e. ( 0 ... ( # ` A ) ) ) $=
    ( cfn wcel c0 wne wa c1 cn0 chash cfv cle wbr cc0 cfz co 1nn0 hashcl adantr
    a1i hashge1 elfz2nn0 syl3anbrc ) ABCZADEZFZGHCZAIJZHCZGUGKLGMUGNOCUFUEPSUCU
    HUDAQRABTGUGUAUB $.

  $( If a nonnegative integer is the size of a set which contains at least one
     element, this integer is a positive integer.  (Contributed by Alexander
     van der Vekens, 9-Jan-2018.) $)
  hashnn0n0nn $p |- ( ( ( V e. W /\ Y e. NN0 )
                     /\ ( ( # ` V ) = Y /\ N e. V ) ) -> Y e. NN ) $=
    ( chash cfv wceq wcel wa cn0 cn wi c1 cle wbr c0 wne ne0i cc0 eleq1 hashge1
    sylan2 simpr clt wn 0lt1 0re 1re ltnlei mpbi mtbiri necon2ai adantr elnnne0
    breq2 sylanbrc ex syl impancom com12 anbi2d imbi12d syl5ib imp impcom ) BEF
    ZDGZABHZIBCHZDJHZIZDKHZVGVHVKVLLZVHVIVFJHZIZVFKHZLVGVMVOVHVPVIVHVNVPVIVHIMV
    FNOZVNVPLVHVIBPQVQBARBCUAUBVQVNVPVQVNIVNVFSQZVPVQVNUCVQVRVNVQVFSVFSGVQMSNOZ
    SMUDOVSUEUFSMUGUHUIUJVFSMNUOUKULUMVFUNUPUQURUSUTVGVOVKVPVLVGVNVJVIVFDJTVAVF
    DKTVBVCVDVE $.

  $( The size of the union of a finite set with a disjoint singleton is one
     more than the size of the set.  (Contributed by Paul Chapman,
     30-Nov-2012.) $)
  hashunsng $p |- ( B e. V -> ( ( A e. Fin /\ -. B e. A ) ->
                    ( # ` ( A u. { B } ) ) = ( ( # ` A ) + 1 ) ) ) $=
    ( cfn wcel wn wa csn cun chash cfv c1 caddc co wceq cin disjsn snfi hashun
    c0 mp3an2 sylan2br hashsng oveq2d sylan9eq expcom ) ADEZBAEFZGZBCEZABHZIJKZ
    AJKZLMNZOUIUJULUMUKJKZMNZUNUHUGAUKPTOZULUPOZABQUGUKDEUQURBRAUKSUAUBUJUOLUMM
    BCUCUDUEUF $.

  $( The size of an unordered pair.  (Contributed by Mario Carneiro,
     27-Sep-2013.)  (Revised by Mario Carneiro, 5-May-2016.)  (Revised by AV,
     18-Sep-2021.) $)
  hashprg $p |- ( ( A e. V /\ B e. W ) ->
    ( A =/= B <-> ( # ` { A , B } ) = 2 ) ) $=
    ( wcel wa wne cpr chash cfv c2 wceq csn cun c1 caddc co wn imp adantr simpr
    elsni eqcomd necon3ai cfn snfi hashunsng mpanr1 syl2an hashsng oveq1d eqtrd
    df-pr fveq2i df-2 3eqtr4g a1i eqnetrd dfsn2 preq2 syl5req fveq2d syl5ibrcom
    1ne2 neeq1d necon2d impbida ) ACEZBDEZFZABGZABHZIJZKLZVJVKFZAMZBMNZIJZOOPQZ
    VMKVOVRVPIJZOPQZVSVJVIBVPEZRZVRWALZVKVHVIUAWBABWBBABAUBUCUDVIVPUEEZWCWDAUFV
    IWEWCFWDVPBDUGSUHUIVOVTOOPVJVTOLZVKVHWFVIACUJTZTUKULVLVQIABUMUNUOUPVJVNVKVJ
    ABVMKVJVMKGABLZVTKGVJVTOKWGOKGVJVDUQURWHVMVTKWHVLVPIWHVPAAHVLAUSABAUTVAVBVE
    VCVFSVG $.

  $( Obsolete version of ~ hashprg as of 18-Sep-2021.  (Contributed by Mario
     Carneiro, 27-Sep-2013.)  (Revised by Mario Carneiro, 5-May-2016.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  hashprgOLD $p |- ( ( A e. V /\ B e. V ) ->
    ( A =/= B <-> ( # ` { A , B } ) = 2 ) ) $=
    ( wcel wa wne cpr chash cfv c2 wceq csn cun c1 caddc co wn simpr imp adantr
    elsni eqcomd necon3ai cfn snfi hashunsng mpanr1 syl2an hashsng oveq1d eqtrd
    df-pr fveq2i df-2 3eqtr4g a1i eqnetrd dfsn2 preq2 syl5req fveq2d syl5ibrcom
    1ne2 neeq1d necon2d impbida ) ACDZBCDZEZABFZABGZHIZJKZVIVJEZALZBLMZHIZNNOPZ
    VLJVNVQVOHIZNOPZVRVIVHBVODZQZVQVTKZVJVGVHRWAABWABABAUAUBUCVHVOUDDZWBWCAUEVH
    WDWBEWCVOBCUFSUGUHVNVSNNOVIVSNKZVJVGWEVHACUITZTUJUKVKVPHABULUMUNUOVIVMVJVIA
    BVLJVIVLJFABKZVSJFVIVSNJWFNJFVIVCUPUQWGVLVSJWGVKVOHWGVOAAGVKAURABAUSUTVAVDV
    BVESVF $.

  $( If one element of an unordered pair is not a set, the size of the
     unordered pair is not 2.  (Contributed by Alexander van der Vekens,
     7-Oct-2017.) $)
  elprchashprn2 $p |- ( -. M e. _V -> -. ( # ` { M , N } ) = 2 ) $=
    ( cvv wcel wn wceq chash cfv c2 c1 wa fveq2 eqcomd eqeq1d biimpa id wne syl
    c0 cc0 cpr csn prprc1 wi hashsng 1ne2 a1i eqnetrd neneqd expcom snprc eqeq2
    hash0 0ne2 sylancl ex sylbi pm2.61i ) ACDEABUAZBUBZFZUSGHZIFEZABUCBCDZVAVCU
    DZVDUTGHZJFZVEBCUEVAVGVCVAVGKVBJFZVCVAVGVHVAVFVBJVAVBVFUSUTGLMNOVHVBIVHVBJI
    VHPJIQVHUFUGUHUIRUJRVDEUTSFZVEBUKVIVAVCVIVAKUSSFZSGHZTFZVCVIVAVJUTSUSULOUMV
    JVLKVBTFZVCVJVLVMVJVKVBTVJVBVKUSSGLMNOVMVBIVMVBTIVMPTIQVMUNUGUHUIRUOUPUQURR
    $.

  $( The size of an unordered pair is 2 if and only if its elements are
     different sets.  (Contributed by Alexander van der Vekens,
     17-Jan-2018.) $)
  hashprb $p |- ( ( M e. _V /\ N e. _V /\ M =/= N )
                  <-> ( # ` { M , N } ) = 2 ) $=
    ( cvv wcel wne w3a cpr chash cfv c2 hashprg biimp3a wi elprchashprn2 pm2.21
    wceq wn syl prcom wa fveq2i eqeq1i sylnbi simpll simplr biimpar 3jca impbii
    ex ecase ) ACDZBCDZABEZFZABGZHIZJPZUKULUMUQABCCKZLUKULUQUNMZUKQUQQUSABNUQUN
    OZRULQBAGZHIZJPZQUSBANVCUQUSVBUPJVAUOHBASUAUBUTUCRUKULTZUQUNVDUQTUKULUMUKUL
    UQUDUKULUQUEVDUMUQURUFUGUIUJUH $.

  ${
    hashprdifel.s $e |- S = { A , B } $.
    $( The elements of an unordered pair of size 2 are different sets.
       (Contributed by AV, 27-Jan-2020.) $)
    hashprdifel $p |- ( ( # ` S ) = 2 -> ( A e. S /\ B e. S /\ A =/= B ) ) $=
      ( chash cfv wceq cvv wcel wne w3a cpr fveq2i eqeq1i hashprb bitr4i prid1g
      c2 3ad2ant1 syl6eleqr prid2g 3ad2ant2 simp3 3jca sylbi ) CEFZRGZAHIZBHIZA
      BJZKZACIZBCIZUJKUGABLZEFZRGUKUFUORCUNEDMNABOPUKULUMUJUKAUNCUHUIAUNIUJABHQ
      SDTUKBUNCUIUHBUNIUJABHUAUBDTUHUIUJUCUDUE $.
  $}

  $( There is (at least) one set with two different elements: the unordered
     pair containing ` 0 ` and ` 1 ` .  In contrast to ~ pr0hash2ex , numbers
     are used instead of sets because their representation is shorter (and more
     comprehensive).  (Contributed by AV, 29-Jan-2020.) $)
  prhash2ex $p |- ( # ` { 0 , 1 } ) = 2 $=
    ( cc0 c1 cpr chash cfv c2 wceq wne 0ne1 cvv wcel wb c0ex 1ex hashprg bicomd
    wa mp2an mpbir ) ABCDEFGZABHZIAJKZBJKZTUALMNUBUCQUATABJJOPRS $.

  $( If the size of a set is less than or equal to zero, the set must be empty.
     (Contributed by Alexander van der Vekens, 6-Jan-2018.)  (Proof shortened
     by AV, 24-Oct-2021.) $)
  hashle00 $p |- ( V e. W -> ( ( # ` V ) <_ 0 <-> V = (/) ) ) $=
    ( wcel chash cfv cc0 cle wbr wa wceq c0 cxnn0 hashxnn0 xnn0ge0 syl biantrud
    cxr wb hashxrcl 0xr xrletri3 sylancl hasheq0 3bitr2d ) ABCZADEZFGHZUGFUFGHZ
    IZUFFJZAKJUEUHUGUEUFLCUHABMUFNOPUEUFQCFQCUJUIRABSTUFFUAUBABUCUD $.

  ${
    $d V x $.
    $( If the size of a set is greater than zero, the set must contain at least
       one element.  (Contributed by Alexander van der Vekens, 6-Jan-2018.) $)
    hashgt0elex $p |- ( ( V e. W /\ 0 < ( # ` V ) ) -> E. x x e. V ) $=
      ( wcel cc0 chash cfv clt wbr cv wex wn wa cle c0 wceq adantr mpbird cxr
      wb wal wi eq0 biimpri a1d sylbir impcom hashle00 hashxrcl xrlenlt sylancl
      alnex 0xr bicomd ex con4d imp ) BCDZEBFGZHIZAJBDZAKZURVBUTURVBLZUTLZURVCM
      ZVDUSENIZVEVFBOPZVCURVGVCVALAUAZURVGUBVAAULVHVGURVGVHABUCUDUEUFUGURVFVGTV
      CBCUHQRURVDVFTVCURVFVDURUSSDESDVFVDTBCUIUMUSEUJUKUNQRUOUPUQ $.

    $( The size of a set is greater than zero if and only if the set contains
       at least one element.  (Contributed by Alexander van der Vekens,
       18-Jan-2018.) $)
    hashgt0elexb $p |- ( V e. W -> ( 0 < ( # ` V ) <-> E. x x e. V ) ) $=
      ( wcel cc0 chash cfv clt wbr cv wex hashgt0elex c0 wne n0 hashgt0 impbida
      sylan2br ) BCDZEBFGHIZAJBDAKZABCLUASBMNTABOBCPRQ $.
  $}

  ${
    hashp1i.1 $e |- A e. _om $.
    hashp1i.2 $e |- B = suc A $.
    hashp1i.3 $e |- ( # ` A ) = M $.
    hashp1i.4 $e |- ( M + 1 ) = N $.
    $( Size of a finite ordinal.  (Contributed by Mario Carneiro,
       5-Jan-2016.) $)
    hashp1i $p |- ( # ` B ) = N $=
      ( chash cfv csn cun csuc eqtri c1 caddc co wcel com ax-mp df-suc cfn wceq
      fveq2i wn nnfi word nnord ordirr mp2b wa wi hashunsng mp2an oveq1i ) BIJA
      AKLZIJZDBUPIBAMUPFAUANUDUQAIJZOPQZDAUBRZAARUEZUQUSUCZASRZUTEAUFTVCAUGVAEA
      UHAUIUJVCUTVAUKVBULEAASUMTUNUSCOPQDURCOPGUOHNNN $.
  $}

  $( Size of a finite ordinal.  (Contributed by Mario Carneiro, 5-Jan-2016.) $)
  hash1 $p |- ( # ` 1o ) = 1 $=
    ( c0 c1o cc0 c1 peano1 df-1o hash0 0p1e1 hashp1i ) ABCDEFGHI $.

  $( Size of a finite ordinal.  (Contributed by Mario Carneiro, 5-Jan-2016.) $)
  hash2 $p |- ( # ` 2o ) = 2 $=
    ( c1o c2o c1 c2 1onn df-2o hash1 1p1e2 hashp1i ) ABCDEFGHI $.

  $( Size of a finite ordinal.  (Contributed by Mario Carneiro, 5-Jan-2016.) $)
  hash3 $p |- ( # ` 3o ) = 3 $=
    ( c2o c3o c2 c3 2onn df-3o hash2 2p1e3 hashp1i ) ABCDEFGHI $.

  $( Size of a finite ordinal.  (Contributed by Mario Carneiro, 5-Jan-2016.) $)
  hash4 $p |- ( # ` 4o ) = 4 $=
    ( c3o c4o c3 c4 3onn df-4o hash3 3p1e4 hashp1i ) ABCDEFGHI $.

  $( There is (at least) one set with two different elements: the unordered
     pair containing the empty set and the singleton containing the empty set.
     (Contributed by AV, 29-Jan-2020.) $)
  pr0hash2ex $p |- ( # ` { (/) , { (/) } } ) = 2 $=
    ( c0 csn cpr chash cfv c2o c2 df2o2 eqcomi fveq2i hash2 eqtri ) AABCZDEFDEG
    MFDFMHIJKL $.

  $( The size of a subset is less than or equal to the size of its superset.
     (Contributed by Alexander van der Vekens, 14-Jul-2018.) $)
  hashss $p |- ( ( A e. V /\ B C_ A ) -> ( # ` B ) <_ ( # ` A ) ) $=
    ( cfn wcel wss wa chash cfv cle wbr wi cdom com12 adantl wb cpnf cvv adantr
    ex ssdomg impcom ssfi adantrl simpl hashdom syl2anc mpbird wceq hashinf cxr
    ssexg ancoms hashxrcl pnfge 3syl breq2 sylibrd expcom mpd impancom pm2.61i
    wn ) ADEZACEZBAFZGZBHIZAHIZJKZLVDVGVJVDVGGZVJBAMKZVGVDVLVFVDVLLVEVDVFVLBADU
    ANOUBVKBDEZVDVJVLPVDVFVMVEABUCUDVDVGUEBADUFUGUHTVGVDVCZVJVEVNVFVJVEVNGVIQUI
    ZVFVJLZACUJVEVOVPLVNVOVEVPVOVEGVFVHQJKZVJVEVFVQLVOVEVFVQVGBREZVHUKEVQVFVEVR
    BACULUMBRUNVHUOUPTOVOVJVQPVEVIQVHJUQSURUSSUTVANVB $.

  $( The size of a superset of a proper unordered pair is greater than 1.
     (Contributed by AV, 6-Feb-2021.) $)
  prsshashgt1 $p |- ( ( ( A e. V /\ B e. W /\ A =/= B ) /\ C e. U )
                      -> ( { A , B } C_ C -> 2 <_ ( # ` C ) ) ) $=
    ( wcel wne w3a wa cpr wss c2 chash cfv cle wbr wceq cvv elex hashprb biimpi
    id syl3an ad2antrr hashss adantll eqbrtrrd ex ) AEGZBFGZABHZIZCDGZJZABKZCLZ
    MCNOZPQUOUQJUPNOZMURPUMUSMRZUNUQUJASGZUKBSGZULULUTAETBFTULUCVAVBULIUTABUAUB
    UDUEUNUQUSURPQUMCUPDUFUGUHUI $.

  $( The size of the intersection of a set and a class is less than or equal to
     the size of the set.  (Contributed by AV, 4-Jan-2021.) $)
  hashin $p |- ( A e. V -> ( # ` ( A i^i B ) ) <_ ( # ` A ) ) $=
    ( wcel cin wss chash cfv cle wbr inss1 hashss mpan2 ) ACDABEZAFNGHAGHIJABKA
    NCLM $.

  $( The size of the difference of a finite set and a subset is the set's size
     minus the subset's.  (Contributed by Steve Rodriguez, 24-Oct-2015.) $)
  hashssdif $p |- ( ( A e. Fin /\ B C_ A ) ->
    ( # ` ( A \ B ) ) = ( ( # ` A ) - ( # ` B ) ) ) $=
    ( cfn wcel wss wa chash cfv cmin co cdif wceq caddc wb eqcomd hashcl nn0cnd
    cc cn0 syl cun ssfi diffi cin c0 disjdif hashun mp3an3 syl2an anabss1 undif
    biimpi fveq2d eqeq1d adantl mpbid subadd syl3an 3anidm13 anabss5 mpbird ) A
    CDZBAEZFZAGHZBGHZIJZABKZGHZVDVGVILZVFVIMJZVELZVDVEVKVDBVHUAZGHZVKLZVEVKLZVB
    VCVOVDBCDZVHCDZVOVBABUBZABUCZVQVRBVHUDUELVOBAUFBVHUGUHUIUJVCVOVPNVBVCVNVEVK
    VCVMAGVCVMALBAUKULUMUNUOUPOVBVCVJVLNZVBVDWAVBVERDVDVFRDVBVIRDWAVBVEAPQVDVFV
    DVQVFSDVSBPTQVBVIVBVRVISDVTVHPTQVEVFVIUQURUSUTVAO $.

  $( The size of the difference of a finite set and another set is the first
     set's size minus that of the intersection of both.  (Contributed by Steve
     Rodriguez, 24-Oct-2015.) $)
  hashdif $p |- ( A e. Fin ->
    ( # ` ( A \ B ) ) = ( ( # ` A ) - ( # ` ( A i^i B ) ) ) ) $=
    ( cfn wcel cdif chash cfv cin cmin co difin fveq2i wss wceq inss1 hashssdif
    mpan2 syl5eqr ) ACDZABEZFGAABHZEZFGZAFGUAFGIJZUBTFABKLSUAAMUCUDNABOAUAPQR
    $.

  $( The size of the difference of a finite set and a singleton subset is the
     set's size minus 1.  (Contributed by Alexander van der Vekens,
     6-Jan-2018.) $)
  hashdifsn $p |- ( ( A e. Fin /\ B e. A )
                    -> ( # ` ( A \ { B } ) ) = ( ( # ` A ) - 1 ) ) $=
    ( cfn wcel wa csn cdif chash cfv cmin co c1 wss wceq snssi hashssdif sylan2
    hashsng adantl oveq2d eqtrd ) ACDZBADZEZABFZGHIZAHIZUEHIZJKZUGLJKUCUBUEAMUF
    UINBAOAUEPQUDUHLUGJUCUHLNUBBARSTUA $.

  $( The size of the difference of a finite set and a proper ordered pair
     subset is the set's size minus 2.  (Contributed by AV, 16-Dec-2020.) $)
  hashdifpr $p |- ( ( A e. Fin /\ ( B e. A /\ C e. A /\ B =/= C ) )
                    -> ( # ` ( A \ { B , C } ) ) = ( ( # ` A ) - 2 ) ) $=
    ( cfn wcel wne w3a wa cpr cdif chash cfv c1 cmin co c2 wceq difpr hashdifsn
    csn fveq2d diffi necom biimpi anim2i 3adant1 adantl eldifsn sylibr syl2an2r
    a1i 3ad2antr1 oveq1d cc hashcl nn0cnd sub1m1 syl adantr eqtrd 3eqtrd ) ADEZ
    BAEZCAEZBCFZGZHZABCIJZKLABTZJZCTJZKLZVJKLZMNOZAKLZPNOZVGVHVKKVHVKQVGABCRUKU
    AVBVJDEVFCVJEZVLVNQAVIUBVGVDCBFZHZVQVFVSVBVDVEVSVCVEVRVDVEVRBCUCUDUEUFUGCAB
    UHUIVJCSUJVGVNVOMNOZMNOZVPVGVMVTMNVBVDVCVMVTQVEABSULUMVBWAVPQZVFVBVOUNEWBVB
    VOAUOUPVOUQURUSUTVA $.

  $( The size of a singleton is either 0 or 1.  (Contributed by AV,
     23-Feb-2021.) $)
  hashsn01 $p |- ( ( # ` { A } ) = 0 \/ ( # ` { A } ) = 1 ) $=
    ( cvv wcel csn chash cfv cc0 wceq c1 wo hashsng olcd wn snprc biimpi fveq2d
    c0 hash0 syl6eq orcd pm2.61i ) ABCZADZEFZGHZUDIHZJUBUFUEABKLUBMZUEUFUGUDQEF
    GUGUCQEUGUCQHANOPRSTUA $.

  $( The size of a singleton is less than or equal to 1.  (Contributed by AV,
     23-Feb-2021.) $)
  hashsnle1 $p |- ( # ` { A } ) <_ 1 $=
    ( csn chash cfv cc0 wceq c1 wo cle wbr hashsn01 0le1 breq1 mpbiri 1le1 jaoi
    ax-mp ) ABCDZEFZRGFZHRGIJZAKSUATSUAEGIJLREGIMNTUAGGIJORGGIMNPQ $.

  $( Get an upper bound on a concretely specified finite set.  Base case:
     singleton set.  (Contributed by Mario Carneiro, 11-Feb-2015.)  (Proof
     shortened by AV, 23-Feb-2021.) $)
  hashsnlei $p |- ( { A } e. Fin /\ ( # ` { A } ) <_ 1 ) $=
    ( csn cfn wcel chash cfv c1 cle wbr snfi hashsnle1 pm3.2i ) ABZCDMEFGHIAJAK
    L $.

  ${
    $d V a $.
    $( The size of a set is 1 if and only if it is a singleton (containing a
       set).  (Contributed by Alexander van der Vekens, 7-Dec-2017.) $)
    hash1snb $p |- ( V e. W -> ( ( # ` V ) = 1 <-> E. a V = { a } ) ) $=
      ( wcel chash cfv c1 wceq cv csn wex cfn wi wa c1o cen wn cpnf ax-mp cvv
      wbr id hash1 syl6eqr adantl wb com 1onn nnfi mp1i hashen sylan2 mpbid en1
      sylib ex a1d hashinf eqeq1 wne 1re renepnf df-ne pm2.21 eqcoms syl6bi syl
      cr sylbi expcom pm2.61i fveq2 vex hashsng syl6eq exlimiv impbid1 ) ABDZAE
      FZGHZACIZJZHZCKZALDZVRVTWDMZMWEWFVRWEVTWDWEVTNZAOPUAZWDWGVSOEFZHZWHVTWJWE
      VTVSGWIVTUBUCUDUEVTWEOLDZWJWHUFOUGDWKVTUHOUIUJAOUKULUMCAUNUOUPUQVRWEQZWFV
      RWLNVSRHZWFABURWMVTRGHWDVSRGUSWDGRGRUTZGRHZWDMZGVHDWNVAGVBSWNWOQWPGRVCWOW
      DVDVISVEVFVGVJVKWCVTCWCVSWBEFZGAWBEVLWATDWQGHCVMWATVNSVOVPVQ $.

    $( The size of a set is 1 in terms of existential uniqueness.  (Contributed
       by Alexander van der Vekens, 8-Feb-2018.) $)
    euhash1 $p |- ( V e. W -> ( ( # ` V ) = 1 <-> E! a a e. V ) ) $=
      ( wcel chash cfv c1 wceq c1o cen wbr cv weu hashen1 euen1b syl6bb ) ABDAE
      FGHAIJKCLADCMABNCAOP $.
  $}

  ${
    $d A a $.
    $( If the size of a set is 1 the set is not empty.  (Contributed by AV,
       23-Dec-2020.) $)
    hash1n0 $p |- ( ( A e. V /\ ( # ` A ) = 1 ) -> A =/= (/) ) $=
      ( va wcel chash cfv c1 wceq c0 wne cv csn wex hash1snb id vex a1i eqnetrd
      snnz exlimiv syl6bi imp ) ABDZAEFGHZAIJZUCUDACKZLZHZCMUEABCNUHUECUHAUGIUH
      OUGIJUHUFCPSQRTUAUB $.
  $}

  ${
    $d W a $.  $d V a b $.
    $( In a set with more than one element are two different elements.
       (Contributed by Alexander van der Vekens, 15-Nov-2017.) $)
    hashgt12el $p |- ( ( V e. W /\ 1 < ( # ` V ) )
                       -> E. a e. V E. b e. V a =/= b ) $=
      ( c0 wceq wcel c1 chash cfv clt wbr wa wne wrex wi cc0 cle wn wral biimpd
      hash0 fveq2 syl5eqr breq2 eqcoms 0le1 0re 1re lenlti pm2.21 sylbi syl6com
      cv ax-mp adantl com12 syl df-ne necom bitr3i weq ralnex nne equcom ralbii
      bitri csn wb eqsn bicomd ralbidv hashsnle1 syl6eqbr a1i reximdva0 r19.36v
      sylbid hashxrcl adantr rexri xrlenlt sylancl sylibd syl5bi con4d impancom
      cxr pm2.61i ) EAFZABGZHAIJZKLZMZCUNZDUNZNZDAOZCAOZPZWJQWLFZWTWJQEIJWLUBEA
      IUCUDWNXAWSWMXAWSPWKXAWMHQKLZWSWMXBPWLQWLQFWMXBWLQHKUEUAUFQHRLZXBWSPZUGXC
      XBSXDQHUHUIUJXBWSUKULUOUMUPUQURWJSZAENZWTXEEANXFEAUSEAUTVAWNXFWSWKXFWMWSW
      KXFMZWSWMWSSZDCVBZDATZCATZXGWMSZXHWRSZCATXKWRCAVCXMXJCAXMWQSZDATXJWQDAVCX
      NXIDAXNCDVBXIWOWPVDCDVEVGVFVAVFVAXGXKWLHRLZXLXGXKAWOVHZFZCATZXOXGXJXQCAXG
      XQXJXFXQXJVIWKDAWOVJUPVKVLXGXQXOPZCAOXRXOPWKXSCAXSWKWOAGMXQWLXPIJHRAXPIUC
      WOVMVNVOVPXQXOCAVQURVRXGWLWHGZHWHGXOXLVIWKXTXFABVSVTHUIWAWLHWBWCWDWEWFWGU
      QULWI $.

    $d A b $.
    $( In a set with more than one element are two different elements.
       (Contributed by Alexander van der Vekens, 15-Nov-2017.) $)
    hashgt12el2 $p |- ( ( V e. W /\ 1 < ( # ` V ) /\ A e. V )
                       -> E. b e. V A =/= b ) $=
      ( c0 wceq wcel c1 chash cfv clt wbr wne wi cc0 cle wn wa wb adantr w3a cv
      wrex hash0 fveq2 syl5eqr breq2 biimpd eqcoms 0le1 0re lenlti pm2.21 sylbi
      ax-mp syl6com 3ad2ant2 syl5com df-ne necom bitr3i wral ralnex eqcom bitri
      1re nne ralbii csn eqsn bicomd adantl hashsnle1 breq1d mpbiri ex hashxrcl
      sylbid rexri xrlenlt sylancl sylibd syl5bi con4d exp31 com24 3imp pm2.61i
      cxr com12 ) EBFZBCGZHBIJZKLZABGZUAZADUBZMZDBUCZNZWKOWMFZWPWSWKOEIJWMUDEBI
      UEUFWNWLXAWSNWOXAWNHOKLZWSWNXBNWMOWMOFWNXBWMOHKUGUHUIOHPLZXBWSNZUJXCXBQXD
      OHUKVFULXBWSUMUNUOUPUQURWKQZBEMZWTXEEBMXFEBUSEBUTVAWPXFWSWLWNWOXFWSNWLXFW
      OWNWSWLXFWOWNWSNWLXFRZWORZWSWNWSQZWQAFZDBVBZXHWNQZXIWRQZDBVBXKWRDBVCXMXJD
      BXMAWQFXJAWQVGAWQVDVEVHVAXHXKWMHPLZXLXHXKBAVIZFZXNXGXKXPSZWOXFXQWLXFXPXKD
      BAVJVKVLTXHXPXNXHXPRXNXOIJZHPLZAVMXPXNXSSXHXPWMXRHPBXOIUEVNVLVOVPVRXHWMWI
      GZHWIGXNXLSXGXTWOWLXTXFBCVQTTHVFVSWMHVTWAWBWCWDWEWFWGWJUNWH $.
  $}

  ${
    hashunlei.c $e |- C = ( A u. B ) $.
    hashunlei.a $e |- ( A e. Fin /\ ( # ` A ) <_ K ) $.
    hashunlei.b $e |- ( B e. Fin /\ ( # ` B ) <_ M ) $.
    hashunlei.k $e |- K e. NN0 $.
    hashunlei.m $e |- M e. NN0 $.
    hashunlei.n $e |- ( K + M ) = N $.
    $( Get an upper bound on a concretely specified finite set.  Induction
       step: union of two finite bounded sets.  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    hashunlei $p |- ( C e. Fin /\ ( # ` C ) <_ N ) $=
      ( cfn wcel chash cfv cle wbr mp2an nn0rei cun simpli eqeltri caddc fveq2i
      unfi co hashun2 eqbrtri simpri cn0 hashcl ax-mp le2addi readdcli eqeltrri
      breqtri cr letri pm3.2i ) CMNZCOPZFQRZCABUAZMGAMNZBMNZVDMNVEAOPZDQRZHUBZV
      FBOPZEQRZIUBZABUFSUCZVBVGVJUDUGZQRVNFQRVCVBVDOPZVNQCVDOGUEVEVFVOVNQRVIVLA
      BUHSUIVNDEUDUGZFQVHVKVNVPQRVEVHHUJVFVKIUJVGVJDEVGVEVGUKNVIAULUMTZVJVFVJUK
      NVLBULUMTZDJTZEKTZUNSLUQVBVNFVBVAVBUKNVMCULUMTVGVJVQVRUOVPFURLDEVSVTUOUPU
      SSUT $.
  $}

  ${
    hashsslei.b $e |- B C_ A $.
    hashsslei.a $e |- ( A e. Fin /\ ( # ` A ) <_ N ) $.
    hashsslei.n $e |- N e. NN0 $.
    $( Get an upper bound on a concretely specified finite set.  Transfer
       boundedness to a subset.  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    hashsslei $p |- ( B e. Fin /\ ( # ` B ) <_ N ) $=
      ( cfn wcel chash cfv cle wbr wss simpli ssfi mp2an hashcl ax-mp nn0rei
      cn0 cdom ssdomg mp2 wb hashdom mpbir simpri letri pm3.2i ) BGHZBIJZCKLZAG
      HZBAMZUJUMAIJZCKLZENZDABOPZUKUOKLZUPULUSBAUALZUMUNUTUQDBAGUBUCUJUMUSUTUDU
      RUQBAGUEPUFUMUPEUGUKUOCUKUJUKTHURBQRSUOUMUOTHUQAQRSCFSUHPUI $.
  $}

  $( Value of the numeric cardinality of a nonempty integer range.
     (Contributed by Stefan O'Rear, 12-Sep-2014.)  (Proof shortened by Mario
     Carneiro, 15-Apr-2015.) $)
  hashfz $p |- ( B e. ( ZZ>= ` A ) ->
    ( # ` ( A ... B ) ) = ( ( B - A ) + 1 ) ) $=
    ( cfv wcel cfz co chash c1 cmin caddc cen wbr wceq cz sylancr cc zcnd eqtrd
    ax-1cn cn0 cuz eluzel2 eluzelz zsubcl fzen syl3anc pncan3 sylancl addsub12d
    1cnd subcld addcom oveq12d breqtrd hasheni uznn0sub peano2nn0 hashfz1 3syl
    1z syl ) BAUACDZABEFZGCZHBAIFZHJFZEFZGCZVFVBVCVGKLVDVHMVBVCAHAIFZJFZBVIJFZE
    FZVGKVBANDZBNDVINDZVCVLKLABUBZABUCZVBHNDVMVNUTVOHAUDOVIABUEUFVBVJHVKVFEVBAP
    DHPDZVJHMVBAVOQZSAHUGUHVBVKHVEJFZVFVBBHAVBBVPQZVBUJVRUIVBVQVEPDVSVFMSVBBAVT
    VRUKHVEULORUMUNVCVGUOVAVBVETDVFTDVHVFMABUPVEUQVFURUSR $.

  $( Condition for finite ranges to have a strict dominance relation.
     (Contributed by Stefan O'Rear, 12-Sep-2014.)  (Revised by Mario Carneiro,
     15-Apr-2015.) $)
  fzsdom2 $p |- ( ( ( B e. ( ZZ>= ` A ) /\ C e. ZZ ) /\ B < C ) ->
    ( A ... B ) ~< ( A ... C ) ) $=
    ( cuz cfv wcel cz wa clt wbr cfz co chash cmin caddc ad2antrr zred resubcld
    c1 wceq csdm eluzelz eluzel2 simplr 1red simpr ltsub1dd ltadd1dd hashfz cle
    ltled eluz2 syl3anbrc simpll uztrn syl2anc syl 3brtr4d cfn wb fzfi hashsdom
    mp2an sylib ) BADEZFZCGFZHZBCIJZHZABKLZMEZACKLZMEZIJZVKVMUAJZVJBANLZSOLZCAN
    LZSOLZVLVNIVJVQVSSVJBAVJBVFBGFZVGVIABUBPZQZVJAVFAGFVGVIABUCPQZRVJCAVJCVFVGV
    IUDZQZWDRVJUEVJBCAWCWFWDVHVIUFZUGUHVFVLVRTVGVIABUIPVJCVEFZVNVTTVJCBDEFZVFWH
    VJWAVGBCUJJWIWBWEVJBCWCWFWGUKBCULUMVFVGVIUNBCAUOUPACUIUQURVKUSFVMUSFVOVPUTA
    BVAACVAVKVMVBVCVD $.

  $( Cardinality of a half-open set of integers.  (Contributed by Stefan
     O'Rear, 15-Aug-2015.) $)
  hashfzo $p |- ( B e. ( ZZ>= ` A ) -> ( # ` ( A ..^ B ) ) = ( B - A ) ) $=
    ( cuz cfv wcel wceq cfzo co chash cmin c1 cc0 eluzel2 zcnd subidd c0 fveq2d
    caddc cc eqtrd fzo0 fveq2i hash0 eqtri syl6reqr oveq2 eqeq12d syl5ibrcom wa
    oveq1 cfz eluzelz fzoval syl adantr hashfz 1cnd sub32d oveq1d subcld ax-1cn
    cz npcan sylancl sylan9eqr ex uzm1 mpjaod ) BACDZEZBAFZABGHZIDZBAJHZFZBKJHZ
    VIEZVJVOVKAAGHZIDZAAJHZFVJVTLVSVJAVJAABMNZOVSPIDLVRPIAUAUBUCUDUEVKVMVSVNVTV
    KVLVRIBAAGUFQBAAJUJUGUHVJVQVOVJVQUIVMAVPUKHZIDZVNVJVMWCFVQVJVLWBIVJBVBEVLWB
    FABULZABUMUNQUOVQVJWCVPAJHZKRHZVNAVPUPVJWFVNKJHZKRHZVNVJWEWGKRVJBKAVJBWDNZV
    JUQWAURUSVJVNSEKSEWHVNFVJBAWIWAUTVAVNKVCVDTVETVFABVGVH $.

  $( Cardinality of a half-open set of integers based at zero.  (Contributed by
     Stefan O'Rear, 15-Aug-2015.) $)
  hashfzo0 $p |- ( B e. NN0 -> ( # ` ( 0 ..^ B ) ) = B ) $=
    ( cn0 wcel cc0 cfzo co chash cfv cmin wceq cuz hashfzo nn0uz eleq2s subid1d
    nn0cn eqtrd ) ABCZDAEFGHZADIFZASTJADKHBDALMNRAAPOQ $.

  $( Value of the numeric cardinality of a (possibly empty) integer range.
     (Contributed by AV, 19-Jun-2021.) $)
  hashfzp1 $p |- ( B e. ( ZZ>= ` A )
                   -> ( # ` ( ( A + 1 ) ... B ) ) = ( B - A ) ) $=
    ( wceq cuz cfv wcel c1 caddc co cfz chash cmin wi c0 cc0 cz fveq2d zcnd syl
    wa hash0 clt wbr eluzelre ltp1d eluzelz peano2z ancri fzn 3syl mpbid subidd
    wb 3eqtr4a oveq1 oveq1d oveq2 eqeq12d syl5ibr wn wo uzp1 pm2.24 eqcoms ax-1
    jaoi impcom hashfz eluzel2 1cnd nppcan2d adantl eqtrd ex pm2.61i ) ABCZBADE
    FZAGHIZBJIZKEZBALIZCZMVQWBVPBGHIZBJIZKEZBBLIZCVQNKEOWEWFUAVQWDNKVQBWCUBUCZW
    DNCZVQBABUDUEVQBPFZWCPFZWITWGWHUMABUFZWIWJBUGUHWCBUIUJUKQVQBVQBWKRZULUNVPVT
    WEWAWFVPVSWDKVPVRWCBJABGHUOUPQABBLUQURUSVPUTZVQWBWMVQTZVTBVRLIGHIZWAWNBVRDE
    FZVTWOCVQWMWPVQBACZWPVAWMWPMZABVBWQWRWPWRABVPWPVCVDWPWMVEVFSVGVRBVHSVQWOWAC
    WMVQBAGWLVQAABVIRVQVJVKVLVMVNVO $.

  $( Value of the numeric cardinality of a nonempty range of nonnegative
     integers.  (Contributed by Alexander van der Vekens, 21-Jul-2018.) $)
  hashfz0 $p |- ( B e. NN0 -> ( # ` ( 0 ... B ) ) = ( B + 1 ) ) $=
    ( cn0 wcel cc0 cfz co chash cfv cmin c1 caddc cuz wceq elnn0uz hashfz sylbi
    nn0cn subid1d oveq1d eqtrd ) ABCZDAEFGHZADIFZJKFZAJKFUAADLHCUBUDMANDAOPUAUC
    AJKUAAAQRST $.

  ${
    $d A x y z $.  $d B x y z $.
    hashxplem.1 $e |- B e. Fin $.
    $( Lemma for ~ hashxp .  (Contributed by Paul Chapman, 30-Nov-2012.) $)
    hashxplem $p |- ( A e. Fin ->
                      ( # ` ( A X. B ) ) = ( ( # ` A ) x. ( # ` B ) ) ) $=
      ( cxp chash cfv cmul co wceq c0 xpeq1 fveq2d fveq2 oveq1d eqeq12d cc0 cfn
      wcel caddc c1 vx vy vz cv csn cun hashcl nn0cnd mul02d ax-mp hash0 oveq1i
      0xp fveq2i eqtri 3eqtr4ri wn wa oveq1 adantl xpundir cin xpfi inxp disjsn
      mpan2 biimpri xpeq1d syl6eq syl5eq snfi hashun mp3an2 syl2an cen wbr snex
      mp2an elexi xpcomen vex xpsnen entri wb hashen mpbir oveq2i adantr cvv wi
      hashunsng cc ax-1cn cn0 nn0cn adddir mp3an23 syl mulid2i eqtrd 3eqtr4d ex
      mp2b findcard2s ) UAUDZBDZEFZXEEFZBEFZGHZIJBDZEFZJEFZXIGHZIUBUDZBDZEFZXOE
      FZXIGHZIZXOUCUDZUEZUFZBDZEFZYCEFZXIGHZIZABDZEFZAEFZXIGHZIUAUBUCAXEJIZXGXL
      XJXNYMXFXKEXEJBKLYMXHXMXIGXEJEMNOXEXOIZXGXQXJXSYNXFXPEXEXOBKLYNXHXRXIGXEX
      OEMNOXEYCIZXGYEXJYGYOXFYDEXEYCBKLYOXHYFXIGXEYCEMNOXEAIZXGYJXJYLYPXFYIEXEA
      BKLYPXHYKXIGXEAEMNOPXIGHZPXNXLBQRZYQPICYRXIYRXIBUGZUHUIUJXMPXIGUKULXLXMPX
      KJEBUMUNUKUOUPXOQRZYAXORUQZURZXTYHUUBXTURXQXISHZXSXISHZYEYGXTUUCUUDIUUBXQ
      XSXISUSUTUUBYEUUCIXTUUBYEXPYBBDZUFZEFZUUCYDUUFEXOYBBVAUNUUBUUGXQUUEEFZSHZ
      UUCYTXPQRZXPUUEVBZJIZUUGUUIIZUUAYTYRUUJCXOBVCVFUUAUUKXOYBVBZBBVBZDZJXOBYB
      BVDUUAUUPJUUODJUUAUUNJUUOUUNJIUUAXOYAVEVGVHUUOUMVIVJUUJUUEQRZUULUUMYBQRYR
      UUQYAVKCYBBVCVRZXPUUEVLVMVNUUHXIXQSUUHXIIZUUEBVOVPZUUEBYBDBYBBYAVQBQCVSZV
      TBYAUVAUCWAZWBWCUUQYRUUSUUTWDUURCUUEBWEVRWFWGVIVJWHUUBYGUUDIXTUUBYGXRTSHZ
      XIGHZUUDUUBYFUVCXIGYAWIRUUBYFUVCIWJUVBXOYAWIWKUJNYTUVDUUDIUUAYTUVDXSTXIGH
      ZSHZUUDYTXRWLRZUVDUVFIZYTXRXOUGUHUVGTWLRXIWLRZUVHWMYRXIWNRUVICYSXIWOXCZXR
      TXIWPWQWRUVEXIXSSXIUVJWSWGVIWHWTWHXAXBXD $.
  $}

  $( The size of the Cartesian product of two finite sets is the product of
     their sizes.  (Contributed by Paul Chapman, 30-Nov-2012.) $)
  hashxp $p |- ( ( A e. Fin /\ B e. Fin ) ->
                 ( # ` ( A X. B ) ) = ( ( # ` A ) x. ( # ` B ) ) ) $=
    ( cfn wcel cxp chash cfv cmul co wceq wi c0 cif xpeq2 fveq2d oveq2d eqeq12d
    fveq2 imbi2d 0fin elimel hashxplem dedth impcom ) BCDZACDZABEZFGZAFGZBFGZHI
    ZJZUEUFULKUFAUEBLMZEZFGZUIUMFGZHIZJZKBLBUMJZULURUFUSUHUOUKUQUSUGUNFBUMANOUS
    UJUPUIHBUMFRPQSAUMBLCTUAUBUCUD $.

  ${
    $d a x y z B $.  $d a x A $.
    $( The size of the set exponential of two finite sets is the exponential of
       their sizes.  (This is the original motivation behind the notation for
       set exponentiation.)  (Contributed by Mario Carneiro, 5-Aug-2014.) $)
    hashmap $p |- ( ( A e. Fin /\ B e. Fin ) ->
                   ( # ` ( A ^m B ) ) = ( ( # ` A ) ^ ( # ` B ) ) ) $=
      ( cfn wcel cmap co chash cfv cexp wceq fveq2d fveq2 eqeq12d imbi2d oveq2d
      wi c0 c1 cvv cmul va vx vy vz cv oveq1 oveq1d csn cun oveq2 hashcl nn0cnd
      cc0 exp0d eqcomd c1o vex map0e ax-mp df1o2 eqtri fveq2i 0ex hashsng hash0
      oveq2i 3eqtr4g wn wa cxp cen wbr w3a 3pm3.2i simprr disjsn sylibr mapunen
      snex sylancr wb simpl simprl snfi unfi sylancl mapfi syl2anc adantrr xpfi
      cin hashen mpbird hashxp mapsnen mpbiri eqtrd hashunsng adantl adantr cn0
      caddc cc ad2antrl expp1d syl5ibr expcom a2d findcard2s com12 vtoclga imp
      ) ACDBCDZABEFZGHZAGHZBGHZIFZJZXMUAUEZBEFZGHZXTGHZXQIFZJZPXMXSPUAACXTAJZYE
      XSXMYFYBXOYDXRYFYAXNGXTABEUFKYFYCXPXQIXTAGLUGMNXMXTCDZYEYGXTUBUEZEFZGHZYC
      YHGHZIFZJZPYGXTQEFZGHZYCQGHZIFZJZPYGXTUCUEZEFZGHZYCYSGHZIFZJZPYGXTYSUDUEZ
      UHZUIZEFZGHZYCUUGGHZIFZJZPYGYEPUBUCUDBYHQJZYMYRYGUUMYJYOYLYQUUMYIYNGYHQXT
      EUJKUUMYKYPYCIYHQGLOMNYHYSJZYMUUDYGUUNYJUUAYLUUCUUNYIYTGYHYSXTEUJKUUNYKUU
      BYCIYHYSGLOMNYHUUGJZYMUULYGUUOYJUUIYLUUKUUOYIUUHGYHUUGXTEUJKUUOYKUUJYCIYH
      UUGGLOMNYHBJZYMYEYGUUPYJYBYLYDUUPYIYAGYHBXTEUJKUUPYKXQYCIYHBGLOMNYGRYCUMI
      FZYOYQYGUUQRYGYCYGYCXTUKULZUNUOYOQUHZGHZRYNUUSGYNUPUUSXTSDZYNUPJUAUQZXTSU
      RUSUTVAVBQSDUUTRJVCQSVDUSVAYPUMYCIVEVFVGYSCDZUUEYSDVHZVIZYGUUDUULYGUVEUUD
      UULPUUDUULYGUVEVIZUUAYCTFZUUCYCTFZJUUAUUCYCTUFUVFUUIUVGUUKUVHUVFUUIYTXTUU
      FEFZVJZGHZUVGUVFUUIUVKJZUUHUVJVKVLZUVFYSSDZUUFSDZUVAVMYSUUFWKQJZUVMUVNUVO
      UVAUCUQUUEVSUVBVNUVFUVDUVPYGUVCUVDVOYSUUEVPVQYSUUFXTSSSVRVTUVFUUHCDZUVJCD
      ZUVLUVMWAUVFYGUUGCDZUVQYGUVEWBZUVFUVCUUFCDZUVSYGUVCUVDWCUUEWDZYSUUFWEWFXT
      UUGWGWHUVFYTCDZUVICDZUVRYGUVCUWCUVDXTYSWGWIZUVFYGUWAUWDUVTUWBXTUUFWGWFZYT
      UVIWJWHUUHUVJWLWHWMUVFUVKUUAUVIGHZTFZUVGUVFUWCUWDUVKUWHJUWEUWFYTUVIWNWHUV
      FUWGYCUUATUVFUWGYCJZUVIXTVKVLZXTUUEUVBUDUQZWOUVFUWDYGUWIUWJWAUWFUVTUVIXTW
      LWHWPOWQWQUVFUUKYCUUBRXBFZIFUVHUVFUUJUWLYCIUVEUUJUWLJZYGUUESDUVEUWMPUWKYS
      UUESWRUSWSOUVFYCUUBYGYCXCDUVEUURWTUVCUUBXADYGUVDYSUKXDXEWQMXFXGXHXIXJXKXL
      $.

    $( The size of the power set of a finite set is 2 raised to the power of
       the size of the set.  (Contributed by Paul Chapman, 30-Nov-2012.)
       (Proof shortened by Mario Carneiro, 5-Aug-2014.) $)
    hashpw $p |- ( A e. Fin -> ( # ` ~P A ) = ( 2 ^ ( # ` A ) ) ) $=
      ( vx cv cpw chash cfv c2 cexp co wceq cfn pweq fveq2d oveq2d eqeq12d wcel
      fveq2 c2o c0 mpan cmap cen wbr vex pw2en wb pwfi biimpi csn df2o2 eqeltri
      cpr mapfi hashen syl2anc mpbiri hashmap hash2 oveq1i syl6eq eqtrd vtoclga
      prfi ) BCZDZEFZGVDEFZHIZJADZEFZGAEFZHIZJBAKVDAJZVFVJVHVLVMVEVIEVDALMVMVGV
      KGHVDAEQNOVDKPZVFRVDUAIZEFZVHVNVFVPJZVEVOUBUCZVDBUDUEVNVEKPZVOKPZVQVRUFVN
      VSVDUGUHRKPZVNVTRSSUIZULKUJSWBVCUKZRVDUMTVEVOUNUOUPVNVPREFZVGHIZVHWAVNVPW
      EJWCRVDUQTWDGVGHURUSUTVAVB $.
  $}

  ${
    $d x y z F $.
    $( A finite set is a function iff it is equinumerous to its domain.
       (Contributed by Mario Carneiro, 26-Sep-2013.)  (Revised by Mario
       Carneiro, 12-Mar-2015.) $)
    hashfun $p |- ( F e. Fin -> ( Fun F <-> ( # ` F ) = ( # ` dom F ) ) ) $=
      ( vx vy vz cfn wcel chash cfv cdm wceq cr syl adantr wbr cvv c1 caddc cle
      c0 c2 wfun wfn funfn hashfn sylbi wa wrel cv cop weq wi wal wn wne hashcl
      cn0 dmfi nn0red clt cxp wrex wral df-rel dfss3 bitri notbii rexnal bitr4i
      wss w3a csn cdif cun co dmun fveq2i dmsnn0 biimpri necon1bi uneq2d syl6eq
      3ad2ant3 un0 fveq2d syl5eq diffi peano2re cdom fidomdm wb hashdom syl2anc
      mpbird ltp1d lelttrd 3ad2ant1 eqbrtrd cin snfi incom disjdif eqtri hashun
      mp3an23 vex hashsng ax-mp oveq2i syl6req breqtrd difsnid 3ad2ant2 3brtr3d
      dmeqd rexlimdv3a syl5bi imp gtned necon4bd wex 2nalexn df-ne anbi2i annim
      ex exbii exnal bitr2i 2exbii cpr 2re readdcl sylancr 1re opex undif sylbb
      prss syl5reqr ad2antrl dmprop dfsn2 eqtr4i uneq1i hashun2 oveq1i syl6breq
      1lt2 ltadd1 mp3an12i mpbii leadd2 mpbid prfi mp3an13 opth simprbi necon3i
      mp3an3 hashprg oveq1d ad2antll 3eqtr3rd ltletrd exlimdv exlimdvv sylanbrc
      mp2an sylib dffun4 impbid2 ) AEFZAUAZAGHZAIZGHZJZUVMAUVOUBUVQAUCUVOAUDUEU
      VLUVQUVMUVLUVQUFAUGZBUHZCUHZUIZAFUVSDUHZUIZAFUFZCDUJZUKZDULZCULBULZUVMUVL
      UVQUVRUVLUVRUVNUVPUVLUVRUMZUVNUVPUNZUVLUWIUFUVPUVNUVLUVPKFZUWIUVLUVPUVLUV
      OEFUVPUPFAUQUVOUOLURZMUVLUWIUVPUVNUSNZUWIUVSOOUTZFZUMZBAVAZUVLUWMUWIUWOBA
      VBZUMUWQUVRUWRUVRAUWNVIUWRAVCBAUWNVDVEVFUWOBAVGVHUVLUWPUWMBAUVLUVSAFZUWPV
      JZAUVSVKZVLZUXAVMZIZGHZUXCGHZUVPUVNUSUWTUXEUXBGHZPQVNZUXFUSUWTUXEUXBIZGHZ
      UXHUSUWTUXEUXIUXAIZVMZGHUXJUXDUXLGUXBUXAVOVPUWTUXLUXIGUWTUXLUXISVMUXIUWTU
      XKSUXIUWPUVLUXKSJUWSUWOUXKSUWOUXKSUNUVSVQVRVSWBVTUXIWCWAWDWEUVLUWSUXJUXHU
      SNUWPUVLUXJUXGUXHUVLUXJUVLUXIEFZUXJUPFUVLUXBEFZUXMAUXAWFZUXBUQLZUXIUOLURU
      VLUXGUVLUXNUXGUPFUXOUXBUOLURZUVLUXGKFUXHKFUXQUXGWGLUVLUXJUXGRNZUXIUXBWHNZ
      UVLUXNUXSUXOUXBWILUVLUXMUXNUXRUXSWJUXPUXOUXIUXBEWKWLWMUVLUXGUXQWNWOWPWQUV
      LUWSUXHUXFJUWPUVLUXFUXGUXAGHZQVNZUXHUVLUXNUXFUYAJZUXOUXNUXAEFZUXBUXAWRZSJ
      UYBUVSWSZUYDUXAUXBWRSUXBUXAWTUXAAXAXBUXBUXAXCXDLUXTPUXGQUVSOFUXTPJBXEZUVS
      OXFXGZXHXIWPXJUWSUVLUXEUVPJUWPUWSUXDUVOGUWSUXCAAUVSXKZXNWDXLUWSUVLUXFUVNJ
      UWPUWSUXCAGUYHWDXLXMXOXPXQXRYEXSXQUVLUVQUWHUVLUWHUVNUVPUWHUMZUWDUVTUWBUNZ
      UFZDXTZCXTBXTZUVLUWJUYIUWGUMZCXTBXTUYMUWGBCYAUYNUYLBCUYLUWFUMZDXTUYNUYKUY
      ODUYKUWDUWEUMZUFUYOUYJUYPUWDUVTUWBYBYCUWDUWEYDVEYFUWFDYGYHYIVEUVLUYLUWJBC
      UVLUYKUWJDUVLUYKUWJUVLUYKUFZUVPUVNUVLUWKUYKUWLMZUYQUVPTAUWAUWCYJZVLZIZGHZ
      QVNZUVNUYRUYQTKFZVUBKFZVUCKFZYKUVLVUEUYKUVLVUBUVLVUAEFZVUBUPFUVLUYTEFZVUG
      AUYSWFZUYTUQLZVUAUOLURZMTVUBYLZYMUVLUVNKFUYKUVLUVNAUOURMUYQUVPPVUBQVNZVUC
      UYRUVLVUMKFZUYKUVLPKFZVUEVUNYNVUKPVUBYLYMMUVLVUFUYKUVLVUDVUEVUFYKVUKVULYM
      MUYQUVPUXAVUAVMZGHZVUMRUWDUVPVUQJUVLUYJUWDUVOVUPGUWDUVOUYSIZVUAVMZVUPUWDV
      USUYSUYTVMZIUVOUYSUYTVOUWDVUTAUWDUYSAVIVUTAJUWAUWCAUVSUVTYOZUVSUWBYOZYRUY
      SAYPYQZXNYSVURUXAVUAVURUVSUVSYJUXAUVSUVTUVSUWBCXEZDXEUUAUVSUUBUUCUUDWAWDY
      TUVLVUQVUMRNUYKUVLVUQUXTVUBQVNZVUMRUVLUYCVUGVUQVVERNUYEVUJUXAVUAUUEYMUXTP
      VUBQUYGUUFUUGMWQUVLVUMVUCUSNZUYKUVLPTUSNZVVFUUHVUOVUDUVLVUEVVGVVFWJYNYKVU
      KPTVUBUUIUUJUUKMWOUYQVUCTUYTGHZQVNZUVNRUVLVUCVVIRNZUYKUVLVUBVVHRNZVVJUVLV
      VKVUAUYTWHNZUVLVUHVVLVUIUYTWILUVLVUGVUHVVKVVLWJVUJVUIVUAUYTEWKWLWMUVLVUEV
      VHKFZVVKVVJWJZVUKUVLVVHUVLVUHVVHUPFVUIUYTUOLURVUEVVMVUDVVNYKVUBVVHTUULUUS
      WLUUMMUYQVUTGHZUYSGHZVVHQVNZUVNVVIUVLVVOVVQJZUYKUVLVUHVVRVUIUYSEFVUHUYSUY
      TWRSJVVRUWAUWCUUNUYSAXAUYSUYTXCUUOLMUWDVVOUVNJUVLUYJUWDVUTAGVVCWDYTUYJVVQ
      VVIJUVLUWDUYJVVPTVVHQUYJUWAUWCUNZVVPTJZUWAUWCUVTUWBUWAUWCJBBUJUWEUVSUVTUV
      SUWBUYFVVDUUPUUQUURUWAOFUWCOFVVSVVTWJVVAVVBUWAUWCOOUUTUVHUVIUVAUVBUVCXJUV
      DXRYEUVEUVFXPXSXQBCDAUVJUVGYEUVK $.
  $}

  $( The number of elements of a finite function restricted to a subset of its
     domain is equal to the number of elements of that subset.  (Contributed by
     AV, 15-Dec-2021.) $)
  hashres $p |- ( ( Fun A /\ A e. Fin /\ B C_ dom A )
                  -> ( # ` ( A |` B ) ) = ( # ` B ) ) $=
    ( wfun cfn wcel cdm wss w3a cres chash cfv wceq funres 3ad2ant1 wb 3ad2ant2
    finresfin hashfun syl mpbid ssdmres biimpi 3ad2ant3 fveq2d eqtrd ) ACZADEZB
    AFGZHZABIZJKZUJFZJKZBJKUIUJCZUKUMLZUFUGUNUHBAMNUIUJDEZUNUOOUGUFUPUHBAQPUJRS
    TUIULBJUHUFULBLZUGUHUQBAUAUBUCUDUE $.

  $( The number of elements of a finite function expressed by a restriction.
     (Contributed by AV, 15-Dec-2021.) $)
  hashreshashfun $p |- ( ( Fun A /\ A e. Fin /\ B C_ dom A )
                         -> ( # ` A ) = ( ( # ` ( A |` B ) )
                                          + ( # ` ( dom A \ B ) ) ) ) $=
    ( wfun cfn wcel cdm wss w3a chash cfv cdif caddc co wceq 3adant1 syl hashcl
    wa cc nn0cnd cres simp1 hashfun 3ad2ant2 mpbid cmin anim1i hashssdif oveq2d
    wb dmfi wi ssfi syl6 imp cn0 adantr jca pncan3 eqtr2d hashres eqcomd oveq1d
    ex 3eqtrd ) ACZADEZBAFZGZHZAIJZVHIJZBIJZVHBKIJZLMZABUAIJZVNLMVJVFVKVLNZVFVG
    VIUBVGVFVFVQUJVIAUCUDUEVJVOVMVLVMUFMZLMZVLVJVNVRVMLVJVHDEZVIRZVNVRNVGVIWAVF
    VGVTVIAUKZUGOVHBUHPUIVJVMSEZVLSEZRZVSVLNVGVIWEVFVGVIRWCWDVGVIWCVGVTVIWCULWB
    VTVIBDEZWCVTVIWFVHBUMVDWFVMBQTUNPUOVGWDVIVGVLVGVTVLUPEWBVHQPTUQUROVMVLUSPUT
    VJVMVPVNLVJVPVMABVAVBVCVE $.

  $( The size of the image of a one-to-one function ` E ` under the range of a
     function ` F ` which is a one-to-one function into the domain of ` E `
     equals the size of the function ` F ` .  (Contributed by Alexander van der
     Vekens, 4-Feb-2018.)  (Proof shortened by AV, 4-May-2021.) $)
  hashimarn $p |- ( ( E : dom E -1-1-> ran E /\ E e. V )
                    -> ( F : ( 0 ..^ ( # ` F ) ) -1-1-> dom E
                         -> ( # ` ( E " ran F ) ) = ( # ` F ) ) ) $=
    ( cdm crn wf1 wcel wa cc0 chash cfv cfzo co wceq adantl sylib wfun hashf1rn
    syl cvv cima cres wss wf f1f frn ssdmres fveq2d f1fun funres funfn ad2antrr
    wfn hashfn ovex sylancl simpll f1ssres syl2anc syl2an2 eqtr3d df-ima fveq2i
    fex rnexg syl6reqr mpan 3eqtr4d ex ) ADZAEZAFZACGZHZIBJKZLMZVJBFZABEZUAZJKZ
    VONVNVQHZAVRUBZDZJKZVRJKZVTVOWAWCVRJWAVRVJUCZWCVRNVQWFVNVQVPVJBUDZWFVPVJBUE
    ZVPVJBUFSOZVRAUGPUHWAWDWBEZJKZVTWAWBJKZWDWKWAWBWCUMZWLWDNVLWMVMVQVLAQZWMVJV
    KAUIWNWBQWMVRAUJWBUKPSULWCWBUNSVQVRTGZVNVRVKWBFZWLWKNVQBTGZWOVQWGVPTGZWQWHI
    VOLUOZVPVJTBVDUPBTVESWAVLWFWPVLVMVQUQWIVJVKVRAURUSVRVKWBTRUTVAVSWJJAVRVBVCV
    FVQVOWENZVNWRVQWTWSVPVJBTRVGOVHVI $.

  $( If the size of the image of a one-to-one function ` E ` under the range of
     a function ` F ` which is a one-to-one function into the domain of ` E `
     is a nonnegative integer, the size of the function ` F ` is the same
     nonnegative integer.  (Contributed by Alexander van der Vekens,
     4-Feb-2018.) $)
  hashimarni $p |- ( ( E : dom E -1-1-> ran E /\ E e. V )
                     -> ( ( F : ( 0 ..^ ( # ` F ) ) -1-1-> dom E
                /\ P = ( E " ran F ) /\ ( # ` P ) = N ) -> ( # ` F ) = N ) ) $=
    ( cc0 chash cfv cfzo co cdm wf1 crn cima wceq w3a wcel wa wi wb fveq2 id ex
    eqeq1d adantl hashimarn impcom adantr sylbid exp31 com23 com34 3imp com12
    sylan9req ) FCGHZIJBKZCLZABCMNZOZAGHZDOZPUQBMBLBEQRZUPDOZURUTVBVCVDSURUTVCV
    BVDURVCUTVBVDSZURVCUTVEURVCRZUTRVBUSGHZDOZVDUTVBVHTVFUTVAVGDAUSGUAUDUEVFVHV
    DSUTVFVHVDVFVHUPVGDVCURVGUPOBCEUFUGVHUBUOUCUHUIUJUKULUMUN $.

  ${
    resunimafz0.i $e |- ( ph -> Fun I ) $.
    resunimafz0.f $e |- ( ph -> F : ( 0 ..^ ( # ` F ) ) --> dom I ) $.
    resunimafz0.n $e |- ( ph -> N e. ( 0 ..^ ( # ` F ) ) ) $.
    $( TODO-AV:  Revise using ` F e. Word dom I ` ?  Formerly part of proof of
       ~ eupth2lem3 :  The union of a restriction by an image over an open
       range of nonnegative integers and a singleton of an ordered pair is a
       restriction by an image over an interval of nonnegative integers.
       (Contributed by Mario Carneiro, 8-Apr-2015.)  (Revised by AV,
       20-Feb-2021.) $)
    resunimafz0 $p |- ( ph -> ( I |` ( F " ( 0 ... N ) ) )
                          = ( ( I |` ( F " ( 0 ..^ N ) ) )
                              u. { <. ( F ` N ) , ( I ` ( F ` N ) ) >. } ) ) $=
      ( cc0 co cima cres cfzo cfv csn cun wcel wceq syl sylib wfn cfz cop chash
      imaundi cuz cn0 elfzonn0 elnn0uz fzisfzounsn imaeq2d ffnd syl2anc 3eqtr4a
      fnsnfv uneq2d reseq2d resundi syl6eq wfun funfn ffvelrnd fnressn eqtrd
      cdm ) ACBHDUAIZJZKZCBHDLIZJZKZCDBMZNZKZOZVJVKVKCMUBNZOAVGCVIVLOZKVNAVFVPC
      ABVHDNZOZJVIBVQJZOVFVPBVHVQUDAVEVRBADHUEMPZVEVRQADUFPZVTADHBUCMZLIZPZWAGD
      WBUGRDUHSHDUIRUJAVLVSVIABWCTWDVLVSQAWCCVDZBFUKGWCDBUNULUOUMUPCVIVLUQURAVM
      VOVJACWETZVKWEPVMVOQACUSWFECUTSAWCWEDBFGVAWEVKCVBULUOVC $.
  $}

  $( The size of a function on a finite set of sequential nonnegative integers.
     (Contributed by Alexander van der Vekens, 25-Jun-2018.) $)
  fnfz0hash $p |- ( ( N e. NN0 /\ F Fn ( 0 ... N ) )
                    -> ( # ` F ) = ( N + 1 ) ) $=
    ( cc0 cfz co wfn cn0 wcel chash cfv c1 caddc hashfn hashfz0 sylan9eqr ) ACB
    DEZFBGHAIJPIJBKLEPAMBNO $.

  $( The size of a function on a finite set of sequential nonnegative integers
     equals the upper bound of the sequence increased by 1.  (Contributed by
     Alexander van der Vekens, 15-Mar-2018.)  (Proof shortened by AV,
     11-Apr-2021.) $)
  ffz0hash $p |- ( ( N e. NN0 /\ F : ( 0 ... N ) --> B )
                   -> ( # ` F ) = ( N + 1 ) ) $=
    ( cc0 cfz co wf cn0 wcel wfn chash cfv c1 caddc wceq ffn fnfz0hash sylan2 )
    DCEFZABGCHIBSJBKLCMNFOSABPBCQR $.

  $( The size of a function on a finite set of sequential nonnegative integers
     is a nonnegative integer.  (Contributed by AV, 10-Apr-2021.) $)
  fnfz0hashnn0 $p |- ( F Fn ( 0 ... N ) -> ( # ` F ) e. NN0 ) $=
    ( cc0 cfz co wfn chash cfv cn0 hashfn cfn wcel fzfi hashcl ax-mp syl6eqel )
    ACBDEZFAGHQGHZIQAJQKLRILCBMQNOP $.

  $( The size of a function on a half-open range of nonnegative integers.
     (Contributed by Alexander van der Vekens, 25-Mar-2018.) $)
  ffzo0hash $p |- ( ( N e. NN0 /\ F Fn ( 0 ..^ N ) ) -> ( # ` F ) = N ) $=
    ( cc0 cfzo co wfn cn0 wcel chash cfv hashfn hashfzo0 sylan9eqr ) ACBDEZFBGH
    AIJNIJBNAKBLM $.

  $( The size of a function on a half-open range of nonnegative integers equals
     the upper bound of this range.  (Contributed by Alexander van der Vekens,
     26-Jan-2018.)  (Proof shortened by AV, 11-Apr-2021.) $)
  fnfzo0hash $p |- ( ( N e. NN0 /\ F : ( 0 ..^ N ) --> B )
                     -> ( # ` F ) = N ) $=
    ( cc0 cfzo co wf cn0 wcel wfn chash cfv wceq ffn ffzo0hash sylan2 ) DCEFZAB
    GCHIBQJBKLCMQABNBCOP $.

  $( The value of the size function on a half-open range of nonnegative
     integers is a nonnegative integer.  (Contributed by AV, 10-Apr-2021.) $)
  fnfzo0hashnn0 $p |- ( F Fn ( 0 ..^ N ) -> ( # ` F ) e. NN0 ) $=
    ( cc0 cfzo co wfn chash cfv cn0 hashfn cfn wcel fzofi hashcl ax-mp syl6eqel
    ) ACBDEZFAGHQGHZIQAJQKLRILCBMQNOP $.

  ${
    $d j k u v w x y z A $.  $d j k u v x K $.  $d u v x ph $.
    ${
      hashbc.1 $e |- ( ph -> A e. Fin ) $.
      hashbc.2 $e |- ( ph -> -. z e. A ) $.
      hashbc.3 $e |- ( ph -> A. j e. ZZ
        ( ( # ` A ) _C j ) = ( # ` { x e. ~P A | ( # ` x ) = j } ) ) $.
      hashbc.4 $e |- ( ph -> K e. ZZ ) $.
      $( Lemma for ~ hashbc : inductive step.  (Contributed by Mario Carneiro,
         13-Jul-2014.) $)
      hashbclem $p |- ( ph -> ( ( # ` ( A u. { z } ) ) _C K ) =
        ( # ` { x e. ~P ( A u. { z } ) | ( # ` x ) = K } ) ) $=
        ( chash cfv co c1 caddc wceq wa wcel wss cfn vu vv cbc cmin wel csn cun
        wn cv cpw crab wral oveq2 eqeq2 rabbidv fveq2d eqeq12d rspcv sylc ssun1
        cz sspwb mpbi sseli adantl elpwi ssneld mpan9 jca uncom syl6sseq adantr
        cin c0 wb simpr disjsn sylibr disjssun syl mpbid vex elpw impbida anass
        anbi1d syl6bb rabbidva2 eqtrd peano2zm cen wbr cdif cvv pwfi sylib snfi
        rabexg unfi sylancl ssrab2 ssfi elex fveq2 eqeq1d elrab unss1 snex unex
        ad2antrl syl2anc ssneldd hashun syl3anc simprr hashsng ax-mp oveq12d cc
        a1i zcnd ax-1cn mpbir eleq2 anbi12d sylanbrc ex syl5bi cn0 hashcl snssd
        syl5eq incom eqtri oveq2i syl6eq oveq1d eqcom bitri wo npcan ssun2 snss
        3eqtrd jctil ssundif difexg nn0cnd pncan undif1 simprrl ssequn2 disjdif
        simprrr 3eqtr3d eqtr3d anbi12i simp3rl 3adant3 uneqdifeq bicomd 3bitr4g
        w3a eqeq1i 3expib en3d hashen mpbird bcpasc eqtr4d pm2.1 biantrur andir
        rabbiia unrab eqtr4i fveq2i inrab simprl simpll pm2.65i rabeq0 3eqtr4d
        rgenw ) ADKLZFUCMZUWEFNUDMZUCMZOMZCBUEZUHZBUIZKLZFPZQZBDCUIZUFZUGZUJZUK
        ZKLZUWJUWNQZBUWSUKZKLZOMZUWRKLZFUCMZUWNBUWSUKZKLZAUWFUXAUWHUXDOAUWFUWNB
        DUJZUKZKLZUXAAFVARZUWEEUIZUCMZUWMUXNPZBUXJUKZKLZPZEVAULZUWFUXLPZJIUXSUY
        AEFVAUXNFPZUXOUWFUXRUXLUXNFUWEUCUMUYBUXQUXKKUYBUXPUWNBUXJUXNFUWMUNUOUPU
        QURUSAUXKUWTKAUWNUWOBUXJUWSAUWLUXJRZUWNQUWLUWSRZUWKQZUWNQUYDUWOQAUYCUYE
        UWNAUYCUYEAUYCQUYDUWKUYCUYDAUXJUWSUWLDUWRSUXJUWSSDUWQUTDUWRVBVCVDVEAUWP
        DRUHZUYCUWKHUYCUWLDUWPUWLDVFVGVHVIUYEUYCAUYEUWLDSZUYCUYEUWLUWQDUGZSZUYG
        UYDUYIUWKUYDUWLUWRUYHUWLUWRVFDUWQVJZVKVLUYEUWLUWQVMVNPZUYIUYGVOUYEUWKUY
        KUYDUWKVPUWLUWPVQVRUWLUWQDVSVTWAUWLDBWBWCVRVEWDWFUYDUWKUWNWEWGWHUPWIAUW
        HUWMUWGPZBUXJUKZKLZUXDAUWGVARZUXTUWHUYNPZAUXMUYOJFWJVTIUXSUYPEUWGVAUXNU
        WGPZUXOUWHUXRUYNUXNUWGUWEUCUMUYQUXQUYMKUYQUXPUYLBUXJUXNUWGUWMUNUOUPUQUR
        USAUYNUXDPZUYMUXCWKWLZAUAUBUYMUXCUAUIZUWQUGZUBUIZUWQWMZAUXJTRZUYMWNRADT
        RZVUDGDWOWPZUYLBUXJTWRVTAUXCTRZUXCWNRAUWSTRZUXCUWSSVUGAUWRTRZVUHAVUEUWQ
        TRZVUIGUWPWQZDUWQWSWTUWRWOWPZUXBBUWSXAUWSUXCXBWTZUXCTXCVTUYTUYMRZUYTUXJ
        RZUYTKLZUWGPZQZAVUAUXCRZUYLVUQBUYTUXJUWLUYTPUWMVUPUWGUWLUYTKXDXEXFZAVUR
        VUSAVURQZVUAUWSRZUWPVUARZVUAKLZFPZQZVUSVVAVUAUWRSZVVBVVAUYTDSZVVGVUOVVH
        AVUQUYTDVFXJZUYTDUWQXGVTVUAUWRUYTUWQUAWBUWPXHXIWCVRVVAVVEVVCVVAVVDVUPUW
        QKLZOMZUWGNOMZFVVAUYTTRZVUJUYTUWQVMZVNPZVVDVVKPVVAVUEVVHVVMAVUEVURGVLVV
        IDUYTXBXKVUJVVAVUKXTVVACUAUEUHVVOVVAUYTDUWPVVIAUYFVURHVLXLUYTUWPVQVRZUY
        TUWQXMXNVVAVUPUWGVVJNOAVUOVUQXOVVJNPZVVAUWPWNRVVQCWBZUWPWNXPXQZXTXRVVAF
        XSRNXSRZVVLFPVVAFAUXMVURJVLYAYBFNUUAWTUUDVVCUWQVUASUWQUYTUUBUWPVUAVVRUU
        CYCUUEUXBVVFBVUAUWSUWLVUAPZUWJVVCUWNVVEUWLVUAUWPYDVWAUWMVVDFUWLVUAKXDXE
        YEXFYFYGYHVUBUXCRZVUBUWSRZCUBUEZVUBKLZFPZQZQZAVUCUYMRZUXBVWGBVUBUWSUWLV
        UBPZUWJVWDUWNVWFUWLVUBUWPYDVWJUWMVWEFUWLVUBKXDXEYEXFZAVWHVWIAVWHQZVUCUX
        JRZVUCKLZUWGPZVWIVWLVUCDSZVWMVWLVUBUYHSVWPVWLVUBUWRUYHVWCVUBUWRSAVWGVUB
        UWRVFXJUYJVKVUBUWQDUUFWPZVUCDVUBWNRVUCWNRUBWBVUBUWQWNUUGXQWCVRVWLVWNNOM
        ZNUDMZVWNUWGVWLVWNXSRVVTVWSVWNPVWLVWNVWLVUCTRZVWNYIRVWLVUEVWPVWTAVUEVWH
        GVLVWQDVUCXBXKZVUCYJVTUUHYBVWNNUUIWTVWLVWRFNUDVWLVUCUWQUGZKLZVWEVWRFVWL
        VXBVUBKVWLVXBVUBUWQUGZVUBVUBUWQUUJVWLUWQVUBSZVXDVUBPVWLUWPVUBAVWCVWDVWF
        UUKYKUWQVUBUULWPYLUPVWLVXCVWNVVJOMZVWRVWLVWTVUJVUCUWQVMZVNPZVXCVXFPVXAV
        UJVWLVUKXTVXHVWLVXGUWQVUCVMVNVUCUWQYMUWQVUBUUMYNXTVUCUWQXMXNVVJNVWNOVVS
        YOYPAVWCVWDVWFUUNUUOYQUUPUYLVWOBVUCUXJUWLVUCPUWMVWNUWGUWLVUCKXDXEXFYFYG
        YHVUNVWBQVURVWHQAUYTVUCPZVUBVUAPZVOZVUNVURVWBVWHVUTVWKUUQAVURVWHVXKAVUR
        VWHUVCZVUCUYTPZUWQUYTUGZVUBPZVXIVXJVXLVXOVXMVXLVXEUWQUYTVMZVNPVXOVXMVOV
        XLUWPVUBVWDVWFVWCAVURUURYKVXLVXPVVNVNUWQUYTYMAVURVVOVWHVVPUUSYLUWQUYTVU
        BUUTXKUVAUYTVUCYRVXJVUAVUBPVXOVUBVUAYRVUAVXNVUBUYTUWQVJUVDYSUVBUVEYHUVF
        AUYMTRZVUGUYRUYSVOAVUDUYMUXJSVXQVUFUYLBUXJXAUXJUYMXBWTVUMUYMUXCUVGXKUVH
        WIXRAUXGUWENOMZFUCMZUWIAUXFVXRFUCAUXFUWEVVJOMZVXRAVUEVUJDUWQVMVNPZUXFVX
        TPGVUJAVUKXTAUYFVYAHDUWPVQVRDUWQXMXNVVJNUWEOVVSYOYPYQAUWEYIRZUXMUWIVXSP
        AVUEVYBGDYJVTJFUWEUVIXKUVJAUXIUWTUXCUGZKLZUXEUXHVYCKUXHUWOUXBYTZBUWSUKV
        YCUWNVYEBUWSUWNVYEVOUYDUWNUWKUWJYTZUWNQVYEVYFUWNUWJUVKUVLUWKUWJUWNUVMYS
        XTUVNUWOUXBBUWSUVOUVPUVQAUWTTRZVUGUWTUXCVMZVNPZVYDUXEPAVUHUWTUWSSVYGVUL
        UWOBUWSXAUWSUWTXBWTVUMVYIAVYHUWOUXBQZBUWSUKZVNUWOUXBBUWSUVRVYKVNPVYJUHZ
        BUWSULVYLBUWSVYJUWJUWOUWJUWNUVSUWKUWNUXBUVTUWAUWDVYJBUWSUWBYCYNXTUWTUXC
        XMXNYLUWC $.
    $}

    $( The binomial coefficient counts the number of subsets of a finite set of
       a given size.  This is Metamath 100 proof #58 (formula for the number of
       combinations).  (Contributed by Mario Carneiro, 13-Jul-2014.) $)
    hashbc $p |- ( ( A e. Fin /\ K e. ZZ ) ->
      ( ( # ` A ) _C K ) = ( # ` { x e. ~P A | ( # ` x ) = K } ) ) $=
      ( vk vj wcel chash cfv cv cbc co wceq crab cz c0 fveq2 fveq2d eqeq12d cc0
      wral vw vy vz cfn cpw csn cun oveq1d pweq rabeq syl ralbidv cfz hash0 a1i
      c1 elfz1eq oveq12d cn0 0nn0 bcn0 ax-mp syl6eq pw0 eqcomd raleqi 0ex ralsn
      eqeq1d bitri sylibr rabid2 syl5reqr cvv eqtr4d adantl wn wa oveq1i bcval3
      hashsng mp3an1 id 0z elfz3 syl6eqelr con3i notbid rabeq0 syl5eq pm2.61dan
      rgen oveq2 eqeq2 rabbidv simpll simplr simprr fveq2i eqeq2i ralbii simprl
      cbvrabv cbvralv hashbclem expr ralrimdva syl5bi findcard2s rspccva sylan
      ) BUDFBGHZDIZJKZAIZGHZXMLZABUEZMZGHZLZDNTZCNFXLCJKZXPCLZAXRMZGHZLZUAIZGHZ
      XMJKZXQAYHUEZMZGHZLZDNTOGHZXMJKZXQAOUEZMZGHZLZDNTUBIZGHZXMJKZXQAUUAUEZMZG
      HZLZDNTZUUAUCIZUFUGZGHZXMJKZXQAUUJUEZMZGHZLZDNTZYBUAUBUCBYHOLZYNYTDNUURYJ
      YPYMYSUURYIYOXMJYHOGPUHUURYLYRGUURYKYQLYLYRLYHOUIXQAYKYQUJUKQRULYHUUALZYN
      UUGDNUUSYJUUCYMUUFUUSYIUUBXMJYHUUAGPUHUUSYLUUEGUUSYKUUDLYLUUELYHUUAUIXQAY
      KUUDUJUKQRULYHUUJLZYNUUPDNUUTYJUULYMUUOUUTYIUUKXMJYHUUJGPUHUUTYLUUNGUUTYK
      UUMLYLUUNLYHUUJUIXQAYKUUMUJUKQRULYHBLZYNYADNUVAYJXNYMXTUVAYIXLXMJYHBGPUHU
      VAYLXSGUVAYKXRLYLXSLYHBUIXQAYKXRUJUKQRULYTDNXMNFZXMSSUMKZFZYTUVDYTUVBUVDY
      PUPYSUVDYPSSJKZUPUVDYOSXMSJYOSLUVDUNUOXMSUQZURSUSFZUVEUPLUTSVAVBVCUVDYSOU
      FZGHZUPUVDYRUVHGUVDUVHYQYRVDUVDXQAYQTZYQYRLUVDSXMLZUVJUVDXMSUVFVEUVJXQAUV
      HTUVKXQAYQUVHVDVFXQUVKAOVGXOOLZXPSXMUVLXPYOSXOOGPUNVCVIZVHVJVKXQAYQVLVKVM
      QOVNFUVIUPLVGOVNWAVBVCVOVPUVBUVDVQZVRZYPSXMJKZYSYOSXMJUNVSUVOUVPSYSUVGUVB
      UVNUVPSLUTXMSVTWBUVOYSYOSUVOYROGUVOXQVQZAYQTZYROLUVOUVKVQZUVRUVNUVSUVBUVK
      UVDUVKXMSUVCUVKWCSNFSUVCFWDSWEVBWFWGVPUVRUVQAUVHTUVSUVQAYQUVHVDVFUVQUVSAO
      VGUVLXQUVKUVMWHVHVJVKXQAYQWIVKQUNVCVOWJWKWLUUHUUBEIZJKZUUIGHZUVTLZUCUUDMZ
      GHZLZENTZUUAUDFZUUIUUAFVQZVRZUUQUUGUWFDENXMUVTLZUUCUWAUUFUWEXMUVTUUBJWMUW
      KUUEUWDGUWKUUEXPUVTLZAUUDMZUWDUWKXQUWLAUUDXMUVTXPWNWOUWLUWCAUCUUDXOUUILXP
      UWBUVTXOUUIGPVIXCZVCQRXDUWJUWGUUPDNUWJUVBUWGUUPUWJUVBUWGVRZVRZAUCUUAEXMUW
      HUWIUWOWPUWHUWIUWOWQUWPUWGUWAUWMGHZLZENTUWJUVBUWGWRUWRUWFENUWQUWEUWAUWMUW
      DGUWNWSWTXAVKUWJUVBUWGXBXEXFXGXHXIYAYGDCNXMCLZXNYCXTYFXMCXLJWMUWSXSYEGUWS
      XQYDAXRXMCXPWNWOQRXJXK $.
  $}

  ${
    $d f g h x y A $.  $d f g h x y B $.  $d f g h x y C $.  $d f g h x y D $.
    $( The number of bijections between two sets is a cardinal invariant.
       (Contributed by Mario Carneiro, 21-Jan-2015.) $)
    hashfacen $p |- ( ( A ~~ B /\ C ~~ D ) ->
      { f | f : A -1-1-onto-> C } ~~ { f | f : B -1-1-onto-> D } ) $=
      ( vg vh cv wf1o wex wa ccom cmap cvv wcel wf f1of wb syl wceq cen wbr cab
      vx vy bren eeanv ccnv co wss cdm f1odm vex dmex syl6eqelr syl2anr syl5ibr
      elmapg abssdv ovex ssex crn f1ofo forn rnex f1oco adantll f1ocnv ad2antrr
      syl2anc ex f1oeq1 elab coex cnvex 3imtr4g ad2antlr ancoms adantlr anbi12i
      wfo coass cid cres f1ococnv1 coeq2d adantrr fcoi1 eqtrd syl5req f1ococnv2
      3syl coeq1d adantrl fcoi2 syl5eqr eqeq12d eqcom syl6bb wf1 f1of1 ad2antrl
      cocan1 syl3anc f1ofn ad2antll cocan2 3bitr3d syl5bi en3d exlimivv syl2anb
      wfn sylbir ) ABUAUBABFHZIZFJZCDGHZIZGJZACEHZIZEUCZBDYAIZEUCZUAUBZCDUAUBAB
      FUFCDGUFXQXTKXPXSKZGJFJYFXPXSFGUGYGYFFGYGUDUEYCYEXRUDHZLZXOUHZLZXRUHZUEHZ
      XOLZLZYGYCCAMUIZUJYCNOYGYBEYPYBYAYPOZYGACYAPZACYAQXSCNOANOYQYRRXPXSCXRUKN
      CDXRULXRGUMZUNUOXPAXOUKNABXOULXOFUMZUNUOCAYANNURUPUQUSYCYPCAMUTVASYGYEDBM
      UIZUJYENOYGYDEUUAYDYAUUAOZYGBDYAPZBDYAQXSDNOBNOUUBUUCRXPXSDXRVBZNXSCDXRWA
      UUDDTCDXRVCCDXRVDSXRYSVEUOXPBXOVBZNXPABXOWAZUUEBTABXOVCZABXOVDSXOYTVEUODB
      YANNURUPUQUSYEUUADBMUTVASYGACYHIZBDYKIZYHYCOZYKYEOYGUUHUUIYGUUHKADYIIZBAY
      JIZUUIXSUUHUUKXPACDXRYHVFVGZXPUULXSUUHABXOVHVIBADYIYJVFVJZVKYBUUHEYHUDUMZ
      ACYAYHVLVMZYDUUIEYKYIYJXRYHYSUUOVNXOYTVOVNBDYAYKVLVMVPYGBDYMIZACYOIZYMYEO
      ZYOYCOYGUUQUURYGUUQKDCYLIZADYNIZUURXSUUTXPUUQCDXRVHVQXPUUQUVAXSUUQXPUVAAB
      DYMXOVFVRVSZADCYLYNVFVJZVKYDUUQEYMUEUMZBDYAYMVLVMZYBUUREYOYLYNXRYSVOYMXOU
      VDYTVNVNACYAYOVLVMVPUUJUUSKUUHUUQKZYGYHYOTZYMYKTZRZUUJUUHUUSUUQUUPUVEVTYG
      UVFUVIYGUVFKZYIXRYOLZTZYNYKXOLZTZUVGUVHUVJUVLUVMYNTUVNUVJYIUVMUVKYNUVJUVM
      YIYJXOLZLZYIYIYJXOWBUVJUVPYIWCAWDZLZYIUVJUVOUVQYIXPUVOUVQTXSUVFABXOWEVIWF
      UVJUUKADYIPUVRYITYGUUHUUKUUQUUMWGADYIQADYIWHWLWIWJUVJUVKXRYLLZYNLZYNXRYLY
      NWBUVJUVTWCDWDZYNLZYNUVJUVSUWAYNXSUVSUWATXPUVFCDXRWKVQWMUVJUVAADYNPUWBYNT
      YGUUQUVAUUHUVBWNADYNQADYNWOWLWIWPWQUVMYNWRWSUVJCDXRWTZACYHPZACYOPZUVLUVGR
      XSUWCXPUVFCDXRXAVQUUHUWDYGUUQACYHQXBUVJUURUWEYGUUQUURUUHUVCWNACYOQSACDXRY
      HYOXCXDUVJUUFYMBXMZYKBXMZUVNUVHRXPUUFXSUVFUUGVIUUQUWFYGUUHBDYMXEXFUVJUUIU
      WGYGUUHUUIUUQUUNWGBDYKXESABXOYMYKXGXDXHVKXIXJXKXNXL $.
  $}

  ${
    $d a f g x y z $.  $d a f g x y A $.  $d a f g x y B $.  $d a f g x y ph $.
    $d f g x y F $.
    hashf1lem2.1 $e |- ( ph -> A e. Fin ) $.
    hashf1lem2.2 $e |- ( ph -> B e. Fin ) $.
    hashf1lem2.3 $e |- ( ph -> -. z e. A ) $.
    hashf1lem2.4 $e |- ( ph -> ( ( # ` A ) + 1 ) <_ ( # ` B ) ) $.
    ${
      hashf1lem1.5 $e |- ( ph -> F : A -1-1-> B ) $.
      $( Lemma for ~ hashf1 .  (Contributed by Mario Carneiro, 17-Apr-2015.) $)
      hashf1lem1 $p |- ( ph -> { f | ( ( f |` A ) = F /\
         f : ( A u. { z } ) -1-1-> B ) } ~~ ( B \ ran F ) ) $=
        ( vy cres wceq wa cvv wcel cfn syl c0 vg vx cv csn cun wf1 cab crn cdif
        cfv cop cmap co wss wf f1f adantl snfi unfi sylancl elmapd syl5ibr ovex
        abssdv ssexg difexg vex reseq1 eqeq1d f1eq1 anbi12d elab ad2antll ssun2
        weq snss mpbir ffvelrn wn adantr cima df-ima simprl rneqd syl5eq eleq2d
        wb simprr a1i ssun1 f1elima syl3anc bitr3d mtbird eldifd ex syl5bi wf1o
        cin f1osn f1of ax-mp eldifi snssd fss sylancr res0 eqtr4i disjsn sylibr
        reseq2d 3eqtr4a fresaunres1 f1f1orn f1oun syl22anc f1of1 frn unssd f1ss
        eldifn syl2anc fex snex unexg mpbir2and anbi1i wral wfn simprlr adantrl
        elabg f1fn f1ofn eqfnfv fvres eqcomd simprll ad2antrr fveq2 fveq1d fnsn
        sylan9eqr simpr syl112anc eqtr4d ralrimiva biantrurd ralunb syl6bbr cdm
        fvun1 fdm fsnunfv eqeq2d eqeq12d ralsn eqcom 3bitr4g 3bitr2d en3d ) AUA
        UBEUCZCMZFNZCBUCZUDZUEZDUVBUFZOZEUGZDFUHZUIZUVEUAUCZUJZFUVEUBUCZUKZUDZU
        EZAUVJDUVGULUMZUNUVSPQUVJPQAUVIEUVSUVIUVBUVSQAUVGDUVBUOZUVHUVTUVDUVGDUV
        BUPUQADUVGUVBRRHACRQZUVFRQUVGRQGUVEURCUVFUSUTVAVBVDDUVGULVCUVJUVSPVEUTA
        DRQUVLPQHDUVKRVFSUVMUVJQZUVMCMZFNZUVGDUVMUFZOZAUVNUVLQZUVIUWFEUVMUAVGEU
        AVOZUVDUWDUVHUWEUWHUVCUWCFUVBUVMCVHVIUVGDUVBUVMVJVKVLZAUWFUWGAUWFOZUVND
        UVKUWJUVGDUVMUOZUVEUVGQZUVNDQUWEUWKAUWDUVGDUVMUPVMUWLUVFUVGUNUVFCVNUVEU
        VGBVGZVPVQZUVGDUVEUVMVRUTUWJUVNUVKQZUVECQZAUWPVSZUWFIVTUWJUVNUVMCWAZQZU
        WOUWPUWJUWRUVKUVNUWJUWRUWCUHUVKUVMCWBUWJUWCFAUWDUWEWCWDWEWFUWJUWEUWLCUV
        GUNZUWSUWPWGAUWDUWEWHUWLUWJUWNWIUWTUWJCUVFWJWIUVGDUVMUVECWKWLWMWNWOWPWQ
        AUVOUVLQZUVRUVJQZAUXAOZUXBUVRCMZFNZUVGDUVRUFZUXCCDFUOZUVFDUVQUOZFCUVFWS
        ZMZUVQUXIMZNUXEAUXGUXAACDFUFZUXGKCDFUPSZVTZUXCUVFUVOUDZUVQUOZUXODUNUXHU
        VFUXOUVQWRZUXPUVEUVOUWMUBVGZWTZUVFUXOUVQXAXBUXCUVODUXAUVODQAUVODUVKXCUQ
        XDZUVFUXODUVQXEXFUXCFTMZUVQTMZUXJUXKUYATUYBFXGUVQXGXHUXCUXITFAUXITNZUXA
        AUWQUYCICUVEXIXJZVTZXKUXCUXITUVQUYEXKXLCUVFDFUVQXMWLUXCUVGUVKUXOUEZUVRU
        FZUYFDUNUXFUXCUVGUYFUVRWRZUYGUXCCUVKFWRZUXQUYCUVKUXOWSTNZUYHAUYIUXAAUXL
        UYIKCDFXNSVTUXQUXCUXSWIUYEUXCUVOUVKQVSZUYJUXAUYKAUVODUVKYAUQUVKUVOXIXJC
        UVKUVFUXOFUVQXOXPZUVGUYFUVRXQSUXCUVKUXODUXCUXGUVKDUNUXNCDFXRSUXTXSUVGUY
        FDUVRXTYBUXCUVRPQZUXBUXEUXFOZWGUXCFPQZUVQPQUYMAUYOUXAAUXGUWAUYOUXMGCDRF
        YCYBVTUVPYDFUVQPPYEUTUVIUYNEUVRPUVBUVRNZUVDUXEUVHUXFUYPUVCUXDFUVBUVRCVH
        VIUVGDUVBUVRVJVKYLSYFWPUWBUXAOUWFUXAOZAUVMUVRNZUVOUVNNZWGZUWBUWFUXAUWIY
        GAUYQUYTAUYQOZUYRLUCZUVMUJZVUBUVRUJZNZLUVGYHZVUELUVFYHZUYSVUAUVMUVGYIZU
        VRUVGYIZUYRVUFWGVUAUWEVUHAUWDUWEUXAYJUVGDUVMYMSVUAUYHVUIAUXAUYHUWFUYLYK
        UVGUYFUVRYNSLUVGUVMUVRYOYBVUAVUGVUELCYHZVUGOVUFVUAVUJVUGVUAVUELCVUAVUBC
        QZOZVUCVUBFUJZVUDVUKVUAVUCVUBUWCUJZVUMVUKVUNVUCVUBCUVMYPYQVUAVUBUWCFAUW
        DUWEUXAYRUUAUUCVULFCYIZUVQUVFYIZUYCVUKVUDVUMNVULUXLVUOAUXLUYQVUKKYSCDFY
        MSVUPVULUVEUVOUWMUXRUUBWIAUYCUYQVUKUYDYSVUAVUKUUDCUVFFUVQVUBUULUUEUUFUU
        GUUHVUELCUVFUUIUUJVUAUVNUVEUVRUJZNZUVNUVONVUGUYSVUAVUQUVOUVNVUAUVEPQZUV
        OPQZUVEFUUKZQZVSZVUQUVONVUSVUAUWMWIVUTVUAUXRWIAVVCUYQAVVBUWPIAVVACUVEAU
        XGVVACNUXMCDFUUMSWFWNVTFPPUVEUVOUUNWLUUOVUEVURLUVEUWMLBVOVUCUVNVUDVUQVU
        BUVEUVMYTVUBUVEUVRYTUUPUUQUVOUVNUURUUSUUTWPWQUVA $.
    $}

    $( Lemma for ~ hashf1 .  (Contributed by Mario Carneiro, 17-Apr-2015.) $)
    hashf1lem2 $p |- ( ph -> ( # ` { f | f : ( A u. { z } ) -1-1-> B } ) =
      ( ( ( # ` B ) - ( # ` A ) ) x. ( # ` { f | f : A -1-1-> B } ) ) ) $=
      ( wss chash cfv co cmul wceq cfn wcel wi c0 caddc vx vy va cv wf1 cab csn
      cun cmin ssid cmap mapfi syl2anc wf f1f elmapd syl5ibr abssdv ssfi wa cc0
      cres sseq1 eleq2 pm2.21i syl6bi adantrd ss0 syl fveq2d hash0 syl6eq fveq2
      noel oveq2d eqeq12d imbi12d imbi2d anbi1d abbidv f1eq1 cbvabv ssun1 mpan2
      eqeq2i f1ssres vex resex elab sylibr pm4.71rd bicomd hashcl nn0cnd subcld
      sylbi cn0 mul01d eqcomd a1d wn sstr mpan imim1i oveq1 wo elun elsn orbi2i
      bitri anbi1i andir abbii unab eqtr4i fveq2i cin snfi unfi sylancl mapvalg
      eqeltrrd adantl ss2abi adantr inab simprlr wne syl5eq syl3anc simpr sylib
      hashun cc cen wbr cvv hasheni c1 a2d wex abn0 simprl simpll necon1bi snss
      exlimiv unssbd pncan2d crn f1f1orn f1oen3g sylancr cle hashf1lem1 oveq12d
      cdif frn diffi disjdif undif 3eqtr2d oveq1d eqtr3d sylan2 eqtrd hashunsng
      wf1o a1i ad2antrl simprll 1cnd adddid mulid1d 3eqtrd expr syl5 findcard2s
      ax-mp expcom mpcom mpi ) ACDEUDZUEZEUFZUWEJZCBUDZUGZUHZDUWCUEZEUFZKLZDKLZ
      CKLZUIMZUWEKLZNMZOZUWEUJUWEPQZAUWFUWRRZADCUKMZPQZUWEUXAJUWSADPQZCPQZUXBGF
      DCULUMAUWDEUXAUWDUWCUXAQACDUWCUNCDUWCUOADCUWCPPGFUPUQURUXAUWEUSUMAUAUDZUW
      EJZUWCCVBZUXEQZUWJUTZEUFZKLZUWOUXEKLZNMZOZRZRASUWEJZVAUWOVANMZOZRZRAUBUDZ
      UWEJZUXGUXTQZUWJUTZEUFZKLZUWOUXTKLZNMZOZRZRAUXTUCUDZUGZUHZUWEJZUXGUYLQZUW
      JUTZEUFZKLZUWOUYLKLZNMZOZRZRAUWTRUAUBUCUWEUXESOZUXOUXSAVUBUXFUXPUXNUXRUXE
      SUWEVCVUBUXKVAUXMUXQVUBUXKSKLZVAVUBUXJSKVUBUXJSJUXJSOVUBUXIESVUBUXHUWCSQZ
      UWJVUBUXHUXGSQZVUDUXESUXGVDVUEVUDUXGVNVEVFVGURUXJVHVIVJVKVLVUBUXLVAUWONVU
      BUXLVUCVAUXESKVMVKVLVOVPVQVRUXEUXTOZUXOUYIAVUFUXFUYAUXNUYHUXEUXTUWEVCVUFU
      XKUYEUXMUYGVUFUXJUYDKVUFUXIUYCEVUFUXHUYBUWJUXEUXTUXGVDVSVTVJVUFUXLUYFUWON
      UXEUXTKVMVOVPVQVRUXEUYLOZUXOVUAAVUGUXFUYMUXNUYTUXEUYLUWEVCVUGUXKUYQUXMUYS
      VUGUXJUYPKVUGUXIUYOEVUGUXHUYNUWJUXEUYLUXGVDVSVTVJVUGUXLUYRUWONUXEUYLKVMVO
      VPVQVRUXEUWEOZUXOUWTAVUHUXFUWFUXNUWRUXEUWEUWEVCVUHUXKUWLUXMUWQVUHUXJUWKKV
      UHUXECDUXTUEZUBUFZOZUXJUWKOUWEVUJUXEUWDVUIEUBCDUWCUXTWAWBWEVUKUXIUWJEVUKU
      WJUXIVUKUWJUXHUWJUXHVUKUXGVUJQZUWJCDUXGUEZVULUWJCUWIJVUMCUWHWCUWIDCUWCWFW
      DVUIVUMUBUXGUWCCEWGWHZCDUXTUXGWAWIWJUXEVUJUXGVDUQWKWLVTWPVJVUHUXLUWPUWONU
      XEUWEKVMVOVPVQVRAUXRUXPAUXQVAAUWOAUWMUWNAUWMAUXCUWMWQQGDWMVIWNAUWNAUXDUWN
      WQQFCWMVIWNZWOZWRWSWTUXTPQZUYJUXTQZXAZUTZAUYIVUAAVUTUYIVUARUYIUYMUYHRAVUT
      UTZVUAUYMUYAUYHUXTUYLJUYMUYAUXTUYKWCUXTUYLUWEXBXCXDVVAUYMUYHUYTAVUTUYMUYH
      UYTRUYHUYTAVUTUYMUTZUTZUYEUWOTMZUYGUWOTMZOUYEUYGUWOTXEVVCUYQVVDUYSVVEVVCU
      YQUYEUXGUYJOZUWJUTZEUFZKLZTMZVVDVVCUYQUYDVVHUHZKLZVVJUYPVVKKUYPUYCVVGXFZE
      UFVVKUYOVVMEUYOUYBVVFXFZUWJUTVVMUYNVVNUWJUYNUYBUXGUYKQZXFVVNUXGUXTUYKXGVV
      OVVFUYBUXGUYJVUNXHXIXJXKUYBVVFUWJXLXJXMUYCVVGEXNXOXPVVCUYDPQZVVHPQZUYDVVH
      XQZSOVVLVVJOAVVPVVBAUWIDUWCUNZEUFZPQZUYDVVTJVVPADUWIUKMZVVTPAUXCUWIPQZVWB
      VVTOGAUXDUWHPQVWCFUWGXRCUWHXSXTZDUWIPPEYAUMAUXCVWCVWBPQGVWDDUWIULUMYBZUYC
      VVSEUWJVVSUYBUWIDUWCUOZYCYDVVTUYDUSXTYEAVVQVVBAVWAVVHVVTJVVQVWEVVGVVSEUWJ
      VVSVVFVWFYCYDVVTVVHUSXTZYEVVCVVRUYCVVGUTZEUFZSUYCVVGEYFVVCVUSVWISOAVUQVUS
      UYMYGVURVWISVWISYHVWHEUUAVURVWHEUUBVWHVUREVWHUXGUYJUXTUYCVVFUWJUUCUYBUWJV
      VGUUDYBUUGWPUUEVIYIUYDVVHYMYJYIVVCVVIUWOUYETVVBACDUYJUEZVVIUWOOVVBUYJUWEQ
      ZVWJVVBUYKUWEJVWKVVBUXTUYKUWEVUTUYMYKUUHUYJUWEUCWGZUUFWJUWDVWJEUYJVWLCDUW
      CUYJWAWIYLAVWJUTZUWNVVITMZUWNUIMVVIUWOVWMUWNVVIAUWNYNQVWJVUOYEVWMVVIVWMVV
      QVVIWQQAVVQVWJVWGYEVVHWMVIWNUUIVWMVWNUWMUWNUIVWMVWNUYJUUJZKLZDVWOUUQZKLZT
      MZVWOVWQUHZKLZUWMVWMUWNVWPVVIVWRTVWMCVWOYOYPZUWNVWPOVWMUYJYQQZCVWOUYJUVHZ
      VXBVWLVWJVXDACDUYJUUKYCCVWOUYJYQUULUUMCVWOYRVIVWMVVHVWQYOYPVVIVWROVWMBCDE
      UYJAUXDVWJFYEAUXCVWJGYEZAUWGCQXAVWJHYEAUWNYSTMUWMUUNYPVWJIYEAVWJYKUUOVVHV
      WQYRVIUUPVWMVWOPQZVWQPQZVWOVWQXQSOZVXAVWSOVWMUXCVWODJZVXFVXEVWJVXIAVWJCDU
      YJUNVXICDUYJUOCDUYJUURVIYCZDVWOUSUMVWMUXCVXGVXEDVWOUUSVIVXHVWMVWODUUTUVIV
      WOVWQYMYJVWMVWTDKVWMVXIVWTDOVXJVWODUVAYLVJUVBUVCUVDUVEVOUVFVVCUYSUWOUYFYS
      TMZNMUYGUWOYSNMZTMVVEVVCUYRVXKUWONVUTUYRVXKOZAUYMVXCVUTVXMRVWLUXTUYJYQUVG
      UVSUVJVOVVCUWOUYFYSAUWOYNQVVBVUPYEZVVCUYFVVCVUQUYFWQQAVUQVUSUYMUVKUXTWMVI
      WNVVCUVLUVMVVCVXLUWOUYGTVVCUWOVXNUVNVOUVOVPUQUVPYTUVQUVTYTUVRUWAUWB $.
  $}

  ${
    $d f x y z A $.  $d f x y z B $.
    $( The permutation number ` | A | ! x. ( | B | _C | A | ) = `
       ` | B | ! / ( | B | - | A | ) ! ` counts the number of injections from
       ` A ` to ` B ` .  (Contributed by Mario Carneiro, 21-Jan-2015.) $)
    hashf1 $p |- ( ( A e. Fin /\ B e. Fin ) ->
      ( # ` { f | f : A -1-1-> B } ) =
        ( ( ! ` ( # ` A ) ) x. ( ( # ` B ) _C ( # ` A ) ) ) ) $=
      ( wcel chash cfv cfa cbc co cmul wceq c1 cc0 fveq2d oveq2d cn0 syl adantr
      c0 cn vx vy vz cfn cv wf1 cab csn cun f1eq2 wfn f1fn fn0 sylib f10 mpbiri
      wi f1eq1 impbii velsn bitr4i syl6bb abbi1dv cvv hashsng ax-mp fveq2 hash0
      syl6eq fac0 oveq12d eqeq12d imbi2d abbidv hashcl bcn0 1t1e1 syl6req wn wa
      0ex caddc clt wbr wne wex abn0 cdom f1domg cle hashunsng adantl breq1d wb
      vex simprl snfi unfi sylancl simpl hashdom syl2anc ad2antrl nn0p1nn nnred
      nn0red lenltd 3bitr3d sylibd exlimdv syl5bi necon4ad imp cc faccl 3eqtr4a
      nncnd mul01d cz nnzd simpr olcd bcval4 syl3anc eqtrd eqtr4d a1d cmin cdiv
      wo nn0sub2 nnne0d divcld divcan2d nn0cnd syl6eleq bcval2 divdiv1d 3eqtr4d
      nn0uz oveq2 simplrr hashf1lem2 peano2nn0 subcld ax-1cn npcan 1cnd eqeltrd
      subsub4d eqeltrrd cfz nn0zd elfz5 mpbird peano2fzr elfzle2 facnn2 syl5ibr
      cuz oveq1d ltlecasei expcom a2d findcard2s ) AUDDBUDDZABCUEZUFZCUGZEFZAEF
      ZGFZBEFZUVKHIZJIZKZUVFUAUEZBUVGUFZCUGZEFZUVQEFZGFZUVMUWAHIZJIZKZUQUVFLLUV
      MMHIZJIZKZUQUVFUBUEZBUVGUFZCUGZEFZUWIEFZGFZUVMUWMHIZJIZKZUQUVFUWIUCUEZUHZ
      UIZBUVGUFZCUGZEFZUWTEFZGFZUVMUXDHIZJIZKZUQUVFUVPUQUAUBUCAUVQSKZUWEUWHUVFU
      XIUVTLUWDUWGUXIUVTSUHZEFZLUXIUVSUXJEUXIUVRCUXJUXIUVRSBUVGUFZUVGUXJDZUVQSB
      UVGUJUXLUVGSKZUXMUXLUXNUXLUVGSUKUXNSBUVGULUVGUMUNUXNUXLSBSUFBUOSBUVGSURUP
      USCSUTVAVBVCNSVDDUXKLKWASVDVEVFVIUXIUWBLUWCUWFJUXIUWBMGFLUXIUWAMGUXIUWASE
      FZMUVQSEVGVHVIZNVJVIUXIUWAMUVMHUXPOVKVLVMUVQUWIKZUWEUWQUVFUXQUVTUWLUWDUWP
      UXQUVSUWKEUXQUVRUWJCUVQUWIBUVGUJVNNUXQUWBUWNUWCUWOJUXQUWAUWMGUVQUWIEVGZNU
      XQUWAUWMUVMHUXROVKVLVMUVQUWTKZUWEUXHUVFUXSUVTUXCUWDUXGUXSUVSUXBEUXSUVRUXA
      CUVQUWTBUVGUJVNNUXSUWBUXEUWCUXFJUXSUWAUXDGUVQUWTEVGZNUXSUWAUXDUVMHUXTOVKV
      LVMUVQAKZUWEUVPUVFUYAUVTUVJUWDUVOUYAUVSUVIEUYAUVRUVHCUVQABUVGUJVNNUYAUWBU
      VLUWCUVNJUYAUWAUVKGUVQAEVGZNUYAUWAUVKUVMHUYBOVKVLVMUVFUWGLLJILUVFUWFLLJUV
      FUVMPDZUWFLKBVOZUVMVPQOVQVRUWIUDDZUWRUWIDVSZVTZUVFUWQUXHUVFUYGUWQUXHUQZUV
      FUYGVTZUYHUVMUWMLWBIZUYIUVMUYJWCWDZVTZUXHUWQUYLUXCUXEMJIZUXGUYLUXOMUXCUYM
      VHUYLUXBSEUYIUYKUXBSKUYIUYKUXBSUXBSWEUXACWFUYIUYKVSZUXACWGUYIUXAUYNCUYIUX
      AUWTBWHWDZUYNUVFUXAUYOUQUYGUWTBUDUVGWIRUYIUXDUVMWJWDZUYJUVMWJWDZUYOUYNUYI
      UXDUYJUVMWJUYGUXDUYJKZUVFUWRVDDUYGUYRUQUCWOUWIUWRVDWKVFWLZWMUYIUWTUDDZUVF
      UYPUYOWNUYIUYEUWSUDDUYTUVFUYEUYFWPZUWRWQUWIUWSWRWSZUVFUYGWTZUWTBUDXAXBUYI
      UYJUVMUYIUYJUYIUWMPDZUYJTDZUYEVUDUVFUYFUWIVOXCZUWMXDQZXEZUYIUVMUVFUYCUYGU
      YDRZXFZXGXHXIXJXKXLXMNUYLUXEUYIUXEXNDUYKUYIUXEUYIUXDPDZUXETDUYIUYTVUKVUBU
      WTVOQUXDXOQXQRXRXPUYLUXFMUXEJUYLUXFUVMUYJHIZMUYLUXDUYJUVMHUYIUYRUYKUYSROU
      YLUYCUYJXSDUYJMWCWDZUYKYJVULMKUYIUYCUYKVUIRUYLUYJUYIVUEUYKVUGRXTUYLUYKVUM
      UYIUYKYAYBUYJUVMYCYDYEOYFYGUWQUXHUYIUYQVTZUVMUWMYHIZUWLJIZVUOUWPJIZKUWLUW
      PVUOJUUAVUNUXCVUPUXGVUQVUNUCUWIBCUYIUYEUYQVUARUYIUVFUYQVUCRUVFUYEUYFUYQUU
      BUYIUYQYAZUUCVUNUYJGFZUVMGFZUVMUYJYHIZGFZYIIZVUSYIIZJIZVUOVVCVUOYIIZJIZUX
      GVUQVUNVVEVVCVVGVUNVVCVUSVUNVUTVVBVUNVUTVUNUYCVUTTDUYIUYCUYQVUIRZUVMXOQXQ
      ZVUNVVBVUNVVAPDZVVBTDVUNUYJPDZUYCUYQVVJVUNVUDVVKUYIVUDUYQVUFRZUWMUUDQZVVH
      VURUYJUVMYKYDZVVAXOQZXQZVUNVVBVVOYLZYMZVUNVUSVUNVVKVUSTDVVMUYJXOQZXQZVUNV
      USVVSYLZYNVUNVVCVUOVVRVUNUVMUWMVUNUVMVVHYOZVUNUWMVVLYOZUUEZVUNVUOVUNVUOLY
      HIZLWBIZVUOTVUNVUOXNDLXNDVWFVUOKVWDUUFVUOLUUGWSVUNVWEPDVWFTDVUNVWEVVAPVUN
      UVMUWMLVWBVWCVUNUUHUUJZVVNUUIVWEXDQUUKZYLZYNYFVUNUXEVUSUXFVVDJVUNUXDUYJGU
      YIUYRUYQUYSRZNVUNVULVUTVVBVUSJIYIIZUXFVVDVUNUYJMUVMUULIZDZVULVWKKVUNVWMUY
      QVURVUNUYJMUUTFZDUVMXSDVWMUYQWNVUNUYJPVWNVVMYTYPVUNUVMVVHUUMUYJMUVMUUNXBU
      UOZUYJUVMYQQVUNUXDUYJUVMHVWJOVUNVUTVVBVUSVVIVVPVVTVVQVWAYRYSVKVUNUWPVVFVU
      OJVUNUWPUWNVUTVUOGFZYIIZUWNYIIZJIZVVFVUNUWOVWRUWNJVUNUWOVUTVWPUWNJIYIIZVW
      RVUNUWMVWLDZUWOVWTKVUNUWMVWNDVWMVXAVUNUWMPVWNVVLYTYPVWOUWMMUVMUUPXBZUWMUV
      MYQQVUNVUTVWPUWNVVIVUNVWPVUNVUOPDZVWPTDVUNVUDUYCUWMUVMWJWDZVXCVVLVVHVUNVX
      AVXDVXBUWMMUVMUUQQUWMUVMYKYDVUOXOQZXQZVUNUWNVUNVUDUWNTDVVLUWMXOQZXQZVUNVW
      PVXEYLZVUNUWNVXGYLZYRYFOVUNVWQVUTVVBVUOJIZYIIVWSVVFVUNVWPVXKVUTYIVUNVWPVW
      EGFZVUOJIZVXKVUNVUOTDVWPVXMKVWHVUOUURQVUNVXLVVBVUOJVUNVWEVVAGVWGNUVAYEOVU
      NVWQUWNVUNVUTVWPVVIVXFVXIYMVXHVXJYNVUNVUTVVBVUOVVIVVPVWDVVQVWIYRYSYEOYSVL
      UUSVUJVUHUVBUVCUVDUVEXM $.

    $( A factorial counts the number of bijections on a finite set.
       (Contributed by Mario Carneiro, 21-Jan-2015.)  (Proof shortened by Mario
       Carneiro, 17-Apr-2015.) $)
    hashfac $p |- ( A e. Fin -> ( # ` { f | f : A -1-1-onto-> A } ) =
      ( ! ` ( # ` A ) ) ) $=
      ( cfn wcel cv wf1 cab chash cfv cfa cbc co cmul wf1o hashf1 anidms cen c1
      wceq syl wbr enrefg f1finf1o mpancom abbidv fveq2d cn0 hashcl bcnn oveq2d
      wb cn faccl nncnd mulid1d eqtrd 3eqtr3d ) ACDZAABEZFZBGZHIZAHIZJIZVCVCKLZ
      MLZAAUSNZBGZHIVDURVBVFSAABOPURVAVHHURUTVGBAAQUAURUTVGUKACUBAAUSUCUDUEUFUR
      VFVDRMLVDURVERVDMURVCUGDZVERSAUHZVCUITUJURVDURVDURVIVDULDVJVCUMTUNUOUPUQ
      $.
  $}

  $( Two ways to write a strictly increasing function on the reals.
     (Contributed by Mario Carneiro, 9-Sep-2015.) $)
  leiso $p |- ( ( A C_ RR* /\ B C_ RR* ) ->
    ( F Isom < , < ( A , B ) <-> F Isom <_ , <_ ( A , B ) ) ) $=
    ( cxr wss cxp clt cdif wiso cle cin df-le ineq1i indif1 eqtri xpss12 anidms
    wceq wb sseqin2 wa sylib difeq1d syl5req isoeq2 syl isoeq3 sylan9bb isocnv2
    ccnv eqid isocnv3 bitri isores1 isores2 3bitr4g ) ADEZBDEZUAABAAFZGUJZHZBBF
    ZUTHZCIZABJUSKZJVBKZCIZABGGCIZABJJCIZUQVDABVEVCCIZURVGUQVAVERVDVJSUQVEDDFZU
    SKZUTHZVAVEVKUTHZUSKVMJVNUSLMVKUSUTNOUQVLUSUTUQUSVKEZVLUSRUQVOADADPQUSVKTUB
    UCUDABVAVCVECUEUFURVCVFRVJVGSURVFVKVBKZUTHZVCVFVNVBKVQJVNVBLMVKVBUTNOURVPVB
    UTURVBVKEZVPVBRURVRBDBDPQVBVKTUBUCUDABVEVCVFCUGUFUHVHABUTUTCIVDABGGCUIABVAV
    CUTUTCVAUKVCUKULUMVIABVEJCIVGABJJCUNABVEJCUOUMUP $.

  $( Version of ~ isorel for strictly increasing functions on the reals.
     (Contributed by Mario Carneiro, 6-Apr-2015.)  (Revised by Mario Carneiro,
     9-Sep-2015.) $)
  leisorel $p |- ( ( F Isom < , < ( A , B ) /\ ( A C_ RR* /\ B C_ RR* ) /\
    ( C e. A /\ D e. A ) ) -> ( C <_ D <-> ( F ` C ) <_ ( F ` D ) ) ) $=
    ( clt wiso cxr wss wa wcel cle wbr cfv wb wi leiso biimpcd isorel ex syl6
    3imp ) ABFFEGZAHIBHIJZCAKDAKJZCDLMCENDENLMOZUCUDABLLEGZUEUFPUDUCUGABEQRUGUE
    UFABCDLLESTUAUB $.

  ${
    $d f n A $.  $d f B $.  $d f G $.  $d f O $.  $d f R $.
    fz1iso.1 $e |- G = ( rec ( ( n e. _V |-> ( n + 1 ) ) , 1 ) |` _om ) $.
    fz1iso.2 $e |- B = ( NN i^i ( `' < " { ( ( # ` A ) + 1 ) } ) ) $.
    fz1iso.3 $e |- C = ( _om i^i ( `' G ` ( ( # ` A ) + 1 ) ) ) $.
    fz1iso.4 $e |- O = OrdIso ( R , A ) $.
    $( Lemma for ~ fz1iso .  (Contributed by Mario Carneiro, 2-Apr-2014.) $)
    fz1isolem $p |- ( ( R Or A /\ A e. Fin ) ->
                  E. f f Isom < , R ( ( 1 ... ( # ` A ) ) , A ) ) $=
      ( cfn wcel c1 cfv clt cep cn com wor wa ccnv cres ccom cvv chash cfz wiso
      co cv wex wf1o cdm cn0 hashcl adantl caddc cuz wceq nnuz om2uzisoi isoeq5
      wf 1z mpbiri ax-mp isocnv nn0p1nn cin csn cima fvex ineq2i eqtr4i isoini2
      epini sylancr syl wb cle wbr nnz nn0zd eluz syl2anr zleltp1 ovex eliniseg
      cz vex syl6bbr bitr2d pm5.32da elin2 elfzuzb elnnuz anbi1i bitr4i 3bitr4g
      eqrdv mpbid cmpt cc0 crdg con0 oion cen simpr wwe wofi oien syl2anc enfii
      isoeq4 elind onfin2 syl6eleqr cmin eqid uzrdgxfr 1m0e1 oveq2i syl6eq ccrd
      ensymd cardennn fveq2d hashgval eqtr3d oveq1d isof1o f1ocnvfv1 ineq2d wss
      0z eqtrd word ordom ordelss sseqin2 sylib oiiso isotr f1of 3syl fzfid fex
      syl5eq isoeq1 spcegv sylc ) ADUAZAMNZUBZHGUCZBUDZUEZUFNZOAUGPZUHUJZAQDUUR
      UIZUVAAQDEUKZUIZEULUUOUVAAUURVDZUVAMNUUSUUOUVBUVAAUURUMUVEUUOUVAHUNZQRUUQ
      UIZUVFARDHUIZUVBUUOUVACQRUUQUIZUVGUUOBCQRUUQUIZUVIUUOUUTUONZUVJUUNUVKUUMA
      UPUQZUVKSTQRUUPUIZUUTOURUJZSNUVJTSRQGUIZUVMSOUSPZUTZUVOVAUVQUVOTUVPRQGUIF
      OGVEIVBTSUVPRQGVCVFVGZTSRQGVHVGUUTVISTBCQRUUPUVNJCTUVNUUPPZVJZTRUCUVSVKVL
      ZVJKUWAUVSTUVSUVNUUPVMVQVNVOVPVRVSUUOBUVAUTUVJUVIVTUUOEBUVAUUOUVCSNZUVCQU
      CUVNVKVLZNZUBUWBUUTUVCUSPNZUBZUVCBNUVCUVANZUUOUWBUWDUWEUUOUWBUBZUWEUVCUUT
      WAWBZUWDUWBUVCWJNZUUTWJNZUWEUWIVTUUOUVCWCZUUOUUTUVLWDZUVCUUTWEWFUWHUWIUVC
      UVNQWBZUWDUWBUWJUWKUWIUWNVTUUOUWLUWMUVCUUTWGWFUVNUFNUWDUWNVTUUTOURWHQUVNU
      VCUFEWKWIVGWLWMWNUVCSUWCBJWOUWGUVCUVPNZUWEUBUWFUVCOUUTWPUWBUWOUWEUVCWQWRW
      SWTXABCUVAQRUUQXOVSXBUUOCUVFUTUVIUVGVTUUOCUVTUVFKUUOUVTTUVFVJZUVFUUOUVSUV
      FTUUOUVFGPZUUPPZUVSUVFUUOUWQUVNUUPUUOUWQUVFFUFFUKOURUJXCXDXETUDZPZOURUJZU
      VNUUOUVFTNZUWQUXAUTUUOUVFXFMVJTUUOXFMUVFUUNUVFXFNUUMADHMLXGUQUUOUUNUVFAXH
      WBZUVFMNUUMUUNXIZUUOUUNADXJZUXCUXDADXKZADHMLXLXMZUVFAXNXMXPXQXRZUXBUWQUWT
      OXDXSUJZURUJUXAFOXDGUWSUVFIUWSXTZVEYPYAUXIOUWTURYBYCYDVSUUOUWTUUTOURUUOAY
      EPZUWSPZUWTUUTUUOUXKUVFUWSUUOAUVFXHWBUXBUXKUVFUTUUOUVFAUXGYFUXHAUVFYGXMYH
      UUNUXLUUTUTUUMFAUWSUXJYIUQYJYKYQYHUUOTSGUMZUXBUWRUVFUTUVOUXMUVRTSRQGYLVGU
      XHTSUVFGYMVRYJYNUUOUVFTYOZUWPUVFUTUUOTYRUXBUXNYSUXHTUVFYTVRUVFTUUAUUBYQUU
      IUVACUVFQRUUQVCVSXBUUOUUNUXEUVHUXDUXFADHMLUUCXMUVAUVFAQRDHUUQUUDXMZUVAAQD
      UURYLUVAAUURUUEUUFUUOOUUTUUGUVAAMUURUUHXMUXOUVDUVBEUURUFUVAAQDUURUVCUUJUU
      KUUL $.
  $}

  ${
    $d f n A $.  $d f n R $.
    $( Any finite ordered set has an order isometry to a one-based finite
       sequence.  (Contributed by Mario Carneiro, 2-Apr-2014.) $)
    fz1iso $p |- ( ( R Or A /\ A e. Fin ) ->
                  E. f f Isom < , R ( ( 1 ... ( # ` A ) ) , A ) ) $=
      ( vn cn clt ccnv chash cfv c1 caddc co csn cima cin com cvv cv cmpt eqid
      crdg cres coi fz1isolem ) AEFGAHIJKLZMNOZPUEDQDRJKLSJUAPUBZGIOZBCDUGABUCZ
      UGTUFTUHTUITUD $.
  $}

  ${
    $d a n x A $.
    $( Any set that is not finite contains subsets of arbitrarily large finite
       cardinality.  Cf. ~ isinf .  (Contributed by Thierry Arnoux,
       5-Jul-2017.) $)
    ishashinf $p |- ( -. A e. Fin -> A. n e. NN E. x e. ~P A ( # ` x ) = n ) $=
      ( va cfn wcel wn cv chash cfv wceq cn wa wex c1 cen wbr com syl eqtrd cpw
      wrex wss cfz co ccrd wral fzfid ficardom isinf breq2 anbi2d exbidv rspcva
      syl2anr wi selpw biimpri a1i hasheni adantl hashcard cn0 hashfz1 ad2antlr
      nnnn0 ex anim12d eximdv mpd df-rex sylibr ralrimiva ) BEFGZAHZIJZCHZKZABU
      AZUBZCLVNVQLFZMZVOVSFZVRMZANZVTWBVOBUCZVOOVQUDUEZUFJZPQZMZANZWEWAWHRFZWFV
      ODHZPQZMZANZDRUGWKVNWAWGEFZWLWAOVQUHZWGUISABDUJWPWKDWHRWMWHKZWOWJAWSWNWIW
      FWMWHVOPUKULUMUNUOWBWJWDAWBWFWCWIVRWFWCUPWBWCWFABUQURUSWBWIVRWBWIMVPWHIJZ
      VQWIVPWTKWBVOWHUTVAWAWTVQKVNWIWAWTWGIJZVQWAWQWTXAKWRWGVBSWAVQVCFXAVQKVQVF
      VQVDSTVETVGVHVIVJVRAVSVKVLVM $.
  $}

  ${
    $d k m n y A $.  $d k m n y F $.  $d k m n y G $.  $d m n y H $.  $d y N $.
    $d k m n y M $.  $d k m n y .+ $.  $d k m n y ph $.  $d k n S $.  $d k Z $.
    seqcoll.1 $e |- ( ( ph /\ k e. S ) -> ( Z .+ k ) = k ) $.
    seqcoll.1b $e |- ( ( ph /\ k e. S ) -> ( k .+ Z ) = k ) $.
    seqcoll.c $e |- ( ( ph /\ ( k e. S /\ n e. S ) ) -> ( k .+ n ) e. S ) $.
    seqcoll.a $e |- ( ph -> Z e. S ) $.
    seqcoll.2 $e |- ( ph -> G Isom < , < ( ( 1 ... ( # ` A ) ) , A ) ) $.
    seqcoll.3 $e |- ( ph -> N e. ( 1 ... ( # ` A ) ) ) $.
    seqcoll.4 $e |- ( ph -> A C_ ( ZZ>= ` M ) ) $.
    seqcoll.5 $e |- ( ( ph /\ k e. ( M ... ( G ` ( # ` A ) ) ) ) ->
                      ( F ` k ) e. S ) $.
    seqcoll.6 $e |- ( ( ph /\ k e. ( ( M ... ( G ` ( # ` A ) ) ) \ A ) ) ->
                      ( F ` k ) = Z ) $.
    seqcoll.7 $e |- ( ( ph /\ n e. ( 1 ... ( # ` A ) ) ) ->
                      ( H ` n ) = ( F ` ( G ` n ) ) ) $.
    $( The function ` F ` contains a sparse set of nonzero values to be summed.
       The function ` G ` is an order isomorphism from the set of nonzero
       values of ` F ` to a 1-based finite sequence, and ` H ` collects these
       nonzero values together.  Under these conditions, the sum over the
       values in ` H ` yields the same result as the sum over the original set
       ` F ` .  (Contributed by Mario Carneiro, 2-Apr-2014.) $)
    seqcoll $p |- ( ph -> ( seq M ( .+ , F ) ` ( G ` N ) ) =
                          ( seq 1 ( .+ , H ) ` N ) ) $=
      ( vy vm c1 chash cfv cfz co wcel cseq wceq cn wi elfznn caddc eleq1 fveq2
      syl cv fveq2d eqeq12d imbi12d imbi2d cuz cres wf1o wf wiso isof1o elfzuz2
      clt eluzfz1 ffvelrnd sseldd cle wbr eluzle cxr wss wb cr cz elfzelz ssriv
      zssre sstri a1i ressxr syl6ss eluzelre eluzfz2 leisorel syl122anc eluzelz
      f1of mpbid elfz5 syl2anc mpbird eleq1d expcom vtoclga mpcom cmin peano2zm
      cdif wa zred lem1d letrd eluz fzss2 sselda wn w3a adantr sylan con2d syl5
      ex imp eldifd syldan seq1 ad2antlr elfzuz3 adantl elfzuzb sylanbrc isorel
      ad2antrr syl12anc zltlem1 elfzle2 uztrn adantrr 3bitrd cc a2d ccnv f1ocnv
      eluzel2 elfzm11 simp3 ffvelrnda nnge1d breqtrd lenltd sylbid seqid fveq1d
      f1ocnvfv2 uzid fvres eqtr4d 3eqtr3d 1z ax-mp syl6eqr simplr nnuz syl6eleq
      a1d peano2uzr imim1d oveq1 simpll nnre ltp1d simpr seqcl simplll peano2uz
      nnz elfzuz syl2anr syl2an elfzle1 jca simprr btwnnz 3expib breq2d zltp1le
      sylc breq1d anbi12d mtbid expr seqid2 oveq1d impcom adantlr oveq2d ax-1cn
      zcnd npcan sylancl eluzp1p1 eqeltrrd seqm1 3eqtr4rd seqp1 syld nnind mpd
      syl5ibr ) AKUEBUFUGZUHUIZUJZKHUGZCGJUKZUGZKCIUEUKZUGZULZRKUMUJZAUXKUXQUNZ
[encoded data, 5280 characters]
      EXBYTUXFXDUXG $.
  $}

  ${
    $d k n A $.  $d k n F $.  $d k n G $.  $d n H $.  $d k n M $.  $d k n ph $.
    $d k N $.  $d k n .+ $.  $d k n S $.  $d k Z $.
    seqcoll2.1 $e |- ( ( ph /\ k e. S ) -> ( Z .+ k ) = k ) $.
    seqcoll2.1b $e |- ( ( ph /\ k e. S ) -> ( k .+ Z ) = k ) $.
    seqcoll2.c $e |- ( ( ph /\ ( k e. S /\ n e. S ) ) -> ( k .+ n ) e. S ) $.
    seqcoll2.a $e |- ( ph -> Z e. S ) $.
    seqcoll2.2 $e |- ( ph -> G Isom < , < ( ( 1 ... ( # ` A ) ) , A ) ) $.
    seqcoll2.3 $e |- ( ph -> A =/= (/) ) $.
    seqcoll2.5 $e |- ( ph -> A C_ ( M ... N ) ) $.
    seqcoll2.6 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. S ) $.
    seqcoll2.7 $e |- ( ( ph /\ k e. ( ( M ... N ) \ A ) ) -> ( F ` k ) = Z ) $.
    seqcoll2.8 $e |- ( ( ph /\ n e. ( 1 ... ( # ` A ) ) ) ->
                       ( H ` n ) = ( F ` ( G ` n ) ) ) $.
    $( The function ` F ` contains a sparse set of nonzero values to be summed.
       The function ` G ` is an order isomorphism from the set of nonzero
       values of ` F ` to a 1-based finite sequence, and ` H ` collects these
       nonzero values together.  Under these conditions, the sum over the
       values in ` H ` yields the same result as the sum over the original set
       ` F ` .  (Contributed by Mario Carneiro, 13-Dec-2014.) $)
    seqcoll2 $p |- ( ph -> ( seq M ( .+ , F ) ` N ) =
                           ( seq 1 ( .+ , H ) ` ( # ` A ) ) ) $=
      ( chash cfv cseq c1 cfz co cuz fzssuz wf1o wf clt wiso isof1o syl f1of cn
      wcel cc0 wceq wn c0 wne cfn wb wss fzfi sylancr hasheq0 necon3bbid mpbird
      ssfi cn0 wo hashcl elnn0 sylib mt3d nnuz syl6eleq eluzfz2 ffvelrnd sseldd
      ord sseldi elfzuz3 cv fzss2 sselda syldan seqcl caddc cdif peano2uz fzss1
      wa wbr eluzelre adantr peano2re elfzelz zred adantl ltp1d elfzle1 ltletrd
      cr cle ccnv f1ocnv simprr elfzle2 cz nn0red lenltd mpbid isorel f1ocnvfv2
      syl12anc syl2anc breq2d bitrd mtbid expr mt2d eldifd seqid2 syl6ss ssdifd
      seqcoll eqtr3d ) ABUCUDZHUDZCGJUEZUDKYOUDYMCIUFUEUDAECDGYNJKLNAJKUGUHZJUI
      UDZYNJKUJZABYPYNSAUFYMUGUHZBYMHAYSBHUKZYSBHULAYSBUMUMHUNZYTQYSBUMUMHUOUPZ
      YSBHUQUPAYMUFUIUDZUSYMYSUSZAYMURUUCAYMURUSZYMUTVAZAUUFVBBVCVDRAUUFBVCABVE
      USZUUFBVCVAVFAYPVEUSBYPVGUUGJKVHSYPBVMVIZBVEVJUPVKVLAUUEUUFAYMVNUSZUUEUUF
      VOAUUGUUIUUHBVPUPZYMVQVRWEVSVTWAUFYMWBUPZWCWDZWFZAYNYPUSKYNUIUDUSZUULYNJK
      WGUPZAEFCDGJYNUUMAEWHZJYNUGUHZUSUUPYPUSUUPGUDZDUSAUUQYPUUPAUUNUUQYPVGUUOY
      NJKWIUPZWJTWKZOWLAUUPYNUFWMUHZKUGUHZUSZUUPYPBWNZUSZUURLVAZAUVCWQZUUPYPBAU
      VBYPUUPAUVAYQUSZUVBYPVGAYNYQUSZUVHUUMJYNWOUPUVAJKWPUPWJUVGUUPBUSZYNUUPUMW
      RZUVGYNUVAUUPAYNXHUSZUVCAUVIUVLUUMJYNWSUPWTZUVGUVLUVAXHUSUVMYNXAUPUVCUUPX
      HUSAUVCUUPUUPUVAKXBXCXDUVGYNUVMXEUVCUVAUUPXIWRAUUPUVAKXFXDXGAUVCUVJUVKVBA
      UVCUVJWQZWQZYMUUPHXJZUDZUMWRZUVKUVOUVQYMXIWRZUVRVBUVOUVQYSUSZUVSUVOBYSUUP
      UVPUVOBYSUVPUKZBYSUVPULUVOYTUWAAYTUVNUUBWTZYSBHXKUPBYSUVPUQUPAUVCUVJXLZWC
      ZUVQUFYMXMUPUVOUVQYMUVOUVQUVOUVTUVQXNUSUWDUVQUFYMXBUPXCUVOYMAUUIUVNUUJWTX
      OXPXQUVOUVRYNUVQHUDZUMWRZUVKUVOUUAUUDUVTUVRUWFVFAUUAUVNQWTAUUDUVNUUKWTUWD
      YSBYMUVQUMUMHXRXTUVOUWEUUPYNUMUVOYTUVJUWEUUPVAUWBUWCYSBUUPHXSYAYBYCYDYEYF
      YGUAWKYHABCDEFGHIJYMLMNOPQUUKABYPYQSYRYIUUTAUUPUUQBWNZUSUVEUVFAUWGUVDUUPA
      UUQYPBUUSYJWJUAWKUBYKYL $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Proper unordered pairs and triples (sets of size 2 and 3)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( An unordered pair has at most two elements.  (Contributed by Mario
     Carneiro, 11-Feb-2015.) $)
  hashprlei $p |- ( { A , B } e. Fin /\ ( # ` { A , B } ) <_ 2 ) $=
    ( csn cpr c1 c2 df-pr hashsnlei 1nn0 1p1e2 hashunlei ) ACBCABDEEFABGAHBHIIJ
    K $.

  ${
    $d V a b $.
    $( A set of size two is an unordered pair.  (Contributed by Alexander van
       der Vekens, 8-Dec-2017.) $)
    hash2pr $p |- ( ( V e. W /\ ( # ` V ) = 2 ) -> E. a E. b V = { a , b } ) $=
      ( wcel chash cfv c2 wceq wa c2o cen wbr cv cpr wex cfn cn0 wi mpan2 hash2
      2nn0 hashvnfin imp eqcomi a1i eqeq2d wb com 2onn nnfi ax-mp hashen biimpd
      sylbid adantld mpcom en2 syl ) ABEZAFGZHIZJZAKLMZACNDNOIDPCPAQEZVCVDUTVBV
      EUTHREVBVESUBAHBUCTUDVEVBVDUTVEVBVAKFGZIZVDVEHVFVAHVFIVEVFHUAUEUFUGVEVGVD
      VEKQEZVGVDUHKUIEVHUJKUKULAKUMTUNUOUPUQCDAURUS $.

    $d W a b $.
    $( A set of size two is an unordered pair of two different elements.
       (Contributed by Alexander van der Vekens, 8-Dec-2017.) $)
    hash2prde $p |- ( ( V e. W /\ ( # ` V ) = 2 )
                    -> E. a E. b ( a =/= b /\ V = { a , b } ) ) $=
      ( wcel chash cfv c2 wceq wa cv wex wne wi weq vex c1 cvv ax-mp syl6bi cpr
      hash2pr equid csn preqsn eqeq2 fveq2 hashsng syl6eq eqeq1 wn df-ne pm2.21
      1ne2 sylbi eqcoms adantl syl5com com13 com12 sylbir mpan2 pm2.61ine simpr
      imp ax-1 jca ex 2eximdv mpd ) ABEZAFGZHIZJZACKZDKZUAZIZDLCLVOVPMZVRJZDLCL
      ABCDUBVNVRVTCDVNVRVTVNVRJZVSVRWAVSNZVOVPCDOZDDOZWBDUCWCWDJVQVPUDZIZWBVOVP
      VPCPDPZWGUEWAWFVSVNVRWFVSNWFVRVNVSWFVRAWEIZVNVSNVQWEAUFWHVLQIZVNVSWHVLWEF
      GZQAWEFUGVPREWJQIWGVPRUHSUIVMWIVSNVKVMWIHQIVSVLHQUJVSQHQHMZQHIZVSNZUNWKWL
      UKWMQHULWLVSUMUOSUPTUQURTUSVEUTVAVBVSWAVFVCVNVRVDVGVHVIVJ $.

    $( A set of size two is an unordered pair if and only if it contains two
       different elements.  (Contributed by Alexander van der Vekens,
       14-Jan-2018.) $)
    hash2exprb $p |- ( V e. W -> ( ( # ` V ) = 2
                              <-> E. a E. b ( a =/= b /\ V = { a , b } ) ) ) $=
      ( wcel chash cfv c2 wceq cv wne cpr wa wex hash2prde ex wi cvv vex a1i wb
      hashprg mp2an biimpd fveq2 eqeq1d sylibrd impcom exlimdvv impbid ) ABEZAF
      GZHIZCJZDJZKZAUNUOLZIZMZDNCNZUKUMUTABCDOPUKUSUMCDUSUMQUKURUPUMURUPUQFGZHI
      ZUMURUPVBUPVBUAZURUNREUOREVCCSDSUNUORRUBUCTUDURULVAHAUQFUEUFUGUHTUIUJ $.

    $( A set of size two is a proper unordered pair.  (Contributed by AV,
       1-Nov-2020.) $)
    hash2prb $p |- ( V e. W -> ( ( # ` V ) = 2 <-> E. a e. V E. b e. V
                                            ( a =/= b /\ V = { a , b } ) ) ) $=
      ( wcel chash cfv c2 wceq cv wne cpr wa wex wrex hash2exprb vex eleq2 a1i
      wb prid1 prid2 pm3.2i anbi12d mpbiri adantl pm4.71ri 2exbii bicomi 3bitrd
      r2ex ) ABEZAFGHICJZDJZKZAUMUNLZIZMZDNCNZUMAEZUNAEZMZURMZDNCNZURDAOCAOZABC
      DPUSVDTULURVCCDURVBUQVBUOUQVBUMUPEZUNUPEZMVFVGUMUNCQUAUMUNDQUBUCUQUTVFVAV
      GAUPUMRAUPUNRUDUEUFUGUHSVDVETULVEVDURCDAAUKUISUJ $.
  $}

  $( The set of proper pairs of elements of a given set expressed in two ways.
     (Contributed by AV, 24-Nov-2020.) $)
  prprrab $p |- { x e. ( ~P A \ { (/) } ) | ( # ` x ) = 2 }
                = { x e. ~P A | ( # ` x ) = 2 } $=
    ( cv cpw wcel chash cfv c2 wceq wa cab c0 csn cdif crab wne cc0 cvv df-rab
    wn 2ne0 eqeq1 mtbiri wb vex hasheq0 bicomd necon3abid ax-mp sylibr biantrud
    neii eldifsn syl6bbr pm5.32ri abbii 3eqtr4ri ) ACZBDZEZURFGZHIZJZAKURUSLMNZ
    EZVBJZAKVBAUSOVBAVDOVCVFAVBUTVEVBUTUTURLPZJVEVBVGUTVBVAQIZTZVGVBVHHQIHQUAUL
    VAHQUBUCURREZVGVIUDAUEVJVHURLVJVHURLIURRUFUGUHUIUJUKURUSLUMUNUOUPVBAUSSVBAV
    DSUQ $.

  ${
    nehash2.p $e |- ( ph -> P e. V ) $.
    nehash2.a $e |- ( ph -> A e. P ) $.
    nehash2.b $e |- ( ph -> B e. P ) $.
    nehash2.1 $e |- ( ph -> A =/= B ) $.
    $( The cardinality of a set with two distinct elements.  (Contributed by
       Thierry Arnoux, 27-Aug-2019.) $)
    nehash2 $p |- ( ph -> 2 <_ ( # ` P ) ) $=
      ( cpr chash cfv c2 cle wne wceq wcel wb hashprg syl2anc mpbid wss hashss
      wbr prssd eqbrtrrd ) ABCJZKLZMDKLZNABCOZUHMPZIABDQCDQUJUKRGHBCDDSTUAADEQU
      GDUBUHUINUDFABCDGHUEDUGEUCTUF $.
  $}

  ${
    $d P x y $.  $d V x y $.  $d X x y $.  $d Y x y $.
    $( A set of size two is an unordered pair if it contains two different
       elements.  (Contributed by Alexander van der Vekens, 9-Dec-2018.)
       (Proof shortened by AV, 1-Nov-2020.) $)
    hash2prd $p |- ( ( P e. V /\ ( # ` P ) = 2 )
                   -> ( ( X e. P /\ Y e. P /\ X =/= Y ) -> P = { X , Y } ) ) $=
      ( vx vy wcel chash cfv c2 wceq wne cpr cv wa wrex adantl adantr wb eleq2
      wi hash2prb simpr 3simpa anbi12d mpbid wn simpl anim12ci 3ad2ant3 prel12g
      w3a neneq sylc mpbird eqtr4d exp31 com23 expimpd rexlimivv syl6bi imp ) A
      BGZAHIJKZCAGZDAGZCDLZULZACDMZKZUAZVCVDENZFNZLZAVLVMMZKZOZFAPEAPVKABEFUBVQ
      VKEFAAVLAGVMAGOZVNVPVKVRVNOZVHVPVJVSVHVPVJVSVHOZVPOZAVOVIVTVPUCWAVIVOKZCV
      OGZDVOGZOZWAVEVFOZWEVTWFVPVHWFVSVEVFVGUDZQRVPWFWESVTVPVEWCVFWDAVOCTAVODTU
      EQUFVTWBWESZVPVTWFVROCDKUGZWHVSVRVHWFVRVNUHWGUIVHWIVSVGVEWIVFCDUMUJQCDVLV
      MAAAAUKUNRUOUPUQURUSUTVAVB $.
  $}

  $( If the size of a subset of an unordered pair is 2, the subset is the pair
     itself.  (Contributed by Alexander van der Vekens, 9-Dec-2018.) $)
  hash2pwpr $p |- ( ( ( # ` P ) = 2 /\ P e. ~P { X , Y } )
                    -> P = { X , Y } ) $=
    ( chash cfv c2 wceq cpr c0 wo wi fveq2 cc0 hash0 syl6bi sylbi cvv c1 eqeq1d
    wcel cpw csn cun pwpr eleq2i elun bitri eqeq1 wne 0ne2 eqneqall mpi hashsng
    eqeq2i syl eqcoms 1ne2 syl5com snprc eqeq2 syl6eq pm2.61i jaoi eqeq1i elpri
    wn ax-1 orim12i syl11 syl5bi imp ) ADEZFGZABCHZUAZTZAVNGZVPAIBUBZHZTZACUBZV
    NHZTZJZVMVQVPAVSWBUCZTWDVOWEABCUDUEAVSWBUFUGAIGZAVRGZJZAWAGZVQJZJVMVQWDWHVM
    VQKZWJWFWKWGWFVLIDEZGZWKAIDLZWMVLMGZWKWLMVLNUNWOVMMFGZVQVLMFUHWPMFUIVQUJVQM
    FUKULZOPUOBQTZWGWKKZWRVRDEZRGZWGWKBQUMWGXAVLRGZWKWGWTVLRWTVLGVRAVRADLUPSXBV
    MRFGZVQVLRFUHXCRFUIVQUQVQRFUKULOZOURWRVFVRIGZWSBUSXEWGWFWKVRIAUTWFVMWPVQWFV
    LMFWFVLWLMWNNVASWQOOPVBVCWIWKVQCQTZWIWKKZXFWADEZRGZWIWKCQUMWIXIXBWKWIXHVLRX
    HVLGWAAWAADLUPSXDOURXFVFWAIGZXGCUSXJWIWFWKWAIAUTWFVMWLFGZVQWFVLWLFWNSXKWPVQ
    WLMFNVDWQPOOPVBVQVMVGVCVCVTWHWCWJAIVRVEAWAVNVEVHVIVJVK $.

  ${
    $d P a b c $.
    $( A nonempty set of size less than or equal to two is an unordered pair of
       sets.  (Contributed by AV, 24-Nov-2021.) $)
    hashle2pr $p |- ( ( P e. V /\ P =/= (/) )
                      -> ( ( # ` P ) <_ 2 <-> E. a E. b P = { a , b } ) ) $=
      ( vc wcel c0 wa chash cfv c2 cle wbr cv cpr wceq wex wi syl6bi com12 syld
      wne cc0 c1 cxnn0 hashxnn0 xnn0le2is012 sylan ex hasheq0 eqneqall hash1snb
      w3o csn vex weq preq12 dfsn2 syl6eqr eqeq2d spc2ev exlimiv imp a1d expcom
      hash2pr 3jaoi com23 fveq2 cfn hashprlei simpri syl6eqbr exlimivv impbid1
      ) ABFZAGUBZHAIJZKLMZACNZDNZOZPZDQCQZVPVQVSWDRVPVSVQWDVPVSVRUCPZVRUDPZVRKP
      ZUMZVQWDRZVPVSWHVPVRUEFVSWHABUFVRUGUHUIWHVPWIWEVPWIRWFWGVPWEWIVPWEAGPWIAB
      UJWDAGUKSTVPWFWIVPWFHWDVQVPWFWDVPWFAENZUNZPZEQWDABEULWLWDEWCWLCDWJWJEUOZW
      MCEUPDEUPHZWBWKAWNWBWJWJOWKVTWAWJWJUQWJURUSUTVAVBSVCVDVEVPWGWIVPWGHWDVQAB
      CDVFVDVEVGTUAVHVCWCVSCDWCVRWBIJZKLAWBIVIWBVJFWOKLMVTWAVKVLVMVNVO $.
  $}

  ${
    $d P a b $.  $d V a b $.
    $( A nonempty subset of a powerset of a class ` V ` has size less than or
       equal to two iff it is an unordered pair of elements of ` V ` .
       (Contributed by AV, 24-Nov-2021.) $)
    hashle2prv $p |- ( P e. ( ~P V \ { (/) } ) -> ( ( # ` P ) <_ 2
                                   <-> E. a e. V E. b e. V P = { a , b } ) ) $=
      ( cpw c0 csn cdif wcel chash cfv c2 cle cv wex wa wrex wb cvv vex wbr cpr
      wceq wne eldifsn hashle2pr sylbi eldifi eleq1 prelpw biimprd mp2an syl6bi
      wi syl5com pm4.71rd 2exbidv r2ex bicomi a1i 3bitrd ) ABEZFGZHIZAJKLMUAZAC
      NZDNZUBZUCZDOCOZVFBIVGBIPZVIPZDOCOZVIDBQCBQZVDAVBIZAFUDPVEVJRAVBFUEAVBCDU
      FUGVDVIVLCDVDVIVKVDVOVIVKAVBVCUHVIVOVHVBIZVKAVHVBUIVFSIZVGSIZVPVKUNCTDTVQ
      VRPVKVPVFVGBSSUJUKULUMUOUPUQVMVNRVDVNVMVICDBBURUSUTVA $.
  $}

  ${
    $d A p s $.  $d B p s $.  $d V s $.  $d W s $.
    $( The set of subsets of a pair having length 2 is the set of the pair as
       singleton.  (Contributed by AV, 9-Dec-2018.) $)
    pr2pwpr $p |- ( ( A e. V /\ B e. W /\ A =/= B )
                       -> { p e. ~P { A , B } | p ~~ 2o } = { { A , B } } ) $=
      ( vs wcel cv c2o cen wbr cpr csn wa wceq wi cfn chash c2 wb wne w3a elpwi
      cpw crab wss prfi ssfi mpan cfv hash2 eqcomi a1i eqeq2d 2onn ax-mp hashen
      com mpan2 bitrd hash2pwpr a1d ex syl6bir com23 syl mpcom imp com12 c0 cun
      nnfi wo prex prid2 olcd elun sylibr pwpr syl6eleqr adantr adantl pr2nelem
      eleq1 mpbird breq1 jca impbid elrab velsn 3bitr4g eqrdv ) ACGBDGABUAUBZFE
      HZIJKZEABLZUDZUEZWPMZWMFHZWQGZWTIJKZNZWTWPOZWTWRGWTWSGWMXCXDXCWMXDXAXBWMX
      DPZWTWPUFZXAXBXEPZWTWPUCXFWTQGZXAXGPWPQGXFXHABUGWPWTUHUIXHXBXAXEXHXBWTRUJ
      ZSOZXAXEPXHXJXIIRUJZOZXBXHSXKXISXKOXHXKSUKULUMUNXHIQGZXLXBTIURGXMUOIVLUPW
      TIUQUSUTXJXAXEXJXANXDWMWTABVAVBVCVDVEVFVGVHVIWMXDXCWMXDNZXAXBXNXAWPWQGZWM
      XOXDWMWPVJAMLZBMZWPLZVKZWQWMWPXPGZWPXRGZVMWPXSGWMYAXTYAWMXQWPABVNVOUMVPWP
      XPXRVQVRABVSVTWAXDXAXOTWMWTWPWQWDWBWEXNXBWPIJKZWMYBXDABCDWCWAXDXBYBTWMWTW
      PIJWFWBWEWGVCWHWOXBEWTWQWNWTIJWFWIFWPWJWKWL $.
  $}

  ${
    $d x y D $.  $d x y V $.
    $( A set with size at least 2 has at least 2 different elements.
       (Contributed by AV, 18-Mar-2019.) $)
    hashge2el2dif $p |- ( ( D e. V /\ 2 <_ ( # ` D ) )
                          -> E. x e. D E. y e. D x =/= y ) $=
      ( wcel c2 chash cle wbr wa wral wn wrex wceq wi c1 cc0 clt cr syl cfv weq
      cv wne csn fveq2 hashsng sylan9eqr ralimiaa c0 cfn caddc w3a 0re readdcli
      co 1re a1i 2re hashcl nn0red adantr 3jca 0p1e1 1lt2 eqbrtri jctl ltleletr
      adantl sylc cz wb nn0zd 0z jctil zltp1le mpbird cpnf 0ltpnf anim2i ancomd
      simpl syl5breqr pm2.61ian hashgt0n0 syldan rspn0 breq2 ltnlei sylbi ax-mp
      hashinf pm2.21 syl6bi com12 syldc ax-1 pm2.61i equcom ralbidv bitrd mtbid
      eqsn df-ne rexbii rexnal bitri sylibr ) CDEZFCGUAZHIZJZABUBZBCKZACKZLZAUC
      ZBUCZUDZBCMZACMZXLCXQUEZNZACKZXOYDXLYDLZOZYDXJPNZACKZYFYCYGACYCXQCEXJYBGU
      APCYBGUFXQCUGUHUIXLYHYGYEXLCUJUDZYHYGOXIXKQXJRIZYICUKEZXLYJYKXLJZYJQPULUP
      ZXJHIZYLYMSEZFSEZXJSEZUMYMFRIZXKJZYNYLYOYPYQYOYLQPUNUQUOURYPYLUSURYKYQXLY
      KXJCUTZVAVBVCXLYSYKXKYSXIXKYRYMPFRVDVEVFVGVIVIYMFXJVHVJYLQVKEZXJVKEZJZYJY
      NVLYKUUCXLYKUUBUUAYKXJYTVMVNVOVBQXJVPTVQYKLZXLJZQVRXJRVSUUEXIUUDJXJVRNUUE
      UUDXIXLXIUUDXIXKWBVTWACDWLTWCWDCDWEWFZYGACWGTXKYGYEOXIYGXKYEYGXKFPHIZYEXJ
      PFHWHPFRIZUUGYEOZVEUUHUUGLUUIPFUQUSWIUUGYEWMWJWKWNWOVIWPTYEXLWQWRXLYCXNAC
      XLYCBAUBZBCKZXNXLYIYCUUKVLUUFBCXQXCTXLUUJXMBCUUJXMVLXLBAWSURWTXAWTXBYAXNL
      ZACMXPXTUULACXTXMLZBCMUULXSUUMBCXQXRXDXEXMBCXFXGXEXNACXFXGXH $.

    $d x y z D $.
    $( A set with at least 2 different elements has size at least 2.
       (Contributed by AV, 14-Oct-2020.) $)
    hashge2el2difr $p |- ( ( D e. V /\ E. x e. D E. y e. D x =/= y )
                           -> 2 <_ ( # ` D ) ) $=
      ( vz wcel cv wne wrex c2 cle wbr wceq c1 wi c0 rexeq mp1i sylbid cpnf cfv
      chash cc0 clt w3o hashv01gt1 hasheq0 wn rex0 pm2.21 syl6bi com12 hash1snb
      csn wex id rexeqbidv vex weq neeq1 rexbidv rexsn neeq2 bitri syl6bb equid
      eqneqall exlimiv wa cn0 wo hashnn0pnf caddc co cz 1z nn0z zltp1le sylancr
      biimpd df-2 breq1i syl6ibr cxr 2re rexri pnfge mpbird a1d jaoi syl impcom
      breq2 ex 3jaoi mpcom imp ) CDFZAGZBGZHZBCIZACIZJCUBUAZKLZXDUCMZXDNMZNXDUD
      LZUEWRXCXEOZCDUFXFWRXIOXGXHWRXFXIWRXFCPMZXICDUGXJXCXBAPIZXEXBACPQXKUHXKXE
      OXJXBAUIXKXEUJRSUKULWRXGXIWRXGCEGZUNZMZEUOXICDEUMXNXIEXNXCXLXLHZXEXNXCXAB
      XMIZAXMIZXOXNXBXPACXMXNUPXABCXMQUQXQXLWTHZBXMIZXOXPXSAXLEURZAEUSXAXRBXMWS
      XLWTUTVAVBXRXOBXLXTWTXLXLVCVBVDVEEEUSXOXEOXNEVFXEXLXLVGRSVHUKULXHWRXIXHWR
      VIXEXCWRXHXEWRXDVJFZXDTMZVKXHXEOZCDVLYAYCYBYAXHNNVMVNZXDKLZXEYANVOFZXDVOF
      ZXHYEOVPXDVQYFYGVIXHYENXDVRVTVSJYDXDKWAWBWCYBXEXHYBXEJTKLZJWDFYHYBJWEWFJW
      GRXDTJKWMWHWIWJWKWLWIWNWOWPWQ $.

    $( A set has size at least 2 iff it has at least 2 different elements.
       (Contributed by AV, 14-Oct-2020.) $)
    hashge2el2difb $p |- ( D e. V -> ( 2 <_ ( # ` D )
                          <-> E. x e. D E. y e. D x =/= y ) ) $=
      ( wcel c2 chash cfv cle wbr wne wrex hashge2el2dif hashge2el2difr impbida
      cv ) CDEFCGHIJAPBPKBCLACLABCDMABCDNO $.
  $}

  ${
    $d A a b $.  $d B b $.  $d F a b $.
    hashdmpropge2.a $e |- ( ph -> A e. V ) $.
    hashdmpropge2.b $e |- ( ph -> B e. W ) $.
    hashdmpropge2.c $e |- ( ph -> C e. X ) $.
    hashdmpropge2.d $e |- ( ph -> D e. Y ) $.
    hashdmpropge2.f $e |- ( ph -> F e. Z ) $.
    hashdmpropge2.n $e |- ( ph -> A =/= B ) $.
    hashdmpropge2.s $e |- ( ph -> { <. A , C >. , <. B , D >. } C_ F ) $.
    $( The size of the domain of a class which contains two ordered pairs with
       different first componens is greater than or mequal to 2.  (Contributed
       by AV, 12-Nov-2021.) $)
    hashdmpropge2 $p |- ( ph -> 2 <_ ( # ` dom F ) ) $=
      ( va wcel vb cdm cvv cv wne wrex chash cfv cle wbr dmexg syl cpr wss wceq
      c2 dmpropg syl2anc dmss eqsstr3d wa wb prssg wi neeq1 neeq2 rspc2ev 3expa
      cop expcom sylbird mpd hashge2el2difr ) AFUBZUCTZSUDZUAUDZUEZUAVNUFSVNUFZ
      UPVNUGUHUIUJAFKTVOPFKUKULABCUMZVNUNZVSAVTBDVICEVIUMZUBZVNADITEJTWCVTUONOB
      DCEIJUQURAWBFUNWCVNUNRWBFUSULUTAWABVNTZCVNTZVAZVSABGTCHTWFWAVBLMBCVNGHVCU
      RABCUEZWFVSVDQWFWGVSWDWEWGVSVRWGBVQUESUABCVNVNVPBVQVEVQCBVFVGVHVJULVKVLSU
      AVNUCVMUR $.
  $}

  $( An unordered triple has at most three elements.  (Contributed by Mario
     Carneiro, 11-Feb-2015.) $)
  hashtplei $p |- ( { A , B , C } e. Fin /\ ( # ` { A , B , C } ) <_ 3 ) $=
    ( cpr csn ctp c2 c1 c3 df-tp hashprlei hashsnlei 2nn0 1nn0 2p1e3 hashunlei
    ) ABDCEABCFGHIABCJABKCLMNOP $.

  $( The size of an unordered triple of three different elements.  (Contributed
     by Alexander van der Vekens, 10-Nov-2017.)  (Revised by AV,
     18-Sep-2021.) $)
  hashtpg $p |- ( ( A e. U /\ B e. V /\ C e. W )
    -> ( ( A =/= B /\ B =/= C /\ C =/= A ) <-> ( # ` { A , B , C } ) = 3 ) ) $=
    ( wcel wne ctp chash cfv c3 wceq wa c2 wn wi wbr clt ax-mp w3a cpr c1 caddc
    csn cun co cfn simpl3 prfi a1i w3o wo elprg orcom nne bitr2i bicomi orbi12i
    eqcom bitri syl6bb biimpd 3ad2ant3 imp olcd 3orass syl6ibr 3ianor hashunsng
    ex con2d syl12anc simpr1 3simpa adantr hashprg syl mpbid oveq1d eqtrd df-tp
    wb fveq2i df-3 3eqtr4g cle hashprlei cz hashcl nn0zd 2z 2p1e3 breq2d sylbid
    zleltp1 mp2an cr nn0red 3re ltnei necomd adantl mp1i tpidm12 syl6req fveq2d
    tpeq1 neeq1d syl5ib sylbi tpeq2 tpidm23 tpeq3 tpidm13 3jaoi necon4bd impbid
    com12 ) ADGZBEGZCFGZUAZABHZBCHZCAHZUAZABCIZJKZLMZYCYGYJYCYGNZABUBZCUEUFZJKZ
    OUCUDUGZYILYKYNYLJKZUCUDUGZYOYKYBYLUHGZCYLGZPZYNYQMZXTYAYBYGUIYRYKABUJZUKYC
    YGYTYCYSYGYCYSYDPZYEPZYFPZULZYGPZYCYSUUCUUDUUEUMZUMZUUFYCYSUUIYCYSNUUHUUCYC
    YSUUHYBXTYSUUHQYAYBYSUUHYBYSCAMZCBMZUMZUUHCABFUNUULUUKUUJUMUUHUUJUUKUOUUKUU
    DUUJUUEUUDBCMZUUKBCUPZBCUTUQUUEUUJCAUPZURUSVAVBVCVDVEVFVKUUCUUDUUEVGVHYDYEY
    FVIZVHVLVEYBYRYTNUUAYLCFVJVEVMYKYPOUCUDYKYDYPOMZYCYDYEYFVNYKXTYANZYDUUQWCYC
    UURYGXTYAYBVOVPABDEVQVRVSVTWAYHYMJABCWBWDWEWFVKYCYGYILUUGYCYILHZUUGUUFYCUUS
    QZUUPUUCUUTUUDUUEUUCABMZUUTABUPYCBCUBZJKZLHZUVAUUSUVBUHGZUVCOWGRZNUVDYCBCWH
    UVFUVDUVEUVFLUVCUVFUVCLSRZLUVCHUVCWIGZOWIGZUVFUVGQUVEUVHBCUJZUVEUVCUVBWJZWK
    TWLUVHUVINZUVFUVCYOSRZUVGUVCOWPUVLUVMUVGUVLYOLUVCSYOLMZUVLWMUKWNVCWOWQUVCLU
    VEUVCWRGUVJUVEUVCUVKWSTWTXAVRXBXCXDUVAUVCYILUVAUVBYHJUVAYHBBCIUVBABBCXHBCXE
    XFXGXIXJXKUUDUUMUUTUUNYCACUBZJKZLHZUUMUUSUVOUHGZUVPOWGRZNUVQYCACWHUVSUVQUVR
    UVSLUVPUVSUVPLSRZLUVPHUVPWIGZUVIUVSUVTQUVRUWAACUJZUVRUVPUVOWJZWKTWLUWAUVINZ
    UVSUVPYOSRZUVTUVPOWPUWDUWEUVTUWDYOLUVPSUVNUWDWMUKWNVCWOWQUVPLUVRUVPWRGUWBUV
    RUVPUWCWSTWTXAVRXBXCXDUUMUVPYILUUMUVOYHJUUMYHACCIUVOBCACXLACXMXFXGXIXJXKUUE
    UUJUUTUUOYCYPLHZUUJUUSYRYPOWGRZNUWFYCABWHUWGUWFYRUWGLYPUWGYPLSRZLYPHYPWIGZU
    VIUWGUWHQYRUWIUUBYRYPYLWJZWKTWLUWIUVINZUWGYPYOSRZUWHYPOWPUWKUWLUWHUWKYOLYPS
    UVNUWKWMUKWNVCWOWQYPLYRYPWRGUUBYRYPUWJWSTWTXAVRXBXCXDUUJYPYILUUJYLYHJUUJYHA
    BAIYLCAABXNABXOXFXGXIXJXKXPXKXSXQXR $.

  ${
    $d D f x y z $.  $d V f $.
    $( A set with size at least 3 has at least 3 different elements.  In
       contrast to ~ hashge2el2dif , which has an elementary proof, the
       dominance relation and 1-1 functions from a set with three elements
       which are known to be different are used to prove this theorem.
       Although there is also an elementary proof for this theorem, it might be
       much longer.  After all, this proof should be kept because it can be
       used as template for proofs for higher cardinalities.  (Contributed by
       AV, 20-Mar-2019.)  (Proof modification is discouraged.) $)
    hashge3el3dif $p |- ( ( D e. V /\ 3 <_ ( # ` D ) )
                          -> E. x e. D E. y e. D E. z e. D
                                         ( x =/= y /\ x =/= z /\ y =/= z ) ) $=
      ( vf wcel c3 cle wbr cv wne w3a wrex c0 0nep0 ax-mp cvv 3pm3.2i a1i chash
      cfv csn ctp cdom wceq 0ex sneqr necon3i snex snnzg wb hashtpg mpbi eqcomi
      breq1d cfn tpfi hashdom bitrd wf1 wex brdomg wi necomd simpr f1dom3el3dif
      mpan wa expcom exlimiv com12 sylbid imp ) DEGZHDUAUBZIJZAKZBKZLVRCKZLVSVT
      LMCDNBDNADNZVOVQOOUCZWBUCZUDZDUEJZWAVOVQWDUAUBZVPIJZWEVOHWFVPIHWFUFVOWFHO
      WBLZWBWCLZWCOLZMZWFHUFZWHWIWJPWHWIPWBWCOWBOWBUGUHUIQZWBRGZWJOUJZWBRUKZQSO
      RGZWNWCRGZMZWKWLULWQWNWRUGWOWBUJSZOWBWCRRRUMQUNUOTUPWDUQGVOWGWEULOWBWCURW
      DDEUSVHUTVOWEWDDFKZVAZFVBZWAWDDEFVCXCVOWAXBVOWAVDFVOXBWAVOXBVIZABCOWBWCDX
      ARRRWSXDWTTWHOWCLZWIMXDWHXEWIPWNXEWOWNWCOWPVEQWMSTVOXBVFVGVJVKVLVMVMVN $.
  $}

  ${
    $d P x y z $.  $d V x y z $.
    $( An element of the set of subsets with two elements is a proper unordered
       pair.  (Contributed by AV, 1-Nov-2020.) $)
    elss2prb $p |- ( P e. { z e. ~P V | ( # ` z ) = 2 }
                     <-> E. x e. V E. y e. V ( x =/= y /\ P = { x , y } ) ) $=
      ( cv chash cfv c2 wceq cpw wcel wa wrex fveq2 ssrexv syl adantr ad2antll
      wi crab wne cpr eqeq1d elrab hash2prb wss reximdv syld sylbid imp prelpwi
      elpwi wb eleq1 mpbird hashprg biimpcd impcom eqtrd jca ex rexlimivv bitri
      impbii ) DCFZGHZIJZCEKZUALDVILZDGHZIJZMZAFZBFZUBZDVNVOUCZJZMZBENZAENZVHVL
      CDVIVFDJVGVKIVFDGOUDUEVMWAVJVLWAVJVLVSBDNZADNZWADVIABUFVJWCWBAENZWAVJDEUG
      ZWCWDTDEUMZWBADEPQVJWBVTAEVJWEWBVTTWFVSBDEPQUHUIUJUKVSVMABEEVNELVOELMZVSV
      MWGVSMZVJVLWHVJVQVILZWGWIVSVNVOEULRVRVJWIUNWGVPDVQVIUOSUPWHVKVQGHZIVRVKWJ
      JWGVPDVQGOSVSWGWJIJZVPWGWKTVRWGVPWKVNVOEEUQURRUSUTVAVBVCVEVD $.
  $}

  ${
    $d P a b p $.  $d V a b p $.
    $( A subset of size two is an unordered pair of elements of its superset.
       (Contributed by Alexander van der Vekens, 12-Jul-2017.)  (Proof
       shortened by AV, 4-Nov-2020.) $)
    hash2sspr $p |- ( ( P e. ~P V /\ ( # ` P ) = 2 )
                     -> E. a e. V E. b e. V P = { a , b } ) $=
      ( vp cpw wcel chash cfv c2 wceq wa cv crab wrex fveq2 eqeq1d elrab reximi
      cpr wne elss2prb simpr sylbi sylbir ) ABFZGAHIZJKZLAEMZHIZJKZEUFNGZACMZDM
      ZTKZDBOZCBOZUKUHEAUFUIAKUJUGJUIAHPQRULUMUNUAZUOLZDBOZCBOUQCDEABUBUTUPCBUS
      UODBURUOUCSSUDUE $.
  $}

  ${
    $d V e p v w $.  $d X p v w $.
    $( If there is an element of the set of subsets with two elements in a set,
       an unordered pair of sets is in the set.  (Contributed by Alexander van
       der Vekens, 12-Jul-2018.) $)
    exprelprel $p |- ( E. p e. { e e. ~P V | ( # ` e ) = 2 } p e. X
                    -> E. v e. V E. w e. V { v , w } e. X ) $=
      ( cv wcel cpr wrex chash cfv c2 wceq cpw crab wne wa wi reximdv wb adantl
      elss2prb eleq1 biimpcd com12 sylbi rexlimiv ) FGZEHZBGZAGZIZEHZADJZBDJZFC
      GKLMNCDOPZUIUQHUKULQZUIUMNZRZADJZBDJZUJUPSBACUIDUCUJVBUPUJVAUOBDUJUTUNADU
      TUJUNUSUJUNUAURUIUMEUDUBUETTUFUGUH $.
  $}

  ${
    $d V a b c $.
    $( A set of size three is an unordered triple.  (Contributed by Alexander
       van der Vekens, 13-Sep-2018.) $)
    hash3tr $p |- ( ( V e. W /\ ( # ` V ) = 3 )
                    -> E. a E. b E. c V = { a , b , c } ) $=
      ( wcel chash cfv c3 wceq wa c3o cen wbr cv ctp wex cfn cn0 mpan2 3nn0 imp
      wi hashvnfin hash3 eqcomi a1i eqeq2d wb com 3onn nnfi ax-mp hashen biimpd
      sylbid adantld mpcom en3 syl ) ABFZAGHZIJZKZALMNZACODOEOPJEQDQCQARFZVDVEV
      AVCVFVAISFVCVFUCUAAIBUDTUBVFVCVEVAVFVCVBLGHZJZVEVFIVGVBIVGJVFVGIUEUFUGUHV
      FVHVEVFLRFZVHVEUILUJFVIUKLULUMALUNTUOUPUQURCDEAUSUT $.

    $( If the size of a set is between 1 and 3 (inclusively), the set is a
       singleton or an unordered pair or an unordered triple.  (Contributed by
       Alexander van der Vekens, 13-Sep-2018.) $)
    hash1to3 $p |- ( ( V e. Fin /\ 1 <_ ( # ` V ) /\ ( # ` V ) <_ 3 )
     -> E. a E. b E. c ( V = { a } \/ V = { a , b } \/ V = { a , b , c } ) ) $=
      ( cfn wcel c1 cle wbr c3 wceq w3o cv wex 2eximi 19.23bi eximi syl expcom
      wa chash cfv w3a c2 csn cpr ctp hashcl nn01to3 syl3an1 wi hash1snb biimpa
      cn0 3mix1 hash2pr 3mix2 hash3tr 3mix3 3jaoi com12 3ad2ant1 mpd ) AEFZGAUA
      UBZHIZVEJHIZUCVEGKZVEUDKZVEJKZLZABMZUEKZAVLCMZUFKZAVLVNDMUGKZLZDNZCNZBNZV
      DVEUNFVFVGVKAUHVEUIUJVDVFVKVTUKVGVKVDVTVHVDVTUKVIVJVDVHVTVDVHTVMBNZVTVDVH
      WAAEBULUMVMVSBVMVSDVMDNVSCVMVQCDVMVOVPUOOPPQRSVDVIVTVDVITVOCNBNVTAEBCUPVO
      VRBCVOVRDVOVQDVOVMVPUQQPORSVDVJVTVDVJTVPDNZCNBNVTAEBCDURWBVRBCVPVQDVPVMVO
      USQORSUTVAVBVC $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Functions with a domain containing at least two different elements
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d G a b x y $.
    $( A function with a domain containing (at least) two different elements is
       not an ordered pair.  This stronger version of ~ fundmge2nop (with the
       less restrictive requirement that ` ( G \ { (/) } ) ` needs to be a
       function instead of ` G ` ) is useful for proofs for extensible
       structures, see ~ structn0fun .  (Contributed by AV, 12-Oct-2020.)
       (Revised by AV, 7-Jun-2021.)  (Proof shortened by AV, 15-Nov-2021.) $)
    fundmge2nop0 $p |- ( ( Fun ( G \ { (/) } ) /\ 2 <_ ( # ` dom G ) )
                        -> -. G e. ( _V X. _V ) ) $=
      ( va vb vx vy cdif wfun cdm wa cvv wcel wn wi cv wrex ex wex com23 syl5bi
      wceq c0 csn c2 chash cfv cle wbr cxp wne dmexg hashge2el2dif syl cop elvv
      df-ne difeq1 funeqd opwo0id eqcomi funeqi dmeq anbi12d eqid vex funopdmsn
      eleq2d 3expb expcom syl6bi impd exlimivv com12 con3d rexlimivv syl6 com13
      sylbid imp prcnel pm2.61d1 ) AUAUBZFZGZUCAHZUDUEUFUGZIAJKZAJJUHZKZLZWCWEW
      FWIMWFWEWCWIWFWEBNZCNZUIZCWDOBWDOZWCWIMZWFWDJKZWEWMMAJUJWOWEWMBCWDJUKPULW
      LWNBCWDWDWLWJWKTZLZWJWDKZWKWDKZIZWNWJWKUOWTWCWQWIWTWCWQWIMWTWCIZWHWPWHADN
      ZENZUMZTZEQDQZXAWPDEAUNXFXAWPXEXAWPMDEXEWTWCWPXEWCWTWPXEWCXDWAFZGZWTWPMZX
      EWBXGAXDWAUPUQXHXDGZXEXIXGXDXDXGXBXCURUSUTXEWTXJWPXEWTWJXDHZKZWKXKKZIZXJW
      PMXEWRXLWSXMXEWDXKWJAXDVAZVFXEWDXKWKXOVFVBXJXNWPXJXLXMWPWJWKXDJJXBXCXDVCD
      VDEVDVEVGVHVIRSVQRVJVKVLSVMPRSVNVOVPVRAWGVSVT $.

    $( A function with a domain containing (at least) two different elements is
       not an ordered pair.  (Contributed by AV, 12-Oct-2020.)  (Proof
       shortened by AV, 9-Jun-2021.) $)
    fundmge2nop $p |- ( ( Fun G /\ 2 <_ ( # ` dom G ) )
                        -> -. G e. ( _V X. _V ) ) $=
      ( wfun c0 csn cdif cdm chash cfv cle wbr cvv cxp wcel fundif fundmge2nop0
      c2 wn sylan ) ABACDZEBPAFGHIJAKKLMQSANAOR $.
  $}

  ${
    fun2dmnop.a $e |- A e. _V $.
    fun2dmnop.b $e |- B e. _V $.
    $( A function with a domain containing (at least) two different elements is
       not an ordered pair.  This stronger version of ~ fun2dmnop (with the
       less restrictive requirement that ` ( G \ { (/) } ) ` needs to be a
       function instead of ` G ` ) is useful for proofs for extensible
       structures, see ~ structn0fun .  (Contributed by AV, 21-Sep-2020.)
       (Revised by AV, 7-Jun-2021.) $)
    fun2dmnop0 $p |- ( ( Fun ( G \ { (/) } ) /\ A =/= B /\ { A , B } C_ dom G )
                      -> -. G e. ( _V X. _V ) ) $=
      ( c0 csn cdif wfun wne cpr cdm wss w3a cvv wcel wa sylbir 3ad2ant3 adantr
      cxp wn c2 chash cfv cle wbr simpl1 dmexg adantl prss simpl simpl2 nehash2
      simpr fundmge2nop0 syl2anc ex prcnel pm2.61d1 ) CFGHIZABJZABKCLZMZNZCOPZC
      OOUAZPUBZVEVFVHVEVFQZVAUCVCUDUEUFUGVHVAVBVDVFUHVIABVCOVFVCOPVECOUIUJVEAVC
      PZVFVDVAVJVBVDVJBVCPZQZVJABVCDEUKZVJVKULRSTVEVKVFVDVAVKVBVDVLVKVMVJVKUORS
      TVAVBVDVFUMUNCUPUQURCVGUSUT $.

    $( A function with a domain containing (at least) two different elements is
       not an ordered pair.  (Contributed by AV, 21-Sep-2020.)  (Proof
       shortened by AV, 9-Jun-2021.) $)
    fun2dmnop $p |- ( ( Fun G /\ A =/= B /\ { A , B } C_ dom G )
                      -> -. G e. ( _V X. _V ) ) $=
      ( wfun c0 csn cdif wne cpr cdm wss cvv cxp wcel fundif fun2dmnop0 syl3an1
      wn ) CFCGHZIFABJABKCLMCNNOPTUACQABCDERS $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Finite induction on the size of the first component of a binary relation
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( TODO-AV1: no lemma, but self-reliant theorem!  Lemma for ~ brfi1ind :  The
     size of a set is the size of this set with one element removed, increased
     by 1.  (Contributed by Alexander van der Vekens, 7-Jan-2018.) $)
  brfi1indlem $p |- ( ( V e. W /\ N e. V /\ Y e. NN0 )
                 -> ( ( # ` V ) = ( Y + 1 ) -> ( # ` ( V \ { N } ) ) = Y ) ) $=
    ( wcel cn0 w3a chash cfv c1 co wceq wa cmin wi adantr imp ex 3ad2ant2 eqtrd
    caddc csn cdif cfn wss peano2nn0 eleq1a hashclb ad2antlr mpbird syl 3adant2
    wb impcom snssi hashssdif syl2anc oveq1 hashsng oveq2d 1cnd pncand 3ad2ant3
    nn0cn sylan9eqr ) BCEZABEZDFEZGZBHIZDJUAKZLZBAUBZUCHIZDLVIVLMZVNVJVMHIZNKZD
    VOBUDEZVMBUEZVNVQLVIVLVRVFVHVLVROZVGVHVFVTVHVKFEZVFVTODUFWAVFVTWAVFMZVLVRWB
    VLMVRVJFEZWBVLWCWAVLWCOVFVKFVJUGPQVFVRWCUMWAVLBCUHUIUJRRUKUNULQVIVSVLVGVFVS
    VHABUOSPBVMUPUQVLVIVQVKVPNKZDVJVKVPNURVIWDVKJNKZDVGVFWDWELVHVGVPJVKNABUSUTS
    VHVFWEDLVGVHDJDVDVHVAVBVCTVETR $.

  ${
    $d a b e n v x y $.  $d b f w $.  $d E a e n v $.  $d F a f w $.
    $d L e n v x y $.  $d V a b e n v $.  $d ps f n w y $.  $d ps x y $.
    $d th e n v $.  $d ch f w $.  $d ph e n v $.  $d rh x $.
    $d rh e f n v w y $.
    fi1uzind.f $e |- F e. _V $.
    fi1uzind.l $e |- L e. NN0 $.
    fi1uzind.1 $e |- ( ( v = V /\ e = E ) -> ( ps <-> ph ) ) $.
    fi1uzind.2 $e |- ( ( v = w /\ e = f ) -> ( ps <-> th ) ) $.
    fi1uzind.3 $e |- ( ( [. v / a ]. [. e / b ]. rh /\ n e. v )
                         -> [. ( v \ { n } ) / a ]. [. F / b ]. rh ) $.
    fi1uzind.4 $e |- ( ( w = ( v \ { n } ) /\ f = F ) -> ( th <-> ch ) ) $.
    fi1uzind.base $e |- ( ( [. v / a ]. [. e / b ]. rh /\ ( # ` v ) = L )
                          -> ps ) $.
    fi1uzind.step $e |- ( ( ( ( y + 1 ) e. NN0 /\ ( [. v / a ]. [. e / b ]. rh
                      /\ ( # ` v ) = ( y + 1 ) /\ n e. v ) ) /\ ch ) -> ps ) $.
    $( Properties of an ordered pair with a finite first component with at
       least L elements, proven by finite induction on the size of the first
       component.  This theorem can be applied for graphs (represented as
       orderd pairs of vertices and edges) with a finite number of vertices,
       usually with ` L = 0 ` (see ~ opfi1ind ) or ` L = 1 ` .  (Contributed by
       AV, 22-Oct-2020.)  (Revised by AV, 28-Mar-2021.) $)
    fi1uzind $p |- ( ( [. V / a ]. [. E / b ]. rh
                       /\ V e. Fin /\ L <_ ( # ` V ) ) -> ph ) $=
      ( vx wsbc cfn wcel chash cfv cle wbr cn0 wi cv wceq wa wex df-clel wal cz
      nn0z ad2antlr wb breq2 eqcoms biimpcd adantr imp c1 caddc co eqeq1 anbi2d
      mp1i imbi1d 2albidv eqcom sylan2b gen2 a1i w3a simpl simpr sbceqbid fveq2
      sbceq1d eqeq2d anbi12d imbi12d cbval2v cc0 nn0ge0 0red nn0re letr syl3anc
      cr zre cuz 0nn0 pm3.22 0z eluz1 mpbird eluznn0 sylancr ex syl6com pm2.43a
      com14 com12 3adant1 clt nn0p1gt0 breqtrrd adantrl cvv vex hashgt0elex csn
      mp2b cdif brfi1indlem syl5bi peano2nn0 ad2antrr simplrr simprlr jca ax-mp
      spc2gv com15 com23 mpcom mpd exlimiv sbcex sylbi 3jca difexg eqeq1d mp2an
      syl5bb expdimp anbi2i sylanb syl6an exp41 com4l syl com25 impcom impancom
      3anbi2i sylan uzind sbccom expd syl5com exp31 expcom com24 pm2.43i hashcl
      alrimivv syl11 3imp ) EQLUGZPOUGZOUHUIZNOUJUKZULUMZAUVMUNUIZUVKUVNAUOZUVL
      UVOKUPZUVMUQZUVQUNUIZURZKUSUVKUVPUOZKUVMUNUTUVTUWAKUVRUVSUWAUVRUVSUWAUOUV
      RUVKUVSUVRUVPUVKUVRUVSUVRUVPUOUOUVNUVSUVRUVKUVRURZAUVNUVSUVRUWBAUOZUVNUVS
      URZUVRURZEQIUPZUGZPHUPZUGZUVQUWHUJUKZUQZURZBUOZIVAHVAZUWBAUWENVBUIZUVQVBU
      IZNUVQULUMZUWNNUNUIZUWOUWESNVCVPUVSUWPUVNUVRUVQVCVDUWDUVRUWQUVNUVRUWQUOUV
      SUVRUVNUWQUVNUWQVEUVMUVQUVMUVQNULVFVGVHVIVJUWIUFUPZUWJUQZURZBUOZIVAHVAUWI
      NUWJUQZURZBUOZIVAHVAZUWIFUPZUWJUQZURZBUOZIVAHVAZUWIUXGVKVLVMZUWJUQZURZBUO
      ZIVAHVAZUWNUFFNUVQUWSNUQZUXBUXEHIUXQUXAUXDBUXQUWTUXCUWIUWSNUWJVNVOVQVRUWS
      UXGUQZUXBUXJHIUXRUXAUXIBUXRUWTUXHUWIUWSUXGUWJVNVOVQVRUWSUXLUQZUXBUXOHIUXS
      UXAUXNBUXSUWTUXMUWIUWSUXLUWJVNVOVQVRUWSUVQUQZUXBUWMHIUXTUXAUWLBUXTUWTUWKU
      WIUWSUVQUWJVNVOVQVRUXFUWOUXEHIUXCUWIUWJNUQBNUWJVSUDVTWAWBUXKEQJUPZUGZPGUP
      ZUGZUXGUYCUJUKZUQZURZDUOZJVAGVAZUWOUXGVBUIZNUXGULUMZWCZUXPUXJUYHHIGJUWHUY
      CUQZUWFUYAUQZURZUXIUYGBDUYOUWIUYDUXHUYFUYOUWGUYBPUWHUYCUYMUYNWDUYOEQUWFUY
      AUYMUYNWEWHWFUYMUXHUYFVEUYNUYMUWJUYEUXGUWHUYCUJWGWIVIWJUAWKWLUYLUYIUXPUYL
      UYIURUXOHIUYLUXNUYIBUYLUXGUNUIZUXNUYIBUOZUYJUYKUYPUWOUWRWMNULUMZUYJUYKURZ
      UYPUOSNWNUYSUYRUYPUYJUYKUYRUYPUOZUYKUYJUYTUYRUYKUYJUYJUYPUYRUYKUYJUYJUYPU
      OZUOUYJUYRUYKURZWMUXGULUMZVUAUYJWMWSUINWSUIZUXGWSUIVUBVUCUOUYJWOUWRVUDUYJ
      SNWPVPUXGWTWMNUXGWQWRVUCUYJUYPVUCUYJURZWMUNUIUXGWMXAUKUIZUYPXBVUEVUFUYJVU
      CURZVUCUYJXCWMVBUIVUFVUGVEVUEXDWMUXGXEVPXFUXGWMXGXHXIXJXIXLXKVJXMYCXNUYPU
      XNURWMUWJXOUMZUYQUYPUXMVUHUWIUXMUYPUWJUXLUQZVUHUXLUWJVSZUYPVUIURWMUXLUWJX
      OUYPWMUXLXOUMVUIUXGXPVIUYPVUIWEXQVTXRUXNUYPVUHUYQUOZUWIUXMUYPVUKUOZUWHXSU
      IZUWIUXMVULUOUOHXTZVUMVUHUXMUYPUWIUYQVUMVUHUXMUYPUWIUYQUOZUOUOZVUMVUHURUV
      QUWHUIZKUSVUPKUWHXSYAVUQVUPKUWIVUQUXMUYPUYQUWIVUQUXMUYPUYQUOUOZUWIVUQUREQ
      MUGZPUWHUVQYBZYDZUGZVURUBUWIVUQVVBVURUOUYPVUQVVBUXMUWIUYQUYPVUQVVBUXMVUOU
      OUOUYPVUQURZUXMVVBVUOVVCUXMVVBVUOUOZVVAUJUKZUXGUQZVVCUXMURZVVDVVCUXMVVFVV
      CVUMVUQUYPUXMVVFUOVUMVVCVUNWBUYPVUQWEUYPVUQWDUXMVUIVUMVUQUYPWCVVFVUJUVQUW
      HXSUXGYEYFWRVJVVFVVBVVGVUOUYIVVBVVGUWIVVFBUYIVVBVVGUWIVVFBUOUYIVVBURZVVGU
      RZUWIURZUXLUNUIZUWIUXMVUQWCZURZVVFCBVVJVVKVVLVVGVVKVVHUWIUYPVVKVUQUXMUXGY
      GYHVDVVJUWIUXMVUQVVIUWIWEVVHVVCUXMUWIYIVVIVUQUWIVVHUYPVUQUXMYJVIUUAYKVVHV
      VFCUOVVGUWIUYIVVBVVFCVVAXSUIZMXSUIUYIVVBVVFURZCUOZUOVUMVVNVUNUWHVUTXSUUBY
      LRUYHVVPGJVVAMXSXSUYCVVAUQZUYAMUQZURZUYGVVODCVVSUYDVVBUYFVVFVVSUYBVUSPUYC
      VVAVVQVVRWDVVSEQUYAMVVQVVRWEWHWFVVQUYFVVFVEVVRUYFUYEUXGUQVVQVVFUXGUYEVSVV
      QUYEVVEUXGUYCVVAUJWGUUCUUEVIWJUCWKYMUUDUUFYHVVMVVKUWIVUIVUQWCZURCBVVLVVTV
      VKUXMVUIUWIVUQVUJUUPUUGUEUUHUUIUUJYNYOYPXIYOXIYNVJYQXIUUKYRUULXIUUMYLVJUU
      NYQUUQUUOUVGXIYFUURWRUVKUVRUWNAUOZOXSUIZLXSUIZURZUVKUVRVWAUOUVKVWBVWCUVJP
      OYSUVKEPOUGZQLUGVWCEPQOLUUSVWEQLYSYTYKVWDUVKUVRVWAVWDUWNUWBAUWMUWCHIOLXSX
      SUWHOUQZUWFLUQZURZUWLUWBBAVWHUWIUVKUWKUVRVWHUWGUVJPUWHOVWFVWGWDVWHEQUWFLV
      WFVWGWEWHWFVWFUWKUVRVEVWGVWFUWJUVMUVQUWHOUJWGWIVIWJTWKYMYOUUTYPVJUVAUVBXL
      UVCUVDUVEVJYRYTOUVFUVHUVI $.
  $}

  ${

    $d E a b $.  $d E e n v $.  $d F a b f w $.  $d G a b e f n v w y $.
    $d L e n v y $.  $d V a b e n v $.  $d ps f n w y $.  $d th e n v $.
    $d ch f w $.  $d ph e n v $.
    brfi1uzind.r $e |- Rel G $.
    brfi1uzind.f $e |- F e. _V $.
    brfi1uzind.l $e |- L e. NN0 $.
    brfi1uzind.1 $e |- ( ( v = V /\ e = E ) -> ( ps <-> ph ) ) $.
    brfi1uzind.2 $e |- ( ( v = w /\ e = f ) -> ( ps <-> th ) ) $.
    brfi1uzind.3 $e |- ( ( v G e /\ n e. v ) -> ( v \ { n } ) G F ) $.
    brfi1uzind.4 $e |- ( ( w = ( v \ { n } ) /\ f = F ) -> ( th <-> ch ) ) $.
    brfi1uzind.base $e |- ( ( v G e /\ ( # ` v ) = L ) -> ps ) $.
    brfi1uzind.step $e |- ( ( ( ( y + 1 ) e. NN0
           /\ ( v G e /\ ( # ` v ) = ( y + 1 ) /\ n e. v ) ) /\ ch ) -> ps ) $.
    $( Properties of a binary relation with a finite first component with at
       least L elements, proven by finite induction on the size of the first
       component.  This theorem can be applied for graphs (as binary relation
       between the set of vertices and an edge function) with a finite number
       of vertices, usually with ` L = 0 ` (see ~ brfi1ind ) or ` L = 1 ` .
       (Contributed by Alexander van der Vekens, 7-Jan-2018.)  (Proof shortened
       by AV, 23-Oct-2020.)  (Revised by AV, 28-Mar-2021.) $)
    brfi1uzind $p |- ( ( V G E /\ V e. Fin /\ L <_ ( # ` V ) ) -> ph ) $=
      ( va vb wbr cv wsbc cfn wcel chash cfv cle wrel brrelex12 mpan simpl wceq
      cvv wa simplr wb breq12 adantll sbcied biimprcd mpd csn vex sbc2ie difexg
      cdif ax-mp elexi sylibr sylanb c1 caddc co cn0 w3a 3anbi1i anbi2i syl3an1
      fi1uzind ) OKMUGZUEUHZUFUHZMUGZUFKUIZUEOUIZOUJUKNOULUMUNUGAWGOUTUKZKUTUKZ
      VAZWLMUOWGWOPOKMUPUQWOWLWGWOWKWGUEOUTWMWNURWOWHOUSZVAWJWGUFKUTWMWNWPVBWPW
      IKUSWJWGVCWOWHOWIKMVDVEVFVFVGVHABCDWJEFGHIJKLNOUEUFQRSTWJUFHUHZUIUEGUHZUI
      ZWRWQMUGZJUHZWRUKZWJUFLUIUEWRXAVIZVMZUIZWJWTUEUFWRWQGVJZHVJWHWRWIWQMVDVKZ
      WTXBVAXDLMUGZXEUAWJXHUEUFXDLWRUTUKXDUTUKXFWRXCUTVLVNLUTQVOWHXDWILMVDVKVPV
      QUBWSWTWRULUMZNUSBXGUCVQEUHVRVSVTZWAUKZWSXIXJUSZXBWBZVAXKWTXLXBWBZVACBXMX
      NXKWSWTXLXBXGWCWDUDVQWFWE $.
  $}

  ${
    $d E e n v $.  $d F f w $.  $d G e f n v w y $.  $d V e n v $.
    $d ps f n w y $.  $d th e n v $.  $d ch f w $.  $d ph e n v $.
    brfi1ind.r $e |- Rel G $.
    brfi1ind.f $e |- F e. _V $.
    brfi1ind.1 $e |- ( ( v = V /\ e = E ) -> ( ps <-> ph ) ) $.
    brfi1ind.2 $e |- ( ( v = w /\ e = f ) -> ( ps <-> th ) ) $.
    brfi1ind.3 $e |- ( ( v G e /\ n e. v ) -> ( v \ { n } ) G F ) $.
    brfi1ind.4 $e |- ( ( w = ( v \ { n } ) /\ f = F ) -> ( th <-> ch ) ) $.
    brfi1ind.base $e |- ( ( v G e /\ ( # ` v ) = 0 ) -> ps ) $.
    brfi1ind.step $e |- ( ( ( ( y + 1 ) e. NN0
           /\ ( v G e /\ ( # ` v ) = ( y + 1 ) /\ n e. v ) ) /\ ch ) -> ps ) $.
    $( Properties of a binary relation with a finite first component, proven by
       finite induction on the size of the first component.  (Contributed by
       Alexander van der Vekens, 7-Jan-2018.)  (Revised by AV, 28-Mar-2021.) $)
    brfi1ind $p |- ( ( V G E /\ V e. Fin ) -> ph ) $=
      ( wbr cfn wcel cc0 chash cfv cle hashge0 adantl 0nn0 brfi1uzind mpd3an3 )
      NKMUCZNUDUEZUFNUGUHUIUCZAUPUQUONUDUJUKABCDEFGHIJKLMUFNOPULQRSTUAUBUMUN $.

    $d e n v x y $.  $d G x $.  $d ps x $.
    $( Alternate proof of ~ brfi1ind , which does not use ~ brfi1uzind .
       (Contributed by Alexander van der Vekens, 7-Jan-2018.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    brfi1indALT $p |- ( ( V G E /\ V e. Fin ) -> ph ) $=
      ( vx cfn wcel wbr chash cfv cn0 wi hashcl cv wa wex df-clel wal cc0 caddc
      wceq c1 co eqeq2 anbi2d imbi1d 2albidv gen2 breq12 wb fveq2 eqeq1d adantr
      anbi12d imbi12d cbval2v clt nn0re 1re a1i nn0ge0 addgegt0d simpr breqtrrd
      cr 0lt1 adantrl cvv vex hashgt0elex csn simpl brfi1indlem syl3anc imp w3a
      cdif peano2nn0 ad2antrr ad2antlr simplrr simprlr 3jca difexg ax-mp spc2gv
      jca mp2an expdimp syl6an exp41 com15 com23 mpcom ex mpd com4l exlimiv syl
      com25 impcom impancom alrimivv syl5bi nn0ind brrelexi brrelex2i expd syl5
      expcom eqcoms sylbi ) NUDUEZNKMUFZAYKNUGUHZUIUEZYLAUJZNUKYNJULZYMUSZYPUIU
      EZUMZJUNYOJYMUIUOYSYOJYQYRYOYRYOUJYMYPYMYPUSZYLYRAYLYTYRAUJYRGULZHULZMUFZ
      UUAUGUHZYPUSZUMZBUJZHUPGUPZYLYTUMZAUUCUUDUCULZUSZUMZBUJZHUPGUPUUCUUDUQUSZ
      UMZBUJZHUPGUPUUCUUDEULZUSZUMZBUJZHUPGUPZUUCUUDUUQUTURVAZUSZUMZBUJZHUPGUPZ
      UUHUCEYPUUJUQUSZUUMUUPGHUVGUULUUOBUVGUUKUUNUUCUUJUQUUDVBVCVDVEUUJUUQUSZUU
      MUUTGHUVHUULUUSBUVHUUKUURUUCUUJUUQUUDVBVCVDVEUUJUVBUSZUUMUVEGHUVIUULUVDBU
      VIUUKUVCUUCUUJUVBUUDVBVCVDVEUUJYPUSZUUMUUGGHUVJUULUUFBUVJUUKUUEUUCUUJYPUU
      DVBVCVDVEUUPGHUAVFUVAFULZIULZMUFZUVKUGUHZUUQUSZUMZDUJZIUPFUPZUUQUIUEZUVFU
      UTUVQGHFIUUAUVKUSZUUBUVLUSZUMZUUSUVPBDUWBUUCUVMUURUVOUUAUVKUUBUVLMVGUVTUU
      RUVOVHUWAUVTUUDUVNUUQUUAUVKUGVIVJVKVLRVMVNUVSUVRUVFUVSUVRUMUVEGHUVSUVDUVR
      BUVSUVDUMUQUUDVOUFZUVRBUJZUVSUVCUWCUUCUVSUVCUMUQUVBUUDVOUVSUQUVBVOUFUVCUV
      SUUQUTUUQVPUTWCUEUVSVQVRUUQVSUQUTVOUFUVSWDVRVTVKUVSUVCWAWBWEUVDUVSUWCUWDU
      JZUUCUVCUVSUWEUJZUUAWFUEZUUCUVCUWFUJUJGWGZUWGUWCUVCUVSUUCUWDUWGUWCUVCUVSU
      UCUWDUJZUJUJZUWGUWCUMYPUUAUEZJUNUWJJUUAWFWHUWKUWJJUUCUWKUVCUVSUWDUUCUWKUV
      CUVSUWDUJUJZUUCUWKUMUUAYPWIZWOZLMUFZUWLSUUCUWKUWOUWLUJUVSUWKUWOUVCUUCUWDU
      VSUWKUWOUVCUWIUJUJUVSUWKUMZUVCUWOUWIUWPUVCUWOUWIUJZUWNUGUHZUUQUSZUWPUVCUM
      ZUWQUWPUVCUWSUWPUWGUWKUVSUVCUWSUJUWGUWPUWHVRUVSUWKWAUVSUWKWJYPUUAWFUUQWKW
      LWMUWSUWOUWTUWIUVRUWOUWTUUCUWSBUVRUWOUWTUUCUWSBUJUVRUWOUMZUWTUMZUUCUMZUVB
      UIUEZUUCUVCUWKWNZUMUWSCBUXCUXDUXEUWTUXDUXAUUCUVSUXDUWKUVCUUQWPWQWRUXCUUCU
      VCUWKUXBUUCWAUXAUWPUVCUUCWSUXBUWKUUCUXAUVSUWKUVCWTVKXAXEUXAUWSCUJUWTUUCUV
      RUWOUWSCUWNWFUEZLWFUEUVRUWOUWSUMZCUJZUJUWGUXFUWHUUAUWMWFXBXCPUVQUXHFIUWNL
      WFWFUVKUWNUSZUVLLUSZUMZUVPUXGDCUXKUVMUWOUVOUWSUVKUWNUVLLMVGUXIUVOUWSVHUXJ
      UXIUVNUWRUUQUVKUWNUGVIVJVKVLTVMXDXFXGWQUBXHXIXJXKXLXMXKXMXJWMXNXMXOXPXQXM
      XRXCWMXSXNXTYAXMYBYCYLYTUUHAUJZNWFUEZKWFUEZUMZYLYTUXLUJYLUXMUXNNKMOYDNKMO
      YEXEUXOYLYTUXLUXOUUHUUIAUUGUUIAUJGHNKWFWFUUANUSZUUBKUSZUMZUUFUUIBAUXRUUCY
      LUUEYTUUANUUBKMVGUXPUUEYTVHUXQUXPUUDYMYPUUANUGVIVJVKVLQVMXDXKYFXLWMYGYHXK
      YIWMXPYJXQXS $.
  $}

  ${
    $d e n v y $.  $d E a b e n v $.  $d F a b f w $.  $d G e f n v w y $.
    $d G a b $.  $d V a b e n v $.  $d ps f n w y $.  $d a b y $.
    $d th e n v $.  $d ch f w $.  $d ph e n v $.  $d L e n v y $.
    opfi1uzind.e $e |- E e. _V $.
    opfi1uzind.f $e |- F e. _V $.
    opfi1uzind.l $e |- L e. NN0 $.
    opfi1uzind.1 $e |- ( ( v = V /\ e = E ) -> ( ps <-> ph ) ) $.
    opfi1uzind.2 $e |- ( ( v = w /\ e = f ) -> ( ps <-> th ) ) $.
    opfi1uzind.3 $e |- ( ( <. v , e >. e. G /\ n e. v )
                         -> <. ( v \ { n } ) , F >. e. G ) $.
    opfi1uzind.4 $e |- ( ( w = ( v \ { n } ) /\ f = F ) -> ( th <-> ch ) ) $.
    opfi1uzind.base $e |- ( ( <. v , e >. e. G /\ ( # ` v ) = L ) -> ps ) $.
    opfi1uzind.step $e |- ( ( ( ( y + 1 ) e. NN0 /\ ( <. v , e >. e. G
                      /\ ( # ` v ) = ( y + 1 ) /\ n e. v ) ) /\ ch ) -> ps ) $.
    $( Properties of an ordered pair with a finite first component with at
       least L elements, proven by finite induction on the size of the first
       component.  This theorem can be applied for graphs (represented as
       orderd pairs of vertices and edges) with a finite number of vertices,
       usually with ` L = 0 ` (see ~ opfi1ind ) or ` L = 1 ` .  (Contributed by
       AV, 22-Oct-2020.)  (Revised by AV, 28-Mar-2021.) $)
    opfi1uzind $p |- ( ( <. V , E >. e. G /\ V e. Fin /\ L <_ ( # ` V ) )
                       -> ph ) $=
      ( va vb cv cop wcel wsbc cfn chash cfv cle wbr wceq cvv a1i opeq12 eleq1d
      wa sbcied sbcieg biimparc 3adant3 csn cdif sbc2ie sylanb difexi sylibr c1
      vex caddc co cn0 w3a 3anbi1i anbi2i fi1uzind syld3an1 ) UEUGZUFUGZUHZMUIZ
      UFKUJZUEOUJZOUKUIZOKUHZMUIZNOULUMUNUOZAWJWHWGWKWHWGWJWFWJUEOUKWBOUPZWEWJU
      FKUQKUQUIWLPURWLWCKUPVAWDWIMWBWCOKUSUTVBVCVDVEABCDWEEFGHIJKLNOUEUFQRSTWEU
      FHUGZUJUEGUGZUJZJUGZWNUIZVAWNWPVFZVGZLUHZMUIZWEUFLUJUEWSUJWOWNWMUHZMUIZWQ
      XAWEXCUEUFWNWMGVMZHVMWBWNUPWCWMUPVAWDXBMWBWCWNWMUSUTVHZUAVIWEXAUEUFWSLWNW
      RXDVJQWBWSUPWCLUPVAWDWTMWBWCWSLUSUTVHVKUBWOXCWNULUMZNUPBXEUCVIEUGVLVNVOZV
      PUIZWOXFXGUPZWQVQZVAXHXCXIWQVQZVACBXJXKXHWOXCXIWQXEVRVSUDVIVTWA $.
  $}

  ${
    $d E e n v $.  $d F f w $.  $d G e f n v w y $.  $d V e n v $.
    $d ps f n w y $.  $d th e n v $.  $d ch f w $.  $d ph e n v $.
    opfi1ind.e $e |- E e. _V $.
    opfi1ind.f $e |- F e. _V $.
    opfi1ind.1 $e |- ( ( v = V /\ e = E ) -> ( ps <-> ph ) ) $.
    opfi1ind.2 $e |- ( ( v = w /\ e = f ) -> ( ps <-> th ) ) $.
    opfi1ind.3 $e |- ( ( <. v , e >. e. G /\ n e. v )
                       -> <. ( v \ { n } ) , F >. e. G ) $.
    opfi1ind.4 $e |- ( ( w = ( v \ { n } ) /\ f = F ) -> ( th <-> ch ) ) $.
    opfi1ind.base $e |- ( ( <. v , e >. e. G /\ ( # ` v ) = 0 ) -> ps ) $.
    opfi1ind.step $e |- ( ( ( ( y + 1 ) e. NN0 /\ ( <. v , e >. e. G
                      /\ ( # ` v ) = ( y + 1 ) /\ n e. v ) ) /\ ch ) -> ps ) $.
    $( Properties of an ordered pair with a finite first component, proven by
       finite induction on the size of the first component.  This theorem can
       be applied for graphs (represented as orderd pairs of vertices and
       edges) with a finite number of vertices, e.g. ~ fusgrfis .  (Contributed
       by AV, 22-Oct-2020.)  (Revised by AV, 28-Mar-2021.) $)
    opfi1ind $p |- ( ( <. V , E >. e. G /\ V e. Fin ) -> ph ) $=
      ( cop wcel cfn cc0 chash cfv cle hashge0 adantl 0nn0 opfi1uzind mpd3an3
      wbr ) NKUCMUDZNUEUDZUFNUGUHUIUOZAUQURUPNUEUJUKABCDEFGHIJKLMUFNOPULQRSTUAU
      BUMUN $.
  $}

  ${
    $d a b e n v x y $.  $d b f w $.  $d E a e n v $.  $d F a f w $.
    $d L e n v x y $.  $d V a b e n v $.  $d ps f n w y $.  $d ps x y $.
    $d th e n v $.  $d ch f w $.  $d ph e n v $.  $d rh x $.
    $d rh e f n v w y $.
    fi1uzindOLD.f $e |- F e. U $.
    fi1uzindOLD.l $e |- L e. NN0 $.
    fi1uzindOLD.1 $e |- ( ( v = V /\ e = E ) -> ( ps <-> ph ) ) $.
    fi1uzindOLD.2 $e |- ( ( v = w /\ e = f ) -> ( ps <-> th ) ) $.
    fi1uzindOLD.3 $e |- ( ( [. v / a ]. [. e / b ]. rh /\ n e. v )
                         -> [. ( v \ { n } ) / a ]. [. F / b ]. rh ) $.
    fi1uzindOLD.4 $e |- ( ( w = ( v \ { n } ) /\ f = F ) -> ( th <-> ch ) ) $.
    fi1uzindOLD.base $e |- ( ( [. v / a ]. [. e / b ]. rh /\ ( # ` v ) = L )
                          -> ps ) $.
    fi1uzindOLD.step $e |- ( ( ( ( y + 1 ) e. NN0
                      /\ ( [. v / a ]. [. e / b ]. rh
                      /\ ( # ` v ) = ( y + 1 ) /\ n e. v ) ) /\ ch ) -> ps ) $.
    $( Obsolete version of ~ fi1uzind as of 28-Mar-2021.  (Contributed by AV,
       22-Oct-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    fi1uzindOLD $p |- ( ( [. V / a ]. [. E / b ]. rh
                       /\ V e. Fin /\ L <_ ( # ` V ) ) -> ph ) $=
      ( vx wsbc cfn wcel chash cfv cle wbr wi cn0 hashcl cv wceq wa wex df-clel
      wal cz nn0z ad2antlr wb breq2 eqcoms biimpcd adantr imp c1 caddc co eqeq1
      mp1i anbi2d imbi1d 2albidv eqcom sylan2b gen2 a1i w3a simpl simpr sbceq1d
      sbceqbid fveq2 eqeq2d anbi12d imbi12d cbval2v cc0 nn0ge0 cr 0red zre letr
      nn0re syl3anc cuz pm3.22 0z eluz1 mpbird eluznn0 sylancr ex syl6com com14
      0nn0 pm2.43a com12 mp2b 3adant1 clt nn0p1gt0 breqtrrd adantrl hashgt0elex
      cvv vex csn cdif brfi1indlem syl5bi ad2antrr jca ax-mp spc2gv com15 com23
      mpcom mpd exlimiv syl sbcex sylbi peano2nn0 simplrr simprlr difexg eqeq1d
      3jca syl5bb mp2an expdimp 3anbi2i anbi2i sylanb syl6an exp41 com4l impcom
      com25 sylan impancom uzind sbccom expd syl5com exp31 expcom com24 pm2.43i
      alrimivv 3imp ) ERMUHZQPUHZPUIUJZOPUKULZUMUNZAUVLUVKUVNAUOZUVLUVMUPUJZUVK
      UVOUOZPUQUVPLURZUVMUSZUVRUPUJZUTZLVAUVQLUVMUPVBUWAUVQLUVSUVTUVQUVSUVTUVQU
      OUVSUVKUVTUVSUVOUVKUVSUVTUVSUVOUOUOUVNUVTUVSUVKUVSUTZAUVNUVTUVSUWBAUOZUVN
      UVTUTZUVSUTZERJURZUHZQHURZUHZUVRUWHUKULZUSZUTZBUOZJVCHVCZUWBAUWEOVDUJZUVR
      VDUJZOUVRUMUNZUWNOUPUJZUWOUWETOVEVQUVTUWPUVNUVSUVRVEVFUWDUVSUWQUVNUVSUWQU
      OUVTUVSUVNUWQUVNUWQVGUVMUVRUVMUVROUMVHVIVJVKVLUWIUGURZUWJUSZUTZBUOZJVCHVC
      UWIOUWJUSZUTZBUOZJVCHVCZUWIFURZUWJUSZUTZBUOZJVCHVCZUWIUXGVMVNVOZUWJUSZUTZ
      BUOZJVCHVCZUWNUGFOUVRUWSOUSZUXBUXEHJUXQUXAUXDBUXQUWTUXCUWIUWSOUWJVPVRVSVT
      UWSUXGUSZUXBUXJHJUXRUXAUXIBUXRUWTUXHUWIUWSUXGUWJVPVRVSVTUWSUXLUSZUXBUXOHJ
      UXSUXAUXNBUXSUWTUXMUWIUWSUXLUWJVPVRVSVTUWSUVRUSZUXBUWMHJUXTUXAUWLBUXTUWTU
      WKUWIUWSUVRUWJVPVRVSVTUXFUWOUXEHJUXCUWIUWJOUSBOUWJWAUEWBWCWDUXKERKURZUHZQ
      GURZUHZUXGUYCUKULZUSZUTZDUOZKVCGVCZUWOUXGVDUJZOUXGUMUNZWEZUXPUXJUYHHJGKUW
      HUYCUSZUWFUYAUSZUTZUXIUYGBDUYOUWIUYDUXHUYFUYOUWGUYBQUWHUYCUYMUYNWFUYOERUW
      FUYAUYMUYNWGWHWIUYMUXHUYFVGUYNUYMUWJUYEUXGUWHUYCUKWJWKVKWLUBWMWNUYLUYIUXP
      UYLUYIUTUXOHJUYLUXNUYIBUYLUXGUPUJZUXNUYIBUOZUYJUYKUYPUWOUWRWOOUMUNZUYJUYK
      UTZUYPUOTOWPUYSUYRUYPUYJUYKUYRUYPUOZUYKUYJUYTUYRUYKUYJUYJUYPUYRUYKUYJUYJU
      YPUOZUOUYJUYRUYKUTZWOUXGUMUNZVUAUYJWOWQUJOWQUJZUXGWQUJVUBVUCUOUYJWRUWRVUD
      UYJTOXAVQUXGWSWOOUXGWTXBVUCUYJUYPVUCUYJUTZWOUPUJUXGWOXCULUJZUYPXMVUEVUFUY
      JVUCUTZVUCUYJXDWOVDUJVUFVUGVGVUEXEWOUXGXFVQXGUXGWOXHXIXJXKXJXLXNVLXOXPXQU
      YPUXNUTWOUWJXRUNZUYQUYPUXMVUHUWIUXMUYPUWJUXLUSZVUHUXLUWJWAZUYPVUIUTWOUXLU
      WJXRUYPWOUXLXRUNVUIUXGXSVKUYPVUIWGXTWBYAUXNUYPVUHUYQUOZUWIUXMUYPVUKUOZUWH
      YCUJZUWIUXMVULUOUOHYDZVUMVUHUXMUYPUWIUYQVUMVUHUXMUYPUWIUYQUOZUOUOZVUMVUHU
      TUVRUWHUJZLVAVUPLUWHYCYBVUQVUPLUWIVUQUXMUYPUYQUWIVUQUXMUYPUYQUOUOZUWIVUQU
      TERNUHZQUWHUVRYEZYFZUHZVURUCUWIVUQVVBVURUOUYPVUQVVBUXMUWIUYQUYPVUQVVBUXMV
      UOUOUOUYPVUQUTZUXMVVBVUOVVCUXMVVBVUOUOZVVAUKULZUXGUSZVVCUXMUTZVVDVVCUXMVV
      FVVCVUMVUQUYPUXMVVFUOVUMVVCVUNWDUYPVUQWGUYPVUQWFUXMVUIVUMVUQUYPWEVVFVUJUV
      RUWHYCUXGYGYHXBVLVVFVVBVVGVUOUYIVVBVVGUWIVVFBUYIVVBVVGUWIVVFBUOUYIVVBUTZV
      VGUTZUWIUTZUXLUPUJZUWIUXMVUQWEZUTZVVFCBVVJVVKVVLVVGVVKVVHUWIUYPVVKVUQUXMU
      XGUUAYIVFVVJUWIUXMVUQVVIUWIWGVVHVVCUXMUWIUUBVVIVUQUWIVVHUYPVUQUXMUUCVKUUF
      YJVVHVVFCUOVVGUWIUYIVVBVVFCVVAYCUJZNIUJUYIVVBVVFUTZCUOZUOVUMVVNVUNUWHVUTY
      CUUDYKSUYHVVPGKVVANYCIUYCVVAUSZUYANUSZUTZUYGVVODCVVSUYDVVBUYFVVFVVSUYBVUS
      QUYCVVAVVQVVRWFVVSERUYANVVQVVRWGWHWIVVQUYFVVFVGVVRUYFUYEUXGUSVVQVVFUXGUYE
      WAVVQUYEVVEUXGUYCVVAUKWJUUEUUGVKWLUDWMYLUUHUUIYIVVMVVKUWIVUIVUQWEZUTCBVVL
      VVTVVKUXMVUIUWIVUQVUJUUJUUKUFUULUUMUUNYMYNYOXJYNXJYMVLYPXJUUOYQYRXJUUQYKV
      LUUPYPUURUUSUVHXJYHUUTXBUVKUVSUWNAUOZPYCUJZMYCUJZUTZUVKUVSVWAUOUVKVWBVWCU
      VJQPYSUVKEQPUHZRMUHVWCEQRPMUVAVWERMYSYTYJVWDUVKUVSVWAVWDUWNUWBAUWMUWCHJPM
      YCYCUWHPUSZUWFMUSZUTZUWLUWBBAVWHUWIUVKUWKUVSVWHUWGUVJQUWHPVWFVWGWFVWHERUW
      FMVWFVWGWGWHWIVWFUWKUVSVGVWGVWFUWJUVMUVRUWHPUKWJWKVKWLUAWMYLYNUVBYOVLUVCU
      VDXLUVEUVFUVGVLYQYTYRXOUVI $.
  $}

  ${
    $d E a b $.  $d E e n v $.  $d F a b f w $.  $d G a b e f n v w y $.
    $d L e n v y $.  $d V a b e n v $.  $d ps f n w y $.  $d th e n v $.
    $d ch f w $.  $d ph e n v $.
    brfi1uzindOLD.r $e |- Rel G $.
    brfi1uzindOLD.f $e |- F e. U $.
    brfi1uzindOLD.l $e |- L e. NN0 $.
    brfi1uzindOLD.1 $e |- ( ( v = V /\ e = E ) -> ( ps <-> ph ) ) $.
    brfi1uzindOLD.2 $e |- ( ( v = w /\ e = f ) -> ( ps <-> th ) ) $.
    brfi1uzindOLD.3 $e |- ( ( v G e /\ n e. v ) -> ( v \ { n } ) G F ) $.
    brfi1uzindOLD.4 $e |- ( ( w = ( v \ { n } ) /\ f = F )
                            -> ( th <-> ch ) ) $.
    brfi1uzindOLD.base $e |- ( ( v G e /\ ( # ` v ) = L ) -> ps ) $.
    brfi1uzindOLD.step $e |- ( ( ( ( y + 1 ) e. NN0
           /\ ( v G e /\ ( # ` v ) = ( y + 1 ) /\ n e. v ) ) /\ ch ) -> ps ) $.
    $( Obsolete version of ~ brfi1uzind as of 28-Mar-2021.  (Contributed by AV,
       7-Jan-2018.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    brfi1uzindOLD $p |- ( ( V G E /\ V e. Fin /\ L <_ ( # ` V ) ) -> ph ) $=
      ( va vb wbr cv wsbc cfn wcel chash cfv cle wrel brrelex12 mpan simpl wceq
      cvv wa simplr wb breq12 adantll sbcied biimprcd mpd wel csn sbc2ie difexg
      cdif vex ax-mp elexi sylibr sylanb c1 caddc co cn0 w3a anbi2i fi1uzindOLD
      3anbi1i syl3an1 ) PLNUHZUFUIZUGUIZNUHZUGLUJZUFPUJZPUKULOPUMUNUOUHAWIPVAUL
      ZLVAULZVBZWNNUPWIWQQPLNUQURWQWNWIWQWMWIUFPVAWOWPUSWQWJPUTZVBWLWIUGLVAWOWP
      WRVCWRWKLUTWLWIVDWQWJPWKLNVEVFVGVGVHVIABCDWLEFGHIJKLMOPUFUGRSTUAWLUGIUIZU
      JUFGUIZUJZWTWSNUHZKGVJZWLUGMUJUFWTKUIVKZVNZUJZWLXBUFUGWTWSGVOZIVOWJWTWKWS
      NVEVLZXBXCVBXEMNUHZXFUBWLXIUFUGXEMWTVAULXEVAULXGWTXDVAVMVPMHRVQWJXEWKMNVE
      VLVRVSUCXAXBWTUMUNZOUTBXHUDVSEUIVTWAWBZWCULZXAXJXKUTZXCWDZVBXLXBXMXCWDZVB
      CBXNXOXLXAXBXMXCXHWGWEUEVSWFWH $.
  $}

  ${
    $d E e n v $.  $d F f w $.  $d G e f n v w y $.  $d V e n v $.
    $d ps f n w y $.  $d th e n v $.  $d ch f w $.  $d ph e n v $.
    brfi1indOLD.r $e |- Rel G $.
    brfi1indOLD.f $e |- F e. U $.
    brfi1indOLD.1 $e |- ( ( v = V /\ e = E ) -> ( ps <-> ph ) ) $.
    brfi1indOLD.2 $e |- ( ( v = w /\ e = f ) -> ( ps <-> th ) ) $.
    brfi1indOLD.3 $e |- ( ( v G e /\ n e. v ) -> ( v \ { n } ) G F ) $.
    brfi1indOLD.4 $e |- ( ( w = ( v \ { n } ) /\ f = F ) -> ( th <-> ch ) ) $.
    brfi1indOLD.base $e |- ( ( v G e /\ ( # ` v ) = 0 ) -> ps ) $.
    brfi1indOLD.step $e |- ( ( ( ( y + 1 ) e. NN0
           /\ ( v G e /\ ( # ` v ) = ( y + 1 ) /\ n e. v ) ) /\ ch ) -> ps ) $.
    $( Obsolete version of ~ brfi1ind as of 28-Mar-2021.  (Contributed by AV,
       7-Jan-2018.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    brfi1indOLD $p |- ( ( V G E /\ V e. Fin ) -> ph ) $=
      ( wbr cfn wcel cc0 chash cfv hashge0 adantl 0nn0 brfi1uzindOLD mpd3an3
      cle ) OLNUDZOUEUFZUGOUHUIUOUDZAUQURUPOUEUJUKABCDEFGHIJKLMNUGOPQULRSTUAUBU
      CUMUN $.

    $d e n v x y $.  $d G x $.  $d ps x $.
    $( Obsolete version of ~ brfi1indALT as of 28-Mar-2021.  (Contributed by
       AV, 7-Jan-2018.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    brfi1indALTOLD $p |- ( ( V G E /\ V e. Fin ) -> ph ) $=
      ( vx cfn wcel wbr chash cfv cn0 wi hashcl cv wa wex df-clel wal cc0 caddc
      wceq c1 co eqeq2 anbi2d imbi1d 2albidv gen2 breq12 wb fveq2 eqeq1d adantr
      weq anbi12d imbi12d cbval2v clt nn0re 1re a1i nn0ge0 0lt1 addgegt0d simpr
      cr breqtrrd adantrl cvv vex wel hashgt0elex csn simpl brfi1indlem syl3anc
      cdif imp w3a peano2nn0 ad2antrr ad2antlr simplrr simprlr jca difexg ax-mp
      3jca spc2gv mp2an expdimp syl6an exp41 com15 com23 mpcom ex com4l exlimiv
      com25 impcom impancom alrimivv syl5bi nn0ind brrelexi brrelex2i expd syl5
      mpd syl expcom eqcoms sylbi ) OUEUFZOLNUGZAYNOUHUIZUJUFZYOAUKZOULYQKUMZYP
      UTZYSUJUFZUNZKUOYRKYPUJUPUUBYRKYTUUAYRUUAYRUKYPYSYPYSUTZYOUUAAYOUUCUUAAUK
      UUAGUMZIUMZNUGZUUDUHUIZYSUTZUNZBUKZIUQGUQZYOUUCUNZAUUFUUGUDUMZUTZUNZBUKZI
      UQGUQUUFUUGURUTZUNZBUKZIUQGUQUUFUUGEUMZUTZUNZBUKZIUQGUQZUUFUUGUUTVAUSVBZU
      TZUNZBUKZIUQGUQZUUKUDEYSUUMURUTZUUPUUSGIUVJUUOUURBUVJUUNUUQUUFUUMURUUGVCV
      DVEVFUDEVMZUUPUVCGIUVKUUOUVBBUVKUUNUVAUUFUUMUUTUUGVCVDVEVFUUMUVEUTZUUPUVH
      GIUVLUUOUVGBUVLUUNUVFUUFUUMUVEUUGVCVDVEVFUDKVMZUUPUUJGIUVMUUOUUIBUVMUUNUU
      HUUFUUMYSUUGVCVDVEVFUUSGIUBVGUVDFUMZJUMZNUGZUVNUHUIZUUTUTZUNZDUKZJUQFUQZU
      UTUJUFZUVIUVCUVTGIFJGFVMZIJVMZUNZUVBUVSBDUWEUUFUVPUVAUVRUUDUVNUUEUVONVHUW
      CUVAUVRVIUWDUWCUUGUVQUUTUUDUVNUHVJVKVLVNSVOVPUWBUWAUVIUWBUWAUNUVHGIUWBUVG
      UWABUWBUVGUNURUUGVQUGZUWABUKZUWBUVFUWFUUFUWBUVFUNURUVEUUGVQUWBURUVEVQUGUV
      FUWBUUTVAUUTVRVAWEUFUWBVSVTUUTWAURVAVQUGUWBWBVTWCVLUWBUVFWDWFWGUVGUWBUWFU
      WGUKZUUFUVFUWBUWHUKZUUDWHUFZUUFUVFUWIUKUKGWIZUWJUWFUVFUWBUUFUWGUWJUWFUVFU
      WBUUFUWGUKZUKUKZUWJUWFUNKGWJZKUOUWMKUUDWHWKUWNUWMKUUFUWNUVFUWBUWGUUFUWNUV
      FUWBUWGUKUKZUUFUWNUNUUDYSWLZWPZMNUGZUWOTUUFUWNUWRUWOUKUWBUWNUWRUVFUUFUWGU
      WBUWNUWRUVFUWLUKUKUWBUWNUNZUVFUWRUWLUWSUVFUWRUWLUKZUWQUHUIZUUTUTZUWSUVFUN
      ZUWTUWSUVFUXBUWSUWJUWNUWBUVFUXBUKUWJUWSUWKVTUWBUWNWDUWBUWNWMYSUUDWHUUTWNW
      OWQUXBUWRUXCUWLUWAUWRUXCUUFUXBBUWAUWRUXCUUFUXBBUKUWAUWRUNZUXCUNZUUFUNZUVE
      UJUFZUUFUVFUWNWRZUNUXBCBUXFUXGUXHUXCUXGUXDUUFUWBUXGUWNUVFUUTWSWTXAUXFUUFU
      VFUWNUXEUUFWDUXDUWSUVFUUFXBUXEUWNUUFUXDUWBUWNUVFXCVLXGXDUXDUXBCUKUXCUUFUW
      AUWRUXBCUWQWHUFZMHUFUWAUWRUXBUNZCUKZUKUWJUXIUWKUUDUWPWHXEXFQUVTUXKFJUWQMW
      HHUVNUWQUTZUVOMUTZUNZUVSUXJDCUXNUVPUWRUVRUXBUVNUWQUVOMNVHUXLUVRUXBVIUXMUX
      LUVQUXAUUTUVNUWQUHVJVKVLVNUAVOXHXIXJWTUCXKXLXMXNXOXPXNXPXMWQYIXPXQXRYJXPX
      SXFWQXTYIYAYBXPYCYDYOUUCUUKAUKZOWHUFZLWHUFZUNZYOUUCUXOUKYOUXPUXQOLNPYEOLN
      PYFXDUXRYOUUCUXOUXRUUKUULAUUJUULAUKGIOLWHWHUUDOUTZUUELUTZUNZUUIUULBAUYAUU
      FYOUUHUUCUUDOUUELNVHUXSUUHUUCVIUXTUXSUUGYPYSUUDOUHVJVKVLVNRVOXHXNYGXOWQYH
      YKXNYLWQXRYMYJXT $.
  $}

  ${
    $d e n v y $.  $d E a b e n v $.  $d F a b f w $.  $d G e f n v w y $.
    $d G a b $.  $d V a b e n v $.  $d ps f n w y $.  $d a b y $.
    $d th e n v $.  $d ch f w $.  $d ph e n v $.  $d L e n v y $.
    opfi1uzindOLD.e $e |- E e. Y $.
    opfi1uzindOLD.f $e |- F e. U $.
    opfi1uzindOLD.l $e |- L e. NN0 $.
    opfi1uzindOLD.1 $e |- ( ( v = V /\ e = E ) -> ( ps <-> ph ) ) $.
    opfi1uzindOLD.2 $e |- ( ( v = w /\ e = f ) -> ( ps <-> th ) ) $.
    opfi1uzindOLD.3 $e |- ( ( <. v , e >. e. G /\ n e. v )
                         -> <. ( v \ { n } ) , F >. e. G ) $.
    opfi1uzindOLD.4 $e |- ( ( w = ( v \ { n } ) /\ f = F )
                            -> ( th <-> ch ) ) $.
    opfi1uzindOLD.base $e |- ( ( <. v , e >. e. G /\ ( # ` v ) = L ) -> ps ) $.
    opfi1uzindOLD.step $e |- ( ( ( ( y + 1 ) e. NN0 /\ ( <. v , e >. e. G
                      /\ ( # ` v ) = ( y + 1 ) /\ n e. v ) ) /\ ch ) -> ps ) $.
    $( Obsolete version of ~ opfi1uzind as of 28-Mar-2021.  (Contributed by AV,
       22-Oct-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    opfi1uzindOLD $p |- ( ( <. V , E >. e. G /\ V e. Fin /\ L <_ ( # ` V ) )
                       -> ph ) $=
      ( va vb cv cop wcel wsbc cfn chash cfv cle wbr id wb a1i wa opeq12 eleq1d
      wceq sbcied adantl biimparc 3adant3 wel csn cdif vex sbc2ie sylanb difexg
      weq cvv ax-mp elexi sylibr wi idi c1 caddc co cn0 w3a 3anbi1i fi1uzindOLD
      anbi2i syld3an1 ) UGUIZUHUIZUJZNUKZUHLULZUGPULZPUMUKZPLUJZNUKZOPUNUOUPUQZ
      AWTWRWQXAWRWQWTWRWPWTUGPUMWRURWLPVDZWPWTUSWRXBWOWTUHLQLQUKXBRUTXBWMLVDVAW
      NWSNWLWMPLVBVCVEVFVEVGVHABCDWOEFGHIJKLMOPUGUHSTUAUBWOUHIUIZULUGGUIZULZKGV
      IZVAXDKUIVJZVKZMUJZNUKZWOUHMULUGXHULXEXDXCUJZNUKZXFXJWOXLUGUHXDXCGVLZIVLU
      GGVPUHIVPVAWNXKNWLWMXDXCVBVCVMZUCVNWOXJUGUHXHMXDVQUKXHVQUKXMXDXGVQVOVRMHS
      VSWLXHVDWMMVDVAWNXINWLWMXHMVBVCVMVTFUIXHVDJUIMVDVADCUSWAUDWBXEXLXDUNUOZOV
      DBXNUEVNEUIWCWDWEZWFUKZXEXOXPVDZXFWGZVAXQXLXRXFWGZVACBXSXTXQXEXLXRXFXNWHW
      JUFVNWIWK $.
  $}

  ${
    $d E e n v $.  $d F f w $.  $d G e f n v w y $.  $d V e n v $.
    $d ps f n w y $.  $d th e n v $.  $d ch f w $.  $d ph e n v $.
    opfi1indOLD.e $e |- E e. Y $.
    opfi1indOLD.f $e |- F e. U $.
    opfi1indOLD.1 $e |- ( ( v = V /\ e = E ) -> ( ps <-> ph ) ) $.
    opfi1indOLD.2 $e |- ( ( v = w /\ e = f ) -> ( ps <-> th ) ) $.
    opfi1indOLD.3 $e |- ( ( <. v , e >. e. G /\ n e. v )
                       -> <. ( v \ { n } ) , F >. e. G ) $.
    opfi1indOLD.4 $e |- ( ( w = ( v \ { n } ) /\ f = F ) -> ( th <-> ch ) ) $.
    opfi1indOLD.base $e |- ( ( <. v , e >. e. G /\ ( # ` v ) = 0 ) -> ps ) $.
    opfi1indOLD.step $e |- ( ( ( ( y + 1 ) e. NN0 /\ ( <. v , e >. e. G
                      /\ ( # ` v ) = ( y + 1 ) /\ n e. v ) ) /\ ch ) -> ps ) $.
    $( Obsolete version of ~ opfi1ind as of 28-Mar-2021.  (Contributed by AV,
       22-Oct-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    opfi1indOLD $p |- ( ( <. V , E >. e. G /\ V e. Fin ) -> ph ) $=
      ( cop wcel cfn cc0 chash cfv cle wbr hashge0 adantl opfi1uzindOLD mpd3an3
      0nn0 ) OLUENUFZOUGUFZUHOUIUJUKULZAUSUTUROUGUMUNABCDEFGHIJKLMNUHOPQRUQSTUA
      UBUCUDUOUP $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Words over a set
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  This section is about _words_ (or _strings_) over a set (_alphabet_) defined
  as finite sequences of _symbols_ (or _characters_) being elements of the
  alphabet.  Although it is often required that the underlying set/alphabet be
  nonempty, finite and not a proper class, these restrictions are not made in
  the current definition ~ df-word , see, for example, ~ s1cli :
  ` <" A "> e. Word _V `.  Note that the empty word ` (/) ` (i.e. the empty
  set) is the only word over an empty alphabet, see ~ 0wrd0 .

  The set ` Word S ` of words over ` S ` is the free monoid over ` S ` , where
  the monoid law is concatenation and the monoid unit is the empty word.

  Besides the definition of words themselves, several operations on words are
  defined in this section:
  <HTML>
  <table border="1" id="word-operations">
  <tr>
    <th>Name</th><th>Reference</th><th>Explanation</th><th>Example</th>
    <th>Remarks</th></tr>
  <tr>
    <td>Length (or size) of a word </td><td> ~ df-hash : ` ( # ``  W ) ` </td>
    <td>Operation which determines the number of the symbols
        within the word.</td>
    <td> ` W : ( 0 ..^ N ) --> S -> ( W e. Word S /\ ( # ``  W ) = N ` </td>
    <td> This is not a special definition for words,
         but for arbitrary sets.</td></tr>
  <tr>
    <td>First symbol of a word </td><td> ~ df-fv : ` ( W `` 0 ) ` </td>
    <td>Operation which extracts the first symbol of a word. The result is the
        symbol at the first place in the sequence representing the word.</td>
    <td> ` W : ( 0 ..^ 1 ) --> S -> ( W e. Word S /\ ( W `` 0 ) e. S ` </td>
    <td> This is not a special definition for words,
         but for arbitrary functions with a half-open range of nonnegative
         integers as domain.</td></tr>
  <tr>
    <td>Last symbol of a word </td><td> ~ df-lsw : ` ( lastS ``  W ) ` </td>
    <td>Operation which extracts the last symbol of a word. The result is the
        symbol at the last place in the sequence representing the word.</td>
    <td> ` W : ( 0 ..^ 3 ) --> S
           -> ( W e. Word S /\ ( lastS `` W ) = ( W `` 2 ) ` </td>
    <td> Note that the index of the last symbol is less by 1 than the length of
         the word.</td></tr>
  <tr>
    <td>Subword (or substring) of a word </td>
    <td> ~ df-substr : ` ( W substr <. I , J >. ) ` </td>
    <td>Operation which extracts a portion of a word. The result is a
        consecutive, reindexed part of the sequence representing the word.</td>
    <td> ` W : ( 0 ..^ 3 ) --> S -> ( W e. Word S
    /\ ( W substr <. 1 , 2 >. ) e. Word S
    /\ ( # `` ( W substr <. 1 , 2 >. )  ) = 1 ` </td>
    <td> Note that the last index of the range defining the subword is greater
         by 1 than the index of the last symbol of the subword in the sequence
         of the original word.</td></tr>
  <tr>
    <td>Concatenation of two words </td>
    <td> ~ df-concat : ` ( W ++ U ) ` </td>
    <td>Operation combining two words to one new word. The result is a
        combined, reindexed sequence build from the sequences representing
        the two words.</td>
    <td> ` ( W e. Word S /\ U e. Word S )
           -> ( # `` ( W ++ U ) ) = ( ( # `` W ) + ( # `` U ) ) ` </td>
    <td> Note that the index of the first symbol of the second concatenated
         word is the length of the first word in the concatenation.</td></tr>
  <tr>
    <td>Reversal of a word </td>
    <td> ~ df-reverse : ` ( reverse `` W ) ` </td>
    <td>Operation which reverses the order of symbols in a word.</td>
    <td> ` ( W e. Word V -> ( # `` ( reverse `` W ) ) = ( # `` W ) ) ` </td>
    <td> </td></tr>
  <tr>
    <td>Cyclical shift of a word </td>
    <td> ~ df-csh : ` ( W cyclShift N ) ` </td>
    <td>Operation cyclically shifting the symbols by a number
        of positions.</td>
    <td> `  ( W e. Word V -> ( W cyclShift ( # `` W ) ) = W ) ` </td>
    <td> </td></tr>
  <tr>
    <td>Splicing of a word </td>
    <td> ~ df-splice : ` ( S splice <. F , T , R >. ) ` </td>
    <td>Operation which replaces portions of words.</td>
    <td> ` ( ( S e. Word A /\ R e. Word A ) ->
        ( S splice <. F , T , R >. ) e. Word A ) ` </td>
    <td> </td></tr>
  <tr>
    <td>Singleton word </td>
    <td> ~ df-s1 : ` <" S "> ` </td>
    <td>Constructor building a word of length 1 from a symbol.</td>
    <td> ` ( # `` <" S "> ) = 1 ` </td>
    <td> </td></tr>
  </table>

  Conventions:
  <ul>
  <li>Words are usually represented by class variable ` W `, if two words are
  involved by ` W ` and ` U `, or by ` A ` and ` B `.</li>
  <li>The alphabets are usually represented by class variable ` V ` (because
  any arbitrary set can be an alphabet), sometimes also by ` S ` (especially
  as codomain of the function representing a word, because the alphabet is the
  set of symbols).</li>
  <li>The symbols are usually represented by class variables ` S ` or ` A ` ,
  if two symbols are involved by ` S ` and ` T `, or by ` A ` and ` B `.</li>
  <li>The indices of the sequence representing a word are usually represented
  by class variable ` I `, if two indices are involved (especially for
  subwords) by ` I ` and ` J `, or by ` M ` and ` N `.</li>
  <li>The length of a word is usually represented by class variables ` N `
  or ` L `.</li>
  <li>The number of position to cyclically shift a word is usually represented
  by class variables ` N ` or ` L `.</li></ul>
  </HTML>

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definitions and basic theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Word $.
  $c lastS $.
  $c ++ $.
  $c <" "> $.
  $c substr $.
  $c splice $.
  $c reverse $.
  $c repeatS $.

  $( Syntax for the Word operator. $)
  cword $a class Word S $.

  $( Extend class notation with the Last Symbol of a word. $)
  clsw $a class lastS $.

  $( Syntax for the concatenation operator. $)
  cconcat $a class ++ $.

  $( Syntax for the singleton word constructor. $)
  cs1 $a class <" A "> $.

  $( Syntax for the subword operator. $)
  csubstr $a class substr $.

  $( Syntax for the word splicing operator. $)
  csplice $a class splice $.

  $( Syntax for the word reverse operator. $)
  creverse $a class reverse $.

  $( Extend class notation with words consisting of one repeated symbol. $)
  creps $a class repeatS $.

  ${
    $d l w S $.
    $( Define the class of _words over a set_.  A word (sometimes also called a
       _string_) is a finite sequence of symbols from a set (alphabet) ` S ` .
       Definition in section 9.1 of [AhoHopUll] p. 318.  The domain is forced
       to be an initial segment of ` NN0 ` so that two words with the same
       symbols in the same order be equal.  The set ` Word S ` is sometimes
       denoted by S*, using the Kleene star, although the Kleene star, or
       Kleene closure, is sometimes reserved to denote an operation on
       languages.  The set ` Word S ` is the free monoid over ` S ` , where the
       monoid law is concatenation and the monoid unit is the empty word (see
       ~ frmdval ).  (Contributed by FL, 14-Jan-2014.)  (Revised by Stefan
       O'Rear, 14-Aug-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
    df-word $a |- Word S = { w | E. l e. NN0 w : ( 0 ..^ l ) --> S } $.
  $}

  $( Extract the last symbol of a word.  May be not meaningful for other sets
     which are not words.  The name ` lastS ` (as abbreviation of "lastSymbol")
     is a compromise between usually used names for corresponding functions in
     computer programs (as last() or lastChar()), the terminology used for
     words in set.mm ("symbol" instead of "character") and brevity ("lastS" is
     shorter than "lastChar" and "lastSymbol").  Labels of theorems about last
     symbols of a word will contain the abbreviation "lsw" (Last Symbol of a
     Word).  (Contributed by Alexander van der Vekens, 18-Mar-2018.) $)
  df-lsw $a |- lastS = ( w e. _V |-> ( w ` ( ( # ` w ) - 1 ) ) ) $.

  ${
    $d s b t x $.

    $( Define the concatenation operator which combines two words.  Definition
       in section 9.1 of [AhoHopUll] p. 318.  (Contributed by FL, 14-Jan-2014.)
       (Revised by Stefan O'Rear, 15-Aug-2015.) $)
    df-concat $a |- ++ = ( s e. _V , t e. _V |-> ( x e. ( 0 ..^
            ( ( # ` s ) + ( # ` t ) ) ) |-> if ( x e. ( 0 ..^ ( # ` s ) ) ,
            ( s ` x ) , ( t ` ( x - ( # ` s ) ) ) ) ) ) $.

    $( Define the canonical injection from symbols to words.  (Contributed by
       Stefan O'Rear, 15-Aug-2015.)  (Revised by Mario Carneiro,
       26-Feb-2016.) $)
    df-s1 $a |- <" A "> = { <. 0 , ( _I ` A ) >. } $.

    $( Define an operation which extracts portions of words.  Definition in
       section 9.1 of [AhoHopUll] p. 318.  (Contributed by Stefan O'Rear,
       15-Aug-2015.) $)
    df-substr $a |- substr = ( s e. _V , b e. ( ZZ X. ZZ ) |->
        if ( ( ( 1st ` b ) ..^ ( 2nd ` b ) ) C_ dom s ,
          ( x e. ( 0 ..^ ( ( 2nd ` b ) - ( 1st ` b ) ) ) |->
            ( s ` ( x + ( 1st ` b ) ) ) ) , (/) ) ) $.

    $( Define an operation which replaces portions of words.  (Contributed by
       Stefan O'Rear, 15-Aug-2015.) $)
    df-splice $a |- splice = ( s e. _V , b e. _V |->
        ( ( ( s substr <. 0 , ( 1st ` ( 1st ` b ) ) >. ) ++ ( 2nd ` b ) )
          ++ ( s substr <. ( 2nd ` ( 1st ` b ) ) , ( # ` s ) >. ) ) ) $.

    $( Define an operation which reverses the order of symbols in a word.
       (Contributed by Stefan O'Rear, 26-Aug-2015.) $)
    df-reverse $a |- reverse = ( s e. _V |-> ( x e. ( 0 ..^ ( # ` s ) ) |->
            ( s ` ( ( ( # ` s ) - 1 ) - x ) ) ) ) $.
  $}

  ${
    $d n s x $.
    $( Definition to construct a word consisting of one repeated symbol, often
       called "repeated symbol word" for short in the following.  (Contributed
       by Alexander van der Vekens, 4-Nov-2018.) $)
    df-reps $a |- repeatS
                 = ( s e. _V , n e. NN0 |-> ( x e. ( 0 ..^ n ) |-> s ) ) $.
  $}

  ${
    $d l w S $.  $d l w V $.  $d l w W $.
    $( Property of being a word over a set with a quantifier over the length.
       (Contributed by Stefan O'Rear, 15-Aug-2015.)  (Revised by Mario
       Carneiro, 26-Feb-2016.)  (Proof shortened by AV, 13-May-2020.) $)
    iswrd $p |- ( W e. Word S <->
          E. l e. NN0 W : ( 0 ..^ l ) --> S ) $=
      ( vw cword wcel cc0 cv cfzo co cn0 wrex cab df-word eleq2i cvv ovex mpan2
      wf fex rexlimivw wceq feq1 rexbidv elab3 bitri ) BAEZFBGCHZIJZADHZSZCKLZD
      MZFUIABSZCKLZUGUMBDACNOULUODBUNBPFZCKUNUIPFUPGUHIQUIAPBTRUAUJBUBUKUNCKUIA
      UJBUCUDUEUF $.

    $( Value of the set of words over a set.  (Contributed by Stefan O'Rear,
       10-Aug-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
    wrdval $p |- ( S e. V -> Word S = U_ l e. NN0 ( S ^m ( 0 ..^ l ) ) ) $=
      ( vw wcel cn0 cc0 cv cfzo co cmap ciun wf wrex cab cword eliun cvv ovex
      wb elmapg mpan2 rexbidv syl5bb abbi2dv df-word syl6reqr ) ABEZCFAGCHZIJZK
      JZLZUJADHZMZCFNZDOAPUHUODULUMULEUMUKEZCFNUHUOCUMFUKQUHUPUNCFUHUJREUPUNTGU
      IISAUJUMBRUAUBUCUDUEDACUFUG $.
  $}

  ${
    $d l S $.  $d l W $.  $d l L $.
    $( A zero-based sequence is a word.  (Contributed by Stefan O'Rear,
       15-Aug-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
    iswrdi $p |- ( W : ( 0 ..^ L ) --> S -> W e. Word S ) $=
      ( vl cc0 cfzo co wf cv cn0 wrex cword wcel wceq oveq2 feq2d rspcev wn wa
      c0 0nn0 wne cn fzo0n0 nnnn0 sylbi necon1bi fzo0 syl6eqr sylancr pm2.61ian
      biimpa iswrd sylibr ) EBFGZACHZEDIZFGZACHZDJKZCALMBJMZUPUTUSUPDBJUQBNURUO
      ACUQBEFOPQVARZUPSEJMEEFGZACHZUTUAVBUPVDVBUOVCACVBUOTVCVAUOTUOTUBBUCMVABUD
      BUEUFUGEUHUIPULUSVDDEJUQENURVCACUQEEFOPQUJUKACDUMUN $.

    $( A word is a zero-based sequence with a recoverable upper limit.
       (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
    wrdf $p |- ( W e. Word S -> W : ( 0 ..^ ( # ` W ) ) --> S ) $=
      ( vl cword wcel cc0 cv cfzo co wf cn0 chash cfv iswrd wa simpr fnfzo0hash
      wrex oveq2d feq2d mpbird rexlimiva sylbi ) BADEFCGZHIZABJZCKRFBLMZHIZABJZ
      ABCNUFUICKUDKEZUFOZUIUFUJUFPUKUHUEABUKUGUDFHABUDQSTUAUBUC $.
  $}

  $( A word over an alphabet is a function of an open range of nonnegative
     integers (of length equal to the length of the word) into the alphabet.
     (Contributed by Alexander van der Vekens, 30-Jul-2018.) $)
  iswrdb $p |- ( W e. Word S <-> W : ( 0 ..^ ( # ` W ) ) --> S ) $=
    ( cword wcel cc0 chash cfv cfzo co wf wrdf iswrdi impbii ) BACDEBFGZHIABJAB
    KANBLM $.

  $( The indices of a word (i.e. its domain regarded as function) are elements
     of an open range of nonnegative integers (of length equal to the length of
     the word).  (Contributed by AV, 2-May-2020.) $)
  wrddm $p |- ( W e. Word S -> dom W = ( 0 ..^ ( # ` W ) ) ) $=
    ( cword wcel cc0 chash cfv cfzo co wf cdm wceq wrdf fdm syl ) BACDEBFGHIZAB
    JBKPLABMPABNO $.

  ${
    $d w S $.  $d w T $.
    $( The set of words respects ordering on the base set.  (Contributed by
       Stefan O'Rear, 15-Aug-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.)
       (Proof shortened by AV, 13-May-2020.) $)
    sswrd $p |- ( S C_ T -> Word S C_ Word T ) $=
      ( vw wss cword cc0 cv chash cfv cfzo co wf wcel fss expcom iswrdb 3imtr4g
      ssrdv ) ABDZCAEZBEZSFCGZHIJKZAUBLZUCBUBLZUBTMUBUAMUDSUEUCABUBNOAUBPBUBPQR
      $.
  $}

  $( A singleton of an ordered pair (with 0 as first component) is a word.
     (Contributed by AV, 23-Nov-2018.)  (Proof shortened by AV,
     18-Apr-2021.) $)
  snopiswrd $p |- ( S e. V -> { <. 0 , S >. } e. Word V ) $=
    ( wcel cc0 c1 cfzo co cop csn wf cword cz id fsnd fzo01 feq2i sylibr iswrdi
    0zd syl ) ABCZDEFGZBDAHIZJZUCBKCUADIZBUCJUDUADALBUASUAMNUBUEBUCOPQBEUCRT $.

  ${
    $d s l S $.  $d s l V $.
    $( The set of words over a set is a set.  (Contributed by Mario Carneiro,
       26-Feb-2016.) $)
    wrdexg $p |- ( S e. V -> Word S e. _V ) $=
      ( vl vs wcel cword cn0 cc0 cv cfzo co cmap ciun cvv wrdval cz cxp cpw wss
      wral mapsspw elfzoelz ssriv xpss1 ax-mp sspwb sstri rgenw iunss mpbir zex
      mpbi xpexg mpan pwexg syl ssexg sylancr eqeltrd ) ABEZAFCGAHCIZJKZLKZMZNA
      BCOUTVDPAQZRZSZVFNEZVDNEVGVCVFSZCGTVICGVCVBAQZRZVFAVBUAVJVESZVKVFSVBPSVLD
      VBPDIHVAUBUCVBPAUDUEVJVEUFULUGUHCGVCVFUIUJUTVENEZVHPNEUTVMUKPANBUMUNVENUO
      UPVDVFNUQURUS $.

    $( The set of words over a set is a set, bidirectional version.
       (Contributed by Mario Carneiro, 26-Feb-2016.)  (Proof shortened by AV,
       23-Nov-2018.) $)
    wrdexb $p |- ( S e. _V <-> Word S e. _V ) $=
      ( vs cvv wcel cword wrdexg cuni wss cv cc0 cop wa csn opex snid snopiswrd
      elunii sylancr c0ex uniexg vex opeluu syl simprd ssriv 3syl ssexg impbii
      ) ACDZAEZCDZACFUKAUJGZGZGZHUNCDZUIBAUNBIZADZJUNDZUPUNDZUQJUPKZULDZURUSLUQ
      UTUTMZDVBUJDVAUTJUPNOUPAPUTVBUJQRJUPULSBUAUBUCUDUEUKULCDUMCDUOUJCTULCTUMC
      TUFAUNCUGRUH $.
  $}

  ${
    wrdexi.1 $e |- S e. _V $.
    $( The set of words over a set is a set, inference form.  (Contributed by
       AV, 23-May-2021.) $)
    wrdexi $p |- Word S e. _V $=
      ( cvv wcel cword wrdexg ax-mp ) ACDAECDBACFG $.
  $}

  $( A symbol within a word over an alphabet belongs to the alphabet.
     (Contributed by Alexander van der Vekens, 28-Jun-2018.) $)
  wrdsymbcl $p |- ( ( W e. Word V /\ I e. ( 0 ..^ ( # ` W ) ) )
                  -> ( W ` I ) e. V ) $=
    ( cword wcel cc0 chash cfv cfzo co wrdf ffvelrnda ) CBDEFCGHIJBACBCKL $.

  $( A word is a function with a zero-based sequence of integers as domain.
     (Contributed by Alexander van der Vekens, 13-Apr-2018.) $)
  wrdfn $p |- ( W e. Word S -> W Fn ( 0 ..^ ( # ` W ) ) ) $=
    ( cword wcel cc0 chash cfv cfzo co wf wfn wrdf ffn syl ) BACDEBFGHIZABJBOKA
    BLOABMN $.

  $( A word over an alphabet is a word over the universal class.  (Contributed
     by AV, 8-Feb-2021.) $)
  wrdv $p |- ( W e. Word V -> W e. Word _V ) $=
    ( cword wcel cc0 chash cfv cfzo co cvv wrdf wss ssv fss mpan2 iswrdi 3syl
    wf ) BACDEBFGZHIZABRZTJBRZBJCDABKUAAJLUBAMTAJBNOJSBPQ $.

  $( The length of a word is not in the domain of the word (regarded as
     function).  (Contributed by AV, 3-Mar-2021.) $)
  wrdlndm $p |- ( W e. Word V -> ( # ` W ) e/ dom W ) $=
    ( cword wcel cc0 chash cfv cfzo wfn cdm wceq wnel wrdfn fzonel nelir neleq2
    co fndm mpbiri 3syl ) BACDBEBFGZHQZIBJZUBKZUAUCLZABMUBBRUDUEUAUBLUAUBEUANOU
    CUBUAPST $.

  ${
    $d V i $.  $d W i $.
    $( An arbitrary word is a word over an alphabet if all of its symbols
       belong to the alphabet.  (Contributed by AV, 23-Jan-2021.) $)
    iswrdsymb $p |- ( ( W e. Word _V /\ A. i e. ( 0 ..^ ( # ` W ) )
                                        ( W ` i ) e. V )
                      -> W e. Word V ) $=
      ( cvv cword wcel cv cfv cc0 chash cfzo co wral wa wfn wrdfn anim1i sylibr
      wf ffnfv iswrdi syl ) CDEFZAGCHBFAICJHZKLZMZNZUEBCSZCBEFUGCUEOZUFNUHUCUIU
      FDCPQAUEBCTRBUDCUAUB $.
  $}

  $( A word is a finite set.  (Contributed by Stefan O'Rear, 2-Nov-2015.)
     (Proof shortened by AV, 18-Nov-2018.) $)
  wrdfin $p |- ( W e. Word S -> W e. Fin ) $=
    ( cword wcel cc0 chash cfv cfzo co wfn cfn wrdfn fzofi fnfi sylancl ) BACDB
    EBFGZHIZJQKDBKDABLEPMQBNO $.

  $( The length of a word is a nonnegative integer.  This corresponds to the
     definition in section 9.1 of [AhoHopUll] p. 318.  (Contributed by Stefan
     O'Rear, 27-Aug-2015.) $)
  lencl $p |- ( W e. Word S -> ( # ` W ) e. NN0 ) $=
    ( cword wcel cfn chash cfv cn0 wrdfin hashcl syl ) BACDBEDBFGHDABIBJK $.

  $( The length of a nonempty word is a positive integer.  (Contributed by
     Mario Carneiro, 1-Oct-2015.) $)
  lennncl $p |- ( ( W e. Word S /\ W =/= (/) ) -> ( # ` W ) e. NN ) $=
    ( cword wcel chash cfv cn c0 wne cfn wb wrdfin hashnncl syl biimpar ) BACDZ
    BEFGDZBHIZPBJDQRKABLBMNO $.

  $( A word is a function from a finite interval of integers.  (Contributed by
     AV, 10-Feb-2021.) $)
  wrdffz $p |- ( W e. Word S -> W : ( 0 ... ( ( # ` W ) - 1 ) ) --> S ) $=
    ( cword wcel cc0 chash cfv cfzo co wf c1 cmin cfz wrdf cz wceq lencl fzoval
    nn0zd syl feq2d mpbid ) BACDZEBFGZHIZABJEUDKLIMIZABJABNUCUEUFABUCUDODUEUFPU
    CUDABQSEUDRTUAUB $.

  $( Equality theorem for the set of words.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  wrdeq $p |- ( S = T -> Word S = Word T ) $=
    ( wss wa cword wceq sswrd anim12i eqss 3imtr4i ) ABCZBACZDAEZBEZCZNMCZDABFM
    NFKOLPABGBAGHABIMNIJ $.

  ${
    wrdeqi.1 $e |- S = T $.
    $( Equality theorem for the set of words, inference form.  (Contributed by
       AV, 23-May-2021.) $)
    wrdeqi $p |- Word S = Word T $=
      ( wceq cword wrdeq ax-mp ) ABDAEBEDCABFG $.
  $}

  $( A function with empty domain is a word.  (Contributed by AV,
     13-Oct-2018.) $)
  iswrddm0 $p |- ( W : (/) --> S -> W e. Word S ) $=
    ( c0 wf cc0 cfzo co cword wcel fzo0 eqcomi feq2i iswrdi sylbi ) CABDEEFGZAB
    DBAHICOABOCEJKLAEBMN $.

  $( The empty set is a word (the _empty word_, frequently denoted &#949; in
     this context).  This corresponds to the definition in section 9.1 of
     [AhoHopUll] p. 318.  (Contributed by Stefan O'Rear, 15-Aug-2015.)  (Proof
     shortened by AV, 13-May-2020.) $)
  wrd0 $p |- (/) e. Word S $=
    ( c0 wf cword wcel f0 iswrddm0 ax-mp ) BABCBADEAFABGH $.

  $( The empty word is the only word over an empty alphabet.  (Contributed by
     AV, 25-Oct-2018.) $)
  0wrd0 $p |- ( W e. Word (/) <-> W = (/) ) $=
    ( c0 cword wcel wceq cc0 chash cfv cfzo co wrdf f00 simplbi syl wrd0 mpbiri
    wf eleq1 impbii ) ABCZDZABEZUAFAGHIJZBAQZUBBAKUDUBUCBEUCALMNUBUABTDBOABTRPS
    $.

  $( A sequence with zero-based indices is a word.  (Contributed by AV,
     31-Jan-2018.)  (Proof shortened by AV, 13-Oct-2018.) $)
  ffz0iswrd $p |- ( W : ( 0 ... L ) --> S -> W e. Word S ) $=
    ( cz wcel cc0 cfz co wf cword wa c1 caddc cfzo fzval3 feq2d biimpa syl wnel
    c0 iswrdi wn wo wceq df-nel biimpri olcd fz0 iswrddm0 syl6bi imp pm2.61ian
    ) BDEZFBGHZACIZCAJEZUMUOKFBLMHZNHZACIZUPUMUOUSUMUNURACFBOPQAUQCUARUMUBZUOUP
    UTUOTACIUPUTUNTACUTFDSZBDSZUCUNTUDUTVBVAVBUTBDUEUFUGFBUHRPACUIUJUKUL $.

  ${
    $d l w x $.  $d l w S $.
    nfwrd.1 $e |- F/_ x S $.
    $( Hypothesis builder for ` Word S ` .  (Contributed by Mario Carneiro,
       26-Feb-2016.) $)
    nfwrd $p |- F/_ x Word S $=
      ( vl vw cword cc0 cv cfzo co wf cn0 wrex cab df-word nfcv nff nfab nfcxfr
      nfrex ) ABFGDHIJZBEHZKZDLMZENEBDOUDAEUCADLALPAUABUBAUBPAUAPCQTRS $.
  $}

  ${
    $d S l w x $.  $d V l w x $.
    $( Class substitution for the symbols of a word.  (Contributed by Alexander
       van der Vekens, 15-Jul-2018.) $)
    csbwrdg $p |- ( S e. V -> [_ S / x ]_ Word x = Word S ) $=
      ( vl vw wcel cv cword csb cc0 cfzo cn0 wrex cab df-word csbeq2i csbconstg
      co wf wsbc sbcrex sbcfg csbvarg feq123d bitrd rexbidv syl5bb abbidv csbab
      3eqtr4g syl5eq ) BCFZABAGZHZIABJDGKRZUMEGZSZDLMZENZIZBHZABUNUSEUMDOPULURA
      BTZENUOBUPSZDLMZENUTVAULVBVDEVBUQABTZDLMULVDUQADBLUAULVEVCDLULVEABUOIZABU
      MIZABUPIZSVCAUOUMUPCBUBULVFUOVGBVHUPABUPCQABUOCQABCUCUDUEUFUGUHURAEBUIEBD
      OUJUK $.
  $}

  ${
    $d N w $.  $d V w $.  $d W w $.  $d X w $.
    $( Words of a fixed length are mappings from a fixed half-open integer
       interval.  (Contributed by Alexander van der Vekens, 25-Mar-2018.)
       (Proof shortened by AV, 13-May-2020.) $)
    wrdnval $p |- ( ( V e. X /\ N e. NN0 )
                 -> { w e. Word V | ( # ` w ) = N } = ( V ^m ( 0 ..^ N ) ) ) $=
      ( wcel cn0 wa cc0 cfzo co cmap cv cword chash cfv wceq cab crab wf cvv wb
      ovexd elmapg syldan iswrdi adantl fnfzo0hash adantll jca wrdf oveq2 feq2d
      ex syl5ibcom imp impbid1 bitrd abbi2dv df-rab syl6reqr ) CDEZBFEZGZCHBIJZ
      KJZALZCMZEZVFNOZBPZGZAQVJAVGRVCVKAVEVCVFVEEZVDCVFSZVKVAVBVDTEVLVMUAVCHBIU
      BCVDVFDTUCUDVCVMVKVCVMVKVCVMGVHVJVMVHVCCBVFUEUFVBVMVJVACVFBUGUHUIUMVHVJVM
      VHHVIIJZCVFSVJVMCVFUJVJVNVDCVFVIBHIUKULUNUOUPUQURVJAVGUSUT $.

    $( Words as a mapping.  (Contributed by Thierry Arnoux, 4-Mar-2020.) $)
    wrdmap $p |- ( ( V e. X /\ N e. NN0 )
     -> ( ( W e. Word V /\ ( # ` W ) = N ) <-> W e. ( V ^m ( 0 ..^ N ) ) ) ) $=
      ( vw cword wcel chash cfv wceq wa cv crab cn0 cc0 cfzo cmap fveq2 eqeq1d
      co elrab wrdnval eleq2d syl5bbr ) CBFZGCHIZAJZKCELZHIZAJZEUEMZGBDGANGKZCB
      OAPTQTZGUJUGECUEUHCJUIUFAUHCHRSUAULUKUMCEABDUBUCUD $.
  $}

  ${
    $d N w $.  $d V w $.
    $( If there is only a finite number of symbols, the number of words of a
       fixed length over these sysmbols is the number of these symbols raised
       to the power of the length.  (Contributed by Alexander van der Vekens,
       25-Mar-2018.) $)
    hashwrdn $p |- ( ( V e. Fin /\ N e. NN0 )
            -> ( # ` { w e. Word V | ( # ` w ) = N } ) = ( ( # ` V ) ^ N ) ) $=
      ( cfn wcel cn0 wa cv chash cfv wceq cword crab cc0 cfzo cmap cexp wrdnval
      co fveq2d fzofi a1i hashmap sylan2 hashfzo0 adantl oveq2d 3eqtrd ) CDEZBF
      EZGZAHIJBKACLMZIJCNBOSZPSZIJZCIJZUMIJZQSZUPBQSUKULUNIABCDRTUJUIUMDEZUOURK
      USUJNBUAUBCUMUCUDUKUQBUPQUJUQBKUIBUEUFUGUH $.

    $( If there is only a finite number of symbols, the number of words of a
       fixed length over these symbols is also finite.  (Contributed by
       Alexander van der Vekens, 25-Mar-2018.) $)
    wrdnfi $p |- ( ( V e. Fin /\ N e. NN0 )
                   -> { w e. Word V | ( # ` w ) = N } e. Fin ) $=
      ( cfn wcel cn0 wa chash cfv wceq cword crab cexp hashwrdn hashcl nn0expcl
      cv co sylan cvv eqeltrd wb wrdexg adantr rabexg hashclb 3syl mpbird ) CDE
      ZBFEZGZAQHIBJZACKZLZDEZUNHIZFEZUKUPCHIZBMRZFABCNUIURFEUJUSFECOURBPSUAUKUM
      TEZUNTEUOUQUBUIUTUJCDUCUDULAUMTUEUNTUFUGUH $.
  $}

  $( A symbol at a position "outside" of a word.  (Contributed by Alexander van
     der Vekens, 26-May-2018.)  (Proof shortened by AV, 2-May-2020.) $)
  wrdsymb0 $p |- ( ( W e. Word V /\ I e. ZZ )
                   -> ( ( I < 0 \/ ( # ` W ) <_ I ) -> ( W ` I ) = (/) ) ) $=
    ( cword wcel cz wa cc0 clt wbr chash cfv cle wo cdm wn c0 wceq wi cfzo wnel
    co wrddm lencl nn0zd wb simpr 0zd simpl nelfzo syl3anc biimpar df-nel sylib
    eleq2 notbid syl5ibr exp4c sylc imp ndmfv syl6 ) CBDEZAFEZGAHIJCKLZAMJNZACO
    ZEZPZACLQRVCVDVFVISZVCVGHVETUBZRZVEFEZVDVJSBCUCVCVEBCUDUEVLVMVDVFVIVMVDGZVF
    GZVIVLAVKEZPZVOAVKUAZVQVNVRVFVNVDHFEVMVRVFUFVMVDUGVNUHVMVDUIAHVEUJUKULAVKUM
    UNVLVHVPVGVKAUOUPUQURUSUTACVAVB $.

  $( A word with length at least 1 is not empty.  (Contributed by AV,
     14-Oct-2018.) $)
  wrdlenge1n0 $p |- ( W e. Word V -> ( W =/= (/) <-> 1 <_ ( # ` W ) ) ) $=
    ( cword wcel cc0 chash cfv clt wbr c0 wne c1 cle hashneq0 cz wb lencl nn0zd
    zgt0ge1 syl bitr3d ) BACZDZEBFGZHIZBJKLUDMIZBUBNUCUDODUEUFPUCUDABQRUDSTUA
    $.

  $( A word with length at least 2 is not empty.  (Contributed by AV,
     18-Jun-2018.)  (Proof shortened by AV, 14-Oct-2018.) $)
  wrdlenge2n0 $p |- ( ( W e. Word V /\ 2 <_ ( # ` W ) ) -> W =/= (/) ) $=
    ( cword wcel c2 chash cfv cle wbr wa c0 wne c1 w3a clt 1red 2re a1i adantr
    cr lencl nn0red 3jca simpr 1lt2 jctil ltleletr sylc wb wrdlenge1n0 mpbird )
    BACDZEBFGZHIZJZBKLZMUMHIZUOMTDZETDZUMTDZNZMEOIZUNJUQULVAUNULURUSUTULPUSULQR
    ULUMABUAUBUCSUOUNVBULUNUDUEUFMEUMUGUHULUPUQUIUNABUJSUK $.

  $( The first symbol of a nonempty word over an alphabet belongs to the
     alphabet.  (Contributed by Alexander van der Vekens, 28-Jun-2018.) $)
  wrdsymb1 $p |- ( ( W e. Word V /\ 1 <_ ( # ` W ) ) -> ( W ` 0 ) e. V ) $=
    ( cword wcel c1 chash cfv cle wbr cc0 cfzo co wa cn0 lencl elnnnn0c biimpri
    cn sylan lbfzo0 sylibr wrdsymbcl syldan ) BACDZEBFGZHIZJJUEKLDZJBGADUDUFMUE
    RDZUGUDUENDZUFUHABOUHUIUFMUEPQSUETUAJABUBUC $.

  ${
    $d V v $.  $d W v $.
    $( A word of length 1 starts with a symbol.  (Contributed by AV,
       20-Jul-2018.)  (Proof shortened by AV, 19-Oct-2018.) $)
    wrdlen1 $p |- ( ( W e. Word V /\ ( # ` W ) = 1 )
                    -> E. v e. V ( W ` 0 ) = v ) $=
      ( cword wcel chash cfv c1 wceq wa cc0 cv wrex cle wbr 1le1 breq2 wrdsymb1
      mpbiri sylan2 risset eqcom rexbii bitri sylib ) CBDEZCFGZHIZJKCGZBEZUIALZ
      IZABMZUHUFHUGNOZUJUHUNHHNOPUGHHNQSBCRTUJUKUIIZABMUMAUIBUAUOULABUKUIUBUCUD
      UE $.
  $}

  $( The first symbol of a nonempty word is element of the alphabet for the
     word.  (Contributed by AV, 28-Sep-2018.)  (Proof shortened by AV,
     14-Oct-2018.) $)
  fstwrdne $p |- ( ( W e. Word V /\ W =/= (/) ) -> ( W ` 0 ) e. V ) $=
    ( cword wcel c0 wne cc0 cfv c1 chash cle wbr wrdlenge1n0 wrdsymb1 ex sylbid
    imp ) BACDZBEFZGBHADZRSIBJHKLZTABMRUATABNOPQ $.

  $( The first symbol of a nonempty word is element of the alphabet for the
     word.  (Contributed by AV, 29-Sep-2018.)  (Proof shortened by AV,
     14-Oct-2018.) $)
  fstwrdne0 $p |- ( ( N e. NN /\ ( W e. Word V /\ ( # ` W ) = N ) )
                    -> ( W ` 0 ) e. V ) $=
    ( cn wcel cword chash cfv wa c1 cle wbr cc0 simprl nnge1 adantr wb ad2antll
    wceq breq2 mpbird wrdsymb1 syl2anc ) ADEZCBFEZCGHZASZIZIZUEJUFKLZMCHBEUDUEU
    GNUIUJJAKLZUDUKUHAOPUGUJUKQUDUEUFAJKTRUABCUBUC $.

  ${
    $d U i $.  $d W i $.
    $( Two words are equal iff they have the same length and the same symbol at
       each position.  (Contributed by AV, 13-Apr-2018.) $)
    eqwrd $p |- ( ( U e. Word V /\ W e. Word V )
          -> ( U = W <-> ( ( # ` U ) = ( # ` W ) /\ A. i e. ( 0 ..^ ( # ` U ) )
                                                 ( U ` i ) = ( W ` i ) ) ) ) $=
      ( cword wcel wa wceq cc0 chash cfv co cv wfn wrdfn cn0 lencl hashfzo0 syl
      cfzo wb eqfnfv2 syl2an fveq2 eqeqan12d syl5ib oveq2 impbid1 anbi1d bitrd
      wral ) ACEZFZDULFZGZADHZIAJKZTLZIDJKZTLZHZBMZAKVBDKHBURUKZGZUQUSHZVCGUMAU
      RNDUTNUPVDUAUNCAOCDOBURUTADUBUCUOVAVEVCUOVAVEVAURJKZUTJKZHUOVEURUTJUDUMUN
      VFUQVGUSUMUQPFVFUQHCAQUQRSUNUSPFVGUSHCDQUSRSUEUFUQUSITUGUHUIUJ $.
  $}

  ${
    $d V v x y z $.  $d Y v y z $.  $d Z z $.
    elovmpt2wrd.o $e |- O = ( v e. _V , y e. _V |-> { z e. Word v | ph } ) $.
    $( Implications for the value of an operation defined by the maps-to
       notation with a class abstration of words as a result having an element.
       Note that ` ph ` may depend on ` z ` as well as on ` v ` and ` y ` .
       (Contributed by Alexander van der Vekens, 15-Jul-2018.) $)
    elovmpt2wrd $p |- ( Z e. ( V O Y )
                        -> ( V e. _V /\ Y e. _V /\ Z e. Word V ) ) $=
      ( vx wcel cvv cv cword csb w3a crab cmpt2 wa adantr co wceq csbwrdg rabeq
      eqcomd syl mpt2eq3ia eqtri wrdexg elovmpt2rab1 wb eleq2d id 3expia sylbid
      eqeltrd 3impia ) HFGEUAKFLKZGLKZHJFJMNZOZKZPURUSHFNZKZPZADBCJUTEFGHEDBLLA
      CDMZNZQZRDBLLACJVFUTOZQZRIDBLLVHVJVFLKZBMLKZSVGVIUBZVHVJUBVKVMVLVKVIVGJVF
      LUCUETACVGVIUDUFUGUHURVALKUSURVAVCLJFLUCZFLUIUPTUJURUSVBVEURUSSVBVDVEURVB
      VDUKUSURVAVCHVNULTURUSVDVEVEUMUNUOUQUF $.
  $}

  ${
    $d V n v y z $.  $d N n z $.  $d Y n v y z $.  $d Z z $.
    elovmptnn0wrd.o $e |- O = ( v e. _V , y e. _V
                |-> ( n e. NN0 |-> { z e. Word v | ph } ) ) $.
    $( Implications for the value of an operation defined by the maps-to
       notation with a function of nonnegative integers into a class
       abstraction of words as a result having an element.  Note that ` ph `
       may depend on ` z ` as well as on ` v ` and ` y ` and ` n ` .
       (Contributed by AV, 16-Jul-2018.)  (Revised by AV, 16-May-2019.) $)
    elovmptnn0wrd $p |- ( Z e. ( ( V O Y ) ` N ) -> ( ( V e. _V /\ Y e. _V )
                        /\ ( N e. NN0 /\ Z e. Word V ) ) ) $=
      ( cn0 cvv wcel cword wa co cv adantr wceq cfv crab elovmpt3imp wrdexg syl
      nn0ex jctil eqidd wrdeq elovmpt3rab1 mpcom ) LMNZHOZMNZPJFHIGQUANZHMNZIMN
      ZPZFLNJUMNPPUOUNULUOURUNDBEJACDRZOZUBLGHIFKUCUPUNUQHMUDSUEUFUGADBEJMMLUML
      UTGHIFCKUSHTZBRITZPLUHVAUTUMTVBUSHUISUJUK $.
  $}

  $( A word truncated by a symbol is a word.  (Contributed by AV,
     29-Jan-2021.) $)
  wrdred1 $p |- ( F e. Word S
                  -> ( F |` ( 0 ..^ ( ( # ` F ) - 1 ) ) ) e. Word S ) $=
    ( cword wcel cc0 chash cfv cfzo co wf cn0 c1 cmin cres wrdf lencl wa wss cz
    syl nn0z fzossrbm1 fssres sylan2 iswrdi syl2anc ) BACZDEBFGZHIZABJZUHKDZBEU
    HLMIZHIZNZUGDZABOABPUJUKQUMAUNJZUOUKUJUMUIRZUPUKUHSDUQUHUAUHUBTUIAUMBUCUDAU
    LUNUETUF $.

  $( The length of a word truncated by a symbol.  (Contributed by Alexander van
     der Vekens, 1-Nov-2017.)  (Revised by AV, 29-Jan-2021.) $)
  wrdred1hash $p |- ( ( F e. Word S /\ 1 <_ ( # ` F ) )
                      -> ( # ` ( F |` ( 0 ..^ ( ( # ` F ) - 1 ) ) ) )
                         = ( ( # ` F ) - 1 ) ) $=
    ( cword wcel c1 chash cfv cle wbr cc0 cmin co cfzo cn0 wfn wa adantr adantl
    wceq syl cres lencl wf wi wrdf ffn wss cz nn0z fzossrbm1 wb fnssresb mpbird
    hashfn 1nn0 nn0sub2 mp3an1 hashfzo0 eqtrd ex 3syl mpand imp ) BACDZEBFGZHIZ
    BJVEEKLZMLZUAZFGZVGSZVDVENDZVFVKABUBVDJVEMLZABUCBVMOZVLVFPZVKUDABUEVMABUFVN
    VOVKVNVOPZVJVHFGZVGVPVIVHOZVJVQSVPVRVHVMUGZVOVSVNVLVSVFVLVEUHDVSVEUIVEUJTQR
    VNVRVSUKVOVMVHBULQUMVHVIUNTVOVQVGSZVNVOVGNDZVTENDVLVFWAUOEVEUPUQVGURTRUSUTV
    AVBVC $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Last symbol of a word
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d W w $.
    $( Extract the last symbol of a word.  May be not meaningful for other sets
       which are not words.  (Contributed by Alexander van der Vekens,
       18-Mar-2018.) $)
    lsw $p |- ( W e. X -> ( lastS ` W ) = ( W ` ( ( # ` W ) - 1 ) ) ) $=
      ( vw wcel cvv chash cfv c1 cmin co clsw wceq elex fvex cv id fveq2 oveq1d
      fveq12d df-lsw fvmptg sylancl ) ABDAEDAFGZHIJZAGZEDAKGUELABMUDANCACOZFGZH
      IJZUFGUEEEKUFALZUHUDUFAUIPUIUGUCHIUFAFQRSCTUAUB $.
  $}

  $( The last symbol of an empty word does not exist.  (Contributed by
     Alexander van der Vekens, 19-Mar-2018.)  (Proof shortened by AV,
     2-May-2020.) $)
  lsw0 $p |- ( ( W e. Word V /\ ( # ` W ) = 0 ) -> ( lastS ` W ) = (/) ) $=
    ( cword wcel chash cfv cc0 wceq wa clsw c1 cmin co lsw adantr oveq1 cle wbr
    c0 wn fveq2d cdm cfzo wrddm 1nn nnnle0 ax-mp 0re 1re subge0i mtbir elfzole1
    cn mto eleq2 mtbiri ndmfv 3syl sylan9eqr eqtrd ) BACZDZBEFZGHZIBJFZVCKLMZBF
    ZSVBVEVGHVDBVANOVDVBVGGKLMZBFZSVDVFVHBVCGKLPUAVBBUBZGVCUCMZHZVHVJDZTVISHABU
    DVLVMVHVKDZVNGVHQRZVOKGQRZKUMDVPTUEKUFUGGKUHUIUJUKVHGVCULUNVJVKVHUOUPVHBUQU
    RUSUT $.

  $( The last symbol of an empty word does not exist.  (Contributed by
     Alexander van der Vekens, 11-Nov-2018.) $)
  lsw0g $p |- ( lastS ` (/) ) = (/) $=
    ( cV c0 cword wcel chash cfv cc0 wceq clsw wrd0 hash0 lsw0 mp2an ) BACDBEFG
    HBIFBHAJKABLM $.

  $( The last symbol of a word of length 1 is the first symbol of this word.
     (Contributed by Alexander van der Vekens, 19-Mar-2018.) $)
  lsw1 $p |- ( ( W e. Word V /\ ( # ` W ) = 1 )
                 -> ( lastS ` W ) = ( W ` 0 ) ) $=
    ( cword wcel chash cfv c1 wceq clsw cmin co cc0 oveq1 1m1e0 syl6eq sylan9eq
    lsw fveq2d ) BACZDBEFZGHZBIFTGJKZBFLBFBSQUAUBLBUAUBGGJKLTGGJMNORP $.

  $( Closure of the last symbol: the last symbol of a not empty word belongs to
     the alphabet for the word.  (Contributed by AV, 2-Aug-2018.)  (Proof
     shortened by AV, 29-Apr-2020.) $)
  lswcl $p |- ( ( W e. Word V /\ W =/= (/) ) -> ( lastS ` W ) e. V ) $=
    ( cword wcel c0 wne wa clsw cfv chash cmin wceq lsw adantr cc0 cfzo lennncl
    c1 co cn fzo0end syl wrdsymbcl syldan eqeltrd ) BACZDZBEFZGZBHIZBJIZRKSZBIZ
    AUGUJUMLUHBUFMNUGUHULOUKPSDZUMADUIUKTDUNABQUKUAUBULABUCUDUE $.

  $( The last symbol of a nonempty word is element of the alphabet for the
     word.  (Contributed by Alexander van der Vekens, 1-Oct-2018.)  (Proof
     shortened by AV, 29-Apr-2020.) $)
  lswlgt0cl $p |- ( ( N e. NN /\ ( W e. Word V /\ ( # ` W ) = N ) )
                    -> ( lastS ` W ) e. V ) $=
    ( cn wcel cword chash cfv wceq wa c0 wne clsw simprl wb eleq1 eqcoms adantl
    wi cfn wrdfin hashnncl syl biimpd adantr sylbid impcom lswcl syl2anc ) ADEZ
    CBFEZCGHZAIZJZJUKCKLZCMHBEUJUKUMNUNUJUOUNUJULDEZUOUMUJUPOZUKUQAULAULDPQRUKU
    PUOSUMUKUPUOUKCTEUPUOOBCUACUBUCUDUEUFUGBCUHUI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Concatenations of words
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d s t x $.
    $( The concatenation operator is a two-argument function.  (Contributed by
       Mario Carneiro, 27-Sep-2015.)  (Proof shortened by AV, 29-Apr-2020.) $)
    ccatfn $p |- ++ Fn ( _V X. _V ) $=
      ( vs vt vx cvv cc0 cv chash cfv caddc co cfzo wcel cmin cconcat df-concat
      cif cmpt ovex mptex fnmpt2i ) ABDDCEAFZGHZBFZGHIJZKJZCFZEUBKJLUFUAHUFUBMJ
      UCHPZQNCBAOCUEUGEUDKRST $.
  $}

  ${
    $d s t x S $.  $d s t x T $.
    $( Value of the concatenation operator.  (Contributed by Stefan O'Rear,
       15-Aug-2015.) $)
    ccatfval $p |- ( ( S e. V /\ T e. W ) -> ( S ++ T ) =
        ( x e. ( 0 ..^ ( ( # ` S ) + ( # ` T ) ) ) |->
          if ( x e. ( 0 ..^ ( # ` S ) ) , ( S ` x ) ,
            ( T ` ( x - ( # ` S ) ) ) ) ) ) $=
      ( vs vt wcel cvv co cc0 chash cfv caddc cfzo cv cmin wceq oveq2d adantr
      cconcat cif cmpt elex wa fveq2 oveqan12d wb fveq1 simpr fveq12d ifbieq12d
      eleq2d mpteq12dv df-concat ovex mptex ovmpt2a syl2an ) BDHBIHCIHBCUAJAKBL
      MZCLMZNJZOJZAPZKUTOJZHZVDBMZVDUTQJZCMZUBZUCZRCEHBDUDCEUDFGBCIIAKFPZLMZGPZ
      LMZNJZOJZVDKVMOJZHZVDVLMZVDVMQJZVNMZUBZUCVKUAVLBRZVNCRZUEZAVQWCVCVJWFVPVB
      KOWDWEVMUTVOVANVLBLUFZVNCLUFUGSWFVSVFVTWBVGVIWDVSVFUHWEWDVRVEVDWDVMUTKOWG
      SUMTWDVTVGRWEVDVLBUITWFWAVHVNCWDWEUJWDWAVHRWEWDVMUTVDQWGSTUKULUNAGFUOAVCV
      JKVBOUPUQURUS $.

    $d x B $.
    $( The concatenation of two words is a word.  (Contributed by FL,
       2-Feb-2014.)  (Proof shortened by Stefan O'Rear, 15-Aug-2015.)  (Proof
       shortened by AV, 29-Apr-2020.) $)
    ccatcl $p |- ( ( S e. Word B /\ T e. Word B ) -> ( S ++ T ) e. Word B ) $=
      ( vx cword wcel wa cconcat co cc0 chash caddc cfzo wf wrdf ad2antrr lencl
      cfv cz nn0zd cv cmin cif cmpt ccatfval ffvelrnda wn ad3antlr simpr anim1i
      anim12i fzocatel syl2anc ffvelrnd ifclda eqid fmptd iswrdi syl eqeltrd )
      BAEZFZCVAFZGZBCHIDJBKRZCKRZLIZMIZDUAZJVEMIZFZVIBRZVIVEUBIZCRZUCZUDZVADBCV
      AVAUEVDVHAVPNVPVAFVDDVHVOAVPVDVIVHFZGZVKVLVNAVRVJAVIBVBVJABNVCVQABOPUFVRV
      KUGZGZJVFMIZAVMCVCWAACNVBVQVSACOUHVTVQVSGVESFZVFSFZGZVMWAFVRVQVSVDVQUIUJV
      DWDVQVSVBWBVCWCVBVEABQTVCVFACQTUKPVIVEVFULUMUNUOVPUPUQAVGVPURUSUT $.

    $( The length of a concatenated word.  (Contributed by Stefan O'Rear,
       15-Aug-2015.) $)
    ccatlen $p |- ( ( S e. Word B /\ T e. Word B ) ->
        ( # ` ( S ++ T ) ) = ( ( # ` S ) + ( # ` T ) ) ) $=
      ( vx cword wcel wa cconcat co chash cfv cc0 caddc cfzo cmin wceq fvex cn0
      cv lencl cif cmpt ccatfval fveq2d wfn ifex eqid fnmpti hashfn mp1i syl2an
      nn0addcl hashfzo0 syl 3eqtrd ) BAEZFZCUPFZGZBCHIZJKDLBJKZCJKZMIZNIZDSZLVA
      NIFZVEBKZVEVAOIZCKZUAZUBZJKZVDJKZVCUSUTVKJDBCUPUPUCUDVKVDUEVLVMPUSDVDVJVK
      VFVGVIVEBQVHCQUFVKUGUHVDVKUIUJUSVCRFZVMVCPUQVARFVBRFVNURABTACTVAVBULUKVCU
      MUNUO $.

    $d x I $.
    $( Value of a symbol in the left half of a concatenated word.  (Contributed
       by Stefan O'Rear, 15-Aug-2015.)  (Revised by Mario Carneiro,
       22-Sep-2015.)  (Proof shortened by AV, 30-Apr-2020.) $)
    ccatval1 $p |- ( ( S e. Word B /\ T e. Word B /\ I e. ( 0 ..^ ( # ` S ) ) )
                     -> ( ( S ++ T ) ` I ) = ( S ` I ) ) $=
      ( vx cword wcel cc0 chash cfv cfzo co w3a cmin cif caddc cconcat cvv wceq
      cv ccatfval 3adant3 eleq1 fveq2 oveq1 fveq2d ifbieq12d 3ad2ant3 sylan9eqr
      cmpt iftrue cn0 simp3 lencl 3ad2ant2 elfzoext syl2anc fvexd fvmptd ) BAFZ
      GZCUTGZDHBIJZKLZGZMZEDETZVDGZVGBJZVGVCNLZCJZOZDBJZHVCCIJZPLKLZBCQLZRVAVBV
      PEVOVLUJSVEEBCUTUTUAUBVGDSZVFVLVEVMDVCNLZCJZOZVMVQVHVEVIVKVMVSVGDVDUCVGDB
      UDVQVJVRCVGDVCNUEUFUGVEVAVTVMSVBVEVMVSUKUHUIVFVEVNULGZDVOGVAVBVEUMVBVAWAV
      EACUNUOVNHVCDUPUQVFDBURUS $.

    $( Value of a symbol in the right half of a concatenated word.
       (Contributed by Stefan O'Rear, 15-Aug-2015.)  (Revised by Mario
       Carneiro, 22-Sep-2015.) $)
    ccatval2 $p |- ( ( S e. Word B /\ T e. Word B /\
          I e. ( ( # ` S ) ..^ ( ( # ` S ) + ( # ` T ) ) ) ) ->
        ( ( S ++ T ) ` I ) = ( T ` ( I - ( # ` S ) ) ) ) $=
      ( vx cword wcel chash cfv caddc co cfzo w3a cc0 cmin cif cconcat wceq cn0
      cv cvv cmpt ccatfval 3adant3 eleq1 fveq2 oveq1 fveq2d ifbieq12d wn cin c0
      fzodisj minel 3ad2ant3 iffalsed sylan9eqr wa cfn wss wrdfin adantr hashcl
      mpan2 cuz fzoss1 nn0uz eleq2s 3syl sseld 3impia fvexd fvmptd ) BAFZGZCVNG
      ZDBHIZVQCHIJKZLKZGZMZEDETZNVQLKZGZWBBIZWBVQOKZCIZPZDVQOKZCIZNVRLKZBCQKZUA
      VOVPWLEWKWHUBRVTEBCVNVNUCUDWBDRZWAWHDWCGZDBIZWJPWJWMWDWNWEWGWOWJWBDWCUEWB
      DBUFWMWFWICWBDVQOUGUHUIWAWNWOWJVTVOWNUJZVPVTWCVSUKULRWPNVQVRUMDVSWCUNVDUO
      UPUQVOVPVTDWKGVOVPURZVSWKDWQBUSGZVQSGVSWKUTZVOWRVPABVAVBBVCWSVQNVEISVQNVR
      VFVGVHVIVJVKWAWICVLVM $.

    $( Value of a symbol in the right half of a concatenated word, using an
       index relative to the subword.  (Contributed by Stefan O'Rear,
       16-Aug-2015.)  (Proof shortened by AV, 30-Apr-2020.) $)
    ccatval3 $p |- ( ( S e. Word B /\ T e. Word B /\ I e. ( 0 ..^ ( # ` T ) ) )
                     -> ( ( S ++ T ) ` ( I + ( # ` S ) ) ) = ( T ` I ) ) $=
      ( cword wcel cc0 chash cfv cfzo co caddc cconcat cmin wceq cz lencl nn0zd
      w3a wa anim1i 3adant2 fzo0addelr ccatval2 syld3an3 elfzoelz 3ad2ant3 zcnd
      ancomd syl cn0 3ad2ant1 nn0cnd pncand fveq2d eqtrd ) BAEZFZCUQFZDGCHIZJKF
      ZSZDBHIZLKZBCMKIZVDVCNKZCIZDCIURUSVAVDVCVCUTLKJKFZVEVGOVBVAVCPFZTZVHURVAV
      JUSURVATVIVAURVIVAURVCABQZRUAUIUBDUTVCUCUJABCVDUDUEVBVFDCVBDVCVBDVAURDPFU
      SDGUTUFUGUHVBVCURUSVCUKFVAVKULUMUNUOUP $.
  $}

  $( An element of a finite set of sequential integers up to the length of a
     word is an element of an extended finite set of sequential integers up to
     the length of a concatenation of this word with another word.
     (Contributed by Alexander van der Vekens, 28-Mar-2018.) $)
  elfzelfzccat $p |- ( ( A e. Word V /\ B e. Word V )
                       -> ( N e. ( 0 ... ( # ` A ) )
                            -> N e. ( 0 ... ( # ` ( A ++ B ) ) ) ) ) $=
    ( cword wcel wa cc0 chash cfv cfz co caddc cconcat wi lencl elfz0add syl2an
    cn0 ccatlen oveq2d eleq2d sylibrd ) ADEZFZBUDFZGZCHAIJZKLFZCHUHBIJZMLZKLZFZ
    CHABNLIJZKLZFUEUHSFUJSFUIUMOUFDAPDBPUHUJCQRUGUOULCUGUNUKHKDABTUAUBUC $.

  ${
    $d A x $.  $d B x $.  $d V x $.
    $( The concatenation of two words is a function over the half-open integer
       range having the sum of the lengths of the word as length.  (Contributed
       by Alexander van der Vekens, 30-Mar-2018.) $)
    ccatvalfn $p |- ( ( A e. Word V /\ B e. Word V )
                  -> ( A ++ B ) Fn ( 0 ..^ ( ( # ` A ) + ( # ` B ) ) ) ) $=
      ( vx cword wcel wa cconcat co cc0 chash cfv caddc cfzo cmin cif cmpt fvex
      cv wfn wceq ccatfval ifex eqid fnmpti fneq1 mpbiri syl ) ACEZFBUIFGABHIZD
      JAKLZBKLMINIZDSZJUKNIFZUMALZUMUKOIZBLZPZQZUAZUJULTZDABUIUIUBUTVAUSULTDULU
      RUSUNUOUQUMARUPBRUCUSUDUEULUJUSUFUGUH $.
  $}

  $( The symbol at a given position in a concatenated word.  (Contributed by
     AV, 26-May-2018.)  (Proof shortened by AV, 24-Nov-2018.) $)
  ccatsymb $p |- ( ( A e. Word V /\ B e. Word V /\ I e. ZZ )
                   -> ( ( A ++ B ) ` I ) = if ( I < ( # ` A ) ,
                                   ( A ` I ) , ( B ` ( I - ( # ` A ) ) ) ) ) $=
    ( wcel cz w3a cfv wbr co cc0 cle wa wceq 3adant3 wb syl cr c0 adantr clt wi
    cword chash cmin cif cconcat id ad2antrl simpr anim2i simp3 0zd lencl nn0zd
    cfzo 3ad2ant1 3jca elfzo mpbird df-3an sylanbrc ccatval1 eqcomd ex zre 0red
    wn 3ad2ant3 ltnle wo 3adant2 orcd wrdsymb0 sylc ccatcl eqtr4d sylbird com12
    jca pm2.61i caddc nn0red lenlt syl2an biimpar ancomd zaddcl ccatval2 lenltd
    readdcl ccatlen eqbrtrd zsubcl sylan2 ancoms leaddsub2 syl3an biimpa ifeqda
    olcd simp2 ) ADUCZEZBXCEZCFEZGZCAUDHZUAIZCAHZCXHUEJZBHZUFCABUGJZHZXGXIXJXLX
    NKCLIZXGXIMZXJXNNZUBXOXPXQXOXPMZXDXECKXHUPJEZGZXQXRXDXEMZXSXTXGYAXOXIXDXEYA
    XFYAUHOZUIXRXSXOXIMZXPXIXOXGXIUJUKXRXFKFEZXHFEZGZXSYCPXGYFXOXIXGXFYDYEXDXEX
    FULZXGUMXDXEYEXFXDXHDAUNZUOZUQZURUICKXHUSQUTXDXEXSVAVBXTXNXJDABCVCVDQVEXPXO
    VHZXQXGYKXQUBXIXGYKCKUAIZXQXGCREZKREZMZYLYKPXFXDYOXEXFYMYNCVFZXFVGVTVICKVJQ
    XGYLXQXGYLMZXJSXNYQXDXFMZYLXHCLIZVKXJSNXGYRYLXDXFYRXEYRUHVLTYQYLYSXGYLUJZVM
    CDAVNVOYQXMXCEZXFMZYLXMUDHZCLIZVKZXNSNZXGUUBYLXGUUAXFXDXEUUAXFDABVPOYGVTZTY
    QYLUUDYTVMCDXMVNZVOVQVEVRTVSWAXGXIVHZMZXNXLCXHBUDHZWBJZUAIZUUJXNXLNZUBUUMUU
    JUUNUUMUUJMZXDXECXHUULUPJEZGZUUNUUOYAUUPUUQXGYAUUMUUIYBUIUUOUUPYSUUMMZUUOUU
    MYSUUJYSUUMXGYSUUIXDXFYSUUIPZXEXDXHREZYMUUSXFXDXHYHWCZYPXHCWDWEVLWFUKWGUUOX
    FYEUULFEZGZUUPUURPXGUVCUUMUUIXGXFYEUVBYGYJXDXEUVBXFXDYEUUKFEUVBXEYIXEUUKDBU
    NZUOXHUUKWHWEOURUICXHUULUSQUTXDXEUUPVAVBDABCWIQVEUUJUUMVHZUUNXGUVEUUNUBUUIX
    GUVEUULCLIZUUNXGUULCXDXEUULREZXFXDUUTUUKREZUVGXEUVAXEUUKUVDWCZXHUUKWKWEOXFX
    DYMXEYPVIWJXGUVFUUNXGUVFMZXNSXLUVJUUBUUEUUFXGUUBUVFUUGTUVJUUDYLUVJUUCUULCLX
    GUUCUULNZUVFXDXEUVKXFDABWLOTXGUVFUJWMXAUUHVOUVJXEXKFEZMZXKKUAIZUUKXKLIZVKXL
    SNXGUVMUVFXGXEUVLXDXEXFXBXDXFUVLXEXFXDUVLXDXFYEUVLYICXHWNWOWPVLVTTUVJUVOUVN
    XGUVFUVOXDUUTXEUVHXFYMUVFUVOPUVAUVIYPXHUUKCWQWRWSXAXKDBVNVOVQVEVRTVSWAVDWTV
    D $.

  $( The first symbol of a concatenation of two words is the first symbol of
     the first word if the first word is not empty.  (Contributed by Alexander
     van der Vekens, 22-Sep-2018.) $)
  ccatfv0 $p |- ( ( A e. Word V /\ B e. Word V /\ 0 < ( # ` A ) )
                  -> ( ( A ++ B ) ` 0 ) = ( A ` 0 ) ) $=
    ( cword wcel cc0 chash cfv clt wbr cfzo co cconcat wa cn cn0 lencl elnnnn0b
    wceq biimpri sylan lbfzo0 sylibr 3adant2 ccatval1 syld3an3 ) ACDZEZBUGEZFAG
    HZIJZFFUJKLEZFABMLHFAHSUHUKULUIUHUKNUJOEZULUHUJPEZUKUMCAQUMUNUKNUJRTUAUJUBU
    CUDCABFUEUF $.

  $( The last symbol of the left (nonempty) half of a concatenated word.
     (Contributed by Alexander van der Vekens, 3-Oct-2018.)  (Proof shortened
     by AV, 1-May-2020.) $)
  ccatval1lsw $p |- ( ( A e. Word V /\ B e. Word V /\ A =/= (/) )
                     -> ( ( A ++ B ) ` ( ( # ` A ) - 1 ) ) = ( lastS ` A ) ) $=
    ( cword wcel c0 wne w3a chash cfv c1 cmin co cconcat clsw cfzo wceq lennncl
    cc0 cn 3adant2 fzo0end syl ccatval1 syld3an3 lsw 3ad2ant1 eqtr4d ) ACDZEZBU
    IEZAFGZHZAIJZKLMZABNMJZUOAJZAOJZUJUKULUOSUNPMEZUPUQQUMUNTEZUSUJULUTUKCARUAU
    NUBUCCABUOUDUEUJUKURUQQULAUIUFUGUH $.

  ${
    $d x S $.  $d x T $.  $d x B $.  $d x U $.
    $( Concatenation of a word by the empty word on the left.  (Contributed by
       Stefan O'Rear, 15-Aug-2015.)  (Proof shortened by AV, 1-May-2020.) $)
    ccatlid $p |- ( S e. Word B -> ( (/) ++ S ) = S ) $=
      ( vx cword wcel cc0 chash cfv cfzo co c0 cconcat wfn caddc wrd0 ccatvalfn
      hash0 syl5eq cmin wceq mpan oveq1i nn0cnd addid2d eqcomd oveq2d fneq2d cv
      lencl mpbird wrdfn wa a1i oveq12d eleq2d ccatval2 mp3an1 syldan oveq2i cz
      biimpar elfzoelz adantl zcnd subid1d fveq2d eqtrd eqfnfvd ) BADZEZCFBGHZI
      JZKBLJZBVJVMVLMVMFKGHZVKNJZIJZMZKVIEZVJVQAOZKBAPUAVJVLVPVMVJVKVOFIVJVOVKV
      JVOFVKNJVKVNFVKNQUBVJVKVJVKABUIUCUDRZUEUFUGUJABUKVJCUHZVLEZULZWAVMHZWAVNS
      JZBHZWABHVJWBWAVNVOIJZEZWDWFTZVJWHWBVJWGVLWAVJVNFVOVKIVNFTVJQUMVTUNUOVAVR
      VJWHWIVSAKBWAUPUQURWCWEWABWCWEWAFSJWAVNFWASQUSWCWAWCWAWBWAUTEVJWAFVKVBVCV
      DVERVFVGVH $.

    $( Concatenation of a word by the empty word on the right.  (Contributed by
       Stefan O'Rear, 15-Aug-2015.)  (Proof shortened by AV, 1-May-2020.) $)
    ccatrid $p |- ( S e. Word B -> ( S ++ (/) ) = S ) $=
      ( vx cword wcel cc0 chash cfv cfzo co c0 cconcat wfn caddc wrd0 ccatvalfn
      mpan2 hash0 oveq2i lencl nn0cnd addid1d syl5req oveq2d fneq2d mpbird wceq
      wrdfn cv ccatval1 mp3an2 eqfnfvd ) BADZEZCFBGHZIJZBKLJZBUNUQUPMUQFUOKGHZN
      JZIJZMZUNKUMEZVAAOZBKAPQUNUPUTUQUNUOUSFIUNUSUOFNJUOURFUONRSUNUOUNUOABTUAU
      BUCUDUEUFABUHUNVBCUIZUPEVDUQHVDBHUGVCABKVDUJUKUL $.

    $( Associative law for concatenation of words.  (Contributed by Stefan
       O'Rear, 15-Aug-2015.) $)
    ccatass $p |- ( ( S e. Word B /\ T e. Word B /\
          U e. Word B ) -> ( ( S ++ T ) ++ U ) =
          ( S ++ ( T ++ U ) ) ) $=
      ( wcel cc0 chash cfv caddc co cfzo cconcat wfn ccatcl wceq oveq2d syl3anc
      adantr syl cmin vx cword w3a wf stoic3 wrdf ffn 3syl ccatlen oveq1d eqtrd
      3adant3 fneq2d mpbid simp1 3adant1 syl2anc lencl 3ad2ant1 nn0cnd 3ad2ant2
      cn0 3ad2ant3 addassd 3eqtr4d cv wo cz nn0zd fzospliti ancoms sylan simpl1
      simpl2 simpr ccatval1 simpl3 cuz wss uzid uzaddcl fzoss2 sseqtr4d zaddcld
      sselda ccatval2 fzosubel3 eqtr4d fzoss1 nn0uz eleq2s elfzoelz zcnd adantl
      wa subsub4d fveq2d eleq2d biimpa fzosubel2 syl13anc oveq12d jaodan syldan
      cc biimpar eqfnfvd ) BAUBZEZCXHEZDXHEZUCZUAFBGHZCGHZIJZDGHZIJZKJZBCLJZDLJ
      ZBCDLJZLJZXLXTFXTGHZKJZMZXTXRMXLXTXHEZYDAXTUDYEXIXJXSXHEZXKYFABCNZAXSDNUE
      AXTUFYDAXTUGUHXLYDXRXTXLYCXQFKXLYCXSGHZXPIJZXQXIXJYGXKYCYJOYHAXSDUIUEXLYI
      XOXPIXIXJYIXOOXKABCUIULZUJZUKPUMUNXLYBFYBGHZKJZMZYBXRMXLYBXHEZYNAYBUDYOXL
      XIYAXHEZYPXIXJXKUOZXJXKYQXIACDNUPZABYANUQAYBUFYNAYBUGUHXLYNXRYBXLYMXQFKXL
      XMYAGHZIJZXMXNXPIJZIJZYMXQXLYTUUBXMIXJXKYTUUBOXIACDUIUPPZXLXIYQYMUUAOYRYS
      ABYAUIUQXLXMXNXPXLXMXIXJXMVBEZXKABURUSZUTZXLXNXJXIXNVBEZXKACURVAZUTZXLXPX
      KXIXPVBEZXJADURVCZUTVDZVEPUMUNXLUAVFZXREZUUNFXMKJZEZUUNXMXQKJZEZVGZUUNXTH
      ZUUNYBHZOZXLXMVHEZUUOUUTXLXMUUFVIZUUOUVDUUTUUNFXQXMVJVKVLXLUUQUVCUUSXLUUQ
      WOZUUNXSHZUUNBHZUVAUVBUVFXIXJUUQUVGUVHOXIXJXKUUQVMZXIXJXKUUQVNXLUUQVOZABC
      UUNVPQUVFYGXKUUNFYIKJZEZUVAUVGOZXLYGUUQXIXJYGXKYHULZRXIXJXKUUQVQXLUUPUVKU
      UNXLUUPFXOKJZUVKXLXOXMVRHZEZUUPUVOVSXLXMUVPEZUUHUVQXLUVDUVRUVEXMVTSUUIXNX
      MXMWAUQZXMFXOWBSXLYIXOFKYKPZWCWEAXSDUUNVPZQUVFXIYQUUQUVBUVHOUVIXLYQUUQYSR
      UVJABYAUUNVPQVEXLUUSUUNXMXOKJZEZUUNXOXQKJZEZVGZUVCXLXOVHEZUUSUWFXLXMXNUVE
      XLXNUUIVIZWDZUUSUWGUWFUUNXMXQXOVJVKVLXLUWCUVCUWEXLUWCWOZUVGUUNXMTJZYAHZUV
      AUVBUWJUVGUWKCHZUWLUWJXIXJUWCUVGUWMOXIXJXKUWCVMZXIXJXKUWCVNZXLUWCVOABCUUN
      WFQUWJXJXKUWKFXNKJEZUWLUWMOUWOXIXJXKUWCVQZXLXNVHEZUWCUWPUWHUWCUWRUWPUUNXM
      XNWGVKVLACDUWKVPQWHUWJYGXKUVLUVMXLYGUWCUVNRUWQXLUWBUVKUUNXLUWBUVOUVKXLUUE
      UWBUVOVSZUUFUWSXMFVRHVBXMFXOWIWJWKSUVTWCWEUWAQUWJXIYQUUNXMUUAKJZEZUVBUWLO
      ZUWNXLYQUWCYSRXLUWBUWTUUNXLUWBUURUWTXLXQXOVRHZEZUWBUURVSXLXOUXCEZUUKUXDXL
      UWGUXEUWIXOVTSUULXPXOXOWAUQXOXMXQWBSXLUUAXQXMKXLUUAUUCXQUUDUUMWHPZWCWEABY
      AUUNWFZQVEXLUWEWOZUUNYITJZDHZUWLUVAUVBUXHUXJUWKXNTJZDHZUWLUXHUXIUXKDUXHUX
      IUUNXOTJZUXKXLUXIUXMOUWEXLYIXOUUNTYKPRUXHUUNXMXNUWEUUNXEEXLUWEUUNUUNXOXQW
      LWMWNXLXMXEEUWEUUGRXLXNXEEUWEUUJRWPWHWQUXHXJXKUWKXNUUBKJEZUWLUXLOXIXJXKUW
      EVNXIXJXKUWEVQZUXHUUNXOUUCKJZEZUVDUWRUUBVHEZUXNXLUWEUXQXLUWDUXPUUNXLXQUUC
      XOKUUMPWRWSXLUVDUWEUVERXLUWRUWEUWHRXLUXRUWEXLXNXPUWHXLXPUULVIWDRUUNXMXNUU
      BWTXAACDUWKWFQWHUXHYGXKUUNYIYJKJZEZUVAUXJOXLYGUWEUVNRUXOXLUXTUWEXLUXSUWDU
      UNXLYIXOYJXQKYKYLXBWRXFAXSDUUNWFQUXHXIYQUXAUXBXIXJXKUWEVMXLYQUWEYSRXLUWDU
      WTUUNXLUWDUURUWTXLUVQUWDUURVSUVSXOXMXQWISUXFWCWEUXGQVEXCXDXCXDXG $.

    $( The range of a concatenated word.  (Contributed by Stefan O'Rear,
       15-Aug-2015.) $)
    ccatrn $p |- ( ( S e. Word B /\ T e. Word B ) ->
        ran ( S ++ T ) = ( ran S u. ran T ) ) $=
      ( vx wcel wa co cc0 cfv cfzo wf wss wceq cn0 adantr nn0uz syl adantl clt
      cz cword cconcat crn cun chash caddc wfn cv ccatvalfn wo cfz cuz syl6eleq
      wral lencl nn0zd uzid uzaddcl syl2anc elfzuzb sylanbrc eleq2d elun syl6bb
      fzosplit ccatval1 3expa ssun1 simpl wrdf ffn 3syl fnfvelrn sseldi eqeltrd
      sylan cmin ccatval2 ssun2 simpr wbr uznn0sub elfzolt2 elfzoelz ltsubadd2d
      elfzouz zred mpbird elfzo2 syl3anbrc jaodan ex sylbid ralrimiv frn fzoss2
      ffnfv sselda eqeltrrd ralrimiva syl6eleqr nn0addcld nn0cnd addcomd nn0red
      ccatval3 ltadd2dd eqbrtrd unssd eqssd ) BAUAZEZCXKEZFZBCUBGZUCZBUCZCUCZUD
      ZXNHBUEIZCUEIZUFGZJGZXSXOKZXPXSLXNXOYCUGZDUHZXOIZXSEZDYCUNYDBCAUIZXNYHDYC
      XNYFYCEZYFHXTJGZEZYFXTYBJGZEZUJZYHXNYJYFYKYMUDZEYOXNYCYPYFXNXTHYBUKGEZYCY
      PMXNXTHULIZEYBXTULIZEZYQXNXTNYRXLXTNEZXMABUOOZPUMXNXTYSEZYANEZYTXNXTTEZUU
      CXNXTUUBUPZXTUQQXMUUDXLACUORZYAXTXTURUSZXTHYBUTVAHYBXTVEQVBYFYKYMVCVDXNYO
      YHXNYLYHYNXNYLFZYGYFBIZXSXLXMYLYGUUJMABCYFVFVGZUUIXQXSUUJXQXRVHXNBYKUGZYL
      UUJXQEXNXLYKABKUULXLXMVIABVJYKABVKVLZYKYFBVMVPVNVOXNYNFZYGYFXTVQGZCIZXSXL
      XMYNYGUUPMABCYFVRVGUUNXRXSUUPXRXQVSUUNCHYAJGZUGZUUOUUQEZUUPXREXNUURYNXNXM
      UUQACKUURXLXMVTACVJUUQACVKVLZOUUNUUOYREYATEZUUOYASWAZUUSUUNUUONYRUUNYFYSE
      ZUUONEYNUVCXNYFXTYBWFRXTYFWBQPUMXNUVAYNXNYAUUGUPOZUUNUVBYFYBSWAZYNUVEXNYF
      XTYBWCRUUNYFXTYAUUNYFYNYFTEXNYFXTYBWDRWGUUNXTXNUUEYNUUFOWGUUNYAUVDWGWEWHU
      UOHYAWIWJUUQUUOCVMUSVNVOWKWLWMWNDYCXSXOWQVAYCXSXOWOQXNXQXRXPXNYKXPBKZXQXP
      LXNUULUUJXPEZDYKUNUVFUUMXNUVGDYKUUIYGUUJXPUUKUUIYEYJYGXPEXNYEYLYIOXNYKYCY
      FXNYTYKYCLUUHXTHYBWPQWRYCYFXOVMUSWSWTDYKXPBWQVAYKXPBWOQXNUUQXPCKZXRXPLXNU
      URYFCIZXPEZDUUQUNUVHUUTXNUVJDUUQXNYFUUQEZFZYFXTUFGZXOIZUVIXPXLXMUVKUVNUVI
      MABCYFXFVGUVLYEUVMYCEZUVNXPEXNYEUVKYIOUVLUVMYREYBTEZUVMYBSWAUVOUVLUVMNYRU
      VLYFXTUVLYFYRNUVKYFYREXNYFHYAWFRPXAZXNUUAUVKUUBOZXBPUMXNUVPUVKXNYBXNXTYAU
      UBUUGXBUPOUVLUVMXTYFUFGYBSUVLYFXTUVLYFUVQXCUVLXTUVRXCXDUVLYFYAXTUVLYFUVQX
      EUVLYAXNUUDUVKUUGOXEUVLXTUVRXEUVKYFYASWAXNYFHYAWCRXGXHUVMHYBWIWJYCUVMXOVM
      USWSWTDUUQXPCWQVAUUQXPCWOQXIXJ $.
  $}

  $( The last symbol of a word concatenated with a nonempty word is the last
     symbol of the nonempty word.  (Contributed by AV, 22-Oct-2018.)  (Proof
     shortened by AV, 1-May-2020.) $)
  lswccatn0lsw $p |- ( ( A e. Word V /\ B e. Word V /\ B =/= (/) )
                       -> ( lastS ` ( A ++ B ) ) = ( lastS ` B ) ) $=
    ( wcel w3a cconcat co clsw cfv chash c1 cmin cvv wceq lsw wa oveq1d 3adant3
    cz eqtrd cword c0 wne ovex mp1i caddc cfzo ccatlen clt lencl nn0zd 3ad2ant1
    wbr cn lennncl 3adant1 simpl nnz adantl zaddcld crp zre nnrp ltaddrp syl2an
    cr 3jca syl2anc fzolb sylibr fzoend syl eqeltrd ccatval2 syld3an3 cc nn0cnd
    addcl 1cnd sub32d pncan2 fveq2d eqcomd 3ad2ant2 ) ACUAZDZBWEDZBUBUCZEZABFGZ
    HIZBJIZKLGZBIZBHIZWIWKWJJIZKLGZWJIZWNWJMDWKWRNWIABFUDWJMOUEWIWRWQAJIZLGZBIZ
    WNWFWGWHWQWSWSWLUFGZUGGZDWRXANWIWQXBKLGZXCWFWGWQXDNWHWFWGPZWPXBKLCABUHQZRWI
    WSXCDZXDXCDWIWSSDZXBSDZWSXBUIUMZEZXGWIXHWLUNDZXKWFWGXHWHWFWSCAUJZUKULWGWHXL
    WFCBUOUPXHXLPZXHXIXJXHXLUQZXNWSWLXOXLWLSDXHWLURUSUTXHWSVFDWLVADXJXLWSVBWLVC
    WSWLVDVEVGVHWSXBVIVJWSXBVKVLVMCABWQVNVOWIWTWMBWFWGWTWMNWHXEWTXDWSLGZWMXEWQX
    DWSLXFQWFWSVPDZWLVPDZXPWMNWGWFWSXMVQWGWLCBUJVQXQXRPZXPXBWSLGZKLGWMXSXBKWSWS
    WLVRXSVSXQXRUQVTXSXTWLKLWSWLWAQTVETRWBTTWGWFWNWONWHWGWOWNBWEOWCWDT $.

  $( The last symbol of a word concatenated with the empty word is the last
     symbol of the word.  (Contributed by AV, 22-Oct-2018.)  (Proof shortened
     by AV, 1-May-2020.) $)
  lswccat0lsw $p |- ( W e. Word V
                     -> ( lastS ` ( W ++ (/) ) ) = ( lastS ` W ) ) $=
    ( cword wcel c0 cconcat co clsw ccatrid fveq2d ) BACDBEFGBHABIJ $.

  ${
    $d A x y $.  $d B x y $.  $d S x y $.
    $( A concatenation of two arbitrary words is a word over an alphabet iff
       the symbols of both words belong to the alphabet.  (Contributed by AV,
       28-Feb-2021.) $)
    ccatalpha $p |- ( ( A e. Word _V /\ B e. Word _V )
            -> ( ( A ++ B ) e. Word S <-> ( A e. Word S /\ B e. Word S ) ) ) $=
      ( vx vy cvv wcel wa co cc0 chash cfv cfzo cmin eleq1d wceq cn0 syl2an syl
      adantr cword cconcat caddc cv cif cmpt ccatfval wf wrdf cdm funmpt cfn wb
      wfun fzofi mptfi ax-mp hashfun mp1i mpbii dmmptg fvex ifex a1i mprg lencl
      fveq2i nn0addcl hashfzo0 syl5eq eqtrd oveq2d feq2d wral eqid simpl wi cuz
      fmpt wss cc nn0cn addcom nn0z anim1i ancomd nn0pzuz eqeltrd fzoss2 sselda
      cz eleq1 fveq2 oveq1 fveq2d ifbieq12d rspcv iftrue adantl sylibd impancom
      weq ralrimiva iswrdsymb syl2an2r elincfzoext syl2anc nn0cnd eleq2d mpbird
      imp simpr cn clt wbr w3a cr nn0red elfzoelz zred readdcld ancoms elfzole1
      cle addge02 mpbid lensymd intn3an3d elfzo0 sylnibr iffalsed pncan syl2anr
      zcnd biimpd sylbid syld jca ex syl5bir syl5 ccatcl impbid1 ) AFUAZGZBUUDG
      ZHZABUBIZCUAZGZAUUIGZBUUIGZHZUUGUUJDJAKLZBKLZUCIZMIZDUDZJUUNMIZGZUURALZUU
      RUUNNIZBLZUEZUFZUUIGZUUMUUGUUHUVEUUIDABUUDUUDUGOUVFJUVEKLZMIZCUVEUHZUUGUU
      MCUVEUIUUGUVIUUQCUVEUHZUUMUUGUVHUUQCUVEUUGUVGUUPJMUUGUVGUVEUJZKLZUUPUUGUV
      EUNZUVGUVLPZDUUQUVDUKUVEULGZUVMUVNUMUUGUUQULGUVOJUUPUODUUQUVDUPUQUVEURUSU
      TUUGUVLUUQKLZUUPUVKUUQKUVDFGZUVKUUQPDUUQDUUQUVDFVAUVQUURUUQGUUTUVAUVCUURA
      VBUVBBVBVCVDVEVGUUGUUPQGZUVPUUPPUUEUUNQGZUUOQGZUVRUUFFAVFZFBVFZUUNUUOVHRU
      UPVISVJVKVLVMUVJUVDCGZDUUQVNZUUGUUMDUUQCUVDUVEUVEVOVSUUGUWDUUMUUGUWDHZUUK
      UULUUGUUEUWDEUDZALZCGZEUUSVNUUKUUEUUFVPUWEUWHEUUSUWEUWFUUSGZUWHUUGUWIUWDU
      WHUUGUWIHZUWDUWIUWGUWFUUNNIZBLZUEZCGZUWHUWJUWFUUQGUWDUWNVQUUGUUSUUQUWFUUG
      UUPUUNVRLZGZUUSUUQVTUUEUVSUVTUWPUUFUWAUWBUVSUVTHZUUPUUOUUNUCIZUWOUVSUUNWA
      GZUUOWAGZUUPUWRPZUVTUUNWBUUOWBUUNUUOWCZRUWQUVTUUNWKGZHUWRUWOGUWQUXCUVTUVS
      UXCUVTUUNWDWEWFUUOUUNWGSWHRUUNJUUPWISWJUWCUWNDUWFUUQDEXBZUVDUWMCUXDUUTUWI
      UVAUVCUWGUWLUURUWFUUSWLUURUWFAWMUXDUVBUWKBUURUWFUUNNWNWOWPOWQSUWJUWMUWGCU
      WIUWMUWGPUUGUWIUWGUWLWRWSOWTXAXKXCECAXDXEUUGUUFUWDUWFBLZCGZEJUUOMIZVNUULU
      UEUUFXLUWEUXFEUXGUWEUWFUXGGZUXFUUGUXHUWDUXFUUGUXHHZUWDUWFUUNUCIZUUSGZUXJA
      LZUXJUUNNIZBLZUEZCGZUXFUXIUXJUUQGZUWDUXPVQUXIUXQUXJJUWRMIZGZUXIUXHUVSUXSU
      UGUXHXLUUGUVSUXHUUEUVSUUFUWATTUUNJUUOUWFXFXGUUGUXQUXSUMUXHUUGUUQUXRUXJUUG
      UUPUWRJMUUEUWSUWTUXAUUFUUEUUNUWAXHZUUFUUOUWBXHUXBRVLXITXJUWCUXPDUXJUUQUUR
      UXJPZUVDUXOCUYAUUTUXKUVAUVCUXLUXNUURUXJUUSWLUURUXJAWMUYAUVBUXMBUURUXJUUNN
      WNWOWPOWQSUXIUXPUXNCGZUXFUXIUXOUXNCUXIUXKUXLUXNUXIUXJQGZUUNXMGZUXJUUNXNXO
      ZXPUXKUXIUYEUYCUYDUXIUUNUXJUUGUUNXQGZUXHUUEUYFUUFUUEUUNUWAXRTZTUXHUUGUXJX
      QGUXHUUGHUWFUUNUXHUWFXQGZUUGUXHUWFUWFJUUOXSZXTZTUUGUYFUXHUYGWSYAYBUXIJUWF
      YDXOZUUNUXJYDXOZUXHUYKUUGUWFJUUOYCWSUUGUYFUYHUYKUYLUMUXHUYGUYJUUNUWFYERYF
      YGYHUXJUUNYIYJYKOUXIUYBUXFUXIUXNUXECUXIUXMUWFBUXHUWFWAGUWSUXMUWFPUUGUXHUW
      FUYIYNUUEUWSUUFUXTTUWFUUNYLYMWOOYOYPYQXAXKXCECBXDXEYRYSYTYPUUAYPCABUUBUUC
      $.
  $}

  $( Reverse closure of a concatenation:  If the concatenation of two arbitrary
     words is a word over an alphabet then the symbols of the first word belong
     to the alphabet.  (Contributed by AV, 3-Mar-2021.) $)
  ccatrcl1 $p |- ( ( A e. Word X /\ B e. Word Y
                     /\ ( W = ( A ++ B ) /\ W e. Word S ) )
                   -> A e. Word S ) $=
    ( cword wcel cconcat co wceq wa eleq1 cvv wb wrdv ccatalpha sylan9bbr simpl
    syl2an syl6bi expimpd 3impia ) AEGHZBFGHZDABIJZKZDCGZHZLAUHHZUDUELZUGUIUJUK
    UGLUIUJBUHHZLZUJUGUIUFUHHZUKUMDUFUHMUDANGZHBUOHUNUMOUEEAPFBPABCQTRUJULSUAUB
    UC $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Singleton words
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Identity function protection for a singleton word.  (Contributed by Mario
     Carneiro, 26-Feb-2016.) $)
  ids1 $p |- <" A "> = <" ( _I ` A ) "> $=
    ( cc0 cid cfv cop csn cs1 cvv wcel wceq fvex fvi ax-mp sneqi df-s1 3eqtr4ri
    opeq2i ) BACDZCDZEZFBREZFRGAGTUASRBRHISRJACKRHLMQNROAOP $.

  $( Value of a single-symbol word.  (Contributed by Stefan O'Rear,
     15-Aug-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
  s1val $p |- ( A e. V -> <" A "> = { <. 0 , A >. } ) $=
    ( wcel cs1 cc0 cid cfv cop csn df-s1 fvi opeq2d sneqd syl5eq ) ABCZADEAFGZH
    ZIEAHZIAJOQROPAEABKLMN $.

  $( The range of a single-symbol word.  (Contributed by Mario Carneiro,
     18-Jul-2016.) $)
  s1rn $p |- ( A e. V -> ran <" A "> = { A } ) $=
    ( wcel cs1 crn cc0 cop csn s1val rneqd c0ex rnsnop syl6eq ) ABCZADZEFAGHZEA
    HNOPABIJFAKLM $.

  $( Equality theorem for a singleton word.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s1eq $p |- ( A = B -> <" A "> = <" B "> ) $=
    ( wceq cc0 cid cfv cop csn cs1 fveq2 opeq2d sneqd df-s1 3eqtr4g ) ABCZDAEFZ
    GZHDBEFZGZHAIBIOQSOPRDABEJKLAMBMN $.

  ${
    s1eqd.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for a singleton word.  (Contributed by Mario Carneiro,
       26-Feb-2016.) $)
    s1eqd $p |- ( ph -> <" A "> = <" B "> ) $=
      ( wceq cs1 s1eq syl ) ABCEBFCFEDBCGH $.
  $}

  $( A singleton word is a word.  (Contributed by Stefan O'Rear, 15-Aug-2015.)
     (Revised by Mario Carneiro, 26-Feb-2016.)  (Proof shortened by AV,
     23-Nov-2018.) $)
  s1cl $p |- ( A e. B -> <" A "> e. Word B ) $=
    ( wcel cs1 cc0 cop csn cword s1val snopiswrd eqeltrd ) ABCADEAFGBHABIABJK
    $.

  ${
    s1cld.1 $e |- ( ph -> A e. B ) $.
    $( A singleton word is a word.  (Contributed by Mario Carneiro,
       26-Feb-2016.) $)
    s1cld $p |- ( ph -> <" A "> e. Word B ) $=
      ( wcel cs1 cword s1cl syl ) ABCEBFCGEDBCHI $.
  $}

  $( A singleton word is a word.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s1cli $p |- <" A "> e. Word _V $=
    ( cs1 cid cfv cvv cword ids1 wcel fvex s1cl ax-mp eqeltri ) ABACDZBZEFZAGME
    HNOHACIMEJKL $.

  $( Length of a singleton word.  (Contributed by Stefan O'Rear, 15-Aug-2015.)
     (Revised by Mario Carneiro, 26-Feb-2016.) $)
  s1len $p |- ( # ` <" A "> ) = 1 $=
    ( cs1 chash cfv cc0 cid cop csn c1 df-s1 fveq2i cvv wcel wceq hashsng ax-mp
    opex eqtri ) ABZCDEAFDZGZHZCDZISUBCAJKUALMUCINETQUALOPR $.

  $( A singleton word is not the empty string.  (Contributed by Mario Carneiro,
     27-Feb-2016.)  (Proof shortened by Kyle Wyonch, 18-Jul-2021.) $)
  s1nz $p |- <" A "> =/= (/) $=
    ( cs1 cc0 cid cfv cop csn c0 df-s1 opex snnz eqnetri ) ABCADEZFZGHAINCMJKL
    $.

  $( Obsolete proof of ~ s1nz as of 18-Jul-2021.  A singleton word is not the
     empty string.  (Contributed by Mario Carneiro, 27-Feb-2016.)
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  s1nzOLD $p |- <" A "> =/= (/) $=
    ( c1 cc0 wne cs1 ax-1ne0 wceq chash fveq2 s1len hash0 3eqtr3g necon3i ax-mp
    c0 cfv ) BCDAEZODFQOBCQOGQHPOHPBCQOHIAJKLMN $.

  $( The domain of a singleton word is a singleton.  (Contributed by AV,
     9-Jan-2020.) $)
  s1dm $p |- dom <" A "> = { 0 } $=
    ( cc0 csn cvv cs1 wf chash cfv cfzo co cword wcel s1cli wrdf ax-mp c1 s1len
    wceq oveq2 fzo01 syl6eq eqcomi feq2i mpbir fdmi ) BCZDAEZUFDUGFBUGGHZIJZDUG
    FZUGDKLUJAMDUGNOUFUIDUGUIUFUHPRZUIUFRAQUKUIBPIJUFUHPBISTUAOUBUCUDUE $.

  $( Alternate version of ~ s1dm , having a shorter proof, but requiring that
     ` A ` ia a set.  (Contributed by AV, 9-Jan-2020.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  s1dmALT $p |- ( A e. S -> dom <" A "> = { 0 } ) $=
    ( wcel cs1 cdm cc0 cop csn s1val dmeqd dmsnopg eqtrd ) ABCZADZEFAGHZEFHMNOA
    BIJFABKL $.

  $( Sole symbol of a singleton word.  (Contributed by Stefan O'Rear,
     15-Aug-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
  s1fv $p |- ( A e. B -> ( <" A "> ` 0 ) = A ) $=
    ( wcel cc0 cs1 cfv cop csn s1val fveq1d cn0 wceq 0nn0 fvsng mpan eqtrd ) AB
    CZDAEZFDDAGHZFZAQDRSABIJDKCQTALMDAKBNOP $.

  $( The last symbol of a singleton word is its symbol.  (Contributed by AV,
     22-Oct-2018.) $)
  lsws1 $p |- ( A e. V -> ( lastS ` <" A "> ) = A ) $=
    ( wcel cs1 clsw cfv cc0 cword chash wceq s1cl s1len lsw1 sylancl s1fv eqtrd
    c1 ) ABCZADZEFZGSFZARSBHCSIFQJTUAJABKALBSMNABOP $.

  ${
    $d x A $.  $d x W $.
    $( A word of length 1 is a singleton word.  (Contributed by Stefan O'Rear,
       23-Aug-2015.)  (Proof shortened by AV, 1-May-2020.) $)
    eqs1 $p |- ( ( W e. Word A /\ ( # ` W ) = 1 ) -> W = <" ( W ` 0 ) "> ) $=
      ( vx cword wcel chash cfv c1 wceq wa cc0 cs1 cv cfzo wral simpr s1len cvv
      co fveq2 syl6eqr csn fvex s1fv eqcomd mp1i c0ex ralsn sylibr oveq2 adantl
      eqeq12d fzo01 syl6eq raleqdv mpbird wb cn 1nn fstwrdne0 mpan s1cld syldan
      eqwrd mpbir2and ) BADZEZBFGZHIZJZBKBGZLZIZVHVLFGZIZCMZBGZVPVLGZIZCKVHNSZO
      ZVJVHHVNVGVIPVKQUAVJWAVSCKUBZOZVJVKKVLGZIZWCVKREZWEVJKBUCWFWDVKVKRUDUEUFV
      SWECKUGVPKIVQVKVRWDVPKBTVPKVLTULUHUIVJVSCVTWBVJVTKHNSZWBVIVTWGIVGVHHKNUJU
      KUMUNUOUPVGVIVLVFEVMVOWAJUQVJVKAHUREVJVKAEUSHABUTVAVBBCAVLVDVCVE $.
  $}

  ${
    $d S s $.  $d W s $.
    $( A word of length 1 is a singleton word.  (Contributed by AV,
       24-Jan-2021.) $)
    wrdl1exs1 $p |- ( ( W e. Word S /\ ( # ` W ) = 1 )
                      -> E. s e. S W = <" s "> ) $=
      ( cword wcel chash cfv c1 wceq wa cc0 cs1 cv wrex eqs1 cle wbr 1le1 breq2
      mpbiri wrdsymb1 sylan2 s1eq adantl eqeq2d rspcedv mpd ) BADEZBFGZHIZJZBKB
      GZLZIZBCMZLZIZCANABOUKUQUNCULAUJUHHUIPQZULAEUJURHHPQRUIHHPSTABUAUBUKUOULI
      ZJUPUMBUSUPUMIUKUOULUCUDUEUFUG $.
  $}

  $( A word of length 1 is a singleton word consisting of the first symbol of
     the word.  (Contributed by AV, 22-Jul-2018.)  (Proof shortened by AV,
     14-Oct-2018.) $)
  wrdl1s1 $p |- ( S e. V -> ( W = <" S ">
                  <-> ( W e. Word V /\ ( # ` W ) = 1 /\ ( W ` 0 ) = S ) ) ) $=
    ( wcel cs1 wceq cword chash cfv c1 cc0 w3a s1cl s1len s1fv 3jca eleq1 fveq2
    a1i eqeq1d fveq1 3anbi123d syl5ibrcom wa eqs1 s1eq eqeq2d syl5ibcom impbid1
    3impia ) ABDZCAEZFZCBGZDZCHIZJFZKCIZAFZLZUKUTUMULUNDZULHIZJFZKULIZAFZLUKVAV
    CVEABMVCUKANSABOPUMUOVAUQVCUSVECULUNQUMUPVBJCULHRTUMURVDAKCULUATUBUCUOUQUSU
    MUOUQUDCUREZFUSUMBCUEUSVFULCURAUFUGUHUJUI $.

  $( The singleton word function is injective.  (Contributed by Mario Carneiro,
     1-Oct-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
  s111 $p |- ( ( S e. A /\ T e. A ) -> ( <" S "> = <" T "> <-> S = T ) ) $=
    ( wcel wa cs1 wceq cc0 cop csn s1val eqeqan12d cvv wb opex sneqbg mp1i eqid
    cz 0z opthg baibd mpan2 mpan adantr 3bitrd ) BADZCADZEZBFZCFZGHBIZJZHCIZJZG
    ZULUNGZBCGZUGUHUJUMUKUOBAKCAKLULMDUPUQNUIHBOULUNMPQUGUQURNZUHHSDZUGUSTUTUGE
    ZHHGZUSHRVAUQVBURHBHCSAUAUBUCUDUEUF $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Concatenations with singleton words
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The concatenation of a word with a singleton word is a word.  (Contributed
     by Alexander van der Vekens, 22-Sep-2018.) $)
  ccatws1cl $p |- ( ( W e. Word V /\ X e. V )
                   -> ( W ++ <" X "> ) e. Word V ) $=
    ( wcel cword cs1 cconcat co s1cl ccatcl sylan2 ) CADBAEZDCFZLDBMGHLDCAIABMJ
    K $.

  $( The concatenation of two singleton words is a word.  (Contributed by
     Alexander van der Vekens, 22-Sep-2018.) $)
  ccat2s1cl $p |- ( ( X e. V /\ Y e. V )
                    -> ( <" X "> ++ <" Y "> ) e. Word V ) $=
    ( wcel cs1 cword cconcat co s1cl ccatws1cl sylan ) BADBEZAFZDCADLCEGHMDBAIA
    LCJK $.

  $( The length of the concatenation of a word with a singleton word.
     (Contributed by Alexander van der Vekens, 22-Sep-2018.) $)
  ccatws1len $p |- ( ( W e. Word V /\ X e. V )
                     -> ( # ` ( W ++ <" X "> ) ) = ( ( # ` W ) + 1 ) ) $=
    ( cword wcel wa cs1 cconcat co chash cfv caddc c1 wceq ccatlen sylan2 s1len
    s1cl a1i oveq2d eqtrd ) BADZEZCAEZFZBCGZHIJKZBJKZUFJKZLIZUHMLIUDUCUFUBEUGUJ
    NCARABUFOPUEUIMUHLUIMNUECQSTUA $.

  $( The length of a word is the length of the word concatenated with a
     singleton word minus 1.  (Contributed by AV, 28-Jun-2018.)  (Proof
     shortened by AV, 1-May-2020.) $)
  wrdlenccats1lenm1 $p |- ( ( W e. Word V /\ S e. V )
                           -> ( # ` W ) = ( ( # ` ( W ++ <" S "> ) ) - 1 ) ) $=
    ( cword wcel wa cs1 cconcat co chash cfv c1 cmin caddc ccatws1len oveq1d cc
    wceq lencl nn0cnd pncan1 syl adantr eqtr2d ) CBDEZABEZFZCAGHIJKZLMICJKZLNIZ
    LMIZUIUGUHUJLMBCAOPUEUKUIRZUFUEUIQEULUEUIBCSTUIUAUBUCUD $.

  $( The length of the concatenation of two singleton words.  (Contributed by
     Alexander van der Vekens, 22-Sep-2018.) $)
  ccat2s1len $p |- ( ( X e. V /\ Y e. V )
                     -> ( # ` ( <" X "> ++ <" Y "> ) ) = 2 ) $=
    ( wcel cs1 cword cconcat co chash cfv c2 wceq s1cl wa caddc ccatlen oveq12i
    c1 s1len 1p1e2 eqtri syl6eq syl2an ) BADBEZAFZDZCEZUEDZUDUGGHIJZKLCADBAMCAM
    UFUHNUIUDIJZUGIJZOHZKAUDUGPULRROHKUJRUKROBSCSQTUAUBUC $.

  $( The concatenation of a word with two singleton words is a word.
     (Contributed by Alexander van der Vekens, 22-Sep-2018.) $)
  ccatw2s1cl $p |- ( ( W e. Word V /\ X e. V /\ Y e. V )
                     -> ( ( W ++ <" X "> ) ++ <" Y "> ) e. Word V ) $=
    ( cword wcel cs1 cconcat co ccatws1cl stoic3 ) BAEZFCAFBCGHIZLFDAFMDGHILFAB
    CJAMDJK $.

  $( The length of the concatenation of a word with two singleton words.
     (Contributed by Alexander van der Vekens, 22-Sep-2018.) $)
  ccatw2s1len $p |- ( ( W e. Word V /\ X e. V /\ Y e. V )
                     -> ( # ` ( ( W ++ <" X "> ) ++ <" Y "> ) )
                        = ( ( # ` W ) + 2 ) ) $=
    ( cword wcel w3a cs1 cconcat co chash c1 caddc c2 wceq ccatws1cl ccatws1len
    cfv stoic3 eqtrd wa oveq1d cn0 cc lencl nn0cn add1p1 3syl adantr 3adant3 )
    BAEZFZCAFZDAFZGBCHIJZDHIJKRZUOKRZLMJZBKRZNMJZULUMUOUKFUNUPUROABCPAUODQSULUM
    URUTOUNULUMUAZURUSLMJZLMJZUTVAUQVBLMABCQUBULVCUTOZUMULUSUCFUSUDFVDABUEUSUFU
    SUGUHUITUJT $.

  $( Value of a symbol in the left half of a word concatenated with a single
     symbol.  (Contributed by Alexander van der Vekens, 5-Aug-2018.) $)
  ccats1val1 $p |- ( ( W e. Word V /\ S e. V /\ I e. ( 0 ..^ ( # ` W ) ) )
                     -> ( ( W ++ <" S "> ) ` I ) = ( W ` I ) ) $=
    ( wcel cword cs1 cc0 chash cfv cfzo co cconcat wceq s1cl ccatval1 syl3an2 )
    ACEDCFZEAGZREBHDIJKLEBDSMLJBDJNACOCDSBPQ $.

  $( Value of the symbol concatenated with a word.  (Contributed by Alexander
     van der Vekens, 5-Aug-2018.)  (Proof shortened by Alexander van der
     Vekens, 14-Oct-2018.) $)
  ccats1val2 $p |- ( ( W e. Word V /\ S e. V /\ I = ( # ` W ) )
                     -> ( ( W ++ <" S "> ) ` I ) = S ) $=
    ( cword wcel chash cfv wceq w3a cs1 cconcat co cmin cc0 caddc cfzo 3ad2ant2
    c1 oveq2i simp1 wa cz lencl nn0zd elfzomin syl s1len syl6eleqr adantr eleq1
    s1cl wb adantl mpbird 3adant2 ccatval2 syl3anc oveq1 3ad2ant3 nn0cnd subidd
    3ad2ant1 eqtrd fveq2d s1fv 3eqtrd ) DCEZFZACFZBDGHZIZJZBDAKZLMHZBVKNMZVNHZO
    VNHZAVMVIVNVHFZBVKVKVNGHZPMZQMZFZVOVQIVIVJVLUAVJVIVSVLACULRVIVLWCVJVIVLUBWC
    VKWBFZVIWDVLVIVKVKVKSPMZQMZWBVIVKUCFVKWFFVIVKCDUDZUEVKUFUGWAWEVKQVTSVKPAUHT
    TUIUJVLWCWDUMVIBVKWBUKUNUOUPCDVNBUQURVMVPOVNVMVPVKVKNMZOVLVIVPWHIVJBVKVKNUS
    UTVIVJWHOIVLVIVKVIVKWGVAVBVCVDVEVJVIVRAIVLACVFRVG $.

  $( Extract the first of two concatenated singleton words.  (Contributed by
     Alexander van der Vekens, 22-Sep-2018.) $)
  ccat2s1p1 $p |- ( ( X e. V /\ Y e. V )
                    -> ( ( <" X "> ++ <" Y "> ) ` 0 ) = X ) $=
    ( wcel wa cc0 cs1 cconcat co cword chash cfzo wceq s1cl adantr adantl cn c1
    cfv s1len a1i 1nn syl6eqel lbfzo0 sylibr ccatval1 syl3anc s1fv eqtrd ) BADZ
    CADZEZFBGZCGZHISZFUMSZBULUMAJZDZUNUQDZFFUMKSZLIDZUOUPMUJURUKBANOUKUSUJCANPU
    JVAUKUJUTQDVAUJUTRQUTRMUJBTUAUBUCUTUDUEOAUMUNFUFUGUJUPBMUKBAUHOUI $.

  $( Extract the second of two concatenated singleton words.  (Contributed by
     Alexander van der Vekens, 22-Sep-2018.) $)
  ccat2s1p2 $p |- ( ( X e. V /\ Y e. V )
                    -> ( ( <" X "> ++ <" Y "> ) ` 1 ) = Y ) $=
    ( wcel c1 cs1 co chash cmin caddc cfzo wceq s1cl adantl c2 cz s1len oveq12i
    cfv cc0 wa cconcat cword adantr clt wbr 1z 2z fzolb mpbir3an 1p1e2 eleqtrri
    1lt2 eqtri a1i ccatval2 syl3anc oveq2i 1m1e0 fveq2d s1fv eqtrd ) BADZCADZUA
    ZEBFZCFZUBGSZEVFHSZIGZVGSZCVEVFAUCZDZVGVLDZEVIVIVGHSZJGZKGZDZVHVKLVCVMVDBAM
    UDVDVNVCCAMNVRVEEEOKGZVQEVSDEPDOPDEOUEUFUGUHUMEOUIUJVIEVPOKBQZVPEEJGOVIEVOE
    JVTCQRUKUNRULUOAVFVGEUPUQVDVKCLVCVDVKTVGSCVDVJTVGVJTLVDVJEEIGTVIEEIVTURUSUN
    UOUTCAVAVBNVB $.

  $( Associative law for a concatenation of a word with two singleton words.
     (Contributed by Alexander van der Vekens, 22-Sep-2018.) $)
  ccatw2s1ass $p |- ( ( W e. Word V /\ X e. V /\ Y e. V )
                      -> ( ( W ++ <" X "> ) ++ <" Y "> )
                         = ( W ++ ( <" X "> ++ <" Y "> ) ) ) $=
    ( cword wcel cs1 cconcat co wceq id s1cl ccatass syl3an ) BAEZFZPCAFCGZOFDA
    FDGZOFBQHIRHIBQRHIHIJPKCALDALABQRMN $.

  $( Obsolete theorem as of 24-Jun-2022.  Use ~ wrdlenccats1lenm1 instead.  The
     length of a word concatenated with a singleton word.  (Contributed by
     Alexander van der Vekens, 3-Oct-2018.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  ccatws1lenrevOLD $p |- ( ( W e. Word V /\ X e. V )
          -> ( ( # ` ( W ++ <" X "> ) ) = N -> ( # ` W ) = ( N - 1 ) ) ) $=
    ( cword wcel wa cs1 cconcat co chash cfv wceq c1 caddc ccatws1len eqeq1d wi
    cmin cc lencl nn0cnd pncan1 syl oveq1 sylan9req ex adantr sylbid ) CBEFZDBF
    ZGZCDHIJKLZAMCKLZNOJZAMZUNANSJZMZULUMUOABCDPQUJUPURRUKUJUPURUJUPUNUONSJZUQU
    JUNTFUSUNMUJUNBCUAUBUNUCUDUOANSUEUFUGUHUI $.

  $( The concatenation of a word with a singleton word is not the empty set.
     (Contributed by Alexander van der Vekens, 29-Sep-2018.) $)
  ccatws1n0 $p |- ( ( W e. Word V /\ X e. V ) -> ( W ++ <" X "> ) =/= (/) ) $=
    ( cword wcel wa cc0 cs1 cconcat co chash cfv clt wbr c0 wne caddc cn0 cvv
    c1 lencl nn0p1gt0 syl adantr ccatws1len breqtrrd ovex hashneq0 ax-mp sylib
    wb ) BADEZCAEZFZGBCHZIJZKLZMNZUPOPZUNGBKLZTQJZUQMULGVAMNZUMULUTREVBABUAUTUB
    UCUDABCUEUFUPSEURUSUKBUOIUGUPSUHUIUJ $.

  $( The last symbol of the concatenation of a word with a singleton word is
     the symbol of the singleton word.  (Contributed by AV, 29-Sep-2018.)
     (Proof shortened by AV, 14-Oct-2018.) $)
  ccatws1ls $p |- ( ( W e. Word V /\ X e. V )
                    -> ( ( W ++ <" X "> ) ` ( # ` W ) ) = X ) $=
    ( cword wcel chash cfv wceq cs1 cconcat co wa eqidd ccats1val2 mpd3an3 ) BA
    DEZCAEZBFGZRHRBCIJKGCHPQLRMCRABNO $.

  $( The last symbol of a word concatenated with a singleton word is the symbol
     of the singleton word.  (Contributed by AV, 6-Aug-2018.)  (Proof shortened
     by AV, 22-Oct-2018.) $)
  lswccats1 $p |- ( ( W e. Word V /\ S e. V )
                    -> ( lastS ` ( W ++ <" S "> ) ) = S ) $=
    ( cword wcel wa cs1 cconcat co clsw cfv wne wceq simpl s1cl adantl s1nz a1i
    c0 lswccatn0lsw syl3anc lsws1 eqtrd ) CBDZEZABEZFZCAGZHIJKZUHJKZAUGUEUHUDEZ
    UHSLZUIUJMUEUFNUFUKUEABOPULUGAQRCUHBTUAUFUJAMUEABUBPUC $.

  $( The last symbol of a nonempty word concatenated with its first symbol is
     the first symbol.  (Contributed by AV, 28-Jun-2018.)  (Proof shortened by
     AV, 1-May-2020.) $)
  lswccats1fst $p |- ( ( P e. Word V /\ 1 <_ ( # ` P ) )
                       -> ( lastS ` ( P ++ <" ( P ` 0 ) "> ) )
                          = ( ( P ++ <" ( P ` 0 ) "> ) ` 0 ) ) $=
    ( cword wcel c1 chash cfv cle wbr wa cc0 cs1 cconcat co clsw wceq lswccats1
    wrdsymb1 syldan cfzo simpl s1cld cn cn0 lencl elnnnn0c biimpri sylan lbfzo0
    sylibr ccatval1 syl3anc eqtr4d ) ABCZDZEAFGZHIZJZAKAGZLZMNZOGZUSKVAGZUOUQUS
    BDVBUSPBARZUSBAQSURUOUTUNDKKUPTNDZVCUSPUOUQUAURUSBVDUBURUPUCDZVEUOUPUDDZUQV
    FBAUEVFVGUQJUPUFUGUHUPUIUJBAUTKUKULUM $.

  $( Extract the symbol of the first singleton word of a word concatenated with
     this singleton word and another singleton word.  (Contributed by Alexander
     van der Vekens, 22-Sep-2018.)  (Proof shortened by AV, 1-May-2020.) $)
  ccatw2s1p1 $p |- ( ( ( W e. Word V /\ ( # ` W ) = N )
                       /\ ( X e. V /\ Y e. V ) )
                     -> ( ( ( W ++ <" X "> ) ++ <" Y "> ) ` N ) = X ) $=
    ( wcel chash cfv wceq wa cs1 cconcat cc0 cfzo ad2ant2r simpr adantl syl3anc
    co adantr cword ccatws1cl c1 caddc cn0 lencl fzonn0p1 syl eqcomd ccatws1len
    oveq2d 3eltr4d ccats1val1 simpl eqcom biimpi ccats1val2 eqtrd ) CBUAZFZCGHZ
    AIZJZDBFZEBFZJZJZACDKLSZEKLSHZAVHHZDVGVHUSFZVEAMVHGHZNSZFVIVJIUTVDVKVBVEBCD
    UBOVFVEVCVDVEPQVGVAMVAUCUDSZNSZAVMVCVAVOFZVFUTVPVBUTVAUEFVPBCUFVAUGUHTTVCAV
    AIZVFVCVAAUTVBPUITVGVLVNMNUTVDVLVNIVBVEBCDUJOUKULEABVHUMRVGUTVDVQVJDIVCUTVF
    UTVBUNTVFVDVCVDVEUNQVCVQVFVBVQUTVBVQVAAUOUPQTDABCUQRUR $.

  $( Extract the second of two single symbols concatenated with a word.
     (Contributed by Alexander van der Vekens, 22-Sep-2018.)  (Proof shortened
     by AV, 1-May-2020.) $)
  ccatw2s1p2 $p |- ( ( ( W e. Word V /\ ( # ` W ) = N )
                      /\ ( X e. V /\ Y e. V ) )
                    -> ( ( ( W ++ <" X "> ) ++ <" Y "> ) ` ( N + 1 ) ) = Y ) $=
    ( cword wcel chash cfv wa cs1 cconcat co c1 caddc ccatws1cl ad2ant2r simprr
    wceq ccatws1len oveq1 ad2antlr eqtr2d ccats1val2 syl3anc ) CBFZGZCHIZASZJZD
    BGZEBGZJZJZCDKLMZUFGZULANOMZUOHIZSUQUOEKLMIESUGUKUPUIULBCDPQUJUKULRUNURUHNO
    MZUQUGUKURUSSUIULBCDTQUIUSUQSUGUMUHANOUAUBUCEUQBUOUDUE $.

  $( Extract a symbol of a word from the concatenation of the word with two
     single symbols.  (Contributed by AV, 22-Sep-2018.)  (Revised by AV,
     13-Jan-2020.)  (Proof shortened by AV, 1-May-2020.) $)
  ccat2s1fvw $p |- ( ( ( W e. Word V /\ I e. NN0 /\ I < ( # ` W ) )
                       /\ ( X e. V /\ Y e. V ) )
                    -> ( ( ( W ++ <" X "> ) ++ <" Y "> ) ` I ) = ( W ` I ) ) $=
    ( wcel cn0 cfv clt wbr w3a wa cs1 cconcat co wceq adantl syl3anc cc0 cr cle
    cword chash simpl1 simprl simpr ccatw2s1ass fveq1d ccat2s1cl cn simp2 lencl
    cfzo 3ad2ant1 nn0ge0 wi nn0red adantr lelttr mpand 3impia elnnnn0b sylanbrc
    0red simp3 3jca elfzo0 sylibr ccatval1 eqtrd ) CBUBZFZAGFZACUCHZIJZKZDBFZEB
    FZLZLZACDMZNOEMZNOZHACWAWBNOZNOZHZACHZVTAWCWEVTVLVQVRWCWEPVLVMVOVSUDZVPVQVR
    UEVSVRVPVQVRUFQBCDEUGRUHVTVLWDVKFZASVNUMOFZWFWGPWHVSWIVPBDEUIQVTVMVNUJFZVOK
    ZWJVPWLVSVPVMWKVOVLVMVOUKVPVNGFZSVNIJZWKVLVMWMVOBCULZUNVLVMVOWNVLVMLZSAUAJZ
    VOWNVMWQVLAUOQWPSTFATFVNTFZWQVOLWNUPWPVDWPAVLVMUFUQVLWRVMVLVNWOUQURSAVNUSRU
    TVAVNVBVCVLVMVOVEVFURAVNVGVHBCWDAVIRVJ $.

  $( The first symbol of the concatenation of a word with two single symbols.
     (Contributed by Alexander van der Vekens, 22-Sep-2018.) $)
  ccat2s1fst $p |- ( ( ( W e. Word V /\ 0 < ( # ` W ) )
                       /\ ( X e. V /\ Y e. V ) )
            -> ( ( ( W ++ <" X "> ) ++ <" Y "> ) ` 0 ) = ( W ` 0 ) ) $=
    ( cword wcel cc0 cn0 chash cfv clt wbr wa cs1 cconcat co ccat2s1fvw mp3anl2
    wceq 0nn0 ) BAEFGHFGBIJKLCAFDAFMGBCNOPDNOPJGBJSTGABCDQR $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subwords
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d s b x S $.  $d s b x F $.  $d s b x L $.  $d s b x V $.  $d s b x A $.
    $d x X $.
    $( Value of a subword.  (Contributed by Stefan O'Rear, 15-Aug-2015.) $)
    swrdval $p |- ( ( S e. V /\ F e. ZZ /\ L e. ZZ ) ->
        ( S substr <. F , L >. ) = if ( ( F ..^ L ) C_ dom S ,
          ( x e. ( 0 ..^ ( L - F ) ) |-> ( S ` ( x + F ) ) ) , (/) ) ) $=
      ( vs vb wcel cz cvv cv c1st cfv c2nd cfzo co cc0 cmin c0 wceq w3a cop cxp
      cdm wss caddc cmpt cif csubstr cmpt2 df-substr a1i wa simprl fveq2 adantl
      op1stg 3adant1 sylan9eqr op2ndg simp2 simp3 oveq12d simp1 sseq12d fveq12d
      dmeqd oveq2d mpteq12dv ifbieq1d syl3anc elex 3ad2ant1 ovex mptex 0ex ifex
      opelxpi ovmpt2d ) BEHZCIHZDIHZUAZFGBCDUBZJIIUCZGKZLMZWFNMZOPZFKZUDZUEZAQW
      HWGRPZOPZAKZWGUFPZWJMZUGZSUHZCDOPZBUDZUEZAQDCRPZOPZWOCUFPZBMZUGZSUHZUIJUI
      FGJWEWSUJTWCAFGUKULWCWJBTZWFWDTZUMZUMXIWGCTZWHDTZWSXHTWCXIXJUNXKWCWGWDLMZ
      CXJWGXNTXIWFWDLUOUPWAWBXNCTVTCDIIUQURUSXKWCWHWDNMZDXJWHXOTXIWFWDNUOUPWAWB
      XODTVTCDIIUTURUSXIXLXMUAZWLXBWRXGSXPWIWTWKXAXPWGCWHDOXIXLXMVAZXIXLXMVBZVC
      XPWJBXIXLXMVDZVGVEXPAWNWQXDXFXPWMXCQOXPWHDWGCRXRXQVCVHXPWPXEWJBXSXPWGCWOU
      FXQVHVFVIVJVKVTWABJHWBBEVLVMWAWBWDWEHVTCDIIVRURXHJHWCXBXGSAXDXFQXCOVNVOVP
      VQULVS $.

    $( A zero length substring.  (Contributed by Stefan O'Rear,
       27-Aug-2015.) $)
    swrd00 $p |- ( S substr <. X , X >. ) = (/) $=
      ( vx vs vb cop csubstr cdm wcel co c0 wceq cvv cz cxp cfzo cc0 cfv cmpt
      cv wa opelxp w3a wss cmin cif swrdval fzo0 0ss eqsstri iftruei zcn subidd
      caddc oveq2d 3ad2ant2 syl6eq mpteq1d mpt0 syl5eq eqtrd 3expb sylan2b c1st
      sylbi c2nd df-substr ovex mptex ifex dmmpt2 eleq2s wn df-ov ndmfv pm2.61i
      0ex ) ABBFZFZGHZIZAVRGJZKLZWCVSMNNOZOZVTVSWEIAMIZVRWDIZUAWCAVRMWDUBWGWFBN
      IZWHUAWCBBNNUBWFWHWHWCWFWHWHUCZWBBBPJZAHZUDZCQBBUEJZPJZCTZBUNJARZSZKUFZKC
      ABBMUGWIWRWQKWLWQKWJKWKBUHWKUIUJUKWIWQCKWPSKWICWNKWPWIWNQQPJZKWHWFWNWSLWH
      WHWMQQPWHBBULUMUOUPQUHUQURCWPUSUQUTVAVBVCVEDEMWDETZVDRZWTVFRZPJDTZHUDZCQX
      BXAUEJZPJZWOXAUNJXCRZSZKUFGCDEVGXDXHKCXFXGQXEPVHVIVQVJVKVLWAVMWBVSGRKAVRG
      VNVSGVOUTVP $.

    $( Closure of the subword extractor.  (Contributed by Stefan O'Rear,
       16-Aug-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
    swrdcl $p |- ( S e. Word A -> ( S substr <. F , L >. ) e. Word A ) $=
      ( vx vs vb wcel csubstr co c0 cz wa cv cfv cfzo cdm wss cc0 cmin cword n0
      cop eleq1 wne wex cxp cvv c1st c2nd caddc cmpt df-substr elmpt2cl2 opelxp
      cif sylib exlimiv sylbi w3a swrdval wf chash wrdf 3ad2ant1 ad2antrr simpr
      simplr simpll3 simpll2 fzoaddel2 syl3anc sseldd wceq fdm eleqtrd ffvelrnd
      syl eqid fmptd iswrdi wn wrd0 a1i ifclda eqeltrd 3expb sylan2 pm2.61ne )
      BAUAZHZBCDUCZIJZWJHZKWJHZWMKWMKWJUDWMKUEZWKCLHZDLHZMZWNWPENZWMHZEUFWSEWMU
      BXAWSEXAWLLLUGZHWSFGUHXBGNZUIOZXCUJOZPJFNZQRESXEXDTJPJWTXDUKJXFOULKUPBWLI
      WTEFGUMUNCDLLUOUQURUSWKWQWRWNWKWQWRUTZWMCDPJZBQZRZESDCTJZPJZWTCUKJZBOZULZ
      KUPWJEBCDWJVAXGXJXOKWJXGXJMZXLAXOVBXOWJHXPEXLXNAXOXPWTXLHZMZSBVCOPJZAXMBX
      GXSABVBZXJXQWKWQXTWRABVDVEVFZXRXMXIXSXRXHXIXMXGXJXQVHXRXQWRWQXMXHHXPXQVGW
      KWQWRXJXQVIWKWQWRXJXQVJWTDCVKVLVMXRXTXIXSVNYAXSABVOVRVPVQXOVSVTAXKXOWAVRW
      OXGXJWBMAWCZWDWEWFWGWHWOWKYBWDWI $.

    $( Value of the subword extractor in its intended domain.  (Contributed by
       Stefan O'Rear, 15-Aug-2015.)  (Proof shortened by AV, 2-May-2020.) $)
    swrdval2 $p |- ( ( S e. Word A /\ F e. ( 0 ... L ) /\
          L e. ( 0 ... ( # ` S ) ) ) -> ( S substr <. F , L >. ) =
          ( x e. ( 0 ..^ ( L - F ) ) |-> ( S ` ( x + F ) ) ) ) $=
      ( wcel cc0 cfz co cfv cfzo wss c0 wceq elfzelz 3ad2ant2 3ad2ant3 cuz syl
      cz cword chash w3a cop csubstr cdm cmin cv caddc cmpt cif swrdval syl3anc
      simp1 elfzuz fzoss1 elfzuz3 fzoss2 sstrd wrddm 3ad2ant1 sseqtr4d iftrued
      eqtrd ) CBUAZFZDGEHIFZEGCUBJZHIFZUCZCDEUDUEIZDEKIZCUFZLZAGEDUGIKIAUHDUIIC
      JUJZMUKZVOVJVFDTFZETFZVKVPNVFVGVIUNVGVFVQVIDGEOPVIVFVRVGEGVHOQACDEVEULUMV
      JVNVOMVJVLGVHKIZVMVJVLGEKIZVSVJDGRJFZVLVTLVGVFWAVIDGEUOPDGEUPSVJVHERJFZVT
      VSLVIVFWBVGEGVHUQQEGVHURSUSVFVGVMVSNVIBCUTVAVBVCVD $.

    $( Value of the subword extractor for left-anchored subwords.  (Contributed
       by Stefan O'Rear, 24-Aug-2015.) $)
    swrd0val $p |- ( ( S e. Word A /\ L e. ( 0 ... ( # ` S ) ) ) ->
        ( S substr <. 0 , L >. ) = ( S |` ( 0 ..^ L ) ) ) $=
      ( vx cword wcel cc0 chash cfv cfz cmin cfzo cmpt adantl zcnd wceq cuz syl
      co wa cv caddc cop csubstr cres cz elfzelz subid1d oveq2d mpteq1d addid1d
      elfzoelz fveq2d mpteq2dva eqtrd simpl eluzfz1 simpr swrdval2 syl3anc wrdf
      elfzuz wf adantr wss elfzuz3 fzoss2 feqresmpt 3eqtr4d ) BAEFZCGBHIZJSFZTZ
      DGCGKSZLSZDUAZGUBSZBIZMZDGCLSZVPBIZMZBGCUCUDSZBVTUEVMVSDVTVRMWBVMDVOVTVRV
      MVNCGLVMCVMCVLCUFFVJCGVKUGNOUHUIUJVMDVTVRWAVPVTFZVRWAPVMWDVQVPBWDVPWDVPVP
      GCULOUKUMNUNUOVMVJGGCJSFZVLWCVSPVJVLUPVMCGQIFZWEVLWFVJCGVKVBNGCUQRVJVLURD
      ABGCUSUTVMDGVKLSZAVTBVJWGABVCVLABVAVDVMVKCQIFZVTWGVEVLWHVJCGVKVFNCGVKVGRV
      HVI $.

    $( Length of a left-anchored subword.  (Contributed by Stefan O'Rear,
       24-Aug-2015.) $)
    swrd0len $p |- ( ( S e. Word A /\ L e. ( 0 ... ( # ` S ) ) ) ->
        ( # ` ( S substr <. 0 , L >. ) ) = L ) $=
      ( cword wcel cc0 chash cfv cfz co wa cop csubstr cfzo swrd0val fveq2d wfn
      cres wceq syl wss cuz elfzuz3 fzoss2 fnssres syl2an hashfn elfznn0 adantl
      wrdfn cn0 hashfzo0 3eqtrd ) BADEZCFBGHZIJEZKZBFCLMJZGHBFCNJZRZGHZUSGHZCUQ
      URUTGABCOPUQUTUSQZVAVBSUNBFUONJZQUSVDUAZVCUPABUJUPUOCUBHEVECFUOUCCFUOUDTV
      DUSBUEUFUSUTUGTUQCUKEZVBCSUPVFUNCUOUHUICULTUM $.

    $( Length of an extracted subword.  (Contributed by Stefan O'Rear,
       16-Aug-2015.) $)
    swrdlen $p |- ( ( S e. Word A /\ F e. ( 0 ... L ) /\
          L e. ( 0 ... ( # ` S ) ) ) ->
        ( # ` ( S substr <. F , L >. ) ) = ( L - F ) ) $=
      ( vx cword wcel cc0 cfz chash cfv w3a cop csubstr cmin cfzo wfn wceq syl
      co caddc cmpt fvex eqid fnmpti swrdval2 fneq1d mpbiri hashfn cn0 fznn0sub
      cv 3ad2ant2 hashfzo0 eqtrd ) BAFGZCHDITGZDHBJKITGZLZBCDMNTZJKZHDCOTZPTZJK
      ZVBUSUTVCQZVAVDRUSVEEVCEULCUATZBKZUBZVCQEVCVGVHVFBUCVHUDUEUSVCUTVHEABCDUF
      UGUHVCUTUISUSVBUJGZVDVBRUQUPVIURCHDUKUMVBUNSUO $.

    $( A symbol in an extracted subword, indexed using the subword's indices.
       (Contributed by Stefan O'Rear, 16-Aug-2015.) $)
    swrdfv $p |- ( ( ( S e. Word A /\ F e. ( 0 ... L ) /\
            L e. ( 0 ... ( # ` S ) ) ) /\ X e. ( 0 ..^ ( L - F ) ) ) ->
        ( ( S substr <. F , L >. ) ` X ) = ( S ` ( X + F ) ) ) $=
      ( vx cword wcel cc0 cfz co chash cfv w3a cmin cfzo cop csubstr cv caddc
      cmpt swrdval2 fveq1d wceq oveq1 fveq2d eqid fvex fvmpt sylan9eq ) BAGHCID
      JKHDIBLMJKHNZEIDCOKPKZHEBCDQRKZMEFULFSZCTKZBMZUAZMECTKZBMZUKEUMUQFABCDUBU
      CFEUPUSULUQUNEUDUOURBUNECTUEUFUQUGURBUHUIUJ $.

  $}

  $( A subword of a word is a function from a half-open range of nonnegative
     integers of the same length as the subword to the set of symbols for the
     original word.  (Contributed by AV, 13-Nov-2018.) $)
  swrdf $p |- ( ( W e. Word V /\ M e. ( 0 ... N ) /\ N e. ( 0 ... ( # ` W ) ) )
                -> ( W substr <. M , N >. ) : ( 0 ..^ ( N - M ) ) --> V ) $=
    ( cword wcel cc0 cfz co chash cfv w3a cop csubstr cfzo cmin swrdcl wrdf syl
    wf 3ad2ant1 swrdlen oveq2d feq2d mpbid ) DCEZFZAGBHIFZBGDJKHIFZLZGDABMNIZJK
    ZOIZCUKTZGBAPIZOIZCUKTUGUHUNUIUGUKUFFUNCDABQCUKRSUAUJUMUPCUKUJULUOGOCDABUBU
    CUDUE $.

  $( Value of the subword extractor as function with domain.  (Contributed by
     Alexander van der Vekens, 28-Mar-2018.)  (Proof shortened by AV,
     2-May-2020.) $)
  swrdvalfn $p |- ( ( S e. Word V /\ F e. ( 0 ... L )
                                    /\ L e. ( 0 ... ( # ` S ) ) )
                      -> ( S substr <. F , L >. ) Fn ( 0 ..^ ( L - F ) ) ) $=
    ( cword wcel cc0 cfz co chash cfv w3a cmin cfzo cop csubstr wfn swrdf ffn
    wf syl ) ADEFBGCHIFCGAJKHIFLGCBMINIZDABCOPIZTUCUBQBCDARUBDUCSUA $.

  $( A left-anchored subword of a word is a function from a half-open range of
     nonnegative integers of the same length as the subword to the set of
     symbols for the original word.  (Contributed by AV, 2-May-2020.) $)
  swrd0f $p |- ( ( W e. Word V /\ N e. ( 0 ... ( # ` W ) ) )
                 -> ( W substr <. 0 , N >. ) : ( 0 ..^ N ) --> V ) $=
    ( cword wcel cc0 chash cfv cfz co wa cfzo cop csubstr wf cmin simpl elfznn0
    cn0 adantl 0elfz syl simpr swrdf syl3anc nn0cnd subid1d eqcomd oveq2d feq2d
    wceq mpbird ) CBDEZAFCGHZIJEZKZFALJZBCFAMNJZOFAFPJZLJZBUROZUPUMFFAIJEZUOVAU
    MUOQUOVBUMUOASEVBAUNRZAUAUBTUMUOUCFABCUDUEUPUQUTBURUPAUSFLUOAUSUKUMUOUSAUOA
    UOAVCUFUGUHTUIUJUL $.

  ${
    $d x A $.  $d x S $.
    $( A word is a subword of itself.  (Contributed by Stefan O'Rear,
       16-Aug-2015.)  (Proof shortened by AV, 2-May-2020.) $)
    swrdid $p |- ( S e. Word A -> ( S substr <. 0 , ( # ` S ) >. ) = S ) $=
      ( vx cword wcel cc0 chash cfv cfzo co cop csubstr wf wfn cfz cn0 syl wceq
      lencl adantr nn0fz0 sylib swrd0f mpdan wrdfn cv wa caddc cmin simpl 0elfz
      ffn nn0cnd subid1d oveq2d eleq2d biimpar swrdfv syl31anc elfzoelz addid1d
      zcnd adantl fveq2d eqtrd eqfnfvd ) BADEZCFBGHZIJZBFVHKLJZBVGVIAVJMZVJVINV
      GVHFVHOJZEZVKVGVHPEZVMABSZVHUAUBZVHABUCUDVIAVJULQABUEVGCUFZVIEZUGZVQVJHZV
      QFUHJZBHZVQBHVSVGFVLEZVMVQFVHFUIJZIJZEZVTWBRVGVRUJVGWCVRVGVNWCVOVHUKQTVGV
      MVRVPTVGWFVRVGWEVIVQVGWDVHFIVGVHVGVHVOUMUNUOUPUQABFVHVQURUSVSWAVQBVRWAVQR
      VGVRVQVRVQVQFVHUTVBVAVCVDVEVF $.
  $}

  $( The range of a subword of a word is a subset of the set of symbols for the
     word.  (Contributed by AV, 13-Nov-2018.) $)
  swrdrn $p |- ( ( W e. Word V /\ M e. ( 0 ... N )
                   /\ N e. ( 0 ... ( # ` W ) ) )
                 -> ran ( W substr <. M , N >. ) C_ V ) $=
    ( cword wcel cc0 cfz co chash cfv w3a cmin cfzo cop csubstr crn wss swrdf
    wf frn syl ) DCEFAGBHIFBGDJKHIFLGBAMINIZCDABOPIZTUDQCRABCDSUCCUDUAUB $.

  $( A prefixing subword consisting of at least one symbol is not empty.
     (Contributed by Alexander van der Vekens, 4-Aug-2018.)  (Proof shortened
     by AV, 2-May-2020.) $)
  swrdn0 $p |- ( ( W e. Word V /\ N e. NN /\ N <_ ( # ` W ) )
                  -> ( W substr <. 0 , N >. ) =/= (/) ) $=
    ( cword wcel cn chash cfv cle wbr w3a cc0 cop csubstr wne 3ad2ant2 wceq cn0
    co c0 cfzo lbfzo0 ne0i sylbir wf wb cfz simp1 nnnn0 lencl 3ad2ant1 elfz2nn0
    simp3 syl3anbrc swrd0f syl2anc f0dom0 bicomd syl necon3bid mpbird ) CBDEZAF
    EZACGHZIJZKZCLAMNSZTOLAUASZTOZVCVBVIVEVCLVHEVIAUBVHLUCUDPVFVGTVHTVFVHBVGUEZ
    VGTQZVHTQZUFVFVBALVDUGSEZVJVBVCVEUHVFAREZVDREZVEVMVCVBVNVEAUIPVBVCVOVEBCUJU
    KVBVCVEUMAVDULUNABCUOUPVJVLVKVGVHBUQURUSUTVA $.

  ${
    $d F i $.  $d L i $.  $d V i $.  $d W i $.
    $( The value of the subword extractor is the empty set (undefined) if the
       range is not valid.  (Contributed by Alexander van der Vekens,
       16-Mar-2018.)  (Proof shortened by AV, 2-May-2020.) $)
    swrdlend $p |- ( ( W e. Word V /\ F e. ZZ /\ L e. ZZ )
                     -> ( L <_ F -> ( W substr <. F , L >. ) = (/) ) ) $=
      ( vi cword wcel cz w3a cle wbr cop csubstr co c0 wceq wa cfzo cmpt adantr
      cdm wss cc0 cmin cv caddc cfv cif swrdval simpr 3simpc fzon syl mpbid 0ss
      wb syl6eqss iftrued fzo0n biimpa 3adantl1 mpteq1d mpt0 syl6eq 3eqtrd ex )
      DCFZGZAHGZBHGZIZBAJKZDABLMNZOPVKVLQZVMABRNZDUAZUBZEUCBAUDNRNZEUEAUFNDUGZS
      ZOUHZVTOVKVMWAPVLEDABVGUITVNVQVTOVNVOOVPVNVLVOOPZVKVLUJVNVIVJQZVLWBUPVKWC
      VLVHVIVJUKTABULUMUNVPUOUQURVNVTEOVSSOVNEVROVSVIVJVLVROPZVHWCVLWDABUSUTVAV
      BEVSVCVDVEVF $.

    $( The value of the subword extractor is the empty set (undefined) if the
       range is not valid.  (Contributed by Alexander van der Vekens,
       16-Mar-2018.)  (Proof shortened by AV, 2-May-2020.) $)
    swrdnd $p |- ( ( W e. Word V /\ F e. ZZ /\ L e. ZZ )
                   -> ( ( F < 0 \/ L <_ F \/ ( # ` W ) < L )
                        -> ( W substr <. F , L >. ) = (/) ) ) $=
      ( vi cc0 clt wbr cle wcel cz co c0 wo wi wn wa cfzo adantl wb chash cword
      cfv w3o w3a cop csubstr wceq 3orcomb df-3or bitri swrdlend com12 cdm cmin
      wss cv caddc cmpt cif swrdval zre ltnled 3ad2ant2 cr lencl nn0red anim12i
      3adant2 ltnle syl orbi12d biimpcd adantr imp ianor sylibr 3simpc nn0zd 0z
      0red jctil 3ad2ant1 syl2an 3adant1 biimprcd ssfzo12bi mtbird wrddm sseq2d
      syl3anc notbid mpbird iffalsed eqtrd exp31 impcom jaoi3 orcoms sylbi ) AF
      GHZBAIHZDUAUCZBGHZUDZDCUBZJZAKJZBKJZUEZDABUFUGLZMUHZXEXAXDNZXBNZXJXLOZXEX
      AXDXBUDXNXAXBXDUIXAXDXBUJUKXBXMXOXBXOXMXJXBXLABCDULUMXMXBPZXOXMXPXJXLXMXP
      QZXJQZXKABRLZDUNZUPZEFBAUOLRLEUQAURLDUCUSZMUTZMXJXKYCUHXQEDABXFVASXRYAYBM
      XRYAPZXSFXCRLZUPZPZXRYFFAIHZBXCIHZQZXRYHPZYIPZNZYJPXQXJYMXMXJYMOXPXJXMYMX
      JXAYKXDYLXHXGXAYKTXIXHAFAVBZXHWAVCVDXJXCVEJZBVEJZQZXDYLTXGXIYQXHXGYOXIYPX
      GXCCDVFZVGBVBZVHVIXCBVJVKVLVMVNVOYHYIVPVQXRXHXIQZFKJZXCKJZQZABGHZYFYJTXJY
      TXQXGXHXIVRSXJUUCXQXGXHUUCXIXGUUBUUAXGXCYRVSVTWBWCSXQXJUUDXPXJUUDOXMXJUUD
      XPXHXIUUDXPTZXGXHAVEJYPUUEXIYNYSABVJWDWEWFSVOABFXCWGWKWHXJYDYGTZXQXGXHUUF
      XIXGYAYFXGXTYEXSCDWIWJWLWCSWMWNWOWPWQWRWSWTUM $.
  $}

  ${
    $d A x $.  $d B x $.  $d V x $.  $d W x $.
    $( Value of the subword extractor outside its intended domain.
       (Contributed by Alexander van der Vekens, 24-May-2018.) $)
    swrdnd2 $p |- ( ( W e. Word V /\ A e. ZZ /\ B e. ZZ )
                       -> ( ( B <_ A \/ ( # ` W ) <_ A \/ B <_ 0 )
                            -> ( W substr <. A , B >. ) = (/) ) ) $=
      ( vx cle wbr cfv cc0 wcel cz w3a co c0 wceq wi wn wa cfzo imp chash cword
      w3o cop csubstr wo 3orass pm2.24 cdm wss cmin caddc cmpt swrdval ad2antrr
      cv cif cn0 wf wrdf fdm syl lencl 3anass ssfzoulel sylanbr con3dimp notbid
      sseq2 syl5ibr expd exp4c sylc 3impib iffalsed eqtrd expcom com23 swrdlend
      ex jaoi com12 pm2.61d2 sylbi ) BAFGZDUAHZAFGZBIFGZUCZDCUBZJZAKJZBKJZLZDAB
      UDUEMZNOZWIWEWGWHUFZUFZWNWPPZWEWGWHUGWRWEWSWEWEQZWSPWQWEWSUHWQWNWTWPWNWQW
      TWPPWNWQRZWTWPXAWTRZWOABSMZDUIZUJZEIBAUKMSMEUPAULMDHUMZNUQZNWNWOXGOWQWTED
      ABWJUNUOXBXEXFNXAWTXEQZWNWQWTXHPZWKWLWMWQXIPZWKXDIWFSMZOZWFURJZWLWMRZXJPW
      KXKCDUSXLCDUTXKCDVAVBCDVCXLXMXNWQXIXLXMXNRZWQRZWTXHXPWTRXHXLXCXKUJZQXPXQW
      EXOXMWLWMLZWQXQWEPZXMWLWMVDXRWQXSABWFVETVFVGXLXEXQXDXKXCVIVHVJVKVLVMVNTTV
      OVPVTVQVRWAWNWEWPABCDVSWBWCWDWB $.
  $}

  ${
    $d F x $.  $d L x $.  $d b s z $.
    $( A subword of an empty set is always the empty set.  (Contributed by AV,
       31-Mar-2018.)  (Revised by AV, 20-Oct-2018.)  (Proof shortened by AV,
       2-May-2020.) $)
    swrd0 $p |- ( (/) substr <. F , L >. ) = (/) $=
      ( vx vs vb vz c0 csubstr cdm wcel co wceq cvv cz wa cfzo wss cc0 cv cfv
      cop cxp opelxp w3a cmin caddc cmpt cif swrdval clt wbr wn fzonlt0 biimprd
      con2d impcom ss0 nsyl dm0 a1i sseq2d iffalsed 0ss biimpac 3sstr4d iftrued
      mtbird cle cr wb lenlt bicomd syl2anr fzo0n bitrd mpteq1d dmeqd wral ral0
      zre dmmptg mp1i eqtrd wrel mptrel reldm0 mpbird pm2.61ian 3adant1 sylan2b
      3expb sylbi c1st c2nd df-substr ovex mptex ifex dmmpt2 eleq2s df-ov ndmfv
      0ex syl5eq pm2.61i ) GABUAZUAZHIZJZGXFHKZGLZXKXGMNNUBZUBZXHXGXMJGMJZXFXLJ
      ZOXKGXFMXLUCXOXNANJZBNJZOZXKABNNUCXNXPXQXKXNXPXQUDXJABPKZGIZQZCRBAUEKPKZC
      SAUFKGTZUGZGUHZGCGABMUIXPXQYEGLZXNABUJUKZXRYFYGXROZYAYDGYHYAXSGQZYHXSGLZY
      IXRYGYJULXRYJYGXRYGULZYJABUMZUNUOUPXSUQURYHXTGXSXTGLZYHUSUTVAVGVBYKXROZYE
      YDGYNYAYDGYNGGXSXTGGQYNGVCUTXRYKYJYLVDYMYNUSUTVEVFYNYDGLZYDIZGLZYNYPCGYCU
      GZIZGYNYDYRYNCYBGYCXRYKYBGLZXRYKBAVHUKZYTXQBVIJZAVIJZYKUUAVJXPBVTAVTUUBUU
      COUUAYKBAVKVLVMABVNVOVDVPVQYCMJZCGVRYSGLYNUUDCVSCGYCMWAWBWCYDWDYOYQVJYNCY
      BYCWEYDWFWBWGWCWHWIWCWKWJWLDEMXLESZWMTZUUEWNTZPKDSZIQZFRUUGUUFUEKZPKZFSUU
      FUFKUUHTZUGZGUHHFDEWOUUIUUMGFUUKUULRUUJPWPWQXCWRWSWTXIULXJXGHTGGXFHXAXGHX
      BXDXE $.
  $}

  $( Length of a right-anchored subword.  (Contributed by Alexander van der
     Vekens, 5-Apr-2018.) $)
  swrdrlen $p |- ( ( W e. Word V /\ I e. ( 0 ... ( # ` W ) ) )
           -> ( # ` ( W substr <. I , ( # ` W ) >. ) ) = ( ( # ` W ) - I ) ) $=
    ( cword wcel cc0 chash cfv cfz cop csubstr cmin wceq cn0 lencl nn0fz0 sylib
    co adantr swrdlen mpd3an3 ) CBDEZAFCGHZIRZEZUCUDEZCAUCJKRGHUCALRMUBUFUEUBUC
    NEUFBCOUCPQSBCAUCTUA $.

  $( Length of a prefix of a word reduced by a single symbol, analogous to
     ~ swrd0len .  (Contributed by AV, 4-Aug-2018.)  (Proof shortened by AV,
     14-Oct-2018.) $)
  swrd0len0 $p |- ( ( W e. Word V /\ N e. NN0 /\ ( # ` W ) = ( N + 1 ) )
                  -> ( # ` ( W substr <. 0 , N >. ) ) = N ) $=
    ( cword wcel cn0 chash cfv c1 caddc co w3a cc0 cfz cop csubstr simp1 nn0fz0
    wceq biimpi wi 1nn0 elfz0add mpan2 3ad2ant2 wb oveq2 eleq2d 3ad2ant3 mpbird
    mpd swrd0len syl2anc ) CBDEZAFEZCGHZAIJKZSZLZUNAMUPNKZEZCMAOPKGHASUNUOURQUS
    VAAMUQNKZEZUOUNVCURUOAMANKEZVCUOVDARTUOIFEVDVCUAUBAIAUCUDUKUEURUNVAVCUFUOUR
    UTVBAUPUQMNUGUHUIUJBCAULUM $.

  $( The sum of the lengths of two reversed parts of a word is the length of
     the word.  (Contributed by Alexander van der Vekens, 1-Apr-2018.) $)
  addlenrevswrd $p |- ( ( W e. Word V /\ M e. ( 0 ... ( # ` W ) ) )
                       -> ( ( # ` ( W substr <. M , ( # ` W ) >. ) )
                          + ( # ` ( W substr <. 0 , M >. ) ) ) = ( # ` W ) ) $=
    ( cword cc0 chash cfv cfz co wa cop csubstr caddc swrdrlen swrd0len oveq12d
    wcel cmin cc syl2an cn0 cz wceq lencl elfzelz nn0cn zcn npcan eqtrd ) CBDQZ
    AECFGZHIQZJZCAUKKLIFGZCEAKLIFGZMIUKARIZAMIZUKUMUNUPUOAMABCNBCAOPUJUKUAQZAUB
    QZUQUKUCZULBCUDAEUKUEURUKSQASQUTUSUKUFAUGUKAUHTTUI $.

  $( The sum of the lengths of two parts of a word is the length of the word.
     (Contributed by AV, 21-Oct-2018.) $)
  addlenswrd $p |- ( ( W e. Word V /\ M e. ( 0 ... ( # ` W ) ) )
               -> ( ( # ` ( W substr <. 0 , M >. ) )
                  + ( # ` ( W substr <. M , ( # ` W ) >. ) ) ) = ( # ` W ) ) $=
    ( cword wcel cc0 chash cfv cfz co wa cop csubstr caddc wceq cc swrdcl lencl
    nn0cnd syl addcomd adantr addlenrevswrd eqtrd ) CBDZEZAFCGHZIJEZKCFALMJZGHZ
    CAUGLMJZGHZNJZULUJNJZUGUFUMUNOUHUFUJULUFUIUEEZUJPEBCFAQUOUJBUIRSTUFUKUEEZUL
    PEBCAUGQUPULBUKRSTUAUBABCUCUD $.

  $( A symbol in an left-anchored subword, indexed using the subword's indices.
     (Contributed by Alexander van der Vekens, 16-Jun-2018.) $)
  swrd0fv $p |- ( ( W e. Word V /\ L e. ( 0 ... ( # ` W ) )
                    /\ I e. ( 0 ..^ L ) ) ->
                              ( ( W substr <. 0 , L >. ) ` I ) = ( W ` I ) ) $=
    ( cword wcel cc0 chash cfv cfz co cfzo w3a cop csubstr caddc cmin wceq zcnd
    syl simp1 cn0 elfznn0 0elfz 3ad2ant2 wa elfzelz subid1 eqcomd adantl oveq2d
    simp2 eleq2d biimp3a swrdfv syl31anc elfzoelz addid1d 3ad2ant3 fveq2d eqtrd
    cc ) DCEFZBGDHIZJKFZAGBLKZFZMZADGBNOKIZAGPKZDIZADIVHVCGGBJKFZVEAGBGQKZLKZFZ
    VIVKRVCVEVGUAVEVCVLVGVEBUBFVLBVDUCBUDTUEVCVEVGULVCVEVGVOVCVEUFZVFVNAVPBVMGL
    VEBVMRZVCVEBVBFZVQVEBBGVDUGSVRVMBBUHUITUJUKUMUNCDGBAUOUPVHVJADVGVCVJARVEVGA
    VGAAGBUQSURUSUTVA $.

  $( The first symbol in a left-anchored subword.  (Contributed by Alexander
     van der Vekens, 16-Jun-2018.) $)
  swrd0fv0 $p |- ( ( W e. Word V /\ I e. ( 1 ... ( # ` W ) ) )
                           -> ( ( W substr <. 0 , I >. ) ` 0 ) = ( W ` 0 ) ) $=
    ( cword wcel c1 chash cfv cfz co wa cc0 cfzo cop csubstr wceq simpl cuz wss
    adantl 1eluzge0 fzss1 ax-mp sseli cn elfznn lbfzo0 sylibr swrd0fv syl3anc )
    CBDEZAFCGHZIJZEZKUKALULIJZEZLLAMJEZLCLANOJHLCHPUKUNQUNUPUKUMUOAFLRHEUMUOSUA
    FLULUBUCUDTUNUQUKUNAUEEUQAULUFAUGUHTLABCUIUJ $.

  $( A symbol in a word truncated by one symbol.  (Contributed by Alexander van
     der Vekens, 16-Jun-2018.) $)
  swrdtrcfv $p |- ( ( W e. Word V /\ W =/= (/)
                         /\ I e. ( 0 ..^ ( ( # ` W ) - 1 ) ) )
           -> ( ( W substr <. 0 , ( ( # ` W ) - 1 ) >. ) ` I ) = ( W ` I ) ) $=
    ( cword wcel chash cfv c1 cmin co cc0 cfz c0 wne cfzo cop csubstr cn0 syl
    wa wceq w3a cn lennncl cle wbr 1nn0 nnnn0 nnge1 elfz2nn0 syl3anbrc elfz1end
    a1i biimpi jca 3adant3 fz0fzdiffz0 swrd0fv syld3an2 ) CBDEZCFGZHIJZKVALJZEZ
    CMNZAKVBOJEZACKVBPQJGACGUAUTVEVFUBHVCEZVAHVALJEZTZVDUTVEVIVFUTVETVAUCEZVIBC
    UDVJVGVHVJHREZVAREHVAUEUFVGVKVJUGUMVAUHVAUIHVAUJUKVJVHVAULUNUOSUPVAHVAUQSAV
    BBCURUS $.

  $( The first symbol in a word truncated by one symbol.  (Contributed by
     Alexander van der Vekens, 16-Jun-2018.) $)
  swrdtrcfv0 $p |- ( ( W e. Word V /\ 2 <_ ( # ` W ) )
           -> ( ( W substr <. 0 , ( ( # ` W ) - 1 ) >. ) ` 0 ) = ( W ` 0 ) ) $=
    ( cword wcel c2 chash cfv cle wbr wa c0 wne cc0 c1 cmin co cfzo cop csubstr
    cz simpl wrdlenge2n0 cn cuz 2z a1i lencl nn0zd adantr simpr eluz2 syl3anbrc
    wceq uz2m1nn syl lbfzo0 sylibr swrdtrcfv syl3anc ) BACDZEBFGZHIZJZUTBKLMMVA
    NOPZQPDZMBMVDRSPGMBGUMUTVBUAABUBVCVDUCDZVEVCVAEUDGDZVFVCETDZVATDZVBVGVHVCUE
    UFUTVIVBUTVAABUGUHUIUTVBUJEVAUKULVAUNUOVDUPUQMABURUS $.

  $( The last symbol in a left-anchored subword.  (Contributed by Alexander van
     der Vekens, 24-Jun-2018.) $)
  swrd0fvlsw $p |- ( ( W e. Word V /\ L e. ( 1 ... ( # ` W ) ) )
          -> ( lastS ` ( W substr <. 0 , L >. ) ) = ( W ` ( L - 1 ) ) ) $=
    ( cword wcel c1 chash cfv cfz co wa cc0 cop csubstr clsw cmin swrdcl adantl
    wceq syl adantr lsw cuz wss 1eluzge0 fzss1 ax-mp sseli sylan2 oveq1d fveq2d
    swrd0len cfzo simpl cn elfznn fzo0end swrd0fv syl3anc 3eqtrd ) CBDZEZAFCGHZ
    IJZEZKZCLAMNJZOHZVGGHZFPJZVGHZAFPJZVGHZVLCHZVFVGVAEZVHVKSVBVOVEBCLAQUAVGVAU
    BTVFVJVLVGVFVIAFPVEVBALVCIJZEZVIASVDVPAFLUCHEVDVPUDUEFLVCUFUGUHZBCAULUIUJUK
    VFVBVQVLLAUMJEZVMVNSVBVEUNVEVQVBVRRVEVSVBVEAUOEVSAVCUPAUQTRVLABCURUSUT $.

  ${
    $d M i $.  $d N i $.  $d U i $.  $d V i $.  $d W i $.
    $( Two subwords of words are equal iff they have the same length and the
       same symbols at each position.  (Contributed by Alexander van der
       Vekens, 7-Aug-2018.) $)
    swrdeq $p |- ( ( ( W e. Word V /\ U e. Word V ) /\ ( M e. NN0 /\ N e. NN0 )
                   /\ ( M <_ ( # ` W ) /\ N <_ ( # ` U ) ) )
                 -> ( ( W substr <. 0 , M >. ) = ( U substr <. 0 , N >. )
             <-> ( M = N /\ A. i e. ( 0 ..^ M ) ( W ` i ) = ( U ` i ) ) ) ) $=
      ( wcel wa cn0 chash cfv cc0 co wceq cfzo wral 3ad2ant1 simpl adantr simpr
      cword cle wbr w3a cop csubstr cv wb swrdcl anim12i eqwrd syl cfz 3ad2ant2
      3ad2ant3 elfz2nn0 syl3anbrc swrd0len syl2anc adantl eqeq12d anbi1d oveq2d
      lencl raleqdv swrd0fv syl3anc oveq2 eleq2d wi 3jca ex sylbid imp ralbidva
      bitrd pm5.32da 3bitrd ) FEUAZGZAVSGZHZCIGZDIGZHZCFJKZUBUCZDAJKZUBUCZHZUDZ
      FLCUEUFMZALDUEUFMZNZWLJKZWMJKZNZBUGZWLKZWRWMKZNZBLWOOMZPZHZCDNZXCHXEWRFKZ
      WRAKZNZBLCOMZPZHWKWLVSGZWMVSGZHZWNXDUHWBWEXMWJVTXKWAXLEFLCUIEALDUIUJQWLBE
      WMUKULWKWQXEXCWKWOCWPDWKVTCLWFUMMGZWOCNZWBWEVTWJVTWARQZWKWCWFIGZWGXNWEWBW
      CWJWCWDRUNWBWEXQWJVTXQWAEFVDSQWJWBWGWEWGWIRUOCWFUPUQZEFCURZUSWKWADLWHUMMG
      ZWPDNWBWEWAWJVTWATQZWKWDWHIGZWIXTWEWBWDWJWCWDTUNWBWEYBWJWAYBVTEAVDUTQWJWB
      WIWEWGWITUODWHUPUQZEADURUSVAVBWKXEXCXJWKXEHZXCXABXIPXJYDXABXBXIYDWOCLOYDV
      TXNXOWKVTXEXPSZWKXNXEXRSZXSUSVCVEYDXAXHBXIYDWRXIGZHZWSXFWTXGYHVTXNYGWSXFN
      YDVTYGYESYDXNYGYFSYDYGTWRCEFVFVGYHWAXTWRLDOMZGZUDZWTXGNYDYGYKYDYGYJYKXEYG
      YJUHWKXEXIYIWRCDLOVHVIUTWKYJYKVJXEWKYJYKWKYJHWAXTYJWKWAYJYASWKXTYJYCSWKYJ
      TVKVLSVMVNWRDEAVFULVAVOVPVQVR $.
  $}

  $( Length of an extracted subword.  (Contributed by AV, 5-May-2020.) $)
  swrdlen2 $p |- ( ( S e. Word V /\ ( F e. NN0 /\ L e. ( ZZ>= ` F ) )
                     /\ L <_ ( # ` S ) )
                   -> ( # ` ( S substr <. F , L >. ) ) = ( L - F ) ) $=
    ( cword wcel cn0 cuz cfv chash cle wbr w3a cc0 cfz 3ad2ant2 elfz2nn0 sylibr
    co 3jca wa cop csubstr cmin wceq simp1 simpl eluznn0 eluzle adantl 3ad2ant1
    lencl simp3 swrdlen syl3anc ) ADEFZBGFZCBHIFZUAZCAJIZKLZMZUPBNCOSFZCNUTOSFZ
    ABCUBUCSJICBUDSUEUPUSVAUFVBUQCGFZBCKLZMZVCUSUPVGVAUSUQVEVFUQURUGCBUHZURVFUQ
    BCUIUJTPBCQRVBVEUTGFZVAMVDVBVEVIVAUSUPVEVAVHPUPUSVIVADAULUKUPUSVAUMTCUTQRDA
    BCUNUO $.

  $( A symbol in an extracted subword, indexed using the word's indices.
     (Contributed by AV, 5-May-2020.) $)
  swrdfv2 $p |- ( ( ( S e. Word V /\ ( F e. NN0 /\ L e. ( ZZ>= ` F ) )
                      /\ L <_ ( # ` S ) ) /\ X e. ( F ..^ L ) )
                  -> ( ( S substr <. F , L >. ) ` ( X - F ) ) = ( S ` X ) ) $=
    ( wcel cn0 cfv wa cle wbr w3a cfzo co cc0 wceq 3ad2ant2 adantr cz cc eluzle
    cword cuz chash cmin cop csubstr caddc cfz simp1 simpl adantl 3jca elfz2nn0
    eluznn0 sylibr anim1i 3adant1 wb lencl 3ad2ant1 fznn0 mpbird nn0cn eluzelcn
    pncan3 syl2an eqcomd oveq2d eleq2d biimpa eluzelz zsubcld fzosubel3 syl2anc
    syl nn0z swrdfv elfzoelz zcnd npcan syl2anr fveq2d eqtrd ) ADUBFZBGFZCBUCHF
    ZIZCAUDHZJKZLZEBCMNZFZIZEBUENZABCUFUGNHZWOBUHNZAHZEAHWNWEBOCUINFZCOWIUINFZL
    ZWOOCBUENZMNFZWPWRPWKXAWMWKWEWSWTWEWHWJUJWKWFCGFZBCJKZLZWSWHWEXFWJWHWFXDXEW
    FWGUKCBUOZWGXEWFBCUAULUMQBCUNUPWKWTXDWJIZWHWJXHWEWHXDWJXGUQURWKWIGFZWTXHUSW
    EWHXIWJDAUTVACWIVBVPVCUMRWNEBBXBUHNZMNZFZXBSFZXCWKWMXLWKWLXKEWKCXJBMWHWECXJ
    PWJWHXJCWFBTFZCTFXJCPWGBVDZBCVEBCVFVGVHQVIVJVKWKXMWMWHWEXMWJWHCBWGCSFWFBCVL
    ULWFBSFWGBVQRVMQREBXBVNVODABCWOVRVOWNWQEAWMETFXNWQEPWKWMEEBCVSVTWHWEXNWJWFX
    NWGXORQEBWAWBWCWD $.

  $( Two subwords with the same bounds are equal if the range is not valid.
     (Contributed by AV, 4-May-2020.) $)
  swrdsb0eq $p |- ( ( ( W e. Word V /\ U e. Word V )
                      /\ ( M e. NN0 /\ N e. NN0 ) /\ N <_ M )
                    -> ( W substr <. M , N >. ) = ( U substr <. M , N >. ) ) $=
    ( cword wcel wa cn0 csubstr co c0 wceq cz wi adantl swrdlend syl3anc 3impia
    nn0z cle wbr w3a cop simpll ad2antrl simplr eqtr4d ) EDFZGZAUIGZHZBIGZCIGZH
    ZCBUAUBZUCEBCUDZJKZLAUQJKZULUOUPURLMZULUOHZUJBNGZCNGZUPUTOUJUKUOUEUMVBULUNB
    TUFZUOVCULUNVCUMCTPPZBCDEQRSULUOUPUSLMZVAUKVBVCUPVFOUJUKUOUGVDVEBCDAQRSUH
    $.

  $( Two subwords with the same bounds have the same length.  (Contributed by
     AV, 4-May-2020.) $)
  swrdsbslen $p |- ( ( ( W e. Word V /\ U e. Word V )
                       /\ ( M e. NN0 /\ N e. NN0 )
                       /\ ( N <_ ( # ` W ) /\ N <_ ( # ` U ) ) )
                     -> ( # ` ( W substr <. M , N >. ) )
                        = ( # ` ( U substr <. M , N >. ) ) ) $=
    ( cle wbr wcel wa cn0 chash cfv w3a csubstr co wceq cr nn0re 3ad2ant2 cz wn
    cword cop simpr1 simpr2 simpl swrdsb0eq syl3anc fveq2d wi clt ltnle sylbird
    ltle syl2an cmin simpl1l simpl2l anim12i anim1i df-3an sylibr eluz2 simpl3l
    cuz nn0z swrdlen2 syl121anc simpl1r simpl3r eqtr4d ex syld impcom pm2.61ian
    ) CBFGZEDUBZHZAVQHZIZBJHZCJHZIZCEKLFGZCAKLFGZIZMZEBCUCZNOZKLZAWHNOZKLZPZVPW
    GIZWIWKKWNVTWCVPWIWKPVPVTWCWFUDVPVTWCWFUEVPWGUFABCDEUGUHUIWGVPUAZWMWGWOBCFG
    ZWMWCVTWOWPUJZWFWABQHZCQHZWQWBBRCRWRWSIWOBCUKGWPBCULBCUNUMUOSWGWPWMWGWPIZWJ
    CBUPOZWLWTVRWACBVELHZWDWJXAPVRVSWCWFWPUQWAWBVTWFWPURZWTBTHZCTHZWPMZXBWTXDXE
    IZWPIXFWGXGWPWCVTXGWFWAXDWBXEBVFCVFUSSUTXDXEWPVAVBBCVCVBZWDWEVTWCWPVDEBCDVG
    VHWTVSWAXBWEWLXAPVRVSWCWFWPVIXCXHWDWEVTWCWPVJABCDVGVHVKVLVMVNVO $.

  ${
    $d M i j $.  $d N i j $.  $d U i j $.  $d V i $.  $d W i j $.
    $( Two words have a common subword (starting at the same position with the
       same length) iff they have the same symbols at each position.
       (Contributed by Alexander van der Vekens, 7-Aug-2018.)  (Proof shortened
       by AV, 7-May-2020.) $)
    swrdspsleq $p |- ( ( ( W e. Word V /\ U e. Word V )
                         /\ ( M e. NN0 /\ N e. NN0 )
                         /\ ( N <_ ( # ` W ) /\ N <_ ( # ` U ) ) )
                      -> ( ( W substr <. M , N >. ) = ( U substr <. M , N >. )
                           <-> A. i e. ( M ..^ N ) ( W ` i ) = ( U ` i ) ) ) $=
      ( vj wbr wcel wa cfv co wceq cfzo wral wb 3ad2ant2 cc0 adantr cvv cle cn0
      cword chash w3a cop csubstr cv simpr1 simpr2 simpl swrdsb0eq syl3anc ral0
      wi c0 cz nn0z fzon syl2an biimpa raleqdv mpbiri ex impcom wn swrdcl eqwrd
      2thd 3ad2ant1 adantl swrdsbslen biantrurd cr nn0re clt ltnle ltle sylbird
      cmin cuz simpl1l anim12i anim1i df-3an sylibr eluz2 jca 3ad2ant3 swrdlen2
      3jca syl oveq2d caddc 0zd zsubcl syl2anr fzoshftral cc nn0cn addid2 npcan
      wsbc oveq12d ovex csb sbceqg csbfv2g csbvarg fveq2d eqtrd eqeq12d swrdfv2
      bitrd mp1i sylan simpl1r simpl3r ralbidva syld 3bitr2d pm2.61ian ) DCUAHZ
      FEUCZIZAYDIZJZCUBIZDUBIZJZDFUDKUAHZDAUDKUAHZJZUEZFCDUFZUGLZAYOUGLZMZBUHZF
      KZYSAKZMZBCDNLZOZPYCYNJZYRUUDUUEYGYJYCYRYCYGYJYMUIYCYGYJYMUJYCYNUKACDEFUL
      UMYNYCUUDYJYGYCUUDUOYMYJYCUUDYJYCJZUUDUUBBUPOUUBBUNUUFUUBBUUCUPYJYCUUCUPM
      ZYHCUQIZDUQIZYCUUGPYICURZDURZCDUSUTVAVBVCVDQVEVIYCVFZYNJZYRYPUDKZYQUDKMZG
      UHZYPKZUUPYQKZMZGRUUNNLZOZJZUVAUUDYNYRUVBPZUULYGYJUVCYMYEYPYDIYQYDIUVCYFE
      FCDVGEACDVGYPGEYQVHUTVJVKUUMUUOUVAYNUUOUULACDEFVLVKVMYNUULUVAUUDPZYNUULCD
      UAHZUVDYJYGUULUVEUOZYMYHCVNIZDVNIZUVFYICVODVOUVGUVHJUULCDVPHUVECDVQCDVRVS
      UTQYNUVEUVDYNUVEJZUVAUUSGRDCVTLZNLZOZUUDUVIUUSGUUTUVKUVIUUNUVJRNUVIYEYHDC
      WAKIZJZYKUEZUUNUVJMUVIYEUVNYKYEYFYJYMUVEWBUVIYHUVMYNYHUVEYJYGYHYMYHYIUKQS
      UVIUUHUUIUVEUEZUVMUVIUUHUUIJZUVEJUVPYNUVQUVEYJYGUVQYMYHUUHYIUUIUUJUUKWCQW
      DUUHUUIUVEWEWFCDWGWFWHZYNYKUVEYMYGYKYJYKYLUKWISWKZFCDEWJWLWMVBUVIUVLUUSGY
      SCVTLZXCZBRCWNLZUVJCWNLZNLZOZUUDYNUVLUWEPZUVEYNRUQIUVJUQIZUUHUWFYNWOYJYGU
      WGYMYIUUIUUHUWGYHUUKUUJDCWPWQQYJYGUUHYMYHUUHYIUUJSQUUSGBCRUVJWRUMSUVIUWEU
      WABUUCOUUDUVIUWABUWDUUCYNUWDUUCMZUVEYJYGUWHYMYIDWSIZCWSIZUWHYHDWTCWTUWIUW
      JJUWBCUWCDNUWJUWBCMUWICXAVKDCXBXDWQQSVBUVIUWAUUBBUUCUVIYSUUCIZJZUWAUVTYPK
      ZUVTYQKZMZUUBUVTTIZUWAUWOPUWLYSCVTXEUWPUWAGUVTUUQXFZGUVTUURXFZMUWOGUVTUUQ
      UURTXGUWPUWQUWMUWRUWNUWPUWQGUVTUUPXFZYPKUWMGUVTUUPTYPXHUWPUWSUVTYPGUVTTXI
      ZXJXKUWPUWRUWSYQKUWNGUVTUUPTYQXHUWPUWSUVTYQUWTXJXKXLXNXOUWLUWMYTUWNUUAUVI
      UVOUWKUWMYTMUVSFCDEYSXMXPUVIYFUVNYLUEUWKUWNUUAMUVIYFUVNYLYEYFYJYMUVEXQUVR
      YKYLYGYJUVEXRWKACDEYSXMXPXLXNXSXNXNXNVDXTVEYAYB $.
  $}

  $( The last symbol in a word truncated by one symbol.  (Contributed by AV,
     16-Jun-2018.)  (Proof shortened by Mario Carneiro/AV, 14-Oct-2018.) $)
  swrdtrcfvl $p |- ( ( W e. Word V /\ 2 <_ ( # ` W ) )
                       -> ( lastS ` ( W substr <. 0 , ( ( # ` W ) - 1 ) >. ) )
                          = ( W ` ( ( # ` W ) - 2 ) ) ) $=
    ( cword wcel c2 chash cfv cle wbr wa cc0 c1 cmin co cop csubstr wceq adantr
    cz syl clsw cfz cuz 2z a1i lencl nn0zd simpr syl3anbrc ige2m1fz1 swrd0fvlsw
    eluz2 syldan cc nn0cnd sub1m1 fveq2d eqtrd ) BACDZEBFGZHIZJZBKUTLMNZOPNUAGZ
    VCLMNZBGZUTEMNZBGUSVAVCLUTUBNDZVDVFQVBUTEUCGDZVHVBESDZUTSDZVAVIVJVBUDUEUSVK
    VAUSUTABUFZUGRUSVAUHEUTULUIUTUJTVCABUKUMVBVEVGBUSVEVGQZVAUSUTUNDVMUSUTVLUOU
    TUPTRUQUR $.

  $( Extract a single symbol from a word.  (Contributed by Stefan O'Rear,
     23-Aug-2015.) $)
  swrds1 $p |- ( ( W e. Word A /\ I e. ( 0 ..^ ( # ` W ) ) ) ->
      ( W substr <. I , ( I + 1 ) >. ) = <" ( W ` I ) "> ) $=
    ( cword wcel cc0 chash cfv cfzo co c1 caddc cs1 wceq cfz adantl cz cc eqtrd
    cuz wa csubstr swrdcl adantr cmin simpl elfzouz elfzoelz uzid peano2uz 3syl
    elfzuzb sylanbrc fzofzp1 swrdlen syl3anc zcnd ax-1cn pncan2 sylancl syl2anc
    cop csn 0z snidg ax-mp oveq2d fzo01 syl6eq syl5eleqr swrdfv syl31anc addid2
    eqs1 eqcomd syl fveq2d eqtr4d s1eqd ) CADZEZBFCGHZIJEZUAZCBBKLJZVBUBJZFWFHZ
    MZBCHZMWDWFVTEZWFGHZKNWFWHNWAWJWCACBWEUCUDWDWKWEBUEJZKWDWABFWEOJEZWEFWBOJEZ
    WKWLNWAWCUFZWDBFTHEZWEBTHZEZWMWCWPWABFWBUGPWDBQEZBWQEWRWCWSWABFWBUHPZBUIBBU
    JUKBFWEULUMZWCWNWAFWBBUNPZACBWEUOUPWDBREZKREWLKNWDBWTUQZURBKUSUTZSAWFVNVAWD
    WGWIWDWGFBLJZCHZWIWDWAWMWNFFWLIJZEWGXGNWOXAXBWDFFVCZXHFQEFXIEVDFQVEVFWDXHFK
    IJXIWDWLKFIXEVGVHVIVJACBWEFVKVLWDBXFCWDXCBXFNXDXCXFBBVMVOVPVQVRVSS $.

  $( Extract the last single symbol from a word.  (Contributed by Alexander van
     der Vekens, 23-Sep-2018.) $)
  swrdlsw $p |- ( ( W e. Word V /\ W =/= (/) )
                 -> ( W substr <. ( ( # ` W ) - 1 ) , ( # ` W ) >. )
                    = <" ( lastS ` W ) "> ) $=
    ( cword wcel c0 wne wa chash cfv c1 cmin co cop csubstr cs1 cc0 wceq adantr
    3syl cc caddc clsw cfzo clt wbr hashneq0 cn0 cz wi lencl nn0z elnnz fzo0end
    cn sylbir sylbird imp swrds1 syldan nn0cn ax-1cn jctir eqcomd opeq2d oveq2d
    ex npcan lsw s1eqd 3eqtr4d ) BACZDZBEFZGZBBHIZJKLZVPJUALZMZNLZVPBIZOZBVPVOM
    ZNLBUBIZOVLVMVPPVOUCLDZVSWAQVLVMWDVLVMPVOUDUEZWDBVKUFVLVOUGDZVOUHDZWEWDUIAB
    UJZVOUKWGWEWDWGWEGVOUNDWDVOULVOUMUOVFSUPUQAVPBURUSVNWBVRBNVNVOVQVPVLVOVQQZV
    MVLWFVOTDZJTDZGZWIWHWFWJWKVOUTVAVBWLVQVOVOJVGVCSRVDVEVNWCVTVLWCVTQVMBVKVHRV
    IVJ $.

  ${
    $d I i $.  $d S i $.  $d V i $.  $d W i $.
    $( Two words are equal if and only if they have the same prefix and the
       same suffix.  (Contributed by Alexander van der Vekens, 23-Sep-2018.) $)
    2swrdeqwrdeq $p |- ( ( W e. Word V /\ S e. Word V
                           /\ I e. ( 0 ..^ ( # ` W ) ) )
                  -> ( W = S <-> ( ( # ` W ) = ( # ` S )
                       /\ ( ( W substr <. 0 , I >. ) = ( S substr <. 0 , I >. )
                       /\ ( W substr <. I , ( # ` W ) >. )
                          = ( S substr <. I , ( # ` W ) >. ) ) ) ) ) $=
      ( vi wcel cc0 cfv cfzo co w3a wceq wral wa csubstr wb 3ad2ant3 adantr cle
      wbr cword chash cv cop eqwrd 3adant3 cun cfz elfzofz fzosplit syl raleqdv
      ralunb syl6bb 3simpa elfzonn0 0nn0 jctil elfzo0le breq2 adantl swrdspsleq
      cn0 mpbid syl112anc lencl 3ad2ant1 jca nn0re leidd anbi12d bitrd pm5.32da
      bicomd ) DCUAZFZAVOFZBGDUBHZIJZFZKZDALZVRAUBHZLZEUCZDHWEAHLZEVSMZNZWDDGBU
      DZOJAWIOJLZDBVRUDZOJAWKOJLZNZNVPVQWBWHPVTDECAUEUFWAWDWGWMWAWDNZWGWFEGBIJZ
      MZWFEBVRIJZMZNZWMWNWGWFEWOWQUGZMWSWNWFEVSWTWAVSWTLZWDVTVPXAVQVTBGVRUHJFXA
      BGVRUIGVRBUJUKQRULWFEWOWQUMUNWNWPWJWRWLWNVPVQNZGVCFZBVCFZNZBVRSTZBWCSTZWP
      WJPWAXBWDVPVQVTUORZWNXDXCWAXDWDVTVPXDVQBVRUPQZRUQURWAXFWDVTVPXFVQBVRUSQRZ
      WNXFXGXJWDXFXGPWAVRWCBSUTVAVDXBXEXFXGNKWJWPAEGBCDVBVNVEWNXBXDVRVCFZNZVRVR
      STZVRWCSTZWRWLPXHWAXLWDWAXDXKXIVPVQXKVTCDVFZVGVHRWAXMWDVPVQXMVTVPXKXMXOXK
      VRVRVIVJUKVGRZWNXMXNXPWDXMXNPWAVRWCVRSUTVAVDXBXLXMXNNKWLWRAEBVRCDVBVNVEVK
      VLVMVL $.
  $}

  $( Two (nonempty) words are equal if and only if they have the same prefix
     and the same single symbol suffix.  (Contributed by Alexander van der
     Vekens, 23-Sep-2018.)  (Revised by Mario Carneiro/AV, 23-Oct-2018.) $)
  2swrd1eqwrdeq $p |- ( ( W e. Word V /\ U e. Word V /\ 0 < ( # ` W ) )
                        -> ( W = U <-> ( ( # ` W ) = ( # ` U )
                               /\ ( ( W substr <. 0 , ( ( # ` W ) - 1 ) >. )
                                    = ( U substr <. 0 , ( ( # ` W ) - 1 ) >. )
                                    /\ ( lastS ` W ) = ( lastS ` U ) ) ) ) ) $=
    ( wcel cc0 chash cfv clt wbr w3a wceq c1 cmin co cop csubstr wa clsw wb syl
    cword cfzo cn wi cn0 cz lencl nn0z elnnz simplbi2 3syl fzo0end 2swrdeqwrdeq
    a1d 3imp syld3an3 cs1 c0 wne hashneq0 biimpd imdistani 3adant2 adantr breq2
    swrdlsw 3anbi3d 3adant1 syl6bi impcom oveq1 id opeq12d oveq2d eqeq1d adantl
    mpbird eqeq12d hashgt0n0 lswcl syldan s111 syl2anc bitrd anbi2d pm5.32da )
    CBUAZDZAWGDZECFGZHIZJZCAKZWJAFGZKZCEWJLMNZOZPNAWQPNKZCWPWJOZPNZAWSPNZKZQZQZ
    WOWRCRGZARGZKZQZQWHWIWKWPEWJUBNDZWMXDSWLWJUCDZXIWHWIWKXJWHWKXJUDZWIWHWJUEDW
    JUFDZXKBCUGWJUHXJXLWKWJUIUJUKUNUOWJULTAWPBCUMUPWLWOXCXHWLWOQZXBXGWRXMXBXEUQ
    ZXFUQZKZXGXMWTXNXAXOXMWHCURUSZQZWTXNKWLXRWOWHWKXRWIWHWKXQWHWKXQCWGUTVAVBVCV
    DBCVFTXMXAXOKZAWNLMNZWNOZPNZXOKZWOWLYCWOWLWHWIEWNHIZJZYCWOWKYDWHWIWJWNEHVEV
    GZYEWIAURUSZQZYCWIYDYHWHWIYDYGWIYDYGAWGUTVAVBVHBAVFTVIVJWOXSYCSWLWOXAYBXOWO
    WSYAAPWOWPXTWJWNWJWNLMVKWOVLVMVNVOVPVQVRXMXEBDZXFBDZXPXGSWLYIWOWHWKYIWIWHWK
    XQYICWGVSBCVTWAVCVDWOWLYJWOWLYEYJYFWIYDYJWHWIYDYGYJAWGVSBAVTWAVHVIVJBXEXFWB
    WCWDWEWFWD $.

  ${
    $d N y $.  $d V x $.  $d x y $.
    $( Sets of words are disjoint if each set contains extensions of distinct
       words of a fixed length.  (Contributed by AV, 29-Jul-2018.)  (Proof
       shortened by AV, 7-May-2020.) $)
    disjxwrd $p |- Disj_ y e. W { x e. Word V |
                                       ( x substr <. 0 , N >. ) = y } $=
      ( cword cv cc0 cop csubstr co invdisjrab ) ABEDFAGHCIJKL $.
  $}

  ${
    $d x A $.  $d x S $.  $d x X $.  $d x Y $.  $d x Z $.
    $( Joining two adjacent subwords makes a longer subword.  (Contributed by
       Stefan O'Rear, 20-Aug-2015.) $)
    ccatswrd $p |- ( ( S e. Word A /\ ( X e. ( 0 ... Y ) /\
        Y e. ( 0 ... Z ) /\ Z e. ( 0 ... ( # ` S ) ) ) ) ->
      ( ( S substr <. X , Y >. ) ++ ( S substr <. Y , Z >. ) ) =
        ( S substr <. X , Z >. ) ) $=
      ( wcel cc0 cfz co chash cfv wa cmin cfzo adantr syl2anc caddc wceq oveq2d
      syl3anc vx cword w3a cop csubstr cconcat wfn wf swrdcl ccatcl ffn ccatlen
      wrdf simpl simpr1 simpr2 simpr3 fzass4 biimpri swrdlen oveq12d cz elfzelz
      3syl simpld syl npncan3d eqtrd fneq2d mpbid cv wo simpr zsubcld fzospliti
      eleq2d biimpar ccatval1 simpll simplr1 swrdfv syl31anc ccatval2 fzosubel3
      simplr2 simplr3 eqeltrd oveq1d cc elfzoelz adantl subcld subadd23d nncand
      zcnd 3eqtrd fveq2d jaodan syldan eqtr4d eqfnfvd ) BAUBZFZCGDHIFZDGEHIZFZE
      GBJKZHIZFZUCZLZUAGECMIZNIZBCDUDUEIZBDEUDUEIZUFIZBCEUDUEIZXKXPGXPJKZNIZUGZ
      XPXMUGXKXPXBFZXSAXPUHXTXKXNXBFZXOXBFZYAXCYBXJABCDUIOZXCYCXJABDEUIOZAXNXOU
      JPAXPUMXSAXPUKVDXKXSXMXPXKXRXLGNXKXRXNJKZXOJKZQIZXLXKYBYCXRYHRYDYEAXNXOUL
      PXKYHDCMIZEDMIZQIZXLXKYFYIYGYJQXKXCXDDXHFZYFYIRXCXJUNZXCXDXFXIUOZXKXFXIYL
      XCXDXFXIUPZXCXDXFXIUQZXFXILZYLEDXGHIFZYLYRLYQGDEXGURUSVEPZABCDUTTZXKXCXFX
      IYGYJRYMYOYPABDEUTTVAXKDCEXKDXKXFDVBFYODGEVCVFZWOZXKCXKXDCVBFYNCGDVCVFZWO
      ZXKEXKXIEVBFYPEGXGVCVFZWOVGZVHZVHSVIVJXKXQGXQJKZNIZUGZXQXMUGXKXQXBFZUUIAX
      QUHUUJXCUUKXJABCEUIOAXQUMUUIAXQUKVDXKUUIXMXQXKUUHXLGNXKXCCXEFZXIUUHXLRYMX
      KXDXFUULYNYOXDXFLZUULDCEHIFZUULUUNLUUMGCDEURUSVEPZYPABCEUTTSVIVJXKUAVKZXM
      FZLZUUPXPKZUUPCQIZBKZUUPXQKZXKUUQUUPGYINIZFZUUPYIXLNIZFZVLZUUSUVARZUURUUQ
      YIVBFZUVGXKUUQVMZXKUVIUUQXKDCUUAUUCVNOUUPGXLYIVOPXKUVDUVHUVFXKUVDLZUUSUUP
      XNKZUVAUVKYBYCUUPGYFNIZFZUUSUVLRXKYBUVDYDOXKYCUVDYEOXKUVNUVDXKUVMUVCUUPXK
      YFYIGNYTSVPVQAXNXOUUPVRTUVKXCXDYLUVDUVLUVARXCXJUVDVSXDXFXIXCUVDVTXKYLUVDY
      SOXKUVDVMABCDUUPWAWBVHXKUVFLZUUSUUPYFMIZXOKZUVPDQIZBKZUVAUVOYBYCUUPYFYHNI
      ZFZUUSUVQRXKYBUVFYDOXKYCUVFYEOXKUWAUVFXKUVTUVEUUPXKYFYIYHXLNYTUUGVAVPVQAX
      NXOUUPWCTUVOXCXFXIUVPGYJNIZFUVQUVSRXCXJUVFVSXDXFXIXCUVFWEXDXFXIXCUVFWFUVO
      UVPUUPYIMIZUWBXKUVPUWCRUVFXKYFYIUUPMYTSZOUVOUUPYIYKNIZFZYJVBFZUWCUWBFXKUW
      FUVFXKUWEUVEUUPXKYKXLYINUUFSVPVQXKUWGUVFXKEDUUEUUAVNOUUPYIYJWDPWGABDEUVPW
      AWBUVOUVRUUTBUVOUVRUWCDQIZUUPDYIMIZQIZUUTXKUVRUWHRUVFXKUVPUWCDQUWDWHOUVOU
      UPYIDUVFUUPWIFXKUVFUUPUUPYIXLWJWOWKXKYIWIFUVFXKDCUUBUUDWLOXKDWIFUVFUUBOWM
      XKUWJUUTRUVFXKUWICUUPQXKDCUUBUUDWNSOWPWQWPWRWSUURXCUULXIUUQUVBUVARXCXJUUQ
      VSXKUULUUQUUOOXDXFXIXCUUQWFUVJABCEUUPWAWBWTXA $.
  $}

  ${
    $d k B $.  $d k S $.  $d k T $.
    $( Recover the left half of a concatenated word.  (Contributed by Mario
       Carneiro, 27-Sep-2015.) $)
    swrdccat1 $p |- ( ( S e. Word B /\ T e. Word B ) ->
      ( ( S ++ T ) substr <. 0 , ( # ` S ) >. ) = S ) $=
      ( vk wcel wa co cc0 chash cfv cfzo wceq cuz cn0 adantr syl adantl syl2anc
      lencl wfn cword cconcat cop csubstr cres cfz nn0uz syl6eleq caddc ccatlen
      ccatcl cz nn0zd uzid uzaddcl eqeltrd elfzuzb sylanbrc swrd0val wss wf ffn
      wrdf 3syl fzoss2 fnssres cv fvres ccatval1 3expa eqtrd eqfnfvd ) BAUAZEZC
      VMEZFZBCUBGZHBIJZUCUDGZVQHVRKGZUEZBVPVQVMEZVRHVQIJZUFGEZVSWALABCUKZVPVRHM
      JZEWCVRMJZEZWDVPVRNWFVNVRNEVOABSOZUGUHVPWCVRCIJZUIGZWGABCUJVPVRWGEZWJNEZW
      KWGEVPVRULEWLVPVRWIUMVRUNPVOWMVNACSQWJVRVRUORUPZVRHWCUQURAVQVRUSRVPDVTWAB
      VPVQHWCKGZTZVTWOUTZWAVTTVPWBWOAVQVAWPWEAVQVCWOAVQVBVDVPWHWQWNVRHWCVEPWOVT
      VQVFRVPVTABVAZBVTTVNWRVOABVCOVTABVBPVPDVGZVTEZFWSWAJZWSVQJZWSBJZWTXAXBLVP
      WSVTVQVHQVNVOWTXBXCLABCWSVIVJVKVLVK $.

    $( Recover the right half of a concatenated word.  (Contributed by Mario
       Carneiro, 27-Sep-2015.) $)
    swrdccat2 $p |- ( ( S e. Word B /\ T e. Word B ) ->
 ( ( S ++ T ) substr <. ( # ` S ) , ( ( # ` S ) + ( # ` T ) ) >. ) = T ) $=
      ( vk wcel wa cc0 chash cfv cfzo co wfn cfz wceq cuz cn0 adantr syl oveq2d
      caddc cword cconcat cop csubstr wf ccatcl swrdcl wrdf ffn 4syl cmin lencl
      nn0uz syl6eleq cz nn0zd adantl uzaddcl syl2anc elfzuzb sylanbrc nn0addcld
      ccatlen eleqtrrd swrdlen syl3anc nn0cnd pncan2d eqtrd fneq2d mpbid eleq2d
      uzid cv biimpar swrdfv syl31anc ccatval3 3expa eqfnfvd ) BAUAZEZCWAEZFZDG
      CHIZJKZBCUBKZBHIZWHWETKZUCUDKZCWDWJGWJHIZJKZLZWJWFLWDWGWAEZWJWAEWLAWJUEWM
      ABCUFZAWGWHWIUGAWJUHWLAWJUIUJWDWLWFWJWDWKWEGJWDWKWIWHUKKZWEWDWNWHGWIMKZEZ
      WIGWGHIZMKZEZWKWPNWOWDWHGOIZEWIWHOIZEZWRWDWHPXBWBWHPEWCABULQZUMUNWDWHXCEZ
      WEPEZXDWDWHUOEXFWDWHXEUPWHVMRWCXGWBACULUQZWEWHWHURUSWHGWIUTVAZWDWIWQWTWDW
      IXBEWIWIOIEZWIWQEWDWIPXBWDWHWEXEXHVBZUMUNWDWIUOEXJWDWIXKUPWIVMRWIGWIUTVAW
      DWSWIGMABCVCSVDZAWGWHWIVEVFWDWHWEWDWHXEVGWDWEXHVGVHZVISVJVKWDWFACUEZCWFLW
      CXNWBACUHUQWFACUIRWDDVNZWFEZFZXOWJIZXOWHTKWGIZXOCIZXQWNWRXAXOGWPJKZEZXRXS
      NWDWNXPWOQWDWRXPXIQWDXAXPXLQWDYBXPWDYAWFXOWDWPWEGJXMSVLVOAWGWHWIXOVPVQWBW
      CXPXSXTNABCXOVRVSVIVT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subwords of subwords
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Lemma for ~ swrdswrd .  (Contributed by Alexander van der Vekens,
     4-Apr-2018.) $)
  swrdswrdlem $p |- ( ( ( W e. Word V /\ N e. ( 0 ... ( # ` W ) )
                             /\ M e. ( 0 ... N ) )
                  /\ ( K e. ( 0 ... ( N - M ) ) /\ L e. ( K ... ( N - M ) ) ) )
                         -> ( W e. Word V /\ ( M + K ) e. ( 0 ... ( M + L ) )
                              /\ ( M + L ) e. ( 0 ... ( # ` W ) ) ) ) $=
    ( wcel cc0 co w3a wa cn0 cle wbr wi adantr cr ex sylbi imp cword chash cmin
    cfv cfz caddc simpl1 elfz2 elfz2nn0 nn0addcl adantrr elnn0z 0red zre adantl
    cz letr syl3anc expcom sylbir syld expd com34 impancom impcom nn0re leadd2d
    biimpa 3jca exp31 com23 3ad2ant1 3ad2ant3 com13 com12 sylibr simpr2 anim12i
    simpllr simpr simplll leaddsub2d readdcl a1dd syl2an com25 com24 3imp com15
    sylbird com35 impd exp41 3adant1 com3l ) FEUAGZDHFUBUDZUEIZGZCHDUEIGZJZAHDC
    UCIZUEIGZBAXBUEIGZKZKZWPCAUFIZHCBUFIZUEIGZXHWRGZWPWSWTXEUGXFXGLGZXHLGZXGXHM
    NZJZXIXEXAXNXDXCXAXNOZXDAUPGZXBUPGZBUPGZJZABMNZBXBMNZKZKZXCXOOZBAXBUHZXSYBY
    DXRXPYBYDOXQYBXRYDXTXRYDOYAXCXRXTXOXCALGZXBLGZAXBMNZJZXRXTXOOZOZAXBUIZYFYGY
    KYHYFXRYJXAXTYFXRKZXNWTWPXTYMXNOOZWSWTCLGZDLGZCDMNZJZYNCDUIZYOYPYNYQYOYMXTX
    NYOYMXTXNYOYMKZXTKXKXLXMYTXKXTYOYFXKXRCAUJUKPYTXTXLYMYOXTXLOZYFXRYOUUAOZYFX
    PHAMNZKZXRUUBOAULZXPXRUUCUUBXPXRKZUUCXTYOXLUUFUUCXTYOXLOZUUFUUCXTKZHBMNZUUG
    UUFHQGAQGZBQGZUUHUUIOUUFUMXPUUJXRAUNPXRUUKXPBUNZUOHABUQURZXRUUIUUGOXPXRUUIU
    UGXRUUIKBLGZUUGBULYOUUNXLCBUJUSUTRUOVAVBVCVDSTVEZTYTXTXMYTABCYMUUJYOYFUUJXR
    AVFPUOYMUUKYOXRUUKYFUULUOUOYOCQGZYMCVFZPVGVHVIVJVKVLSVMVNRVLSVNPVOVMTSVEVEX
    GXHUIVPXFXLWQLGZXHWQMNZJZXJXEXAUUTXDXCXAUUTOZXDYCXCUVAOZYEXSYBUVBXRXPYBUVBO
    XQXCXRYBUVAXCYIXRYBUVAOZOZYLYFYGUVDYHYFXRUVCXAYBYMUUTWSWTYBYMUUTOOZWPWSWTUV
    EWSYPUURDWQMNZJZWTUVEODWQUIWTUVGUVEWTYRUVGUVEOZYSYOYPUVHYQYOYMYBUVGUUTYOYMY
    BUVGUUTYTYBKZUVGKXLUURUUSUVIXLUVGYBYTXLXTYTXLOYAYTXTXLUUOVOPVEPUVIYPUURUVFV
    QUVIUVGUUSYTYBUVGUUSOZYMYOYBUVJOZYFXRYOUVKOZYFUUDXRUVLOUUEXPXRUUCUVLUUFYBYO
    UUCUVJUUFXTYAYOUUCUVJOOUUFUUCYAYOXTUVJUUFUUCXTYOYAUVJUUFUUCXTYOYAUVJOOZUUFU
    UHUUIUVMUUMXRUUIUVMOXPUVGUUIYOYAXRUUSYPUURUVFUUIYOYAXRUUSOOZOOYPYOUVFUUIUUR
    UVNYPYOUVFUUIUURUVNOOOYPYOKZUURUUIUVFUVNUVOUURUUIUVFUVNOOUVOUURKZXRUVFYAUUI
    UUSUVPXRUVFYAUUIUUSOZOOZUVPDQGZUUPKZWQQGZKZUUKUVRXRUVOUVTUURUWAYPUVSYOUUPDV
    FUUQVRWQVFVRUULUWBUUKKZYAUVFUVQUWCYAXHDMNZUVFUVQOZUWCCBDUVSUUPUWAUUKVSUWBUU
    KVTUVSUUPUWAUUKWAZWBUWCUWDUWEUWCUWDKUVFUUSUUIUWCUWDUVFUUSOZUWCXHQGZUVSUWAUW
    DUWGOUWBUUKUWHUVTUUKUWHOZUWAUUPUWIUVSUUPUUKUWHCBWCRUOPTUWFUWBUWAUUKUVTUWAVT
    PUWHUVSUWAJUWDUVFUUSXHDWQUQVBURTWDRWJVKWERWFRWGRWFWHWIUOVAVBWKWFWLWGVDSTVET
    TVIWMWGVLSVOSTWNVNRVLSWOVMTSVEVEXHWQUIVPVI $.

  ${
    $d K x y $.  $d L x y $.  $d M x y $.  $d N x y $.  $d V x y $.
    $d W x y $.
    $( A subword of a subword.  (Contributed by Alexander van der Vekens,
       4-Apr-2018.) $)
    swrdswrd $p |- ( ( W e. Word V /\ N e. ( 0 ... ( # ` W ) )
                         /\ M e. ( 0 ... N ) )
                 -> ( ( K e. ( 0 ... ( N - M ) ) /\ L e. ( K ... ( N - M ) ) )
                    -> ( ( W substr <. M , N >. ) substr <. K , L >. )
                       = ( W substr <. ( M + K ) , ( M + L ) >. ) ) ) $=
      ( vx wcel cc0 cfv cfz co w3a wa caddc wceq adantr adantl wi wbr cword cop
      vy chash cmin csubstr cfzo cmpt swrdcl 3ad2ant1 elfz0ubfz0 cuz wss elfzuz
      cv fzss1 syl impr 3ancomb biimpi swrdlen oveq2d eleqtrrd swrdval2 syl3anc
      sseld wfn fvex eqid fnmpti a1i swrdswrdlem swrdvalfn elfzelz zcn ad2antrl
      cz cc ad2antll pnpcan eqcomd expcom syl2anr syl5com imp fneq2d mpbird cvv
      3ad2ant3 simpr weq oveq1d fveq2d fvmptg sylancl elfzoelz 3anim123i add32r
      oveq1 3expa exp31 com13 impcom eqtrd ad3antrrr cn0 cle elfz2nn0 elfz2 clt
      cn elfzo0 cr nn0re zre ltaddsub bicomd nn0addcl elnn0z 0red lelttr ltletr
      wb elnnnn0b simplbi2 syld exp4b com23 expd a1d com24 sylbi mpcom impancom
      ex imp41 nn0readdcl com12 swrdfv syl2anc syl3anbrc sylbid 3adant2 3adant3
      exp41 com14 mpteq2dva fveq1d com3l mpan9 eleq2d biimpa 3eqtr4d eqfnfvd )
      FEUAZHZDIFUDJKLZHZCIDKLHZMZAIDCUELZKLZHZBAUVAKLZHZNZFCDUBUFLZABUBUFLZFCAO
      LZCBOLZUBUFLZPUUTUVFNZUVHGIBAUELZUGLZGUOZAOLZUVGJZUHZUVKUVLUVGUUOHZAIBKLH
      ZBIUVGUDJZKLZHUVHUVRPUUTUVSUVFUUPUURUVSUUSEFCDUIUJQUVFUVTUUTABUVAUKRUVLBU
      VBUWBUUTUVCUVEBUVBHUUTUVCNZUVDUVBBUWCAIULJHZUVDUVBUMUVCUWDUUTAIUVAUNRAIUV
      AUPUQVFURUVLUWAUVAIKUVLUUPUUSUURMZUWAUVAPUUTUWEUVFUUTUWEUUPUURUUSUSUTZQEF
      CDVAUQVBVCGEUVGABVDVEUVLUCUVNUVRUVKUVRUVNVGUVLGUVNUVQUVRUVPUVGVHUVRVIVJVK
      UVLUVKUVNVGUVKIUVJUVIUELZUGLZVGZUVLUUPUVIIUVJKLHUVJUUQHMZUWIABCDEFVLZFUVI
      UVJEVMUQUVLUVNUWHUVKUVLUVMUWGIUGUUTUVFUVMUWGPZUUSUUPUVFUWLSZUURUUSCVQHZUV
      FUWLCIDVNZUVEBVQHZAVQHZUWNUWLSZUVCBAUVAVNZAIUVAVNZUWNUWPUWQNZUWLUWNUXANCV
      RHZBVRHZAVRHZUWLUWNUXBUXACVOZQUWPUXCUWNUWQBVOZVPUWQUXDUWNUWPAVOZVSUXBUXCU
      XDMZUWGUVMCBAVTWAZVEWBWCWDWIWEVBWFWGUVLUCUOZUVNHZNZUXJGUVNUVPCOLZFJZUHZJZ
      UXJUVIOLZFJZUXJUVRJUXJUVKJZUXLUXPUXJAOLZCOLZFJZUXRUXLUXKUYBWHHUXPUYBPUVLU
      XKWJUYAFVHGUXJUXNUYBUVNWHUXOGUCWKZUXMUYAFUYCUVPUXTCOUVOUXJAOWSWLWMUXOVIWN
      WOUXLUYAUXQFUXKUVLUYAUXQPZUXKUXJVQHZUVLUYDUXJIUVMWPUUTUVFUYEUYDSZUUSUUPUV
      FUYFSUURUUSUWNUVFUYFUWOUVCUWNUYFSZUVEUVCUWQUYGUWTUYEUWNUWQUYDUYEUWNUWQUYD
      UYEUWNNUWQNUXJVRHZUXBUXDMZUYDUYEUWNUWQUYIUYEUYHUWNUXBUWQUXDUXJVOUXEUXGWQW
      TUYIUXQUYAUXJCAWRWAUQXAXBUQQWDWIWEWDXCWMXDUXLUXJUVRUXOUXLGUVNUVQUXNUXLUVO
      UVNHZNUWEUVPIUVAUGLHZUVQUXNPUUTUWEUVFUXKUYJUWFXEUXLUYJUYKUVLUYJUYKSZUXKUV
      FUYLUUTUVCUVEUYLUVCAXFHZUVAXFHZAUVAXGTZMUVEUYLSZAUVAXHUYMUYNUYPUYOUVEUYMU
      YNNZUYLUVEUWQUVAVQHZUWPMZABXGTZBUVAXGTZNZNUYQUYLSZBAUVAXIUYSVUBVUCUWPUWQV
      UBVUCSUYRVUBUWPVUCVUAUWPVUCSUYTUYJUWPUYQVUAUYKUYJUVOXFHZUVMXKHZUVOUVMXJTZ
      MUWPUYQVUAUYKSZSZSZUVOUVMXLVUDVUFVUIVUEVUDUWPVUFVUHUYQVUFVUDUWPNZVUGUYMUY
      NVUFVUJVUGSSUYMVUJVUFUYNVUGUYMVUJVUFUYNVUGSZSUYMVUJNZVUFUVPBXJTZVUKVULUVO
      XMHZAXMHZBXMHZVUFVUMYCVUDVUNUYMUWPUVOXNVPUYMVUOVUJAXNQUWPVUPUYMVUDBXOZVSZ
      VUNVUOVUPMVUMVUFUVOABXPXQVEVULVUMUYNVUAUYKVULVUMNUYNNVUANUVPXFHZUVAXKHZUV
      PUVAXJTZUYKVULVUSVUMUYNVUAVUJUYMVUSVUDUYMVUSSUWPVUDUYMVUSUVOAXRZYOQXCXEVU
      LVUMUYNVUAVUTVUJUYMVUMUYNVUAVUTSZSZSZVUDUYMUWPVVEVUSVUDUYMNZUWPVVESZVVBVU
      SUVPVQHZIUVPXGTZNVVFVVGSZUVPXSVVHVVIVVJVVHUWPVVFVVIVVEVVHUWPVVFVVIVVESZSV
      VHUWPNZVVKVVFVVLVVIVUMVVDVVLVVIVUMNZIBXJTZVVDVVLIXMHZUVPXMHZVUPVVMVVNSVVL
      XTVVHVVPUWPUVPXOQUWPVUPVVHVUQRIUVPBYAVEUWPVVNVVDSVVHUWPUYNVVNVVCUWPUYNVVN
      VUAVUTUWPUYNNZVVNVUANZIUVAXJTZVUTVVQVVOVUPUVAXMHZVVRVVSSVVQXTUWPVUPUYNVUQ
      QUYNVVTUWPUVAXNZRIBUVAYBVEUYNVVSVUTSUWPVUTUYNVVSUVAYDYERYFYGYHRYFYIYJYOYK
      WEYLYMYNXCYPVULVUMUYNVUAVVAVULUYNVUMVUAVVASVULUYNVUMVUAVVAVULUYNNVVPVUPVV
      TVUMVUANVVASVULVVPUYNVUJUYMVVPVUDUYMVVPSUWPVUDUYMVVPUVOAYQYOQXCQVULVUPUYN
      VURQUYNVVTVULVWARUVPBUVAYBVEYGYHYPUVPUVAXLUUAUUEUUBYOYKWEXBYNUUCYLUUFRYRW
      IWEYLYRUUDYLWERQWEEFCDUVPYSYTUUGUUHUXLUWJUXJUWHHZUXSUXRPUVLUWJUXKUWKQUVLU
      XKVWBUVLUVNUWHUXJUVLUVMUWGIUGUUTUVFUWLUUSUUPUWMUURUUSUWNUVFUWLUWOUVCUWQUV
      EUWRUWTUVEUWPUWQUWRSUWSUWNUWPUWQUWLUWNUWPUWQUWLUWNUWPNUWQNUXHUWLUWNUWPUWQ
      UXHUWNUXBUWPUXCUWQUXDUXEUXFUXGWQWTUXIUQXAUUIUQUUJWDWIWEVBUUKUULEFUVIUVJUX
      JYSYTUUMUUNXDYO $.
  $}

  $( A prefix of a subword.  (Contributed by AV, 2-Apr-2018.)  (Proof shortened
     by AV, 21-Oct-2018.) $)
  swrd0swrd $p |- ( ( W e. Word V /\ N e. ( 0 ... ( # ` W ) )
                        /\ M e. ( 0 ... N ) ) -> ( L e. ( 0 ... ( N - M ) )
                    -> ( ( W substr <. M , N >. ) substr <. 0 , L >. )
                       = ( W substr <. M , ( M + L ) >. ) ) ) $=
    ( cword wcel cc0 chash cfv cfz co cop csubstr caddc wceq cn0 3ad2ant3 syl
    wa w3a cmin fznn0sub 0elfz anim1i swrdswrd imp syldan elfznn0 nn0cn addid1d
    adantr opeq1d oveq2d eqtrd ex ) EDFGZCHEIJKLGZBHCKLGZUAZAHCBUBLZKLZGZEBCMNL
    HAMNLZEBBAOLZMZNLZPUTVCTZVDEBHOLZVEMZNLZVGUTVCHVBGZVCTZVDVKPZUTVLVCUTVAQGZV
    LUSUQVOURBHCUCRVAUDSUEUTVMVNHABCDEUFUGUHVHVJVFENVHVIBVEUTVIBPZVCUSUQVPURUSB
    QGZVPBCUIVQBBUJUKSRULUMUNUOUP $.

  $( A subword of a prefix.  (Contributed by Alexander van der Vekens,
     6-Apr-2018.) $)
  swrdswrd0 $p |- ( ( W e. Word V /\ N e. ( 0 ... ( # ` W ) ) )
                      -> ( ( K e. ( 0 ... N ) /\ L e. ( K ... N ) )
                           -> ( ( W substr <. 0 , N >. ) substr <. K , L >. )
                                = ( W substr <. K , L >. ) ) ) $=
    ( wcel cc0 cfz co wa cop csubstr wceq caddc syl adantl adantr oveq2d eleq2d
    elfzelz cword chash cfv w3a cmin simpl simpr cn0 elfznn0 0elfz 3jca subid1d
    cz zcn eqcomd anbi12d biimpa swrdswrd sylc cc zcnd addid2d opeq12d eqtrd ex
    ) EDUAFZCGEUBUCZHIFZJZAGCHIZFZBACHIZFZJZEGCKLIABKZLIZEVOLIZMVIVNJZVPEGANIZG
    BNIZKZLIZVQVRVFVHGVJFZUDZAGCGUEIZHIZFZBAWEHIZFZJZVPWBMVIWDVNVIVFVHWCVFVHUFV
    FVHUGVHWCVFVHCUHFWCCVGUICUJOPUKQVIVNWJVIVKWGVMWIVIVJWFAVICWEGHVHCWEMZVFVHCU
    MFZWKCGVGTWLWECWLCCUNULUOOPZRSVIVLWHBVICWEAHWMRSUPUQABGCDEURUSVRWAVOELVRVSA
    VTBVRAVNAUTFZVIVKWNVMVKAAGCTVAQPVBVRBVNBUTFZVIVMWOVKVMBBACTVAPPVBVCRVDVE $.

  $( A prefix of a prefix.  (Contributed by Alexander van der Vekens,
     7-Apr-2018.) $)
  swrd0swrd0 $p |- ( ( W e. Word V /\ N e. ( 0 ... ( # ` W ) )
       /\ L e. ( 0 ... N ) ) -> ( ( W substr <. 0 , N >. ) substr <. 0 , L >. )
                                = ( W substr <. 0 , L >. ) ) $=
    ( cword wcel cc0 chash cfv cfz co w3a cop csubstr wceq 3simpa elfznn0 0elfz
    wa cn0 syl 3ad2ant2 simp3 jca swrdswrd0 sylc ) DCEFZBGDHIZJKFZAGBJKZFZLZUGU
    ISGUJFZUKSDGBMNKGAMZNKDUNNKOUGUIUKPULUMUKUIUGUMUKUIBTFUMBUHQBRUAUBUGUIUKUCU
    DGABCDUEUF $.

  $( A prefix of a prefix with the same length is the prefix.  (Contributed by
     AV, 5-Apr-2018.)  (Proof shortened by AV, 14-Oct-2018.) $)
  swrd0swrdid $p |- ( ( W e. Word V /\ N e. ( 0 ... ( # ` W ) ) )
                        -> ( ( W substr <. 0 , N >. ) substr <. 0 , N >. )
                           = ( W substr <. 0 , N >. ) ) $=
    ( cword wcel cc0 chash cfv cfz co cop csubstr wceq cn0 elfznn0 nn0fz0 sylib
    adantl swrd0swrd0 mpd3an3 ) CBDEZAFCGHZIJEZAFAIJEZCFAKZLJZUELJUFMUCUDUAUCAN
    EUDAUBOAPQRAABCST $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subwords and concatenations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The concatenation of two parts of a word yields the word itself.
     (Contributed by AV, 21-Oct-2018.) $)
  wrdcctswrd $p |- ( ( W e. Word V /\ M e. ( 0 ... ( # ` W ) ) )
                     -> ( ( W substr <. 0 , M >. )
                          ++ ( W substr <. M , ( # ` W ) >. ) ) = W ) $=
    ( cword wcel cc0 chash cfv cfz co wa cop csubstr cconcat wceq simpl elfznn0
    cn0 0elfz adantr syl adantl simpr lencl nn0fz0 sylib ccatswrd swrdid eqtrd
    syl13anc ) CBDEZAFCGHZIJZEZKZCFALMJCAULLMJNJZCFULLMJZCUOUKFFAIJEZUNULUMEZUP
    UQOUKUNPUNURUKUNAREURAULQASUAUBUKUNUCUKUSUNUKULREUSBCUDULUEUFTBCFAULUGUJUKU
    QCOUNBCUHTUI $.

  $( The length of two concatenated parts of a word is the length of the word.
     (Contributed by AV, 21-Oct-2018.) $)
  lencctswrd $p |- ( ( W e. Word V /\ M e. ( 0 ... ( # ` W ) ) )
                -> ( # ` ( ( W substr <. 0 , M >. )
                   ++ ( W substr <. M , ( # ` W ) >. ) ) ) = ( # ` W ) ) $=
    ( cword wcel cc0 chash cfv cfz co wa cop csubstr cconcat wrdcctswrd fveq2d
    ) CBDEAFCGHZIJEKCFALMJCAQLMJNJCGABCOP $.

  $( The length of two reversely concatenated parts of a word is the length of
     the word.  (Contributed by Alexander van der Vekens, 1-Apr-2018.) $)
  lenrevcctswrd $p |- ( ( W e. Word V /\ M e. ( 0 ... ( # ` W ) ) )
                -> ( # ` ( ( W substr <. M , ( # ` W ) >. )
                           ++ ( W substr <. 0 , M >. ) ) ) = ( # ` W ) ) $=
    ( cword wcel cc0 chash cfv cfz co cop csubstr cconcat caddc wceq swrdcl jca
    wa adantr ccatlen syl addlenrevswrd eqtrd ) CBDZEZAFCGHZIJEZRZCAUFKLJZCFAKL
    JZMJGHZUIGHUJGHNJZUFUHUIUDEZUJUDEZRZUKULOUEUOUGUEUMUNBCAUFPBCFAPQSBUIUJTUAA
    BCUBUC $.

  $( Reconstruct a nonempty word from its prefix and last symbol.  (Contributed
     by Alexander van der Vekens, 5-Aug-2018.) $)
  swrdccatwrd $p |- ( ( W e. Word V /\ W =/= (/) )
                      -> ( ( W substr <. 0 , ( ( # ` W ) - 1 ) >. )
                           ++ <" ( lastS ` W ) "> ) = W ) $=
    ( cword wcel cc0 cfv c1 co cop csubstr cs1 cconcat syl syldan oveq2d adantr
    wceq cfz cn0 biimpi c0 wne wa chash cmin clsw caddc cfzo cn lennncl fzo0end
    swrds1 nncn 1cnd npcand eqcomd lsw s1eqd 3eqtr4rd w3a nnm1nn0 0elfz cle wbr
    opeq2d 1nn0 a1i nnnn0 nnge1 elfz2nn0 syl3anbrc elfz1end fz0fzdiffz0 syl2anc
    nn0fz0 3jca ccatswrd swrdid 3eqtrd ) BACZDZBUAUBZUCZBEBUDFZGUEHZIJHZBUFFZKZ
    LHWFBWEWDIZJHZLHZBEWDIJHZBWCWHWJWFLWCBWEWEGUGHZIZJHZWEBFZKZWJWHWAWBWEEWDUHH
    DZWOWQQWCWDUIDZWRABUJZWDUKMAWEBULNWCWIWNBJWCWDWMWEWCWSWDWMQWTWSWMWDWSWDGWDU
    MWSUNUOUPMVEOWCWGWPWAWGWPQWBBVTUQPURUSOWAWBEEWERHDZWEEWDRHZDZWDXBDZUTZWKWLQ
    WCWSXEWTWSXAXCXDWSWESDXAWDVAWEVBMWSGXBDZWDGWDRHDZXCWSGSDZWDSDZGWDVCVDXFXHWS
    VFVGWDVHZWDVIGWDVJVKWSXGWDVLTWDGWDVMVNWSXIXDXJXIXDWDVOTMVPMABEWEWDVQNWAWLBQ
    WBABVRPVS $.

  $( The last symbol of a word concatenated with the subword of the word having
     length less by 1 than the word results in the word itself.  (Contributed
     by Alexander van der Vekens, 24-Oct-2018.) $)
  ccats1swrdeq $p |- ( ( W e. Word V /\ U e. Word V
                         /\ ( # ` U ) = ( ( # ` W ) + 1 ) )
                         -> ( W = ( U substr <. 0 , ( # ` W ) >. )
                              -> U = ( W ++ <" ( lastS ` U ) "> ) ) ) $=
    ( wcel chash cfv c1 co wceq cc0 cop csubstr cconcat oveq1 3ad2ant3 3ad2ant1
    cmin eqtr2d clt wbr cword caddc w3a cs1 wa adantl cn0 cc lencl nn0cn pncan1
    clsw 3syl opeq2d oveq2d oveq1d c0 wne simp2 nn0p1gt0 syl wb mpbird hashneq0
    breq2 3ad2ant2 mpbid swrdccatwrd syl2anc eqtrd adantr ex ) CBUAZDZAVMDZAEFZ
    CEFZGUBHZIZUCZCAJVQKZLHZIZACAULFUDZMHZIVTWCUEWEWBWDMHZAWCWEWFIVTCWBWDMNUFVT
    WFAIWCVTWFAJVPGQHZKZLHZWDMHZAVTWBWIWDMVTWAWHALVTVQWGJVTWGVRGQHZVQVSVNWGWKIV
    OVPVRGQNOVNVOWKVQIZVSVNVQUGDZVQUHDWLBCUIZVQUJVQUKUMPRUNUOUPVTVOAUQURZWJAIVN
    VOVSUSVTJVPSTZWOVTWPJVRSTZVNVOWQVSVNWMWQWNVQUTVAPVSVNWPWQVBVOVPVRJSVEOVCVOV
    NWPWOVBVSAVMVDVFVGBAVHVIVJVKRVL $.

  $( An ~ opth -like theorem for recovering the two halves of a concatenated
     word.  (Contributed by Mario Carneiro, 1-Oct-2015.) $)
  ccatopth $p |- ( ( ( A e. Word X /\ B e. Word X ) /\
    ( C e. Word X /\ D e. Word X ) /\ ( # ` A ) = ( # ` C ) ) ->
      ( ( A ++ B ) = ( C ++ D ) <-> ( A = C /\ B = D ) ) ) $=
    ( wcel wa chash cfv wceq cconcat co cc0 cop csubstr swrdccat1 caddc ccatlen
    syl 3eqtr3d cword oveq1 3ad2ant1 simp3 opeq2d oveq2d 3ad2ant2 eqtrd eqeq12d
    w3a syl5ib simpr simpl3 fveq2d simpl1 simpl2 opeq12d oveq12d swrdccat2 jcad
    ex oveq12 impbid1 ) AEUAZFBVDFGZCVDFDVDFGZAHIZCHIZJZUJZABKLZCDKLZJZACJZBDJZ
    GVJVMVNVOVMVKMVGNZOLZVLVPOLZJVJVNVKVLVPOUBVJVQAVRCVEVFVQAJVIEABPUCVJVRVLMVH
    NZOLZCVJVPVSVLOVJVGVHMVEVFVIUDUEUFVFVEVTCJVIECDPUGUHUIUKVJVMVOVJVMGZVKVGVGB
    HIQLZNZOLZVLVHVHDHIQLZNZOLZBDWAVKVLWCWFOVJVMULZWAVGVHWBWEVEVFVIVMUMWAVKHIZV
    LHIZWBWEWAVKVLHWHUNWAVEWIWBJVEVFVIVMUOZEABRSWAVFWJWEJVEVFVIVMUPZECDRSTUQURW
    AVEWDBJWKEABUSSWAVFWGDJWLECDUSSTVAUTACBDKVBVC $.

  $( An ~ opth -like theorem for recovering the two halves of a concatenated
     word.  (Contributed by Mario Carneiro, 1-Oct-2015.) $)
  ccatopth2 $p |- ( ( ( A e. Word X /\ B e. Word X ) /\
    ( C e. Word X /\ D e. Word X ) /\ ( # ` B ) = ( # ` D ) ) ->
      ( ( A ++ B ) = ( C ++ D ) <-> ( A = C /\ B = D ) ) ) $=
    ( wcel wa chash cfv wceq w3a cconcat co caddc ccatlen cn0 lencl syl nn0cnd
    wi cword fveq2 3ad2ant1 simp3 oveq2d eqtrd 3ad2ant2 eqeq12d simp1l addcan2d
    simp2l simp2r bitrd syl5ib ccatopth biimpd 3expia com23 3adant3 mpdd oveq12
    impbid1 ) AEUAZFZBVCFZGZCVCFZDVCFZGZBHIZDHIZJZKZABLMZCDLMZJZACJBDJGZVMVPAHI
    ZCHIZJZVQVPVNHIZVOHIZJZVMVTVNVOHUBVMWCVRVKNMZVSVKNMZJVTVMWAWDWBWEVMWAVRVJNM
    ZWDVFVIWAWFJVLEABOUCVMVJVKVRNVFVIVLUDUEUFVIVFWBWEJVLECDOUGUHVMVRVSVKVMVRVMV
    DVRPFVDVEVIVLUIEAQRSVMVSVMVGVSPFVFVGVHVLUKECQRSVMVKVMVHVKPFVFVGVHVLULEDQRSU
    JUMUNVFVIVPVTVQTTVLVFVIGVTVPVQVFVIVTVPVQTVFVIVTKVPVQABCDEUOUPUQURUSUTACBDLV
    AVB $.

  $( Concatenation of words is left-cancellative.  (Contributed by Mario
     Carneiro, 2-Oct-2015.) $)
  ccatlcan $p |- ( ( A e. Word X /\ B e. Word X /\
    C e. Word X ) -> ( ( C ++ A ) = ( C ++ B ) <-> A = B ) ) $=
    ( cword wcel w3a cconcat co wceq wa wb chash cfv eqid ccatopth mp3an3 3coml
    3impdi biantrur syl6bbr ) ADEZFZBUBFZCUBFZGCAHICBHIJZCCJZABJZKZUHUEUCUDUFUI
    LZUEUCUDUJUEUCKUEUDKCMNZUKJUJUKOCACBDPQSRUGUHCOTUA $.

  $( Concatenation of words is right-cancellative.  (Contributed by Mario
     Carneiro, 2-Oct-2015.) $)
  ccatrcan $p |- ( ( A e. Word X /\ B e. Word X /\
    C e. Word X ) -> ( ( A ++ C ) = ( B ++ C ) <-> A = B ) ) $=
    ( cword wcel w3a cconcat co wceq wa chash cfv eqid ccatopth2 mp3an3 3impdir
    wb biantru syl6bbr ) ADEZFZBUAFZCUAFZGACHIBCHIJZABJZCCJZKZUFUBUDUCUEUHRZUBU
    DKUCUDKCLMZUJJUIUJNACBCDOPQUGUFCNST $.

  $( Decompose a nonempty word by separating off the first symbol.
     (Contributed by Stefan O'Rear, 25-Aug-2015.)  (Revised by Mario Carneiro,
     1-Oct-2015.)  (Proof shortened by AV, 9-May-2020.) $)
  wrdeqs1cat $p |- ( ( W e. Word A /\ W =/= (/) ) -> W =
      ( <" ( W ` 0 ) "> ++ ( W substr <. 1 , ( # ` W ) >. ) ) ) $=
    ( cword wcel c0 wne wa cc0 c1 cop csubstr co chash cfv cconcat cs1 cfz wceq
    simpl cn0 1nn0 0elfz cfn wrdfin 1elfz0hash sylan lennncl nnnn0d cuz eluzfz2
    mp1i nn0uz eleq2s syl ccatswrd syl13anc caddc opeq2i oveq2i cfzo cn clt wbr
    0p1e1 0nn0 a1i hashgt0 elfzo0 syl3anbrc swrds1 syldan syl5eqr oveq1d swrdid
    adantr 3eqtr3rd ) BACZDZBEFZGZBHIJZKLZBIBMNZJKLZOLZBHWCJKLZHBNPZWDOLBVTVRHH
    IQLDZIHWCQLZDZWCWIDZWEWFRVRVSSITDWHVTUAIUBUKVRBUCDVSWJABUDBUEUFVTWCTDWKVTWC
    ABUGZUHWKWCHUINTHWCUJULUMUNABHIWCUOUPVTWBWGWDOVTWBBHHIUQLZJZKLZWGWNWABKWMIH
    VDURUSVRVSHHWCUTLDZWOWGRVTHTDZWCVADHWCVBVCWPWQVTVEVFWLBVQVGHWCVHVIAHBVJVKVL
    VMVRWFBRVSABVNVOVP $.

  ${
    $d x A $.  $d x B $.  $d x X $.
    $( Express a word with an extra symbol as the union of the word and the new
       value.  (Contributed by Mario Carneiro, 28-Feb-2016.) $)
    cats1un $p |- ( ( A e. Word X /\ B e. X ) ->
      ( A ++ <" B "> ) = ( A u. { <. ( # ` A ) , B >. } ) ) $=
      ( vx wcel wa cc0 chash cfv cfzo co csn cun syl wceq cn0 cvv adantl fveq2d
      wf cword cs1 cconcat cop wfn ccatws1cl wrdf caddc ccatws1len oveq2d lencl
      c1 cuz adantr nn0uz syl6eleq fzosplitsn eqtrd feq2d mpbid ffn cin c0 eqid
      fsng mpbiri sylan wn fzonel a1i disjsn sylibr syl21anc cv elun ccats1val1
      fun wo 3expa wne simpr nelne2 sylancl necomd fvunsn eqtr4d cdm fvexd elex
      fdm eleq2d mtbiri fsnunfv syl3anc simpl s1cl cn s1len 1nn lbfzo0 ccatval3
      eqeltri s1fv nn0cnd addid2d 3eqtr2rd elsni eqeq12d syl5ibrcom imp sylan2b
      jaodan eqfnfvd ) ACUAZEZBCEZFZDGAHIZJKZXRLZMZABUBZUCKZAXRBUDLZMZXQYACYCTZ
      YCYAUEXQGYCHIZJKZCYCTZYFXQYCXNEYICABUFCYCUGNXQYHYACYCXQYHGXRULUHKZJKZYAXQ
      YGYJGJCABUIUJXQXRGUMIZEYKYAOXQXRPYLXOXRPEZXPCAUKZUNZUOUPGXRUQNURUSUTYACYC
      VANXQYACBLZMZYETZYEYAUEXQXSCATZXTYPYDTZXSXTVBVCOZYRXOYSXPCAUGUNZXOYMXPYTY
      NYMXPFYTYDYDOYDVDXRBPCYDVEVFVGXQXRXSEZVHZUUAUUDXQGXRVIZVJXSXRVKVLXSXTCYPA
      YDVQVMYAYQYEVANDVNZYAEXQUUFXSEZUUFXTEZVRUUFYCIZUUFYEIZOZUUFXSXTVOXQUUGUUK
      UUHXQUUGFZUUIUUFAIZUUJXOXPUUGUUIUUMOBUUFCAVPVSUULXRUUFVTUUJUUMOUULUUFXRUU
      LUUGUUDUUFXRVTXQUUGWAUUEUUFXRXSWBWCWDAXRBUUFWENWFXQUUHUUKXQUUKUUHXRYCIZXR
      YEIZOXQUUOBGXRUHKZYCIZUUNXQXRQEBQEZXRAWGZEZVHUUOBOXQAHWHXPUURXOBCWIRXQUUT
      UUCUUEXQUUSXSXRXQYSUUSXSOUUBXSCAWJNWKWLAQQXRBWMWNXQUUQGYBIZBXQXOYBXNEZGGY
      BHIZJKEZUUQUVAOXOXPWOXPUVBXOBCWPRXQUVCWQEZUVDUVEXQUVCULWQBWRWSXBVJUVCWTVL
      CAYBGXAWNXPUVABOXOBCXCRURXQUUPXRYCXQXRXQXRYOXDXESXFUUHUUIUUNUUJUUOUUHUUFX
      RYCUUFXRXGZSUUHUUFXRYEUVFSXHXIXJXLXKXM $.
  $}

  ${
    $d n x A $.  $d m n x y z B $.  $d x ch $.  $d m n y z ph $.  $d x ta $.
    $d x th $.
    wrdind.1 $e |- ( x = (/) -> ( ph <-> ps ) ) $.
    wrdind.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    wrdind.3 $e |- ( x = ( y ++ <" z "> ) -> ( ph <-> th ) ) $.
    wrdind.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    wrdind.5 $e |- ps $.
    wrdind.6 $e |- ( ( y e. Word B /\ z e. B ) -> ( ch -> th ) ) $.
    $( Perform induction over the structure of a word.  (Contributed by Mario
       Carneiro, 27-Sep-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
    wrdind $p |- ( A e. Word B -> ta ) $=
      ( wcel wceq wi co vn vm cword cv chash cfv wral cn0 lencl cc0 caddc eqeq2
      c1 imbi1d ralbidv hasheq0 mpbiri syl6bi rgen fveq2 eqeq1d imbi12d cbvralv
      c0 wa cmin cop csubstr clsw cs1 cconcat swrdcl ad2antrl simplr cfz simprl
      wsbc cfzo fzossfz cn simprr nn0p1nn ad2antrr eqeltrd fzo0end syl swrd0len
      sseldi syl2anc oveq1d nn0cn ax-1cn pncan sylancl 3eqtrd vex sbcie syl5bbr
      cc dfsbcq rspcv syl3c wne cle wbr nnge1d wrdlenge1n0 mpbird lswcl sbceq1d
      wb oveq1 s1eq oveq2d imbi2d ovex 3imtr4g vtocl2ga mpd cfn wrdfin hashnncl
      mpbid swrdccatwrd eqcomd sbceq1a expr ralrimiva syl5bi nn0ind eqidd mp2d
      ex ) IJUCZQZFUDZUEUFZIUEUFZRZASZFYNUGZYRYRRZEYOYRUHQUUAJIUIYQUAUDZRZASZFY
      NUGYQUJRZASZFYNUGYQUBUDZRZASZFYNUGZYQUUHUMUKTZRZASZFYNUGZUUAUAUBYRUUCUJRZ
      UUEUUGFYNUUPUUDUUFAUUCUJYQULUNUOUUCUUHRZUUEUUJFYNUUQUUDUUIAUUCUUHYQULUNUO
      UUCUULRZUUEUUNFYNUURUUDUUMAUUCUULYQULUNUOUUCYRRZUUEYTFYNUUSUUDYSAUUCYRYQU
      LUNUOUUGFYNYPYNQZUUFYPVDRZAYPYNUPUVAABOKUQURUSUUKGUDZUEUFZUUHRZCSZGYNUGZU
      UHUHQZUUOUUJUVEFGYNYPUVBRZUUIUVDACUVHYQUVCUUHYPUVBUEUTVALVBVCUVGUVFUUOUVG
      UVFVEZUUNFYNUVIUUTUUMAUVIUUTUUMVEZVEZAAFYPUJYQUMVFTZVGVHTZYPVIUFZVJZVKTZV
      QZUVKAFUVMVQZUVQUVKUVMYNQZUVFUVMUEUFZUUHRZUVRUUTUVSUVIUUMJYPUJUVLVLVMZUVG
      UVFUVJVNUVKUVTUVLUULUMVFTZUUHUVKUUTUVLUJYQVOTZQUVTUVLRUVIUUTUUMVPZUVKUJYQ
      VRTZUWDUVLUJYQVSUVKYQVTQZUVLUWFQUVKYQUULVTUVIUUTUUMWAZUVGUULVTQUVFUVJUUHW
      BWCWDZYQWEWFWHJYPUVLWGWIUVKYQUULUMVFUWHWJUVKUUHWSQZUMWSQUWCUUHRUVGUWJUVFU
      VJUUHWKWCWLUUHUMWMWNWOUVEUWAUVRSGUVMYNUVBUVMRZUVDUWACUVRUWKUVCUVTUUHUVBUV
      MUEUTVACAFUVBVQZUWKUVRACFUVBGWPLWQZAFUVBUVMWTZWRVBXAXBUVKUVSUVNJQZUVRUVQS
      ZUWBUVKUUTYPVDXCZUWOUWEUVKUWQUMYQXDXEZUVKYQUWIXFUUTUWQUWRXKUVIUUMJYPXGVMX
      HJYPXIWIUWLAFUVBHUDZVJZVKTZVQZSUVRAFUVMUWTVKTZVQZSUWPGHUVMUVNYNJUWKUWLUVR
      UXBUXDUWNUWKAFUXAUXCUVBUVMUWTVKXLXJVBUWSUVNRZUXDUVQUVRUXEAFUXCUVPUXEUWTUV
      OUVMVKUWSUVNXMXNXJXOUVBYNQUWSJQVECDUWLUXBPUWMADFUXAUVBUWTVKXPMWQXQXRWIXSU
      VKYPUVPRZAUVQXKUVKUUTUWQUXFUWEUVKUWGUWQUWIUVKYPXTQZUWGUWQXKUUTUXGUVIUUMJY
      PYAVMYPYBWFYCUUTUWQVEUVPYPJYPYDYEWIAFUVPYFWFXHYGYHYMYIYJWFYOYRYKYTUUBESFI
      YNYPIRZYSUUBAEUXHYQYRYRYPIUEUTVANVBXAYL $.
  $}

  ${
    $d n w x A $.  $d m n w x y z B $.  $d m n s u w x y z X $.
    $d m n s u w x y z Y $.  $d w x ch $.  $d m n s u y z ph $.  $d x ta $.
    $d w x th $.  $d w rh $.
    wrd2ind.1 $e |- ( ( x = (/) /\ w = (/) ) -> ( ph <-> ps ) ) $.
    wrd2ind.2 $e |- ( ( x = y /\ w = u ) -> ( ph <-> ch ) ) $.
    wrd2ind.3 $e |- ( ( x = ( y ++ <" z "> ) /\ w = ( u ++ <" s "> ) )
                      -> ( ph <-> th ) ) $.
    wrd2ind.4 $e |- ( x = A -> ( rh <-> ta ) ) $.
    wrd2ind.5 $e |- ( w = B -> ( ph <-> rh ) ) $.
    wrd2ind.6 $e |- ps $.
    wrd2ind.7 $e |- ( ( ( y e. Word X /\ z e. X ) /\ ( u e. Word Y /\ s e. Y )
                        /\ ( # ` y ) = ( # ` u ) ) -> ( ch -> th ) ) $.
    $( Perform induction over the structure of two words of the same length.
       (Contributed by AV, 23-Jan-2019.) $)
    wrd2ind $p |- ( ( A e. Word X /\ B e. Word Y /\ ( # ` A ) = ( # ` B ) )
                    -> ta ) $=
      ( vn vm cword wcel chash cfv wceq w3a cv wa wi wral cn0 lencl c1 caddc co
      cc0 eqeq2 anbi2d imbi1d 2ralbidv wb eqeq1 adantl c0 hasheq0 syl5bb mpbiri
      eqcom ex syl6bi com23 impd eqeqan12d eqeq1d adantr anbi12d imbi12d ancoms
      fveq2 cmin cop csubstr clsw cs1 cconcat wsbc ad2antrl wne simprll cle wbr
      swrdcl cn eleq1 eqcoms syl5ibr impcom nnge1d wrdlenge1n0 syl mpbird lswcl
      syl2anc jca simprlr ad2antll simplr oveq1d cfz ad2antrr swrd0len oveq1 cc
      eqeltrd imp vex sbc2ie a1i simpr sbceq1d dfsbcq sbccom eqeq2d s1eq oveq2d
      imbi2d ovex cfn wrdfin hashnncl mpbid swrdccatwrd eqcomd sbceq1a rspcv
      com13 com24 imp31 sylbid cbvraldva cbvralv nn0p1nn adantlr simprl simprrl
      rgen2 jca32 cfzo fzossfz simprrr fzo0end sseldi oveq2 eleq12d nn0cn pncan
      3eqtr4d ax-1cn sylancl 3eqtrd expcom bicomi sbcbidv 3bitrd rspcimdv syl3c
      rspcdv syl6bb bitrd simpll syl3anc 3imtr4g vtocl4ga sylc eqtr2 ralrimivva
      sylan9bb expr syl5bi nn0ind 3ad2ant1 anbi1d 3ad2ant2 mpd eqidd expd com34
      ralbidv 3adant2 mp2d ) LNUFZUGZMOUFZUGZLUHUIZMUHUIZUJZUKZGULZUHUIZUXAUJZU
[encoded data, 4480 characters]
      VKUXEUWTUWTWVLVSWATWBYTVPUWKUWLXTUWNUWO $.
  $}

  ${
    $d U s $.  $d V s $.  $d W s $.
    $( There exists a symbol such that its concatenation with the subword
       obtained by deleting the last symbol of a nonempty word results in the
       word itself.  (Contributed by AV, 5-Oct-2018.)  (Proof shortened by AV,
       24-Oct-2018.) $)
    ccats1swrdeqrex $p |- ( ( W e. Word V /\ U e. Word V
                           /\ ( # ` U ) = ( ( # ` W ) + 1 ) )
                         -> ( W = ( U substr <. 0 , ( # ` W ) >. )
                              -> E. s e. V U = ( W ++ <" s "> ) ) ) $=
      ( cword wcel chash cfv c1 co wceq cc0 cs1 cconcat wa clt wbr syl wb jca
      caddc w3a cop csubstr cv wrex clsw c0 simp2 lencl nn0p1gt0 3ad2ant1 breq2
      wne cn0 3ad2ant3 mpbird hashneq0 3ad2ant2 mpbid adantr lswcl ccats1swrdeq
      imp s1eq oveq2d eqeq2d rspcev ex ) CBEZFZAVJFZAGHZCGHZIUAJZKZUBZCALVNUCUD
      JKZACDUEZMZNJZKZDBUFZVQVROZAUGHZBFZACWEMZNJZKZOWCWDWFWIWDVLAUHUNZOZWFVQWK
      VRVQVLWJVKVLVPUIVQLVMPQZWJVQWLLVOPQZVKVLWMVPVKVNUOFWMBCUJVNUKRULVPVKWLWMS
      VLVMVOLPUMUPUQVLVKWLWJSVPAVJURUSUTTVABAVBRVQVRWIABCVCVDTWBWIDWEBVSWEKZWAW
      HAWNVTWGCNVSWEVEVFVGVHRVI $.
  $}

  ${
    $d S s u $.  $d U u x $.  $d V s u x $.  $d W s u x $.  $d X s u x $.
    $( Lemma for ~ reuccats1 .  (Contributed by Alexander van der Vekens,
       5-Oct-2018.)  (Proof shortened by AV, 15-Jan-2020.) $)
    reuccats1lem $p |- ( ( ( W e. Word V /\ U e. X
                             /\ ( W ++ <" S "> ) e. X )
         /\ ( A. s e. V ( ( W ++ <" s "> ) e. X -> S = s )
              /\ A. x e. X ( x e. Word V /\ ( # ` x ) = ( ( # ` W ) + 1 ) ) ) )
            -> ( W = ( U substr <. 0 , ( # ` W ) >. )
                 -> U = ( W ++ <" S "> ) ) ) $=
      ( vu wcel cs1 cconcat co cv wceq wi chash cfv wa adantl com23 w3a wral c1
      cword caddc cc0 cop csubstr eleq1 fveq2 eqeq1d anbi12d rspcv simpl adantr
      wrex simprr ccats1swrdeqrex syl3anc weq s1eq oveq2d eqeq2 imbi12d biimpac
      eleq1d eqcoms eqeq2d biimpd imim2i com13 mpd ex sylan9r rexlimdva 3adant3
      syld impd imp ) EDUDZIZCFIZEBJZKLZFIZUAEGMZJZKLZFIZBWFNZOZGDUBZAMZVTIZWMP
      QZEPQZUCUELZNZRZAFUBZRZECUFWPUGUHLNZCWDNZOZWAWBXAXDOWEWAWBRZWLWTXDXEWTWLX
      DXEWTCVTIZCPQZWQNZRZWLXDOZWBWTXIOWAWSXIACFWMCNZWNXFWRXHWMCVTUIXKWOXGWQWMC
      PUJUKULUMSXEXIXJXEXIRZXBWLXCXLXBCEHMZJZKLZNZHDUPZWLXCOZXLWAXFXHXBXQOXEWAX
      IWAWBUNUOXIXFXEXFXHUNSXEXFXHUQCDEHURUSXEXQXROZXIWBXSWAWBXPXRHDWBXMDIZRWLX
      PXCXTWLXOFIZBXMNZOZWBXPXCOZWKYCGXMDGHUTZWIYAWJYBYEWHXOFYEWGXNEKWFXMVAVBVF
      WFXMBVCVDUMWBXPYCXCWBXPYCXCOZWBXPRYAYFXPWBYACXOFUIVEXPYAYFOWBYCYAXPXCYBYD
      YAYBXPXCYBXOWDCYBXNWCEKXNWCNXMBXMBVAVGVBVHVIVJVKSVLVMTVNTVOSUOVQTVMVQTVRV
      PVS $.
  $}

  ${
    $d V u v x y $.  $d W u v x y $.  $d X u x y $.
    reuccats1.1 $e |- F/_ v X $.
    $( A set of words having the length of a given word increased by 1 contains
       a unique word with the given word as prefix if there is a unique symbol
       which extends the given word to be a word of the set.  (Contributed by
       Alexander van der Vekens, 6-Oct-2018.)  (Revised by AV, 21-Jan-2022.) $)
    reuccats1 $p |- ( ( W e. Word V /\ A. x e. X ( x e. Word V
                                           /\ ( # ` x ) = ( ( # ` W ) + 1 ) ) )
                  -> ( E! v e. V ( W ++ <" v "> ) e. X
                       -> E! x e. X W = ( x substr <. 0 , ( # ` W ) >. ) ) ) $=
      ( vy vu cv wcel chash cfv co wceq wa wral cs1 cconcat csubstr wi cword c1
      caddc wreu cc0 eleq1w fveq2 eqeq1d anbi12d cbvralv wrex nfel2 s1eq oveq2d
      cop weq eleq1d reu8nf nfv nfral nfan nfreu wb simprl simp-4l simpr adantr
      simplrr simp-4r reuccats1lem oveq1 simpl s1cl anim12i swrdccat1 sylan9eqr
      syl32anc syl eqcomd impbid ralrimiva reu6i syl2anc rexlimd syl5bi sylan2b
      ex exp31 ) AIZCUAZJZWIKLZDKLZUBUCMZNZOZAEPDWJJZGIZWJJZWRKLZWNNZOZGEPZDBIZ
      QZRMZEJZBCUDZDWIUEWMUOZSMZNZAEUDZTWPXBAGEWIWRNZWKWSWOXAAGWJUFXMWLWTWNWIWR
      KUGUHUIUJXHXGDHIZQZRMZEJZXDXNNTHCPZOZBCUKWQXCOZXLXGXQDWIQZRMZEJBHACBXPEFU
      LBYBEFULBAUPZXFYBEYCXEYADRXDWIUMUNUQAHUPZYBXPEYDYAXODRWIXNUMUNUQURXTXSXLB
      CWQXCBWQBUSXBBGEFXBBUSUTVAXKBAEFXKBUSVBXTXDCJZXSXLXTYEOZXSOZXGXKWIXFNZVCZ
      AEPXLYFXGXRVDZYGYIAEYGWIEJZOZXKYHYLWQYKXGXRXCXKYHTWQXCYEXSYKVEYGYKVFYGXGY
      KYJVGYFXGXRYKVHWQXCYEXSYKVIGXDWICDEHVJVQYLYHXKYLYHOXJDYHYLXJXFXISMZDWIXFX
      ISVKYLWQXEWJJZOZYMDNYGYOYKYFYOXSXTWQYEYNWQXCVLXDCVMVNVGVGCDXEVOVRVPVSWGVT
      WAXKAEXFWBWCWHWDWEWF $.
  $}

  ${
    $d V u v x y $.  $d W u v x y $.  $d X u v x y $.
    $( A set of words having the length of a given word increased by 1 contains
       a unique word with the given word as prefix if there is a unique symbol
       which extends the given word to be a word of the set.  (Contributed by
       Alexander van der Vekens, 6-Oct-2018.)  (Proof shortened by AV,
       21-Jan-2022.) $)
    reuccats1v $p |- ( ( W e. Word V /\ A. x e. X ( x e. Word V
                                           /\ ( # ` x ) = ( ( # ` W ) + 1 ) ) )
                  -> ( E! v e. V ( W ++ <" v "> ) e. X
                       -> E! x e. X W = ( x substr <. 0 , ( # ` W ) >. ) ) ) $=
      ( nfcv reuccats1 ) ABCDEBEFG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subwords of concatenations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The subword of a concatenation as function.  (Contributed by Alexander van
     der Vekens, 27-May-2018.) $)
  swrdccatfn $p |- ( ( ( A e. Word V /\ B e. Word V )
          /\ ( M e. ( 0 ... N ) /\ N e. ( 0 ... ( ( # ` A ) + ( # ` B ) ) ) ) )
           -> ( ( A ++ B ) substr <. M , N >. ) Fn ( 0 ..^ ( N - M ) ) ) $=
    ( cword wcel wa cc0 cfz chash cfv caddc cconcat cop csubstr cmin cfzo wfn
    co ccatcl adantr simprl ccatlen eqcomd oveq2d eleq2d biimpcd adantl syl3anc
    wi impcom swrdvalfn ) AEFZGBUNGHZCIDJTGZDIAKLBKLMTZJTZGZHZHABNTZUNGZUPDIVAK
    LZJTZGZVACDOPTIDCQTRTSUOVBUTEABUAUBUOUPUSUCUTUOVEUSUOVEUKUPUOUSVEUOURVDDUOU
    QVCIJUOVCUQEABUDUEUFUGUHUIULVACDEUMUJ $.

  ${
    $d A k $.  $d B k $.  $d M k $.  $d N k $.  $d V k $.
    $( The subword of a concatenation of two words within the first of the
       concatenated words.  (Contributed by Alexander van der Vekens,
       28-Mar-2018.) $)
    swrdccatin1 $p |- ( ( A e. Word V /\ B e. Word V )
                        -> ( ( M e. ( 0 ... N ) /\ N e. ( 0 ... ( # ` A ) ) )
     -> ( ( A ++ B ) substr <. M , N >. ) = ( A substr <. M , N >. ) ) ) $=
      ( cfv cc0 wceq wcel wa cfz co csubstr syl adantl adantr w3a ad2antrr cn0
      wi vk chash cword cconcat cop oveq2 eleq2d elfz1eq c0 swrd00 eqtr4i opeq1
      oveq2d 3eqtr4a opeq2 eqeq12d imbi12d mpbiri syl6bi com23 impd a1d wn cmin
      cfzo wfn ccatcl simprl elfzelfzccat com12 impcom swrdvalfn syl3anc 3anass
      simplbi2 ad2antrl imp cv caddc simprr cn clt wbr elfzo0 elfz2nn0 nn0addcl
      cle expcom 3ad2ant1 sylbi lencl wne df-ne elnnne0 syl5bir nn0re ltaddsubd
      cr ltletr sylbird ex com24 3impia com13 impancom 3adant2 a1i imp32 syl5bi
      expd syl3anbrc ccatval1 swrdfv sylancom sylan 3eqtr4d eqfnfvd pm2.61i
      3jca ) AUBFZGHZAEUCZIZBYBIZJZCGDKLZIZDGXTKLZIZJZABUDLZCDUEZMLZAYLMLZHZTZT
      YAYPYEYAYGYIYOYAYIYGYOYAYIDGGKLZIZYGYOTZYAYHYQDXTGGKUFUGYRDGHZYSDGUHYTYSC
      YQIZYKCGUEZMLZAUUBMLZHZTUUACGHZUUECGUHUUFYKGGUEZMLZAUUGMLZUUCUUDUUHUIUUIY
      KGUJAGUJUKUUFUUBUUGYKMCGGULZUMUUFUUBUUGAMUUJUMUNNYTYGUUAYOUUEYTYFYQCDGGKU
      FUGYTYMUUCYNUUDYTYLUUBYKMDGCUOZUMYTYLUUBAMUUKUMUPUQURNUSUTVAVBYAVCZYEYPUU
      LYEJZYJYOUUMYJJZUAGDCVDLZVELZYMYNUUNYKYBIZYGDGYKUBFKLIZYMUUPVFUUMUUQYJYEU
      UQUULEABVGOZPUUMYGYIVHZYJUUMUURYIUUMUURTYGUUMYIUURYEYIUURTUULABDEVIOVJOVK
      ZYKCDEVLVMUUNYCYGYIQZYNUUPVFUUMYJUVBYCYJUVBTUULYDUVBYCYJYCYGYIVNVOVPVQZAC
      DEVLNUUNUAVRZUUPIZJZUVDCVSLZYKFZUVGAFZUVDYMFZUVDYNFZUVFYCYDUVGGXTVELIZUVH
      UVIHUUMYCYJUVEUULYCYDVHRUUMYDYJUVEUULYCYDVTRUVFUVGSIZXTWAIZUVGXTWBWCZUVLU
      VEUUNUVMUVEUVDSIZUUOWAIZUVDUUOWBWCZQZUUNUVMTZUVDUUOWDZUVPUVQUVTUVRUUNUVPU
      VMYGUVPUVMTZUUMYIYGCSIZDSIZCDWGWCZQZUWBCDWEZUWCUWDUWBUWEUVPUWCUVMUVDCWFZW
      HWIWJVPVJWIWJVKUUMUVNYJUVEYEUULUVNYCUULUVNTZYDYCXTSIZUWIEAWKUULXTGWLZUWJU
      VNXTGWMUVNUWJUWKXTWNVOWONPVKRUUNUVEUVOUVEUVSUUNUVOUWAUUMYGYIUVSUVOTZYGYIU
      WLTZTUUMYGUWFUWMUWGUWCUWDUWMUWEYIUWCUWLYIUWDUWJDXTWGWCZQZUWCUWLTDXTWEUVSU
      WCUWOUVOUVPUVRUWCUWOUVOTZTUVQUVPUWCUVRUWPUWOUVRUVPUWCJZUVOUWDUWJUWNUVRUWQ
      UVOTTUWDUWJJZUWQUVRUWNUVOUWRUWQUVRUWNUVOTZTUWRUWQJZUVRUVGDWBWCZUWSUWTUVDC
      DUVPUVDWRIUWRUWCUVDWPVPUWQCWRIZUWRUWCUXBUVPCWPOOUWDDWRIZUWJUWQDWPRZWQUWTU
      XAUWNUVOUWTUVGWRIZUXCXTWRIZUXAUWNJUVOTUWQUXEUWRUWQUVMUXEUWHUVGWPNOUXDUWRU
      XFUWQUWJUXFUWDXTWPOPUVGDXTWSVMXJWTXAXBXCXDXEXFXDWJVJWIWJXGXHXIVQUVGXTWDXK
      EABUVGXLVMUUNUVEUUQYGUURQUVJUVHHUVFUUQYGUURUUMUUQYJUVEUUSRUUNYGUVEUUTPUUN
      UURUVEUVAPXSEYKCDUVDXMXNUUNUVBUVEUVKUVIHUVCEACDUVDXMXOXPXQXAXAXR $.
  $}

  $( Lemma 1 for ~ swrdccatin12 .  (Contributed by Alexander van der Vekens,
     30-Mar-2018.)  (Revised by Alexander van der Vekens, 23-May-2018.) $)
  swrdccatin12lem1 $p |- ( ( L e. NN0 /\ M e. NN0 /\ N e. ZZ )
              -> ( ( K e. ( 0 ..^ ( N - M ) ) /\ -. K e. ( 0 ..^ ( L - M ) ) )
                     -> K e. ( ( L - M ) ..^ ( ( L - M ) + ( N - L ) ) ) ) ) $=
    ( cn0 wcel cz w3a cc0 cmin co cfzo wn wa caddc nn0z zsubcl syl2an cc nn0cn
    3adant3 elfzonelfzo imp sylan wb npncan3 syl3an oveq2d eleq2d adantr mpbird
    wceq zcn ex ) BEFZCEFZDGFZHZAIDCJKZLKFAIBCJKZLKFMNZAUTUTDBJKOKZLKZFZURVANVD
    AUTUSLKZFZURUTGFZVAVFUOUPVGUQUOBGFCGFVGUPBPCPBCQRUAVGVAVFUSAIUTUBUCUDURVDVF
    UEVAURVCVEAURVBUSUTLUOBSFUPCSFUQDSFVBUSULBTCTDUMBCDUFUGUHUIUJUKUN $.

  $( Lemma 1 for ~ swrdccatin12lem2 .  (Contributed by AV, 30-Mar-2018.)
     (Revised by AV, 27-May-2018.) $)
  swrdccatin12lem2a $p |- ( ( M e. ( 0 ... L ) /\ N e. ( L ... X ) )
               -> ( ( K e. ( 0 ..^ ( N - M ) ) /\ -. K e. ( 0 ..^ ( L - M ) ) )
                    -> ( K + M ) e. ( L ..^ X ) ) ) $=
    ( cc0 co wcel wa cfzo cz wi w3a cle wbr adantr sylbi syl simpr adantl caddc
    cfz cmin wn elfz2 zsubcl 3adant1 elfzonelfzo elfzoelz elfzelz simpl anim12i
    wb anim12ci jca syl5 imp impcom elfzomelpfzo cuz cfv wss simpl3 simpl2 3jca
    exp32 eluz2 sylibr fzoss2 sseld sylbid ex com23 mpcom com12 syld ) CFBUBGHZ
    DBEUBGHZIZAFDCUCGZJGHAFBCUCGZJGHUDIZAWAVTJGHZACUAGZBEJGZHZVSWAKHZWBWCLVQWGV
    RVQFKHZBKHZCKHZMZFCNOCBNOIZIZWGCFBUEZWKWGWLWIWJWGWHBCUFUGPQPVTAFWAUHRWCVSWF
    AKHZWCVSWFLAWAVTUIWOVSWCWFWOVSWCWFLWOVSIZWCWDBDJGZHZWFWPWIDKHZIZWOWJIZIZWCW
    RUMVSWOXBVQVRWOXBLZVQWMVRXCLZWNWKXDWLWIWJXDWHVRWSWIWJIZXCDBEUJXEWSWOXBXEWSW
    OIZIWTXAXEWIXFWSWIWJUKWSWOUKULXEWJXFWOWIWJSWSWOSUNUOVFUPUGPQUQURACBDUSRWPWQ
    WEWDWPEDUTVAHZWQWEVBWPWSEKHZDENOZMZXGVSXJWOVRXJVQVRWIXHWSMZBDNOZXIIZIZXJDBE
    UEXNWSXHXIWIXHWSXMVCWIXHWSXMVDXMXIXKXLXISTVEQTTDEVGVHDBEVIRVJVKVLVMVNVOVP
    $.

  $( Lemma 2 for ~ swrdccatin12lem2 .  (Contributed by AV, 30-Mar-2018.)
     (Revised by AV, 27-May-2018.) $)
  swrdccatin12lem2b $p |- ( ( M e. ( 0 ... L ) /\ N e. ( L ... X ) )
               -> ( ( K e. ( 0 ..^ ( N - M ) ) /\ -. K e. ( 0 ..^ ( L - M ) ) )
                    -> ( K - ( L - M ) ) e. ( 0 ..^ ( ( N - L ) - 0 ) ) ) ) $=
    ( cc0 co wcel wa cmin cfzo cz wi w3a cle wbr adantr sylbi caddc cc wn elfz2
    cfz zsubcl 3adant1 elfzonelfzo syl wceq elfz2nn0 nn0cn elfzelz subcl ancoms
    cn0 zcn addid1d eqcomd adantl simprr npncan3d subid1 adantrl oveq2d oveq12d
    simpl eqtr3d ex 3syl com12 syl2an 3adant3 imp eleq2d biimpa zsubcld 3adant2
    0zd 3jca fzosubel2 syl2anc syld ) CFBUCGHZDBEUCGHZIZAFDCJGZKGHAFBCJGZKGHUAI
    ZAWFWEKGZHZAWFJGFDBJGZFJGZKGHZWDWFLHZWGWIMWBWMWCWBFLHZBLHZCLHZNZFCOPCBOPZIZ
    IWMCFBUBWQWMWSWOWPWMWNBCUDUEQRQZWEAFWFUFUGWDWIWLWDWIIAWFFSGZWFWKSGZKGZHZWMW
    NWKLHZNZWLWDWIXDWDWHXCAWBWCWHXCUHZWBCUNHZBUNHZWRNWCXGMZCBUIXHXIXJWRXHCTHZBT
    HZXJXICUJBUJWCXKXLIZXGWCDLHZDTHZXMXGMDBEUKDUOXOXMXGXOXMIZWFXAWEXBKXMWFXAUHX
    OXMXAWFXMWFXLXKWFTHBCULUMUPUQURXPWFWJSGWEXBXPBCDXOXKXLUSXMXKXOXKXLVEURXOXMV
    EUTXPWJWKWFSXOXLWJWKUHZXKXOXLIWJTHZXQDBULXRWKWJWJVAUQUGVBVCVFVDVGVHVIVJVKRV
    LVMVNWDXFWIWDWMWNXEWTWDVQWCXEWBWCWOELHZXNNZBDOPDEOPIZIXEDBEUBXTXEYAWOXNXEXS
    WOXNIZWJFXNWOWJLHDBUDUMYBVQVOVPQRURVRQAWFFWKVSVTVGWA $.

  ${
    $d A k $.  $d B k $.  $d L k $.  $d M k $.  $d N k $.  $d V k $.
    swrdccatin12.l $e |- L = ( # ` A ) $.
    $( The subword of a concatenation of two words within the second of the
       concatenated words.  (Contributed by Alexander van der Vekens,
       28-Mar-2018.)  (Revised by Alexander van der Vekens, 27-May-2018.) $)
    swrdccatin2 $p |- ( ( A e. Word V /\ B e. Word V )
                  -> ( ( M e. ( L ... N ) /\ N e. ( L ... ( L + ( # ` B ) ) ) )
                           -> ( ( A ++ B ) substr <. M , N >. )
                              = ( B substr <. ( M - L ) , ( N - L ) >. ) ) ) $=
      ( wcel wa cfz co cfv cmin wceq cc0 wi syl adantr adantl impcom vk cconcat
      cword chash caddc cop csubstr cfzo wfn wb oveq1 eleq2d id oveq12d anbi12d
      ax-mp cn0 lencl cuz wss elnn0uz biimpi fzss1 sseld anim12d imp swrdccatfn
      syl5bi syldan cc w3a cz cle wbr elfz2 3anim123i 3comr sylbi oveq2d fneq2d
      zcn nnncan2 mpbird simpr elfzmlbm ad2antrl elfzmlbp nn0zd syl11 swrdvalfn
      ex syl3anc cv clt cif simpl elfzoelz elfzelz zaddcl expcom syl5com df-3an
      sylanbrc ccatsymb wn elfzonn0 cr anim12i elnn0z 0red anim1i ancoms anim2i
      le2add syl2anc recn addid2d breq1d sylibd readdcl lenltd expd com12 mpan9
      zre eqcomi breq2i notbii syl6ibr com23 iffalsed ad2antrr addsubassd oveq2
      3adant2 eqeq1d syl5ib fveq2d 3eqtrd swrdfv syl5eqel 3syl ccatlen fzmmmeqm
      ccatcl biimpd syl31anc 3jca sylan 3eqtr4d eqfnfvd ) AFUCZHZBUULHZIZDCEJKZ
      HZECCBUDLZUEKZJKZHZIZABUBKZDEUFUGKZBDCMKZECMKZUFUGKZNUUOUVBIZUAOUVFUVEMKZ
      UHKZUVDUVGUVHUVDUVJUIUVDOEDMKZUHKZUIZUUOUVBDOEJKZHZEOAUDLZUURUEKZJKZHZIZU
      VMUUOUVBUVTUVBDUVPEJKZHZEUVPUVQJKZHZIZUUOUVTCUVPNZUVBUWEUJGUWFUUQUWBUVAUW
      DUWFUUPUWADCUVPEJUKULUWFUUTUWCEUWFCUVPUUSUVQJUWFUMCUVPUURUEUKUNULZUOUPUUM
      UWEUVTPZUUNUUMUVPUQHZUWHFAURZUWIUWBUVOUWDUVSUWIUWAUVNDUWIUVPOUSLZHZUWAUVN
      UTUWIUWLUVPVAVBZUVPOEVCQVDUWIUWCUVREUWIUWLUWCUVRUTZUWMUVPOUVQVCZQVDVEQRVH
      VFABDEFVGVIUVHUVJUVLUVDUVHUVIUVKOUHUVBUVIUVKNZUUOUVBEVJHZDVJHZCVJHZVKZUWP
      UUQUWTUVAUUQCVLHZEVLHZDVLHZVKZCDVMVNZDEVMVNZIZIZUWTDCEVOZUXDUWTUXGUXBUXCU
      XAUWTUXBUWQUXCUWRUXAUWSEWADWAZCWAZVPVQRVRREDCWBQSVSVTWCUVHUUNUVEOUVFJKHZU
      VFOUURJKHZUVGUVJUIUUOUUNUVBUUMUUNWDRZUUQUXLUUOUVADCEWEWFZUVBUUOUXMUVAUUOU
      XMPZUUQUURVLHZUVAUXMUUOUXQUVAUXMECUURWGWKZUUNUXQUUMUUNUURFBURWHZSWISTBUVE
      UVFFWJWLUVHUAWMZUVJHZIZUXTDUEKZUVCLZUXTUVEUEKZBLZUXTUVDLZUXTUVGLZUYBUYDUY
      CUVPWNVNZUYCALZUYCUVPMKZBLZWOZUYLUYFUYBUUMUUNUYCVLHZVKZUYDUYMNUYBUUOUYNUY
      OUVHUUOUYAUUOUVBWPRUYAUVHUYNUYAUXTVLHZUVHUYNUXTOUVIWQZUUQUYPUYNPZUUOUVAUU
      QUXCUYRDCEWRUYPUXCUYNUXTDWSWTQWFXATUUMUUNUYNXBXCABUYCFXDQUYBUYIUYJUYLUYAU
      VHUYIXEZUYAUXTUQHZUVHUYSUXTUVIXFUUQUYTUYSPZUUOUVAUUQUXHVUAUXIUXGUXDVUAUXE
      UXDVUAPUXFUXDUXEVUAUXAUXCUXEVUAPUXBUXAUXCIZUYTUXEUYSVUBUYTUXEUYSPVUBUYTIU
      XEUYCCWNVNZXEZUYSVUBCXGHZDXGHZIZUYTUXEVUDPZUXAVUEUXCVUFCYEDYEXHUYTUYPOUXT
      VMVNZIVUGVUHPZUXTXIUYPUXTXGHZVUIVUJUXTYEVUIVUKVUGVUHVUKVUGIZVUIVUHVULVUIU
      XEVUDVULVUIUXEIZCUYCVMVNZVUDVULVUMOCUEKZUYCVMVNZVUNVULOXGHZVUEIZVUKVUFIZV
      UMVUPPVUGVURVUKVUFVUEVURVUFVUQVUEVUFXJXKXLSVUGVUFVUKVUEVUFWDXMZOCUXTDXNXO
      VULVUOCUYCVMVUEVUOCNVUKVUFVUECCXPXQWFXRXSVULCUYCVUGVUEVUKVUEVUFWPSVULVUSU
      YCXGHVUTUXTDXTQYAXSYBYCYBYDVRYDUYIVUCUVPCUYCWNCUVPGYFYGYHYIWKYJYOYCRTVRWF
      XATYKUYBUYKUYEBUYAUVHUYKUYENZUYAUYPUVHVVAUYQUUQUYPVVAPZUUOUVAUUQUXHVVBUXI
      UXDVVBUXGUXAUXCVVBUXBVUBUYPVVAUWFVUBUYPIZVVAPGVVCUYCCMKZUYENUWFVVAVVCUXTD
      CUYPUXTVJHVUBUXTWASVUBUWRUYPUXCUWRUXAUXJSRUXAUWSUXCUYPUXKYLYMUWFVVDUYKUYE
      CUVPUYCMYNYPYQUPWKYORVRWFXATYRYSUYBUVCUULHZUVOEOUVCUDLZJKZHZUXTUVLHZUYGUY
      DNUUOVVEUVBUYAFABUUEYLUVHUVOUYAUVBUUOUVOUUQUUOUVOPUVAUUOUUQUVOUUMUUQUVOPU
      UNUUMUUPUVNDUUMUWICUWKHUUPUVNUTUWJUWICUVPUWKGUWMUUACOEVCUUBVDRYCRTRUVHVVH
      UYAUVBUUOVVHUVAUUOVVHPZUUQUVAUWDVVJUWFUVAUWDUJGUWGUPUWDUUOVVHUWDUUOIVVHUV
      SUUOUWDUVSUUOUWCUVREUUOUWLUWNUUMUWLUUNUUMUWIUWLUWJUWMQRUWOQVDTUUOVVHUVSUJ
      UWDUUOVVGUVREUUOVVFUVQOJFABUUCVSULSWCWKVRSTRUVHUYAVVIUUQUYAVVIPUUOUVAUUQU
      YAVVIUUQUVJUVLUXTUUQUVIUVKOUHCDEUUDVSULUUFWFVFFUVCDEUXTYTUUGUVHUUNUXLUXMV
      KUYAUYHUYFNUVHUUNUXLUXMUXNUXOUVBUUOUXMUVAUXPUUQUUOUVAUXMUUNUVAUXMPZUUMUUN
      UXQVVKUXSUXRQSYCSTUUHFBUVEUVFUXTYTUUIUUJUUKWK $.

    $( Lemma for ~ swrdccatin12lem2 and ~ swrdccatin12lem3 .  (Contributed by
       AV, 30-Mar-2018.)  (Revised by AV, 27-May-2018.) $)
    swrdccatin12lem2c $p |- ( ( ( A e. Word V /\ B e. Word V )
                  /\ ( M e. ( 0 ... L ) /\ N e. ( L ... ( L + ( # ` B ) ) ) ) )
                             -> ( ( A ++ B ) e. Word V /\ M e. ( 0 ... N )
                                /\ N e. ( 0 ... ( # ` ( A ++ B ) ) ) ) ) $=
      ( cword wcel wa cc0 cfz co chash cfv caddc cconcat ccatcl adantr adantl
      elfz0fzfz0 cuz wss elfzuz2 fzss1 sseld impr wb ccatlen wceq eqcomi oveq1d
      syl a1i eqtrd oveq2d eleq2d mpbird 3jca ) AFHZIBUTIJZDKCLMIZECCBNOZPMZLMZ
      IZJZJZABQMZUTIZDKELMIZEKVINOZLMZIZVAVJVGFABRSVGVKVACDEVDUATVHVNEKVDLMZIZV
      AVBVFVPVAVBJZVEVOEVQCKUBOIZVEVOUCVBVRVADKCUDTCKVDUEUMUFUGVAVNVPUHVGVAVMVO
      EVAVLVDKLVAVLANOZVCPMVDFABUIVAVSCVCPVSCUJVACVSGUKUNULUOUPUQSURUS $.

    $( Lemma 2 for ~ swrdccatin12 .  (Contributed by AV, 30-Mar-2018.)
       (Revised by AV, 27-May-2018.) $)
    swrdccatin12lem2 $p |- ( ( ( A e. Word V /\ B e. Word V )
          /\ ( M e. ( 0 ... L ) /\ N e. ( L ... ( L + ( # ` B ) ) ) ) )
              -> ( ( K e. ( 0 ..^ ( N - M ) ) /\ -. K e. ( 0 ..^ ( L - M ) ) )
                     -> ( ( ( A ++ B ) substr <. M , N >. ) ` K )
                    = ( ( B substr <. 0 , ( N - L ) >. ) `
                        ( K - ( # ` ( A substr <. M , L >. ) ) ) ) ) ) $=
      ( wcel wa cc0 cfz co cfv cmin wceq adantr wi adantl imp cword chash caddc
      cfzo wn cconcat cop csubstr w3a swrdccatin12lem2c simprl syl2anc elfzoelz
      swrdfv cz cn0 cle wbr elfz2nn0 cc nn0cn anim12i zcn ancoms anim2i addid1d
      subcl syl simpr simplr simpll subsub3d eqtr2d syl2an oveq2 eqcoms syl5ibr
      eqeq1d ax-mp ex 3adant3 sylbi impcom fveq2d swrdccatin12lem2a wb id oveq1
      syl5com eleq2d sylibr df-3an sylanbrc ccatval2 elfz2 zsubcl cr zre subge0
      oveq12d syl2anr biimprd elnn0z expcom com12 3adant2 0elfz elfzel2 expcomd
      lencl 3ad2ant3 nn0re 3jca lesubadd2 com13 3imtr4g com23 swrdccatin12lem2b
      syl31anc 3eqtr4d elnn0uz eluzfz2 syl5eqel swrdlen eqcomd oveq2d 3eqtrd
      cuz ) AGUAZIZBYIIZJZEKDLMIZFDDBUBNZUCMZLMIZJZJZCKFEOMZUDMIZCKDEOMZUDMIUEZ
      JZCABUFMZEFUGUHMNZCAEDUGUHMUBNZOMZBKFDOMZUGUHMZNZPYRUUCJZUUECEUCMZUUDNZCU
      UAOMZUUINZUUJUUKUUDYIIEKFLMIFKUUDUBNLMIUIZYTUUEUUMPYRUUPUUCABDEFGHUJQYRYT
      UUBUKGUUDEFCUNULUUKUULAUBNZOMZBNZUUNKUCMZBNZUUMUUOUUKUURUUTBUUCYRUURUUTPZ
      YTYRUVBRUUBYTCUOIZYRUVBCKYSUMYQUVCUVBRZYLYMUVDYPYMEUPIZDUPIZEDUQURZUIUVDE
      DUSUVEUVFUVDUVGUVEUVFJZUVCUVBDUUQPZUVHUVCJZUVBRHUVJUVBUVIUULDOMZUUTPZUVHE
      UTIZDUTIZJZCUTIZUVLUVCUVEUVMUVFUVNEVADVAVBCVCUVOUVPJZUUTUUNUVKUVQUUNUVQUV
      PUUAUTIZJZUUNUTIUVPUVOUVSUVOUVRUVPUVNUVMUVRDEVGVDVEVDCUUAVGVHVFUVQCDEUVOU
      VPVIUVMUVNUVPVJUVMUVNUVPVKVLVMVNUVIUURUVKUUTUURUVKPUUQDUUQDUULOVOVPVRVQVS
      VTWAWBQSWIQWCWDUUKYJYKUULUUQUUQYNUCMZUDMZIZUIZUUMUUSPUUKYLUWBUWCYLYQUUCVK
      UUKUULDYOUDMZIZUWBYRUUCUWEYQUUCUWERYLCDEFYOWESTUVIUWBUWEWFZHUWFUUQDUUQDPZ
      UWAUWDUULUWGUUQDUVTYOUDUWGWGUUQDYNUCWHWTWJVPVSWKYJYKUWBWLWMGABUULWNVHUUKY
      KKKUUHLMIZUUHKYNLMIZUUNKUUHKOMUDMIZUUOUVAPYRYKUUCYJYKYQVJQYRUWHUUCYQUWHYL
      YQUUHUPIZUWHYPUWKYMYPDUOIZYOUOIZFUOIZUIZDFUQURZFYOUQURZJZJZUWKFDYOWOZUWOU
      WRUWKUWLUWNUWRUWKRUWMUWRUWLUWNJZUWKUWPUXAUWKRUWQUXAUWPUWKUXAUWPJUUHUOIZKU
      UHUQURZUWKUXAUXBUWPUWNUWLUXBFDWPVDQUXAUWPUXCUXAUXCUWPUWNFWQIZDWQIZUXCUWPW
      FUWLFWRZDWRZFDWSXAXBTUUHXCWMXDQZXEXFTWBSUUHXGVHSQYRUWIUUCYLYQUWIYKYQUWIRY
      JYKYNUPIZYQUWIGBXJYMYPUXIUWIRZYMUWLYPUXJREKDXHUWLUXIYPUWIUWLUXIYPUWIRUWLU
      XIJZUWSUWKUXIUUHYNUQURZUIZYPUWIUXKUWSUXMUXKUWSJUWKUXIUXLUXKUWSUWKUWLUWSUW
      KRUXIUWSUWLUWKUWOUWRUWLUWKRZUWNUWLUWRUXNRUWMUWRUWNUXNUWRUWLUWNUWKUXHXIXEX
      KTXEQTUWLUXIUWSVJUWSUXKUXLUWRUWOUXKUXLRZUWQUWOUXORUWPUXKUWOUWQUXLUXKUWOUW
      QUXLRZUXKUWOJZUXDUXEYNWQIZUIZUXPUXQUXDUXEUXRUWOUXDUXKUWNUWLUXDUWMUXFXKSUX
      KUXEUWOUWLUXEUXIUXGQQUXKUXRUWOUXIUXRUWLYNXLSQXMUXSUXLUWQFDYNXNXBVHVTXOSWC
      WCXMVTUWTUUHYNUSXPVTXQVHTWISTQYRUUCUWJYQUUCUWJRYLCDEFYOXRSTGBKUUHUUNUNXSX
      TUUKUUNUUGUUIUUKUUAUUFCOUUKUUFUUAUUKYJYMDKUUQLMZIZUIZUUFUUAPYRUYBUUCYRYJY
      MUYAYJYKYQVKYLYMYPUKYLUYAYQYJUYAYKYJUUQUPIZUYAGAXJUYCDUUQUXTHUYCUUQKYHNIU
      UQUXTIUUQYAKUUQYBWBYCVHQQXMQGAEDYDVHYEYFWDYGVT $.

    $( Lemma 3 for ~ swrdccatin12 .  (Contributed by AV, 30-Mar-2018.)
       (Revised by AV, 27-May-2018.) $)
    swrdccatin12lem3 $p |- ( ( ( A e. Word V /\ B e. Word V )
          /\ ( M e. ( 0 ... L ) /\ N e. ( L ... ( L + ( # ` B ) ) ) ) )
                  -> ( ( K e. ( 0 ..^ ( N - M ) ) /\ K e. ( 0 ..^ ( L - M ) ) )
                       -> ( ( ( A ++ B ) substr <. M , N >. ) ` K )
                          = ( ( A substr <. M , L >. ) ` K ) ) ) $=
      ( wcel wa cc0 cfz co cfv wceq w3a cn0 clt wbr wi cword chash cmin cconcat
      caddc cfzo cop csubstr simpll elfzo0 lencl cle elfz2nn0 nn0addcl 3ad2ant1
      cn ex com12 imp cz elnnz cr wb nn0re posdif syl2an elnn0z 0red zre adantr
      adantl lelttr syl3anc nn0z anim1i sylibr syld expd impancom sylbi sylbird
      3ad2ant2 3adant3 ltaddsubd exbiri com23 3adant2 3jca a1d 2a1i eleq1 breq2
      impcom 3anbi23d imbi2d 3imtr4d eqcoms sylanbrc ccatval1 swrdccatin12lem2c
      df-3an syl simprl swrdfv syl2anc eleq1i cuz elnn0uz eluzfz2 eqcomi oveq2i
      mpsyl syl6eleqr sylbir ad3antrrr simprr syl31anc 3eqtr4d ) AGUAZIZBXSIZJZ
      EKDLMZIZFDDBUBNUEMLMIZJZJZCKFEUCMUFMIZCKDEUCMZUFMIZJZCABUDMZEFUGUHMNZCAED
      UGUHMNZOYGYKJZCEUEMZYLNZYPANZYMYNYOXTYAYPKAUBNZUFMIZPZYQYROYOYBYTUUAYBYFY
      KUIYOYPQIZYSUPIZYPYSRSZPZYTYKYGUUEYJYGUUETZYHYJCQIZYIUPIZCYIRSZPZUUFCYIUJ
      YGUUJUUEYBYFUUJUUETZXTYFUUKTZYADYSOXTYSQIZUULHGAUKZUUMUULTYSDYSDOZDQIZYFU
      UJUUBDUPIZYPDRSZPZTZTZUUMUULUVAUUOUUPYDYEUUTYDEQIZUUPEDULSZPZYEUUTTEDUMUV
      DUUTYEUVDUUJUUSUVDUUJJUUBUUQUURUVDUUJUUBUVBUUPUUJUUBTUVCUUJUVBUUBUUGUUHUV
      BUUBTUUIUUGUVBUUBCEUNUQUOURUOUSUVDUUJUUQUVBUUPUUJUUQTUVCUUJUVBUUPJZUUQUUH
      UUGUVEUUQTZUUIUUHYIUTIZKYIRSZJUVFYIVAUVHUVFUVGUVEUVHUUQUVEUVHEDRSZUUQUVBE
      VBIZDVBIZUVIUVHVCUUPEVDZDVDZEDVEVFUVBUUPUVIUUQTZUVBEUTIZKEULSZJUUPUVNTEVG
      UVOUUPUVPUVNUVOUUPJZUVPUVIUUQUVQUVPUVIJZKDRSZUUQUVQKVBIUVJUVKUVRUVSTUVQVH
      UVOUVJUUPEVIVJUUPUVKUVOUVMVKKEDVLVMUUPUVSUUQTUVOUUPUVSUUQUUPUVSJDUTIZUVSJ
      UUQUUPUVTUVSDVNVODVAVPUQVKVQVRVSVTUSWAURVKVTWBURWCUSUUJUVDUURUUGUUIUVDUUR
      TZUUHUUGUUIUWAUUGUVDUUIUURUUGUVDUURUUIUUGUVDJCEDUUGCVBIUVDCVDVJUVDUVJUUGU
      VBUUPUVJUVCUVLUOVKUVDUVKUUGUUPUVBUVKUVCUVMWBVKWDWEWFUSWGWMWHUQWIVTUSWJYSD
      QWKUUOUUKUUTYFUUOUUEUUSUUJUUOUUCUUQUUDUURUUBYSDUPWKYSDYPRWLWNWOWOWPWQXLVJ
      USURVTVKWMYPYSUJVPXTYAYTXAWRGABYPWSXBYOYLXSIEKFLMIFKYLUBNLMIPZYHYMYQOYGUW
      BYKABDEFGHWTVJYGYHYJXCGYLEFCXDXEYOXTYDDKYSLMZIZYJYNYROYGXTYKXTYAYFUIVJYGY
      DYKYBYDYEXCVJXTUWDYAYFYKXTUUMUWDUUNUUMUUPUWDDYSQHXFUUPDYCUWCUUPDKXGNIDYCI
      DXHKDXIVTYSDKLDYSHXJXKXMXNXBXOYGYHYJXPGAEDCXDXQXRUQ $.

    $( The subword of a concatenation of two words within both of the
       concatenated words.  (Contributed by Alexander van der Vekens,
       5-Apr-2018.)  (Revised by Alexander van der Vekens, 27-May-2018.) $)
    swrdccatin12 $p |- ( ( A e. Word V /\ B e. Word V )
     -> ( ( M e. ( 0 ... L ) /\ N e. ( L ... ( L + ( # ` B ) ) ) )
          -> ( ( A ++ B ) substr <. M , N >. )
               = ( ( A substr <. M , L >. )
                   ++ ( B substr <. 0 , ( N - L ) >. ) ) ) ) $=
      ( wcel wa cc0 cfz co cfv caddc wceq cfzo adantr adantl syl w3a vk cconcat
      cword chash cop csubstr cmin wfn elfz0fzfz0 cuz wss elfzuz2 fzss1 ccatlen
      ccatcl eqcomi oveq1i syl6eq oveq2d sseqtr4d impr swrdvalfn syl3anc swrdcl
      sseld anim12i ccatvalfn simpll simprl lencl elnn0uz eluzfz2 sylbi swrdlen
      cn0 syl5eqel simpr cz nn0zd elfzmlbp swrd0len syl2anc oveq12d cc elfz2nn0
      cle wbr wi nn0cn ad2antrl zcn ex elfzelz syl11 3adant3 imp npncan3 eqtr2d
      3jca fneq2d mpbird anim2i ancomd swrdccatin12lem3 sylc simpl nn0fz0 sylib
      cv eleqtrrd df-3an sylanbrc eqtr4d swrdccatin12lem2 elfzuz eluzelz ancoms
      ccatval1 syl5com impcom swrdccatin12lem1 jca ccatval2 pm2.61ian eqfnfvd
      wn ) AFUCZHZBYGHZIZDJCKLHZECCBUDMZNLZKLZHZIZABUBLZDEUEUFLZADCUEUFLZBJECUG
      LZUEUFLZUBLZOYJYPIZUAJEDUGLZPLZYRUUBUUCYQYGHZDJEKLHZEJYQUDMZKLZHZYRUUEUHY
      JUUFYPFABUOQYPUUGYJCDEYMUIRYJYKYOUUJYJYKIZYNUUIEUUKYNJYMKLZUUIUUKCJUJMZHZ
      YNUULUKYKUUNYJDJCULRCJYMUMSUUKUUHYMJKYJUUHYMOYKYJUUHAUDMZYLNLYMFABUNUUOCY
      LNCUUOGUPUQURQUSUTVEVAYQDEFVBVCUUCUUBUUEUHUUBJYSUDMZUUAUDMZNLZPLZUHZUUCYS
      YGHZUUAYGHZIZUUTYJUVCYPYHUVAYIUVBFADCVDFBJYTVDVFQZYSUUAFVGSUUCUUEUUSUUBUU
      CUUDUURJPUUCUURCDUGLZYTNLZUUDUUCUUPUVEUUQYTNUUCYHYKCJUUOKLZHZUUPUVEOZYHYI
      YPVHZYJYKYOVIZYJUVHYPYHUVHYIYHUUOVOHZUVHFAVJZUVLCUUOUVGGUVLUUOUUMHUUOUVGH
      ZUUOVKJUUOVLVMVPSQQFADCVNZVCUUCYIYTJYLKLHZUUQYTOZYJYIYPYHYIVQZQUUCYLVRHZY
      OIUVPYJUVSYPYOYIUVSYHYIYLFBVJVSRZYKYOVQVFECYLVTZSFBYTWAZWBWCUUCCWDHZDWDHZ
      EWDHZTZUVFUUDOYPUWFYJYKYOUWFYKDVOHZCVOHZDCWFWGZTZYOUWFWHZDCWEZUWGUWHUWKUW
      IEVRHZUWGUWHIZUWFYOUWMUWNUWFUWMUWNIUWCUWDUWEUWNUWCUWMUWHUWCUWGCWIRRUWGUWD
      UWMUWHDWIWJUWMUWEUWNEWKQWSWLECYMWMWNWOVMWPRCDEWQSWRUSWTXAUAXIZJUVEPLZHZUU
      CUWOUUEHZIZUWOYRMZUWOUUBMZOUWQUWSIZUWTUWOYSMZUXAUXBUUCUWRUWQIUWTUXCOUWQUU
      CUWRVIUXBUWQUWRUWSUWRUWQUUCUWRVQZXBXCABUWOCDEFGXDXEUXBUVAUVBUWOJUUPPLZHZT
      ZUXAUXCOUXBUVCUXFUXGUUCUVCUWQUWRUVDWJUXBUWOUWPUXEUWQUWSXFUXBUUPUVEJPUXBYH
      YKUVHTZUVIUUCUXHUWQUWRUUCYHYKUVHUVJUVKYJUVHYPYHUVHYIYHCUUOUVGGYHUVLUVNUVM
      UUOXGXHVPQQZWSWJUVOSUSXJUVAUVBUXFXKXLFYSUUAUWOXRSXMUWQYFZUWSIZUWTUWOUUPUG
      LUUAMZUXAUXKUUCUWRUXJIZUWTUXLOUXJUUCUWRVIUXKUXJUWRUWSUWRUXJUXDXBXCZABUWOC
      DEFGXNXEUXKUVAUVBUWOUUPUURPLZHZTZUXAUXLOUXKUVCUXPUXQUUCUVCUXJUWRUVDWJUXKU
      WOUVEUVFPLZUXOUXKUWHUWGUWMTZUXMUWOUXRHUUCUXSUXJUWRYPUXSYJYOYKUXSYOECUJMHZ
      YKUXSWHECYMXOUXTUWMYKUXSCEXPYKUWJUWMUXSWHZUWLUWGUWHUYAUWIUWHUWGUYAUWHUWGI
      ZUWMUXSUYBUWMIUWHUWGUWMUWHUWGUWMVHUYBUWGUWMUWHUWGVQQUYBUWMVQWSWLXQWOVMXSS
      XTRWJUXNUWOCDEYAXEUUCUXOUXROUXJUWRUUCUUPUVEUURUVFPUUCYHYKUVHUVIUVJUVKUXIU
      VOVCZUUCUUPUVEUUQYTNUYCUUCYIUVPIZUVQYPYJUYDYOYJUYDWHYKYOYJUYDYOYJIZYIUVPY
      JYIYOUVRRUYEUVSYOUVPYJUVSYOUVTRYOYJXFUWAWBYBWLRXTUWBSWCWCWJXJUVAUVBUXPXKX
      LFYSUUAUWOYCSXMYDYEWL $.

    $( The subword of a concatenation is either a subword of the first
       concatenated word or a subword of the second concatenated word or a
       concatenation of a suffix of the first word with a prefix of the second
       word.  (Contributed by Alexander van der Vekens, 30-Mar-2018.)  (Revised
       by Alexander van der Vekens, 28-May-2018.) $)
    swrdccat3 $p |- ( ( A e. Word V /\ B e. Word V )
                -> ( ( M e. ( 0 ... N ) /\ N e. ( 0 ... ( L + ( # ` B ) ) ) )
                           -> ( ( A ++ B ) substr <. M , N >. )
          = if ( N <_ L , ( A substr <. M , N >. ) ,
            if ( L <_ M , ( B substr <. ( M - L ) , ( N - L ) >. ) ,
                         ( ( A substr <. M , L >. )
                           ++ ( B substr <. 0 , ( N - L ) >. ) ) ) ) ) ) $=
      ( wcel wa cc0 cfz co cle wbr wi cn0 adantr adantl imp w3a cword chash cfv
      caddc cconcat cop csubstr cmin simpll simplrl lencl elfznn0 simplr breq2i
      cif wceq biimpi elfz2nn0 syl3anbrc syl5com jca swrdccatin1 sylc wn simp1l
      exp31 eleq1i cz nn0z 3ad2ant2 3ad2ant1 3jca simpl3 anim1i ancomd sylanbrc
      elfz2 sylbi com12 sylbir syl a1d 3imp syl5eqel eqcomi cr wb nn0re syl2anr
      clt ltnle bicomd ltle sylbid syl5bi imp32 exp32 swrdccatin2 syl2an impcom
      ex a1dd expcom 3adant3 simplr3 swrdccatin12 2if2 ) AFUAZHZBXHHZIZDJEKLHZE
      JCBUBUCUDLZKLHZIZABUELDEUFZUGLZECMNZAXPUGLZCDMNZBDCUHLECUHLZUFUGLZADCUFUG
      LBJYAUFUGLUELZUOUOUPXKXOIZXRXTXSYBYCXQYDXRIZXKXLEJAUBUCZKLHZIXQXSUPXKXOXR
      UIYEXLYGXKXLXNXRUJYDXRYGXKXOXRYGOZXIXOYHOXJXIYFPHZXOYHFAUKZXNYIYHOXLXNYIX
      RYGXNYIIZXRIEPHZYIEYFMNZYGYKYLXRXNYLYIEXMULQQXNYIXRUMXRYMYKXRYMCYFEMGUNUQ
      REYFURUSVFRUTQSSVAABDEFVBVCYDXRVDZXTTZXKDCEKLHZECXMKLHZIXQYBUPXKXOYNXTVEY
      OYPYQYDYNXTYPYDXTYPOZYNXKXOYRXIXOYROZXJXIYIYSYJYICPHZYSCYFPGVGXOYTYRXLYTY
      ROZXNXLDPHZYLDEMNZTZUUADEURZUUDYTXTYPUUDYTIZXTIZCVHHZEVHHZDVHHZTZXTUUCIYP
      UUFUUKXTUUFUUHUUIUUJYTUUHUUDCVIZRUUDUUIYTYLUUBUUIUUCEVIZVJQUUDUUJYTUUBYLU
      UJUUCDVIVKQVLQUUGUUCXTUUFUUCXTUUBYLUUCYTVMVNVODCEVQVPVFVRQVSVTWAQSWBWCYDY
      NXTYQYDYNYQXTXKXOYNYQOZXIXOUUNOXJXIYIXOUUNYJXNYIUUNOZXLXNYLXMPHZEXMMNZTZU
      UOEXMURZUURYIYNYQUURYIYNIZIZUUHXMVHHZUUITZCEMNZUUQIZYQUVAUUHUVBUUIUUTUUHU
      URYIUUHYNYICYFVHGYFVIWDQRUURUVBUUTUUPYLUVBUUQXMVIVJZQUURUUIUUTYLUUPUUIUUQ
      UUMVKZQVLUVAUVDUUQUURYIYNUVDYLUUPYIYNUVDOZOUUQYIYTYLUVHYFCPCYFGWEVGZYLYTU
      VHYLYTIZYNCEWJNZUVDUVJUVKYNYTCWFHZEWFHZUVKYNWGYLCWHZEWHZCEWKZWIWLYTUVLUVM
      UVKUVDOZYLUVNUVOCEWMZWIWNXAWOVKWPYLUUPUUQUUTVMVAECXMVQZVPWQVRRUTQSXBWCVAA
      BCDEFGWRVCYDYNXTVDZTZXKDJCKLHZYQIXQYCUPXKXOYNUVTVEUWAUWBYQYDYNUVTUWBYDUVT
      UWBOZYNXKXOUWCXIXOUWCOXJXIYIXOUWCYJXLYIUWCOXNYIYTXLUWCUVIXLUUDYTUWCOZUUEU
      UBYLUWDUUCYTUUBYLIZUWCYTUWEIZUVTDCWJNZUWBUWFUWGUVTUWEDWFHZUVLUWGUVTWGYTUU
      BUWHYLDWHZQUVNDCWKWIWLUWEYTUWGUWBOZUUBYTUWJOYLUUBYTUWGUWBUUBYTIZUWGIUUBYT
      DCMNZUWBUUBYTUWGUIUUBYTUWGUMUWKUWGUWLUUBUWHUVLUWGUWLOYTUWIUVNDCWMWSSDCURU
      SVFQWTWNXCXDVRWOQUTQSWBWCYDYNUVTYQYDYNYQUVTXOXKUUNXNXKUUNOZXLXNUURUWMUUSX
      KUURUUNXIUURUUNOZXJXIYIUWNYJYIYTUWNUVIYTUURUUNYTUURIZYNUVKYQYTUVLUVMYNUVK
      WGUURUVNYLUUPUVMUUQUVOVKZUVLUVMIUVKYNUVPWLWSUWOUVKYQUWOUVKIZUVCUVEYQUWOUV
      CUVKUWOUUHUVBUUIYTUUHUURUULQUURUVBYTUVFRUURUUIYTUVGRVLQUWQUVDUUQUWOUVKUVD
      YTUVLUVMUVQUURUVNUWPUVRWSSYLUUPUUQYTUVKXEVAUVSVPXAWNXAVRWAQVSVRRWTXBWCVAA
      BCDEFGXFVCXGXA $.

    $( The subword of a concatenation of two words as concatenation of subwords
       of the two concatenated words.  (Contributed by Alexander van der
       Vekens, 29-May-2018.) $)
    swrdccat $p |- ( ( A e. Word V /\ B e. Word V )
              -> ( ( M e. ( 0 ... N ) /\ N e. ( 0 ... ( L + ( # ` B ) ) ) )
                  -> ( ( A ++ B ) substr <. M , N >. )
                     = ( ( A substr <. M , if ( N <_ L , N , L ) >. ) ++
                         ( B substr <. if ( 0 <_ ( M - L ) , ( M - L ) , 0 ) ,
                                                        ( N - L ) >. ) ) ) ) $=
      ( wcel wa cc0 co cconcat csubstr wceq wi adantr w3a c0 adantl syl cfz cfv
      cword chash caddc cop cle wbr cif swrdccat3 imp cn0 lencl eqcomi elfz2nn0
      cmin eleq1i iftrue opeq2d oveq2d opeq1d cz simpr nn0z zsubcl sylan sylan2
      anim12i 3anass sylibr ad2antrl cr nn0re wb subge0 adantlr simpl 3jca letr
      jca expcomd sylbid com23 syl2an impcom lesub1 mpbid swrdlend sylc iffalse
      wn 0zd suble0 biimpar sylan9eq pm2.61ian oveq12d swrdcl ccatrid 3anim123i
      eqtrd 3ad2ant2 3expb 3adant2 biimprd ccatlid 3ad2ant1 con3dimp 2if2 exp32
      biimpd com12 3adant3 sylbi com13 mpcom eqtr4d ex ) AFUCZHZBXSHZIZDJEUAKHZ
      EJCBUDUBUEKUAKHZIZABLKDEUFZMKZADECUGUHZECUIZUFZMKZBJDCUPKZUGUHZYLJUIZECUP
      KZUFZMKZLKZNYBYEIYGYHAYFMKZCDUGUHZBYLYOUFZMKZADCUFZMKZBJYOUFZMKZLKZUIUIZY
      RYBYEYGUUHNABCDEFGUJUKYBYEYRUUHNZAUDUBZULHZYBYEUUIOZXTUUKYAFAUMPUUKCULHZY
      BUULOUUJCULCUUJGUNUQYEYBUUMUUIYCYBUUMUUIOZOZYDYCDULHZEULHZDEUGUHZQUUODEUO
      UUPUUQUUOUURYBUUPUUQIZUUNYBUUSUUMUUIYBUUSUUMIZIZYHYTYSUUBUUGYRUVAYHIZYRYS
      RLKZYSUVBYKYSYQRLUVBYJYFAMUVBYIEDYHYIENUVAYHECURSUSUTYMUVBYQRNYMUVBIZYQUU
      BRYMYQUUBNUVBYMYPUUABMYMYNYLYOYMYLJURVAZUTPUVDYAYLVBHZYOVBHZQZYOYLUGUHZUU
      BRNUVAUVHYMYHUVAYAUVFUVGIZIUVHYBYAUUTUVJXTYAVCZUUMUUSCVBHZUVJCVDZUUSUVLIU
      VFUVGUUSDVBHZUVLUVFUUPUVNUUQDVDPZDCVEVFUUSEVBHZUVLUVGUUQUVPUUPEVDSZECVEZV
      FVTVGVHYAUVFUVGVIVJVKUVDEDUGUHZUVIUVBYMUVSUVAYHYMUVSOZUUTYHUVTOZYBUUSDVLH
      ZEVLHZIZCVLHZUWAUUMUUPUWBUUQUWCDVMZEVMZVHCVMZUWDUWEIZYMYHUVSUWIYMYTYHUVSO
      UWBUWEYMYTVNZUWCDCVOZVPUWIYHYTUVSUWIUWCUWEUWBQYHYTIUVSOUWIUWCUWEUWBUWDUWC
      UWEUWBUWCVCPUWDUWEVCUWDUWBUWEUWBUWCVQPVRECDVSTWAWBWCWDSUKWEUVDUWCUWBUWEQZ
      UVSUVIVNUVAUWLYMYHUUTUWLYBUUTUWCUWBUWEUUSUWCUUMUUQUWCUUPUWGSZPUUSUWBUUMUU
      PUWBUUQUWFPZPUUMUWEUUSUWHSVRSVKEDCWFTWGYLYOFBWHWIXAYMWKZUVBYQUUFRUWOYPUUE
      BMUWOYNJYOYMYLJWJZVAUTUVBYAJVBHZUVGQYOJUGUHZUUFRNUVBYAUWQUVGUVAYAYHYBYAUU
      TUVKPPUVBWLUVAUVGYHUUTUVGYBUUSUVPUVLUVGUUMUVQUVMUVRWDSPVRUVAUWRYHUVAUWCUW
      EIZUWRYHVNUUTUWSYBUUSUWCUUMUWEUWMUWHVHSECWMTWNJYOFBWHWIWOWPWQUVAUVCYSNZYH
      YBUWTUUTXTUWTYAXTYSXSHUWTFADEWRFYSWSTPPPXAUVAYHWKZYTQZYRRUUBLKZUUBUXBYKRY
      QUUBLUXBYKUUDRUXBYJUUCAMUXBYICDUXAUVAYICNZYTYHECWJZXBUSUTUVAYTUUDRNZUXAUV
      AYTUXFUVAXTUVNUVLQZYTUXFOYBUUSUUMUXGYBXTUUSUVNUUMUVLXTYAVQUVOUVMWTXCDCFAW
      HTUKXDXAUXBYPUUABMUXBYMYPUUANUVAYTYMUXAUVAYTYMUUTYTYMOYBUUTYMYTUUSUWBUWEU
      WJUUMUWNUWHUWKWDXESUKXDUVETUTWQUVAUXAUXCUUBNZYTYBUXHUUTYBUUBXSHZUXHYAUXIX
      TFBYLYOWRSFUUBXFTPXGXAUVAUXAYTWKZQZYKUUDYQUUFLUXKYJUUCAMUXKYICDUXAUVAUXDU
      XJUXEXBUSUTUXKYPUUEBMUXKYNJYOUXKUWOYNJNUVAUXJUWOUXAUVAYMYTUVAYMYTUUTUWJYB
      UUPUUMUWJUUQUUPUWBUWEUWJUUMUWFUWHUWKWDVPSXKXHXDUWPTVAUTWQXIXJXLXMXNPXOXNX
      PUKXQXR $.

    $( A prefix of a concatenation is either a prefix of the first concatenated
       word or a concatenation of the first word with a prefix of the second
       word.  (Contributed by Alexander van der Vekens, 31-Mar-2018.)  (Revised
       by Alexander van der Vekens, 29-May-2018.) $)
    swrdccat3a $p |- ( ( A e. Word V /\ B e. Word V )
                      -> ( N e. ( 0 ... ( L + ( # ` B ) ) )
                           -> ( ( A ++ B ) substr <. 0 , N >. )
         = if ( N <_ L , ( A substr <. 0 , N >. ) ,
                         ( A ++ ( B substr <. 0 , ( N - L ) >. ) ) ) ) ) $=
      ( wcel wa cc0 co cconcat cop csubstr cmin cif wceq cn0 syl imp adantr cfv
      cword chash caddc cfz cle wbr elfznn0 0elfz ancri swrdccat3 sylan2 iftrue
      adantl wn w3a iffalse 3ad2ant2 wi wb lencl nn0le0eq0 biimpd eqeq1i biimpi
      syl5eqel hasheq0 syl5ib 0m0e0 eqcoms syl5eqr opeq1d oveq2d oveq12d swrdcl
      c0 oveq2 ccatlid eqtrd syld 3adant2 opeq2i oveq2i swrdid syl5req 3ad2ant1
      ex oveq1d 2if2 eqtr4d ) AEUBZGZBWKGZHZDICBUCUAUDJZUEJGZABKJIDLZMJZDCUFUGZ
      AWQMJZABIDCNJZLZMJZKJZOZPWNWPHZWRWSWTCIUFUGZBICNJZXALZMJZAICLZMJZXCKJZOOZ
      XEWPWNIIDUEJGZWPHZWRXNPZWPXOWPDQGXODWOUHDUIRUJWNXPXQABCIDEFUKSULXFWSXGWTX
      JXMXEWSXEWTPXFWSWTXDUMUNXFWSUOZXGUPXEXDXJXRXFXEXDPZXGWSWTXDUQZURXFXGXDXJP
      ZXRXFXGYAWNXGYAUSWPWNXGCIPZYAWLXGYBUSWMWLXGYBWLCQGXGYBUTWLCAUCUAZQFEAVAVF
      CVBRVCTWNYBYAWNYBHZXDVPXJKJZXJYDAVPXCXJKWNYBAVPPZWLYBYFUSWMYBYCIPZWLYFYBY
      GCYCIFVDVEAWKVGVHTSYDXBXIBMYDIXHXAYBIXHPWNYBIIINJZXHVIYHXHPICICINVQVJVKUN
      VLVMVNWNYEXJPZYBWMYIWLWMXJWKGYIEBXHXAVOEXJVRRUNTVSWGVTTSWAVSXFXRXGUOZUPZX
      EXDXMXRXFXSYJXTURYKAXLXCKXFXRAXLPZYJWNYLWPWLYLWMWLXLAIYCLZMJAXKYMAMCYCIFW
      BWCEAWDWETTWFWHVSWIWJWG $.

    $( Lemma for ~ swrdccat3b .  (Contributed by AV, 30-May-2018.) $)
    swrdccat3blem $p |- ( ( ( ( A e. Word V /\ B e. Word V )
              /\ M e. ( 0 ... ( L + ( # ` B ) ) ) ) /\ ( L + ( # ` B ) ) <_ L )
                    -> if ( L <_ M , ( B substr <. ( M - L ) , ( # ` B ) >. ) ,
                                     ( ( A substr <. M , L >. ) ++ B ) )
                                = ( A substr <. M , ( L + ( # ` B ) ) >. ) ) $=
      ( wcel wa cc0 co cle cop csubstr wceq wi cn0 syl c0 oveq2d adantr cfv cfz
      cword chash caddc wbr cmin cconcat cif lencl nn0le0eq0 biimpd hasheq0 imp
      adantl eqcomi eleq1i nn0re w3a elfz2nn0 recn addid1d breq2d anim1i ancoms
      cr wb letri3 biimprd exp4b com23 sylbid com3l impcom 3adant2 com12 syl5bi
      sylbi elfznn0 swrd00 eqtr4i nn0cn subidd opeq1d 3eqtr4a eleq1 oveq1 opeq1
      opeq2d a1i eqeq12d 3imtr4d a1d syld wn swrdcl ccatrid addid1 eqcomd eqtrd
      cc ifeqda ex ad3antrrr oveq2 eleq2d simpr oveq12d ifeq12d imbi12d adantll
      opeq2 mpbird mpdan sylbir nn0red leaddle0 syl2an pm2.24 syl6bi pm2.61d )
      AEUCZGZBYBGZHZDICBUDUAZUEJZUBJZGZHZYGCKUFZHYFIKUFZCDKUFZBDCUGJZYFLZMJZADC
      LZMJZBUHJZUIZADYGLZMJZNZYJYLUUCOZYKYEYIUUDYEYLYIUUCYEYLYFINZYIUUCOZYDYLUU
      EOZYCYDYFPGZUUGEBUJZUUHYLUUEYFUKULQUOYEUUEUUFYEUUEHZBRNZUUFYEUUEUUKYDUUEU
      UKOYCYDUUEUUKBYBUMULUOUNUUJUUKHUUFDICIUEJZUBJZGZYMRYNILZMJZYRRUHJZUIZADUU
      LLZMJZNZOZYCUVBYDUUEUUKYCUUNUVAYCUUNHZYMUUPUUQUUTUVCYMUUPUUTNZUVCYMDCNZUV
      DYCUUNYMUVEOZYCAUDUAZPGZUUNUVFOZEAUJZUVHCPGZUVIUVGCPCUVGFUPUQZUVKCVFGZUVI
      CURZUUNDPGZUULPGZDUULKUFZUSZUVMUVFDUULUTUVRUVMUVFUVOUVQUVMUVFOZUVPUVQUVOU
      VSUVMUVQUVOUVFUVMUVQDCKUFZUVOUVFOUVMUULCDKUVMCCVAVBVCUVMUVOUVTUVFUVMUVOUV
      TYMUVEUVMUVOHZUVEUVTYMHZUWADVFGZUVMHZUVEUWBVGUVOUVMUWDUVOUWCUVMDURVDVEDCV
      HQVIVJVKVLVMVNVOVPVQQVRQUNUUNYCUVEUVDOZUUNUVOYCUWEODUULVSUVOUWEYCUVEUVOUV
      DUVEUVKRCCUGJZILZMJZACUULLZMJZNZUVOUVDUVKUWKOUVEUVKRIILZMJZACCLZMJZUWHUWJ
      UWMRUWORIVTACVTWAUVKUWGUWLRMUVKUWFIIUVKCCWBZWCWDSUVKUWIUWNAMUVKUULCCUVKCU
      WPVBWISWEWJDCPWFUVEUUPUWHUUTUWJUVEUUOUWGRMUVEYNUWFIDCCUGWGWDSUVEUUSUWIAMD
      CUULWHSWKWLVPWMQVNWNUNUVCUUQUUTNZYMWOYCUWQUUNYCUUQYRUUTYCYRYBGUUQYRNEADCW
      PEYRWQQYCYQUUSAMYCCUULDYCCXAGZCUULNYCUVHUWRUVJUVHUVKUWRUVLUWPVRQUWRUULCCW
      RWSQWISWTTTXBXCXDUUEUUKUUFUVBVGYEUUEUUKHZYIUUNUUCUVAUUEYIUUNVGUUKUUEYHUUM
      DUUEYGUULIUBYFICUEXEZSXFTUWSYTUURUUBUUTUWSYMYPUUPYSUUQUWSBRYOUUOMUUEUUKXG
      UUEYOUUONUUKYFIYNXLTXHUUKYSUUQNUUEBRYRUHXEUOXIUUEUUBUUTNUUKUUEUUAUUSAMUUE
      YGUULDUWTWISTWKXJXKXMXNXCWNVKUNTYJYKYLWOUUCOZYEYKUXAOYIYEYKYLUXAYCUVMYFVF
      GYKYLVGYDYCUVHUVMUVJUVHUVKUVMCUVGPFUQUVNXOQYDYFUUIXPCYFXQXRYLUUCXSXTTUNYA
      $.

    $( A suffix of a concatenation is either a suffix of the second
       concatenated word or a concatenation of a suffix of the first word with
       the second word.  (Contributed by Alexander van der Vekens,
       31-Mar-2018.)  (Revised by Alexander van der Vekens, 30-May-2018.) $)
    swrdccat3b $p |- ( ( A e. Word V /\ B e. Word V )
                 -> ( M e. ( 0 ... ( L + ( # ` B ) ) )
                      -> ( ( A ++ B ) substr <. M , ( L + ( # ` B ) ) >. )
         = if ( L <_ M , ( B substr <. ( M - L ) , ( # ` B ) >. ) ,
                         ( ( A substr <. M , L >. ) ++ B ) ) ) ) $=
      ( wcel wa cc0 chash co cconcat cop csubstr wceq cc adantr 3ad2ant1 oveq2d
      cif cword cfv caddc cfz cle wbr cmin simpl simpr elfzubelfz swrdccat3 imp
      adantl syl12anc swrdccat3blem wn w3a iftrue 3ad2ant3 nn0cnd eqcomi eleq1i
      lencl pncan2 sylanb syl2an eqcomd opeq2d eqtrd iffalse swrdid eqtr2d 2if2
      eqtr4d ex ) AEUAZGZBVPGZHZDICBJUBZUCKZUDKZGZABLKDWAMZNKZCDUEUFZBDCUGKZVTM
      ZNKZADCMNKZBLKZTZOVSWCHZWEWACUEUFZAWDNKZWFBWGWACUGKZMZNKZWJBIWPMZNKZLKZTT
      ZWLWMVSWCWAWBGZWEXBOZVSWCUHVSWCUIWCXCVSDIWAUJUMVSWCXCHXDABCDWAEFUKULUNWMW
      NWFWOWRXAWLABCDEFUOWMWNUPZWFUQZWLWIWRWFWMWLWIOXEWFWIWKURUSXFWHWQBNXFVTWPW
      GWMXEVTWPOZWFVSXGWCVSWPVTVQAJUBZPGZVTPGZWPVTOZVRVQXHEAVCUTVRVTEBVCUTXICPG
      XJXKXHCPCXHFVAVBCVTVDVEVFZVGQRVHSVIWMXEWFUPZUQZWLWKXAXMWMWLWKOXEWFWIWKVJU
      SXNBWTWJLXNWTBIVTMZNKZBXNWSXOBNXNWPVTIWMXEXKXMVSXKWCXLQRVHSWMXEXPBOZXMVSX
      QWCVRXQVQEBVKUMQRVLSVIVMVNVO $.
  $}

  $( A prefix of a concatenation of length of the first concatenated word is
     the first word itself.  (Contributed by Alexander van der Vekens,
     20-Sep-2018.) $)
  swrdccatid $p |- ( ( A e. Word V /\ B e. Word V /\ N = ( # ` A ) )
                       -> ( ( A ++ B ) substr <. 0 , N >. ) = A ) $=
    ( wcel chash cfv wceq cconcat co cc0 cop csubstr cle wbr wa cn0 mpbird syl
    wb cword w3a cif caddc cfz 3simpa lencl simplr eleq1 adantl nn0addcl ancoms
    cmin wi adantr nn0re anim1i nn0addge1 breq1 elfz2nn0 syl3anbrc syl5com 3imp
    cr exp31 eqid swrdccat3a sylc leidd 3ad2ant1 3ad2ant3 iftrued swrdid oveq2d
    opeq2 eqeq1d 3eqtrd ) ADUAZEZBVREZCAFGZHZUBZABIJKCLZMJZCWANOZAWDMJZABKCWAUM
    JLMJIJZUCZWGAWCVSVTPCKWABFGZUDJZUEJEZWEWIHVSVTWBUFVSVTWBWLVSWAQEZVTWBWLUNZD
    AUGZVTWJQEZWMWNUNDBUGWPWMWBWLWPWMPZWBPZCQEZWKQEZCWKNOZWLWRWSWMWPWMWBUHWBWSW
    MTWQCWAQUIUJRWQWTWBWMWPWTWAWJUKULUOWRXAWAWKNOZWQXBWBWQWAVDEZWPPZXBWMWPXDWMX
    CWPWAUPZUQULWAWJURSUOWBXAXBTWQCWAWKNUSUJRCWKUTVAVESVBVCABWACDWAVFVGVHWCWFWG
    WHWCWFWAWANOZVSVTXFWBVSWAVSWMXCWOXESVIVJWBVSWFXFTVTCWAWANUSVKRVLWCWGAHZAKWA
    LZMJZAHZVSVTXJWBDAVMVJWBVSXGXJTVTWBWGXIAWBWDXHAMCWAKVOVNVPVKRVQ $.

  $( A word is a prefix of a word with length greater by 1 than the first word
     iff the second word is the first word concatenated with the last symbol of
     the second word.  (Contributed by AV, 24-Oct-2018.) $)
  ccats1swrdeqbi $p |- ( ( W e. Word V /\ U e. Word V
                           /\ ( # ` U ) = ( ( # ` W ) + 1 ) )
                         -> ( W = ( U substr <. 0 , ( # ` W ) >. )
                              <-> U = ( W ++ <" ( lastS ` U ) "> ) ) ) $=
    ( cword wcel chash cfv caddc wceq w3a cc0 cop csubstr clsw cs1 ccats1swrdeq
    c1 co cconcat eqcomd simp1 cn cn0 lencl nn0p1nn syl 3ad2ant1 3simpc syl2anc
    wa lswlgt0cl s1cld eqidd swrdccatid syl3anc oveq1 sylan9eq ex impbid ) CBDZ
    EZAUTEZAFGCFGZQHRZIZJZCAKVCLZMRZIZACANGZOZSRZIZABCPVFVMVIVFVMCVLVGMRZVHVFVA
    VKUTEZVCVCIZCVNIVAVBVEUAVFVJBVFVDUBEZVBVEUJVJBEVAVBVQVEVAVCUCEVQBCUDVCUEUFU
    GVAVBVEUHVDBAUKUIULVFVCUMVAVOVPJVNCCVKVCBUNTUOVMVHVNAVLVGMUPTUQURUS $.

  ${
    swrdccatind.l $e |- ( ph -> ( # ` A ) = L ) $.
    swrdccatind.w $e |- ( ph -> ( A e. Word V /\ B e. Word V ) ) $.
    ${
      swrdccatin1d.1 $e |- ( ph -> M e. ( 0 ... N ) ) $.
      swrdccatin1d.2 $e |- ( ph -> N e. ( 0 ... L ) ) $.
      $( The subword of a concatenation of two words within the first of the
         concatenated words.  (Contributed by AV, 31-May-2018.)  (Revised by
         Mario Carneiro/AV, 21-Oct-2018.) $)
      swrdccatin1d $p |- ( ph -> ( ( A ++ B ) substr <. M , N >. )
                                 = ( A substr <. M , N >. ) ) $=
        ( cword wcel wa cc0 cfz co chash csubstr wceq cfv cconcat oveq2 syl5ibr
        cop eleq2d mpcom jca swrdccatin1 sylc ) ABGLZMCUKMNEOFPQMZFOBRUAZPQZMZN
        BCUBQEFUEZSQBUPSQTIAULUOJUMDTZAUOHAUOUQFODPQZMKUQUNURFUMDOPUCUFUDUGUHBC
        EFGUIUJ $.
    $}

    ${
      swrdccatin2d.1 $e |- ( ph -> M e. ( L ... N ) ) $.
      swrdccatin2d.2 $e |- ( ph -> N e. ( L ... ( L + ( # ` B ) ) ) ) $.
      $( The subword of a concatenation of two words within the second of the
         concatenated words.  (Contributed by AV, 31-May-2018.)  (Revised by
         Mario Carneiro/AV, 21-Oct-2018.) $)
      swrdccatin2d $p |- ( ph -> ( ( A ++ B ) substr <. M , N >. )
                                = ( B substr <. ( M - L ) , ( N - L ) >. ) ) $=
        ( wceq co cop csubstr cmin wcel wa cfz caddc chash cconcat cword adantl
        cfv jca wb oveq1 eleq2d id oveq12d anbi12d adantr mpbird ex swrdccatin2
        eqid imp syl6 oveq2 opeq12d oveq2d eqeq2d sylibd mpcom ) BUAUEZDLZABCUB
        MEFNOMZCEDPMZFDPMZNZOMZLZHVGAVHCEVFPMZFVFPMZNZOMZLZVMVGABGUCZQCVSQRZEVF
        FSMZQZFVFVFCUAUEZTMZSMZQZRZRZVRVGAWHVGARZVTWGAVTVGIUDWIWGEDFSMZQZFDDWCT
        MZSMZQZRZAWOVGAWKWNJKUFUDVGWGWOUGAVGWBWKWFWNVGWAWJEVFDFSUHUIVGWEWMFVGVF
        DWDWLSVGUJVFDWCTUHUKUIULUMUNUFUOVTWGVRBCVFEFGVFUQUPURUSVGVQVLVHVGVPVKCO
        VGVNVIVOVJVFDEPUTVFDFPUTVAVBVCVDVE $.
    $}

    ${
      swrdccatin12d.1 $e |- ( ph -> M e. ( 0 ... L ) ) $.
      swrdccatin12d.2 $e |- ( ph -> N e. ( L ... ( L + ( # ` B ) ) ) ) $.
      $( The subword of a concatenation of two words within both of the
         concatenated words.  (Contributed by AV, 31-May-2018.)  (Revised by
         Mario Carneiro/AV, 21-Oct-2018.) $)
      swrdccatin12d $p |- ( ph -> ( ( A ++ B ) substr <. M , N >. )
                               = ( ( A substr <. M , L >. )
                                 ++ ( B substr <. 0 , ( N - L ) >. ) ) ) $=
        ( wceq cconcat co cop csubstr cc0 wa wcel cfz chash cfv cword caddc jca
        cmin adantl wb oveq2 eleq2d id oveq1 oveq12d anbi12d adantr mpbird eqid
        swrdccatin12 sylc ex opeq2 oveq2d opeq2d eqeq2d sylibd mpcom ) BUAUBZDL
        ZABCMNEFOPNZBEDOZPNZCQFDUFNZOZPNZMNZLZHVHAVIBEVGOZPNZCQFVGUFNZOZPNZMNZL
        ZVPVHAWCVHARZBGUCZSCWESRZEQVGTNZSZFVGVGCUAUBZUDNZTNZSZRZWCAWFVHIUGWDWME
        QDTNZSZFDDWIUDNZTNZSZRZAWSVHAWOWRJKUEUGVHWMWSUHAVHWHWOWLWRVHWGWNEVGDQTU
        IUJVHWKWQFVHVGDWJWPTVHUKVGDWIUDULUMUJUNUOUPBCVGEFGVGUQURUSUTVHWBVOVIVHV
        RVKWAVNMVHVQVJBPVGDEVAVBVHVTVMCPVHVSVLQVGDFUFUIVCVBUMVDVEVF $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Splicing words (substring replacement)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d b s F $.  $d b s R $.  $d b s S $.  $d b s T $.  $d b s V $.
    $d b s W $.  $d b s X $.  $d b s Y $.
    $( Value of the substring replacement operator.  (Contributed by Stefan
       O'Rear, 15-Aug-2015.) $)
    splval $p |- ( ( S e. V /\ ( F e. W /\ T e. X /\ R e. Y ) ) ->
        ( S splice <. F , T , R >. ) = ( ( ( S substr <. 0 , F >. ) ++ R )
          ++ ( S substr <. T , ( # ` S ) >. ) ) ) $=
      ( vs vb wcel cvv c1st cfv csubstr co c2nd cconcat wceq adantl w3a wa cotp
      cv cc0 chash csplice cmpt2 df-splice simprl fveq2 fveq2d ot1stg sylan9eqr
      cop a1i opeq2d oveq12d ot3rdg 3ad2ant3 ot2ndg opeq12d elex adantr ovmpt2d
      otex ovexd ) BEKZDFKZCGKZAHKZUAZUBZIJBDCAUCZLLIUDZUEJUDZMNZMNZUOZOPZVPQNZ
      RPZVOVQQNZVOUFNZUOZOPZRPZBUEDUOZOPZARPZBCBUFNZUOZOPZRPUGLUGIJLLWGUHSVMIJU
      IUPVMVOBSZVPVNSZUBZUBZWBWJWFWMRWQVTWIWAARWQVOBVSWHOVMWNWOUJZWQVRDUEWPVMVR
      VNMNZMNZDWOVRWTSWNWOVQWSMVPVNMUKZULTVLWTDSVHDCAFGHUMTUNUQURWPVMWAVNQNZAWO
      WAXBSWNVPVNQUKTVLXBASZVHVKVIXCVJDCAHUSUTTUNURWQVOBWEWLOWRWQWCCWDWKWPVMWCW
      SQNZCWOWCXDSWNWOVQWSQXAULTVLXDCSVHDCAFGHVATUNWQVOBUFWRULVBURURVHBLKVLBEVC
      VDVNLKVMDCAVFUPVMWJWMRVGVE $.

    $( Closure of the substring replacement operator.  (Contributed by Stefan
       O'Rear, 26-Aug-2015.) $)
    splcl $p |- ( ( S e. Word A /\ R e. Word A ) ->
        ( S splice <. F , T , R >. ) e. Word A ) $=
      ( vs vb wcel cc0 c1st cfv cop csubstr c2nd cconcat chash wceq cvv fveq2d
      co cword wa cotp csplice elex otex cv id fveq2 opeq2d simpr oveq12d simpl
      oveqan12d opeq12d ovex ovmpt2a sylancl adantr swrdcl ot3rdg adantl ccatcl
      df-splice eqeltrd syl2anc ) CAUAZHZBVGHZUBZCEDBUCZUDTZCIVKJKZJKZLZMTZVKNK
      ZOTZCVMNKZCPKZLZMTZOTZVGVHVLWCQZVIVHCRHVKRHWDCVGUEEDBUFFGCVKRRFUGZIGUGZJK
      ZJKZLZMTZWFNKZOTZWEWGNKZWEPKZLZMTZOTWCUDWECQZWFVKQZUBZWLVRWPWBOWSWJVPWKVQ
      OWQWRWECWIVOMWQUHWRWHVNIWRWGVMJWFVKJUISUJUNWSWFVKNWQWRUKZSULWSWECWOWAMWQW
      RUMZWSWMVSWNVTWSWGVMNWSWFVKJWTSSWSWECPXASUOULULFGVDVRWBOUPUQURUSVJVRVGHZW
      BVGHZWCVGHVJVPVGHZVQVGHXBVHXDVIACIVNUTUSVJVQBVGVIVQBQVHEDBVGVAVBVHVIUKVEA
      VPVQVCVFVHXCVIACVSVTUTUSAVRWBVCVFVE $.

    $( Splicing a subword for the same subword makes no difference.
       (Contributed by Stefan O'Rear, 20-Aug-2015.) $)
    splid $p |- ( ( S e. Word A /\ ( X e. ( 0 ... Y ) /\
        Y e. ( 0 ... ( # ` S ) ) ) ) ->
      ( S splice <. X , Y , ( S substr <. X , Y >. ) >. ) = S ) $=
      ( wcel cc0 cfz co cfv wa cop csubstr cconcat wceq elfzuz eluzfz1 ccatswrd
      cvv syl eqtrd cword chash cotp csplice ovex splval mp3anr3 simpl ad2antrl
      cuz simprl simprr syl13anc oveq1d ad2antll elfzuz2 eluzfz2 swrdid adantr
      ) BAUAZEZCFDGHZEZDFBUBIZGHZEZJZJZBCDBCDKZLHZUCUDHZBFCKLHVJMHZBDVDKLHZMHZB
      VAVCVFVJREVKVNNBVILUEVJBDCUTVBVERUFUGVHVNBFDKLHZVMMHZBVHVLVOVMMVHVAFFCGHE
      ZVCVFVLVONVAVGUHZVHCFUJIZEZVQVCVTVAVFCFDOUIFCPSVAVCVFUKVAVCVFULZABFCDQUMU
      NVHVPBFVDKLHZBVHVAFVBEZVFVDVEEZVPWBNVRVHDVSEZWCVFWEVAVCDFVDOUOFDPSWAVHVDV
      SEZWDVFWFVAVCDFVDUPUOFVDUQSABFDVDQUMVAWBBNVGABURUSTTT $.
  $}

  ${
    spllen.s $e |- ( ph -> S e. Word A ) $.
    spllen.f $e |- ( ph -> F e. ( 0 ... T ) ) $.
    spllen.t $e |- ( ph -> T e. ( 0 ... ( # ` S ) ) ) $.
    spllen.r $e |- ( ph -> R e. Word A ) $.
    $( The length of a splice.  (Contributed by Stefan O'Rear, 23-Aug-2015.) $)
    spllen $p |- ( ph -> ( # ` ( S splice <. F , T , R >. ) ) =
          ( ( # ` S ) + ( ( # ` R ) - ( T - F ) ) ) ) $=
      ( co chash cfv cc0 caddc cmin wcel wceq syl syl2anc csplice csubstr cword
      cop cconcat cfz splval syl13anc fveq2d swrdcl ccatcl ccatlen lencl nn0cnd
      cotp cn0 elfzelz zcnd addcld elfzel2 addsub12d cuz elfzuz eluzfz1 elfzuz3
      cz elfzuzb sylanbrc swrdlen syl3anc subid1d oveq1d addcomd 3eqtrd elfzuz2
      uztrn eqtrd eluzfz2 oveq12d subsub3d oveq2d 3eqtr4d ) ADFECUOUAKZLMDNFUDU
      BKZCUEKZDEDLMZUDUBKZUEKZLMZWELMZWGLMZOKZWFCLMZEFPKPKZOKZAWCWHLADBUCZQZFNE
      UFKZQZENWFUFKZQZCWPQZWCWHRGHIJCDEFWPWRWTWPUGUHUIAWEWPQZWGWPQZWIWLRAWDWPQZ
      XBXCAWQXEGBDNFUJSZJBWDCUKTAWQXDGBDEWFUJSBWEWGULTAWMFOKZWFEPKZOKWFXGEPKZOK
      WLWOAXGWFEAWMFAWMAXBWMUPQJBCUMSUNZAFAWSFVFQHFNEUQSURZUSAWFAXAWFVFQIENWFUT
      SURAEAXAEVFQIENWFUQSURZVAAWJXGWKXHOAWJWDLMZWMOKZFWMOKXGAXEXBWJXNRXFJBWDCU
      LTAXMFWMOAXMFNPKZFAWQNNFUFKQZFWTQZXMXORGAFNVBMZQZXPAWSXSHFNEVCSZNFVDSAXSW
      FFVBMZQZXQXTAWFEVBMQZEYAQZYBAXAYCIENWFVESAWSYDHFNEVESEWFFVPTFNWFVGVHBDNFV
      IVJAFXKVKVQVLAFWMXKXJVMVNAWQXAWFWTQZWKXHRGIAWFXRQZYEAXAYFIENWFVOSNWFVRSBD
      EWFVIVJVSAWNXIWFOAWMEFXJXLXKVTWAWBVN $.

    ${
      splfv1.x $e |- ( ph -> X e. ( 0 ..^ F ) ) $.
      $( Symbols to the left of a splice are unaffected.  (Contributed by
         Stefan O'Rear, 23-Aug-2015.) $)
      splfv1 $p |- ( ph -> ( ( S splice <. F , T , R >. ) ` X ) =
            ( S ` X ) ) $=
        ( co cfv cc0 chash wcel wceq cfzo syl csplice cop csubstr cconcat cword
        cotp cfz splval syl13anc fveq1d swrdcl ccatcl syl2anc caddc cuz wss cn0
        cz elfzelz uzid 3syl wrdfin hashcl uzaddcl fzoss2 sseldd ccatlen elfzuz
        cfn cmin eluzfz1 wa fzass4 bicomi simplbi swrdlen syl3anc subid1d eqtrd
        zcnd oveq1d oveq2d eleqtrrd ccatval1 swrdfv syl31anc cc elfzoelz fveq2d
        addid1d 3eqtrd ) AGDFECUFUAMZNGDOFUBUCMZCUDMZDEDPNZUBUCMZUDMZNZGWNNZGDN
        ZAGWLWQADBUEZQZFOEUGMZQZEOWOUGMZQZCXAQZWLWQRHIJKCDEFXAXCXEXAUHUIUJAWNXA
        QZWPXAQZGOWNPNZSMZQWRWSRAWMXAQZXGXHAXBXLHBDOFUKTZKBWMCULUMAXBXIHBDEWOUK
        TAGOFCPNZUNMZSMZXKAOFSMZXPGAXOFUONZQZXQXPUPAFXRQZXNUQQZXSAXDFURQZXTIFOE
        USZFUTVAAXGCVIQYAKBCVBCVCVAXNFFVDUMFOXOVETLVFAXJXOOSAXJWMPNZXNUNMZXOAXL
        XGXJYERXMKBWMCVGUMAYDFXNUNAYDFOVJMZFAXBOOFUGMQZFXEQZYDYFRHAXDFOUONQYGIF
        OEVHOFVKVAZAXDXFYHIJXDXFVLZYHEFWOUGMQZYHYKVLYJOFEWOVMVNVOUMZBDOFVPVQAFA
        FAXDYBIYCTVTVRZVSZWAVSWBWCBWNWPGWDVQAWSGWMNZGOUNMZDNZWTAXLXGGOYDSMZQWSY
        ORXMKAGXQYRLAYDFOSYNWBWCBWMCGWDVQAXBYGYHGOYFSMZQYOYQRHYIYLAGXQYSLAYFFOS
        YMWBWCBDOFGWEWFAYPGDAGAGXQQZGWGQLYTGGOFWHVTTWJWIWKWK $.
    $}

    ${
      splfv2a.x $e |- ( ph -> X e. ( 0 ..^ ( # ` R ) ) ) $.
      $( Symbols within the replacement region of a splice, expressed using the
         coordinates of the replacement region.  (Contributed by Stefan O'Rear,
         23-Aug-2015.) $)
      splfv2a $p |- ( ph -> ( ( S splice <. F , T , R >. ) ` ( F + X ) ) =
            ( R ` X ) ) $=
        ( caddc co cfv cc0 wcel wceq cn0 syl cotp csplice csubstr chash cconcat
        cop cword cfz splval syl13anc elfznn0 nn0cnd cfzo elfzoelz zcnd addcomd
        cz cmin nn0uz syl6eleq eluzfz1 elfzuz3 syl2anc elfzuzb sylanbrc swrdlen
        cuz uztrn syl3anc subid1d eqtrd oveq2d eqtr4d fveq12d swrdcl ccatcl wss
        0nn0 nn0addcl sylancr fzoss1 eleq2s ccatlen oveq1d wrdfin hashcl 3eqtrd
        cfn sseqtr4d nn0zd fzoaddel sseldd eqeltrd ccatval1 ccatval3 ) AFGMNZDF
        ECUAUBNZOGDPFUFUCNZUDOZMNZWRCUENZDEDUDOZUFUCNZUENZOZWTXAOZGCOZAWPWTWQXD
        ADBUGZQZFPEUHNZQZEPXBUHNZQZCXHQZWQXDRHIJKCDEFXHXJXLXHUIUJAWPGFMNZWTAFGA
        FAXKFSQZIFEUKTZULZAGAGPCUDOZUMNQZGUQQLGPXSUNTUOUPAWSFGMAWSFPURNZFAXIPPF
        UHNQZFXLQZWSYARHAFPVGOZQZYBAFSYDXQUSUTZPFVATAYEXBFVGOZQZYCYFAXBEVGOQZEY
        GQZYHAXMYIJEPXBVBTAXKYJIFPEVBTEXBFVHVCFPXBVDVEBDPFVFVIAFXRVJVKZVLZVMVNA
        XAXHQZXCXHQZWTPXAUDOZUMNZQXEXFRAWRXHQZXNYMAXIYQHBDPFVOTZKBWRCVPVCAXIYNH
        BDEXBVOTAWTXOYPYLAPFMNZXSFMNZUMNZYPXOAUUAPYTUMNZYPAYSSQZUUAUUBVQZAPSQXP
        UUCVRXQPFVSVTUUDYSYDSYSPYTWAUSWBTAYOYTPUMAYOWSXSMNZFXSMNYTAYQXNYOUUERYR
        KBWRCWCVCAWSFXSMYKWDAFXSXRAXSACWHQZXSSQAXNUUFKBCWETCWFTULUPWGVLWIAXTFUQ
        QXOUUAQLAFXQWJGPXSFWKVCWLWMBXAXCWTWNVIAYQXNXTXFXGRYRKLBWRCGWOVIWG $.
    $}
  $}

  ${
    splval2.a $e |- ( ph -> A e. Word X ) $.
    splval2.b $e |- ( ph -> B e. Word X ) $.
    splval2.c $e |- ( ph -> C e. Word X ) $.
    splval2.r $e |- ( ph -> R e. Word X ) $.
    splval2.s $e |- ( ph -> S = ( ( A ++ B ) ++ C ) ) $.
    splval2.f $e |- ( ph -> F = ( # ` A ) ) $.
    splval2.t $e |- ( ph -> T = ( F + ( # ` B ) ) ) $.
    $( Value of a splice, assuming the input word ` S ` has already been
       decomposed into its pieces.  (Contributed by Mario Carneiro,
       1-Oct-2015.) $)
    splval2 $p |- ( ph ->
      ( S splice <. F , T , R >. ) = ( ( A ++ R ) ++ C ) ) $=
      ( co cc0 wcel wceq csplice cop csubstr cconcat chash cfv cword cn0 ccatcl
      cotp syl2anc eqeltrd lencl syl caddc nn0addcld splval syl13anc wa cfz cuz
      nn0uz syl6eleq eluzfz1 nn0zd uzid uzaddcl elfzuzb sylanbrc ccatlen fveq2d
      cz oveq1d 3eqtr4d ccatswrd eluzfz2 swrdid 3eqtrd wb swrdcl swrd0len eqtrd
      ccatopth syl221anc mpbid simpld uztrn simprd oveq12d ) AFHGEUJUAQZFRHUBUC
      QZEUDQZFGFUEUFZUBUCQZUDQZBEUDQZDUDQAFIUGZSZHUHSGUHSEWQSWJWOTAFBCUDQZDUDQZ
      WQNAWSWQSZDWQSZWTWQSABWQSZCWQSZXAJKIBCUIUKZLIWSDUIUKULZAHBUEUFZUHOAXCXGUH
      SJIBUMUNULZAGHCUEUFZUOQZUHPAHXIXHAXDXIUHSZKICUMUNZUPULZMEFGHWQUHUHWQUQURA
      WLWPWNDUDAWKBEUDAWKBTZFHGUBUCQZCTZAWKXOUDQZWSTZXNXPUSZAXQFRGUBUCQZWSAWRRR
      HUTQSZHRGUTQZSZGRWMUTQZSZXQXTTXFAHRVAUFZSZYAAHUHYFXHVBVCZRHVDUNAYGGHVAUFZ
      SZYCYHAGXJYIPAHYISZXKXJYISAHVLSYKAHXHVEHVFUNXLXIHHVGUKULZHRGVHVIAGYFSZWMG
      VAUFZSZYEAGUHYFXMVBVCZAWMGDUEUFZUOQZYNAWTUEUFZWSUEUFZYQUOQZWMYRAXAXBYSUUA
      TXELIWSDVJUKAFWTUENVKAGYTYQUOAXJXGXIUOQZGYTAHXGXIUOOVMPAXCXDYTUUBTJKIBCVJ
      UKVNZVMVNAGYNSZYQUHSZYRYNSAGVLSUUDAGXMVEGVFUNAXBUUELIDUMUNYQGGVGUKULZGRWM
      VHVIZIFRHGVOURAXTWSTZWNDTZAXTWNUDQZWTTZUUHUUIUSZAUUJFRWMUBUCQZFWTAWRRYBSZ
      YEWMYDSZUUJUUMTXFAYMUUNYPRGVDUNUUGAWMYFSUUOAWMUHYFAWRWMUHSXFIFUMUNVBVCRWM
      VPUNIFRGWMVOURAWRUUMFTXFIFVQUNNVRAXTWQSZWNWQSZXAXBXTUEUFZYTTUUKUULVSAWRUU
      PXFIFRGVTUNAWRUUQXFIFGWMVTUNXELAUURGYTAWRYEUURGTXFUUGIFGWAUKUUCWBXTWNWSDI
      WCWDWEZWFWBAWKWQSZXOWQSZXCXDWKUEUFZXGTXRXSVSAWRUUTXFIFRHVTUNAWRUVAXFIFHGV
      TUNJKAUVBHXGAWRHYDSZUVBHTXFAYGWMYISZUVCYHAYOYJUVDUUFYLGWMHWGUKHRWMVHVIIFH
      WAUKOWBWKXOBCIWCWDWEWFVMAUUHUUIUUSWHWIWB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Reversing words
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d w x W $.  $d x A $.  $d x X $.
    $( Value of the word reversing function.  (Contributed by Stefan O'Rear,
       26-Aug-2015.) $)
    revval $p |- ( W e. V -> ( reverse ` W ) = ( x e. ( 0 ..^ ( # ` W ) ) |->
          ( W ` ( ( ( # ` W ) - 1 ) - x ) ) ) ) $=
      ( vw wcel cvv creverse cfv cc0 chash cfzo co c1 cmin cmpt wceq elex fveq2
      cv oveq1d oveq2d id fveq12d mpteq12dv df-reverse ovex mptex fvmpt syl ) C
      BECFECGHAICJHZKLZUJMNLZASZNLZCHZOZPCBQDCAIDSZJHZKLZURMNLZUMNLZUQHZOUPFGUQ
      CPZAUSVBUKUOVCURUJIKUQCJRZUAVCVAUNUQCVCUBVCUTULUMNVCURUJMNVDTTUCUDADUEAUK
      UOIUJKUFUGUHUI $.

    $( The reverse of a word is a word.  (Contributed by Stefan O'Rear,
       26-Aug-2015.) $)
    revcl $p |- ( W e. Word A -> ( reverse ` W ) e. Word A ) $=
      ( vx cword wcel creverse cfv cc0 chash cfzo co c1 cmin cmpt revval adantr
      cv wf wa syl wrdf cfz simpr wceq cn0 lencl nn0zd fzoval eleqtrd fznn0sub2
      cz eleqtrrd ffvelrnd eqid fmptd iswrdi eqeltrd ) BADZEZBFGCHBIGZJKZUTLMKZ
      CQZMKZBGZNZURCURBOUSVAAVFRVFUREUSCVAVEAVFUSVCVAEZSZVAAVDBUSVAABRVGABUAPVH
      VDHVBUBKZVAVHVCVIEVDVIEVHVCVAVIUSVGUCVHUTUKEVAVIUDVHUTUSUTUEEVGABUFPUGHUT
      UHTZUIVCVBUJTVJULUMVFUNUOAUTVFUPTUQ $.

    $( The reverse of a word has the same length as the original.  (Contributed
       by Stefan O'Rear, 26-Aug-2015.) $)
    revlen $p |- ( W e. Word A ->
        ( # ` ( reverse ` W ) ) = ( # ` W ) ) $=
      ( vx cword wcel creverse cfv chash cfzo co c1 cmin cv cmpt wf wceq adantr
      cc0 3syl syl revval fveq2d wfn wa wrdf cfz simpr cn0 cz lencl nn0z fzoval
      eleqtrd fznn0sub2 eleqtrrd ffvelrnd eqid fmptd ffn hashfn hashfzo0 3eqtrd
      ) BADZEZBFGZHGCRBHGZIJZVFKLJZCMZLJZBGZNZHGZVGHGZVFVDVEVLHCVCBUAUBVDVGAVLO
      VLVGUCVMVNPVDCVGVKAVLVDVIVGEZUDZVGAVJBVDVGABOVOABUEQVPVJRVHUFJZVGVPVIVQEV
      JVQEVPVIVGVQVDVOUGVPVFUHEZVFUIEVGVQPVDVRVOABUJZQVFUKRVFULSZUMVIVHUNTVTUOU
      PVLUQURVGAVLUSVGVLUTSVDVRVNVFPVSVFVATVB $.

    $( Reverse of a word at a point.  (Contributed by Stefan O'Rear,
       26-Aug-2015.) $)
    revfv $p |- ( ( W e. Word A /\ X e. ( 0 ..^ ( # ` W ) ) ) ->
        ( ( reverse ` W ) ` X ) = ( W ` ( ( ( # ` W ) - 1 ) - X ) ) ) $=
      ( vx cword wcel cc0 chash cfv cfzo co creverse c1 cmin cmpt revval fveq1d
      cv wceq oveq2 fveq2d eqid fvex fvmpt sylan9eq ) BAEZFZCGBHIZJKZFCBLIZICDU
      IUHMNKZDRZNKZBIZOZIUKCNKZBIZUGCUJUODUFBPQDCUNUQUIUOULCSUMUPBULCUKNTUAUOUB
      UPBUCUDUE $.

    $( The empty word is its own reverse.  (Contributed by Stefan O'Rear,
       26-Aug-2015.) $)
    rev0 $p |- ( reverse ` (/) ) = (/) $=
      ( c0 creverse cfv chash cc0 wceq cword wcel wrd0 revlen ax-mp hash0 eqtri
      cvv wb fvex hasheq0 mpbi ) ABCZDCZEFZSAFZTADCZEANGHTUCFNINAJKLMSNHUAUBOAB
      PSNQKR $.

    $d x S $.  $d x T $.
    $( Singleton words are their own reverses.  (Contributed by Stefan O'Rear,
       26-Aug-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
    revs1 $p |- ( reverse ` <" S "> ) = <" S "> $=
      ( cc0 cs1 creverse cfv cid wceq chash c1 cmin co cword wcel cfzo cn mp2an
      cvv oveq1i eqtri ax-mp s1cli s1len eqeltri lbfzo0 mpbir revfv 1m1e0 0m0e0
      1nn fveq2i ids1 fveq1i fvex s1fv s1eq revcl revlen eqs1 3eqtr4i ) BACZDEZ
      EZCZAFEZCZVAUTVBVDGVCVEGVBUTHEZIJKZBJKZUTEZVDUTQLZMZBBVFNKMZVBVIGAUAZVLVF
      OMVFIOAUBZUIUCVFUDUEQUTBUFPVIBUTEZVDVHBUTVHBBJKBVGBBJVGIIJKBVFIIJVNRUGSRU
      HSUJVOBVEEZVDBUTVEAUKZULVDQMVPVDGAFUMVDQUNTSSSVBVDUOTVAVJMZVAHEZIGVAVCGVK
      VRVMQUTUPTVSVFIVKVSVFGVMQUTUQTVNSQVAURPVQUS $.

    $( Antiautomorphic property of the reversal operation.  (Contributed by
       Stefan O'Rear, 27-Aug-2015.) $)
    revccat $p |- ( ( S e. Word A /\ T e. Word A ) ->
        ( reverse ` ( S ++ T ) ) =
          ( ( reverse ` T ) ++ ( reverse ` S ) ) ) $=
      ( wcel cc0 chash cfv caddc co cfzo wceq syl cc eqtrd oveq2d syl2anr cz c1
      cmin adantr vx cword wa cconcat creverse wfn ccatcl revcl wrdf ffn revlen
      wf 4syl ccatlen lencl nn0cnd addcom syl2an mpbid 3syl oveqan12rd cv wo id
      fneq2d nn0zd adantl fzospliti simpll simplr fzoval eleq2d biimpa eleqtrrd
      cfz fznn0sub2 ccatval3 syl3anc oveq1d 1cnd addsubd peano2zm zcnd ad2antlr
      ad2antrr elfzoelz fveq2d adantll 3eqtr4d cuz wss cn0 uzid uzaddcl syl2anc
      revfv eqeltrd fzoss2 sselda biimpar ccatval1 eqtr4d zaddcl fzrev2i subidd
      subsub3d addcl sub32d pncan2 oveq12d 3eltr4d fzoss1 nn0uz eleq2s sseqtr4d
      fzosubel3 ccatval2 jaodan syldan eqfnfvd ) BAUBZDZCYADZUCZUAECFGZBFGZHIZJ
      IZBCUDIZUEGZCUEGZBUEGZUDIZYDYJEYJFGZJIZUFZYJYHUFYDYIYADZYJYADYOAYJULYPABC
      UGZAYIUHAYJUIYOAYJUJUMYDYOYHYJYDYNYGEJYDYNYIFGZYGYDYQYNYSKYRAYIUKLYDYSYFY
      EHIZYGABCUNZYBYFMDZYEMDZYTYGKYCYBYFABUOZUPZYCYEACUOZUPZYFYEUQURNZNOVEUSYD
      YMEYMFGZJIZUFZYMYHUFYDYMYADZUUJAYMULUUKYCYKYADZYLYADZUULYBACUHZABUHZAYKYL
      UGPAYMUIUUJAYMUJUTYDUUJYHYMYDUUIYGEJYDUUIYKFGZYLFGZHIZYGYCUUMUUNUUIUUSKYB
      UUOUUPAYKYLUNPYCYBUUQYEUURYFHACUKZABUKVAZNOVEUSYDUAVBZYHDZUVBEYEJIZDZUVBY
      EYGJIZDZVCZUVBYJGZUVBYMGZKZUVCUVCYEQDZUVHYDUVCVDYCUVLYBYCYEUUFVFZVGZUVBEY
      GYEVHPYDUVEUVKUVGYDUVEUCZYSRSIZUVBSIZYIGZUVBYKGZUVIUVJUVOYERSIZUVBSIZYFHI
      ZYIGZUWACGZUVRUVSUVOYBYCUWAUVDDUWCUWDKYBYCUVEVIYBYCUVEVJUVOUWAEUVTVOIZUVD
      UVOUVBUWEDZUWAUWEDYDUVEUWFYDUVDUWEUVBYDUVLUVDUWEKZUVNEYEVKLZVLVMUVBUVTVPL
      YDUWGUVEUWHTVNABCUWAVQVRUVOUVQUWBYIUVOUVQUVTYFHIZUVBSIZUWBYDUVQUWJKUVEYDU
      VPUWIUVBSYDUVPYGRSIZUWIYDYSYGRSUUHVSZYDYEYFRYCUUCYBUUGVGZYBUUBYCUUETZYDVT
      ZWANVSTUVOUVTYFUVBYCUVTMDYBUVEYCUVTYCUVLUVTQDUVMYEWBLWCWDYBUUBYCUVEUUEWEU
      VEUVBMDZYDUVEUVBUVBEYEWFWCVGWANWGYCUVEUVSUWDKYBACUVBWPWHWIUVOYQUVBEYSJIZD
      ZUVIUVRKZYDYQUVEYRTYDUVDUWQUVBYDYSYEWJGZDUVDUWQWKYDYSYGUWTUUHYDYEUWTDZYFW
      LDZYGUWTDYDUVLUXAUVNYEWMLYBUXBYCUUDTYFYEYEWNWOWQYEEYSWRLWSAYIUVBWPZWOUVOU
      UMUUNUVBEUUQJIZDZUVJUVSKYCUUMYBUVEUUOWDYBUUNYCUVEUUPWEYDUXEUVEYDUXDUVDUVB
      YDUUQYEEJYCUUQYEKZYBUUTVGZOVLWTAYKYLUVBXAVRWIYDUVGUCZUVRUVBUUQSIZYLGZUVIU
      VJUXHUVQBGZYFRSIZUXISIZBGZUVRUXJUXHUVQUXMBUXHUVQUXLUVBYESIZSIZUXMUXHUVQUX
      LYEHIZUVBSIZUXPYDUVQUXRKUVGYDUVPUXQUVBSYDUVPYTRSIUXQYDYSYTRSUUAVSYDYFYERU
      WNUWMUWOWANVSTUXHUXLUVBYEYBUXLMDYCUVGYBUXLYBYFQDZUXLQDYBYFUUDVFZYFWBLWCWE
      UVGUWPYDUVGUVBUVBYEYGWFWCVGYCUUCYBUVGUUGWDXFXBYDUXMUXPKUVGYDUXIUXOUXLSYDU
      UQYEUVBSUXGOOTXBWGUXHYBYCUVQEYFJIZDUVRUXKKYBYCUVGVIZYBYCUVGVJUXHUWKUVBSIZ
      UWKUWKSIZUWKYESIZVOIZUVQUYAUXHUWKQDZUVBYEUWKVOIZDZUYCUYFDYDUYGUVGYDYGQDZU
      YGYCUVLUXSUYJYBUVMUXTYEYFXCPZYGWBLZTYDUVGUYIYDUVFUYHUVBYDUYJUVFUYHKUYKYEY
      GVKLVLVMUWKUVBYEUWKXDWOYDUVQUYCKUVGYDUVPUWKUVBSUWLVSTYDUYAUYFKUVGYDUYAEUX
      LVOIZUYFYDUXSUYAUYMKYBUXSYCUXTTZEYFVKLYDUYDEUYEUXLVOYDUWKYDUWKUYLWCXEYDUY
      EYGYESIZRSIUXLYDYGRYEYCUUCUUBYGMDYBUUGUUEYEYFXGPUWOUWMXHYDUYOYFRSYCUUCUUB
      UYOYFKYBUUGUUEYEYFXIPVSNXJXBTXKABCUVQXAVRUXHYBUXIUYADUXJUXNKUYBUXHUXIUXOU
      YAUXHUUQYEUVBSYCUXFYBUVGUUTWDOUVGUVGUXSUXOUYADYDUVGVDUYNUVBYEYFXPPWQABUXI
      WPWOWIUXHYQUWRUWSYDYQUVGYRTYDUVFUWQUVBYDUVFYHUWQYDYEWLDZUVFYHWKZYCUYPYBUU
      FVGUYQYEEWJGWLYEEYGXLXMXNLYDYSYGEJUUHOXOWSUXCWOUXHUUMUUNUVBUUQUUSJIZDZUVJ
      UXJKYCUUMYBUVGUUOWDYBUUNYCUVGUUPWEYDUYSUVGYDUYRUVFUVBYDUUQYEUUSYGJUXGUVAX
      JVLWTAYKYLUVBXQVRWIXRXSXT $.

    $( Reversion is an involution on words.  (Contributed by Mario Carneiro,
       1-Oct-2015.) $)
    revrev $p |- ( W e. Word A -> ( reverse ` ( reverse ` W ) ) = W ) $=
      ( vx wcel cc0 chash cfv cfzo co creverse wfn revcl wceq revlen syl oveq2d
      eqtrd c1 cmin adantr cword wf wrdf 4syl fneq2d mpbid wrdfn cv wa eleqtrrd
      ffn simpr revfv syl2anc oveq1d fveq2d cz lencl nn0zd fzoval eleq2d biimpa
      cfz fznn0sub2 syldan cc peano2zm zcnd elfzoelz nncan syl2an eqfnfvd ) BAU
      AZDZCEBFGZHIZBJGZJGZBVNVREVRFGZHIZKZVRVPKVNVQVMDZVRVMDVTAVRUBWAABLZAVQLAV
      RUCVTAVRUKUDVNVTVPVRVNVSVOEHVNVSVQFGZVOVNWBVSWDMWCAVQNOABNZQPUEUFABUGVNCU
      HZVPDZUIZWFVRGZWDRSIZWFSIZVQGZWFBGZWHWBWFEWDHIZDWIWLMVNWBWGWCTWHWFVPWNVNW
      GULWHWDVOEHVNWDVOMWGWETZPUJAVQWFUMUNWHWLVORSIZWFSIZVQGZWMWHWKWQVQWHWJWPWF
      SWHWDVORSWOUOUOUPWHWRWPWQSIZBGZWMVNWGWQVPDWRWTMWHWQEWPVCIZVPWHWFXADZWQXAD
      VNWGXBVNVPXAWFVNVOUQDZVPXAMZVNVOABURUSZEVOUTOZVAVBWFWPVDOVNXDWGXFTUJABWQU
      MVEWHWSWFBVNWPVFDWFVFDWSWFMWGVNWPVNXCWPUQDXEVOVGOVHWGWFWFEVOVIVHWPWFVJVKU
      PQQQVL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Repeated symbol words
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d N n s x $.  $d S n s x $.
    $( Construct a function mapping a half-open range of nonnegative integers
       to a constant.  (Contributed by AV, 4-Nov-2018.) $)
    reps $p |- ( ( S e. V /\ N e. NN0 )
                 -> ( S repeatS N ) = ( x e. ( 0 ..^ N ) |-> S ) ) $=
      ( vs vn wcel cn0 wa cvv cc0 cfzo co cmpt creps wceq elex adantr simpr cv
      ovex mptexg mp1i oveq2 adantl simpll mpteq12dva df-reps ovmpt2ga syl3anc
      ) BDGZCHGZIZBJGZULAKCLMZBNZJGZBCOMUPPUKUNULBDQRUKULSUOJGUQUMKCLUAAUOBJUBU
      CEFBCJHAKFTZLMZETZNUPOJUTBPZURCPZIAUSUTUOBVBUSUOPVAURCKLUDUEVAVBATUSGUFUG
      AFEUHUIUJ $.

    $( A function mapping a half-open range of nonnegative integers with an
       upper bound not being a nonnegative integer to a constant is the empty
       set (in the meaning of "undefined").  (Contributed by AV,
       5-Nov-2018.) $)
    repsundef $p |- ( N e/ NN0 -> ( S repeatS N ) = (/) ) $=
      ( vs vn vx cn0 wnel creps cdm cvv cxp wceq wcel wa wn co c0 cc0 cv cfzo
      cmpt df-reps ovex mptex dmmpt2 df-nel biimpi intnand ndmovg sylancr ) BFG
      ZHIJFKLAJMZBFMZNOABHPQLCDJFERDSZTPZCSZUAHEDCUBEUOUPRUNTUCUDUEUKUMULUKUMOB
      FUFUGUHABJFHUIUJ $.
  $}

  ${
    $d N x $.  $d S x $.
    $( Construct a function mapping a half-open range of nonnegative integers
       to a constant, see also ~ fconstmpt .  (Contributed by AV,
       4-Nov-2018.) $)
    repsconst $p |- ( ( S e. V /\ N e. NN0 )
                 -> ( S repeatS N ) = ( ( 0 ..^ N ) X. { S } ) ) $=
      ( vx wcel cn0 wa creps co cc0 cfzo cmpt csn cxp reps fconstmpt syl6eqr )
      ACEBFEGABHIDJBKIZALRAMNDABCODRAPQ $.
  $}

  ${
    $d N x $.  $d S x $.  $d V x $.
    $( The constructed function mapping a half-open range of nonnegative
       integers to a constant is a function.  (Contributed by AV,
       4-Nov-2018.) $)
    repsf $p |- ( ( S e. V /\ N e. NN0 )
                  -> ( S repeatS N ) : ( 0 ..^ N ) --> V ) $=
      ( vx wcel cn0 wa cc0 cfzo co creps wf cmpt wral cv simpl ralrimiva adantr
      eqid fmpt sylib reps feq1d mpbird ) ACEZBFEZGZHBIJZCABKJZLUHCDUHAMZLZUGUE
      DUHNZUKUEULUFUEUEDUHUEDOUHEPQRDUHCAUJUJSTUAUGUHCUIUJDABCUBUCUD $.

    $d I x $.
    $( The symbols of a "repeated symbol word".  (Contributed by AV,
       4-Nov-2018.) $)
    repswsymb $p |- ( ( S e. V /\ N e. NN0 /\ I e. ( 0 ..^ N ) )
                      -> ( ( S repeatS N ) ` I ) = S ) $=
      ( vx wcel cn0 cc0 cfzo co w3a creps cmpt wceq reps 3adant3 cv eqidd simp3
      wa simp1 fvmptd ) ADFZCGFZBHCIJZFZKZEBAAUEACLJZDUCUDUHEUEAMNUFEACDOPUGEQB
      NTARUCUDUFSUCUDUFUAUB $.
  $}

  $( A function mapping a half-open range of nonnegative integers to a constant
     is a word consisting of one symbol repeated several times ("repeated
     symbol word").  (Contributed by AV, 4-Nov-2018.) $)
  repsw $p |- ( ( S e. V /\ N e. NN0 ) -> ( S repeatS N ) e. Word V ) $=
    ( wcel cn0 wa cc0 cfzo co creps wf cword repsf iswrdi syl ) ACDBEDFGBHICABJ
    IZKPCLDABCMCBPNO $.

  $( The length of a "repeated symbol word".  (Contributed by AV,
     4-Nov-2018.) $)
  repswlen $p |- ( ( S e. V /\ N e. NN0 ) -> ( # ` ( S repeatS N ) ) = N ) $=
    ( wcel cn0 wa creps co chash cfv cc0 cfzo wf wfn wceq repsf ffn hashfn 3syl
    hashfzo0 adantl eqtrd ) ACDZBEDZFZABGHZIJZKBLHZIJZBUEUHCUFMUFUHNUGUIOABCPUH
    CUFQUHUFRSUDUIBOUCBTUAUB $.

  $( The "repeated symbol word" of length 0.  (Contributed by AV,
     4-Nov-2018.) $)
  repsw0 $p |- ( S e. V -> ( S repeatS 0 ) = (/) ) $=
    ( wcel cc0 creps co chash cfv wceq cn0 0nn0 repswlen mpan2 cvv ovex hasheq0
    c0 wb mp1i mpbid ) ABCZADEFZGHDIZUBQIZUADJCUCKADBLMUBNCUCUDRUAADEOUBNPST $.

  ${
    $d N i $.  $d S i $.  $d W i $.
    $( Alternative definition of a "repeated symbol word".  (Contributed by AV,
       7-Nov-2018.) $)
    repsdf2 $p |- ( ( S e. V /\ N e. NN0 ) -> ( W = ( S repeatS N )
                    <-> ( W e. Word V /\ ( # ` W ) = N
                          /\ A. i e. ( 0 ..^ N ) ( W ` i ) = S ) ) ) $=
      ( wcel wa co wceq cc0 cfzo wf cfv wb adantr wfn wi jca 3syl ffn cn0 creps
      csn cxp cword chash wral w3a repsconst eqeq2d fconst2g fconstfv wss simpr
      cv snssi fss iswrdi ffzo0hash expcom syl11 adantl ex syl5bir expcomd wrdf
      imp oveq2 fneq2d biimpd com13 impd impbid pm5.32rd df-3an 3bitr4g 3bitr2d
      a1d com12 ) ADFZCUAFZGZEACUBHZIEJCKHZAUCZUDZIZWDWEELZEDUEFZEUFMZCIZBUOEMA
      IBWDUGZUHZWBWCWFEACDUIUJVTWHWGNWAWDADEUKOWBEWDPZWLGZWIWKGZWLGWHWMWBWLWNWP
      WBWLWNWPNWBWLGWNWPWBWLWNWPQWBWNWLWPWOWHWBWPBWDAEULZWBWHWPWBWHGZWIWKWRWHWE
      DUMZGWDDELWIWRWHWSWBWHUNWBWSWHVTWSWAADUPOORWDWEDEUQDCEURSWBWHWKWAWHWKQVTW
      NWAWKWHWAWNWKECUSUTWDWEETVAVBVGRVCVDVEVGWBWPWNQWLWBWIWKWNWIWBWKWNQZWIJWJK
      HZDELEXAPZWBWTQDEVFXADETWKWBXBWNWKXBWNQWBWKXBWNWKXAWDEWJCJKVHVIVJVRVKSVSV
      LOVMVCVNWQWIWKWLVOVPVQ $.
  $}

  ${
    $d S i $.  $d W i $.
    $( All the symbols of a "repeated symbol word" are the same.  (Contributed
       by AV, 10-Nov-2018.) $)
    repswsymball $p |- ( ( W e. Word V /\ S e. V )
                       -> ( W = ( S repeatS ( # ` W ) )
                            -> A. i e. ( 0 ..^ ( # ` W ) ) ( W ` i ) = S ) ) $=
      ( cword wcel wa chash cfv creps co wceq cv cc0 cfzo wral w3a df-3an a1i
      wb cn0 lencl anim2i ancoms repsdf2 syl simpl jca biantrurd 3bitr4d biimpd
      eqidd ) DCEFZACFZGZDADHIZJKLZBMDIALBNUPOKPZUOUMUPUPLZURQZUMUSGZURGZUQURUT
      VBTUOUMUSURRSUOUNUPUAFZGZUQUTTUNUMVDUMVCUNCDUBUCUDABUPCDUEUFUOVAURUOUMUSU
      MUNUGUOUPULUHUIUJUK $.
  $}

  ${
    $d W i $.
    $( A word is a "repeated symbol word" iff each of its symbols equals the
       first symbol of the word.  (Contributed by AV, 10-Nov-2018.) $)
    repswsymballbi $p |- ( W e. Word V
              -> ( W = ( ( W ` 0 ) repeatS ( # ` W ) )
                   <-> A. i e. ( 0 ..^ ( # ` W ) ) ( W ` i ) = ( W ` 0 ) ) ) $=
      ( wcel cc0 cfv chash creps co wceq cfzo wral wb c0 syl6eq cvv simpr oveq2
      wa adantr cword cv fveq2 hash0 fvex repsw0 ax-mp eqcomi 3eqtr4a ral0 fzo0
      wi raleqdv mpbiri 2thd mpancom a1d wne w3a df-3an a1i cn0 fstwrdne ancoms
      lencl adantl repsdf2 syl2anc eqidd jca biantrurd 3bitr4d ex pm2.61ine ) C
      BUADZCECFZCGFZHIZJZAUBCFVPJZAEVQKIZLZMZULCNCNJZWCVOVQEJZWDWCWDVQNGFECNGUC
      UDOWEWDSZVSWBWFNVPEHIZCVRWGNVPPDWGNJECUEVPPUFUGUHWEWDQWEVRWGJWDVQEVPHRTUI
      WEWBWDWEWBVTANLVTAUJWEVTAWANWEWAEEKINVQEEKREUKOUMUNTUOUPUQCNURZVOWCWHVOSZ
      VOVQVQJZWBUSZVOWJSZWBSZVSWBWKWMMWIVOWJWBUTVAWIVPBDZVQVBDZVSWKMVOWHWNBCVCV
      DVOWOWHBCVEVFVPAVQBCVGVHWIWLWBWIVOWJWHVOQWIVQVIVJVKVLVMVN $.
  $}

  $( The first symbol of a nonempty "repeated symbol word".  (Contributed by
     AV, 4-Nov-2018.) $)
  repswfsts $p |- ( ( S e. V /\ N e. NN ) -> ( ( S repeatS N ) ` 0 ) = S ) $=
    ( wcel cn wa cn0 cc0 cfzo co creps wceq simpl nnnn0 adantl lbfzo0 repswsymb
    cfv biimpri syl3anc ) ACDZBEDZFUABGDZHHBIJDZHABKJRALUAUBMUBUCUABNOUBUDUAUDU
    BBPSOAHBCQT $.

  $( The last symbol of a nonempty "repeated symbol word".  (Contributed by AV,
     4-Nov-2018.) $)
  repswlsw $p |- ( ( S e. V /\ N e. NN )
                     -> ( lastS ` ( S repeatS N ) ) = S ) $=
    ( wcel cn wa creps co clsw cfv chash cmin cword wceq cn0 nnnn0 repsw sylan2
    c1 adantl lsw syl cc0 cfzo simpl repswlen fzo0end eqeltrd repswsymb syl3anc
    oveq1d eqtrd ) ACDZBEDZFZABGHZIJZUPKJZSLHZUPJZAUOUPCMZDZUQUTNUNUMBODZVBBPZA
    BCQRUPVAUAUBUOUMVCUSUCBUDHZDUTANUMUNUEUNVCUMVDTUOUSBSLHZVEUOURBSLUNUMVCURBN
    VDABCUFRUKUNVFVEDUMBUGTUHAUSBCUIUJUL $.

  $( The "repeated symbol word" of length 1.  (Contributed by AV,
     4-Nov-2018.) $)
  repsw1 $p |- ( S e. V -> ( S repeatS 1 ) = <" S "> ) $=
    ( wcel c1 creps co cc0 cop csn cs1 cfzo cxp wceq 1nn0 repsconst mpan2 fzo01
    cn0 a1i cvv xpeq1d c0ex xpsng mpan 3eqtrd s1val eqtr4d ) ABCZADEFZGAHIZAJUH
    UIGDKFZAIZLZGIZULLZUJUHDRCUIUMMNADBOPUHUKUNULUKUNMUHQSUAGTCUHUOUJMUBGATBUCU
    DUEABUFUG $.

  ${
    $d L x $.  $d M x $.  $d N x $.  $d S x $.  $d V x $.
    $( A subword of a "repeated symbol word" is again a "repeated symbol word".
       The assumption N <_ L is required, because otherwise ( L < N ):
       ` ( ( S repeatS L ) substr <. M , N >. ) = (/) ` , but for M < N
       ` ( S repeatS ( N - M ) ) ) =/= (/) ` !  The proof is relatively long
       because the border cases ( ` M = N ` , ` -. ( M ..^ N ) C_ ( 0 ..^ L ) `
       must have been considered.  (Contributed by AV, 6-Nov-2018.) $)
    repswswrd $p |- ( ( ( S e. V /\ L e. NN0 ) /\ ( M e. NN0 /\ N e. NN0 )
                        /\ N <_ L ) -> ( ( S repeatS L ) substr <. M , N >. )
                                       = ( S repeatS ( N - M ) ) ) $=
      ( vx wcel cn0 wa wbr co cc0 c0 wceq syl wi wb adantl impcom adantr cle cv
      w3a creps cop csubstr cfzo cdm wss cmin caddc cfv cmpt cif cword cz repsw
      nn0z anim12i 3anass sylibr 3adant3 swrdval wf repsf 3ad2ant1 sseq2d ifbid
      fdm fzon biimpac 0ss syl6eqss iftrue cr nn0re anim12ci suble0 biimparc 0z
      zsubcl syl2anr sylancr mpbid oveq2 oveq2d cc nn0cn subidd repsw0 ad2antrr
      mpteq1d eqtrd sylan9eqr ex com12 wnel elnn0z subge0 letri3 biimprd sylbid
      wn expd com23 sylbi con3d df-nel repsundef pm2.61i syl6reqr 3eqtrd expcom
      mpt0 clt ltnle bicomd 3ad2ant2 simpr ssfzo12bi syl3anc simpl1l simpl1r cn
      0zd elfzonn0 nn0addcl syl5com df-3an ltletr 0red zre lelttr impancom syld
      imp sylanbrc elfzo0 ad2antrl pm2.24 3impia elnnz nn0readdcl ltaddsubd idd
      expcomd 3jca sylbird sylc 3imp 3adant2 syl3anbrc repswsymb mpteq2dva ltle
      impac exp31 sylibrd jca reps eqcomd iffalse notbid wo ianor 3ad2ant3 jaoi
      nn0ge0 eqtr4d pm2.61ian pm2.61d ) AEGZBHGZIZCHGZDHGZIZDBUAJZUCZABUDKZCDUE
      UFKZCDUGKZUVTUHZUIZFLDCUJKZUGKZFUBZCUKKZUVTULZUMZMUNZUWBLBUGKZUIZUWJMUNZA
      UWEUDKZUVSUVTEUOZGZCUPGZDUPGZUCZUWAUWKNUVNUVQUWTUVRUVNUVQIZUWQUWRUWSIZIUW
      TUVNUWQUVQUXBABEUQUVOUWRUVPUWSCURZDURZUSZUSUWQUWRUWSUTVAVBFUVTCDUWPVCOUVS
      UWDUWMUWJMUVSUWCUWLUWBUVSUWLEUVTVDZUWCUWLNUVNUVQUXFUVRABEVEVFUWLEUVTVIOVG
      VHUVSDCUAJZUWNUWONZUVNUVQUXGUXHPUVRUXGUXAUXHUXGUXAIZUWNUWJFMUWIUMZUWOUXIU
      WMUWNUWJNZUXIUWBMUWLUXAUXGUWBMNZUVQUXGUXLQZUVNUVQUXBUXMUXECDVJORVKUWLVLVM
      UWMUWJMVNZOUXIFUWFMUWIUXIUWELUAJZUWFMNZUXAUXOUXGUXADVOGZCVOGZIZUXOUXGQUVQ
      UXSUVNUVOUXRUVPUXQCVPZDVPZVQZRDCVROVSUXILUPGZUWEUPGZUXOUXPQVTUXAUYDUXGUVQ
      UYDUVNUVPUWSUWRUYDUVOUXDUXCDCWAWBZRRLUWEVJWCWDWLUXIUWOMUXJCDNZUXIUWOMNZPU
      XIUYFUYGUXAUYFUYGPUXGUXAUYFUYGUYFUXAUWOADDUJKZUDKZMUYFUWEUYHAUDCDDUJWEWFU
      XAUYIALUDKZMUXAUYHLAUDUVQUYHLNUVNUVQDUVPDWGGUVODWHRWIRWFUVLUYJMNUVMUVQAEW
      JWKWMWNWORWPUYFXCZUXIUYGUYKUXIIZUWEHWQZUYGUYLUWEHGZXCZUYMUXIUYKUYOUXIUYNU
      YFUYNUXIUYFUYNUYDLUWEUAJZIUXIUYFPZUWEWRZUYPUYQUYDUXIUYPUYFUXAUXGUYPUYFPZU
      VQUXGUYSPUVNUVQUYPUXGUYFUVQUYPCDUAJZUXGUYFPUVPUXQUXRUYPUYTQZUVOUYAUXTDCWS
      ZWBUVQUYTUXGUYFUVQUYFUYTUXGIZUVQUXRUXQIZUYFVUCQUVOUXRUVPUXQUXTUYAUSZCDWTO
      XAXDXBXERSWPRXFWPXGSUWEHXHVAAUWEXIOWOXJFUWIXNXKXLXMVBUVSUXGXCZCDXOJZUXHUV
      QUVNVUFVUGQUVRUVQVUGVUFUVQVUDVUGVUFQVUECDXPOXQXRUVSVUGUXHUWMUVSVUGIZUXHUW
      MVUHIUWNUWJUWOUWMUXKVUHUXNTVUHUWMUWJUWONZVUHUWMLCUAJZUVRIZVUIVUHUXBUYCBUP
      GZIZVUGUWMVUKQUVSUXBVUGUVQUVNUXBUVRUXEXRTUVSVUMVUGUVNUVQVUMUVRUVLUYCUVMVU
      LUVLYEBURZUSVFTUVSVUGXSCDLBXTYAZVUHVUKVUIVUHVUKIZUWJFUWFAUMZUWOVUPFUWFUWI
      AVUPUWGUWFGZIZUVLUVMUWHUWLGZUWIANVUHUVLVUKVURUVLUVMUVQUVRVUGYBZWKVUHUVMVU
      KVURUVLUVMUVQUVRVUGYCWKVUSUWHHGZBYDGZUWHBXOJZVUTVURVUPVVBVURUWGHGZVUPVVBU
      WGUWEYFUVSVVEVVBPZVUGVUKUVQUVNVVFUVRUVOVVFUVPVVEUVOVVBUWGCYGXMTXRWKYHSVUH
      VVCVUKVURVUHVULLBXOJZVVCUVSVULVUGUVNUVQVULUVRUVMVULUVLVUNRVFTUVSVUGVVGUVN
      UVQUVRVUGVVGPUXAVUGUVRVVGUXAVUGUVRIZCBXOJZVVGUXAUXRUXQBVOGZUCZVVHVVIPUXAV
      UDVVJIVVKUVNVVJUVQVUDUVMVVJUVLBVPZRZVUEVQUXRUXQVVJYIVACDBYJOUVQUVNVVIVVGP
      ZUVOUVNVVNPZUVPUVOUWRVUJIVVOCWRUWRUVNVUJVVNUWRUVNIZVUJVVIVVGVVPLVOGUXRVVJ
      VUJVVIIVVGPVVPYKUWRUXRUVNCYLTUVNVVJUWRVVMRLCBYMYAXDYNXFTSYOUUFUUAYPBUUBYQ
      WKVURVUPVVDVURVVEUWEYDGZUWGUWEXOJZUCVUPVVDPZUWGUWEYRVVEVVRVVSVVQVUPVVEVVR
      IZVVDUVSVVTVVDPZVUGVUKUVNUVQUVRVWAUVMUVQUVRVWAPZPUVLUVMUVQVWBUVMUVQIZVVTU
      VRVVDVWCVVTUVRVVDVWCVVTIZUVRIUWHVOGZUXQVVJUCZUWHDXOJZUVRIVVDVWDVWFUVRVVTV
      WCVWFVVEVWCVWFPVVRVVEVWCVWFVVEVWCIZVWEUXQVVJVWCVVEVWEUVOVVEVWEPUVMUVPVVEU
      VOVWEUWGCUUCXMYSSVWCUXQVVEUVQUXQUVMUVPUXQUVOUYARRRZUVMVVJVVEUVQVVLYSUUGWO
      TSTVWDUVRVWGVVTVWCUVRVWGPZVVEVWCVVRVWJVWHVVRVWGVWJVWHUWGCDVVEUWGVOGVWCUWG
      VPTVWCUXRVVEUVOUXRUVMUVPUXTYSRVWIUUDVWHUVRVWGVWGVWHUVRVWGVWGPVWHUVRIVWGUU
      EWOXEUUHYNSUUPUWHDBYJUUIUUQXEWORUUJWKWPUUKXFSUWHBYRUULAUWHBEUUMYAUUNVUPUV
      LUYNIZVUQUWONVUHVWKVUKVUHUVLUYNVVAVUHUYDUYPUYNUVSUYDVUGUVQUVNUYDUVRUYEXRT
      UVSVUGUYPUVSVUGUYTUYPUVSVUDVUGUYTPUVQUVNVUDUVRVUEXRCDUUOOUVSUXSVUAUVQUVNU
      XSUVRUYBXRVUBOUURYPUYRYQUUSTVWKUWOVUQFAUWEEUUTUVAOWMWOXBSWMUWMXCZVUHIUWNM
      UWOVWLUWNMNVUHUWMUWJMUVBTVUHVWLUYGVUHVWLVUKXCZUYGVUHUWMVUKVUOUVCVWMVUHUYG
      VWMVUJXCZUVRXCZUVDVUHUYGPZVUJUVRUVEVWNVWPVWOVUHVWNUYGUVSVWNUYGPZVUGUVQUVN
      VWQUVRUVOVWQUVPUVOVUJVWQCUVHVUJUYGYTOTXRTWPVUHVWOUYGUVSVWOUYGPZVUGUVRUVNV
      WRUVQUVRUYGYTUVFTWPUVGXFWPXBSUVIUVJWOXBUVKXL $.
  $}

  ${
    $d M x $.  $d N x $.  $d S x $.  $d V x $.
    $( The concatenation of two "repeated symbol words" with the same symbol is
       again a "repeated symbol word".  (Contributed by AV, 4-Nov-2018.) $)
    repswccat $p |- ( ( S e. V /\ N e. NN0 /\ M e. NN0 )
                      -> ( ( S repeatS N ) ++ ( S repeatS M ) )
                         = ( S repeatS ( N + M ) ) ) $=
      ( vx wcel cn0 cc0 creps co cfv caddc cfzo cmin wceq oveq2d wa adantr cvv
      wi w3a chash cv cif cconcat repswlen 3adant3 3adant2 oveq12d simp1 simpl2
      cmpt eleq2d biimpa adantlr repswsymb syl wn ad2antrr simpll3 jca cz simpr
      3jca anim1i anim12i fzocatel syl2anc exp31 3adant1 oveq12 wb oveq2 notbid
      nn0z eleq1d imbi12d syl5ibr mpcom syl3anc ifeqda mpteq12dva ovex ccatfval
      imp31 pm3.2i mp1i nn0addcl reps 3eqtr4d ) ADFZCGFZBGFZUAZEHACIJZUBKZABIJZ
      UBKZLJZMJZEUCZHWPMJZFZXAWOKZXAWPNJZWQKZUDZULZEHCBLJZMJZAULZWOWQUEJZAXIIJZ
      WNEWTXGXJAWNWSXIHMWNWPCWRBLWKWLWPCOZWMACDUFUGZWKWMWRBOZWLABDUFUHZUIPWNXAW
      TFZQZXCXDXFAXSXCQWKWLXAHCMJZFZUAZXDAOWNXCYBXRWNXCQWKWLYAWNWKXCWKWLWMUJZRW
      KWLWMXCUKWNXCYAWNXBXTXAWNWPCHMXOPUMUNVDUOAXACDUPUQXSXCURZQWKWMXEHBMJZFZXF
      AOWNWKXRYDYCUSWKWLWMXRYDUTWNXRYDYFXNXPQZWNXRYDYFTZTZWNXNXPXOXQVAWNYIYGXAX
      JFZYAURZXACNJZYEFZTZTZWLWMYOWKWLWMQZYJYKYMYPYJQZYKQYJYKQCVBFZBVBFZQZYMYQY
      JYKYPYJVCVEYPYTYJYKWLYRWMYSCVOBVOVFUSXACBVGVHVIVJYGXRYJYHYNYGWTXJXAYGWSXI
      HMWPCWRBLVKPUMYGYDYKYFYMXNYDYKVLXPXNXCYAXNXBXTXAWPCHMVMUMVNRXNYFYMVLXPXNX
      EYLYEWPCXANVMVPRVQVQVRVSWEAXEBDUPVTWAWBWOSFZWQSFZQXLXHOWNUUAUUBACIWCABIWC
      WFEWOWQSSWDWGWNWKXIGFZXMXKOYCWLWMUUCWKCBWHVJEAXIDWIVHWJ $.
  $}

  ${
    $d N x $.  $d S x $.  $d V x $.
    $( The reverse of a "repeated symbol word".  (Contributed by AV,
       6-Nov-2018.) $)
    repswrevw $p |- ( ( S e. V /\ N e. NN0 )
                      -> ( reverse ` ( S repeatS N ) ) = ( S repeatS N ) ) $=
      ( vx wcel wa cc0 creps co cfv cfzo c1 cmin cmpt wceq adantr oveq1d wi cvv
      cc cn0 chash cv creverse repswlen oveq2d mpteq1d simpll simplr ubmelm1fzo
      cz elfzoelz nn0cn ad2antll zcn 1cnd sub32d eleq1d biimpd syl mpid eqeltrd
      ex impcom repswsymb syl3anc mpteq2dva eqtrd ovex revval mp1i reps 3eqtr4d
      ) ACEZBUAEZFZDGABHIZUBJZKIZVRLMIZDUCZMIZVQJZNZDGBKIZANZVQUDJZVQVPWDDWEWCN
      WFVPDVSWEWCVPVRBGKABCUEZUFUGVPDWEWCAVPWAWEEZFZVNVOWBWEEWCAOVNVOWIUHVNVOWI
      UIWJWBBLMIZWAMIZWEWJVTWKWAMWJVRBLMVPVRBOWIWHPQQWIVPWLWEEZWIVPBWAMILMIZWEE
      ZWMWABUJWIWAUKEZVPWOWMRZRWAGBULWPVPWQWPVPFZWOWMWRWNWLWEWRBWALVOBTEWPVNBUM
      UNWPWATEVPWAUOPWRUPUQURUSVCUTVAVDVBAWBBCVEVFVGVHVQSEWGWDOVPABHVIDSVQVJVKD
      ABCVLVM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cyclical shifts of words
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
A word/string can be regarded as "necklace" by connecting the two ends of the
word/string together (see Wikipedia "Necklace (combinatorics)",
~ https://en.wikipedia.org/wiki/Necklace_(combinatorics) ).

Two strings are regarded as the same necklace if one string can be
rotated/circularly shifted/cyclically shifted to obtain the second string.
To cope with words in the sense of necklaces, the rotation/cyclic shift
` cyclShift ` is defined as the basic operation, see ~ df-csh . The main
theorems in this section are about counting the number of different necklaces
resulting from cyclically shifting a given word, see ~ cshwrepswhash1 for words
consisting of identical symbols and ~ cshwshash for words having lengths which
are prime numbers.
$)

  $c cyclShift $.

  $( Extend class notation with Cyclical Shifts. $)
  ccsh $a class cyclShift $.

  ${
    $d f l n w $.
    $( Perform a cyclical shift for an arbitrary class.  Meaningful only for
       words ` w e. Word S ` or at least functions over half-open ranges of
       nonnegative integers.  (Contributed by Alexander van der Vekens,
       20-May-2018.)  (Revised by Mario Carneiro/Alexander van der Vekens/
       Gerard Lang, 17-Nov-2018.) $)
    df-csh $a |- cyclShift
                 = ( w e. { f | E. l e. NN0 f Fn ( 0 ..^ l ) } , n e. ZZ
                     |-> if ( w = (/) , (/) ,
                    ( ( w substr <. ( n mod ( # ` w ) ) , ( # ` w ) >. )
                     ++ ( w substr <. 0 , ( n mod ( # ` w ) ) >. ) ) ) ) $.
  $}

  ${
    $d N n w $.  $d W n w $.  $d f l n w $.
    $( Perform a cyclical shift for a function over a half-open range of
       nonnegative integers.  (Contributed by AV, 20-May-2018.)  (Revised by
       AV, 17-Nov-2018.) $)
    cshfn $p |- ( ( W e. { f | E. l e. NN0 f Fn ( 0 ..^ l ) } /\ N e. ZZ )
              -> ( W cyclShift N ) = if ( W = (/) , (/) ,
                   ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. )
                     ++ ( W substr <. 0 , ( N mod ( # ` W ) ) >. ) ) ) ) $=
      ( vw vn cv cc0 co c0 chash cfv cmo cop csubstr cconcat cif adantr oveq12d
      wceq cfzo wfn cn0 wrex cab cz ccsh wa wb eqeq1 simpl simpr opeq12d opeq2d
      fveq2 ifbieq2d df-csh 0ex ovex ifex ovmpt2a ) EFCBAGHDGUAIUBDUCUDAUEUFEGZ
      JTZJVBFGZVBKLZMIZVENZOIZVBHVFNZOIZPIZQCJTZJCBCKLZMIZVMNZOIZCHVNNZOIZPIZQU
      GVBCTZVDBTZUHZVCVLVKVSJVTVCVLUIWAVBCJUJRWBVHVPVJVRPWBVBCVGVOOVTWAUKZWBVFV
      NVEVMWBVDBVEVMMVTWAULVTVEVMTWAVBCKUORZSZWDUMSWBVBCVIVQOWCWBVFVNHWEUNSSUPE
      AFDUQVLJVSURVPVRPUSUTVA $.
  $}

  ${
    $d V l $.  $d W l w $.
    $( Perform a cyclical shift for a word.  (Contributed by Alexander van der
       Vekens, 20-May-2018.)  (Revised by AV, 17-Nov-2018.) $)
    cshword $p |- ( ( W e. Word V /\ N e. ZZ ) -> ( W cyclShift N )
                   = ( ( W substr <. ( N mod ( # ` W ) ) , ( # ` W ) >. )
                       ++ ( W substr <. 0 , ( N mod ( # ` W ) ) >. ) ) ) $=
      ( vw vl wcel wa co c0 wceq cop csubstr cc0 cconcat cv wfn cn0 wrex adantr
      oveq1 cword cz ccsh chash cfv cmo cif cab wf iswrd ffn reximi sylbi fneq1
      cfzo rexbidv elabg mpbird cshfn sylan iftrue swrd0 syl6eq oveq12d ccatrid
      wrd0 ax-mp syl6req eqtrd wn iffalse pm2.61ian ) CBUAZFZAUBFZGZCAUCHZCIJZI
      CACUDUEZUFHZVSKZLHZCMVTKZLHZNHZUGZWEVNCDOZMEOUOHZPZEQRZDUHFZVOVQWFJVNWKCW
      HPZEQRZVNWHBCUIZEQRWMBCEUJWNWLEQWHBCUKULUMWJWMDCVMWGCJWIWLEQWHWGCUNUPUQUR
      DACEUSUTVRVPWFWEJZVRVPGZWFIWEVRWFIJVPVRIWEVASWPWEIINHZIVRWEWQJVPVRWBIWDIN
      VRWBIWALHICIWALTVTVSVBVCVRWDIWCLHICIWCLTMVTVBVCVDSIVMFWQIJBVFBIVEVGVHVIVR
      VJWOVPVRIWEVKSVLVI $.
  $}

  ${
    $d f l n w $.
    $( A cyclical shift is the empty set if the number of shifts is not an
       integer.  (Contributed by Alexander van der Vekens, 21-May-2018.)
       (Revised by AV, 17-Nov-2018.) $)
    cshnz $p |- ( -. N e. ZZ -> ( W cyclShift N ) = (/) ) $=
      ( vf vl vw vn cz wcel wn ccsh cdm cv cc0 cfzo co wceq cop csubstr cconcat
      c0 wfn cn0 wrex cab cxp wa chash cfv cmo cif df-csh 0ex ovex ifex intnand
      dmmpt2 id ndmovg sylancr ) AGHZIZJKCLMDLNOUADUBUCCUDZGUEPBVBHZUTUFIBAJOTP
      EFVBGELZTPZTVDFLVDUGUHZUIOZVFQROZVDMVGQROZSOZUJJECFDUKVETVJULVHVISUMUNUPV
      AUTVCVAUQUOBAVBGJURUS $.

    $d N n w $.
    $( Cyclically shifting an empty set/word always results in the empty
       word/set.  (Contributed by AV, 25-Oct-2018.)  (Revised by AV,
       17-Nov-2018.) $)
    0csh0 $p |- ( (/) cyclShift N ) = (/) $=
      ( vw vn vf vl cz wcel c0 ccsh co wceq cc0 cfzo wfn cn0 wrex cop cvv a1i
      cv cab chash cfv cmo csubstr cconcat cmpt2 df-csh iftrue ad2antrl 0nn0 wf
      cif f0 ffn fzo0 eqcomi fneq2i sylib ax-mp id wb fneq2d adantl rspcedv mp2
      oveq2 0ex fneq1 rexbidv elab mpbir ovmpt2d cshnz pm2.61i ) AFGZHAIJHKVPBC
      HADTZLETZMJZNZEOPZDUAZFBTZHKZHWCCTZWCUBUCZUDJZWFQUEJWCLWGQUEJUFJZUMZHIRIB
      CWBFWIUGKVPBDCEUHSWDWIHKVPWEAKWDHWHUIUJHWBGZVPWJHVSNZEOPZLOGZHLLMJZNZWLUK
      HRHULZWORUNWPHHNWOHRHUOHWNHWNHLUPUQURUSUTWMWKWOELOWMVAVRLKZWKWOVBWMWQVSWN
      HVRLLMVGVCVDVEVFWAWLDHVHVQHKVTWKEOVSVQHVIVJVKVLSVPVAHRGVPVHSVMAHVNVO $.
  $}

  $( A word cyclically shifted by 0 is the word itself.  (Contributed by AV,
     16-May-2018.)  (Revised by AV, 20-May-2018.)  (Revised by AV,
     26-Oct-2018.) $)
  cshw0 $p |- ( W e. Word V -> ( W cyclShift 0 ) = W ) $=
    ( cword wcel cc0 ccsh co wceq wi 0csh0 oveq1 wne cop csubstr cconcat adantr
    c0 wa oveq2d oveq12d id 3eqtr3a a1d chash cfv cmo cz 0z cshword mpan2 necom
    cn crp lennncl nnrp 0mod opeq1d opeq2d 3syl sylan2b eqtrd swrdid swrd00 a1i
    ccatrid 3eqtrd expcom pm2.61ine ) BACDZBEFGZBHZIQBQBHZVKVIVLQEFGQVJBEJQBEFK
    VLUAUBUCVIQBLZVKVIVMRZVJBEBUDUEZMZNGZBEEMZNGZOGZBQOGZBVNVJBEVOUFGZVOMZNGZBE
    WBMZNGZOGZVTVIVJWGHZVMVIEUGDWHUHEABUIUJPVMVIBQLZWGVTHZQBUKVIWIRVOULDVOUMDZW
    JABUNVOUOWKWDVQWFVSOWKWCVPBNWKWBEVOVOUPZUQSWKWEVRBNWKWBEEWLURSTUSUTVAVNVQBV
    SQOVIVQBHVMABVBPVSQHVNBEVCVDTVIWABHVMABVEPVFVGVH $.

  $( Cyclically shifting a word is invariant regarding modulo the word's
     length.  (Contributed by AV, 26-Oct-2018.) $)
  cshwmodn $p |- ( ( W e. Word V /\ N e. ZZ ) -> ( W cyclShift N )
                                     = ( W cyclShift ( N mod ( # ` W ) ) ) ) $=
    ( wcel cz wa ccsh co cmo wceq wi 0csh0 oveq1 cop csubstr cc0 cconcat oveq2d
    c0 ex cword chash cfv syl6eq 3eqtr4a a1d wne cn lennncl cr crp nnrp modabs2
    zre syl2anr opeq1d opeq2d oveq12d syl impancom impcom simprl simprr zmodcld
    adantr nn0zd cshword syl2anc adantl 3eqtr4rd pm2.61ine ) CBUADZAEDZFZCAGHZC
    ACUBUCZIHZGHZJZKCSCSJZVSVNVTSAGHSVOVRALCSAGMVTVRSVQGHSCSVQGMVQLUDUEUFCSUGZV
    NVSWAVNFZCVQVPIHZVPNZOHZCPWCNZOHZQHZCVQVPNZOHZCPVQNZOHZQHZVRVOVNWAWHWMJZVLW
    AVMWNVLWAFVPUHDZVMWNKBCUIZWOVMWNWOVMFZWEWJWGWLQWQWDWICOWQWCVQVPVMAUJDVPUKDW
    CVQJWOAUNVPULAVPUMUOZUPRWQWFWKCOWQWCVQPWRUQRURTUSUTVAWBVLVQEDVRWHJWAVLVMVBW
    BVQWBAVPWAVLVMVCVNWAWOVLWAWOKVMVLWAWOWPTVEVAVDVFVQBCVGVHVNVOWMJWAABCVGVIVJT
    VK $.

  $( Cyclically shifting a word is invariant regarding subtraction of the
     word's length.  (Contributed by AV, 3-Nov-2018.) $)
  cshwsublen $p |- ( ( W e. Word V /\ N e. ZZ )
                  -> ( W cyclShift N ) = ( W cyclShift ( N - ( # ` W ) ) ) ) $=
    ( cword wcel cz wa ccsh co cmin wceq cc0 adantl oveq2d cmo syl jca cshwmodn
    wi ex chash cfv oveq2 zcn subid1d sylan9eq eqcomd wne crp zre lencl elnnne0
    cr cn0 cn sylbir adantr impcom modeqmodmin simpl nn0zd zsubcl sylan2 ancoms
    nnrp 3eqtr4d pm2.61ine ) CBDEZAFEZGZCAHIZCACUAUBZJIZHIZKZSVLLVLLKZVJVOVPVJG
    ZAVMCHVQVMAVPVJVMALJIZAVLLAJUCVIVRAKVHVIAAUDUEMUFUGNTVLLUHZVJVOVSVJGZCAVLOI
    ZHIZCVMVLOIZHIZVKVNVTWAWCCHVTAUMEZVLUIEZGWAWCKVTWEWFVJWEVSVIWEVHAUJMMVJVSWF
    VHVSWFSZVIVHVLUNEZWGBCUKZWHVSWFWHVSGVLUOEWFVLULVLVEUPTPUQURQAVLUSPNVJVKWBKV
    SABCRMVTVHVMFEZGZVNWDKVJWKVSVJVHWJVHVIUTVIVHWJVHVIVLFEWJVHVLWIVAAVLVBVCVDQM
    VMBCRPVFTVG $.

  $( A word cyclically shifted by its length is the word itself.  (Contributed
     by AV, 16-May-2018.)  (Revised by AV, 20-May-2018.)  (Revised by AV,
     26-Oct-2018.) $)
  cshwn $p |- ( W e. Word V -> ( W cyclShift ( # ` W ) ) = W ) $=
    ( cword wcel chash cfv ccsh co wceq wi c0 0csh0 oveq1 id 3eqtr3a a1d wne wa
    cc0 adantl cmo cz lencl nn0zd cshwmodn mpdan cn necom lennncl sylan2b nnrpd
    crp ancoms modid0 syl oveq2d cshw0 3eqtrd ex pm2.61ine ) BACDZBBEFZGHZBIZJK
    BKBIZVDVAVEKVBGHKVCBVBLKBVBGMVENOPKBQZVAVDVFVARZVCBVBVBUAHZGHZBSGHZBVAVCVII
    ZVFVAVBUBDVKVAVBABUCUDVBABUEUFTVGVHSBGVGVBULDZVHSIVAVFVLVAVFRVBVFVABKQVBUGD
    KBUHABUIUJUKUMVBUNUOUPVAVJBIVFABUQTURUSUT $.

  $( A cyclically shifted word is a word over the same set as for the original
     word.  (Contributed by AV, 16-May-2018.)  (Revised by AV, 21-May-2018.)
     (Revised by AV, 27-Oct-2018.) $)
  cshwcl $p |- ( W e. Word V -> ( W cyclShift N ) e. Word V ) $=
    ( cz wcel cword ccsh co wi wa chash cfv cmo cop csubstr cc0 cconcat cshword
    swrdcl ccatcl syl2anc adantr eqeltrd expcom wn c0 wrd0 syl6eqel a1d pm2.61i
    cshnz ) ADEZCBFZEZCAGHZUMEZIUNULUPUNULJUOCACKLZMHZUQNOHZCPURNOHZQHZUMABCRUN
    VAUMEZULUNUSUMEUTUMEVBBCURUQSBCPURSBUSUTTUAUBUCUDULUEZUPUNVCUOUFUMACUKBUGUH
    UIUJ $.

  $( The length of a cyclically shifted word is the same as the length of the
     original word.  (Contributed by AV, 16-May-2018.)  (Revised by AV,
     20-May-2018.)  (Revised by AV, 27-Oct-2018.) $)
  cshwlen $p |- ( ( W e. Word V /\ N e. ZZ )
                  -> ( # ` ( W cyclShift N ) ) = ( # ` W ) ) $=
    ( wcel wa ccsh co chash cfv wi c0 3eqtrd fveq2d cop cc0 caddc adantr adantl
    wceq syl cword oveq1 0csh0 a1i eqcom biimpi a1d wne csubstr cconcat cshword
    cz cmo swrdcl ccatlen syl2anc cn lennncl pm3.21 ex com24 pm2.43i imp31 cmin
    cfz simpl pm3.22 cn0 lencl nn0fz0 sylib swrdlen syl3anc zmodcl ancoms 0elfz
    zmodfzp1 oveq12d cc nn0cnd subid1d oveq2d npcan syl2an expcom pm2.61ine ) C
    BUAZDZAULDZEZCAFGZHIZCHIZSZJCKCKSZWNWJWOWKCHWOWKKAFGZKCCKAFUBWPKSWOAUCUDWOK
    CSCKUEUFLMUGWJCKUHZWNWJWQEZWLCAWMUMGZWMNUIGZCOWSNUIGZUJGZHIZWTHIZXAHIZPGZWM
    WJWLXCSWQWJWKXBHABCUKMQWJXCXFSZWQWHXGWIWHWTWGDXAWGDXGBCWSWMUNBCOWSUNBWTXAUO
    UPQQWRWHWMUQDZWIEZEZXFWMSWHWIWQXJWHWIWQXJJJWHWQWIWHXJWHWQWIWHXJJZJZWHWQEXHX
    LBCURXHWIXKXIWHUSUTTUTVAVBVCXJXFWMWSVDGZWSOVDGZPGXMWSPGZWMXJXDXMXEXNPXJWHWS
    OWMVEGZDZWMXPDZXDXMSWHXIVFZXJWIXHEZXQXIXTWHXHWIVGRAWMVQTZWHXRXIWHWMVHDXRBCV
    IZWMVJVKQBCWSWMVLVMXJWHOOWSVEGDZXQXEXNSXSXJWSVHDZYCXIYDWHWIXHYDAWMVNZVORWSV
    PTYABCOWSVLVMVRXJXNWSXMPXJWSXIWSVSDZWHWIXHYFXTWSYEVTVOZRWAWBWHWMVSDYFXOWMSX
    IWHWMYBVTYGWMWSWCWDLTLWEWF $.

  $( A cyclically shifted word is a function from a half-open range of integers
     of the same length as the word as domain to the set of symbols for the
     word.  (Contributed by AV, 12-Nov-2018.) $)
  cshwf $p |- ( ( W e. Word A /\ N e. ZZ )
                 -> ( W cyclShift N ) : ( 0 ..^ ( # ` W ) ) --> A ) $=
    ( cword wcel cz wa cc0 ccsh co chash cfv cfzo wf cshwcl wrdf adantr cshwlen
    syl oveq2d feq2d mpbid ) CADZEZBFEZGZHCBIJZKLZMJZAUGNZHCKLZMJZAUGNUDUJUEUDU
    GUCEUJBACOAUGPSQUFUIULAUGUFUHUKHMBACRTUAUB $.

  $( A cyclically shifted word is a function with a half-open range of integers
     of the same length as the word as domain.  (Contributed by AV,
     12-Nov-2018.) $)
  cshwfn $p |- ( ( W e. Word V /\ N e. ZZ )
                 -> ( W cyclShift N ) Fn ( 0 ..^ ( # ` W ) ) ) $=
    ( cword wcel cz wa cc0 chash cfv cfzo co ccsh wf wfn cshwf ffn syl ) CBDEAF
    EGHCIJKLZBCAMLZNTSOBACPSBTQR $.

  $( The range of a cyclically shifted word is a subset of the set of symbols
     for the word.  (Contributed by AV, 12-Nov-2018.) $)
  cshwrn $p |- ( ( W e. Word V /\ N e. ZZ ) -> ran ( W cyclShift N ) C_ V ) $=
    ( cword wcel cz wa cc0 chash cfv cfzo co ccsh wf crn wss cshwf frn syl ) CB
    DEAFEGHCIJKLZBCAMLZNUAOBPBACQTBUARS $.

  $( The symbol at a given index of a cyclically shifted nonempty word is the
     symbol at the shifted index of the original word.  (Contributed by AV,
     13-May-2018.)  (Revised by AV, 21-May-2018.)  (Revised by AV,
     30-Oct-2018.) $)
  cshwidxmod $p |- ( ( W e. Word V /\ N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) )
                    -> ( ( W cyclShift N ) ` I )
                         = ( W ` ( ( I + N ) mod ( # ` W ) ) ) ) $=
    ( wcel cz cc0 cfv cfzo co w3a caddc wceq wi wbr syl adantl adantr syl3anc
    wa cword chash ccsh cmo cn0 cn clt elfzo0 wne nnne0 eqneqall com12 3ad2ant2
    sylbi 3ad2ant3 lencl elnnne0 cop csubstr cconcat cshword sylan2 fveq1d cmin
    simpl swrdcl cfz anim2i ancomd zmodfzp1 nn0fz0 sylib swrdlen eqcomd oveq12d
    swrd0len eleq2d biimpac oveq2d fveq2d cuz elfzo2 cle eluz2 nnz zmodcl nn0zd
    ccatval2 zsubcld adantlr cr wb zre nnre nn0red resubcld subge0 syl2an com23
    exbiri imp31 elnn0uz elnn0z sylanbrc 3jca ltsubadd2 syl3anbrc exp31 3adant1
    bitr3i 3adant2 ex impcom swrd0fv cc elfzoelz zcnd nncn nn0cnd subsub3 npcan
    imp jca modaddmodup sylc eqtrd 3eqtrd wn npcand notbid nnrp syl2anr simprrr
    crp modlt fzonfzoufzol eleqtrrd ccatval1 swrdfv syl31anc ancoms modaddmodlo
    adantrr sylbid pm2.61i exp32 sylbir mpcom 3impib pm2.61dne ) DCUAZEZBFEZAGD
    UBHZIJEZKADBUCJZHZABLJUUNUDJZDHZMZUUNGUUOUULUUNGMZUUTNZUUMUUOAUEEZUUNUFEZAU
    UNUGOZKUVBAUUNUHUVDUVCUVBUVEUVDUUNGUIZUVBUUNUJUVAUVFUUTUUTUUNGUKULPUMUNUOUU
    LUUMUUOUVFUUTNUULUVFUUMUUOTZUUTUUNUEEZUULUVFUVGUUTNZNCDUPZUVHUVFUULUVIUVHUV
    FUULUVINZUVHUVFTUVDUVKUUNUQUULUVDUVIUULUVDUVGUUTUULUVDUVGTZTZUUQADBUUNUDJZU
    UNURUSJZDGUVNURUSJZUTJZHZUUSUVMAUUPUVQUVLUULUUMUUPUVQMUVGUUMUVDUUMUUOVEZQBC
    DVAVBVCAUUNUVNVDJZUVTUVNLJZIJZEZUVMUVRUUSMZNUWCUVMUWDUWCUVMTZUVRAUVOUBHZVDJ
    ZUVPHZAUVTVDJZUVPHZUUSUWEUVOUUKEZUVPUUKEZAUWFUWFUVPUBHZLJZIJZEZUVRUWHMUVMUW
    KUWCUULUWKUVLCDUVNUUNVFRZQUVMUWLUWCUULUWLUVLCDGUVNVFRZQUVMUWCUWPUVMUWBUWOAU
    VMUVTUWFUWAUWNIUVMUWFUVTUVMUULUVNGUUNVGJZEZUUNUWSEZUWFUVTMZUULUVLVEZUVLUWTU
    ULUVLUUMUVDTZUWTUVLUVDUUMUVGUUMUVDUVSVHZVIZBUUNVJZPZQZUULUXAUVLUULUVHUXAUVJ
    UUNVKVLRZCDUVNUUNVMZSVNZUVMUVTUWFUVNUWMLUXLUVMUWMUVNUVLUULUWTUWMUVNMUXHCDUV
    NVPVBVNVOVOVQVRCUVOUVPAWHSUWEUWGUWIUVPUWEUWFUVTAVDUWEUULUWTUXAUXBUVMUULUWCU
    XCQZUVMUWTUWCUXIQZUVMUXAUWCUXJQUXKSVSVTUWEUWJUWIDHZUUSUWEUULUWTUWIGUVNIJEZU
    WJUXOMUXMUXNUVMUWCUXPUVLUWCUXPNZUULUVGUVDUXQUUMUVDUXQNUUOUUMUVDUXQUWCUXDUXP
    UWCAUVTWAHEZUWAFEZAUWAUGOZKUXDUXPNZAUVTUWAWBUXRUXTUYAUXSUXRUXTUYAUXRUVTFEZA
    FEZUVTAWCOZKUXTUYANZUVTAWDUYCUYDUYEUYBUYCUYDTZUXTUXDUXPUYFUXTTZUXDTUWIGWAHE
    ZUVNFEZUWIUVNUGOZUXPUYFUXDUYHUXTUYFUXDTZUWIFEZGUWIWCOZUYHUYCUXDUYLUYDUYCUXD
    TZAUVTUYCUXDVEUXDUYBUYCUXDUUNUVNUVDUUNFEUUMUUNWEQUXDUVNBUUNWFZWGZWIQWIWJUYC
    UYDUXDUYMUYCUXDUYDUYMUYCUXDUYMUYDUYCAWKEZUVTWKEZUYMUYDWLUXDAWMZUXDUUNUVNUVD
    UUNWKEUUMUUNWNQUXDUVNUYOWOZWPZAUVTWQWRWTWSXAUYHUWIUEEUYLUYMTUWIXBUWIXCXJXDW
    JUXDUYIUYGUYPQUYFUXTUXDUYJUYFUXDUXTUYJUYFUXDUYJUXTUYKUYQUYRUVNWKEZKZUYJUXTW
    LUYCUXDVUCUYDUYNUYQUYRVUBUYCUYQUXDUYSRUXDUYRUYCVUAQUXDVUBUYCUYTQXEWJAUVTUVN
    XFPWTWSXAUWIGUVNWBXGXHXIUNYBXKUNULXLRXMQXMUWIUVNCDXNSUWEUWIUURDUWEUWIAUVNLJ
    ZUUNVDJZUURUWEAXOEZUUNXOEZUVNXOEZKZUWIVUEMUVMVUIUWCUVLVUIUULUVLVUFVUGVUHUVG
    VUFUVDUUOVUFUUMUUOAAGUUNXPXQQQUVDVUGUVGUUNXRZRZUVLUVNUVLUXDUVNUEEZUXFUYOPZX
    SZXEQQAUUNUVNXTPUWEUXDAUVTUUNIJZEZVUEUURMUVMUXDUWCUVLUXDUULUXFQZQUVMUWCVUPU
    VMUWBVUOAUVMUWAUUNUVTIUVMVUGVUHTZUWAUUNMZUVLVURUULUVLVUGVUHVUKVUNYCQUUNUVNY
    APVSVQVRBAUUNYDYEYFVTYFYGXLUVMUWCYHZUWDUVMVUTVUPYHZUWDUVMUWCVUPUVMUWBVUOAUV
    MUWAUUNUVTIUVLVUSUULUVGUVDVUSUUMUVDVUSNUUOUUMUVDVUSUXDUUNUVNUVDVUGUUMVUJQUX
    DUVNUYOXSYIXLRXMQVSVQYJUVMVVAUWDUVMVVATZUVRAUVOHZVUDDHZUUSVVBUWKUWLAGUWFIJZ
    EUVRVVCMUVMUWKVVAUWQRUVMUWLVVAUWRRVVBAGUVTIJZVVEUVMVVAAVVFEZUVMUYIUVNUUNUGO
    ZUUOVVAVVGNZUVLUYIUULUVLUVNVUMWGQUVLVVHUULUVGBWKEZUUNYNEVVHUVDUUMVVJUUOBWMR
    UUNYKBUUNYOYLQZUULUVDUUMUUOYMZAUVNUUNYPZSYBZVVBUWFUVTGIVVBUULUWTUXAUXBUVMUU
    LVVAUXCRZUVMUWTVVAUXIRUVMUXAVVAUXJRZUXKSVSYQCUVOUVPAYRSVVBUULUWTUXAVVGVVCVV
    DMVVOUVMUWTVVAUVMUXDUWTUVMUVDUUMUVLUVDUUMTZUULUXEQVIUXGPRVVPVVNCDUVNUUNAYSY
    TVVBVUDUURDVVBUXDVVGVUDUURMUVMUXDVVAVUQRUVMVVAVVGUVMUYIVVHUUOVVIUVLUYIUULUV
    DUUMUYIUUOVVQUVNUUMUVDVULUYOUUAWGUUCQVVKVVLVVMSYBBAUUNUUBYEVTYGXLUUDULUUEYF
    UUFULUUGXLWSUUHWSUUIUUJ $.

  $( The symbol at a given index of a cyclically shifted nonempty word is the
     symbol at the shifted index of the original word.  (Contributed by AV,
     17-Mar-2021.) $)
  cshwidxmodr $p |- ( ( W e. Word V /\ N e. ZZ /\ I e. ( 0 ..^ ( # ` W ) ) )
                      -> ( ( W cyclShift N ) ` ( ( I - N ) mod ( # ` W ) ) )
                         = ( W ` I ) ) $=
    ( wcel cz cc0 cfv co w3a cmo caddc wceq wa wi sylan ex sylbi impcom 3adant1
    cword chash cfzo cmin ccsh cn cn0 clt wbr elfzo0 3ad2ant1 zsubcl simpl2 jca
    nn0z zmodfzo syl cshwidxmod syld3an3 crp elfzoelz adantl zred nnrp ad3antlr
    cr zre modaddmod syl3anc cc nn0cn ad2antrr npcan syl2an oveq1d zmodidfzoimp
    zcn ad2antlr 3eqtrd fveq2d 3adant3 pm2.43i eqtrd ) DCUAEZBFEZAGDUBHZUCIZEZJ
    ZABUDIZWFKIZDBUEIHZWKBLIWFKIZDHZADHZWDWEWHWKWGEZWLWNMWIWJFEZWFUFEZNZWPWEWHW
    SWDWHWEWSWHAUGEZWRAWFUHUIZJZWEWSOAWFUJZXBWEWSXBWENWQWRXBAFEZWEWQWTWRXDXAAUO
    UKABULZPWTWRXAWEUMUNQRSTWJWFUPUQWKBCDURUSWEWHWNWOMZWDWHWEXFWHWEXFOZWHXBWHXG
    OZXCWTWRXHXAWTWRNZWHXGXIWHNZWEXFXJWENZWMADXKWMWJBLIZWFKIZAWFKIZAXKWJVFEBVFE
    ZWFUTEZWMXMMXKWJXJXDWEWQWHXDXIAGWFVAVBXEPVCWEXOXJBVGVBWRXPWTWHWEWFVDVEWJBWF
    VHVIXKXLAWFKXJAVJEZBVJEXLAMWEWTXQWRWHAVKVLBVQABVMVNVOWHXNAMXIWEAWFVPVRVSVTQ
    QWARWBSTWC $.

  $( The symbol at index 0 of a cyclically shifted nonempty word is the symbol
     at index N (modulo the length of the word) of the original word.
     (Contributed by AV, 30-Oct-2018.) $)
  cshwidx0mod $p |- ( ( W e. Word V /\ W =/= (/) /\ N e. ZZ )
                -> ( ( W cyclShift N ) ` 0 ) = ( W ` ( N mod ( # ` W ) ) ) ) $=
    ( cword wcel c0 wne cz w3a cc0 ccsh co cfv caddc chash cmo cfzo simp1 simp3
    wceq wa lennncl lbfzo0 sylibr 3adant3 cshwidxmod syl3anc zcn addid2d oveq1d
    cn 3ad2ant3 fveq2d eqtrd ) CBDEZCFGZAHEZIZJCAKLMZJANLZCOMZPLZCMZAVAPLZCMURU
    OUQJJVAQLEZUSVCTUOUPUQRUOUPUQSUOUPVEUQUOUPUAVAUKEVEBCUBVAUCUDUEJABCUFUGURVB
    VDCURUTAVAPUQUOUTATUPUQAAUHUIULUJUMUN $.

  $( The symbol at index 0 of a cyclically shifted nonempty word is the symbol
     at index N of the original word.  (Contributed by AV, 15-May-2018.)
     (Revised by AV, 21-May-2018.)  (Revised by AV, 30-Oct-2018.) $)
  cshwidx0 $p |- ( ( W e. Word V /\ N e. ( 0 ..^ ( # ` W ) ) )
                    -> ( ( W cyclShift N ) ` 0 ) = ( W ` N ) ) $=
    ( cword wcel cc0 chash cfv co wa wceq wi c0 cn0 com12 adantl sylbi ad2antll
    wne simpl cfzo ccsh hasheq0 cn clt wbr w3a elfzo0 elnnne0 eqneqall 3ad2ant2
    com13 sylbird com23 imp cz elfzoelz cshwidx0mod syl3anc zmodidfzoimp fveq2d
    cmo eqtrd ex pm2.61ine ) CBDZEZAFCGHZUAIEZJZFCAUBIHZACHZKZLCMVJCMKZVMVGVIVN
    VMLVGVNVIVMVGVNVHFKZVIVMLCVFUCVIVOVGVMVIANEZVHUDEZAVHUEUFZUGVOVGVMLZLZAVHUH
    VQVPVTVRVQVHNEZVHFSZJVTVHUIWBVTWAVOWBVSVSVHFUJOPQUKQULUMUNUOOCMSZVJVMWCVJJZ
    VKAVHVBIZCHZVLWDVGWCAUPEZVKWFKVJVGWCVGVITPWCVJTVIWGWCVGAFVHUQRABCURUSWDWEAC
    VIWEAKWCVGAVHUTRVAVCVDVE $.

  $( The symbol at index ((n-N)-1) of a word of length n (not 0) cyclically
     shifted by N positions is the symbol at index (n-1) of the original word.
     (Contributed by AV, 23-Mar-2018.)  (Revised by AV, 21-May-2018.)  (Revised
     by AV, 30-Oct-2018.) $)
  cshwidxm1 $p |- ( ( W e. Word V /\ N e. ( 0 ..^ ( # ` W ) ) )
                     -> ( ( W cyclShift N ) ` ( ( ( # ` W ) - N ) - 1 ) )
                        = ( W ` ( ( # ` W ) - 1 ) ) ) $=
    ( wcel cc0 cfv co wa cmin c1 cmo cz wceq adantl syl3anc cc zcnd cr wbr syl
    cword chash cfzo caddc simpl elfzoelz ubmelm1fzo cshwidxmod elfzoel2 nnpcan
    ccsh 1cnd oveq1d crp cle clt cn0 cn w3a elfzo0 nnre peano2rem nnrp 3ad2ant2
    jca sylbi nnm1ge0 zre ltm1d jca32 modid eqtrd fveq2d ) CBUADZAECUBFZUCGZDZH
    ZVOAIGJIGZCAUKGFZVSAUDGZVOKGZCFZVOJIGZCFVRVNALDZVSVPDZVTWCMVNVQUEVQWEVNAEVO
    UFZNVQWFVNAVOUGNVSABCUHOVRWBWDCVRWBWDVOKGZWDVQWBWHMVNVQWAWDVOKVQVOPDAPDJPDW
    AWDMVQVOAEVOUIZQVQAWGQVQULVOAJUJOUMNVRWDRDZVOUNDZHZEWDUOSZWDVOUPSZHHZWHWDMV
    QWOVNVQWLWMWNVQAUQDZVOURDZAVOUPSZUSZWLAVOUTZWQWPWLWRWQWJWKWQVORDWJVOVAVOVBT
    VOVCVEVDVFVQWSWMWTWQWPWMWRVOVGVDVFVQVOLDZWNWIXAVOVOVHVITVJNWDVOVKTVLVMVL $.

  $( The symbol at index (n-N) of a word of length n (not 0) cyclically shifted
     by N positions (not 0) is the symbol at index 0 of the original word.
     (Contributed by AV, 18-May-2018.)  (Revised by AV, 21-May-2018.)  (Revised
     by AV, 30-Oct-2018.) $)
  cshwidxm $p |- ( ( W e. Word V /\ N e. ( 1 ... ( # ` W ) ) )
                  -> ( ( W cyclShift N ) ` ( ( # ` W ) - N ) ) = ( W ` 0 ) ) $=
    ( cword wcel c1 chash cfv co wa cmo cc0 wceq adantl cc nncn sylbi syl eqtrd
    cn cfz cmin ccsh caddc cz simpl elfzelz ubmelfzo cshwidxmod syl3anc cle wbr
    cfzo w3a elfz1b anim12ci 3adant3 npcan oveq1d nnrp modid0 3ad2ant2 fveq2d
    crp ) CBDEZAFCGHZUAIEZJZVFAUBIZCAUCIHZVIAUDIZVFKIZCHZLCHVHVEAUEEZVILVFUMIEZ
    VJVMMVEVGUFVGVNVEAFVFUGNVGVOVEAVFUHNVIABCUIUJVHVLLCVHVLVFVFKIZLVGVLVPMVEVGV
    KVFVFKVGVFOEZAOEZJZVKVFMVGATEZVFTEZAVFUKULZUNZVSVFAUOZVTWAVSWBVTVRWAVQAPVFP
    UPUQQVFAURRUSNVGVPLMZVEVGWCWEWDWAVTWEWBWAVFVDEWEVFUTVFVARVBQNSVCS $.

  $( The symbol at index (n-1) of a word of length n (not 0) cyclically shifted
     by N positions (not 0) is the symbol at index (N-1) of the original word.
     (Contributed by AV, 18-May-2018.)  (Revised by AV, 21-May-2018.)  (Revised
     by AV, 30-Oct-2018.) $)
  cshwidxn $p |- ( ( W e. Word V /\ N e. ( 1 ... ( # ` W ) ) )
          -> ( ( W cyclShift N ) ` ( ( # ` W ) - 1 ) ) = ( W ` ( N - 1 ) ) ) $=
    ( wcel c1 cfv co wa cmin caddc cmo cz wceq adantl cn wbr w3a sylbi syl cc
    cword chash cfz ccsh cc0 cfzo simpl elfzelz elfz1b simp2 fzo0end cshwidxmod
    cle syl3anc nncn 1cnd adantr 3jca 3adant3 subadd23 cn0 clt nnm1nn0 3ad2ant1
    oveq1d simp3 wb nnz anim12i zlem1lt mpbid addmodid eqtrd fveq2d ) CBUADZAEC
    UBFZUCGDZHZVPEIGZCAUDGFZVSAJGZVPKGZCFZAEIGZCFZVRVOALDZVSUEVPUFGDZVTWCMVOVQU
    GVQWFVOAEVPUHNVRVPODZWGVQWHVOVQAODZWHAVPUMPZQZWHVPAUIZWIWHWJUJZRNVPUKSVSABC
    ULUNVQWCWEMVOVQWBWDCVQWBVPWDJGZVPKGZWDVQWAWNVPKVQVPTDZETDZATDZQZWAWNMVQWKWS
    WLWIWHWSWJWIWHHZWPWQWRWHWPWIVPUONWTUPWIWRWHAUOUQURUSRVPEAUTSVEVQWDVADZWHWDV
    PVBPZQZWOWDMVQWKXCWLWKXAWHXBWIWHXAWJAVCVDWMWKWJXBWIWHWJVFWKWFVPLDZHZWJXBVGW
    IWHXEWJWIWFWHXDAVHVPVHVIUSAVPVJSVKURRWDVPVLSVMVNNVM $.

  ${
    $d A i j $.  $d F i j x y $.  $d G i j $.  $d S i j x y $.
    $( Cyclically shifting a word which contains a symbol at most once results
       in a word which contains a symbol at most once.  (Contributed by AV,
       14-Mar-2021.) $)
    cshf1 $p |- ( ( F : ( 0 ..^ ( # ` F ) ) -1-1-> A /\ S e. ZZ
                    /\ G = ( F cyclShift S ) )
                  -> G : ( 0 ..^ ( # ` F ) ) -1-1-> A ) $=
      ( vi vj vx vy cfv co cz wcel wceq w3a cv wi wral wa adantr adantl cc0 wf1
      chash cfzo ccsh wf weq cword f1f iswrdi syl cshwf 3adant1 wb mpbird dff13
      caddc cmo fveq1 3ad2ant1 cshwidxmod 3expia com12 impcom eqtrd adantld imp
      feq1 eqeq12d adantlr cn0 clt wbr elfzo0 nn0z simpl zaddcld simpr 3ad2ant3
      cn jca ex 3adant3 sylbi zmodfzo expcom fveq2 eqeq1d imbi12d eqeq2d rspc2v
      eqeq1 eqeq2 syl2anc addmodlteq ancoms bicomd sylibrd syld impancom sylbid
      3expa ralrimivva 3exp1 com14 3imp1 mpd 3imp sylibr ) UACUCIZUDJZACUBZBKLZ
      DCBUEJZMZNXKADUFZEOZDIZFOZDIZMZEFUGZPZFXKQEXKQZRZXKADUBXLXMXOYEXLCAUHLZXM
      XOYEPPXLXKACUFZYFXKACUIAXJCUJUKXLYFXMXOYEXLYFXMNZXORZXPYDYIXPXKAXNUFZYHYJ
      XOYFXMYJXLABCULUMSXOXPYJUNYHXKADXNVHTUOXLYFXMXOYDXLYGGOZCIZHOZCIZMZGHUGZP
      ZHXKQGXKQZRYFXMXOYDPPPZGHXKACUPYRYSYGXOYFXMYRYDXOYFXMYRYDXOYFXMNZYRRZYCEF
      XKXKUUAXQXKLZXSXKLZRZRYAXQBUQJZXJURJZCIZXSBUQJZXJURJZCIZMZYBYTUUDYAUUKUNY
      RYTUUDRZXRUUGXTUUJUULXRXQXNIZUUGYTXRUUMMZUUDXOYFUUNXMXQDXNUSUTSUUDYTUUMUU
      GMZUUBYTUUOPUUCYTUUBUUOYFXMUUBUUOPXOYFXMUUBUUOXQBACVAVBUMVCSVDVEUULXTXSXN
      IZUUJYTXTUUPMZUUDXOYFUUQXMXSDXNUSUTSYTUUDUUPUUJMZYTUUCUURUUBYFXMUUCUURPXO
      YFXMUUCUURXSBACVAVBUMVFVGVEVIVJUUAUUDUUKYBPZYTUUDYRUUSUULYRUUKUUFUUIMZPZU
      USUULUUFXKLZUUIXKLZYRUVAPUULUUEKLZXJVTLZRZUVBUUDYTUVFUUBYTUVFPZUUCUUBXQVK
      LZUVEXQXJVLVMZNUVGXQXJVNUVHUVEUVGUVIYTUVHUVERZUVFXMXOUVJUVFPYFXMUVJUVFXMU
      VJRZUVDUVEUVKXQBUVJXQKLZXMUVHUVLUVEXQVOSTXMUVJVPVQUVJUVEXMUVHUVEVRTWAWBVS
      VCWCWDSVDUUEXJWEUKUULUUHKLZUVERZUVCYTUUDUVNYTUUCUVNUUBXMXOUUCUVNPYFUUCXMU
      VNUUCXSVKLZUVEXSXJVLVMZNXMUVNPZXSXJVNUVOUVEUVQUVPXMUVOUVERZUVNXMUVRRZUVMU
      VEUVSXSBUVRXSKLZXMUVOUVTUVEXSVOSTXMUVRVPVQUVRUVEXMUVOUVEVRTWAWFWCWDVCVSVF
      VGUUHXJWEUKYQUVAUUGYNMZUUFYMMZPGHUUFUUIXKXKYKUUFMZYOUWAYPUWBUWCYLUUGYNYKU
      UFCWGWHYKUUFYMWLWIYMUUIMZUWAUUKUWBUUTUWDYNUUJUUGYMUUICWGWJYMUUIUUFWMWIWKW
      NUULUVAUUSUULUVARUUKUUTYBUULUVAVRUULYBUUTUNZUVAYTUUDUWEXMXOUUDUWEPYFXMUUD
      UWEXMUUDRUUTYBUUDXMUUTYBUNZUUBUUCXMUWFBXQXSXJWOXBWPWQWBVSVGSWRWBWSWTVGXAX
      CXDXETWDXFWAXDXGXHEFXKADUPXI $.
  $}

  $( If a word is injectiv (regarded as function), the cyclically shifted word
     is also injective.  (Contributed by AV, 14-Mar-2021.) $)
  cshinj $p |- ( ( F e. Word A /\ Fun `' F /\ S e. ZZ )
                -> ( G = ( F cyclShift S ) -> Fun `' G ) ) $=
    ( cword wcel ccnv wfun cz w3a ccsh co wceq cc0 chash cfv wf1 wa wf df-f1 ex
    cfzo wrdf biimpri sylan 3adant3 adantr simpl3 simpr cshf1 syl3anc simprbi
    syl6 ) CAEFZCGHZBIFZJZDCBKLMZNCOPUBLZADQZDGHZUQURUTUQURRUSACQZUPURUTUQVBURU
    NUOVBUPUNUSACSZUOVBACUCVBVCUORUSACTUDUEUFUGUNUOUPURUHUQURUIABCDUJUKUAUTUSAD
    SVAUSADTULUM $.

  $( A cyclically shifted "repeated symbol word".  (Contributed by Alexander
     van der Vekens, 7-Nov-2018.) $)
  repswcshw $p |- ( ( S e. V /\ N e. NN0 /\ I e. ZZ )
                    -> ( ( S repeatS N ) cyclShift I ) = ( S repeatS N ) ) $=
    ( cc0 wceq wcel cn0 creps co ccsh c0 cop csubstr cconcat oveq2d wbr 3adant1
    wa ancoms cz w3a 0csh0 repsw0 oveq1d 3eqtr4a 3ad2ant1 oveq2 eqeq12d syl5ibr
    wi wn cn idd wne df-ne elnnne0 simplbi2com sylbir 3anim123d chash cfv cword
    cmo nnnn0 anim2i syl cshword stoic3 repswlen opeq12d opeq2d oveq12d 3adant3
    repsw cmin caddc cle zmodcl adantr jca nnre 3ad2ant2 repswswrd syl3anc 0nn0
    leidd jctil cr crp zre modcl syl2anr clt modlt ltled simp1 nn0red wb nn0sub
    nnrp syl2anc mpbid nn0ge0d repswccat cc adantl nn0cnd npncand subid1d eqtrd
    nncn 0cnd 3eqtrd syl6 pm2.61i ) CEFZADGZCHGZBUAGZUBZACIJZBKJZYBFZUKYAYDXQAE
    IJZBKJZYEFZXRXSYGXTXRLBKJLYFYEBUCXRYELBKADUDZUEYHUFUGXQYCYFYBYEXQYBYEBKCEAI
    UHZUEYIUIUJXQULZYAXRCUMGZXTUBZYDYJXRXRXSYKXTXTYJXRUNYJCEUOZXSYKUKCEUPYKXSYM
    CUQURUSYJXTUNUTYLYCYBBYBVAVBZVDJZYNMZNJZYBEYOMZNJZOJZYBBCVDJZCMZNJZYBEUUAMZ
    NJZOJZYBXRYKYBDVCGZXTYCYTFXRYKSZXRXSSZUUGYKXSXRCVEZVFZACDVOVGBDYBVHVIXRYKYT
    UUFFXTUUHYQUUCYSUUEOUUHYPUUBYBNUUHYOUUAYNCUUHYNCBVDUUHUUIYNCFUUKACDVJVGZPZU
    ULVKPUUHYRUUDYBNUUHYOUUAEUUMVLPVMVNYLUUFACUUAVPJZIJZAUUAEVPJZIJZOJZAUUNUUPV
    QJZIJZYBYLUUCUUOUUEUUQOYLUUIUUAHGZXSSZCCVRQZUUCUUOFXRYKUUIXTUUKVNZYKXTUVBXR
    YKXTSZUVAXSXTYKUVABCVSZTZYKXSXTUUJVTWARYKXRUVCXTYKCCWBZWGWCACUUACDWDWEYLUUI
    EHGZUVASZUUACVRQZUUEUUQFUVDYKXTUVJXRUVEUVAUVIUVGWFWHRYKXTUVKXRUVEUUACXTBWIG
    ZCWJGZUUAWIGZYKBWKZCXAZBCWLWMYKCWIGXTUVHVTZXTUVLUVMUUACWNQYKUVOUVPBCWOWMZWP
    RACEUUADWDWEVMYLXRUUNHGZUUPHGZUURUUTFXRYKXTWQYLUVKUVSYKXTUVKXRUVEUUACXTYKUV
    NXTYKSZUUAUVFWRTUVQUVRWPRYLUVAXSUVKUVSWSYKXTUVAXRUVGRZYKXRXSXTUUJWCUUACWTXB
    XCYLEUUAVRQZUVTYKXTUWCXRXTYKUWCUWAUUAUVFXDTRYLUVJUWCUVTWSYLUVAUVIUWBWFWHEUU
    AWTVGXCAUUPUUNDXEWEYLUUSCAIYKXTUUSCFZXRXTYKUWDUWAUUSCEVPJZCUWACUUAEYKCXFGXT
    CXLZXGUWAUUAUVFXHUWAXMXIYKUWECFXTYKCUWFXJXGXKTRPXNXNXOXP $.

  ${
    $d M i $.  $d N i $.  $d V i $.  $d W i $.
    $( Cyclically shifting a word two times.  (Contributed by AV, 7-Apr-2018.)
       (Revised by AV, 4-Jun-2018.)  (Revised by AV, 31-Oct-2018.) $)
    2cshw $p |- ( ( W e. Word V /\ M e. ZZ /\ N e. ZZ )
          -> ( ( W cyclShift M ) cyclShift N ) = ( W cyclShift ( M + N ) ) ) $=
      ( vi wcel cz co caddc wceq chash cfv cc0 cfzo syl jca cmo adantr syl3anc
      wa cword w3a ccsh wral cshwlen 3adant3 cshwcl anim1i 3adant2 simp1 zaddcl
      cv 3adant1 3eqtr4d oveq2d eleq2d 3ad2ant1 eqcomd biimpa cshwidxmod simpl2
      eqtrd simp3 cn cn0 clt wi elfzo0 nn0z ad2antrr adantl zaddcld simpr sylbi
      wbr ex impcom zmodfzo wb eleq1d mpbird cr crp nn0re zre ad2antll readdcld
      ad2antrl nnrp modaddmod cc nn0cn add32r oveq1d com12 fveq2d 3eqtrd sylbid
      zcn imp ralrimiv eqwrd ) DCUAZFZAGFZBGFZUBZDAUCHZBUCHZDABIHZUCHZJZXIKLZXK
      KLZJZEULZXILZXPXKLZJZEMXMNHZUDZTZXGXOYAXGXHKLZDKLZXMXNXDXEYCYDJZXFACDUEUF
      ZXGXHXCFZXFTZXMYCJXDXFYHXEXDYGXFACDUGZUHUIBCXHUEOZXGXDXJGFZTXNYDJXGXDYKXD
      XEXFUJZXEXFYKXDABUKUMZPXJCDUEOUNXGXSEXTXGXPXTFXPMYDNHZFZXSXGXTYNXPXGXMYDM
      NXGXMYCYDYJYFVBUOUPXGYOXSXGYOTZXQXPBIHZYCQHZXHLZYRAIHZYDQHZDLZXRYPYGXFXPM
      YCNHZFZXQYSJXGYGYOXDXEYGXFYIUQRXGXFYOXDXEXFVCZRXGYOUUDXGYNUUCXPXGYDYCMNXG
      YCYDYFURUOUPUSXPBCXHUTSYPXDXEYRYNFZYSUUBJXGXDYOYLRZXDXEXFYOVAYPUUFYQYDQHZ
      YNFZYPYQGFZYDVDFZTZUUIYOXGUULYOXPVEFZUUKXPYDVFVOZUBZXGUULVGZXPYDVHZUUMUUK
      UUPUUNUUMUUKTZXGUULUURXGTZUUJUUKUUSXPBUUMXPGFUUKXGXPVIVJXGXFUURUUEVKVLUUR
      UUKXGUUMUUKVMRPVPUFVNVQYQYDVROXGUUFUUIVSYOXGYRUUHYNXGYCYDYQQYFUOVTRWAYRAC
      DUTSYPUUHAIHZYDQHZDLXPXJIHZYDQHZDLZUUBXRYPUVAUVCDXGYOUVAUVCJZXEXFYOUVEVGX
      DYOXEXFTZUVEYOUUOUVFUVEVGZUUQUUMUUKUVGUUNUURUVFUVEUURUVFTZUVAYQAIHZYDQHZU
      VCUVHYQWBFAWBFZYDWCFZUVAUVJJUVHXPBUUMXPWBFUUKUVFXPWDVJXFBWBFUURXEBWEWFWGX
      EUVKUURXFAWEWHUURUVLUVFUUKUVLUUMYDWIVKRYQAYDWJSUVHUVIUVBYDQUVHUVBUVIUVHXP
      WKFZAWKFZBWKFZUVBUVIJUUMUVMUUKUVFXPWLVJXEUVNUURXFAWSWHXFUVOUURXEBWSWFXPAB
      WMSURWNVBVPUFVNWOUMWTWPYPUUAUVADYPYTUUTYDQYPYRUUHAIYPYCYDYQQXGYEYOYFRUOWN
      WNWPYPXDYKYOXRUVDJUUGXGYKYOYMRXGYOVMXPXJCDUTSUNWQVPWRXAPXGXIXCFZXKXCFZTZX
      LYBVSXDXEUVRXFXDUVPUVQXDYGUVPYIBCXHUGOXJCDUGPUQXIECXKXBOWA $.
  $}

  $( Cyclically shifting a word two times resulting in the word itself.
     (Contributed by AV, 7-Apr-2018.)  (Revised by AV, 5-Jun-2018.)  (Revised
     by AV, 1-Nov-2018.) $)
  2cshwid $p |- ( ( W e. Word V /\ N e. ZZ )
                 -> ( ( W cyclShift N ) cyclShift ( ( # ` W ) - N ) ) = W ) $=
    ( cword wcel cz wa ccsh chash cfv cmin caddc lencl nn0zd zsubcl sylan 2cshw
    co wceq cc mpd3an3 zcn nn0cnd pncan3 syl2anr oveq2d cshwn adantr 3eqtrd ) C
    BDEZAFEZGZCAHRCIJZAKRZHRZCAUNLRZHRZCUMHRZCUJUKUNFEZUOUQSUJUMFEUKUSUJUMBCMZN
    UMAOPAUNBCQUAULUPUMCHUKATEUMTEUPUMSUJAUBUJUMUTUCAUMUDUEUFUJURCSUKBCUGUHUI
    $.

  $( The last symbol of a word cyclically shifted by N positions is the symbol
     at index (N-1) of the original word.  (Contributed by AV, 21-Mar-2018.)
     (Revised by AV, 5-Jun-2018.)  (Revised by AV, 1-Nov-2018.) $)
  lswcshw $p |- ( ( W e. Word V /\ N e. ( 1 ... ( # ` W ) ) )
                      -> ( lastS ` ( W cyclShift N ) ) = ( W ` ( N - 1 ) ) ) $=
    ( cword wcel c1 chash cfv cfz co wa ccsh clsw cmin cvv wceq ovex lsw mp1i
    cz elfzelz cshwlen sylan2 oveq1d fveq2d cshwidxn 3eqtrd ) CBDEZAFCGHZIJEZKZ
    CALJZMHZULGHZFNJZULHZUIFNJZULHAFNJCHULOEUMUPPUKCALQULORSUKUOUQULUKUNUIFNUJU
    HATEUNUIPAFUIUAABCUBUCUDUEABCUFUG $.

  $( Cyclically shifting a word two times is commutative.  (Contributed by AV,
     21-Apr-2018.)  (Revised by AV, 5-Jun-2018.)  (Revised by Mario
     Carneiro/AV, 1-Nov-2018.) $)
  2cshwcom $p |- ( ( W e. Word V /\ N e. ZZ /\ M e. ZZ )
                   -> ( ( W cyclShift N ) cyclShift M )
                      = ( ( W cyclShift M ) cyclShift N ) ) $=
    ( cword wcel cz w3a caddc co ccsh wceq cc zcn addcom syl2anr 3adant1 oveq2d
    2cshw 3com23 3eqtr4rd ) DCEFZBGFZAGFZHZDABIJZKJZDBAIJZKJDAKJBKJZDBKJAKJUEUF
    UHDKUCUDUFUHLZUBUDAMFBMFUJUCANBNABOPQRUBUDUCUIUGLABCDSTBACDSUA $.

  $( If the results of cyclically shifting two words are equal, the length of
     the two words was equal.  (Contributed by AV, 21-Apr-2018.)  (Revised by
     AV, 5-Jun-2018.)  (Revised by AV, 1-Nov-2018.) $)
  cshwleneq $p |- ( ( ( W e. Word V /\ U e. Word V )
                      /\ ( N e. ZZ /\ M e. ZZ )
                      /\ ( W cyclShift N ) = ( U cyclShift M ) )
                       -> ( # ` W ) = ( # ` U ) ) $=
    ( cword wcel wa cz ccsh co wceq w3a chash cfv cshwlen ad2ant2r eqcomd fveq2
    3adant3 3ad2ant3 ad2ant2l 3eqtrd ) EDFZGZAUDGZHZCIGZBIGZHZECJKZABJKZLZMENOZ
    UKNOZULNOZANOZUGUJUNUOLUMUGUJHUOUNUEUHUOUNLUFUICDEPQRTUMUGUOUPLUJUKULNSUAUG
    UJUPUQLZUMUFUIURUEUHBDAPUBTUC $.

  $( Cyclically shifting a word three times results in a once cyclically
     shifted word under certain circumstances.  (Contributed by AV,
     6-Jun-2018.)  (Revised by AV, 1-Nov-2018.) $)
  3cshw $p |- ( ( W e. Word V /\ N e. ZZ /\ M e. ZZ ) -> ( W cyclShift N ) =
         ( ( ( W cyclShift M ) cyclShift N ) cyclShift ( ( # ` W ) - M ) ) ) $=
    ( cword wcel cz w3a ccsh co chash cmin 2cshwid 3adant2 eqcomd oveq1d cshwcl
    cfv wceq 3ad2ant1 lencl nn0zd zsubcl sylan simp2 2cshwcom syl3anc eqtrd ) D
    CEZFZBGFZAGFZHZDBIJDAIJZDKRZALJZIJZBIJZUNBIJUPIJZUMDUQBIUMUQDUJULUQDSUKACDM
    NOPUMUNUIFZUPGFZUKURUSSUJUKUTULACDQTUJULVAUKUJUOGFULVAUJUOCDUAUBUOAUCUDNUJU
    KULUEBUPCUNUFUGUH $.

  $( If cyclically shifting two words (of the same length) results in the same
     word, cyclically shifting one of the words by the difference of the
     numbers of shifts results in the other word.  (Contributed by AV,
     21-Apr-2018.)  (Revised by AV, 6-Jun-2018.)  (Revised by AV,
     1-Nov-2018.) $)
  cshweqdif2 $p |- ( ( ( W e. Word V /\ U e. Word V )
                       /\ ( N e. ZZ /\ M e. ZZ ) )
                     -> ( ( W cyclShift N ) = ( U cyclShift M )
                          -> ( U cyclShift ( M - N ) ) = W ) ) $=
    ( wcel wa cz ccsh wceq cmin w3a simpr adantr adantl 3jca syl simpl ancomd
    co cword chash cfv caddc zsubcl ancoms 3cshw eqcomd cshwleneq oveq1d oveq2d
    syl3anc eqtrd 2cshw cc zcn pncan3 3eqtrd lencl nn0zd syl2an nn0cnd cshwn ex
    anim12i ) EDUAZFZAVFFZGZCHFZBHFZGZGZECITZABITZJZABCKTZITZEJVMVPGZVREBEUBUCZ
    BKTZUDTZITZEVTITZEVSVRVOVQITZWAITZEBITZWAITZWCVSVRWEAUBUCZBKTZITZWFVSVHVQHF
    ZVKLZVRWKJVMWMVPVMVHWLVKVIVHVLVGVHMNVLWLVIVKVJWLBCUEUFOZVLVKVIVJVKMZOZPNBVQ
    DAUGQVSWJWAWEIVSWIVTBKVSVHVGGZVKVJGZVOVNJWIVTJVMWQVPVMVGVHVIVLRSNVMWRVPVMVJ
    VKVIVLMSNVSVNVOVMVPMUHZECBDAUIULUJUKUMVSWEWGWAIVSWEVNVQITZECVQUDTZITZWGVSVO
    VNVQIWSUJVSVGVJWLLZWTXBJVMXCVPVMVGVJWLVIVGVLVGVHRNZVLVJVIVJVKROWNPNCVQDEUNQ
    VSXABEIVSCUOFZBUOFZGZXABJVMXGVPVLXGVIVJXEVKXFCUPBUPZVEONCBUQQUKURUJVSVGVKWA
    HFZLZWHWCJVMXJVPVMVGVKXIXDWPVIVTHFZVKXIVLVGXKVHVGVTDEUSZUTNWOVTBUEVAPNBWADE
    UNQURVSWBVTEIVSXFVTUOFZGZWBVTJVMXNVPVMXMXFVIXMVLXFVGXMVHVGVTXLVBNVKXFVJXHOV
    ESNBVTUQQUKVMWDEJZVPVMVGXOXDDEVCQNURVD $.

  $( If cyclically shifting a word by two positions results in the same word,
     cyclically shifting the word by the difference of these two positions
     results in the original word itself.  (Contributed by AV, 21-Apr-2018.)
     (Revised by AV, 7-Jun-2018.)  (Revised by AV, 1-Nov-2018.) $)
  cshweqdifid $p |- ( ( W e. Word V /\ N e. ZZ /\ M e. ZZ )
                     -> ( ( W cyclShift N ) = ( W cyclShift M )
                          -> ( W cyclShift ( M - N ) ) = W ) ) $=
    ( cword wcel cz w3a wa ccsh co wceq wi id ancli anim1i 3impb cshweqdif2 syl
    cmin ) DCEFZBGFZAGFZHUAUAIZUBUCIZIZDBJKDAJKLDABTKJKDLMUAUBUCUFUAUDUEUAUAUAN
    OPQDABCDRS $.

  ${
    $d I j y x $.  $d L j x y $.  $d V j x y $.  $d W j x y $.
    $( If cyclically shifting a word by L position results in the word itself,
       the symbol at any position is repeated at multiples of L (modulo the
       length of the word) positions in the word.  (Contributed by AV,
       13-May-2018.)  (Revised by AV, 7-Jun-2018.)  (Revised by AV,
       1-Nov-2018.) $)
    cshweqrep $p |- ( ( W e. Word V /\ L e. ZZ )
                     -> ( ( ( W cyclShift L ) = W /\ I e. ( 0 ..^ ( # ` W ) ) )
                          -> A. j e. NN0
                ( W ` I ) = ( W ` ( ( I + ( j x. L ) ) mod ( # ` W ) ) ) ) ) $=
      ( wcel wa co wceq cc0 cfv caddc cmo wi oveq2d oveq1d fveq2d adantl adantr
      cmul vx vy cword cz ccsh chash cfzo cv cn0 c1 oveq1 eqeq2d imbi2d weq zcn
      wral mul02d elfzoelz zcnd ad2antll eqtrd zmodidfzoimp eqtr2d fveq1 eqcoms
      addid1d ad2antrl simprll simprlr cn clt wbr w3a elfzo0 nn0z zmulcl ancoms
      sylan zaddcl syl2an simplr jca ex 3adant3 sylbi expd com12 impcom zmodfzo
      imp syl cshwidxmod syl3anc cr nn0re zre nnrp remulcl readdcl sylan2 simpl
      modaddmod cc recn recnd addassd 1cnd adddird mulid2d com13 adantld 3eqtrd
      crp biimpd a2d nn0ind ralrimiv ) EDUCFZCUDFZGZECUEHZEIZBJEUFKZUGHZFZGZBEK
      ZBAUHZCTHZLHZYCMHZEKZIZAUIUPXTYFGZYMAUIYHUIFYNYMYNYGBUAUHZCTHZLHZYCMHZEKZ
      IZNYNYGBJCTHZLHZYCMHZEKZIZNYNYGBUBUHZCTHZLHZYCMHZEKZIZNYNYGBUUFUJLHZCTHZL
      HZYCMHZEKZIZNYNYMNUAUBYHYOJIZYTUUEYNUURYSUUDYGUURYRUUCEUURYQUUBYCMUURYPUU
      ABLYOJCTUKOPQULUMUAUBUNZYTUUKYNUUSYSUUJYGUUSYRUUIEUUSYQUUHYCMUUSYPUUGBLYO
      UUFCTUKOPQULUMYOUULIZYTUUQYNUUTYSUUPYGUUTYRUUOEUUTYQUUNYCMUUTYPUUMBLYOUUL
      CTUKOPQULUMUAAUNZYTYMYNUVAYSYLYGUVAYRYKEUVAYQYJYCMUVAYPYIBLYOYHCTUKOPQULU
      MYNBUUCEYNUUCBYCMHZBYNUUBBYCMYNUUBBJLHZBYNUUAJBLXTUUAJIZYFXSUVDXRXSCCUOUQ
      RSOYEUVCBIXTYBYEBYEBBJYCURUSVFUTVAPYEUVBBIXTYBBYCVBUTVCQUUFUIFZYNUUKUUQUV
      EYNUUKUUQNUVEYNGZUUKUUQUVFUUJUUPYGUVFUUJUUIYAKZUUICLHYCMHZEKZUUPYNUUJUVGI
      ZUVEYBUVJXTYEUVJEYAUUIEYAVDVEVGRUVFXRXSUUIYDFZUVGUVIIUVEXRXSYFVHUVEXRXSYF
      VIUVFUUHUDFZYCVJFZGZUVKYNUVEUVNXTYFUVEUVNNZXSYFUVONXRYFXSUVOYFXSUVEUVNYEX
      SUVEGZUVNNZYBYEBUIFZUVMBYCVKVLZVMZUVQBYCVNZUVRUVMUVQUVSUVRUVMGZUVPUVNUWBU
      VPGUVLUVMUWBBUDFZUUGUDFZUVLUVPUVRUWCUVMBVOSUVEXSUWDUVEUUFUDFXSUWDUUFVOUUF
      CVPVRVQBUUGVSVTUVRUVMUVPWAWBWCWDWERWFWGRWJWHUUHYCWIWKUUICDEWLWMUVFUVHUUOE
      YNUVEUVHUUOIZYFXTUVEUWENZYEXTUWFNYBYEXSUWFXRYEXSUVEUWEYEUVTUVPUWENZUWAUVR
      UVMUWGUVSUVRUVMUWGUVRBWNFZUVMUWGNBWOUVPUVMUWHUWEXSCWNFZUUFWNFZUVMUWHUWENZ
      NUVECWPUUFWOUVMUWIUWJGZUWKUVMUWLUWHUWEUVMYCXMFZUWLUWHGZUWENYCWQUWMUWNUWEU
      WMUWNGZUVHUUHCLHZYCMHZUUOUWOUUHWNFZUWIUWMUVHUWQIUWNUWRUWMUWHUWLUWRUWLUWHU
      UGWNFZUWRUWJUWIUWSUUFCWRZVQBUUGWSWTVQRUWMUWIUWJUWHVHUWMUWNXAUUHCYCXBWMUWO
      UWPUUNYCMUWNUWPUUNIUWMUWNUWPBUUGCLHZLHUUNUWNBUUGCUWHBXCFUWLBXDRUWLUUGXCFZ
      UWHUWJUWIUXBUWJUWIGUUGUWTXEVQSUWLCXCFZUWHUWIUXCUWJCXDZSZSXFUWNUXAUUMBLUWL
      UXAUUMIUWHUWLUUMUUGUJCTHZLHUXAUWLUUFUJCUWJUUFXCFUWIUUFXDRUWLXGUXEXHUWLUXF
      CUUGLUWIUXFCIUWJUWICUXDXISOVCSOVARPVAWCWKWFWGVTXJWKWJWDWEWFXKRWHWHQXLULXN
      WCXOXPWGXQWC $.
  $}

  ${
    $d V i $.  $d W i $.
    $( If cyclically shifting a word by 1 position results in the word itself,
       the word is build of identical symbols.  Remark: also "valid" for an
       empty word!  (Contributed by AV, 13-May-2018.)  (Revised by AV,
       7-Jun-2018.)  (Proof shortened by AV, 1-Nov-2018.) $)
    cshw1 $p |- ( ( W e. Word V /\ ( W cyclShift 1 ) = W )
                  -> A. i e. ( 0 ..^ ( # ` W ) ) ( W ` i ) = ( W ` 0 ) ) $=
      ( cfv cc0 wceq wcel c1 co wa cfzo wral wi c0 caddc cmo cn0 adantr syl ex
      chash cword ccsh cv ral0 oveq2 fzo0 syl6eq raleqdv mpbiri a1d cmul simprl
      wn lencl cn clt wbr 1nn0 a1i wne df-ne elnnne0 simplbi2com sylbir biimpri
      impcom ad2antll wb nngt1ne1 mpbird elfzo0 syl3anbrc simprr lbfzo0 syl5bir
      com12 imp cz elfzoelz cshweqrep sylan2 syl22anc 0nn0 fzossnn0 ssralv mp2b
      wss eqcom zre ax-1rid oveq2d zcn addid2d eqtrd oveq1d zmodidfzoimp fveq2d
      cr eqeq1d biimpd syl5bi ralimia impancom csn eqid fveq2 ralsn mpbir fzo01
      c0ex pm2.61d2 pm2.61i ) CUADZEFZCBUBGZCHUCICFZJZAUDZCDZECDZFZAEXNKIZLZMXO
      YDXRXOYDYBANLYBAUEXOYBAYCNXOYCEEKINXNEEKUFEUGUHUIUJUKXOUNZXRYDYEXRJXNHFZY
      DYEYFUNZXRYDYEYGJZXRYDYHXRJZYAEXSHULIZOIZXNPIZCDZFZAQLZYDYIXPHYCGZXQEYCGZ
      YOYHXPXQUMXRYHYPXPYHYPMZXQXPXNQGZYRBCUOZYSYHYPYSYHJZHQGZXNUPGZHXNUQURZYPU
      UBUUAUSUTYHYSUUCYEYSUUCMZYGYEXNEVAZUUEXNEVBZUUCYSUUFXNVCZVDVERVGZUUAUUDXN
      HVAZYGUUJYSYEUUJYGXNHVBVFVHUUAUUCUUDUUJVIUUIXNVJSVKHXNVLVMTSRVGYHXPXQVNYH
      XRYQYEXRYQMYGXRYEYQXPYEYQMZXQXPYSUUKYTYEUUFYSYQUUGYSUUFYQYSUUFJUUCYQUUHYQ
      UUCXNVOVFVETVPSRVQRVRXPYPJXQYQJZYOYPXPHVSGUULYOMHEXNVTAEHBCWAWBVRWCYOYNAY
      CLZYDEQGYCQWHYOUUMMWDEXNWEYNAYCQWFWGYNYBAYCYNYMYAFZXSYCGZYBYAYMWIUUOUUNYB
      UUOYMXTYAUUOYLXSCUUOYLXSXNPIXSUUOYKXSXNPUUOXSVSGZYKXSFXSEXNVTUUPYKEXSOIXS
      UUPYJXSEOUUPXSWSGYJXSFXSWJXSWKSWLUUPXSXSWMWNWOSWPXSXNWQWOWRWTXAXBXCSSTXDY
      FYDYBAEXEZLZUURYAYAFZYAXFYBUUSAEXKXSEFXTYAYAXSECXGWTXHXIYFYBAYCUUQYFYCEHK
      IUUQXNHEKUFXJUHUIUJXLTXM $.

    $( If cyclically shifting a word by 1 position results in the word itself,
       the word is a "repeated symbol word".  Remark: also "valid" for an empty
       word!  (Contributed by AV, 8-Nov-2018.)  (Proof shortened by AV,
       10-Nov-2018.) $)
    cshw1repsw $p |- ( ( W e. Word V /\ ( W cyclShift 1 ) = W )
                       -> W = ( ( W ` 0 ) repeatS ( # ` W ) ) ) $=
      ( vi cword wcel c1 ccsh co wceq wa cv cfv cc0 chash cfzo wral creps cshw1
      wb repswsymballbi bicomd adantr mpbid ) BADEZBFGHBIZJCKBLMBLZICMBNLZOHPZB
      UFUGQHIZCABRUDUHUISUEUDUIUHCABTUAUBUC $.
  $}

  ${
    $d V n y $.  $d W n w y $.
    $( The class of (different!) words resulting by cyclically shifting
       something (not necessarily a word) is a set.  (Contributed by AV,
       8-Jun-2018.)  (Revised by Mario Carneiro/AV, 25-Oct-2018.) $)
    cshwsexa $p |- { w e. Word V | E. n e. ( 0 ..^ ( # ` W ) )
                                   ( W cyclShift n ) = w } e. _V $=
      ( vy cv ccsh co wceq cc0 cfzo wrex wcel wa wex cab cvv abbii eqeltri wtru
      chash cfv cword crab df-rab r19.42v bicomi df-rex 3eqtri abid2 weq wi wal
      ovex tru pm3.2i ovexd eqtr3 eqcoms adantl com12 ad2antlr alrimiv spcimedv
      ex imp mp1i zfrep4 ) DBFZGHZAFZIZBJDUAUBZKHZLZACUCZUDZVIVNMZVKVPMZVLNZNBO
      ZAPZQVQVSVONZAPVTBVNLZAPWBVOAVPUEWCWDAWDWCVSVLBVNUFUGRWDWAAVTBVNUHRUIVRVT
      BAEVRBPVNQBVNUJJVMKUNSTTNVTAEUKZULZAUMZEOZVRTTUOUOUPTTWHTWGTEVJQTDVIGUQTE
      FZVJIZNZTWGWKTNWFAWJWFTTVTWJWEVLWJWEULZVSWLVKVJVKVJIWJWEVKWIVJURVEUSUTVAV
      BVCVEVDVFVGVHS $.
  $}

  ${
    $d m n K $.  $d m n N $.  $d m n V $.  $d m n X $.  $d m n Y $.
    $d m n Z $.
    $( If a word is a cyclically shifted word, and a second word is the result
       of cyclically shifting the same word, then the second word is the result
       of cyclically shifting the first word.  (Contributed by AV,
       11-May-2018.)  (Revised by AV, 12-Jun-2018.)  (Proof shortened by AV,
       3-Nov-2018.) $)
    2cshwcshw $p |- ( ( Y e. Word V /\ ( # ` Y ) = N )
               -> ( ( K e. ( 0 ... N ) /\ X = ( Y cyclShift K )
                    /\ E. m e. ( 0 ... N ) Z = ( Y cyclShift m ) )
                            -> E. n e. ( 0 ... N ) Z = ( X cyclShift n ) ) ) $=
      ( cc0 co wcel ccsh wceq wa wi cmin ad2antrr imp adantr ex cfz cv wrex w3a
      cword chash cfv cle wbr caddc difelfznle 3exp com12 adantl simprl elfzelz
      wn elfz2 zaddcl adantrr zsubcld syl11 3adant1 sylbi 2cshw syl3anc zaddcld
      cz simprr cshwsublen syl2anc eqtrd elfz2nn0 nn0cn anim12i adantrl pncan3d
      cn0 addcl oveq1d pncan syl2an elfznn0 3adant3 eqeq1d imbi2d mpbird oveq2d
      cc wb oveq2 eqtr2d oveq1 eqtr4d exp41 com24 eqeq2d biimpd impancom impcom
      imp41 rspcev exp31 cshw0 fznn0sub2 eleq1d ad2antlr simpl sylan9eqr eqcomd
      2cshwid eqeq1 rexbidv sylbid com13 a1d syl6bi com15 difelfzle syl2imc zcn
      zsubcl zcnd pncan3 syl2anr syl5com imp31 com23 pm2.61ii rexlimdva 3imp )
      CIDUAJZKZFGCLJZMZHGAUBZLJZMZAYLUCZUDGEUEKZGUFUGZDMZNZHFBUBZLJZMZBYLUCZYMY
      OYSUUCUUGOYMUUCYSYOUUGYMUUCYSYOUUGOOYMUUCNZYOYSUUGUUHYOYSUUGOUUHYONZYRUUG
      AYLUUIYPYLKZNZYRUUGYPIMZCYPUHUIZUUKYRNZUUGOUULUQZUUMUQZUUNUUGUUOUUPNZUUNN
      YPDUJJZCPJZYLKZHFUUSLJZMZUUGUUQUUNUUTUUPUUNUUTOUUOUUNUUPUUTUUKUUPUUTOZYRU
      UIUUJUVCYMUUJUVCOUUCYOYMUUJUUPUUTCYPDUKULQRSUMUNRUUNUUQUVBUUKUUQYRUVBUUKU
      UQNZYRUVBUVDYQUVAHUUHYOUUJUUQYQUVAMZUUHUUQUUJYOUVEUUHUUQUUJYOUVEUUHUUQNZU
      UJNZYONYQYNUUSLJZUVAUVGYQUVHMYOUVGUVHGCUUSUJJZUUAPJZLJZYQUVGUVHGUVILJZUVK
      UVGYTCVHKZUUSVHKZUVHUVLMUUHYTUUQUUJYMYTUUBUOZQZUUHUVMUUQUUJYMUVMUUCCIDUPZ
      SZQUVFUUJUVNYMUUJUVNOZUUCUUQYMIVHKZDVHKZUVMUDZICUHUICDUHUIZNZNZUVSCIDURZU
      WBUVSUWDUWAUVMUVSUVTYPVHKZUWAUVMNZUVNUUJUWGUWHUVNUWGUWHNZUURCUWGUWAUURVHK
      UVMYPDUSUTUWGUWAUVMVIZVAZTYPIDUPZVBVCSVDQRCUUSEGVEVFUVGYTUVIVHKZUVLUVKMUV
      PUVFUUJUWMYMUUJUWMOZUUCUUQYMUWEUWNUWFUWBUWNUWDUWAUVMUWNUVTUWGUWHUWMUUJUWG
      UWHUWMUWICUUSUWJUWKVGTUWLVBVCSVDQRUVIEGVJVKVLUVGUVJYPGLUVFUUJUVJYPMZUUHUU
      JUWOOZUUQUUHUWPUUJUVIDPJZYPMZOZYMUWSUUCYMCVRKZDVRKZUWCUDUWSCDVMUWTUXAUWSU
      WCYPVRKZUWTUXANZUWRUUJUXBUXCUWRUXBYPWIKZCWIKZDWIKZNZUWRUXCYPVNUWTUXEUXAUX
      FCVNDVNVOUXDUXGNZUWQUURDPJZYPUXHUVIUURDPUXHCUURUXDUXEUXFUOUXDUXFUURWIKUXE
      YPDVSVPVQVTUXDUXFUXIYPMUXEYPDWAVPVLWBTYPDWCVBWDVDSUUCUWPUWSWJZYMUUBUXJYTU
      UBUWOUWRUUJUUBUVJUWQYPUUADUVIPWKWEWFUNUNWGSRWHWLSYOUVAUVHMUVGFYNUUSLWMUNW
      NWOWPXAWQWRWSWTUUFUVBBUUSYLUUDUUSMUUEUVAHUUDUUSFLWKWQXBVKXCUUNUULUUGUUHYO
      UUJYRUULUUGOUULYOUUJYRUUHUUGUULYRUUJYOUUHUUGOZUULYRHGILJZMZUUJYOUXKOZOUUL
      YQUXLHYPIGLWKWQUXMUXNUUJUUHYOUXMUUGUUCYMYOUXMUUGOOUUCUXMYOYMUUGUUCUXMHGMZ
      YOYMUUGOOUUCUXLGHYTUXLGMUUBEGXDSWQUUCYMYOUXOUUGUUCYMYOUXOUUGUUCYMNZYONZUX
      ONUUGGUUEMZBYLUCZUXQUXSUXOUXQUUACPJZYLKZGFUXTLJZMZUXSUXPUYAYOUXPUYADCPJZY
      LKZYMUYEUUCCDXEUNUUBUYAUYEWJYTYMUUBUXTUYDYLUUADCPWMXFXGWGSUXQUYBGYOUXPUYB
      YNUXTLJZGFYNUXTLWMUUCYTUVMUYFGMYMYTUUBXHUVQCEGXKWBXIXJUXRUYCBUXTYLUUDUXTM
      UUEUYBGUUDUXTFLWKWQXBVKSUXOUUGUXSWJUXQUXOUUFUXRBYLHGUUEXLXMUNWGWOWPXNWPWT
      XOXPXQWPXRXAUMUUMUUNUUGUUMUUNNYPCPJZYLKZHFUYGLJZMZUUGUUNUUMUYHUUKUUMUYHOZ
      YRUUIUUJUYKYMUUJUYKOUUCYOYMUUJUUMUYHCYPDXSULQRSWTUUNUUMUYJUUKYRUUMUYJOUUK
      UUMYRUYJUUHYOUUJUUMYRUYJOZOUUHUUMUUJYOUYLUUHUUMUUJYOUYLUUHUUMNZUUJNZYONZY
      RUYJUYOYQUYIHUYOYQUYIMZYQYNUYGLJZMZUYNUYRYOUYNUYQGCUYGUJJZLJZYQUYNYTUVMUY
      GVHKZUYQUYTMUUHYTUUMUUJUVOQUUHUVMUUMUUJUVRQUYMUUJVUAYMUUJVUAOUUCUUMUUJUWG
      YMUVMVUAUWLUVQUWGUVMVUAYPCYBTXTQRCUYGEGVEVFUYNUYSYPGLUYMUUJUYSYPMZYMUUJVU
      BOUUCUUMYMUVMUUJVUBUVQUUJUVMVUBUVMUXEUXDVUBUUJCYAUUJYPUWLYCCYPYDYETYFQRWH
      WLSYOUYPUYRWJUYNYOUYIUYQYQFYNUYGLWMWQUNWGWQWRWOWPYGYHRWTUUFUYJBUYGYLUUDUY
      GMUUEUYIHUUDUYGFLWKWQXBVKTYITYJTYHTWPYKUM $.
  $}

  ${
    $d N n y $.  $d V n y $.  $d X n y $.
    $( For a nonempty word the sets of shifted words, expressd by a finite
       interval of integers or by a half-open integer range are identical.
       (Contributed by Alexander van der Vekens, 15-Jun-2018.) $)
    scshwfzeqfzo $p |- ( ( X e. Word V /\ X =/= (/) /\ N = ( # ` X ) )
            -> { y e. Word V | E. n e. ( 0 ... N ) y = ( X cyclShift n ) }
            = { y e. Word V | E. n e. ( 0 ..^ N ) y = ( X cyclShift n ) } ) $=
      ( wcel wceq ccsh co cc0 wrex wa adantr eleq1 adantl mpbird oveq2 3ad2ant3
      wb cvv cword c0 wne chash cfv w3a cv cfz csn wo cun cuz cn0 lencl elnn0uz
      cfzo sylib 3adant2 fzisfzounsn rexeqdv rexun syl6bb wi ax-1 mpbiri eqeq2d
      syl fvex rexsng cshwn 3ad2ant1 eqtrd lennncl 3adant3 lbfzo0 sylibr eqeq1d
      cshw0 cn eqcoms eqcom biimpd rspcimedv eqeq1 rexbidv ex sylbid com12 jaoi
      mpd wss fzossfz ssrexv mp1i impbid rabbidva ) EDUAZFZEUBUCZCEUDUEZGZUFZAU
      GZEBUGZHIZGZBJCUHIZKZXFBJCUPIZKZAWQXBXCWQFZLZXHXJXLXHXJXFBCUIZKZUJZXJXLXH
      XFBXIXMUKZKXOXLXFBXGXPXLCJULUEZFZXGXPGXBXRXKWRXAXRWSWRXALXRWTXQFZWRXSXAWR
      WTUMFXSDEUNWTUOUQMXAXRXSSWRCWTXQNOPURMJCUSVGUTXFBXIXMVAVBXOXLXJXJXLXJVCXN
      XJXLVDXLXNXJXLXNXCECHIZGZXJXBXNYASZXKXAWRYBWSXACTFZYBXAYCWTTFEUDVHCWTTNVE
      XFYABCTXDCGXEXTXCXDCEHQVFVIVGRMXLYAXCEGZXJXBYAYDSXKXBXTEXCXBXTEWTHIZEXAWR
      XTYEGWSCWTEHQRWRWSYEEGXADEVJVKVLVFMXLYDXJXLYDLZXJEXEGZBXIKZXLYHYDXBYHXKXB
      EJHIZEGZYHWRWSYJXADEVRVKXBYGYJBJXIXBCVSFZJXIFXBYKWTVSFZWRWSYLXADEVMVNXAWR
      YKYLSWSCWTVSNRPCVOVPXBXDJGZLYJYGYMYJYGSXBYMYJXEEGZYGYJYNSJXDJXDGYIXEEJXDE
      HQVQVTXEEWAVBOWBWCWJMMYFXFYGBXIYDXFYGSXLXCEXEWDOWEPWFWGWGWHWIWHWGXIXGWKXJ
      XHVCXLJCWLXFBXIXGWMWNWOWP $.
  $}

  ${
    $d m n x y $.
    cshwcshid.1 $e |- ( ph -> y e. Word V ) $.
    cshwcshid.2 $e |- ( ph -> ( # ` x ) = ( # ` y ) ) $.
    $( A cyclically shifted word can be reconstructed by cyclically shifting it
       again.  Lemma for ~ erclwwlkssym and ~ erclwwlksnsym .  (Contributed by
       AV, 8-Apr-2018.)  (Revised by AV, 11-Jun-2018.)  (Proof shortened by AV,
       3-Nov-2018.) $)
    cshwcshid $p |- ( ph -> ( ( m e. ( 0 ... ( # ` y ) )
                                 /\ x = ( y cyclShift m ) )
                    -> E. n e. ( 0 ... ( # ` x ) ) y = ( x cyclShift n ) ) ) $=
      ( cv cc0 chash cfz co wcel ccsh wceq wa cz adantl syl wrex cmin fznn0sub2
      cfv wi oveq2 eleq2d syl5ibr syl11 adantr impcom caddc cword simpl elfzelz
      w3a cn0 cle wbr elfz2nn0 nn0z zsubcl syl2anr 3adant3 sylbi sylan 2cshw cc
      nn0cn anim12i pncan3 oveq2d cshwn 3eqtrrd adantrr wb eqeq2d mpbird rspcev
      3jca oveq1 syl2anc ex ) ADIZJCIZKUDZLMZNZBIZWEWDOMZPZQZWEWIEIZOMZPZEJWIKU
      DZLMZUAZAWLQZWFWDUBMZWQNZWEWIWTOMZPZWRWLAXAWHAXAUEWKWPWFPZWHXAAWHXAXDWTWG
      NWDWFUCXDWQWGWTWPWFJLUFUGUHHUIUJUKWSXCWEWJWTOMZPZAWHXFWKAWHQZXEWEWDWTULMZ
      OMZWEWFOMZWEXGWEFUMNZWDRNZWTRNZUPZXEXIPAXKWHXNGXKWHQXKXLXMXKWHUNWHXLXKWDJ
      WFUOSWHXMXKWHWDUQNZWFUQNZWDWFURUSZUPZXMWDWFUTZXOXPXMXQXPWFRNXLXMXOWFVAWDV
      AWFWDVBVCVDVESVTVFWDWTFWEVGTXGXHWFWEOWHXHWFPZAWHWDVHNZWFVHNZQZXTWHXRYCXSX
      OXPYCXQXOYAXPYBWDVIWFVIVJVDVEWDWFVKTSVLAXJWEPZWHAXKYDGFWEVMTUJVNVOWLXCXFV
      PZAWKYEWHWKXBXEWEWIWJWTOWAVQSSVRWOXCEWTWQWMWTPWNXBWEWMWTWIOUFVQVSWBWC $.
  $}

  ${
    $d k m n x z $.
    cshwcsh2id.1 $e |- ( ph -> z e. Word V ) $.
    cshwcsh2id.2 $e |- ( ph -> ( ( # ` y ) = ( # ` z )
                              /\ ( # ` x ) = ( # ` y ) ) ) $.
    $( A cyclically shifted word can be reconstructed by cyclically shifting it
       again twice.  Lemma for ~ erclwwlkstr and ~ erclwwlksntr .  (Contributed
       by AV, 9-Apr-2018.)  (Revised by AV, 11-Jun-2018.)  (Proof shortened by
       AV, 3-Nov-2018.) $)
    cshwcsh2id $p |- ( ph
      -> ( ( ( m e. ( 0 ... ( # ` y ) ) /\ x = ( y cyclShift m ) )
          /\ ( k e. ( 0 ... ( # ` z ) ) /\ y = ( z cyclShift k ) ) )
            -> E. n e. ( 0 ... ( # ` z ) ) x = ( z cyclShift n ) ) ) $=
      ( co wbr cc0 wcel ccsh wceq wa wi adantr adantl cv caddc cfv cle cfz wrex
      chash wb oveq1 eqeq2d anbi2d cn0 elfznn0 nn0addcl syl2anr elfz3nn0 simprl
      ad2antlr elfz2nn0 syl3anbrc cword cz elfzelz 2cshw biimpa jca exp41 com23
      syl3anc com24 imp com12 sylbid ancoms impcom oveq2 rspcev syl6com wn cmin
      clt cn w3a elfz2 nn0z zaddcl ex zsubcld 3adant1 sylbi mpan9 nn0re anim12i
      syl cr simplr readdcl adantlr ltnled posdifd biimpd sylbird 3adant3 elnnz
      nnnn0d eleq2d anbi1d le2add syl2anc nn0readdcl lesubadd2d sylibrd expcomd
      sylanbrc 3impia com13 syl5bi 3adant2 syl6bi cshwsublen eqtrd pm2.61ian )
      EUAZFUAZUBKZDUAZUGUCZUDLZAYDMCUAZUGUCZUEKZNZBUAZYIYDOKZPZQZYCMYGUEKZNZYIY
      FYCOKZPZQZQZYMYFGUAZOKZPZGYQUFZRUUBYHAQZYEYQNZYMYFYEOKZPZQZUUFUUAYPUUGUUK
      RZYTYRYPUULRYTYRQYPYLYMYSYDOKZPZQZUULYTYPUUOUHYRYTYOUUNYLYTYNUUMYMYIYSYDO
      UIUJUKZSYRUUOUULRYTUUOYRUULYLUUNYRUULRYLUUGYRUUNUUKYLYRUUGUUNUUKRYLYRUUGU
      UNUUKYLYRQZUUGQZUUNQUUHUUJUURUUHUUNUURYEULNZYGULNZYHUUHUUQUUSUUGYRYCULNZY
      DULNZUUSYLYCYGUMYDYJUMZYCYDUNUOSYRUUTYLUUGYCYGUPZURUUQYHAUQYEYGUSUTSUURUU
      NUUJUURUUMUUIYMUURYFHVANZYCVBNZYDVBNZUUMUUIPZUUGUVEUUQAUVEYHITTYRUVFYLUUG
      YCMYGVCZURUUQUVGUUGYLUVGYRYDMYJVCZSZSYCYDHYFVDZVIUJVEVFVGVHVJVKVLTVMVNVOU
      UEUUJGYEYQUUCYEPUUDUUIYMUUCYEYFOVPUJVQVRUUBYHVSZAQZYEYGVTKZYQNZYMYFUVOOKZ
      PZQZUUFUUAYPUVNUVSRZYTYRYPUVTRYTYPYRUVTYTYPUUOYRUVTRZUUPYLUUNUWAYLUVNYRUU
      NUVSYLYRUVNUUNUVSRYLYRUVNUUNUVSUUQUVNQZUUNQUVPUVRUWBUVPUUNUWBUVOULNUUTUVO
      YGUDLZUVPUWBUVOUWBUVOVBNZMUVOWALZUVOWBNUUQUWDUVNYLUVBYRUWDUVCYRMVBNZYGVBN
      ZUVFWCZMYCUDLYCYGUDLZQZQUVBUWDRZYCMYGWDUWHUWKUWJUWGUVFUWKUWFUVBUWGUVFQZUW
      DUVBUVGUWLUWDRYDWEUVGUWLUWDUVGUWLQYEYGUWLUVGYEVBNZUVFUVGUWMRUWGUVFUVGUWMY
      CYDWFZWGTVOUVGUWGUVFUQWHWGWNVLWISWJWKSUVNUUQUWEUVMUUQUWERAUUQUVMUWEYLUVBY
      RUVMUWERZUVCYRUVAUUTUWIWCZUVBUWORZYCYGUSZUVAUUTUWQUWIUVAUUTQZUVBUWOUWSUVB
      QZYCWONZYGWONZQZYDWONZQZUWOUWSUXCUVBUXDUVAUXAUUTUXBYCWLZYGWLZWMYDWLZWMUXE
      UVMYGYEWALZUWEUXEYGYEUXAUXBUXDWPZUXAUXDYEWONZUXBYCYDWQWRZWSUXEUXIUWEUXEYG
      YEUXJUXLWTXAXBWNWGXCWJWKVLSVOUVOXDXNXEYRUUTYLUVNUVDURUVNUUQUWCAUUQUWCRZUV
      MAYJYGPZYMUGUCYJPZQUXMJUXNUXMUXOUXNUUQYDYQNZYRQUWCUXNYLUXPYRUXNYKYQYDYJYG
      MUEVPXFXGUXPYRUWCUXPUVBUUTYDYGUDLZWCYRUWCRZYDYGUSUVBUXQUXRUUTYRUWPUVBUXQQ
      UWCUWRUVBUXQUWPUWCRUWPUXQUVBUWCUVAUUTUWIUXQUVBUWCRRUWSUVBUXQUWIUWCUWSUVBU
      XQUWIUWCRRUWTUWIUXQUWCUWTUWIUXQQZYEYGYGUBKUDLZUWCUWTUXAUXDQUXBUXBQZUXSUXT
      RUWSUXAUVBUXDUVAUXAUUTUXFSUXHWMUUTUYAUVAUVBUUTUXBUXBUXGUXGVFURYCYDYGYGXHX
      IUWTYEYGYGUVAUVBUXKUUTYCYDXJWRUUTUXBUVAUVBUXGURZUYBXKXLXMWGVJXOXPVKXQXRWJ
      VKXSSWNTVOUVOYGUSUTSUWBUUNUVRUWBUUMUVQYMUWBUUMUUIUVQUWBUVEUVFUVGUVHUVNUVE
      UUQAUVEUVMITZTYRUVFYLUVNUVIURUUQUVGUVNUVKSUVLVIUVNUVEUWMUUIUVQPUUQUYCYRUV
      FUVGUWMYLUVIUVJUWNUOYEHYFXTUOYAUJVEVFVGVHVJVKXSVHVOVOUUEUVRGUVOYQUUCUVOPU
      UDUVQYMUUCUVOYFOVPUJVQVRYB $.
  $}

  ${
    $d F x y z $.  $d J x y z $.  $d N x y z $.  $d S x y z $.
    $( The image of a cyclically shifted word under its domain without its left
       bound is the image of a cyclically shifted word under its domain without
       the number of shifted symbols.  (Contributed by AV, 19-Mar-2021.) $)
    cshimadifsn $p |- ( ( F e. Word S /\ N = ( # ` F ) /\ J e. ( 0 ..^ N ) )
                        -> ( F " ( ( 0 ..^ N ) \ { J } ) )
                           = ( ( F cyclShift J ) " ( 1 ..^ N ) ) ) $=
      ( vx vz vy wcel cfv wceq cc0 cfzo co wrex syl oveq2 cmo 3ad2ant2 adantr
      wa cword chash w3a csn cdif cima cv cab ccsh wfun cdm wss wfn wrdfn fnfun
      c1 3ad2ant1 wi wrddm difssd difeq1d adantl simpl 3sstr4d a1d 3imp dfimafn
      ex jca caddc 3ad2antl3 wb eqcoms eleq1d mpbird modfzo0difsn eqcomd eqeq2d
      modsumfzodifsn rexbidv fveq2 3ad2ant3 simpl1 elfzoelz eleq2d sseli syl6bi
      cz fzo0ss1 cshwidxmod syl3anc 3adant3 eqtrd eqeq1d rexxfrd2 abbidv anim2i
      imp 3adant2 cshwfn syl6eqss fndm sseqtr4d mpdan ) BAUAHZDBUBIZJZCKDLMZHZU
      CZBXHCUDZUEZUFZEUGZBIZFUGZJZEXLNZFUHZBCUIMZUPDLMZUFZXJBUJZXLBUKZULZTXMXSJ
      XJYCYEXEXGYCXIXEBKXFLMZUMYCABUNYFBUOOUQXEXGXIYEXEYDYFJZXGXIYEURZURABUSYGX
      GYHYGXGTZYEXIYIYFXKUEZYFXLYDYIYFXKUTXGXLYJJYGXGXHYFXKDXFKLPVAVBYGXGVCVDVE
      VHOVFVIEFXLBVGOXJXSGUGZXTIZXPJZGYANZFUHZYBXJXRYNFXJXQYMEGYKCVJMZXFQMZXLYA
      XJYKYAHZTZYQXLHZYPDQMZXLHZXIXEYRUUBXGCYKDVSVKXJYTUUBVLZYRXGXEUUCXIXGYQUUA
      XLYQUUAJXFDXFDYPQPVMVNRSVOXJXNXLHZTXNYQJZGYANZXNUUAJZGYANZXIXEUUDUUHXGGCX
      NDVPVKXJUUFUUHVLZUUDXGXEUUIXIXGUUEUUGGYAXGYQUUAXNXGUUAYQDXFYPQPVQVRVTRSVO
      XJYRUUEUCZXOYLXPUUJXOYQBIZYLUUEXJXOUUKJYRXNYQBWAWBXJYRUUKYLJZUUEYSXECWHHZ
      YKYFHZUULXEXGXIYRWCXJUUMYRXIXEUUMXGCKDWDZWBSXJYRUUNXGXEYRUUNURXIXGYRYKUPX
      FLMZHUUNXGYAUUPYKDXFUPLPZWEUUPYFYKXFWIZWFWGRWRXEUUMUUNUCYLUUKYKCABWJVQWKW
      LWMWNWOWPXJYBYOXJXTUJZYAXTUKZULZTZYBYOJXJXTYFUMZUVBXJXEUUMTZUVCXEXIUVDXGX
      IUUMXEUUOWQWSCABWTOXJUVCTZUUSUVAUVCUUSXJYFXTUOVBUVEYAYFUUTXJYAYFULZUVCXGX
      EUVFXIXGYAUUPYFUUQUURXARSUVCUUTYFJXJYFXTXBVBXCVIXDGFYAXTVGOVQWMWM $.

    $( The image of a cyclically shifted word under its domain without its
       upper bound is the image of a cyclically shifted word under its domain
       without the number of shifted symbols.  (Contributed by AV,
       19-Mar-2021.) $)
    cshimadifsn0 $p |- ( ( F e. Word S /\ N = ( # ` F ) /\ J e. ( 0 ..^ N ) )
                         -> ( F " ( ( 0 ..^ N ) \ { J } ) )
                     = ( ( F cyclShift ( J + 1 ) ) " ( 0 ..^ ( N - 1 ) ) ) ) $=
      ( vz vy wcel cfv wceq cc0 cfzo co c1 caddc syl 3ad2ant3 adantl adantr wss
      wa vx cword chash w3a csn cdif cima ccsh cmin cshimadifsn cv cab elfzoel2
      wrex wi cz elfzom1elp1fzo1 ex imp elfzo1elm1fzo0 wb oveq1 eqeq2d elfzoelz
      cc zcnd npcan1 eqcomd rspcedvd fveq2 cmo 1cnd add32r oveq1d fveq2d simpl1
      syl3anc peano2zd fzossrbm1 sseld oveq2 eleq2d 3ad2ant2 cshwidxmod fzo0ss1
      mpbid sylan sseldi 3eqtr4rd 3adant3 eqtrd eqeq1d rexxfrd2 abbidv wfun cdm
      wfn anim2i 3adant2 cshwfn fnfun syl5sseq fndm sseqtr4d jca dfimafn eqcoms
      mpdan 3eqtr4d ) BAUBGZDBUCHZIZCJDKLZGZUDZBXMCUEUFUGBCUHLZMDKLZUGZBCMNLZUH
      LZJDMUILZKLZUGZABCDUJXOUAUKZXPHZEUKZIZUAXQUNZEULZFUKZXTHZYFIZFYBUNZEULZXR
      YCXOYHYMEXOYGYLUAFYJMNLZXQYBXOYJYBGZYOXQGZXNXJYPYQUOZXLXNDUPGZYRCJDUMZYSY
      PYQYJDUQZUROPUSXOYDXQGZTZYDYOIZYDYDMUILZMNLZIZFUUEYBUUBUUEYBGXOYDDUTQYJUU
      EIZUUDUUGVAUUCUUHYOUUFYDYJUUEMNVBVCQUUBUUGXOUUBUUFYDUUBYDVEGUUFYDIUUBYDYD
      MDVDVFYDVGOVHQVIXOYPUUDUDZYEYKYFUUIYEYOXPHZYKUUDXOYEUUJIYPYDYOXPVJPXOYPUU
      JYKIUUDXOYPTZYJXSNLZXKVKLZBHZYOCNLZXKVKLZBHZYKUUJUUKUUMUUPBUUKUULUUOXKVKU
      UKYJVEGZCVEGZMVEGUULUUOIYPUURXOYPYJYJJYAVDVFQXOUUSYPXNXJUUSXLXNCCJDVDZVFP
      RUUKVLYJCMVMVQVNVOUUKXJXSUPGZYJJXKKLZGZYKUUNIXJXLXNYPVPZXOUVAYPXNXJUVAXLX
      NCUUTVRZPRUUKYJXMGZUVCXOYPUVFXNXJYPUVFUOXLXNYBXMYJXNYSYBXMSZYTDVSOZVTPUSX
      OUVFUVCVAZYPXLXJUVIXNXLXMUVBYJDXKJKWAZWBWCRWFYJXSABWDVQUUKXJCUPGZYOUVBGZU
      UJUUQIUVDXOUVKYPXNXJUVKXLUUTPRUUKYOXMGZUVLUUKXQXMYODWEZXOYSYPYQXNXJYSXLYT
      PUUAWGWHXOUVMUVLVAZYPXLXJUVOXNXLXMUVBYOUVJWBWCRWFYOCABWDVQWIWJWKWLWMWNXOX
      PWOZXQXPWPZSZTZXRYIIXOXPUVBWQZUVSXOXJUVKTZUVTXJXNUWAXLXNUVKXJUUTWRWSCABWT
      OXOUVTTZUVPUVRUVTUVPXOUVBXPXAQUWBXQUVBUVQXOXQUVBSUVTXOXMXQUVBUVNXLXJXMUVB
      IXNUVJWCXBRUVTUVQUVBIXOUVBXPXCQXDXEXHUAEXQXPXFOXOXTWOZYBXTWPZSZTZYCYNIXOX
      TUVBWQZUWFXOXJUVATZUWGXJXNUWHXLXNUVAXJUVEWRWSXSABWTOXOUWGTZUWCUWEUWGUWCXO
      UVBXTXAQUWIYBUVBUWDXOYBUVBSUWGXOYBXMUVBXNXJUVGXLUVHPXLXJUVBXMIZXNUWJXKDXK
      DJKWAXGWCXDRUWGUWDUVBIXOUVBXTXCQXDXEXHFEYBXTXFOXIWK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Mapping words by a function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Mapping a word by a function.  (Contributed by Stefan O'Rear,
     27-Aug-2015.) $)
  wrdco $p |- ( ( W e. Word A /\ F : A --> B ) -> ( F o. W ) e. Word B ) $=
    ( cword wcel wf wa cc0 chash cfv cfzo co ccom simpr wrdf adantr fco syl2anc
    iswrdi syl ) DAEFZABCGZHZIDJKZLMZBCDNZGZUGBEFUDUCUFADGZUHUBUCOUBUIUCADPQUFA
    BCDRSBUEUGTUA $.

  $( Length of a mapped word is unchanged.  (Contributed by Stefan O'Rear,
     27-Aug-2015.) $)
  lenco $p |- ( ( W e. Word A /\ F : A --> B ) ->
      ( # ` ( F o. W ) ) = ( # ` W ) ) $=
    ( cword wcel wf wa ccom chash cfv cc0 cfzo wfn wceq simpr ffn hashfn 3syl
    co wrdf adantr fco syl2anc eqtr4d ) DAEFZABCGZHZCDIZJKZLDJKZMTZJKZUKUHULBUI
    GZUIULNUJUMOUHUGULADGZUNUFUGPUFUOUGADUAUBZULABCDUCUDULBUIQULUIRSUHUODULNUKU
    MOUPULADQULDRSUE $.

  $( Mapping of a singleton word.  (Contributed by Mario Carneiro,
     27-Sep-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
  s1co $p |- ( ( S e. A /\ F : A --> B ) ->
    ( F o. <" S "> ) = <" ( F ` S ) "> ) $=
    ( wcel wf wa cs1 ccom cc0 csn cxp cfv wceq cop s1val cc 0cn eqtr4d cvv mpan
    xpsng adantr coeq2d wfn ffn id fcoconst syl2anr fvex ax-mp c0ex xpsn eqtr4i
    syl6reqr ) CAEZABDFZGZDCHZIDJKZCKLZIZCDMZHZURUSVADUPUSVANUQUPUSJCOKZVACAPJQ
    EUPVAVENRJCQAUBUASUCUDURVBUTVCKLZVDUQDAUEUPVBVFNUPABDUFUPUGDUTACUHUIVDJVCOK
    ZVFVCTEVDVGNCDUJZVCTPUKJVCULVHUMUNUOS $.

  ${
    $d x y A $.  $d x B $.  $d x y F $.  $d x y S $.  $d x y T $.  $d x W $.
    $( Mapping of words commutes with reversal.  (Contributed by Stefan O'Rear,
       27-Aug-2015.) $)
    revco $p |- ( ( W e. Word A /\ F : A --> B ) ->
        ( F o. ( reverse ` W ) ) = ( reverse ` ( F o. W ) ) ) $=
      ( vx wcel wf wa cc0 cfv chash cfzo co cmpt cmin wceq syl adantr syl2anc
      c1 cword creverse cv ccom wfn wrdfn ad2antrr cz lencl nn0zd fzoval eleq2d
      biimpa fznn0sub2 eleqtrrd fvco2 lenco oveq1d fveq2d revfv adantlr 3eqtr4d
      cfz mpteq2dva oveq2d mpteq1d revlen 3eqtr4rd simpr revcl wrdf fcompt wfun
      cvv ffun adantl simpl cofunexg revval ) DAUAZFZABCGZHZEIDUBJZKJZLMZEUCZWD
      JZCJZNZEICDUDZKJZLMZWLTOMZWGOMZWKJZNZCWDUDZWKUBJZWCEIDKJZLMZWPNEXAWINWQWJ
      WCEXAWPWIWCWGXAFZHZWTTOMZWGOMZWKJZXEDJZCJZWPWIXCDXAUEZXEXAFXFXHPWAXIWBXBA
      DUFUGXCXEIXDVCMZXAXCWGXJFZXEXJFWCXBXKWCXAXJWGWAXAXJPZWBWAWTUHFXLWAWTADUIU
      JIWTUKQRZULUMWGXDUNQWCXLXBXMRUOXACDXEUPSXCWOXEWKWCWOXEPXBWCWNXDWGOWCWLWTT
      OABCDUQZURURRUSXCWHXGCWAXBWHXGPWBADWGUTVAUSVBVDWCEWMXAWPWCWLWTILXNVEVFWCE
      WFXAWIWCWEWTILWAWEWTPWBADVGRVEVFVHWCWBWFAWDGZWRWJPWAWBVIWAXOWBWAWDVTFXOAD
      VJAWDVKQRECWDWFABVLSWCWKVNFZWSWQPWCCVMZWAXPWBXQWAABCVOVPWAWBVQCDVTVRSEVNW
      KVSQVB $.

    $( Mapping of words commutes with concatenation.  (Contributed by Stefan
       O'Rear, 27-Aug-2015.) $)
    ccatco $p |- ( ( S e. Word A /\ T e. Word A /\ F : A --> B ) ->
        ( F o. ( S ++ T ) ) = ( ( F o. S ) ++ ( F o. T ) ) ) $=
      ( vx vy wcel wf cc0 chash cfv caddc co cfzo cif cmpt wceq syl2anc cvv w3a
      cword cv cmin cconcat lenco 3adant2 3adant1 oveq12d oveq2d mpteq1d adantr
      ccom wa eleq2d ifbid wfn wrdf 3ad2ant1 ffn syl fvco2 iftrue adantl eqtr4d
      sylan wn 3ad2ant2 ad2antrr cz wo lencl fzospliti ancoms orcanai fzosubel3
      nn0zd fveq2d iffalse 3eqtr4d ifeqda mpteq2dva ffvelrnda ffvelrnd ccatfval
      eqtrd eqtr2d ifclda 3adant3 simp3 feqmptd fveq2 fvif syl6eq wfun 3ad2ant3
      fmptco ffun simp1 cofunexg simp2 ) CAUBZHZDXBHZABEIZUAZFJCKLZDKLZMNZONZFU
      CZJXGONZHZXKCLZELZXKXGUDNZDLZELZPZQZFJECUMZKLZEDUMZKLZMNZONZXKJYBONZHZXKY
      ALZXKYBUDNZYCLZPZQZECDUENZUMYAYCUENZXFYMFXJYLQXTXFFYFXJYLXFYEXIJOXFYBXGYD
      XHMXCXEYBXGRXDABECUFUGZXDXEYDXHRXCABEDUFUHUIUJUKXFFXJYLXSXFXKXJHZUNZYLXMY
      IYKPXSYRYHXMYIYKYRYGXLXKXFYGXLRYQXFYBXGJOYPUJULUOUPYRXMYIYKXSYRXMUNYIXOXS
      YRCXLUQZXMYIXORYRXLACIZYSXFYTYQXCXDYTXEACURUSULZXLACUTVAXLECXKVBVFXMXSXOR
      YRXMXOXRVCVDVEYRXMVGZUNZXPYCLZXRYKXSUUCDJXHONZUQZXPUUEHZUUDXRRUUCUUEADIZU
      UFXFUUHYQUUBXDXCUUHXEADURVHVIZUUEADUTVAUUCXKXGXIONHZXHVJHZUUGYRXMUUJXFXGV
      JHZYQXMUUJVKZXCXDUULXEXCXGACVLVQUSYQUULUUMXKJXIXGVMVNVFVOXFUUKYQUUBXDXCUU
      KXEXDXHADVLVQVHVIXKXGXHVPSZUUEEDXPVBSXFYKUUDRYQUUBXFYJXPYCXFYBXGXKUDYPUJV
      RVIUUBXSXRRYRXMXOXRVSVDVTWAWFWBWGXFFGXJAXMXNXQPZGUCZELZXSYNEYRXMXNXQAYRXL
      AXKCUUAWCUUCUUEAXPDUUIUUNWDWHXCXDYNFXJUUOQRXEFCDXBXBWEWIXFGABEXCXDXEWJWKU
      UPUUORUUQUUOELXSUUPUUOEWLXMXNXQEWMWNWQXFYATHZYCTHZYOYMRXFEWOZXCUURXEXCUUT
      XDABEWRWPZXCXDXEWSECXBWTSXFUUTXDUUSUVAXCXDXEXAEDXBWTSFYAYCTTWESVT $.
  $}

  ${
    $d A i $.  $d B i $.  $d F i $.  $d N i $.  $d W i $.
    $( Mapping of words commutes with the "cyclical shift" operation.
       (Contributed by AV, 12-Nov-2018.) $)
    cshco $p |- ( ( W e. Word A /\ N e. ZZ /\ F : A --> B )
                -> ( F o. ( W cyclShift N ) ) = ( ( F o. W ) cyclShift N ) ) $=
      ( vi wcel cz cc0 cfv cfzo co wfn syl3anc syl2anc oveq2d cmo adantr fveq2d
      wceq cword w3a chash ccsh ccom crn wss ffn 3ad2ant3 cshwfn 3adant3 cshwrn
      wf fnco wrdco 3adant2 simp2 lenco fneq2d mpbid cv wa caddc wrdfn 3ad2ant1
      cn zaddcl syl2anr cn0 clt wbr elfzo0 simp2bi adantl zmodfzo eleq1d mpbird
      elfzoelz wb fvco2 simpl1 cshwidxmod 3eqtr4rd eqcomd eleq2d biimpa 3eqtr4d
      simpr sylan eqfnfvd ) EAUAGZDHGZABCUMZUBZFIEUCJZKLZCEDUDLZUEZCEUEZDUDLZWN
      CAMZWQWPMZWQUFAUGZWRWPMWMWKXAWLABCUHUIWKWLXBWMDAEUJUKZWKWLXCWMDAEULUKAWPC
      WQUNNWNWTIWSUCJZKLZMZWTWPMWNWSBUAGZWLXGWKWMXHWLABCEUOUPZWKWLWMUQZDBWSUJOW
      NXFWPWTWNXEWOIKWKWMXEWOTZWLABCEURUPZPUSUTWNFVAZWPGZVBZXMWQJZCJZXMDVCLZXEQ
      LZWSJZXMWRJZXMWTJZXOXSEJZCJZXRWOQLZEJZCJZXTXQXOYCYFCXOXSYEEXOXEWOXRQWNXKX
      NXLRPSSXOEWPMZXSWPGZXTYDTWNYHXNWKWLYHWMAEVDVERXOYIYEWPGZXOXRHGZWOVFGZYJXN
      XMHGWLYKWNXMIWOVRXJXMDVGVHXNYLWNXNXMVIGYLXMWOVJVKXMWOVLVMVNXRWOVOOWNYIYJV
      SXNWNXSYEWPWNXEWOXRQXLPVPRVQWPCEXSVTOXOWKWLXNXQYGTWKWLWMXNWAWNWLXNXJRZWNX
      NWHWKWLXNUBXPYFCXMDAEWBSNWCWNXBXNYAXQTXDWPCWQXMVTWIXOXHWLXMXFGZYBXTTWNXHX
      NXIRYMWNXNYNWNWPXFXMWNWOXEIKWNXEWOXLWDPWEWFXMDBWSWBNWGWJ $.

    $d M i $.
    $( Mapping of words commutes with the substring operation.  (Contributed by
       AV, 11-Nov-2018.) $)
    swrdco $p |- ( ( W e. Word A /\ ( M e. ( 0 ... N )
                     /\ N e. ( 0 ... ( # ` W ) ) ) /\ F : A --> B )
                   -> ( F o. ( W substr <. M , N >. ) )
                      = ( ( F o. W ) substr <. M , N >. ) ) $=
      ( vi cword wcel cc0 cfz co cfv wa w3a wfn 3adant3 wi wceq sylan cmin cfzo
      chash wf cop csubstr ccom crn wss 3ad2ant3 swrdvalfn 3expb swrdrn syl3anc
      fnco wrdco 3adant2 simp2l lenco eqcomd oveq2d eleq2d biimpd expcom adantl
      ffn com13 com12 3imp cv caddc 3anass biimpri swrdfv fveq2d wrdfn 3ad2ant1
      adantr elfzodifsumelfzo 3ad2ant2 fvco2 syl2anc eqtr4d ancoms 3jca 3eqtr4d
      imp ex eqfnfvd ) FAHIZDJEKLIZEJFUCMZKLZIZNZABCUDZOZGJEDUALUBLZCFDEUEZUFLZ
      UGZCFUGZWSUFLZWQCAPZWTWRPZWTUHAUIZXAWRPWPWJXDWOABCVFUJWJWOXEWPWJWKWNXEFDE
      AUKULQZWJWOXFWPWJWKWNXFDEAFUMULQAWRCWTUOUNWQXBBHIZWKEJXBUCMZKLZIZXCWRPWJW
      PXHWOABCFUPUQZWJWKWNWPURZWJWOWPXKWOWJWPXKRZWNWJXNRZWKWPWJWNXKWJWPWNXKRZWJ
      WPNZWNXKXQWMXJEXQWLXIJKXQXIWLABCFUSZUTVAVBVCVDVGVEVHVIXBDEBUKUNWQGVJZWRIZ
      NZXSWTMZCMZXSDVKLZXBMZXSXAMZXSXCMZYAYCYDFMZCMZYEWQWJWKWNOZXTYCYISWJWOYJWP
      YJWJWONWJWKWNVLVMQYJXTNYBYHCAFDEXSVNVOTYAFJWLUBLZPZYDYKIZYEYISWQYLXTWJWOY
      LWPAFVPVQVRWQXTYMWOWJXTYMRWPWLXSDEVSVTWGYKCFYDWAWBWCWQXEXTYFYCSXGWRCWTXSW
      ATWQXHWKXKOXTYGYESWQXHWKXKXLXMWJWOWPXKWOWJXNWNXOWKWPWJWNXKWPWJXPWPWJNZWNX
      KYNWMXJEYNWLXIJKYNXIWLWJWPXIWLSXRWDUTVAVBVCWHVGVEVHVIWEBXBDEXSVNTWFWI $.
  $}

  $( Mapping of (nonempty) words commutes with the "last symbol" operation.
     This theorem would not hold if ` W = (/) ` , ` ( F `` (/) ) =/= (/) ` and
     ` (/) e. A ` , because then ` ( lastS `` ( F o. W ) ) `
     ` = ( lastS `` (/) ) = (/) =/= ( F `` (/) ) ` ` = ( F ( lastS `` W ) ) ` .
     (Contributed by AV, 11-Nov-2018.) $)
  lswco $p |- ( ( W e. Word A /\ W =/= (/) /\ F : A --> B )
                -> ( lastS ` ( F o. W ) ) = ( F ` ( lastS ` W ) ) ) $=
    ( cword wcel wf clsw cfv chash c1 cmin co cvv wceq 3adant2 lsw fveq2d syl
    wa wne w3a ccom wfun ffun anim1i ancoms cofunexg 3syl lenco oveq1d cc0 cfzo
    c0 adantr cn lennncl fzo0end jca 3adant3 fvco3 3ad2ant1 eqcomd eqtrd 3eqtrd
    wrdf ) DAEZFZDUNUAZABCGZUBZCDUCZHIZVLJIZKLMZVLIZDJIZKLMZVLIZDHIZCIZVKCUDZVH
    TZVLNFVMVPOVHVJWCVIVJVHWCVJWBVHABCUEUFUGPCDVGUHVLNQUIVKVOVRVLVKVNVQKLVHVJVN
    VQOVIABCDUJPUKRVKVSVRDIZCIZWAVKULVQUMMZADGZVRWFFZTZVSWEOVHVIWIVJVHVITZWGWHV
    HWGVIADVFUOWJVQUPFWHADUQVQURSUSUTWFAVRCDVASVKWDVTCVKVTWDVHVIVTWDOVJDVGQVBVC
    RVDVE $.

  ${
    $d A x $.  $d B x $.  $d F x $.  $d N x $.  $d S x $.
    $( Mapping of words commutes with the "repeated symbol" operation.
       (Contributed by AV, 11-Nov-2018.) $)
    repsco $p |- ( ( S e. A /\ N e. NN0 /\ F : A --> B )
                   -> ( F o. ( S repeatS N ) ) = ( ( F ` S ) repeatS N ) ) $=
      ( vx wcel cn0 wf w3a cc0 cfzo co creps cfv cmpt wa wceq 3adant3 cvv simpr
      ccom simpl1 simpl2 repswsymb syl3anc fveq2d mpteq2dva simp3 repsf syl2anc
      cv fcompt fvexd anim1i reps syl 3eqtr4d ) CAGZEHGZABDIZJZFKELMZFULZCENMZO
      ZDOZPZFVCCDOZPZDVEUBZVIENMZVBFVCVGVIVBVDVCGZQZVFCDVNUSUTVMVFCRUSUTVAVMUCU
      SUTVAVMUDVBVMUACVDEAUEUFUGUHVBVAVCAVEIZVKVHRUSUTVAUIUSUTVOVACEAUJSFDVEVCA
      BUMUKVBVITGZUTQZVLVJRUSUTVQVAUSVPUTUSCDUNUOSFVIETUPUQUR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Longer string literals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)
  $( Syntax for the length 2 word constructor. $)
  cs2 $a class <" A B "> $.

  $( Syntax for the length 3 word constructor. $)
  cs3 $a class <" A B C "> $.

  $( Syntax for the length 4 word constructor. $)
  cs4 $a class <" A B C D "> $.

  $( Syntax for the length 5 word constructor. $)
  cs5 $a class <" A B C D E "> $.

  $( Syntax for the length 6 word constructor. $)
  cs6 $a class <" A B C D E F "> $.

  $( Syntax for the length 7 word constructor. $)
  cs7 $a class <" A B C D E F G "> $.

  $( Syntax for the length 8 word constructor. $)
  cs8 $a class <" A B C D E F G H "> $.

  $( Define the length 2 word constructor.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  df-s2 $a |- <" A B "> = ( <" A "> ++ <" B "> ) $.

  $( Define the length 3 word constructor.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  df-s3 $a |- <" A B C "> = ( <" A B "> ++ <" C "> ) $.

  $( Define the length 4 word constructor.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  df-s4 $a |- <" A B C D "> = ( <" A B C "> ++ <" D "> ) $.

  $( Define the length 5 word constructor.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  df-s5 $a |- <" A B C D E "> = ( <" A B C D "> ++ <" E "> ) $.

  $( Define the length 6 word constructor.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  df-s6 $a |- <" A B C D E F "> = ( <" A B C D E "> ++ <" F "> ) $.

  $( Define the length 7 word constructor.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  df-s7 $a |- <" A B C D E F G "> = ( <" A B C D E F "> ++ <" G "> ) $.

  $( Define the length 8 word constructor.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  df-s8 $a |- <" A B C D E F G H "> = ( <" A B C D E F G "> ++ <" H "> ) $.

  ${
    cats1cld.1 $e |- T = ( S ++ <" X "> ) $.
    ${
      cats1cld.2 $e |- ( ph -> S e. Word A ) $.
      cats1cld.3 $e |- ( ph -> X e. A ) $.
      $( Closure of concatenation with a singleton word.  (Contributed by Mario
         Carneiro, 26-Feb-2016.) $)
      cats1cld $p |- ( ph -> T e. Word A ) $=
        ( cs1 cconcat co cword wcel s1cld ccatcl syl2anc syl5eqel ) ADCEIZJKZBL
        ZFACTMRTMSTMGAEBHNBCROPQ $.

      cats1co.4 $e |- ( ph -> F : A --> B ) $.
      cats1co.5 $e |- ( ph -> ( F o. S ) = U ) $.
      cats1co.6 $e |- V = ( U ++ <" ( F ` X ) "> ) $.
      $( Closure of concatenation with a singleton word.  (Contributed by Mario
         Carneiro, 26-Feb-2016.) $)
      cats1co $p |- ( ph -> ( F o. T ) = V ) $=
        ( cs1 cconcat co ccom wcel cfv cword wf wceq s1cld syl3anc s1co syl2anc
        ccatco oveq12d eqtrd coeq2i 3eqtr4g ) AGDIPZQRZSZFIGUAPZQRZGESHAUPGDSZG
        UNSZQRZURADBUBZTUNVBTBCGUCZUPVAUDKAIBLUEMBCDUNGUIUFAUSFUTUQQNAIBTVCUTUQ
        UDLMBCIGUGUHUJUKEUOGJULOUM $.
    $}

    ${
      cats1cli.2 $e |- S e. Word _V $.
      $( Closure of concatenation with a singleton word.  (Contributed by Mario
         Carneiro, 26-Feb-2016.) $)
      cats1cli $p |- T e. Word _V $=
        ( cs1 cconcat co cvv cword wcel s1cli ccatcl mp2an eqeltri ) BACFZGHZIJ
        ZDARKPRKQRKECLIAPMNO $.

      cats1fvn.3 $e |- ( # ` S ) = M $.
      $( The last symbol of a concatenation with a singleton word.
         (Contributed by Mario Carneiro, 26-Feb-2016.) $)
      cats1fvn $p |- ( X e. V -> ( T ` M ) = X ) $=
        ( wcel cfv cc0 cs1 chash caddc co cconcat oveq2i cn0 cvv cn cword lencl
        ax-mp eqeltrri nn0cni addid2i eqtr2i fveq12i cfzo wceq s1cli c1 eqeltri
        s1len 1nn lbfzo0 mpbir ccatval3 mp3an eqtri s1fv syl5eq ) EDICBJZKELZJZ
        EVCKAMJZNOZAVDPOZJZVECVGBVHFVGKCNOCVFCKNHQCCVFCRHASUAZIZVFRIGSAUBUCUDUE
        UFUGUHVKVDVJIKKVDMJZUIOIZVIVEUJGEUKVMVLTIVLULTEUNUOUMVLUPUQSAVDKURUSUTE
        DVAVB $.

      ${
        cats1fv.4 $e |- ( Y e. V -> ( S ` N ) = Y ) $.
        cats1fv.5 $e |- N e. NN0 $.
        cats1fv.6 $e |- N < M $.
        $( A symbol other than the last in a concatenation with a singleton
           word.  (Contributed by Mario Carneiro, 26-Feb-2016.) $)
        cats1fv $p |- ( Y e. V -> ( T ` N ) = Y ) $=
          ( wcel cfv co cvv cc0 clt cn0 cs1 cconcat cword chash cfzo wceq s1cli
          fveq1i cuz wbr nn0uz eleqtri lencl nn0z mp2b breqtrri elfzo2 mpbir3an
          cz ccatval1 mp3an eqtri syl5eq ) GENDBOZDAOZGVDDAFUAZUBPZOZVEDBVGHUHA
          QUCZNZVFVINDRAUDOZUEPNZVHVEUFIFUGVLDRUIOZNVKUSNZDVKSUJDTVMLUKULVJVKTN
          VNIQAUMVKUNUODCVKSMJUPDRVKUQURQAVFDUTVAVBKVC $.
      $}

      cats1len.4 $e |- ( M + 1 ) = N $.
      $( The length of concatenation with a singleton word.  (Contributed by
         Mario Carneiro, 26-Feb-2016.) $)
      cats1len $p |- ( # ` T ) = N $=
        ( chash cfv cs1 cconcat co fveq2i c1 caddc cvv wcel eqtri cword ccatlen
        wceq s1cli mp2an s1len oveq12i ) BJKAELZMNZJKZDBUIJFOUJCPQNZDUJAJKZUHJK
        ZQNZUKARUAZSUHUOSUJUNUCGEUDRAUHUBUEULCUMPQHEUFUGTITT $.
    $}

    ${
      cats1cat.2 $e |- A e. Word _V $.
      cats1cat.3 $e |- S e. Word _V $.
      cats1cat.4 $e |- C = ( B ++ <" X "> ) $.
      cats1cat.5 $e |- B = ( A ++ S ) $.
      $( Closure of concatenation with a singleton word.  (Contributed by Mario
         Carneiro, 26-Feb-2016.) $)
      cats1cat $p |- C = ( A ++ T ) $=
        ( cs1 cconcat co oveq1i cvv cword wcel wceq s1cli ccatass mp3an 3eqtr4i
        eqtri oveq2i ) BFLZMNZADUFMNZMNZCAEMNUGADMNZUFMNZUIBUJUFMKOAPQZRDULRUFU
        LRUKUISHIFTPADUFUAUBUDJEUHAMGUEUC $.
    $}
  $}

  ${
    cats2cat.b $e |- B e. Word _V $.
    cats2cat.d $e |- D e. Word _V $.
    cats2cat.a $e |- A = ( B ++ <" X "> ) $.
    cats2cat.c $e |- C = ( <" Y "> ++ D ) $.
    $( Closure of concatenation of concatenations with singleton words.
       (Contributed by AV, 1-Mar-2021.) $)
    cats2cat $p |- ( A ++ C ) = ( ( B ++ <" X Y "> ) ++ D ) $=
      ( cconcat co cs1 cs2 cvv wcel wceq s1cli ccatass mp3an cword ccatcl mp2an
      oveq12i df-s2 eqcomi oveq2i eqtri oveq1i 3eqtr2i ) ACKLBEMZKLZFMZDKLZKLZU
      LUMKLZDKLZBEFNZKLZDKLAULCUNKIJUDULOUAZPZUMUTPZDUTPUQUOQBUTPZUKUTPZVAGERZO
      BUKUBUCFRZHOULUMDSTUPUSDKUPBUKUMKLZKLZUSVCVDVBUPVHQGVEVFOBUKUMSTVGURBKURV
      GEFUEUFUGUHUIUJ $.
  $}

  ${
    s2eqd.1 $e |- ( ph -> A = N ) $.
    s2eqd.2 $e |- ( ph -> B = O ) $.
    $( Equality theorem for a doubleton word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s2eqd $p |- ( ph -> <" A B "> = <" N O "> ) $=
      ( cs1 cconcat co cs2 s1eqd oveq12d df-s2 3eqtr4g ) ABHZCHZIJDHZEHZIJBCKDE
      KAPRQSIABDFLACEGLMBCNDENO $.

    s3eqd.3 $e |- ( ph -> C = P ) $.
    $( Equality theorem for a length 3 word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s3eqd $p |- ( ph -> <" A B C "> = <" N O P "> ) $=
      ( cs2 cs1 cconcat co cs3 s2eqd s1eqd oveq12d df-s3 3eqtr4g ) ABCKZDLZMNFG
      KZELZMNBCDOFGEOAUAUCUBUDMABCFGHIPADEJQRBCDSFGEST $.

    s4eqd.4 $e |- ( ph -> D = Q ) $.
    $( Equality theorem for a length 4 word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s4eqd $p |- ( ph -> <" A B C D "> = <" N O P Q "> ) $=
      ( cs3 cs1 cconcat co cs4 s3eqd df-s4 s1eqd oveq12d 3eqtr4g ) ABCDNZEOZPQH
      IFNZGOZPQBCDERHIFGRAUDUFUEUGPABCDFHIJKLSAEGMUAUBBCDETHIFGTUC $.

    s5eqd.5 $e |- ( ph -> E = R ) $.
    $( Equality theorem for a length 5 word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s5eqd $p |- ( ph -> <" A B C D E "> = <" N O P Q R "> ) $=
      ( cs4 cs1 cconcat co cs5 s4eqd s1eqd oveq12d df-s5 3eqtr4g ) ABCDEQZIRZST
      JKFGQZHRZSTBCDEIUAJKFGHUAAUGUIUHUJSABCDEFGJKLMNOUBAIHPUCUDBCDEIUEJKFGHUEU
      F $.

    s6eqd.6 $e |- ( ph -> F = S ) $.
    $( Equality theorem for a length 6 word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s6eqd $p |- ( ph -> <" A B C D E F "> = <" N O P Q R S "> ) $=
      ( cconcat cs5 cs1 co cs6 s5eqd s1eqd oveq12d df-s6 3eqtr4g ) ABCDEJUAZKUB
      ZTUCLMFGHUAZIUBZTUCBCDEJKUDLMFGHIUDAUJULUKUMTABCDEFGHJLMNOPQRUEAKISUFUGBC
      DEJKUHLMFGHIUHUI $.

    s7eqd.6 $e |- ( ph -> G = T ) $.
    $( Equality theorem for a length 7 word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s7eqd $p |- ( ph -> <" A B C D E F G "> = <" N O P Q R S T "> ) $=
      ( cs6 cs1 cconcat co cs7 s6eqd s1eqd oveq12d df-s7 3eqtr4g ) ABCDEKLUCZMU
      DZUEUFNOFGHIUCZJUDZUEUFBCDEKLMUGNOFGHIJUGAUMUOUNUPUEABCDEFGHIKLNOPQRSTUAU
      HAMJUBUIUJBCDEKLMUKNOFGHIJUKUL $.

    s8eqd.6 $e |- ( ph -> H = U ) $.
    $( Equality theorem for a length 8 word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s8eqd $p |- ( ph -> <" A B C D E F G H "> = <" N O P Q R S T U "> ) $=
      ( cs7 cs1 cconcat co cs8 s7eqd s1eqd oveq12d df-s8 3eqtr4g ) ABCDELMNUFZO
      UGZUHUIPQFGHIJUFZKUGZUHUIBCDELMNOUJPQFGHIJKUJAUPURUQUSUHABCDEFGHIJLMNPQRS
      TUAUBUCUDUKAOKUEULUMBCDELMNOUNPQFGHIJKUNUO $.
  $}

  $( Equality theorem for a length 3 word for the second symbol.  (Contributed
     by AV, 4-Jan-2022.) $)
  s3eq2 $p |- ( B = D -> <" A B C "> = <" A D C "> ) $=
    ( wceq eqidd id s3eqd ) BDEZABCCADIAFIGICFH $.

  ${
    s2cld.1 $e |- ( ph -> A e. X ) $.
    s2cld.2 $e |- ( ph -> B e. X ) $.
    $( A doubleton word is a word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s2cld $p |- ( ph -> <" A B "> e. Word X ) $=
      ( cs1 cs2 df-s2 s1cld cats1cld ) ADBGBCHCBCIABDEJFK $.

    s3cld.3 $e |- ( ph -> C e. X ) $.
    $( A length 3 string is a word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s3cld $p |- ( ph -> <" A B C "> e. Word X ) $=
      ( cs2 cs3 df-s3 s2cld cats1cld ) AEBCIBCDJDBCDKABCEFGLHM $.

    s4cld.4 $e |- ( ph -> D e. X ) $.
    $( A length 4 string is a word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s4cld $p |- ( ph -> <" A B C D "> e. Word X ) $=
      ( cs3 cs4 df-s4 s3cld cats1cld ) AFBCDKBCDELEBCDEMABCDFGHINJO $.

    s5cld.5 $e |- ( ph -> E e. X ) $.
    $( A length 5 string is a word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s5cld $p |- ( ph -> <" A B C D E "> e. Word X ) $=
      ( cs4 cs5 df-s5 s4cld cats1cld ) AGBCDEMBCDEFNFBCDEFOABCDEGHIJKPLQ $.

    s6cld.6 $e |- ( ph -> F e. X ) $.
    $( A length 6 string is a word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s6cld $p |- ( ph -> <" A B C D E F "> e. Word X ) $=
      ( cs5 cs6 df-s6 s5cld cats1cld ) AHBCDEFOBCDEFGPGBCDEFGQABCDEFHIJKLMRNS
      $.

    s7cld.7 $e |- ( ph -> G e. X ) $.
    $( A length 7 string is a word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s7cld $p |- ( ph -> <" A B C D E F G "> e. Word X ) $=
      ( cs6 cs7 df-s7 s6cld cats1cld ) AIBCDEFGQBCDEFGHRHBCDEFGHSABCDEFGIJKLMNO
      TPUA $.

    s8cld.8 $e |- ( ph -> H e. X ) $.
    $( A length 7 string is a word.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s8cld $p |- ( ph -> <" A B C D E F G H "> e. Word X ) $=
      ( cs7 cs8 df-s8 s7cld cats1cld ) AJBCDEFGHSBCDEFGHITIBCDEFGHIUAABCDEFGHJK
      LMNOPQUBRUC $.
  $}

  $( A doubleton word is a word.  (Contributed by Stefan O'Rear, 23-Aug-2015.)
     (Revised by Mario Carneiro, 26-Feb-2016.) $)
  s2cl $p |- ( ( A e. X /\ B e. X ) -> <" A B "> e. Word X ) $=
    ( wcel wa simpl simpr s2cld ) ACDZBCDZEABCIJFIJGH $.

  $( A length 3 string is a word.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s3cl $p |- ( ( A e. X /\ B e. X /\ C e. X ) -> <" A B C "> e. Word X ) $=
    ( wcel w3a simp1 simp2 simp3 s3cld ) ADEZBDEZCDEZFABCDKLMGKLMHKLMIJ $.

  $( A doubleton word is a word.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s2cli $p |- <" A B "> e. Word _V $=
    ( cs1 cs2 df-s2 s1cli cats1cli ) ACABDBABEAFG $.

  $( A length 3 string is a word.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s3cli $p |- <" A B C "> e. Word _V $=
    ( cs2 cs3 df-s3 s2cli cats1cli ) ABDABCECABCFABGH $.

  $( A length 4 string is a word.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s4cli $p |- <" A B C D "> e. Word _V $=
    ( cs3 cs4 df-s4 s3cli cats1cli ) ABCEABCDFDABCDGABCHI $.

  $( A length 5 string is a word.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s5cli $p |- <" A B C D E "> e. Word _V $=
    ( cs4 cs5 df-s5 s4cli cats1cli ) ABCDFABCDEGEABCDEHABCDIJ $.

  $( A length 6 string is a word.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s6cli $p |- <" A B C D E F "> e. Word _V $=
    ( cs5 cs6 df-s6 s5cli cats1cli ) ABCDEGABCDEFHFABCDEFIABCDEJK $.

  $( A length 7 string is a word.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s7cli $p |- <" A B C D E F G "> e. Word _V $=
    ( cs6 cs7 df-s7 s6cli cats1cli ) ABCDEFHABCDEFGIGABCDEFGJABCDEFKL $.

  $( A length 8 string is a word.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s8cli $p |- <" A B C D E F G H "> e. Word _V $=
    ( cs7 cs8 df-s8 s7cli cats1cli ) ABCDEFGIABCDEFGHJHABCDEFGHKABCDEFGLM $.

  $( Extract the first symbol from a doubleton word.  (Contributed by Stefan
     O'Rear, 23-Aug-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
  s2fv0 $p |- ( A e. V -> ( <" A B "> ` 0 ) = A ) $=
    ( cs1 cs2 c1 cc0 df-s2 s1cli s1len s1fv 0nn0 0lt1 cats1fv ) ADABEFGCBAABHAI
    AJACKLMN $.

  $( Extract the second symbol from a doubleton word.  (Contributed by Stefan
     O'Rear, 23-Aug-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
  s2fv1 $p |- ( B e. V -> ( <" A B "> ` 1 ) = B ) $=
    ( cs1 cs2 c1 df-s2 s1cli s1len cats1fvn ) ADABEFCBABGAHAIJ $.

  $( The length of a doubleton word.  (Contributed by Stefan O'Rear,
     23-Aug-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
  s2len $p |- ( # ` <" A B "> ) = 2 $=
    ( cs1 cs2 c1 c2 df-s2 s1cli s1len 1p1e2 cats1len ) ACABDEFBABGAHAIJK $.

  $( The domain of a doubleton word is an unordered pair.  (Contributed by AV,
     9-Jan-2020.) $)
  s2dm $p |- dom <" A B "> = { 0 , 1 } $=
    ( cc0 c1 cpr cvv cs2 wf chash cfv cfzo co cword wcel s2cli wrdf ax-mp s2len
    c2 wceq oveq2 fzo0to2pr syl6eq eqcomi feq2i mpbir fdmi ) CDEZFABGZUHFUIHCUI
    IJZKLZFUIHZUIFMNULABOFUIPQUHUKFUIUKUHUJSTZUKUHTABRUMUKCSKLUHUJSCKUAUBUCQUDU
    EUFUG $.

  $( Extract the first symbol from a length 3 string.  (Contributed by Mario
     Carneiro, 13-Jan-2017.) $)
  s3fv0 $p |- ( A e. V -> ( <" A B C "> ` 0 ) = A ) $=
    ( cs2 cs3 c2 cc0 df-s3 s2cli s2len s2fv0 0nn0 2pos cats1fv ) ABEABCFGHDCAAB
    CIABJABKABDLMNO $.

  $( Extract the second symbol from a length 3 string.  (Contributed by Mario
     Carneiro, 13-Jan-2017.) $)
  s3fv1 $p |- ( B e. V -> ( <" A B C "> ` 1 ) = B ) $=
    ( cs2 cs3 c2 c1 df-s3 s2cli s2len s2fv1 1nn0 1lt2 cats1fv ) ABEABCFGHDCBABC
    IABJABKABDLMNO $.

  $( Extract the third symbol from a length 3 string.  (Contributed by Mario
     Carneiro, 13-Jan-2017.) $)
  s3fv2 $p |- ( C e. V -> ( <" A B C "> ` 2 ) = C ) $=
    ( cs2 cs3 c2 df-s3 s2cli s2len cats1fvn ) ABEABCFGDCABCHABIABJK $.

  $( The length of a length 3 string.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s3len $p |- ( # ` <" A B C "> ) = 3 $=
    ( cs2 cs3 c2 c3 df-s3 s2cli s2len 2p1e3 cats1len ) ABDABCEFGCABCHABIABJKL
    $.

  $( Extract the first symbol from a length 4 string.  (Contributed by Thierry
     Arnoux, 8-Oct-2020.) $)
  s4fv0 $p |- ( A e. V -> ( <" A B C D "> ` 0 ) = A ) $=
    ( cs3 cs4 c3 cc0 df-s4 s3cli s3len s3fv0 0nn0 3pos cats1fv ) ABCFABCDGHIEDA
    ABCDJABCKABCLABCEMNOP $.

  $( Extract the second symbol from a length 4 string.  (Contributed by Thierry
     Arnoux, 8-Oct-2020.) $)
  s4fv1 $p |- ( B e. V -> ( <" A B C D "> ` 1 ) = B ) $=
    ( cs3 cs4 c3 c1 df-s4 s3cli s3len s3fv1 1nn0 1lt3 cats1fv ) ABCFABCDGHIEDBA
    BCDJABCKABCLABCEMNOP $.

  $( Extract the third symbol from a length 4 string.  (Contributed by Thierry
     Arnoux, 8-Oct-2020.) $)
  s4fv2 $p |- ( C e. V -> ( <" A B C D "> ` 2 ) = C ) $=
    ( cs3 cs4 c3 c2 df-s4 s3cli s3len s3fv2 2nn0 2lt3 cats1fv ) ABCFABCDGHIEDCA
    BCDJABCKABCLABCEMNOP $.

  $( Extract the fourth symbol from a length 4 string.  (Contributed by Thierry
     Arnoux, 8-Oct-2020.) $)
  s4fv3 $p |- ( D e. V -> ( <" A B C D "> ` 3 ) = D ) $=
    ( cs3 cs4 c3 df-s4 s3cli s3len cats1fvn ) ABCFABCDGHEDABCDIABCJABCKL $.

  $( The length of a length 4 string.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s4len $p |- ( # ` <" A B C D "> ) = 4 $=
    ( cs3 cs4 c3 c4 df-s4 s3cli s3len 3p1e4 cats1len ) ABCEABCDFGHDABCDIABCJABC
    KLM $.

  $( The length of a length 5 string.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s5len $p |- ( # ` <" A B C D E "> ) = 5 $=
    ( cs4 cs5 c4 c5 df-s5 s4cli s4len 4p1e5 cats1len ) ABCDFABCDEGHIEABCDEJABCD
    KABCDLMN $.

  $( The length of a length 6 string.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s6len $p |- ( # ` <" A B C D E F "> ) = 6 $=
    ( cs5 cs6 c5 c6 df-s6 s5cli s5len 5p1e6 cats1len ) ABCDEGABCDEFHIJFABCDEFKA
    BCDELABCDEMNO $.

  $( The length of a length 7 string.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s7len $p |- ( # ` <" A B C D E F G "> ) = 7 $=
    ( cs6 cs7 c6 c7 df-s7 s6cli s6len 6p1e7 cats1len ) ABCDEFHABCDEFGIJKGABCDEF
    GLABCDEFMABCDEFNOP $.

  $( The length of a length 8 string.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s8len $p |- ( # ` <" A B C D E F G H "> ) = 8 $=
    ( cs7 cs8 c7 c8 df-s8 s7cli s7len 7p1e8 cats1len ) ABCDEFGIABCDEFGHJKLHABCD
    EFGHMABCDEFGNABCDEFGOPQ $.

  $( The last symbol of a doubleton word is its second symbol.  (Contributed by
     AV, 8-Feb-2021.) $)
  lsws2 $p |- ( B e. V -> ( lastS ` <" A B "> ) = B ) $=
    ( wcel cs2 clsw cfv chash c1 cmin co cvv cword wceq s2cli lsw mp1i c2 s2len
    oveq1i 2m1e1 eqtri fveq2i a1i s2fv1 3eqtrd ) BCDZABEZFGZUHHGZIJKZUHGZIUHGZB
    UHLMZDUIULNUGABOUHUNPQULUMNUGUKIUHUKRIJKIUJRIJABSTUAUBUCUDABCUEUF $.

  $( The last symbol of a 3 letter word is its third symbol.  (Contributed by
     AV, 8-Feb-2021.) $)
  lsws3 $p |- ( C e. V -> ( lastS ` <" A B C "> ) = C ) $=
    ( wcel cs3 clsw cfv chash c1 cmin co c2 cvv cword wceq s3cli lsw mp1i c3
    s3len oveq1i 3m1e2 eqtri fveq2i a1i s3fv2 3eqtrd ) CDEZABCFZGHZUJIHZJKLZUJH
    ZMUJHZCUJNOZEUKUNPUIABCQUJUPRSUNUOPUIUMMUJUMTJKLMULTJKABCUAUBUCUDUEUFABCDUG
    UH $.

  $( The last symbol of a 4 letter word is its fourth symbol.  (Contributed by
     AV, 8-Feb-2021.) $)
  lsws4 $p |- ( D e. V -> ( lastS ` <" A B C D "> ) = D ) $=
    ( wcel cs4 clsw cfv chash c1 cmin co c3 cvv cword wceq s4cli lsw c4 oveq1i
    mp1i s4len 4m1e3 eqtri fveq2i a1i s4fv3 3eqtrd ) DEFZABCDGZHIZUKJIZKLMZUKIZ
    NUKIZDUKOPZFULUOQUJABCDRUKUQSUBUOUPQUJUNNUKUNTKLMNUMTKLABCDUCUAUDUEUFUGABCD
    EUHUI $.

  $( A length 2 word is an unordered pair of ordered pairs.  (Contributed by
     Alexander van der Vekens, 14-Aug-2017.) $)
  s2prop $p |- ( ( A e. S /\ B e. S )
                -> <" A B "> = { <. 0 , A >. , <. 1 , B >. } ) $=
    ( wcel wa cs2 cs1 cconcat co cc0 cop cpr df-s2 chash cfv csn cun cword wceq
    c1 s1cl cats1un sylan s1val adantr uneq1d df-pr s1len opeq1d preq2d syl5eqr
    a1i 3eqtrd syl5eq ) ACDZBCDZEZABFAGZBGHIZJAKZTBKZLZABMUQUSURURNOZBKZPZQZUTP
    ZVEQZVBUOURCRDUPUSVFSACUAURBCUBUCUQURVGVEUOURVGSUPACUDUEUFUQVHUTVDLVBUTVDUG
    UQVDVAUTUQVCTBVCTSUQAUHULUIUJUKUMUN $.

  $( Alternate version of ~ s2dm , having a shorter proof, but requiring that
     ` A ` and ` B ` are sets.  (Contributed by AV, 9-Jan-2020.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  s2dmALT $p |- ( ( A e. S /\ B e. S ) -> dom <" A B "> = { 0 , 1 } ) $=
    ( wcel wa cs2 cdm cc0 cop c1 cpr s2prop dmeqd dmpropg eqtrd ) ACDBCDEZABFZG
    HAIJBIKZGHJKPQRABCLMHAJBCCNO $.

  $( A length 3 word is an unordered triple of ordered pairs.  (Contributed by
     AV, 23-Jan-2021.) $)
  s3tpop $p |- ( ( A e. S /\ B e. S /\ C e. S )
              -> <" A B C "> = { <. 0 , A >. , <. 1 , B >. , <. 2 , C >. } ) $=
    ( wcel w3a cs3 cs2 cs1 cconcat co cc0 cop c1 c2 ctp csn cun wceq a1i stoic3
    df-s3 chash cfv cpr cword cats1un s2prop 3adant3 s2len opeq1i sneqi uneq12d
    s2cl df-tp eqcomi 3eqtrd syl5eq ) ADEZBDEZCDEZFZABCGABHZCIJKZLAMZNBMZOCMZPZ
    ABCUBVBVDVCVCUCUDZCMZQZRZVEVFUEZVGQZRZVHUSUTVCDUFEVAVDVLSABDUNVCCDUGUAVBVCV
    MVKVNUSUTVCVMSVAABDUHUIVKVNSVBVJVGVIOCABUJUKULTUMVOVHSVBVHVOVEVFVGUOUPTUQUR
    $.

  $( A length 4 word is a union of two unordered pairs of ordered pairs.
     (Contributed by Alexander van der Vekens, 14-Aug-2017.) $)
  s4prop $p |- ( ( ( A e. S /\ B e. S ) /\ ( C e. S /\ D e. S ) )
                -> <" A B C D "> = ( { <. 0 , A >. , <. 1 , B >. }
                                  u. { <. 2 , C >. , <. 3 , D >. } ) ) $=
    ( wcel wa cs1 cconcat co cop cpr c2 c3 cun chash cfv wceq adantr a1i cs4 c1
    cs3 cc0 df-s4 cs2 cword simpl simpr adantl s3cld cats1un syl2anc df-s3 s2cl
    csn syl5eq s2prop uneq1d eqtrd unass df-pr s2len opeq1d s3len uneq2d 3eqtrd
    preq12d syl5eqr ) AEFZBEFZGZCEFZDEFZGZGZABCDUAABCUCZDHIJZUDAKUBBKLZMCKZNDKZ
    LZOZABCDUEVPVRVSABUFZPQZCKZUPZOZVQPQZDKZUPZOZVSWGWKOZOZWCVPVRVQWKOZWLVPVQEU
    GZFVNVRWORVPABCEVLVJVOVJVKUHSVLVKVOVJVKUISVOVMVLVMVNUHUJZUKVOVNVLVMVNUIUJVQ
    DEULUMVPVQWHWKVPVQWDWGOZWHVPVQWDCHIJZWRABCUNVPWDWPFZVMWSWRRVLWTVOABEUOSWQWD
    CEULUMUQVPWDVSWGVLWDVSRVOABEURSUSUTUSUTWLWNRVPVSWGWKVATVPWMWBVSVPWMWFWJLWBW
    FWJVBVPWFVTWJWAVPWEMCWEMRVPABVCTVDVPWINDWINRVPABCVETVDVHVIVFVGUQ $.

  $( A length 3 word is a function with a triple as domain.  (Contributed by
     Alexander van der Vekens, 5-Dec-2017.)  (Revised by AV, 23-Jan-2021.) $)
  s3fn $p |- ( ( A e. V /\ B e. V /\ C e. V )
               -> <" A B C "> Fn { 0 , 1 , 2 } ) $=
    ( wcel w3a cs3 cc0 chash cfv cfzo co wfn c1 c2 ctp cword s3cl wrdfn c3 syl
    s3len oveq2i fzo0to3tp eqtr2i fneq2i sylibr ) ADEBDECDEFZABCGZHUIIJZKLZMZUI
    HNOPZMUHUIDQEULABCDRDUISUAUMUKUIUKHTKLUMUJTHKABCUBUCUDUEUFUG $.

  $( The converse of a singleton word is a function.  (Contributed by AV,
     22-Jan-2021.) $)
  funcnvs1 $p |- Fun `' <" A "> $=
    ( cs1 ccnv wfun cc0 cid cfv cop csn funcnvsn df-s1 cnveqi funeqi mpbir ) AB
    ZCZDEAFGZHIZCZDEQJPSORAKLMN $.

  $( The converse of a length 2 word is a function if its symbols are different
     sets.  (Contributed by AV, 23-Jan-2021.) $)
  funcnvs2 $p |- ( ( A e. V /\ B e. V /\ A =/= B ) -> Fun `' <" A B "> ) $=
    ( wcel wne w3a cs2 ccnv wfun cc0 cop c1 cpr cvv 1ex simp3 funcnvpr mp3an12i
    c0ex wceq s2prop 3adant3 cnveqd funeqd mpbird ) ACDZBCDZABEZFZABGZHZIJAKLBK
    MZHZIZJNDLNDUIUHUNSOUFUGUHPJALBNNQRUIUKUMUIUJULUFUGUJULTUHABCUAUBUCUDUE $.

  $( The converse of a length 3 word is a function if its symbols are different
     sets.  (Contributed by Alexander van der Vekens, 31-Jan-2018.)  (Revised
     by AV, 23-Jan-2021.) $)
  funcnvs3 $p |- ( ( ( A e. V /\ B e. V /\ C e. V )
                     /\ ( A =/= B /\ A =/= C /\ B =/= C ) )
                   -> Fun `' <" A B C "> ) $=
    ( wcel w3a wne wa cs3 ccnv wfun cc0 cop c1 c2 ctp cvv c0ex 1ex 2ex funcnvtp
    3pm3.2i a1i sylan wceq s3tpop adantr cnveqd funeqd mpbird ) ADEBDECDEFZABGA
    CGBCGFZHZABCIZJZKLAMNBMOCMPZJZKZUKLQEZNQEZOQEZFZULURVBUKUSUTVARSTUBUCLANBQO
    CQQUAUDUMUOUQUMUNUPUKUNUPUEULABCDUFUGUHUIUJ $.

  $( The converse of a length 4 word is a function if its symbols are different
     sets.  (Contributed by AV, 10-Feb-2021.) $)
  funcnvs4 $p |- ( ( ( ( A e. V /\ B e. V ) /\ ( C e. V /\ D e. V ) )
                     /\ ( ( A =/= B /\ A =/= C /\ A =/= D )
                          /\ ( B =/= C /\ B =/= D ) /\ C =/= D ) )
                   -> Fun `' <" A B C D "> ) $=
    ( wcel wa wne w3a cs4 ccnv wfun cc0 cop c1 cpr c2 c3 cvv pm3.2i cun 1ex 2ex
    c0ex 3ex a1i funcnvqp sylan wceq s4prop adantr cnveqd funeqd mpbird ) AEFBE
    FGCEFDEFGGZABHACHADHIBCHBDHGCDHIZGZABCDJZKZLMANOBNPQCNRDNPUAZKZLZUOMSFZOSFZ
    GZQSFZRSFZGZGZUPVBVIUOVEVHVCVDUDUBTVFVGUCUETTUFMAOBSSQCRDSSUGUHUQUSVAUQURUT
    UOURUTUIUPABCDEUJUKULUMUN $.

  $( A length 2 word with mutually different symbols is a one-to-one function
     onto the set of the symbols.  (Contributed by Alexander van der Vekens,
     14-Aug-2017.) $)
  s2f1o $p |- ( ( A e. S /\ B e. S /\ A =/= B ) -> ( E = <" A B ">
                -> E : { 0 , 1 } -1-1-onto-> { A , B } ) ) $=
    ( wcel wne w3a cs2 wceq cc0 c1 cpr wf1o wa cop cz simpl1 0z jctil eqidd jca
    simpl2 1z simpl3 0ne1 f1oprg sylc eqcom s2prop 3adant3 eqeq1d syl5bb biimpa
    f1oeq123d mpbid ex ) ACEZBCEZABFZGZDABHZIZJKLZABLZDMZUTVBNZVCVDJAOKBOLZMZVE
    VFJPEZUQNZKPEZURNZNJKFZUSNVHVFVJVLVFUQVIUQURUSVBQRSVFURVKUQURUSVBUBUCSUAVFU
    SVMUQURUSVBUDUESJAKBPCPCUFUGVFVCVCVDVDVGDUTVBVGDIZVBVADIUTVNDVAUHUTVAVGDUQU
    RVAVGIUSABCUIUJUKULUMVFVCTVFVDTUNUOUP $.

  $( A union of unordered pairs of ordered pairs with different elements is a
     one-to-one onto function.  (Contributed by Alexander van der Vekens,
     14-Aug-2017.) $)
  f1oun2prg $p |- ( ( ( A e. V /\ B e. W ) /\ ( C e. X /\ D e. Y ) )
                    -> ( ( ( A =/= B /\ A =/= C /\ A =/= D )
                        /\ ( B =/= C /\ B =/= D /\ C =/= D ) )
    -> ( { <. 0 , A >. , <. 1 , B >. } u. { <. 2 , C >. , <. 3 , D >. } ) :
       ( { 0 , 1 } u. { 2 , 3 } ) -1-1-onto-> ( { A , B } u. { C , D } ) ) ) $=
    ( wcel wa wne cc0 c1 c2 c3 cin c0 wceq csn disjsn2 w3a cpr cun cop cz simpl
    wf1o 0z jctil ad2antrr simpr 1z jca 3ad2ant1 0ne1 adantr adantl f1oprg sylc
    id cn 2nn 3nn 3ad2ant3 2re 2lt3 ltneii 3ad2ant2 anim12i df-pr ineq1i eqeq1i
    undisj1 bitr4i sylibr eqcomi ineq2i bitri sylib 0ne2 ax-mp 1ne2 pm3.2i mpbi
    undisj2 eqtr3i 3ne0 necomi 1re 1lt3 f1oun syl21anc ex ) AEIZBFIZJZCGIZDHIZJ
    ZJZABKZACKZADKZUAZBCKZBDKZCDKZUAZJZLMUBZNOUBZUCABUBZCDUBZUCLAUDMBUDUBZNCUDO
    DUDUBZUCUGZWTXIJZXJXLXNUGZXKXMXOUGZXJXKPZQRZXLXMPZQRZJXPXQLUEIZWNJZMUEIZWOJ
    ZJLMKZXAJZXRXQYEYGWPYEWSXIWPWNYDWNWOUFUHUIUJWPYGWSXIWPWOYFWNWOUKULUIUJUMXIY
    IWTXDYIXHXDXAYHXAXBXAXCXAUTUNUOUIUPUQLAMBUEEUEFURUSXQNVAIZWQJZOVAIZWRJZJZNO
    KZXGJZXSWTYNXIWTYKYMWSYKWPWSWQYJWQWRUFVBUIUQWSYMWPWSWRYLWQWRUKVCUIUQUMUPXIY
    PWTXHYPXDXHXGYOXGXEXGXFXGUTVDNOVEVFVGUIUQUQNCODVAGVAHURUSXQYCYAXQXLCSZPZQRZ
    XLDSZPZQRZJZYCXQYSUUBXQASZYQPQRZBSZYQPQRZJZYSXIUUHWTXDUUEXHUUGXBXAUUEXCACTV
    HXEXFUUGXGBCTUNVIUQYSUUDUUFUCZYQPZQRUUHYRUUJQXLUUIYQABVJZVKVLUUDUUFYQVMVNVO
    XQUUDYTPQRZUUFYTPQRZJZUUBXIUUNWTXDUULXHUUMXCXAUULXBADTVDXFXEUUMXGBDTVHVIUQU
    UBUUIYTPZQRUUNUUAUUOQXLUUIYTUUKVKVLUUDUUFYTVMVNVOUMUUCXLYQYTUCZPZQRYCXLYQYT
    WEUUQYBQUUPXMXLXMUUPCDVJVPVQVLVRVSXJNSZPZQRZXJOSZPZQRZJZYAUUTUVCLSZMSZUCZUU
    RPZUUSQUVGXJUURXJUVGLMVJVPZVKUVEUURPQRZUVFUURPQRZJUVHQRUVJUVKLNKUVJVTLNTWAM
    NKUVKWBMNTWAWCUVEUVFUURVMWDWFUVGUVAPZUVBQUVGXJUVAUVIVKUVEUVAPQRZUVFUVAPQRZJ
    UVLQRUVMUVNLOKUVMOLWGWHLOTWAMOKUVNMOWIWJVGMOTWAWCUVEUVFUVAVMWDWFWCUVDXJUURU
    VAUCZPZQRYAXJUURUVAWEUVPXTQUVOXKXJXKUVONOVJVPVQVLVRWDUIXJXLXKXMXNXOWKWLWM
    $.

  ${
    $d x y E $.
    $( A length 4 word with mutually different symbols is a one-to-one function
       onto the set of the symbols.  (Contributed by Alexander van der Vekens,
       14-Aug-2017.) $)
    s4f1o $p |- ( ( ( A e. S /\ B e. S ) /\ ( C e. S /\ D e. S ) )
                    -> ( ( ( A =/= B /\ A =/= C /\ A =/= D )
                        /\ ( B =/= C /\ B =/= D /\ C =/= D ) )
             -> ( E = <" A B C D ">
                  -> E : dom E -1-1-onto-> ( { A , B } u. { C , D } ) ) ) ) $=
      ( vx vy wcel wa wne w3a wceq cpr cun wf1o cc0 c1 c2 cop cs4 cdm f1oun2prg
      c3 imp adantr s4prop eqeq2d biimpa eqcomd eqidd f1oeq123d mpbid wf1 wf cv
      crn wbr wmo wal dff1o5 bicomi anbi1i sylbb2 wss ffdm simpld anim1i sylibr
      dff12 syl exp31 ) AEIBEIJCEIDEIJJZABKACKADKLBCKBDKCDKLJZFABCDUAZMZFUBZABN
      CDNOZFPZVMVNJZVPJZQRNSUDNOZVRFPZVSWAWBVRQATRBTNSCTUDDTNOZPZWCVTWEVPVMVNWE
      ABCDEEEEUCUEUFWAWBWBVRVRWDFWAFWDVTVPFWDMVTVOWDFVMVOWDMVNABCDEUGUFUHUIUJWA
      WBUKWAVRUKULUMWCVQVRFUNZFUQVRMZJZVSWCVQVRFUOZGUPHUPFURGUSHUTZJZWGJZWHWCWB
      VRFUOZWJJZWGJZWLWCWBVRFUNZWGJWOWBVRFVAWNWPWGWPWNGHWBVRFVJVBVCVDWNWKWGWMWI
      WJWMWIVQWBVEWBVRFVFVGVHVHVKWFWKWGGHVQVRFVJVCVIVQVRFVAVIVKVL $.
  $}

  $( The domain of a length 4 word is the union of two (disjunct) pairs.
     (Contributed by Alexander van der Vekens, 15-Aug-2017.) $)
  s4dom $p |- ( ( ( A e. S /\ B e. S ) /\ ( C e. S /\ D e. S ) )
                -> ( E = <" A B C D ">
                     -> dom E = ( { 0 , 1 } u. { 2 , 3 } ) ) ) $=
    ( wcel wa cs4 wceq cdm cc0 c1 cpr c2 c3 cun dmeq cop dmpropg s4prop uneq12d
    dmeqd dmun adantr adantl syl5eq eqtrd sylan9eqr ex ) AEGBEGHZCEGDEGHZHZFABC
    DIZJZFKZLMNZOPNZQZJUOUMUPUNKZUSFUNRUMUTLASMBSNZOCSPDSNZQZKZUSUMUNVCABCDEUAU
    CUMVDVAKZVBKZQUSVAVBUDUMVEUQVFURUKVEUQJULLAMBEETUEULVFURJUKOCPDEETUFUBUGUHU
    IUJ $.

  ${
    s2co.1 $e |- ( ph -> F : X --> Y ) $.
    s2co.2 $e |- ( ph -> A e. X ) $.
    s2co.3 $e |- ( ph -> B e. X ) $.
    $( Mapping a doubleton word by a function.  (Contributed by Mario Carneiro,
       27-Feb-2016.) $)
    s2co $p |- ( ph -> ( F o. <" A B "> ) = <" ( F ` A ) ( F ` B ) "> ) $=
      ( cs1 cs2 cfv df-s2 s1cld wcel wf ccom wceq s1co syl2anc cats1co ) AEFBJZ
      BCKBDLZJZDUCCDLZKCBCMABEHNIGABEOEFDPDUBQUDRHGEFBDSTUCUEMUA $.

    s3co.4 $e |- ( ph -> C e. X ) $.
    $( Mapping a length 3 string by a function.  (Contributed by Mario
       Carneiro, 27-Feb-2016.) $)
    s3co $p |- ( ph -> ( F o. <" A B C "> ) =
      <" ( F ` A ) ( F ` B ) ( F ` C ) "> ) $=
      ( cs2 cs3 cfv df-s3 s2cld s2co cats1co ) AFGBCLBCDMBENZCENZLESTDENZMDBCDO
      ABCFIJPKHABCEFGHIJQSTUAOR $.
  $}

  $( Concatenation of fixed length strings.  (This special case of ~ ccatlid is
     provided to complete the pattern ~ s0s1 , ~ df-s2 , ~ df-s3 , ...)
     (Contributed by Mario Carneiro, 28-Feb-2016.) $)
  s0s1 $p |- <" A "> = ( (/) ++ <" A "> ) $=
    ( c0 cs1 cconcat co cvv cword wcel wceq s1cli ccatlid ax-mp eqcomi ) BACZDE
    ZNNFGHONIAJFNKLM $.

  $( Concatenation of fixed length strings.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s1s2 $p |- <" A B C "> = ( <" A "> ++ <" B C "> ) $=
    ( cs1 cs2 cs3 df-s2 s1cli df-s3 cats1cat ) ADABEABCFBDBCECBCGAHBHABCIABGJ
    $.

  $( Concatenation of fixed length strings.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s1s3 $p |- <" A B C D "> = ( <" A "> ++ <" B C D "> ) $=
    ( cs1 cs3 cs4 cs2 df-s3 s1cli s2cli df-s4 s1s2 cats1cat ) AEABCFABCDGBCHBCD
    FDBCDIAJBCKABCDLABCMN $.

  $( Concatenation of fixed length strings.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s1s4 $p |- <" A B C D E "> = ( <" A "> ++ <" B C D E "> ) $=
    ( cs1 cs4 cs5 cs3 df-s4 s1cli s3cli df-s5 s1s3 cats1cat ) AFABCDGABCDEHBCDI
    BCDEGEBCDEJAKBCDLABCDEMABCDNO $.

  $( Concatenation of fixed length strings.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s1s5 $p |- <" A B C D E F "> = ( <" A "> ++ <" B C D E F "> ) $=
    ( cs1 cs5 cs6 cs4 df-s5 s1cli s4cli df-s6 s1s4 cats1cat ) AGABCDEHABCDEFIBC
    DEJBCDEFHFBCDEFKALBCDEMABCDEFNABCDEOP $.

  $( Concatenation of fixed length strings.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s1s6 $p |- <" A B C D E F G "> = ( <" A "> ++ <" B C D E F G "> ) $=
    ( cs1 cs6 cs7 cs5 df-s6 s1cli s5cli df-s7 s1s5 cats1cat ) AHABCDEFIABCDEFGJ
    BCDEFKBCDEFGIGBCDEFGLAMBCDEFNABCDEFGOABCDEFPQ $.

  $( Concatenation of fixed length strings.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s1s7 $p |- <" A B C D E F G H "> = ( <" A "> ++ <" B C D E F G H "> ) $=
    ( cs1 cs7 cs8 cs6 df-s7 s1cli s6cli df-s8 s1s6 cats1cat ) AIABCDEFGJABCDEFG
    HKBCDEFGLBCDEFGHJHBCDEFGHMANBCDEFGOABCDEFGHPABCDEFGQR $.

  $( Concatenation of fixed length strings.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s2s2 $p |- <" A B C D "> = ( <" A B "> ++ <" C D "> ) $=
    ( cs2 cs3 cs4 cs1 df-s2 s2cli s1cli df-s4 df-s3 cats1cat ) ABEABCFABCDGCHCD
    EDCDIABJCKABCDLABCMN $.

  $( Concatenation of fixed length strings.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s4s2 $p |- <" A B C D E F "> = ( <" A B C D "> ++ <" E F "> ) $=
    ( cs4 cs5 cs6 cs1 cs2 df-s2 s4cli s1cli df-s6 df-s5 cats1cat ) ABCDGABCDEHA
    BCDEFIEJEFKFEFLABCDMENABCDEFOABCDEPQ $.

  $( Concatenation of fixed length strings.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s4s3 $p |- <" A B C D E F G "> = ( <" A B C D "> ++ <" E F G "> ) $=
    ( cs4 cs6 cs7 cs2 cs3 df-s3 s4cli s2cli df-s7 s4s2 cats1cat ) ABCDHABCDEFIA
    BCDEFGJEFKEFGLGEFGMABCDNEFOABCDEFGPABCDEFQR $.

  $( Concatenation of fixed length strings.  (Contributed by Mario Carneiro,
     26-Feb-2016.) $)
  s4s4 $p |- <" A B C D E F G H "> = ( <" A B C D "> ++ <" E F G H "> ) $=
    ( cs4 cs7 cs8 cs3 df-s4 s4cli s3cli df-s8 s4s3 cats1cat ) ABCDIABCDEFGJABCD
    EFGHKEFGLEFGHIHEFGHMABCDNEFGOABCDEFGHPABCDEFGQR $.

  $( Concatenation of fixed length strings.  (Contributed by AV,
     1-Mar-2021.) $)
  s3s4 $p |- <" A B C D E F G "> = ( <" A B C "> ++ <" D E F G "> ) $=
    ( cs2 cconcat co cs3 cs4 cs7 s2s2 eqcomi oveq1i s2cli s3cli df-s3 s1s3 s4s3
    cats2cat 3eqtr4ri ) ABHZCDHIJZEFGKZIJABCDLZUFIJABCKZDEFGLZIJABCDEFGMUEUGUFI
    UGUEABCDNOPUHUDUIUFCDABQEFGRABCSDEFGTUBABCDEFGUAUC $.

  $( Concatenation of fixed length strings.  (Contributed by AV,
     1-Mar-2021.) $)
  s2s5 $p |- <" A B C D E F G "> = ( <" A B "> ++ <" C D E F G "> ) $=
    ( cs1 cs2 cconcat co cs4 cs3 cs5 cs7 s1s2 eqcomi oveq1i s1cli s4cli df-s2
    s1s4 cats2cat s3s4 3eqtr4ri ) AHZBCIJKZDEFGLZJKABCMZUHJKABIZCDEFGNZJKABCDEF
    GOUGUIUHJUIUGABCPQRUJUFUKUHBCASDEFGTABUACDEFGUBUCABCDEFGUDUE $.

  $( Concatenation of fixed length strings.  (Contributed by AV,
     1-Mar-2021.) $)
  s5s2 $p |- <" A B C D E F G "> = ( <" A B C D E "> ++ <" F G "> ) $=
    ( cs4 cs2 cconcat co cs1 cs6 cs5 cs7 s4s2 eqcomi oveq1i s4cli s1cli df-s5
    df-s2 cats2cat df-s7 3eqtr4ri ) ABCDHZEFIJKZGLZJKABCDEFMZUHJKABCDENZFGIZJKA
    BCDEFGOUGUIUHJUIUGABCDEFPQRUJUFUKUHEFABCDSGTABCDEUAFGUBUCABCDEFGUDUE $.

  $( Two length 2 words are equal iff the corresponding singleton words
     consisting of their symbols are equal.  (Contributed by Alexander van der
     Vekens, 24-Sep-2018.) $)
  s2eq2s1eq $p |- ( ( ( A e. V /\ B e. V ) /\ ( C e. V /\ D e. V ) )
                 -> ( <" A B "> = <" C D ">
                      <-> ( <" A "> = <" C "> /\ <" B "> = <" D "> ) ) ) $=
    ( wcel wa cs2 wceq cs1 cconcat co df-s2 a1i eqeq12d chash cfv anim12i s1len
    s1cl cword wb adantr adantl c1 eqtr4i ccatopth syl3anc bitrd ) AEFZBEFZGZCE
    FZDEFZGZGZABHZCDHZIAJZBJZKLZCJZDJZKLZIZUSVBIUTVCIGZUPUQVAURVDUQVAIUPABMNURV
    DIUPCDMNOUPUSEUAZFZUTVGFZGZVBVGFZVCVGFZGZUSPQZVBPQZIZVEVFUBULVJUOUJVHUKVIAE
    TBETRUCUOVMULUMVKUNVLCETDETRUDVPUPVNUEVOASCSUFNUSUTVBVCEUGUHUI $.

  $( Two length 2 words are equal iff the corresponding symbols are equal.
     (Contributed by AV, 20-Oct-2018.) $)
  s2eq2seq $p |- ( ( ( A e. V /\ B e. V ) /\ ( C e. V /\ D e. V ) )
                   -> ( <" A B "> = <" C D "> <-> ( A = C /\ B = D ) ) ) $=
    ( wcel wa cs2 wceq cs1 s2eq2s1eq wb s111 ad2ant2r ad2ant2l anbi12d bitrd )
    AEFZBEFZGCEFZDEFZGGZABHCDHIAJCJIZBJDJIZGACIZBDIZGABCDEKUBUCUEUDUFRTUCUELSUA
    EACMNSUAUDUFLRTEBDMOPQ $.

  $( Two length 3 words are equal iff the corresponding length 2 words and
     singleton words consisting of their symbols are equal.  (Contributed by
     AV, 4-Jan-2022.) $)
  s3eqs2s1eq $p |- ( ( ( A e. V /\ B e. V /\ C e. V )
                       /\ ( D e. V /\ E e. V /\ F e. V ) )
                 -> ( <" A B C "> = <" D E F ">
                      <-> ( <" A B "> = <" D E "> /\ <" C "> = <" F "> ) ) ) $=
    ( wcel w3a wa cs3 wceq cs2 cs1 cconcat co df-s3 a1i chash cfv eqeq12d cword
    wb s2cl anim12i 3impa adantr adantl c2 s2len eqtr4i ccatopth syl3anc bitrd
    s1cl ) AGHZBGHZCGHZIZDGHZEGHZFGHZIZJZABCKZDEFKZLABMZCNZOPZDEMZFNZOPZLZVGVJL
    VHVKLJZVDVEVIVFVLVEVILVDABCQRVFVLLVDDEFQRUAVDVGGUBZHZVHVOHZJZVJVOHZVKVOHZJZ
    VGSTZVJSTZLZVMVNUCUSVRVCUPUQURVRUPUQJVPURVQABGUDCGUOUEUFUGVCWAUSUTVAVBWAUTV
    AJVSVBVTDEGUDFGUOUEUFUHWDVDWBUIWCABUJDEUJUKRVGVHVJVKGULUMUN $.

  $( Two length 3 words are equal iff the corresponding symbols are equal.
     (Contributed by AV, 4-Jan-2022.) $)
  s3eq3seq $p |- ( ( ( A e. V /\ B e. V /\ C e. V )
                       /\ ( D e. V /\ E e. V /\ F e. V ) )
          -> ( <" A B C "> = <" D E F "> <-> ( A = D /\ B = E /\ C = F ) ) ) $=
    ( wcel w3a wa cs3 wceq cs2 cs1 s3eqs2s1eq wb 3simpa s2eq2seq syl2an simp3
    s111 anbi12d df-3an syl6bbr bitrd ) AGHZBGHZCGHZIZDGHZEGHZFGHZIZJZABCKDEFKL
    ABMDEMLZCNFNLZJZADLZBELZCFLZIZABCDEFGOUNUQURUSJZUTJVAUNUOVBUPUTUIUFUGJUJUKJ
    UOVBPUMUFUGUHQUJUKULQABDEGRSUIUHULUPUTPUMUFUGUHTUJUKULTGCFUASUBURUSUTUCUDUE
    $.

  $( Extract two adjacent symbols from a word.  (Contributed by Stefan O'Rear,
     23-Aug-2015.)  (Revised by Mario Carneiro, 26-Feb-2016.) $)
  swrds2 $p |- ( ( W e. Word A /\ I e. NN0 /\
        ( I + 1 ) e. ( 0 ..^ ( # ` W ) ) ) ->
      ( W substr <. I , ( I + 2 ) >. ) = <" ( W ` I ) ( W ` ( I + 1 ) ) "> ) $=
    ( wcel cn0 c1 caddc cc0 cfv cop csubstr cconcat wceq wbr 3ad2ant3 syl3anbrc
    co syl cfz cle cword chash w3a cs2 c2 cs1 simp1 cn clt simp2 elfzo0 simp2bi
    nn0red peano2nn0 nnred lep1d elfzolt2 lelttrd swrds1 syl2anc nn0cn 3ad2ant2
    cfzo ax-1cn addass mp3an23 df-2 oveq2i syl6reqr opeq2d oveq2d 3adant2 eqtrd
    cc oveq12d df-s2 elfz2nn0 eqeltrd breqtrrd fzofzp1 ccatswrd syl13anc eqtr2d
    ) CAUADZBEDZBFGQZHCUBIZVCQZDZUCZBCIZWFCIZUDZCBWFJKQZCWFBUEGQZJZKQZLQZCBWOJK
    QZWJWRWKUFZWLUFZLQWMWJWNWTWQXALWJWDBWHDZWNWTMWDWEWIUGZWJWEWGUHDZBWGUINXBWDW
    EWIUJZWIWDXDWEWIWFEDZXDWFWGUINZWFWGUKULOZWJBWFWGWJBXEUMZWJWFWJWEXFXEBUNRZUM
    ZWJWGXHUOWJBXIUPZWIWDXGWEWFHWGUQOURBWGUKPABCUSUTWJWQCWFWFFGQZJZKQZXAWJWPXNC
    KWJWOXMWFWJBVNDZWOXMMWEWDXPWIBVAVBXPXMBFFGQZGQZWOXPFVNDZXSXMXRMVDVDBFFVEVFU
    EXQBGVGVHVIRZVJVKWDWIXOXAMWEAWFCUSVLVMVOWKWLVPVIWJWDBHWFSQDZWFHWOSQDZWOHWGS
    QZDWRWSMXCWJWEXFBWFTNYAXEXJXLBWFVQPWJXFWOEDWFWOTNYBXJWJWOXMEXTWJXFXMEDXJWFU
    NRVRWJWFXMWOTWJWFXKUPXTVSWFWOVQPWJWOXMYCXTWIWDXMYCDWEHWGWFVTOVRACBWFWOWAWBW
    C $.

  $( Implications of a word of length 2.  (Contributed by AV, 27-Jul-2018.)
     (Proof shortened by AV, 14-Oct-2018.) $)
  wrdlen2i $p |- ( ( S e. V /\ T e. V ) -> ( W = { <. 0 , S >. , <. 1 , T >. }
                  -> ( ( W e. Word V /\ ( # ` W ) = 2 )
                       /\ ( ( W ` 0 ) = S /\ ( W ` 1 ) = T ) ) ) ) $=
    ( wcel wa cc0 c1 cpr wceq chash cfv c2 wf cvv c0ex 0ne1 a1i mp3an2i adantr
    cop cword cfzo co wne 1ex pm3.2i simpl wi fzo0to2pr eqcomi feq2d biimpa wss
    fprg prssi fssd ex impcom wb feq1 adantl mpbird mpancom iswrdi fveq2 opth1g
    syl neii sylancr mtoi neqned opex hashprg mp1i mpbid sylan9eqr fvpr1g simpr
    fvpr2g jca fveq1 eqeq1d anbi12d jca31 ) ACEZBCEZFZDGAUAZHBUAZIZJZDCUBEZDKLZ
    MJZFGDLZAJZHDLZBJZFZFWHWLFZWMWOWTXAGMUCUDZCDNZWMGHIZABIZWKNZXAXCGOEZHOEZFXA
    WHGHUEZXFXGXHPUFUGWHWLUHXIXAQRGHABOOCCUOSXFXAFXCXBCWKNZXAXFXJWHXFXJUIWLWHXF
    XJWHXFFXBXECWKWHXFXBXEWKNWHXDXBXEWKXDXBJWHXBXDUJUKRULUMWHXECUNXFABCUPTUQURT
    USXAXCXJUTZXFWLXKWHXBCDWKVAVBVBVCVDCMDVEVHWLWHWNWKKLZMDWKKVFWHWIWJUEZXLMJZW
    HWIWJWHWIWJJZGHJZGHQVIWHXGWFXOXPUIPWFWGUHZGAHBOCVGVJVKVLWIOEZWJOEZFXMXNUTWH
    XRXSGAVMHBVMUGWIWJOOVNVOVPVQXAWTGWKLZAJZHWKLZBJZFZWHYDWLWHYAYCXGWHWFXIYAPXQ
    XIWHQRZGHABOCVRSXHWHWGXIYCUFWFWGVSYEGHABOCVTSWATWLWTYDUTWHWLWQYAWSYCWLWPXTA
    GDWKWBWCWLWRYBBHDWKWBWCWDVBVCWEUR $.

  $( A word of length 2 represented as unordered pair of ordered pairs.
     (Contributed by AV, 20-Oct-2018.)  (Proof shortened by AV,
     26-Jan-2021.) $)
  wrd2pr2op $p |- ( ( W e. Word V /\ ( # ` W ) = 2 )
                    -> W = { <. 0 , ( W ` 0 ) >. , <. 1 , ( W ` 1 ) >. } ) $=
    ( cword wcel chash cfv c2 wceq wa cc0 c1 cpr wfn cfzo co wrdfn adantr oveq2
    cop fzo0to2pr syl6req adantl fneq2d mpbird c0ex 1ex fnprb sylib ) BACDZBEFZ
    GHZIZBJKLZMZBJJBFSKKBFSLHULUNBJUJNOZMZUIUPUKABPQULUMUOBUKUMUOHUIUKUOJGNOUMU
    JGJNRTUAUBUCUDJKBUEUFUGUH $.

  $( A word of length 2.  (Contributed by AV, 20-Oct-2018.) $)
  wrdlen2 $p |- ( ( S e. V /\ T e. V ) -> ( W = { <. 0 , S >. , <. 1 , T >. }
                  <-> ( ( W e. Word V /\ ( # ` W ) = 2 )
                        /\ ( ( W ` 0 ) = S /\ ( W ` 1 ) = T ) ) ) ) $=
    ( wcel wa cc0 cop c1 cpr cword chash cfv c2 wrdlen2i wrd2pr2op opeq2 adantr
    wceq adantl preq12d sylan9eq impbid1 ) ACEBCEFDGAHZIBHZJZSDCKEDLMNSFZGDMZAS
    ZIDMZBSZFZFABCDOUGULDGUHHZIUJHZJUFCDPULUMUDUNUEUIUMUDSUKUHAGQRUKUNUESUIUJBI
    QTUAUBUC $.

  $( A word of length 2 as doubleton word.  (Contributed by AV,
     20-Oct-2018.) $)
  wrdlen2s2 $p |- ( ( W e. Word V /\ ( # ` W ) = 2 )
                    -> W = <" ( W ` 0 ) ( W ` 1 ) "> ) $=
    ( cword wcel chash cfv c2 wceq wa cc0 cop cpr cs2 wrd2pr2op cvv fvex s2prop
    c1 eqcomd mp2an syl6eq ) BACDBEFGHIBJJBFZKRRBFZKLZUBUCMZABNUBODZUCODZUDUEHJ
    BPRBPUFUGIUEUDUBUCOQSTUA $.

  ${
    $d S s t $.  $d W s t $.
    $( A word of length 2 is a doubleton word.  (Contributed by AV,
       25-Jan-2021.) $)
    wrdl2exs2 $p |- ( ( W e. Word S /\ ( # ` W ) = 2 )
                      -> E. s e. S E. t e. S W = <" s t "> ) $=
      ( wcel cfv c2 wceq c1 cs2 cv wrex cle wbr cmin co id eqidd s2eqd eqeq2d
      cword chash wa cc0 1le2 breq2 mpbiri wrdsymb1 sylan2 clsw lsw oveq1 2m1e1
      syl6eq fveq2d sylan9eq lswlgt0cl mpan eqeltrrd wrdlen2s2 rspc2ev syl3anc
      cn 2nn ) CBUAZEZCUBFZGHZUCZUDCFZBEZICFZBECVJVLJZHZCDKZAKZJZHZABLDBLVHVFIV
      GMNZVKVHVSIGMNUEVGGIMUFUGBCUHUIVICUJFZVLBVFVHVTVGIOPZCFVLCVEUKVHWAICVHWAG
      IOPIVGGIOULUMUNUOUPGVCEVIVTBEVDGBCUQURUSBCUTVRVNCVJVPJZHDAVJVLBBVOVJHZVQW
      BCWCVOVPVJVPWCQWCVPRSTVPVLHZWBVMCWDVJVPVJVLWDVJRWDQSTVAVB $.
  $}

  $( A word of length 3 represented as triple of ordered pairs.  (Contributed
     by AV, 26-Jan-2021.) $)
  wrd3tpop $p |- ( ( W e. Word V /\ ( # ` W ) = 3 )
                   -> W = { <. 0 , ( W ` 0 ) >. ,
                            <. 1 , ( W ` 1 ) >. ,
                            <. 2 , ( W ` 2 ) >. } ) $=
    ( cword wcel chash cfv c3 wceq wa cc0 c1 c2 ctp wfn cop cfzo co wrdfn oveq2
    adantr fzo0to3tp syl6req adantl fneq2d mpbird c0ex 1ex 2ex fntpb sylib ) BA
    CDZBEFZGHZIZBJKLMZNZBJJBFOKKBFOLLBFOMHUNUPBJULPQZNZUKURUMABRTUNUOUQBUMUOUQH
    UKUMUQJGPQUOULGJPSUAUBUCUDUEJKLBUFUGUHUIUJ $.

  $( A word of length 3 as length 3 string.  (Contributed by AV,
     26-Jan-2021.) $)
  wrdlen3s3 $p |- ( ( W e. Word V /\ ( # ` W ) = 3 )
                    -> W = <" ( W ` 0 ) ( W ` 1 ) ( W ` 2 ) "> ) $=
    ( cword wcel chash cfv c3 wceq wa cc0 cop c1 c2 ctp cs3 wrd3tpop cvv s3tpop
    fvex w3a eqcomd mp3an syl6eq ) BACDBEFGHIBJJBFZKLLBFZKMMBFZKNZUDUEUFOZABPUD
    QDZUEQDZUFQDZUGUHHJBSLBSMBSUIUJUKTUHUGUDUEUFQRUAUBUC $.

  $( The "repeated symbol word" of length 2.  (Contributed by AV,
     6-Nov-2018.) $)
  repsw2 $p |- ( S e. V -> ( S repeatS 2 ) = <" S S "> ) $=
    ( wcel cs2 cs1 cconcat co c2 creps df-s2 c1 cn0 wceq 1nn0 repswccat mp3an23
    caddc repsw1 oveq12d 1p1e2 a1i oveq2d 3eqtr3d syl5req ) ABCZAADAEZUFFGZAHIG
    ZAAJUEAKIGZUIFGZAKKQGZIGZUGUHUEKLCZUMUJULMNNAKKBOPUEUIUFUIUFFABRZUNSUEUKHAI
    UKHMUETUAUBUCUD $.

  $( The "repeated symbol word" of length 3.  (Contributed by AV,
     6-Nov-2018.) $)
  repsw3 $p |- ( S e. V -> ( S repeatS 3 ) = <" S S S "> ) $=
    ( wcel cs3 cs2 cs1 cconcat co c3 creps df-s3 c2 c1 caddc cn0 wceq 2nn0 1nn0
    repswccat mp3an23 repsw2 repsw1 oveq12d 2p1e3 a1i oveq2d 3eqtr3d syl5req )
    ABCZAAADAAEZAFZGHZAIJHZAAAKUIALJHZAMJHZGHZALMNHZJHZULUMUILOCMOCUPURPQRAMLBS
    TUIUNUJUOUKGABUAABUBUCUIUQIAJUQIPUIUDUEUFUGUH $.

  $( Extract the last two symbols from a word.  (Contributed by Alexander van
     der Vekens, 23-Sep-2018.) $)
  swrd2lsw $p |- ( ( W e. Word V /\ 1 < ( # ` W ) )
                 -> ( W substr <. ( ( # ` W ) - 2 ) , ( # ` W ) >. )
                    = <" ( W ` ( ( # ` W ) - 2 ) ) ( lastS ` W ) "> ) $=
    ( wcel c1 cfv clt wbr wa c2 cmin co caddc csubstr cn0 cc0 a1i adantr eqcomd
    wceq syl cword chash cop cs2 clsw cfzo w3a simpl lencl cle cz wb 1z zltp1le
    nn0z sylancr 1p1e2 breq1d biimpd sylbid imp 2nn0 jctl nn0sub mpbid sylan cn
    wi cr 0red 1red zre 3jca 0lt1 lttr expd mpisyl elnnz simplbi2 fzo0end nn0cn
    syld cc 2cn 1cnd 1e2m1 oveq2d subsub eqtrd eleq1d mpbird swrds2 jctir npcan
    3syl opeq2d eqidd lsw 2m1e1 fveq2d s2eqd 3eqtr4d ) BAUAZCZDBUBEZFGZHZBXEIJK
    ZXHILKZUCZMKZXHBEZXHDLKZBEZUDZBXHXEUCZMKXLBUEEZUDXGXDXHNCZXMOXEUFKZCZUGXKXO
    SXGXDXRXTXDXFUHXDXENCZXFXRABUIZYAXFHZIXEUJGZXRYAXFYDYAXFDDLKZXEUJGZYDYADUKC
    XEUKCZXFYFULUMXEUOZDXEUNUPYAYFYDYAYEIXEUJYEISYAUQPURUSUTVAYCINCZYAHZYDXRULY
    AYJXFYAYIVBVCQIXEVDTVEVFXDYAXFXTYBYCXTXEDJKZXSCZYCXEVGCZYLYAXFYMYAYGXFYMVHY
    HYGXFOXEFGZYMYGOVICZDVICZXEVICZUGZODFGZXFYNVHYGYOYPYQYGVJYGVKXEVLVMVNYRYSXF
    YNODXEVOVPVQYMYGYNXEVRVSWBTVAXEVTTYAXTYLULXFYAXMYKXSYAYKXMYAXEWCCZIWCCZDWCC
    ZUGZYKXMSYAYTUUAUUBXEWAZUUAYAWDPYAWEVMZUUCYKXEIDJKZJKZXMUUCDUUFXEJDUUFSUUCW
    FPWGXEIDWHZWITRWJQWKVFVMAXHBWLTXGXPXJBMXGXEXIXHXDXEXISZXFXDYAYTUUAHZUUIYBYA
    YTUUAUUDWDWMUUJXIXEXEIWNRWOQWPWGXGXLXQXLXNXGXLWQXDXQXNSXFXDXQYKBEXNBXCWRXDY
    KXMBXDXMYKXDYAXMYKSYBYAXMUUGYKYAUUGXMYAUUCUUGXMSUUEUUHTRYAUUFDXEJUUFDSYAWSP
    WGWITRWTWIQXAXB $.

  $( Two words of length at least 2 are equal if and only if they have the same
     prefix and the same two single symbols suffix.  (Contributed by AV,
     24-Sep-2018.)  (Revised by Mario Carneiro/AV, 23-Oct-2018.) $)
  2swrd2eqwrdeq $p |- ( ( W e. Word V /\ U e. Word V /\ 1 < ( # ` W ) )
                        -> ( W = U <-> ( ( # ` W ) = ( # ` U )
                       /\ ( ( W substr <. 0 , ( ( # ` W ) - 2 ) >. )
                            = ( U substr <. 0 , ( ( # ` W ) - 2 ) >. )
                       /\ ( W ` ( ( # ` W ) - 2 ) ) = ( U ` ( ( # ` W ) - 2 ) )
                       /\ ( lastS ` W ) = ( lastS ` U ) ) ) ) ) $=
    ( wcel c1 cfv clt wbr w3a wceq cc0 c2 cmin co csubstr wa clsw sylancr cvv
    wb cword chash cop cfzo cn0 lencl cn cle caddc cz 1z nn0z zltp1le 1p1e2 a1i
    breq1d biimpd sylbid 2nn0 simpl nn0sub mpbid adantr cr 0red 1red nn0re 3jca
    imp wi 0lt1 lttr expd mpisyl elnnz sylanbrc 2pos 2re ltsubposd mpbii elfzo0
    syl3anbrc sylan 3adant2 2swrdeqwrdeq syld3an3 cs2 cs1 breq2 3anbi3d 3adant1
    swrd2lsw syl6bi impcom oveq1 id opeq12d oveq2d eqeq1d adantl mpbird eqeq12d
    fvexd s2eq2s1eq syl22anc fvex s111 fveq2d eqcoms eqeq2d bitrd 3bitrd anbi2d
    anbi12d 3anass syl6bbr pm5.32da ) CBUAZDZAXRDZECUBFZGHZIZCAJZYAAUBFZJZCKYAL
    MNZUCZONAYHONJZCYGYAUCZONZAYJONZJZPZPZYFYIYGCFZYGAFZJZCQFZAQFZJZIZPXSXTYBYG
    KYAUDNDZYDYOTXSYBUUCXTXSYAUEDZYBUUCBCUFUUDYBPZYGUEDZYAUGDZYGYAGHZUUCUUELYAU
    HHZUUFUUDYBUUIUUDYBEEUINZYAUHHZUUIUUDEUJDYAUJDZYBUUKTUKYAULZEYAUMRUUDUUKUUI
    UUDUUJLYAUHUUJLJUUDUNUOUPUQURVIUUELUEDUUDUUIUUFTUSUUDYBUTLYAVARVBUUEUULKYAG
    HZUUGUUDUULYBUUMVCUUDYBUUNUUDKVDDZEVDDZYAVDDZIZKEGHZYBUUNVJUUDUUOUUPUUQUUDV
    EUUDVFYAVGZVHVKUURUUSYBUUNKEYAVLVMVNVIYAVOVPUUDUUHYBUUDKLGHUUHVQUUDLYALVDDU
    UDVRUOUUTVSVTVCYGYAWAWBWCWDAYGBCWEWFYCYFYNUUBYCYFPZYNYIYRUUAPZPUUBUVAYMUVBY
    IUVAYMYPYSWGZYELMNZAFZYTWGZJZYPWHUVEWHJZYSWHYTWHJZPZUVBUVAYKUVCYLUVFYCYKUVC
    JZYFXSYBUVKXTBCWLWDVCUVAYLUVFJZAUVDYEUCZONZUVFJZYFYCUVOYFYCXSXTEYEGHZIUVOYF
    YBUVPXSXTYAYEEGWIWJXTUVPUVOXSBAWLWKWMWNYFUVLUVOTYCYFYLUVNUVFYFYJUVMAOYFYGUV
    DYAYEYAYELMWOYFWPWQWRWSWTXAXBUVAYPSDZYSSDZUVESDZYTSDZUVGUVJTUVAYGCXCUVACQXC
    UVAUVDAXCZUVAAQXCZYPYSUVEYTSXDXEUVAUVHYRUVIUUAUVAUVHYPUVEJZYRUVAUVQUVSUVHUW
    CTYGCXFUWASYPUVEXGRUVAUVEYQYPYFUVEYQJZYCUWDYEYAYEYAJUVDYGAYEYALMWOXHXIWTXJX
    KUVAUVRUVTUVIUUATCQXFUWBSYSYTXGRXNXLXMYIYRUUAXOXPXQXK $.

  $( The concatenation of a word with two singleton words equals the
     concatenation of the word with the doubleton word consisting of the
     symbols of the two singletons.  (Contributed by Mario Carneiro/AV,
     21-Oct-2018.) $)
  ccatw2s1ccatws2 $p |- ( ( W e. Word V /\ X e. V /\ Y e. V )
                          -> ( ( W ++ <" X "> ) ++ <" Y "> )
                             = ( W ++ <" X Y "> ) ) $=
    ( cword wcel w3a cs1 cconcat co cs2 ccatw2s1ass wceq df-s2 a1i eqcomd eqtrd
    oveq2d ) BAEFCAFDAFGZBCHZIJDHZIJBTUAIJZIJBCDKZIJABCDLSUBUCBISUCUBUCUBMSCDNO
    PRQ $.

  $( Alternate proof of ~ ccat2s1fvw using words of length 2, see ~ df-s2 .  A
     symbol of the concatenation of a word with two single symbols
     corresponding to the symbol of the word.  (Contributed by AV,
     22-Sep-2018.)  (Proof shortened by Mario Carneiro/AV, 21-Oct-2018.)
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  ccat2s1fvwALT $p |- ( ( ( W e. Word V /\ I e. NN0 /\ I < ( # ` W ) )
                          /\ ( X e. V /\ Y e. V ) )
            -> ( ( ( W ++ <" X "> ) ++ <" Y "> ) ` I ) = ( W ` I ) ) $=
    ( cword wcel cn0 chash cfv clt wbr w3a wa cs1 cconcat co cs2 wceq adantr cz
    simp1 anim1i 3anass sylibr ccatw2s1ccatws2 fveq1d syl cc0 cfzo adantl simp2
    s2cl lencl nn0zd 3ad2ant1 simp3 elfzo0z syl3anbrc ccatval1 syl3anc eqtrd )
    CBFZGZAHGZACIJZKLZMZDBGZEBGZNZNZACDOPQEOPQZJZACDERZPQZJZACJZVLVDVIVJMZVNVQS
    VLVDVKNVSVHVDVKVDVEVGUBZUCVDVIVJUDUEVSAVMVPBCDEUFUGUHVLVDVOVCGZAUIVFUJQGZVQ
    VRSVHVDVKVTTVKWAVHDEBUMUKVHWBVKVHVEVFUAGZVGWBVDVEVGULVDVEWCVGVDVFBCUNUOUPVD
    VEVGUQAVFURUSTBCVOAUTVAVB $.

  ${
    $d D t $.  $d P n t w $.  $d R t $.  $d V n t w $.  $d X n w $.
    wrd2f1tovbij.d $e |- D = { w e. Word V | ( ( # ` w ) = 2 /\ ( w ` 0 ) = P
                           /\ { ( w ` 0 ) , ( w ` 1 ) } e. X ) } $.
    wrd2f1tovbij.r $e |- R = { n e. V | { P , n } e. X } $.
    wrd2f1tovbij.f $e |- F = ( t e. D |-> ( t ` 1 ) ) $.
    $( Lemma 1 for ~ wrd2f1tovbij .  (Contributed by Alexander van der Vekens,
       27-Jul-2018.) $)
    wwlktovf $p |- F : D --> R $=
      ( c1 cv cfv wcel c2 wceq cc0 cpr cword chash w3a wa cfzo co wf wrdf oveq2
      wi feq2d cn0 clt wbr 1nn0 2nn 1lt2 elfzo0 mpbir3an ffvelrn mpan2 3ad2ant1
      cn syl6bi mpan9 preq1 eleq1d biimpa 3adant1 adantl jca fveq2 eqeq1d fveq1
      weq preq12d 3anbi123d elrab2 preq2 3imtr4i fmpti ) BCEMBNZOZGLWBHUAZPZWBU
      BOZQRZSWBOZDRZWHWCTZIPZUCZUDZWCHPZDWCTZIPZUDWBCPWCEPWMWNWPWESWFUEUFZHWBUG
      ZWLWNHWBUHWGWIWRWNUJWKWGWRSQUEUFZHWBUGZWNWGWQWSHWBWFQSUEUIUKWTMWSPZWNXAMU
      LPQVCPMQUMUNUOUPUQMQURUSWSHMWBUTVAVDVBVEWLWPWEWIWKWPWGWIWKWPWIWJWOIWHDWCV
      FVGVHVIVJVKANZUBOZQRZSXBOZDRZXEMXBOZTZIPZUCWLAWBWDCABVOZXDWGXFWIXIWKXJXCW
      FQXBWBUBVLVMXJXEWHDSXBWBVNZVMXJXHWJIXJXEWHXGWCXKMXBWBVNVPVGVQJVRDFNZTZIPW
      PFWCHEXLWCRXMWOIXLWCDVSVGKVRVTWA $.

    $d D x y $.  $d F x y $.  $d P t w x y $.  $d V x y $.  $d i x y $.
    $( Lemma 2 for ~ wrd2f1tovbij .  (Contributed by Alexander van der Vekens,
       27-Jul-2018.) $)
    wwlktovf1 $p |- F : D -1-1-> R $=
      ( vx cfv wceq wcel wa c1 c2 cc0 vy vi wf1 wf cv weq wi wral wwlktovf fvex
      fveq1 fvmpt eqeqan12d cword chash cpr w3a eqeq1d preq12d eleq1d 3anbi123d
      fveq2 elrab2 co simp1 adantl eqcomd sylan9eq adantr simp2 simpr fzo0to2pr
      cfzo oveq2 syl6eq raleqdv c0ex 1ex eqeq12d ralpr syl6bb 3ad2ant1 ad3antlr
      wb mpbir2and simpl anim12i eqwrd syl syl2anb sylbid rgen2a dff13 mpbir2an
      ex ) CEGUCCEGUDMUEZGNZUAUEZGNZOZMUAUFZUGZUACUHMCUHABCDEFGHIJKLUIXBMUACWPC
      PZWRCPZQWTRWPNZRWRNZOZXAXCXDWQXEWSXFBWPRBUEZNZXECGRXHWPUKLRWPUJULBWRXIXFC
      GRXHWRUKLRWRUJULUMXCWPHUNZPZWPUONZSOZTWPNZDOZXNXEUPZIPZUQZQZWRXJPZWRUONZS
      OZTWRNZDOZYCXFUPZIPZUQZQZXGXAUGXDAUEZUONZSOZTYINZDOZYLRYINZUPZIPZUQZXRAWP
      XJCAMUFZYKXMYMXOYPXQYRYJXLSYIWPUOVBURYRYLXNDTYIWPUKZURYRYOXPIYRYLXNYNXEYS
      RYIWPUKUSUTVAJVCYQYGAWRXJCAUAUFZYKYBYMYDYPYFYTYJYASYIWRUOVBURYTYLYCDTYIWR
      UKZURYTYOYEIYTYLYCYNXFUUARYIWRUKUSUTVAJVCXSYHQZXGXAUUBXGQZXAXLYAOZUBUEZWP
      NZUUEWRNZOZUBTXLVMVDZUHZUUBUUDXGXSYHXLSYAXRXMXKXMXOXQVEVFYGSYAOXTYGYASYBY
      DYFVEVGVFVHVIUUCUUJXNYCOZXGUUBUUKXGXSYHXNDYCXRXOXKXMXOXQVJVFYGDYCOXTYGYCD
      YBYDYFVJVGVFVHVIUUBXGVKXRUUJUUKXGQZWDZXKYHXGXMXOUUMXQXMUUJUUHUBTRUPZUHUUL
      XMUUHUBUUIUUNXMUUITSVMVDUUNXLSTVMVNVLVOVPUUHUUKXGUBTRVQVRUUETOUUFXNUUGYCU
      UETWPVBUUETWRVBVSUUEROUUFXEUUGXFUUERWPVBUUERWRVBVSVTWAWBWCWEUUCXKXTQZXAUU
      DUUJQWDUUBUUOXGXSXKYHXTXKXRWFXTYGWFWGVIWPUBHWRWHWIWEWOWJWKWLMUACEGWMWN $.

    $d D p u $.  $d F u p $.  $d P p u $.  $d R p u $.  $d V p u $.  $d X u $.
    $d n p $.  $d t u w $.
    $( Lemma 3 for ~ wrd2f1tovbij .  (Contributed by Alexander van der Vekens,
       27-Jul-2018.) $)
    wwlktovfo $p |- ( P e. V -> F : D -onto-> R ) $=
      ( vu wcel cfv wceq wa c1 wi adantr vp wf cv wrex wfo wwlktovf a1i cpr weq
      wral preq2 eleq1d elrab2 chash c2 cc0 w3a cword crab wex cop simpl anim2i
      eqidd wrdlen2i sylc cvv prex eleq1 biimpd com12 impcom fveq2 eqeq1d fveq1
      adantl anbi12d preq12 eqcomd syl6bi com13 ad2antll imp 3jca eqeq2d syl5bi
      eqcom jca31 exp31 eqcoms spcimedv mpd 3anbi123d elrab anbi1i exbii sylibr
      preq12d df-rex rexeqi fvex fvmpt rexbiia sylan2b ralrimiva dffo3 sylanbrc
      ) DHNZCEGUBZUAUCZMUCZGOZPZMCUDZUAEUJCEGUEXIXHABCDEFGHIJKLUFUGXHXNUAEXJENX
      HXJHNZDXJUHZINZQZXNDFUCZUHZINXQFXJHEFUAUIXTXPIXSXJDUKULKUMXHXRQZXJRXKOZPZ
      MCUDZXNYAYCMAUCZUNOZUOPZUPYEOZDPZYHRYEOZUHZINZUQZAHURZUSZUDZYDYAXKYONZYCQ
      ZMUTZYPYAXKYNNZXKUNOZUOPZUPXKOZDPZUUCYBUHZINZUQZQZYCQZMUTZYSYAUPDVAZRXJVA
      ZUHZYNNZUUMUNOZUOPZQZUPUUMOZDPZRUUMOZXJPZQZQZUUJYAXHXOQUUMUUMPUVCXRXOXHXO
      XQVBVCYAUUMVDDXJHUUMVEVFYAUUIUVCMUUMVGUUMVGNYAUUKUULVHUGXKUUMPYAUVCUUISZY
      AUVDSUUMXKUUMXKPZYAUVCUUIUVEYAQZUVCQZYTUUGYCUVCUVFYTUUQUVFYTSZUVBUUNUVHUU
      PUVFUUNYTUVEUUNYTSYAUVEUUNYTUUMXKYNVIVJTVKTTVLUVGUUBUUDUUFUVCUVFUUBUUQUVF
      UUBSZUVBUUPUVIUUNUVFUUPUUBUVEUUPUUBSYAUVEUUPUUBUVEUUOUUAUOUUMXKUNVMVNVJTV
      KVPTVLUVCUVFUUDUVBUVFUUDSZUUQUUSUVJUVAUVFUUSUUDUVEUUSUUDSYAUVEUUSUUDUVEUU
      RUUCDUPUUMXKVOVNZVJTVKTVPVLUVFUVCUUFYAUVEUVCUUFSZXQUVEUVLSXHXOUVCUVEXQUUF
      UVBUVEXQUUFSZSUUQUVEUVBUVMUVEUVBUUDYBXJPZQZUVMUVEUUSUUDUVAUVNUVKUVEUUTYBX
      JRUUMXKVOZVNVQUVOXQUUFUVOXPUUEIUVOUUEXPUUCYBDXJVRVSULVJVTVKVPWAWBVLWCWDUV
      FUVCYCUVEUVCYCSYAUVCUVEYCUVAUVEYCSUUQUUSUVEUVAYCUVAXJUUTPZUVEYCUUTXJWGUVE
      UVQYCUVEUUTYBXJUVPWEVJWFVKWBVKTWCWHWIWJVLWKWLYRUUIMYQUUHYCYMUUGAXKYNAMUIZ
      YGUUBYIUUDYLUUFUVRYFUUAUOYEXKUNVMVNUVRYHUUCDUPYEXKVOZVNUVRYKUUEIUVRYHUUCY
      JYBUVSRYEXKVOWRULWMWNWOWPWQYCMYOWSWQYCMCYOJWTWQXMYCMCXKCNXLYBXJBXKRBUCZOY
      BCGRUVTXKVOLRXKXAXBWEXCWQXDXEMUACEGXFXG $.

    $( Lemma 4 for ~ wrd2f1tovbij .  (Contributed by Alexander van der Vekens,
       28-Jul-2018.) $)
    wwlktovf1o $p |- ( P e. V -> F : D -1-1-onto-> R ) $=
      ( wcel wf1 wfo wf1o wwlktovf1 a1i wwlktovfo df-f1o sylanbrc ) DHMZCEGNZCE
      GOCEGPUCUBABCDEFGHIJKLQRABCDEFGHIJKLSCEGTUA $.
  $}

  ${
    $d P f n p t u w x $.  $d V f n p t u w x $.  $d X f n p t u w x $.
    $( There is a bijection between words of length two with a fixed first
       symbol contained in a pair and the symbols contained in a pair together
       with the fixed symbol.  (Contributed by Alexander van der Vekens,
       28-Jul-2018.) $)
    wrd2f1tovbij $p |- ( ( V e. Y /\ P e. V )
                       -> E. f f : { w e. Word V | ( ( # ` w ) = 2
                         /\ ( w ` 0 ) = P /\ { ( w ` 0 ) , ( w ` 1 ) } e. X ) }
                                   -1-1-onto-> { n e. V | { P , n } e. X } ) $=
      ( vx vt vu wcel cv chash cfv c2 wceq cc0 c1 cpr cvv vp wa cword crab cmpt
      w3a wf1o wex wrdexg adantr rabexg mptexg 3syl fveq2 eqeq1d preq12d eleq1d
      fveq1 3anbi123d cbvrabv preq2 mpteq1 wwlktovf1o adantl f1oeq1 spcegv sylc
      weq ax-mp ) EGKZBEKZUBZHILZMNZOPZQVMNZBPZVPRVMNZSZFKZUFZIEUCZUDZRHLNZUEZT
      KZALZMNZOPZQWGNZBPZWJRWGNZSZFKZUFZAWBUDZBDLZSZFKZDEUDZWEUGZWPWTCLZUGZCUHV
      LWBTKZWCTKWFVJXDVKEGUIUJWAIWBTUKHWCWDTULUMVKXAVJJHWPBWTUAWEEFWOJLZMNZOPZQ
      XENZBPZXHRXENZSZFKZUFAJWBAJVHZWIXGWKXIWNXLXMWHXFOWGXEMUNUOXMWJXHBQWGXEURZ
      UOXMWMXKFXMWJXHWLXJXNRWGXEURUPUQUSUTWSBUALZSZFKDUAEDUAVHWRXPFWQXOBVAUQUTW
      CWPPWEHWPWDUEPWAWOIAWBIAVHZVOWIVQWKVTWNXQVNWHOVMWGMUNUOXQVPWJBQVMWGURZUOX
      QVSWMFXQVPWJVRWLXRRVMWGURUPUQUSUTHWCWPWDVBVIVCVDXCXACWETWPWTXBWEVEVFVG $.
  $}

  ${
    $d A i $.  $d B i $.  $d C i $.  $d V i $.  $d W i $.
    $( A word is equal with a length 3 string iff it has length 3 and the same
       symbol at each position.  (Contributed by AV, 12-May-2021.) $)
    eqwrds3 $p |- ( ( W e. Word V /\ ( A e. V /\ B e. V /\ C e. V ) )
                    -> ( W = <" A B C "> <-> ( ( # ` W ) = 3
                /\ ( ( W ` 0 ) = A /\ ( W ` 1 ) = B /\ ( W ` 2 ) = C ) ) ) ) $=
      ( vi wcel wa wceq cfv cc0 cfzo c3 c1 c2 wb cz fveq2 eqeq12d sylan9bbr w3a
      cword cs3 chash cv co wral eqwrd sylan2 s3len eqeq2i a1i anbi1d ctp oveq2
      s3cl fzo0to3tp syl6eq s3fv0 3ad2ant1 eqeq2d s3fv1 3ad2ant2 s3fv2 3ad2ant3
      raleqdv 0zd 1zzd 2z raltpd adantl pm5.32da 3bitrd ) EDUBZGZADGZBDGZCDGZUA
      ZHZEABCUCZIZEUDJZWAUDJZIZFUEZEJZWFWAJZIZFKWCLUFZUGZHZWCMIZWKHWMKEJZAIZNEJ
      ZBIZOEJZCIZUAZHVSVOWAVNGWBWLPABCDUPEFDWAUHUIVTWEWMWKWEWMPVTWDMWCABCUJUKUL
      UMVTWMWKWTWMWKWIFKNOUNZUGZVTWTWMWIFWJXAWMWJKMLUFXAWCMKLUOUQURVFVSXBWTPVOV
      SWIWOWQWSFKNOQQQWFKIZWIWNKWAJZIVSWOXCWGWNWHXDWFKERWFKWARSVSXDAWNVPVQXDAIV
      RABCDUSUTVATWFNIZWIWPNWAJZIZVSWQXEWGWPWHXFWFNERWFNWARSVQVPXGWQPVRVQXFBWPA
      BCDVBVAVCTWFOIZWIWROWAJZIZVSWSXHWGWRWHXIWFOERWFOWARSVRVPXJWSPVQVRXICWRABC
      DVDVAVETVSVGVSVHOQGVSVIULVJVKTVLVM $.
  $}

  ${
    $d V a b c $.  $d W a b c $.
    $( A word of length 3 is a length 3 string.  (Contributed by AV,
       18-May-2021.) $)
    wrdl3s3 $p |- ( ( W e. Word V /\ ( # ` W ) = 3 )
                       <-> E. a e. V E. b e. V E. c e. V W = <" a b c "> ) $=
      ( wcel chash cfv c3 wceq wa cv wrex cc0 c1 c2 w3a cfzo fzo0to3tp eleqtrri
      cword cs3 ctp c0ex tpid1 oveq2 syl5eleqr wrdsymbcl sylan2 1ex tpid2 tpid3
      2ex simpr eqid 3pm3.2i jctir eqeq2 3anbi1d anbi2d 3anbi2d 3anbi3d rspc3ev
      co syl31anc wb wi df-3an eqwrds3 ex syl5bir expd imp31 rexbidva 2rexbidva
      adantr mpbird ad4ant123 s3len eleq1 fveq2 eqeq1d anbi12d adantl rexlimdva
      s3cl rexlimivv impbii ) BAUAZFZBGHZIJZKZBCLZDLZELZUBZJZEAMZDAMCAMZWMWTWLN
      BHZWNJZOBHZWOJZPBHZWPJZQZKZEAMZDAMCAMZWMXAAFZXCAFZXEAFZWLXAXAJZXCXCJZXEXE
      JZQZKZXJWLWJNNWKRVDZFXKWLNNIRVDZXSNNOPUCZXTNOPUDUESTWKINRUFZUGNABUHUIWLWJ
      OXSFXLWLOXTXSOYAXTNOPUJUKSTYBUGOABUHUIWLWJPXSFXMWLPXTXSPYAXTNOPUMULSTYBUG
      PABUHUIWMWLXQWJWLUNXNXOXPXAUOXCUOXEUOUPUQXHXRWLXNXDXFQZKWLXNXOXFQZKCDEXAX
      CXEAAAWNXAJZXGYCWLYEXBXNXDXFWNXAXAURUSUTWOXCJZYCYDWLYFXDXOXNXFWOXCXCURVAU
      TWPXEJZYDXQWLYGXFXPXNXOWPXEXEURVBUTVCVEWMWSXICDAAWMWNAFZWOAFZKZKWRXHEAWMY
      JWPAFZWRXHVFZWJYJYKYLVGVGWLWJYJYKYLYJYKKZYHYIYKQZWJYLYHYIYKVHWJYNYLWNWOWP
      ABVIVJVKVLVPVMVNVOVQWSWMCDAAYJWRWMEAYMWRWMYMWRKZWMWQWIFZWQGHZIJZKZYOYPYRY
      HYIYKYPWRWNWOWPAWFVRWNWOWPVSUQWRWMYSVFYMWRWJYPWLYRBWQWIVTWRWKYQIBWQGWAWBW
      CWDVQVJWEWGWH $.
  $}

  ${
    $d A c d $.  $d B c d $.  $d X c d $.  $d Y c d $.  $d Z c d $.
    $( The singletons consisting of length 3 strings which have distinct third
       symbols are disjunct.  (Contributed by AV, 17-May-2021.) $)
    s3sndisj $p |- ( ( A e. X /\ B e. Y ) -> Disj_ c e. Z { <" A B c "> } ) $=
      ( vd wcel wa cv cs3 csn wceq wral wn cfv w3a cvv elex anim12i c0 wo wdisj
      weq cin wi orc a1d wne chash c3 c1 c2 cword wb s3cli adantl df-3an sylibr
      cc0 eqwrds3 sylancr vex s3fv2 ax-mp syl5eqr syl6bi con3rr3 neqned disjsn2
      simp3 imp syl olcd ex pm2.61i ralrimivva eqidd id s3eqd sneqd disjor ) AC
      HZBDHZIZFGUDZABFJZKZLZABGJZKZLZUEUAMZUBZGENFENFEWIUCWEWNFGEEWFWEWGEHZWJEH
      ZIZIZWNUFWFWNWRWFWMUGUHWFOZWRWNWSWRIZWMWFWTWHWKUIWMWTWHWKWSWRWHWKMZOWRXAW
      FWRXAWHUJPUKMZUTWHPAMZULWHPBMZUMWHPZWJMZQZIZWFWRWHRUNHARHZBRHZWJRHZQZXAXH
      UOABWGUPWRXIXJIZXKIXLWEXMWQXKWCXIWDXJACSBDSTWPXKWOWJESUQTXIXJXKURUSABWJRW
      HVAVBXGWFXBXGWGXEWJWGRHXEWGMFVCABWGRVDVEXCXDXFVKVFUQVGVHVLVIWHWKVJVMVNVOV
      PVQEWIWLFGWFWHWKWFABWGWJABWFAVRWFBVRWFVSVTWAWBUS $.

    $d B a c d e s $.  $d X a e s $.  $d Y a e s $.  $d Z a e s $.
    $( The union of singletons consisting of length 3 strings which have
       distinct first and third symbols are disjunct.  (Contributed by AV,
       17-May-2021.) $)
    s3iunsndisj $p |- ( B e. X -> Disj_ a e. Y U_ c e. ( Z \ { a } )
                                               { <" a B c "> } ) $=
      ( vd vs ve wcel cv csn wceq wral wa wi wn adantl cfv cvv weq cdif cs3 cin
      ciun c0 wo wdisj orc a1d wrex eliun velsn wb eqeq1 chash c3 cc0 c1 c2 w3a
      cword s3cli elex anim12ci anim12i df-3an sylibr eqwrds3 sylancr vex s3fv0
      ax-mp simp1 syl5eqr syl6bi adantr sylbid con3d exp32 com14 imp expd com34
      ancoms syl5bi sylnibr nrexdv ex rexlimdva ralrimiv eqidd id s3eqd cbviunv
      eleq2i notbii ralbii disj olcd pm2.61i ralrimivva difeq2d iuneq12d disjor
      sneqd sneq ) ABJZEGUAZFDEKZLZUBZXJAFKZUCZLZUEZFDGKZLZUBZXQAXMUCZLZUEZUDUF
      MZUGZGCNECNECXPUHXHYDEGCCXIXHXJCJZXQCJZOZOZYDPXIYDYHXIYCUIUJXIQZYHYDYIYHO
      ZYCXIYJHKZYBJZQZHXPNZYCYJYKIXSXQAIKZUCZLZUEZJZQZHXPNYNYJYTHXPYKXPJYKXOJZF
      XLUKYJYTFYKXLXOULYJUUAYTFXLYJXMXLJZOZUUAYTUUCUUAOZYKYQJZIXSUKYSUUDUUEIXSU
      UDYOXSJZOYKYPMZUUEUUDUUFUUGQZUUCUUAUUFUUHPZUUAYKXNMZUUCUUIHXNUMYJUUBUUJUU
      IPYJUUBUUFUUJUUHYJUUBUUFUUJUUHPZYIYHUUBUUFOZUUKPUUJYHUULYIUUHUUJYHUULYIUU
      HPUUJYHUULOZOUUGXIUUMUUJUUGXIPUUMUUJOUUGXNYPMZXIUUJUUGUUNUNUUMYKXNYPUORUU
      MUUNXIPUUJUUMUUNXNUPSUQMZURXNSZXQMZUSXNSAMZUTXNSYOMZVAZOZXIUUMXNTVBJXQTJZ
      ATJZYOTJZVAZUUNUVAUNXJAXMVCUUMUVBUVCOZUVDOUVEYHUVFUULUVDXHUVCYGUVBABVDYFU
      VBYEXQCVDRVEUUFUVDUUBYOXSVDRVFUVBUVCUVDVGVHXQAYOTXNVIVJUUTXIUUOUUTXJUUPXQ
      XJTJUUPXJMEVKXJAXMTVLVMUUQUURUUSVNVORVPVQVRWEVSVTWAWBWCWDWBWFWBWBHYPUMWGW
      HIYKXSYQULWGWIWJWFWKYMYTHXPYLYSYBYRYKFIXSYAYQFIUAZXTYPUVGXQAXMYOXQAUVGXQW
      LUVGAWLUVGWMWNXFWOWPWQWRVHHXPYBWSVHWTWIXAXBCXPYBEGXIFXLXSXOYAXIXKXRDXJXQX
      GXCXIXNXTXIXJAXMXMXQAXIWMXIAWLXIXMWLWNXFXDXEVH $.
  $}

  ${
    $d i E $.  $d i F $.  $d i G $.  $d i H $.  $d i R $.  $d i S $.  $d i T $.
    $d i ph $.
    ofccat.1 $e |- ( ph -> E e. Word S ) $.
    ofccat.2 $e |- ( ph -> F e. Word S ) $.
    ofccat.3 $e |- ( ph -> G e. Word T ) $.
    ofccat.4 $e |- ( ph -> H e. Word T ) $.
    ofccat.5 $e |- ( ph -> ( # ` E ) = ( # ` G ) ) $.
    ofccat.6 $e |- ( ph -> ( # ` F ) = ( # ` H ) ) $.
    $( Letterwise operations on word concatenations.  (Contributed by Thierry
       Arnoux, 28-Sep-2018.) $)
    ofccat $p |- ( ph -> ( ( E ++ F ) oF R ( G ++ H ) ) =
      ( ( E oF R G ) ++ ( F oF R H ) ) ) $=
      ( vi cc0 co cfzo wcel cvv chash cfv caddc cv cof cmin cif cmpt cconcat wa
      wceq wfn cword wrdf ffn 3syl oveq2d fneq2d mpbird ovexd inidm offn hashfn
      wf syl cn0 cfn wrdfin hashcl hashfzo0 eqtrd adantr eleq2d ad2antrr biimpa
      fnfvof syl22anc wn fveq2d simplr simpr neleqtrd nn0zd fzocatel ifbieq12d2
      cz mpteq2dva ovex ccatfval mp2an oveq12d mpteq1d syl5eq fvex ifex syl2anc
      a1i eqtr4d offval2 ifbieq2d ovif12 mpteq2i syl6eq 3eqtr4rd ) AOPEUAUBZFUA
      UBZUCQZRQZOUDZPEGBUEZQZUAUBZRQZSZXIXKUBZXIXLUFQZFHXJQZUBZUGZUHZOXHXIPXERQ
      ZSZXIEUBZXIGUBZBQZXIXEUFQZFUBZYFHUBZBQZUGZUHZXKXQUIQZEFUIQZGHUIQZXJQZAOXH
      XSYJAXIXHSZUJZXNYBXOXRYEYIYQXMYAXIYQXLXEPRAXLXEUKZYPAXLYAUAUBZXEAXKYAULXL
      YSUKAYAYABYAEGTTAECUMZSZYACEVDEYAULZICEUNYACEUOUPZAGYAULZGPGUAUBZRQZULZAG
      DUMZSZUUFDGVDUUGKDGUNUUFDGUOUPAYAUUFGAXEUUEPRMUQURUSZAPXERUTZUUKYAVAVBYAX
      KVCVEAXEVFSZYSXEUKAUUAEVGSUULICEVHEVIUPZXEVJVEVKZVLUQZVMZYQXNUJZUUBUUDYAT
      SYBXOYEUKAUUBYPXNUUCVNAUUDYPXNUUJVNUUQPXERUTYQXNYBUUPVOYABEGTXIVPVQYQXNVR
      ZUJZXRYFXQUBZYIUUSXPYFXQUUSXLXEXIUFAYRYPUURUUNVNUQVSUUSFPXFRQZULZHUVAULZU
      VATSYFUVASZUUTYIUKAUVBYPUURAFYTSZUVACFVDUVBJCFUNUVACFUOUPZVNAUVCYPUURAUVC
      HPHUAUBZRQZULZAHUUHSZUVHDHVDUVILDHUNUVHDHUOUPAUVAUVHHAXFUVGPRNUQURUSZVNUU
      SPXFRUTUUSYPYBVRXEWFSXFWFSUVDAYPUURVTUUSXMYAXIYQUURWAYQXMYAUKUURUUOVLWBUU
      SXEAUULYPUURUUMVNWCUUSXFAXFVFSZYPUURAUVEFVGSUVLJCFVHFVIUPZVNWCXIXEXFWDVQU
      VABFHTYFVPVQVKWEWGAYLOPXLXQUAUBZUCQZRQZXSUHZXTXKTSXQTSYLUVQUKEGXJWHFHXJWH
      OXKXQTTWIWJAOUVPXHXSAUVOXGPRAXLXEUVNXFUCUUNAUVNUVAUAUBZXFAXQUVAULUVNUVRUK
      AUVAUVABUVAFHTTUVFUVKAPXFRUTZUVSUVAVAVBUVAXQVCVEAUVLUVRXFUKUVMXFVJVEVKWKU
      QWLWMAYOOXHYBYCYGUGZYBYDYHUGZBQZUHZYKAYOOXHUVTXIUUFSZYDXIUUEUFQZHUBZUGZBQ
      ZUHUWCAOXHUVTUWGBYMYNTTTAPXGRUTUVTTSYQYBYCYGXIEWNYFFWNWOWQUWGTSYQUWDYDUWF
      XIGWNUWEHWNWOWQAUUAUVEYMOXHUVTUHUKIJOEFYTYTWIWPAYNOPUUEUVGUCQZRQZUWGUHZOX
      HUWGUHAUUIUVJYNUWKUKKLOGHUUHUUHWIWPAOXHUWJUWGAXGUWIPRAXEUUEXFUVGUCMNWKUQW
      LWRWSAOXHUWBUWHYQUWAUWGUVTBYQYBUWDYHUWFYDYQYAUUFXIYQXEUUEPRAXEUUEUKYPMVLZ
      UQVMYQYFUWEHYQXEUUEXIUFUWLUQVSWTUQWGWROXHUWBYJYBYCYGYDYHBXAXBXCXD $.
  $}

  ${
    $d i A $.  $d i B $.  $d i R $.  $d i S $.  $d i T $.
    $( Letterwise operations on a single letter word.  (Contributed by Thierry
       Arnoux, 7-Oct-2018.) $)
    ofs1 $p |- ( ( A e. S /\ B e. T )
      -> ( <" A "> oF R <" B "> ) = <" ( A R B ) "> ) $=
      ( vi wcel cs1 co cc0 csn cmpt cvv wceq cop s1val cn0 0nn0 fmptsn mpan cof
      wa snex a1i cv simpll simplr eqtrd adantr adantl offval2 ovex ax-mp mp2an
      eqtri syl6eqr ) ADGZBEGZUBZAHZBHZCUAIFJKZABCIZLZVCHZUSFVBABCUTVAMDEVBMGUS
      JUCUDUQURFUEVBGZUFUQURVFUGUQUTFVBALZNURUQUTJAOKZVGADPJQGZUQVHVGNRFJAQDSTU
      HUIURVAFVBBLZNUQURVAJBOKZVJBEPVIURVKVJNRFJBQESTUHUJUKVEJVCOKZVDVCMGZVEVLN
      ABCULZVCMPUMVIVMVLVDNRVNFJVCQMSUNUOUP $.
  $}

  $( Letterwise operations on a double letter word.  (Contributed by Thierry
     Arnoux, 7-Oct-2018.) $)
  ofs2 $p |- ( ( ( A e. S /\ B e. S ) /\ ( C e. T /\ D e. T ) )
  -> ( <" A B "> oF R <" C D "> ) = <" ( A R C ) ( B R D ) "> ) $=
    ( wcel wa cs2 co cs1 cconcat df-s2 s1cld chash cfv wceq c1 s1len cof simpll
    oveq12i simplr simprl simprr eqtr4i a1i ofccat ofs1 syl2anc oveq12d syl6eqr
    syl5eq eqtrd ) AFHZBFHZIZCGHZDGHZIZIZABJZCDJZEUAZKZALZCLZVEKZBLZDLZVEKZMKZA
    CEKZBDEKZJZVBVFVGVJMKZVHVKMKZVEKVMVCVQVDVRVEABNCDNUCVBEFGVGVJVHVKVBAFUPUQVA
    UBZOVBBFUPUQVAUDZOVBCGURUSUTUEZOVBDGURUSUTUFZOVGPQZVHPQZRVBWCSWDATCTUGUHVJP
    QZVKPQZRVBWESWFBTDTUGUHUIUNVBVMVNLZVOLZMKVPVBVIWGVLWHMVBUPUSVIWGRVSWAACEFGU
    JUKVBUQUTVLWHRVTWBBDEFGUJUKULVNVONUMUO $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Reflexive and transitive closures of relations
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  A relation, ` R ` , has the reflexive property if ` A R A ` holds whenever
  ` A ` is an element which could be related by the relation, namely
  elements of its domain and range. Eliminating dummy variables we see that a
  segment of the identity relation must be a subset of the relation or
  ` ( _I |`` ( ran R u. dom R ) ) C_ R ` .  See ~ issref .

  A relation, ` R ` , has the transitive property if ` A R C ` holds whenever
  there exists an intermediate value ` B ` such that both ` A R B ` and
  ` B R C ` hold. This can be expressed without dummy variables as
  ` ( R o. R ) C_ R ` .  See ~ cotr .

  The transitive closure of a relation, ` ( t+ `` R ) ` , is the smallest
  superset of the relation which has the transitive property. Likewise the
  reflexive-transitive closure, ` ( t* `` R ) ` , is the smallest superset
  which has both the reflexive and transitive properties.

  Not to be confused with the transitive closure of a set, ~ trcl , which is a
  closure relative to a different transitive property, ~ df-tr .

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The reflexive and transitive properties of relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( MARKER 17001 df-co $)

  ${
    $d x y z ph $.  $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.
    coss12d.a $e |- ( ph -> A C_ B ) $.
    coss12d.c $e |- ( ph -> C C_ D ) $.
    $( Subset deduction for composition of two classes.  (Contributed by RP,
       24-Dec-2019.) $)
    coss12d $p |- ( ph -> ( A o. C ) C_ ( B o. D ) ) $=
      ( vx vy vz cv wbr wa wex copab ccom ssbrd anim12d eximdv df-co ssopab2dv
      3sstr4g ) AHKZIKZDLZUDJKZBLZMZINZHJOUCUDELZUDUFCLZMZINZHJOBDPCEPAUIUMHJAU
      HULIAUEUJUGUKADEUCUDGQABCUDUFFQRSUAHJIBDTHJICETUB $.
  $}

  ${
    trrelssd.r $e |- ( ph -> ( R o. R ) C_ R ) $.
    trrelssd.s $e |- ( ph -> S C_ R ) $.
    trrelssd.t $e |- ( ph -> T C_ R ) $.
    $( The composition of subclasses of a transitive relation is a subclass of
       that relation.  (Contributed by RP, 24-Dec-2019.) $)
    trrelssd $p |- ( ph -> ( S o. T ) C_ R ) $=
      ( ccom coss12d sstrd ) ACDHBBHBACBDBFGIEJ $.
  $}

  $( MARKER 17059 brxp $)

  ${
    $d x z ph $.  $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.
    xpcogend.1 $e |- ( ph -> ( B i^i C ) =/= (/) ) $.
    $( The most interesting case of the composition of two cross products.
       (Contributed by RP, 24-Dec-2019.) $)
    xpcogend $p |- ( ph -> ( ( C X. D ) o. ( A X. B ) ) = ( A X. D ) ) $=
      ( vx vy vz cv cxp wbr wa wex copab wcel ccom exbii bitri brxp cin c0 elin
      wne n0 sylib biantrud ancom anbi12i 19.42v 3bitri syl6rbbr opabbidv df-co
      an4 df-xp 3eqtr4g ) AGJZHJZBCKZLZUSIJZDEKZLZMZHNZGIOURBPZVBEPZMZGIOVCUTQB
      EKAVFVIGIAVIVIUSCPZUSDPZMZHNZMZVFAVMVIACDUAZUBUDZVMFVPUSVOPZHNVMHVOUEVQVL
      HUSCDUCRSUFUGVFVGVJMZVHVKMZMZHNVIVLMZHNVNVEVTHVAVRVDVSURUSBCTVDVKVHMVSUSV
      BDETVKVHUHSUIRVTWAHVGVJVHVKUORVIVLHUJUKULUMGIHVCUTUNGIBEUPUQ $.
  $}

  ${
    xpcoidgend.1 $e |- ( ph -> ( A i^i B ) =/= (/) ) $.
    $( If two classes are not disjoint, then the composition of their
       cross-product with itself is idempotent.  (Contributed by RP,
       24-Dec-2019.) $)
    xpcoidgend $p |- ( ph -> ( ( A X. B ) o. ( A X. B ) ) = ( A X. B ) ) $=
      ( cin c0 incom syl5eqner xpcogend ) ABCBCACBEBCEFBCGDHI $.
  $}

  $( MARKER 18249 cotrg $)

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.  $d y z E $.
    $d z F $.
    cotr2g.d $e |- dom B C_ D $.
    cotr2g.e $e |- ( ran B i^i dom A ) C_ E $.
    cotr2g.f $e |- ran A C_ F $.
    $( Two ways of saying that the composition of two relations is included in
       a third relation.  See its special instance ~ cotr2 for the main
       application.  (Contributed by RP, 22-Mar-2020.) $)
    cotr2g $p |- ( ( A o. B ) C_ C
                   <-> A. x e. D A. y e. E A. z e. F
                       ( ( x B y /\ y A z ) -> x C z ) ) $=
      ( cv wbr wa wi wal wcel wral albii ccom wss cotrg nfv 19.21-2 simpl simpr
      w3a id simp2 impbii cdm vex breldm sseldi pm4.71ri crn cin brelrn biimpri
      3jca elin syl2an 3anbi123i 3an6 anbi2i bitri 3bitri imbi1i impexp 3impexp
      2albii df-ral 3bitr4i 19.21v bicomi ralbii ) DEUAFUBAMZBMZENZVSCMZDNZOZVR
      WAFNZPZCQZBQAQZWAIRZWEPZCQZBHSZAGSZWECISZBHSZAGSABCDEFUCWGVSHRZWIPZCQZBQZ
      AGSZWLVRGRZWPPZCQZBQZAQWTWRPZAQWGWSXCXDAWTWPBCWTBUDWTCUDUETWFXBABWEXACWEW
      TWOWHUHZWCOZWDPXEWEPXAWCXFWDWCVTWCWBUHZWTVTOZWOWCOZWHWBOZUHZXFWCXGWCVTWCW
      BVTWBUFWCUIVTWBUGVAZVTWCWBUJZUKVTXHWCXIWBXJVTWTVTEULGVRJVRVSEAUMZBUMZUNUO
      UPWCWOWCEUQZDULZURZHVSKVTVSXPRZVSXQRZVSXRRZWBVRVSEXNXOUSVSWADXOCUMZUNYAXS
      XTOVSXPXQVBUTVCUOUPWBWHWBDUQIWALVSWADXOYBUSUOUPVDXKXEXGOXFWTVTWOWCWHWBVEX
      GWCXEXGWCXMXLUKVFVGVHVIXEWCWDVJWTWOWHWEVKVHTVLWRAGVMVNWRWKAGWKWRWKWOWJPZB
      QWRWJBHVMYCWQBWQYCWOWICVOVPTVGVPVQVGWKWNAGWJWMBHWMWJWECIVMVPVQVQVH $.
  $}

  ${
    $d x y z R $.  $d x y z A $.  $d y z B $.  $d z C $.
    cotr2.a $e |- dom R C_ A $.
    cotr2.b $e |- ( dom R i^i ran R ) C_ B $.
    cotr2.c $e |- ran R C_ C $.
    $( Two ways of saying a relation is transitive.  Special instance of
       ~ cotr2g .  (Contributed by RP, 22-Mar-2020.) $)
    cotr2 $p |- ( ( R o. R ) C_ R
                  <-> A. x e. A A. y e. B A. z e. C
                      ( ( x R y /\ y R z ) -> x R z ) ) $=
      ( crn cdm cin incom eqsstr3i cotr2g ) ABCGGGDEFHGKZGLZMRQMERQNIOJP $.
  $}

  ${
    $d x y z R $.  $d x y z A $.  $d y z B $.  $d z C $.
    cotr3.a $e |- A = dom R $.
    cotr3.b $e |- B = ( A i^i C ) $.
    cotr3.c $e |- C = ran R $.
    $( Two ways of saying a relation is transitive.  (Contributed by RP,
       22-Mar-2020.) $)
    cotr3 $p |- ( ( R o. R ) C_ R
                  <-> A. x e. A A. y e. B A. z e. C
                      ( ( x R y /\ y R z ) -> x R z ) ) $=
      ( cdm eqimss2i crn cin ineq12i eqtri cotr2 ) ABCDEFGDGKZHLERGMZNZEDFNTIDR
      FSHJOPLFSJLQ $.
  $}

  $( MARKER 18548 coeq0 $)

  ${
    coemptyd.1 $e |- ( ph -> ( dom A i^i ran B ) = (/) ) $.
    $( Deduction about composition of classes with no relational content in
       common.  (Contributed by RP, 24-Dec-2019.) $)
    coemptyd $p |- ( ph -> ( A o. B ) = (/) ) $=
      ( cdm crn cin c0 wceq ccom coeq0 sylibr ) ABECFGHIBCJHIDBCKL $.
  $}

  $( The cross product is always a transitive relation.  (Contributed by RP,
     24-Dec-2019.) $)
  xptrrel $p |- ( ( A X. B ) o. ( A X. B ) ) C_ ( A X. B ) $=
    ( cin c0 wceq cxp ccom wss cdm inss1 dmxpss sstri inss2 rnxpss ssini eqimss
    crn syl5ss ss0 syl6eqss syl coemptyd 0ss wn biimpri xpcoidgend ssid pm2.61i
    wne df-ne ) ABCZDEZABFZUMGZUMHULUNDUMULUMUMULUMIZUMQZCZDHUQDEULUQUKDUQABUQU
    OAUOUPJABKLUQUPBUOUPMABNLOUKDPRUQSUAUBUMUCTULUDZUNUMUMURABUKDUIURUKDUJUEUFU
    MUGTUH $.

  $( MARKER 18561 co01 $)

  $( The empty class is a transitive relation.  (Contributed by RP,
     24-Dec-2019.) $)
  0trrel $p |- ( (/) o. (/) ) C_ (/) $=
    ( c0 ccom co01 eqimssi ) AABAACD $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Basic properties of closures
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Equality implies bijection.  (Contributed by RP, 9-May-2020.) $)
  cleq1lem $p |- ( A = B -> ( ( A C_ C /\ ph ) <-> ( B C_ C /\ ph ) ) ) $=
    ( wceq wss sseq1 anbi1d ) BCEBDFCDFABCDGH $.

  ${
    $d r R $.  $d r S $.
    $( Equality of relations implies equality of closures.  (Contributed by RP,
       9-May-2020.) $)
    cleq1 $p |- ( R = S -> |^| { r | ( R C_ r /\ ph ) }
                         = |^| { r | ( S C_ r /\ ph ) } ) $=
      ( wceq cv wss wa cab cleq1lem abbidv inteqd ) BCEZBDFZGAHZDICNGAHZDIMOPDA
      BCNJKL $.
  $}

  ${
    $d r R $.  $d r S $.
    $( The closure of a subclass is a subclass of the closure.  (Contributed by
       RP, 16-May-2020.) $)
    clsslem $p |- ( R C_ S -> |^| { r | ( R C_ r /\ ph ) }
                                C_ |^| { r | ( S C_ r /\ ph ) } ) $=
      ( wss cv wa cab cint sstr2 anim1d ss2abdv intss syl ) BCEZCDFZEZAGZDHZBPE
      ZAGZDHZEUBISIEORUADOQTABCPJKLSUBMN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definitions and basic properties of transitive closures
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c t+ $.
  $c t* $.

  $( Extend class notation to include the transitive closure symbol. $)
  ctcl $a class t+ $.

  $( Extend class notation with reflexive-transitive closure. $)
  crtcl $a class t* $.

  ${
    $d x z $.
    $( Transitive closure of a relation.  This is the smallest superset which
       has the transitive property.  (Contributed by FL, 27-Jun-2011.) $)
    df-trcl $a |- t+ = ( x e. _V |->
      |^| { z | ( x C_ z /\ ( z o. z ) C_ z ) } ) $.

    $( Reflexive-transitive closure of a relation.  This is the smallest
       superset which is reflexive property over all elements of its domain and
       range and has the transitive property.  (Contributed by FL,
       27-Jun-2011.) $)
    df-rtrcl $a |- t* = ( x e. _V |->
      |^| { z | ( ( _I |` ( dom x u. ran x ) ) C_ z /\ x C_ z
                /\ ( z o. z ) C_ z ) } ) $.
  $}

  ${
    $d r R $.  $d r S $.
    $( Equality of relations implies equality of transitive closures.
       (Contributed by RP, 9-May-2020.) $)
    trcleq1 $p |- ( R = S -> |^| { r | ( R C_ r /\ ( r o. r ) C_ r ) }
                         = |^| { r | ( S C_ r /\ ( r o. r ) C_ r ) } ) $=
      ( cv ccom wss cleq1 ) CDZHEHFABCG $.
  $}

  ${
    $d r R $.  $d r S $.
    $( The transitive closure (as a relation) of a subclass is a subclass of
       the transitive closure.  (Contributed by RP, 3-May-2020.) $)
    trclsslem $p |- ( R C_ S
                      -> |^| { r | ( R C_ r /\ ( r o. r ) C_ r ) }
                      C_ |^| { r | ( S C_ r /\ ( r o. r ) C_ r ) } ) $=
      ( cv ccom wss clsslem ) CDZHEHFABCG $.
  $}

  $( Equality implies bijection.  (Contributed by RP, 5-May-2020.) $)
  trcleq2lem $p |- ( A = B -> ( ( R C_ A /\ ( A o. A ) C_ A ) <->
                                ( R C_ B /\ ( B o. B ) C_ B ) ) ) $=
    ( wceq wss ccom sseq2 id coeq12d sseq12d anbi12d ) ABDZCAECBEAAFZAEBBFZBEAB
    CGLMNABLABABLHZOIOJK $.

  ${
    $d x y R $.
    $( Change of bound variable in class of all transitive relations which are
       supersets of a relation.  (Contributed by RP, 5-May-2020.) $)
    cvbtrcl $p |- { x | ( R C_ x /\ ( x o. x ) C_ x ) }
              = { y | ( R C_ y /\ ( y o. y ) C_ y ) } $=
      ( cv wss ccom wa trcleq2lem cbvabv ) CADZEJJFJEGCBDZEKKFKEGABJKCHI $.
  $}

  $( Equality implies bijection.  (Contributed by RP, 9-May-2020.) $)
  trcleq12lem $p |- ( ( R = S /\ A = B )
                           -> ( ( R C_ A /\ ( A o. A ) C_ A ) <->
                                ( S C_ B /\ ( B o. B ) C_ B ) ) ) $=
    ( wceq wss ccom wa cleq1lem trcleq2lem sylan9bb ) CDECAFAAGAFZHDAFLHABEDBFB
    BGBFHLCDAIABDJK $.

  $( Existence of relation implies existence of union with Cartesian product of
     domain and range.  (Contributed by RP, 5-May-2020.) $)
  trclexlem $p |- ( R e. V -> ( R u. ( dom R X. ran R ) ) e. _V ) $=
    ( wcel cdm crn cxp cvv cun dmexg rnexg xpexg syl2anc unexg mpdan ) ABCZADZA
    EZFZGCZARHGCOPGCQGCSABIABJPQGGKLARBGMN $.

  ${
    $d a b c R $.  $d x R $.
    $( If a relation exists then the class of transitive relations which are
       supersets of that relation is not empty.  (Contributed by RP,
       28-Apr-2020.) $)
    trclublem $p |- ( R e. V -> ( R u. ( dom R X. ran R ) )
                                e. { x | ( R C_ x /\ ( x o. x ) C_ x ) } ) $=
      ( va vb vc wcel cdm crn cxp cun cvv cv wss ccom wa wbr ccnv vex brcnv cab
      trclexlem ssun1 copab wceq wrel relcnv relssdmrn ax-mp ssequn1 mpbi cnvun
      wex cnvxp df-rn dfdm4 xpeq12i eqtri uneq2i 3eqtr4i 3bitr3i anbi12i biimpi
      breqi eximi ssopab2i df-co 3sstr4i xptrrel ssun2 sstri trcleq2lem biimprd
      elabg mp2ani syl ) BCGBBHZBIZJZKZLGZVTBAMZNWBWBOWBNPZAUAGZBCUBWABVTNZVTVT
      OZVTNZWDBVSUCWFVSVSOZVTDMZEMZVTQZWJFMZVTQZPZEUMZDFUDWIWJVSQZWJWLVSQZPZEUM
      ZDFUDWFWHWOWSDFWNWREWNWRWKWPWMWQWJWIVTRZQWJWIVSRZQWKWPWJWIWTXABRZXBHZXBIZ
      JZKZXEWTXAXBXENZXFXEUEXBUFXGBUGXBUHUIXBXEUJUKWTXBXAKXFBVSULXAXEXBXAVRVQJX
      EVQVRUNVRXCVQXDBUOBUPUQURZUSURXHUTZVDWJWIVTESZDSZTWJWIVSXJXKTVAWLWJWTQWLW
      JXAQWMWQWLWJWTXAXIVDWLWJVTFSZXJTWLWJVSXLXJTVAVBVCVEVFDFEVTVTVGDFEVSVSVGVH
      WHVSVTVQVRVIVSBVJVKVKWAWDWEWGPZWCXMAVTLWBVTBVLVNVMVOVP $.
  $}

  ${
    $d s R $.
    trclubi.rel $e |- Rel R $.
    trclubi.rex $e |- R e. _V $.
    $( The Cartesian product of the domain and range of a relation is an upper
       bound for its transitive closure.  (Contributed by RP, 2-Jan-2020.)
       (Revised by RP, 28-Apr-2020.)  (Revised by AV, 26-Mar-2021.) $)
    trclubi $p |- |^| { s | ( R C_ s /\ ( s o. s ) C_ s ) }
               C_ ( dom R X. ran R ) $=
      ( cdm crn cxp cv wss ccom cab wcel cint cun wrel wceq relssdmrn ax-mp cvv
      wa ssequn1 sylib trclublem eqeltrri intss1 ) AEAFGZABHZIUGUGJUGITBKZLUHMU
      FIAUFNZUFUHAOZUIUFPZCUJAUFIUKAQAUFUAUBRASLUIUHLDBASUCRUDUFUHUER $.
  $}

  ${
    $d s R $.
    trclubiOLD.rel $e |- Rel R $.
    trclubiOLD.rex $e |- R e. V $.
    $( Obsolete version of ~ trclubi as of 26-Mar-2021.  (Contributed by RP,
       2-Jan-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    trclubiOLD $p |- |^| { s | ( R C_ s /\ ( s o. s ) C_ s ) }
               C_ ( dom R X. ran R ) $=
      ( cdm crn cxp cv wss ccom wa cab wcel cint cun wrel wceq relssdmrn ax-mp
      ssequn1 sylib trclublem eqeltrri intss1 ) AFAGHZACIZJUGUGKUGJLCMZNUHOUFJA
      UFPZUFUHAQZUIUFRZDUJAUFJUKASAUFUAUBTABNUIUHNECABUCTUDUFUHUET $.
  $}

  ${
    $d s R $.
    trclubgi.rex $e |- R e. _V $.
    $( The union with the Cartesian product of its domain and range is an upper
       bound for a set's transitive closure.  (Contributed by RP, 3-Jan-2020.)
       (Revised by RP, 28-Apr-2020.)  (Revised by AV, 26-Mar-2021.) $)
    trclubgi $p |- |^| { s | ( R C_ s /\ ( s o. s ) C_ s ) }
               C_ ( R u. ( dom R X. ran R ) ) $=
      ( cvv wcel cdm crn cxp cun cv wss ccom wa cab cint trclublem intss1 mp2b
      ) ADEAAFAGHIZABJZKTTLTKMBNZEUAOSKCBADPSUAQR $.
  $}

  ${
    $d s R $.
    trclubgiOLD.rex $e |- R e. V $.
    $( Obsolete version of ~ trclubgi as of 26-Mar-2021.  (Contributed by RP,
       3-Jan-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    trclubgiOLD $p |- |^| { s | ( R C_ s /\ ( s o. s ) C_ s ) }
               C_ ( R u. ( dom R X. ran R ) ) $=
      ( wcel cdm crn cxp cun cv wss ccom wa cab cint trclublem intss1 mp2b ) AB
      EAAFAGHIZACJZKTTLTKMCNZEUAOSKDCABPSUAQR $.
  $}

  ${
    $d r R $.
    $( The Cartesian product of the domain and range of a relation is an upper
       bound for its transitive closure.  (Contributed by RP, 17-May-2020.) $)
    trclub $p |- ( ( R e. V /\ Rel R ) ->
                   |^| { r | ( R C_ r /\ ( r o. r ) C_ r ) } C_
                   ( dom R X. ran R ) ) $=
      ( wcel wrel wa cdm crn cxp wss ccom cab cint wceq relssdmrn ssequn1 sylib
      cv cun trclublem eleq1 biimpa syl2anr intss1 syl ) ABDZAEZFAGAHIZACRZJUIU
      IKUIJFCLZDZUJMUHJUGAUHSZUHNZULUJDZUKUFUGAUHJUMAOAUHPQCABTUMUNUKULUHUJUAUB
      UCUHUJUDUE $.
  $}

  ${
    $d r R $.
    $( The union with the Cartesian product of its domain and range is an upper
       bound for a set's transitive closure (as a relation).  (Contributed by
       RP, 17-May-2020.) $)
    trclubg $p |- ( R e. V -> |^| { r | ( R C_ r /\ ( r o. r ) C_ r ) } C_
                              ( R u. ( dom R X. ran R ) ) ) $=
      ( wcel cdm crn cxp cun cv wss ccom wa cab cint trclublem intss1 syl ) ABD
      AAEAFGHZACIZJSSKSJLCMZDTNRJCABORTPQ $.
  $}

  ${
    $d r x R $.
    $( The transitive closure of a relation.  (Contributed by RP,
       28-Apr-2020.) $)
    trclfv $p |- ( R e. V -> ( t+ ` R )
                           = |^| { x | ( R C_ x /\ ( x o. x ) C_ x ) } ) $=
      ( vr wcel cvv cv wss ccom wa cab cint ctcl cfv wceq elex cdm crn cxp cun
      trclexlem trclubg ssexd jccir trcleq1 df-trcl fvmptg syl ) BCEZBFEZBAGZHU
      KUKIUKHZJAKLZFEZJBMNUMOUIUJUNBCPUJUMBBQBRSTFBFUABFAUBUCUDDBDGZUKHULJAKLUM
      FFMUOBAUEDAUFUGUH $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Two ways to express a binary relation which is the intersection of a
       class.  (Contributed by RP, 4-Apr-2020.) $)
    brintclab $p |- ( A |^| { x | ph } B
                      <-> A. x ( ph -> <. A , B >. e. x ) ) $=
      ( cab cint wbr cop wcel cv wi wal df-br opex elintab bitri ) CDABEFZGCDHZ
      QIARBJIKBLCDQMABRCDNOP $.
  $}

  ${
    $d r A $.  $d r B $.  $d r R $.
    $( Two ways of expressing the transitive closure of a binary relation.
       (Contributed by RP, 9-May-2020.) $)
    brtrclfv $p |- ( R e. V -> ( A ( t+ ` R ) B
                                 <-> A. r ( ( R C_ r /\ ( r o. r ) C_ r )
                                            -> A r B ) ) ) $=
      ( wcel ctcl cfv wbr cv wss ccom wa cab cint wi wal trclfv breqd cop df-br
      brintclab imbi2i albii bitr4i syl6bb ) CDFZABCGHZIABCEJZKUIUILUIKMZENOZIZ
      UJABUIIZPZEQZUGUHUKABECDRSULUJABTUIFZPZEQUOUJEABUBUNUQEUMUPUJABUIUAUCUDUE
      UF $.
  $}

  ${
    $d r A $.  $d r B $.  $d r R $.
    $( Two ways of expressing the transitive closure of the converse of a
       binary relation.  (Contributed by RP, 9-May-2020.) $)
    brcnvtrclfv $p |- ( ( R e. U /\ A e. V /\ B e. W )
                     -> ( A `' ( t+ ` R ) B
                          <-> A. r ( ( R C_ r /\ ( r o. r ) C_ r )
                                     -> B r A ) ) ) $=
      ( wcel w3a ctcl cfv ccnv wbr cv wss ccom wa wi wal wb brtrclfv 3ad2ant1
      brcnvg 3adant1 bitrd ) CDHZAEHZBFHZIABCJKZLMZBAUIMZCGNZOULULPULOQBAULMRGS
      ZUGUHUJUKTUFABEFUIUCUDUFUGUKUMTUHBACDGUAUBUE $.
  $}

  ${
    $d r A $.  $d r B $.  $d r R $.
    $( Two ways of expressing the transitive closure of the converse of a
       binary relation.  (Contributed by RP, 10-May-2020.) $)
    brtrclfvcnv $p |- ( R e. V
                     -> ( A ( t+ ` `' R ) B
                          <-> A. r ( ( `' R C_ r /\ ( r o. r ) C_ r )
                                     -> A r B ) ) ) $=
      ( wcel ccnv cvv ctcl cfv wbr cv wss ccom wa wi wal wb cnvexg brtrclfv syl
      ) CDFCGZHFABUBIJKUBELZMUCUCNUCMOABUCKPEQRCDSABUBHETUA $.
  $}

  ${
    $d r A $.  $d r B $.  $d r R $.
    $( Two ways of expressing the transitive closure of the converse of the
       converse of a binary relation.  (Contributed by RP, 10-May-2020.) $)
    brcnvtrclfvcnv $p |- ( ( R e. U /\ A e. V /\ B e. W )
                     -> ( A `' ( t+ ` `' R ) B
                          <-> A. r ( ( `' R C_ r /\ ( r o. r ) C_ r )
                                     -> B r A ) ) ) $=
      ( wcel ccnv cvv ctcl cfv wbr cv wss ccom wa wi wal wb brcnvtrclfv syl3an1
      cnvexg ) CDHCIZJHAEHBFHABUDKLIMUDGNZOUEUEPUEOQBAUEMRGSTCDUCABUDJEFGUAUB
      $.
  $}

  ${
    $d r R $.  $d r S $.
    $( The transitive closure (as a relation) of a subclass is a subclass of
       the transitive closure.  (Contributed by RP, 3-May-2020.) $)
    trclfvss $p |- ( ( R e. V /\ S e. W /\ R C_ S )
                     -> ( t+ ` R ) C_ ( t+ ` S ) ) $=
      ( vr wcel wss w3a cv ccom wa cab cint ctcl trclsslem 3ad2ant3 wceq trclfv
      cfv 3ad2ant1 3ad2ant2 3sstr4d ) ACFZBDFZABGZHAEIZGUFUFJUFGZKELMZBUFGUGKEL
      MZANSZBNSZUEUCUHUIGUDABEOPUCUDUJUHQUEEACRTUDUCUKUIQUEEBDRUAUB $.
  $}

  ${
    $d r R $.
    $( The transitive closure of a relation has an upper bound.  (Contributed
       by RP, 28-Apr-2020.) $)
    trclfvub $p |- ( R e. V -> ( t+ ` R ) C_ ( R u. ( dom R X. ran R ) ) ) $=
      ( vr wcel ctcl cfv cv wss ccom wa cab cint cdm crn cxp cun trclfv trclubg
      eqsstrd ) ABDAEFACGZHTTITHJCKLAAMANOPCABQABCRS $.
  $}

  ${
    $d r R $.
    $( The transitive closure of a relation has a lower bound.  (Contributed by
       RP, 28-Apr-2020.) $)
    trclfvlb $p |- ( R e. V -> R C_ ( t+ ` R ) ) $=
      ( vr wcel cv wss ccom wa cab cint ctcl cfv ssmin trclfv syl5sseqr ) ABDAC
      EZFPPGPFZHCIJAAKLQCAMCABNO $.
  $}

  ${
    $d a b c r R $.  $d a b c V $.
    $( The transitive closure of a relation is a transitive relation.
       (Contributed by RP, 29-Apr-2020.) $)
    trclfvcotr $p |- ( R e. V -> ( ( t+ ` R ) o. ( t+ ` R ) ) C_
                               ( t+ ` R ) ) $=
      ( va vb vc vr wcel cv ctcl cfv wbr wa wi wal ccom cotr sp ax-gen brtrclfv
      wss 19.21bbi sylbi adantl alimi anbi12d albii 19.26 bitri syl6bbr imbi12d
      a2i jcab albidv 2albidv mpbiri sylibr ) ABGZCHZDHZAIJZKZUSEHZUTKZLZURVBUT
      KZMZENZDNCNZUTUTOUTTUQVHAFHZTZVIVIOVITZLZURUSVIKZUSVBVIKZLZMZFNZVLURVBVIK
      ZMZFNZMZENZDNZCNWCCWBDWAEVPVSFVLVOVRVKVOVRMZVJVKWDENDNZCNZWDCDEVIPWFWDDEW
      ECQUAUBUCUKUDRRRUQVGWBCDUQVFWAEUQVDVQVEVTUQVDVLVMMZFNZVLVNMZFNZLZVQUQVAWH
      VCWJURUSABFSUSVBABFSUEVQWGWILZFNWKVPWLFVLVMVNULUFWGWIFUGUHUIURVBABFSUJUMU
      NUOCDEUTPUP $.
  $}

  $( The transitive closure of a relation has a lower bound.  (Contributed by
     RP, 8-May-2020.) $)
  trclfvlb2 $p |- ( R e. V -> ( R o. R ) C_ ( t+ ` R ) ) $=
    ( wcel ctcl cfv trclfvcotr trclfvlb trrelssd ) ABCADEAAABFABGZIH $.

  $( The transitive closure of a relation has a lower bound.  (Contributed by
     RP, 8-May-2020.) $)
  trclfvlb3 $p |- ( R e. V -> ( R u. ( R o. R ) ) C_ ( t+ ` R ) ) $=
    ( wcel ccom ctcl cfv trclfvlb trclfvlb2 unssd ) ABCAAADAEFABGABHI $.

  ${
    $d r R $.
    $( The transitive closure of a transitive relation.  (Contributed by RP,
       28-Apr-2020.) $)
    cotrtrclfv $p |- ( ( R e. V /\ ( R o. R ) C_ R ) -> ( t+ ` R ) = R ) $=
      ( vr wcel ccom wss wa ctcl cfv cv cab cint wceq trclfv adantr simpr jctil
      ssid wb trcleq2lem elabg mpbird intss1 syl eqsstrd trclfvlb eqssd ) ABDZA
      AEAFZGZAHIZAUJUKACJZFULULEULFGZCKZLZAUHUKUOMUICABNOUJAUNDZUOAFUJUPAAFZUIG
      ZUJUIUQUHUIPARQUHUPURSUIUMURCABULAATUAOUBAUNUCUDUEUHAUKFUIABUFOUG $.
  $}

  $( The transitive closure of a relation is idempotent.  (Contributed by RP,
     29-Apr-2020.) $)
  trclidm $p |- ( R e. V -> ( t+ ` ( t+ ` R ) ) = ( t+ ` R ) ) $=
    ( wcel ctcl cfv cvv ccom wss wceq fvex trclfvcotr cotrtrclfv sylancr ) ABCA
    DEZFCNNGNHNDENIADJABKNFLM $.

  ${
    $d r x R $.  $d s x S $.
    $( Transitive closure of a union of relations.  (Contributed by RP,
       5-May-2020.) $)
    trclun $p |- ( ( R e. V /\ S e. W )
                    -> ( t+ ` ( R u. S ) )
                       = ( t+ ` ( ( t+ ` R ) u. ( t+ ` S ) ) ) ) $=
      ( vx vr vs wcel wa cun cv wss cab cint ctcl cfv syl cvv wceq trclfv simpl
      ccom unss sylbir vex trcleq2lem elab biimpri sylan intss1 simpr unssd jca
      ssmin unss12 mp2an sstr mpan anim1i impbii abbii inteqi unexg fveq2d fvex
      uneq12d syl6eqelr syl2an eqtrd 3eqtr4a ) ACHZBDHZIZABJZEKZLZVOVOUBVOLZIZE
      MZNZAFKZLWAWAUBWALZIZFMZNZBGKZLWFWFUBWFLZIZGMZNZJZVOLZVQIZEMZNZVNOPZAOPZB
      OPZJZOPZVSWNVRWMEVRWMVRWLVQVRWEWJVOVRVOWDHZWEVOLVPAVOLZVQXAVPXBBVOLZIZXBA
      BVOUCZXBXCUAUDXAXBVQIZWCXFFVOEUEZWAVOAUFUGUHUIVOWDUJQVRVOWIHZWJVOLVPXCVQX
      HVPXDXCXEXBXCUKUDXHXCVQIZWHXIGVOXGWFVOBUFUGUHUIVOWIUJQULVPVQUKUMWLVPVQVNW
      KLZWLVPAWELBWJLXJWBFAUNWGGBUNAWEBWJUOUPVNWKVOUQURUSUTVAVBVMVNRHWPVTSABCDV
      CEVNRTQVMWTWKOPZWOVMWSWKOVMWQWEWRWJVMVKWQWESVKVLUAFACTZQVMVLWRWJSVKVLUKGB
      DTZQVFVDVMWKRHZXKWOSVKWERHWJRHXNVLVKWEWQRXLAOVEVGVLWJWRRXMBOVEVGWEWJRRVCV
      HEWKRTQVIVJ $.
  $}

  $( The value of the transitive closure of a relation is a superset or (for
     proper classes) the empty set.  (Contributed by RP, 8-May-2020.) $)
  trclfvg $p |- ( R C_ ( t+ ` R ) \/ ( t+ ` R ) = (/) ) $=
    ( cvv wcel wn wo ctcl cfv wss c0 wceq exmid trclfvlb fvprc orim12i ax-mp )
    ABCZPDZEAAFGZHZRIJZEPKPSQTABLAFMNO $.

  $( The value of the transitive closure of a relation is always a transitive
     relation.  (Contributed by RP, 8-May-2020.) $)
  trclfvcotrg $p |- ( ( t+ ` R ) o. ( t+ ` R ) ) C_ ( t+ ` R ) $=
    ( cvv wcel ctcl cfv ccom wss trclfvcotr wn c0 wceq fvprc 0trrel a1i coeq12d
    id 3sstr4d syl pm2.61i ) ABCZADEZUAFZUAGZABHTIUAJKZUCADLUDJJFZJUBUAUEJGUDMN
    UDUAJUAJUDPZUFOUFQRS $.

  $( The transitive closure of a relation is a relation.  (Contributed by RP,
     9-May-2020.) $)
  reltrclfv $p |- ( ( R e. V /\ Rel R ) -> Rel ( t+ ` R ) ) $=
    ( wcel wrel ctcl cfv cvv cxp wss cdm crn cun trclfvub adantr wceq relssdmrn
    wa simpr ssequn1 biimpi 3syl sseqtrd xpss syl6ss df-rel sylibr ) ABCZADZQZA
    EFZGGHZIUJDUIUJAJZAKZHZUKUIUJAUNLZUNUGUJUOIUHABMNUIUHAUNIZUOUNOZUGUHRAPUPUQ
    AUNSTUAUBULUMUCUDUJUEUF $.

  $( The domain of the transitive closure is equal to the domain of the
     relation.  (Contributed by RP, 9-May-2020.) $)
  dmtrclfv $p |- ( R e. V -> dom ( t+ ` R ) = dom R ) $=
    ( wcel ctcl cfv cdm crn cxp cun wss trclfvub dmss dmun wceq c0 dm0rn0 xpeq1
    syl 0xp syl6eq dmeqd eqcom biimpi 3eqtrd sylbir dmxp pm2.61ine uneq2i unidm
    dm0 a1i 3eqtri syl6sseq trclfvlb eqssd ) ABCZADEZFZAFZUPURAUSAGZHZIZFZUSUPU
    QVBJURVCJABKUQVBLRVCUSVAFZIUSUSIUSAVAMVDUSUSVDUSNZUTOUTONUSONZVEAPVFVDOFZOU
    SVFVAOVFVAOUTHOUSOUTQUTSTUAVGONVFUJUKVFOUSNUSOUBUCUDUEUSUTUFUGUHUSUIULUMUPA
    UQJUSURJABUNAUQLRUO $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Exponentiation of relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ^r $. $( Exponentiation of a relation. $)

  $( Extend class notation to include relation exponentiation. $)
  crelexp $a class ^r $.

  ${
    $d n r x y z $.
    $( Definition of repeated composition of a relation with itself, aka
       relation exponentiation.  (Contributed by Drahflow, 12-Nov-2015.)
       (Revised by RP, 22-May-2020.) $)
    df-relexp $a |- ^r = ( r e. _V , n e. NN0 |->
                              if ( n = 0 ,
                                   ( _I |` ( dom r u. ran r ) ) ,
                                   ( seq 1 (
                                     ( x e. _V , y e. _V |-> ( x o. r ) ) ,
                                     ( z e. _V |-> r ) ) ` n )
                              ) ) $.
  $}

  ${
    $d n r x y z $.  $d n r V $.  $d n r R $.
    $( A relation composed zero times is the (restricted) identity.
       (Contributed by RP, 22-May-2020.) $)
    relexp0g $p |- ( R e. V -> ( R ^r 0 ) = ( _I |` ( dom R u. ran R ) ) ) $=
      ( vr vn vx vy vz wcel cc0 crelexp co cid cdm crn cun cres wceq cvv cn0 cv
      wi ccom cmpt2 cmpt c1 cseq cfv cif eqidd simprr iftrued dmeq rneq uneq12d
      wa reseq2d ad2antrl eqtrd elex 0nn0 a1i dmexg rnexg unexg syl2anc resiexg
      syl ovmpt2d wb df-relexp oveq eqeq1d imbi2d ax-mp mpbir ) ABHZAIJKZLAMZAN
      ZOZPZQZUAZVPAICDRSDTZIQZLCTZMZWFNZOZPZWDEFRRETWFUBUCGRWFUDUEUFUGZUHZUCZKZ
      WAQZUAZVPCDAIRSWLWAWMRVPWMUIVPWFAQZWEUOUOZWLWJWAWRWEWJWKVPWQWEUJUKWQWJWAQ
      VPWEWQWIVTLWQWGVRWHVSWFAULWFAUMUNUPUQURABUSISHVPUTVAVPVTRHZWARHVPVRRHVSRH
      WSABVBABVCVRVSRRVDVEVTRVFVGVHJWMQZWCWPVIEFGDCVJWTWBWOVPWTVQWNWAAIJWMVKVLV
      MVNVO $.
  $}

  $( A relation composed zero times is the (restricted) identity.  (Contributed
     by RP, 22-May-2020.) $)
  relexp0 $p |- ( ( R e. V /\ Rel R ) ->
                       ( R ^r 0 ) = ( _I |` U. U. R ) ) $=
    ( wcel wrel cc0 crelexp co cid cdm crn cun cres cuni relexp0g relfld eqcomd
    reseq2d sylan9eq ) ABCADZAEFGHAIAJKZLZHAMMZLZABNSUCUASUBTHAOQPR $.

  ${
    relexp0d.1 $e |- ( ph -> Rel R ) $.
    relexp0d.2 $e |- ( ph -> R e. _V ) $.
    $( A relation composed zero times is the (restricted) identity.
       (Contributed by Drahflow, 12-Nov-2015.)  (Revised by RP,
       30-May-2020.) $)
    relexp0d $p |- ( ph -> ( R ^r 0 ) = ( _I |` U. U. R ) ) $=
      ( cvv wcel wrel cc0 crelexp co cid cuni cres wceq relexp0 syl2anc ) ABEFB
      GBHIJKBLLMNDCBEOP $.
  $}

  ${
    $d a b z N $.  $d n r N $.  $d a b x y z R $.  $d n r R $.  $d a b V $.
    $d n r V $.  $d n r x y z $.
    $( A reduction for relation exponentiation to the right.  (Contributed by
       RP, 22-May-2020.) $)
    relexpsucnnr $p |- ( ( R e. V /\ N e. NN ) ->
                          ( R ^r ( N + 1 ) ) = ( ( R ^r N ) o. R ) ) $=
      ( vr vn vx vy vz va vb wcel wa c1 co ccom wceq cvv cv cc0 cfv cn caddc wi
      crelexp cn0 cid cdm crn cun cres cmpt2 cmpt cseq cif eqidd simprr uneq12d
      dmeq rneq reseq2d mpt2eq3dv id mpteq2dv seqeq123d fveq1d ifeq12d ad2antrl
      coeq2 a1i eqeq1 anbi2d fveq2 ifbieq2d eqeq1d 3imtr4d mpcom elex peano2nnd
      adantr simpr nnnn0d dmexg rnexg unexg syl2anc resiexg fvexd ifcld ovmpt2d
      syl wn nnne0 neneqd iffalsed elnnuz biimpi adantl seqp1 ovex simpl fvmptg
      cuz eqid sylancr oveq2d nfcv coeq1d cbvmpt2 oveq mp1i simprl fvex fveq12d
      weq coexg ifbieq12d eqtr2d 3eqtrd wb df-relexp eqeq12d imbi2d ax-mp mpbir
      wne ) ACKZBUAKZLZABMUBNZUDNZABUDNZAOZPZUCZYHAYIDEQUEERZSPZUFDRZUGZYQUHZUI
      ZUJZYOFGQQFRZYQOZUKZHQYQULZMUMZTZUNZUKZNZABUUINZAOZPZUCZYHUUJYISPZUFAUGZA
      UHZUIZUJZYIFGQQUUBAOZUKZHQAULZMUMZTZUNZUVDUULYHDEAYIQUEUUHUVEUUIQYHUUIUOZ
      YOYIPZYHYQAPZUVGLZLZUUHUVEPZYHUVHUVGUPUVGYHUVHYIYIPZLZLZUUOUUAYIUUFTZUNZU
      VEPZUVJUVKUVNUVQUCUVGUVHUVQYHUVLUVHUUOUUAUUSUVOUVDUVHYTUURUFUVHYRUUPYSUUQ
      YQAURYQAUSUQUTZUVHYIUUFUVCUVHUUDUVAUUEUVBMMUVHMUOUVHFGQQUUCUUTYQAUUBVHVAU
      VHHQYQAUVHVBVCVDZVEVFVGVIUVGUVIUVMYHUVGUVGUVLUVHYOYIYIVJVKVKUVGUUHUVPUVEU
      VGYPUUOUUGUVOUUAYOYISVJYOYIUUFVLVMVNVOVPYFAQKYGACVQVSZYHYIYHBYFYGVTZVRZWA
      YHUUOUUSUVDQYFUUSQKZYGYFUURQKZUWCYFUUPQKUUQQKUWDACWBACWCUUPUUQQQWDWEUURQW
      FWJVSZYHYIUVCWGWHWIYHUUOUUSUVDYHYIUAKZUUOWKUWBUWFYISYIWLWMWJWNYHUVDBUVCTZ
      YIUVBTZUVANZUWGAUVANZUULYHBMXBTKZUVDUWIPYGUWKYFYGUWKBWOWPWQUVAUVBMBWRWJYH
      UWHAUWGUVAYHYIQKYFUWHAPBMUBWSYFYGWTZHYIAAQCUVBHRYIPAUOUVBXCXAXDXEYHUWJUWG
      AIJQQIRZAOZUKZNZUWGAOZUULUVAUWOPUWJUWPPYHFGIJQQUUTUWNIUUTXFJUUTXFFUWNXFGU
      WNXFFIXNZGJXNZLUUBUWMAUWRUWSWTXGXHUWGAUVAUWOXIXJYHIJUWGAQQUWNUWQUWOQYHUWO
      UOYHUWMUWGPZJRAPZLLUWMUWGAYHUWTUXAXKXGYHBUVCWGZUVTYHUWGQKYFUWQQKBUVCXLUWL
      UWGAQCXOXDWIYHUWGUUKAYHUUKBSPZUUSUWGUNZUWGYHDEABQUEUUHUXDUUIQUVFUVHYOBPZL
      ZUUHUXDPYHUXFYPUXCUUAUUGUUSUWGUXFYOBSUVHUXEVTZVNUVHUUAUUSPUXEUVRVSUXFYOBU
      UFUVCUVHUUFUVCPUXEUVSVSUXGXMXPWQUVTYHBUWAWAYHUXCUUSUWGQUWEUXBWHWIYHUXCUUS
      UWGYHBSYGBSYEYFBWLWQWMWNXQXGXRXRXRUDUUIPZYNUUNXSFGHEDXTUXHYMUUMYHUXHYJUUJ
      YLUULAYIUDUUIXIUXHYKUUKAABUDUUIXIXGYAYBYCYD $.
  $}

  ${
    $d n r x y z $.  $d n r z R $.  $d n r z V $.
    $( A relation composed once is itself.  (Contributed by RP,
       22-May-2020.) $)
    relexp1g $p |- ( R e. V -> ( R ^r 1 ) = R ) $=
      ( vr vn vx vy vz wcel c1 cvv cn0 cv cc0 wceq cmpt2 cmpt cseq cfv a1i wa
      cid cdm crn cun cres ccom cif crelexp df-relexp wne simprr ax-1ne0 mpbiri
      neeq1 syl neneqd iffalsed simprl mpteq2dv seqeq3d fveq12d eqidd 1ex simpl
      1z fvmptd seq1i 3eqtrd elex 1nn0 ovmpt2d ) ABHZCDAIJKDLZMNZUACLZUBVOUCUDU
      EZVMEFJJELVOUFOZGJVOPZIQZRZUGZAUHJUHCDJKWAONVLEFGDCUISVLVOANZVMINZTZTZWAV
      TIVQGJAPZIQZRAWEVNVPVTWEVMMWEWCVMMUJZVLWBWCUKZWCWHIMUJULVMIMUNUMUOUPUQWEV
      MIVSWGWEVRWFVQIWEGJVOAVLWBWCURUSUTWIVAWEAVQWFIVEWEGIAAJWFBWEWFVBWEGLINTAV
      BIJHWEVCSVLWDVDVFVGVHABVIZIKHVLVJSWJVK $.
  $}

  $( Identity relation is equal to relational exponentiation to the first
     power.  (Contributed by RP, 9-Jun-2020.) $)
  dfid5 $p |- _I = ( x e. _V |-> ( x ^r 1 ) ) $=
    ( cid cvv cv cmpt c1 crelexp co dfid4 relexp1g mpteq2ia eqtr4i ) BACADZEACM
    FGHZEAIACNMMCJKL $.

  ${
    $d n x $.
    $( Identity relation expressed as indexed union of relational powers.
       (Contributed by RP, 9-Jun-2020.) $)
    dfid6 $p |- _I = ( x e. _V |-> U_ n e. { 1 } ( x ^r n ) ) $=
      ( cid cvv cv cmpt c1 csn crelexp co ciun dfid4 wcel oveq2 iunxsn relexp1g
      1ex syl5eq mpteq2ia eqtr4i ) CADAEZFADBGHUABEZIJZKZFALADUDUAUADMUDUAGIJZU
      ABGUCUEQUBGUAINOUADPRST $.
  $}

  $( A reduction for relation exponentiation to the right.  (Contributed by RP,
     23-May-2020.) $)
  relexpsucr $p |- ( ( R e. V /\ Rel R /\ N e. NN0 ) ->
                          ( R ^r ( N + 1 ) ) = ( ( R ^r N ) o. R ) ) $=
    ( wcel c1 caddc co crelexp ccom wceq cc0 w3a simp3 simp1 syl2anc 3expib syl
    cuni oveq2d eqtrd cn0 wrel cn wo wa wi elnn0 relexpsucnnr cid simp2 relcoi2
    cres eqcomd oveq1d 0p1e1 syl6eq relexp1g relexp0 coeq1d 3eqtr4d jaoi 3impib
    sylbi 3com13 ) BUADZAUBZACDZABEFGZHGZABHGZAIZJZVEVFVGVLVEBUCDZBKJZUDVFVGUEV
    LUFZBUGVMVOVNVMVFVGVLVMVFVGLVGVMVLVMVFVGMVMVFVGNABCUHOPVNVFVGVLVNVFVGLZAUIA
    RRULZAIZVIVKVPVFAVRJVNVFVGUJZVFVRAAUKUMQVPVIAEHGZAVPVHEAHVPVHKEFGEVPBKEFVNV
    FVGNZUNUOUPSVPVGVTAJVNVFVGMZACUQQTVPVJVQAVPVJAKHGZVQVPBKAHWASVPVGVFWCVQJWBV
    SACUROTUSUTPVAVCVBVD $.

  ${
    relexpsucrd.1 $e |- ( ph -> Rel R ) $.
    relexpsucrd.2 $e |- ( ph -> R e. _V ) $.
    $( A reduction for relation exponentiation to the right.  (Contributed by
       Drahflow, 12-Nov-2015.)  (Revised by RP, 30-May-2020.) $)
    relexpsucrd $p |- ( ph -> ( N e. NN0 -> ( R ^r ( N + 1 ) ) =
                                           ( ( R ^r N ) o. R ) ) ) $=
      ( cn0 wcel c1 caddc co crelexp ccom wceq cvv wrel adantr simpr relexpsucr
      wa syl3anc ex ) ACFGZBCHIJKJBCKJBLMZAUBSBNGZBOZUBUCAUDUBEPAUEUBDPAUBQBCNR
      TUA $.
  $}

  ${
    $( relexp1d.1 $e |- ( ph -> Rel R ) $. $)
    relexp1d.2 $e |- ( ph -> R e. _V ) $.
    $( A relation composed once is itself.  (Contributed by Drahflow,
       12-Nov-2015.)  (Revised by RP, 30-May-2020.) $)
    relexp1d $p |- ( ph -> ( R ^r 1 ) = R ) $=
      ( cvv wcel c1 crelexp co wceq relexp1g syl ) ABDEBFGHBICBDJK $.
  $}

  ${
    $d n N $.  $d n m R $.  $d n m V $.
    $( A reduction for relation exponentiation to the left.  (Contributed by
       RP, 23-May-2020.) $)
    relexpsucnnl $p |- ( ( R e. V /\ N e. NN ) ->
                          ( R ^r ( N + 1 ) ) = ( R o. ( R ^r N ) ) ) $=
      ( vn vm cn wcel c1 caddc co crelexp ccom wceq oveq1 oveq2d coeq2d eqeq12d
      wi oveq2 imbi2d cv weq relexp1g coeq1d 1nn relexpsucnnr mpan2 coeq1 coass
      3eqtr4d wa syl6eq adantl simpl peano2nn anim2i adantr ex expcom a2d nnind
      3syl impcom ) BFGACGZABHIJZKJZAABKJZLZMZVDADUAZHIJZKJZAAVJKJZLZMZRVDAHHIJ
      ZKJZAAHKJZLZMZRVDAEUAZHIJZKJZAAWAKJZLZMZRVDAWBHIJZKJZAWCLZMZRVDVIRDEBVJHM
      ZVOVTVDWKVLVQVNVSWKVKVPAKVJHHINOWKVMVRAVJHAKSPQTDEUBZVOWFVDWLVLWCVNWEWLVK
      WBAKVJWAHINOWLVMWDAVJWAAKSPQTVJWBMZVOWJVDWMVLWHVNWIWMVKWGAKVJWBHINOWMVMWC
      AVJWBAKSPQTVJBMZVOVIVDWNVLVFVNVHWNVKVEAKVJBHINOWNVMVGAVJBAKSPQTVDVRALZAAL
      VQVSVDVRAAACUCZUDVDHFGVQWOMUEAHCUFUGVDVRAAWPPUJWAFGZVDWFWJVDWQWFWJRVDWQUK
      ZWFWJWRWFUKZWCALZAWDALZLZWHWIWFWTXBMWRWFWTWEALXBWCWEAUHAWDAUIULUMWSWRVDWB
      FGZUKWHWTMWRWFUNWQXCVDWAUOUPAWBCUFVBWSWCXAAWRWCXAMWFAWACUFUQPUJURUSUTVAVC
      $.
  $}

  $( A reduction for relation exponentiation to the left.  (Contributed by RP,
     23-May-2020.) $)
  relexpsucl $p |- ( ( R e. V /\ Rel R /\ N e. NN0 ) ->
                          ( R ^r ( N + 1 ) ) = ( R o. ( R ^r N ) ) ) $=
    ( wcel c1 caddc co crelexp ccom wceq cc0 w3a simp3 simp1 syl2anc 3expib syl
    cuni oveq2d eqtrd cn0 wrel cn wo wa wi elnn0 relexpsucnnl cid simp2 relcoi1
    cres relexp0 coeq2d oveq1d 0p1e1 syl6eq relexp1g 3eqtr4rd jaoi sylbi 3impib
    3com13 ) BUADZAUBZACDZABEFGZHGZAABHGZIZJZVDVEVFVKVDBUCDZBKJZUDVEVFUEVKUFZBU
    GVLVNVMVLVEVFVKVLVEVFLVFVLVKVLVEVFMVLVEVFNABCUHOPVMVEVFVKVMVEVFLZAUIARRULZI
    ZAVJVHVOVEVQAJVMVEVFUJZAUKQVOVIVPAVOVIAKHGZVPVOBKAHVMVEVFNZSVOVFVEVSVPJVMVE
    VFMZVRACUMOTUNVOVHAEHGZAVOVGEAHVOVGKEFGEVOBKEFVTUOUPUQSVOVFWBAJWAACURQTUSPU
    TVAVBVC $.

  ${
    relexpsucld.1 $e |- ( ph -> Rel R ) $.
    relexpsucld.2 $e |- ( ph -> R e. _V ) $.
    $( A reduction for relation exponentiation to the left.  (Contributed by
       Drahflow, 12-Nov-2015.)  (Revised by RP, 30-May-2020.) $)
    relexpsucld $p |- ( ph -> ( N e. NN0 -> ( R ^r ( N + 1 ) ) =
                                           ( R o. ( R ^r N ) ) ) ) $=
      ( cn0 wcel c1 caddc co crelexp ccom wceq cvv wrel adantr simpr relexpsucl
      wa syl3anc ex ) ACFGZBCHIJKJBBCKJLMZAUBSBNGZBOZUBUCAUDUBEPAUEUBDPAUBQBCNR
      TUA $.
  $}

  ${
    $d n N $.  $d n m R $.  $d n m V $.
    $( Commutation of converse and relation exponentiation.  (Contributed by
       RP, 23-May-2020.) $)
    relexpcnv $p |- ( ( N e. NN0 /\ R e. V )
                         -> `' ( R ^r N ) = ( `' R ^r N ) ) $=
      ( vn vm wcel crelexp co ccnv wceq cc0 wi oveq2 cnveqd eqeq12d imbi2d ccom
      c1 cvv cid cn0 cn wo elnn0 caddc weq relexp1g cnvexg syl eqtr4d w3a cnvco
      simp3 coeq2d syl5eq simp2 simp1 relexpsucnnr syl2anc relexpsucnnl 3eqtr4d
      cv 3exp a2d nnind wa cdm crn cun cnvresid uncom df-rn dfdm4 uneq12i eqtri
      cres reseq2i relexp0g sylan9eq adantr simpr 3syl eqtrd 3eqtr4a jaoi sylbi
      ex imp ) BUAFZACFZABGHZIZAIZBGHZJZWIBUBFZBKJZUCWJWOLZBUDWPWRWQWJADVBZGHZI
      ZWMWSGHZJZLWJARGHZIZWMRGHZJZLWJAEVBZGHZIZWMXHGHZJZLWJAXHRUEHZGHZIZWMXMGHZ
      JZLWRDEBWSRJZXCXGWJXRXAXEXBXFXRWTXDWSRAGMNWSRWMGMOPDEUFZXCXLWJXSXAXJXBXKX
      SWTXIWSXHAGMNWSXHWMGMOPWSXMJZXCXQWJXTXAXOXBXPXTWTXNWSXMAGMNWSXMWMGMOPWSBJ
      ZXCWOWJYAXAWLXBWNYAWTWKWSBAGMNWSBWMGMOPWJXEWMXFWJXDAACUGNWJWMSFZXFWMJACUH
      ZWMSUGUIUJXHUBFZWJXLXQYDWJXLXQYDWJXLUKZXIAQZIZWMXKQZXOXPYEYGWMXJQYHXIAULY
      EXJXKWMYDWJXLUMUNUOYEXNYFYEWJYDXNYFJYDWJXLUPZYDWJXLUQZAXHCURUSNYEYBYDXPYH
      JYEWJYBYIYCUIYJWMXHSUTUSVAVCVDVEWQWJWOWQWJVFZTAVGZAVHZVIZVPZIZTWMVGZWMVHZ
      VIZVPZWLWNYPYOYTYNVJYNYSTYNYMYLVIYSYLYMVKYMYQYLYRAVLAVMVNVOVQVOYKWKYOWQWJ
      WKAKGHYOBKAGMACVRVSNYKWNWMKGHZYTWQWNUUAJWJBKWMGMVTYKWJYBUUAYTJWQWJWAYCWMS
      VRWBWCWDWGWEWFWH $.
  $}

  ${
    $( relexpcnvd.1 $e |- ( ph -> Rel R ) $. $)
    relexpcnvd.2 $e |- ( ph -> R e. _V ) $.
    $( Commutation of converse and relation exponentiation.  (Contributed by
       Drahflow, 12-Nov-2015.)  (Revised by RP, 30-May-2020.) $)
    relexpcnvd $p |- ( ph -> ( N e. NN0 -> `' ( R ^r N ) = ( `' R ^r N ) ) ) $=
      ( cvv wcel cn0 crelexp co ccnv wceq relexpcnv ex syl5com ) ABEFZCGFZBCHIJ
      BJCHIKZDPOQBCELMN $.
  $}

  $( The exponentiation of a class to zero is a relation.  (Contributed by RP,
     23-May-2020.) $)
  relexp0rel $p |- ( R e. V -> Rel ( R ^r 0 ) ) $=
    ( wcel cc0 crelexp wrel cid cdm crn cun cres relres relexp0g releqd mpbiri
    co ) ABCZADEPZFGAHAIJZKZFGSLQRTABMNO $.

  ${
    $d n N $.  $d n m R $.  $d n m V $.
    $( The exponentiation of a class is a relation except when the exponent is
       one and the class is not a relation.  (Contributed by RP,
       23-May-2020.) $)
    relexprelg $p |- ( ( N e. NN0 /\ R e. V /\ ( N = 1 -> Rel R ) )
                       -> Rel ( R ^r N ) ) $=
      ( vn vm wcel c1 wceq wrel wi crelexp co cc0 wa eqeq1 imbi1d anbi2d releqd
      oveq2 imbi12d cn0 cn wo elnn0 caddc weq eqid pm2.27 ax-mp adantl relexp1g
      cv adantr mpbird ccom relco relexpsucnnr ancoms mpbiri expimpd relexp0rel
      a1d nnind simpl oveq2d jaoi sylbi 3impib ) BUAFZACFZBGHZAIZJZABKLZIZVIBUB
      FZBMHZUCVJVMNZVOJZBUDVPVSVQVJDULZGHZVLJZNZAVTKLZIZJVJGGHZVLJZNZAGKLZIZJVJ
      EULZGHZVLJZNZAWKKLZIZJZVJWKGUELZGHZVLJZNZAWRKLZIZJZVSDEBWAWCWHWEWJWAWBWGV
      JWAWAWFVLVTGGOPQWAWDWIVTGAKSRTDEUFZWCWNWEWPXEWBWMVJXEWAWLVLVTWKGOPQXEWDWO
      VTWKAKSRTVTWRHZWCXAWEXCXFWBWTVJXFWAWSVLVTWRGOPQXFWDXBVTWRAKSRTVTBHZWCVRWE
      VOXGWBVMVJXGWAVKVLVTBGOPQXGWDVNVTBAKSRTWHWJVLWGVLVJWFWGVLJGUGWFVLUHUIUJWH
      WIAVJWIAHWGACUKUMRUNWKUBFZXDWQXHVJWTXCXHVJNZXCWTXIXCWOAUOZIWOAUPXIXBXJVJX
      HXBXJHAWKCUQURRUSVBUTVBVCVQVJVMVOVQVJNZVOVMXKVOAMKLZIZVJXMVQACVAUJXKVNXLX
      KBMAKVQVJVDVERUNVBUTVFVGVH $.
  $}

  $( The exponentiation of a relation is a relation.  (Contributed by RP,
     23-May-2020.) $)
  relexprel $p |- ( ( N e. NN0 /\ R e. V /\ Rel R ) -> Rel ( R ^r N ) ) $=
    ( wrel cn0 wcel c1 wceq wi crelexp co ax-1 relexprelg syl3an3 ) ADZBEFACFBG
    HZOIABJKDOPLABCMN $.

  ${
    relexpreld.1 $e |- ( ph -> Rel R ) $.
    relexpreld.2 $e |- ( ph -> R e. _V ) $.
    $( The exponentiation of a relation is a relation.  (Contributed by
       Drahflow, 12-Nov-2015.)  (Revised by RP, 30-May-2020.) $)
    relexpreld $p |- ( ph -> ( N e. NN0 -> Rel ( R ^r N ) ) ) $=
      ( cvv wcel wrel cn0 crelexp co wi relexprel 3coml 3exp sylc ) ABFGZBHZCIG
      ZBCJKHZLEDQRSTSQRTBCFMNOP $.
  $}

  ${
    $d n N $.  $d n m R $.  $d n m V $.
    $( The domain of an exponentiation of a relation a subset of the relation's
       field.  (Contributed by RP, 23-May-2020.) $)
    relexpnndm $p |- ( ( N e. NN /\ R e. V ) -> dom ( R ^r N ) C_ dom R ) $=
      ( vn vm cn wcel crelexp co cdm wss cv wi c1 caddc wceq oveq2 dmeqd sseq1d
      imbi2d weq relexp1g eqimss syl wa relexpsucnnr ancoms dmcoss syl6eqss a1d
      ccom ex a2d nnind imp ) BFGACGZABHIZJZAJZKZUPADLZHIZJZUSKZMUPANHIZJZUSKZM
      UPAELZHIZJZUSKZMUPAVHNOIZHIZJZUSKZMUPUTMDEBVANPZVDVGUPVPVCVFUSVPVBVEVANAH
      QRSTDEUAZVDVKUPVQVCVJUSVQVBVIVAVHAHQRSTVAVLPZVDVOUPVRVCVNUSVRVBVMVAVLAHQR
      STVABPZVDUTUPVSVCURUSVSVBUQVABAHQRSTUPVFUSPVGUPVEAACUBRVFUSUCUDVHFGZUPVKV
      OVTUPVKVOMVTUPUEZVOVKWAVNVIAUKZJUSWAVMWBUPVTVMWBPAVHCUFUGRVIAUHUIUJULUMUN
      UO $.
  $}

  $( The domain of an exponentiation of a relation a subset of the relation's
     field.  (Contributed by RP, 23-May-2020.) $)
  relexpdmg $p |- ( ( N e. NN0 /\ R e. V )
                    -> dom ( R ^r N ) C_ ( dom R u. ran R ) ) $=
    ( cn0 wcel crelexp co cdm crn cun wss cn cc0 wceq wo wi elnn0 wa relexpnndm
    ex ssun1 syl6ss cres simpl oveq2d relexp0g adantl eqtrd dmeqd dmresi syl6eq
    cid eqimss syl jaoi sylbi imp ) BDEZACEZABFGZHZAHZAIZJZKZURBLEZBMNZOUSVEPZB
    QVFVHVGVFUSVEVFUSRVAVBVDABCSVBVCUAUBTVGUSVEVGUSRZVAVDNVEVIVAULVDUCZHVDVIUTV
    JVIUTAMFGZVJVIBMAFVGUSUDUEUSVKVJNVGACUFUGUHUIVDUJUKVAVDUMUNTUOUPUQ $.

  $( The domain of an exponentiation of a relation a subset of the relation's
     field.  (Contributed by RP, 23-May-2020.) $)
  relexpdm $p |- ( ( N e. NN0 /\ R e. V ) -> dom ( R ^r N ) C_ U. U. R ) $=
    ( cn0 wcel wa crelexp co cdm crn cun cuni relexpdmg dmrnssfld syl6ss ) BDEA
    CEFABGHIAIAJKALLABCMANO $.

  ${
    $( relexpdmd.1 $e |- ( ph -> Rel R ) $. $)
    relexpdmd.2 $e |- ( ph -> R e. _V ) $.
    $( The domain of an exponentiation of a relation a subset of the relation's
       field.  (Contributed by Drahflow, 12-Nov-2015.)  (Revised by RP,
       30-May-2020.) $)
    relexpdmd $p |- ( ph -> ( N e. NN0 -> dom ( R ^r N ) C_ U. U. R ) ) $=
      ( cvv wcel cn0 crelexp co cdm cuni wss relexpdm ex syl5com ) ABEFZCGFZBCH
      IJBKKLZDQPRBCEMNO $.
  $}

  $( The range of an exponentiation of a relation a subset of the relation's
     field.  (Contributed by RP, 23-May-2020.) $)
  relexpnnrn $p |- ( ( N e. NN /\ R e. V ) -> ran ( R ^r N ) C_ ran R ) $=
    ( cn wcel wa ccnv crelexp co cdm crn cvv wss cnvexg relexpnndm sylan2 df-rn
    cn0 wceq nnnn0 relexpcnv sylan dmeqd syl5eq a1i 3sstr4d ) BDEZACEZFZAGZBHIZ
    JZUJJZABHIZKZAKZUHUGUJLEULUMMACNUJBLOPUIUOUNGZJULUNQUIUQUKUGBREUHUQUKSBTABC
    UAUBUCUDUPUMSUIAQUEUF $.

  $( The range of an exponentiation of a relation a subset of the relation's
     field.  (Contributed by RP, 23-May-2020.) $)
  relexprng $p |- ( ( N e. NN0 /\ R e. V )
                    -> ran ( R ^r N ) C_ ( dom R u. ran R ) ) $=
    ( cn0 wcel crelexp co crn cdm cun wss cn cc0 wceq wo wi elnn0 wa relexpnnrn
    ex ssun2 syl6ss cres simpl oveq2d relexp0g adantl eqtrd rneqd rnresi syl6eq
    cid eqimss syl jaoi sylbi imp ) BDEZACEZABFGZHZAIZAHZJZKZURBLEZBMNZOUSVEPZB
    QVFVHVGVFUSVEVFUSRVAVCVDABCSVCVBUAUBTVGUSVEVGUSRZVAVDNVEVIVAULVDUCZHVDVIUTV
    JVIUTAMFGZVJVIBMAFVGUSUDUEUSVKVJNVGACUFUGUHUIVDUJUKVAVDUMUNTUOUPUQ $.

  $( The range of an exponentiation of a relation a subset of the relation's
     field.  (Contributed by RP, 23-May-2020.) $)
  relexprn $p |- ( ( N e. NN0 /\ R e. V ) -> ran ( R ^r N ) C_ U. U. R ) $=
    ( cn0 wcel wa crelexp co crn cdm cun cuni relexprng dmrnssfld syl6ss ) BDEA
    CEFABGHIAJAIKALLABCMANO $.

  ${
    $( relexprnd.1 $e |- ( ph -> Rel R ) $. $)
    relexprnd.2 $e |- ( ph -> R e. _V ) $.
    $( The range of an exponentiation of a relation a subset of the relation's
       field.  (Contributed by Drahflow, 12-Nov-2015.)  (Revised by RP,
       30-May-2020.) $)
    relexprnd $p |- ( ph -> ( N e. NN0 -> ran ( R ^r N ) C_ U. U. R ) ) $=
      ( cvv wcel cn0 crelexp co crn cuni wss relexprn ex syl5com ) ABEFZCGFZBCH
      IJBKKLZDQPRBCEMNO $.
  $}

  $( The field of an exponentiation of a relation a subset of the relation's
     field.  (Contributed by RP, 23-May-2020.) $)
  relexpfld $p |- ( ( N e. NN0 /\ R e. V )
                       -> U. U. ( R ^r N ) C_ U. U. R ) $=
    ( c1 wceq wcel wa crelexp co cuni wss wi simpl oveq2d eqimss syl ex cdm crn
    cc0 cn0 relexp1g ad2antll eqtrd unieqd wn w3a cun simp2 simp3 simp1 pm2.21d
    wrel 3jca relexprelg relfld 3syl cn wo relexpnndm relexpnnrn unss12 syl2anc
    elnn0 cid cres relexp0g adantl dmeqd dmresi syl6eq rneqd rnresi unssd sylbi
    jaoi sylc eqsstrd dmrnssfld syl6ss 3expib pm2.61i ) BDEZBUAFZACFZGZABHIZJZJ
    ZAJZJZKZLWCWFWLWCWFGZWIWKEWLWMWHWJWMWGAWMWGADHIZAWMBDAHWCWFMNWEWNAEWCWDACUB
    UCUDUEUEWIWKOPQWCUFZWDWEWLWOWDWEUGZWIARZASZUHZWKWPWIWGRZWGSZUHZWSWPWDWEWCAU
    MZLZUGWGUMWIXBEWPWDWEXDWOWDWEUIZWOWDWEUJZWPWCXCWOWDWEUKULUNABCUOWGUPUQWPWDW
    EXBWSKZXEXFWDBURFZBTEZUSWEXGLZBVDXHXJXIXHWEXGXHWEGWTWQKXAWRKXGABCUTABCVAWTW
    QXAWRVBVCQXIWEXGXIWEGZWTXAWSXKWTWSEWTWSKXKWTVEWSVFZRWSXKWGXLXKWGATHIZXLXKBT
    AHXIWEMNWEXMXLEXIACVGVHUDZVIWSVJVKWTWSOPXKXAWSEXAWSKXKXAXLSWSXKWGXLXNVLWSVM
    VKXAWSOPVNQVPVOVQVRAVSVTWAWB $.

  ${
    $( relexpfldd.1 $e |- ( ph -> Rel R ) $. $)
    relexpfldd.2 $e |- ( ph -> R e. _V ) $.
    $( The field of an exponentiation of a relation a subset of the relation's
       field.  (Contributed by Drahflow, 12-Nov-2015.)  (Revised by RP,
       30-May-2020.) $)
    relexpfldd $p |- ( ph -> ( N e. NN0 -> U. U. ( R ^r N ) C_ U. U. R ) ) $=
      ( cvv wcel cn0 crelexp co cuni wss relexpfld ex syl5com ) ABEFZCGFZBCHIJJ
      BJJKZDPOQBCELMN $.
  $}

  ${
    $d n N $.  $d k n M $.  $d k n R $.  $d k n V $.
    $( Relation composition becomes addition under exponentiation.
       (Contributed by RP, 23-May-2020.) $)
    relexpaddnn $p |- ( ( N e. NN /\ M e. NN /\ R e. V ) ->
                      ( ( R ^r N ) o. ( R ^r M ) ) = ( R ^r ( N + M ) ) ) $=
      ( vn cn wcel crelexp co ccom caddc wceq wi c1 oveq2 coeq1d oveq2d eqeq12d
      oveq1 imbi2d vk wa cv weq relexp1g adantl relexpsucnnl ancoms simpl nncnd
      1cnd addcomd 3eqtr2d w3a simp2r simp1 syl2anc coass syl6eq simp3 3ad2ant2
      coeq2d cc add32d nnaddcld eqtr2d 3eqtrd 3exp a2d nnind 3impib ) CFGBFGZAD
      GZACHIZABHIZJZACBKIZHIZLZVLVMUBZAEUCZHIZVOJZAWABKIZHIZLZMVTANHIZVOJZANBKI
      ZHIZLZMVTAUAUCZHIZVOJZAWLBKIZHIZLZMVTAWLNKIZHIZVOJZAWRBKIZHIZLZMVTVSMEUAC
      WANLZWFWKVTXDWCWHWEWJXDWBWGVOWANAHOPXDWDWIAHWANBKSQRTEUAUDZWFWQVTXEWCWNWE
      WPXEWBWMVOWAWLAHOPXEWDWOAHWAWLBKSQRTWAWRLZWFXCVTXFWCWTWEXBXFWBWSVOWAWRAHO
      PXFWDXAAHWAWRBKSQRTWACLZWFVSVTXGWCVPWEVRXGWBVNVOWACAHOPXGWDVQAHWACBKSQRTV
      TWHAVOJZABNKIZHIZWJVTWGAVOVMWGALVLADUEUFPVMVLXJXHLABDUGUHVTXIWIAHVTBNVTBV
      LVMUIZUJZVTUKULQUMWLFGZVTWQXCXMVTWQXCXMVTWQUNZWTAWNJZAWPJZXBXNWTAWMJZVOJX
      OXNWSXQVOXNVMXMWSXQLXMVLVMWQUOZXMVTWQUPZAWLDUGUQPAWMVOURUSXNWNWPAXMVTWQUT
      VBXNXBAWONKIZHIZXPXNXAXTAHXNWLNBXNWLXSUJXNUKVTXMBVCGWQXLVAVDQXNVMWOFGYAXP
      LXRXNWLBXSVTXMVLWQXKVAVEAWODUGUQVFVGVHVIVJVK $.
  $}

  $( The exponentiation of a class to an integer not smaller than 2 is a
     relation.  (Contributed by RP, 23-May-2020.) $)
  relexpuzrel $p |- ( ( N e. ( ZZ>= ` 2 ) /\ R e. V ) -> Rel ( R ^r N ) ) $=
    ( c2 cuz cfv wcel wa cn0 c1 wceq wrel wi crelexp co eluzge2nn0 adantr simpr
    wne cn eluz2b3 simprbi neneqd pm2.21d relexprelg syl3anc ) BDEFGZACGZHZBIGZ
    UHBJKZALZMABNOLUGUJUHBPQUGUHRUIUKULUIBJUGBJSZUHUGBTGUMBUAUBQUCUDABCUEUF $.

  $( Relation composition becomes addition under exponentiation except when the
     exponents total to one and the class isn't a relation.  (Contributed by
     RP, 30-May-2020.) $)
  relexpaddg $p |- ( ( N e. NN0 /\
                     ( M e. NN0 /\ R e. V /\ ( ( N + M ) = 1 -> Rel R ) ) ) ->
                      ( ( R ^r N ) o. ( R ^r M ) ) = ( R ^r ( N + M ) ) ) $=
    ( wcel caddc co c1 wceq wrel wi crelexp ccom cc0 com12 oveq2d eqtrd syl2anc
    syl syl5eq cn0 w3a cn wo elnn0 relexpaddnn a1d 3exp c2 cuz cfv elnn1uz2 cid
    wa cdm crn cun coires1 wss simpll simplr oveq12d 1p0e1 syl6eq simprr simprl
    cres mpd relexp1g releqd mpbird syl6eqel relexpnndm ssun1 relssres relexp0g
    1nn syl6ss coeq2d cc ax-1cn addid1d 3eqtr4d exp43 simp1 relexpuzrel eluz2nn
    simp3 simp2 eluzelcn jaoi sylbi 3impd ccnv relcnv mp1i cnvco 1nn0 relexpcnv
    pm3.2i cvv cnvexg 3eqtrd 0nn0 coeq12d nn0addcld 0p1e1 cnveqb sylancr oveq1d
    wb relco addid2d nnnn0 3syl nn0cnd addcomd eqeltrrd relexp0rel dmeqd dmresi
    uzaddcl eqimss 00id imp ) CUAEZBUAEZADEZCBFGZHIZAJZKZUBZACLGZABLGZMZAYILGZI
    ZYFCUCEZCNIZUDYMYRKZCUEYSUUAYTYSYGYHYLYRYGYSYHYLYRKZKZYGBUCEZBNIZUDZYSUUCKZ
    BUEZUUDUUGUUEYSUUDUUCYSUUDYHUUBYSUUDYHUBYRYLABCDUFUGUHOYSUUEUUCYSCHIZCUIUJU
    KZEZUDUUEUUCKZCULUUIUULUUKUUIUUEYHYLYRUUIUUEUNZYHYLUNZUNZYNUMAUOZAUPZUQZVGZ
    MZYNYPYQUUOUUTYNUURVGZYNYNUURURZUUOYNJZYNUOZUURUSZUVAYNIZUUOUVCYKUUOYJYKUUO
    YIHNFGHUUOCHBNFUUIUUEUUNUTZUUIUUEUUNVAZVBVCVDUUMYHYLVEVHUUOYNAUUOYNAHLGZAUU
    OCHALUVGPUUOYHUVIAIZUUMYHYLVFZADVIZSQVJVKUUOUVDUUPUURUUOYSYHUVDUUPUSZUUOCHU
    CUVGVQVLUVKACDVMZRUUPUUQVNZVRYNUURVOZRTUUOYOUUSYNUUOYOANLGZUUSUUOBNALUVHPUU
    OYHUVQUUSIZUVKADVPZSQVSUUOYICALUUOYICNFGZCUUOBNCFUVHPUUOCUUOCHVTUVGWAVLWBQP
    WCWDUUKUUEYHUUBUUKUUEYHUBZYRYLUWAUUTYNYPYQUWAUUTUVAYNUVBUWAUVCUVEUVFUWAUUKY
    HUVCUUKUUEYHWEZUUKUUEYHWHZACDWFRUWAUVDUUPUURUWAYSYHUVMUWAUUKYSUWBCWGSUWCUVN
    RUVOVRUVPRTUWAYOUUSYNUWAYOUVQUUSUWABNALUUKUUEYHWIZPUWAYHUVRUWCUVSSQVSUWAYIC
    ALUWAYIUVTCUWABNCFUWDPUWACUWAUUKCVTEUWBUICWJSWBQPWCUGUHWKWLOWKWLOWMYTYGYHYL
    YRYGYTUUCYGUUFYTUUCKZUUHUUDUWEUUEUUDBHIZBUUJEZUDUWEBULUWFUWEUWGYTUWFUUCYTUW
    FYHYLYRYTUWFUNZUUNUNZYRYPWNZYQWNZIZUWIAWNZUMUWMUOZUWMUPZUQZVGZMZUWMUWJUWKUW
    IUWRUWMUWPVGZUWMUWMUWPURUWMJZUWNUWPUSZUNUWSUWMIUWIUWTUXAAWOUWNUWOVNZWTUWMUW
    PVOWPTUWIUWJYOWNZYNWNZMZUWRYNYOWQZUWIUXCUWMUXDUWQUWIUXCUWMBLGZUWMHLGZUWMUWI
    YGYHUXCUXGIZUWIBHUAYTUWFUUNVAZWRVLZUWHYHYLVFZABDWSZRUWIBHUWMLUXJPUWIUWMXAEZ
    UXHUWMIUWIYHUXNUXLADXBZSZUWMXAVISZXCUWIUXDUWMCLGZUWMNLGZUWQUWIYFYHUXDUXRIZU
    WICNUAYTUWFUUNUTZXDVLZUXLACDWSZRUWICNUWMLUYAPUWIUXNUXSUWQIZUXPUWMXAVPZSXCXE
    TUWIUWKUWMYILGZUXHUWMUWIYIUAEZYHUWKUYFIZUWICBUYBUXKXFUXLAYIDWSZRUWIYIHUWMLU
    WIYINHFGHUWICNBHFUYAUXJVBXGVDZPUXQXCWCUWIYPJZYQJZYRUWLXKZYNYOXLZUWIUYLYKUWI
    YJYKUYJUWHYHYLVEVHUWIYQAUWIYQUVIAUWIYIHALUYJPUWIYHUVJUXLUVLSQVJVKYPYQXHZXIV
    KWDOYTUWGUUCYTUWGYHUUBYTUWGYHUBZYRYLUYPYRUWLUYPUXGUXRMZUYFUWJUWKUYPUXGUWQMZ
    UXGUYQUYFUYPUYRUXGUWPVGZUXGUXGUWPURUYPUXGJZUXGUOZUWPUSUYSUXGIUYPUWGUXNUYTYT
    UWGYHWIZUYPYHUXNYTUWGYHWHZUXOSZUWMBXAWFRUYPVUAUWNUWPUYPUUDUXNVUAUWNUSUYPUWG
    UUDVUBBWGZSVUDUWMBXAVMRUXBVRUXGUWPVORTUYPUXRUWQUXGUYPUXRUXSUWQUYPCNUWMLYTUW
    GYHWEZPUYPUXNUYDVUDUYESQVSUYPYIBUWMLUYPYINBFGBUYPCNBFVUFXJUYPBUYPUWGBVTEVUB
    UIBWJSZXMQPWCUYPUWJUXEUYQUXFUYPUXCUXGUXDUXRUYPYGYHUXIUYPUWGUUDYGVUBVUEBXNXO
    ZVUCUXMRUYPYFYHUXTUYPCNUAVUFXDVLZVUCUYCRXETUYPUYGYHUYHUYPCBVUIVUHXFVUCUYIRW
    CUYPUYKUYLUYMUYNUYPYIUUJEYHUYLUYPBCFGZYIUUJUYPBCVUGUYPCVUIXPXQUYPUWGYFVUJUU
    JEVUBVUICUIBYBRXRVUCAYIDWFRUYOXIVKUGUHOWKWLYTUUEUUCYTUUEYHUUBYTUUEYHUBZYRYL
    VUKUVQUUSMZUVQYPYQVUKVULUVQUURVGZUVQUVQUURURVUKUVQJZUVQUOZUURUSZVUMUVQIVUKY
    HVUNYTUUEYHWHZADXSSVUKVUOUURIVUPVUKVUOUUSUOUURVUKUVQUUSVUKYHUVRVUQUVSSZXTUU
    RYAVDVUOUURYCSUVQUURVORTVUKYNUVQYOUUSVUKCNALYTUUEYHWEZPVUKYOUVQUUSVUKBNALYT
    UUEYHWIZPVURQXEVUKYINALVUKYINNFGNVUKCNBNFVUSVUTVBYDVDPWCUGUHOWKWLOWMWKWLYE
    $.

  ${
    relexpaddd.1 $e |- ( ph -> Rel R ) $.
    relexpaddd.2 $e |- ( ph -> R e. _V ) $.
    $( Relation composition becomes addition under exponentiation.
       (Contributed by Drahflow, 12-Nov-2015.)  (Revised by RP,
       30-May-2020.) $)
    relexpaddd $p |- ( ph -> ( ( N e. NN0 /\ M e. NN0 ) ->
                      ( ( R ^r N ) o. ( R ^r M ) ) = ( R ^r ( N + M ) ) ) ) $=
      ( cvv wcel caddc co c1 wceq wrel wi wa cn0 crelexp ccom a1d jca syl5com
      relexpaddg 3exp2 imp4b ) ABGHZDCIJZKLZBMZNZODPHZCPHZOBDQJBCQJRBUFQJLZAUEU
      IFAUHUGESTUJUKUEUIULUJUKUEUIULBCDGUBUCUDUA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Reflexive-transitive closure as an indexed union
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c t*rec $.
  $( Extend class notation with recursively defined reflexive, transitive
     closure. $)
  crtrcl $a class t*rec $.

  ${
    $d n r $.
    $( The reflexive, transitive closure of a relation constructed as the union
       of all finite exponentiations.  (Contributed by Drahflow,
       12-Nov-2015.) $)
    df-rtrclrec $a |- t*rec = ( r e. _V |-> U_ n e. NN0 ( r ^r n ) ) $.
  $}

  ${
    rtrclreclem.1 $e |- ( ph -> Rel R ) $.
    rtrclreclem.2 $e |- ( ph -> R e. _V ) $.

    ${
      $d R r n $.  $d A n $.  $d B n $.
      $( If two elements are connected by a reflexive, transitive closure, then
         they are connected via ` n ` instances the relation, for some ` n ` .
         (Contributed by Drahflow, 12-Nov-2015.) $)
      dfrtrclrec2 $p |- ( ph -> ( A ( t*rec ` R ) B <->
                                  E. n e. NN0 A ( R ^r n ) B ) ) $=
        ( vr crtrcl cfv wbr cv crelexp co cn0 wrex wb cvv wceq wcel nn0ex iunex
        wi ciun cmpt ovex oveq1 iuneq2d eqid fvmptg sylancl cop eliun a1i df-br
        breq rexbii 3bitr4g mpancom df-rtrclrec fveq1 breqd bibi1d imbi2d ax-mp
        sylan9bb mpbir ) ABCDIJZKZBCDELZMNZKZEOPZQZUCZABCDHREOHLZVJMNZUDZUEZJZK
        ZVMQZUCZVTEOVKUDZSZAWBADRTWDRTWEGEOVKUADVJMUFUBHDVRWDRRVSVPDSEOVQVKVPDV
        JMUGUHVSUIUJUKWEWABCWDKZAVMBCVTWDUPABCULZWDTZWGVKTZEOPZWFVMWHWJQAEWGOVK
        UMUNBCWDUOVLWIEOBCVKUOUQURVFUSIVSSZVOWCQEHUTWKVNWBAWKVIWAVMWKVHVTBCDIVS
        VAVBVCVDVEVG $.
    $}

    ${
      $d R r n $.
      $( The reflexive, transitive closure is indeed reflexive.  (Contributed
         by Drahflow, 12-Nov-2015.)  (Revised by RP, 30-May-2020.) $)
      rtrclreclem1 $p |- ( ph -> ( _I |` U. U. R ) C_ ( t*rec ` R ) ) $=
        ( vr vn cuni crtrcl cfv wss wi cvv cn0 cv crelexp co ciun cc0 wcel wceq
        cres cmpt wrex 0nn0 ssid relexp0d syl5sseqr oveq2 sseq2d rspcev sylancr
        cid ssiun syl nn0ex ovex iunex oveq1 iuneq2d fvmptg sylancl sseqtr4d wb
        eqid df-rtrclrec fveq1 imbi2d ax-mp mpbir ) AULBGGUAZBHIZJZKZAVJBELFMEN
        ZFNZOPZQZUBZIZJZKZAVJFMBVOOPZQZVSAVJWBJZFMUCZVJWCJARMSVJBROPZJZWEUDAVJV
        JWFVJUEABCDUFUGWDWGFRMVORTWBWFVJVORBOUHUIUJUKFMWBVJUMUNABLSWCLSVSWCTDFM
        WBUOBVOOUPUQEBVQWCLLVRVNBTFMVPWBVNBVOOURUSVRVDUTVAVBHVRTZVMWAVCFEVEWHVL
        VTAWHVKVSVJBHVRVFUIVGVHVI $.
    $}
  $}

  ${
    rtrclreclem.ex $e |- ( ph -> R e. _V ) $.

    ${
      $d R r n $.  $d ph r $.
      $( The reflexive, transitive closure is indeed a closure.  (Contributed
         by Drahflow, 12-Nov-2015.)  (Revised by RP, 30-May-2020.) $)
      rtrclreclem2 $p |- ( ph -> R C_ ( t*rec ` R ) ) $=
        ( vr vn crtrcl cfv wss wi cvv cn0 cv crelexp co ciun wcel sseqtr4d wceq
        c1 a1i cmpt wrex 1nn0 ssid relexp1d oveq2 sseq2d rspcev ssiun syl eqidd
        sylancr oveq1 iuneq2d adantl nn0ex ovex iunex fvmptd df-rtrclrec imbi2d
        wb fveq1 ax-mp mpbir ) ABBFGZHZIZABBDJEKDLZELZMNZOZUAZGZHZIZABEKBVJMNZO
        ZVNABVQHZEKUBZBVRHASKPBBSMNZHZVTUCABBWABBHABUDTABCUEQVSWBESKVJSRVQWABVJ
        SBMUFUGUHULEKVQBUIUJADBVLVRJVMJAVMUKVIBRZVLVRRAWCEKVKVQVIBVJMUMUNUOCVRJ
        PAEKVQUPBVJMUQURTUSQFVMRZVHVPVBEDUTWDVGVOAWDVFVNBBFVMVCUGVAVDVE $.
    $}
  $}

  ${
    rtrclreclem.rel $e |- ( ph -> Rel R ) $.
    rtrclreclem.rex $e |- ( ph -> R e. _V ) $.

    ${
      $d R d e g $.  $d R f e g n m h $.  $d R n e g m i $.  $d ph d e g $.
      $d ph f e g n m $.
      $( The reflexive, transitive closure is indeed transitive.  (Contributed
         by Drahflow, 12-Nov-2015.)  (Revised by RP, 30-May-2020.) $)
      rtrclreclem3 $p |- ( ph -> ( ( t*rec ` R ) o. ( t*rec ` R ) ) C_
                                      ( t*rec ` R ) ) $=
        ( ve vf vg cv wbr wa wceq wcel wi crelexp cn0 syl adantl expcom anassrs
        co vd vn vm vi crtrcl cfv ccom wex copab df-co cop elopab anbi1d simprr
        vh eqeq1 simprl wrex simpl wb dfrtrclrec2 mpbid simprrl caddc nn0addcld
        nn0cnd addcomd eleq1 wrel relexpaddd mp2and oveq2 eqeq2d syl5ibr sylbid
        cvv mpcom eqcomd vex breq2 breq1 anbi12d spcev syl2anc brco sylibr breq
        breqd rspcev syldan mpancom syl5bbr mpbird impcom rexlimiv exlimdv sylc
        df-br anabsi5 exlimdvv syl5bi eleq2 imbi1d ax-mp ssrdv ) AUABUEUFZXFUGZ
        XFXGEHZFHZXFIZXIGHZXFIZJZFUHZEGUIZKZAUAHZXGLZXQXFLZMZMEGFXFXFUJAXTXPXQX
        OLZXSMYAXQXHXKUKZKZXNJZGUHEUHAXSXNEGXQULAYDXSEGYDAXSYCXNAXSYCXNAJZXSYCY
        CYEJYBYBKZYEJZXSYCYCYFYEXQYBYBUPUMYGXSYCYBXFLZYGAXNYHYFXNAUNYFXNAUQAXMY
        HFXMAYHXJXLAYHXHXIBUBHZNTZIZUBOURZXJXLAJZJZYHYNXJYLXJYMUSYNAXJYLUTXJXLA
        UNAXHXIBUBCDVAPVBYKYNYHMZUBOYKYIOLZYOYNYKYPJZYHXJYMYQYHYMYQJXJYHXLAYQXJ
        YHMZXJXLAYQJZJZYHXIXKBUCHZNTZIZUCOURZXJYTJZYHUUEXLUUDXJXLYSUQUUEAXLUUDU
        TXJXLAYQVCAXIXKBUCCDVAPVBUUCUUEYHMZUCOUUCUUAOLZUUFUUEUUCUUGJZYHXJYTUUHY
        HYTUUHJXJYHXLYSUUHYRYSUUHJXLYRAYQUUHXLYRMZYQUUHJAUUIYKYPUUHAUUIMAYKYPUU
        HJZJZUUIXLAUUKJZYRXJXLUULJZYHXJUUMJZYHXHXKBUDHZNTZIZUDOURZYIUUAVDTZOLZU
        UNUURUUNYIUUAUUMYPXJUULYPXLAYKYPUUHVCQQZUUMUUGXJUULUUGXLUUKUUGAUUJUUGYK
        YPUUCUUGUNQQQQZVEUUTUUNXHXKBUUSNTZIZUURUVCUUBYJUGZKZUUTUUNJZUVDUVGUVEUV
        CUUSUUAYIVDTZKZUVGUVEUVCKZUVGYIUUAUVGYIUUNYPUUTUVAQVFUVGUUAUUNUUGUUTUVB
        QVFVGUVIUVGUVHOLZUUNJZUVJUVIUUTUVKUUNUUSUVHOVHUMUVLUVJUVIUVEBUVHNTZKZUV
        LUUGYPUVNUUNUUGUVKUVBQUUNYPUVKUVAQUVLBYIUUAUVLABVIZUUNAUVKXJXLAUUKVCZQZ
        CPUVLABVPLZUVQDPVJVKUVIUVCUVMUVEUUSUVHBNVLVMVNVOVQVRUVGUVDUVFXHXKUVEIZU
        VGXHUOHZYJIZUVTXKUUBIZJZUOUHZUVSUVGYKUUCUWDUUNYKUUTUUMYKXJXLAYKUUJVCQQU
        UNUUCUUTUUMUUCXJUULUUCXLUUKUUCAYKYPUUCUUGVCQQQQUWCYKUUCJUOXIFVSUVTXIKUW
        AYKUWBUUCUVTXIXHYJVTUVTXIXKUUBWAWBWCWDUOXHXKUUBYJEVSGVSWEWFXHXKUVCUVEWG
        VNVQUUQUVDUDUUSOUUOUUSKUUPUVCXHXKUUOUUSBNVLWHWIWJWKYHXHXKXFIUUNUURXHXKX
        FWRUUNXHXKBUDUUNAUVOUVPCPUUNAUVRUVPDPVAWLWMRRRSWNSWNSWNSRRWOVQRSWNSRRWO
        VQSRWPWQXQYBXFVHVNVOWSSRWTXAXPXRYAXSXGXOXQXBXCVNXDXE $.
    $}

    ${
      $d ph s n i $.  $d ph s m i $.  $d ph r n $.  $d R r n $.  $d R i n $.
      $d R i m $.
      $( The reflexive, transitive closure of ` R ` is the smallest reflexive,
         transitive relation which contains ` R ` and the identity.
         (Contributed by Drahflow, 12-Nov-2015.)  (Revised by RP,
         30-May-2020.) $)
      rtrclreclem4 $p |- ( ph
                                 -> A. s ( ( ( _I |` ( dom R u. ran R ) ) C_ s
                                             /\ R C_ s /\ ( s o. s ) C_ s )
                                           -> ( t*rec ` R ) C_ s ) ) $=
        ( vn cv wss wi cvv cn0 crelexp co wceq adantl wcel wa sseq1d syl expcom
        vr vi vm cid cdm crn cun cres ccom w3a crtrcl cfv ciun cmpt eqidd oveq1
        iuneq2d nn0ex ovex iunex a1i fvmptd wral cc0 caddc eleq1 anbi1d imbi12d
        c1 oveq2 cuni simprl relexp0d wrel relfld simprrr syl5ibr mpcom eqsstrd
        reseq2 simprrl jca32 mpd relexpsucrd coss2 coss1 sylan9ss sstrd mpancom
        anassrs impcom nn0ind anabsi5 ralrimiv iunss 3imp1 sseq1 wb df-rtrclrec
        sylibr imbi2d fveq1 ax-mp mpbir alrimiv ) AUDBUEBUFUGZUHZCGZHZBXHHZXHXH
        UIZXHHZUJZBUKULZXHHZIZCAXPIZAXMBUAJFKUAGZFGZLMZUMZUNZULZXHHZIZIZYCFKBXS
        LMZUMZNZAYEAUABYAYHJYBJAYBUOXRBNZYAYHNAYJFKXTYGXRBXSLUPUQOEYHJPAFKYGURB
        XSLUSUTVAVBAYEYIXMYHXHHZIXMAYKXIXJXLAYKXJXIXLAYKIZIXLXJXIQZYLAXLYMQZYKA
        YNQZYGXHHZFKVCYKYOYPFKXSKPZYOYPYQYOYPUBGZKPZYOQZBYRLMZXHHZIVDKPZYOQZBVD
        LMZXHHZIUCGZKPZYOQZBUUGLMZXHHZIZUUGVIVEMZKPZYOQZBUUMLMZXHHZIZYQYOQZYPIU
        BUCXSYRVDNZYTUUDUUBUUFUUTYSUUCYOYRVDKVFVGUUTUUAUUEXHYRVDBLVJRVHYRUUGNZY
        TUUIUUBUUKUVAYSUUHYOYRUUGKVFVGUVAUUAUUJXHYRUUGBLVJRVHYRUUMNZYTUUOUUBUUQ
        UVBYSUUNYOYRUUMKVFVGUVBUUAUUPXHYRUUMBLVJRVHYRXSNZYTUUSUUBYPUVCYSYQYOYRX
        SKVFVGUVCUUAYGXHYRXSBLVJRVHUUDUUEUDBVKVKZUHZXHUUDAUUEUVENUUCAYNVLZABDEV
        MSUVDXFNZUUDUVEXHHZUUDBVNZUVGUUDAUVIUVFDSBVOSUUDUVHUVGXIYOXIUUCAXLXJXIV
        POUVGUVEXGXHUVDXFUDVTRVQVRVSUULUUHUURUUOUULUUHQZUUQUUNYOUVJUUQYOUVJQUUN
        UUQAYNUVJUUNUUQIZYNUVJQAUVKXLYMUVJAUVKIZYMUVJQXLUVLXJXIUVJXLUVLIXLXJXIU
        VJQZQZUVLAXLUVNQZUVKUUNAUVOQZUUQUUKUUNUVPQZUUQUVQUUIUUKUVQUUHAYNUVPUUHU
        UNUVOUUHAUVNUUHXLXJXIUULUUHVPOOOZUUNAUVOVLUVQXLXJXIUUNAXLUVNWAZUVPXJUUN
        AXLXJUVMWAOZUVPXIUUNUVOXIAXLXJXIUVJWAOOWBWBUVPUULUUNUVOUULAUVNUULXLXJXI
        UULUUHWAOOOWCUUKUVQQZUUPUUJBUIZXHUWAUUHUUPUWBNUVQUUHUUKUVROUWABUUGUWAAU
        VIUUKUUNAUVOWAZDSUWAABJPUWCESWDWCUWAUWBUUJXHUIZXHUWAXJUWBUWDHUVQXJUUKUV
        TOBXHUUJWESUUKUVQUWDXKXHUUJXHXHWFUVSWGWHVSWITTTWJWKWJWKWJWKWJTTWLWMTWNF
        KYGXHWOWTTTTWPTYIYDYKXMYCYHXHWQXAVQVRUKYBNZXQYFWRFUAWSUWEXPYEAUWEXOYDXM
        UWEXNYCXHBUKYBXBRXAXAXCXDXE $.
    $}

  $}

  ${
    $d x z R $.  $d x z ph $.  $d s z R $.  $d s z ph $.
    drrtrcl2.1 $e |- ( ph -> Rel R ) $.
    drrtrcl2.2 $e |- ( ph -> R e. _V ) $.
    $( The two definitions ` t* ` and ` t*rec ` of the reflexive, transitive
       closure coincide if ` R ` is indeed a relation.  (Contributed by
       Drahflow, 12-Nov-2015.)  (Revised by RP, 30-May-2020.) $)
    dfrtrcl2 $p |- ( ph -> ( t* ` R ) = ( t*rec ` R ) ) $=
      ( vx vz vs crtcl cfv wceq wi cvv cid cv cres wss w3a id wcel sseq2 crtrcl
      cdm crn cun ccom cab cint cmpt eqidd dmeq uneq12d reseq2d sseq1d 3anbi12d
      rneq abbidv inteqd adantl c0 wne cuni wrel relfld syl eqcomd rtrclreclem1
      syl5ibr mpcom rtrclreclem2 rtrclreclem3 wb fvex coeq12d sseq12d 3anbi123d
      wal a1i alrimiv elabgt sylancr mpbir3and ne0i intex sylib fvmptd wral vex
      intss1 elab rtrclreclem4 19.21bi syl5bi ralrimiv ssint sylibr eqssd eqtrd
      df-rtrcl fveq1 eqeq1d imbi2d ax-mp mpbir ) ABHIZBUAIZJZKZABELMENZUBZXHUCZ
      UDZOZFNZPZXHXMPZXMXMUEZXMPZQZFUFZUGZUHZIZXEJZKZAYBMBUBZBUCZUDZOZXMPZBXMPZ
      XQQZFUFZUGZXEAEBXTYMLYALAYAUIXHBJZXTYMJAYNXSYLYNXRYKFYNXNYIXOYJXQYNXLYHXM
      YNXKYGMYNXIYEXJYFXHBUJXHBUOUKULUMYNXHBXMYNRUMUNUPUQURDAYLUSUTZYMLSAXEYLSZ
      YOAYPYHXEPZBXEPZXEXEUEZXEPZYGBVAVAZJZAYQAUUAYGABVBUUAYGJCBVCVDVEAYQUUBMUU
      AOZXEPABCDVFUUBYHUUCXEUUBYGUUAMUUBRULUMVGVHABDVIABCDVJAXELSXMXEJZYKYQYRYT
      QZVKKZFVPYPUUEVKBUAVLAUUFFUUFAUUDYIYQYJYRXQYTXMXEYHTXMXEBTUUDXPYSXMXEUUDX
      MXEXMXEUUDRZUUGVMUUGVNVOVQVRYKUUEFXELVSVTWAZYLXEWBVDYLWCWDWEAYMXEAYPYMXEP
      UUHXEYLWHVDAXEGNZPZGYLWFXEYMPAUUJGYLUUIYLSYHUUIPZBUUIPZUUIUUIUEZUUIPZQZAU
      UJYKUUOFUUIGWGXMUUIJZYIUUKYJUULXQUUNXMUUIYHTXMUUIBTUUPXPUUMXMUUIUUPXMUUIX
      MUUIUUPRZUUQVMUUQVNVOWIAUUOUUJKGABGCDWJWKWLWMGXEYLWNWOWPWQHYAJZXGYDVKEFWR
      UURXFYCAUURXDYBXEBHYAWSWTXAXBXC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Principle of transitive induction.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  If we have a statement that holds for some element, and a relation between
  elements that implies if it holds for the first element then it must hold
  for the second element, the principle of transitive induction shows the
  statement holds for any element related to the first by the
  (reflexive-)transitive closure of the relation.
$)

  ${
    $d i l x $.  $d k n x $.  $d i j l R $.  $d k x R $.  $d i j l S $.
    $d k x S $.  $d i j l et $.  $d j x ph $.  $d i j ps $.  $d k l ps $.
    $d i ch $.  $d i th $.  $d k x et $.
    relexpindlem.1 $e |- ( et -> Rel R ) $.
    relexpindlem.2 $e |- ( et -> R e. _V ) $.
    relexpindlem.3 $e |- ( et -> S e. _V ) $.
    relexpindlem.4 $e |- ( i = S -> ( ph <-> ch ) ) $.
    relexpindlem.5 $e |- ( i = x -> ( ph <-> ps ) ) $.
    relexpindlem.6 $e |- ( i = j -> ( ph <-> th ) ) $.
    relexpindlem.7 $e |- ( et -> ch ) $.
    relexpindlem.8 $e |- ( et -> ( j R x -> ( th -> ps ) ) ) $.
    $( Principle of transitive induction, finite and non-class version.  The
       first three hypotheses give various existences, the next three give
       necessary substitutions and the last two are the basis and the induction
       hypothesis.  (Contributed by Drahflow, 12-Nov-2015.)  (Revised by RP,
       30-May-2020.) $)
    relexpindlem $p |- ( et -> ( n e. NN0 -> ( S ( R ^r n ) x -> ps ) ) ) $=
      ( wa vk vl cv cn0 wcel crelexp co wbr wi wal simpr cc0 caddc eleq1 anbi2d
      c1 wceq oveq2 imbi1d albidv imbi12d weq cid cuni cres cvv wrel jca adantr
      breqd relexp0 syl w3a wex simpl adantl simprl jccil expcom 3imp1 ad2antll
      wb bicomd anbi1 syl6bi mpcom 3jca anassrs impbid spcegv syl2anc cop df-br
      sylib vex opelres simpll sylibr mpancom breq1 eqeq2 3anbi1d exbidv anbi1d
      ideq anbi12d mpbid 3imp exlimiv ad2antrl breq syl5ibr breq2 cbvalv bicomi
      alrimiv imbi2 ccom simprrr relexpsucl syl3anc brcog sylancl simprrl id sp
      mpd ax-mp syl3c impcom exlimddv nn0ind 19.21bi ex ) EKUCZUDUEZHFUCZGYOUFU
      GZUHZBUIZEYPTZYTFYPUUAYTFUJZEYPUKEUAUCZUDUEZTZHYQGUUCUFUGZUHZBUIZFUJZUIEU
      LUDUEZTZHYQGULUFUGZUHZBUIZFUJZUIEUBUCZUDUEZTZHYQGUUPUFUGZUHZBUIZFUJZUIZEU
      UPUPUMUGZUDUEZTZHYQGUVDUFUGZUHZBUIZFUJZUIZUUAUUBUIUAUBYOUUCULUQZUUEUUKUUI
      UUOUVLUUDUUJEUUCULUDUNUOUVLUUHUUNFUVLUUGUUMBUVLUUFUULHYQUUCULGUFURVJUSUTV
      AUAUBVBZUUEUURUUIUVBUVMUUDUUQEUUCUUPUDUNUOUVMUUHUVAFUVMUUGUUTBUVMUUFUUSHY
      QUUCUUPGUFURVJUSUTVAUUCUVDUQZUUEUVFUUIUVJUVNUUDUVEEUUCUVDUDUNUOUVNUUHUVIF
      UVNUUGUVHBUVNUUFUVGHYQUUCUVDGUFURVJUSUTVAUAKVBZUUEUUAUUIUUBUVOUUDYPEUUCYO
      UDUNUOUVOUUHYTFUVOUUGYSBUVOUUFYRHYQUUCYOGUFURVJUSUTVAUUKUUNFUULVCGVDVDZVE
      ZUQZUUKUUNUUKGVFUEZGVGZTZUVREUWAUUJEUVSUVTMLVHVIGVFVKVLUUKUUNUVRHYQUVQUHZ
      BUIZIUCZHUQZAEVMZIVNZUUKUWCUUKCEUWGECUUJRVIEUUJVOHVFUEZCETZUWGEUWHCNVPUWF
      UWIIHVFUWEUWFUWIUWFUWEUWIUWEAEUWEUWIAUWEEUWEUWIUIZUIEAUWETZUWJUWEEUWKTZUW
      IUWEUWLTECUWEEUWKVQRVRVSVSVSVTVSUWIUWEUWFCEUWEUWFCEUWETZTZUWEAEUWMUWECEUW
      EUKVPCAWBZUWNAUWNACUWEACWBCEOWAWCUWOUWNAUWMTACAUWMWDAUWMVOWEWFCEUWEVQWGWH
      VSWIWJWFWKUWBUWGUUKTZBHYQUQZUWBUWPTZBHYQWLZVCUEZHUVPUEZTZUWRUWQUWRUWSUVQU
      EZUXBUWRUWBUXCUWBUWPVOHYQUVQWMWNHYQVCUVPFWOZWPWNUXBUWRTZHYQVCUHZUWQUXEUWT
      UXFUWTUXAUWRWQHYQVCWMWRHYQUXDXEWNWSUWQUWRYQYQUVQUHZIFVBZAEVMZIVNZUUKTZTBU
      WQUWBUXGUWPUXKHYQYQUVQWTUWQUWGUXJUUKUWQUWFUXIIUWQUWEUXHAEHYQUWDXAXBXCXDXF
      UXJBUXGUUKUXIBIUXHAEBAUXHEBUIEAUXHTZBEUXLTABEAUXHVQUXHABWBEAPWAXGVSVSXHXI
      XJWEWFVSWSUVRUUMUWBBHYQUULUVQXKUSXLWFXPUVCUUQUVKUVFUVCUUQTZUVJEUVEUXMUVJU
      VBHUWDUUSUHZAUIZIUJZWBZEUVEUXMTZTZUVJUIUXPUVBUXOUVAIFUXHUXNUUTABUWDYQHUUS
      XMPVAXNXOUXQUXSEUVEUURUXPUIZUUQTZTZTZUVJUXQUXRUYBEUXQUXMUYAUVEUXQUVCUXTUU
      QUVBUXPUURXQXDUOUOUYCUVIFUVGGUUSXRZUQZUYCUVIUYCUVSUVTUUQUYEEUVSUYBMVIEUVT
      UYBLVIEUVEUXTUUQXSGUUPVFXTYAUYCUVIUYEHYQUYDUHZBUIZUYFUYCBUYFUYCTZHJUCZUUS
      UHZUYIYQGUHZTZBJUYHUYFUYLJVNZUYFUYCVOUYHUWHYQVFUEUYFUYMWBEUWHUYFUYBNXJUXD
      JHYQGUUSVFVFYBYCXGUYFUYCUYLBUYCUYLTUYFBEUYBUYLUYGUYBUYLTEUYGUVEUYAUYLEUYG
      UIZUYAUYLTUVEUYNUXTUUQUYLUVEUYNUIUVEUXTUUQUYLTZTZUYNEUVEUYPTZUYGUYFEUYQTZ
      BUXPUYFUYRTZBUYSUURUXPUYSEUUQUYFEUYQVQUYQUUQUYFEUVEUXTUUQUYLYDWAVHUYQUXTU
      YFEUVEUXTUYOVQWAYGUXPUYSTZEUYKDBUXPUYFEUYQYDUYRUYKUXPUYFUYPUYKEUVEUXTUUQU
      YJUYKXSWAWAUXPUYJDUIZJUJZWBZUYTDUIUXOVUAIJIJVBUXNUYJADUWDUYIHUUSXMQVAXNVU
      CUYTVUBUYFEUVEUURVUBUIZUYOTZTZTZTZTZDVUCUXPVUBUYSVUHVUCYEVUCUYRVUGUYFVUCU
      YQVUFEVUCUYPVUEUVEVUCUXTVUDUYOUXPVUBUURXQXDUOUOUOXFVUIUYJDVUGUYJVUBUYFVUE
      UYJEUVEVUDUUQUYJUYKYDWAWAVUBVUAVUHVUAJYFVIYGWEYHSYIWSVSVSVSWHYJWHYJWHYJWH
      YKVSUYEUVHUYFBHYQUVGUYDXKUSXLWFXPWEYHWHVSVSYLWFYMYN $.
  $}

  ${
    $d i j x R $.  $d i j x S $.  $d x X $.  $d n x $.  $d j x ph $.
    $d i j ps $.  $d i ch $.  $d i th $.  $d x ta $.  $d i j x et $.
    relexpind.1 $e |- ( et -> Rel R ) $.
    relexpind.2 $e |- ( et -> R e. _V ) $.
    relexpind.3 $e |- ( et -> S e. _V ) $.
    relexpind.4 $e |- ( et -> X e. _V ) $.
    relexpind.5 $e |- ( i = S -> ( ph <-> ch ) ) $.
    relexpind.6 $e |- ( i = x -> ( ph <-> ps ) ) $.
    relexpind.7 $e |- ( i = j -> ( ph <-> th ) ) $.
    relexpind.8 $e |- ( x = X -> ( ps <-> ta ) ) $.
    relexpind.9 $e |- ( et -> ch ) $.
    relexpind.10 $e |- ( et -> ( j R x -> ( th -> ps ) ) ) $.
    $( Principle of transitive induction, finite version.  The first three
       hypotheses give various existences, the next three give necessary
       substitutions and the last two are the basis and the induction
       hypothesis.  (Contributed by Drahflow, 12-Nov-2015.)  (Revised by RP,
       30-May-2020.) $)
    relexpind $p |- ( et -> ( n e. NN0 -> ( S ( R ^r n ) X -> ta ) ) ) $=
      ( cvv wcel cv cn0 crelexp co wbr wi wceq breq2 imbi1d imbi2d imbi2 bibi1d
      wb syl5ibr mpcom relexpindlem vtoclg ) MUDUEFLUFZUGUEZIMHVCUHUIZUJZEUKZUK
      ZQFVDIGUFZVEUJZBUKZUKZUKZFVHUKZGMUDBEURZVIMULZVMVNURZUAVPVQVOFVDVJEUKZUKZ
      UKZVNURVPVSVHFVPVRVGVDVPVJVFEVIMIVEUMUNUOUOVOVMVTVNVOVLVSFVOVKVRVDBEVJUPU
      OUOUQUSUTABCDFGHIJKLNOPRSTUBUCVAVBUT $.
  $}

  ${
    $d R n x $.  $d R i j x $.  $d S n x $.  $d S i j x $.  $d X n x $.
    $d et n x $.  $d et i j x $.  $d ta n x $.  $d ps i j $.  $d th i $.
    $d ph j x $.  $d ch i $.
    rtrclind.1 $e |- ( et -> Rel R ) $.
    rtrclind.2 $e |- ( et -> R e. _V ) $.
    rtrclind.3 $e |- ( et -> S e. _V ) $.
    rtrclind.4 $e |- ( et -> X e. _V ) $.
    rtrclind.5 $e |- ( i = S -> ( ph <-> ch ) ) $.
    rtrclind.6 $e |- ( i = x -> ( ph <-> ps ) ) $.
    rtrclind.7 $e |- ( i = j -> ( ph <-> th ) ) $.
    rtrclind.8 $e |- ( x = X -> ( ps <-> ta ) ) $.
    rtrclind.9 $e |- ( et -> ch ) $.
    rtrclind.10 $e |- ( et -> ( j R x -> ( th -> ps ) ) ) $.
    $( Principle of transitive induction.  The first four hypotheses give
       various existences, the next four give necessary substitutions and the
       last two are the basis and the induction step.  (Contributed by
       Drahflow, 12-Nov-2015.) $)
    rtrclind $p |- ( et -> ( S ( t* ` R ) X -> ta ) ) $=
      ( vn crtcl cfv crtrcl wceq wbr wi dfrtrcl2 cv crelexp co wrex dfrtrclrec2
      cn0 wa biimpac wcel simprl simprrr simprrl relexpind syl3c anassrs expcom
      rexlimiv mpcom breq imbi1d syl5ibr ) HUDUEZHUFUEZUGZFILVLUHZEUIZFHMNUJFVP
      VNILVMUHZEUIVQFEILHUCUKZULUMUHZUCUPUNZVQFUQZEFVQVTFILHUCMNUOURVSWAEUIZUCU
      PVSVRUPUSZWBWAVSWCUQZEVQFWDEVQFWDUQUQFWCVSEVQFWDUTVQFVSWCVAVQFVSWCVBABCDE
      FGHIJKUCLMNOPQRSTUAUBVCVDVEVFVFVGVHVFVNVOVQEILVLVMVIVJVKVH $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Elementary real and complex functions
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The "shift" operation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c shift $.  $( Symbol for function shifter. $)

  $( Extend class notation with function shifter. $)
  cshi $a class shift $.

  ${
    $d x y z f $.
    $( Define a function shifter.  This operation offsets the value argument of
       a function (ordinarily on a subset of ` CC ` ) and produces a new
       function on ` CC ` .  See ~ shftval for its value.  (Contributed by NM,
       20-Jul-2005.) $)
    df-shft $a |- shift = ( f e. _V , x e. CC |->
                  { <. y , z >. | ( y e. CC /\ ( y - x ) f z ) } ) $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Two ways to write a shifted set ` ( B + A ) ` .  (Contributed by Mario
       Carneiro, 3-Nov-2013.) $)
    shftlem $p |- ( ( A e. CC /\ B C_ CC ) ->
          { x e. CC | ( x - A ) e. B } = { x | E. y e. B x = ( y + A ) } ) $=
      ( cc wcel wss wa cv cmin co crab cab caddc wceq wrex ancoms oveq1 sylan
      wi df-rab npcan eqcomd eqeq2d rspcev expcom syl expimpd ssel2 addcl pncan
      adantr simplr eqeltrd jca anassrs eleq1d anbi12d syl5ibrcom impbid abbidv
      eleq1 rexlimdva syl5eq ) CEFZDEGZHZAIZCJKZDFZAELVHEFZVJHZAMVHBIZCNKZOZBDP
      ZAMVJAEUAVGVLVPAVGVLVPVEVLVPTVFVEVKVJVPVEVKHZVHVICNKZOZVJVPTVQVRVHVKVEVRV
      HOVHCUBQUCVJVSVPVOVSBVIDVMVIOVNVRVHVMVICNRUDUEUFUGUHULVGVOVLBDVGVMDFZHVLV
      OVNEFZVNCJKZDFZHZVEVFVTWDVFVTHZVEWDWEVEHZWAWCWEVMEFZVEWADEVMUIZVMCUJSWFWB
      VMDWEWGVEWBVMOWHVMCUKSVFVTVEUMUNUOQUPVOVKWAVJWCVHVNEVBVOVIWBDVHVNCJRUQURU
      SVCUTVAVD $.

    $( A shift of the upper integers.  (Contributed by Mario Carneiro,
       5-Nov-2013.) $)
    shftuz $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
          { x e. CC | ( x - A ) e. ( ZZ>= ` B ) } = ( ZZ>= ` ( B + A ) ) ) $=
      ( cz wcel wa cv cmin co cuz cfv cc crab cab caddc df-rab w3a simp2 ancoms
      wi zcn 3ad2ant1 npcand eluzadd 3adant2 eqeltrrd 3expib adantr a1i eluzsub
      eluzelcn 3expia jcad impbid abbi1dv syl5eq ) BDEZCDEZFZAGZBHIZCJKEZALMUTL
      EZVBFZANCBOIZJKZVBALPUSVDAVFUSVDUTVFEZUQVDVGTURUQVCVBVGUQVCVBQZVABOIZUTVF
      VHUTBUQVCVBRUQVCBLEVBBUAUBUCUQVBVIVFEZVCVBUQVJBCVAUDSUEUFUGUHUSVGVCVBVGVC
      TUSVEUTUKUIURUQVGVBTURUQVGVBBCUTUJULSUMUNUOUP $.
  $}

  ${
    $d w x y z A $.  $d w x y z F $.  $d w x y z B $.
    shftfval.1 $e |- F e. _V $.
    $( The value of the sequence shifter operation is a function on ` CC ` .
       ` A ` is ordinarily an integer.  (Contributed by NM, 20-Jul-2005.)
       (Revised by Mario Carneiro, 3-Nov-2013.) $)
    shftfval $p |- ( A e. CC -> ( F shift A ) =
                    { <. x , y >. | ( x e. CC /\ ( x - A ) F y ) } ) $=
      ( vz vw cc wcel cv cmin co wbr wa copab cvv cshi wceq caddc wrex cdm ovex
      cab crn cxp wss vex breldm npcan eqcomd ancoms oveq1 eqeq2d syl2anr eqeq1
      rspcev rexbidv elab sylibr brelrn jca expl ssopab2dv df-xp syl6sseqr dmex
      adantl abrexex rnex xpex ssexg sylancl breq anbi2d opabbidv oveq2 df-shft
      breq1d ovmpt2g mp3an1 mpdan ) CHIZAJZHIZWCCKLZBJZDMZNZABOZPIZDCQLWIRZWBWI
      FJZGJZCSLZRZGDUAZTZFUCZDUDZUEZUFWTPIWJWBWIWCWRIZWFWSIZNZABOWTWBWHXCABWBWD
      WGXCWBWDNZWGNZXAXBXEWCWNRZGWPTZXAWGWEWPIWCWECSLZRZXGXDWEWFDWCCKUBZBUGZUHW
      DWBXIWDWBNXHWCWCCUIUJUKXFXIGWEWPWMWERWNXHWCWMWECSULUMUPUNWQXGFWCAUGWLWCRW
      OXFGWPWLWCWNUOUQURUSWGXBXDWEWFDXJXKUTVGVAVBVCABWRWSVDVEWRWSGFWPWNDEVFVHDE
      VIVJWIWTPVKVLDPIWBWJWKEFGDCPHWDWCWMKLZWFWLMZNZABOWIQWDXLWFDMZNZABOPWLDRZX
      NXPABXQXMXOWDXLWFWLDVMVNVOWMCRZXPWHABXRXOWGWDXRXLWEWFDWMCWCKVPVRVNVOGABFV
      QVSVTWA $.

    $( Domain of a relation shifted by ` A ` .  The set on the right is more
       commonly notated as ` ( dom F + A ) ` (meaning add ` A ` to every
       element of ` dom F ` ).  (Contributed by Mario Carneiro, 3-Nov-2013.) $)
    shftdm $p |- ( A e. CC -> dom ( F shift A ) =
                  { x e. CC | ( x - A ) e. dom F } ) $=
      ( vy cc wcel cshi co cdm cv cmin wbr wa copab crab shftfval dmeqd wex cab
      19.42v ovex eldm anbi2i bitr4i abbii dmopab df-rab 3eqtr4i syl6eq ) BFGZC
      BHIZJAKZFGZUMBLIZEKCMZNZAEOZJZUOCJGZAFPZUKULURAEBCDQRUQESZATUNUTNZATUSVAV
      BVCAVBUNUPESZNVCUNUPEUAUTVDUNEUOCUMBLUBUCUDUEUFUQAEUGUTAFUHUIUJ $.

    $( Value of a fiber of the relation ` F ` .  (Contributed by Mario
       Carneiro, 4-Nov-2013.) $)
    shftfib $p |- ( ( A e. CC /\ B e. CC ) ->
                    ( ( F shift A ) " { B } ) = ( F " { ( B - A ) } ) ) $=
      ( vz vx vy cc wcel wa cv co wbr cab cmin csn cima cvv wb wceq copab breqd
      cshi shftfval eleq1 oveq1 breq1d anbi12d breq2 anbi2d eqid brabg sylan9bb
      vex mpan2 ibar adantl bitr4d abbidv imasng ovex mp1i 3eqtr4d ) AHIZBHIZJZ
      BEKZCAUCLZMZENZBAOLZVGCMZENZVHBPQZCVKPQZVFVIVLEVFVIVEVLJZVLVDVIBVGFKZHIZV
      QAOLZGKZCMZJZFGUAZMZVEVPVDVHWCBVGFGACDUDUBVEVGRIWDVPSEUNWBVEVKVTCMZJVPFGB
      VGHRWCVQBTZVRVEWAWEVQBHUEWFVSVKVTCVQBAOUFUGUHVTVGTWEVLVEVTVGVKCUIUJWCUKUL
      UOUMVEVLVPSVDVEVLUPUQURUSVEVNVJTVDEBHVHUTUQVKRIVOVMTVFBAOVAEVKRCUTVBVC $.

    $( Functionality and domain of a sequence shifted by ` A ` .  (Contributed
       by NM, 20-Jul-2005.)  (Revised by Mario Carneiro, 3-Nov-2013.) $)
    shftfn $p |- ( ( F Fn B /\ A e. CC ) ->
                  ( F shift A ) Fn { x e. CC | ( x - A ) e. B } ) $=
      ( vy vz vw wfn cc wcel wa co wfun cdm cv cmin crab wceq wbr cshi wrel wmo
      copab wal relopab a1i fnfun adantr funmo eleq1 oveq1 breq1d anbi12d breq2
      vex anbi2d eqid simprbi moimi syl alrimiv dffun6 sylanbrc shftfval adantl
      brab funeqd mpbird shftdm fndm eleq2d rabbidv sylan9eqr df-fn ) DCIZBJKZL
      ZDBUAMZNZVSOZAPZBQMZCKZAJRZSVSWEIVRVTWBJKZWCFPZDTZLZAFUDZNZVRWJUBZGPZHPZW
      JTZHUCZGUEZWKWLVRWIAFUFUGVRDNZWQVPWRVQCDUHUIWRWPGWRWMBQMZWNDTZHUCWPHWSDUJ
      WOWTHWOWMJKZWTWIXAWSWGDTZLXAWTLAFWMWNWJGUPHUPWBWMSZWFXAWHXBWBWMJUKXCWCWSW
      GDWBWMBQULUMUNWGWNSXBWTXAWGWNWSDUOUQWJURVGUSUTVAVBVAGHWJVCVDVRVSWJVQVSWJS
      VPAFBDEVEVFVHVIVQVPWAWCDOZKZAJRWEABDEVJVPXEWDAJVPXDCWCCDVKVLVMVNVSWEVOVD
      $.

    $( Value of a sequence shifted by ` A ` .  (Contributed by NM,
       20-Jul-2005.)  (Revised by Mario Carneiro, 4-Nov-2013.) $)
    shftval $p |- ( ( A e. CC /\ B e. CC ) ->
                    ( ( F shift A ) ` B ) = ( F ` ( B - A ) ) ) $=
      ( vx cc wcel wa cv cshi co csn cima cio cfv shftfib eleq2d iotabidv dffv3
      cmin 3eqtr4g ) AFGBFGHZEIZCAJKZBLMZGZENUCCBATKZLMZGZENBUDOUGCOUBUFUIEUBUE
      UHUCABCDPQREBUDSEUGCSUA $.

    $( Value of a sequence shifted by ` A - B ` .  (Contributed by NM,
       20-Jul-2005.)  (Revised by Mario Carneiro, 5-Nov-2013.) $)
    shftval2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
                ( ( F shift ( A - B ) ) ` ( A + C ) ) = ( F ` ( B + C ) ) ) $=
      ( cc wcel w3a caddc co cmin cshi wceq subcl 3adant3 addcl 3adant2 shftval
      cfv syl2anc pnncan 3com23 addcom 3adant1 eqtr4d fveq2d eqtrd ) AFGZBFGZCF
      GZHZACIJZDABKJZLJSZULUMKJZDSZBCIJZDSUKUMFGZULFGZUNUPMUHUIURUJABNOUHUJUSUI
      ACPQUMULDERTUKUOUQDUKUOCBIJZUQUHUJUIUOUTMACBUAUBUIUJUQUTMUHBCUCUDUEUFUG
      $.

    $( Value of a sequence shifted by ` A - B ` .  (Contributed by NM,
       20-Jul-2005.) $)
    shftval3 $p |- ( ( A e. CC /\ B e. CC ) ->
                    ( ( F shift ( A - B ) ) ` A ) = ( F ` B ) ) $=
      ( cc wcel wa cc0 caddc co cmin cshi cfv 0cn shftval2 mp3an3 addid1 adantr
      wceq fveq2d adantl 3eqtr3d ) AEFZBEFZGZAHIJZCABKJLJZMZBHIJZCMZAUGMBCMUCUD
      HEFUHUJSNABHCDOPUEUFAUGUCUFASUDAQRTUEUIBCUDUIBSUCBQUATUB $.

    $( Value of a sequence shifted by ` -u A ` .  (Contributed by NM,
       18-Aug-2005.)  (Revised by Mario Carneiro, 5-Nov-2013.) $)
    shftval4 $p |- ( ( A e. CC /\ B e. CC ) ->
                ( ( F shift -u A ) ` B ) = ( F ` ( A + B ) ) ) $=
      ( cc wcel wa cneg cshi co cfv cmin caddc wceq negcl shftval subneg ancoms
      sylan addcom eqtr4d fveq2d eqtrd ) AEFZBEFZGZBCAHZIJKZBUGLJZCKZABMJZCKUDU
      GEFUEUHUJNAOUGBCDPSUFUIUKCUFUIBAMJZUKUEUDUIULNBAQRABTUAUBUC $.

    $( Value of a shifted sequence.  (Contributed by NM, 19-Aug-2005.)
       (Revised by Mario Carneiro, 5-Nov-2013.) $)
    shftval5 $p |- ( ( A e. CC /\ B e. CC ) ->
                ( ( F shift A ) ` ( B + A ) ) = ( F ` B ) ) $=
      ( cc wcel caddc co cshi cfv wceq wa cmin simpr addcl shftval pncan fveq2d
      syl2anc eqtrd ancoms ) BEFZAEFZBAGHZCAIHJZBCJZKUBUCLZUEUDAMHZCJZUFUGUCUDE
      FUEUIKUBUCNBAOAUDCDPSUGUHBCBAQRTUA $.

    $d y C $.
    $( Functionality of a shifted sequence.  (Contributed by NM, 19-Aug-2005.)
       (Revised by Mario Carneiro, 5-Nov-2013.) $)
    shftf $p |- ( ( F : B --> C /\ A e. CC ) ->
          ( F shift A ) : { x e. CC | ( x - A ) e. B } --> C ) $=
      ( vy wf cc wcel wa co cv cmin wfn cfv wceq simpr simpl syl2an cshi shftfn
      crab wral ffn sylan oveq1 elrab shftval ffvelrn eqeltrd sylan2b ralrimiva
      eleq1d ffnfv sylanbrc ) CDEHZBIJZKZEBUALZAMZBNLZCJZAIUCZOZGMZUTPZDJZGVDUD
      VDDUTHUQECOURVECDEUEABCEFUBUFUSVHGVDVFVDJUSVFIJZVFBNLZCJZKZVHVCVKAVFIVAVF
      QVBVJCVAVFBNUGUNUHUSVLKVGVJEPZDUSURVIVGVMQVLUQURRVIVKSBVFEFUITUSUQVKVMDJV
      LUQURSVIVKRCDVJEUJTUKULUMGVDDUTUOUP $.

    $( Composite shift operations.  (Contributed by NM, 19-Aug-2005.)  (Revised
       by Mario Carneiro, 5-Nov-2013.) $)
    2shfti $p |- ( ( A e. CC /\ B e. CC ) -> ( ( F shift A ) shift B ) =
                ( F shift ( A + B ) ) ) $=
      ( vx vy vz vw cc wcel wa cv cmin co cshi wbr copab wb shftfval wceq caddc
      breqd ovex vex eleq1 oveq1 breq1d anbi12d breq2 anbi2d eqid brab ad2antrr
      syl6bb subcl biantrurd ancoms adantll sub32 subsub4 eqtr3d 3expb pm5.32da
      w3a 3bitr2d opabbidv adantl addcl syl 3eqtr4d ) AIJZBIJZKZELZIJZVNBMNZFLZ
      CAONZPZKZEFQZVOVNABUANZMNZVQCPZKZEFQZVRBONZCWBONZVMVTWEEFVMVOVSWDVMVOKZVS
      VPIJZVPAMNZVQCPZKZWLWDVKVSWMRVLVOVKVSVPVQGLZIJZWNAMNZHLZCPZKZGHQZPWMVKVRW
      TVPVQGHACDSUBWSWJWKWQCPZKWMGHVPVQWTVNBMUCFUDWNVPTZWOWJWRXAWNVPIUEXBWPWKWQ
      CWNVPAMUFUGUHWQVQTXAWLWJWQVQWKCUIUJWTUKULUNUMVLVOWLWMRZVKVOVLXCVOVLKWJWLV
      NBUOUPUQURWIWKWCVQCVOVMWKWCTZVOVKVLXDVOVKVLVDVNAMNBMNWKWCVNABUSVNABUTVAVB
      UQUGVEVCVFVLWGWATVKEFBVRCAOUCSVGVMWBIJWHWFTABVHEFWBCDSVIVJ $.

    $( Identity law for the shift operation.  (Contributed by Mario Carneiro,
       5-Nov-2013.) $)
    shftidt2 $p |- ( F shift 0 ) = ( F |` CC ) $=
      ( vx vy cv cc wcel cc0 cmin co wbr copab cshi cres subid1 pm5.32i opabbii
      wa breq1d wceq 0cn shftfval ax-mp dfres2 3eqtr4i ) CEZFGZUFHIJZDEZAKZRZCD
      LZUGUFUIAKZRZCDLAHMJZAFNUKUNCDUGUJUMUGUHUFUIAUFOSPQHFGUOULTUACDHABUBUCCDF
      AUDUE $.

    $( Identity law for the shift operation.  (Contributed by NM, 19-Aug-2005.)
       (Revised by Mario Carneiro, 5-Nov-2013.) $)
    shftidt $p |- ( A e. CC -> ( ( F shift 0 ) ` A ) = ( F ` A ) ) $=
      ( cc wcel cc0 cshi co cfv cres shftidt2 fveq1i fvres syl5eq ) ADEABFGHZIA
      BDJZIABIAOPBCKLADBMN $.

    $( Cancellation law for the shift operation.  (Contributed by NM,
       4-Aug-2005.)  (Revised by Mario Carneiro, 5-Nov-2013.) $)
    shftcan1 $p |- ( ( A e. CC /\ B e. CC ) ->
                    ( ( ( F shift A ) shift -u A ) ` B ) = ( F ` B ) ) $=
      ( cc wcel cshi co cneg cfv cc0 caddc wceq negcl 2shfti mpdan negid oveq2d
      eqtrd fveq1d shftidt sylan9eq ) AEFZBEFBCAGHAIZGHZJBCKGHZJBCJUCBUEUFUCUEC
      AUDLHZGHZUFUCUDEFUEUHMANAUDCDOPUCUGKCGAQRSTBCDUAUB $.

    $( Cancellation law for the shift operation.  (Contributed by NM,
       4-Aug-2005.)  (Revised by Mario Carneiro, 5-Nov-2013.) $)
    shftcan2 $p |- ( ( A e. CC /\ B e. CC ) ->
                    ( ( ( F shift -u A ) shift A ) ` B ) = ( F ` B ) ) $=
      ( cc wcel wa cneg cshi co wceq negneg adantr oveq2d fveq1d negcl shftcan1
      cfv sylan eqtr3d ) AEFZBEFZGZBCAHZIJZUDHZIJZRZBUEAIJZRBCRZUCBUGUIUCUFAUEI
      UAUFAKUBALMNOUAUDEFUBUHUJKAPUDBCDQST $.
  $}

  ${
    $d F x y z $.  $d M x y z $.  $d N x y z $.  $d .+ x y z $.
    seqshft.1 $e |- F e. _V $.
    $( Shifting the index set of a sequence.  (Contributed by NM, 17-Mar-2005.)
       (Revised by Mario Carneiro, 27-Feb-2014.) $)
    seqshft $p |- ( ( M e. ZZ /\ N e. ZZ ) -> seq M ( .+ , ( F shift N ) ) =
        ( seq ( M - N ) ( .+ , F ) shift N ) ) $=
      ( vx cz wcel wa cuz cfv co cseq cmin wfn cv cc caddc wceq syl2an vz seqfn
      vy cshi adantr crab zsubcl syl zcn adantl seqex shftfn simpr shftuz npcan
      syl2anc fveq2d eqtrd fneq2d mpbid negsub seqeq1d eluzelcn syl2anr fveq12d
      cneg znegcl ad2antlr elfzelz zcnd shftval ancoms eqtr4d ad4ant24 seqshft2
      cfz 3eqtr4d eqfnfvd ) CGHZDGHZIZUACJKZABDUDLZCMZABCDNLZMZDUDLZVSWDWBOVTAW
      CCUBUEWAWGFPDNLWEJKZHFQUFZOZWGWBOWAWFWHOZDQHZWJWAWEGHZWKCDUGZABWEUBUHVTWL
      VSDUIZUJZFDWHWFABWEUKZULUPWAWIWBWGWAWIWEDRLZJKZWBWAVTWMWIWSSVSVTUMWNFDWEU
      NUPWAWRCJVSCQHZWLWRCSVTCUIZWOCDUOTUQURUSUTWAUAPZWBHZIZXBDVFZRLZABCXERLZMZ
      KXBDNLZWFKZXBWDKXBWGKZXDXFXIXHWFXDXGWEABWAXGWESZXCVSWTWLXLVTXAWOCDVATUEVB
      XCXBQHZWLXFXISWACXBVCZWPXBDVAVDVEXDAUCWCBXECXBWAXCUMVTXEGHVSXCDVGVHVTUCPZ
      CXBVPLHZXOWCKZXOXERLZBKZSZVSXCVTWLXOQHZXTXPWOXPXOXOCXBVIVJWLYAIZXQXODNLZB
      KXSDXOBEVKYBXRYCBYAWLXRYCSXODVAVLUQVMTVNVOWAWLXMXKXJSXCWPXNDXBWFWQVKTVQVR
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Signum (sgn or sign) function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c sgn $. $( Signum function, often written "sgn" or "sign". $)

  $( Extend class notation to include the Signum function. $)
  csgn $a class sgn $.

  $( Signum function.  Pronounced "signum" , otherwise it might be confused
     with "sine".  Defined as "sgn" in ISO 80000-2:2009(E) operation 2-9.13.
     It is named "sign" (with the same definition) in the "NIST Digital Library
     of Mathematical Functions" , front introduction, "Common Notations and
     Definitions" section at ~ http://dlmf.nist.gov/front/introduction#Sx4 .
     We define this over ` RR* ` ( ~ df-xr ) instead of ` RR ` so that it can
     accept ` +oo ` and ` -oo ` .  Note that ~ df-psgn defines the sign of a
     permutation, which is different.  Value shown in ~ sgnval .  (Contributed
     by David A. Wheeler, 15-May-2015.) $)
  df-sgn $a |- sgn = ( x e. RR* |-> if ( x = 0 , 0 ,
                                         if ( x < 0 , -u 1 , 1 ) ) ) $.

  ${
    $d x A $.
    $( Value of Signum function.  Pronounced "signum" .  See ~ df-sgn .
       (Contributed by David A. Wheeler, 15-May-2015.) $)
    sgnval $p |- ( A e. RR* -> ( sgn ` A ) =
                             if ( A = 0 , 0 , if ( A < 0 , -u 1 , 1 ) ) ) $=
      ( vx cv cc0 wceq clt wbr c1 cneg cif cxr csgn eqeq1 breq1 ifbieq2d df-sgn
      ifbid c0ex negex ifex 1ex fvmpt ) BABCZDEZDUCDFGZHIZHJZJADEZDADFGZUFHJZJK
      LUCAEZUDUHUGUJDUCADMUKUEUIUFHUCADFNQOBPUHDUJRUIUFHHSUATTUB $.
  $}

  $( Proof that signum of 0 is 0.  (Contributed by David A. Wheeler,
     15-May-2015.) $)
  sgn0 $p |- ( sgn ` 0 ) = 0 $=
    ( cc0 csgn cfv wceq clt wbr cneg cif cxr wcel 0xr sgnval ax-mp eqid iftruei
    c1 eqtri ) ABCZAADZAAAEFPGPHZHZAAIJRUADKALMSATANOQ $.

  $( Proof that signum of positive extended real is 1.  (Contributed by David
     A. Wheeler, 15-May-2015.) $)
  sgnp $p |- ( ( A e. RR* /\ 0 < A ) -> ( sgn ` A ) = 1 ) $=
    ( cxr wcel cc0 clt wbr wa csgn cfv wceq c1 cif sgnval adantr wne 0xr xrltne
    cneg mp3an1 iffalsed neneqd wn wi xrltnsym mpan imp 3eqtrd ) ABCZDAEFZGZAHI
    ZADJZDADEFZKRZKLZLZUOKUHUKUPJUIAMNUJULDUOUJADDBCZUHUIADOPDAQSUATUJUMUNKUHUI
    UMUBZUQUHUIURUCPDAUDUEUFTUG $.

  $( Proof that signum of positive reals is 1.  (Contributed by David A.
     Wheeler, 18-May-2015.) $)
  sgnrrp $p |- ( A e. RR+ -> ( sgn ` A ) = 1 ) $=
    ( crp wcel cxr cc0 clt wbr csgn cfv c1 wceq rpxr rpgt0 sgnp syl2anc ) ABCAD
    CEAFGAHIJKALAMANO $.

  $( Proof that the signum of 1 is 1.  (Contributed by David A. Wheeler,
     26-Jun-2016.) $)
  sgn1 $p |- ( sgn ` 1 ) = 1 $=
    ( c1 cxr wcel cc0 clt wbr csgn cfv wceq 1re rexri 0lt1 sgnp mp2an ) ABCDAEF
    AGHAIAJKLAMN $.

  $( Proof that the signum of ` +oo ` is 1.  (Contributed by David A. Wheeler,
     26-Jun-2016.) $)
  sgnpnf $p |- ( sgn ` +oo ) = 1 $=
    ( cpnf cxr wcel cc0 clt wbr csgn cfv c1 wceq pnfxr 0ltpnf sgnp mp2an ) ABCD
    AEFAGHIJKLAMN $.

  $( Proof that signum of negative extended real is -1.  (Contributed by David
     A. Wheeler, 15-May-2015.) $)
  sgnn $p |- ( ( A e. RR* /\ A < 0 ) -> ( sgn ` A ) = -u 1 ) $=
    ( cxr wcel cc0 clt wbr wa csgn cfv wceq c1 cneg cif sgnval adantr wn xrltne
    wne 0xr mp3an2 nesym sylib iffalsed iftrue adantl 3eqtrd ) ABCZADEFZGZAHIZA
    DJZDUHKLZKMZMZUMULUGUJUNJUHANOUIUKDUMUIDARZUKPUGDBCUHUOSADQTDAUAUBUCUHUMULJ
    UGUHULKUDUEUF $.

  $( Proof that the signum of ` -oo ` is -1.  (Contributed by David A. Wheeler,
     26-Jun-2016.) $)
  sgnmnf $p |- ( sgn ` -oo ) = -u 1 $=
    ( cmnf cxr wcel cc0 clt wbr csgn cfv c1 cneg wceq mnfxr mnflt0 sgnn mp2an )
    ABCADEFAGHIJKLMANO $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Real and imaginary parts; conjugate
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Re $. $( Real part of a complex number. $)
  $c Im $. $( Imaginary part of a complex number. $)
  $c * $. $( Complex conjugate function. $)

  $( Extend class notation to include complex conjugate function. $)
  ccj $a class * $.

  $( Extend class notation to include real part of a complex number. $)
  cre $a class Re $.

  $( Extend class notation to include imaginary part of a complex number. $)
  cim $a class Im $.

  ${
    $d x y $.
    $( Define the complex conjugate function.  See ~ cjcli for its closure and
       ~ cjval for its value.  (Contributed by NM, 9-May-1999.)  (Revised by
       Mario Carneiro, 6-Nov-2013.) $)
    df-cj $a |- * = ( x e. CC |-> ( iota_ y e. CC
                 ( ( x + y ) e. RR /\ ( _i x. ( x - y ) ) e. RR ) ) ) $.

    $( Define a function whose value is the real part of a complex number.  See
       ~ reval for its value, ~ recli for its closure, and ~ replim for its use
       in decomposing a complex number.  (Contributed by NM, 9-May-1999.) $)
    df-re $a |- Re = ( x e. CC |-> ( ( x + ( * ` x ) ) / 2 ) ) $.

    $( Define a function whose value is the imaginary part of a complex number.
       See ~ imval for its value, ~ imcli for its closure, and ~ replim for its
       use in decomposing a complex number.  (Contributed by NM,
       9-May-1999.) $)
    df-im $a |- Im = ( x e. CC |-> ( Re ` ( x / _i ) ) ) $.
  $}

  ${
    $d x y A $.
    $( The value of the conjugate of a complex number.  (Contributed by Mario
       Carneiro, 6-Nov-2013.) $)
    cjval $p |- ( A e. CC -> ( * ` A ) = ( iota_ x e. CC
          ( ( A + x ) e. RR /\ ( _i x. ( A - x ) ) e. RR ) ) ) $=
      ( vy cv caddc co cr wcel ci cmin cmul wa cc crio wceq oveq1 eleq1d oveq2d
      ccj anbi12d riotabidv df-cj riotaex fvmpt ) CBCDZADZEFZGHZIUEUFJFZKFZGHZL
      ZAMNBUFEFZGHZIBUFJFZKFZGHZLZAMNMSUEBOZULURAMUSUHUNUKUQUSUGUMGUEBUFEPQUSUJ
      UPGUSUIUOIKUEBUFJPRQTUACAUBURAMUCUD $.

    $( The defining property of the complex conjugate.  (Contributed by Mario
       Carneiro, 6-Nov-2013.) $)
    cjth $p |- ( A e. CC ->
          ( ( A + ( * ` A ) ) e. RR /\ ( _i x. ( A - ( * ` A ) ) ) e. RR ) ) $=
      ( vx cc wcel cv caddc co cr ci cmin cmul ccj cfv wsbc crio wreu cju oveq2
      wa eleq1d riotasbc syl cjval sbceq1d mpbird fvex wceq anbi12d sbcie sylib
      oveq2d ) ACDZABEZFGZHDZIAUMJGZKGZHDZSZBALMZNZAUTFGZHDZIAUTJGZKGZHDZSZULVA
      USBUSBCOZNZULUSBCPVIBAQUSBCUAUBULUSBUTVHBAUCUDUEUSVGBUTALUFUMUTUGZUOVCURV
      FVJUNVBHUMUTAFRTVJUQVEHVJUPVDIKUMUTAJRUKTUHUIUJ $.

    $( Domain and codomain of the conjugate function.  (Contributed by Mario
       Carneiro, 6-Nov-2013.) $)
    cjf $p |- * : CC --> CC $=
      ( vx vy cc cv caddc co cr wcel ci cmin cmul wa crio ccj df-cj cju riotacl
      wreu syl fmpti ) ACCADZBDZEFGHIUAUBJFKFGHLZBCMZNABOUACHUCBCRUDCHBUAPUCBCQ
      ST $.

    $( The conjugate of a complex number is a complex number (closure law).
       (Contributed by NM, 10-May-1999.)  (Revised by Mario Carneiro,
       6-Nov-2013.) $)
    cjcl $p |- ( A e. CC -> ( * ` A ) e. CC ) $=
      ( cc ccj cjf ffvelrni ) BBACDE $.

    $( The value of the real part of a complex number.  (Contributed by NM,
       9-May-1999.)  (Revised by Mario Carneiro, 6-Nov-2013.) $)
    reval $p |- ( A e. CC -> ( Re ` A ) = ( ( A + ( * ` A ) ) / 2 ) ) $=
      ( vx cv ccj cfv caddc co c2 cdiv cre wceq fveq2 oveq12 mpdan oveq1d df-re
      cc ovex fvmpt ) BABCZTDEZFGZHIGAADEZFGZHIGQJTAKZUBUDHIUEUAUCKUBUDKTADLTAU
      AUCFMNOBPUDHIRS $.

    $( The value of the imaginary part of a complex number.  (Contributed by
       NM, 9-May-1999.)  (Revised by Mario Carneiro, 6-Nov-2013.) $)
    imval $p |- ( A e. CC -> ( Im ` A ) = ( Re ` ( A / _i ) ) ) $=
      ( vx cv ci cdiv co cre cfv cc cim wceq oveq1 fveq2d df-im fvex fvmpt ) BA
      BCZDEFZGHADEFZGHIJQAKRSGQADELMBNSGOP $.

    $( The imaginary part of a complex number in terms of the real part
       function.  (Contributed by NM, 12-May-2005.)  (Revised by Mario
       Carneiro, 6-Nov-2013.) $)
    imre $p |- ( A e. CC -> ( Im ` A ) = ( Re ` ( -u _i x. A ) ) ) $=
      ( cc wcel cim cfv ci cdiv co cre cneg cmul imval cc0 wne wceq ax-icn ine0
      c1 divrec2 mp3an23 irec oveq1i syl6eq fveq2d eqtrd ) ABCZADEAFGHZIEFJZAKH
      ZIEALUFUGUIIUFUGRFGHZAKHZUIUFFBCFMNUGUKOPQAFSTUJUHAKUAUBUCUDUE $.

    $( The real part of a complex number in terms of the imaginary part
       function.  (Contributed by Mario Carneiro, 31-Mar-2015.) $)
    reim $p |- ( A e. CC -> ( Re ` A ) = ( Im ` ( _i x. A ) ) ) $=
      ( cc wcel ci cmul co cim cfv cdiv cre wceq ax-icn mulcl imval syl cc0 wne
      mpan ine0 divcan3 mp3an23 fveq2d eqtr2d ) ABCZDAEFZGHZUEDIFZJHZAJHUDUEBCZ
      UFUHKDBCZUDUILDAMRUENOUDUGAJUDUJDPQUGAKLSADTUAUBUC $.

    $( The real part of a complex number is real.  (Contributed by NM,
       9-May-1999.)  (Revised by Mario Carneiro, 6-Nov-2013.) $)
    recl $p |- ( A e. CC -> ( Re ` A ) e. RR ) $=
      ( cc wcel cre cfv caddc co c2 cdiv cr reval ci cmin cmul simpld rehalfcld
      ccj cjth eqeltrd ) ABCZADEAAQEZFGZHIGJAKTUBTUBJCLAUAMGNGJCAROPS $.

    $( The imaginary part of a complex number is real.  (Contributed by NM,
       9-May-1999.)  (Revised by Mario Carneiro, 6-Nov-2013.) $)
    imcl $p |- ( A e. CC -> ( Im ` A ) e. RR ) $=
      ( cc wcel cim cfv ci cneg cmul co cre imre negicn mulcl mpan recl eqeltrd
      cr syl ) ABCZADEFGZAHIZJEZQAKSUABCZUBQCTBCSUCLTAMNUAORP $.

    $( Domain and codomain of the real part function.  (Contributed by Paul
       Chapman, 22-Oct-2007.)  (Revised by Mario Carneiro, 6-Nov-2013.) $)
    ref $p |- Re : CC --> RR $=
      ( vx cc cr cv ccj cfv caddc co c2 cdiv cre df-re wcel reval recl eqeltrrd
      fmpti ) ABCADZREFGHIJHZKALRBMRKFSCRNROPQ $.

    $( Domain and codomain of the imaginary part function.  (Contributed by
       Paul Chapman, 22-Oct-2007.)  (Revised by Mario Carneiro, 6-Nov-2013.) $)
    imf $p |- Im : CC --> RR $=
      ( vx cc cr cv ci cdiv co cre cfv cim df-im wcel imval imcl eqeltrrd fmpti
      ) ABCADZEFGHIZJAKQBLQJIRCQMQNOP $.

    $( The real part of a complex number representation.  Definition 10-3.1 of
       [Gleason] p. 132.  (Contributed by NM, 12-May-2005.)  (Revised by Mario
       Carneiro, 7-Nov-2013.) $)
    crre $p |- ( ( A e. RR /\ B e. RR )
        -> ( Re ` ( A + ( _i x. B ) ) ) = A ) $=
      ( cr wcel ci cmul co caddc c2 cdiv cc ax-icn mulcl sylancr syl addcld a1i
      cmin oveq1d 3eqtr4d cre cfv ccj wceq recn addcl syl2an reval cjcl halfcld
      wa adantr cc0 recl eqeltrrd simpl resubcld adantl subcld pnpcand pnpcan2d
      subdid eqtr4d addsubd subsubd 2timesd oveq2d 2cn 2ne0 divsubdird divcan3d
      wne 3eqtr3d mulassd divassd oveq12d cneg ixi neg1rr eqeltri simpr remulcl
      c1 cjth simprd rehalfcld eqeltrd rimul syl2anc subeq0d eqtrd ) ACDZBCDZUK
      ZAEBFGZHGZUAUBZWPWPUCUBZHGZIJGZAWNWPKDZWQWTUDWLAKDZWOKDZXAWMAUEZWMEKDZBKD
      ZXCLBUEZEBMZNAWOUFUGZWPUHOZWNWTAWNWSWNWPWRXIWNXAWRKDXIWPUIOZPZUJWLXBWMXDU
      LZWNWTARGZCDEXNFGZCDXNUMUDWNWTAWNWQWTCXJWNXAWQCDXIWPUNOUOWLWMUPUQWNXOEEFG
      ZBFGZEWPWRRGZFGZIJGZRGZCWNEWOXRIJGZRGZFGEWOFGZEYBFGZRGXOYAWNEWOYBXEWNLQZW
      NXEXFXCLWMXFWLXGURZXHNZWNXRWNWPWRXIXKUSZUJVBWNXNYCEFWNWTIAFGZIJGZRGZIWOFG
      ZIJGZYBRGZXNYCWNWSYJRGZIJGYMXRRGZIJGYLYOWNYPYQIJWNWSAAHGZRGZWOWOHGZXRRGZY
      PYQWNWPYRRGZWRHGYTWPRGZWRHGYSUUAWNUUBUUCWRHWNUUBWOARGUUCWNAWOAXMYHXMUTWNW
      OAWOYHXMYHVAVCSWNWPWRYRXIXKWNAAXMXMPVDWNYTWPWRWNWOWOYHYHPXIXKVETWNYJYRWSR
      WNAXMVFVGWNYMYTXRRWNWOYHVFSTSWNWSYJIXLWNIKDZXBYJKDVHXMIAMNUUDWNVHQZIUMVLW
      NVIQZVJWNYMXRIWNUUDXCYMKDVHYHIWOMNYIUUEUUFVJVMWNYKAWTRWNAIXMUUEUUFVKVGWNY
      NWOYBRWNWOIYHUUEUUFVKSVMVGWNXQYDXTYERWNEEBYFYFYGVNWNEXRIYFYIUUEUUFVOVPTWN
      XQXTWNXPCDWMXQCDXPWCVQCVRVSVTWLWMWAXPBWBNWNXSWNXAXSCDZXIXAWSCDUUGWPWDWEOW
      FUQWGXNWHWIWJWK $.

    $( The real part of a complex number representation.  Definition 10-3.1 of
       [Gleason] p. 132.  (Contributed by NM, 12-May-2005.)  (Revised by Mario
       Carneiro, 7-Nov-2013.) $)
    crim $p |- ( ( A e. RR /\ B e. RR )
        -> ( Im ` ( A + ( _i x. B ) ) ) = B ) $=
      ( cr wcel wa ci cmul co caddc cfv cdiv cre cneg cc wceq recn ax-icn mulcl
      sylancr ine0 cim addcl syl2an imval syl mpan cc0 wne divdir 3expa mpanr12
      sylan2 c1 divrec2 mp3an23 irec oveq1i a1i mulneg12 3eqtrd oveqan12d negcl
      divcan3 addcom sylan 3eqtrrd fveq2d id renegcl crre syl2anr 3eqtr2d ) ACD
      ZBCDZEZAFBGHZIHZUAJZVQFKHZLJZBFAMZGHZIHZLJZBVOVQNDZVRVTOVMANDZVPNDZWEVNAP
      ZVNFNDZBNDZWGQBPZFBRZSAVPUBUCVQUDUEVOWCVSLVMWFWJWCVSOVNWHWKWFWJEVSAFKHZVP
      FKHZIHZWBBIHZWCWJWFWGVSWOOZWIWJWGQWLUFWFWGEWIFUGUHZWQQTWFWGWIWREWQAVPFUIU
      JUKULWFWJWMWBWNBIWFWMUMFKHZAGHZFMZAGHZWBWFWIWRWMWTOQTAFUNUOWTXBOWFWSXAAGU
      PUQURWIWFXBWBOQFAUSUFUTWJWIWRWNBOQTBFVCUOVAWFWBNDZWJWPWCOWFWIWANDXCQAVBFW
      ARSWBBVDVEVFUCVGVNVNWACDWDBOVMVNVHAVIBWAVJVKVL $.

    $( Reconstruct a complex number from its real and imaginary parts.
       (Contributed by NM, 10-May-1999.)  (Revised by Mario Carneiro,
       7-Nov-2013.) $)
    replim $p |- ( A e. CC -> A = ( ( Re ` A ) + ( _i x. ( Im ` A ) ) ) ) $=
      ( vx vy cc wcel cv ci cmul co caddc wceq cr wrex cre cfv cim cnre oveq12d
      oveq2d fveq2 wa crre crim eqcomd id eqeq12d syl5ibrcom rexlimivv syl ) AD
      EABFZGCFZHIZJIZKZCLMBLMAANOZGAPOZHIZJIZKZBCAQUNUSBCLLUJLEUKLEUAZUSUNUMUMN
      OZGUMPOZHIZJIZKUTVDUMUTVAUJVCULJUJUKUBUTVBUKGHUJUKUCSRUDUNAUMURVDUNUEUNUO
      VAUQVCJAUMNTUNUPVBGHAUMPTSRUFUGUHUI $.

    $( Value of the conjugate of a complex number.  The value is the real part
       minus ` _i ` times the imaginary part.  Definition 10-3.2 of [Gleason]
       p. 132.  (Contributed by NM, 10-May-1999.)  (Revised by Mario Carneiro,
       7-Nov-2013.) $)
    remim $p |- ( A e. CC ->
                      ( * ` A ) = ( ( Re ` A ) - ( _i x. ( Im ` A ) ) ) ) $=
      ( vx cc wcel caddc co cr ci cmin cmul wa wceq oveq1d recnd ax-icn sylancr
      cfv eqtrd readdcld eqeltrd ccj cv crio cre cjval replim recl imcl ppncand
      cim mulcl pnncand a1i adddid 3eqtr4d oveq2d mulass mp3an12 eqtr4d c1 cneg
      syl ixi neg1rr eqeltri remulcl wreu wb subcld oveq2 eleq1d anbi12d riota2
      cju syl2anc mpbi2and ) ACDZAUAQABUBZEFZGDZHAVRIFZJFZGDZKZBCUCZAUDQZHAUJQZ
      JFZIFZBAUEVQAWIEFZGDZHAWIIFZJFZGDZWEWILZVQWJWFWFEFZGVQWJWFWHEFZWIEFWPVQAW
      QWIEAUFZMVQWFWHWFVQWFAUGZNZVQHCDZWGCDWHCDOVQWGAUHZNZHWGUKPZWTUIRVQWFWFWSW
      SSTVQWMHHJFZWGWGEFZJFZGVQWMHHXFJFZJFZXGVQWLXHHJVQWQWIIFWHWHEFWLXHVQWFWHWH
      WTXDXDULVQAWQWIIWRMVQHWGWGXAVQOUMXCXCUNUOUPVQXFCDZXGXILZVQXFVQWGWGXBXBSZN
      XAXAXJXKOOHHXFUQURVBUSVQXEGDXFGDXGGDXEUTVAGVCVDVEXLXEXFVFPTVQWICDWDBCVGWK
      WNKZWOVHVQWFWHWTXDVIBAVNWDXMBCWIVRWILZVTWKWCWNXNVSWJGVRWIAEVJVKXNWBWMGXNW
      AWLHJVRWIAIVJUPVKVLVMVOVPR $.
  $}

  $( The imaginary part of a real number is 0.  (Contributed by NM,
     18-Mar-2005.)  (Revised by Mario Carneiro, 7-Nov-2013.) $)
  reim0 $p |- ( A e. RR -> ( Im ` A ) = 0 ) $=
    ( cr wcel ci cc0 cmul co caddc cim cfv wceq recn it0e0 oveq2i addid1 syl5eq
    cc syl fveq2d 0re crim mpan2 eqtr3d ) ABCZADEFGZHGZIJZAIJEUDUFAIUDAQCZUFAKA
    LUHUFAEHGAUEEAHMNAOPRSUDEBCUGEKTAEUAUBUC $.

  $( A number is real iff its imaginary part is 0.  (Contributed by NM,
     26-Sep-2005.) $)
  reim0b $p |- ( A e. CC -> ( A e. RR <-> ( Im ` A ) = 0 ) ) $=
    ( cc wcel cr cim cfv cc0 wceq reim0 wa ci cmul co caddc replim adantr oveq2
    cre it0e0 syl6eq oveq2d recl recnd addid1d sylan9eqr eqtrd eqeltrd impbid2
    ex ) ABCZADCZAEFZGHZAIUJUMUKUJUMJZAARFZDUNAUOKULLMZNMZUOUJAUQHUMAOPUMUJUQUO
    GNMUOUMUPGUONUMUPKGLMGULGKLQSTUAUJUOUJUOAUBZUCUDUEUFUJUODCUMURPUGUIUH $.

  $( A number is real iff it equals its real part.  Proposition 10-3.4(f) of
     [Gleason] p. 133.  (Contributed by NM, 20-Aug-2008.) $)
  rereb $p |- ( A e. CC -> ( A e. RR <-> ( Re ` A ) = A ) ) $=
    ( cc wcel cr cre cfv wceq wa ci cim co caddc cc0 replim adantr reim0 oveq2d
    cmul it0e0 syl6eq adantl recl recnd addid1d 3eqtrrd simpr eqeltrrd impbida
    ) ABCZADCZAEFZAGZUIUJHZAUKIAJFZRKZLKZUKMLKZUKUIAUPGUJANOUMUOMUKLUJUOMGUIUJU
    OIMRKMUJUNMIRAPQSTUAQUIUQUKGUJUIUKUIUKAUBZUCUDOUEUIULHUKADUIULUFUIUKDCULURO
    UGUH $.

  $( A product with a nonzero real multiplier is real iff the multiplicand is
     real.  (Contributed by NM, 21-Aug-2008.) $)
  mulre $p |- ( ( A e. CC /\ B e. RR /\ B =/= 0 )
         -> ( A e. RR <-> ( B x. A ) e. RR ) ) $=
    ( cc wcel cr cre cfv wceq co wb rereb 3ad2ant1 wa recnd caddc adantl ax-icn
    cmul ci mulcl cc0 wne w3a recl simp1 recn anim1i 3adant1 mulcan syl3anc cim
    adantr imcl sylancr adddid replim oveq2d mul12 mp3an1 syl2an 3eqtr4d fveq2d
    remulcl sylan2 crre syl2anc eqtr2d eqeq1d syl bitr4d ancoms 3adant3 3bitr2d
    sylan ) ACDZBEDZBUAUBZUCZAEDZAFGZAHZBVTRIZBARIZHZWCEDZVOVPVSWAJVQAKLVRVTCDZ
    VOBCDZVQMZWDWAJVOVPWFVQVOVTAUDZNZLVOVPVQUEVPVQWHVOVPWGVQBUFZUGUHVTABUIUJVOV
    PWDWEJZVQVPVOWLVPVOMZWDWCFGZWCHZWEWMWBWNWCWMWNWBSBAUKGZRIZRIZOIZFGZWBWMWCWS
    FWMBVTSWPRIZOIZRIWBBXARIZOIWCWSWMBVTXAVPWGVOWKULVOWFVPWJPVOXACDZVPVOSCDZWPC
    DZXDQVOWPAUMZNZSWPTUNPUOWMAXBBRVOAXBHVPAUPPUQWMWRXCWBOVPWGXFWRXCHZVOWKXHXEW
    GXFXIQSBWPURUSUTUQVAVBWMWBEDZWQEDZWTWBHVOVPVTEDXJWIBVTVCVDVOVPWPEDXKXGBWPVC
    VDWBWQVEVFVGVHWMWCCDZWEWOJVPWGVOXLWKBATVNWCKVIVJVKVLVM $.

  $( A real number equals its real part.  One direction of Proposition
     10-3.4(f) of [Gleason] p. 133.  (Contributed by Paul Chapman,
     7-Sep-2007.) $)
  rere $p |- ( A e. RR -> ( Re ` A ) = A ) $=
    ( cr wcel cre cfv wceq cc wb recn rereb syl ibi ) ABCZADEAFZMAGCMNHAIAJKL
    $.

  $( A number is real iff it equals its complex conjugate.  Proposition
     10-3.4(f) of [Gleason] p. 133.  (Contributed by NM, 2-Jul-2005.)  (Revised
     by Mario Carneiro, 14-Jul-2014.) $)
  cjreb $p |- ( A e. CC -> ( A e. RR <-> ( * ` A ) = A ) ) $=
    ( cc wcel ccj cfv wceq cre ci cneg cmul co caddc cr cmin recnd ax-icn mulcl
    cim sylancr cc0 negsubd mulneg2 oveq2d remim 3eqtr4rd replim eqeq12d negcld
    recl imcl addcand eqcom eqnegd syl5bb wne wa ine0 pm3.2i a1i mulcan syl3anc
    wb reim0b 3bitr4d 3bitrrd ) ABCZADEZAFAGEZHAREZIZJKZLKZVHHVIJKZLKZFVKVMFZAM
    CZVFVGVLAVNVFVHVMIZLKVHVMNKVLVGVFVHVMVFVHAUIOZVFHBCZVIBCZVMBCPVFVIAUJOZHVIQ
    SZUAVFVKVQVHLVFVSVTVKVQFPWAHVIUBSUCAUDUEAUFUGVFVHVKVMVRVFVSVJBCZVKBCPVFVIWA
    UHZHVJQSWBUKVFVJVIFZVITFZVOVPWEVIVJFVFWFVJVIULVFVIWAUMUNVFWCVTVSHTUOZUPZVOW
    EVBWDWAWHVFVSWGPUQURUSVJVIHUTVAAVCVDVE $.

  $( Real part of a complex conjugate.  (Contributed by Mario Carneiro,
     14-Jul-2014.) $)
  recj $p |- ( A e. CC -> ( Re ` ( * ` A ) ) = ( Re ` A ) ) $=
    ( cc wcel ccj cfv cre ci cim cneg cmul co caddc cmin recl recnd ax-icn imcl
    sylancr wceq cr mulcl negsubd mulneg2 oveq2d remim 3eqtr4rd fveq2d renegcld
    crre syl2anc eqtrd ) ABCZADEZFEAFEZGAHEZIZJKZLKZFEZUNULUMURFULUNGUOJKZIZLKU
    NUTMKURUMULUNUTULUNANZOULGBCZUOBCZUTBCPULUOAQZOZGUOUARUBULUQVAUNLULVCVDUQVA
    SPVFGUOUCRUDAUEUFUGULUNTCUPTCUSUNSVBULUOVEUHUNUPUIUJUK $.

  $( Real part of negative.  (Contributed by NM, 17-Mar-2005.)  (Revised by
     Mario Carneiro, 14-Jul-2014.) $)
  reneg $p |- ( A e. CC -> ( Re ` -u A ) = -u ( Re ` A ) ) $=
    ( cc wcel cneg cre cfv ci cim cmul co caddc recl recnd ax-icn mulcl sylancr
    imcl wceq cr renegcld negdid replim negeqd mulneg2 oveq2d fveq2d crre eqtrd
    3eqtr4d syl2anc ) ABCZADZEFAEFZDZGAHFZDZIJZKJZEFZUNUKULUREUKUMGUOIJZKJZDUNU
    TDZKJULURUKUMUTUKUMALZMUKGBCZUOBCZUTBCNUKUOAQZMZGUOOPUAUKAVAAUBUCUKUQVBUNKU
    KVDVEUQVBRNVGGUOUDPUEUIUFUKUNSCUPSCUSUNRUKUMVCTUKUOVFTUNUPUGUJUH $.

  $( Real part distributes over addition.  (Contributed by NM, 17-Mar-2005.)
     (Revised by Mario Carneiro, 14-Jul-2014.) $)
  readd $p |- ( ( A e. CC /\ B e. CC ) ->
              ( Re ` ( A + B ) ) = ( ( Re ` A ) + ( Re ` B ) ) ) $=
    ( cc wcel caddc co cre cfv ci cmul cr recl adantr recnd ax-icn imcl sylancr
    cim mulcl adantl wa add4d replim oveqan12d a1i adddid oveq2d 3eqtr4d fveq2d
    wceq readdcl syl2an crre syl2anc eqtrd ) ACDZBCDZUAZABEFZGHAGHZBGHZEFZIARHZ
    BRHZEFZJFZEFZGHZVBURUSVGGURUTIVCJFZEFZVAIVDJFZEFZEFVBVIVKEFZEFUSVGURUTVIVAV
    KURUTUPUTKDZUQALZMNURICDZVCCDVICDOURVCUPVCKDZUQAPZMNZIVCSQURVAUQVAKDZUPBLZT
    NURVPVDCDVKCDOURVDUQVDKDZUPBPZTNZIVDSQUBUPUQAVJBVLEAUCBUCUDURVFVMVBEURIVCVD
    VPUROUEVSWDUFUGUHUIURVBKDZVEKDZVHVBUJUPVNVTWEUQVOWAUTVAUKULUPVQWBWFUQVRWCVC
    VDUKULVBVEUMUNUO $.

  $( Real part distributes over subtraction.  (Contributed by NM,
     17-Mar-2005.) $)
  resub $p |- ( ( A e. CC /\ B e. CC ) ->
              ( Re ` ( A - B ) ) = ( ( Re ` A ) - ( Re ` B ) ) ) $=
    ( cc wcel wa cneg caddc cre cfv cmin negcl readd sylan2 reneg adantl negsub
    co wceq recl recnd oveq2d eqtrd fveq2d syl2an 3eqtr3d ) ACDZBCDZEZABFZGQZHI
    ZAHIZBHIZFZGQZABJQZHIULUMJQZUHUKULUIHIZGQZUOUGUFUICDUKUSRBKAUILMUHURUNULGUG
    URUNRUFBNOUAUBUHUJUPHABPUCUFULCDUMCDUOUQRUGUFULASTUGUMBSTULUMPUDUE $.

  $( Lemma for ~ remul , ~ immul , and ~ cjmul .  (Contributed by NM,
     28-Jul-1999.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  remullem $p |- ( ( A e. CC /\ B e. CC ) ->
    ( ( Re ` ( A x. B ) ) =
        ( ( ( Re ` A ) x. ( Re ` B ) ) - ( ( Im ` A ) x. ( Im ` B ) ) ) /\
      ( Im ` ( A x. B ) ) =
        ( ( ( Re ` A ) x. ( Im ` B ) ) + ( ( Im ` A ) x. ( Re ` B ) ) ) /\
      ( * ` ( A x. B ) ) = ( ( * ` A ) x. ( * ` B ) ) ) ) $=
    ( cc wcel cmul co cre cfv cim cmin wceq caddc ci recnd ax-icn mulcl sylancr
    cr oveq12d remulcld wa ccj replim oveqan12d recl adantr imcl addcld adddird
    adantl adddid mulcld add42d cneg mul4d c1 oveq1i mulm1d syl5eq eqtrd oveq2d
    a1i negsubd addcomd mulassd mul12d 3eqtr4d 3eqtr2d 3eqtrd resubcld readdcld
    ixi fveq2d crre syl2anc crim syl subcld subdird subadd4d subdid eqtr4d 3jca
    remim ) ACDZBCDZUAZABEFZGHZAGHZBGHZEFZAIHZBIHZEFZJFZKWHIHZWJWNEFZWMWKEFZLFZ
    KWHUBHZAUBHZBUBHZEFZKWGWIWPMWTEFZLFZGHZWPWGWHXFGWGWHWJMWMEFZLFZWKMWNEFZLFZE
    FXIWKEFZXIXJEFZLFZXFWEWFAXIBXKEAUCBUCUDWGXIWKXJWGWJXHWGWJWEWJRDWFAUEUFZNZWG
    MCDZWMCDXHCDOWGWMWEWMRDWFAUGUFZNZMWMPQZUHWGWKWFWKRDWEBUEUJZNZWGXQWNCDXJCDOW
    GWNWFWNRDWEBUGUJZNZMWNPQZUKWGXNWLXHWKEFZLFZWJXJEFZXHXJEFZLFZLFWLYILFZYFYHLF
    ZLFXFWGXLYGXMYJLWGWJXHWKXPXTYBUIWGWJXHXJXPXTYEUISWGWLYIYFYHWGWLWGWJWKXOYATZ
    NZWGXHXJXTYEULZWGXHWKXTYBULZWGWJXJXPYEULZUMWGYKWPYLXELWGYKWLWOUNZLFWPWGYIYR
    WLLWGYIMMEFZWOEFZYRWGMWMMWNXQWGOVBZXSUUAYDUOWGYTUPUNZWOEFYRYSUUBWOEVLUQWGWO
    WGWOWGWMWNXRYCTZNZURUSUTVAWGWLWOYNUUDVCUTZWGMWSEFZMWREFZLFUUGUUFLFZYLXEWGUU
    FUUGWGXQWSCDUUFCDOWGWSWGWMWKXRYATZNZMWSPQWGXQWRCDUUGCDOWGWRWGWJWNXOYCTZNZMW
    RPQVDWGYFUUFYHUUGLWGMWMWKUUAXSYBVEZWGWJMWNXPUUAYDVFZSWGMWRWSUUAUULUUJUKZVGS
    VHVIZVMZWGWPRDZWTRDZXGWPKWGWLWOYMUUCVJZWGWRWSUUKUUIVKZWPWTVNVOZUTWGWQXFIHZW
    TWGWHXFIUUPVMWGUURUUSUVCWTKUUTUVAWPWTVPVOUTZWGXAWIMWQEFZJFZXDWGWHCDXAUVFKAB
    PWHWDVQWGXDWJXHJFZWKXJJFZEFWJUVHEFZXHUVHEFZJFZUVFWEWFXBUVGXCUVHEAWDBWDUDWGW
    JXHUVHXPXTWGWKXJYBYEVRVSWGWLYHJFZYFYIJFZJFYKYHYFLFZJFUVKUVFWGWLYHYFYIYNYQYP
    YOVTWGUVIUVLUVJUVMJWGWJWKXJXPYBYEWAWGXHWKXJXTYBYEWASWGWIYKUVEUVNJWGXGWPWIYK
    UVBUUQUUEVGWGXEUUHUVEUVNUUOWGWQWTMEUVDVAWGYHUUGYFUUFLUUNUUMSVGSVGVIWBWC $.

  $( Real part of a product.  (Contributed by NM, 28-Jul-1999.)  (Revised by
     Mario Carneiro, 14-Jul-2014.) $)
  remul $p |- ( ( A e. CC /\ B e. CC ) -> ( Re ` ( A x. B ) ) =
           ( ( ( Re ` A ) x. ( Re ` B ) ) - ( ( Im ` A ) x. ( Im ` B ) ) ) ) $=
    ( cc wcel wa cmul co cre cfv cim cmin wceq caddc ccj remullem simp1d ) ACDB
    CDEABFGZHIAHIZBHIZFGAJIZBJIZFGKGLQJIRUAFGTSFGMGLQNIANIBNIFGLABOP $.

  $( Real part of a product.  (Contributed by Mario Carneiro, 2-Aug-2014.) $)
  remul2 $p |- ( ( A e. RR /\ B e. CC ) ->
                 ( Re ` ( A x. B ) ) = ( A x. ( Re ` B ) ) ) $=
    ( cr wcel cc wa cmul cre cfv cim cmin cc0 wceq recn remul sylan rere oveq1d
    co recnd adantr reim0 imcl mul02d sylan9eq oveq12d recl mulcl syl2an 3eqtrd
    subid1d ) ACDZBEDZFZABGSHIZAHIZBHIZGSZAJIZBJIZGSZKSZAUQGSZLKSVCULAEDZUMUOVB
    MANZABOPUNURVCVALKUNUPAUQGULUPAMUMAQUARULUMVALUTGSLULUSLUTGAUBRUMUTUMUTBUCT
    UDUEUFUNVCULVDUQEDVCEDUMVEUMUQBUGTAUQUHUIUKUJ $.

  $( Real part of a division.  Related to ~ remul2 .  (Contributed by David A.
     Wheeler, 10-Jun-2015.) $)
  rediv $p |- ( ( A e. CC /\ B e. RR /\ B =/= 0 ) ->
              ( Re ` ( A / B ) ) = ( ( Re ` A ) / B ) ) $=
    ( cc wcel cr cc0 wne w3a c1 cdiv co cmul cre cfv wceq 3anass bitr4i rereccl
    wa ancom anim1i sylbir remul2 syl recn divrec2 fveq2d syl3an2 recl 3ad2ant1
    recnd 3ad2ant2 simp3 divrec2d 3eqtr4d ) ACDZBEDZBFGZHZIBJKZALKZMNZUTAMNZLKZ
    ABJKZMNZVCBJKUSUTEDZUPSZVBVDOUSUQURSZUPSZVHVJUPVISUSVIUPTUPUQURPQVIVGUPBRUA
    UBUTAUCUDUQUPBCDZURVFVBOBUEZUPVKURHVEVAMABUFUGUHUSVCBUPUQVCCDURUPVCAUIUKUJU
    QUPVKURVLULUPUQURUMUNUO $.

  $( Imaginary part of a complex conjugate.  (Contributed by NM, 18-Mar-2005.)
     (Revised by Mario Carneiro, 14-Jul-2014.) $)
  imcj $p |- ( A e. CC -> ( Im ` ( * ` A ) ) = -u ( Im ` A ) ) $=
    ( cc wcel ccj cfv cim cre ci cneg cmul co caddc cmin recl recnd ax-icn imcl
    sylancr wceq cr mulcl negsubd mulneg2 oveq2d remim 3eqtr4rd fveq2d renegcld
    crim syl2anc eqtrd ) ABCZADEZFEAGEZHAFEZIZJKZLKZFEZUPULUMURFULUNHUOJKZIZLKU
    NUTMKURUMULUNUTULUNANZOULHBCZUOBCZUTBCPULUOAQZOZHUOUARUBULUQVAUNLULVCVDUQVA
    SPVFHUOUCRUDAUEUFUGULUNTCUPTCUSUPSVBULUOVEUHUNUPUIUJUK $.

  $( The imaginary part of a negative number.  (Contributed by NM,
     18-Mar-2005.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  imneg $p |- ( A e. CC -> ( Im ` -u A ) = -u ( Im ` A ) ) $=
    ( cc wcel cneg cim cfv cre ci cmul co caddc recl recnd ax-icn mulcl sylancr
    imcl wceq cr renegcld negdid replim negeqd mulneg2 oveq2d fveq2d crim eqtrd
    3eqtr4d syl2anc ) ABCZADZEFAGFZDZHAEFZDZIJZKJZEFZUPUKULUREUKUMHUOIJZKJZDUNU
    TDZKJULURUKUMUTUKUMALZMUKHBCZUOBCZUTBCNUKUOAQZMZHUOOPUAUKAVAAUBUCUKUQVBUNKU
    KVDVEUQVBRNVGHUOUDPUEUIUFUKUNSCUPSCUSUPRUKUMVCTUKUOVFTUNUPUGUJUH $.

  $( Imaginary part distributes over addition.  (Contributed by NM,
     18-Mar-2005.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  imadd $p |- ( ( A e. CC /\ B e. CC ) ->
              ( Im ` ( A + B ) ) = ( ( Im ` A ) + ( Im ` B ) ) ) $=
    ( cc wcel caddc co cim cfv ci cmul cr recl adantr recnd ax-icn imcl sylancr
    cre mulcl adantl wa add4d replim oveqan12d a1i adddid oveq2d 3eqtr4d fveq2d
    wceq readdcl syl2an crim syl2anc eqtrd ) ACDZBCDZUAZABEFZGHARHZBRHZEFZIAGHZ
    BGHZEFZJFZEFZGHZVEURUSVGGURUTIVCJFZEFZVAIVDJFZEFZEFVBVIVKEFZEFUSVGURUTVIVAV
    KURUTUPUTKDZUQALZMNURICDZVCCDVICDOURVCUPVCKDZUQAPZMNZIVCSQURVAUQVAKDZUPBLZT
    NURVPVDCDVKCDOURVDUQVDKDZUPBPZTNZIVDSQUBUPUQAVJBVLEAUCBUCUDURVFVMVBEURIVCVD
    VPUROUEVSWDUFUGUHUIURVBKDZVEKDZVHVEUJUPVNVTWEUQVOWAUTVAUKULUPVQWBWFUQVRWCVC
    VDUKULVBVEUMUNUO $.

  $( Imaginary part distributes over subtraction.  (Contributed by NM,
     18-Mar-2005.) $)
  imsub $p |- ( ( A e. CC /\ B e. CC ) ->
              ( Im ` ( A - B ) ) = ( ( Im ` A ) - ( Im ` B ) ) ) $=
    ( cc wcel wa cneg caddc cim cfv cmin negcl imadd sylan2 imneg adantl negsub
    co wceq imcl recnd oveq2d eqtrd fveq2d syl2an 3eqtr3d ) ACDZBCDZEZABFZGQZHI
    ZAHIZBHIZFZGQZABJQZHIULUMJQZUHUKULUIHIZGQZUOUGUFUICDUKUSRBKAUILMUHURUNULGUG
    URUNRUFBNOUAUBUHUJUPHABPUCUFULCDUMCDUOUQRUGUFULASTUGUMBSTULUMPUDUE $.

  $( Imaginary part of a product.  (Contributed by NM, 28-Jul-1999.)  (Revised
     by Mario Carneiro, 14-Jul-2014.) $)
  immul $p |- ( ( A e. CC /\ B e. CC ) -> ( Im ` ( A x. B ) ) =
           ( ( ( Re ` A ) x. ( Im ` B ) ) + ( ( Im ` A ) x. ( Re ` B ) ) ) ) $=
    ( cc wcel wa cmul co cre cfv cim cmin wceq caddc ccj remullem simp2d ) ACDB
    CDEABFGZHIAHIZBHIZFGAJIZBJIZFGKGLQJIRUAFGTSFGMGLQNIANIBNIFGLABOP $.

  $( Imaginary part of a product.  (Contributed by Mario Carneiro,
     2-Aug-2014.) $)
  immul2 $p |- ( ( A e. RR /\ B e. CC ) ->
                 ( Im ` ( A x. B ) ) = ( A x. ( Im ` B ) ) ) $=
    ( cr wcel cc wa cmul co cim cfv cre caddc wceq recn immul sylan rere oveq1d
    cc0 recnd adantr reim0 recl mul02d oveq12d imcl mulcl syl2an addid1d 3eqtrd
    sylan9eq ) ACDZBEDZFZABGHIJZAKJZBIJZGHZAIJZBKJZGHZLHZAUQGHZSLHVCULAEDZUMUOV
    BMANZABOPUNURVCVASLUNUPAUQGULUPAMUMAQUARULUMVASUTGHSULUSSUTGAUBRUMUTUMUTBUC
    TUDUKUEUNVCULVDUQEDVCEDUMVEUMUQBUFTAUQUGUHUIUJ $.

  $( Imaginary part of a division.  Related to ~ immul2 .  (Contributed by
     Mario Carneiro, 20-Jun-2015.) $)
  imdiv $p |- ( ( A e. CC /\ B e. RR /\ B =/= 0 ) ->
              ( Im ` ( A / B ) ) = ( ( Im ` A ) / B ) ) $=
    ( cc wcel cr cc0 wne w3a c1 cdiv co cmul cim cfv wceq 3anass bitr4i rereccl
    wa ancom anim1i sylbir immul2 syl recn divrec2 fveq2d syl3an2 imcl 3ad2ant1
    recnd 3ad2ant2 simp3 divrec2d 3eqtr4d ) ACDZBEDZBFGZHZIBJKZALKZMNZUTAMNZLKZ
    ABJKZMNZVCBJKUSUTEDZUPSZVBVDOUSUQURSZUPSZVHVJUPVISUSVIUPTUPUQURPQVIVGUPBRUA
    UBUTAUCUDUQUPBCDZURVFVBOBUEZUPVKURHVEVAMABUFUGUHUSVCBUPUQVCCDURUPVCAUIUKUJU
    QUPVKURVLULUPUQURUMUNUO $.

  $( A real number equals its complex conjugate.  Proposition 10-3.4(f) of
     [Gleason] p. 133.  (Contributed by NM, 8-Oct-1999.) $)
  cjre $p |- ( A e. RR -> ( * ` A ) = A ) $=
    ( cc wcel cr ccj cfv wceq recn cjreb biimpd mpcom ) ABCZADCZAEFAGZAHLMNAIJK
    $.

  $( The conjugate of the conjugate is the original complex number.
     Proposition 10-3.4(e) of [Gleason] p. 133.  (Contributed by NM,
     29-Jul-1999.)  (Proof shortened by Mario Carneiro, 14-Jul-2014.) $)
  cjcj $p |- ( A e. CC -> ( * ` ( * ` A ) ) = A ) $=
    ( cc wcel ccj cfv cre ci cim cmul co caddc wceq cjcl recj eqtrd cneg negeqd
    syl imcj replim imcl recnd negnegd oveq2d oveq12d 3syl 3eqtr4d ) ABCZADEZDE
    ZFEZGUJHEZIJZKJZAFEZGAHEZIJZKJUJAUHUKUOUMUQKUHUKUIFEZUOUHUIBCZUKURLAMZUINRA
    NOUHULUPGIUHULUIHEZPZUPUHUSULVBLUTUISRUHVBUPPZPUPUHVAVCASQUHUPUHUPAUAUBUCOO
    UDUEUHUSUJBCUJUNLUTUIMUJTUFATUG $.

  $( Complex conjugate distributes over addition.  Proposition 10-3.4(a) of
     [Gleason] p. 133.  (Contributed by NM, 31-Jul-1999.)  (Revised by Mario
     Carneiro, 14-Jul-2014.) $)
  cjadd $p |- ( ( A e. CC /\ B e. CC ) ->
                   ( * ` ( A + B ) ) = ( ( * ` A ) + ( * ` B ) ) ) $=
    ( cc wcel caddc co cre cfv ci cim cmul cmin ccj ax-icn cr imcl adantr recnd
    adantl remim readd imadd oveq2d a1i adddid eqtrd oveq12d recl mulcl sylancr
    wa addsub4d wceq addcl syl oveqan12d 3eqtr4d ) ACDZBCDZUKZABEFZGHZIVAJHZKFZ
    LFZAGHZIAJHZKFZLFZBGHZIBJHZKFZLFZEFZVAMHZAMHZBMHZEFUTVEVFVJEFZVHVLEFZLFVNUT
    VBVRVDVSLABUAUTVDIVGVKEFZKFVSUTVCVTIKABUBUCUTIVGVKICDZUTNUDUTVGURVGODUSAPQR
    ZUTVKUSVKODURBPSRZUEUFUGUTVFVJVHVLUTVFURVFODUSAUHQRUTVJUSVJODURBUHSRUTWAVGC
    DVHCDNWBIVGUIUJUTWAVKCDVLCDNWCIVKUIUJULUFUTVACDVOVEUMABUNVATUOURUSVPVIVQVME
    ATBTUPUQ $.

  $( Complex conjugate distributes over multiplication.  Proposition 10-3.4(c)
     of [Gleason] p. 133.  (Contributed by NM, 29-Jul-1999.)  (Proof shortened
     by Mario Carneiro, 14-Jul-2014.) $)
  cjmul $p |- ( ( A e. CC /\ B e. CC ) ->
                   ( * ` ( A x. B ) ) = ( ( * ` A ) x. ( * ` B ) ) ) $=
    ( cc wcel wa cmul co cre cfv cim cmin wceq caddc ccj remullem simp3d ) ACDB
    CDEABFGZHIAHIZBHIZFGAJIZBJIZFGKGLQJIRUAFGTSFGMGLQNIANIBNIFGLABOP $.

  $( Standard inner product on complex numbers.  (Contributed by NM,
     29-Jul-1999.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  ipcnval $p |- ( ( A e. CC /\ B e. CC ) -> ( Re ` ( A x. ( * ` B ) ) ) =
           ( ( ( Re ` A ) x. ( Re ` B ) ) + ( ( Im ` A ) x. ( Im ` B ) ) ) ) $=
    ( cc wcel wa cfv cmul co cre cmin cneg wceq adantl oveq2d imcl recnd syl2an
    cim recl mulcl ccj caddc cjcl remul recj imcj mulneg2 eqtrd oveq12d subnegd
    sylan2 3eqtrd ) ACDZBCDZEZABUAFZGHIFZAIFZUPIFZGHZARFZUPRFZGHZJHZURBIFZGHZVA
    BRFZGHZKZJHVFVHUBHUNUMUPCDUQVDLBUCAUPUDUKUOUTVFVCVIJUOUSVEURGUNUSVELUMBUEMN
    UOVCVAVGKZGHZVIUOVBVJVAGUNVBVJLUMBUFMNUMVACDZVGCDZVKVILUNUMVAAOPZUNVGBOPZVA
    VGUGQUHUIUOVFVHUMURCDVECDVFCDUNUMURASPUNVEBSPURVETQUMVLVMVHCDUNVNVOVAVGTQUJ
    UL $.

  $( A complex number times its conjugate is real.  (Contributed by NM,
     26-Mar-2005.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  cjmulrcl $p |- ( A e. CC -> ( A x. ( * ` A ) ) e. RR ) $=
    ( cc wcel ccj cfv cmul co cr wceq cjcj oveq2d cjmul mpdan mulcom 3eqtr4d wb
    cjcl mulcl cjreb syl mpbird ) ABCZAADEZFGZHCZUDDEZUDIZUBUCUCDEZFGZUCAFGZUFU
    DUBUHAUCFAJKUBUCBCZUFUIIAQZAUCLMUBUKUDUJIULAUCNMOUBUDBCZUEUGPUBUKUMULAUCRMU
    DSTUA $.

  $( A complex number times its conjugate.  (Contributed by NM, 1-Feb-2007.)
     (Revised by Mario Carneiro, 14-Jul-2014.) $)
  cjmulval $p |- ( A e. CC -> ( A x. ( * ` A ) ) =
                 ( ( ( Re ` A ) ^ 2 ) + ( ( Im ` A ) ^ 2 ) ) ) $=
    ( cc wcel cre cfv c2 cexp cim caddc cmul ccj recl recnd sqvald imcl oveq12d
    co wceq ipcnval anidms cr cjmulrcl rere syl 3eqtr2rd ) ABCZADEZFGQZAHEZFGQZ
    IQUGUGJQZUIUIJQZIQZAAKEJQZDEZUNUFUHUKUJULIUFUGUFUGALMNUFUIUFUIAOMNPUFUOUMRA
    ASTUFUNUACUOUNRAUBUNUCUDUE $.

  $( A complex number times its conjugate is nonnegative.  (Contributed by NM,
     26-Mar-2005.)  (Revised by Mario Carneiro, 14-Jul-2014.) $)
  cjmulge0 $p |- ( A e. CC -> 0 <_ ( A x. ( * ` A ) ) ) $=
    ( cc wcel cc0 cre cfv c2 cexp co cim caddc ccj cmul cle recl resqcld sqge0d
    imcl addge0d cjmulval breqtrrd ) ABCZDAEFZGHIZAJFZGHIZKIAALFMINUBUDUFUBUCAO
    ZPUBUEARZPUBUCUGQUBUEUHQSATUA $.

  $( Complex conjugate of negative.  (Contributed by NM, 27-Feb-2005.)
     (Revised by Mario Carneiro, 14-Jul-2014.) $)
  cjneg $p |- ( A e. CC -> ( * ` -u A ) = -u ( * ` A ) ) $=
    ( cc wcel cneg cre cfv ci cim cmul co cmin ccj recl recnd imcl sylancr wceq
    ax-icn 3eqtr4d remim mulcl neg2subd reneg oveq2d mulneg2 oveq12d negsubdi2d
    imneg eqtrd negcl syl negeqd ) ABCZADZEFZGUNHFZIJZKJZAEFZGAHFZIJZKJZDZUNLFZ
    ALFZDUMUSDZVADZKJVAUSKJURVCUMUSVAUMUSAMNZUMGBCZUTBCZVABCRUMUTAONZGUTUAPZUBU
    MUOVFUQVGKAUCUMUQGUTDZIJZVGUMUPVMGIAUHUDUMVIVJVNVGQRVKGUTUEPUIUFUMUSVAVHVLU
    GSUMUNBCVDURQAUJUNTUKUMVEVBATULS $.

  $( A number plus its conjugate is twice its real part.  Compare Proposition
     10-3.4(h) of [Gleason] p. 133.  (Contributed by NM, 21-Jan-2007.)
     (Revised by Mario Carneiro, 14-Jul-2014.) $)
  addcj $p |- ( A e. CC -> ( A + ( * ` A ) ) = ( 2 x. ( Re ` A ) ) ) $=
    ( cc wcel c2 cre cfv cmul ccj caddc cdiv reval oveq2d wceq cjcl addcl mpdan
    co cc0 wne 2cn 2ne0 divcan2 mp3an23 syl eqtr2d ) ABCZDAEFZGQDAAHFZIQZDJQZGQ
    ZUIUFUGUJDGAKLUFUIBCZUKUIMZUFUHBCULANAUHOPULDBCDRSUMTUAUIDUBUCUDUE $.

  $( Complex conjugate distributes over subtraction.  (Contributed by NM,
     28-Apr-2005.) $)
  cjsub $p |- ( ( A e. CC /\ B e. CC ) ->
                   ( * ` ( A - B ) ) = ( ( * ` A ) - ( * ` B ) ) ) $=
    ( cc wcel wa cneg caddc ccj cfv cmin negcl cjadd sylan2 negsub fveq2d cjneg
    co wceq adantl cjcl oveq2d syl2an eqtrd 3eqtr3d ) ACDZBCDZEZABFZGQZHIZAHIZU
    HHIZGQZABJQZHIUKBHIZJQZUFUEUHCDUJUMRBKAUHLMUGUIUNHABNOUGUMUKUOFZGQZUPUGULUQ
    UKGUFULUQRUEBPSUAUEUKCDUOCDURUPRUFATBTUKUONUBUCUD $.

  ${
    $d j k A $.  $d j k N $.
    $( Complex conjugate of positive integer exponentiation.  (Contributed by
       NM, 7-Jun-2006.) $)
    cjexp $p |- ( ( A e. CC /\ N e. NN0 ) ->
               ( * ` ( A ^ N ) ) = ( ( * ` A ) ^ N ) ) $=
      ( vj vk cn0 wcel cc cexp co ccj cfv wi cc0 c1 oveq2 fveq2d eqeq12d imbi2d
      wceq cmul cv caddc exp0 cjcl cr 1re cjre ax-mp syl6eqr eqtr4d expp1 expcl
      syl wa simpl cjmul syl2anc eqtrd adantr oveq1 sylan sylan9eqr exp31 com12
      eqcomd a2d nn0ind impcom ) BEFAGFZABHIZJKZAJKZBHIZSZVIACUAZHIZJKZVLVOHIZS
      ZLVIAMHIZJKZVLMHIZSZLVIADUAZHIZJKZVLWDHIZSZLVIAWDNUBIZHIZJKZVLWIHIZSZLVIV
      NLCDBVOMSZVSWCVIWNVQWAVRWBWNVPVTJVOMAHOPVOMVLHOQRVOWDSZVSWHVIWOVQWFVRWGWO
      VPWEJVOWDAHOPVOWDVLHOQRVOWISZVSWMVIWPVQWKVRWLWPVPWJJVOWIAHOPVOWIVLHOQRVOB
      SZVSVNVIWQVQVKVRVMWQVPVJJVOBAHOPVOBVLHOQRVIWANJKZWBVIVTNJAUCPVIVLGFZWBWRS
      AUDZWSWBNWRVLUCNUEFWRNSUFNUGUHUIUMUJWDEFZVIWHWMVIXAWHWMLVIXAWHWMVIXAUNZWH
      UNWKWFVLTIZWLXBWKXCSWHXBWKWEATIZJKZXCXBWJXDJAWDUKPXBWEGFVIXEXCSAWDULVIXAU
      OWEAUPUQURUSWHXBXCWGVLTIZWLWFWGVLTUTXBWLXFVIWSXAWLXFSWTVLWDUKVAVEVBURVCVD
      VFVGVH $.
  $}

  $( The imaginary part of a number in terms of complex conjugate.
     (Contributed by NM, 30-Apr-2005.) $)
  imval2 $p |- ( A e. CC ->
    ( Im ` A ) = ( ( A - ( * ` A ) ) / ( 2 x. _i ) ) ) $=
    ( cc wcel cim cfv c2 ci cmul co cdiv ccj cmin wceq imcl recnd 2mulicn caddc
    syl ax-icn oveq1d cc0 wne 2muline0 divcan4 mp3an23 cre mulcl sylancr addcld
    recl subsubd replim remim oveq12d 2timesd mulcom mpan2 mulass mp3an12 eqtrd
    2cn pncan2d 3eqtr4d 3eqtr4rd eqtr3d ) ABCZADEZFGHIZHIZVHJIZVGAAKEZLIZVHJIVF
    VGBCZVJVGMZVFVGANOZVMVHBCZVHUAUBVNPUCVGVHUDUERVFVIVLVHJVFAUFEZGVGHIZQIZVQVR
    LIZLIVSVQLIZVRQIZVLVIVFVSVQVRVFVQVRVFVQAUJOZVFGBCZVMVRBCSVOGVGUGUHZUIWCWEUK
    VFAVSVKVTLAULAUMUNVFFVRHIZVRVRQIVIWBVFVRWEUOVFVMVIWFMVOVMVIVHVGHIZWFVMVPVIW
    GMPVGVHUPUQFBCWDVMWGWFMVASFGVGURUSUTRVFWAVRVRQVFVQVRWCWEVBTVCVDTVE $.

  $( The real part of zero.  (Contributed by NM, 27-Jul-1999.) $)
  re0 $p |- ( Re ` 0 ) = 0 $=
    ( cc0 cr wcel cre cfv wceq 0re rere ax-mp ) ABCADEAFGAHI $.

  $( The imaginary part of zero.  (Contributed by NM, 27-Jul-1999.) $)
  im0 $p |- ( Im ` 0 ) = 0 $=
    ( cc0 cr wcel cim cfv wceq 0re reim0 ax-mp ) ABCADEAFGAHI $.

  $( The real part of one.  (Contributed by Scott Fenton, 9-Jun-2006.) $)
  re1 $p |- ( Re ` 1 ) = 1 $=
    ( c1 cr wcel cre cfv wceq 1re rere ax-mp ) ABCADEAFGAHI $.

  $( The imaginary part of one.  (Contributed by Scott Fenton, 9-Jun-2006.) $)
  im1 $p |- ( Im ` 1 ) = 0 $=
    ( c1 cr wcel cim cfv cc0 wceq 1re reim0 ax-mp ) ABCADEFGHAIJ $.

  $( The real part of ` _i ` .  (Contributed by Scott Fenton, 9-Jun-2006.) $)
  rei $p |- ( Re ` _i ) = 0 $=
    ( cc0 ci c1 cmul co caddc cre ax-icn ax-1cn mulcli addid2i fveq2i wcel wceq
    cfv cr 0re 1re crre mp2an mulid1i 3eqtr3ri ) ABCDEZFEZGOZUCGOABGOUDUCGUCBCH
    IJKLAPMCPMUEANQRACSTUCBGBHUALUB $.

  $( The imaginary part of ` _i ` .  (Contributed by Scott Fenton,
     9-Jun-2006.) $)
  imi $p |- ( Im ` _i ) = 1 $=
    ( ci c1 cmul cim cfv cc0 ax-icn ax-1cn mulcli addid2i eqcomi fveq2i mulid1i
    co caddc cr wcel wceq 0re 1re crim mp2an 3eqtr3i ) ABCNZDEFUDONZDEZADEBUDUE
    DUEUDUDABGHIJKLUDADAGMLFPQBPQUFBRSTFBUAUBUC $.

  $( The conjugate of zero.  (Contributed by NM, 27-Jul-1999.) $)
  cj0 $p |- ( * ` 0 ) = 0 $=
    ( cc0 cr wcel ccj cfv wceq 0re cjre ax-mp ) ABCADEAFGAHI $.

  $( The complex conjugate of the imaginary unit.  (Contributed by NM,
     26-Mar-2005.) $)
  cji $p |- ( * ` _i ) = -u _i $=
    ( ci cre cfv cim cmul co cmin cc0 ccj cneg rei c1 imi oveq2i ax-icn mulid1i
    eqtri oveq12i cc wcel wceq remim ax-mp df-neg 3eqtr4i ) ABCZAADCZEFZGFZHAGF
    AICZAJUFHUHAGKUHALEFAUGLAEMNAOPQRASTUJUIUAOAUBUCAUDUE $.

  $( The conjugate of a representation of a complex number in terms of real and
     imaginary parts.  (Contributed by NM, 1-Jul-2005.) $)
  cjreim $p |- ( ( A e. RR /\ B e. RR ) -> ( * ` ( A + ( _i x. B ) ) ) =
                ( A - ( _i x. B ) ) ) $=
    ( cr wcel wa ci cmul co caddc ccj cfv cneg cc wceq recn ax-icn sylancr cjre
    syl2an 3eqtrd cmin mulcl cjadd cjmul cji oveq12d mulneg1 oveqan12d negsub
    a1i ) ACDZBCDZEAFBGHZIHJKZAJKZUMJKZIHZAUMLZIHZAUMUAHZUKAMDZUMMDZUNUQNULAOZU
    LFMDZBMDZVBPBOZFBUBQZAUMUCSUKULUOAUPURIARULUPFJKZBJKZGHZFLZBGHZURULVDVEUPVJ
    NPVFFBUDQULVHVKVIBGVHVKNULUEUJBRUFULVDVEVLURNPVFFBUGQTUHUKVAVBUSUTNULVCVGAU
    MUIST $.

  $( The conjugate of the representation of a complex number in terms of real
     and imaginary parts.  (Contributed by NM, 1-Jul-2005.)  (Proof shortened
     by Mario Carneiro, 29-May-2016.) $)
  cjreim2 $p |- ( ( A e. RR /\ B e. RR ) -> ( * ` ( A - ( _i x. B ) ) ) =
                ( A + ( _i x. B ) ) ) $=
    ( cr wcel wa ci cmul co caddc ccj cfv cmin cjreim fveq2d simpl recnd ax-icn
    cc wceq a1i simpr mulcld addcld cjcj syl eqtr3d ) ACDZBCDZEZAFBGHZIHZJKZJKZ
    AUJLHZJKUKUIULUNJABMNUIUKRDUMUKSUIAUJUIAUGUHOPUIFBFRDUIQTUIBUGUHUAPUBUCUKUD
    UEUF $.

  $( Complex conjugate is a one-to-one function.  (Contributed by NM,
     29-Apr-2005.)  (Proof shortened by Eric Schmidt, 2-Jul-2009.) $)
  cj11 $p |- ( ( A e. CC /\ B e. CC ) ->
              ( ( * ` A ) = ( * ` B ) <-> A = B ) ) $=
    ( cc wcel wa ccj cfv wceq fveq2 cjcj eqeqan12d syl5ib impbid1 ) ACDZBCDZEZA
    FGZBFGZHZABHZSQFGZRFGZHPTQRFINOUAAUBBAJBJKLABFIM $.

  $( A number is nonzero iff its complex conjugate is nonzero.  (Contributed by
     NM, 29-Apr-2005.) $)
  cjne0 $p |- ( A e. CC -> ( A =/= 0 <-> ( * ` A ) =/= 0 ) ) $=
    ( cc wcel cc0 ccj cfv wceq cj0 eqeq2i wb 0cn cj11 mpan2 syl5rbbr necon3bid
    ) ABCZADAEFZDQDGQDEFZGZPADGZRDQHIPDBCSTJKADLMNO $.

  $( Complex conjugate distributes over division.  (Contributed by NM,
     29-Apr-2005.)  (Proof shortened by Mario Carneiro, 29-May-2016.) $)
  cjdiv $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
                   ( * ` ( A / B ) ) = ( ( * ` A ) / ( * ` B ) ) ) $=
    ( cc wcel cc0 wne w3a cdiv co ccj cfv cmul divcl cjcl syl simp2 simp3 cjne0
    wb eqtr3d mpbid divcan4d wceq cjmul syl2anc divcan1 fveq2d oveq1d ) ACDZBCD
    ZBEFZGZABHIZJKZBJKZLIZUOHIUNAJKZUOHIULUNUOULUMCDZUNCDABMZUMNOULUJUOCDUIUJUK
    PZBNOULUKUOEFZUIUJUKQULUJUKVASUTBROUAUBULUPUQUOHULUMBLIZJKZUPUQULURUJVCUPUC
    USUTUMBUDUEULVBAJABUFUGTUHT $.

  ${
    $d F z $.  $d x y z $.
    cnrecnv.1 $e |- F = ( x e. RR , y e. RR |-> ( x + ( _i x. y ) ) ) $.
    $( The inverse to the canonical bijection from ` ( RR X. RR ) ` to ` CC `
       from ~ cnref1o .  (Contributed by Mario Carneiro, 25-Aug-2014.) $)
    cnrecnv $p |- `' F = ( z e. CC |-> <. ( Re ` z ) , ( Im ` z ) >. ) $=
      ( ccnv cc cv cfv cmpt wceq wtru cr wf1o wcel ci cmul co caddc syl2anc cre
      cim cop cxp wf cnref1o f1ocnv f1of mp2b a1i feqmptd trud df-ov recl oveq1
      imcl oveq2d ovmpt2 syl5eqr replim eqtr4d fveq2d opelxpi f1ocnvfv1 sylancr
      oveq2 ovex eqtr3d mpteq2ia eqtri ) DFZCGCHZVKIZJZCGVLUAIZVLUBIZUCZJVKVNKL
      CGMMUDZVKGVRVKUEZLVRGDNZGVRVKNVSABDEUFZVRGDUGGVRVKUHUIUJUKULCGVMVQVLGOZVQ
      DIZVKIZVMVQWBWCVLVKWBWCVOPVPQRZSRZVLWBWCVOVPDRZWFVOVPDUMWBVOMOZVPMOZWGWFK
      VLUNZVLUPZABVOVPMMAHZPBHZQRZSRWFDVOWNSRWLVOWNSUOWMVPKWNWEVOSWMVPPQVFUQEVO
      WESVGURTUSVLUTVAVBWBVTVQVROZWDVQKWAWBWHWIWOWJWKVOVPMMVCTVRGVQDVDVEVHVIVJ
      $.
  $}

  ${
    sqeqd.1 $e |- ( ph -> A e. CC ) $.
    sqeqd.2 $e |- ( ph -> B e. CC ) $.
    sqeqd.3 $e |- ( ph -> ( A ^ 2 ) = ( B ^ 2 ) ) $.
    sqeqd.4 $e |- ( ph -> 0 <_ ( Re ` A ) ) $.
    sqeqd.5 $e |- ( ph -> 0 <_ ( Re ` B ) ) $.
    sqeqd.6 $e |- ( ( ph /\ ( Re ` A ) = 0 /\ ( Re ` B ) = 0 ) -> A = B ) $.
    $( A deduction for showing two numbers whose squares are equal are
       themselves equal.  (Contributed by Mario Carneiro, 3-Apr-2015.) $)
    sqeqd $p |- ( ph -> A = B ) $=
      ( wceq cneg c2 cexp wcel cre cfv cc0 cle wbr adantr wn co wo cc wb sqeqor
      syl2anc mpbid ord wa simpl fveq2 reneg sylan9eqr breqtrd cr recl le0neg1d
      syl mpbird letri3 sylancl mpbir2and negeqd neg0 syl6eq eqtrd syl3anc syld
      0re ex pm2.18d ) ABCJZAVMUABCKZJZVMAVMVOABLMUBCLMUBJZVMVOUCZFABUDNCUDNZVP
      VQUEDEBCUFUGUHUIAVOVMAVOUJZABOPZQJCOPZQJZVMAVOUKVSVTWAKZQVOAVTVNOPZWCBVNO
      ULAVRWDWCJECUMUSUNZVSWCQKQVSWAQVSWBWAQRSZQWARSZVSWFQWCRSVSQVTWCRAQVTRSVOG
      TWEUOVSWAVSVRWAUPNZAVRVOETCUQUSZURUTAWGVOHTVSWHQUPNWBWFWGUJUEWIVJWAQVAVBV
      CZVDVEVFVGWJIVHVKVIVL $.
  $}

  ${
    recl.1 $e |- A e. CC $.
    $( The real part of a complex number is real (closure law).  (Contributed
       by NM, 11-May-1999.) $)
    recli $p |- ( Re ` A ) e. RR $=
      ( cc wcel cre cfv cr recl ax-mp ) ACDAEFGDBAHI $.

    $( The imaginary part of a complex number is real (closure law).
       (Contributed by NM, 11-May-1999.) $)
    imcli $p |- ( Im ` A ) e. RR $=
      ( cc wcel cim cfv cr imcl ax-mp ) ACDAEFGDBAHI $.

    $( Closure law for complex conjugate.  (Contributed by NM, 11-May-1999.) $)
    cjcli $p |- ( * ` A ) e. CC $=
      ( cc wcel ccj cfv cjcl ax-mp ) ACDAEFCDBAGH $.

    $( Construct a complex number from its real and imaginary parts.
       (Contributed by NM, 1-Oct-1999.) $)
    replimi $p |- A = ( ( Re ` A ) + ( _i x. ( Im ` A ) ) ) $=
      ( cc wcel cre cfv ci cim cmul co caddc wceq replim ax-mp ) ACDAAEFGAHFIJK
      JLBAMN $.

    $( The conjugate of the conjugate is the original complex number.
       Proposition 10-3.4(e) of [Gleason] p. 133.  (Contributed by NM,
       11-May-1999.) $)
    cjcji $p |- ( * ` ( * ` A ) ) = A $=
      ( cc wcel ccj cfv wceq cjcj ax-mp ) ACDAEFEFAGBAHI $.

    $( A number is real iff its imaginary part is 0.  (Contributed by NM,
       29-May-1999.) $)
    reim0bi $p |- ( A e. RR <-> ( Im ` A ) = 0 ) $=
      ( cc wcel cr cim cfv cc0 wceq wb reim0b ax-mp ) ACDAEDAFGHIJBAKL $.

    $( A real number equals its real part.  Proposition 10-3.4(f) of [Gleason]
       p. 133.  (Contributed by NM, 27-Oct-1999.) $)
    rerebi $p |- ( A e. RR <-> ( Re ` A ) = A ) $=
      ( cc wcel cr cre cfv wceq wb rereb ax-mp ) ACDAEDAFGAHIBAJK $.

    $( A number is real iff it equals its complex conjugate.  Proposition
       10-3.4(f) of [Gleason] p. 133.  (Contributed by NM, 11-Oct-1999.) $)
    cjrebi $p |- ( A e. RR <-> ( * ` A ) = A ) $=
      ( cc wcel cr ccj cfv wceq wb cjreb ax-mp ) ACDAEDAFGAHIBAJK $.

    $( Real part of a complex conjugate.  (Contributed by NM, 2-Oct-1999.) $)
    recji $p |- ( Re ` ( * ` A ) ) = ( Re ` A ) $=
      ( cc wcel ccj cfv cre wceq recj ax-mp ) ACDAEFGFAGFHBAIJ $.

    $( Imaginary part of a complex conjugate.  (Contributed by NM,
       2-Oct-1999.) $)
    imcji $p |- ( Im ` ( * ` A ) ) = -u ( Im ` A ) $=
      ( cc wcel ccj cfv cim cneg wceq imcj ax-mp ) ACDAEFGFAGFHIBAJK $.

    $( A complex number times its conjugate is real.  (Contributed by NM,
       11-May-1999.) $)
    cjmulrcli $p |- ( A x. ( * ` A ) ) e. RR $=
      ( cc wcel ccj cfv cmul co cr cjmulrcl ax-mp ) ACDAAEFGHIDBAJK $.

    $( A complex number times its conjugate.  (Contributed by NM,
       2-Oct-1999.) $)
    cjmulvali $p |- ( A x. ( * ` A ) ) =
                   ( ( ( Re ` A ) ^ 2 ) + ( ( Im ` A ) ^ 2 ) ) $=
      ( cc wcel ccj cfv cmul co cre c2 cexp cim caddc wceq cjmulval ax-mp ) ACD
      AAEFGHAIFJKHALFJKHMHNBAOP $.

    $( A complex number times its conjugate is nonnegative.  (Contributed by
       NM, 28-May-1999.) $)
    cjmulge0i $p |- 0 <_ ( A x. ( * ` A ) ) $=
      ( cc wcel cc0 ccj cfv cmul co cle wbr cjmulge0 ax-mp ) ACDEAAFGHIJKBALM
      $.

    $( Real part of negative.  (Contributed by NM, 2-Aug-1999.) $)
    renegi $p |- ( Re ` -u A ) = -u ( Re ` A ) $=
      ( cc wcel cneg cre cfv wceq reneg ax-mp ) ACDAEFGAFGEHBAIJ $.

    $( Imaginary part of negative.  (Contributed by NM, 2-Aug-1999.) $)
    imnegi $p |- ( Im ` -u A ) = -u ( Im ` A ) $=
      ( cc wcel cneg cim cfv wceq imneg ax-mp ) ACDAEFGAFGEHBAIJ $.

    $( Complex conjugate of negative.  (Contributed by NM, 2-Aug-1999.) $)
    cjnegi $p |- ( * ` -u A ) = -u ( * ` A ) $=
      ( cc wcel cneg ccj cfv wceq cjneg ax-mp ) ACDAEFGAFGEHBAIJ $.

    $( A number plus its conjugate is twice its real part.  Compare Proposition
       10-3.4(h) of [Gleason] p. 133.  (Contributed by NM, 2-Oct-1999.) $)
    addcji $p |- ( A + ( * ` A ) ) = ( 2 x. ( Re ` A ) ) $=
      ( cc wcel ccj cfv caddc co c2 cre cmul wceq addcj ax-mp ) ACDAAEFGHIAJFKH
      LBAMN $.

    readdi.2 $e |- B e. CC $.
    $( Real part distributes over addition.  (Contributed by NM,
       28-Jul-1999.) $)
    readdi $p |- ( Re ` ( A + B ) ) = ( ( Re ` A ) + ( Re ` B ) ) $=
      ( cc wcel caddc co cre cfv wceq readd mp2an ) AEFBEFABGHIJAIJBIJGHKCDABLM
      $.

    $( Imaginary part distributes over addition.  (Contributed by NM,
       28-Jul-1999.) $)
    imaddi $p |- ( Im ` ( A + B ) ) = ( ( Im ` A ) + ( Im ` B ) ) $=
      ( cc wcel caddc co cim cfv wceq imadd mp2an ) AEFBEFABGHIJAIJBIJGHKCDABLM
      $.

    $( Real part of a product.  (Contributed by NM, 28-Jul-1999.) $)
    remuli $p |- ( Re ` ( A x. B ) ) =
          ( ( ( Re ` A ) x. ( Re ` B ) ) - ( ( Im ` A ) x. ( Im ` B ) ) ) $=
      ( cc wcel cmul co cre cfv cim cmin wceq remul mp2an ) AEFBEFABGHIJAIJBIJG
      HAKJBKJGHLHMCDABNO $.

    $( Imaginary part of a product.  (Contributed by NM, 28-Jul-1999.) $)
    immuli $p |- ( Im ` ( A x. B ) ) =
          ( ( ( Re ` A ) x. ( Im ` B ) ) + ( ( Im ` A ) x. ( Re ` B ) ) ) $=
      ( cc wcel cmul co cim cfv cre caddc wceq immul mp2an ) AEFBEFABGHIJAKJBIJ
      GHAIJBKJGHLHMCDABNO $.

    $( Complex conjugate distributes over addition.  Proposition 10-3.4(a) of
       [Gleason] p. 133.  (Contributed by NM, 28-Jul-1999.) $)
    cjaddi $p |- ( * ` ( A + B ) ) = ( ( * ` A ) + ( * ` B ) ) $=
      ( cc wcel caddc co ccj cfv wceq cjadd mp2an ) AEFBEFABGHIJAIJBIJGHKCDABLM
      $.

    $( Complex conjugate distributes over multiplication.  Proposition
       10-3.4(c) of [Gleason] p. 133.  (Contributed by NM, 28-Jul-1999.) $)
    cjmuli $p |- ( * ` ( A x. B ) ) = ( ( * ` A ) x. ( * ` B ) ) $=
      ( cc wcel cmul co ccj cfv wceq cjmul mp2an ) AEFBEFABGHIJAIJBIJGHKCDABLM
      $.

    $( Standard inner product on complex numbers.  (Contributed by NM,
       2-Oct-1999.) $)
    ipcni $p |- ( Re ` ( A x. ( * ` B ) ) ) =
           ( ( ( Re ` A ) x. ( Re ` B ) ) + ( ( Im ` A ) x. ( Im ` B ) ) ) $=
      ( cc wcel ccj cfv cmul co cre cim caddc wceq ipcnval mp2an ) AEFBEFABGHIJ
      KHAKHBKHIJALHBLHIJMJNCDABOP $.

    $( Complex conjugate distributes over division.  (Contributed by NM,
       29-Apr-2005.)  (Revised by Mario Carneiro, 29-May-2016.) $)
    cjdivi $p |- ( B =/= 0 ->
                    ( * ` ( A / B ) ) = ( ( * ` A ) / ( * ` B ) ) ) $=
      ( cc wcel cc0 wne cdiv co ccj cfv wceq cjdiv mp3an12 ) AEFBEFBGHABIJKLAKL
      BKLIJMCDABNO $.
  $}

  ${
    crre.1 $e |- A e. RR $.
    crre.2 $e |- B e. RR $.
    $( The real part of a complex number representation.  Definition 10-3.1 of
       [Gleason] p. 132.  (Contributed by NM, 10-May-1999.) $)
    crrei $p |- ( Re ` ( A + ( _i x. B ) ) ) = A $=
      ( cr wcel ci cmul co caddc cre cfv wceq crre mp2an ) AEFBEFAGBHIJIKLAMCDA
      BNO $.

    $( The imaginary part of a complex number representation.  Definition
       10-3.1 of [Gleason] p. 132.  (Contributed by NM, 10-May-1999.) $)
    crimi $p |- ( Im ` ( A + ( _i x. B ) ) ) = B $=
      ( cr wcel ci cmul co caddc cim cfv wceq crim mp2an ) AEFBEFAGBHIJIKLBMCDA
      BNO $.
  $}

  ${
    recld.1 $e |- ( ph -> A e. CC ) $.
    $( The real part of a complex number is real (closure law).  (Contributed
       by Mario Carneiro, 29-May-2016.) $)
    recld $p |- ( ph -> ( Re ` A ) e. RR ) $=
      ( cc wcel cre cfv cr recl syl ) ABDEBFGHECBIJ $.

    $( The imaginary part of a complex number is real (closure law).
       (Contributed by Mario Carneiro, 29-May-2016.) $)
    imcld $p |- ( ph -> ( Im ` A ) e. RR ) $=
      ( cc wcel cim cfv cr imcl syl ) ABDEBFGHECBIJ $.

    $( Closure law for complex conjugate.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    cjcld $p |- ( ph -> ( * ` A ) e. CC ) $=
      ( cc wcel ccj cfv cjcl syl ) ABDEBFGDECBHI $.

    $( Construct a complex number from its real and imaginary parts.
       (Contributed by Mario Carneiro, 29-May-2016.) $)
    replimd $p |- ( ph -> A = ( ( Re ` A ) + ( _i x. ( Im ` A ) ) ) ) $=
      ( cc wcel cre cfv ci cim cmul co caddc wceq replim syl ) ABDEBBFGHBIGJKLK
      MCBNO $.

    $( Value of the conjugate of a complex number.  The value is the real part
       minus ` _i ` times the imaginary part.  Definition 10-3.2 of [Gleason]
       p. 132.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    remimd $p |- ( ph -> ( * ` A ) = ( ( Re ` A ) - ( _i x. ( Im ` A ) ) ) ) $=
      ( cc wcel ccj cfv cre ci cim cmul co cmin wceq remim syl ) ABDEBFGBHGIBJG
      KLMLNCBOP $.

    $( The conjugate of the conjugate is the original complex number.
       Proposition 10-3.4(e) of [Gleason] p. 133.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    cjcjd $p |- ( ph -> ( * ` ( * ` A ) ) = A ) $=
      ( cc wcel ccj cfv wceq cjcj syl ) ABDEBFGFGBHCBIJ $.

    ${
      reim0bd.2 $e |- ( ph -> ( Im ` A ) = 0 ) $.
      $( A number is real iff its imaginary part is 0.  (Contributed by Mario
         Carneiro, 29-May-2016.) $)
      reim0bd $p |- ( ph -> A e. RR ) $=
        ( cr wcel cim cfv cc0 wceq cc wb reim0b syl mpbird ) ABEFZBGHIJZDABKFPQ
        LCBMNO $.
    $}

    ${
      rerebd.2 $e |- ( ph -> ( Re ` A ) = A ) $.
      $( A real number equals its real part.  Proposition 10-3.4(f) of
         [Gleason] p. 133.  (Contributed by Mario Carneiro, 29-May-2016.) $)
      rerebd $p |- ( ph -> A e. RR ) $=
        ( cr wcel cre cfv wceq cc wb rereb syl mpbird ) ABEFZBGHBIZDABJFOPKCBLM
        N $.
    $}

    ${
      cjrebd.2 $e |- ( ph -> ( * ` A ) = A ) $.
      $( A number is real iff it equals its complex conjugate.  Proposition
         10-3.4(f) of [Gleason] p. 133.  (Contributed by Mario Carneiro,
         29-May-2016.) $)
      cjrebd $p |- ( ph -> A e. RR ) $=
        ( cr wcel ccj cfv wceq cc wb cjreb syl mpbird ) ABEFZBGHBIZDABJFOPKCBLM
        N $.
    $}

    ${
      cjne0d.2 $e |- ( ph -> A =/= 0 ) $.
      $( A number is nonzero iff its complex conjugate is nonzero.
         (Contributed by Mario Carneiro, 29-May-2016.) $)
      cjne0d $p |- ( ph -> ( * ` A ) =/= 0 ) $=
        ( cc0 wne ccj cfv cc wcel wb cjne0 syl mpbid ) ABEFZBGHEFZDABIJOPKCBLMN
        $.
    $}

    $( Real part of a complex conjugate.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    recjd $p |- ( ph -> ( Re ` ( * ` A ) ) = ( Re ` A ) ) $=
      ( cc wcel ccj cfv cre wceq recj syl ) ABDEBFGHGBHGICBJK $.

    $( Imaginary part of a complex conjugate.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    imcjd $p |- ( ph -> ( Im ` ( * ` A ) ) = -u ( Im ` A ) ) $=
      ( cc wcel ccj cfv cim cneg wceq imcj syl ) ABDEBFGHGBHGIJCBKL $.

    $( A complex number times its conjugate is real.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    cjmulrcld $p |- ( ph -> ( A x. ( * ` A ) ) e. RR ) $=
      ( cc wcel ccj cfv cmul co cr cjmulrcl syl ) ABDEBBFGHIJECBKL $.

    $( A complex number times its conjugate.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    cjmulvald $p |- ( ph -> ( A x. ( * ` A ) ) =
                   ( ( ( Re ` A ) ^ 2 ) + ( ( Im ` A ) ^ 2 ) ) ) $=
      ( cc wcel ccj cfv cmul co cre c2 cexp cim caddc wceq cjmulval syl ) ABDEB
      BFGHIBJGKLIBMGKLINIOCBPQ $.

    $( A complex number times its conjugate is nonnegative.  (Contributed by
       Mario Carneiro, 29-May-2016.) $)
    cjmulge0d $p |- ( ph -> 0 <_ ( A x. ( * ` A ) ) ) $=
      ( cc wcel cc0 ccj cfv cmul co cle wbr cjmulge0 syl ) ABDEFBBGHIJKLCBMN $.

    $( Real part of negative.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    renegd $p |- ( ph -> ( Re ` -u A ) = -u ( Re ` A ) ) $=
      ( cc wcel cneg cre cfv wceq reneg syl ) ABDEBFGHBGHFICBJK $.

    $( Imaginary part of negative.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    imnegd $p |- ( ph -> ( Im ` -u A ) = -u ( Im ` A ) ) $=
      ( cc wcel cneg cim cfv wceq imneg syl ) ABDEBFGHBGHFICBJK $.

    $( Complex conjugate of negative.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    cjnegd $p |- ( ph -> ( * ` -u A ) = -u ( * ` A ) ) $=
      ( cc wcel cneg ccj cfv wceq cjneg syl ) ABDEBFGHBGHFICBJK $.

    $( A number plus its conjugate is twice its real part.  Compare Proposition
       10-3.4(h) of [Gleason] p. 133.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    addcjd $p |- ( ph -> ( A + ( * ` A ) ) = ( 2 x. ( Re ` A ) ) ) $=
      ( cc wcel ccj cfv caddc co c2 cre cmul wceq addcj syl ) ABDEBBFGHIJBKGLIM
      CBNO $.

    ${
      cjexpd.2 $e |- ( ph -> N e. NN0 ) $.
      $( Complex conjugate of positive integer exponentiation.  (Contributed by
         Mario Carneiro, 29-May-2016.) $)
      cjexpd $p |- ( ph -> ( * ` ( A ^ N ) ) = ( ( * ` A ) ^ N ) ) $=
        ( cc wcel cn0 cexp co ccj cfv wceq cjexp syl2anc ) ABFGCHGBCIJKLBKLCIJM
        DEBCNO $.
    $}

    readdd.2 $e |- ( ph -> B e. CC ) $.
    $( Real part distributes over addition.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    readdd $p |- ( ph -> ( Re ` ( A + B ) ) = ( ( Re ` A ) + ( Re ` B ) ) ) $=
      ( cc wcel caddc co cre cfv wceq readd syl2anc ) ABFGCFGBCHIJKBJKCJKHILDEB
      CMN $.

    $( Imaginary part distributes over addition.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    imaddd $p |- ( ph -> ( Im ` ( A + B ) ) = ( ( Im ` A ) + ( Im ` B ) ) ) $=
      ( cc wcel caddc co cim cfv wceq imadd syl2anc ) ABFGCFGBCHIJKBJKCJKHILDEB
      CMN $.

    $( Real part distributes over subtraction.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    resubd $p |- ( ph -> ( Re ` ( A - B ) ) = ( ( Re ` A ) - ( Re ` B ) ) ) $=
      ( cc wcel cmin co cre cfv wceq resub syl2anc ) ABFGCFGBCHIJKBJKCJKHILDEBC
      MN $.

    $( Imaginary part distributes over subtraction.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    imsubd $p |- ( ph -> ( Im ` ( A - B ) ) = ( ( Im ` A ) - ( Im ` B ) ) ) $=
      ( cc wcel cmin co cim cfv wceq imsub syl2anc ) ABFGCFGBCHIJKBJKCJKHILDEBC
      MN $.

    $( Real part of a product.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    remuld $p |- ( ph -> ( Re ` ( A x. B ) ) =
          ( ( ( Re ` A ) x. ( Re ` B ) ) - ( ( Im ` A ) x. ( Im ` B ) ) ) ) $=
      ( cc wcel cmul co cre cfv cim cmin wceq remul syl2anc ) ABFGCFGBCHIJKBJKC
      JKHIBLKCLKHIMINDEBCOP $.

    $( Imaginary part of a product.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    immuld $p |- ( ph -> ( Im ` ( A x. B ) ) =
          ( ( ( Re ` A ) x. ( Im ` B ) ) + ( ( Im ` A ) x. ( Re ` B ) ) ) ) $=
      ( cc wcel cmul co cim cfv cre caddc wceq immul syl2anc ) ABFGCFGBCHIJKBLK
      CJKHIBJKCLKHIMINDEBCOP $.

    $( Complex conjugate distributes over addition.  Proposition 10-3.4(a) of
       [Gleason] p. 133.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    cjaddd $p |- ( ph -> ( * ` ( A + B ) ) = ( ( * ` A ) + ( * ` B ) ) ) $=
      ( cc wcel caddc co ccj cfv wceq cjadd syl2anc ) ABFGCFGBCHIJKBJKCJKHILDEB
      CMN $.

    $( Complex conjugate distributes over multiplication.  Proposition
       10-3.4(c) of [Gleason] p. 133.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    cjmuld $p |- ( ph -> ( * ` ( A x. B ) ) = ( ( * ` A ) x. ( * ` B ) ) ) $=
      ( cc wcel cmul co ccj cfv wceq cjmul syl2anc ) ABFGCFGBCHIJKBJKCJKHILDEBC
      MN $.

    $( Standard inner product on complex numbers.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    ipcnd $p |- ( ph -> ( Re ` ( A x. ( * ` B ) ) ) =
           ( ( ( Re ` A ) x. ( Re ` B ) ) + ( ( Im ` A ) x. ( Im ` B ) ) ) ) $=
      ( cc wcel ccj cfv cmul co cre cim caddc wceq ipcnval syl2anc ) ABFGCFGBCH
      IJKLIBLICLIJKBMICMIJKNKODEBCPQ $.

    cjdivd.2 $e |- ( ph -> B =/= 0 ) $.
    $( Complex conjugate distributes over division.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    cjdivd $p |- ( ph ->
                    ( * ` ( A / B ) ) = ( ( * ` A ) / ( * ` B ) ) ) $=
      ( cc wcel cc0 wne cdiv co ccj cfv wceq cjdiv syl3anc ) ABGHCGHCIJBCKLMNBM
      NCMNKLODEFBCPQ $.
  $}

  ${
    crred.1 $e |- ( ph -> A e. RR ) $.
    $( A real number equals its real part.  One direction of Proposition
       10-3.4(f) of [Gleason] p. 133.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    rered $p |- ( ph -> ( Re ` A ) = A ) $=
      ( cr wcel cre cfv wceq rere syl ) ABDEBFGBHCBIJ $.

    $( The imaginary part of a real number is 0.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    reim0d $p |- ( ph -> ( Im ` A ) = 0 ) $=
      ( cr wcel cim cfv cc0 wceq reim0 syl ) ABDEBFGHICBJK $.

    $( A real number equals its complex conjugate.  Proposition 10-3.4(f) of
       [Gleason] p. 133.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    cjred $p |- ( ph -> ( * ` A ) = A ) $=
      ( cr wcel ccj cfv wceq cjre syl ) ABDEBFGBHCBIJ $.

    ${
      remul2d.2 $e |- ( ph -> B e. CC ) $.
      $( Real part of a product.  (Contributed by Mario Carneiro,
         29-May-2016.) $)
      remul2d $p |- ( ph -> ( Re ` ( A x. B ) ) = ( A x. ( Re ` B ) ) ) $=
        ( cr wcel cc cmul co cre cfv wceq remul2 syl2anc ) ABFGCHGBCIJKLBCKLIJM
        DEBCNO $.

      $( Imaginary part of a product.  (Contributed by Mario Carneiro,
         29-May-2016.) $)
      immul2d $p |- ( ph -> ( Im ` ( A x. B ) ) = ( A x. ( Im ` B ) ) ) $=
        ( cr wcel cc cmul co cim cfv wceq immul2 syl2anc ) ABFGCHGBCIJKLBCKLIJM
        DEBCNO $.

      redivd.2 $e |- ( ph -> A =/= 0 ) $.
      $( Real part of a division.  Related to ~ remul2 .  (Contributed by Mario
         Carneiro, 29-May-2016.) $)
      redivd $p |- ( ph -> ( Re ` ( B / A ) ) = ( ( Re ` B ) / A ) ) $=
        ( cc wcel cr cc0 wne cdiv co cre cfv wceq rediv syl3anc ) ACGHBIHBJKCBL
        MNOCNOBLMPEDFCBQR $.

      $( Imaginary part of a division.  Related to ~ remul2 .  (Contributed by
         Mario Carneiro, 29-May-2016.) $)
      imdivd $p |- ( ph -> ( Im ` ( B / A ) ) = ( ( Im ` B ) / A ) ) $=
        ( cc wcel cr cc0 wne cdiv co cim cfv wceq imdiv syl3anc ) ACGHBIHBJKCBL
        MNOCNOBLMPEDFCBQR $.
    $}

    crred.2 $e |- ( ph -> B e. RR ) $.
    $( The real part of a complex number representation.  Definition 10-3.1 of
       [Gleason] p. 132.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    crred $p |- ( ph -> ( Re ` ( A + ( _i x. B ) ) ) = A ) $=
      ( cr wcel ci cmul co caddc cre cfv wceq crre syl2anc ) ABFGCFGBHCIJKJLMBN
      DEBCOP $.

    $( The imaginary part of a complex number representation.  Definition
       10-3.1 of [Gleason] p. 132.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    crimd $p |- ( ph -> ( Im ` ( A + ( _i x. B ) ) ) = B ) $=
      ( cr wcel ci cmul co caddc cim cfv wceq crim syl2anc ) ABFGCFGBHCIJKJLMCN
      DEBCOP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Square root; absolute value
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c sqrt $. $( Positive square root of a positive real number. $)
  $c abs $. $( Absolute value function. $)
  $c +- $. $( Plus-or-minus symbol (for comments only) $)

  $( Extend class notation to include square root of a complex number. $)
  csqrt $a class sqrt $.

  $( Extend class notation to include a function for the absolute value
     (modulus) of a complex number. $)
  cabs $a class abs $.

  ${
    $d x y A $.
    $( Define a function whose value is the square root of a complex number.
       For example, ` ( sqrt `` 2 5 ) = 5 ` ( ~ ex-sqrt ).

       Since ` ( y ^ 2 ) = x ` iff ` ( -u y ^ 2 ) = x ` , we ensure uniqueness
       by restricting the range to numbers with positive real part, or numbers
       with 0 real part and nonnegative imaginary part.  A description can be
       found under "Principal square root of a complex number" at
       ~ http://en.wikipedia.org/wiki/Square_root .  The square root symbol was
       introduced in 1525 by Christoff Rudolff.

       See ~ sqrtcl for its closure, ~ sqrtval for its value, ~ sqrtth and
       ~ sqsqrti for its relationship to squares, and ~ sqrt11i for uniqueness.
       (Contributed by NM, 27-Jul-1999.)  (Revised by Mario Carneiro,
       8-Jul-2013.) $)
    df-sqrt $a |- sqrt = ( x e. CC |-> ( iota_ y e. CC ( ( y ^ 2 ) = x /\
      0 <_ ( Re ` y ) /\ ( _i x. y ) e/ RR+ ) ) ) $.

    $( Define the function for the absolute value (modulus) of a complex
       number.  See ~ abscli for its closure and ~ absval or ~ absval2i for its
       value.  For example, ` ( abs `` -u 2 ) = 2 ` ( ~ ex-abs ).  (Contributed
       by NM, 27-Jul-1999.) $)
    df-abs $a |- abs = ( x e. CC |-> ( sqrt ` ( x x. ( * ` x ) ) ) ) $.

    $( Value of square root function.  (Contributed by Mario Carneiro,
       8-Jul-2013.) $)
    sqrtval $p |- ( A e. CC -> ( sqrt ` A ) =
      ( iota_ x e. CC ( ( x ^ 2 ) = A /\
        0 <_ ( Re ` x ) /\ ( _i x. x ) e/ RR+ ) ) ) $=
      ( vy cv c2 cexp co wceq cc0 cre cfv cle wbr ci cmul crp wnel w3a cc crio
      csqrt eqeq2 3anbi1d riotabidv df-sqrt riotaex fvmpt ) CBADZEFGZCDZHZIUHJK
      LMZNUHOGPQZRZASTUIBHZULUMRZASTSUAUJBHZUNUPASUQUKUOULUMUJBUIUBUCUDCAUEUPAS
      UFUG $.

    $( The absolute value (modulus) of a complex number.  Proposition 10-3.7(a)
       of [Gleason] p. 133.  (Contributed by NM, 27-Jul-1999.)  (Revised by
       Mario Carneiro, 7-Nov-2013.) $)
    absval $p |- ( A e. CC -> ( abs ` A ) = ( sqrt ` ( A x. ( * ` A ) ) ) ) $=
      ( vx cv ccj cfv cmul co csqrt cc cabs wceq fveq2 oveq12 mpdan fveq2d fvex
      df-abs fvmpt ) BABCZSDEZFGZHEAADEZFGZHEIJSAKZUAUCHUDTUBKUAUCKSADLSATUBFMN
      OBQUCHPR $.
  $}

  $( A real number does not lie on the negative imaginary axis.  (Contributed
     by Mario Carneiro, 8-Jul-2013.) $)
  rennim $p |- ( A e. RR -> ( _i x. A ) e/ RR+ ) $=
    ( cr wcel ci cmul co crp wn wnel cc0 wceq cre cfv cc wi ax-icn recn sylancr
    mulcl rpre rereb syl5ib caddc addid2d fveq2d crre mpan eqtr3d eqeq1d sylibd
    syl 0re rpne0 necon2bi eqcoms syl6 pm2.01d df-nel sylibr ) ABCZDAEFZGCZHZVA
    GIUTVBUTVBJVAKZVCUTVBVALMZVAKZVDUTVANCZVBVFOUTDNCANCVGPAQDASRZVBVABCVGVFVAT
    VAUAUBUKUTVEJVAUTJVAUCFZLMZVEJUTVIVALUTVAVHUDUEJBCUTVJJKULJAUFUGUHUIUJVCVAJ
    VBVAJVAUMUNUOUPUQVAGURUS $.

  $( The specification of restriction to the right half-plane partitions the
     complex plane without 0 into two disjoint pieces, which are related by a
     reflection about the origin (under the map ` x |-> -u x ` ).  (Contributed
     by Mario Carneiro, 8-Jul-2013.) $)
  cnpart $p |- ( ( A e. CC /\ A =/= 0 ) ->
    ( ( 0 <_ ( Re ` A ) /\ ( _i x. A ) e/ RR+ ) <->
      -. ( 0 <_ ( Re ` -u A ) /\ ( _i x. -u A ) e/ RR+ ) ) ) $=
    ( wcel cc0 wne wa cre cfv cle wbr ci cmul co crp cneg wn wb wceq ax-icn syl
    cr wnel df-nel simpr 0le0 syl6eqbr biantrurd syl5bbr con1bid cim mulcl mpan
    cc reim0b imre cdiv c1 ine0 divrec2 mp3an23 irec oveq1i syl6eq eqtr3d eqtrd
    divcan3 fveq2d eqeq1d biimpar adantlr mulne0 mpanl12 adantr syl2anc con2bid
    bitrd rpneg syl6bbr syl5breqr necon3bbid rpre nsyl sylibr biantrud 0re recl
    3bitrrd clt ltlen ltnle bitr3d sylancr ad2antrr renegcl negnegd eleq1d mtod
    syl5ib notbid pm2.61dane breq2d le0neg1d bitr4d mulneg2 neleq1 anbi12d
    reneg ) AULBZACDZEZCAFGZHIZJAKLZMUAZEZXJCHIZXLNZMUAZEZOZCANZFGZHIZJXTKLZMUA
    ZEZOZXIXNXSPXJCXIXJCQZEZXSXPMBZXMXNYHYIXRYIOZXQYHXRXPMUBZYHXOXQYHXJCCHXIYGU
    CZUDUEUFUGUHYHYIXLMBZOZXMYHYMYIYHXLTBZXLCDZYMYJPXGYGYOXHXGYOYGXGYOXLUIGZCQZ
    YGXGXLULBZYOYRPJULBZXGYSRJAUJUKZXLUMSXGYQXJCXGYQJNZXLKLZFGZXJXGYSYQUUDQUUAX
    LUNSXGUUCAFXGXLJUOLZUUCAXGUUEUPJUOLZXLKLZUUCXGYSUUEUUGQZUUAYSYTJCDZUUHRUQXL
    JURUSSUUFUUBXLKUTVAVBXGYTUUIUUEAQRUQAJVEUSVCVFVDVGVOZVHVIXIYPYGYTUUIXIYPRUQ
    JAVJVKVLXLVPVMVNXLMUBZVQYHXKXMYHCCXJHUDYLVRUFWFXIXJCDZEZXNXOOZXSUUMXKXNUUNU
    UMXMXKUUMYNXMUUMYOYMXIYOOUULXIYOXJCXGYOYGPXHUUJVLVSVHZXLVTWAUUKWBWCUUMXKXKU
    ULEZUUNUUMUULXKXIUULUCWCXGUUPUUNPZXHUULXGCTBZXJTBZUUQWDAWEZUURUUSECXJWGIUUP
    UUNCXJWHCXJWIWJWKWLVOWJUUMXOXRUUMXQXOUUMYJXQUUMXPTBZYIUUMUVAYOUUOUVAXPNZTBZ
    UUMYOXPWMXGUVCYOPXHUULXGUVBXLTXGXLUUAWNWOWLWQWPXPVTWAYKWBWCWRVOWSXGYFXSPXHX
    GYEXRXGYBXOYDXQXGYBCXJNZHIXOXGYAUVDCHAXFWTXGXJUUTXAXBXGYCXPQZYDXQPYTXGUVERJ
    AXCUKYCXPMXDSXEWRVLXB $.

  $( Square root of zero.  (Contributed by Mario Carneiro, 9-Jul-2013.) $)
  sqr0lem $p |- ( ( A e. CC /\ ( ( A ^ 2 ) = 0 /\
        0 <_ ( Re ` A ) /\ ( _i x. A ) e/ RR+ ) ) <-> A = 0 ) $=
    ( cc wcel c2 cexp co cc0 wceq cre cfv cle wbr ci cmul crp wnel w3a wa sqeq0
    cr biimpa 3ad2antr1 0re eleq1 mpbiri recnd sq0i 0le0 fveq2 syl6eq syl5breqr
    re0 rennim syl 3jca jca impbii ) ABCZADEFGHZGAIJZKLZMANFOPZQZRAGHZURVAUSVDV
    BURUSVDASUAUBVDURVCVDAVDATCZGTCUCAGTUDUEZUFVDUSVAVBAUGVDGGUTKUHVDUTGIJGAGIU
    IULUJUKVDVEVBVFAUMUNUOUPUQ $.

  $( Square root of zero.  (Contributed by Mario Carneiro, 9-Jul-2013.) $)
  sqrt0 $p |- ( sqrt ` 0 ) = 0 $=
    ( vx cc0 csqrt cfv cv c2 cexp co wceq cre cle wbr ci cmul crp wnel wcel 0cn
    cc ax-mp w3a sqrtval id wb wa sqr0lem biimpi ex simpr sylbir impbid1 adantl
    crio riota5 eqtri ) BCDZAEZFGHBIBUQJDKLMUQNHOPUAZASUMZBBSQZUPUSIRABUBTUTUSB
    IRUTURASBUTUCUQSQZURUQBIZUDUTVAURVBVAURVBVAURUEZVBUQUFZUGUHVBVCURVDVAURUIUJ
    UKULUNTUO $.

  ${
    $d a b u v y z S $.  $d a b v x y z A $.  $d v y z B $.
    sqrlem1.1 $e |- S = { x e. RR+ | ( x ^ 2 ) <_ A } $.
    sqrlem1.2 $e |- B = sup ( S , RR , < ) $.
    $( Lemma for ~ 01sqrex .  (Contributed by Mario Carneiro, 10-Jul-2013.) $)
    sqrlem1 $p |- ( ( A e. RR+ /\ A <_ 1 ) -> A. y e. S y <_ 1 ) $=
      ( crp wcel c1 cle wbr wa cv c2 cexp co cr rpre ad2antrl weq breq1d elrab2
      oveq1 simprr simplr wi resqcld ad2antrr 1re letr mp3an3 syl2anc syl6breqr
      mp2and sq1 cc0 wb rpge0 0le1 le2sq mpanr12 mpbird ex syl5bi ralrimiv ) CH
      IZCJKLZMZBNZJKLZBEVJEIVJHIZVJOPQZCKLZMZVIVKANZOPQZCKLVNAVJHEABUAVQVMCKVPV
      JOPUDUBFUCVIVOVKVIVOMZVKVMJOPQZKLZVRVMJVSKVRVNVHVMJKLZVIVLVNUEVGVHVOUFVRV
      MRIZCRIZVNVHMWAUGZVRVJVLVJRIZVIVNVJSTZUHVGWCVHVOCSUIWBWCJRIZWDUJVMCJUKULU
      MUOUPUNVRWEUQVJKLZVKVTURZWFVLWHVIVNVJUSTWEWHMWGUQJKLWIUJUTVJJVAVBUMVCVDVE
      VF $.

    $( Lemma for ~ 01sqrex .  (Contributed by Mario Carneiro, 10-Jul-2013.) $)
    sqrlem2 $p |- ( ( A e. RR+ /\ A <_ 1 ) -> A e. S ) $=
      ( crp wcel c1 cle wbr wa c2 cexp co simpl cmul cr wceq adantr cc0 wb rpre
      clt rpgt0 1re lemul1 mp3an2 syl12anc biimpa rpcn sqval eqcomd syl mulid2d
      cc 3brtr3d cv oveq1 breq1d elrab2 sylanbrc ) BGHZBIJKZLZVCBMNOZBJKZBDHVCV
      DPVEBBQOZIBQOZVFBJVCVDVHVIJKZVCBRHZVKUABUDKZVDVJUBZBUCZVNBUEVKIRHVKVLLVMU
      FBIBUGUHUIUJVEBUPHZVHVFSVCVOVDBUKZTVOVFVHBULUMUNVCVIBSVDVCBVPUOTUQAURZMNO
      ZBJKVGABGDVQBSVRVFBJVQBMNUSUTEVAVB $.

    $( Lemma for ~ 01sqrex .  (Contributed by Mario Carneiro, 10-Jul-2013.) $)
    sqrlem3 $p |- ( ( A e. RR+ /\ A <_ 1 ) ->
      ( S C_ RR /\ S =/= (/) /\ E. z e. RR A. y e. S y <_ z ) ) $=
      ( crp wcel c1 cle wbr wa cr wss c0 wne cv wral wrex c2 cexp ssrab2 rpssre
      co crab sstri eqsstri a1i sqrlem2 ne0i syl 1re sqrlem1 wceq breq2 ralbidv
      rspcev sylancr 3jca ) DIJDKLMNZFOPZFQRZBSZCSZLMZBFTZCOUAZVCVBFASUBUCUFDLM
      ZAIUGZOGVKIOVJAIUDUEUHUIUJVBDFJVDADEFGHUKFDULUMVBKOJVEKLMZBFTZVIUNABDEFGH
      UOVHVMCKOVFKUPVGVLBFVFKVELUQURUSUTVA $.

    $( Lemma for ~ 01sqrex .  (Contributed by Mario Carneiro, 10-Jul-2013.) $)
    sqrlem4 $p |- ( ( A e. RR+ /\ A <_ 1 ) -> ( B e. RR+ /\ B <_ 1 ) ) $=
      ( vz vy crp wcel c1 cle wbr wa cr clt cv wral cc0 adantr csup wss c0 wrex
      wne w3a sqrlem3 suprcl syl5eqel rpgt0 sqrlem2 suprub syl2anc syl6breqr wi
      syl 0re ltletr mp3an1 mp2and elrpd sqrlem1 wb 1re suprleub sylancl mpbird
      rpre syl5eqbr jca ) BIJZBKLMZNZCIJCKLMVMCVMCDOPUAZOFVMDOUBDUCUEGQZHQLMGDR
      HOUDUFZVNOJAGHBCDEFUGZHGDUHUPUIZVMSBPMZBCLMZSCPMZVKVSVLBUJTVMBVNCLVMVPBDJ
      BVNLMVQABCDEFUKHGDBULUMFUNVMBOJZCOJZVSVTNWAUOZVKWBVLBVHTVRSOJWBWCWDUQSBCU
      RUSUMUTVAVMCVNKLFVMVNKLMZVOKLMGDRZAGBCDEFVBVMVPKOJWEWFVCVQVDHGGDKVEVFVGVI
      VJ $.

    $d u v T $.
    sqrlem5.3 $e |- T = { y | E. a e. S E. b e. S y = ( a x. b ) } $.
    $( Lemma for ~ 01sqrex .  (Contributed by Mario Carneiro, 10-Jul-2013.) $)
    sqrlem5 $p |- ( ( A e. RR+ /\ A <_ 1 ) ->
      ( ( T C_ RR /\ T =/= (/) /\ E. v e. RR A. u e. T u <_ v ) /\
        ( B ^ 2 ) = sup ( T , RR , < ) ) ) $=
      ( vz crp wcel cle wbr cr cv c1 wa wss c0 wne wral wrex w3a c2 cexp co clt
      csup wceq cc0 crab ssrab2 eqsstri sseli rpge0d a1i sqrlem3 pm4.24 3anbi1i
      rgen supmullem2 syl3anc cmul sqrlem4 rpre adantr syl recnd sqvald oveq12i
      supmul syl5eq eqtrd jca ) EOPEUAQRUBZHSUCHUDUEDTCTZQRDHUFCSUGUHZFUIUJUKZH
      SULUMZUNVTUOWAQRZCGUFZGSUCGUDUENTWAQRNGUFCSUGUHZWGWBWFVTWECGWAGPWAGOWAGAT
      UIUJUKEQRZAOUPOKWHAOUQURUSUTVEVAZANCEFGKLVBZWJWFWGWGUHZCNBDIGGHJMWFWFWFUB
      WGWGWFVCVDZVFVGVTWCFFVHUKZWDVTFVTFVTFOPZFUAQRZUBFSPZAEFGKLVIWNWPWOFVJVKVL
      VMVNVTWMGSULUMZWQVHUKZWDFWQFWQVHLLVOVTWFWGWGWRWDUNWIWJWJWKCNBIGGHJMWLVPVG
      VQVRVS $.

    $d a b v x y A $.  $d v y B $.
    $( Lemma for ~ 01sqrex .  (Contributed by Mario Carneiro, 10-Jul-2013.) $)
    sqrlem6 $p |- ( ( A e. RR+ /\ A <_ 1 ) -> ( B ^ 2 ) <_ A ) $=
      ( vv wcel cle wbr wa c2 co cr wb vu crp c1 cexp clt csup wss c0 wral wrex
      wne cv w3a wceq sqrlem5 simprd cmul vex weq eqeq1 2rexbidv elab2 wi oveq1
      breq1d elrab2 simplbi cc0 rpre adantr adantl rpgt0 lemul1 syl112anc rpcnd
      syl2an sqvald breq2d simprbi ad2antll rpred remulcl resqcld ad2antrr letr
      bitr4d syl3anc mpan2d sylbid lemul2 ad2antrl sqrlem3 simp1d sseld anim12d
      wo imp letric syl mpjaod ex breq1 biimprcd syl6 rexlimdvv syl5bi ralrimiv
      simpld suprleub syl2anc mpbird eqbrtrd ) CUBMZCUCNOZPZDQUDRZFSUEUFZCNXOFS
      UGFUHUKUAULLULZNOUAFUILSUJUMZXPXQUNZABLUACDEFGHIJKUOZUPXOXQCNOZXRCNOZLFUI
      ZXOYCLFXRFMXRGULZHULZUQRZUNZHEUJGEUJZXOYCBULZYGUNZHEUJGEUJYIBXRFLURBLUSYK
      YHGHEEYJXRYGUTVAKVBXOYHYCGHEEXOYEEMZYFEMZPZYGCNOZYHYCVCXOYNYOXOYNPZYEYFNO
      ZYOYFYENOZYPYQYGYFQUDRZNOZYOYNYQYTTXOYNYQYGYFYFUQRZNOZYTYLYEUBMZYFUBMZYQU
      UBTZYMYLUUCYEQUDRZCNOZAULZQUDRZCNOZUUGAYEUBEAGUSUUIUUFCNUUHYEQUDVDVEIVFZV
      GZYMUUDYSCNOZUUJUUMAYFUBEAHUSUUIYSCNUUHYFQUDVDVEIVFZVGZUUCUUDPZYESMZYFSMZ
      UURVHYFUEOZUUEUUCUUQUUDYEVIVJZUUDUURUUCYFVIVKZUVAUUDUUSUUCYFVLVKYEYFYFVMV
      NVPYMYTUUBTYLYMYSUUAYGNYMYFYMYFUUOVOVQVRVKWFVKYPYTUUMYOYMUUMXOYLYMUUDUUMU
      UNVSVTYPYGSMZYSSMZCSMZYTUUMPYOVCYNUVBXOYLUUQUURUVBYMYLYEUULWAZYMYFUUOWAZY
      EYFWBVPVKZYMUVCXOYLYMYFUVFWCVTXMUVDXNYNCVIZWDZYGYSCWEWGWHWIYPYRYGUUFNOZYO
      YNYRUVJTXOYNYRYGYEYEUQRZNOZUVJYLUUCUUDYRUVLTZYMUULUUOUUPUURUUQUUQVHYEUEOZ
      UVMUVAUUTUUTUUCUVNUUDYEVLVJYFYEYEWJVNVPYLUVJUVLTYMYLUUFUVKYGNYLYEYLYEUULV
      OVQVRVJWFVKYPUVJUUGYOYLUUGXOYMYLUUCUUGUUKVSWKYPUVBUUFSMZUVDUVJUUGPYOVCUVG
      YLUVOXOYMYLYEUVEWCWKUVIYGUUFCWEWGWHWIYPUUQUURPZYQYRWPXOYNUVPXOYLUUQYMUURX
      OESYEXOESUGEUHUKXRYJNOLEUIBSUJALBCDEIJWLWMZWNXOESYFUVQWNWOWQYEYFWRWSWTXAY
      HYCYOXRYGCNXBXCXDXEXFXGXOXSUVDYBYDTXOXSXTYAXHXMUVDXNUVHVJLUALFCXIXJXKXL
      $.

    $( Lemma for ~ 01sqrex .  (Contributed by Mario Carneiro, 10-Jul-2013.) $)
    sqrlem7 $p |- ( ( A e. RR+ /\ A <_ 1 ) -> ( B ^ 2 ) = A ) $=
      ( crp wcel c1 cle wbr c2 co c3 cr vz wa cexp wceq sqrlem6 cmin cdiv caddc
      clt wn wss c0 wne cv wral wrex w3a sqrlem3 adantr sqrlem4 simpld rpre syl
      resqcld resubcld cc0 posdifd biimpa elrpd 3re 3pos elrpii rpdivcl sylancl
      rpaddcld cmul cc recnd cn 3nn nndivre binom2 syl2anc 2re remulcld remulcl
      sylancr addassd mulass mp3an1 eqcomd sqvald oveq12d adddird eqtr4d simprd
      eqtrd 2cn wb 2pos 1re lemul2 mp3an2 mpanr12 mpbid 2t1e2 syl6breq addge01d
      a1i sqge0d lesubaddd mpbird simplr letrd 1le3 wi mp3an23 mpan2i mpd 3t1e3
      letr syl6breqr ledivmul le2add df-3 readdcld lemul1d 3ne0 divcan2 breqtrd
      mp2and 3cn eqbrtrd leaddsub2d oveq1 breq1d crab cbvrabv eqtri elrab2 csup
      sylanbrc suprub rpgt0d ltaddposd ltnled syldan pm2.65da eqleltd mpbir2and
      bitrd ) CLMZCNOPZUBZDQUCRZCUDUUOCOPUUOCUIPZUJABCDEFGHIJKUEUUNUUPDCUUOUFRZ
      SUGRZUHRZDOPZUUNUUPUBZETUKEULUMUAUNBUNZOPUAEUOBTUPUQZUUSEMZUUTUUNUVCUUPAU
      ABCDEIJURUSUVAUUSLMUUSQUCRZCOPZUVDUVADUURUVADLMZDNOPZUUNUVGUVHUBZUUPACDEI
      JUTZUSVAUVAUUQLMSLMUURLMUVAUUQUUNUUQTMZUUPUUNCUUOUULCTMZUUMCVBUSZUUNDUUNU
      VIDTMZUVJUVGUVNUVHDVBUSVCZVDZVEZUSZUUNUUPVFUUQUIPUUNUUOCUVPUVMVGVHVISVJVK
      VLUUQSVMVNZVOUVAUVEUUOQDUURVPRZVPRZUURQUCRZUHRZUHRZCOUVAUVEUUOUWAUHRUWBUH
      RZUWDUVADVQMZUURVQMZUVEUWEUDUVADUUNUVNUUPUVOUSZVRZUVAUURUUNUURTMZUUPUUNUV
      KSVSMUWJUVQVTUUQSWAVNZUSZVRZDUURWBWCUVAUUOUWAUWBUVAUUOUUNUUOTMUUPUVPUSZVR
      UVAUWAUVAQTMZUVTTMUWATMWDUVADUURUWHUWLWEQUVTWFWGZVRUVAUWBUVAUURUWLVDZVRWH
      WQUVAUWDCOPUWCUUQOPUVAUWCQDVPRZUURUHRZUURVPRZUUQOUVAUWCUWRUURVPRZUURUURVP
      RZUHRUWTUVAUWAUXAUWBUXBUHUVAUXAUWAUVAUWFUWGUXAUWAUDZUWIUWMQVQMUWFUWGUXCWR
      QDUURWIWJWCWKUVAUURUWMWLWMUVAUWRUURUURUVAUWRUVAUWOUVNUWRTMZWDUWHQDWFWGZVR
      UWMUWMWNWOUVAUWTSUURVPRZUUQOUVAUWSSOPUWTUXFOPUVAUWSQNUHRZSOUVAUWRQOPZUURN
      OPZUWSUXGOPZUVAUWRQNVPRZQOUUNUWRUXKOPZUUPUUNUVHUXLUUNUVGUVHUVJWPUUNUVNUVH
      UXLWSZUVOUVNUWOVFQUIPZUXMWDWTUVNNTMZUWOUXNUBUXMXADNQXBXCXDVCXEUSXFXGUVAUX
      IUUQSNVPRZOPZUVAUUQSUXPOUVAUUQNOPZUUQSOPZUVAUUQCNUVRUUNUVLUUPUVMUSZUXOUVA
      XAXIUVAUUQCOPCCUUOUHROPZUVAVFUUOOPUYAUVADUWHXJUVACUUOUXTUWNXHXEUVACUUOCUX
      TUWNUXTXKXLUULUUMUUPXMXNUVAUXRNSOPZUXSXOUVAUVKUXRUYBUBUXSXPZUVRUVKUXOSTMZ
      UYCXAVJUUQNSYAXQVCXRXSXTYBUVAUVKUXIUXQWSZUVRUVKUYDVFSUIPZUYEVJVKUVKUXOUYD
      UYFUBUYEXAUUQNSYCXCXDVCXLUVAUXDUWJUXHUXIUBUXJXPZUXEUWLUXDUWJUBUWOUXOUYGWD
      XAUWRUURQNYDXDWCYKYEYBUVAUWSSUURUVAUWRUURUXEUWLYFUYDUVAVJXIUVSYGXEUVAUUQV
      QMZUXFUUQUDZUVAUUQUVRVRUYHSVQMSVFUMUYIYLYHUUQSYIXQVCYJYMUVAUUOUWCCUWNUVAU
      WAUWBUWPUWQYFUXTYNXLYMUVBQUCRZCOPZUVFBUUSLEUVBUUSUDUYJUVECOUVBUUSQUCYOYPE
      AUNZQUCRZCOPZALYQUYKBLYQIUYNUYKABLUYLUVBUDUYMUYJCOUYLUVBQUCYOYPYRYSYTUUBU
      VCUVDUBUUSETUIUUADOBUAEUUSUUCJYBWCUUNUUPVFUURUIPZUUTUJZUVAUURUVSUUDUUNUYO
      UYPUUNUYODUUSUIPUYPUUNUURDUWKUVOUUEUUNDUUSUVOUUNDUURUVOUWKYFUUFUUKVHUUGUU
      HUUNUUOCUVPUVMUUIUUJ $.
  $}

  ${
    $d A w x y z $.
    $( Existence of a square root for reals in the interval ` ( 0 , 1 ] ` .
       (Contributed by Mario Carneiro, 10-Jul-2013.) $)
    01sqrex $p |- ( ( A e. RR+ /\ A <_ 1 ) ->
      E. x e. RR+ ( x <_ 1 /\ ( x ^ 2 ) = A ) ) $=
      ( vy vz vw crp wcel c1 cle wbr wa cv c2 cexp co crab cr wceq wrex eqid
      clt csup sqrlem4 cmul sqrlem7 breq1 eqeq1d anbi12d rspcev anassrs syl2anc
      cab oveq1 ) BFGBHIJKCLMNOBIJCFPZQUAUBZFGZUOHIJZKUOMNOZBRZALZHIJZUTMNOZBRZ
      KZAFSZCBUOUNUNTZUOTZUCCDBUOUNDLELUTUDORAUNSEUNSDULZEAVFVGVHTUEUPUQUSVEVDU
      QUSKAUOFUTUORZVAUQVCUSUTUOHIUFVIVBURBUTUOMNUMUGUHUIUJUK $.
  $}

  ${
    $d A x y $.
    $( Existence of a square root for positive reals.  (Contributed by Mario
       Carneiro, 9-Jul-2013.) $)
    resqrex $p |- ( ( A e. RR /\ 0 <_ A ) ->
      E. x e. RR ( 0 <_ x /\ ( x ^ 2 ) = A ) ) $=
      ( vy cr wcel cc0 cle wbr wa c1 c2 cexp co wceq wi clt 0re crp cdiv syldan
      cv wrex wo wb leloe mpan elrp 01sqrex rprege0 anass sylib adantrl reximi2
      anim1i syl sylanbr exp31 sq0 syl5eq 0le0 jctil breq2 oveq1 eqeq1d anbi12d
      id rspcev sylancr a1d a1i jaod sylbid imp 0lt1 1re ltletr mp3an12 biimpri
      mpani rpreccld simpr lerec mpanl12 1div1e1 syl6breq syl2anc rpre 3ad2ant2
      mpbid w3a rpgt0 wne gt0ne0 rereccl recgt0 ltle sylc cc recn adantr sqrecd
      simp3r oveq2d recrec sylan 3ad2ant1 3eqtrd syl12anc rexlimdv3a mpd letric
      ex simpl sylancl mpjaod ) BDEZFBGHZIZBJGHZFAUAZGHZXTKLMZBNZIZADUBZJBGHZXP
      XQXSYEOZXPXQFBPHZFBNZUCZYGFDEZXPXQYJUDQFBUEUFXPYHYGYIXPYHXSYEXPYHIZBREZXS
      YEBUGZYMXSIXTJGHZYCIZARUBYEABUHYPYDARDXTREZYCXTDEZYDIZYOYQYCIYRYAIZYCIYSY
      QYTYCXTUIUNYRYAYCUJUKULUMUOUPUQYIYGOXPYIYEXSYIYKFFGHZFKLMZBNZIZYEQYIUUCUU
      AYIUUBFBURYIVFUSUTVAYDUUDAFDXTFNZYAUUAYCUUCXTFFGVBUUEYBUUBBXTFKLVCVDVEVGV
      HVIVJVKVLVMXPYFYEOXQXPYFYEXPYFIZCUAZJGHZUUGKLMZJBSMZNZIZCRUBZYEUUFUUJREUU
      JJGHUUMUUFBXPYFYHYMXPYFYHXPFJPHZYFYHVNYKJDEZXPUUNYFIYHOQVOFJBVPVQVSVMZYMY
      LYNVRTVTUUFUUJJJSMZJGUUFYFUUJUUQGHZXPYFWAXPYFYHYFUURUDZUUPUUOUUNYLUUSVOVN
      JBWBWCTWIWDWECUUJUHWFUUFUULYECRUUFUUGREZUULWJZJUUGSMZDEZFUVBGHZUVBKLMZBNZ
      YEUVAUUGDEZFUUGPHZUVCUUTUUFUVGUULUUGWGWHZUUTUUFUVHUULUUGWKWHZUVGUVHUUGFWL
      UVCUUGWMZUUGWNTZWFUVAUVGUVHUVDUVIUVJUVGUVHIZUVCFUVBPHZUVDUVLUUGWOYKUVCUVN
      UVDOQFUVBWPUFWQWFUVAUVEJUUISMZJUUJSMZBUVAUVGUVHUVEUVONUVIUVJUVMUUGUVGUUGW
      REUVHUUGWSWTUVKXAWFUVAUUIUUJJSUUFUUTUUHUUKXBXCUUFUUTUVPBNZUULXPYFBFWLZUVQ
      XPYFYHUVRUUPBWMTXPBWREUVRUVQBWSBXDXETXFXGYDUVDUVFIAUVBDXTUVBNZYAUVDYCUVFX
      TUVBFGVBUVSYBUVEBXTUVBKLVCVDVEVGXHXIXJXLWTXRXPUUOXSYFUCXPXQXMVOBJXKXNXO
      $.

    $( Uniqueness for the square root function.  (Contributed by Mario
       Carneiro, 9-Jul-2013.)  (Revised by NM, 17-Jun-2017.) $)
    sqrmo $p |- ( A e. CC -> E* x e. CC ( ( x ^ 2 ) = A /\
        0 <_ ( Re ` x ) /\ ( _i x. x ) e/ RR+ ) ) $=
      ( vy cc wcel c2 cexp co wceq cc0 cre cfv cle wbr ci cmul crp wnel wa wi
      cv w3a weq wral wrmo wn cneg wo simplr1 simprr1 eqtr4d wb sqeqor ad2ant2r
      mpbid ord 3simpc fveq2 breq2d oveq2 neleq1 syl anbi12d syl5ibcom ad2antlr
      syld negeq neg0 syl6eq eqeq2d eqeq2 bitr4d biimpcd necon3bd cnpart syl5ib
      wne syli impancom adantl pm2.65d notnotrd an4s a1i ralrimivv oveq1 eqeq1d
      ex 3anbi123d rmo4 sylibr ) BDEZAUAZFGHZBIZJWMKLZMNZOWMPHZQRZUBZCUAZFGHZBI
      ZJXAKLZMNZOXAPHZQRZUBZSZACUCZTZCDUDADUDWTADUEWLXKACDDWMDEZXADEZSZXKTWLXNX
      IXJXLWTXMXHXJXLWTSZXMXHSZSZXJXQXJUFZJXAUGZKLZMNZOXSPHZQRZSZXQXRWMXSIZYDXQ
      XJYEXQWNXBIZXJYEUHZXQWNBXBWOWQWSXLXPUIXCXEXGXMXOUJUKXLXMYFYGULWTXHWMXAUMU
      NUOUPZWTYEYDTXLXPWTWQWSSYEYDWOWQWSUQYEWQYAWSYCYEWPXTJMWMXSKURUSYEWRYBIWSY
      CULWMXSOPUTWRYBQVAVBVCVDVEVFXQXRXAJVQZYDUFZXRXQYEYIYHYEXJXAJXAJIZYEXJYKYE
      WMJIXJYKXSJWMYKXSJUGJXAJVGVHVIVJXAJWMVKVLVMVNVRXPYIYJTXOXMYIXHYJXHXEXGSXM
      YISYJXCXEXGUQXAVOVPVSVTVFWAWBWCWHWDWEWTXHACDXJWOXCWQXEWSXGXJWNXBBWMXAFGWF
      WGXJWPXDJMWMXAKURUSXJWRXFIWSXGULWMXAOPUTWRXFQVAVBWIWJWK $.
  $}

  ${
    $d A x $.
    $( Existence and uniqueness for the real square root function.
       (Contributed by Mario Carneiro, 9-Jul-2013.) $)
    resqreu $p |- ( ( A e. RR /\ 0 <_ A ) -> E! x e. CC ( ( x ^ 2 ) = A /\
        0 <_ ( Re ` x ) /\ ( _i x. x ) e/ RR+ ) ) $=
      ( cr wcel cc0 cle wbr wa cv c2 cexp co wceq cre cfv wrex recn adantr syl
      cc cmul crp wnel w3a wrmo wreu resqrex simprr rere breq2d biimpar adantrr
      ci rennim 3jca jca reximi2 sqrmo reu5 sylanbrc ) BCDZEBFGZHZAIZJKLBMZEVDN
      OZFGZUMVDUALUBUCZUDZATPZVIATUEZVIATUFVCEVDFGZVEHZACPVJABUGVMVIACTVDCDZVMH
      ZVDTDZVIVNVPVMVDQRVOVEVGVHVNVLVEUHVNVLVGVEVNVGVLVNVFVDEFVDUIUJUKULVNVHVMV
      DUNRUOUPUQSVCBTDZVKVAVQVBBQRABURSVIATUSUT $.
  $}

  ${
    $d A x y $.
    $( Closure of the square root function.  (Contributed by Mario Carneiro,
       9-Jul-2013.) $)
    resqrtcl $p |- ( ( A e. RR /\ 0 <_ A ) -> ( sqrt ` A ) e. RR ) $=
      ( vy vx cr wcel cc0 cle wbr c2 cexp co wceq cfv w3a cre cmul crp 3ad2ant2
      ci cc wa cv wrex resqrex wnel crio simp1l recn sqrtval 3syl simp3r simp3l
      csqrt rere breqtrrd rennim 3jca wreu resqreu 3ad2ant1 oveq1 eqeq1d breq2d
      fveq2 oveq2 neleq1 syl 3anbi123d riota2 syl2anc mpbid eqtrd simp2 eqeltrd
      wb rexlimdv3a mpd ) ADEZFAGHZUAZFBUBZGHZWAIJKZALZUAZBDUCAUMMZDEZBAUDVTWEW
      GBDVTWADEZWENZWFWADWIWFCUBZIJKZALZFWJOMZGHZSWJPKZQUEZNZCTUFZWAWIVRATEWFWR
      LVRVSWHWEUGAUHCAUIUJWIWDFWAOMZGHZSWAPKZQUEZNZWRWALZWIWDWTXBVTWHWBWDUKWIFW
      AWSGVTWHWBWDULWHVTWSWALWEWAUNRUOWHVTXBWEWAUPRUQWIWATEZWQCTURZXCXDVOWHVTXE
      WEWAUHRVTWHXFWECAUSUTWQXCCTWAWJWALZWLWDWNWTWPXBXGWKWCAWJWAIJVAVBXGWMWSFGW
      JWAOVDVCXGWOXALWPXBVOWJWASPVEWOXAQVFVGVHVIVJVKVLVTWHWEVMVNVPVQ $.

    $( Lemma for ~ resqrtth .  (Contributed by Mario Carneiro, 9-Jul-2013.) $)
    resqrtthlem $p |- ( ( A e. RR /\ 0 <_ A ) -> ( ( ( sqrt ` A ) ^ 2 ) = A /\
        0 <_ ( Re ` ( sqrt ` A ) ) /\ ( _i x. ( sqrt ` A ) ) e/ RR+ ) ) $=
      ( vx wcel cc0 cle wbr cfv c2 cexp co wceq cre ci cmul crp wnel w3a cc syl
      wb cr wa csqrt cv crio sqrtval eqcomd adantr resqrtcl recnd resqreu oveq1
      recn eqeq1d fveq2 breq2d oveq2 neleq1 3anbi123d riota2 syl2anc mpbird
      wreu ) AUACZDAEFZUBZAUCGZHIJZAKZDVGLGZEFZMVGNJZOPZQZBUDZHIJZAKZDVOLGZEFZM
      VONJZOPZQZBRUEZVGKZVDWDVEVDARCZWDAUMWEVGWCBAUFUGSUHVFVGRCWBBRVCVNWDTVFVGA
      UIUJBAUKWBVNBRVGVOVGKZVQVIVSVKWAVMWFVPVHAVOVGHIULUNWFVRVJDEVOVGLUOUPWFVTV
      LKWAVMTVOVGMNUQVTVLOURSUSUTVAVB $.
  $}

  $( Square root theorem over the reals.  Theorem I.35 of [Apostol] p. 29.
     (Contributed by Mario Carneiro, 9-Jul-2013.) $)
  resqrtth $p |- ( ( A e. RR /\ 0 <_ A ) -> ( ( sqrt ` A ) ^ 2 ) = A ) $=
    ( cr wcel cc0 cle wbr wa csqrt cfv c2 cexp co wceq cre cmul crp resqrtthlem
    ci wnel simp1d ) ABCDAEFGAHIZJKLAMDUANIEFRUAOLPSAQT $.

  $( Square of square root.  (Contributed by Mario Carneiro, 10-Jul-2013.) $)
  remsqsqrt $p |- ( ( A e. RR /\ 0 <_ A ) ->
    ( ( sqrt ` A ) x. ( sqrt ` A ) ) = A ) $=
    ( cr wcel cc0 cle wbr wa csqrt cfv c2 cexp co cmul resqrtcl sqvald resqrtth
    recnd eqtr3d ) ABCDAEFGZAHIZJKLTTMLASTSTANQOAPR $.

  $( The square root function is nonnegative for nonnegative input.
     (Contributed by NM, 26-May-1999.)  (Revised by Mario Carneiro,
     9-Jul-2013.) $)
  sqrtge0 $p |- ( ( A e. RR /\ 0 <_ A ) -> 0 <_ ( sqrt ` A ) ) $=
    ( cr wcel cc0 cle wbr wa csqrt cfv cre c2 cexp co wceq cmul crp resqrtthlem
    ci wnel simp2d resqrtcl rered breqtrd ) ABCDAEFGZDAHIZJIZUEEUDUEKLMANDUFEFR
    UEOMPSAQTUDUEAUAUBUC $.

  $( The square root function is positive for positive input.  (Contributed by
     Mario Carneiro, 10-Jul-2013.)  (Revised by Mario Carneiro, 6-Sep-2013.) $)
  sqrtgt0 $p |- ( ( A e. RR /\ 0 < A ) -> 0 < ( sqrt ` A ) ) $=
    ( cr wcel cc0 clt wbr wa csqrt cfv cle wi 0re ltle mpan imp resqrtcl syldan
    sqrtge0 wne wceq gt0ne0 c2 cexp sq0i resqrtth eqeq1d syl5ib necon3d ne0gt0d
    co mpd ) ABCZDAEFZGZAHIZULUMDAJFZUOBCULUMUPDBCULUMUPKLDAMNOZAPQULUMUPDUOJFU
    QARQUNADSUODSAUAUNUODADUODTUOUBUCUJZDTUNADTUOUDUNURADULUMUPURATUQAUEQUFUGUH
    UKUI $.

  $( Square root distributes over multiplication.  (Contributed by NM,
     30-Jul-1999.)  (Revised by Mario Carneiro, 29-May-2016.) $)
  sqrtmul $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
             ( sqrt ` ( A x. B ) ) = ( ( sqrt ` A ) x. ( sqrt ` B ) ) ) $=
    ( cr wcel cc0 cle wbr wa cmul co csqrt cfv remulcld resqrtcl syl2anc adantr
    sqrtge0 c2 cexp resqrtth simpll simprl mulge0 adantl oveqan12d recnd sqmuld
    mulge0d wceq 3eqtr4rd sq11d ) ACDZEAFGZHZBCDZEBFGZHZHZABIJZKLZAKLZBKLZIJZUR
    USCDZEUSFGZUTCDURABULUMUQUAUNUOUPUBMZABUCZUSNOURVAVBUNVACDUQANPZUQVBCDUNBNU
    DZMURVDVEEUTFGVFVGUSQOURVAVBVHVIUNEVAFGUQAQPUQEVBFGUNBQUDUHURVARSJZVBRSJZIJ
    USVCRSJUTRSJZUNUQVJAVKBIATBTUEURVAVBURVAVHUFURVBVIUFUGURVDVEVLUSUIVFVGUSTOU
    JUK $.

  $( Square root is monotonic.  (Contributed by NM, 17-Mar-2005.)  (Proof
     shortened by Mario Carneiro, 29-May-2016.) $)
  sqrtle $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
      ( A <_ B <-> ( sqrt ` A ) <_ ( sqrt ` B ) ) ) $=
    ( cr wcel cc0 cle wbr wa csqrt cfv c2 cexp co wb resqrtcl sqrtge0 jca le2sq
    syl2an resqrtth breqan12d bitr2d ) ACDEAFGHZBCDEBFGHZHAIJZBIJZFGZUEKLMZUFKL
    MZFGZABFGUCUECDZEUEFGZHUFCDZEUFFGZHUGUJNUDUCUKULAOAPQUDUMUNBOBPQUEUFRSUCUDU
    HAUIBFATBTUAUB $.

  $( Square root is strictly monotonic.  Closed form of ~ sqrtlti .
     (Contributed by Scott Fenton, 17-Apr-2014.)  (Proof shortened by Mario
     Carneiro, 29-May-2016.) $)
  sqrtlt $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
    ( A < B <-> ( sqrt ` A ) < ( sqrt ` B ) ) ) $=
    ( cr wcel cc0 cle wbr wa wn csqrt cfv wb sqrtle ancoms notbid simpll simprl
    clt ltnled resqrtcl adantr adantl 3bitr4d ) ACDZEAFGZHZBCDZEBFGZHZHZBAFGZIB
    JKZAJKZFGZIABRGUMULRGUJUKUNUIUFUKUNLBAMNOUJABUDUEUIPUFUGUHQSUJUMULUFUMCDUIA
    TUAUIULCDUFBTUBSUC $.

  $( The square root function is one-to-one.  (Contributed by Scott Fenton,
     11-Jun-2013.) $)
  sqrt11 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
    ( ( sqrt ` A ) = ( sqrt ` B ) <-> A = B ) ) $=
    ( cr wcel cc0 cle wbr wa csqrt cfv c2 cexp co wceq wb resqrtcl sqrtge0 sq11
    jca resqrtth syl2an eqeqan12d bitr3d ) ACDEAFGHZBCDEBFGHZHAIJZKLMZBIJZKLMZN
    ZUFUHNZABNUDUFCDZEUFFGZHUHCDZEUHFGZHUJUKOUEUDULUMAPAQSUEUNUOBPBQSUFUHRUAUDU
    EUGAUIBATBTUBUC $.

  $( A square root is zero iff its argument is 0.  (Contributed by NM,
     27-Jul-1999.)  (Proof shortened by Mario Carneiro, 29-May-2016.) $)
  sqrt00 $p |- ( ( A e. RR /\ 0 <_ A ) ->
               ( ( sqrt ` A ) = 0 <-> A = 0 ) ) $=
    ( csqrt cfv cc0 wceq cr wcel cle wbr wa sqrt0 eqeq2i wb 0le0 sqrt11 mpanr12
    0re syl5bbr ) ABCZDESDBCZEZAFGDAHIJZADEZTDSKLUBDFGDDHIUAUCMQNADOPR $.

  $( The square root of a positive real is a positive real.  (Contributed by
     NM, 22-Feb-2008.) $)
  rpsqrtcl $p |- ( A e. RR+ -> ( sqrt ` A ) e. RR+ ) $=
    ( crp wcel csqrt cfv cr cc0 cle wbr rpre rpge0 resqrtcl syl2anc clt sqrtgt0
    rpgt0 elrpd ) ABCZADEZRAFCZGAHISFCAJZAKALMRTGANIGSNIUAAPAOMQ $.

  $( Square root distributes over division.  (Contributed by Mario Carneiro,
     5-May-2016.) $)
  sqrtdiv $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ B e. RR+ ) ->
             ( sqrt ` ( A / B ) ) = ( ( sqrt ` A ) / ( sqrt ` B ) ) ) $=
    ( cr wcel cc0 cle wbr wa crp cdiv co csqrt cfv cmul rerpdivcl adantlr recnd
    clt adantl eqtr3d elrp divge0 sylan2b resqrtcl syl2anc rpsqrtcl rpne0d wceq
    rpcnd divcan4d rprege0 sqrtmul syl21anc simpll cc wne rpne0 divcan1d fveq2d
    rpcn oveq1d ) ACDZEAFGZHZBIDZHZABJKZLMZBLMZNKZVIJKVHALMZVIJKVFVHVIVFVHVFVGC
    DZEVGFGZVHCDVBVEVLVCABOPZVEVDBCDZEBRGHVMBUAABUBUCZVGUDUEQVFVIVEVIIDVDBUFSZU
    IVFVIVQUGUJVFVJVKVIJVFVGBNKZLMZVJVKVFVLVMVOEBFGHZVSVJUHVNVPVEVTVDBUKSVGBULU
    MVFVRALVFABVFAVBVCVEUNQVEBUODVDBUTSVEBEUPVDBUQSURUSTVAT $.

  $( The square root of a negative number.  (Contributed by Mario Carneiro,
     9-Jul-2013.) $)
  sqrtneglem $p |- ( ( A e. RR /\ 0 <_ A ) ->
      ( ( ( _i x. ( sqrt ` A ) ) ^ 2 ) = -u A /\
        0 <_ ( Re ` ( _i x. ( sqrt ` A ) ) ) /\
        ( _i x. ( _i x. ( sqrt ` A ) ) ) e/ RR+ ) ) $=
    ( cr wcel cc0 cle wbr ci cfv cmul co cexp cneg wceq cre crp ax-icn recn syl
    c2 cc wa csqrt wnel c1 resqrtcl sqmul sylancr i2 a1i resqrtth adantr mulm1d
    oveq12d 3eqtrd renegcl 0re cim imre eqtr3d eqle 3syl mul2neg fveq2d breqtrd
    reim0 wn ixi oveq1i mulass mp3an12 mulm1 3eqtr3a sqrtge0 wb le0neg2 sylancl
    clt lenlt bitrd mpbid biantrurd elrp syl6rbbr mtbird eqneltrd df-nel sylibr
    3jca ) ABCZDAEFZUAZGAUBHZIJZSKJZALZMDWMNHZEFGWMIJZOUCZWKWNGSKJZWLSKJZIJZUDL
    ZAIJWOWKGTCZWLTCZWNXAMPWKWLBCZXDAUEZWLQRZGWLUFUGWKWSXBWTAIWSXBMWKUHUIAUJUMW
    KAWIATCWJAQUKULUNWKDGLWLLZIJZNHZWPEWKXEXHBCZDXJEFZXFWLUOZXKDBCZDXJMXLUPXKXH
    UQHZDXJXHVEXKXHTCXOXJMXHQXHURRUSDXJUTUGVAWKXIWMNWKXCXDXIWMMPXGGWLVBUGVCVDWK
    WQOCVFWRWKWQXHOWKXDWQXHMXGXDGGIJZWLIJZXBWLIJWQXHXPXBWLIVGVHXCXCXDXQWQMPPGGW
    LVIVJWLVKVLRWKXHOCZDXHVQFZWKDWLEFZXSVFZAVMWKXEXTYAVNXFXEXTXHDEFZYAWLVOXEXKX
    NYBYAVNXMUPXHDVRVPVSRVTWKXSXKXSUAXRWKXKXSWKXEXKXFXMRWAXHWBWCWDWEWQOWFWGWH
    $.

  ${
    $d A x $.
    $( The square root of a negative number.  (Contributed by Mario Carneiro,
       9-Jul-2013.) $)
    sqrtneg $p |- ( ( A e. RR /\ 0 <_ A ) ->
        ( sqrt ` -u A ) = ( _i x. ( sqrt ` A ) ) ) $=
      ( vx wcel cc0 cle wbr csqrt cfv c2 cexp co wceq cre cmul crp wnel w3a syl
      ci cc cr wa cneg crio recn adantr negcld sqrtval sqrtneglem wreu resqrtcl
      cv ax-icn recnd mulcl sylancr wrex oveq1 eqeq1d fveq2 breq2d oveq2 neleq1
      wb wrmo 3anbi123d rspcev syl2anc sqrmo reu5 sylanbrc riota2 mpbid eqtrd )
      AUACZDAEFZUBZAUCZGHZBULZIJKZVRLZDVTMHZEFZSVTNKZOPZQZBTUDZSAGHZNKZVQVRTCZV
      SWHLVQAVOATCVPAUEUFUGZBVRUHRVQWJIJKZVRLZDWJMHZEFZSWJNKZOPZQZWHWJLZAUIZVQW
      JTCZWGBTUJZWSWTVDVQSTCWITCXBUMVQWIAUKUNSWIUOUPZVQWGBTUQZWGBTVEZXCVQXBWSXE
      XDXAWGWSBWJTVTWJLZWBWNWDWPWFWRXGWAWMVRVTWJIJURUSXGWCWODEVTWJMUTVAXGWEWQLW
      FWRVDVTWJSNVBWEWQOVCRVFZVGVHVQWKXFWLBVRVIRWGBTVJVKWGWSBTWJXHVLVHVMVN $.
  $}

  $( Relationship between square root and squares.  (Contributed by NM,
     31-Jul-1999.)  (Revised by Mario Carneiro, 29-May-2016.) $)
  sqrtsq2 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
    ( ( sqrt ` A ) = B <-> A = ( B ^ 2 ) ) ) $=
    ( cr wcel cc0 cle wbr wa csqrt cfv c2 cexp co wceq wb resqrtcl sqrtge0 sq11
    jca sylan resqrtth adantr eqeq1d bitr3d ) ACDEAFGHZBCDEBFGHZHZAIJZKLMZBKLMZ
    NZUHBNZAUJNUEUHCDZEUHFGZHUFUKULOUEUMUNAPAQSUHBRTUGUIAUJUEUIANUFAUAUBUCUD $.

  $( Square root of square.  (Contributed by NM, 14-Jan-2006.)  (Revised by
     Mario Carneiro, 29-May-2016.) $)
  sqrtsq $p |- ( ( A e. RR /\ 0 <_ A ) -> ( sqrt ` ( A ^ 2 ) ) = A ) $=
    ( cr wcel cc0 cle wbr wa c2 cexp co csqrt cfv wceq eqid wb resqcl sqge0 jca
    adantr sqrtsq2 mpancom mpbiri ) ABCZDAEFZGZAHIJZKLAMZUFUFMZUFNUFBCZDUFEFZGZ
    UEUGUHOUCUKUDUCUIUJAPAQRSUFATUAUB $.

  $( Square root of square.  (Contributed by NM, 2-Aug-1999.)  (Revised by
     Mario Carneiro, 29-May-2016.) $)
  sqrtmsq $p |- ( ( A e. RR /\ 0 <_ A ) -> ( sqrt ` ( A x. A ) ) = A ) $=
    ( cr wcel cc0 cle wbr wa c2 cexp csqrt cfv simpl recnd sqvald fveq2d sqrtsq
    co cmul eqtr3d ) ABCZDAEFZGZAHIQZJKAARQZJKAUBUCUDJUBAUBATUALMNOAPS $.

  $( The square root of 1 is 1.  (Contributed by NM, 31-Jul-1999.) $)
  sqrt1 $p |- ( sqrt ` 1 ) = 1 $=
    ( c1 c2 cexp co csqrt cfv sq1 fveq2i wcel cc0 cle wbr wceq 1re sqrtsq mp2an
    cr 0le1 eqtr3i ) ABCDZEFZAEFATAEGHAQIJAKLUAAMNRAOPS $.

  $( The square root of 4 is 2.  (Contributed by NM, 3-Aug-1999.) $)
  sqrt4 $p |- ( sqrt ` 4 ) = 2 $=
    ( c2 cexp co csqrt cfv c4 sq2 fveq2i wcel cc0 cle wbr wceq 2re sqrtsq mp2an
    cr 0le2 eqtr3i ) AABCZDEZFDEATFDGHAQIJAKLUAAMNRAOPS $.

  $( The square root of 9 is 3.  (Contributed by NM, 11-May-2004.) $)
  sqrt9 $p |- ( sqrt ` 9 ) = 3 $=
    ( c3 c2 cexp co csqrt cfv c9 sq3 fveq2i cr wcel cc0 cle wbr wceq 3re ltleii
    0re 3pos sqrtsq mp2an eqtr3i ) ABCDZEFZGEFAUCGEHIAJKLAMNUDAOPLARPSQATUAUB
    $.

  $( The square root of 2 is bounded by 1 and 2.  (Contributed by Roy F.
     Longton, 8-Aug-2005.)  (Revised by Mario Carneiro, 6-Sep-2013.) $)
  sqrt2gt1lt2 $p |- ( 1 < ( sqrt ` 2 ) /\ ( sqrt ` 2 ) < 2 ) $=
    ( c1 c2 csqrt cfv clt wbr sqrt1 1lt2 cr wcel cc0 cle wb 2re 0le2 mp4an mpbi
    sqrtlt c4 4re 1re 0le1 eqbrtrri 2lt4 0re 4pos ltleii sqrt4 breqtri pm3.2i )
    ABCDZEFUKBEFACDZAUKEGABEFZULUKEFZHAIJKALFBIJZKBLFZUMUNMUAUBNOABRPQUCUKSCDZB
    EBSEFZUKUQEFZUDUOUPSIJKSLFURUSMNOTKSUETUFUGBSRPQUHUIUJ $.

  $( The imaginary unit is the square root of negative 1.  A lot of people like
     to call this the "definition" of ` _i ` , but the definition of ` sqrt `
     ~ df-sqrt has already been crafted with ` _i ` being mentioned explicitly,
     and in any case it doesn't make too much sense to define a value based on
     a function evaluated outside its domain.  A more appropriate view is to
     take ~ ax-i2m1 or ~ i2 as the "definition", and simply postulate the
     existence of a number satisfying this property.  This is the approach we
     take here.  (Contributed by Mario Carneiro, 10-Jul-2013.) $)
  sqrtm1 $p |- _i = ( sqrt ` -u 1 ) $=
    ( c1 cneg csqrt cfv ci cmul co wcel cc0 cle wbr wceq 1re 0le1 sqrtneg mp2an
    cr sqrt1 oveq2i ax-icn mulid1i 3eqtrri ) ABCDZEACDZFGZEAFGEAQHIAJKUCUELMNAO
    PUDAEFRSETUAUB $.

  $( Absolute value of negative.  (Contributed by NM, 27-Feb-2005.) $)
  absneg $p |- ( A e. CC -> ( abs ` -u A ) = ( abs ` A ) ) $=
    ( cc wcel cneg ccj cfv cmul csqrt cabs cjneg oveq2d wceq cjcl mul2neg mpdan
    co eqtrd fveq2d negcl absval syl 3eqtr4d ) ABCZADZUDEFZGPZHFZAAEFZGPZHFUDIF
    ZAIFUCUFUIHUCUFUDUHDZGPZUIUCUEUKUDGAJKUCUHBCULUILAMAUHNOQRUCUDBCUJUGLASUDTU
    AATUB $.

  $( Real closure of absolute value.  (Contributed by NM, 3-Oct-1999.) $)
  abscl $p |- ( A e. CC -> ( abs ` A ) e. RR ) $=
    ( cc wcel cabs cfv ccj cmul csqrt absval cc0 cle cjmulrcl cjmulge0 resqrtcl
    co cr wbr syl2anc eqeltrd ) ABCZADEAAFEGOZHEZPAITUAPCJUAKQUBPCALAMUANRS $.

  $( The absolute value of a number and its conjugate are the same.
     Proposition 10-3.7(b) of [Gleason] p. 133.  (Contributed by NM,
     28-Apr-2005.) $)
  abscj $p |- ( A e. CC -> ( abs ` ( * ` A ) ) = ( abs ` A ) ) $=
    ( cc wcel ccj cfv cabs cmul co csqrt wceq cjcl absval syl mulcom mpdan cjcj
    oveq2d eqtr4d fveq2d ) ABCZADEZFEZAUAGHZIEZAFETUBUAUADEZGHZIEZUDTUABCZUBUGJ
    AKZUALMTUCUFITUCUAAGHZUFTUHUCUJJUIAUANOTUEAUAGAPQRSRALR $.

  $( Square of value of absolute value function.  (Contributed by NM,
     16-Jan-2006.) $)
  absvalsq $p |- ( A e. CC -> ( ( abs ` A ) ^ 2 ) = ( A x. ( * ` A ) ) ) $=
    ( cc wcel cabs cfv c2 cexp co ccj cmul csqrt absval oveq1d cc0 cle wbr wceq
    cr cjmulrcl cjmulge0 resqrtth syl2anc eqtrd ) ABCZADEZFGHAAIEJHZKEZFGHZUFUD
    UEUGFGALMUDUFRCNUFOPUHUFQASATUFUAUBUC $.

  $( Square of value of absolute value function.  (Contributed by NM,
     1-Feb-2007.) $)
  absvalsq2 $p |- ( A e. CC -> ( ( abs ` A ) ^ 2 ) =
                    ( ( ( Re ` A ) ^ 2 ) + ( ( Im ` A ) ^ 2 ) ) ) $=
    ( cc wcel cabs cfv c2 cexp ccj cmul cre cim caddc absvalsq cjmulval eqtrd
    co ) ABCADEFGPAAHEIPAJEFGPAKEFGPLPAMANO $.

  $( Square of absolute value of sum.  Proposition 10-3.7(g) of [Gleason]
     p. 133.  (Contributed by NM, 21-Jan-2007.) $)
  sqabsadd $p |- ( ( A e. CC /\ B e. CC ) -> ( ( abs ` ( A + B ) ) ^ 2 ) =
                  ( ( ( ( abs ` A ) ^ 2 ) + ( ( abs ` B ) ^ 2 ) )
                    + ( 2 x. ( Re ` ( A x. ( * ` B ) ) ) ) ) ) $=
    ( cc wcel wa caddc co ccj cmul cabs c2 cexp oveq2d wceq cjcl mpdan absvalsq
    cfv eqtrd sylan2 cre cjadd anim12i muladd addcl syl mulcom oveqan12d addcjd
    mulcl cjmul cjcj adantl eqtr3d oveq12d 3eqtr4d ) ACDZBCDZEZABFGZUTHRZIGZAAH
    RZIGZBHRZBIGZFGZAVEIGZVCBIGZFGZFGZUTJRKLGZAJRKLGZBJRKLGZFGZKVHUARIGZFGUSVBU
    TVCVEFGZIGZVKUSVAVQUTIABUBMUSVCCDZVECDZEVRVKNUQVSURVTAOBOZUCABVCVEUDPSUSUTC
    DVLVBNABUEUTQUFUSVOVGVPVJFUQURVMVDVNVFFAQURVNBVEIGZVFBQURVTWBVFNWABVEUGPSUH
    USVHVHHRZFGVPVJUSVHURUQVTVHCDWAAVEUJTUIUSWCVIVHFUSWCVCVEHRZIGZVIURUQVTWCWEN
    WAAVEUKTUSWDBVCIURWDBNUQBULUMMSMUNUOUP $.

  $( Square of absolute value of difference.  (Contributed by NM,
     21-Jan-2007.) $)
  sqabssub $p |- ( ( A e. CC /\ B e. CC ) -> ( ( abs ` ( A - B ) ) ^ 2 ) =
                  ( ( ( ( abs ` A ) ^ 2 ) + ( ( abs ` B ) ^ 2 ) )
                    - ( 2 x. ( Re ` ( A x. ( * ` B ) ) ) ) ) ) $=
    ( cc wcel wa cmin co ccj cfv cmul caddc cabs c2 cexp oveq2d wceq cjcl mpdan
    eqtrd absvalsq cre cjsub anim12i mulsub subcl mulcom oveqan12d mulcl sylan2
    syl addcjd cjmul cjcj adantl eqtr3d oveq12d 3eqtr4d ) ACDZBCDZEZABFGZVAHIZJ
    GZAAHIZJGZBHIZBJGZKGZAVFJGZVDBJGZKGZFGZVALIMNGZALIMNGZBLIMNGZKGZMVIUAIJGZFG
    UTVCVAVDVFFGZJGZVLUTVBVRVAJABUBOUTVDCDZVFCDZEVSVLPURVTUSWAAQBQZUCABVDVFUDRS
    UTVACDVMVCPABUEVATUJUTVPVHVQVKFURUSVNVEVOVGKATUSVOBVFJGZVGBTUSWAWCVGPWBBVFU
    FRSUGUTVIVIHIZKGVQVKUTVIUSURWAVICDWBAVFUHUIUKUTWDVJVIKUTWDVDVFHIZJGZVJUSURW
    AWDWFPWBAVFULUIUTWEBVDJUSWEBPURBUMUNOSOUOUPUQ $.

  $( Value of absolute value function.  Definition 10.36 of [Gleason] p. 133.
     (Contributed by NM, 17-Mar-2005.) $)
  absval2 $p |- ( A e. CC -> ( abs ` A ) =
               ( sqrt ` ( ( ( Re ` A ) ^ 2 ) + ( ( Im ` A ) ^ 2 ) ) ) ) $=
    ( cc wcel cabs cfv ccj cmul co csqrt cre c2 cexp cim absval cjmulval fveq2d
    caddc eqtrd ) ABCZADEAAFEGHZIEAJEKLHAMEKLHQHZIEANSTUAIAOPR $.

  $( The absolute value of 0.  (Contributed by NM, 26-Mar-2005.)  (Revised by
     Mario Carneiro, 29-May-2016.) $)
  abs0 $p |- ( abs ` 0 ) = 0 $=
    ( cc0 cabs cfv ccj cmul co csqrt cc wcel wceq 0cn absval ax-mp cjcli mul02i
    fveq2i sqrt0 3eqtri ) ABCZAADCZEFZGCZAGCAAHISUBJKALMUAAGTAKNOPQR $.

  $( The absolute value of the imaginary unit.  (Contributed by NM,
     26-Mar-2005.) $)
  absi $p |- ( abs ` _i ) = 1 $=
    ( ci cabs cfv cmul co csqrt c1 cc wcel wceq ax-icn absval ax-mp cneg oveq2i
    ccj cji mulneg2i ixi 3eqtri negeqi negneg1e1 eqtri fveq2i sqrt1 ) ABCZAAPCZ
    DEZFCZGFCGAHIUFUIJKALMUHGFUHAANZDEAADEZNZGUGUJADQOAAKKRULGNZNGUKUMSUAUBUCTU
    DUET $.

  $( Absolute value is nonnegative.  (Contributed by NM, 20-Nov-2004.)
     (Revised by Mario Carneiro, 29-May-2016.) $)
  absge0 $p |- ( A e. CC -> 0 <_ ( abs ` A ) ) $=
    ( cc wcel cc0 ccj cfv cmul csqrt cabs cle cjmulrcl cjmulge0 sqrtge0 syl2anc
    co cr wbr absval breqtrrd ) ABCZDAAEFGOZHFZAIFJTUAPCDUAJQDUBJQAKALUAMNARS
    $.

  $( The absolute value of a nonzero number is a positive real.  (Contributed
     by FL, 27-Dec-2007.)  (Proof shortened by Mario Carneiro, 29-May-2016.) $)
  absrpcl $p |- ( ( A e. CC /\ A =/= 0 ) -> ( abs ` A ) e. RR+ ) $=
    ( cc wcel cc0 wne wa cabs cfv ccj cmul co csqrt crp absval adantr cjmulrcld
    wceq simpl cjmulge0d cjcld simpr mulne0d ne0gt0d elrpd rpsqrtcl syl eqeltrd
    cjne0d ) ABCZADEZFZAGHZAAIHZJKZLHZMUIULUOQUJANOUKUNMCUOMCUKUNUKAUIUJRZPZUKU
    NUQUKAUPSUKAUMUPUKAUPTUIUJUAZUKAUPURUHUBUCUDUNUEUFUG $.

  $( The absolute value of a number is zero iff the number is zero.
     Proposition 10-3.7(c) of [Gleason] p. 133.  (Contributed by NM,
     26-Sep-2005.)  (Proof shortened by Mario Carneiro, 29-May-2016.) $)
  abs00 $p |- ( A e. CC -> ( ( abs ` A ) = 0 <-> A = 0 ) ) $=
    ( cc wcel cabs cfv cc0 wceq wne wa absrpcl rpne0d necon4d fveq2 abs0 syl6eq
    ex impbid1 ) ABCZADEZFGAFGZRAFSFRAFHZSFHRUAISAJKPLTSFDEFAFDMNOQ $.

  ${
    abs00ad.1 $e |- ( ph -> A e. CC ) $.
    $( A complex number is zero iff its absolute value is zero.  Deduction form
       of ~ abs00 .  (Contributed by David Moews, 28-Feb-2017.) $)
    abs00ad $p |- ( ph -> ( ( abs ` A ) = 0 <-> A = 0 ) ) $=
      ( cc wcel cabs cfv cc0 wceq wb abs00 syl ) ABDEBFGHIBHIJCBKL $.
  $}

  ${
    abs00bd.1 $e |- ( ph -> A = 0 ) $.
    $( If a complex number is zero, its absolute value is zero.  Converse of
       ~ abs00d .  One-way deduction form of ~ abs00 .  (Contributed by David
       Moews, 28-Feb-2017.) $)
    abs00bd $p |- ( ph -> ( abs ` A ) = 0 ) $=
      ( cabs cfv cc0 wceq cc 0cn syl6eqel abs00ad mpbird ) ABDEFGBFGCABABFHCIJK
      L $.
  $}

  $( Square of the absolute value of a number that has been decomposed into
     real and imaginary parts.  (Contributed by NM, 1-Feb-2007.) $)
  absreimsq $p |- ( ( A e. RR /\ B e. RR ) ->
         ( ( abs ` ( A + ( _i x. B ) ) ) ^ 2 ) = ( ( A ^ 2 ) + ( B ^ 2 ) ) ) $=
    ( cr wcel wa ci cmul co caddc cabs cfv cexp cre cim wceq recn ax-icn oveq1d
    c2 cc mulcl sylancr addcl syl2an absvalsq2 syl crre crim oveq12d eqtrd ) AC
    DZBCDZEZAFBGHZIHZJKSLHZUOMKZSLHZUONKZSLHZIHZASLHZBSLHZIHUMUOTDZUPVAOUKATDUN
    TDZVDULAPULFTDBTDVEQBPFBUAUBAUNUCUDUOUEUFUMURVBUTVCIUMUQASLABUGRUMUSBSLABUH
    RUIUJ $.

  $( Absolute value of a number that has been decomposed into real and
     imaginary parts.  (Contributed by NM, 14-Jan-2006.) $)
  absreim $p |- ( ( A e. RR /\ B e. RR ) -> ( abs ` ( A + ( _i x. B ) ) ) =
               ( sqrt ` ( ( A ^ 2 ) + ( B ^ 2 ) ) ) ) $=
    ( cr wcel wa ci cmul co caddc cabs cfv c2 cexp csqrt cc0 cle wbr recn syl
    cc ax-icn mulcl sylancr addcl syl2an absge0 sqrtsq syl2anc absreimsq fveq2d
    wceq abscl eqtr3d ) ACDZBCDZEZAFBGHZIHZJKZLMHZNKZUSALMHBLMHIHZNKUPUSCDZOUSP
    QZVAUSUKUPURTDZVCUNATDUQTDZVEUOARUOFTDBTDVFUABRFBUBUCAUQUDUEZURULSUPVEVDVGU
    RUFSUSUGUHUPUTVBNABUIUJUM $.

  $( Absolute value distributes over multiplication.  Proposition 10-3.7(f) of
     [Gleason] p. 133.  (Contributed by NM, 11-Oct-1999.)  (Revised by Mario
     Carneiro, 29-May-2016.) $)
  absmul $p |- ( ( A e. CC /\ B e. CC ) ->
                ( abs ` ( A x. B ) ) = ( ( abs ` A ) x. ( abs ` B ) ) ) $=
    ( cc wcel wa cmul co ccj cfv csqrt cabs cjcld eqtrd cr cc0 cle wbr cjmulrcl
    wceq absval cjmul oveq2d simpl simpr mul4d fveq2d cjmulge0 jca syl2an mulcl
    sqrtmul syl oveqan12d 3eqtr4d ) ACDZBCDZEZABFGZURHIZFGZJIZAAHIZFGZJIZBBHIZF
    GZJIZFGZURKIZAKIZBKIZFGUQVAVCVFFGZJIZVHUQUTVLJUQUTURVBVEFGZFGVLUQUSVNURFABU
    AUBUQABVBVEUOUPUCZUOUPUDZUQAVOLUQBVPLUEMUFUOVCNDZOVCPQZEVFNDZOVFPQZEVMVHSUP
    UOVQVRARAUGUHUPVSVTBRBUGUHVCVFUKUIMUQURCDVIVASABUJURTULUOUPVJVDVKVGFATBTUMU
    N $.

  $( Absolute value distributes over division.  (Contributed by NM,
     27-Apr-2005.) $)
  absdiv $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) ->
                ( abs ` ( A / B ) ) = ( ( abs ` A ) / ( abs ` B ) ) ) $=
    ( cc wcel cc0 wne w3a cdiv co cabs cfv cr divcl abscl syl recnd crp absrpcl
    cmul eqtr3d 3adant1 rpcnd rpne0d divcan4d wceq simp2 absmul syl2anc divcan1
    fveq2d oveq1d ) ACDZBCDZBEFZGZABHIZJKZBJKZSIZURHIUQAJKZURHIUOUQURUOUQUOUPCD
    ZUQLDABMZUPNOPUOURUMUNURQDULBRUAZUBUOURVCUCUDUOUSUTURHUOUPBSIZJKZUSUTUOVAUM
    VEUSUEVBULUMUNUFUPBUGUHUOVDAJABUIUJTUKT $.

  $( A nonnegative number is its own absolute value.  (Contributed by NM,
     11-Oct-1999.)  (Revised by Mario Carneiro, 29-May-2016.) $)
  absid $p |- ( ( A e. RR /\ 0 <_ A ) -> ( abs ` A ) = A ) $=
    ( cr wcel cc0 cle wbr wa cabs cfv cmul co csqrt c2 cexp cc wceq simpl recnd
    ccj absval syl cjred oveq2d sqvald eqtr4d fveq2d sqrtsq 3eqtrd ) ABCZDAEFZG
    ZAHIZAASIZJKZLIZAMNKZLIAUKAOCULUOPUKAUIUJQZRZATUAUKUNUPLUKUNAAJKUPUKUMAAJUK
    AUQUBUCUKAURUDUEUFAUGUH $.

  $( The absolute value of 1.  Common special case.  (Contributed by David A.
     Wheeler, 16-Jul-2016.) $)
  abs1 $p |- ( abs ` 1 ) = 1 $=
    ( c1 cr wcel cc0 cle wbr cabs cfv wceq 1re 0le1 absid mp2an ) ABCDAEFAGHAIJ
    KALM $.

  $( A negative number is the negative of its own absolute value.  (Contributed
     by NM, 27-Feb-2005.) $)
  absnid $p |- ( ( A e. RR /\ A <_ 0 ) -> ( abs ` A ) = -u A ) $=
    ( cr wcel cc0 cle wbr cabs cfv cneg wceq le0neg1 wa recn absneg syl renegcl
    cc adantr absid sylan eqtr3d ex sylbid imp ) ABCZADEFZAGHZAIZJZUEUFDUHEFZUI
    AKUEUJUIUEUJLUHGHZUGUHUEUKUGJZUJUEAQCULAMANORUEUHBCUJUKUHJAPUHSTUAUBUCUD $.

  $( A real number is less than or equal to its absolute value.  (Contributed
     by NM, 27-Feb-2005.) $)
  leabs $p |- ( A e. RR -> A <_ ( abs ` A ) ) $=
    ( cr wcel cabs cfv cle wbr cc0 0red id wceq absid eqcom eqle sylan2b syldan
    cc recn absge0 syl wa wi abscl 0re letr mp3an2 mpdan mpan2d imp lecasei ) A
    BCZAADEZFGZHAUKIUKJUKHAFGULAKZUMALUNUKAULKUMULAMAULNOPUKAHFGZUMUKUOHULFGZUM
    UKAQCZUPARZASTUKULBCZUOUPUAUMUBZUKUQUSURAUCTUKHBCUSUTUDAHULUEUFUGUHUIUJ $.

  $( The absolute value of a real number is either that number or its negative.
     (Contributed by NM, 27-Feb-2005.) $)
  absor $p |- ( A e. RR -> ( ( abs ` A ) = A \/ ( abs ` A ) = -u A ) ) $=
    ( cr wcel cc0 cle wbr wo cabs cfv wceq cneg 0re letric mpan absid ex absnid
    orim12d mpd ) ABCZDAEFZADEFZGZAHIZAJZUDAKJZGDBCTUCLDAMNTUAUEUBUFTUAUEAOPTUB
    UFAQPRS $.

  $( Absolute value of a real number.  (Contributed by NM, 17-Mar-2005.) $)
  absre $p |- ( A e. RR -> ( abs ` A ) = ( sqrt ` ( A ^ 2 ) ) ) $=
    ( cr wcel cabs cfv ccj cmul co csqrt c2 cexp cc wceq recn absval syl sqvald
    cjre oveq2d eqtr4d fveq2d ) ABCZADEZAAFEZGHZIEZAJKHZIEUBALCUCUFMANZAOPUBUGU
    EIUBUGAAGHUEUBAUHQUBUDAAGARSTUAT $.

  $( Square of the absolute value of a real number.  (Contributed by NM,
     16-Jan-2006.) $)
  absresq $p |- ( A e. RR -> ( ( abs ` A ) ^ 2 ) = ( A ^ 2 ) ) $=
    ( cr wcel ccj cmul co cabs c2 cexp cjre oveq2d cc wceq recn absvalsq sqvald
    cfv syl 3eqtr4d ) ABCZAADQZEFZAAEFAGQHIFZAHIFTUAAAEAJKTALCUCUBMANZAORTAUDPS
    $.

  $( ` A ` is divisible by ` B ` iff its absolute value is.  (Contributed by
     Jeff Madsen, 2-Sep-2009.) $)
  absmod0 $p |- ( ( A e. RR /\ B e. RR+ ) ->
                    ( ( A mod B ) = 0 <-> ( ( abs ` A ) mod B ) = 0 ) ) $=
    ( cr wcel crp wa cabs cfv wceq cmo co cc0 wb wi oveq1 eqcoms eqeq1d negmod0
    cneg a1i bibi2d syl5ibrcom wo absor adantr mpjaod ) ACDZBEDZFZAGHZAIZABJKZL
    IZUJBJKZLIZMZUJASZIZUKUPNUIUKULUNLULUNIAUJAUJBJOPQTUIUPURUMUQBJKZLIZMABRURU
    OUTUMURUNUSLUJUQBJOQUAUBUGUKURUCUHAUDUEUF $.

  ${
    $d j k A $.  $d j k N $.
    $( Absolute value of positive integer exponentiation.  (Contributed by NM,
       5-Jan-2006.) $)
    absexp $p |- ( ( A e. CC /\ N e. NN0 ) ->
                  ( abs ` ( A ^ N ) ) = ( ( abs ` A ) ^ N ) ) $=
      ( vj vk cn0 wcel cc cexp co cabs cfv wceq wi cc0 c1 fveq2d eqeq12d imbi2d
      oveq2 cmul cv caddc abs1 exp0 abscl recnd exp0d 3eqtr4a oveq1 expp1 expcl
      wa adantl simpl absmul syl2anc eqtrd adantr sylan 3eqtr4d exp31 com12 a2d
      nn0ind impcom ) BEFAGFZABHIZJKZAJKZBHIZLZVFACUAZHIZJKZVIVLHIZLZMVFANHIZJK
      ZVINHIZLZMVFADUAZHIZJKZVIWAHIZLZMVFAWAOUBIZHIZJKZVIWFHIZLZMVFVKMCDBVLNLZV
      PVTVFWKVNVRVOVSWKVMVQJVLNAHSPVLNVIHSQRVLWALZVPWEVFWLVNWCVOWDWLVMWBJVLWAAH
      SPVLWAVIHSQRVLWFLZVPWJVFWMVNWHVOWIWMVMWGJVLWFAHSPVLWFVIHSQRVLBLZVPVKVFWNV
      NVHVOVJWNVMVGJVLBAHSPVLBVIHSQRVFOJKOVRVSUCVFVQOJAUDPVFVIVFVIAUEUFZUGUHWAE
      FZVFWEWJVFWPWEWJMVFWPWEWJVFWPULZWEULWCVITIZWDVITIZWHWIWEWRWSLWQWCWDVITUIU
      MWQWHWRLWEWQWHWBATIZJKZWRWQWGWTJAWAUJPWQWBGFVFXAWRLAWAUKVFWPUNWBAUOUPUQUR
      WQWIWSLZWEVFVIGFWPXBWOVIWAUJUSURUTVAVBVCVDVE $.
  $}

  $( Absolute value of integer exponentiation.  (Contributed by Mario Carneiro,
     6-Apr-2015.) $)
  absexpz $p |- ( ( A e. CC /\ A =/= 0 /\ N e. ZZ ) ->
                ( abs ` ( A ^ N ) ) = ( ( abs ` A ) ^ N ) ) $=
    ( cz wcel cc cc0 wne cn0 cr wa cexp co cabs cfv wceq absexp ex cdiv syl3anc
    c1 cneg cn wo elznn0nn wi adantr 1cnd simpll ad2antll expcld simplr expne0d
    nnnn0 absdiv oveq1i syl2anc oveq2d syl5eq eqtrd simprl recnd expneg2 fveq2d
    nnz abs1 abscl ad2antrr 3eqtr4d jaod 3impia syl3an3b ) BCDAEDZAFGZBHDZBIDZB
    UAZUBDZJZUCZABKLZMNZAMNZBKLZOZBUDVLVMVSWDVLVMJZVNWDVRVLVNWDUEVMVLVNWDABPQUF
    WEVRWDWEVRJZTAVPKLZRLZMNZTWBVPKLZRLZWAWCWFWITMNZWGMNZRLZWKWFTEDWGEDWGFGWIWN
    OWFUGWFAVPVLVMVRUHZVQVPHDZWEVOVPUMUIZUJWFAVPWOVLVMVRUKVQVPCDWEVOVPVDUIULTWG
    UNSWFWNTWMRLWKWLTWMRVEUOWFWMWJTRWFVLWPWMWJOWOWQAVPPUPUQURUSWFVTWHMWFVLBEDZW
    PVTWHOWOWFBWEVOVQUTVAZWQABVBSVCWFWBEDWRWPWCWKOWFWBVLWBIDVMVRAVFVGVAWSWQWBBV
    BSVHQVIVJVK $.

  $( Square can be moved in and out of absolute value.  (Contributed by Scott
     Fenton, 18-Apr-2014.)  (Proof shortened by Mario Carneiro,
     29-May-2016.) $)
  abssq $p |- ( A e. CC -> ( ( abs ` A ) ^ 2 ) = ( abs ` ( A ^ 2 ) ) ) $=
    ( cc wcel c2 cexp co cabs cfv cn0 wceq 2nn0 absexp mpan2 eqcomd ) ABCZADEFG
    HZAGHDEFZODICPQJKADLMN $.

  $( The squares of two reals are equal iff their absolute values are equal.
     (Contributed by NM, 6-Mar-2009.) $)
  sqabs $p |- ( ( A e. RR /\ B e. RR ) -> ( ( A ^ 2 ) = ( B ^ 2 ) <->
               ( abs ` A ) = ( abs ` B ) ) ) $=
    ( cr wcel wa c2 cexp co wceq cabs cfv cc0 cle resqcl sqge0 absid syl2anc cc
    wbr recn cn0 2nn0 absexp sylancl eqtr3d eqeqan12d wb absge0 jca sq11 syl2an
    abscl bitrd ) ACDZBCDZEAFGHZBFGHZIAJKZFGHZBJKZFGHZIZURUTIZUNUOUPUSUQVAUNUPJ
    KZUPUSUNUPCDLUPMSVDUPIANAOUPPQUNARDZFUADZVDUSIATZUBAFUCUDUEUOUQJKZUQVAUOUQC
    DLUQMSVHUQIBNBOUQPQUOBRDZVFVHVAIBTZUBBFUCUDUEUFUNVEVIVBVCUGZUOVGVJVEURCDZLU
    RMSZEUTCDZLUTMSZEVKVIVEVLVMAULAUHUIVIVNVOBULBUHUIURUTUJUKUKUM $.

  $( The absolute value of a complex number is greater than or equal to the
     absolute value of its real part.  (Contributed by NM, 1-Apr-2005.) $)
  absrele $p |- ( A e. CC -> ( abs ` ( Re ` A ) ) <_ ( abs ` A ) ) $=
    ( cc wcel cre cfv c2 cexp co csqrt cim cabs cle wbr cc0 imcl sqge0d resqcld
    caddc mpbid cr recl addge01d wb readdcld addge0d sqrtle syl22anc wceq absre
    syl absval2 3brtr4d ) ABCZADEZFGHZIEZUOAJEZFGHZRHZIEZUNKEZAKELUMUOUSLMZUPUT
    LMZUMNURLMVBUMUQAOZPZUMUOURUMUNAUAZQZUMUQVDQZUBSUMUOTCNUOLMUSTCNUSLMVBVCUCV
    GUMUNVFPZUMUOURVGVHUDUMUOURVGVHVIVEUEUOUSUFUGSUMUNTCVAUPUHVFUNUIUJAUKUL $.

  $( The absolute value of a complex number is greater than or equal to the
     absolute value of its imaginary part.  (Contributed by NM, 17-Mar-2005.)
     (Proof shortened by Mario Carneiro, 29-May-2016.) $)
  absimle $p |- ( A e. CC -> ( abs ` ( Im ` A ) ) <_ ( abs ` A ) ) $=
    ( cc wcel ci cneg cmul co cre cfv cabs cim cle wbr negicn id mulcld absrele
    a1i wceq c1 syl imre fveq2d absmul mpan ax-icn ax-mp absi eqtri abscl recnd
    absneg oveq1i mulid2d syl5eq eqtr2d 3brtr4d ) ABCZDEZAFGZHIZJIZUTJIZAKIZJIA
    JIZLURUTBCVBVCLMURUSAUSBCZURNRUROPUTQUAURVDVAJAUBUCURVCUSJIZVEFGZVEVFURVCVH
    SNUSAUDUEURVHTVEFGVEVGTVEFVGDJIZTDBCVGVISUFDULUGUHUIUMURVEURVEAUJUKUNUOUPUQ
    $.

  $( The sum of the positive and negative part functions is the absolute value
     function over the reals.  (Contributed by Mario Carneiro, 24-Aug-2014.) $)
  max0add $p |- ( A e. RR ->
    ( if ( 0 <_ A , A , 0 ) + if ( 0 <_ -u A , -u A , 0 ) ) = ( abs ` A ) ) $=
    ( cr wcel cc0 cle wbr cif caddc co wceq wa adantr biimpa 0re letri3 ifeq1da
    wb ifid syl6eq oveq12d cneg cabs cfv 0red id cc recn addid1d iftrue le0neg2
    adantl simpr renegcl ad2antrr sylancl mpbir2and absid 3eqtr4d addid2d mpan2
    negcld biimprd impl le0neg1 iftrued absnid lecasei ) ABCZDAEFZADGZDAUAZEFZV
    KDGZHIZAUBUCZJDAVHUDVHUEVHVIKZADHIAVNVOVPAVHAUFCZVIAUGZLUHVPVJAVMDHVIVJAJVH
    VIADUIUKVPVMVLDDGDVPVLVKDDVPVLKZVKDJZVKDEFZVLVPWAVLVHVIWAAUJMLVPVLULVSVKBCZ
    DBCZVTWAVLKQVHWBVIVLAUMUNNVKDOUOUPPVLDRSTAUQURVHADEFZKZDVKHIVKVNVOWEVKWEAVH
    VQWDVRLVAUSWEVJDVMVKHWEVJVIDDGDWEVIADDVHWDVIADJZVHWFWDVIKZVHWCWFWGQNADOUTVB
    VCPVIDRSWEVLVKDVHWDVLAVDMVETAVFURVG $.

  $( A real number is an integer iff its absolute value is an integer.
     (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario
     Carneiro, 29-May-2016.) $)
  absz $p |- ( A e. RR -> ( A e. ZZ <-> ( abs ` A ) e. ZZ ) ) $=
    ( cr wcel cabs cfv wceq cz wb cneg eleq1 bicomd a1i recn znegclb syl bibi2d
    wi cc syl5ibrcom absor mpjaod ) ABCZADEZAFZAGCZUCGCZHZUCAIZFZUDUGQUBUDUFUEU
    CAGJKLUBUGUIUEUHGCZHZUBARCUKAMANOUIUFUJUEUCUHGJPSATUA $.

  $( The absolute value of an integer is a nonnegative integer.  (Contributed
     by NM, 27-Feb-2005.)  (Proof shortened by Mario Carneiro, 29-May-2016.) $)
  nn0abscl $p |- ( A e. ZZ -> ( abs ` A ) e. NN0 ) $=
    ( cz wcel cabs cfv cc0 cle wbr cn0 cr wb zre absz syl ibi zcn absge0 elnn0z
    cc sylanbrc ) ABCZADEZBCZFUBGHZUBICUAUCUAAJCUAUCKALAMNOUAASCUDAPAQNUBRT $.

  $( The absolute value of an integer is an integer.  (Contributed by Stefan
     O'Rear, 24-Sep-2014.) $)
  zabscl $p |- ( A e. ZZ -> ( abs ` A ) e. ZZ ) $=
    ( cz wcel cabs cfv nn0abscl nn0zd ) ABCADEAFG $.

  $( Absolute value and 'less than' relation.  (Contributed by NM, 6-Apr-2005.)
     (Revised by Mario Carneiro, 29-May-2016.) $)
  abslt $p |- ( ( A e. RR /\ B e. RR ) ->
               ( ( abs ` A ) < B <-> ( -u B < A /\ A < B ) ) ) $=
    ( cr wcel wa cabs cfv clt wbr cneg simpll renegcld cc syl cle leabs lelttrd
    wceq breq1 biimprd recnd abscl simplr absneg simpr ad2antrr jca ex wo absor
    breqtrd wi adantr jaoa ancomsd impbid ltnegcon1 anbi1d bitrd ) ACDZBCDZEZAF
    GZBHIZAJZBHIZABHIZEZBJAHIZVGEVBVDVHVBVDVHVBVDEZVFVGVJVEVCBVJAUTVAVDKZLZVJAM
    DZVCCDVJAVKUAZAUBNZUTVAVDUCZVJVEVEFGZVCOVJVECDVEVQOIVLVEPNVJVMVQVCRVNAUDNUK
    VBVDUEZQVJAVCBVKVOVPUTAVCOIVAVDAPUFVRQUGUHVBVCARZVCVERZUIZVHVDULUTWAVAAUJUM
    WAVGVFVDVSVGVDVTVFVSVDVGVCABHSTVTVDVFVCVEBHSTUNUONUPVBVFVIVGABUQURUS $.

  $( Absolute value and 'less than or equal to' relation.  (Contributed by NM,
     6-Apr-2005.)  (Revised by Mario Carneiro, 29-May-2016.) $)
  absle $p |- ( ( A e. RR /\ B e. RR ) ->
               ( ( abs ` A ) <_ B <-> ( -u B <_ A /\ A <_ B ) ) ) $=
    ( cr wcel wa cabs cfv cle wbr cneg simpll renegcld cc recnd syl leabs letrd
    wceq breq1 biimprd abscl simplr absneg breqtrd simpr ad2antrr jca ex adantr
    wo wi absor jaoa ancomsd impbid lenegcon1 anbi1d bitrd ) ACDZBCDZEZAFGZBHIZ
    AJZBHIZABHIZEZBJAHIZVFEVAVCVGVAVCVGVAVCEZVEVFVIVDVBBVIAUSUTVCKZLZVIAMDZVBCD
    VIAVJNZAUAOZUSUTVCUBZVIVDVDFGZVBHVIVDCDVDVPHIVKVDPOVIVLVPVBRVMAUCOUDVAVCUEZ
    QVIAVBBVJVNVOUSAVBHIUTVCAPUFVQQUGUHVAVBARZVBVDRZUJZVGVCUKUSVTUTAULUIVTVFVEV
    CVRVFVCVSVEVRVCVFVBABHSTVSVCVEVBVDBHSTUMUNOUOVAVEVHVFABUPUQUR $.

  $( If the absolute value of a complex number is less than a real, its
     difference from the real is nonzero.  (Contributed by NM, 2-Nov-2007.)
     (Proof shortened by Mario Carneiro, 29-May-2016.) $)
  abssubne0 $p |- ( ( A e. CC /\ B e. RR /\ ( abs ` A ) < B ) ->
                   ( B - A ) =/= 0 ) $=
    ( cc wcel cr cabs cfv clt wbr cmin co cc0 wne simplr recnd simpll abscl syl
    wa simpr cle leabs ltletrd gtned fveq2 necon3i subne0d 3impa ) ACDZBEDZAFGZ
    BHIZBAJKLMUIUJSZULSZBAUNBUIUJULNZOZUIUJULPZUNBFGZUKMBAMUNUKURUNUIUKEDUQAQRZ
    UNUKBURUSUOUNBCDUREDUPBQRUMULTUNUJBURUAIUOBUBRUCUDBAURUKBAFUEUFRUGUH $.

  $( The absolute value of a difference and 'less than' relation.  (Contributed
     by Paul Chapman, 18-Sep-2007.) $)
  absdiflt $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                    ( ( abs ` ( A - B ) ) < C <->
                      ( ( B - C ) < A /\ A < ( B + C ) ) ) ) $=
    ( cr wcel w3a cmin co cabs cfv clt wbr cneg wa caddc wb resubcl abslt recn
    cc stoic3 renegcl ltaddsub2 syl3an2 3comr wceq negsub syl2an 3adant1 breq1d
    bitr3d ltsubadd2 anbi12d bitrd ) ADEZBDEZCDEZFZABGHZIJCKLZCMZUSKLZUSCKLZNZB
    CGHZAKLZABCOHKLZNUOUPUSDEUQUTVDPABQUSCRUAURVBVFVCVGURBVAOHZAKLZVBVFUPUQUOVI
    VBPZUQUPVADEUOVJCUBBVAAUCUDUEURVHVEAKUPUQVHVEUFZUOUPBTECTEVKUQBSCSBCUGUHUIU
    JUKABCULUMUN $.

  $( The absolute value of a difference and 'less than or equal to' relation.
     (Contributed by Paul Chapman, 18-Sep-2007.) $)
  absdifle $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
                    ( ( abs ` ( A - B ) ) <_ C <->
                      ( ( B - C ) <_ A /\ A <_ ( B + C ) ) ) ) $=
    ( cr wcel w3a cmin co cabs cfv cle wbr cneg wa caddc wb resubcl absle recn
    cc stoic3 renegcl leaddsub2 syl3an2 3comr wceq negsub syl2an 3adant1 breq1d
    bitr3d lesubadd2 anbi12d bitrd ) ADEZBDEZCDEZFZABGHZIJCKLZCMZUSKLZUSCKLZNZB
    CGHZAKLZABCOHKLZNUOUPUSDEUQUTVDPABQUSCRUAURVBVFVCVGURBVAOHZAKLZVBVFUPUQUOVI
    VBPZUQUPVADEUOVJCUBBVAAUCUDUEURVHVEAKUPUQVHVEUFZUOUPBTECTEVKUQBSCSBCUGUHUIU
    JUKABCULUMUN $.

  $( Membership in a symmetric closed real interval.  (Contributed by Stefan
     O'Rear, 16-Nov-2014.) $)
  elicc4abs $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
      ( C e. ( ( A - B ) [,] ( A + B ) ) <-> ( abs ` ( C - A ) ) <_ B ) ) $=
    ( cr wcel w3a cmin co caddc cicc cle wbr wa cabs cfv cxr wb resubcl 3adant3
    rexrd readdcl rexr 3ad2ant3 elicc4 syl3anc absdifle 3coml bitr4d ) ADEZBDEZ
    CDEZFZCABGHZABIHZJHEZUMCKLCUNKLMZCAGHNOBKLZULUMPEUNPECPEZUOUPQULUMUIUJUMDEU
    KABRSTULUNUIUJUNDEUKABUASTUKUIURUJCUBUCUMUNCUDUEUKUIUJUQUPQCABUFUGUH $.

  $( Comparison to a nonnegative number based on comparison to squares.
     (Contributed by NM, 16-Jan-2006.) $)
  lenegsq $p |- ( ( A e. RR /\ B e. RR /\ 0 <_ B ) ->
              ( ( A <_ B /\ -u A <_ B ) <-> ( A ^ 2 ) <_ ( B ^ 2 ) ) ) $=
    ( cr wcel cc0 cle wbr cneg wa c2 cexp co wb cabs cfv recn abscl absge0 jca
    cc le2sq sylan absle ancom lenegcon1 anbi1d syl5rbbr adantrr absresq breq1d
    syl bitrd adantr 3bitr3d 3impb ) ACDZBCDZEBFGZABFGZAHBFGZIZAJKLZBJKLZFGZMUP
    UQURIZIANOZBFGZVFJKLZVCFGZVAVDUPVFCDZEVFFGZIZVEVGVIMUPATDZVLAPVMVJVKAQARSUK
    VFBUAUBUPUQVGVAMURUPUQIZVGBHAFGZUSIZVAABUCVAUTUSIVNVPUTUSUDVNUTVOUSABUEUFUG
    ULUHUPVIVDMVEUPVHVBVCFAUIUJUMUNUO $.

  $( The real part of a number is less than or equal to its absolute value.
     Proposition 10-3.7(d) of [Gleason] p. 133.  (Contributed by NM,
     1-Apr-2005.) $)
  releabs $p |- ( A e. CC -> ( Re ` A ) <_ ( abs ` A ) ) $=
    ( cc wcel cre cfv cabs recl cr recnd abscl syl cle wbr leabs absrele letrd
    ) ABCZADEZRFEZAFEAGZQRBCSHCQRTIRJKAJQRHCRSLMTRNKAOP $.

  $( Reciprocal expressed with a real denominator.  (Contributed by Mario
     Carneiro, 1-Apr-2015.) $)
  recval $p |- ( ( A e. CC /\ A =/= 0 ) ->
                  ( 1 / A ) = ( ( * ` A ) / ( ( abs ` A ) ^ 2 ) ) ) $=
    ( cc wcel cc0 wne wa c1 cabs cfv c2 cexp co ccj cdiv wceq cmul adantr simpl
    cjcl mpbird mulcomd absvalsq eqtr4d abscl recnd sqcld biimpa divmuld oveq2d
    cr cjne0 abs00 necon3bid biimpar wb sqne0 syl recdivd eqtr3d ) ABCZADEZFZGA
    HIZJKLZAMIZNLZNLGANLVEVDNLVBVFAGNVBVFAOVEAPLZVDOVBVGAVEPLZVDVBVEAUTVEBCVAAS
    QZUTVARZUAUTVDVHOVAAUBQUCVBVDVEAVBVCVBVCUTVCUJCVAAUDQUEZUFZVIVJUTVAVEDEAUKU
    GZUHTUIVBVDVEVLVIVBVDDEZVCDEZUTVOVAUTVCDADAULUMUNVBVCBCVNVOUOVKVCUPUQTVMURU
    S $.

  $( The absolute value function is idempotent.  (Contributed by NM,
     20-Nov-2004.) $)
  absidm $p |- ( A e. CC -> ( abs ` ( abs ` A ) ) = ( abs ` A ) ) $=
    ( cc wcel cabs cfv cr cc0 cle wbr wceq abscl absge0 absid syl2anc ) ABCADEZ
    FCGOHIODEOJAKALOMN $.

  $( The absolute value of a nonzero number is positive.  (Contributed by NM,
     1-Oct-1999.)  (Proof shortened by Mario Carneiro, 29-May-2016.) $)
  absgt0 $p |- ( A e. CC -> ( A =/= 0 <-> 0 < ( abs ` A ) ) ) $=
    ( cc wcel cc0 cabs cfv clt wbr wne 0red abscl absge0 abs00 necon3bid bitr2d
    leltned ) ABCZDAEFZGHRDIADIQDRQJAKALPQRDADAMNO $.

  $( The absolute value of a nonzero integer is a positive integer.
     (Contributed by Paul Chapman, 21-Mar-2011.)  (Proof shortened by Andrew
     Salmon, 25-May-2011.) $)
  nnabscl $p |- ( ( N e. ZZ /\ N =/= 0 ) -> ( abs ` N ) e. NN ) $=
    ( cz wcel cc0 wne wa cabs cfv clt wbr cn zabscl adantr cc wb zcn absgt0 syl
    biimpa elnnz sylanbrc ) ABCZADEZFAGHZBCZDUDIJZUDKCUBUEUCALMUBUCUFUBANCUCUFO
    APAQRSUDTUA $.

  $( Swapping order of subtraction doesn't change the absolute value.
     (Contributed by NM, 1-Oct-1999.)  (Proof shortened by Mario Carneiro,
     29-May-2016.) $)
  abssub $p |- ( ( A e. CC /\ B e. CC ) ->
                 ( abs ` ( A - B ) ) = ( abs ` ( B - A ) ) ) $=
    ( cc wcel wa cmin co cneg cabs cfv subcl absneg syl negsubdi2 fveq2d eqtr3d
    wceq ) ACDBCDEZABFGZHZIJZSIJZBAFGZIJRSCDUAUBQABKSLMRTUCIABNOP $.

  $( Absolute value of a nonnegative difference.  (Contributed by NM,
     14-Feb-2008.) $)
  abssubge0 $p |- ( ( A e. RR /\ B e. RR /\ A <_ B )
                      -> ( abs ` ( B - A ) ) = ( B - A ) ) $=
    ( cr wcel cle wbr cmin co cabs cfv wceq w3a resubcl 3adant3 subge0 biimp3ar
    cc0 absid syl2anc 3com12 ) BCDZACDZABEFZBAGHZIJUDKZUAUBUCLUDCDZQUDEFZUEUAUB
    UFUCBAMNUAUBUGUCBAOPUDRST $.

  $( Absolute value of a nonpositive difference.  (Contributed by FL,
     3-Jan-2008.) $)
  abssuble0 $p |- ( ( A e. RR /\ B e. RR /\ A <_ B )
                      -> ( abs ` ( A - B ) ) = ( B - A ) ) $=
    ( cr wcel cle wbr w3a cmin co cabs cfv wceq cc recn abssub syl2an abssubge0
    3adant3 eqtrd ) ACDZBCDZABEFZGABHIJKZBAHIZJKZUDTUAUCUELZUBTAMDBMDUFUAANBNAB
    OPRABQS $.

  $( The maximum of two numbers using absolute value.  (Contributed by NM,
     7-Aug-2008.) $)
  absmax $p |- ( ( A e. RR /\ B e. RR ) -> if ( A <_ B , B , A )
              = ( ( ( A + B ) + ( abs ` ( A - B ) ) ) / 2 ) ) $=
    ( cr wcel wa cle caddc co cmin c2 cdiv wceq cmul cc recn simpr simpl adantl
    wbr oveq1d cif cabs cfv clt cc0 wne 2ne0 divcan3 mp3an23 ad2antlr abssubge0
    2cn syl ltle imp 3expa syldan oveq2d ppncand 2times eqtr4d syl2an adantr wn
    biimpa iffalsed 3eqtr4rd ancom1s abssuble0 addcom 3eqtr4d iftrue ltlecasei
    eqtrd ltnle ) ACDZBCDZEZABFSZBAUAZABGHZABIHZUBUCZGHZJKHZLZBAVQVPBAUDSZWFVQV
    PEZWGEZJAMHZJKHZAWEVTVPWKALZVQWGVPANDZWLAOZWMJNDZJUEUFZWLULUGAJUHUIUMUJWIWD
    WJJKWIWDWAWBGHZWJWIWCWBWAGWHWGBAFSZWCWBLZWHWGWRBAUNUOVQVPWRWSBAUKUPUQURWHWQ
    WJLZWGVQBNDZWMWTVPBOZWNXAWMEZWQAAGHZWJXCABAXAWMPZXAWMQXEUSWMWJXDLXAAUTRVAVB
    VCVNTWIVSBAWHWGVSVDBAVOVEVFVGVHVRVSEZJBMHZJKHZBWEVTVQXHBLZVPVSVQXAXIXBXAWOW
    PXIULUGBJUHUIUMUJXFWDXGJKXFWDWABAIHZGHZXGXFWCXJWAGVPVQVSWCXJLABVIUPURVRXKXG
    LZVSVPWMXAXLVQWNXBWMXAEZBAGHZXJGHBBGHZXKXGXMBABWMXAPZWMXAQXPUSXMWAXNXJGABVJ
    TXAXGXOLWMBUTRVKVBVCVNTVSVTBLVRVSBAVLRVGVPVQPVPVQQVM $.

  $( Triangle inequality for absolute value.  Proposition 10-3.7(h) of
     [Gleason] p. 133.  (Contributed by NM, 7-Mar-2005.)  (Proof shortened by
     Mario Carneiro, 29-May-2016.) $)
  abstri $p |- ( ( A e. CC /\ B e. CC ) ->
                ( abs ` ( A + B ) ) <_ ( ( abs ` A ) + ( abs ` B ) ) ) $=
    ( cc wcel caddc co cabs cfv cle wbr c2 cexp cmul cr remulcld abscl syl wceq
    recnd cc0 wa ccj cre 2re a1i simpl simpr cjcld mulcld recld resqcld releabs
    readdcld absmul syl2anc abscj oveq2d eqtrd breqtrd crp 2rp lemul2d leadd2dd
    mpbid sqabsadd binom2 add32d 3brtr4d addcl absge0 addge0d le2sqd mpbird ) A
    CDZBCDZUAZABEFZGHZAGHZBGHZEFZIJVRKLFZWAKLFZIJVPVSKLFZVTKLFZEFZKABUBHZMFZUCH
    ZMFZEFWFKVSVTMFZMFZEFZWBWCIVPWJWLWFVPKWIKNDVPUDUEZVPWHVPAWGVNVOUFZVPBVNVOUG
    ZUHZUIZUJZOVPKWKWNVPVSVTVPVNVSNDWOAPQZVPVOVTNDWPBPQZOZOZVPWDWEVPVSWTUKZVPVT
    XAUKZUMVPWIWKIJWJWLIJVPWIWHGHZWKIVPWHCDWIXFIJWRWHULQVPXFVSWGGHZMFZWKVPVNWGC
    DXFXHRWOWQAWGUNUOVPXGVTVSMVPVOXGVTRWPBUPQUQURUSVPWIWKKWSXBKUTDVPVAUEVBVDVCA
    BVEVPWCWDWLEFWEEFZWMVPVSCDVTCDWCXIRVPVSWTSVPVTXASVSVTVFUOVPWDWLWEVPWDXDSVPW
    LXCSVPWEXESVGURVHVPVRWAVPVQCDZVRNDABVIZVQPQVPVSVTWTXAUMVPXJTVRIJXKVQVJQVPVS
    VTWTXAVPVNTVSIJWOAVJQVPVOTVTIJWPBVJQVKVLVM $.

  $( Absolute value of differences around common element.  (Contributed by FL,
     9-Oct-2006.) $)
  abs3dif $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
            ( abs ` ( A - B ) ) <_ ( ( abs ` ( A - C ) ) +
                      ( abs ` ( C - B ) ) ) ) $=
    ( cc wcel w3a cmin caddc cabs cfv cle wceq npncan 3com23 fveq2d wbr 3adant2
    co subcl ancoms 3adant1 abstri syl2anc eqbrtrrd ) ADEZBDEZCDEZFZACGRZCBGRZH
    RZIJZABGRZIJUIIJUJIJHRZKUHUKUMIUEUGUFUKUMLACBMNOUHUIDEZUJDEZULUNKPUEUGUOUFA
    CSQUFUGUPUEUGUFUPCBSTUAUIUJUBUCUD $.

  $( Difference of absolute values.  (Contributed by Paul Chapman,
     7-Sep-2007.) $)
  abs2dif $p |- ( ( A e. CC /\ B e. CC ) ->
                 ( ( abs ` A ) - ( abs ` B ) ) <_ ( abs ` ( A - B ) ) ) $=
    ( cc wcel wa cc0 cmin co cfv cle subid1 fveq2d wbr 0cn cr subcl mpan2 abscl
    cabs syl oveqan12d caddc abs3dif mp3an2 wb anim12i df-3an sylanbrc lesubadd
    w3a mpbird eqbrtrrd ) ACDZBCDZEZAFGHZSIZBFGHZSIZGHZASIZBSIZGHABGHZSIZJUMUNU
    QVAUSVBGUMUPASAKLUNURBSBKLUAUOUTVDJMZUQVDUSUBHJMZUMFCDZUNVFNAFBUCUDUOUQODZU
    SODZVDODZUJZVEVFUEUOVHVIEVJVKUMVHUNVIUMUPCDZVHUMVGVLNAFPQUPRTUNURCDZVIUNVGV
    MNBFPQURRTUFUOVCCDVJABPVCRTVHVIVJUGUHUQUSVDUITUKUL $.

  $( Difference of absolute values.  (Contributed by Mario Carneiro,
     14-Apr-2016.) $)
  abs2dif2 $p |- ( ( A e. CC /\ B e. CC ) ->
                 ( abs ` ( A - B ) ) <_ ( ( abs ` A ) + ( abs ` B ) ) ) $=
    ( cc wcel wa cneg caddc co cabs cfv cmin cle wbr negcl abstri sylan2 negsub
    fveq2d wceq absneg adantl oveq2d 3brtr3d ) ACDZBCDZEZABFZGHZIJZAIJZUGIJZGHZ
    ABKHZIJUJBIJZGHLUEUDUGCDUIULLMBNAUGOPUFUHUMIABQRUFUKUNUJGUEUKUNSUDBTUAUBUC
    $.

  $( Absolute value of difference of absolute values.  (Contributed by Paul
     Chapman, 7-Sep-2007.) $)
  abs2difabs $p |- ( ( A e. CC /\ B e. CC ) ->
            ( abs ` ( ( abs ` A ) - ( abs ` B ) ) ) <_ ( abs ` ( A - B ) ) ) $=
    ( cc wcel wa cabs cfv cmin co cle cneg abs2dif ancoms abscl recnd syl2an cr
    wbr wb syl2anc wceq negsubdi2 abssub 3brtr4d resubcl subcl syl absle anbi1d
    lenegcon1 bitr4d mpbir2and ) ACDZBCDZEZAFGZBFGZHIZFGABHIZFGZJRZURKZUTJRZURU
    TJRZUOUQUPHIZBAHIFGZVBUTJUNUMVEVFJRBALMUMUPCDUQCDVBVEUAUNUMUPANZOUNUQBNZOUP
    UQUBPABUCUDABLUOVAUTKURJRZVDEZVCVDEUOURQDZUTQDZVAVJSUMUPQDUQQDVKUNVGVHUPUQU
    EPZUOUSCDVLABUFUSNUGZURUTUHTUOVCVIVDUOVKVLVCVISVMVNURUTUJTUIUKUL $.

  ${
    $d x A $.
    $( For any complex number, there exists a unit-magnitude multiplier that
       produces its absolute value.  Part of proof of Theorem 13-2.12 of
       [Gleason] p. 195.  (Contributed by NM, 26-Mar-2005.) $)
    abs1m $p |- ( A e. CC ->
      E. x e. CC ( ( abs ` x ) = 1 /\ ( abs ` A ) = ( x x. A ) ) ) $=
      ( cc wcel cabs cfv c1 wceq cmul co wrex cc0 fveq2 wne adantr eqeq1d oveq1
      wa cdiv ci cv abs0 syl6eq oveq2 eqeq12d anbi2d rexbidv ccj simpl cjcld cr
      abscl recnd necon3bid biimpar divcld absdiv syl3anc absidm oveq12d dividd
      abs00 abscj 3eqtrd divassd c2 cexp sqvald absvalsq eqtr3d mulcomd 3eqtr4d
      mvllmuld eqeq2d rspcev syl12anc ax-icn absi it0e0 eqcomi pm3.2i mp2an a1i
      anbi12d pm2.61ne ) BCDZAUAZEFZGHZBEFZWGBIJZHZRZACKZWILWGLIJZHZRZACKZBLBLH
      ZWMWQACWSWLWPWIWSWJLWKWOWSWJLEFLBLEMUBUCBLWGIUDUEUFUGWFBLNZRZBUHFZWJSJZCD
      XCEFZGHZWJXCBIJZHZWNXAXBWJXABWFWTUIZUJZXAWJWFWJUKDWTBULOUMZWFWJLNZWTWFWJL
      BLBVBUNUOZUPZXAXDXBEFZWJEFZSJZWJWJSJGXAXBCDWJCDXKXDXPHXIXJXLXBWJUQURXAXNW
      JXOWJSWFXNWJHWTBVCOWFXOWJHWTBUSOUTXAWJXJXLVAVDXABXBIJZWJSJBXCIJWJXFXABXBW
      JXHXIXJXLVEXAWJWJXQXJXJXLXAWJVFVGJZWJWJIJXQXAWJXJVHWFXRXQHWTBVIOVJVMXAXCB
      XMXHVKVLWMXEXGRAXCCWGXCHZWIXEWLXGXSWHXDGWGXCEMPXSWKXFWJWGXCBIQVNWDVOVPWRW
      FTCDTEFZGHZLTLIJZHZRZWRVQYAYCVRYBLVSVTWAWQYDATCWGTHZWIYAWPYCYEWHXTGWGTEMP
      YEWOYBLWGTLIQVNWDVOWBWCWE $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Cancellation law involving the real part of a complex number.
       (Contributed by NM, 12-May-2005.) $)
    recan $p |- ( ( A e. CC /\ B e. CC ) -> ( A. x e. CC
                 ( Re ` ( x x. A ) ) = ( Re ` ( x x. B ) ) <-> A = B ) ) $=
      ( cc wcel cmul co cre cfv wceq c1 ci caddc wi oveq1 fveq2d eqeq12d oveq2d
      rspcv oveq12d wa cv wral cneg ax-1cn negicn cim replim mulid2 eqcomd imre
      ax-mp eqtrd eqeqan12d syl5ibr oveq2 ralrimivw impbid1 ) BDEZCDEZUAZAUBZBF
      GZHIZVBCFGZHIZJZADUCZBCJZVHVIVAKBFGZHIZLLUDZBFGZHIZFGZMGZKCFGZHIZLVLCFGZH
      IZFGZMGZJVHVKVRVOWAMKDEVHVKVRJZNUEVGWCAKDVBKJZVDVKVFVRWDVCVJHVBKBFOPWDVEV
      QHVBKCFOPQSULVHVNVTLFVLDEVHVNVTJZNUFVGWEAVLDVBVLJZVDVNVFVTWFVCVMHVBVLBFOP
      WFVEVSHVBVLCFOPQSULRTUSUTBVPCWBUSBBHIZLBUGIZFGZMGVPBUHUSWGVKWIVOMUSBVJHUS
      VJBBUIUJPUSWHVNLFBUKRTUMUTCCHIZLCUGIZFGZMGWBCUHUTWJVRWLWAMUTCVQHUTVQCCUIU
      JPUTWKVTLFCUKRTUMUNUOVIVGADVIVCVEHBCVBFUPPUQUR $.

    $( Mapping domain and codomain of the absolute value function.
       (Contributed by NM, 30-Aug-2007.)  (Revised by Mario Carneiro,
       7-Nov-2013.) $)
    absf $p |- abs : CC --> RR $=
      ( vx cc cr cv ccj cfv cmul co csqrt cabs df-abs wcel abscl eqeltrrd fmpti
      absval ) ABCADZQEFGHIFZJAKQBLQJFRCQPQMNO $.
  $}

  $( Lemma involving absolute value of differences.  (Contributed by NM,
     2-Oct-1999.) $)
  abs3lem $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\
                   D e. RR ) ) -> (
          ( ( abs ` ( A - C ) ) < ( D / 2 ) /\
            ( abs ` ( C - B ) ) < ( D / 2 ) ) ->
            ( abs ` ( A - B ) ) < D ) ) $=
    ( cc wcel wa cr cmin co cabs cfv c2 cdiv clt wbr caddc subcld abscl syl cle
    simplll simpllr simplrl readdcld simplrr abs3dif syl3anc lt2halvesd lelttrd
    simprl simprr ex ) AEFZBEFZGZCEFZDHFZGZGZACIJZKLZDMNJZOPZCBIJZKLZVCOPZGZABI
    JZKLZDOPUTVHGZVJVBVFQJZDVKVIEFVJHFVKABUNUOUSVHUBZUNUOUSVHUCZRVISTVKVBVFVKVA
    EFVBHFVKACVMUPUQURVHUDZRVASTZVKVEEFVFHFVKCBVOVNRVESTZUEUPUQURVHUFZVKUNUOUQV
    JVLUAPVMVNVOABCUGUHVKVBVFDVPVQVRUTVDVGUKUTVDVGULUIUJUM $.

  $( Lemma involving absolute values.  (Contributed by NM, 11-Oct-1999.)
     (Revised by Mario Carneiro, 29-May-2016.) $)
  abslem2 $p |- ( ( A e. CC /\ A =/= 0 ) ->
    ( ( ( * ` ( A / ( abs ` A ) ) ) x. A ) +
      ( ( A / ( abs ` A ) ) x. ( * ` A ) ) ) = ( 2 x. ( abs ` A ) ) ) $=
    ( cc wcel cc0 wne wa cabs cfv cdiv ccj cmul caddc cexp wceq absvalsq adantr
    co c2 cr 3eqtr3d abscl recnd sqvald eqtr3d oveq1d simpl cjcld abs00 biimpar
    necon3bid div23d divcan3d fveq2d divcld cjmuld cjcjd oveq2d oveq12d 2timesd
    eqtrd cjred eqtr4d ) ABCZADEZFZAAGHZIQZJHZAKQZVGAJHZKQZLQVFVFLQRVFKQVEVIVFV
    KVFLVEVKJHZVFJHVIVFVEVKVFJVEAVJKQZVFIQVFVFKQZVFIQVKVFVEVMVNVFIVEVFRMQZVMVNV
    CVOVMNVDAOPVEVFVEVFVCVFSCVDAUAPZUBZUCUDUEVEAVJVFVCVDUFZVEAVRUGZVQVCVFDEVDVC
    VFDADAUHUJUIZUKVEVFVFVQVQVTULTZUMVEVLVHVJJHZKQVIVEVGVJVEAVFVRVQVTUNVSUOVEWB
    AVHKVEAVRUPUQUTVEVFVPVATWAURVEVFVQUSVB $.

  $( The difference between a real number and its nearest integer is less than
     or equal to one half.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof
     shortened by Mario Carneiro, 14-Sep-2015.) $)
  rddif $p |- ( A e. RR -> ( abs ` ( ( |_ ` ( A + ( 1 / 2 ) ) ) - A ) )
                                                          <_ ( 1 / 2 ) ) $=
    ( cr wcel c1 c2 cdiv caddc cfl cfv cmin cabs cle wbr cmul halfcn a1i halfre
    co mpan2 syl 2timesi 2cn 2ne0 recidi eqtr3i oveq2i recn cc nppcan3d syl5eqr
    readdcl fllep1 eqbrtrd resubcl reflcl 1red leadd1d mpbird wa wb id absdifle
    flle syl3anc mpbir2and ) ABCZADEFRZGRZHIZAJRKIVGLMZAVGJRZVILMZVIVHLMZVFVLVK
    DGRZVIDGRZLMVFVNVHVOLVFVNVKVGVGGRZGRVHVPDVKGEVGNRVPDVGOUAEUBUCUDUEUFVFAVGVG
    AUGVGUHCVFOPZVQUIUJVFVHBCZVHVOLMVFVGBCZVRQAVGUKSZVHULTUMVFVKVIDVFVSVKBCQAVG
    UNSVFVRVIBCZVTVHUOTZVFUPUQURVFVRVMVTVHVCTVFWAVFVSVJVLVMUSUTWBVFVAVSVFQPVIAV
    GVBVDVE $.

  $( Bound on the absolute value of a real number rounded to the nearest
     integer.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by
     Mario Carneiro, 14-Sep-2015.) $)
  absrdbnd $p |- ( A e. RR -> ( abs ` ( |_ ` ( A + ( 1 / 2 ) ) ) )
                                        <_ ( ( |_ ` ( abs ` A ) ) + 1 ) ) $=
    ( cr wcel c1 co caddc cfl cfv cabs cle wbr cc halfre reflcl syl recnd abscl
    cmin a1i cz c2 cdiv readdcl mpan2 recn 1re resubcld resubcl mpancom abs2dif
    syl2anc rddif halflt1 ltleii letrd subled cn0 flcld nn0abscl nn0zd peano2zm
    wb flge mpbid lesubaddd ) ABCZADUAUBEZFEZGHZIHZDREZAIHZGHZJKZVJVMDFEJKVFVKV
    LJKZVNVFVJVLDVFVILCZVJBCVFVIVFVHBCZVIBCZVFVGBCZVQMAVGUCUDZVHNOZPZVIQOZVFALC
    ZVLBCZAUEZAQOZDBCVFUFSZVFVJVLREZVIAREZIHZDVFVJVLWCWGUGVFWJLCWKBCVFWJVRVFWJB
    CWAVIAUHUIPWJQOZWHVFVPWDWIWKJKWBWFVIAUJUKVFWKVGDWLVSVFMSWHAULVGDJKVFVGDMUFU
    MUNSUOUOUPVFWEVKTCZVOVNVBWGVFVJTCWMVFVJVFVITCVJUQCVFVHVTURVIUSOUTVJVAOVLVKV
    CUKVDVFVJDVMWCWHVFWEVMBCWGVLNOVEVD $.

  $( Lemma for ~ fzomaxdif .  (Contributed by Stefan O'Rear, 6-Sep-2015.) $)
  fzomaxdiflem $p |- ( ( ( A e. ( C ..^ D ) /\ B e. ( C ..^ D ) ) /\
        A <_ B ) -> ( abs ` ( B - A ) ) e. ( 0 ..^ ( D - C ) ) ) $=
    ( cfzo co wcel wa cle wbr cmin cabs cc0 elfzoelz adantl adantr zsubcld zred
    cz clt cfv cr wceq subge0d biimpar absid syl2anc elfzoel1 resubcld elfzoel2
    elfzole1 lesub2dd elfzolt2 ltsub1dd lelttrd elfzo syl3anc mpbir2and eqeltrd
    wb 0zd ) ACDEFZGZBVBGZHZABIJZHZBAKFZLUAZVHMDCKFZEFZVGVHUBGZMVHIJZVIVHUCVEVL
    VFVEVHVEBAVDBSGVCBCDNOZVCASGVDACDNPZQZRZPVEVMVFVEBAVEBVNRZVEAVORZUDUEZVHUFU
    GVGVHVKGZVMVHVJTJZVTVEWBVFVEVHBCKFVJVQVEBCVRVECVDCSGVCBCDUHOZRZUIVEVJVEDCVD
    DSGVCBCDUJOZWCQZRVECABWDVSVRVCCAIJVDACDUKPULVEBDCVRVEDWERWDVDBDTJVCBCDUMOUN
    UOPVEWAVMWBHUTZVFVEVHSGMSGVJSGWGVPVEVAWFVHMVJUPUQPURUS $.

  $( A bound on the separation of two points in a half-open range.
     (Contributed by Stefan O'Rear, 6-Sep-2015.) $)
  fzomaxdif $p |- ( ( A e. ( C ..^ D ) /\ B e. ( C ..^ D ) ) ->
      ( abs ` ( A - B ) ) e. ( 0 ..^ ( D - C ) ) ) $=
    ( cfzo co wcel wa cle wbr cmin cabs cc elfzoelz zcnd syl2an fzomaxdiflem cr
    cfv zred cc0 wceq abssub adantr eqeltrd ancom1s wo letric mpjaodan ) ACDEFZ
    GZBUJGZHZABIJZABKFLSZUADCKFEFZGZBAIJZUMUNHUOBAKFLSZUPUMUOUSUBZUNUKAMGBMGUTU
    LUKAACDNZOULBBCDNZOABUCPUDABCDQUEULUKURUQBACDQUFUKARGBRGUNURUGULUKAVATULBVB
    TABUHPUI $.

  ${
    $d x y A $.  $d x y B $.
    $( The upper integers are closed under intersection.  (Contributed by Mario
       Carneiro, 24-Dec-2013.) $)
    uzin2 $p |- ( ( A e. ran ZZ>= /\ B e. ran ZZ>= ) ->
                  ( A i^i B ) e. ran ZZ>= ) $=
      ( vx vy cv cuz cfv cin crn wcel cz wfn wceq wrex wb cpw wf fvelrnb eleq1d
      ax-mp uzf ffn ineq1 ineq2 wa cle wbr cif uzin ifcl ancoms sylancr eqeltrd
      fnfvelrn 2gencl ) CEZFGZDEZFGZHZFIZJAUSHZVAJABHZVAJCDUQUSABKVAFKLZAVAJUQA
      MZCKNOKKPZFQVDUAKVFFUBTZCKAFRTVDBVAJUSBMZDKNOVGDKBFRTVEUTVBVAUQAUSUCSVHVB
      VCVAUSBAUDSUPKJZURKJZUEZUTUPURUFUGZURUPUHZFGZVAUPURUIVKVDVMKJZVNVAJVGVJVI
      VOVLURUPKUJUKKVMFUNULUMUO $.
  $}

  ${
    $d j k x y z A $.  $d j x y z ph $.  $d j x y z ps $.
    $( Combine two different upper integer properties into one.  (Contributed
       by Mario Carneiro, 25-Dec-2013.) $)
    rexanuz $p |- ( E. j e. ZZ A. k e. ( ZZ>= ` j ) ( ph /\ ps ) <->
                    ( E. j e. ZZ A. k e. ( ZZ>= ` j ) ph /\
                      E. j e. ZZ A. k e. ( ZZ>= ` j ) ps ) ) $=
      ( vx vy vz wa cv cuz wral cz wrex wb uzf raleq rexrn mp2b wi wcel cfv crn
      r19.26 rexbii r19.40 sylbi cpw wf wfn ffn cin uzin2 wss inss1 ax-mp inss2
      ssralv anim12i sylibr rspcev an4s rexlimdvaa rexlimiva imp sylib syl2anbr
      syl2an impbii ) ABHZDCIJUAZKZCLMZADVJKZCLMZBDVJKZCLMZHZVLVMVOHZCLMVQVKVRC
      LABDVJUCUDVMVOCLUEUFVNADEIZKZEJUBZMZBDFIZKZFWAMZVLVPLLUGZJUHZJLUIZWBVNNOL
      WFJUJZVTVMECLJADVSVJPQRWGWHWEVPNOWIWDVOFCLJBDWCVJPQRWBWEHVIDGIZKZGWAMZVLW
      BWEWLVTWEWLSEWAVSWATZVTHWDWLFWAWMWCWATZVTWDWLWMWNHVSWCUKZWATVIDWOKZWLVTWD
      HZVSWCULWQADWOKZBDWOKZHWPVTWRWDWSWOVSUMVTWRSVSWCUNADWOVSUQUOWOWCUMWDWSSVS
      WCUPBDWOWCUQUOURABDWOUCUSWKWPGWOWAVIDWJWOPUTVGVAVBVCVDWGWHWLVLNOWIWKVKGCL
      JVIDWJVJPQRVEVFVH $.

    $( Combine two different upper real properties into one.  (Contributed by
       Mario Carneiro, 8-May-2016.) $)
    rexanre $p |- ( A C_ RR ->
                    ( E. j e. RR A. k e. A ( j <_ k -> ( ph /\ ps ) ) <->
                      ( E. j e. RR A. k e. A ( j <_ k -> ph ) /\
                        E. j e. RR A. k e. A ( j <_ k -> ps ) ) ) ) $=
      ( vx vy cr cv cle wbr wa wi wral wrex wceq breq1 imbi1d ralbidv wcel ifcl
      wss simpl imim2i ralimi reximi simpr cbvrexv anbi12i reeanv bitr4i ancoms
      jca adantl r19.26 prth wb simplrl simplrr sselda syl3anc syl5ibr ralimdva
      cif maxle syl5bir rspcev syl6an rexlimdvva syl5bi impbid2 ) CHUBZDIZEIZJK
      ZABLZMZECNZDHOZVOAMZECNZDHOZVOBMZECNZDHOZLZVSWBWEVRWADHVQVTECVPAVOABUCUDU
      EUFVRWDDHVQWCECVPBVOABUGUDUEUFUMWFFIZVNJKZAMZECNZGIZVNJKZBMZECNZLZGHOFHOZ
      VLVSWFWJFHOZWNGHOZLWPWBWQWEWRWAWJDFHVMWGPZVTWIECWSVOWHAVMWGVNJQRSUHWDWNDG
      HVMWKPZWCWMECWTVOWLBVMWKVNJQRSUHUIWJWNFGHHUJUKVLWOVSFGHHVLWGHTZWKHTZLZLZW
      GWKJKZWKWGVDZHTZWOXFVNJKZVPMZECNZVSXCXGVLXBXAXGXEWKWGHUAULUNWOWIWMLZECNXD
      XJWIWMECUOXDXKXIECXKXIXDVNCTZLZWHWLLZVPMWHAWLBUPXMXHXNVPXMXAXBVNHTXHXNUQV
      LXAXBXLURVLXAXBXLUSXDCHVNVLXCUCUTWGWKVNVEVARVBVCVFVRXJDXFHVMXFPZVQXIECXOV
      OXHVPVMXFVNJQRSVGVHVIVJVK $.
  $}

  ${
    $d j k n x y z A $.  $d j x y z ph $.
    $( Combine finitely many different upper integer properties into one.
       (Contributed by Mario Carneiro, 6-Jun-2014.) $)
    rexfiuz $p |- ( A e. Fin ->
                    ( E. j e. ZZ A. k e. ( ZZ>= ` j ) A. n e. A ph <->
                      A. n e. A E. j e. ZZ A. k e. ( ZZ>= ` j ) ph ) ) $=
      ( vx vy vz cv wral cz wrex wb c0 wceq raleq rexralbidv bibi12d wa cvv cuz
      cfv csn cun weq wne cc0 0z ne0ii ral0 rgen2w r19.2z mp2an 2th wi cfn wcel
      anbi1 rexanuz ralunb ralbii rexbii vex wsbc ralsnsg ralcom syl5bb rexbidv
      sbcrex syl6rbbr bitrd ax-mp anbi2i 3bitr4i 3bitr4g a1i findcard2 ) AEFIZJ
      ZDCIUAUBZJCKLZADVTJZCKLZEVRJZMAENJZDVTJZCKLZWCENJZMAEGIZJZDVTJCKLZWCEWIJZ
      MZAEWIHIZUCZUDZJZDVTJZCKLZWCEWPJZMZAEBJZDVTJCKLZWCEBJZMFGHBVRNOZWAWGWDWHX
      EVSWECDKVTAEVRNPQWCEVRNPRFGUEZWAWKWDWLXFVSWJCDKVTAEVRWIPQWCEVRWIPRVRWPOZW
      AWSWDWTXGVSWQCDKVTAEVRWPPQWCEVRWPPRVRBOZWAXCWDXDXHVSXBCDKVTAEVRBPQWCEVRBP
      RWGWHKNUFWFCKJWGUGKUHUIWECDKVTAEUJUKWFCKULUMWCEUJUNWMXAUOWIUPUQWMWKWCEWOJ
      ZSZWLXISWSWTWKWLXIURWJAEWOJZSZDVTJZCKLWKXKDVTJZCKLZSWSXJWJXKCDUSWRXMCKWQX
      LDVTAEWIWOUTVAVBXIXOWKWNTUQZXIXOMHVCXPXIWCEWNVDZXOWCEWNTVEXPXOWBEWNVDZCKL
      XQXPXNXRCKXNWBEWOJXPXRADEVTWOVFWBEWNTVEVGVHWBECWNKVIVJVKVLVMVNWCEWIWOUTVO
      VPVQ $.
  $}

  ${
    $d j m M $.  $d j m ph $.  $d j k m Z $.
    rexuz3.1 $e |- Z = ( ZZ>= ` M ) $.
    $( Restrict the base of the upper integers set to another upper integers
       set.  (Contributed by Mario Carneiro, 26-Dec-2013.) $)
    rexuz3 $p |- ( M e. ZZ -> ( E. j e. Z A. k e. ( ZZ>= ` j ) ph <->
                                E. j e. ZZ A. k e. ( ZZ>= ` j ) ph ) ) $=
      ( cz wcel cv cuz cfv wral wrex wa id rgen wceq fveq2 syl6eqr ralimi mpan2
      raleqdv rspcev biantrurd uztrn2 ancrd ralimdva eluzelz eleq2s jctild uzid
      a1d imp simpl eleq1 rspcva syl2an simpr adantl jca impbii rexbii2 rexanuz
      bitr2i syl6rbb ) DGHZACBIZJKZLZBGMZCIZEHZCVHLZBGMZVJNZVIBEMZVFVNVJVFVLCEL
      ZVNVLCEVLOPVMVQBDGVGDQZVLCVHEVRVHDJKZEVGDJRFSUBUCUAUDVPVLANZCVHLZBGMVOVIW
      ABEGVGEHZVINVGGHZWANZWBVIWDWBVIWAWCWBAVTCVHWBVKVHHNZAVLWEVLADVKVGEFUEULUF
      UGWCVGVSEDVGUHFUIUJUMWDWBVIWCVGVHHVMWBWAVGUKVTVLCVHVLAUNTVLWBCVGVHVKVGEUO
      UPUQWAVIWCVTACVHVLAURTUSUTVAVBVLABCVCVDVE $.

    ${
      $d j ps $.
      $( Combine two different upper integer properties into one.  (Contributed
         by Mario Carneiro, 26-Dec-2013.) $)
      rexanuz2 $p |- ( E. j e. Z A. k e. ( ZZ>= ` j ) ( ph /\ ps ) <->
                       ( E. j e. Z A. k e. ( ZZ>= ` j ) ph /\
                         E. j e. Z A. k e. ( ZZ>= ` j ) ps ) ) $=
        ( wa cv cuz cfv wral wrex cz wcel eluzel2 eleq2s a1d rexlimiv rexuz3
        adantr anbi12d rexanuz syl6rbbr bitrd pm5.21nii ) ABHZDCIZJKZLZCFMZENOZ
        ADUILZCFMZBDUILZCFMZHZUJULCFUHFOZULUJULUHEJKFEUHPGQZRSUNULUPUMULCFURULU
        MUSRSUAULUKUJCNMZUQUGCDEFGTULUQUMCNMZUOCNMZHUTULUNVAUPVBACDEFGTBCDEFGTU
        BABCDUCUDUEUF $.
    $}

    $( A version of ~ 19.29 for upper integer quantifiers.  (Contributed by
       Mario Carneiro, 10-Feb-2014.) $)
    r19.29uz $p |- ( ( A. k e. Z ph /\ E. j e. Z A. k e. ( ZZ>= ` j ) ps ) ->
                     E. j e. Z A. k e. ( ZZ>= ` j ) ( ph /\ ps ) ) $=
      ( wral cv cuz cfv wrex wa wcel wi uztrn2 ex pm3.2 a1i imim12d impcom syl
      ralimdv2 ralim reximdva imp ) ADFHZBDCIZJKZHZCFLABMZDUIHZCFLUGUJULCFUGUHF
      NZMBUKOZDUIHZUJULOUMUGUOUMAUNDFUIUMDIZUINZUPFNZAUNUMUQUREUPUHFGPQAUNOUMAB
      RSTUCUABUKDUIUDUBUEUF $.

    $( A version of ~ r19.2z for upper integer quantifiers.  (Contributed by
       Mario Carneiro, 15-Feb-2014.) $)
    r19.2uz $p |- ( E. j e. Z A. k e. ( ZZ>= ` j ) ph -> E. k e. Z ph ) $=
      ( cv cuz cfv wral wrex wcel c0 wne cz eluzelz uzid ne0i 3syl eleq2s sylan
      r19.2z uztrn2 ex anim1d reximdv2 imp syldan rexlimiva ) ACBGZHIZJZACEKZBE
      UJELZULACUKKZUMUNUKMNZULUOUPUJDHIZEUJUQLUJOLUJUKLUPDUJPUJQUKUJRSFTACUKUBU
      AUNUOUMUNAACUKEUNCGZUKLZURELZAUNUSUTDURUJEFUCUDUEUFUGUHUI $.

    $d k M $.
    $( Convert an upper real quantifier to an upper integer quantifier.
       (Contributed by Mario Carneiro, 7-May-2016.) $)
    rexuzre $p |- ( M e. ZZ -> ( E. j e. Z A. k e. ( ZZ>= ` j ) ph <->
        E. j e. RR A. k e. Z ( j <_ k -> ph ) ) ) $=
      ( vm cz wcel cv cuz cfv wral wrex cle wbr wi cr wa adantl eluzelre eleq2s
      adantr wb eluzelz eluz syl2an biimprd expimpd imim1d ralimdv2 imp reximi2
      exp4a jca cfl c1 caddc co cif simpl flcl peano2zd zre reflcl peano2re syl
      ifcld max1 eluz2 syl3anbrc syl6eleqr impexp syl6sseqr sselda simplr simpr
      wss uzss zred fllep1 max2 letrd eluzle syl5bir wceq raleqdv rspcev syl6an
      ex fveq2 rexlimdva cbvrexv syl6ib impbid2 ) DHIZACBJZKLZMZBENZWQCJZOPZAQZ
      CEMZBRNZWSXDBERWQEIZWSSWQRIZXDXFXGWSXGWQDKLZEDWQUAFUBUCXFWSXDXFAXCCWREXFX
      AWRIZAQXAEIZXBAXFXJXBSZXIAXFXJXBXIXFXJSXIXBXFWQHIZXAHIZXIXBUDXJXLWQXHEDWQ
      UEFUBXMXAXHEDXAUEFUBWQXAUFUGUHUIUJUNUKULUOUMWPXEACGJZKLZMZGENZWTWPXDXQBRW
      PXGSZDWQUPLZUQURUSZOPZXTDUTZEIXDACYBKLZMZXQXRYBXHEXRWPYBHIZDYBOPZYBXHIZWP
      XGVAZXRYAXTDHXRXSXGXSHIWPWQVBTVCYHVHZWPDRIZXTRIZYFXGDVDZXGXSRIYKWQVEXSVFV
      GZDXTVIUGDYBVJVKZFVLXRXCACEYCXJXCQXKAQXRXAYCIZAQXJXBAVMXRYOXKAXRYOXKXRYOS
      ZXJXBXRYCEXAXRYCXHEXRYGYCXHVRYNDYBVSVGFVNVOYPWQYBXAWPXGYOVPYPYBXRYEYOYIUC
      VTYOXARIXRYBXAUATXRWQYBOPYOXRWQXTYBWPXGVQXGYKWPYMTXRYBYIVTXGWQXTOPWPWQWAT
      WPYJYKXTYBOPXGYLYMDXTWBUGWCUCYOYBXAOPXRYBXAWDTWCUOWJUJWEUKXPYDGYBEXNYBWFA
      CXOYCXNYBKWKWGWHWIWLXPWSGBEXNWQWFACXOWRXNWQKWKWGWMWNWO $.
  $}

  ${
    $d j k n A $.  $d j k n B $.  $d j n ph $.
    $( Restrict the base of an upper real quantifier to an upper real set.
       (Contributed by Mario Carneiro, 12-May-2016.) $)
    rexico $p |- ( ( A C_ RR /\ B e. RR ) ->
      ( E. j e. ( B [,) +oo ) A. k e. A ( j <_ k -> ph ) <->
        E. j e. RR A. k e. A ( j <_ k -> ph ) ) ) $=
      ( vn cr wss wcel wa cv cle wbr wi wral cpnf wrex simpr simplr wb cico cxr
      pnfxr icossre sylancl ssrexv syl cif ifcld max1 adantll elicopnf ad2antlr
      mpbir2and adantr simpll sselda maxle syl3anc syl6bi imim1d ralimdva breq1
      co wceq imbi1d ralbidv rspcev syl6an rexlimdva cbvrexv syl6ib impbid ) BG
      HZCGIZJZDKZEKZLMZANZEBOZDCPUAVDZQZWADGQZVPWBGHZWCWDNVPVOPUBIWEVNVORUCCPUD
      UEWADWBGUFUGVPWDFKZVRLMZANZEBOZFWBQZWCVPWAWJDGVPVQGIZJZCVQLMZVQCUHZWBIZWA
      WNVRLMZANZEBOZWJWLWOWNGIZCWNLMZWLWMVQCGVPWKRVNVOWKSZUIVOWKWTVNCVQUJUKVOWO
      WSWTJTVNWKCWNULUMUNWLVTWQEBWLVRBIZJZWPVSAXCWPCVRLMZVSJZVSXCVOWKVRGIWPXETW
      LVOXBXAUOVPWKXBSWLBGVRVNVOWKUPUQCVQVRURUSXDVSRUTVAVBWIWRFWNWBWFWNVEZWHWQE
      BXFWGWPAWFWNVRLVCVFVGVHVIVJWIWAFDWBWFVQVEZWHVTEBXGWGVSAWFVQVRLVCVFVGVKVLV
      M $.
  $}

  ${
    $d j z $.  $d k m ch $.  $d k m x z D $.  $d k m x z F $.  $d j k m x ph $.
    $d k m x z G $.  $d m x z ps $.  $d x z ta $.  $d k th $.  $d x z Z $.
    cau3lem.1 $e |- Z C_ ZZ $.
    cau3lem.2 $e |- ( ta -> ps ) $.
    cau3lem.3 $e |- ( ( F ` k ) = ( F ` j ) -> ( ps <-> ch ) ) $.
    cau3lem.4 $e |- ( ( F ` k ) = ( F ` m ) -> ( ps <-> th ) ) $.
    cau3lem.5 $e |- ( ( ph /\ ch /\ ps ) ->
     ( G ` ( ( F ` j ) D ( F ` k ) ) ) = ( G ` ( ( F ` k ) D ( F ` j ) ) ) ) $.
    cau3lem.6 $e |- ( ( ph /\ th /\ ch ) ->
     ( G ` ( ( F ` m ) D ( F ` j ) ) ) = ( G ` ( ( F ` j ) D ( F ` m ) ) ) ) $.
    cau3lem.7 $e |- ( ( ph /\ ( ps /\ th ) /\ ( ch /\ x e. RR ) ) ->
                      ( ( ( G ` ( ( F ` k ) D ( F ` j ) ) ) < ( x / 2 ) /\
                          ( G ` ( ( F ` j ) D ( F ` m ) ) ) < ( x / 2 ) ) ->
                          ( G ` ( ( F ` k ) D ( F ` m ) ) ) < x ) ) $.
    $( Lemma for ~ cau3 .  (Contributed by Mario Carneiro, 15-Feb-2014.)
       (Revised by Mario Carneiro, 1-May-2014.) $)
    cau3lem $p |- ( ph -> ( A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j ) ( ta /\
                            ( G ` ( ( F ` k ) D ( F ` j ) ) ) < x ) <->
          A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j ) ( ta /\
            A. m e. ( ZZ>= ` k ) ( G ` ( ( F ` k ) D ( F ` m ) ) ) < x ) ) ) $=
      ( vz cv cfv co clt wbr wa cuz wral wrex crp weq anbi2d rexralbidv cbvralv
      breq2 wcel c2 cdiv wi rphalfcl wceq rspcv syl adantl ralimi r19.26 oveq1d
      wb fveq2 fveq2d breq1d anbi12d biimpi a1i syl5bir expdimp cz sseli rspcva
      uzid sylan adantll simplll simplrr simplrl syl3anc cr simpr simpllr rpred
      jctild syl122anc sylbid expd impr an32s anassrs expimpd ralimdv expr uzss
      wss ssralv sylan9 ralimdva ex com23 adantr mpdd sylan2 imdistanda 3imtr4g
      reximdva syld ralrimdva syl5bi raleqbidv ad2antlr oveq2d anim2i w3a ralbi
      3expia sylc syl5bb sylibd impbid ) AEIUBZKUCZHUBZKUCZGUDZLUCZFUBZUEUFZUGZ
      IYKUHUCZUIZHMUJZFUKUIZEYJJUBZKUCZGUDZLUCZYOUEUFZJYIUHUCZUIZUGIYRUIZHMUJZF
      UKUIZUUAEYNUAUBZUEUFZUGZIYRUIHMUJZUAUKUIZAUUKYTUUOFUAUKFUAULZYQUUNHIMYRUU
      QYPUUMEYOUULYNUEUPUMUNUOAUUPUUJFUKAYOUKUQZUGZUUPEYNYOURUSUDZUEUFZUGZIYRUI
      ZHMUJZUUJUURUUPUVDUTZAUURUUTUKUQUVEYOVAUUOUVDUAUUTUKUULUUTVBZUUNUVBHIMYRU
      VFUUMUVAEUULUUTYNUEUPUMUNVCVDVEUUSUVCUUIHMUUSYKMUQZUGZEIYRUIZUVAIYRUIZUGU
      VIUUHIYRUIZUGZUVCUUIUVHUVIUVJUVKUVIUVHBIYRUIZUVJUVKUTEBIYROVFZUVHUVMUGZUV
      JCDUUCYLGUDZLUCZUUTUEUFZUGZJYRUIZUGZUVKUVOUVJUVTCUVHUVMUVJUVTUVMUVJUGZBUV
      AUGZIYRUIZUVHUVTBUVAIYRVGZUWDUVTUTUVHUWDUVTUWCUVSIJYRIJULZBDUVAUVRUWFYJUU
      CVBBDVIYIUUBKVJZQVDUWFYNUVQUUTUEUWFYMUVPLUWFYJUUCYLGUWGVHVKVLVMUOVNVOVPVQ
      UVGUVMCUUSUVGYKYRUQZUVMCUVGYKVRUQUWHMVRYKNVSYKWAVDZBCIYKYRIHULZYJYLVBBCVI
      YIYKKVJZPVDVTZWBWCWLUVHUVMUVJUWAUVKUTZUWBUWDUVHUWMUWEUUSUWDUWMUTUVGUUSUWA
      UWDUVKUUSUWAUWDUVKUTUUSUWAUGZUWCUUHIYRUWNYIYRUQZUGBUVAUUHUWNBUWOUVAUUHUTU
      WNBUGUVAUUFJYRUIZUWOUUHUWNBUVAUWPUUSUWCUWAUWPUUSUWCUGZCUVTUWPUWQCUGZUVSUU
      FJYRUWRDUVRUUFUWQCDUVRUUFUTZUUSCDUGZUWCUWSUUSUWTUGZBUVAUWSUXABUGZUVAUVRUU
      FUXBUVAUVRUGUVAYLUUCGUDZLUCZUUTUEUFZUGZUUFUXBUVRUXEUVAUXBUVQUXDUUTUEUXBAD
      CUVQUXDVBAUURUWTBWDZUUSCDBWEZUUSCDBWFZSWGVLUMUXBABDCYOWHUQUXFUUFUTUXGUXAB
      WIUXHUXIUXBYOAUURUWTBWJWKTWMWNWOWPWQWRWSWTWPWQXAUWOUUGYRXCUWPUUHUTYKYIXBU
      UFJUUGYRXDVDXEWQWSXFXGXHXIVPVQXJXKXLEUVAIYRVGEUUHIYRVGZXMXNXOXPXQAUUJYTFU
      KAUUIYSHMAUVGUGUVLUVIYPIYRUIZUGZUUIYSUVGAUWHUVLUXLUTUWIAUWHUGZUVIUVKUXKUV
      IUXMUVMUVKUXKUTUVNUXMUVMUGZUVKUXDYOUEUFZJYRUIZUXKUWHUVKUXPUTAUVMUUHUXPIYK
      YRUWJUUFUXOJUUGYRYIYKUHVJUWJUUEUXDYOUEUWJUUDUXCLUWJYJYLUUCGUWKVHVKVLXRVCX
      SUXPYLYJGUDZLUCZYOUEUFZIYRUIZUXNUXKUXOUXSJIYRJIULZUXDUXRYOUEUYAUXCUXQLUYA
      UUCYJYLGUUBYIKVJXTVKVLUOUXNUXSYPVIZIYRUIZUXTUXKVIUXNACUGZUVMUYCAUWHUVMUYD
      UWHUVMUGCAUWLYAWRUXMUVMWIUYDBUYBIYRACBUYBACBYBUXRYNYOUERVLYDWTYEUXSYPIYRY
      CVDYFYGXKXLXKUXJEYPIYRVGXMXNWTYH $.
  $}

  ${
    $d j k m w x y z F $.  $d j k w x M $.  $d j k x N $.  $d j k w x y z Z $.
    $d j k x W $.
    cau3.1 $e |- Z = ( ZZ>= ` M ) $.
    $( Convert between three-quantifier and four-quantifier versions of the
       Cauchy criterion.  (In particular, the four-quantifier version has no
       occurrence of ` j ` in the assertion, so it can be used with ~ rexanuz
       and friends.)  (Contributed by Mario Carneiro, 15-Feb-2014.) $)
    cau3 $p |- ( A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j )
            ( ( F ` k ) e. CC /\ ( abs ` ( ( F ` k ) - ( F ` j ) ) ) < x ) <->
               A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j ) ( ( F ` k ) e. CC /\
            A. m e. ( ZZ>= ` k ) ( abs ` ( ( F ` k ) - ( F ` m ) ) ) < x ) ) $=
      ( cv cfv cc wcel cmin co cabs clt wbr wa wral wtru cuz wrex wb cz eqsstri
      crp uzssz id eleq1 wceq abssub 3adant1 cr c2 cdiv wi abs3lem cau3lem trud
      ) CIZEJZKLZVABIZEJZMNOJZAIZPQRCVCUAJZSBGUBAUFSVBVADIEJZMNOJVFPQZDUTUAJSRC
      VGSBGUBAUFSUCTVBVDKLZVHKLZVBAMBCDEOGGFUAJUDHFUGUEVBUHVAVDKUIVAVHKUIVJVBVD
      VAMNOJVEUJTVDVAUKULVKVJVHVDMNOJVDVHMNOJZUJTVHVDUKULVBVKRVJVFUMLRVEVFUNUON
      ZPQVLVMPQRVIUPTVAVHVDVFUQULURUS $.

    ${
      cau4.2 $e |- W = ( ZZ>= ` N ) $.
      $( Change the base of a Cauchy criterion.  (Contributed by Mario
         Carneiro, 18-Mar-2014.) $)
      cau4 $p |- ( N e. Z -> ( A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j )
          ( ( F ` k ) e. CC /\ ( abs ` ( ( F ` k ) - ( F ` j ) ) ) < x )
        <-> A. x e. RR+ E. j e. W A. k e. ( ZZ>= ` j )
          ( ( F ` k ) e. CC /\ ( abs ` ( ( F ` k ) - ( F ` j ) ) ) < x ) ) ) $=
        ( vy wcel cv cfv cuz wral wrex crp wb cz cc cmin co cabs clt wa eluzel2
        wbr rexuz3 syl eluzelz bitr4d eleq2s ralbidv cau3 3bitr4g ) FHLZCMZDNZU
        ALZUSKMDNUBUCUDNAMZUEUHKURONPUFZCBMZONZPZBHQZARPVEBGQZARPUTUSVCDNUBUCUD
        NVAUEUHUFCVDPZBHQARPVHBGQARPUQVFVGARVFVGSFEONZHFVILZVFVEBTQZVGVJETLVFVK
        SEFUGVBBCEHIUIUJVJFTLVGVKSEFUKVBBCFGJUIUJULIUMUNABCKDEHIUOABCKDFGJUOUP
        $.
    $}

    $( A Cauchy sequence of complex numbers is eventually bounded.
       (Contributed by Mario Carneiro, 14-Feb-2014.) $)
    caubnd2 $p |- ( A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j )
            ( ( F ` k ) e. CC /\ ( abs ` ( ( F ` k ) - ( F ` j ) ) ) < x ) ->
         E. y e. RR E. j e. Z A. k e. ( ZZ>= ` j ) ( abs ` ( F ` k ) ) < y ) $=
      ( cv cfv cc wcel clt wbr wa wral wrex c1 cr syl cmin co cabs cuz crp wceq
      wi breq2 anbi2d rexralbidv rspcv ax-mp caddc cz eluzelz eleq2s uzid simpl
      1rp ralimi fveq2 eleq1d rspcva syl2an abscl 1re readdcl sylancl cle simpr
      simplr abs2dif syl2anc resubcld subcld lelttr mp3an3 wb ltsubadd2 expimpd
      mpand sylibd ralimdv impancom mpd ralbidv rspcev ex reximia rexcom sylib
      ) DIZEJZKLZWMCIZEJZUAUBZUCJZAIZMNZOZDWOUDJZPCGQZAUEPZWNWRRMNZOZDXBPZCGQZW
      MUCJZBIZMNZDXBPZCGQBSQZRUELXDXHUGUSXCXHARUEWSRUFZXAXFCDGXBXNWTXEWNWSRWRMU
      HUIUJUKULXHXLBSQZCGQXMXGXOCGWOGLZXGXOXPXGOZWPUCJZRUMUBZSLZXIXSMNZDXBPZXOX
      QXRSLZRSLZXTXQWPKLZYCXPWOXBLZWNDXBPYEXGXPWOUNLZYFYGWOFUDJGFWOUOHUPWOUQTXF
      WNDXBWNXEURUTWNYEDWOXBWLWOUFWMWPKWLWOEVAVBVCVDZWPVEZTVFXRRVGVHXQYEYBYHXPY
      EXGYBXPYEOZXFYADXBYJWNXEYAYJWNOZXEXIXRUAUBZRMNZYAYKYLWRVINZXEYMYKWNYEYNYJ
      WNVJZXPYEWNVKZWMWPVLVMYKYLSLZWRSLZYNXEOYMUGZYKXIXRYKWNXISLZYOWMVETZYKYEYC
      YPYITZVNYKWQKLYRYKWMWPYOYPVOWQVETYQYRYDYSVFYLWRRVPVQVMWAYKYTYCYMYAVRZUUAU
      UBYTYCYDUUCVFXIXRRVSVQVMWBVTWCWDWEXLYBBXSSXJXSUFXKYADXBXJXSXIMUHWFWGVMWHW
      IXLCBGSWJWKT $.

    $( A Cauchy sequence of complex numbers is bounded.  (Contributed by NM,
       4-Apr-2005.)  (Revised by Mario Carneiro, 14-Feb-2014.) $)
    caubnd $p |- ( ( A. k e. Z ( F ` k ) e. CC /\ A. x e. RR+ E. j e. Z
              A. k e. ( ZZ>= ` j ) ( abs ` ( ( F ` k ) - ( F ` j ) ) ) < x ) ->
                   E. y e. RR A. k e. Z ( abs ` ( F ` k ) ) < y ) $=
      ( vz cv cfv wcel wral clt wbr wrex cr wa wi cz vw cc cmin co cabs cuz crp
      abscl ralimi r19.29uz ralimdv caubnd2 syl6 cfz wss fzssuz sseqtr4i ssralv
      ex ax-mp cle cfn fzfi fimaxre3 mpan c1 caddc peano2re adantl ltp1 mpd3an3
      lelttr mpan2d expcom impcom ralim syl wceq breq2 ralbidv rspcev rexlimdva
      syl6an mpd wo cif w3a max1 3adant3 simp3 simp1 ifcl ancoms ltletr syl3anc
      max2 simp2 jaod 3expia syl6d wal uzssz eqsstri sseli uztric syl2anr simpr
      wb syl6eleq elfzuzb baib orbi1d mpbird pm3.48 alimdv df-ral anbi12i 19.26
      bitr4i 3imtr4g 3impib imim1i 3expd com23 expimpd com3r rexlimdv rexlimdvv
      syl9 com34 sylsyld imp ) DJZEKZUBLZDGMZYNCJZEKUCUDUEKAJZNOZDYQUFKZMCGPZAU
      GMZYNUEKZBJZNOZDGMZBQPZYPUUCQLZDGMZUUBUUCIJZNOZDYTMZCGPIQPZUUGYOUUHDGYNUH
      UIYPUUBYOYSRDYTMCGPZAUGMUUMYPUUAUUNAUGYPUUAUUNYOYSCDFGHUJUSUKAICDEFGHULUM
      UUIUULUUGICQGUUIUUCUAJZNOZDFYQUNUDZMZUAQPZUUJQLZYQGLZRZUULUUGSZSZUUIUUHDU
      UQMZUUSUUQGUOUUIUVESUUQFUFKZGFYQUPHUQUUHDUUQGURUTUVEUUCYRVAOZDUUQMZAQPZUU
      SUUQVBLUVEUVIFYQVCADUUQUUCVDVEUVEUVHUUSAQUVEYRQLZRZYRVFVGUDZQLZUVHUUCUVLN
      OZDUUQMZUUSUVJUVMUVEYRVHZVIUVKUVGUVNSZDUUQMZUVHUVOSUVJUVEUVRUVJUUHUVQDUUQ
      UUHUVJUVQUUHUVJRUVGYRUVLNOZUVNUVJUVSUUHYRVJVIUUHUVJUVMUVGUVSRUVNSUVJUVMUU
      HUVPVIUUCYRUVLVLVKVMVNUKVOUVGUVNDUUQVPVQUURUVOUAUVLQUUOUVLVRUUPUVNDUUQUUO
      UVLUUCNVSVTWAWCWBWDVQUUIUURUVDUAQUUIUUOQLZUVBUURUVCUVTUVBUUIUURUVCSZUVTUU
      TUVAUUIUWASUVTUUTRZUUIUVAUWAUWBUUIUUPUUKWEZDGMZUUGSZUVAUWASUWBUUIUWDUUCUU
      OUUJVAOZUUJUUOWFZNOZDGMZUUGUWBUUIUWCUWHSZDGMUWDUWISUWBUUHUWJDGUVTUUTUUHUW
      JUVTUUTUUHWGZUUPUWHUUKUWKUUPUUOUWGVAOZUWHUVTUUTUWLUUHUUOUUJWHWIUWKUUHUVTU
      WGQLZUUPUWLRUWHSUVTUUTUUHWJZUVTUUTUUHWKUVTUUTUWMUUHUUTUVTUWMUWFUUJUUOQWLW
      MZWIZUUCUUOUWGWNWOVMUWKUUKUUJUWGVAOZUWHUVTUUTUWQUUHUUOUUJWPWIUWKUUHUUTUWM
      UUKUWQRUWHSUWNUVTUUTUUHWQUWPUUCUUJUWGWNWOVMWRWSUKUWCUWHDGVPUMUWBUWMUWIUUG
      SUWOUWMUWIUUGUUFUWIBUWGQUUDUWGVRUUEUWHDGUUDUWGUUCNVSVTWAUSVQWTUWEUVAUURUU
      LUUGUVAUURUULWGUWDUUGUVAUURUULUWDUVAYMUUQLZUUPSZYMYTLZUUKSZRZDXAZYMGLZUWC
      SZDXAUURUULRZUWDUVAUXBUXEDUVAUXDUWRUWTWEZUXBUWCUVAUXDUXGUVAUXDRZUXGYQYMUF
      KLZUWTWEZUXDYMTLYQTLUXJUVAGTYMGUVFTHFXBXCZXDGTYQUXKXDYMYQXEXFUXHUWRUXIUWT
      UXHYMUVFLZUWRUXIXHUXHYMGUVFUVAUXDXGHXIUWRUXLUXIYMFYQXJXKVQXLXMUSUWRUUPUWT
      UUKXNYIXOUXFUWSDXAZUXADXAZRUXCUURUXMUULUXNUUPDUUQXPUUKDYTXPXQUWSUXADXRXSU
      WCDGXPXTYAYBYCUMYDYEYFYJYGWDYHYKYL $.
  $}

  ${
    sqrteulem.1 $e |- B = ( ( sqrt ` ( abs ` A ) ) x.
      ( ( ( abs ` A ) + A ) / ( abs ` ( ( abs ` A ) + A ) ) ) ) $.
    $( Lemma for ~ sqreu : write a general complex square root in terms of the
       square root function over nonnegative reals.  (Contributed by Mario
       Carneiro, 9-Jul-2013.) $)
    sqreulem $p |- ( ( A e. CC /\ ( ( abs ` A ) + A ) =/= 0 ) ->
      ( ( B ^ 2 ) = A /\ 0 <_ ( Re ` B ) /\ ( _i x. B ) e/ RR+ ) ) $=
      ( cc wcel cfv caddc co cc0 cexp wceq cle wbr cmul cdiv ccj adantr mpancom
      c2 cr cabs wne wa cre crp wnel csqrt oveq1i abscl absge0 resqrtcl syl2anc
      ci recnd addcl syl abs00ad necon3bid divcld sqmuld syl5eq resqrtth sqdivd
      biimpar absvalsq 2cn mulass mp3an1 mulcl sylancr mulcom eqtr3d cjcl adddi
      oveq12d mpd3an23 eqtr4d sqval binom2 addcld adddid 3eqtr4d mulcld addcomd
      id 2timesd mul12 sqvald mpdan 3eqtr3d oveq2d 3eqtr3rd cjadd cjred muladdd
      oveq1d eqtrd addassd mul12d wb sqeq0 eqeq1d 3bitr3rd biimpa divassd simpl
      divcan4d 3eqtrd addcjd 2re remulcl eqeltrd redivcld remulcld sqrtge0 cneg
      recld cmin negcl releabs subge0d mpbird readd absneg negneg fveq2d renegd
      clt rered negsubd breqtrrd 0le2 mulge0 mpanl12 ne0gt0d divge0 syl22anc wn
      eleq1d syl5ib mulge0d mpanr12 syl5eqel reval fveq2i cjmuld cjdivd 3eqtr4a
      2pos cjcld divdird subneg subeq0ad bitr3d resqcl c1 ax-icn sqmul i2 mulm1
      a1i renegcl sylsyld sqge0 breq2d biimprcd syl6c jcad absnid syl6 necon3ad
      le0neg1 mpd rpre nsyl df-nel sylibr 3jca ) ADEZAUAFZAGHZIUBZUCZBSJHZAKIBU
      DFZLMUMBNHZUEUFZUWCUWDUVTUGFZSJHZUWAUWAUAFZOHZSJHZNHZUVTAAPFZSUVTNHZGHZAG
      HZNHZUVTUWQNHZOHZNHZAUWCUWDUWHUWKNHZSJHUWMBUXBSJCUHUWCUWHUWKUVSUWHDEUWBUV
      SUWHUVSUVTTEZIUVTLMZUWHTEZAUIZAUJZUVTUKULZUNQZUWCUWAUWJUVSUWADEZUWBUVTDEZ
      UVSUXJUVSUVTUXFUNZUVTAUORZQZUVSUWJDEZUWBUVSUWJUVSUXJUWJTEZUXMUWAUIUPZUNZQ
      ZUVSUWJIUBUWBUVSUWJIUWAIUVSUWAUXMUQZURVDZUSZUTVAUWCUWIUVTUWLUWTNUWCUXCUXD
      UWIUVTKUVSUXCUWBUXFQUVSUXDUWBUXGQUVTVBULUWCUWLUWASJHZUWJSJHZOHZUWTUWCUWAU
      WJUXNUXSUYAVCUVSUYEUWTKUWBUVSUYCUWRUYDUWSOUVSUVTSJHZSUVTANHZNHZGHZASJHZGH
      ZAUWPNHZAANHZGHUYCUWRUVSUYIUYLUYJUYMGUVSUYIAUWNNHZAUWONHZGHZUYLUVSUYFUYNU
      YHUYOGAVEZUVSUWOANHZUYHUYOUXKUVSUYRUYHKZUXLSDEZUXKUVSUYSVFSUVTAVGVHRUWODE
      ZUVSUYRUYOKUVSUYTUXKVUAVFUXLSUVTVIVJZUWOAVKRVLVOUVSUWNDEZVUAUYLUYPKAVMZVU
      BAUWNUWOVNVPVQAVRVOUXKUVSUYCUYKKUXLUVTAVSRUVSAUWPAUVSWEZUVSUWNUWOVUDVUBVT
      ZVUEWAWBUVSUVTUVTNHZUWNANHZGHZUVTUWNNHZGHZUYGGHZUVTUWPNHZUYGGHUYDUWSUVSVU
      KVUMUYGGUVSUVTUWONHZVUJGHVUJVUNGHVUKVUMUVSVUNVUJUVSUVTUWOUXLVUBWCUVSUVTUW
      NUXLVUDWCZWDUVSVUIVUNVUJGUVSSVUGNHZVUGVUGGHVUNVUIUVSVUGUVSUVTUVTUXLUXLWCZ
      WFUVSUXKUXKVUPVUNKZUXLUXLUYTUXKUXKVURVFSUVTUVTWGVHULUVSVUGVUHVUGGUVSUYFUY
      NVUGVUHUYQUVSUVTUXLWHUVSVUCUYNVUHKVUDAUWNVKWIWJWKWLWPUVSUVTUWNUWOUXLVUDVU
      BWAWBWPUVSUWAUWAPFZNHZVUIVUJUYGGHGHZUYDVULUVSVUTUWAUVTUWNGHZNHVVAUVSVUSVV
      BUWANUVSVUSUVTPFZUWNGHZVVBUXKUVSVUSVVDKUXLUVTAWMRUVSVVCUVTUWNGUVSUVTUXFWN
      WPWQWKUVSUVTAUVTUWNUXLVUEUXLVUDWOWQUVSUXJUYDVUTKUXMUWAVEUPUVSVUIVUJUYGUVS
      VUGVUHVUQVUCUVSVUHDEVUDUWNAVIRVTVUOUXKUVSUYGDEUXLUVTAVIRWRWBUVSUVTUWPAUXL
      VUFVUEWAWBZVOQWQVOUWCUVTUWRNHZUWSOHZAUWSNHZUWSOHZUXAAUVSVVGVVIKUWBUVSVVFV
      VHUWSOUVSUVTAUWQUXLVUEUWPDEUVSUWQDEZVUFUWPAUORZWSWPQUWCUVTUWRUWSUVSUXKUWB
      UXLQUVSUWRDEZUWBUVSVVJVVLVVKAUWQVIWIQUVSUWSDEUWBUVSUVTUWQUXLVVKWCQZUVSUWB
      UWSIUBUVSUWAIUWSIUVSUYDIKZUWJIKZUWSIKUWAIKZUVSUXOVVNVVOWTUXRUWJXAUPUVSUYD
      UWSIVVEXBUXTXCURXDZXEUWCAUWSUVSUWBXFZVVMVVQXGWJXHZUWCIUWHUWAVUSGHZUWJOHZN
      HZSOHZUWELUWCVWBTEZIVWBLMZIVWCLMZUWCUWHVWAUVSUXEUWBUXHQZUWCVVTUWJUVSVVTTE
      ZUWBUVSVVTSUWAUDFZNHZTUVSUWAUXMXIZUVSSTEZVWITEZVWJTEXJUVSUWAUXMXQZSVWIXKV
      JXLQZUVSUXPUWBUXQQZUYAXMZXNUWCUWHVWAVWGVWQUVSIUWHLMZUWBUVSUXCUXDVWRUXFUXG
      UVTXOULQUWCVWHIVVTLMZUXPIUWJYHMIVWALMVWOUVSVWSUWBUVSIVWJVVTLUVSVWMIVWILMZ
      IVWJLMZVWNUVSIAXPZUAFZVXBUDFZXRHZVWILUVSIVXELMVXDVXCLMZUVSVXBDEZVXFAXSZVX
      BXTUPUVSVXCVXDUVSVXGVXCTEVXHVXBUIUPZUVSVXBVXHXQZYAYBUVSVWIUVTUDFZAUDFZGHZ
      VXCVXDXPZGHVXEUXKUVSVWIVXMKUXLUVTAYCRUVSVXKVXCVXLVXNGUVSVXKUVTVXCUVSUVTUX
      FYIAYDVQUVSVXBXPZUDFVXLVXNUVSVXOAUDAYEZYFUVSVXBVXHYGVLVOUVSVXCVXDUVSVXCVX
      IUNUVSVXDVXJUNYJXHYKVWLISLMVWMVWTUCVXAXJYLSVWIYMYNULVWKYKQVWPUWCUWJVWPUWC
      UXJIUWJLMUXNUWAUJUPUYAYOVVTUWJYPYQUUAVWDVWEUCVWLISYHMVWFXJUUIVWBSYPUUBULU
      WCUWEBBPFZGHZSOHZVWCUWCBDEZUWEVXSKUWCBUXBDCUWCUWHUWKUXIUYBWCUUCZBUUDUPUWC
      VXRVWBSOUWCVXRUWHUWKVUSUWJOHZGHZNHZVWBUWCBUWHVYBNHZGHUXBVYEGHVXRVYDBUXBVY
      EGCUHUWCVXQVYEBGUWCVXQUWHPFZUWKPFZNHZVYEUWCVXQUXBPFVYHBUXBPCUUEUWCUWHUWKU
      XIUYBUUFVAUWCVYFUWHVYGVYBNUVSVYFUWHKUWBUVSUWHUXHWNQUWCVYGVUSUWJPFZOHVYBUW
      CUWAUWJUXNUXSUYAUUGUWCVYIUWJVUSOUWCUWJVWPWNWKWQVOWQWKUWCUWHUWKVYBUXIUYBUW
      CVUSUWJUWCUWAUXNUUJZUXSUYAUSWAUUHUWCVWAVYCUWHNUWCUWAVUSUWJUXNVYJUXSUYAUUK
      WKVQWPWQYKUWCUWFUEEZYRUWGUWCUWFTEZVYKUWCUVTVXBUBZVYLYRUVSUWBVYMUVSUWAIUVT
      VXBUVSUVTVXBXRHZIKVVPUVTVXBKZUVSVYNUWAIUXKUVSVYNUWAKUXLUVTAUULRXBUVSUVTVX
      BUXLVXHUUMUUNURXDUWCVYLUVTVXBUWCVYLATEZAILMZUCVYOUWCVYLVYPVYQUWCUVSVYLVXB
      TEZVYPVVRVYLUWFSJHZTEUWCVYRUWFUUOUWCVYSVXBTUWCVYSUMSJHZUWDNHZUUPXPZANHZVX
      BUWCUMDEVXTVYSWUAKUUQVYAUMBUURVJUWCVYTWUBUWDANVYTWUBKUWCUUSUVAVVSVOUVSWUC
      VXBKUWBAUUTQXHZYSYTVYRVXOTEUVSVYPVXBUVBUVSVXOATVXPYSYTUVCZUWCVYLIVXBLMZVY
      PVYQVYLIVYSLMUWCWUFUWFUVDUWCVYSVXBILWUDUVEYTWUEVYPVYQWUFAUVLUVFUVGUVHAUVI
      UVJUVKUVMUWFUVNUVOUWFUEUVPUVQUVR $.
  $}

  ${
    $d A x $.
    $( Existence and uniqueness for the square root function in general.
       (Contributed by Mario Carneiro, 9-Jul-2013.) $)
    sqreu $p |- ( A e. CC -> E! x e. CC ( ( x ^ 2 ) = A /\
        0 <_ ( Re ` x ) /\ ( _i x. x ) e/ RR+ ) ) $=
      ( cc wcel c2 cexp co wceq cc0 cre cfv cle wbr ci cmul crp w3a recnd syl
      cr cv wnel wrex wrmo wreu cabs caddc cneg cmin abscl subneg mpancom negcl
      eqeq1d subeq0ad bitr3d csqrt ax-icn absge0 jca eleq1 breq2 anbi12d syl5ib
      impcom resqrtcl mulcl sylancr sqrtneglem negneg adantr eqeq2d mpbid oveq1
      wa 3anbi1d fveq2 breq2d oveq2 neleq1 3anbi123d rspcev syl2anc sylbid cdiv
      wb ex wne abs00ad necon3bid biimpar divcld mulcld eqid sqreulem pm2.61dne
      addcl sqrmo reu5 sylanbrc ) BCDZAUAZEFGZBHZIXBJKZLMZNXBOGZPUBZQZACUCZXIAC
      UDXIACUEXAXJBUFKZBUGGZIXAXLIHZXKBUHZHZXJXAXKXNUIGZIHXMXOXAXPXLIXKCDZXAXPX
      LHXAXKBUJZRZXKBUKULUNXAXKXNXSBUMUOUPXAXOXJXAXOVOZNXNUQKZOGZCDZYBEFGZBHZIY
      BJKZLMZNYBOGZPUBZQZXJXTNCDYACDYCURXTYAXTXNTDZIXNLMZVOZYATDXOXAYMXAXKTDZIX
      KLMZVOXOYMXAYNYOXRBUSZUTXOYNYKYOYLXKXNTVAXKXNILVBVCVDVEZXNVFSRNYAVGVHXTYD
      XNUHZHZYGYIQZYJXTYMYTYQXNVISXTYSYEYGYIXTYRBYDXAYRBHXOBVJVKVLVPVMXIYJAYBCX
      BYBHZXDYEXFYGXHYIUUAXCYDBXBYBEFVNUNUUAXEYFILXBYBJVQVRUUAXGYHHXHYIWFXBYBNO
      VSXGYHPVTSWAWBWCWGWDXAXLIWHZXJXAUUBVOZXKUQKZXLXLUFKZWEGZOGZCDUUGEFGZBHZIU
      UGJKZLMZNUUGOGZPUBZQZXJUUCUUDUUFXAUUDCDUUBXAUUDXAYNYOUUDTDXRYPXKVFWCRVKUU
      CXLUUEXAXLCDZUUBXQXAUUOXSXKBWQULZVKXAUUECDUUBXAUUEXAUUOUUETDUUPXLUJSRVKXA
      UUEIWHUUBXAUUEIXLIXAXLUUPWIWJWKWLWMBUUGUUGWNWOXIUUNAUUGCXBUUGHZXDUUIXFUUK
      XHUUMUUQXCUUHBXBUUGEFVNUNUUQXEUUJILXBUUGJVQVRUUQXGUULHXHUUMWFXBUUGNOVSXGU
      ULPVTSWAWBWCWGWPABWRXIACWSWT $.
  $}

  ${
    $d A x y $.
    $( Closure of the square root function over the complex numbers.
       (Contributed by Mario Carneiro, 10-Jul-2013.) $)
    sqrtcl $p |- ( A e. CC -> ( sqrt ` A ) e. CC ) $=
      ( vx cc wcel csqrt cfv cv c2 cexp co wceq cc0 cre cle wbr ci cmul crp w3a
      wnel crio sqrtval wreu sqreu riotacl syl eqeltrd ) ACDZAEFBGZHIJAKLUIMFNO
      PUIQJRTSZBCUAZCBAUBUHUJBCUCUKCDBAUDUJBCUEUFUG $.

    $( Lemma for ~ sqrtth .  (Contributed by Mario Carneiro, 10-Jul-2013.) $)
    sqrtthlem $p |- ( A e. CC -> ( ( ( sqrt ` A ) ^ 2 ) = A /\
        0 <_ ( Re ` ( sqrt ` A ) ) /\ ( _i x. ( sqrt ` A ) ) e/ RR+ ) ) $=
      ( vx cc wcel csqrt cfv c2 cexp co wceq cc0 cre cle wbr ci cmul crp w3a wb
      wnel cv crio sqrtval eqcomd sqrtcl sqreu oveq1 eqeq1d fveq2 breq2d neleq1
      wreu oveq2 syl 3anbi123d riota2 syl2anc mpbird ) ACDZAEFZGHIZAJZKUTLFZMNZ
      OUTPIZQTZRZBUAZGHIZAJZKVHLFZMNZOVHPIZQTZRZBCUBZUTJZUSUTVPBAUCUDUSUTCDVOBC
      ULVGVQSAUEBAUFVOVGBCUTVHUTJZVJVBVLVDVNVFVRVIVAAVHUTGHUGUHVRVKVCKMVHUTLUIU
      JVRVMVEJVNVFSVHUTOPUMVMVEQUKUNUOUPUQUR $.

    $( Mapping domain and codomain of the square root function.  (Contributed
       by Mario Carneiro, 13-Sep-2015.) $)
    sqrtf $p |- sqrt : CC --> CC $=
      ( vx vy cc csqrt wf wfn cv cfv wcel wral c2 cexp co wceq cc0 cre cle cmul
      wbr ci crp wnel crio riotaex df-sqrt fnmpti sqrtcl rgen ffnfv mpbir2an
      w3a ) CCDEDCFAGZDHCIZACJACBGZKLMULNOUNPHQSTUNRMUAUBUKZBCUCDUOBCUDABUEUFUM
      ACULUGUHACCDUIUJ $.
  $}

  $( Square root theorem over the complex numbers.  Theorem I.35 of [Apostol]
     p. 29.  (Contributed by Mario Carneiro, 10-Jul-2013.) $)
  sqrtth $p |- ( A e. CC -> ( ( sqrt ` A ) ^ 2 ) = A ) $=
    ( cc wcel csqrt cfv c2 cexp co wceq cc0 cre cle wbr cmul crp wnel sqrtthlem
    ci simp1d ) ABCADEZFGHAIJTKELMRTNHOPAQS $.

  $( The square root function must make a choice between the two roots, which
     differ by a sign change.  In the general complex case, the choice of
     "positive" and "negative" is not so clear.  The convention we use is to
     take the root with positive real part, unless ` A ` is a nonpositive real
     (in which case both roots have 0 real part); in this case we take the one
     in the positive imaginary direction.  Another way to look at this is that
     we choose the root that is largest with respect to lexicographic order on
     the complex numbers (sorting by real part first, then by imaginary part as
     tie-breaker).  (Contributed by Mario Carneiro, 10-Jul-2013.) $)
  sqrtrege0 $p |- ( A e. CC -> 0 <_ ( Re ` ( sqrt ` A ) ) ) $=
    ( cc wcel csqrt cfv c2 cexp co wceq cc0 cre cle wbr cmul crp wnel sqrtthlem
    ci simp2d ) ABCADEZFGHAIJTKELMRTNHOPAQS $.

  $( Solve an equation containing a square.  (Contributed by Mario Carneiro,
     23-Apr-2015.) $)
  eqsqrtor $p |- ( ( A e. CC /\ B e. CC ) ->
    ( ( A ^ 2 ) = B <-> ( A = ( sqrt ` B ) \/ A = -u ( sqrt ` B ) ) ) ) $=
    ( cc wcel wa c2 cexp csqrt cfv wceq cneg sqrtth adantl eqeq2d sqrtcl sqeqor
    co wo wb sylan2 bitr3d ) ACDZBCDZEZAFGQZBHIZFGQZJZUEBJAUFJAUFKJRZUDUGBUEUCU
    GBJUBBLMNUCUBUFCDUHUISBOAUFPTUA $.

  ${
    $d x A $.  $d x B $.
    eqsqrtd.1 $e |- ( ph -> A e. CC ) $.
    eqsqrtd.2 $e |- ( ph -> B e. CC ) $.
    eqsqrtd.3 $e |- ( ph -> ( A ^ 2 ) = B ) $.
    ${
      eqsqrtd.4 $e |- ( ph -> 0 <_ ( Re ` A ) ) $.
      eqsqrtd.5 $e |- ( ph -> -. ( _i x. A ) e. RR+ ) $.
      $( A deduction for showing that a number equals the square root of
         another.  (Contributed by Mario Carneiro, 3-Apr-2015.) $)
      eqsqrtd $p |- ( ph -> A = ( sqrt ` B ) ) $=
        ( vx c2 cexp co wceq cc0 cre cle ci cmul crp cc cfv wbr wnel wrmo csqrt
        w3a wcel wreu sqreu reurmo 3syl df-nel sylibr 3jca sqrtcl syl sqrtthlem
        cv wn oveq1 eqeq1d fveq2 breq2d oveq2 neleq1 3anbi123d rmoi syl122anc
        wb ) AIURZJKLZCMZNVJOUAZPUBZQVJRLZSUCZUFZITUDZBTUGBJKLZCMZNBOUAZPUBZQBR
        LZSUCZUFZCUEUAZTUGZWFJKLZCMZNWFOUAZPUBZQWFRLZSUCZUFZBWFMACTUGZVQITUHVRE
        ICUIVQITUJUKDAVTWBWDFGAWCSUGUSWDHWCSULUMUNAWOWGECUOUPAWOWNECUQUPVQWEWNI
        TBWFVJBMZVLVTVNWBVPWDWPVKVSCVJBJKUTVAWPVMWANPVJBOVBVCWPVOWCMVPWDVIVJBQR
        VDVOWCSVEUPVFVJWFMZVLWIVNWKVPWMWQVKWHCVJWFJKUTVAWQVMWJNPVJWFOVBVCWQVOWL
        MVPWMVIVJWFQRVDVOWLSVEUPVFVGVH $.
    $}

    eqsqrt2d.4 $e |- ( ph -> 0 < ( Re ` A ) ) $.
    $( A deduction for showing that a number equals the square root of another.
       (Contributed by Mario Carneiro, 3-Apr-2015.) $)
    eqsqrt2d $p |- ( ph -> A = ( sqrt ` B ) ) $=
      ( cc0 cre cfv clt wbr cle cr wcel wi 0re recld ltle syl sylancr mpd ci co
      cmul cim wne crp wn cc wceq reim gt0ne0d eqnetrrd reim0d necon3ai eqsqrtd
      rpre ) ABCDEFAHBIJZKLZHUSMLZGAHNOUSNOUTVAPQABDRHUSSUAUBAUCBUEUDZUFJZHUGVB
      UHOZUIAUSVCHABUJOUSVCUKDBULTAUSGUMUNVDVCHVDVBVBURUOUPTUQ $.
  $}

  $( Arithmetic-geometric mean inequality for ` n = 2 ` .  (Contributed by
     Mario Carneiro, 2-Jul-2014.) $)
  amgm2 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
      ( sqrt ` ( A x. B ) ) <_ ( ( A + B ) / 2 ) ) $=
    ( cr wcel cc0 cle wa c2 cmul co caddc cexp c4 cc wceq remulcl syl2anc recnd
    wbr cmin csqrt cfv cdiv 2cn simpll simprl mulge0 resqrtcl sqmul sylancr sq2
    oveq1i sqrtth oveq2d syl5eq eqtrd resubcld sqge0d binom2sub oveq12d resqcld
    syl binom2 2re readdcld pnpcan2d 2timesd 2t2e4 2cnd mulassd syl5eqr pnncand
    3eqtr4rd 3eqtrd 4re subsub23 syl3anc mpbid breqtrrd subge0d eqbrtrd sqrtge0
    wb 0le2 mpanl12 addge0 an4s le2sqd mpbird clt 2pos pm3.2i a1i lemuldiv2 ) A
    CDZEAFSZGZBCDZEBFSZGZGZHABIJZUAUBZIJZABKJZFSZXCXEHUCJFSZXAXFXDHLJZXEHLJZFSX
    AXHMXBIJZXIFXAXHHHLJZXCHLJZIJZXJXAHNDXCNDXHXMOUDXAXCXAXBCDZEXBFSZXCCDZXAWOW
    RXNWOWPWTUEZWQWRWSUFZABPQZABUGZXBUHQZRHXCUIUJXAXMMXLIJXJXKMXLIUKULXAXLXBMIX
    AXBNDXLXBOXAXBXSRZXBUMVBUNUOUPXAEXIXJTJZFSXJXIFSXAEABTJZHLJZYCFXAYDXAABXQXR
    UQZURXAXIYETJZXJOZYCYEOZXAYGAHLJZHXBIJZKJZBHLJZKJZYJYKTJZYMKJZTJYLYOTJZXJXA
    XIYNYEYPTXAANDZBNDZXIYNOXAAXQRZXABXRRZABVCQXAYRYSYEYPOYTUUAABUSQUTXAYLYOYMX
    AYLXAYJYKXAAXQVAZXAHCDZXNYKCDVDXSHXBPUJZVERXAYOXAYJYKUUBUUDUQRXAYMXABXRVARV
    FXAHYKIJZYKYKKJXJYQXAYKXAYKUUDRZVGXAXJHHIJZXBIJUUEUUGMXBIVHULXAHHXBXAVIZUUH
    YBVJVKXAYJYKYKXAYJUUBRUUFUUFVLVMVNXAXINDYENDXJNDYHYIWCXAXIXAXEXAABXQXRVEZVA
    ZRXAYEXAYDYFVARXAXJXAMCDXNXJCDVOXSMXBPUJZRXIYEXJVPVQVRVSXAXIXJUUJUUKVTVRWAX
    AXDXEXAUUCXPXDCDVDYAHXCPUJUUIXAXPEXCFSZEXDFSZYAXAXNXOUULXSXTXBWBQUUCEHFSXPU
    ULGUUMVDWDHXCUGWEQWOWRWPWSEXEFSABWFWGWHWIXAXPXECDUUCEHWJSZGZXFXGWCYAUUIUUOX
    AUUCUUNVDWKWLWMXCXEHWNVQVR $.

  ${
    sqrth.1 $e |- A e. RR $.
    $( Square root theorem.  Theorem I.35 of [Apostol] p. 29.  (Contributed by
       NM, 26-May-1999.)  (Revised by Mario Carneiro, 6-Sep-2013.) $)
    sqrtthi $p |- ( 0 <_ A -> ( ( sqrt ` A ) x. ( sqrt ` A ) ) = A ) $=
      ( cr wcel cc0 cle wbr csqrt cfv cmul co wceq remsqsqrt mpan ) ACDEAFGAHIZ
      OJKALBAMN $.

    $( The square root of a nonnegative real is a real.  (Contributed by NM,
       26-May-1999.)  (Revised by Mario Carneiro, 6-Sep-2013.) $)
    sqrtcli $p |- ( 0 <_ A -> ( sqrt ` A ) e. RR ) $=
      ( cr wcel cc0 cle wbr csqrt cfv resqrtcl mpan ) ACDEAFGAHICDBAJK $.

    $( The square root of a positive real is positive.  (Contributed by NM,
       26-May-1999.)  (Revised by Mario Carneiro, 6-Sep-2013.) $)
    sqrtgt0i $p |- ( 0 < A -> 0 < ( sqrt ` A ) ) $=
      ( cr wcel cc0 clt wbr csqrt cfv sqrtgt0 mpan ) ACDEAFGEAHIFGBAJK $.

    $( Square root of square.  (Contributed by NM, 2-Aug-1999.) $)
    sqrtmsqi $p |- ( 0 <_ A -> ( sqrt ` ( A x. A ) ) = A ) $=
      ( cr wcel cc0 cle wbr cmul co csqrt cfv wceq sqrtmsq mpan ) ACDEAFGAAHIJK
      ALBAMN $.

    $( Square root of square.  (Contributed by NM, 11-Aug-1999.) $)
    sqrtsqi $p |- ( 0 <_ A -> ( sqrt ` ( A ^ 2 ) ) = A ) $=
      ( cr wcel cc0 cle wbr c2 cexp co csqrt cfv wceq sqrtsq mpan ) ACDEAFGAHIJ
      KLAMBANO $.

    $( Square of square root.  (Contributed by NM, 11-Aug-1999.) $)
    sqsqrti $p |- ( 0 <_ A -> ( ( sqrt ` A ) ^ 2 ) = A ) $=
      ( cr wcel cc0 cle wbr csqrt cfv c2 cexp co wceq resqrtth mpan ) ACDEAFGAH
      IJKLAMBANO $.

    $( The square root of a nonnegative real is nonnegative.  (Contributed by
       NM, 26-May-1999.)  (Revised by Mario Carneiro, 6-Sep-2013.) $)
    sqrtge0i $p |- ( 0 <_ A -> 0 <_ ( sqrt ` A ) ) $=
      ( cr wcel cc0 cle wbr csqrt cfv sqrtge0 mpan ) ACDEAFGEAHIFGBAJK $.

    $( A nonnegative number is its own absolute value.  (Contributed by NM,
       2-Aug-1999.) $)
    absidi $p |- ( 0 <_ A -> ( abs ` A ) = A ) $=
      ( cr wcel cc0 cle wbr cabs cfv wceq absid mpan ) ACDEAFGAHIAJBAKL $.

    $( A negative number is the negative of its own absolute value.
       (Contributed by NM, 2-Aug-1999.) $)
    absnidi $p |- ( A <_ 0 -> ( abs ` A ) = -u A ) $=
      ( cr wcel cc0 cle wbr cabs cfv cneg wceq absnid mpan ) ACDAEFGAHIAJKBALM
      $.

    $( A real number is less than or equal to its absolute value.  (Contributed
       by NM, 2-Aug-1999.) $)
    leabsi $p |- A <_ ( abs ` A ) $=
      ( cr wcel cabs cfv cle wbr leabs ax-mp ) ACDAAEFGHBAIJ $.

    $( The absolute value of a real number is either that number or its
       negative.  (Contributed by NM, 30-Sep-1999.) $)
    absori $p |- ( ( abs ` A ) = A \/ ( abs ` A ) = -u A ) $=
      ( cr wcel cabs cfv wceq cneg wo absor ax-mp ) ACDAEFZAGLAHGIBAJK $.

    $( Absolute value of a real number.  (Contributed by NM, 3-Aug-1999.) $)
    absrei $p |- ( abs ` A ) = ( sqrt ` ( A ^ 2 ) ) $=
      ( cr wcel cabs cfv c2 cexp co csqrt wceq absre ax-mp ) ACDAEFAGHIJFKBALM
      $.

    ${
      sqrpclii.2 $e |- 0 < A $.
      $( The square root of a positive real is a real.  (Contributed by Mario
         Carneiro, 6-Sep-2013.) $)
      sqrtpclii $p |- ( sqrt ` A ) e. RR $=
        ( cc0 cle wbr csqrt cfv cr wcel 0re ltleii sqrtcli ax-mp ) DAEFAGHIJDAK
        BCLABMN $.

      $( The square root of a positive real is positive.  (Contributed by NM,
         26-May-1999.)  (Revised by Mario Carneiro, 6-Sep-2013.) $)
      sqrtgt0ii $p |- 0 < ( sqrt ` A ) $=
        ( cc0 clt wbr csqrt cfv sqrtgt0i ax-mp ) DAEFDAGHEFCABIJ $.
    $}

    sqr11.1 $e |- B e. RR $.
    $( The square root function is one-to-one.  (Contributed by NM,
       27-Jul-1999.) $)
    sqrt11i $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
               ( ( sqrt ` A ) = ( sqrt ` B ) <-> A = B ) ) $=
      ( cr wcel cc0 cle wbr csqrt cfv wceq wb wa sqrt11 mpanr1 mpanl1 ) AEFZGAH
      IZGBHIZAJKBJKLABLMZCRSNBEFTUADABOPQ $.

    $( Square root distributes over multiplication.  (Contributed by NM,
       30-Jul-1999.) $)
    sqrtmuli $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
               ( sqrt ` ( A x. B ) ) = ( ( sqrt ` A ) x. ( sqrt ` B ) ) ) $=
      ( cr wcel cc0 cle wbr cmul co csqrt cfv wceq wa sqrtmul mpanr1 mpanl1 ) A
      EFZGAHIZGBHIZABJKLMALMBLMJKNZCSTOBEFUAUBDABPQR $.

    ${
      sqrmuli.1 $e |- 0 <_ A $.
      sqrmuli.2 $e |- 0 <_ B $.
      $( Square root distributes over multiplication.  (Contributed by NM,
         30-Jul-1999.) $)
      sqrtmulii $p |- ( sqrt ` ( A x. B ) )
                      = ( ( sqrt ` A ) x. ( sqrt ` B ) ) $=
        ( cc0 cle wbr cmul co csqrt cfv wceq sqrtmuli mp2an ) GAHIGBHIABJKLMALM
        BLMJKNEFABCDOP $.
    $}

    $( Relationship between square root and squares.  (Contributed by NM,
       31-Jul-1999.) $)
    sqrtmsq2i $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
       ( ( sqrt ` A ) = B <-> A = ( B x. B ) ) ) $=
      ( cc0 cle wbr wa csqrt cfv wceq c2 cexp co cmul cr wcel wb sqrtsq2 mpanr1
      mpanl1 recni sqvali eqeq2i syl6bb ) EAFGZEBFGZHAIJBKZABLMNZKZABBONZKAPQZU
      FUGUHUJRZCULUFHBPQUGUMDABSTUAUIUKABBDUBUCUDUE $.

    $( Square root is monotonic.  (Contributed by NM, 3-Aug-1999.) $)
    sqrtlei $p |- ( ( 0 <_ A /\ 0 <_ B ) ->
        ( A <_ B <-> ( sqrt ` A ) <_ ( sqrt ` B ) ) ) $=
      ( cr wcel cc0 cle wbr csqrt cfv wb wa sqrtle mpanr1 mpanl1 ) AEFZGAHIZGBH
      IZABHIAJKBJKHILZCQRMBEFSTDABNOP $.

    $( Square root is strictly monotonic.  (Contributed by Roy F. Longton,
       8-Aug-2005.) $)
    sqrtlti $p |- ( ( 0 <_ A /\ 0 <_ B ) -> ( A < B <-> ( sqrt ` A ) <
      ( sqrt ` B ) ) ) $=
      ( cr wcel cc0 cle wbr clt csqrt cfv wb wa sqrtlt mpanr1 mpanl1 ) AEFZGAHI
      ZGBHIZABJIAKLBKLJIMZCRSNBEFTUADABOPQ $.

    $( Absolute value and 'less than' relation.  (Contributed by NM,
       6-Apr-2005.) $)
    abslti $p |- ( ( abs ` A ) < B <-> ( -u B < A /\ A < B ) ) $=
      ( cr wcel cabs cfv clt wbr cneg wa wb abslt mp2an ) AEFBEFAGHBIJBKAIJABIJ
      LMCDABNO $.

    $( Absolute value and 'less than or equal to' relation.  (Contributed by
       NM, 6-Apr-2005.) $)
    abslei $p |- ( ( abs ` A ) <_ B <-> ( -u B <_ A /\ A <_ B ) ) $=
      ( cr wcel cabs cfv cle wbr cneg wa wb absle mp2an ) AEFBEFAGHBIJBKAIJABIJ
      LMCDABNO $.
  $}

  ${
    absvalsqi.1 $e |- A e. CC $.
    $( Square of value of absolute value function.  (Contributed by NM,
       2-Oct-1999.) $)
    absvalsqi $p |- ( ( abs ` A ) ^ 2 ) = ( A x. ( * ` A ) ) $=
      ( cc wcel cabs cfv c2 cexp co ccj cmul wceq absvalsq ax-mp ) ACDAEFGHIAAJ
      FKILBAMN $.

    $( Square of value of absolute value function.  (Contributed by NM,
       2-Oct-1999.) $)
    absvalsq2i $p |- ( ( abs ` A ) ^ 2 ) =
                    ( ( ( Re ` A ) ^ 2 ) + ( ( Im ` A ) ^ 2 ) ) $=
      ( cc wcel cabs cfv c2 cexp co cre cim caddc wceq absvalsq2 ax-mp ) ACDAEF
      GHIAJFGHIAKFGHILIMBANO $.

    $( Real closure of absolute value.  (Contributed by NM, 2-Aug-1999.) $)
    abscli $p |- ( abs ` A ) e. RR $=
      ( cc wcel cabs cfv cr abscl ax-mp ) ACDAEFGDBAHI $.

    $( Absolute value is nonnegative.  (Contributed by NM, 2-Aug-1999.) $)
    absge0i $p |- 0 <_ ( abs ` A ) $=
      ( cc wcel cc0 cabs cfv cle wbr absge0 ax-mp ) ACDEAFGHIBAJK $.

    $( Value of absolute value function.  Definition 10.36 of [Gleason] p. 133.
       (Contributed by NM, 2-Oct-1999.) $)
    absval2i $p |- ( abs ` A ) =
                 ( sqrt ` ( ( ( Re ` A ) ^ 2 ) + ( ( Im ` A ) ^ 2 ) ) ) $=
      ( cc wcel cabs cfv cre c2 cexp co cim caddc csqrt wceq absval2 ax-mp ) AC
      DAEFAGFHIJAKFHIJLJMFNBAOP $.

    $( The absolute value of a number is zero iff the number is zero.
       Proposition 10-3.7(c) of [Gleason] p. 133.  (Contributed by NM,
       28-Jul-1999.) $)
    abs00i $p |- ( ( abs ` A ) = 0 <-> A = 0 ) $=
      ( cc wcel cabs cfv cc0 wceq wb abs00 ax-mp ) ACDAEFGHAGHIBAJK $.

    $( The absolute value of a nonzero number is positive.  Remark in [Apostol]
       p. 363.  (Contributed by NM, 1-Oct-1999.) $)
    absgt0i $p |- ( A =/= 0 <-> 0 < ( abs ` A ) ) $=
      ( cc wcel cc0 wne cabs cfv clt wbr wb absgt0 ax-mp ) ACDAEFEAGHIJKBALM $.

    $( Absolute value of negative.  (Contributed by NM, 2-Aug-1999.) $)
    absnegi $p |- ( abs ` -u A ) = ( abs ` A ) $=
      ( cc wcel cneg cabs cfv wceq absneg ax-mp ) ACDAEFGAFGHBAIJ $.

    $( The absolute value of a number and its conjugate are the same.
       Proposition 10-3.7(b) of [Gleason] p. 133.  (Contributed by NM,
       2-Oct-1999.) $)
    abscji $p |- ( abs ` ( * ` A ) ) = ( abs ` A ) $=
      ( cc wcel ccj cfv cabs wceq abscj ax-mp ) ACDAEFGFAGFHBAIJ $.

    $( The real part of a number is less than or equal to its absolute value.
       Proposition 10-3.7(d) of [Gleason] p. 133.  (Contributed by NM,
       2-Oct-1999.) $)
    releabsi $p |- ( Re ` A ) <_ ( abs ` A ) $=
      ( cc wcel cre cfv cabs cle wbr releabs ax-mp ) ACDAEFAGFHIBAJK $.

    abssub.2 $e |- B e. CC $.
    $( Swapping order of subtraction doesn't change the absolute value.
       Example of [Apostol] p. 363.  (Contributed by NM, 1-Oct-1999.) $)
    abssubi $p |- ( abs ` ( A - B ) ) = ( abs ` ( B - A ) ) $=
      ( cc wcel cmin co cabs cfv wceq abssub mp2an ) AEFBEFABGHIJBAGHIJKCDABLM
      $.

    $( Absolute value distributes over multiplication.  Proposition 10-3.7(f)
       of [Gleason] p. 133.  (Contributed by NM, 1-Oct-1999.) $)
    absmuli $p |- ( abs ` ( A x. B ) ) = ( ( abs ` A ) x. ( abs ` B ) ) $=
      ( cc wcel cmul co cabs cfv wceq absmul mp2an ) AEFBEFABGHIJAIJBIJGHKCDABL
      M $.

    $( Square of absolute value of sum.  Proposition 10-3.7(g) of [Gleason]
       p. 133.  (Contributed by NM, 2-Oct-1999.) $)
    sqabsaddi $p |- ( ( abs ` ( A + B ) ) ^ 2 ) =
                 ( ( ( ( abs ` A ) ^ 2 ) + ( ( abs ` B ) ^ 2 ) ) +
                 ( 2 x. ( Re ` ( A x. ( * ` B ) ) ) ) ) $=
      ( cc wcel caddc co cabs cfv c2 cexp ccj cmul cre wceq sqabsadd mp2an ) AE
      FBEFABGHIJKLHAIJKLHBIJKLHGHKABMJNHOJNHGHPCDABQR $.

    $( Square of absolute value of difference.  (Contributed by Steve
       Rodriguez, 20-Jan-2007.) $)
    sqabssubi $p |- ( ( abs ` ( A - B ) ) ^ 2 ) =
                    ( ( ( ( abs ` A ) ^ 2 ) + ( ( abs ` B ) ^ 2 ) )
                      - ( 2 x. ( Re ` ( A x. ( * ` B ) ) ) ) ) $=
      ( cc wcel cmin co cabs cfv c2 cexp caddc ccj cmul cre wceq sqabssub mp2an
      ) AEFBEFABGHIJKLHAIJKLHBIJKLHMHKABNJOHPJOHGHQCDABRS $.

    $( Absolute value distributes over division.  (Contributed by NM,
       26-Mar-2005.) $)
    absdivzi $p |- ( B =/= 0 ->
                  ( abs ` ( A / B ) ) = ( ( abs ` A ) / ( abs ` B ) ) ) $=
      ( cc wcel cc0 wne cdiv co cabs cfv wceq absdiv mp3an12 ) AEFBEFBGHABIJKLA
      KLBKLIJMCDABNO $.

    $( Triangle inequality for absolute value.  Proposition 10-3.7(h) of
       [Gleason] p. 133.  This is Metamath 100 proof #91.  (Contributed by NM,
       2-Oct-1999.) $)
    abstrii $p |- ( abs ` ( A + B ) ) <_ ( ( abs ` A ) + ( abs ` B ) ) $=
      ( cc wcel caddc co cabs cfv cle wbr abstri mp2an ) AEFBEFABGHIJAIJBIJGHKL
      CDABMN $.

    abs3dif.3 $e |- C e. CC $.
    $( Absolute value of differences around common element.  (Contributed by
       NM, 2-Oct-1999.) $)
    abs3difi $p |- ( abs ` ( A - B ) ) <_ ( ( abs ` ( A - C ) ) +
                  ( abs ` ( C - B ) ) ) $=
      ( cc wcel cmin co cabs cfv caddc cle wbr abs3dif mp3an ) AGHBGHCGHABIJKLA
      CIJKLCBIJKLMJNODEFABCPQ $.

    abs3lem.4 $e |- D e. RR $.
    $( Lemma involving absolute value of differences.  (Contributed by NM,
       2-Oct-1999.) $)
    abs3lemi $p |- ( ( ( abs ` ( A - C ) ) < ( D / 2 ) /\
                       ( abs ` ( C - B ) ) < ( D / 2 ) ) ->
                       ( abs ` ( A - B ) ) < D ) $=
      ( cmin co cabs cfv c2 clt wbr caddc subcli abscli readdcli recni cdiv cle
      abs3difi rehalfcli lt2addi lelttri sylancr cmul 2timesi 2cn 2ne0 divcan2i
      wa eqtr3i syl6breq ) ACIJZKLZDMUAJZNOCBIJZKLZURNOUMZABIJZKLZURURPJZDNVAVC
      UQUTPJZUBOVEVDNOVCVDNOABCEFGUCUQUTURURUPACEGQRZUSCBGFQRZDHUDZVHUEVCVEVDVB
      ABEFQRUQUTVFVGSURURVHVHSUFUGMURUHJVDDURURVHTUIDMDHTUJUKULUNUO $.
  $}

  ${
    sqrgt0d.1 $e |- ( ph -> A e. RR+ ) $.
    $( The square root of a positive real is positive.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    rpsqrtcld $p |- ( ph -> ( sqrt ` A ) e. RR+ ) $=
      ( crp wcel csqrt cfv rpsqrtcl syl ) ABDEBFGDECBHI $.

    $( The square root of a positive real is positive.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    sqrtgt0d $p |- ( ph -> 0 < ( sqrt ` A ) ) $=
      ( csqrt cfv rpsqrtcld rpgt0d ) ABDEABCFG $.
  $}

  ${
    resqrcld.1 $e |- ( ph -> A e. RR ) $.
    ${
      absnidd.2 $e |- ( ph -> A <_ 0 ) $.
      $( A negative number is the negative of its own absolute value.
         (Contributed by Mario Carneiro, 29-May-2016.) $)
      absnidd $p |- ( ph -> ( abs ` A ) = -u A ) $=
        ( cr wcel cc0 cle wbr cabs cfv cneg wceq absnid syl2anc ) ABEFBGHIBJKBL
        MCDBNO $.
    $}

    $( A real number is less than or equal to its absolute value.  (Contributed
       by Mario Carneiro, 29-May-2016.) $)
    leabsd $p |- ( ph -> A <_ ( abs ` A ) ) $=
      ( cr wcel cabs cfv cle wbr leabs syl ) ABDEBBFGHICBJK $.

    $( The absolute value of a real number is either that number or its
       negative.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    absord $p |- ( ph -> ( ( abs ` A ) = A \/ ( abs ` A ) = -u A ) ) $=
      ( cr wcel cabs cfv wceq cneg wo absor syl ) ABDEBFGZBHMBIHJCBKL $.

    $( Absolute value of a real number.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    absred $p |- ( ph -> ( abs ` A ) = ( sqrt ` ( A ^ 2 ) ) ) $=
      ( cr wcel cabs cfv c2 cexp co csqrt wceq absre syl ) ABDEBFGBHIJKGLCBMN
      $.

    resqrcld.2 $e |- ( ph -> 0 <_ A ) $.
    $( The square root of a nonnegative real is a real.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    resqrtcld $p |- ( ph -> ( sqrt ` A ) e. RR ) $=
      ( cr wcel cc0 cle wbr csqrt cfv resqrtcl syl2anc ) ABEFGBHIBJKEFCDBLM $.

    $( Square root of square.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    sqrtmsqd $p |- ( ph -> ( sqrt ` ( A x. A ) ) = A ) $=
      ( cr wcel cc0 cle wbr cmul co csqrt cfv wceq sqrtmsq syl2anc ) ABEFGBHIBB
      JKLMBNCDBOP $.

    $( Square root of square.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    sqrtsqd $p |- ( ph -> ( sqrt ` ( A ^ 2 ) ) = A ) $=
      ( cr wcel cc0 cle wbr c2 cexp co csqrt cfv wceq sqrtsq syl2anc ) ABEFGBHI
      BJKLMNBOCDBPQ $.

    $( The square root of a nonnegative real is nonnegative.  (Contributed by
       Mario Carneiro, 29-May-2016.) $)
    sqrtge0d $p |- ( ph -> 0 <_ ( sqrt ` A ) ) $=
      ( cr wcel cc0 cle wbr csqrt cfv sqrtge0 syl2anc ) ABEFGBHIGBJKHICDBLM $.

    $( The square root of a negative number.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    sqrtnegd $p |- ( ph -> ( sqrt ` -u A ) = ( _i x. ( sqrt ` A ) ) ) $=
      ( cr wcel cc0 cle wbr cneg csqrt cfv ci cmul co wceq sqrtneg syl2anc ) AB
      EFGBHIBJKLMBKLNOPCDBQR $.

    $( A nonnegative number is its own absolute value.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    absidd $p |- ( ph -> ( abs ` A ) = A ) $=
      ( cr wcel cc0 cle wbr cabs cfv wceq absid syl2anc ) ABEFGBHIBJKBLCDBMN $.

    ${
      sqrdivd.3 $e |- ( ph -> B e. RR+ ) $.
      $( Square root distributes over division.  (Contributed by Mario
         Carneiro, 29-May-2016.) $)
      sqrtdivd $p |- ( ph ->
                 ( sqrt ` ( A / B ) ) = ( ( sqrt ` A ) / ( sqrt ` B ) ) ) $=
        ( cr wcel cc0 cle wbr crp cdiv co csqrt cfv wceq sqrtdiv syl21anc ) ABG
        HIBJKCLHBCMNOPBOPCOPMNQDEFBCRS $.
    $}

    sqr11d.3 $e |- ( ph -> B e. RR ) $.
    sqr11d.4 $e |- ( ph -> 0 <_ B ) $.
    $( Square root distributes over multiplication.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    sqrtmuld $p |- ( ph ->
               ( sqrt ` ( A x. B ) ) = ( ( sqrt ` A ) x. ( sqrt ` B ) ) ) $=
      ( cr wcel cc0 cle wbr cmul co csqrt cfv wceq sqrtmul syl22anc ) ABHIJBKLC
      HIJCKLBCMNOPBOPCOPMNQDEFGBCRS $.

    $( Relationship between square root and squares.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    sqrtsq2d $p |- ( ph -> ( ( sqrt ` A ) = B <-> A = ( B ^ 2 ) ) ) $=
      ( cr wcel cc0 cle wbr csqrt cfv wceq c2 cexp co wb sqrtsq2 syl22anc ) ABH
      IJBKLCHIJCKLBMNCOBCPQROSDEFGBCTUA $.

    $( Square root is monotonic.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    sqrtled $p |- ( ph -> ( A <_ B <-> ( sqrt ` A ) <_ ( sqrt ` B ) ) ) $=
      ( cr wcel cc0 cle wbr csqrt cfv wb sqrtle syl22anc ) ABHIJBKLCHIJCKLBCKLB
      MNCMNKLODEFGBCPQ $.

    $( Square root is strictly monotonic.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    sqrtltd $p |- ( ph -> ( A < B <-> ( sqrt ` A ) < ( sqrt ` B ) ) ) $=
      ( cr wcel cc0 cle wbr clt csqrt cfv wb sqrtlt syl22anc ) ABHIJBKLCHIJCKLB
      CMLBNOCNOMLPDEFGBCQR $.

    sqrt11d.5 $e |- ( ph -> ( sqrt ` A ) = ( sqrt ` B ) ) $.
    $( The square root function is one-to-one.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    sqr11d $p |- ( ph -> A = B ) $=
      ( csqrt cfv wceq cr wcel cc0 cle wbr wb sqrt11 syl22anc mpbid ) ABIJCIJKZ
      BCKZHABLMNBOPCLMNCOPUAUBQDEFGBCRST $.
  $}

  ${
    absltd.1 $e |- ( ph -> A e. RR ) $.
    absltd.2 $e |- ( ph -> B e. RR ) $.
    $( Absolute value and 'less than' relation.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    absltd $p |- ( ph -> ( ( abs ` A ) < B <-> ( -u B < A /\ A < B ) ) ) $=
      ( cr wcel cabs cfv clt wbr cneg wa wb abslt syl2anc ) ABFGCFGBHICJKCLBJKB
      CJKMNDEBCOP $.

    $( Absolute value and 'less than or equal to' relation.  (Contributed by
       Mario Carneiro, 29-May-2016.) $)
    absled $p |- ( ph -> ( ( abs ` A ) <_ B <-> ( -u B <_ A /\ A <_ B ) ) ) $=
      ( cr wcel cabs cfv cle wbr cneg wa wb absle syl2anc ) ABFGCFGBHICJKCLBJKB
      CJKMNDEBCOP $.

    ${
      abssubge0d.2 $e |- ( ph -> A <_ B ) $.
      $( Absolute value of a nonnegative difference.  (Contributed by Mario
         Carneiro, 29-May-2016.) $)
      abssubge0d $p |- ( ph -> ( abs ` ( B - A ) ) = ( B - A ) ) $=
        ( cr wcel cle wbr cmin co cabs cfv wceq abssubge0 syl3anc ) ABGHCGHBCIJ
        CBKLZMNRODEFBCPQ $.

      $( Absolute value of a nonpositive difference.  (Contributed by Mario
         Carneiro, 29-May-2016.) $)
      abssuble0d $p |- ( ph -> ( abs ` ( A - B ) ) = ( B - A ) ) $=
        ( cr wcel cle wbr cmin co cabs cfv wceq abssuble0 syl3anc ) ABGHCGHBCIJ
        BCKLMNCBKLODEFBCPQ $.
    $}

    absltd.3 $e |- ( ph -> C e. RR ) $.
    $( The absolute value of a difference and 'less than' relation.
       (Contributed by Mario Carneiro, 29-May-2016.) $)
    absdifltd $p |- ( ph -> ( ( abs ` ( A - B ) ) < C <->
                        ( ( B - C ) < A /\ A < ( B + C ) ) ) ) $=
      ( cr wcel cmin co cabs cfv clt wbr caddc wa wb absdiflt syl3anc ) ABHICHI
      DHIBCJKLMDNOCDJKBNOBCDPKNOQREFGBCDST $.

    $( The absolute value of a difference and 'less than or equal to' relation.
       (Contributed by Mario Carneiro, 29-May-2016.) $)
    absdifled $p |- ( ph -> ( ( abs ` ( A - B ) ) <_ C <->
                        ( ( B - C ) <_ A /\ A <_ ( B + C ) ) ) ) $=
      ( cr wcel cmin co cabs cfv cle wbr caddc wa wb absdifle syl3anc ) ABHICHI
      DHIBCJKLMDNOCDJKBNOBCDPKNOQREFGBCDST $.
  $}

  $( Two elements in a half-open interval have separation _strictly_ less than
     the difference between the endpoints.  (Contributed by Stefan O'Rear,
     12-Sep-2014.) $)
  icodiamlt $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. ( A [,) B ) /\ D e. (
      A [,) B ) ) ) -> ( abs ` ( C - D ) ) < ( B - A ) ) $=
    ( cr wcel wa cico cmin cabs cfv clt wbr cle w3a cxr elico2 recnd resubcld
    co rexr anbi12d biimpd sylan2 cneg simplr simpll negsubdi2d simprl1 simprr1
    simprl2 lesub1dd simprr3 ltsub2dd lelttrd eqbrtrd simprl3 ltsub1dd lesub2dd
    wi simprr2 ltletrd absltd mpbir2and ex syld imp ) AEFZBEFZGZCABHTZFZDVKFZGZ
    CDITZJKBAITZLMZVJVNCEFZACNMZCBLMZOZDEFZADNMZDBLMZOZGZVQVIVHBPFZVNWFUTBUAVHW
    GGZVNWFWHVLWAVMWEABCQABDQUBUCUDVJWFVQVJWFGZVQVPUEZVOLMVOVPLMWIWJABITZVOLWIB
    AWIBVHVIWFUFZRWIAVHVIWFUGZRUHWIWKCBITVOWIABWMWLSWICBVRVSVTWEVJUIZWLSWICDWNW
    BWCWDWAVJUJZSZWIACBWMWNWLVRVSVTWEVJUKULWIDBCWOWLWNWBWCWDWAVJUMUNUOUPWIVOBDI
    TVPWPWIBDWLWOSWIBAWLWMSZWICBDWNWLWOVRVSVTWEVJUQURWIADBWMWOWLWBWCWDWAVJVAUSV
    BWIVOVPWPWQVCVDVEVFVG $.

  ${
    abscld.1 $e |- ( ph -> A e. CC ) $.
    $( Real closure of absolute value.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    abscld $p |- ( ph -> ( abs ` A ) e. RR ) $=
      ( cc wcel cabs cfv cr abscl syl ) ABDEBFGHECBIJ $.

    $( Closure of the square root function over the complex numbers.
       (Contributed by Mario Carneiro, 29-May-2016.) $)
    sqrtcld $p |- ( ph -> ( sqrt ` A ) e. CC ) $=
      ( cc wcel csqrt cfv sqrtcl syl ) ABDEBFGDECBHI $.

    $( The real part of the square root function is nonnegative.  (Contributed
       by Mario Carneiro, 29-May-2016.) $)
    sqrtrege0d $p |- ( ph -> 0 <_ ( Re ` ( sqrt ` A ) ) ) $=
      ( cc wcel cc0 csqrt cfv cre cle wbr sqrtrege0 syl ) ABDEFBGHIHJKCBLM $.

    $( Square root theorem.  Theorem I.35 of [Apostol] p. 29.  (Contributed by
       Mario Carneiro, 29-May-2016.) $)
    sqsqrtd $p |- ( ph -> ( ( sqrt ` A ) ^ 2 ) = A ) $=
      ( cc wcel csqrt cfv c2 cexp co wceq sqrtth syl ) ABDEBFGHIJBKCBLM $.

    $( Square root theorem.  Theorem I.35 of [Apostol] p. 29.  (Contributed by
       Mario Carneiro, 29-May-2016.) $)
    msqsqrtd $p |- ( ph -> ( ( sqrt ` A ) x. ( sqrt ` A ) ) = A ) $=
      ( csqrt cfv c2 cexp co cmul sqrtcld sqvald sqsqrtd eqtr3d ) ABDEZFGHNNIHB
      ANABCJKABCLM $.

    ${
      sqrt00d.2 $e |- ( ph -> ( sqrt ` A ) = 0 ) $.
      $( A square root is zero iff its argument is 0.  (Contributed by Mario
         Carneiro, 29-May-2016.) $)
      sqr00d $p |- ( ph -> A = 0 ) $=
        ( csqrt cfv c2 cexp co cc0 sqsqrtd sq0id eqtr3d ) ABEFZGHIBJABCKANDLM
        $.
    $}

    $( Square of value of absolute value function.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    absvalsqd $p |- ( ph -> ( ( abs ` A ) ^ 2 ) = ( A x. ( * ` A ) ) ) $=
      ( cc wcel cabs cfv c2 cexp co ccj cmul wceq absvalsq syl ) ABDEBFGHIJBBKG
      LJMCBNO $.

    $( Square of value of absolute value function.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    absvalsq2d $p |- ( ph -> ( ( abs ` A ) ^ 2 ) =
                    ( ( ( Re ` A ) ^ 2 ) + ( ( Im ` A ) ^ 2 ) ) ) $=
      ( cc wcel cabs cfv c2 cexp co cre cim caddc wceq absvalsq2 syl ) ABDEBFGH
      IJBKGHIJBLGHIJMJNCBOP $.

    $( Absolute value is nonnegative.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    absge0d $p |- ( ph -> 0 <_ ( abs ` A ) ) $=
      ( cc wcel cc0 cabs cfv cle wbr absge0 syl ) ABDEFBGHIJCBKL $.

    $( Value of absolute value function.  Definition 10.36 of [Gleason] p. 133.
       (Contributed by Mario Carneiro, 29-May-2016.) $)
    absval2d $p |- ( ph -> ( abs ` A ) =
                 ( sqrt ` ( ( ( Re ` A ) ^ 2 ) + ( ( Im ` A ) ^ 2 ) ) ) ) $=
      ( cc wcel cabs cfv cre c2 cexp co cim caddc csqrt wceq absval2 syl ) ABDE
      BFGBHGIJKBLGIJKMKNGOCBPQ $.

    ${
      abs00d.2 $e |- ( ph -> ( abs ` A ) = 0 ) $.
      $( The absolute value of a number is zero iff the number is zero.
         Proposition 10-3.7(c) of [Gleason] p. 133.  (Contributed by Mario
         Carneiro, 29-May-2016.) $)
      abs00d $p |- ( ph -> A = 0 ) $=
        ( cabs cfv cc0 wceq abs00ad mpbid ) ABEFGHBGHDABCIJ $.
    $}

    ${
      absne0d.2 $e |- ( ph -> A =/= 0 ) $.
      $( The absolute value of a number is zero iff the number is zero.
         Proposition 10-3.7(c) of [Gleason] p. 133.  (Contributed by Mario
         Carneiro, 29-May-2016.) $)
      absne0d $p |- ( ph -> ( abs ` A ) =/= 0 ) $=
        ( cabs cfv cc0 wne abs00ad necon3bid mpbird ) ABEFZGHBGHDALGBGABCIJK $.

      $( The absolute value of a nonzero number is a positive real.
         (Contributed by Mario Carneiro, 29-May-2016.) $)
      absrpcld $p |- ( ph -> ( abs ` A ) e. RR+ ) $=
        ( cc wcel cc0 wne cabs cfv crp absrpcl syl2anc ) ABEFBGHBIJKFCDBLM $.
    $}

    $( Absolute value of negative.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    absnegd $p |- ( ph -> ( abs ` -u A ) = ( abs ` A ) ) $=
      ( cc wcel cneg cabs cfv wceq absneg syl ) ABDEBFGHBGHICBJK $.

    $( The absolute value of a number and its conjugate are the same.
       Proposition 10-3.7(b) of [Gleason] p. 133.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    abscjd $p |- ( ph -> ( abs ` ( * ` A ) ) = ( abs ` A ) ) $=
      ( cc wcel ccj cfv cabs wceq abscj syl ) ABDEBFGHGBHGICBJK $.

    $( The real part of a number is less than or equal to its absolute value.
       Proposition 10-3.7(d) of [Gleason] p. 133.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    releabsd $p |- ( ph -> ( Re ` A ) <_ ( abs ` A ) ) $=
      ( cc wcel cre cfv cabs cle wbr releabs syl ) ABDEBFGBHGIJCBKL $.

    ${
      absexpd.2 $e |- ( ph -> N e. NN0 ) $.
      $( Absolute value of positive integer exponentiation.  (Contributed by
         Mario Carneiro, 29-May-2016.) $)
      absexpd $p |- ( ph ->
                    ( abs ` ( A ^ N ) ) = ( ( abs ` A ) ^ N ) ) $=
        ( cc wcel cn0 cexp co cabs cfv wceq absexp syl2anc ) ABFGCHGBCIJKLBKLCI
        JMDEBCNO $.
    $}

    abssubd.2 $e |- ( ph -> B e. CC ) $.
    $( Swapping order of subtraction doesn't change the absolute value.
       Example of [Apostol] p. 363.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    abssubd $p |- ( ph -> ( abs ` ( A - B ) ) = ( abs ` ( B - A ) ) ) $=
      ( cc wcel cmin co cabs cfv wceq abssub syl2anc ) ABFGCFGBCHIJKCBHIJKLDEBC
      MN $.

    $( Absolute value distributes over multiplication.  Proposition 10-3.7(f)
       of [Gleason] p. 133.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    absmuld $p |- ( ph ->
      ( abs ` ( A x. B ) ) = ( ( abs ` A ) x. ( abs ` B ) ) ) $=
      ( cc wcel cmul co cabs cfv wceq absmul syl2anc ) ABFGCFGBCHIJKBJKCJKHILDE
      BCMN $.

    ${
      absdivd.2 $e |- ( ph -> B =/= 0 ) $.
      $( Absolute value distributes over division.  (Contributed by Mario
         Carneiro, 29-May-2016.) $)
      absdivd $p |- ( ph ->
                    ( abs ` ( A / B ) ) = ( ( abs ` A ) / ( abs ` B ) ) ) $=
        ( cc wcel cc0 wne cdiv co cabs cfv wceq absdiv syl3anc ) ABGHCGHCIJBCKL
        MNBMNCMNKLODEFBCPQ $.
    $}

    $( Triangle inequality for absolute value.  Proposition 10-3.7(h) of
       [Gleason] p. 133.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    abstrid $p |- ( ph ->
      ( abs ` ( A + B ) ) <_ ( ( abs ` A ) + ( abs ` B ) ) ) $=
      ( cc wcel caddc co cabs cfv cle wbr abstri syl2anc ) ABFGCFGBCHIJKBJKCJKH
      ILMDEBCNO $.

    $( Difference of absolute values.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    abs2difd $p |- ( ph ->
      ( ( abs ` A ) - ( abs ` B ) ) <_ ( abs ` ( A - B ) ) ) $=
      ( cc wcel cabs cfv cmin co cle wbr abs2dif syl2anc ) ABFGCFGBHICHIJKBCJKH
      ILMDEBCNO $.

    $( Difference of absolute values.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    abs2dif2d $p |- ( ph ->
      ( abs ` ( A - B ) ) <_ ( ( abs ` A ) + ( abs ` B ) ) ) $=
      ( cc wcel cmin co cabs cfv caddc cle wbr abs2dif2 syl2anc ) ABFGCFGBCHIJK
      BJKCJKLIMNDEBCOP $.

    $( Absolute value of difference of absolute values.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    abs2difabsd $p |- ( ph ->
            ( abs ` ( ( abs ` A ) - ( abs ` B ) ) ) <_ ( abs ` ( A - B ) ) ) $=
      ( cc wcel cabs cfv cmin co cle wbr abs2difabs syl2anc ) ABFGCFGBHICHIJKHI
      BCJKHILMDEBCNO $.

    abs3difd.3 $e |- ( ph -> C e. CC ) $.
    $( Absolute value of differences around common element.  (Contributed by
       Mario Carneiro, 29-May-2016.) $)
    abs3difd $p |- ( ph -> ( abs ` ( A - B ) ) <_ ( ( abs ` ( A - C ) ) +
                  ( abs ` ( C - B ) ) ) ) $=
      ( cc wcel cmin co cabs cfv caddc cle wbr abs3dif syl3anc ) ABHICHIDHIBCJK
      LMBDJKLMDCJKLMNKOPEFGBCDQR $.

    abs3lemd.4 $e |- ( ph -> D e. RR ) $.
    abs3lemd.5 $e |- ( ph -> ( abs ` ( A - C ) ) < ( D / 2 ) ) $.
    abs3lemd.6 $e |- ( ph -> ( abs ` ( C - B ) ) < ( D / 2 ) ) $.
    $( Lemma involving absolute value of differences.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    abs3lemd $p |- ( ph -> ( abs ` ( A - B ) ) < D ) $=
      ( cmin co cabs cfv c2 clt wbr cc wcel cdiv cr wa abs3lem syl22anc mp2and
      wi ) ABDLMNOEPUAMZQRZDCLMNOUHQRZBCLMNOEQRZJKABSTCSTDSTEUBTUIUJUCUKUGFGHIB
      CDEUDUEUF $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Elementary limits and convergence
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Superior limit (lim sup)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c limsup $.

  $( Extend class notation to include the limsup function. $)
  clsp $a class limsup $.

$(
    df-limsupOLD1 $a |- limsup = { <. x , y >. | y = inf ( { z |
                  E. k e. ZZ ( ran ( x |` ( ZZ>= ` k ) ) C_ RR* /\
           z = sup ( ran ( x |` ( ZZ>= ` k ) ) , RR* , < ) ) } , RR* , < ) } $.

    df-limsupOLD2 $a |- limsup = { <. x , y >. | y = inf ( { z |
       E. k e. ZZ z = sup ( ( x " ( ZZ>= ` k ) ) , RR* , < ) } , RR* , < ) } $.
$)

  ${
    $d x k $.
    $( Define the superior limit of an infinite sequence of extended real
       numbers.  Definition 12-4.1 of [Gleason] p. 175.  See ~ limsupval for
       its value.  (Contributed by NM, 26-Oct-2005.)  (Revised by AV,
       11-Sep-2020.) $)
    df-limsup $a |- limsup = ( x e. _V |-> inf ( ran ( k e. RR |->
      sup ( ( ( x " ( k [,) +oo ) ) i^i RR* ) , RR* , < ) ) , RR* , < ) ) $.

    $d A w x y z $.  $d B w x y z $.  $d F x $.
    $( Ordering property of the superior limit function.  (Contributed by Mario
       Carneiro, 7-Sep-2014.)  (Revised by Mario Carneiro, 7-May-2016.) $)
    limsupgord $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) ->
      sup ( ( ( F " ( B [,) +oo ) ) i^i RR* ) , RR* , < ) <_
      sup ( ( ( F " ( A [,) +oo ) ) i^i RR* ) , RR* , < ) ) $=
      ( vx vy vz vw cr wcel cle wbr cv cpnf cico co cima cxr cin clt wss df-ico
      w3a csup wral rexr 3ad2ant1 simp3 xrletr ixxss1 syl2anc imass2 ssrin 3syl
      inss2 supxrcl ax-mp xrleid wb supxrleub mp2an mpbi ssralv mpisyl sylibr )
      AHIZBHIZABJKZUBZDLCAMNOZPZQRZQSUCZJKZDCBMNOZPZQRZUDZVPQSUCVLJKZVHVPVKTZVM
      DVKUDZVQVHVNVITZVOVJTVSVHAQIZVGWAVEVFWBVGAUEUFVEVFVGUGDEFGABMNJSJNJDEFUAZ
      WCABGLUHUIUJVNVICUKVOVJQULUMVLVLJKZVTVLQIZWDVKQTZWEVJQUNZVKUOUPZVLUQUPWFW
      EWDVTURWGWHDVKVLUSUTVAVMDVPVKVBVCVPQTWEVRVQURVOQUNWHDVPVLUSUTVD $.

    $d f k $.
    $( Closure of the superior limit.  (Contributed by NM, 26-Oct-2005.)
       (Revised by AV, 12-Sep-2020.) $)
    limsupcl $p |- ( F e. V -> ( limsup ` F ) e. RR* ) $=
      ( vf vk wcel cvv clsp cfv cxr elex cr cv cpnf cico co cima clt mp1i fmpti
      wss cin csup cmpt crn cinf df-limsup eqid inss2 supxrcl frn ax-mp infxrcl
      wf ffvelrni syl ) ABEAFEAGHIEABJFIAGCFIDKCLZDLZMNOPZIUAZIQUBZUCZUDZIQUEZG
      CDUFVBITZVCIEUPFEKIVAUMVDDKIUTVAVAUGUSITUTIEUQKEURIUHUSUIRSKIVAUJUKVBULRS
      UNUO $.

    $d F k $.  $d G x $.
    limsupval.1 $e |- G = ( k e. RR |->
      sup ( ( ( F " ( k [,) +oo ) ) i^i RR* ) , RR* , < ) ) $.
    $( The superior limit of an infinite sequence ` F ` of extended real
       numbers, which is the infimum of the set of suprema of all upper
       infinite subsequences of ` F ` .  Definition 12-4.1 of [Gleason] p. 175.
       (Contributed by NM, 26-Oct-2005.)  (Revised by AV, 12-Sep-2014.) $)
    limsupval $p |- ( F e. V -> ( limsup ` F ) = inf ( ran G , RR* , < ) ) $=
      ( vx wcel cvv clsp crn cxr clt cinf wceq cr cv cima cin csup cmpt elex co
      cfv cpnf cico imaeq1 ineq1d supeq1d mpteq2dv syl6eqr rneqd infeq1d xrltso
      df-limsup infex fvmpt syl ) BDGBHGBIUCCJZKLMZNBDUAFBAOFPZAPUDUEUBZQZKRZKL
      SZTZJZKLMUSHIUTBNZKVFURLVGVECVGVEAOBVAQZKRZKLSZTCVGAOVDVJVGKVCVILVGVBVHKU
      TBVAUFUGUHUIEUJUKULFAUNKURLUMUOUPUQ $.

    $( Closure of the superior limit function.  (Contributed by Mario Carneiro,
       7-Sep-2014.)  (Revised by Mario Carneiro, 7-May-2016.) $)
    limsupgf $p |- G : RR --> RR* $=
      ( cr cxr cv cpnf cico cima cin clt csup wss wcel inss2 supxrcl mp1i fmpti
      co ) AEFBAGZHITJZFKZFLMZCDUCFNUDFOUAEOUBFPUCQRS $.

    $d M k $.
    $( Value of the superior limit function.  (Contributed by Mario Carneiro,
       7-Sep-2014.)  (Revised by Mario Carneiro, 7-May-2016.) $)
    limsupgval $p |- ( M e. RR -> ( G ` M ) =
      sup ( ( ( F " ( M [,) +oo ) ) i^i RR* ) , RR* , < ) ) $=
      ( cv cpnf cico co cima cxr cin clt csup wceq oveq1 imaeq2d ineq1d supeq1d
      cr xrltso supex fvmpt ) ADBAFZGHIZJZKLZKMNBDGHIZJZKLZKMNTCUDDOZKUGUJMUKUF
      UIKUKUEUHBUDDGHPQRSEKUJMUAUBUC $.

    $d A j $.  $d B j $.  $d C j k x $.  $d F j $.
    $( The defining property of the superior limit function.  (Contributed by
       Mario Carneiro, 5-Sep-2014.)  (Revised by Mario Carneiro,
       7-May-2016.) $)
    limsupgle $p |- ( ( ( B C_ RR /\ F : B --> RR* ) /\ C e. RR /\ A e. RR* )
      -> ( ( G ` C ) <_ A <-> A. j e. B ( C <_ j -> ( F ` j ) <_ A ) ) ) $=
      ( vx cr wss cxr wa wcel cle wbr cin wral wi wceq wf w3a cpnf cico co cima
      cfv csup cv limsupgval 3ad2ant2 breq1d inss2 simp3 supxrleub sylancr cres
      clt wb cdm crn imassrn simp1r frn syl syl5ss df-ss sylib imadmres syl6eqr
      raleqdv wfn ffn fdm ineq2d dmres incom 3eqtr4g inss1 breq1 ralima syl2anc
      syl6eqss eleq2d syl6bb simpl2 simp1l sselda elicopnf baibd pm5.32da bitrd
      elin imbi1d impexp ralbidv2 3bitrd ) BJKZBLFUAZMZCJNZALNZUBZCGUGZAOPFCUCU
      DUEZUFZLQZLURUHZAOPZIUIZAOPZIXGRZCDUIZOPZXMFUGZAOPZSZDBRZXCXDXHAOXAWTXDXH
      TXBEFGCHUJUKULXCXGLKXBXIXLUSXFLUMWTXAXBUNIXGAUOUPXCXLXKIFFXEUQUTZUFZRZXPD
      XSRZXRXCXKIXGXTXCXGXFXTXCXFLKXGXFTXCXFFVAZLFXEVBXCWSYCLKWRWSXAXBVCZBLFVDV
      EVFXFLVGVHFXEVIVJVKXCFBVLZXSBKYAYBUSXCWSYEYDBLFVMVEXCXSBXEQZBXCXEFUTZQXEB
      QXSYFXCYGBXEXCWSYGBTYDBLFVNVEVOFXEVPBXEVQVRZBXEVSWCXKXPIDBXSFXJXOAOVTWAWB
      XCXPXQDXSBXCXMXSNZXPSXMBNZXNMZXPSYJXQSXCYIYKXPXCYIYJXMXENZMZYKXCYIXMYFNYM
      XCXSYFXMYHWDXMBXEWMWEXCYJYLXNXCYJMXAXMJNZYLXNUSWTXAXBYJWFXCBJXMWRWSXAXBWG
      WHXAYLYNXNCXMWIWJWBWKWLWNYJXNXPWOWEWPWQWQ $.

    $d G j $.
    $( The defining property of the superior limit.  (Contributed by Mario
       Carneiro, 7-Sep-2014.)  (Revised by AV, 12-Sep-2020.) $)
    limsuple $p |- ( ( B C_ RR /\ F : B --> RR* /\ A e. RR* ) ->
      ( A <_ ( limsup ` F ) <-> A. j e. RR A <_ ( G ` j ) ) ) $=
      ( vx cr wss cxr wf wcel cfv cle wbr cv wral cvv ax-mp w3a clsp cinf simp2
      crn clt wceq reex ssex 3ad2ant1 xrex a1i fex2 syl3anc limsupval breq2d wb
      syl limsupgf frn simp3 infxrgelb sylancr wfn ffn breq2 ralrn syl6bb bitrd
      ) BIJZBKELZAKMZUAZAEUBNZOPAFUEZKUFUCZOPZACQFNZOPZCIRZVMVNVPAOVMESMZVNVPUG
      VMVKBSMZKSMZWAVJVKVLUDVJVKWBVLBIUHUIUJWCVMUKULBKESSUMUNDEFSGUOURUPVMVQAHQ
      ZOPZHVORZVTVMVOKJZVLVQWFUQIKFLZWGDEFGUSZIKFUTTVJVKVLVAHVOAVBVCFIVDZWFVTUQ
      WHWJWIIKFVETWEVSHCIFWDVRAOVFVGTVHVI $.

    $( The defining property of the superior limit.  (Contributed by Mario
       Carneiro, 7-Sep-2014.)  (Revised by AV, 12-Sep-2020.) $)
    limsuplt $p |- ( ( B C_ RR /\ F : B --> RR* /\ A e. RR* ) ->
      ( ( limsup ` F ) < A <-> E. j e. RR ( G ` j ) < A ) ) $=
      ( cr wss cxr wcel cfv cle wbr wn wrex clt wb cvv xrltnle wf w3a clsp wral
      limsuple notbid rexnal syl6bbr simp2 reex ssex 3ad2ant1 xrex fex2 syl3anc
      a1i limsupcl syl simp3 syl2anc limsupgf ffvelrni syl2anr rexbidva 3bitr4d
      cv ) BHIZBJEUAZAJKZUBZAEUCLZMNZOZACVFZFLZMNZOZCHPZVKAQNZVOAQNZCHPVJVMVPCH
      UDZOVRVJVLWAABCDEFGUEUFVPCHUGUHVJVKJKZVIVSVMRVJESKZWBVJVHBSKZJSKZWCVGVHVI
      UIVGVHWDVIBHUJUKULWEVJUMUPBJESSUNUOESUQURVGVHVIUSZVKATUTVJVTVQCHVNHKVOJKV
      IVTVQRVJHJVNFDEFGVAVBWFVOATVCVDVE $.

    ${
      $d A k n x $.  $d G n $.  $d ph n x $.
      limsupval2.1 $e |- ( ph -> F e. V ) $.
      limsupval2.2 $e |- ( ph -> A C_ RR ) $.
      limsupval2.3 $e |- ( ph -> sup ( A , RR* , < ) = +oo ) $.
      $( The superior limit, relativized to an unbounded set.  (Contributed by
         Mario Carneiro, 7-Sep-2014.)  (Revised by AV, 12-Sep-2020.) $)
      limsupval2 $p |- ( ph -> ( limsup ` F )
                               = inf ( ( G " A ) , RR* , < ) ) $=
        ( vx vn cxr clt wcel wceq cle wbr wral cr clsp cfv crn cinf cima syl cv
        limsupval wss imassrn limsupgf frn ax-mp infxrlb ralrimiva ssralv mpsyl
        wf mp1i wb sstri infxrcl infxrgelb mp2an sylibr wrex csup ressxr syl6ss
        cpnf supxrunb1 mpbird wa sselda ad2ant2r ffvelrni ad2antlr wfn ad2antrr
        ffn simprl fnfvima syl3anc sylancr cico co cin simplr simprr limsupgord
        limsupgval 3brtr4d xrletrd rexlimdvaa ralimdva mpd breq2 ralrn xrletri3
        sylanbrc eqtrd ) ADUAUBZEUCZMNUDZEBUEZMNUDZADFOXBXDPHCDEFGUHUFAXDXFQRZX
        FXDQRZXDXFPZAXDKUGZQRZKXESZXGXEXCUIAXKKXCSZXLEBUJZXCMUIZXMATMEURZXOCDEG
        UKZTMEULUMZXOXKKXCXCXJUNUOUSXKKXEXCUPUQXEMUIZXDMOZXGXLUTXEXCMXNXRVAZXOX
        TXRXCVBUMZKXEXDVCVDVEAXFXJQRZKXCSZXHAXFLUGZEUBZQRZLTSZYDAYEXJQRZKBVFZLT
        SZYHAYKBMNVGVJPZJABMUIYKYLUTABTMIVHVILKBVKUFVLAYJYGLTAYETOZVMZYIYGKBYNX
        JBOZYIVMZVMZXFXJEUBZYFXSXFMOZYQYAXEVBZUSYQXJTOZYRMOAYOUUAYMYIABTXJIVNVO
        ZTMXJEXQVPUFYMYFMOAYPTMYEEXQVPVQYQXSYRXEOZXFYRQRYAYQETVRZBTUIZYOUUCXPUU
        DYQXQTMEVTZUSAUUEYMYPIVSYNYOYIWATBEXJWBWCXEYRUNWDYQDXJVJWEWFUEMWGMNVGZD
        YEVJWEWFUEMWGMNVGZYRYFQYQYMUUAYIUUGUUHQRAYMYPWHUUBYNYOYIWIYEXJDWJWCYQUU
        AYRUUGPUUBCDEXJGWKUFYMYFUUHPAYPCDEYEGWKVQWLWMWNWOWPUUDYDYHUTXPUUDXQUUFU
        MYCYGKLTEXJYFXFQWQWRUMVEXOYSXHYDUTXRXSYSYAYTUMZKXCXFVCVDVEXTYSXIXGXHVMU
        TYBUUIXDXFWSVDWTXA $.
    $}

    $d F a i m n r $.  $d G a i m n r $.  $d M a i m n r $.
    $d Z a i k m n r $.
    limsupgre.z $e |- Z = ( ZZ>= ` M ) $.
    $( If a sequence of real numbers has upper bounded limit supremum, then all
       the partial suprema are real.  (Contributed by Mario Carneiro,
       7-Sep-2014.)  (Revised by AV, 12-Sep-2020.) $)
    limsupgre $p |- ( ( M e. ZZ /\ F : Z --> RR /\ ( limsup ` F ) < +oo ) ->
      G : RR --> RR ) $=
      ( vi cz wcel cr cfv cpnf clt wbr cxr wa cle adantr syl2anc va vn vm vr wf
      clsp w3a cv cico co cima cin csup cvv xrltso supex cmpt limsupgval adantl
      a1i wceq wrex simpl3 wss wb cuz uzssz eqsstri zssre simpl2 ressxr sylancl
      sstri fss pnfxr limsuplt syl3anc mpbid cfl cfz wral fzfi elfzuz syl6eleqr
      cfn ffvelrn syl2an ralrimiva fimaxre3 sylancr cif simpr ad2antrr limsupgf
      ffvelrni syl simprl sseldi ifcld wi sselda xrleid limsupgle syl211anc imp
      r19.21bi xrmax1 ffvelrnda xrletr mpan2d syl6eleq flcld elfz5 flge biimpar
      mpd bitr4d simprr fveq2 breq1d rspcv xrmax2 lecasei mpbird ltpnfd simplrr
      sylc a1d breq1 ifboth xrlelttrd rexlimddv eqbrtrrd c0 wne crn imassrn frn
      syl5ss zred syl6ss df-ss sylib eqsstrd c1 caddc simpl1 flcl peano2zd max1
      cdm eluz2 syl3anbrc eleqtrrd fllep1 max2 letrd elicopnf mpbir2and imadisj
      fdm inelcm necon3bii sylibr eqnetrd supxrre1 eqeltrd fmpt2d ) DIJZEKBUEZB
      UFLMNOZUGZAUAKBAUHZMUIUJUKPULZPNUMZKCUNUVOUNJUVLUVMKJQPUVNNUOUPUTCAKUVOUQ
      VAUVLFUTUVLUAUHZKJZQZUVPCLZBUVPMUIUJZUKZPULZPNUMZKUVQUVSUWCVAUVLABCUVPFUR
      USZUVRUWCKJZUWCMNOZUVRUVSUWCMNUWDUVRUBUHZCLZMNOZUVSMNOZUBKUVRUVKUWIUBKVBZ
      UVIUVJUVKUVQVCUVREKVDZEPBUEZMPJZUVKUWKVEUWLUVREIKEDVFLZIGDVGVHZVIVMZUTUVR
      UVJKPVDUWMUVIUVJUVKUVQVJZVKEKPBVNVLZUWNUVRVOUTMEUBABCFVPVQVRUVRUWGKJZUWIQ
      ZQZUCUHZBLZUDUHZROZUCDUWGVSLZVTUJZWAZUWJUDKUXBUXHWEJUXDKJZUCUXHWAUXIUDKVB
      DUXGWBUXBUXJUCUXHUXBUVJUXCEJUXJUXCUXHJZUVRUVJUXAUWRSUXKUXCUWOEUXCDUXGWCGW
      DEKUXCBWFWGWHUDUCUXHUXDWIWJUXBUXEKJZUXIQZQZUVSUWHUXEROZUXEUWHWKZMUXNUVQUV
      SPJUVRUVQUXAUXMUVLUVQWLZWMZKPUVPCABCFWNZWOWPUXNUXOUXEUWHPUXNKPUXEVKUXBUXL
      UXIWQZWRZUXNUWTUWHPJZUXBUWTUXMUVRUWTUWIWQZSZKPUWGCUXSWOZWPZWSZUWNUXNVOUTU
      XNUVSUXPROZUVPHUHZROZUYIBLZUXPROZWTZHEWAZUXNUYMHEUXNUYIEJZQZUYLUYJUYPUYLU
      WGUYIUXBUWTUXMUYOUYCWMZUXNEKUYIUWLUXNUWQUTZXAUYPUWGUYIROZQUYKUWHROZUYLUYP
      UYSUYTUXNUYSUYTWTZHEUXNUWHUWHROZVUAHEWAZUXNUYBVUBUYFUWHXBWPUXNUWLUWMUWTUY
      BVUBVUCVEUYRUVRUWMUXAUXMUWSWMZUYDUYFUWHEUWGHABCFXCXDVRXFXEUYPUYTUYLWTUYSU
      YPUYTUWHUXPROZUYLUYPUYBUXEPJZVUEUYPUWTUYBUYQUYEWPZUXNVUFUYOUYASZUWHUXEXGT
      UYPUYKPJZUYBUXPPJZUYTVUEQUYLWTUXNEPUYIBVUDXHZVUGUXNVUJUYOUYGSZUYKUWHUXPXI
      VQXJSXPUYPUYIUWGROZQZUYKUXEROZUYLVUNUYIUXHJZUXIVUOUYPVUPVUMUYPVUPUYIUXGRO
      ZVUMUYPUYIUWOJUXGIJZVUPVUQVEUYPUYIEUWOUXNUYOWLZGXKUXNVURUYOUXNUWGUYDXLSUY
      IDUXGXMTUYPUWTUYIIJVUMVUQVEUYQUYPEIUYIUWPVUSWRUWGUYIXNTXQXOUXNUXIUYOVUMUX
      BUXLUXIXRWMUXFVUOUCUYIUXHUXCUYIVAUXDUYKUXERUXCUYIBXSXTYAYGUYPVUOUYLWTVUMU
      YPVUOUXEUXPROZUYLUXNVUTUYOUXNUYBVUFVUTUYFUYAUWHUXEYBTSUYPVUIVUFVUJVUOVUTQ
      UYLWTVUKVUHVULUYKUXEUXPXIVQXJSXPYCYHWHUXNUWLUWMUVQVUJUYHUYNVEUYRVUDUXRUYG
      UXPEUVPHABCFXCXDYDUXNUXEMNOZUWIUXPMNOZUXNUXEUXTYEUVRUWTUWIUXMYFUXOVVAUWIV
      VBUXEUWHUXEUXPMNYIUWHUXPMNYIYJTYKYLYLYMUVRUWBKVDUWBYNYOUWEUWFVEUVRUWBUWAK
      UVRUWAPVDUWBUWAVAUVRUWAKPUVRUWABYPZKBUVTYQUVRUVJVVCKVDUWREKBYRWPYSZVKUUAU
      WAPUUBUUCZVVDUUDUVRUWBUWAYNVVEUVRBUUKZUVTULZYNYOZUWAYNYOUVRDUVPVSLZUUEUUF
      UJZROZVVJDWKZVVFJVVLUVTJZVVHUVRVVLEVVFUVRVVLUWOEUVRUVIVVLIJDVVLROZVVLUWOJ
      UVIUVJUVKUVQUUGZUVRVVKVVJDIUVRVVIUVQVVIIJUVLUVPUUHUSUUIZVVOWSZUVRDKJZVVJK
      JZVVNUVRDVVOYTZUVRVVJVVPYTZDVVJUUJTDVVLUULUUMGWDUVRUVJVVFEVAUWREKBUVAWPUU
      NUVRVVMVVLKJZUVPVVLROZUVRVVLVVQYTZUVRUVPVVJVVLUXQVWAVWDUVQUVPVVJROUVLUVPU
      UOUSUVRVVRVVSVVJVVLROVVTVWADVVJUUPTUUQUVQVVMVWBVWCQVEUVLUVPVVLUURUSUUSVVL
      VVFUVTUVBTUWAYNVVGYNBUVTUUTUVCUVDUVEUWBUVFTYDUVGUVH $.

  $}

  ${
    $d j k m A $.  $d j k m n B $.  $d j k m n F $.  $d j k m ph $.
    limsupbnd.1 $e |- ( ph -> B C_ RR ) $.
    limsupbnd.2 $e |- ( ph -> F : B --> RR* ) $.
    limsupbnd.3 $e |- ( ph -> A e. RR* ) $.
    ${
      limsupbnd1.4 $e |- ( ph ->
        E. k e. RR A. j e. B ( k <_ j -> ( F ` j ) <_ A ) ) $.
      $( If a sequence is eventually at most ` A ` , then the limsup is also at
         most ` A ` .  (The converse is only true if the less or equal is
         replaced by strictly less than; consider the sequence ` 1 / n ` which
         is never less or equal to zero even though the limsup is.)
         (Contributed by Mario Carneiro, 7-Sep-2014.)  (Revised by AV,
         12-Sep-2020.) $)
      limsupbnd1 $p |- ( ph -> ( limsup ` F ) <_ A ) $=
        ( vn cv cle wbr cfv cr wcel cxr adantr cvv wi wral wrex clsp wa cpnf co
        cico cima cin clt csup cmpt wf simpr eqid limsupgle syl211anc reex ssex
        wss wb syl xrex fex2 syl3anc limsupcl xrleid limsuple r19.21bi limsupgf
        a1i mpbid ffvelrnda xrletr mpand sylbird rexlimdva mpd ) AELZDLZMNWAFOB
        MNUADCUBZEPUCFUDOZBMNZJAWBWDEPAVTPQZUEZWBVTKPFKLUFUHUGUIRUJRUKULUMZOZBM
        NZWDWFCPVAZCRFUNZWEBRQZWIWBVBAWJWEGSAWKWEHSAWEUOAWLWEISZBCVTDKFWGWGUPZU
        QURWFWCWHMNZWIWDAWOEPAWCWCMNZWOEPUBZAWCRQZWPAFTQZWRAWKCTQZRTQZWSHAWJWTG
        CPUSUTVCXAAVDVLCRFTTVEVFFTVGVCZWCVHVCAWJWKWRWPWQVBGHXBWCCEKFWGWNVIVFVMV
        JWFWRWHRQWLWOWIUEWDUAAWRWEXBSAPRVTWGPRWGUNAKFWGWNVKVLVNWMWCWHBVOVFVPVQV
        RVS $.
    $}

    limsupbnd2.4 $e |- ( ph -> sup ( B , RR* , < ) = +oo ) $.
    limsupbnd2.5 $e |- ( ph ->
      E. k e. RR A. j e. B ( k <_ j -> A <_ ( F ` j ) ) ) $.
    $( If a sequence is eventually greater than ` A ` , then the limsup is also
       greater than ` A ` .  (Contributed by Mario Carneiro, 7-Sep-2014.)
       (Revised by AV, 12-Sep-2020.) $)
    limsupbnd2 $p |- ( ph -> A <_ ( limsup ` F ) ) $=
      ( vm vn cle wbr cr cxr wi wcel wa clsp cfv cv cpnf cico cima cin clt csup
      co cmpt wral wrex cif wceq wss wb ressxr syl6ss supxrunb1 syl mpbird ifcl
      breq1 rexbidv rspccva syl2an r19.29 simplrr simprl adantr syl2anc syl3anc
      max1 sselda letr imim1d impd max2 adantld limsupgf ffvelrni adantl xrleid
      mpand eqid adantrr limsupgle syl211anc mpbid r19.21bi syld jcad ffvelrnda
      wf ad2antrr xrletr rexlimdva syl5 mpan2d anassrs ralrimdva mpd limsuple )
      ABFUAUBNOZBLUCZMPFMUCZUDUEUJUFQUGQUHUIUKZUBZNOZLPULZAEUCZDUCZNOZBXMFUBZNO
      ZRZDCULZEPUMZXKKAXSXJLPAXFPSZTZXRXJEPAXTXLPSZXRXJRAXTYBTZTZXRXLXFNOZXFXLU
      NZXMNOZDCUMZXJAXGXMNOZDCUMZMPULZYFPSZYHYCAYKCQUHUIUDUOZJACQUPYKYMUQACPQGU
      RUSMDCUTVAVBYEXFXLPVCZYJYHMYFPXGYFUOYIYGDCXGYFXMNVDVEVFVGXRYHTXQYGTZDCUMY
      DXJXQYGDCVHYDYOXJDCYDXMCSZTZYOXPXOXINOZTZXJYQYOXPYRYQXQYGXPYQYGXNXPYQXLYF
      NOZYGXNYQYBXTYTAXTYBYPVIZYDXTYPAXTYBVJZVKZXLXFVNVLYQYBYLXMPSZYTYGTXNRUUAY
      QXTYBYLUUCUUAYNVLZYDCPXMACPUPZYCGVKZVOZXLYFXMVPVMWEVQVRYQYOXFXMNOZYRYQYGU
      UIXQYQXFYFNOZYGUUIYQYBXTUUJUUAUUCXLXFVSVLYQXTYLUUDUUJYGTUUIRUUCUUEUUHXFYF
      XMVPVMWEVTYDUUIYRRZDCYDXIXINOZUUKDCULZAXTUULYBYAXIQSZUULXTUUNAPQXFXHMFXHX
      HWFZWAWBZWCXIWDVAWGYDUUFCQFWOZXTUUNUULUUMUQUUGAUUQYCHVKZUUBYDXTUUNUUBUUPV
      AZXICXFDMFXHUUOWHWIWJWKWLWMYQBQSZXOQSUUNYSXJRAUUTYCYPIWPYDCQXMFUURWNYDUUN
      YPUUSVKBXOXIWQVMWLWRWSWTXAWRXBXCAUUFUUQUUTXEXKUQGHIBCLMFXHUUOXDVMVB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Limits
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ~~> $.  $( Limit arrow. $)
  $c ~~>r $.  $( Limit arrow with subscript r $)
  $c O(1) $.  $( big-O of one $)
  $c <_O(1) $.  $( less than or equal to big-O of one $)

  $( Extend class notation with convergence relation for limits. $)
  cli $a class ~~> $.

  $( Extend class notation with real convergence relation for limits. $)
  crli $a class ~~>r $.

  $( Extend class notation with the set of all eventually bounded functions. $)
  co1 $a class O(1) $.

  $( Extend class notation with the set of all eventually upper bounded
     functions. $)
  clo1 $a class <_O(1) $.

  ${
    $d j k w x y z f m $.
    $( Define the limit relation for complex number sequences.  See ~ clim for
       its relational expression.  (Contributed by NM, 28-Aug-2005.) $)
    df-clim $a |- ~~> = { <. f , y >. | ( y e. CC /\
        A. x e. RR+ E. j e. ZZ A. k e. ( ZZ>= ` j )
          ( ( f ` k ) e. CC /\ ( abs ` ( ( f ` k ) - y ) ) < x ) ) } $.

    $( Define the limit relation for partial functions on the reals.  See
       ~ rlim for its relational expression.  (Contributed by Mario Carneiro,
       16-Sep-2014.) $)
    df-rlim $a |- ~~>r = { <. f , x >. | ( ( f e. ( CC ^pm RR ) /\ x e. CC ) /\
      A. y e. RR+ E. z e. RR A. w e. dom f ( z <_ w ->
      ( abs ` ( ( f ` w ) - x ) ) < y ) ) } $.

    $( Define the set of eventually bounded functions.  We don't bother to
       build the full conception of big-O notation, because we can represent
       any big-O in terms of ` O(1) ` and division, and any little-O in terms
       of a limit and division.  We could also use limsup for this, but it only
       works on integer sequences, while this will work for real sequences or
       integer sequences.  (Contributed by Mario Carneiro, 15-Sep-2014.) $)
    df-o1 $a |- O(1) = { f e. ( CC ^pm RR ) | E. x e. RR E. m e. RR
      A. y e. ( dom f i^i ( x [,) +oo ) ) ( abs ` ( f ` y ) ) <_ m } $.

    $( Define the set of eventually upper bounded real functions.  This fills a
       gap in ` O(1) ` coverage, to express statements like
       ` f ( x ) <_ g ( x ) + O ( x ) ` via
       ` ( x e. RR+ |-> ( f ( x ) - g ( x ) ) / x ) e. <_O(1) ` .  (Contributed
       by Mario Carneiro, 25-May-2016.) $)
    df-lo1 $a |- <_O(1) = { f e. ( RR ^pm RR ) | E. x e. RR E. m e. RR
      A. y e. ( dom f i^i ( x [,) +oo ) ) ( f ` y ) <_ m } $.

    $( The limit relation is a relation.  (Contributed by NM, 28-Aug-2005.)
       (Revised by Mario Carneiro, 31-Jan-2014.) $)
    climrel $p |- Rel ~~> $=
      ( vy vk vf vx vj cv cc wcel cfv cmin co cabs clt wbr wa cuz wral wrex crp
      cz cli df-clim relopabi ) AFZGHBFCFIZGHUEUDJKLIDFMNOBEFPIQETRDSQOCAUADACE
      BUBUC $.

    $( The limit relation is a relation.  (Contributed by Mario Carneiro,
       24-Sep-2014.) $)
    rlimrel $p |- Rel ~~>r $=
      ( vf vx vz vw vy cv cc cr cpm co wcel wa cle wbr cfv cmin cabs clt wral
      wi cdm wrex crp crli df-rlim relopabi ) AFZGHIJKBFZGKLCFDFZMNUIUGOUHPJQOE
      FRNTDUGUASCHUBEUCSLABUDBECDAUEUF $.
  $}

  ${
    $d f j k x y A $.  $d f j k x y F $.  $d j k x ph $.
    clim.1 $e |- ( ph -> F e. V ) $.
    clim.3 $e |- ( ( ph /\ k e. ZZ ) -> ( F ` k ) = B ) $.
    $( Express the predicate:  The limit of complex number sequence ` F ` is
       ` A ` , or ` F ` converges to ` A ` .  This means that for any real
       ` x ` , no matter how small, there always exists an integer ` j ` such
       that the absolute difference of any later complex number in the sequence
       and the limit is less than ` x ` .  (Contributed by NM, 28-Aug-2005.)
       (Revised by Mario Carneiro, 28-Apr-2015.) $)
    clim $p |- ( ph -> ( F ~~> A <-> ( A e. CC /\ A. x e. RR+ E. j e. ZZ
           A. k e. ( ZZ>= ` j ) ( B e. CC /\ ( abs ` ( B - A ) ) < x ) ) ) ) $=
      ( cc wcel cv cfv cmin cabs clt wa wral cz vy vf cli wbr co cuz crp cvv wi
      wrex climrel brrelex2i a1i elex adantr wb simpr eleq1d fveq1 oveq12 sylan
      fveq2d breq1d anbi12d ralbidv rexbidv df-clim brabga ex pm5.21ndd eluzelz
      wceq syl oveq1d sylan2 ralbidva anbi2d bitrd ) AGCUCUDZCKLZFMZGNZKLZWBCOU
      EZPNZBMZQUDZRZFEMZUFNZSZETUJZBUGSZRZVTDKLZDCOUEZPNZWFQUDZRZFWJSZETUJZBUGS
      ZRACUHLZVSWNVSXCUIAGCUCUKULUMWNXCUIAVTXCWMCKUNUOUMAGHLZXCVSWNUPZUIIXDXCXE
      UAMZKLZWAUBMZNZKLZXIXFOUEZPNZWFQUDZRZFWJSZETUJZBUGSZRWNUBUAGCUCHUHXHGVLZX
      FCVLZRZXGVTXQWMXTXFCKXRXSUQURXTXPWLBUGXTXOWKETXTXNWHFWJXTXJWCXMWGXTXIWBKX
      RXIWBVLZXSWAXHGUSZUOURXTXLWEWFQXTXKWDPXRYAXSXKWDVLYBXIWBXFCOUTVAVBVCVDVEV
      FVEVDBUAUBEFVGVHVIVMVJAWMXBVTAWLXABUGAWKWTETAWHWSFWJWAWJLAWATLZWHWSUPWIWA
      VKAYCRZWCWOWGWRYDWBDKJURYDWEWQWFQYDWDWPPYDWBDCOJVNVBVCVDVOVPVFVEVQVR $.
  $}

  ${
    $d z A $.  $d f w x y z C $.  $d f w x y z F $.  $d x y z ph $.
    rlim.1 $e |- ( ph -> F : A --> CC ) $.
    rlim.2 $e |- ( ph -> A C_ RR ) $.
    rlim.4 $e |- ( ( ph /\ z e. A ) -> ( F ` z ) = B ) $.
    $( Express the predicate:  The limit of complex number function ` F ` is
       ` C ` , or ` F ` converges to ` C ` , in the real sense.  This means
       that for any real ` x ` , no matter how small, there always exists a
       number ` y ` such that the absolute difference of any number in the
       function beyond ` y ` and the limit is less than ` x ` .  (Contributed
       by Mario Carneiro, 16-Sep-2014.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    rlim $p |- ( ph -> ( F ~~>r C <-> ( C e. CC /\ A. x e. RR+ E. y e. RR
           A. z e. A ( y <_ z -> ( abs ` ( B - C ) ) < x ) ) ) ) $=
      ( wbr cc cr wcel cv wi wral wa cvv vf vw crli cpm co cle cfv cmin clt cdm
      cabs wrex crp rlimrel brrelex2i a1i elex ad2antrl wb wss cnex reex elpm2r
      mpanl12 syl2anc wceq eleq1 bi2anan9 simpl dmeqd fveq1 oveq12 sylan fveq2d
      wf breq1d imbi2d raleqbidv rexbidv ralbidv anbi12d brabga anass syl6bb ex
      df-rlim syl pm5.21ndd biantrurd fdm raleqdv oveq1d ralbidva bitrd 3bitr2d
      anbi2d ) AHGUCLZHMNUDUEZOZGMOZCPDPZUFLZXAHUGZGUHUEZUKUGZBPZUILZQZDHUJZRZC
      NULZBUMRZSZSZXMWTXBFGUHUEZUKUGZXFUILZQZDERZCNULZBUMRZSAGTOZWQXNWQYBQAHGUC
      UNUOUPXNYBQAWTYBWSXLGMUQURUPAWSYBWQXNUSZQAEMHVOZENUTZWSIJMTONTOYDYESWSVAV
      BMNEHTTVCVDVEZWSYBYCWSYBSWQWSWTSZXLSZXNUAPZWROZUBPZMOZSZXBXAYIUGZYKUHUEZU
      KUGZXFUILZQZDYIUJZRZCNULZBUMRZSYHUAUBHGUCWRTYIHVFZYKGVFZSZYMYGUUBXLUUCYJW
      SUUDYLWTYIHWRVGYKGMVGVHUUEUUAXKBUMUUEYTXJCNUUEYRXHDYSXIUUEYIHUUCUUDVIVJUU
      EYQXGXBUUEYPXEXFUIUUEYOXDUKUUCYNXCVFUUDYOXDVFXAYIHVKYNXCYKGUHVLVMVNVPVQVR
      VSVTWAUBBCDUAWFWBWSWTXLWCWDWEWGWHAWSXMYFWIAXLYAWTAXKXTBUMAXJXSCNAXJXHDERX
      SAXHDXIEAYDXIEVFIEMHWJWGWKAXHXRDEAXAEOSZXGXQXBUUFXEXPXFUIUUFXDXOUKUUFXCFG
      UHKWLVNVPVQWMWNVSVTWPWO $.
  $}

  ${
    $d w x y z A $.  $d w x y B $.  $d w x y z C $.  $d w x y ph $.
    $d w y z D $.
    rlim2.1 $e |- ( ph -> A. z e. A B e. CC ) $.
    rlim2.2 $e |- ( ph -> A C_ RR ) $.
    rlim2.3 $e |- ( ph -> C e. CC ) $.
    $( Rewrite ~ rlim for a mapping operation.  (Contributed by Mario Carneiro,
       16-Sep-2014.)  (Revised by Mario Carneiro, 28-Feb-2015.) $)
    rlim2 $p |- ( ph -> ( ( z e. A |-> B ) ~~>r C <-> A. x e. RR+ E. y e. RR
           A. z e. A ( y <_ z -> ( abs ` ( B - C ) ) < x ) ) ) $=
      ( vw wbr cc wcel cfv cmin cabs clt wral nfcv cmpt crli cv cle co wrex crp
      wi cr wa eqid fmpt sylib eqidd rlim biantrurd nfv nffvmpt1 nfov nffv nfbr
      wf nfim weq breq2 fveq2 oveq1d fveq2d breq1d imbi12d cbvral fvmpt2 imbi2d
      wb ralimiaa ralbi 3syl syl5bb rexbidv ralbidv 3bitr2d ) ADEFUAZGUBLGMNZCU
      CZKUCZUDLZWEWBOZGPUEZQOZBUCZRLZUHZKESZCUIUFZBUGSZUJWOWDDUCZUDLZFGPUEZQOZW
      JRLZUHZDESZCUIUFZBUGSABCKEWGGWBAFMNZDESZEMWBVBHDEMFWBWBUKZULUMIAWEENUJWGU
      NUOAWCWOJUPAWNXCBUGAWMXBCUIWMWQWPWBOZGPUEZQOZWJRLZUHZDESZAXBWLXKKDEWFWKDW
      FDUQDWIWJRDWHQDQTDWGGPDEFWEURDPTDGTUSUTDRTDWJTVAVCXKKUQKDVDZWFWQWKXJWEWPW
      DUDVEXMWIXIWJRXMWHXHQXMWGXGGPWEWPWBVFVGVHVIVJVKAXEXKXAVNZDESXLXBVNHXDXNDE
      WPENXDUJZXJWTWQXOXIWSWJRXOXHWRQXOXGFGPDEFMWBXFVLVGVHVIVMVOXKXADEVPVQVRVSV
      TWA $.

    $( Use strictly less-than in place of less equal in the real limit
       predicate.  (Contributed by Mario Carneiro, 18-Sep-2014.) $)
    rlim2lt $p |- ( ph -> ( ( z e. A |-> B ) ~~>r C <-> A. x e. RR+ E. y e. RR
           A. z e. A ( y < z -> ( abs ` ( B - C ) ) < x ) ) ) $=
      ( vw wbr cv wi wral cr crp cle wcel wa cmpt crli clt cmin cabs wrex rlim2
      co cfv wss simplr simpl sselda ltle syl2anc imim1d ralimdva sylan ralimdv
      reximdva sylbid c1 caddc peano2re adantl ltp1 ad2antlr syl3anc mpand wceq
      ltletr breq1 imbi1d ralbidv rspcev syl6an rexlimdva sylibrd impbid ) ADEF
      UAGUBLZCMZDMZUCLZFGUDUHUEUIBMUCLZNZDEOZCPUFZBQOZAVTWAWBRLZWDNZDEOZCPUFZBQ
      OWHABCDEFGHIJUGAWLWGBQAWKWFCPAEPUJZWAPSZWKWFNIWMWNTZWJWEDEWOWBESZTZWCWIWD
      WQWNWBPSZWCWINWMWNWPUKZWOEPWBWMWNULUMZWAWBUNUOUPUQURUTUSVAAWHKMZWBRLZWDNZ
      DEOZKPUFZBQOVTAWGXEBQAWFXECPAWNTWAVBVCUHZPSZWFXFWBRLZWDNZDEOZXEWNXGAWAVDZ
      VEAWMWNWFXJNIWOWEXIDEWQXHWCWDWQWAXFUCLZXHWCWNXLWMWPWAVFVGWQWNXGWRXLXHTWCN
      WSWNXGWMWPXKVGWTWAXFWBVKVHVIUPUQURXDXJKXFPXAXFVJZXCXIDEXMXBXHWDXAXFWBRVLV
      MVNVOVPVQUSABKDEFGHIJUGVRVS $.

    rlim3.4 $e |- ( ph -> D e. RR ) $.
    $( Restrict the range of the domain bound to reals greater than some
       ` D e. RR ` .  (Contributed by Mario Carneiro, 16-Sep-2014.) $)
    rlim3 $p |- ( ph -> ( ( z e. A |-> B ) ~~>r C <-> A. x e. RR+
   E. y e. ( D [,) +oo ) A. z e. A ( y <_ z -> ( abs ` ( B - C ) ) < x ) ) ) $=
      ( wbr cle wi wral crp cr wcel wa vw cmpt crli cmin cabs cfv clt cpnf cico
      cv co wrex rlim2 cif simpr adantr ifcld max1 sylan elicopnf syl mpbir2and
      wb wss jca simpllr simplr max2 syl2anc simpll sselda syl3anc mpand imim1d
      letr ralimdva breq1 imbi1d ralbidv rspcev syl6an rexlimdva ralimdv sylbid
      wceq cxr pnfxr icossre sylancl ssrexv sylibrd impbid ) ADEFUBGUCMZCUJZDUJ
      ZNMZFGUDUKUEUFBUJUGMZOZDEPZCHUHUIUKZULZBQPZAWMUAUJZWONMZWQOZDEPZUARULZBQP
      XBABUADEFGIJKUMAXGXABQAXFXAUARAXCRSZTZHXCNMZXCHUNZWTSZXFXKWONMZWQOZDEPZXA
      XIXLXKRSZHXKNMZXIXJXCHRAXHUOAHRSZXHLUPZUQAXRXHXQLHXCURUSXIXRXLXPXQTVCXSHX
      KUTVAVBAERVDZXRTZXHXFXOOAXTXRJLVEYAXHTZXEXNDEYBWOESZTZXMXDWQYDXCXKNMZXMXD
      YDXRXHYEXTXRXHYCVFZYAXHYCVGZHXCVHVIYDXHXPWORSYEXMTXDOYGYDXJXCHRYGYFUQYBER
      WOXTXRXHVJVKXCXKWOVOVLVMVNVPUSWSXOCXKWTWNXKWEZWRXNDEYHWPXMWQWNXKWONVQVRVS
      VTWAWBWCWDAXBWSCRULZBQPWMAXAYIBQAWTRVDZXAYIOAXRUHWFSYJLWGHUHWHWIWSCWTRWJV
      AWCABCDEFGIJKUMWKWL $.
  $}

  ${
    $d f w x y z $.  $d j k x y z A $.  $d j k x y z F $.
    $( Closure of the limit of a sequence of complex numbers.  (Contributed by
       NM, 28-Aug-2005.)  (Revised by Mario Carneiro, 28-Apr-2015.) $)
    climcl $p |- ( F ~~> A -> A e. CC ) $=
      ( vk vx vj cli wbr cc wcel cv cfv cmin co cabs clt wa cuz wral cz wrex
      crp cvv climrel brrelexi eqidd clim ibi simpld ) BAFGZAHIZCJZBKZHIULALMNK
      DJOGPCEJQKRESTDUARZUIUJUMPUIDAULECBUBBAFUCUDUIUKSIPULUEUFUGUH $.

    $( Closure of a function with a limit in the complex numbers.  (Contributed
       by Mario Carneiro, 16-Sep-2014.) $)
    rlimpm $p |- ( F ~~>r A -> F e. ( CC ^pm RR ) ) $=
      ( vf vx vz vw vy crli wbr cdm cc cr cpm co wss cv wcel wa cfv wral cxp wi
      cle cmin cabs clt wrex crp copab df-rlim opabssxp dmss ax-mp dmxpss sstri
      eqsstri rlimrel releldmi sseldi ) BAHIHJZKLMNZBUTVAKUAZJZVAHVBOUTVCOHCPZV
      AQDPZKQREPFPZUCIVFVDSVEUDNUESGPUFIUBFVDJTELUGGUHTZRCDUIVBDGEFCUJVGCDVAKUK
      UPHVBULUMVAKUNUOBAHUQURUS $.

    $( Closure of a function with a limit in the complex numbers.  (Contributed
       by Mario Carneiro, 16-Sep-2014.) $)
    rlimf $p |- ( F ~~>r A -> F : dom F --> CC ) $=
      ( crli wbr cc cr cpm co wcel cdm rlimpm wss cnex reex elpm2 simplbi syl
      wf ) BACDBEFGHIZBJZEBRZABKSUATFLEFBMNOPQ $.

    $( Domain closure of a function with a limit in the complex numbers.
       (Contributed by Mario Carneiro, 16-Sep-2014.) $)
    rlimss $p |- ( F ~~>r A -> dom F C_ RR ) $=
      ( crli wbr cc cr cpm co wcel cdm wss rlimpm cnex reex elpm2 simprbi syl
      wf ) BACDBEFGHIZBJZFKZABLSTEBRUAEFBMNOPQ $.

    $( Closure of the limit of a sequence of complex numbers.  (Contributed by
       Mario Carneiro, 16-Sep-2014.)  (Revised by Mario Carneiro,
       28-Apr-2015.) $)
    rlimcl $p |- ( F ~~>r A -> A e. CC ) $=
      ( vz vx vy crli wbr cc wcel cv cle cfv cmin co cabs clt wi cdm wral wa cr
      wrex crp rlimf rlimss eqidd rlim ibi simpld ) BAFGZAHIZCJDJZKGULBLZAMNOLE
      JPGQDBRZSCUAUBEUCSZUJUKUOTUJECDUNUMABABUDABUEUJULUNITUMUFUGUHUI $.
  $}

  ${
    $d j k x A $.  $d j k x F $.  $d j M $.  $d j k x ph $.  $d j k Z $.
    clim2.1 $e |- Z = ( ZZ>= ` M ) $.
    clim2.2 $e |- ( ph -> M e. ZZ ) $.
    clim2.3 $e |- ( ph -> F e. V ) $.
    clim2.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = B ) $.
    $( Express the predicate:  The limit of complex number sequence ` F ` is
       ` A ` , or ` F ` converges to ` A ` , with more general quantifier
       restrictions than ~ clim .  (Contributed by NM, 6-Jan-2007.)  (Revised
       by Mario Carneiro, 31-Jan-2014.) $)
    clim2 $p |- ( ph -> ( F ~~> A <-> ( A e. CC /\ A. x e. RR+ E. j e. Z
           A. k e. ( ZZ>= ` j ) ( B e. CC /\ ( abs ` ( B - A ) ) < x ) ) ) ) $=
      ( wbr cc wcel cfv wa wral cli cv cmin co cabs clt cuz wrex crp eqidd clim
      cz wb uztrn2 eleq1d oveq1d fveq2d breq1d anbi12d sylan2 ralbidva rexbidva
      anassrs rexuz3 syl bitr3d ralbidv anbi2d bitr4d ) AGCUAOCPQZFUBZGRZPQZVLC
      UCUDZUERZBUBZUFOZSZFEUBZUGRZTZEULUHZBUITZSVJDPQZDCUCUDZUERZVPUFOZSZFVTTZE
      JUHZBUITZSABCVLEFGIMAVKULQSVLUJUKAWKWCVJAWJWBBUIAWAEJUHZWJWBAWAWIEJAVSJQZ
      SVRWHFVTAWMVKVTQZVRWHUMZWMWNSAVKJQZWOHVKVSJKUNAWPSZVMWDVQWGWQVLDPNUOWQVOW
      FVPUFWQVNWEUEWQVLDCUCNUPUQURUSUTVCVAVBAHULQWLWBUMLVREFHJKVDVEVFVGVHVI $.

    clim2c.5 $e |- ( ph -> A e. CC ) $.
    clim2c.6 $e |- ( ( ph /\ k e. Z ) -> B e. CC ) $.
    $( Express the predicate ` F ` converges to ` A ` .  (Contributed by NM,
       24-Feb-2008.)  (Revised by Mario Carneiro, 31-Jan-2014.) $)
    clim2c $p |- ( ph -> ( F ~~> A <->
      A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j ) ( abs ` ( B - A ) ) < x ) ) $=
      ( wcel cv wa wral cmin cabs cfv clt wbr cuz wrex crp cli biantrurd uztrn2
      cc co wb sylan2 anassrs ralbidva rexbidva ralbidv clim2 3bitr4rd ) ADULQZ
      DCUAUMUBUCBRUDUEZSZFERZUFUCZTZEJUGZBUHTZCULQZVISVCFVFTZEJUGZBUHTGCUIUEAVJ
      VIOUJAVLVHBUHAVKVGEJAVEJQZSVCVDFVFAVMFRZVFQZVCVDUNZVMVOSAVNJQZVPHVNVEJKUK
      AVQSVBVCPUJUOUPUQURUSABCDEFGHIJKLMNUTVA $.
  $}

  ${
    $d j k x F $.  $d j M $.  $d j k x ph $.  $d j k Z $.
    clim0.1 $e |- Z = ( ZZ>= ` M ) $.
    clim0.2 $e |- ( ph -> M e. ZZ ) $.
    clim0.3 $e |- ( ph -> F e. V ) $.
    clim0.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = B ) $.
    $( Express the predicate ` F ` converges to ` 0 ` .  (Contributed by NM,
       24-Feb-2008.)  (Revised by Mario Carneiro, 31-Jan-2014.) $)
    clim0 $p |- ( ph -> ( F ~~> 0 <-> A. x e. RR+ E. j e. Z
                  A. k e. ( ZZ>= ` j ) ( B e. CC /\ ( abs ` B ) < x ) ) ) $=
      ( cc0 wbr cabs cfv clt wa wral cli cc wcel cmin co cuz wrex crp clim2 0cn
      cv biantrur subid1 fveq2d breq1d pm5.32i ralbii rexbii bitr3i syl6bb ) AF
      NUAONUBUCZCUBUCZCNUDUEZPQZBUKZROZSZEDUKUFQZTZDIUGZBUHTZSZVBCPQZVEROZSZEVH
      TZDIUGZBUHTZABNCDEFGHIJKLMUIVLVKVRVAVKUJULVJVQBUHVIVPDIVGVOEVHVBVFVNVBVDV
      MVERVBVCCPCUMUNUOUPUQURUQUSUT $.

    clim0c.6 $e |- ( ( ph /\ k e. Z ) -> B e. CC ) $.
    $( Express the predicate ` F ` converges to ` 0 ` .  (Contributed by NM,
       24-Feb-2008.)  (Revised by Mario Carneiro, 31-Jan-2014.) $)
    clim0c $p |- ( ph -> ( F ~~> 0 <->
              A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j ) ( abs ` B ) < x ) ) $=
      ( cc0 wbr cabs cfv cv wral cli cmin co clt cuz wrex crp 0cnd clim2c wa wb
      wcel uztrn2 subid1d fveq2d breq1d anassrs ralbidva rexbidva ralbidv bitrd
      sylan2 ) AFOUAPCOUBUCZQRZBSZUDPZEDSZUERZTZDIUFZBUGTCQRZVEUDPZEVHTZDIUFZBU
      GTABOCDEFGHIJKLMAUHNUIAVJVNBUGAVIVMDIAVGIULZUJVFVLEVHAVOESZVHULZVFVLUKZVO
      VQUJAVPIULZVRGVPVGIJUMAVSUJZVDVKVEUDVTVCCQVTCNUNUOUPVBUQURUSUTVA $.
  $}

  ${
    $d x y z A $.  $d x y B $.  $d x y ph $.
    rlim0.1 $e |- ( ph -> A. z e. A B e. CC ) $.
    rlim0.2 $e |- ( ph -> A C_ RR ) $.
    $( Express the predicate ` B ( z ) ` converges to ` 0 ` .  (Contributed by
       Mario Carneiro, 16-Sep-2014.)  (Revised by Mario Carneiro,
       28-Feb-2015.) $)
    rlim0 $p |- ( ph -> ( ( z e. A |-> B ) ~~>r 0 <-> A. x e. RR+ E. y e. RR
           A. z e. A ( y <_ z -> ( abs ` B ) < x ) ) ) $=
      ( cc0 wbr cv cabs cfv clt wi wral cr wrex crp wb cmpt crli cle cmin rlim2
      co 0cnd cc subid1 fveq2d breq1d imbi2d ralimi ralbi rexbidv ralbidv bitrd
      wcel 3syl ) ADEFUAIUBJCKDKUCJZFIUDUFZLMZBKZNJZOZDEPZCQRZBSPUTFLMZVCNJZOZD
      EPZCQRZBSPABCDEFIGHAUGUEAVGVLBSAVFVKCQAFUHURZDEPVEVJTZDEPVFVKTGVMVNDEVMVD
      VIUTVMVBVHVCNVMVAFLFUIUJUKULUMVEVJDEUNUSUOUPUQ $.

    $( Use strictly less-than in place of less equal in the real limit
       predicate.  (Contributed by Mario Carneiro, 18-Sep-2014.)  (Revised by
       Mario Carneiro, 28-Feb-2015.) $)
    rlim0lt $p |- ( ph -> ( ( z e. A |-> B ) ~~>r 0 <-> A. x e. RR+ E. y e. RR
           A. z e. A ( y < z -> ( abs ` B ) < x ) ) ) $=
      ( cc0 wbr cv clt cabs cfv wi wral cr wrex crp wb cmpt crli cmin 0cnd wcel
      co rlim2lt cc subid1 fveq2d breq1d imbi2d ralimi ralbi 3syl rexbidv bitrd
      ralbidv ) ADEFUAIUBJCKDKLJZFIUCUFZMNZBKZLJZOZDEPZCQRZBSPUSFMNZVBLJZOZDEPZ
      CQRZBSPABCDEFIGHAUDUGAVFVKBSAVEVJCQAFUHUEZDEPVDVITZDEPVEVJTGVLVMDEVLVCVHU
      SVLVAVGVBLVLUTFMFUIUJUKULUMVDVIDEUNUOUPURUQ $.
  $}

  ${
    $d j k x A $.  $d j k x C $.  $d j k x F $.  $d j k x ph $.  $d j k x Z $.
    $d x B $.  $d j M $.
    climi.1 $e |- Z = ( ZZ>= ` M ) $.
    climi.2 $e |- ( ph -> M e. ZZ ) $.
    climi.3 $e |- ( ph -> C e. RR+ ) $.
    climi.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = B ) $.
    ${
      climi.5 $e |- ( ph -> F ~~> A ) $.
      $( Convergence of a sequence of complex numbers.  (Contributed by NM,
         11-Jan-2007.)  (Revised by Mario Carneiro, 31-Jan-2014.) $)
      climi $p |- ( ph -> E. j e. Z A. k e. ( ZZ>= ` j )
                    ( B e. CC /\ ( abs ` ( B - A ) ) < C ) ) $=
        ( vx crp wcel clt wbr wa cc cmin cabs cfv cuz wral wrex cli cvv climrel
        co cv brrelexi syl clim2 mpbid simprd wceq breq2 anbi2d rexralbidv sylc
        rspcv ) ADPQCUAQZCBUBUKUCUDZOULZRSZTZFEULUEUDZUFEIUGZOPUFZVDVEDRSZTZFVI
        UFEIUGZLABUAQZVKAGBUHSZVOVKTNAOBCEFGHUIIJKAVPGUIQNGBUHUJUMUNMUOUPUQVJVN
        ODPVFDURZVHVMEFIVIVQVGVLVDVFDVERUSUTVAVCVB $.

      $( Convergence of a sequence of complex numbers.  (Contributed by NM,
         11-Jan-2007.)  (Revised by Mario Carneiro, 31-Jan-2014.) $)
      climi2 $p |- ( ph -> E. j e. Z A. k e. ( ZZ>= ` j )
                     ( abs ` ( B - A ) ) < C ) $=
        ( cc wcel cmin cfv wral wrex co cabs clt wbr wa cuz climi ralimi reximi
        cv simpr syl ) ACOPZCBQUAUBRDUCUDZUEZFEUJUFRZSZEITUNFUPSZEITABCDEFGHIJK
        LMNUGUQUREIUOUNFUPUMUNUKUHUIUL $.
    $}

    climi0.5 $e |- ( ph -> F ~~> 0 ) $.
    $( Convergence of a sequence of complex numbers to zero.  (Contributed by
       NM, 11-Jan-2007.)  (Revised by Mario Carneiro, 31-Jan-2014.) $)
    climi0 $p |- ( ph -> E. j e. Z A. k e. ( ZZ>= ` j ) ( abs ` B ) < C ) $=
      ( cc0 cabs cfv clt wbr wral wrex cc wcel co wa cv cuz climi subid1 fveq2d
      cmin breq1d biimpa ralimi reximi syl ) ABUAUBZBNUJUCZOPZCQRZUDZEDUEUFPZSZ
      DHTBOPZCQRZEVASZDHTANBCDEFGHIJKLMUGVBVEDHUTVDEVAUPUSVDUPURVCCQUPUQBOBUHUI
      UKULUMUNUO $.
  $}

  ${
    $d x y z A $.  $d x y B $.  $d x y z C $.  $d x y ph $.  $d x y z R $.
    $d y z D $.  $d z V $.
    rlimi.1 $e |- ( ph -> A. z e. A B e. V ) $.
    rlimi.2 $e |- ( ph -> R e. RR+ ) $.
    rlimi.3 $e |- ( ph -> ( z e. A |-> B ) ~~>r C ) $.
    $( Convergence at infinity of a function on the reals.  (Contributed by
       Mario Carneiro, 28-Feb-2015.) $)
    rlimi $p |- ( ph -> E. y e. RR A. z e. A
      ( y <_ z -> ( abs ` ( B - C ) ) < R ) ) $=
      ( vx crp wcel cv wbr wral cr cc syl cle cmin co cabs cfv clt wi wrex cmpt
      crli wf cdm rlimf wceq eqid fmpt sylib feq2d mpbid sylibr rlimss eqsstr3d
      fdm wss rlimcl rlim2 breq2 imbi2d rexralbidv rspcv sylc ) AGMNBOCOUAPZEFU
      BUCUDUEZLOZUFPZUGZCDQBRUHZLMQZVLVMGUFPZUGZCDQBRUHZJACDEUIZFUJPZVRKALBCDEF
      ADSWBUKZESNCDQAWBULZSWBUKZWDAWCWFKFWBUMTAWEDSWBADHWBUKZWEDUNAEHNCDQWGICDH
      EWBWBUOZUPUQDHWBVCTZURUSCDSEWBWHUPUTADWERWIAWCWERVDKFWBVATVBAWCFSNKFWBVET
      VFUSVQWALGMVNGUNZVPVTBCRDWJVOVSVLVNGVMUFVGVHVIVJVK $.

    rlimi.4 $e |- ( ph -> D e. RR ) $.
    $( Convergence at infinity of a function on the reals.  (Contributed by
       Mario Carneiro, 12-May-2016.) $)
    rlimi2 $p |- ( ph -> E. y e. ( D [,) +oo ) A. z e. A
      ( y <_ z -> ( abs ` ( B - C ) ) < R ) ) $=
      ( cv wbr co wral wrex cr wss cle cmin cabs cfv wi cpnf cico rlimi wcel wb
      clt cmpt cdm wfn wceq eqid fnmpt fndm 3syl crli rlimss syl rexico syl2anc
      eqsstr3d mpbird ) ABNCNUAOEFUBPUCUDHUKOZUECDQZBGUFUGPRZVHBSRZABCDEFHIJKLU
      HADSTGSUIVIVJUJADCDEULZUMZSAEIUICDQVKDUNVLDUOJCDEVKIVKUPUQDVKURUSAVKFUTOV
      LSTLFVKVAVBVEMVGDGBCVCVDVF $.
  $}

  ${
    $d m x y A $.  $d m x y C $.  $d f m x y F $.  $d m x M $.
    $( Elementhood in the set of eventually upper bounded functions.
       (Contributed by Mario Carneiro, 26-May-2016.) $)
    ello1 $p |- ( F e. <_O(1) <-> ( F e. ( RR ^pm RR ) /\ E. x e. RR
      E. m e. RR A. y e. ( dom F i^i ( x [,) +oo ) ) ( F ` y ) <_ m ) ) $=
      ( vf cv cfv cle wbr cdm cpnf cico co cin wral cr wrex cpm clo1 wceq fveq1
      dmeq ineq1d breq1d raleqbidv 2rexbidv df-lo1 elrab2 ) BFZEFZGZCFZHIZBUJJZ
      AFKLMZNZOZCPQAPQUIDGZULHIZBDJZUONZOZCPQAPQEDPPRMSUJDTZUQVBACPPVCUMUSBUPVA
      VCUNUTUOUJDUBUCVCUKURULHUIUJDUAUDUEUFABECUGUH $.

    $( Elementhood in the set of eventually upper bounded functions.
       (Contributed by Mario Carneiro, 26-May-2016.) $)
    ello12 $p |- ( ( F : A --> RR /\ A C_ RR ) -> ( F e. <_O(1) <-> E. x e. RR
      E. m e. RR A. y e. A ( x <_ y -> ( F ` y ) <_ m ) ) ) $=
      ( cr wa wcel cv cle wbr co wral wrex wi wb cvv reex syl simpllr clo1 cpnf
      wf wss cfv cdm cico cin cpm elpm2r mpanl12 ello1 baib elin wceq ad3antrrr
      fdm eleq2d anbi1d elicopnf sselda biantrurd bitr4d pm5.32da syl5bb imbi1d
      bitrd impexp syl6bb ralbidv2 rexbidva ) CFEUCZCFUDZGZEUAHZBIZEUEDIZJKZBEU
      FZAIZUBUGLZUHZMZDFNZAFNZVTVPJKZVROZBCMZDFNZAFNVNEFFUILHZVOWEPFQHZWKVNWJRR
      FFCEQQUJUKVOWJWEABDEULUMSVNWDWIAFVNVTFHZGZWCWHDFWMVQFHZGZVRWGBWBCWOVPWBHZ
      VROVPCHZWFGZVROWQWGOWOWPWRVRWPVPVSHZVPWAHZGZWOWRVPVSWAUNWOXAWQWTGWRWOWSWQ
      WTWOVSCVPVLVSCUOVMWLWNCFEUQUPURUSWOWQWTWFWOWQGZWTVPFHZWFGZWFXBWLWTXDPVNWL
      WNWQTVTVPUTSXBXCWFWOCFVPVLVMWLWNTVAVBVCVDVGVEVFWQWFVRVHVIVJVKVKVG $.

    $( Sufficient condition for elementhood in the set of eventually upper
       bounded functions.  (Contributed by Mario Carneiro, 26-May-2016.) $)
    ello12r $p |- ( ( ( F : A --> RR /\ A C_ RR ) /\ ( C e. RR /\ M e. RR ) /\
      A. x e. A ( C <_ x -> ( F ` x ) <_ M ) ) -> F e. <_O(1) ) $=
      ( vy vm cr wf wss wa wcel cv cle wbr wi wral wrex wceq ralbidv clo1 breq1
      cfv w3a imbi1d breq2 imbi2d rspc2ev 3expa 3adant1 ello12 3ad2ant1 mpbird
      wb ) BHDIBHJKZCHLZEHLZKZCAMZNOZUSDUCZENOZPZABQZUDDUALZFMZUSNOZVAGMZNOZPZA
      BQZGHRFHRZURVDVLUOUPUQVDVLVKVDUTVIPZABQFGCEHHVFCSZVJVMABVNVGUTVIVFCUSNUBU
      ETVHESZVMVCABVOVIVBUTVHEVANUFUGTUHUIUJUOURVEVLUNVDFABGDUKULUM $.

    $( An eventually upper bounded function is a function.  (Contributed by
       Mario Carneiro, 26-May-2016.) $)
    lo1f $p |- ( F e. <_O(1) -> F : dom F --> RR ) $=
      ( vy vm vx clo1 wcel cr cpm co cdm wf cfv cle cpnf cico wrex simplbi reex
      cv wbr cin wral ello1 wss elpm2 syl ) AEFZAGGHIFZAJZGAKZUGUHBSALCSMTBUIDS
      NOIUAUBCGPDGPDBCAUCQUHUJUIGUDGGARRUEQUF $.

    $( An eventually upper bounded function's domain is a subset of the reals.
       (Contributed by Mario Carneiro, 26-May-2016.) $)
    lo1dm $p |- ( F e. <_O(1) -> dom F C_ RR ) $=
      ( vy vm vx clo1 wcel cr cpm co cdm wss cv cfv cle wbr cpnf cico wrex reex
      cin wral ello1 simplbi wf elpm2 simprbi syl ) AEFZAGGHIFZAJZGKZUHUIBLAMCL
      NOBUJDLPQITUACGRDGRDBCAUBUCUIUJGAUDUKGGASSUEUFUG $.

    $( The defining property of an eventually upper bounded function.
       (Contributed by Mario Carneiro, 26-May-2016.) $)
    lo1bdd $p |- ( ( F e. <_O(1) /\ F : A --> RR ) -> E. x e. RR
      E. m e. RR A. y e. A ( x <_ y -> ( F ` y ) <_ m ) ) $=
      ( clo1 wcel cr wf wa cv cle wbr cfv wi wral wrex simpl wss wb wceq adantl
      simpr cdm fdm lo1dm adantr eqsstr3d ello12 syl2anc mpbid ) EFGZCHEIZJZULA
      KBKZLMUOENDKLMOBCPDHQAHQZULUMRUNUMCHSULUPTULUMUCUNCEUDZHUMUQCUAULCHEUEUBU
      LUQHSUMEUFUGUHABCDEUIUJUK $.
  $}

  ${
    $d m x y z A $.  $d m y z B $.  $d m x y C $.  $d m x y ph $.  $d m x M $.
    ello1mpt.1 $e |- ( ph -> A C_ RR ) $.
    ello1mpt.2 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    $( Elementhood in the set of eventually upper bounded functions.
       (Contributed by Mario Carneiro, 26-May-2016.) $)
    ello1mpt $p |- ( ph -> ( ( x e. A |-> B ) e. <_O(1) <-> E. y e. RR
      E. m e. RR A. x e. A ( y <_ x -> B <_ m ) ) ) $=
      ( vz wcel cv cle wbr cfv wi wral cr wrex syl2anc nfv cmpt clo1 wf wb eqid
      wss fmptd ello12 nffvmpt1 nfcv nfbr nfim wceq breq2 breq1d imbi12d cbvral
      fveq2 wa simpr fvmpt2 imbi2d ralbidva syl5bb 2rexbidv bitrd ) ABDEUAZUBJZ
      CKZIKZLMZVJVGNZFKZLMZOZIDPZFQRCQRZVIBKZLMZEVMLMZOZBDPZFQRCQRADQVGUCDQUFVH
      VQUDABDEQVGHVGUEZUGGCIDFVGUHSAVPWBCFQQVPVSVRVGNZVMLMZOZBDPAWBVOWFIBDVKVNB
      VKBTBVLVMLBDEVJUIBLUJBVMUJUKULWFITVJVRUMZVKVSVNWEVJVRVILUNWGVLWDVMLVJVRVG
      URUOUPUQAWFWABDAVRDJZUSZWEVTVSWIWDEVMLWIWHEQJWDEUMAWHUTHBDEQVGWCVASUOVBVC
      VDVEVF $.

    ello1d.3 $e |- ( ph -> C e. RR ) $.
    $( Elementhood in the set of eventually upper bounded functions.
       (Contributed by Mario Carneiro, 26-May-2016.) $)
    ello1mpt2 $p |- ( ph -> ( ( x e. A |-> B ) e. <_O(1)
                      <-> E. y e. ( C [,) +oo )
      E. m e. RR A. x e. A ( y <_ x -> B <_ m ) ) ) $=
      ( cmpt clo1 wcel cv cle wbr wi cr wrex rexcom wral cpnf cico ello1mpt wss
      co wb rexico syl2anc rexbidv 3bitr4g bitr4d ) ABDEKLMCNBNOPEGNOPZQBDUAZGR
      SZCRSZUOCFUBUCUFZSZABCDEGHIUDAUNCUQSZGRSUNCRSZGRSURUPAUSUTGRADRUEFRMUSUTU
      GHJUMDFCBUHUIUJUNCGUQRTUNCGRRTUKUL $.

    ello1d.4 $e |- ( ph -> M e. RR ) $.
    ${
      ello1d.5 $e |- ( ( ph /\ ( x e. A /\ C <_ x ) ) -> B <_ M ) $.
      $( Sufficient condition for elementhood in the set of eventually upper
         bounded functions.  (Contributed by Mario Carneiro, 26-May-2016.) $)
      ello1d $p |- ( ph -> ( x e. A |-> B ) e. <_O(1) ) $=
        ( vy vm wcel cv cle wbr wi wral cr cmpt clo1 wrex expr ralrimiva imbi1d
        wceq breq1 ralbidv breq2 imbi2d rspc2ev syl3anc ello1mpt mpbird ) ABCDU
        AUBNLOZBOZPQZDMOZPQZRZBCSZMTUCLTUCZAETNFTNEUQPQZDFPQZRZBCSZVCIJAVFBCAUQ
        CNVDVEKUDUEVBVGVDUTRZBCSLMEFTTUPEUGZVAVHBCVIURVDUTUPEUQPUHUFUIUSFUGZVHV
        FBCVJUTVEVDUSFDPUJUKUIULUMABLCDMGHUNUO $.
    $}
  $}

  ${
    $d m n x y A $.  $d m n y B $.  $d n x y C $.  $d n x y ph $.
    $d m n x M $.
    lo1bdd2.1 $e |- ( ph -> A C_ RR ) $.
    lo1bdd2.2 $e |- ( ph -> C e. RR ) $.
    lo1bdd2.3 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    lo1bdd2.4 $e |- ( ph -> ( x e. A |-> B ) e. <_O(1) ) $.
    lo1bdd2.5 $e |- ( ( ph /\ ( y e. RR /\ C <_ y ) ) -> M e. RR ) $.
    lo1bdd2.6 $e |- ( ( ( ph /\ x e. A ) /\
      ( ( y e. RR /\ C <_ y ) /\ x < y ) ) -> B <_ M ) $.
    $( If an eventually bounded function is bounded on every interval
       ` A i^i ( -oo , y ) ` by a function ` M ( y ) ` , then the function is
       bounded on the whole domain.  (Contributed by Mario Carneiro,
       9-Apr-2016.) $)
    lo1bdd2 $p |- ( ph -> E. m e. RR A. x e. A B <_ m ) $=
      ( cle wbr wi cr wcel wa vn cv wral wrex cpnf cico co cmpt ello1mpt2 mpbid
      clo1 cif wb elicopnf syl biimpa syldan ad2antrr wn simplrl ifclda clt wss
      sselda simpld ltnled expr an32s ex imp adantlr simplr max2 syl2anc simpll
      ad3antrrr simpllr letr syl3anc mpan2d syld sylbird max1 jad ralimdva impr
      sylan wceq breq2 ralbidv rspcev rexlimdva mpd ) ACUBZBUBZOPZEUAUBZOPZQZBD
      UCZUARUDZCFUEUFUGZUDZEGUBZOPZBDUCZGRUDZABDEUHUKSXCLABCDEFUAIKJUIUJAXAXGCX
      BAWNXBSZTZWTXGUARXIWQRSZWTXGXIXJWTTZTZWQHOPZHWQULZRSZEXNOPZBDUCZXGXLXMHWQ
      RXIHRSZXKXMAXHWNRSZFWNOPZTZXRAXHYAAFRSXHYAUMJFWNUNUOUPZMUQZURXIXJWTXMUSZU
      TVAXIXJWTXQXIXJTZWSXPBDYEWODSZTZWPWRXPYGWPUSWOWNVBPZXPYGWOWNYEDRWOADRVCXH
      XJIURVDXIXSXJYFXIXSXTYBVEURVFYGYHEHOPZXPXIYFYHYIQZXJXIYFYJAXHYAYFYJQYBAYA
      TYFYJAYFYAYJAYFTYAYHYINVGVHVIUQVJVKYGYIHXNOPZXPYGXJXRYKXIXJYFVLZXIXRXJYFY
      CURZWQHVMVNYGERSZXRXOYIYKTXPQYEAYFYNAXHXJVOKWGZYMYGXMHWQRXIXRXJYFXMYCVPXI
      XJYFYDVQVAZEHXNVRVSVTWAWBYGWRWQXNOPZXPYGXJXRYQYLYMWQHWCVNYGYNXJXOWRYQTXPQ
      YOYLYPEWQXNVRVSVTWDWEWFXFXQGXNRXDXNWHXEXPBDXDXNEOWIWJWKVNVGWLWLWM $.

    $( Refine ~ o1bdd2 to give a strictly positive upper bound.  (Contributed
       by Mario Carneiro, 25-May-2016.) $)
    lo1bddrp $p |- ( ph -> E. m e. RR+ A. x e. A B <_ m ) $=
      ( vn cv cle wbr cr wcel wral wrex crp lo1bdd2 wa cfv c1 caddc simpr recnd
      cabs co abscld absge0d ge0p1rpd simplr adantr peano2re leabsd lep1d letrd
      syl adantlr letr syl3anc mpan2d ralimdva wceq breq2 ralbidv rspcev syl6an
      wi rexlimdva mpd ) AEOPZQRZBDUAZOSUBEGPZQRZBDUAZGUCUBZABCDEFOHIJKLMNUDAVR
      WBOSAVPSTZUEZVPUKUFZUGUHULZUCTVREWFQRZBDUAZWBWDWEWDVPWDVPAWCUIUJZUMZWDVPW
      IUNUOWDVQWGBDWDBPDTZUEZVQVPWFQRZWGWLVPWEWFAWCWKUPZWDWESTZWKWJUQZWLWOWFSTZ
      WPWEURVBZWLVPWNUSWLWEWPUTVAWLESTZWCWQVQWMUEWGVMAWKWSWCKVCWNWREVPWFVDVEVFV
      GWAWHGWFUCVSWFVHVTWGBDVSWFEQVIVJVKVLVNVO $.
  $}

  ${
    $d m x y A $.  $d m x y C $.  $d f m x y F $.  $d m x M $.
    $( Elementhood in the set of eventually bounded functions.  (Contributed by
       Mario Carneiro, 15-Sep-2014.) $)
    elo1 $p |- ( F e. O(1) <-> ( F e. ( CC ^pm RR ) /\ E. x e. RR E. m e. RR
      A. y e. ( dom F i^i ( x [,) +oo ) ) ( abs ` ( F ` y ) ) <_ m ) ) $=
      ( vf cv cfv cabs cle wbr cdm cpnf cico co cin wral cr wrex cc cpm ineq1d
      co1 wceq dmeq fveq1 fveq2d breq1d raleqbidv 2rexbidv df-o1 elrab2 ) BFZEF
      ZGZHGZCFZIJZBUMKZAFLMNZOZPZCQRAQRULDGZHGZUPIJZBDKZUSOZPZCQRAQREDSQTNUBUMD
      UCZVAVGACQQVHUQVDBUTVFVHURVEUSUMDUDUAVHUOVCUPIVHUNVBHULUMDUEUFUGUHUIABECU
      JUK $.

    $( Elementhood in the set of eventually bounded functions.  (Contributed by
       Mario Carneiro, 15-Sep-2014.) $)
    elo12 $p |- ( ( F : A --> CC /\ A C_ RR ) -> ( F e. O(1) <-> E. x e. RR
      E. m e. RR A. y e. A ( x <_ y -> ( abs ` ( F ` y ) ) <_ m ) ) ) $=
      ( cc cr wa wcel cv cfv cle wbr co wral wrex wi wb cvv syl wf wss co1 cabs
      cdm cpnf cico cin cpm cnex reex mpanl12 elo1 baib elin wceq fdm ad3antrrr
      elpm2r eleq2d anbi1d simpllr elicopnf sselda bitr4d pm5.32da bitrd syl5bb
      biantrurd imbi1d impexp syl6bb ralbidv2 rexbidva ) CFEUAZCGUBZHZEUCIZBJZE
      KUDKDJZLMZBEUEZAJZUFUGNZUHZOZDGPZAGPZWCVSLMZWAQZBCOZDGPZAGPVQEFGUINIZVRWH
      RFSIGSIVQWMUJUKFGCESSUSULVRWMWHABDEUMUNTVQWGWLAGVQWCGIZHZWFWKDGWOVTGIZHZW
      AWJBWECWQVSWEIZWAQVSCIZWIHZWAQWSWJQWQWRWTWAWRVSWBIZVSWDIZHZWQWTVSWBWDUOWQ
      XCWSXBHWTWQXAWSXBWQWBCVSVOWBCUPVPWNWPCFEUQURUTVAWQWSXBWIWQWSHZXBVSGIZWIHZ
      WIXDWNXBXFRVQWNWPWSVBWCVSVCTXDXEWIWQCGVSVOVPWNWPVBVDVIVEVFVGVHVJWSWIWAVKV
      LVMVNVNVG $.

    $( Sufficient condition for elementhood in the set of eventually bounded
       functions.  (Contributed by Mario Carneiro, 15-Sep-2014.) $)
    elo12r $p |- ( ( ( F : A --> CC /\ A C_ RR ) /\ ( C e. RR /\ M e. RR ) /\
      A. x e. A ( C <_ x -> ( abs ` ( F ` x ) ) <_ M ) ) -> F e. O(1) ) $=
      ( vy vm cc cr wa wcel cv cle wbr cfv wi wral wrex wceq ralbidv wf wss w3a
      co1 breq1 imbi1d breq2 imbi2d rspc2ev 3expa 3adant1 elo12 3ad2ant1 mpbird
      cabs wb ) BHDUABIUBJZCIKZEIKZJZCALZMNZVADOUOOZEMNZPZABQZUCDUDKZFLZVAMNZVC
      GLZMNZPZABQZGIRFIRZUTVFVNUQURUSVFVNVMVFVBVKPZABQFGCEIIVHCSZVLVOABVPVIVBVK
      VHCVAMUEUFTVJESZVOVEABVQVKVDVBVJEVCMUGUHTUIUJUKUQUTVGVNUPVFFABGDULUMUN $.

    $( An eventually bounded function is a function.  (Contributed by Mario
       Carneiro, 15-Sep-2014.) $)
    o1f $p |- ( F e. O(1) -> F : dom F --> CC ) $=
      ( vy vm vx co1 wcel cc cr cpm co cdm wf cv cfv cabs cle cpnf wrex simplbi
      wbr cico cin wral elo1 wss cnex reex elpm2 syl ) AEFZAGHIJFZAKZGALZUJUKBM
      ANONCMPTBULDMQUAJUBUCCHRDHRDBCAUDSUKUMULHUEGHAUFUGUHSUI $.

    $( An eventually bounded function's domain is a subset of the reals.
       (Contributed by Mario Carneiro, 15-Sep-2014.) $)
    o1dm $p |- ( F e. O(1) -> dom F C_ RR ) $=
      ( vy vm vx co1 wcel cc cr cpm co cdm wss cfv cabs cle wbr cpnf cico wrex
      cv cin wral elo1 simplbi wf cnex reex elpm2 simprbi syl ) AEFZAGHIJFZAKZH
      LZUKULBTAMNMCTOPBUMDTQRJUAUBCHSDHSDBCAUCUDULUMGAUEUNGHAUFUGUHUIUJ $.

    $( The defining property of an eventually bounded function.  (Contributed
       by Mario Carneiro, 15-Sep-2014.) $)
    o1bdd $p |- ( ( F e. O(1) /\ F : A --> CC ) -> E. x e. RR
      E. m e. RR A. y e. A ( x <_ y -> ( abs ` ( F ` y ) ) <_ m ) ) $=
      ( co1 wcel cc wf wa cv cle wbr cfv cabs wi wral cr wrex wss simpl wb wceq
      simpr cdm fdm adantl o1dm adantr eqsstr3d elo12 syl2anc mpbid ) EFGZCHEIZ
      JZUNAKBKZLMUQENONDKLMPBCQDRSARSZUNUOUAUPUOCRTUNURUBUNUOUDUPCEUEZRUOUSCUCU
      NCHEUFUGUNUSRTUOEUHUIUJABCDEUKULUM $.

    $( A function is eventually bounded iff its absolute value is eventually
       upper bounded.  (Contributed by Mario Carneiro, 26-May-2016.) $)
    lo1o1 $p |- ( F : A --> CC -> ( F e. O(1) <-> ( abs o. F ) e. <_O(1) ) ) $=
      ( vx vy vm cc wf cr wss wcel cabs cdm fdm sseq1d syl5ib cle wbr cfv wrex
      cv co1 ccom clo1 o1dm lo1dm wceq absf fco mpan syl wb wa wi fvco3 adantlr
      breq1d imbi2d ralbidva 2rexbidv ello12 sylan elo12 3bitr4rd ex pm5.21ndd
      wral ) AFBGZAHIZBUAJZKBUBZUCJZVIBLZHIVGVHBUDVGVLAHAFBMNOVKVJLZHIVGVHVJUEV
      GVMAHVGAHVJGZVMAUFFHKGVGVNUGAFHKBUHUIZAHVJMUJNOVGVHVIVKUKVGVHULZCTDTZPQZV
      QVJRZETZPQZUMZDAVFZEHSCHSZVRVQBRKRZVTPQZUMZDAVFZEHSCHSVKVIVPWCWHCEHHVPWBW
      GDAVPVQAJZULZWAWFVRWJVSWEVTPVGWIVSWEUFVHAFVQKBUNUOUPUQURUSVGVNVHVKWDUKVOC
      DAEVJUTVACDAEBVBVCVDVE $.
  $}

  ${
    $d x y $.  $d x A $.  $d y B $.  $d x ph $.
    lo1o12.1 $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
    $( A function is eventually bounded iff its absolute value is eventually
       upper bounded.  (This function is useful for converting theorems about
       ` <_O(1) ` to ` O(1) ` .)  (Contributed by Mario Carneiro,
       26-May-2016.) $)
    lo1o12 $p |- ( ph -> ( ( x e. A |-> B ) e. O(1) <->
      ( x e. A |-> ( abs ` B ) ) e. <_O(1) ) ) $=
      ( vy cmpt co1 wcel cabs ccom clo1 cfv cc wf wb eqid fmptd lo1o1 cr syl cv
      eqidd absf a1i feqmptd fveq2 fmptco eleq1d bitrd ) ABCDGZHIZJUKKZLIZBCDJM
      ZGZLIACNUKOULUNPABCDNUKEUKQRCUKSUAAUMUPLABFCNDFUBZJMUOUKJEAUKUCAFNTJNTJOA
      UDUEUFUQDJUGUHUIUJ $.
  $}

  ${
    $d m x y A $.  $d m y B $.  $d m x y C $.  $d m x y ph $.  $d m x M $.
    elo1mpt.1 $e |- ( ph -> A C_ RR ) $.
    elo1mpt.2 $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
    $( Elementhood in the set of eventually bounded functions.  (Contributed by
       Mario Carneiro, 21-Sep-2014.)  (Proof shortened by Mario Carneiro,
       26-May-2016.) $)
    elo1mpt $p |- ( ph -> ( ( x e. A |-> B ) e. O(1) <-> E. y e. RR
      E. m e. RR A. x e. A ( y <_ x -> ( abs ` B ) <_ m ) ) ) $=
      ( cmpt co1 wcel cabs cfv clo1 cv cle wbr wi cr wrex wral lo1o12 wa abscld
      ello1mpt bitrd ) ABDEIJKBDELMZINKCOBOZPQUGFOPQRBDUAFSTCSTABDEHUBABCDUGFGA
      UHDKUCEHUDUEUF $.

    elo1d.3 $e |- ( ph -> C e. RR ) $.
    $( Elementhood in the set of eventually bounded functions.  (Contributed by
       Mario Carneiro, 12-May-2016.)  (Proof shortened by Mario Carneiro,
       26-May-2016.) $)
    elo1mpt2 $p |- ( ph -> ( ( x e. A |-> B ) e. O(1) <-> E. y e. ( C [,) +oo )
      E. m e. RR A. x e. A ( y <_ x -> ( abs ` B ) <_ m ) ) ) $=
      ( cmpt co1 wcel cabs cfv clo1 cv cle wbr wrex wi wral cr cpnf cico lo1o12
      co wa abscld ello1mpt2 bitrd ) ABDEKLMBDENOZKPMCQBQZRSULGQRSUABDUBGUCTCFU
      DUEUGTABDEIUFABCDULFGHAUMDMUHEIUIJUJUK $.

    elo1d.4 $e |- ( ph -> M e. RR ) $.
    elo1d.5 $e |- ( ( ph /\ ( x e. A /\ C <_ x ) ) -> ( abs ` B ) <_ M ) $.
    $( Sufficient condition for elementhood in the set of eventually bounded
       functions.  (Contributed by Mario Carneiro, 21-Sep-2014.)  (Proof
       shortened by Mario Carneiro, 26-May-2016.) $)
    elo1d $p |- ( ph -> ( x e. A |-> B ) e. O(1) ) $=
      ( cmpt co1 wcel cabs cfv clo1 cv wa abscld ello1d lo1o12 mpbird ) ABCDLMN
      BCDOPZLQNABCUDEFGABRCNSDHTIJKUAABCDHUBUC $.
  $}

  ${
    $d c m n p x A $.  $d c m n p B $.  $d x M $.  $d c m n p x ph $.
    o1lo1.1 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    $( A real function is eventually bounded iff it is eventually lower bounded
       and eventually upper bounded.  (Contributed by Mario Carneiro,
       25-May-2016.) $)
    o1lo1 $p |- ( ph -> ( ( x e. A |-> B ) e. O(1) <->
      ( ( x e. A |-> B ) e. <_O(1) /\ ( x e. A |-> -u B ) e. <_O(1) ) ) ) $=
      ( vc vm vn vp cr wcel wa wi wb wral wceq cv cle wbr wrex cmpt cdm wss co1
      clo1 cneg o1dm a1i lo1dm adantr ralrimiva dmmptg syl sseq1d simpr adantlr
      cabs cfv simplr absled ancom lenegcon1 syl2anc anbi2d syl5bb bitrd imbi2d
      ralbidva rexbidv biimpd breq2 anbi1d rexralbidv 3anidm12 syl6an rexlimdva
      rspc2ev cif simplrr wn simplrl ifclda max2 ad2antlr renegcld letr syl3anc
      mpan2d sylibd max1 anim12d ancomsd sylibrd imim2d ralimdva reximdv rspcev
      ifcld impbid rexanre adantl 2rexbidv reeanv syl6bb rexcom anbi12i 3bitr4g
      rexlimdvva recnd elo1mpt ello1mpt anbi12d 3bitr4d ex sylbid pm5.21ndd ) A
      BCDUAZUBZJUCZXQUDKZXQUEKZBCDUFZUAUEKZLZXTXSMAXQUGUHYDXSMAYAXSYCXQUIUJUHAX
      SCJUCZXTYDNZAXRCJADJKZBCOXRCPAYGBCEUKBCDJULUMUNAYEYFAYELZFQBQZRSZDUQURZGQ
      ZRSZMZBCOZGJTFJTZYJDHQZRSZMBCOZHJTFJTZYJYBIQZRSZMBCOZIJTFJTZLZXTYDYHYOFJT
      ZGJTZYSFJTZHJTZUUCFJTZIJTZLZYPUUEYHUUGUUHUUJLZIJTHJTZUULYHUUGYJYRUUBLZMZB
      COZFJTZIJTHJTZUUNYHUUGUUSYHUUFUUSGJYHYLJKZLZUUTUUFYJDYLRSZYBYLRSZLZMZBCOZ
      FJTZUUSYHUUTUOUVAUUFUVGUVAYOUVFFJUVAYNUVEBCUVAYICKZLZYMUVDYJUVIYMYLUFDRSZ
      UVBLZUVDUVIDYLYHUVHYGUUTAUVHYGYEEUPZUPZYHUUTUVHUSZUTUVKUVBUVJLUVIUVDUVJUV
      BVAUVIUVJUVCUVBUVIUUTYGUVJUVCNUVNUVMYLDVBVCVDVEVFVGVHVIVJUUTUVGUUSUURUVGY
      JUVBUUBLZMZBCOFJTHIYLYLJJYQYLPZUUPUVPFBJCUVQUUOUVOYJUVQYRUVBUUBYQYLDRVKVL
      VGVMUUAYLPZUVPUVEFBJCUVRUVOUVDYJUVRUUBUVCUVBUUAYLYBRVKVDVGVMVQVNVOVPYHUUR
      UUGHIJJYHYQJKZUUAJKZLZLZYQUUARSZUUAYQVRZJKZUURYJYKUWDRSZMZBCOZFJTZUUGUWBU
      WCUUAYQJYHUVSUVTUWCVSYHUVSUVTUWCVTWAWBUWBUUQUWHFJUWBUUPUWGBCUWBUVHLZUUOUW
      FYJUWJUUOUWDUFDRSZDUWDRSZLZUWFUWJUUBYRUWMUWJUUBUWKYRUWLUWJUUBYBUWDRSZUWKU
      WJUUBUUAUWDRSZUWNUWAUWOYHUVHYQUUAWCWDUWJYBJKUVTUWEUUBUWOLUWNMUWJDYHUVHYGU
      WAUVLUPZWEYHUVSUVTUVHVSZUWJUWCUUAYQJUWQYHUVSUVTUVHWAZWRZYBUUAUWDWFWGWHUWJ
      YGUWEUWNUWKNUWPUWSDUWDVBVCWIUWJYRYQUWDRSZUWLUWAUWTYHUVHYQUUAWJWDUWJYGUVSU
      WEYRUWTLUWLMUWPUWRUWSDYQUWDWFWGWHWKWLUWJDUWDUWPUWSUTWMWNWOWPUUFUWIGUWDJYL
      UWDPZYNUWGFBJCUXAYMUWFYJYLUWDYKRVKVGVMWQVOXHWSYHUURUUMHIJJYEUURUUMNAYRUUB
      CFBWTXAXBVFUUHUUJHIJJXCXDYOFGJJXEYTUUIUUDUUKYSFHJJXEUUCFIJJXEXFXGYHBFCDGA
      YEUOZYHUVHLZDUVLXIXJYHYAYTYCUUDYHBFCDHUXBUVLXKYHBFCYBIUXBUXCDUVLWEXKXLXMX
      NXOXP $.

    ${
      o1lo12.2 $e |- ( ph -> M e. RR ) $.
      o1lo12.3 $e |- ( ( ph /\ x e. A ) -> M <_ B ) $.
      $( A lower bounded real function is eventually bounded iff it is
         eventually upper bounded.  (Contributed by Mario Carneiro,
         26-May-2016.) $)
      o1lo12 $p |- ( ph -> ( ( x e. A |-> B ) e. O(1) <->
        ( x e. A |-> B ) e. <_O(1) ) ) $=
        ( cmpt cr wss wcel clo1 wi a1i cneg wa renegcld cle wbr cdm co1 o1dm wb
        lo1dm wral wceq ralrimiva dmmptg syl sseq1d simpr adantlr adantr lenegd
        cv mpbid ad2ant2r ello1d o1lo1 rbaibd syldan ex sylbid pm5.21ndd ) ABCD
        IZUAZJKZVFUBLZVFMLZVIVHNAVFUCOVJVHNAVFUEOAVHCJKZVIVJUDZAVGCJADJLZBCUFVG
        CUGAVMBCFUHBCDJUIUJUKAVKVLAVKBCDPZIMLZVLAVKQZBCVNEEPZAVKULABUPZCLZVNJLV
        KAVSQZDFRUMAEJLZVKGUNZVPEWBRAVSVNVQSTZVKEVRSTVTEDSTWCHVTEDAWAVSGUNFUOUQ
        URUSAVIVJVOABCDFUTVAVBVCVDVE $.
    $}

    lo1o1.1 $e |- ( ph -> ( x e. A |-> B ) e. O(1) ) $.
    $( A real eventually bounded function is eventually upper bounded.
       (Contributed by Mario Carneiro, 26-May-2016.) $)
    o1lo1d $p |- ( ph -> ( x e. A |-> B ) e. <_O(1) ) $=
      ( cmpt clo1 wcel cneg co1 wa o1lo1 mpbid simpld ) ABCDGZHIZBCDJGHIZAPKIQR
      LFABCDEMNO $.
  $}

  ${
    $d x A $.  $d x C $.  $d x M $.  $d x N $.  $d x ph $.
    icco1.1 $e |- ( ph -> A C_ RR ) $.
    icco1.2 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    icco1.3 $e |- ( ph -> C e. RR ) $.
    icco1.4 $e |- ( ph -> M e. RR ) $.
    icco1.5 $e |- ( ph -> N e. RR ) $.
    icco1.6 $e |- ( ( ph /\ ( x e. A /\ C <_ x ) ) -> B e. ( M [,] N ) ) $.
    $( Derive eventual boundedness from separate upper and lower eventual
       bounds.  (Contributed by Mario Carneiro, 15-Apr-2016.) $)
    icco1 $p |- ( ph -> ( x e. A |-> B ) e. O(1) ) $=
      ( cmpt wcel clo1 cle wbr wa cr co1 cneg cv cicc w3a elicc2 syl2anc adantr
      co wb mpbid simp3d ello1d renegcld simp2d adantrr lenegd o1lo1 mpbir2and
      ) ABCDNZUAOUTPOBCDUBZNPOABCDEGHIJLABUCZCOZEVBQRZSZSZDTOZFDQRZDGQRZVFDFGUD
      UIOZVGVHVIUEZMAVJVKUJZVEAFTOZGTOVLKLFGDUFUGUHUKZULUMABCVAEFUBZHAVCSDIUNJA
      FKUNVFVHVAVOQRVFVGVHVIVNUOVFFDAVMVEKUHAVCVGVDIUPUQUKUMABCDIURUS $.
  $}

  ${
    $d m x y A $.  $d m y B $.  $d x y C $.  $d m x M $.  $d x y ph $.
    o1bdd2.1 $e |- ( ph -> A C_ RR ) $.
    o1bdd2.2 $e |- ( ph -> C e. RR ) $.
    o1bdd2.3 $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
    o1bdd2.4 $e |- ( ph -> ( x e. A |-> B ) e. O(1) ) $.
    o1bdd2.5 $e |- ( ( ph /\ ( y e. RR /\ C <_ y ) ) -> M e. RR ) $.
    o1bdd2.6 $e |- ( ( ( ph /\ x e. A ) /\
      ( ( y e. RR /\ C <_ y ) /\ x < y ) ) -> ( abs ` B ) <_ M ) $.
    $( If an eventually bounded function is bounded on every interval
       ` A i^i ( -oo , y ) ` by a function ` M ( y ) ` , then the function is
       bounded on the whole domain.  (Contributed by Mario Carneiro,
       9-Apr-2016.)  (Proof shortened by Mario Carneiro, 26-May-2016.) $)
    o1bdd2 $p |- ( ph -> E. m e. RR A. x e. A ( abs ` B ) <_ m ) $=
      ( cabs cfv cv wcel wa cmpt abscld co1 clo1 lo1o12 mpbid lo1bdd2 ) ABCDEOP
      ZFGHIJABQDRSEKUAABDETUBRBDUGTUCRLABDEKUDUEMNUF $.

    $( Refine ~ o1bdd2 to give a strictly positive upper bound.  (Contributed
       by Mario Carneiro, 25-May-2016.) $)
    o1bddrp $p |- ( ph -> E. m e. RR+ A. x e. A ( abs ` B ) <_ m ) $=
      ( cabs cfv cv wcel wa cmpt abscld co1 clo1 lo1o12 mpbid lo1bddrp ) ABCDEO
      PZFGHIJABQDRSEKUAABDETUBRBDUGTUCRLABDEKUDUEMNUF $.
  $}

  ${
    $d j k x A $.  $d j k x F $.  $d j M $.  $d j k x ph $.  $d j k Z $.
    climconst.1 $e |- Z = ( ZZ>= ` M ) $.
    climconst.2 $e |- ( ph -> M e. ZZ ) $.
    climconst.3 $e |- ( ph -> F e. V ) $.
    climconst.4 $e |- ( ph -> A e. CC ) $.
    climconst.5 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    $( An (eventually) constant sequence converges to its value.  (Contributed
       by NM, 28-Aug-2005.)  (Revised by Mario Carneiro, 31-Jan-2014.) $)
    climconst $p |- ( ph -> F ~~> A ) $=
      ( vx vj wbr cabs cfv cv wcel cc0 cli cmin co clt cuz wral wrex wa cz uzid
      crp syl syl6eleqr adantr wceq subidd fveq2d syl6eq rpgt0 adantl ralrimivw
      abs0 eqbrtrd fveq2 syl6eqr raleqdv rspcev syl2anc ralrimiva clim2c mpbird
      cc ) ADBUAOBBUBUCZPQZMRZUDOZCNRZUEQZUFZNGUGZMUKUFAVTMUKAVOUKSZUHZEGSZVPCG
      UFZVTAWCWAAEEUEQZGAEUISEWESIEUJULHUMUNWBVPCGWBVNTVOUDAVNTUOWAAVNTPQTAVMTP
      ABKUPUQVBURUNWATVOUDOAVOUSUTVCVAVSWDNEGVQEUOZVPCVRGWFVRWEGVQEUEVDHVEVFVGV
      HVIAMBBNCDEFGHIJLKABVLSCRGSKUNVJVK $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( A constant sequence converges to its value.  (Contributed by Mario
       Carneiro, 16-Sep-2014.) $)
    rlimconst $p |- ( ( A C_ RR /\ B e. CC ) -> ( x e. A |-> B ) ~~>r B ) $=
      ( vz vy cr wss wcel wa wbr cv cle cabs cfv clt wi wral crp cc0 ralrimiva
      cc cmpt crli cmin co wrex 0re simpllr subidd fveq2d syl6eq rpgt0 ad2antlr
      abs0 eqbrtrd breq1 imbi1d ralbidv rspcev sylancr simplr simpl simpr rlim2
      a1d wceq mpbird ) BFGZCUAHZIZABCUBCUCJDKZAKZLJZCCUDUEZMNZEKZOJZPZABQZDFUF
      ZERQVJVTERVJVPRHZIZSFHSVLLJZVQPZABQZVTUGWBWDABWBVLBHZIZVQWCWGVOSVPOWGVOSM
      NSWGVNSMWGCVHVIWAWFUHUIUJUNUKWASVPOJVJWFVPULUMUOVETVSWEDSFVKSVFZVRWDABWHV
      MWCVQVKSVLLUPUQURUSUTTVJEDABCCVJVIABVHVIWFVATVHVIVBVHVIVCVDVG $.
  $}

  ${
    $d j k w y z A $.  $d j k w y z F $.  $d j k y z ph $.  $d j k z Z $.
    $d j k M $.
    rlimclim1.1 $e |- Z = ( ZZ>= ` M ) $.
    rlimclim1.2 $e |- ( ph -> M e. ZZ ) $.
    rlimclim1.3 $e |- ( ph -> F ~~>r A ) $.
    rlimclim1.4 $e |- ( ph -> Z C_ dom F ) $.
    $( Forward direction of ~ rlimclim .  (Contributed by Mario Carneiro,
       16-Sep-2014.) $)
    rlimclim1 $p |- ( ph -> F ~~> A ) $=
      ( vk vw wbr cv cfv wral wcel wa cle cr cc vy vj vz cli cmin cabs clt wrex
      co cuz crp wi cdm cvv fvex rgenw a1i simpr cmpt crli wf rlimf syl feqmptd
      adantr eqbrtrrd rlimi cfl c1 caddc cif cz ad2antrr flcl peano2zd ad2antrl
      ifcld zred max1 syl2anc eluz2 syl3anbrc syl6eleqr ad3antrrr uztrn2 sseldd
      sylan simplrr simplrl eluzelre adantl fllep1 max2 letrd eluzle wceq breq2
      fveq2 oveq1d fveq2d breq1d imbi12d rspcv syl3c ralrimiva rspcev rexlimddv
      wss raleqdv cpm rlimpm eqidd rlimcl sselda ffvelrnda syldan clim2c mpbird
      ) ACBUDLJMZCNZBUEUIZUFNZUAMZUGLZJUBMZUJNZOZUBEUHZUAUKOAYHUAUKAYCUKPZQZUCM
      ZKMZRLZYLCNZBUEUIZUFNZYCUGLZULZKCUMZOZYHUCSYJUCKYSYNBYCUNYNUNPZKYSOYJUUAK
      YSYLCUOUPUQAYIURYJCKYSYNUSBUTYJKYSTCAYSTCVAZYIACBUTLZUUBHBCVBVCZVEVDAUUCY
      IHVEVFVGYJYKSPZYTQZQZDYKVHNZVIVJUIZRLZUUIDVKZEPZYDJUUKUJNZOZYHUUGUUKDUJNZ
      EUUGDVLPZUUKVLPDUUKRLZUUKUUOPAUUPYIUUFGVMZUUGUUJUUIDVLUUEUUIVLPYJYTUUEUUH
      YKVNVOZVPZUURVQUUGDSPZUUISPZUUQUUGDUURVRZUUGUUIUUTVRDUUIVSVTDUUKWAWBFWCZU
      UGYDJUUMUUGXSUUMPZQZXSYSPZYTYKXSRLZYDUVFEYSXSAEYSXHYIUUFUVEIWDUUGUULUVEXS
      EPZUVDDXSUUKEFWEWGWFYJUUEYTUVEWHUVFYKUUKXSYJUUEYTUVEWIZUVFUUJUUIDSUVFUUEU
      VBUVJUUEUUIUUSVRVCZUUGUVAUVEUVCVEZVQZUVEXSSPUUGUUKXSWJWKUVFYKUUIUUKUVJUVK
      UVMUVFUUEYKUUIRLUVJYKWLVCUVFUVAUVBUUIUUKRLUVLUVKDUUIWMVTWNUVEUUKXSRLUUGUU
      KXSWOWKWNYRUVHYDULKXSYSYLXSWPZYMUVHYQYDYLXSYKRWQUVNYPYBYCUGUVNYOYAUFUVNYN
      XTBUEYLXSCWRWSWTXAXBXCXDXEYGUUNUBUUKEYEUUKWPYDJYFUUMYEUUKUJWRXIXFVTXGXEAU
      ABXTUBJCDTSXJUIZEFGAUUCCUVOPHBCXKVCAUVIQXTXLAUUCBTPHBCXMVCAUVIUVGXTTPAEYS
      XSIXNAYSTXSCUUDXOXPXQXR $.
  $}

  ${
    $d k w y z A $.  $d k w y z F $.  $d k w y z ph $.  $d k w z Z $.
    $d z M $.
    rlimclim.1 $e |- Z = ( ZZ>= ` M ) $.
    rlimclim.2 $e |- ( ph -> M e. ZZ ) $.
    rlimclim.3 $e |- ( ph -> F : Z --> CC ) $.
    $( A sequence on an upper integer set converges in the real sense iff it
       converges in the integer sense.  (Contributed by Mario Carneiro,
       16-Sep-2014.) $)
    rlimclim $p |- ( ph -> ( F ~~>r A <-> F ~~> A ) ) $=
      ( vz vw vy vk wbr wa cz wcel adantr cv cfv cr crli cli simpr cdm wss wceq
      cc wf fdm eqimss2 3syl rlimclim1 cle cmin co cabs clt wi wral wrex climcl
      crp adantl cuz ad2antrr eqidd simplr climi2 eqsstri simplrl sseldi simprl
      uzssz simprr eluz2 syl3anbrc simplrr fveq2 oveq1d fveq2d breq1d sylc expr
      rspcv ralrimiva reximdva zssre sstri ssrexv ax-mp syl6 mpd rlim mpbir2and
      a1i impbida ) ACBUAMZCBUBMZAWQNBCDEFADOPZWQGQAWQUCAECUDZUEZWQAEUGCUHZWTEU
      FXAHEUGCUIEWTUJUKQULAWRNZWQBUGPZIRZJRZUMMZXFCSZBUNUOZUPSZKRZUQMZURZJEUSZI
      TUTZKVBUSWRXDABCVAVCXCXOKVBXCXKVBPZNZLRZCSZBUNUOZUPSZXKUQMZLXEVDSZUSZIEUT
      ZXOXQBXSXKILCDEFAWSWRXPGVEXCXPUCXQXREPNXSVFAWRXPVGVHXQYEXNIEUTZXOXQYDXNIE
      XQXEEPZYDXNXQYGYDNNZXMJEYHXFEPZXGXLYHYIXGNZNZXFYCPZYDXLYKXEOPXFOPXGYLYKEO
      XEEDVDSOFDVMVIZXQYGYDYJVJVKYKEOXFYMYHYIXGVLVKYHYIXGVNXEXFVOVPXQYGYDYJVQYB
      XLLXFYCXRXFUFZYAXJXKUQYNXTXIUPYNXSXHBUNXRXFCVRVSVTWAWDWBWCWEWCWFETUEZYFXO
      UREOTYMWGWHZXNIETWIWJWKWLWEXCKIJEXHBCAXBWRHQYOXCYPWOXCYINXHVFWMWNWP $.
  $}

  ${
    $d j x y A $.  $d j k x y B $.  $d j n y C $.  $d j k x y D $.  $d j k M $.
    $d j k n x y ph $.  $d j k n x y Z $.
    climrlim2.1 $e |- Z = ( ZZ>= ` M ) $.
    climrlim2.2 $e |- ( n = ( |_ ` x ) -> B = C ) $.
    climrlim2.3 $e |- ( ph -> A C_ RR ) $.
    climrlim2.4 $e |- ( ph -> M e. ZZ ) $.
    climrlim2.5 $e |- ( ph -> ( n e. Z |-> B ) ~~> D ) $.
    climrlim2.6 $e |- ( ( ph /\ n e. Z ) -> B e. CC ) $.
    climrlim2.7 $e |- ( ( ph /\ x e. A ) -> M <_ x ) $.
    $( Produce a real limit from an integer limit, where the real function is
       only dependent on the integer part of ` x ` .  (Contributed by Mario
       Carneiro, 2-May-2016.) $)
    climrlim2 $p |- ( ph -> ( x e. A |-> C ) ~~>r D ) $=
      ( wbr wcel cfv wa vk vy vj cmpt cli crli cc cv cmin co cabs clt wral wrex
      cuz crp cle wi cr cfl eluzelz eleq2s ad2antlr sselda flcld adantlr simprr
      cz ad2ant2r wb flge syl2anc mpbid eluz2 syl3anbrc simpr ralimi wceq fveq2
      oveq1d fveq2d breq1d syl2im adantr syl6eleqr ralrimiva eleq1d sylc fvmptg
      rspcv eqid sylibd com23 ralrimdva eluzelre adantl jctild expimpd reximdv2
      expr ralimdva adantld cvv climrel brrelexi syl eqidd clim2 climcl 3imtr4d
      rlim2 mpd ) AGIDUDZFUEQZBCEUDFUFQZNAFUGRZUAUHZXMSZUGRZXRFUIUJZUKSZUBUHZUL
      QZTZUAUCUHZUOSZUMZUCIUNZUBUPUMZTYEBUHZUQQZEFUIUJZUKSZYBULQZURZBCUMZUCUSUN
      ZUBUPUMZXNXOAYIYRXPAYHYQUBUPAYBUPRZTZYGYPUCIUSYTYEIRZYGYEUSRZYPTYTUUATZYG
      YPUUBUUCYGYOBCUUCYJCRZTYKYGYNUUCUUDYKYGYNURUUCUUDYKTZTZYGYJUTSZXMSZFUIUJZ
      UKSZYBULQZYNUUFUUGYFRZYGYCUAYFUMUUKUUFYEVHRZUUGVHRZYEUUGUQQZUULUUAUUMYTUU
      EUUMYEHUOSZIHYEVAJVBVCZYTUUDUUNUUAYKAUUDUUNYSAUUDTZYJACUSYJLVDZVEZVFVIUUF
      YKUUOUUCUUDYKVGUUFYJUSRZUUMYKUUOVJYTUUDUVAUUAYKAUUDUVAYSUUSVFVIUUQYJYEVKV
      LVMYEUUGVNVOYDYCUAYFXSYCVPVQYCUUKUAUUGYFXQUUGVRZYAUUJYBULUVBXTUUIUKUVBXRU
      UHFUIXQUUGXMVSVTWAWBWJWCUUFUUJYMYBULUUFUUIYLUKUUFUUHEFUIYTUUDUUHEVRZUUAYK
      AUUDUVCYSUURUUGIRZEUGRZUVCUURUUGUUPIUURHVHRZUUNHUUGUQQZUUGUUPRAUVFUUDMWDZ
      UUTUURHYJUQQZUVGPUURUVAUVFUVIUVGVJUUSUVHYJHVKVLVMHUUGVNVOJWEZUURUVDDUGRZG
      IUMZUVEUVJAUVLUUDAUVKGIOWFWDUVKUVEGUUGIGUHUUGVRDEUGKWGWJWHZGUUGDEIUGXMKXM
      WKWIVLVFVIVTWAWBWLWTWMWNUUAUUBYTUUBYEUUPIHYEWOJVBWPWQWRWSXAXBAUBFXRUCUAXM
      HXCIJMAXNXMXCRNXMFUEXDXEXFAXQIRTXRXGXHAUBUCBCEFAUVEBCUVMWFLAXNXPNFXMXIXFX
      KXJXL $.
  $}

  ${
    $d k A $.  $d k M $.  $d k Z $.
    climconst2.1 $e |- ( ZZ>= ` M ) C_ Z $.
    climconst2.2 $e |- Z e. _V $.
    $( A constant sequence converges to its value.  (Contributed by NM,
       6-Feb-2008.)  (Revised by Mario Carneiro, 31-Jan-2014.) $)
    climconst2 $p |- ( ( A e. CC /\ M e. ZZ ) -> ( Z X. { A } ) ~~> A ) $=
      ( vk cc wcel cz wa csn cxp cvv cuz cfv eqid simpr snex xpex a1i fvconst2g
      simpl cv wceq sseli syl2an climconst ) AGHZBIHZJZAFCAKZLZBMBNOZUMPUHUIQUL
      MHUJCUKEARSTUHUIUBZUJUHFUCZCHUOULOAUDUOUMHUNUMCUODUECAUOGUAUFUG $.
  $}

  $( The zero sequence converges to zero.  (Contributed by NM, 2-Oct-1999.)
     (Revised by Mario Carneiro, 31-Jan-2014.) $)
  climz $p |- ( ZZ X. { 0 } ) ~~> 0 $=
    ( cc0 cc wcel cz csn cxp cli wbr 0cn 0z uzssz zex climconst2 mp2an ) ABCADC
    DAEFAGHIJAADAKLMN $.

  ${
    $d j k A $.  $d j k B $.  $d j k C $.  $d j k x y F $.  $d j k x y ph $.
    rlimuni.1 $e |- ( ph -> F : A --> CC ) $.
    rlimuni.2 $e |- ( ph -> sup ( A , RR* , < ) = +oo ) $.
    ${
      rlimuni.3 $e |- ( ph -> F ~~>r B ) $.
      rlimuni.4 $e |- ( ph -> F ~~>r C ) $.
      $( A real function whose domain is unbounded above converges to at most
         one limit.  (Contributed by Mario Carneiro, 8-May-2016.) $)
      rlimuni $p |- ( ph -> B = C ) $=
        ( vj vk wbr clt wa cr wrex wcel cc syl adantr cv cle cfv cmin cabs cdiv
        co c2 wi wral wceq crli rlimcl ad2antrr subcld abscld ffvelrnda adantlr
        wn ltnrd abssubd breq1d anbi1d abs3lem syl22anc sylbid imim2d impd mtod
        com23 nrexdv r19.29r nsyl cxr csup cpnf wss wb cdm wf fdm rlimss ressxr
        eqsstr3d syl6ss supxrunb1 mpbird r19.29 ffvelrn ralrimiva simpr subne0d
        ex wne absrpcld rphalfcld cmpt feqmptd eqbrtrrd rlimi rexanre mpbir2and
        necon1bd mpd ) AJUAZKUAZUBLZXFEUCZCUDUGUEUCZCDUDUGZUEUCZUHUFUGZMLZXHDUD
        UGUEUCXLMLZNZUIZKBUJZJOPZUSCDUKAXRXGKBPZXQNZJOPZAXTJOAXEOQZNZXGXPNZKBPX
        TYCYDKBYCXFBQZNZYDXKXKMLZYFXKYFXJYFCDACRQZYBYEAECULLZYHHCEUMSZUNZADRQZY
        BYEAEDULLZYLIDEUMSZUNZUOUPZUTYFXGXPYGYFXPXGYGYFXOYGXGYFXOCXHUDUGUEUCZXL
        MLZXNNZYGYFXMYRXNYFXIYQXLMYFXHCAYEXHRQZYBABRXFEFUQURZYKVAVBVCYFYHYLYTXK
        OQYSYGUIYKYOUUAYPCDXHXKVDVEVFVGVJVHVIVKXGXPKBVLVMVKAXSJOUJZXRYAUIAUUBBV
        NMVOVPUKZGABVNVQUUBUUCVRABOVNABEVSZOABREVTZUUDBUKFBREWASAYIUUDOVQHCEWBS
        WDZWCWEJKBWFSWGUUBXRYAXSXQJOWHWMSVIAXRCDACDWNZXRAUUGNZXRXGXMUIKBUJJOPZX
        GXNUIKBUJJOPZUUHJKBXHCXLRUUHUUEYTKBUJAUUEUUGFTZUUEYTKBBRXFEWIWJSZUUHXKU
        UHXJUUHCDAYHUUGYJTZAYLUUGYNTZUOUUHCDUUMUUNAUUGWKWLWOWPZUUHEKBXHWQZCULUU
        HKBREUUKWRZAYIUUGHTWSWTUUHJKBXHDXLRUULUUOUUHEUUPDULUUQAYMUUGITWSWTUUHBO
        VQZXRUUIUUJNVRAUURUUGUUFTXMXNBJKXASXBWMXCXD $.
    $}

    $( Two ways to express that a function has a limit.  (The expression
       ` ( ~~>r `` F ) ` is sometimes useful as a shorthand for "the unique
       limit of the function ` F ` ").  (Contributed by Mario Carneiro,
       8-May-2016.) $)
    rlimdm $p |- ( ph -> ( F e. dom ~~>r <-> F ~~>r ( ~~>r ` F ) ) ) $=
      ( vx vy crli cdm wcel cfv wbr cv wex eldmg ibi wa cvv wceq adantr cio vex
      simpr df-fv wb cc cxr clt csup cpnf simprr simprl rlimuni expr syl5ibrcom
      wf breq2 impbid iota5 mpan2 syl5eq breqtrrd exlimdv syl5 rlimrel releldmi
      ex impbid1 ) ACHIZJZCCHKZHLZVJCFMZHLZFNZAVLVJVOFCHVIOPAVNVLFAVNVLAVNQZCVM
      VKHAVNUCZVPVKCGMZHLZGUAZVMGCHUDVPVMRJZVTVMSFUBVPVSGVMRVPVSVRVMSZUEWAVPVSW
      BAVNVSWBAVNVSQZQBVRVMCABUFCUPWCDTABUGUHUIUJSWCETAVNVSUKAVNVSULUMUNVPVSWBV
      NVQVRVMCHUQUOURTUSUTVAVBVGVCVDCVKHVEVFVH $.
  $}

  ${
    $d j k A $.  $d j k B $.  $d j k F $.
    $( An infinite sequence of complex numbers converges to at most one limit.
       (Contributed by NM, 2-Oct-1999.)  (Proof shortened by Mario Carneiro,
       31-Jan-2014.) $)
    climuni $p |- ( ( F ~~> A /\ F ~~> B ) -> A = B ) $=
      ( vk vj wbr wa c1 wcel cfv cc cmin co cabs clt wral cn wrex nnuz wi cz 1z
      cli wceq wne wn w3a cv c2 cdiv 1zzd climcl 3ad2ant1 3ad2ant2 subcld simp3
      cuz subne0d absrpcld rphalfcld eqidd simp1 climi rexanuz2 sylanbrc c0 nnz
      simp2 uzid ne0i r19.2z ex simpr simpll abssubd breq1d simplr subcl adantr
      4syl cr abscld abs3lem syl22anc ltnrd pm2.21d syld sylbid adantld expimpd
      expd impr rexlimdvw sylan9r rexlimdva syl2anc mpd 3expia necon4ad mpi ) C
      AUCFZCBUCFZGZHUAIZABUDUBXCXDABXAXBABUEZXDUFZXAXBXEUGZDUHZCJZKIZXIALMNJZAB
      LMZNJZUIUJMZOFZGZXJXIBLMNJXNOFZGZGZDEUHZUQJZPZEQRZXFXGXPDYAPEQRXRDYAPEQRY
      CXGAXIXNEDCHQSXGUKZXGXMXGXLXGABXAXBAKIZXEACULUMZXBXABKIZXEBCULUNZUOXGABYF
      YHXAXBXEUPURUSUTZXGXHQIGXIVAZXAXBXEVBVCXGBXIXNEDCHQSYDYIYJXAXBXEVHVCXPXRE
      DHQSVDVEXGYEYGYCXFTYFYHYEYGGZYBXFEQXTQIZYBXSDYARZYKXFYLXTUAIXTYAIYAVFUEZY
      BYMTXTVGXTVIYAXTVJYNYBYMXSDYAVKVLVTYKXSXFDYAYKXPXRXFYKXPGXQXFXJYKXJXOXQXF
      TZYKXJGZXOAXILMNJZXNOFZYOYPXKYQXNOYPXIAYKXJVMZYEYGXJVNZVOVPYPYRXQXFYPYRXQ
      GZXMXMOFZXFYPYEYGXJXMWAIUUAUUBTYTYEYGXJVQYSYPXLYKXLKIXJABVRVSWBZABXIXMWCW
      DYPUUBXFYPXMUUCWEWFWGWKWHWLWIWJWMWNWOWPWQWRWSWT $.
  $}

  ${
    $d x y z $.
    $( The limit relation is function-like, and with range the complex numbers.
       (Contributed by Mario Carneiro, 31-Jan-2014.) $)
    fclim $p |- ~~> : dom ~~> --> CC $=
      ( vx vy vz cli cdm cc wf wfn crn wss wfun wrel cv wbr wa weq wal mpbir2an
      ax-gen wcel climrel climuni dffun2 funfn mpbi wex vex elrn climcl exlimiv
      wi sylbi ssriv df-f ) DEZFDGDUOHZDIZFJDKZUPURDLAMZBMZDNZUSCMZDNOBCPUKZCQZ
      BQZAQUAVEAVDBVCCUTVBUSUBSSSABCDUCRDUDUEBUQFUTUQTVAAUFUTFTZAUTDBUGUHVAVFAU
      TUSUIUJULUMUOFDUNR $.
  $}

  $( Two ways to express that a function has a limit.  (The expression
     ` ( ~~> `` F ) ` is sometimes useful as a shorthand for "the unique limit
     of the function ` F ` ").  (Contributed by Mario Carneiro,
     18-Mar-2014.) $)
  climdm $p |- ( F e. dom ~~> <-> F ~~> ( ~~> ` F ) ) $=
    ( cli cdm cc wf wfun wcel cfv wbr wb fclim ffun funfvbrb mp2b ) BCZDBEBFAOG
    AABHBIJKODBLABMN $.

  ${
    $d y A $.  $d x y F $.
    $( An infinite sequence of complex numbers converges to at most one limit.
       (Contributed by NM, 25-Dec-2005.) $)
    climeu $p |- ( F ~~> A -> E! x F ~~> x ) $=
      ( vy cli wbr cv wex wa weq wi wal weu wcel climcl breq2 spcegv mpcom nfv
      cc climuni gen2 jctir cbveu eu4 bitri sylibr ) CBEFZCDGZEFZDHZUJCAGZEFZID
      AJKZALDLZIZUMAMZUHUKUOBTNUHUKBCOUJUHDBTUIBCEPQRUNDAUIULCUAUBUCUQUJDMUPUMU
      JADUMDSUJASULUICEPUDUJUMDAUIULCEPUEUFUG $.

    $( An infinite sequence of complex numbers converges to at most one limit.
       (Contributed by NM, 25-Dec-2005.) $)
    climreu $p |- ( F ~~> A -> E! x e. CC F ~~> x ) $=
      ( cli wbr cv weu cc wreu climeu climcl pm4.71ri eubii df-reu bitr4i sylib
      wcel wa ) CBDECAFZDEZAGZTAHIZABCJUASHQZTRZAGUBTUDATUCSCKLMTAHNOP $.

    $( An infinite sequence of complex numbers converges to at most one limit.
       (Contributed by Mario Carneiro, 13-Jul-2013.) $)
    climmo $p |- E* x F ~~> x $=
      ( vy cv cli wbr wmo wex weu breq2 cbvexv climeu exlimiv sylbi df-mo mpbir
      wi ) BADZEFZAGSAHZSAIZQTBCDZEFZCHUASUCACRUBBEJKUCUACAUBBLMNSAOP $.
  $}

  ${
    $d m x y z A $.  $d x y z B $.  $d m x y z F $.
    $( The restriction of a function converges if the original converges.
       (Contributed by Mario Carneiro, 16-Sep-2014.) $)
    rlimres $p |- ( F ~~>r A -> ( F |` B ) ~~>r A ) $=
      ( vy vz vx crli wbr cres cc wcel cv cfv wi wral cr wrex crp wa wf cmin co
      cle cabs clt cdm cin inss1 ssralv ax-mp reximi ralimi anim2i rlimf rlimss
      wss a1i eqidd rlim fssres sylancl resres wfn wceq fnresdm reseq1d syl5eqr
      ffn 3syl feq1d mpbid syl5ss inss2 sseli fvres syl adantl 3imtr4d pm2.43i
      ) CAGHZCBIZAGHZVTAJKZDLELZUCHWDCMZAUAUBUDMFLUEHNZECUFZOZDPQZFROZSZWCWFEWG
      BUGZOZDPQZFROZSZVTWBWKWPNVTWJWOWCWIWNFRWHWMDPWLWGUPZWHWMNWGBUHZWFEWLWGUIU
      JUKULUMUQVTFDEWGWEACACUNZACUOZVTWDWGKSWEURUSVTFDEWLWEAWAVTWLJCWLIZTZWLJWA
      TVTWGJCTZWQXBWSWRWGJWLCUTVAVTWLJXAWAVTXACWGIZBIWACWGBVBVTXDCBVTXCCWGVCXDC
      VDWSWGJCVHWGCVEVIVFVGVJVKVTWLWGPWRWTVLWDWLKZWDWAMWEVDZVTXEWDBKXFWLBWDWGBV
      MVNWDBCVOVPVQUSVRVS $.

    $( The restriction of an eventually upper bounded function is eventually
       upper bounded.  (Contributed by Mario Carneiro, 15-Sep-2014.) $)
    lo1res $p |- ( F e. <_O(1) -> ( F |` A ) e. <_O(1) ) $=
      ( vx vy vm clo1 wcel cres cv cle wbr cfv wi wral cr wrex wf wss wceq syl
      cdm lo1f lo1bdd mpdan inss1 ssralv ax-mp inss2 sseli fvres breq1d ralbiia
      cin imbi2d sylibr reximi wb fssres sylancl resres wfn ffn fnresdm reseq1d
      3syl syl5eqr feq1d mpbid lo1dm syl5ss ello12 syl2anc mpbird ) BFGZBAHZFGZ
      CIDIZJKZVQVOLZEIZJKZMZDBUAZAUMZNZEOPZCOPZVNVRVQBLZVTJKZMZDWCNZEOPZCOPZWGV
      NWCOBQZWMBUBZCDWCEBUCUDWLWFCOWKWEEOWKWJDWDNZWEWDWCRZWKWPMWCAUEZWJDWDWCUFU
      GWBWJDWDVQWDGZWAWIVRWSVSWHVTJWSVQAGVSWHSWDAVQWCAUHUIVQABUJTUKUNULUOUPUPTV
      NWDOVOQZWDORVPWGUQVNWDOBWDHZQZWTVNWNWQXBWOWRWCOWDBURUSVNWDOXAVOVNXABWCHZA
      HVOBWCAUTVNXCBAVNWNBWCVAXCBSWOWCOBVBWCBVCVEVDVFVGVHVNWDWCOWRBVIVJCDWDEVOV
      KVLVM $.

    $( The restriction of an eventually bounded function is eventually bounded.
       (Contributed by Mario Carneiro, 15-Sep-2014.)  (Proof shortened by Mario
       Carneiro, 26-May-2016.) $)
    o1res $p |- ( F e. O(1) -> ( F |` A ) e. O(1) ) $=
      ( co1 wcel cres cabs ccom clo1 resco cdm cc wf wb o1f lo1o1 syl syl5eqelr
      ibi lo1res cin fresin 3syl mpbird ) BCDZBAEZCDZFUEGZHDZUDUGFBGZAEZHFBAIUD
      UIHDZUJHDUDUKUDBJZKBLZUDUKMBNZULBOPRAUISPQUDUMULATZKUELUFUHMUNULKBAUAUOUE
      OUBUC $.
  $}

  ${
    $d x A $.  $d x B $.
    rlimres2.1 $e |- ( ph -> A C_ B ) $.
    ${
      rlimres2.2 $e |- ( ph -> ( x e. B |-> C ) ~~>r D ) $.
      $( The restriction of a function converges if the original converges.
         (Contributed by Mario Carneiro, 16-Sep-2014.) $)
      rlimres2 $p |- ( ph -> ( x e. A |-> C ) ~~>r D ) $=
        ( cmpt cres crli resmptd wbr rlimres syl eqbrtrrd ) ABDEIZCJZBCEIFKABDC
        EGLAQFKMRFKMHFCQNOP $.
    $}

    ${
      lo1res2.2 $e |- ( ph -> ( x e. B |-> C ) e. <_O(1) ) $.
      $( The restriction of a function is eventually bounded if the original
         is.  (Contributed by Mario Carneiro, 26-May-2016.) $)
      lo1res2 $p |- ( ph -> ( x e. A |-> C ) e. <_O(1) ) $=
        ( cmpt cres clo1 resmptd wcel lo1res syl eqeltrrd ) ABDEHZCIZBCEHJABDCE
        FKAPJLQJLGCPMNO $.
    $}

    ${
      o1res2.2 $e |- ( ph -> ( x e. B |-> C ) e. O(1) ) $.
      $( The restriction of a function is eventually bounded if the original
         is.  (Contributed by Mario Carneiro, 21-May-2016.) $)
      o1res2 $p |- ( ph -> ( x e. A |-> C ) e. O(1) ) $=
        ( cmpt cres co1 resmptd wcel o1res syl eqeltrrd ) ABDEHZCIZBCEHJABDCEFK
        APJLQJLGCPMNO $.
    $}
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z F $.  $d x y z ph $.
    lo1resb.1 $e |- ( ph -> F : A --> RR ) $.
    lo1resb.2 $e |- ( ph -> A C_ RR ) $.
    lo1resb.3 $e |- ( ph -> B e. RR ) $.
    $( The restriction of a function to an unbounded-above interval is
       eventually upper bounded iff the original is eventually upper bounded.
       (Contributed by Mario Carneiro, 26-May-2016.) $)
    lo1resb $p |- ( ph ->
      ( F e. <_O(1) <-> ( F |` ( B [,) +oo ) ) e. <_O(1) ) ) $=
      ( vx vy vz clo1 wcel cv cr cle wbr wi wa adantr sylbid cpnf cico cres cin
      co lo1res cfv cmpt feqmptd reseq1d resmpt3 syl6eq eleq1d wral wrex syl5ss
      inss1 sseli ffvelrn syl2an ello1mpt cif elin imbi1i impexp bitri ad2antrr
      wf wss sselda elicopnf baibd syl2anc anbi1d simplrl syl3anc bitr4d imbi1d
      maxle syl5bbr pm5.74da syl5bb ralbidv2 simprl ifcld simprr ello12r 3expia
      wb syl22anc rexlimdvva impbid2 ) ADKLZDCUAUBUEZUCZKLZWNDUFAWPHBWNUDZHMZDU
      GZUHZKLZWMAWOWTKAWOHBWSUHZWNUCWTADXBWNAHBNDEUIUJHBWNWSUKULUMAXAIMZWROPZWS
      JMZOPZQZHWQUNZJNUOINUOWMAHIWQWSJAWQBNBWNUQZFUPABNDVHZWRBLZWSNLWRWQLZEWQBW
      RXIURBNWRDUSUTVAAXHWMIJNNAXCNLZXENLZRZRZXHCXCOPZXCCVBZWROPZXFQZHBUNZWMXPX
      GXTHWQBXLXGQZXKWRWNLZXGQZQZXPXKXTQYBXKYCRZXGQYEXLYFXGWRBWNVCVDXKYCXGVEVFX
      PXKYDXTYDYCXDRZXFQXPXKRZXTYCXDXFVEYHYGXSXFYHYGCWROPZXDRZXSYHYCYIXDYHCNLZW
      RNLZYCYIWIAYKXOXKGVGZXPBNWRABNVIZXOFSZVJZYKYCYLYICWRVKVLVMVNYHYKXMYLXSYJW
      IYMAXMXNXKVOYPCXCWRVSVPVQVRVTWAWBWCXPXJYNXRNLZXNYAWMQAXJXOESYOXPXQXCCNAXM
      XNWDAYKXOGSWEAXMXNWFXJYNRYQXNRYAWMHBXRDXEWGWHWJTWKTTWL $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z F $.  $d x y z ph $.
    rlimresb.1 $e |- ( ph -> F : A --> CC ) $.
    rlimresb.2 $e |- ( ph -> A C_ RR ) $.
    rlimresb.3 $e |- ( ph -> B e. RR ) $.
    $( The restriction of a function to an unbounded-above interval converges
       iff the original converges.  (Contributed by Mario Carneiro,
       16-Sep-2014.) $)
    rlimresb $p |- ( ph -> ( F ~~>r C <-> ( F |` ( B [,) +oo ) ) ~~>r C ) ) $=
      ( vx vz vy crli wbr cc wcel wi wa wral cr adantr cv cfv cmpt cpnf cico co
      cin cres rlimcl a1i wb cle cmin cabs clt wrex crp simprrl sseldd elicopnf
      wss biimpa adantrr simpld simprd simprrr letrd mpbir2and anassrs pm5.74da
      syl biimt bi2.04 syl6bb elin imbi1i impexp bitri syl6bbr ralbidv2 ralbidv
      rexbidva ffvelrnda ralrimiva simpr rlim3 inss1 sylan2 syl5ss ex pm5.21ndd
      3bitr4d feqmptd breq1d resres wf wfn wceq ffn fnresdm 3syl reseq1d resmpt
      sseli ax-mp syl6eq 3eqtr3a ) AIBIUAZEUBZUCZDLMZIBCUDUEUFZUGZXIUCZDLMZEDLM
      EXLUHZDLMADNOZXKXOXKXQPADXJUIUJXOXQPADXNUIUJAXQXKXOUKAXQQZJUAZXHULMZXIDUM
      UFUNUBKUAUOMZPZIBRZJXLUPZKUQRZYBIXMRZJXLUPZKUQRZXKXOAYEYHUKXQAYDYGKUQAYCY
      FJXLAXSXLOZQZYBYBIBXMYJXHBOZYBPYKXHXLOZYBPZPZXHXMOZYBPZYJYKYBYMYJYKQZYBXT
      YLYAPZPYMYQXTYAYRYQXTQYLYAYRUKYJYKXTYLAYIYKXTQZYLAYIYSQZQZYLXHSOZCXHULMZU
      UABSXHABSVAZYTGTAYIYKXTURUSZUUACXSXHACSOZYTHTZUUAXSSOZCXSULMZAYIUUHUUIQZY
      SAYIUUJAUUFYIUUJUKHCXSUTVKVBVCZVDUUEUUAUUHUUIUUKVEAYIYKXTVFVGUUAUUFYLUUBU
      UCQUKUUGCXHUTVKVHVIVIYLYAVLVKVJXTYLYAVMVNVJYPYKYLQZYBPYNYOUULYBXHBXLVOVPY
      KYLYBVQVRVSVTWBWATXRKJIBXIDCAXINOZIBRXQAUUMIBABNXHEFWCZWDTAUUDXQGTAXQWEZA
      UUFXQHTZWFXRKJIXMXIDCAUUMIXMRXQAUUMIXMYOAYKUUMXMBXHBXLWGZXDUUNWHWDTAXMSVA
      XQAXMBSUUQGWITUUOUUPWFWLWJWKAEXJDLAIBNEFWMZWNAXPXNDLAEBUHZXLUHEXMUHZXPXNE
      BXLWOAUUSEXLABNEWPEBWQUUSEWRFBNEWSBEWTXAXBAUUTXJXMUHZXNAEXJXMUURXBXMBVAUV
      AXNWRUUQIBXMXIXCXEXFXGWNWL $.

    $( The restriction of a function to an unbounded-above interval is
       eventually bounded iff the original is eventually bounded.  (Contributed
       by Mario Carneiro, 9-Apr-2016.) $)
    o1resb $p |- ( ph -> ( F e. O(1) <-> ( F |` ( B [,) +oo ) ) e. O(1) ) ) $=
      ( vx vy vz co1 wcel cv cc cle wbr wi cr wa adantr cpnf cico co cres o1res
      cin cfv cmpt feqmptd reseq1d resmpt3 syl6eq eleq1d cabs wral inss1 syl5ss
      wrex wf sseli ffvelrn syl2an elo1mpt elin imbi1i impexp bitri wb ad2antrr
      cif wss sselda elicopnf baibd syl2anc anbi1d simplrl maxle syl3anc bitr4d
      imbi1d syl5bbr pm5.74da syl5bb ralbidv2 simprl ifcld simprr elo12r 3expia
      syl22anc sylbid rexlimdvva impbid2 ) ADKLZDCUAUBUCZUDZKLZWPDUEAWRHBWPUFZH
      MZDUGZUHZKLZWOAWQXBKAWQHBXAUHZWPUDXBADXDWPAHBNDEUIUJHBWPXAUKULUMAXCIMZWTO
      PZXAUNUGJMZOPZQZHWSUOZJRURIRURWOAHIWSXAJAWSBRBWPUPZFUQABNDUSZWTBLZXANLWTW
      SLZEWSBWTXKUTBNWTDVAVBVCAXJWOIJRRAXERLZXGRLZSZSZXJCXEOPZXECVJZWTOPZXHQZHB
      UOZWOXRXIYBHWSBXNXIQZXMWTWPLZXIQZQZXRXMYBQYDXMYESZXIQYGXNYHXIWTBWPVDVEXMY
      EXIVFVGXRXMYFYBYFYEXFSZXHQXRXMSZYBYEXFXHVFYJYIYAXHYJYICWTOPZXFSZYAYJYEYKX
      FYJCRLZWTRLZYEYKVHAYMXQXMGVIZXRBRWTABRVKZXQFTZVLZYMYEYNYKCWTVMVNVOVPYJYMX
      OYNYAYLVHYOAXOXPXMVQYRCXEWTVRVSVTWAWBWCWDWEXRXLYPXTRLZXPYCWOQAXLXQETYQXRX
      SXECRAXOXPWFAYMXQGTWGAXOXPWHXLYPSYSXPSYCWOHBXTDXGWIWJWKWLWMWLWLWN $.
  $}

  ${
    $d k x y A $.  $d k x y F $.  $d k x y G $.  $d k x y ph $.  $d k y Z $.
    $d y M $.
    climeq.1 $e |- Z = ( ZZ>= ` M ) $.
    climeq.2 $e |- ( ph -> F e. V ) $.
    climeq.3 $e |- ( ph -> G e. W ) $.
    climeq.5 $e |- ( ph -> M e. ZZ ) $.
    climeq.6 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = ( G ` k ) ) $.
    $( Two functions that are eventually equal to one another have the same
       limit.  (Contributed by Mario Carneiro, 5-Nov-2013.)  (Revised by Mario
       Carneiro, 31-Jan-2014.) $)
    climeq $p |- ( ph -> ( F ~~> A <-> G ~~> A ) ) $=
      ( vx vy wbr wcel cv cfv cli cc cmin co cabs clt cuz wral wrex clim2 eqidd
      wa crp bitr4d ) ADBUAQBUBRCSZETZUBRUPBUCUDUETOSUFQULCPSUGTUHPIUIOUMUHULEB
      UAQAOBUPPCDFGIJMKNUJAOBUPPCEFHIJMLAUOIRULUPUKUJUN $.
  $}

  ${
    $d x A $.  $d x D $.  $d x ph $.
    lo1eq.1 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    lo1eq.2 $e |- ( ( ph /\ x e. A ) -> C e. RR ) $.
    lo1eq.3 $e |- ( ph -> D e. RR ) $.
    lo1eq.4 $e |- ( ( ph /\ ( x e. A /\ D <_ x ) ) -> B = C ) $.
    $( Two functions that are eventually equal to one another are eventually
       bounded if one of them is.  (Contributed by Mario Carneiro,
       26-May-2016.) $)
    lo1eq $p |- ( ph ->
      ( ( x e. A |-> B ) e. <_O(1) <-> ( x e. A |-> C ) e. <_O(1) ) ) $=
      ( cr wss cmpt clo1 wcel wa cres wceq resmpt adantr cdm eqid dmmptd sseq1d
      lo1dm syl5ib wb cpnf cico co cin cle wbr simpr elin sylib simpld elicopnf
      cv simprd syl biimpa syldan jca mpteq2dva inss1 ax-mp 3eqtr4g resres ssid
      reseq1 mp2b 3eqtr3g eleq1d wf fmptd lo1resb 3bitr4d ex pm5.21ndd ) ACKLZB
      CDMZNOZBCEMZNOZWCWBUAZKLAWAWBUEAWFCKABWBCDKWBUBZGUCUDUFWEWDUAZKLAWAWDUEAW
      HCKABWDCEKWDUBZHUCUDUFAWAWCWEUGAWAPZWBFUHUIUJZQZNOZWDWKQZNOZWCWEAWMWOUGWA
      AWLWNNAWBCQZWKQZWDCQZWKQZWLWNAWBCWKUKZQZWDWTQZWQWSABWTDMZBWTEMZXAXBABWTDE
      ABUSZWTOZXECOZFXEULUMZPDERAXFPZXGXHXIXGXEWKOZXIXFXGXJPAXFUNXECWKUOUPZUQXI
      XEKOZXHAXFXJXLXHPZXIXGXJXKUTAXJXMAFKOZXJXMUGIFXEURVAVBVCUTVDJVCVEWTCLZXAX
      CRCWKVFZBCWTDSVGXOXBXDRXPBCWTESVGVHWBCWKVIWDCWKVIVHCCLZWPWBRWQWLRCVJZBCCD
      SWPWBWKVKVLXQWRWDRWSWNRXRBCCESWRWDWKVKVLVMVNTWJCFWBACKWBVOWAABCDKWBGWGVPT
      AWAUNZAXNWAITZVQWJCFWDACKWDVOWAABCEKWDHWIVPTXSXTVQVRVSVT $.
  $}

  ${
    $d x A $.  $d x D $.  $d x ph $.
    rlimeq.1 $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
    rlimeq.2 $e |- ( ( ph /\ x e. A ) -> C e. CC ) $.
    rlimeq.3 $e |- ( ph -> D e. RR ) $.
    rlimeq.4 $e |- ( ( ph /\ ( x e. A /\ D <_ x ) ) -> B = C ) $.
    $( Two functions that are eventually equal to one another have the same
       limit.  (Contributed by Mario Carneiro, 16-Sep-2014.) $)
    rlimeq $p |- ( ph ->
      ( ( x e. A |-> B ) ~~>r E <-> ( x e. A |-> C ) ~~>r E ) ) $=
      ( cr wss crli wbr cc wa cres wcel wceq cmpt cdm rlimss eqid dmmptd sseq1d
      syl5ib wb cpnf cico co cin cv cle simpr elin sylib simpld simprd elicopnf
      syl biimpa syldan mpteq2dva inss1 resmpt ax-mp 3eqtr4g resres ssid reseq1
      jca mp2b 3eqtr3g breq1d adantr wf fmptd rlimresb 3bitr4d ex pm5.21ndd ) A
      CLMZBCDUAZGNOZBCEUAZGNOZWEWDUBZLMAWCGWDUCAWHCLABWDCDPWDUDZHUEUFUGWGWFUBZL
      MAWCGWFUCAWJCLABWFCEPWFUDZIUEUFUGAWCWEWGUHAWCQZWDFUIUJUKZRZGNOZWFWMRZGNOZ
      WEWGAWOWQUHWCAWNWPGNAWDCRZWMRZWFCRZWMRZWNWPAWDCWMULZRZWFXBRZWSXAABXBDUAZB
      XBEUAZXCXDABXBDEABUMZXBSZXGCSZFXGUNOZQDETAXHQZXIXJXKXIXGWMSZXKXHXIXLQAXHU
      OXGCWMUPUQZURXKXGLSZXJAXHXLXNXJQZXKXIXLXMUSAXLXOAFLSZXLXOUHJFXGUTVAVBVCUS
      VLKVCVDXBCMZXCXETCWMVEZBCXBDVFVGXQXDXFTXRBCXBEVFVGVHWDCWMVIWFCWMVIVHCCMZW
      RWDTWSWNTCVJZBCCDVFWRWDWMVKVMXSWTWFTXAWPTXTBCCEVFWTWFWMVKVMVNVOVPWLCFGWDA
      CPWDVQWCABCDPWDHWIVRVPAWCUOZAXPWCJVPZVSWLCFGWFACPWFVQWCABCEPWFIWKVRVPYAYB
      VSVTWAWB $.

    $( Two functions that are eventually equal to one another are eventually
       bounded if one of them is.  (Contributed by Mario Carneiro,
       26-May-2016.) $)
    o1eq $p |- ( ph ->
      ( ( x e. A |-> B ) e. O(1) <-> ( x e. A |-> C ) e. O(1) ) ) $=
      ( cabs cfv cmpt clo1 wcel co1 cv wa abscld lo1o12 cle wbr fveq2d 3bitr4d
      lo1eq ) ABCDKLZMNOBCEKLZMNOBCDMPOBCEMPOABCUFUGFABQZCOZRZDGSUJEHSIAUIFUHUA
      UBRRDEKJUCUEABCDGTABCEHTUD $.
  $}

  ${
    $d j k m y A $.  $d j k m x F $.  $d j m x y G $.  $d j m M $.  $d m V $.
    $d j k y ph $.  $d j k m x Z $.
    2clim.1 $e |- Z = ( ZZ>= ` M ) $.
    ${
      climmpt.2 $e |- G = ( k e. Z |-> ( F ` k ) ) $.
      $( Exhibit a function ` G ` with the same convergence properties as the
         not-quite-function ` F ` .  (Contributed by Mario Carneiro,
         31-Jan-2014.) $)
      climmpt $p |- ( ( M e. ZZ /\ F e. V ) ->
                      ( F ~~> A <-> G ~~> A ) ) $=
        ( vm cz wcel wa cvv simpr cv cfv cuz fvex eqeltri cmpt mptex simpl wceq
        a1i fveq2 fvmpt eqcomd adantl climeq ) EKLZCFLZMZAJCDEFNGHUKULODNLUMDBG
        BPZCQZUANIBGUOGERQNHERSTUBTUEUKULUCJPZGLZUPCQZUPDQZUDUMUQUSURBUPUOURGDU
        NUPCUFIUPCSUGUHUIUJ $.
    $}

    $d k G $.
    2clim.2 $e |- ( ph -> M e. ZZ ) $.
    2clim.3 $e |- ( ph -> G e. V ) $.
    2clim.5 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) e. CC ) $.
    2clim.6 $e |- ( ph -> A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j )
                    ( abs ` ( ( F ` k ) - ( G ` k ) ) ) < x ) $.
    2clim.7 $e |- ( ph -> F ~~> A ) $.
    $( If two sequences converge to each other, they converge to the same
       limit.  (Contributed by NM, 24-Dec-2005.)  (Proof shortened by Mario
       Carneiro, 31-Jan-2014.) $)
    2clim $p |- ( ph -> G ~~> A ) $=
      ( wbr cfv wcel wa vy cli cv cmin co cabs clt cuz wral wrex crp c2 cdiv cc
      rphalfcl wceq breq2 rexralbidv rspccva syl2an adantr eqidd climi rexanuz2
      cz adantl sylanbrc wi uztrn2 simprr ad2ant2r abssubd breq1d anbi1d climcl
      an12 cr syl ad2antrr rpre ad2antlr abs3lem syl22anc sylbid anassrs syl5bi
      expimpd sylan2 ralimdva reximdva mpd ralrimiva clim2c mpbird ) AGCUBQEUCZ
      GRZCUDUEUFRUAUCZUGQZEDUCZUHRZUIZDJUJZUAUKUIAXBUAUKAWQUKSZTZWOFRZWPUDUEUFR
      ZWQULUMUEZUGQZXEUNSZXECUDUEUFRXGUGQZTZTZEWTUIZDJUJZXBXDXHEWTUIDJUJZXKEWTU
      IDJUJXNAXFBUCZUGQZEWTUIDJUJZBUKUIXGUKSZXOXCOWQUOZXRXOBXGUKXPXGUPXQXHDEJWT
      XPXGXFUGUQURUSUTXDCXEXGDEFHJKAHVESXCLVAXCXSAXTVFXDWOJSZTZXEVBAFCUBQZXCPVA
      VCXHXKDEHJKVDVGXDXMXADJXDWSJSZTXLWREWTXDYDWOWTSZXLWRVHZYDYETXDYAYFHWOWSJK
      VIXLXIXHXJTZTYBWRXHXIXJVPYBXIYGWRXDYAXIYGWRVHXDYAXITZTZYGWPXEUDUEUFRZXGUG
      QZXJTZWRYIXHYKXJYIXFYJXGUGYIXEWPXDYAXIVJZAYAWPUNSZXCXINVKZVLVMVNYIYNCUNSZ
      XIWQVQSZYLWRVHYOAYPXCYHAYCYPPCFVOVRZVSYMXCYQAYHWQVTWAWPCXEWQWBWCWDWEWGWFW
      HWEWIWJWKWLAUACWPDEGHIJKLMAYATWPVBYRNWMWN $.
  $}

  ${
    $d k m F $.  $d k m Z $.  $d k ph $.  $d m n F $.  $d n A $.  $d n Z $.
    $d n ph $.
    climmpt2.1 $e |- Z = ( ZZ>= ` M ) $.
    climmpt2.2 $e |- ( ph -> M e. ZZ ) $.
    climmpt2.3 $e |- ( ph -> F e. V ) $.
    climmpt2.5 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    $( Relate an integer limit on a not-quite-function to a real limit.
       (Contributed by Mario Carneiro, 17-Sep-2014.) $)
    climmpt2 $p |- ( ph ->
                    ( F ~~> A <-> ( n e. Z |-> ( F ` n ) ) ~~>r A ) ) $=
      ( vm cli wbr cv cfv wcel cc wral cmpt crli eqid climmpt syl2anc ralrimiva
      cz wb weq fveq2 eleq1d cbvralv bitri sylib r19.21bi fmptd rlimclim bitr4d
      ) AEBNOZDHDPZEQZUAZBNOZVBBUBOAFUGREGRUSVCUHJKBDEVBFGHIVBUCZUDUEABVBFHIJAD
      HVASVBAVASRZDHACPZEQZSRZCHTZVEDHTZAVHCHLUFVIMPZEQZSRZMHTVJVHVMCMHCMUIVGVL
      SVFVKEUJUKULVMVEMDHMDUIVLVASVKUTEUJUKULUMUNUOVDUPUQUR $.
  $}

  ${
    $d f k m n x A $.  $d f k m n x F $.  $d f k m n x M $.  $d k m n x V $.
    ${
      climshft.1 $e |- F e. _V $.
      $( A shifted function converges if the original function converges.
         (Contributed by Mario Carneiro, 5-Nov-2013.) $)
      climshftlem $p |- ( M e. ZZ ->
                          ( F ~~> A -> ( F shift M ) ~~> A ) ) $=
        ( vm vx vk vn cz wcel cc cv cfv cmin co cabs clt wbr wa wral wrex caddc
        cuz crp cshi cli zaddcl ancoms eluzsub 3com12 3expa fveq2 eleq1d oveq1d
        wi wceq fveq2d breq1d anbi12d rspcv syl wb zcn eluzelcn shftval adantlr
        syl2an sylibrd ralrimdva raleqdv rspcev syl6an rexlimdva ralimdv anim2d
        cvv a1i eqidd clim ovexd 3imtr4d ) CIJZAKJZELZBMZKJZWEANOZPMZFLZQRZSZEG
        LZUCMZTZGIUAZFUDTZSWCHLZBCUEOZMZKJZWSANOZPMZWIQRZSZHWDUCMZTZEIUAZFUDTZS
        BAUFRWRAUFRWBWPXHWCWBWOXGFUDWBWNXGGIWBWLIJZSZWLCUBOZIJZWNXDHXKUCMZTZXGX
        IWBXLWLCUGUHXJWNXDHXMXJWQXMJZSZWNWQCNOZBMZKJZXRANOZPMZWIQRZSZXDXPXQWMJZ
        WNYCUOWBXIXOYDXIWBXOYDCWLWQUIUJUKWKYCEXQWMWDXQUPZWFXSWJYBYEWEXRKWDXQBUL
        ZUMYEWHYAWIQYEWGXTPYEWEXRANYFUNUQURUSUTVAWBXOXDYCVBZXIWBCKJZWQKJZYGXOCV
        CXKWQVDYHYISZWTXSXCYBYJWSXRKCWQBDVEZUMYJXBYAWIQYJXAXTPYJWSXRANYKUNUQURU
        SVGVFVHVIXFXNEXKIWDXKUPXDHXEXMWDXKUCULVJVKVLVMVNVOWBFAWEGEBVPBVPJWBDVQW
        BWDIJSWEVRVSWBFAWSEHWRVPWBBCUEVTWBWQIJSWSVRVSWA $.
    $}

    $( A function restricted to upper integers converges iff the original
       function converges.  (Contributed by Mario Carneiro, 13-Jul-2013.)
       (Revised by Mario Carneiro, 31-Jan-2014.) $)
    climres $p |- ( ( M e. ZZ /\ F e. V ) ->
                        ( ( F |` ( ZZ>= ` M ) ) ~~> A <-> F ~~> A ) ) $=
      ( vk cz wcel wa cuz cfv cres eqid resexg adantl simpr simpl cv wceq fvres
      cvv climeq ) CFGZBDGZHZAEBCIJZKZBCTDUEUELUCUFTGUBBUEDMNUBUCOUBUCPEQZUEGUG
      UFJUGBJRUDUGUEBSNUA $.

    $( A shifted function converges iff the original function converges.
       (Contributed by NM, 16-Aug-2005.)  (Revised by Mario Carneiro,
       31-Jan-2014.) $)
    climshft $p |- ( ( M e. ZZ /\ F e. V ) ->
                      ( ( F shift M ) ~~> A <-> F ~~> A ) ) $=
      ( vf vk wcel cz cshi co cli wbr wb cv wi wceq climshftlem cvv cfv cc cneg
      oveq1 breq1d breq1 bibi12d imbi2d znegcl ovex syl cuz eqid vex a1i id zcn
      ovexd eluzelcn shftcan1 syl2an climeq sylibd impbid vtoclg impcom ) BDGCH
      GZBCIJZAKLZBAKLZMZVEENZCIJZAKLZVJAKLZMZOVEVIOEBDVJBPZVNVIVEVOVLVGVMVHVOVK
      VFAKVJBCIUBUCVJBAKUDUEUFVEVLVMVEVLVKCUAZIJZAKLZVMVEVPHGVLVROCUGAVKVPVJCIU
      HQUIVEAFVQVJCRRCUJSZVSUKVEVKVPIUPVJRGVEEULZUMVEUNVECTGFNZTGWAVQSWAVJSPWAV
      SGCUOCWAUQCWAVJVTURUSUTVAAVJCVTQVBVCVD $.
  $}

  $( The zero series converges to zero.  (Contributed by Paul Chapman,
     9-Feb-2008.)  (Proof shortened by Mario Carneiro, 31-Jan-2014.) $)
  serclim0 $p |- ( M e. ZZ ->
                    seq M ( + , ( ( ZZ>= ` M ) X. { 0 } ) ) ~~> 0 ) $=
    ( cz wcel caddc cuz cfv cc0 csn cxp cseq cli eqid ser0f wbr ssid climconst2
    cc 0cn fvex mpan eqbrtrd ) ABCZDAEFZGHIZAJUDGKAUCUCLMGQCUBUDGKNRGAUCUCOAESP
    TUA $.

  ${
    $d r x y z A $.  $d r w y z B $.  $d r w x y z C $.  $d r x y z ph $.
    $d r x y z D $.  $d r x z R $.
    rlimcld2.1 $e |- ( ph -> sup ( A , RR* , < ) = +oo ) $.
    rlimcld2.2 $e |- ( ph -> ( x e. A |-> B ) ~~>r C ) $.
    ${
      rlimcld2.3 $e |- ( ph -> D C_ CC ) $.
      rlimcld2.4 $e |- ( ( ph /\ y e. ( CC \ D ) ) -> R e. RR+ ) $.
      rlimcld2.5 $e |- ( ( ( ph /\ y e. ( CC \ D ) ) /\ z e. D ) ->
        R <_ ( abs ` ( z - y ) ) ) $.
      rlimcld2.6 $e |- ( ( ph /\ x e. A ) -> B e. D ) $.
      $( If ` D ` is a closed set in the topology of the complex numbers
         (stated here in basic form), and all the elements of the sequence lie
         in ` D ` , then the limit of the sequence also lies in ` D ` .
         (Contributed by Mario Carneiro, 10-May-2016.) $)
      rlimcld2 $p |- ( ph -> C e. D ) $=
        ( vr wcel cle wral cr cv wbr cmin co cabs cfv csb clt wi wrex ralrimiva
        wn wa adantr cc cdif crp cmpt crli rlimcl syl simpr eldifd nfcsb1v wceq
        nfel1 csbeq1a eleq1d rspc sylc rlimi adantlr nfral oveq2 fveq2d breq12d
        nfcv nfbr ad2antrr oveq1 breq2d rspcv rpred wss ad3antrrr sseldd subcld
        ralbidv abscld lenltd mpbid id imp nsyl nrexdv cxr csup cpnf cdm dmmptd
        eqid rlimss eqsstr3d ressxr syl6ss mpbird r19.21bi r19.29 expcom condan
        wb supxrunb1 mtod ) AGHQZPUAZBUAZRUBZFGUCUDZUEUFZCGIUGZUHUBZUIZBESZPTUJ
        AXNULZUMZPBEFGXTHAFHQZBESYDAYFBEOUKUNYEGUOHUPZQZIUQQZCYGSZXTUQQZYEGUOHY
        EBEFURZGUSUBZGUOQZAYMYDKUNZGYLUTVAZAYDVBVCZAYJYDAYICYGMUKUNYIYKCGYGCXTU
        QCGIVDZVFCUAZGVEZIXTUQCGIVGZVHVIVJZYOVKYEYCPTYEXOTQZUMZYCYBXQUMZBEUJZUU
        DUUEBEUUDXPEQZUMZYAUUEUUHXTXSRUBZYAULUUHYFXTDUAZGUCUDZUEUFZRUBZDHSZUUIY
        EUUGYFUUCAUUGYFYDOVLVLZYEUUNUUCUUGYEYHIUUJYSUCUDZUEUFZRUBZDHSZCYGSZUUNY
        QAUUTYDAUUSCYGAYSYGQUMUURDHNUKUKUNUUSUUNCGYGUUMCDHCHVQCXTUULRYRCRVQCUUL
        VQVRVMYTUURUUMDHYTIXTUUQUULRUUAYTUUPUUKUEYSGUUJUCVNVOVPWHVIVJVSUUMUUIDF
        HUUJFVEZUULXSXTRUVAUUKXRUEUUJFGUCVTVOWAWBVJUUHXTXSUUHXTYEYKUUCUUGUUBVSW
        CUUHXRUUHFGUUHHUOFAHUOWDYDUUCUUGLWEUUOWFYEYNUUCUUGYPVSWGWIWJWKYBXQYAYBW
        LWMWNWOUUDXQBEUJZYCUUFUIYEUVBPTAUVBPTSZYDAUVCEWPUHWQWRVEZJAEWPWDUVCUVDX
        KAETWPAEYLWSZTABYLEFHYLXAOWTAYMUVETWDKGYLXBVAXCXDXEPBEXLVAXFUNXGYCUVBUU
        FYBXQBEXHXIVAXMWOXJ $.
    $}

    ${
      rlimrege0.4 $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
      rlimrege0.5 $e |- ( ( ph /\ x e. A ) -> 0 <_ ( Re ` B ) ) $.
      $( The limit of a sequence of complex numbers with nonnegative real part
         has nonnegative real part.  (Contributed by Mario Carneiro,
         10-May-2016.) $)
      rlimrege0 $p |- ( ph -> 0 <_ ( Re ` C ) ) $=
        ( vw cc0 cv cre cfv cle wbr cc wcel adantl wceq vy crab cneg wss ssrab2
        vz a1i cdif wa eldifi recld renegcld clt wn breq2d notbid notrab elrab2
        fveq2 simprbi cr wb ltnle sylancl mpbird lt0neg1d mpbid elrpd cmin cabs
        0re co adantr elrabi subcld abscld elrab lesub1dd df-neg resubd 3brtr4d
        0red releabsd letrd sylanbrc rlimcld2 syl ) AEKJLZMNZOPZJQUBZRZKEMNZOPZ
        ABUAUFCDEWKUALZMNZUCZFGWKQUDAWJJQUEUGAWOQWKUHZRZUIZWQWTWPWTWOWSWOQRZAWO
        QWKUJSZUKZULZWTWPKUMPZKWQUMPWTXEKWPOPZUNZWSXGAWSXAXGWJUNXGJWOQWRWHWOTZW
        JXFXHWIWPKOWHWOMUSUOUPWJJQUQURUTSWTWPVARKVARXEXGVBXCVKWPKVCVDVEWTWPXCVF
        VGVHWTUFLZWKRZUIZWQXIWOVIVLZMNZXLVJNWTWQVARXJXDVMXKXLXKXIWOXJXIQRZWTWJJ
        XIQVNSZWTXAXJXBVMZVOZUKXKXLXQVPXKKWPVIVLZXIMNZWPVIVLWQXMOXKKXSWPXKWBXKX
        IXOUKXKWOXPUKXJKXSOPZWTXJXNXTWJXTJXIQWHXITWIXSKOWHXIMUSUOVQUTSVRWQXRTXK
        WPVSUGXKXIWOXOXPVTWAXKXLXQWCWDABLCRUIDQRKDMNZOPZDWKRHIWJYBJDQWHDTWIYAKO
        WHDMUSUOVQWEWFWLEQRWNWJWNJEQWHETWIWMKOWHEMUSUOVQUTWG $.
    $}

    rlimrecl.3 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    $( The limit of a real sequence is real.  (Contributed by Mario Carneiro,
       9-May-2016.) $)
    rlimrecl $p |- ( ph -> C e. RR ) $=
      ( vy vz cr cim cfv cabs cc wcel adantl cc0 cmin co wss ax-resscn a1i cdif
      cv wa eldifi imcld recnd wn wne eldifn wceq wb reim0b necon3bbid absrpcld
      syl mpbid cle wbr adantr simpr subcld absimle imsubd reim0 oveq2d subid1d
      3eqtrrd fveq2d abssubd 3brtr4d rlimcld2 ) ABIJCDEKIUEZLMZNMZFGKOUAAUBUCAV
      OOKUDPZUFZVPVSVPVSVOVRVOOPZAVOOKUGQZUHUIZVSVOKPZUJZVPRUKVRWDAVOOKULQVSWCV
      PRVSVTWCVPRUMUNWAVOUOURUPUSUQVSJUEZKPZUFZVOWESTZLMZNMZWHNMZVQWEVOSTNMUTWG
      WHOPWJWKUTVAWGVOWEVSVTWFWAVBZWGWEVSWFVCUIZVDWHVEURWGVPWINWGWIVPWELMZSTVPR
      STVPWGVOWEWLWMVFWGWNRVPSWFWNRUMVSWEVGQVHWGVPVSVPOPWFWBVBVIVJVKWGWEVOWMWLV
      LVMHVN $.

    rlimge0.4 $e |- ( ( ph /\ x e. A ) -> 0 <_ B ) $.
    $( The limit of a sequence of nonnegative reals is nonnegative.
       (Contributed by Mario Carneiro, 10-May-2016.) $)
    rlimge0 $p |- ( ph -> 0 <_ C ) $=
      ( cc0 cre cfv cle cv wcel wa recnd rered breqtrrd rlimrege0 rlimrecl
      breqtrd ) AJEKLEMABCDEFGABNCOPZDHQUCJDDKLMIUCDHRSTAEABCDEFGHUARUB $.
  $}

  ${
    $d k F $.  $d k G $.  $d k K $.  $d k M $.  $d k ph $.  $d k Z $.
    $d k A $.
    climshft2.1 $e |- Z = ( ZZ>= ` M ) $.
    climshft2.2 $e |- ( ph -> M e. ZZ ) $.
    ${
      climshft2.3 $e |- ( ph -> K e. ZZ ) $.
      climshft2.5 $e |- ( ph -> F e. W ) $.
      climshft2.6 $e |- ( ph -> G e. X ) $.
      climshft2.7 $e |- ( ( ph /\ k e. Z ) ->
                          ( G ` ( k + K ) ) = ( F ` k ) ) $.
      $( A shifted function converges iff the original function converges.
         (Contributed by Paul Chapman, 21-Nov-2007.)  (Revised by Mario
         Carneiro, 6-Feb-2014.) $)
      climshft2 $p |- ( ph -> ( F ~~> A <-> G ~~> A ) ) $=
        ( cshi co wcel cfv cneg cli wbr cvv ovexd cv wa caddc cid wceq zcnd cuz
        eluzelz eleq2s fvex shftval4 syl2an fvi syl adantr oveq1d fveq1d addcom
        cc cz fveq12d 3eqtr3d eqtrd climeq wb znegcld climshft syl2anc bitr3d )
        AEFUAZQRZBUBUCZDBUBUCEBUBUCZABCVPDGUDHJKAEVOQUENLACUFZJSZUGZVSVPTZVSFUH
        RZETZVSDTWAVSEUITZVOQRZTZFVSUHRZWETZWBWDAFVDSZVSVDSZWGWIUJVTAFMUKZVTVSV
        SVESVSGULTJGVSUMKUNUKZFVSWEEUIUOUPUQWAVSWFVPWAWEEVOQAWEEUJZVTAEISZWNOEI
        URUSUTZVAVBWAWHWCWEEWPAWJWKWHWCUJVTWLWMFVSVCUQVFVGPVHVIAVOVESWOVQVRVJAF
        MVKOBEVOIVLVMVN $.
    $}

    climrecl.3 $e |- ( ph -> F ~~> A ) $.
    climrecl.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
    $( The limit of a convergent real sequence is real.  Corollary 12-2.5 of
       [Gleason] p. 172.  (Contributed by NM, 10-Sep-2005.)  (Proof shortened
       by Mario Carneiro, 10-May-2016.) $)
    climrecl $p |- ( ph -> A e. RR ) $=
      ( cv cfv cz wcel cxr clt syl wbr cli cvv csup cpnf wceq cmpt crli climrel
      uzsup wb brrelexi climmpt syl2anc mpbid cc wa recnd fmptd rlimclim mpbird
      eqid rlimrecl ) ACFCKZDLZBAEMNZFOPUAUBUCHEFGUGQACFVBUDZBUERVDBSRZADBSRZVE
      IAVCDTNZVFVEUHHAVFVGIDBSUFUIQBCDVDETFGVDUSZUJUKULABVDEFGHACFVBUMVDAVAFNUN
      VBJUOVHUPUQURJUT $.

    climge0.5 $e |- ( ( ph /\ k e. Z ) -> 0 <_ ( F ` k ) ) $.
    $( A nonnegative sequence converges to a nonnegative number.  (Contributed
       by NM, 11-Sep-2005.)  (Proof shortened by Mario Carneiro,
       10-May-2016.) $)
    climge0 $p |- ( ph -> 0 <_ A ) $=
      ( cv cfv cz wcel cxr syl wbr cli cvv clt csup cpnf wceq cmpt crli climrel
      uzsup wb brrelexi climmpt syl2anc mpbid cc wa recnd fmptd rlimclim mpbird
      eqid rlimge0 ) ACFCLZDMZBAENOZFPUAUBUCUDHEFGUHQACFVCUEZBUFRVEBSRZADBSRZVF
      IAVDDTOZVGVFUIHAVGVHIDBSUGUJQBCDVEETFGVEUTZUKULUMABVEEFGHACFVCUNVEAVBFOUO
      VCJUPVIUQURUSJKVA $.
  $}

  ${
    $d j k x F $.  $d j k x G $.  $d j M $.  $d j k x ph $.  $d j k Z $.
    climabs0.1 $e |- Z = ( ZZ>= ` M ) $.
    climabs0.2 $e |- ( ph -> M e. ZZ ) $.
    climabs0.3 $e |- ( ph -> F e. V ) $.
    climabs0.4 $e |- ( ph -> G e. W ) $.
    climabs0.5 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    climabs0.6 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) = ( abs ` ( F ` k ) ) ) $.
    $( Convergence to zero of the absolute value is equivalent to convergence
       to zero.  (Contributed by NM, 8-Jul-2008.)  (Revised by Mario Carneiro,
       31-Jan-2014.) $)
    climabs0 $p |- ( ph -> ( F ~~> 0 <-> G ~~> 0 ) ) $=
      ( vx vj cfv wbr wral wcel cv cabs clt cuz wrex crp cc0 cli wa uztrn2 wceq
      wb cc absidm breq1d sylan2 anassrs ralbidva rexbidva ralbidv abscld recnd
      syl clim0c eqidd 3bitr4rd ) ABUAZCQZUBQZUBQZOUAZUCRZBPUAZUDQZSZPHUEZOUFSV
      IVKUCRZBVNSZPHUEZOUFSDUGUHRCUGUHRAVPVSOUFAVOVRPHAVMHTZUIVLVQBVNAVTVGVNTZV
      LVQULZVTWAUIAVGHTZWBEVGVMHIUJAWCUIZVJVIVKUCWDVHUMTVJVIUKMVHUNVCUOUPUQURUS
      UTAOVIPBDEGHIJLNWDVIWDVHMVAVBVDAOVHPBCEFHIJKWDVHVEMVDVF $.
  $}

  ${
    $d m n x y z A $.  $d m n x y z F $.  $d m n x y z G $.  $d m n x y ph $.
    $d m n x y B $.
    o1co.1 $e |- ( ph -> F : A --> CC ) $.
    o1co.2 $e |- ( ph -> F e. O(1) ) $.
    o1co.3 $e |- ( ph -> G : B --> A ) $.
    o1co.4 $e |- ( ph -> B C_ RR ) $.
    o1co.5 $e |- ( ( ph /\ m e. RR ) ->
      E. x e. RR A. y e. B ( x <_ y -> m <_ ( G ` y ) ) ) $.
    $( Sufficient condition for transforming the index set of an eventually
       bounded function.  (Contributed by Mario Carneiro, 12-May-2016.) $)
    o1co $p |- ( ph -> ( F o. G ) e. O(1) ) $=
      ( vn wcel cle cfv cr wrex wa vz ccom co1 cv wbr cabs wi wral cc wf wss wb
      cdm wceq fdm o1dm eqsstr3d elo12 syl2anc mpbid reeanv ad3antrrr ffvelrnda
      breq2 fveq2 fveq2d breq1d imbi12d rspcva sylan an32s adantr fvco3 sylibrd
      syl imim2d ralimdva expimpd ancomsd reximdva syl5bir rexlimdva mpd mpbird
      mpand fco ) AGHUBZUCOZBUDZCUDZPUEZWJWGQZUFQZNUDZPUEZUGZCEUHZNRSZBRSZAFUDZ
      UAUDZPUEZXAGQZUFQZWNPUEZUGZUADUHZNRSZFRSZWSAGUCOZXIJADUIGUJZDRUKXJXIULIAD
      GUMZRAXKXLDUNIDUIGUOVOAXJXLRUKJGUPVOUQFUADNGURUSUTAXHWSFRAWTROZTZWKWTWJHQ
      ZPUEZUGZCEUHZBRSZXHWSMXSXHTXRXGTZNRSZBRSXNWSXRXGBNRRVAXNYAWRBRXNWIROZTZXT
      WQNRYCWNROZTZXGXRWQYEXGXRWQYEXGTZXQWPCEYFWJEOZTZXPWOWKYHXPXOGQZUFQZWNPUEZ
      WOYEYGXGXPYKUGZYEYGTXODOXGYLYEEDWJHAEDHUJZXMYBYDKVBZVCXFYLUAXODXAXOUNZXBX
      PXEYKXAXOWTPVDYOXDYJWNPYOXCYIUFXAXOGVEVFVGVHVIVJVKYHWMYJWNPYHWLYIUFYFYMYG
      WLYIUNYEYMXGYNVLEDWJGHVMVJVFVGVNVPVQVRVSVTVTWAWEWBWCAEUIWGUJZERUKWHWSULAX
      KYMYPIKEDUIGHWFUSLBCENWGURUSWD $.
  $}

  ${
    $d m x y z A $.  $d m x y z B $.  $d m x z C $.  $d m x y z ph $.
    $d m x z F $.
    o1compt.1 $e |- ( ph -> F : A --> CC ) $.
    o1compt.2 $e |- ( ph -> F e. O(1) ) $.
    o1compt.3 $e |- ( ( ph /\ y e. B ) -> C e. A ) $.
    o1compt.4 $e |- ( ph -> B C_ RR ) $.
    o1compt.5 $e |- ( ( ph /\ m e. RR ) ->
      E. x e. RR A. y e. B ( x <_ y -> m <_ C ) ) $.
    $( Sufficient condition for transforming the index set of an eventually
       bounded function.  (Contributed by Mario Carneiro, 12-May-2016.) $)
    o1compt $p |- ( ph -> ( F o. ( y e. B |-> C ) ) e. O(1) ) $=
      ( vz cv cr wcel cle wbr wi cmpt eqid fmptd wa cfv wral wrex nfcv nffvmpt1
      nfv nfbr nfim wceq breq2 fveq2 breq2d imbi12d cbvral simpr fvmpt2 syl2anc
      wb imbi2d ralbidva syl5bb rexbidv adantr mpbird o1co ) ABNDEGHCEFUAZIJACE
      FDVJKVJUBZUCLAGOZPQZUDBOZNOZRSZVLVOVJUEZRSZTZNEUFZBPUGZVNCOZRSZVLFRSZTZCE
      UFZBPUGZMAWAWGVBVMAVTWFBPVTWCVLWBVJUEZRSZTZCEUFAWFVSWJNCEVPVRCVPCUJCVLVQR
      CVLUHCRUHCEFVOUIUKULWJNUJVOWBUMZVPWCVRWIVOWBVNRUNWKVQWHVLRVOWBVJUOUPUQURA
      WJWECEAWBEQZUDZWIWDWCWMWHFVLRWMWLFDQWHFUMAWLUSKCEFDVJVKUTVAUPVCVDVEVFVGVH
      VI $.
  $}

  ${
    $d c w x y A $.  $d c v w x y z F $.  $d c v w x y z G $.  $d c w x y ph $.
    $d c w x y z C $.  $d c v w z X $.
    rlimcn1.1 $e |- ( ph -> G : A --> X ) $.
    rlimcn1.2 $e |- ( ph -> C e. X ) $.
    rlimcn1.3 $e |- ( ph -> G ~~>r C ) $.
    rlimcn1.4 $e |- ( ph -> F : X --> CC ) $.
    rlimcn1.5 $e |- ( ( ph /\ x e. RR+ ) -> E. y e. RR+ A. z e. X
                    ( ( abs ` ( z - C ) ) < y ->
                      ( abs ` ( ( F ` z ) - ( F ` C ) ) ) < x ) ) $.
    $( Image of a limit under a continuous map.  (Contributed by Mario
       Carneiro, 17-Sep-2014.) $)
    rlimcn1 $p |- ( ph -> ( F o. G ) ~~>r ( F ` C ) ) $=
      ( vw vc cv cfv wbr cmin vv ccom cmpt crli ffvelrnda feqmptd cc fmptco cle
      fveq2 co cabs clt wi wral cr wrex crp wcel fvexd ralrimiva simpr eqbrtrrd
      cvv ad2antrr rlimi simpll sylan simplrr wceq fveq2d breq1d oveq1d imbi12d
      wa oveq1 rspcv sylc imim2d ralimdva reximdv expr rexlimdva mpd syldan cdm
      mpid wf fdm syl wss rlimss eqsstr3d ffvelrnd rlim2 mpbird eqbrtrd ) AGHUB
      OEOQZHRZGRZUCZFGRZUDAOUAEIWSUAQZGRWTHGAEIWRHJUEZAOEIHJUFZAUAIUGGMUFXCWSGU
      JUHAXAXBUDSPQWRUISZWTXBTUKZULRZBQZUMSZUNZOEUOZPUPUQZBURUOAXMBURAXIURUSZVO
      ZDQZFTUKZULRZCQZUMSZXPGRZXBTUKZULRZXIUMSZUNZDIUOZCURUQXMNXOYFXMCURXOXSURU
      SZVOZYFXFWSFTUKZULRZXSUMSZUNZOEUOZPUPUQZXMYHPOEWSFXSVDYHWSVDUSOEYHWREUSZV
      OWRHUTVAXOYGVBAOEWSUCZFUDSXNYGAHYPFUDXELVCVEVFXOYGYFYNXMUNXOYGYFVOZVOZYMX
      LPUPYRYLXKOEYRYOVOZYKXJXFYSWSIUSZYFYKXJUNZYRAYOYTAXNYQVGXDVHXOYGYFYOVIYEU
      UADWSIXPWSVJZXTYKYDXJUUBXRYJXSUMUUBXQYIULXPWSFTVPVKVLUUBYCXHXIUMUUBYBXGUL
      UUBYAWTXBTXPWSGUJVMVKVLVNVQVRVSVTWAWBWGWCWDVAABPOEWTXBAWTUGUSZOEAYOYTUUCX
      DAIUGWSGMUEWEVAAEHWFZUPAEIHWHUUDEVJJEIHWIWJAHFUDSUUDUPWKLFHWLWJWMAIUGFGMK
      WNWOWPWQ $.
  $}

  ${
    $d k x y z A $.  $d x y z B $.  $d x y z C $.  $d k x y z F $.  $d k z X $.
    $d k x y ph $.
    rlimcn1b.1 $e |- ( ( ph /\ k e. A ) -> B e. X ) $.
    rlimcn1b.2 $e |- ( ph -> C e. X ) $.
    rlimcn1b.3 $e |- ( ph -> ( k e. A |-> B ) ~~>r C ) $.
    rlimcn1b.4 $e |- ( ph -> F : X --> CC ) $.
    rlimcn1b.5 $e |- ( ( ph /\ x e. RR+ ) -> E. y e. RR+ A. z e. X
                    ( ( abs ` ( z - C ) ) < y ->
                      ( abs ` ( ( F ` z ) - ( F ` C ) ) ) < x ) ) $.
    $( Image of a limit under a continuous map.  (Contributed by Mario
       Carneiro, 10-May-2016.) $)
    rlimcn1b $p |- ( ph -> ( k e. A |-> ( F ` B ) ) ~~>r ( F ` C ) ) $=
      ( cmpt ccom cfv crli cv eqidd cc feqmptd fveq2 fmptco eqid fmptd eqbrtrrd
      rlimcn1 ) AIHEFPZQHEFIRZPGIRSAHDEJFDTZIRUKUJIKAUJUAADJUBINUCULFIUDUEABCDE
      GIUJJAHEFJUJKUJUFUGLMNOUIUH $.
  $}

  ${
    $d a b c r s x z A $.  $d a b c r s u v x z F $.  $d a b c r s u v x z R $.
    $d a b c r s u v x B $.  $d a b c r s x z ph $.  $d a b c r s u v x z S $.
    $d a b c r s v x C $.  $d a b u z X $.  $d a b u v z Y $.
    rlimcn2.1a $e |- ( ( ph /\ z e. A ) -> B e. X ) $.
    rlimcn2.1b $e |- ( ( ph /\ z e. A ) -> C e. Y ) $.
    rlimcn2.2a $e |- ( ph -> R e. X ) $.
    rlimcn2.2b $e |- ( ph -> S e. Y ) $.
    rlimcn2.3a $e |- ( ph -> ( z e. A |-> B ) ~~>r R ) $.
    rlimcn2.3b $e |- ( ph -> ( z e. A |-> C ) ~~>r S ) $.
    rlimcn2.4 $e |- ( ph -> F : ( X X. Y ) --> CC ) $.
    rlimcn2.5 $e |- ( ( ph /\ x e. RR+ ) ->
      E. r e. RR+ E. s e. RR+ A. u e. X A. v e. Y
        ( ( ( abs ` ( u - R ) ) < r /\ ( abs ` ( v - S ) ) < s ) ->
          ( abs ` ( ( u F v ) - ( R F S ) ) ) < x ) ) $.
    $( Image of a limit under a continuous map, two-arg version.  (Contributed
       by Mario Carneiro, 17-Sep-2014.) $)
    rlimcn2 $p |- ( ph -> ( z e. A |-> ( B F C ) ) ~~>r ( R F S ) ) $=
      ( vc va vb co cmpt crli wbr cv cle cmin cabs cfv clt wi wral cr wrex wcel
      crp wa ralrimiva adantr simprl rlimi simprr reeanv r19.26 prth wb simplrl
      cif simplrr wss cdm eqid dmmptd rlimss syl eqsstr3d ad2antrr sselda maxle
      syl3anc imbi1d syl5ibr ralimdva ifcl ancoms ad2antlr adantlr oveq1 fveq2d
      wceq breq1d anbi1d oveq1d imbi12d anbi2d oveq2 rspc2va sylan imim2d an32s
      jca breq1 ralbidv rspcev syl6an ex com23 syl5bir rexlimdvva mp2and syldan
      syld imp cc cxp wf fovrnd rlim2 mpbird ) ACFGHKUGZUHIJKUGZUIUJUDUKZCUKZUL
      UJZYFYGUMUGZUNUOZBUKZUPUJZUQZCFURZUDUSUTZBVBURAYQBVBAYMVBVAEUKZIUMUGZUNUO
      ZOUKZUPUJZDUKZJUMUGZUNUOZNUKZUPUJZVCZYRUUCKUGZYGUMUGZUNUOZYMUPUJZUQZDMURE
      LURZNVBUTOVBUTZYQUCAUUOYQAUUNYQONVBVBAUUAVBVAZUUFVBVAZVCZVCZUEUKZYIULUJZG
      IUMUGZUNUOZUUAUPUJZUQZCFURZUEUSUTZUFUKZYIULUJZHJUMUGZUNUOZUUFUPUJZUQZCFUR
      ZUFUSUTZUUNYQUQZUUSUECFGIUUALAGLVAZCFURUURAUVQCFPVDVEAUUPUUQVFACFGUHZIUIU
      JZUURTVEVGUUSUFCFHJUUFMAHMVAZCFURUURAUVTCFQVDVEAUUPUUQVHACFHUHJUIUJUURUAV
      EVGUVGUVOVCUVFUVNVCZUFUSUTUEUSUTUUSUVPUVFUVNUEUFUSUSVIUUSUWAUVPUEUFUSUSUW
      AUVEUVMVCZCFURZUUSUUTUSVAZUVHUSVAZVCZVCZUVPUVEUVMCFVJUWGUWCUUTUVHULUJZUVH
      UUTVNZYIULUJZUVDUVLVCZUQZCFURZUVPUWGUWBUWLCFUWBUWLUWGYIFVAZVCZUVAUVIVCZUW
      KUQUVAUVDUVIUVLVKUWOUWJUWPUWKUWOUWDUWEYIUSVAUWJUWPVLUUSUWDUWEUWNVMUUSUWDU
      WEUWNVOUWGFUSYIAFUSVPUURUWFAFUVRVQZUSACUVRFGLUVRVRPVSAUVSUWQUSVPTIUVRVTWA
      WBZWCWDUUTUVHYIWEWFWGWHWIUWGUUNUWMYQUWGUUNUWMYQUQUWGUUNVCUWIUSVAZUWMUWJYN
      UQZCFURZYQUWFUWSUUSUUNUWEUWDUWSUWHUVHUUTUSWJWKWLUUSUUNUWMUXAUQUWFUUSUUNVC
      UWLUWTCFUUSUWNUUNUWLUWTUQUUSUWNVCZUUNVCUWKYNUWJUXBUVQUVTVCUUNUWKYNUQZUXBU
      VQUVTAUWNUVQUURPWMAUWNUVTUURQWMXGUUMUXCUVDUUGVCZGUUCKUGZYGUMUGZUNUOZYMUPU
      JZUQEDGHLMYRGWPZUUHUXDUULUXHUXIUUBUVDUUGUXIYTUVCUUAUPUXIYSUVBUNYRGIUMWNWO
      WQWRUXIUUKUXGYMUPUXIUUJUXFUNUXIUUIUXEYGUMYRGUUCKWNWSWOWQWTUUCHWPZUXDUWKUX
      HYNUXJUUGUVLUVDUXJUUEUVKUUFUPUXJUUDUVJUNUUCHJUMWNWOWQXAUXJUXGYLYMUPUXJUXF
      YKUNUXJUXEYFYGUMUUCHGKXBWSWOWQWTXCXDXEXFWIWMYPUXAUDUWIUSYHUWIWPZYOUWTCFUX
      KYJUWJYNYHUWIYIULXHWGXIXJXKXLXMXRXNXOXNXPXOXSXQVDABUDCFYFYGAYFXTVACFAUWNV
      CGHXTLMKALMYAXTKYBUWNUBVEPQYCVDUWRAIJXTLMKUBRSYCYDYE $.
  $}

  ${
    $d j k x y z A $.  $d j k z B $.  $d j k y z G $.  $d j k x H $.  $d j M $.
    $d j k x y z F $.  $d j k x y z ph $.  $d j k y Z $.
    climcn1.1 $e |- Z = ( ZZ>= ` M ) $.
    climcn1.2 $e |- ( ph -> M e. ZZ ) $.
    climcn1.3 $e |- ( ph -> A e. B ) $.
    climcn1.4 $e |- ( ( ph /\ z e. B ) -> ( F ` z ) e. CC ) $.
    climcn1.5 $e |- ( ph -> G ~~> A ) $.
    climcn1.6 $e |- ( ph -> H e. W ) $.
    climcn1.7 $e |- ( ( ph /\ x e. RR+ ) -> E. y e. RR+ A. z e. B
                    ( ( abs ` ( z - A ) ) < y ->
                      ( abs ` ( ( F ` z ) - ( F ` A ) ) ) < x ) ) $.
    climcn1.8 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) e. B ) $.
    climcn1.9 $e |- ( ( ph /\ k e. Z ) -> ( H ` k ) = ( F ` ( G ` k ) ) ) $.
    $( Image of a limit under a continuous map.  (Contributed by Mario
       Carneiro, 31-Jan-2014.) $)
    climcn1 $p |- ( ph -> H ~~> ( F ` A ) ) $=
      ( vj cfv cli wbr cv cmin co cabs clt cuz wral wrex crp wa wi adantr simpr
      wcel cz eqidd climi2 uztrn2 adantlr wceq oveq1 fveq2d breq1d fveq2 oveq1d
      imbi12d rspcva sylan an32s sylan2 anassrs ralimdva reximdva rexlimdva mpd
      ex mpid ralrimiva cc eleq1d rspcv sylc clim2c mpbird ) AJEHUDZUEUFGUGZIUD
      ZHUDZWKUHUIZUJUDZBUGZUKUFZGUCUGZULUDZUMZUCMUNZBUOUMAXBBUOAWQUOUTZUPDUGZEU
      HUIZUJUDZCUGZUKUFZXDHUDZWKUHUIZUJUDZWQUKUFZUQZDFUMZCUOUNZXBTAXOXBUQXCAXNX
      BCUOAXGUOUTZUPZXNWMEUHUIZUJUDZXGUKUFZGWTUMZUCMUNZXBXQEWMXGUCGIKMNAKVAUTXP
      OURAXPUSXQWLMUTZUPZWMVBAIEUEUFXPRURVCXQXNYBXBUQXQXNUPZYAXAUCMYEWSMUTZUPXT
      WRGWTYEYFWLWTUTZXTWRUQZYFYGUPYEYCYHKWLWSMNVDXQYCXNYHYDWMFUTZXNYHAYCYIXPUA
      VEXMYHDWMFXDWMVFZXHXTXLWRYJXFXSXGUKYJXEXRUJXDWMEUHVGVHVIYJXKWPWQUKYJXJWOU
      JYJXIWNWKUHXDWMHVJZVKVHVIVLVMVNVOVPVQVRVSWBWCVTURWAWDABWKWNUCGJKLMNOSUBAE
      FUTXIWEUTZDFUMZWKWEUTZPAYLDFQWDZYLYNDEFXDEVFXIWKWEXDEHVJWFWGWHAYCUPYIYMWN
      WEUTZUAAYMYCYOURYLYPDWMFYJXIWNWEYKWFWGWHWIWJ $.
  $}

  ${
    $d j k u v C $.  $d j k u v D $.  $d j k v y z H $.  $d j k u v x y z ph $.
    $d j k u v x y z A $.  $d j k u v y z G $.  $d j k x K $.  $d j k y z Z $.
    $d j k u v x y z B $.  $d j k u v x y z F $.  $d j M $.
    climcn2.1 $e |- Z = ( ZZ>= ` M ) $.
    climcn2.2 $e |- ( ph -> M e. ZZ ) $.
    climcn2.3a $e |- ( ph -> A e. C ) $.
    climcn2.3b $e |- ( ph -> B e. D ) $.
    climcn2.4 $e |- ( ( ph /\ ( u e. C /\ v e. D ) ) -> ( u F v ) e. CC ) $.
    climcn2.5a $e |- ( ph -> G ~~> A ) $.
    climcn2.5b $e |- ( ph -> H ~~> B ) $.
    climcn2.6 $e |- ( ph -> K e. W ) $.
    climcn2.7 $e |- ( ( ph /\ x e. RR+ ) ->
      E. y e. RR+ E. z e. RR+ A. u e. C A. v e. D
        ( ( ( abs ` ( u - A ) ) < y /\ ( abs ` ( v - B ) ) < z ) ->
          ( abs ` ( ( u F v ) - ( A F B ) ) ) < x ) ) $.
    climcn2.8a $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) e. C ) $.
    climcn2.8b $e |- ( ( ph /\ k e. Z ) -> ( H ` k ) e. D ) $.
    climcn2.9 $e |- ( ( ph /\ k e. Z ) ->
                      ( K ` k ) = ( ( G ` k ) F ( H ` k ) ) ) $.
    $( Image of a limit under a continuous map, two-arg version.  (Contributed
       by Mario Carneiro, 31-Jan-2014.) $)
    climcn2 $p |- ( ph -> K ~~> ( A F B ) ) $=
      ( vj co cli wbr cv cfv cmin cabs clt cuz wral wrex crp wcel adantr simprl
      wa wi cz eqidd climi2 simprr rexanuz2 sylanbrc uztrn2 oveq1 fveq2d breq1d
      wceq anbi1d oveq1d imbi12d anbi2d oveq2 rspc2v syl2anc imp sylan2 anassrs
      an32s ralimdva reximdva ex rexlimdvva mpd ralrimiva cc caovcld ralrimivva
      mpid jca eleq1d sylc clim2c mpbird ) AOGHLULZUMUNKUOZMUPZXGNUPZLULZXFUQUL
      ZURUPZBUOZUSUNZKUKUOZUTUPZVAZUKRVBZBVCVAAXRBVCAXMVCVDZVGFUOZGUQULZURUPZCU
      OZUSUNZEUOZHUQULZURUPZDUOZUSUNZVGZXTYELULZXFUQULZURUPZXMUSUNZVHZEJVAFIVAZ
      DVCVBCVCVBZXRUGAYQXRVHXSAYPXRCDVCVCAYCVCVDZYHVCVDZVGZVGZYPXHGUQULZURUPZYC
      USUNZXIHUQULZURUPZYHUSUNZVGZKXPVAZUKRVBZXRUUAUUDKXPVAUKRVBUUGKXPVAUKRVBUU
      JUUAGXHYCUKKMPRSAPVIVDYTTVEZAYRYSVFUUAXGRVDZVGZXHVJAMGUMUNYTUDVEVKUUAHXIY
      HUKKNPRSUUKAYRYSVLUUMXIVJANHUMUNYTUEVEVKUUDUUGUKKPRSVMVNAYPUUJXRVHZVHYTAY
      PUUNAYPVGZUUIXQUKRUUOXORVDZVGUUHXNKXPUUOUUPXGXPVDZUUHXNVHZUUPUUQVGUUOUULU
      URPXGXORSVOAUULYPUURAUULVGZYPUURUUSXHIVDZXIJVDZYPUURVHUHUIYOUURUUDYIVGZXH
      YELULZXFUQULZURUPZXMUSUNZVHFEXHXIIJXTXHVSZYJUVBYNUVFUVGYDUUDYIUVGYBUUCYCU
      SUVGYAUUBURXTXHGUQVPVQVRVTUVGYMUVEXMUSUVGYLUVDURUVGYKUVCXFUQXTXHYELVPZWAV
      QVRWBYEXIVSZUVBUUHUVFXNUVIYIUUGUUDUVIYGUUFYHUSUVIYFUUEURYEXIHUQVPVQVRWCUV
      IUVEXLXMUSUVIUVDXKURUVIUVCXJXFUQYEXIXHLWDZWAVQVRWBWEWFWGWJWHWIWKWLWMVEWTW
      NVEWOWPABXFXJUKKOPQRSTUFUJAFEGHIJWQLUCUAUBWRUUSUUTUVAVGYKWQVDZEJVAFIVAZXJ
      WQVDZUUSUUTUVAUHUIXAAUVLUULAUVKFEIJUCWSVEUVKUVMUVCWQVDFEXHXIIJUVGYKUVCWQU
      VHXBUVIUVCXJWQUVJXBWEXCXDXE $.
  $}

  ${
    $d u v w y z A $.  $d u v w y z B $.  $d u v w y z C $.  $d y z T $.
    $( Complex number addition is a continuous function.  Part of Proposition
       14-4.16 of [Gleason] p. 243.  (We write out the definition directly
       because ~ df-cn and ~ df-cncf are not yet available to us.  See ~ addcn
       for the abbreviated version.)  (Contributed by Mario Carneiro,
       31-Jan-2014.) $)
    addcn2 $p |- ( ( A e. RR+ /\ B e. CC /\ C e. CC ) ->
      E. y e. RR+ E. z e. RR+ A. u e. CC A. v e. CC
        ( ( ( abs ` ( u - B ) ) < y /\ ( abs ` ( v - C ) ) < z ) ->
          ( abs ` ( ( u + v ) - ( B + C ) ) ) < A ) ) $=
      ( crp wcel cc co cv cmin cabs cfv clt wbr wa wi wral w3a c2 cdiv rphalfcl
      caddc 3ad2ant1 simprl simpl2 simprr pnpcan2d fveq2d breq1d simpl3 pnpcand
      wrex anbi12d cr addcl adantl addcld simpl1 rpred abs3lem syl22anc sylbird
      ralrimivva wceq breq2 anbi1d imbi1d 2ralbidv anbi2d rspc2ev syl3anc ) EHI
      ZFJIZGJIZUAZEUBUCKZHIZVTDLZFMKZNOZVSPQZCLZGMKZNOZVSPQZRZWAWEUEKZFGUEKZMKN
      OEPQZSZCJTDJTZWCALZPQZWGBLZPQZRZWLSZCJTDJTZBHUOAHUOVOVPVTVQEUDUFZXBVRWMDC
      JJVRWAJIZWEJIZRZRZWIWJFWEUEKZMKZNOZVSPQZXGWKMKZNOZVSPQZRZWLXFXJWDXMWHXFXI
      WCVSPXFXHWBNXFWAFWEVRXCXDUGVOVPVQXEUHZVRXCXDUIZUJUKULXFXLWGVSPXFXKWFNXFFW
      EGXOXPVOVPVQXEUMZUNUKULUPXFWJJIZWKJIXGJIEUQIXNWLSXEXRVRWAWEURUSXFFGXOXQUT
      XFFWEXOXPUTXFEVOVPVQXEVAVBWJWKXGEVCVDVEVFXAWNWDWRRZWLSZCJTDJTABVSVSHHWOVS
      VGZWTXTDCJJYAWSXSWLYAWPWDWRWOVSWCPVHVIVJVKWQVSVGZXTWMDCJJYBXSWIWLYBWRWHWD
      WQVSWGPVHVLVJVKVMVN $.

    $( Complex number subtraction is a continuous function.  Part of
       Proposition 14-4.16 of [Gleason] p. 243.  (Contributed by Mario
       Carneiro, 31-Jan-2014.) $)
    subcn2 $p |- ( ( A e. RR+ /\ B e. CC /\ C e. CC ) ->
      E. y e. RR+ E. z e. RR+ A. u e. CC A. v e. CC
        ( ( ( abs ` ( u - B ) ) < y /\ ( abs ` ( v - C ) ) < z ) ->
          ( abs ` ( ( u - v ) - ( B - C ) ) ) < A ) ) $=
      ( vw crp wcel cc cv cmin co cabs cfv clt wbr wa caddc w3a cneg wral negcl
      wi wrex addcn2 syl3an3 wceq oveq1 fveq2d breq1d anbi2d oveq2 oveq1d rspcv
      imbi12d syl adantl simpr simpll3 neg2subd abssubd adantll simpll2 negsubd
      eqtrd negsub oveq12d sylibd ralrimdva ralimdva reximdv mpd ) EIJZFKJZGKJZ
      UAZDLZFMNOPALQRZHLZGUBZMNZOPZBLZQRZSZVSWATNZFWBTNZMNZOPZEQRZUEZHKUCZDKUCZ
      BIUFZAIUFZVTCLZGMNOPZWEQRZSZVSWRMNZFGMNZMNZOPZEQRZUEZCKUCZDKUCZBIUFZAIUFV
      QVOVPWBKJWQGUDABHDEFWBUGUHVRWPXJAIVRWOXIBIVRWNXHDKVRVSKJZSZWNXGCKXLWRKJZS
      ZWNVTWRUBZWBMNZOPZWEQRZSZVSXOTNZWIMNZOPZEQRZUEZXGXMWNYDUEZXLXMXOKJYEWRUDW
      MYDHXOKWAXOUIZWGXSWLYCYFWFXRVTYFWDXQWEQYFWCXPOWAXOWBMUJUKULUMYFWKYBEQYFWJ
      YAOYFWHXTWIMWAXOVSTUNUOUKULUQUPURUSXNXSXAYCXFXNXRWTVTXNXQWSWEQXNXQGWRMNZO
      PWSXNXPYGOXNWRGXLXMUTZVOVPVQXKXMVAZVBUKXNGWRYIYHVCVGULUMXNYBXEEQXNYAXDOXN
      XTXBWIXCMXKXMXTXBUIVRVSWRVHVDXNFGVOVPVQXKXMVEYIVFVIUKULUQVJVKVLVMVMVN $.

    $( Complex number multiplication is a continuous function.  Part of
       Proposition 14-4.16 of [Gleason] p. 243.  (Contributed by Mario
       Carneiro, 31-Jan-2014.) $)
    mulcn2 $p |- ( ( A e. RR+ /\ B e. CC /\ C e. CC ) ->
      E. y e. RR+ E. z e. RR+ A. u e. CC A. v e. CC
        ( ( ( abs ` ( u - B ) ) < y /\ ( abs ` ( v - C ) ) < z ) ->
          ( abs ` ( ( u x. v ) - ( B x. C ) ) ) < A ) ) $=
      ( crp wcel cc co cabs cfv clt wbr wa cmul wi cr cle c2 cdiv c1 caddc cmin
      w3a cv wral rphalfcl 3ad2ant1 abscl 3ad2ant3 3ad2ant2 1re readdcl sylancl
      wrex cc0 0lt1 addgegt0 an4s mpanr12 syl2anc elrpd rpdivcld rpred readdcld
      absge0 elrp sylan2b syl21anc simprl simpl2 subcld abscld adantr ltmuldivd
      simprr simpl3 abs2difd resubcld lelttr syl3anc mpand ltsubadd2d ltle syld
      sylibd absge0d lemul2a syl112anc remulcld expd 3syld sylbird impd absmuld
      ex com23 subdird fveq2d eqtr3d breq1d ltmuldiv2d subdid lep1d jca lemul1a
      syl3an3 mpd eqbrtrd mulcld adantld mulcl adantl simpl1 abs3lem ralrimivva
      jcad syl22anc wceq breq2 anbi1d imbi1d 2ralbidv anbi2d rspc2ev ) EHIZFJIZ
      GJIZUFZEUAUBKZGLMZYLFLMZUCUDKZUBKZUDKZUBKZHIYPHIZDUGZFUEKZLMZYRNOZCUGZGUE
      KZLMZYPNOZPZYTUUDQKZFGQKZUEKLMENOZRZCJUHDJUHZUUBAUGZNOZUUFBUGZNOZPZUUKRZC
      JUHDJUHZBHUQAHUQYKYLYQYHYIYLHIZYJEUIUJZYKYQYKYMYPYJYHYMSIZYIGUKULZYKYPYKY
      LYOUVBYKYOYKYNSIZUCSIZYOSIZYIYHUVEYJFUKZUMUNYNUCUOUPZYIYHURYONOZYJYIUVEUR
      YNTOZUVJUVHFVHUVEUVKPUVFURUCNOZUVJUNUSUVEUVFUVKUVLUVJYNUCUTVAVBVCUMVDZVEZ
      VFZVGZYKUVCURYMTOZYSURYQNOZUVDYJYHUVQYIGVHULUVNYSUVCUVQPYPSIZURYPNOZPUVRY
      PVIUVCUVSUVQUVTUVRYMYPUTVAVJVKVDZVEUVNYKUULDCJJYKYTJIZUUDJIZPZPZUUHUUIFUU
      DQKZUEKZLMZYLNOZUWFUUJUEKZLMZYLNOZPZUUKUWEUUHUWIUWLUWEUUHUUBUUDLMZQKZYLNO
      ZUWIUWEUUCUUGUWPUWEUUCUUBYQQKZYLNOZUUGUWPRUWEUUBYLYQUWEUUAUWEYTFYKUWBUWCV
      LZYHYIYJUWDVMZVNZVOZUWEYLYKUVAUWDUVBVPVFZYKYQHIUWDUWAVPVQUWEUUGUWRUWPUWEU
      UGUWNYQTOZUWOUWQTOZUWRUWPRUWEUUGUWNYQNOZUXDUWEUUGUWNYMUEKZYPNOZUXFUWEUXGU
      UFTOZUUGUXHUWEUUDGYKUWBUWCVRZYHYIYJUWDVSZVTUWEUXGSIUUFSIZUVSUXIUUGPUXHRUW
      EUWNYMUWEUUDUXJVOZYKUVCUWDUVDVPZWAUWEUUEUWEUUDGUXJUXKVNZVOZYKUVSUWDUVOVPZ
      UXGUUFYPWBWCWDUWEUWNYMYPUXMUXNUXQWEWHUWEUWNSIZYQSIZUXFUXDRUXMYKUXSUWDUVPV
      PZUWNYQWFVCWGUWEUXRUXSUUBSIZURUUBTOZUXDUXERUXMUXTUXBUWEUUAUXAWIUXRUXSUYAU
      YBPUFUXDUXEUWNYQUUBWJWRWKUWEUXEUWRUWPUWEUWOSIUWQSIYLSIZUXEUWRPUWPRUWEUUBU
      WNUXBUXMWLUWEUUBYQUXBUXTWLUXCUWOUWQYLWBWCWMWNWSWOWPUWEUWOUWHYLNUWEUUAUUDQ
      KZLMUWOUWHUWEUUAUUDUXAUXJWQUWEUYDUWGLUWEYTFUUDUWSUWTUXJWTXAXBXCWHUWEUUGUW
      LUUCUWEUUGYOUUFQKZYLNOZUWLUWEUUFYLYOUXPUXCYKYOHIUWDUVMVPXDUWEUWKUYETOZUYF
      UWLUWEUWKYNUUFQKZUYETUWEFUUEQKZLMUWKUYHUWEUYIUWJLUWEFUUDGUWTUXJUXKXEXAUWE
      FUUEUWTUXOWQXBUWEYNYOTOZUYHUYETOZUWEYNUWEFUWTVOZXFUWEUVEUVGUUEJIZUYJUYKRZ
      UYLYKUVGUWDUVIVPZUXOUYMUVEUVGUXLURUUFTOZPZUYNUYMUXLUYPUUEUKUUEVHXGUVEUVGU
      YQUFUYJUYKYNYOUUFXHWRXIWCXJXKUWEUWKSIUYESIUYCUYGUYFPUWLRUWEUWJUWEUWFUUJUW
      EFUUDUWTUXJXLZUWEFGUWTUXKXLZVNVOUWEYOUUFUYOUXPWLUXCUWKUYEYLWBWCWDWOXMXSUW
      EUUIJIZUUJJIUWFJIESIUWMUUKRUWDUYTYKYTUUDXNXOUYSUYRUWEEYHYIYJUWDXPVFUUIUUJ
      UWFEXQXTWGXRUUTUUMUUCUUQPZUUKRZCJUHDJUHABYRYPHHUUNYRYAZUUSVUBDCJJVUCUURVU
      AUUKVUCUUOUUCUUQUUNYRUUBNYBYCYDYEUUPYPYAZVUBUULDCJJVUDVUAUUHUUKVUDUUQUUGU
      UCUUPYPUUFNYBYFYDYEYGWC $.

    reccn2.t $e |- T = ( if ( 1 <_ ( ( abs ` A ) x. B ) , 1 ,
      ( ( abs ` A ) x. B ) ) x. ( ( abs ` A ) / 2 ) ) $.
    $( The reciprocal function is continuous.  (Contributed by Mario Carneiro,
       9-Feb-2014.)  (Revised by Mario Carneiro, 22-Sep-2014.) $)
    reccn2 $p |- ( ( A e. ( CC \ { 0 } ) /\ B e. RR+ ) -> E. y e. RR+
      A. z e. ( CC \ { 0 } ) ( ( abs ` ( z - A ) ) < y ->
        ( abs ` ( ( 1 / z ) - ( 1 / A ) ) ) < B ) ) $=
      ( cc cc0 wcel crp cmin co cabs cfv clt wbr c1 cdiv cmul cle cdif wa cv wi
      csn wral wrex cif c2 1rp wne simpl eldifsn sylib absrpcl rpmulcl sylancom
      syl ifcl sylancr rphalfcld rpmulcld syl5eqel adantr simpld simprl syl2anc
      mulcld mulne0 divsubdird mulid1d oveq1d wceq 1cnd divcan5 syl3anc mulcomd
      eqtr3d oveq12d eqtrd fveq2d subcld absdivd cr abssubd abscld eqeltrd rpre
      rpred ad2antlr remulcld simprr eqbrtrd 1re min2 lemul1d mpbid caddc recnd
      syl5eqbr 2halvesd min1 mulid2d breqtrd ltletrd lelttrd ltsubadd2d ltadd1d
      resubcld abs2difd mpbird ltmul2dd absmuld mul32d breqtrrd lttrd ltdivmuld
      1red absrpcld expr ralrimiva breq2 imbi1d ralbidv rspcev ) CGHUEUAZIZDJIZ
      UBZEJIZBUCZCKLZMNZEOPZQYKRLZQCRLZKLZMNZDOPZUDZBYFUFZYMAUCZOPZYSUDZBYFUFZA
      JUGYIEQCMNZDSLZTPZQUUGUHZUUFUIRLZSLZJFYIUUIUUJYIQJIUUGJIZUUIJIZUJYGYHUUFJ
      IZUULYICGIZCHUKZUBZUUNYIYGUUQYGYHULCGHUMUNZCUOURZUUFDUPUQZUUHQUUGJUSUTZYI
      UUFUUSVAZVBVCZYIYTBYFYIYKYFIZYNYSYIUVDYNUBZUBZYRCYKKLZMNZCYKSLZMNZRLZDOUV
      FUVGUVIRLZMNYRUVKUVFUVLYQMUVFUVLCUVIRLZYKUVIRLZKLYQUVFCYKUVIUVFUUOUUPYIUU
      QUVEUURVDZVEZUVFYKGIZYKHUKZUVFUVDUVQUVRUBZYIUVDYNVFYKGHUMUNZVEZUVFCYKUVPU
      WAVHZUVFUUQUVSUVIHUKUVOUVTCYKVIVGZVJUVFUVMYOUVNYPKUVFCQSLZUVIRLZUVMYOUVFU
      WDCUVIRUVFCUVPVKVLUVFQGIZUVSUUQUWEYOVMUVFVNZUVTUVOQYKCVOVPVRUVFYKQSLZYKCS
      LZRLZUVNYPUVFUWHYKUWIUVIRUVFYKUWAVKUVFYKCUWAUVPVQVSUVFUWFUUQUVSUWJYPVMUWG
      UVOUVTQCYKVOVPVRVSVTWAUVFUVGUVIUVFCYKUVPUWAWBUWBUWCWCVRUVFUVKDOPUVHUVJDSL
      ZOPUVFUVHEUWKUVFUVHYMWDUVFCYKUVPUWAWEZUVFYLUVFYKCUWAUVPWBWFWGZUVFEYIYJUVE
      UVCVDWIZUVFUVJDUVFUVIUWBWFYHDWDIYGUVEDWHWJZWKZUVFUVHYMEOUWLYIUVDYNWLWMZUV
      FEUUGUUJSLZUWKUWNUVFUUGUUJUVFUUGYIUULUVEUUTVDZWIZUVFUUJYIUUJJIUVEUVBVDZWI
      ZWKUWPUVFEUUKUWRTFUVFUUIUUGTPZUUKUWRTPUVFQWDIZUUGWDIZUXCWNUWTQUUGWOUTUVFU
      UIUUGUUJUVFUUIYIUUMUVEUVAVDWIZUWTUXAWPWQWTUVFUWRUUGYKMNZSLZUWKOUVFUUJUXGU
      UGUXBUVFYKUWAWFZUWSUVFUUJUXGOPUUJUUJWRLZUXGUUJWRLZOPUVFUXJUUFUXKOUVFUUFUV
      FUUFUVFCUVPWFZWSZXAUVFUUFUXGKLZUUJOPUUFUXKOPUVFUXNUVHUUJUVFUUFUXGUXLUXIXI
      UWMUXBUVFCYKUVPUWAXJUVFUVHEUUJUWMUWNUXBUWQUVFEQUUJSLZUUJTUVFEUUKUXOTFUVFU
      UIQTPZUUKUXOTPUVFUXDUXEUXPWNUWTQUUGXBUTUVFUUIQUUJUXFUVFXRUXAWPWQWTUVFUUJU
      VFUUJUXBWSXCXDXEXFUVFUUFUXGUUJUXLUXIUXBXGWQWMUVFUUJUXGUUJUXBUXIUXBXHXKXLU
      VFUWKUUFUXGSLZDSLUXHUVFUVJUXQDSUVFCYKUVPUWAXMVLUVFUUFUXGDUXMUVFUXGUXIWSUV
      FDUWOWSXNVTXOXFXPUVFUVHDUVJUWMUWOUVFUVIUWBUWCXSXQXKWMXTYAUUEUUAAEJUUBEVMZ
      UUDYTBYFUXRUUCYNYSUUBEYMOYBYCYDYEVG $.
  $}

  ${
    $d x y z $.  $d y z A $.  $d y F $.
    cn1lem.1 $e |- F : CC --> CC $.
    cn1lem.2 $e |- ( ( z e. CC /\ A e. CC ) ->
                ( abs ` ( ( F ` z ) - ( F ` A ) ) ) <_ ( abs ` ( z - A ) ) ) $.
    $( A sufficient condition for a function to be continuous.  (Contributed by
       Mario Carneiro, 9-Feb-2014.) $)
    cn1lem $p |- ( ( A e. CC /\ x e. RR+ ) -> E. y e. RR+ A. z e. CC
                  ( ( abs ` ( z - A ) ) < y ->
                    ( abs ` ( ( F ` z ) - ( F ` A ) ) ) < x ) ) $=
      ( cc wcel cv crp wa cmin co cabs cfv clt wbr wi cr wral wrex simpr simpll
      cle syl2anc ffvelrni syl subcld abscld rpre ad2antlr lelttr syl3anc mpand
      ralrimiva weq breq2 imbi1d ralbidv rspcev ) DHIZAJZKIZLZVDCJZDMNZOPZVCQRZ
      VFEPZDEPZMNZOPZVCQRZSZCHUAZVHBJZQRZVNSZCHUAZBKUBVBVDUCVEVOCHVEVFHIZLZVMVH
      UERZVIVNWBWAVBWCVEWAUCZVBVDWAUDZGUFWBVMTIVHTIVCTIZWCVILVNSWBVLWBVJVKWBWAV
      JHIWDHHVFEFUGUHWBVBVKHIWEHHDEFUGUHUIUJWBVGWBVFDWDWEUIUJVDWFVBWAVCUKULVMVH
      VCUMUNUOUPVTVPBVCKBAUQZVSVOCHWGVRVIVNVQVCVHQURUSUTVAUF $.
  $}

  ${
    $d x y z $.  $d y z A $.
    $( The absolute value function is continuous.  (Contributed by Mario
       Carneiro, 9-Feb-2014.) $)
    abscn2 $p |- ( ( A e. CC /\ x e. RR+ ) -> E. y e. RR+ A. z e. CC
                    ( ( abs ` ( z - A ) ) < y ->
                      ( abs ` ( ( abs ` z ) - ( abs ` A ) ) ) < x ) ) $=
      ( cabs cc cr wf wss absf ax-resscn fss mp2an cv abs2difabs cn1lem ) ABCDE
      FGEHGFIFFEHJKFGFELMCNDOP $.

    $( The complex conjugate function is continuous.  (Contributed by Mario
       Carneiro, 9-Feb-2014.) $)
    cjcn2 $p |- ( ( A e. CC /\ x e. RR+ ) -> E. y e. RR+ A. z e. CC
                    ( ( abs ` ( z - A ) ) < y ->
                      ( abs ` ( ( * ` z ) - ( * ` A ) ) ) < x ) ) $=
      ( ccj cjf cv cc wcel wa cfv cmin co cabs cr wceq cle wbr cjcl subcl cjsub
      syl2an abscld fveq2d abscjd eqtr3d eqle syl2anc cn1lem ) ABCDEFCGZHIZDHIZ
      JZUJEKZDEKZLMZNKZOIUQUJDLMZNKZPUQUSQRUMUPUKUNHIUOHIUPHIULUJSDSUNUOTUBUCUM
      UREKZNKUQUSUMUTUPNUJDUAUDUMURUJDTUEUFUQUSUGUHUI $.

    $( The real part function is continuous.  (Contributed by Mario Carneiro,
       9-Feb-2014.) $)
    recn2 $p |- ( ( A e. CC /\ x e. RR+ ) -> E. y e. RR+ A. z e. CC
                    ( ( abs ` ( z - A ) ) < y ->
                      ( abs ` ( ( Re ` z ) - ( Re ` A ) ) ) < x ) ) $=
      ( cre cc cr wf wss ref ax-resscn fss mp2an cv wcel cmin co cfv cabs cle
      wa resub fveq2d wbr subcl absrele syl eqbrtrrd cn1lem ) ABCDEFGEHGFIFFEHJ
      KFGFELMCNZFODFOUAZUJDPQZERZSRZUJERDERPQZSRULSRZTUKUMUOSUJDUBUCUKULFOUNUPT
      UDUJDUEULUFUGUHUI $.

    $( The imaginary part function is continuous.  (Contributed by Mario
       Carneiro, 9-Feb-2014.) $)
    imcn2 $p |- ( ( A e. CC /\ x e. RR+ ) -> E. y e. RR+ A. z e. CC
                    ( ( abs ` ( z - A ) ) < y ->
                      ( abs ` ( ( Im ` z ) - ( Im ` A ) ) ) < x ) ) $=
      ( cim cc cr wf wss imf ax-resscn fss mp2an cv wcel cmin co cfv cabs cle
      wa imsub fveq2d wbr subcl absimle syl eqbrtrrd cn1lem ) ABCDEFGEHGFIFFEHJ
      KFGFELMCNZFODFOUAZUJDPQZERZSRZUJERDERPQZSRULSRZTUKUMUOSUJDUBUCUKULFOUNUPT
      UDUJDUEULUFUGUHUI $.
  $}

  ${
    $d k x y z A $.  $d k y z F $.  $d k x G $.  $d k x y z ph $.  $d k y Z $.
    $d k x y z H $.  $d k M $.
    climcn1lem.1 $e |- Z = ( ZZ>= ` M ) $.
    climcn1lem.2 $e |- ( ph -> F ~~> A ) $.
    climcn1lem.4 $e |- ( ph -> G e. W ) $.
    climcn1lem.5 $e |- ( ph -> M e. ZZ ) $.
    climcn1lem.6 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    ${
      climcn1lem.7 $e |- H : CC --> CC $.
      climcn1lem.8 $e |- ( ( A e. CC /\ x e. RR+ ) -> E. y e. RR+ A. z e. CC
                    ( ( abs ` ( z - A ) ) < y ->
                      ( abs ` ( ( H ` z ) - ( H ` A ) ) ) < x ) ) $.
      climcn1lem.9 $e |- ( ( ph /\ k e. Z ) ->
                           ( G ` k ) = ( H ` ( F ` k ) ) ) $.
      $( The limit of a continuous function, theorem form.  (Contributed by
         Mario Carneiro, 9-Feb-2014.) $)
      climcn1lem $p |- ( ph -> G ~~> ( H ` A ) ) $=
        ( cc cli wbr wcel climcl syl cv cfv ffvelrni adantl crp cmin co cabs wi
        clt wral wrex sylan climcn1 ) ABCDEUAFIGHJKLMPAGEUBUCEUAUDZNEGUEUFZDUGZ
        UAUDVCIUHZUAUDAUAUAVCIRUIUJNOAVABUGZUKUDVCEULUMUNUHCUGUPUCVDEIUHULUMUNU
        HVEUPUCUODUAUQCUKURVBSUSQTUT $.
    $}

    ${
      climabs.7 $e |- ( ( ph /\ k e. Z ) ->
                        ( G ` k ) = ( abs ` ( F ` k ) ) ) $.
      $( Limit of the absolute value of a sequence.  Proposition 12-2.4(c) of
         [Gleason] p. 172.  (Contributed by NM, 7-Jun-2006.)  (Revised by Mario
         Carneiro, 9-Feb-2014.) $)
      climabs $p |- ( ph -> G ~~> ( abs ` A ) ) $=
        ( vx vy vz cabs cc cr wf wss absf ax-resscn fss mp2an abscn2 climcn1lem
        ) AOPQBCDERFGHIJKLMSTRUATSUBSSRUAUCUDSTSRUEUFOPQBUGNUH $.
    $}

    ${
      climcj.7 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) = ( * ` ( F ` k ) ) ) $.
      $( Limit of the complex conjugate of a sequence.  Proposition 12-2.4(c)
         of [Gleason] p. 172.  (Contributed by NM, 7-Jun-2006.)  (Revised by
         Mario Carneiro, 9-Feb-2014.) $)
      climcj $p |- ( ph -> G ~~> ( * ` A ) ) $=
        ( vx vy vz ccj cjf cjcn2 climcn1lem ) AOPQBCDERFGHIJKLMSOPQBTNUA $.
    $}

    ${
      climre.7 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) = ( Re ` ( F ` k ) ) ) $.
      $( Limit of the real part of a sequence.  Proposition 12-2.4(c) of
         [Gleason] p. 172.  (Contributed by NM, 7-Jun-2006.)  (Revised by Mario
         Carneiro, 9-Feb-2014.) $)
      climre $p |- ( ph -> G ~~> ( Re ` A ) ) $=
        ( vx vy vz cre cc cr wf wss ref ax-resscn fss mp2an recn2 climcn1lem )
        AOPQBCDERFGHIJKLMSTRUATSUBSSRUAUCUDSTSRUEUFOPQBUGNUH $.
    $}

    ${
      climim.7 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) = ( Im ` ( F ` k ) ) ) $.
      $( Limit of the imaginary part of a sequence.  Proposition 12-2.4(c) of
         [Gleason] p. 172.  (Contributed by NM, 7-Jun-2006.)  (Revised by Mario
         Carneiro, 9-Feb-2014.) $)
      climim $p |- ( ph -> G ~~> ( Im ` A ) ) $=
        ( vx vy vz cim cc cr wf wss imf ax-resscn fss mp2an imcn2 climcn1lem )
        AOPQBCDERFGHIJKLMSTRUATSUBSSRUAUCUDSTSRUEUFOPQBUGNUH $.
    $}
  $}

  ${
    $d k x y z A $.  $d x y z B $.  $d x y z C $.  $d k x y ph $.
    rlimabs.1 $e |- ( ( ph /\ k e. A ) -> B e. V ) $.
    rlimabs.2 $e |- ( ph -> ( k e. A |-> B ) ~~>r C ) $.
    $( Reverse closure for a real limit.  (Contributed by Mario Carneiro,
       10-May-2016.) $)
    rlimmptrcl $p |- ( ( ph /\ k e. A ) -> B e. CC ) $=
      ( cc wcel cmpt wf wral cdm crli wbr rlimf syl eqid dmmptd sylibr r19.21bi
      feq2d mpbid fmpt ) ACIJZEBABIEBCKZLZUFEBMAUGNZIUGLZUHAUGDOPUJHDUGQRAUIBIU
      GAEUGBCFUGSZGTUCUDEBICUGUKUEUAUB $.

    $( Limit of the absolute value of a sequence.  Proposition 12-2.4(c) of
       [Gleason] p. 172.  (Contributed by Mario Carneiro, 10-May-2016.) $)
    rlimabs $p |- ( ph -> ( k e. A |-> ( abs ` B ) ) ~~>r ( abs ` C ) ) $=
      ( vx vy vz cabs cc wbr wcel wf cr cv crp cfv rlimmptrcl cmpt crli syl wss
      rlimcl absf ax-resscn fss mp2an a1i cmin co clt wi wral wrex abscn2 sylan
      rlimcn1b ) AIJKBCDELMABCDEFGHUAAEBCUBZDUCNDMOZHDVAUFUDZHMMLPZAMQLPQMUEVDU
      GUHMQMLUIUJUKAVBIRZSOKRZDULUMLTJRUNNVFLTDLTULUMLTVEUNNUOKMUPJSUQVCIJKDURU
      SUT $.

    $( Limit of the complex conjugate of a sequence.  Proposition 12-2.4(c) of
       [Gleason] p. 172.  (Contributed by Mario Carneiro, 10-May-2016.) $)
    rlimcj $p |- ( ph -> ( k e. A |-> ( * ` B ) ) ~~>r ( * ` C ) ) $=
      ( vx vy vz ccj cc wbr wcel cv crp cmin co cfv rlimmptrcl cmpt crli rlimcl
      syl wf cjf a1i cabs clt wi wral wrex cjcn2 sylan rlimcn1b ) AIJKBCDELMABC
      DEFGHUAAEBCUBZDUCNDMOZHDUQUDUEZHMMLUFAUGUHAURIPZQOKPZDRSUITJPUJNVALTDLTRS
      UITUTUJNUKKMULJQUMUSIJKDUNUOUP $.

    $( Limit of the real part of a sequence.  Proposition 12-2.4(c) of
       [Gleason] p. 172.  (Contributed by Mario Carneiro, 10-May-2016.) $)
    rlimre $p |- ( ph -> ( k e. A |-> ( Re ` B ) ) ~~>r ( Re ` C ) ) $=
      ( vx vy vz cre cc wbr wcel wf cr cv crp cfv rlimmptrcl rlimcl syl wss ref
      cmpt crli ax-resscn fss mp2an a1i cmin co cabs clt wi wral recn2 rlimcn1b
      wrex sylan ) AIJKBCDELMABCDEFGHUAAEBCUFZDUGNDMOZHDVBUBUCZHMMLPZAMQLPQMUDV
      EUEUHMQMLUIUJUKAVCIRZSOKRZDULUMUNTJRUONVGLTDLTULUMUNTVFUONUPKMUQJSUTVDIJK
      DURVAUS $.

    $( Limit of the imaginary part of a sequence.  Proposition 12-2.4(c) of
       [Gleason] p. 172.  (Contributed by Mario Carneiro, 10-May-2016.) $)
    rlimim $p |- ( ph -> ( k e. A |-> ( Im ` B ) ) ~~>r ( Im ` C ) ) $=
      ( vx vy vz cim cc wbr wcel wf cr cv crp cfv rlimmptrcl rlimcl syl wss imf
      cmpt crli ax-resscn fss mp2an a1i cmin co cabs clt wi wral imcn2 rlimcn1b
      wrex sylan ) AIJKBCDELMABCDEFGHUAAEBCUFZDUGNDMOZHDVBUBUCZHMMLPZAMQLPQMUDV
      EUEUHMQMLUIUJUKAVCIRZSOKRZDULUMUNTJRUONVGLTDLTULUMUNTVFUONUPKMUQJSUTVDIJK
      DURVAUS $.
  $}

  ${
    $d a b m n x y z F $.  $d a b m n x y z G $.  $d a b m n x y z R $.
    $d x y z M $.
    o1of2.1 $e |- ( ( m e. RR /\ n e. RR ) -> M e. RR ) $.
    o1of2.2 $e |- ( ( x e. CC /\ y e. CC ) -> ( x R y ) e. CC ) $.
    o1of2.3 $e |- ( ( ( m e. RR /\ n e. RR ) /\ ( x e. CC /\ y e. CC ) ) ->
                    ( ( ( abs ` x ) <_ m /\ ( abs ` y ) <_ n ) ->
                      ( abs ` ( x R y ) ) <_ M ) ) $.
    $( Show that a binary operation preserves eventual boundedness.
       (Contributed by Mario Carneiro, 15-Sep-2014.) $)
    o1of2 $p |- ( ( F e. O(1) /\ G e. O(1) ) -> ( F oF R G ) e. O(1) ) $=
      ( vz wcel wa cle wbr cfv cabs cr cc va vb co1 cv wi cdm wral wrex cof o1f
      co wf o1bdd mpdan adantr adantl reeanv cin wss inss1 ssralv ax-mp anim12i
      inss2 r19.26 sylibr cif prth simplrl simplrr o1dm ad3antrrr syl5ss sselda
      wb maxle syl3anc biimpd sseli ffvelrn syl2an ad3antlr ralrimivva ad2antlr
      wceq fveq2 breq1d anbi1d oveq1 fveq2d imbi12d anbi2d rspc2va syl21anc cvv
      oveq2 wfn ffn syl reex ssexg sylancl dmexg eqidd sylibrd imim12d ralimdva
      eqid ofval syl5 off elo12r 3expia syl22anc syld rexlimdvva syl5bir mp2and
      ifcld ) FUCMZGUCMZNZUAUDZLUDZOPZYDFQZRQZDUDZOPZUEZLFUFZUGZDSUHZUASUHZUBUD
      ZYDOPZYDGQZRQZEUDZOPZUEZLGUFZUGZESUHZUBSUHZFGCUIUKZUCMZXTYNYAXTYKTFULZYNF
      UJZUALYKDFUMUNUOYAUUEXTYAUUBTGULZUUEGUJZUBLUUBEGUMUNUPYNUUENYMUUDNZUBSUHU
      ASUHYBUUGYMUUDUAUBSSUQYBUULUUGUAUBSSUULYLUUCNZESUHDSUHYBYCSMZYOSMZNZNZUUG
      YLUUCDESSUQUUQUUMUUGDESSUUMYJUUANZLYKUUBURZUGZUUQYHSMYSSMNZNZUUGUUMYJLUUS
      UGZUUALUUSUGZNUUTYLUVCUUCUVDUUSYKUSYLUVCUEYKUUBUTZYJLUUSYKVAVBUUSUUBUSUUC
      UVDUEYKUUBVDZUUALUUSUUBVAVBVCYJUUALUUSVEVFUVBUUTYCYOOPZYOYCVGZYDOPZYDUUFQ
      ZRQZHOPZUEZLUUSUGZUUGUVBUURUVMLUUSUURYEYPNZYIYTNZUEUVBYDUUSMZNZUVMYEYIYPY
      TVHUVRUVIUVOUVPUVLUVRUVIUVOUVRUUNUUOYDSMUVIUVOVOUVBUUNUVQYBUUNUUOUVAVIZUO
      UVBUUOUVQYBUUNUUOUVAVJZUOUVBUUSSYDUVBUUSYKSUVEXTYKSUSZYAUUPUVAFVKVLZVMZVN
      YCYOYDVPVQVRUVRUVPYFYQCUKZRQZHOPZUVLUVRYFTMZYQTMZAUDZRQZYHOPZBUDZRQZYSOPZ
      NZUWIUWLCUKZRQZHOPZUEZBTUGATUGZUVPUWFUEZUVBUUHYDYKMZUWGUVQXTUUHYAUUPUVAUU
      IVLZUUSYKYDUVEVSYKTYDFVTWAUVBUUJYDUUBMZUWHUVQYAUUJXTUUPUVAUUKWBZUUSUUBYDU
      VFVSUUBTYDGVTWAUVAUWTUUQUVQUVAUWSABTTKWCWDUWSUXAYIUWNNZYFUWLCUKZRQZHOPZUE
      ABYFYQTTUWIYFWEZUWOUXFUWRUXIUXJUWKYIUWNUXJUWJYGYHOUWIYFRWFWGWHUXJUWQUXHHO
      UXJUWPUXGRUWIYFUWLCWIWJWGWKUWLYQWEZUXFUVPUXIUWFUXKUWNYTYIUXKUWMYRYSOUWLYQ
      RWFWGWLUXKUXHUWEHOUXKUXGUWDRUWLYQYFCWPWJWGWKWMWNUVRUVKUWEHOUVRUVJUWDRUVBY
      KUUBYFYQCUUSFGWOWOYDUVBUUHFYKWQUXCYKTFWRWSUVBUUJGUUBWQUXEUUBTGWRWSUVBUWAS
      WOMYKWOMUWBWTYKSWOXAXBZYAUUBWOMXTUUPUVAGUCXCWBZUUSXHZUVBUXBNYFXDUVBUXDNYQ
      XDXIWJWGXEXFXJXGUVBUUSTUUFULZUUSSUSZUVHSMZHSMZUVNUUGUEUVBABYKUUBUUSCTTTFG
      WOWOUWITMUWLTMNUWPTMUVBJUPUXCUXEUXLUXMUXNXKUWCUVBUVGYOYCSUVTUVSXSUVAUXRUU
      QIUPUXOUXPNUXQUXRNUVNUUGLUUSUVHUUFHXLXMXNXOXJXPXQXPXQXR $.
  $}

  ${
    $d w x y z A $.  $d x B $.  $d a b m n w x y z F $.  $d a b m n x y z G $.
    $( The sum of two eventually bounded functions is eventually bounded.
       (Contributed by Mario Carneiro, 15-Sep-2014.)  (Proof shortened by Fan
       Zheng, 14-Jul-2016.) $)
    o1add $p |- ( ( F e. O(1) /\ G e. O(1) ) -> ( F oF + G ) e. O(1) ) $=
      ( vm vn vx vy caddc cv co readdcl cr wcel wa cc cabs cfv cle wbr readdcld
      abscld addcl w3a simp2l simp2r addcld simp1l simp1r abstrid simp3l simp3r
      le2addd letrd 3expia o1of2 ) CDGEFABEHZFHZGIZUOUPJCHZDHZUAUOKLZUPKLZMZURN
      LZUSNLZMZUROPZUOQRZUSOPZUPQRZMZURUSGIZOPZUQQRVBVEVJUBZVLVFVHGIUQVMVKVMURU
      SVBVCVDVJUCZVBVCVDVJUDZUETVMVFVHVMURVNTZVMUSVOTZSVMUOUPUTVAVEVJUFZUTVAVEV
      JUGZSVMURUSVNVOUHVMVFVHUOUPVPVQVRVSVBVEVGVIUIVBVEVGVIUJUKULUMUN $.

    $( The product of two eventually bounded functions is eventually bounded.
       (Contributed by Mario Carneiro, 15-Sep-2014.)  (Proof shortened by Fan
       Zheng, 14-Jul-2016.) $)
    o1mul $p |- ( ( F e. O(1) /\ G e. O(1) ) -> ( F oF x. G ) e. O(1) ) $=
      ( vx vy vm vn cmul cv co remulcl cr wcel wa cc cfv cle wbr abscld absge0d
      cabs mulcl w3a simp2l simp2r simp1l simp1r simp3l simp3r lemul12ad 3expia
      absmuld eqbrtrd o1of2 ) CDGEFABEHZFHZGIZUNUOJCHZDHZUAUNKLZUOKLZMZUQNLZURN
      LZMZUQTOZUNPQZURTOZUOPQZMZUQURGITOZUPPQVAVDVIUBZVJVEVGGIUPPVKUQURVAVBVCVI
      UCZVAVBVCVIUDZUKVKVEUNVGUOVKUQVLRUSUTVDVIUEVKURVMRUSUTVDVIUFVKUQVLSVKURVM
      SVAVDVFVHUGVAVDVFVHUHUIULUJUM $.

    $( The difference of two eventually bounded functions is eventually
       bounded.  (Contributed by Mario Carneiro, 15-Sep-2014.)  (Proof
       shortened by Fan Zheng, 14-Jul-2016.) $)
    o1sub $p |- ( ( F e. O(1) /\ G e. O(1) ) -> ( F oF - G ) e. O(1) ) $=
      ( vm vn vx vy cmin cv caddc co cr wcel wa cc cabs cfv cle abscld readdcld
      wbr readdcl subcl w3a simp2l simp2r subcld simp1l simp1r abs2dif2d simp3l
      simp3r le2addd letrd 3expia o1of2 ) CDGEFABEHZFHZIJZUPUQUACHZDHZUBUPKLZUQ
      KLZMZUSNLZUTNLZMZUSOPZUPQTZUTOPZUQQTZMZUSUTGJZOPZURQTVCVFVKUCZVMVGVIIJURV
      NVLVNUSUTVCVDVEVKUDZVCVDVEVKUEZUFRVNVGVIVNUSVORZVNUTVPRZSVNUPUQVAVBVFVKUG
      ZVAVBVFVKUHZSVNUSUTVOVPUIVNVGVIUPUQVQVRVSVTVCVFVHVJUJVCVFVHVJUKULUMUNUO
      $.

    $( Any function with a finite limit is eventually bounded.  (Contributed by
       Mario Carneiro, 18-Sep-2014.) $)
    rlimo1 $p |- ( F ~~>r A -> F e. O(1) ) $=
      ( vy vz vw wbr wcel cv cle cfv cabs wi wral cr wrex co c1 clt cc adantr
      crli co1 cdm cmin rlimf ffvelrnda ralrimiva crp 1rp cmpt feqmptd eqbrtrrd
      a1i id rlimi wa caddc rlimcl abscld peano2re syl abs2difd resubcld subcld
      adantlr 1red lelttr syl3anc mpand ltsubadd2d sylibd ltle syl2anc ralimdva
      syld imim2d breq2 imbi2d ralbidv rspcev syl6an reximdva mpd wf wss rlimss
      wceq wb elo12 mpbird ) BAUAFZBUBGZCHZDHZIFZWNBJZKJZEHZIFZLZDBUCZMZENOZCNO
      ZWKWOWPAUDPZKJZQRFZLZDXAMZCNOXDWKCDXAWPAQSWKWPSGZDXAWKXASWNBABUEZUFZUGQUH
      GWKUIUMWKBDXAWPUJAUAWKDXASBXKUKWKUNULUOWKXIXCCNWKWMNGZUPZAKJZQUQPZNGZXIWO
      WQXPIFZLZDXAMZXCXNXONGZXQXNAWKASGZXMABURTZUSZXOUTVAZXNXHXSDXAXNWNXAGZUPZX
      GXRWOYGXGWQXPRFZXRYGXGWQXOUDPZQRFZYHYGYIXFIFZXGYJYGWPAWKYFXJXMXLVEZXNYBYF
      YCTZVBYGYINGXFNGQNGYKXGUPYJLYGWQXOYGWPYLUSZXNYAYFYDTZVCYGXEYGWPAYLYMVDUSY
      GVFZYIXFQVGVHVIYGWQXOQYNYOYPVJVKYGWQNGXQYHXRLYNXNXQYFYETWQXPVLVMVOVPVNXBX
      TEXPNWRXPWGZWTXSDXAYQWSXRWOWRXPWQIVQVRVSVTWAWBWCWKXASBWDXANWEWLXDWHXKABWF
      CDXAEBWIVMWJ $.

    $( A convergent function is eventually bounded.  (Contributed by Mario
       Carneiro, 12-May-2016.) $)
    rlimdmo1 $p |- ( F e. dom ~~>r -> F e. O(1) ) $=
      ( vx crli cdm wcel cv wbr wex co1 eldmg ibi rlimo1 exlimiv syl ) ACDZEZAB
      FZCGZBHZAIEZPSBACOJKRTBQALMN $.

    $( The product of an eventually bounded function and a function of limit
       zero has limit zero.  (Contributed by Mario Carneiro, 18-Sep-2014.) $)
    o1rlimmul $p |- ( ( F e. O(1) /\ G ~~>r 0 ) -> ( F oF x. G ) ~~>r 0 ) $=
      ( vx wcel cc0 wbr wa cmul co cv cfv cvv cc adantr cr cle cabs clt wi wral
      vz vy va vm vb co1 crli cof cdm cin cmpt wfn o1f ffn syl rlimf adantl wss
      o1dm reex ssexg sylancl rlimss eqid eqidd offval crp o1bdd mpdan ad2antrr
      wf wrex cmin c1 caddc cdiv fvexd ralrimiva simplr ad2antll abscld absge0d
      recn ge0p1rpd rpdivcld feqmptd simpr eqbrtrrd rlimi cif inss1 ax-mp inss2
      ssralv anim12i r19.26 sylibr ralimi simprl syl5ss ad3antrrr simprr sseldd
      prth wb simplrl maxle syl3anc biimpd sseli ffvelrnd subid1d fveq2d breq1d
      rpred ltle syl2anc sylbid anim2d jca simplrr lemul12a absmuld recnd rpcnd
      syl22anc rpne0d divassd peano2re leabsd ltp1d ltmul1dd remulcld ltdivmuld
      lelttrd mpbird mulcld mpd ffvelrn syl2an sylbird imim12d anassrs ralimdva
      lelttr mpan2d 3syld ifcld jctild wceq breq1 imbi1d ralbidv rspcev expcomd
      syl56 rexlimdva rexlimdvva rlim0 eqbrtrd ) AUFDZBEUGFZGZABHUHICAUIZBUIZUJ
      ZCJZAKZUVGBKZHIZUKZEUGUVCCUVDUVEUVHUVIHUVFABLLUVCUVDMAVKZAUVDULUVAUVLUVBA
      UMZNZUVDMAUNUOUVCUVEMBVKZBUVEULUVBUVOUVAEBUPUQZUVEMBUNUOUVCUVDOURZOLDZUVD
      LDUVAUVQUVBAUSNZUTUVDOLVAVBUVCUVEOURZUVRUVELDUVBUVTUVAEBVCUQUTUVEOLVAVBUV
      FVDUVCUVGUVDDZGUVHVEUVCUVGUVEDZGUVIVEVFUVCUVKEUGFUAJZUVGPFZUVJQKZUBJZRFZS
      ZCUVFTZUAOVLZUBVGTUVCUWJUBVGUVCUWFVGDZGZUCJZUVGPFZUVHQKZUDJZPFZSZCUVDTZUD
      OVLUCOVLZUWJUVAUWTUVBUWKUVAUVLUWTUVMUCCUVDUDAVHVIVJUWLUWSUWJUCUDOOUWLUWMO
      DZUWPODZGZGZUEJZUVGPFZUVIEVMIZQKZUWFUWPQKZVNVOIZVPIZRFZSZCUVETZUEOVLUWSUW
      JSZUXDUECUVEUVIEUXKLUXDUVILDCUVEUXDUWBGUVGBVQVRUXDUWFUXJUVCUWKUXCVSZUXDUX
      IUXDUWPUXBUWPMDUWLUXAUWPWCVTZWAZUXDUWPUXQWBWDZWEZUVCCUVEUVIUKZEUGFUWKUXCU
      VCBUYAEUGUVCCUVEMBUVPWFUVAUVBWGWHVJWIUXDUXNUXOUEOUXDUXEODZGZUWSUXNUWJUWSU
      XNGZUWNUXFGZUWQUXLGZSZCUVFTZUYCUWMUXEPFZUXEUWMWJZODZUYJUVGPFZUWGSZCUVFTZG
      UWJUYDUWRUXMGZCUVFTZUYHUYDUWRCUVFTZUXMCUVFTZGUYPUWSUYQUXNUYRUVFUVDURUWSUY
      QSUVDUVEWKZUWRCUVFUVDWNWLUVFUVEURUXNUYRSUVDUVEWMZUXMCUVFUVEWNWLWOUWRUXMCU
      VFWPWQUYOUYGCUVFUWNUWQUXFUXLXDWRUOUYCUYHUYNUYKUYCUYGUYMCUVFUXDUYBUVGUVFDZ
      UYGUYMSUXDUYBVUAGZGZUYLUYEUYFUWGVUCUYLUYEVUCUXAUYBUVGODUYLUYEXEUWLUXAUXBV
      UBXFUXDUYBVUAWSVUCUVFOUVGUVCUVFOURUWKUXCVUBUVCUVFUVDOUYSUVSWTZXAUXDUYBVUA
      XBXCUWMUXEUVGXGXHXIVUCUYFUWQUVIQKZUXKPFZGZUWOVUEHIZUWPUXKHIZPFZUWGVUCUXLV
      UFUWQVUCUXLVUEUXKRFZVUFVUCUXHVUEUXKRVUCUXGUVIQVUCUVIVUCUVEMUVGBUVCUVOUWKU
      XCVUBUVPXAVUAUWBUXDUYBUVFUVEUVGUYTXJZVTXKZXLXMXNVUCVUEODZUXKODZVUKVUFSVUC
      UVIVUMWAZVUCUXKUXDUXKVGDVUBUXTNXOZVUEUXKXPXQXRXSVUCUWOODZEUWOPFZGUXBVUNEV
      UEPFZGVUOVUGVUJSVUCVURVUSVUCUVHVUCUVDMUVGAUVCUVLUWKUXCVUBUVNXAVUAUWAUXDUY
      BUVFUVDUVGUYSXJZVTXKZWAVUCUVHVVBWBXTUWLUXAUXBVUBYAZVUCVUNVUTVUPVUCUVIVUMW
      BXTVUQUWOUWPVUEUXKYBYFVUCVUJUWEVUIPFZUWGVUCUWEVUHVUIPVUCUVHUVIVVBVUMYCXNV
      UCVVDVUIUWFRFZUWGVUCUWPUWFHIZUXJVPIZVUIUWFRVUCUWPUWFUXJVUCUWPVVCYDVUCUWFU
      XDUWKVUBUXPNZYEVUCUXJUXDUXJVGDVUBUXSNZYEVUCUXJVVIYGYHVUCVVGUWFRFVVFUXJUWF
      HIRFVUCUWPUXJUWFVVCUXDUXJODZVUBUXDUXIODZVVJUXRUXIYIUONZVVHVUCUWPUXIUXJVVC
      UXDVVKVUBUXRNZVVLVUCUWPVVCYJVUCUXIVVMYKYOYLVUCVVFUWFUXJVUCUWPUWFVVCVUCUWF
      VVHXOZYMVVNVVIYNYPWHVUCUWEODVUIODUWFODVVDVVEGUWGSVUCUVJVUCUVHUVIVVBVUMYQW
      AVUCUWPUXKVVCVUQYMVVNUWEVUIUWFUUEXHUUFUUAUUGUUBUUCUUDUYCUYIUXEUWMOUXDUYBW
      GUWLUXAUXBUYBXFUUHUUIUWIUYNUAUYJOUWCUYJUUJZUWHUYMCUVFVVOUWDUYLUWGUWCUYJUV
      GPUUKUULUUMUUNUUPUUOUUQYRUURYRVRUVCUBUACUVFUVJUVCUVJMDCUVFUVCVUAGUVHUVIUV
      CUVLUWAUVHMDVUAUVNVVAUVDMUVGAYSYTUVCUVOUWBUVIMDVUAUVPVULUVEMUVGBYSYTYQVRV
      UDUUSYPUUT $.

    $( A constant function is eventually bounded.  (Contributed by Mario
       Carneiro, 15-Sep-2014.)  (Proof shortened by Mario Carneiro,
       26-May-2016.) $)
    o1const $p |- ( ( A C_ RR /\ B e. CC ) -> ( x e. A |-> B ) e. O(1) ) $=
      ( cr wss cc wcel wa cmpt crli wbr co1 rlimconst rlimo1 syl ) BDECFGHABCIZ
      CJKPLGABCMCPNO $.

    $( A constant function is eventually upper bounded.  (Contributed by Mario
       Carneiro, 26-May-2016.) $)
    lo1const $p |- ( ( A C_ RR /\ B e. RR ) -> ( x e. A |-> B ) e. <_O(1) ) $=
      ( cr wss wcel wa simpl cv simplr simpr cle wbr leid ad2antlr ello1d ) BDE
      ZCDFZGABCCCQRHQRAIZBFZJQRKZUARCCLMQTCSLMGCNOP $.
  $}

  ${
    $d c m n p x A $.  $d c m n p B $.  $d c m n p C $.  $d c m n p x ph $.
    o1add2.1 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    ${
      lo1mptrcl.3 $e |- ( ph -> ( x e. A |-> B ) e. <_O(1) ) $.
      $( Reverse closure for an eventually upper bounded function.
         (Contributed by Mario Carneiro, 26-May-2016.) $)
      lo1mptrcl $p |- ( ( ph /\ x e. A ) -> B e. RR ) $=
        ( cr wcel cmpt wf wral cdm clo1 lo1f syl wceq ralrimiva dmmptg feq2d
        mpbid eqid fmpt sylibr r19.21bi ) ADHIZBCACHBCDJZKZUFBCLAUGMZHUGKZUHAUG
        NIUJGUGOPAUICHUGADEIZBCLUICQAUKBCFRBCDESPTUABCHDUGUGUBUCUDUE $.
    $}

    ${
      o1mptrcl.3 $e |- ( ph -> ( x e. A |-> B ) e. O(1) ) $.
      $( Reverse closure for an eventually bounded function.  (Contributed by
         Mario Carneiro, 26-May-2016.) $)
      o1mptrcl $p |- ( ( ph /\ x e. A ) -> B e. CC ) $=
        ( cc wcel cmpt wf wral cdm co1 o1f syl wceq ralrimiva dmmptg feq2d eqid
        mpbid fmpt sylibr r19.21bi ) ADHIZBCACHBCDJZKZUFBCLAUGMZHUGKZUHAUGNIUJG
        UGOPAUICHUGADEIZBCLUICQAUKBCFRBCDESPTUBBCHDUGUGUAUCUDUE $.
    $}

    o1add2.2 $e |- ( ( ph /\ x e. A ) -> C e. V ) $.
    ${
      o1add2.3 $e |- ( ph -> ( x e. A |-> B ) e. O(1) ) $.
      o1add2.4 $e |- ( ph -> ( x e. A |-> C ) e. O(1) ) $.
      $( The sum of two eventually bounded functions is eventually bounded.
         (Contributed by Mario Carneiro, 26-May-2016.) $)
      o1add2 $p |- ( ph -> ( x e. A |-> ( B + C ) ) e. O(1) ) $=
        ( cmpt caddc co co1 cvv cr wss wcel syl eqidd cof wral ralrimiva dmmptg
        cdm wceq o1dm eqsstr3d reex ssex offval2 o1add syl2anc eqeltrrd ) ABCDK
        ZBCEKZLUAMZBCDELMKNABCDELUOUPOFFACPQCORACUOUEZPADFRZBCUBURCUFAUSBCGUCBC
        DFUDSAUONRZURPQIUOUGSUHCPUIUJSGHAUOTAUPTUKAUTUPNRUQNRIJUOUPULUMUN $.

      $( The product of two eventually bounded functions is eventually bounded.
         (Contributed by Mario Carneiro, 26-May-2016.) $)
      o1mul2 $p |- ( ph -> ( x e. A |-> ( B x. C ) ) e. O(1) ) $=
        ( cmpt cmul co co1 cvv cr wss wcel syl eqidd wral wceq ralrimiva dmmptg
        cof cdm o1dm eqsstr3d reex ssex offval2 o1mul syl2anc eqeltrrd ) ABCDKZ
        BCEKZLUEMZBCDELMKNABCDELUOUPOFFACPQCORACUOUFZPADFRZBCUAURCUBAUSBCGUCBCD
        FUDSAUONRZURPQIUOUGSUHCPUIUJSGHAUOTAUPTUKAUTUPNRUQNRIJUOUPULUMUN $.

      $( The product of two eventually bounded functions is eventually bounded.
         (Contributed by Mario Carneiro, 15-Sep-2014.) $)
      o1sub2 $p |- ( ph -> ( x e. A |-> ( B - C ) ) e. O(1) ) $=
        ( cmpt cmin co co1 cvv cr wss wcel syl eqidd wral wceq ralrimiva dmmptg
        cof cdm o1dm eqsstr3d reex ssex offval2 o1sub syl2anc eqeltrrd ) ABCDKZ
        BCEKZLUEMZBCDELMKNABCDELUOUPOFFACPQCORACUOUFZPADFRZBCUAURCUBAUSBCGUCBCD
        FUDSAUONRZURPQIUOUGSUHCPUIUJSGHAUOTAUPTUKAUTUPNRUQNRIJUOUPULUMUN $.
    $}

    ${
      lo1add.3 $e |- ( ph -> ( x e. A |-> B ) e. <_O(1) ) $.
      lo1add.4 $e |- ( ph -> ( x e. A |-> C ) e. <_O(1) ) $.
      $( The sum of two eventually upper bounded functions is eventually upper
         bounded.  (Contributed by Mario Carneiro, 26-May-2016.) $)
      lo1add $p |- ( ph -> ( x e. A |-> ( B + C ) ) e. <_O(1) ) $=
        ( vc vm vn wcel cle wi wral cr wrex wa vp cmpt clo1 caddc co wbr reeanv
        cv wss wb cdm wceq ralrimiva dmmptg syl eqsstr3d adantr rexanre readdcl
        lo1dm adantl lo1mptrcl adantlr simplrl simplrr le2add syl22anc ralimdva
        imim2d imbi2d ralbidv rspcev syl6an reximdv sylbird rexlimdvva ello1mpt
        breq2 syl5bir rexcom syl6bb anbi12d readdcld 3imtr4d mp2and ) ABCDUBZUC
        NZBCEUBUCNZBCDEUDUEZUBUCNZIJAKUHBUHZOUFZDLUHZOUFZPBCQZKRSZLRSZWLEMUHZOU
        FZPBCQZKRSZMRSZTZWLWIUAUHZOUFZPZBCQZUARSZKRSZWGWHTWJXCWPXATZMRSLRSAXIWP
        XALMRRUGAXJXILMRRAWMRNZWRRNZTZTZXJWLWNWSTZPZBCQZKRSZXIXNCRUIZXRXJUJAXSX
        MACWFUKZRADFNZBCQXTCULAYABCGUMBCDFUNUOAWGXTRUIIWFUTUOUPZUQWNWSCKBURUOXN
        XQXHKRXNWMWRUDUEZRNZXQWLWIYCOUFZPZBCQZXHXMYDAWMWRUSVAXNXPYFBCXNWKCNZTZX
        OYEWLYIDRNZERNZXKXLXOYEPAYHYJXMABCDFGIVBZVCAYHYKXMABCEFHJVBZVCAXKXLYHVD
        AXKXLYHVEDEWMWRVFVGVIVHXGYGUAYCRXDYCULZXFYFBCYNXEYEWLXDYCWIOVRVJVKVLVMV
        NVOVPVSAWGWQWHXBAWGWOLRSKRSWQABKCDLYBYLVQWOKLRRVTWAAWHWTMRSKRSXBABKCEMY
        BYMVQWTKMRRVTWAWBABKCWIUAYBAYHTDEYLYMWCVQWDWE $.

      lo1mul.5 $e |- ( ( ph /\ x e. A ) -> 0 <_ B ) $.
      $( The product of an eventually upper bounded function and a positive
         eventually upper bounded function is eventually upper bounded.
         (Contributed by Mario Carneiro, 26-May-2016.) $)
      lo1mul $p |- ( ph -> ( x e. A |-> ( B x. C ) ) e. <_O(1) ) $=
        ( vc vm vn wcel cle wbr cr wrex wa vp cmpt clo1 cmul co wral reeanv wss
        cv wi wb cdm ralrimiva dmmptg syl lo1dm eqsstr3d adantr rexanre cc0 cif
        wceq simprl simprr ifcl sylancl remulcld simplrr max2 sylancr lo1mptrcl
        0re adantlr syl3anc mpan2d jca simplrl lemul12b syl22anc sylan2d imim2d
        letr max1 breq2 imbi2d ralbidv rspcev syl6an reximdv sylbird rexlimdvva
        ralimdva syl5bir ello1mpt rexcom syl6bb anbi12d 3imtr4d mp2and ) ABCDUB
        ZUCOZBCEUBUCOZBCDEUDUEZUBUCOZIJALUIBUIZPQZDMUIZPQZUJBCUFZLRSZMRSZXFENUI
        ZPQZUJBCUFZLRSZNRSZTZXFXCUAUIZPQZUJZBCUFZUARSZLRSZXAXBTXDXQXJXOTZNRSMRS
        AYCXJXOMNRRUGAYDYCMNRRAXGROZXLROZTZTZYDXFXHXMTZUJZBCUFZLRSZYCYHCRUHZYLY
        DUKAYMYGACWTULZRADFOZBCUFYNCVBAYOBCGUMBCDFUNUOAXAYNRUHIWTUPUOUQZURXHXMC
        LBUSUOYHYKYBLRYHXGUTXLPQZXLUTVAZUDUEZROYKXFXCYSPQZUJZBCUFZYBYHXGYRAYEYF
        VCYHYFUTROZYRROZAYEYFVDVLYQXLUTRVEZVFVGYHYJUUABCYHXECOZTZYIYTXFUUGXMEYR
        PQZXHYTUUGXMXLYRPQZUUHUUGUUCYFUUIVLAYEYFUUFVHZUTXLVIVJUUGEROZYFUUDXMUUI
        TUUHUJAUUFUUKYGABCEFHJVKZVMZUUJUUGYFUUCUUDUUJVLUUEVFZEXLYRWBVNVOUUGDROZ
        UTDPQZTYEUUKUUDUTYRPQZTXHUUHTYTUJUUGUUOUUPAUUFUUOYGABCDFGIVKZVMAUUFUUPY
        GKVMVPAYEYFUUFVQUUMUUGUUDUUQUUNUUGUUCYFUUQVLUUJUTXLWCVJVPDXGEYRVRVSVTWA
        WLYAUUBUAYSRXRYSVBZXTUUABCUUSXSYTXFXRYSXCPWDWEWFWGWHWIWJWKWMAXAXKXBXPAX
        AXIMRSLRSXKABLCDMYPUURWNXILMRRWOWPAXBXNNRSLRSXPABLCENYPUULWNXNLNRRWOWPW
        QABLCXCUAYPAUUFTDEUURUULVGWNWRWS $.

      $( The product of an eventually upper bounded function and a positive
         eventually upper bounded function is eventually upper bounded.
         (Contributed by Mario Carneiro, 26-May-2016.) $)
      lo1mul2 $p |- ( ph -> ( x e. A |-> ( C x. B ) ) e. <_O(1) ) $=
        ( cmul co cmpt clo1 cv wcel wa lo1mptrcl recnd mulcomd mpteq2dva lo1mul
        eqeltrd ) ABCEDLMZNBCDELMZNOABCUEUFABPCQRZEDUGEABCEFHJSTUGDABCDFGISTUAU
        BABCDEFGHIJKUCUD $.
    $}
  $}

  ${
    $d x A $.  $d x ph $.
    o1dif.1 $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
    o1dif.2 $e |- ( ( ph /\ x e. A ) -> C e. CC ) $.
    o1dif.3 $e |- ( ph -> ( x e. A |-> ( B - C ) ) e. O(1) ) $.
    $( If the difference of two functions is eventually bounded, eventual
       boundedness of either one implies the other.  (Contributed by Mario
       Carneiro, 26-May-2016.) $)
    o1dif $p |- ( ph ->
      ( ( x e. A |-> B ) e. O(1) <-> ( x e. A |-> C ) e. O(1) ) ) $=
      ( cmpt co1 wcel cmin co cof syl cvv cc cr eqidd caddc wi o1sub expcom wss
      wral wceq cv wa subcld ralrimiva dmmptg o1dm eqsstr3d reex offval2 nncand
      cdm ssex mpteq2dva eqtrd eleq1d sylibd o1add ex npcand impbid ) ABCDIZJKZ
      BCEIZJKZAVHVGBCDELMZIZLNMZJKZVJAVLJKZVHVNUAHVHVOVNVGVLUBUCOAVMVIJAVMBCDVK
      LMZIVIABCDVKLVGVLPQQACRUDCPKACVLUQZRAVKQKZBCUEVQCUFAVRBCABUGCKUHZDEFGUIZU
      JBCVKQUKOAVOVQRUDHVLULOUMCRUNUROZFVTAVGSAVLSZUOABCVPEVSDEFGUPUSUTVAVBAVJV
      LVITNMZJKZVHAVOVJWDUAHVOVJWDVLVIVCVDOAWCVGJAWCBCVKETMZIVGABCVKETVLVIPQQWA
      VTGWBAVISUOABCWEDVSDEFGVEUSUTVAVBVF $.
  $}

  ${
    $d x A $.  $d x ph $.
    lo1sub.1 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    lo1sub.2 $e |- ( ( ph /\ x e. A ) -> C e. RR ) $.
    lo1sub.3 $e |- ( ph -> ( x e. A |-> B ) e. <_O(1) ) $.
    lo1sub.4 $e |- ( ph -> ( x e. A |-> C ) e. O(1) ) $.
    $( The difference of an eventually upper bounded function and an eventually
       bounded function is eventually upper bounded.  The "correct" sharp
       result here takes the second function to be eventually lower bounded
       instead of just bounded, but our notation for this is simply
       ` ( x e. A |-> -u C ) e. <_O(1) ` , so it is just a special case of
       ~ lo1add .  (Contributed by Mario Carneiro, 31-May-2016.) $)
    lo1sub $p |- ( ph -> ( x e. A |-> ( B - C ) ) e. <_O(1) ) $=
      ( cneg caddc co cmpt cmin clo1 cv wcel wa recnd lo1mptrcl cr renegcld co1
      negsubd mpteq2dva o1lo1 mpbid simprd lo1add eqeltrrd ) ABCDEKZLMZNBCDEOMZ
      NPABCUMUNABQCRSZDEUODABCDFGIUAZTUOEHTUEUFABCDULUBUPUOEHUCIABCENZPRZBCULNP
      RZAUQUDRURUSSJABCEHUGUHUIUJUK $.
  $}

  ${
    $d k u v x y z B $.  $d k C $.  $d j k u v y z F $.  $d j k u v x y z ph $.
    $d j k u v x y z A $.  $d j k v x y z G $.  $d k x y z H $.  $d j k x M $.
    $d j k x y z Z $.
    climadd.1 $e |- Z = ( ZZ>= ` M ) $.
    climadd.2 $e |- ( ph -> M e. ZZ ) $.
    climadd.4 $e |- ( ph -> F ~~> A ) $.
    ${
      climadd.6 $e |- ( ph -> H e. X ) $.
      climadd.7 $e |- ( ph -> G ~~> B ) $.
      climadd.8 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
      climadd.9 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) e. CC ) $.
      ${
        climadd.h $e |- ( ( ph /\ k e. Z ) ->
                          ( H ` k ) = ( ( F ` k ) + ( G ` k ) ) ) $.
        $( Limit of the sum of two converging sequences.  Proposition 12-2.1(a)
           of [Gleason] p. 168.  (Contributed by NM, 24-Sep-2005.)  (Proof
           shortened by Mario Carneiro, 31-Jan-2014.) $)
        climadd $p |- ( ph -> H ~~> ( A + B ) ) $=
          ( cc wcel vx vy vz vv vu caddc cli wbr climcl syl cv wa co adantl crp
          addcl cmin cabs cfv clt wral wrex simpr adantr addcn2 syl3anc climcn2
          wi ) AUAUBUCUDUEBCSSDUFEFGHIJKLAEBUGUHBSTZMBEUIUJZAFCUGUHCSTZOCFUIUJZ
          UEUKZSTUDUKZSTULVMVNUFUMZSTAVMVNUPUNMONAUAUKZUOTZULVQVIVKVMBUQUMURUSU
          BUKUTUHVNCUQUMURUSUCUKUTUHULVOBCUFUMUQUMURUSVPUTUHVHUDSVAUESVAUCUOVBU
          BUOVBAVQVCAVIVQVJVDAVKVQVLVDUBUCUDUEVPBCVEVFPQRVG $.
      $}

      ${
        climmul.h $e |- ( ( ph /\ k e. Z ) ->
                          ( H ` k ) = ( ( F ` k ) x. ( G ` k ) ) ) $.
        $( Limit of the product of two converging sequences.  Proposition
           12-2.1(c) of [Gleason] p. 168.  (Contributed by NM, 27-Dec-2005.)
           (Proof shortened by Mario Carneiro, 1-Feb-2014.) $)
        climmul $p |- ( ph -> H ~~> ( A x. B ) ) $=
          ( cc wcel vx vy vz vv vu cli wbr climcl syl cv wa co mulcl adantl crp
          cmul cmin cabs cfv clt wral wrex simpr adantr mulcn2 syl3anc climcn2
          wi ) AUAUBUCUDUEBCSSDUPEFGHIJKLAEBUFUGBSTZMBEUHUIZAFCUFUGCSTZOCFUHUIZ
          UEUJZSTUDUJZSTUKVMVNUPULZSTAVMVNUMUNMONAUAUJZUOTZUKVQVIVKVMBUQULURUSU
          BUJUTUGVNCUQULURUSUCUJUTUGUKVOBCUPULUQULURUSVPUTUGVHUDSVAUESVAUCUOVBU
          BUOVBAVQVCAVIVQVJVDAVKVQVLVDUBUCUDUEVPBCVEVFPQRVG $.
      $}

      ${
        climsub.h $e |- ( ( ph /\ k e. Z ) ->
                          ( H ` k ) = ( ( F ` k ) - ( G ` k ) ) ) $.
        $( Limit of the difference of two converging sequences.  Proposition
           12-2.1(b) of [Gleason] p. 168.  (Contributed by NM, 4-Aug-2007.)
           (Proof shortened by Mario Carneiro, 1-Feb-2014.) $)
        climsub $p |- ( ph -> H ~~> ( A - B ) ) $=
          ( cc cmin vx vy vz vv vu cli wbr climcl syl cv wa co subcl adantl crp
          wcel cabs cfv clt wi wral wrex simpr adantr subcn2 syl3anc climcn2 )
          AUAUBUCUDUEBCSSDTEFGHIJKLAEBUFUGBSUPZMBEUHUIZAFCUFUGCSUPZOCFUHUIZUEUJ
          ZSUPUDUJZSUPUKVLVMTULZSUPAVLVMUMUNMONAUAUJZUOUPZUKVPVHVJVLBTULUQURUBU
          JUSUGVMCTULUQURUCUJUSUGUKVNBCTULTULUQURVOUSUGUTUDSVAUESVAUCUOVBUBUOVB
          AVPVCAVHVPVIVDAVJVPVKVDUBUCUDUEVOBCVEVFPQRVG $.
      $}
    $}

    ${
      climaddc1.5 $e |- ( ph -> C e. CC ) $.
      climaddc1.6 $e |- ( ph -> G e. W ) $.
      climaddc1.7 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
      ${
        climaddc1.h $e |- ( ( ph /\ k e. Z ) ->
                            ( G ` k ) = ( ( F ` k ) + C ) ) $.
        $( Limit of a constant ` C ` added to each term of a sequence.
           (Contributed by NM, 24-Sep-2005.)  (Revised by Mario Carneiro,
           3-Feb-2014.) $)
        climaddc1 $p |- ( ph -> G ~~> ( A + C ) ) $=
          ( cz cc wcel cfv csn cxp cc0 cli wbr 0z uzssz climconst2 sylancl wceq
          zex cv wa cuz eluzelz eleq2s fvconst2g syl2an adantr eqeltrd caddc co
          oveq2d eqtr4d climadd ) ABCDEQCUAUBZFGHIJKLNACRSZUCQSVFCUDUEMUFCUCQUC
          UGUKUHUIOADULZISZUMZVHVFTZCRAVGVHQSZVKCUJVIMVLVHGUNTIGVHUOJUPQCVHRUQU
          RZAVGVIMUSUTVJVHFTVHETZCVAVBVNVKVAVBPVJVKCVNVAVMVCVDVE $.
      $}

      ${
        climaddc2.h $e |- ( ( ph /\ k e. Z ) ->
                            ( G ` k ) = ( C + ( F ` k ) ) ) $.
        $( Limit of a constant ` C ` added to each term of a sequence.
           (Contributed by NM, 24-Sep-2005.)  (Revised by Mario Carneiro,
           3-Feb-2014.) $)
        climaddc2 $p |- ( ph -> G ~~> ( C + A ) ) $=
          ( caddc co cli wcel cv wa cfv adantr addcomd climaddc1 wbr climcl syl
          cc eqtrd breqtrd ) AFBCQRCBQRSABCDEFGHIJKLMNOADUAZITZUBZUMFUCCUMEUCZQ
          RUPCQRPUOCUPACUJTUNMUDOUEUKUFABCAEBSUGBUJTLBEUHUIMUEUL $.
      $}

      ${
        climmulc2.h $e |- ( ( ph /\ k e. Z ) ->
                            ( G ` k ) = ( C x. ( F ` k ) ) ) $.
        $( Limit of a sequence multiplied by a constant ` C ` .  Corollary
           12-2.2 of [Gleason] p. 171.  (Contributed by NM, 24-Sep-2005.)
           (Revised by Mario Carneiro, 3-Feb-2014.) $)
        climmulc2 $p |- ( ph -> G ~~> ( C x. A ) ) $=
          ( cz cc wcel cfv csn cxp cc0 cli wbr 0z uzssz climconst2 sylancl wceq
          zex cv cuz eluzelz eleq2s fvconst2g syl2an adantr eqeltrd cmul oveq1d
          wa co eqtr4d climmul ) ACBDQCUAUBZEFGHIJKACRSZUCQSVFCUDUEMUFCUCQUCUGU
          KUHUINLADULZISZVBZVHVFTZCRAVGVHQSZVKCUJVIMVLVHGUMTIGVHUNJUOQCVHRUPUQZ
          AVGVIMURUSOVJVHFTCVHETZUTVCVKVNUTVCPVJVKCVNUTVMVAVDVE $.
      $}

      ${
        climsubc1.h $e |- ( ( ph /\ k e. Z ) ->
                            ( G ` k ) = ( ( F ` k ) - C ) ) $.
        $( Limit of a constant ` C ` subtracted from each term of a sequence.
           (Contributed by Mario Carneiro, 9-Feb-2014.) $)
        climsubc1 $p |- ( ph -> G ~~> ( A - C ) ) $=
          ( cz cc wcel cfv csn cxp cc0 cli wbr 0z uzssz climconst2 sylancl wceq
          zex cv cuz eluzelz eleq2s fvconst2g syl2an adantr eqeltrd cmin oveq2d
          wa co eqtr4d climsub ) ABCDEQCUAUBZFGHIJKLNACRSZUCQSVFCUDUEMUFCUCQUCU
          GUKUHUIOADULZISZVBZVHVFTZCRAVGVHQSZVKCUJVIMVLVHGUMTIGVHUNJUOQCVHRUPUQ
          ZAVGVIMURUSVJVHFTVHETZCUTVCVNVKUTVCPVJVKCVNUTVMVAVDVE $.
      $}

      ${
        climsubc2.h $e |- ( ( ph /\ k e. Z ) ->
                            ( G ` k ) = ( C - ( F ` k ) ) ) $.
        $( Limit of a constant ` C ` minus each term of a sequence.
           (Contributed by NM, 24-Sep-2005.)  (Revised by Mario Carneiro,
           9-Feb-2014.) $)
        climsubc2 $p |- ( ph -> G ~~> ( C - A ) ) $=
          ( cz cc wcel cfv csn cxp cc0 cli wbr 0z uzssz climconst2 sylancl wceq
          zex cv cuz eluzelz eleq2s fvconst2g syl2an adantr eqeltrd cmin oveq1d
          wa co eqtr4d climsub ) ACBDQCUAUBZEFGHIJKACRSZUCQSVFCUDUEMUFCUCQUCUGU
          KUHUINLADULZISZVBZVHVFTZCRAVGVHQSZVKCUJVIMVLVHGUMTIGVHUNJUOQCVHRUPUQZ
          AVGVIMURUSOVJVHFTCVHETZUTVCVKVNUTVCPVJVKCVNUTVMVAVDVE $.
      $}
    $}

    ${
      climle.5 $e |- ( ph -> G ~~> B ) $.
      climle.6 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
      climle.7 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) e. RR ) $.
      climle.8 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) <_ ( G ` k ) ) $.
      $( Comparison of the limits of two sequences.  (Contributed by Paul
         Chapman, 10-Sep-2007.)  (Revised by Mario Carneiro, 1-Feb-2014.) $)
      climle $p |- ( ph -> A <_ B ) $=
        ( vj cmin cle wbr cfv cc0 co cv cmpt cvv wcel cuz fvex eqeltri mptex wa
        a1i recnd wceq fveq2 oveq12d eqid ovex fvmpt adantl climsub cr resubcld
        eqeltrd subge0d mpbird breqtrrd climge0 climrecl mpbid ) AUACBQUBZRSBCR
        SAVKDPHPUCZFTZVLETZQUBZUDZGHIJACBDFEVPGUEHIJLVPUEUFAPHVOHGUGTUEIGUGUHUI
        UJULKADUCZHUFZUKZVQFTZNUMVSVQETZMUMVRVQVPTZVTWAQUBZUNAPVQVOWCHVPVLVQUNV
        MVTVNWAQVLVQFUOVLVQEUOUPVPUQVTWAQURUSUTZVAVSWBWCVBWDVSVTWANMVCVDVSUAWCW
        BRVSUAWCRSWAVTRSOVSVTWANMVEVFWDVGVHACBACDFGHIJLNVIABDEGHIJKMVIVEVJ $.
    $}

    climsqz.5 $e |- ( ph -> G e. W ) $.
    climsqz.6 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
    climsqz.7 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) e. RR ) $.
    ${
      climsqz.8 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) <_ ( G ` k ) ) $.
      climsqz.9 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) <_ A ) $.
      $( Convergence of a sequence sandwiched between another converging
         sequence and its limit.  (Contributed by NM, 6-Feb-2008.)  (Revised by
         Mario Carneiro, 3-Feb-2014.) $)
      climsqz $p |- ( ph -> G ~~> A ) $=
        ( vj wcel wa cr vx cli wbr cv cfv cmin co cabs clt cuz wral wrex crp cz
        adantr simpr eqidd climi2 uztrn2 cle climrecl lesub2dd abssuble0d letrd
        wi 3brtr4d adantlr ad2antrr resubcld recnd abscld rpre ad2antlr syl3anc
        lelttr mpand sylan2 anassrs ralimdva reximdva ralrimiva clim2c mpbird
        mpd ) AEBUBUCCUDZEUEZBUFUGZUHUEZUAUDZUIUCZCQUDZUJUEZUKZQHULZUAUMUKAWNUA
        UMAWIUMRZSZWEDUEZBUFUGZUHUEZWIUIUCZCWLUKZQHULWNWPBWQWIQCDFHIAFUNRWOJUOA
        WOUPWPWEHRZSZWQUQADBUBUCWOKUOURWPXAWMQHWPWKHRZSWTWJCWLWPXDWEWLRZWTWJVEZ
        XDXESWPXBXFFWEWKHIUSXCWHWSUTUCZWTWJAXBXGWOAXBSZBWFUFUGBWQUFUGWHWSUTXHWQ
        WFBMNABTRZXBABCDFHIJKMVAZUOZOVBXHWFBNXKPVCXHWQBMXKXHWQWFBMNXKOPVDVCVFVG
        XCWHTRWSTRWITRZXGWTSWJVEXCWGXCWGXCWFBAXBWFTRWONVGAXIWOXBXJVHZVIVJVKXCWR
        XCWRXCWQBAXBWQTRWOMVGXMVIVJVKWOXLAXBWIVLVMWHWSWIVOVNVPVQVRVSVTWDWAAUABW
        FQCEFGHIJLXHWFUQABXJVJXHWFNVJWBWC $.
    $}

    ${
      climsqz2.8 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) <_ ( F ` k ) ) $.
      climsqz2.9 $e |- ( ( ph /\ k e. Z ) -> A <_ ( G ` k ) ) $.
      $( Convergence of a sequence sandwiched between another converging
         sequence and its limit.  (Contributed by NM, 14-Feb-2008.)  (Revised
         by Mario Carneiro, 3-Feb-2014.) $)
      climsqz2 $p |- ( ph -> G ~~> A ) $=
        ( vj wcel wa cr vx cli wbr cv cfv cmin co cabs clt cuz wral wrex crp cz
        adantr simpr eqidd climi2 uztrn2 cle climrecl lesub1dd abssubge0d letrd
        wi 3brtr4d adantlr ad2antrr resubcld recnd abscld rpre ad2antlr syl3anc
        lelttr mpand sylan2 anassrs ralimdva reximdva ralrimiva clim2c mpbird
        mpd ) AEBUBUCCUDZEUEZBUFUGZUHUEZUAUDZUIUCZCQUDZUJUEZUKZQHULZUAUMUKAWNUA
        UMAWIUMRZSZWEDUEZBUFUGZUHUEZWIUIUCZCWLUKZQHULWNWPBWQWIQCDFHIAFUNRWOJUOA
        WOUPWPWEHRZSZWQUQADBUBUCWOKUOURWPXAWMQHWPWKHRZSWTWJCWLWPXDWEWLRZWTWJVEZ
        XDXESWPXBXFFWEWKHIUSXCWHWSUTUCZWTWJAXBXGWOAXBSZWGWRWHWSUTXHWFWQBNMABTRZ
        XBABCDFHIJKMVAZUOZOVBXHBWFXKNPVCXHBWQXKMXHBWFWQXKNMPOVDVCVFVGXCWHTRWSTR
        WITRZXGWTSWJVEXCWGXCWGXCWFBAXBWFTRWONVGAXIWOXBXJVHZVIVJVKXCWRXCWRXCWQBA
        XBWQTRWOMVGXMVIVJVKWOXLAXBWIVLVMWHWSWIVOVNVPVQVRVSVTWDWAAUABWFQCEFGHIJL
        XHWFUQABXJVJXHWFNVJWBWC $.
    $}
  $}

  ${
    $d v w x y z A $.  $d v w y z C $.  $d u v w x y z D $.  $d v w x y z ph $.
    $d u v w y z B $.  $d u v w x y z E $.
    rlimadd.3 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    rlimadd.4 $e |- ( ( ph /\ x e. A ) -> C e. V ) $.
    rlimadd.5 $e |- ( ph -> ( x e. A |-> B ) ~~>r D ) $.
    rlimadd.6 $e |- ( ph -> ( x e. A |-> C ) ~~>r E ) $.
    $( Limit of the sum of two converging functions.  Proposition 12-2.1(a) of
       [Gleason] p. 168.  (Contributed by Mario Carneiro, 22-Sep-2014.) $)
    rlimadd $p |- ( ph -> ( x e. A |-> ( B + C ) ) ~~>r ( D + E ) ) $=
      ( vv vu vw vz cc wbr cv co caddc rlimmptrcl cmpt crli wcel rlimcl syl cxp
      vy wf ax-addf a1i crp wa cmin cabs cfv clt wral wrex simpr adantr syl3anc
      wi addcn2 rlimcn2 ) AUIBMNCDEFGUAQQOPACDFBHIKUBACEGBHJLUBABCDUCZFUDRFQUEZ
      KFVGUFUGZABCEUCZGUDRGQUEZLGVJUFUGZKLQQUHQUAUJAUKULAUISZUMUEZUNVNVHVKNSZFU
      OTUPUQPSURRMSZGUOTUPUQOSURRUNVOVPUATFGUATUOTUPUQVMURRVDMQUSNQUSOUMUTPUMUT
      AVNVAAVHVNVIVBAVKVNVLVBPOMNVMFGVEVCVF $.

    $( Limit of the difference of two converging functions.  Proposition
       12-2.1(b) of [Gleason] p. 168.  (Contributed by Mario Carneiro,
       22-Sep-2014.) $)
    rlimsub $p |- ( ph -> ( x e. A |-> ( B - C ) ) ~~>r ( D - E ) ) $=
      ( vv vu vw cmin cc wbr cv co vy vz rlimmptrcl cmpt crli rlimcl syl cxp wf
      wcel subf a1i crp wa cabs cfv clt wral wrex adantr subcn2 syl3anc rlimcn2
      wi simpr ) AUABMNCDEFGPQQOUBACDFBHIKUCACEGBHJLUCABCDUDZFUERFQUJZKFVFUFUGZ
      ABCEUDZGUERGQUJZLGVIUFUGZKLQQUHQPUIAUKULAUASZUMUJZUNVMVGVJNSZFPTUOUPUBSUQ
      RMSZGPTUOUPOSUQRUNVNVOPTFGPTPTUOUPVLUQRVDMQURNQUROUMUSUBUMUSAVMVEAVGVMVHU
      TAVJVMVKUTUBOMNVLFGVAVBVC $.

    $( Limit of the product of two converging functions.  Proposition 12-2.1(c)
       of [Gleason] p. 168.  (Contributed by Mario Carneiro, 22-Sep-2014.) $)
    rlimmul $p |- ( ph -> ( x e. A |-> ( B x. C ) ) ~~>r ( D x. E ) ) $=
      ( vv vu vw vz cc wbr cv co vy cmul rlimmptrcl cmpt crli rlimcl syl cxp wf
      wcel ax-mulf a1i crp wa cmin cabs cfv clt wral wrex adantr mulcn2 syl3anc
      wi simpr rlimcn2 ) AUABMNCDEFGUBQQOPACDFBHIKUCACEGBHJLUCABCDUDZFUERFQUJZK
      FVGUFUGZABCEUDZGUERGQUJZLGVJUFUGZKLQQUHQUBUIAUKULAUASZUMUJZUNVNVHVKNSZFUO
      TUPUQPSURRMSZGUOTUPUQOSURRUNVOVPUBTFGUBTUOTUPUQVMURRVDMQUSNQUSOUMUTPUMUTA
      VNVEAVHVNVIVAAVKVNVLVAPOMNVMFGVBVCVF $.

    rlimdiv.7 $e |- ( ph -> E =/= 0 ) $.
    rlimdiv.8 $e |- ( ( ph /\ x e. A ) -> C =/= 0 ) $.
    $( Limit of the quotient of two converging functions.  Proposition
       12-2.1(a) of [Gleason] p. 168.  (Contributed by Mario Carneiro,
       22-Sep-2014.) $)
    rlimdiv $p |- ( ph -> ( x e. A |-> ( B / C ) ) ~~>r ( D / E ) ) $=
      ( c1 cdiv co cc wcel cc0 vy vz vw vv cmul cmpt crli rlimmptrcl reccld csn
      cv wa cdif ccom cfv wne eldifsn sylanbrc fmptd wbr rlimcl syl reccl sylbi
      eqid adantl crp cmin cabs clt wi wral wrex cle c2 reccn2 sylan oveq2 ovex
      cif fvmpt oveqan12rd fveq2d breq1d imbi2d ralbidva rexbidv biimpar syldan
      wceq rlimcn1 eqidd fmptco 3brtr3d rlimmul divrecd mpteq2dva 3brtr4d ) ABC
      DOEPQZUEQZUFFOGPQZUEQBCDEPQZUFFGPQUGABCDWSFXARACDFBHIKUHZABUKCSULZEACEGBH
      JLUHZNUIKAUARTUJUMZOUAUKZPQZUFZBCEUFZUNGXIUOZBCWSUFXAUGAUBUCUDCGXIXJXFABC
      EXFXJXDERSETUPEXFSXENERTUQURZXJVEUSAGRSZGTUPGXFSZAXJGUGUTXMLGXJVAVBZMGRTU
      QURZLAUAXFXHRXIXGXFSZXHRSZAXQXGRSXGTUPULXRXGRTUQXGVCVDVFXIVEZUSAUBUKZVGSZ
      UDUKZGVHQVIUOUCUKVJUTZOYBPQZXAVHQZVIUOZXTVJUTZVKZUDXFVLZUCVGVMZYCYBXIUOZX
      KVHQZVIUOZXTVJUTZVKZUDXFVLZUCVGVMZAXNYAYJXPUCUDGXTOGVIUOZXTUEQZVNUTOYSVTY
      RVOPQUEQZYTVEVPVQAYQYJAYPYIUCVGAYOYHUDXFAYBXFSZULZYNYGYCUUBYMYFXTVJUUBYLY
      EVIUUAAYKYDXKXAVHUAYBXHYDXFXIXGYBOPVRXSOYBPVSWAAXNXKXAWJXPUAGXHXAXFXIXGGO
      PVRXSOGPVSWAVBZWBWCWDWEWFWGWHWIWKABUACXFEXHWSXJXIXLAXJWLAXIWLXGEOPVRWMUUC
      WNWOABCXBWTXDDEXCXENWPWQAFGABCDUFZFUGUTFRSKFUUDVAVBXOMWPWR $.
  $}

  ${
    $d k A $.  $d k C $.  $d k ph $.
    rlimneg.1 $e |- ( ( ph /\ k e. A ) -> B e. V ) $.
    rlimneg.2 $e |- ( ph -> ( k e. A |-> B ) ~~>r C ) $.
    $( Limit of the negative of a sequence.  (Contributed by Mario Carneiro,
       18-May-2016.) $)
    rlimneg $p |- ( ph -> ( k e. A |-> -u B ) ~~>r -u C ) $=
      ( cc0 cmin co cmpt cneg crli cc wcel cr wss wbr syl cv wa 0cnd rlimmptrcl
      cdm wral wceq ralrimiva dmmptg rlimss eqsstr3d 0cn sylancl rlimsub df-neg
      rlimconst mpteq2i 3brtr4g ) AEBICJKZLIDJKEBCMZLDMNAEBICIDOAEUABPUBUCABCDE
      FGHUDABQRIOPEBILINSABEBCLZUEZQACFPZEBUFVBBUGAVCEBGUHEBCFUITAVADNSVBQRHDVA
      UJTUKULEBIUPUMHUNEBUTUSCUOUQDUOUR $.
  $}

  ${
    $d x A $.  $d x D $.  $d x ph $.  $d x E $.
    rlimle.1 $e |- ( ph -> sup ( A , RR* , < ) = +oo ) $.
    rlimle.2 $e |- ( ph -> ( x e. A |-> B ) ~~>r D ) $.
    rlimle.3 $e |- ( ph -> ( x e. A |-> C ) ~~>r E ) $.
    rlimle.4 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    rlimle.5 $e |- ( ( ph /\ x e. A ) -> C e. RR ) $.
    rlimle.6 $e |- ( ( ph /\ x e. A ) -> B <_ C ) $.
    $( Comparison of the limits of two sequences.  (Contributed by Mario
       Carneiro, 10-May-2016.) $)
    rlimle $p |- ( ph -> D <_ E ) $=
      ( cc0 cmin co cle wbr subge0d rlimrecl cr rlimsub cv wcel resubcld mpbird
      wa rlimge0 mpbid ) ANGFOPZQRFGQRABCEDOPZUJHABCEDGFUALKJIUBABUCCUDUGZEDLKU
      EULNUKQRDEQRMULEDLKSUFUHAGFABCEGHJLTABCDFHIKTSUI $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d x y z D $.  $d x y z E $.  $d x y z ph $.
    $d y z C $.  $d x z M $.
    rlimsqzlem.m $e |- ( ph -> M e. RR ) $.
    rlimsqzlem.e $e |- ( ph -> E e. CC ) $.
    rlimsqzlem.1 $e |- ( ph -> ( x e. A |-> B ) ~~>r D ) $.
    rlimsqzlem.2 $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
    rlimsqzlem.3 $e |- ( ( ph /\ x e. A ) -> C e. CC ) $.
    rlimsqzlem.4 $e |- ( ( ph /\ ( x e. A /\ M <_ x ) ) ->
      ( abs ` ( C - E ) ) <_ ( abs ` ( B - D ) ) ) $.
    $( Lemma for ~ rlimsqz and ~ rlimsqz2 .  (Contributed by Mario Carneiro,
       18-Sep-2014.)  (Revised by Mario Carneiro, 20-May-2016.) $)
    rlimsqzlem $p |- ( ph -> ( x e. A |-> C ) ~~>r E ) $=
      ( vz vy wbr wcel wa cr cmpt crli cv cle cmin co cabs cfv clt wi wral cpnf
      cico wrex crp ad3antrrr wb ad2antrr elicopnf syl simprbda adantrr wss cdm
      eqid dmmptd rlimss eqsstr3d adantr sselda simplbda letrd anassrs adantllr
      cc simprr syldan subcld abscld adantlr rlimcl rpre ad3antlr syl3anc mpand
      lelttr expr an32s a2d ralimdva reximdva ralrimiva rlim3 3imtr4d mpd ) ABC
      DUAZFUBQZBCEUAGUBQZKAOUCZBUCZUDQZDFUEUFZUGUHZPUCZUIQZUJZBCUKZOHULUMUFZUNZ
      PUOUKXAEGUEUFZUGUHZXDUIQZUJZBCUKZOXHUNZPUOUKWQWRAXIXOPUOAXDUORZSZXGXNOXHX
      QWSXHRZSZXFXMBCXSWTCRZSXAXEXLXQXTXRXAXEXLUJZUJXQXTSZXRXAYAYBXRXASZSZXKXCU
      DQZXEXLYBYCHWTUDQZYEYDHWSWTAHTRZXPXTYCIUPYBXRWSTRZXAYBXRYHHWSUDQZYBYGXRYH
      YISUQAYGXPXTIURHWSUSUTZVAVBYBWTTRYCXQCTWTACTVCXPACWPVDZTABWPCDVOWPVELVFAW
      QYKTVCKFWPVGUTVHZVIVJVIYBXRYIXAYBXRYHYIYJVKVBYBXRXAVPVLAXTYFYEXPAXTYFYENV
      MVNVQYDXKTRZXCTRZXDTRZYEXESXLUJYBYMYCAXTYMXPAXTSZXJYPEGMAGVORXTJVIVRVSVTV
      IYBYNYCAXTYNXPYPXBYPDFLAFVORZXTAWQYQKFWPWAUTZVIVRVSVTVIXPYOAXTYCXDWBWCXKX
      CXDWFWDWEWGWHWIWJWKWJAPOBCDFHADVORBCLWLYLYRIWMAPOBCEGHAEVORBCMWLYLJIWMWNW
      O $.
  $}

  ${
    $d x A $.  $d x D $.  $d x M $.  $d x ph $.
    rlimsqz.d $e |- ( ph -> D e. RR ) $.
    rlimsqz.m $e |- ( ph -> M e. RR ) $.
    rlimsqz.l $e |- ( ph -> ( x e. A |-> B ) ~~>r D ) $.
    rlimsqz.b $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    rlimsqz.c $e |- ( ( ph /\ x e. A ) -> C e. RR ) $.
    ${
      rlimsqz.1 $e |- ( ( ph /\ ( x e. A /\ M <_ x ) ) -> B <_ C ) $.
      rlimsqz.2 $e |- ( ( ph /\ ( x e. A /\ M <_ x ) ) -> C <_ D ) $.
      $( Convergence of a sequence sandwiched between another converging
         sequence and its limit.  (Contributed by Mario Carneiro, 18-Sep-2014.)
         (Revised by Mario Carneiro, 20-May-2016.) $)
      rlimsqz $p |- ( ph -> ( x e. A |-> C ) ~~>r D ) $=
        ( recnd wcel wa cmin co cr cle wbr cabs cfv adantrr lesub2dd abssuble0d
        cv adantr letrd 3brtr4d rlimsqzlem ) ABCDEFFGIAFHOJABUHZCPZQZDKOUOELOAU
        NGUMUAUBZQZQZFERSFDRSEFRSUCUDDFRSUCUDUAURDEFAUNDTPUPKUEZAUNETPUPLUEZAFT
        PUQHUIZMUFUREFUTVANUGURDFUSVAURDEFUSUTVAMNUJUGUKUL $.
    $}

    ${
      rlimsqz2.1 $e |- ( ( ph /\ ( x e. A /\ M <_ x ) ) -> C <_ B ) $.
      rlimsqz2.2 $e |- ( ( ph /\ ( x e. A /\ M <_ x ) ) -> D <_ C ) $.
      $( Convergence of a sequence sandwiched between another converging
         sequence and its limit.  (Contributed by Mario Carneiro, 3-Feb-2014.)
         (Revised by Mario Carneiro, 20-May-2016.) $)
      rlimsqz2 $p |- ( ph -> ( x e. A |-> C ) ~~>r D ) $=
        ( recnd wcel wa cle cmin cr cv wbr cabs cfv adantrr lesub1dd abssubge0d
        co adantr letrd 3brtr4d rlimsqzlem ) ABCDEFFGIAFHOJABUAZCPZQZDKOUOELOAU
        NGUMRUBZQZQZEFSUHZDFSUHZUSUCUDUTUCUDRUREDFAUNETPUPLUEZAUNDTPUPKUEZAFTPU
        QHUIZMUFURFEVCVANUGURFDVCVBURFEDVCVAVBNMUJUGUKUL $.
    $}
  $}

  ${
    $d m x y z A $.  $d m y z C $.  $d m x z M $.  $d m x y z ph $.
    $d m y B $.
    lo1le.1 $e |- ( ph -> M e. RR ) $.
    lo1le.2 $e |- ( ph -> ( x e. A |-> B ) e. <_O(1) ) $.
    lo1le.3 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    lo1le.4 $e |- ( ( ph /\ x e. A ) -> C e. RR ) $.
    lo1le.5 $e |- ( ( ph /\ ( x e. A /\ M <_ x ) ) -> C <_ B ) $.
    $( Transfer eventual upper boundedness from a larger function to a smaller
       function.  (Contributed by Mario Carneiro, 26-May-2016.) $)
    lo1le $p |- ( ph -> ( x e. A |-> C ) e. <_O(1) ) $=
      ( vm wcel cle wbr wi cr wrex wa vy vz cmpt clo1 cv cif simpr adantr ifcld
      wral wb ad2antrr simplr wss cdm wceq ralrimiva dmmptg syl eqsstr3d simprr
      lo1dm sseldd maxle syl3anc syl6bi imim1d adantlr adantrll simpl lo1mptrcl
      syl2an simprll letr mpand expr adantrd a2d syld anassrs ralimdva reximdva
      sylbid breq1 imbi1d rexralbidv rspcev syl6an rexlimdva ello1mpt 3imtr4d
      mpd ) ABCDUCZUDNZBCEUCUDNZIAUAUEZBUEZOPZDMUEZOPZQZBCUJZMRSZUARSUBUEZWQOPZ
      EWSOPZQZBCUJMRSZUBRSZWNWOAXCXIUARAWPRNZTZFWPOPZWPFUFZRNXCXMWQOPZXFQZBCUJZ
      MRSZXIXKXLWPFRAXJUGAFRNZXJHUHUIXKXBXPMRXKWSRNZTXAXOBCXKXSWQCNZXAXOQXKXSXT
      TZTZXAXNWTQXOYBXNWRWTYBXNFWQOPZWRTZWRYBXRXJWQRNXNYDUKAXRXJYAHULAXJYAUMYBC
      RWQACRUNXJYAACWMUOZRADGNZBCUJYECUPAYFBCJUQBCDGURUSAWNYERUNIWMVBUSUTZULXKX
      SXTVAVCFWPWQVDVEZYCWRUGVFVGYBXNWTXFYBXNYDWTXFQZYHYBYCYIWRXKYAYCYIXKYAYCTZ
      TZEDOPZWTXFXKXTYCYLXSAXTYCTYLXJLVHVIYKERNZDRNZXSYLWTTXFQXKAXTYMYJAXJVJZXS
      XTYCUMZKVLXKAXTYNYJYOYPABCDGJIVKZVLXKXSXTYCVMEDWSVNVEVOVPVQWCVRVSVTWAWBXH
      XQUBXMRXDXMUPZXGXOMBRCYRXEXNXFXDXMWQOWDWEWFWGWHWIABUACDMYGYQWJABUBCEMYGKW
      JWKWL $.
  $}

  ${
    $d x A $.  $d x M $.  $d x ph $.
    o1le.1 $e |- ( ph -> M e. RR ) $.
    o1le.2 $e |- ( ph -> ( x e. A |-> B ) e. O(1) ) $.
    o1le.3 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    o1le.4 $e |- ( ( ph /\ x e. A ) -> C e. CC ) $.
    o1le.5 $e |- ( ( ph /\ ( x e. A /\ M <_ x ) ) ->
      ( abs ` C ) <_ ( abs ` B ) ) $.
    $( Transfer eventual boundedness from a larger function to a smaller
       function.  (Contributed by Mario Carneiro, 25-Sep-2014.)  (Proof
       shortened by Mario Carneiro, 26-May-2016.) $)
    o1le $p |- ( ph -> ( x e. A |-> C ) e. O(1) ) $=
      ( cmpt co1 wcel cabs cfv clo1 cvv lo1o12 o1mptrcl mpbid cv wa fvexd lo1le
      abscld mpbird ) ABCEMNOBCEPQZMROABCDPQZUIFSHABCDMNOBCUJMROIABCDABCDGJIUAT
      UBABUCCOUDZDPUEUKEKUGLUFABCEKTUH $.
  $}

  ${
    $d c x y A $.  $d c y B $.  $d c x y ph $.
    rlimno1.1 $e |- ( ph -> sup ( A , RR* , < ) = +oo ) $.
    rlimno1.2 $e |- ( ph -> ( x e. A |-> ( 1 / B ) ) ~~>r 0 ) $.
    rlimno1.3 $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
    rlimno1.4 $e |- ( ( ph /\ x e. A ) -> B =/= 0 ) $.
    $( A function whose inverse converges to zero is unbounded.  (Contributed
       by Mario Carneiro, 30-May-2016.) $)
    rlimno1 $p |- ( ph -> -. ( x e. A |-> B ) e. O(1) ) $=
      ( vc vy wcel cle wbr cr wrex wa wfal c1 cc0 adantr cmpt co1 cabs cfv wral
      cv wi fal cdiv co cmin cif clt cc reccld ralrimiva simpr 1re ifcl sylancl
      crp 1rp a1i max1 sylancr rpgecld rpreccld crli wss wb cdm wceq dmmptg syl
      rlimi rlimss eqsstr3d cxr csup cpnf ressxr syl6ss supxrunb1 mpbird r19.29
      rexanre r19.29r wn adantlr wne absrpcld ad2antrr 0le1 rpred max2 lediv2ad
      letrd lenltd mpbid subid1d fveq2d 1cnd absidd oveq1d 3eqtrd breq1d mtbird
      rprecred absdivd pm2.21d expimpd ancomsd imim2d com23 impd rexlimdva syl5
      rexlimdvw mpand sylbird mtoi nrexdv elo1mpt rexcom syl6bb ) ABCDUAUBKZIUF
      BUFZLMZDUCUDZJUFZLMZUGBCUEZINOZJNOZAYMJNAYJNKZPZYMQUHYPYHRDUIUJZSUKUJZUCU
      DZRRYJLMZYJRULZUIUJZUMMZUGBCUEINOZYMQYPIBCYQSUUBUNAYQUNKZBCUEZYOAUUEBCAYG
      CKZPDGHUOUPZTYPUUAYPUUARYPYORNKZUUANKZAYOUQZURYTYJRNUSUTZRVAKYPVBVCYPUUIY
      ORUUALMURUUKRYJVDVEVFZVGABCYQUAZSVHMZYOFTVOYPUUDYMPZYHUUCYKPZUGZBCUEZINOZ
      QYPCNVIZUUTUUPVJAUVAYOACUUNVKZNAUUFUVBCVLUUHBCYQUNVMVNAUUOUVBNVIFSUUNVPVN
      VQZTUUCYKCIBWFVNYPYHBCOZINUEZUUTQAUVEYOAUVECVRUMVSVTVLZEACVRVIUVEUVFVJACN
      VRUVCWAWBIBCWCVNWDTUVEUUTPUVDUUSPZINOYPQUVDUUSINWEYPUVGQINUVGYHUURPZBCOYP
      QYHUURBCWGYPUVHQBCYPUUGPZYHUURQUVIUURYHQUVIUUQQYHUVIYKUUCQUVIYKUUCQUVIYKP
      ZUUCQUVJUUCRYIUIUJZUUBUMMZUVJUUBUVKLMUVLWHUVJYIUUARUVIYIVAKYKUVIDAUUGDUNK
      ZYOGWIZAUUGDSWJZYOHWIZWKTZYPUUAVAKUUGYKUUMWLZUUIUVJURVCZSRLMUVJWMVCZUVJYI
      YJUUAUVJYIUVQWNYPYOUUGYKUUKWLZYPUUJUUGYKUULWLUVIYKUQUVJUUIYOYJUUALMURUWAR
      YJWOVEWQWPUVJUUBUVKUVJUUAUVRXHUVJYIUVQXHWRWSUVJYSUVKUUBUMUVJYSYQUCUDRUCUD
      ZYIUIUJUVKUVJYRYQUCUVJYQUVJDUVIUVMYKUVNTZUVIUVOYKUVPTZUOWTXAUVJRDUVJXBUWC
      UWDXIUVJUWBRYIUIUVJRUVSUVTXCXDXEXFXGXJXKXLXMXNXOXPXQXRXQXSXTXSYAYBAYFYLJN
      OINOYNABICDJUVCGYCYLIJNNYDYEXG $.
  $}

  ${
    $d j k A $.  $d j k B $.  $d j k x y F $.  $d j k x y M $.  $d j k x y N $.
    $d j k x C $.  $d j k G $.  $d j k x y ph $.  $d j k x Z $.
    clim2ser.1 $e |- Z = ( ZZ>= ` M ) $.
    ${
      clim2ser.2 $e |- ( ph -> N e. Z ) $.
      clim2ser.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
      ${
        clim2ser.5 $e |- ( ph -> seq M ( + , F ) ~~> A ) $.
        $( The limit of an infinite series with an initial segment removed.
           (Contributed by Paul Chapman, 9-Feb-2008.)  (Revised by Mario
           Carneiro, 1-Feb-2014.) $)
        clim2ser $p |- ( ph -> seq ( N + 1 ) ( + , F ) ~~>
                               ( A - ( seq M ( + , F ) ` N ) ) ) $=
          ( caddc cfv co wcel syl cc cv adantr cmin vj vx vy cseq c1 cvv cuz cz
          eqid syl6eleq peano2uz eluzelz eluzel2 serf ffvelrnd a1i wa syl6eleqr
          seqex wf uztrn2 sylan addcl adantl w3a addass simpr cfz elfzuz sylan2
          adantlr seqsplit oveq1d syldan ffvelrnda pncan2d eqtr2d climsubc1
          wceq ) ABFLDEUDZMZUAVTLDFUELNZUDZWBUFWBUGMZWDUIZAWBEUGMZOZWBUHOAFWFOZ
          WGAFGWFIHUJZEFUKPZEWBULPZKAGQFVTACDEGHAWHEUHOWIEFUMPJUNZIUOZWCUFOALDW
          BUSUPAUARZWDOZUQZGQWNVTAGQVTUTWOWLSAWBGOZWOWNGOAWBWFGWJHURZEWNWBGHVAV
          BUOWPWNVTMZWATNWAWNWCMZLNZWATNWTWPWSXAWATWPCUBUCLQDEFWNCRZQOZUBRZQOZU
          QXBXDLNZQOWPXBXDVCVDXCXEUCRZQOVEXFXGLNXBXDXGLNLNVSWPXBXDXGVFVDAWOVGAW
          HWOWISAXBEWNVHNOZXBDMQOZWOXHAXBGOZXIXHXBWFGXBEWNVIHURJVJVKVLVMWPWAWTA
          WAQOWOWMSAWDQWNWCACDWBWDWEWKAXBWDOZXJXIAWQXKXJWREXBWBGHVAVBJVNUNVOVPV
          QVR $.
      $}

      ${
        clim2ser2.5 $e |- ( ph -> seq ( N + 1 ) ( + , F ) ~~> A ) $.
        $( The limit of an infinite series with an initial segment added.
           (Contributed by Paul Chapman, 9-Feb-2008.)  (Revised by Mario
           Carneiro, 1-Feb-2014.) $)
        clim2ser2 $p |- ( ph -> seq M ( + , F ) ~~>
                               ( A + ( seq M ( + , F ) ` N ) ) ) $=
          ( vj vx caddc cfv co wcel syl cc cv vy cseq cvv cuz syl6eleq peano2uz
          c1 eqid cz eluzelz eluzel2 serf ffvelrnd seqex syl6eleqr uztrn2 sylan
          a1i syldan ffvelrnda wa addcl adantl w3a wceq addass simpr adantr cfz
          elfzuz sylan2 adantlr seqsplit addcomd eqtrd climaddc1 ) ABFNDEUBZOZL
          NDFUGNPZUBZVQVSUCVSUDOZWAUHZAVSEUDOZQZVSUIQAFWCQZWDAFGWCIHUEZEFUFRZEV
          SUJRZKAGSFVQACDEGHAWEEUIQWFEFUKRJULIUMZVQUCQANDEUNURAWASLTZVTACDVSWAW
          BWHACTZWAQZWKGQZWKDOSQZAVSGQWLWMAVSWCGWGHUOEWKVSGHUPUQJUSULUTZAWJWAQZ
          VAZWJVQOVRWJVTOZNPWRVRNPWQCMUANSDEFWJWKSQZMTZSQZVAWKWTNPZSQWQWKWTVBVC
          WSXAUATZSQVDXBXCNPWKWTXCNPNPVEWQWKWTXCVFVCAWPVGAWEWPWFVHAWKEWJVIPQZWN
          WPXDAWMWNXDWKWCGWKEWJVJHUOJVKVLVMWQVRWRAVRSQWPWIVHWOVNVOVP $.
      $}
    $}

    ${
      iserex.2 $e |- ( ph -> N e. Z ) $.
      iserex.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
      $( An infinite series converges, if and only if the series does with
         initial terms removed.  (Contributed by Paul Chapman, 9-Feb-2008.)
         (Revised by Mario Carneiro, 27-Apr-2014.) $)
      iserex $p |- ( ph -> ( seq M ( + , F ) e. dom ~~> <->
                             seq N ( + , F ) e. dom ~~> ) ) $=
        ( wceq caddc cseq cli wcel c1 co cfv wa wbr syl cdm wb wi seqeq1 eleq1d
        cmin cuz bicomd simpll cc cz syl6eleq eluzelz zcnd ax-1cn npcan sylancl
        a1i seqeq1d simplr syl6eleqr sylan simpr climdm sylib clim2ser eqbrtrrd
        cv climrel releldmi adantr eqbrtrd clim2ser2 impbida ex wo uzm1 mpjaod
        ) AEDJZKCDLZMUAZNZKCELZWANZUBZEOUFPZDUGQZNZVSWEUCAVSWDWBVSWCVTWAKCEDUDU
        EUHURAWHWEAWHRZWBWDWIWBRZWCVTMQZWFVTQZUFPZMSWDWJKCWFOKPZLZWCWMMWJAWOWCJ
        ZAWHWBUIZAWNEKCAEUJNOUJNWNEJAEAEWGNZEUKNAEFWGHGULZDEUMTUNUOEOUPUQUSZTWJ
        WKBCDWFFGWJWFWGFAWHWBUTGVAWJABVHZFNZXACQUJNZWQIVBWJWBVTWKMSWIWBVCVTVDVE
        VFVGWCWMMVIVJTWIWDRZVTWCMQZWLKPZMSWBXDXEBCDWFFGWIWFFNWDWIWFWGFAWHVCGVAV
        KXDAXBXCAWHWDUIZIVBXDWOWCXEMXDAWPXGWTTXDWDWCXEMSWIWDVCWCVDVEVLVMVTXFMVI
        VJTVNVOAWRVSWHVPWSDEVQTVR $.
    $}

    ${
      isermulc2.2 $e |- ( ph -> M e. ZZ ) $.
      isermulc2.4 $e |- ( ph -> C e. CC ) $.
      isermulc2.5 $e |- ( ph -> seq M ( + , F ) ~~> A ) $.
      isermulc2.6 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
      isermulc2.7 $e |- ( ( ph /\ k e. Z ) ->
                          ( G ` k ) = ( C x. ( F ` k ) ) ) $.
      $( Multiplication of an infinite series by a constant.  (Contributed by
         Paul Chapman, 14-Nov-2007.)  (Revised by Mario Carneiro,
         1-Feb-2014.) $)
      isermulc2 $p |- ( ph -> seq M ( + , G ) ~~> ( C x. A ) ) $=
        ( caddc wcel cc cv cmul co vj vx cseq cvv seqex serf ffvelrnda wa addcl
        a1i adantl wceq adantr adddi 3expb sylan cuz cfv syl6eleq cfz syl6eleqr
        simpr elfzuz sylan2 adantlr seqdistr climmulc2 ) ABCUAOEGUCZOFGUCZGUDHI
        JLKVIUDPAOFGUEUJAHQUARZVHADEGHIJMUFUGAVJHPZUHZDUBCOQSFEGVJDRZQPZUBRZQPZ
        UHZVMVOOTZQPVLVMVOUIUKVLCQPZVQCVRSTCVMSTCVOSTOTULZAVSVKKUMVSVNVPVTCVMVO
        UNUOUPVLVJHGUQURZAVKVBIUSAVMGVJUTTPZVMEURZQPZVKWBAVMHPZWDWBVMWAHVMGVJVC
        IVAZMVDVEAWBVMFURCWCSTULZVKWBAWEWGWFNVDVEVFVG $.
    $}

    ${
      climlec2.2 $e |- ( ph -> M e. ZZ ) $.
      climlec2.3 $e |- ( ph -> A e. RR ) $.
      climlec2.4 $e |- ( ph -> F ~~> B ) $.
      climlec2.5 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
      climlec2.6 $e |- ( ( ph /\ k e. Z ) -> A <_ ( F ` k ) ) $.
      $( Comparison of a constant to the limit of a sequence.  (Contributed by
         NM, 28-Feb-2008.)  (Revised by Mario Carneiro, 1-Feb-2014.) $)
      climlec2 $p |- ( ph -> A <_ B ) $=
        ( cz csn cxp wcel cc0 cfv cr cc cli wbr recnd 0z zex climconst2 sylancl
        uzssz cv wa wceq cuz eluzelz eleq2s fvconst2g syl2an adantr eqeltrd cle
        eqbrtrd climle ) ABCDNBOPZEFGHIABUAQRNQVCBUBUCABJUDUEBRNRUIUFUGUHKADUJZ
        GQZUKZVDVCSZBTABTQZVDNQZVGBULVEJVIVDFUMSGFVDUNHUONBVDTUPUQZAVHVEJURUSLV
        FVGBVDESUTVJMVAVB $.
    $}

    ${
      iserle.2 $e |- ( ph -> M e. ZZ ) $.
      iserle.4 $e |- ( ph -> seq M ( + , F ) ~~> A ) $.
      iserle.5 $e |- ( ph -> seq M ( + , G ) ~~> B ) $.
      iserle.6 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
      iserle.7 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) e. RR ) $.
      iserle.8 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) <_ ( G ` k ) ) $.
      $( Comparison of the limits of two infinite series.  (Contributed by Paul
         Chapman, 12-Nov-2007.)  (Revised by Mario Carneiro, 3-Feb-2014.) $)
      iserle $p |- ( ph -> A <_ B ) $=
        ( vj cr wcel cfv syl2anc caddc cseq cv serfre ffvelrnda wa cuz syl6eleq
        simpr cfz co simpll elfzuz syl6eleqr adantl cle wbr serle climle ) ABCP
        UAEGUBZUAFGUBZGHIJKLAHQPUCZUTADEGHIJMUDUEAHQVBVAADFGHIJNUDUEAVBHRZUFZDE
        FGVBVDVBHGUGSZAVCUIIUHVDDUCZGVBUJUKRZUFZAVFHRZVFESZQRAVCVGULZVGVIVDVGVF
        VEHVFGVBUMIUNUOZMTVHAVIVFFSZQRVKVLNTVHAVIVJVMUPUQVKVLOTURUS $.
    $}

    ${
      iserge0.2 $e |- ( ph -> M e. ZZ ) $.
      iserge0.3 $e |- ( ph -> seq M ( + , F ) ~~> A ) $.
      iserge0.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
      iserge0.5 $e |- ( ( ph /\ k e. Z ) -> 0 <_ ( F ` k ) ) $.
      $( The limit of an infinite series of nonnegative reals is nonnegative.
         (Contributed by Paul Chapman, 9-Feb-2008.)  (Revised by Mario
         Carneiro, 3-Feb-2014.) $)
      iserge0 $p |- ( ph -> 0 <_ A ) $=
        ( cc0 cuz cfv csn cxp cz wcel caddc syl cseq cli serclim0 cv wa cr wceq
        wbr simpr syl6eleq c0ex fvconst2 0re syl6eqel cle eqbrtrd iserle ) ALBC
        EMNZLOPZDEFGHAEQRSUSEUALUBUHHEUCTIACUDZFRZUEZUTUSNZLUFVBUTURRVCLUGVBUTF
        URAVAUIGUJURLUTUKULTZUMUNJVBVCLUTDNUOVDKUPUQ $.
    $}

    ${
      climub.2 $e |- ( ph -> N e. Z ) $.
      climub.3 $e |- ( ph -> F ~~> A ) $.
      climub.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
      climub.5 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) <_ ( F ` ( k + 1 ) ) ) $.
      $( The limit of a monotonic sequence is an upper bound.  (Contributed by
         NM, 18-Mar-2005.)  (Revised by Mario Carneiro, 10-Feb-2014.) $)
      climub $p |- ( ph -> ( F ` N ) <_ A ) $=
        ( vj cfv cuz wcel cr wi syldan co eqid cz syl6eleq eluzelz syl cv fveq2
        eleq1d imbi2d expcom vtoclga mpcom uztrn2 sylan impcom simpr cfz elfzuz
        wceq wa sylan2 adantlr c1 cmin caddc cle wbr monoord climlec2 ) AFDNZBM
        DFFONZVKUAAFEONZPFUBPAFGVLIHUCEFUDUEFGPZAVJQPZIACUFZDNZQPZRZAVNRCFGVOFU
        SZVQVNAVSVPVJQVOFDUGUHUIAVOGPZVQKUJZUKULJAMUFZVKPZWBGPZWBDNZQPZAVMWCWDI
        EWBFGHUMUNWDAWFVRAWFRCWBGVOWBUSZVQWFAWGVPWEQVOWBDUGUHUIWAUKUOSAWCUTCDFW
        BAWCUPAVOFWBUQTPZVQWCWHAVOVKPZVQVOFWBURAWIVTVQAVMWIVTIEVOFGHUMUNZKSVAVB
        AVOFWBVCVDTZUQTPZVPVOVCVETDNVFVGZWCWLAWIWMVOFWKURAWIVTWMWJLSVAVBVHVI $.
    $}

    ${
      climserle.2 $e |- ( ph -> N e. Z ) $.
      climserle.3 $e |- ( ph -> seq M ( + , F ) ~~> A ) $.
      climserle.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
      climserle.5 $e |- ( ( ph /\ k e. Z ) -> 0 <_ ( F ` k ) ) $.
      $( The partial sums of a converging infinite series with nonnegative
         terms are bounded by its limit.  (Contributed by NM, 27-Dec-2005.)
         (Revised by Mario Carneiro, 9-Feb-2014.) $)
      climserle $p |- ( ph -> ( seq M ( + , F ) ` N ) <_ A ) $=
        ( caddc cr cfv wcel cle cc0 wbr wi vj cv cuz cz syl6eleq eluzel2 serfre
        cseq syl ffvelrnda wa c1 co peano2uzs wceq breq2d imbi2d expcom vtoclga
        fveq2 impcom sylan2 eleq1d addge01d mpbid simpr seqp1 breqtrrd climub )
        ABUAMDEUHZEFGHIJAGNUAUBZVJACDEGHAFEUCOZPEUDPAFGVLIHUEEFUFUIKUGUJZAVKGPZ
        UKZVKVJOZVPVKULMUMZDOZMUMZVQVJOZQVORVRQSZVPVSQSVNAVQGPZWAEVKGHUNZWBAWAA
        RCUBZDOZQSZTAWATCVQGWDVQUOZWFWAAWGWEVRRQWDVQDUTZUPUQAWDGPZWFLURUSVAVBVO
        VPVRVMVNAWBVRNPZWCWBAWJAWENPZTAWJTCVQGWGWKWJAWGWEVRNWHVCUQAWIWKKURUSVAV
        BVDVEVOVKVLPVTVSUOVOVKGVLAVNVFHUEMDEVKVGUIVHVI $.
    $}
  $}

  ${
    isershft.1 $e |- F e. _V $.
    $( Index shift of the limit of an infinite series.  (Contributed by Mario
       Carneiro, 6-Sep-2013.)  (Revised by Mario Carneiro, 5-Nov-2013.) $)
    isershft $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( seq M ( .+ , F ) ~~> A <->
          seq ( M + N ) ( .+ , ( F shift N ) ) ~~> A ) ) $=
      ( cz wcel wa cshi co caddc cseq cli wbr cmin wceq cc zcn cvv zaddcl pncan
      seqshft sylancom syl2an seqeq1d oveq1d eqtrd breq1d seqex climshft adantl
      wb mpan2 bitr2d ) DGHZEGHZIZBCEJKDELKZMZANOBCDMZEJKZANOZVAANOZURUTVBANURU
      TBCUSEPKZMZEJKZVBUPUQUSGHUTVGQDEUABCUSEFUCUDURVFVAEJURVEDBCUPDRHERHVEDQUQ
      DSESDEUBUEUFUGUHUIUQVCVDUMZUPUQVATHVHBCDUJAVAETUKUNULUO $.
  $}

  ${
    $d j k m n x A $.  $d j k m n x F $.  $d k n x y N $.  $d j k m n x y ph $.
    $d j k m n x y G $.  $d j k m n x H $.  $d j k m n x y M $.  $d x y S $.
    $d n Z $.
    isercoll.z $e |- Z = ( ZZ>= ` M ) $.
    isercoll.m $e |- ( ph -> M e. ZZ ) $.
    isercoll.g $e |- ( ph -> G : NN --> Z ) $.
    isercoll.i $e |- ( ( ph /\ k e. NN ) -> ( G ` k ) < ( G ` ( k + 1 ) ) ) $.
    $( Lemma for ~ isercoll .  (Contributed by Mario Carneiro, 6-Apr-2015.) $)
    isercolllem1 $p |- ( ( ph /\ S C_ NN ) ->
      ( G |` S ) Isom < , < ( S , ( G " S ) ) ) $=
      ( vx vn cn clt cfv wcel cmin co cr cz vy wss wa cima cres wiso cv wi wral
      wbr uzssz eqsstri zssre sstri wf ad2antrr simplrl ffvelrnd sseldi simplrr
      cuz nnred resubcld simpr ltsub2dd cmpt cle nnzd ltled eluz2 syl3anbrc cfz
      elfzuz eluznn sylan wceq weq fveq2 id oveq12d eqid fvmpt adantl ffvelrnda
      ovex eqeltrd syldan sylan2 c1 caddc peano2nn ffvelrn syl2an peano2rem syl
      nnre simpll wb zltlem1 syl2anc mpbid lesub1dd recnd sub32d subsub4d eqtrd
      1cnd breqtrd 3brtr4d monoord 3brtr3d ltletrd ltsub1d mpbird ex ralrimivva
      ssralv ralimdv syld wor nnssre ltso soss mp2 a1i adantr soisores syl22anc
      mpan9 ) ABMUBZUCZBDBUDNNDBUEUFZKUGZUAUGZNUJZYMDOZYNDOZNUJZUHZUABUIZKBUIZA
      YSUAMUIZKMUIZYJUUAAYSKUAMMAYMMPZYNMPZUCZUCZYOYRUUGYOUCZYRYPYNQRZYQYNQRZNU
      JUUHUUIYPYMQRZUUJUUHYPYNUUHFSYPFTSFEVAOTGEUKULZUMUNZUUHMFYMDAMFDUOZUUFYOI
      UPZAUUDUUEYOUQZURUSZUUHYNAUUDUUEYOUTZVBZVCUUHYPYMUUQUUHYMUUPVBZVCUUHYQYNU
      UHFSYQUUMUUHMFYNDUUOUURURUSZUUSVCUUHYMYNYPUUTUUSUUQUUGYOVDZVEUUHYMLMLUGZD
      OZUVCQRZVFZOZYNUVFOZUUKUUJVGUUHCUVFYMYNUUHYMTPYNTPYMYNVGUJYNYMVAOZPUUHYMU
      UPVHUUHYNUURVHUUHYMYNUUTUUSUVBVIYMYNVJVKCUGZYMYNVLRPUUHUVJUVIPZUVJUVFOZSP
      ZUVJYMYNVMUUHUVKUVJMPZUVMUUHUUDUVKUVNUUPUVJYMVNVOZUUHUVNUCZUVLUVJDOZUVJQR
      ZSUVNUVLUVRVPUUHLUVJUVEUVRMUVFLCVQZUVDUVQUVCUVJQUVCUVJDVRUVSVSVTUVFWAZUVQ
      UVJQWEWBWCZUVPUVQUVJUVPFSUVQUUMUUHMFUVJDUUOWDZUSZUVNUVJSPUUHUVJWPWCZVCWFW
      GWHUVJYMYNWIQRZVLRPUUHUVKUVLUVJWIWJRZUVFOZVGUJZUVJYMUWEVMUUHUVKUVNUWHUVOU
      VPUVRUWFDOZUWFQRZUVLUWGVGUVPUVRUWIWIQRZUVJQRZUWJVGUVPUVQUWKUVJUWCUVPUWISP
      UWKSPUVPFSUWIUUMUUHUUNUWFMPZUWIFPUVNUUOUVJWKZMFUWFDWLWMZUSZUWIWNWOUWDUVPU
      VQUWINUJZUVQUWKVGUJZUUHAUVNUWQAUUFYOWQJVOUVPUVQTPUWITPUWQUWRWRUVPFTUVQUUL
      UWBUSUVPFTUWIUULUWOUSUVQUWIWSWTXAXBUVPUWLUWIUVJQRWIQRUWJUVPUWIWIUVJUVPUWI
      UWPXCZUVPXGZUVPUVJUWDXCZXDUVPUWIUVJWIUWSUXAUWTXEXFXHUWAUVPUWMUWGUWJVPUVNU
      WMUUHUWNWCLUWFUVEUWJMUVFUVCUWFVPZUVDUWIUVCUWFQUVCUWFDVRUXBVSVTUVTUWIUWFQW
      EWBWOXIWGWHXJUUHUUDUVGUUKVPUUPLYMUVEUUKMUVFLKVQZUVDYPUVCYMQUVCYMDVRUXCVSV
      TUVTYPYMQWEWBWOUUHUUEUVHUUJVPUURLYNUVEUUJMUVFLUAVQZUVDYQUVCYNQUVCYNDVRUXD
      VSVTUVTYQYNQWEWBWOXKXLUUHYPYQYNUUQUVAUUSXMXNXOXPYJUUCYTKMUIUUAYJUUBYTKMYS
      UABMXQXRYTKBMXQXSYIYKMNXTZFNXTZUUNYJYLUUAWRUXEYKMSUBSNXTZUXEYAYBMSNYCYDYE
      UXFYKFSUBUXGUXFUUMYBFSNYCYDYEAUUNYJIYFAYJVDKUABMFNNDYGYHXN $.

    $( Lemma for ~ isercoll .  (Contributed by Mario Carneiro, 6-Apr-2015.) $)
    isercolllem2 $p |- ( ( ph /\ N e. ( ZZ>= ` ( G ` 1 ) ) ) ->
      ( 1 ... ( # ` ( G " ( `' G " ( M ... N ) ) ) ) ) =
        ( `' G " ( M ... N ) ) ) $=
      ( c1 cfv wcel cr clt cn adantr syl wb wss vx vy cuz wa ccnv cfz cima csup
      co chash cv wi elfznn a1i cdm cnvimass wf wceq fdm syl5sseq sseld cle wbr
      cz id nnuz syl6eleq wor cfn c0 wne ltso cen fzfid crn wfun ffun funimacnv
      cin 3syl inss1 syl6eqss ssfi syl2anc wf1 wiso wf1o cres ssid isercolllem1
      cvv mpan2 wfn ffn fnresdm isoeq1 4syl mpbid isof1o f1ocnv f1ofun sylanbrc
      df-f1 nnex ssexg sylancl f1imaeng syl3anc enfii 1nn ffvelrn simpr elfzuzb
      ensymd elpreima mpbir2and ne0i nnssre syl6ss fisupcl syl13anc sseldd nnzd
      elfz5 syl2anr simprd elfzle2 uzssz eqsstri zssre sstri ffvelrnda ffvelrnd
      sseldi eluzelz ad2antlr cxr ad2antrr ressxr ex letr mpan2d imassrn syl5ss
      frn leisorel syl122anc 3imtr4d baibd sylan sylibrd wral wrex fimaxre2 w3a
      suprub impbid bitrd pm5.21ndd fveq2d nnnn0d hashfz1 hashen mpbird 3eqtr3d
      eqrdv cn0 oveq2d eqtr3d ) AEKCLZUCLMZUDZKCUEZDEUFUIZUGZNOUHZUFUIZKCUVOUGZ
      UJLZUFUIUVOUVLUVPUVSKUFUVLUVQUJLZUVOUJLZUVPUVSUVLUVQUVOUJUVLUAUVQUVOUVLUA
      UKZPMZUWBUVQMZUWBUVOMZUWDUWCULUVLUWBUVPUMUNUVLUVOPUWBUVLCUOZUVOPCUVNUPUVL
      PFCUQZUWFPURAUWGUVKIQZPFCUSRUTZVAUVLUWCUWDUWESUVLUWCUDZUWDUWBUVPVBVCZUWEU
      WCUWBKUCLZMUVPVDMUWDUWKSUVLUWCUWBPUWLUWCVEVFVGUVLUVPUVLUVOPUVPUWIUVLNOVHZ
      UVOVIMZUVOVJVKZUVONTZUVPUVOMZUWMUVLVLUNUVLUVRVIMZUVOUVRVMVCZUWNUVLUVNVIMU
      VRUVNTUWRUVLDEVNUVLUVRUVNCVOZVSZUVNUVLUWGCVPUVRUXAURUWHPFCVQUVNCVRVTUVNUW
      TWAWBUVNUVRWCWDZUVLUVRUVOUVLPFCWEZUVOPTZUVOWKMZUVRUVOVMVCAUXCUVKAUWGUVMVP
      ZUXCIAPCPUGZOOCWFZPUXGCWGUXGPUVMWGUXFAPUXGOOCPWHZWFZUXHAPPTUXJPWIAPBCDFGH
      IJWJWLAUWGCPWMZUXICURUXJUXHSIPFCWNZPCWOPUXGOOCUXIWPWQWRZPUXGOOCWSPUXGCWTU
      XGPUVMXAWQPFCXCXBQUWIUVLUXDPWKMUXEUWIXDUVOPWKXEXFPFUVOCWKXGXHXNZUVOUVRXIW
      DZUVLKUVOMZUWOUVLUXPKPMZUVJUVNMZUXQUVLXJUNUVLUVJDUCLZMZUVKUXRAUXTUVKAUVJF
      UXSAUWGUXQUVJFMIXJPFKCXKXFGVGQAUVKXLUVJDEXMXBUVLUXKUXPUXQUXRUDSUVLUWGUXKU
      WHUXLRZPKUVNCXORXPUVOKXQRZUVLUVOPNUWIXRXSZNUVOOXTYAZYBZYCUWBKUVPYDYEUWJUW
      KUWEUWJUWKUWBCLZUVNMZUWEUWJUYFUVPCLZVBVCZUYFEVBVCZUWKUYGUWJUYIUYHEVBVCZUY
      JUVLUYKUWCUVLUYHUVNMZUYKUVLUVPPMZUYLUVLUWQUYMUYLUDZUYDUVLUXKUWQUYNSUYAPUV
      PUVNCXORWRYFUYHDEYGRQUWJUYFNMUYHNMENMUYIUYKUDUYJULUWJFNUYFFVDNFUXSVDGDYHY
      IYJYKZUVLPFUWBCUWHYLZYNUWJFNUYHUYOUVLUYHFMUWCUVLPFUVPCUWHUYEYMQYNUWJVDNEY
      JUVKEVDMZAUWCUVJEYOYPZYNUYFUYHEUUAXHUUBUWJUXHPYQTUXGYQTUWCUYMUWKUYISAUXHU
      VKUWCUXMYRUWJPNYQPNTUWJXRUNYSXSUWJUXGNYQUWJUXGFNUWJUXGUWTFCPUUCUWJUWGUWTF
      TAUWGUVKUWCIYRPFCUUERUUDUYOXSYSXSUVLUWCXLUVLUYMUWCUYEQPUXGUWBUVPCUUFUUGUW
      JUYFUXSMUYQUYGUYJSUWJUYFFUXSUYPGVGUYRUYFDEYDWDUUHUVLUXKUWCUWEUYGSUYAUXKUW
      EUWCUYGPUWBUVNCXOUUIUUJUUKUVLUWEUWKULZUWCUVLUWPUWOUBUKUWBVBVCUBUVOUULUANU
      UMZUYSUYCUYBUVLUWPUWNUYTUYCUXOUAUBUVOUUNWDUWPUWOUYTUUOUWEUWKUAUBUVOUWBUUP
      YTXHQUUQUURYTUUSUVFZUUTUVLUVPUVGMUVTUVPURUVLUVPUYEUVAUVPUVBRUVLUWAUVSURZU
      WSUXNUVLUWNUWRVUBUWSSUXOUXBUVOUVRUVCWDUVDUVEUVHVUAUVI $.

    isercoll.0 $e |- ( ( ph /\ n e. ( Z \ ran G ) ) -> ( F ` n ) = 0 ) $.
    isercoll.f $e |- ( ( ph /\ n e. Z ) -> ( F ` n ) e. CC ) $.
    isercoll.h $e |- ( ( ph /\ k e. NN ) -> ( H ` k ) = ( F ` ( G ` k ) ) ) $.
    $( Lemma for ~ isercoll .  (Contributed by Mario Carneiro, 6-Apr-2015.) $)
    isercolllem3 $p |- ( ( ph /\ N e. ( ZZ>= ` ( G ` 1 ) ) ) ->
      ( seq M ( + , F ) ` N ) = ( seq 1 ( + , H ) `
        ( # ` ( G " ( `' G " ( M ... N ) ) ) ) ) ) $=
      ( cfv wcel wceq cn c1 cuz wa ccnv cfz co cima caddc cc cres cc0 cv addid2
      adantl addid1 addcl 0cnd clt wiso wss cdm cnvimass wf adantr fdm syl5sseq
      syl isercolllem1 syldan wb isercolllem2 isoeq4 mpbird cin wne a1i sseqin2
      chash c0 sylib 1nn ffvelrn sylancl syl6eleq elfzuzb sylanbrc wfn elpreima
      simpr 3syl mpbir2and ne0i eqnetrd imadisj necon3bii sylibr wfun funimacnv
      ffn ffun inss1 eqsstrd simpl elfzuz syl6eleqr syl2an difeq2d difin syl6eq
      crn cdif ssriv ssdif mp1i sselda elfznn eleq2d biimpa fvres fveq2d eqtr4d
      adantlr seqcoll2 ) AHUAEQZUBQRZUCZEEUDGHUEUFZUGZUGZUHUICBDEYHUJZFGHUKCULZ
      UIRZUKYKUHUFYKSYFYKUMUNYLYKUKUHUFYKSYFYKUOUNYLBULZUIRUCYKYMUHUFUIRYFYKYMU
      PUNYFUQYFUAYIVRQZUEUFZYIURURYJUSZYHYIURURYJUSZAYEYHTUTYQYFEVAZYHTEYGVBZYF
      TIEVCZYRTSAYTYELVDZTIEVEVGVFAYHBEGIJKLMVHVIYFYOYHSYPYQVJABEGHIJKLMVKZYOYI
      YHURURYJVLVGVMYFYRYHVNZVSVOYIVSVOYFUUCYHVSYFYHYRUTZUUCYHSUUDYFYSVPYHYRVQV
      TYFUAYHRZYHVSVOYFUUEUATRZYDYGRZUUFYFWAVPYFYDGUBQZRZYEUUGAUUIYEAYDIUUHAYTU
      UFYDIRLWATIUAEWBWCJWDVDAYEWIYDGHWEWFYFYTETWGUUEUUFUUGUCVJUUATIEWSTUAYGEWH
      WJWKYHUAWLVGWMYIVSUUCVSEYHWNWOWPYFYIYGEXJZVNZYGYFYTEWQYIUUKSUUATIEWTYGEWR
      WJZUUKYGUTYFYGUUJXAVPXBYFAYKIRYKDQZUIRYKYGRZAYEXCZUUNYKUUHIYKGHXDJXEZOXFY
      FYKYGYIXKZRYKIUUJXKZRZUUMUKSZYFUUQUURYKYFUUQYGUUJXKZUURYFUUQYGUUKXKUVAYFY
      IUUKYGUULXGYGUUJXHXIYGIUTUVAUURUTYFCYGIUUPXLYGIUUJXMXNXBXOAUUSUUTYENYBVIY
      FYMYORZUCZYMFQZYMEQZDQZYMYJQZDQYFAYMTRUVDUVFSUVBUUOYMYNXPPXFUVCUVGUVEDUVC
      YMYHRZUVGUVESYFUVBUVHYFYOYHYMUUBXQXRYMYHEXSVGXTYAYC $.

    $( Rearrange an infinite series by spacing out the terms using an order
       isomorphism.  (Contributed by Mario Carneiro, 6-Apr-2015.) $)
    isercoll $p |- ( ph ->
      ( seq 1 ( + , H ) ~~> A <-> seq M ( + , F ) ~~> A ) ) $=
      ( wcel cfv wbr cn vx vm vj vy cc cv caddc c1 cseq cmin co cabs clt wa cuz
      wral wrex crp cfz cima chash cli cz ffvelrnda sseldi cle ad2antlr cfn cn0
      wi wss fzfid cin wfun wceq funimacnv 3syl inss1 syl6eqss ad2antrr syl2anc
      ssfi hashcl nn0z cen wiso wf1o wb 4syl mpbid elfznn ssriv f1imaen sylancl
      ovex enfii hashen mpbird nnnn0 hashfz1 eqtrd cdom adantl cr sstri ffvelrn
      syl eluzelz ad3antrrr nnred lenltd 3bitr4d eluzle syl6eleq elfz5 elpreima
      wn adantr imass2 ssdomg hashdom fveq2 eleq1d oveq1d fveq2d breq1d anbi12d
      rspcv ralrimdva raleqdv rspcev syl6an rexlimdva cxr ressxr syl6ss imaeq2d
      a1i cvv seqex ccnv uzssz eqsstri nnz crn ffun wf1 cres isercolllem1 mpan2
      wf ssid wfn ffn fnresdm isoeq1 isof1o f1ocnv f1ofun df-f1 sylanbrc syl2an
      zssre zred elfzle2 simpllr isorel syl12anc notbid letrd mpbir2and ex sylc
      ssrdv eqbrtrrd eluz2 syl3anbrc eqid rexuz3 sylibrd nn0p1nn zltp1le eluznn
      1nn nn0re sylan ltnled fzss2 ffvelrnd nnssre imassrn frn syl5ss syl122anc
      simpr leisorel bitr4d pm5.32da fznn eqrdv sseq1d bitr3d 3imtr4d syl5 mtod
      uztric ord mpd oveq2 sylibd impbid ralbidv anbi2d nnuz eqidd isercolllem3
      wo 1zzd clim2 ) ABUEQZCUFZUGGUHUIZRZUEQZUYCBUJUKZULRZUAUFZUMSZUNZCDUFZUOR
[encoded data, 4480 characters]
      SXL $.
  $}

  ${
    $d j k n A $.  $d j k n F $.  $d j k n x G $.  $d j k n x H $.  $d j n N $.
    $d j k n x M $.  $d j k n x ph $.  $d n x W $.  $d j k Z $.
    isercoll2.z $e |- Z = ( ZZ>= ` M ) $.
    isercoll2.w $e |- W = ( ZZ>= ` N ) $.
    isercoll2.m $e |- ( ph -> M e. ZZ ) $.
    isercoll2.n $e |- ( ph -> N e. ZZ ) $.
    isercoll2.g $e |- ( ph -> G : Z --> W ) $.
    isercoll2.i $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) < ( G ` ( k + 1 ) ) ) $.
    isercoll2.0 $e |- ( ( ph /\ n e. ( W \ ran G ) ) -> ( F ` n ) = 0 ) $.
    isercoll2.f $e |- ( ( ph /\ n e. W ) -> ( F ` n ) e. CC ) $.
    isercoll2.h $e |- ( ( ph /\ k e. Z ) -> ( H ` k ) = ( F ` ( G ` k ) ) ) $.
    $( Generalize ~ isercoll so that both sequences have arbitrary starting
       point.  (Contributed by Mario Carneiro, 6-Apr-2015.) $)
    isercoll2 $p |- ( ph ->
      ( seq M ( + , H ) ~~> A <-> seq N ( + , F ) ~~> A ) ) $=
      ( vx vj caddc cseq cli wbr cn cv c1 cmin cfv cmpt cvv wcel zsubcl sylancr
      co cz 1z seqex a1i wa cuz simpr syl6eleq adantr wceq cfz elfzuz syl6eleqr
      simpl eluzelz syl zcnd 1cnd subadd23d cn0 uznn0sub nn0p1nn eqeltrrd oveq1
      oveq2d fveq2d eqid fvex fvmpt oveq1d nn0cnd ax-1cn sylancl eqtr3d pncan3d
      cc pncan eqtrd eqtr2d syl2an seqshft2 pncan3 seqeq1d climshft2 wf nnm1nn0
      fveq1d uzid uzaddcl ffvelrnd fmptd clt wral ralrimiva fveq2 breq12d rspcv
      sylc nncn adantl addsubd addassd eqtr4d breqtrrd peano2nn 3brtr4d crn cc0
      cdif wss wfn ffn wrex eleq2s eqeq2d rspcev syl2anc wb elrnmpt ax-mp ffnfv
      sylibr sylanbrc frn sscond sselda syldan eqeq12d 3eqtr4d isercoll bitrd )
      AUCGHUDZBUEUFUCUAUGHUAUHZUIUJUQZUCUQZGUKZULZUIUDZBUEUFUCEIUDBUEUFABCUUIUU
      OUIHUJUQZHUMUMKLNAUIURUNHURUNZUUPURUNZUSNUIHUOUPZUUIUMUNAUCGHUTVAUUOUMUNA
      UCUUNUIUTVAACUHZKUNZVBZUUTUUIUKUUTUUPUCUQZUCUUNHUUPUCUQZUDZUKUVCUUOUKUVBU
      CUBGUUNUUPHUUTUVBUUTKHVCUKZAUVAVDLVEZAUURUVAUUSVFUVBAUBUHZKUNZUVHGUKZUVHU
      UPUCUQZUUNUKZVGUVHHUUTVHUQUNZAUVAVKUVMUVHUVFKUVHHUUTVILVJAUVIVBZUVLHUVKUI
      UJUQZUCUQZGUKZUVJUVNUVKUGUNUVLUVQVGUVNUVHHUJUQZUIUCUQZUVKUGUVNUVHHUIUVNUV
      HUVNUVHUVFUNZUVHURUNUVNUVHKUVFAUVIVDLVEZHUVHVLVMVNZAHWMUNZUVIAHNVNZVFZUVN
      VOVPZUVNUVRVQUNZUVSUGUNUVNUVTUWGUWAHUVHVRVMZUVRVSVMVTUAUVKUUMUVQUGUUNUUJU
      VKVGZUULUVPGUWIUUKUVOHUCUUJUVKUIUJWAWBWCUUNWDZUVPGWEWFVMUVNUVPUVHGUVNUVPH
      UVRUCUQUVHUVNUVOUVRHUCUVNUVSUIUJUQZUVOUVRUVNUVSUVKUIUJUWFWGUVNUVRWMUNUIWM
      UNZUWKUVRVGUVNUVRUWHWHWIUVRUIWNWJWKWBUVNHUVHUWEUWBWLWOWCWPWQWRUVBUVCUVEUU
      OUVBUVDUIUCUUNUVBUWCUWLUVDUIVGAUWCUVAUWDVFWIHUIWSWJWTXDWPXAABUBDEUAUGUULF
      UKZULZUUNIJMOAUAUGUWMJUWNAUUJUGUNZVBZKJUULFAKJFXBZUWOPVFUWPUULUVFKAHUVFUN
      ZUUKVQUNUULUVFUNUWOAUUQUWRNHXEVMZUUJXCUUKHHXFWQLVJXGUWNWDZXHAUVHUGUNZVBZH
      UVHUIUJUQZUCUQZFUKZHUVHUIUCUQZUIUJUQZUCUQZFUKZUVHUWNUKZUXFUWNUKZXIUXBUXEU
      XDUIUCUQZFUKZUXIXIUXBUXDKUNZUUTFUKZUUTUIUCUQZFUKZXIUFZCKXJZUXEUXMXIUFZUXB
      UXDUVFKAUWRUXCVQUNZUXDUVFUNUXAUWSUVHXCZUXCHHXFWQLVJZAUXSUXAAUXRCKQXKVFUXR
      UXTCUXDKUUTUXDVGZUXOUXEUXQUXMXIUUTUXDFXLZUYDUXPUXLFUUTUXDUIUCWAWCXMXNXOUX
      BUXHUXLFUXBUXHHUXCUIUCUQZUCUQUXLUXBUXGUYFHUCUXBUVHUIUIUXAUVHWMUNAUVHXPXQU
      XBVOZUYGXRWBUXBHUXCUIAUWCUXAUWDVFUXBUXCUXAUYAAUYBXQWHUYGXSXTWCYAUXAUXJUXE
      VGAUAUVHUWMUXEUGUWNUUJUVHVGZUULUXDFUYHUUKUXCHUCUUJUVHUIUJWAWBZWCUWTUXDFWE
      WFXQZUXBUXFUGUNZUXKUXIVGUXAUYKAUVHYBXQUAUXFUWMUXIUGUWNUUJUXFVGZUULUXHFUYL
      UUKUXGHUCUUJUXFUIUJWAWBWCUWTUXHFWEWFVMYCADUHZJUWNYDZYFZUNUYMJFYDZYFZUNUYM
      EUKYEVGAUYOUYQUYMAUYPUYNJAKUYNFXBZUYPUYNYGAFKYHZUXOUYNUNZCKXJUYRAUWQUYSPK
      JFYIVMAUYTCKUVBUXOUWMVGZUAUGYJZUYTUVBUUTHUJUQZUIUCUQZUGUNZUXOHVUDUIUJUQZU
      CUQZFUKZVGZVUBUVBVUCVQUNZVUEUVBUUTUVFUNVUJUVGHUUTVRVMZVUCVSVMUVBUUTVUGFUV
      BVUGHVUCUCUQZUUTUVBVUFVUCHUCUVBVUCWMUNUWLVUFVUCVGUVBVUCVUKWHWIVUCUIWNWJWB
      AUWCUUTWMUNVULUUTVGUVAUWDUVAUUTUUTURUNUUTUVFKHUUTVLLYKVNHUUTWSWQWPWCVUAVU
      IUAVUDUGUUJVUDVGZUWMVUHUXOVUMUULVUGFVUMUUKVUFHUCUUJVUDUIUJWAWBWCYLYMYNUXO
      UMUNUYTVUBYOUUTFWEUAUGUWMUXOUWNUMUWTYPYQYSXKCKUYNFYRYTKUYNFUUAVMUUBUUCRUU
      DSUXBUXDGUKZUXEEUKZUVHUUNUKZUXJEUKUXBUXNUUTGUKZUXOEUKZVGZCKXJZVUNVUOVGZUY
      CAVUTUXAAVUSCKTXKVFVUSVVACUXDKUYDVUQVUNVURVUOUUTUXDGXLUYDUXOUXEEUYEWCUUEX
      NXOUXAVUPVUNVGAUAUVHUUMVUNUGUUNUYHUULUXDGUYIWCUWJUXDGWEWFXQUXBUXJUXEEUYJW
      CUUFUUGUUH $.
  $}

  ${
    $d j k n x y F $.  $d j M $.  $d j k n y ph $.  $d j k n x y Z $.
    climsup.1 $e |- Z = ( ZZ>= ` M ) $.
    climsup.2 $e |- ( ph -> M e. ZZ ) $.
    climsup.3 $e |- ( ph -> F : Z --> RR ) $.
    climsup.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) <_ ( F ` ( k + 1 ) ) ) $.
    climsup.5 $e |- ( ph -> E. x e. RR A. k e. Z ( F ` k ) <_ x ) $.
    $( A bounded monotonic sequence converges to the supremum of its range.
       Theorem 12-5.1 of [Gleason] p. 180.  (Contributed by NM, 13-Mar-2005.)
       (Revised by Mario Carneiro, 10-Feb-2014.) $)
    climsup $p |- ( ph -> F ~~> sup ( ran F , RR , < ) ) $=
      ( vy vn cr clt wbr cfv co wcel cle vj crn csup cli cv cmin cabs wral wrex
      cuz crp wa wss c0 wne w3a frn syl wfn ffn uzid syl6eleqr fnfvelrn syl2anc
      wf cz ne0i wb breq1 ralrn rexbidv mpbird 3jca suprcl ltsubrp sylan adantr
      rpre resubcl syl2an suprlub mpbid breq2 biimpa syldan wi ffvelrn ad2ant2r
      rexrn uztrn2 ad2antrr simprr fzssuz uzss syl6sseqr eleq2s ad2antrl syl5ss
      cfz ralrimiva ssralv sylc r19.21bi c1 caddc sselda weq fveq2 oveq1 fveq2d
      breq12d rspccva monoord lesub2dd resubcld ad2antlr lelttr syl3anc ltsub23
      mpand suprub abssuble0d breq1d 3imtr4d anassrs ralrimdva reximdva mpd cvv
      fvex eqeltri fex sylancl eqidd recnd clim2c ) ADDUBZNOUCZUDPCUEZDQZYRUFRU
      GQZLUEZOPZCUAUEZUJQZUHZUAFUIZLUKUHAUUGLUKAUUBUKSZULZYRUUBUFRZUUDDQZOPZUAF
      UIZUUGAUUHUUJYSOPZCYQUIZUUMUUIUUJYROPZUUOAYRNSZUUHUUPAYQNUMZYQUNUOZUUBBUE
      ZTPZLYQUHZBNUIZUPZUUQAUURUUSUVCAFNDVEZUURIFNDUQURAEDQZYQSZUUSADFUSZEFSUVG
      AUVEUVHIFNDUTURZAEEUJQZFAEVFSEUVJSHEVAURGVBFEDVCVDYQUVFVGURAUVCYTUUTTPZCF
      UHZBNUIZKAUVHUVCUVMVHUVIUVHUVBUVLBNUVAUVKLCFDUUBYTUUTTVIVJVKURVLVMZBLYQVN
      URZYRUUBVOVPUUIUVDUUJNSZUUPUUOVHAUVDUUHUVNVQAUUQUUBNSZUVPUUHUVOUUBVRZYRUU
      BVSVTBLCYQUUJWAVDWBAUUOUUMAUVHUUOUUMVHUVIUUNUULCUAFDYSUUKUUJOWCWIURWDWEUU
      IUULUUFUAFUUIUUDFSZULUULUUCCUUEUUIUVSYSUUESZUULUUCWFUUIUVSUVTULZULZYRUUKU
      FRZUUBOPZYRYTUFRZUUBOPZUULUUCUWBUWEUWCTPZUWDUWFUWBUUKYTYRAUVSUUKNSZUUHUVT
      AUVEUVSUWHIFNUUDDWGVPWHZUUIUVEYSFSZYTNSZUWAAUVEUUHIVQEYSUUDFGWJZFNYSDWGZV
      TZAUUQUUHUWAUVOWKZUWBMDUUDYSUUIUVSUVTWLUWBMUEZDQZNSZMUUDYSWSRZUWBUWSFUMUW
      RMFUHZUWRMUWSUHUWBUWSUUEFUUDYSWMUVSUUEFUMZUUIUVTUXAUUDUVJFUUDUVJSUUEUVJFE
      UUDWNGWOGWPWQZWRAUWTUUHUWAAUVEUWTIUVEUWRMFFNUWPDWGWTURWKUWRMUWSFXAXBXCUWB
      UWPUUDYSXDUFRZWSRZSUWPFSZUWQUWPXDXERZDQZTPZUWBUXDFUWPUWBUXDUUEFUUDUXCWMUX
      BWRXFUWBYTYSXDXERZDQZTPZCFUHZUXEUXHAUXLUUHUWAAUXKCFJWTWKUXKUXHCUWPFCMXGZY
      TUWQUXJUXGTYSUWPDXHUXMUXIUXFDYSUWPXDXEXIXJXKXLVPWEXMXNUWBUWENSUWCNSUVQUWG
      UWDULUWFWFUWBYRYTUWOUWNXOUWBYRUUKUWOUWIXOUUHUVQAUWAUVRXPZUWEUWCUUBXQXRXTU
      WBUUQUVQUWHUULUWDVHUWOUXNUWIYRUUBUUKXSXRUWBUUAUWEUUBOUWBYTYRUWNUWOUWBUVDY
      TYQSZYTYRTPAUVDUUHUWAUVNWKUUIUVHUWJUXOUWAAUVHUUHUVIVQUWLFYSDVCVTBLYQYTYAV
      DYBYCYDYEYFYGYHWTALYRYTUACDEYIFGHAUVEFYISDYISIFUVJYIGEUJYJYKFNYIDYLYMAUWJ
      ULZYTYNAYRUVOYOUXPYTAUVEUWJUWKIUWMVPYOYPVL $.
  $}

  ${
    $d j k x y F $.  $d j k x y M $.  $d j k x y Z $.
    climcau.1 $e |- Z = ( ZZ>= ` M ) $.
    $( A converging sequence of complex numbers is a Cauchy sequence.  Theorem
       12-5.3 of [Gleason] p. 180 (necessity part).  (Contributed by NM,
       16-Apr-2005.)  (Revised by Mario Carneiro, 26-Apr-2014.) $)
    climcau $p |- ( ( M e. ZZ /\ F e. dom ~~> ) -> A. x e. RR+ E. j e. Z
              A. k e. ( ZZ>= ` j ) ( abs ` ( ( F ` k ) - ( F ` j ) ) ) < x ) $=
      ( vy wcel cli cv cfv cmin co cabs clt wbr crp wa cc cdm cuz wral wrex cop
      cz wex eldm2g ibi df-br c2 cdiv simpll rphalfcl adantl eqidd simplr climi
      wi eluzelz syl eleq2s weq fveq2 eleq1d oveq1d fveq2d breq1d anbi12d rspcv
      uzid cr rpre simpllr climcl simprl simplrl simplll simprr abssubd simplrr
      ad2antlr eqbrtrd abs3lemd ex ralimdv com23 syl2anc reximdva mpd ralrimiva
      mpdd syl5bir exlimdv syl5 imp ) EUFIZDJUAZIZCKZDLZBKZDLZMNOLAKZPQZCXBUBLZ
      UCZBFUDZARUCZWSDHKZUEJIZHUGZWQXIWSXLHDJWRUHUIWQXKXIHXKDXJJQZWQXIDXJJUJWQX
      MXIWQXMSZXHARXNXDRIZSZXATIZXAXJMNZOLZXDUKULNZPQZSZCXFUCZBFUDXHXPXJXAXTBCD
      EFGWQXMXOUMXOXTRIXNXDUNUOXPWTFISXAUPWQXMXOUQURXPYCXGBFXPXBFIZSZYCXCTIZXCX
      JMNZOLZXTPQZSZXGYEXBXFIZYCYJUSYDYKXPYKXBEUBLZFXBYLIXBUFIYKEXBUTXBVKVAGVBU
      OYBYJCXBXFCBVCZXQYFYAYIYMXAXCTWTXBDVDZVEYMXSYHXTPYMXRYGOYMXAXCXJMYNVFVGVH
      VIVJVAYEXDVLIZXJTIZYCYJXGUSUSXOYOXNYDXDVMWBYEXMYPWQXMXOYDVNXJDVOVAYOYPSZY
      JYCXGYQYJYCXGUSYQYJSZYBXECXFYRYBXEYRYBSZXAXCXJXDYRXQYAVPYQYFYIYBVQZYOYPYJ
      YBVNZYOYPYJYBVRYRXQYAVSYSXJXCMNOLYHXTPYSXJXCUUAYTVTYQYFYIYBWAWCWDWEWFWEWG
      WHWLWIWJWKWEWMWNWOWP $.

    $( A converging sequence of complex numbers is bounded.  (Contributed by
       Mario Carneiro, 9-Jul-2017.) $)
    climbdd $p |- ( ( M e. ZZ /\ F e. dom ~~> /\ A. k e. Z ( F ` k ) e. CC ) ->
      E. x e. RR A. k e. Z ( abs ` ( F ` k ) ) <_ x ) $=
      ( vj vy wcel cv cfv wral cabs clt wbr cr wrex syl2anc wi wa cz cli cdm cc
      w3a cle cmin co cuz crp simp3 climcau 3adant3 caubnd r19.26 simpr simpllr
      abscld ltle expimpd ralimdva syl5bir exp4b com23 3impia reximdvai mpd ) D
      UAIZCUBUCIZBJZCKZUDIZBELZUEZVKMKZAJZNOZBELZAPQZVOVPUFOZBELZAPQVNVMVKGJZCK
      UGUHMKHJNOBWBUIKLGEQHUJLZVSVHVIVMUKVHVIWCVMHGBCDEFULUMHAGBCDEFUNRVNVRWAAP
      VHVIVMVPPIZVRWASZSVHVITZWDVMWEWFWDVMVRWAVMVRTVLVQTZBELWFWDTZWAVLVQBEUOWHW
      GVTBEWHVJEIZTZVLVQVTWJVLTZVOPIWDVQVTSWKVKWJVLUPURWFWDWIVLUQVOVPUSRUTVAVBV
      CVDVEVFVG $.
  $}

  ${
    $d j k m n x A $.  $d j k m n x y F $.  $d j k m n x y ph $.
    $d j k m n x R $.
    caurcvgr.1 $e |- ( ph -> A C_ RR ) $.
    caurcvgr.2 $e |- ( ph -> F : A --> RR ) $.
    caurcvgr.3 $e |- ( ph -> sup ( A , RR* , < ) = +oo ) $.
    caurcvgr.4 $e |- ( ph -> A. x e. RR+ E. j e. A A. k e. A
      ( j <_ k -> ( abs ` ( ( F ` k ) - ( F ` j ) ) ) < x ) ) $.
    ${
      caucvgrlem.4 $e |- ( ph -> R e. RR+ ) $.
      $( Lemma for ~ caurcvgr .  (Contributed by Mario Carneiro, 15-Feb-2014.)
         (Revised by AV, 12-Sep-2020.) $)
      caucvgrlem $p |- ( ph -> E. j e. A ( ( limsup ` F ) e. RR /\
        A. k e. A ( j <_ k ->
          ( abs ` ( ( F ` k ) - ( limsup ` F ) ) ) < ( 3 x. R ) ) ) ) $=
        ( vm cle wbr cmin co cr wcel adantr vn cv cfv cabs wi wral clsp c3 cmul
        clt wa cxr caddc cmnf cvv wf wss reex ssex syl a1i fex2 limsupcl simprl
        syl3anc ffvelrnd rpred readdcld mnfxr resubcld rexrd mnfltd fss sylancl
        ressxr csup cpnf sseldd simprr breq2 fveq2 oveq1d fveq2d breq1d imbi12d
        wceq wrex cbvralv sylib ffvelrnda recnd abscld syl2anc absdifled sylibd
        ltle simpl syl6 imim2d ralimdva mpd imbi1d ralbidv limsupbnd2 xrltletrd
        breq1 adantrr simplrr rspcv syl3c ltled mpbid expr ralrimiva limsupbnd1
        rspcev simprd xrre syl22anc c2 2re remulcl sylancr 3re abssubd subsub4d
        2timesd oveq2d eqtr4d lesubaddd lesub1dd eqbrtrd letrd leadd1dd addassd
        mpbird breqtrd mpbir2and 2lt3 crp ltmul1d lelttrd sylibr jca rexralbidv
        mpbii imbi2d sylc reximddv ) AEUBZFUBZNOZUUKGUCZUUJGUCZPQZUDUCZDUJOZUEZ
        FCUFZGUGUCZRSZUULUUMUUTPQZUDUCZUHDUIQZUJOZUEZFCUFZUKECAUUJCSZUUSUKZUKZU
        VAUVGUVJUUTULSZUUNDUMQZRSZUNUUTUJOUUTUVLNOZUVAAUVKUVIAGUOSZUVKACRGUPZCU
        OSZRUOSZUVOIACRUQZUVQHCRURUSUTUVRAURVACRGUOUOVBVEGUOVCUTTZUVJUUNDUVJCRU
        UJGAUVPUVIITZAUVHUUSVDZVFZADRSZUVIADLVGTZVHZUVJUNUUNDPQZUUTUNULSUVJVIVA
        UVJUWGUVJUUNDUWCUWEVJZVKZUVTUVJUWGUWHVLUVJUWGCMUAGAUVSUVIHTZACULGUPZUVI
        AUVPRULUQUWKIVOCRULGVMVNTZUWIACULUJVPVQWFUVIJTUVJUUJRSZUUJMUBZNOZUWGUWN
        GUCZNOZUEZMCUFZUAUBZUWNNOZUWQUEZMCUFZUARWGUVJCRUUJUWJUWBVRZUVJUWOUWPUUN
        PQZUDUCZDUJOZUEZMCUFZUWSUVJUUSUXIAUVHUUSVSUURUXHFMCUUKUWNWFZUULUWOUUQUX
        GUUKUWNUUJNVTZUXJUUPUXFDUJUXJUUOUXEUDUXJUUMUWPUUNPUUKUWNGWAZWBWCWDWEZWH
        WIUVJUXHUWRMCUVJUWNCSZUKZUXGUWQUWOUXOUXGUWQUWPUVLNOZUKZUWQUXOUXGUXFDNOZ
        UXQUXOUXFRSZUWDUXGUXRUEUXOUXEUXOUXEUXOUWPUUNUVJCRUWNGUWAWJZUVJUUNRSZUXN
        UWCTZVJWKWLZUVJUWDUXNUWETZUXFDWPWMUXOUWPUUNDUXTUYBUYDWNWOUWQUXPWQZWRWSW
        TXAUXCUWSUAUUJRUWTUUJWFZUXBUWRMCUYFUXAUWOUWQUWTUUJUWNNXFZXBXCXPWMXDZXEU
        VJUVLCMUAGUWJUWLUVJUVLUWFVKUVJUWMUWOUXPUEZMCUFZUXAUXPUEZMCUFZUARWGUXDUV
        JUYIMCUVJUXNUWOUXPUVJUXNUWOUKZUKZUWQUXPUYNUXRUXQUYNUXFDUVJUXNUXSUWOUYCX
        GUVJUWDUYMUWETZUYNUXNUUSUWOUXGUVJUXNUWOVDAUVHUUSUYMXHUVJUXNUWOVSUURUXHF
        UWNCUXMXIXJXKUYNUWPUUNDUVJUXNUWPRSUWOUXTXGZUVJUYAUYMUWCTZUYOWNXLZXQZXMX
        NUYLUYJUAUUJRUYFUYKUYIMCUYFUXAUWOUXPUYGXBXCXPWMXOZUUTUVLXRXSZUVJUWOUWPU
        UTPQZUDUCZUVDUJOZUEZMCUFUVGUVJVUEMCUVJUXNUWOVUDUYNVUCXTDUIQZUVDUYNVUBUY
        NVUBUYNUWPUUTUYPUVJUVAUYMVUATZVJWKWLUYNXTRSZUWDVUFRSYAUYOXTDYBYCZUYNUHR
        SZUWDUVDRSYDUYOUHDYBYCUYNVUCUUTUWPPQUDUCZVUFNUYNUWPUUTUYNUWPUYPWKZUYNUU
        TVUGWKYEUYNVUKVUFNOUWPVUFPQZUUTNOUUTUWPVUFUMQZNOUYNVUMUWGUUTUYNUWPVUFUY
        PVUIVJUVJUWGRSUYMUWHTVUGUYNVUMUWPDPQZDPQZUWGNUYNVUMUWPDDUMQZPQVUPUYNVUF
        VUQUWPPUYNDUYNDUYOWKZYGZYHUYNUWPDDVULVURVURYFYIUYNVUOUUNDUYNUWPDUYPUYOV
        JUYQUYOUYNVUOUUNNOUXPUYSUYNUWPDUUNUYPUYOUYQYJYPYKYLUVJUWGUUTNOUYMUYHTYM
        UYNUUTUVLVUNVUGUVJUVMUYMUWFTUYNUWPVUFUYPVUIVHUVJUVNUYMUYTTUYNUVLUWPDUMQ
        ZDUMQZVUNNUYNUUNVUTDUYQUYNUWPDUYPUYOVHUYOUYNUWQUUNVUTNOUYNUXQUWQUYRUYEU
        TUYNUUNDUWPUYQUYOUYPYJXLYNUYNVVAUWPVUQUMQVUNUYNUWPDDVULVURVURYOUYNVUFVU
        QUWPUMVUSYHYIYQYMUYNUUTUWPVUFVUGUYPVUIWNYRYLUYNXTUHUJOVUFUVDUJOYSUYNXTU
        HDVUHUYNYAVAVUJUYNYDVAUVJDYTSZUYMAVVBUVILTTUUAUUFUUBXMXNUVFVUEFMCUXJUUL
        UWOUVEVUDUXKUXJUVCVUCUVDUJUXJUVBVUBUDUXJUUMUWPUUTPUXLWBWCWDWEWHUUCUUDAV
        VBUULUUPBUBZUJOZUEZFCUFECWGZBYTUFUUSECWGZLKVVFVVGBDYTVVCDWFZVVEUUREFCCV
        VHVVDUUQUULVVCDUUPUJVTUUGUUEXIUUHUUI $.
    $}

    $( A Cauchy sequence of real numbers converges to its limit supremum.  The
       third hypothesis specifies that ` F ` is a Cauchy sequence.
       (Contributed by Mario Carneiro, 7-May-2016.)  (Revised by AV,
       12-Sep-2020.) $)
    caurcvgr $p |- ( ph -> F ~~>r ( limsup ` F ) ) $=
      ( cfv wbr cc wcel clt wral cr wrex crp c3 vy clsp crli cv cmin co cabs wi
      cle c1 cmul wa 1rp a1i caucvgrlem simpl rexlimivw syl recnd wss adantr wf
      cdiv cxr csup cpnf wceq simpr 3re 3pos elrpii rpdivcl sylancl reximi sylc
      ssrexv rpcn adantl 3cn cc0 wne divcan2d breq2d rexralbidv mpbid ralrimiva
      3ne0 imbi2d ax-resscn fss eqidd rlim mpbir2and ) AFFUBKZUCLWNMNDUDZEUDZUI
      LZWPFKZWNUEUFUGKZUAUDZOLZUHZECPDQRZUASPAWNAWNQNZWQWSTUJUKUFOLUHECPZULZDCR
      XDABCUJDEFGHIJUJSNAUMUNUOXFXDDCXDXEUPUQURUSAXCUASAWTSNZULZWQWSTWTTVCUFZUK
      UFZOLZUHZECPZDQRZXCXHCQUTZXMDCRZXNAXOXGGVAZXHXDXMULZDCRXPXHBCXIDEFXQACQFV
      BZXGHVAACVDOVEVFVGXGIVAAWQWRWOFKUEUFUGKBUDOLUHECPDCRBSPXGJVAXHXGTSNXISNAX
      GVHTVIVJVKWTTVLVMUOXRXMDCXDXMVHVNURXMDCQVPVOXHXLXBDEQCXHXKXAWQXHXJWTWSOXH
      WTTXGWTMNAWTVQVRTMNXHVSUNTVTWAXHWGUNWBWCWHWDWEWFAUADECWRWNFAXSQMUTCMFVBHW
      ICQMFWJVMGAWPCNULWRWKWLWM $.
  $}

  ${
    $d j k n x A $.  $d j k n x F $.  $d j k n x H $.  $d j k n x ph $.
    caucvgr.1 $e |- ( ph -> A C_ RR ) $.
    caucvgr.2 $e |- ( ph -> F : A --> CC ) $.
    caucvgr.3 $e |- ( ph -> sup ( A , RR* , < ) = +oo ) $.
    caucvgr.4 $e |- ( ph -> A. x e. RR+ E. j e. A A. k e. A
      ( j <_ k -> ( abs ` ( ( F ` k ) - ( F ` j ) ) ) < x ) ) $.
    ${
      caucvgrlem2.5 $e |- H : CC --> RR $.
      caucvgrlem2.6 $e |- ( ( ( F ` k ) e. CC /\ ( F ` j ) e. CC ) ->
                      ( abs ` ( ( H ` ( F ` k ) ) - ( H ` ( F ` j ) ) ) ) <_
                      ( abs ` ( ( F ` k ) - ( F ` j ) ) ) ) $.
      $( Lemma for ~ caucvgr .  (Contributed by NM, 4-Apr-2005.)  (Proof
         shortened by Mario Carneiro, 8-May-2016.) $)
      caucvgrlem2 $p |- ( ph ->
        ( n e. A |-> ( H ` ( F ` n ) ) ) ~~>r ( ~~>r ` ( H o. F ) ) ) $=
        ( cfv crli cc cr wcel wbr ccom cv cmpt wceq fcompt sylancr cdm clsp fco
        wf cle cmin co cabs clt wi wral wrex wa ad2antrr simprr ffvelrnd simprl
        crp syl2anc ffvelrni resubcld recnd abscld subcld rpre ad2antlr syl3anc
        syl lelttr mpand oveq12d fveq2d breq1d sylibrd imim2d ralimdva reximdva
        fvco3 anassrs mpd caurcvgr rlimrel releldmi wss ax-resscn sylancl mpbid
        fss rlimdm eqbrtrrd ) AHGUAZFCFUBGOHOUCZWQPOZPAQRHUJZCQGUJZWQWRUDMJFHGC
        QRUEUFAWQPUGSZWQWSPTAWQWQUHOZPTXBABCDEWQIAWTXACRWQUJZMJCQRHGUIUFZKADUBZ
        EUBZUKTZXGGOZXFGOZULUMZUNOZBUBZUOTZUPZECUQZDCURZBVDUQXHXGWQOZXFWQOZULUM
        ZUNOZXMUOTZUPZECUQZDCURZBVDUQLAXQYEBVDAXMVDSZUSZXPYDDCYGXFCSZUSXOYCECYG
        YHXGCSZXOYCUPYGYHYIUSZUSZXNYBXHYKXNXIHOZXJHOZULUMZUNOZXMUOTZYBYKYOXLUKT
        ZXNYPYKXIQSZXJQSZYQYKCQXGGAXAYFYJJUTZYGYHYIVAZVBZYKCQXFGYTYGYHYIVCZVBZN
        VEYKYORSXLRSXMRSZYQXNUSYPUPYKYNYKYNYKYLYMYKYRYLRSUUBQRXIHMVFVNYKYSYMRSU
        UDQRXJHMVFVNVGVHVIYKXKYKXIXJUUBUUDVJVIYFUUEAYJXMVKVLYOXLXMVOVMVPYKYAYOX
        MUOYKXTYNUNYKXRYLXSYMULYKXAYIXRYLUDYTUUACQXGHGWDVEYKXAYHXSYMUDYTUUCCQXF
        HGWDVEVQVRVSVTWAWEWBWCWBWFWGWQXCPWHWIVNACWQAXDRQWJCQWQUJXEWKCRQWQWNWLKW
        OWMWP $.
    $}

    $( A Cauchy sequence of complex numbers converges to a complex number.
       Theorem 12-5.3 of [Gleason] p. 180 (sufficiency part).  (Contributed by
       NM, 20-Dec-2006.)  (Revised by Mario Carneiro, 8-May-2016.) $)
    caucvgr $p |- ( ph -> F e. dom ~~>r ) $=
      ( vn cre crli cfv ci cim co wcel cc cabs ccom cmul caddc wbr cmpt feqmptd
      cdm cv wa ffvelrnda replimd mpteq2dva eqtrd cvv fvexd ovexd ref cle resub
      cmin fveq2d subcl absrele syl eqbrtrrd caucvgrlem2 ax-icn elexi rlimconst
      a1i cr wss sylancl imsub absimle rlimmul rlimadd eqbrtrd rlimrel releldmi
      imf ) AFLFUAMNZOPFUAMNZUBQZUCQZMUDFMUGRAFKCKUHZFNZLNZOWGPNZUBQZUCQZUEZWEM
      AFKCWGUEWLAKCSFHUFAKCWGWKAWFCRUIZWGACSWFFHUJUKULUMAKCWHWJWBWDUNWMWGLUOWMO
      WIUBUPABCDEKFLGHIJUQEUHFNZSRDUHFNZSRUIZWNWOUTQZLNZTNZWNLNWOLNUTQZTNWQTNZU
      RWPWRWTTWNWOUSVAWPWQSRZWSXAURUDWNWOVBZWQVCVDVEVFAKCOWIOWCUNOUNRWMOSVGVHVJ
      WMWGPUOACVKVLOSRKCOUEOMUDGVGKCOVIVMABCDEKFPGHIJWAWPWQPNZTNZWNPNWOPNUTQZTN
      XAURWPXDXFTWNWOVNVAWPXBXEXAURUDXCWQVOVDVEVFVPVQVRFWEMVSVTVD $.
  $}

  ${
    $d k m x F $.  $d m x M $.  $d k m x ph $.  $d k m x Z $.
    caurcvg.1 $e |- Z = ( ZZ>= ` M ) $.
    caurcvg.3 $e |- ( ph -> F : Z --> RR ) $.
    caurcvg.4 $e |- ( ph -> A. x e. RR+ E. m e. Z A. k e. ( ZZ>= ` m )
            ( abs ` ( ( F ` k ) - ( F ` m ) ) ) < x ) $.
    $( A Cauchy sequence of real numbers converges to its limit supremum.  The
       fourth hypothesis specifies that ` F ` is a Cauchy sequence.
       (Contributed by NM, 4-Apr-2005.)  (Revised by AV, 12-Sep-2020.) $)
    caurcvg $p |- ( ph -> F ~~> ( limsup ` F ) ) $=
      ( cfv wbr cr cz cv wral wrex crp wcel syl clsp crli cli wss uzssz eqsstri
      cuz zssre sstri a1i cmin co cabs clt cxr csup cpnf wceq c0 wne 1rp r19.2z
      c1 ne0ii sylancr eluzel2 eleq2s uzsup a1d rexlimiv rexlimivw cle wi wa wb
      sseli eluz syl2an biimprd expimpd imim1d ralimdv2 reximia ralimi caurcvgr
      exp4a wf cc ax-resscn fss sylancl rlimclim mpbid ) AEEUAKZUBLEWNUCLABGDCE
      GMUDAGNMGFUGKZNHFUEUFZUHUIUJIACOZEKDOZEKUKULUMKBOUNLZCWRUGKZPZDGQZBRQZGUO
      UNUPUQURZARUSUTXBBRPZXCVCRVAVDJXBBRVBVEZXBXDBRXAXDDGWRGSZXDXAXGFNSZXDXHWR
      WOGFWRVFHVGZFGHVHTVIVJVKTAXEWRWQVLLZWSVMZCGPZDGQZBRPJXBXMBRXAXLDGXGWSXKCW
      TGXGWQWTSZWSVMWQGSZXJWSXGXOXJVNXNWSXGXOXJXNXGXOVNXNXJXGWRNSWQNSXNXJVOXOGN
      WRWPVPGNWQWPVPWRWQVQVRVSVTWAWFWBWCWDTWEAWNEFGHAXCXHXFXBXHBRXAXHDGXGXHXAXI
      VIVJVKTAGMEWGMWHUDGWHEWGIWIGMWHEWJWKWLWM $.
  $}

  ${
    $d i j k m n x F $.  $d i j k m n x M $.  $d i j k m n x ph $.
    $d i j k m n x Z $.
    caucvg.1 $e |- Z = ( ZZ>= ` M ) $.
    ${
      caurcvg2.2 $e |- ( ph -> F e. V ) $.
      caurcvg2.3 $e |- ( ph -> A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j )
            ( ( F ` k ) e. RR /\ ( abs ` ( ( F ` k ) - ( F ` j ) ) ) < x ) ) $.
      $( A Cauchy sequence of real numbers converges, existence version.
         (Contributed by NM, 4-Apr-2005.)  (Revised by Mario Carneiro,
         7-Sep-2014.) $)
      caurcvg2 $p |- ( ph -> F e. dom ~~> ) $=
        ( vn vi vm cfv wcel cmin wa wral crp cv cr co cabs clt wbr cuz wrex cli
        cdm c0 wne c1 1rp ne0ii r19.2z sylancr ralimi cmpt clsp eqid simprr weq
        simpl fveq2 eleq1d sylan fmptd cc oveq2d fveq2d breq1d anbi2d raleqbidv
        rspccva cbvrexv oveq1d anbi12d cbvralv recn anim1i reximi syl adantr wb
        sylbi cau4 ad2antrl mpbid simpr wceq uztrn2 fvex fvmpt oveq12d ralimdva
        syl5ibr reximia caurcvg eluzelz eleq2s cbvmptv climmpt syl2anc releldmi
        cz mpbird climrel expr syl5 rexlimdva rexlimdvw mpd ) ADUAZEOZUBPZXOCUA
        ZEOZQUCZUDOZBUAZUEUFZRZDXQUGOZSZCHUHZBTUHZEUIUJPZATUKULYFBTSZYGUMTUNUOK
        YFBTUPUQAYFYHBTAYEYHCHYEXPDYDSZAXQHPZRYHYCXPDYDXPYBVDURAYKYJYHAYKYJRZRZ
        ELYDLUAZEOZUSZUTOZUIUFZYHYMYRYPYQUIUFZYMBMNYPXQYDYDVAZYMLYDYOUBYPYMYJYN
        YDPYOUBPZAYKYJVBXPUUADYNYDDLVCXOYOUBXNYNEVEVFVOVGYPVAZVHYMMUAZEOZVIPZUU
        DNUAZEOZQUCZUDOZYAUEUFZRZMUUFUGOZSZNYDUHZBTSZUUCYPOZUUFYPOZQUCZUDOZYAUE
        UFZMUULSZNYDUHZBTSYMUUMNHUHZBTSZUUOAUVDYLAYIUVDKYFUVCBTYFXPXOUUGQUCZUDO
        ZYAUEUFZRZDUULSZNHUHUVCYEUVICNHCNVCZYCUVHDYDUULXQUUFUGVEUVJYBUVGXPUVJXT
        UVFYAUEUVJXSUVEUDUVJXRUUGXOQXQUUFEVEVJVKVLVMVNVPUVIUUMNHUVIUUDUBPZUUJRZ
        MUULSUUMUVHUVLDMUULDMVCZXPUVKUVGUUJUVMXOUUDUBXNUUCEVEZVFUVMUVFUUIYAUEUV
        MUVEUUHUDUVMXOUUDUUGQUVNVQVKVLVRVSUVLUUKMUULUVKUUEUUJUUDVTWAURWFWBWFURW
        CWDYKUVDUUOWEAYJBNMEFXQYDHIYTWGWHWIUUNUVBBTUUMUVANYDUUFYDPZUUKUUTMUULUU
        KUUTUVOUUCUULPZRZUUJUUEUUJWJUVQUUSUUIYAUEUVQUURUUHUDUVQUUPUUDUUQUUGQUVQ
        UUCYDPUUPUUDWKXQUUCUUFYDYTWLLUUCYOUUDYDYPYNUUCEVEUUBUUCEWMWNWCUVOUUQUUG
        WKUVPLUUFYOUUGYDYPYNUUFEVEUUBUUFEWMWNWDWOVKVLWQWPWRURWCWSYMXQXFPZEGPZYR
        YSWEYKUVRAYJUVRXQFUGOHFXQWTIXAWHAUVSYLJWDYQDEYPXQGYDYTLDYDYOXOYNXNEVEXB
        XCXDXGEYQUIXHXEWCXIXJXKXLXM $.
    $}

    caucvg.2 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    caucvg.3 $e |- ( ph -> A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j )
                           ( abs ` ( ( F ` k ) - ( F ` j ) ) ) < x ) $.
    caucvg.4 $e |- ( ph -> F e. V ) $.
    $( A Cauchy sequence of complex numbers converges to a complex number.
       Theorem 12-5.3 of [Gleason] p. 180 (sufficiency part).  (Contributed by
       NM, 20-Dec-2006.)  (Proof shortened by Mario Carneiro, 15-Feb-2014.)
       (Revised by Mario Carneiro, 8-May-2016.) $)
    caucvg $p |- ( ph -> F e. dom ~~> ) $=
      ( vn cv cfv crli wbr wcel cz crp cmpt cli cdm fveq2 cbvmptv wss cuz uzssz
      cr eqsstri zssre sstri a1i cc eqcomi fmptd cxr clt csup cpnf wceq cmin co
      cabs wral wrex c0 wne c1 1rp ne0ii r19.2z sylancr eluzel2 eleq2s rexlimiv
      a1d rexlimivw syl uzsup cle wi wa wb sseli eluz biimprd eqid fvex fvmpt3i
      syl2an oveqan12rd fveq2d breq1d imim12d ex com23 ralimdv2 reximia caucvgr
      ralimi rlimdm syl5eqbr rlimclim climmpt syl2anc mpbird climrel releldmi
      mpbid ) AEMHMNZEOZUAZPOZUBQZEUBUCRAXODHDNZEOZUAZXNUBQZAXRXNPQXSAXRXMXNPDM
      HXQXLXPXKEUDUEZAXMPUCRXMXNPQABHCDXMHUIUFAHSUIHFUGOZSIFUHUJZUKULUMADHXQUNX
      MJXRXMXTUOUPZAFSRZHUQURUSUTVAAXQCNZEOZVBVCZVDOZBNZURQZDYEUGOZVEZCHVFZBTVF
      ZYDATVGVHYMBTVEZYNVITVJVKKYMBTVLVMYMYDBTYLYDCHYEHRZYDYLYDYEYAHFYEVNIVOVQV
      PVRVSZFHIVTVSZAYOYEXPWAQZXPXMOZYEXMOZVBVCZVDOZYIURQZWBZDHVEZCHVFZBTVEKYMU
      UGBTYLUUFCHYPYJUUEDYKHYPXPHRZXPYKRZYJWBZUUEYPUUHUUJUUEWBYPUUHWCZYSUUIYJUU
      DUUKUUIYSYPYESRXPSRUUIYSWDUUHHSYEYBWEHSXPYBWEYEXPWFWKWGUUKUUDYJUUKUUCYHYI
      URUUKUUBYGVDUUHYPYTXQUUAYFVBMXPXLXQHXMXKXPEUDXMWHZXKEWIZWJMYEXLYFHXMXKYEE
      UDUULUUMWJWLWMWNWGWOWPWQWRWSXAVSWTAHXMYCYRXBXJXCAXNXRFHIYQADHXQUNXRJXRWHZ
      UPXDXJAYDEGRXOXSWDYQLXNDEXRFGHIUUNXEXFXGEXNUBXHXIVS $.
  $}

  ${
    $d i j k m n x y F $.  $d j k m n x M $.  $d i j k m n x y Z $.
    $d j k n x ph $.  $d i k m n y V $.
    caucvgb.1 $e |- Z = ( ZZ>= ` M ) $.
    $( A function is convergent if and only if it is Cauchy.  Theorem 12-5.3 of
       [Gleason] p. 180.  (Contributed by Mario Carneiro, 15-Feb-2014.) $)
    caucvgb $p |- ( ( M e. ZZ /\ F e. V ) -> ( F e. dom ~~> <->
              A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j ) ( ( F ` k ) e. CC /\
                ( abs ` ( ( F ` k ) - ( F ` j ) ) ) < x ) ) ) $=
      ( vn vm vi wcel wa cv cfv cuz wral wrex clt crp vy cz cc cli cmin co cabs
      cdm wbr cop wex eldm2g ibi df-br c1 simpll eqidd simpr climi simpl ralimi
      1rp a1i reximi syl ex syl5bir exlimdv syl5 wi wb wceq weq raleqdv cbvrexv
      fveq2 rspcv mpsyl eluzelz eqid climcau sylan r19.29uz ralimdv mpan9 an32s
      eleq2s adantll simplrr eleq1d rspccva oveq1d fveq2d breq1d cbvralv adantl
      sylib oveq2d raleqbidv rexralbidv syl5bb caucvg adantlll impbida ad2antrl
      breq2 cau4 bitr4d rexlimdvaa pm5.21ndd ) EUBLZDFLZMZCNZDOZUCLZCINZPOZQZIG
      RZDUDUHZLZXPXOBNZDOZUEUFZUGOZANZSUIZMZCYCPOZQZBGRZATQZYBDJNZUJUDLZJUKZXMX
      TYBYPJDUDYAULUMXMYOXTJYODYNUDUIZXMXTDYNUDUNXMYQXTXMYQMZXPXOYNUEUFUGOUOSUI
      ZMZCXRQZIGRXTYRYNXOUOICDEGHXKXLYQUPUOTLZYRVBVCYRXNGLMXOUQXMYQURUSUUAXSIGY
      TXPCXRXPYSUTVAVDVEVFVGVHVIYMXTVJXMUUBYMXPCYJQZBGRZATQXTVBYLUUDATYKUUCBGYI
      XPCYJXPYHUTVAVDVAUUDXTAUOTUUDXTVKYGUOVLUUCXSBIGBIVMXPCYJXRYCXQPVPVNVOVCVQ
      VRVCXMXSYBYMVKIGXMXQGLZXSMZMZYBYKBXRRZATQZYMUUGYBUUIUUFYBUUIXMUUEYBXSUUIU
      UEYBMYHCYJQZBXRRZATQZXSUUIUUEXQUBLZYBUULUUMXQEPOGEXQVSHWGABCDXQXRXRVTZWAW
      BXSUUKUUHATXSUUKUUHXPYHBCXQXRUUNWCVFWDWEWFWHXLUUFUUIYBXKXLUUFMZUUIMZUAKJD
      XQFXRUUNUUPXSYNXRLYNDOZUCLZXLUUEXSUUIWIXPUURCYNXRCJVMZXOUUQUCXNYNDVPZWJWK
      WBUUPUUQYDUEUFZUGOZYGSUIZJYJQZBXRRZATQZUUQKNZDOZUEUFZUGOZUANZSUIZJUVGPOZQ
      KXRRZUATQUUIUVFUUOUUHUVEATYKUVDBXRYKUUJUVDYIYHCYJXPYHURVAYHUVCCJYJUUSYFUV
      BYGSUUSYEUVAUGUUSXOUUQYDUEUUTWLWMWNWOWQVDVAWPUVEUVNAUATUVEUVJYGSUIZJUVMQZ
      KXRRAUAVMZUVNUVDUVPBKXRBKVMZUVCUVOJYJUVMYCUVGPVPUVRUVBUVJYGSUVRUVAUVIUGUV
      RYDUVHUUQUEYCUVGDVPWRWMWNWSVOUVQUVOUVLKJXRUVMYGUVKUVJSXFWTXAWOWQXLUUFUUIU
      PXBXCXDUUEYMUUIVKXMXSABCDEXQXRGHUUNXGXEXHXIXJ $.

    serf0.2 $e |- ( ph -> M e. ZZ ) $.
    serf0.3 $e |- ( ph -> F e. V ) $.
    serf0.4 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    serf0.5 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    $( If an infinite series converges, its underlying sequence converges to
       zero.  (Contributed by NM, 2-Sep-2005.)  (Revised by Mario Carneiro,
       16-Feb-2014.) $)
    serf0 $p |- ( ph -> F ~~> 0 ) $=
      ( vx vm cfv cabs clt wral wcel cmin co vn vj cc0 cli wbr cv cuz crp caddc
      wrex cseq cc wa cdm cz wb caucvgb syl2anc mpbid sylib c1 peano2uzs adantl
      cau3 wi eluzelz uzid peano2uz wceq fveq2 oveq2d fveq2d rspcv 4syl adantld
      breq1d ralimia simpr syl6eleq syl eluzp1m1 sylan oveq12d wf serf ad2antrr
      oveq1 uztrn2 syldan ffvelrnd abssubd zcnd ax-1cn npcan sylancl eqid seqm1
      eluzp1p1 oveq1d adantlr pncan2d eqtr2d 3eqtr4d sylibd syl5 raleqdv rspcev
      ralrimdva syl6an rexlimdva ralimdv mpd eqidd clim0c mpbird ) ACUCUDUEBUFZ
      CNZONZLUFZPUEZBUAUFZUGNZQZUAFUJZLUHQZAMUFZUICDUKZNZULRZYHXPYGNZSTZONZXSPU
      EZBYFUGNZQZUMZMUBUFZUGNZQZUBFUJZLUHQZYEAYIYHYQYGNSTONXSPUEUMMYRQUBFUJLUHQ
      ZUUAAYGUDUNZRZUUBJADUORZUUDUUDUUBUPHJLUBMYGDUUCFGUQURUSLUBMBYGDFGVDUTAYTY
      DLUHAYSYDUBFAYQFRZUMZYQVAUITZFRZYSXTBUUHUGNZQZYDUUFUUIADYQFGVBVCZYSYHYFVA
      UITZYGNZSTZONZXSPUEZMYRQZUUGUUKYPUUQMYRYFYRRZYOUUQYIUUSYFUORYFYNRUUMYNRYO
      UUQVEYQYFVFYFVGYFYFVHYMUUQBUUMYNXPUUMVIZYLUUPXSPUUTYKUUOOUUTYJUUNYHSXPUUM
      YGVJVKVLVPVMVNVOVQUUGUURXTBUUJUUGXPUUJRZUMZUURXPVASTZYGNZUVCVAUITZYGNZSTZ
      ONZXSPUEZXTUVBUVCYRRZUURUVIVEUUGYQUORZUVAUVJUUGYQDUGNZRZUVKUUGYQFUVLAUUFV
      RZGVSZDYQVFVTYQXPWAWBZUUQUVIMUVCYRYFUVCVIZUUPUVHXSPUVQUUOUVGOUVQYHUVDUUNU
      VFSYFUVCYGVJUVQUUMUVEYGYFUVCVAUIWGVLWCVLVPVMVTUVBUVHXRXSPUVBUVDYJSTZONYJU
      VDSTZONUVHXRUVBUVDYJUVBFULUVCYGAFULYGWDUUFUVAABCDFGHKWEWFZUUGUVAUVJUVCFRZ
      UVPUUGUUFUVJUWAUVNDUVCYQFGWHWBWIWJZUVBFULXPYGUVTUUGUUIUVAXPFRZUULDXPUUHFG
      WHWBZWJWKUVBUVGUVROUVBUVFYJUVDSUVBUVEXPYGUVBXPULRVAULRUVEXPVIUVBXPUVAXPUO
      RUUGUUHXPVFVCWLWMXPVAWNWOVLVKVLUVBXQUVSOUVBUVSUVDXQUITZUVDSTXQUVBYJUWEUVD
      SUVBUUEXPDVAUITZUGNZRZYJUWEVIAUUEUUFUVAHWFUUGUUHUWGRZUVAUWHUUGUVMUWIUVODY
      QWRVTUWFXPUUHUWGUWGWPWHWBUICDXPWQURWSUVBUVDXQUWBUUGUVAUWCXQULRZUWDAUWCUWJ
      UUFKWTWIXAXBVLXCVPXDXHXEYCUUKUAUUHFYAUUHVIXTBYBUUJYAUUHUGVJXFXGXIXJXKXLAL
      XQUABCDEFGHIAUWCUMXQXMKXNXO $.
  $}

  ${
    $d j k n x F $.  $d j k n x G $.  $d j k n x M $.  $d j k n x ph $.
    $d k x K $.  $d k n x N $.  $d j k n x Z $.
    iseralt.1 $e |- Z = ( ZZ>= ` M ) $.
    iseralt.2 $e |- ( ph -> M e. ZZ ) $.
    iseralt.3 $e |- ( ph -> G : Z --> RR ) $.
    iseralt.4 $e |- ( ( ph /\ k e. Z ) -> ( G ` ( k + 1 ) ) <_ ( G ` k ) ) $.
    iseralt.5 $e |- ( ph -> G ~~> 0 ) $.
    $( Lemma for ~ iseralt .  A decreasing sequence with limit zero consists of
       positive terms.  (Contributed by Mario Carneiro, 6-Apr-2015.) $)
    iseraltlem1 $p |- ( ( ph /\ N e. Z ) -> 0 <_ ( G ` N ) ) $=
      ( wcel wa cfv cz wbr adantr c1 cr co vn cc0 csn cxp eluzelz eleq2s adantl
      cuz cli cc ffvelrnda recnd 1z uzssz zex climconst2 sylancl cv wf ad2antrr
      eqid uztrn2 adantll ffvelrnd wceq fvex fvconst2 syl eqeltrd cle simpr cfz
      simplr elfzuz syl2an caddc simpl adantlr syldan monoord2 breqtrrd climle
      cmin ) AEFLZMZUBECNZUACOWFUCUDZEEUHNZWHVAWDEOLZAWIEDUHNFDEUEGUFUGACUBUIPW
      DKQWEWFUJLROLWGWFUIPWEWFAFSECIUKZULUMWFRORUNUOUPUQWEUAURZWHLZMZFSWKCAFSCU
      SZWDWLIUTZWDWLWKFLADWKEFGVBVCVDWMWKWGNZWFSWMWKOLZWPWFVEWLWQWEEWKUEUGOWFWK
      ECVFVGVHZWEWFSLWLWJQVIWMWKCNWFWPVJWMBCEWKWEWLVKWMBURZEWKVLTLZMFSWSCWMWNWT
      WOQWMWDWSWHLZWSFLZWTAWDWLVMWSEWKVNDWSEFGVBZVOVDWMWEXAWSRVPTCNWSCNVJPZWSEW
      KRWCTZVLTLWEWLVQWSEXEVNWEXAXBXDWDXAXBAXCVCAXBXDWDJVRVSVOVTWRWAWB $.

    iseralt.6 $e |- ( ( ph /\ k e. Z ) ->
      ( F ` k ) = ( ( -u 1 ^ k ) x. ( G ` k ) ) ) $.
    $( Lemma for ~ iseralt .  The terms of an alternating series form a chain
       of inequalities in alternate terms, so that for example
       ` S ( 1 ) <_ S ( 3 ) <_ S ( 5 ) <_ ... ` and
       ` ... <_ S ( 4 ) <_ S ( 2 ) <_ S ( 0 ) ` (assuming ` M = 0 ` so that
       these terms are defined).  (Contributed by Mario Carneiro,
       6-Apr-2015.) $)
    iseraltlem2 $p |- ( ( ph /\ N e. Z /\ K e. NN0 ) ->
      ( ( -u 1 ^ N ) x. ( seq M ( + , F ) ` ( N + ( 2 x. K ) ) ) ) <_
      ( ( -u 1 ^ N ) x. ( seq M ( + , F ) ` N ) ) ) $=
      ( wcel c1 co c2 cmul caddc vx vn cn0 cneg cexp cseq cfv cle wbr wa cv cc0
      wi wceq oveq2 2t0e0 syl6eq oveq2d fveq2d breq1d imbi2d cz wss cuz eqsstri
      uzssz a1i sselda addid1d cr wne neg1rr neg1ne0 reexpclz mp3an12 ffvelrnda
      zcnd syl remulcld eqeltrd serfre leidd eqbrtrd wf ad2antrr ax-1cn 2timesi
      cmin oveq2i simpr syl6eleq adantr eluzelz 2cn nn0cn adantl sylancr mulcli
      cc mulcl addassd syl5eqr 2nn0 nn0mulcl uzaddcl syl2anc sseldi 1cnd adddid
      2cnd peano2nn0 syl6eleqr ffvelrnd peano2uz resubcld 0red wral oveq1 fveq2
      3eqtr4d ralrimiva breq12d rspcv seqp1 oveq1d eqtrd oveq12d eqeq12d neg1cn
      sylc recnd expp1zd sylancl 3eqtrd 3eqtr3d mulassd eqtr4d 3eqtrrd syl22anc
      mulid2d suble0d mpbird leadd2dd reexpclzd mulcom mulm1d mulneg12 renegcld
      peano2zd mul2neg mulid1d readdcld 2timesd expaddz 2z nn0z zaddcl neg1sqe1
      syl2an expmulz oveq1i syl5eq negcld addcomd negsubd 3brtr3d syl3anc mpand
      1exp letr expcom a2d nn0ind com12 3impia ) AGHOZEUCOZPUDZGUEQZGRESQZTQZTC
[encoded data, 4160 characters]
      UVLUVMUVNUVO $.

    $( Lemma for ~ iseralt .  From ~ iseraltlem2 , we have
       ` ( -u 1 ^ n ) x. S ( n + 2 k ) <_ ( -u 1 ^ n ) x. S ( n ) ` and
       ` ( -u 1 ^ n ) x. S ( n + 1 ) <_ ( -u 1 ^ n ) x. S ( n + 2 k + 1 ) ` ,
       and we also have ` ( -u 1 ^ n ) x. S ( n + 1 ) = `
       ` ( -u 1 ^ n ) x. S ( n ) - G ( n + 1 ) ` for each ` n ` by the
       definition of the partial sum ` S ` , so combining the inequalities we
       get ` ( -u 1 ^ n ) x. S ( n ) - G ( n + 1 ) = `
       ` ( -u 1 ^ n ) x. S ( n + 1 ) <_ `
       ` ( -u 1 ^ n ) x. S ( n + 2 k + 1 ) = `
       ` ( -u 1 ^ n ) x. S ( n + 2 k ) - G ( n + 2 k + 1 ) <_ `
       ` ( -u 1 ^ n ) x. S ( n + 2 k ) <_ ( -u 1 ^ n ) x. S ( n ) <_ `
       ` ( -u 1 ^ n ) x. S ( n ) + G ( n + 1 ) ` , so
       ` | ( -u 1 ^ n ) x. S ( n + 2 k + 1 ) - ( -u 1 ^ n ) x. S ( n ) | = `
       ` | S ( n + 2 k + 1 ) - S ( n ) | <_ G ( n + 1 ) ` and
       ` | ( -u 1 ^ n ) x. S ( n + 2 k ) - ( -u 1 ^ n ) x. S ( n ) | = `
       ` | S ( n + 2 k ) - S ( n ) | <_ G ( n + 1 ) ` .  Thus, both even and
       odd partial sums are Cauchy if ` G ` converges to ` 0 ` .  (Contributed
       by Mario Carneiro, 6-Apr-2015.) $)
    iseraltlem3 $p |- ( ( ph /\ N e. Z /\ K e. NN0 ) ->
      ( ( abs ` ( ( seq M ( + , F ) ` ( N + ( 2 x. K ) ) ) -
        ( seq M ( + , F ) ` N ) ) ) <_ ( G ` ( N + 1 ) ) /\
        ( abs ` ( ( seq M ( + , F ) ` ( ( N + ( 2 x. K ) ) + 1 ) ) -
        ( seq M ( + , F ) ` N ) ) ) <_ ( G ` ( N + 1 ) ) ) ) $=
      ( cmul co cfv c1 cle cexp wcel cn0 w3a c2 caddc cseq cmin cabs wbr neg1rr
      cneg cr a1i cc0 wne neg1ne0 cz uzssz eqsstri simp2 sseldi reexpclzd recnd
      cuz wf cv simpr ffvelrnda remulcld eqeltrd serfre 3ad2ant1 syl6eleq simp3
      wa 2nn0 nn0mulcl sylancr uzaddcl syl2anc syl6eleqr ffvelrnd subdid fveq2d
      resubcld absmuld eqtr3d cc wceq absexpz syl3anc ax-1cn absnegi abs1 eqtri
      oveq1i 1exp syl syl5eq eqtrd oveq1d abscld mulid2d 3eqtrd peano2uzs seqp1
      3ad2ant2 wral ralrimiva fveq2 oveq2 oveq12d eqeq12d oveq2d expp1zd neg1cn
      sylc mulcom sylancl mulm1d mulneg1d negsubd zcnd 2timesd expmulz syl22anc
      rspcv neg1sqe1 expaddz 3eqtr3d mulassd iseraltlem2 3brtr3d eqbrtrrd nn0zd
      iseraltlem1 mpbid letrd absdifled mpbir2and 2z syl6eq syl3an2 1cnd nn0cnd
      add32d lenegd mpbird mulid1d simp1 subge02d eqbrtrd readdcld addge01d jca
      negcld ) AGHUAZEUBUAZUCZGUDEOPZUEPZUECFUFZQZGUVBQZUGPZUHQZGRUEPZDQZSUIUVA
      RUEPZUVBQZUVDUGPZUHQZUVHSUIUUSRUKZGTPZUVCOPZUVNUVDOPZUGPZUHQZUVFUVHSUUSUV
      RUVNUHQZUVFOPZRUVFOPUVFUUSUVNUVEOPZUHQUVRUVTUUSUWAUVQUHUUSUVNUVCUVDUUSUVN
      UUSUVMGUVMULUAZUUSUJUMZUVMUNUOZUUSUPUMZUUSHUQGHFVDQZUQIFURUSZAUUQUURUTZVA
      ZVBZVCZUUSUVCUUSHULUVAUVBAUUQHULUVBVEUURABCFHIJABVFZHUAZVOZUWLCQZUVMUWLTP
      ZUWLDQZOPZULNUWNUWPUWQUWNUVMUWLUWBUWNUJUMUWDUWNUPUMUWNHUQUWLUWGAUWMVGVAVB
      AHULUWLDKVHVIVJVKVLZUUSUVAUWFHUUSGUWFUAZUUTUBUAZUVAUWFUAZUUSGHUWFUWHIVMZU
      USUDUBUAUURUXAVPAUUQUURVNZUDEVQVRZUUTFGVSVTZIWAZWBZVCZUUSUVDUUSHULGUVBUWS
      UWHWBZVCZWCWDUUSUVNUVEUWKUUSUVEUUSUVCUVDUXHUXJWEVCZWFWGUUSUVSRUVFOUUSUVSU
      VMUHQZGTPZRUUSUVMWHUAZUWDGUQUAZUVSUXNWIUUSUVMUWCVCZUWEUWIUVMGWJWKUUSUXNRG
      TPZRUXMRGTUXMRUHQRRWLWMWNWOWPUUSUXPUXRRWIUWIGWQWRZWSWTZXAUUSUVFUUSUVFUUSU
      VEUXLXBVCXCXDUUSUVRUVHSUIUVPUVHUGPZUVOSUIUVOUVPUVHUEPZSUIUUSUYAUVNUVJOPZU
      VOUUSUVPUVHUUSUVNUVDUWJUXJVIZUUSHULUVGDAUUQHULDVEUURKVLZUUQAUVGHUAZUURFGH
      IXEZXGZWBZWEUUSUVNUVJUWJUUSHULUVIUVBUWSUUSUVAHUAUVIHUAZUXGFUVAHIXEWRZWBZV
      IZUUSUVNUVCUWJUXHVIZUUSUVNUVGUVBQZOPZUYAUYCSUUSUYPUVNUVDUVNUVHOPZUGPZOPUV
      PUVNUYQOPZUGPUYAUUSUYOUYRUVNOUUSUYOUVDUYQUKZUEPZUYRUUSUYOUVDUVGCQZUEPZUVD
      UVMUVGTPZUVHOPZUEPVUAUUSUWTUYOVUCWIUXCUECFGXFWRUUSVUBVUEUVDUEUUSUYFUWOUWR
      WIZBHXHZVUBVUEWIZUYHAUUQVUGUURAVUFBHNXIVLZVUFVUHBUVGHUWLUVGWIZUWOVUBUWRVU
      EUWLUVGCXJVUJUWPVUDUWQUVHOUWLUVGUVMTXKUWLUVGDXJXLXMYGXQXNUUSVUEUYTUVDUEUU
      SVUEUVNUKZUVHOPUYTUUSVUDVUKUVHOUUSVUDUVNUVMOPZUVMUVNOPZVUKUUSUVMGUXQUWEUW
      IXOUUSUVNWHUAUXOVULVUMWIUWKXPUVNUVMXRXSUUSUVNUWKXTXDZXAUUSUVNUVHUWKUUSUVH
      UYIVCZYAWTXNXDUUSUVDUYQUXKUUSUYQUUSUVNUVHUWJUYIVIVCZYBWTXNUUSUVNUVDUYQUWK
      UXKVUPWCUUSUYSUVHUVPUGUUSUVNUVNOPZUVHOPRUVHOPUYSUVHUUSVUQRUVHOUUSUVMGGUEP
      ZTPZUXRVUQRUUSVUSUVMUDTPZGTPZUXRUUSUVMUDGOPZTPZVUSVVAUUSVVBVURUVMTUUSGUUS
      GUWIYCZYDXNUUSUXOUWDUDUQUAZUXPVVCVVAWIUXQUWEVVEUUSUUAUMZUWIUVMUDGYEYFWGVU
      TRGTYHWPUUBUUSUXOUWDUXPUXPVUSVUQWIUXQUWEUWIUWIUVMGGYIYFUXSYJZXAUUSUVNUVNU
      VHUWKUWKVUOYKUUSUVHVUOXCYJXNXDUUSUYPUYCSUIUYCUKZUYPUKZSUIUUSVUKUVJOPZVUKU
      YOOPZVVHVVISUUSVUDUVGUUTUEPZUVBQZOPZVUDUYOOPZVVJVVKSUUQAUYFUURVVNVVOSUIUY
      GABCDEFUVGHIJKLMNYLUUCUUSVUDVUKVVMUVJOVUNUUSVVLUVIUVBUUSGRUUTVVDUUSUUDUUS
      UUTUXEUUEUUFZWDXLUUSVUDVUKUYOOVUNXAYMUUSUVNUVJUWKUUSUVJUYLVCZYAUUSUVNUYOU
      WKUUSUYOUUSHULUVGUVBUWSUYHWBZVCYAYMUUSUYPUYCUUSUVNUYOUWJVVRVIUYMUUGUUHYNZ
      UUSUYCUVOUVIDQZUGPZUVOSUUSUYCUVNUVCUVNVVTOPZUGPZOPUVOUVNVWBOPZUGPVWAUUSUV
      JVWCUVNOUUSUVJUVCUVICQZUEPZUVCVWBUKZUEPVWCUUSUXBUVJVWFWIUXFUECFUVAXFWRUUS
      VWEVWGUVCUEUUSVWEUVMUVITPZVVTOPZVUKVVTOPVWGUUSUYJVUGVWEVWIWIZUYKVUIVUFVWJ
      BUVIHUWLUVIWIZUWOVWEUWRVWIUWLUVICXJVWKUWPVWHUWQVVTOUWLUVIUVMTXKUWLUVIDXJX
      LXMYGXQUUSVWHVUKVVTOUUSUVMVVLTPZVUKROPZVWHVUKUUSVWLVUDUVMUUTTPZOPZVWMUUSU
      XOUWDUVGUQUAUUTUQUAVWLVWOWIUXQUWEUUSHUQUVGUWGUYHVAUUSUUTUXEYOUVMUVGUUTYIY
      FUUSVUDVUKVWNROVUNUUSVWNVUTETPZRUUSUXOUWDVVEEUQUAZVWNVWPWIUXQUWEVVFUUSEUX
      DYOZUVMUDEYEYFUUSVWPRETPZRVUTRETYHWPUUSVWQVWSRWIVWREWQWRWSWTXLWTUUSVVLUVI
      UVMTVVPXNUUSVUKUUSUVNUWKUUPUUIYJXAUUSUVNVVTUWKUUSVVTUUSHULUVIDUYEUYKWBZVC
      ZYAXDXNUUSUVCVWBUXIUUSVWBUUSUVNVVTUWJVWTVIVCZYBXDXNUUSUVNUVCVWBUWKUXIVXBW
      CUUSVWDVVTUVOUGUUSVUQVVTOPRVVTOPVWDVVTUUSVUQRVVTOVVGXAUUSUVNUVNVVTUWKUWKV
      XAYKUUSVVTVXAXCYJXNXDUUSUNVVTSUIZVWAUVOSUIUUSAUYJVXCAUUQUURUUJZUYKABDFUVI
      HIJKLMYPVTUUSUVOVVTUYNVWTUUKYQUULZYRUUSUVOUVPUYBUYNUYDUUSUVPUVHUYDUYIUUMZ
      ABCDEFGHIJKLMNYLUUSUNUVHSUIZUVPUYBSUIUUSAUYFVXGVXDUYHABDFUVGHIJKLMYPVTUUS
      UVPUVHUYDUYIUUNYQYRZUUSUVOUVPUVHUYNUYDUYIYSYTYNUUSUYCUVPUGPZUHQZUVLUVHSUU
      SVXJUVSUVLOPZRUVLOPUVLUUSUVNUVKOPZUHQVXJVXKUUSVXLVXIUHUUSUVNUVJUVDUWKVVQU
      XKWCWDUUSUVNUVKUWKUUSUVKUUSUVJUVDUYLUXJWEVCZWFWGUUSUVSRUVLOUXTXAUUSUVLUUS
      UVLUUSUVKVXMXBVCXCXDUUSVXJUVHSUIUYAUYCSUIUYCUYBSUIVVSUUSUYCUVOUYBUYMUYNVX
      FVXEVXHYRUUSUYCUVPUVHUYMUYDUYIYSYTYNUUO $.

    $( The alternating series test.  If ` G ( k ) ` is a decreasing sequence
       that converges to ` 0 ` , then ` sum_ k e. Z ( -u 1 ^ k ) x. G ( k ) `
       is a convergent series.  (Note that the first term is positive if ` M `
       is even, and negative if ` M ` is odd.  If the parity of your series
       does not match up with this, you will need to post-compose the series
       with multiplication by ` -u 1 ` using ~ isermulc2 .)  (Contributed by
       Mario Carneiro, 7-Apr-2015.) $)
    iseralt $p |- ( ph -> seq M ( + , F ) e. dom ~~> ) $=
      ( wcel cfv wbr cr cmin co c1 c2 vx vj vn caddc cseq cvv seqex a1i cv cabs
      clt cuz wral wrex crp cc0 cli climrel brrelexi syl eqidd ffvelrnda clim0c
      wa recnd mpbid wi cz simpr syl6eleq eluzelz uzid 3syl peano2uz wceq fveq2
      fveq2d breq1d cle cdiv cmul ad2antll zcnd eleq2s ad2antrl subcld 2cnd wne
      rspcv 2ne0 divcan2d oveq2d eqtr2d adantr oveq1d cn0 simpll simpl ad2antlr
      pncan3d zsubcld eluzle subge0d mpbird 2re divge0 syl22anc elnn0z sylanbrc
      zred 2pos iseraltlem3 simpld syl3anc eqbrtrd 2div2e1 oveq2i cc divsubdird
      peano2cn df-2 ax-1cn pnpcan2d syl5eq eqtr3d syl5eqr sylancl sub32d 3eqtrd
      w3a subcl eqtrd npcan cn uznn0sub wf ffvelrn syl2an adantlr eqeltrd nnrpd
      nn0p1nn rphalfcld rpgt0d elnnz nnm1nn0 simprd wo zeo mpjaodan iseraltlem1
      peano2uzs sylan2 absidd breqtrrd cneg cexp neg1rr neg1ne0 adantl remulcld
      reexpclzd serfre uztrn2 abscld rpre lelttr mpand jctild anassrs ralrimdva
      resubcld syld reximdva ralimdva mpd caurcvg2 ) AUAUBUCUDCEUEZEUFFGUVRUFMA
      UDCEUGUHAUCUIZDNZUJNZUAUIZUKOZUCUBUIZULNZUMZUBFUNZUAUOUMZUVSUVRNZPMZUWIUW
      DUVRNZQRZUJNZUWBUKOZVDZUCUWEUMZUBFUNZUAUOUMADUPUQOZUWHKAUAUVTUBUCDEUFFGHA
      UWRDUFMKDUPUQURUSUTAUVSFMZVDZUVTVAUWTUVTAFPUVSDIVBVEVCVFAUWGUWQUAUOAUWBUO
      MZVDZUWFUWPUBFUXBUWDFMZVDZUWFUWDSUDRZDNZUJNZUWBUKOZUWPUXDUWDUWEMZUXEUWEMU
      WFUXHVGUXDUWDEULNZMUWDVHMZUXIUXDUWDFUXJUXBUXCVIGVJEUWDVKZUWDVLVMUWDUWDVNU
      WCUXHUCUXEUWEUVSUXEVOZUWAUXGUWBUKUXMUVTUXFUJUVSUXEDVPVQVRWIVMUXDUXHUWOUCU
      WEUXBUXCUVSUWEMZUXHUWOVGUXBUXCUXNVDZVDZUXHUWNUWJUXPUWMUXGVSOZUXHUWNAUXOUX
      QUXAAUXOVDZUWMUXFUXGVSUXRUVSUWDQRZTVTRZVHMZUWMUXFVSOUXSSUDRZTVTRZVHMZUXRU
      YAVDZUWMUWDTUXTWARZUDRZUVRNZUWKQRZUJNZUXFVSUYEUWLUYIUJUYEUWIUYHUWKQUYEUVS
      UYGUVRUXRUVSUYGVOUYAUXRUYGUWDUXSUDRUVSUXRUYFUXSUWDUDUXRUXSTUXRUVSUWDUXRUV
      SUXNUVSVHMAUXCUWDUVSVKWBZWCZUXRUWDUXCUXKAUXNUXKUWDUXJFUXLGWDWEZWCZWFZUXRW
      GZTUPWHUXRWJUHZWKWLUXRUWDUVSUYNUYLWTWMWNVQWOVQUYEAUXCUXTWPMZUYJUXFVSOZAUX
      OUYAWQUXOUXCAUYAUXCUXNWRZWSUYEUYAUPUXTVSOZUYRUXRUYAVIUXRVUAUYAUXRUXSPMUPU
      XSVSOZTPMZUPTUKOZVUAUXRUXSUXRUVSUWDUYKUYMXAZXJUXRVUBUWDUVSVSOZUXNVUFAUXCU
      WDUVSXBWBUXRUVSUWDUXRUVSUYKXJUXRUWDUYMXJXCXDVUCUXRXEUHVUDUXRXKUHUXSTXFXGW
      NUXTXHXIAUXCUYRYJUYSUYGSUDRUVRNUWKQRUJNUXFVSOABCDUXTEUWDFGHIJKLXLXMXNXOUX
      RUYDVDZUWMUWDTUYCSQRZWARZUDRZSUDRZUVRNZUWKQRZUJNZUXFVSVUGUWLVUMUJVUGUWIVU
      LUWKQVUGUVSVUKUVRUXRUVSVUKVOUYDUXRVUKUVSSQRZSUDRZUVSUXRVUJVUOSUDUXRVUJUWD
      VUOUWDQRZUDRVUOUXRVUIVUQUWDUDUXRVUITUXSSQRZTVTRZWARVURVUQUXRVUHVUSTWAUXRV
      UHUYCTTVTRZQRZVUSVUTSUYCQXPXQUXRUYBTQRZTVTRVVAVUSUXRUYBTTUXRUXSXRMZUYBXRM
      UYOUXSXTUTUYPUYPUYQXSUXRVVBVURTVTUXRVVBUYBSSUDRZQRVURTVVDUYBQYAXQUXRUXSSS
      UYOSXRMZUXRYBUHZVVFYCYDWOYEYFWLUXRVURTUXRVVCVVEVURXRMUYOYBUXSSYKYGUYPUYQW
      KUXRUVSUWDSUYLUYNVVFYHYIWLUXRUWDVUOUYNUXRUVSXRMZVVEVUOXRMUYLYBUVSSYKYGWTY
      LWOUXRVVGVVEVUPUVSVOUYLYBUVSSYMYGWMWNVQWOVQVUGAUXCVUHWPMZVUNUXFVSOZAUXOUY
      DWQUXOUXCAUYDUYTWSVUGUYCYNMZVVHVUGUYDUPUYCUKOZVVJUXRUYDVIUXRVVKUYDUXRUYCU
      XRUYBUXRUYBUXRUXSWPMZUYBYNMUXNVVLAUXCUWDUVSYOWBUXSUUBUTUUAUUCUUDWNUYCUUEX
      IUYCUUFUTAUXCVVHYJVUJUVRNUWKQRUJNUXFVSOVVIABCDVUHEUWDFGHIJKLXLUUGXNXOUXRU
      XSVHMUYAUYDUUHVUEUXSUUIUTUUJUXRUXFAFPDYPUXEFMZUXFPMUXOIUXCVVMUXNEUWDFGUUL
      WNZFPUXEDYQYRZUXOAVVMUPUXFVSOVVNABDEUXEFGHIJKUUKUUMUUNZUUOYSUXPUWMPMZUXGP
      MZUWBPMZUXQUXHVDUWNVGAUXOVVQUXAUXRUWLUXRUWLUXRUWIUWKAFPUVRYPZUWSUWJUXOABC
      EFGHABUIZFMZVDZVWACNSUUPZVWAUUQRZVWADNZWARPLVWCVWEVWFVWCVWDVWAVWDPMVWCUUR
      UHVWDUPWHVWCUUSUHVWBVWAVHMZAVWGVWAUXJFEVWAVKGWDUUTUVBAFPVWADIVBUVAYTUVCZE
      UVSUWDFGUVDZFPUVSUVRYQZYRAVVTUXCUWKPMUXOVWHUYTFPUWDUVRYQYRUVLVEUVEYSAUXOV
      VRUXAUXRUXGUXFPVVPVVOYTYSUXAVVSAUXOUWBUVFWSUWMUXGUWBUVGXNUVHUXBVVTUWSUWJU
      XOAVVTUXAVWHWNVWIVWJYRUVIUVJUVKUVMUVNUVOUVPUVQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finite and infinite sums
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c sum_ $. $( Summation sign. $)

  $( Extend class notation to include finite summations.  (An underscore was
     added to the ASCII token in order to facilitate set.mm text searches,
     since "sum" is a commonly used word in comments.) $)
  csu $a class sum_ k e. A B $.

  $( Indicate that "k" is not bound in "A" in the definition of csu. $)
  $( $j free_var_in 'csu' with 'A' 'k'; $)

  ${
    $d k f m n x $.  $d A f m n x $.  $d B f m n x $.
    $( Define the sum of a series with an index set of integers ` A ` . ` k `
       is normally a free variable in ` B ` , i.e. ` B ` can be thought of as
       ` B ( k ) ` .  This definition is the result of a collection of
       discussions over the most general definition for a sum that does not
       need the index set to have a specified ordering.  This definition is in
       two parts, one for finite sums and one for subsets of the upper
       integers.  When summing over a subset of the upper integers, we extend
       the index set to the upper integers by adding zero outside the domain,
       and then sum the set in order, setting the result to the limit of the
       partial sums, if it exists.  This means that conditionally convergent
       sums can be evaluated meaningfully.  For finite sums, we are explicitly
       order-independent, by picking any bijection to a 1-based finite sequence
       and summing in the induced order.  These two methods of summation
       produce the same result on their common region of definition (i.e.
       finite sets of integers) by ~ summo .  Examples:
       ` sum_ k e. { 1 , 2 , 4 } ` ` k ` means ` 1 + 2 + 4 = 7 ` , and
       ` sum_ k e. NN ` ` ( 1 / ( 2 ^ k ) ) = 1 ` means 1/2 + 1/4 + 1/8 + ... =
       1 ( ~ geoihalfsum ).  (Contributed by NM, 11-Dec-2005.)  (Revised by
       Mario Carneiro, 13-Jun-2019.) $)
    df-sum $a |- sum_ k e. A B = ( iota x ( E. m e. ZZ ( A C_ ( ZZ>= ` m ) /\
     seq m ( + , ( n e. ZZ |-> if ( n e. A , [_ n / k ]_ B , 0 ) ) ) ~~> x ) \/
     E. m e. NN E. f ( f : ( 1 ... m ) -1-1-onto-> A /\
       x = ( seq 1 ( + , ( n e. NN |-> [_ ( f ` n ) / k ]_ B ) ) ` m ) ) ) ) $.

    $( A sum is a set.  (Contributed by NM, 11-Dec-2005.)  (Revised by Mario
       Carneiro, 13-Jun-2019.) $)
    sumex $p |- sum_ k e. A B e. _V $=
      ( vm vn vx vf csu cv cuz cfv caddc cz csb cmpt cseq wa wrex c1 cn wss cc0
      wcel cif cli wbr cfz co wf1o wceq wex wo cio cvv df-sum iotaex eqeltri )
      ABCHADIZJKUALEMEIZAUCCUSBNUBUDOURPFIZUEUFQDMRSURUGUHAGIZUIUTURLETCUSVAKBN
      OSPKUJQGUKDTRULZFUMUNFABGCDEUOVBFUPUQ $.

    $d C f m n x $.
    $( Equality theorem for a sum.  (Contributed by NM, 11-Dec-2005.)  (Revised
       by Mario Carneiro, 13-Jun-2019.) $)
    sumeq1 $p |- ( A = B -> sum_ k e. A C = sum_ k e. B C ) $=
      ( vm vn vx vf cv cfv caddc cz wcel cc0 cmpt cseq cli wa wrex cn cuz c1 co
      wceq wss csb cif wbr cfz wf1o wex wo cio csu sseq1 simpl eleq2d mpteq2dva
      ifbid seqeq3d breq1d anbi12d rexbidv f1oeq3 anbi1d exbidv iotabidv df-sum
      orbi12d 3eqtr4g ) ABUDZAEIZUAJZUEZKFLFIZAMZDVOCUFZNUGZOZVLPZGIZQUHZRZELSZ
      UBVLUIUCZAHIZUJZWAVLKFTDVOWFJCUFOUBPJUDZRZHUKZETSZULZGUMBVMUEZKFLVOBMZVQN
      UGZOZVLPZWAQUHZRZELSZWEBWFUJZWHRZHUKZETSZULZGUMACDUNBCDUNVKWLXEGVKWDWTWKX
      DVKWCWSELVKVNWMWBWRABVMUOVKVTWQWAQVKVSWPKVLVKFLVRWOVKVOLMZRZVPWNVQNXGABVO
      VKXFUPUQUSURUTVAVBVCVKWJXCETVKWIXBHVKWGXAWHABWEWFVDVEVFVCVIVGGACHDEFVHGBC
      HDEFVHVJ $.
  $}

  ${
    $d f m n x k $.  $d f m n x A $.  $d f m n x B $.
    nfsum1.1 $e |- F/_ k A $.
    $( Bound-variable hypothesis builder for sum.  (Contributed by NM,
       11-Dec-2005.)  (Revised by Mario Carneiro, 13-Jun-2019.) $)
    nfsum1 $p |- F/_ k sum_ k e. A B $=
      ( vm vn vx vf cv cfv caddc cz csb cc0 cmpt cseq cli c1 cn nfcv csu cuz wa
      wss wcel cif wbr wrex cfz co wf1o wceq wex wo cio nfss nfcri nfcsb1v nfif
      df-sum nfmpt nfseq nfbr nfan nfrex nff1o nffv nfeq2 nfex nfiota nfcxfr
      nfor ) CABCUAAEIZUBJZUDZKFLFIZAUEZCVPBMZNUFZOZVMPZGIZQUGZUCZELUHZRVMUIUJZ
      AHIZUKZWBVMKFSCVPWGJZBMZOZRPZJZULZUCZHUMZESUHZUNZGUOGABHCEFUTWRCGWEWQCWDC
      ELCLTZVOWCCCAVNDCVNTUPCWAWBQCKVTVMCVMTZCKTZCFLVSWSVQCVRNCFADUQCVPBURCNTUS
      VAVBCQTCWBTVCVDVEWPCESCSTZWOCHWHWNCCWFAWGCWGTCWFTDVFCWBWMCVMWLCKWKRCRTXAC
      FSWJXBCWIBURVAVBWTVGVHVDVIVEVLVJVK $.
  $}

  ${
    $d f m n z k $.  $d f m n z x $.  $d f m n z A $.  $d f m n z B $.
    nfsum.1 $e |- F/_ x A $.
    nfsum.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for sum: if ` x ` is (effectively) not
       free in ` A ` and ` B ` , it is not free in ` sum_ k e. A B ` .
       (Contributed by NM, 11-Dec-2005.)  (Revised by Mario Carneiro,
       13-Jun-2019.) $)
    nfsum $p |- F/_ x sum_ k e. A B $=
      ( vm vn vz vf cv cfv caddc cz csb cc0 cli c1 cn nfcv csu cuz wss wcel cif
      cmpt cseq wbr wa wrex cfz co wf1o wceq wex wo cio df-sum nfss nfcri nfcsb
      nfif nfmpt nfseq nfbr nfan nfrex nff1o nffv nfeq2 nfex nfor nfiota nfcxfr
      ) ABCDUABGKZUBLZUCZMHNHKZBUDZDVRCOZPUEZUFZVOUGZIKZQUHZUIZGNUJZRVOUKULZBJK
      ZUMZWDVOMHSDVRWILZCOZUFZRUGZLZUNZUIZJUOZGSUJZUPZIUQIBCJDGHURWTAIWGWSAWFAG
      NANTZVQWEAABVPEAVPTUSAWCWDQAMWBVOAVOTZAMTZAHNWAXAVSAVTPAHBEUTADVRCAVRTFVA
      APTVBVCVDAQTAWDTVEVFVGWRAGSASTZWQAJWJWPAAWHBWIAWITAWHTEVHAWDWOAVOWNAMWMRA
      RTXCAHSWLXDADWKCAWKTFVAVCVDXBVIVJVFVKVGVLVMVN $.
  $}

  ${
    $d f k m n x $.  $d f m n x A $.  $d f m n x B $.  $d f m n x C $.
    $( Equality theorem for sum, when the class expressions ` B ` and ` C ` are
       equal everywhere.  Proved using only Extensionality.  (Contributed by
       Mario Carneiro, 24-Jun-2014.)  (Revised by Mario Carneiro,
       13-Jun-2019.) $)
    sumeq2w $p |- ( A. k B = C -> sum_ k e. A B = sum_ k e. A C ) $=
      ( vm vn vx vf wceq cv cfv caddc cz csb cmpt cseq wa wrex c1 cn wal cuz co
      wss wcel cc0 cif cli wbr cfz wex wo cio csu csbeq2 ifeq1d mpteq2dv breq1d
      wf1o seqeq3d anbi2d rexbidv fveq1d eqeq2d exbidv orbi12d iotabidv 3eqtr4g
      df-sum ) BCIDUAZAEJZUBKUDZLFMFJZAUEZDVMBNZUFUGZOZVKPZGJZUHUIZQZEMRZSVKUJU
      CAHJZUSZVSVKLFTDVMWCKZBNZOZSPZKZIZQZHUKZETRZULZGUMVLLFMVNDVMCNZUFUGZOZVKP
      ZVSUHUIZQZEMRZWDVSVKLFTDWECNZOZSPZKZIZQZHUKZETRZULZGUMABDUNACDUNVJWNXJGVJ
      WBXAWMXIVJWAWTEMVJVTWSVLVJVRWRVSUHVJVQWQLVKVJFMVPWPVJVNVOWOUFDVMBCUOUPUQU
      TURVAVBVJWLXHETVJWKXGHVJWJXFWDVJWIXEVSVJVKWHXDVJWGXCLSVJFTWFXBDWEBCUOUQUT
      VCVDVAVEVBVFVGGABHDEFVIGACHDEFVIVH $.
  $}

  ${
    $d f k m n x A $.  $d f m n x B $.  $d f m n x C $.
    $( Equality theorem for sum, with the class expressions ` B ` and ` C `
       guarded by ` _I ` to be always sets.  (Contributed by Mario Carneiro,
       13-Jun-2019.) $)
    sumeq2ii $p |- ( A. k e. A ( _I ` B ) = ( _I ` C ) ->
                   sum_ k e. A B = sum_ k e. A C ) $=
      ( vm vn vx vf cid cfv wceq cv caddc cz wcel csb cmpt wa cn eqid wral cseq
      cuz wss cc0 cif cli wbr wrex c1 cfz co wf1o wex wo cio simpr simplll nfcv
      nfcsb1v nffv nfeq csbeq1a eqeq12d rspc sylc ifeq1da fvif 3eqtr4g mpteq2dv
      csu fveq2d fveq1d seqfeq breq1d anbi2d rexbidva simplr nnuz syl6eleq f1of
      fvmptex wf ad2antlr ffvelrn sylancom cvv fvex csbfv2g ax-mp elfznn adantl
      3eqtr3g csbeq1d fvmpti syl 3eqtr4d seqfveq eqeq2d pm5.32da exbidv orbi12d
      fveq2 iotabidv df-sum ) BIJZCIJZKZDAUAZAELZUCJZUDZMFNFLZAOZDXMBPZUEUFZQZX
      JUBZGLZUGUHZRZENUIZUJXJUKULZAHLZUMZXSXJMFSDXMYDJZBPZQZUJUBJZKZRZHUNZESUIZ
      UOZGUPXLMFNXNDXMCPZUEUFZQZXJUBZXSUGUHZRZENUIZYEXSXJMFSDYFCPZQZUJUBJZKZRZH
      UNZESUIZUOZGUPABDVKACDVKXIYNUUIGXIYBUUAYMUUHXIYAYTENXIXJNOZRZXTYSXLUUKXRY
      RXSUGUUKMGXQYQXJXIUUJUQUUKXSXKOZRZXSFNXPIJZQZJXSFNYPIJZQZJXSXQJXSYQJUUMXS
      UUOUUQUUMFNUUNUUPUUMXNXOIJZUEIJZUFXNYOIJZUUSUFUUNUUPUUMXNUURUUTUUSUUMXNRX
      NXIUURUUTKZUUMXNUQXIUUJUULXNURXHUVADXMADUURUUTDXOIDIUSZDXMBUTVADYOIUVBDXM
      CUTVAVBDLZXMKZXFUURXGUUTUVDBXOIDXMBVCVLUVDCYOIDXMCVCVLVDVEVFVGXNXOUEIVHXN
      YOUEIVHVIVJVMFNXPXSXQUUOXQTUUOTWBFNYPXSYQUUQYQTUUQTWBVIVNVOVPVQXIYLUUGESX
      IXJSOZRZYKUUFHUVFYEYJUUEUVFYERZYIUUDXSUVGMGYHUUCUJXJUVGXJSUJUCJXIUVEYEVRV
      SVTUVGXSYCOZRZDXSYDJZBPZIJZDUVJCPZIJZXSYHJZXSUUCJZUVIDUVJXFPZDUVJXGPZUVLU
      VNUVIUVJAOZXIUVQUVRKZUVGUVHYCAYDWCZUVSYEUWAUVFUVHYCAYDWAWDYCAXSYDWEWFXIUV
      EYEUVHURXHUVTDUVJADUVQUVRDUVJXFUTDUVJXGUTVBUVCUVJKXFUVQXGUVRDUVJXFVCDUVJX
      GVCVDVEVFUVJWGOZUVQUVLKXSYDWHZDUVJBWGIWIWJUWBUVRUVNKUWCDUVJCWGIWIWJWMUVIX
      SSOZUVOUVLKUVHUWDUVGXSXJWKWLZFXSYGUVKSYHXMXSKZDYFUVJBXMXSYDXCZWNYHTWOWPUV
      IUWDUVPUVNKUWEFXSUUBUVMSUUCUWFDYFUVJCUWGWNUUCTWOWPWQWRWSWTXAVQXBXDGABHDEF
      XEGACHDEFXEVI $.
  $}

  ${
    $d k A $.
    $( Equality theorem for sum.  (Contributed by NM, 11-Dec-2005.)  (Revised
       by Mario Carneiro, 13-Jul-2013.) $)
    sumeq2 $p |- ( A. k e. A B = C -> sum_ k e. A B = sum_ k e. A C ) $=
      ( wceq wral cid cfv csu fveq2 ralimi sumeq2ii syl ) BCEZDAFBGHCGHEZDAFABD
      IACDIENODABCGJKABCDLM $.
  $}

  ${
    $d f j k m n x $.  $d f m n x A $.  $d f m n x B $.  $d f m n x C $.
    cbvsum.1 $e |- ( j = k -> B = C ) $.
    ${
      cbvsum.2 $e |- F/_ k A $.
      cbvsum.3 $e |- F/_ j A $.
      cbvsum.4 $e |- F/_ k B $.
      cbvsum.5 $e |- F/_ j C $.
      $( Change bound variable in a sum.  (Contributed by NM, 11-Dec-2005.)
         (Revised by Mario Carneiro, 13-Jun-2019.) $)
      cbvsum $p |- sum_ j e. A B = sum_ k e. A C $=
        ( vm vn vx vf cv caddc cz cn wceq wtru cuz cfv wss wcel csb cc0 cif cli
        cmpt cseq wbr wa wrex c1 cfz co wf1o wex wo cio csu cbvcsb a1i mpteq2dv
        ifeq1d seqeq3d breq1i anbi2i rexbii fveq1i eqeq2i exbii orbi12i iotabii
        trud df-sum 3eqtr4i ) AKOZUAUBUCZPLQLOZAUDZDVTBUEZUFUGZUIZVRUJZMOZUHUKZ
        ULZKQUMZUNVRUOUPANOZUQZWFVRPLRDVTWJUBZBUEZUIZUNUJZUBZSZULZNURZKRUMZUSZM
        UTVSPLQWAEVTCUEZUFUGZUIZVRUJZWFUHUKZULZKQUMZWKWFVRPLREWLCUEZUIZUNUJZUBZ
        SZULZNURZKRUMZUSZMUTABDVAACEVAXAXQMWIXHWTXPWHXGKQWGXFVSWEXEWFUHWEXESTWD
        XDPVRTLQWCXCTWAWBXBUFWBXBSTDEVTBCIJFVBVCVEVDVFVOVGVHVIWSXOKRWRXNNWQXMWK
        WPXLWFVRWOXKWOXKSTWNXJPUNTLRWMXIWMXISTDEWLBCIJFVBVCVDVFVOVJVKVHVLVIVMVN
        MABNDKLVPMACNEKLVPVQ $.
    $}

    $d A j k $.  $d B k $.  $d C j $.
    $( Change bound variable in a sum.  (Contributed by NM, 11-Dec-2005.)
       (Revised by Mario Carneiro, 13-Jul-2013.) $)
    cbvsumv $p |- sum_ j e. A B = sum_ k e. A C $=
      ( nfcv cbvsum ) ABCDEFEAGDAGEBGDCGH $.
  $}

  ${
    $d j k A $.
    cbvsumi.1 $e |- F/_ k B $.
    cbvsumi.2 $e |- F/_ j C $.
    cbvsumi.3 $e |- ( j = k -> B = C ) $.
    $( Change bound variable in a sum.  (Contributed by NM, 11-Dec-2005.) $)
    cbvsumi $p |- sum_ j e. A B = sum_ k e. A C $=
      ( nfcv cbvsum ) ABCDEHEAIDAIFGJ $.
  $}

  ${
    $d k A $.  $d k B $.
    sumeq1i.1 $e |- A = B $.
    $( Equality inference for sum.  (Contributed by NM, 2-Jan-2006.) $)
    sumeq1i $p |- sum_ k e. A C = sum_ k e. B C $=
      ( wceq csu sumeq1 ax-mp ) ABFACDGBCDGFEABCDHI $.
  $}

  ${
    $d k A $.
    sumeq2i.1 $e |- ( k e. A -> B = C ) $.
    $( Equality inference for sum.  (Contributed by NM, 3-Dec-2005.) $)
    sumeq2i $p |- sum_ k e. A B = sum_ k e. A C $=
      ( wceq csu sumeq2 mprg ) BCFABDGACDGFDAABCDHEI $.
  $}

  ${
    $d k A $.  $d k B $.
    sumeq12i.1 $e |- A = B $.
    sumeq12i.2 $e |- ( k e. A -> C = D ) $.
    $( Equality inference for sum.  (Contributed by FL, 10-Dec-2006.) $)
    sumeq12i $p |- sum_ k e. A C = sum_ k e. B D $=
      ( csu sumeq2i sumeq1i eqtri ) ACEHADEHBDEHACDEGIABDEFJK $.
  $}

  ${
    $d k A $.  $d k B $.
    sumeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for sum.  (Contributed by NM, 1-Nov-2005.) $)
    sumeq1d $p |- ( ph -> sum_ k e. A C = sum_ k e. B C ) $=
      ( wceq csu sumeq1 syl ) ABCGBDEHCDEHGFBCDEIJ $.
  $}

  ${
    $d k A $.
    sumeq2d.1 $e |- ( ph -> A. k e. A B = C ) $.
    $( Equality deduction for sum.  Note that unlike ~ sumeq2dv , ` k ` may
       occur in ` ph ` .  (Contributed by NM, 1-Nov-2005.) $)
    sumeq2d $p |- ( ph -> sum_ k e. A B = sum_ k e. A C ) $=
      ( wceq wral csu sumeq2 syl ) ACDGEBHBCEIBDEIGFBCDEJK $.
  $}

  ${
    $d k A $.  $d k ph $.
    sumeq2dv.1 $e |- ( ( ph /\ k e. A ) -> B = C ) $.
    $( Equality deduction for sum.  (Contributed by NM, 3-Jan-2006.)  (Revised
       by Mario Carneiro, 31-Jan-2014.) $)
    sumeq2dv $p |- ( ph -> sum_ k e. A B = sum_ k e. A C ) $=
      ( wceq ralrimiva sumeq2d ) ABCDEACDGEBFHI $.
  $}

  ${
    $d A k $.  $d k ph $.
    sumeq2ad.1 $e |- ( ph -> B = C ) $.
    $( Equality deduction for sum.  (Contributed by Glauco Siliprandi,
       5-Apr-2020.) $)
    sumeq2ad $p |- ( ph -> sum_ k e. A B = sum_ k e. A C ) $=
      ( wceq ralrimivw sumeq2d ) ABCDEACDGEBFHI $.
  $}

  ${
    $d k A $.  $d k ph $.
    sumeq2sdv.1 $e |- ( ph -> B = C ) $.
    $( Equality deduction for sum.  (Contributed by NM, 3-Jan-2006.) $)
    sumeq2sdv $p |- ( ph -> sum_ k e. A B = sum_ k e. A C ) $=
      ( wceq cv wcel adantr sumeq2dv ) ABCDEACDGEHBIFJK $.
  $}

  ${
    $d j k A $.  $d k B $.  $d j k ph $.
    2sumeq2dv.1 $e |- ( ( ph /\ j e. A /\ k e. B ) -> C = D ) $.
    $( Equality deduction for double sum.  (Contributed by NM, 3-Jan-2006.)
       (Revised by Mario Carneiro, 31-Jan-2014.) $)
    2sumeq2dv $p |- ( ph ->
           sum_ j e. A sum_ k e. B C = sum_ j e. A sum_ k e. B D ) $=
      ( csu cv wcel wa wceq 3expa sumeq2dv ) ABCDGICEGIFAFJBKZLCDEGAPGJCKDEMHNO
      O $.
  $}

  ${
    $d k A $.  $d k B $.  $d k ph $.
    sumeq12dv.1 $e |- ( ph -> A = B ) $.
    sumeq12dv.2 $e |- ( ( ph /\ k e. A ) -> C = D ) $.
    $( Equality deduction for sum.  (Contributed by NM, 1-Dec-2005.) $)
    sumeq12dv $p |- ( ph -> sum_ k e. A C = sum_ k e. B D ) $=
      ( csu sumeq2dv sumeq1d eqtrd ) ABDFIBEFICEFIABDEFHJABCEFGKL $.
  $}

  ${
    $d k A $.  $d k B $.  $d k ph $.
    sumeq12rdv.1 $e |- ( ph -> A = B ) $.
    sumeq12rdv.2 $e |- ( ( ph /\ k e. B ) -> C = D ) $.
    $( Equality deduction for sum.  (Contributed by NM, 1-Dec-2005.) $)
    sumeq12rdv $p |- ( ph -> sum_ k e. A C = sum_ k e. B D ) $=
      ( csu sumeq1d sumeq2dv eqtrd ) ABDFICDFICEFIABCDFGJACDEFHKL $.
  $}

  ${
    $d k A $.
    $( The second class argument to a sum can be chosen so that it is always a
       set.  (Contributed by NM, 11-Dec-2005.)  (Revised by Mario Carneiro,
       13-Jul-2013.) $)
    sum2id $p |- sum_ k e. A B = sum_ k e. A ( _I ` B ) $=
      ( cid cfv wceq csu sumeq2ii cv wcel cvv fvex fvi ax-mp eqcomi a1i mprg )
      BDEZRDEZFZABCGARCGFCAABRCHTCIAJSRRKJSRFBDLRKMNOPQ $.
  $}

  ${
    $d j k A $.  $d j B $.
    $( A lemma to facilitate conversions from the function form to the
       class-variable form of a sum.  (Contributed by Mario Carneiro,
       12-Aug-2013.)  (Revised by Mario Carneiro, 23-Apr-2014.) $)
    sumfc $p |- sum_ j e. A ( ( k e. A |-> B ) ` j ) = sum_ k e. A B $=
      ( cv cmpt cfv csu eqid fvmpt2i sumeq2i nffvmpt1 nfcv fveq2 cbvsumi sum2id
      cid 3eqtr4i ) ADEZDABFZGZDHABQGZDHACEZTGZCHABDHAUAUBDDABTTIJKAUDUACDDABUC
      LCUAMUCSTNOABDPR $.
  $}

  ${
    $d f A $.
    $( A lemma for working with finite sums.  (Contributed by Mario Carneiro,
       22-Apr-2014.) $)
    fz1f1o $p |- ( A e. Fin -> ( A = (/) \/ ( ( # ` A ) e. NN /\
                   E. f f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) ) ) $=
      ( cfn wcel chash cfv cc0 wceq cn wo c0 c1 cfz co cv wf1o wex sylib mpbid
      wa cn0 hashcl orcomd hasheq0 cen wbr hashfz1 syl wb fzfi hashen mpan bren
      elnn0 biantrud orbi12d ) ACDZAEFZGHZURIDZJAKHZUTLURMNZABOPBQZTZJUQUTUSUQU
      RUADZUTUSJAUBZURUNRUCUQUSVAUTVDACUDUQVCUTUQVBAUEUFZVCUQVBEFURHZVGUQVEVHVF
      URUGUHVBCDUQVHVGUILURUJVBAUKULSVBABUMRUOUPS $.
  $}

  ${
    $d f g i j k m n x y A $.  $d f g j k m n x y F $.  $d g i j k m n x y G $.
    $d i x H $.  $d i j k m n x y K $.  $d k m n N $.  $d g i j k m n y ph $.
    $d f j m n x y B $.  $d i j k m n x y M $.
    summo.1 $e |- F = ( k e. ZZ |-> if ( k e. A , B , 0 ) ) $.
    summo.2 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    ${
      sumrb.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
      $( Lemma for ~ sumrb .  (Contributed by Mario Carneiro, 12-Aug-2013.) $)
      sumrblem $p |- ( ( ph /\ A C_ ( ZZ>= ` N ) ) ->
                     ( seq M ( + , F ) |` ( ZZ>= ` N ) ) = seq N ( + , F ) ) $=
        ( cuz cfv cc cc0 wcel co wceq adantl adantr cz vn wss caddc addid2 0cnd
        wa cv wf cif iftrue eqeltrd ex wn iffalse 0cn syl6eqel pm2.61d1 eluzelz
        fmptd syl ffvelrnd c1 cmin cfz cdif elfzelz simplr zcnd ad2antrr ax-1cn
        npcan sylancl fveq2d sseqtr4d fznuz ssneldd eldifd eqeq1d eldifi eldifn
        fveq2 fvmpt2 syl2anc eqtrd vtoclga seqid ) ABGKLZUBZUFZUAUCMEFGNUAUGZMO
        NWJUCPWJQWIWJUDRWIUEAGFKLOZWHJSWITMGEATMEUHWHADTDUGZBOZCNUIZMEAWNMOZWLT
        OZAWMWOAWMWOAWMUFWNCMWMWNCQAWMCNUJRIUKULWMUMZWNNMWMCNUNZUOUPUQSHUSSAGTO
        ZWHAWKWSJFGURUTZSVAWIWJFGVBVCPZVDPOZUFZWJTBVEZOWJELZNQZXCWJTBXBWJTOWIWJ
        FXAVFRXCBXAVBUCPZKLZWJXCBWGXHAWHXBVGXCXGGKXCGMOZVBMOXGGQAXIWHXBAGWTVHVI
        VJGVBVKVLVMVNXBWJXHOUMWIWJFXAVORVPVQWLELZNQXFDWJXDWLWJQXJXENWLWJEWAVRWL
        XDOZXJWNNXKWPWOXJWNQWLTBVSXKWNNMXKWQWNNQWLTBVTWRUTZUOUPDTWNMEHWBWCXLWDW
        EUTWF $.

      fsumcvg.4 $e |- ( ph -> A C_ ( M ... N ) ) $.
      $( The sequence of partial sums of a finite sum converges to the whole
         sum.  (Contributed by Mario Carneiro, 20-Apr-2014.) $)
      fsumcvg $p |- ( ph -> seq M ( + , F ) ~~> ( seq M ( + , F ) ` N ) ) $=
        ( caddc cfv wcel cz syl cc wa cc0 wceq vn vm cseq cvv cuz eluzelz seqex
        eqid a1i eluzel2 cv cif iftrue adantl eqeltrd iffalse syl6eqel pm2.61d1
        ex wn 0cn fvmpt2 syl2anr adantr serf ffvelrnd co addid1 simpr c1 elfzuz
        cfz cdif sseld fznuz syl6 con2d imp eldifd eqeq1d eldifi eldifn syl2anc
        fveq2 eqtrd vtoclga sylan2 adantlr seqid2 eqcomd climconst ) AGLEFUCZMZ
        UAWLGUDGUEMZWNUHAGFUEMZNZGONJFGUFPWLUDNALEFUGUIAWOQGWLADEFWOWOUHAWPFONJ
        FGUJPADUKZWONZRWQEMZWQBNZCSULZQWRWQONZXAQNZWSXATZAFWQUFAWTXCAWTXCAWTRXA
        CQWTXACTAWTCSUMUNIUOUSWTUTZXASQWTCSUPZVAUQURZDOXAQEHVBZVCAXCWRXGVDUOVEJ
        VFZAUAUKZWNNZRZWMXJWLMXLUBLQEGFXJSUBUKZQNXMSLVGXMTXLXMVHUNAWPXKJVDAXKVI
        AWMQNXKXIVDAXMGVJLVGZXJVLVGNZXMEMZSTZXKXOAXMXNUEMNZXQXMXNXJVKAXRRZXMOBV
        MZNXQXSXMOBXRXMONAXNXMUFUNAXRXMBNZUTAYAXRAYAXMFGVLVGZNXRUTABYBXMKVNXMFG
        VOVPVQVRVSWSSTXQDXMXTWQXMTWSXPSWQXMEWDVTWQXTNZWSXASYCXBXCXDWQOBWAYCXASQ
        YCXEXASTWQOBWBXFPZVAUQXHWCYDWEWFPWGWHWIWJWK $.
    $}

    ${
      sumrb.4 $e |- ( ph -> M e. ZZ ) $.
      sumrb.5 $e |- ( ph -> N e. ZZ ) $.
      sumrb.6 $e |- ( ph -> A C_ ( ZZ>= ` M ) ) $.
      sumrb.7 $e |- ( ph -> A C_ ( ZZ>= ` N ) ) $.
      $( Rebase the starting point of a sum.  (Contributed by Mario Carneiro,
         14-Jul-2013.)  (Revised by Mario Carneiro, 9-Apr-2014.) $)
      sumrb $p |- ( ph ->
                    ( seq M ( + , F ) ~~> C <-> seq N ( + , F ) ~~> C ) ) $=
        ( wcel caddc cli wbr wb cvv cuz cfv cseq wa cres adantr climres sylancl
        cz seqex wss wceq cv adantlr simpr sumrblem mpidan breq1d bitr3d uztric
        cc wo syl2anc mpjaodan ) AHGUAUBZOZPFGUCZDQRZPFHUCZDQRZSGHUAUBZOZAVFUDZ
        VGVKUEZDQRZVHVJVMHUIOZVGTOVOVHSAVPVFLUFPFGUJDVGHTUGUHVMVNVIDQAVFBVKUKVN
        VIULNVMBCEFGHIAEUMBOZCVAOZVFJUNAVFUOUPUQURUSAVLUDZVIVEUEZDQRZVHVJVSVTVG
        DQAVLBVEUKVTVGULMVSBCEFHGIAVQVRVLJUNAVLUOUPUQURVSGUIOZVITOWAVJSAWBVLKUF
        PFHUJDVIGTUGUHUSAWBVPVFVLVBKLGHUTVCVD $.
    $}

    summo.3 $e |- G = ( n e. NN |-> [_ ( f ` n ) / k ]_ B ) $.
    ${
      summolem3.4 $e |- H = ( n e. NN |-> [_ ( K ` n ) / k ]_ B ) $.
      summolem3.5 $e |- ( ph -> ( M e. NN /\ N e. NN ) ) $.
      summolem3.6 $e |- ( ph -> f : ( 1 ... M ) -1-1-onto-> A ) $.
      summolem3.7 $e |- ( ph -> K : ( 1 ... N ) -1-1-onto-> A ) $.
      $( Lemma for ~ summo .  (Contributed by Mario Carneiro, 29-Mar-2014.) $)
      summolem3 $p |- ( ph ->
                        ( seq 1 ( + , G ) ` M ) = ( seq 1 ( + , H ) ` N ) ) $=
        ( wcel vm vj vy vi caddc c1 cseq cfv cc cv ccnv ccom wa co addcl adantl
        wceq addcom w3a addass cuz simpld nnuz syl6eleq wss ssid a1i cfz f1ocnv
        cn wf1o syl f1oco syl2anc wb chash cen wbr ovex f1oen fzfi hashen mp2an
        cfn sylibr cn0 simprd hashfz1 3syl 3eqtr3rd oveq2d f1oeq2 mpbird elfznn
        nnnn0 csb wral wf f1of ffvelrnda ralrimiva adantr nfcsb1v nfel1 csbeq1a
        eleq1d rspc sylc fveq2 csbeq1d fvmptg eqeltrd cid fvco3 sylan f1ocnvfv2
        fveq2d eqtr2d fvmpti 3eqtr4d seqf1o eqtr3d ) AKUEIUFUGZUHKUEHUFUGUHLYCU
        HAUAUBUCUIUEUIUDDUJZUKZJULZHIUFKUAUJZUITZUBUJZUITZUMZYGYIUEUNZUITAYGYIU
        OUPYKYLYIYGUEUNUQAYGYIURUPYHYJUCUJZUITUSYLYMUEUNYGYIYMUEUNUEUNUQAYGYIYM
        UTUPAKVJUFVAUHAKVJTZLVJTZQVBZVCVDUIUIVEAUIVFVGAUFKVHUNZYQYFVKZUFLVHUNZY
        QYFVKZABYQYEVKZYSBJVKZYTAYQBYDVKZUUARYQBYDVIVLSYSBYQYEJVMVNZAYQYSUQZYRY
        TVOAKLUFVHAYSVPUHZYQVPUHZLKAYSYQVQVRZUUFUUGUQZAYTUUHUUDYSYQYFUFLVHVSVTV
        LYSWDTYQWDTUUIUUHVOUFLWAUFKWAYSYQWBWCWEAYOLWFTUUFLUQAYNYOQWGLWOLWHWIAYN
        KWFTUUGKUQYPKWOKWHWIWJZWKZYQYSYQYFWLVLWMZAYGYQTZUMZYGHUHZEYGYDUHZCWPZUI
        UUNYGVJTZUUQUITZUUOUUQUQUUMUURAYGKWNUPUUNUUPBTCUITZEBWQZUUSAYQBYGYDAUUC
        YQBYDWRRYQBYDWSVLWTAUVAUUMAUUTEBNXAXBUUTUUSEUUPBEUUQUIEUUPCXCXDEUJUUPUQ
        CUUQUIEUUPCXEXFXGXHZFYGEFUJZYDUHZCWPZUUQVJUIHUVCYGUQEUVDUUPCUVCYGYDXIXJ
        OXKVNUVBXLAUDUJZYQTZUMZEUVFJUHZCWPZXMUHZEUVFYFUHZYDUHZCWPZXMUHZUVFIUHZU
        VLHUHZUVHUVJUVNXMUVHEUVIUVMCUVHUVMUVIYEUHZYDUHZUVIUVHUVLUVRYDAYQBJWRZUV
        GUVLUVRUQAYQBJVKZUVTAUWAUUBSAUUEUWAUUBVOUUKYQYSBJWLVLWMYQBJWSVLZYQBUVFY
        EJXNXOXQUVHUUCUVIBTUVSUVIUQAUUCUVGRXBAYQBUVFJUWBWTYQBUVIYDXPVNXRXJXQUVH
        UVFVJTZUVPUVKUQUVGUWCAUVFKWNUPFUVFEUVCJUHZCWPUVJVJIUVCUVFUQEUWDUVICUVCU
        VFJXIXJPXSVLUVHUVLYQTUVLVJTUVQUVOUQAYQYQUVFYFAYRYQYQYFWRUULYQYQYFWSVLWT
        UVLKWNFUVLUVEUVNVJHUVCUVLUQEUVDUVMCUVCUVLYDXIXJOXSWIXTYAAKLYCUUJXQYB $.
    $}

    $d x ph $.
    ${
      summolem2.4 $e |- H = ( n e. NN |-> [_ ( K ` n ) / k ]_ B ) $.
      summolem2.5 $e |- ( ph -> N e. NN ) $.
      summolem2.6 $e |- ( ph -> M e. ZZ ) $.
      summolem2.7 $e |- ( ph -> A C_ ( ZZ>= ` M ) ) $.
      summolem2.8 $e |- ( ph -> f : ( 1 ... N ) -1-1-onto-> A ) $.
      summolem2.9 $e |- ( ph -> K Isom < , < ( ( 1 ... ( # ` A ) ) , A ) ) $.
      $( Lemma for ~ summo .  (Contributed by Mario Carneiro, 3-Apr-2014.)
         (Revised by Mario Carneiro, 20-Apr-2014.) $)
      summolem2a $p |- ( ph -> seq M ( + , F ) ~~> ( seq 1 ( + , G ) ` N ) ) $=
        ( vm vx caddc cseq cfv c1 cli cuz cfz co wf1o wf clt wiso chash wceq wb
        cen wbr cv ovex f1oen syl wcel fzfid ensymd enfii syl2anc hashen mpbird
        cfn cn cn0 nnnn0 hashfz1 3syl eqtr3d oveq2d isoeq4 isof1o f1of syl6eleq
        mpbid nnuz eluzfz2 ffvelrnd sseldd wa sselda cle f1ocnvfv2 sylan f1ocnv
        ccnv ffvelrnda elfzle2 cxr adantr cr fzssuz cz uzssz zssre sstri ressxr
        wss syl6ss leisorel syl122anc eqbrtrrd eluzelz eluz elfzuzb sylanbrc ex
        a1i ssrdv fsumcvg cc cc0 addid2 adantl cif 0cn syl6eqel elfzelz weq csb
        fveq2 wi nfv nfcsb1v nfcv nfif eleq1 csbeq1a ifbieq1d cmpt fvmptg addcl
        addid1 eleqtrrd iftrue eqeltrd wn iffalse pm2.61d1 fmptd ffvelrn syl2an
        0cnd cdif eqeq1d eldifi eldifn fvmpt2 eqtrd vtoclga iftrued nfim eleq1d
        nfel1 fvex imbi2d vtoclf csbeq1 cbvmpt elfznn eqeltrrd csbeq1d 3eqtr4rd
        eqtri seqcoll jca summolem3 eqtr4d breqtrd ) AUDGKUEZLJUFZUVSUFZLUDHUGU
        EUFZUHABCEGKUVTMNABKUIUFZUVTSAUGLUJUKZBLJAUWDBJULZUWDBJUMAUWDBUNUNJUOZU
        WEAUGBUPUFZUJUKZBUNUNJUOZUWFUAAUWHUWDUQUWIUWFURAUWGLUGUJAUWDUPUFZUWGLAU
        WJUWGUQZUWDBUSUTZAUWDBDVAZULUWLTUWDBUWMUGLUJVBVCVDZAUWDVLVEZBVLVEZUWKUW
        LURAUGLVFZAUWOBUWDUSUTUWPUWQAUWDBUWNVGBUWDVHVIUWDBVJVIVKALVMVEZLVNVEUWJ
        LUQQLVOLVPVQVRVSZUWHBUWDUNUNJVTVDWDZUWDBUNUNJWAVDZUWDBJWBVDALUGUIUFZVEL
        UWDVEZALVMUXBQWEWCUGLWFVDZWGWHZAFBKUVTUJUKZAFVAZBVEZUXGUXFVEZAUXHWIZUXG
        UWCVEZUVTUXGUIUFVEZUXIABUWCUXGSWJZUXJUXLUXGUVTWKUTZUXJUXGJWOZUFZJUFZUXG
        UVTWKAUWEUXHUXQUXGUQUXAUWDBUXGJWLWMUXJUXPLWKUTZUXQUVTWKUTZUXJUXPUWDVEZU
        XRABUWDUXGUXOAUWEBUWDUXOULBUWDUXOUMUXAUWDBJWNBUWDUXOWBVQWPZUXPUGLWQVDUX
        JUWFUWDWRXGZBWRXGUXTUXCUXRUXSURAUWFUXHUWTWSUYBUXJUWDWTWRUWDUXBWTUGLXAUX
        BXBWTUGXCXDXEXEXFXEXQUXJBWTWRUXJBUWCWTABUWCXGZUXHSWSUWCXBWTKXCXDXEXHXFX
        HUYAAUXCUXHUXDWSUWDBUXPLJXIXJWDXKUXJUXGXBVEZUVTXBVEZUXLUXNURUXJUXKUYDUX
        MKUXGXLVDAUYEUXHAUVTUWCVEUYEUXEKUVTXLVDWSUXGUVTXMVIVKUXGKUVTXNXOXPXRXSA
        UWALUDIUGUEUFUWBABUDXTUBUCGJIKLYAUBVAZXTVEZYAUYFUDUKUYFUQAUYFYBYCUYGUYF
        YAUDUKUYFUQAUYFUUBYCUYGUCVAZXTVEWIUYFUYHUDUKXTVEAUYFUYHUUAYCAUULUAALUWD
        UWHUXDUWSUUCSAXBXTGUMUYFXBVEUYFGUFZXTVEUYFKUWGJUFZUJUKZVEAEXBEVAZBVEZCY
        AYDZXTGAUYNXTVEZUYLXBVEZAUYMUYOAUYMUYOAUYMWIUYNCXTUYMUYNCUQAUYMCYAUUDYC
        NUUEXPUYMUUFZUYNYAXTUYMCYAUUGZYEYFUUHZWSMUUIUYFKUYJYGXBXTUYFGUUJUUKUYFU
        YKBUUMZVEUYIYAUQZAUYLGUFZYAUQVUAEUYFUYTEUBYHVUBUYIYAUYLUYFGYJUUNUYLUYTV
        EZVUBUYNYAVUCUYPUYOVUBUYNUQVUCUYLUYKVEUYPUYLUYKBUUOUYLKUYJYGVDVUCUYNYAX
        TVUCUYQUYNYAUQUYLUYKBUUPUYRVDZYEYFEXBUYNXTGMUUQVIVUDUURUUSYCAUYHUWHVEZW
        IZUYHJUFZBVEZEVUGCYIZYAYDZVUIVUGGUFZUYHIUFZVUFVUHVUIYAAUWHBUYHJAUWIUWHB
        JULUWHBJUMUAUWHBUNUNJWAUWHBJWBVQWPZUUTZVUFVUGXBVEZVUJXTVEZVUKVUJUQVUFVU
        GUWCVEVUOVUFBUWCVUGAUYCVUESWSVUMWHKVUGXLVDAVUPVUEAUYOYKAVUPYKEVUGAVUPEA
        EYLEVUJXTVUHEVUIYAVUHEYLEVUGCYMEYAYNZYOUVCUVAUYHJUVDUYLVUGUQZUYOVUPAVUR
        UYNVUJXTVURUYMVUHCVUIYAUYLVUGBYPEVUGCYQYRUVBUVEUYSUVFWSZFVUGUXHEUXGCYIZ
        YAYDZVUJXBXTGUXGVUGUQUXHVUHVUTVUIYAUXGVUGBYPEUXGVUGCUVGYRGEXBUYNYSFXBVV
        AYSMEFXBUYNVVAFUYNYNUXHEVUTYAUXHEYLEUXGCYMVUQYOEFYHUYMUXHCVUTYAUYLUXGBY
        PEUXGCYQYRUVHUVMYTVIVUFUYHVMVEZVUIXTVEVULVUIUQVUEVVBAUYHUWGUVIYCVUFVUJV
        UIXTVUNVUSUVJFUYHEUXGJUFZCYIVUIVMXTIFUCYHEVVCVUGCUXGUYHJYJUVKPYTVIUVLUV
        NABCDEFGHIJLLMNOPAUWRUWRQQUVOTUXAUVPUVQUVR $.
    $}

    $d f ph $.
    $( Lemma for ~ summo .  (Contributed by Mario Carneiro, 3-Apr-2014.) $)
    summolem2 $p |- ( ( ph /\
       E. m e. ZZ ( A C_ ( ZZ>= ` m ) /\ seq m ( + , F ) ~~> x ) ) ->
     ( E. m e. NN E. f ( f : ( 1 ... m ) -1-1-onto-> A /\
       y = ( seq 1 ( + , G ) ` m ) ) -> x = y ) ) $=
      ( cv cfv wa cz wcel clt vj vg cuz wss caddc cseq cli wbr wrex c1 cfz wf1o
      co wceq wex cn wi fveq2 sseq2d seqeq1 breq1d anbi12d cbvrexv simplrr wiso
      chash wor cfn simplrl uzssz zssre sstri syl6ss ltso soss mpisyl fzfi ovex
      cr cen f1oen ad2antll ensymd enfii sylancr fz1iso syl2anc cmpt cc simplll
      csb sylan eqid simprll simpllr simprlr simprr summolem2a expr exlimdv mpd
      climuni anassrs eqeq2 syl5ibrcom expimpd rexlimdva r19.29an sylan2b ) DHO
      ZUCPZUDZUEJXJUFZBOZUGUHZQZHRUIADUAOZUCPZUDZUEJXQUFZXNUGUHZQZUARUIUJXJUKUM
      ZDFOZULZCOZXJUEKUJUFPZUNZQZFUOZHUPUIXNYFUNZUQZXPYBHUARXJXQUNZXLXSXOYAYMXK
      XRDXJXQUCURUSYMXMXTXNUGUEJXJXQUTVAVBVCAYBYLUARAXQRSZQZYBQZYJYKHUPYPXJUPSZ
      QZYIYKFYRYEYHYKYRYEQYKYHXNYGUNZYPYQYEYSYPYQYEQZQZYAXTYGUGUHZYSYOXSYAYTVDU
      UAUJDVFPUKUMDTTUBOZVEZUBUOZUUBUUADTVGZDVHSZUUEUUADVSUDVSTVGUUFUUADXRVSYOX
      SYAYTVIXRRVSXQVJVKVLVMVNDVSTVOVPUUAYCVHSDYCVTUHUUGUJXJVQUUAYCDYEYCDVTUHYP
      YQYCDYDUJXJUKVRWAWBWCDYCWDWEDTUBWFWGUUAUUDUUBUBYPYTUUDUUBYPYTUUDQZQZDEFGI
      JKIUPGIOUUCPEWKWHZUUCXQXJLUUIAGODSEWISAYNYBUUHWJMWLNUUJWMYPYQYEUUDWNAYNYB
      UUHWOYOXSYAUUHVIYPYQYEUUDWPYPYTUUDWQWRWSWTXAXNYGXTXBWGXCYFYGXNXDXEXFWTXGX
      HXI $.

    $( A sum has at most one limit.  (Contributed by Mario Carneiro,
       3-Apr-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    summo $p |- ( ph -> E* x
        ( E. m e. ZZ ( A C_ ( ZZ>= ` m ) /\ seq m ( + , F ) ~~> x ) \/
          E. m e. NN E. f ( f : ( 1 ... m ) -1-1-onto-> A /\
                            x = ( seq 1 ( + , G ) ` m ) ) ) ) $=
      ( vy cv cfv wa cz wrex cn vg vj cuz wss caddc cseq cli wbr c1 cfz co wf1o
      wceq wex wo weq wal wmo fveq2 sseq2d seqeq1 breq1d anbi12d cbvrexv reeanv
      wi wcel simprlr sylan simplrl simplrr simprll simprrl sumrb mpbid simprrr
      cc simpll climuni syl2anc rexlimdvv syl5bir expdimp syl5bi summolem2 jaod
      exp31 equcom syl6ib impancom csb wb oveq2 f1oeq2 syl eqeq2d exbidv f1oeq1
      cmpt fveq1 csbeq1d mpteq2dv syl5eq seqeq3d fveq1d cbvexv syl6bb eeanv an4
      cbvmptv simplr simprl simprr summolem3 eqeq12 syl5ibrcom expimpd exlimdvv
      eqtri rexlimdvva jaodan alrimivv breq2 anbi2d rexbidv orbi12d mo4 sylibr
      eqeq1 ) ACGOZUCPZUDZUEIYJUFZBOZUGUHZQZGRSZUIYJUJUKZCEOZULZYNYJUEJUIUFZPZU
      MZQZEUNZGTSZUOZYLYMNOZUGUHZQZGRSZYTUUHUUBUMZQZEUNZGTSZUOZQBNUPZVFZNUQBUQU
      UGBURAUURBNAUUGUUPUUQAYQUUPUUQVFUUFAYQQZUUKUUQUUOUUKCHOZUCPZUDZUEIUUTUFZU
      UHUGUHZQZHRSZUUSUUQUUJUVEGHRGHUPZYLUVBUUIUVDUVGYKUVACYJUUTUCUSUTUVGYMUVCU
      UHUGUEIYJUUTVAVBVCVDAYQUVFUUQYQUVFQYPUVEQZHRSGRSAUUQYPUVEGHRRVEAUVHUUQGHR
      RAYJRVGZUUTRVGZQZUVHUUQAUVKQZUVHQZUVCYNUGUHZUVDUUQUVMYOUVNUVLYLYOUVEVHUVM
      CDYNFIYJUUTKUVMAFOCVGZDVQVGZAUVKUVHVRLVIAUVIUVJUVHVJAUVIUVJUVHVKUVLYLYOUV
      EVLUVLYPUVBUVDVMVNVOUVLYPUVBUVDVPYNUUHUVCVSVTWGWAWBWCWDABNCDEFGHIJKLMWEWF
      AUUFQZUUKUUQUUOAUUKUUFUUQAUUKQUUFNBUPUUQANBCDEFGHIJKLMWENBWHWIWJUUOUIUUTU
      JUKZCUAOZULZUUHUUTUEHTFUUTUVSPZDWKZWSZUIUFZPZUMZQZUAUNZHTSZUVQUUQUUNUWHGH
      TUVGUUNUVRCYSULZUUHUUTUUAPZUMZQZEUNUWHUVGUUMUWMEUVGYTUWJUULUWLUVGYRUVRUMY
      TUWJWLYJUUTUIUJWMYRUVRCYSWNWOUVGUUBUWKUUHYJUUTUUAUSWPVCWQUWMUWGEUAEUAUPZU
      WJUVTUWLUWFUVRCYSUVSWRUWNUWKUWEUUHUWNUUTUUAUWDUWNJUWCUEUIUWNJHTFUUTYSPZDW
      KZWSZUWCMUWNHTUWPUWBUWNFUWOUWADUUTYSUVSWTXAXBXCXDXEWPVCXFXGVDAUUFUWIUUQUU
      FUWIQUUEUWHQZHTSGTSAUUQUUEUWHGHTTVEAUWRUUQGHTTUWRUUDUWGQZUAUNEUNAYJTVGUUT
      TVGQZQZUUQUUDUWGEUAXHUXAUWSUUQEUAUWSYTUVTQZUUCUWFQZQUXAUUQYTUUCUVTUWFXIUX
      AUXBUXCUUQUXAUXBQZUUQUXCUUBUWEUMUXDCDEFUBIJUWCUVSYJUUTKUXDAUVOUVPAUWTUXBV
      RLVIJUWQUBTFUBOZYSPZDWKZWSMHUBTUWPUXGHUBUPZFUWOUXFDUUTUXEYSUSXAXJXSHUBTUW
      BFUXEUVSPZDWKUXHFUWAUXIDUUTUXEUVSUSXAXJAUWTUXBXKUXAYTUVTXLUXAYTUVTXMXNYNU
      UBUUHUWEXOXPXQWDXRWBXTWBWCWDWFYAXQYBUUGUUPBNUUQYQUUKUUFUUOUUQYPUUJGRUUQYO
      UUIYLYNUUHYMUGYCYDYEUUQUUEUUNGTUUQUUDUUMEUUQUUCUULYTYNUUHUUBYIYDWQYEYFYGY
      H $.
  $}

  ${
    $d f g i j k m n x A $.  $d j k n x F $.  $d f g i j k m x ph $.  $d k Z $.
    $d f g i j m n x B $.  $d f g i j k m x M $.
    zsum.1 $e |- Z = ( ZZ>= ` M ) $.
    zsum.2 $e |- ( ph -> M e. ZZ ) $.
    ${
      zsum.3 $e |- ( ph -> A C_ Z ) $.
      zsum.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = if ( k e. A , B , 0 ) ) $.
      zsum.5 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
      $( Series sum with index set a subset of the upper integers.
         (Contributed by Mario Carneiro, 13-Jun-2019.) $)
      zsum $p |- ( ph -> sum_ k e. A B = ( ~~> ` seq M ( + , F ) ) ) $=
        ( vn cv cfv cz wcel cli wa wceq vm vx vf vi vg vj cuz wss caddc csb cc0
        cif cmpt cseq wbr wrex c1 cfz co wf1o cn wex wo cio csu csbeq1 ifbieq1d
        eleq1 cbvmptv cc simpll wral ralrimiva nfcsb1v csbeq1a eleq1d rspc syl5
        nfel1 mpan9 simplr ad2antrr simpr syl6sseq sumrb biimpd rexlimdva chash
        expimpd clt wiso wor cfn uzssz eqsstri zssre sstri ltso soss mp2 mpisyl
        cr cen fzfi ovex f1oen adantl ensymd enfii sylancr fz1iso syl2anc fveq2
        csbeq1d csbco syl6eqr eqid simprl simprr summolem2a expr mpd syl5ibrcom
        exlimdv breq2 jaod adantr sseq2d seqeq1 breq1d anbi12d syl12anc orcd ex
        rspcev impbid cvv sseldi syl6eleqr nfcv eqeq12d sylc fvex syl6eqelr nfv
        nfeq2 cbvmpt eqcomi fvmpts eqtr4d seqfeq bitrd iotabidv df-sum 3eqtr4g
        nfif df-fv ) ABUANZUGOZUHZUIMPMNZBQZDUVACUJZUKULZUMZUURUNZUBNZRUOZSZUAP
        UPZUQUURURUSZBUCNZUTZUVGUURUIMVADUVAUVLOZCUJZUMZUQUNOZTZSZUCVBZUAVAUPZV
        CZUBVDUIEFUNZUVGRUOZUBVDBCDVEUWCROAUWBUWDUBAUWBUIUVEFUNZUVGRUOZUWDAUWBU
        WFAUVJUWFUWAAUVIUWFUAPAUURPQZSZUUTUVHUWFUWHUUTSZUVHUWFUWIBDUDNZCUJZUVGU
        DUVEUURFMUDPUVDUWJBQZUWKUKULUVAUWJTUVBUWLUVCUWKUKUVAUWJBVHDUVAUWJCVFVGV
        IZUWIAUWLUWKVJQZAUWGUUTVKACVJQZDBVLUWLUWNAUWODBLVMUWOUWNDUWJBDUWKVJDUWJ
        CVNVSDNZUWJTCUWKVJDUWJCVOVPVQVRZVTAUWGUUTWAAFPQZUWGUUTIWBUWHUUTWCABFUGO
        ZUHZUWGUUTABGUWSJHWDZWBWEWFWIWGAUVTUWFUAVAAUURVAQZSZUVSUWFUCUXCUVMUVRUW
        FUXCUVMSZUWFUVRUWEUVQRUOZUXDUQBWHOURUSBWJWJUENZWKZUEVBZUXEUXDBWJWLZBWMQ
        ZUXHUXDBGUHZGWJWLZUXIAUXKUXBUVMJWBGXBUHXBWJWLUXLGPXBGUWSPHFWNZWOWPWQWRG
        XBWJWSWTBGWJWSXAUXDUVKWMQBUVKXCUOUXJUQUURXDUXDUVKBUVMUVKBXCUOUXCUVKBUVL
        UQUURURXEXFXGXHBUVKXIXJBWJUEXKXLUXDUXGUXEUEUXCUVMUXGUXEUXCUVMUXGSZSZBUW
        KUCUDUFUVEUVPUFVAUDUFNZUXFOUWKUJUMZUXFFUURUWMUXOAUWLUWNAUXBUXNVKUWQVTMU
        FVAUVOUDUXPUVLOZUWKUJZUVAUXPTZUVODUXRCUJUXSUXTDUVNUXRCUVAUXPUVLXMXNDUDU
        XRCXOXPVIUXQXQAUXBUXNWAAUWRUXBUXNIWBAUWTUXBUXNUXAWBUXCUVMUXGXRUXCUVMUXG
        XSXTYAYDYBUVGUVQUWERYEYCWIYDWGYFAUWFUWBAUWFSZUVJUWAUYAUWRUWTUWFUVJAUWRU
        WFIYGAUWTUWFUXAYGAUWFWCUVIUWTUWFSUAFPUURFTZUUTUWTUVHUWFUYBUUSUWSBUURFUG
        XMYHUYBUVFUWEUVGRUIUVEUURFYIYJYKYOYLYMYNYPAUWEUWCUVGRAUIUFUVEEFIAUXPUWS
        QZSZUXPUVEOZDUXPUWPBQZCUKULZUJZUXPEOZUYDUXPPQUYHYQQUYEUYHTUYDUWSPUXPUXM
        AUYCWCZYRUYDUYHUYIYQUYDUXPGQUWPEOZUYGTZDGVLZUYIUYHTZUYDUXPUWSGUYJHYSAUY
        MUYCAUYLDGKVMYGUYLUYNDUXPGDUYIUYHDUXPUYGVNUUFUWPUXPTUYKUYIUYGUYHUWPUXPE
        XMDUXPUYGVOUUAVQUUBZUXPEUUCUUDDUXPUYGPUVEYQDPUYGUMUVEDMPUYGUVDMUYGYTUVB
        DUVCUKUVBDUUEDUVACVNDUKYTUUPUWPUVATUYFUVBCUVCUKUWPUVABVHDUVACVOVGUUGUUH
        UUIXLUYOUUJUUKYJUULUUMUBBCUCDUAMUUNUBUWCRUUQUUO $.
    $}

    isum.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = B ) $.
    isum.4 $e |- ( ( ph /\ k e. Z ) -> B e. CC ) $.
    $( Series sum with an upper integer index set (i.e. an infinite series).
       (Contributed by Mario Carneiro, 15-Jul-2013.)  (Revised by Mario
       Carneiro, 7-Apr-2014.) $)
    isum $p |- ( ph -> sum_ k e. Z B = ( ~~> ` seq M ( + , F ) ) ) $=
      ( wss ssid a1i cv wcel wa cfv cc0 cif wceq iftrue adantl eqtr4d zsum ) AF
      BCDEFGHFFKAFLMACNZFOZPUEDQBUFBRSZIUFUGBTAUFBRUAUBUCJUD $.
  $}

  ${
    $d f i j m n x B $.  $d f k m x C $.  $d f k n F $.  $d f i j k m n x ph $.
    $d f i j k m n x A $.  $d f k m n x G $.  $d f k m n x M $.
    fsum.1 $e |- ( k = ( F ` n ) -> B = C ) $.
    fsum.2 $e |- ( ph -> M e. NN ) $.
    fsum.3 $e |- ( ph -> F : ( 1 ... M ) -1-1-onto-> A ) $.
    fsum.4 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    fsum.5 $e |- ( ( ph /\ n e. ( 1 ... M ) ) -> ( G ` n ) = C ) $.
    $( The value of a sum over a nonempty finite set.  (Contributed by Mario
       Carneiro, 20-Apr-2014.)  (Revised by Mario Carneiro, 13-Jun-2019.) $)
    fsum $p |- ( ph -> sum_ k e. A B = ( seq 1 ( + , G ) ` M ) ) $=
      ( vm cfv wcel c1 cn wceq vx vf vj vi csu cv cuz wss caddc cz csb cc0 cmpt
      cif cseq cli wbr wa wrex cfz co wf1o wex wo cio df-sum cvv fvex wb wmo wi
      eleq1 csbeq1 ifbieq1d cbvmptv wral ralrimiva nfcsb1v nfel1 csbeq1a eleq1d
      cc rspc mpan9 fveq2 csbeq1d csbco syl6eqr summo f1of syl ovex fex sylancl
      nnuz syl6eleq elfznn adantl syl6eqelr eqid fvmpt2 syl2anc eqtr4d nffvmpt1
      wf nfeq2 eqeq12d seqfveq f1oeq1 fveq1 csbie syl6eq mpteq2dv fveq1d eqeq2d
      seqeq3d anbi12d spcegv sylc oveq2 f1oeq2 exbidv rspcev olcd breq2 rexbidv
      jca anbi2d eqeq1 orbi12d moi2 mpanl1 ancom2s expr syl5ibrcom impbid iota5
      adantr mpan2 syl5eq ) ABCEUEBOUFZUGPUHZUIFUJFUFZBQZEUUCCUKZULUNZUMZUUAUOZ
      UAUFZUPUQZURZOUJUSZRUUAUTVAZBUBUFZVBZUUIUUAUIFSEUUCUUNPZCUKZUMZRUOZPZTZUR
      ZUBVCZOSUSZVDZUAVEZIUIHRUOZPZUABCUBEOFVFAUVHVGQZUVFUVHTIUVGVHZAUVEUAUVHVG
      AUVEUUIUVHTZVIUVIAUVEUVKAUVEUAVJZUUBUUHUVHUPUQZURZOUJUSZUUOUVHUUTTZURZUBV
      CZOSUSZVDZUVEUVKVKAUABEUCUFZCUKZUBUCOUDUUGUURFUCUJUUFUWABQZUWBULUNUUCUWAT
      UUDUWCUUEUWBULUUCUWABVLEUUCUWACVMVNVOACWBQZEBVPUWCUWBWBQZAUWDEBMVQUWDUWEE
      UWABEUWBWBEUWACVRVSEUFZUWATCUWBWBEUWACVTWAWCWDFUDSUUQUCUDUFZUUNPZUWBUKZUU
      CUWGTZUUQEUWHCUKUWIUWJEUUPUWHCUUCUWGUUNWEWFEUCUWHCWGWHVOWIAUVSUVOAISQRIUT
      VAZBUUNVBZUVHIUUSPZTZURZUBVCZUVSKAGVGQZUWKBGVBZUVHIUIFSDUMZRUOZPZTZURZUWP
      AUWKBGXEZUWKVGQUWQAUWRUXDLUWKBGWJWKRIUTWLUWKBVGGWMWNAUWRUXBLAUIEHUWSRIAIS
      RUGPKWOWPAUUCHPZUUCUWSPZTZFUWKVPUWFUWKQUWFHPZUWFUWSPZTZAUXGFUWKAUUCUWKQZU
      RZUXEDUXFNUXLUUCSQZDVGQUXFDTUXKUXMAUUCIWQWRUXLDUXEVGNUUCHVHWSFSDVGUWSUWSW
      TXAXBXCVQUXGUXJFUWFUWKFUXHUXIFSDUWFXDXFUUCUWFTUXEUXHUXFUXIUUCUWFHWEUUCUWF
      UWSWEXGWCWDXHYGUWOUXCUBGVGUUNGTZUWLUWRUWNUXBUWKBUUNGXIUXNUWMUXAUVHUXNIUUS
      UWTUXNUURUWSUIRUXNFSUUQDUXNUUQEUUCGPZCUKDUXNEUUPUXOCUUCUUNGXJWFEUXOCDUUCG
      VHJXKXLXMXPXNXOXQXRXSUVRUWPOISUUAITZUVQUWOUBUXPUUOUWLUVPUWNUXPUUMUWKTUUOU
      WLVIUUAIRUTXTUUMUWKBUUNYAWKUXPUUTUWMUVHUUAIUUSWEXOXQYBYCXBYDZUVLUVTUVEUVK
      UVLUVEUVTUVKUVIUVLUVEUVTURUVKUVJUVEUVTUAUVHVGUVKUULUVOUVDUVSUVKUUKUVNOUJU
      VKUUJUVMUUBUUIUVHUUHUPYEYHYFUVKUVCUVROSUVKUVBUVQUBUVKUVAUVPUUOUUIUVHUUTYI
      YHYBYFYJZYKYLYMYNXBAUVEUVKUVTUXQUXRYOYPYRYQYSYT $.
  $}

  $( Any sum over the empty set is zero.  (Contributed by Mario Carneiro,
     12-Aug-2013.)  (Revised by Mario Carneiro, 20-Apr-2014.) $)
  sum0 $p |- sum_ k e. (/) A = 0 $=
    ( c0 csu caddc c1 cuz cfv cc0 csn cli wceq wtru cn nnuz wcel 1z a1i ax-mp
    cc cxp cseq cz wss 0ss cv wa cif simpr syl6eleq c0ex fvconst2 noel iffalsei
    syl syl6eqr pm2.21i adantl zsum trud wfun wbr cdm wf fclim serclim0 funbrfv
    ffun mp2 eqtri ) CABDZEFGHZIJUAZFUBZKHZIVKVOLMCABVMFNOFUCPZMQRCNUDMNUERMBUF
    ZNPZUGZVQVMHZIVQCPZAIUHVSVQVLPVTILVSVQNVLMVRUIOUJVLIVQUKULUOWAAIVQUMZUNUPWA
    ATPZMWAWCWBUQURUSUTKVAZVNIKVBZVOILKVCZTKVDWDVEWFTKVHSVPWEQFVFSVNIKVGVIVJ $.

  ${
    $d f k n A $.  $d k M $.
    $( Any sum of zero over a summable set is zero.  (Contributed by Mario
       Carneiro, 12-Aug-2013.)  (Revised by Mario Carneiro, 20-Apr-2014.) $)
    sumz $p |- ( ( A C_ ( ZZ>= ` M ) \/ A e. Fin ) -> sum_ k e. A 0 = 0 ) $=
      ( vf vn cuz cfv wss cc0 csu wceq wcel cz wa cli cv adantl c0 cn c1 cfn cc
      caddc csn cxp cseq eqid simpr simpl cif c0ex fvconst2 ifid 0cnd zsum wfun
      syl6eqr wbr cdm wf fclim ffun ax-mp serclim0 funbrfv mpsyl eqtrd cpw fdmi
      wn uzf eleq2i ndmfv sylnbir sseq2d biimpac ss0 sumeq1 sum0 3syl pm2.61dan
      syl6eq chash cfz co wf1o wex wo fz1f1o eqidd elfznn fsum nnuz ser0 adantr
      syl ex exlimdv imp jaoi ) ACFGZHZAIBJZIKZAUALZXBCMLZXDXBXFNZXCUCXAIUDZUEZ
      CUFZOGZIXGAIBXICXAXAUGXBXFUHXBXFUIBPZXALZXLXIGZXLALZIIUJZKXGXMXNIXPXAIXLU
      KULXOIUMUQQXGXONUNUOOUPZXGXJIOURZXKIKOUSZUBOUTXQVAXSUBOVBVCXFXRXBCVDQXJIO
      VEVFVGXBXFVJZNARHZARKZXDXTXBYAXTXARAXFCFUSZLXARKYCMCMMVHFVKVIVLCFVMVNVOVP
      AVQYBXCRIBJIARIBVRIBVSWBZVTWAXEYBAWCGZSLZTYEWDWEZADPZWFZDWGZNZWHXDADWIYBX
      DYKYDYFYJXDYFYIXDDYFYIXDYFYINZXCYEUCSXHUEZTUFGZIYLAIIBEYHYMYEXLEPZYHGKIWJ
      YFYIUIYFYIUHYLXONUNYOYGLZYOYMGIKZYLYPYOSLYQYOYEWKSIYOUKULWPQWLYFYNIKYITYE
      SWMWNWOVGWQWRWSWTWPWT $.
  $}

  ${
    $d f k m n A $.  $d f m n B $.  $d f m n C $.  $d f k m D $.  $d f m n F $.
    $d k G $.  $d f k m n ph $.
    fsumf1o.1 $e |- ( k = G -> B = D ) $.
    fsumf1o.2 $e |- ( ph -> C e. Fin ) $.
    fsumf1o.3 $e |- ( ph -> F : C -1-1-onto-> A ) $.
    fsumf1o.4 $e |- ( ( ph /\ n e. C ) -> ( F ` n ) = G ) $.
    fsumf1o.5 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    $( Re-index a finite sum using a bijection.  (Contributed by Mario
       Carneiro, 20-Apr-2014.) $)
    fsumf1o $p |- ( ph -> sum_ k e. A B = sum_ n e. C D ) $=
      ( vm c0 wceq csu cfv wcel vf chash cn c1 cfz co cv wf1o wex wa cc0 f1oeq2
      sum0 wfo syl5ibcom imp f1ofo fo00 simprbi sumeq1d simpr syl6eq 3eqtr4a ex
      3syl cmpt caddc ccom cseq fveq2 fveq2d simprl simprr cc wf f1of ffvelrnda
      eqid fmptd syldan adantlr adantr f1oco syl2anc fvco3 sylan ad2antll eqtrd
      syl fsum wral cid eqeltrrd fvmpti fvmpt2i adantl 3eqtr4rd ralrimiva nfeq1
      nffvmpt1 eqeq12d rspc mpan9 sumeq2dv sumfc 3eqtr3g exlimdv expimpd cfn wo
      expr fz1f1o mpjaod ) ADPQZBCFRZDEGRZQZDUBSZUCTZUDXRUEUFZDUAUGZUHZUAUIZUJZ
      AXNXQAXNUJZPCFRUKXOXPCFUMYEBPCFYEPBHUHZPBHUNZBPQZAXNYFADBHUHZXNYFLDPBHULU
      OUPPBHUQYGHPQYHBHURUSVEUTYEXPPEGRUKYEDPEGAXNVAUTEGUMVBVCVDAXSYCXQAXSUJYBX
      QUAAXSYBXQAXSYBUJZUJZBOUGZFBCVFZSZORZDYLGDEVFZSZORZXOXPYKDYLHSZYMSZORXRVG
      YMHYAVHZVHZUDVISYRYOYKDYTGUGZYASZHSZYMSZOGYAUUBXRYLUUDQYSUUEYMYLUUDHVJVKA
      XSYBVLZAXSYBVMZAYLDTZYTVNTZYJAUUIYSBTUUJADBYLHAYIDBHVOLDBHVPWIZVQABVNYSYM
      AFBCVNYMNYMVRZVSZVQVTWAYKUUCXTTZUJZUUCUUBSZUUCUUASZYMSZUUFYKXTBUUAVOZUUNU
      UPUURQYKXTBUUAUHZUUSYKYIYBUUTAYIYJLWBUUHXTDBHYAWCWDZXTBUUAVPWIXTBUUCYMUUA
      WEWFZUUOUUQUUEYMYKXTDYAVOZUUNUUQUUEQYBUVCAXSXTDYAVPWGXTDUUCHYAWEWFVKWHWJY
      KDYQYTOAUUIYQYTQZYJAUUCYPSZUUCHSZYMSZQZGDWKUUIUVDAUVHGDAUUCDTZUJZIYMSZEWL
      SZUVGUVEUVJIBTUVKUVLQUVJUVFIBMADBUUCHUUKVQWMFICEBYMJUULWNWIUVJUVFIYMMVKUV
      IUVEUVLQAGDEYPYPVRWOWPWQWRUVHUVDGYLDGYQYTGDEYLWTWSUUCYLQZUVEYQUVGYTUUCYLY
      PVJUVMUVFYSYMUUCYLHVJVKXAXBXCWAXDYKBYNUUROGUUAUUBXRYLUUQYMVJUUGUVAYKBVNYL
      YMABVNYMVOYJUUMWBVQUVBWJWQBCOFXEDEOGXEXFXKXGXHADXITXNYDXJKDUAXLWIXM $.
  $}

  ${
    $d f k m n A $.  $d f k m n B $.  $d f m n C $.  $d f k m n ph $.
    $d k m M $.
    sumss.1 $e |- ( ph -> A C_ B ) $.
    sumss.2 $e |- ( ( ph /\ k e. A ) -> C e. CC ) $.
    sumss.3 $e |- ( ( ph /\ k e. ( B \ A ) ) -> C = 0 ) $.
    ${
      sumss.4 $e |- ( ph -> B C_ ( ZZ>= ` M ) ) $.
      $( Change the index set to a subset in an upper integer sum.
         (Contributed by Mario Carneiro, 21-Apr-2014.) $)
      sumss $p |- ( ph -> sum_ k e. A C = sum_ k e. B C ) $=
        ( vm cz wcel wceq wa cfv cc0 adantr cc c0 csu cv cmpt caddc cuz cif cli
        cseq eqid simpr wss sstrd nfcv nffvmpt1 nfv nfif fveq2 ifbieq1d eqeq12d
        eleq1 cid fvmpt2i iftrue fveq2d sylan9eq eqtrd adantl eqtr4d wn iffalse
        nfeq 0z ax-mp syl6eq pm2.61dan vtoclgaf wf fmptd ffvelrnda zsum wi nfim
        fvi imbi2d adantll sselda syl ad2antrl cdif eldif 0cn sylan2br expr a1d
        imp expcom impcom adantlr ex syl6eqel pm2.61d sumfc 3eqtr3g cdm cpw uzf
        fdmi eleq2i ndmfv sylnbir sseq2d syl5ib ss0 sumeq1d ) AFLMZBDEUAZCDEUAZ
        NAXOOZBKUBZEBDUCZPZKUAZCXSECDUCZPZKUAZXPXQXRYBUDEFUEPZEUBZBMZDQUFZUCZFU
        HUGPYEXRBYAKYJFYFYFUIZAXOUJZABYFUKXOABCYFGJULRXSYFMZXSYJPZXSBMZYAQUFZNZ
        XRYGYJPZYHYGXTPZQUFZNZYQEXSYFEXSUMZEYNYPEYFYIXSUNZYOEYAQYOEUOEBDXSUNEQU
        MZUPVKYGXSNZYRYNYTYPYGXSYJUQZUUEYHYOYSYAQYGXSBUTYGXSXTUQURUSYGYFMZYHUUA
        UUGYHOYRDVAPZYTUUGYHYRYIVAPZUUHEYFYIYJYJUIVBZYHYIDVAYHDQVCVDVEZYHYTUUHN
        UUGYHYTYSUUHYHYSQVCEBDXTXTUIZVBVFVGVHUUGYHVIZOYRQYTUUGUUMYRUUIQUUJUUMUU
        IQVAPZQUUMYIQVAYHDQVJVDQLMUUNQNZVLQLWCVMVNVEZUUMYTQNUUGYHYSQVJVGVHVOVPV
        GXRBSXSXTABSXTVQXOAEBDSXTHUULVRRVSVTXRCYDKYJFYFYKYLACYFUKZXOJRAYMYNXSCM
        ZYDQUFZNZXOYMAUUTAYRYGCMZYGYCPZQUFZNZWAAUUTWAEXSYFUUBAUUTEAEUOEYNUUSUUC
        UUREYDQUUREUOECDXSUNUUDUPVKWBUUEUVDUUTAUUEYRYNUVCUUSUUFUUEUVAUURUVBYDQY
        GXSCUTYGXSYCUQURUSWDAUUGUVDAUUGOZYHUVDUVEYHOZYRUUHUVCUUGYHYRUUHNAUUKWEU
        VFUVAUVCUUHNZUVEBCYGABCUKZUUGGRWFUVAUVCUVBUUHUVAUVBQVCECDYCYCUIZVBVFZWG
        VHUVEUUMOYRQUVCUUGUUMYRQNAUUPWEUVEUUMUVCQNZAUUMUVKWAZUUGAUVAUVLAUVAUUMU
        VKAUVAUUMOZOUVCUUHQUVAUVGAUUMUVJWHUVMAYGCBWIMZUUHQNYGCBWJZAUVNOZUUHUUNQ
        UVPDQVAIVDQSMUUOWKQSWCVMVNWLVFWMAUVAVIZOUVKUUMUVQUVKAUVAUVBQVJVGWNVORWO
        VHVOWPVPWQWRXRCSXSYCACSYCVQXOAECDSYCAUVAOYHDSMZAYHUVRWAUVAAYHUVRHWSRAUV
        AUUMUVRUVMAUVNUVRUVOUVPDQSIWKWTWLWMXAUVIVRRVSVTVHBDKEXBCDKEXBXCAXOVIZOZ
        BCDEUVTBTCUVTBTUKBTNUVTBCTAUVHUVSGRUVSACTUKZAUUQUVSUWAJUVSYFTCXOFUEXDZM
        YFTNUWBLFLLXEUEXFXGXHFUEXIXJXKXLWQZULBXMWGUVTUWACTNUWCCXMWGVHXNVO $.
    $}

    fsumss.4 $e |- ( ph -> B e. Fin ) $.
    $( Change the index set to a subset in a finite sum.  (Contributed by Mario
       Carneiro, 21-Apr-2014.) $)
    fsumss $p |- ( ph -> sum_ k e. A C = sum_ k e. B C ) $=
      ( vm vn wceq csu cfv wcel c1 wa cc0 cc syl vf c0 chash cn cfz co wf1o wex
      cv wss adantr adantlr cdif cuz simpr 0ss syl6eqss sumss ex cmpt ccnv cima
      cdm cnvimass wf simprr fdm syl5sseq wfn wb ffn elpreima ffvelrnda adantrd
      f1of sylbid imp wi wn eldif 0cn syl6eqel sylan2br expr pm2.61d eqid fmptd
      syldan eldifi sylan2 eldifn adantl bitr4d mtbid eldifd difss resmpt ax-mp
      biantrurd cres fveq1i fvres csn c0ex elsn2 sylibr ad2antrr ffvelrnd elsni
      syl5eqr eqtr3d fzssuz a1i resmptd sumeq2dv fveq2 fzfid fisuppfi wf1 f1of1
      fveq1d f1ores syl2anc wfo f1ofo foimacnv f1oeq3 mpbid fsumf1o eqtrd eqidd
      sselda 3eqtr4d sumfc 3eqtr3g exlimdv expimpd cfn wo fz1f1o mpjaod ) ACUBL
      ZBDEMZCDEMZLZCUCNZUDOZPUUFUEUFZCUAUIZUGZUAUHZQZAUUBUUEAUUBQZBCDERABCUJZUU
      BFUKAEUIZBOZDSOZUUBGULAUUOCBUMZOZDRLZUUBHULUUMCUBRUNNZAUUBUOUVAUPUQURUSAU
      UGUUKUUEAUUGQUUJUUEUAAUUGUUJUUEAUUGUUJQZQZBJUIZEBDUTZNZJMZCUVDECDUTZNZJMZ
      UUCUUDUVCUUIVABVBZKUIZUUINZUVHNZKMZUUHUVNKMUVGUVJUVCUVKUUHUVNKPUVCUUIVCZU
      VKUUHUUIBVDUVCUUHCUUIVEZUVPUUHLUVCUUJUVQAUUGUUJVFZUUHCUUIVOTZUUHCUUIVGTVH
      ZUVCUVLUVKOZUVMCOZUVNSOUVCUWAUWBUVCUWAUVLUUHOZUVMBOZQZUWBUVCUUIUUHVIZUWAU
      WEVJZUVCUVQUWFUVSUUHCUUIVKTUUHUVLBUUIVLTZUVCUWCUWBUWDUVCUWCUWBUVCUUHCUVLU
      UIUVSVMZUSVNVPVQUVCCSUVMUVHACSUVHVEUVBAECDSUVHAUUOCOZQUUPUUQAUUPUUQVRUWJA
      UUPUUQGUSUKAUWJUUPVSZUUQUWJUWKQAUUSUUQUUOCBVTAUUSQZDRSHWAWBWCWDWEUVHWFWGU
      KZVMWHUVCUVLUUHUVKUMOZQZUVMEUURDUTZNZUVNRUWOUVMUUROZUWQUVNLUWOUVMCBUWNUVC
      UWCUWBUVLUUHUVKWIZUWIWJUWOUWAUWDUWNUWAVSUVCUVLUUHUVKWKWLUWOUWAUWEUWDUVCUW
      GUWNUWHUKUWOUWCUWDUWNUWCUVCUWSWLWSWMWNWOZUWRUWQUVMUVHUURWTZNUVNUVMUXAUWPU
      URCUJUXAUWPLCBWPECUURDWQWRXAUVMUURUVHXBXJTUWOUWQRXCZOUWQRLUWOUURUXBUVMUWP
      AUURUXBUWPVEUVBUWNAEUURDUXBUWPUWLUUTDUXBOHDRXDXEXFUWPWFWGXGUWTXHUWQRXITXK
      UUHPUNNUJUVCPUUFXLXMURUVCUVGBUVIJMUVOUVCBUVFUVIJUVCUVDBOZQZUVDUVHBWTZNZUV
      FUVIUXDUVDUXEUVEUXDECBDAUUNUVBUXCFXGXNYAUXCUXFUVILUVCUVDBUVHXBWLXKXOUVCBU
      VIUVKUVNJKUUIUVKWTZUVMUVDUVMUVHXPZUVCUUHCBUUIUVCPUUFXQZUVSXRUVCUVKUUIUVKV
      BZUXGUGZUVKBUXGUGZUVCUUHCUUIXSZUVKUUHUJUXKUVCUUJUXMUVRUUHCUUIXTTUVTUUHCUV
      KUUIYBYCUVCUXJBLZUXKUXLVJUVCUUHCUUIYDZUUNUXNUVCUUJUXOUVRUUHCUUIYETAUUNUVB
      FUKZUUHCBUUIYFYCUXJBUVKUXGYGTYHUWAUVLUXGNUVMLUVCUVLUVKUUIXBWLUVCUXCUVDCOU
      VISOUVCBCUVDUXPYLUVCCSUVDUVHUWMVMZWHYIYJUVCCUVIUUHUVNJKUUIUVMUXHUXIUVRUVC
      UWCQUVMYKUXQYIYMBDJEYNCDJEYNYOWDYPYQACYROUUBUULYSICUAYTTUUA $.
  $}

  ${
    $d k m A $.  $d k m B $.  $d m C $.  $d m M $.
    $( Change the index set of a sum by adding zeroes.  (Contributed by Mario
       Carneiro, 15-Jul-2013.)  (Revised by Mario Carneiro, 20-Apr-2014.) $)
    sumss2 $p |- ( ( ( A C_ B /\ A. k e. A C e. CC ) /\
                    ( B C_ ( ZZ>= ` M ) \/ B e. Fin ) ) ->
      sum_ k e. A C = sum_ k e. B if ( k e. A , C , 0 ) ) $=
      ( vm wss cc wcel wa cv cc0 cif csu wceq simpll simplr iftrue adantl sylan
      wral cuz cfv cfn wo nfcsb1v nfel1 csbeq1a eleq1d rspc impcom eqeltrd cdif
      csb eldifn iffalsed simpr sumss fsumss jaodan sumeq2i nfcv nfv nfif eleq1
      ifbieq1d cbvsumi eqtr3i 3eqtr4g ) ABGZCHIZDAUAZJZBEUBUCGZBUDIZUEJAFKZAIZD
      VPCUNZLMZFNZBVSFNZACDNZBDKZAIZCLMZDNVMVNVTWAOVOVMVNJZABVSFEVJVLVNPWFVLVQV
      SHIZVJVLVNQVLVQJVSVRHVQVSVROVLVQVRLRSVQVLVRHIZVKWHDVPADVRHDVPCUFZUGWCVPOZ
      CVRHDVPCUHZUIUJUKULZTVPBAUMIZVSLOZWFWMVQVRLVPBAUOUPZSVMVNUQURVMVOJZABVSFV
      JVLVOPWPVLVQWGVJVLVOQWLTWMWNWPWOSVMVOUQUSUTAWEDNWBVTAWECDWDCLRVAAWEVSDFFW
      EVBZVQDVRLVQDVCWIDLVBVDZWJWDVQCVRLWCVPAVEWKVFZVGVHBWEVSDFWQWRWSVGVI $.
  $}

  ${
    $d k m n A $.  $d m n B $.  $d k n F $.  $d k m N $.  $d k m n ph $.
    $d k m n M $.
    fsumsers.1 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) ->
                       ( F ` k ) = if ( k e. A , B , 0 ) ) $.
    fsumsers.2 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    fsumsers.3 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    fsumsers.4 $e |- ( ph -> A C_ ( M ... N ) ) $.
    $( The sequence of partial sums of a finite sum converges to the whole sum.
       (Contributed by Mario Carneiro, 20-Apr-2014.) $)
    fsumcvg2 $p |- ( ph -> seq M ( + , F ) ~~> ( seq M ( + , F ) ` N ) ) $=
      ( vm caddc cz cv wcel cc0 cfv wceq cc cif cmpt cseq cli csb nfcv nfv nfif
      vn nfcsb1v eleq1 csbeq1a ifbieq1d cbvmpt wral ralrimiva nfel1 eleq1d rspc
      mpan9 fsumcvg cuz eluzel2 syl wa eluzelz iftrue adantl eqeltrd ex iffalse
      wn 0cn syl6eqel pm2.61d1 eqid fvmpt2 syl2anr nffvmpt1 nfeq2 fveq2 eqeq12d
      eqtr4d seqfeq fveq1d 3brtr4d ) AMDNDOZBPZCQUAZUBZFUCZGWKRMEFUCZGWLRUDABDL
      OZCUEZLWJFGDLNWIWMBPZWNQUALWIUFWODWNQWODUGDWMCUJZDQUFUHWGWMSZWHWOCWNQWGWM
      BUKDWMCULZUMUNACTPZDBUOWOWNTPZAWSDBJUPWSWTDWMBDWNTWPUQWQCWNTWRURUSUTIKVAA
      MUIEWJFAGFVBRZPFNPIFGVCVDAWGERZWGWJRZSZDXAUOUIOZXAPXEERZXEWJRZSZAXDDXAAWG
      XAPZVEXBWIXCHXIWGNPWITPZXCWISAFWGVFAWHXJAWHXJAWHVEWICTWHWICSAWHCQVGVHJVIV
      JWHVLWIQTWHCQVKVMVNVODNWITWJWJVPVQVRWCUPXDXHDXEXADXFXGDNWIXEVSVTWGXESXBXF
      XCXGWGXEEWAWGXEWJWAWBUSUTWDZAGWLWKXKWEWF $.

    $( Special case of series sum over a finite upper integer index set.
       (Contributed by Mario Carneiro, 26-Jul-2013.)  (Revised by Mario
       Carneiro, 21-Apr-2014.) $)
    fsumsers $p |- ( ph -> sum_ k e. A B = ( seq M ( + , F ) ` N ) ) $=
      ( csu caddc cseq cli cfv cuz eqid wcel cc cz eluzel2 syl co fzssuz syl6ss
      cfz zsum wfun wbr wceq cdm fclim ffun ax-mp fsumcvg2 funbrfv mpsyl eqtrd
      wf ) ABCDLMEFNZOPZGVAPZABCDEFFQPZVDRAGVDSFUASIFGUBUCABFGUGUDVDKFGUEUFHJUH
      OUIZAVAVCOUJVBVCUKOULZTOUTVEUMVFTOUNUOABCDEFGHIJKUPVAVCOUQURUS $.
  $}

  ${
    $d k n A $.  $d k n F $.  $d k n M $.  $d k n ph $.
    fsumcvg3.1 $e |- Z = ( ZZ>= ` M ) $.
    fsumcvg3.2 $e |- ( ph -> M e. ZZ ) $.
    fsumcvg3.3 $e |- ( ph -> A e. Fin ) $.
    fsumcvg3.4 $e |- ( ph -> A C_ Z ) $.
    fsumcvg3.5 $e |- ( ( ph /\ k e. Z ) ->
                       ( F ` k ) = if ( k e. A , B , 0 ) ) $.
    fsumcvg3.6 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    $( A finite sum is convergent.  (Contributed by Mario Carneiro,
       24-Apr-2014.) $)
    fsumcvg3 $p |- ( ph -> seq M ( + , F ) e. dom ~~> ) $=
      ( vn cfz wss wcel c0 wceq cr cv caddc cseq cli cdm cuz wrex sseq1 rexbidv
      co cfv wne wa clt csup adantr syl6sseq wor cfn w3a ltso simpr uzssz zssre
      cz sstri eqsstri syl6ss 3jca fisupcl sylancr sseldd cle wbr wral fimaxre2
      syl2anc suprub sylan wb sselda sseldi elfz5 mpbird ex ssrdv sseq2d rspcev
      oveq2 uzid syl 0ss sylancl pm2.61ne cc0 eleq2i sylan2br adantlr simprl cc
      cif simprr fsumcvg2 climrel releldmi rexlimddv ) ABFNUAZOUJZPZUBEFUCZUDUE
      QZNFUFUKZAXINXLUGZRXHPZNXLUGZBRBRSXIXNNXLBRXHUHUIABRULZUMZBTUNUOZXLQBFXRO
      UJZPZXMXQBXLXRXQBGXLABGPXPKUPZHUQZXQTUNURBUSQZXPBTPZUTXRBQVAXQYCXPYDAYCXP
      JUPZAXPVBZXQBGTYAGXLTHXLVETFVCZVDVFVGVHZVITBUNVJVKVLZXQDBXSXQDUAZBQZYJXSQ
      ZXQYKUMZYLYJXRVMVNZXQYDXPXGYJVMVNNBVODTUGZUTYKYNXQYDXPYOYHYFXQYDYCYOYHYED
      NBVPVQVIDNBYJVRVSYMYJXLQZXRVEQZYLYNVTXQBXLYJYBWAXQYQYKXQXLVEXRYGYIWBUPYJF
      XRWCVQWDWEWFXIXTNXRXLXGXRSXHXSBXGXRFOWIWGWHVQAFXLQZRFFOUJZPZXOAFVEQYRIFWJ
      WKYSWLXNYTNFXLXGFSXHYSRXGFFOWIWGWHWMWNAXGXLQZXIUMZUMZXJXGXJUKZUDVNXKUUCBC
      DEFXGAYPYJEUKYKCWOXASZUUBYPAYJGQUUEGXLYJHWPLWQWRAUUAXIWSAYKCWTQUUBMWRAUUA
      XIXBXCXJUUDUDXDXEWKXF $.
  $}

  ${
    $d k m F $.  $d k m M $.  $d k m N $.  $d k ph $.
    fsumser.1 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) = A ) $.
    fsumser.2 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    fsumser.3 $e |- ( ( ph /\ k e. ( M ... N ) ) -> A e. CC ) $.
    $( A finite sum expressed in terms of a partial sum of an infinite series.
       The recursive definition of follows as ~ fsum1 and ~ fsump1i , which
       should make our notation clear and from which, along with closure
       ~ fsumcl , we will derive the basic properties of finite sums.
       (Contributed by NM, 11-Dec-2005.)  (Revised by Mario Carneiro,
       21-Apr-2014.) $)
    fsumser $p |- ( ph -> sum_ k e. ( M ... N ) A =
                          ( seq M ( + , F ) ` N ) ) $=
      ( vm cfz caddc cfv cv wcel cc0 cif cseq wceq eqtrd co csu cuz eleq1 fveq2
      cmpt ifbieq1d eqid fvex c0ex ifex ifeq1da sylan9eqr wss ssid a1i fsumsers
      fvmpt elfzuz syl iftrue adantl seqfveq ) AEFKUAZBCUBFLJEUCMZJNZVDOZVFDMZP
      QZUFZERMFLDERMAVDBCVJEFCNZVEOZAVKVJMZVKVDOZVKDMZPQZVNBPQJVKVIVPVEVJVFVKSV
      GVNVHVOPVFVKVDUDVFVKDUEUGVJUHVNVOPVKDUIUJUKURZAVNVOBPGULUMHIVDVDUNAVDUOUP
      UQALCVJDEFHVNVMVOSAVNVMVPVOVNVLVMVPSVKEFUSVQUTVNVOPVATVBVCT $.
  $}

  ${
    $d f k m x y A $.  $d f m x y B $.  $d f k m x y ph $.  $d f k x y S $.
    fsumcllem.1 $e |- ( ph -> S C_ CC ) $.
    fsumcllem.2 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x + y ) e. S ) $.
    fsumcllem.3 $e |- ( ph -> A e. Fin ) $.
    fsumcllem.4 $e |- ( ( ph /\ k e. A ) -> B e. S ) $.
    ${
      fsumcl2lem.5 $e |- ( ph -> A =/= (/) ) $.
      $( - Lemma for finite sum closures.  (The "-" before "Lemma" forces the
         math content to be displayed in the Statement List - NM 11-Feb-2008.)
         (Contributed by Mario Carneiro, 3-Jun-2014.) $)
      fsumcl2lem $p |- ( ph -> sum_ k e. A B e. S ) $=
        ( vf vm c0 wcel cfv c1 cv wa wceq csu chash cn cfz co wf1o wex necon4bd
        wne wn a1d caddc cmpt ccom sumfc fveq2 simprl simprr cc wss ad2antrr wf
        cseq eqid fmptd adantr ffvelrnda sseldd f1of syl fvco3 fsum syl5eqr cuz
        sylan nnuz syl6eleq fco syl2anc adantlr eqeltrd expr exlimdv expimpd wo
        seqcl cfn fz1f1o mpjaod ) ADOUAZDEGUBZFPZDUCQZUDPZRWNUEUFZDMSZUGZMUHZTZ
        AWMDOADOUJWMUKLULUIAWOWSWMAWOTWRWMMAWOWRWMAWOWRTZTZWLWNUMGDEUNZWQUOZRVD
        QZFXBWLDNSZXCQZNUBXEDENGUPXBDXGBSZWQQZXCQZNBWQXDWNXFXIXCUQAWOWRURZAWOWR
        USZXBXFDPZTFUTXGAFUTVAXAXMHVBXBDFXFXCADFXCVCZXAAGDEFXCKXCVEVFVGZVHVIXBW
        PDWQVCZXHWPPXHXDQXJUAXBWRXPXLWPDWQVJVKZWPDXHXCWQVLVPVMVNXBBCUMFXDRWNXBW
        NUDRVOQXKVQVRXBWPFXHXDXBXNXPWPFXDVCXOXQWPDFXCWQVSVTVHAXHFPCSZFPTXHXRUMU
        FFPXAIWAWGWBWCWDWEADWHPWKWTWFJDMWIVKWJ $.
    $}

    fsumcllem.5 $e |- ( ph -> 0 e. S ) $.
    $( - Lemma for finite sum closures.  (The "-" before "Lemma" forces the
       math content to be displayed in the Statement List - NM 11-Feb-2008.)
       (Contributed by NM, 9-Nov-2005.)  (Revised by Mario Carneiro,
       3-Jun-2014.) $)
    fsumcllem $p |- ( ph -> sum_ k e. A B e. S ) $=
      ( csu wcel c0 wa cc0 simpr adantr cv wceq sumeq1d sum0 syl6eq eqeltrd wne
      cc wss caddc co adantlr cfn fsumcl2lem pm2.61dane ) ADEGMZFNDOADOUAZPZUOQ
      FUQUOOEGMQUQDOEGAUPRUBEGUCUDAQFNUPLSUEADOUFZPBCDEFGAFUGUHURHSABTZFNCTZFNP
      USUTUIUJFNURIUKADULNURJSAGTDNEFNURKUKAURRUMUN $.
  $}

  ${
    $d k x y A $.  $d x y B $.  $d k x y ph $.
    fsumcl.1 $e |- ( ph -> A e. Fin ) $.
    ${
      fsumcl.2 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
      $( Closure of a finite sum of complex numbers ` A ( k ) ` .  (Contributed
         by NM, 9-Nov-2005.)  (Revised by Mario Carneiro, 22-Apr-2014.) $)
      fsumcl $p |- ( ph -> sum_ k e. A B e. CC ) $=
        ( vx vy cc wss ssid a1i cv wcel wa caddc co addcl adantl 0cnd fsumcllem
        ) AGHBCIDIIJAIKLGMZINHMZINOUBUCPQINAUBUCRSEFATUA $.
    $}

    ${
      fsumrecl.2 $e |- ( ( ph /\ k e. A ) -> B e. RR ) $.
      $( Closure of a finite sum of reals.  (Contributed by NM, 9-Nov-2005.)
         (Revised by Mario Carneiro, 22-Apr-2014.) $)
      fsumrecl $p |- ( ph -> sum_ k e. A B e. RR ) $=
        ( vx vy cr cc wss ax-resscn a1i cv wcel wa caddc co readdcl adantl 0red
        fsumcllem ) AGHBCIDIJKALMGNZIOHNZIOPUCUDQRIOAUCUDSTEFAUAUB $.
    $}

    ${
      fsumzcl.2 $e |- ( ( ph /\ k e. A ) -> B e. ZZ ) $.
      $( Closure of a finite sum of integers.  (Contributed by NM, 9-Nov-2005.)
         (Revised by Mario Carneiro, 22-Apr-2014.) $)
      fsumzcl $p |- ( ph -> sum_ k e. A B e. ZZ ) $=
        ( vx vy cz cc wss zsscn a1i cv wcel wa caddc co zaddcl adantl fsumcllem
        0zd ) AGHBCIDIJKALMGNZIOHNZIOPUCUDQRIOAUCUDSTEFAUBUA $.
    $}

    ${
      fsumnn0cl.2 $e |- ( ( ph /\ k e. A ) -> B e. NN0 ) $.
      $( Closure of a finite sum of nonnegative integers.  (Contributed by
         Mario Carneiro, 23-Apr-2015.) $)
      fsumnn0cl $p |- ( ph -> sum_ k e. A B e. NN0 ) $=
        ( vx vy cn0 cc wss nn0sscn a1i cv wcel wa caddc co nn0addcl adantl 0nn0
        cc0 fsumcllem ) AGHBCIDIJKALMGNZIOHNZIOPUDUEQRIOAUDUESTEFUBIOAUAMUC $.
    $}

    fsumrpcl.2 $e |- ( ph -> A =/= (/) ) $.
    fsumrpcl.3 $e |- ( ( ph /\ k e. A ) -> B e. RR+ ) $.
    $( Closure of a finite sum of positive reals.  (Contributed by Mario
       Carneiro, 3-Jun-2014.) $)
    fsumrpcl $p |- ( ph -> sum_ k e. A B e. RR+ ) $=
      ( vx vy crp cc wss cr rpssre ax-resscn sstri a1i cv wcel wa caddc rpaddcl
      co adantl fsumcl2lem ) AHIBCJDJKLAJMKNOPQHRZJSIRZJSTUFUGUAUCJSAUFUGUBUDEG
      FUE $.
  $}

  ${
    $d A k x $.  $d B x $.
    $( A finite sum with integer summands is an integer.  (Contributed by
       Alexander van der Vekens, 31-Aug-2018.) $)
    fsumzcl2 $p |- ( ( A e. Fin /\ A. k e. A B e. ZZ )
                            -> sum_ k e. A B e. ZZ ) $=
      ( vx cfn wcel cz wral wa csu cv csb nfcv nfcsb1v csbeq1a cbvsumi simpl wi
      rspcsbela expcom adantl imp fsumzcl syl5eqel ) AEFZBGFCAHZIZABCJACDKZBLZD
      JGABUICDDBMCUHBNCUHBOPUGAUIDUEUFQUGUHAFZUIGFZUFUJUKRUEUJUFUKCUHABGSTUAUBU
      CUD $.
  $}

  ${
    $d f k m n A $.  $d f m n B $.  $d f m n C $.  $d f k m n ph $.
    fsumadd.1 $e |- ( ph -> A e. Fin ) $.
    fsumadd.2 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    fsumadd.3 $e |- ( ( ph /\ k e. A ) -> C e. CC ) $.
    $( The sum of two finite sums.  (Contributed by NM, 14-Nov-2005.)  (Revised
       by Mario Carneiro, 22-Apr-2014.) $)
    fsumadd $p |- ( ph -> sum_ k e. A ( B + C ) =
                        ( sum_ k e. A B + sum_ k e. A C ) ) $=
      ( vm c0 wceq caddc co csu cfv wcel c1 wa cc ffvelrnda vf vn chash cn wf1o
      cfz cv wex cc0 00id sum0 oveq12i 3eqtr4ri sumeq1 oveq12d 3eqtr4a a1i cmpt
      wi ccom cseq cuz simprl nnuz syl6eleq wf adantlr eqid simprr f1of syl fco
      fmptd syl2anc wral cvv ovex fvmpt2 mpan2 adantl eqtr4d ralrimiva ad2antrr
      simpr nffvmpt1 nfcv nfov nfeq fveq2 eqeq12d rspc sylc fvco3 sylan 3eqtr4d
      seradd addcld fsum sumfc 3eqtr3g expr exlimdv expimpd cfn fz1f1o mpjaod
      wo ) ABJKZBCDLMZENZBCENZBDENZLMZKZBUCOZUDPZQXOUFMZBUAUGZUEZUAUHZRZXHXNUSA
      XHJXIENZJCENZJDENZLMZXJXMUIUILMUIYEYBUJYCUIYDUILCEUKDEUKULXIEUKUMBJXIEUNX
      HXKYCXLYDLBJCEUNBJDEUNUOUPUQAXPXTXNAXPRXSXNUAAXPXSXNAXPXSRZRZBIUGZEBXIURZ
      OZINZBYHEBCURZOZINZBYHEBDURZOZINZLMZXJXMYGXOLYIXRUTZQVAOXOLYLXRUTZQVAOZXO
      LYOXRUTZQVAOZLMYKYRYGUBYTUUBYSQXOYGXOUDQVBOAXPXSVCZVDVEYGXQSUBUGZYTYGBSYL
      VFXQBXRVFZXQSYTVFYGEBCSYLAEUGZBPZCSPZYFGVGZYLVHZVMZYGXSUUFAXPXSVIZXQBXRVJ
      VKZXQBSYLXRVLVNTYGXQSUUEUUBYGBSYOVFUUFXQSUUBVFYGEBDSYOAUUHDSPZYFHVGZYOVHZ
      VMZUUNXQBSYOXRVLVNTYGUUEXQPZRZUUEXROZYIOZUVAYLOZUVAYOOZLMZUUEYSOZUUEYTOZU
      UEUUBOZLMUUTUVABPUUGYIOZUUGYLOZUUGYOOZLMZKZEBVOZUVBUVEKZYGXQBUUEXRUUNTAUV
      NYFUUSAUVMEBAUUHRZUVIXIUVLUUHUVIXIKZAUUHXIVPPUVQCDLVQEBXIVPYIYIVHZVRVSVTU
      VPUVJCUVKDLUVPUUHUUIUVJCKAUUHWDZGEBCSYLUUKVRVNUVPUUHUUOUVKDKUVSHEBDSYOUUQ
      VRVNUOWAWBWCUVMUVOEUVABEUVBUVEEBXIUVAWEEUVCUVDLEBCUVAWEELWFEBDUVAWEWGWHUU
      GUVAKZUVIUVBUVLUVEUUGUVAYIWIUVTUVJUVCUVKUVDLUUGUVAYLWIUUGUVAYOWIUOWJWKWLY
      GUUFUUSUVFUVBKUUNXQBUUEYIXRWMWNZUUTUVGUVCUVHUVDLYGUUFUUSUVGUVCKUUNXQBUUEY
      LXRWMWNZYGUUFUUSUVHUVDKUUNXQBUUEYOXRWMWNZUOWOWPYGBYJUVBIUBXRYSXOYHUVAYIWI
      UUDUUMYGBSYHYIYGEBXISYIYGUUHRCDUUJUUPWQUVRVMTUWAWRYGYNUUAYQUUCLYGBYMUVCIU
      BXRYTXOYHUVAYLWIUUDUUMYGBSYHYLUULTUWBWRYGBYPUVDIUBXRUUBXOYHUVAYOWIUUDUUMY
      GBSYHYOUURTUWCWRUOWOBXIIEWSYNXKYQXLLBCIEWSBDIEWSULWTXAXBXCABXDPXHYAXGFBUA
      XEVKXF $.
  $}

  ${
    $d k A $.  $d k B $.  $d k ph $.  $d k U $.
    fsumsplit.1 $e |- ( ph -> ( A i^i B ) = (/) ) $.
    fsumsplit.2 $e |- ( ph -> U = ( A u. B ) ) $.
    fsumsplit.3 $e |- ( ph -> U e. Fin ) $.
    fsumsplit.4 $e |- ( ( ph /\ k e. U ) -> C e. CC ) $.
    $( Split a sum into two parts.  (Contributed by Mario Carneiro,
       18-Aug-2013.)  (Revised by Mario Carneiro, 22-Apr-2014.) $)
    fsumsplit $p |- ( ph -> sum_ k e. U C =
                          ( sum_ k e. A C + sum_ k e. B C ) ) $=
      ( csu caddc co wcel cc0 wss cc wceq syldan wa cv cif wral cuz cfv cfn cun
      wo ssun1 syl5sseqr sselda ralrimiva olcd sumss2 syl21anc oveq12d 0cn ifcl
      ssun2 sylancl fsumadd eleq2d elun syl6bb biimpa iftrue adantl wn noel cin
      wi c0 elin syl5rbbr mtbii imnan sylibr imp iffalsed addid1d eqtrd addid2d
      con2d jaodan sumeq2dv 3eqtr2rd ) ABDFKZCDFKZLMEFUAZBNZDOUBZFKZEWICNZDOUBZ
      FKZLMEWKWNLMZFKEDFKAWGWLWHWOLABEPDQNZFBUCEOUDUEPZEUFNZUHZWGWLRABCUGZBEBCU
      IHUJZAWQFBAWJWIENZWQABEWIXBUKJSZULAWSWRIUMZBEDFOUNUOACEPWQFCUCWTWHWORAXAC
      ECBUSHUJZAWQFCAWMXCWQACEWIXFUKJSZULXECEDFOUNUOUPAEWKWNFIAXCTZWQOQNZWKQNJU
      QWJDOQURUTXHWQXIWNQNJUQWMDOQURUTVAAEWPDFAXCWJWMUHZWPDRZAXCXJAXCWIXANXJAEX
      AWIHVBWIBCVCVDVEAWJXKWMAWJTZWPDOLMDXLWKDWNOLWJWKDRAWJDOVFVGXLWMDOAWJWMVHZ
      AWJWMTZVHWJXMVKAWIVLNZXNWIVIXNWIBCVJZNAXOWIBCVMAXPVLWIGVBVNVOWJWMVPVQZVRV
      SUPXLDXDVTWAAWMTZWPODLMDXRWKOWNDLXRWJDOAWMWJVHAWJWMXQWCVRVSWMWNDRAWMDOVFV
      GUPXRDXGWBWAWDSWEWF $.
  $}

  ${
    $d A j k $.  $d B j k $.  $d C j $.  $d U j k $.  $d j ph $.
    fsumsplitf.ph $e |- F/ k ph $.
    fsumsplitf.ab $e |- ( ph -> ( A i^i B ) = (/) ) $.
    fsumsplitf.u $e |- ( ph -> U = ( A u. B ) ) $.
    fsumsplitf.fi $e |- ( ph -> U e. Fin ) $.
    fsumsplitf.c $e |- ( ( ph /\ k e. U ) -> C e. CC ) $.
    $( Split a sum into two parts.  A version of ~ fsumsplit using
       bound-variable hypotheses instead of distinct variable conditions.
       (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    fsumsplitf $p |- ( ph -> sum_ k e. U C = ( sum_ k e. A C + sum_ k e. B C )
       ) $=
      ( vj csu csb caddc wceq nfcv a1i wcel cc cv co csbeq1a nfcsb1v cbvsum nfv
      wa wi nfan nfel1 nfim eleq1 anbi2d eleq1d imbi12d chvar csbco csbid eqtri
      fsumsplit eqtrd eqid cbvsumi oveq12i 3eqtrd ) AEDFMZEFLUAZDNZLMZBVHLMZCVH
      LMZOUBZBDFMZCDFMZOUBZVFVIPAEDVHFLFVGDUCZLEQFEQLDQZFVGDUDZUERABCVHELHIJAFU
      AZESZUGZDTSZUHAVGESZUGZVHTSZUHFLWDWEFAWCFGWCFUFUIFVHTVRUJUKVSVGPZWAWDWBWE
      WFVTWCAVSVGEULUMWFDVHTVPUNUOKUPUTVLVOPAVJVMVKVNOVJVMVMBVHDLFVGVSPZVHLVSVH
      NZDLVSVHUCWHDPWGWHFVSDNDFLVSDUQFDURUSRVAZFBQLBQVRVQUEVMVBUSCVHDLFVRVQWIVC
      VDRVE $.
  $}

  ${
    $d A m n $.  $d B m n $.  $d M k m n $.  $d V k m n $.
    sumsnf.1 $e |- F/_ k B $.
    sumsnf.2 $e |- ( k = M -> A = B ) $.
    $( A sum of a singleton is the term.  A version of ~ sumsn using
       bound-variable hypotheses instead of distinct variable conditions.
       (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    sumsnf $p |- ( ( M e. V /\ B e. CC ) -> sum_ k e. { M } A = B ) $=
      ( vm vn wcel cc wa csn c1 cfv csb cn 1nn sylancr wceq csu caddc cseq nfcv
      cop cv nfcsb1v csbeq1a cbvsumi csbeq1 a1i wf1o co simpl f1osng cz wb fzsn
      cfz f1oeq2 mp2b sylibr elsni adantl csbeq1d wnfc csbiegf ad2antrr eqeltrd
      1z simplr elfz1eq fveq2d fvsng sylan9eqr simpr 3eqtr4rd fsum syl5eq seq1i
      eqtrd ) DEJZBKJZLZDMZACUAZNUBNBUEMZNUCOZBWDWFWECHUFZAPZHUAWHWEAWJCHHAUDCW
      IAUGCWIAUHUIWDWEWJCIUFZNDUEMZOZAPZHIWLWGNCWIWMAUJNQJZWDRUKWDNMZWEWLULZNNU
      SUMZWEWLULZWDWOWBWQRWBWCUNZNDQEUOSNUPJWRWPTWSWQUQVJNURWRWPWEWLUTVAVBWDWIW
      EJZLZWJCDAPZKXBCWIDAXAWIDTWDWIDVCVDVEXBXCBKWBXCBTZWCXACDABECBVFWBFUKGVGZV
      HWBWCXAVKVIVIWDWKWRJZLZXCBWNWKWGOZWBXDWCXFXEVHXGCWMDAXFWDWMNWLOZDXFWKNWLW
      KNVLZVMWDWOWBXIDTRWTNDQEVNSVOVEXFWDXHNWGOZBXFWKNWGXJVMWDWOWCXKBTRWBWCVPNB
      QKVNSZVOVQVRVSWDBUBWGNVJXLVTWA $.
  $}

  ${
    $d A k $.  $d B k $.  $d V k $.
    fsumsplitsn.ph $e |- F/ k ph $.
    fsumsplitsn.kd $e |- F/_ k D $.
    fsumsplitsn.a $e |- ( ph -> A e. Fin ) $.
    fsumsplitsn.b $e |- ( ph -> B e. V ) $.
    fsumsplitsn.ba $e |- ( ph -> -. B e. A ) $.
    fsumsplitsn.c $e |- ( ( ph /\ k e. A ) -> C e. CC ) $.
    fsumsplitsn.d $e |- ( k = B -> C = D ) $.
    fsumsplitsn.dcn $e |- ( ph -> D e. CC ) $.
    $( Separate out a term in a finite sum.  (Contributed by Glauco Siliprandi,
       5-Apr-2020.) $)
    fsumsplitsn $p |- ( ph -> sum_ k e. ( A u. { B } ) C = ( sum_ k e. A C + D
       ) ) $=
      ( csu caddc wcel wceq wa csn cun co wn cin c0 disjsn sylibr eqidd cfn a1i
      snfi unfi syl2anc cv cc adantlr simpll elunnel1 syl adantll adantl adantr
      elsni eqeltrd pm2.61dan fsumsplitf sumsnf oveq2d eqtrd ) ABCUAZUBZDFPBDFP
      ZVKDFPZQUCVMEQUCABVKDVLFHACBRUDBVKUEUFSLBCUGUHAVLUIABUJRVKUJRZVLUJRJVOACU
      LUKBVKUMUNAFUOZVLRZTZVPBRZDUPRZAVSVTVQMUQVRVSUDZTAVPCSZVTAVQWAURVQWAWBAVQ
      WATVPVKRWBVPBVKUSVPCVDUTVAAWBTDEUPWBDESANVBAEUPRZWBOVCVEUNVFVGAVNEVMQACGR
      WCVNESKODEFCGINVHUNVIVJ $.
  $}

  ${
    $d m n A $.  $d k m n B $.  $d k m n M $.  $d k m n V $.
    fsum1.1 $e |- ( k = M -> A = B ) $.
    $( A sum of a singleton is the term.  (Contributed by Mario Carneiro,
       22-Apr-2014.) $)
    sumsn $p |- ( ( M e. V /\ B e. CC ) -> sum_ k e. { M } A = B ) $=
      ( vm vn wcel cc wa csn csu c1 cfv csb cn 1nn sylancr wceq caddc cseq nfcv
      cop cv nfcsb1v csbeq1a cbvsumi csbeq1 a1i wf1o co simpl f1osng cz wb fzsn
      cfz f1oeq2 mp2b sylibr elsni adantl csbeq1d nfcvd csbiegf ad2antrr simplr
      1z eqeltrd elfz1eq fveq2d fvsng sylan9eqr simpr 3eqtr4rd fsum seq1i eqtrd
      syl5eq ) DEIZBJIZKZDLZACMZNUANBUDLZNUBOZBWCWEWDCGUEZAPZGMWGWDAWICGGAUCCWH
      AUFCWHAUGUHWCWDWICHUEZNDUDLZOZAPZGHWKWFNCWHWLAUINQIZWCRUJWCNLZWDWKUKZNNUR
      ULZWDWKUKZWCWNWAWPRWAWBUMZNDQEUNSNUOIWQWOTWRWPUPVINUQWQWOWDWKUSUTVAWCWHWD
      IZKZWICDAPZJXACWHDAWTWHDTWCWHDVBVCVDXAXBBJWAXBBTZWBWTCDABEWACBVEFVFZVGWAW
      BWTVHVJVJWCWJWQIZKZXBBWMWJWFOZWAXCWBXEXDVGXFCWLDAXEWCWLNWKOZDXEWJNWKWJNVK
      ZVLWCWNWAXHDTRWSNDQEVMSVNVDXEWCXGNWFOZBXEWJNWFXIVLWCWNWBXJBTRWAWBVONBQJVM
      SZVNVPVQVTWCBUAWFNVIXKVRVS $.

    $( The finite sum of ` A ( k ) ` from ` k = M ` to ` M ` (i.e. a sum with
       only one term) is ` B ` i.e. ` A ( M ) ` .  (Contributed by NM,
       8-Nov-2005.)  (Revised by Mario Carneiro, 21-Apr-2014.) $)
    fsum1 $p |- ( ( M e. ZZ /\ B e. CC ) -> sum_ k e. ( M ... M ) A = B ) $=
      ( cz wcel cc wa cfz co csu csn wceq fzsn adantr sumeq1d sumsn eqtrd ) DFG
      ZBHGZIZDDJKZACLDMZACLBUBUCUDACTUCUDNUADOPQABCDFERS $.
  $}

  ${
    $d k A $.  $d k B $.  $d k D $.  $d k E $.  $d k ph $.  $d k V $.
    $d k W $.
    sumpr.1 $e |- ( k = A -> C = D ) $.
    sumpr.2 $e |- ( k = B -> C = E ) $.
    sumpr.3 $e |- ( ph -> ( D e. CC /\ E e. CC ) ) $.
    sumpr.4 $e |- ( ph -> ( A e. V /\ B e. W ) ) $.
    sumpr.5 $e |- ( ph -> A =/= B ) $.
    $( A sum over a pair is the sum of the elements.  (Contributed by Thierry
       Arnoux, 12-Dec-2016.) $)
    sumpr $p |- ( ph -> sum_ k e. { A , B } C = ( D + E ) ) $=
      ( csu csn caddc wceq wcel cc cpr co wne cin disjsn2 syl cun df-pr a1i cfn
      c0 prfi wral wa wb eleq1d ralprg mpbird r19.21bi fsumsplit simpld syl2anc
      cv sumsn simprd oveq12d eqtrd ) ABCUAZDFOBPZDFOZCPZDFOZQUBEGQUBAVIVKDVHFA
      BCUCVIVKUDUKRNBCUEUFVHVIVKUGRABCUHUIVHUJSABCULUIADTSZFVHAVMFVHUMZETSZGTSZ
      UNZLABHSZCISZUNVNVQUOMVMVOVPFBCHIFVCZBRDETJUPVTCRDGTKUPUQUFURUSUTAVJEVLGQ
      AVRVOVJERAVRVSMVAAVOVPLVADEFBHJVDVBAVSVPVLGRAVRVSMVEAVOVPLVEDGFCIKVDVBVFV
      G $.
  $}

  ${
    $d k A $.  $d k B $.  $d k C $.  $d k E $.  $d k F $.  $d k G $.
    $d k ph $.  $d k V $.  $d k W $.  $d k X $.
    sumtp.e $e |- ( k = A -> D = E ) $.
    sumtp.f $e |- ( k = B -> D = F ) $.
    sumtp.g $e |- ( k = C -> D = G ) $.
    sumtp.c $e |- ( ph -> ( E e. CC /\ F e. CC /\ G e. CC ) ) $.
    sumtp.v $e |- ( ph -> ( A e. V /\ B e. W /\ C e. X ) ) $.
    sumtp.1 $e |- ( ph -> A =/= B ) $.
    sumtp.2 $e |- ( ph -> A =/= C ) $.
    sumtp.3 $e |- ( ph -> B =/= C ) $.
    $( A sum over a triple is the sum of the elements.  (Contributed by AV,
       24-Jul-2020.) $)
    sumtp $p |- ( ph -> sum_ k e. { A , B , C } D = ( ( E + F ) + G ) ) $=
      ( ctp csu cpr csn caddc co wcel wn cin c0 necomd nelprd disjsn sylibr cun
      wceq df-tp a1i cfn tpfi cc wral w3a wb eleq1d raltpg syl mpbird fsumsplit
      cv r19.21bi wa 3simpa sumpr simp3d sumsn syl2anc oveq12d eqtrd ) ABCDUAZE
      FUBBCUCZEFUBZDUDZEFUBZUEUFGHUEUFZIUEUFAWAWCEVTFADWAUGUHWAWCUIUJUPADBCABDS
      UKACDTUKULWADUMUNVTWAWCUOUPABCDUQURVTUSUGABCDUTURAEVAUGZFVTAWFFVTVBZGVAUG
      ZHVAUGZIVAUGZVCZPABJUGZCKUGZDLUGZVCZWGWKVDQWFWHWIWJFBCDJKLFVJZBUPEGVAMVEW
      PCUPEHVANVEWPDUPEIVAOVEVFVGVHVKVIAWBWEWDIUEABCEGFHJKMNAWKWHWIVLPWHWIWJVMV
      GAWOWLWMVLQWLWMWNVMVGRVNAWNWJWDIUPAWLWMWNQVOAWHWIWJPVOEIFDLOVPVQVRVS $.
  $}

  ${
    $d n A $.  $d k n M $.  $d n V $.
    $( A sum of a singleton is the term.  (Contributed by Mario Carneiro,
       22-Apr-2014.) $)
    sumsns $p |- ( ( M e. V /\ [_ M / k ]_ A e. CC ) ->
                   sum_ k e. { M } A = [_ M / k ]_ A ) $=
      ( vn wcel csb cc wa csn csu cv nfcv nfcsb1v csbeq1a cbvsumi csbeq1 syl5eq
      sumsn ) CDFBCAGZHFICJZABKUABELZAGZEKTUAAUCBEEAMBUBANBUBAOPUCTECDBUBCAQSR
      $.
  $}

  ${
    $d k B $.  $d k M $.  $d k N $.  $d k ph $.
    fsumm1.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    fsumm1.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> A e. CC ) $.
    ${
      fsumm1.3 $e |- ( k = N -> A = B ) $.
      $( Separate out the last term in a finite sum.  (Contributed by Mario
         Carneiro, 26-Apr-2014.) $)
      fsumm1 $p |- ( ph -> sum_ k e. ( M ... N ) A =
                         ( sum_ k e. ( M ... ( N - 1 ) ) A + B ) ) $=
        ( cfz co csu c1 caddc cz wcel wceq cuz syl cc cmin csn cin eluzelz fzsn
        cfv ineq2d clt wbr zred ltm1d fzdisj eqtr3d cun eluzel2 peano2zm ax-1cn
        zcnd npcan sylancl fveq2d eleqtrrd eluzp1m1 syl2anc fzsuc2 oveq2d sneqd
        c0 uneq2d fzfid fsumsplit eluzfz2 ralrimiva cv eleq1d rspcv sumsn eqtrd
        wral sylc ) AEFJKZBDLEFMUAKZJKZBDLZFUBZBDLZNKWDCNKAWCWEBWADAWCFFJKZUCZW
        CWEUCVHAWGWEWCAFOPZWGWEQAFERUFZPZWIGEFUDSZFUESUGAWBFUHUIWHVHQAFAFWLUJUK
        EWBFFULSUMAWCWBMNKZUBZUNZWAWCWEUNAEWMJKZWOWAAEOPZWBEMUAKZRUFPZWPWOQAWKW
        QGEFUOSZAWROPZFWRMNKZRUFZPWSAWQXAWTEUPSAFWJXCGAXBERAETPMTPZXBEQAEWTURUQ
        EMUSUTVAVBWRFVCVDEWBVEVDAWMFEJAFTPXDWMFQAFWLURUQFMUSUTZVFUMAWNWEWCAWMFX
        EVGVIUMAEFVJHVKAWFCWDNAWKCTPZWFCQGAFWAPZBTPZDWAVSXFAWKXGGEFVLSAXHDWAHVM
        XHXFDFWADVNFQBCTIVOVPVTBCDFWJIVQVDVFVR $.

      $( Separate out the last term in a finite sum.  (Contributed by Mario
         Carneiro, 13-Apr-2016.) $)
      fzosump1 $p |- ( ph -> sum_ k e. ( M ..^ ( N + 1 ) ) A =
                           ( sum_ k e. ( M ..^ N ) A + B ) ) $=
        ( cfzo co csu caddc c1 cmin cfz wcel wceq syl sumeq1d cz cuz cfv fzoval
        eluzelz oveq1d fsumm1 fzval3 3eqtr2rd ) AEFJKZBDLZCMKEFNOKPKZBDLZCMKEFP
        KZBDLEFNMKJKZBDLAUKUMCMAUJULBDAFUAQZUJULRAFEUBUCQUPGEFUESZEFUDSTUFABCDE
        FGHIUGAUNUOBDAUPUNUORUQEFUHSTUI $.
    $}

    fsum1p.3 $e |- ( k = M -> A = B ) $.
    $( Separate out the first term in a finite sum.  (Contributed by NM,
       3-Jan-2006.)  (Revised by Mario Carneiro, 23-Apr-2014.) $)
    fsum1p $p |- ( ph -> sum_ k e. ( M ... N ) A =
                       ( B + sum_ k e. ( ( M + 1 ) ... N ) A ) ) $=
      ( cfz co csu caddc cin c0 cz wcel wceq syl cc csn c1 cuz cfv eluzel2 fzsn
      ineq1d clt wbr ltp1d fzdisj eqtr3d cun eluzfz1 fzsplit uneq1d eqtrd fzfid
      zred fsumsplit wral ralrimiva cv eleq1d rspcv sylc sumsn syl2anc oveq1d )
      AEFJKZBDLEUAZBDLZEUBMKZFJKZBDLZMKCVOMKAVKVNBVJDAEEJKZVNNZVKVNNOAVPVKVNAEP
      QZVPVKRAFEUCUDQZVRGEFUESZEUFSZUGAEVMUHUIVQORAEAEVTUSUJEEVMFUKSULAVJVPVNUM
      ZVKVNUMAEVJQZVJWBRAVSWCGEFUNSZEEFUOSAVPVKVNWAUPUQAEFURHUTAVLCVOMAVRCTQZVL
      CRVTAWCBTQZDVJVAWEWDAWFDVJHVBWFWEDEVJDVCERBCTIVDVEVFBCDEPIVGVHVIUQ $.
  $}

  ${
    $d A k x $.  $d B x $.  $d Z k x $.
    $( A finite sum all of whose summands are integers is itself an integer
       (case where the summation set is the union of a finite set and a
       singleton).  (Contributed by Alexander van der Vekens, 1-Sep-2018.)
       (Revised by AV, 17-Dec-2021.) $)
    fsummsnunz $p |- ( ( A e. Fin /\ A. k e. ( A u. { Z } ) B e. ZZ )
                       -> sum_ k e. ( A u. { Z } ) B e. ZZ ) $=
      ( vx cfn wcel cz csn cun wral wa csu cv nfcv nfcsb1v csbeq1a cbvsumi snfi
      csb a1i unfi syldan wi rspcsbela expcom adantl imp fsumzcl syl5eqel ) AFG
      ZBHGCADIZJZKZLZUMBCMUMCENZBTZEMHUMBUQCEEBOCUPBPCUPBQRUOUMUQEUKUNULFGZUMFG
      URUODSUAAULUBUCUOUPUMGZUQHGZUNUSUTUDUKUSUNUTCUPUMBHUEUFUGUHUIUJ $.

    $d V x $.
    $( Separate out a term in a finite sum by splitting the sum into two parts.
       (Contributed by Alexander van der Vekens, 1-Sep-2018.)  (Revised by AV,
       17-Dec-2021.) $)
    fsumsplitsnun $p |- ( ( A e. Fin /\ ( Z e. V /\ Z e/ A )
                             /\ A. k e. ( A u. { Z } ) B e. ZZ )
                           -> sum_ k e. ( A u. { Z } ) B
                              = ( sum_ k e. A B + [_ Z / k ]_ B ) ) $=
      ( vx cfn wcel wa cz csu caddc co csb wceq 3ad2ant2 rspcsbela zcnd cbvsumi
      syl2anc wnel csn cun wral w3a cv cin c0 df-nel disjsn sylbb2 adantl eqidd
      wn snfi unfi mpan2 3ad2ant1 wi expcom 3ad2ant3 imp fsumsplit nfcv nfcsb1v
      csbeq1a oveq12i 3eqtr4g simp2l snidg adantr elun2 syl simp3 sumsns oveq2d
      cc eqtrd ) AGHZEDHZEAUAZIZBJHCAEUBZUCZUDZUEZWDBCKZABCKZWCBCKZLMZWHCEBNZLM
      WFWDCFUFZBNZFKAWMFKZWCWMFKZLMWGWJWFAWCWMWDFWBVSAWCUGUHOZWEWAWPVTWAEAHUNWP
      EAUIAEUJUKULPWFWDUMVSWBWDGHZWEVSWCGHWQEUOAWCUPUQURWFWLWDHZIWMWFWRWMJHZWEV
      SWRWSUSWBWRWEWSCWLWDBJQUTVAVBRVCWDBWMCFFBVDZCWLBVEZCWLBVFZSWHWNWIWOLABWMC
      FWTXAXBSWCBWMCFWTXAXBSVGVHWFWIWKWHLWFVTWKVQHWIWKOVSVTWAWEVIWFWKWFEWDHZWEW
      KJHWFEWCHZXCWBVSXDWEVTXDWAEDVJVKPEWCAVLVMVSWBWEVNCEWDBJQTRBCEDVOTVPVR $.
  $}

  ${
    $d A k x $.  $d B x $.  $d k x z $.
    $( Obsolete version of ~ fsummsnunz as of 17-Dec-2021.  (Contributed by
       Alexander van der Vekens, 1-Sep-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    fsummsnunzOLD $p |- ( ( A e. Fin /\ A. k e. ( A u. { z } ) B e. ZZ )
                       -> sum_ k e. ( A u. { z } ) B e. ZZ ) $=
      ( vx cfn wcel cz cv csn cun wral wa csu nfcv nfcsb1v csbeq1a cbvsumi snfi
      csb a1i unfi syldan wi rspcsbela expcom adantl imp fsumzcl syl5eqel ) BFG
      ZCHGDBAIZJZKZLZMZUNCDNUNDEIZCTZENHUNCURDEECODUQCPDUQCQRUPUNUREUKUOUMFGZUN
      FGUSUPULSUABUMUBUCUPUQUNGZURHGZUOUTVAUDUKUTUOVADUQUNCHUEUFUGUHUIUJ $.

    $( Obsolete version of ~ fsumsplitsnun as of 17-Dec-2021.  (Contributed by
       Alexander van der Vekens, 1-Sep-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    fsumsplitsnunOLD $p |- ( ( A e. Fin /\ z e/ A
                             /\ A. k e. ( A u. { z } ) B e. ZZ )
                           -> sum_ k e. ( A u. { z } ) B
                              = ( sum_ k e. A B + [_ z / k ]_ B ) ) $=
      ( vx cfn wcel cv wnel cz csu caddc co csb wceq rspcsbela 3ad2ant3 cbvsumi
      zcnd cvv csn cun wral w3a cin c0 df-nel disjsn sylbb2 3ad2ant2 eqidd snfi
      wn unfi mpan2 3ad2ant1 wa wi expcom imp fsumsplit nfcsb1v csbeq1a oveq12i
      nfcv 3eqtr4g cc vex vsnid elun2 ax-mp mpan sumsns sylancr oveq2d eqtrd )
      BFGZAHZBIZCJGDBVRUAZUBZUCZUDZWACDKZBCDKZVTCDKZLMZWEDVRCNZLMWCWADEHZCNZEKB
      WJEKZVTWJEKZLMWDWGWCBVTWJWAEVSVQBVTUEUFOZWBVSVRBGUMWMVRBUGBVRUHUIUJWCWAUK
      VQVSWAFGZWBVQVTFGWNVRULBVTUNUOUPWCWIWAGZUQWJWCWOWJJGZWBVQWOWPURVSWOWBWPDW
      IWACJPUSQUTSVAWACWJDEECVEZDWICVBZDWICVCZRWEWKWFWLLBCWJDEWQWRWSRVTCWJDEWQW
      RWSRVDVFWCWFWHWELWCVRTGWHVGGZWFWHOAVHWBVQWTVSWBWHVRWAGZWBWHJGVRVTGXAAVIVR
      VTBVJVKDVRWACJPVLSQCDVRTVMVNVOVP $.
  $}

  ${
    $d k B $.  $d k M $.  $d k N $.  $d k ph $.
    fsump1.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    fsump1.2 $e |- ( ( ph /\ k e. ( M ... ( N + 1 ) ) ) -> A e. CC ) $.
    fsump1.3 $e |- ( k = ( N + 1 ) -> A = B ) $.
    $( The addition of the next term in a finite sum of ` A ( k ) ` is the
       current term plus ` B ` i.e. ` A ( N + 1 ) ` .  (Contributed by NM,
       4-Nov-2005.)  (Revised by Mario Carneiro, 21-Apr-2014.) $)
    fsump1 $p |- ( ph -> sum_ k e. ( M ... ( N + 1 ) ) A =
                       ( sum_ k e. ( M ... N ) A + B ) ) $=
      ( c1 caddc co cfz csu cmin cuz cfv wcel syl cc peano2uz fsumm1 cz eluzelz
      wceq zcnd ax-1cn pncan sylancl oveq2d sumeq1d oveq1d eqtrd ) AEFJKLZMLBDN
      EUNJOLZMLZBDNZCKLEFMLZBDNZCKLABCDEUNAFEPQZRZUNUTRGEFUASHIUBAUQUSCKAUPURBD
      AUOFEMAFTRJTRUOFUEAFAVAFUCRGEFUDSUFUGFJUHUIUJUKULUM $.
  $}

  ${
    $d k F $.  $d k M $.  $d k ph $.  $d k Z $.
    isumclim.1 $e |- Z = ( ZZ>= ` M ) $.
    isumclim.2 $e |- ( ph -> M e. ZZ ) $.
    isumclim.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    isumclim.4 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
    ${
      isumclim.6 $e |- ( ph -> seq M ( + , F ) ~~> B ) $.
      $( An infinite sum equals the value its series converges to.
         (Contributed by NM, 25-Dec-2005.)  (Revised by Mario Carneiro,
         23-Apr-2014.) $)
      isumclim $p |- ( ph -> sum_ k e. Z A = B ) $=
        ( csu caddc cseq cli cfv isum wfun cc wbr wceq fclim ffun ax-mp funbrfv
        cdm wf mpsyl eqtrd ) AGBDMNEFOZPQZCABDEFGHIJKRPSZAUKCPUAULCUBPUGZTPUHUM
        UCUNTPUDUELUKCPUFUIUJ $.
    $}

    isumclim2.5 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    $( A converging series converges to its infinite sum.  (Contributed by NM,
       2-Jan-2006.)  (Revised by Mario Carneiro, 23-Apr-2014.) $)
    isumclim2 $p |- ( ph -> seq M ( + , F ) ~~> sum_ k e. Z A ) $=
      ( caddc cseq cli cfv csu cdm wcel wbr climdm sylib isum breqtrrd ) ALDEMZ
      UDNOZFBCPNAUDNQRUDUENSKUDTUAABCDEFGHIJUBUC $.
  $}

  ${
    $d j m x A $.  $d j k m x M $.  $d j k m x ph $.  $d j k m x Z $.
    $d j x F $.
    isumclim3.1 $e |- Z = ( ZZ>= ` M ) $.
    isumclim3.2 $e |- ( ph -> M e. ZZ ) $.
    isumclim3.3 $e |- ( ph -> F e. dom ~~> ) $.
    isumclim3.4 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
    isumclim3.5 $e |- ( ( ph /\ j e. Z ) ->
                        ( F ` j ) = sum_ k e. ( M ... j ) A ) $.
    $( The sequence of partial finite sums of a converging infinite series
       converge to the infinite sum of the series.  Note that ` j ` must not
       occur in ` A ` .  (Contributed by NM, 9-Jan-2006.)  (Revised by Mario
       Carneiro, 23-Apr-2014.) $)
    isumclim3 $p |- ( ph -> F ~~> sum_ k e. Z A ) $=
      ( vm vx cli cfv csu wcel wbr cv cdm climdm sylib caddc cmpt cseq sumfc wa
      eqidd cc eqid fmptd ffvelrnda isum syl5eqr cio cvv seqex a1i cfz cres wss
      wceq cuz fzssuz sseqtr4i resmpt ax-mp fveq1i fvres syl5reqr sumeq2i eqtri
      simpr syl6eleq simpl elfzuz syl6eleqr syl2an eqtr2d climeq iotabidv df-fv
      co fsumser 3eqtr4g eqtrd breqtrrd ) AEEOPZGBDQZOAEOUAZREWIOSJEUBUCAWJUDDG
      BUEZFUFZOPZWIAWJGMTZWLPZMQWNGBMDUGAWPMWLFGHIAWOGRZUHWPUIAGUJWOWLADGBUJWLK
      WLUKULUMZUNUOAWMNTZOSZNUPEWSOSZNUPWNWIAWTXANAWSCWMEFUQWKGHWMUQRAUDWLFURUS
      JIACTZGRZUHZXBEPFXBUTWDZBDQZXBWMPZLXDXFXEWPMQZXGXHXEWODXEBUEZPZMQXFXEWPXJ
      MWOXERZXJWOWLXEVAZPWPWOXLXIXEGVBXLXIVCXEFVDPZGFXBVEHVFDGXEBVGVHVIWOXEWLVJ
      VKVLXEBMDUGVMXDWPMWLFXBXDXKUHWPUIXDXBGXMAXCVNHVOXDAWQWPUJRXKAXCVPXKWOXMGW
      OFXBVQHVRWRVSWEUOVTWAWBNWMOWCNEOWCWFWGWH $.
  $}

  ${
    $d m A $.  $d k m B $.  $d k m F $.  $d k m ph $.  $d k m Z $.  $d k m M $.
    isumcl.1 $e |- Z = ( ZZ>= ` M ) $.
    isumcl.2 $e |- ( ph -> M e. ZZ ) $.
    isumcl.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    isumcl.4 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
    ${
      sumnul.5 $e |- ( ph -> -. seq M ( + , F ) e. dom ~~> ) $.
      $( The sum of a non-convergent infinite series evaluates to the empty
         set.  (Contributed by Paul Chapman, 4-Nov-2007.)  (Revised by Mario
         Carneiro, 23-Apr-2014.) $)
      sumnul $p |- ( ph -> sum_ k e. Z A = (/) ) $=
        ( csu caddc cseq cli cfv c0 isum cdm wcel wn wceq ndmfv syl eqtrd ) AFB
        CLMDENZOPZQABCDEFGHIJRAUFOSTUAUGQUBKUFOUCUDUE $.
    $}

    isumcl.5 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    $( The sum of a converging infinite series is a complex number.
       (Contributed by NM, 13-Dec-2005.)  (Revised by Mario Carneiro,
       23-Apr-2014.) $)
    isumcl $p |- ( ph -> sum_ k e. Z A e. CC ) $=
      ( csu caddc cseq cli cfv cc isum cdm wcel fclim ffvelrn sylancr eqeltrd
      wf ) AFBCLMDENZOPZQABCDEFGHIJRAOSZQOUEUFUHTUGQTUAKUHQUFOUBUCUD $.

    summulc.6 $e |- ( ph -> B e. CC ) $.
    $( An infinite sum multiplied by a constant.  (Contributed by NM,
       12-Nov-2005.)  (Revised by Mario Carneiro, 23-Apr-2014.) $)
    isummulc2 $p |- ( ph ->
                      ( B x. sum_ k e. Z A ) = sum_ k e. Z ( B x. A ) ) $=
      ( vm cmul co cfv wcel cc wceq csu cv cmpt sumfc eqidd adantr mulcld fmptd
      wa eqid ffvelrnda isumclim2 wral eqeltrd ralrimiva fveq2 eleq1d sylan cvv
      rspccva simpr ovex fvmpt2 sylancl oveq2d eqtr4d nffvmpt1 nfeq1 rspc mpan9
      eqeq12d isermulc2 isumclim syl5reqr ) AGCBOPZDUAGNUBZDGVOUCZQZNUACGBDUAZO
      PZGVONDUDAVRVTNVQFGHIAVPGRZUIVRUEAGSVPVQADGVOSVQADUBZGRZUIZCBACSRWCMUFKUG
      VQUJZUHUKAVSCNEVQFGHIMABDEFGHIJKLULAWBEQZSRZDGUMWAVPEQZSRZAWGDGWDWFBSJKUN
      UOWGWIDVPGWBVPTZWFWHSWBVPEUPZUQUTURAWBVQQZCWFOPZTZDGUMWAVRCWHOPZTZAWNDGWD
      WLVOWMWDWCVOUSRWLVOTAWCVACBOVBDGVOUSVQWEVCVDWDWFBCOJVEVFUOWNWPDVPGDVRWODG
      VOVPVGVHWJWLVRWMWOWBVPVQUPWJWFWHCOWKVEVKVIVJVLVMVN $.

    $( An infinite sum multiplied by a constant.  (Contributed by NM,
       13-Nov-2005.)  (Revised by Mario Carneiro, 23-Apr-2014.) $)
    isummulc1 $p |- ( ph ->
                      ( sum_ k e. Z A x. B ) = sum_ k e. Z ( A x. B ) ) $=
      ( csu cmul co isummulc2 isumcl mulcomd wcel cv wa adantr sumeq2dv 3eqtr4d
      cc ) ACGBDNZOPGCBOPZDNUGCOPGBCOPZDNABCDEFGHIJKLMQAUGCABDEFGHIJKLRMSAGUIUH
      DADUAGTZUBBCKACUFTUJMUCSUDUE $.

    isumdivc.7 $e |- ( ph -> B =/= 0 ) $.
    $( An infinite sum divided by a constant.  (Contributed by NM, 2-Jan-2006.)
       (Revised by Mario Carneiro, 23-Apr-2014.) $)
    isumdivc $p |- ( ph -> ( sum_ k e. Z A / B ) = sum_ k e. Z ( A / B ) ) $=
      ( csu cdiv co cmul divrecd wcel c1 reccld isummulc1 isumcl adantr cc0 wne
      cv wa cc sumeq2dv 3eqtr4d ) AGBDOZUACPQZRQGBUNRQZDOUMCPQGBCPQZDOABUNDEFGH
      IJKLACMNUBUCAUMCABDEFGHIJKLUDMNSAGUPUODADUHGTZUIBCKACUJTUQMUEACUFUGUQNUES
      UKUL $.
  $}

  ${
    $d j A $.  $d j k F $.  $d j k M $.  $d j k ph $.  $d j k Z $.
    isumrecl.1 $e |- Z = ( ZZ>= ` M ) $.
    isumrecl.2 $e |- ( ph -> M e. ZZ ) $.
    isumrecl.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    isumrecl.4 $e |- ( ( ph /\ k e. Z ) -> A e. RR ) $.
    isumrecl.5 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    $( The sum of a converging infinite real series is a real number.
       (Contributed by Mario Carneiro, 24-Apr-2014.) $)
    isumrecl $p |- ( ph -> sum_ k e. Z A e. RR ) $=
      ( vj csu caddc cseq cv wcel wa recnd cr isumclim2 eqeltrd serfre climrecl
      cfv ffvelrnda ) AFBCMLNDEOZEFGHABCDEFGHIACPZFQRZBJSKUAAFTLPUGACDEFGHUIUHD
      UEBTIJUBUCUFUD $.

    isumge0.6 $e |- ( ( ph /\ k e. Z ) -> 0 <_ A ) $.
    $( An infinite sum of nonnegative terms is nonnegative.  (Contributed by
       Mario Carneiro, 28-Apr-2014.) $)
    isumge0 $p |- ( ph -> 0 <_ sum_ k e. Z A ) $=
      ( vj cc0 cv cfv csu cle caddc breqtrrd cseq wcel wa recnd isumclim2 fveq2
      cli cbvsumv sumeq2dv syl5eq cr eqeltrd iserge0 breqtrd ) ANFMOZDPZMQZFBCQ
      ZRAUQCDEFGHASDEUAURUQUGABCDEFGHIACOZFUBUCZBJUDKUEAUQFUSDPZCQURFUPVAMCUOUS
      DUFUHAFVABCIUIUJZTUTVABUKIJULUTNBVARLITUMVBUN $.
  $}

  ${
    $d j k m F $.  $d j k m G $.  $d j k M $.  $d j k ph $.  $d j k m Z $.
    $d j A $.  $d j B $.
    isumadd.1 $e |- Z = ( ZZ>= ` M ) $.
    isumadd.2 $e |- ( ph -> M e. ZZ ) $.
    isumadd.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    isumadd.4 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
    isumadd.5 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) = B ) $.
    isumadd.6 $e |- ( ( ph /\ k e. Z ) -> B e. CC ) $.
    isumadd.7 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    isumadd.8 $e |- ( ph -> seq M ( + , G ) e. dom ~~> ) $.
    $( Addition of infinite sums.  (Contributed by Mario Carneiro,
       18-Aug-2013.)  (Revised by Mario Carneiro, 23-Apr-2014.) $)
    isumadd $p |- ( ph -> sum_ k e. Z ( A + B ) =
                        ( sum_ k e. Z A + sum_ k e. Z B ) ) $=
      ( caddc cfv wcel cc vm vj co csu cv cmpt wa wceq fveq2 oveq12d eqid fvmpt
      ovex adantl eqtrd cseq cvv isumclim2 seqex a1i eqeltrd serf ffvelrnda cuz
      addcld simpr syl6eleq cfz simpll elfzuz syl6eleqr syl2anc seradd isumclim
      syl climadd ) ABCQUCZHBDUDZHCDUDZQUCDUAHUAUEZERZVTFRZQUCZUFZGHIJADUEZHSZU
      GZWEWDRZWEERZWEFRZQUCZVQWFWHWKUHZAUAWEWCWKHWDVTWEUHWAWIWBWJQVTWEEUIVTWEFU
      IUJWDUKWIWJQUMULZUNWGWIBWJCQKMUJUOWGBCLNVEAVRVSUBQEGUPZQFGUPZQWDGUPZGUQHI
      JABDEGHIJKLOURWPUQSAQWDGUSUTACDFGHIJMNPURAHTUBUEZWNADEGHIJWGWIBTKLVAZVBVC
      AHTWQWOADFGHIJWGWJCTMNVAZVBVCAWQHSZUGZDEFWDGWQXAWQHGVDRZAWTVFIVGXAWEGWQVH
      UCSZUGZAWFWITSAWTXCVIZXCWFXAXCWEXBHWEGWQVJIVKUNZWRVLXDAWFWJTSXEXFWSVLXDWF
      WLXFWMVOVMVPVN $.
  $}

  ${
    $d k A $.  $d k B $.  $d k F $.  $d k G $.  $d k M $.  $d k ph $.
    $d k Z $.
    sumsplit.1 $e |- Z = ( ZZ>= ` M ) $.
    sumsplit.2 $e |- ( ph -> M e. ZZ ) $.
    sumsplit.3 $e |- ( ph -> ( A i^i B ) = (/) ) $.
    sumsplit.4 $e |- ( ph -> ( A u. B ) C_ Z ) $.
    sumsplit.5 $e |- ( ( ph /\ k e. Z ) ->
                       ( F ` k ) = if ( k e. A , C , 0 ) ) $.
    sumsplit.6 $e |- ( ( ph /\ k e. Z ) ->
                       ( G ` k ) = if ( k e. B , C , 0 ) ) $.
    sumsplit.7 $e |- ( ( ph /\ k e. ( A u. B ) ) -> C e. CC ) $.
    sumsplit.8 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    sumsplit.9 $e |- ( ph -> seq M ( + , G ) e. dom ~~> ) $.
    $( Split a sum into two parts.  (Contributed by Mario Carneiro,
       18-Aug-2013.)  (Revised by Mario Carneiro, 23-Apr-2014.) $)
    sumsplit $p |- ( ph -> sum_ k e. ( A u. B ) C =
                         ( sum_ k e. A C + sum_ k e. B C ) ) $=
      ( wcel cc0 cun csu cv cif caddc co wss cc wral cuz cfv cfn wceq ralrimiva
      wo eqimssi a1i orcd sumss2 syl21anc wa iftrue adantl elun1 sylan2 eqeltrd
      wn iffalse 0cn syl6eqel pm2.61dan adantr elun2 isumadd addid1d wi c0 noel
      cin elin eleq2d syl5rbbr mtbii sylibr imp oveq12d 3eqtr4rd addid2d oveq1d
      imnan syl wb biorf elun syl6rbbr ifbid sumeq2sdv unssad unssbd eqtr4d ) A
      BCUAZDEUBZIEUCZXASZDTUDZEUBZBDEUBZCDEUBZUEUFZAXAIUGDUHSZEXAUIIHUJUKZUGZIU
      LSZUOZXBXFUMMAXJEXAPUNAXLXMXLAIXKJUPUQURZXAIDEHUSUTAIXCBSZDTUDZXCCSZDTUDZ
      UEUFZEUBIXQEUBZIXSEUBZUEUFXFXIAXQXSEFGHIJKNAXQUHSZXCISZAXPYCAXPVAZXQDUHXP
      XQDUMAXPDTVBVCZXPAXDXJXCBCVDZPVEZVFXPVGZYCAYIXQTUHXPDTVHZVIVJVCVKVLOAXSUH
      SZYDAXRYKAXRVAXSDUHXRXSDUMAXRDTVBVCXRAXDXJXCCBVMPVEZVFXRVGZYKAYMXSTUHXRDT
      VHZVIVJVCVKZVLQRVNAIXEXTEAXPXEXTUMYEDTUEUFDXTXEYEDYHVOYEXQDXSTUEYFYEYMXST
      UMAXPYMAXPXRVAZVGXPYMVPAXCVQSZYPXCVRYPXCBCVSZSAYQXCBCVTAYRVQXCLWAWBWCXPXR
      WJWDWEYNWKWFXPXEDUMZAXPXDYSYGXDDTVBWKVCWGAYIVAZTXSUEUFZXSXTXEAUUAXSUMYIAX
      SYOWHVLYTXQTXSUEYIXQTUMAYJVCWIYTXDXRDTYIXDXRWLAYIXRXPXRUOXDXPXRWMXCBCWNWO
      VCWPWGVKWQAXGYAXHYBUEABIUGXJEBUIXNXGYAUMABCIMWRAXJEBYHUNXOBIDEHUSUTACIUGX
      JECUIXNXHYBUMABCIMWSAXJECYLUNXOCIDEHUSUTWFWGWT $.
  $}

  ${
    $d k B $.  $d k K $.  $d k M $.  $d k N $.  $d k ph $.
    fsump1i.1 $e |- Z = ( ZZ>= ` M ) $.
    fsump1i.2 $e |- N = ( K + 1 ) $.
    fsump1i.3 $e |- ( k = N -> A = B ) $.
    fsump1i.4 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
    fsump1i.5 $e |- ( ph -> ( K e. Z /\ sum_ k e. ( M ... K ) A = S ) ) $.
    fsump1i.6 $e |- ( ph -> ( S + B ) = T ) $.
    $( Optimized version of ~ fsump1 for making sums of a concrete number of
       terms.  (Contributed by Mario Carneiro, 23-Apr-2014.) $)
    fsump1i $p |- ( ph -> ( N e. Z /\ sum_ k e. ( M ... N ) A = T ) ) $=
      ( wcel cfz co wceq csu c1 caddc cuz cfv simpld syl6eleq peano2uz syl5eqel
      syl6eleqr syl oveq2i sumeq1i cv elfzuz sylan2 eqeq2i sylbir fsump1 syl5eq
      cc simprd oveq1d 3eqtrd jca ) AIJQHIRSZBFUAZETAIGUBUCSZJLAGHUDUEZQZVHJQAG
      JVIAGJQZHGRSBFUAZDTZOUFKUGZVJVHVIJHGUHKUJUKUIAVGVLCUCSZDCUCSEAVGHVHRSZBFU
      AVOVFVPBFIVHHRLULUMABCFHGVNFUNZVPQZAVQJQBVAQVRVQVIJVQHVHUOKUJNUPVQVHTVQIT
      BCTIVHVQLUQMURUSUTAVLDCUCAVKVMOVBVCPVDVE $.
  $}

  ${
    $d j k m w x y z A $.  $d k m w x y z B $.  $d j k m w x y D $.
    $d m w x y z C $.  $d j k m w z ph $.
    fsum2d.1 $e |- ( z = <. j , k >. -> D = C ) $.
    fsum2d.2 $e |- ( ph -> A e. Fin ) $.
    fsum2d.3 $e |- ( ( ph /\ j e. A ) -> B e. Fin ) $.
    fsum2d.4 $e |- ( ( ph /\ ( j e. A /\ k e. B ) ) -> C e. CC ) $.
    ${
      fsum2d.5 $e |- ( ph -> -. y e. x ) $.
      fsum2d.6 $e |- ( ph -> ( x u. { y } ) C_ A ) $.
      fsum2d.7 $e |- ( ps <-> sum_ j e. x sum_ k e. B C =
                             sum_ z e. U_ j e. x ( { j } X. B ) D ) $.
      $( Lemma for ~ fsum2d - induction step.  (Contributed by Mario Carneiro,
         23-Apr-2014.) $)
      fsum2dlem $p |- ( ( ph /\ ps ) ->
                        sum_ j e. ( x u. { y } ) sum_ k e. B C =
                        sum_ z e. U_ j e. ( x u. { y } ) ( { j } X. B ) D ) $=
        ( vm wcel wa cv csu csn caddc co cxp ciun csb cun wceq simpr sylib nfcv
        nfcsb1v nfsum weq csbeq1a adantr sumeq12dv cbvsumi cc wss unssbd sylibr
        vex snss cfn wral ralrimiva nfel1 eleq1d rspc sylc ralrimivva raleqbidv
        nfral r19.21bi fsumcl csbeq1 sumsn syl2anc c2nd cfv cres snfi xpfi wf1o
        sylancr 2ndconst syl fvres adantl mpan9 fsumf1o cop wex elxp nfcri nfan
        nfv nfex opeq1 eqeq2d eqtr2 eleq2d pm5.32da velsn anbi1i equequ1 anbi1d
        syl6rbbr bitrd anbi12d exbidv cbvex bitri nfcsb nfeq2 ad2antlr ad2antrl
        exlimd syl5bi imp syl5eq eqtrd wel c0 syldan fsumsplit wrex eliun xp1st
        cin elsni eqeltrd elin sneq xpeq12d eqtri fveq2 syl6req 3eqtrd sumeq2dv
        op2nd expl eqtr4d oveq12d wn disjsn eqidd ssfi sselda anassrs rexlimiva
        c1st simpl sylbi anim12i 3imtr4i noel syl6bi syl5 ssrdv ss0 iunxun nfxp
        pm2.21i cbviun iunxsn uneq2i iunfi simprl simprrl opeq1d simpll simprrr
        a1i syl12anc ex exlimdvv rexlimdva 3eqtr4d ) ABUAZCUBZGHKUCZJUCZDUBZUDZ
        UWFJUCZUEUFZJUWEJUBZUDZGUGZUHZIEUCZUWIJUWHGUIZUGZIEUCZUEUFZUWEUWIUJZUWF
        JUCZJUXAUWNUHZIEUCZUWDUWGUWPUWJUWSUEUWDBUWGUWPUKABULRUMAUWJUWSUKBAUWJUW
        IJSUBZGUIZJUXEHUIZKUCZSUCZUWSUWIUWFUXHJSSUWFUNJUXFUXGKJUXEGUOZJUXEHUOUP
        JSUQZGUXFHUXGKJUXEGURZUXKHUXGUKKUBZGTZJUXEHURUSUTVAAUXIUWQJUWHHUIZKUCZU
        WSAUWHFTZUXPVBTUXIUXPUKAUWIFVCUXQAUWEUWIFQVDUWHFDVFZVGVEZAUWQUXOKAUXQGV
        HTZJFVIUWQVHTZUXSAUXTJFNVJUXTUYAJUWHFJUWQVHJUWHGUOZVKJDUQZGUWQVHJUWHGUR
        ZVLVMVNZAUXOVBTZKUWQAUXQHVBTZKGVIZJFVIUYFKUWQVIZUXSAUYGJKFGOVOUYHUYIJUW
        HFUYFJKUWQUYBJUXOVBJUWHHUOZVKVQUYCUYGUYFKGUWQUYDUYCHUXOVBJUWHHURZVLVPVM
        VNZVRVSUXHUXPSUWHFSDUQZUXFUWQUXGUXOKJUXEUWHGVTZUYMUXGUXOUKUXMUXFTJUXEUW
        HHVTUSUTWAWBAUXPUWQKUXEUXOUIZSUCZUWSUWQUXOUYOKSSUXOUNKUXEUXOUOZKUXEUXOU
        RZVAAUYPUWRKEUBZWCWDZUXOUIZEUCUWSAUWQUYOUWRVUASEWCUWRWEZUYTKUXEUYTUXOVT
        AUWIVHTUYAUWRVHTUWHWFUYEUWIUWQWGWIAUXQUWRUWQVUBWHUXSUWHUWQFWJWKUYSUWRTZ
        UYSVUBWDUYTUKAUYSUWRWCWLWMAUYIUXEUWQTUYOVBTZUYLUYFVUDKUXEUWQKUYOVBUYQVK
        KSUQUXOUYOVBUYRVLVMWNWOAUWRIVUAEAVUCIVUAUKZVUCUYSUWLUXMWPZUKZUYCUXNUAZU
        AZKWQZJWQZAVUEVUCUYSUXEUXMWPZUKZUXEUWITZUXMUWQTZUAZUAZKWQZSWQVUKSKUYSUW
        IUWQWRVURVUJSJVUQJKVUMVUPJVUMJXAVUNVUOJVUNJXAJKUWQUYBWSWTWTXBVUJSXASJUQ
        ZVUQVUIKVUSVUMVUGVUPVUHVUSVULVUFUYSUXEUWLUXMXCXDVUSVUPUYMUXNUAZVUHVUSVU
        TUYMVUOUAVUPVUSUYMUXNVUOVUSUYMUAZGUWQUXMVVAUYCGUWQUKUXEUWLUWHXEUYDWKXFX
        GVUNUYMVUOSUWHXHXIXLVUSUYMUYCUXNSJDXJXKXMXNXOXPXQAVUJVUEJAJXAJIVUAJKUYT
        UXOJUYTUNUYJXRXSAVUIVUEKAKXAKIVUAKUYTUXOUOXSAVUGVUHVUEAVUGUAZVUHUAZIHUX
        OVUAVUGIHUKZAVUHLXTUYCHUXOUKVVBUXNUYKYAVVCUXMUYTUKZUXOVUAUKVUGVVEAVUHVU
        GUYTVUFWCWDUXMUYSVUFWCUUAUWLUXMJVFKVFUUEUUBXTKUYTUXOURWKUUCUUFYBYBYCYDU
        UDUUGYEYFYEUSUUHAUXBUWKUKBAUWEUWIUWFUXAJADCYGUUIUWEUWIYNZYHUKPUWEUWHUUJ
        VEZAUXAUUKAFVHTUXAFVCUXAVHTZMQFUXAUULWBZAUWLUXATZUWLFTZUWFVBTAUXAFUWLQU
        UMZAVVKUAGHKNAVVKUXNUYGOUUNVSYIYJUSAUXDUWTUKBAUWOUWRIUXCEAUWOUWRYNZYHVC
        VVMYHUKAEVVMYHUYSVVMTZUYSUUPWDZVVFTZAUYSYHTZUYSUWOTZVUCUAVVOUWETZVVOUWI
        TZUAVVNVVPVVRVVSVUCVVTVVRUYSUWNTZJUWEYKVVSJUYSUWEUWNYLVWAVVSJUWEJCYGZVW
        AUAVVOUWLUWEVWAVVOUWLUKZVWBVWAVVOUWMTVWCUYSUWMGYMVVOUWLYOWKWMVWBVWAUUQY
        PUUOUURUYSUWIUWQYMUUSUYSUWOUWRYQVVOUWEUWIYQUUTAVVPVVOYHTZVVQAVVFYHVVOVV
        GXFVWDVVQVVOUVAUVHUVBUVCUVDVVMUVEWKUXCUWOUWRUJZUKAUXCUWOJUWIUWNUHZUJVWE
        JUWEUWIUWNUVFVWFUWRUWOVWFSUWIUXEUDZUXFUGZUHUWRJSUWIUWNVWHSUWNUNJVWGUXFJ
        VWGUNUXJUVGUXKUWMVWGGUXFUWLUXEYRUXLYSUVISUWHVWHUWRUXRUYMVWGUWIUXFUWQUXE
        UWHYRUYNYSUVJYTUVKYTUVRAVVHUWNVHTZJUXAVIUXCVHTVVIAVWIJUXAAVVJUAZUWMVHTU
        XTVWIUWLWFAVVJVVKUXTVVLNYIUWMGWGWIVJJUXAUWNUVLWBAUYSUXCTZIVBTZVWKVWAJUX
        AYKAVWLJUYSUXAUWNYLAVWAVWLJUXAVWAVUMUXEUWMTZUXNUAZUAZKWQSWQVWJVWLSKUYSU
        WMGWRVWJVWOVWLSKVWJVWOVWLVWJVWOUAZIHVBVWPVUGVVDVWPUYSVULVUFVWJVUMVWNUVM
        VWPUXEUWLUXMVWPVWMVUSVWJVUMVWMUXNUVNUXEUWLYOWKUVOYFLWKVWPAVVKUXNUYGAVVJ
        VWOUVPVWJVVKVWOVVLUSVWJVUMVWMUXNUVQOUVSYPUVTUWAYCUWBYCYDYJUSUWC $.
    $}

    $d x y ph $.
    $( Write a double sum as a sum over a two-dimensional region.  Note that
       ` B ( j ) ` is a function of ` j ` .  (Contributed by Mario Carneiro,
       27-Apr-2014.) $)
    fsum2d $p |- ( ph -> sum_ j e. A sum_ k e. B C =
                         sum_ z e. U_ j e. A ( { j } X. B ) D ) $=
      ( wss csu cv ciun wceq wcel wi c0 vw vx csn cxp ssid cfn cun sseq1 sumeq1
      iuneq1 sumeq1d eqeq12d imbi12d imbi2d cc0 sum0 0iun sumeq1i 3eqtr4ri 2a1i
      vy wn wa ssun1 sstr mpan imim1i simpll syl sylan cc simplr biid fsum2dlem
      simpr exp31 a2d syl5 expcom adantl findcard2s mpcom mpi ) ACCMZCDEHNZGNZG
      CGOZUCDUDZPZFBNZQZCUECUFRZAWDWKSZJAUAOZCMZWNWEGNZGWNWHPZFBNZQZSZSATCMZTWE
      GNZGTWHPZFBNZQZSZSAUBOZCMZXGWEGNZGXGWHPZFBNZQZSZSZAXGVAOZUCZUGZCMZXQWEGNZ
      GXQWHPZFBNZQZSZSZAWMSUAUBVACWNTQZWTXFAYEWOXAWSXEWNTCUHYEWPXBWRXDWNTWEGUIY
      EWQXCFBGWNTWHUJUKULUMUNWNXGQZWTXMAYFWOXHWSXLWNXGCUHYFWPXIWRXKWNXGWEGUIYFW
      QXJFBGWNXGWHUJUKULUMUNWNXQQZWTYCAYGWOXRWSYBWNXQCUHYGWPXSWRYAWNXQWEGUIYGWQ
      XTFBGWNXQWHUJUKULUMUNWNCQZWTWMAYHWOWDWSWKWNCCUHYHWPWFWRWJWNCWEGUIYHWQWIFB
      GWNCWHUJUKULUMUNXEAXATFBNUOXDXBFBUPXCTFBGWHUQURWEGUPUSUTXOXGRVBZXNYDSXGUF
      RYIAXMYCAYIXMYCSXMXRXLSAYIVCZYCXRXHXLXGXQMXRXHXGXPVDXGXQCVEVFVGYJXRXLYBYJ
      XRXLYBYJXRVCZXLUBVABCDEFGHIYKAWLAYIXRVHZJVIYKAWGCRZDUFRYLKVJYKAYMHODRVCEV
      KRYLLVJAYIXRVLYJXRVOXLVMVNVPVQVRVSVQVTWAWBWC $.
  $}

  ${
    $d j k z A $.  $d j k z B $.  $d z C $.  $d j k D $.  $d j k z ph $.
    fsumxp.1 $e |- ( z = <. j , k >. -> D = C ) $.
    fsumxp.2 $e |- ( ph -> A e. Fin ) $.
    fsumxp.3 $e |- ( ph -> B e. Fin ) $.
    fsumxp.4 $e |- ( ( ph /\ ( j e. A /\ k e. B ) ) -> C e. CC ) $.
    $( Combine two sums into a single sum over the cartesian product.
       (Contributed by Mario Carneiro, 23-Apr-2014.) $)
    fsumxp $p |- ( ph -> sum_ j e. A sum_ k e. B C =
                         sum_ z e. ( A X. B ) D ) $=
      ( csu cv csn cxp ciun cfn wcel adantr fsum2d iunxpconst sumeq1i syl6eq )
      ACDEHMGMGCGNZODPQZFBMCDPZFBMABCDEFGHIJADRSUECSKTLUAUFUGFBGCDUBUCUD $.
  $}

  ${
    $d x y z A $.  $d j k y B $.  $d j k x C $.  $d x y z ph $.  $d x y D $.
    fsumcnv.1 $e |- ( x = <. j , k >. -> B = D ) $.
    fsumcnv.2 $e |- ( y = <. k , j >. -> C = D ) $.
    fsumcnv.3 $e |- ( ph -> A e. Fin ) $.
    fsumcnv.4 $e |- ( ph -> Rel A ) $.
    fsumcnv.5 $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
    $( Transform a region of summation by using the converse operation.
       (Contributed by Mario Carneiro, 23-Apr-2014.) $)
    fsumcnv $p |- ( ph -> sum_ x e. A B = sum_ y e. `' A C ) $=
      ( vz ccnv cv cfv csb wceq csu c2nd c1st csn cuni cmpt cop csbeq1a fvex wa
      opex csbie opeq12 csbeq1d syl5eqr csbie2 syl6eqr cfn wcel cnvfi wf1o wrel
      syl relcnv cnvf1o ax-mp wb dfrel2 sylib f1oeq3 mpbii 1st2nd mpan eqeltrrd
      fveq2d id sneq cnveqd unieqd opswap syl6eq eqid fvmpt eqtrd adantl ancoms
      fsumf1o sumeq2i ) ADEBUADPZHCQZUBRZIWJUCRZGSSZCUAWIFCUAADEWIWMBCOWIOQZUDZ
      PZUEZUFZWKWLUGZBQWSTEBWSESZWMBWSEUHHIWKWLGWTWJUBUIZWJUCUIZHQZWKTZIQZWLTZU
      JZGBXCXEUGZESWTBXHEGXCXEUKJULXGBXHWSEXCXEWKWLUMUNUOUPUQADURUSWIURUSLDUTVC
      AWIWIPZWRVAZWIDWRVAZWIVBZXJDVDZOWIVEVFAXIDTZXJXKVGADVBXNMDVHVIXIDWIWRVJVC
      VKWJWIUSZWJWRRZWSTAXOXPWLWKUGZWRRZWSXOWJXQWRXLXOWJXQTZXMWJWIVLVMZVOXOXQWI
      USXRWSTXOWJXQWIXTXOVPVNOXQWQWSWIWRWNXQTZWQXQUDZPZUEWSYAWPYCYAWOYBWNXQVQVR
      VSWLWKVTWAWRWBWKWLUKWCVCWDWENWGWIFWMCXOFCXQFSZWMXOXSFYDTXTCXQFUHVCHIWKWLG
      YDXAXBXGGCXEXCUGZFSYDCYEFGXEXCUKKULXGCYEXQFXFXDYEXQTXEXCWLWKUMWFUNUOUPUQW
      HUQ $.
  $}

  ${
    $d j k m n x y z A $.  $d j k m n w x y z C $.  $d j k m n w x y z ph $.
    $d k m n x y z B $.  $d j m n w x y z D $.  $d m n w z E $.
    fsumcom2.1 $e |- ( ph -> A e. Fin ) $.
    fsumcom2.2 $e |- ( ph -> C e. Fin ) $.
    fsumcom2.3 $e |- ( ( ph /\ j e. A ) -> B e. Fin ) $.
    fsumcom2.4 $e |- ( ph ->
      ( ( j e. A /\ k e. B ) <-> ( k e. C /\ j e. D ) ) ) $.
    fsumcom2.5 $e |- ( ( ph /\ ( j e. A /\ k e. B ) ) -> E e. CC ) $.
    $( Interchange order of summation.  Note that ` B ( j ) ` and ` D ( k ) `
       are not necessarily constant expressions.  (Contributed by Mario
       Carneiro, 28-Apr-2014.)  (Revised by Mario Carneiro, 8-Apr-2016.)
       (Proof shortened by JJ, 2-Aug-2021.) $)
    fsumcom2 $p |- ( ph -> sum_ j e. A sum_ k e. B E =
                           sum_ k e. C sum_ j e. D E ) $=
      ( vm vn csb csu wceq wcel wa vz vw vx vy csn cxp ciun c2nd c1st ccnv wrel
      cv cfv wral relxp rgenw reliun mpbir relcnv cop wex wb weq ancom vex opth
      3bitr4i a1i anbi12d 2exbidv eliunxp opelcnv excom 3bitri 3bitr4g eqrelrdv
      nfcv nfcsb1v csbeq1a xpeq12d cbviun cnveqi 3eqtr3g sumeq1d op1std csbeq1d
      nfxp sneq op2ndd csbeq2dv eqtrd cfn snfi adantr opeliunxp2f sylbbr adantl
      wrex eleqtrrd eliun sylib simpr opelxp simpld elsni syl eqeltrd rexlimiva
      simpl expr ssrdv ssfid xpfi sylancr ralrimiva iunfi syl2anc mprgbir xp2nd
      cc xp1st nfcri wi equcomd eleq2d biimpa ralrimivva nfel1 eleq1d raleqbidv
      rspc mpan9 csbeq1 rspcv sylc fsum2d nfsum cbvsumi sumeq12dv syl5eq eqtr4d
      sylbi rexlimi nfral syl5com impr syl12anc fsumcnv 3eqtr4d nfcsb 3eqtr4g )
      ABFNULZCPZGOULZFUULHPZPZOQZNQZDGUUNEPZUUPNQZOQZBCHGQZFQDEHFQZGQANBUULUEZU
      UMUFZUGZGUAULZUHUMZFUVGUIUMZHPZPZUAQZODUUNUEZUUSUFZUGZGUBULZUIUMZFUVPUHUM
      ZHPZPZUBQZUURUVAAUVLUVOUJZUVKUAQUWAAUVFUWBUVKUAAFBFULZUEZCUFZUGZGDGULZUEZ
      EUFZUGZUJZUVFUWBAUCUDUWFUWKUWFUKUWEUKZFBUNUWLFBUWDCUOUPFBUWEUQURUWJUSAUCU
      LZUDULZUTZUWCUWGUTRZUWCBSZUWGCSTZTZGVAFVAUWNUWMUTZUWGUWCUTRZUWGDSUWCESTZT
      ZGVAFVAZUWOUWFSUWOUWKSZAUWSUXCFGAUWPUXAUWRUXBUWPUXAVBAUCFVCZUDGVCZTUXGUXF
      TUWPUXAUXFUXGVDUWMUWNUWCUWGUCVEZUDVEZVFUWNUWMUWGUWCUXIUXHVFVGVHLVIVJFGBCU
      WOVKUXEUWTUWJSUXCFVAGVAUXDUWMUWNUWJUXHUXIVLGFDEUWTVKUXCGFVMVNVOVPZFNBUWEU
      VENUWEVQFUVDUUMFUVDVQFUULCVRZWGFNVCZUWDUVDCUUMUWCUULWHFUULCVSZVTWAUWJUVOG
      ODUWIUVNOUWIVQGUVMUUSGUVMVQGUUNEVRZWGGOVCZUWHUVMEUUSUWGUUNWHGUUNEVSZVTWAW
      BWCWDAUBUAUVOUVTUVKUUPONUVPUUNUULUTZRZUVTGUUNUVSPUUPUXRGUVQUUNUVSUUNUULUV
      POVEZNVEZWEWFUXRGUUNUVSUUOUXRFUVRUULHUUNUULUVPUXSUXTWIWFWJWKZUVGUULUUNUTZ
      RZUVKGUUNUVJPUUPUYCGUVHUUNUVJUULUUNUVGUXTUXSWIWFUYCGUUNUVJUUOUYCFUVIUULHU
      ULUUNUVGUXTUXSWEWFWJWKZADWLSUVNWLSZODUNUVOWLSJAUYEODAUUNDSZTZUVMWLSUUSWLS
      UYEUUNWMUYGBUUSABWLSUYFIWNUYGNUUSBAUYFUULUUSSZUULBSZAUYFUYHTZTZUYBUWESZFB
      WRZUYIUYKUYBUWFSUYMUYKUYBUWKUWFUYJUYBUWKSZAUYNUXQUWJSUYJUULUUNUWJUXTUXSVL
      GDEUUNUULUUSUXNUXPWOWPWQAUWFUWKRUYJUXJWNWSFUYBBUWEWTXAZUYLUYIFBUWQUYLTZUU
      LUWCBUYPUULUWDSZNFVCUYPUYQUUNCSZUYPUYLUYQUYRTZUWQUYLXBUULUUNUWDCXCZXAXDUU
      LUWCXEZXFUWQUYLXIXGXHXFZXJXKXLZUVMUUSXMXNXOODUVNXPXQUVOUKZAVUDUVNUKZODODU
      VNUQVUEUYFUVMUUSUOVHXRVHAUVPUVOSZTZUVRGUVQEPZSZGUVQUUOPZXTSZNVUHUNZUVTXTS
      ZVUGUVPUVNSZODWRZVUIVUGVUFVUOAVUFXBOUVPDUVNWTXAZVUNVUIODUYFVUNTZUVRUUSVUH
      VUNUVRUUSSUYFUVPUVMUUSXSWQVUQGUVQUUNEVUQUVQUVMSZUVQUUNRVUNVURUYFUVPUVMUUS
      YAWQUVQUUNXEXFZWFWSXHXFVUGUVQDSZUUPXTSZNUUSUNZODUNZVULVUGVUOVUTVUPVUNVUTO
      DVUQUVQUUNDVUSUYFVUNXIXGXHXFAVVCVUFAVVAONDUUSUYKAUYIUUNUUMSZVVAAUYJXIVUBU
      YKUYMVVDUYOUYLVVDFBFOUUMUXKYBUYLVVDYCUWQUYLUYSVVDUYTUYQUYRVVDUYQCUUMUUNUY
      QUXLCUUMRUYQNFVUAYDUXMXFYEYFUUBVHUUCXFAUYIVVDVVAAUYITUUOXTSZGUUMUNZVVDVVA
      AHXTSZGCUNZFBUNUYIVVFAVVGFGBCMYGVVHVVFFUULBVVEFGUUMUXKFUUOXTFUULHVRZYHUUD
      UXLVVGVVEGCUUMUXMUXLHUUOXTFUULHVSZYIYJYKYLVVEVVAGUUNUUMGUUPXTGUUNUUOVRZYH
      UXOUUOUUPXTGUUNUUOVSZYIYKUUEUUFZUUGZYGWNVVBVULOUVQDUUNUVQRZVVAVUKNUUSVUHG
      UUNUVQEYMVVOUUPVUJXTGUUNUVQUUOYMYIYJYNYOVUKVUMNUVRVUHUULUVRRZVUJUVTXTVVPG
      UVQUUOUVSFUULUVRHYMWJYIYNYOUUHUUAAUABUUMUUPUVKNOUYDIACWLSZFBUNUYIUUMWLSZA
      VVQFBKXOVVQVVRFUULBFUUMWLUXKYHUXLCUUMWLUXMYIYKYLVVMYPAUBDUUSUUPUVTONUYAJV
      UCVVNYPUUIBUVBUUQFNNUVBVQFUUMUUPOUXKFGUUNUUOFUUNVQVVIUUJYQUXLUVBCGUUNHPZO
      QUUQCHVVSGOOHVQGUUNHVRGUUNHVSYRUXLCUUMVVSUUPOUXMUXLVVSUUPRUYRUXLGUUNHUUOV
      VJWJWNYSYTYRDUVCUUTGOOUVCVQGUUSUUPNUXNVVKYQUXOUVCEUUONQUUTEHUUOFNNHVQVVIV
      VJYRUXOEUUSUUOUUPNUXPUXOUUOUUPRUULESVVLWNYSYTYRUUK $.

    $( Obsolete proof of ~ fsumcom2 as of 2-Aug-2021.  (Contributed by Mario
       Carneiro, 28-Apr-2014.)  (Revised by Mario Carneiro, 8-Apr-2016.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    fsumcom2OLD $p |- ( ph -> sum_ j e. A sum_ k e. B E =
                           sum_ k e. C sum_ j e. D E ) $=
      ( vm vn csb csu wceq wcel wa vz vw vx vy csn cxp ciun c2nd c1st ccnv wrel
      cv cfv wral relxp rgenw reliun mpbir relcnv cop wex wb weq ancom vex opth
      3bitr4i a1i anbi12d 2exbidv eliunxp opelcnv excom 3bitri 3bitr4g eqrelrdv
      nfcv nfcsb1v csbeq1a xpeq12d cbviun cnveqi 3eqtr3g sumeq1d op1std csbeq1d
      nfxp sneq op2ndd csbeq2dv eqtrd cfn snfi wss adantr nfcri vsnid syl6eqelr
      biantrurd opelxp syl6rbbr eleq2d bitrd rspce eliun sylibr adantl eleqtrrd
      wrex sylib simpr simpld elsni syl simpl eqeltrd rexlimiva expr ssrdv ssfi
      id syl2anc xpfi sylancr ralrimiva ralrimivva nfel1 eleq1d raleqbidv mpan9
      cc rspc csbeq1 rspcv sylc fsum2d nfsum cbvsumi sumeq12dv syl5eq wi eqcomd
      iunfi mprgbir xp2nd xp1st biimpa sylbi rexlimi nfral syl5com impr fsumcnv
      syl12anc eqtr4d 3eqtr4d nfcsb 3eqtr4g ) ABFNULZCPZGOULZFUUSHPZPZOQZNQZDGU
      VAEPZUVCNQZOQZBCHGQZFQDEHFQZGQANBUUSUEZUUTUFZUGZGUAULZUHUMZFUVNUIUMZHPZPZ
      UAQZODUVAUEZUVFUFZUGZGUBULZUIUMZFUWCUHUMZHPZPZUBQZUVEUVHAUVSUWBUJZUVRUAQU
      WHAUVMUWIUVRUAAFBFULZUEZCUFZUGZGDGULZUEZEUFZUGZUJZUVMUWIAUCUDUWMUWRUWMUKU
      WLUKZFBUNUWSFBUWKCUOUPFBUWLUQURUWQUSAUCULZUDULZUTZUWJUWNUTRZUWJBSZUWNCSTZ
      TZGVAFVAUXAUWTUTZUWNUWJUTRZUWNDSUWJESTZTZGVAFVAZUXBUWMSUXBUWRSZAUXFUXJFGA
      UXCUXHUXEUXIUXCUXHVBAUCFVCZUDGVCZTUXNUXMTUXCUXHUXMUXNVDUWTUXAUWJUWNUCVEZU
      DVEZVFUXAUWTUWNUWJUXPUXOVFVGVHLVIVJFGBCUXBVKUXLUXGUWQSUXJFVAGVAUXKUWTUXAU
      WQUXOUXPVLGFDEUXGVKUXJGFVMVNVOVPZFNBUWLUVLNUWLVQFUVKUUTFUVKVQFUUSCVRZWGFN
      VCZUWKUVKCUUTUWJUUSWHFUUSCVSZVTWAUWQUWBGODUWPUWAOUWPVQGUVTUVFGUVTVQGUVAEV
      RZWGGOVCZUWOUVTEUVFUWNUVAWHGUVAEVSZVTWAWBWCWDAUBUAUWBUWGUVRUVCONUWCUVAUUS
      UTZRZUWGGUVAUWFPUVCUYEGUWDUVAUWFUVAUUSUWCOVEZNVEZWEWFUYEGUVAUWFUVBUYEFUWE
      UUSHUVAUUSUWCUYFUYGWIWFWJWKZUVNUUSUVAUTZRZUVRGUVAUVQPUVCUYJGUVOUVAUVQUUSU
      VAUVNUYGUYFWIWFUYJGUVAUVQUVBUYJFUVPUUSHUUSUVAUVNUYGUYFWEWFWJWKZADWLSUWAWL
      SZODUNUWBWLSJAUYLODAUVADSZTZUVTWLSUVFWLSZUYLUVAWMUYNBWLSZUVFBWNUYOAUYPUYM
      IWOUYNNUVFBAUYMUUSUVFSZUUSBSZAUYMUYQTZTZUYIUWLSZFBXIZUYRUYTUYIUWMSVUBUYTU
      YIUWRUWMUYSUYIUWRSZAUYSUYDUWQSZVUCUYSUYDUWPSZGDXIVUDVUEUYQGUVADGNUVFUYAWP
      UYBVUEUUSESZUYQUYBVUFUVAUWOSZVUFTVUEUYBVUGVUFUYBUVAUWNUWOUYBYAGWQWRWSUVAU
      USUWOEWTXAUYBEUVFUUSUYCXBXCXDGUYDDUWPXEXFUUSUVAUWQUYGUYFVLXFXGAUWMUWRRUYS
      UXQWOXHFUYIBUWLXEXJZVUAUYRFBUXDVUATZUUSUWJBVUIUUSUWKSZNFVCVUIVUJUVACSZVUI
      VUAVUJVUKTZUXDVUAXKUUSUVAUWKCWTZXJXLUUSUWJXMZXNUXDVUAXOXPXQXNZXRXSBUVFXTY
      BZUVTUVFYCYDYEODUWAUUCYBUWBUKZAVUQUWAUKZODODUWAUQVURUYMUVTUVFUOVHUUDVHAUW
      CUWBSZTZUWEGUWDEPZSZGUWDUVBPZYKSZNVVAUNZUWGYKSZVUTUWCUWASZODXIZVVBVUTVUSV
      VHAVUSXKOUWCDUWAXEXJZVVGVVBODUYMVVGTZUWEUVFVVAVVGUWEUVFSUYMUWCUVTUVFUUEXG
      VVJGUWDUVAEVVJUWDUVTSZUWDUVARVVGVVKUYMUWCUVTUVFUUFXGUWDUVAXMXNZWFXHXQXNVU
      TUWDDSZUVCYKSZNUVFUNZODUNZVVEVUTVVHVVMVVIVVGVVMODVVJUWDUVADVVLUYMVVGXOXPX
      QXNAVVPVUSAVVNONDUVFUYTAUYRUVAUUTSZVVNAUYSXOVUOUYTVUBVVQVUHVUAVVQFBFOUUTU
      XRWPVUAVVQUUAUXDVUAVULVVQVUMVUJVUKVVQVUJCUUTUVAVUJUXSCUUTRVUJUUSUWJVUNUUB
      UXTXNXBUUGUUHVHUUIXNAUYRVVQVVNAUYRTUVBYKSZGUUTUNZVVQVVNAHYKSZGCUNZFBUNUYR
      VVSAVVTFGBCMYFVWAVVSFUUSBVVRFGUUTUXRFUVBYKFUUSHVRZYGUUJUXSVVTVVRGCUUTUXTU
      XSHUVBYKFUUSHVSZYHYIYLYJVVRVVNGUVAUUTGUVCYKGUVAUVBVRZYGUYBUVBUVCYKGUVAUVB
      VSZYHYLUUKUULZUUNZYFWOVVOVVEOUWDDUVAUWDRZVVNVVDNUVFVVAGUVAUWDEYMVWHUVCVVC
      YKGUVAUWDUVBYMYHYIYNYOVVDVVFNUWEVVAUUSUWERZVVCUWGYKVWIGUWDUVBUWFFUUSUWEHY
      MWJYHYNYOUUMUUOAUABUUTUVCUVRNOUYKIACWLSZFBUNUYRUUTWLSZAVWJFBKYEVWJVWKFUUS
      BFUUTWLUXRYGUXSCUUTWLUXTYHYLYJVWFYPAUBDUVFUVCUWGONUYHJVUPVWGYPUUPBUVIUVDF
      NNUVIVQFUUTUVCOUXRFGUVAUVBFUVAVQVWBUUQYQUXSUVICGUVAHPZOQUVDCHVWLGOOHVQGUV
      AHVRGUVAHVSYRUXSCUUTVWLUVCOUXTUXSVWLUVCRVUKUXSGUVAHUVBVWCWJWOYSYTYRDUVJUV
      GGOOUVJVQGUVFUVCNUYAVWDYQUYBUVJEUVBNQUVGEHUVBFNNHVQVWBVWCYRUYBEUVFUVBUVCN
      UYCUYBUVBUVCRVUFVWEWOYSYTYRUUR $.
  $}

  ${
    $d j k A $.  $d j k B $.  $d j k ph $.
    fsumcom.1 $e |- ( ph -> A e. Fin ) $.
    fsumcom.2 $e |- ( ph -> B e. Fin ) $.
    fsumcom.3 $e |- ( ( ph /\ ( j e. A /\ k e. B ) ) -> C e. CC ) $.
    $( Interchange order of summation.  (Contributed by NM, 15-Nov-2005.)
       (Revised by Mario Carneiro, 23-Apr-2014.) $)
    fsumcom $p |- ( ph -> sum_ j e. A sum_ k e. B C =
                          sum_ k e. B sum_ j e. A C ) $=
      ( cfn wcel cv adantr wa wb ancom a1i fsumcom2 ) ABCCBEFDGHACJKELBKZHMSFLC
      KZNTSNOASTPQIR $.
  $}

  ${
    $d j k N $.
    $( Lemma for ~ fsum0diag .  (Contributed by Mario Carneiro, 28-Apr-2014.)
       (Revised by Mario Carneiro, 8-Apr-2016.) $)
    fsum0diaglem $p |- ( ( j e. ( 0 ... N ) /\ k e. ( 0 ... ( N - j ) ) ) ->
        ( k e. ( 0 ... N ) /\ j e. ( 0 ... ( N - k ) ) ) ) $=
      ( cv cc0 cfz co wcel cmin cuz cfv cle adantr zred elfzelz zsubcld syl2anc
      wbr cz wb wss elfzle1 cn0 elfz3nn0 nn0zd subge02d mpbid eluz mpbird fzss2
      wa syl simpr sseldd adantl elfzle2 lesubd elfzuz elfz5 jca ) ADZECFGZHZBD
      ZECVAIGZFGZHZUKZVDVBHVAECVDIGZFGHZVHVFVBVDVHCVEJKHZVFVBUAVHVKVECLRZVHEVAL
      RZVLVCVMVGVAECUBMVHCVAVHCVHCVCCUCHVGVACUDMUEZNZVHVAVCVASHVGVAECOMZNZUFUGV
      HVESHCSHVKVLTVHCVAVNVPPVNVECUHQUIVEECUJULVCVGUMUNVHVJVAVILRZVHVDCVAVHVDVG
      VDSHVCVDEVEOUOZNVOVQVGVDVELRVCVDEVEUPUOUQVHVAEJKHZVISHVJVRTVCVTVGVAECURMV
      HCVDVNVSPVAEVIUSQUIUT $.
  $}

  ${
    $d j k N $.  $d j k ph $.
    fsum0diag.1 $e |- ( ( ph /\ ( j e. ( 0 ... N ) /\
                          k e. ( 0 ... ( N - j ) ) ) ) -> A e. CC ) $.
    $( Two ways to express "the sum of ` A ( j , k ) ` over the triangular
       region ` M <_ j ` , ` M <_ k ` , ` j + k <_ N ` ."  (Contributed by NM,
       31-Dec-2005.)  (Proof shortened by Mario Carneiro, 28-Apr-2014.)
       (Revised by Mario Carneiro, 8-Apr-2016.) $)
    fsum0diag $p |- ( ph ->
                     sum_ j e. ( 0 ... N ) sum_ k e. ( 0 ... ( N - j ) ) A =
                     sum_ k e. ( 0 ... N ) sum_ j e. ( 0 ... ( N - k ) ) A ) $=
      ( cc0 cfz co cv cmin fzfid wcel wa wb fsum0diaglem impbii a1i fsumcom2 )
      AGEHIZGECJZKIZHIZTGEDJZKIHIZCDBAGELZUFAUATMZNGUBLUGUDUCMNZUDTMUAUEMNZOAUH
      UICDEPDCEPQRFS $.
  $}

  ${
    $d j k K $.  $d j k M $.  $d j k N $.  $d j k ph $.
    mptfzshft.1 $e |- ( ph -> K e. ZZ ) $.
    mptfzshft.2 $e |- ( ph -> M e. ZZ ) $.
    mptfzshft.3 $e |- ( ph -> N e. ZZ ) $.
    $( 1-1 onto function in maps-to notation which shifts a finite set of
       sequential integers.  Formerly part of proof for ~ fsumshft .
       (Contributed by AV, 24-Aug-2019.) $)
    mptfzshft $p |- ( ph -> ( j e. ( ( M + K ) ... ( N + K ) )
     |-> ( j - K ) ) : ( ( M + K ) ... ( N + K ) ) -1-1-onto-> ( M ... N ) ) $=
      ( vk caddc co cmin wfn wcel wceq wa cz adantr cc zcn cfz cmpt ccnv fnmpti
      cv wf1o ovex eqid a1i simprr oveq1d elfzelz ad2antrl npcan syl2an syl2anc
      eqtr2d simprl eqeltrrd wb zsubcld eqeltrd syl22anc mpbird jca mpbid pncan
      fzaddel impbida mptcnv fneq1d mpbiri dff1o4 sylanbrc ) ABDCJKZECJKZUAKZBU
      EZCLKZUBZVQMZVTUCZDEUAKZMZVQWCVTUFWAABVQVSVTVRCLUGVTUHUDUIAWDIWCIUEZCJKZU
      BZWCMIWCWFWGWECJUGWGUHUDAWCWBWGABIVQVSWCWFAVRVQNZWEVSOZPZWEWCNZVRWFOZPZAW
      JPZWKWLWNWKWFVQNZWNVRWFVQWNWFVSCJKZVRWNWEVSCJAWHWIUJZUKWNVRQNZCQNZWPVROZW
      HWRAWIVRVOVPULUMZAWSWJFRZWRVRSNCSNZWTWSVRTCTZVRCUNUOUPUQZAWHWIURUSWNDQNZE
      QNZWEQNZWSWKWOUTZAXFWJGRAXGWJHRWNWEVSQWQWNVRCXAXBVAVBXBWECDEVHZVCVDXEVEAW
      MPZWHWIXKVRWFVQAWKWLUJZXKWKWOAWKWLURXKXFXGXHWSXIAXFWMGRAXGWMHRWKXHAWLWEDE
      ULUMZAWSWMFRZXJVCVFVBXKVSWFCLKZWEXKVRWFCLXLUKXKXHWSXOWEOZXMXNXHWESNXCXPWS
      WETXDWECVGUOUPUQVEVIVJVKVLVQWCVTVMVN $.
  $}

  ${
    $d k m A $.  $d j B $.  $d j k m K $.  $d j k m M $.  $d j k m N $.
    $d j k m ph $.
    fsumrev.1 $e |- ( ph -> K e. ZZ ) $.
    fsumrev.2 $e |- ( ph -> M e. ZZ ) $.
    fsumrev.3 $e |- ( ph -> N e. ZZ ) $.
    fsumrev.4 $e |- ( ( ph /\ j e. ( M ... N ) ) -> A e. CC ) $.
    ${
      fsumrev.5 $e |- ( j = ( K - k ) -> A = B ) $.
      $( Reversal of a finite sum.  (Contributed by NM, 26-Nov-2005.)  (Revised
         by Mario Carneiro, 24-Apr-2014.) $)
      fsumrev $p |- ( ph -> sum_ j e. ( M ... N ) A =
                            sum_ k e. ( ( K - N ) ... ( K - M ) ) B ) $=
        ( co cmin wcel wceq wa cz adantr cfz cmpt fzfid wfn ccnv wf1o ovex eqid
        cv fnmpti a1i simprr simprl wb elfzelz syl fzrev syl22anc mpbid eqeltrd
        oveq2d zcn nncan syl2an syl2anc eqtr2d jca fzrev2 impbida mptcnv fneq1d
        cc mpbiri dff1o4 sylanbrc cfv oveq2 fvmpt adantl fsumf1o ) AGHUANZBFHON
        ZFGONZUANZCDEDWDFDUIZONZUBZFEUIZONZMAWBWCUCAWGWDUDZWGUEZWAUDZWDWAWGUFWJ
        ADWDWFWGFWEOUGWGUHZUJUKAWLEWAWIUBZWAUDEWAWIWNFWHOUGZWNUHUJAWAWKWNADEWDW
        FWAWIAWEWDPZWHWFQZRZWHWAPZWEWIQZRZAWRRZWSWTXBWHWFWAAWPWQULZXBWPWFWAPZAW
        PWQUMZXBGSPZHSPZFSPZWESPZWPXDUNAXFWRJTAXGWRKTAXHWRITZXBWPXIXEWEWBWCUOUP
        ZFWEGHUQURUSUTXBWIFWFONZWEXBWHWFFOXCVAXBXHXIXLWEQZXJXKXHFVLPZWEVLPXMXIF
        VBZWEVBFWEVCVDVEVFVGAXARZWPWQXPWEWIWDAWSWTULZXPWSWIWDPZAWSWTUMZXPXFXGXH
        WHSPZWSXRUNAXFXAJTAXGXAKTAXHXAITZXPWSXTXSWHGHUOUPZFWHGHVHURUSUTXPWFFWIO
        NZWHXPWEWIFOXQVAXPXHXTYCWHQZYAYBXHXNWHVLPYDXTXOWHVBFWHVCVDVEVFVGVIVJVKV
        MWDWAWGVNVOWHWDPWHWGVPWIQADWHWFWIWDWGWEWHFOVQWMWOVRVSLVT $.
    $}

    ${
      fsumshft.5 $e |- ( j = ( k - K ) -> A = B ) $.
      $( Index shift of a finite sum.  (Contributed by NM, 27-Nov-2005.)
         (Revised by Mario Carneiro, 24-Apr-2014.)  (Proof shortened by AV,
         8-Sep-2019.) $)
      fsumshft $p |- ( ph -> sum_ j e. ( M ... N ) A =
                             sum_ k e. ( ( M + K ) ... ( N + K ) ) B ) $=
        ( cfz co caddc cv cmin cmpt fzfid mptfzshft wcel wceq oveq1 eqid adantl
        cfv ovex fvmpt fsumf1o ) AGHNOBGFPOZHFPOZNOZCDEDUMDQZFROZSZEQZFROZMAUKU
        LTADFGHIJKUAUQUMUBUQUPUGURUCADUQUOURUMUPUNUQFRUDUPUEUQFRUHUIUFLUJ $.
    $}

    ${
      fsumshftm.5 $e |- ( j = ( k + K ) -> A = B ) $.
      $( Negative index shift of a finite sum.  (Contributed by NM,
         28-Nov-2005.)  (Revised by Mario Carneiro, 24-Apr-2014.) $)
      fsumshftm $p |- ( ph -> sum_ j e. ( M ... N ) A =
                              sum_ k e. ( ( M - K ) ... ( N - K ) ) B ) $=
        ( vm cfz co csu caddc cc wcel cv cmin nfcv nfcsb1v csbeq1a cbvsumi cneg
        csb znegcld wral ralrimiva nfel1 wceq eleq1d rspc mpan9 csbeq1 fsumshft
        zcnd negsubd oveq12d sumeq1d elfzelz subneg syl2anr csbeq1d ovex syl6eq
        wa csbie sumeq2dv 3eqtrd syl5eq ) AGHOPZBDQVNDNUAZBUHZNQZGFUBPZHFUBPZOP
        ZCEQZVNBVPDNNBUCDVOBUDZDVOBUEZUFAVQGFUGZRPZHWDRPZOPZDEUAZWDUBPZBUHZEQVT
        WJEQWAAVPWJNEWDGHAFIUIJKABSTZDVNUJVOVNTVPSTZAWKDVNLUKWKWLDVOVNDVPSWBULD
        UAVOUMBVPSWCUNUOUPDVOWIBUQURAWGVTWJEAWEVRWFVSOAGFAGJUSAFIUSZUTAHFAHKUSW
        MUTVAVBAVTWJCEAWHVTTZVIZWJDWHFRPZBUHCWODWIWPBWNWHSTFSTWIWPUMAWNWHWHVRVS
        VCUSWMWHFVDVEVFDWPBCWHFRVGMVJVHVKVLVM $.
    $}
  $}

  ${
    $d k A $.  $d j B $.  $d j k M $.  $d j k N $.  $d j k ph $.
    fsumrev2.1 $e |- ( ( ph /\ j e. ( M ... N ) ) -> A e. CC ) $.
    fsumrev2.2 $e |- ( j = ( ( M + N ) - k ) -> A = B ) $.
    $( Reversal of a finite sum.  (Contributed by NM, 27-Nov-2005.)  (Revised
       by Mario Carneiro, 13-Apr-2016.) $)
    fsumrev2 $p |- ( ph -> sum_ j e. ( M ... N ) A =
                           sum_ k e. ( M ... N ) B ) $=
      ( cfz co csu wceq c0 sum0 sumeq1 adantl wcel cmin cz cc0 3eqtr4a wne fzn0
      eqtr4i cuz cfv wa caddc eluzel2 eluzelz zaddcld cv adantlr fsumrev pncand
      cc zcnd pncan2d oveq12d sumeq1d eqtrd sylan2b pm2.61dane ) AFGJKZBDLZVECE
      LZMZVENVENMZVHAVINBDLZNCELZVFVGVJUAVKBDOCEOUEVENBDPVENCEPUBQVENUCAGFUFUGR
      ZVHFGUDAVLUHZVFFGUIKZGSKZVNFSKZJKZCELVGVMBCDEVNFGVMFGVLFTRAFGUJQZVLGTRAFG
      UKQZULVRVSADUMVERBUQRVLHUNIUOVMVQVECEVMVOFVPGJVMFGVMFVRURZVMGVSURZUPVMFGV
      TWAUSUTVAVBVCVD $.
  $}

  ${
    $d j k n x N $.  $d j k n ph $.  $d k n B $.  $d n x A $.  $d n x C $.
    fsum0diag2.1 $e |- ( x = k -> B = A ) $.
    fsum0diag2.2 $e |- ( x = ( k - j ) -> B = C ) $.
    fsum0diag2.3 $e |- ( ( ph /\ ( j e. ( 0 ... N ) /\
                          k e. ( 0 ... ( N - j ) ) ) ) -> A e. CC ) $.
    $( Two ways to express "the sum of ` A ( j , k ) ` over the triangular
       region ` 0 <_ j ` , ` 0 <_ k ` , ` j + k <_ N ` ."  (Contributed by
       Mario Carneiro, 21-Jul-2014.) $)
    fsum0diag2 $p |- ( ph ->
                      sum_ j e. ( 0 ... N ) sum_ k e. ( 0 ... ( N - j ) ) A =
                      sum_ k e. ( 0 ... N ) sum_ j e. ( 0 ... k ) C ) $=
      ( vn cc0 cfz co cmin csu wcel cc wceq cv caddc wa wral fznn0sub2 ad2antll
      csb expr ralrimiv eleq1d cbvralv sylibr adantrr nfcsb1v csbeq1a rspc sylc
      nfel1 fsum0diag mpan9 csbeq1 fsumrev2 cn0 elfz3nn0 ad2antlr elfzelz nn0cn
      cz zcn subcl syl2an syl2anc addid2 syl oveq1d csbeq1d sumeq2dv eqtrd 3syl
      adantl oveq2d adantr sub32 syl3anc sumeq12rdv 3eqtr4d cuz elfzuz3 elfzuzb
      syl3an fzfid cfv sylanbrc wb elfzel2 fzsubel syl22anc mpbid subid eleqtrd
      simpll wss fzss2 sselda fsumcl oveq2 oveq1 sumeq12dv eqtr4d vex csbie a1i
      sumeq2i ovex 3eqtr3g ) AMHNOZMHFUAZPOZNOZBGUAZDUGZGQZFQZXPMXTNOZBXTXQPOZD
      UGZFQZGQZXPXSCGQZFQXPYDEFQZGQAYCXPMMHUBOZLUAZPOZNOZBYMXQPOZDUGZFQZLQZYHAX
      PXSBXRYLPOZDUGZLQZFQXPMHYLPOZNOZYTFQZLQYCYRAYTFLHAXQXPRZYLXSRZUCUCYSXSRZD
      SRZBXSUDZYTSRZUUFUUGAUUEYLXRUEUFAUUEUUIUUFAUUEUCZCSRZGXSUDUUIUUKUULGXSAUU
      EXTXSRZUULKUHUIUUHUULBGXSBUAZXTTZDCSIUJUKULZUMUUHUUJBYSXSBYTSBYSDUNURUUNY
      STDYTSBYSDUOUJUPUQUSAXPYBUUAFUUKYBXSBMXRUBOZYLPOZDUGZLQUUAUUKYAUUSGLMXRUU
      KUUIUUMYASRZUUPUUHUUTBXTXSBYASBXTDUNURUUODYASBXTDUOUJUPUTBXTUURDVAVBUUKXS
      UUSYTLUUKUUFUCZBUURYSDUVAUUQXRYLPUVAXRSRZUUQXRTUVAHVCRZXQVHRZUVBUUEUVCAUU
      FXQHVDVEUUEUVDAUUFXQMHVFVEUVCHSRZXQSRZUVBUVDHVGZXQVIZHXQVJVKVLXRVMVNVOVPV
      QVRVQAXPYQUUDLAYLXPRZUCZYNUUCYPYTFUVJYMUUBMNUVJYKHYLPUVJUVCUVEYKHTUVIUVCA
      YLHVDZVTUVGHVMVSVOZWAUVJXQUUCRZUCZBYOYSDUVNYOUUBXQPOZYSUVJYOUVOTUVMUVJYMU
      UBXQPUVLVOWBUVNUVCYLVHRZUVDUVOYSTZUVIUVCAUVMUVKVEUVIUVPAUVMYLMHVFVEUVMUVD
      UVJXQMUUBVFVTUVCUVEUVPYLSRUVDUVFUVQUVGYLVIUVHHYLXQWCWJWDVRVPWEVQWFAYGYQGL
      MHAXTXPRZUCZYDYFFUVSMXTWKUVSXQYDRZUCZYEXSRUUIYFSRZUWAYEXQXQPOZXRNOZXSUWAX
      TXQHNORZYEUWDRZUWAXTXQWGWLRZHXTWGWLRZUWEUVTUWGUVSXQMXTWHVTUVSUWHUVTUVRUWH
      AXTMHWHVTZWBXTXQHWIWMUWAUVDHVHRZXTVHRZUVDUWEUWFWNUVTUVDUVSXQMXTVFVTZUVRUW
      JAUVTXTMHWOVEUVRUWKAUVTXTMHVFVEUWLXTXQXQHWPWQWRUWAUWCMXRNUWAUVDUVFUWCMTUW
      LUVHXQWSVSVOWTUWAAUUEUUIAUVRUVTXAUVSYDXPXQUVSUWHYDXPXBUWIXTMHXCVNXDUUPVLU
      UHUWBBYEXSBYFSBYEDUNURUUNYETDYFSBYEDUOUJUPUQXEXTYMTZYDYNYFYPFXTYMMNXFUWMY
      FYPTUVTUWMBYEYODXTYMXQPXGVPWBXHVBXIXPYBYIFUUEXSYACGYACTUUEUUMUCBXTDCGXJIX
      KXLVQXMXPYGYJGUVRYDYFEFYFETUVRUVTUCBYEDEXTXQPXNJXKXLVQXMXO $.
  $}

  ${
    $d f k m n A $.  $d f m n B $.  $d f k m n C $.  $d f k m n ph $.
    fsummulc2.1 $e |- ( ph -> A e. Fin ) $.
    fsummulc2.2 $e |- ( ph -> C e. CC ) $.
    fsummulc2.3 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    $( A finite sum multiplied by a constant.  (Contributed by NM,
       12-Nov-2005.)  (Revised by Mario Carneiro, 24-Apr-2014.) $)
    fsummulc2 $p |- ( ph ->
                      ( C x. sum_ k e. A B ) = sum_ k e. A ( C x. B ) ) $=
      ( vm c0 wceq csu cmul co cfv wcel c1 wa cc0 cc vf vn chash cn cfz cv wf1o
      mul01d sumeq1 sum0 syl6eq oveq2d eqeq12d syl5ibrcom cmpt caddc ccom addcl
      wex cseq adantl adantr adddi 3expb sylan cuz simprl nnuz syl6eleq wf eqid
      fmptd ad2antrr simprr syl fco syl2anc simpr ffvelrnd mulcld fvmpt2 eqtr4d
      f1of wral ralrimiva nffvmpt1 nfcv nfov nfeq fveq2 rspc sylc fvco3 3eqtr4d
      ad2antll seqdistr ffvelrnda 3eqtr4rd sumfc oveq2i 3eqtr3g exlimdv expimpd
      fsum expr cfn wo fz1f1o mpjaod ) ABJKZDBCELZMNZBDCMNZELZKZBUCOZUDPZQXPUEN
      ZBUAUFZUGZUAUSZRZAXOXJDSMNZSKADGUHXJXLYCXNSXJXKSDMXJXKJCELSBJCEUICEUJUKUL
      XJXNJXMELSBJXMEUIXMEUJUKUMUNAXQYAXOAXQRXTXOUAAXQXTXOAXQXTRZRZDBIUFZEBCUOZ
      OZILZMNZBYFEBXMUOZOZILZXLXNYEXPUPYKXSUQZQUTODXPUPYGXSUQZQUTOZMNYMYJYEUBID
      UPTMYNYOQXPUBUFZTPZYFTPZRZYQYFUPNZTPYEYQYFURVAYEDTPZYTDUUAMNDYQMNDYFMNUPN
      KZAUUBYDGVBUUBYRYSUUCDYQYFVCVDVEYEXPUDQVFOAXQXTVGZVHVIYEYQXRPZRZXRTYQYOUU
      FBTYGVJZXRBXSVJZXRTYOVJAUUGYDUUEAEBCTYGHYGVKZVLZVMUUFXTUUHYEXTUUEAXQXTVNZ
      VBXRBXSWCZVOZXRBTYGXSVPVQYEUUEVRZVSUUFYQXSOZYKOZDUUOYGOZMNZYQYNOZDYQYOOZM
      NUUFUUOBPEUFZYKOZDUVAYGOZMNZKZEBWDZUUPUURKZUUFXRBYQXSUUMUUNVSAUVFYDUUEAUV
      EEBAUVABPZRZUVBXMUVDUVIUVHXMTPUVBXMKAUVHVRZUVIDCAUUBUVHGVBHVTZEBXMTYKYKVK
      ZWAVQUVIUVCCDMUVIUVHCTPUVCCKUVJHEBCTYGUUIWAVQULWBWEVMUVEUVGEUUOBEUUPUUREB
      XMUUOWFEDUUQMEDWGEMWGEBCUUOWFWHWIUVAUUOKZUVBUUPUVDUURUVAUUOYKWJUVMUVCUUQD
      MUVAUUOYGWJULUMWKWLYEUUHUUEUUSUUPKXTUUHAXQUULWOZXRBYQYKXSWMVEZUUFUUTUUQDM
      YEUUHUUEUUTUUQKUVNXRBYQYGXSWMVEZULWNWPYEBYLUUPIUBXSYNXPYFUUOYKWJUUDUUKYEB
      TYFYKABTYKVJYDAEBXMTYKUVKUVLVLVBWQUVOXDYEYIYPDMYEBYHUUQIUBXSYOXPYFUUOYGWJ
      UUDUUKYEBTYFYGAUUGYDUUJVBWQUVPXDULWRYIXKDMBCIEWSWTBXMIEWSXAXEXBXCABXFPXJY
      BXGFBUAXHVOXI $.

    $( A finite sum multiplied by a constant.  (Contributed by NM,
       13-Nov-2005.)  (Revised by Mario Carneiro, 24-Apr-2014.) $)
    fsummulc1 $p |- ( ph ->
                      ( sum_ k e. A B x. C ) = sum_ k e. A ( B x. C ) ) $=
      ( csu cmul co fsummulc2 fsumcl mulcomd cv wcel wa cc adantr sumeq2dv
      3eqtr4d ) ADBCEIZJKBDCJKZEIUBDJKBCDJKZEIABCDEFGHLAUBDABCEFHMGNABUDUCEAEOB
      PZQCDHADRPUEGSNTUA $.

    fsumdivc.4 $e |- ( ph -> C =/= 0 ) $.
    $( A finite sum divided by a constant.  (Contributed by NM, 2-Jan-2006.)
       (Revised by Mario Carneiro, 24-Apr-2014.) $)
    fsumdivc $p |- ( ph -> ( sum_ k e. A B / C ) = sum_ k e. A ( B / C ) ) $=
      ( csu c1 cdiv co cmul reccld fsummulc1 fsumcl divrecd wcel adantr cc0 wne
      cv wa cc sumeq2dv 3eqtr4d ) ABCEJZKDLMZNMBCUINMZEJUHDLMBCDLMZEJABCUIEFADG
      IOHPAUHDABCEFHQGIRABUKUJEAEUCBSZUDCDHADUESULGTADUAUBULITRUFUG $.
  $}

  ${
    $d k A $.  $d k ph $.
    fsumneg.1 $e |- ( ph -> A e. Fin ) $.
    fsumneg.2 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    $( Negation of a finite sum.  (Contributed by Scott Fenton, 12-Jun-2013.)
       (Revised by Mario Carneiro, 24-Apr-2014.) $)
    fsumneg $p |- ( ph -> sum_ k e. A -u B = -u sum_ k e. A B ) $=
      ( c1 cneg csu cmul co cc wcel neg1cn a1i fsummulc2 fsumcl mulm1d cv wa
      sumeq2dv 3eqtr3rd ) AGHZBCDIZJKBUCCJKZDIUDHBCHZDIABCUCDEUCLMANOFPAUDABCDE
      FQRABUEUFDADSBMTCFRUAUB $.

    fsumsub.3 $e |- ( ( ph /\ k e. A ) -> C e. CC ) $.
    $( Split a finite sum over a subtraction.  (Contributed by Scott Fenton,
       12-Jun-2013.)  (Revised by Mario Carneiro, 24-Apr-2014.) $)
    fsumsub $p |- ( ph -> sum_ k e. A ( B - C ) =
                        ( sum_ k e. A B - sum_ k e. A C ) ) $=
      ( cneg caddc co csu cmin cv wcel wa negcld fsumadd negsubd fsumcl fsumneg
      oveq2d eqtrd sumeq2dv 3eqtr3d ) ABCDIZJKZELZBCELZBDELZIZJKZBCDMKZELUIUJMK
      AUHUIBUFELZJKULABCUFEFGAENBOPZDHQRAUNUKUIJABDEFHUAUBUCABUGUMEUOCDGHSUDAUI
      UJABCEFGTABDEFHTSUE $.
  $}

  ${
    $d j k A $.  $d j k B $.  $d k C $.  $d j D $.  $d j k ph $.
    fsum2mul.1 $e |- ( ph -> A e. Fin ) $.
    fsum2mul.2 $e |- ( ph -> B e. Fin ) $.
    fsum2mul.3 $e |- ( ( ph /\ j e. A ) -> C e. CC ) $.
    fsum2mul.4 $e |- ( ( ph /\ k e. B ) -> D e. CC ) $.
    $( Separate the nested sum of the product ` C ( j ) x. D ( k ) ` .
       (Contributed by NM, 13-Nov-2005.)  (Revised by Mario Carneiro,
       24-Apr-2014.) $)
    fsum2mul $p |- ( ph -> sum_ j e. A sum_ k e. B ( C x. D ) =
                           ( sum_ j e. A C x. sum_ k e. B D ) ) $=
      ( csu cmul co fsumcl fsummulc1 cv wcel wa cfn adantr cc adantlr fsummulc2
      sumeq2dv eqtr2d ) ABDFLCEGLZMNBDUGMNZFLBCDEMNGLZFLABDUGFHACEGIKOJPABUHUIF
      AFQBRZSCEDGACTRUJIUAJAGQCREUBRUJKUCUDUEUF $.
  $}

  ${
    $d f k n A $.  $d f k n B $.
    $( The sum of constant terms ( ` k ` is not free in ` A ` ).  (Contributed
       by NM, 24-Dec-2005.)  (Revised by Mario Carneiro, 24-Apr-2014.) $)
    fsumconst $p |- ( ( A e. Fin /\ B e. CC ) ->
                      sum_ k e. A B = ( ( # ` A ) x. B ) ) $=
      ( vf vn wcel cc wa c0 wceq csu chash cfv cmul co cn c1 cv cc0 syl6eq wf1o
      cfn cfz wex mul02 adantl eqcomd sumeq1 sum0 fveq2 hash0 oveq1d syl5ibrcom
      eqeq12d caddc csn cxp eqidd simprl simprr simpllr simplr elfznn fvconst2g
      cseq syl2an fsum ser1const ad2ant2lr eqtrd expr exlimdv expimpd wo fz1f1o
      adantr mpjaod ) AUBFZBGFZHZAIJZABCKZALMZBNOZJZWCPFZQWCUCOZADRZUAZDUDZHZVT
      WEWASSBNOZJVTWLSVSWLSJVRBUEUFUGWAWBSWDWLWAWBIBCKSAIBCUHBCUITWAWCSBNWAWCIL
      MSAILUJUKTULUNUMVTWFWJWEVTWFHWIWEDVTWFWIWEVTWFWIHZHZWBWCUOPBUPUQZQVEMZWDW
      NABBCEWHWOWCCRZERZWHMJBURVTWFWIUSVTWFWIUTVRVSWMWQAFVAWNVSWRPFWRWOMBJWRWGF
      VRVSWMVBWRWCVCPBWRGVDVFVGVSWFWPWDJVRWIBWCVHVIVJVKVLVMVRWAWKVNVSADVOVPVQ
      $.
  $}

  ${
    $d k A $.  $d k B $.  $d k C $.
    $( The sum of constant terms ( ` k ` is not free in ` C ` ) over an index
       set excluding a singleton.  (Contributed by AV, 7-Jan-2022.) $)
    fsumdifsnconst $p |- ( ( A e. Fin /\ B e. A /\ C e. CC )
                 -> sum_ k e. ( A \ { B } ) C = ( ( ( # ` A ) - 1 ) x. C ) ) $=
      ( cfn wcel cc w3a csn cdif csu chash cfv cmul co c1 cmin wa wceq diffi
      anim1i 3adant2 fsumconst syl hashdifsn 3adant3 oveq1d eqtrd ) AEFZBAFZCGF
      ZHZABIZJZCDKZUNLMZCNOZALMPQOZCNOULUNEFZUKRZUOUQSUIUKUTUJUIUSUKAUMTUAUBUNC
      DUCUDULUPURCNUIUJUPURSUKABUEUFUGUH $.
  $}

  ${
    $d A k $.  $d N k $.  $d k z $.
    $( Lemma 1 for ~ modfsummods .  (Contributed by Alexander van der Vekens,
       1-Sep-2018.) $)
    modfsummodslem1 $p |- ( A. k e. ( A u. { z } ) B e. ZZ
                            -> [_ z / k ]_ B e. ZZ ) $=
      ( cv csn cun wcel cz wral csb vsnid elun2 ax-mp rspcsbela mpan ) AEZBQFZG
      ZHZCIHDSJDQCKIHQRHTALQRBMNDQSCIOP $.

    $( Induction step for ~ modfsummod .  (Contributed by Alexander van der
       Vekens, 1-Sep-2018.) $)
    modfsummods $p |- ( ( A e. Fin /\ N e. NN
                          /\ A. k e. ( A u. { z } ) B e. ZZ )
              -> ( ( sum_ k e. A B mod N ) = ( sum_ k e. A ( B mod N ) mod N )
                   -> ( sum_ k e. ( A u. { z } ) B mod N )
                        = ( sum_ k e. ( A u. { z } ) ( B mod N ) mod N ) ) ) $=
      ( wcel cz wral csu cmo co wceq oveq1d sylbi syl caddc cvv ad2antlr adantr
      wa cv cfn cn csn cun w3a wi wss snssi ssequn1 uncom eqeq1i sumeq1 eqeq12d
      wb eqcoms biimpd a1d wn wnel df-nel csb simp1 simpl simplr3 fsumsplitsnun
      vex jctil syl3anc crp ralunb fsumzcl2 sylan2 3adant2 zred modfsummodslem1
      cr adantl 3ad2ant3 nnrp 3ad2ant2 modaddabs eqcomd simpr jca modabs2 eqtrd
      oveq12d zmodcl nn0zd expcom ralimdv com12 impcom cn0 anim1i ancoms nn0red
      3adant1 imp csbov1g mp1i oveq2d 3eqtrd exp31 sylbir pm2.61i ) AUAZBFZBUBF
      ZEUCFZCGFZDBXHUDZUEZHZUFZBCDIZEJKZBCEJKZDIZEJKZLZXNCDIZEJKZXNXSDIZEJKZLZU
      GZUGZXIXMBUHZYIXHBUIYJXMBUEZBLZYIXMBUJYLYHXPYLYBYGYLXNBLYBYGUOZYKXNBXMBUK
      ULYMBXNBXNLZXRYDYAYFYNXQYCEJBXNCDUMMYNXTYEEJBXNXSDUMMUNUPNUQURNOXIUSXHBUT
      ZYIXHBVAYOXPYBYGYOXPTZYBTZYDXQDXHCVBZPKZEJKZYAYREJKZEJKZPKZEJKZYFYQYCYSEJ
      YQXJXHQFZYOTZXOYCYSLXPXJYOYBXJXKXOVCZRZYQYOUUEYPYOYBYOXPVDSAVGZVHZXJXKXOY
      OYBVEBCDQXHVFVIMYQYTXRUUAPKZEJKZUUDYPYTUULLYBYPUULYTYPXQVQFYRVQFZEVJFZUUL
      YTLYPXQXPXQGFZYOXJXOUUOXKXOXJXLDBHZUUOXOUUPXLDXMHZTZUUPXLDBXMVKZUUPUUQVDN
      BCDVLVMVNVRVOYPYRXPYRGFZYOXOXJUUTXKABCDVPZVSVRVOXPUUNYOXKXJUUNXOEVTWAZVRZ
      XQYREWBVIWCSYQUUKUUCEJYQXRYAUUAUUBPYPYBWDYQUUMUUNTZUUAUUBLYPUVDYBYPUUMUUN
      XPUUMYOXOXJUUMXKXOYRUVAVOVSVRUVCWESUVDUUBUUAYREWFWCOWHMWGYQUUDXTUUAPKZEJK
      ZYFYQXTVQFZUUAVQFZUUNUUDUVFLXPUVGYOYBXPXJXSGFZDBHZTZUVGXPXJUVJUUGXKXOUVJX
      JXOXKUVJXOUURXKUVJUGZUUSUUPUVLUUQXKUUPUVJXKXLUVIDBXLXKUVIXLXKTXSCEWIWJWKZ
      WLWMSNWNWSWEUVKXTBXSDVLVOORXPUVHYOYBXKXOUVHXJXKXOTZUUAUVNUUTXKTZUUAWOFXOX
      KUVOXOUUTXKUVAWPWQYREWIOWRWSRXPUUNYOYBUVBRXTUUAEWBVIYQUVEYEEJYQYEUVEYQYEX
      TDXHXSVBZPKZUVEYQXJUUFUVIDXNHZYEUVQLUUHUUJXPUVRYOYBXKXOUVRXJXKXOUVRXKXLUV
      IDXNUVMWLWTWSRBXSDQXHVFVIYQUVPUUAXTPUUEUVPUUALYQUUIDXHCEJQXAXBXCWGWCMWGXD
      XEXFXG $.
  $}

  ${
    $d A k x y z $.  $d B x y z $.  $d N k x y z $.
    modfsummod.n $e |- ( ph -> N e. NN ) $.
    modfsummod.1 $e |- ( ph -> A e. Fin ) $.
    modfsummod.2 $e |- ( ph -> A. k e. A B e. ZZ ) $.
    $( A finite sum modulo a positive integer equals the finite sum of their
       summands modulo the positive integer, modulo the positive integer.
       (Contributed by Alexander van der Vekens, 1-Sep-2018.) $)
    modfsummod $p |- ( ph -> ( sum_ k e. A B mod N )
                            = ( sum_ k e. A ( B mod N ) mod N ) ) $=
      ( wcel wral csu cmo co wceq wa wi c0 raleq sumeq1 oveq1d vx vy vz cfn csn
      cz cn cv cun anbi1d eqeq12d imbi12d weq cc0 sum0 a1i oveq1i adantl simpll
      syl6reqr simplrr ralun ad2antrl imp modfsummods syl3anc a2d ralunb anbi1i
      ex com23 imbi1i an32 impexp 3bitri syl6ibr findcard2 syl mp2and ) ACUFIZD
      BJZEUGIZBCDKZELMZBCELMZDKZELMZNZHFABUDIWAWBOZWHPZGVTDUAUHZJZWBOZWKCDKZELM
      ZWKWEDKZELMZNZPVTDQJZWBOZQCDKZELMZQWEDKZELMZNZPVTDUBUHZJZWBOZXFCDKZELMZXF
      WEDKZELMZNZPZVTDXFUCUHUEZUIZJZWBOZXPCDKZELMZXPWEDKZELMZNZPZWJUAUBUCBWKQNZ
      WMWTWRXEYEWLWSWBVTDWKQRUJYEWOXBWQXDYEWNXAELWKQCDSTYEWPXCELWKQWEDSTUKULUAU
      BUMZWMXHWRXMYFWLXGWBVTDWKXFRUJYFWOXJWQXLYFWNXIELWKXFCDSTYFWPXKELWKXFWEDST
      UKULWKXPNZWMXRWRYCYGWLXQWBVTDWKXPRUJYGWOXTWQYBYGWNXSELWKXPCDSTYGWPYAELWKX
      PWEDSTUKULWKBNZWMWIWRWHYHWLWAWBVTDWKBRUJYHWOWDWQWGYHWNWCELWKBCDSTYHWPWFEL
      WKBWEDSTUKULWBXEWSWBXDUNELMXBWBXCUNELXCUNNWBWEDUOUPTXAUNELCDUOUQUTURXFUDI
      ZXNXHVTDXOJZYCPZPZYDYIXHXMYKYIXHXMYKPYIXHOZYJXMYCYMYJXMYCPZYMYJOYIWBXQYNY
      IXHYJUSYIXGWBYJVAYMYJXQXGYJXQPYIWBXGYJXQVTDXFXOVBVJVCVDUCXFCDEVEVFVJVKVJV
      GYDXGYJOZWBOZYCPXHYJOZYCPYLXRYPYCXQYOWBVTDXFXOVHVIVLYPYQYCXGYJWBVMVLXHYJY
      CVNVOVPVQVRVS $.
  $}

  ${
    $d k m x y A $.  $d m x y B $.  $d k C $.  $d k M $.  $d k m x y ph $.
    fsumge0.1 $e |- ( ph -> A e. Fin ) $.
    fsumge0.2 $e |- ( ( ph /\ k e. A ) -> B e. RR ) $.
    fsumge0.3 $e |- ( ( ph /\ k e. A ) -> 0 <_ B ) $.
    $( If all of the terms of a finite sum are nonnegative, so is the sum.
       (Contributed by NM, 26-Dec-2005.)  (Revised by Mario Carneiro,
       24-Apr-2014.) $)
    fsumge0 $p |- ( ph -> 0 <_ sum_ k e. A B ) $=
      ( vx vy cc0 co wcel cle wbr cc cr a1i cv wa elrege0 csu cpnf wss rge0ssre
      cico ax-resscn sstri ge0addcl adantl sylanbrc 0e0icopnf fsumcllem simprbi
      caddc syl ) ABCDUAZJUBUEKZLZJUPMNZAHIBCUQDUQOUCAUQPOUDUFUGQHRZUQLIRZUQLSU
      TVAUNKUQLAUTVAUHUIEADRBLSCPLJCMNCUQLFGCTUJJUQLAUKQULURUPPLUSUPTUMUO $.

    ${
      fsumless.4 $e |- ( ph -> C C_ A ) $.
      $( A shorter sum of nonnegative terms is smaller than a longer one.
         (Contributed by NM, 26-Dec-2005.)  (Proof shortened by Mario Carneiro,
         24-Apr-2014.) $)
      fsumless $p |- ( ph -> sum_ k e. C B <_ sum_ k e. A B ) $=
        ( csu cle cc0 wbr cfn wcel wss ssfi sylan2 fsumrecl wceq caddc co difss
        cdif sylancl cv eldifi fsumge0 syl2anc sselda syldan addge01d mpbid cin
        cr c0 disjdif a1i cun undif sylib eqcomd wa recnd fsumsplit breqtrrd )
        ADCEJZVGBDUDZCEJZUAUBZBCEJKALVIKMVGVJKMAVHCEABNOZVHBPVHNOFBDUCBVHQUEZEU
        FZVHOZAVMBOZCUOOZVMBDUGZGRZVNAVOLCKMVQHRUHAVGVIADCEAVKDBPZDNOFIBDQUIAVM
        DOVOVPADBVMIUJGUKSAVHCEVLVRSULUMADVHCBEDVHUNUPTADBUQURADVHUSZBAVSVTBTID
        BUTVAVBFAVOVCCGVDVEVF $.
    $}

    ${
      fsumge1.4 $e |- ( k = M -> B = C ) $.
      fsumge1.5 $e |- ( ph -> M e. A ) $.
      $( A sum of nonnegative numbers is greater than or equal to any one of
         its terms.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof
         shortened by Mario Carneiro, 4-Jun-2014.) $)
      fsumge1 $p |- ( ph -> C <_ sum_ k e. A B ) $=
        ( csn csu cle wcel cc wceq wral cv wa recnd ralrimiva eleq1d rspcv sylc
        sumsn syl2anc snssd fsumless eqbrtrrd ) AFLZCEMZDBCEMNAFBOZDPOZULDQKAUM
        CPOZEBRUNKAUOEBAESZBOTCHUAUBUOUNEFBUPFQCDPJUCUDUECDEFBJUFUGABCUKEGHIAFB
        KUHUIUJ $.
    $}

    $( A sum of nonnegative numbers is zero iff all terms are zero.
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario
       Carneiro, 24-Apr-2014.) $)
    fsum00 $p |- ( ph -> ( sum_ k e. A B = 0 <-> A. k e. A B = 0 ) ) $=
      ( vm csu cc0 wceq wral wa cv wcel cle wbr adantr cr adantlr csb csn snssi
      cfn wss adantl fsumless cc simpr jca ralrimiva nfcsb1v nfel1 nfcv csbeq1a
      nfbr nfan eleq1d breq2d anbi12d mpan9 simpld recnd sumsns syl2anc 3brtr3d
      rspc simplr simprd wb letri3 sylancl mpbir2and nfeq1 eqeq1d cbvral sylibr
      0re nfv ex wi cuz cfv sumz olcs sumeq2 syl5ibrcom syl impbid ) ABCDIZJKZC
      JKZDBLZAWKWMAWKMZDHNZCUAZJKZHBLWMWNWQHBWNWOBOZMZWQWPJPQZJWPPQZWSWOUBZCDIZ
      WJWPJPAWRXCWJPQWKAWRMBCXBDABUDOZWRERADNZBOZCSOZWRFTAXFJCPQZWRGTWRXBBUEAWO
      BUCUFUGTWSWRWPUHOXCWPKWNWRUIWSWPWSWPSOZXAWNXGXHMZDBLZWRXIXAMZAXKWKAXJDBAX
      FMXGXHFGUJUKRXJXLDWOBXIXADDWPSDWOCULZUMDJWPPDJUNDPUNXMUPUQXEWOKZXGXIXHXAX
      NCWPSDWOCUOZURXNCWPJPXOUSUTVGVAZVBZVCCDWOBVDVEAWKWRVHVFWSXIXAXPVIWSXIJSOW
      QWTXAMVJXQVRWPJVKVLVMUKWLWQDHBWLHVSDWPJXMVNXNCWPJXOVOVPVQVTAXDWMWKWAEXDWK
      WMBJDIZJKZBJWBWCUEXDXSBDJWDWEWMWJXRJBCJDWFVOWGWHWI $.
  $}

  ${
    $d k A $.  $d k ph $.
    fsumle.1 $e |- ( ph -> A e. Fin ) $.
    fsumle.2 $e |- ( ( ph /\ k e. A ) -> B e. RR ) $.
    fsumle.3 $e |- ( ( ph /\ k e. A ) -> C e. RR ) $.
    fsumle.4 $e |- ( ( ph /\ k e. A ) -> B <_ C ) $.
    $( If all of the terms of finite sums compare, so do the sums.
       (Contributed by NM, 11-Dec-2005.)  (Proof shortened by Mario Carneiro,
       24-Apr-2014.) $)
    fsumle $p |- ( ph -> sum_ k e. A B <_ sum_ k e. A C ) $=
      ( cc0 csu cmin co cle wbr cv wcel subge0d recnd fsumrecl resubcld fsumge0
      wa mpbird fsumsub breqtrd mpbid ) AJBDEKZBCEKZLMZNOUIUHNOAJBDCLMZEKUJNABU
      KEFAEPBQUCZDCHGUAULJUKNOCDNOIULDCHGRUDUBABDCEFULDHSULCGSUEUFAUHUIABDEFHTA
      BCEFGTRUG $.
  $}

  ${
    $d k A $.  $d k ph $.
    fsumlt.1 $e |- ( ph -> A e. Fin ) $.
    fsumlt.2 $e |- ( ph -> A =/= (/) ) $.
    fsumlt.3 $e |- ( ( ph /\ k e. A ) -> B e. RR ) $.
    fsumlt.4 $e |- ( ( ph /\ k e. A ) -> C e. RR ) $.
    fsumlt.5 $e |- ( ( ph /\ k e. A ) -> B < C ) $.
    $( If every term in one finite sum is less than the corresponding term in
       another, then the first sum is less than the second.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 3-Jun-2014.) $)
    fsumlt $p |- ( ph -> sum_ k e. A B < sum_ k e. A C ) $=
      ( csu clt wbr cc0 cmin co wcel cr recnd fsumrecl cv wa crp wb difrp mpbid
      syl2anc fsumrpcl rpgt0d fsumsub breqtrd posdifd mpbird ) ABCEKZBDEKZLMNUO
      UNOPZLMANBDCOPZEKZUPLAURABUQEFGAEUABQUBZCDLMZUQUCQZJUSCRQDRQUTVAUDHICDUEU
      GUFUHUIABDCEFUSDISUSCHSUJUKAUNUOABCEFHTABDEFITULUM $.
  $}

  ${
    $d k w x y A $.  $d w x y B $.  $d k w x y ph $.
    fsumabs.1 $e |- ( ph -> A e. Fin ) $.
    fsumabs.2 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    $( Generalized triangle inequality: the absolute value of a finite sum is
       less than or equal to the sum of absolute values.  (Contributed by NM,
       9-Nov-2005.)  (Revised by Mario Carneiro, 24-Apr-2014.) $)
    fsumabs $p |- ( ph ->
                    ( abs ` sum_ k e. A B ) <_ sum_ k e. A ( abs ` B ) ) $=
      ( wss csu cabs cfv cle wbr wcel wi c0 wceq sumeq1 fveq2d caddc cc vw ssid
      vx vy cfn csn cun sseq1 breq12d imbi12d imbi2d cc0 0le0 sum0 fveq2i eqtri
      cv abs0 3brtr4i 2a1i wn wa ssun1 sstr mpan imim1i csb co simpll syl simpr
      unssad ssfi syl2anc sselda sylan syldan fsumcl abscld fsumrecl unssbd vex
      wral snss sylibr ralrimiva nfcsb1v nfel1 csbeq1a eleq1d rspc sylc leadd1d
      cin simplr disjsn eqidd recnd fsumsplit cvv csbfv2g ax-mp syl5eqel sumsns
      sylancr syl6eq oveq2d eqtrd breq2d bitr4d abstrid eqbrtrd cr letr syl3anc
      readdcld mpand sylbid ex a2d syl5 expcom adantl findcard2s mpcom mpi ) AB
      BGZBCDHZIJZBCIJZDHZKLZBUBBUEMZAYGYLNZEAUAUQZBGZYOCDHZIJZYOYJDHZKLZNZNAOBG
      ZOCDHZIJZOYJDHZKLZNZNAUCUQZBGZUUHCDHZIJZUUHYJDHZKLZNZNZAUUHUDUQZUFZUGZBGZ
      UURCDHZIJZUURYJDHZKLZNZNZAYNNUAUCUDBYOOPZUUAUUGAUVFYPUUBYTUUFYOOBUHUVFYRU
      UDYSUUEKUVFYQUUCIYOOCDQRYOOYJDQUIUJUKYOUUHPZUUAUUNAUVGYPUUIYTUUMYOUUHBUHU
      VGYRUUKYSUULKUVGYQUUJIYOUUHCDQRYOUUHYJDQUIUJUKYOUURPZUUAUVDAUVHYPUUSYTUVC
      YOUURBUHUVHYRUVAYSUVBKUVHYQUUTIYOUURCDQRYOUURYJDQUIUJUKYOBPZUUAYNAUVIYPYG
      YTYLYOBBUHUVIYRYIYSYKKUVIYQYHIYOBCDQRYOBYJDQUIUJUKUUFAUUBULULUUDUUEKUMUUD
      ULIJULUUCULICDUNUOURUPYJDUNUSUTUUPUUHMVAZUUOUVENUUHUEMZUVJAUUNUVDAUVJUUNU
      VDNUUNUUSUUMNAUVJVBZUVDUUSUUIUUMUUHUURGUUSUUIUUHUUQVCUUHUURBVDVEVFUVLUUSU
      UMUVCUVLUUSUUMUVCNUVLUUSVBZUUMUUKDUUPCVGZIJZSVHZUVBKLZUVCUVMUUMUVPUULUVOS
      VHZKLUVQUVMUUKUULUVOUVMUUJUVMUUHCDUVMYMUUIUVKUVMAYMAUVJUUSVIZEVJZUVMUUHUU
      QBUVLUUSVKZVLZBUUHVMVNZUVMDUQZUUHMZUWDBMZCTMZUVMUUHBUWDUWBVOUVMAUWFUWGUVS
      FVPZVQZVRZVSZUVMUUHYJDUWCUVMUWEVBCUWIVSVTUVMUVNUVMUUPBMZUWGDBWCZUVNTMZUVM
      UUQBGUWLUVMUUHUUQBUWAWAUUPBUDWBZWDWEZUVMAUWMUVSAUWGDBFWFVJUWGUWNDUUPBDUVN
      TDUUPCWGWHUWDUUPPCUVNTDUUPCWIWJWKWLZVSZWMUVMUVBUVRUVPKUVMUVBUULUUQYJDHZSV
      HUVRUVMUUHUUQYJUURDUVMUVJUUHUUQWNOPAUVJUUSWOUUHUUPWPWEZUVMUURWQZUVMYMUUSU
      URUEMUVTUWABUURVMVNZUVMUWDUURMZVBZYJUXDCUVMUXCUWFUWGUVMUURBUWDUWAVOUWHVQZ
      VSZWRWSUVMUWSUVOUULSUVMUWSDUUPYJVGZUVOUVMUUPWTMZUXGTMUWSUXGPUWOUVMUXGUVOT
      UXHUXGUVOPUWODUUPCWTIXAXBZUVMUVOUWRWRXCYJDUUPWTXDXEUXIXFXGXHXIXJUVMUVAUVP
      KLZUVQUVCUVMUVAUUJUVNSVHZIJUVPKUVMUUTUXKIUVMUUTUUJUUQCDHZSVHUXKUVMUUHUUQC
      UURDUWTUXAUXBUXEWSUVMUXLUVNUUJSUVMUWLUWNUXLUVNPUWPUWQCDUUPBXDVNXGXHRUVMUU
      JUVNUWJUWQXKXLUVMUVAXMMUVPXMMUVBXMMUXJUVQVBUVCNUVMUUTUVMUURCDUXBUXEVRVSUV
      MUUKUVOUWKUWRXPUVMUURYJDUXBUXFVTUVAUVPUVBXNXOXQXRXSXTYAYBXTYCYDYEYF $.
  $}

  ${
    $d j A $.  $d k B $.  $d k C $.  $d j k M $.  $d j k N $.  $d j k ph $.
    $d k D $.  $d k E $.
    telfsumo.1 $e |- ( k = j -> A = B ) $.
    telfsumo.2 $e |- ( k = ( j + 1 ) -> A = C ) $.
    telfsumo.3 $e |- ( k = M -> A = D ) $.
    telfsumo.4 $e |- ( k = N -> A = E ) $.
    telfsumo.5 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    telfsumo.6 $e |- ( ( ph /\ k e. ( M ... N ) ) -> A e. CC ) $.
    $( Sum of a telescoping series, using half-open intervals.  (Contributed by
       Mario Carneiro, 2-May-2016.) $)
    telfsumo $p |- ( ph -> sum_ j e. ( M ..^ N ) ( B - C ) = ( D - E ) ) $=
      ( wceq co wcel cc cfzo cmin csu c1 caddc cuz cfv cc0 cfz wral eluzfz1 syl
      wa c0 ralrimiva eleq1d rspcv sylc adantr subidd sum0 syl6reqr adantl fzo0
      cv oveq2 syl6eq sumeq1d wi eqeq1 eqeq1d imbi12d vtoclg imp oveq2d 3eqtr4d
      sylan cfn a1i elfzofz fzofzp1 fsumsub cbvsumv cz eluzel2 eluzp1m1 eluzelz
      fzofi fzoval fzossfz syl6eqssr sselda adantlr syldan fsum1p syl5eqr simpr
      wss fzp1ss fsumm1 1zzd peano2zd fsumshftm zcnd ax-1cn pncan oveq1d eqtr4d
      sylancl eqtrd sylan2 fsumcl eluzfz2 addcomd 3eqtr3d oveq12d pnpcan2d uzp1
      eqtr3d wo mpjaodan ) AJIQZIJUARZCDUBRZFUCZEHUBRZQJIUDUERZUFUGSZAYBUMZUNYD
      FUCZEEUBRZYEYFYIYKUHYJYIEAETSZYBAIIJUIRZSZBTSZGYMUJZYLAJIUFUGZSZYNOIJUKUL
      AYOGYMPUOZYOYLGIYMGVEZIQZBETMUPUQURZUSUTYDFVAVBYIYCUNYDFYIYCIIUARZUNYBYCU
      UCQAJIIUAVFVCIVDVGVHYIHEEUBAYRYBHEQZOYRYBUUDUUABEQZVIYBUUDVIGJYQYTJQZUUAY
      BUUEUUDYTJIVJUUFBHENVKVLMVMVNVQVOVPAYHUMZYEYCCFUCZYCDFUCZUBRZYFAYEUUJQYHA
      YCCDFYCVRSAIJWHVSAFVEZYCSZUMZUUKYMSZYPCTSZUULUUNAUUKIJVTVCAYPUULYSUSZYOUU
      OGUUKYMYTUUKQBCTKUPUQURUUMUUKUDUERZYMSZYPDTSZUULUURAIJUUKWAVCUUPYOUUSGUUQ
      YMYTUUQQBDTLUPUQURWBUSUUGUUJEYGJUARZBGUCZUERZHUVAUERZUBRZYFUUGUUHUVBUUIUV
      CUBUUGUUHYCBGUCZUVBYCBCGFKWCUUGIJUDUBRZUIRZBGUCEYGUVFUIRZBGUCZUERUVEUVBUU
      GBEGIUVFAIWDSZYHUVFYQSAYRUVJOIJWEULZIJWFVQUUGYTUVGSYTYMSZYOUUGUVGYMYTUUGU
      VGYCYMUUGJWDSZYCUVGQZAUVMYHAYRUVMOIJWGULZUSZIJWIZULZIJWJWKWLAUVLYOYHPWMWN
      MWOUUGYCUVGBGUVRVHUUGUVAUVIEUEUUGUUTUVHBGUUGUVMUUTUVHQZUVPYGJWIZULVHVOVPW
      PUUGYGJUIRZBGUCZUVIHUERZUUIUVCUUGBHGYGJAYHWQAYTUWASZYOYHAUWDUVLYOAUWAYMYT
      AUVJUWAYMWRUVKIJWSULWLPWNZWMNWTAUWBUUIQYHAUWBYGUDUBRZUVFUIRZDFUCUUIABDGFU
      DYGJAXAAIUVKXBUVOUWELXCAUWGYCDFAUWGUVGYCAUWFIUVFUIAITSUDTSUWFIQAIUVKXDXEI
      UDXFXIXGAUVMUVNUVOUVQULXHVHXJUSAUWCUVCQYHAUVAHUERUWCUVCAUVAUVIHUEAUUTUVHB
      GAUVMUVSUVOUVTULVHXGAUVAHAUUTBGUUTVRSAYGJWHVSYTUUTSAUWDYOYTYGJVTUWEXKXLZA
      JYMSZYPHTSZAYRUWIOIJXMULYSYOUWJGJYMUUFBHTNUPUQURZXNXSUSXOXPAUVDYFQYHAEHUV
      AUUBUWKUWHXQUSXJXJAYRYBYHXTOIJXRULYA $.

    $( Sum of a telescoping series.  (Contributed by Mario Carneiro,
       2-May-2016.) $)
    telfsumo2 $p |- ( ph -> sum_ j e. ( M ..^ N ) ( C - B ) = ( E - D ) ) $=
      ( co cneg wcel cc cfzo cmin csu cv negeqd c1 caddc cfz wa negcld telfsumo
      wceq wral elfzofz eleq1d rspccva syl2an fzofzp1 neg2subd sumeq2dv cuz cfv
      ralrimiva eluzfz1 syl rspcv sylc eluzfz2 3eqtr3d ) AIJUAQZCRZDRZUBQZFUCER
      ZHRZUBQVJDCUBQZFUCHEUBQABRVKVLVNFGVOIJGUDZFUDZULZBCKUEVQVRUFUGQZULZBDLUEV
      QIULZBEMUEVQJULZBHNUEOAVQIJUHQZSUIBPUJUKAVJVMVPFAVRVJSZUICDABTSZGWDUMZVRW
      DSCTSZWEAWFGWDPVCZVRIJUNWFWHGVRWDVSBCTKUOUPUQAWGVTWDSDTSZWEWIIJVRURWFWJGV
      TWDWABDTLUOUPUQUSUTAEHAIWDSZWGETSZAJIVAVBSZWKOIJVDVEWIWFWLGIWDWBBETMUOVFV
      GAJWDSZWGHTSZAWMWNOIJVHVEWIWFWOGJWDWCBHTNUOVFVGUSVI $.
  $}

  ${
    $d j A $.  $d k B $.  $d k C $.  $d j k M $.  $d j k N $.  $d j k ph $.
    $d k D $.  $d k E $.
    telfsum.1 $e |- ( k = j -> A = B ) $.
    telfsum.2 $e |- ( k = ( j + 1 ) -> A = C ) $.
    telfsum.3 $e |- ( k = M -> A = D ) $.
    telfsum.4 $e |- ( k = ( N + 1 ) -> A = E ) $.
    telfsum.5 $e |- ( ph -> N e. ZZ ) $.
    telfsum.6 $e |- ( ph -> ( N + 1 ) e. ( ZZ>= ` M ) ) $.
    telfsum.7 $e |- ( ( ph /\ k e. ( M ... ( N + 1 ) ) ) -> A e. CC ) $.
    $( Sum of a telescoping series.  (Contributed by Scott Fenton,
       24-Apr-2014.)  (Revised by Mario Carneiro, 2-May-2016.) $)
    telfsum $p |- ( ph -> sum_ j e. ( M ... N ) ( B - C ) = ( D - E ) ) $=
      ( co cmin csu cfz c1 caddc cfzo cz wcel fzval3 syl sumeq1d telfsumo eqtrd
      wceq ) AIJUARZCDSRZFTIJUBUCRZUDRZUNFTEHSRAUMUPUNFAJUEUFUMUPULOIJUGUHUIABC
      DEFGHIUOKLMNPQUJUK $.

    $( Sum of a telescoping series.  (Contributed by Mario Carneiro,
       15-Jun-2014.)  (Revised by Mario Carneiro, 2-May-2016.) $)
    telfsum2 $p |- ( ph -> sum_ j e. ( M ... N ) ( C - B ) = ( E - D ) ) $=
      ( co cmin csu cfz c1 caddc cfzo cz wcel wceq fzval3 syl sumeq1d telfsumo2
      eqtrd ) AIJUARZDCSRZFTIJUBUCRZUDRZUNFTHESRAUMUPUNFAJUEUFUMUPUGOIJUHUIUJAB
      CDEFGHIUOKLMNPQUKUL $.
  $}

  ${
    $d j A $.  $d k B $.  $d k C $.  $d k D $.  $d k E $.  $d j V $.  $d k W $.
    $d j k M $.  $d j k N $.  $d j k ph $.  $d k X $.  $d k Y $.  $d k Z $.
    fsumparts.b $e |- ( k = j -> ( A = B /\ V = W ) ) $.
    fsumparts.c $e |- ( k = ( j + 1 ) -> ( A = C /\ V = X ) ) $.
    fsumparts.d $e |- ( k = M -> ( A = D /\ V = Y ) ) $.
    fsumparts.e $e |- ( k = N -> ( A = E /\ V = Z ) ) $.
    fsumparts.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    fsumparts.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> A e. CC ) $.
    fsumparts.3 $e |- ( ( ph /\ k e. ( M ... N ) ) -> V e. CC ) $.
    $( Summation by parts.  (Contributed by Mario Carneiro, 13-Apr-2016.) $)
    fsumparts $p |- ( ph -> sum_ j e. ( M ..^ N ) ( B x. ( X - W ) ) =
      ( ( ( E x. Z ) - ( D x. Y ) ) -
        sum_ j e. ( M ..^ N ) ( ( C - B ) x. X ) ) ) $=
      ( wceq cfzo co cmin cmul csu c1 caddc cuz cfv wcel wa c0 cc0 0m0e0 eqtr4i
      sum0 simpr oveq2d fzo0 syl6eq sumeq1d cfz eluzfz1 wi cv eqtr3 oveq12 3syl
      syl adantr eqeq12d pm5.74da eqidd vtoclg sylan oveq1d cc ralrimiva simpld
      imp wral eleq1d rspcv sylc simprd mulcld subidd eqtrd oveq12d 3eqtr4a wss
      cz eluzel2 fzp1ss sselda adantlr syldan fsumm1 eluzelz fzoval zcnd ax-1cn
      pncan sylancl 1zzd peano2zd fsumshftm 3eqtr4d cfn fzofi a1i uzid peano2uz
      eqtr4d fzoss1 4syl elfzofz sylan2 eluzfz2 addcomd fzofzp1 rspccva subdird
      fsumcl syl2an sumeq2dv fsumsub subsub3d nnncan1d eluzp1m1 biimpar cbvsumv
      subcld eleq2d fsum1p subsub4d subdid 3eqtrrd wo uzp1 mpjaodan ) AJIUCZIJU
      DUEZCMLUFUEUGUEZFUHZHOUGUEZENUGUEZUFUEZUUFDCUFUEMUGUEZFUHZUFUEZUCJIUIUJUE
      ZUKULUMZAUUEUNZUOUUGFUHZUPUPUFUEZUUHUUNUURUPUUSUUGFUSUQURUUQUUFUOUUGFUUQU
      UFIIUDUEUOUUQJIIUDAUUEUTVAIVBVCZVDUUQUUKUPUUMUPUFUUQUUKUUJUUJUFUEZUPUUQUU
      IUUJUUJUFAIIJVEUEZUMZUUEUUIUUJUCZAJIUKULZUMZUVCTIJVFVLZUVCUUEUVDUUEBKUGUE
      ZUVHUCZVGUUEUVDVGGIUVBGVHZIUCZUUEUVIUVDUVKUUEUNZUVHUUIUVHUUJUVLUVJJUCZBHU
      CZKOUCZUNZUVHUUIUCZUVJJIVISBHKOUGVJZVKUVKUVHUUJUCZUUEUVKBEUCZKNUCZUNUVSRB
      EKNUGVJVLZVMVNVOUUEUVHVPVQWCVRVSAUVAUPUCUUEAUUJAENAUVCBVTUMZGUVBWDZEVTUMZ
      UVGAUWCGUVBUAWAZUWCUWEGIUVBUVKBEVTUVKUVTUWARWBWEWFWGAUVCKVTUMZGUVBWDZNVTU
      MZUVGAUWGGUVBUBWAZUWGUWIGIUVBUVKKNVTUVKUVTUWARWHWEWFWGWIZWJVMWKUUQUUMUOUU
      LFUHUPUUQUUFUOUULFUUTVDUULFUSVCWLWMAUUPUNZUUNUUKUUIUUFCMUGUEZFUHZUUOJUDUE
      ZUVHGUHZUFUEZUFUEZUFUEUWQUUJUFUEZUUHUWLUUMUWRUUKUFUWLUUFDMUGUEZFUHZUWNUFU
      EZUUIUWPUJUEZUWNUFUEUUMUWRUWLUXAUXCUWNUFUWLUXAUWPUUIUJUEZUXCUWLUUOJVEUEZU
      VHGUHZUUOJUIUFUEZVEUEZUVHGUHZUUIUJUEUXAUXDUWLUVHUUIGUUOJAUUPUTUWLUVJUXEUM
      UVJUVBUMZUVHVTUMZUWLUXEUVBUVJUWLIWOUMZUXEUVBWNAUXLUUPAUVFUXLTIJWPVLZVMZIJ
      WQVLWRAUXJUXKUUPAUXJUNBKUAUBWIZWSWTZUVMUVPUVQSUVRVLXAUWLUXAUUOUIUFUEZUXGV
      EUEZUWTFUHUXFUWLUUFUXRUWTFUWLUUFIUXGVEUEZUXRUWLJWOUMZUUFUXSUCAUXTUUPAUVFU
      XTTIJXBVLVMZIJXCVLZUWLUXQIUXGVEUWLIVTUMUIVTUMUXQIUCUWLIUXNXDXEIUIXFXGVSXQ
      VDUWLUVHUWTGFUIUUOJUWLXHUWLIUXNXIUYAUXPUVJFVHZUIUJUEZUCZBDUCZKMUCZUNUVHUW
      TUCQBDKMUGVJVLXJXQUWLUWPUXIUUIUJUWLUWOUXHUVHGUWLUXTUWOUXHUCUYAUUOJXCVLVDZ
      VSXKUWLUWPUUIUWLUWOUVHGUWOXLUMUWLUUOJXMXNUWLUVJUWOUMUVJUUFUMZUXKUWLUWOUUF
      UVJUWLUXLIUVEUMUUOUVEUMUWOUUFWNUXNIXOIIXPUUOIJXRXSWRAUYIUXKUUPUYIAUXJUXKU
      VJIJXTUXOYAWSZWTYGZAUUIVTUMUUPAHOAJUVBUMZUWDHVTUMZAUVFUYLTIJYBVLZUWFUWCUY
      MGJUVBUVMBHVTUVMUVNUVOSWBWEWFWGAUYLUWHOVTUMZUYNUWJUWGUYOGJUVBUVMKOVTUVMUV
      NUVOSWHWEWFWGWIVMZYCWKVSAUUMUXBUCUUPAUUMUUFUWTUWMUFUEZFUHUXBAUUFUULUYQFAU
      YCUUFUMZUNZDCMAUWDUYDUVBUMZDVTUMZUYRUWFIJUYCYDZUWCVUAGUYDUVBUYEBDVTUYEUYF
      UYGQWBWEYEYHZAUWDUYCUVBUMZCVTUMZUYRUWFUYCIJXTZUWCVUEGUYCUVBUVJUYCUCZBCVTV
      UGBCUCZKLUCZPWBWEYEYHZAUWHUYTMVTUMZUYRUWJVUBUWGVUKGUYDUVBUYEKMVTUYEUYFUYG
      QWHWEYEYHZYFYIAUUFUWTUWMFUUFXLUMAIJXMXNZUYSDMVUCVULWIUYSCMVUJVULWIZYJWKVM
      UWLUUIUWNUWPUYPAUWNVTUMUUPAUUFUWMFVUMVUNYGVMZUYKYKXKVAUWLUUIUUJUWQUYPAUUJ
      VTUMUUPUWKVMZUWLUWNUWPVUOUYKYPYLUWLUWNUWPUUJUJUEZUFUEUWNUUFCLUGUEZFUHZUFU
      EZUWSUUHUWLVUQVUSUWNUFUWLVUQUUFUVHGUHZVUSUWLVUQUUJUWPUJUEZVVAUWLUWPUUJUYK
      VUPYCUWLUXSUVHGUHUUJUXIUJUEVVAVVBUWLUVHUUJGIUXGAUXLUUPUXGUVEUMUXMIJYMVRUW
      LUVJUXSUMZUYIUXKUWLUYIVVCUWLUUFUXSUVJUYBYQYNUYJWTUWBYRUWLUUFUXSUVHGUYBVDU
      WLUWPUXIUUJUJUYHVAXKXQUUFUVHVURGFVUGVUHVUIUNUVHVURUCPBCKLUGVJVLYOVCVAUWLU
      WNUWPUUJVUOUYKVUPYSAUUHVUTUCUUPAUUHUUFUWMVURUFUEZFUHVUTAUUFUUGVVDFUYSCMLV
      UJVULAUWHVUDLVTUMZUYRUWJVUFUWGVVEGUYCUVBVUGKLVTVUGVUHVUIPWHWEYEYHZYTYIAUU
      FUWMVURFVUMVUNUYSCLVUJVVFWIYJWKVMXKUUAAUVFUUEUUPUUBTIJUUCVLUUD $.
  $}

  ${
    $d f k m x y A $.  $d f m x y B $.  $d f k m x y F $.  $d f k m x y ph $.
    fsumre.1 $e |- ( ph -> A e. Fin ) $.
    fsumre.2 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    ${
      fsumrelem.3 $e |- F : CC --> CC $.
      fsumrelem.4 $e |- ( ( x e. CC /\ y e. CC ) ->
        ( F ` ( x + y ) ) = ( ( F ` x ) + ( F ` y ) ) ) $.
      $( Lemma for ~ fsumre , ~ fsumim , and ~ fsumcj .  (Contributed by Mario
         Carneiro, 25-Jul-2014.)  (Revised by Mario Carneiro, 27-Dec-2014.) $)
      fsumrelem $p |- ( ph
          -> ( F ` sum_ k e. A B ) = sum_ k e. A ( F ` B ) ) $=
        ( vm wceq cfv wcel co wa cc0 caddc cc vf c0 csu chash cn c1 cfz cv wf1o
        wex wi 0cn ffvelrni ax-mp addid1i oveq1 fveq2d fveq2 eqeq12d oveq2 00id
        oveq1d syl6eq oveq2d vtocl2ga mp2an eqtr2i addcani mpbi sumeq1 sum0 a1i
        3eqtr4a cmpt ccom cseq addcl adantl wf eqid fmptd adantr simprr syl fco
        f1of syl2anc ffvelrnda cuz simprl nnuz syl6eleq wral fvmpt2 cvv sylancl
        simpr fvex eqtr4d ralrimiva ad2antrr nfcv nffvmpt1 nffv nfeq rspc fvco3
        sylc sylan 3eqtr4d seqhomo fsum fveq2i 3eqtr3g expr exlimdv expimpd cfn
        sumfc wo fz1f1o mpjaod ) ADUBMZDEFUCZGNZDEGNZFUCZMZDUDNZUEOZUFYIUGPZDUA
        UHZUIZUAUJZQZYCYHUKAYCRGNZRYEYGYPYPSPZYPRSPZMYPRMYRYPYQYPRTOZYPTOULTTRG
        JUMUNZUOYSYSYPYQMZULULBUHZCUHZSPZGNZUUBGNZUUCGNZSPZMZRUUCSPZGNZYPUUGSPZ
        MUUABCRRTTUUBRMZUUEUUKUUHUULUUMUUDUUJGUUBRUUCSUPUQUUMUUFYPUUGSUUBRGURVB
        USUUCRMZUUKYPUULYQUUNUUJRGUUNUUJRRSPRUUCRRSUTVAVCUQUUNUUGYPYPSUUCRGURVD
        USKVEVFVGYPYPRYTYTULVHVIYCYDRGYCYDUBEFUCRDUBEFVJEFVKVCUQYCYGUBYFFUCRDUB
        YFFVJYFFVKVCVMVLAYJYNYHAYJQYMYHUAAYJYMYHAYJYMQZQZDLUHZFDEVNZNZLUCZGNZDU
        UQFDYFVNZNZLUCZYEYGUUPYISUURYLVOZUFVPNZGNYISUVBYLVOZUFVPNUVAUVDUUPBCSST
        UVEUVGGUFYIUUBTOUUCTOQZUUDTOUUPUUBUUCVQVRUUPYKTUUBUVEUUPDTUURVSZYKDYLVS
        ZYKTUVEVSAUVIUUOAFDETUURIUURVTZWAWBZUUPYMUVJAYJYMWCZYKDYLWFWDZYKDTUURYL
        WEWGWHUUPYIUEUFWINAYJYMWJZWKWLUVHUUIUUPKVRUUPUUBYKOZQZUUBYLNZUURNZGNZUV
        RUVBNZUUBUVENZGNUUBUVGNZUVQUVRDOFUHZUURNZGNZUWDUVBNZMZFDWMZUVTUWAMZUUPY
        KDUUBYLUVNWHAUWIUUOUVPAUWHFDAUWDDOZQZUWFYFUWGUWLUWEEGUWLUWKETOZUWEEMAUW
        KWQZIFDETUURUVKWNWGUQUWLUWKYFWOOUWGYFMUWNEGWRFDYFWOUVBUVBVTZWNWPWSWTXAU
        WHUWJFUVRDFUVTUWAFUVSGFGXBFDEUVRXCXDFDYFUVRXCXEUWDUVRMZUWFUVTUWGUWAUWPU
        WEUVSGUWDUVRUURURUQUWDUVRUVBURUSXFXHUVQUWBUVSGUUPUVJUVPUWBUVSMUVNYKDUUB
        UURYLXGXIZUQUUPUVJUVPUWCUWAMUVNYKDUUBUVBYLXGXIZXJXKUUPUUTUVFGUUPDUUSUVS
        LBYLUVEYIUUQUVRUURURUVOUVMUUPDTUUQUURUVLWHUWQXLUQUUPDUVCUWALBYLUVGYIUUQ
        UVRUVBURUVOUVMUUPDTUUQUVBADTUVBVSUUOAFDYFTUVBUWLUWMYFTOITTEGJUMWDUWOWAW
        BWHUWRXLXJUUTYDGDELFXSXMDYFLFXSXNXOXPXQADXROYCYOXTHDUAYAWDYB $.
    $}

    $( The real part of a sum.  (Contributed by Paul Chapman, 9-Nov-2007.)
       (Revised by Mario Carneiro, 25-Jul-2014.) $)
    fsumre $p |- ( ph -> ( Re ` sum_ k e. A B ) = sum_ k e. A ( Re ` B ) ) $=
      ( vx vy cre cc cr wf wss ref ax-resscn fss mp2an cv readd fsumrelem ) AGH
      BCDIEFJKILKJMJJILNOJKJIPQGRHRST $.

    $( The imaginary part of a sum.  (Contributed by Paul Chapman, 9-Nov-2007.)
       (Revised by Mario Carneiro, 25-Jul-2014.) $)
    fsumim $p |- ( ph -> ( Im ` sum_ k e. A B ) = sum_ k e. A ( Im ` B ) ) $=
      ( vx vy cim cc cr wf wss imf ax-resscn fss mp2an cv imadd fsumrelem ) AGH
      BCDIEFJKILKJMJJILNOJKJIPQGRHRST $.

    $( The complex conjugate of a sum.  (Contributed by Paul Chapman,
       9-Nov-2007.)  (Revised by Mario Carneiro, 25-Jul-2014.) $)
    fsumcj $p |- ( ph -> ( * ` sum_ k e. A B ) = sum_ k e. A ( * ` B ) ) $=
      ( vx vy ccj cjf cv cjadd fsumrelem ) AGHBCDIEFJGKHKLM $.
  $}

  ${
    $d k w x y z A $.  $d k w x y z B $.  $d w y z C $.  $d k w x y z ph $.
    $d w y z D $.
    fsumrlim.1 $e |- ( ph -> A C_ RR ) $.
    fsumrlim.2 $e |- ( ph -> B e. Fin ) $.
    fsumrlim.3 $e |- ( ( ph /\ ( x e. A /\ k e. B ) ) -> C e. V ) $.
    fsumrlim.4 $e |- ( ( ph /\ k e. B ) -> ( x e. A |-> C ) ~~>r D ) $.
    $( Limit of a finite sum of converging sequences.  Note that ` C ( k ) ` is
       a collection of functions with implicit parameter ` k ` , each of which
       converges to ` D ( k ) ` as ` n ~~> +oo ` .  (Contributed by Mario
       Carneiro, 22-May-2016.) $)
    fsumrlim $p |- ( ph -> ( x e. A |-> sum_ k e. B C ) ~~>r sum_ k e. B D ) $=
      ( vw csu cmpt crli wcel wi cc caddc vy vz wss wbr ssid cfn cv cc0 csn cun
      c0 wceq sseq1 sumeq1 syl6eq mpteq2dv breq12d imbi12d imbi2d weq rlimconst
      sum0 cr 0cn sylancl a1d wn wa ssun1 sstr mpan imim1i csb co cvv sumex a1i
      wral simprr unssbd snss sylibr adantr anass1rs rlimmptrcl an32s ralrimiva
      vex adantllr nfcsb1v nfel1 csbeq1a eleq1d rspc sylc mpan9 elex nfcv nfsum
      syl sumeq2sdv cbvmpt simpr syl5eqbrr nfmpt nfbr rlimadd cin simprl disjsn
      eqidd syl2anc sselda adantlr syldan fsumsplit cbvsumi csbeq1 sumsn syl5eq
      ssfi oveq2d mpteq2dva nfov oveq12d rlimcl 3brtr4d ex expr a2d syl5 expcom
      eqtrd adantl findcard2s mpcom mpi ) ADDUCZBCDEGNZOZDFGNZPUDZDUEDUFQZAYRUU
      BRZJAMUGZDUCZBCUUEEGNZOZUUEFGNZPUDZRZRAUKDUCZBCUHOZUHPUDZRZRAUAUGZDUCZBCU
      UPEGNZOZUUPFGNZPUDZRZRZAUUPUBUGZUIZUJZDUCZBCUVFEGNZOZUVFFGNZPUDZRZRZAUUDR
      MUAUBDUUEUKULZUUKUUOAUVNUUFUULUUJUUNUUEUKDUMUVNUUHUUMUUIUHPUVNBCUUGUHUVNU
      UGUKEGNUHUUEUKEGUNEGVBUOUPUVNUUIUKFGNUHUUEUKFGUNFGVBUOUQURUSMUAUTZUUKUVBA
      UVOUUFUUQUUJUVAUUEUUPDUMUVOUUHUUSUUIUUTPUVOBCUUGUURUUEUUPEGUNUPUUEUUPFGUN
      UQURUSUUEUVFULZUUKUVLAUVPUUFUVGUUJUVKUUEUVFDUMUVPUUHUVIUUIUVJPUVPBCUUGUVH
      UUEUVFEGUNUPUUEUVFFGUNUQURUSUUEDULZUUKUUDAUVQUUFYRUUJUUBUUEDDUMUVQUUHYTUU
      IUUAPUVQBCUUGYSUUEDEGUNUPUUEDFGUNUQURUSAUUNUULACVCUCUHSQUUNIVDBCUHVAVEVFU
      VDUUPQVGZUVCUVMRUUPUFQUVRAUVBUVLAUVRUVBUVLRUVBUVGUVARAUVRVHZUVLUVGUUQUVAU
      UPUVFUCUVGUUQUUPUVEVIUUPUVFDVJVKVLUVSUVGUVAUVKAUVRUVGUVAUVKRAUVRUVGVHZVHZ
      UVAUVKUWAUVAVHZMCUUPBUUEEVMZGNZBUUEGUVDEVMZVMZTVNZOZUUTGUVDFVMZTVNZUVIUVJ
      PUWBMCUWDUWFUUTUWIVOUWDVOQUWBUUECQZVHZUUPUWCGVPVQUWLUWFSQZUWFVOQUWBUWESQZ
      BCVRZUWKUWMUWAUWOUVAUWAUWNBCUWABUGCQZVHZUVDDQZESQZGDVRUWNUWAUWRUWPUWAUVED
      UCUWRUWAUUPUVEDAUVRUVGVSZVTUVDDUBWHWAWBZWCZUWQUWSGDAUWPGUGZDQZUWSUVTAUXDU
      WPUWSAUXDVHZCEFBHAUWPUXDEHQKWDLWEWFWIZWGUWSUWNGUVDDGUWESGUVDEWJZWKGUBUTZE
      UWESGUVDEWLZWMWNWOZWGWCUWNUWMBUUECBUWFSBUUEUWEWJZWKBMUTZUWEUWFSBUUEUWEWLZ
      WMWNWPUWFSWQWTUWBMCUWDOUUSUUTPBMCUURUWDMUURWRBUUPUWCGBUUPWRBUUEEWJWSZUXLU
      UPEUWCGBUUEEWLXAZXBUWAUVAXCXDUWBMCUWFOBCUWEOZUWIPBMCUWEUWFMUWEWRUXKUXMXBU
      WAUXPUWIPUDZUVAUWAUWRBCEOZFPUDZGDVRZUXQUXAAUXTUVTAUXSGDLWGWCUXSUXQGUVDDGU
      XPUWIPGBCUWEGCWRUXGXEGPWRGUVDFWJZXFUXHUXRUXPFUWIPUXHBCEUWEUXIUPGUVDFWLZUQ
      WNWOWCXDXGUWBUVIBCUURUWETVNZOZUWHUWAUVIUYDULUVAUWABCUVHUYCUWQUVHUURUVEEGN
      ZTVNUYCUWQUUPUVEEUVFGUWAUUPUVEXHUKULZUWPUWAUVRUYFAUVRUVGXIUUPUVDXJWBZWCUW
      QUVFXKUWAUVFUFQZUWPUWAUUCUVGUYHAUUCUVTJWCUWTDUVFYAXLZWCUWQUXCUVFQZUXDUWSU
      WAUYJUXDUWPUWAUVFDUXCUWTXMZXNUXFXOXPUWQUYEUWEUURTUWQUYEUVEGUUEEVMZMNZUWEU
      VEEUYLGMMEWRGUUEEWJGUUEEWLXQUWQUWRUWNUYMUWEULUXBUXJUYLUWEMUVDDGUUEUVDEXRX
      SXLXTYBYMYCWCBMCUYCUWGMUYCWRBUWDUWFTUXNBTWRUXKYDUXLUURUWDUWEUWFTUXOUXMYEX
      BUOUWAUVJUWJULUVAUWAUVJUUTUVEFGNZTVNUWJUWAUUPUVEFUVFGUYGUWAUVFXKUYIUWAUYJ
      UXDFSQZUYKAUXDUYOUVTUXEUXSUYOLFUXRYFWTXNZXOXPUWAUYNUWIUUTTUWAUYNUVEGUUEFV
      MZMNZUWIUVEFUYQGMMFWRGUUEFWJGUUEFWLXQUWAUWRUWISQZUYRUWIULUXAUWAUWRUYOGDVR
      UYSUXAUWAUYOGDUYPWGUYOUYSGUVDDGUWISUYAWKUXHFUWISUYBWMWNWOUYQUWIMUVDDGUUEU
      VDFXRXSXLXTYBYMWCYGYHYIYJYKYLYJYNYOYPYQ $.
  $}

  ${
    $d k w x y z A $.  $d k w x y z B $.  $d w y z C $.  $d k w x y z ph $.
    fsumo1.1 $e |- ( ph -> A C_ RR ) $.
    fsumo1.2 $e |- ( ph -> B e. Fin ) $.
    fsumo1.3 $e |- ( ( ph /\ ( x e. A /\ k e. B ) ) -> C e. V ) $.
    fsumo1.4 $e |- ( ( ph /\ k e. B ) -> ( x e. A |-> C ) e. O(1) ) $.
    $( The finite sum of eventually bounded functions (where the index set
       ` B ` does not depend on ` x ` ) is eventually bounded.  (Contributed by
       Mario Carneiro, 30-Apr-2016.)  (Proof shortened by Mario Carneiro,
       22-May-2016.) $)
    fsumo1 $p |- ( ph -> ( x e. A |-> sum_ k e. B C ) e. O(1) ) $=
      ( vw wss csu cmpt co1 wcel wi wceq adantr vy vz ssid cfn cv cc0 csn sseq1
      c0 cun sumeq1 syl6eq mpteq2dv eleq1d imbi12d imbi2d cr cc o1const sylancl
      sum0 0cn a1d wn wa ssun1 sstr mpan imim1i csb caddc cof cin simprl disjsn
      sylibr eqidd simprr ssfi syl2anc adantlr anass1rs o1mptrcl an32s adantllr
      sselda syldan fsumsplit nfcv nfcsb1v csbeq1a cbvsumi unssbd vex snss wral
      ralrimiva nfel1 rspc sylc csbeq1 sumsn syl5eq oveq2d eqtrd mpteq2dva reex
      co cvv ssex syl sumex a1i offval2 eqtr4d nfmpt o1add syl2anr eqeltrd expr
      id ex a2d syl5 expcom adantl findcard2s mpcom mpi ) ADDMZBCDEFNZOZPQZDUCD
      UDQZAYJYMRZIALUEZDMZBCYPEFNZOZPQZRZRAUIDMZBCUFOZPQZRZRAUAUEZDMZBCUUFEFNZO
      ZPQZRZRZAUUFUBUEZUGZUJZDMZBCUUOEFNZOZPQZRZRZAYORLUAUBDYPUISZUUAUUEAUVBYQU
      UBYTUUDYPUIDUHUVBYSUUCPUVBBCYRUFUVBYRUIEFNUFYPUIEFUKEFVAULUMUNUOUPYPUUFSZ
      UUAUUKAUVCYQUUGYTUUJYPUUFDUHUVCYSUUIPUVCBCYRUUHYPUUFEFUKUMUNUOUPYPUUOSZUU
      AUUTAUVDYQUUPYTUUSYPUUODUHUVDYSUURPUVDBCYRUUQYPUUOEFUKUMUNUOUPYPDSZUUAYOA
      UVEYQYJYTYMYPDDUHUVEYSYLPUVEBCYRYKYPDEFUKUMUNUOUPAUUDUUBACUQMZUFURQUUDHVB
      BCUFUSUTVCUUMUUFQVDZUULUVARUUFUDQUVGAUUKUUTAUVGUUKUUTRUUKUUPUUJRAUVGVEZUU
      TUUPUUGUUJUUFUUOMUUPUUGUUFUUNVFUUFUUODVGVHVIUVHUUPUUJUUSAUVGUUPUUJUUSRAUV
      GUUPVEZVEZUUJUUSUVJUUJVEUURUUIBCFUUMEVJZOZVKVLXHZPUVJUURUVMSUUJUVJUURBCUU
      HUVKVKXHZOUVMUVJBCUUQUVNUVJBUECQZVEZUUQUUHUUNEFNZVKXHUVNUVPUUFUUNEUUOFUVJ
      UUFUUNVMUISZUVOUVJUVGUVRAUVGUUPVNUUFUUMVOVPTUVPUUOVQUVJUUOUDQZUVOUVJYNUUP
      UVSAYNUVIITAUVGUUPVRZDUUOVSVTTUVPFUEZUUOQZUWADQZEURQZUVJUWBUWCUVOUVJUUODU
      WAUVTWFWAAUVOUWCUWDUVIAUWCUVOUWDAUWCVEBCEGAUVOUWCEGQJWBKWCWDWEZWGWHUVPUVQ
      UVKUUHVKUVPUVQUUNFYPEVJZLNZUVKUUNEUWFFLLEWIFYPEWJFYPEWKWLUVPUUMDQZUVKURQZ
      UWGUVKSUVJUWHUVOUVJUUNDMUWHUVJUUFUUNDUVTWMUUMDUBWNWOVPZTZUVPUWHUWDFDWPUWI
      UWKUVPUWDFDUWEWQUWDUWIFUUMDFUVKURFUUMEWJZWRUWAUUMSZEUVKURFUUMEWKZUNWSWTZU
      WFUVKLUUMDFYPUUMEXAXBVTXCXDXEXFUVJBCUUHUVKVKUUIUVLXIXIURUVJUVFCXIQAUVFUVI
      HTCUQXGXJXKUUHXIQUVPUUFEFXLXMUWOUVJUUIVQUVJUVLVQXNXOTUUJUUJUVLPQZUVMPQUVJ
      UUJYAUVJUWHBCEOZPQZFDWPZUWPUWJAUWSUVIAUWRFDKWQTUWRUWPFUUMDFUVLPFBCUVKFCWI
      UWLXPWRUWMUWQUVLPUWMBCEUVKUWNUMUNWSWTUUIUVLXQXRXSYBXTYCYDYEYCYFYGYHYI $.
  $}

  ${
    $d c m n x A $.  $d c k m n x ph $.
    o1fsum.1 $e |- ( ( ph /\ k e. NN ) -> A e. V ) $.
    o1fsum.2 $e |- ( ph -> ( k e. NN |-> A ) e. O(1) ) $.
    $( If ` A ( k ) ` is O(1), then ` sum_ k <_ x , A ( k ) ` is O( ` x ` ).
       (Contributed by Mario Carneiro, 23-May-2016.) $)
    o1fsum $p |- ( ph ->
      ( x e. RR+ |-> ( sum_ k e. ( 1 ... ( |_ ` x ) ) A / x ) ) e. O(1) ) $=
      ( vn cle wbr cabs cfv cn cr c1 co wcel wa cc syl vc vm wral wrex cpnf crp
      cv cico cfl cfz csu cdiv cmpt co1 wss nnssre o1mptrcl 1red elo1mpt2 mpbid
      a1i csb caddc rpssre nfcv nfcsb1v csbeq1a cbvsumi fzfid cdm o1f ralrimiva
      wi wceq dmmptg feq2d eqid fmpt sylibr ad3antrrr elfznn eleq1d rspc impcom
      nfel1 syl2an fsumcl syl5eqel rpcn adantl cc0 wne rpne0 divcld simplrl 1re
      wf elicopnf ax-mp sylib simpld ad2antrr fsumrecl simplrr readdcld absdivd
      wb abscld adantrr rprege0 ad2antrl absid oveq2d eqtrd cmul adantlr adantr
      remulcld fveq2i fsumabs syl5eqbr cun ssun2 nnred flle simprr letrd fznnfl
      flge1nn syldan recnd absge0d chash cfn cn0 3syl reflcl breqtrd sylc clt
      mpbir2and fzsplit syl5sseqr mulid2d fsumge0 jca lemul1a syl31anc eqbrtrrd
      sselda simprd hashcl nn0re elfzuz peano2nnd eluznn sylan simpllr peano2re
      cuz fllep1 eluzle nffv nfbr nfim breq2 fveq2d breq1d imbi12d syl3c sylan2
      nfv fsumle fsumconst syl2anc nnzd uzid 0red mpan9 biidd rspcv cdom ssdomg
      cz hashdomi flge0nn0 hashfz1 lemul1ad le2addd cin fzdisj fsumsplit adddid
      ltp1 3brtr4d rpregt0 ledivmul syl3anc mpbird eqbrtrd elo1d rexlimdvva mpd
      c0 ex ) AUAUGZDUGZIJZCKLZUBUGZIJZVMZDMUCZUBNUDUAOUEUHPZUDZBUFOBUGZUILZUJP
      ZCDUKZUXPULPZUMUNQZADMCUMZUNQZUXOGADUAMCOUBMNUOAUPVAADMCEFGUQAURUSUTAUXMU
      YAUAUBUXNNAUXFUXNQZUXJNQZRZRZUXMUYAUYGUXMRZBUFUXTUXFOUXFUILZUJPZDHUGZCVBZ
      KLZHUKZUXJVCPZUFNUOUYHVDVAUYHUXPUFQZRZUXSUXPUYQUXSUXRUYLHUKZSUXRCUYLDHHCV
      EDUYKCVFZDUYKCVGZVHZUYQUXRUYLHUYQOUXQVIUYQCSQZDMUCZUYKMQZUYLSQZUYKUXRQZAV
      UCUYFUXMUYPAMSUYBWQZVUCAUYBVJZSUYBWQZVUGAUYCVUIGUYBVKTAVUHMSUYBACEQZDMUCV
      UHMVNAVUJDMFVLDMCEVOTVPUTDMSCUYBUYBVQVRVSZVTUYKUXQWAZVUDVUCVUEVUBVUEDUYKM
      DUYLSUYSWEUXGUYKVNZCUYLSUYTWBWCZWDZWFWGWHZUYPUXPSQZUYHUXPWIWJZUYPUXPWKWLU
      YHUXPWMWJZWNUYHUXFNQZOUXFIJZUYHUYDVUTVVARZAUYDUYEUXMWOONQZUYDVVBXGWPOUXFW
      RWSWTZXAZUYHUYNUXJUYHUYJUYMHUYHOUYIVIZUYHUYKUYJQZRZUYLUYHVUCVUDVUEVVGAVUC
      UYFUXMVUKXBZUYKUYIWAVUOWFZXHZXCZAUYDUYEUXMXDZXEUYHUYPUXFUXPIJZRZRZUXTKLZU
      XSKLZUXPULPZUYOIVVPVVQVVRUXPKLZULPZVVSUYHUYPVVQVWAVNVVNUYQUXSUXPVUPVURVUS
      XFXIVVPVVTUXPVVRULVVPUXPNQZWKUXPIJZRZVVTUXPVNUYPVWDUYHVVNUXPXJXKZUXPXLTXM
      XNVVPVVSUYOIJZVVRUXPUYOXOPZIJZVVPVVRUXRUYMHUKZVWGVVPUXSUYHUYPUXSSQVVNVUPX
      IXHZVVPUXRUYMHVVPOUXQVIZVVPVUFRZUYLUYHVUFVUEVVOUYHVUCVUDVUEVUFVVIVULVUOWF
      ZXPZXHXCVVPUXPUYOVVPVWBVWCVWEXAZVVPUYNUXJUYHUYNNQZVVOVVLXQZUYHUYEVVOVVMXQ
      ZXEZXRVVPVVRUYRKLVWIIUXSUYRKVUAXSVVPUXRUYLHVWKVWNXTYAVVPUYNUYIOVCPZUXQUJP
      ZUYMHUKZVCPUXPUYNXOPZUXPUXJXOPZVCPVWIVWGIVVPUYNVXBVXCVXDVWQVVPVXAUYMHVVPV
      WTUXQVIZVVPUYKVXAQZVUFUYMNQZVVPVXAUXRUYKVVPUYJVXAYBZVXAUXRVXAUYJYCVVPUYIU
      XRQZUXRVXHVNVVPVXIUYIMQZUYIUXPIJZUYHVXJVVOUYHVVBVXJVVDUXFYITXQZVVPUYIUXFU
      XPVVPUYIVXLYDZUYHVUTVVOVVEXQZVWOVVPVUTUYIUXFIJVXNUXFYETUYHUYPVVNYFZYGVVPV
      WBVXIVXJVXKRXGVWOUYIUXPYHTUUAUYIOUXQUUBTZUUCZUUJUYHVUFVXGVVOUYHVUFRUYLVWM
      XHXPZYJZXCZVVPUXPUYNVWOVWQXRVVPUXPUXJVWOVWRXRZVVPOUYNXOPZUYNVXCIVVPUYNVVP
      UYNVWQYKZUUDVVPVVCVWBVWPWKUYNIJZRZOUXPIJVYBVXCIJVVPURZVWOUYHVYEVVOUYHVWPV
      YDVVLUYHUYJUYMHVVFVVKVVHUYLVVJYLUUEUUFXQVVPOUXFUXPVYFVXNVWOUYHVVAVVOUYHVU
      TVVAVVDUUKXQVXOYGOUXPUYNUUGUUHUUIVVPVXBVXAYMLZUXJXOPZVXDVXTVVPVYGUXJVVPVX
      AYNQZVYGYOQVYGNQVXEVXAUULVYGUUMYPZVWRXRVYAVVPVXBVXAUXJHUKZVYHIVVPVXAUYMUX
      JHVXEVXSVVPUYEVXFVWRXQVXFVVPUYKVWTUUTLZQZUYMUXJIJZUYKVWTUXQUUNVVPVYMRZVUD
      UXMUXFUYKIJZVYNVVPVWTMQVYMVUDVVPUYIVXLUUOZUYKVWTUUPUUQZUYGUXMVVOVYMUURVYO
      UXFVWTUYKVVPVUTVYMVXNXQZVYOVUTUYINQZVWTNQVYSUXFYQUYIUUSYPVYOUYKVYRYDVYOVU
      TUXFVWTIJVYSUXFUVATVYMVWTUYKIJVVPVWTUYKUVBWJYGUXLVYPVYNVMDUYKMVYPVYNDVYPD
      UVLDUYMUXJIDUYLKDKVEUYSUVCDIVEDUXJVEUVDUVEVUMUXHVYPUXKVYNUXGUYKUXFIUVFVUM
      UXIUYMUXJIVUMCUYLKUYTUVGUVHUVIWCUVJZUVKUVMVVPVYIUXJSQVYKVYHVNVXEVVPUXJVWR
      YKZVXAUXJHUVNUVOYRVVPVYGUXPUXJVYJVWOVWRVVPVWTVYLQZWKUXJIJZHVYLUCWUDVVPVWT
      UWDQWUCVVPVWTVYQUVPVWTUVQTVVPWUDHVYLVYOWKUYMUXJVYOUVRVYOUYLVVPVYMVUDVUEVY
      RUYHVUDVUEVVOUYHVUCVUDVUEVVIVUNUVSXPYJZXHVVPUYEVYMVWRXQVYOUYLWUEYLWUAYGVL
      WUDWUDHVWTVYLUYKVWTVNWUDUVTUWAYSVVPVYGUXQUXPVYJVVPVWBUXQNQVWOUXPYQTVWOVVP
      VYGUXRYMLZUXQIVVPVXAUXRUWBJZVYGWUFIJVVPUXRYNQVXAUXRUOWUGVWKVXQVXAUXRYNUWC
      YSVXAUXRUWETVVPVWDUXQYOQWUFUXQVNVWEUXPUWFUXQUWGYPYRVVPVWBUXQUXPIJVWOUXPYE
      TYGUWHYGUWIVVPUYJVXAUYMUXRHVVPVYTUYIVWTYTJUYJVXAUWJUXDVNVXMUYIUWNOUYIVWTU
      XQUWKYPVXPVWKVWLUYMVXRYKUWLVVPUXPUYNUXJUYHUYPVUQVVNVURXIVYCWUBUWMUWOYGVVP
      VVRNQUYONQVWBWKUXPYTJRZVWFVWHXGVWJVWSUYPWUHUYHVVNUXPUWPXKVVRUYOUXPUWQUWRU
      WSUWTUXAUXEUXBUXC $.
  $}

  ${
    $d k F $.  $d k G $.  $d k M $.  $d k N $.  $d k ph $.
    seqabs.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    seqabs.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. CC ) $.
    seqabs.3 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
                      ( G ` k ) = ( abs ` ( F ` k ) ) ) $.
    $( Generalized triangle inequality: the absolute value of a finite sum is
       less than or equal to the sum of absolute values.  (Contributed by Mario
       Carneiro, 26-Mar-2014.)  (Revised by Mario Carneiro, 27-May-2014.) $)
    seqabs $p |- ( ph ->
              ( abs ` ( seq M ( + , F ) ` N ) ) <_ ( seq M ( + , G ) ` N ) ) $=
      ( cfz co cv cfv csu cabs caddc cseq wcel fsumser cc cle fsumabs wa fveq2d
      fzfid eqidd abscl recnd syl 3brtr3d ) AEFJKZBLZCMZBNZOMUKUMOMZBNFPCEQMZOM
      FPDEQMUAAUKUMBAEFUEHUBAUNUPOAUMBCEFAULUKRUCZUMUFGHSUDAUOBDEFIGUQUMTRZUOTR
      HURUOUMUGUHUISUJ $.
  $}

  ${
    $d k m n F $.  $d k n G $.  $d k m n M $.  $d k n ph $.  $d k m n Z $.
    $d n A $.  $d n B $.
    iserabs.1 $e |- Z = ( ZZ>= ` M ) $.
    iserabs.2 $e |- ( ph -> seq M ( + , F ) ~~> A ) $.
    iserabs.3 $e |- ( ph -> seq M ( + , G ) ~~> B ) $.
    iserabs.5 $e |- ( ph -> M e. ZZ ) $.
    iserabs.6 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    iserabs.7 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) = ( abs ` ( F ` k ) ) ) $.
    $( Generalized triangle inequality: the absolute value of an infinite sum
       is less than or equal to the sum of absolute values.  (Contributed by
       Paul Chapman, 10-Sep-2007.)  (Revised by Mario Carneiro,
       27-May-2014.) $)
    iserabs $p |- ( ph -> ( abs ` A ) <_ B ) $=
      ( vn vm cabs cfv cv wcel caddc cseq cmpt cvv cuz fvex eqeltri a1i cc serf
      mptex ffvelrnda wceq fveq2 fveq2d eqid fvmpt adantl climabs wa cr eqeltrd
      abscld serfre cle syl6eleq cfz co elfzuz syl6eleqr sylan2 adantlr eqbrtrd
      simpr seqabs climle ) ABQRCOPHPSZUAEGUBZRZQRZUCZUAFGUBZGHILABOVRWAGUDHIJW
      AUDTAPHVTHGUERZUDIGUEUFUGUKUHLAHUIOSZVRADEGHILMUJULZWDHTZWDWARZWDVRRZQRZU
      MAPWDVTWIHWAVQWDUMVSWHQVQWDVRUNUOWAUPWHQUFUQURZUSKAWFUTZWGWIVAWJWKWHWEVCV
      BAHVAWDWBADFGHILADSZHTZUTZWLFRZWLERZQRZVANWNWPMVCVBVDULWKWGWIWDWBRVEWJWKD
      EFGWDWKWDHWCAWFVNIVFAWLGWDVGVHTZWPUITZWFWRAWMWSWRWLWCHWLGWDVIIVJZMVKVLAWR
      WOWQUMZWFWRAWMXAWTNVKVLVOVMVP $.
  $}

  ${
    $d n A $.  $d n B $.  $d k m n x F $.  $d k m n x G $.  $d k m n x ph $.
    $d k m n x M $.  $d k m n x N $.  $d k m n x Z $.
    cvgcmp.1 $e |- Z = ( ZZ>= ` M ) $.
    cvgcmp.2 $e |- ( ph -> N e. Z ) $.
    cvgcmp.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
    cvgcmp.4 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) e. RR ) $.
    ${
      cvgcmp.5 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
      cvgcmp.6 $e |- ( ( ph /\ k e. ( ZZ>= ` N ) ) -> 0 <_ ( G ` k ) ) $.
      cvgcmp.7 $e |- ( ( ph /\ k e. ( ZZ>= ` N ) ) ->
                       ( G ` k ) <_ ( F ` k ) ) $.
      $( A comparison test for convergence of a real infinite series.  Exercise
         3 of [Gleason] p. 182.  (Contributed by NM, 1-May-2005.)  (Revised by
         Mario Carneiro, 24-Mar-2014.) $)
      cvgcmp $p |- ( ph -> seq M ( + , G ) e. dom ~~> ) $=
        ( vx vm vn wcel cfv cr caddc cseq cvv seqex a1i cv cc cmin cabs clt wbr
        co wa cuz wral wrex crp cz cli cdm syl6eleq eluzel2 syl climcau syl2anc
        wi serfre ffvelrnda recnd ralrimiva r19.29uz ex mpd uztrn2 sylan syldan
        ralimdv adantr cle simpll simprl ffvelrnd eqid adantl resubcld cmpt cfz
        wf simprr elfzuz syl6eleqr wceq fveq2 oveq12d ovex fvmpt eqeltrd syl2an
        c1 cc0 peano2uz subge0d mpbird breqtrrd sylan2 sermono sersub lesubaddd
        wb 3brtr3d mpbid subsubd lesubd rpre ad2antlr lelttr syl3anc mpand 0red
        abssubge0d breq1d 3imtr4d anassrs adantld ralimdva reximdva syl6an cau4
        letrd simpr biantrurd syl5ib caurcvg2 ) AOPQUADEUBZEUCGHYNUCRAUADEUDUEA
        QUFZYNSZUGRZYPPUFZYNSZUHULZUISZOUFZUJUKZUMZQYRUNSZUOZPGUPZOUQUOZYPTRZUU
        CUMZQUUEUOZPGUPZOUQUOAYOUACEUBZSZUGRZUUNYRUUMSZUHULZUISZUUBUJUKZUMZQUUE
        UOZPGUPZOUQUOZUUHAUUSQUUEUOPGUPZOUQUOZUVCAEURRZUUMUSUTRUVEAFEUNSZRUVFAF
        GUVGIHVAEFVBVCZLOPQUUMEGHVDVEAUVDUVBOUQAUUOQGUOZUVDUVBVFAUUOQGAYOGRZUMZ
        UUNAGTYOUUMABCEGHUVHJVGZVHZVIVJUVIUVDUVBUUOUUSPQEGHVKVLVCVQVMAUVAPFUNSZ
        UPZOUQUOZUUFPUVNUPZOUQUOZUVCUUHAUVOUVQOUQAUUBUQRZUMZYQQUVNUOZUVOUUCQUUE
        UOZPUVNUPUVQAUWAUVSAYQQUVNAYOUVNRZUVJYQAFGRZUWCUVJIEYOFGHVNZVOUVKYPAGTY
        OYNABDEGHUVHKVGZVHZVIVPVJVRUVTUVAUWBPUVNUVTYRUVNRZUMZUUTUUCQUUEUWIYOUUE
        RZUMUUSUUCUUOUVTUWHUWJUUSUUCVFUVTUWHUWJUMZUMZUUQUUBUJUKZYTUUBUJUKZUUSUU
        CUWLYTUUQVSUKZUWMUWNUWLUUPUUNYTUWLGTYRUUMUWLAGTUUMWHAUVSUWKVTZUVLVCUWLU
        WDUWHYRGRZUWLAUWDUWPIVCZUVTUWHUWJWAZEYRFGHVNVEZWBZUWLAUVJUUNTRUWPUWLUWD
        UWCUVJUWRUWKUWCUVTFYOYRUVNUVNWCZVNWDUWEVEZUVMVEZUWLYPYSUWLAUVJUUIUWPUXC
        UWGVEZUWLGTYRYNUWLAGTYNWHUWPUWFVCUWTWBZWEZUWLUUPUUNYPUHULZYSUAULZUUNYTU
        HULVSUWLUUPYSUHULZUXHVSUKUUPUXIVSUKUWLYRUAPGYRCSZYRDSZUHULZWFZEUBZSYOUX
        OSUXJUXHVSUWLBUXNYREYOUWLYRGUVGUWTHVAZUVTUWHUWJWIZUWLABUFZGRZUXRUXNSZTR
        UXREYOWGULRZUWPUYAUXRUVGGUXREYOWJHWKZAUXSUMZUXTUXRCSZUXRDSZUHULZTUXSUXT
        UYFWLZAPUXRUXMUYFGUXNYRUXRWLUXKUYDUXLUYEUHYRUXRCWMYRUXRDWMWNUXNWCUYDUYE
        UHWOWPZWDZUYCUYDUYEJKWEWQWRUXRYRWSUAULZYOWGULRZUWLUXRUYJUNSRZWTUXTVSUKZ
        UXRUYJYOWJZUWLUYLUXRUVNRZUYMUWLUYJUVNRZUYLUYOUWLUWHUYPUWSFYRXAVCFUXRUYJ
        UVNUXBVNVOZUWLAUYOUYMUWPAUYOUMZWTUYFUXTVSUYRWTUYFVSUKZUYEUYDVSUKZNAUYOU
        XSUYSUYTXIAUWDUYOUXSIEUXRFGHVNVOZUYCUYDUYEJKXBVPXCUYRUXSUYGVUAUYHVCXDVO
        VPXEXFUWLBCDUXNEYRUXPUWLAUXSUYDUGRZUXREYRWGULRZUWPVUCUXRUVGGUXREYRWJHWK
        ZUYCUYDJVIZWRUWLAUXSUYEUGRZVUCUWPVUDUYCUYEKVIZWRUWLAUXSUYGVUCUWPVUDUYIW
        RXGUWLBCDUXNEYOUWLYOGUVGUXCHVAUWLAUXSVUBUYAUWPUYBVUEWRUWLAUXSVUFUYAUWPU
        YBVUGWRUWLAUXSUYGUYAUWPUYBUYIWRXGXJUWLUUPYSUXHUXAUXFUWLUUNYPUXDUXEWEXHX
        KUWLUUNYPYSUWLUUNUXDVIUWLYPUXEVIUWLYSUXFVIXLXDXMUWLYTTRUUQTRUUBTRZUWOUW
        MUMUWNVFUXGUWLUUNUUPUXDUXAWEUVSVUHAUWKUUBXNXOYTUUQUUBXPXQXRUWLUURUUQUUB
        UJUWLUUPUUNUXAUXDUWLBCYREYOUXPUXQUWLAUXSUYDTRZUYAUWPUYBJWRUWLUYKUYOWTUY
        DVSUKZUYKUWLUYLUYOUYNUYQXEUWLAUYOVUJUWPUYRWTUYEUYDUYRXSAUYOUXSUYETRZVUA
        KVPAUYOUXSVUIVUAJVPMNYIVOVPXFXTYAUWLUUAYTUUBUJUWLYSYPUXFUXEUWLBDYREYOUX
        PUXQUWLAUXSVUKUYAUWPUYBKWRUYKUWLUYLWTUYEVSUKZUYNUWLUYLUYOVULUYQUWLAUYOV
        ULUWPMVOVPXEXFXTYAYBYCYDYEYFYQUUCPQFUVNUXBVKYGYEAUWDUVCUVPXIIOPQUUMEFUV
        NGHUXBYHVCAUWDUUHUVRXIIOPQYNEFUVNGHUXBYHVCYBVMAUUGUULOUQAUUFUUKPGAUWQUM
        UUDUUJQUUEAUWQUWJUUDUUJVFZUWQUWJUMAUVJVUMEYOYRGHVNUUDUUCUVKUUJYQUUCYJUV
        KUUIUUCUWGYKYLXEYCYEYFVQVMYM $.
    $}

    cvgcmpub.5 $e |- ( ph -> seq M ( + , F ) ~~> A ) $.
    cvgcmpub.6 $e |- ( ph -> seq M ( + , G ) ~~> B ) $.
    cvgcmpub.7 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) <_ ( F ` k ) ) $.
    $( An upper bound for the limit of a real infinite series.  This theorem
       can also be used to compare two infinite series.  (Contributed by Mario
       Carneiro, 24-Mar-2014.) $)
    cvgcmpub $p |- ( ph -> B <_ A ) $=
      ( cfv wcel cr syl2an caddc cseq cuz syl6eleq eluzel2 syl serfre ffvelrnda
      vn cz cv wa simpr cfz co simpl elfzuz syl6eleqr cle wbr serle climle ) AC
      BUIUAFGUBZUAEGUBZGIJAHGUCQZRGUJRAHIVEKJUDGHUEUFZONAISUIUKZVCADFGIJVFMUGUH
      AISVGVDADEGIJVFLUGUHAVGIRZULZDFEGVGVIVGIVEAVHUMJUDVIADUKZIRZVJFQZSRVJGVGU
      NUORZAVHUPZVMVJVEIVJGVGUQJURZMTVIAVKVJEQZSRVMVNVOLTVIAVKVLVPUSUTVMVNVOPTV
      AVB $.
  $}

  ${
    $d k m C $.  $d k m F $.  $d j k m n x G $.  $d k N $.  $d j k m n x Z $.
    $d j k n x M $.  $d j k n x ph $.
    cvgcmpce.1 $e |- Z = ( ZZ>= ` M ) $.
    cvgcmpce.2 $e |- ( ph -> N e. Z ) $.
    cvgcmpce.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
    cvgcmpce.4 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) e. CC ) $.
    cvgcmpce.5 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    cvgcmpce.6 $e |- ( ph -> C e. RR ) $.
    cvgcmpce.7 $e |- ( ( ph /\ k e. ( ZZ>= ` N ) ) ->
                       ( abs ` ( G ` k ) ) <_ ( C x. ( F ` k ) ) ) $.
    $( A comparison test for convergence of a complex infinite series.
       (Contributed by NM, 25-Apr-2005.)  (Revised by Mario Carneiro,
       27-May-2014.) $)
    cvgcmpce $p |- ( ph -> seq M ( + , G ) e. dom ~~> ) $=
      ( cfv wcel syl co wa vx vj vn vm caddc cseq cvv cc cv cz syl6eleq eluzel2
      cuz serf ffvelrnda cabs cmpt cmin clt wbr wral wrex crp cli cdm cmul wceq
      fveq2 oveq2d eqid ovex fvmpt adantl adantr remulcld eqeltrd fveq2d abscld
      fvex recnd climdm sylib isermulc2 climrel releldmi cc0 cle uztrn2 absge0d
      cr sylan breqtrrd syldan 3brtr4d cvgcmp climcau syl2anc ad2antrr ffvelrnd
      wi wf serfre simprl resubcld 0red subcld cfz cdif csu cfn wss fzfid difss
      ssfi sylancl eldifi simpll elfzuz syl6eleqr syl2an sylan2 fsumabs fsumser
      eqidd oveq12d cin c0 disjdif a1i cun undif2 fzss2 fsumsplit eqcomd fsumcl
      ad2antll subaddd mpbird eqtr3d ralimdva ssequn1 abscl letrd absidd breq1d
      syl5req rpre ad2antlr lelttr syl3anc mpand sylbid anassrs reximdva caucvg
      mpd seqex ) AUAUBUCUEEFUFZFUGHIAHUHUCUIZUURACEFHIAGFUMPZQFUJQZAGHUUTJIUKF
      GULRZLUNZUOAUUSUEUDHUDUIZEPZUPPZUQZFUFZPZUBUIZUVHPZURSZUPPZUAUIZUSUTZUCUV
      JUMPZVAZUBHVBZUAVCVAZUUSUURPZUVJUURPZURSZUPPZUVNUSUTZUCUVPVAZUBHVBZUAVCVA
      AUVAUVHVDVEZQUVSUVBACUDHBUVDDPZVFSZUQZUVGFGHIJACUIZHQZTZUWKUWJPZBUWKDPZVF
      SZWJUWLUWNUWPVGZAUDUWKUWIUWPHUWJUVDUWKVGZUWHUWOBVFUVDUWKDVHVIUWJVJBUWOVFV
      KVLZVMZUWMBUWOABWJQUWLNVNKVOVPUWMUWKUVGPZUWKEPZUPPZWJUWLUXAUXCVGZAUDUWKUV
      FUXCHUVGUWRUVEUXBUPUVDUWKEVHVQUVGVJUXBUPVSVLZVMZUWMUXBLVRVPZAUEUWJFUFZBUE
      DFUFZVDPZVFSZVDUTUXHUWGQAUXJBCDUWJFHIUVBABNVTAUXIUWGQUXIUXJVDUTMUXIWAWBUW
      MUWOKVTUWTWCUXHUXKVDWDWERAUWKGUMPQZUWLWFUXAWGUTAGHQUXLUWLJFUWKGHIWHWKZUWM
      WFUXCUXAWGUWMUXBLWIUXFWLWMAUXLTZUXCUWPUXAUWNWGOUXNUWLUXDUXMUXERUXNUWLUWQU
      XMUWSRWNWOUAUBUCUVHFHIWPWQAUVRUWFUAVCAUVNVCQZTZUVQUWEUBHUXPUVJHQZTUVOUWDU
      CUVPUXPUXQUUSUVPQZUVOUWDWTUXPUXQUXRTZTZUVOUVLUVNUSUTZUWDUXTUVMUVLUVNUSUXT
      UVLUXTUVIUVKUXTHWJUUSUVHAHWJUVHXAUXOUXSACUVGFHIUVBUXGXBWRZUXSUUSHQUXPFUUS
      UVJHIWHVMZWSUXTHWJUVJUVHUYBUXPUXQUXRXCZWSXDZUXTWFUWCUVLUXTXEUXTUWBUXTUVTU
      WAUXTHUHUUSUURAHUHUURXAUXOUXSUVCWRZUYCWSUXTHUHUVJUURUYFUYDWSXFZVRZUYEUXTU
      WBUYGWIUXTFUUSXGSZFUVJXGSZXHZUXBCXIZUPPUYKUXCCXIZUWCUVLWGUXTUYKUXBCUXTUYI
      XJQUYKUYIXKUYKXJQUXTFUUSXLZUYIUYJXMUYIUYKXNXOZUWKUYKQZUXTUWKUYIQZUXBUHQZU
      WKUYIUYJXPUXTAUWLUYRUYQAUXOUXSXQZUYQUWKUUTHUWKFUUSXRIXSZLXTZYAZYBUXTUWBUY
      LUPUXTUYIUXBCXIZUYJUXBCXIZURSZUWBUYLUXTVUCUVTVUDUWAURUXTUXBCEFUUSUXTUYQTZ
      UXBYDUXTUUSHUUTUYCIUKZVUAYCUXTUXBCEFUVJUXTUWKUYJQZTZUXBYDUXTUVJHUUTUYDIUK
      ZUXTAUWLUYRVUHUYSVUHUWKUUTHUWKFUVJXRIXSZLXTZYCYEUXTVUEUYLVGVUDUYLUESZVUCV
      GUXTVUCVUMUXTUYJUYKUXBUYICUYJUYKYFYGVGUXTUYJUYIYHYIZUXTUYJUYKYJUYJUYIYJZU
      YIUYJUYIYKUXTUYJUYIXKZVUOUYIVGUXRVUPUXPUXQUVJFUUSYLYPUYJUYIUUAWBUUFZUYNVU
      AYMYNUXTVUCVUDUYLUXTUYIUXBCUYNVUAYOUXTUYJUXBCUXTFUVJXLZVULYOUXTUYKUXBCUYO
      VUBYOYQYRYSVQUXTUYIUXCCXIZUYJUXCCXIZURSZUVLUYMUXTVUSUVIVUTUVKURUXTUXCCUVG
      FUUSVUFUWLUXDUYQUWLUXTUYTVMUXERVUGVUFUYRUXCUHQZVUAUYRUXCUXBUUBVTZRZYCUXTU
      XCCUVGFUVJVUIUWLUXDVUHUWLUXTVUKVMUXERVUJVUIUYRVVBVULVVCRZYCYEUXTVVAUYMVGV
      UTUYMUESZVUSVGUXTVUSVVFUXTUYJUYKUXCUYICVUNVUQUYNVVDYMYNUXTVUSVUTUYMUXTUYI
      UXCCUYNVVDYOUXTUYJUXCCVURVVEYOUXTUYKUXCCUYOUXTUYPTUYRVVBVUBVVCRYOYQYRYSWN
      ZUUCUUDUUEUXTUWCUVLWGUTZUYAUWDVVGUXTUWCWJQUVLWJQUVNWJQZVVHUYATUWDWTUYHUYE
      UXOVVIAUXSUVNUUGUUHUWCUVLUVNUUIUUJUUKUULUUMYTUUNYTUUPUURUGQAUEEFUUQYIUUO
      $.
  $}

  ${
    $d k F $.  $d k G $.  $d k M $.  $d k ph $.  $d k Z $.
    abscvgcvg.1 $e |- Z = ( ZZ>= ` M ) $.
    abscvgcvg.2 $e |- ( ph -> M e. ZZ ) $.
    abscvgcvg.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = ( abs ` ( G ` k ) ) )
        $.
    abscvgcvg.4 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) e. CC ) $.
    abscvgcvg.5 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    $( An absolutely convergent series is convergent.  (Contributed by Mario
       Carneiro, 28-Apr-2014.) $)
    abscvgcvg $p |- ( ph -> seq M ( + , G ) e. dom ~~> ) $=
      ( c1 cuz cfv cz wcel uzid cr cle wbr syl syl6eleqr cv cabs abscld eqeltrd
      wa 1red cmul co eleq2i wceq eqcomd eqle syl2anc mulid2d breqtrrd sylan2br
      recnd cvgcmpce ) ALBCDEEFGAEEMNZFAEOPEVAPHEQUAGUBABUCZFPZUGZVBCNZVBDNZUDN
      ZRIVDVFJUEZUFZJKAUHVBVAPAVCVGLVEUIUJZSTFVAVBGUKVDVGVEVJSVDVGRPVGVEULVGVES
      TVHVDVEVGIUMVGVEUNUOVDVEVDVEVIUSUPUQURUT $.
  $}

  ${
    $d k n A $.  $d n H $.  $d k n ph $.  $d k n Z $.  $d n B $.  $d n F $.
    $d n M $.
    climfsum.1 $e |- Z = ( ZZ>= ` M ) $.
    climfsum.2 $e |- ( ph -> M e. ZZ ) $.
    climfsum.3 $e |- ( ph -> A e. Fin ) $.
    climfsum.5 $e |- ( ( ph /\ k e. A ) -> F ~~> B ) $.
    climfsum.6 $e |- ( ph -> H e. W ) $.
    climfsum.7 $e |- ( ( ph /\ ( k e. A /\ n e. Z ) ) -> ( F ` n ) e. CC ) $.
    climfsum.8 $e |- ( ( ph /\ n e. Z ) ->
                      ( H ` n ) = sum_ k e. A ( F ` n ) ) $.
    $( Limit of a finite sum of converging sequences.  Note that ` F ( k ) ` is
       a collection of functions with implicit parameter ` k ` , each of which
       converges to ` B ( k ) ` as ` n ~~> +oo ` .  (Contributed by Mario
       Carneiro, 22-Jul-2014.)  (Proof shortened by Mario Carneiro,
       22-May-2016.) $)
    climfsum $p |- ( ph -> H ~~> sum_ k e. A B ) $=
      ( cli wbr wcel csu cv cfv cmpt mpteq2dva crli cvv cr wss cz uzssz eqsstri
      cuz zssre sstri a1i wa fvexd adantr climrel brrelexi eqid climmpt syl2anc
      wb syl mpbid cc anassrs fmptd rlimclim mpbird fsumrlim cfn fsumcl eqbrtrd
      anass1rs ) AGBCDUAZRSZEJEUBZGUCZUDZVRRSZAWBEJBVTFUCZDUAZUDZVRRAEJWAWEQUEA
      WFVRUFSWFVRRSAEJBWDCDUGJUHUIAJUJUHJHUMUCUJKHUKULUNUOUPMAVTJTZDUBBTZUQUQVT
      FURAWHUQZEJWDUDZCUFSWJCRSZWIFCRSZWKNWIHUJTZFUGTZWLWKVEAWMWHLUSZWIWLWNNFCR
      UTVAVFCEFWJHUGJKWJVBZVCVDVGWICWJHJKWOWIEJWDVHWJAWHWGWDVHTZPVIWPVJVKVLVMAV
      RWFHJKLAEJWEVHWFAWGUQBWDDABVNTWGMUSAWHWGWQPVQVOWFVBVJVKVGVPAWMGITVSWCVELO
      VREGWBHIJKWBVBVCVDVL $.
  $}

  ${
    $d k u w x z A $.  $d k u w z B $.  $d k u w x z ph $.  $d u w x z C $.
    fsumiun.1 $e |- ( ph -> A e. Fin ) $.
    fsumiun.2 $e |- ( ( ph /\ x e. A ) -> B e. Fin ) $.
    fsumiun.3 $e |- ( ph -> Disj_ x e. A B ) $.
    ${
      fsumiun.4 $e |- ( ( ph /\ ( x e. A /\ k e. B ) ) -> C e. CC ) $.
      $( Sum over a disjoint indexed union.  (Contributed by Mario Carneiro,
         1-Jul-2015.)  (Revised by Mario Carneiro, 10-Dec-2016.) $)
      fsumiun $p |- ( ph ->
          sum_ k e. U_ x e. A B C = sum_ x e. A sum_ k e. B C ) $=
        ( vz vw wss ciun csu wceq wcel wi c0 sumeq1d vu ssid cfn csn cun iuneq1
        cv sseq1 0iun syl6eq sumeq1 eqeq12d imbi12d imbi2d weq sum0 eqtr4i 2a1i
        cc0 wn wa id unssad imim1i csb caddc co cin nfcv nfcsb1v csbeq1a cbviun
        oveq1 vex csbeq1 iunxsn eqtri ineq2i wdisj ad2antrr adantl simpr unssbd
        simplr disjsn sylibr disjiun syl13anc syl5eqr iunxun uneq2i a1i syl2anc
        wral ssfi ralrimiva ssralv sylc iunfi cc iunss1 sselda eliun rexlimdvaa
        syl5bi imp syldan fsumsplit eqidd anassrs fsumcl r19.21bi nfsum cbvsumi
        wrex cvv snss nfel1 eleq1d sumsn sylancr syl5eq oveq2d eqtrd syl5ibr ex
        rspc a2d syl5 expcom findcard2s mpcom mpi ) ACCMZBCDNZEFOZCDEFOZBOZPZCU
        BCUCQZAYNYSRZGAUAUGZCMZBUUBDNZEFOZUUBYQBOZPZRZRASCMZSEFOZSYQBOZPZRZRAKU
        GZCMZBUUNDNZEFOZUUNYQBOZPZRZRZAUUNLUGZUDZUEZCMZBUVDDNZEFOZUVDYQBOZPZRZR
        ZAUUARUAKLCUUBSPZUUHUUMAUVLUUCUUIUUGUULUUBSCUHUVLUUEUUJUUFUUKUVLUUDSEFU
        VLUUDBSDNSBUUBSDUFBDUIUJTUUBSYQBUKULUMUNUAKUOZUUHUUTAUVMUUCUUOUUGUUSUUB
        UUNCUHUVMUUEUUQUUFUURUVMUUDUUPEFBUUBUUNDUFTUUBUUNYQBUKULUMUNUUBUVDPZUUH
        UVJAUVNUUCUVEUUGUVIUUBUVDCUHUVNUUEUVGUUFUVHUVNUUDUVFEFBUUBUVDDUFTUUBUVD
        YQBUKULUMUNUUBCPZUUHUUAAUVOUUCYNUUGYSUUBCCUHUVOUUEYPUUFYRUVOUUDYOEFBUUB
        CDUFTUUBCYQBUKULUMUNUULAUUIUUJUSUUKEFUPYQBUPUQURUVBUUNQUTZUVAUVKRUUNUCQ
        UVPAUUTUVJAUVPUUTUVJRUUTUVEUUSRAUVPVAZUVJUVEUUOUUSUVEUUNUVCCUVEVBVCZVDU
        VQUVEUUSUVIUVQUVEUUSUVIRUUSUVIUVQUVEVAZUUQBUVBDVEZEFOZVFVGZUURUWAVFVGZP
        UUQUURUWAVFVMUVSUVGUWBUVHUWCUVSUUPUVTEUVFFUVSUUPUVTVHUUPBUVCDNZVHZSUWDU
        VTUUPUWDKUVCBUUNDVEZNUVTBKUVCDUWFKDVIBUUNDVJZBUUNDVKZVLKUVBUWFUVTLVNZBU
        UNUVBDVOZVPVQZVRUVSBCDVSZUUOUVCCMZUUNUVCVHSPZUWESPAUWLUVPUVEIVTUVEUUOUV
        QUVRWAUVSUUNUVCCUVQUVEWBZWCZUVSUVPUWNAUVPUVEWDUUNUVBWEWFZBCDUUNUVCWGWHW
        IUVFUUPUVTUEZPUVSUVFUUPUWDUEUWRBUUNUVCDWJUWDUVTUUPUWKWKVQWLUVSUVDUCQZDU
        CQZBUVDWNZUVFUCQUVSYTUVEUWSAYTUVPUVEGVTUWOCUVDWOWMZUVSUVEUWTBCWNZUXAUWO
        AUXCUVPUVEAUWTBCHWPVTUWTBUVDCWQWRBUVDDWSWMUVSFUGZUVFQUXDYOQZEWTQZUVSUVF
        YOUXDUVEUVFYOMUVQBUVDCDXAWAXBUVSUXEUXFUXEUXDDQZBCXOZUVSUXFBUXDCDXCAUXHU
        XFRUVPUVEAUXGUXFBCJXDVTXEXFXGXHUVSUVHUURUVCYQBOZVFVGUWCUVSUUNUVCYQUVDBU
        WQUVSUVDXIUXBUVSBUGZUVDQUXJCQZYQWTQZUVSUVDCUXJUWOXBUVSUXLBCAUXLBCWNZUVP
        UVEAUXLBCAUXKVADEFHAUXKUXGUXFJXJXKWPVTZXLXGXHUVSUXIUWAUURVFUVSUXIUVCUWF
        EFOZKOZUWAUVCYQUXOBKKYQVIBUWFEFUWGBEVIZXMBKUODUWFEFUWHTXNUVSUVBXPQUWAWT
        QZUXPUWAPUWIUVSUVBCQZUXMUXRUVSUWMUXSUWPUVBCUWIXQWFUXNUXLUXRBUVBCBUWAWTB
        UVTEFBUVBDVJUXQXMXRBLUOZYQUWAWTUXTDUVTEFBUVBDVKTXSYGWRUXOUWAKUVBXPKLUOU
        WFUVTEFUWJTXTYAYBYCYDULYEYFYHYIYJYHWAYKYLYM $.
    $}

    $( The cardinality of a disjoint indexed union.  (Contributed by Mario
       Carneiro, 24-Jan-2015.)  (Revised by Mario Carneiro, 10-Dec-2016.) $)
    hashiun $p |- ( ph -> ( # ` U_ x e. A B ) = sum_ x e. A ( # ` B ) ) $=
      ( vk c1 csu chash cfv cv wcel wa cmul co cfn cc wceq ciun 1cnd wral iunfi
      fsumiun ralrimiva syl2anc ax-1cn fsumconst sylancl cn0 hashcl mulid1 4syl
      nn0cn eqtrd sumeq2dv 3eqtr3d ) ABCDUAZIHJZCDIHJZBJUSKLZCDKLZBJABCDIHEFGAB
      MCNZHMDNOOUBUEAUTVBIPQZVBAUSRNZISNZUTVETACRNDRNZBCUCVFEAVHBCFUFBCDUDUGZUH
      USIHUIUJAVFVBUKNVBSNVEVBTVIUSULVBUOVBUMUNUPACVAVCBAVDOZVAVCIPQZVCVJVHVGVA
      VKTFUHDIHUIUJVJVHVCUKNVCSNVKVCTFDULVCUOVCUMUNUPUQUR $.
  $}

  ${
    $d A x y $.  $d B y $.  $d ph x y $.
    hash2iun.a $e |- ( ph -> A e. Fin ) $.
    hash2iun.b $e |- ( ( ph /\ x e. A ) -> B e. Fin ) $.
    hash2iun.c $e |- ( ( ph /\ x e. A /\ y e. B ) -> C e. Fin ) $.
    hash2iun.da $e |- ( ph -> Disj_ x e. A U_ y e. B C ) $.
    hash2iun.db $e |- ( ( ph /\ x e. A ) -> Disj_ y e. B C ) $.
    $( The cardinality of a nested disjoint indexed union.  (Contributed by AV,
       9-Jan-2022.) $)
    hash2iun $p |- ( ph -> ( # ` U_ x e. A U_ y e. B C )
                           = sum_ x e. A sum_ y e. B ( # ` C ) ) $=
      ( ciun chash cfv csu cv wcel wa cfn hashiun 3expa ralrimiva iunfi syl2anc
      wral sumeq2dv eqtrd ) ABDCEFLZLMNDUHMNZBODEFMNCOZBOABDUHGABPDQZRZESQFSQZC
      EUEUHSQHULUMCEAUKCPEQUMIUAZUBCEFUCUDJTADUIUJBULCEFHUNKTUFUG $.
  $}

  ${
    $d A x y $.  $d B y $.  $d ph x y $.
    hash2iun1dif1.a $e |- ( ph -> A e. Fin ) $.
    hash2iun1dif1.b $e |- B = ( A \ { x } ) $.
    hash2iun1dif1.c $e |- ( ( ph /\ x e. A /\ y e. B ) -> C e. Fin ) $.
    hash2iun1dif1.da $e |- ( ph -> Disj_ x e. A U_ y e. B C ) $.
    hash2iun1dif1.db $e |- ( ( ph /\ x e. A ) -> Disj_ y e. B C ) $.
    hash2iun1dif1.1 $e |- ( ( ph /\ x e. A /\ y e. B ) -> ( # ` C ) = 1 ) $.
    $( The cardinality of a nested disjoint indexed union.  (Contributed by AV,
       9-Jan-2022.) $)
    hash2iun1dif1 $p |- ( ph -> ( # ` U_ x e. A U_ y e. B C )
                            = ( ( # ` A ) x. ( ( # ` A ) - 1 ) ) ) $=
      ( chash cfv csu c1 co cmul wcel cfn ciun cmin cv wa csn cdif diffi adantr
      syl syl5eqel hash2iun 2sumeq2dv cc wceq fsumconst syl2anc sumeq2dv fveq2d
      1cnd a1i hashdifsn sylan eqtrd oveq1d cn0 hashcl nn0cnd peano2cnm mulid1d
      sumeq2ad 3eqtrd ) ABDCEFUAUAMNDEFMNZCOBODEPCOZBOZDMNZVOPUBQZRQZABCDEFGABU
      CZDSZUDZEDVRUEZUFZTHAWBTSZVSADTSZWCGDWAUGUIUHUJZIJKUKADEVLPBCLULAVNDEMNZP
      RQZBODVPPRQZBOZVQADVMWGBVTETSPUMSVMWGUNWEVTUSEPCUOUPUQADWGWHBVTWFVPPRVTWF
      WBMNZVPVTEWBMEWBUNVTHUTURAWDVSWJVPUNGDVRVAVBVCVDUQAWIDVPBOZVQADWHVPBAVPAV
      OUMSVPUMSZAVOAWDVOVESGDVFUIVGVOVHUIZVIVJAWDWLWKVQUNGWMDVPBUOUPVCVKVK $.
  $}

  ${
    $d X x y $.  $d Y x y $.  $d ph y $.
    hashrabrex.1 $e |- ( ph -> Y e. Fin ) $.
    hashrabrex.2 $e |- ( ( ph /\ y e. Y ) -> { x e. X | ps } e. Fin ) $.
    hashrabrex.3 $e |- ( ph -> Disj_ y e. Y { x e. X | ps } ) $.
    $( The number of elements in a class abstraction with a restricted
       existential quantification.  (Contributed by Alexander van der Vekens,
       29-Jul-2018.) $)
    hashrabrex $p |- ( ph -> ( # ` { x e. X | E. y e. Y ps } )
                             = sum_ y e. Y ( # ` { x e. X | ps } ) ) $=
      ( wrex crab chash cfv ciun csu iunrab eqcomi fveq2i hashiun syl5eq ) ABDF
      JCEKZLMDFBCEKZNZLMFUBLMDOUAUCLUCUABDCFEPQRADFUBGHIST $.
  $}

  ${
    $d x A $.  $d x ph $.
    hashuni.1 $e |- ( ph -> A e. Fin ) $.
    hashuni.2 $e |- ( ph -> A C_ Fin ) $.
    hashuni.3 $e |- ( ph -> Disj_ x e. A x ) $.
    $( The cardinality of a disjoint union.  (Contributed by Mario Carneiro,
       24-Jan-2015.) $)
    hashuni $p |- ( ph -> ( # ` U. A ) = sum_ x e. A ( # ` x ) ) $=
      ( cuni chash cfv cv ciun csu uniiun fveq2i cfn sselda hashiun syl5eq ) AC
      GZHIBCBJZKZHICTHIBLSUAHBCMNABCTDACOTEPFQR $.
  $}

  ${
    $d x A $.  $d x ph $.  $d x .~ $.
    qshash.1 $e |- ( ph -> .~ Er A ) $.
    qshash.2 $e |- ( ph -> A e. Fin ) $.
    $( The cardinality of a set with an equivalence relation is the sum of the
       cardinalities of its equivalence classes.  (Contributed by Mario
       Carneiro, 16-Jan-2015.) $)
    qshash $p |- ( ph -> ( # ` A ) = sum_ x e. ( A /. .~ ) ( # ` x ) ) $=
      ( cqs cuni chash cfv cv csu cvv wer cfn wcel erex sylc wss ssfi cpw sylib
      uniqs2 fveq2d pwfi qsss syl2anc elpwi ex syl2im ssrdv sstrd wdisj qsdisj2
      syl hashuni eqtr3d ) ACDGZHZIJCIJURBKZIJBLAUSCIACDMEACDNZCOPZDMPEFCDOQRUC
      UDABURACUAZOPZURVCSUROPAVBVDFCUEUBACDEUFZVCURTUGAURVCOVEABVCOAVBUTVCPUTCS
      ZUTOPZFUTCUHVBVFVGCUTTUIUJUKULAVABURUTUMEBCDCUNUOUPUQ $.
  $}

  ${
    $d w x y z $.
    ackbijnn.1 $e |- F = ( x e. ( ~P NN0 i^i Fin ) |->
        sum_ y e. x ( 2 ^ y ) ) $.
    $( Translate the Ackermann bijection ~ ackbij1 onto the positive integers.
       (Contributed by Mario Carneiro, 16-Jan-2015.) $)
    ackbijnn $p |- F : ( ~P NN0 i^i Fin ) -1-1-onto-> NN0 $=
      ( vz vw cn0 cpw cfn chash com ccrd cfv wf1o ax-mp wceq c2 wcel syl wtru
      cin cres cv csn cxp ciun cmpt ccnv cima ccom hashgval2 hashgf1o sneq pweq
      xpeq12d cbviunv iuneq1 syl5eq fveq2d cbvmptv ackbij1 f1ocnv f1opwfi f1oco
      weq mp2an wb cexp co wral inss2 wf f1of eqid fmpt mpbir rspec sseldi snfi
      csu wa cdm cnvimass dmhashres sseqtri con0 eqsstri sstri simpr pwfi sylib
      onfin2 xpfi sylancr ralrimiva iunfi syl2anc ficardom fvres hashcard wdisj
      c1st xp1st elsni rgen rgenw invdisj mp1i hashiun sseli f1of1 inss1 elpwid
      wf1 wss f1ores adantl cc hashcl nn0cn 3syl fsumf1o sselda ffvelrni hashxp
      c1 hashsng hashpw f1ocnvfv2 eqtr3d oveq2d eqtrd oveq12d 2cn expcl mulid2d
      cmul 3eqtrd eqidd fmptco sumeq2dv mpteq2ia feqmptd fveq2 trud f1oeq1 mpbi
      3eqtr4i ) GHZIUAZGJKUBZEKHZIUAZFEUCZFUCZUDZUUOHZUEZUFZLMZUGZAUUJUUKUHZAUC
      ZUIZUGZUJZUJZNZUUJGCNZKGUUKNZUUJKUVFNZUVHAUUKAUKULZUUMKUVANUUJUUMUVENZUVK
      ABUVAEAUUMUUTBUVCBUCZUDZUVNHZUEZUFZLMEAVEZUUSUVRLUVSUUSBUUNUVQUFUVRFBUUNU
      URUVQFBVEUUPUVOUUQUVPUUOUVNUMUUOUVNUNUOUPBUUNUVCUVQUQURUSUTVAGKUVBNZUVMUV
      JUVTUVLKGUUKVBOZGKUVBAVCOZUUJUUMKUVAUVEVDVFUUJKGUUKUVFVDVFUVGCPUVHUVIVGAU
      UJFUVDUURUFZLMZUUKMZUGZAUUJUVCQUVNVHVIZBVTZUGUVGCAUUJUWEUWHUVCUUJRZUWEUWD
      JMZUWCJMZUWHUWIUWDKRZUWEUWJPUWIUWCIRZUWLUWIUVDIRUURIRZFUVDVJUWMUWIUUMIUVD
      UULIVKUVDUUMRZAUUJUWOAUUJVJUUJUUMUVEVLZUVMUWPUWBUUJUUMUVEVMOAUUJUUMUVDUVE
      UVEVNVOVPVQZVRZUWIUWNFUVDUWIUUOUVDRZWAZUUPIRUUQIRZUWNUUOVSUWTUUOIRUXAUWTU
      VDIUUOUVDKIUVDUUKWBKUUKUVCWCKWDWEKWFIUAIWLWFIVKWGZWHUWIUWSWIVRUUOWJWKUUPU
      UQWMWNZWOFUVDUURWPWQZUWCWRSZUWDKJWSSUWIUWMUWJUWKPUXDUWCWTSUWIUWKUVDUURJMZ
      FVTUVCUVNUVBMZUDZUXGHZUEZJMZBVTUWHUWIFUVDUURUWRUXCUUNXBMZUUOPZEUURVJZFUVD
      VJFUVDUURXAUWIUXNFUVDUXMEUURUUNUURRUXLUUPRUXMUUNUUPUUQXCUXLUUOXDSXEXFFEUV
      DUURUXLXGXHXIUWIUVDUXFUVCUXKFBUVBUVCUBZUXGUUOUXGPZUURUXJJUXPUUPUXHUUQUXIU
      UOUXGUMUUOUXGUNUOUSUUJIUVCUUIIVKXJUWIGKUVBXNZUVCGXOUVCUVDUXONUVTUXQUWAGKU
      VBXKOUWIUVCGUUJUUIUVCUUIIXLXJXMZGKUVCUVBXPWNUVNUVCRZUVNUXOMUXGPUWIUVNUVCU
      VBWSXQUWTUWNUXFGRUXFXRRUXCUURXSUXFXTYAYBUWIUVCUXKUWGBUWIUXSWAZUXKUXHJMZUX
      IJMZYQVIZYFUWGYQVIUWGUXTUXHIRUXIIRZUXKUYCPUXGVSUXTUXGIRZUYDUXTKIUXGUXBUXT
      UVNGRZUXGKRZUWIUVCGUVNUXRYCZGKUVNUVBUVTGKUVBVLUWAGKUVBVMOYDSZVRZUXGWJWKUX
      HUXIYEWNUXTUYAYFUYBUWGYQUXTUYGUYAYFPUYIUXGKYGSUXTUYBQUXGJMZVHVIZUWGUXTUYE
      UYBUYLPUYJUXGYHSUXTUYKUVNQVHUXTUXGUUKMZUYKUVNUXTUYGUYMUYKPUYIUXGKJWSSUXTU
      VJUYFUYMUVNPUVLUYHKGUVNUUKYIWNYJYKYLYMUXTUWGUXTQXRRUYFUWGXRRYNUYHQUVNYOWN
      YPYRUUAYRYRUUBUVGUWFPTABUUJKUWDUVNUUKMUWEUVFUUKUWIUWLTUXEXQTAEUUJUUMUVDUU
      TUWDUVEUVAUWIUWOTUWQXQTUVEYSTUVAYSUUNUVDPUUSUWCLFUUNUVDUURUQUSYTTBKGUUKUV
      JKGUUKVLTUVLKGUUKVMXHUUCUVNUWDUUKUUDYTUUEDUUHUUJGUVGCUUFOUUG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The binomial theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d j k A $.  $d j k B $.  $d j k N $.  $d j k ph $.
    binomlem.1 $e |- ( ph -> A e. CC ) $.
    binomlem.2 $e |- ( ph -> B e. CC ) $.
    binomlem.3 $e |- ( ph -> N e. NN0 ) $.
    binomlem.4 $e |- ( ps -> ( ( A + B ) ^ N ) = sum_ k e. ( 0 ... N )
                      ( ( N _C k ) x. ( ( A ^ ( N - k ) ) x. ( B ^ k ) ) ) ) $.
    $( Lemma for ~ binom (binomial theorem).  Inductive step.  (Contributed by
       NM, 6-Dec-2005.)  (Revised by Mario Carneiro, 24-Apr-2014.) $)
    binomlem $p |- ( ( ph /\ ps ) -> ( ( A + B ) ^ ( N + 1 ) ) =
                     sum_ k e. ( 0 ... ( N + 1 ) ) ( ( ( N + 1 ) _C k ) x.
                       ( ( A ^ ( ( N + 1 ) - k ) ) x. ( B ^ k ) ) ) ) $=
      ( co cexp cmul cc0 c1 csu wceq wcel cc adantr vj wa caddc cfz cv cbc cmin
      adantl oveq1d fzfid fzelp1 cn0 elfzelz bccl syl2an nn0cnd sylan2 fznn0sub
      cz expcl elfznn0 mulcld fsummulc1 mulassd 1cnd addsubd oveq2d expp1 eqtrd
      zcnd mul32d eqtr4d sumeq2dv wss fzssp1 a1i cdif eldifi syl eldifn syl3anc
      wn bcval3 mul02d cuz cfv fzssuz sumss 3eqtrd 1zzd 0z nn0zd oveq2 fsumshft
      oveq12d oveq1 cbvsumv syl6eq subsub3d fzp1ss ax-mp sseli peano2zm syl2anc
      cn elfznn 0p1e1 oveq1i eleq2s nnm1nn0 expcld expm1t syl22anc ax-1cn npcan
      fzaddel sylancl eleq1d bitrd mtbird sylan9eqr addcld expp1d adddid bcpasc
      wb adddird eqtr3d fsumadd 3eqtr4d ) ABUBZCDUCKZFLKZCMKZYMDMKZUCKZNFOUCKZU
      DKZFEUEZUFKZCYQYSUGKZLKZDYSLKZMKZMKZEPZYRFYSOUGKZUFKZUUDMKZEPZUCKZYLYQLKZ
      YRYQYSUFKZUUDMKZEPZYKYNUUFYOUUJUCYKYNNFUDKZYTCFYSUGKZLKZUUCMKZMKZEPZCMKZU
      UFYKYMUVACMBYMUVAQAJUHUIAUVBUUFQBAUVBUUPUUTCMKZEPUUPUUEEPUUFAUUPUUTCEANFU
      JZGAYSUUPRZUBZYTUUSUVEAYSYRRZYTSRYSNFUKZAUVGUBZYTAFULRZYSUSRZYTULRUVGIYSN
      YQUMZYSFUNUOUPZUQZUVFUURUUCACSRZUUQULRZUURSRUVEGYSNFURZCUUQUTUOZUVEAUVGUU
      CSRZUVHADSRZYSULRUVSUVGHYSYQVADYSUTUOZUQZVBZVBZVCAUUPUVCUUEEUVFUVCYTUUSCM
      KZMKUUEUVFYTUUSCUVNUWCAUVOUVEGTZVDUVFUUDUWEYTMUVFUUDUURCMKZUUCMKUWEUVFUUB
      UWGUUCMUVFUUBCUUQOUCKZLKZUWGUVFUUAUWHCLUVFFOYSAFSRZUVEAFIUPZTUVFVEUVFYSUV
      EUVKAYSNFUMUHVJVFVGAUVOUVPUWIUWGQUVEGUVQCUUQVHUOVIUIUVFUURCUUCUVRUWFUWBVK
      VIVGVLVMAUUPYRUUEENUUPYRVNANFVOVPUVEAUVGUUESRUVHUVIYTUUDUVMUVIUUBUUCAUVOU
      UAULRUUBSRZUVGGYSNYQURCUUAUTUOZUWAVBZVBZUQAYSYRUUPVQRZUBZUUENUUDMKZNUWQYT
      NUUDMUWQUVJUVKUVEWBZYTNQAUVJUWPITUWPUVKAUWPUVGUVKYSYRUUPVRZUVLVSUHUWPUWSA
      YSYRUUPVTUHYSFWCWAUIUWPAUVGUWRNQZUWTUVIUUDUWNWDZUQVIYRNWEWFVNANYQWGVPZWHW
      ITVIBAYOUVADMKZUUJBYMUVADMJUIAUXDUUPUUTDMKZEPZUUJAUUPUUTDEUVDHUWDVCAUXFNO
      UCKZYQUDKZUUHCFUUGUGKZLKZDUUGLKZMKZMKZDMKZEPZUXHUUIEPUUJAUXFUXHFUAUEZOUGK
      ZUFKZCFUXQUGKZLKZDUXQLKZMKZMKZDMKZUAPUXOAUXEUYDEUAONFAWJNUSRZAWKVPAFIWLUV
      FUUTDUWDAUVTUVEHTVBYSUXQQZUUTUYCDMUYFYTUXRUUSUYBMYSUXQFUFWMUYFUURUXTUUCUY
      AMUYFUUQUXSCLYSUXQFUGWMVGYSUXQDLWMWOWOUIWNUXHUYDUXNUAEUXPYSQZUYCUXMDMUYGU
      XRUUHUYBUXLMUYGUXQUUGFUFUXPYSOUGWPZVGUYGUXTUXJUYAUXKMUYGUXSUXICLUYGUXQUUG
      FUGUYHVGVGUYGUXQUUGDLUYHVGWOWOUIWQWRAUXHUXNUUIEAYSUXHRZUBZUXNUUHUUBUXKMKZ
      MKZDMKUUHUYKDMKZMKUUIUYJUXMUYLDMUYJUXLUYKUUHMUYJUXJUUBUXKMUYJUXIUUACLUYJF
      YSOAUWJUYIUWKTUYJYSUYIUVKAYSUXGYQUMUHVJUYJVEWSVGUIVGUIUYJUUHUYKDUYIAUVGUU
      HSRUXHYRYSUYEUXHYRVNZWKNYQWTXAZXBZUVIUUHUVIUVJUUGUSRZUUHULRAUVJUVGITUVIUV
      KUYQUVGUVKAUVLUHYSXCZVSUUGFUNXDUPZUQUYJUUBUXKUYIAUVGUWLUYPUWMUQZUYJDUUGAU
      VTUYIHTZUYJYSXERZUUGULRUYIVUBAVUBYSOYQUDKUXHYSYQXFUXGOYQUDXGXHXIZUHYSXJVS
      XKZVBVUAVDUYJUYMUUDUUHMUYJUYMUUBUXKDMKZMKUUDUYJUUBUXKDUYTVUDVUAVDUYJUUCVU
      EUUBMAUVTVUBUUCVUEQUYIHVUCDYSXLUOVGVLVGWIVMAUXHYRUUIENUYNAUYOVPUYIAUVGUUI
      SRUYPUVIUUHUUDUYSUWNVBZUQAYSYRUXHVQRZUBZUUIUWRNVUHUUHNUUDMVUHUVJUYQUUGUUP
      RZWBUUHNQAUVJVUGITZVUHUVKUYQVUHUVGUVKVUGUVGAYSYRUXHVRZUHUVLVSZUYRVSZVUHVU
      IUYIVUGUYIWBAYSYRUXHVTUHVUHVUIUUGOUCKZUXHRZUYIVUHUYEFUSRUYQOUSRVUIVUOYFUY
      EVUHWKVPVUHFVUJWLVUMVUHWJUUGONFXPXMVUHVUNYSUXHVUHYSSROSRVUNYSQVUHYSVULVJX
      NYSOXOXQXRXSXTUUGFWCWAUIVUGAUVGUXAVUKUXBUQVIUXCWHWIVIYAWOAUULYPQBAUULYMYL
      MKYPAYLFACDGHYBZIYCAYMCDAYLFVUPIXKGHYDVITAUUOUUKQBAUUOYRUUEUUIUCKZEPUUKAY
      RUUNVUQEUVIYTUUHUCKZUUDMKUUNVUQUVIVURUUMUUDMAUVJUVKVURUUMQUVGIUVLYSFYEUOU
      IUVIYTUUHUUDUVMUYSUWNYGYHVMAYRUUEUUIEANYQUJUWOVUFYIVITYJ $.
  $}

  ${
    $d k n x A $.  $d k n x B $.  $d k x N $.
    $( The binomial theorem: ` ( A + B ) ^ N ` is the sum from ` k = 0 ` to
       ` N ` of ` ( N _C k ) x. ( ( A ^ k ) x. ( B ^ ( N - k ) ) ` .  Theorem
       15-2.8 of [Gleason] p. 296.  This part of the proof sets up the
       induction and does the base case, with the bulk of the work (the
       induction step) in ~ binomlem .  This is Metamath 100 proof #44.
       (Contributed by NM, 7-Dec-2005.)  (Proof shortened by Mario Carneiro,
       24-Apr-2014.) $)
    binom $p |- ( ( A e. CC /\ B e. CC /\ N e. NN0 ) ->
                  ( ( A + B ) ^ N ) = sum_ k e. ( 0 ... N )
                    ( ( N _C k ) x. ( ( A ^ ( N - k ) ) x. ( B ^ k ) ) ) ) $=
      ( wcel co cexp cc0 cfz cbc cmin cmul csu wi c1 oveq2 oveq1 oveq2d oveq12d
      wceq vx vn cc cn0 caddc cv wa oveq1d adantr sumeq12dv eqeq12d imbi2d exp0
      oveqan12d 1t1e1 syl6eq cz 0z syl6eqel 0nn0 bcn0 ax-mp 0m0e0 fsum1 sylancr
      ax-1cn addcl exp0d 3eqtr4rd simprl simprr simpl binomlem exp31 a2d nn0ind
      id impcom 3impa ) AUCEZBUCEZDUDEZABUEFZDGFZHDIFZDCUFZJFZADWFKFZGFZBWFGFZL
      FZLFZCMZTZWBVTWAUGZWNWOWCUAUFZGFZHWPIFZWPWFJFZAWPWFKFZGFZWJLFZLFZCMZTZNWO
      WCHGFZHHIFZHWFJFZAHWFKFZGFZWJLFZLFZCMZTZNWOWCUBUFZGFZHXOIFZXOWFJFZAXOWFKF
      ZGFZWJLFZLFZCMZTZNWOWCXOOUEFZGFZHYEIFZYEWFJFZAYEWFKFZGFZWJLFZLFZCMZTZNWOW
      NNUAUBDWPHTZXEXNWOYOWQXFXDXMWPHWCGPYOWRXGXCXLCWPHHIPYOXCXLTWFWREZYOWSXHXB
      XKLWPHWFJQYOXAXJWJLYOWTXIAGWPHWFKQRUHSUIUJUKULWPXOTZXEYDWOYQWQXPXDYCWPXOW
      CGPYQWRXQXCYBCWPXOHIPYQXCYBTYPYQWSXRXBYALWPXOWFJQYQXAXTWJLYQWTXSAGWPXOWFK
      QRUHSUIUJUKULWPYETZXEYNWOYRWQYFXDYMWPYEWCGPYRWRYGXCYLCWPYEHIPYRXCYLTYPYRW
      SYHXBYKLWPYEWFJQYRXAYJWJLYRWTYIAGWPYEWFKQRUHSUIUJUKULWPDTZXEWNWOYSWQWDXDW
      MWPDWCGPYSWRWEXCWLCWPDHIPYSXCWLTYPYSWSWGXBWKLWPDWFJQYSXAWIWJLYSWTWHAGWPDW
      FKQRUHSUIUJUKULWOOAHGFZBHGFZLFZLFZOXMXFWOUUCOOLFZOWOUUBOOLWOUUBUUDOVTWAYT
      OUUAOLAUMBUMUNUOUPRUOUPZWOHUQEUUCUCEXMUUCTURWOUUCOUCUUEVFUSXLUUCCHWFHTZXH
      OXKUUBLUUFXHHHJFZOWFHHJPHUDEUUGOTUTHVAVBUPUUFXJYTWJUUALUUFXIHAGUUFXIHHKFH
      WFHHKPVCUPRWFHBGPSSVDVEWOWCABVGVHVIXOUDEZWOYDYNUUHWOYDYNUUHWOUGYDABCXOUUH
      VTWAVJUUHVTWAVKUUHWOVLYDVQVMVNVOVPVRVS $.

    $( Special case of the binomial theorem for ` ( 1 + A ) ^ N ` .
       (Contributed by Paul Chapman, 10-May-2007.) $)
    binom1p $p |- ( ( A e. CC /\ N e. NN0 ) -> ( ( 1 + A ) ^ N ) =
                  sum_ k e. ( 0 ... N ) ( ( N _C k ) x. ( A ^ k ) ) ) $=
      ( cc wcel cn0 wa c1 caddc co cexp cc0 cfz cv cbc cmin cmul csu wceq eqtrd
      ax-1cn binom mp3an1 cz fznn0sub adantl nn0zd 1exp syl simpl elfznn0 expcl
      oveq1d syl2an mulid2d oveq2d sumeq2dv ) ADEZCFEZGZHAIJCKJZLCMJZCBNZOJZHCV
      CPJZKJZAVCKJZQJZQJZBRZVBVDVGQJZBRHDEURUSVAVJSUAHABCUBUCUTVBVIVKBUTVCVBEZG
      ZVHVGVDQVMVHHVGQJVGVMVFHVGQVMVEUDEVFHSVMVEVLVEFEUTVCLCUEUFUGVEUHUIUMVMVGU
      TURVCFEVGDEVLURUSUJVCCUKAVCULUNUOTUPUQT $.

    $( Special case of the binomial theorem for ` 2 ^ N ` .  (Contributed by
       Mario Carneiro, 13-Mar-2014.) $)
    binom11 $p |- ( N e. NN0 -> ( 2 ^ N ) =
                     sum_ k e. ( 0 ... N ) ( N _C k ) ) $=
      ( cn0 wcel c2 cexp co cc0 cfz cv cbc c1 cmul csu caddc df-2 oveq1i ax-1cn
      cc wceq binom1p mpan syl5eq cz elfzelz 1exp syl bccl2 nncnd mulid1d eqtrd
      oveq2d sumeq2i syl6eq ) BCDZEBFGZHBIGZBAJZKGZLURFGZMGZANZUQUSANUOUPLLOGZB
      FGZVBEVCBFPQLSDUOVDVBTRLABUAUBUCUQVAUSAURUQDZVAUSLMGUSVEUTLUSMVEURUDDUTLT
      URHBUEURUFUGULVEUSVEUSURBUHUIUJUKUMUN $.

    $( A summation for the difference between ` ( ( A + 1 ) ^ N ) ` and
       ` ( A ^ N ) ` .  (Contributed by Scott Fenton, 9-Apr-2014.)  (Revised by
       Mario Carneiro, 22-May-2014.) $)
    binom1dif $p |- ( ( A e. CC /\ N e. NN0 ) ->
      ( ( ( A + 1 ) ^ N ) - ( A ^ N ) ) =
      sum_ k e. ( 0 ... ( N - 1 ) ) ( ( N _C k ) x. ( A ^ k ) ) ) $=
      ( cc wcel cn0 wa c1 caddc co cexp cmin cc0 cfz cbc cmul wceq oveq1d eqtrd
      adantl cv csu simpl ax-1cn addcom sylancl binom1p simpr nn0uz syl6eleq cn
      cuz cfv bccl2 nncnd elfznn0 expcl syl2an mulcld oveq2 oveq12d fsumm1 bcnn
      mulid2d oveq2d 3eqtrd fzfid fzssp1 syl5sseq sselda syldan fsumcl pncand
      nn0cn npcan ) ADEZCFEZGZAHIJZCKJZACKJZLJMCHLJZNJZCBUAZOJZAWDKJZPJZBUBZWAI
      JZWALJWHVRVTWIWALVRVTHAIJZCKJMCNJZWGBUBZWIVRVSWJCKVRVPHDEZVSWJQVPVQUCZUDA
      HUEUFRABCUGVRWLWHCCOJZWAPJZIJWIVRWGWPBMCVRCFMULUMVPVQUHUIUJVRWDWKEZGZWEWF
      WRWEWQWEUKEVRWDCUNTUOVRVPWDFEWFDEWQWNWDCUPAWDUQURUSZWDCQWEWOWFWAPWDCCOUTW
      DCAKUTVAVBVRWPWAWHIVRWPHWAPJWAVRWOHWAPVQWOHQVPCVCTRVRWAACUQZVDSVESVFRVRWH
      WAVRWCWGBVRMWBVGVRWDWCEWQWGDEVRWCWKWDVRMWBHIJZNJWCWKMWBVHVRXACMNVRCDEZWMX
      ACQVQXBVPCVNTUDCHVOUFVEVIVJWSVKVLWTVMS $.
  $}

  ${
    $d j m M $.  $d j k m N $.
    $( Lemma for ~ bcxmas .  (Contributed by Paul Chapman, 18-May-2007.) $)
    bcxmaslem1 $p |- ( A = B -> ( ( N + A ) _C A ) = ( ( N + B ) _C B ) ) $=
      ( wceq caddc co cbc oveq2 id oveq12d ) ABDZCAEFCBEFABGABCEHKIJ $.

    $( Parallel summation (Christmas Stocking) theorem for Pascal's Triangle.
       (Contributed by Paul Chapman, 18-May-2007.)  (Revised by Mario Carneiro,
       24-Apr-2014.) $)
    bcxmas $p |- ( ( N e. NN0 /\ M e. NN0 ) ->
                     ( ( ( N + 1 ) + M ) _C M ) =
                     sum_ j e. ( 0 ... M ) ( ( N + j ) _C j ) ) $=
      ( cn0 wcel c1 caddc co cbc cc0 cfz wceq wi bcxmaslem1 oveq2 sumeq1d wa cc
      csu adantl vm vk cv eqeq12d imbi2d 0nn0 nn0addcl syl mpan2 cz 0z syl6eqel
      bcn0 1nn0 nn0cnd fsum1 sylancr peano2nn0 sylancl 3eqtr4rd cuz cfv elnn0uz
      simpr sylib simpl elfznn0 syl2an elfzelz bccl syl2anc fsump1 nn0cn adantr
      1cnd add32r syl3anc oveq1d oveq2d eqtrd oveq1 cmin pncan sylan cn nn0p1nn
      ax-1cn nnzd bcpasc eqtr3d nnnn0addcl nnnn0d nn0z addcomd peano2cn addassd
      3eqtr3d 3eqtr2rd ex expcom a2d nn0ind impcom ) BDECDEZCFGHZBGHBIHZJBKHZCA
      UCZGHZXHIHZASZLZXDXEUAUCZGHXMIHZJXMKHZXJASZLZMXDXEJGHZJIHZJJKHZXJASZLZMXD
      XEUBUCZGHZYCIHZJYCKHZXJASZLZMXDXEYCFGHZGHZYIIHZJYIKHZXJASZLZMXDXLMUAUBBXM
      JLZXQYBXDYOXNXSXPYAXMJXENYOXOXTXJAXMJJKOPUDUEXMYCLZXQYHXDYPXNYEXPYGXMYCXE
      NYPXOYFXJAXMYCJKOPUDUEXMYILZXQYNXDYQXNYKXPYMXMYIXENYQXOYLXJAXMYIJKOPUDUEX
      MBLZXQXLXDYRXNXFXPXKXMBXENYRXOXGXJAXMBJKOPUDUEXDCJGHZJIHZFYAXSXDJDEZYTFLZ
      UFXDUUAQYSDEUUBCJUGYSUMUHUIZXDJUJEYTREYAYTLUKXDYTXDYTFDUUCUNULUOXJYTAJXHJ
      CNUPUQXDXRDEZXSFLXDXEDEZUUAUUDCURZUFXEJUGUSXRUMUHUTYCDEZXDYHYNXDUUGYHYNMX
      DUUGQZYHYNUUHYHQYMYGYDYIIHZGHZYEUUIGHZYKUUHYMUUJLYHUUHYMYGCYIGHZYIIHZGHUU
      JUUHXJUUMAJYCUUHUUGYCJVAVBEXDUUGVDYCVCVEUUHXHYLEZQZXJUUOXIDEZXHUJEZXJDEUU
      HXDXHDEUUPUUNXDUUGVFXHYIVGCXHUGVHUUNUUQUUHXHJYIVITXHXIVJVKUOXHYICNVLUUHUU
      MUUIYGGUUHUULYDYIIUUHCREZYCREZFREZUULYDLXDUURUUGCVMZVNUUGUUSXDYCVMTZUUHVO
      ZCYCFVPVQVRVSVTVNYHUUKUUJLUUHYEYGUUIGWATUUHUUKYKLYHUUHUUIYEGHZYDFGHZYIIHZ
      UUKYKUUHUUIYDYIFWBHZIHZGHZUVDUVFUUHUVHYEUUIGUUHUVGYCYDIUUHUUSUUTUVGYCLUVB
      WGYCFWCUSVSVSUUHYDDEZYIUJEZUVIUVFLXDUUEUUGUVJUUFXEYCUGZWDUUHYIUUGYIWEEXDY
      CWFTWHZYIYDWIVKWJUUHUUIYEUUHUUIUUHUVJUVKUUIDEUUHYDXDXEWEEUUGYDWEECWFXEYCW
      KWDWLUVMYIYDVJVKUOUUHYEXDUUEUUGYEDEZUUFUUEUUGQUVJYCUJEZUVNUVLUUGUVOUUEYCW
      MTYCYDVJVKWDUOWNUUHUVEYJYIIUUHXEYCFXDXEREZUUGXDUURUVPUVACWOUHVNUVBUVCWPVR
      WQVNWRWSWTXAXBXC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The inclusion/exclusion principle
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d b k n s t u x y z A $.  $d b s B $.
    $( Lemma for ~ incexc .  (Contributed by Mario Carneiro, 7-Aug-2017.) $)
    incexclem $p |- ( ( A e. Fin /\ B e. Fin ) ->
      ( ( # ` B ) - ( # ` ( B i^i U. A ) ) ) = sum_ s e. ~P A
      ( ( -u 1 ^ ( # ` s ) ) x. ( # ` ( B i^i |^| s ) ) ) ) $=
      ( vb cfn wcel chash cfv cin cmin co cmul csu wceq c0 syl6eq fveq2d oveq2d
      wa wss vx vy vz vt vu cv cuni cpw c1 cneg cexp cint wral cc0 csn cun uni0
      unieq ineq2d in0 hash0 pw0 sumeq1d eqeq12d ralbidv weq uniun unisn uneq2i
      pweq vex eqtri hashcl nn0cnd mulid2d cvv cc 0ex eqeltrd fveq2 neg1cn exp0
      ax-mp rint0 oveq12d sumsn sylancr subid1d 3eqtr4rd rgen wn ineq1 sumeq2dv
      simpl ineq1d rspcva adantll simpr inss1 ssfi sylancl in32 inass sumeq2sdv
      sylan caddc hashun3 syl2anc fveq2i inindi oveq2i 3eqtr4g cn0 eqtrd adantl
      indi syl adantr cdif a1i mpbi pwfi sylib elpwi syl2an mulcld inteq sylibr
      unex simpllr eqcomd uneq1 eqeq2d syl5ibrcom ssneldd sylan2 3eqtr4d 3eqtrd
      syldan fsumcl addsubassd subcld subsub4d eqtr4d disjdif ssun1 sspwb undif
      eqcomi simpll snfi unfi expcld simplr fsumsplit cmpt eqid unss1 snex elpw
      intunsn ssun2 snss mpbir ssel syl2imc eldifd eldifi elpwid uncom syl6sseq
      mtod ssundif elpw2 elpwunsn ad2antll snssd ssequn2 undif1 ad2antrl difsnb
      difeq1 difun2 impbid f1o2d fvmpt fsumf1o cbvsumv expp1d hashunsng mulcomd
      wi mulm1d oveq1d mulneg1d syl5eq fsumneg sselda negsubd ralrimdva cbvralv
      sseli ex syl6ibr findcard2s rspccva ) AEFDUFZGHZUXGAUGZIZGHZJKZAUHZUIUJZC
[encoded data, 5278 characters]
      $.

    $( The inclusion/exclusion principle for counting the elements of a finite
       union of finite sets.  This is Metamath 100 proof #96.  (Contributed by
       Mario Carneiro, 7-Aug-2017.) $)
    incexc $p |- ( ( A e. Fin /\ A C_ Fin ) ->
      ( # ` U. A ) = sum_ s e. ( ~P A \ { (/) } )
      ( ( -u 1 ^ ( ( # ` s ) - 1 ) ) x. ( # ` |^| s ) ) ) $=
      ( cfn wcel wss chash cfv c0 c1 cneg cmin cexp cmul csu hashcl syl cn0 cc0
      co wceq wa cuni cpw csn cdif cv cint cc unifi simpl pwfi sylib diffi 1cnd
      nn0cnd negcld cn wne eldifsni adantl wb eldifi elpwi ssfi syl2an hashnncl
      mpbird nnm1nn0 expcld simplr sstrd syl2anc intssuni mulcld fsumcl disjdif
      cin caddc a1i cun 0elpw snssi ax-mp undif eqcomi adantr sylancl fsumsplit
      mpbi inss1 inidm fveq2i oveq2i subidd syl5eq incexclem syldan negsubd cvv
      eqtr3d fveq2 hash0 syl6eq oveq2d neg1cn exp0 rint0 fveq2d oveq12d sylancr
      sumsn mulid2d eqtr2d fsumneg expm1t mulcomd mulm1d 3eqtrd unissd mulneg1d
      0ex sseqin2 sumeq2dv 3eqtr4rd subeq0d ) ACDZACEZUAZAUBZFGZAUCZHUDZUEZIJZB
      UFZFGZIKSZLSZYOUGZFGZMSZBNZYHYICDZYJUHDAUIZUUCYJYIOUOPZYHYMUUABYHYKCDZYMC
      DYHYFUUFYFYGUJZAUKULZYKYLUMPZYHYOYMDZUAZYRYTUUKYNYQUUKIUUKUNUPZUUKYPUQDZY
      QQDUUKUUMYOHURZUUJUUNYHYOYKHUSUTZUUKYOCDZUUMUUNVAYHYFYOAEZUUPUUJUUGUUJYOY
      KDZUUQYOYKYLVBYOAVCZPZAYOVDZVEZYOVFPVGZYPVHPVIZUUKYTUUKYSCDZYTQDUUKYOUBZC
      DZYSUVFEZUVEUUKUUPYOCEUVGUVBUUKYOACUUJUUQYHUUTUTZYFYGUUJVJVKYOUIVLUUKUUNU
      VHUUOYOVMPZUVFYSVDVLYSOPUOZVNZVOZYHYKYNYPLSZYIYSVQZFGZMSZBNZYLUVQBNZYMUVQ
      BNZVRSZRYJUUBKSZYHYLYMUVQYKBYLYMVQHTYHYLYKVPVSYKYLYMVTZTYHUWCYKYLYKEZUWCY
      KTHYKDUWDAWAHYKWBWCYLYKWDWIWEVSUUHYHUURUAZUVNUVPUWEYNYPUWEIUWEUNUPUWEUUPY
      PQDYHYFUUQUUPUURUUGUUSUVAVEYOOPVIUWEUVPUWEUVOCDZUVPQDUWEUUCUVOYIEUWFYHUUC
      UURUUDWFYIYSWJYIUVOVDWGUVOOPUOVNWHYHYJYIYIVQZFGZKSZRUVRYHUWIYJYJKSRUWHYJY
      JKUWGYIFYIWKWLWMYHYJUUEWNWOYFYGUUCUWIUVRTUUDAYIBWPWQWTYHYJUUBJZVRSUWBUWAY
      HYJUUBUUEUVMWRYHYJUVSUWJUVTVRYHUVSIYJMSZYJYHHWSDUWKUHDUVSUWKTYAYHIYJYHUNU
      UEVNUVQUWKBHWSYOHTZUVNIUVPYJMUWLUVNYNRLSZIUWLYPRYNLUWLYPHFGRYOHFXAXBXCXDY
      NUHDZUWMITXEYNXFWCXCUWLUVOYIFYIYOXGXHXIXKXJYHYJUUEXLXMYHYMUUAJZBNUWJUVTYH
      YMUUABUUIUVLXNYHYMUWOUVQBUUKUVQYRJZYTMSUWOUUKUVNUWPUVPYTMUUKUVNYRYNMSZYNY
      RMSUWPUUKUWNUUMUVNUWQTUULUVCYNYPXOVLUUKYRYNUVDUULXPUUKYRUVDXQXRUUKUVOYSFU
      UKYSYIEUVOYSTUUKYSUVFYIUVJUUKYOAUVIXSVKYSYIYBULXHXIUUKYRYTUVDUVKXTXMYCWTX
      IWTYDYE $.

    $( The inclusion/exclusion principle for counting the elements of a finite
       union of finite sets.  (Contributed by Mario Carneiro, 7-Aug-2017.) $)
    incexc2 $p |- ( ( A e. Fin /\ A C_ Fin ) ->
      ( # ` U. A ) = sum_ n e. ( 1 ... ( # ` A ) )
        ( ( -u 1 ^ ( n - 1 ) ) x.
          sum_ s e. { k e. ~P A | ( # ` k ) = n } ( # ` |^| s ) ) ) $=
      ( cfn wcel wss wa chash cfv c1 co cv wceq cmul csu c0 cn syl ssfi cfz cpw
      cuni crab ciun cneg cmin cexp cint csn cdif incexc wn wrex wne cz cle wbr
      wb cn0 hashcl ad2antrr nn0zd cdom simpl elpwi ssdomg syl2an hashdomi fznn
      imp rbaibd syl2anc hashnncl bitr2d df-ne risset velsn notbii eqcom rexbii
      3bitr3g 3bitr4g rabbidva dfdif2 iunrab 3eqtr4g sumeq1d eqtrd fzfid simpll
      pwfi sylib ssrab2 sylancl wral wdisj fveq2 eqeq1d elrab simprbi ralrimiva
      adantl invdisj cc oveq1d oveq2d negcld elfznn nnm1nn0 expcld adantr unifi
      eqeltrd elrabi mpbid intssuni unissd sstrd nn0cnd mulcld fsumiun sumeq2dv
      1cnd anasss fsummulc2 eqtr4d 3eqtrd ) AEFZAEGZHZAUCZIJZCKAIJZUALZBMZIJZCM
      ZNZBAUBZUDZUEZKUFZDMZIJZKUGLZUHLZUUDUIZIJZOLZDPZYOUUAUUJDPZCPYOUUCYRKUGLZ
      UHLZUUAUUIDPOLZCPYKYMYTQUJZUKZUUJDPUUKADULYKUUQUUBUUJDYKYPUUPFZUMZBYTUDYS
      CYOUNZBYTUDUUQUUBYKUUSUUTBYTYKYPYTFZHZYPQNZUMZYRYQNZCYOUNZUUSUUTUVBYPQUOZ
      YQYOFZUVDUVFUVBUVHYQRFZUVGUVBYNUPFZYQYNUQURZUVHUVIUSUVBYNYIYNUTFYJUVAAVAV
      BVCUVBYPAVDURZUVKYKYIYPAGZUVLUVAYIYJVEZYPAVFZYIUVMUVLYPAEVGVKVHYPAVISUVJU
      VHUVIUVKYQYNVJVLVMUVBYPEFZUVIUVGUSYKYIUVMUVPUVAUVNUVOAYPTVHYPVNSVOYPQVPCY
      QYOVQWBUURUVCBQVRVSYSUVECYOYQYRVTWAWCWDBYTUUPWEYSCBYOYTWFWGWHWIYKCYOUUAUU
      JDYKKYNWJYKYRYOFZHZYTEFZUUAYTGUUAEFUVRYIUVSYIYJUVQWKZAWLWMYSBYTWNYTUUATWO
      ZYKUUEYRNZDUUAWPZCYOWPCYOUUAWQYKUWCCYOUVRUWBDUUAUUDUUAFZUWBUVRUWDUUDYTFZU
      WBYSUWBBUUDYTYPUUDNYQUUEYRYPUUDIWRWSWTXAXCZXBXBCDYOUUAUUEXDSYKUVQUWDUUJXE
      FUVRUWDHZUUJUUNUUIOLZXEUWGUUGUUNUUIOUWGUUFUUMUUCUHUWGUUEYRKUGUWFXFXGXFZUW
      GUUNUUIUVRUUNXEFUWDUVRUUCUUMUVRKUVRYDXHUVRYRRFZUUMUTFUVQUWJYKYRYNXIXCZYRX
      JSXKZXLUWGUUIUWGUUHEFZUUIUTFUWGYLEFZUUHYLGUWMYKUWNUVQUWDAXMVBUWGUUHUUDUCZ
      YLUWGUUDQUOZUUHUWOGUWGUUERFZUWPUWGUUEYRRUWFUVRUWJUWDUWKXLXNUWGUUDEFZUWQUW
      PUSUWGYIUUDAGZUWRUVRYIUWDUVTXLUWGUWEUWSUWDUWEUVRYSBUUDYTXOXCUUDAVFSZAUUDT
      VMUUDVNSXPUUDXQSUWGUUDAUWTXRXSYLUUHTVMUUHVASXTZYAXNYEYBYKYOUULUUOCUVRUULU
      UAUWHDPUUOUVRUUAUUJUWHDUWIYCUVRUUAUUIUUNDUWAUWLUXAYFYGYCYH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Infinite sums (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d k m n x A $.  $d j k m n x K $.  $d j k m n x ph $.  $d j k m n x W $.
    $d j m n x B $.  $d m n x M $.  $d k m n x Z $.
    isumshft.1 $e |- Z = ( ZZ>= ` M ) $.
    isumshft.2 $e |- W = ( ZZ>= ` ( M + K ) ) $.
    isumshft.3 $e |- ( j = ( K + k ) -> A = B ) $.
    isumshft.4 $e |- ( ph -> K e. ZZ ) $.
    isumshft.5 $e |- ( ph -> M e. ZZ ) $.
    isumshft.6 $e |- ( ( ph /\ j e. W ) -> A e. CC ) $.
    $( Index shift of an infinite sum.  (Contributed by Paul Chapman,
       31-Oct-2007.)  (Revised by Mario Carneiro, 24-Apr-2014.) $)
    isumshft $p |- ( ph -> sum_ j e. W A = sum_ k e. Z B ) $=
      ( cfv caddc wcel wceq cc vm vn vx cv cmpt csu co cseq cli wbr cio zaddcld
      cshi cuz eleq2i cmin zcnd eluzelcn eleq2s cvv fvex eqeltri shftval syl2an
      wa mptex wral cid simpr fvmpt2i syl addcom cz id syl6eleq eluzadd syl2anr
      eqid eqeltrd syl6eleqr fvmpti eqtr4d ralrimiva nffvmpt1 nfeq1 fveq2 oveq2
      fveq2d eqeq12d rspc adantr eluzsub syl3anc rspccva syl2anc pncan3 3eqtrrd
      mpan9 sylan2br seqfeq breq1d isershft bitr4d iotabidv df-fv 3eqtr4g eqidd
      wb wf fmptd ffvelrn sylan isum eleq1d 3eqtr4d sumfc 3eqtr3g ) AHUAUDZDHBU
      EZPZUAUFZIUBUDZEICUEZPZUBUFZHBDUFICEUFAQXSGFQUGZUHZUIPZQYCGUHZUIPZYAYEAYG
      UCUDZUIUJZUCUKYIYKUIUJZUCUKYHYJAYLYMUCAYLQYCFUMUGZYFUHZYKUIUJZYMAYGYOYKUI
      AQUAXSYNYFAGFNMULZXRYFUNPZRZAXRHRZXTXRYNPZSHYRXRKUOAYTVEZUUAXRFUPUGZYCPZF
      UUCQUGZXSPZXTAFTRZXRTRZUUAUUDSYTAFMUQZUUHXRYRHYFXRURKUSZFXRYCEICIGUNPZUTJ
      GUNVAVBVFZVCVDUUBYDFYBQUGZXSPZSZUBIVGZUUCIRUUDUUFSZAUUPYTAUUOUBIAEUDZYCPZ
      FUURQUGZXSPZSZEIVGYBIRZUUOAUVBEIAUURIRZVEZUUSCVHPZUVAUVEUVDUUSUVFSAUVDVIE
      ICYCYCVRVJVKUVEUUTHRZUVAUVFSUVEUUTYRHUVEUUTUURFQUGZYRAUUGUURTRZUUTUVHSUVD
      UUIUVIUURUUKIGUURURJUSFUURVLVDUVDUURUUKRFVMRZUVHYRRAUVDUURIUUKUVDVNJVOMFG
      UURVPVQVSKVTZDUUTBCHXSLXSVRZWAVKWBWCUVBUUOEYBIEYDUUNEICYBWDWEUURYBSZUUSYD
      UVAUUNUURYBYCWFUVMUUTUUMXSUURYBFQWGZWHWIWJWRZWCWKUUBUUCUUKIUUBGVMRZUVJYSU
      UCUUKRAUVPYTNWKAUVJYTMWKUUBXRHYRAYTVIKVOFGXRWLWMJVTUUOUUQUBUUCIYBUUCSZYDU
      UDUUNUUFYBUUCYCWFUVQUUMUUEXSYBUUCFQWGWHWIWNWOUUBUUEXRXSAUUGUUHUUEXRSYTUUI
      UUJFXRWPVDWHWQWSWTXAAUVPUVJYMYPXHNMYKQYCGFUULXBWOXCXDUCYGUIXEUCYIUIXEXFAX
      TUAXSYFHKYQUUBXTXGAHTXSXIZYTXTTRADHBTXSOUVLXJZHTXRXSXKXLXMAYDUBYCGIJNAUVC
      VEZYDXGUVTYDUUNTUVOUVTUVRUUMHRZUUNTRAUVRUVCUVSWKAUVGEIVGUVCUWAAUVGEIUVKWC
      UVGUWAEYBIUVMUUTUUMHUVNXNWNXLHTUUMXSXKWOVSXMXOHBUADXPICUBEXPXQ $.
  $}

  ${
    $d j A $.  $d j k m x F $.  $d j k m x M $.  $d j k m x ph $.  $d k Z $.
    $d j k m x N $.  $d j k m x W $.
    isumsplit.1 $e |- Z = ( ZZ>= ` M ) $.
    isumsplit.2 $e |- W = ( ZZ>= ` N ) $.
    isumsplit.3 $e |- ( ph -> N e. Z ) $.
    isumsplit.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    isumsplit.5 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
    isumsplit.6 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    $( Split off the first ` N ` terms of an infinite sum.  (Contributed by
       Paul Chapman, 9-Feb-2008.)  (Revised by Mario Carneiro, 24-Apr-2014.) $)
    isumsplit $p |- ( ph -> sum_ k e. Z A =
                      ( sum_ k e. ( M ... ( N - 1 ) ) A + sum_ k e. W A ) ) $=
      ( co caddc cfv wcel wceq cc vj vm vx c1 cmin cfz csu cuz syl6eleq eluzel2
      cz syl cseq cli cdm eluzelz wss uzss 3sstr4g sselda syldan eqeltrd iserex
      cv wa mpbid isumclim2 fzfid elfzuz syl6eleqr sylan2 fsumcl serf ffvelrnda
      cc0 c0 clt wbr zred ltm1d peano2zm fzn syl2anc sumeq1d adantr sum0 syl6eq
      oveq1d addid2d eqtr2d oveq1 oveq2d seqeq1 fveq1d oveq12d syl5ibrcom addcl
      wb eqeq2d adantl w3a addass simplr simpll zcnd ax-1cn npcan eqcomd fveq2d
      sylancl syl5eq eleqtrd eluzp1m1 syl2an seqsplit fsumser seqeq1d eqtr4d ex
      sylan wo uzp1 mpjaod climaddc2 isumclim ) ABEFUDUEOZUFOZBCUGZGBCUGZPOCDEH
      IAFEUHQZRZEUKRZAFHYJKIUIZEFUJULZLMAYIYHUAPDFUMZPDEUMZFUNUOZGJAYKFUKRYMEFU
      PULZABCDFGJYRACVDZGRZYSHRZYSDQZBSZAGHYSAFUHQZYJGHAYKUUDYJUQYMEFURULJIUSZU
      TZLVAAYTUUABTRZUUFMVAAYPYQRYOYQRNACDEFHIKAUUAVEUUBBTLMVBZVCVFVGAYGBCAEYFV
      HYSYGRZAUUAUUGUUIYSYJHYSEYFVIIVJZMVKVLNAGTUAVDZYOACDFGJYRAYTUUAUUBTRZUUFU
      UHVAVMVNAUUKGRZVEZFESZUUKYPQZYHUUKYOQZPOZSZFEUDPOUHQRZUUNUUSUUOUUPEEUDUEO
      ZUFOZBCUGZUUPPOZSUUNUVDVOUUPPOUUPUUNUVCVOUUPPUUNUVCVPBCUGZVOAUVCUVESUUMAU
      VBVPBCAUVAEVQVRZUVBVPSZAEAEYNVSVTAYLUVAUKRZUVFUVGWRYNAYLUVHYNEWAULEUVAWBW
      CVFWDWEBCWFWGWHUUNUUPAUUMUUKHRUUPTRAGHUUKUUEUTAHTUUKYPACDEHIYNUUHVMVNVAWI
      WJUUOUURUVDUUPUUOYHUVCUUQUUPPUUOYGUVBBCUUOYFUVAEUFFEUDUEWKWLWDUUOUUKYOYPP
      DFEWMWNWOWSWPUUNUUTUUSUUNUUTVEZUUPYFYPQZUUKPDYFUDPOZUMZQZPOUURUVICUBUCPTD
      EYFUUKYSTRZUBVDZTRZVEYSUVOPOZTRUVIYSUVOWQWTUVNUVPUCVDZTRXAUVQUVRPOYSUVOUV
      RPOPOSUVIYSUVOUVRXBWTUVIUUKGUVKUHQZAUUMUUTXCUVIGUUDUVSJUVIFUVKUHUVIAFUVKS
      AUUMUUTXDZAUVKFAFTRUDTRUVKFSAFYRXEXFFUDXGXJXHULZXIXKXLUUNYLUUTYFYJRAYLUUM
      YNWEEFXMXTZUVIAUUAUULYSEUUKUFORZUVTUWCYSYJHYSEUUKVIIVJUUHXNXOUVIYHUVJUUQU
      VMPUVIBCDEYFUVIAUUAUUCUUIUVTUUJLXNUWBUVIAUUAUUGUUIUVTUUJMXNXPUVIUUKYOUVLU
      VIFUVKPDUWAXQWNWOXRXSAUUOUUTYAZUUMAYKUWDYMEFYBULWEYCYDYE $.
  $}

  ${
    $d k F $.  $d k M $.  $d k ph $.  $d k Z $.
    isum1p.1 $e |- Z = ( ZZ>= ` M ) $.
    isum1p.3 $e |- ( ph -> M e. ZZ ) $.
    isum1p.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    isum1p.5 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
    isum1p.6 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    $( The infinite sum of a converging infinite series equals the first term
       plus the infinite sum of the rest of it.  (Contributed by NM,
       2-Jan-2006.)  (Revised by Mario Carneiro, 24-Apr-2014.) $)
    isum1p $p |- ( ph -> sum_ k e. Z A =
                   ( ( F ` M ) + sum_ k e. ( ZZ>= ` ( M + 1 ) ) A ) ) $=
      ( csu c1 caddc co cfz cfv wcel cc wceq cmin cuz eqid cz uzid syl peano2uz
      syl6eleqr isumsplit cv zcnd ax-1cn sylancl oveq2d sumeq1d elfzuz sumeq2dv
      pncan sylan2 wral eqeltrd ralrimiva fveq2 eleq1d rspcv sylc fsum1 syl2anc
      wa 3eqtr2d oveq1d eqtrd ) AFBCLEEMNOZMUAOZPOZBCLZVMUBQZBCLZNOEDQZVRNOABCD
      EVMVQFGVQUCAVMEUBQZFAEVTRZVMVTRAEUDRZWAHEUEUFZEEUGUFGUHIJKUIAVPVSVRNAVPEE
      POZBCLWDCUJZDQZCLZVSAVOWDBCAVNEEPAESRMSRVNETAEHUKULEMURUMUNUOAWDWFBCWEWDR
      ZAWEFRZWFBTWHWEVTFWEEEUPGUHIUSUQAWBVSSRZWGVSTHAEFRWFSRZCFUTWJAEVTFWCGUHAW
      KCFAWIVIWFBSIJVAVBWKWJCEFWEETWFVSSWEEDVCZVDVEVFWFVSCEWLVGVHVJVKVL $.
  $}

  ${
    $d k F $.  $d k B $.  $d k ph $.
    isumnn0nn.1 $e |- ( k = 0 -> A = B ) $.
    isumnn0nn.2 $e |- ( ( ph /\ k e. NN0 ) -> ( F ` k ) = A ) $.
    isumnn0nn.3 $e |- ( ( ph /\ k e. NN0 ) -> A e. CC ) $.
    isumnn0nn.4 $e |- ( ph -> seq 0 ( + , F ) e. dom ~~> ) $.
    $( Sum from 0 to infinity in terms of sum from 1 to infinity.  (Contributed
       by NM, 2-Jan-2006.)  (Revised by Mario Carneiro, 24-Apr-2014.) $)
    isumnn0nn $p |- ( ph -> sum_ k e. NN0 A = ( B + sum_ k e. NN A ) ) $=
      ( cn0 csu cc0 cfv c1 caddc co cuz cn nn0uz wceq 0zd isum1p wcel wral 0nn0
      cv ralrimiva fveq2 eqeq12d rspcv mpsyl fveq2i nnuz eqtr4i sumeq1i oveq12d
      0p1e1 a1i eqtrd ) AJBDKLEMZLNOPZQMZBDKZOPCRBDKZOPABDELJSAUAGHIUBAUTCVCVDO
      LJUCADUFZEMZBTZDJUDUTCTZUEAVGDJGUGVGVHDLJVELTVFUTBCVELEUHFUIUJUKVCVDTAVBR
      BDVBNQMRVANQUQULUMUNUOURUPUS $.
  $}

  ${
    $d m A $.  $d k m F $.  $d k M $.  $d k m N $.  $d k m ph $.  $d k m W $.
    $d k Z $.
    isumrpcl.1 $e |- Z = ( ZZ>= ` M ) $.
    isumrpcl.2 $e |- W = ( ZZ>= ` N ) $.
    isumrpcl.3 $e |- ( ph -> N e. Z ) $.
    isumrpcl.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    isumrpcl.5 $e |- ( ( ph /\ k e. Z ) -> A e. RR+ ) $.
    isumrpcl.6 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    $( The infinite sum of positive reals is positive.  (Contributed by Paul
       Chapman, 9-Feb-2008.)  (Revised by Mario Carneiro, 24-Apr-2014.) $)
    isumrpcl $p |- ( ph -> sum_ k e. W A e. RR+ ) $=
      ( cfv wcel syl wceq wa crp vm csu cuz cz syl6eleq eluzelz cv uzss 3sstr4g
      wss sselda syldan cr rpred caddc cseq cli cdm rpcnd iserex mpbid isumrecl
      eqeltrd wral ralrimiva fveq2 rspcv sylc cle seq1 uzid syl6eleqr isumclim2
      eleq1d recnd sseld syl6ci imp rpge0d climserle eqbrtrrd rpgecld ) AGBCUBZ
      FDOZABCDFGJAFEUCOZPZFUDPZAFHWEKIUEZEFUFQZACUGZGPZWJHPZWJDOZBRAGHWJAFUCOZW
      EGHAWFWNWEUJWHEFUHQJIUIZUKZLULZAWKWLBUMPWPAWLSZBMUNULZAUODEUPUQURZPUODFUP
      ZWTPNACDEFHIKWRWMWRWMBTLMVCZUSUTVAZVBAFHPWMTPZCHVDZWDTPZKAXDCHXBVEZXDXFCF
      HWJFRWMWDTWJFDVFVNVGVHAFXAOZWDWCVIAWGXHWDRWIUODFVJQAWCUADFFGJAFWNGAWGFWNP
      WIFVKQJVLABCDFGJWIWQAWKSBWSVOXCVMAUAUGZGPZSZXIDOZAXJXLTPZAXJXIHPXEXMAGHXI
      WOVPXGXDXMCXIHWJXIRWMXLTWJXIDVFVNVGVQVRZUNXKXLXNVSVTWAWB $.
  $}

  ${
    $d k F $.  $d k G $.  $d k M $.  $d k ph $.  $d k Z $.
    isumle.1 $e |- Z = ( ZZ>= ` M ) $.
    isumle.2 $e |- ( ph -> M e. ZZ ) $.
    isumle.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    isumle.4 $e |- ( ( ph /\ k e. Z ) -> A e. RR ) $.
    isumle.5 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) = B ) $.
    isumle.6 $e |- ( ( ph /\ k e. Z ) -> B e. RR ) $.
    isumle.7 $e |- ( ( ph /\ k e. Z ) -> A <_ B ) $.
    isumle.8 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    isumle.9 $e |- ( ph -> seq M ( + , G ) e. dom ~~> ) $.
    $( Comparison of two infinite sums.  (Contributed by Paul Chapman,
       13-Nov-2007.)  (Revised by Mario Carneiro, 24-Apr-2014.) $)
    isumle $p |- ( ph -> sum_ k e. Z A <_ sum_ k e. Z B ) $=
      ( cli cfv wcel caddc cseq csu cle cdm wbr climdm sylib cv eqeltrd 3brtr4d
      wa cr iserle recnd isum ) AUAEGUBZRSZUAFGUBZRSZHBDUCHCDUCUDAURUTDEFGHIJAU
      QRUEZTUQURRUFPUQUGUHAUSVATUSUTRUFQUSUGUHADUIZHTULZVBESZBUMKLUJVCVBFSZCUMM
      NUJVCBCVDVEUDOKMUKUNABDEGHIJKVCBLUOUPACDFGHIJMVCCNUOUPUK $.
  $}

  ${
    $d j k A $.  $d j k F $.  $d k M $.  $d k ph $.  $d j k Z $.
    isumless.1 $e |- Z = ( ZZ>= ` M ) $.
    isumless.2 $e |- ( ph -> M e. ZZ ) $.
    isumless.3 $e |- ( ph -> A e. Fin ) $.
    isumless.4 $e |- ( ph -> A C_ Z ) $.
    isumless.5 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = B ) $.
    isumless.6 $e |- ( ( ph /\ k e. Z ) -> B e. RR ) $.
    isumless.7 $e |- ( ( ph /\ k e. Z ) -> 0 <_ B ) $.
    isumless.8 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    $( A finite sum of nonnegative numbers is less or equal to its limit.
       (Contributed by Mario Carneiro, 24-Apr-2014.) $)
    isumless $p |- ( ph -> sum_ k e. A B <_ sum_ k e. Z B ) $=
      ( wcel cc0 cle cfv cr vj csu cv cif wss cc wral cuz cfn wo wceq sselda wa
      recnd syldan ralrimiva orci a1i sumss2 syl21anc cmpt eleq1 fveq2 ifbieq1d
      eqimssi eqid fvex c0ex ifex fvmpt adantl ifeq1d 0re ifcl sylancl wbr leid
      eqtrd breq1 ifboth sylan syl2anc fsumcvg3 isumle eqbrtrd ) ABCDUBZGDUCZBP
      ZCQUDZDUBZGCDUBRABGUECUFPZDBUGGFUHSZUEZGUIPZUJZWFWJUKKAWKDBAWHWGGPZWKABGW
      GKULAWPUMZCMUNUOZUPWOAWMWNGWLHVEUQURBGCDFUSUTAWICDUAGUAUCZBPZWSESZQUDZVAZ
      EFGHIWQWGXCSZWHWGESZQUDZWIWPXDXFUKAUAWGXBXFGXCWSWGUKWTWHXAXEQWSWGBVBWSWGE
      VCVDXCVFWHXEQWGEVGVHVIVJVKWQWHXECQLVLVRZWQCTPZQTPWITPMVMWHCQTVNVOLMWQXHQC
      RVPZWICRVPZMNXHCCRVPZXIXJCVQWHXKXIXJCQCWICRVSQWICRVSVTWAWBABCDXCFGHIJKXGW
      RWCOWDWE $.
  $}

  ${
    $d j x A $.  $d j k x F $.  $d j k x M $.  $d j k ph $.  $d j k x Z $.
    $d j x G $.
    isumsup.1 $e |- Z = ( ZZ>= ` M ) $.
    isumsup.2 $e |- G = seq M ( + , F ) $.
    isumsup.3 $e |- ( ph -> M e. ZZ ) $.
    isumsup.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    isumsup.5 $e |- ( ( ph /\ k e. Z ) -> A e. RR ) $.
    isumsup.6 $e |- ( ( ph /\ k e. Z ) -> 0 <_ A ) $.
    isumsup.7 $e |- ( ph -> E. x e. RR A. j e. Z ( G ` j ) <_ x ) $.
    $( An infinite sum of nonnegative terms is equal to the supremum of the
       partial sums.  (Contributed by Mario Carneiro, 12-Jun-2014.) $)
    isumsup2 $p |- ( ph -> G ~~> sup ( ran G , RR , < ) ) $=
      ( cr wcel cfv co caddc cseq wf cv wa eqeltrd serfre feq1i sylibr c1 simpr
      cle cuz syl6eleq cz eluzelz uzid peano2uz 4syl cfz simpl elfzuz syl6eleqr
      syl2an cc0 peano2uzs adantl uztrn2 breqtrrd adantlr syldan sermono fveq1i
      wbr 3brtr4g climsup ) ABDGHIJLAIQUAFHUBZUCIQGUCAEFHIJLAEUDZIRZUEZVRFSZCQM
      NUFZUGIQGVQKUHUIADUDZIRZUEZWCVQSWCUJUATZVQSWCGSWFGSULWEEFWCHWFWEWCIHUMSZA
      WDUKJUNZWEWCWGRWCUORWCWCUMSZRWFWIRWHHWCUPWCUQWCWCURUSWEAVSWAQRVRHWFUTTRZA
      WDVAWJVRWGIVRHWFVBJVCWBVDWEVRWFWFUTTRZVSVEWAULVNZWEWFIRZVRWFUMSRVSWKWDWMA
      HWCIJVFVGVRWFWFVBHVRWFIJVHVDAVSWLWDVTVECWAULOMVIVJVKVLWCGVQKVMWFGVQKVMVOP
      VP $.

    $( An infinite sum of nonnegative terms is equal to the supremum of the
       partial sums.  (Contributed by Mario Carneiro, 12-Jun-2014.) $)
    isumsup $p |- ( ph -> sum_ k e. Z A = sup ( ran G , RR , < ) ) $=
      ( crn cr clt csup cv wcel wa recnd caddc cseq isumsup2 syl5eqbrr isumclim
      cli ) ACGQRSTZEFHIJLMAEUAIUBUCCNUDAUEFHUFGUKUJKABCDEFGHIJKLMNOPUGUHUI $.
  $}

  ${
    $d k x A $.  $d x B $.  $d k F $.  $d k x M $.  $d k x ph $.  $d k x Z $.
    isumltss.1 $e |- Z = ( ZZ>= ` M ) $.
    isumltss.2 $e |- ( ph -> M e. ZZ ) $.
    isumltss.3 $e |- ( ph -> A e. Fin ) $.
    isumltss.4 $e |- ( ph -> A C_ Z ) $.
    isumltss.5 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = B ) $.
    isumltss.6 $e |- ( ( ph /\ k e. Z ) -> B e. RR+ ) $.
    isumltss.7 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    $( A partial sum of a series with positive terms is less than the infinite
       sum.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by
       Mario Carneiro, 12-Mar-2015.) $)
    isumltss $p |- ( ph -> sum_ k e. A B < sum_ k e. Z B ) $=
      ( vx wcel csu wceq cfn wss cv cdif clt wbr c0 wn wex cz uzinf ssdif0 eqss
      syl wa eleq1 syl5ibcom syl5bir mpand mtod neq0 sylib csn adantr cr sselda
      cun crp adantlr rpred syldan fsumrecl snfi unfi sylancl eldifi snssd unss
      anim12i cfv caddc cseq cli cdm isumrecl co a1i wne snnz fsumrpcl ltaddrpd
      vex adantl cin eldifn disjsn sylibr eqidd rpcnd fsumsplit breqtrrd rpge0d
      cc isumless ltletrd exlimddv ) AOUAZGBUBZPZBCDQZGCDQZUCUDOAXFUERZUFXGOUGA
      XJGSPZAFUHPZXKUFIFGHUIULXJGBTZAXKGBUJABGTZXMXKKXNXMUMBGRZAXKBGUKABSPZXOXK
      JBGSUNUOUPUQUPUROXFUSUTAXGUMZXHBXEVAZVEZCDQZXIXQBCDAXPXGJVBZXQDUAZBPYBGPZ
      CVCPZXQBGYBAXNXGKVBVDXQYCUMZCAYCCVFPZXGMVGZVHZVIVJZXQXSCDXQXPXRSPZXSSPYAX
      EVKZBXRVLVMZXQYBXSPZYCYDXQXSGYBXQXNXRGTZUMXSGTAXNXGYNKXGXEGXEGBVNVOZVQBXR
      GVPUTZVDZYHVIVJXQCDEFGHAXLXGIVBZAYCYBEVRCRXGLVGZYHAVSEFVTWAWBPXGNVBZWCXQX
      HXHXRCDQZVSWDXTUCXQXHUUAYIXQXRCDYJXQYKWEXRUEWFXQXEOWJWGWEXQYBXRPYCYFXQXRG
      YBXGYNAYOWKVDYGVIWHWIXQBXRCXSDXQXEBPUFZBXRWLUERXGUUBAXEGBWMWKBXEWNWOXQXSW
      PYLXQYMYCCXAPYQYECYGWQVIWRWSXQXSCDEFGHYRYLYPYSYHYECYGWTYTXBXCXD $.
  $}

  ${
    $d j k n x F $.  $d j k n x G $.  $d x N $.  $d j k n x ph $.
    climcnds.1 $e |- ( ( ph /\ k e. NN ) -> ( F ` k ) e. RR ) $.
    climcnds.2 $e |- ( ( ph /\ k e. NN ) -> 0 <_ ( F ` k ) ) $.
    climcnds.3 $e |- ( ( ph /\ k e. NN ) -> ( F ` ( k + 1 ) ) <_ ( F ` k ) ) $.
    climcnds.4 $e |- ( ( ph /\ n e. NN0 ) ->
      ( G ` n ) = ( ( 2 ^ n ) x. ( F ` ( 2 ^ n ) ) ) ) $.
    $( Lemma for ~ climcnds : bound the original series by the condensed
       series.  (Contributed by Mario Carneiro, 18-Jul-2014.) $)
    climcndslem1 $p |- ( ( ph /\ N e. NN0 ) ->
                        ( seq 1 ( + , F ) ` ( ( 2 ^ ( N + 1 ) ) - 1 ) ) <_
                        ( seq 0 ( + , G ) ` N ) ) $=
      ( cn0 wcel c2 c1 caddc co cfv cc0 cle wceq vx vj cexp cmin cseq wbr cv wi
      oveq1 0p1e1 syl6eq oveq2d cc exp1 ax-mp df-2 eqtri oveq1d ax-1cn pncan3oi
      2cn fveq2d fveq2 breq12d imbi2d cmul cn cr wral 1nn ralrimiva rspcv mpsyl
      leidd recnd mulid2d breqtrrd 1z eqidd seq1i 0z 0nn0 oveq2 oveq12d eqeq12d
      eleq1d 3brtr4d wa cfz csu fzfid simpl adantr cuz peano2nn0 adantl nnexpcl
      exp0 2nn sylancr elfzuz eluznn syl2an syl2anc sylc simpr simplll monoord2
      breq1d rspccva fsumle chash cfn hashcl syl nn0cnd nnred cz 2z zexpcl nnuz
      cun syl6eleq 2re 1le2 leexp2a mp3an12 sylanbrc peano2zm zred eqtrd nnnn0d
      hashfz1 3eqtr4d elfznn fsumrecl nn0uz remulcld eqeltrd fsumser 1red nn0zd
      nn0p1nn syl5eqbrr eluz1i uz2m1nn uzid peano2uz lesub1dd syl3anbrc elfzuzb
      4syl eluz2 fzsplit npcan sylancl expp1 times2d 1cnd addsubd syl6eleqr cin
      uneq2d uztrn c0 clt ltm1d fzdisj hashun syl3anc addcanad fsumconst serfre
      3eqtr3d 0zd ffvelrnda le2add mpan2d eqcomd fsumsplit eqtr3d seqp1 3imtr4d
      syl22anc expcom a2d nn0ind impcom ) FKLAMFNOPZUCPZNUDPZODNUEZQZFOERUEZQZS
      UFZAMUAUGZNOPZUCPZNUDPZUWLQZUWQUWNQZSUFZUHANUWLQZRUWNQZSUFZUHAMUBUGZNOPZU
      CPZNUDPZUWLQZUXGUWNQZSUFZUHAMUXHNOPZUCPZNUDPZUWLQZUXHUWNQZSUFZUHAUWPUHUAU
      BFUWQRTZUXCUXFAUXTUXAUXDUXBUXESUXTUWTNUWLUXTUWTNNOPZNUDPNUXTUWSUYANUDUXTU
      WSMNUCPZUYAUXTUWRNMUCUXTUWRRNOPNUWQRNOUIUJUKULUYBMUYAMUMLZUYBMTVAMUNUOZUP
      UQUKURNNUSUSUTUKVBUWQRUWNVCVDVEUWQUXGTZUXCUXMAUYEUXAUXKUXBUXLSUYEUWTUXJUW
      LUYEUWSUXINUDUYEUWRUXHMUCUWQUXGNOUIULURVBUWQUXGUWNVCVDVEUWQUXHTZUXCUXSAUY
      FUXAUXQUXBUXRSUYFUWTUXPUWLUYFUWSUXONUDUYFUWRUXNMUCUWQUXHNOUIULURVBUWQUXHU
      WNVCVDVEUWQFTZUXCUWPAUYGUXAUWMUXBUWOSUYGUWTUWKUWLUYGUWSUWJNUDUYGUWRUWIMUC
      UWQFNOUIULURVBUWQFUWNVCVDVEANDQZNUYHVFPZUXDUXESAUYHUYHUYISAUYHNVGLABUGZDQ
      ZVHLZBVGVIZUYHVHLZVJAUYLBVGGVKZUYLUYNBNVGUYJNTUYKUYHVHUYJNDVCWFVLVMZVNAUY
      HAUYHUYPVOVPVQAUYHODNVRAUYHVSVTAUYIOERWARKLACUGZEQZMUYQUCPZUYSDQZVFPZTZCK
      VIZREQZUYITZWBAVUBCKJVKZVUBVUECRKUYQRTZUYRVUDVUAUYIUYQREVCVUGUYSNUYTUYHVF
      VUGUYSMRUCPZNUYQRMUCWCUYCVUHNTVAMWRUOUKZVUGUYSNDVUIVBWDWEVLVMVTWGUXGKLZAU
      XMUXSAVUJUXMUXSUHAVUJWHZNUXJWIPZUYKBWJZUXLSUFZVUMUXIUXPWIPZUYKBWJZOPZUXLU
      XHEQZOPZSUFZUXMUXSVUKVUNVUPVURSUFZVUTVUKVUPVUOUXIDQZBWJZVURSVUKVUOUYKVVBB
      VUKUXIUXPWKZVUKUYJVUOLZWHAUYJVGLZUYLVUKAVVEAVUJWLZWMVUKUXIVGLZUYJUXIWNQZL
      ZVVFVVEVUKMVGLZUXHKLZVVHWSVUJVVLAUXGWOWPZMUXHWQWTZUYJUXIUXPXAZUYJUXIXBZXC
      GXDZVUKVVBVHLZVVEVUKVVHUYMVVRVVNAUYMVUJUYOWMUYLVVRBUXIVGUYJUXITUYKVVBVHUY
      JUXIDVCWFVLXEZWMVUKUYQDQZVVBSUFZCVVIVIVVJUYKVVBSUFZVVEVUKVWACVVIVUKUYQVVI
      LZWHZBDUXIUYQVUKVWCXFVWDUYJUXIUYQWIPLZWHAVVFUYLAVUJVWCVWEXGVWDVVHVVJVVFVW
      EVUKVVHVWCVVNWMZUYJUXIUYQXAVVPXCGXDVWDUYJUXIUYQNUDPZWIPLZWHAVVFUYJNOPDQUY
      KSUFAVUJVWCVWHXGVWDVVHVVJVVFVWHVWFUYJUXIVWGXAVVPXCIXDXHVKVVOVWAVWBCUYJVVI
      UYQUYJTVVTUYKVVBSUYQUYJDVCXIXJXCXKVUKUXIVVBVFPZVUOXLQZVVBVFPZVURVVCVUKUXI
      VWJVVBVFVUKVULXLQZUXIVWJVUKVWLVUKVULXMLZVWLKLVUKNUXJWKZVULXNXOXPVUKUXIVUK
      UXIVVNXQZVOZVUKVWJVUKVUOXMLZVWJKLVVDVUOXNXOXPVUKNUXPWIPZXLQZVULVUOYBZXLQZ
      VWLUXIOPZVWLVWJOPZVUKVWRVWTXLVUKVWRVULUXJNOPZUXPWIPZYBZVWTVUKUXJVWRLZVWRV
      XFTVUKUXJNWNQZLZUXPUXJWNQLZVXGVUKUXJVGVXHVUKUXIMWNQLZUXJVGLVUKUXIXRLZMUXI
      SUFVXKVUKMXRLZVVLVXLXSVVMMUXHXTWTZVUKMUYBUXISUYDVUKUXHVXHLZUYBUXISUFZVUKU
      XHVGVXHVUJUXHVGLAUXGUUCWPYAYCMVHLZNMSUFZVXOVXPYDYEMNUXHYFYGXOUUDMUXIXSUUE
      YHUXIUUFXOZYAYCZVUKUXJXRLZUXPXRLZUXJUXPSUFVXJVUKVXLVYAVXNUXIYIXOVUKUXOXRL
      ZVYBVUKVXMUXNKLZVYCXSVUKVVLVYDVVMUXHWOXOMUXNXTWTZUXOYIXOVUKUXIUXONVUKUXIV
      XNYJZVUKUXOVYEYJVUKUUAVUKUXHXRLUXHUXHWNQZLUXNVYGLZUXIUXOSUFZVUKUXHVVMUUBU
      XHUUGUXHUXHUUHVXQVXRVYHVYIYDYEMUXHUXNYFYGUULUUIUXJUXPUUMUUJZUXJNUXPUUKYHU
      XJNUXPUUNXOVUKVXEVUOVULVUKVXDUXIUXPWIVUKUXIUMLNUMLVXDUXITVWPUSUXINUUOUUPU
      RUVCYKZVBVUKUXPUXJUXIOPZVWSVXBVUKUXPUXIUXIOPZNUDPVYLVUKUXOVYMNUDVUKUXOUXI
      MVFPZVYMVUKUYCVVLUXOVYNTVAVVMMUXHUUQWTVUKUXIVWPUURYKURVUKUXIUXINVWPVWPVUK
      UUSUUTYKVUKUXPKLVWSUXPTVUKUXPVUKUXPVXHVGVUKVXJVXIUXPVXHLVYJVXTUXJUXPNUVDX
      DZYAUVAYLUXPYMXOVUKVWLUXJUXIOVUKUXJKLVWLUXJTVUKUXJVXSYLUXJYMXOURYNVUKVWMV
      WQVULVUOUVBUVETZVXAVXCTVWNVVDVUKUXJUXIUVFUFVYPVUKUXIVWOUVGNUXJUXIUXPUVHXO
      ZVULVUOUVIUVJUVNUVKURVUKVVLVUCVURVWITZVVMAVUCVUJVUFWMVUBVYRCUXHKUYQUXHTZU
      YRVURVUAVWIUYQUXHEVCVYSUYSUXIUYTVVBVFUYQUXHMUCWCZVYSUYSUXIDVYTVBWDWEVLXEZ
      VUKVWQVVBUMLVVCVWKTVVDVUKVVBVVSVOVUOVVBBUVLXDYNVQVUKVUMVHLVUPVHLUXLVHLVUR
      VHLVUNVVAWHVUTUHVUKVULUYKBVWNVUKAVVFUYLUYJVULLZVVGUYJUXJYOZGXCYPVUKVUOUYK
      BVVDVVQYPAKVHUXGUWNACERKYQAUVOAUYQKLZWHZUYRVUAVHJWUEUYSUYTWUEUYSWUEVVKWUD
      UYSVGLZWSAWUDXFMUYQWQWTZXQWUEWUFUYMUYTVHLZWUGAUYMWUDUYOWMUYLWUHBUYSVGUYJU
      YSTUYKUYTVHUYJUYSDVCWFVLXEYRYSUVMUVPVUKVURVWIVHWUAVUKUXIVVBVYFVVSYRYSVUMV
      UPUXLVURUVQUWDUVRVUKUXKVUMUXLSVUKVUMUXKVUKUYKBDNUXJVUKWUBWHUYKVSVXTVUKAVV
      FUYKUMLZWUBVVGWUCAVVFWHUYKGVOZXCYTUVSXIVUKUXQVUQUXRVUSSVUKVWRUYKBWJUXQVUQ
      VUKUYKBDNUXPVUKUYJVWRLZWHUYKVSVYOVUKAVVFWUIWUKVVGUYJUXPYOWUJXCZYTVUKVULVU
      OUYKVWRBVYQVYKVUKNUXPWKWULUVTUWAVUKUXGRWNQZLUXRVUSTVUKUXGKWUMAVUJXFYQYCOE
      RUXGUWBXOVDUWCUWEUWFUWGUWH $.

    $( Lemma for ~ climcnds : bound the condensed series by the original
       series.  (Contributed by Mario Carneiro, 18-Jul-2014.) $)
    climcndslem2 $p |- ( ( ph /\ N e. NN ) -> ( seq 1 ( + , G ) ` N ) <_
      ( 2 x. ( seq 1 ( + , F ) ` ( 2 ^ N ) ) ) ) $=
      ( cn wcel c1 cfv c2 co cmul cle wceq cr vx vj caddc cseq cexp cv wi fveq2
      wbr oveq2 2cn exp1 ax-mp syl6eq fveq2d oveq2d breq12d imbi2d cc0 wral 1nn
      cc ralrimiva breq2d rspcv mpsyl 2nn eleq1d addge02d mpbid clt wa readdcld
      wb 2re 2pos pm3.2i a1i lemul2 syl3anc cn0 1nn0 oveq12d eqeq12d seq1i nnuz
      1z df-2 eqidd seqp1i 3brtr4d cfz peano2nn adantl nnnn0d adantr sylc nnnn0
      csu expp1 sylancr nnexpcl nncnd mulcom sylancl eqtrd oveq1d recnd mulassd
      3eqtrd chash hashfz1 syl eqeltrd cfn fzfid hashcl nn0cnd cun cz cuz simpr
      nnzd peano2uz syl6eleq syl2anc nnred 3eqtr3d elfzuz eluznn syl2an simplll
      uzid 1le2 eqbrtrd remulcld serfre remulcl elfznn fsumser leexp2a 4syl cin
      mp3an12 elfz5 mpbird fzsplit times2d 3eqtr4d ltp1d fzdisj hashun addcanad
      c0 fsumconst eqtr4d simpl elfzuz3 cmin monoord2 rspccva sylan fsumle 1zzd
      fsumrecl sylan2 ffvelrnda ffvelrn le2add syl22anc mpan2d fsumsplit adddid
      wf seqp1 sylibrd expcom a2d nnind impcom ) FKLAFUCEMUDZNZOOFUEPZUCDMUDZNZ
[encoded data, 4160 characters]
      AWUPXHVUPVVAWUBXHUVMXFUQUVPUVQUVRUVSUVT $.

    $( The Cauchy condensation test.  If ` a ( k ) ` is a decreasing sequence
       of nonnegative terms, then ` sum_ k e. NN a ( k ) ` converges iff
       ` sum_ n e. NN0 2 ^ n x. a ( 2 ^ n ) ` converges.  (Contributed by Mario
       Carneiro, 18-Jul-2014.) $)
    climcnds $p |- ( ph ->
      ( seq 1 ( + , F ) e. dom ~~> <-> seq 0 ( + , G ) e. dom ~~> ) ) $=
      ( c1 wcel cc0 wa cr wbr cn cn0 cfv c2 cle vx vj cseq cli cdm crn clt csup
      caddc nnuz 1zzd wf cv nnnn0 cexp co cmul simpr nnexpcl sylancr nnred wral
      2nn ralrimiva adantr wceq fveq2 eleq1d rspcv sylc remulcld eqeltrd sylan2
      serfre cuz syl6eleq nnz adantl uzid peano2uz 3syl cfz simpl elfznn syl2an
      cz simpll elfz1eq peano2nn0 syl ad2antlr nn0ge0d mulge0d breqtrrd syl2anc
      nnnn0d breq2d sermono adantlr csu 2re isumrecl remulcl ffvelrnda ad2antrr
      wrex eqidd ffvelrnd climcndslem2 recnd fsumser fzfid wss ssriv a1i simplr
      cc sylan isumless eqbrtrrd 2pos lemul2 syl112anc mpbid letrd breq2 rspcev
      wb ralbidv climsup climrel releldmi nn0uz 1nn0 iserex syldan peano2nn 0zd
      biimpar eluznn eleq1 biimparc ffvelrn cmin nn0red 2z ax-mp bernneq3 ltled
      peano2zd nnzd eluz mpbird eluzp1m1 elfzuz climcndslem1 elfznn0 impbida )
      AUIDJUCZUDUEZKZUIELUCZUUTKZAUVAUIEJUCZUUTKZUVCAUVAMZUVDUVDUFNUGUHZUDOUVEU
      VFUAUBUVDJPUJUVFUKZAPNUVDULUVAACEJPUJAUKZCUMZPKZAUVJQKZUVJERZNKZUVJUNAUVL
      MZUVMSUVJUOUPZUVPDRZUQUPZNIUVOUVPUVQUVOUVPUVOSPKZUVLUVPPKZVCAUVLURSUVJUSU
      TZVAZUVOUVTBUMZDRZNKZBPVBZUVQNKZUWAAUWFUVLAUWEBPFVDVEUWEUWGBUVPPUWCUVPVFZ
      UWDUVQNUWCUVPDVGZVHVIVJZVKVLZVMZVNVEZAUBUMZPKZUWNUVDRZUWNJUIUPZUVDRTOUVAA
      UWOMZCEUWNJUWQUWRUWNPJVORZAUWOURUJVPZUWRUWNWFKZUWNUWNVORZKUWQUXBKUWOUXAAU
      WNVQZVRUWNVSUWNUWNVTWAZUWRAUVKUVNUVJJUWQWBUPZKAUWOWCZUVJUWQWDUWLWEUWRUVJU
      WQUWQWBUPZKZMZAUVLLUVMTOZAUWOUXHWGUXIUVJUWQQUXHUVJUWQVFUWRUVJUWQWHVRUWOUW
      QQKZAUXHUWOUWNQKZUXKUWNUNZUWNWIWJZWKVLUVOLUVRUVMTUVOUVPUVQUWBUWJUVOUVPUVO
      UVPUWAWPWLUVOUVTLUWDTOZBPVBZLUVQTOZUWAAUXPUVLAUXOBPGVDVEUXOUXQBUVPPUWHUWD
      UVQLTUWIWQVIVJWMIWNZWOWRWSUVFSPUWDBWTZUQUPZNKZUWPUXTTOZUBPVBZUWPUAUMZTOZU
      BPVBZUANXFUVFSNKZUXSNKZUYAXAUVFUWDBDJPUJUVHUVFUWCPKZMUWDXGAUYIUWEUVAFWSZA
      UVAURXBZSUXSXCUTZUVFUYBUBPUVFUWOMZUWPSSUWNUOUPZUUSRZUQUPZUXTUVFPNUWNUVDUW
      MXDUYMUYGUYONKZUYPNKXAUYMPNUYNUUSAPNUUSULZUVAUWOABDJPUJUVIFVNZXEUYMUVSUXL
      UYNPKVCUWOUXLUVFUXMVRSUWNUSUTZXHZSUYOXCUTUVFUYAUWOUYLVEAUWOUWPUYPTOUVAABC
      DEUWNFGHIXIWSUYMUYOUXSTOZUYPUXTTOZUYMJUYNWBUPZUWDBWTUYOUXSTUYMUWDBDJUYNUY
      MUWCVUDKZMUWDXGUYMUYNPUWSUYTUJVPUYMAUYIUWDXQKVUEAUVAUWOWGZUWCUYNWDZAUYIMU
      WDFXJWEXKUYMVUDUWDBDJPUJUYMUKUYMJUYNXLVUDPXMUYMBVUDPVUGXNXOUYMUYIMUWDXGUV
      FUYIUWEUWOUYJWSUYMAUYIUXOVUFGXRAUVAUWOXPXSXTUYMUYQUYHUYGLSUGOZVUBVUCYHVUA
      UVFUYHUWOUYKVEUYGUYMXAXOVUHUYMYAXOUYOUXSSYBYCYDYEVDUYFUYCUAUXTNUYDUXTVFUY
      EUYBUBPUYDUXTUWPTYFYIYGWOYJUVDUVGUDYKYLWJAUVCUVEACELJQYMJQKAYNXOUVOUVMUWK
      XJZYOYSYPAUVCMZUUSUUSUFNUGUHZUDOUVAVUJUAUBUUSJPUJVUJUKAUYRUVCUYSVEZAUWOUW
      NUUSRZUWQUUSRTOUVCUWRBDUWNJUWQUWTUXDUWRAUYIUWEUWCUXEKUXFUWCUWQWDFWEUWRUWC
      UXGKZMAUYIUXOAUWOVUNWGUWRUWQPKZUWCUWQVFZUYIVUNUWOVUOAUWNYQZVRUWCUWQWHVUPU
      YIVUOUWCUWQPUUAUUBWEGWOWRWSVUJQUVMCWTZNKZVUMVURTOZUBPVBZVUMUYDTOZUBPVBZUA
      NXFVUJUVMCELQYMVUJYRVUJUVLMUVMXGAUVLUVNUVCUWKWSAUVCURXBZVUJVUTUBPVUJUWOMZ
      VUMUWNUVBRZVURVUJPNUWNUUSVULXDZVUJQNUVBULZUXLVVFNKUWOAVVHUVCACELQYMAYRUWK
      VNVEUXMQNUWNUVBUUCWEZVUJVUSUWOVVDVEVVEVUMSUWQUOUPZJUUDUPZUUSRZVVFVVGVVEPN
      VVKUUSVUJUYRUWOVULVEVVEUWOVVKUXBKZVVKPKVUJUWOURVVEUXAVVJUWQVORZKZVVMUWOUX
      AVUJUXCVRZVVEVVOUWQVVJTOZVVEUWQVVJVVEUWQUWOUXKVUJUXNVRZUUEVVEVVJVVEUVSUXK
      VVJPKVCVVRSUWQUSUTZVAVVESSVORKZUXKUWQVVJUGOSWFKVVTUUFSVSUUGVVRSUWQUUHUTUU
      IVVEUWQWFKVVJWFKVVOVVQYHVVEUWNVVPUUJVVEVVJVVSUUKUWQVVJUULWOUUMUWNVVJUUNWO
      ZVVKUWNYTWOXHVVIVVEBDUWNJVVKAUWOUWNUWSKUVCUWTWSVWAVVEAUYIUWEUWCJVVKWBUPKA
      UVCUWOWGZUWCVVKWDFWEVVEUWCUWQVVKWBUPKZMAUYIUXOVVEAVWCVWBVEVVEVUOUWCVVNKUY
      IVWCUWOVUOVUJVUQVRUWCUWQVVKUUOUWCUWQYTWEGWOWRVVEAUXLVVLVVFTOVWBUWOUXLVUJU
      XMVRZABCDEUWNFGHIUUPWOYEVVELUWNWBUPZUVMCWTVVFVURTVVEUVMCELUWNVVEUVJVWEKZM
      UVMXGVVEUWNQLVORVWDYMVPVVEAUVLUVMXQKVWFVWBUVJUWNUUQZVUIWEXKVVEVWEUVMCELQY
      MVVEYRVVELUWNXLVWEQXMVVECVWEQVWGXNXOVVEUVLMUVMXGVVEAUVLUVNVWBUWKXRVVEAUVL
      UXJVWBUXRXRAUVCUWOXPXSXTYEVDVVCVVAUAVURNUYDVURVFVVBVUTUBPUYDVURVUMTYFYIYG
      WOYJUUSVUKUDYKYLWJUUR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Miscellaneous converging and diverging sequences
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d n x y A $.
    $( The sequence of reciprocals of real numbers, multiplied by the factor
       ` A ` , converges to zero.  (Contributed by Mario Carneiro,
       18-Sep-2014.) $)
    divrcnv $p |- ( A e. CC -> ( n e. RR+ |-> ( A / n ) ) ~~>r 0 ) $=
      ( vy vx cc wcel crp cv cdiv co cc0 wbr clt cabs cfv cr ad2antrl ralrimiva
      wral wa cmpt crli wi wrex abscl rerpdivcl sylan simpll rpcn rpne0 absdivd
      wne cle rpge0 absidd oveq2d eqtrd simprr wb abscld ad2antlr rpgt0 ltdiv23
      rpre syl122anc mpbid eqbrtrd expr wceq breq1 imbi1d ralbidv syl2anc simpl
      rspcev adantl divcld wss rpssre a1i rlim0lt mpbird ) AEFZBGABHZIJZUAKUBLC
      HZWDMLZWENOZDHZMLZUCZBGSZCPUDZDGSWCWMDGWCWIGFZTZANOZWIIJZPFZWQWDMLZWJUCZB
      GSZWMWCWPPFZWNWRAUEWPWIUFUGWOWTBGWOWDGFZWSWJWOXCWSTZTZWHWPWDIJZWIMXEWHWPW
      DNOZIJXFXEAWDWCWNXDUHZXCWDEFZWOWSWDUIZQXCWDKULZWOWSWDUJZQUKXEXGWDWPIXEWDX
      CWDPFZWOWSWDVDQZXCKWDUMLWOWSWDUNQUOUPUQXEWSXFWIMLZWOXCWSURXEXBWIPFZKWIMLZ
      XMKWDMLZWSXOUSXEAXHUTWNXPWCXDWIVDVAWNXQWCXDWIVBVAXNXCXRWOWSWDVBQWPWIWDVCV
      EVFVGVHRWLXACWQPWFWQVIZWKWTBGXSWGWSWJWFWQWDMVJVKVLVOVMRWCDCBGWEWCWEEFBGWC
      XCTAWDWCXCVNXCXIWCXJVPXCXKWCXLVPVQRGPVRWCVSVTWAWB $.

    $( The sequence of reciprocals of positive integers, multiplied by the
       factor ` A ` , converges to zero.  (Contributed by NM, 6-Feb-2008.)
       (Revised by Mario Carneiro, 18-Sep-2014.) $)
    divcnv $p |- ( A e. CC -> ( n e. NN |-> ( A / n ) ) ~~> 0 ) $=
      ( cc wcel cn cv cdiv cmpt cc0 crli wbr cli crp wss nnrp ssriv a1i divrcnv
      co adantl rlimres2 c1 nnuz 1zzd wa simpl nncn wne nnne0 divcld eqid fmptd
      rlimclim mpbid ) ACDZBEABFZGSZHZIJKURILKUOBEMUQIEMNUOBEMUPOPQABRUAUOIURUB
      EUCUOUDUOBEUQCURUOUPEDZUEAUPUOUSUFUSUPCDUOUPUGTUSUPIUHUOUPUITUJURUKULUMUN
      $.

    $( The floor function satisfies ` |_ ( x ) = x + O(1) ` .  (Contributed by
       Mario Carneiro, 21-May-2016.) $)
    flo1 $p |- ( x e. RR |-> ( x - ( |_ ` x ) ) ) e. O(1) $=
      ( cr cv cfl cfv cmin co cmpt co1 wcel wtru c1 wss ssid a1i reflcl resubcl
      cc cle wbr mpdan recnd adantl 1red id abssubge0d fracle1 eqbrtrd ad2antrl
      cabs flle elo1d trud ) ABACZUNDEZFGZHIJKABUPLLBBMKBNOUNBJZUPRJKUQUPUQUOBJ
      UPBJUNPZUNUOQUAUBUCKUDZUSUQUPUJEZLSTKLUNSTUQUTUPLSUQUOUNURUQUEUNUKUFUNUGU
      HUIULUM $.
  $}

  ${
    $d A k $.  $d A m $.  $d B k $.  $d B m $.  $d F k $.  $d k m $.
    $d k ph $.  $d M k $.  $d Z k $.
    divcnvshft.1 $e |- Z = ( ZZ>= ` M ) $.
    divcnvshft.2 $e |- ( ph -> M e. ZZ ) $.
    divcnvshft.3 $e |- ( ph -> A e. CC ) $.
    divcnvshft.4 $e |- ( ph -> B e. ZZ ) $.
    divcnvshft.5 $e |- ( ph -> F e. V ) $.
    divcnvshft.6 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = ( A / ( k + B ) ) ) $.
    $( Limit of a ratio function.  (Contributed by Scott Fenton,
       16-Dec-2017.) $)
    divcnvshft $p |- ( ph -> F ~~> 0 ) $=
      ( vm cc0 cli cz cn wcel wbr cv cdiv co cmpt cc divcnv syl c1 cuz cfv cres
      wss wceq nnssz resmpt ax-mp nnuz reseq2i eqtr3i breq1i cvv wb zex climres
      1z mptex mp2an bitri sylib a1i wa caddc uzssz eqsstri sseli adantl adantr
      zaddcld oveq2 eqid ovex fvmpt eqtr4d climshft2 mpbird ) AEPQUAORBOUBZUCUD
      ZUEZPQUAZAOSWHUEZPQUAZWJABUFTWLKBOUGUHWLWIUIUJUKZULZPQUAZWJWKWNPQWISULZWK
      WNSRUMWPWKUNUOORSWHUPUQSWMWIURUSUTVAUIRTWIVBTZWOWJVCVFORWHVDVGZPWIUIVBVEV
      HVIVJAPDEWICFGVBHIJLMWQAWRVKADUBZHTZVLZWSCVMUDZWIUKZBXBUCUDZWSEUKXAXBRTXC
      XDUNXAWSCWTWSRTAHRWSHFUJUKRIFVNVOVPVQACRTWTLVRVSOXBWHXDRWIWGXBBUCVTWIWABX
      BUCWBWCUHNWDWEWF $.
  $}

  ${
    $d f k m x z F $.  $d f k m n z ph $.  $d f k m x z R $.  $d f k m x z X $.
    $d x y z A $.  $d k m n S $.
    supcvg.1 $e |- X e. _V $.
    supcvg.2 $e |- S = sup ( A , RR , < ) $.
    supcvg.3 $e |- R = ( n e. NN |-> ( S - ( 1 / n ) ) ) $.
    supcvg.4 $e |- ( ph -> X =/= (/) ) $.
    supcvg.5 $e |- ( ph -> F : X -onto-> A ) $.
    supcvg.6 $e |- ( ph -> A C_ RR ) $.
    supcvg.7 $e |- ( ph -> E. x e. RR A. y e. A y <_ x ) $.
    $( Extract a sequence ` f ` in ` X ` such that the image of the points in
       the bounded set ` A ` converges to the supremum ` S ` of the set.
       Similar to Equation 4 of [Kreyszig] p. 144.  The proof uses countable
       choice ~ ax-cc .  (Contributed by Mario Carneiro, 15-Feb-2013.)  (Proof
       shortened by Mario Carneiro, 26-Apr-2014.) $)
    supcvg $p |- ( ph -> E. f ( f : NN --> X /\ ( F o. f ) ~~> S ) ) $=
      ( cn wcel cr vk vz vm cv wf cfv cle wbr wral wa wex ccom cli wrex csup c1
      clt cdiv cmin wceq weq oveq2 oveq2d ovex fvmpt adantl crp wss wne w3a wfo
      co c0 fof syl feq3 syl5ibcom f00 simprbi syl6 necon3d mpd suprcl syl5eqel
      3jca nnrp rpreccld ltsubrp syl2an eqbrtrd syl6breq adantr nnrecre resubcl
      wb fmptd ffvelrnda suprlub syl2anc mpbid wi sselda ltle reximdva crn forn
      rexeqdv wfn ffn breq2 rexrn 3syl bitr3d ralrimiva nnenom fveq2 breq2d cvv
      axcc4 nnuz 1zzd cc0 csn cxp cmpt cc cz recnd cuz eqimss2i nnex climconst2
      1z sylancl mptex eqeltri a1i sylan eqeltrd ad2antrr ax-1cn mp1i fvconst2g
      divcnv eqid oveq12d eqtr4d climsub subid1d breqtrd fex vex coexg fssd fco
      fveq2d breq12d rspccva adantll simplr breqtrrd ad3antrrr syldan syl6breqr
      fvco3 suprub climsqz ex imdistanda eximdv ) ARJGUDZUEZUAUDZEUFZUVMUVKUFZI
      UFZUGUHZUARUIZUJZGUKZUVLIUVKULZFUMUHZUJZGUKAUVNBUDZIUFZUGUHZBJUNZUARUIUVT
      AUWGUARAUVMRSZUJZUVNUBUDZUGUHZUBDUNZUWGUWIUVNUWJUQUHZUBDUNZUWLUWIUVNDTUQU
      OZUQUHZUWNUWIUVNFUWOUQUWIUVNFUPUVMURVLZUSVLZFUQUWHUVNUWRUTAHUVMFUPHUDZURV
      LZUSVLZUWRREHUAVAUWTUWQFUSUWSUVMUPURVBZVCMFUWQUSVDVEVFZAFTSZUWQVGSUWRFUQU
      HUWHAFUWOTLADTVHZDVMVIZCUDUWDUGUHCDUIBTUNZVJZUWOTSAUXEUXFUXGPAJVMVIUXFNAD
      VMJVMADVMUTZJVMIUEZJVMUTZAJDIUEZUXIUXJAJDIVKZUXLOJDIVNVOZDVMJIVPVQUXJIVMU
      TUXKJIVRVSVTWAWBQWEZBCDWCVOWDZUWHUVMUVMWFWGFUWQWHWIWJLWKUWIUXHUVNTSZUWPUW
      NWOAUXHUWHUXOWLARTUVMEAHRUXATEAUXDUWTTSUXATSUWSRSUXPUWSWMFUWTWNWIMWPZWQZB
      CUBDUVNWRWSWTUWIUWMUWKUBDUWIUWJDSZUJUXQUWJTSUWMUWKXAUWIUXQUXTUXSWLUWIDTUW
      JAUXEUWHPWLXBUVNUWJXCWSXDWBAUWLUWGWOUWHAUWKUBIXEZUNZUWLUWGAUWKUBUYADAUXMU
      YADUTOJDIXFVOXGAUXLIJXHUYBUWGWOUXNJDIXIUWKUWFUBBJIUWJUWEUVNUGXJXKXLXMWLWT
      XNUWFUVQBJGUARKXOUWDUVOUTUWEUVPUVNUGUWDUVOIXPXQXSVOAUVSUWCGAUVLUVRUWBAUVL
      UJZUVRUWBUYCUVRUJZFUCEUWAUPXRRXTUYDYAAEFUMUHUVLUVRAEFYBUSVLFUMAFYBUARFYCY
      DZHRUWTYEZEUPXRRXTAYAAFYFSZUPYGSUYEFUMUHAFUXPYHZYMFUPRRUPYIUFXTYJYKYLYNEX
      RSAEHRUXAYEXRMHRUXAYKYOYPYQUPYFSUYFYBUMUHAUUAUPHUUDUUBUWIUVMUYEUFZFYFAUXD
      UWHUYIFUTUXPRFUVMTUUCYRZAUYGUWHUYHWLYSUWIUVMUYFUFZUWQYFUWHUYKUWQUTAHUVMUW
      TUWQRUYFUXBUYFUUEUPUVMURVDVEVFZUWHUWQYFSAUWHUWQUVMWMYHVFYSUWIUVNUWRUYIUYK
      USVLUXCUWIUYIFUYKUWQUSUYJUYLUUFUUGUUHAFUYHUUIUUJYTUYDIXRSZUVKXRSUWAXRSUYD
      UXLJXRSUYMAUXLUVLUVRUXNYTZKJDXRIUUKYNGUULIUVKXRXRUUMYNUYDRTUCUDZEARTEUEUV
      LUVRUXRYTWQUYDRTUYOUWAUYCRTUWAUEZUVRAJTIUEUVLUYPAJDTIUXNPUUNRJTIUVKUUOYRW
      LWQUYDUYORSZUJZUYOEUFZUYOUVKUFZIUFZUYOUWAUFZUGUVRUYQUYSVUAUGUHZUYCUVQVUCU
      AUYORUAUCVAZUVNUYSUVPVUAUGUVMUYOEXPVUDUVOUYTIUVMUYOUVKXPUUPUUQUURUUSUYDUV
      LUYQVUBVUAUTAUVLUVRUUTZRJUYOIUVKUVEYRZUVAUYRVUBVUAFUGVUFUYRVUAUWOFUGUYRUX
      HVUADSZVUAUWOUGUHAUXHUVLUVRUYQUXOUVBUYDUYQUYTJSVUGUYDRJUYOUVKVUEWQUYDJDUY
      TIUYNWQUVCBCDVUAUVFWSLUVDWJUVGUVHUVIUVJWB $.
  $}

  ${
    $d x A $.  $d x y B $.  $d w z R $.  $d x y X $.  $d x y Z $.  $d y C $.
    infcvg.1 $e |- R = { x | E. y e. X x = -u A } $.
    infcvg.2 $e |- ( y e. X -> A e. RR ) $.
    infcvg.3 $e |- Z e. X $.
    infcvg.4 $e |- E. z e. RR A. w e. R w <_ z $.
    $( Auxiliary theorem for applications of ~ supcvg .  Hypothesis for several
       supremum theorems.  (Contributed by NM, 8-Feb-2008.) $)
    infcvgaux1i $p |- ( R C_ RR /\ R =/= (/)
           /\ E. z e. RR A. w e. R w <_ z ) $=
      ( cr wss c0 cv wrex cneg wceq wcel wne cle wral renegcld eleq1 syl5ibrcom
      wbr cab rexlimiv abssi eqsstri csb eqid csbeq1a negeqd eqeq2d rspce mp2an
      nfth negex nfcsb1v nfneg nfeq2 eqeq1 rexbid mpbir eleqtrri ne0ii 3pm3.2i
      elab ) FMNFOUADPCPUBUGDFUCCMQFAPZERZSZBGQZAUHZMIVNAMVMVKMTZBGBPZGTZVPVMVL
      MTVREJUDVKVLMUEUFUIUJUKBHEULZRZFVTVOFVTVOTVTVLSZBGQZHGTVTVTSZWBKVTUMZWAWC
      BHGWCBWDUSVQHSZVLVTVTWEEVSBHEUNUOUPUQURVNWBAVTVSUTVKVTSVMWABGBVKVTBVSBHEV
      AVBVCVKVTVLVDVEVJVFIVGVHLVI $.

    ${
      infcvg.5a $e |- S = -u sup ( R , RR , < ) $.
      infcvg.13 $e |- ( y = C -> A = B ) $.
      $( Auxiliary theorem for applications of ~ supcvg .  (Contributed by NM,
         4-Mar-2008.) $)
      infcvgaux2i $p |- ( C e. X -> S <_ B ) $=
        ( wcel cr wceq clt csup cneg cle wbr wrex cv negeqd eqeq2d rspcev mpan2
        eqid negex eqeq1 rexbidv sylibr infcvgaux1i suprubii syl eleq1d vtoclga
        elab2 wb suprclii lenegcon1 sylancl mpbid syl5eqbr ) GJRZIHSUAUBZUCZFUD
        PVIFUCZVJUDUEZVKFUDUEZVIVLHRZVMVIVLEUCZTZBJUFZVOVIVLVLTZVRVLULVQVSBGJBU
        GGTZVPVLVLVTEFQUHUIUJUKAUGZVPTZBJUFVRAVLHFUMWAVLTWBVQBJWAVLVPUNUOLVBUPC
        DHVLABCDEHJKLMNOUQZURUSVIFSRZVJSRVMVNVCESRWDBGJVTEFSQUTMVACDHWCVDFVJVEV
        FVGVH $.
    $}
  $}

  ${
    $d k n $.  $d j k F $.  $d j k H $.
    harmonic.1 $e |- F = ( n e. NN |-> ( 1 / n ) ) $.
    harmonic.2 $e |- H = seq 1 ( + , F ) $.
    $( The harmonic series ` H ` diverges.  This fact follows from the stronger
       ~ emcl , which establishes that the harmonic series grows as
       ` log n + gamma + ` _o_(1), but this uses a more elementary method,
       attributed to Nicole Oresme (1323-1382).  This is Metamath 100 proof
       #34.  (Contributed by Mario Carneiro, 11-Jul-2014.) $)
    harmonic $p |- -. H e. dom ~~> $=
      ( vk wcel cn0 c1 wbr cn cc0 cfv wceq adantl cdiv co cle syl cmul cli wrex
      vj cdm csu cv clt cr csn cxp nn0uz 0zd fvconst2 wa 1red caddc cseq eleq1i
      1ex biimpi oveq2 ovex fvmpt nnrecre eqeltrd nnrp rpreccld rpge0d breqtrrd
      nnre lep1d wb nngt0 peano2re peano2nn nngt0d lerec syl22anc mpbid 3brtr4d
      c2 cexp fveq2d oveq12d cmpt fconstmpt 2nn nnexpcl mpan oveq2d nncn recidd
      nnne0 eqtrd mpteq2ia eqtr4i climcnds isumrecl arch wn cfz chash cfn fzfid
      cc ax-1cn fsumconst sylancl nnnn0 hashfz1 oveq1d mulid1d 3eqtrd wss ssriv
      elfznn a1i 0le1 adantr isumless eqbrtrrd lenlt syl2anr nrexdv pm2.65i ) C
      UAUDZGZHIFUEZUCUFZUGJZUCKUBZYGYHUHGZYKYGIFHIUIUJZLHUKYGULFUFZHGZYNYMMINZY
      GHIYNUSUMZOYGYOUNUOYGUPBIUQZYFGZUPYMLUQYFGZYGYSCYRYFEURUTYGFUCBYMYNKGZYNB
      MZUHGYGUUAUUBIYNPQZUHAYNIAUFZPQZUUCKBUUDYNIPVADIYNPVBVCZYNVDVEOUUALUUBRJY
      GUUALUUCUUBRUUAUUCUUAYNYNVFVGVHUUFVIOUUAYNIUPQZBMZUUBRJYGUUAIUUGPQZUUCUUH
      UUBRUUAYNUUGRJZUUIUUCRJZUUAYNYNVJZVKUUAYNUHGZLYNUGJUUGUHGZLUUGUGJUUJUUKVL
      UULYNVMUUAUUMUUNUULYNVNSUUAUUGYNVOZVPYNUUGVQVRVSUUAUUGKGUUHUUINUUOAUUGUUE
      UUIKBUUDUUGIPVADIUUGPVBVCSUUFVTOYIHGZYIYMMWAYIWBQZUUQBMZTQZNYGFYIWAYNWBQZ
      UUTBMZTQZUUSHYMYNYINZUUTUUQUVAUURTYNYIWAWBVAZUVCUUTUUQBUVDWCWDYMFHIWEFHUV
      BWEFHIWFFHUVBIYOUVBUUTIUUTPQZTQZIYOUVAUVEUUTTYOUUTKGZUVAUVENWAKGYOUVGWGWA
      YNWHWIZAUUTUUEUVEKBUUDUUTIPVADIUUTPVBVCSWJYOUVGUVFINUVHUVGUUTUUTWKUUTWMWL
      SWNWOWPUUQUURTVBVCOWQVSZWRZYHUCWSSYGYJUCKYGYIKGZUNZYIYHRJZYJWTZUVLIYIXAQZ
      IFUEZYIYHRUVLUVPUVOXBMZITQZYIITQYIUVLUVOXCGIXEGUVPUVRNUVLIYIXDZXFUVOIFXGX
      HUVLUVQYIITUVLUUPUVQYINUVKUUPYGYIXIOYIXJSXKUVLYIUVKYIXEGYGYIWKOXLXMUVLUVO
      IFYMLHUKUVLULUVSUVOHXNUVLFUVOHYNUVOGUUAYOYNYIXPYNXISXOXQYOYPUVLYQOUVLYOUN
      ZUOLIRJUVTXRXQYGYTUVKUVIXSXTYAUVKYIUHGYLUVMUVNVLYGYIVJUVJYIYHYBYCVSYDYE
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Arithmetic series
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d j k N $.
    $( Arithmetic series sum of the first ` N ` positive integers.  This is
       Metamath 100 proof #68.  (Contributed by FL, 16-Nov-2006.)  (Proof
       shortened by Mario Carneiro, 22-May-2014.) $)
    arisum $p |- ( N e. NN0 -> sum_ k e. ( 1 ... N ) k =
                   ( ( ( N ^ 2 ) + N ) / 2 ) ) $=
      ( vj cn0 wcel cc0 wceq c1 cfz co csu c2 caddc cdiv cbc cc syl6eq syl cmul
      oveq1d cn wo cv cexp elnn0 cmin 1zzd nnz elfzelz zcnd adantl id fsumshftm
      1m1e0 oveq1i sumeq1i elfznn0 bcnp1n nn0cnd ax-1cn addcom sylancl sumeq2dv
      wa eqtr3d 1nn0 nnm1nn0 bcxmas sylancr eqtr4d 1cnd nncn eqtrd nnnn0 bcp1m1
      ppncand adddird sqval eqcomd mulid2 oveq12d 3eqtrd fz10 sumeq1d sum0 sq0i
      c0 oveq2 00id 2cn 2ne0 div0i jaoi sylbi ) BDEZBUAEZBFGZUBHBIJZAUCZAKZBLUD
      JZBMJZLNJZGZBUEWPXDWQWPWTFBHUFJZIJZCUCZHMJZCKZHHMJXEMJZXEOJZXCWPWTHHUFJZX
      EIJZXHCKXIWPWSXHACHHBWPUGZXNBUHWSWREZWSPEWPXOWSWSHBUIUJUKWSXHGULUMXMXFXHC
      XLFXEIUNUOUPQWPXIXFHXGMJZXGOJZCKZXKWPXFXHXQCWPXGXFEZVDZXHXGOJZXHXQXTXGDEZ
      YAXHGXSYBWPXGXEUQUKZXGURRXTXHXPXGOXTXGPEHPEZXHXPGXTXGYCUSUTXGHVAVBTVEVCWP
      HDEXEDEXKXRGVFBVGCXEHVHVIVJWPXKBHMJZXEOJZYEBSJZLNJZXCWPXJYEXEOWPXJHBMJZYE
      WPHHBWPVKZYJBVLZVPWPYDBPEZYIYEGUTYKHBVAVIVMTWPWOYFYHGBVNBVORWPYGXBLNWPYGB
      BSJZHBSJZMJZXBWPBHBYKYJYKVQWPYLYOXBGYKYLYMXAYNBMYLXAYMBVRVSBVTWARVMTWBWBW
      QWTFXCWQWTWGWSAKFWQWRWGWSAWQWRHFIJWGBFHIWHWCQWDWSAWEQWQXCFLNJFWQXBFLNWQXB
      FFMJFWQXAFBFMBWFWQULWAWIQTLWJWKWLQVJWMWN $.

    $( Arithmetic series sum of the first ` N ` nonnegative integers.
       (Contributed by Mario Carneiro, 17-Apr-2015.)  (Proof shortened by AV,
       2-Aug-2021.) $)
    arisum2 $p |- ( N e. NN0 -> sum_ k e. ( 0 ... ( N - 1 ) ) k =
                   ( ( ( N ^ 2 ) - N ) / 2 ) ) $=
      ( cn0 wcel cn cc0 wceq c1 cmin co cfz csu c2 caddc oveq1d cc eqtrd syl6eq
      cdiv c0 wo cv cexp elnn0 cuz cfv nnm1nn0 nn0uz syl6eleq wa elfznn0 adantl
      nn0cnd id fsum1p 1e0p1 oveq1i sumeq1i oveq2i fzfid elfznn addid2d syl5eqr
      nncnd fsumcl arisum syl cmul nncn oveq2d sqcld subsub4d eqtr4d binom2sub1
      2timesd subcld 1cnd subsubd 3eqtr4d ax-1cn subcl sylancl npcand oveq1 clt
      wbr cr 0re ltm1 ax-mp cz wb peano2zm mp2an mpbi sumeq1d sum0 sq0i oveq12d
      0z fzn 0m0e0 2cn 2ne0 div0i jaoi sylbi ) BCDBEDZBFGZUAFBHIJZKJZAUBZALZBMU
      CJZBIJZMSJZGZBUDXHXQXIXHXMFFHNJZXJKJZXLALZNJZXPXHXLFAFXJXHXJCFUEUFBUGZUHU
      IXHXLXKDZUJXLYCXLCDXHXLXJUKULUMXLFGUNUOXHYAHXJKJZXLALZXPXHYAFYENJYEYEXTFN
      YDXSXLAHXRXJKUPUQURUSXHYEXHYDXLAXHHXJUTXHXLYDDZUJXLYFXLEDXHXLXJVAULVDVEVB
      VCXHYEXJMUCJZXJNJZMSJZXPXHXJCDYEYIGYBAXJVFVGXHYHXOMSXHYHXOXJIJZXJNJXOXHYG
      YJXJNXHXNMBVHJZIJZHNJZXOBIJZHNJYGYJXHYLYNHNXHYLXNBBNJZIJYNXHYKYOXNIXHBBVI
      ZVOVJXHXNBBXHBYPVKZYPYPVLVMOXHBPDZYGYMGYPBVNVGXHXOBHXHXNBYQYPVPZYPXHVQVRV
      SOXHXOXJYSXHYRHPDXJPDYPVTBHWAWBWCQOQQQXIXMFXPXIXMTXLALFXIXKTXLAXIXKFFHIJZ
      KJZTXIXJYTFKBFHIWDVJYTFWEWFZUUATGZFWGDUUBWHFWIWJFWKDZYTWKDZUUBUUCWLWTUUDU
      UEWTFWMWJFYTXAWNWORWPXLAWQRXIXPFMSJFXIXOFMSXIXOFFIJFXIXNFBFIBWRXIUNWSXBRO
      MXCXDXERVMXFXG $.
  $}

  ${
    $d F j k $.  $d j k n $.
    trireciplem.1 $e |- F = ( n e. NN |-> ( 1 / ( n x. ( n + 1 ) ) ) ) $.
    $( Lemma for ~ trirecip .  Show that the sum converges.  (Contributed by
       Scott Fenton, 22-Apr-2014.)  (Revised by Mario Carneiro,
       22-May-2014.) $)
    trireciplem $p |- seq 1 ( + , F ) ~~> 1 $=
      ( vj caddc c1 cc0 cmin co cli wtru cdiv cvv wcel syl cfv wceq adantl cmul
      cn vk cseq wbr cv cmpt nnuz 1zzd cc 1cnd divcnv nnex mptex peano2nn oveq2
      a1i wa eqid ovex fvmpt oveq1 oveq2d eqtr4d climshft2 seqex nnrecred recnd
      mpbird cfz elfznn nncnd peano2cn nnmulcld nnne0d divsubdird ax-1cn pncan2
      eqeltrd csu sylancl oveq1d mulid1d mulcomd oveq12d eqtr3d 3eqtr3d 1div1e1
      divcan5d sumeq2dv syl6eq cz nnz cuz syl6eleq telfsum eqtrd simpr 3eqtr2rd
      id fsumser climsubc2 trud 1m0e1 breqtri ) EBFUBZFGHIZFJXDXEJUCKGFUAATFAUD
      ZFEIZLIZUEZXDFMTUFKUGZKXIGJUCATFXFLIZUEZGJUCZKFUHNZXMKUIZFAUJOKGUAXIXLFFM
      MTUFXJXJXIMNKATXHUKULUOXLMNKATXKUKULUOKUAUDZTNZUPZXPFEIZXLPZFXSLIZXPXIPZX
      RXSTNZXTYAQXQYCKXPUMRZAXSXKYATXLXFXSFLUNZXLUQFXSLURZUSOXQYBYAQKAXPXHYATXI
      XFXPQXGXSFLXFXPFEUTVAXIUQYFUSRZVBVCVGXOXDMNKEBFVDUOXRYBYAUHYGXRYAXRXSYDVE
      VFVQXRFYBHIFYAHIZFXPVHIZFDUDZYJFEIZSIZLIZDVRZXPXDPXRYBYAFHYGVAXRYNYIFYJLI
      ZFYKLIZHIZDVRYHXRYIYMYQDXRYJYINZUPZYKYJHIZYLLIYKYLLIZYJYLLIZHIYMYQYSYKYJY
      LYSYJUHNZYKUHNYSYJYRYJTNZXRYJXPVIRZVJZYJVKOZUUFYSYLYSYJYKUUEYSUUDYKTNUUEY
      JUMOZVLZVJYSYLUUIVMVNYSYTFYLLYSUUCXNYTFQUUFVOYJFVPVSVTYSUUAYOUUBYPHYSYKFS
      IZYKYJSIZLIUUAYOYSUUJYKUUKYLLYSYKUUGWAYSYKYJUUGUUFWBWCYSFYJYKYSUIZUUFUUGY
      SYJUUEVMZYSYKUUHVMZWGWDYSYJFSIZYLLIUUBYPYSUUOYJYLLYSYJUUFWAVTYSFYKYJUULUU
      GUUFUUNUUMWGWDWCWEWHXRXKYOYPFDAYAFXPXFYJFLUNXFYKFLUNXFFQXKFFLIFXFFFLUNWFW
      IYEXQXPWJNKXPWKRXRXSTFWLPZYDUFWMXRXFFXSVHINZUPZXKUURXFUUQXFTNXRXFXSVIRVEV
      FWNWOXRYMDBFXPYSUUDYJBPYMQUUEAYJFXFXGSIZLIYMTBXFYJQZUUSYLFLUUTXFYJXGYKSUU
      TWRXFYJFEUTWCVACFYLLURUSOXRXPTUUPKXQWPUFWMYSYMYSYLUUIVEVFWSWQWTXAXBXC $.
  $}

  ${
    $d k n $.
    $( The sum of the reciprocals of the triangle numbers converge to two.
       This is Metamath 100 proof #42.  (Contributed by Scott Fenton,
       23-Apr-2014.)  (Revised by Mario Carneiro, 22-May-2014.) $)
    trirecip $p |- sum_ k e. NN ( 2 / ( k x. ( k + 1 ) ) ) = 2 $=
      ( vn cn c2 cv c1 caddc co cmul cdiv csu wcel 2cnd peano2nn wceq wtru nnuz
      oveq2d adantl cli nnmulcl mpdan nncnd nnne0d divrecd sumeq2i cmpt 1zzd id
      cfv oveq1 oveq12d eqid ovex fvmpt nnrecred recnd cseq wbr cdm trireciplem
      cc a1i climrel releldmi syl isummulc2 isumclim eqtr3d trud 2t1e2 3eqtri )
      CDAEZVMFGHZIHZJHZAKCDFVOJHZIHZAKZDFIHZDCVPVRAVMCLZDVOWAMWAVOWAVNCLVOCLVMN
      VMVNUAUBZUCWAVOWBUDUEUFVSVTOPDCVQAKZIHVSVTPVQDABCFBEZWDFGHZIHZJHZUGZFCQPU
      HZWAVMWHUJVQOPBVMWGVQCWHWDVMOZWFVOFJWJWDVMWEVNIWJUIWDVMFGUKULRWHUMZFVOJUN
      UOSZWAVQVBLPWAVQWAVOWBUPUQSZPGWHFURZFTUSZWNTUTLWOPBWHWKVAVCZWNFTVDVEVFPMV
      GPWCFDIPVQFAWHFCQWIWLWMWPVHRVIVJVKVL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Geometric series
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d k n A $.  $d k ph $.
    expcnv.1 $e |- ( ph -> A e. CC ) $.
    expcnv.2 $e |- ( ph -> ( abs ` A ) < 1 ) $.
    $( A sequence of powers of a complex number ` A ` with absolute value
       smaller than 1 converges to zero.  (Contributed by NM, 8-May-2006.)
       (Proof shortened by Mario Carneiro, 26-Apr-2014.) $)
    expcnv $p |- ( ph -> ( n e. NN0 |-> ( A ^ n ) ) ~~> 0 ) $=
      ( cexp co cc0 wbr wceq wa c1 cvv cn wcel cdiv cc crp cr syl2an vk cv cmpt
      cn0 cli nnuz 1zzd nn0ex mptex a1i 0cnd nnnn0 oveq2 eqid ovex fvmpt oveq1d
      cfv syl simpr sylan9eqr 0exp adantl eqtrd climconst wne cabs cmin absrpcl
      clt adantr sylan reclt1d mpbid wb 1re rpreccld rpred difrp sylancr divcnv
      rpcnd nnex nndivre eqeltrd cz nnz rpexpcl cle cmul rpmulcl caddc peano2re
      lep1d rpge0d bernneq2 syl3anc letrd rpcnne0d exprec 3expa breqtrd lerec2d
      nnrp nncn nnne0 jca recdiv2 breqtrrd 3brtr4d climsqz2 expcl absexp fveq2d
      3eqtr4rd climabs0 biimpar syldan pm2.61dane ) ACUDBCUBZFGZUCZHUEIZBHABHJZ
      KZHUAYBLMNUFYEUGYBMOZYECUDYAUHUIZUJYEUKYEUAUBZNOZKYHYBURZHYHFGZHYIYEYJBYH
      FGZYKYIYHUDOZYJYLJZYHULZCYHYAYLUDYBXTYHBFUMYBUNBYHFUOUPZUSYEBHYHFAYDUTUQV
      AYIYKHJYEYHVBVCVDVEABHVFZCNBVGURZXTFGZUCZHUEIZYCAYQKZHUACNLLYRPGZLVHGZPGZ
      XTPGZUCZYTLMNUFUUBUGUUBUUEQOUUGHUEIUUBUUEUUBUUDUUBLUUCVJIZUUDROZUUBYRLVJI
      ZUUHAUUJYQEVKUUBYRABQOZYQYRROZDBVIVLZVMVNUUBLSOUUCSOZUUHUUIVOVPUUBUUCUUBY
      RUUMVQZVRZLUUCVSVTVNZVQZWBUUECWAUSYTMOZUUBCNYSWCUIZUJUUBYIKZYHUUGURZUUEYH
      PGZSYIUVBUVCJUUBCYHUUFUVCNUUGXTYHUUEPUMUUGUNUUEYHPUOUPVCZUUBUUESOYIUVCSOU
      UBUUEUURVRUUEYHWDVLWEUVAYHYTURZUVAUVEYRYHFGZRYIUVEUVFJZUUBCYHYSUVFNYTXTYH
      YRFUMYTUNYRYHFUOUPZVCZUUBUULYHWFOZUVFROYIUUMYHWGZYRYHWHTZWEZVRUVAUVFUVCUV
      EUVBWIUVAUVFLUUDYHWJGZPGZUVCWIUVAUVNUVFUUBUUIYHROUVNROYIUUQYHXDUUDYHWKTZU
      VLUVAUVNUUCYHFGZLUVFPGZWIUVAUVNUVNLWLGZUVQUVAUVNUVPVRZUVAUVNSOUVSSOUVTUVN
      WMUSUVAUVQUUBUUCROUVJUVQROYIUUOUVKUUCYHWHTVRUVAUVNUVTWNUVAUUNYMHUUCWIIZUV
      SUVQWIIUUBUUNYIUUPVKYIYMUUBYOVCUUBUWAYIUUBUUCUUOWOVKUUCYHWPWQWRUUBYRQOZYR
      HVFZKUVJUVQUVRJZYIUUBYRUUMWSUVKUWBUWCUVJUWDYRYHWTXATXBXCUUBUUDQOUUDHVFKYH
      QOZYHHVFZKUVCUVOJYIUUBUUDUUQWSYIUWEUWFYHXEYHXFXGUUDYHXHTXIUVIUVDXJUVAUVEU
      VMWOXKAYCUUAAUAYBYTLMMNUFAUGYFAYGUJUUSAUUTUJAYIKZYJYLQUWGYMYNYIYMAYOVCYPU
      SZAUUKYMYLQOYIDYOBYHXLTWEUWGYLVGURZUVFYJVGURUVEAUUKYMUWIUVFJYIDYOBYHXMTUW
      GYJYLVGUWHXNYIUVGAUVHVCXOXPXQXRXS $.
  $}

  ${
    $d k n A $.  $d k ph $.  $d k n F $.  $d k n Z $.  $d k M $.
    explecnv.1 $e |- Z = ( ZZ>= ` M ) $.
    explecnv.2 $e |- ( ph -> F e. V ) $.
    explecnv.3 $e |- ( ph -> M e. ZZ ) $.
    explecnv.5 $e |- ( ph -> A e. RR ) $.
    explecnv.4 $e |- ( ph -> ( abs ` A ) < 1 ) $.
    explecnv.6 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    explecnv.7 $e |- ( ( ph /\ k e. Z ) ->
                       ( abs ` ( F ` k ) ) <_ ( A ^ k ) ) $.
    $( A sequence of terms converges to zero when it is less than powers of a
       number ` A ` whose absolute value is smaller than 1.  (Contributed by
       NM, 19-Jul-2008.)  (Revised by Mario Carneiro, 26-Apr-2014.) $)
    explecnv $p |- ( ph -> F ~~> 0 ) $=
      ( vn cc0 wbr cfv cn0 wcel cli cv cabs cmpt cexp co cle cif cvv eqid cz 0z
      cuz ifcl sylancr recnd expcnv fvex eqeltri mptex a1i wa cr wceq cin nn0uz
      ineq12i uzin sylancl eleq2d biimpa elin sylib simprd oveq2 ovex fvmpt syl
      syl5req adantr reexpcld eqeltrd simpld fveq2 fveq2d syldan abscld 3brtr4d
      cc absge0d breqtrrd climsqz2 adantl climabs0 mpbird ) ADPUAQOGOUBZDRZUCRZ
      UDZPUAQAPCOSBWPUEUFZUDZWSEPUGQZPEUHZUIXCUMRZXDUJAPUKTZEUKTZXCUKTULJXBPEUK
      UNUOABOABKUPLUQWSUITAOGWRGEUMRZUIHEUMURUSUTVAZACUBZXDTZVBZXIXARZBXIUEUFZV
      CXKXISTZXLXMVDXKXIGTZXNXKXIGSVEZTZXOXNVBAXJXQAXDXPXIAXPXGPUMRZVEZXDGXGSXR
      HVFVGAXFXEXSXDVDJULEPVHVIVSVJVKXIGSVLVMZVNZOXIWTXMSXAWPXIBUEVOXAUJBXIUEVP
      VQVRZXKBXIABVCTXJKVTYAWAWBXKXIWSRZXIDRZUCRZVCXKXOYCYEVDZXKXOXNXTWCZOXIWRY
      EGWSWPXIVDWQYDUCWPXIDWDWEWSUJYDUCURVQZVRZXKYDAXJXOYDWITYGMWFZWGWBXKYEXMYC
      XLUGAXJXOYEXMUGQYGNWFYIYBWHXKPYEYCUGXKYDYJWJYIWKWLACDWSEFUIGHJIXHMXOYFAYH
      WMWNWO $.
  $}

  ${
    $d j k A $.  $d j k M $.  $d j k N $.  $d j k ph $.
    geoserg.1 $e |- ( ph -> A e. CC ) $.
    geoserg.2 $e |- ( ph -> A =/= 1 ) $.
    geoserg.3 $e |- ( ph -> M e. NN0 ) $.
    geoserg.4 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    $( The value of the finite geometric series ` A ^ M + A ^ ( M + 1 ) + ` ...
       ` + A ^ ( N - 1 ) ` .  (Contributed by Mario Carneiro, 2-May-2016.) $)
    geoserg $p |- ( ph -> sum_ k e. ( M ..^ N ) ( A ^ k ) =
                    ( ( ( A ^ M ) - ( A ^ N ) ) / ( 1 - A ) ) ) $=
      ( cexp co cmin c1 csu wceq cmul wcel cn0 expcld oveq2 vj cdiv cfzo cv cfn
      caddc fzofi a1i cc ax-1cn subcl sylancr wa adantr cuz cfv elfzouz eluznn0
      syl2an fsummulc1 subdid mulid1d expp1d eqcomd oveq12d sumeq2dv cfz elfzuz
      telfsumo 3eqtrrd syl2anc subcld fsumcl cc0 wne necomd wb subeq0 necon3bid
      eqtrd mpbird divmul3d ) ABDJKZBEJKZLKZMBLKZUBKZDEUCKZBCUDZJKZCNZAWGWKOWEW
      KWFPKZOAWLWHWJWFPKZCNWHWJBWIMUFKZJKZLKZCNWEAWHWJWFCWHUEQADEUGUHZAMUIQZBUI
      QZWFUIQUJFMBUKULZAWIWHQZUMZBWIAWSXAFUNZADRQZWIDUOUPZQWIRQXAHWIDEUQWIDURUS
      ZSZUTAWHWMWPCXBWMWJMPKZWJBPKZLKWPXBWJMBXGWRXBUJUHXCVAXBXHWJXIWOLXBWJXGVBX
      BWOXIXBBWIXCXFVCVDVEVTVFABUAUDZJKWJWOWCCUAWDDEXJWIBJTXJWNBJTXJDBJTXJEBJTI
      AXJDEVGKQZUMBXJAWSXKFUNAXDXJXEQXJRQXKHXJDEVHXJDURUSSVIVJAWEWKWFAWCWDABDFH
      SABEFAXDEXEQERQHIEDURVKSVLAWHWJCWQXGVMWTAWFVNVOMBVOABMGVPAWFVNMBAWRWSWFVN
      OMBOVQUJFMBVRULVSWAWBWAVD $.
  $}

  ${
    $d k A $.  $d k N $.  $d k ph $.
    geoser.1 $e |- ( ph -> A e. CC ) $.
    geoser.2 $e |- ( ph -> A =/= 1 ) $.
    geoser.3 $e |- ( ph -> N e. NN0 ) $.
    $( The value of the finite geometric series ` 1 + A ^ 1 + A ^ 2 + ` ...
       ` + A ^ ( N - 1 ) ` .  This is Metamath 100 proof #66.  (Contributed by
       NM, 12-May-2006.)  (Proof shortened by Mario Carneiro, 15-Jun-2014.) $)
    geoser $p |- ( ph -> sum_ k e. ( 0 ... ( N - 1 ) ) ( A ^ k ) =
                    ( ( 1 - ( A ^ N ) ) / ( 1 - A ) ) ) $=
      ( cc0 cfzo co cv cexp csu cmin c1 cdiv cfz cn0 wcel oveq1d 0nn0 a1i nn0uz
      cuz cfv syl6eleq geoserg cz wceq nn0zd fzoval syl sumeq1d exp0d 3eqtr3d )
      AHDIJZBCKLJZCMBHLJZBDLJZNJZOBNJZPJHDONJQJZUQCMOUSNJZVAPJABCHDEFHRSAUAUBAD
      RHUDUEGUCUFUGAUPVBUQCADUHSUPVBUIADGUJHDUKULUMAUTVCVAPAUROUSNABEUNTTUO $.
  $}

  ${
    $d A k $.  $d N k $.  $d ph k $.
    pwm1geoser.1 $e |- ( ph -> A e. CC ) $.
    pwm1geoser.3 $e |- ( ph -> N e. NN0 ) $.
    $( The n-th power of a number decreased by 1 expressed by the finite
       geometric series ` 1 + A ^ 1 + A ^ 2 + ` ... ` + A ^ ( N - 1 ) ` .
       (Contributed by AV, 14-Aug-2021.) $)
    pwm1geoser $p |- ( ph -> ( ( A ^ N ) - 1 ) = ( ( A - 1 )
                              x. sum_ k e. ( 0 ... ( N - 1 ) ) ( A ^ k ) ) ) $=
      ( c1 wceq cexp co cmin cc0 cmul wcel syl wa 1cnd adantl adantr cc cfz csu
      cv wi 1m1e0 cz nn0zd 1exp oveq1d cn0 elfznn0 expcld fsumcl mul02d 3eqtr4a
      fzfid oveq1 syl6eq ralrimiva sumeq2d oveq12d eqeq12d syl5ibr wn wne neqne
      geoser eqcom nesym biimpri div2subd eqeq1d wb peano2cnm simpl subne0d jca
      cdiv ex impcom divmul2 syl3anc bitrd syl5bb mpbid pm2.61i ) BGHZABDIJZGKJ
      ZBGKJZLDGKJZUAJZBCUCZIJZCUBZMJZHZUDAWQWGGDIJZGKJZLWLGWMIJZCUBZMJZHAGGKJZL
      WSXBUEAWRGGKADUFNWRGHADFUGDUHOUIAXAAWLWTCALWKUPAWMWLNZPZGWMXEQXDWMUJNZAWM
      WKUKZRULUMUNUOWGWIWSWPXBWGWHWRGKBGDIUQUIWGWJLWOXAMWGWJXCLBGGKUQUEURWGWLWN
      WTCWGWNWTHZCWLWGXHXDBGWMIUQSUSUTVAVBVCWGVDZAWQXIAPZWOGWHKJGBKJVRJZHZWQXJB
      CDABTNZXIERZXIBGVEZABGVFZSADUJNXIFRVGXLXKWOHZXJWQWOXKVHXJXQWIWJVRJZWOHZWQ
      XJXKXRWOXJGWHGBXJQZAWHTNZXIABDEFULZRXTXNXIGBVEZAYCXIGBVIVJSVKVLXJWITNZWOT
      NWJTNZWJLVEZPZXSWQVMAYDXIAYAYDYBWHVNORXJWLWNCXJLWKUPXJXDPBWMXJXMXDXNSXDXF
      XJXGRULUMAXIYGAXMXIYGUDEXMXIYGXMXIPZYEYFXMYEXIBVNSYHBGXMXIVOYHQXIXOXMXPRV
      PVQVSOVTWIWOWJWAWBWCWDWEVSWF $.
  $}

  ${
    $d j k n A $.  $d j k F $.  $d j k M $.  $d j k ph $.
    geolim.1 $e |- ( ph -> A e. CC ) $.
    geolim.2 $e |- ( ph -> ( abs ` A ) < 1 ) $.
    ${
      geolim.3 $e |- ( ( ph /\ k e. NN0 ) -> ( F ` k ) = ( A ^ k ) ) $.
      $( The partial sums in the infinite series ` 1 + A ^ 1 + A ^ 2 ` ...
         converge to ` ( 1 / ( 1 - A ) ) ` .  (Contributed by NM,
         15-May-2006.) $)
      geolim $p |- ( ph -> seq 0 ( + , F ) ~~> ( 1 / ( 1 - A ) ) ) $=
        ( vn cc0 c1 cmin co cdiv cn0 cexp cmul cc wcel cfv wceq vj caddc cli cv
        cseq cmpt cvv nn0uz 0zd expcnv subcl sylancr wne cabs clt wbr 1re ltnri
        ax-1cn fveq2 abs1 syl6eq breq1d mtbiri necon2ai syl necomd wb necon3bid
        subeq0 mpbird divcld nn0ex mptex a1i oveq2 eqid ovex fvmpt adantl expcl
        wa sylan eqeltrd expp1 adantr mulcomd eqtrd oveq1d div23d oveq1 3eqtr4d
        oveq2d climmulc2 mul01d breqtrd reccld seqex peano2nn0 syl2an cfz nn0cn
        pncan sylancl sumeq1d divsubdird geoser simpll elfznn0 syl2anc syl6eleq
        csu cuz simpr expcld fsumser 3eqtr3rd climsubc2 subid1d ) AUBDIUEZJJBKL
        ZMLZIKLYBUCAIYBUAHNBHUDZJUBLZOLZYAMLZUFZXTIUGNUHAUIZAYGBYAMLZIPLIUCAIYI
        UAHNBYCOLZUFZYGIUGNUHYHABHEFUJABYAEAJQRZBQRZYAQRZUSEJBUKULZAYAIUMZJBUMA
        BJABUNSZJUOUPZBJUMZFYRBJBJTZYRJJUOUPJUQURYTYQJJUOYTYQJUNSJBJUNUTVAVBVCV
        DVEVFZVGAYAIJBAYLYMYAITJBTVHUSEJBVJULVIVKZVLZYGUGRAHNYFVMVNVOAUAUDZNRZW
        BZUUDYKSZBUUDOLZQUUEUUGUUHTAHUUDYJUUHNYKYCUUDBOVPYKVQBUUDOVRVSVTZAYMUUE
        UUHQREBUUDWAWCZWDUUFBUUDJUBLZOLZYAMLZYIUUHPLZUUDYGSZYIUUGPLUUFUUMBUUHPL
        ZYAMLUUNUUFUULUUPYAMUUFUULUUHBPLZUUPAYMUUEUULUUQTEBUUDWEWCUUFUUHBUUJAYM
        UUEEWFZWGWHWIUUFBUUHYAUURUUJAYNUUEYOWFZAYPUUEUUBWFZWJWHUUEUUOUUMTAHUUDY
        FUUMNYGYCUUDTZYEUULYAMUVAYDUUKBOYCUUDJUBWKWMWIYGVQUULYAMVRVSVTZUUFUUGUU
        HYIPUUIWMWLWNAYIUUCWOWPAYAYOUUBWQZXTUGRAUBDIWRVOUUFUUOUUMQUVBUUFUULYAAY
        MUUKNRZUULQRUUEEUUDWSZBUUKWAWTZUUSUUTVLWDUUFIUUKJKLZXALZBCUDZOLZCXLZIUU
        DXALZUVJCXLYBUUOKLZUUDXTSUUFUVHUVLUVJCUUFUVGUUDIXAUUFUUDQRZYLUVGUUDTUUE
        UVNAUUDXBVTUSUUDJXCXDWMXEUUFJUULKLYAMLYBUUMKLUVKUVMUUFJUULYAYLUUFUSVOUV
        FUUSUUTXFUUFBCUUKUURAYSUUEUUAWFUUEUVDAUVEVTXGUUFUUOUUMYBKUVBWMWLUUFUVJC
        DIUUDUUFUVIUVLRZWBZAUVINRZUVIDSUVJTAUUEUVOXHZUVOUVQUUFUVIUUDXIVTZGXJUUF
        UUDNIXMSAUUEXNUHXKUVPBUVIUVPAYMUVREVFUVSXOXPXQXRAYBUVCXSWP $.
    $}

    geolim2.3 $e |- ( ph -> M e. NN0 ) $.
    geolim2.4 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( F ` k ) = ( A ^ k ) ) $.
    $( The partial sums in the geometric series ` A ^ M + A ^ ( M + 1 ) ` ...
       converge to ` ( ( A ^ M ) / ( 1 - A ) ) ` .  (Contributed by NM,
       6-Jun-2006.)  (Revised by Mario Carneiro, 26-Apr-2014.) $)
    geolim2 $p |- ( ph -> seq M ( + , F ) ~~> ( ( A ^ M ) / ( 1 - A ) ) ) $=
      ( caddc cfv cexp co c1 cmin cdiv wcel cc cn0 cc0 vn cseq cuz csu cli eqid
      vj cv nn0zd wa adantr eluznn0 sylan expcld cmpt cdm wceq oveq2 ovex fvmpt
      syl eqtr4d seqfeq wbr adantl geolim seqex breldm nn0uz expcl iserex mpbid
      eqeltrd eqeltrrd isumclim2 cfz isumsplit 0zd isumclim eqtr3d cabs clt wne
      ltnri fveq2 abs1 syl6eq breq1d mtbiri necon2ai geoser oveq1d ax-1cn subcl
      1re sylancr necomd subeq0 necon3bid mpbird divsubdird nncan divcld isumcl
      1cnd wb pncan2d 3eqtr3rd breqtrd ) AJDEUBZEUCKZBCUHZLMZCUDZBELMZNBOMZPMZU
      EAXMCDEXKXKUFZAEHUIZIAXLXKQZUJZBXLABRQZXTFUKAESQXTXLSQZHXLEULUMZUNZAJUASB
      UAUHZLMZUOZEUBZXJUEUPZAJCYHDEXSYAXLYHKZXMXLDKYAYCYKXMUQZYDUAXLYGXMSYHYFXL
      BLURYHUFZBXLLUSUTZVAZIVBVCAJYHTUBZYJQZYIYJQAYPNXPPMZUEVDYQABUGYHFGUGUHZSQ
      ZYSYHKZBYSLMZUQAUAYSYGUUBSYHYFYSBLURYMBYSLUSUTVEZVFZYPYRUEJYHTVGNXPPUSVHV
      AZAUGYHTESVIHAYTUJUUAUUBRUUCAYBYTUUBRQFBYSVJUMVMVKVLZVNVOAYRNXOOMZXPPMZOM
      ZUUHXNJMZUUHOMXQXNAYRUUJUUHOATENOMVPMXMCUDZXNJMZYRUUJASXMCUDUULYRAXMCYHTE
      XKSVIXRHYCYLAYNVEZAYBYCXMRQFBXLVJUMZUUEVQAXMYRCYHTSVIAVRUUMUUNUUDVSVTAUUK
      UUHXNJABCEFABWAKZNWBVDZBNWCGUUPBNBNUQZUUPNNWBVDNWOWDUUQUUONNWBUUQUUONWAKN
      BNWAWEWFWGWHWIWJVAZHWKWLVTWLANUUGOMZXPPMUUIXQANUUGXPAXEANRQZXORQZUUGRQWMA
      BEFHUNZNXOWNWPZAUUTYBXPRQWMFNBWNWPZAXPTWCNBWCABNUURWQAXPTNBAUUTYBXPTUQNBU
      QXFWMFNBWRWPWSWTZXAAUUSXOXPPAUUTUVAUUSXOUQWMUVBNXOXBWPWLVTAUUHXNAUUGXPUVC
      UVDUVEXCAXMCYHEXKXRXSYOYEUUFXDXGXHXI $.
  $}

  ${
    $d k A $.  $d k F $.  $d k ph $.
    georeclim.1 $e |- ( ph -> A e. CC ) $.
    georeclim.2 $e |- ( ph -> 1 < ( abs ` A ) ) $.
    georeclim.3 $e |- ( ( ph /\ k e. NN0 ) ->
                        ( F ` k ) = ( ( 1 / A ) ^ k ) ) $.
    $( The limit of a geometric series of reciprocals.  (Contributed by Paul
       Chapman, 28-Dec-2007.)  (Revised by Mario Carneiro, 26-Apr-2014.) $)
    georeclim $p |- ( ph -> seq 0 ( + , F ) ~~> ( A / ( A - 1 ) ) ) $=
      ( cc0 c1 cdiv co cmin cabs cfv clt wbr wne wceq syl6eq cc cseq cli cle wn
      caddc 0le1 0re 1re lenlti mpbi fveq2 abs0 breq2d mtbiri necon2ai syl 1cnd
      reccld absdivd abs1 oveq1i recgt1d mpbid eqbrtrd geolim divsubdird dividd
      absrpcld oveq1d eqtrd oveq2d wcel ax-1cn subcl sylancl ltnri wb necon3bid
      subeq0 mpbird recdivd eqtr3d breqtrd ) AUEDHUAIIIBJKZLKZJKZBBILKZJKZUBAWD
      CDABEAIBMNZOPZBHQFWJBHBHRZWJIHOPZHIUCPWLUDUFHIUGUHUIUJWKWIHIOWKWIHMNHBHMU
      KULSUMUNUOUPZURAWDMNZIWIJKZIOAWNIMNZWIJKWOAIBAUQZEWMUSWPIWIJUTVASAWJWOIOP
      FAWIABEWMVHVBVCVDGVEAIWGBJKZJKWFWHAWRWEIJAWRBBJKZWDLKWEABIBEWQEWMVFAWSIWD
      LABEWMVGVIVJVKAWGBABTVLZITVLZWGTVLEVMBIVNVOEAWGHQBIQZAWJXBFWJBIBIRZWJIIOP
      IUHVPXCWIIIOXCWIWPIBIMUKUTSUMUNUOUPAWGHBIAWTXAWGHRXCVQEVMBIVSVOVRVTWMWAWB
      WC $.
  $}

  ${
    $d j k A $.  $d j k N $.
    $( The value of the finite geometric series ` 2 ^ -u 1 + 2 ^ -u 2 + ` ...
       ` + 2 ^ -u N ` , multiplied by a constant.  (Contributed by Mario
       Carneiro, 17-Mar-2014.)  (Revised by Mario Carneiro, 26-Apr-2014.) $)
    geo2sum $p |- ( ( N e. NN /\ A e. CC ) ->
                    sum_ k e. ( 1 ... N ) ( A / ( 2 ^ k ) ) =
                                 ( A - ( A / ( 2 ^ N ) ) ) ) $=
      ( vj cn wcel cc c1 cfz co cexp cdiv csu cmin cc0 cmul adantl sylancr a1i
      c2 wa cv caddc 1zzd nnz adantr simplr cn0 2nn elfznn nnnn0d nnexpcl nncnd
      cz nnne0d divcld wceq oveq2 oveq2d fsumshftm 1m1e0 oveq1i sumeq1i elfznn0
      halfcn expcl 2cnd wne divrecd elfzelz peano2zd exprecd 3eqtr2rd peano2nn0
      expp1 syl div12d 3eqtr4d sumeq2dv fzfid halfcl fsummulc1 eqtr4d 1mhlfehlf
      2ne0 syl5eq oveq12d simpr divrec2d nnnn0 nnrecred recnd subcl 0re halfgt0
      ax-1cn gtneii mulassd divcan1d oveq1d 3eqtr2d halfre ltneii geoser mulid2
      halflt1 eqcomd subdird 3eqtrd ) CEFZAGFZUAZHCIJZATBUBZKJZLJZBMHHNJZCHNJZI
      JZATDUBZHUCJZKJZLJZDMZOXRIJZHTLJZXTKJZDMZATLJZPJZAATCKJZLJZNJZXLXPYCBDHHC
      XLUDZYNXJCUNFXKCUEUFZXLXNXMFZUAZAXOXJXKYPUGYQXOYQTEFZXNUHFXOEFUIYQXNYPXNE
      FXLXNCUJQUKTXNULRZUMYQXOYSUOUPXNYAUQXOYBALXNYATKURUSUTXLYDYEYCDMZYJXSYEYC
      DXQOXRIVAVBVCXLYTYEYGYIPJZDMYJXLYEYCUUADXLXTYEFZUAZAHYBLJZPJAYGTLJZPJYCUU
      AUUCUUDUUEAPUUCUUEYGYFPJZYFYAKJZUUDUUCYGTUUCYFGFZXTUHFZYGGFVEUUBUUIXLXTXR
      VDQZYFXTVFRZUUCVGZTOVHZUUCWESZVIUUCUUHUUIUUGUUFUQVEUUJYFXTVORUUCTYAUULUUN
      UUBYAUNFXLUUBXTXTOXRVJVKQVLVMUSUUCAYBXJXKUUBUGZUUCYBUUCYRYAUHFZYBEFUIUUCU
      UIUUPUUJXTVNVPTYAULRZUMUUCYBUUQUOVIUUCYGATUUKUUOUULUUNVQVRVSXLYEYGYIDXLOX
      RVTXKYIGFXJAWAQUUKWBWCWFXLHYFCKJZNJZHYFNJZLJZYIPJZHHYKLJZNJZAPJZYJYMXLUVB
      UVDYFLJZYFAPJZPJUVFYFPJZAPJUVEXLUVAUVFYIUVGPXLUUSUVDUUTYFLXLUURUVCHNXLTCX
      LVGZUUMXLWESZYOVLUSUUTYFUQXLWDSWGXLATXJXKWHZUVIUVJWIWGXLUVFYFAXLUVDYFXLHG
      FZUVCGFUVDGFWPXLUVCXLYKXLYRCUHFZYKEFUIXJUVMXKCWJUFZTCULRZWKWLZHUVCWMRZUUH
      XLVESZYFOVHXLOYFWNWOWQSZUPUVRUVKWRXLUVHUVDAPXLUVDYFUVQUVRUVSWSWTXAXLYHUVA
      YIPXLYFDCUVRYFHVHXLYFHXBXFXCSUVNXDWTXLYMHAPJZUVCAPJZNJUVEXLAUVTYLUWANXLUV
      TAXKUVTAUQXJAXEQXGXLAYKUVKXLYKUVOUMXLYKUVOUOWIWGXLHUVCAUVLXLWPSUVPUVKXHWC
      VRXI $.
  $}

  ${
    $d k N $.
    $( The value of the finite geometric series ` 1 + 2 + 4 + 8 + ` ...
       ` + 2 ^ ( N - 1 ) ` .  (Contributed by Mario Carneiro, 7-Sep-2016.) $)
    geo2sum2 $p |- ( N e. NN0 ->
                    sum_ k e. ( 0 ..^ N ) ( 2 ^ k ) = ( ( 2 ^ N ) - 1 ) ) $=
      ( cn0 wcel cc0 cfzo co c2 cexp csu cmin cdiv wceq 2cn a1i wne cneg ax-1cn
      c1 cc cv cfz cz nn0z fzoval syl sumeq1d 1ne2 necomi geoser expcld ax-1ne0
      subcld div2negd negsubdi2d 2m1e1 negeqi negsubdi2i eqtr3i oveq12d 3eqtr3d
      id div1d 3eqtrd ) BCDZEBFGZHAUAIGZAJEBSKGUBGZVGAJSHBIGZKGZSHKGZLGZVISKGZV
      EVFVHVGAVEBUCDVFVHMBUDEBUEUFUGVEHABHTDVENOZHSPVESHUHUIOVEVBZUJVEVMQZSQZLG
      VMSLGVLVMVEVMSVEVISVEHBVNVOUKZSTDVEROZUMZVSSEPVEULOUNVEVPVJVQVKLVEVISVRVS
      UOVQVKMVEHSKGZQVQVKWASUPUQHSNRURUSOUTVEVMVTVCVAVD $.
  $}

  ${
    $d j k n A $.  $d j n F $.
    geo2lim.1 $e |- F = ( k e. NN |-> ( A / ( 2 ^ k ) ) ) $.
    $( The value of the infinite geometric series
       ` 2 ^ -u 1 + 2 ^ -u 2 + ` ... , multiplied by a constant.  (Contributed
       by Mario Carneiro, 15-Jun-2014.) $)
    geo2lim $p |- ( A e. CC -> seq 1 ( + , F ) ~~> A ) $=
      ( vn cc wcel c1 cc0 cmin co cvv cn cmul cn0 c2 cdiv cexp cfv wceq vj cseq
      caddc cli nnuz 1zzd cv cmpt halfcn a1i cabs clt wbr cr cle halfre halfgt0
      0re ltleii absid mp2an halflt1 eqbrtri expcnv id nnex mptex eqeltri nnnn0
      wa adantl oveq2 eqid ovex fvmpt syl nnz wne 2cn 2ne0 exprec mp3an12 eqtrd
      cz 2nn nnexpcl sylancr nnrecred recnd eqeltrd simpl nnne0d divrecd oveq2d
      nncnd 3eqtr4d climmulc2 mul01 breqtrd seqex divcld cfz csu geo2sum ancoms
      elfznn cuz simpr syl6eleq simpll fsumser 3eqtr2rd climsubc2 subid1 ) AFGZ
      UCCHUBZAIJKAUDXOIAUACXPHLMUEXOUFZXOCAINKIUDXOIAUABOHPQKZBUGZRKZUHZCHLMUEX
      QXOXRBXRFGXOUIUJXRUKSZHULUMXOYBXRHULXRUNGIXRUOUMYBXRTUPIXRURUPUQUSXRUTVAV
      BVCUJVDXOVEZCLGXOCBMAPXSRKZQKZUHLDBMYEVFVGVHUJXOUAUGZMGZVJZYFYASZHPYFRKZQ
      KZFYHYIXRYFRKZYKYHYFOGZYIYLTYGYMXOYFVIVKZBYFXTYLOYAXSYFXRRVLYAVMXRYFRVNVO
      VPYHYFWDGZYLYKTZYGYOXOYFVQVKPFGPIVRYOYPVSVTPYFWAWBVPWCZYHYKYHYJYHPMGZYMYJ
      MGWEYNPYFWFWGZWHWIWJYHAYJQKZAYKNKYFCSZAYINKYHAYJXOYGWKZYHYJYSWOZYHYJYSWLZ
      WMYGUUAYTTXOBYFYEYTMCXSYFTYDYJAQXSYFPRVLWNDAYJQVNVOVKZYHYIYKANYQWNWPWQAWR
      WSYCXPLGXOUCCHWTUJYHUUAYTFUUEYHAYJUUBUUCUUDXAWJYHAUUAJKAYTJKZHYFXBKZAPEUG
      ZRKZQKZEXCZYFXPSYHUUAYTAJUUEWNYGXOUUKUUFTAEYFXDXEYHUUJECHYFYHUUHUUGGZVJZU
      UHMGZUUHCSUUJTUULUUNYHUUHYFXFVKZBUUHYEUUJMCXSUUHTYDUUIAQXSUUHPRVLWNDAUUIQ
      VNVOVPYHYFMHXGSXOYGXHUEXIUUMAUUIXOYGUULXJUUMUUIUUMUUNUUIMGZUUOUUNYRUUHOGU
      UPWEUUHVIPUUHWFWGVPZWOUUMUUIUUQWLXAXKXLXMAXNWS $.
  $}

  ${
    $d k m n A $.  $d m n F $.
    geomulcvg.1 $e |- F = ( k e. NN0 |-> ( k x. ( A ^ k ) ) ) $.
    $( The geometric series converges even if it is multiplied by ` k ` to
       result in the larger series ` k x. A ^ k ` .  (Contributed by Mario
       Carneiro, 27-Mar-2015.) $)
    geomulcvg $p |- ( ( A e. CC /\ ( abs ` A ) < 1 ) ->
      seq 0 ( + , F ) e. dom ~~> ) $=
      ( cc wcel cabs cfv c1 clt wbr wa cc0 cn0 cexp co cmul adantl cr adantr vn
      vm caddc cseq cli cdm wceq cuz csn cxp cmpt cv cn elnn0 simpr oveq1d 0exp
      wo sylan9eq oveq2d nncn mul01d simplll 0nn0 syl6eqel expcld mul02d jaodan
      eqtrd sylan2b mpteq2dva syl5eq fconstmpt nn0uz xpeq1i eqtr3i syl6eq cz 0z
      seqeq3d serclim0 ax-mp syl6eqbr seqex c0ex breldm syl cdiv wral wrex 1red
      wne abscl peano2re rehalfcld crp absrpcl adantlr rerpdivcld recnd mulid2d
      c2 wb 1re avglt1 sylancl mpbid eqbrtrd ltmuldivd expmulnbnd syl3anc nn0cn
      eluznn0 ad2antrr rpne0d expdivd breq12d nn0re reexpcl sylan rpgt0d expgt0
      ltmuldiv syl112anc bitr4d sylan2 anassrs ralbidva wi oveq2 fvmpt reexpcld
      nn0z ovex eqeltrd oveq12d cle ltled absidd 3brtr4d simprl id simpll expcl
      eqid mulcld cmin 0red absge0 lelttrd avglt2 geolim nn0red abscld remulcld
      syldan simprr rspccva nn0cnd absmuld nn0ge0d absexpd fveq2d cvgcmpce expr
      sylbid rexlimdva mpd pm2.61dane ) AEFZAGHZIJKZLZUCCMUDZUEUFZFZAMUVMAMUGZL
      ZUVNMUEKUVPUVRUVNUCMUHHZMUIZUJZMUDZMUEUVRCUWAUCMUVRCBNMUKZUWAUVRCBNBULZAU
      WDOPZQPZUKUWCDUVRBNUWFMUWDNFZUVRUWDUMFZUWDMUGZURUWFMUGZUWDUNUVRUWHUWJUWIU
      VRUWHLZUWFUWDMQPMUWKUWEMUWDQUVRUWHUWEMUWDOPMUVRAMUWDOUVMUVQUOUPUWDUQUSUTU
      WKUWDUWHUWDEFZUVRUWDVARVBVIUVRUWILZUWFMUWEQPMUWMUWDMUWEQUVRUWIUOZUPUWMUWE
      UWMAUWDUVJUVLUVQUWIVCUWMUWDMNUWNVDVEVFVGVIVHVJVKVLNUVTUJUWCUWABNMVMNUVSUV
      TVNVOVPVQVTMVRFUWBMUEKVSMWAWBWCUVNMUEUCCMWDWEWFWGUVMAMWLZLZIUWDQPZUVKIUCP
      ZXBWHPZUVKWHPZUWDOPZJKZBUAULZUHHZWIZUANWJZUVPUWPISFZUWTSFIUWTJKZUXFUWPWKZ
      UWPUWSUVKUVMUWSSFZUWOUVMUWRUVMUVKSFZUWRSFUVJUXKUVLAWMTZUVKWNWGWOZTZUVJUWO
      UVKWPFZUVLAWQWRZWSUWPIUVKQPZUWSJKZUXHUVMUXRUWOUVMUXQUVKUWSJUVMUVKUVMUVKUX
      LWTZXAUVMUVLUVKUWSJKZUVJUVLUOZUVMUXKUXGUVLUXTXCUXLXDUVKIXEXFXGZXHTUWPIUWS
      UVKUXIUXNUXPXIXGIUWTUABXJXKUWPUXEUVPUANUWPUXCNFZLZUXEUWDUVKUWDOPZQPZUWSUW
      DOPZJKZBUXDWIZUVPUYDUXBUYHBUXDUWPUYCUWDUXDFZUXBUYHXCZUYCUYJLUWPUWGUYKUWDU
      XCXMUWPUWGLZUXBUWDUYGUYEWHPZJKZUYHUYLUWQUWDUXAUYMJUYLUWDUWGUWLUWPUWDXLRXA
      UYLUWSUVKUWDUVMUWSEFUWOUWGUVMUWSUXMWTZXNUVMUVKEFUWOUWGUXSXNUYLUVKUWPUXOUW
      GUXPTZXOUWPUWGUOXPXQUYLUWDSFZUYGSFZUYESFZMUYEJKZUYHUYNXCUWGUYQUWPUWDXRRUW
      PUXJUWGUYRUXNUWSUWDXSXTUWPUXKUWGUYSUVMUXKUWOUXLTZUVKUWDXSXTUYLUXKUWDVRFZM
      UVKJKUYTUWPUXKUWGVUATUWGVUBUWPUWDYMRUYLUVKUYPYAUVKUWDYBXKUWDUYGUYEYCYDYEY
      FYGYHUVMUYCUYIUVPYIUWOUVMUYCUYIUVPUVMUYCUYILZLZIUBBNUYGUKZCMUXCNVNUVMUYCU
      YIUUAZVUDUBULZNFZLZVUGVUEHZUWSVUGOPZSVUHVUJVUKUGZVUDBVUGUYGVUKNVUEUWDVUGU
      WSOYJZVUEUUEZUWSVUGOYNYKZRVUIUWSVUGUVMUXJVUCVUHUXMXNVUDVUHUOYLZYOVUIVUGCH
      ZVUGAVUGOPZQPZEVUHVUQVUSUGZVUDBVUGUWFVUSNCUWDVUGUGZUWDVUGUWEVURQVVAUUBZUW
      DVUGAOYJYPDVUGVURQYNYKZRVUIVUGVURVUHVUGEFVUDVUGXLRVUDUVJVUHVUREFUVJUVLVUC
      UUCAVUGUUDXTUUFYOUVMUCVUEMUDZUVOFZVUCUVMVVDIIUWSUUGPZWHPZUEKVVEUVMUWSUAVU
      EUYOUVMUWSGHUWSIJUVMUWSUXMUVMMUWSUVMUUHZUXMUVMMUVKUWSVVHUXLUXMUVJMUVKYQKU
      VLAUUITUYBUUJYRYSUVMUVLUWSIJKZUYAUVMUXKUXGUVLVVIXCUXLXDUVKIUUKXFXGXHUYCUX
      CVUEHUWSUXCOPZUGUVMBUXCUYGVVJNVUEUWDUXCUWSOYJVUNUWSUXCOYNYKRUULVVDVVGUEUC
      VUEMWDIVVFWHYNWFWGTVUDWKVUDVUGUXDFZLZVUSGHZIVUKQPZVUQGHIVUJQPYQVVLVUGUVKV
      UGOPZQPZVUKVVMVVNYQVVLVVPVUKVVLVUGVVOVVLVUGVUDUYCVVKVUHVUFVUGUXCXMXTZUUMZ
      VVLUVKVUGVVLAUVJUVLVUCVVKVCZUUNVVQYLUUOVUDVVKVUHVUKSFVVQVUPUUPZVUDUYIVVKV
      VPVUKJKZUVMUYCUYIUUQUYHVWABVUGUXDVVAUYFVVPUYGVUKJVVAUWDVUGUYEVVOQVVBUWDVU
      GUVKOYJYPVUMXQUURXTYRVVLVVMVUGGHZVURGHZQPVVPVVLVUGVURVVLVUGVVQUUSVVLAVUGV
      VSVVQVFUUTVVLVWBVUGVWCVVOQVVLVUGVVRVVLVUGVVQUVAYSVVLAVUGVVSVVQUVBYPVIVVLV
      UKVVLVUKVVTWTXAYTVVLVUQVUSGVVLVUHVUTVVQVVCWGUVCVVLVUJVUKIQVVLVUHVULVVQVUO
      WGUTYTUVDUVEWRUVFUVGUVHUVI $.
  $}

  ${
    $d k n A $.  $d k n R $.
    $( The infinite sum of ` 1 + A ^ 1 + A ^ 2 ` ... is ` ( 1 / ( 1 - A ) ) ` .
       (Contributed by NM, 15-May-2006.)  (Revised by Mario Carneiro,
       26-Apr-2014.) $)
    geoisum $p |- ( ( A e. CC /\ ( abs ` A ) < 1 ) ->
                  sum_ k e. NN0 ( A ^ k ) = ( 1 / ( 1 - A ) ) ) $=
      ( vn cc wcel cabs cfv c1 clt wbr wa cv cexp cmin cdiv cn0 cmpt cc0 nn0uz
      co 0zd wceq oveq2 eqid ovex fvmpt adantl expcl adantlr simpl simpr geolim
      isumclim ) ADEZAFGHIJZKZABLZMTZHHANTOTBCPACLZMTZQZRPSUPUAUQPEZUQVAGURUBUP
      CUQUTURPVAUSUQAMUCVAUDAUQMUEUFUGZUNVBURDEUOAUQUHUIUPABVAUNUOUJUNUOUKVCULU
      M $.

    $( The infinite sum of reciprocals
       ` 1 + ( 1 / A ) ^ 1 + ( 1 / A ) ^ 2 ` ... is ` A / ( A - 1 ) ` .
       (Contributed by rpenner, 3-Nov-2007.)  (Revised by Mario Carneiro,
       26-Apr-2014.) $)
    geoisumr $p |- ( ( A e. CC /\ 1 < ( abs ` A ) ) ->
              sum_ k e. NN0 ( ( 1 / A ) ^ k ) = ( A / ( A - 1 ) ) ) $=
      ( vn cc wcel c1 cabs cfv clt wbr wa cdiv co cexp cmin cn0 cmpt cc0 wceq
      cv nn0uz 0zd oveq2 eqid ovex fvmpt adantl wne cle wn 0le1 0re lenlti mpbi
      1re fveq2 abs0 syl6eq breq2d mtbiri necon2ai reccl sylan2 expcl georeclim
      sylan simpl simpr isumclim ) ADEZFAGHZIJZKZFALMZBTZNMZAAFOMLMBCPVNCTZNMZQ
      ZRPUAVMUBVOPEZVOVSHVPSVMCVOVRVPPVSVQVOVNNUCVSUDVNVONUEUFUGZVMVNDEZVTVPDEV
      LVJARUHWBVLARARSZVLFRIJZRFUIJWDUJUKRFULUOUMUNWCVKRFIWCVKRGHRARGUPUQURUSUT
      VAAVBVCVNVOVDVFVMABVSVJVLVGVJVLVHWAVEVI $.

    $( The infinite sum of ` A ^ 1 + A ^ 2 ` ... is ` ( A / ( 1 - A ) ) ` .
       (Contributed by NM, 1-Nov-2007.)  (Revised by Mario Carneiro,
       26-Apr-2014.) $)
    geoisum1 $p |- ( ( A e. CC /\ ( abs ` A ) < 1 ) ->
                  sum_ k e. NN ( A ^ k ) = ( A / ( 1 - A ) ) ) $=
      ( vn cc wcel cabs cfv c1 clt wbr wa cn cv cexp co csu cmin cdiv wceq cn0
      cmpt nnuz 1zzd oveq2 eqid ovex fvmpt adantl simpl nnnn0 expcl syl2an 1nn0
      simpr a1i cuz elnnuz sylan2br geolim2 isumclim exp1 adantr oveq1d eqtrd )
      ADEZAFGHIJZKZLABMZNOZBPAHNOZHAQOZROZAVKROVGVIVLBCLACMZNOZUAZHLUBVGUCVHLEZ
      VHVOGVISZVGCVHVNVILVOVMVHANUDVOUEAVHNUFUGUHZVGVEVHTEVIDEVPVEVFUIZVHUJAVHU
      KULVGABVOHVSVEVFUNHTEVGUMUOVHHUPGEVGVPVQVHUQVRURUSUTVGVJAVKRVEVJASVFAVAVB
      VCVD $.

    $( The infinite sum of ` A x. ( R ^ 1 ) + A x. ( R ^ 2 ) ` ... is
       ` ( A x. R ) / ( 1 - R ) ` .  (Contributed by NM, 2-Nov-2007.)  (Revised
       by Mario Carneiro, 26-Apr-2014.) $)
    geoisum1c $p |- ( ( A e. CC /\ R e. CC /\ ( abs ` R ) < 1 ) ->
          sum_ k e. NN ( A x. ( R ^ k ) ) = ( ( A x. R ) / ( 1 - R ) ) ) $=
      ( vn cc wcel cabs cfv c1 clt wbr cmul co cdiv cn cv cexp csu wceq cli w3a
      cmin simp1 simp2 subcl sylancr cc0 wne simp3 1re ltnri abs1 fveq2 syl5eqr
      ax-1cn breq1d mtbii necon2ai syl subeq0 necon3bid mpbird divassd geoisum1
      wb 3adant1 oveq2d cmpt nnuz 1zzd oveq2 eqid ovex fvmpt adantl nnnn0 expcl
      wa cn0 syl2an caddc cseq cdm a1i cuz elnnuz sylan2br geolim2 seqex breldm
      1nn0 isummulc2 3eqtr2rd ) AEFZBEFZBGHZIJKZUAZABLMIBUBMZNMABWSNMZLMAOBCPZQ
      MZCRZLMOAXBLMCRWRABWSWNWOWQUCZWNWOWQUDZWRIEFZWOWSEFUOXEIBUEUFWRWSUGUHZIBU
      HZWRWQXHWNWOWQUIZWQIBIBSZIIJKWQIUJUKXJIWPIJXJIIGHWPULIBGUMUNUPUQURUSWRXFW
      OXGXHVEUOXEXFWOVRWSUGIBIBUTVAUFVBVCWRXCWTALWOWQXCWTSWNBCVDVFVGWRXBACDOBDP
      ZQMZVHZIOVIWRVJXAOFZXAXMHXBSZWRDXAXLXBOXMXKXABQVKXMVLBXAQVMVNVOZWRWOXAVSF
      XBEFXNXEXAVPBXAVQVTWRWAXMIWBZBIQMZWSNMZTKXQTWCFWRBCXMIXEXIIVSFWRWKWDXAIWE
      HFWRXNXOXAWFXPWGWHXQXSTWAXMIWIXRWSNVMWJUSXDWLWM $.
  $}

  $( The recurring decimal 0.999..., which is defined as the infinite sum 0.9 +
     0.09 + 0.009 + ... i.e. ` 9 / 1 0 ^ 1 + 9 / 1 0 ^ 2 + 9 / 1 0 ^ 3 `
     ` + ... ` , is exactly equal to 1, according to ZF set theory.
     Interestingly, about 40% of the people responding to a poll at
     ~ http://forum.physorg.com/index.php?showtopic=13177 disagree.
     (Contributed by NM, 2-Nov-2007.)  (Revised by AV, 8-Sep-2021.) $)
  0.999... $p |- sum_ k e. NN ( 9 / ( ; 1 0 ^ k ) ) = 1 $=
    ( cn c9 c1 cc0 cexp co cdiv csu cmul wcel cc wceq 9cn 10re recni 10pos cmin
    clt wbr cdc cv wne cn0 nnnn0 expcl sylancr a1i gt0ne0ii nnz expne0d mp3an2i
    divrec exprecd oveq2d eqtr4d sumeq2i cabs cfv rereccli cle 0re ltleii ax-mp
    recgt0ii absidi 1lt10 cr recgt1 mp2an mpbi eqbrtri geoisum1c mp3an divcan2i
    wb divreci ax-1cn subdii mulid1i recidi oveq12i 10m1e9 3eqtrri 9re redivcli
    eqtri subcli mulcani 9pos divgt0ii dividi 3eqtr2i ) BCDEUAZAUBZFGZHGZAIBCDW
    NHGZWOFGZJGZAIZDBWQWTAWOBKZWQCDWPHGZJGZWTCLKZXBWPLKZWPEUCWQXDMNXBWNLKZWOUDK
    XFWNOPZWOUEWNWOUFUGXBWNWOXGXBXHUHZWNEUCXBWNOQUIZUHZWOUJZUKCWPUMULXBWSXCCJXB
    WNWOXIXKXLUNUOUPUQXACWRJGZDWRRGZHGZCWNHGZXPHGDXEWRLKWRURUSZDSTXAXOMNWRWNOXJ
    UTZPZXQWRDSEWRVATXQWRMEWRVBXRWNOQVEVCWRXRVFVDDWNSTZWRDSTZVGWNVHKEWNSTXTYAVP
    OQWNVIVJVKVLCWRAVMVNXPXMXPXNHCWNNXHXJVQWNXPJGZWNXNJGZMXPXNMYBCYCCWNNXHXJVOY
    CWNDJGZWNWRJGZRGWNDRGCWNDWRXHVRXSVSYDWNYEDRWNXHVTWNXHXJWAWBWCWDWGXPXNWNXPCW
    NWEOXJWFZPZDWRVRXSWHXHXJWIVKWBXPYGXPYFCWNWEOWJQWKUIWLWMWG $.

  $( Obsolete version of ~ 0.999... as of 8-Sep-2021.  (Contributed by NM,
     2-Nov-2007.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  0.999...OLD $p |- sum_ k e. NN ( 9 / ( 10 ^ k ) ) = 1 $=
    ( cn c9 c10 co cdiv c1 cmul wcel cc cc0 wceq 10reOLD recni 10posOLD 9cn clt
    cmin wbr ax-1cn cv csu wne cn0 nnnn0 expcl sylancr a1i gt0ne0ii nnz expne0d
    cexp divrec mp3an1 syl2anc exprecd oveq2d sumeq2i cabs cfv rereccli cle 0re
    eqtr4d recgt0ii ltleii absidi ax-mp 1lt10OLD cr recgt1 mp2an mpbi geoisum1c
    eqbrtri mp3an divreci divcan2i subdii mulid1i recidi oveq12i caddc df-10OLD
    addcomi eqtr4i subaddrii 3eqtrri eqtri 9re redivcli subcli mulcani divgt0ii
    wb 9pos dividi 3eqtr2i ) BCDAUAZULEZFEZAUBBCGDFEZWSULEZHEZAUBZGBXAXDAWSBIZX
    ACGWTFEZHEZXDXFWTJIZWTKUCZXAXHLZXFDJIZWSUDIXIDMNZWSUEDWSUFUGXFDWSXLXFXMUHZD
    KUCXFDMOUIZUHZWSUJZUKCJIZXIXJXKPCWTUMUNUOXFXCXGCHXFDWSXNXPXQUPUQVDURXECXBHE
    ZGXBREZFEZCDFEZYBFEGXRXBJIXBUSUTZGQSXEYALPXBDMXOVAZNZYCXBGQKXBVBSYCXBLKXBVC
    YDDMOVEVFXBYDVGVHGDQSZXBGQSZVIDVJIKDQSYFYGWOMODVKVLVMVOCXBAVNVPYBXSYBXTFCDP
    XMXOVQDYBHEZDXTHEZLYBXTLYHCYICDPXMXOVRYIDGHEZDXBHEZREDGRECDGXBXMTYEVSYJDYKG
    RDXMVTDXMXOWAWBDGCXMTPGCWCECGWCEDGCTPWEWDWFWGWHWIYBXTDYBCDWJMXOWKZNZGXBTYEW
    LXMXOWMVMWBYBYMYBYLCDWJMWPOWNUIWQWRWI $.

  $( Prove that the infinite geometric series of 1/2, 1/2 + 1/4 + 1/8 + ... =
     1.  Uses ~ geoisum1 .  This is a representation of .111... in binary with
     an infinite number of 1's.  Theorem ~ 0.999... proves a similar claim for
     .999... in base 10.  (Contributed by David A. Wheeler, 4-Jan-2017.) $)
  geoihalfsum $p |- sum_ k e. NN ( 1 / ( 2 ^ k ) ) = 1 $=
    ( cn c1 c2 cdiv co cexp csu wcel cc 2cn a1i cc0 2ne0 clt wbr wceq halfcn cr
    cle cv wne nnz exprecd sumeq2i cmin cabs cfv halfre 0le1 wb 1re 2pos ge0div
    2re mp3an mpbi absid mp2an halflt1 eqbrtri geoisum1 1mhlfehlf oveq2i ax-1cn
    ax-1ne0 divne0i dividi 3eqtri eqtr3i ) BCDEFZAUAZGFZAHZBCDVLGFEFZAHCBVMVOAV
    LBIZDVLDJIVPKLDMUBVPNLVLUCUDUEVNVKCVKUFFZEFZVKVKEFCVKJIVKUGUHZCOPVNVRQRVSVK
    COVKSIMVKTPZVSVKQUIMCTPZVTUJCSIDSIMDOPWAVTUKULUOUMCDUNUPUQVKURUSUTVAVKAVBUS
    VQVKVKEVCVDVKRCDVEKVFNVGVHVIVJ $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ratio test for infinite series convergence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d k n A $.  $d k n F $.  $d k M $.  $d k n N $.  $d k n ph $.  $d k n W $.
    $d k n Z $.
    cvgrat.1 $e |- Z = ( ZZ>= ` M ) $.
    cvgrat.2 $e |- W = ( ZZ>= ` N ) $.
    cvgrat.3 $e |- ( ph -> A e. RR ) $.
    cvgrat.4 $e |- ( ph -> A < 1 ) $.
    cvgrat.5 $e |- ( ph -> N e. Z ) $.
    cvgrat.6 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    cvgrat.7 $e |- ( ( ph /\ k e. W ) ->
               ( abs ` ( F ` ( k + 1 ) ) ) <_ ( A x. ( abs ` ( F ` k ) ) ) ) $.
    $( Ratio test for convergence of a complex infinite series.  If the ratio
       ` A ` of the absolute values of successive terms in an infinite sequence
       ` F ` is less than 1 for all terms beyond some index ` B ` , then the
       infinite sum of the terms of ` F ` converges to a complex number.
       Equivalent to first part of Exercise 4 of [Gleason] p. 182.
       (Contributed by NM, 26-Apr-2005.)  (Proof shortened by Mario Carneiro,
       27-Apr-2014.) $)
    cvgrat $p |- ( ph -> seq M ( + , F ) e. dom ~~> ) $=
      ( wcel cle co cexp cmul caddc cseq cli cdm cfv cabs cc0 wbr cif cmin cmpt
      vn cv cuz cz syl6eleq eluzelz syl uzid syl6eleqr wa wceq weq oveq1 oveq2d
      cr eqid ovex fvmpt adantl 0re ifcl sylancr adantr simpr uznn0sub reexpcld
      cn0 eqeltrd cc wss uzss 3sstr4g sselda syldan cshi oveq2 zcnd nn0ex mptex
      shftval syl2an 3eqtr4rd seqfeq seqshft syl2anc subidd seqeq1d oveq1d cdiv
      3eqtrd recnd clt max2 sylancl absidd 0lt1 breq1 ifboth eqbrtrd geolim cvv
      c1 wb seqex climshft mpbird breldm wral ralrimiva fveq2 eleq1d rspcv sylc
      abscld wi fveq2d breq12d imbi2d leidd exp0d mulid1d breqtrrd a1i remulcld
      eqtrd w3a lemul2a ex syl112anc mul12d expp1d eleq2s ax-1cn addsub syl2anr
      mp3an2 mulcomd breq2d sylibd peano2uzs sylan2 cbvralv sylib max1 lemul1ad
      absge0d letrd peano2uz letr syl3anc mpand syld expcom a2d uzind4 cvgcmpce
      impcom iserex ) AUADEUBUCUDZPUADFUBUVJPAFDUEZUFUEZCULGBUGQUHZUGBUIZULUMZF
      UJRZSRZUKZDFFGJAFFUNUEZGAFUOPZFUVSPAFEUNUEZPZUVTAFHUWAMIUPZEFUQURZFUSURJU
      TACUMZGPZVAZUWEUVRUEZUVNUWEFUJRZSRZVFUWFUWHUWJVBZAULUWEUVQUWJGUVRULCVCZUV
      PUWIUVNSUVOUWEFUJVDVEZUVRVGUVNUWISVHZVIZVJUWGUVNUWIAUVNVFPZUWFAUGVFPZBVFP
      ZUWPVKKUVMUGBVFVLVMZVNZUWGUWEUVSPZUWIVRPZUWGUWEGUVSAUWFVOJUPZFUWEVPZURZVQ
      ZVSAUWFUWEHPUWEDUEZVTPZAGHUWEAUVSUWAGHAUWBUVSUWAWAUWCEFWBURJIWCZWDNWEZAUA
      UVRFUBZUAULVRUVNUVOSRZUKZUGUBZFWFRZUVJAUXKUAUXMFWFRZFUBZUAUXMFFUJRZUBZFWF
      RZUXOAUACUVRUXPFUWDAUXAVAZUWIUXMUEZUWJUWEUXPUEZUWHUYAUXBUYBUWJVBUXAUXBAUX
      DVJULUWIUXLUWJVRUXMUVOUWIUVNSWGUXMVGZUWNVIURAFVTPZUWEVTPZUYCUYBVBUXAAFUWD
      WHZUXAUWEFUWEUQWHZFUWEUXMULVRUXLWIWJZWKWLUYAUWFUWKUYAUWEUVSGAUXAVOJUTZUWO
      URZWMWNAUVTUVTUXQUXTVBUWDUWDUAUXMFFUYIWOWPAUXSUXNFWFAUXRUGUAUXMAFUYGWQZWR
      WSXAAUXOXMXMUVNUJRZWTRZUCUHZUXOUVJPAUYOUXNUYNUCUHZAUVNCUXMAUVNUWSXBZAUVNU
      FUEUVNXMXCAUVNUWSAUWRUWQUGUVNQUHZKVKBUGXDXEZXFAUGXMXCUHZBXMXCUHZUVNXMXCUH
      ZXGLUVMUYTVUAVUBUGBUGUVNXMXCXHBUVNXMXCXHXIVMXJUWEVRPUWEUXMUEUVNUWESRZVBAU
      LUWEUXLVUCVRUXMUVOUWEUVNSWGUYDUVNUWESVHVIVJXKAUVTUXNXLPUYOUYPXNUWDUAUXMUG
      XOUYNUXNFXLXPXEXQUXOUYNUCUXNFWFVHXMUYMWTVHXRURVSAUVKAFHPUXHCHXSZUVKVTPZMA
      UXHCHNXTZUXHVUECFHUWEFVBUXGUVKVTUWEFDYAYBYCYDYEZUYAUXGUFUEZUVLUWJTRZUVLUW
      HTRQUXAAVUHVUIQUHZAUVODUEZUFUEZUVLUVQTRZQUHZYFAUVLUVLUVNUXRSRZTRZQUHZYFZA
      VUJYFZAUWEXMUARZDUEZUFUEZUVLUVNVUTFUJRZSRZTRZQUHZYFVUSULCFUWEUVOFVBZVUNVU
      QAVVGVULUVLVUMVUPQVVGVUKUVKUFUVOFDYAYGVVGUVQVUOUVLTVVGUVPUXRUVNSUVOFFUJVD
      VEVEYHYIUWLVUNVUJAUWLVULVUHVUMVUIQUWLVUKUXGUFUVOUWEDYAYGUWLUVQUWJUVLTUWMV
      EYHYIZUVOVUTVBZVUNVVFAVVIVULVVBVUMVVEQVVIVUKVVAUFUVOVUTDYAZYGVVIUVQVVDUVL
      TVVIUVPVVCUVNSUVOVUTFUJVDVEVEYHYIVVHVURUVTAUVLUVLVUPQAUVLVUGYJAVUPUVLXMTR
      UVLAVUOXMUVLTAVUOUVNUGSRXMAUXRUGUVNSUYLVEAUVNUYQYKYPVEAUVLAUVLVUGXBZYLYPY
      MYNUXAAVUJVVFAUXAVUJVVFYFZAUXAUWFVVLUYJUWGVUJUVNVUHTRZVVEQUHZVVFUWGVUJVVM
      UVNVUITRZQUHZVVNUWGVUHVFPZVUIVFPZUWPUYRVUJVVPYFUWGUXGUXJYEZUWGUVLUWJAUVLV
      FPUWFVUGVNZUXFYOUWTAUYRUWFUYSVNVVQVVRUWPUYRVAYQVUJVVPVUHVUIUVNYRYSYTUWGVV
      OVVEVVMQUWGVVOUVLUVNUWJTRZTRVVEUWGUVNUVLUWJAUVNVTPUWFUYQVNZAUVLVTPUWFVVKV
      NUWGUWJUXFXBZUUAUWGVWAVVDUVLTUWGUVNUWIXMUARZSRUWJUVNTRVVDVWAUWGUVNUWIVWBU
      XEUUBUWGVVCVWDUVNSUWFUYFUYEVVCVWDVBZAUYFUWEUVSGUYHJUUCUYGUYFXMVTPUYEVWEUU
      DUWEXMFUUEUUGUUFVEUWGUVNUWJVWBVWCUUHWMVEYPUUIUUJUWGVVBVVMQUHZVVNVVFUWGVVB
      BVUHTRVVMUWGVVAUWGVUTHPZVUKVTPZULHXSZVVAVTPZUWFAVUTGPVWGFUWEGJUUKAGHVUTUX
      IWDUULAVWIUWFAVUDVWIVUFUXHVWHCULHCULVCUXGVUKVTUWEUVODYAYBUUMUUNVNVWHVWJUL
      VUTHVVIVUKVVAVTVVJYBYCYDYEZUWGBVUHAUWRUWFKVNZVVSYOUWGUVNVUHUWTVVSYOZOUWGB
      UVNVUHVWLUWTVVSUWGUXGUXJUUQABUVNQUHZUWFAUWRUWQVWNKVKBUGUUOXEVNUUPUURUWGVV
      BVFPVVMVFPVVEVFPVWFVVNVAVVFYFVWKVWMUWGUVLVVDVVTUWGUVNVVCUWTUWGVUTUVSPZVVC
      VRPUWGUXAVWOUXCFUWEUUSURFVUTVPURVQYOVVBVVMVVEUUTUVAUVBUVCWEUVDUVEUVFUVHUY
      AUWHUWJUVLTUYKVEYMUVGACDEFHIMNUVIXQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Mertens' theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d j m n s t x y z B $.  $d i j k l m n s u y z G $.  $d j k m x y z ph $.
    $d k m n s t y A $.  $d j k m n s t y z E $.  $d i j k m n s t u y z K $.
    $d j m n u x y F $.  $d j k m n t y z ps $.  $d j k m n t w y z T $.
    $d k m x y H $.
    mertens.1 $e |- ( ( ph /\ j e. NN0 ) -> ( F ` j ) = A ) $.
    mertens.2 $e |- ( ( ph /\ j e. NN0 ) -> ( K ` j ) = ( abs ` A ) ) $.
    mertens.3 $e |- ( ( ph /\ j e. NN0 ) -> A e. CC ) $.
    mertens.4 $e |- ( ( ph /\ k e. NN0 ) -> ( G ` k ) = B ) $.
    mertens.5 $e |- ( ( ph /\ k e. NN0 ) -> B e. CC ) $.
    mertens.6 $e |- ( ( ph /\ k e. NN0 ) -> ( H ` k ) =
                      sum_ j e. ( 0 ... k ) ( A x. ( G ` ( k - j ) ) ) ) $.
    mertens.7 $e |- ( ph -> seq 0 ( + , K ) e. dom ~~> ) $.
    mertens.8 $e |- ( ph -> seq 0 ( + , G ) e. dom ~~> ) $.
    ${
      mertens.9 $e |- ( ph -> E e. RR+ ) $.
      mertens.10 $e |- T = { z | E. n e. ( 0 ... ( s - 1 ) ) z =
                        ( abs ` sum_ k e. ( ZZ>= ` ( n + 1 ) ) ( G ` k ) ) } $.
      mertens.11 $e |- ( ps <-> ( s e. NN /\ A. n e. ( ZZ>= ` s )
        ( abs ` sum_ k e. ( ZZ>= ` ( n + 1 ) ) ( G ` k ) ) <
          ( ( E / 2 ) / ( sum_ j e. NN0 ( K ` j ) + 1 ) ) ) ) $.
      ${
        mertens.12 $e |- ( ph -> ( ps /\ ( t e. NN0 /\ A. m e. ( ZZ>= ` t )
       ( K ` m ) < ( ( ( E / 2 ) / s ) / ( sup ( T , RR , < ) + 1 ) ) ) ) ) $.
        mertens.13 $e |- ( ph -> ( 0 <_ sup ( T , RR , < ) /\
          ( T C_ RR /\ T =/= (/) /\ E. z e. RR A. w e. T w <_ z ) ) ) $.
        $( Lemma for ~ mertens .  (Contributed by Mario Carneiro,
           29-Apr-2014.) $)
        mertenslem1 $p |- ( ph ->
        E. y e. NN0 A. m e. ( ZZ>= ` y ) ( abs ` sum_ j e. ( 0 ... m ) ( A x.
            sum_ k e. ( ZZ>= ` ( ( m - j ) + 1 ) ) B ) ) < E ) $=
          ( cv caddc co cn0 wcel cc0 cfz cmin c1 cuz cfv csu cmul cabs clt wral
          wbr wrex cdiv wa cr simpld simprd fzfid cc elfznn0 syl2an eqid adantl
          peano2nn0 nn0zd wceq simplll sylan syl2anc cseq ad2antrr nn0uz simpll
          syl eqeltrd mpbid isumcl abscld fsumrecl rpred adantr wss cle cz zred
          nn0red wb syl6eleq elfzelz eluz mpbird sselda remulcld syldan crp 0zd
          absge0d breqtrrd ge0p1rpd rerpdivcld rpdivcld jca fveq2d breq1d rspcv
          sumeq2dv eqbrtrrd ltled fsumle recnd rpcnd fveq2 oveq2i adantlr ltp1d
          sylc wne lelttrd syl3anc zcnd cen oveq1d cn c2 sylib nnnn0d nn0addcld
          csup simpl fznn0sub eluznn0 cli iserex mulcld fsumabs nn0ge0d eluzelz
          cdm fsumcl subge02d nnzd uzid uzaddcl uztrn2 sylanbrc fznn0sub2 fzss2
          elfzuzb fzss1 rphalfcld eqidd isumrecl isumge0 elfzle2 lesubd zsubcld
          ad2antlr oveq1 sumeq1d lemul2a syl31anc rpne0d divassd cbvsumv oveq1i
          peano2re syl5eqel fsummulc1 a1i sumeq2i 3eqtr3g eqtrd fz0ssnn0 ltmul1
          isumless rpregt0d ltdivmul c0 w3a suprcl nnrpd elfzuz eluzle peano2uz
          leaddsub2d uztrn syl2anr peano2zm 1cnd subsubd elfzle1 eqbrtrd subled
          elfz5 eqcomd eqeq2d rspcev eqeq1 rexbidv elab2 sylibr suprub lemul12a
          fvex wi syl22anc mp2and cfn fsumconst 1zzd fzen ax-1cn addcom sylancr
          chash pncan3d oveq12d breqtrd hashen hashfz1 eqtr3d rpcnne0d divcan2d
          divass nnne0d mulassd 3eqtr2rd 3eqtrd ltmul2dd ltdivmul2d lt2addd cin
          div23 absmuld fzdisj cun fzsplit fsumsplit 2halvesd 3brtr3d ralrimiva
          eqtr2d raleqdv ) ASUMZFUMZUNUOZUPUQURLUMZUSUOZGVVEJUMZUTUOZVAUNUOZVBV
[encoded data, 7120 characters]
          AUXOWG $.
      $}

      $d n s t ph $.
      $( Lemma for ~ mertens .  (Contributed by Mario Carneiro,
         28-Apr-2014.) $)
      mertenslem2 $p |- ( ph -> E. y e. NN0 A. m e. ( ZZ>= ` y )
        ( abs ` sum_ j e. ( 0 ... m ) ( A x.
          sum_ k e. ( ZZ>= ` ( ( m - j ) + 1 ) ) B ) ) < E ) $=
        ( vt vw cv caddc cc0 cseq cfv cn0 csu cmin co cabs c2 cdiv clt wbr wral
        c1 cuz cn wrex cfz cmul nnuz 1zzd rphalfcld nn0uz 0zd wcel eqidd abscld
        wa cr eqeltrd isumrecl cle absge0d breqtrrd ge0p1rpd rpdivcld isumclim2
        isumge0 climi2 wb eluznn cc nnnn0 syl2an isumcl adantr adantl peano2nn0
        eqid syl nn0zd wceq simpll eluznn0 sylan syl2anc adantlr iserex sumeq1d
        cli mpbid elfznn0 syl6eleq eqtrd oveq1d sumeq2dv fveq2d breq1d ralbidva
        weq oveq1 cbvralv crp simplll ad2antrr rexlimdva cfn fvex w3a a1i fveq2
        sylan2 fvmpt cvv adantll anbi2i sylbid mpd serf ffvelrn abssubd pncan2d
        wf cdm isumsplit nncn ax-1cn pncan sylancl oveq2d simpl fsumser 3eqtr4d
        anassrs syl6bb csup cmpt simplbi nnrpd cab wi eleq1a abssdv syl5eqss c0
        wne fzfid abrexfi syl5eqel nnm1nn0 eluzfz1 eqcomd syl6eq syl6eqr eqeq2d
        wss 0p1e1 rspcev eqeq1 rexbidv elab2 ne0i wor ltso fisupcl mpan syl3anc
        sylibr sseldd 0red 1nn0 fimaxre2 3jca suprub letrd nn0ex mptex sylan2br
        elnn0uz seqfeq recnd serf0 climi0 absidd eqeq12d rspccva syl6bbr biimpi
        ralrimiva jca mertenslem1 expr ex syl5bir expdimp ) AJUKZULNUMUNZUOZUPF
[encoded data, 4240 characters]
        YHYTUXOUXPUXQYSYHYT $.
    $}

    $d n s ph $.
    $( Mertens' theorem.  If ` A ( j ) ` is an absolutely convergent series and
       ` B ( k ) ` is convergent, then
       ` ( sum_ j e. NN0 A ( j ) x. sum_ k e. NN0 B ( k ) ) = `
       ` sum_ k e. NN0 sum_ j e. ( 0 ... k ) ( A ( j ) x. B ( k - j ) ) ` (and
       this latter series is convergent).  This latter sum is commonly known as
       the Cauchy product of the sequences.  The proof follows the outline at
~ http://en.wikipedia.org/wiki/Cauchy_product#Proof_of_Mertens.27_theorem .
       (Contributed by Mario Carneiro, 29-Apr-2014.) $)
    mertens $p |- ( ph -> seq 0 ( + , H ) ~~>
                    ( sum_ j e. NN0 A x. sum_ k e. NN0 B ) ) $=
      ( cn0 co wcel vx vy vm vn vi vs vu vz vl csu cmul caddc cfv cmpt cc0 cseq
      cv cvv nn0uz 0zd seqex a1i cc wa cfz cmin fzfid simpl elfznn0 syl2an wral
      fznn0sub adantl eqeltrd ralrimiva weq fveq2 eleq1d cbvralv sylib ad2antrr
      wceq rspcv sylc mulcld fsumcl serf ffvelrnda cabs clt wbr cuz wrex crp c1
      cn c2 cdiv cab adantlr cli cdm adantr simpr cbvsumv fveq2d sumeq1d syl5eq
      oveq1 eqeq2d cbvrexv rexbidv syl5bb cbvabv oveq1i oveq2i breq2i breq1d wb
      eqeq1 anbi2i eluznn0 simpll isumcl syl2anc eqid syl sylan oveq2d sumeq2dv
      simplll eqtr4d oveq1d eqtrd mulcomd oveq12d 3eqtr3rd ovex fvmpt fsumser
      mertenslem2 ad2antlr fsumsub subdid peano2nn0 nn0cnd ax-1cn pncan sylancl
      isumsplit nn0zd iserex mpbid pncan2d fsummulc2 syl6eleq anasss fsum0diag2
      sylan2 anassrs ralbidva rexbidva mpbird abscvgcvg isumclim2 rspccva 2clim
      isermulc2 breqtrd ) AUARBDUJZRCEUJZUKSZUBUCULUDRUVKUDUQZFUMZUKSZUNZUOUPZU
      LHUOUPZUOURRUSAUTZUVRURTAULHUOVAVBARVCUCUQZUVRAEHUORUSUVSAEUQZRTZVDZUWAHU
      MZUOUWAVESZBUWADUQZVFSZGUMZUKSZDUJZVCOUWCUWEUWIDUWCUOUWAVGUWCUWFUWETZVDZB
      UWHUWCAUWFRTZBVCTZUWKAUWBVHUWFUWAVILVJUWLUWGRTZUEUQZGUMZVCTZUERVKZUWHVCTZ
      UWKUWOUWCUWFUOUWAVLVMAUWSUWBUWKAUWAGUMZVCTZERVKUWSAUXBERUWCUXACVCMNVNZVOU
      XBUWREUEREUEVPUXAUWQVCUWAUWPGVQVRVSVTWAUWRUWTUEUWGRUWPUWGWBUWQUWHVCUWPUWG
      GVQVRWCWDWEWFZVNWGWHAUVTUVQUMZUVTUVRUMZVFSZWIUMZUAUQZWJWKZUCUBUQZWLUMZVKZ
      UBRWMZUAWNAUXIWNTZVDZUXNUOUVTVESZBUVTUWFVFSZWOULSZWLUMZCEUJZUKSZDUJZWIUMZ
      UXIWJWKZUCUXLVKZUBRWMZUXPUFUQZWPTZUGUQZWOULSZWLUMZUWQUEUJZWIUMZUXIWQWRSZR
      UWPIUMZUEUJZWOULSZWRSZWJWKZUGUYHWLUMZVKZVDUBUHBCUYJUWPWOULSZWLUMZUIUQZGUM
      ZUIUJZWIUMZWBZUEUOUYHWOVFSVESZWMZUGWSDEUCUDUXIFGHIUFAUWMUWFFUMZBWBUXOJWTA
      UWMUWFIUMZBWIUMZWBUXOKWTAUWMUWNUXOLWTAUWBUXACWBZUXOMWTAUWBCVCTZUXONWTAUWB
      UWDUWJWBZUXOOWTAULIUOUPXAXBZTUXOPXCAULGUOUPVURTZUXOQXCAUXOXDVUKUHUQZUVMWO
      ULSZWLUMZUXAEUJZWIUMZWBZUDVUJWMZUGUHVUKUYJVVDWBZUDVUJWMUGUHVPZVVFVUIVVGUE
      UDVUJUEUDVPZVUHVVDUYJVVIVUGVVCWIVVIVUGVUDUXAEUJVVCVUDVUFUXAUIEVUEUWAGVQXE
      VVIVUDVVBUXAEVVIVUCVVAWLUWPUVMWOULXIXFXGXHXFXJXKVVHVVGVVEUDVUJUYJVUTVVDXT
      XLXMXNVUBVVDUYORVUMDUJZWOULSZWRSZWJWKZUDVUAVKUYIUYTVVMUGUDVUAUYTUYNVVLWJW
      KUGUDVPZVVMUYSVVLUYNWJUYRVVKUYOWRUYQVVJWOULRUYPVUMUEDUWPUWFIVQXEXOXPXQVVN
      UYNVVDVVLWJVVNUYMVVCWIVVNUYMUYLUXAEUJVVCUYLUWQUXAUEEUWPUWAGVQXEVVNUYLVVBU
      XAEVVNUYKVVAWLUYJUVMWOULXIXFXGXHXFXRXMVSYAUUAAUXNUYGXSUXOAUXMUYFUBRAUXKRT
      ZVDUXJUYEUCUXLAVVOUVTUXLTZUXJUYEXSZVVOVVPVDAUVTRTZVVQUVTUXKYBAVVRVDZUXHUY
      DUXIWJVVSUXGUYCWIVVSUXQUVKVULUKSZUOUXRVESZBUXAUKSZEUJZVFSZDUJUXQVVTDUJZUX
      QVWCDUJZVFSUYCUXGVVSUXQVVTVWCDVVSUOUVTVGVVSUWFUXQTZVDZAUWMVVTVCTAVVRVWGYC
      ZVWGUWMVVSUWFUVTVIZVMZAUWMVDZUVKVULAUVKVCTZUWMACEGUORUSUVSMNQYDZXCZVWLVUL
      BVCJLVNZWEYEZVWHVWAVWBEVWHUOUXRVGZVWHUWAVWATZVDZBUXAVWTAUWMUWNAVVRVWGVWSY
      KZVWGUWMVVSVWSVWJUUBLYEVWTAUWBUXBVXAVWSUWBVWHUWAUXRVIVMZUXCYEZWEZWFUUCVVS
      UXQVWDUYBDVWHBUVKVWAUXAEUJZVFSZUKSBUVKUKSZBVXEUKSZVFSUYBVWDVWHBUVKVXEVWHA
      UWMUWNVWIVWKLYEZAVWMVVRVWGVWNWAVWHVWAUXAEVWRVXCWFZUUDVWHVXFUYABUKVWHVXFVX
      EUYAULSZVXEVFSUYAVWHUVKVXKVXEVFVWHUVKUOUXSWOVFSZVESZCEUJZUYAULSVXKVWHCEGU
      OUXSUXTRUSUXTYFZVWHUXRRTZUXSRTZVWGVXPVVSUWFUOUVTVLVMZUXRUUEYGZVWHAUWBVUOV
      WIMYHZVWHAUWBVUPVWINYHZAVUSVVRVWGQWAZUUJVWHVXNVXEUYAULVWHVXNVWACEUJVXEVWH
      VXMVWACEVWHVXLUXRUOVEVWHUXRVCTWOVCTVXLUXRWBVWHUXRVXRUUFUUGUXRWOUUHUUIYIXG
      VWHVWAUXACEVWTAUWBVUOVXAVXBMYEYJYLYMYNYMVWHVXEUYAVXJVWHCEGUXSUXTVXOVWHUXS
      VXSUUKVWHUWAUXTTZVDZAUWBVUOAVVRVWGVYCYKZVWHVXQVYCUWBVXSUWAUXSYBYHZMYEVYDA
      UWBVUPVYEVYFNYEVWHVUSULGUXSUPVURTVYBVWHEGUOUXSRUSVXSVWHUWBVDUXACVCVXTVYAV
      NUULUUMYDUUNYNYIVWHVXGVVTVXHVWCVFVWHAUWMVXGVVTWBVWIVWKVWLVXGUVKBUKSVVTVWL
      BUVKLVWOYOVWLVULBUVKUKJYIYLYEVWHVWAUXABEVWRVXIVXCUUOYPYQYJVVSVWEUXEVWFUXF
      VFVVSVVTDUVPUOUVTVWHUWMUWFUVPUMVVTWBVWKUDUWFUVOVVTRUVPUDDVPUVNVULUVKUKUVM
      UWFFVQYIUVPYFZUVKVULUKYRYSYGVVSUVTRUOWLUMAVVRXDUSUUPZVWQYTVVSVWFUXQUWJEUJ
      UXFVVSUDVWBBUVMGUMZUKSUWIDEUVTUDEVPVYIUXABUKUVMUWAGVQYIUVMUWGWBVYIUWHBUKU
      VMUWGGVQYIVVSVWGVWSVWBVCTVXDUUQUURVVSUWJEHUOUVTVVSUWAUXQTZVDZAUWBVUQAVVRV
      YJYCZVYJUWBVVSUWAUVTVIVMZOYEVYHVYKAUWBUWJVCTVYLVYMUXDYEYTYNYPYQXFXRUUSUUT
      UVAUVBXCUVCVOAUVQUVKUVJUKSUVLXAAUVJUVKUCFUVPUORUSUVSVWNABDFUORUSUVSJLADIF
      UORUSUVSVWLVUMVUNVULWIUMKVWLVULBWIJXFYLVWPPUVDZUVEAVULVCTZDRVKVVRUVTFUMZV
      CTZAVYODRVWPVOVYOVYQDUVTRDUCVPVULVYPVCUWFUVTFVQVRUVFYHVVRUVTUVPUMUVKVYPUK
      SZWBAUDUVTUVOVYRRUVPUDUCVPUVNVYPUVKUKUVMUVTFVQYIVYGUVKVYPUKYRYSVMUVHAUVKU
      VJVWNABDFUORUSUVSJLVYNYDYOUVIUVG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finite and infinite products
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Product sequences
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d F k x $.  $d ph k x $.  $d M k x $.  $d Z k $.
    prodf.1 $e |- Z = ( ZZ>= ` M ) $.
    prodf.2 $e |- ( ph -> M e. ZZ ) $.
    prodf.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    $( An infinite product of complex terms is a function from an upper set of
       integers to ` CC ` .  (Contributed by Scott Fenton, 4-Dec-2017.) $)
    prodf $p |- ( ph -> seq M ( x. , F ) : Z --> CC ) $=
      ( vx cmul cc cv wcel wa co mulcl adantl seqf ) ABIJKCDEFGHBLZKMILZKMNSTJO
      KMASTPQR $.
  $}

  ${
    $d A k $.  $d F k $.  $d F n $.  $d F x $.  $d k n $.  $d k ph $.
    $d k x $.  $d M k $.  $d M n $.  $d M x $.  $d N k $.  $d N n $.
    $d n ph $.  $d n x $.  $d N x $.  $d ph x $.  $d Z k $.
    clim2prod.1 $e |- Z = ( ZZ>= ` M ) $.
    clim2prod.2 $e |- ( ph -> N e. Z ) $.
    clim2prod.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    clim2prod.4 $e |- ( ph -> seq ( N + 1 ) ( x. , F ) ~~> A ) $.
    $( The limit of an infinite product with an initial segment added.
       (Contributed by Scott Fenton, 18-Dec-2017.) $)
    clim2prod $p |- ( ph -> seq M ( x. , F ) ~~>
        ( ( seq M ( x. , F ) ` N ) x. A ) ) $=
      ( cmul cfv co cc wcel wceq wi fveq2 oveq2d vx vn cseq c1 caddc cvv cuz cz
      eqid uzssz eqsstri peano2zd syl6eleq eluzel2 syl prodf ffvelrnd seqex a1i
      sseldi cv wss peano2uz uzss 3syl syl6sseqr sselda syldan ffvelrnda imbi2d
      eqeq12d weq wa adantr seqp1 seq1 adantl eqtr4d expcom syl6eleqr ralrimiva
      oveq1 wral eleq1d rspcv mpan9 mulassd 3eqtrd exp31 com12 uzind4 climmulc2
      a2d impcom ) ABFLDEUCZMZCLDFUDUENZUCZWOWQUFWQUGMZWSUIZAFAGUHFGEUGMZUHHEUJ
      UKIUTULZKAGOFWOACDEGHAFXAPZEUHPAFGXAIHUMZEFUNUOJUPIUQZWOUFPALDEURUSAWSOCV
      AZWRACDWQWSWTXBAXFWSPZXFGPXFDMZOPZAWSGXFAWSXAGAXCWQXAPWSXAVBXDEFVCEWQVDVE
      ZHVFVGJVHUPZVIXGAXFWOMZWPXFWRMZLNZQZAUAVAZWOMZWPXPWRMZLNZQZRAWQWOMZWPWQWR
      MZLNZQZRAUBVAZWOMZWPYEWRMZLNZQZRAYEUDUENZWOMZWPYJWRMZLNZQZRAXORUAUBWQXFXP
      WQQZXTYDAYOXQYAXSYCXPWQWOSYOXRYBWPLXPWQWRSTVKVJUAUBVLZXTYIAYPXQYFXSYHXPYE
      WOSYPXRYGWPLXPYEWRSTVKVJXPYJQZXTYNAYQXQYKXSYMXPYJWOSYQXRYLWPLXPYJWRSTVKVJ
      UACVLZXTXOAYRXQXLXSXNXPXFWOSYRXRXMWPLXPXFWRSTVKVJAWQUHPZYDAYSVMZYAWPWQDMZ
      LNZYCYTXCYAUUBQAXCYSXDVNLDEFVOUOYTYBUUAWPLYSYBUUAQALDWQVPVQTVRVSYEWSPZAYI
      YNAUUCYIYNRAUUCYIYNAUUCVMZYIVMZYKYFYJDMZLNZYHUUFLNZYMUUDYKUUGQZYIUUDYEXAP
      ZUUIAWSXAYEXJVGZLDEYEVOUOVNYIUUGUUHQUUDYFYHUUFLWBVQUUEUUHWPYGUUFLNZLNZYMU
      UDUUHUUMQYIUUDWPYGUUFAWPOPUUCXEVNAWSOYEWRXKVIAUUCYJGPZUUFOPZUUDUUJUUNUUKU
      UJYJXAGEYEVCHVTUOAXICGWCUUNUUOAXICGJWAXIUUOCYJGXFYJQXHUUFOXFYJDSWDWEWFVHW
      GVNUUDYMUUMQYIUUDYLUULWPLUUCYLUULQALDWQYEVOVQTVNVRWHWIWJWMWKWNWL $.
  $}

  ${
    $d A j $.  $d F j $.  $d F k $.  $d F x $.  $d F y $.  $d j k $.
    $d j ph $.  $d j x $.  $d j y $.  $d k ph $.  $d k x $.  $d k y $.
    $d M j $.  $d M k $.  $d M x $.  $d M y $.  $d N j $.  $d N k $.  $d N x $.
    $d N y $.  $d ph x $.  $d ph y $.  $d x y $.  $d Z k $.
    clim2div.1 $e |- Z = ( ZZ>= ` M ) $.
    clim2div.2 $e |- ( ph -> N e. Z ) $.
    clim2div.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    clim2div.4 $e |- ( ph -> seq M ( x. , F ) ~~> A ) $.
    clim2div.5 $e |- ( ph -> ( seq M ( x. , F ) ` N ) =/= 0 ) $.
    $( The limit of an infinite product with an initial segment removed.
       (Contributed by Scott Fenton, 20-Dec-2017.) $)
    clim2div $p |- ( ph ->
      seq ( N + 1 ) ( x. , F ) ~~> ( A / ( seq M ( x. , F ) ` N ) ) ) $=
      ( cmul co cfv cdiv wcel syl cc cv vj vx vy c1 caddc cseq cli cvv cuz eqid
      cz eluzelz eleq2s peano2zd eluzel2 prodf ffvelrnd seqex syl6eleq peano2uz
      reccld a1i syl6eleqr uztrn2 sylan ffvelrnda syldan wa mulcl adantl mulass
      wceq w3a adantr cfz elfzuz sylan2 adantlr seqsplit eqcomd cc0 wne divmuld
      simpr mpbird divrec2d eqtr3d climmulc2 wbr climcl breqtrrd ) AMDFUDUENZUF
      ZUDFMDEUFZOZPNZBMNBWOPNUGABWPUAWNWMWLUHWLUIOZWQUJZAFAFGQZFUKQZIWTFEUIOZGE
      FULHUMRUNZKAWOAGSFWNACDEGHAWSEUKQZIXCFXAGEFUOHUMRJUPZIUQZLVAWMUHQAMDWLURV
      BAUATZWQQZXFGQZXFWNOZSQAWLGQZXGXHAWLXAGAFXAQZWLXAQAFGXAIHUSZEFUTRHVCZEXFW
      LGHVDVEAGSXFWNXDVFVGZAXGVHZXIWOPNZXFWMOZWPXIMNXOXPXQVLWOXQMNZXIVLXOXIXRXO
      CUBUCMSDEFXFCTZSQZUBTZSQZVHXSYAMNZSQXOXSYAVIVJXTYBUCTZSQVMYCYDMNXSYAYDMNM
      NVLXOXSYAYDVKVJAXGWDAXKXGXLVNAXSEXFVONQZXSDOSQZXGYEAXSGQZYFYEXSXAGXSEXFVP
      HVCJVQVRVSVTXOXIWOXQXNAWOSQXGXEVNZAWQSXFWMACDWLWQWRXBAXSWQQZYGYFAXJYIYGXM
      EXSWLGHVDVEJVGUPVFAWOWAWBXGLVNZWCWEXOXIWOXNYHYJWFWGWHABWOAWNBUGWIBSQKBWNW
      JRXELWFWK $.
  $}

  ${
    $d F k $.  $d G k $.  $d H k $.  $d k ph $.  $d k x $.  $d k y $.
    $d k z $.  $d M k $.  $d N k $.  $d ph x $.  $d ph y $.  $d ph z $.
    $d x y $.  $d x z $.  $d y z $.
    prodfmul.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    prodfmul.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. CC ) $.
    prodfmul.3 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( G ` k ) e. CC ) $.
    prodfmul.4 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
       ( H ` k ) = ( ( F ` k ) x. ( G ` k ) ) ) $.
    $( The product of two infinite products.  (Contributed by Scott Fenton,
       18-Dec-2017.) $)
    prodfmul $p |- ( ph -> ( seq M ( x. , H ) ` N ) =
       ( ( seq M ( x. , F ) ` N ) x. ( seq M ( x. , G ) ` N ) ) ) $=
      ( vx vy vz cmul cc cv wcel co adantl wa mulcl wceq mulcom mulass seqcaopr
      w3a ) ALMNOPBCDEFGLQZPRZMQZPRZUAZUHUJOSZPRAUHUJUBTULUMUJUHOSUCAUHUJUDTUIU
      KNQZPRUGUMUNOSUHUJUNOSOSUCAUHUJUNUETHIJKUF $.
  $}

  ${
    $d Z k $.  $d M k $.  $d N k $.
    prodf1.1 $e |- Z = ( ZZ>= ` M ) $.
    $( The value of the partial products in a one-valued infinite product.
       (Contributed by Scott Fenton, 5-Dec-2017.) $)
    prodf1 $p |- ( N e. Z -> ( seq M ( x. , ( Z X. { 1 } ) ) ` N ) = 1 ) $=
      ( vk wcel cmul c1 csn cxp co wceq 1t1e1 a1i cuz cfv eleq2i biimpi cv cc
      cfz wa ax-1cn elfzuz syl6eleqr adantl fvconst2g sylancr seqid3 ) BCFZEGCH
      IJZABHHHGKHLUJMNUJBAOPZFCULBDQRUJESZABUAKFZUBHTFUMCFZUMUKPHLUCUNUOUJUNUMU
      LCUMABUDDUEUFCHUMTUGUHUI $.

    $( A one-valued infinite product is equal to the constant one function.
       (Contributed by Scott Fenton, 5-Dec-2017.) $)
    prodf1f $p |- ( M e. ZZ ->
      seq M ( x. , ( Z X. { 1 } ) ) = ( Z X. { 1 } ) ) $=
      ( vk cz wcel cmul c1 csn cxp cseq wceq cv cfv wral prodf1 fvconst2 eqtr4d
      1ex wfn rgen wb cuz seqfn fneq2i sylibr wf fconst ffn ax-mp eqfnfv mpbiri
      sylancl ) AEFZGBHIZJZAKZUPLZDMZUQNZUSUPNZLZDBOZVBDBUSBFUTHVAAUSBCPBHUSSQR
      UAUNUQBTZUPBTZURVCUBUNUQAUCNZTVDGUPAUDBVFUQCUEUFBUOUPUGVEBHSUHBUOUPUIUJDB
      UQUPUKUMUL $.

    $( The constant one product converges to one.  (Contributed by Scott
       Fenton, 5-Dec-2017.) $)
    prodfclim1 $p |- ( M e. ZZ -> seq M ( x. , ( Z X. { 1 } ) ) ~~> 1 ) $=
      ( cz wcel cmul c1 csn cxp cseq cli prodf1f cc wbr ax-1cn cuz cfv eqimss2i
      cvv fvex eqeltri climconst2 mpan eqbrtrd ) ADEZFBGHIZAJUFGKABCLGMEUEUFGKN
      OGABBAPQZCRBUGSCAPTUAUBUCUD $.
  $}

  ${
    $d F k $.  $d F m $.  $d F n $.  $d F x $.  $d k n $.  $d k ph $.
    $d k x $.  $d M k $.  $d M m $.  $d m n $.  $d M n $.  $d m ph $.
    $d M x $.  $d N k $.  $d N m $.  $d N n $.  $d n ph $.  $d n x $.
    $d N x $.  $d ph x $.
    prodfn0.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    prodfn0.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. CC ) $.
    prodfn0.3 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) =/= 0 ) $.
    $( No term of a nonzero infinite product is zero.  (Contributed by Scott
       Fenton, 14-Jan-2018.) $)
    prodfn0 $p |- ( ph -> ( seq M ( x. , F ) ` N ) =/= 0 ) $=
      ( co wcel cmul cfv cc0 wne syl wi wceq fveq2 imbi2d cc vm vn cfz cseq cuz
      vx eluzfz2 cv c1 caddc neeq1d eluzfz1 wa cz elfzelz adantl expcom vtoclga
      weq seq1 impcom eqnetrd w3a elfzouz 3ad2ant2 seqp1 elfzofz elfzuz elfzuz3
      cfzo fzss2 sselda sylan2 anassrs mulcl seqcl 3adant3 fzofzp1 eleq1d simp3
      wss mulne0d 3exp com12 a2d fzind2 mpcom ) EDEUCIZJZAEKCDUDZLZMNZAEDUELZJZ
      WIFDEUGOAUAUHZWJLZMNZPADWJLZMNZPZAUBUHZWJLZMNZPAXAUIUJIZWJLZMNZPAWLPUAUBE
      DEWODQZWQWSAXGWPWRMWODWJRUKSUAUBUSZWQXCAXHWPXBMWOXAWJRUKSWOXDQZWQXFAXIWPX
      EMWOXDWJRUKSWOEQZWQWLAXJWPWKMWOEWJRUKSWNDWHJZWTDEULAXKWSAXKUMZWRDCLZMXLDU
      NJZWRXMQXKXNADDEUOUPKCDUTOXKAXMMNZABUHZCLZMNZPZAXOPBDWHXPDQZXRXOAXTXQXMMX
      PDCRUKSAXPWHJZXRHUQZURVAVBUQOXADEVJIJZAXCXFAYCXCXFPAYCXCXFAYCXCVCZXEXBXDC
      LZKIZMYDXAWMJZXEYFQYCAYGXCXADEVDVEKCDXAVFOYDXBYEAYCXBTJZXCYCAXAWHJZYHXADE
      VGAYIUMZBUFKTCDXAYIYGAXADEVHUPAYIXPDXAUCIZJZXQTJZYIYLUMAYAYMYIYKWHXPYIEXA
      UELJYKWHWAXADEVIXADEVKOVLGVMVNXPTJUFUHZTJUMXPYNKITJYJXPYNVOUPVPVMVQAYCYET
      JZXCYCAYOYCXDWHJZAYOPZDEXAVRZAYMPYQBXDWHXPXDQZYMYOAYSXQYETXPXDCRZVSSAYAYM
      GUQUROVAVQAYCXCVTAYCYEMNZXCYCAYPUUAYRYPAUUAXSAUUAPBXDWHYSXRUUAAYSXQYEMYTU
      KSYBURVAVMVQWBVBWCWDWEWFWG $.

    $d G k $.  $d G m $.  $d G n $.
    prodfrec.4 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
       ( G ` k ) = ( 1 / ( F ` k ) ) ) $.
    $( The reciprocal of an infinite product.  (Contributed by Scott Fenton,
       15-Jan-2018.) $)
    prodfrec $p |- ( ph -> ( seq M ( x. , G ) ` N ) =
      ( 1 / ( seq M ( x. , F ) ` N ) ) ) $=
      ( co wcel cmul cfv c1 cdiv wceq syl wi fveq2 vm vn vx cfz cseq eluzfz2 cv
      cuz caddc oveq2d eqeq12d imbi2d eluzfz1 expcom vtoclga mpcom eluzel2 seq1
      weq cz 3eqtr4d a1i cfzo w3a oveq1 3ad2ant3 wa fzofzp1 impcom 1cnd elfzouz
      cc adantl wss elfzouz2 fzss2 sselda sylan2 anassrs mulcl seqcl eleq1d cc0
      prodfn0 neeq1d divmuldivd 1t1e1 oveq1i syl6eq eqtrd 3adant3 3ad2ant2 3exp
      wne seqp1 com12 a2d fzind2 ) FEFUDKZLZAFMDEUEZNZOFMCEUEZNZPKZQZAFEUHNZLZW
      TGEFUFRAUAUGZXANZOXIXCNZPKZQZSAEXANZOEXCNZPKZQZSZAUBUGZXANZOXSXCNZPKZQZSA
      XSOUIKZXANZOYDXCNZPKZQZSAXFSUAUBFEFXIEQZXMXQAYIXJXNXLXPXIEXATYIXKXOOPXIEX
      CTUJUKULUAUBUSZXMYCAYJXJXTXLYBXIXSXATYJXKYAOPXIXSXCTUJUKULXIYDQZXMYHAYKXJ
      YEXLYGXIYDXATYKXKYFOPXIYDXCTUJUKULXIFQZXMXFAYLXJXBXLXEXIFXATYLXKXDOPXIFXC
      TUJUKULXRXHAEDNZOECNZPKZXNXPEWSLZAYMYOQZAXHYPGEFUMRABUGZDNZOYRCNZPKZQZSZA
      YQSBEWSYREQZUUBYQAUUDYSYMUUAYOYREDTUUDYTYNOPYRECTUJUKULAYRWSLZUUBJUNZUOUP
      AEUTLZXNYMQAXHUUGGEFUQRZMDEURRAXOYNOPAUUGXOYNQUUHMCEURRUJVAVBXSEFVCKLZAYC
      YHAUUIYCYHSAUUIYCYHAUUIYCVDZXTYDDNZMKZOYAYDCNZMKZPKZYEYGUUJUULYBUUKMKZUUO
      YCAUULUUPQUUIXTYBUUKMVEVFAUUIUUPUUOQYCAUUIVGZUUPYBOUUMPKZMKZUUOUUQUUKUURY
      BMUUIAUUKUURQZUUIYDWSLZAUUTSZEFXSVHZUUCUVBBYDWSYRYDQZUUBUUTAUVDYSUUKUUAUU
      RYRYDDTUVDYTUUMOPYRYDCTZUJUKULUUFUORVIUJUUQUUSOOMKZUUNPKUUOUUQOYAOUUMUUQV
      JZUUQBUCMVLCEXSUUIXSXGLZAXSEFVKZVMZAUUIYREXSUDKZLZYTVLLZUUIUVLVGZAUUEUVMU
      UIUVKWSYRUUIFXSUHNLUVKWSVNXSEFVOXSEFVPRVQZHVRVSZYRVLLUCUGZVLLVGYRUVQMKVLL
      UUQYRUVQVTVMWAUVGUUIAUUMVLLZUUIUVAAUVRSZUVCAUVMSUVSBYDWSUVDUVMUVRAUVDYTUU
      MVLUVEWBULAUUEUVMHUNUORVIUUQBCEXSUVJUVPAUUIUVLYTWCWNZUVNAUUEUVTUVOIVRVSWD
      UUIAUUMWCWNZUUIUVAAUWASZUVCAUVTSUWBBYDWSUVDUVTUWAAUVDYTUUMWCUVEWEULAUUEUV
      TIUNUORVIWFUVFOUUNPWGWHWIWJWKWJUUIAYEUULQZYCUUIUVHUWCUVIMDEXSWORWLUUIAYGU
      UOQYCUUIYFUUNOPUUIUVHYFUUNQUVIMCEXSWORUJWLVAWMWPWQWRUP $.
  $}

  ${
    $d F k $.  $d F x $.  $d G k $.  $d G n $.  $d G x $.  $d H k $.  $d k n $.
    $d k ph $.  $d k x $.  $d M k $.  $d M n $.  $d M x $.  $d N k $.
    $d N n $.  $d n ph $.  $d ph x $.
    prodfdiv.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    prodfdiv.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. CC ) $.
    prodfdiv.3 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( G ` k ) e. CC ) $.
    prodfdiv.4 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( G ` k ) =/= 0 ) $.
    prodfdiv.5 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
       ( H ` k ) = ( ( F ` k ) / ( G ` k ) ) ) $.
    $( The quotient of two infinite products.  (Contributed by Scott Fenton,
       15-Jan-2018.) $)
    prodfdiv $p |- ( ph -> ( seq M ( x. , H ) ` N ) =
       ( ( seq M ( x. , F ) ` N ) / ( seq M ( x. , G ) ` N ) ) ) $=
      ( vn cmul cfv co c1 cdiv wcel cc vx cseq cfz cv cmpt wceq weq oveq2d eqid
      fveq2 ovex fvmpt adantl prodfrec wa wi eleq1 anbi2d eleq1d imbi12d chvarv
      cc0 wne neeq1d reccld fmptd ffvelrnda divrecd 3eqtr4d mulcl seqcl prodfn0
      prodfmul ) AGNCFUBOZGNMFGUCPZQMUDZDOZRPZUEZFUBOZNPVNQGNDFUBOZRPZNPGNEFUBO
      VNWARPAVTWBVNNABDVSFGHJKBUDZVOSZWCVSOZQWCDOZRPZUFAMWCVRWGVOVSMBUGVQWFQRVP
      WCDUJUHVSUIZQWFRUKULUMZUNUHABCVSEFGHIAVOTWCVSAMVOVRTVSAVPVOSZUOZVQAWDUOZW
      FTSZUPWKVQTSZUPBMBMUGZWLWKWMWNWOWDWJAWCVPVOUQURZWOWFVQTWCVPDUJZUSUTJVAWLW
      FVBVCZUPWKVQVBVCZUPBMWOWLWKWRWSWPWOWFVQVBWQVDUTKVAVEWHVFVGWLWCCOZWFRPWTWG
      NPWCEOWTWENPWLWTWFIJKVHLWLWEWGWTNWIUHVIVMAVNWAABUANTCFGHIWCTSUAUDZTSUOWCX
      ANPTSAWCXAVJUMZVKABUANTDFGHJXBVKABDFGHJKVLVHVI $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Non-trivial convergence
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d F k $.  $d F n $.  $d F y $.  $d k n $.  $d k ph $.  $d k y $.
    $d M k $.  $d M n $.  $d M y $.  $d n ph $.  $d n y $.  $d ph y $.
    $d Z k $.  $d Z y $.
    ntrivcvg.1 $e |- Z = ( ZZ>= ` M ) $.
    ntrivcvg.2 $e |- ( ph -> E. n e. Z E. y ( y =/= 0 /\
       seq n ( x. , F ) ~~> y ) ) $.
    ntrivcvg.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    $( A non-trivially converging infinite product converges.  (Contributed by
       Scott Fenton, 18-Dec-2017.) $)
    ntrivcvg $p |- ( ph -> seq M ( x. , F ) e. dom ~~> ) $=
      ( cv cmul cseq cli wbr wa wcel c1 co cfv cc0 wne wex wrex cdm wceq cuz wo
      cmin uzm1 eleq2s ad2antlr wi seqeq1 breq1d seqex vex breldm syl6bi simplr
      adantld cc adantlr caddc cz uzssz eqsstri sseldi zcnd 1cnd npcand seqeq1d
      biimpar clim2prod ovex syl an32s expcom eqcomi mpcom ex exlimdv rexlimdva
      jaoi mpd ) ABKZUAUBZLEDKZMZWFNOZPZBUCZDGUDLEFMZNUEQZIAWLWNDGAWHGQZPZWKWNB
      WPWJWNWGWPWJWNWHFUFZWHRUISZFUGTZQZUHZWPWJPZWNWOXAAWJXAWHWSGFWHUJHUKULWQXB
      WNUMZWTWQWJWNWPWQWJWMWFNOWNWQWIWMWFNLEWHFUNUOWMWFNLEFUPZBUQURUSVAXCWRGWSX
      BWRGQZWNWPXEWJWNWPXEPZWJPZWMWRWMTZWFLSZNOWNXGWFCEFWRGHWPXEWJUTXFCKZGQZXJE
      TVBQZWJWPXKXLXEAXKXLWOJVCVCVCXFLEWRRVDSZMZWFNOWJXFXNWIWFNXFXMWHLEXFWHRXFW
      HXFGVEWHGWSVEHFVFVGAWOXEUTVHVIXFVJVKVLUOVMVNWMXINXDXHWFLVOURVPVQVRGWSHVSU
      KWDVTWAVAWBWCWE $.
  $}

  ${
    $d F n $.  $d F y $.  $d M n $.  $d M y $.  $d n y $.  $d X y $.  $d Z n $.
    ntrivcvgn0.1 $e |- Z = ( ZZ>= ` M ) $.
    ntrivcvgn0.2 $e |- ( ph -> M e. ZZ ) $.
    ntrivcvgn0.3 $e |- ( ph -> seq M ( x. , F ) ~~> X ) $.
    ntrivcvgn0.4 $e |- ( ph -> X =/= 0 ) $.
    $( A product that converges to a nonzero value converges non-trivially.
       (Contributed by Scott Fenton, 18-Dec-2017.) $)
    ntrivcvgn0 $p |- ( ph -> E. n e. Z E. y ( y =/= 0 /\
       seq n ( x. , F ) ~~> y ) ) $=
      ( wcel cv cc0 wne cmul cseq cli wbr wa wex wrex cuz cfv cz uzid syl6eleqr
      syl cvv climrel brrelex2i jca wceq neeq1 breq2 anbi12d spcegv sylc seqeq1
      breq1d anbi2d exbidv rspcev syl2anc ) AEGLBMZNOZPDEQZVERSZTZBUAZVFPDCMZQZ
      VERSZTZBUAZCGUBAEEUCUDZGAEUELEVPLIEUFUHHUGAFUILZFNOZVGFRSZTZVJAVSVQJVGFRU
      JUKUHAVRVSKJULVIVTBFUIVEFUMVFVRVHVSVEFNUNVEFVGRUOUPUQURVOVJCEGVKEUMZVNVIB
      WAVMVHVFWAVLVGVERPDVKEUSUTVAVBVCVD $.
  $}

  ${
    $d F k $.  $d F m $.  $d F n $.  $d k m $.  $d k n $.  $d k ph $.
    $d M k $.  $d M m $.  $d m n $.  $d M n $.  $d m ph $.  $d N k $.
    $d N m $.  $d N n $.  $d n ph $.  $d Z k $.
    ntrivcvgfvn0.1 $e |- Z = ( ZZ>= ` M ) $.
    ntrivcvgfvn0.2 $e |- ( ph -> N e. Z ) $.
    ntrivcvgfvn0.3 $e |- ( ph -> seq M ( x. , F ) ~~> X ) $.
    ntrivcvgfvn0.4 $e |- ( ph -> X =/= 0 ) $.
    ntrivcvgfvn0.5 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    $( Any value of a product sequence that converges to a nonzero value is
       itself nonzero.  (Contributed by Scott Fenton, 20-Dec-2017.) $)
    ntrivcvgfvn0 $p |- ( ph -> ( seq M ( x. , F ) ` N ) =/= 0 ) $=
      ( cc0 cmul cfv wceq cli cc wcel wi vm vn wne cseq wa wfun wbr cdm wf ffun
      fclim ax-mp funbrfv mpsyl adantr cvv cuz eqid cz uzssz eqsstri sseldi a1i
      seqex 0cnd cv c1 caddc co fveq2 eqeq1d imbi2d simpr syl6eleq uztrn sylan2
      weq w3a 3adant3 seqp1 syl oveq1 3ad2ant3 peano2uz uztrn2 syl2an ralrimiva
      wral eleq1d rspcv mpan9 syldan ancoms mul02d 3eqtrd adantrd uzind4 impcom
      3exp a2d climconst eqtr3d ex necon3d mpd ) AFMUCENCDUDZOZMUCKAXGMFMAXGMPZ
      FMPAXHUEZXFQOZFMAXJFPZXHQUFZAXFFQUGXKQUHZRQUIXLUKXMRQUJULZJXFFQUMUNUOXLXI
      XFMQUGXJMPXNXIMBXFEUPEUQOZXOURAEUSSZXHAGUSEGDUQOZUSHDUTVAIVBUOXFUPSXINCDV
      DVCXIVEBVFZXOSXIXRXFOZMPZXIUAVFZXFOZMPZTXIXHTZXIUBVFZXFOZMPZTXIYEVGVHVIZX
      FOZMPZTXIXTTUAUBEXRYAEPZYCXHXIYKYBXGMYAEXFVJVKVLUAUBVQZYCYGXIYLYBYFMYAYEX
      FVJVKVLYAYHPZYCYJXIYMYBYIMYAYHXFVJVKVLUABVQZYCXTXIYNYBXSMYAXRXFVJVKVLYDXP
      AXHVMVCYEXOSZXIYGYJYOAYGYJTXHYOAYGYJYOAYGVRZYIYFYHCOZNVIZMYQNVIZMYPYEXQSZ
      YIYRPYOAYTYGAYOEXQSYTAEGXQIHVNEYEDVOVPVSNCDYEVTWAYGYOYRYSPAYFMYQNWBWCYOAY
      SMPYGYOAUEYQAYOYQRSZAYOYHGSZUUAAEGSYHXOSUUBYOIEYEWDDYHEGHWEWFAXRCOZRSZBGW
      HUUBUUAAUUDBGLWGUUDUUABYHGXRYHPUUCYQRXRYHCVJWIWJWKWLWMWNVSWOWSWPWTWQWRXAX
      FMQUMUNXBXCXDXE $.
  $}

  ${
    $d F k $.  $d k ph $.  $d M k $.  $d N k $.  $d Z k $.
    ntrivcvgtail.1 $e |- Z = ( ZZ>= ` M ) $.
    ntrivcvgtail.2 $e |- ( ph -> N e. Z ) $.
    ntrivcvgtail.3 $e |- ( ph -> seq M ( x. , F ) ~~> X ) $.
    ntrivcvgtail.4 $e |- ( ph -> X =/= 0 ) $.
    ntrivcvgtail.5 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    $( A tail of a non-trivially convergent sequence converges non-trivially.
       (Contributed by Scott Fenton, 20-Dec-2017.) $)
    ntrivcvgtail $p |- ( ph -> ( ( ~~> ` seq N ( x. , F ) ) =/= 0 /\
     seq N ( x. , F ) ~~> ( ~~> ` seq N ( x. , F ) ) ) ) $=
      ( cmul cli cfv cc0 wbr wcel cc adantr wceq cseq wne wa c1 cmin co cuz cdm
      wfun wf fclim ffun ax-mp funbrfv mpsyl eqnetrd breqtrrd jca seqeq1 fveq2d
      wb neeq1d breq12d anbi12d adantl mpbird caddc cdiv syl6eleqr ntrivcvgfvn0
      simpr cv adantlr clim2div climcl syl eluzel2 eleq2s prodf feq2i ffvelrnda
      cz sylib divne0d uzssz eqsstri sseldi zcnd 1cnd seqeq1d mpbi2and syl6eleq
      npcand wo uzm1 mpjaodan ) AEDUAZMCEUBZNOZPUCZWSWTNQZUDZEUEUFUGZDUHOZRZAWR
      UDXCMCDUBZNOZPUCZXGXHNQZUDZAXKWRAXIXJAXHFPNUJZAXGFNQZXHFUANUIZSNUKXLULXNS
      NUMUNZJXGFNUOUPZKUQAXGFXHNJXPURUSTWRXCXKVBAWRXAXIXBXJWRWTXHPWRWSXGNMCEDUT
      ZVAZVCWRWSXGWTXHNXQXRVDVEVFVGAXFUDZMCXDUEVHUGZUBZNOZPUCZYAYBNQZXCXSYBFXDX
      GOZVIUGZPXLXSYAYFNQYBYFUAXOXSFBCDXDGHXSXDXEGAXFVLHVJZABVMZGRYHCOSRXFLVNZA
      XMXFJTZXSBCDXDFGHYGYJAFPUCXFKTZYIVKZVOZYAYFNUOUPZXSFYEAFSRZXFAXMYOJFXGVPV
      QTAXESXDXGAGSXGUKXESXGUKABCDGHAEGRDWCRZIYPEXEGDEVRHVSVQLVTGXESXGHWAWDWBYK
      YLWEUQXSYAYFYBNYMYNURXSYCXAYDXBXSYBWTPXSYAWSNXSXTEMCXSEUEAESRXFAEAGWCEGXE
      WCHDWFWGIWHWITXSWJWNWKZVAZVCXSYAWSYBWTNYQYRVDVEWLAEXERWRXFWOAEGXEIHWMDEWP
      VQWQ $.
  $}

  ${
    $d F w $.  $d H q $.  $d H w $.  $d P q $.  $d P w $.  $d q w $.  $d Y w $.
    $d Z q $.  $d F j $.  $d F k $.  $d G j $.  $d G k $.  $d H j $.  $d H k $.
    $d j k $.  $d j ph $.  $d k ph $.  $d P j $.  $d P k $.  $d Y j $.
    $d F k $.  $d G k $.  $d H k $.  $d k ph $.  $d Z k $.  $d N k $.
    ntrivcvgmullem.1 $e |- Z = ( ZZ>= ` M ) $.
    ntrivcvgmullem.2 $e |- ( ph -> N e. Z ) $.
    ntrivcvgmullem.3 $e |- ( ph -> P e. Z ) $.
    ntrivcvgmullem.4 $e |- ( ph -> X =/= 0 ) $.
    ntrivcvgmullem.5 $e |- ( ph -> Y =/= 0 ) $.
    ntrivcvgmullem.6 $e |- ( ph -> seq N ( x. , F ) ~~> X ) $.
    ntrivcvgmullem.7 $e |- ( ph -> seq P ( x. , G ) ~~> Y ) $.
    ntrivcvgmullem.8 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    ntrivcvgmullem.9 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) e. CC ) $.
    ntrivcvgmullem.a $e |- ( ph -> N <_ P ) $.
    ntrivcvgmullem.b $e |- ( ( ph /\ k e. Z ) ->
       ( H ` k ) = ( ( F ` k ) x. ( G ` k ) ) ) $.
    $( Lemma for ~ ntrivcvgmul .  (Contributed by Scott Fenton,
       19-Dec-2017.) $)
    ntrivcvgmullem $p |- ( ph -> E. q e. Z E. w ( w =/= 0 /\
       seq q ( x. , H ) ~~> w ) ) $=
      ( vj wcel cv cc0 wne cmul cseq cli wbr wa wex wrex cfv co cc cuz eqid cle
      cz wb uzssz eqsstri sseldi eluz syl2anc mpbird uztrn2 syldan ntrivcvgtail
      sylan simprd climcl syl simpld mulne0d seqex prodf ffvelrnda simpr simpll
      cvv a1i cfz adantr elfzuz syl2an wceq prodfmul climmul ovex neeq1 anbi12d
      breq2 spcev seqeq1 breq1d anbi2d exbidv rspcev ) ACLUFZBUGZUHUIZUJGCUKZXE
      ULUMZUNZBUOZXFUJGMUGZUKZXEULUMZUNZBUOZMLUPPAUJECUKZULUQZKUJURZUHUIZXGXRUL
      UMZXJAXQKAXPXQULUMZXQUSUFAXQUHUIZYAADEICJIUTUQZYCVAACYCUFZICVBUMZUCAIVCUF
      CVCUFYDYEVDALVCILHUTUQVCNHVEVFZOVGALVCCYFPVGZICVHVIVJSQADUGZYCUFZYHLUFZYH
      EUQZUSUFZAILUFYIYJOHYHILNVKVNUAVLVMZVOZXQXPVPVQAUJFCUKZKULUMKUSUFTKYOVPVQ
      AYBYAYMVRRVSAXQKUEXPYOXGCWECUTUQZYPVAZYGYNXGWEUFAUJGCVTWFTAYPUSUEUGZXPADE
      CYPYQYGAYHYPUFZYJYLAXDYSYJPHYHCLNVKZVNZUAVLWAWBAYPUSYRYOADFCYPYQYGAYSYJYH
      FUQZUSUFZUUAUBVLWAWBAYRYPUFZUNZDEFGCYRAUUDWCUUEYHCYRWGURUFZUNZAYJYLAUUDUU
      FWDZUUEXDYSYJUUFAXDUUDPWHYHCYRWIYTWJZUAVIUUGAYJUUCUUHUUIUBVIUUGAYJYHGUQYK
      UUBUJURWKUUHUUIUDVIWLWMXIXSXTUNBXRXQKUJWNXEXRWKXFXSXHXTXEXRUHWOXEXRXGULWQ
      WPWRVIXOXJMCLXKCWKZXNXIBUUJXMXHXFUUJXLXGXEULUJGXKCWSWTXAXBXCVI $.
  $}

  ${
    $d F m $.  $d F z $.  $d G n $.  $d G y $.  $d H m $.  $d H n $.  $d H y $.
    $d H z $.  $d m n $.  $d m p $.  $d m ph $.  $d m w $.  $d m y $.
    $d m z $.  $d n p $.  $d n ph $.  $d n w $.  $d n y $.  $d n z $.
    $d p y $.  $d p z $.  $d ph y $.  $d ph z $.  $d w y $.  $d w z $.
    $d y z $.  $d Z m $.  $d Z n $.  $d Z y $.  $d Z z $.  $d F w $.  $d G w $.
    $d H p $.  $d H w $.  $d p w $.  $d Z p $.  $d F k $.  $d G k $.  $d H k $.
    $d k m $.  $d k n $.  $d k ph $.  $d k y $.  $d k z $.  $d Z k $.
    ntrivcvgmul.1 $e |- Z = ( ZZ>= ` M ) $.
    ntrivcvgmul.3 $e |- ( ph ->
       E. n e. Z E. y ( y =/= 0 /\ seq n ( x. , F ) ~~> y ) ) $.
    ntrivcvgmul.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. CC ) $.
    ntrivcvgmul.5 $e |- ( ph ->
       E. m e. Z E. z ( z =/= 0 /\ seq m ( x. , G ) ~~> z ) ) $.
    ntrivcvgmul.6 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) e. CC ) $.
    ntrivcvgmul.7 $e |- ( ( ph /\ k e. Z ) ->
       ( H ` k ) = ( ( F ` k ) x. ( G ` k ) ) ) $.
    $( The product of two non-trivially converging products converges
       non-trivially.  (Contributed by Scott Fenton, 18-Dec-2017.) $)
    ntrivcvgmul $p |- ( ph -> E. p e. Z E. w ( w =/= 0 /\
       seq p ( x. , H ) ~~> w ) ) $=
      ( wa cv cc0 wne cmul cseq cli wbr wex eeanv 2rexbii reeanv bitri sylanbrc
      wrex wcel w3a cuz cfv uzssz eqsstri simp2l sseldi zred simp2r cle simpl2l
      cz simpl2r simp3ll adantr simp3rl simp3lr simp3rr simpl1 sylan simpr wceq
      cc co ntrivcvgmullem mulcomd eqtrd lecasei 3expia exlimdvv rexlimdvva mpd
      ) ABUAZUBUCZUDHGUAZUEWHUFUGZTZCUAZUBUCZUDIFUAZUEWMUFUGZTZTZCUHBUHZFLUNGLU
      NZDUAZUBUCUDJMUAUEXAUFUGTDUHMLUNZAWLBUHZGLUNZWQCUHZFLUNZWTOQWTXCXETZFLUNG
      LUNXDXFTWSXGGFLLWLWQBCUIUJXCXEGFLLUKULUMAWSXBGFLLAWJLUOZWOLUOZTZTWRXBBCAX
      JWRXBAXJWRUPZXBWJWOXKWJXKLVGWJLKUQURVGNKUSUTZAXHXIWRVAVBVCXKWOXKLVGWOXLAX
      HXIWRVDVBVCXKWJWOVEUGZTZDWOEHIJKWJWHWMLMNXHXIAWRXMVFXHXIAWRXMVHXKWIXMWIWK
      WQAXJVIZVJXKWNXMWNWPWLAXJVKZVJXKWKXMWIWKWQAXJVLZVJXKWPXMWNWPWLAXJVMZVJXNA
      EUAZLUOZXSHURZVRUOZAXJWRXMVNZPVOXNAXTXSIURZVRUOZYCRVOXKXMVPXNAXTXSJURZYAY
      DUDVSZVQYCSVOVTXKWOWJVEUGZTZDWJEIHJKWOWMWHLMNXHXIAWRYHVHXHXIAWRYHVFXKWNYH
      XPVJXKWIYHXOVJXKWPYHXRVJXKWKYHXQVJYIAXTYEAXJWRYHVNZRVOYIAXTYBYJPVOXKYHVPY
      IAXTYFYDYAUDVSZVQYJAXTTZYFYGYKSYLYAYDPRWAWBVOVTWCWDWEWFWG $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Complex products
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Declare the constant symbol for complex products. $)
  $c prod_ $.

  $( Extend class notation to include complex products. $)
  cprod $a class prod_ k e. A B $.

  ${
    $d k f m n x y $.  $d A f m n x y $.  $d B f m n x y $.
    $( Define the product of a series with an index set of integers ` A ` .
       This definition takes most of the aspects of ~ df-sum and adapts them
       for multiplication instead of addition.  However, we insist that in the
       infinite case, there is a nonzero tail of the sequence.  This ensures
       that the convergence criteria match those of infinite sums.
       (Contributed by Scott Fenton, 4-Dec-2017.) $)
    df-prod $a |- prod_ k e. A B =
    ( iota x ( E. m e. ZZ ( A C_ ( ZZ>= ` m ) /\
      E. n e. ( ZZ>= ` m )
         E. y ( y =/= 0 /\
               seq n ( x. , ( k e. ZZ |-> if ( k e. A , B , 1 ) ) ) ~~> y ) /\
      seq m ( x. , ( k e. ZZ |-> if ( k e. A , B , 1 ) ) ) ~~> x ) \/
      E. m e. NN E. f ( f : ( 1 ... m ) -1-1-onto-> A /\
       x =
       ( seq 1 ( x. , ( n e. NN |-> [_ ( f ` n ) / k ]_ B ) ) ` m ) ) ) ) $.
  $}

  ${
    $d k f m n x y $.  $d A f m n x y $.  $d B f m n x y $.
    $( A product is a set.  (Contributed by Scott Fenton, 4-Dec-2017.) $)
    prodex $p |- prod_ k e. A B e. _V $=
      ( vm vy vn vx vf cv cfv cmul cz c1 cmpt cseq cli wbr wa wex wrex cuz wcel
      cprod wss cc0 wne cif w3a cfz co wf1o cn csb wceq cio cvv df-prod eqeltri
      wo iotaex ) ABCUCADIZUAJZUDEIZUEUFKCLCIAUBBMUGNZFIZOVCPQRESFVBTKVDVAOGIZP
      QUHDLTMVAUIUJAHIZUKVFVAKFULCVEVGJBUMNMOJUNRHSDULTUSZGUOUPGEABHCDFUQVHGUTU
      R $.

    $d C f m n x y $.
    ${
      prodeq1f.1 $e |- F/_ k A $.
      prodeq1f.2 $e |- F/_ k B $.
      $( Equality theorem for a product.  (Contributed by Scott Fenton,
         1-Dec-2017.) $)
      prodeq1f $p |- ( A = B -> prod_ k e. A C = prod_ k e. B C ) $=
        ( vm vy vn vx vf cv cmul cz c1 cseq cli wbr wa wrex cuz cfv wss cc0 wne
        wceq wcel cif cmpt wex w3a cfz co wf1o cn csb wo cprod sseq1 nfeq eleq2
        cio ifbid adantr mpteq2da seqeq3d breq1d anbi2d exbidv 3anbi123d f1oeq3
        rexbidv anbi1d orbi12d iotabidv df-prod 3eqtr4g ) ABUFZAGLZUAUBZUCZHLZU
        DUEZMDNDLZAUGZCOUHZUIZILZPZWBQRZSZHUJZIVTTZMWGVSPZJLZQRZUKZGNTZOVSULUMZ
        AKLZUNZWOVSMIUODWHWTUBCUPUIOPUBUFZSZKUJZGUOTZUQZJVBBVTUCZWCMDNWDBUGZCOU
        HZUIZWHPZWBQRZSZHUJZIVTTZMXJVSPZWOQRZUKZGNTZWSBWTUNZXBSZKUJZGUOTZUQZJVB
        ACDURBCDURVRXFYDJVRWRXSXEYCVRWQXRGNVRWAXGWMXOWPXQABVTUSVRWLXNIVTVRWKXMH
        VRWJXLWCVRWIXKWBQVRWGXJMWHVRDNWFXIDABEFUTVRWFXIUFWDNUGVRWEXHCOABWDVAVCV
        DVEZVFVGVHVIVLVRWNXPWOQVRWGXJMVSYEVFVGVJVLVRXDYBGUOVRXCYAKVRXAXTXBABWSW
        TVKVMVIVLVNVOJHACKDGIVPJHBCKDGIVPVQ $.
    $}
  $}

  ${
    $d A k $.  $d B k $.
    $( Equality theorem for a product.  (Contributed by Scott Fenton,
       1-Dec-2017.) $)
    prodeq1 $p |- ( A = B -> prod_ k e. A C = prod_ k e. B C ) $=
      ( nfcv prodeq1f ) ABCDDAEDBEF $.
  $}

  ${
    $d f k m n x y A $.  $d f m n x y B $.
    nfcprod1.1 $e |- F/_ k A $.
    $( Bound-variable hypothesis builder for product.  (Contributed by Scott
       Fenton, 4-Dec-2017.) $)
    nfcprod1 $p |- F/_ k prod_ k e. A B $=
      ( vm vy vn vx vf cv cfv cmul cz c1 cseq cli wrex cn nfcv nfseq cprod wcel
      cuz wss cc0 wne cif cmpt wbr wa wex w3a cfz co wf1o csb wceq df-prod nfss
      wo cio nfv nfbr nfan nfex nfrex nf3an nff1o nfcsb1v nfmpt nffv nfeq2 nfor
      nfmpt1 nfiota nfcxfr ) CABCUAAEJZUCKZUDZFJZUEUFZLCMCJAUBBNUGZUHZGJZOZVTPU
      IZUJZFUKZGVRQZLWCVQOZHJZPUIZULZEMQZNVQUMUNZAIJZUOZWKVQLGRCWDWPKZBUPZUHZNO
      ZKZUQZUJZIUKZERQZUTZHVAHFABICEGURXGCHWNXFCWMCEMCMSVSWIWLCCAVRDCVRSZUSWHCG
      VRXHWGCFWAWFCWACVBCWEVTPCLWCWDCWDSCLSZCMWBVNZTCPSZCVTSVCVDVEVFCWJWKPCLWCV
      QCVQSZXIXJTXKCWKSVCVGVFXECERCRSZXDCIWQXCCCWOAWPCWPSCWOSDVHCWKXBCVQXACLWTN
      CNSXICGRWSXMCWRBVIVJTXLVKVLVDVEVFVMVOVP $.
  $}

  ${
    $d f k m n x y z $.  $d f m n y z A $.  $d f m n y z B $.
    nfcprod.1 $e |- F/_ x A $.
    nfcprod.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for product: if ` x ` is (effectively)
       not free in ` A ` and ` B ` , it is not free in ` prod_ k e. A B ` .
       (Contributed by Scott Fenton, 1-Dec-2017.) $)
    nfcprod $p |- F/_ x prod_ k e. A B $=
      ( vm vz vn vy vf cv cfv cmul cz c1 cseq cli cn nfcv cprod cuz wss cc0 wne
      wcel cif cmpt wbr wa wex wrex w3a cfz co wf1o csb wceq wo cio df-prod nfv
      nfss nfcri nfif nfmpt nfseq nfbr nfan nfex nfrex nf3an nff1o nfcsb nfiota
      nffv nfeq2 nfor nfcxfr ) ABCDUABGLZUBMZUCZHLZUDUEZNDODLBUFZCPUGZUHZILZQZW
      CRUIZUJZHUKZIWAULZNWGVTQZJLZRUIZUMZGOULZPVTUNUOZBKLZUPZWOVTNISDWHWTMZCUQZ
      UHZPQZMZURZUJZKUKZGSULZUSZJUTJHBCKDGIVAXKAJWRXJAWQAGOAOTZWBWMWPAABWAEAWAT
      ZVCWLAIWAXMWKAHWDWJAWDAVBAWIWCRANWGWHAWHTANTZADOWFXLWEACPADBEVDFAPTZVEVFZ
      VGARTZAWCTVHVIVJVKAWNWORANWGVTAVTTZXNXPVGXQAWOTVHVLVKXIAGSASTZXHAKXAXGAAW
      SBWTAWTTAWSTEVMAWOXFAVTXEANXDPXOXNAISXCXSADXBCAXBTFVNVFVGXRVPVQVIVJVKVRVO
      VS $.
  $}

  ${
    $d f k m n x y A $.  $d f m n x y B $.  $d f m n x y C $.
    $( Equality theorem for product, when the class expressions ` B ` and ` C `
       are equal everywhere.  Proved using only Extensionality.  (Contributed
       by Scott Fenton, 4-Dec-2017.) $)
    prodeq2w $p |- ( A. k B = C -> prod_ k e. A B = prod_ k e. A C ) $=
      ( vm vy vn vx vf wceq cv cfv cmul cz c1 cmpt cseq cli wrex cn wal cuz wss
      cc0 wne wcel cif wbr wa wex w3a cfz co wf1o csb cio cprod wral eqid ifeq1
      wo alimi alral syl mpteq12 sylancr seqeq3d breq1d anbi2d rexbidv 3anbi23d
      exbidv csbeq2 mpteq2dv fveq1d eqeq2d orbi12d iotabidv df-prod 3eqtr4g ) B
      CJZDUAZAEKZUBLZUCZFKZUDUEZMDNDKAUFZBOUGZPZGKZQZWFRUHZUIZFUJZGWDSZMWJWCQZH
      KZRUHZUKZENSZOWCULUMAIKZUNZWRWCMGTDWKXBLZBUOZPZOQZLZJZUIZIUJZETSZVAZHUPWE
      WGMDNWHCOUGZPZWKQZWFRUHZUIZFUJZGWDSZMXOWCQZWRRUHZUKZENSZXCWRWCMGTDXDCUOZP
      ZOQZLZJZUIZIUJZETSZVAZHUPABDUQACDUQWBXMYMHWBXAYDXLYLWBWTYCENWBWPXTWSYBWEW
      BWOXSGWDWBWNXRFWBWMXQWGWBWLXPWFRWBWJXOMWKWBNNJWIXNJZDNURZWJXOJNUSWBYNDUAY
      OWAYNDWHBCOUTVBYNDNVCVDDNWINXNVEVFZVGVHVIVLVJWBWQYAWRRWBWJXOMWCYPVGVHVKVJ
      WBXKYKETWBXJYJIWBXIYIXCWBXHYHWRWBWCXGYGWBXFYFMOWBGTXEYEDXDBCVMVNVGVOVPVIV
      LVJVQVRHFABIDEGVSHFACIDEGVSVT $.
  $}

  ${
    $d f k m n x y A $.  $d f m n x y B $.  $d f m n x y C $.
    $( Equality theorem for product, with the class expressions ` B ` and ` C `
       guarded by ` _I ` to be always sets.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    prodeq2ii $p |- ( A. k e. A ( _I ` B ) = ( _I ` C ) ->
                   prod_ k e. A B = prod_ k e. A C ) $=
      ( vm vy vn vx vf cid cfv wceq cv cmul cz wcel c1 cmpt wa cn wral cuz cseq
      wss cc0 wne cif cli wbr wex wrex w3a cfz co wf1o csb wo cio cprod eluzelz
      wb adantl nfra1 wi rsp adantr ifeq1 syl6 wn iffalse pm2.61d1 fvif 3eqtr4g
      eqtr4d mpteq2da fveq1d adantlr eqid fvmptex seqfeq breq1d anbi2d rexbidva
      exbidv simpr 3anbi23d simplr nnuz syl6eleq f1of ad2antlr ffvelrn sylancom
      simplll nfcsb1v nfeq csbeq1a eqeq12d rspc sylc fvex csbfv2g ax-mp 3eqtr3g
      wf cvv elfznn weq fveq2 csbeq1d fvmpti syl 3eqtr4d seqfveq eqeq2d orbi12d
      pm5.32da iotabidv df-prod ) BJKZCJKZLZDAUAZAEMZUBKZUDZFMZUEUFZNDODMZAPZBQ
      UGZRZGMZUCZYGUHUIZSZFUJZGYEUKZNYLYDUCZHMZUHUIZULZEOUKZQYDUMUNZAIMZUOZYTYD
      NGTDYMUUEKZBUPZRZQUCKZLZSZIUJZETUKZUQZHURYFYHNDOYJCQUGZRZYMUCZYGUHUIZSZFU
      JZGYEUKZNUUQYDUCZYTUHUIZULZEOUKZUUFYTYDNGTDUUGCUPZRZQUCKZLZSZIUJZETUKZUQZ
      HURABDUSACDUSYCUUOUVNHYCUUCUVFUUNUVMYCUUBUVEEOYCYDOPZSZYRUVBUUAUVDYFYCYRU
      VBVAUVOYCYQUVAGYEYCYMYEPZSZYPUUTFUVRYOUUSYHUVRYNUURYGUHUVRNHYLUUQYMUVQYMO
      PYCYDYMUTVBUVRYTYMUBKPZSYTDOYKJKZRZKZYTDOUUPJKZRZKZYTYLKZYTUUQKZYCUVSUWBU
      WELUVQYCUVSSYTUWAUWDYCUWAUWDLZUVSYCDOUVTUWCYBDAVCYCYIOPZSZYJXTQJKZUGZYJYA
      UWKUGZUVTUWCUWJYJUWLUWMLZUWJYJYBUWNYCYJYBVDUWIYBDAVEVFYJXTYAUWKVGVHYJVIUW
      LUWKUWMYJXTUWKVJYJYAUWKVJVNVKYJBQJVLYJCQJVLVMVOZVFVPVQDOYKYTYLUWAYLVRUWAV
      RVSZDOUUPYTUUQUWDUUQVRUWDVRVSZVMVTWAWBWDWCVFUVPYSUVCYTUHUVPNHYLUUQYDYCUVO
      WEYCYTYEPZUWFUWGLUVOYCUWRSZUWBUWEUWFUWGUWSYTUWAUWDYCUWHUWRUWOVFVPUWPUWQVM
      VQVTWAWFWCYCUUMUVLETYCYDTPZSZUULUVKIUXAUUFUUKUVJUXAUUFSZUUJUVIYTUXBNHUUIU
      VHQYDUXBYDTQUBKYCUWTUUFWGWHWIUXBYTUUDPZSZDYTUUEKZBUPZJKZDUXECUPZJKZYTUUIK
      ZYTUVHKZUXDDUXEXTUPZDUXEYAUPZUXGUXIUXDUXEAPZYCUXLUXMLZUXBUXCUUDAUUEXEZUXN
      UUFUXPUXAUXCUUDAUUEWJWKUUDAYTUUEWLWMYCUWTUUFUXCWNYBUXODUXEADUXLUXMDUXEXTW
      ODUXEYAWOWPYIUXELXTUXLYAUXMDUXEXTWQDUXEYAWQWRWSWTUXEXFPZUXLUXGLYTUUEXAZDU
      XEBXFJXBXCUXQUXMUXILUXRDUXECXFJXBXCXDUXDYTTPZUXJUXGLUXCUXSUXBYTYDXGVBZGYT
      UUHUXFTUUIGHXHZDUUGUXEBYMYTUUEXIZXJUUIVRXKXLUXDUXSUXKUXILUXTGYTUVGUXHTUVH
      UYADUUGUXECUYBXJUVHVRXKXLXMXNXOXQWDWCXPXRHFABIDEGXSHFACIDEGXSVM $.
  $}

  ${
    $d k A $.
    $( Equality theorem for product.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    prodeq2 $p |- ( A. k e. A B = C -> prod_ k e. A B = prod_ k e. A C ) $=
      ( wceq wral cid cfv cprod fveq2 ralimi prodeq2ii syl ) BCEZDAFBGHCGHEZDAF
      ABDIACDIENODABCGJKABCDLM $.
  $}

  ${
    $d f j k m n x y $.  $d f m n x y A $.  $d f m n x y B $.
    $d f m n x y C $.
    cbvprod.1 $e |- ( j = k -> B = C ) $.
    ${
      cbvprod.2 $e |- F/_ k A $.
      cbvprod.3 $e |- F/_ j A $.
      cbvprod.4 $e |- F/_ k B $.
      cbvprod.5 $e |- F/_ j C $.
      $( Change bound variable in a product.  (Contributed by Scott Fenton,
         4-Dec-2017.) $)
      cbvprod $p |- prod_ j e. A B = prod_ k e. A C $=
        ( vm vy vn vx vf cv cmul cz c1 wceq cuz cfv wss cc0 wne wcel cif cli wa
        cmpt cseq wbr wex wrex w3a cfz co wf1o cn csb cio cprod biid nfcri nfcv
        wo weq eleq1 ifbieq1d cbvmpt seqeq3 ax-mp breq1i anbi2i exbii 3anbi123i
        rexbii cbvcsb mpteq2i fveq1i eqeq2i orbi12i iotabii df-prod 3eqtr4i
        nfif ) AKPZUAUBZUCZLPZUDUEZQDRDPZAUFZBSUGZUJZMPZUKZWJUHULZUIZLUMZMWHUNZ
        QWOWGUKZNPZUHULZUOZKRUNZSWGUPUQAOPZURZXCWGQMUSDWPXGUBZBUTZUJZSUKZUBZTZU
        IZOUMZKUSUNZVFZNVAWIWKQEREPZAUFZCSUGZUJZWPUKZWJUHULZUIZLUMZMWHUNZQYBWGU
        KZXCUHULZUOZKRUNZXHXCWGQMUSEXICUTZUJZSUKZUBZTZUIZOUMZKUSUNZVFZNVAABDVBA
        CEVBXRYTNXFYKXQYSXEYJKRWIWIXAYGXDYIWIVCWTYFMWHWSYELWRYDWKWQYCWJUHWOYBTZ
        WQYCTDERWNYAWMEBSEDAGVDIESVEWFXTDCSDEAHVDJDSVEWFDEVGWMXTBCSWLXSAVHFVIVJ
        ZQWOYBWPVKVLVMVNVOVQXBYHXCUHUUAXBYHTUUBQWOYBWGVKVLVMVPVQXPYRKUSXOYQOXNY
        PXHXMYOXCWGXLYNXKYMTXLYNTMUSXJYLDEXIBCIJFVRVSQXKYMSVKVLVTWAVNVOVQWBWCNL
        ABODKMWDNLACOEKMWDWE $.
    $}

    $d A j k $.  $d B k $.  $d C j $.
    $( Change bound variable in a product.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    cbvprodv $p |- prod_ j e. A B = prod_ k e. A C $=
      ( nfcv cbvprod ) ABCDEFEAGDAGEBGDCGH $.
  $}

  ${
    $d j k A $.
    cbvprodi.1 $e |- F/_ k B $.
    cbvprodi.2 $e |- F/_ j C $.
    cbvprodi.3 $e |- ( j = k -> B = C ) $.
    $( Change bound variable in a product.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    cbvprodi $p |- prod_ j e. A B = prod_ k e. A C $=
      ( nfcv cbvprod ) ABCDEHEAIDAIFGJ $.
  $}

  ${
    $d k A $.  $d k B $.
    prodeq1i.1 $e |- A = B $.
    $( Equality inference for product.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    prodeq1i $p |- prod_ k e. A C = prod_ k e. B C $=
      ( wceq cprod prodeq1 ax-mp ) ABFACDGBCDGFEABCDHI $.
  $}

  ${
    $d k A $.
    prodeq2i.1 $e |- ( k e. A -> B = C ) $.
    $( Equality inference for product.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    prodeq2i $p |- prod_ k e. A B = prod_ k e. A C $=
      ( wceq cprod prodeq2 mprg ) BCFABDGACDGFDAABCDHEI $.
  $}

  ${
    $d k A $.  $d k B $.
    prodeq12i.1 $e |- A = B $.
    prodeq12i.2 $e |- ( k e. A -> C = D ) $.
    $( Equality inference for product.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    prodeq12i $p |- prod_ k e. A C = prod_ k e. B D $=
      ( cprod prodeq2i prodeq1i eqtri ) ACEHADEHBDEHACDEGIABDEFJK $.
  $}

  ${
    $d k A $.  $d k B $.
    prodeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for product.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    prodeq1d $p |- ( ph -> prod_ k e. A C = prod_ k e. B C ) $=
      ( wceq cprod prodeq1 syl ) ABCGBDEHCDEHGFBCDEIJ $.
  $}

  ${
    $d k A $.
    prodeq2d.1 $e |- ( ph -> A. k e. A B = C ) $.
    $( Equality deduction for product.  Note that unlike ~ prodeq2dv , ` k `
       may occur in ` ph ` .  (Contributed by Scott Fenton, 4-Dec-2017.) $)
    prodeq2d $p |- ( ph -> prod_ k e. A B = prod_ k e. A C ) $=
      ( wceq wral cprod prodeq2 syl ) ACDGEBHBCEIBDEIGFBCDEJK $.
  $}

  ${
    $d k A $.  $d k ph $.
    prodeq2dv.1 $e |- ( ( ph /\ k e. A ) -> B = C ) $.
    $( Equality deduction for product.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    prodeq2dv $p |- ( ph -> prod_ k e. A B = prod_ k e. A C ) $=
      ( wceq ralrimiva prodeq2d ) ABCDEACDGEBFHI $.
  $}

  ${
    $d k A $.  $d k ph $.
    prodeq2sdv.1 $e |- ( ph -> B = C ) $.
    $( Equality deduction for product.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    prodeq2sdv $p |- ( ph -> prod_ k e. A B = prod_ k e. A C ) $=
      ( wceq cv wcel adantr prodeq2dv ) ABCDEACDGEHBIFJK $.
  $}

  ${
    $d j k A $.  $d k B $.  $d j k ph $.
    2cprodeq2dv.1 $e |- ( ( ph /\ j e. A /\ k e. B ) -> C = D ) $.
    $( Equality deduction for double product.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    2cprodeq2dv $p |- ( ph ->
           prod_ j e. A prod_ k e. B C = prod_ j e. A prod_ k e. B D ) $=
      ( cprod cv wcel wa wceq 3expa prodeq2dv ) ABCDGICEGIFAFJBKZLCDEGAPGJCKDEM
      HNOO $.
  $}

  ${
    $d k A $.  $d k B $.  $d k ph $.
    prodeq12dv.1 $e |- ( ph -> A = B ) $.
    prodeq12dv.2 $e |- ( ( ph /\ k e. A ) -> C = D ) $.
    $( Equality deduction for product.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    prodeq12dv $p |- ( ph -> prod_ k e. A C = prod_ k e. B D ) $=
      ( cprod prodeq2dv prodeq1d eqtrd ) ABDFIBEFICEFIABDEFHJABCEFGKL $.
  $}

  ${
    $d k A $.  $d k B $.  $d k ph $.
    prodeq12rdv.1 $e |- ( ph -> A = B ) $.
    prodeq12rdv.2 $e |- ( ( ph /\ k e. B ) -> C = D ) $.
    $( Equality deduction for product.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    prodeq12rdv $p |- ( ph -> prod_ k e. A C = prod_ k e. B D ) $=
      ( cprod prodeq1d prodeq2dv eqtrd ) ABDFICDFICEFIABCDFGJACDEFHKL $.
  $}

  ${
    $d k A $.
    $( The second class argument to a product can be chosen so that it is
       always a set.  (Contributed by Scott Fenton, 4-Dec-2017.) $)
    prod2id $p |- prod_ k e. A B = prod_ k e. A ( _I ` B ) $=
      ( cid cfv wceq cprod prodeq2ii cv wcel cvv fvex fvi ax-mp eqcomi a1i mprg
      ) BDEZRDEZFZABCGARCGFCAABRCHTCIAJSRRKJSRFBDLRKMNOPQ $.
  $}

  ${
    $d A k n $.  $d F k n $.  $d ph k n $.  $d M n $.  $d N n $.
    prodmo.1 $e |- F = ( k e. ZZ |-> if ( k e. A , B , 1 ) ) $.
    prodmo.2 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.

    ${
      prodrb.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
      $( Lemma for ~ prodrb .  (Contributed by Scott Fenton, 4-Dec-2017.) $)
      prodrblem $p |- ( ( ph /\ A C_ ( ZZ>= ` N ) ) ->
      ( seq M ( x. , F ) |` ( ZZ>= ` N ) ) = seq N ( x. , F ) ) $=
        ( cuz cfv wa cc c1 wcel co wceq adantl cz vn cmul cv mulid2 1cnd adantr
        wss iftrue adantlr eqeltrd ex wn iffalse ax-1cn syl6eqel pm2.61d1 fmptd
        cif uzssz sseldi ffvelrnd cmin cfz cdif caddc simplr zcnd npcand fveq2d
        elfzelz sseqtr4d fznuz ssneldd eldifd fveq2 eqeq1d eldifi eldifn fvmpt2
        weq syl syl2anc eqtrd vtoclga seqid ) ABGKLZUGZMZUAUBNEFGOUAUCZNPOWIUBQ
        WIRWHWIUDSWHUEAGFKLZPWGJUFAGELNPWGATNGEADTDUCZBPZCOURZNEAWKTPZMZWLWMNPZ
        WOWLWPWOWLMWMCNWLWMCRWOWLCOUHSAWLCNPWNIUIUJUKWLULZWMONWLCOUMZUNUOUPHUQA
        WJTGFUSJUTZVAUFWHWIFGOVBQZVCQPZMZWITBVDZPWIELZORZXBWITBXAWITPWHWIFWTVJS
        XBBWTOVEQZKLZWIXBBWFXGAWGXAVFXBXFGKXBGOWHGNPZXAAXHWGAGWSVGUFUFXBUEVHVIV
        KXAWIXGPULWHWIFWTVLSVMVNWKELZORXEDWIXCDUAVTXIXDOWKWIEVOVPWKXCPZXIWMOXJW
        NWPXIWMRWKTBVQXJWMONXJWQWMORWKTBVRWRWAZUNUODTWMNEHVSWBXKWCWDWAWE $.

      ${
        $d F m $.  $d M k m $.  $d m ph $.  $d N k m $.  $d m n $.
        fprodcvg.4 $e |- ( ph -> A C_ ( M ... N ) ) $.
        $( The sequence of partial products of a finite product converges to
           the whole product.  (Contributed by Scott Fenton, 4-Dec-2017.) $)
        fprodcvg $p |- ( ph ->
        seq M ( x. , F ) ~~> ( seq M ( x. , F ) ` N ) ) $=
          ( cmul cfv wcel cz syl cc wa c1 wceq vn vm cseq cvv cuz eluzelz seqex
          a1i eluzel2 cv cif adantl iftrue adantlr eqeltrd ex wn iffalse ax-1cn
          eqid syl6eqel pm2.61d1 fvmpt2 syl2anc prodf ffvelrnd co mulid1 adantr
          simpr caddc cfz elfzuz cdif sseld fznuz con2d imp eldifd fveq2 eqeq1d
          syl6 weq eldifi eldifn eqtrd vtoclga sylan2 seqid2 eqcomd climconst )
          AGLEFUCZMZUAWLGUDGUEMZWNUTAGFUEMZNZGONJFGUFPWLUDNALEFUGUHAWOQGWLADEFW
          OWOUTZAWPFONZJFGUIPZADUJZWONZRZWTEMZWTBNZCSUKZQXBWTONZXEQNZXCXETZXAXF
          AFWTUFULXBXDXGXBXDXGXBXDRXECQXDXECTXBXDCSUMULAXDCQNXAIUNUOUPXDUQZXESQ
          XDCSURZUSVAVBZDOXEQEHVCZVDXKUOZVEJVFAUAUJZWNNZRZWMXNWLMXPUBLQEGFXNSUB
          UJZQNXQSLVGXQTXPXQVHULAWPXOJVIZAXOVJXPWOQGWLXPDEFWOWQAWRXOWSVIAXAXCQN
          XOXMUNVEXRVFAXQGSVKVGZXNVLVGNZXQEMZSTZXOXTAXQXSUEMNZYBXQXSXNVMAYCRZXQ
          OBVNZNYBYDXQOBYCXQONAXSXQUFULAYCXQBNZUQAYFYCAYFXQFGVLVGZNYCUQABYGXQKV
          OXQFGVPWBVQVRVSXCSTYBDXQYEDUBWCXCYASWTXQEVTWAWTYENZXCXESYHXFXGXHWTOBW
          DYHXESQYHXIXESTWTOBWEXJPZUSVAXLVDYIWFWGPWHUNWIWJWK $.
      $}
    $}

    ${
      $d N k $.  $d M k $.
      prodrb.4 $e |- ( ph -> M e. ZZ ) $.
      prodrb.5 $e |- ( ph -> N e. ZZ ) $.
      prodrb.6 $e |- ( ph -> A C_ ( ZZ>= ` M ) ) $.
      prodrb.7 $e |- ( ph -> A C_ ( ZZ>= ` N ) ) $.
      $( Lemma for ~ prodrb .  (Contributed by Scott Fenton, 4-Dec-2017.) $)
      prodrblem2 $p |- ( ( ph /\ N e. ( ZZ>= ` M ) ) ->
       ( seq M ( x. , F ) ~~> C <-> seq N ( x. , F ) ~~> C ) ) $=
        ( cuz cfv wcel cmul cli wbr wa cseq cres cz cvv wb adantr seqex climres
        sylancl wss wceq cv cc adantlr simpr prodrblem mpidan breq1d bitr3d ) A
        HGOPQZUAZRFGUBZHOPZUCZDSTZVCDSTZRFHUBZDSTVBHUDQZVCUEQVFVGUFAVIVALUGRFGU
        HDVCHUEUIUJVBVEVHDSAVABVDUKVEVHULNVBBCEFGHIAEUMBQCUNQVAJUOAVAUPUQURUSUT
        $.

      $( Rebase the starting point of a product.  (Contributed by Scott Fenton,
         4-Dec-2017.) $)
      prodrb $p |- ( ph ->
       ( seq M ( x. , F ) ~~> C <-> seq N ( x. , F ) ~~> C ) ) $=
        ( cuz cfv wcel cmul cseq cli wbr wb prodrblem2 wa bicomd uztric syl2anc
        cz wo mpjaodan ) AHGOPQZRFGSDTUAZRFHSDTUAZUBGHOPQZABCDEFGHIJKLMNUCAUNUD
        UMULABCDEFHGIJLKNMUCUEAGUHQHUHQUKUNUIKLGHUFUGUJ $.
    $}

    prodmo.3 $e |- G = ( j e. NN |-> [_ ( f ` j ) / k ]_ B ) $.

    ${
      $d B j $.  $d f i $.  $d f j $.  $d f k $.  $d f m $.  $d f z $.
      $d G i $.  $d G j $.  $d G m $.  $d G z $.  $d H i $.  $d i j $.
      $d i m $.  $d i ph $.  $d i z $.  $d j k $.  $d j m $.  $d j ph $.
      $d j z $.  $d K i $.  $d K j $.  $d k m $.  $d K m $.  $d K z $.
      $d M i $.  $d M j $.  $d M m $.  $d m ph $.  $d m z $.  $d M z $.
      $d ph z $.
      prodmolem3.4 $e |- H = ( j e. NN |-> [_ ( K ` j ) / k ]_ B ) $.
      prodmolem3.5 $e |- ( ph -> ( M e. NN /\ N e. NN ) ) $.
      prodmolem3.6 $e |- ( ph -> f : ( 1 ... M ) -1-1-onto-> A ) $.
      prodmolem3.7 $e |- ( ph -> K : ( 1 ... N ) -1-1-onto-> A ) $.
      $( Lemma for ~ prodmo .  (Contributed by Scott Fenton, 4-Dec-2017.) $)
      prodmolem3 $p |- ( ph ->
         ( seq 1 ( x. , G ) ` M ) = ( seq 1 ( x. , H ) ` N ) ) $=
        ( wcel vm vz vi cmul c1 cseq cfv cc cv ccnv ccom wa mulcl adantl mulcom
        co wceq w3a mulass cn cuz simpld nnuz syl6eleq wss ssid a1i wf1o f1ocnv
        cfz syl f1oco syl2anc wb chash cen wbr ovex f1oen cfn fzfi hashen mp2an
        sylibr cn0 simprd nnnn0d hashfz1 3eqtr3rd oveq2d f1oeq2 mpbird csb wral
        elfznn f1of ffvelrnda ralrimiva adantr nfcsb1v csbeq1a eleq1d rspc sylc
        nfel1 weq fveq2 csbeq1d fvmptg eqeltrd cid fvco3 sylan fveq2d f1ocnvfv2
        wf eqtrd fvmpti 3syl 3eqtr4rd seqf1o eqtr3d ) AKUDIUEUFZUGKUDHUEUFUGLYC
        UGAUAEUBUHUDUHUCDUIZUJZJUKZHIUEKUAUIZUHTZEUIZUHTZULZYGYIUDUPZUHTAYGYIUM
        UNYKYLYIYGUDUPUQAYGYIUOUNYHYJUBUIZUHTURYLYMUDUPYGYIYMUDUPUDUPUQAYGYIYMU
        SUNAKUTUEVAUGAKUTTZLUTTZQVBZVCVDUHUHVEAUHVFVGAUEKVJUPZYQYFVHZUELVJUPZYQ
        YFVHZABYQYEVHZYSBJVHZYTAYQBYDVHZUUARYQBYDVIVKSYSBYQYEJVLVMZAYQYSUQZYRYT
        VNAKLUEVJAYSVOUGZYQVOUGZLKAYSYQVPVQZUUFUUGUQZAYTUUHUUDYSYQYFUELVJVRVSVK
        YSVTTYQVTTUUIUUHVNUELWAUEKWAYSYQWBWCWDALWETUUFLUQALAYNYOQWFWGLWHVKAKWET
        UUGKUQAKYPWGKWHVKWIZWJZYQYSYQYFWKVKWLZAYGYQTZULZYGHUGZFYGYDUGZCWMZUHUUN
        YGUTTZUUQUHTZUUOUUQUQUUMUURAYGKWOUNUUNUUPBTCUHTZFBWNZUUSAYQBYGYDAUUCYQB
        YDXPRYQBYDWPVKWQAUVAUUMAUUTFBNWRWSUUTUUSFUUPBFUUQUHFUUPCWTXEFUIUUPUQCUU
        QUHFUUPCXAXBXCXDZEYGFYIYDUGZCWMZUUQUTUHHEUAXFFUVCUUPCYIYGYDXGXHOXIVMUVB
        XJAUCUIZYQTZULZFUVEYFUGZYDUGZCWMZXKUGZFUVEJUGZCWMZXKUGZUVHHUGZUVEIUGZUV
        GUVJUVMXKUVGFUVIUVLCUVGUVIUVLYEUGZYDUGZUVLUVGUVHUVQYDAYQBJXPZUVFUVHUVQU
        QAYQBJVHZUVSAUVTUUBSAUUEUVTUUBVNUUKYQYSBJWKVKWLYQBJWPVKZYQBUVEYEJXLXMXN
        UVGUUCUVLBTUVRUVLUQAUUCUVFRWSAYQBUVEJUWAWQYQBUVLYDXOVMXQXHXNUVGUVHYQTUV
        HUTTUVOUVKUQAYQYQUVEYFAYRYQYQYFXPUULYQYQYFWPVKWQUVHKWOEUVHUVDUVJUTHYIUV
        HUQFUVCUVICYIUVHYDXGXHOXRXSUVGUVEUTTZUVPUVNUQUVFUWBAUVEKWOUNEUVEFYIJUGZ
        CWMUVMUTIEUCXFFUWCUVLCYIUVEJXGXHPXRVKXTYAAKLYCUUJXNYB $.
    $}

    ${
      $d A j $.  $d A m $.  $d A x $.  $d B j $.  $d B n $.  $d f j $.
      $d f k $.  $d F m $.  $d F x $.  $d G j $.  $d H x $.  $d j k $.
      $d j ph $.  $d j x $.  $d K j $.  $d K k $.  $d k m $.  $d K m $.
      $d K n $.  $d k x $.  $d K x $.  $d M j $.  $d M k $.  $d M m $.
      $d m ph $.  $d m x $.  $d M x $.  $d N j $.  $d N k $.  $d n x $.
      $d ph x $.
      prodmolem2.4 $e |- H = ( j e. NN |-> [_ ( K ` j ) / k ]_ B ) $.
      prodmolem2.5 $e |- ( ph -> N e. NN ) $.
      prodmolem2.6 $e |- ( ph -> M e. ZZ ) $.
      prodmolem2.7 $e |- ( ph -> A C_ ( ZZ>= ` M ) ) $.
      prodmolem2.8 $e |- ( ph -> f : ( 1 ... N ) -1-1-onto-> A ) $.
      prodmolem2.9 $e |- ( ph -> K Isom < , < ( ( 1 ... ( # ` A ) ) , A ) ) $.
      $( Lemma for ~ prodmo .  (Contributed by Scott Fenton, 4-Dec-2017.) $)
      prodmolem2a $p |- ( ph ->
         seq M ( x. , F ) ~~> ( seq 1 ( x. , G ) ` N ) ) $=
        ( vm vx vn cmul cseq cfv c1 cli cuz cfz co clt wiso wf1o chash wceq cen
        wf wb wbr cv ovex f1oen syl cfn wcel fzfid ensymd syl2anc hashen mpbird
        enfii cn0 nnnn0d hashfz1 eqtr3d oveq2d isoeq4 mpbid isof1o f1of 3syl cn
        nnuz syl6eleq eluzfz2 ffvelrnd sseldd sselda cle f1ocnvfv2 sylan f1ocnv
        wa ccnv ffvelrnda elfzle2 cxr wss adantr cr fzssuz cz uzssz zssre sstri
        ressxr syl6ss leisorel syl122anc eqbrtrrd eluzelz eluz elfzuzb sylanbrc
        a1i ex ssrdv fprodcvg cc mulid2 adantl mulid1 cif ax-1cn syl6eqel fveq2
        weq csb wi nfv nfcsb1v nfcv nfif eleq1 csbeq1a ifbieq1d cmpt fvmptg jca
        mulcl eleqtrrd iftrue eqeltrd wn iffalse pm2.61d1 fmptd elfzelz ffvelrn
        1cnd syl2an cdif eqeq1d eldifi sseldi eldifn fvmpt2 eqtrd vtoclga nfel1
        iftrued nfim eleq1d imbi2d vtoclf csbeq1 cbvmpt elfznn eqeltrrd csbeq1d
        fvex eqtri 3eqtr4rd seqcoll prodmolem3 eqtr4d breqtrd ) AUEGKUFZLJUGZUV
        TUGZLUEHUHUFUGZUIABCFGKUWAMNABKUJUGZUWASAUHLUKULZBLJAUWEBUMUMJUNZUWEBJU
        OZUWEBJUSAUHBUPUGZUKULZBUMUMJUNZUWFUAAUWIUWEUQUWJUWFUTAUWHLUHUKAUWEUPUG
        ZUWHLAUWKUWHUQZUWEBURVAZAUWEBDVBZUOUWMTUWEBUWNUHLUKVCVDVEZAUWEVFVGZBVFV
        GZUWLUWMUTAUHLVHZAUWPBUWEURVAUWQUWRAUWEBUWOVIBUWEVMVJUWEBVKVJVLALVNVGUW
        KLUQALQVOLVPVEVQVRZUWIBUWEUMUMJVSVEVTZUWEBUMUMJWAZUWEBJWBWCALUHUJUGZVGL
        UWEVGZALWDUXBQWEWFUHLWGVEZWHWIZAEBKUWAUKULZAEVBZBVGZUXGUXFVGZAUXHWOZUXG
        UWDVGUWAUXGUJUGVGZUXIABUWDUXGSWJUXJUXKUXGUWAWKVAZUXJUXGJWPZUGZJUGZUXGUW
        AWKAUWGUXHUXOUXGUQAUWFUWGUWTUXAVEZUWEBUXGJWLWMUXJUXNLWKVAZUXOUWAWKVAZUX
        JUXNUWEVGZUXQABUWEUXGUXMAUWGBUWEUXMUOBUWEUXMUSUXPUWEBJWNBUWEUXMWBWCWQZU
        XNUHLWRVEUXJUWFUWEWSWTZBWSWTZUXSUXCUXQUXRUTAUWFUXHUWTXAUYAUXJUWEXBWSUWE
        UXBXBUHLXCUXBXDXBUHXEXFXGXGXHXGXQAUYBUXHABUWDWSSUWDXBWSUWDXDXBKXEZXFXGX
        HXGXIXAUXTAUXCUXHUXDXAUWEBUXNLJXJXKVTXLUXJUXGXDVGUWAXDVGZUXKUXLUTABXDUX
        GABUWDXDSUYCXIZWJAUYDUXHAUWAUWDVGUYDUXEKUWAXMVEXAUXGUWAXNVJVLUXGKUWAXOX
        PXRXSXTAUWBLUEIUHUFUGUWCABUEYAUBUCGJIKLUHUBVBZYAVGZUHUYFUEULUYFUQAUYFYB
        YCUYGUYFUHUEULUYFUQAUYFYDYCUYGUCVBZYAVGWOUYFUYHUEULYAVGAUYFUYHUUBYCAUUL
        UAALUWEUWIUXDUWSUUCSAXDYAGUSUYFXDVGUYFGUGZYAVGUYFKUWHJUGZUKULZVGAFXDFVB
        ZBVGZCUHYEZYAGAUYNYAVGZUYLXDVGZAUYMUYOAUYMUYOAUYMWOUYNCYAUYMUYNCUQAUYMC
        UHUUDYCNUUEXRUYMUUFZUYNUHYAUYMCUHUUGZYFYGUUHZXAMUUIUYFKUYJUUJXDYAUYFGUU
        KUUMUYFUYKBUUNZVGUYIUHUQZAUYLGUGZUHUQVUAFUYFUYTFUBYIVUBUYIUHUYLUYFGYHUU
        OUYLUYTVGZVUBUYNUHVUCUYPUYOVUBUYNUQVUCUYKXDUYLUYKUWDXDKUYJXCUYCXGUYLUYK
        BUUPUUQVUCUYNUHYAVUCUYQUYNUHUQUYLUYKBUURUYRVEZYFYGFXDUYNYAGMUUSVJVUDUUT
        UVAYCAUYHUWIVGZWOZUYHJUGZBVGZFVUGCYJZUHYEZVUIVUGGUGZUYHIUGZVUFVUHVUIUHA
        UWIBUYHJAUWJUWIBJUOUWIBJUSUAUWIBUMUMJWAUWIBJWBWCWQZUVCZVUFVUGXDVGVUJYAV
        GZVUKVUJUQVUFBXDVUGABXDWTVUEUYEXAVUMWIAVUOVUEAUYOYKAVUOYKFVUGAVUOFAFYLF
        VUJYAVUHFVUIUHVUHFYLFVUGCYMFUHYNZYOUVBUVDUYHJUVMUYLVUGUQZUYOVUOAVUQUYNV
        UJYAVUQUYMVUHCVUIUHUYLVUGBYPFVUGCYQYRUVEUVFUYSUVGXAZUDVUGUDVBZBVGZFVUSC
        YJZUHYEZVUJXDYAGVUSVUGUQVUTVUHVVAVUIUHVUSVUGBYPFVUSVUGCUVHYRGFXDUYNYSUD
        XDVVBYSMFUDXDUYNVVBUDUYNYNVUTFVVAUHVUTFYLFVUSCYMVUPYOFUDYIUYMVUTCVVAUHU
        YLVUSBYPFVUSCYQYRUVIUVNYTVJVUFUYHWDVGZVUIYAVGVULVUIUQVUEVVCAUYHUWHUVJYC
        VUFVUJVUIYAVUNVURUVKEUYHFUXGJUGZCYJVUIWDYAIEUCYIFVVDVUGCUXGUYHJYHUVLPYT
        VJUVOUVPABCDEFGHIJLLMNOPALWDVGZVVEQQUUATUXPUVQUVRUVS $.
    $}

    ${
      $d A f $.  $d A g $.  $d A j $.  $d A m $.  $d A w $.  $d B j $.
      $d F f $.  $d f g $.  $d F g $.  $d f j $.  $d F j $.  $d f k $.
      $d f m $.  $d F m $.  $d f ph $.  $d f w $.  $d F w $.  $d f x $.
      $d f z $.  $d G g $.  $d g j $.  $d G j $.  $d g k $.  $d g m $.
      $d g ph $.  $d g w $.  $d G w $.  $d g x $.  $d j k $.  $d j m $.
      $d j ph $.  $d j w $.  $d j x $.  $d k m $.  $d k w $.  $d k x $.
      $d m ph $.  $d m w $.  $d m x $.  $d m z $.  $d ph w $.  $d w x $.
      $d w z $.

      $( Lemma for ~ prodmo .  (Contributed by Scott Fenton, 4-Dec-2017.) $)
      prodmolem2 $p |- ( ( ph /\
        E. m e. ZZ ( A C_ ( ZZ>= ` m ) /\
                          E. n e. ( ZZ>= ` m ) E. y ( y =/= 0 /\
                       seq n ( x. , F ) ~~> y ) /\
                     seq m ( x. , F ) ~~> x ) ) ->
        ( E. m e. NN E. f ( f : ( 1 ... m ) -1-1-onto-> A /\
                            z = ( seq 1 ( x. , G ) ` m ) ) -> x = z ) ) $=
        ( vw cv wa cz vg cuz cfv wss cc0 wne cmul cseq cli wbr wex wrex w3a cfz
        c1 co wf1o wceq cn weq 3simpb reximi fveq2 sseq2d seqeq1 breq1d anbi12d
        wi cbvrexv reeanv wcel simprlr chash clt wor cfn cr simprll uzssz zssre
        wiso sstri syl6ss ltso soss mpisyl cen fzfi f1oen ad2antll ensymd enfii
        ovex sylancr fz1iso syl2anc csb cc simpll sylan simplrr simplrl simplll
        cmpt eqid adantl simprr prodmolem2a expr exlimdv mpd climuni syl5ibrcom
        eqeq2 impd expimpd rexlimdvva syl5bir expdimp sylan2b sylan2 ) EJRZUBUC
        ZUDZCRZUEUFUGLKRUHYEUIUJSCUKKYCULZUGLYBUHZBRZUIUJZUMZJTULAYDYISZJTULZUO
        YBUNUPZEGRZUQZDRZYBUGMUOUHUCZURZSZGUKZJUSULZBDUTZVHZYJYKJTYDYFYIVAVBYLA
        EQRZUBUCZUDZUGLUUDUHZYHUIUJZSZQTULZUUCYKUUIJQTJQUTZYDUUFYIUUHUUKYCUUEEY
        BUUDUBVCVDUUKYGUUGYHUIUGLYBUUDVEVFVGVIAUUJUUAUUBUUJUUASUUIYTSZJUSULQTUL
        AUUBUUIYTQJTUSVJAUULUUBQJTUSAUUDTVKZYBUSVKZSZSZUUIYTUUBUUPUUISZYSUUBGUU
        QYOYRUUBUUPUUIYOYRUUBVHUUPUUIYOSZSZUUBYRYHYQURZUUSUUHUUGYQUIUJZUUTUUPUU
        FUUHYOVLUUSUOEVMUCUNUPEVNVNUARZWAZUAUKZUVAUUSEVNVOZEVPVKZUVDUUSEVQUDVQV
        NVOUVEUUSEUUEVQUUPUUFUUHYOVRUUETVQUUDVSVTWBWCWDEVQVNWEWFUUSYMVPVKEYMWGU
        JUVFUOYBWHUUSYMEYOYMEWGUJUUPUUIYMEYNUOYBUNWMWIWJWKEYMWLWNEVNUAWOWPUUSUV
        CUVAUAUUPUURUVCUVAUUPUURUVCSZSZEFGHILMHUSIHRUVBUCFWQXDZUVBUUDYBNUVHAIRE
        VKFWRVKAUUOUVGWSOWTPUVIXEAUUMUUNUVGXAAUUMUUNUVGXBUVGUUFUUPUUFUUHYOUVCXC
        XFUUPUUIYOUVCVLUUPUURUVCXGXHXIXJXKYHYQUUGXLWPYPYQYHXNXMXIXOXJXPXQXRXSXT
        YA $.
    $}

    $d A a $.  $d a f $.  $d A f $.  $d a g $.  $d A g $.  $d a j $.  $d A j $.
    $d a k $.  $d a m $.  $d A m $.  $d a ph $.  $d a w $.  $d A w $.
    $d A x $.  $d A z $.  $d B a $.  $d B f $.  $d B j $.  $d B m $.  $d F f $.
    $d f g $.  $d f j $.  $d F j $.  $d f k $.  $d f m $.  $d F m $.
    $d f ph $.  $d f w $.  $d F w $.  $d f x $.  $d F x $.  $d f z $.
    $d F z $.  $d G a $.  $d G g $.  $d g j $.  $d G j $.  $d g k $.  $d g m $.
    $d g ph $.  $d g w $.  $d G w $.  $d g x $.  $d G x $.  $d g z $.
    $d G z $.  $d j k $.  $d j m $.  $d j ph $.  $d j x $.  $d j z $.
    $d k m $.  $d k w $.  $d k x $.  $d k z $.  $d m ph $.  $d m w $.
    $d m x $.  $d m z $.  $d n x $.  $d n z $.  $d ph w $.  $d ph x $.
    $d ph z $.  $d w x $.  $d w z $.  $d x y $.  $d x z $.  $d y z $.

    $( A product has at most one limit.  (Contributed by Scott Fenton,
       4-Dec-2017.) $)
    prodmo $p |- ( ph -> E* x ( E. m e. ZZ ( A C_ ( ZZ>= ` m ) /\
      E. n e. ( ZZ>= ` m )
         E. y ( y =/= 0 /\ seq n ( x. , F ) ~~> y ) /\
         seq m ( x. , F ) ~~> x ) \/
      E. m e. NN E. f ( f : ( 1 ... m ) -1-1-onto-> A /\
       x = ( seq 1 ( x. , G ) ` m ) ) ) ) $=
      ( vw wa wrex cz cn vz vg va cuz cfv wss cc0 wne cmul cseq cli wbr wex w3a
      cv c1 cfz co wf1o wceq wo weq wi 3simpb reximi fveq2 sseq2d seqeq1 breq1d
      wal wmo anbi12d cbvrexv anbi2i reeanv bitr4i wcel simprlr adantlr simprll
      adantl cc simprrl prodrb mpbid simprrr climuni syl2anc ex rexlimivv sylbi
      expcom syl2an prodmolem2 equcomi syl6 expimpd com12 ancoms csb cmpt eeanv
      2rexbii wb oveq2 f1oeq2 syl eqeq2d exbidv f1oeq1 csbeq1d mpteq2dv seqeq3d
      fveq1 syl5eq fveq1d cbvexv syl6bb 3bitr4i an4 simpll sylan cbvmptv simplr
      eqtri simprl simprr prodmolem3 eqeq12 syl5ibrcom rexlimdvva syl5bir ccase
      syl5bi exlimdvv alrimivv breq2 3anbi3d rexbidv eqeq1 anbi2d orbi12d mo4
      sylibr ) ADIUOZUDUEZUFZCUOZUGUHUIKJUOUJUUHUKULQCUMJUUFRZUIKUUEUJZBUOZUKUL
      ZUNZISRZUPUUEUQURZDFUOZUSZUUKUUEUILUPUJZUEZUTZQZFUMZITRZVAZUUGUUIUUJUAUOZ
      UKULZUNZISRZUUQUVEUUSUTZQZFUMZITRZVAZQZBUAVBZVCZUAVJBVJUVDBVKAUVPBUAUVNAU
      VOUUNUVHUVCUVLAUVOVCZUUNUUGUULQZISRZUUGUVFQZISRZUVQUVHUUMUVRISUUGUUIUULVD
      VEUVGUVTISUUGUUIUVFVDVEUVSUWAQZUVRDPUOZUDUEZUFZUIKUWCUJZUVEUKULZQZQZPSRIS
      RZUVQUWBUVSUWHPSRZQUWJUWAUWKUVSUVTUWHIPSIPVBZUUGUWEUVFUWGUWLUUFUWDDUUEUWC
      UDVFVGUWLUUJUWFUVEUKUIKUUEUWCVHVIVLVMVNUVRUWHIPSSVOVPUWIUVQIPSSUUESVQZUWC
      SVQZQZUWIUVQAUWOUWIQZUVOAUWPQZUWFUUKUKULZUWGUVOUWQUULUWRUWPUULAUWOUUGUULU
      WHVRWAUWQDEUUKHKUUEUWCMAHUODVQZEWBVQZUWPNVSAUWMUWNUWIVTAUWMUWNUWIVRUWPUUG
      AUWOUUGUULUWHVTWAUWPUWEAUWOUVRUWEUWGWCWAWDWEUWPUWGAUWOUVRUWEUWGWFWAUUKUVE
      UWFWGWHWLWIWJWKWMUVHUVCUVQAUVHUVCQUVOAUVHUVCUVOAUVHQUVCUABVBUVOAUACBDEFGH
      IJKLMNOWNUABWOWPWQWRWSAUUNUVLQUVOAUUNUVLUVOABCUADEFGHIJKLMNOWNWQWRAUVCUVL
      QZUVOUXAUVAUPUWCUQURZDUBUOZUSZUVEUWCUIGTHGUOZUXCUEZEWTZXAZUPUJZUEZUTZQZQZ
      UBUMFUMZPTRITRZAUVOUVBUXLUBUMZQZPTRITRUVCUXPPTRZQUXOUXAUVBUXPIPTTVOUXNUXQ
      IPTTUVAUXLFUBXBXCUVLUXRUVCUVKUXPIPTUWLUVKUXBDUUPUSZUVEUWCUURUEZUTZQZFUMUX
      PUWLUVJUYBFUWLUUQUXSUVIUYAUWLUUOUXBUTUUQUXSXDUUEUWCUPUQXEUUOUXBDUUPXFXGUW
      LUUSUXTUVEUUEUWCUURVFXHVLXIUYBUXLFUBFUBVBZUXSUXDUYAUXKUXBDUUPUXCXJUYCUXTU
      XJUVEUYCUWCUURUXIUYCLUXHUIUPUYCLGTHUXEUUPUEZEWTZXAZUXHOUYCGTUYEUXGUYCHUYD
      UXFEUXEUUPUXCXNXKXLXOXMXPXHVLXQXRVMVNXSAUXNUVOIPTTAUUETVQUWCTVQQZQZUXMUVO
      FUBUXMUUQUXDQZUUTUXKQZQUYHUVOUUQUUTUXDUXKXTUYHUYIUYJUVOUYHUYIQZUVOUYJUUSU
      XJUTUYKDEFUCHKLUXHUXCUUEUWCMUYKAUWSUWTAUYGUYIYANYBLUYFUCTHUCUOZUUPUEZEWTZ
      XAOGUCTUYEUYNGUCVBZHUYDUYMEUXEUYLUUPVFXKYCYEGUCTUXGHUYLUXCUEZEWTUYOHUXFUY
      PEUXEUYLUXCVFXKYCAUYGUYIYDUYHUUQUXDYFUYHUUQUXDYGYHUUKUUSUVEUXJYIYJWQYNYOY
      KYLWRYMWRYPUVDUVMBUAUVOUUNUVHUVCUVLUVOUUMUVGISUVOUULUVFUUGUUIUUKUVEUUJUKY
      QYRYSUVOUVBUVKITUVOUVAUVJFUVOUUTUVIUUQUUKUVEUUSYTUUAXIYSUUBUUCUUD $.
  $}

  ${
    zprod.1 $e |- Z = ( ZZ>= ` M ) $.
    zprod.2 $e |- ( ph -> M e. ZZ ) $.
    zprod.3 $e |- ( ph ->
       E. n e. Z E. y ( y =/= 0 /\ seq n ( x. , F ) ~~> y ) ) $.

    ${
      $d A f $.  $d A g $.  $d A i $.  $d A j $.  $d A k $.  $d A m $.
      $d A n $.  $d A x $.  $d A y $.  $d A z $.  $d B f $.  $d B g $.
      $d B i $.  $d B j $.  $d B m $.  $d B n $.  $d B x $.  $d B y $.
      $d B z $.  $d f g $.  $d f i $.  $d f j $.  $d f k $.  $d F k $.
      $d f m $.  $d f n $.  $d f ph $.  $d f x $.  $d F x $.  $d f y $.
      $d F z $.  $d g i $.  $d g j $.  $d g k $.  $d g m $.  $d g n $.
      $d g ph $.  $d i j $.  $d i k $.  $d i m $.  $d i n $.  $d i ph $.
      $d j k $.  $d j m $.  $d j n $.  $d j ph $.  $d k m $.  $d k n $.
      $d k ph $.  $d k x $.  $d k y $.  $d k z $.  $d M f $.  $d M g $.
      $d M i $.  $d M j $.  $d M k $.  $d M m $.  $d m n $.  $d m ph $.
      $d m x $.  $d M x $.  $d m y $.  $d M y $.  $d M z $.  $d n ph $.
      $d n x $.  $d n y $.  $d n z $.  $d ph x $.  $d ph y $.  $d ph z $.
      $d x y $.  $d Z m $.  $d Z n $.
      zprod.4 $e |- ( ph -> A C_ Z ) $.
      zprod.5 $e |- ( ( ph /\ k e. Z ) ->
         ( F ` k ) = if ( k e. A , B , 1 ) ) $.
      zprod.6 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
      $( Series product with index set a subset of the upper integers.
         (Contributed by Scott Fenton, 5-Dec-2017.) $)
      zprod $p |- ( ph -> prod_ k e. A B = ( ~~> ` seq M ( x. , F ) ) ) $=
        ( cfv cz wcel c1 wa vm vx vf vi vg vj vz cuz wss cc0 wne cmul cmpt cseq
        cv cif cli wbr wex wrex w3a cfz co wf1o cn csb wceq wo cio cprod 3simpb
        nfcv nfv nfcsb1v nfif eleq1 csbeq1a ifbieq1d cbvmpt cc simpll ralrimiva
        wral nfel1 eleq1d rspc syl5 mpan9 simplr ad2antrr simpr syl6sseq prodrb
        weq biimpd expimpd rexlimdva chash clt wiso wor cfn uzssz zssre eqsstri
        sstri syl6ss ltso soss mpisyl cen fzfi ovex f1oen adantl ensymd sylancr
        cr enfii fz1iso syl2anc fveq2 csbeq1d csbco syl6eqr cbvmptv eqid simprl
        simprr prodmolem2a expr exlimdv adantr eleq2i ex eqtr4d sylan2br seqfeq
        eqeq12d breq1d mpd breq2 syl5ibrcom jaod wb eluzelz uztrn ancoms iftrue
        sseli eqeltrd wn iffalse ax-1cn syl6eqel pm2.61d1 fvmpt2 nffvmpt1 nfeq2
        syl2anr sylan2 anassrs anbi2d exbidv sylan2b rexbidva rexeqdv 3anbi123d
        mpbid sseq2d seqeq1 rspcev syl13anc impbid nfeq1 bitrd iotabidv df-prod
        orcd df-fv 3eqtr4g ) ACUAUOZUHPZUIZBUOZUJUKZULEQEUOZCRZDSUPZUMZFUOZUNZU
        WEUQURZTZBUSZFUWCUTZULUWJUWBUNZUBUOZUQURZVAZUAQUTZSUWBVBVCZCUCUOZVDZUWR
        UWBULFVEEUWKUXCPZDVFZUMZSUNPZVGZTZUCUSZUAVEUTZVHZUBVIULGHUNZUWRUQURZUBV
        ICDEVJUXNUQPAUXMUXOUBAUXMULUWJHUNZUWRUQURZUXOAUXMUXQAUXAUXQUXLAUWTUXQUA
        QUWTUWDUWSTAUWBQRZTZUXQUWDUWPUWSVKUXSUWDUWSUXQUXSUWDTZUWSUXQUXTCEUDUOZD
        VFZUWRUDUWJUWBHEUDQUWIUYACRZUYBSUPUDUWIVLUYCEUYBSUYCEVMEUYADVNZESVLVOEU
        DWNZUWHUYCDUYBSUWGUYACVPEUYADVQZVRVSZUXTAUYCUYBVTRZAUXRUWDWAADVTRZECWCU
        YCUYHAUYIECOWBUYIUYHEUYACEUYBVTUYDWDUYEDUYBVTUYFWEWFWGZWHAUXRUWDWIAHQRZ
        UXRUWDKWJUXSUWDWKACHUHPZUIZUXRUWDACIUYLMJWLZWJWMWOWPWGWQAUXKUXQUAVEAUWB
        VERZTZUXJUXQUCUYPUXDUXIUXQUYPUXDTZUXQUXIUXPUXHUQURZUYQSCWRPVBVCCWSWSUEU
        OZWTZUEUSZUYRUYQCWSXAZCXBRZVUAUYQCXRUIZXRWSXAVUBAVUDUYOUXDACIXRMIUYLXRJ
        UYLQXRHXCZXDXFXEXGWJXHCXRWSXIXJUYQUXBXBRCUXBXKURVUCSUWBXLUYQUXBCUXDUXBC
        XKURUYPUXBCUXCSUWBVBXMXNXOXPCUXBXSXQCWSUEXTYAUYQUYTUYRUEUYPUXDUYTUYRUYP
        UXDUYTTZTZCUYBUCUFUDUWJUXGUFVEUDUFUOZUYSPUYBVFUMZUYSHUWBUYGVUGAUYCUYHAU
        YOVUFWAUYJWHFUFVEUXFUDVUHUXCPZUYBVFZFUFWNZUXFEVUJDVFVUKVULEUXEVUJDUWKVU
        HUXCYBYCEUDVUJDYDYEYFVUIYGAUYOVUFWIAUYKUYOVUFKWJAUYMUYOVUFUYNWJUYPUXDUY
        TYHUYPUXDUYTYIYJYKYLUUAUWRUXHUXPUQUUBUUCWPYLWQUUDAUXQUXMAUXQTZUXAUXLVUM
        UYKCIUIZUWOFIUTZUXQUXAAUYKUXQKYMAVUNUXQMYMAVUOUXQAUWFULGUWKUNZUWEUQURZT
        ZBUSZFIUTVUOLAVUSUWOFIUWKIRAUWKUYLRZVUSUWOUUEIUYLUWKJYNAVUTTZVURUWNBVVA
        VUQUWMUWFVVAVUPUWLUWEUQVVAULUGGUWJUWKVUTUWKQRAHUWKUUFXOAVUTUGUOZUWKUHPR
        ZVVBGPZVVBUWJPZVGZVUTVVCTAVVBUYLRZVVFVVCVUTVVGUWKVVBHUUGUUHAUWGGPZUWGUW
        JPZVGZEUYLWCVVGVVFAVVJEUYLUWGUYLRZAUWGIRZVVJIUYLUWGJYNZAVVLTZVVHUWIVVIN
        VVLUWGQRUWIVTRZVVIUWIVGAIQUWGIUYLQJVUEXEUUJAUWHVVOAUWHVVOAUWHTUWIDVTUWH
        UWIDVGAUWHDSUUIXOOUUKYOUWHUULUWISVTUWHDSUUMUUNUUOUUPEQUWIVTUWJUWJYGUUQU
        UTZYPYQWBVVJVVFEVVBUYLEVVDVVEEQUWIVVBUURZUUSEUGWNZVVHVVDVVIVVEUWGVVBGYB
        ZUWGVVBUWJYBZYSWFWHUVAUVBYRYTUVCUVDUVEUVFUVIYMAUXQWKUWTVUNVUOUXQVAUAHQU
        WBHVGZUWDVUNUWPVUOUWSUXQVWAUWCICVWAUWCUYLIUWBHUHYBJYEZUVJVWAUWOFUWCIVWB
        UVGVWAUWQUXPUWRUQULUWJUWBHUVKYTUVHUVLUVMUVSYOUVNAUXPUXNUWRUQAULUGUWJGHK
        AVVIVVHVGZEUYLWCVVGVVEVVDVGZAVWCEUYLVVKAVVLVWCVVMVVNVVIUWIVVHVVPNYPYQWB
        VWCVWDEVVBUYLEVVEVVDVVQUVOVVRVVIVVEVVHVVDVVTVVSYSWFWHYRYTUVPUVQUBBCDUCE
        UAFUVRUBUXNUQUVTUWA $.
    $}

    ${
      $d B n $.  $d B y $.  $d F k $.  $d k n $.  $d k ph $.  $d k y $.
      $d M k $.  $d M y $.  $d n ph $.  $d n y $.  $d ph y $.  $d Z k $.
      $d Z n $.  $d Z y $.
      iprod.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = B ) $.
      iprod.5 $e |- ( ( ph /\ k e. Z ) -> B e. CC ) $.
      $( Series product with an upper integer index set (i.e. an infinite
         product.)  (Contributed by Scott Fenton, 5-Dec-2017.) $)
      iprod $p |- ( ph -> prod_ k e. Z B = ( ~~> ` seq M ( x. , F ) ) ) $=
        ( wss ssid a1i cv wcel wa c1 cfv cif wceq iftrue adantl eqtr4d zprod )
        ABHCDEFGHIJKHHNAHOPADQZHRZSUHFUACUICTUBZLUIUJCUCAUICTUDUEUFMUG $.
    $}
  $}

  ${
    zprodn0.1 $e |- Z = ( ZZ>= ` M ) $.
    zprodn0.2 $e |- ( ph -> M e. ZZ ) $.
    zprodn0.3 $e |- ( ph -> X =/= 0 ) $.
    zprodn0.4 $e |- ( ph -> seq M ( x. , F ) ~~> X ) $.

    ${
      $d A k $.  $d A m $.  $d A x $.  $d B m $.  $d B x $.  $d F k $.
      $d F m $.  $d F x $.  $d k m $.  $d k ph $.  $d k x $.  $d M k $.
      $d M m $.  $d m ph $.  $d m x $.  $d M x $.  $d ph x $.  $d X x $.
      $d Z m $.  $d Z x $.
      zprodn0.5 $e |- ( ph -> A C_ Z ) $.
      zprodn0.6 $e |- ( ( ph /\ k e. Z ) ->
         ( F ` k ) = if ( k e. A , B , 1 ) ) $.
      zprodn0.7 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
      $( Nonzero series product with index set a subset of the upper integers.
         (Contributed by Scott Fenton, 6-Dec-2017.) $)
      zprodn0 $p |- ( ph -> prod_ k e. A B = X ) $=
        ( vx vm cprod cli cc cmul cseq cfv ntrivcvgn0 zprod wfun wbr wceq fclim
        cdm wf ffun ax-mp funbrfv mpsyl eqtrd ) ABCDRUAEFUBZSUCZGAPBCDQEFHIJAPQ
        EFGHIJLKUDMNOUESUFZAUQGSUGURGUHSUJZTSUKUSUIUTTSULUMLUQGSUNUOUP $.
    $}

    ${
      $d F k $.  $d k ph $.  $d M k $.  $d Z k $.
      iprodn0.5 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = B ) $.
      iprodn0.6 $e |- ( ( ph /\ k e. Z ) -> B e. CC ) $.
      $( Nonzero series product with an upper integer index set (i.e. an
         infinite product.)  (Contributed by Scott Fenton, 6-Dec-2017.) $)
      iprodn0 $p |- ( ph -> prod_ k e. Z B = X ) $=
        ( wss ssid a1i cv wcel wa c1 cfv cif wceq iftrue adantl eqtr4d zprodn0
        ) AGBCDEFGHIJKGGNAGOPACQZGRZSUHDUABUIBTUBZLUIUJBUCAUIBTUDUEUFMUG $.
    $}
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Finite products
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d A f $.  $d A i $.  $d A j $.  $d A k $.  $d A m $.  $d A n $.  $d A x $.
    $d A y $.  $d B f $.  $d B i $.  $d B j $.  $d B m $.  $d B n $.  $d B x $.
    $d B y $.  $d C f $.  $d C k $.  $d F f $.  $d f i $.  $d f j $.  $d f k $.
    $d F k $.  $d f m $.  $d f n $.  $d F n $.  $d f ph $.  $d f x $.
    $d f y $.  $d G f $.  $d G k $.  $d G m $.  $d G n $.  $d G x $.  $d i j $.
    $d i k $.  $d i m $.  $d i n $.  $d i ph $.  $d i x $.  $d j k $.
    $d j m $.  $d j n $.  $d j ph $.  $d j x $.  $d k m $.  $d k n $.
    $d k ph $.  $d k x $.  $d k y $.  $d M f $.  $d M k $.  $d M m $.
    $d m n $.  $d M n $.  $d m ph $.  $d m x $.  $d M x $.  $d m y $.
    $d n ph $.  $d n x $.  $d n y $.  $d ph x $.  $d x y $.
    fprod.1 $e |- ( k = ( F ` n ) -> B = C ) $.
    fprod.2 $e |- ( ph -> M e. NN ) $.
    fprod.3 $e |- ( ph -> F : ( 1 ... M ) -1-1-onto-> A ) $.
    fprod.4 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    fprod.5 $e |- ( ( ph /\ n e. ( 1 ... M ) ) -> ( G ` n ) = C ) $.
    $( The value of a product over a nonempty finite set.  (Contributed by
       Scott Fenton, 6-Dec-2017.) $)
    fprod $p |- ( ph -> prod_ k e. A B = ( seq 1 ( x. , G ) ` M ) ) $=
      ( vm cfv wcel c1 cn wceq vy vx vf vj vi cprod cv cuz wss cc0 wne cmul cif
      cz cmpt cseq cli wbr wa wex wrex w3a cfz co wf1o csb cio df-prod cvv fvex
      wo wb wmo wi nfcv nfv nfcsb1v nfif weq eleq1 csbeq1a ifbieq1d cbvmpt wral
      cc ralrimiva nfel1 eleq1d rspc mpan9 fveq2 csbeq1d syl6eqr cbvmptv prodmo
      csbco wf f1of syl ovex sylancl nnuz syl6eleq elfznn adantl syl6eqelr eqid
      fex fvmpt2 syl2anc eqtr4d nffvmpt1 nfeq2 eqeq12d seqfveq jca f1oeq1 fveq1
      syl6eq mpteq2dv seqeq3d fveq1d eqeq2d anbi12d spcegv f1oeq2 exbidv rspcev
      csbie sylc oveq2 olcd breq2 3anbi3d rexbidv eqeq1 anbi2d orbi12d mpanl1
      moi2 ancom2s expr syl5ibrcom impbid adantr iota5 mpan2 syl5eq ) ABCEUFBOU
      GZUHPZUIZUAUGZUJUKULEUNEUGZBQZCRUMZUOZFUGZUPUULUQURUSUAUTFUUJVAZULUUPUUIU
      PZUBUGZUQURZVBZOUNVAZRUUIVCVDZBUCUGZVEZUUTUUIULFSEUUQUVEPZCVFZUOZRUPZPZTZ
      USZUCUTZOSVAZVKZUBVGZIULHRUPZPZUBUABCUCEOFVHAUVSVIQZUVQUVSTIUVRVJZAUVPUBU
      VSVIAUVPUUTUVSTZVLUVTAUVPUWBAUVPUBVMZUUKUURUUSUVSUQURZVBZOUNVAZUVFUVSUVKT
      ZUSZUCUTZOSVAZVKZUVPUWBVNAUBUABEUDUGZCVFZUCUEUDOFUUPUVIEUDUNUUOUWLBQZUWMR
      UMUDUUOVOUWNEUWMRUWNEVPEUWLCVQZERVOVREUDVSZUUNUWNCUWMRUUMUWLBVTEUWLCWAZWB
      WCACWEQZEBWDUWNUWMWEQZAUWREBMWFUWRUWSEUWLBEUWMWEUWOWGUWPCUWMWEUWQWHWIWJFU
      ESUVHUDUEUGZUVEPZUWMVFZFUEVSZUVHEUXACVFUXBUXCEUVGUXACUUQUWTUVEWKWLEUDUXAC
      WPWMWNWOAUWJUWFAISQRIVCVDZBUVEVEZUVSIUVJPZTZUSZUCUTZUWJKAGVIQZUXDBGVEZUVS
      IULFSDUOZRUPZPZTZUSZUXIAUXDBGWQZUXDVIQUXJAUXKUXQLUXDBGWRWSRIVCWTUXDBVIGXH
      XAAUXKUXOLAULEHUXLRIAISRUHPKXBXCAUUQHPZUUQUXLPZTZFUXDWDUUMUXDQUUMHPZUUMUX
      LPZTZAUXTFUXDAUUQUXDQZUSZUXRDUXSNUYEUUQSQZDVIQUXSDTUYDUYFAUUQIXDXEUYEDUXR
      VINUUQHVJXFFSDVIUXLUXLXGXIXJXKWFUXTUYCFUUMUXDFUYAUYBFSDUUMXLXMFEVSUXRUYAU
      XSUYBUUQUUMHWKUUQUUMUXLWKXNWIWJXOXPUXHUXPUCGVIUVEGTZUXEUXKUXGUXOUXDBUVEGX
      QUYGUXFUXNUVSUYGIUVJUXMUYGUVIUXLULRUYGFSUVHDUYGUVHEUUQGPZCVFDUYGEUVGUYHCU
      UQUVEGXRWLEUYHCDUUQGVJJYIXSXTYAYBYCYDYEYJUWIUXIOISUUIITZUWHUXHUCUYIUVFUXE
      UWGUXGUYIUVDUXDTUVFUXEVLUUIIRVCYKUVDUXDBUVEYFWSUYIUVKUXFUVSUUIIUVJWKYCYDY
      GYHXJYLZUWCUWKUVPUWBUWCUVPUWKUWBUVTUWCUVPUWKUSUWBUWAUVPUWKUBUVSVIUWBUVCUW
      FUVOUWJUWBUVBUWEOUNUWBUVAUWDUUKUURUUTUVSUUSUQYMYNYOUWBUVNUWIOSUWBUVMUWHUC
      UWBUVLUWGUVFUUTUVSUVKYPYQYGYOYRZYTYSUUAUUBXJAUVPUWBUWKUYJUYKUUCUUDUUEUUFU
      UGUUH $.
  $}

  ${
    $d A k $.  $d A m $.  $d A n $.  $d A y $.  $d B m $.  $d B n $.  $d B y $.
    $d k m $.  $d k n $.  $d k y $.  $d m n $.  $d m ph $.  $d N m $.
    $d N n $.  $d n ph $.  $d n y $.  $d N y $.  $d Z k $.  $d Z m $.
    $d Z n $.  $d Z y $.
    fprodntriv.1 $e |- Z = ( ZZ>= ` M ) $.
    fprodntriv.2 $e |- ( ph -> N e. Z ) $.
    fprodntriv.3 $e |- ( ph -> A C_ ( M ... N ) ) $.
    $( A non-triviality lemma for finite sequences.  (Contributed by Scott
       Fenton, 16-Dec-2017.) $)
    fprodntriv $p |- ( ph -> E. n e. Z E. y ( y =/= 0 /\ seq n ( x.
      , ( k e. Z |-> if ( k e. A , B , 1 ) ) ) ~~> y ) ) $=
      ( c1 wcel cmul cli wbr wa cfv wceq vm caddc co cc0 wne cif cmpt cseq wrex
      cv wex cuz syl6eleq peano2uz syl syl6eleqr ax-1ne0 eqid cz eluzelz eleq2s
      cvv peano2zd seqex a1i 1cnd csn cxp simpr cfz csb wss ad2antrr w3a cle wn
      clt zred elfzelz adantl ltp1d elfzle1 ltletrd mpbid intnand elfz2 sylnibr
      ltnled ssneldd iffalsed fzssuz adantr uzss syl6sseqr syl5ss sselda ax-1cn
      cc syl6eqel nfcv nfv nfcsb1v nfif weq eleq1 csbeq1a fvmptf syl2anc elfzuz
      ifbieq1d 1ex fvconst2 3eqtr4d seqfveq eqtrd climconst neeq1 breq2 anbi12d
      prodf1 spcev sylancr seqeq1 breq1d anbi2d exbidv rspcev ) AHMUBUCZINBUJZU
      DUEZOEIEUJZCNZDMUFZUGZYHUHZYIPQZRZBUKZYJOYNFUJZUHZYIPQZRZBUKZFIUIAYHGULSZ
      IAHUUDNYHUUDNZAHIUUDKJUMGHUNUOZJUPAMUDUEZYOMPQZYRUQAMFYOYHVBYHULSZUUIURZA
      HAHINHUSNZKUUKHUUDIGHUTJVAUOZVCYOVBNAOYNYHVDVEAVFAYSUUINZRZYSYOSYSOUUIMVG
      VHZYHUHSZMUUNOUAYNUUOYHYSAUUMVIUUNUAUJZYHYSVJUCZNZRZUUQCNZEUUQDVKZMUFZMUU
      QYNSZUUQUUOSZUUTUVAUVBMUUTCGHVJUCZUUQACUVFVLUUMUUSLVMUUTGUSNUUKUUQUSNZVNZ
      GUUQVOQZUUQHVOQZRZRUUQUVFNUUTUVKUVHUUTUVJUVIUUTHUUQVQQUVJVPUUTHYHUUQUUTHA
      UUKUUMUUSUULVMZVRZUUTYHUUTHUVLVCVRUUTUUQUUSUVGUUNUUQYHYSVSVTVRZUUTHUVMWAU
      USYHUUQVOQUUNUUQYHYSWBVTWCUUTHUUQUVMUVNWHWDWEWEUUQGHWFWGWIWJZUUTUUQINUVCW
      RNUVDUVCTUUNUURIUUQUUNUURUUIIYHYSWKUUNUUIUUDIUUNUUEUUIUUDVLAUUEUUMUUFWLGY
      HWMUOJWNWOWPUUTUVCMWRUVOWQWSEUUQYMUVCIYNWREUUQWTUVAEUVBMUVAEXAEUUQDXBEMWT
      XCEUAXDYLUVADUVBMYKUUQCXEEUUQDXFXJYNURXGXHUUTUUQUUINZUVEMTUUSUVPUUNUUQYHY
      SXIVTUUIMUUQXKXLUOXMXNUUMUUPMTAYHYSUUIUUJXTVTXOXPYQUUGUUHRBMXKYIMTYJUUGYP
      UUHYIMUDXQYIMYOPXRXSYAYBUUCYRFYHIYSYHTZUUBYQBUVQUUAYPYJUVQYTYOYIPOYNYSYHY
      CYDYEYFYGXH $.
  $}

  $( A product over the empty set is one.  (Contributed by Scott Fenton,
     5-Dec-2017.) $)
  prod0 $p |- prod_ k e. (/) A = 1 $=
    ( c1 cz wcel c0 cprod wceq 1z cn csn cxp nnuz id cc0 wne ax-1ne0 prodfclim1
    a1i wss 0ss cv wa cfv cif fvconst2g noel iffalsei syl6eqr cc pm2.21i adantl
    zprodn0 ax-mp ) CDEZFABGCHIUOFABJCKLZCCJMUONCOPUOQSCJMRFJTUOJUASUOBUBZJEUCU
    QUPUDCUQFEZACUEJCUQDUFURACUQUGZUHUIURAUJEZUOURUTUSUKULUMUN $.

  ${
    $d A f j k $.  $d M k $.
    $( Any product of one over a valid set is one.  (Contributed by Scott
       Fenton, 7-Dec-2017.) $)
    prod1 $p |- ( ( A C_ ( ZZ>= ` M ) \/ A e. Fin ) ->
        prod_ k e. A 1 = 1 ) $=
      ( vf vj cuz cfv wss c1 cprod wceq wcel cz wa cxp simpr adantl cv c0 cn wn
      cfn csn eqid cc0 wne ax-1ne0 a1i cmul cli wbr prodfclim1 cif 1ex fvconst2
      cseq simpl ifid syl6eqr 1cnd zprodn0 cdm cpw uzf fdmi eleq2i ndmfv sseq2d
      sylnbir biimpac ss0 prodeq1 prod0 syl6eq 3syl pm2.61dan chash cfz co wf1o
      wex wo fz1f1o eqidd elfznn syl fprod nnuz prodf1 adantr eqtrd exlimdv imp
      ex jaoi ) ACFGZHZAIBJZIKZAUBLZWQCMLZWSWQXANZAIBWPIUCZOZCIWPWPUDZWQXAPIUEU
      FXBUGUHXAUIXDCUPIUJUKWQCWPXEULQWQXAUQBRZWPLZXFXDGZXFALZIIUMZKXBXGXHIXJWPI
      XFUNUOXIIURUSQXBXINUTVAWQXAUAZNASHZASKZWSXKWQXLXKWPSAXACFVBZLWPSKXNMCMMVC
      FVDVEVFCFVGVIVHVJAVKXMWRSIBJIASIBVLIBVMVNZVOVPWTXMAVQGZTLZIXPVRVSZADRZVTZ
      DWAZNZWBWSADWCXMWSYBXOXQYAWSXQXTWSDXQXTWSXQXTNZWRXPUITXCOZIUPGZIYCAIIBEXS
      YDXPXFERZXSGKIWDXQXTUQXQXTPYCXINUTYFXRLZYFYDGIKZYCYGYFTLYHYFXPWETIYFUNUOW
      FQWGXQYEIKXTIXPTWHWIWJWKWNWLWMWOWFWO $.
  $}

  ${
    $d A j k $.  $d B j $.
    $( A lemma to facilitate conversions from the function form to the
       class-variable form of a product.  (Contributed by Scott Fenton,
       7-Dec-2017.) $)
    prodfc $p |- prod_ j e. A ( ( k e. A |-> B ) ` j ) = prod_ k e. A B $=
      ( cv cmpt cfv cprod cid eqid fvmpt2i prodeq2i nffvmpt1 nfcv fveq2 prod2id
      cbvprodi 3eqtr4i ) ADEZDABFZGZDHABIGZDHACEZTGZCHABDHAUAUBDDABTTJKLAUDUACD
      DABUCMCUANUCSTOQABDPR $.
  $}

  ${
    $d A f $.  $d A k $.  $d A m $.  $d A n $.  $d B f $.  $d B m $.  $d B n $.
    $d C f $.  $d C m $.  $d C n $.  $d D f $.  $d D k $.  $d D m $.  $d f k $.
    $d f m $.  $d F m $.  $d f n $.  $d F n $.  $d f ph $.  $d G k $.
    $d k m $.  $d k n $.  $d k ph $.  $d m n $.  $d m ph $.  $d n ph $.
    fprodf1o.1 $e |- ( k = G -> B = D ) $.
    fprodf1o.2 $e |- ( ph -> C e. Fin ) $.
    fprodf1o.3 $e |- ( ph -> F : C -1-1-onto-> A ) $.
    fprodf1o.4 $e |- ( ( ph /\ n e. C ) -> ( F ` n ) = G ) $.
    fprodf1o.5 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    $( Re-index a finite product using a bijection.  (Contributed by Scott
       Fenton, 7-Dec-2017.) $)
    fprodf1o $p |- ( ph -> prod_ k e. A B = prod_ n e. C D ) $=
      ( vm c0 wceq cprod cfv wcel vf chash cn c1 cfz co cv wf1o wa prod0 adantr
      wex wfo wb f1oeq2 adantl mpbid f1ofo fo00 simprbi prodeq1d prodeq1 syl6eq
      3eqtr4a ex cmpt cmul ccom cseq fveq2 fveq2d simprl simprr cc wf ffvelrnda
      f1of eqid fmptd syldan adantlr simpr f1oco syl2an fvco3 sylan eqtrd fprod
      syl cid eqeltrrd fvmpti fvmpt2i 3eqtr4rd ralrimiva nffvmpt1 nfeq1 eqeq12d
      wral weq rspc prodeq2dv prodfc 3eqtr3g expr exlimdv expimpd cfn wo fz1f1o
      mpan9 mpjaod ) ADPQZBCFRZDEGRZQZDUBSZUCTZUDXQUEUFZDUAUGZUHZUAULZUIZAXMXPA
      XMUIZPCFRUDXNXOCFUJYDBPCFYDPBHUMZBPQZYDPBHUHZYEYDDBHUHZYGAYHXMLUKXMYHYGUN
      ADPBHUOUPUQPBHURWIYEHPQYFBHUSUTWIVAXMXOUDQAXMXOPEGRUDDPEGVBEGUJVCUPVDVEAX
      RYBXPAXRUIYAXPUAAXRYAXPAXRYAUIZUIZBOUGZFBCVFZSZORZDYKGDEVFZSZORZXNXOYJDYK
      HSZYLSZORXQVGYLHXTVHZVHZUDVISYQYNYJDYSGUGZXTSZHSZYLSZOGXTUUAXQYKUUCQYRUUD
      YLYKUUCHVJVKAXRYAVLZAXRYAVMAYKDTZYSVNTZYIAUUGYRBTUUHADBYKHAYHDBHVOLDBHVQW
      IZVPABVNYRYLAFBCVNYLNYLVRZVSZVPVTWAYJUUBXSTZUIZUUBUUASZUUBYTSZYLSZUUEYJXS
      BYTVOZUULUUNUUPQYJXSBYTUHZUUQAYHYAUURYILXRYAWBXSDBHXTWCWDZXSBYTVQWIXSBUUB
      YLYTWEWFZUUMUUOUUDYLYJXSDXTVOZUULUUOUUDQYIUVAAYAUVAXRXSDXTVQUPUPXSDUUBHXT
      WEWFVKWGWHYJDYPYSOAUUGYPYSQZYIAUUBYOSZUUBHSZYLSZQZGDWSUUGUVBAUVFGDAUUBDTZ
      UIZIYLSZEWJSZUVEUVCUVHIBTUVIUVJQUVHUVDIBMADBUUBHUUIVPWKFICEBYLJUUJWLWIUVH
      UVDIYLMVKUVGUVCUVJQAGDEYOYOVRWMUPWNWOUVFUVBGYKDGYPYSGDEYKWPWQGOWTZUVCYPUV
      EYSUUBYKYOVJUVKUVDYRYLUUBYKHVJVKWRXAXKWAXBYJBYMUUPOGYTUUAXQYKUUOYLVJUUFUU
      SYJBVNYKYLABVNYLVOYIUUKUKVPUUTWHWNBCOFXCDEOGXCXDXEXFXGADXHTXMYCXIKDUAXJWI
      XL $.
  $}

  ${
    $d A k $.  $d A m $.  $d A n $.  $d A y $.  $d B k $.  $d B m $.  $d B n $.
    $d B y $.  $d C m $.  $d C n $.  $d C y $.  $d k m $.  $d k n $.
    $d k ph $.  $d k y $.  $d M m $.  $d m n $.  $d M n $.  $d m ph $.
    $d m y $.  $d M y $.  $d n ph $.  $d n y $.  $d ph y $.  $d M k $.
    prodss.1 $e |- ( ph -> A C_ B ) $.
    prodss.2 $e |- ( ( ph /\ k e. A ) -> C e. CC ) $.
    prodss.3 $e |- ( ph -> E. n e. ( ZZ>= ` M ) E. y ( y =/= 0 /\
       seq n ( x. ,
           ( k e. ( ZZ>= ` M ) |-> if ( k e. B , C , 1 ) ) ) ~~> y ) ) $.
    prodss.4 $e |- ( ( ph /\ k e. ( B \ A ) ) -> C = 1 ) $.
    prodss.5 $e |- ( ph -> B C_ ( ZZ>= ` M ) ) $.
    $( Change the index set to a subset in an upper integer product.
       (Contributed by Scott Fenton, 11-Dec-2017.) $)
    prodss $p |- ( ph -> prod_ k e. A C = prod_ k e. B C ) $=
      ( wcel wceq wa c1 adantr cc adantl vm cz cprod cmpt cfv cmul cuz cif cseq
      cv cli eqid simpr cc0 wne wbr wex wrex wss sstrd csb iftrue wral wi ex wn
      cdif eldif syl6eqel sylan2br expr pm2.61d ralrimiva nfcsb1v nfel1 csbeq1a
      ax-1cn weq eleq1d rspc mpan9 eqeltrd iffalse pm2.61dan nfcv nfif ifbieq1d
      nfv eleq1 fvmptf syl2anc sselda adantlr syldan fvmpts eqtrd eqeq1d eqtr4d
      nfeq1 ssneld imp syl wf fmptd ffvelrnda zprod ancoms sylan ifeq1d 3eqtr3g
      prodfc c0 cdm cpw uzf fdmi eleq2i ndmfv sylnbir sseqtrd ss0 prodeq1d ) AH
      UBNZCEFUCZDEFUCZOAYCPZCUAUJZFCEUDZUEZUAUCZDYGFDEUDZUEZUAUCZYDYEYFYJUFFHUG
      UEZFUJZDNZEQUHZUDZHUIUKUEYMYFBCYIUAGYRHYNYNULZAYCUMZABUJZUNUOUFYRGUJUIUUA
      UKUPPBUQGYNURYCKRZACYNUSYCACDYNIMUTRYFYGYNNZPZYGYRUEZYGDNZFYGEVAZQUHZYGCN
      ZYIQUHZUUDUUCUUHSNZUUEUUHOZYFUUCUMYFUUKUUCAUUKYCAUUFUUKAUUFPUUHUUGSUUFUUH
      UUGOZAUUFUUGQVBZTAESNZFDVCUUFUUGSNZAUUOFDAYPPYOCNZUUOAUUQUUOVDYPAUUQUUOJV
      ERAYPUUQVFZUUOYPUURPAYODCVGZNZUUOYODCVHAUUTPEQSLVQVIVJVKVLZVMUUOUUPFYGDFU
      UGSFYGEVNZVOFUAVRZEUUGSFYGEVPZVSVTWAZWBUUFVFZUUKAUVFUUHQSUUFUUGQWCZVQVITW
      DRZRFYGYQUUHYNYRSFYGWEUUFFUUGQUUFFWHUVBFQWEWFUVCYPUUFEUUGQYOYGDWIUVDWGYRU
      LWJZWKYFUUJUUHOZUUCYFUUFUVJYFUUFPZUUJUUGUUHUVKUUIUUJUUGOZYFUUIUVLVDUUFYFU
      UIUVLYFUUIPZUUJYIUUGUUIUUJYIOYFUUIYIQVBTUVMUUIUUPYIUUGOYFUUIUMYFUUIUUFUUP
      YFCDYGACDUSZYCIRZWLAUUFUUPYCUVEWMZWNFYGECYHSYHULZWOWKWPVERYFUUFUUIVFZUVLY
      FUUFUVRPZPUUJQUUGUVSUUJQOZYFUVRUVTUUFUUIYIQWCZTTUVSYFYGUUSNZUUGQOZYGDCVHY
      FEQOZFUUSVCZUWBUWCAUWEYCAUWDFUUSLVMRUWDUWCFYGUUSFUUGQUVBWSUVCEUUGQUVDWQVT
      WAVJWRVKVLUUFUUMYFUUNTWRYFUVFPZUUJQUUHUWFUVRUVTYFUVFUVRYFCDYGUVOWTXAUWAXB
      UVFUUHQOYFUVGTWRWDRWRYFCSYGYHACSYHXCYCAFCESYHJUVQXDRXEXFYFBDYLUAGYRHYNYSY
      TUUBADYNUSZYCMRUUDUUEUUHUUFYLQUHZYFUUKUUCUULUVHUUCUUKUULUVIXGXHUUDUUFUWHU
      UHOZYFUUFUWIUUCUVKUUFYLUUGQUVKUUFUUPYLUUGOYFUUFUMUVPFYGEDYKSYKULZWOWKXIWM
      UVFUWIUUDUVFUWHQUUHUUFYLQWCUVGWRTWDWRYFDSYGYKADSYKXCYCAFDESYKUVAUWJXDRXEX
      FWRCEUAFXKDEUAFXKXJAYCVFZPZCDEFUWLCXLDUWLCXLUSCXLOUWLCDXLAUVNUWKIRUWLDYNX
      LAUWGUWKMRUWKYNXLOZAYCHUGXMZNUWMUWNUBHUBUBXNUGXOXPXQHUGXRXSTXTZUTCYAXBUWL
      DXLUSDXLOUWODYAXBWRYBWD $.
  $}

  ${
    $d A f $.  $d A k $.  $d A m $.  $d A n $.  $d B f $.  $d B k $.  $d B m $.
    $d B n $.  $d C f $.  $d C m $.  $d C n $.  $d f k $.  $d f m $.  $d f n $.
    $d f ph $.  $d k m $.  $d k n $.  $d k ph $.  $d m n $.  $d m ph $.
    $d n ph $.  $d A y $.  $d B y $.  $d C y $.  $d f y $.  $d k y $.
    $d m y $.  $d n y $.  $d ph y $.
    fprodss.1 $e |- ( ph -> A C_ B ) $.
    fprodss.2 $e |- ( ( ph /\ k e. A ) -> C e. CC ) $.
    fprodss.3 $e |- ( ( ph /\ k e. ( B \ A ) ) -> C = 1 ) $.
    fprodss.4 $e |- ( ph -> B e. Fin ) $.
    $( Change the index set to a subset in a finite sum.  (Contributed by Scott
       Fenton, 16-Dec-2017.) $)
    fprodss $p |- ( ph -> prod_ k e. A C = prod_ k e. B C ) $=
      ( vm vn c0 wceq cprod cfv wcel c1 wa syl cc vf vy chash cn cfz co cv wf1o
      wex wss sseq2 ss0 syl6bi prodeq1 eqcomd sylan9eq expcom syld syl5com cmpt
      ccnv cima cdm cnvimass wf simprr f1of fdm syl5sseq wfn wb f1ofn ffvelrnda
      elpreima ex adantrd sylbid imp wi adantr wn cdif ax-1cn syl6eqel sylan2br
      eldif expr pm2.61d adantlr eqid fmptd syldan cuz simprl nnuz syl6eleq a1i
      ssid fprodntriv eldifi sylan2 eldifn adantl biantrurd bitr4d mtbid eldifd
      cres difss resmpt ax-mp fveq1i fvres syl5eqr csn sylibr ad2antrr ffvelrnd
      elsn2 elsni eqtr3d fzssuz prodss resmptd fveq1d sylan9req prodeq2dv fveq2
      1ex fzfid fisuppfi wf1 f1of1 f1ores syl2anc wfo foimacnv fprodf1o prodfc
      f1ofo f1oeq3 mpbid sselda eqtrd eqidd 3eqtr4d 3eqtr3g exlimdv expimpd cfn
      wo fz1f1o mpjaod ) ACLMZBDENZCDENZMZCUCOZUDPZQUURUEUFZCUAUGZUHZUAUIZRZABC
      UJZUUNUUQFUUNUVEBLMZUUQUUNUVEBLUJUVFCLBUKBULUMUVFUUNUUQUVFUUNUUOLDENZUUPB
      LDEUNUUNUUPUVGCLDEUNUOUPUQURUSAUUSUVCUUQAUUSRUVBUUQUAAUUSUVBUUQAUUSUVBRZR
      ZBJUGZEBDUTZOZJNZCUVJECDUTZOZJNZUUOUUPUVIUVAVABVBZKUGZUVAOZUVNOZKNZUUTUVT
      KNUVMUVPUVIUBUVQUUTUVTKJQUVIUVAVCZUVQUUTUVABVDUVIUUTCUVAVEZUWBUUTMUVIUVBU
      WCAUUSUVBVFZUUTCUVAVGSZUUTCUVAVHSVIZUVIUVRUVQPZUVSCPZUVTTPUVIUWGUWHUVIUWG
      UVRUUTPZUVSBPZRZUWHUVIUVAUUTVJZUWGUWKVKZUVIUVBUWLUWDUUTCUVAVLSUUTUVRBUVAV
      NSZUVIUWIUWHUWJUVIUWIUWHUVIUUTCUVRUVAUWEVMZVOVPVQVRUVICTUVSUVNUVIECDTUVNA
      EUGZCPZDTPZUVHAUWQRUWPBPZUWRAUWSUWRVSUWQAUWSUWRGVOVTAUWQUWSWAZUWRUWQUWTRA
      UWPCBWBZPZUWRUWPCBWFAUXBRZDQTHWCWDWEWGWHWIUVNWJWKZVMWLUVIUBUUTUVTKJQUURQW
      MOZUXEWJUVIUURUDUXEAUUSUVBWNWOWPUUTUUTUJUVIUUTWRWQWSUVIUVRUUTUVQWBPZRZUVS
      EUXADUTZOZUVTQUXGUVSUXAPZUXIUVTMUXGUVSCBUXFUVIUWIUWHUVRUUTUVQWTZUWOXAUXGU
      WGUWJUXFUWGWAUVIUVRUUTUVQXBXCUXGUWGUWKUWJUVIUWMUXFUWNVTUXGUWIUWJUXFUWIUVI
      UXKXCXDXEXFXGZUXJUXIUVSUVNUXAXHZOUVTUVSUXMUXHUXACUJUXMUXHMCBXIECUXADXJXKX
      LUVSUXAUVNXMXNSUXGUXIQXOZPUXIQMUXGUXAUXNUVSUXHAUXAUXNUXHVEUVHUXFAEUXADUXN
      UXHUXCDQMDUXNPHDQYIXSXPUXHWJWKXQUXLXRUXIQXTSYAUUTUXEUJUVIQUURYBWQYCUVIUVM
      BUVOJNUWAUVIBUVLUVOJUVIUVJBPZUVLUVJUVNBXHZOUVOUVIUVJUXPUVKUVIECBDAUVEUVHF
      VTZYDYEUVJBUVNXMYFYGUVIBUVOUVQUVTJKUVAUVQXHZUVSUVJUVSUVNYHZUVIUUTCBUVAUVI
      QUURYJZUWEYKUVIUVQUVAUVQVBZUXRUHZUVQBUXRUHZUVIUUTCUVAYLZUVQUUTUJUYBUVIUVB
      UYDUWDUUTCUVAYMSUWFUUTCUVQUVAYNYOUVIUYABMZUYBUYCVKUVIUUTCUVAYPZUVEUYEUVIU
      VBUYFUWDUUTCUVAYTSUXQUUTCBUVAYQYOUYABUVQUXRUUASUUBUWGUVRUXROUVSMUVIUVRUVQ
      UVAXMXCUVIUXOUVJCPUVOTPUVIBCUVJUXQUUCUVICTUVJUVNUXDVMZWLYRUUDUVICUVOUUTUV
      TJKUVAUVSUXSUXTUWDUVIUWIRUVSUUEUYGYRUUFBDJEYSCDJEYSUUGWGUUHUUIACUUJPUUNUV
      DUUKICUAUULSUUM $.
  $}

  ${
    $d A j $.  $d A m $.  $d F j $.  $d F k $.  $d F m $.  $d j k $.  $d j m $.
    $d j n $.  $d j ph $.  $d k m $.  $d k ph $.  $d M j $.  $d M k $.
    $d M m $.  $d m n $.  $d M n $.  $d m p $.  $d M p $.  $d m ph $.
    $d N j $.  $d N k $.  $d N m $.  $d N n $.  $d n p $.  $d N p $.
    $d n ph $.  $d p ph $.
    fprodser.1 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) = A ) $.
    fprodser.2 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    fprodser.3 $e |- ( ( ph /\ k e. ( M ... N ) ) -> A e. CC ) $.
    $( A finite product expressed in terms of a partial product of an infinite
       sequence.  The recursive definition of a finite product follows from
       here.  (Contributed by Scott Fenton, 14-Dec-2017.) $)
    fprodser $p |- ( ph -> prod_ k e. ( M ... N ) A =
          ( seq M ( x. , F ) ` N ) ) $=
      ( vn vm vp co cfv c1 caddc wcel wceq cc adantr vj cprod cv cmpt cmul cseq
      cfz prodfc cmin ccom fveq2 cn cuz eluzelz syl zcnd eluzel2 1cnd subadd23d
      cz eqcomd cn0 uznn0sub nn0p1nn eqeltrd wral wreu pncan3d pnpncand oveq12d
      wf1o wsbc eleq2d biimpa elfzelz adantl peano2zm npcand simpr oveq1 eleq1d
      wa ovex sbcie sylibr syldan ralrimiva wb 1zzd nnzd fzshftral syl3anc wrex
      mpbird weq wi fzsubel syl22anc mpbid nncand eleqtrd eqeq2d rspcev syl2anc
      subsub2d anim12i simprl simprr addcan2d syl5ib sylan2 ralrimivva sylanbrc
      eqtr2 reu4 eqid fmptd ffvelrnda csb fzaddel nfcsb1v nfeq2 csbeq1a eqeq12d
      f1ompt rspc mpan9 f1of fvco3 sylan fvmpt fveq2d eqtrd nfel1 3eqtr4d fprod
      wf fvmpts nnuz syl6eleq seqshft2 seqeq1d fveq12d 3eqtrd syl5eqr ) AEFUGMZ
      BCUBUUFUAUCZCUUFBUDZNZUAUBZFUEDEUFZNZUUFBUACUHAUUJFOEUIMPMZUEDJOUUMUGMZJU
      CZEOUIMZPMZUDZUJZOUFNUUMUUPPMZUEDOUUPPMZUFZNUULAUUFUUIKUCZUURNZUUHNZUAKUU
      RUUSUUMUUGUVDUUHUKAUUMFEUIMZOPMZULAUVGUUMAFEOAFAFEUMNQZFUTQZHEFUNUOZUPZAE
      AUVHEUTQZHEFUQUOZUPZAURZUSVAAUVFVBQZUVGULQAUVHUVPHEFVCUOUVFVDUOVEZAUUQUUF
      QZJUUNVFZLUCZUUQRZJUUNVGZLUUFVFUUNUUFUURVKZAUVSUVRJUVTUUPUIMZVLZLUVAUUTUG
      MZVFZAUWELUWFAUVTUWFQZUVTUUFQZUWEAUWHUWIAUWFUUFUVTAUVAEUUTFUGAOEUVOUVNVHZ
      AFOEUVKUVOUVNVIZVJZVMVNAUWIWBZUWDUUPPMZUUFQZUWEUWMUWNUVTUUFUWMUVTUUPUWIUV
      TSQAUWIUVTUVTEFVOZUPVPAUUPSQZUWIAUUPAUVLUUPUTQZUVMEVQUOZUPZTVRZAUWIVSZVEU
      VRUWOJUWDUVTUUPUIWCUUOUWDRZUUQUWNUUFUUOUWDUUPPVTZWAWDWEWFWGAOUTQZUUMUTQZU
      WRUVSUWGWHAWIAUUMUVQWJZUWSUVRJLUUPOUUMWKWLWNAUWBLUUFUWMUWAJUUNWMZUWAUVTUV
      CUUPPMZRZWBZJKWOZWPZKUUNVFJUUNVFZUWBUWMUWDUUNQUVTUWNRZUXHUWMUWDEUUPUIMZFU
      UPUIMZUGMZUUNUWMUWIUWDUXRQZUXBUWMUVLUVIUVTUTQZUWRUWIUXSWHAUVLUWIUVMTAUVIU
      WIUVJTUWIUXTAUWPVPAUWRUWIUWSTUVTUUPEFWQWRWSAUXRUUNRUWIAUXPOUXQUUMUGAEOUVN
      UVOWTAFEOUVKUVNUVOXEVJTXAUWMUWNUVTUXAVAUWAUXOJUWDUUNUXCUUQUWNUVTUXDXBXCXD
      AUXNUWIAUXMJKUUNUUNUUOUUNQZUVCUUNQZWBAUUOSQZUVCSQZWBZUXMUYAUYCUYBUYDUYAUU
      OUUOOUUMVOUPUYBUVCUVCOUUMVOZUPXFUXKUUQUXIRAUYEWBZUXLUVTUUQUXIXNUYGUUOUVCU
      UPAUYCUYDXGAUYCUYDXHAUWQUYEUWTTXIXJXKXLTUWAUXJJKUUNUXLUUQUXIUVTUUOUVCUUPP
      VTZXBXOXMWGJLUUNUUFUUQUURUURXPZYEXMZAUUFSUUGUUHACUUFBSUUHIUUHXPZXQXRAUYBW
      BZUXIDNZCUXIBXSZUVCUUSNZUVEAUYBUXIUUFQZUYMUYNRZUYLUXIUWFUUFUYLUYBUXIUWFQZ
      AUYBVSUYLUXEUXFUVCUTQZUWRUYBUYRWHUYLWIAUXFUYBUXGTUYBUYSAUYFVPAUWRUYBUWSTU
      VCUUPOUUMXTWRWSAUWFUUFRUYBUWLTXAZACUCZDNZBRZCUUFVFUYPUYQAVUCCUUFGWGVUCUYQ
      CUXIUUFCUYMUYNCUXIBYAZYBVUAUXIRZVUBUYMBUYNVUAUXIDUKCUXIBYCZYDYFYGWFUYLUYO
      UVDDNZUYMAUUNUUFUURYQZUYBUYOVUGRAUWCVUHUYJUUNUUFUURYHUOUUNUUFUVCDUURYIYJU
      YLUVDUXIDUYBUVDUXIRAJUVCUUQUXIUUNUURUYHUYIUVCUUPPWCYKVPZYLYMZUYLUVEUXIUUH
      NZUYNUYLUVDUXIUUHVUIYLUYLUYPUYNSQZVUKUYNRUYTAUYBUYPVULUYTABSQZCUUFVFUYPVU
      LAVUMCUUFIWGVUMVULCUXIUUFCUYNSVUDYNVUEBUYNSVUFWAYFYGWFCUXIBUUFUUHSUYKYRXD
      YMYOYPAUEKUUSDUUPOUUMAUUMULOUMNUVQYSYTUWSVUJUUAAUUTFUVBUUKAUVAEUEDUWJUUBU
      WKUUCUUDUUE $.
  $}

  ${
    fprodcllem.1 $e |- ( ph -> S C_ CC ) $.
    fprodcllem.2 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x x. y ) e. S ) $.
    fprodcllem.3 $e |- ( ph -> A e. Fin ) $.
    fprodcllem.4 $e |- ( ( ph /\ k e. A ) -> B e. S ) $.

    ${
      $d A f $.  $d A k $.  $d A m $.  $d A x $.  $d A y $.  $d B f $.
      $d B m $.  $d B x $.  $d B y $.  $d f k $.  $d f m $.  $d f ph $.
      $d f x $.  $d f y $.  $d k m $.  $d k ph $.  $d k x $.  $d k y $.
      $d m ph $.  $d m x $.  $d ph x $.  $d ph y $.  $d S f $.  $d S k $.
      $d S x $.  $d S y $.  $d x y $.
      fprodcl2lem.5 $e |- ( ph -> A =/= (/) ) $.
      $( Finite product closure lemma.  (Contributed by Scott Fenton,
         14-Dec-2017.) $)
      fprodcl2lem $p |- ( ph -> prod_ k e. A B e. S ) $=
        ( vf vm wcel cfv c1 cv wa cc c0 wceq cprod chash cn cfz co wf1o wex wne
        wn a1d necon4bd cmul cmpt ccom prodfc fveq2 simprl simprr adantr sseldd
        cseq wss eqid fmptd ffvelrnda adantlr f1of ad2antll fvco3 sylan syl5eqr
        wf fprod cuz nnuz syl6eleq fco syl2anc eqeltrd expr exlimdv expimpd cfn
        seqcl wo fz1f1o syl mpjaod ) ADUAUBZDEGUCZFOZDUDPZUEOZQWNUFUGZDMRZUHZMU
        IZSZAWMDUAADUAUJWMUKLULUMAWOWSWMAWOSWRWMMAWOWRWMAWOWRSZSZWLWNUNGDEUOZWQ
        UPZQVCPZFXBWLDNRZXCPZNUCXEDENGUQXBDXGBRZWQPZXCPZNBWQXDWNXFXIXCURAWOWRUS
        ZAWOWRUTAXFDOXGTOXAADTXFXCAGDETXCAGRDOZSFTEAFTVDXLHVAKVBXCVEZVFVGVHXBWP
        DWQVNZXHWPOXHXDPXJUBWRXNAWOWPDWQVIVJZWPDXHXCWQVKVLVOVMXBBCUNFXDQWNXBWNU
        EQVPPXKVQVRXBWPFXHXDXBDFXCVNZXNWPFXDVNAXPXAAGDEFXCKXMVFVAXOWPDFXCWQVSVT
        VGAXHFOCRZFOSXHXQUNUGFOXAIVHWFWAWBWCWDADWEOWKWTWGJDMWHWIWJ $.
    $}

    $d A k $.  $d A x $.  $d A y $.  $d B x $.  $d B y $.  $d k ph $.
    $d k x $.  $d k y $.  $d ph x $.  $d ph y $.  $d S k $.  $d S x $.
    $d S y $.  $d x y $.
    fprodcllem.5 $e |- ( ph -> 1 e. S ) $.
    $( Finite product closure lemma.  (Contributed by Scott Fenton,
       14-Dec-2017.) $)
    fprodcllem $p |- ( ph -> prod_ k e. A B e. S ) $=
      ( cprod wcel c0 wceq wa c1 adantr cv prodeq1 syl6eq adantl eqeltrd wne cc
      prod0 wss cmul co adantlr cfn simpr fprodcl2lem pm2.61dane ) ADEGMZFNDOAD
      OPZQUPRFUQUPRPAUQUPOEGMRDOEGUAEGUGUBUCARFNUQLSUDADOUEZQBCDEFGAFUFUHURHSAB
      TZFNCTZFNQUSUTUIUJFNURIUKADULNURJSAGTDNEFNURKUKAURUMUNUO $.
  $}

  ${
    $d A k x y $.  $d B x y $.  $d ph k x y $.
    fprodcl.1 $e |- ( ph -> A e. Fin ) $.

    ${
      fprodcl.2 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
      $( Closure of a finite product of complex numbers.  (Contributed by Scott
         Fenton, 14-Dec-2017.) $)
      fprodcl $p |- ( ph -> prod_ k e. A B e. CC ) $=
        ( vx vy cc wss ssid a1i cv wcel wa cmul co mulcl adantl 1cnd fprodcllem
        ) AGHBCIDIIJAIKLGMZINHMZINOUBUCPQINAUBUCRSEFATUA $.
    $}

    ${
      fprodrecl.2 $e |- ( ( ph /\ k e. A ) -> B e. RR ) $.
      $( Closure of a finite product of real numbers.  (Contributed by Scott
         Fenton, 14-Dec-2017.) $)
      fprodrecl $p |- ( ph -> prod_ k e. A B e. RR ) $=
        ( vx vy cr cc wss ax-resscn a1i cv wcel wa cmul co remulcl adantl 1red
        fprodcllem ) AGHBCIDIJKALMGNZIOHNZIOPUCUDQRIOAUCUDSTEFAUAUB $.
    $}

    ${
      fprodzcl.2 $e |- ( ( ph /\ k e. A ) -> B e. ZZ ) $.
      $( Closure of a finite product of integers.  (Contributed by Scott
         Fenton, 14-Dec-2017.) $)
      fprodzcl $p |- ( ph -> prod_ k e. A B e. ZZ ) $=
        ( vx vy cz cc wss zsscn a1i cv wcel wa cmul co zmulcl adantl fprodcllem
        1zzd ) AGHBCIDIJKALMGNZIOHNZIOPUCUDQRIOAUCUDSTEFAUBUA $.
    $}

    ${
      fprodnncl.2 $e |- ( ( ph /\ k e. A ) -> B e. NN ) $.
      $( Closure of a finite product of positive integers.  (Contributed by
         Scott Fenton, 14-Dec-2017.) $)
      fprodnncl $p |- ( ph -> prod_ k e. A B e. NN ) $=
        ( vx vy cn cc wss nnsscn a1i cv wcel wa cmul co nnmulcl adantl c1 1nn
        fprodcllem ) AGHBCIDIJKALMGNZIOHNZIOPUDUEQRIOAUDUESTEFUAIOAUBMUC $.
    $}

    ${
      fprodrpcl.2 $e |- ( ( ph /\ k e. A ) -> B e. RR+ ) $.
      $( Closure of a finite product of positive reals.  (Contributed by Scott
         Fenton, 14-Dec-2017.) $)
      fprodrpcl $p |- ( ph -> prod_ k e. A B e. RR+ ) $=
        ( vx vy crp cc wss cr rpssre ax-resscn sstri a1i cv wcel wa cmul adantl
        co rpmulcl c1 1rp fprodcllem ) AGHBCIDIJKAILJMNOPGQZIRHQZIRSUGUHTUBIRAU
        GUHUCUAEFUDIRAUEPUF $.
    $}

    ${
      fprodnn0cl.2 $e |- ( ( ph /\ k e. A ) -> B e. NN0 ) $.
      $( Closure of a finite product of nonnegative integers.  (Contributed by
         Scott Fenton, 14-Dec-2017.) $)
      fprodnn0cl $p |- ( ph -> prod_ k e. A B e. NN0 ) $=
        ( vx vy cn0 cc wss nn0sscn a1i cv wcel wa cmul co nn0mulcl adantl 1nn0
        c1 fprodcllem ) AGHBCIDIJKALMGNZIOHNZIOPUDUEQRIOAUDUESTEFUBIOAUAMUC $.
    $}
  $}

  ${
    $d A j k x y $.  $d B j x y $.  $d S j k x y $.  $d j ph x y $.
    fprodcllemf.ph $e |- F/ k ph $.
    fprodcllemf.s $e |- ( ph -> S C_ CC ) $.
    fprodcllemf.xy $e |- ( ( ph /\ ( x e. S /\ y e. S ) )
                           -> ( x x. y ) e. S ) $.
    fprodcllemf.a $e |- ( ph -> A e. Fin ) $.
    fprodcllemf.b $e |- ( ( ph /\ k e. A ) -> B e. S ) $.
    fprodcllemf.1 $e |- ( ph -> 1 e. S ) $.
    $( Finite product closure lemma.  A version of ~ fprodcllem using
       bound-variable hypotheses instead of distinct variable conditions.
       (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    fprodcllemf $p |- ( ph -> prod_ k e. A B e. S ) $=
      ( vj cprod cv csb nfcv wcel cvv csbeq1a nfcsb1v cbvprod wsbc wral ralrimi
      wa simpr ex adantr rspsbc sylc wb sbcel1g ax-mp sylib fprodcllem syl5eqel
      vex ) ADEGODGNPZEQZNOFDEVAGNGUTEUANDRGDRNERGUTEUBUCABCDVAFNIJKAUTDSZUGZEF
      SZGUTUDZVAFSZVCVBVDGDUEZVEAVBUHAVGVBAVDGDHAGPDSVDLUIUFUJVDGUTDUKULUTTSVEV
      FUMNUSGUTEFTUNUOUPMUQUR $.
  $}

  ${
    $d A k x y $.  $d B x y $.  $d ph x y $.
    fprodreclf.kph $e |- F/ k ph $.
    fprodcl.a $e |- ( ph -> A e. Fin ) $.
    fprodrecl.b $e |- ( ( ph /\ k e. A ) -> B e. RR ) $.
    $( Closure of a finite product of real numbers.  A version of ~ fprodrecl
       using bound-variable hypotheses instead of distinct variable conditions.
       (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    fprodreclf $p |- ( ph -> prod_ k e. A B e. RR ) $=
      ( vx vy cr cc wss ax-resscn a1i cv wcel wa cmul co remulcl c1 fprodcllemf
      adantl 1re ) AHIBCJDEJKLAMNHOZJPIOZJPQUEUFRSJPAUEUFTUCFGUAJPAUDNUB $.
  $}

  ${
    $d A f $.  $d A k $.  $d A m $.  $d B f $.  $d B m $.  $d C f $.  $d C m $.
    $d f k $.  $d f ph $.  $d k m $.  $d k ph $.  $d A n $.  $d B n $.
    $d C n $.  $d f m $.  $d f n $.  $d k n $.  $d m n $.  $d m ph $.
    $d n ph $.
    fprodmul.1 $e |- ( ph -> A e. Fin ) $.
    fprodmul.2 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    fprodmul.3 $e |- ( ( ph /\ k e. A ) -> C e. CC ) $.
    $( The product of two finite products.  (Contributed by Scott Fenton,
       14-Dec-2017.) $)
    fprodmul $p |- ( ph -> prod_ k e. A ( B x. C ) =
      ( prod_ k e. A B x. prod_ k e. A C ) ) $=
      ( vm c0 wceq cmul co cprod cfv wcel c1 wa cc wf vf vn chash cn cfz cv wex
      wf1o wi 1t1e1 oveq12i 3eqtr4ri prodeq1 oveq12d 3eqtr4a a1i cmpt ccom cseq
      prod0 cuz simprl nnuz syl6eleq eqid fmptd f1of ad2antll syl2anc ffvelrnda
      adantr fco wral simpr mulcld fvmpt2 ralrimiva ad2antrr nffvmpt1 nfcv nfov
      eqtr4d nfeq fveq2 eqeq12d rspc fvco3 sylan 3eqtr4d prodfmul simprr prodfc
      sylc fprod 3eqtr3g expr exlimdv expimpd cfn wo fz1f1o syl mpjaod ) ABJKZB
      CDLMZENZBCENZBDENZLMZKZBUCOZUDPZQXKUEMZBUAUFZUHZUAUGZRZXDXJUIAXDJXEENZJCE
      NZJDENZLMZXFXIQQLMQYAXRUJXSQXTQLCEUTDEUTUKXEEUTULBJXEEUMXDXGXSXHXTLBJCEUM
      BJDEUMUNUOUPAXLXPXJAXLRXOXJUAAXLXOXJAXLXORZRZBIUFZEBXEUQZOZINZBYDEBCUQZOZ
      INZBYDEBDUQZOZINZLMZXFXIYCXKLYEXNURZQUSOXKLYHXNURZQUSOZXKLYKXNURZQUSOZLMY
      GYNYCUBYPYRYOQXKYCXKUDQVAOAXLXOVBZVCVDYCXMSUBUFZYPYCBSYHTZXMBXNTZXMSYPTAU
      UBYBAEBCSYHGYHVEZVFVKZXOUUCAXLXMBXNVGVHZXMBSYHXNVLVIVJYCXMSUUAYRYCBSYKTZU
      UCXMSYRTAUUGYBAEBDSYKHYKVEZVFVKZUUFXMBSYKXNVLVIVJYCUUAXMPZRZUUAXNOZYEOZUU
      LYHOZUULYKOZLMZUUAYOOZUUAYPOZUUAYROZLMUUKUULBPEUFZYEOZUUTYHOZUUTYKOZLMZKZ
      EBVMZUUMUUPKZYCXMBUUAXNUUFVJAUVFYBUUJAUVEEBAUUTBPZRZUVAXEUVDUVIUVHXESPUVA
      XEKAUVHVNZUVICDGHVOZEBXESYEYEVEZVPVIUVIUVBCUVCDLUVIUVHCSPUVBCKUVJGEBCSYHU
      UDVPVIUVIUVHDSPUVCDKUVJHEBDSYKUUHVPVIUNWBVQVRUVEUVGEUULBEUUMUUPEBXEUULVSE
      UUNUUOLEBCUULVSELVTEBDUULVSWAWCUUTUULKZUVAUUMUVDUUPUUTUULYEWDUVMUVBUUNUVC
      UUOLUUTUULYHWDUUTUULYKWDUNWEWFWMYCUUCUUJUUQUUMKUUFXMBUUAYEXNWGWHZUUKUURUU
      NUUSUUOLYCUUCUUJUURUUNKUUFXMBUUAYHXNWGWHZYCUUCUUJUUSUUOKUUFXMBUUAYKXNWGWH
      ZUNWIWJYCBYFUUMIUBXNYOXKYDUULYEWDYTAXLXOWKZYCBSYDYEABSYETYBAEBXESYEUVKUVL
      VFVKVJUVNWNYCYJYQYMYSLYCBYIUUNIUBXNYPXKYDUULYHWDYTUVQYCBSYDYHUUEVJUVOWNYC
      BYLUUOIUBXNYRXKYDUULYKWDYTUVQYCBSYDYKUUIVJUVPWNUNWIBXEIEWLYJXGYMXHLBCIEWL
      BDIEWLUKWOWPWQWRABWSPXDXQWTFBUAXAXBXC $.

    fproddiv.4 $e |- ( ( ph /\ k e. A ) -> C =/= 0 ) $.
    $( The quotient of two finite products.  (Contributed by Scott Fenton,
       15-Jan-2018.) $)
    fproddiv $p |- ( ph -> prod_ k e. A ( B / C ) =
       ( prod_ k e. A B / prod_ k e. A C ) ) $=
      ( vm c0 wceq cdiv co cprod cfv wcel c1 cc cc0 vf vn chash cn cfz wf1o wex
      cv wa wi 1div1e1 eqcomi prodeq1 syl6eq oveq12d 3eqtr4a a1i cmpt cmul ccom
      prod0 cseq cuz simprl nnuz syl6eleq wf eqid fmptd adantl syl2an ffvelrnda
      f1of fco simprr syl fvco3 sylan wne wral fvmpt2 syl2anc eqnetrd ralrimiva
      simpr ad2antrr nffvmpt1 nfcv nfne fveq2 neeq1d rspc sylc divcld nfov nfeq
      eqtr4d eqeq12d 3eqtr4d prodfdiv adantr fprod oveq12i 3eqtr3g expr exlimdv
      prodfc expimpd cfn wo fz1f1o mpjaod ) ABKLZBCDMNZEOZBCEOZBDEOZMNZLZBUCPZU
      DQZRXTUENZBUAUHZUFZUAUGZUIZXMXSUJAXMRRRMNZXOXRYGRUKULXMXOKXNEORBKXNEUMXNE
      VAUNXMXPRXQRMXMXPKCEORBKCEUMCEVAUNXMXQKDEORBKDEUMDEVAUNUOUPUQAYAYEXSAYAUI
      YDXSUAAYAYDXSAYAYDUIZUIZBJUHZEBXNURZPZJOZBYJEBCURZPZJOZBYJEBDURZPZJOZMNZX
      OXRYIXTUSYKYCUTZRVBPXTUSYNYCUTZRVBPZXTUSYQYCUTZRVBPZMNYMYTYIUBUUBUUDUUARX
      TYIXTUDRVCPAYAYDVDZVEVFYIYBSUBUHZUUBABSYNVGZYBBYCVGZYBSUUBVGYHAEBCSYNGYNV
      HZVIZYDUUIYAYBBYCVMZVJZYBBSYNYCVNVKVLYIYBSUUGUUDABSYQVGZUUIYBSUUDVGYHAEBD
      SYQHYQVHZVIZUUMYBBSYQYCVNVKVLYIUUGYBQZUIZUUGUUDPZUUGYCPZYQPZTYIUUIUUQUUSU
      VALYIYDUUIAYAYDVOZUULVPZYBBUUGYQYCVQVRZUURUUTBQZEUHZYQPZTVSZEBVTZUVATVSZY
      IYBBUUGYCUVCVLZAUVIYHUUQAUVHEBAUVFBQZUIZUVGDTUVMUVLDSQUVGDLAUVLWEZHEBDSYQ
      UUOWAWBZIWCWDWFUVHUVJEUUTBEUVATEBDUUTWGZETWHWIUVFUUTLZUVGUVATUVFUUTYQWJZW
      KWLWMWCUURUUTYKPZUUTYNPZUVAMNZUUGUUAPZUUGUUBPZUUSMNUURUVEUVFYKPZUVFYNPZUV
      GMNZLZEBVTZUVSUWALZUVKAUWHYHUUQAUWGEBUVMUWDXNUWFUVMUVLXNSQUWDXNLUVNUVMCDG
      HIWNZEBXNSYKYKVHZWAWBUVMUWECUVGDMUVMUVLCSQUWECLUVNGEBCSYNUUJWAWBUVOUOWQWD
      WFUWGUWIEUUTBEUVSUWAEBXNUUTWGEUVTUVAMEBCUUTWGEMWHUVPWOWPUVQUWDUVSUWFUWAUV
      FUUTYKWJUVQUWEUVTUVGUVAMUVFUUTYNWJUVRUOWRWLWMYIUUIUUQUWBUVSLUVCYBBUUGYKYC
      VQVRZUURUWCUVTUUSUVAMYIUUIUUQUWCUVTLUVCYBBUUGYNYCVQVRZUVDUOWSWTYIBYLUVSJU
      BYCUUAXTYJUUTYKWJUUFUVBYIBSYJYKABSYKVGYHAEBXNSYKUWJUWKVIXAVLUWLXBYIYPUUCY
      SUUEMYIBYOUVTJUBYCUUBXTYJUUTYNWJUUFUVBYIBSYJYNAUUHYHUUKXAVLUWMXBYIBYRUVAJ
      UBYCUUDXTYJUUTYQWJUUFUVBYIBSYJYQAUUNYHUUPXAVLUVDXBUOWSBXNJEXGYPXPYSXQMBCJ
      EXGBDJEXGXCXDXEXFXHABXIQXMYFXJFBUAXKVPXL $.
  $}

  ${
    $d A m n $.  $d B k m n $.  $d M k m n $.  $d V k m n $.
    prodsn.1 $e |- ( k = M -> A = B ) $.
    $( A product of a singleton is the term.  (Contributed by Scott Fenton,
       14-Dec-2017.) $)
    prodsn $p |- ( ( M e. V /\ B e. CC ) -> prod_ k e. { M } A = B ) $=
      ( vm vn wcel cc wa csn cprod c1 cfv csb cz 1z wceq adantr cmul cv nfcsb1v
      cop cseq nfcv csbeq1a cbvprodi csbeq1 cn 1nn a1i cfz co wf1o f1osng ax-mp
      wb fzsn f1oeq2 sylibr mpan velsn csbiegf sylan9eqr sylan2b simplr eqeltrd
      nfcvd bitri fvsng csbeq1d simpr sylancr 3eqtr4rd fveq2 eqeq12d syl5ibrcom
      eleq2i imp fprod syl5eq seq1i eqtrd ) DEIZBJIZKZDLZACMZNUANBUDLZNUEOZBWGW
      IWHCGUBZAPZGMWKWHAWMCGGAUFCWLAUCCWLAUGUHWGWHWMCHUBZNDUDLZOZAPZGHWOWJNCWLW
      PAUINUJIWGUKULWENNUMUNZWHWOUOZWFNQIZWEWSRWTWEKNLZWHWOUOZWSNDQEUPWRXASZWSX
      BURWTXCRNUSUQZWRXAWHWOUTUQVAVBTWGWLWHIZKWMBJXEWGWLDSZWMBSGDVCXFWGWMCDAPZB
      CWLDAUIWEXGBSWFCDABEWECBVIFVDTZVEVFWEWFXEVGVHWNWRIZWGWNNSZWNWJOZWQSZXIWNX
      AIXJWRXAWNXDVSHNVCVJWGXJXLWGXLXJNWJOZCNWOOZAPZSWGXGBXOXMXHWGCXNDAWEXNDSZW
      FWTWEXPRNDQEVKVBTVLWGWTWFXMBSRWEWFVMNBQJVKVNZVOXJXKXMWQXOWNNWJVPXJCWPXNAW
      NNWOVPVLVQVRVTVFWAWBWGBUAWJNRXQWCWD $.

    $( A finite product of only one term is the term itself.  (Contributed by
       Scott Fenton, 14-Dec-2017.) $)
    fprod1 $p |- ( ( M e. ZZ /\ B e. CC ) -> prod_ k e. ( M ... M ) A = B ) $=
      ( cz wcel cc wa cfz co cprod csn wceq fzsn prodeq1d adantr prodsn eqtrd )
      DFGZBHGZIDDJKZACLZDMZACLZBTUCUENUATUBUDACDOPQABCDFERS $.
  $}

  ${
    $d A m n $.  $d B m n $.  $d M k m n $.  $d V k m n $.
    prodsnf.1 $e |- F/_ k B $.
    prodsnf.2 $e |- ( k = M -> A = B ) $.
    $( A product of a singleton is the term.  A version of ~ prodsn using
       bound-variable hypotheses instead of distinct variable conditions.
       (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    prodsnf $p |- ( ( M e. V /\ B e. CC ) -> prod_ k e. { M } A = B ) $=
      ( vm vn wcel cc wa csn c1 cfv csb cz 1z wceq adantr cmul cop cseq cv nfcv
      cprod nfcsb1v csbeq1a cbvprodi csbeq1 cn 1nn a1i cfz co wf1o f1osng ax-mp
      wb fzsn f1oeq2 sylibr mpan velsn csbiegf sylan9eqr sylan2b simplr eqeltrd
      wnfc eleq2i bitri fvsng csbeq1d simpr sylancr 3eqtr4rd eqeq12d syl5ibrcom
      fveq2 imp fprod syl5eq seq1i eqtrd ) DEJZBKJZLZDMZACUFZNUANBUBMZNUCOZBWHW
      JWICHUDZAPZHUFWLWIAWNCHHAUECWMAUGCWMAUHUIWHWIWNCIUDZNDUBMZOZAPZHIWPWKNCWM
      WQAUJNUKJWHULUMWFNNUNUOZWIWPUPZWGNQJZWFWTRXAWFLNMZWIWPUPZWTNDQEUQWSXBSZWT
      XCUSXAXDRNUTURZWSXBWIWPVAURVBVCTWHWMWIJZLWNBKXFWHWMDSZWNBSHDVDXGWHWNCDAPZ
      BCWMDAUJWFXHBSWGCDABECBVJWFFUMGVETZVFVGWFWGXFVHVIWOWSJZWHWONSZWOWKOZWRSZX
      JWOXBJXKWSXBWOXEVKINVDVLWHXKXMWHXMXKNWKOZCNWPOZAPZSWHXHBXPXNXIWHCXODAWFXO
      DSZWGXAWFXQRNDQEVMVCTVNWHXAWGXNBSRWFWGVONBQKVMVPZVQXKXLXNWRXPWONWKVTXKCWQ
      XOAWONWPVTVNVRVSWAVGWBWCWHBUAWKNRXRWDWE $.
  $}

  ${
    climprod1.1 $e |- Z = ( ZZ>= ` M ) $.
    climprod1.2 $e |- ( ph -> M e. ZZ ) $.
    $( The limit of a product over one.  (Contributed by Scott Fenton,
       15-Dec-2017.) $)
    climprod1 $p |- ( ph -> seq M ( x. , ( Z X. { 1 } ) ) ~~> 1 ) $=
      ( cz wcel cmul c1 csn cxp cseq cli wbr prodfclim1 syl ) ABFGHCIJKBLIMNEBC
      DOP $.
  $}

  ${
    $d A k $.  $d B k $.  $d k ph $.  $d U k $.
    fprodsplit.1 $e |- ( ph -> ( A i^i B ) = (/) ) $.
    fprodsplit.2 $e |- ( ph -> U = ( A u. B ) ) $.
    fprodsplit.3 $e |- ( ph -> U e. Fin ) $.
    fprodsplit.4 $e |- ( ( ph /\ k e. U ) -> C e. CC ) $.
    $( Split a finite product into two parts.  (Contributed by Scott Fenton,
       16-Dec-2017.) $)
    fprodsplit $p |- ( ph -> prod_ k e. U C =
      ( prod_ k e. A C x. prod_ k e. B C ) ) $=
      ( cprod cmul co wcel c1 wa cc wceq adantl iffalsed cv cif iftrue prodeq2i
      ssun1 syl5sseqr sselda syldan eqeltrd cdif eldifn fprodss syl5eqr oveq12d
      cun ssun2 ax-1cn ifcl sylancl fprodmul wo eleq2d elun syl6bb biimpa c0 wn
      cin disjel sylan mulid1d eqtrd ex con2d mulid2d jaodan prodeq2dv 3eqtr2rd
      imp ) ABDFKZCDFKZLMEFUAZBNZDOUBZFKZEWBCNZDOUBZFKZLMEWDWGLMZFKEDFKAVTWEWAW
      HLAVTBWDFKWEBWDDFWCDOUCZUDABEWDFABCUOZBEBCUEHUFZAWCPZWDDQWCWDDRAWJSZAWCWB
      ENZDQNZABEWBWLUGJUHZUIWBEBUJNZWDORAWRWCDOWBEBUKTSIULUMAWACWGFKWHCWGDFWFDO
      UCZUDACEWGFAWKCECBUPHUFZAWFPZWGDQWFWGDRAWSSZAWFWOWPACEWBWTUGJUHZUIWBECUJN
      ZWGORAXDWFDOWBECUKTSIULUMUNAEWDWGFIAWOPZWPOQNZWDQNJUQWCDOQURUSXEWPXFWGQNJ
      UQWFDOQURUSUTAEWIDFAWOWCWFVAZWIDRZAWOXGAWOWBWKNXGAEWKWBHVBWBBCVCVDVEAWCXH
      WFWMWIDOLMDWMWDDWGOLWNWMWFDOABCVHVFRWCWFVGZGBCWBVIVJZTUNWMDWQVKVLXAWIODLM
      DXAWDOWGDLXAWCDOAWFWCVGAWCWFAWCXIXJVMVNVSTXBUNXADXCVOVLVPUHVQVR $.
  $}

  ${
    $d B k $.  $d k ph $.  $d M k $.  $d N k $.
    fprodm1.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    fprodm1.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> A e. CC ) $.
    fprodm1.3 $e |- ( k = N -> A = B ) $.
    $( Separate out the last term in a finite product.  (Contributed by Scott
       Fenton, 16-Dec-2017.) $)
    fprodm1 $p |- ( ph -> prod_ k e. ( M ... N ) A =
       ( prod_ k e. ( M ... ( N - 1 ) ) A x. B ) ) $=
      ( cfz co cprod c1 cmul wcel wceq cuz cfv cz syl cmin csn wn caddc fzp1nel
      cin c0 eluzelz zcnd 1cnd npcand eleq1d disjsn sylibr cun eluzel2 peano2zm
      mtbii fveq2d eleqtrrd eluzp1m1 syl2anc fzsuc2 oveq2d sneqd uneq2d 3eqtr3d
      fzfid fprodsplit cc wral eluzfz2 ralrimiva cv rspcv sylc prodsn eqtrd ) A
      EFJKZBDLEFMUAKZJKZBDLZFUBZBDLZNKWBCNKAWAWCBVSDAFWAOZUCWAWCUFUGPAVTMUDKZWA
      OWEEVTUEAWFFWAAFMAFAFEQRZOZFSOGEFUHTUIAUJZUKZULURWAFUMUNAEWFJKZWAWFUBZUOZ
      VSWAWCUOAESOZVTEMUAKZQROZWKWMPAWHWNGEFUPTZAWOSOZFWOMUDKZQRZOWPAWNWRWQEUQT
      AFWGWTGAWSEQAEMAEWQUIWIUKUSUTWOFVAVBEVTVCVBAWFFEJWJVDAWLWCWAAWFFWJVEVFVGA
      EFVHHVIAWDCWBNAWHCVJOZWDCPGAFVSOZBVJOZDVSVKXAAWHXBGEFVLTAXCDVSHVMXCXADFVS
      DVNFPBCVJIULVOVPBCDFWGIVQVBVDVR $.
  $}

  ${
    $d B k $.  $d k ph $.  $d M k $.  $d N k $.
    fprod1p.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    fprod1p.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> A e. CC ) $.
    fprod1p.3 $e |- ( k = M -> A = B ) $.
    $( Separate out the first term in a finite product.  (Contributed by Scott
       Fenton, 24-Dec-2017.) $)
    fprod1p $p |- ( ph -> prod_ k e. ( M ... N ) A =
      ( B x. prod_ k e. ( ( M + 1 ) ... N ) A ) ) $=
      ( cfz co cprod cmul cin c0 wcel wceq syl cun cc csn caddc cuz cfv eluzfz1
      c1 cz elfzelz fzsn ineq1d clt wbr zred ltp1d fzdisj eqtr3d fzsplit uneq1d
      eqtrd fzfid fprodsplit wral ralrimiva cv eleq1d rspcv sylc prodsn syl2anc
      oveq1d ) AEFJKZBDLEUAZBDLZEUFUBKZFJKZBDLZMKCVPMKAVLVOBVKDAEEJKZVONZVLVONO
      AVQVLVOAEUGPZVQVLQAEVKPZVSAFEUCUDPVTGEFUERZEEFUHRZEUIRZUJAEVNUKULVROQAEAE
      WBUMUNEEVNFUORUPAVKVQVOSZVLVOSAVTVKWDQWAEEFUQRAVQVLVOWCURUSAEFUTHVAAVMCVP
      MAVTCTPZVMCQWAAVTBTPZDVKVBWEWAAWFDVKHVCWFWEDEVKDVDEQBCTIVEVFVGBCDEVKIVHVI
      VJUS $.
  $}

  ${
    $d B k $.  $d k ph $.  $d M k $.  $d N k $.
    fprodp1.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    fprodp1.2 $e |- ( ( ph /\ k e. ( M ... ( N + 1 ) ) ) -> A e. CC ) $.
    fprodp1.3 $e |- ( k = ( N + 1 ) -> A = B ) $.
    $( Multiply in the last term in a finite product.  (Contributed by Scott
       Fenton, 24-Dec-2017.) $)
    fprodp1 $p |- ( ph -> prod_ k e. ( M ... ( N + 1 ) ) A =
     ( prod_ k e. ( M ... N ) A x. B ) ) $=
      ( c1 caddc co cfz cprod cmin cmul cuz cfv wcel syl fprodm1 eluzelz pncand
      peano2uz cz zcnd 1cnd oveq2d prodeq1d oveq1d eqtrd ) AEFJKLZMLBDNEULJOLZM
      LZBDNZCPLEFMLZBDNZCPLABCDEULAFEQRZSZULURSGEFUDTHIUAAUOUQCPAUNUPBDAUMFEMAF
      JAFAUSFUESGEFUBTUFAUGUCUHUIUJUK $.
  $}

  ${
    $d A m $.  $d k m ph $.  $d M k m $.  $d N k m $.
    fprodm1s.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    fprodm1s.2 $e |- ( ( ph /\ k e. ( M ... N ) ) -> A e. CC ) $.
    $( Separate out the last term in a finite product.  (Contributed by Scott
       Fenton, 27-Dec-2017.) $)
    fprodm1s $p |- ( ph -> prod_ k e. ( M ... N ) A =
      ( prod_ k e. ( M ... ( N - 1 ) ) A x. [_ N / k ]_ A ) ) $=
      ( vm cfz co cv csb cprod c1 cmin cmul cc wcel wral cbvprodi nfcsb1v nfel1
      ralrimiva csbeq1a eleq1d rspc mpan9 csbeq1 fprodm1 nfcv oveq1i 3eqtr4g
      weq ) ADEIJZCHKZBLZHMDENOJIJZUPHMZCEBLZPJUNBCMUQBCMZUSPJAUPUSHDEFABQRZCUN
      SUOUNRUPQRZAVACUNGUCVAVBCUOUNCUPQCUOBUAZUBCHUMBUPQCUOBUDZUEUFUGCUOEBUHUIU
      NBUPCHHBUJZVCVDTUTURUSPUQBUPCHVEVCVDTUKUL $.
  $}

  ${
    $d A m $.  $d k m ph $.  $d M k m $.  $d N k m $.
    fprodp1s.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    fprodp1s.2 $e |- ( ( ph /\ k e. ( M ... ( N + 1 ) ) ) -> A e. CC ) $.
    $( Multiply in the last term in a finite product.  (Contributed by Scott
       Fenton, 27-Dec-2017.) $)
    fprodp1s $p |- ( ph -> prod_ k e. ( M ... ( N + 1 ) ) A =
       ( prod_ k e. ( M ... N ) A x. [_ ( N + 1 ) / k ]_ A ) ) $=
      ( vm c1 caddc co cfz cv csb cprod cmul cc wcel wral cbvprodi nfel1 eleq1d
      ralrimiva nfcsb1v csbeq1a rspc mpan9 csbeq1 fprodp1 nfcv oveq1i 3eqtr4g
      weq ) ADEIJKZLKZCHMZBNZHODELKZUQHOZCUNBNZPKUOBCOURBCOZUTPKAUQUTHDEFABQRZC
      UOSUPUORUQQRZAVBCUOGUCVBVCCUPUOCUQQCUPBUDZUACHUMBUQQCUPBUEZUBUFUGCUPUNBUH
      UIUOBUQCHHBUJZVDVETVAUSUTPURBUQCHVFVDVETUKUL $.
  $}

  ${
    $d A n $.  $d k n $.  $d M k $.  $d M n $.  $d V n $.
    $( A product of the singleton is the term.  (Contributed by Scott Fenton,
       25-Dec-2017.) $)
    prodsns $p |- ( ( M e. V /\ [_ M / k ]_ A e. CC ) ->
       prod_ k e. { M } A = [_ M / k ]_ A ) $=
      ( vn wcel csb cc wa csn cprod nfcv nfcsb1v csbeq1a cbvprodi csbeq1 prodsn
      cv syl5eq ) CDFBCAGZHFICJZABKUABERZAGZEKTUAAUCBEEALBUBAMBUBANOUCTECDBUBCA
      PQS $.
  $}

  ${
    $d A k $.
    $( Factorial using product notation.  (Contributed by Scott Fenton,
       15-Dec-2017.) $)
    fprodfac $p |- ( A e. NN0 -> ( ! ` A ) = prod_ k e. ( 1 ... A ) k ) $=
      ( cn0 wcel cn cc0 wceq wo cfa cfv c1 cfz co cv cprod elnn0 cid cvv syl6eq
      c0 cmul cseq facnn wa vex fvi mp1i elnnuz biimpi cc elfznn nncnd fprodser
      cuz adantl eqtr4d prod0 fveq2 fac0 oveq2 fz10 prodeq1d 3eqtr4a jaoi sylbi
      eqcomi ) ACDAEDZAFGZHAIJZKALMZBNZBOZGZAPVGVMVHVGVIAUAQKUBJVLAUCVGVKBQKAVK
      RDVKQJVKGVGVKVJDZUDBUEVKRUFUGVGAKUNJDAUHUIVNVKUJDVGVNVKVKAUKULUOUMUPVHKTV
      KBOZVIVLVOKVKBUQVFVHVIFIJKAFIURUSSVHVJTVKBVHVJKFLMTAFKLUTVASVBVCVDVE $.
  $}

  ${
    $d A a n $.  $d M a k n $.  $d N a k $.  $d Z a k n $.  $d ph a k n $.
    fprodabs.1 $e |- Z = ( ZZ>= ` M ) $.
    fprodabs.2 $e |- ( ph -> N e. Z ) $.
    fprodabs.3 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
    $( The absolute value of a finite product.  (Contributed by Scott Fenton,
       25-Dec-2017.) $)
    fprodabs $p |- ( ph -> ( abs ` prod_ k e. ( M ... N ) A ) =
      prod_ k e. ( M ... N ) ( abs ` A ) ) $=
      ( cfv wcel cfz co cprod cabs wceq wi prodeq1d fveq2d cc va vn syl6eleq cv
      cuz c1 caddc oveq2 eqeq12d imbi2d weq cz wa csb csbfv2g adantl fzsn simpr
      csn uzid syl6eleqr wral ralrimiva nfcsb1v nfel1 csbeq1a eleq1d rspc mpan9
      sylan2 abscld recnd eqeltrd prodsns syl2anc eqtrd 3eqtr4rd w3a cmul simp3
      expcom cvv ax-mp eqcomi a1i oveq12d elfzuz adantlr fprodp1s fzfid fprodcl
      ovex peano2uz absmuld 3adant3 3eqtr4d 3exp com12 a2d uzind4 mpcom ) EDUEJ
      ZKADELMZBCNZOJZXCBOJZCNZPZAEFXBHGUCADUAUDZLMZBCNZOJZXJXFCNZPZQADDLMZBCNZO
      JZXOXFCNZPZQADUBUDZLMZBCNZOJZYAXFCNZPZQADXTUFUGMZLMZBCNZOJZYGXFCNZPZQAXHQ
      UAUBDEXIDPZXNXSAYLXLXQXMXRYLXKXPOYLXJXOBCXIDDLUHZRSYLXJXOXFCYMRUIUJUAUBUK
      ZXNYEAYNXLYCXMYDYNXKYBOYNXJYABCXIXTDLUHZRSYNXJYAXFCYORUIUJXIYFPZXNYKAYPXL
      YIXMYJYPXKYHOYPXJYGBCXIYFDLUHZRSYPXJYGXFCYQRUIUJXIEPZXNXHAYRXLXEXMXGYRXKX
      DOYRXJXCBCXIEDLUHZRSYRXJXCXFCYSRUIUJADULKZXSAYTUMZCDXFUNZCDBUNZOJZXRXQYTU
      UBUUDPACDBULOUOUPZUUAXRDUSZXFCNZUUBUUAXOUUFXFCYTXOUUFPADUQZUPRUUAYTUUBTKU
      UGUUBPAYTURZUUAUUBUUDTUUEUUAUUDUUAUUCYTADFKZUUCTKZYTDXBFDUTGVAABTKZCFVBZU
      UJUUKAUULCFIVCZUULUUKCDFCUUCTCDBVDVECUDZDPBUUCTCDBVFVGVHVIVJZVKVLVMXFCDUL
      VNVOVPUUAXPUUCOUUAXPUUFBCNZUUCYTXPUUQPAYTXOUUFBCUUHRUPUUAYTUUKUUQUUCPUUIU
      UPBCDULVNVOVPSVQWAXTXBKZAYEYKAUURYEYKQAUURYEYKAUURYEVRZYCCYFBUNZOJZVSMZYD
      CYFXFUNZVSMZYIYJUUSYCYDUVAUVCVSAUURYEVTUVAUVCPUUSUVCUVAYFWBKUVCUVAPXTUFUG
      WLCYFBWBOUOWCWDWEWFAUURYIUVBPYEAUURUMZYIYBUUTVSMZOJUVBUVEYHUVFOUVEBCDXTAU
      URURZAUUOYGKZUULUURUVHAUUOFKZUULUVHUUOXBFUUODYFWGGVAIVJWHZWISUVEYBUUTUVEY
      ABCUVEDXTWJAUUOYAKZUULUURUVKAUVIUULUVKUUOXBFUUODXTWGGVAIVJWHWKUURAYFFKZUU
      TTKZUURYFXBFDXTWMGVAAUUMUVLUVMUUNUULUVMCYFFCUUTTCYFBVDVEUUOYFPBUUTTCYFBVF
      VGVHVIVJWNVPWOAUURYJUVDPYEUVEXFCDXTUVGUVEUVHUMZXFUVNBUVJVKVLWIWOWPWQWRWSW
      TXA $.
  $}

  ${
    $d K k $.  $d M k $.  $d N k $.  $d Z k $.  $d ph k $.
    fprodeq0.1 $e |- Z = ( ZZ>= ` M ) $.
    fprodeq0.2 $e |- ( ph -> N e. Z ) $.
    fprodeq0.3 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
    fprodeq0.4 $e |- ( ( ph /\ k = N ) -> A = 0 ) $.
    $( Anything finite product containing a zero term is itself zero.
       (Contributed by Scott Fenton, 27-Dec-2017.) $)
    fprodeq0 $p |- ( ( ph /\ K e. ( ZZ>= ` N ) ) ->
       prod_ k e. ( M ... K ) A = 0 ) $=
      ( cuz wcel cfz co cprod cmul cc0 syl elfzuz cfv wa caddc clt wbr cin wceq
      c1 c0 cz eluzel2 adantl zred ltp1d fzdisj cun w3a cle eleq2s eluzelz 3jca
      adantr eluzle anim12i elfz2 sylanbrc fzsplit fzfid cv cc syl6eleqr sylan2
      adantlr fprodsplit cmin csb syl6eleq fprodm1s csbied oveq2d mul01d 3eqtrd
      fprodcl oveq1d peano2uzs uztrn2 syl2an adantrl syldan anassrs mul02d ) AD
      FLUAMZUBZEDNOZBCPEFNOZBCPZFUHUCOZDNOZBCPZQORWSQORWMWOWRBWNCWMFWQUDUEWOWRU
      FUIUGWMFWMFWLFUJMZAFDUKULZUMUNEFWQDUOSWMFWNMZWNWOWRUPUGWMEUJMZDUJMZWTUQEF
      URUEZFDURUEZUBXBWMXCXDWTAXCWLAFGMZXCIXCFELUAZGEFUKHUSSVBWLXDAFDUTULXAVAAX
      EWLXFAXGXEIXEFXHGEFVCHUSSFDVCVDFEDVEVFFEDVGSWMEDVHACVIZWNMZBVJMZWLXJAXIGM
      ZXKXJXIXHGXIEDTHVKJVLVMVNWMWPRWSQAWPRUGWLAWPEFUHVOOZNOZBCPZCFBVPZQOXORQOR
      ABCEFAFGXHIHVQXIWOMZAXLXKXQXIXHGXIEFTHVKJVLVRAXPRXOQACFBRGIKVSVTAXOAXNBCA
      EXMVHXIXNMZAXLXKXRXIXHGXIEXMTHVKJVLWCWAWBVBWDWMWSWMWRBCWMWQDVHAWLXIWRMZXK
      AWLXSUBXLXKAXSXLWLAWQGMZXIWQLUAMXLXSAXGXTIEFGHWESXIWQDTEXIWQGHWFWGWHJWIWJ
      WCWKWB $.
  $}

  ${
    $d A k $.  $d B j $.  $d j k $.  $d j ph $.  $d K j $.  $d K k $.
    $d k ph $.  $d M j $.  $d M k $.  $d N j $.  $d N k $.
    fprodshft.1 $e |- ( ph -> K e. ZZ ) $.
    fprodshft.2 $e |- ( ph -> M e. ZZ ) $.
    fprodshft.3 $e |- ( ph -> N e. ZZ ) $.
    fprodshft.4 $e |- ( ( ph /\ j e. ( M ... N ) ) -> A e. CC ) $.
    ${
      fprodshft.5 $e |- ( j = ( k - K ) -> A = B ) $.
      $( Shift the index of a finite product.  (Contributed by Scott Fenton,
         5-Jan-2018.) $)
      fprodshft $p |- ( ph ->
      prod_ j e. ( M ... N ) A = prod_ k e. ( ( M + K ) ... ( N + K ) ) B ) $=
        ( cfz co caddc cv cmin cmpt fzfid mptfzshft wcel wceq oveq1 eqid adantl
        cfv ovex fvmpt fprodf1o ) AGHNOBGFPOZHFPOZNOZCDEDUMDQZFROZSZEQZFROZMAUK
        ULTADFGHIJKUAUQUMUBUQUPUGURUCADUQUOURUMUPUNUQFRUDUPUEUQFRUHUIUFLUJ $.
    $}

    fprodrev.5 $e |- ( j = ( K - k ) -> A = B ) $.
    $( Reversal of a finite product.  (Contributed by Scott Fenton,
       5-Jan-2018.) $)
    fprodrev $p |- ( ph -> prod_ j e. ( M ... N ) A =
      prod_ k e. ( ( K - N ) ... ( K - M ) ) B ) $=
      ( co cmin wcel wceq wa cz adantr cfz cmpt fzfid wfn ccnv wf1o ovex fnmpti
      cv eqid simprr simprl elfzelz ad2antrl fzrev syl22anc mpbid eqeltrd oveq2
      a1i wb ad2antll cc zcnd nncand eqtr2d fzrev2 impbida mptcnv fneq1d mpbiri
      jca dff1o4 sylanbrc cfv fvmpt adantl fprodf1o ) AGHUANZBFHONZFGONZUANZCDE
      DWBFDUIZONZUBZFEUIZONZMAVTWAUCAWEWBUDZWEUEZVSUDZWBVSWEUFWHADWBWDWEFWCOUGW
      EUJZUHUTAWJEVSWGUBZVSUDEVSWGWLFWFOUGZWLUJUHAVSWIWLADEWBWDVSWGAWCWBPZWFWDQ
      ZRZWFVSPZWCWGQZRZAWPRZWQWRWTWFWDVSAWNWOUKWTWNWDVSPZAWNWOULWTGSPZHSPZFSPZW
      CSPZWNXAVAAXBWPJTAXCWPKTAXDWPITWNXEAWOWCVTWAUMZUNFWCGHUOUPUQURWTWGFWDONZW
      CWOWGXGQAWNWFWDFOUSVBWTFWCAFVCPZWPAFIVDZTWNWCVCPAWOWNWCXFVDUNVEVFVLAWSRZW
      NWOXJWCWGWBAWQWRUKXJWQWGWBPZAWQWRULXJXBXCXDWFSPZWQXKVAAXBWSJTAXCWSKTAXDWS
      ITWQXLAWRWFGHUMZUNFWFGHVGUPUQURXJWDFWGONZWFWRWDXNQAWQWCWGFOUSVBXJFWFAXHWS
      XITWQWFVCPAWRWQWFXMVDUNVEVFVLVHVIVJVKWBVSWEVMVNWFWBPWFWEVOWGQADWFWDWGWBWE
      WCWFFOUSWKWMVPVQLVR $.
  $}

  ${
    $d A f k n $.  $d B f k n $.
    $( The product of constant terms ( ` k ` is not free in ` B ` .)
       (Contributed by Scott Fenton, 12-Jan-2018.) $)
    fprodconst $p |- ( ( A e. Fin /\ B e. CC ) ->
       prod_ k e. A B = ( B ^ ( # ` A ) ) ) $=
      ( vf vn wcel cc wa c0 wceq cprod chash cfv cexp co cn c1 cv cc0 syl6eq wi
      cfn cfz wf1o wex exp0 eqcomd prodeq1 prod0 fveq2 hash0 eqeq12d syl5ibrcom
      oveq2d adantl cmul csn cseq eqidd simprl simprr simpllr fvconst2g syl2anc
      cxp elfznn fprod expnnval ad2ant2lr eqtr4d expr exlimdv expimpd wo fz1f1o
      adantr mpjaod ) AUBFZBGFZHZAIJZABCKZBALMZNOZJZWCPFZQWCUCOZADRZUDZDUEZHZVS
      WAWEUAVRVSWEWAQBSNOZJVSWLQBUFUGWAWBQWDWLWAWBIBCKQAIBCUHBCUITWAWCSBNWAWCIL
      MSAILUJUKTUNULUMUOVTWFWJWEVTWFHWIWEDVTWFWIWEVTWFWIHZHZWBWCUPPBUQVEZQURMZW
      DWNABBCEWHWOWCCRZERZWHMJBUSVTWFWIUTVTWFWIVAVRVSWMWQAFVBWNWRWGFZHVSWRPFZWR
      WOMBJVRVSWMWSVBWSWTWNWRWCVFUOPBWRGVCVDVGVSWFWDWPJVRWIBWCVHVIVJVKVLVMVRWAW
      KVNVSADVOVPVQ $.
  $}

  ${
    $d A f $.  $d A k $.  $d A m $.  $d A n $.  $d B f $.  $d B m $.  $d B n $.
    $d f k $.  $d f m $.  $d f n $.  $d f ph $.  $d k m $.  $d k n $.
    $d k ph $.  $d m n $.  $d m ph $.  $d n ph $.
    fprodn0.1 $e |- ( ph -> A e. Fin ) $.
    fprodn0.2 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    fprodn0.3 $e |- ( ( ph /\ k e. A ) -> B =/= 0 ) $.
    $( A finite product of nonzero terms is nonzero.  (Contributed by Scott
       Fenton, 15-Jan-2018.) $)
    fprodn0 $p |- ( ph -> prod_ k e. A B =/= 0 ) $=
      ( vf vm wceq cc0 wne cfv wcel c1 cv wa wi eqnetrd cc vn c0 cprod chash cn
      cfz wf1o wex prodeq1 prod0 syl6eq ax-1ne0 a1i cmul cmpt ccom prodfc fveq2
      co cseq simprl simprr wf eqid fmptd adantr ffvelrnda f1of syl fvco3 sylan
      fprod syl5eqr cuz nnuz syl6eleq fco syl2anc adantll csb simpr nfv nfcsb1v
      nfcv nfim csbeq1a eleq1d imbi2d expcom vtoclgaf impcom fvmpts nfne neeq1d
      nfel1 sylan2 anassrs prodfn0 expr exlimdv expimpd cfn wo fz1f1o mpjaod )
      ABUBJZBCDUCZKLZBUDMZUENZOXIUFUSZBHPZUGZHUHZQZXFXHRAXFXGOKXFXGUBCDUCOBUBCD
      UICDUJUKOKLXFULUMSUMAXJXNXHAXJQXMXHHAXJXMXHAXJXMQZQZXGXIUNDBCUOZXLUPZOUTM
      ZKXQXGBIPZXRMZIUCXTBCIDUQXQBYBUAPZXLMZXRMZIUAXLXSXIYAYDXRURAXJXMVAZAXJXMV
      BZXQBTYAXRABTXRVCZXPADBCTXRFXRVDZVEVFZVGXQXKBXLVCZYCXKNYCXSMYEJXQXMYKYGXK
      BXLVHZVIZXKBYCXRXLVJVKVLVMXQIXSOXIXQXIUEOVNMYFVOVPXQXKTYAXSXQYHYKXKTXSVCY
      JYMXKBTXRXLVQVRVGXQYAXKNZQYAXSMZYAXLMZXRMZKXQYKYNYOYQJYMXKBYAXRXLVJVKAXPY
      NYQKLZXPYNQAYPBNZYRXMYNYSXJXMXKBYAXLYLVGVSAYSQZYQDYPCVTZKYTYSUUATNZYQUUAJ
      AYSWAYSAUUBACTNZRAUUBRDYPBDYPWDZAUUBDADWBZDUUATDYPCWCZWOWEDPZYPJZUUCUUBAU
      UHCUUATDYPCWFZWGWHAUUGBNZUUCFWIWJWKDYPCBXRTYIWLVRYSAUUAKLZACKLZRAUUKRDYPB
      UUDAUUKDUUEDUUAKUUFDKWDWMWEUUHUULUUKAUUHCUUAKUUIWNWHAUUJUULGWIWJWKSWPWQSW
      RSWSWTXAABXBNXFXOXCEBHXDVIXE $.
  $}

  ${
    fprod2d.1 $e |- ( z = <. j , k >. -> D = C ) $.
    fprod2d.2 $e |- ( ph -> A e. Fin ) $.
    fprod2d.3 $e |- ( ( ph /\ j e. A ) -> B e. Fin ) $.
    fprod2d.4 $e |- ( ( ph /\ ( j e. A /\ k e. B ) ) -> C e. CC ) $.

    ${
      $d A j $.  $d A k $.  $d A m $.  $d B k $.  $d B m $.  $d B z $.
      $d C m $.  $d C z $.  $d D j $.  $d D k $.  $d D m $.  $d j k $.
      $d j m $.  $d j ph $.  $d j x $.  $d j y $.  $d j z $.  $d k m $.
      $d k ph $.  $d k x $.  $d k y $.  $d k z $.  $d m ph $.  $d m x $.
      $d m y $.  $d m z $.  $d ph z $.  $d x z $.  $d y z $.
      fprod2d.5 $e |- ( ph -> -. y e. x ) $.
      fprod2d.6 $e |- ( ph -> ( x u. { y } ) C_ A ) $.
      fprod2d.7 $e |- ( ps <-> prod_ j e. x prod_ k e. B C =
                             prod_ z e. U_ j e. x ( { j } X. B ) D ) $.
      $( Lemma for ~ fprod2d - induction step.  (Contributed by Scott Fenton,
         30-Jan-2018.) $)
      fprod2dlem $p |- ( ( ph /\ ps ) ->
                        prod_ j e. ( x u. { y } ) prod_ k e. B C =
                        prod_ z e. U_ j e. ( x u. { y } ) ( { j } X. B ) D ) $=
        ( vm wcel wa cv cprod csn cmul co cxp ciun csb wceq simpr sylib nfcsb1v
        cun nfcv nfcprod weq csbeq1a adantr prodeq12dv cbvprodi wss unssbd snss
        cc vex sylibr cfn wral ralrimiva nfel1 eleq1d rspc ralrimivva raleqbidv
        sylc nfral r19.21bi fprodcl csbeq1 prodsn syl2anc c2nd cfv cres sylancr
        snfi xpfi wf1o 2ndconst syl fvres mpan9 fprodf1o cop wex elxp nfv nfcri
        adantl nfan nfex opeq1 eqeq2d eleq1 velsn syl6bb anbi1d pm5.32i syl6bbr
        eleq2d anbi12d exbidv cbvex bitri nfcsb nfeq2 ad2antlr ad2antrl syl6req
        fveq2 op2nd exlimd syl5bi imp syl5eq eqtrd wel cin c0 syldan fprodsplit
        wrex eliun xp1st elsni elin sneq xpeq12d eqtri 3eqtrd prodeq2dv oveq12d
        expl eqtr4d wn disjsn eqidd ssfi sselda anassrs c1st biimparc rexlimiva
        sylbi anim12i 3imtr4i noel pm2.21i syl6bi syl5 ssrdv iunxun nfxp cbviun
        ss0 iunxsn uneq2i simprl simprrl opeq1d simpll simprrr syl12anc eqeltrd
        a1i iunfi ex exlimdvv rexlimdva 3eqtr4d ) ABUAZCUBZGHKUCZJUCZDUBZUDZUWD
        JUCZUEUFZJUWCJUBZUDZGUGZUHZIEUCZUWGJUWFGUIZUGZIEUCZUEUFZUWCUWGUNZUWDJUC
        ZJUWSUWLUHZIEUCZUWBUWEUWNUWHUWQUEUWBBUWEUWNUJABUKRULAUWHUWQUJBAUWHUWGJS
        UBZGUIZJUXCHUIZKUCZSUCZUWQUWGUWDUXFJSSUWDUOJUXDUXEKJUXCGUMZJUXCHUMUPJSU
        QZGUXDHUXEKJUXCGURZUXIHUXEUJKUBZGTZJUXCHURUSUTVAAUXGUWOJUWFHUIZKUCZUWQA
        UWFFTZUXNVETUXGUXNUJAUWGFVBUXOAUWCUWGFQVCUWFFDVFZVDVGZAUWOUXMKAUXOGVHTZ
        JFVIUWOVHTZUXQAUXRJFNVJUXRUXSJUWFFJUWOVHJUWFGUMZVKJDUQZGUWOVHJUWFGURZVL
        VMVPZAUXMVETZKUWOAUXOHVETZKGVIZJFVIUYDKUWOVIZUXQAUYEJKFGOVNUYFUYGJUWFFU
        YDJKUWOUXTJUXMVEJUWFHUMZVKVQUYAUYEUYDKGUWOUYBUYAHUXMVEJUWFHURZVLVOVMVPZ
        VRVSUXFUXNSUWFFSDUQZUXDUWOUXEUXMKJUXCUWFGVTZUYKUXEUXMUJUXKUXDTJUXCUWFHV
        TUSUTWAWBAUXNUWOKUXCUXMUIZSUCZUWQUWOUXMUYMKSSUXMUOKUXCUXMUMZKUXCUXMURZV
        AAUYNUWPKEUBZWCWDZUXMUIZEUCUWQAUWOUYMUWPUYSSEWCUWPWEZUYRKUXCUYRUXMVTAUW
        GVHTUXSUWPVHTUWFWGUYCUWGUWOWHWFAUXOUWPUWOUYTWIUXQUWFUWOFWJWKUYQUWPTZUYQ
        UYTWDUYRUJAUYQUWPWCWLWTAUYGUXCUWOTUYMVETZUYJUYDVUBKUXCUWOKUYMVEUYOVKKSU
        QUXMUYMVEUYPVLVMWMWNAUWPIUYSEAVUAIUYSUJZVUAUYQUWJUXKWOZUJZUYAUXLUAZUAZK
        WPZJWPZAVUCVUAUYQUXCUXKWOZUJZUXCUWGTZUXKUWOTZUAZUAZKWPZSWPVUISKUYQUWGUW
        OWQVUPVUHSJVUOJKVUKVUNJVUKJWRVULVUMJVULJWRJKUWOUXTWSXAXAXBVUHSWRSJUQZVU
        OVUGKVUQVUKVUEVUNVUFVUQVUJVUDUYQUXCUWJUXKXCXDVUQVUNUYAVUMUAVUFVUQVULUYA
        VUMVUQVULUWJUWGTUYAUXCUWJUWGXEJUWFXFXGXHUYAUXLVUMUYAGUWOUXKUYBXKXIXJXLX
        MXNXOAVUHVUCJAJWRJIUYSJKUYRUXMJUYRUOUYHXPXQAVUGVUCKAKWRKIUYSKUYRUXMUMXQ
        AVUEVUFVUCAVUEUAZVUFUAZIHUXMUYSVUEIHUJZAVUFLXRUYAHUXMUJVURUXLUYIXSVUSUX
        KUYRUJZUXMUYSUJVUEVVAAVUFVUEUYRVUDWCWDUXKUYQVUDWCYAUWJUXKJVFKVFYBXTXRKU
        YRUXMURWKUUAUUDYCYCYDYEUUBUUEYFYGYFUSUUCAUWTUWIUJBAUWCUWGUWDUWSJADCYHUU
        FUWCUWGYIZYJUJPUWCUWFUUGVGZAUWSUUHAFVHTUWSFVBUWSVHTZMQFUWSUUIWBZAUWJUWS
        TZUWJFTZUWDVETAUWSFUWJQUUJZAVVGUAGHKNAVVGUXLUYEOUUKVSYKYLUSAUXBUWRUJBAU
        WMUWPIUXAEAUWMUWPYIZYJVBVVIYJUJAEVVIYJUYQVVITZUYQUULWDZVVBTZAUYQYJTZUYQ
        UWMTZVUAUAVVKUWCTZVVKUWGTZUAVVJVVLVVNVVOVUAVVPVVNUYQUWLTZJUWCYMVVOJUYQU
        WCUWLYNVVQVVOJUWCVVQVVOJCYHVVQVVKUWJUWCVVQVVKUWKTVVKUWJUJUYQUWKGYOVVKUW
        JYPWKVLUUMUUNUUOUYQUWGUWOYOUUPUYQUWMUWPYQVVKUWCUWGYQUUQAVVLVVKYJTZVVMAV
        VBYJVVKVVCXKVVRVVMVVKUURUUSUUTUVAUVBVVIUVFWKUXAUWMUWPUNZUJAUXAUWMJUWGUW
        LUHZUNVVSJUWCUWGUWLUVCVVTUWPUWMVVTSUWGUXCUDZUXDUGZUHUWPJSUWGUWLVWBSUWLU
        OJVWAUXDJVWAUOUXHUVDUXIUWKVWAGUXDUWJUXCYRUXJYSUVESUWFVWBUWPUXPUYKVWAUWG
        UXDUWOUXCUWFYRUYLYSUVGYTUVHYTUVPAVVDUWLVHTZJUWSVIUXAVHTVVEAVWCJUWSAVVFU
        AZUWKVHTUXRVWCUWJWGAVVFVVGUXRVVHNYKUWKGWHWFVJJUWSUWLUVQWBAUYQUXATZIVETZ
        VWEVVQJUWSYMAVWFJUYQUWSUWLYNAVVQVWFJUWSVVQVUKUXCUWKTZUXLUAZUAZKWPSWPVWD
        VWFSKUYQUWKGWQVWDVWIVWFSKVWDVWIVWFVWDVWIUAZIHVEVWJVUEVUTVWJUYQVUJVUDVWD
        VUKVWHUVIVWJUXCUWJUXKVWJVWGVUQVWDVUKVWGUXLUVJUXCUWJYPWKUVKYGLWKVWJAVVGU
        XLUYEAVVFVWIUVLVWDVVGVWIVVHUSVWDVUKVWGUXLUVMOUVNUVOUVRUVSYDUVTYDYEYLUSU
        WA $.
    $}

    $d A j $.  $d A k $.  $d A w $.  $d A x $.  $d A y $.  $d A z $.  $d B k $.
    $d B w $.  $d B x $.  $d B y $.  $d B z $.  $d C w $.  $d C x $.  $d C y $.
    $d C z $.  $d D j $.  $d D k $.  $d D w $.  $d D x $.  $d D y $.  $d j k $.
    $d j ph $.  $d j w $.  $d j x $.  $d j y $.  $d j z $.  $d k ph $.
    $d k w $.  $d k x $.  $d k y $.  $d k z $.  $d ph w $.  $d ph x $.
    $d ph y $.  $d ph z $.  $d w x $.  $d w y $.  $d w z $.  $d x y $.
    $d x z $.  $d y z $.
    $( Write a double product as a product over a two-dimensional region.
       Compare ~ fsum2d .  (Contributed by Scott Fenton, 30-Jan-2018.) $)
    fprod2d $p |- ( ph -> prod_ j e. A prod_ k e. B C =
                           prod_ z e. U_ j e. A ( { j } X. B ) D ) $=
      ( vx wss cprod cv wceq wcel wi c0 vw vy csn cxp ciun ssid cfn cun prodeq1
      sseq1 iuneq1 0iun syl6eq prodeq1d eqeq12d imbi12d imbi2d weq prod0 eqtr4i
      c1 2a1i wel wn wa ssun1 sstr mpan imim1i ad2antrr adantlr cc simplr simpr
      biid fprod2dlem exp31 a2d syl5 expcom adantl findcard2s mpcom mpi ) ACCNZ
      CDEHOZGOZGCGPZUCDUDZUEZFBOZQZCUFCUGRZAWEWLSZJAUAPZCNZWOWFGOZGWOWIUEZFBOZQ
      ZSZSATCNZTWFGOZTFBOZQZSZSAMPZCNZXGWFGOZGXGWIUEZFBOZQZSZSZAXGUBPUCZUHZCNZX
      PWFGOZGXPWIUEZFBOZQZSZSZAWNSUAMUBCWOTQZXAXFAYDWPXBWTXEWOTCUJYDWQXCWSXDWOT
      WFGUIYDWRTFBYDWRGTWIUETGWOTWIUKGWIULUMUNUOUPUQUAMURZXAXMAYEWPXHWTXLWOXGCU
      JYEWQXIWSXKWOXGWFGUIYEWRXJFBGWOXGWIUKUNUOUPUQWOXPQZXAYBAYFWPXQWTYAWOXPCUJ
      YFWQXRWSXTWOXPWFGUIYFWRXSFBGWOXPWIUKUNUOUPUQWOCQZXAWNAYGWPWEWTWLWOCCUJYGW
      QWGWSWKWOCWFGUIYGWRWJFBGWOCWIUKUNUOUPUQXEAXBXCVAXDWFGUSFBUSUTVBUBMVCVDZXN
      YCSXGUGRYHAXMYBAYHXMYBSXMXQXLSAYHVEZYBXQXHXLXGXPNXQXHXGXOVFXGXPCVGVHVIYIX
      QXLYAYIXQXLYAYIXQVEXLMUBBCDEFGHIAWMYHXQJVJYIWHCRZDUGRZXQAYJYKYHKVKVKYIYJH
      PDRVEZEVLRZXQAYLYMYHLVKVKAYHXQVMYIXQVNXLVOVPVQVRVSVTVRWAWBWCWD $.
  $}

  ${
    $d A j $.  $d A k $.  $d A z $.  $d B j $.  $d B k $.  $d B z $.  $d C z $.
    $d D j $.  $d D k $.  $d j k $.  $d j ph $.  $d j z $.  $d k ph $.
    $d k z $.  $d ph z $.
    fprodxp.1 $e |- ( z = <. j , k >. -> D = C ) $.
    fprodxp.2 $e |- ( ph -> A e. Fin ) $.
    fprodxp.3 $e |- ( ph -> B e. Fin ) $.
    fprodxp.4 $e |- ( ( ph /\ ( j e. A /\ k e. B ) ) -> C e. CC ) $.
    $( Combine two products into a single product over the cartesian product.
       (Contributed by Scott Fenton, 1-Feb-2018.) $)
    fprodxp $p |- ( ph ->
    prod_ j e. A prod_ k e. B C = prod_ z e. ( A X. B ) D ) $=
      ( cprod cv csn cxp ciun cfn wcel adantr fprod2d iunxpconst prodeq1i
      syl6eq ) ACDEHMGMGCGNZODPQZFBMCDPZFBMABCDEFGHIJADRSUECSKTLUAUFUGFBGCDUBUC
      UD $.
  $}

  ${
    $d A x $.  $d A y $.  $d A z $.  $d B j $.  $d B k $.  $d B y $.  $d C j $.
    $d C k $.  $d D x $.  $d D y $.  $d j k $.  $d j x $.  $d j y $.  $d k x $.
    $d k y $.  $d ph x $.  $d ph y $.  $d x y $.  $d y z $.
    fprodcnv.1 $e |- ( x = <. j , k >. -> B = D ) $.
    fprodcnv.2 $e |- ( y = <. k , j >. -> C = D ) $.
    fprodcnv.3 $e |- ( ph -> A e. Fin ) $.
    fprodcnv.4 $e |- ( ph -> Rel A ) $.
    fprodcnv.5 $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
    $( Transform a product region using the converse operation.  (Contributed
       by Scott Fenton, 1-Feb-2018.) $)
    fprodcnv $p |- ( ph -> prod_ x e. A B = prod_ y e. `' A C ) $=
      ( vz ccnv cv cfv csb wceq cprod c2nd c1st csn cuni cmpt csbeq1a fvex opex
      cop wa csbie opeq12 csbeq1d syl5eqr csbie2 syl6eqr cfn wcel syl wf1o wrel
      cnvfi relcnv cnvf1o ax-mp wb dfrel2 sylib f1oeq3 mpbii 1st2nd mpan fveq2d
      eleq1d sneq cnveqd unieqd opswap syl6eq eqid fvmpt adantl fprodf1o ancoms
      ibi eqtrd prodeq2i ) ADEBUADPZHCQZUBRZIWJUCRZGSSZCUAWIFCUAADEWIWMBCOWIOQZ
      UDZPZUEZUFZWKWLUJZBQWSTEBWSESZWMBWSEUGHIWKWLGWTWJUBUHZWJUCUHZHQZWKTZIQZWL
      TZUKZGBXCXEUJZESWTBXHEGXCXEUIJULXGBXHWSEXCXEWKWLUMUNUOUPUQADURUSWIURUSLDV
      CUTAWIWIPZWRVAZWIDWRVAZWIVBZXJDVDZOWIVEVFAXIDTZXJXKVGADVBXNMDVHVIXIDWIWRV
      JUTVKWJWIUSZWJWRRZWSTAXOXPWLWKUJZWRRZWSXOWJXQWRXLXOWJXQTZXMWJWIVLVMZVNXOX
      QWIUSZXRWSTXOYAXOWJXQWIXTVOWFOXQWQWSWIWRWNXQTZWQXQUDZPZUEWSYBWPYDYBWOYCWN
      XQVPVQVRWLWKVSVTWRWAWKWLUIWBUTWGWCNWDWIFWMCXOFCXQFSZWMXOXSFYETXTCXQFUGUTH
      IWKWLGYEXAXBXGGCXEXCUJZFSYECYFFGXEXCUIKULXGCYFXQFXFXDYFXQTXEXCWLWKUMWEUNU
      OUPUQWHUQ $.
  $}

  ${
    $d A j k x y z $.  $d B k x y z $.  $d C j k w x y z $.  $d D j w x y z $.
    $d E w x y z $.  $d ph j k w x y z $.
    fprodcom2.1 $e |- ( ph -> A e. Fin ) $.
    fprodcom2.2 $e |- ( ph -> C e. Fin ) $.
    fprodcom2.3 $e |- ( ( ph /\ j e. A ) -> B e. Fin ) $.
    fprodcom2.4 $e |- ( ph ->
    ( ( j e. A /\ k e. B ) <-> ( k e. C /\ j e. D ) ) ) $.
    fprodcom2.5 $e |- ( ( ph /\ ( j e. A /\ k e. B ) ) -> E e. CC ) $.
    $( Interchange order of multiplication.  Note that ` B ( j ) ` and
       ` D ( k ) ` are not necessarily constant expressions.  (Contributed by
       Scott Fenton, 1-Feb-2018.)  (Proof shortened by JJ, 2-Aug-2021.) $)
    fprodcom2 $p |- ( ph -> prod_ j e. A prod_ k e. B E =
      prod_ k e. C prod_ j e. D E ) $=
      ( vx vy csb cprod wceq wcel wa vz vw csn cxp ciun c2nd cfv c1st ccnv wrel
      cv wral relxp rgenw reliun mpbir relcnv cop wex wb weq ancom opth 3bitr4i
      vex anbi12d 2exbidv eliunxp opelcnv excom 3bitri 3bitr4g eqrelrdv nfcsb1v
      a1i nfcv nfxp sneq csbeq1a xpeq12d cbviun cnveqi 3eqtr3g prodeq1d csbeq1d
      op1std op2ndd csbeq2dv eqtrd snfi adantr wrex opeliunxp2f sylbbr eleqtrrd
      cfn adantl eliun sylib simpr opelxp simpld elsni syl simpl rexlimiva expr
      eqeltrd ssrdv ssfid xpfi sylancr ralrimiva iunfi syl2anc mprgbir cc xp2nd
      xp1st nfcri wi equcomd eleq2d biimpa sylbi rexlimi nfel1 eleq1d raleqbidv
      ralrimivva rspc mpan9 csbeq1 rspcv sylc fprod2d nfcprod prodeq12dv syl5eq
      cbvprodi nfral syl5com syl12anc fprodcnv eqtr4d 3eqtr4d nfcsb 3eqtr4g
      impr ) ABFNUKZCPZGOUKZFUUJHPZPZOQZNQZDGUULEPZUUNNQZOQZBCHGQZFQDEHFQZGQANB
      UUJUCZUUKUDZUEZGUAUKZUFUGZFUVEUHUGZHPZPZUAQZODUULUCZUUQUDZUEZGUBUKZUHUGZF
      UVNUFUGZHPZPZUBQZUUPUUSAUVJUVMUIZUVIUAQUVSAUVDUVTUVIUAAFBFUKZUCZCUDZUEZGD
      GUKZUCZEUDZUEZUIZUVDUVTANOUWDUWIUWDUJUWCUJZFBULUWJFBUWBCUMUNFBUWCUOUPUWHU
      QAUUJUULURZUWAUWEURRZUWABSZUWECSTZTZGUSFUSUULUUJURZUWEUWAURRZUWEDSUWAESTZ
      TZGUSFUSZUWKUWDSZUWKUWISZAUWOUWSFGAUWLUWQUWNUWRUWLUWQUTANFVAZOGVAZTUXDUXC
      TUWLUWQUXCUXDVBUUJUULUWAUWENVEZOVEZVCUULUUJUWEUWAUXFUXEVCVDVOLVFVGFGBCUWK
      VHUXBUWPUWHSZUWSFUSGUSUWTUUJUULUWHUXEUXFVIZGFDEUWPVHUWSGFVJVKVLVMZFNBUWCU
      VCNUWCVPFUVBUUKFUVBVPFUUJCVNZVQFNVAZUWBUVBCUUKUWAUUJVRFUUJCVSZVTWAUWHUVMG
      ODUWGUVLOUWGVPGUVKUUQGUVKVPGUULEVNZVQGOVAZUWFUVKEUUQUWEUULVRGUULEVSZVTWAW
      BWCWDAUBUAUVMUVRUVIUUNONUVNUWPRZUVRGUULUVQPUUNUXPGUVOUULUVQUULUUJUVNUXFUX
      EWFWEUXPGUULUVQUUMUXPFUVPUUJHUULUUJUVNUXFUXEWGWEWHWIZUVEUWKRZUVIGUULUVHPU
      UNUXRGUVFUULUVHUUJUULUVEUXEUXFWGWEUXRGUULUVHUUMUXRFUVGUUJHUUJUULUVEUXEUXF
      WFWEWHWIZADWPSUVLWPSZODULUVMWPSJAUXTODAUULDSZTZUVKWPSUUQWPSUXTUULWJUYBBUU
      QABWPSUYAIWKUYBNUUQBAUYAUUJUUQSZUUJBSZAUYAUYCTZTZUWKUWCSZFBWLZUYDUYFUXAUY
      HUYFUWKUWIUWDUYEUXBAUXBUXGUYEUXHGDEUULUUJUUQUXMUXOWMWNWQAUWDUWIRUYEUXIWKW
      OFUWKBUWCWRWSZUYGUYDFBUWMUYGTZUUJUWABUYJUUJUWBSZUXCUYJUYKUULCSZUYJUYGUYKU
      YLTZUWMUYGWTUUJUULUWBCXAZWSXBUUJUWAXCZXDUWMUYGXEXHXFXDZXGXIXJZUVKUUQXKXLX
      MODUVLXNXOUVMUJZAUYRUVLUJZODODUVLUOUYSUYAUVKUUQUMVOXPVOAUVNUVMSZTZUVPGUVO
      EPZSZGUVOUUMPZXQSZNVUBULZUVRXQSZVUAUVNUVLSZODWLZVUCVUAUYTVUIAUYTWTOUVNDUV
      LWRWSZVUHVUCODUYAVUHTZUVPUUQVUBVUHUVPUUQSUYAUVNUVKUUQXRWQVUKGUVOUULEVUKUV
      OUVKSZUVOUULRVUHVULUYAUVNUVKUUQXSWQUVOUULXCXDZWEWOXFXDVUAUVODSZUUNXQSZNUU
      QULZODULZVUFVUAVUIVUNVUJVUHVUNODVUKUVOUULDVUMUYAVUHXEXHXFXDAVUQUYTAVUOOND
      UUQUYFAUYDUULUUKSZVUOAUYEXEUYPUYFUYHVURUYIUYGVURFBFOUUKUXJXTUYGVURYAUWMUY
      GUYMVURUYNUYKUYLVURUYKCUUKUULUYKUXKCUUKRUYKNFUYOYBUXLXDYCYDYEVOYFXDAUYDVU
      RVUOAUYDTUUMXQSZGUUKULZVURVUOAHXQSZGCULZFBULUYDVUTAVVAFGBCMYJVVBVUTFUUJBV
      USFGUUKUXJFUUMXQFUUJHVNZYGUUAUXKVVAVUSGCUUKUXLUXKHUUMXQFUUJHVSZYHYIYKYLVU
      SVUOGUULUUKGUUNXQGUULUUMVNZYGUXNUUMUUNXQGUULUUMVSZYHYKUUBUUIZUUCZYJWKVUPV
      UFOUVODUULUVORZVUOVUENUUQVUBGUULUVOEYMVVIUUNVUDXQGUULUVOUUMYMYHYIYNYOVUEV
      UGNUVPVUBUUJUVPRZVUDUVRXQVVJGUVOUUMUVQFUUJUVPHYMWHYHYNYOUUDUUEAUABUUKUUNU
      VINOUXSIACWPSZFBULUYDUUKWPSZAVVKFBKXMVVKVVLFUUJBFUUKWPUXJYGUXKCUUKWPUXLYH
      YKYLVVGYPAUBDUUQUUNUVRONUXQJUYQVVHYPUUFBUUTUUOFNNUUTVPFUUKUUNOUXJFGUULUUM
      FUULVPVVCUUGYQUXKUUTCGUULHPZOQUUOCHVVMGOOHVPGUULHVNGUULHVSYTUXKCUUKVVMUUN
      OUXLUXKVVMUUNRUYLUXKGUULHUUMVVDWHWKYRYSYTDUVAUURGOOUVAVPGUUQUUNNUXMVVEYQU
      XNUVAEUUMNQUUREHUUMFNNHVPVVCVVDYTUXNEUUQUUMUUNNUXOUXNUUMUUNRUUJESVVFWKYRY
      SYTUUH $.

    $d j m n $.  $d k m n $.  $d m n w $.  $d m n z $.  $d A m n $.
    $d B m n $.  $d C m n $.  $d D m n $.  $d E m n $.  $d ph m n $.
    $( Obsolete proof of ~ fprodcom2 as of 2-Aug-2021.  (Contributed by Scott
       Fenton, 1-Feb-2018.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    fprodcom2OLD $p |- ( ph -> prod_ j e. A prod_ k e. B E =
      prod_ k e. C prod_ j e. D E ) $=
      ( vm vn csb cprod wceq wcel wa vz vw vx vy cv csn cxp ciun c2nd c1st ccnv
      cfv wrel relxp rgenw reliun mpbir relcnv cop wex wb weq ancom vex 3bitr4i
      wral opth a1i anbi12d 2exbidv eliunxp opelcnv excom 3bitr4g eqrelrdv nfcv
      3bitri nfcsb1v nfxp csbeq1a xpeq12d cbviun cnveqi 3eqtr3g prodeq1d op1std
      sneq csbeq1d op2ndd csbeq2dv eqtrd cfn snfi wss adantr nfcri id syl6eqelr
      vsnid biantrurd opelxp syl6rbbr eleq2d bitrd rspce sylibr adantl eleqtrrd
      wrex eliun sylib simpr simpld elsni syl simpl eqeltrd rexlimiva expr ssfi
      ssrdv syl2anc xpfi sylancr ralrimiva cc ralrimivva nfel1 eleq1d raleqbidv
      rspc mpan9 csbeq1 rspcv sylc fprod2d nfcprod cbvprodi prodeq12dv syl5eq
      iunfi mprgbir xp2nd xp1st wi eqcomd biimpa sylbi rexlimi syl5com syl12anc
      nfral impr fprodcnv eqtr4d 3eqtr4d nfcsb 3eqtr4g ) ABFNUEZCPZGOUEZFUUSHPZ
      PZOQZNQZDGUVAEPZUVCNQZOQZBCHGQZFQDEHFQZGQANBUUSUFZUUTUGZUHZGUAUEZUIULZFUV
      NUJULZHPZPZUAQZODUVAUFZUVFUGZUHZGUBUEZUJULZFUWCUIULZHPZPZUBQZUVEUVHAUVSUW
      BUKZUVRUAQUWHAUVMUWIUVRUAAFBFUEZUFZCUGZUHZGDGUEZUFZEUGZUHZUKZUVMUWIAUCUDU
      WMUWRUWMUMUWLUMZFBVFUWSFBUWKCUNUOFBUWLUPUQUWQURAUCUEZUDUEZUSZUWJUWNUSRZUW
      JBSZUWNCSTZTZGUTFUTUXAUWTUSZUWNUWJUSRZUWNDSUWJESTZTZGUTFUTZUXBUWMSUXBUWRS
      ZAUXFUXJFGAUXCUXHUXEUXIUXCUXHVAAUCFVBZUDGVBZTUXNUXMTUXCUXHUXMUXNVCUWTUXAU
      WJUWNUCVDZUDVDZVGUXAUWTUWNUWJUXPUXOVGVEVHLVIVJFGBCUXBVKUXLUXGUWQSUXJFUTGU
      TUXKUWTUXAUWQUXOUXPVLGFDEUXGVKUXJGFVMVQVNVOZFNBUWLUVLNUWLVPFUVKUUTFUVKVPF
      UUSCVRZVSFNVBZUWKUVKCUUTUWJUUSWGFUUSCVTZWAWBUWQUWBGODUWPUWAOUWPVPGUVTUVFG
      UVTVPGUVAEVRZVSGOVBZUWOUVTEUVFUWNUVAWGGUVAEVTZWAWBWCWDWEAUBUAUWBUWGUVRUVC
      ONUWCUVAUUSUSZRZUWGGUVAUWFPUVCUYEGUWDUVAUWFUVAUUSUWCOVDZNVDZWFWHUYEGUVAUW
      FUVBUYEFUWEUUSHUVAUUSUWCUYFUYGWIWHWJWKZUVNUUSUVAUSZRZUVRGUVAUVQPUVCUYJGUV
      OUVAUVQUUSUVAUVNUYGUYFWIWHUYJGUVAUVQUVBUYJFUVPUUSHUUSUVAUVNUYGUYFWFWHWJWK
      ZADWLSUWAWLSZODVFUWBWLSJAUYLODAUVADSZTZUVTWLSUVFWLSZUYLUVAWMUYNBWLSZUVFBW
      NUYOAUYPUYMIWOUYNNUVFBAUYMUUSUVFSZUUSBSZAUYMUYQTZTZUYIUWLSZFBXIZUYRUYTUYI
      UWMSVUBUYTUYIUWRUWMUYSUYIUWRSZAUYSUYDUWQSZVUCUYSUYDUWPSZGDXIVUDVUEUYQGUVA
      DGNUVFUYAWPUYBVUEUUSESZUYQUYBVUFUVAUWOSZVUFTVUEUYBVUGVUFUYBUVAUWNUWOUYBWQ
      GWSWRWTUVAUUSUWOEXAXBUYBEUVFUUSUYCXCXDXEGUYDDUWPXJXFUUSUVAUWQUYGUYFVLXFXG
      AUWMUWRRUYSUXQWOXHFUYIBUWLXJXKZVUAUYRFBUXDVUATZUUSUWJBVUIUUSUWKSZNFVBVUIV
      UJUVACSZVUIVUAVUJVUKTZUXDVUAXLUUSUVAUWKCXAZXKXMUUSUWJXNZXOUXDVUAXPXQXRXOZ
      XSYABUVFXTYBZUVTUVFYCYDYEODUWAUUAYBUWBUMZAVUQUWAUMZODODUWAUPVURUYMUVTUVFU
      NVHUUBVHAUWCUWBSZTZUWEGUWDEPZSZGUWDUVBPZYFSZNVVAVFZUWGYFSZVUTUWCUWASZODXI
      ZVVBVUTVUSVVHAVUSXLOUWCDUWAXJXKZVVGVVBODUYMVVGTZUWEUVFVVAVVGUWEUVFSUYMUWC
      UVTUVFUUCXGVVJGUWDUVAEVVJUWDUVTSZUWDUVARVVGVVKUYMUWCUVTUVFUUDXGUWDUVAXNXO
      ZWHXHXRXOVUTUWDDSZUVCYFSZNUVFVFZODVFZVVEVUTVVHVVMVVIVVGVVMODVVJUWDUVADVVL
      UYMVVGXPXQXRXOAVVPVUSAVVNONDUVFUYTAUYRUVAUUTSZVVNAUYSXPVUOUYTVUBVVQVUHVUA
      VVQFBFOUUTUXRWPVUAVVQUUEUXDVUAVULVVQVUMVUJVUKVVQVUJCUUTUVAVUJUXSCUUTRVUJU
      USUWJVUNUUFUXTXOXCUUGUUHVHUUIXOAUYRVVQVVNAUYRTUVBYFSZGUUTVFZVVQVVNAHYFSZG
      CVFZFBVFUYRVVSAVVTFGBCMYGVWAVVSFUUSBVVRFGUUTUXRFUVBYFFUUSHVRZYHUULUXSVVTV
      VRGCUUTUXTUXSHUVBYFFUUSHVTZYIYJYKYLVVRVVNGUVAUUTGUVCYFGUVAUVBVRZYHUYBUVBU
      VCYFGUVAUVBVTZYIYKUUJUUMZUUKZYGWOVVOVVEOUWDDUVAUWDRZVVNVVDNUVFVVAGUVAUWDE
      YMVWHUVCVVCYFGUVAUWDUVBYMYIYJYNYOVVDVVFNUWEVVAUUSUWERZVVCUWGYFVWIGUWDUVBU
      WFFUUSUWEHYMWJYIYNYOUUNUUOAUABUUTUVCUVRNOUYKIACWLSZFBVFUYRUUTWLSZAVWJFBKY
      EVWJVWKFUUSBFUUTWLUXRYHUXSCUUTWLUXTYIYKYLVWFYPAUBDUVFUVCUWGONUYHJVUPVWGYP
      UUPBUVIUVDFNNUVIVPFUUTUVCOUXRFGUVAUVBFUVAVPVWBUUQYQUXSUVICGUVAHPZOQUVDCHV
      WLGOOHVPGUVAHVRGUVAHVTYRUXSCUUTVWLUVCOUXTUXSVWLUVCRVUKUXSGUVAHUVBVWCWJWOY
      SYTYRDUVJUVGGOOUVJVPGUVFUVCNUYAVWDYQUYBUVJEUVBNQUVGEHUVBFNNHVPVWBVWCYRUYB
      EUVFUVBUVCNUYCUYBUVBUVCRVUFVWEWOYSYTYRUUR $.
  $}

  ${
    $d A j $.  $d A k $.  $d B j $.  $d B k $.  $d j k $.  $d j ph $.
    $d k ph $.
    fprodcom.1 $e |- ( ph -> A e. Fin ) $.
    fprodcom.2 $e |- ( ph -> B e. Fin ) $.
    fprodcom.3 $e |- ( ( ph /\ ( j e. A /\ k e. B ) ) -> C e. CC ) $.
    $( Interchange product order.  (Contributed by Scott Fenton,
       2-Feb-2018.) $)
    fprodcom $p |- ( ph -> prod_ j e. A prod_ k e. B C =
       prod_ k e. B prod_ j e. A C ) $=
      ( cfn wcel cv adantr wa wb ancom a1i fprodcom2 ) ABCCBEFDGHACJKELBKZHMSFL
      CKZNTSNOASTPQIR $.
  $}

  ${
    $d j k $.  $d j ph $.  $d k ph $.  $d N j $.  $d N k $.
    fprod0diag.1 $e |-
      ( ( ph /\ ( j e. ( 0 ... N ) /\ k e. ( 0 ... ( N - j ) ) ) ) ->
      A e. CC ) $.
    $( Two ways to express "the product of ` A ( j , k ) ` over the triangular
       region ` M <_ j ` , ` M <_ k ` , ` j + k <_ N ` .  Compare ~ fsum0diag .
       (Contributed by Scott Fenton, 2-Feb-2018.) $)
    fprod0diag $p |- ( ph ->
      prod_ j e. ( 0 ... N ) prod_ k e. ( 0 ... ( N - j ) ) A =
      prod_ k e. ( 0 ... N ) prod_ j e. ( 0 ... ( N - k ) ) A ) $=
      ( cc0 cfz co cv cmin fzfid wcel wa wb fsum0diaglem impbii a1i fprodcom2 )
      AGEHIZGECJZKIZHIZTGEDJZKIHIZCDBAGELZUFAUATMZNGUBLUGUDUCMNZUDTMUAUEMNZOAUH
      UICDEPDCEPQRFS $.
  $}

  ${
    $d A j k $.  $d B j $.  $d C j $.  $d j ph $.
    fproddivf.kph $e |- F/ k ph $.
    fproddivf.a $e |- ( ph -> A e. Fin ) $.
    fproddivf.b $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    fproddivf.c $e |- ( ( ph /\ k e. A ) -> C e. CC ) $.
    fproddivf.ne0 $e |- ( ( ph /\ k e. A ) -> C =/= 0 ) $.
    $( The quotient of two finite products.  A version of ~ fproddiv using
       bound-variable hypotheses instead of distinct variable conditions.
       (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    fproddivf $p |- ( ph -> prod_ k e. A ( B / C ) = ( prod_ k e. A B / prod_ k
       e. A C ) ) $=
      ( vj cdiv co cprod wceq nfcv wcel cc wi cc0 cv csbeq1a oveq12d nfcsb1v wa
      csb nfov cbvprod a1i nfvd nfan1 nfel nfim eleq1 anbi2d eleq1d imbi12d wne
      chvar nfne neeq1d fproddiv eqcomi equcoms eqcomd 3eqtrd ) ABCDLMZENZBEKUA
      ZCUFZEVIDUFZLMZKNZBVJKNZBVKKNZLMBCENZBDENZLMVHVMOABVGVLEKEUAZVIOZCVJDVKLE
      VICUBZEVIDUBZUCKBPZEBPZKVGPEVJVKLEVICUDZELPEVIDUDZUGUHUIABVJVKKGAVRBQZUEZ
      CRQZSAVIBQZUEZVJRQZSEKWJWKEAWIEFAWIEUJUKZEVJRWDERPZULUMVSWGWJWHWKVSWFWIAV
      RVIBUNUOZVSCVJRVTUPUQHUSWGDRQZSWJVKRQZSEKWJWPEWLEVKRWEWMULUMVSWGWJWOWPWNV
      SDVKRWAUPUQIUSWGDTURZSWJVKTURZSEKWJWREWLEVKTWEETPUTUMVSWGWJWQWRWNVSDVKTWA
      VAUQJUSVBAVNVPVOVQLVNVPOAVPVNBCVJEKVTWBWCKCPWDUHVCUIVOVQOABVKDKEVIVRODVKD
      VKOEKWAVDVEWCWBWEKDPUHUIUCVF $.
  $}

  ${
    $d A j k $.  $d B j k $.  $d C j $.  $d U j k $.  $d j ph $.
    fprodsplitf.kph $e |- F/ k ph $.
    fprodsplitf.in $e |- ( ph -> ( A i^i B ) = (/) ) $.
    fprodsplitf.un $e |- ( ph -> U = ( A u. B ) ) $.
    fprodsplitf.fi $e |- ( ph -> U e. Fin ) $.
    fprodsplitf.c $e |- ( ( ph /\ k e. U ) -> C e. CC ) $.
    $( Split a finite product into two parts.  A version of ~ fprodsplit using
       bound-variable hypotheses instead of distinct variable conditions.
       (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    fprodsplitf $p |- ( ph -> prod_ k e. U C = ( prod_ k e. A C x. prod_ k e. B
       C ) ) $=
      ( vj cprod cv cmul co wceq nfcv wcel cc csb csbeq1a nfcsb1v cbvprod wa wi
      a1i nfan nfel1 nfim eleq1 anbi2d eleq1d imbi12d chvar fprodsplit cbvprodi
      nfv oveq12i eqcomi 3eqtrd ) AEDFMZEFLNZDUAZLMZBVDLMZCVDLMZOPZBDFMZCDFMZOP
      ZVBVEQAEDVDFLFVCDUBZLERFERLDRZFVCDUCZUDUGABCVDELHIJAFNZESZUEZDTSZUFAVCESZ
      UEZVDTSZUFFLVTWAFAVSFGVSFURUHFVDTVNUIUJVOVCQZVQVTVRWAWBVPVSAVOVCEUKULWBDV
      DTVLUMUNKUOUPVHVKQAVKVHVIVFVJVGOBDVDFLVMVNVLUQCDVDFLVMVNVLUQUSUTUGVA $.
  $}

  ${
    $d A k $.  $d B k $.  $d V k $.
    fprodsplitsn.ph $e |- F/ k ph $.
    fprodsplitsn.kd $e |- F/_ k D $.
    fprodsplitsn.a $e |- ( ph -> A e. Fin ) $.
    fprodsplitsn.b $e |- ( ph -> B e. V ) $.
    fprodsplitsn.ba $e |- ( ph -> -. B e. A ) $.
    fprodsplitsn.c $e |- ( ( ph /\ k e. A ) -> C e. CC ) $.
    fprodsplitsn.d $e |- ( k = B -> C = D ) $.
    fprodsplitsn.dcn $e |- ( ph -> D e. CC ) $.
    $( Separate out a term in a finite product.  (Contributed by Glauco
       Siliprandi, 5-Apr-2020.) $)
    fprodsplitsn $p |- ( ph -> prod_ k e. ( A u. { B } ) C = ( prod_ k e. A C
       x. D ) ) $=
      ( cprod cmul wcel wceq cfn csn cun co wn cin disjsn sylibr eqidd snfi a1i
      c0 unfi syl2anc cv wa adantlr elunnel1 elsni syl adantll simpll pm2.61dan
      cc eqeltrd fprodsplitf prodsnf oveq2d eqtrd ) ABCUAZUBZDFPBDFPZVIDFPZQUCV
      KEQUCABVIDVJFHACBRUDBVIUEUKSLBCUFUGAVJUHABTRVITRZVJTRJVMACUIUJBVIULUMAFUN
      ZVJRZUOZVNBRZDVCRZAVQVRVOMUPVPVQUDZUOZDEVCVTVNCSZDESVOVSWAAVOVSUOVNVIRWAV
      NBVIUQVNCURUSUTNUSVTAEVCRZAVOVSVAOUSVDVBVEAVLEVKQACGRWBVLESKODEFCGINVFUMV
      GVH $.
  $}

  ${
    $d A k $.  $d C k $.
    fprodsplit1f.kph $e |- F/ k ph $.
    fprodsplit1f.fk $e |- ( ph -> F/_ k D ) $.
    fprodsplit1f.a $e |- ( ph -> A e. Fin ) $.
    fprodsplit1f.b $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    fprodsplit1f.c $e |- ( ph -> C e. A ) $.
    fprodsplit1f.d $e |- ( ( ph /\ k = C ) -> B = D ) $.
    $( Separate out a term in a finite product.  A version of ~ fprodsplit1
       using bound-variable hypotheses instead of distinct variable conditions.
       (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    fprodsplit1f $p |- ( ph -> prod_ k e. A B = ( D x. prod_ k e. ( A \ { C } )
       B ) ) $=
      ( cprod cmul co wceq wcel eqcomd cc wa csn cdif cin disjdif a1i cun snssi
      c0 wss syl undif sylib fprodsplitf csb csbiedf ancli nfcv nfv nfan nfcsb1
      cv wi nfel nfim eleq1 anbi2d csbeq1a imbi12d vtoclgf sylc eqeltrd prodsns
      eleq1d syl2anc eqtrd oveq1d ) ABCFMDUAZCFMZBVQUBZCFMZNOEVTNOAVQVSCBFGVQVS
      UCUHPAVQBUDUEAVQVSUFZBAVQBUIZWABPADBQZWBKDBUGUJVQBUKULRIJUMAVREVTNAVRFDCU
      NZEAWCWDSQZVRWDPKAWDESAFDCEBGHKLUOZAEWDSAWDEWFRAWCAWCTZWEKAWCKUPAFVAZBQZT
      ZCSQZVBWGWEVBFDBFDUQZWGWEFAWCFGWCFURUSFWDSFDCWLUTFSUQVCVDWHDPZWJWGWKWEWMW
      IWCAWHDBVEVFWMCWDSFDCVGVMVHJVIVJVKVKCFDBVLVNWFVOVPVO $.
  $}

  ${
    $d A k x y $.  $d B x y $.  $d ph x y $.
    fprodn0f.kph $e |- F/ k ph $.
    fprodn0f.a $e |- ( ph -> A e. Fin ) $.
    fprodn0f.b $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    fprodn0f.bne0 $e |- ( ( ph /\ k e. A ) -> B =/= 0 ) $.
    $( A finite product of nonzero terms is nonzero.  A version of ~ fprodn0
       using bound-variable hypotheses instead of distinct variable conditions.
       (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    fprodn0f $p |- ( ph -> prod_ k e. A B =/= 0 ) $=
      ( vx vy cc cc0 wcel wne cv wa adantl wceq eldifsni c1 cprod csn cdif cmul
      difssd co eldifi adantr mulcld mulne0d neneqd ovex elsn sylnibr eldifd wb
      elsng syl mtbird wn ax-1cn 0ne1 necomi neneq ax-mp 1ex mtbir pm3.2i eldif
      mpbir a1i fprodcllemf ) ABCDUAZKLUBZUCZMVMLNAIJBCVODEAKVNUEIOZVOMZJOZVOMZ
      PZVPVRUDUFZVOMAVTWAKVNVTVPVRVQVPKMVSVPKVNUGUHZVSVRKMVQVRKVNUGQZUIVTWALRWA
      VNMVTWALVTVPVRWBWCVQVPLNVSVPKLSUHVSVRLNVQVRKLSQUJUKWALVPVRUDULUMUNUOQFADO
      BMPZCKVNGWDCVNMZCLRZWDCLHUKWDCKMWEWFUPGCLKUQURUSUOTVOMZAWGTKMZTVNMZUTZPWH
      WJVAWITLRZTLNWKUTLTVBVCTLVDVETLVFUMVGVHTKVNVIVJVKVLVMKLSUR $.
  $}

  ${
    $d A k x y $.  $d B x y $.  $d ph x y $.
    fprodclf.kph $e |- F/ k ph $.
    fprodclf.a $e |- ( ph -> A e. Fin ) $.
    fprodclf.b $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    $( Closure of a finite product of complex numbers.  A version of ~ fprodcl
       using bound-variable hypotheses instead of distinct variable conditions.
       (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    fprodclf $p |- ( ph -> prod_ k e. A B e. CC ) $=
      ( vx vy cc wss ssid a1i cv wcel wa cmul co mulcl adantl c1 fprodcllemf
      ax-1cn ) AHIBCJDEJJKAJLMHNZJOINZJOPUDUEQRJOAUDUESTFGUAJOAUCMUB $.
  $}

  ${
    $d A k x y $.  $d B x y $.  $d ph x y $.
    fprodge0.kph $e |- F/ k ph $.
    fprodge0.a $e |- ( ph -> A e. Fin ) $.
    fprodge0.b $e |- ( ( ph /\ k e. A ) -> B e. RR ) $.
    fprodge0.0leb $e |- ( ( ph /\ k e. A ) -> 0 <_ B ) $.
    $( If all the terms of a finite product are nonnegative, so is the product.
       (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    fprodge0 $p |- ( ph -> 0 <_ prod_ k e. A B ) $=
      ( vx vy cc0 cpnf co wcel cle wbr cr cv a1i c1 cico cc wss elrege0 simplbi
      cprod ssriv ax-resscn sstri wa cmul ge0mulcl adantl sylanbrc clt w3a 0le1
      1re ltpnf ax-mp 3pm3.2i wb 0e0icopnf sselii pnfxr mp2an mpbir fprodcllemf
      cxr elico2 0xr id icogelb syl3anc syl ) ABCDUFZKLUAMZNZKVPOPZAIJBCVQDEVQU
      BUCAVQQUBIVQQIRZVQNZVTQNKVTOPVTUDUEUGZUHUISWAJRZVQNUJVTWCUKMVQNAVTWCULUMF
      ADRBNUJCQNKCOPCVQNGHCUDUNTVQNZAWDTQNZKTOPZTLUOPZUPZWEWFWGURUQWEWGURTUSUTV
      AKQNLVINZWDWHVBVQQKWBVCVDVEKLTVJVFVGSVHVRKVINZWIVRVSWJVRVKSWIVRVESVRVLKLV
      PVMVNVO $.
  $}

  ${
    $d A k $.  $d C k $.
    fprodeq0g.kph $e |- F/ k ph $.
    fprodeq0g.a $e |- ( ph -> A e. Fin ) $.
    fprodeq0g.b $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    fprodeq0g.c $e |- ( ph -> C e. A ) $.
    fprodeq0g.b0 $e |- ( ( ph /\ k = C ) -> B = 0 ) $.
    $( Any finite product containing a zero term is itself zero.  (Contributed
       by Glauco Siliprandi, 5-Apr-2020.) $)
    fprodeq0g $p |- ( ph -> prod_ k e. A B = 0 ) $=
      ( cprod cc0 csn cdif cmul co nfcvd fprodsplit1f cfn wcel diffi syl eldifi
      cv wa cc simpl adantl syl2anc fprodclf mul02d eqtrd ) ABCEKLBDMZNZCEKZOPL
      ABCDLEFAELQGHIJRAUOAUNCEFABSTUNSTGBUMUAUBAEUDZUNTZUEAUPBTZCUFTAUQUGUQURAU
      PBUMUCUHHUIUJUKUL $.
  $}

  ${
    $d A k x y $.  $d B x y $.  $d ph x y $.
    fprodge1.ph $e |- F/ k ph $.
    fprodge1.a $e |- ( ph -> A e. Fin ) $.
    fprodge1.b $e |- ( ( ph /\ k e. A ) -> B e. RR ) $.
    fprodge1.ge $e |- ( ( ph /\ k e. A ) -> 1 <_ B ) $.
    $( If all of the terms of a finite product are larger or equal to ` 1 ` ,
       so is the product.  (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    fprodge1 $p |- ( ph -> 1 <_ prod_ k e. A B ) $=
      ( c1 wcel cpnf co cle wbr 1re a1i pnfxr cr cv adantl vx vy cxr cprod cico
      rexri cc wss icossre mp2an ax-resscn sstri wa sseli adantr remulcld rexrd
      cmul wceq eqcomi cc0 0le1 icogelb syl3anc lemul12ad eqbrtrd ltpnfd elicod
      1t1e1 id clt w3a 1le1 ltpnf ax-mp 3pm3.2i wb elico2 mpbir fprodcllemf ) A
      IUCJZKUCJZBCDUDZIKUELZJIWCMNWAAIOUFZPWBAQPAUAUBBCWDDEWDUGUHAWDRUGIRJZWBWD
      RUHOQIKUIUJZUKULPUASZWDJZUBSZWDJZUMZWHWJURLZWDJAWLIKWMWAWLWEPWBWLQPWLWMWL
      WHWJWIWHRJWKWDRWHWGUNUOZWKWJRJWIWDRWJWGUNTZUPZUQWLIIIURLZWMMIWQUSWLWQIVIU
      TPWLIWHIWJWFWLOPZWNWRWOVAIMNWLVBPZWSWIIWHMNZWKWIWAWBWIWTWAWIWEPWBWIQPWIVJ
      IKWHVCVDUOWKIWJMNZWIWKWAWBWKXAWAWKWEPWBWKQPWKVJIKWJVCVDTVEVFWLWMWPVGVHTFA
      DSBJUMZIKCWAXBWEPWBXBQPXBCGUQHXBCGVGVHIWDJZAXCWFIIMNZIKVKNZVLZWFXDXEOVMWF
      XEOIVNVOVPWFWBXCXFVQOQIKIVRUJVSPVTIKWCVCVD $.
  $}

  ${
    $d A j k $.  $d B j $.  $d j ph $.
    fprodle.kph $e |- F/ k ph $.
    fprodle.a $e |- ( ph -> A e. Fin ) $.
    fprodle.b $e |- ( ( ph /\ k e. A ) -> B e. RR ) $.
    fprodle.0l3b $e |- ( ( ph /\ k e. A ) -> 0 <_ B ) $.
    fprodle.c $e |- ( ( ph /\ k e. A ) -> C e. RR ) $.
    fprodle.blec $e |- ( ( ph /\ k e. A ) -> B <_ C ) $.
    $( If all the terms of two finite products are nonnegative and compare, so
       do the two products.  (Contributed by Glauco Siliprandi, 5-Apr-2020.) $)
    fprodle $p |- ( ph -> prod_ k e. A B <_ prod_ k e. A C ) $=
      ( vj cc0 cle wbr wa co wcel adantr adantlr wne wral cprod cmul cdiv nfra1
      c1 1red nfan cfn cv cr rspa adantll redivcld fprodreclf fprodge0 crp 0red
      leneltd elrpd divge1 syl3anc fprodge1 lemul2ad fprodclf mulid1d fproddivf
      wceq recnd cc oveq2d fprodn0f divcan2d eqidd 3eqtrd breq12d mpbid wn wrex
      csb nne rexbii rexnal nfv nfcsb1v nfcv nfeq csbeq1a eqeq1d cbvrex 3bitr3i
      simpl biimpi adantl w3a nf3an 3ad2ant1 3ad2antl1 simp2 biimparc 3ad2antl3
      fprodeq0g 3exp rexlimd imp letrd eqbrtrd syl2anc pm2.61dan ) ACMUAZEBUBZB
      CEUCZBDEUCZNOZAXLPZXMUGUDQZXMBDCUEQZEUCZUDQZNOXOXPUGXSXMXPUHXPBXREAXLEFXK
      EBUFUIZABUJRZXLGSZXPEUKZBRZPZDCAYEDULRZXLJTZAYECULRXLHTZXLYEXKAXKEBUMUNZU
      OZUPAXMULRXLABCEFGHUPSAMXMNOXLABCEFGHIUQSXPBXREYAYCYKYFCURRYGCDNOZUGXRNOY
      FCYIYFMCYFUSYIAYEMCNOXLITYJUTVAYHAYEYLXLKTCDVBVCVDVEXPXQXMXTXNNAXQXMVIXLA
      XMABCEFGAYEPZCHVJZVFZVGSXPXTXMXNXMUEQZUDQXNXNXPXSYPXMUDXPBDCEYAYCAYEDVKRX
      LYMDJVJZTAYECVKRZXLYNTZYJVHVLXPXNXMAXNVKRXLABDEFGYQVFSAXMVKRXLYOSXPBCEYAY
      CYSYJVMVNXPXNVOVPVQVRAXLVSZPAELUKZCWAZMVIZLBVTZXOAYTWMYTUUDAYTUUDXKVSZEBV
      TCMVIZEBVTYTUUDUUEUUFEBCMWBWCXKEBWDUUFUUCELBUUFLWEEUUBMEUUACWFEMWGWHZYDUU
      AVIZCUUBMEUUACWIWJZWKWLWNWOAUUDPXMMXNNAUUDXMMVIZAUUCUUJLBALWEUUJLWEAUUABR
      ZUUCUUJAUUKUUCWPBCUUAEAUUKUUCEFUUKEWEUUGWQAUUKYBUUCGWRAUUKYEYRUUCYNWSAUUK
      UUCWTUUCAUUHUUFUUKUUHUUFUUCUUIXAXBXCXDXEXFAMXNNOUUDABDEFGJYMMCDYMUSHJIKXG
      UQSXHXIXJ $.
  $}

  ${
    $d A i k x y $.  $d B i x y $.  $d C i x y $.  $d M i k x y $.
    $d ph i k x y $.
    fprodmodd.a $e |- ( ph -> A e. Fin ) $.
    fprodmodd.b $e |- ( ( ph /\ k e. A ) -> B e. ZZ ) $.
    fprodmodd.c $e |- ( ( ph /\ k e. A ) -> C e. ZZ ) $.
    fprodmodd.m $e |- ( ph -> M e. NN ) $.
    fprodmodd.p $e |- ( ( ph /\ k e. A ) -> ( B mod M ) = ( C mod M ) ) $.
    $( If all factors of two finite products are equal modulo ` M ` , the
       products are equal modulo ` M ` .  (Contributed by AV, 7-Jul-2021.) $)
    fprodmodd $p |- ( ph -> ( prod_ k e. A B mod M )
                            = ( prod_ k e. A C mod M ) ) $=
      ( cprod cmo co wceq prodeq1 oveq1d wcel adantr cz vx vy vi cv csn eqeq12d
      c0 cun c1 prod0 a1i eqcomi oveq1i syl6eq wss cdif wa csb cmul nfv nfcsb1v
      cfn wi ssfi syl11 impcom simpr adantl eldifn simpll ssel imp syl2anc zcnd
      csbeq1a wral eldifi ralrimiva rspcsbela syl2anr fprodsplitsn fprodzcl crp
      ex wn nnrpd wsbc rspsbca cvv wb sbceqg mp1i mpbid csbov1g ax-mp modmul12d
      vex 3eqtr3g eqcomd 3eqtrd findcard2d ) AUAUDZCELZFMNZXBDELZFMNZOUGCELZFMN
      ZUGDELZFMNZOUBUDZCELZFMNZXKDELZFMNZOZXKUCUDZUEUHZCELZFMNZXRDELZFMNZOZBCEL
      ZFMNZBDELZFMNZOUAUBUCBXBUGOZXDXHXFXJYHXCXGFMXBUGCEPQYHXEXIFMXBUGDEPQUFXBX
      KOZXDXMXFXOYIXCXLFMXBXKCEPQYIXEXNFMXBXKDEPQUFXBXROZXDXTXFYBYJXCXSFMXBXRCE
      PQYJXEYAFMXBXRDEPQUFXBBOZXDYEXFYGYKXCYDFMXBBCEPQYKXEYFFMXBBDEPQUFAXHUIFMN
      XJAXGUIFMXGUIOACEUJUKQUIXIFMXIUIDEUJULUMUNAXKBUOZXQBXKUPZRZUQZUQZXPYCYPXP
      UQZXTXLEXQCURZUSNZFMNZXNEXQDURZUSNZFMNZYBYPXTYTOXPYPXSYSFMYPXKXQCYREYMYPE
      UTZEXQCVAYOAXKVBRZYLAUUEVCYNBVBRZYLUUEAUUFYLUUEBXKVDWDGVESVFZYOYNAYLYNVGV
      HZYOXQXKRWEZAYNUUIYLXQBXKVIVHVHZYPEUDZXKRZUQZCUUMAUUKBRZCTRZAYOUULVJZYPUU
      LUUNYOUULUUNVCZAYLUUQYNXKBUUKVKSVHVLZHVMZVNEXQCVOYPYRYOXQBRZUUOEBVPYRTRZA
      YNUUTYLXQBXKVQVHZAUUOEBHVREXQBCTVSVTZVNWAQSYQXLXNYRUUAFYPXLTRXPYPXKCEUUGU
      USWBSYPXNTRXPYPXKDEUUGUUMAUUNDTRZUUPUURIVMZWBSYPUVAXPUVCSYPUUATRZXPYOUUTU
      VDEBVPUVFAUVBAUVDEBIVREXQBDTVSVTZSYPFWCRZXPAUVHYOAFJWFSSYPXPVGYPYRFMNZUUA
      FMNZOXPYPEXQCFMNZURZEXQDFMNZURZUVIUVJYPUVKUVMOZEXQWGZUVLUVNOZYOUUTUVOEBVP
      UVPAUVBAUVOEBKVRUVOEXQBWHVTXQWIRZUVPUVQWJYPUCWQZEXQUVKUVMWIWKWLWMUVRUVLUV
      IOUVSEXQCFMWIWNWOUVRUVNUVJOUVSEXQDFMWIWNWOWRSWPYPUUCYBOXPYPYBUUCYPYAUUBFM
      YPXKXQDUUAEYMUUDEXQDVAUUGUUHUUJUUMDUVEVNEXQDVOYPUUAUVGVNWAQWSSWTWDGXA $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Infinite products
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    iprodclim.1 $e |- Z = ( ZZ>= ` M ) $.
    iprodclim.2 $e |- ( ph -> M e. ZZ ) $.
    iprodclim.3 $e |- ( ph -> E. n e. Z E. y ( y =/= 0 /\
      seq n ( x. , F ) ~~> y ) ) $.
    iprodclim.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    iprodclim.5 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
    ${
      $d A n $.  $d A y $.  $d F k $.  $d k n $.  $d k ph $.  $d k y $.
      $d M k $.  $d M y $.  $d n ph $.  $d n y $.  $d ph y $.  $d Z k $.
      $d Z n $.  $d Z y $.
      iprodclim.6 $e |- ( ph -> seq M ( x. , F ) ~~> B ) $.
      $( An infinite product equals the value its sequence converges to.
         (Contributed by Scott Fenton, 18-Dec-2017.) $)
      iprodclim $p |- ( ph -> prod_ k e. Z A = B ) $=
        ( cprod cmul cseq cli cc cfv iprod wfun wbr wceq cdm fclim ffun funbrfv
        wf ax-mp mpsyl eqtrd ) AICEPQGHRZSUAZDABCEFGHIJKLMNUBSUCZAUNDSUDUODUESU
        FZTSUJUPUGUQTSUHUKOUNDSUIULUM $.
    $}

    $d A n $.  $d A y $.  $d F k $.  $d k n $.  $d k ph $.  $d k y $.
    $d M k $.  $d M y $.  $d n ph $.  $d n y $.  $d ph y $.  $d Z k $.
    $d Z n $.  $d Z y $.  $d F n $.  $d F y $.  $d M n $.
    $( A converging product converges to its infinite product.  (Contributed by
       Scott Fenton, 18-Dec-2017.) $)
    iprodclim2 $p |- ( ph -> seq M ( x. , F ) ~~> prod_ k e. Z A ) $=
      ( cmul cseq cli cfv cprod cdm wcel cv wa cc eqeltrd ntrivcvg climdm sylib
      wbr iprod breqtrrd ) ANFGOZUKPQZHCDRPAUKPSTUKULPUHABDEFGHIKADUAZHTUBUMFQC
      UCLMUDUEUKUFUGABCDEFGHIJKLMUIUJ $.
  $}

  ${
    $d A j $.  $d A m $.  $d A n $.  $d A x $.  $d A y $.  $d F j $.  $d F x $.
    $d j k $.  $d j ph $.  $d j x $.  $d k m $.  $d k n $.  $d k ph $.
    $d k x $.  $d k y $.  $d M j $.  $d M m $.  $d m n $.  $d m ph $.
    $d M x $.  $d m y $.  $d M y $.  $d n ph $.  $d n y $.  $d ph x $.
    $d ph y $.  $d Z j $.  $d Z k $.  $d Z m $.  $d Z n $.  $d Z x $.
    $d Z y $.  $d j m $.  $d M k $.
    iprodclim3.1 $e |- Z = ( ZZ>= ` M ) $.
    iprodclim3.2 $e |- ( ph -> M e. ZZ ) $.
    iprodclim3.3 $e |- ( ph -> E. n e. Z E. y ( y =/= 0 /\
      seq n ( x. , ( k e. Z |-> A ) ) ~~> y ) ) $.
    iprodclim3.4 $e |- ( ph -> F e. dom ~~> ) $.
    iprodclim3.5 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
    iprodclim3.6 $e |- ( ( ph /\ j e. Z ) ->
                        ( F ` j ) = prod_ k e. ( M ... j ) A ) $.
    $( The sequence of partial finite product of a converging infinite product
       converge to the infinite product of the series.  Note that ` j ` must
       not occur in ` A ` .  (Contributed by Scott Fenton, 18-Dec-2017.) $)
    iprodclim3 $p |- ( ph -> F ~~> prod_ k e. Z A ) $=
      ( vm vx cli cfv wcel cprod cdm wbr climdm sylib cmul cmpt cv prodfc eqidd
      cseq wa eqid fmptd ffvelrnda iprod syl5eqr cio cvv seqex a1i cfz cres wss
      cc co wceq cuz fzssuz sseqtr4i resmpt ax-mp fvres syl5reqr prodeq2i eqtri
      fveq1i simpr syl6eleq elfzuz syl6eleqr sylan2 adantlr eqtr2d climeq df-fv
      fprodser iotabidv 3eqtr4g eqtrd breqtrrd ) AGGRSZICEUAZRAGRUBZTGWLRUCMGUD
      UEAWMUFEICUGZHUKZRSZWLAWMIPUHZWOSZPUAWQICPEUIABWSPFWOHIJKLAWRITZULWSUJAIV
      EWRWOAEICVEWONWOUMUNUOZUPUQAWPQUHZRUCZQURGXBRUCZQURWQWLAXCXDQAXBDWPGHUSWN
      IJWPUSTAUFWOHUTVAMKADUHZITZULZXEGSHXEVBVFZCEUAZXEWPSZOXGXIXHWSPUAZXJXKXHW
      REXHCUGZSZPUAXIXHWSXMPWRXHTZXMWRWOXHVCZSWSWRXOXLXHIVDXOXLVGXHHVHSZIHXEVIJ
      VJEIXHCVKVLVQWRXHWOVMVNVOXHCPEUIVPXGWSPWOHXEXGXNULWSUJXGXEIXPAXFVRJVSAXNW
      SVETZXFXNAWTXQXNWRXPIWRHXEVTJWAXAWBWCWGUQWDWEWHQWPRWFQGRWFWIWJWK $.
  $}

  ${
    iprodcl.1 $e |- Z = ( ZZ>= ` M ) $.
    iprodcl.2 $e |- ( ph -> M e. ZZ ) $.
    iprodcl.3 $e |- ( ph -> E. n e. Z E. y ( y =/= 0 /\
      seq n ( x. , F ) ~~> y ) ) $.
    iprodcl.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.

    ${
      $d A n $.  $d A y $.  $d F k $.  $d F n $.  $d F y $.  $d k n $.
      $d k ph $.  $d k y $.  $d M k $.  $d M n $.  $d M y $.  $d n ph $.
      $d n y $.  $d ph y $.  $d Z k $.  $d Z n $.  $d Z y $.
      iprodcl.5 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
      $( The product of a non-trivially converging infinite sequence is a
         complex number.  (Contributed by Scott Fenton, 18-Dec-2017.) $)
      iprodcl $p |- ( ph -> prod_ k e. Z A e. CC ) $=
        ( cprod cmul cli cfv cc wcel eqeltrd cseq iprod wf fclim cv wa ntrivcvg
        cdm ffvelrn sylancr ) AHCDNOFGUAZPQZRABCDEFGHIJKLMUBAPUHZRPUCUKUMSULRSU
        DABDEFGHIKADUEZHSUFUNFQCRLMTUGUMRUKPUIUJT $.
    $}

    ${
      $d A j $.  $d A n $.  $d A y $.  $d F j $.  $d F k $.  $d F x $.
      $d j k $.  $d j ph $.  $d k n $.  $d k ph $.  $d k x $.  $d k y $.
      $d M j $.  $d M k $.  $d M x $.  $d M y $.  $d n ph $.  $d n y $.
      $d ph x $.  $d ph y $.  $d Z j $.  $d Z k $.  $d Z n $.  $d Z y $.
      $d F n $.  $d F y $.  $d M n $.
      iprodrecl.5 $e |- ( ( ph /\ k e. Z ) -> A e. RR ) $.
      $( The product of a non-trivially converging infinite real sequence is a
         real number.  (Contributed by Scott Fenton, 18-Dec-2017.) $)
      iprodrecl $p |- ( ph -> prod_ k e. Z A e. RR ) $=
        ( vj vx cmul cv wcel wa cr cprod cseq iprodclim2 cfv eqeltrd co remulcl
        recnd adantl seqf ffvelrnda climrecl ) AHCDUANPFGUBZGHIJABCDEFGHIJKLADQ
        ZHRSZCMUHUCAHTNQUMADOPTFGHIJUOUNFUDCTLMUEUNTROQZTRSUNUPPUFTRAUNUPUGUIUJ
        UKUL $.
    $}
  $}

  ${
    $d A j $.  $d a k $.  $d a m $.  $d a n $.  $d A n $.  $d A p $.  $d A w $.
    $d a y $.  $d A y $.  $d a z $.  $d B j $.  $d B m $.  $d B p $.  $d B w $.
    $d B z $.  $d F a $.  $d F j $.  $d F k $.  $d F m $.  $d F n $.  $d F y $.
    $d F z $.  $d G a $.  $d G j $.  $d G k $.  $d G m $.  $d G n $.  $d G y $.
    $d G z $.  $d j k $.  $d j m $.  $d j ph $.  $d k m $.  $d k n $.
    $d k p $.  $d k ph $.  $d k w $.  $d k y $.  $d k z $.  $d M j $.
    $d M k $.  $d M m $.  $d m n $.  $d M n $.  $d m p $.  $d m ph $.
    $d m w $.  $d M w $.  $d m y $.  $d M y $.  $d m z $.  $d M z $.  $d n p $.
    $d n ph $.  $d n w $.  $d n y $.  $d n z $.  $d p ph $.  $d p w $.
    $d p y $.  $d p z $.  $d ph w $.  $d ph y $.  $d ph z $.  $d w y $.
    $d w z $.  $d y z $.  $d Z a $.  $d Z j $.  $d Z k $.  $d Z m $.  $d Z n $.
    $d Z p $.  $d Z w $.  $d Z y $.  $d Z z $.  $d a p $.  $d a w $.  $d F p $.
    $d F w $.  $d G p $.  $d G w $.
    iprodmul.1 $e |- Z = ( ZZ>= ` M ) $.
    iprodmul.2 $e |- ( ph -> M e. ZZ ) $.
    iprodmul.3 $e |- ( ph -> E. n e. Z E. y ( y =/= 0 /\
      seq n ( x. , F ) ~~> y ) ) $.
    iprodmul.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    iprodmul.5 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
    iprodmul.6 $e |- ( ph -> E. m e. Z E. z ( z =/= 0 /\
      seq m ( x. , G ) ~~> z ) ) $.
    iprodmul.7 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) = B ) $.
    iprodmul.8 $e |- ( ( ph /\ k e. Z ) -> B e. CC ) $.
    $( Multiplication of infinite sums.  (Contributed by Scott Fenton,
       18-Dec-2017.) $)
    iprodmul $p |- ( ph -> prod_ k e. Z ( A x. B ) =
     ( prod_ k e. Z A x. prod_ k e. Z B ) ) $=
      ( vw vp va vj cmul co cprod cv cfv cmpt cc0 wne cseq cli wbr wa wrex wcel
      wex cc eqeltrd wceq weq fveq2 oveq12d eqid ovex fvmpt ntrivcvgmul cbvmptv
      adantl seqeq3 ax-mp breq1i anbi2i exbii rexbii sylibr simpr mulcld fvmptg
      syl2anc eqtrd cvv iprodclim2 seqex a1i prodf ffvelrnda syl6eleq syl6eleqr
      cuz cfz elfzuz sylan2 adantlr prodfmul climmul iprodclim ) AUADEUEUFZLDFU
      GZLEFUGZUEUFFUBGLGUHZIUIZXCJUIZUEUFZUJZKLMNAUAUHZUKULZUEUCLUCUHZIUIZXJJUI
      ZUEUFZUJZUBUHZUMZXHUNUOZUPZUAUSZUBLUQXIUEXGXOUMZXHUNUOZUPZUAUSZUBLUQABCUA
      FGHIJXNKLUBMOAFUHZLURZUPZYDIUIZDUTPQVAZRYFYDJUIZEUTSTVAZYEYDXNUIYGYIUEUFZ
      VBAUCYDXMYKLXNUCFVCXKYGXLYIUEXJYDIVDXJYDJVDVEXNVFYGYIUEVGVHVKVIYCXSUBLYBX
      RUAYAXQXIXTXPXHUNXGXNVBXTXPVBGUCLXFXMGUCVCXDXKXEXLUEXCXJIVDXCXJJVDVEVJUEX
      GXNXOVLVMVNVOVPVQVRYFYDXGUIZYKWTYFYEYKUTURYLYKVBZAYEVSYFYGYIYHYJVTGYDXFYK
      LUTXGGFVCXDYGXEYIUEXCYDIVDXCYDJVDVEXGVFWAWBZYFYGDYIEUEPSVEWCYFDEQTVTAXAXB
      UDUEIKUMZUEJKUMZUEXGKUMZKWDLMNABDFHIKLMNOPQWEYQWDURAUEXGKWFWGACEFGJKLMNRS
      TWEALUTUDUHZYOAFIKLMNYHWHWIALUTYRYPAFJKLMNYJWHWIAYRLURZUPZFIJXGKYRYTYRLKW
      LUIZAYSVSMWJAYDKYRWMUFURZYGUTURZYSUUBAYEUUCUUBYDUUALYDKYRWNMWKZYHWOWPAUUB
      YIUTURZYSUUBAYEUUEUUDYJWOWPUUBYTYEYMUUDAYEYMYSYNWPWOWQWRWS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Falling and Rising Factorial
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare the constant for falling factorial. $)
  $c FallFac $.

  $( Declare the constant for rising factorial. $)
  $c RiseFac $.

  $( Declare the syntax for the falling factorial. $)
  cfallfac $a class FallFac $.

  $( Declare the syntax for the rising factorial. $)
  crisefac $a class RiseFac $.

  ${
    $d x n k $.
    $( Define the rising factorial function.  This is the function
       ` ( A x. ( A + 1 ) x. ... ( A + N ) ) ` for complex ` A ` and
       nonnegative integers ` N ` .  (Contributed by Scott Fenton,
       5-Jan-2018.) $)
    df-risefac $a |- RiseFac = ( x e. CC , n e. NN0 |->
       prod_ k e. ( 0 ... ( n - 1 ) ) ( x + k ) ) $.

    $( Define the falling factorial function.  This is the function
       ` ( A x. ( A - 1 ) x. ... ( A - N ) ) ` for complex ` A ` and
       nonnegative integers ` N ` .  (Contributed by Scott Fenton,
       5-Jan-2018.) $)
    df-fallfac $a |- FallFac = ( x e. CC , n e. NN0 |->
       prod_ k e. ( 0 ... ( n - 1 ) ) ( x - k ) ) $.
  $}

  ${
    $d A k $.  $d A n $.  $d A x $.  $d k n $.  $d k x $.  $d N k $.  $d N n $.
    $d n x $.  $d N x $.
    $( The value of the rising factorial function.  (Contributed by Scott
       Fenton, 5-Jan-2018.) $)
    risefacval $p |- ( ( A e. CC /\ N e. NN0 ) ->
      ( A RiseFac N ) = prod_ k e. ( 0 ... ( N - 1 ) ) ( A + k ) ) $=
      ( vx vn cc cn0 cc0 cv c1 cmin co cfz caddc cprod crisefac wceq prodeq2sdv
      oveq1 oveq2d prodeq1d df-risefac prodex ovmpt2 ) DEACFGHEIZJKLZMLZDIZBIZN
      LZBOHCJKLZMLZAUINLZBOPUGUMBOUHAQUGUJUMBUHAUINSRUECQZUGULUMBUNUFUKHMUECJKS
      TUADBEUBULUMBUCUD $.

    $( The value of the falling factorial function.  (Contributed by Scott
       Fenton, 5-Jan-2018.) $)
    fallfacval $p |- ( ( A e. CC /\ N e. NN0 ) ->
      ( A FallFac N ) = prod_ k e. ( 0 ... ( N - 1 ) ) ( A - k ) ) $=
      ( vx vn cc cn0 cc0 cv c1 cmin co cfz cprod cfallfac wceq oveq1 prodeq2sdv
      oveq2d prodeq1d df-fallfac prodex ovmpt2 ) DEACFGHEIZJKLZMLZDIZBIZKLZBNHC
      JKLZMLZAUHKLZBNOUFULBNUGAPUFUIULBUGAUHKQRUDCPZUFUKULBUMUEUJHMUDCJKQSTDBEU
      AUKULBUBUC $.
  $}

  ${
    $d A k $.  $d A n $.  $d k n $.  $d N k $.  $d N n $.
    $( One-based value of rising factorial.  (Contributed by Scott Fenton,
       15-Jan-2018.) $)
    risefacval2 $p |- ( ( A e. CC /\ N e. NN0 ) ->
        ( A RiseFac N ) = prod_ k e. ( 1 ... N ) ( A + ( k - 1 ) ) ) $=
      ( vn cc wcel cn0 wa crisefac co cc0 c1 cmin cv caddc cprod cz adantl wceq
      cfz risefacval 1zzd 0zd nn0z peano2zm syl simpl nn0cnd addcl syl2an oveq2
      elfznn0 fprodshft 0p1e1 a1i nn0cn 1cnd npcand oveq12d prodeq1d 3eqtrd ) A
      EFZCGFZHZACIJKCLMJZTJZADNZOJZDPKLOJZVELOJZTJZABNLMJZOJZBPLCTJZVMBPADCUAVD
      VHVMDBLKVEVDUBVDUCVCVEQFZVBVCCQFVOCUDCUEUFRVDVBVGEFVHEFVGVFFZVBVCUGVPVGVG
      VEULUHAVGUIUJVGVLAOUKUMVDVKVNVMBVDVILVJCTVILSVDUNUOVCVJCSVBVCCLCUPVCUQURR
      USUTVA $.

    $( One-based value of falling factorial.  (Contributed by Scott Fenton,
       15-Jan-2018.) $)
    fallfacval2 $p |- ( ( A e. CC /\ N e. NN0 ) ->
        ( A FallFac N ) = prod_ k e. ( 1 ... N ) ( A - ( k - 1 ) ) ) $=
      ( vn cc wcel cn0 wa cfallfac co cc0 c1 cmin cv cprod caddc cz adantl wceq
      cfz fallfacval 1zzd 0zd nn0z peano2zm syl simpl nn0cnd subcl syl2an oveq2
      elfznn0 fprodshft 0p1e1 a1i nn0cn 1cnd npcand oveq12d prodeq1d 3eqtrd ) A
      EFZCGFZHZACIJKCLMJZTJZADNZMJZDOKLPJZVELPJZTJZABNLMJZMJZBOLCTJZVMBOADCUAVD
      VHVMDBLKVEVDUBVDUCVCVEQFZVBVCCQFVOCUDCUEUFRVDVBVGEFVHEFVGVFFZVBVCUGVPVGVG
      VEULUHAVGUIUJVGVLAMUKUMVDVKVNVMBVDVILVJCTVILSVDUNUOVCVJCSVBVCCLCUPVCUQURR
      USUTVA $.
  $}

  ${
    $d A k j $.  $d N k j $.
    $( A product representation of falling factorial when ` A ` is a
       nonnegative integer.  (Contributed by Scott Fenton, 20-Mar-2018.) $)
    fallfacval3 $p |- ( N e. ( 0 ... A ) -> ( A FallFac N ) =
       prod_ k e. ( ( A - ( N - 1 ) ) ... A ) k ) $=
      ( vj cc0 cfz co wcel cfallfac c1 cmin cv cprod cc cn0 elfz3nn0 cz elfzelz
      wceq zcnd nn0cnd elfznn0 fallfacval syl2anc elfzel2 peano2zm subcl syl2an
      elfzel1 syl oveq2 fprodrev subid1d oveq2d adantr adantl nncand prodeq12dv
      wa 3eqtrd ) CEAFGHZACIGZECJKGZFGZADLZKGZDMZAVCKGZAEKGZFGZAABLZKGZKGZBMVHA
      FGZVKBMVAANHZCOHVBVGSVAACAPUAZCAUBADCUCUDVAVFVMDBAEVCCEAUECEAUIVACQHVCQHC
      EARCUFUJVAVOVENHVFNHVEVDHZVPVQVEVEEVCRTAVEUGUHVEVLAKUKULVAVJVNVMVKBVAVIAV
      HFVAAVPUMUNVAVKVJHZUSAVKVAVOVRVPUOVRVKNHVAVRVKVKVHVIRTUPUQURUT $.
  $}

  ${
    $d A k $.  $d A x $.  $d A y $.  $d k x $.  $d k y $.  $d N k $.  $d N x $.
    $d N y $.  $d S k $.  $d S x $.  $d S y $.  $d x y $.
    risefallfaccllem.1 $e |- S C_ CC $.
    risefallfaccllem.2 $e |- 1 e. S $.
    risefallfaccllem.3 $e |- ( ( x e. S /\ y e. S ) -> ( x x. y ) e. S ) $.

    ${
      risefaccllem.4 $e |- ( ( A e. S /\ k e. NN0 ) -> ( A + k ) e. S ) $.
      $( Lemma for rising factorial closure laws.  (Contributed by Scott
         Fenton, 5-Jan-2018.) $)
      risefaccllem $p |- ( ( A e. S /\ N e. NN0 ) -> ( A RiseFac N ) e. S ) $=
        ( wcel cn0 wa crisefac co cc0 c1 cv cc a1i caddc cprod sseli risefacval
        cmin cfz wceq sylan cmul adantl fzfid elfznn0 sylan2 fprodcllem eqeltrd
        wss adantr ) CDKZFLKZMCFNOZPFQUEOZUFOZCERZUAOZEUBZDURCSKUSUTVEUGDSCGUCC
        EFUDUHURVEDKUSURABVBVDDEDSUPURGTARZDKBRZDKMVFVGUIODKURIUJURPVAUKVCVBKUR
        VCLKVDDKVCVAULJUMQDKURHTUNUQUO $.
    $}

    ${
      fallfaccllem.4 $e |- ( ( A e. S /\ k e. NN0 ) -> ( A - k ) e. S ) $.
      $( Lemma for falling factorial closure laws.  (Contributed by Scott
         Fenton, 5-Jan-2018.) $)
      fallfaccllem $p |- ( ( A e. S /\ N e. NN0 ) -> ( A FallFac N ) e. S ) $=
        ( wcel cn0 wa co cc0 c1 cmin cv cc a1i cfz cprod sseli fallfacval sylan
        cfallfac wceq wss adantl fzfid elfznn0 sylan2 fprodcllem adantr eqeltrd
        cmul ) CDKZFLKZMCFUFNZOFPQNZUANZCERZQNZEUBZDUQCSKURUSVDUGDSCGUCCEFUDUEU
        QVDDKURUQABVAVCDEDSUHUQGTARZDKBRZDKMVEVFUPNDKUQIUIUQOUTUJVBVAKUQVBLKVCD
        KVBUTUKJULPDKUQHTUMUNUO $.
    $}
  $}

  ${
    $d A k $.  $d N k $.  $d A x $.  $d A y $.  $d k x $.  $d k y $.  $d N x $.
    $d N y $.  $d x y $.
    $( Closure law for rising factorial.  (Contributed by Scott Fenton,
       5-Jan-2018.) $)
    risefaccl $p |- ( ( A e. CC /\ N e. NN0 ) -> ( A RiseFac N ) e. CC ) $=
      ( vx vy vk cc ssid ax-1cn cv mulcl wcel caddc co nn0cn addcl risefaccllem
      cn0 sylan2 ) CDAFEBFGHCIDIJEIZQKAFKSFKASLMFKSNASORP $.

    $( Closure law for falling factorial.  (Contributed by Scott Fenton,
       5-Jan-2018.) $)
    fallfaccl $p |- ( ( A e. CC /\ N e. NN0 ) -> ( A FallFac N ) e. CC ) $=
      ( vx vy vk cc ssid ax-1cn cv mulcl cn0 wcel cmin nn0cn subcl fallfaccllem
      co sylan2 ) CDAFEBFGHCIDIJEIZKLAFLSFLASMQFLSNASORP $.

    $( Closure law for rising factorial.  (Contributed by Scott Fenton,
       5-Jan-2018.) $)
    rerisefaccl $p |- ( ( A e. RR /\ N e. NN0 ) -> ( A RiseFac N ) e. RR ) $=
      ( vx vy vk cr ax-resscn 1re cv remulcl wcel caddc co nn0re readdcl sylan2
      cn0 risefaccllem ) CDAFEBGHCIDIJEIZQKAFKSFKASLMFKSNASOPR $.

    $( Closure law for falling factorial.  (Contributed by Scott Fenton,
       5-Jan-2018.) $)
    refallfaccl $p |- ( ( A e. RR /\ N e. NN0 ) -> ( A FallFac N ) e. RR ) $=
      ( vx vy vk cr ax-resscn 1re cv remulcl cn0 wcel cmin nn0re resubcl sylan2
      co fallfaccllem ) CDAFEBGHCIDIJEIZKLAFLSFLASMQFLSNASOPR $.

    $( Closure law for rising factorial.  (Contributed by Scott Fenton,
       5-Jan-2018.) $)
    nnrisefaccl $p |- ( ( A e. NN /\ N e. NN0 ) -> ( A RiseFac N ) e. NN ) $=
      ( vx vy vk cn nnsscn 1nn cv nnmulcl nnnn0addcl risefaccllem ) CDAFEBGHCID
      IJAEIKL $.

    $( Closure law for rising factorial.  (Contributed by Scott Fenton,
       5-Jan-2018.) $)
    zrisefaccl $p |- ( ( A e. ZZ /\ N e. NN0 ) -> ( A RiseFac N ) e. ZZ ) $=
      ( vx vy vk cz zsscn 1z cv zmulcl wcel caddc co zaddcl sylan2 risefaccllem
      cn0 nn0z ) CDAFEBGHCIDIJEIZQKAFKSFKASLMFKSRASNOP $.

    $( Closure law for falling factorial.  (Contributed by Scott Fenton,
       5-Jan-2018.) $)
    zfallfaccl $p |- ( ( A e. ZZ /\ N e. NN0 ) -> ( A FallFac N ) e. ZZ ) $=
      ( vx vy vk cz zsscn 1z cv zmulcl cn0 wcel cmin zsubcl sylan2 fallfaccllem
      co nn0z ) CDAFEBGHCIDIJEIZKLAFLSFLASMQFLSRASNOP $.

    $( Closure law for rising factorial.  (Contributed by Scott Fenton,
       5-Jan-2018.) $)
    nn0risefaccl $p |- ( ( A e. NN0 /\ N e. NN0 ) ->
      ( A RiseFac N ) e. NN0 ) $=
      ( vx vy vk cn0 nn0sscn 1nn0 cv nn0mulcl nn0addcl risefaccllem ) CDAFEBGHC
      IDIJAEIKL $.

    $( Closure law for rising factorial.  (Contributed by Scott Fenton,
       9-Jan-2018.) $)
    rprisefaccl $p |- ( ( A e. RR+ /\ N e. NN0 ) -> ( A RiseFac N ) e. RR+ ) $=
      ( vx vy vk crp cr cc rpssre ax-resscn sstri 1rp cv rpmulcl cc0 clt adantr
      wcel wbr adantl cn0 wa caddc rpre nn0re readdcl syl2an cle rpgt0 addgtge0
      co nn0ge0 syl22anc elrpd risefaccllem ) CDAFEBFGHIJKLCMDMNAFRZEMZUARZUBZA
      UQUCUKZUPAGRZUQGRZUTGRURAUDZUQUEZAUQUFUGUSVAVBOAPSZOUQUHSZOUTPSUPVAURVCQU
      RVBUPVDTUPVEURAUIQURVFUPUQULTAUQUJUMUNUO $.
  $}

  ${
    $d N k $.  $d X k $.
    $( A relationship between rising and falling factorials.  (Contributed by
       Scott Fenton, 15-Jan-2018.) $)
    risefallfac $p |- ( ( X e. CC /\ N e. NN0 ) ->
        ( X RiseFac N ) = ( ( -u 1 ^ N ) x. ( -u X FallFac N ) ) ) $=
      ( vk cc wcel cn0 wa c1 co cv cmin cprod cneg cmul cexp syl2an adantl wceq
      cfz neg1cn caddc crisefac cfallfac negcl adantr elfznn nnm1nn0 syl nn0cnd
      subcl mulm1d simpll negdi2d negeqd simpl addcl negnegd 3eqtr2rd prodeq2dv
      cn risefacval2 chash cfv cfn fzfi fprodconst mp2an hashfz1 oveq2d syl5req
      fallfacval2 sylan oveq12d fzfid a1i fprodmul eqtr4d 3eqtr4d ) BDEZAFEZGZH
      ASIZBCJZHKIZUAIZCLWBHMZBMZWDKIZNIZCLZBAUBIWFAOIZWGAUCIZNIZWAWBWEWICWAWCWB
      EZGZWIWHMWEMZMWEWOWHWAWGDEZWDDEZWHDEWNVSWQVTBUDZUEWNWDWNWCUTEWDFEWCAUFWCU
      GUHUIZWGWDUJPZUKWOWPWHWOBWDVSVTWNULWNWRWAWTQUMUNWOWEWAVSWRWEDEWNVSVTUOWTB
      WDUPPUQURUSBCAVAWAWMWBWFCLZWBWHCLZNIWJWAWKXBWLXCNVTWKXBRVSVTXBWFWBVBVCZOI
      ZWKWBVDEWFDEZXBXERHAVETWBWFCVFVGVTXDAWFOAVHVIVJQVSWQVTWLXCRWSWGCAVKVLVMWA
      WBWFWHCWAHAVNXFWOTVOXAVPVQVR $.
  $}

  $( A relationship between falling and rising factorials.  (Contributed by
     Scott Fenton, 17-Jan-2018.) $)
  fallrisefac $p |- ( ( X e. CC /\ N e. NN0 ) ->
    ( X FallFac N ) = ( ( -u 1 ^ N ) x. ( -u X RiseFac N ) ) ) $=
    ( cc wcel cn0 wa cfallfac co cneg cexp cmul crisefac oveq2d neg1cn 3eqtr3rd
    c1 wceq adantl fallfaccl sylan c2 caddc nn0cn 2timesd cz nn0z m1expeven syl
    expadd mp3an1 anidms negneg adantr oveq1d oveq12d expcl mpan negcld mulassd
    negcl mulid2d risefallfac eqtr4d ) BCDZAEDZFZBAGHZPIZAJHZVIBIZIZAGHZKHZKHZV
    IVJALHZKHVFVIVIKHZVLKHPVGKHVNVGVFVPPVLVGKVEVPPQVDVEVHUAAKHZJHZVHAAUBHZJHZPV
    PVEVQVSVHJVEAAUCUDMVEAUEDVRPQAUFAUGUHVEVTVPQZVHCDZVEVEWANVHAAUIUJUKORVFVKBA
    GVDVKBQVEBULUMUNUOVFVIVIVLVEVICDZVDWBVEWCNVHAUPUQRZWDVDVKCDVEVLCDVDVJBUTZUR
    VKASTUSVFVGBASVAOVFVOVMVIKVDVJCDVEVOVMQWEAVJVBTMVC $.

  $( Lemma for ~ risefac0 and ~ fallfac0 .  Show a particular set of finite
     integers is empty.  (Contributed by Scott Fenton, 5-Jan-2018.) $)
  risefall0lem $p |- ( 0 ... ( 0 - 1 ) ) = (/) $=
    ( cc0 c1 cneg cfz co cmin c0 df-neg oveq2i clt wbr wceq neg1lt0 cz wb neg1z
    wcel 0z fzn mp2an mpbi eqtr3i ) ABCZDEZAABFEZDEGUCUEADBHIUCAJKZUDGLZMANQUCN
    QUFUGORPAUCSTUAUB $.

  ${
    $d A k $.
    $( The value of the rising factorial when ` N = 0 ` .  (Contributed by
       Scott Fenton, 5-Jan-2018.) $)
    risefac0 $p |- ( A e. CC -> ( A RiseFac 0 ) = 1 ) $=
      ( vk cc wcel cc0 crisefac co c1 cmin cfz caddc cprod wceq 0nn0 risefacval
      cv cn0 mpan2 c0 risefall0lem prodeq1i prod0 eqtri syl6eq ) ACDZAEFGZEEHIG
      JGZABPKGZBLZHUEEQDUFUIMNABEORUISUHBLHUGSUHBTUAUHBUBUCUD $.
  $}

  $( The value of the falling factorial when ` N = 0 ` .  (Contributed by Scott
     Fenton, 5-Jan-2018.) $)
  fallfac0 $p |- ( A e. CC -> ( A FallFac 0 ) = 1 ) $=
    ( cc wcel cc0 cfallfac co cneg cexp crisefac cmul cn0 wceq 0nn0 fallrisefac
    c1 mpan2 neg1cn exp0 mp1i negcl risefac0 syl oveq12d 1t1e1 syl6eq eqtrd ) A
    BCZADEFZOGZDHFZAGZDIFZJFZOUGDKCUHUMLMDANPUGUMOOJFOUGUJOULOJUIBCUJOLUGQUIRSU
    GUKBCULOLATUKUAUBUCUDUEUF $.

  ${
    $d A k $.  $d N k $.
    $( The value of the rising factorial at a successor.  (Contributed by Scott
       Fenton, 5-Jan-2018.) $)
    risefacp1 $p |- ( ( A e. CC /\ N e. NN0 ) ->
       ( A RiseFac ( N + 1 ) ) = ( ( A RiseFac N ) x. ( A + N ) ) ) $=
      ( vk cc wcel cn0 wa cc0 c1 caddc co cmin cfz cprod crisefac adantl sylan2
      cv cmul risefacval 1cnd pncand oveq2d prodeq1d cuz elnn0uz biimpi elfznn0
      nn0cn cfv nn0cnd addcl adantlr oveq2 fprodm1 eqtrd wceq peano2nn0 3eqtr4d
      oveq1d ) ADEZBFEZGZHBIJKZILKZMKZACRZJKZCNZHBILKMKVHCNZABJKZSKZAVDOKZABOKZ
      VKSKVCVIHBMKZVHCNVLVCVFVOVHCVCVEBHMVCBIVBBDEVABUIPVCUAUBUCUDVCVHVKCHBVBBH
      UEUJEZVAVBVPBUFUGPVAVGVOEZVHDEZVBVQVAVGDEVRVQVGVGBUHUKAVGULQUMVGBAJUNUOUP
      VBVAVDFEVMVIUQBURACVDTQVCVNVJVKSACBTUTUS $.

    $( The value of the falling factorial at a successor.  (Contributed by
       Scott Fenton, 5-Jan-2018.) $)
    fallfacp1 $p |- ( ( A e. CC /\ N e. NN0 ) ->
       ( A FallFac ( N + 1 ) ) = ( ( A FallFac N ) x. ( A - N ) ) ) $=
      ( vk cc wcel cn0 wa cc0 c1 caddc co cmin cfz cprod cfallfac adantl sylan2
      cv cmul fallfacval 1cnd pncand oveq2d prodeq1d cuz elnn0uz biimpi elfznn0
      nn0cn cfv nn0cnd subcl adantlr oveq2 fprodm1 eqtrd wceq peano2nn0 3eqtr4d
      oveq1d ) ADEZBFEZGZHBIJKZILKZMKZACRZLKZCNZHBILKMKVHCNZABLKZSKZAVDOKZABOKZ
      VKSKVCVIHBMKZVHCNVLVCVFVOVHCVCVEBHMVCBIVBBDEVABUIPVCUAUBUCUDVCVHVKCHBVBBH
      UEUJEZVAVBVPBUFUGPVAVGVOEZVHDEZVBVQVAVGDEVRVQVGVGBUHUKAVGULQUMVGBALUNUOUP
      VBVAVDFEVMVIUQBURACVDTQVCVNVJVKSACBTUTUS $.
  $}

  ${
    rffacp1d.1 $e |- ( ph -> A e. CC ) $.
    rffacp1d.2 $e |- ( ph -> N e. NN0 ) $.
    $( The value of the rising factorial at a successor.  (Contributed by Scott
       Fenton, 19-Mar-2018.) $)
    risefacp1d $p |- ( ph ->
     ( A RiseFac ( N + 1 ) ) = ( ( A RiseFac N ) x. ( A + N ) ) ) $=
      ( cc wcel cn0 c1 caddc co crisefac cmul wceq risefacp1 syl2anc ) ABFGCHGB
      CIJKLKBCLKBCJKMKNDEBCOP $.

    $( The value of the falling factorial at a successor.  (Contributed by
       Scott Fenton, 19-Mar-2018.) $)
    fallfacp1d $p |- ( ph ->
     ( A FallFac ( N + 1 ) ) = ( ( A FallFac N ) x. ( A - N ) ) ) $=
      ( cc wcel cn0 c1 caddc co cfallfac cmin cmul wceq fallfacp1 syl2anc ) ABF
      GCHGBCIJKLKBCLKBCMKNKODEBCPQ $.
  $}

  $( The value of rising factorial at one.  (Contributed by Scott Fenton,
     5-Jan-2018.) $)
  risefac1 $p |- ( A e. CC -> ( A RiseFac 1 ) = A ) $=
    ( cc wcel c1 crisefac cc0 caddc 0p1e1 oveq2i cmul wceq 0nn0 risefacp1 mpan2
    co cn0 risefac0 addid1 oveq12d mulid2 3eqtrd syl5eqr ) ABCZADEOAFDGOZEOZAUD
    DAEHIUCUEAFEOZAFGOZJOZDAJOAUCFPCUEUHKLAFMNUCUFDUGAJAQARSATUAUB $.

  $( The value of falling factorial at one.  (Contributed by Scott Fenton,
     5-Jan-2018.) $)
  fallfac1 $p |- ( A e. CC -> ( A FallFac 1 ) = A ) $=
    ( cc wcel c1 cfallfac co cc0 caddc oveq2i cmin cmul cn0 wceq 0nn0 fallfacp1
    0p1e1 mpan2 fallfac0 subid1 oveq12d mulid2 3eqtrd syl5eqr ) ABCZADEFAGDHFZE
    FZAUEDAEPIUDUFAGEFZAGJFZKFZDAKFAUDGLCUFUIMNAGOQUDUGDUHAKARASTAUAUBUC $.
  ${
    $d N k $.
    $( Relate rising factorial to factorial.  (Contributed by Scott Fenton,
       5-Jan-2018.) $)
    risefacfac $p |- ( N e. NN0 -> ( 1 RiseFac N ) = ( ! ` N ) ) $=
      ( vk cn0 wcel c1 cfz co cv cmin caddc cprod crisefac cfa cfv wa cc elfznn
      1cnd nncnd adantl pncan3d prodeq2dv wceq ax-1cn risefacval2 mpan fprodfac
      3eqtr4d ) ACDZEAFGZEBHZEIGJGZBKZUJUKBKEALGZAMNUIUJULUKBUIUKUJDZOZEUKUPRUO
      UKPDUIUOUKUKAQSTUAUBEPDUIUNUMUCUDEBAUEUFABUGUH $.
  $}

  ${
    $d A k $.  $d N k $.
    $( The forward difference of a falling factorial.  (Contributed by Scott
       Fenton, 21-Jan-2018.) $)
    fallfacfwd $p |- ( ( A e. CC /\ N e. NN ) ->
      ( ( ( A + 1 ) FallFac N ) - ( A FallFac N ) ) =
      ( N x. ( A FallFac ( N - 1 ) ) ) ) $=
      ( vk cc wcel c1 caddc co cfallfac cmin cmul cc0 cfz cprod cn0 wceq adantl
      oveq2d sylan2 eqtrd cn wa cv peano2cn nnnn0 fallfacval syl2an cneg oveq1i
      0p1e1 prodeq1i oveq2i cuz cfv nnm1nn0 syl6eleq simpll cz elfzelz peano2zm
      nn0uz syl subcld oveq1 df-neg syl6eqr fprod1p fallfacval2 3eqtr4a elfznn0
      zcnd nn0cnd 1cnd subsub3d simpl subnegd oveq1d 3eqtr3d simpr nncnd npcand
      prodeq2dv fallfacp1 eqtr3d oveq12d mulcomd adantr subdird pnncand pncan3d
      fallfaccl 3eqtr2d ) ADEZBUAEZUBZAFGHZBIHZABIHZJHWPABFJHZIHZKHZWTAWSJHZKHZ
      JHZBWTKHZWOWQXAWRXCJWOWQLWSMHZWPCUCZJHZCNZXAWMWPDEZBOEWQXIPWNAUDZBUEWPCBU
      FUGWOXFAXGFJHZJHZCNZAFUHZJHZWTKHZXIXAWOXPLFGHZWSMHZXMCNZKHXPFWSMHZXMCNZKH
      XNXQXTYBXPKXSYAXMCXRFWSMUJUIUKULWOXMXPCLWSWOWSOLUMUNWNWSOEZWMBUOZQZVAUPWO
      XGXFEZUBZAXLWMWNYFUQZYGXLYGXGUREZXLUREYFYIWOXGLWSUSQXGUTVBVKVCXGLPZXLXOAJ
      YJXLLFJHXOXGLFJVDFVEVFRVGWOWTYBXPKWNWMYCWTYBPYDACWSVHSRVIWOXFXMXHCYGAXGFY
      HYGXGYFXGOEWOXGWSVJQVLYGVMVNWBWOXPWPWTKWOAFWMWNVOZWOVMZVPVQVRTWOAWSFGHZIH
      ZWRXCWOYMBAIWOBFWOBWMWNVSVTZYLWARWNWMYCYNXCPYDAWSWCSWDWEWOXDXAXBWTKHZJHWP
      XBJHZWTKHXEWOXCYPXAJWOWTXBWNWMYCWTDEYDAWSWKSZWOAWSYKWOWSYEVLZVCZWFRWOWPXB
      WTWMXJWNXKWGYTYRWHWOYQBWTKWOYQFWSGHBWOAFWSYKYLYSWIWOFBYLYOWJTVQWLT $.
  $}

  ${
    $d N k $.
    $( The value of the zero falling factorial at natural ` N ` .  (Contributed
       by Scott Fenton, 17-Feb-2018.) $)
    0fallfac $p |- ( N e. NN -> ( 0 FallFac N ) = 0 ) $=
      ( vk cn wcel cc0 cfallfac co c1 cmin cfz cv cprod cc cn0 wceq 0cn sylancr
      elfzelz zcnd adantl caddc nnnn0 fallfacval cuz cfv nnm1nn0 nn0uz syl6eleq
      cmul subcl oveq2 0m0e0 syl6eq fprod1p fzfid fprodcl mul02d 3eqtrd ) ACDZE
      AFGZEAHIGZJGZEBKZIGZBLZEEHUAGZVAJGZVDBLZUIGEUSEMDZANDUTVEOPAUBEBAUCQUSVDE
      BEVAUSVANEUDUEAUFUGUHVCVBDZVDMDZUSVJVIVCMDZVKPVJVCVCEVARSEVCUJZQTVCEOVDEE
      IGEVCEEIUKULUMUNUSVHUSVGVDBUSVFVAUOVCVGDZVKUSVNVIVLVKPVNVCVCVFVARSVMQTUPU
      QUR $.
  $}

  $( The value of the zero rising factorial at natural ` N ` .  (Contributed by
     Scott Fenton, 17-Feb-2018.) $)
  0risefac $p |- ( N e. NN -> ( 0 RiseFac N ) = 0 ) $=
    ( cn wcel cc0 crisefac co c1 cneg cexp cfallfac cmul cc cn0 0cn risefallfac
    wceq nnnn0 sylancr neg0 oveq1i 0fallfac syl5eq oveq2d neg1cn mul01d 3eqtrd
    expcl ) ABCZDAEFZGHZAIFZDHZAJFZKFZUKDKFDUHDLCAMCZUIUNPNAQZADORUHUMDUKKUHUMD
    AJFDULDAJSTAUAUBUCUHUKUHUJLCUOUKLCUDUPUJAUGRUEUF $.

  ${
    $d k ph $.  $d N k $.  $d A j $.  $d A k $.  $d B j $.  $d B k $.
    $d j k $.  $d j ph $.  $d N j $.
    binomfallfaclem.1 $e |- ( ph -> A e. CC ) $.
    binomfallfaclem.2 $e |- ( ph -> B e. CC ) $.
    binomfallfaclem.3 $e |- ( ph -> N e. NN0 ) $.
    $( Lemma for ~ binomfallfac .  Closure law.  (Contributed by Scott Fenton,
       13-Mar-2018.) $)
    binomfallfaclem1 $p |- ( ( ph /\
      K e. ( 0 ... N ) ) -> ( ( N _C K ) x. ( ( A FallFac ( N - K ) ) x.
      ( B FallFac ( K + 1 ) ) ) ) e. CC ) $=
      ( cc0 cfz co wcel wa cbc cfallfac cn0 syl2an cc fallfaccl mulcld c1 caddc
      cmin cmul cz elfzelz bccl nn0cnd fznn0sub elfznn0 peano2nn0 syl ) ADIEJKL
      ZMZEDNKZBEDUCKZOKZCDUAUBKZOKZUDKUNUOAEPLDUELUOPLUMHDIEUFDEUGQUHUNUQUSABRL
      UPPLUQRLUMFDIEUIBUPSQACRLURPLZUSRLUMGUMDPLUTDEUJDUKULCURSQTT $.

    binomfallfaclem.4 $e |- ( ps -> ( ( A + B ) FallFac N ) =
      sum_ k e. ( 0 ... N ) ( ( N _C k ) x.
      ( ( A FallFac ( N - k ) ) x. ( B FallFac k ) ) ) ) $.
    $( Lemma for ~ binomfallfac .  Inductive step.  (Contributed by Scott
       Fenton, 13-Mar-2018.) $)
    binomfallfaclem2 $p |- ( ( ph /\ ps ) ->
    ( ( A + B ) FallFac ( N + 1 ) ) =
      sum_ k e. ( 0 ... ( N + 1 ) ) ( ( ( N + 1 ) _C k ) x.
      ( ( A FallFac ( ( N + 1 ) - k ) ) x. ( B FallFac k ) ) ) ) $=
      ( cc0 co cmin cfallfac cmul caddc c1 wcel cc oveq2d vj wa cfz cv cbc wceq
      csu cn0 cz elfzelz syl2an nn0cnd fznn0sub fallfaccl elfznn0 mulcld addcld
      subcld adantr mulassd subcl adddid adantl ppncand subsubd addsubd 3eqtr4d
      bccl oveq1d mul32d 1cnd fallfacp1 eqtrd oveq12d 3eqtr3d cuz cfv wss nn0zd
      eqtr4d uzid peano2uz fzss2 4syl sselda syldan peano2nn0 3eqtrd fallfacp1d
      sumeq2dv sylan9eq fzfid fsummulc1 bcpasc peano2zm adddird eqtr3d syl6eleq
      syl nn0uz oveq2 fsump1 clt wbr wo nn0red ltp1d olcd bcval4 syl3anc subidd
      sylancl eqeltrd syl2anc mul02d fsumcl addid1d oveq1 df-neg syl6eqr fsum1p
      0nn0 cneg neg1lt0 orci mp3an23 subid1d 1zzd 0zd binomfallfaclem1 fsumshft
      neg1z zcnd subsub3d npcand eqtr2d weq cbvsumv addid2d fsumadd ) ABUBZKFUC
      LZFEUDZUELZCFUUCMLZNLZDUUCNLZOLZOLZCDPLZFMLZOLZEUGZUUBUUDCFQPLZUUCMLZNLZU
      UGOLZOLZUUDUUFDUUCQPLZNLZOLZOLZPLZEUGZUUJUUNNLZKUUNUCLZUUNUUCUELZUUQOLZEU
      GZAUUMUVDUFBAUUBUULUVCEAUUCUUBRZUBZUULUUDUUHUUKOLZOLUUDUUQUVAPLZOLUVCUVKU
      UDUUHUUKUVKUUDAFUHRZUUCUIRZUUDUHRZUVJIUUCKFUJUUCFVHZUKULZUVKUUFUUGACSRZUU
      EUHRZUUFSRUVJGUUCKFUMZCUUEUNUKZADSRZUUCUHRZUUGSRZUVJHUUCFUOZDUUCUNZUKZUPZ
      AUUKSRUVJAUUJFACDGHUQZAFIULZURZUSUTUVKUVLUVMUUDOUVKUUHCUUEMLZDUUCMLZPLZOL
      UUHUWMOLZUUHUWNOLZPLUVLUVMUVKUUHUWMUWNUWIAUVSUUESRUWMSRUVJGUVJUUEUWAULCUU
      EVAUKZAUWCUUCSRZUWNSRUVJHUVJUUCUWFULZDUUCVAUKZVBUVKUWOUUKUUHOUVKCFMLZUUCP
      LZUWNPLUXBDPLUWOUUKUVKUXBUUCDUVKCFAUVSUVJGUSZAFSRZUVJUWKUSZURUVJUWSAUWTVC
      ZAUWCUVJHUSZVDUVKUWMUXCUWNPUVKCFUUCUXDUXFUXGVEVIUVKCDFUXDUXHUXFVFVGTUVKUW
      PUUQUWQUVAPUVKUWPUUFUWMOLZUUGOLUUQUVKUUFUUGUWMUWBUWHUWRVJUVKUUPUXIUUGOUVK
      UUPCUUEQPLZNLZUXIUVKUUOUXJCNUVKFQUUCUXFUVKVKUXGVFTAUVSUVTUXKUXIUFUVJGUWAC
      UUEVLUKVMVIVTUVKUWQUUFUUGUWNOLZOLUVAUVKUUFUUGUWNUWBUWHUXAUTUVKUUTUXLUUFOA
      UWCUWDUUTUXLUFUVJHUWFDUUCVLUKTVTVNVOTUVKUUDUUQUVAUVRUVKUUPUUGAUVJUUCUVFRZ
      UUPSRZAUUBUVFUUCAFUIRFFVPVQZRUUNUXORUUBUVFVRAFIVSZFWAFFWBFKUUNWCWDWEZAUVS
      UUOUHRUXNUXMGUUCKUUNUMCUUOUNUKZWFUWHUPUVKUUFUUTUWBAUWCUUSUHRZUUTSRUVJHUVJ
      UWDUXSUWFUUCWGWSDUUSUNUKUPVBWHWJUSUUAUVEUUBUUIEUGZUUKOLZUUMABUVEUUJFNLZUU
      KOLUYAAUUJFUWJIWIBUYBUXTUUKOJVIWKAUYAUUMUFBAUUBUUIUUKEAKFWLZUWLUVKUUDUUHU
      VRUWIUPWMUSVMAUVIUVDUFBAUVIUVFUURFUUCQMLZUELZUUQOLZPLZEUGZUVDAUVFUVHUYGEA
      UXMUBZUUDUYEPLZUUQOLUVHUYGUYIUYJUVGUUQOAUVNUVOUYJUVGUFUXMIUUCKUUNUJZUUCFW
      NUKVIUYIUUDUYEUUQUYIUUDAUVNUVOUVPUXMIUYKUVQUKULZUYIUYEAUVNUYDUIRZUYEUHRUX
      MIUXMUVOUYMUYKUUCWOWSUYDFVHUKULZUYIUUPUUGUXRAUWCUWDUWEUXMHUUCUUNUOUWGUKUP
      ZWPWQWJAUVFUUREUGZUVFUYFEUGZPLUUBUUREUGZUUBUVBEUGZPLUYHUVDAUYPUYRUYQUYSPA
      UYPUYRFUUNUELZCUUNUUNMLZNLZDUUNNLZOLZOLZPLUYRKPLUYRAUURVUEEKFAFUHKVPVQZIW
      TWRUYIUUDUUQUYLUYOUPZUUCUUNUFZUUDUYTUUQVUDOUUCUUNFUEXAVUHUUPVUBUUGVUCOVUH
      UUOVUACNUUCUUNUUNMXATUUCUUNDNXAVNVNXBAVUEKUYRPAVUEKVUDOLKAUYTKVUDOAUVNUUN
      UIRUUNKXCXDZFUUNXCXDZXEUYTKUFIAUUNAUVNUUNUHRZIFWGWSZVSAVUJVUIAFAFIXFXGXHU
      UNFXIXJVIAVUDAVUBVUCAVUBCKNLZSAVUAKCNAUUNAUUNVULULZXKTAUVSKUHRZVUMSRGYBCK
      UNXLXMAUWCVUKVUCSRHVULDUUNUNXNUPXOVMTAUYRAUUBUUREUYCAUVJUXMUURSRUXQVUGWFZ
      XPXQWHAUYQFQYCZUELZCUUNKMLZNLZDKNLZOLZOLZKQPLZUUNUCLZUYFEUGZPLKUYSPLUYSAU
      YFVVCEKUUNAUUNUHVUFVULWTWRUYIUYEUUQUYNUYOUPZUUCKUFZUYEVURUUQVVBOVVHUYDVUQ
      FUEVVHUYDKQMLVUQUUCKQMXRQXSXTTVVHUUPVUTUUGVVAOVVHUUOVUSCNUUCKUUNMXATUUCKD
      NXAVNVNYAAVVCKVVFUYSPAVVCKVVBOLKAVURKVVBOAUVNVURKUFZIUVNVUQUIRVUQKXCXDZFV
      UQXCXDZXEVVIYLVVJVVKYDYEVUQFXIYFWSVIAVVBAVUTVVAAVUTCUUNNLZSAVUSUUNCNAUUNV
      UNYGTAUVSVUKVVLSRGVULCUUNUNXNXMAUWCVUOVVASRHYBDKUNXLUPXOVMAVVFUUBFUAUDZUE
      LZCFVVMMLZNLZDVVMQPLZNLZOLZOLZUAUGZUYSAVWAVVEUYECFUYDMLZNLZDUYDQPLZNLZOLZ
      OLZEUGVVFAVVTVWGUAEQKFAYHAYIUXPACDVVMFGHIYJVVMUYDUFZVVNUYEVVSVWFOVVMUYDFU
      EXAVWHVVPVWCVVRVWEOVWHVVOVWBCNVVMUYDFMXATVWHVVQVWDDNVVMUYDQPXRTVNVNYKAVVE
      VWGUYFEAUUCVVERZUBZVWFUUQUYEOVWJVWCUUPVWEUUGOVWJVWBUUOCNVWJFUUCQAUXEVWIUW
      KUSVWJUUCVWIUVOAUUCVVDUUNUJVCYMZVWJVKZYNTVWJVWDUUCDNVWJUUCQVWKVWLYOTVNTWJ
      YPUUBUVBVVTEUAEUAYQZUUDVVNUVAVVSOUUCVVMFUEXAVWMUUFVVPUUTVVROVWMUUEVVOCNUU
      CVVMFMXATVWMUUSVVQDNUUCVVMQPXRTVNVNYRXTVNAUYSAUUBUVBEUYCACDUUCFGHIYJZXPYS
      WHVNAUVFUURUYFEAKUUNWLVUGVVGYTAUUBUURUVBEUYCVUPVWNYTVGVMUSVG $.
  $}

  ${
    $d A k $.  $d A m $.  $d A n $.  $d B k $.  $d B m $.  $d B n $.  $d k m $.
    $d k n $.  $d m n $.  $d N k $.  $d N m $.
    $( A version of the binomial theorem using falling factorials instead of
       exponentials.  (Contributed by Scott Fenton, 13-Mar-2018.) $)
    binomfallfac $p |- ( ( A e. CC /\ B e. CC /\ N e. NN0 ) ->
     ( ( A + B ) FallFac N ) =
      sum_ k e. ( 0 ... N ) ( ( N _C k ) x.
      ( ( A FallFac ( N - k ) ) x. ( B FallFac k ) ) ) ) $=
      ( cc wcel co cfallfac cc0 cfz cbc cmin cmul csu wceq oveq2 oveq2d oveq12d
      c1 oveq1 vm vn cn0 caddc cv wa wi csn cz 0z ax-mp syl6eq oveq1d sumeq12dv
      fzsn adantr eqeq12d imbi2d weq fallfac0 oveqan12d 1t1e1 0cn syl6eqel 0nn0
      ax-1cn bcnn 0m0e0 sumsn sylancr addcl syl 3eqtr4rd simprl simprr simpl id
      binomfallfaclem2 exp31 a2d nn0ind com12 3impia ) AEFZBEFZDUCFZABUDGZDHGZI
      DJGZDCUEZKGZADWJLGZHGZBWJHGZMGZMGZCNZOZWFWDWEUFZWRWSWGUAUEZHGZIWTJGZWTWJK
      GZAWTWJLGZHGZWNMGZMGZCNZOZUGWSWGIHGZIUHZIWJKGZAIWJLGZHGZWNMGZMGZCNZOZUGWS
      WGUBUEZHGZIXSJGZXSWJKGZAXSWJLGZHGZWNMGZMGZCNZOZUGWSWGXSSUDGZHGZIYIJGZYIWJ
      KGZAYIWJLGZHGZWNMGZMGZCNZOZUGWSWRUGUAUBDWTIOZXIXRWSYSXAXJXHXQWTIWGHPYSXBX
      KXGXPCYSXBIIJGZXKWTIIJPIUIFYTXKOUJIUOUKULYSXGXPOWJXBFZYSXCXLXFXOMWTIWJKTY
      SXEXNWNMYSXDXMAHWTIWJLTQUMRUPUNUQURUAUBUSZXIYHWSUUBXAXTXHYGWTXSWGHPUUBXBY
      AXGYFCWTXSIJPUUBXGYFOUUAUUBXCYBXFYEMWTXSWJKTUUBXEYDWNMUUBXDYCAHWTXSWJLTQU
      MRUPUNUQURWTYIOZXIYRWSUUCXAYJXHYQWTYIWGHPUUCXBYKXGYPCWTYIIJPUUCXGYPOUUAUU
      CXCYLXFYOMWTYIWJKTUUCXEYNWNMUUCXDYMAHWTYIWJLTQUMRUPUNUQURWTDOZXIWRWSUUDXA
      WHXHWQWTDWGHPUUDXBWIXGWPCWTDIJPUUDXGWPOUUAUUDXCWKXFWOMWTDWJKTUUDXEWMWNMUU
      DXDWLAHWTDWJLTQUMRUPUNUQURWSSAIHGZBIHGZMGZMGZSXQXJWSUUHSSMGZSWSUUGSSMWSUU
      GUUISWDWEUUESUUFSMAUTBUTVAVBULQVBULZWSIEFUUHEFXQUUHOVCWSUUHSEUUJVFVDXPUUH
      CIEWJIOZXLSXOUUGMUUKXLIIKGZSWJIIKPIUCFUULSOVEIVGUKULUUKXNUUEWNUUFMUUKXMIA
      HUUKXMIILGIWJIILPVHULQWJIBHPRRVIVJWSWGEFXJSOABVKWGUTVLVMXSUCFZWSYHYRUUMWS
      YHYRUUMWSUFYHABCXSUUMWDWEVNUUMWDWEVOUUMWSVPYHVQVRVSVTWAWBWC $.
  $}

  ${
    $d A k $.  $d B k $.  $d N k $.
    $( A version of the binomial theorem using rising factorials instead of
       exponentials.  (Contributed by Scott Fenton, 16-Mar-2018.) $)
    binomrisefac $p |- ( ( A e. CC /\ B e. CC /\ N e. NN0 ) ->
     ( ( A + B ) RiseFac N ) =
      sum_ k e. ( 0 ... N ) ( ( N _C k ) x.
      ( ( A RiseFac ( N - k ) ) x. ( B RiseFac k ) ) ) ) $=
      ( cc wcel cn0 cneg cexp caddc cfallfac cmul cc0 csu crisefac eqtrd neg1cn
      co wceq syl2an w3a c1 cfz cv cmin negdi 3adant3 oveq1d negcl binomfallfac
      cbc id syl3an oveq2d fzfid expcl mpan 3ad2ant3 wa cz simp3 elfzelz nn0cnd
      bccl simpl1 negcld cle nn0zd zsubcl elfzle2 adantl simpl3 elfznn0 subge0d
      wbr nn0red mpbird elnn0z sylanbrc fallfaccl syl2anc simp2 fsummulc2 addcl
      mulcld risefallfac stoic3 simpl2 oveq12d sylancr mul4d a1i expaddd eqtr3d
      npcan 3eqtrd adantr mul12d sumeq2dv 3eqtr4d ) AEFZBEFZDGFZUAZUBHZDIRZABJR
      ZHZDKRZLRZMDUCRZXFDCUDZUKRZAHZDXLUERZKRZBHZXLKRZLRZLRZLRZCNZXGDORZXKXMAXO
      ORZBXLORZLRZLRZCNXDXJXFXKXTCNZLRYBXDXIYHXFLXDXIXNXQJRZDKRZYHXDXHYIDKXAXBX
      HYISXCABUFUGUHXAXNEFZXBXQEFZXCXCYJYHSAUIBUIXCULXNXQCDUJUMPUNXDXKXTXFCXDMD
      UOXCXAXFEFZXBXEEFZXCYMQXEDUPUQURZXDXLXKFZUSZXMXSYQXMXDXCXLUTFZXMGFYPXAXBX
      CVAZXLMDVBZXLDVDTVCZYQXPXRYQYKXOGFZXPEFYQAXAXBXCYPVEZVFYQXOUTFZMXOVGVOZUU
      BXDDUTFYRUUDYPXDDYSVHYTDXLVITYQUUEXLDVGVOZYPUUFXDXLMDVJVKYQDXLYQDXAXBXCYP
      VLVPYQXLYPXLGFZXDXLDVMZVKZVPVNVQXOVRVSZXNXOVTWAZXDYLUUGXREFYPXDBXAXBXCWBV
      FUUHXQXLVTTZWEZWEWCPXAXBXGEFXCYCXJSABWDDXGWFWGXDXKYGYACYQYGXMXFXSLRZLRYAY
      QYFUUNXMLYQYFXEXOIRZXPLRZXEXLIRZXRLRZLRUUOUUQLRZXSLRUUNYQYDUUPYEUURLYQXAU
      UBYDUUPSUUCUUJXOAWFWAYQXBUUGYEUURSXAXBXCYPWHUUIXLBWFWAWIYQUUOXPUUQXRYQYNU
      UBUUOEFQUUJXEXOUPWJUUKYPUUQEFZXDYPYNUUGUUTQUUHXEXLUPWJVKUULWKYQUUSXFXSLYQ
      XEXOXLJRZIRUUSXFYQXEXOXLYNYQQWLUUIUUJWMYQUVADXEIXDDEFXLEFUVADSYPXDDYSVCYP
      XLUUHVCDXLWOTUNWNUHWPUNYQXMXFXSUUAXDYMYPYOWQUUMWRPWSWT $.
  $}

  ${
    $d A k $.  $d N k $.
    $( Represent the falling factorial via factorials when the first argument
       is a natural.  (Contributed by Scott Fenton, 20-Mar-2018.) $)
    fallfacval4 $p |- ( N e. ( 0 ... A ) ->
      ( A FallFac N ) = ( ( ! ` A ) / ( ! ` ( A - N ) ) ) ) $=
      ( vk cc0 cfz co wcel c1 cmin cprod cdiv cfa cfv fzfid zcnd adantl cn wceq
      wbr syl cv cfallfac caddc cmul cc elfzelz fprodcl wa elfznn nncnd fprodn0
      nnne0d divcan3d clt cin fznn0sub nn0red ltp1d fzdisj cuz cun nn0p1nn nnuz
      c0 cn0 syl6eleq nn0zd elfzel2 elfzle1 zred subge02d mpbid eluz2 syl3anbrc
      cle fzsplit2 syl2anc fprodsplit oveq1d 1cnd prodeq1d 3eqtr4rd fallfacval3
      cz subsubd elfz3nn0 fprodfac oveq12d 3eqtr4d ) BDAEFGZABHIFIFZAEFZCUAZCJZ
      HAEFZWMCJZHABIFZEFZWMCJZKFZABUBFALMZWQLMZKFWJWSWQHUCFZAEFZWMCJZUDFZWSKFXE
      WTWNWJXEWSWJXDWMCWJXCANWMXDGZWMUEGZWJXGWMWMXCAUFOPUGWJWRWMCWJHWQNZWJWMWRG
      ZUHZWMXJWMQGWJWMWQUIPZUJZUGWJWRWMCXIXMXKWMXLULUKUMWJWPXFWSKWJWRXDWMWOCWJW
      QXCUNSWRXDUOVDRWJWQWJWQBDAUPZUQURHWQXCAUSTWJXCHUTMZGAWQUTMGZWOWRXDVARWJXC
      QXOWJWQVEGZXCQGXNWQVBTVCVFWJWQWDGAWDGWQAVOSZXPWJWQXNVGBDAVHZWJDBVOSXRBDAV
      IWJABWJAXSVJWJBBDAUFZVJVKVLWQAVMVNWQHAVPVQWJHANWMWOGZXHWJYAWMWMAUIUJPVRVS
      WJWLXDWMCWJWKXCAEWJABHWJAXSOWJBXTOWJVTWEVSWAWBACBWCWJXAWPXBWSKWJAVEGXAWPR
      BAWFACWGTWJXQXBWSRXNWQCWGTWHWI $.
  $}

  $( Binomial coefficient in terms of falling factorials.  (Contributed by
     Scott Fenton, 20-Mar-2018.) $)
  bcfallfac $p |- ( K e. ( 0 ... N ) ->
    ( N _C K ) = ( ( N FallFac K ) / ( ! ` K ) ) ) $=
    ( cc0 cfz co wcel cfa cfv cmin cdiv cmul cfallfac cbc cn0 cn elfz3nn0 faccl
    syl nncnd nnne0d fznn0sub elfznn0 divdiv1d fallfacval4 oveq1d 3eqtr4rd
    bcval2 ) ACBDEFZBGHZBAIEZGHZJEZAGHZJEUIUKUMKEJEBALEZUMJEBAMEUHUIUKUMUHUIUHB
    NFUIOFABPBQRSUHUKUHUJNFUKOFACBUAUJQRZSUHUMUHANFUMOFABUBAQRZSUHUKUOTUHUMUPTU
    CUHUNULUMJBAUDUEABUGUF $.

  $( Relate falling factorial to factorial.  (Contributed by Scott Fenton,
     5-Jan-2018.) $)
  fallfacfac $p |- ( N e. NN0 -> ( N FallFac N ) = ( ! ` N ) ) $=
    ( cn0 wcel cfallfac co cfa cfv cmin cdiv c1 cc0 cfz wceq nn0fz0 fallfacval4
    sylbi nn0cn subidd fveq2d fac0 syl6eq oveq2d faccl nncnd div1d 3eqtrd ) ABC
    ZAADEZAFGZAAHEZFGZIEZUIJIEUIUGAKALECUHULMANAAOPUGUKJUIIUGUKKFGJUGUJKFUGAAQR
    STUAUBUGUIUGUIAUCUDUEUF $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Bernoulli polynomials and sums of k-th powers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c BernPoly $.

  $( Declare the constant for the Bernoulli polynomial operator. $)
  cbp $a class BernPoly $.

  ${
    $d g k m n x $.
    $( Define the Bernoulli polynomials.  Here we use well-founded recursion to
       define the Bernoulli polynomials.  This agrees with most textbook
       definitions, although explicit formulae do exist.  (Contributed by Scott
       Fenton, 22-May-2014.) $)
    df-bpoly $a |- BernPoly =
       ( m e. NN0 , x e. CC |->
         ( wrecs ( < , NN0 , ( g e. _V |-> [_ ( # ` dom g ) / n ]_
            ( ( x ^ n ) - sum_ k e. dom g ( ( n _C k ) x.
              ( ( g ` k ) / ( ( n - k )
              + 1 ) ) ) ) ) ) ` m ) ) $.
  $}

  ${
    $d g k m n x F $.  $d g k m n x N $.  $d c g k m n x X $.
    ${
      bpoly.1 $e |- G = ( g e. _V |-> [_ ( # ` dom g ) / n ]_
         ( ( X ^ n ) - sum_ k e. dom g ( ( n _C k ) x.
           ( ( g ` k ) / ( ( n - k ) + 1 ) ) ) ) ) $.
      bpoly.2 $e |- F = wrecs ( < , NN0 , G ) $.
      $( Lemma for ~ bpolyval .  (Contributed by Scott Fenton, 22-May-2014.)
         (Revised by Mario Carneiro, 23-Aug-2014.) $)
      bpolylem $p |- ( ( N e. NN0 /\ X e. CC ) ->
         ( N BernPoly X ) = ( ( X ^ N ) -
            sum_ k e. ( 0 ... ( N - 1 ) ) ( ( N _C k ) x.
              ( ( k BernPoly X ) / ( ( N - k ) + 1 ) ) ) ) ) $=
        ( cn0 wcel co cfv clt c1 cmin cdiv cmul cvv wceq vm vx cc wa cpred cres
        cbp cexp cc0 cfz cbc caddc csu cdm chash csb cmpt cwrecs oveq1 csbeq2dv
        cv oveq1d mpteq2dv syl6eqr wrecseq3 syl fveq1d fveq2 sylan9eqr df-bpoly
        fvex ovmpt2a wwe cuz ltweuz nn0uz weeq2 ax-mp mpbir wse nn0ex exse wfr2
        adantr prednn0 reseq2d fveq2d wfun wfrfun ovex resfunexg mp2an dmeq wfn
        wss wfr1 fz0ssnn0 fnssres syl6eq fveq1 fvres sylan9eq oveq2d sumeq12rdv
        wb fndm csbeq1d eqtrd csbex fvmpt nfcvd oveq2 oveq12d sumeq2sdv csbiegf
        cen wbr cz nn0z fz01en cfn fzfi hashen sylibr hashfz1 elfznn0 simpr weq
        syl2anr sumeq2dv 3eqtr4d syl5eq 3eqtrd ) FJKZGUCKZUDZFGUGLFDMZDJNFUEZUF
        ZEMZGFUHLZUIFOPLZUJLZFBVAZUKLZUUDGUGLZFUUDPLZOULLZQLZRLZBUMZPLZUAUBFGJU
        CUAVAZJNASCAVAZUNZUOMZUBVAZCVAZUHLZUUOUURUUDUKLZUUDUUNMZUURUUDPLZOULLZQ
        LZRLZBUMZPLZUPZUQZURZMZYQUGUUQGTZUUMFTUVKUUMDMZYQUVLUUMUVJDUVLUVJJNEURZ
        DUVLUVIETUVJUVNTUVLUVIASCUUPGUURUHLZUVFPLZUPZUQEUVLASUVHUVQUVLCUUPUVGUV
        PUVLUUSUVOUVFPUUQGUURUHUSVBUTVCHVDJNUVIEVEVFIVDVGZUUMFDVHVIUBABUACVJZFD
        VKVLYNYQYTTYOJNDEFJNVMZUIVNMZNVMZUIVOJUWATUVTUWBXEVPJUWANVQVRVSZJSKJNVT
        WAJNSWBVRZIWCWDYPYTDUUCUFZEMZUULYPYSUWEEYPYRUUCDYNYRUUCTYOFWEWDWFWGYPUW
        FCUUCUOMZUVOUUCUUTUUDDMZUVCQLZRLZBUMZPLZUPZUULUWESKZUWFUWMTDWHUUCSKUWNJ
        NDEUWCUWDIWIUIUUBUJWJDUUCSWKWLAUWEUVQUWMSEUUNUWETZUVQCUUPUWLUPUWMUWOCUU
        PUVPUWLUWOUVFUWKUVOPUWOUUOUUCUVEUWJBUWOUUOUWEUNZUUCUUNUWEWMUWEUUCWNZUWP
        UUCTDJWNUUCJWOUWQJNDEUWCUWDIWPUUBWQJUUCDWRWLUUCUWEXFVRWSZUWOUUDUUCKZUDZ
        UVDUWIUUTRUWTUVAUWHUVCQUWOUWSUVAUUDUWEMUWHUUDUUNUWEWTUUDUUCDXAXBVBXCXDX
        CUTUWOCUUPUWGUWLUWOUUOUUCUOUWRWGXGXHHCUWGUWLUVOUWKPWJXIXJVRYPCFUWLUPZUU
        AUUCUUEUWHUUHQLZRLZBUMZPLZUWMUULYNUXAUXETYOCFUWLUXEJYNCUXEXKUURFTZUVOUU
        AUWKUXDPUURFGUHXLUXFUUCUWJUXCBUXFUUTUUEUWIUXBRUURFUUDUKUSUXFUVCUUHUWHQU
        XFUVBUUGOULUURFUUDPUSVBXCXMXNXMXOWDYPCUWGFUWLYNUWGFTYOYNUWGOFUJLZUOMZFY
        NUUCUXGXPXQZUWGUXHTZYNFXRKUXIFXSFXTVFUUCYAKUXGYAKUXJUXIXEUIUUBYBOFYBUUC
        UXGYCWLYDFYEXHWDXGYPUUKUXDUUAPYPUUCUUJUXCBYPUWSUDZUUIUXBUUERUXKUUFUWHUU
        HQUWSUUDJKYOUUFUWHTYPUUDUUBYFYNYOYGUAUBUUDGJUCUVKUWHUGUVLUABYHUVKUVMUWH
        UVRUUMUUDDVHVIUVSUUDDVKVLYIVBXCYJXCYKYLXHYM $.
    $}

    $( The value of the Bernoulli polynomials.  (Contributed by Scott Fenton,
       16-May-2014.) $)
    bpolyval $p |- ( ( N e. NN0 /\ X e. CC ) ->
       ( N BernPoly X ) = ( ( X ^ N ) -
          sum_ k e. ( 0 ... ( N - 1 ) ) ( ( N _C k ) x.
            ( ( k BernPoly X ) / ( ( N - k ) + 1 ) ) ) ) ) $=
      ( vg vn vc vm cv chash cfv cexp co cbc cmin caddc cdiv cmul csu oveq12d
      c1 cn0 clt cvv cdm cmpt cwrecs csb fvex wceq oveq2 oveq1 oveq1d sumeq2sdv
      weq oveq2d csbie fveq2 cbvsumv dmeq wcel adantr sumeq12dv syl5eq csbeq2dv
      fveq1 syl5eqr fveq2d csbeq1d eqtrd cbvmptv eqid bpolylem ) DAEUAUBFUCCFHZ
      UDZIJZKLZVNVOGHZMLZVQVMJZVOVQNLZTOLZPLZQLZGRZNLZUEZUFZWFBCFDUCWEEDHZUDZIJ
      ZCEHZKLZWIWKAHZMLZWMWHJZWKWMNLZTOLZPLZQLZARZNLZUGZFDUNZWEEVOXAUGZXBXCWEEV
      OWLVNWKVQMLZVSWKVQNLZTOLZPLZQLZGRZNLZUGXDEVOXKWEVNIUHWKVOUIZWLVPXJWDNWKVO
      CKUJXLVNXIWCGXLXEVRXHWBQWKVOVQMUKXLXGWAVSPXLXFVTTOWKVOVQNUKULUOSUMSUPXCEV
      OXKXAXCXJWTWLNXCXJVNWNWMVMJZWQPLZQLZARWTVNXIXOGAGAUNZXEWNXHXNQVQWMWKMUJXP
      VSXMXGWQPVQWMVMUQXPXFWPTOVQWMWKNUJULSSURXCVNWIXOWSAVMWHUSZXCXOWSUIWMVNUTX
      CXNWRWNQXCXMWOWQPWMVMWHVEULUOVAVBVCUOVDVFXCEVOWJXAXCVNWIIXQVGVHVIVJWGVKVL
      $.
  $}

  ${
    $d X k $.
    $( The value of the Bernoulli polynomials at zero.  (Contributed by Scott
       Fenton, 16-May-2014.) $)
    bpoly0 $p |- ( X e. CC -> ( 0 BernPoly X ) = 1 ) $=
      ( vk cc wcel cc0 cbp co cexp c1 cmin cfz cv cbc caddc cdiv cmul csu eqtri
      cn0 c0 wceq 0nn0 bpolyval mpan exp0 oveq1d risefall0lem sum0 oveq2i 1m0e1
      sumeq1i syl6eq eqtrd ) ACDZEAFGZAEHGZEEIJGKGZEBLZMGURAFGEURJGINGOGPGZBQZJ
      GZIESDUNUOVAUAUBBEAUCUDUNVAIUTJGZIUNUPIUTJAUEUFVBIEJGIUTEIJUTTUSBQEUQTUSB
      UGUKUSBUHRUIUJRULUM $.
  $}

  ${
    $d X k $.
    $( The value of the Bernoulli polynomials at one.  (Contributed by Scott
       Fenton, 16-May-2014.) $)
    bpoly1 $p |- ( X e. CC -> ( 1 BernPoly X ) = ( X - ( 1 / 2 ) ) ) $=
      ( vk cc wcel c1 cbp cc0 cmin cfz cbc caddc cdiv cmul csu wceq 1nn0 syl6eq
      co c2 oveq12d cexp cv cn0 bpolyval mpan 1m1e0 oveq2i sumeq1i cz 0z bpoly0
      exp1 oveq1d oveq2d halfcn mulid2i syl6eqel oveq2 bcn0 ax-mp oveq1 syl6eqr
      1m0e1 df-2 fsum1 sylancr eqtrd syl5eq ) ACDZEAFRZAEUARZGEEHRZIRZEBUBZJRZV
      NAFRZEVNHRZEKRZLRZMRZBNZHRZAESLRZHREUCDZVIVJWBOPBEAUDUEVIVKAWAWCHAULVIWAG
      GIRZVTBNZWCVMWEVTBVLGGIUFUGUHVIWFEGAFRZSLRZMRZWCVIGUIDWICDWFWIOUJVIWIWCCV
      IWIEWCMRWCVIWHWCEMVIWGESLAUKUMUNWCUOUPQZUOUQVTWIBGVNGOZVOEVSWHMWKVOEGJRZE
      VNGEJURWDWLEOPEUSUTQWKVPWGVRSLVNGAFVAWKVREEKRSWKVQEEKWKVQEGHREVNGEHURVCQU
      MVDVBTTVEVFWJVGVHTVG $.
  $}

  ${
    $d N n $.  $d X k m n $.
    $( Closure law for Bernoulli polynomials.  (Contributed by Scott Fenton,
       16-May-2014.)  (Proof shortened by Mario Carneiro, 22-May-2014.) $)
    bpolycl $p |- ( ( N e. NN0 /\ X e. CC ) -> ( N BernPoly X ) e. CC ) $=
      ( vn vk vm cn0 wcel cc cbp co cv wi wceq oveq1 eleq1d imbi2d cc0 cmin cfz
      c1 wral r19.21v w3a cexp cbc caddc cdiv cmul bpolyval 3adant3 simp2 simp1
      expcld fzfid wa cz elfzelz bccl syl2an nn0cnd rspccva 3ad2antl3 cn fzssp1
      ax-1cn npcan sylancl oveq2d syl5sseq sselda fznn0sub nn0p1nn nncnd nnne0d
      csu 3syl divcld mulcld fsumcl subcld eqeltrd 3exp a2d syl5bi nn0sinds imp
      ) AFGBHGZABIJZHGZWGCKZBIJZHGZLZWGDKZBIJZHGZLZWGWILCDAWJWNMZWLWPWGWRWKWOHW
      JWNBINOPWJAMZWLWIWGWSWKWHHWJABINOPWQDQWJTRJZSJZUAWGWPDXAUAZLWJFGZWMWGWPDX
      AUBXCWGXBWLXCWGXBWLXCWGXBUCZWKBWJUDJZXAWJEKZUEJZXFBIJZWJXFRJZTUFJZUGJZUHJ
      ZEVOZRJZHXCWGWKXNMXBEWJBUIUJXDXEXMXDBWJXCWGXBUKXCWGXBULZUMXDXAXLEXDQWTUNX
      DXFXAGZUOZXGXKXQXGXDXCXFUPGXGFGXPXOXFQWTUQXFWJURUSUTXQXHXJXBXCXPXHHGZWGWP
      XRDXFXAWNXFMWOXHHWNXFBINOVAVBXQXJXQXFQWJSJZGXIFGXJVCGXDXAXSXFXDQWTTUFJZSJ
      XAXSQWTVDXDXTWJQSXDWJHGTHGXTWJMXDWJXOUTVEWJTVFVGVHVIVJXFQWJVKXIVLVPZVMXQX
      JYAVNVQVRVSVTWAWBWCWDWEWF $.
  $}

  ${
    $d N k $.  $d X k $.
    $( A sum for Bernoulli polynomials.  (Contributed by Scott Fenton,
       16-May-2014.)  (Proof shortened by Mario Carneiro, 22-May-2014.) $)
    bpolysum $p |- ( ( N e. NN0 /\ X e. CC ) ->
      sum_ k e. ( 0 ... N ) ( ( N _C k ) x. ( ( k BernPoly X ) / ( ( N - k ) +
        1 ) ) ) = ( X ^ N ) ) $=
      ( cn0 wcel cc wa cc0 cfz co cbc cbp cmin c1 cdiv cmul wceq oveq12d oveq2d
      caddc cv csu cexp cuz cfv simpl nn0uz syl6eleq elfzelz bccl syl2an nn0cnd
      cz elfznn0 simpr bpolycl syl2anr fznn0sub adantl nn0p1nn syl nncnd nnne0d
      cn divcld mulcld oveq2 oveq1 oveq1d fsumm1 bcnn adantr nn0cn subidd 0p1e1
      syl6eq div1d eqtrd bpolyval eqcomd expcl ancoms fzfid fzssp1 ax-1cn npcan
      mulid2d sylancl syl5sseq sselda syldan fsumcl subaddd mpbid 3eqtrd ) BDEZ
      CFEZGZHBIJZBAUAZKJZWTCLJZBWTMJZNTJZOJZPJZAUBHBNMJZIJZXFAUBZBBKJZBCLJZBBMJ
      ZNTJZOJZPJZTJXIXKTJZCBUCJZWRXFXOAHBWRBDHUDUEWPWQUFZUGUHWRWTWSEZGZXAXEXTXA
      WRWPWTUMEXADEXSXRWTHBUIWTBUJUKULXTXBXDXSWTDEWQXBFEWRWTBUNWPWQUOWTCUPUQXTX
      DXTXCDEZXDVDEXSYAWRWTHBURUSXCUTVAZVBXTXDYBVCVEVFZWTBQZXAXJXEXNPWTBBKVGYDX
      BXKXDXMOWTBCLVHYDXCXLNTWTBBMVGVIRRVJWRXOXKXITWRXONXKPJXKWRXJNXNXKPWPXJNQW
      QBVKVLWRXNXKNOJXKWRXMNXKOWRXMHNTJNWRXLHNTWRBWPBFEZWQBVMVLZVNVIVOVPSWRXKBC
      UPZVQVRRWRXKYGWGVRSWRXQXIMJZXKQXPXQQWRXKYHABCVSVTWRXQXIXKWQWPXQFECBWAWBWR
      XHXFAWRHXGWCWRWTXHEXSXFFEWRXHWSWTWRHXGNTJZIJXHWSHXGWDWRYIBHIWRYENFEYIBQYF
      WEBNWFWHSWIWJYCWKWLYGWMWNWO $.
  $}

  ${
    $d k m n N $.  $d k m ph $.  $d k m n X $.
    ${
      bpolydiflem.1 $e |- ( ph -> N e. NN ) $.
      bpolydiflem.2 $e |- ( ph -> X e. CC ) $.
      bpolydiflem.3 $e |- ( ( ph /\ k e. ( 1 ... ( N - 1 ) ) ) ->
                            ( ( k BernPoly ( X + 1 ) ) - ( k BernPoly X ) ) =
                              ( k x. ( X ^ ( k - 1 ) ) ) ) $.
      $( Lemma for ~ bpolydif .  (Contributed by Scott Fenton, 12-Jun-2014.) $)
      bpolydiflem $p |- ( ph ->
                          ( ( N BernPoly ( X + 1 ) ) - ( N BernPoly X ) ) =
                            ( N x. ( X ^ ( N - 1 ) ) ) ) $=
        ( vm c1 caddc co cmin cc0 cfz cdiv cmul wcel cc wceq oveq12d cbp cv cbc
        csu cn0 nnnn0d peano2cn syl bpolyval syl2anc expcld fzfid wa cz elfzelz
        cexp syl2an nn0cnd elfznn0 bpolycl syl2anr cn fzssp1 nncnd ax-1cn npcan
        bccl sylancl oveq2d syl5sseq sselda nn0p1nn nnne0d divcld mulcld fsumcl
        fznn0sub sub4d addcom oveq1d binom1p eqtrd cuz cfv nn0uz syl6eleq bccl2
        c2 adantl expcl oveq2 fsumm1 bcnn mulid2d 3eqtrd syldan pncand subsub4d
        nnm1nn0 1cnd df-2 oveq2i syl6eqr sumeq1d bcnm1 fsum1p bpoly0 0z subid1d
        oveq1 eqeltrd peano2nnd nnrecred recnd fzp1ss ax-mp sylan2 pnpcand 1zzd
        wss sseli 0zd nnzd 2z zsubcl 2m1e1 2cnd subsubd syl5reqr fsumshft 0p1e1
        oveq1i eleq2i bcm1k adantr elfznn sylbir wne 3eqtr3d mulassd divsubdird
        div23d subdid nn0zd divcan6d sylan2b sumeq2dv fsumsub 3eqtr2rd pncan2d
        ) ACDIJKZUAKZCDUAKZLKUUKCUPKZMCILKZNKZCBUBZUCKZUUQUUKUAKZCUUQLKZIJKZOKZ
        PKZBUDZLKZDCUPKZUUPUURUUQDUAKZUVAOKZPKZBUDZLKZLKUUNUVFLKZUVDUVJLKZLKZCD
        UUOUPKZPKZAUULUVEUUMUVKLACUEQZUUKRQZUULUVESACEUFZADRQZUVRFDUGUHZBCUUKUI
        UJAUVQUVTUUMUVKSUVSFBCDUIUJTAUUNUVDUVFUVJAUUKCUWAUVSUKAUUPUVCBAMUUOULZA
        UUQUUPQZUMZUURUVBUWDUURAUVQUUQUNQUURUEQUWCUVSUUQMUUOUOUUQCVGUQURZUWDUUS
        UVAUWCUUQUEQZUVRUUSRQZAUUQUUOUSZUWAUUQUUKUTVAZUWDUVAUWDUUTUEQZUVAVBQUWD
        UUQMCNKZQUWJAUUPUWKUUQAMUUOIJKZNKUUPUWKMUUOVCAUWLCMNACRQIRQZUWLCSACEVDZ
        VECIVFVHZVIVJZVKUUQMCVQUHUUTVLUHZVDZUWDUVAUWQVMZVNVOZVPADCFUVSUKZAUUPUV
        IBUWBUWDUURUVHUWEUWDUVGUVAUWCUWFUVTUVGRQZAUWHFUUQDUTVAZUWRUWSVNVOZVPVRA
        UVNMCWHLKZNKZCHUBZUCKZDUXGUPKZPKZHUDZUVPJKZUXKLKUVPAUVLUXLUVMUXKLAUVLUU
        PUXJHUDZMUUOILKZNKZUXJHUDZCUUOUCKZUVOPKZJKUXLAUVLUXMUVFJKZUVFLKUXMAUUNU
        XSUVFLAUUNUWKUXJHUDZUXMCCUCKZUVFPKZJKUXSAUUNIDJKZCUPKZUXTAUUKUYCCUPAUVT
        UWMUUKUYCSFVEDIVSVHVTAUVTUVQUYDUXTSFUVSDHCWAUJWBAUXJUYBHMCACUEMWCWDZUVS
        WEWFAUXGUWKQZUMZUXHUXIUYGUXHUYFUXHVBQAUXGCWGWIVDAUVTUXGUEQUXIRQUYFFUXGC
        USDUXGWJUQVOZUXGCSUXHUYAUXIUVFPUXGCCUCWKUXGCDUPWKTWLAUYBUVFUXMJAUYBIUVF
        PKUVFAUYAIUVFPAUVQUYAISUVSCWMUHVTAUVFUXAWNWBVIWOVTAUXMUVFAUUPUXJHUWBAUX
        GUUPQZUYFUXJRQZAUUPUWKUXGUWPVKUYHWPZVPUXAWQWBAUXJUXRHMUUOAUUOUEUYEACVBQ
        ZUUOUEQECWSUHZWEWFZUYKUXGUUOSUXHUXQUXIUVOPUXGUUOCUCWKUXGUUODUPWKTWLAUXP
        UXKUXRUVPJAUXOUXFUXJHAUXNUXEMNAUXNCIIJKZLKUXEACIIUWNAWTZUYPWRWHUYOCLXAX
        BXCVIXDAUXQCUVOPAUVQUXQCSUVSCXEUHVTTWOAUVMCMUCKZICMLKZIJKZOKZPKZMIJKZUU
        ONKZUVCBUDZJKZVUAVUCUVIBUDZJKZLKVUDVUFLKZUXKAUVDVUEUVJVUGLAUVDUYQMUUKUA
        KZUYSOKZPKZVUDJKVUEAUVCVUKBMUUOUYNUWTUUQMSZUURUYQUVBVUJPUUQMCUCWKZVULUU
        SVUIUVAUYSOUUQMUUKUAXJVULUUTUYRIJUUQMCLWKVTZTTXFAVUKVUAVUDJAVUJUYTUYQPA
        VUIIUYSOAUVRVUIISUWAUUKXGUHVTVIVTWBAUVJUYQMDUAKZUYSOKZPKZVUFJKVUGAUVIVU
        QBMUUOUYNUXDVULUURUYQUVHVUPPVUMVULUVGVUOUVAUYSOUUQMDUAXJVUNTTXFAVUQVUAV
        UFJAVUPUYTUYQPAVUOIUYSOAUVTVUOISFDXGUHVTVIVTWBTAVUAVUDVUFAUYQUYTAUYQAUV
        QMUNQZUYQUEQUVSXHMCVGVHURAUYTAUYSAUYRAUYRCVBACUWNXIEXKXLXMXNVOAVUCUVCBA
        VUBUUOULZUUQVUCQZAUWCUVCRQVUCUUPUUQVURVUCUUPXTXHMUUOXOXPYAZUWTXQZVPAVUC
        UVIBVUSVUTAUWCUVIRQVVAUXDXQZVPXRAUXKVUCCUUQILKZUCKZDVVDUPKZPKZBUDZVUCUV
        CUVILKZBUDVUHAUXKVUBUXEIJKZNKZVVGBUDVVHAUXJVVGHBIMUXEAXSAYBACUNQWHUNQUX
        EUNQACEYCYDCWHYEVHAUXGUXFQUYIUYJAUXFUUPUXGAMVVJNKUXFUUPMUXEVCAVVJUUOMNA
        UUOCWHILKZLKVVJVVLICLYFXBACWHIUWNAYGUYPYHYIZVIVJVKUYKWPZUXGVVDSUXHVVEUX
        IVVFPUXGVVDCUCWKUXGVVDDUPWKTYJAVVKVUCVVGBAVVJUUOVUBNVVMVIXDWBAVUCVVIVVG
        BVUTAUUQIUUONKZQZVVIVVGSVUCVVOUUQVUBIUUONYKYLYMZAVVPUMZUURUVBUVHLKZPKVV
        EUVAUUQOKZPKZUUQUVAOKZVVFPKZPKZVVIVVGVVRUURVWAVVSVWCPVVRUURVVECVVDLKZUU
        QOKZPKZVWAVVRUUQICNKZQUURVWGSAVVOVWHUUQAIUWLNKVVOVWHIUUOVCAUWLCINUWOVIV
        JVKUUQCYNUHVVRVWFVVTVVEPVVRVWEUVAUUQOVVRCUUQIVVRCAUYLVVPEYOZVDVVRUUQVVP
        UUQVBQZAUUQUUOYPWIZVDZVVRWTYHVTVIWBVVRUUSUVGLKZUVAOKUUQVVFPKZUVAOKVVSVW
        CVVRVWMVWNUVAOGVTVVRUUSUVGUVAVVPAUWCUWGVVPVUTUWCVVQVVAYQZUWIXQZVVPAUWCU
        XBVWOUXCXQZVVPAUWCUVARQVWOUWRXQZVVPAUWCUVAMYRVWOUWSXQZUUAVVRUUQVVFUVAVW
        LVVRDVVDAUVTVVPFYOVVRVWJVVDUEQVWKUUQWSUHZUKZVWRVWSUUBYSTVVRUURUVBUVHVVP
        AUWCUURRQVWOUWEXQVVRUUSUVAVWPVWRVWSVNVVRUVGUVAVWQVWRVWSVNUUCVVRVWDVVEVV
        TVWCPKZPKVVGVVRVVEVVTVWCVVRVVEVVRUVQVVDUNQVVEUEQVVRCVWIUFVVRVVDVWTUUDVV
        DCVGUJURVVRUVAUUQVWRVWLVVRUUQVWKVMZVNZVVRVWBVVFVVRUUQUVAVWLVWRVWSVNZVXA
        VOYTVVRVXBVVFVVEPVVRVVTVWBPKZVVFPKIVVFPKVXBVVFVVRVXFIVVFPVVRUVAUUQVWRVW
        LVWSVXCUUEVTVVRVVTVWBVVFVXDVXEVXAYTVVRVVFVXAWNYSVIWBYSUUFUUGAVUCUVCUVIB
        VUSVVBVVCUUHUUIWOTAUXKUVPAUXFUXJHAMUXEULVVNVPACUVOUWNADUUOFUYMUKVOUUJWB
        WO $.
    $}

    $( Calculate the difference between successive values of the Bernoulli
       polynomials.  (Contributed by Scott Fenton, 16-May-2014.)  (Proof
       shortened by Mario Carneiro, 26-May-2014.) $)
    bpolydif $p |- ( ( N e. NN /\ X e. CC ) ->
       ( ( N BernPoly ( X + 1 ) ) - ( N BernPoly X ) ) =
       ( N x. ( X ^ ( N - 1 ) ) ) ) $=
      ( vn vk wcel c1 co cbp cmin cexp cmul wceq cv wi oveq1 oveq12d id eqeq12d
      oveq2d imbi2d vm cn cc caddc cfz wral w3a simp1 simp3 wa simpl3 3ad2antl2
      rspccva mpd bpolydiflem 3exp nnsinds imp ) AUBEBUCEZABFUDGZHGZABHGZIGZABA
      FIGZJGZKGZLZUSCMZUTHGZVHBHGZIGZVHBVHFIGZJGZKGZLZNUSDMZUTHGZVPBHGZIGZVPBVP
      FIGZJGZKGZLZNZUSVGNCDAVHVPLZVOWCUSWEVKVSVNWBWEVIVQVJVRIVHVPUTHOVHVPBHOPWE
      VHVPVMWAKWEQWEVLVTBJVHVPFIOSPRTVHALZVOVGUSWFVKVCVNVFWFVIVAVJVBIVHAUTHOVHA
      BHOPWFVHAVMVEKWFQWFVLVDBJVHAFIOSPRTVHUBEZWDDFVLUEGZUFZUSVOWGWIUSUGZUAVHBW
      GWIUSUHWGWIUSUIWJUAMZWHEZUJUSWKUTHGZWKBHGZIGZWKBWKFIGZJGZKGZLZWGWIUSWLUKW
      IWGWLUSWSNZUSWDWTDWKWHVPWKLZWCWSUSXAVSWOWBWRXAVQWMVRWNIVPWKUTHOVPWKBHOPXA
      VPWKWAWQKXAQXAVTWPBJVPWKFIOSPRTUMULUNUOUPUQUR $.
  $}

  ${
    $d K k n $.  $d M k n $.
    $( A closed-form expression for the sum of ` K ` -th powers.  (Contributed
       by Scott Fenton, 16-May-2014.)  This is Metamath 100 proof #77.
       (Revised by Mario Carneiro, 16-Jun-2014.) $)
    fsumkthpow $p |- ( ( K e. NN0 /\ M e. NN0 ) ->
       sum_ n e. ( 0 ... M ) ( n ^ K ) =
       ( ( ( ( K + 1 ) BernPoly ( M + 1 ) ) - ( ( K + 1 ) BernPoly 0 ) ) /
         ( K + 1 ) ) ) $=
      ( vk cn0 wcel wa c1 caddc co cc0 cfz cexp csu cbp cmin cmul oveq2 adantl
      cc cv nn0p1nn adantr nncnd fzfid elfzelz zcnd simpl syl2anr fsumcl nnne0d
      expcl fsummulc2 wceq bpolydif syl2an nn0cn ad2antrr ax-1cn sylancl oveq2d
      cn pncan eqtrd sumeq2dv cz nn0z cuz cfv peano2nn0 syl6eleq elfznn0 nn0cnd
      nn0uz bpolycl syl2anc telfsum2 3eqtr2d mvllmuld ) BEFZCEFZGZBHIJZKCLJZAUA
      ZBMJZANZWCCHIJZOJZWCKOJZPJZWBWCVTWCVBFZWABUBUCZUDZWBWDWFAWBKCUEZWEWDFZWET
      FZVTWFTFWBWPWEWEKCUFUGZVTWAUHWEBULUIZUJWBWCWMUKWBWCWGQJWDWCWFQJZANWDWCWEH
      IJZOJZWCWEOJZPJZANWKWBWDWFWCAWOWNWSUMWBWDXDWTAWBWPGZXDWCWEWCHPJZMJZQJZWTW
      BWLWQXDXHUNWPWMWRWCWEUOUPXEXGWFWCQXEXFBWEMXEBTFZHTFXFBUNVTXIWAWPBUQURUSBH
      VCUTVAVAVDVEWBWCDUAZOJZXCXBWJADWIKCXJWEWCORXJXAWCORXJKWCORXJWHWCORWACVFFV
      TCVGSWBWHEKVHVIWAWHEFVTCVJSVNVKWBXJKWHLJFZGZWCEFZXJTFXKTFVTXNWAXLBVJURXMX
      JXLXJEFWBXJWHVLSVMWCXJVOVPVQVRVS $.
  $}

  ${
    $d X k $.
    $( The Bernoulli polynomials at two.  (Contributed by Scott Fenton,
       8-Jul-2015.) $)
    bpoly2 $p |- ( X e. CC ->
       ( 2 BernPoly X ) =
       ( ( ( X ^ 2 ) - X ) + ( 1 / 6 ) ) ) $=
      ( vk cc wcel c2 cbp co cc0 c1 cmin cfz cbc caddc cdiv cmul wceq c3 syl6eq
      oveq2 oveq12d cexp cv csu c6 2nn0 bpolyval mpan 2m1e1 0p1e1 eqtr4i oveq2i
      cn0 sumeq1i cneg cuz cfv 0nn0 nn0uz eleqtri a1i wo cpr cz 0z ax-mp eleq2i
      fzpr vex elpr bitri wa bcn0 oveq1 oveq1d 2cn subid1i oveq1i bpoly0 oveq2d
      df-3 3cn 3ne0 reccli mulid2i sylan9eqr syl6eqel eqeq2i ax-1cn npcan mp2an
      bcn1 sylbi bpoly1 halfcn subcl mpan2 wne divcan2 mp3an23 syl eqtrd adantr
      eqeltrd jaodan sylan2b fsump1 fsum1 sylancr addsub12 negsubdi2i halfthird
      2ne0 mp3an13 negeqi eqtr3i 6pos gt0ne0ii negsub 3eqtrd syl5eq sqcl subsub
      6cn 6re mp3an3 mpancom ) ACDZEAFGZAEUAGZHEIJGZKGZEBUBZLGZYLAFGZEYLJGZIMGZ
      NGZOGZBUCZJGZYIAIUDNGZJGZJGZYIAJGUUAMGZEULDZYGYHYTPUEBEAUFUGYGYSUUBYIJYGY
      SHHIMGZKGZYRBUCZUUBYKUUGYRBYJUUFHKYJIUUFUHUIUJUKUMYGUUHIQNGZAIENGZJGZMGZA
      UUAUNZMGZUUBYGUUHHHKGYRBUCZEIAFGZENGZOGZMGUULYGYRUURBHHHHUOUPZDYGHULUUSUQ
      URUSUTYLUUGDZYGYLHPZYLUUFPZVAZYRCDZUUTYLHUUFVBZDUVCUUGUVEYLHVCDZUUGUVEPVD
      HVGVEVFYLHUUFBVHVIVJYGUVAUVDUVBYGUVAVKYRUUICUVAYGYRIHAFGZQNGZOGZUUIUVAYMI
      YQUVHOUVAYMEHLGZIYLHELSUUEUVJIPUEEVLVERUVAYNUVGYPQNYLHAFVMUVAYPEHJGZIMGZQ
      UVAYOUVKIMYLHEJSVNUVLEIMGQUVKEIMEVOVPVQVTUJRTTZYGUVIIUUIOGUUIYGUVHUUIIOYG
      UVGIQNAVRVNVSUUIQWAWBWCZWDRZWEUVNWFYGUVBVKYRUUKCUVBYGYRUURUUKUVBYLIPZYRUU
      RPUUFIYLUIWGUVPYMEYQUUQOUVPYMEILGZEYLIELSUUEUVQEPUEEWKVERUVPYNUUPYPENYLIA
      FVMUVPYPYJIMGZEUVPYOYJIMYLIEJSVNECDZICDUVREPVOWHEIWIWJRTTWLZYGUUREUUKENGZ
      OGZUUKYGUUQUWAEOYGUUPUUKENAWMVNVSYGUUKCDZUWBUUKPZYGUUJCDZUWCWNAUUJWOWPZUW
      CUVSEHWQUWDVOXLUUKEWRWSWTXAZWEYGUWCUVBUWFXBXCXDXEUVTXFYGUUOUUIUURUUKMYGUU
      OUVIUUIYGUVFUVICDUUOUVIPVDYGUVIUUICUVOUVNWFYRUVIBHUVMXGXHUVOXAUWGTXAYGUUL
      AUUIUUJJGZMGZUUNUUICDYGUWEUULUWIPUVNWNUUIAUUJXIXMUWHUUMAMUUJUUIJGZUNUWHUU
      MUUJUUIWNUVNXJUWJUUAXKXNXOUKRYGUUACDZUUNUUBPUDYCUDYDXPXQWCZAUUAXRWPXSXTVS
      YICDZYGUUCUUDPZAYAUWMYGUWKUWNUWLYIAUUAYBYEYFXS $.

    $( The Bernoulli polynomials at three.  (Contributed by Scott Fenton,
       8-Jul-2015.) $)
    bpoly3 $p |- ( X e. CC ->
       ( 3 BernPoly X ) =
       ( ( ( X ^ 3 ) - ( ( 3 / 2 ) x. ( X ^ 2 ) ) ) + ( ( 1 / 2 ) x. X ) ) ) $=
      ( vk cc wcel c3 cbp co cc0 c1 cmin caddc cdiv cmul wceq oveq2i oveq1d 3cn
      c2 c4 oveq12d cexp cfz cv cbc csu cn0 3nn0 bpolyval mpan 3m1e2 df-2 eqtri
      sumeq1i c6 cuz cfv 1eluzge0 a1i w3o ctp cpr csn cun cz ax-mp 0p1e1 preq2i
      0z fzpr 3eqtr3ri sneqi uneq12i df-tp fzsuc 3eqtr4ri eleq2i vex eltp bitri
      oveq2 bcn0 syl6eq oveq1 subid1i oveq1i df-4 eqtr4i bpoly0 oveq2d 4cn 4ne0
      wa reccli mulid2i sylan9eqr syl6eqel bcn1 ax-1cn npcan mp2an bpoly1 subcl
      halfcn mpan2 wne 3ne0 divcan2 mp3an23 syl eqtrd eqeltrd bcn2 2cn divcan4i
      adantr 2ne0 2p1e3 subaddrii 2nn0 bpolycl 2cnne0 div12 mp3an13 sylancl 6cn
      divcli syl2anc subdi 3eqtr2d 3eqtrd mulcl eqeq2i fsump1 cneg 2t2e4 pm3.2i
      sylancr sylan2b divcan5 mp3an mulcom bpoly2 sqcl 6re 6pos gt0ne0ii subsub
      id mp3an3 mp3an1 subcld 3jaodan sylbir 0nn0 nn0uz eleqtri wo jaodan sylbi
      elpr fsum1 syl5eqr addsub12d negsubdi2d addsub12 mulcli negsub negsubdi2i
      addcl mul12i 3t2e6 3eqtr3i divmuldivi 2t1e2 oveq12i divdiri negeqi eqtr3i
      subcli negcli subeq0i subadd4d mp3an12 divsubdir 2div2e1 3eqtr3rd subid1d
      mpbir subdir mulid2 3eqtr3a negeqd eqtr3d negsubd syl5eq expcl subsubd )
      ACDZEAFGZAEUAGZHEIJGZUBGZEBUCZUDGZUXCAFGZEUXCJGZIKGZLGZMGZBUEZJGZUWTERLGZ
      ARUAGZMGZIRLGZAMGZJGZJGUWTUXNJGUXPKGEUFDZUWRUWSUXKNUGBEAUHUIUWRUXJUXQUWTJ
      UWRUXJHIIKGZUBGZUXIBUEZUXQUXBUXTUXIBUXAUXSHUBUXARUXSUJUKULOUMUWRUYAHIUBGZ
      UXIBUEZERAFGZRLGZMGZKGUYCUXNUXLAIUNLGZJGZMGZJGZKGZUXQUWRUXIUYFBHIIHUOUPZD
      ZUWRUQURUXCUXTDZUWRUXCHNZUXCINZUXCRNZUSZUXICDZUYNUXCHIRUTZDUYRUXTUYTUXCHI
      VAZRVBZVCUYBUXSVBZVCZUYTUXTVUAUYBVUBVUCHHIKGZUBGZHVUEVAZUYBVUAHVDDZVUFVUG
      NVHHVIVEZVUEIHUBVFOZVUEIHVFVGZVJRUXSUKVKVLHIRVMUYMUXTVUDNUQHIVNVEVOVPUXCH
      IRBVQZVRVSUWRUYOUYSUYPUYQUWRUYOWLUXIISLGZCUYOUWRUXIIHAFGZSLGZMGZVUMUYOUXD
      IUXHVUOMUYOUXDEHUDGZIUXCHEUDVTUXRVUQINUGEWAVEWBUYOUXEVUNUXGSLUXCHAFWCUYOU
      XGEHJGZIKGZSUYOUXFVURIKUXCHEJVTPVUSEIKGSVUREIKEQWDWEWFWGWBTTZUWRVUPIVUMMG
      VUMUWRVUOVUMIMUWRVUNISLAWHPWIVUMSWJWKWMZWNWBZWOVVAWPZUWRUYPWLUXIAUXOJGZCU
      YPUWRUXIEIAFGZELGZMGZVVDUYPUXDEUXHVVFMUYPUXDEIUDGZEUXCIEUDVTUXRVVHENUGEWQ
      VEWBUYPUXEVVEUXGELUXCIAFWCUYPUXGUXAIKGZEUYPUXFUXAIKUXCIEJVTPECDZICDZVVIEN
      QWREIWSWTWBTTZUWRVVGEVVDELGZMGZVVDUWRVVFVVMEMUWRVVEVVDELAXAPWIUWRVVDCDZVV
      NVVDNZUWRUXOCDZVVOXCAUXOXBXDZVVOVVJEHXEZVVPQXFVVDEXGXHXIXJZWOUWRVVOUYPVVR
      XOXKZUWRUYQWLUXIUYJCUYQUWRUXIUYFUYJUYQUXDEUXHUYEMUYQUXDERUDGZEUXCREUDVTVW
      BEUXAMGZRLGZEUXRVWBVWDNUGEXLVEVWDERMGZRLGEVWCVWERLUXAREMUJOWEERQXMXPXNULU
      LWBUYQUXEUYDUXGRLUXCRAFWCUYQUXGERJGZIKGZRUYQUXFVWFIKUXCREJVTPVWGUXSRVWFII
      KERIQXMWRXQXRZWEUKWGWBTTZUWRUYFUYDUXLMGZUXLUYDMGZUYJUWRUYDCDZUYFVWJNZRUFD
      UWRVWLXSRAXTUIZVVJVWLRCDZRHXEWLZVWMQYAEUYDRYBYCXIUWRVWLUXLCDZVWJVWKNVWNER
      QXMXPYFZUYDUXLUUAYDUWRVWKUXLUXMAJGUYGKGZMGUXLUXMUYHJGZMGZUYJUWRUYDVWSUXLM
      AUUBWIUWRVWTVWSUXLMUWRUXMCDZUWRVWTVWSNZAUUCZUWRUUHZVXBUWRUYGCDZVXCUNYEUNU
      UDUUEUUFZWMZUXMAUYGUUGUUIYGWIUWRVXBUYHCDZVXAUYJNZVXDUWRVXFVXIVXHAUYGXBXDZ
      VWQVXBVXIVXJVWRUXLUXMUYHYHUUJYGYIYJZWOUWRUYJCDUYQUWRUXNUYIUWRVWQVXBUXNCDV
      WRVXDUXLUXMYKYQZUWRVWQVXIUYICDVWRVXKUXLUYHYKYQZUUKXOXKUULYRUXCUXSNUYQUXIU
      YFNRUXSUXCUKYLVWIUUMYMUWRUYFUYJUYCKVXLWIUWRUYKUXNVUMVVDKGZUYIJGZKGZUXNUXP
      YNZKGUXQUWRUYKVXOUYJKGVXQUWRUYCVXOUYJKUWRUYCVUFUXIBUEZVXOVUFUYBUXIBVUJUMU
      WRVXSHHUBGUXIBUEZVVGKGVXOUWRUXIVVGBHHHUYLDUWRHUFUYLUUNUUOUUPURUXCVUFDZUWR
      UYOUYPUUQZUYSVYAUXCVUADVYBVUFVUAUXCVUFVUGVUAVUIVUKULVPUXCHIVULUUTVSUWRUYO
      UYSUYPVVCVWAUURYRUXCVUENUYPUXIVVGNVUEIUXCVFYLVVLUUSYMUWRVXTVUMVVGVVDKUWRV
      XTVUPVUMUWRVUHVUPCDVXTVUPNVHUWRVUPVUMCVVBVVAWPUXIVUPBHVUTUVAYQVVBXJVVTTXJ
      UVBPUWRVXOUXNUYIUWRVUMCDZVVOVXOCDVVAVVRVUMVVDUVIYQZVXMVXNUVCXJUWRVXPVXRUX
      NKUWRUYIVXOJGZYNVXPVXRUWRUYIVXOVXNVYDUVDUWRVYEUXPUWRVYEUXLAMGZUXLUYGMGZJG
      ZAVUMUXOJGZKGZJGVYFVYGYNZKGZVYJJGZUXPUWRUYIVYHVXOVYJJVWQUWRVXFUYIVYHNVWRV
      XHUXLAUYGYHYCVYCUWRVVQVXOVYJNVVAXCVUMAUXOUVEYCTUWRVYLVYHVYJJUWRVYFCDZVYGC
      DVYLVYHNVWQUWRVYNVWRUXLAYKUIZUXLUYGVWRVXHUVFZVYFVYGUVGYDPUWRVYFAJGZVYIVYK
      JGZJGVYQHJGZVYMUXPVYRHVYQJVYRHNVYIVYKNUXOVUMJGZYNVYIVYKUXOVUMXCVVAUVHVYTV
      YGEIMGZRUNMGZLGZVUMVYGVYTWUCWUAESMGZLGZVUMWUBWUDWUALRVWEMGERRMGZMGWUBWUDR
      ERXMQXMUVJVWEUNRMUVKOWUFSEMYOOUVLOVVKSCDZSHXEZWLVVJVVSWLWUEVUMNWRWUGWUHWJ
      WKYPVVJVVSQXFYPISEYSYTULERIUNQXMWRYEXPVXGUVMUXOVUMVUMXCVVAVVARIMGZWUFLGZU
      XSSLGUXOVUMVUMKGWUIUXSWUFSLWUIRUXSUVNUKULYOUVOVVKVWPVWPWUJUXONWRYAYAIRRYS
      YTIISWRWRWJWKUVPVJXRVOUVQUVRVYIVYKVUMUXOVVAXCUVSZVYGVYPUVTZUWAUWHOUWRVYFA
      VYIVYKVYOVXEVYICDUWRWUKURVYKCDUWRWULURUWBUWRVYSUXPHJGUXPUWRVYQUXPHJUWRUXL
      IJGZAMGZVYFIAMGZJGZUXPVYQVWQVVKUWRWUNWUPNVWRWRUXLIAUWIUWCWUNUXPNUWRWUMUXO
      AMVWFRLGZUXLRRLGZJGZUXOWUMVVJVWOVWPWUQWUSNQXMYAERRUWDYTVWFIRLVWHWEWURIUXL
      JUWEOVJWEURUWRWUOAVYFJAUWJWIUWFPUWRUXPVVQUWRUXPCDXCUXOAYKUIZUWGXJUWKYIUWL
      UWMWIUWRUXNUXPVXMWUTUWNYJYJUWOWIUWRUWTUXNUXPUWRUXRUWTCDUGAEUWPXDVXMWUTUWQ
      YJ $.

    $( The Bernoulli polynomials at four.  (Contributed by Scott Fenton,
       8-Jul-2015.) $)
    bpoly4 $p |- ( X e. CC ->
       ( 4 BernPoly X ) =
       ( ( ( ( X ^ 4 ) - ( 2 x. ( X ^ 3 ) ) ) + ( X ^ 2 ) ) - ( 1 / ; 3 0 ) ) )
        $=
      ( vk cc wcel c4 co cc0 c1 cmin cfz caddc cdiv cmul c2 c6 wceq a1i oveq12d
      c3 2cn cbp cexp cv cbc csu c5 cdc cn0 4nn0 bpolyval mpan 4m1e3 df-3 eqtri
      oveq2i sumeq1i cuz cfv 2eluzge0 wa cz elfzelz bccl sylancr nn0cnd elfznn0
      adantl bpolycl sylan ancoms 4re zred resubcld peano2re syl recnd wne 1red
      clt wbr eleq2i 3re elfzle2 sylbir divcld mulcld eqeq2i oveq2 syl6eq oveq1
      cr 3lt4 oveq1d 4cn 3cn ax-1cn subaddrii oveq1i eqtr4i fsump1 sseli sylan2
      df-2 0p1e1 eleqtri ax-mp 2p1e3 5cn 0re gtneii oveq2d reccli mulid2i eqtrd
      0nn0 3ne0 div12d 3t2e6 divmuli mpbir mulcomd syl5eq 3nn0 2ne0 expcl mpan2
      eqnetri subcld subsubd addcld adddid subdid recidi mulassd 3eqtr3a add12d
      6cn addassd 3eqtr2d 3eqtrd lelttrd posdifd mpbid addgt0d gt0ne0d 1eluzge0
      0lt1 4bc3eq4 3p1e4 fzssp1 sseqtr4i 4bc2eq6 2p2e4 nn0uz wss 3nn nnuz fzss2
      cn 3sstr4i bcn1 df-4 sylbi 5pos bcn0 subid1i 4p1e5 fsum1 bpoly0 1nn0 mp1i
      0z nn0cn 4ne0 divcan2d bpoly1 syl5eqr 2nn0 bpoly2 4d2e2 bpoly3 sqcl deccl
      nn0cni dfdec10 10re recni mulcli addid1i 10pos mulne0i 6pos divcli mulid2
      addcomd divcan2i syl5reqr mul32i eqeltri divreci 3eqtr3ri addsub12d add4d
      id subsub4d subdird mulid2d 2txmxeqx subadd23d subcli halfthird 5recm6rec
      3eqtr3d npncand eqtr3d addsubassd 3eqtr4d ) ACDZEAUAFZAEUBFZGEHIFZJFZEBUC
[encoded data, 5040 characters]
      IUXORYSYTXKYSYTXKUXRVULUYPVUNUXRUXTVUKVYJVYLYHVYMVYQUXPUXQYT $.
  $}

  ${
    $d T k $.
    $( Express the sum of cubes in closed terms.  (Contributed by Scott Fenton,
       16-Jun-2015.) $)
    fsumcube $p |- ( T e. NN0 -> sum_ k e. ( 0 ... T ) ( k ^ 3 ) =
            ( ( ( T ^ 2 ) x. ( ( T + 1 ) ^ 2 ) ) / 4 ) ) $=
      ( wcel cc0 co c3 cexp c1 caddc cmin cdiv c2 cmul c4 wceq cc oveq2i oveq2d
      cbp syl cn0 cfz cv csu 3nn0 fsumkthpow mpan df-4 oveq1i oveq12i cdc nn0cn
      cneg peano2cn bpoly4 cn 4nn 0exp ax-mp 3nn 2t0e0 eqtri 0m0e0 sq0 00id 0cn
      df-neg 3eqtr4i a1i oveq12d 4nn0 expcl mpan2 2cn mulcl sylancr subcld sqcl
      addcld 0nn0 deccl nn0cni nn0rei 10pos declti gt0ne0ii reccli subcl subneg
      sylancl npcan 2p2e4 eqcomi df-3 expadd mp3an23 sqcld mulid1d eqcomd exp1d
      2nn0 1nn0 eqeltrd mul12 mp3an2i subdid 3eqtr4d oveq1d ax-1cn adddi mp3an3
      syl2anc eqtr4d mp3an13 2t1e2 syl6eq addsubass 2m1e1 subsub binom21 addass
      eqtrd mvrraddd 3eqtr3d mulcomd 3eqtrd syl5eq syl5eqr ) AUACZDAUBEBUCFGEBU
      DZFHIEZAHIEZSEZYKDSEZJEZYKKEZALGEZYLLGEZMEZNKEZFUACZYIYJYPOUEBFAUFUGYIYPN
      YLSEZNDSEZJEZNKEYTUUDYONYKKUUBYMUUCYNJNYKYLSUHUINYKDSUHUIUJUHUJYIUUDYSNKY
      IUUDYLNGEZLYLFGEZMEZJEZYRIEZHFDUKZKEZJEZUUKUMZJEZUULUUKIEZYSYIUUBUULUUCUU
      MJYIYLPCZUUBUULOYIAPCZUUPAULZAUNZTYLUOTUUCUUMOYIDNGEZLDFGEZMEZJEZDLGEZIEZ
      UUKJEZDUUKJEUUCUUMUVEDUUKJUVEDDIEDUVCDUVDDIUVCDDJEDUUTDUVBDJNUPCUUTDOUQNU
      RUSUVBLDMEDUVADLMFUPCUVADOUTFURUSQVAVBUJVCVBVDUJVEVBUIDPCUUCUVFOVFDUOUSUU
      KVGVHVIVJYIUULPCZUUKPCZUUNUUOOYIUUIPCZUVHUVGYIUUQUVIUURUUQUUPUVIUUSUUPUUH
      YRUUPUUEUUGUUPNUACUUEPCVKYLNVLVMUUPLPCZUUFPCZUUGPCVNUUPUUAUVKUEYLFVLVMLUU
      FVOVPVQYLVRVSTZTUUJUUJFDUEVTWAZWBUUJUUJUVMWCFDDUTVTVTWDWEWFWGZUUIUUKWHWJU
      VNUULUUKWIWJYIUUOUUIYSYIUUQUUOUUIOZUURUUQUVIUVHUVOUVLUVNUUIUUKWKWJTYIUUIY
      LLLIEZGEZLYLLHIEZGEZMEZJEZYRIEZYSUUHUWAYRIUUEUVQUUGUVTJNUVPYLGUVPNWLWMQUU
      FUVSLMFUVRYLGWNQQUJUIYIUUQUWBYSOUURUUQUWBYRYRMEZLYRYLHGEZMEZMEZJEZYRHMEZI
      EZYSUUQUWAUWGYRUWHIUUQUUPUWAUWGOUUSUUPUVQUWCUVTUWFJUUPLUACZUWJUVQUWCOXAXA
      YLLLWOWPUUPUVSUWELMUUPUWJHUACUVSUWEOXAXBYLLHWOWPRVJTUUQUWHYRUUQYRUUQYLUUS
      WQZWRWSVJUUQUWIYRYRLYLMEZJEZHIEZMEZYRYQMEYSUUQUWIYRUWMMEZUWHIEZUWOUUQUWGU
      WPUWHIUUQUWCYRLUWDMEZMEZJEUWCYRUWLMEZJEUWGUWPUUQUWSUWTUWCJUUQUWRUWLYRMUUQ
      UWDYLLMUUQYLUUSWTZRRRUUQUWFUWSUWCJUVJUUQYRPCZUWDPCUWFUWSOVNUWKUUQUWDYLPUX
      AUUSXCLYRUWDXDXERUUQYRYRUWLUWKUWKUUQUVJUUPUWLPCZVNUUSLYLVOVPZXFXGXHUUQUXB
      UWMPCZUWOUWQOZUWKUUQYRUWLUWKUXDVQUXBUXEHPCZUXFXIYRUWMHXJXKXLXMUUQUWNYQYRM
      UUQYRUWLHJEZJEZYRLAMEZHIEZJEUWNYQUUQUXHUXKYRJUUQUXHUXJLIEZHJEZUXKUUQUWLUX
      LHJUUQUWLUXJLHMEZIEZUXLUVJUUQUXGUWLUXOOVNXILAHXJXNUXNLUXJIXOQXPXHUUQUXMUX
      JLHJEZIEZUXKUUQUXJPCZUXMUXQOZUVJUUQUXRVNLAVOUGZUXRUVJUXGUXSVNXIUXJLHXQWPT
      UXPHUXJIXRQXPYBRUUQUXBUXCUXIUWNOZUWKUXDUXBUXCUXGUYAXIYRUWLHXSXKXLUUQYRYQU
      XKAVRZUUQUXRUXKPCUXTUXJUNTUUQYRYQUXJIEHIEZYQUXKIEZAXTUUQYQPCZUXRUYCUYDOZU
      YBUXTUYEUXRUXGUYFXIYQUXJHYAXKXLYBYCYDRUUQYRYQUWKUYBYEYFYBTYGYBYFXHYHYB $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Elementary trigonometry
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The exponential, sine, and cosine functions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c exp $. $( Exponential function. $)
  $c _e $. $( Letter e (Euler's constant = 2.71828...) $)
  $c sin $. $( Sine function. $)
  $c cos $. $( Cosine function. $)
  $c tan $. $( Tangent function. $)
  $c _pi $. $( pi = 3.14159... $)

  $( Extend class notation to include the exponential function. $)
  ce $a class exp $.

  $( Extend class notation to include Euler's constant = 2.7182818.... $)
  ceu $a class _e $.

  $( Extend class notation to include the sine function. $)
  csin $a class sin $.

  $( Extend class notation to include the cosine function. $)
  ccos $a class cos $.

  $( Extend class notation to include the tangent function. $)
  ctan $a class tan $.

  $( Extend class notation to include pi = 3.14159.... $)
  cpi $a class _pi $.

  ${
    $d k x $.
    $( Define the exponential function.  (Contributed by NM, 14-Mar-2005.) $)
    df-ef $a |- exp = ( x e. CC |->
                        sum_ k e. NN0 ( ( x ^ k ) / ( ! ` k ) ) ) $.

    $( Define Euler's constant 2.71828....  (Contributed by NM,
       14-Mar-2005.) $)
    df-e $a |- _e = ( exp ` 1 ) $.

    $( Define the sine function.  (Contributed by NM, 14-Mar-2005.) $)
    df-sin $a |- sin = ( x e. CC |-> ( ( ( exp ` ( _i x. x ) ) -
                         ( exp ` ( -u _i x. x ) ) ) / ( 2 x. _i ) ) ) $.

$(
    @( Define the cosine function. @)
    df-cos @a |- cos =
        { <. x , y >. | ( x e. CC /\ y = ( sin ` ( x + ( _pi / 2 ) ) ) ) } @.
$)

    $( Define the cosine function.  (Contributed by NM, 14-Mar-2005.) $)
    df-cos $a |- cos = ( x e. CC |-> ( ( ( exp ` ( _i x. x ) ) +
                         ( exp ` ( -u _i x. x ) ) ) / 2 ) ) $.

    $( Define the tangent function.  We define it this way for ~ cmpt , which
       requires the form ` ( x e. A |-> B ) ` .  (Contributed by Mario
       Carneiro, 14-Mar-2014.) $)
    df-tan $a |- tan = ( x e. ( `' cos " ( CC \ { 0 } ) ) |->
                       ( ( sin ` x ) / ( cos ` x ) ) ) $.

    $( Define pi = 3.14159..., which is the smallest positive number whose sine
       is zero.  Definition of pi in [Gleason] p. 311.  (Contributed by Paul
       Chapman, 23-Jan-2008.)  (Revised by AV, 14-Sep-2020.) $)
    df-pi $a |- _pi = inf ( ( RR+ i^i ( `' sin " { 0 } ) ) , RR , < ) $.
  $}

  $( Closure of a term in the series expansion of the exponential function.
     (Contributed by Paul Chapman, 11-Sep-2007.) $)
  eftcl $p |- ( ( A e. CC /\ K e. NN0 ) ->
                 ( ( A ^ K ) / ( ! ` K ) ) e. CC ) $=
    ( cc wcel cn0 wa cexp co cfa cfv expcl faccl nncnd adantl cc0 facne0 divcld
    wne ) ACDZBEDZFABGHBIJZABKTUACDSTUABLMNTUAORSBPNQ $.

  $( The terms of the series expansion of the exponential function of a real
     number are real.  (Contributed by Paul Chapman, 15-Jan-2008.) $)
  reeftcl $p |- ( ( A e. RR /\ K e. NN0 ) ->
                   ( ( A ^ K ) / ( ! ` K ) ) e. RR ) $=
    ( cr wcel cn0 wa cexp co cfa cfv reexpcl cn faccl adantl nndivred ) ACDZBED
    ZFABGHBIJZABKQRLDPBMNO $.

  $( The absolute value of a term in the series expansion of the exponential
     function.  (Contributed by Paul Chapman, 23-Nov-2007.) $)
  eftabs $p |- ( ( A e. CC /\ K e. NN0 ) ->
                 ( abs ` ( ( A ^ K ) / ( ! ` K ) ) ) =
                 ( ( ( abs ` A ) ^ K ) / ( ! ` K ) ) ) $=
    ( cc wcel cn0 wa cexp co cfa cfv cdiv cabs expcl faccl adantl nncnd cc0 wne
    cn facne0 absdivd absexp nnred nnnn0d nn0ge0d absidd oveq12d eqtrd ) ACDZBE
    DZFZABGHZBIJZKHLJULLJZUMLJZKHALJBGHZUMKHUKULUMABMUKUMUJUMSDUIBNOZPUJUMQRUIB
    TOUAUKUNUPUOUMKABUBUKUMUKUMUQUCUKUMUKUMUQUDUEUFUGUH $.

  ${
    $d k n A $.  $d k F $.  $d n N $.
    eftval.1 $e |- F = ( n e. NN0 |-> ( ( A ^ n ) / ( ! ` n ) ) ) $.
    $( The value of a term in the series expansion of the exponential function.
       (Contributed by Paul Chapman, 21-Aug-2007.)  (Revised by Mario Carneiro,
       28-Apr-2014.) $)
    eftval $p |- ( N e. NN0 -> ( F ` N ) = ( ( A ^ N ) / ( ! ` N ) ) ) $=
      ( cv cexp co cfa cfv cdiv cn0 wceq oveq2 fveq2 oveq12d ovex fvmpt ) BDABF
      ZGHZSIJZKHADGHZDIJZKHLCSDMTUBUAUCKSDAGNSDIOPEUBUCKQR $.

    $( Lemma for ~ efcl .  The series that defines the exponential function
       converges, in the case where its argument is nonzero.  The ratio test
       ~ cvgrat is used to show convergence.  (Contributed by NM, 26-Apr-2005.)
       (Proof shortened by Mario Carneiro, 28-Apr-2014.) $)
    efcllem $p |- ( A e. CC -> seq 0 ( + , F ) e. dom ~~> ) $=
      ( cc wcel c1 c2 cdiv co cc0 cabs cfv cmul cr clt wbr cle wceq syl cfl cuz
      vk cn0 nn0uz eqid halfre a1i halflt1 abscl remulcl sylancr absge0 wa 0le2
      2re mulge0 mpanl12 syl2anc flge0nn0 cv cexp cfa eftval adantl eftcl caddc
      eqeltrd adantr eluznn0 sylan nn0p1nn nndivred reexpcld faccl expcl syldan
      cn absge0d absexp breqtrd nnred nngt0d divge0 syl22anc peano2nn0 eluzp1p1
      nn0red flltp1 eluzle ltletrd recnd 2cn sylancl nncnd mulid2d 3brtr4d 2pos
      mulcom wb pm3.2i 1red jca lt2mul2div mpbid wi ltle lemul2ad fveq2d expp1d
      mpd eqtrd nnnn0d nn0ge0d absidd oveq12d nnne0d absdivd divmuldivd 3eqtr4d
      facp1 halfcn abscld eftabs oveq1d cvgrat ) AEFZGHIJZUCCKHALMZNJZUAMZYKUBM
      ZUDUEYLUFYHOFZYGUGUHYHGPQYGUIUHYGYJOFZKYJRQZYKUDFZYGHOFZYIOFZYNUPAUJZHYIU
      KULZYGYRKYIRQZYOYSAUMYQKHRQYRUUAUNYOUPUOHYIUQURUSYJUTUSZYGUCVAZUDFZUNUUCC
      MZAUUCVBJZUUCVCMZIJZEUUDUUEUUHSZYGABCUUCDVDZVEAUUCVFVHZYGUUCYLFZUNZYIUUCV
      BJZUUGIJZYIUUCGVGJZIJZNJZUUOYHNJZUUPCMZLMZYHUUELMZNJZRUUMUUQYHUUOUUMYIUUP
      YGYRUULYSVIZUUMUUDUUPVRFYGYPUULUUDUUBUUCYKVJVKZUUCVLTZVMZYMUUMUGUHUUMUUNU
      UGUUMYIUUCUVDUVEVNZUUMUUDUUGVRFUVEUUCVOTZVMUUMUUNOFKUUNRQUUGOFKUUGPQKUUOR
      QUVHUUMKUUFLMZUUNRUUMUUFYGUULUUDUUFEFUVEAUUCVPVQVSYGUULUUDUVJUUNSUVEAUUCV
      TVQWAUUMUUGUVIWBUUMUUGUVIWCUUNUUGWDWEUUMUUQYHPQZUUQYHRQZUUMYIHNJZGUUPNJZP
      QZUVKUUMYJUUPUVMUVNPUUMYJYKGVGJZUUPYGYNUULYTVIZYGUVPOFUULYGUVPYGYPUVPUDFU
      UBYKWFTWHVIUUMUUPUVFWBZUUMYNYJUVPPQUVQYJWITUUMUUPUVPUBMFZUVPUUPRQUULUVSYG
      YKUUCWGVEUVPUUPWJTWKUUMYIEFHEFUVMYJSUUMYIUVDWLZWMYIHWSWNUUMUUPUUMUUPUVFWO
      ZWPWQUUMYRYQKHPQZUNZGOFUUPOFZKUUPPQZUNUVOUVKWTUVDUWCUUMYQUWBUPWRXAUHUUMXB
      UUMUWDUWEUVRUUMUUPUVFWCXCYIHGUUPXDWEXEUUMUUQOFYMUVKUVLXFUVGUGUUQYHXGWNXKX
      HUUMUVAAUUPVBJZUUPVCMZIJZLMZUURUUMUUTUWHLUUMUUPUDFZUUTUWHSUUMUUDUWJUVEUUC
      WFTZABCUUPDVDTXIUUMUWFLMZUWGLMZIJUUNYINJZUUGUUPNJZIJUWIUURUUMUWLUWNUWMUWO
      IUUMUWLYIUUPVBJZUWNYGUULUWJUWLUWPSUWKAUUPVTVQUUMYIUUCUVTUVEXJXLUUMUWMUWGU
      WOUUMUWGUUMUWGUUMUWJUWGVRFUWKUUPVOTZWBUUMUWGUUMUWGUWQXMXNXOUUMUUDUWGUWOSU
      VEUUCYATXLXPUUMUWFUWGYGUULUWJUWFEFUWKAUUPVPVQUUMUWGUWQWOUUMUWGUWQXQXRUUMU
      UNUUGYIUUPUUMUUNUVHWLUUMUUGUVIWOUVTUWAUUMUUGUVIXQUUMUUPUVFXQXSXTXLUUMUVCU
      VBYHNJZUUSUUMYHEFUVBEFUVCUWRSYBUUMUVBUUMUUEYGUULUUDUUEEFUVEUUKVQYCWLYHUVB
      WSULUUMUVBUUOYHNUUMUVBUUHLMZUUOUUMUUEUUHLUUMUUDUUIUVEUUJTXIYGUULUUDUWSUUO
      SUVEAUUCYDVQXLYEXLWQYF $.

    $( The series defining the exponential function converges in the (trivial)
       case of a zero argument.  (Contributed by Steve Rodriguez, 7-Jun-2006.)
       (Revised by Mario Carneiro, 28-Apr-2014.) $)
    ef0lem $p |- ( A = 0 -> seq 0 ( + , F ) ~~> 1 ) $=
      ( vk cc0 wceq caddc cfv c1 wcel cn wa cn0 simpr nn0uz cexp co cfa cdiv cv
      cseq cli csn cuz cif syl6eleqr elnn0 sylib nnnn0 adantl eftval oveq1 0exp
      wo sylan9eq oveq1d faccl nncn nnne0 div0d 3syl 3eqtrd wn velsn necon3bbii
      syl sylibr iffalsed eqtr4d fveq2 0exp0e1 syl6eq 0nn0 ax-mp oveq2i 1div1e1
      wne fac0 eqtr2i 3eqtr4g sylan9eqr iftrued jaodan eleqtri a1i 1cnd cfz wss
      syldan cz 0z fzsn eqimss2i fsumcvg2 seq1i breqtrd ) AFGZHCFUBZFWSIJUCWRFU
      DZJECFFWREUAZFUEIZKZXALKZXAFGZUOZXACIZXAWTKZJFUFZGZWRXCMZXANKZXFXKXAXBNWR
      XCOPUGXAUHUIWRXDXJXEWRXDMZXGFXIXMXGAXAQRZXASIZTRZFXOTRZFXMXLXGXPGXDXLWRXA
      UJUKZABCXADULVGXMXNFXOTWRXDXNFXAQRFAFXAQUMXAUNUPUQXMXLXOLKZXQFGXRXAURXSXO
      XOUSXOUTVAVBVCXMXHJFXDXHVDZWRXDXAFVRXTXAUTXHXAFEFVEZVFVHUKVIVJWRXEMZXGJXI
      XEWRXGFCIZJXAFCVKWRAFQRZFSIZTRZJYETRZYCJWRYDJYETWRYDFFQRJAFFQUMVLVMUQFNKY
      CYFGVNABCFDULVOYGJJTRJYEJJTVSVPVQVTWAZWBYBXHJFYBXEXHWRXEOYAVHWCVJWDWJFXBK
      WRFNXBVNPWEWFWRXHMWGWTFFWHRZWIWRYIWTFWKKYIWTGWLFWMVOWNWFWOWRJHCFWLYHWPWQ
      $.
  $}

  ${
    $d x k A $.
    $( Value of the exponential function.  (Contributed by NM, 8-Jan-2006.)
       (Revised by Mario Carneiro, 10-Nov-2013.) $)
    efval $p |- ( A e. CC ->
                 ( exp ` A ) = sum_ k e. NN0 ( ( A ^ k ) / ( ! ` k ) ) ) $=
      ( vx cn0 cv cexp co cfa cfv cdiv csu cc wceq oveq1 oveq1d sumeq2sdv df-ef
      ce sumex fvmpt ) CADCEZBEZFGZUBHIZJGZBKDAUBFGZUDJGZBKLRUAAMZDUEUGBUHUCUFU
      DJUAAUBFNOPCBQDUGBST $.
  $}

  $( Value of Euler's constant ` _e ` = 2.71828...  (Contributed by Steve
     Rodriguez, 5-Mar-2006.) $)
  esum $p |- _e = sum_ k e. NN0 ( 1 / ( ! ` k ) ) $=
    ( ceu c1 ce cfv cn0 cv cexp co cfa cdiv csu df-e cc wcel ax-1cn efval ax-mp
    wceq cz nn0z 1exp syl oveq1d sumeq2i 3eqtri ) BCDEZFCAGZHIZUHJEZKIZALZFCUJK
    IZALMCNOUGULSPCAQRFUKUMAUHFOZUICUJKUNUHTOUICSUHUAUHUBUCUDUEUF $.

  ${
    $d k n x $.
    $( Domain and codomain of the exponential function.  (Contributed by Paul
       Chapman, 22-Oct-2007.)  (Proof shortened by Mario Carneiro,
       28-Apr-2014.) $)
    eff $p |- exp : CC --> CC $=
      ( vx vk vn cc cn0 cv cexp co cfa cfv cdiv csu ce df-ef wcel cc0 nn0uz 0zd
      cmpt wceq eqid eftval adantl eftcl efcllem isumcl fmpti ) ADDEAFZBFZGHUII
      JKHZBLMABNUHDOZUJBCEUHCFZGHULIJKHSZPEQUKRUIEOUIUMJUJTUKUHCUMUIUMUAZUBUCUH
      UIUDUHCUMUNUEUFUG $.

    $( Closure law for the exponential function.  (Contributed by NM,
       8-Jan-2006.)  (Revised by Mario Carneiro, 10-Nov-2013.) $)
    efcl $p |- ( A e. CC -> ( exp ` A ) e. CC ) $=
      ( cc ce eff ffvelrni ) BBACDE $.
  $}

  ${
    $d k n A $.  $d k F $.
    efcvg.1 $e |- F = ( n e. NN0 |-> ( ( A ^ n ) / ( ! ` n ) ) ) $.
    $( Value of the exponential function.  (Contributed by Mario Carneiro,
       29-Apr-2014.) $)
    efval2 $p |- ( A e. CC -> ( exp ` A ) = sum_ k e. NN0 ( F ` k ) ) $=
      ( cc wcel ce cfv cn0 cv cexp co cfa cdiv csu efval eftval sumeq2i syl6eqr
      ) AFGAHIJABKZLMUANIOMZBPJUADIZBPABQJUCUBBACDUAERST $.

    $( The series that defines the exponential function converges to it.
       (Contributed by NM, 9-Jan-2006.)  (Revised by Mario Carneiro,
       28-Apr-2014.) $)
    efcvg $p |- ( A e. CC -> seq 0 ( + , F ) ~~> ( exp ` A ) ) $=
      ( vk cc wcel caddc cc0 cseq cn0 cv cexp co cfa cfv cdiv csu ce cli eftval
      nn0uz 0zd wceq adantl eftcl efcllem isumclim2 efval breqtrrd ) AFGZHCIJKA
      ELZMNULOPQNZERASPTUKUMECIKUBUKUCULKGULCPUMUDUKABCULDUAUEAULUFABCDUGUHAEUI
      UJ $.
  $}

  ${
    $d j k n A $.  $d j F $.
    efcvgfsum.1 $e |- F = ( n e. NN0 |->
                        sum_ k e. ( 0 ... n ) ( ( A ^ k ) / ( ! ` k ) ) ) $.
    $( Exponential function convergence in terms of a sequence of partial
       finite sums.  (Contributed by NM, 10-Jan-2006.)  (Revised by Mario
       Carneiro, 28-Apr-2014.) $)
    efcvgfsum $p |- ( A e. CC -> F ~~> ( exp ` A ) ) $=
      ( vj cc wcel caddc cn0 cv cexp co cfa cfv cdiv cc0 wceq cfz wfn cmpt cseq
      ce cli wral wa csu oveq2 sumeq1d sumex adantl elfznn0 eqid eftval syl cuz
      fvmpt simpr nn0uz syl6eleq simpll eftcl syl2anc eqtrd ralrimiva wb fnmpti
      fsumser cz 0z seqfn ax-mp fneq2i mpbir eqfnfv mp2an sylibr efcvg eqbrtrd
      ) AGHZDICJACKZLMWANOPMUAZQUBZAUCOUDVTFKZDOZWDWCOZRZFJUEZDWCRZVTWGFJVTWDJH
      ZUFZWEQWDSMZABKZLMWMNOPMZBUGZWFWJWEWORVTCWDQWASMZWNBUGZWOJDWAWDRWPWLWNBWA
      WDQSUHUIEWLWNBUJUQUKWKWNBWBQWDWKWMWLHZUFZWMJHZWMWBOWNRWRWTWKWMWDULUKZACWB
      WMWBUMZUNUOWKWDJQUPOZVTWJURUSUTWSVTWTWNGHVTWJWRVAXAAWMVBVCVHVDVEDJTWCJTZW
      IWHVFCJWQDWPWNBUJEVGXDWCXCTZQVIHXEVJIWBQVKVLJXCWCUSVMVNFJDWCVOVPVQACWBXBV
      RVS $.
  $}

  ${
    $d k n A $.
    $( The exponential function is real if its argument is real.  (Contributed
       by NM, 27-Apr-2005.)  (Revised by Mario Carneiro, 28-Apr-2014.) $)
    reefcl $p |- ( A e. RR -> ( exp ` A ) e. RR ) $=
      ( vk vn cr wcel ce cfv cn0 cv cexp co cfa cdiv csu cc wceq recn efval syl
      cc0 cmpt nn0uz 0zd eqid eftval adantl reeftcl caddc cseq cli cdm isumrecl
      efcllem eqeltrd ) ADEZAFGZHABIZJKUQLGMKZBNZDUOAOEZUPUSPAQZABRSUOURBCHACIZ
      JKVBLGMKUAZTHUBUOUCUQHEUQVCGURPUOACVCUQVCUDZUEUFAUQUGUOUTUHVCTUIUJUKEVAAC
      VCVDUMSULUN $.

    reefcld.1 $e |- ( ph -> A e. RR ) $.
    $( The exponential function is real if its argument is real.  (Contributed
       by Mario Carneiro, 29-May-2016.) $)
    reefcld $p |- ( ph -> ( exp ` A ) e. RR ) $=
      ( cr wcel ce cfv reefcl syl ) ABDEBFGDECBHI $.
  $}

  $( Euler's constant ` _e ` = 2.71828... is a real number.  (Contributed by
     NM, 19-Mar-2005.)  (Revised by Steve Rodriguez, 8-Mar-2006.) $)
  ere $p |- _e e. RR $=
    ( ceu c1 ce cfv cr df-e wcel 1re reefcl ax-mp eqeltri ) ABCDZEFBEGLEGHBIJK
    $.

  ${
    $d k n $.  $d k F $.  $d k G $.
    erelem1.1 $e |- F = ( n e. NN |-> ( 2 x. ( ( 1 / 2 ) ^ n ) ) ) $.
    erelem1.2 $e |- G = ( n e. NN0 |-> ( 1 / ( ! ` n ) ) ) $.
    $( Lemma for ~ egt2lt3 .  (Contributed by NM, 20-Mar-2005.)  (Proof
       shortened by Mario Carneiro, 28-Apr-2014.) $)
    ege2le3 $p |- ( 2 <_ _e /\ _e <_ 3 ) $=
      ( c2 ceu cle wbr wtru c1 caddc cc0 cfv co cn0 wcel wceq cdiv cexp vk cseq
      c3 nn0uz 0nn0 1e0p1 0z cv cfa fveq2 fac0 syl6eq oveq2d ax-1cn div1i fvmpt
      1ex mp1i seq1i 1nn0 fac1 seqp1i df-2 syl6eqr a1i ce cli cc cmpt nn0z 1exp
      cz oveq1d mpteq2ia eqtr4i efcvg df-e syl6breqr wa cr ovex adantl cn faccl
      syl nnrecred eqeltrd clt nnred nngt0d 1re divge0 mpanl12 syl2anc breqtrrd
      0le1 climserle eqbrtrrd trud cmin nnuz recnd clim2ser 0p1e1 seqeq1 oveq2i
      1zzd ax-mp 3brtr3g cmul 2cnd oveq2 eqid halfre simpr reexpcl sylancr cabs
      1lt2 0le2 absid mp2an breqtrri georeclim 2m1e1 eqtri syl6breq halfcn exp0
      2re 2cn nnnn0 sylan2 eqtr4d isermulc2 2t1e2 remulcl nnrpd wne 2ne0 lerecd
      faclbnd2 2nn nnexpcl rphalfcld mpbid nncnd nnne0d divrecd mpanr12 exprecd
      recdiv 3eqtr4rd 3brtr4d iserle ere lesubaddi mpbi df-3 pm3.2i ) FGHIZGUCH
      IUVAJKLCMUBZNZFGHJUVCKKLOFJKKLCKMMPUDUEUFJKLCMUGMPQZMCNKRJUEAMKAUHZUINZSO
      ZKPCUVEMRZUVGKKSOZKUVHUVFKKSUVHUVFMUINKUVEMUIUJUKULUMKUNUOZULEUQUPURUSZKP
      QZKCNKRJUTAKUVGKPCUVEKRZUVGUVIKUVMUVFKKSUVMUVFKUINKUVEKUIUJVAULUMUVJULEUQ
      UPURVBVCVDJGUACMKPUDUVLJUTVEJUVBKVFNZGVGKVHQUVBUVNVGIJUNKACCAPUVGVIAPKUVE
      TOZUVFSOZVIEAPUVPUVGUVEPQZUVOKUVFSUVQUVEVLQUVOKRUVEVJUVEVKWEVMVNVOVPURVQV
      RZJUAUHZPQZVSZUVSCNZKUVSUINZSOZVTUVTUWBUWDRZJAUVSUVGUWDPCUVEUVSRZUVFUWCKS
      UVEUVSUIUJUMEKUWCSWAUPWBZUWAUWCUVTUWCWCQJUVSWDWBZWFWGZUWAMUWDUWBHUWAUWCVT
      QZMUWCWHIZMUWDHIZUWAUWCUWHWIUWAUWCUWHWJKVTQMKHIUWJUWKVSUWLWKWPKUWCWLWMWNU
      WGWOWQWRWSGFKLOZUCHGKWTOZFHIZGUWMHIUWOJUWNFUACBKWCXAJXGZJLCMKLOZUBZGMUVBN
      ZWTOLCKUBZUWNVGJGUACMMPUDUVDJUEVEZUWAUWBUWIXBUVRXCUWQKRZUWRUWTRXDLCUWQKXE
      XHUWSKGWTUWSKRUVKWSXFXIJLBKUBFKXJOFVGJKFUAAPKFSOZUVETOZVIZBKWCXAUWPJXKZJL
      UXEUWQUBZFMLUXEMUBZNZWTOZLUXEKUBZKVGJFUAUXEMMPUDUXAUWAUVSUXENZUXCUVSTOZVH
      UVTUXLUXMRZJAUVSUXDUXMPUXEUVEUVSUXCTXLZUXEXMZUXCUVSTWAUPWBZUWAUXMUWAUXCVT
      QUVTUXMVTQZXNJUVTXOZUXCUVSXPXQZXBWGZJUXHFFKWTOZSOZFVGJFUAUXEUXFKFXRNZWHIJ
      KFUYDWHXSFVTQZMFHIUYDFRYJXTFYAYBYCVEUXQYDUYCFKSOFUYBKFSYEXFFYKUOYFYGXCUXB
      UXGUXKRXDLUXEUWQKXEXHUXJUYBKUXIKFWTUXIKRJKLUXEMUGMUXENZKRJUYFUXCMTOZKUVDU
      YFUYGRUEAMUXDUYGPUXEUVEMUXCTXLUXPUXCMTWAUPXHUXCVHQUYGKRYHUXCYIXHYFVEUSWSX
      FYEYFXIUVSWCQZJUVTUXLVHQUVSYLZUYAYMJUYHVSZUVSBNZFUXMXJOZFUXLXJOUYHUYKUYLR
      JAUVSFUXDXJOUYLWCBUWFUXDUXMFXJUXOUMDFUXMXJWAUPWBZUYJUXLUXMFXJUYHJUVTUXNUY
      IUXQYMUMYNYOYPYGUYHJUVTUWBVTQUYIUWIYMUYJUYKUYLVTUYMUYHJUVTUYLVTQZUYIUWAUY
      EUXRUYNYJUXTFUXMYQXQYMWGUYJUWDUYLUWBUYKHUYHJUVTUWDUYLHIUYIUWAUWDKFUVSTOZF
      SOZSOZUYLHUWAUYPUWCHIZUWDUYQHIUVTUYRJUVSUUBWBUWAUYPUWCUWAUYOUWAUYOUWAFWCQ
      UVTUYOWCQUUCUXSFUVSUUDXQZYRUUEUWAUWCUWHYRUUAUUFUWAFUYOSOZFKUYOSOZXJOUYQUY
      LUWAFUYOUWAXKZUWAUYOUYSUUGZUWAUYOUYSUUHZUUIUWAUYOVHQZUYOMYSZUYQUYTRZVUCVU
      DVUEVUFVSFVHQFMYSZVUGYKYTUYOFUULUUJWNUWAUXMVUAFXJUWAFUVSVUBVUHUWAYTVEUVTU
      VSVLQJUVSVJWBUUKUMUUMWOYMUYHJUVTUWEUYIUWGYMUYMUUNUUOWSGKFUUPWKYJUUQUURUUS
      YCUUT $.
  $}

  $( Value of the exponential function at 0.  Equation 2 of [Gleason] p. 308.
     (Contributed by Steve Rodriguez, 27-Jun-2006.)  (Revised by Mario
     Carneiro, 28-Apr-2014.) $)
  ef0 $p |- ( exp ` 0 ) = 1 $=
    ( vn caddc cn0 cc0 cv cexp co cfa cfv cdiv cmpt cseq ce cli c1 wceq cc eqid
    wbr ax-mp wcel 0cn efcvg ef0lem climuni mp2an ) BACDAEZFGUGHIJGKZDLZDMIZNSZ
    UIONSZUJOPDQUAUKUBDAUHUHRZUCTDDPULDRDAUHUMUDTUJOUIUEUF $.

  ${
    $d j k m n A $.
    $( Exponential function of a complex conjugate.  Equation 3 of [Gleason]
       p. 308.  (Contributed by NM, 29-Apr-2005.)  (Revised by Mario Carneiro,
       28-Apr-2014.) $)
    efcj $p |- ( A e. CC -> ( exp ` ( * ` A ) ) = ( * ` ( exp ` A ) ) ) $=
      ( vn vj vk vm cc wcel caddc cn0 ccj cfv cv cexp co cdiv cc0 wceq nn0uz wa
      adantl cfa cmpt cseq cli wbr cjcl eqid efcvg syl cvv seqex a1i 0zd eftval
      ce eftcl eqeltrd serf ffvelrnda addcl simpl elfznn0 syl2an simpr syl6eleq
      cfz cuz cjadd expcl cn faccl nncnd nnne0d cjexp nnred cjred oveq12d eqtrd
      cjdivd fveq2d 3eqtr4d seqhomo eqcomd climcj climuni syl2anc ) AFGZHBIAJKZ
      BLZMNWIUAKZONUBZPUCZWHUOKZUDUEZWLAUOKZJKZUDUEWMWPQWGWHFGWNAUFWHBWKWKUGZUH
      UIWGWOCHBIAWIMNWJONUBZPUCZWLPUJIRABWRWRUGZUHWLUJGWGHWKPUKULWGUMZWGIFCLZWS
      WGDWRPIRXAWGDLZIGZSZXCWRKZAXCMNZXCUAKZONZFXDXFXIQWGABWRXCWTUNTZAXCUPUQZUR
      USWGXBIGZSZXBWSKJKXBWLKXMDEHHFWRWKJPXBXCFGELZFGSZXCXNHNZFGXMXCXNUTTXMWGXD
      XFFGXCPXBVFNGZWGXLVAZXCXBVBZXKVCXMXBIPVGKWGXLVDRVEXOXPJKXCJKXNJKHNQXMXCXN
      VHTXMWGXDXFJKZXCWKKZQXQXRXSXEXIJKZWHXCMNZXHONZXTYAXEYBXGJKZXHJKZONYDXEXGX
      HAXCVIXEXHXDXHVJGWGXCVKTZVLXEXHYGVMVSXEYEYCYFXHOAXCVNXEXHXEXHYGVOVPVQVRXE
      XFXIJXJVTXDYAYDQWGWHBWKXCWQUNTWAVCWBWCWDWMWPWLWEWF $.
  $}

  ${
    $d j k m n A $.  $d j k n B $.  $d j F $.  $d j k m G $.  $d j k m ph $.
    $d k H $.
    efadd.1 $e |- F = ( n e. NN0 |-> ( ( A ^ n ) / ( ! ` n ) ) ) $.
    efadd.2 $e |- G = ( n e. NN0 |-> ( ( B ^ n ) / ( ! ` n ) ) ) $.
    efadd.3 $e |- H = ( n e. NN0 |-> ( ( ( A + B ) ^ n ) / ( ! ` n ) ) ) $.
    efadd.4 $e |- ( ph -> A e. CC ) $.
    efadd.5 $e |- ( ph -> B e. CC ) $.
    $( Lemma for ~ efadd (exponential function addition law).  (Contributed by
       Mario Carneiro, 29-Apr-2014.) $)
    efaddlem $p |- ( ph ->
                     ( exp ` ( A + B ) ) = ( ( exp ` A ) x. ( exp ` B ) ) ) $=
      ( vj co cfv cmul wceq wcel cexp cdiv vk vm caddc cc0 ce cli wbr cc addcld
      cseq efcvg syl cn0 cv cfa csu cabs eftval adantl wa absexp sylan cn faccl
      cmpt nnre nnnn0 nn0ge0d absidd oveq12d expcl nnne0d absdivd eqid 3eqtr4rd
      nncnd eftcl cfz cmin cbc adantr simpr binom syl3anc oveq1d fzfid ad2antrr
      bccl2 fznn0sub expcld elfznn0 mulcld fsumdivc divcld eqeltrd oveq2 fveq2d
      fveq2 fsumrev2 oveq2d nnmulcld divrec2d divmuldivd bcval2 divdiv32d eqtrd
      c1 wne dividd eqtr4d nn0cn ad2antlr addid2d nncand div23d sumeq2dv syl6eq
      cbvsumv cdm abscld recnd efcllem mertens efval breqtrrd climuni syl2anc )
      AUCGUDUJZBCUCNZUEOZUFUGZYHBUEOZCUEOZPNZUFUGYJYNQAYIUHRYKABCKLUIYIDGJUKULA
      YHUMBMUNZSNZYOUOOZTNZMUPZUMCUAUNZSNYTUOOZTNZUAUPZPNYNUFAYRUUBMUAEFGDUMBUQ
      OZDUNZSNUUEUOOTNVEZYOUMRZYOEOYRQABDEYOHURUSAUUGUTZYPUQOZYQUQOZTNUUDYOSNZY
      QTNZYRUQOYOUUFOZUUHUUIUUKUUJYQTABUHRZUUGUUIUUKQKBYOVAVBUUHYQVCRZUUJYQQUUG
      UUOAYOVDZUSZUUOYQYQVFUUOYQYQVGVHVIULVJUUHYPYQAUUNUUGYPUHRKBYOVKVBUUHYQUUQ
      VPUUHYQUUQVLVMUUGUUMUULQAUUDDUUFYOUUFVNZURUSVOAUUNUUGYRUHRKBYOVQVBYTUMRZY
      TFOUUBQACDFYTIURUSACUHRZUUSUUBUHRLCYTVQVBAUUSUTZYTGOZYIYTSNZUUATNZUDYTVRN
      ZYRYTYOVSNZFOZPNZMUPZUUSUVBUVDQAYIDGYTJURUSUVAUVDUVEYTYOVTNZBUVFSNZCYOSNZ
      PNZPNZMUPZUUATNZUVIUVAUVCUVOUUATUVAUUNUUTUUSUVCUVOQAUUNUUSKWAAUUTUUSLWAAU
      USWBBCMYTWCWDWEUVAUVPUVEUVNUUATNZMUPZUVIUVAUVEUVNUUAMUVAUDYTWFUVAUUAUUSUU
      AVCRAYTVDUSZVPZUVAYOUVERZUTZUVJUVMUWBUVJUWAUVJVCRUVAYOYTWHUSVPZUWBUVKUVLU
      WBBUVFAUUNUUSUWAKWGZUWAUVFUMRZUVAYOUDYTWIUSZWJZUWBCYOAUUTUUSUWALWGZUWAUUG
      UVAYOYTWKUSZWJZWLZWLUVAUUAUVSVLZWMUVAUVIUVEBUDYTUCNZUBUNZVSNZSNZUWOUOOZTN
      ZYTUWOVSNZFOZPNZUBUPZUVRUVAUVHUXAMUBUDYTUWBYRUVGUWBYPYQUWBBYOUWDUWIWJUWBY
      QUWBUUGUUOUWIUUPULZVPZUWBYQUXCVLZWNUWBUVGCUVFSNZUVFUOOZTNZUHUWBUWEUVGUXHQ
      UWFCDFUVFIURULUWBUXFUXGUWBCUVFUWHUWFWJUWBUXGUWBUWEUXGVCRUWFUVFVDULZVPZUWB
      UXGUXIVLZWNWOWLYOUWOQZYRUWRUVGUWTPUXLYPUWPYQUWQTYOUWOBSWPYOUWOUOWRVJUXLUV
      FUWSFYOUWOYTVSWPWQVJWSUVAUVRUVEBUWMYOVSNZSNZUXMUOOZTNZYTUXMVSNZFOZPNZMUPU
      XBUVAUVEUVQUXSMUWBUVKUXGTNZYOFOZPNZUVJUUATNZUVMPNZUXSUVQUWBUYBUXTUVLYQTNZ
      PNZUYDUWBUYAUYEUXTPUWBUUGUYAUYEQUWICDFYOIURULWTUWBUVMUXGYQPNZTNXGUYGTNZUV
      MPNUYFUYDUWBUVMUYGUWKUWBUYGUWBUXGYQUXIUXCXAZVPZUWBUYGUYIVLZXBUWBUVKUXGUVL
      YQUWGUXJUWJUXDUXKUXEXCUWBUYCUYHUVMPUWBUYCUUAUYGTNZUUATNZUYHUWBUVJUYLUUATU
      WAUVJUYLQUVAYOYTXDUSWEUWBUYMUUAUUATNZUYGTNUYHUWBUUAUYGUUAUVAUUAUHRUWAUVTW
      AZUYJUYOUYKUVAUUAUDXHUWAUWLWAZXEUWBUYNXGUYGTUWBUUAUYOUYPXIWEXFXFWEVOXJUWB
      UXPUXTUXRUYAPUWBUXNUVKUXOUXGTUWBUXMUVFBSUWBUWMYTYOVSUWBYTUUSYTUHRAUWAYTXK
      XLZXMWEZWTUWBUXMUVFUOUYRWQVJUWBUXQYOFUWBUXQYTUVFVSNYOUWBUXMUVFYTVSUYRWTUW
      BYTYOUYQUWBUUGYOUHRUWIYOXKULXNXFWQVJUWBUVJUVMUUAUWCUWKUYOUYPXOVOXPUVEUXSU
      XAMUBYOUWNQZUXPUWRUXRUWTPUYSUXNUWPUXOUWQTUYSUXMUWOBSYOUWNUWMVSWPZWTUYSUXM
      UWOUOUYTWQVJUYSUXQUWSFUYSUXMUWOYTVSUYTWTWQVJXRXQXJXJXFXFAUUDUHRUCUUFUDUJU
      FXSZRAUUDABKXTYAUUDDUUFUURYBULAUUTUCFUDUJVUARLCDFIYBULYCAYLYSYMUUCPAUUNYL
      YSQKBMYDULAUUTYMUUCQLCUAYDULVJYEYJYNYHYFYG $.
  $}

  ${
    $d n A $.  $d n B $.
    $( Sum of exponents law for exponential function.  (Contributed by NM,
       10-Jan-2006.)  (Proof shortened by Mario Carneiro, 29-Apr-2014.) $)
    efadd $p |- ( ( A e. CC /\ B e. CC ) ->
                 ( exp ` ( A + B ) ) = ( ( exp ` A ) x. ( exp ` B ) ) ) $=
      ( vn cc wcel wa cn0 cv cexp cfa cdiv cmpt caddc eqid simpl simpr efaddlem
      co cfv ) ADEZBDEZFABCCGACHZIRUBJSZKRLZCGBUBIRUCKRLZCGABMRUBIRUCKRLZUDNUEN
      UFNTUAOTUAPQ $.
  $}

  ${
    $d A a $.  $d a k $.  $d a m $.  $d A m $.  $d a n $.  $d A n $.
    $d a ph $.  $d k m $.  $d k n $.  $d k ph $.  $d M a $.  $d M k $.
    $d M m $.  $d m n $.  $d M n $.  $d m ph $.  $d N a $.  $d N k $.
    $d N m $.  $d n ph $.  $d Z a $.  $d Z k $.  $d Z m $.  $d Z n $.
    fprodefsum.1 $e |- Z = ( ZZ>= ` M ) $.
    fprodefsum.2 $e |- ( ph -> N e. Z ) $.
    fprodefsum.3 $e |- ( ( ph /\ k e. Z ) -> A e. CC ) $.
    $( Move the exponential function from inside a finite product to outside a
       finite sum.  (Contributed by Scott Fenton, 26-Dec-2017.) $)
    fprodefsum $p |- ( ph -> prod_ k e. ( M ... N ) ( exp ` A ) =
      ( exp ` sum_ k e. ( M ... N ) A ) ) $=
      ( vm cfz co ce cfv cprod csu wcel wceq fveq2d cc va vn cv cuz syl6eleq wi
      cmpt c1 caddc oveq2 prodeq1d sumeq1d eqeq12d imbi2d weq cz csb csn adantl
      wa fzsn simpr uzid syl6eleqr efcl syl fmptd ffvelrnda sylan2 fveq2 prodsn
      eqid syl2anc cvv fvex nfcv nfcsb1v nffv csbeq1a fvmptf sylancl sumsn wral
      3eqtrd ralrimiva nfel1 eleq1d rspc impcom syl2an fvmpts eqtr4d expcom w3a
      simp3 peano2uzs mpan9 3adant3 oveq12d elfzuz adantlr fprodp1 fsump1 fzfid
      cmul fsumcl efadd eqtrd 3eqtr4d 3exp com12 a2d eqcomi eleq2s uzind4 mpcom
      cres fzssuz sseqtr4i resmpt ax-mp fveq1i syl5reqr prodeq2i prodfc sumeq2i
      wss fvres eqtri sumfc fveq2i 3eqtr3g ) ADEKLZJUCZCFBMNZUGZNZJOZYMYNCFBUGZ
      NZJPZMNZYMYOCOZYMBCPZMNEDUDNZQAYRUUBRZAEFUUEHGUEADUAUCZKLZYQJOZUUHYTJPZMN
      ZRZUFADDKLZYQJOZUUMYTJPZMNZRZUFADUBUCZKLZYQJOZUUSYTJPZMNZRZUFZADUURUHUILZ
      KLZYQJOZUVFYTJPZMNZRZUFZAUUFUFUAUBDEUUGDRZUULUUQAUVLUUIUUNUUKUUPUVLUUHUUM
      YQJUUGDDKUJZUKUVLUUJUUOMUVLUUHUUMYTJUVMULSUMUNUAUBUOZUULUVCAUVNUUIUUTUUKU
      VBUVNUUHUUSYQJUUGUURDKUJZUKUVNUUJUVAMUVNUUHUUSYTJUVOULSUMUNUUGUVERZUULUVJ
      AUVPUUIUVGUUKUVIUVPUUHUVFYQJUUGUVEDKUJZUKUVPUUJUVHMUVPUUHUVFYTJUVQULSUMUN
      UUGERZUULUUFAUVRUUIYRUUKUUBUVRUUHYMYQJUUGEDKUJZUKUVRUUJUUAMUVRUUHYMYTJUVS
      ULSUMUNADUPQZUUQAUVTUTZUUNCDBUQZMNZUUPUWAUUNDURZYQJOZDYPNZUWCUWAUUMUWDYQJ
      UVTUUMUWDRADVAUSZUKUWAUVTUWFTQZUWEUWFRAUVTVBZUVTADFQZUWHUVTDUUEFDVCGVDZAF
      TDYPACFYOTYPACUCZFQUTBTQZYOTQIBVEVFYPVLZVGZVHVIYQUWFJDUPYNDYPVJVKVMUWAUWJ
      UWCVNQUWFUWCRUVTUWJAUWKUSZUWBMVOCDYOUWCFYPVNCDVPCUWBMCMVPZCDBVQZVRUWLDRZB
      UWBMCDBVSZSUWNVTWAWDUWAUUOUWBMUWAUUOUWDYTJPZDYSNZUWBUWAUUMUWDYTJUWGULUWAU
      VTUXBTQZUXAUXBRUWIUVTAUWJUXCUWKAFTDYSACFBTYSIYSVLZVGZVHVIYTUXBJDUPYNDYSVJ
      WBVMUWAUWJUWBTQZUXBUWBRUWPAUWMCFWCZUWJUXFUVTAUWMCFIWEZUWKUWJUXGUXFUWMUXFC
      DFCUWBTUWRWFUWSBUWBTUWTWGWHWIWJCDBFYSTUXDWKVMWDSWLWMUVDUVKUFUURFUUEUURFQZ
      AUVCUVJAUXIUVCUVJUFAUXIUVCUVJAUXIUVCWNZUUTUVEYPNZXELZUVBUVEYSNZMNZXELZUVG
      UVIUXJUUTUVBUXKUXNXEAUXIUVCWOAUXIUXKUXNRZUVCUXIAUVEFQZUXPDUURFGWPZAUXQUTZ
      UXKCUVEBUQZMNZUXNUXSUXQUYATQZUXKUYARAUXQVBZUXSUXTTQZUYBAUXGUXQUYDUXHUWMUY
      DCUVEFCUXTTCUVEBVQZWFUWLUVERZBUXTTCUVEBVSZWGWHWQZUXTVEVFCUVEYOUYAFYPTCUVE
      VPCUXTMUWQUYEVRUYFBUXTMUYGSUWNVTVMUXSUXMUXTMUXSUXQUYDUXMUXTRUYCUYHCUVEBFY
      STUXDWKVMSWLVIWRWSAUXIUVGUXLRUVCAUXIUTZYQUXKJDUURUYIUURFUUEAUXIVBGUEZAYNU
      VFQZYQTQZUXIUYKAYNFQZUYLUYKYNUUEFYNDUVEWTGVDZAFTYNYPUWOVHVIXAYNUVEYPVJXBW
      RAUXIUVIUXORUVCUYIUVIUVAUXMUILZMNZUXOUYIUVHUYOMUYIYTUXMJDUURUYJAUYKYTTQZU
      XIUYKAUYMUYQUYNAFTYNYSUXEVHZVIXAYNUVEYSVJXCSUYIUVATQUXMTQZUYPUXORUYIUUSYT
      JUYIDUURXDAYNUUSQZUYQUXIUYTAUYMUYQUYTYNUUEFYNDUURWTGVDUYRVIXAXFUXIAUXQUYS
      UXRAFTUVEYSUXEVHVIUVAUXMXGVMXHWRXIXJXKXLFUUEGXMXNXOXPYRYMYNCYMYOUGZNZJOUU
      CYMYQVUBJYNYMQZVUBYNYPYMXQZNYQYNVUDVUAYMFYGZVUDVUARYMUUEFDEXRGXSZCFYMYOXT
      YAYBYNYMYPYHYCYDYMYOJCYEYIUUAUUDMUUAYMYNCYMBUGZNZJPUUDYMYTVUHJVUCVUHYNYSY
      MXQZNYTYNVUIVUGVUEVUIVUGRVUFCFYMBXTYAYBYNYMYSYHYCYFYMBJCYJYIYKYL $.
  $}

  $( Cancellation of law for exponential function.  Equation 27 of [Rudin]
     p. 164.  (Contributed by NM, 13-Jan-2006.) $)
  efcan $p |- ( A e. CC -> ( ( exp ` A ) x. ( exp ` -u A ) ) = 1 ) $=
    ( cc wcel cneg caddc co ce cfv cmul wceq negcl efadd mpdan cc0 negid fveq2d
    c1 ef0 syl6eq eqtr3d ) ABCZAADZEFZGHZAGHUBGHIFZQUAUBBCUDUEJAKAUBLMUAUDNGHQU
    AUCNGAOPRST $.

  $( The exponential function never vanishes.  Corollary 15-4.3 of [Gleason]
     p. 309.  (Contributed by NM, 13-Jan-2006.)  (Revised by Mario Carneiro,
     29-Apr-2014.) $)
  efne0 $p |- ( A e. CC -> ( exp ` A ) =/= 0 ) $=
    ( cc wcel c1 cc0 wne ce cfv ax-1ne0 wceq cneg cmul co oveq1 efcan negcl syl
    efcl mul02d eqeq12d syl5ib necon3d mpi ) ABCZDEFAGHZEFIUDUEEDEUEEJUEAKZGHZL
    MZEUGLMZJUDDEJUEEUGLNUDUHDUIEAOUDUGUDUFBCUGBCAPUFRQSTUAUBUC $.

  $( Exponent of a negative number.  (Contributed by Mario Carneiro,
     10-May-2014.) $)
  efneg $p |- ( A e. CC -> ( exp ` -u A ) = ( 1 / ( exp ` A ) ) ) $=
    ( cc wcel ce cfv cneg c1 efcl negcl syl efne0 efcan mvllmuld ) ABCZADEAFZDE
    ZGAHNOBCPBCAIOHJAKALM $.

  $( The exponential function maps the complex numbers to the nonzero complex
     numbers.  (Contributed by Paul Chapman, 16-Apr-2008.) $)
  eff2 $p |- exp : CC --> ( CC \ { 0 } ) $=
    ( vx cc cc0 csn cdif ce wf wfn cfv wcel wral eff ffn ax-mp wne efcl eldifsn
    cv efne0 sylanbrc rgen ffnfv mpbir2an ) BBCDEZFGFBHZARZFIZUDJZABKBBFGUELBBF
    MNUHABUFBJUGBJUGCOUHUFPUFSUGBCQTUAABUDFUBUC $.

  $( Difference of exponents law for exponential function.  (Contributed by
     Steve Rodriguez, 25-Nov-2007.) $)
  efsub $p |- ( ( A e. CC /\ B e. CC ) ->
               ( exp ` ( A - B ) ) = ( ( exp ` A ) / ( exp ` B ) ) ) $=
    ( cc wcel wa ce cfv cdiv co c1 cmul cneg caddc cmin wceq cc0 wne efcl efne0
    divrec syl3an 3anidm23 efcan eqcomd wb negcl ax-1cn divmul2 mp3an1 syl12anc
    syl mpbird oveq2d adantl efadd sylan2 eqtr4d negsub fveq2d 3eqtrrd ) ACDZBC
    DZEZAFGZBFGZHIZVDJVEHIZKIZABLZMIZFGZABNIZFGVAVBVFVHOZVAVDCDVBVECDZVBVEPQZVM
    ARBRZBSZVDVETUAUBVCVHVDVIFGZKIZVKVBVHVSOVAVBVGVRVDKVBVGVROZJVEVRKIZOZVBWAJB
    UCUDVBVRCDZVNVOVTWBUEZVBVICDZWCBUFZVIRUKVPVQJCDWCVNVOEWDUGJVRVEUHUIUJULUMUN
    VBVAWEVKVSOWFAVIUOUPUQVCVJVLFABURUSUT $.

  ${
    $d j N $.  $d j k A $.
    $( Exponential function to an integer power.  Corollary 15-4.4 of [Gleason]
       p. 309, restricted to integers.  (Contributed by NM, 13-Jan-2006.)
       (Revised by Mario Carneiro, 5-Jun-2014.) $)
    efexp $p |- ( ( A e. CC /\ N e. ZZ ) ->
                 ( exp ` ( N x. A ) ) = ( ( exp ` A ) ^ N ) ) $=
      ( cc wcel wa cmul co ce cfv cexp sylan2 fveq2d cc0 c1 caddc oveq2 eqeq12d
      wceq adantr eqtrd vj vk cz zcn mulcom cv cneg ef0 mul01 exp0d 3eqtr4a cn0
      efcl oveq1 adantl nn0cn ax-1cn adddi mp3an3 mulcl simpl efadd expp1 sylan
      mulid1 oveq2d syl2anc 3eqtr4d exp31 cn cdiv nncn mulneg2 efneg syl expneg
      wi nnnn0 syl2an syl5ibr ex zindd imp eqtr3d ) ACDZBUCDZEZABFGZHIZBAFGZHIA
      HIZBJGZWGWHWJHWFWEBCDWHWJRBUDABUEKLWEWFWIWLRZAUAUFZFGZHIZWKWNJGZRAMFGZHIZ
      WKMJGZRAUBUFZFGZHIZWKXAJGZRZAXAUGZFGZHIZWKXFJGZRZAXANOGZFGZHIZWKXKJGZRZWM
      WEUAUBBWNMRZWPWSWQWTXPWOWRHWNMAFPLWNMWKJPQWNXARZWPXCWQXDXQWOXBHWNXAAFPLWN
      XAWKJPQWNXKRZWPXMWQXNXRWOXLHWNXKAFPLWNXKWKJPQWNXFRZWPXHWQXIXSWOXGHWNXFAFP
      LWNXFWKJPQWNBRZWPWIWQWLXTWOWHHWNBAFPLWNBWKJPQWEMHINWSWTUHWEWRMHAUILWEWKAU
      MZUJUKWEXAULDZXEXOWEYBEZXEEXCWKFGZXDWKFGZXMXNXEYDYERYCXCXDWKFUNUOYCXMYDRX
      EYCXMXBAOGZHIZYDYCXLYFHYBWEXACDZXLYFRXAUPZWEYHEZXLXBANFGZOGZYFWEYHNCDXLYL
      RUQAXANURUSYJYKAXBOWEYKARYHAVESVFTKLYCXBCDZWEYGYDRYBWEYHYMYIAXAUTZKWEYBVA
      XBAVBVGTSYCXNYERZXEWEWKCDZYBYOYAWKXAVCVDSVHVIWEXAVJDZXEXJVQXEXJWEYQEZNXCV
      KGZNXDVKGZRXCXDNVKPYRXHYSXIYTYRXHXBUGZHIZYSYRXGUUAHYQWEYHXGUUARXAVLZAXAVM
      KLYRYMUUBYSRYQWEYHYMUUCYNKXBVNVOTWEYPYBXIYTRYQYAXAVRWKXAVPVSQVTWAWBWCWD
      $.
  $}

  $( Value of the exponential function for integers.  Special case of ~ efval .
     Equation 30 of [Rudin] p. 164.  (Contributed by Steve Rodriguez,
     15-Sep-2006.)  (Revised by Mario Carneiro, 5-Jun-2014.) $)
  efzval $p |- ( N e. ZZ -> ( exp ` N ) = ( _e ^ N ) ) $=
    ( cz wcel ce cfv c1 cexp co ceu cmul zcn mulid1d fveq2d cc wceq ax-1cn mpan
    efexp eqtr3d df-e oveq1i syl6eqr ) ABCZADEZFDEZAGHZIAGHUCAFJHZDEZUDUFUCUGAD
    UCAAKLMFNCUCUHUFOPFARQSIUEAGTUAUB $.

  $( The exponential function of a real number is greater than 0.  (Contributed
     by Paul Chapman, 21-Aug-2007.)  (Revised by Mario Carneiro,
     30-Apr-2014.) $)
  efgt0 $p |- ( A e. RR -> 0 < ( exp ` A ) ) $=
    ( cr wcel ce cfv reefcl cc0 c2 cdiv co cexp rehalfcl reefcld sqge0d cmul cc
    cle wceq wne syl cz recnd 2z efexp sylancl recn 2ne0 divcan2 mp3an23 fveq2d
    2cn eqtr3d breqtrd efne0 ne0gt0d ) ABCZADEZAFUPGAHIJZDEZHKJZUQQUPUSUPURALZM
    NUPHUROJZDEZUTUQUPURPCHUACVCUTRUPURVAUBUCURHUDUEUPVBADUPAPCZVBARZAUFZVDHPCH
    GSVEUKUGAHUHUITUJULUMUPVDUQGSVFAUNTUO $.

  $( The exponential function of a real number is a positive real.
     (Contributed by Mario Carneiro, 10-Nov-2013.) $)
  rpefcl $p |- ( A e. RR -> ( exp ` A ) e. RR+ ) $=
    ( cr wcel ce cfv reefcl efgt0 elrpd ) ABCADEAFAGH $.

  ${
    rpefcld.1 $e |- ( ph -> A e. RR ) $.
    $( The exponential function of a real number is a positive real.
       (Contributed by Mario Carneiro, 29-May-2016.) $)
    rpefcld $p |- ( ph -> ( exp ` A ) e. RR+ ) $=
      ( cr wcel ce cfv crp rpefcl syl ) ABDEBFGHECBIJ $.
  $}

  ${
    $d j k n A $.  $d k F $.  $d j k G $.  $d j H $.  $d j k n M $.
    $d j k ph $.
    eftl.1 $e |- F = ( n e. NN0 |-> ( ( A ^ n ) / ( ! ` n ) ) ) $.
    $( The tail series of the exponential function are convergent.
       (Contributed by Mario Carneiro, 29-Apr-2014.) $)
    eftlcvg $p |- ( ( A e. CC /\ M e. NN0 ) -> seq M ( + , F ) e. dom ~~> ) $=
      ( vk cc wcel cn0 wa caddc cc0 cseq cli cdm efcllem adantr nn0uz cfv co cv
      simpr cexp cfa cdiv wceq eftval adantl eftcl adantlr eqeltrd iserex mpbid
      ) AGHZDIHZJZKCLMNOZHZKCDMUQHUNURUOABCEPQUPFCLDIRUNUOUBUPFUAZIHZJUSCSZAUSU
      CTUSUDSUETZGUTVAVBUFUPABCUSEUGUHUNUTVBGHUOAUSUIUJUKULUM $.

    $( Closure of the sum of an infinite tail of the series defining the
       exponential function.  (Contributed by Paul Chapman, 17-Jan-2008.)
       (Revised by Mario Carneiro, 30-Apr-2014.) $)
    eftlcl $p |- ( ( A e. CC /\ M e. NN0 ) ->
                    sum_ k e. ( ZZ>= ` M ) ( F ` k ) e. CC ) $=
      ( cc wcel cn0 wa cv cfv cuz eqid cz nn0z adantl eqidd cexp co cfa eluznn0
      cdiv wceq adantll eftval syl simpll eftcl syl2anc eqeltrd eftlcvg isumcl
      ) AGHZEIHZJZBKZDLZBDEEMLZUSNUOEOHUNEPQUPUQUSHZJZURRVAURAUQSTUQUALUCTZGVAU
      QIHZURVBUDUOUTVCUNUQEUBUEZACDUQFUFUGVAUNVCVBGHUNUOUTUHVDAUQUIUJUKACDEFULU
      M $.

    $( Closure of the sum of an infinite tail of the series defining the
       exponential function.  (Contributed by Paul Chapman, 17-Jan-2008.)
       (Revised by Mario Carneiro, 30-Apr-2014.) $)
    reeftlcl $p |- ( ( A e. RR /\ M e. NN0 ) ->
                      sum_ k e. ( ZZ>= ` M ) ( F ` k ) e. RR ) $=
      ( cr wcel cn0 wa cv cfv cuz eqid cz nn0z adantl eqidd cexp co cfa eluznn0
      cdiv wceq adantll eftval syl simpll reeftcl syl2anc eqeltrd cc caddc cseq
      cli cdm recn eftlcvg sylan isumrecl ) AGHZEIHZJZBKZDLZBDEEMLZVFNVBEOHVAEP
      QVCVDVFHZJZVERVHVEAVDSTVDUALUCTZGVHVDIHZVEVIUDVBVGVJVAVDEUBUEZACDVDFUFUGV
      HVAVJVIGHVAVBVGUHVKAVDUIUJUKVAAULHVBUMDEUNUOUPHAUQACDEFURUSUT $.

    eftl.2 $e |- G = ( n e. NN0 |-> ( ( ( abs ` A ) ^ n ) / ( ! ` n ) ) ) $.
    eftl.3 $e |- H = ( n e. NN0 |->
      ( ( ( ( abs ` A ) ^ M ) / ( ! ` M ) ) x. ( ( 1 / ( M + 1 ) ) ^ n ) ) ) $.
    eftl.4 $e |- ( ph -> M e. NN ) $.
    eftl.5 $e |- ( ph -> A e. CC ) $.
    eftl.6 $e |- ( ph -> ( abs ` A ) <_ 1 ) $.
    $( An upper bound on the absolute value of the infinite tail of the series
       expansion of the exponential function on the closed unit disk.
       (Contributed by Paul Chapman, 19-Jan-2008.)  (Proof shortened by Mario
       Carneiro, 29-Apr-2014.) $)
    eftlub $p |- ( ph -> ( abs ` sum_ k e. ( ZZ>= ` M ) ( F ` k ) ) <_
          ( ( ( abs ` A ) ^ M ) x. ( ( M + 1 ) / ( ( ! ` M ) x. M ) ) ) ) $=
      ( cfv co cmul cdiv wcel cc0 vj cuz cv csu cabs c1 caddc cfa cc cn0 nnnn0d
      cexp eftlcl syl2anc abscld cr reeftlcl reexpcld peano2nn0 nn0red cn faccl
      nnmulcld nndivred remulcld eqid nnzd wa eqidd eluznn0 sylan eftval adantl
      syl wceq eftcl eqeltrd syldan cseq cli cdm eftlcvg isumclim2 recnd eftabs
      reeftcl fveq2d 3eqtr4rd iserabs cle cneg cshi nn0uz 0zd nncnd nn0cn nn0ex
      cmpt cvv mptex eqeltri shftval4 syl2an nn0addcl adantr oveq2 oveq2d fvmpt
      ovex peano2nnd nnrecred reexpcl wbr nnred cz uzid uzaddcl absge0d nnexpcl
      leexp2rd expge0d jca faclbnd6 mpbid nnne0d divassd divdiv1d eqtrd breqtrd
      letrd clt wb mpbird eqbrtrd cmin sylancr seqex sylancl breldm eqtr4d nn0z
      lemul1a syl31anc nnrpd lemuldiv2d exprecd facne0 3eqtr2rd nngt0d ledivmul
      divrecd wne syl112anc 0z znegcld seqshft 0cn subneg mpan seqeq1d climshft
      addid2 sumex nnge1d 1nn nnleltp1 nn0ge0d absidd breqtrrd georeclim ax-1cn
      isermulc2 pncan div23d mulcomd 3eqtrd isumle fveq2 eleq2d biimpa isumshft
      addid2d sumeq1d eqtr3d isumclim 3brtr3d ) AHUBOZCUCZEOZCUDZUEOUWGUWHFOZCU
      DZBUEOZHULPZHUFUGPZHUHOZHQPZRPZQPZAUWJABUISZHUJSZUWJUISMAHLUKZBCDEHIUMUNU
      OAUWMUPSZUXAUWLUPSABMUOZUXBUWMCDFHJUQUNAUWNUWRAUWMHUXDUXBURZAUWOUWQAUWOAU
      XAUWOUJSUXBHUSVNZUTZAUWPHAUXAUWPVASZUXBHVBVNZLVCVDVEAUWJUWLCEFHUWGUWGVFZA
      UWICEHUWGUXJAHLVGZAUWHUWGSZVHZUWIVIAUXLUWHUJSZUWIUISAUXAUXLUXNUXBUWHHVJVK
      ZAUXNVHZUWIBUWHULPUWHUHOZRPZUIUXNUWIUXRVOABDEUWHIVLVMZAUWTUXNUXRUISMBUWHV
      PVKVQVRZAUWTUXAUGEHVSVTWAZSMUXBBDEHIWBUNWCAUWKCFHUWGUXJUXKUXMUWKVIUXMUWKA
      UXLUXNUWKUPSUXOUXPUWKUWMUWHULPUXQRPZUPUXNUWKUYBVOAUWMDFUWHJVLVMZAUXCUXNUY
      BUPSUXDUWMUWHWFVKVQVRWDZAUWMUISUXAUGFHVSZUYASAUWMUXDWDUXBUWMDFHJWBUNWCZUX
      KUXTAUXLUXNUWKUWIUEOZVOUXOUXPUXRUEOZUYBUYGUWKAUWTUXNUYHUYBVOMBUWHWEVKUXPU
      WIUXRUEUXSWGUYCWHVRWIAUJHUAUCZUGPZFOZUAUDZUJUWNUWPRPZUFUWORPZUYIULPZQPZUA
      UDUWLUWSWJAUYKUYPUAFHWKZWLPZGTUJWMAWNZAHUISZUYIUISUYIUYROUYKVOUYIUJSZAHLW
      OZUYIWPHUYIFFDUJUWMDUCZULPVUCUHORPZWRWSJDUJVUDWQWTXAZXBXCAVUAVHZUYKUWMUYJ
      ULPZUYJUHOZRPZUPVUFUYJUJSZUYKVUIVOAUXAVUAVUJUXBHUYIXDVKZUWMDFUYJJVLVNZVUF
      UXCVUJVUIUPSAUXCVUAUXDXEZVUKUWMUYJWFUNVQVUAUYIGOZUYPVOADUYIUYMUYNVUCULPZQ
      PUYPUJGVUCUYIVOVUOUYOUYMQVUCUYIUYNULXFZXGKUYMUYOQXIXHVMZVUFUYMUYOAUYMUPSV
      UAAUWNUWPUXEUXIVDZXEAUYNUPSVUAUYOUPSAUWOAHLXJZXKUYNUYIXLVKZVEZVUFUYKVUIUY
      PWJVULVUFVUIUYPWJXMZVUGVUHUYPQPZWJXMZVUFVUGUWNVVCVUFUWMUYJVUMVUKURZAUWNUP
      SZVUAUXEXEZVUFVUHUYPVUFVUHVUFVUJVUHVASVUKUYJVBVNZXNZVVAVEVUFUWMHUYJVUMAUX
      AVUAUXBXEAHUWGSZVUAUYJUWGSAHXOSVVJUXKHXPVNUYIHHXQVKATUWMWJXMVUAABMXRZXEAU
      WMUFWJXMVUANXEXTVUFUWNVUHUWNQPZUWPUWOUYIULPZQPZRPZVVCWJVUFVVNUWNQPVVLWJXM
      ZUWNVVOWJXMVUFVVNUPSVUHUPSZVVFTUWNWJXMZVHZVVNVUHWJXMZVVPVUFVVNVUFUWPVVMAU
      XHVUAUXIXEAUWOVASZVUAVVMVASVUSUWOUYIXSVKZVCZXNVVIAVVSVUAAVVFVVRUXEAUWMHUX
      DUXBVVKYAYBXEAUXAVUAVVTUXBUYIHYCVKVVNVUHUWNUUBUUCVUFUWNVVLVVNVVGVUFVUHUWN
      VVIVVGVEVUFVVNVWCUUDUUEYDVUFVVOVUHUWNVVNRPZQPVVCVUFVUHUWNVVNVUFVUHVVHWOAU
      WNUISVUAAUWNUXEWDZXEZVUFVVNVWCWOVUFVVNVWCYEYFVUFVWDUYPVUHQVUFUYPUYMUFVVMR
      PZQPUYMVVMRPVWDVUFUYOVWGUYMQVUFUWOUYIAUWOUISVUAAUWOVUSWOZXEVUFUWOAVWAVUAV
      USXEYEVUAUYIXOSAUYIUUAVMUUFXGVUFUYMVVMAUYMUISVUAAUYMVURWDZXEVUFVVMVWBWOZV
      UFVVMVWBYEZUUKVUFUWNUWPVVMVWFAUWPUISVUAAUWPUXIWOZXEVWJAUWPTUULZVUAAUXAVWM
      UXBHUUGVNZXEVWKYGUUHXGYHYIYJVUFVUGUPSUYPUPSVVQTVUHYKXMVVBVVDYLVVEVVAVVIVU
      FVUHVVHUUIVUGUYPVUHUUJUUMYMYNAUGUYRTVSZUGFTUYQYOPZVSZUYQWLPZUYAATXOSUYQXO
      SZVWOVWRVOUUNAHUXKUUOZUGFTUYQVUEUUPYPAVWRUWLVTXMZVWRUYASAVXAVWQUWLVTXMZAV
      WQUYEUWLVTAVWPHUGFAUYTVWPHVOVUBUYTVWPTHUGPZHTUISUYTVWPVXCVOUUQTHUURUUSHUV
      BYHVNUUTUYFYNAVWSVWQWSSVXAVXBYLVWTUGFVWPYQUWLVWQUYQWSUVAYRYMVWRUWLVTVWQUY
      QWLXIUWGUWKCUVCYSVNVQAUGGTVSZUWSVTXMVXDUYASAVXDUYMUWOUWOUFYOPZRPZQPZUWSVT
      AVXFUYMUADUJVUOWRZGTUJWMUYSVWIAUWOUAVXHVWHAUFUWOUWOUEOYKAUFHWJXMZUFUWOYKX
      MZAHLUVDAUFVASHVASVXIVXJYLUVELUFHUVFYPYDAUWOUXGAUWOUXFUVGUVHUVIVUAUYIVXHO
      ZUYOVOADUYIVUOUYOUJVXHVUPVXHVFUYNUYIULXIXHVMZUVJVUFVXKUYOUIVXLVUFUYOVUTWD
      VQVUFVUNUYPUYMVXKQPVUQVUFVXKUYOUYMQVXLXGYTUVLAVXGUWNUWOHRPZQPUWPRPZUWNVXM
      UWPRPZQPUWSAVXGUYMVXMQPVXNAVXFVXMUYMQAVXEHUWORAUYTUFUISVXEHVOVUBUVKHUFUVM
      YRXGXGAUWNVXMUWPVWEAVXMAUWOHUXGLVDWDZVWLVWNUVNYTAUWNVXMUWPVWEVXPVWLVWNYFA
      VXOUWRUWNQAVXOUWOHUWPQPZRPUWRAUWOHUWPVWHVUBVWLAHLYEVWNYGAVXQUWQUWORAHUWPV
      UBVWLUVOXGYHXGUVPYIZVXDUWSVTUGGTYQUWNUWRQXIYSVNUVQAVXCUBOZUWKCUDUYLUWLAUW
      KUYKCUAHTVXSUJWMVXSVFUWHUYJFUVRUXKUYSAUWHVXSSZUXLUWKUISAVXTUXLAVXSUWGUWHA
      VXCHUBAHVUBUWBWGZUVSUVTUYDVRUWAAVXSUWGUWKCVYAUWCUWDAUYPUWSUAGTUJWMUYSVUQV
      UFUYPVVAWDVXRUWEUWFYJ $.
  $}

  ${
    $d k n A $.  $d k F $.  $d k n M $.  $d k n N $.  $d k ph $.
    efsep.1 $e |- F = ( n e. NN0 |-> ( ( A ^ n ) / ( ! ` n ) ) ) $.
    efsep.2 $e |- N = ( M + 1 ) $.
    efsep.3 $e |- M e. NN0 $.
    efsep.4 $e |- ( ph -> A e. CC ) $.
    efsep.5 $e |- ( ph -> B e. CC ) $.
    efsep.6 $e |- ( ph -> ( exp ` A ) =
                    ( B + sum_ k e. ( ZZ>= ` M ) ( F ` k ) ) ) $.
    efsep.7 $e |- ( ph -> ( B + ( ( A ^ M ) / ( ! ` M ) ) ) = D ) $.
    $( Separate out the next term of the power series expansion of the
       exponential function.  The last hypothesis allows the separated terms to
       be rearranged as desired.  (Contributed by Paul Chapman, 23-Nov-2007.)
       (Revised by Mario Carneiro, 29-Apr-2014.) $)
    efsep $p |- ( ph -> ( exp ` A ) =
                  ( D + sum_ k e. ( ZZ>= ` N ) ( F ` k ) ) ) $=
      ( cfv caddc co wcel ce cuz cv csu cexp cfa cdiv c1 eqid cz nn0zi wa eqidd
      a1i cn0 cc eluznn0 mpan wceq eftval adantl eftcl sylan eqeltrd sylan2 cli
      cseq cdm eftlcvg sylancl isum1p ax-mp eqcomi fveq2i sumeq1i syl6eq oveq2d
      oveq12i peano2nn0 eqeltri eftlcl addassd eqtr4d oveq1d 3eqtrd ) ABUAQCHUB
      QZEUCZGQZEUDZRSZCBHUESHUFQUGSZRSZIUBQZWHEUDZRSZDWNRSOAWJCWKWNRSZRSWOAWIWP
      CRAWIHGQZHUHRSZUBQZWHEUDZRSWPAWHEGHWFWFUIHUJTAHLUKUNAWGWFTZULWHUMXAAWGUOT
      ZWHUPTHUOTZXAXBLWGHUQURAXBULWHBWGUESWGUFQUGSZUPXBWHXDUSABFGWGJUTVAABUPTZX
      BXDUPTMBWGVBVCVDVEAXEXCRGHVGVFVHTMLBFGHJVIVJVKWQWKWTWNRXCWQWKUSLBFGHJUTVL
      WSWMWHEWRIUBIWRKVMVNVOVRVPVQACWKWNNAXEXCWKUPTMLBHVBVJAXEIUOTWNUPTMIWRUOKX
      CWRUOTLHVSVLVTBEFGIJWAVJWBWCAWLDWNRPWDWE $.
  $}

  ${
    $d k n A $.  $d k F $.  $d k N $.  $d k ph $.
    effsumlt.1 $e |- F = ( n e. NN0 |-> ( ( A ^ n ) / ( ! ` n ) ) ) $.
    effsumlt.2 $e |- ( ph -> A e. RR+ ) $.
    effsumlt.3 $e |- ( ph -> N e. NN0 ) $.
    $( The partial sums of the series expansion of the exponential function of
       a positive real number are bounded by the value of the function.
       (Contributed by Paul Chapman, 21-Aug-2007.)  (Revised by Mario Carneiro,
       29-Apr-2014.) $)
    effsumlt $p |- ( ph -> ( seq 0 ( + , F ) ` N ) < ( exp ` A ) ) $=
      ( vk caddc cc0 cfv c1 co csu cn0 cr nn0uz wcel cc cseq cuz cv ce clt cexp
      0zd wa cfa cdiv eftval adantl rpred reeftcl sylan eqeltrd serfre ffvelrnd
      wceq eqid peano2nn0 syl eqidd cz nn0z rpexpcl syl2an faccl nnrpd rpdivcld
      crp cn cli cdm efcllem isumrpcl ltaddrpd cmin cfz efval2 isumsplit nn0cnd
      recnd ax-1cn pncan sylancl oveq2d sumeq1d syl6eleq elfznn0 sylan2 fsumser
      eqtrd oveq1d 3eqtrd breqtrrd ) AEJDKUAZLZWREMJNZUBLZIUCZDLZIOZJNZBUDLZUEA
      WRXCAPQEWQAIDKPRAUGAXAPSZUHZXBBXAUFNZXAUILZUJNZQXFXBXJUSABCDXAFUKULZABQSX
      FXJQSABGUMZBXAUNUOUPZUQHURAXBIDKWSWTPRWTUTZAEPSWSPSHEVAVBZXGXBVCZXGXBXJVK
      XKXGXHXIABVKSXAVDSXHVKSXFGXAVEBXAVFVGXGXIXFXIVLSAXAVHULVIVJUPABTSZWQVMVNS
      ABXLWCZBCDFVOVBZVPVQAXEPXBIOZKWSMVRNZVSNZXBIOZXCJNXDAXQXEXTUSXRBICDFVTVBA
      XBIDKWSWTPRXNXOXPXGXBXMWCZXSWAAYCWRXCJAYCKEVSNZXBIOWRAYBYEXBIAYAEKVSAETSM
      TSYAEUSAEHWBWDEMWEWFWGWHAXBIDKEAXAYESZUHXBVCAEPKUBLHRWIYFAXFXBTSXAEWJYDWK
      WLWMWNWOWP $.
  $}

  $( The value of the first term of the series expansion of the exponential
     function is 1.  (Contributed by Paul Chapman, 21-Aug-2007.)  (Revised by
     Mario Carneiro, 29-Apr-2014.) $)
  eft0val $p |- ( A e. CC -> ( ( A ^ 0 ) / ( ! ` 0 ) ) = 1 ) $=
    ( cc wcel cc0 cexp co cfa cfv cdiv c1 exp0 oveq1d fac0 oveq2i 1div1e1 eqtri
    syl6eq ) ABCZADEFZDGHZIFJTIFZJRSJTIAKLUAJJIFJTJJIMNOPQ $.

  ${
    $d k n A $.  $d k F $.
    ef4p.1 $e |- F = ( n e. NN0 |-> ( ( A ^ n ) / ( ! ` n ) ) ) $.
    $( Separate out the first four terms of the infinite series expansion of
       the exponential function.  (Contributed by Paul Chapman, 19-Jan-2008.)
       (Revised by Mario Carneiro, 29-Apr-2014.) $)
    ef4p $p |- ( A e. CC -> ( exp ` A ) =
                ( ( ( ( 1 + A ) + ( ( A ^ 2 ) / 2 ) ) + ( ( A ^ 3 ) / 6 ) ) +
                  sum_ k e. ( ZZ>= ` 4 ) ( F ` k ) ) ) $=
      ( cc wcel c1 caddc co c2 cexp cdiv c3 a1i cc0 cfv cfa efsep oveq2i ax-1cn
      c6 c4 df-4 3nn0 id addcl mpan sqcl halfcld df-3 2nn0 df-2 1nn0 1e0p1 0nn0
      addcld 0cnd cuz cv csu ce cn0 efval2 nn0uz sumeq1i syl6req oveq2d addid2d
      efcl eqtr2d eft0val 0p1e1 syl6eq exp1 wceq fac1 oveq12d div1 eqtrd fac2
      fac3 ) AFGZAHAIJZAKLJZKMJZIJZWGANLJZUBMJZIJZBCDNUCEUDUEWCUFZWCWDWFHFGZWCW
      DFGUAHAUGUHZWCWEAUIUJUQWCAWDWGBCDKNEUKULWKWMWCAHWDBCDHKEUMUNWKWLWCUAOWCAP
      HBCDPHEUOUPWKWCURWCPPUSQZBUTDQZBVAZIJPAVBQZIJWQWCWPWQPIWCWQVCWOBVAWPABCDE
      VDVCWNWOBVEVFVGVHWCWQAVJVIVKWCPAPLJPRQMJZIJPHIJHWCWRHPIAVLVHVMVNSWCAHLJZH
      RQZMJZAHIWCXAAHMJAWCWSAWTHMAVOWTHVPWCVQOVRAVSVTVHSWDWEKRQZMJZIJWGVPWCXCWF
      WDIXBKWEMWATTOSWGWHNRQZMJZIJWJVPWCXEWIWGIXDUBWHMWBTTOS $.
  $}

  ${
    $d A n $.
    $( The exponential function of a positive real number is greater than the
       first three terms of the series expansion.  (Contributed by Mario
       Carneiro, 15-Sep-2014.) $)
    efgt1p2 $p |- ( A e. RR+ ->
      ( ( 1 + A ) + ( ( A ^ 2 ) / 2 ) ) < ( exp ` A ) ) $=
      ( vn wcel c2 caddc cn0 cexp co cfa cfv cdiv cc0 c1 nn0uz 1nn0 wceq eftval
      0nn0 ax-mp syl5eq crp cv cmpt cseq ce clt df-2 cc rpcn 1e0p1 eqid eft0val
      0z seq1i fac1 oveq2i exp1 oveq1d div1 eqtrd seqp1i syl 2nn0 fac2 eqtri id
      a1i effsumlt eqbrtrrd ) AUACZDEBFABUBZGHVKIJKHUCZLUDZJMAEHZADGHZDKHZEHAUE
      JUFVJVNVPEVLDLMFNOUGVJAUHCZMVMJVNPAUIVQMAEVLMLLFNRUJVQMEVLLUMVQLVLJZALGHL
      IJKHZMLFCVRVSPRABVLLVLUKZQSAULTUNVQMVLJZAMGHZMIJZKHZAMFCWAWDPOABVLMVTQSVQ
      WDWBMKHZAWCMWBKUOUPVQWEAMKHAVQWBAMKAUQURAUSUTTTVAVBDVLJZVPPVJWFVODIJZKHZV
      PDFCZWFWHPVCABVLDVTQSWGDVOKVDUPVEVGVAVJABVLDVTVJVFWIVJVCVGVHVI $.

    $d A n $.
    $( The exponential function of a positive real number is greater than 1
       plus that number.  (Contributed by Mario Carneiro, 14-Mar-2014.)
       (Revised by Mario Carneiro, 30-Apr-2014.) $)
    efgt1p $p |- ( A e. RR+ -> ( 1 + A ) < ( exp ` A ) ) $=
      ( vn crp wcel c1 caddc cn0 cv cexp co cfa cfv cdiv wceq 0nn0 eftval ax-mp
      cc0 syl5eq 1nn0 cmpt cseq ce clt cc rpcn nn0uz 1e0p1 0z eqid eft0val fac1
      seq1i oveq2i exp1 oveq1d div1 eqtrd seqp1i syl id a1i effsumlt eqbrtrrd )
      ACDZEFBGABHZIJVFKLMJUAZRUBLZEAFJZAUCLUDVEAUEDZVHVINAUFVJEAFVGERRGUGOUHVJE
      FVGRUIVJRVGLZARIJRKLMJZERGDVKVLNOABVGRVGUJZPQAUKSUMVJEVGLZAEIJZEKLZMJZAEG
      DZVNVQNTABVGEVMPQVJVQVOEMJZAVPEVOMULUNVJVSAEMJAVJVOAEMAUOUPAUQURSSUSUTVEA
      BVGEVMVEVAVRVETVBVCVD $.

    $( The exponential function of a positive real number is greater than 1.
       (Contributed by Paul Chapman, 21-Aug-2007.)  (Revised by Mario Carneiro,
       30-Apr-2014.) $)
    efgt1 $p |- ( A e. RR+ -> 1 < ( exp ` A ) ) $=
      ( crp wcel c1 caddc co ce cfv 1red cr 1re readdcl sylancr reefcld clt wbr
      rpre ltaddrp mpan efgt1p lttrd ) ABCZDDAEFZAGHUBIUBDJCZAJCUCJCKAQZDALMUBA
      UENUDUBDUCOPKDARSATUA $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The exponential function on the reals is strictly monotonic.
       (Contributed by Paul Chapman, 21-Aug-2007.)  (Revised by Mario Carneiro,
       17-Jul-2014.) $)
    eflt $p |- ( ( A e. RR /\ B e. RR ) ->
                 ( A < B <-> ( exp ` A ) < ( exp ` B ) ) ) $=
      ( vx vy wtru cr wcel wa clt wbr ce cfv wb cv fveq2 adantl cc0 syl recnd
      co tru ssid reefcl wi w3a cmin c1 crp simp2 simp1 resubcld posdif biimp3a
      cmul elrpd efgt1 reefcld efgt0 ltmulgt11 syl3anc mpbid caddc wceq syl2anc
      cc efadd pncan3d fveq2d eqtr3d breqtrd 3expia ltord1 mpan ) EAFGBFGHABIJA
      KLZBKLZIJMUAECDCNZKLZDNZKLZABFVNVOVPVRKOVPAKOVPBKOFUBVPFGZVQFGZEVPUCPVTVR
      FGZHVPVRIJZVQVSIJZUDEVTWBWCWDVTWBWCUEZVQVQVRVPUFTZKLZUNTZVSIWEUGWGIJZVQWH
      IJZWEWFUHGWIWEWFWEVRVPVTWBWCUIZVTWBWCUJZUKZVTWBWCQWFIJVPVRULUMUOWFUPRWEWA
      WGFGQVQIJZWIWJMWEVPWLUQWEWFWMUQWEVTWNWLVPURRVQWGUSUTVAWEVPWFVBTZKLZWHVSWE
      VPVEGWFVEGWPWHVCWEVPWLSZWEWFWMSVPWFVFVDWEWOVRKWEVPVRWQWEVRWKSVGVHVIVJVKPV
      LVM $.

    $( The exponential function on the reals is strictly monotonic.
       (Contributed by Mario Carneiro, 11-Mar-2014.) $)
    efle $p |- ( ( A e. RR /\ B e. RR ) ->
                 ( A <_ B <-> ( exp ` A ) <_ ( exp ` B ) ) ) $=
      ( cr wcel wa clt wbr wn ce cfv cle eflt ancoms notbid lenlt reefcl syl2an
      wb 3bitr4d ) ACDZBCDZEZBAFGZHBIJZAIJZFGZHZABKGUEUDKGZUBUCUFUATUCUFRBALMNA
      BOTUECDUDCDUHUGRUAAPBPUEUDOQS $.

    $( The exponential function on real numbers is one-to-one.  (Contributed by
       NM, 21-Aug-2008.)  (Revised by Mario Carneiro, 11-Mar-2014.) $)
    reef11 $p |- ( ( A e. RR /\ B e. RR )
          -> ( ( exp ` A ) = ( exp ` B ) <-> A = B ) ) $=
      ( cr wcel wa cle wbr ce cfv wceq efle ancoms anbi12d letri3 reefcl syl2an
      wb 3bitr4rd ) ACDZBCDZEZABFGZBAFGZEAHIZBHIZFGZUEUDFGZEZABJUDUEJZUAUBUFUCU
      GABKTSUCUGQBAKLMABNSUDCDUECDUIUHQTAOBOUDUENPR $.

    $( The exponential function maps real arguments one-to-one to positive
       reals.  (Contributed by Steve Rodriguez, 25-Aug-2007.)  (Revised by
       Mario Carneiro, 10-Nov-2013.) $)
    reeff1 $p |- ( exp |` RR ) : RR -1-1-> RR+ $=
      ( vx vy cr crp ce cres wf1 wf cv cfv wceq wi wral wfn cc wss eff mpbir2an
      wcel fvres ffn ax-mp ax-resscn fnssres mp2an rpefcl eqeltrd rgen ffnfv wa
      eqeqan12d reef11 biimpd sylbid rgen2a dff13 ) CDECFZGCDUQHZAIZUQJZBIZUQJZ
      KZUSVAKZLZBCMACMURUQCNZUTDSZACMEONZCOPVFOOEHVHQOOEUAUBUCOCEUDUEVGACUSCSZU
      TUSEJZDUSCETZUSUFUGUHACDUQUIRVEABCVIVACSZUJZVCVJVAEJZKZVDVIVLUTVJVBVNVKVA
      CETUKVMVOVDUSVAULUMUNUOABCDUQUPR $.
  $}

  ${
    $d A k n $.  $d k ph $.
    eflegeo.1 $e |- ( ph -> A e. RR ) $.
    eflegeo.2 $e |- ( ph -> 0 <_ A ) $.
    eflegeo.3 $e |- ( ph -> A < 1 ) $.
    $( The exponential function on the reals between 0 and 1 lies below the
       comparable geometric series sum.  (Contributed by Paul Chapman,
       11-Sep-2007.) $)
    eflegeo $p |- ( ph -> ( exp ` A ) <_ ( 1 / ( 1 - A ) ) ) $=
      ( vk vn cn0 cexp co cfv cdiv c1 cle cc0 wcel wceq adantl cr wbr cv cfa ce
      csu cmin cmpt nn0uz eqid eftval reeftcl sylan oveq2 ovex fvmpt reexpcl wa
      0zd cmul cn faccl nnred adantr simpr expge0d nnge1d lemulge12d clt nngt0d
      wb ledivmul syl112anc mpbird cc caddc cseq cli cdm recnd efcllem syl cabs
      absidd eqbrtrd geolim seqex breldm isumle efval isumclim eqcomd 3brtr4d
      expcl ) AHBFUAZIJZWMUBKZLJZFUDZHWNFUDZBUCKZMMBUEJZLJZNAWPWNFGHBGUAZIJZXBU
      BKLJUFZGHXCUFZOHUGAUQZWMHPZWMXDKWPQABGXDWMXDUHZUIRABSPZXGWPSPCBWMUJUKXGWM
      XEKWNQAGWMXCWNHXEXBWMBIULXEUHBWMIUMUNRZAXIXGWNSPZCBWMUOUKZAXGUPZWPWNNTZWN
      WOWNURJNTZXMWNWOXLXMWOXGWOUSPAWMUTRZVAZXMBWMAXIXGCVBAXGVCAOBNTXGDVBVDXMWO
      XPVEVFXMXKXKWOSPOWOVGTXNXOVIXLXLXQXMWOXPVHWNWNWOVJVKVLABVMPZVNXDOVOVPVQZP
      ABCVRZBGXDXHVSVTAVNXEOVOZXAVPTYAXSPABFXEXTABWAKBMVGABCDWBEWCXJWDZYAXAVPVN
      XEOWEMWTLUMWFVTWGAXRWSWQQXTBFWHVTAWRXAAWNXAFXEOHUGXFXJAXRXGWNVMPXTBWMWLUK
      YBWIWJWK $.
  $}

  ${
    $d x A $.
    $( Value of the sine function.  (Contributed by NM, 14-Mar-2005.)  (Revised
       by Mario Carneiro, 10-Nov-2013.) $)
    sinval $p |- ( A e. CC -> ( sin ` A ) =
    ( ( ( exp ` ( _i x. A ) ) - ( exp ` ( -u _i x. A ) ) ) / ( 2 x. _i ) ) ) $=
      ( vx ci cv cmul co ce cneg cmin c2 cdiv cc csin wceq oveq2 fveq2d oveq12d
      cfv oveq1d df-sin ovex fvmpt ) BACBDZEFZGRZCHZUCEFZGRZIFZJCEFZKFCAEFZGRZU
      FAEFZGRZIFZUJKFLMUCANZUIUOUJKUPUEULUHUNIUPUDUKGUCACEOPUPUGUMGUCAUFEOPQSBT
      UOUJKUAUB $.

    $( Value of the cosine function.  (Contributed by NM, 14-Mar-2005.)
       (Revised by Mario Carneiro, 10-Nov-2013.) $)
    cosval $p |- ( A e. CC -> ( cos ` A ) =
       ( ( ( exp ` ( _i x. A ) ) + ( exp ` ( -u _i x. A ) ) ) / 2 ) ) $=
      ( vx ci cv cmul co ce cfv cneg caddc c2 cdiv cc ccos oveq2 fveq2d oveq12d
      wceq oveq1d df-cos ovex fvmpt ) BACBDZEFZGHZCIZUCEFZGHZJFZKLFCAEFZGHZUFAE
      FZGHZJFZKLFMNUCARZUIUNKLUOUEUKUHUMJUOUDUJGUCACEOPUOUGULGUCAUFEOPQSBTUNKLU
      AUB $.
  $}

  $( Domain and codomain of the sine function.  (Contributed by Paul Chapman,
     22-Oct-2007.)  (Revised by Mario Carneiro, 30-Apr-2014.) $)
  sinf $p |- sin : CC --> CC $=
    ( vx cc ci cv cmul co ce cfv cneg cmin c2 cdiv csin df-sin wcel ax-icn mpan
    mulcl efcl syl negicn subcld cc0 wne 2mulicn 2muline0 divcl mp3an23 fmpti )
    ABBCADZEFZGHZCIZUJEFZGHZJFZKCEFZLFZMANUJBOZUPBOZURBOZUSULUOUSUKBOZULBOCBOUS
    VBPCUJRQUKSTUSUNBOZUOBOUMBOUSVCUAUMUJRQUNSTUBUTUQBOUQUCUDVAUEUFUPUQUGUHTUI
    $.

  $( Domain and codomain of the sine function.  (Contributed by Paul Chapman,
     22-Oct-2007.)  (Revised by Mario Carneiro, 30-Apr-2014.) $)
  cosf $p |- cos : CC --> CC $=
    ( vx cc ci cv cmul co ce cfv cneg caddc c2 cdiv ccos df-cos wcel mulcl mpan
    ax-icn efcl syl negicn addcld halfcld fmpti ) ABBCADZEFZGHZCIZUEEFZGHZJFZKL
    FMANUEBOZUKULUGUJULUFBOZUGBOCBOULUMRCUEPQUFSTULUIBOZUJBOUHBOULUNUAUHUEPQUIS
    TUBUCUD $.

  $( Closure of the sine function.  (Contributed by NM, 28-Apr-2005.)  (Revised
     by Mario Carneiro, 30-Apr-2014.) $)
  sincl $p |- ( A e. CC -> ( sin ` A ) e. CC ) $=
    ( cc csin sinf ffvelrni ) BBACDE $.

  $( Closure of the cosine function with a complex argument.  (Contributed by
     NM, 28-Apr-2005.)  (Revised by Mario Carneiro, 30-Apr-2014.) $)
  coscl $p |- ( A e. CC -> ( cos ` A ) e. CC ) $=
    ( cc ccos cosf ffvelrni ) BBACDE $.

  ${
    $d x A $.
    $( Value of the tangent function.  (Contributed by Mario Carneiro,
       14-Mar-2014.) $)
    tanval $p |- ( ( A e. CC /\ ( cos ` A ) =/= 0 ) ->
                   ( tan ` A ) = ( ( sin ` A ) / ( cos ` A ) ) ) $=
      ( vx cc wcel ccos cfv cc0 wne wa ccnv cdif cima ctan csin cdiv wceq simpl
      csn co fveq2 coscl anim1i eldifsn sylibr wf wfn wb cosf ffn elpreima mp2b
      sylanbrc cv oveq12d df-tan ovex fvmpt syl ) ACDZAEFZGHZIZAEJCGRKZLZDZAMFA
      NFZUTOSZPVBUSUTVCDZVEUSVAQVBUTCDZVAIVHUSVIVAAUAUBUTCGUCUDCCEUEECUFVEUSVHI
      UGUHCCEUICAVCEUJUKULBABUMZNFZVJEFZOSVGVDMVJAPVKVFVLUTOVJANTVJAETUNBUOVFUT
      OUPUQUR $.
  $}

  $( The closure of the tangent function with a complex argument.  (Contributed
     by David A. Wheeler, 15-Mar-2014.) $)
  tancl $p |- ( ( A e. CC /\ ( cos ` A ) =/= 0 ) -> ( tan ` A ) e. CC ) $=
    ( cc wcel ccos cfv cc0 wa ctan csin cdiv co tanval sincl adantr coscl simpr
    wne divcld eqeltrd ) ABCZADEZFQZGZAHEAIEZUAJKBALUCUDUATUDBCUBAMNTUABCUBAONT
    UBPRS $.

  ${
    sincld.1 $e |- ( ph -> A e. CC ) $.
    $( Closure of the sine function.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    sincld $p |- ( ph -> ( sin ` A ) e. CC ) $=
      ( cc wcel csin cfv sincl syl ) ABDEBFGDECBHI $.

    $( Closure of the cosine function.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    coscld $p |- ( ph -> ( cos ` A ) e. CC ) $=
      ( cc wcel ccos cfv coscl syl ) ABDEBFGDECBHI $.

    tancld.2 $e |- ( ph -> ( cos ` A ) =/= 0 ) $.
    $( Closure of the tangent function.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    tancld $p |- ( ph -> ( tan ` A ) e. CC ) $=
      ( cc wcel ccos cfv cc0 wne ctan tancl syl2anc ) ABEFBGHIJBKHEFCDBLM $.
  $}

  $( Express the tangent function directly in terms of ` exp ` .  (Contributed
     by Mario Carneiro, 25-Feb-2015.) $)
  tanval2 $p |- ( ( A e. CC /\ ( cos ` A ) =/= 0 ) -> ( tan ` A ) =
    ( ( ( exp ` ( _i x. A ) ) - ( exp ` ( -u _i x. A ) ) ) /
      ( _i x. ( ( exp ` ( _i x. A ) ) + ( exp ` ( -u _i x. A ) ) ) ) ) ) $=
    ( cc wcel cfv cc0 wne ci cmul co ce cdiv c2 2cn ax-icn adantr mulcl sylancr
    wceq efcl a1i ccos wa ctan cneg cmin caddc csin tanval mulcomi oveq2i simpl
    sinval negicn subcld ine0 2ne0 divdiv1d 3eqtr4a cosval oveq12d eqtrd divcld
    syl addcld simpr eqnetrrd diveq0ad necon3bid mpbid divcan7d 3eqtrd ) ABCZAU
    ADZEFZUBZAUCDZGAHIZJDZGUDZAHIZJDZUEIZGKIZLKIZVRWAUFIZLKIZKIZWCWEKIWBGWEHIKI
    VOVPAUGDZVMKIWGAUHVOWHWDVMWFKVOWBLGHIZKIZWBGLHIZKIWHWDWIWKWBKLGMNUIUJVLWHWJ
    RVNAULOVOWBGLVOVRWAVOVQBCZVRBCVOGBCZVLWLNVLVNUKZGAPQVQSVCZVOVTBCZWABCVOVSBC
    VLWPUMWNVSAPQVTSVCZUNZWMVONTZLBCVOMTZGEFVOUOTZLEFVOUPTZUQURVLVMWFRVNAUSOZUT
    VAVOWCWELVOWBGWRWSXAVBVOVRWAWOWQVDZWTVOWFEFWEEFVOVMWFEXCVLVNVEVFVOWFEWEEVOW
    ELXDWTXBVGVHVIZXBVJVOWBGWEWRWSXDXAXEUQVK $.

  $( Express the tangent function directly in terms of ` exp ` .  (Contributed
     by Mario Carneiro, 25-Feb-2015.) $)
  tanval3 $p |- ( ( A e. CC /\ ( ( exp ` ( 2 x. ( _i x. A ) ) ) + 1 ) =/= 0 )
  -> ( tan ` A ) = ( ( ( exp ` ( 2 x. ( _i x. A ) ) ) - 1 ) /
      ( _i x. ( ( exp ` ( 2 x. ( _i x. A ) ) ) + 1 ) ) ) ) $=
    ( cc wcel c2 ci cmul co ce cfv caddc cc0 wne cmin cdiv ax-icn mulcl sylancr
    c1 syl wceq wa cneg ctan simpl efcl negicn subcld addcld cexp cz 2z sylancl
    efexp sqvald eqtrd mulneg1 fveq2d oveq2d efcan eqtr2d oveq12d adddid eqtr4d
    a1i mul12d 2cn ax-1cn addcl simpr mulne0d eqnetrrd mulne0bbd efne0 divcan5d
    ine0 subdid ccos cosval adantr 2cnd divne0d eqnetrd tanval2 syldan 3eqtr4rd
    2ne0 ) ABCZDEAFGZFGZHIZRJGZKLZUAZWHHIZWNEUBZAFGZHIZMGZFGZWNEWNWQJGZFGZFGZNG
    WRXANGZWJRMGZEWKFGZNGAUCIZWMWRXAWNWMWNWQWMWHBCZWNBCWMEBCZWGXGOWGWLUDZEAPQZW
    HUESZWMWPBCZWQBCWMWOBCWGXLUFXIWOAPQWPUESZUGWMXHWTBCXABCOWMWNWQXKXMUHZEWTPQZ
    XKWMWNXAXKXOWMXEXBKWMXEEWNWTFGZFGXBWMWKXPEFWMWKWNWNFGZWNWQFGZJGXPWMWJXQRXRJ
    WMWJWNDUIGZXQWMXGDUJCWJXSTXJUKWHDUMULWMWNXKUNUOZWMXRWNWHUBZHIZFGZRWMWQYBWNF
    WMWPYAHWMXHWGWPYATOXIEAUPQUQURWMXGYCRTXJWHUSSUTZVAWMWNWNWQXKXKXMVBVCURWMEWN
    WTXHWMOVDZXKXNVEUOZWMEWKYEWMWJBCZRBCWKBCWMWIBCZYGWMDBCXGYHVFXJDWHPQWIUESVGW
    JRVHULEKLWMVOVDWGWLVIVJVKVLZWMXGWNKLXJWHVMSVNWMXDWSXEXBNWMXDXQXRMGWSWMWJXQR
    XRMXTYDVAWMWNWNWQXKXKXMVPVCYFVAWGWLAVQIZKLXFXCTWMYJWTDNGZKWGYJYKTWLAVRVSWMW
    TDXNWMVTWMEWTYEXNYIVLDKLWMWFVDWAWBAWCWDWE $.

  $( The sine of a real number in terms of the exponential function.
     (Contributed by NM, 30-Apr-2005.) $)
  resinval $p |- ( A e. RR -> ( sin ` A ) = ( Im ` ( exp ` ( _i x. A ) ) ) ) $=
    ( cr wcel ci cmul co ce cfv cneg cmin c2 cdiv csin cc ax-icn sylancr oveq2d
    ccj wceq syl cim recn cjmul cji oveq1i cjre syl5eq eqtrd fveq2d efcj eqtr3d
    mulcl oveq1d sinval efcl imval2 3syl 3eqtr4d ) ABCZDAEFZGHZDIZAEFZGHZJFZKDE
    FZLFZVAVARHZJFZVFLFZAMHZVAUAHZUSVEVIVFLUSVDVHVAJUSUTRHZGHZVDVHUSVMVCGUSVMDR
    HZARHZEFZVCUSDNCZANCZVMVQSOAUBZDAUCPUSVQVBVPEFVCVOVBVPEUDUEUSVPAVBEAUFQUGUH
    UIUSUTNCZVNVHSUSVRVSWAOVTDAULPZUTUJTUKQUMUSVSVKVGSVTAUNTUSWAVANCVLVJSWBUTUO
    VAUPUQUR $.

  $( The cosine of a real number in terms of the exponential function.
     (Contributed by NM, 30-Apr-2005.) $)
  recosval $p |- ( A e. RR -> ( cos ` A ) = ( Re ` ( exp ` ( _i x. A ) ) ) ) $=
    ( cr wcel ci cmul co ce cfv cneg caddc c2 cdiv ccj ccos wceq ax-icn sylancr
    cc oveq2d syl cre recn cjmul cji oveq1i cjre syl5eq eqtrd fveq2d mulcl efcj
    eqtr3d oveq1d cosval efcl reval 3syl 3eqtr4d ) ABCZDAEFZGHZDIZAEFZGHZJFZKLF
    ZVAVAMHZJFZKLFZANHZVAUAHZUSVEVHKLUSVDVGVAJUSUTMHZGHZVDVGUSVLVCGUSVLDMHZAMHZ
    EFZVCUSDRCZARCZVLVPOPAUBZDAUCQUSVPVBVOEFVCVNVBVOEUDUEUSVOAVBEAUFSUGUHUIUSUT
    RCZVMVGOUSVQVRVTPVSDAUJQZUTUKTULSUMUSVRVJVFOVSAUNTUSVTVARCVKVIOWAUTUOVAUPUQ
    UR $.

  ${
    $d A k n $.  $d F k $.
    efi4p.1 $e |- F = ( n e. NN0 |-> ( ( ( _i x. A ) ^ n ) / ( ! ` n ) ) ) $.
    $( Separate out the first four terms of the infinite series expansion of
       the exponential function of an imaginary number.  (Contributed by Paul
       Chapman, 19-Jan-2008.)  (Revised by Mario Carneiro, 30-Apr-2014.) $)
    efi4p $p |- ( A e. CC -> ( exp ` ( _i x. A ) ) =
        ( ( ( 1 - ( ( A ^ 2 ) / 2 ) ) + ( _i x. ( A - ( ( A ^ 3 ) / 6 ) ) ) ) +
          sum_ k e. ( ZZ>= ` 4 ) ( F ` k ) ) ) $=
      ( cc wcel ci cmul co c1 caddc c2 cexp cdiv c3 c6 wceq ax-icn syl ce c4 cv
      cfv cuz csu cmin mulcl mpan ef4p ax-1cn addcl sylancr sqcld halfcld expcl
      cn0 3nn0 sylancl cc0 wne 6cn 6re gt0ne0ii divcl mp3an23 addassd a1i add4d
      6pos cneg 2nn0 mulexp mp3an13 oveq1i sqcl mulm1d 3eqtrd oveq1d 2cn divneg
      i2 2ne0 eqtr4d oveq2d negsub eqtrd i3 syl6eq mpan2 negicn pm3.2i mulneg12
      wa divass negcld adddi mp3an1 mpdan 3eqtr2d oveq12d ) AFGZHAIJZUAUDZKXCLJ
      ZXCMNJZMOJZLJXCPNJZQOJZLJZUBUEUDBUCDUDBUFZLJZKAMNJZMOJZUGJZHAAPNJZQOJZUGJ
      ZIJZLJZXKLJXBXCFGZXDXLRHFGZXBYASHAUHUIZXCBCDEUJTXBXJXTXKLXBXJXEXGXILJLJKX
      GLJZXCXILJZLJXTXBXEXGXIXBKFGZYAXEFGUKYCKXCULUMXBXFXBXCYCUNUOZXBXHFGZXIFGZ
      XBYAPUQGZYHYCURXCPUPUSYHQFGZQUTVAZYIVBQVCVJVDZXHQVEVFTZVGXBKXCXGXIYFXBUKV
      HYCYGYNVIXBYDXOYEXSLXBYDKXNVKZLJZXOXBXGYOKLXBXGXMVKZMOJZYOXBXFYQMOXBXFHMN
      JZXMIJZKVKZXMIJZYQYBXBMUQGXFYTRSVLHAMVMVNYTUUBRXBYSUUAXMIWBVOVHXBXMAVPZVQ
      VRVSXBXMFGZYOYRRZUUCUUDMFGMUTVAUUEVTWCXMMWAVFTWDWEXBYFXNFGYPXORUKXBXMUUCU
      OKXNWFUMWGXBYEXCHXQVKZIJZLJZHAUUFLJZIJZXSXBXIUUGXCLXBXIHVKZXPIJZQOJZUUKXQ
      IJZUUGXBXHUULQOXBXHHPNJZXPIJZUULYBXBYJXHUUPRSURHAPVMVNUUOUUKXPIWHVOWIVSXB
      XPFGZUUMUUNRZXBYJUUQURAPUPWJZUUKFGUUQYKYLWNUURWKYKYLVBYMWLUUKXPQWOVNTXBYB
      XQFGZUUNUUGRSXBUUQUUTUUSUUQYKYLUUTVBYMXPQVEVFTZHXQWMUMVRWEXBUUFFGZUUJUUHR
      ZXBXQUVAWPYBXBUVBUVCSHAUUFWQWRWSXBUUIXRHIXBUUTUUIXRRUVAAXQWFWSWEWTXAVRVSW
      G $.

    $( Separate out the first four terms of the infinite series expansion of
       the sine of a real number.  (Contributed by Paul Chapman, 19-Jan-2008.)
       (Revised by Mario Carneiro, 30-Apr-2014.) $)
    resin4p $p |- ( A e. RR -> ( sin ` A ) = ( ( A - ( ( A ^ 3 ) / 6 ) ) +
                       ( Im ` sum_ k e. ( ZZ>= ` 4 ) ( F ` k ) ) ) ) $=
      ( cr wcel cfv ci cmul co cim c3 cexp c6 c4 caddc c1 cc sylancr csin ce cv
      cdiv cmin cuz csu resinval c2 wceq recn efi4p syl fveq2d resqcl rehalfcld
      1re resubcl recnd ax-icn cn0 3nn0 reexpcl mpan2 cc0 wne 6re 6pos gt0ne0ii
      redivcl mp3an23 mpdan mulcl addcld 4nn0 eftlcl imaddd crimd oveq1d 3eqtrd
      sylancl eqtrd ) AFGZAUAHIAJKZUBHZLHZAAMNKZOUDKZUEKZPUFHBUCDHBUGZLHZQKZAUH
      WCWFRAUINKZUIUDKZUEKZIWIJKZQKZWJQKZLHWQLHZWKQKWLWCWEWRLWCASGZWEWRUJAUKZAB
      CDEULUMUNWCWQWJWCWOWPWCWOWCRFGWNFGWOFGUQWCWMAUOUPRWNURTZUSWCISGZWISGWPSGU
      TWCWIWCWHFGZWIFGWCWGFGZXDWCMVAGXEVBAMVCVDXEOFGOVEVFXDVGOVGVHVIWGOVJVKUMAW
      HURVLZUSIWIVMTVNWCWDSGZPVAGWJSGWCXCWTXGUTXAIAVMTVOWDBCDPEVPWAVQWCWSWIWKQW
      CWOWIXBXFVRVSVTWB $.

    $( Separate out the first four terms of the infinite series expansion of
       the cosine of a real number.  (Contributed by Paul Chapman,
       19-Jan-2008.)  (Revised by Mario Carneiro, 30-Apr-2014.) $)
    recos4p $p |- ( A e. RR -> ( cos ` A ) = ( ( 1 - ( ( A ^ 2 ) / 2 ) ) +
                       ( Re ` sum_ k e. ( ZZ>= ` 4 ) ( F ` k ) ) ) ) $=
      ( cr wcel cfv ci cmul co cre c1 c2 c4 caddc c3 c6 cc sylancr ccos ce cexp
      cdiv cmin cuz cv csu recosval wceq recn efi4p syl fveq2d resqcl rehalfcld
      1re resubcl recnd ax-icn cn0 3nn0 reexpcl mpan2 cc0 wne 6re 6pos gt0ne0ii
      redivcl mp3an23 mpdan mulcl addcld 4nn0 eftlcl readdd crred oveq1d 3eqtrd
      sylancl eqtrd ) AFGZAUAHIAJKZUBHZLHZMANUCKZNUDKZUEKZOUFHBUGDHBUHZLHZPKZAU
      IWCWFWIIAAQUCKZRUDKZUEKZJKZPKZWJPKZLHWQLHZWKPKWLWCWEWRLWCASGZWEWRUJAUKZAB
      CDEULUMUNWCWQWJWCWIWPWCWIWCMFGWHFGWIFGUQWCWGAUOUPMWHURTZUSWCISGZWOSGWPSGU
      TWCWOWCWNFGZWOFGWCWMFGZXDWCQVAGXEVBAQVCVDXERFGRVEVFXDVGRVGVHVIWMRVJVKUMAW
      NURVLZUSIWOVMTVNWCWDSGZOVAGWJSGWCXCWTXGUTXAIAVMTVOWDBCDOEVPWAVQWCWSWIWKPW
      CWIWOXBXFVRVSVTWB $.
  $}

  $( The sine of a real number is real.  (Contributed by NM, 30-Apr-2005.) $)
  resincl $p |- ( A e. RR -> ( sin ` A ) e. RR ) $=
    ( cr wcel csin cfv ci cmul co ce resinval cc ax-icn recn mulcl sylancr efcl
    cim syl imcld eqeltrd ) ABCZADEFAGHZIEZQEBAJUAUCUAUBKCZUCKCUAFKCAKCUDLAMFAN
    OUBPRST $.

  $( The cosine of a real number is real.  (Contributed by NM, 30-Apr-2005.) $)
  recoscl $p |- ( A e. RR -> ( cos ` A ) e. RR ) $=
    ( cr wcel ccos cfv ci cmul co ce recosval cc ax-icn recn mulcl sylancr efcl
    cre syl recld eqeltrd ) ABCZADEFAGHZIEZQEBAJUAUCUAUBKCZUCKCUAFKCAKCUDLAMFAN
    OUBPRST $.

  $( The closure of the tangent function with a real argument.  (Contributed by
     David A. Wheeler, 15-Mar-2014.) $)
  retancl $p |- ( ( A e. RR /\ ( cos ` A ) =/= 0 ) -> ( tan ` A ) e. RR ) $=
    ( cr wcel ccos cfv cc0 wne wa ctan csin cdiv co cc wceq recn tanval recoscl
    sylan resincl redivcl syl3an1 syl3an2 3anidm12 eqeltrd ) ABCZADEZFGZHAIEZAJ
    EZUFKLZBUEAMCUGUHUJNAOAPRUEUGUJBCZUEUEUFBCZUGUKAQUEUIBCULUGUKASUIUFTUAUBUCU
    D $.

  ${
    resincld.1 $e |- ( ph -> A e. RR ) $.
    $( Closure of the sine function.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    resincld $p |- ( ph -> ( sin ` A ) e. RR ) $=
      ( cr wcel csin cfv resincl syl ) ABDEBFGDECBHI $.

    $( Closure of the cosine function.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    recoscld $p |- ( ph -> ( cos ` A ) e. RR ) $=
      ( cr wcel ccos cfv recoscl syl ) ABDEBFGDECBHI $.

    retancld.2 $e |- ( ph -> ( cos ` A ) =/= 0 ) $.
    $( Closure of the tangent function.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    retancld $p |- ( ph -> ( tan ` A ) e. RR ) $=
      ( cr wcel ccos cfv cc0 wne ctan retancl syl2anc ) ABEFBGHIJBKHEFCDBLM $.
  $}

  $( The sine of a negative is the negative of the sine.  (Contributed by NM,
     30-Apr-2005.) $)
  sinneg $p |- ( A e. CC -> ( sin ` -u A ) = -u ( sin ` A ) ) $=
    ( cc wcel cneg csin cfv ci cmul co ce cmin cdiv wceq sinval syl ax-icn mpan
    mulcl efcl eqtr4d c2 negcl negeqd negicn subcld cc0 2mulicn 2muline0 divneg
    wne mp3an23 eqtrd mulneg12 eqcomd fveq2d mul2neg oveq12d negsubdi2d oveq1d
    ) ABCZADZEFZGVAHIZJFZGDZVAHIZJFZKIZUAGHIZLIZAEFZDZUTVABCVBVJMAUBVANOUTVLGAH
    IZJFZVEAHIZJFZKIZDZVILIZVJUTVLVQVILIZDZVSUTVKVTANUCUTVQBCZWAVSMZUTVNVPUTVMB
    CZVNBCGBCZUTWDPGARQVMSOZUTVOBCZVPBCVEBCUTWGUDVEARQVOSOZUEWBVIBCVIUFUJWCUGUH
    VQVIUIUKOULUTVHVRVILUTVHVPVNKIVRUTVDVPVGVNKUTVCVOJUTVOVCWEUTVOVCMPGAUMQUNUO
    UTVFVMJWEUTVFVMMPGAUPQUOUQUTVNVPWFWHURTUSTT $.

  $( The cosines of a number and its negative are the same.  (Contributed by
     NM, 30-Apr-2005.) $)
  cosneg $p |- ( A e. CC -> ( cos ` -u A ) = ( cos ` A ) ) $=
    ( cc wcel ci cneg cmul co ce cfv caddc c2 cdiv ccos wceq ax-icn mpan fveq2d
    mulcl efcl syl mulneg12 eqcomd mul2neg oveq12d negicn addcomd oveq1d cosval
    eqtrd negcl 3eqtr4d ) ABCZDAEZFGZHIZDEZUMFGZHIZJGZKLGZDAFGZHIZUPAFGZHIZJGZK
    LGUMMIZAMIULUSVEKLULUSVDVBJGVEULUOVDURVBJULUNVCHULVCUNDBCZULVCUNNODAUAPUBQU
    LUQVAHVGULUQVANODAUCPQUDULVDVBULVCBCZVDBCUPBCULVHUEUPARPVCSTULVABCZVBBCVGUL
    VIODARPVASTUFUIUGULUMBCVFUTNAUJUMUHTAUHUK $.

  $( The tangent of a negative is the negative of the tangent.  (Contributed by
     David A. Wheeler, 23-Mar-2014.) $)
  tanneg $p |- ( ( A e. CC /\ ( cos ` A ) =/= 0 ) ->
                      ( tan ` -u A ) = -u ( tan ` A ) ) $=
    ( cc wcel ccos cfv cc0 wne wa csin cdiv cneg ctan wceq coscl divneg syl3an1
    co sincl tanval adantr syl3an2 3anidm12 negeqd cosneg eqnetrd syldan sinneg
    simpr negcl sylan oveq12d eqtrd 3eqtr4rd ) ABCZADEZFGZHZAIEZUOJQZKZURKZUOJQ
    ZALEZKAKZLEZUNUPUTVBMZUNUNUOBCZUPVFANUNURBCVGUPVFARURUOOPUAUBUQVCUSASUCUQVE
    VDIEZVDDEZJQZVBUNUPVIFGZVEVJMZUQVIUOFUNVIUOMUPAUDZTUNUPUHUEUNVDBCVKVLAUIVDS
    UJUFUNVJVBMUPUNVHVAVIUOJAUGVMUKTULUM $.

  $( Value of the sine function at 0.  (Contributed by Steve Rodriguez,
     14-Mar-2005.) $)
  sin0 $p |- ( sin ` 0 ) = 0 $=
    ( cc0 csin cfv cneg wceq neg0 fveq2i cc wcel 0cn sinneg ax-mp eqtr3i eqnegi
    sincl mpbi ) ABCZQDZEQAEADZBCZQRSABFGAHIZTREJAKLMQUAQHIJAOLNP $.

  $( Value of the cosine function at 0.  (Contributed by NM, 30-Apr-2005.) $)
  cos0 $p |- ( cos ` 0 ) = 1 $=
    ( cc0 ccos cfv ci cmul co ce cre c1 cr wcel 0re recosval ax-mp it0e0 fveq2i
    wceq ef0 eqtri re1 ) ABCZDAEFZGCZHCZIAJKUAUDQLAMNUDIHCIUCIHUCAGCIUBAGOPRSPT
    SS $.

  $( The value of the tangent function at zero is zero.  (Contributed by David
     A. Wheeler, 16-Mar-2014.) $)
  tan0 $p |- ( tan ` 0 ) = 0 $=
    ( cc0 ctan cfv csin ccos cdiv co cc wcel wne wceq c1 ax-1ne0 eqnetri tanval
    0cn cos0 mp2an sin0 oveq1i ax-1cn eqeltri div0i 3eqtri ) ABCZADCZAECZFGZAUG
    FGAAHIUGAJUEUHKPUGLAQMNZAORUFAUGFSTUGUGLHQUAUBUIUCUD $.

  $( The exponential function in terms of sine and cosine.  (Contributed by NM,
     30-Apr-2005.) $)
  efival $p |- ( A e. CC -> ( exp ` ( _i x. A ) ) =
                ( ( cos ` A ) + ( _i x. ( sin ` A ) ) ) ) $=
    ( cc wcel ci cmul co ce cfv caddc c2 cdiv wceq ax-icn mulcl syl 2cn 3eqtr4d
    2ne0 c1 eqtr3i cneg cmin ccos csin mpan negicn addcld subcld cc0 wne pm3.2i
    efcl wa divdir mp3an3 syl2anc pncan3d oveq2d addassd 2timesd oveq1d divcan3
    mp3an23 eqtr2d cosval 2mulicn 2muline0 mp3an13 sinval divrec mulid2i oveq1i
    div12 ine0 dividi oveq2i ax-1cn divmuldivi halfcn mulid1i syl6eqr oveq12d )
    ABCZDAEFZGHZDUAZAEFZGHZIFZWEWHUBFZIFZJKFZWIJKFZWJJKFZIFZWEAUCHZDAUDHZEFZIFW
    CWIBCZWJBCZWLWOLZWCWEWHWCWDBCZWEBCZDBCZWCXBMDANUEWDULOZWCWGBCZWHBCWFBCWCXFU
    FWFANUEWGULOZUGWCWEWHXEXGUHZWSWTJBCZJUIUJZUMXAXIXJPRUKWIWJJUNUOUPWCWLJWEEFZ
    JKFZWEWCWKXKJKWCWEWHWJIFZIFWEWEIFWKXKWCXMWEWEIWCWHWEXGXEUQURWCWEWHWJXEXGXHU
    SWCWEXEUTQVAWCXCXLWELZXEXCXIXJXNPRWEJVBVCOVDWCWPWMWRWNIAVEWCDWJJDEFZKFZEFZW
    JDXOKFZEFZWRWNWCWTXQXSLZXHXDWTXOBCZXOUIUJZUMXTMYAYBVFVGUKDWJXOVMVHOWCWQXPDE
    AVIURWCWNWJSJKFZEFZXSWCWTWNYDLZXHWTXIXJYEPRWJJVJVCOXRYCWJESDEFZXOKFZXRYCYFD
    XOKDMVKVLYCSEFZYGYCYCDDKFZEFYHYGYISYCEDMVNVOVPSJDDVQPMMRVNVRTYCVSVTTTVPWAQW
    BQ $.

  $( The exponential function in terms of sine and cosine.  (Contributed by NM,
     14-Jan-2006.) $)
  efmival $p |- ( A e. CC -> ( exp ` ( -u _i x. A ) ) =
                ( ( cos ` A ) - ( _i x. ( sin ` A ) ) ) ) $=
    ( cc wcel ci cneg cmul co ce cfv ccos csin cmin wceq ax-icn mulneg12 fveq2d
    mpan caddc sylancr eqtrd negcl efival syl cosneg sinneg sincl mulneg2 coscl
    oveq2d oveq12d mulcl negsubd ) ABCZDEAFGZHIDAEZFGZHIZAJIZDAKIZFGZLGZUMUNUPH
    DBCZUMUNUPMNDAOQPUMUQUOJIZDUOKIZFGZRGZVAUMUOBCUQVFMAUAUOUBUCUMVFURUTEZRGVAU
    MVCURVEVGRAUDUMVEDUSEZFGZVGUMVDVHDFAUEUIUMVBUSBCZVIVGMNAUFZDUSUGSTUJUMURUTA
    UHUMVBVJUTBCNVKDUSUKSULTTT $.

  $( Value of the hyperbolic sine of a complex number.  (Contributed by Mario
     Carneiro, 4-Apr-2015.) $)
  sinhval $p |- ( A e. CC -> ( ( sin ` ( _i x. A ) ) / _i ) =
    ( ( ( exp ` A ) - ( exp ` -u A ) ) / 2 ) ) $=
    ( cc wcel ci cmul co cfv cdiv ce cneg cmin c2 c1 oveq1i ax-icn eqtri oveq1d
    wceq a1i eqtrd csin ixi mulass mp3an12 mulm1 3eqtr3a fveq2d mulneg1i negeqi
    negneg1e1 negicn mulid2 oveq12d mulcl mpan sinval syl irec ine0 reccli efcl
    negnegi negcl halfcld mulneg12 sylancr 2cnd cc0 wne 2ne0 divnegd negsubdi2d
    subcld oveq2d divrec2d divdiv1d 3eqtr2d syl5eqr 3eqtr4d divcan3d ) ABCZDAEF
    ZUAGZDHFDAIGZAJZIGZKFZLHFZEFZDHFWHWAWCWIDHWADWBEFZIGZDJZWBEFZIGZKFZLDEFZHFZ
    WFWDKFZWPHFZWCWIWAWOWRWPHWAWKWFWNWDKWAWJWEIWADDEFZAEFZMJZAEFWJWEWTXBAEUBNDB
    CZXCWAXAWJROODDAUCUDAUEUFUGWAWMAIWAWLDEFZAEFZMAEFWMAXDMAEXDWTJZMDDOOUHXFXBJ
    MWTXBUBUIUJPPNWLBCXCWAXEWMRUKOWLDAUCUDAULUFUGUMQWAWBBCZWCWQRXCWAXGODAUNUOWB
    UPUQWAWIMDHFZJZWHEFZWSXIDWHEXIWLJDXHWLURUIDOVBPNWAXJXHWHJZEFZWSWAXHBCWHBCXJ
    XLRDOUSUTWAWGWAWDWFAVAZWAWEBCWFBCAVCWEVAUQZVMZVDZXHWHVEVFWAXLXHWRLHFZEFXQDH
    FWSWAXKXQXHEWAXKWGJZLHFXQWAWGLXOWAVGZLVHVIWAVJSZVKWAXRWRLHWAWDWFXMXNVLQTVNW
    AXQDWAWRWAWFWDXNXMVMZVDXCWAOSZDVHVIWAUSSZVOWAWRLDYAXSYBXTYCVPVQTVRVSQWAWHDX
    PYBYCVTT $.

  $( Value of the hyperbolic cosine of a complex number.  (Contributed by Mario
     Carneiro, 4-Apr-2015.) $)
  coshval $p |- ( A e. CC -> ( cos ` ( _i x. A ) ) =
    ( ( ( exp ` A ) + ( exp ` -u A ) ) / 2 ) ) $=
    ( cc wcel ci cmul co cfv ce cneg caddc c2 cdiv wceq ax-icn c1 oveq1i mulass
    syl ixi mp3an12 ccos mulcl mpan cosval mulm1 3eqtr3a fveq2d mulneg1i negeqi
    negneg1e1 3eqtri negicn mulid2 oveq12d negcl efcl addcomd eqtrd oveq1d ) AB
    CZDAEFZUAGZDVAEFZHGZDIZVAEFZHGZJFZKLFZAHGZAIZHGZJFZKLFUTVABCZVBVIMDBCZUTVNN
    DAUBUCVAUDRUTVHVMKLUTVHVLVJJFVMUTVDVLVGVJJUTVCVKHUTDDEFZAEFZOIZAEFVCVKVPVRA
    ESPVOVOUTVQVCMNNDDAQTAUEUFUGUTVFAHUTVEDEFZAEFZOAEFVFAVSOAEVSVPIVRIODDNNUHVP
    VRSUIUJUKPVEBCVOUTVTVFMULNVEDAQTAUMUFUGUNUTVLVJUTVKBCVLBCAUOVKUPRAUPUQURUSU
    R $.

  $( The hyperbolic sine of a real number is real.  (Contributed by Mario
     Carneiro, 4-Apr-2015.) $)
  resinhcl $p |- ( A e. RR -> ( ( sin ` ( _i x. A ) ) / _i ) e. RR ) $=
    ( cr wcel ci cmul co csin cfv cdiv ce cneg cmin c2 cc wceq recn sinhval syl
    reefcl renegcl reefcld resubcld rehalfcld eqeltrd ) ABCZDAEFGHDIFZAJHZAKZJH
    ZLFZMIFZBUEANCUFUKOAPAQRUEUJUEUGUIASUEUHATUAUBUCUD $.

  $( The hyperbolic cosine of a real number is a positive real.  (Contributed
     by Mario Carneiro, 4-Apr-2015.) $)
  rpcoshcl $p |- ( A e. RR -> ( cos ` ( _i x. A ) ) e. RR+ ) $=
    ( cr wcel ci cmul co ccos cfv ce cneg caddc c2 cdiv crp cc wceq coshval syl
    recn rpefcl renegcl rpefcld rpaddcld rphalfcld eqeltrd ) ABCZDAEFGHZAIHZAJZ
    IHZKFZLMFZNUFAOCUGULPASAQRUFUKUFUHUJATUFUIAUAUBUCUDUE $.

  $( The hyperbolic cosine of a real number is real.  (Contributed by Mario
     Carneiro, 4-Apr-2015.) $)
  recoshcl $p |- ( A e. RR -> ( cos ` ( _i x. A ) ) e. RR ) $=
    ( cr wcel ci cmul co ccos cfv rpcoshcl rpred ) ABCDAEFGHAIJ $.

  $( The hyperbolic tangent of a real number is real.  (Contributed by Mario
     Carneiro, 4-Apr-2015.) $)
  retanhcl $p |- ( A e. RR -> ( ( tan ` ( _i x. A ) ) / _i ) e. RR ) $=
    ( cr wcel ci cmul co ctan cfv cdiv csin ccos cc0 wne wceq ax-icn recn mulcl
    cc sylancr a1i rpcoshcl rpne0d tanval syl2anc oveq1d sincld recnd divdiv32d
    recoshcl ine0 eqtrd resinhcl rerpdivcld eqeltrd ) ABCZDAEFZGHZDIFZUPJHZDIFZ
    UPKHZIFZBUOURUSVAIFZDIFVBUOUQVCDIUOUPRCZVALMUQVCNUODRCZARCVDOAPDAQSZUOVAAUA
    ZUBZUPUCUDUEUOUSVADUOUPVFUFUOVAAUIUGVEUOOTVHDLMUOUJTUHUKUOUTVAAULVGUMUN $.

  $( The hyperbolic tangent of a real number is upper bounded by ` 1 ` .
     (Contributed by Mario Carneiro, 4-Apr-2015.) $)
  tanhlt1 $p |- ( A e. RR -> ( ( tan ` ( _i x. A ) ) / _i ) < 1 ) $=
    ( cr wcel ci cmul co cfv cdiv ce c1 clt c2 cc0 wne wceq recnd a1i syl wbr
    cc ctan cneg cmin caddc csin ccos ax-icn recn mulcl sylancr rpcoshcl rpne0d
    tanval syl2anc oveq1d sincld recoshcl ine0 divdiv32d sinhval coshval 3eqtrd
    oveq12d reefcl renegcl resubcld readdcld 2cnd eqnetrrd 2ne0 divne0bd mpbird
    reefcld divcan7d eqtrd rpefcld ltsubrpd ltaddrpd lttrd mulid1d 1red addgt0d
    breqtrrd wb efgt0 ltdivmul syl112anc eqbrtrd ) ABCZDAEFZUAGZDHFZAIGZAUBZIGZ
    UCFZWMWOUDFZHFZJKWIWLWPLHFZWQLHFZHFZWRWIWLWJUEGZWJUFGZHFZDHFXBDHFZXCHFXAWIW
    KXDDHWIWJTCZXCMNWKXDOWIDTCZATCZXFUGAUHZDAUIUJZWIXCAUKULZWJUMUNUOWIXBXCDWIWJ
    XJUPWIXCAUQPXGWIUGQXKDMNWIURQUSWIXEWSXCWTHWIXHXEWSOXIAUTRWIXHXCWTOXIAVARZVC
    VBWIWPWQLWIWPWIWMWOAVDZWIWNAVEZVMZVFZPWIWQWIWMWOXMXOVGZPZWIVHZWIWQMNWTMNWIX
    CWTMXLXKVIWIWQLXRXSLMNWIVJQZVKVLXTVNVOWIWRJKSZWPWQJEFZKSZWIWPWQYBKWIWPWMWQX
    PXMXQWIWMWOXMWIWNXNVPZVQWIWMWOXMYDVRVSWIWQXRVTWCWIWPBCJBCWQBCMWQKSYAYCWDXPW
    IWAXQWIWMWOXMXOAWEWIWNBCMWOKSXNWNWERWBWPJWQWFWGVLWH $.

  $( The hyperbolic tangent of a real number is bounded by ` 1 ` .
     (Contributed by Mario Carneiro, 4-Apr-2015.) $)
  tanhbnd $p |- ( A e. RR ->
    ( ( tan ` ( _i x. A ) ) / _i ) e. ( -u 1 (,) 1 ) ) $=
    ( cr wcel ci cmul co ctan cfv cdiv c1 clt wbr cc ax-icn sylancr a1i cc0 wne
    cneg wceq cioo retanhcl recn mulcl ccos rpcoshcl rpne0d tancld ine0 divnegd
    mulneg2 fveq2d tanneg syl2anc oveq1d eqtr4d renegcl tanhlt1 syl eqbrtrd 1re
    eqtrd ltnegcon1 sylancl mpbid cxr w3a neg1rr rexri elioo2 mp2an syl3anbrc
    wb ) ABCZDAEFZGHZDIFZBCZJSZVQKLZVQJKLZVQVSJUAFCZAUBZVNVQSZJKLZVTVNWDDASZEFZ
    GHZDIFZJKVNWDVPSZDIFWIVNVPDVNVOVNDMCZAMCZVOMCZNAUCZDAUDOZVNVOUEHZAUFUGZUHWK
    VNNPDQRVNUIPUJVNWHWJDIVNWHVOSZGHZWJVNWGWRGVNWKWLWGWRTNWNDAUKOULVNWMWPQRWSWJ
    TWOWQVOUMUNVBUOUPVNWFBCWIJKLAUQWFURUSUTVNVRJBCWEVTVMWCVAVQJVCVDVEAURVSVFCJV
    FCWBVRVTWAVGVMVSVHVIJVAVIVSJVQVJVKVL $.

  $( Eulerian representation of the complex exponential.  (Suggested by Jeff
     Hankins, 3-Jul-2006.)  (Contributed by NM, 4-Jul-2006.) $)
  efeul $p |- ( A e. CC -> ( exp ` A ) = ( ( exp ` ( Re ` A ) ) x.
               ( ( cos ` ( Im ` A ) ) + ( _i x. ( sin ` ( Im ` A ) ) ) ) ) ) $=
    ( cc wcel ce cfv cre ci cim cmul co caddc ccos csin replim fveq2d wceq recl
    recnd ax-icn imcl mulcl sylancr efadd syl2anc efival syl oveq2d 3eqtrd ) AB
    CZADEAFEZGAHEZIJZKJZDEZUJDEZULDEZIJZUOUKLEGUKMEIJKJZIJUIAUMDANOUIUJBCULBCZU
    NUQPUIUJAQRUIGBCUKBCZUSSUIUKATRZGUKUAUBUJULUCUDUIUPURUOIUIUTUPURPVAUKUEUFUG
    UH $.

  $( The exponentials of two imaginary numbers are equal iff their sine and
     cosine components are equal.  (Contributed by Paul Chapman,
     15-Mar-2008.) $)
  efieq $p |- ( ( A e. RR /\ B e. RR ) ->
       ( ( exp ` ( _i x. A ) ) = ( exp ` ( _i x. B ) ) <->
         ( ( cos ` A ) = ( cos ` B ) /\ ( sin ` A ) = ( sin ` B ) ) ) ) $=
    ( cr wcel wa ci cmul co ce wceq ccos csin caddc cc wb efival syl2an recoscl
    cfv recn eqeqan12d resincl jca cru bitrd ) ACDZBCDZEFAGHISZFBGHISZJZAKSZFAL
    SZGHMHZBKSZFBLSZGHMHZJZUKUNJULUOJEZUFANDZBNDZUJUQOUGATBTUSUTUHUMUIUPAPBPUAQ
    UFUKCDZULCDZEUNCDZUOCDZEUQUROUGUFVAVBARAUBUCUGVCVDBRBUBUCUKULUNUOUDQUE $.

  $( Addition formula for sine.  Equation 14 of [Gleason] p. 310.  (Contributed
     by Steve Rodriguez, 10-Nov-2006.)  (Revised by Mario Carneiro,
     30-Apr-2014.) $)
  sinadd $p |- ( ( A e. CC /\ B e. CC ) -> ( sin ` ( A + B ) ) =
       ( ( ( sin ` A ) x. ( cos ` B ) ) + ( ( cos ` A ) x. ( sin ` B ) ) ) ) $=
    ( cc wcel caddc co csin cfv ci cmul ce cmin c2 wceq a1i ax-icn mulcld eqtrd
    mulcl sylancr cneg cdiv ccos addcl sinval syl 2cn coscl adantr sincl adantl
    wa addcld mulassd adddid mul12d mulcomd oveq2d oveq12d 2mulicn cc0 2muline0
    divmuld mpbird pnncand adddi mp3an1 fveq2d simpl simpr efadd syl2anc efival
    wne oveqan12d muladdd 3eqtrd negicn efmival mulsubd 2timesd 3eqtr4d addcomd
    oveq1d ) ACDZBCDZULZABEFZGHZIWHJFZKHZIUAZWHJFZKHZLFZMIJFZUBFZAGHZBUCHZJFZAU
    CHZBGHZJFZEFZWGWHCDWIWQNABUDWHUEUFWGMXAIXBJFZJFZWSIWRJFZJFZEFZJFZWPUBFZXCWT
    EFZWQXDWGXKXLNWPXLJFZXJNWGXMMIXLJFZJFXJWGMIXLMCDZWGUGOICDZWGPOZWGXCWTWGXAXB
    WEXACDWFAUHUIZWFXBCDZWEBUJUKZQZWGWRWSWEWRCDZWFAUJUIZWFWSCDWEBUHUKZQZUMZUNWG
    XNXIMJWGXNIXCJFZIWTJFZEFXIWGIXCWTXQYAYEUOWGYGXFYHXHEWGIXAXBXQXRXTUPWGYHIWSW
    RJFZJFXHWGWTYIIJWGWRWSYCYDUQURWGIWSWRXQYDYCUPRUSRURRWGXJWPXLWGXOXICDXJCDUGW
    GXFXHWGXAXEXRWGXPXSXECDPXTIXBSTZQWGWSXGYDWGXPYBXGCDPYCIWRSTZQUMZMXISTWPCDWG
    UTOYFWPVAVNWGVBOVCVDWGWOXJWPUBWGXAWSJFZXEXGJFZEFZXIEFZYOXILFZLFXIXIEFWOXJWG
    YOXIXIWGYMYNWGXAWSXRYDQWGXEXGYJYKQUMYLYLVEWGWKYPWNYQLWGWKIAJFZIBJFZEFZKHZYR
    KHZYSKHZJFZYPWGWJYTKXPWEWFWJYTNPIABVFVGVHWGYRCDZYSCDZUUAUUDNWGXPWEUUEPWEWFV
    IZIASTWGXPWFUUFPWEWFVJZIBSTYRYSVKVLWGUUDXAXGEFZWSXEEFZJFYPWEWFUUBUUIUUCUUJJ
    AVMBVMVOWGXAXGWSXEXRYKYDYJVPRVQWGWNWLAJFZWLBJFZEFZKHZUUKKHZUULKHZJFZYQWGWMU
    UMKWLCDZWEWFWMUUMNVRWLABVFVGVHWGUUKCDZUULCDZUUNUUQNWGUURWEUUSVRUUGWLASTWGUU
    RWFUUTVRUUHWLBSTUUKUULVKVLWGUUQXAXGLFZWSXELFZJFYQWEWFUUOUVAUUPUVBJAVSBVSVOW
    GXAXGWSXEXRYKYDYJVTRVQUSWGXIYLWAWBWDWGWTXCYEYAWCWBR $.

  $( Addition formula for cosine.  Equation 15 of [Gleason] p. 310.
     (Contributed by NM, 15-Jan-2006.)  (Revised by Mario Carneiro,
     30-Apr-2014.) $)
  cosadd $p |- ( ( A e. CC /\ B e. CC ) -> ( cos ` ( A + B ) ) =
       ( ( ( cos ` A ) x. ( cos ` B ) ) - ( ( sin ` A ) x. ( sin ` B ) ) ) ) $=
    ( cc wcel caddc co ccos cfv ci cmul ce cneg cmin wceq mulcld ax-icn sylancr
    c2 mulcl 3eqtrd cdiv csin addcl cosval syl coscl adantr adantl sincl addcld
    wa ppncand adddi mp3an1 fveq2d simpl simpr syl2anc efival oveqan12d muladdd
    efadd eqtrd negicn efmival mulsubd oveq12d 2timesd 3eqtr4d cc0 wne 2cn 2ne0
    oveq1d divcan3 mp3an23 c1 a1i mul4d ixi oveq1i mulcomd oveq2d syl5eq mulm1d
    negsubd ) ACDZBCDZUKZABEFZGHZIWJJFZKHZILZWJJFZKHZEFZRUAFZRAGHZBGHZJFZIBUBHZ
    JFZIAUBHZJFZJFZEFZJFZRUAFZXAXDXBJFZMFZWIWJCDWKWRNABUCWJUDUEWIWQXHRUAWIXGWSX
    CJFZWTXEJFZEFZEFZXGXNMFZEFXGXGEFWQXHWIXGXNXGWIXAXFWIWSWTWGWSCDWHAUFUGZWHWTC
    DWGBUFUHZOZWIXCXEWIICDZXBCDZXCCDPWHYAWGBUIUHZIXBSQZWIXTXDCDZXECDPWGYDWHAUIU
    GZIXDSQZOUJZWIXLXMWIWSXCXQYCOWIWTXEXRYFOUJYGULWIWMXOWPXPEWIWMIAJFZIBJFZEFZK
    HZYHKHZYIKHZJFZXOWIWLYJKXTWGWHWLYJNPIABUMUNUOWIYHCDZYICDZYKYNNWIXTWGYOPWGWH
    UPZIASQWIXTWHYPPWGWHUQZIBSQYHYIVBURWIYNWSXEEFZWTXCEFZJFXOWGWHYLYSYMYTJAUSBU
    SUTWIWSXEWTXCXQYFXRYCVAVCTWIWPWNAJFZWNBJFZEFZKHZUUAKHZUUBKHZJFZXPWIWOUUCKWN
    CDZWGWHWOUUCNVDWNABUMUNUOWIUUACDZUUBCDZUUDUUGNWIUUHWGUUIVDYQWNASQWIUUHWHUUJ
    VDYRWNBSQUUAUUBVBURWIUUGWSXEMFZWTXCMFZJFXPWGWHUUEUUKUUFUULJAVEBVEUTWIWSXEWT
    XCXQYFXRYCVFVCTVGWIXGYGVHVIVNWIXIXGXAXJLZEFXKWIXGCDZXIXGNZYGUUNRCDRVJVKUUOV
    LVMXGRVOVPUEWIXFUUMXAEWIXFIIJFZXBXDJFZJFZVQLZXJJFZUUMWIIXBIXDXTWIPVRZYBUVAY
    EVSWIUURUUSUUQJFUUTUUPUUSUUQJVTWAWIUUQXJUUSJWIXBXDYBYEWBWCWDWIXJWIXDXBYEYBO
    ZWETWCWIXAXJXSUVBWFTT $.

  $( A useful intermediate step in ~ tanadd when showing that the addition of
     tangents is well-defined.  (Contributed by Mario Carneiro, 4-Apr-2015.) $)
  tanaddlem $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( cos ` A ) =/= 0 /\
    ( cos ` B ) =/= 0 ) ) -> ( ( cos ` ( A + B ) ) =/= 0 <->
    ( ( tan ` A ) x. ( tan ` B ) ) =/= 1 ) ) $=
    ( cc wcel wa ccos cfv cc0 co ctan cmul c1 csin wceq coscl ad2antrr ad2antlr
    wne eqeq1d cdiv caddc mulcld sincl subeq0ad cosadd adantr ad2ant2r ad2ant2l
    cmin tanval oveq12d simprl simprr divmuldivd mulne0d divmuld mulid1d 3bitrd
    eqtrd 1cnd 3bitr4d necon3bid ) ACDZBCDZEZAFGZHRZBFGZHRZEZEZABUAIFGZHAJGZBJG
    ZKIZLVKVFVHKIZAMGZBMGZKIZUIIZHNVPVSNZVLHNVOLNZVKVPVSVKVFVHVCVFCDVDVJAOPZVDV
    HCDVCVJBOQZUBZVKVQVRVCVQCDVDVJAUCPZVDVRCDVCVJBUCQZUBZUDVKVLVTHVEVLVTNVJABUE
    UFSVKWBVSVPTIZLNVPLKIZVSNWAVKVOWILVKVOVQVFTIZVRVHTIZKIWIVKVMWKVNWLKVCVGVMWK
    NVDVIAUJUGVDVIVNWLNVCVGBUJUHUKVKVQVFVRVHWFWCWGWDVEVGVIULZVEVGVIUMZUNUSSVKVS
    VPLWHWEVKUTVKVFVHWCWDWMWNUOUPVKWJVPVSVKVPWEUQSURVAVB $.

  $( Addition formula for tangent.  (Contributed by Mario Carneiro,
     4-Apr-2015.) $)
  tanadd $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( ( cos ` A ) =/= 0 /\
    ( cos ` B ) =/= 0 /\ ( cos ` ( A + B ) ) =/= 0 ) ) ->
      ( tan ` ( A + B ) ) = ( ( ( tan ` A ) + ( tan ` B ) ) /
        ( 1 - ( ( tan ` A ) x. ( tan ` B ) ) ) ) ) $=
    ( cc wcel wa ccos cfv cc0 caddc co ctan csin cdiv c1 cmul cmin wceq oveq12d
    wne eqtrd w3a addcl adantr simpr3 tanval sinadd cosadd simpll coscld simplr
    syl2anc mulcld simpr1 tancld simpr2 adddid mul32d oveq2d sincld oveq1d 1cnd
    divcan2d mulassd subdid mulid1d mul4d addcld ax-1cn subcl sylancr tanaddlem
    wb 3adantr3 necomd subeq0 necon3bid mpbird mulne0d divcan5d 3eqtr2rd eqtr4d
    mpbid ) ACDZBCDZEZAFGZHSZBFGZHSZABIJZFGZHSZUAZEZWJKGZWJLGZWKMJZAKGZBKGZIJZN
    WRWSOJZPJZMJZWNWJCDZWLWOWQQWEXDWMABUBUCWEWGWIWLUDZWJUEUKWNWQALGZWHOJZWFBLGZ
    OJZIJZWFWHOJZXFXHOJZPJZMJXKWTOJZXKXBOJZMJXCWNWPXJWKXMMWEWPXJQWMABUFUCWEWKXM
    QWMABUGUCRWNXNXJXOXMMWNXNXKWROJZXKWSOJZIJXJWNXKWRWSWNWFWHWNAWCWDWMUHZUIZWNB
    WCWDWMUJZUIZULZWNAXRWEWGWIWLUMZUNZWNBXTWEWGWIWLUOZUNZUPWNXPXGXQXIIWNXPWFWRO
    JZWHOJXGWNWFWHWRXSYAYDUQWNYGXFWHOWNYGWFXFWFMJZOJXFWNWRYHWFOWNWCWGWRYHQXRYCA
    UEUKURWNXFWFWNAXRUSXSYCVBTZUTTWNXQWFWHWSOJZOJXIWNWFWHWSXSYAYFVCWNYJXHWFOWNY
    JWHXHWHMJZOJXHWNWSYKWHOWNWDWIWSYKQXTYEBUEUKURWNXHWHWNBXTUSYAYEVBTZURTRTWNXO
    XKNOJZXKXAOJZPJXMWNXKNXAYBWNVAWNWRWSYDYFULZVDWNYMXKYNXLPWNXKYBVEWNYNYGYJOJX
    LWNWFWHWRWSXSYAYDYFVFWNYGXFYJXHOYIYLRTRTRWNWTXBXKWNWRWSYDYFVGWNNCDZXACDZXBC
    DVHYONXAVIVJYBWNXBHSZNXASZWNXANWNWLXANSZXEWEWGWIWLYTVLWLABVKVMWBVNWNYPYQYRY
    SVLVHYOYPYQEXBHNXANXAVOVPVJVQWNWFWHXSYAYCYEVRVSVTWA $.

  $( Sine of difference.  (Contributed by Paul Chapman, 12-Oct-2007.) $)
  sinsub $p |- ( ( A e. CC /\ B e. CC ) -> ( sin ` ( A - B ) ) =
                  ( ( ( sin ` A ) x. ( cos ` B ) ) -
                    ( ( cos ` A ) x. ( sin ` B ) ) ) ) $=
    ( cc wcel cneg caddc csin cfv ccos cmul cmin wceq adantl oveq2d coscl sincl
    co syl2an eqtrd mulcl wa sinadd sylan2 negsub fveq2d cosneg mulneg2 oveq12d
    negcl sinneg negsubd 3eqtr3d ) ACDZBCDZUAZABEZFQZGHZAGHZUPIHZJQZAIHZUPGHZJQ
    ZFQZABKQZGHUSBIHZJQZVBBGHZJQZKQZUNUMUPCDURVELBUIAUPUBUCUOUQVFGABUDUEUOVEVHV
    JEZFQVKUOVAVHVDVLFUOUTVGUSJUNUTVGLUMBUFMNUOVDVBVIEZJQZVLUOVCVMVBJUNVCVMLUMB
    UJMNUMVBCDZVICDZVNVLLUNAOZBPZVBVIUGRSUHUOVHVJUMUSCDVGCDVHCDUNAPBOUSVGTRUMVO
    VPVJCDUNVQVRVBVITRUKSUL $.

  $( Cosine of difference.  (Contributed by Paul Chapman, 12-Oct-2007.) $)
  cossub $p |- ( ( A e. CC /\ B e. CC ) -> ( cos ` ( A - B ) ) =
                  ( ( ( cos ` A ) x. ( cos ` B ) ) +
                    ( ( sin ` A ) x. ( sin ` B ) ) ) ) $=
    ( cc wcel cneg caddc co ccos cmul csin cmin wceq adantl oveq2d sincl syl2an
    cfv eqtrd coscl mulcl wa cosadd sylan2 negsub fveq2d cosneg mulneg2 oveq12d
    negcl sinneg subnegd 3eqtr3d ) ACDZBCDZUAZABEZFGZHQZAHQZUPHQZIGZAJQZUPJQZIG
    ZKGZABKGZHQUSBHQZIGZVBBJQZIGZFGZUNUMUPCDURVELBUIAUPUBUCUOUQVFHABUDUEUOVEVHV
    JEZKGVKUOVAVHVDVLKUOUTVGUSIUNUTVGLUMBUFMNUOVDVBVIEZIGZVLUOVCVMVBIUNVCVMLUMB
    UJMNUMVBCDZVICDZVNVLLUNAOZBOZVBVIUGPRUHUOVHVJUMUSCDVGCDVHCDUNASBSUSVGTPUMVO
    VPVJCDUNVQVRVBVITPUKRUL $.

  $( Sum of sines.  (Contributed by Paul Chapman, 12-Oct-2007.) $)
  addsin $p |- ( ( A e. CC /\ B e. CC ) -> ( ( sin ` A ) + ( sin ` B ) ) =
                    ( 2 x. ( ( sin ` ( ( A + B ) / 2 ) ) x.
                             ( cos ` ( ( A - B ) / 2 ) ) ) ) ) $=
    ( cc wcel c2 caddc co cdiv csin cmin ccos cmul halfcld sincld coscld mulcld
    cfv wceq syl2anc oveq12d wa addcl subcl 2timesd sinadd sinsub ppncand eqtrd
    halfaddsub simpld fveq2d simprd 3eqtr2rd ) ACDBCDUAZEABFGZEHGZIQZABJGZEHGZK
    QZLGZLGVAVAFGZUPUSFGZIQZUPUSJGZIQZFGZAIQZBIQZFGUNVAUNUQUTUNUPUNUOABUBMZNUNU
    SUNURABUCMZOPZUDUNVGVAUPKQZUSIQZLGZFGZVAVOJGZFGVBUNVDVPVFVQFUNUPCDZUSCDZVDV
    PRVJVKUPUSUESUNVRVSVFVQRVJVKUPUSUFSTUNVAVOVAVLUNVMVNUNUPVJOUNUSVKNPVLUGUHUN
    VDVHVFVIFUNVCAIUNVCARZVEBRZABUIZUJUKUNVEBIUNVTWAWBULUKTUM $.

  $( Difference of sines.  (Contributed by Paul Chapman, 12-Oct-2007.) $)
  subsin $p |- ( ( A e. CC /\ B e. CC ) -> ( ( sin ` A ) - ( sin ` B ) ) =
                    ( 2 x. ( ( cos ` ( ( A + B ) / 2 ) ) x.
                             ( sin ` ( ( A - B ) / 2 ) ) ) ) ) $=
    ( cc wcel wa c2 caddc cdiv ccos cfv cmin csin cmul coscl sincl mulcl syl2an
    co syl wceq halfaddsubcl 2timesd sinadd sinsub oveq12d pnncand eqtrd simpld
    halfaddsub fveq2d simprd 3eqtr2rd ) ACDBCDEZFABGRFHRZIJZABKRFHRZLJZMRZMRURU
    RGRZUNUPGRZLJZUNUPKRZLJZKRZALJZBLJZKRUMURUMUNCDZUPCDZEZURCDZABUAZVGUOCDUQCD
    VJVHUNNUPOUOUQPQSZUBUMVDUNLJZUPIJZMRZURGRZVOURKRZKRZUSUMVIVDVRTVKVIVAVPVCVQ
    KUNUPUCUNUPUDUESUMVOURURUMVIVOCDZVKVGVMCDVNCDVSVHUNOUPNVMVNPQSVLVLUFUGUMVAV
    EVCVFKUMUTALUMUTATZVBBTZABUIZUHUJUMVBBLUMVTWAWBUKUJUEUL $.

  $( Product of sines can be rewritten as half the difference of certain
     cosines.  This follows from ~ cosadd and ~ cossub .  (Contributed by David
     A. Wheeler, 26-May-2015.) $)
  sinmul $p |- ( ( A e. CC /\ B e. CC ) -> ( ( sin ` A ) x. ( sin ` B ) ) =
           ( ( ( cos ` ( A - B ) ) - ( cos ` ( A + B ) ) ) / 2 ) ) $=
    ( cc wcel wa cmin co ccos cfv caddc cdiv csin cmul coscl mulcl syl2an sincl
    c2 wceq 2cn cossub cosadd oveq12d pnncan 2times adantl eqtr4d mulcom 3eqtrd
    3anidm23 syl2anc sylancr oveq1d cc0 wne 2ne0 divcan4 mp3an23 syl eqtr2d ) A
    CDZBCDZEZABFGHIZABJGHIZFGZRKGALIZBLIZMGZRMGZRKGZVIVCVFVJRKVCVFAHIZBHIZMGZVI
    JGZVNVIFGZFGZRVIMGZVJVCVDVOVEVPFABUAABUBUCVCVNCDZVICDZVQVRSVAVLCDVMCDVSVBAN
    BNVLVMOPVAVGCDVHCDVTVBAQBQVGVHOPZVSVTEVQVIVIJGZVRVSVTVQWBSVNVIVIUDUJVTVRWBS
    VSVIUEUFUGUKVCRCDZVTVRVJSTWARVIUHULUIUMVCVTVKVISZWAVTWCRUNUOWDTUPVIRUQURUSU
    T $.

  $( Product of cosines can be rewritten as half the sum of certain cosines.
     This follows from ~ cosadd and ~ cossub .  (Contributed by David A.
     Wheeler, 26-May-2015.) $)
  cosmul $p |- ( ( A e. CC /\ B e. CC ) -> ( ( cos ` A ) x. ( cos ` B ) ) =
          ( ( ( cos ` ( A - B ) ) + ( cos ` ( A + B ) ) ) / 2 ) ) $=
    ( cc wcel wa c2 ccos cfv cmul co cdiv cmin caddc cc0 wne coscl mulcl syl2an
    csin sincl w3a 2cnne0 a1i 3anass sylanbrc divcan3 syl ppncand cossub cosadd
    wceq oveq12d 2timesd 3eqtr4rd oveq1d eqtr3d ) ACDZBCDZEZFAGHZBGHZIJZIJZFKJZ
    VBABLJGHZABMJGHZMJZFKJUSVBCDZFCDZFNOZUAZVDVBUKUSVHVIVJEZVKUQUTCDVACDVHURAPB
    PUTVAQRZVLUSUBUCVHVIVJUDUEVBFUFUGUSVCVGFKUSVBASHZBSHZIJZMJZVBVPLJZMJVBVBMJV
    GVCUSVBVPVBVMUQVNCDVOCDVPCDURATBTVNVOQRVMUHUSVEVQVFVRMABUIABUJULUSVBVMUMUNU
    OUP $.

  $( Sum of cosines.  (Contributed by Paul Chapman, 12-Oct-2007.) $)
  addcos $p |- ( ( A e. CC /\ B e. CC ) -> ( ( cos ` A ) + ( cos ` B ) ) =
                    ( 2 x. ( ( cos ` ( ( A + B ) / 2 ) ) x.
                             ( cos ` ( ( A - B ) / 2 ) ) ) ) ) $=
    ( cc wcel wa ccos cfv caddc co c2 cdiv cmin cmul wceq syl2an fveq2d oveq12d
    coscl csin syl addcom simprd simpld halfaddsubcl mulcl sincl ppncand cossub
    halfaddsub cosadd 2timesd 3eqtr4d 3eqtr2d ) ACDZBCDZEZAFGZBFGZHIZURUQHIZABH
    IJKIZABLIJKIZLIZFGZVAVBHIZFGZHIZJVAFGZVBFGZMIZMIZUNUQCDURCDUSUTNUOARBRUQURU
    AOUPVDURVFUQHUPVCBFUPVEANZVCBNZABUIZUBPUPVEAFUPVLVMVNUCPQUPVJVASGZVBSGZMIZH
    IZVJVQLIZHIZVJVJHIVGVKUPVJVQVJUPVACDZVBCDZEZVJCDZABUDZWAVHCDVICDWDWBVARVBRV
    HVIUEOTZUPWCVQCDZWEWAVOCDVPCDWGWBVAUFVBUFVOVPUEOTWFUGUPWCVGVTNWEWCVDVRVFVSH
    VAVBUHVAVBUJQTUPVJWFUKULUM $.

  $( Difference of cosines.  (Contributed by Paul Chapman, 12-Oct-2007.)
     (Revised by Mario Carneiro, 10-May-2014.) $)
  subcos $p |- ( ( A e. CC /\ B e. CC ) -> ( ( cos ` B ) - ( cos ` A ) ) =
                  ( 2 x. ( ( sin ` ( ( A + B ) / 2 ) ) x.
                           ( sin ` ( ( A - B ) / 2 ) ) ) ) ) $=
    ( cc wcel wa c2 caddc co cdiv csin cfv cmin cmul ccos sincl syl2an syl wceq
    mulcl oveq12d halfaddsubcl 2timesd cossub cosadd coscl pnncand eqtrd simprd
    halfaddsub fveq2d simpld 3eqtr2rd ) ACDBCDEZFABGHFIHZJKZABLHFIHZJKZMHZMHURU
    RGHZUNUPLHZNKZUNUPGHZNKZLHZBNKZANKZLHUMURUMUNCDZUPCDZEZURCDZABUAZVGUOCDUQCD
    VJVHUNOUPOUOUQSPQZUBUMVDUNNKZUPNKZMHZURGHZVOURLHZLHZUSUMVIVDVRRVKVIVAVPVCVQ
    LUNUPUCUNUPUDTQUMVOURURUMVIVOCDZVKVGVMCDVNCDVSVHUNUEUPUEVMVNSPQVLVLUFUGUMVA
    VEVCVFLUMUTBNUMVBARZUTBRZABUIZUHUJUMVBANUMVTWAWBUKUJTUL $.

  $( Sine squared plus cosine squared is 1.  Equation 17 of [Gleason] p. 311.
     Note that this holds for non-real arguments, even though individually each
     term is unbounded.  (Contributed by NM, 15-Jan-2006.) $)
  sincossq $p |- ( A e. CC ->
                  ( ( ( sin ` A ) ^ 2 ) + ( ( cos ` A ) ^ 2 ) ) = 1 ) $=
    ( cc wcel cneg caddc co ccos cfv cmul csin c1 cexp cc0 sqvald oveq2d eqtr4d
    c2 sqcld eqtrd mulcld cmin wceq negcl cosadd mpdan negid fveq2d cos0 syl6eq
    addcomd cosneg sinneg negeqd negnegd sincld mulneg2d oveq12d coscld negsubd
    sincl coscl 3eqtrrd 3eqtr3rd ) ABCZAADZEFZGHZAGHZVEGHZIFZAJHZVEJHZIFZUAFZKV
    KQLFZVHQLFZEFZVDVEBCVGVNUBAUCZAVEUDUEVDVGMGHKVDVFMGAUFUGUHUIVDVQVPVOEFVJVMD
    ZEFVNVDVOVPVDVKAUTZRVDVHAVAZRUJVDVPVJVOVSEVDVPVHVHIFVJVDVHWANVDVIVHVHIAUKOP
    VDVOVKVLDZIFZVSVDVOVKVKIFWCVDVKVTNVDWBVKVKIVDWBVKDZDVKVDVLWDAULUMVDVKVTUNSO
    PVDVKVLVTVDVEVRUOZUPSUQVDVJVMVDVHVIWAVDVEVRURTVDVKVLVTWETUSVBVC $.

  $( Double-angle formula for sine.  (Contributed by Paul Chapman,
     17-Jan-2008.) $)
  sin2t $p |- ( A e. CC ->
      ( sin ` ( 2 x. A ) ) = ( 2 x. ( ( sin ` A ) x. ( cos ` A ) ) ) ) $=
    ( cc wcel c2 cmul co csin cfv caddc ccos 2times fveq2d coscl mulcomd oveq2d
    sincl wceq sinadd anidms mulcld 2timesd 3eqtr4d eqtrd ) ABCZDAEFZGHAAIFZGHZ
    DAGHZAJHZEFZEFZUDUEUFGAKLUDUJUIUHEFZIFZUJUJIFUGUKUDULUJUJIUDUIUHAMZAPZNOUDU
    GUMQAARSUDUJUDUHUIUOUNTUAUBUC $.

  $( Double-angle formula for cosine.  (Contributed by Paul Chapman,
     24-Jan-2008.) $)
  cos2t $p |- ( A e. CC -> ( cos ` ( 2 x. A ) ) =
                           ( ( 2 x. ( ( cos ` A ) ^ 2 ) ) - 1 ) ) $=
    ( cc wcel ccos cfv c2 cexp co c1 cmin caddc cmul coscl sqcld ax-1cn subsub3
    wceq syl2anc sqvald 3eqtr4d mp3an2 csin cosadd anidms 2times fveq2d oveq12d
    sincl addcomd sincossq eqtr3d wb subadd mp3an1 mpbird oveq2d eqtr4d 2timesd
    oveq1d ) ABCZADEZFGHZIVBJHZJHZVBVBKHZIJHZFALHZDEZFVBLHZIJHUTVBBCZVJVDVFQZUT
    VAAMZNZVMVJIBCZVJVKOVBIVBPUARUTVHVBAUBEZFGHZJHZVDUTAAKHZDEZVAVALHZVOVOLHZJH
    ZVHVQUTVSWBQAAUCUDUTVGVRDAUEUFUTVBVTVPWAJUTVAVLSUTVOAUHZSUGTUTVCVPVBJUTVCVP
    QZVBVPKHZIQZUTVPVBKHWEIUTVPVBUTVOWCNZVMUIAUJUKUTVJVPBCZWDWFULZVMWGVNVJWHWIO
    IVBVPUMUNRUOUPUQUTVIVEIJUTVBVMURUST $.

  $( Double-angle formula for cosine in terms of sine.  (Contributed by NM,
     12-Sep-2008.) $)
  cos2tsin $p |- ( A e. CC -> ( cos ` ( 2 x. A ) ) =
                           ( 1 - ( 2 x. ( ( sin ` A ) ^ 2 ) ) ) ) $=
    ( cc wcel c2 cmul co ccos cfv cexp cmin wceq caddc sqcld 2cn mp3an1 syl2anc
    c1 syl6eq mulcl sylancr csin cos2t sincl coscl adddi sincossq oveq2d eqtr3d
    2t1e2 wb subadd mpbird oveq1d ax-1cn sub32 mp3an13 syl 2m1e1 oveq1i 3eqtr2d
    ) ABCZDAEFGHDAGHZDIFZEFZQJFDDAUAHZDIFZEFZJFZQJFZQVGJFZAUBVAVHVDQJVAVHVDKZVG
    VDLFZDKZVAVLDQEFZDVADVFVCLFZEFZVLVNVAVFBCZVCBCZVPVLKZVAVEAUCMZVAVBAUDMZDBCZ
    VQVRVSNDVFVCUEOPVAVOQDEAUFUGUHUIRVAVGBCZVDBCZVKVMUJZVAWBVQWCNVTDVFSTZVAWBVR
    WDNWADVCSTWBWCWDWENDVGVDUKOPULUMVAVIDQJFZVGJFZVJVAWCVIWHKZWFWBWCQBCWINUNDVG
    QUOUPUQWGQVGJURUSRUT $.

  $( The sine of a real number lies between -1 and 1.  Equation 18 of [Gleason]
     p. 311.  (Contributed by NM, 16-Jan-2006.) $)
  sinbnd $p |- ( A e. RR -> ( -u 1 <_ ( sin ` A ) /\ ( sin ` A ) <_ 1 ) ) $=
    ( cr wcel csin cfv c1 cle wbr cneg c2 cexp co wa ccos cc0 resqcld mpbid syl
    wb 1re caddc recoscl sqge0d resincl addge01d wceq recn sincossq sq1 syl6eqr
    cc breqtrd 0le1 lenegsq mp3an23 lenegcon1 mpan2 anbi2d bitr3d ancomd ) ABCZ
    ADEZFGHZFIVBGHZVAVBJKLZFJKLZGHZVCVDMZVAVEVEANEZJKLZUALZVFGVAOVJGHVEVKGHVAVI
    AUBZUCVAVEVJVAVBAUDZPVAVIVLPUEQVAVKFVFVAAUKCVKFUFAUGAUHRUIUJULVAVBBCZVGVHSV
    MVNVCVBIFGHZMZVGVHVNFBCZOFGHVPVGSTUMVBFUNUOVNVOVDVCVNVQVOVDSTVBFUPUQURUSRQU
    T $.

  $( The cosine of a real number lies between -1 and 1.  Equation 18 of
     [Gleason] p. 311.  (Contributed by NM, 16-Jan-2006.) $)
  cosbnd $p |- ( A e. RR -> ( -u 1 <_ ( cos ` A ) /\ ( cos ` A ) <_ 1 ) ) $=
    ( cr wcel ccos cfv c1 cle wbr cneg c2 cexp co wa csin cc0 resqcld mpbid syl
    wb 1re caddc resincl sqge0d recoscl addge02d wceq recn sincossq sq1 syl6eqr
    cc breqtrd 0le1 lenegsq mp3an23 lenegcon1 mpan2 anbi2d bitr3d ancomd ) ABCZ
    ADEZFGHZFIVBGHZVAVBJKLZFJKLZGHZVCVDMZVAVEANEZJKLZVEUALZVFGVAOVJGHVEVKGHVAVI
    AUBZUCVAVEVJVAVBAUDZPVAVIVLPUEQVAVKFVFVAAUKCVKFUFAUGAUHRUIUJULVAVBBCZVGVHSV
    MVNVCVBIFGHZMZVGVHVNFBCZOFGHVPVGSTUMVBFUNUOVNVOVDVCVNVQVOVDSTVBFUPUQURUSRQU
    T $.

  $( The sine of a real number is in the closed interval from -1 to 1.
     (Contributed by Mario Carneiro, 12-May-2014.) $)
  sinbnd2 $p |- ( A e. RR -> ( sin ` A ) e. ( -u 1 [,] 1 ) ) $=
    ( cr wcel csin cfv c1 cneg cle wbr cicc resincl sinbnd simpld simprd neg1rr
    co 1re elicc2i syl3anbrc ) ABCZADEZBCFGZUAHIZUAFHIZUAUBFJPCAKTUCUDALZMTUCUD
    UENUBFUAOQRS $.

  $( The cosine of a real number is in the closed interval from -1 to 1.
     (Contributed by Mario Carneiro, 12-May-2014.) $)
  cosbnd2 $p |- ( A e. RR -> ( cos ` A ) e. ( -u 1 [,] 1 ) ) $=
    ( cr wcel ccos cfv c1 cneg cle wbr cicc recoscl cosbnd simpld simprd neg1rr
    co 1re elicc2i syl3anbrc ) ABCZADEZBCFGZUAHIZUAFHIZUAUBFJPCAKTUCUDALZMTUCUD
    UENUBFUAOQRS $.

  ${
    $d k n A $.  $d k F $.
    ef01bnd.1 $e |- F = ( n e. NN0 |-> ( ( ( _i x. A ) ^ n ) / ( ! ` n ) ) ) $.
    $( Lemma for ~ sin01bnd and ~ cos01bnd .  (Contributed by Paul Chapman,
       19-Jan-2008.) $)
    ef01bndlem $p |- ( A e. ( 0 (,] 1 ) ->
        ( abs ` sum_ k e. ( ZZ>= ` 4 ) ( F ` k ) ) < ( ( A ^ 4 ) / 6 ) ) $=
      ( c1 co wcel c4 cfv cexp cmul cdiv c6 cr clt wbr c5 c2 c3 cc0 cioc cuz cv
      csu cabs caddc cfa ci cc cn0 ax-icn cle cxr w3a wb 0xr 1re elioc2 simp1bi
      mp2an recnd mulcl sylancr 4nn0 eftlcl sylancl abscld reexpcl 4re readdcli
      cn faccl ax-mp 4nn nnmulcli nndivre remulcl 6nn cmpt eqid a1i wceq absmul
      absi oveq1i crp simp2bi elrpd rpre rpge0 absidd syl oveq2d syl5eq mulid2d
      3eqtrd simp3bi eqbrtrd eftlub oveq1d breqtrd 3pos 0re 3re 5re ltadd1i 5cn
      mpbi addid2i c8 cu2 5p3e8 3nn nncni addcomi 3eqtr2ri 3brtr3i 1le2 cz 3lt4
      2re 4z ltleii nnzi eluz1i mpbir2an mp3an eqeltri 6re 6pos df-4 sq2 oveq2i
      fac3 6cn recni 3eqtr3i 2nn0 eqtr3i leexp2a 8re 2nn nnexpcl nnrei remulcli
      ltletri nngt0i mulgt0ii ltdiv1ii fveq2i facp1 eqtr2i 3eqtri mulassi 2p2e4
      df-5 3nn0 expadd oveq12i mulid2i nnne0i dividi ax-1cn gt0ne0ii divmuldivi
      2cn rereccli mulid1i rpexpcl wa ltmul2 mp3an12 sylbi mpbii divrec mp3an23
      elrp wne breqtrrd lelttrd ) AUAFUBGHZIUCJBUDDJBUEZUFJZAIKGZIFUGGZIUHJZILG
      ZMGZLGZUWENMGZUWBUWCUWBUIALGZUJHZIUKHZUWCUJHUWBUIUJHZAUJHZUWMULUWBAUWBAOH
      ZUAAPQZAFUMQZUAUNHFOHUWBUWQUWRUWSUOUPUQURUAFAUSVAZUTZVBZUIAVCVDZVEUWLBCDI
      EVFVGVHUWBUWEOHZUWIOHZUWJOHUWBUWQUWNUXDUXAVEAIVIVGZUWFOHUWHVLHUXEIFVJURVK
      UWGIUWNUWGVLHVEIVMVNVOVPUWFUWHVQVAZUWEUWIVRVGUWBUXDNVLHUWKOHUXFVSUWENVQVG
      UWBUWDUWLUFJZIKGZUWILGUWJUMUWBUWLBCDCUKUXHCUDZKGUXJUHJMGVTZCUKUXIUWGMGFUW
      FMGUXJKGLGVTZIEUXKWAUXLWAIVLHUWBVOWBUXCUWBUXHAFUMUWBUXHUIUFJZAUFJZLGZFALG
      ZAUWBUWOUWPUXHUXOWCULUXBUIAWDVDUWBUXOFUXNLGUXPUXMFUXNLWEWFUWBUXNAFLUWBAWG
      HZUXNAWCUWBAUXAUWBUWQUWRUWSUWTWHWIZUXQAAWJAWKWLWMWNWOUWBAUXBWPWQZUWBUWQUW
      RUWSUWTWRWSWTUWBUXIUWEUWILUWBUXHAIKUXSXAXAXBUWBUWJUWEFNMGZLGZUWKPUWBUWIUX
      TPQZUWJUYAPQZRNSIKGZLGZMGZUYDUYEMGZUWIUXTPRUYDPQZUYFUYGPQRSTKGZPQUYIUYDUM
      QZUYHUARUGGZTRUGGZRUYIPUATPQUYKUYLPQXCUATRXDXEXFXGXIRXHXJUYIXKRTUGGUYLXLX
      MRTXHTXNXOXPXQXRSOHFSUMQITUCJHZUYJYBXSUYMIXTHZTIUMQYCTIXEVJYAYDTITXNYEYFY
      GSTIUUAYHRUYIUYDXFUYIXKOXLUUBYIUYDSVLHUWNUYDVLHUUCVESIUUDVAZUUEZUUGVARUYD
      UYEXFUYPNUYDYJUYPUUFNUYDYJUYPYKUYDUYOUUHUUIUUJXIRUWFUYEUWHMUUQUWHTUHJZSSK
      GZUYRLGZLGZUYQUYDLGUYEUWGUYRLGUYQUYRLGZUYRLGUWHUYTUWGVUAUYRLUWGTFUGGZUHJZ
      UYQVUBLGZVUAIVUBUHYLUUKTUKHVUCVUDWCUURTUULVNVUBUYRUYQLUYRIVUBYMYLUUMYNUUN
      WFUYRIUWGLYMYNUYQUYRUYRUYQNUJYOYPYIUYRIUJYMIVJYQYIZVUEUUOYRUYDUYSUYQLSSSU
      GGZKGZUYDUYSVUFISKUUPYNSUJHSUKHZVUHVUGUYSWCUVGYSYSSSSUUSYHYTYNUYQNUYDLYOW
      FXQUUTFUYDLGZUYEMGZUYGUXTVUIUYDUYEMUYDUYDUYOXOZUVAWFUXTUYDUYDMGZLGUXTFLGV
      UJUXTVULFUXTLUYDVUKUYDUYOUVBZUVCYNFNUYDUYDUVDYPVUKVUKNYJYKUVEZVUMUVFUXTUX
      TNYJVUNUVHZYQUVIYRYTXRUWBUWEWGHZUYBUYCUPZUWBUXQUYNVUPUXRYCAIUVJVGVUPUXDUA
      UWEPQUVKZVUQUWEUVRUXEUXTOHVURVUQUXGVUOUWIUXTUWEUVLUVMUVNWMUVOUWBUWEUJHZUW
      KUYAWCZUWBUWEUXFVBVUSNUJHNUAUVSVUTYPVUNUWENUVPUVQWMUVTUWA $.
  $}

  ${
    $d A k n $.
    $( Bounds on the sine of a positive real number less than or equal to 1.
       (Contributed by Paul Chapman, 19-Jan-2008.)  (Revised by Mario Carneiro,
       30-Apr-2014.) $)
    sin01bnd $p |- ( A e. ( 0 (,] 1 ) ->
        ( ( A - ( ( A ^ 3 ) / 3 ) ) < ( sin ` A ) /\ ( sin ` A ) < A ) ) $=
      ( vk vn cc0 co wcel cfv c3 c6 cdiv cmin clt wbr c4 caddc cr recnd sylancl
      cle cc c1 cioc csin cexp cabs wa cuz cv cn0 ci cmul cfa cmpt csu cim wceq
      cxr w3a wb 0xr 1re elioc2 mp2an simp1bi eqid resin4p eqcomd resincld 3nn0
      syl reexpcl 6nn nndivre resubcld ax-icn mulcl sylancr 4nn0 eftlcl subaddd
      cn imcld mpbird fveq2d abscld absimle ef01bndlem a1i cz 4z 3re 4re ltleii
      3lt4 3nn nnzi eluz1i mpbir2an simp2bi wi 0re ltle simp3bi leexp2rd lediv1
      mpd 6re syl112anc mpbid ltletrd lelttrd eqbrtrd absdifltd subsub4d c2 wne
      6pos 3cn 3ne0 pm3.2i 2cnne0 divdiv1 mp3an23 3t2e6 oveq2i syl6req 2halvesd
      oveq12d eqtrd oveq2d breq1d npcand breq2d anbi12d bitrd ) ADUAUBEFZAUCGZA
      AHUDEZIJEZKEZKEZUEGZYSLMZAYRHJEZKEZYQLMZYQALMZUFZYPUUBNUGGBUHCUIUJAUKEZCU
      HZUDEUUJULGJEUMZGBUNZUOGZUEGZYSLYPUUAUUMUEYPUUAUUMUPYTUUMOEZYQUPYPYQUUOYP
      APFZYQUUOUPYPUUPDALMZAUASMZDUQFUAPFYPUUPUUQUURURUSUTVADUAAVBVCZVDZABCUUKU
      UKVEZVFVJVGYPYQYTUUMYPYQYPAUUTVHZQYPYTYPAYSUUTYPYRPFZIWAFZYSPFYPUUPHUIFZU
      VCUUTVIAHVKRZVLYRIVMRZVNZQYPUUMYPUULYPUUITFZNUIFZUULTFZYPUJTFATFUVIVOYPAU
      UTQZUJAVPVQVRUUIBCUUKNUVAVSRZWBQZVTWCWDYPUUNUULUEGZYSYPUUMUVNWEYPUULUVMWE
      ZUVGYPUVKUUNUVOSMUVMUULWFVJYPUVOANUDEZIJEZYSUVPYPUVQPFZUVDUVRPFYPUUPUVJUV
      SUUTVRANVKRZVLUVQIVMRUVGABCUUKUVAWGYPUVQYRSMZUVRYSSMZYPAHNUUTUVEYPVIWHNHU
      GGFZYPUWCNWIFHNSMWJHNWKWLWNWMHNHWOWPWQWRWHYPUUQDASMZYPUUPUUQUURUUSWSYPDPF
      UUPUUQUWDWTXAUUTDAXBVQXFYPUUPUUQUURUUSXCXDYPUVSUVCIPFZDILMZUWAUWBUSUVTUVF
      UWEYPXGWHUWFYPXQWHUVQYRIXEXHXIXJXKXLYPUUCYTYSKEZYQLMZYQYTYSOEZLMZUFUUHYPY
      QYTYSUVBUVHUVGXMYPUWHUUFUWJUUGYPUWGUUEYQLYPUWGAYSYSOEZKEUUEYPAYSYSUVLYPYS
      UVGQZUWLXNYPUWKUUDAKYPUWKUUDXOJEZUWMOEUUDYPYSUWMYSUWMOYPUWMYRHXOUKEZJEZYS
      YPYRTFZUWMUWOUPZYPYRUVFQUWPHTFZHDXPZUFXOTFXODXPUFUWQUWRUWSXRXSXTYAYRHXOYB
      YCVJUWNIYRJYDYEYFZUWTYHYPUUDYPUUDYPUVCHWAFUUDPFUVFWOYRHVMRQYGYIYJYIYKYPUW
      IAYQLYPAYSUVLUWLYLYMYNYOXI $.

    $( Bounds on the cosine of a positive real number less than or equal to 1.
       (Contributed by Paul Chapman, 19-Jan-2008.)  (Revised by Mario Carneiro,
       30-Apr-2014.) $)
    cos01bnd $p |- ( A e. ( 0 (,] 1 ) ->
                     ( ( 1 - ( 2 x. ( ( A ^ 2 ) / 3 ) ) ) < ( cos ` A ) /\
                       ( cos ` A ) < ( 1 - ( ( A ^ 2 ) / 3 ) ) ) ) $=
      ( cc0 c1 co wcel cfv c2 cdiv cmin c6 clt wbr c3 cmul c4 wceq cr syl recnd
      cc vk vn cioc ccos cexp cabs wa cuz cv cn0 cfa cmpt csu cre caddc cle cxr
      ci w3a wb 0xr elioc2 mp2an simp1bi eqid recos4p eqcomd recoscld rehalfcld
      1re resqcld resubcl sylancr ax-icn mulcl 4nn0 eftlcl sylancl recld mpbird
      subaddd fveq2d abscld cn 6nn nndivre absrele reexpcl ef01bndlem a1i cz 4z
      2nn0 2re 4re 2lt4 ltleii 2z eluz1i mpbir2an simp2bi 0re ltle mpd leexp2rd
      simp3bi 6re 6pos lediv1 syl112anc mpbid ltletrd lelttrd eqbrtrd absdifltd
      wi 1cnd subsub4d halfpm6th simpri oveq2i 2cn 2ne0 reccli 6cn nnne0i adddi
      mp3an23 syl5eqr wne 3cn 3ne0 pm3.2i div12 mp3an13 divrec oveq12d 3eqtr4rd
      oveq2d eqtrd breq1d subsubd simpli subdi eqtr3d breq2d anbi12d bitrd ) AB
      CUCDEZAUDFZCAGUEDZGHDZIDZIDZUFFZUUKJHDZKLZCGUUKMHDZNDZIDZUUJKLZUUJCUURIDZ
      KLZUGZUUIUUOOUHFUAUIUBUJURANDZUBUIZUEDUVFUKFHDULZFUAUMZUNFZUFFZUUPKUUIUUN
      UVIUFUUIUUNUVIPUUMUVIUODZUUJPUUIUUJUVKUUIAQEZUUJUVKPUUIUVLBAKLZACUPLZBUQE
      CQEZUUIUVLUVMUVNUSUTVAVJBCAVBVCZVDZAUAUBUVGUVGVEZVFRVGUUIUUJUUMUVIUUIUUJU
      UIAUVQVHZSUUIUUMUUIUVOUULQEUUMQEVJUUIUUKUUIAUVQVKZVIZCUULVLVMZSUUIUVIUUIU
      VHUUIUVETEZOUJEZUVHTEZUUIURTEATEUWCVNUUIAUVQSURAVOVMVPUVEUAUBUVGOUVRVQVRZ
      VSSZWAVTWBUUIUVJUVHUFFZUUPUUIUVIUWGWCUUIUVHUWFWCZUUIUUKQEZJWDEZUUPQEUVTWE
      UUKJWFVRZUUIUWEUVJUWHUPLUWFUVHWGRUUIUWHAOUEDZJHDZUUPUWIUUIUWMQEZUWKUWNQEU
      UIUVLUWDUWOUVQVPAOWHVRZWEUWMJWFVRUWLAUAUBUVGUVRWIUUIUWMUUKUPLZUWNUUPUPLZU
      UIAGOUVQGUJEUUIWMWJOGUHFEZUUIUWSOWKEGOUPLWLGOWNWOWPWQGOWRWSWTWJUUIUVMBAUP
      LZUUIUVLUVMUVNUVPXAUUIBQEUVLUVMUWTXPXBUVQBAXCVMXDUUIUVLUVMUVNUVPXFXEUUIUW
      OUWJJQEZBJKLZUWQUWRUTUWPUVTUXAUUIXGWJUXBUUIXHWJUWMUUKJXIXJXKXLXMXNUUIUUQU
      UMUUPIDZUUJKLZUUJUUMUUPUODZKLZUGUVDUUIUUJUUMUUPUVSUWBUWLXOUUIUXDUVAUXFUVC
      UUIUXCUUTUUJKUUIUXCCUULUUPUODZIDUUTUUICUULUUPUUIXQZUUIUULUWASZUUIUUPUWLSZ
      XRUUIUXGUUSCIUUIUUKGMHDZNDZUUKCGHDZNDZUUKCJHDZNDZUODZUUSUXGUUIUXLUUKUXMUX
      OUODZNDZUXQUXRUXKUUKNUXMUXOIDZCMHDZPZUXRUXKPZXSXTYAUUIUUKTEZUXSUXQPZUUIUU
      KUVTSZUYDUXMTEZUXOTEZUYEGYBYCYDZJYEJWEYFZYDZUUKUXMUXOYGYHRYIUUIUYDUUSUXLP
      ZUYFGTEZUYDMTEZMBYJZUGUYLYBUYNUYOYKYLYMGUUKMYNYORUUIUULUXNUUPUXPUOUUIUYDU
      ULUXNPZUYFUYDUYMGBYJUYPYBYCUUKGYPYHRZUUIUYDUUPUXPPZUYFUYDJTEJBYJUYRYEUYJU
      UKJYPYHRZYQYRYSYTUUAUUIUXEUVBUUJKUUICUULUUPIDZIDUXEUVBUUICUULUUPUXHUXIUXJ
      UUBUUIUYTUURCIUUIUUKUYANDZUXNUXPIDZUURUYTUUIVUAUUKUXTNDZVUBUXTUYAUUKNUYBU
      YCXSUUCYAUUIUYDVUCVUBPZUYFUYDUYGUYHVUDUYIUYKUUKUXMUXOUUDYHRYIUUIUYDUURVUA
      PZUYFUYDUYNUYOVUEYKYLUUKMYPYHRUUIUULUXNUUPUXPIUYQUYSYQYRYSUUEUUFUUGUUHXK
      $.
  $}

  $( Bounds on the cosine of 1.  (Contributed by Paul Chapman, 19-Jan-2008.) $)
  cos1bnd $p |- ( ( 1 / 3 ) < ( cos ` 1 ) /\ ( cos ` 1 ) < ( 2 / 3 ) ) $=
    ( c1 c3 cdiv co clt wbr c2 cmul cmin oveq1i oveq2i 2cn 3cn 3ne0 caddc eqtri
    ax-1cn wcel cc0 1re ccos cfv cexp divreci eqtr4i divcli reccli df-3 divdiri
    sq1 dividi 3eqtr3ri subaddrii cr cle wa 0lt1 1le1 w3a cioc cxr wb 0xr mp2an
    elioc2 cos01bnd sylbir mp3an simpli eqbrtrri simpri subadd2i breqtri pm3.2i
    wceq mpbir ) ABCDZAUAUBZEFVRGBCDZEFAGAGUCDZBCDZHDZIDZVQVREWCAVSIDVQWBVSAIWB
    GVQHDVSWAVQGHVTABCUJJZKGBLMNUDUEKAVSVQQGBLMNUFZBMNUGZBBCDGAODZBCDAVSVQODZBW
    GBCUHJBMNUKGABLQMNUIULZUMPWCVREFZVRAWAIDZEFZAUNRZSAEFZAAUOFZWJWLUPZTUQURWMW
    NWOUSZASAUTDRZWPSVARWMWRWQVBVCTSAAVEVDAVFVGVHZVIVJVRWKVSEWJWLWSVKWKAVQIDZVS
    WAVQAIWDKWTVSVOWHAVOWIAVQVSQWFWEVLVPPVMVN $.

  $( Bounds on the cosine of 2.  (Contributed by Paul Chapman, 19-Jan-2008.) $)
  cos2bnd $p |- ( -u ( 7 / 9 ) < ( cos ` 2 ) /\
                     ( cos ` 2 ) < -u ( 1 / 9 ) ) $=
    ( c7 c9 cdiv co cneg c2 clt wbr c1 cexp cmin wcel cc0 wceq 9cn mp3an eqtr3i
    2cn c3 c8 ccos cfv cmul cc wne 7cn 9pos gt0ne0ii divneg wa pm3.2i divsubdir
    negsubdi2i caddc 7p2e9 subadd2i negeqi oveq1i dividi oveq2i 3eqtr2ri ax-1cn
    9re mpbir divassi 2t1e2 3cn sqdivi sq1 sq3 oveq12i eqtri cos1bnd simpli cle
    3ne0 wb 0le1 3pos 1re 3re divge0i mp2an 0re cr recoscl ax-mp lelttri ltleii
    rereccli lt2sqi mpbi eqbrtrri 2pos resqcli ltmul2i redivcli remulcli ltsub1
    2re fveq2i cos2t breqtrri c4 simpri 0le2 sq2 breqtri 4re 4cn 4t2e8 mulcomli
    8re 8cn 8p1e9 subaddrii eqbrtri ) ABCDEZFUAUBZGHXSIBCDZEZGHXRFIUAUBZFJDZUCD
    ZIKDZXSGFBCDZIKDZXRYEGXRAEZBCDZYFBBCDZKDZYGAUDLBUDLZBMUEZXRYINUFOBVCUGUHZAB
    UIPFBKDZBCDZYKYIFUDLYLYLYMUJZYPYKNROYLYMOYNUKZFBBULPYOYHBCBFKDZEYOYHBFORUMY
    SAYSANAFUNDBNUOBFAORUFUPVDUQQURQYJIYFKBOYNUSZUTVAYFYDGHZYGYEGHZFXTUCDZYFYDG
    FIUCDZBCDUUCYFFIBRVBOYNVEUUDFBCVFURQXTYCGHZUUCYDGHZISCDZFJDZXTYCGUUHIFJDZSF
    JDZCDXTISVBVGVPVHUUIIUUJBCVIVJVKVLUUGYBGHZUUHYCGHZUUKYBFSCDZGHZVMVNZMUUGVOH
    ZMYBVOHZUUKUULVQMIVOHMSGHZUUPVRVSISVTWAWBWCZMYBWDIWELZYBWELVTIWFWGZUUPUUKMY
    BGHUUSUUOMUUGYBWDSWAVPWJZUVAWHWCWIZUUGYBUVBUVAWKWCWLWMMFGHZUUEUUFVQWNXTYCFB
    VCYNWJYBUVAWOZWTWPWGWLWMYFWELYDWELZUUTUUAUUBVQFBWTVCYNWQFYCWTUVEWRZVTYFYDIW
    SPWLWMUUDUAUBZXSYEUUDFUAVFXAIUDLZUVHYENVBIXBWGQZXCXSYEYAGUVJYETBCDZIKDZYAGY
    DUVKGHZYEUVLGHZYDFXDBCDZUCDZUVKGYCUVOGHZYDUVPGHZYCUUMFJDZUVOGUUNYCUVSGHZUUK
    UUNVMXEUUQMUUMVOHZUUNUVTVQUVCMFVOHUURUWAXFVSFSWTWAWBWCYBUUMUVAFSWTWAVPWQWKW
    CWLUVSFFJDZUUJCDUVOFSRVGVPVHUWBXDUUJBCXGVJVKVLXHUVDUVQUVRVQWNYCUVOFUVEXDBXI
    VCYNWQWTWPWGWLFXDUCDZBCDUVPUVKFXDBRXJOYNVEUWCTBCXDFTXJRXKXLURQXHUVFUVKWELUU
    TUVMUVNVQUVGTBXMVCYNWQVTYDUVKIWSPWLUVKYJKDZUVLYAYJIUVKKYTUTYAIEZBCDZTBKDZBC
    DZUWDUVIYLYMYAUWFNVBOYNIBUIPUWGUWEBCBTKDZEUWGUWEBTOXNUMUWIIBTIOXNVBXOXPUQQU
    RTUDLYLYQUWHUWDNXNOYRTBBULPVAQXHXQUK $.

  $( The sine of a positive real number is less than its argument.
     (Contributed by Mario Carneiro, 29-Jul-2014.) $)
  sinltx $p |- ( A e. RR+ -> ( sin ` A ) < A ) $=
    ( crp wcel csin cfv clt wbr c1 wa rpre adantr resincld 1red cle cneg simprd
    cr cc0 co c3 sinbnd syl simpr lelttrd cioc w3a df-3an cxr wb 0xr 1re elioc2
    mp2an elrp anbi1i 3bitr4i cexp cdiv cmin sin01bnd sylbir ltlecasei ) ABCZAD
    EZAFGZHAVCHAFGZIZVDHAVGAVCAQCZVFAJZKZLVGMVJVCVDHNGZVFVCVHVKVIVHHOVDNGVKAUAP
    UBKVCVFUCUDVCAHNGZIZARHUESCZVEVHRAFGZVLUFZVHVOIZVLIVNVMVHVOVLUGRUHCHQCVNVPU
    IUJUKRHAULUMVCVQVLAUNUOUPVNAATUQSTURSUSSVDFGVEAUTPVAVCMVIVB $.

  $( The sine of a positive real number less than or equal to 1 is positive.
     (Contributed by Paul Chapman, 19-Jan-2008.)  (Revised by Wolf Lammen,
     25-Sep-2020.) $)
  sin01gt0 $p |- ( A e. ( 0 (,] 1 ) -> 0 < ( sin ` A ) ) $=
    ( cc0 c1 co wcel c3 cexp cdiv clt wbr cfv cr cn0 cle w3a 1re 3re 3z pm3.2i
    wa cioc cmin csin cxr wb 0xr elioc2 mp2an simp1bi 3nn0 reexpcl sylancl 3ne0
    wne redivcl mp3an23 syl cz expgt0 mp3an2 3adant3 sylbi 0lt1 3pos 1lt3 mpbii
    ltdiv2 mp3an12 ex sylc recnd div1d breqtrd 1nn0 a1i 1le3 1z eluz1i mpbir2an
    cuz simp2bi wi 0re sylancr mpd simp3bi leexp2rd exp1d ltletrd posdifd mpbid
    ltle sin01bnd simpld resubcld resincld lttr mp3an1 syl2anc mp2and ) ABCUADE
    ZBAAFGDZFHDZUBDZIJZXDAUCKZIJZBXFIJZXAXCAIJXEXAXCXBAXAXBLEZXCLEZXAALEZFMEXIX
    AXKBAIJZACNJZBUDECLEZXAXKXLXMOZUEUFPBCAUGUHZUIZUJAFUKULZXIFLEZFBUNXJQUMXBFU
    OUPUQZXRXQXAXCXBCHDZXBIXAXIBXBIJZXCYAIJZXRXAXOYBXPXKXLYBXMXKFUREZXLYBRAFUSU
    TVAVBXIYBYCXNBCIJZTZXSBFIJZTZXIYBTZYCXNYEPVCSXSYGQVDSYFYHYIOCFIJYCVECFXBVGV
    FVHVIVJXAXBXAXBXRVKVLVMXAXBACGDANXAACFXQCMEXAVNVOFCVTKEZXAYJYDCFNJRVPCFVQVR
    VSVOXAXLBANJZXAXKXLXMXPWAXABLEZXKXLYKWBWCXQBAWLWDWEXAXKXLXMXPWFWGXAAXAAXQVK
    WHVMWIXAXCAXTXQWJWKXAXGXFAIJAWMWNXAXDLEZXFLEZXEXGTXHWBZXAAXCXQXTWOXAAXQWPYL
    YMYNYOWCBXDXFWQWRWSWT $.

  $( The cosine of a positive real number less than or equal to 1 is positive.
     (Contributed by Paul Chapman, 19-Jan-2008.) $)
  cos01gt0 $p |- ( A e. ( 0 (,] 1 ) -> 0 < ( cos ` A ) ) $=
    ( cc0 c1 co wcel c2 c3 cdiv cmul clt wbr cle cc cr wb 1re wa 3ne0 2re 3re
    cioc cexp cmin ccos cfv wceq cxr w3a 0xr elioc2 mp2an simp1bi resqcld recnd
    wne 2cn 3cn pm3.2i div12 mp3an13 syl cz 2z expgt0 mp3an2 3adant3 sylbi 2lt3
    3pos ltdiv1ii dividi breqtri redivcli mp3an12 mpbii syl2anc mulid1d breqtrd
    mpbi ltmul2 eqbrtrd wi 0re ltle imdistani le2sq2 mpanr1 stoic3 sq1 syl6breq
    redivcl mp3an23 remulcl sylancr ltletr mp3an3 mp2and sylancl mpbid cos01bnd
    mpan posdif simpld resubcl recoscld lttr mp3an1 ) ABCUADEZBCFAFUBDZGHDZIDZU
    CDZJKZXLAUDUEZJKZBXNJKZXHXKCJKZXMXHXKXIJKZXICLKZXQXHXKXIFGHDZIDZXIJXHXIMEZX
    KYAUFZXHXIXHAXHANEZBAJKZACLKZBUGECNEZXHYDYEYFUHZOUIPBCAUJUKZULZUMZUNZFMEYBG
    MEZGBUOZQYCUPYMYNUQRURFXIGUSUTVAXHYAXICIDZXIJXHXINEZBXIJKZYAYOJKZYKXHYHYQYI
    YDYEYQYFYDFVBEYEYQVCAFVDVEVFVGYPYQQZXTCJKZYRXTGGHDZCJFGJKXTUUAJKVHFGGSTTVIV
    JVSGUQRVKVLXTNEYGYSYTYROFGSTRVMPXTCXIVTVNVOVPXHXIYLVQVRWAXHXICFUBDZCLXHYHXI
    UUBLKZYIYDYEYDBALKZQZYFUUCYDYEUUDBNEZYDYEUUDWBWCBAWDXAWEUUEYGYFUUCPACWFWGWH
    VGWIWJXHXKNEZYPXRXSQXQWBZXHFNEXJNEZUUGSXHYPUUIYKYPGNEYNUUITRXIGWKWLVAFXJWMW
    NZYKUUGYPYGUUHPXKXICWOWPVPWQXHUUGYGXQXMOUUJPXKCXBWRWSXHXOXNCXJUCDJKAWTXCXHX
    LNEZXNNEZXMXOQXPWBZXHYGUUGUUKPUUJCXKXDWNXHAYJXEUUFUUKUULUUMWCBXLXNXFXGVPWQ
    $.

  $( The sine of a positive real number less than or equal to 2 is positive.
     (Contributed by Paul Chapman, 19-Jan-2008.) $)
  sin02gt0 $p |- ( A e. ( 0 (,] 2 ) -> 0 < ( sin ` A ) ) $=
    ( cc0 c2 cioc co wcel cmul csin cfv clt cr wbr cle wb 2re syl c1 wa 2pos cc
    cdiv ccos w3a cxr 0xr elioc2 mp2an rehalfcl 3ad2ant1 sylbi resincl remulcld
    recoscl divgt0 mpanr12 3adant3 pm3.2i lediv1 mp3an23 biimpa 2div2e1 3adant2
    syl6breq 3jca 1re 3imtr4i sin01gt0 cos01gt0 wi axmulgt0 syl2anc mp2and mpan
    mpani sylc wceq recnd sin2t breqtrrd simp1bi wne 2cn divcan2 fveq2d breqtrd
    2ne0 ) ABCDEFZBCACUAEZGEZHIZAHIJWGBCWHHIZWHUBIZGEZGEZWJJWGWMKFZBWMJLZBWNJLZ
    WGWHKFZWOWGAKFZBAJLZACMLZUCZWRBUDFZCKFZWGXBNUEOBCAUFUGZWSWTWRXAAUHUIZUJZWRW
    KWLWHUKZWHUMZULPWGBWKJLZBWLJLZWPWGWHBQDEFZXJXBWRBWHJLZWHQMLZUCZWGXLXBWRXMXN
    XFWSWTXMXAWSWTRXDBCJLZXMOSACUNUOUPWSXAXNWTWSXARWHCCUAEZQMWSXAWHXQMLZWSXDXDX
    PRXAXRNOXDXPOSUQACCURUSUTVAVCVBVDXEXCQKFXLXONUEVEBQWHUFUGVFZWHVGPWGXLXKXSWH
    VHPWGWRXJXKRWPVIZXGWRWKKFWLKFXTXHXIWKWLVJVKPVLWOXPWPWQSXDWOXPWPRWQVIOCWMVJV
    MVNVOWGWHTFWJWNVPWGWHXGVQWHVRPVSWGWIAHWGATFZWIAVPZWGAWGWSWTXAXEVTVQYACTFCBW
    AYBWBWFACWCUSPWDWE $.

  $( The signs of the sine and cosine of 1.  (Contributed by Paul Chapman,
     19-Jan-2008.) $)
  sincos1sgn $p |- ( 0 < ( sin ` 1 ) /\ 0 < ( cos ` 1 ) ) $=
    ( c1 cc0 cioc co wcel csin cfv clt wbr ccos wa cr cle 1re 0lt1 1le1 cxr w3a
    wb 0xr elioc2 mp2an mpbir3an sin01gt0 cos01gt0 jca ax-mp ) ABACDEZBAFGHIZBA
    JGHIZKUHALEZBAHIZAAMIZNOPBQEUKUHUKULUMRSTNBAAUAUBUCUHUIUJAUDAUEUFUG $.

  $( The signs of the sine and cosine of 2.  (Contributed by Paul Chapman,
     19-Jan-2008.) $)
  sincos2sgn $p |- ( 0 < ( sin ` 2 ) /\ ( cos ` 2 ) < 0 ) $=
    ( cc0 c2 csin cfv clt wbr ccos cioc co wcel cr 2re wb mp2an ax-mp cdiv cneg
    c9 9re 9pos cle 2pos cxr w3a 0xr elioc2 mpbir3an sin02gt0 c1 cos2bnd simpri
    leidi c7 recgt0ii gt0ne0ii rereccli lt0neg2 mpbi recoscl renegcli 0re lttri
    pm3.2i ) ABCDEFZBGDZAEFZBABHIJZVDVGBKJZABEFZBBUAFZLUBBLULAUCJVHVGVHVIVJUDMU
    ELABBUFNUGBUHOVEUIRPIZQZEFZVLAEFZVFUMRPIQVEEFVMUJUKAVKEFZVNRSTUNVKKJVOVNMRS
    RSTUOUPZVKUQOURVEVLAVHVEKJLBUSOVKVPUTVAVBNVC $.

  $( The sine of 4 is negative.  (Contributed by Paul Chapman, 19-Jan-2008.) $)
  sin4lt0 $p |- ( sin ` 4 ) < 0 $=
    ( c4 csin cfv c2 cmul co cc0 clt wcel 2cn ax-mp wbr sincos2sgn cr wa wb 2re
    0re pm3.2i ltmul2 ccos 2t2e4 fveq2i wceq sin2t eqtr3i simpri recoscl simpli
    cc resincl mp3an mpbi recni mul01i breqtri remulcli 2pos eqbrtri ) ABCZDDBC
    ZDUACZEFZEFZGHDDEFZBCZUTVDVEABUBUCDUJIVFVDUDJDUEKUFVDDGEFZGHVCGHLZVDVGHLZVC
    VAGEFZGHVBGHLZVCVJHLZGVAHLZVKMUGVBNIZGNIZVANIZVMOVKVLPDNIZVNQDUHKZRVPVMVQVP
    QDUKKZVMVKMUISVBGVATULUMVAVAVSUNUOUPVCNIVOVQGDHLZOVHVIPVAVBVSVRUQRVQVTQURSV
    CGDTULUMDJUOUPUS $.

  $( The absolute value of the exponential function of an imaginary number is
     one.  Equation 48 of [Rudin] p. 167.  (Contributed by Jason Orendorff,
     9-Feb-2007.) $)
  absefi $p |- ( A e. RR -> ( abs ` ( exp ` ( _i x. A ) ) ) = 1 ) $=
    ( cr wcel ci cmul co ce cfv cabs caddc c1 wceq fveq2d c2 cexp csqrt resqcld
    syl recnd eqtrd ccos csin cc efival recoscl resincl absreim syl2anc addcomd
    recn sincossq sqrt1 syl6eq ) ABCZDAEFGHZIHAUAHZDAUBHZEFJFZIHZKUNUOURIUNAUCC
    ZUOURLAUJZAUDRMUNUSUPNOFZUQNOFZJFZPHZKUNUPBCUQBCUSVELAUEZAUFZUPUQUGUHUNVEKP
    HKUNVDKPUNVDVCVBJFZKUNVBVCUNVBUNUPVFQSUNVCUNUQVGQSUIUNUTVHKLVAAUKRTMULUMTT
    $.

  $( The absolute value of the exponential function is the exponential function
     of the real part.  (Contributed by Paul Chapman, 13-Sep-2007.) $)
  absef $p |- ( A e. CC -> ( abs ` ( exp ` A ) ) = ( exp ` ( Re ` A ) ) ) $=
    ( cc wcel ce cfv cabs cre c1 cmul co ci fveq2d wceq recnd sylancr cr 3eqtrd
    syl cc0 wbr caddc replim recl ax-icn imcl mulcl efadd syl2anc eqtrd reefcld
    cim efcl absmuld absefi oveq2d abscld mulid1d clt cle efgt0 wi 0re ltle mpd
    absidd ) ABCZADEZFEZAGEZDEZFEZHIJZVKVJVFVHVJKAUKEZIJZDEZIJZFEVKVOFEZIJVLVFV
    GVPFVFVGVIVNUAJZDEZVPVFAVRDAUBLVFVIBCVNBCZVSVPMVFVIAUCZNVFKBCVMBCVTUDVFVMAU
    EZNKVMUFOZVIVNUGUHUILVFVJVOVFVJVFVIWAUJZNZVFVTVOBCWCVNULRUMVFVQHVKIVFVMPCVQ
    HMWBVMUNRUOQVFVKVFVKVFVJWEUPNUQVFVJWDVFSVJURTZSVJUSTZVFVIPCWFWAVIUTRVFSPCVJ
    PCWFWGVAVBWDSVJVCOVDVEQ $.

  $( A number is real iff its imaginary exponential has absolute value one.
     (Contributed by NM, 21-Aug-2008.) $)
  absefib $p |- ( A e. CC
          -> ( A e. RR <-> ( abs ` ( exp ` ( _i x. A ) ) ) = 1 ) ) $=
    ( cc wcel cfv cneg ce c1 wceq cc0 ci co cr recnd cre ax-icn mulcl syl caddc
    cmul eqtrd cim cabs ef0 eqeq2i wb imcl renegcld 0re sylancl syl5bbr negeq0d
    reef11 bitr4d mpan absef replim sylancr addcomd oveq2d adddi mp3an1 syl2anc
    recl oveq1i mulass mp3an12 mulm1d 3eqtr3a oveq1d fveq2d crred eqeq1d reim0b
    ixi 3bitr4rd ) ABCZAUADZEZFDZGHZVQIHZJASKZFDUBDZGHALCVPVTVRIHZWAVTVSIFDZHZV
    PWDWEGVSUCUDVPVRLCILCWFWDUEVPVQAUFZUGZUHVRIULUIUJVPVQVPVQWGMZUKUMVPWCVSGVPW
    CWBNDZFDZVSVPWBBCZWCWKHJBCZVPWLOJAPUNWBUOQVPWJVRFVPWJVRJANDZSKZRKZNDVRVPWBW
    PNVPWBJJVQSKZWNRKZSKZWPVPAWRJSVPAWNWQRKWRAUPVPWNWQVPWNAVCZMZVPWMVQBCZWQBCZO
    WIJVQPUQZURTUSVPWSJWQSKZWORKZWPVPXCWNBCZWSXFHZXDXAWMXCXGXHOJWQWNUTVAVBVPXEV
    RWORVPJJSKZVQSKZGEZVQSKXEVRXIXKVQSVNVDVPXBXJXEHZWIWMWMXBXLOOJJVQVEVFQVPVQWI
    VGVHVITTVJVPVRWNWHWTVKTVJTVLAVMVO $.

  $( TODO - make obsolete $)
  $( A number whose imaginary exponential is one is real.  (Contributed by NM,
     21-Aug-2008.) $)
  efieq1re $p |- ( ( A e. CC /\ ( exp ` ( _i x. A ) ) = 1 ) -> A e. RR ) $=
    ( cc wcel ci cmul co ce cfv c1 wceq cneg cabs caddc oveq2d recnd ax-icn syl
    cr eqtrd cc0 cim replim recl imcl mulcl sylancr adddi mp3an1 syl2anc oveq1i
    cre mulass mp3an12 mulm1d 3eqtr3a fveq2d renegcld efadd eqeq1d efcl absmuld
    ixi absefi reefcld clt wbr cle wi 0re ltle mpan sylc absidd oveq12d mulid2d
    efgt0 3eqtrrd fveq2 sylan9eq ex sylbid negeq0d reim0b abs1 eqtr4i eqeq2i wb
    ef0 reef11 sylancl syl5bbr 3bitr4rd sylibd imp ) ABCZDAEFZGHZIJZARCZWOWRAUA
    HZKZGHZILHZJZWSWOWRDAUKHZEFZGHZXBEFZIJZXDWOWQXHIWOWQXFXAMFZGHZXHWOWPXJGWOWP
    DXEDWTEFZMFZEFZXJWOAXMDEAUBNWOXNXFDXLEFZMFZXJWOXEBCZXLBCZXNXPJZWOXEAUCZOZWO
    DBCZWTBCZXRPWOWTAUDZOZDWTUEUFYBXQXRXSPDXEXLUGUHUIWOXOXAXFMWODDEFZWTEFZIKZWT
    EFXOXAYFYHWTEVBUJWOYCYGXOJZYEYBYBYCYIPPDDWTULUMQWOWTYEUNUONSSUPWOXFBCZXABCZ
    XKXHJWOYBXQYJPYADXEUEUFZWOXAWOWTYDUQZOZXFXAURUISUSWOXIXDWOXIXBXHLHZXCWOYOXG
    LHZXBLHZEFIXBEFXBWOXGXBWOYJXGBCYLXFUTQWOYKXBBCYNXAUTQZVAWOYPIYQXBEWOXERCYPI
    JXTXEVCQWOXBWOXAYMVDZWOXBRCZTXBVEVFZTXBVGVFZYSWOXARCZUUAYMXAVPQTRCZYTUUAUUB
    VHVITXBVJVKVLVMVNWOXBYRVOVQXHILVRVSVTWAWOWTTJXATJZWSXDWOWTYEWBAWCXDXBTGHZJZ
    WOUUEUUFXCXBUUFIXCWHWDWEWFWOUUCUUDUUGUUEWGYMVIXATWIWJWKWLWMWN $.

  ${
    $d x k $.  $d x N $.  $d A x $.  $d A k $.
    $( De Moivre's Formula.  Proof by induction given at
       ~ http://en.wikipedia.org/wiki/De&#x5F;Moivre&#x27;s&#x5F;formula , but
       restricted to nonnegative integer powers.  See also ~ demoivreALT for an
       alternate longer proof not using the exponential function.  (Contributed
       by NM, 24-Jul-2007.) $)
    demoivre $p |- ( ( A e. CC /\ N e. ZZ ) ->
                  ( ( ( cos ` A ) + ( _i x. ( sin ` A ) ) ) ^ N ) =
                 ( ( cos ` ( N x. A ) ) + ( _i x. ( sin ` ( N x. A ) ) ) ) ) $=
      ( cc wcel cz wa ci cmul co ce cexp ccos csin caddc wceq ax-icn mulcl mpan
      cfv efival efexp sylan zcn mul12 mp3an2 fveq2d eqtrd ancoms sylan2 oveq1d
      syl adantr 3eqtr3rd ) ACDZBEDZFBGAHIZHIZJSZUPJSZBKIZBAHIZLSGVAMSHINIZALSG
      AMSHINIZBKIZUNUPCDZUOURUTOGCDZUNVEPGAQRUPBUAUBUOUNBCDZURVBOZBUCVGUNVHVGUN
      FZURGVAHIZJSZVBVIUQVJJVGVFUNUQVJOPBGAUDUEUFVIVACDVKVBOBAQVATUKUGUHUIUNUTV
      DOUOUNUSVCBKATUJULUM $.

    $( Alternate proof of ~ demoivre .  It is longer but does not use the
       exponential function.  This is Metamath 100 proof #17.  (Contributed by
       Steve Rodriguez, 10-Nov-2006.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    demoivreALT $p |- ( ( A e. CC /\ N e. NN0 ) ->
                  ( ( ( cos ` A ) + ( _i x. ( sin ` A ) ) ) ^ N ) =
                 ( ( cos ` ( N x. A ) ) + ( _i x. ( sin ` ( N x. A ) ) ) ) ) $=
      ( wcel cc ccos cfv ci csin cmul caddc cexp wceq cc0 fveq2d oveq2d oveq12d
      co c1 ax-icn syl2anc vx vk cn0 cv wi oveq2 oveq1 imbi2d coscl sincl mulcl
      eqeq12d sylancr addcl exp0 mul02 cos0 syl6eq mul01i ax-1cn addid1i eqtr4d
      syl sin0 wa expp1 sylan ancoms adantr adantl nn0cn sinadd sylancom mulcom
      oveq1d addcom 3eqtr2d w3a adddir mulid2 3ad2ant3 syl3an1 mp3an2 cmin cneg
      eqtrd mpan 3syl jca muladd syl21anc jctil mul4 oveq1i mul12 mp3an1 3eqtrd
      ixi adddi mulm1 negsub cosadd 3eqtr4rd exp31 a2d nn0ind impcom ) BUCCADCZ
      AEFZGAHFZIQZJQZBKQZBAIQZEFZGXNHFZIQZJQZLZXHXLUAUDZKQZXTAIQZEFZGYBHFZIQZJQ
      ZLZUEXHXLMKQZMAIQZEFZGYIHFZIQZJQZLZUEXHXLUBUDZKQZYOAIQZEFZGYQHFZIQZJQZLZU
      EXHXLYORJQZKQZUUCAIQZEFZGUUEHFZIQZJQZLZUEXHXSUEUAUBBXTMLZYGYNXHUUKYAYHYFY
      MXTMXLKUFUUKYCYJYEYLJUUKYBYIEXTMAIUGZNUUKYDYKGIUUKYBYIHUULNOPULUHXTYOLZYG
      UUBXHUUMYAYPYFUUAXTYOXLKUFUUMYCYRYEYTJUUMYBYQEXTYOAIUGZNUUMYDYSGIUUMYBYQH
      UUNNOPULUHXTUUCLZYGUUJXHUUOYAUUDYFUUIXTUUCXLKUFUUOYCUUFYEUUHJUUOYBUUEEXTU
      UCAIUGZNUUOYDUUGGIUUOYBUUEHUUPNOPULUHXTBLZYGXSXHUUQYAXMYFXRXTBXLKUFUUQYCX
      OYEXQJUUQYBXNEXTBAIUGZNUUQYDXPGIUUQYBXNHUURNOPULUHXHYHRYMXHXLDCZYHRLXHXID
      CZXKDCZUUSAUIZXHGDCZXJDCZUVASAUJZGXJUKUMZXIXKUNTZXLUOVCXHYMRMJQRXHYJRYLMJ
      XHYJMEFRXHYIMEAUPZNUQURXHYLGMIQMXHYKMGIXHYKMHFMXHYIMHUVHNVDUROGSUSURPRUTV
      AURVBYOUCCZXHUUBUUJUVIXHUUBUUJUVIXHVEZUUBVEUUDYPXLIQZUUAXLIQZUUIUVJUUDUVK
      LZUUBXHUVIUVMXHUUSUVIUVMUVGXLYOVFVGVHVIUUBUVKUVLLUVJYPUUAXLIUGVJUVJUVLUUI
      LUUBUVJYQAJQZEFZGUVNHFZIQZJQUVOGYRXJIQZXIYSIQZJQZIQZJQZUUIUVLUVJUVQUWAUVO
      JUVJUVPUVTGIUVJUVPYSXIIQZUVRJQZUVSUVRJQZUVTUVIXHYQDCZUVPUWDLUVIYODCZXHUWF
      YOVKZYOAUKVGZYQAVLVMUVJUVSUWCUVRJUVJUUTYSDCZUVSUWCLXHUUTUVIUVBVJZUVJUWFUW
      JUWIYQUJZVCZXIYSVNTVOUVJUVSDCZUVRDCZUWEUVTLUVJUUTUWJUWNUWKUWMXIYSUKTZUVJY
      RDCZUVDUWOUVJUWFUWQUWIYQUIVCZXHUVDUVIUVEVJZYRXJUKTZUVSUVRVPTVQOOUVJUUFUVO
      UUHUVQJUVJUUEUVNEUVIRDCZXHUUEUVNLZUTUVIUWGUXAXHUXBUWHUWGUXAXHVRUUEYQRAIQZ
      JQZUVNYORAVSXHUWGUXDUVNLUXAXHUXCAYQJAVTOWAWFWBWCZNUVJUUGUVPGIUVJUUEUVNHUX
      ENOPUVJUVLYRXIIQZXJYSIQZWDQZUWAJQZUWBUVJUVLUXFRWEZUXGIQZJQZUWAJQZUXFUXGWE
      ZJQZUWAJQUXIUVJUVLUXFXKYTIQZJQZYRXKIQZXIYTIQZJQZJQZUXLUXTJQUXMUVJUWQYTDCZ
      UUTUVAVEZUVLUYALUWRUVJUWFUWJUYBUWIUWLUVCUWJUYBSGYSUKWGWHXHUYCUVIXHUUTUVAU
      VBUVFWIVJYRYTXIXKWJWKUVJUXQUXLUXTJUVJUXPUXKUXFJUVJUVCUVDVEZUVCUWJVEZUXPUX
      KLUVJUVDUVCUWSSWLUVJUWJUVCUWMSWLUYDUYEVEUXPGGIQZUXGIQUXKGXJGYSWMUYFUXJUXG
      IWRWNURTOVOUVJUXTUWAUXLJUVJUXTGUVRIQZGUVSIQZJQZUWAUVJUXRUYGUXSUYHJUVJUWQU
      VDUXRUYGLZUWRUWSUWQUVCUVDUYJSYRGXJWOWCTUVJUUTUWJUXSUYHLZUWKUWMUUTUVCUWJUY
      KSXIGYSWOWCTPUVJUWOUWNUWAUYILZUWTUWPUVCUWOUWNUYLSGUVRUVSWSWPTVBOWQUVJUXLU
      XOUWAJUVJUXKUXNUXFJUVJUXGDCZUXKUXNLUVJUVDUWJUYMUWSUWMXJYSUKTZUXGWTVCOVOUV
      JUXOUXHUWAJUVJUXFDCZUYMUXOUXHLUVJUWQUUTUYOUWRUWKYRXIUKTUYNUXFUXGXATVOWQUV
      JUVOUXHUWAJUVJUVOUXFYSXJIQZWDQZUXHUVIXHUWFUVOUYQLUWIYQAXBVMUVJUYPUXGUXFWD
      UVJUWJUVDUYPUXGLUWMUWSYSXJVNTOWFVOVBXCVIWQXDXEXFXG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  _e is irrational
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d k F $.  $d k ph $.  $d k n Q $.
    eirr.1 $e |- F = ( n e. NN0 |-> ( 1 / ( ! ` n ) ) ) $.
    eirr.2 $e |- ( ph -> P e. ZZ ) $.
    eirr.3 $e |- ( ph -> Q e. NN ) $.
    eirr.4 $e |- ( ph -> _e = ( P / Q ) ) $.
    $( Lemma for ~ eirr .  (Contributed by Paul Chapman, 9-Feb-2008.)  (Revised
       by Mario Carneiro, 29-Apr-2014.) $)
    eirrlem $p |- -. ph $=
      ( vk c1 co cmul wcel ceu cc0 cn0 cdiv wbr clt cfa cfv caddc cuz cv csu cz
      cfz cmin esum wceq fveq2 oveq2d ovex fvmpt sumeq2i eqtr4i nn0uz peano2nnd
      eqid nnnn0d wa eqidd cexp cc cmpt nn0z 1exp oveq1d mpteq2ia eftval adantl
      syl ax-1cn a1i eftcl sylan eqeltrd cli cdm efcllem isumsplit syl5eq nncnd
      cseq pncan sylancl sumeq1d eqtrd fzfid elfznn0 sylan2 fsumcl crp cn faccl
      nnrpd rpreccld isumrpcl rpred recnd pncan2d ere subdid eqtr3d zcnd nnne0d
      recni div12d cle nnred leidd facdiv syl3anc nnzd zmulcld fsummulc2 adantr
      wne facne0 divrecd eqtr4d permnn fsumzcl zsubcld wn 0zd rpmulcld nnmulcld
      rpgt0d cabs abs1 oveq1i cr wb mpbid c2 nngt0d syl112anc mpbird 1le1 absid
      nndivred nnrecred mpteq2i eqbrtri rprege0d mulid2d readdcld remulcld 1red
      eftlub 3brtr3d nnge1d 1nn nnleltp1 sylancr ltadd2dd 2timesd df-2 leadd1dd
      syl5eqbr lemul1 eqbrtrrd ltletrd facp1 divcan3d 3eqtr3rd breqtrd ltdivmul
      2re mul32d lelttrd ltmuldiv2d 0p1e1 syl6breqr btwnnz pm2.65i ) ACUAUBZCKU
      CLZUDUBZJUEZEUBZJUFZMLZUGNZAUWEUVSOMLZUVSPCUHLZUWCJUFZMLZUILZUGAUVSOUWIUI
      LZMLUWEUWKAUWLUWDUVSMAUWLUWIUWDUCLZUWIUILUWDAOUWMUWIUIAOPUVTKUILZUHLZUWCJ
      UFZUWDUCLZUWMAOQUWCJUFZUWQOQKUWBUAUBZRLZJUFUWRJUJQUWCUWTJDUWBKDUEZUAUBZRL
      ZUWTQEUXAUWBUKUXBUWSKRUXAUWBUAULUMFKUWSRUNUOZUPUQAUWCJEPUVTUWAQURUWAUTZAU
      VTACHUSZVAZAUWBQNZVBZUWCVCZUXIUWCKUWBVDLUWSRLZVEUXHUWCUXKUKAKDEUWBEDQUXCV
      FDQKUXAVDLZUXBRLZVFZFDQUXMUXCUXAQNZUXLKUXBRUXOUXAUGNUXLKUKUXAVGUXAVHVMVIV
      JUQZVKVLAKVENZUXHUXKVENUXQAVNVOZKUWBVPVQVRZAUXQUCEPWEVSVTNUXRKDEUXPWAVMZW
      BWCAUWPUWIUWDUCAUWOUWHUWCJAUWNCPUHACVENUXQUWNCUKACHWDZVNCKWFWGUMWHVIWIVIA
      UWIUWDAUWHUWCJAPCWJZUWBUWHNZAUXHUWCVENUWBCWKZUXSWLZWMZAUWDAUWDAUWCJEPUVTU
      WAQURUXEUXGUXJUXIUWCUWTWNUXHUWCUWTUKZAUXDVLUXIUWSUXIUWSUXHUWSWONZAUWBWPVL
      ZWQWRVRUXTWSZWTZXAXBWIUMAUVSOUWIAUVSACQNZUVSWONACHVAZCWPVMZWDZOVENAOXCXHV
      OUYFXDXEAUWGUWJAUWGBUVSCRLZMLZUGAUWGUVSBCRLZMLUYQAOUYRUVSMIUMAUVSBCUYOABG
      XFUYAACHXGXIWIABUYPGAUYPAUYLCWONZCCXJSUYPWONUYMHACACHXKZXLCCXMXNXOXPVRAUW
      JUWHUVSUWCMLZJUFUGAUWHUWCUVSJUYBUYOUYEXQAUWHVUAJUYBAUYCVBZVUAVUBVUAUVSUWS
      RLZWOVUBVUAUVSUWTMLVUCVUBUWCUWTUVSMVUBUXHUYGUYCUXHAUYDVLZUXDVMUMVUBUVSUWS
      AUVSVENUYCUYOXRVUBUWSUYCAUXHUYHUYDUYIWLWDVUBUXHUWSPXSVUDUWBXTVMYAYBUYCVUC
      WONAUWBCYCVLVRXOYDVRYEVRAPUGNPUWETSUWEPKUCLZTSUWFYFAYGAUWEAUVSUWDAUVSUYNW
      QZUYJYHYJAUWEKVUETAUWEKTSUWDKUVSRLZTSAUWDUVTKUCLZUVTUAUBZUVTMLZRLZVUGUYKA
      VUHVUJAVUHAUVTUXFUSXKZAVUIUVTAUVTQNVUIWONUXGUVTWPVMZUXFYIZUUCZAUVSUYNUUDZ
      AUWDYKUBZKYKUBZUVTVDLZVUKMLZUWDVUKXJAKJDEEDQVUSVUIRLKVUHRLUXAVDLMLVFZUVTU
      XPEUXNDQVURUXAVDLZUXBRLZVFUXPDQVVCUXMVVBUXLUXBRVURKUXAVDYLYMYMUUEUQVVAUTU
      XFUXRVURKXJSAVURKKXJYLUUAUUFVOUULAUWDYNNPUWDXJSVBVUQUWDUKAUWDUYJUUGUWDUUB
      VMAVUTKVUKMLVUKAVUSKVUKMAVUSKUVTVDLZKVURKUVTVDYLYMAUVTUGNVVDKUKAUVTUXFXOU
      VTVHVMWCVIAVUKAVUKVUOXAUUHWIUUMAVUKVUGTSZVUHVUJVUGMLZTSZAVUHUVTUVTMLZVVFT
      AVUHUVTUVTUCLZVVHVULAUVTUVTAUVTUXFXKZVVJUUIAUVTUVTVVJVVJUUJAKUVTUVTAUUKZV
      VJVVJAKCXJSZKUVTTSZACHUUNZAKWONUYSVVLVVMYOUUOHKCUUPUUQYPUURAYQUVTMLZVVIVV
      HXJAUVTAUVTUXFWDZUUSAYQUVTXJSZVVOVVHXJSZAYQKKUCLUVTXJUUTAKCKVVKUYTVVKVVNU
      VAUVBAYQYNNZUVTYNNZVVTPUVTTSVVQVVRYOVVSAUVKVOVVJVVJAUVTUXFYRYQUVTUVTUVCYS
      YPUVDUVEAVVHVUIVUGMLZUVTMLVVFAUVTVWAUVTMAVUIUVSRLUVSUVTMLZUVSRLVWAUVTAVUI
      VWBUVSRAUYLVUIVWBUKUYMCUVFVMVIAVUIUVSAVUIVUMWDZUYOAUVSUYNXGZYAAUVTUVSVVPU
      YOVWDUVGUVHVIAVUIVUGUVTVWCAVUGVUPXAVVPUVLWIUVIAVUHYNNVUGYNNVUJYNNPVUJTSVV
      EVVGYOVULVUPAVUJVUNXKAVUJVUNYRVUHVUGVUJUVJYSYTUVMAUWDKUVSUYKVVKVUFUVNYTUV
      OUVPPUWEUVQXNUVR $.
  $}

  ${
    $d n p q $.
    $( ` _e ` is irrational.  (Contributed by Paul Chapman, 9-Feb-2008.)
       (Proof shortened by Mario Carneiro, 29-Apr-2014.) $)
    eirr $p |- _e e/ QQ $=
      ( vp vq vn ceu cq wcel cv cdiv co wceq cn wrex cz wa cn0 c1 cfa cmpt eqid
      cfv simpll simplr simpr eirrlem imnani nrexdv nrex elq mtbir nelir ) DEDE
      FDAGZBGZHIJZBKLZAMLUNAMUKMFZUMBKUOULKFZNZUMUQUMNUKULCCOPCGQTHIRZURSUOUPUM
      UAUOUPUMUBUQUMUCUDUEUFUGABDUHUIUJ $.
  $}

  $( Euler's constant ` _e ` = 2.71828... is bounded by 2 and 3.  (Contributed
     by NM, 28-Nov-2008.)  (Revised by Mario Carneiro, 29-Apr-2014.) $)
  egt2lt3 $p |- ( 2 < _e /\ _e < 3 ) $=
    ( vn c2 ceu clt wbr c3 cle cn c1 cdiv co cmpt eqid wcel wceq eleq1 necon3bi
    wne cq ax-mp cv cexp cmul cn0 cfa cfv ege2le3 simpli wn eirr nnq mto mpbiri
    neli 2nn 2re ere ltleni mpbir2an simpri 3nn mpbii 3re pm3.2i ) BCDEZCFDEZVE
    BCGEZCBRZVGCFGEZAAHBIBJKAUAZUBKUCKLZAUDIVJUEUFJKLZVKMVLMUGZUHCHNZUIZVHVNCSN
    CSUJUNCUKULZVNCBCBOVNBHNUOCBHPUMQTBCUPUQURUSVFVIFCRZVGVIVMUTVOVQVPVNFCFCOFH
    NVNVAFCHPVBQTCFUQVCURUSVD $.

  $( Euler's constant ` _e ` is greater than 0.  (Contributed by Jeff Hankins,
     22-Nov-2008.) $)
  epos $p |- 0 < _e $=
    ( cc0 c2 clt wbr ceu 2pos c3 egt2lt3 simpli 0re 2re ere lttri mp2an ) ABCDB
    ECDZAECDFOEGCDHIABEJKLMN $.

  $( Euler's constant ` _e ` is a positive real.  (Contributed by Jeff Hankins,
     22-Nov-2008.) $)
  epr $p |- _e e. RR+ $=
    ( ceu ere epos elrpii ) ABCD $.

  $( ` _e ` is not 0.  (Contributed by David A. Wheeler, 17-Oct-2017.) $)
  ene0 $p |- _e =/= 0 $=
    ( ceu ere epos gt0ne0ii ) ABCD $.

  $( ` _e ` is not 1.  (Contributed by David A. Wheeler, 17-Oct-2017.) $)
  ene1 $p |- _e =/= 1 $=
    ( c1 ceu 1re c2 clt wbr 1lt2 c3 egt2lt3 simpli 2re ere lttri mp2an gtneii )
    ABCADEFDBEFZABEFGPBHEFIJADBCKLMNO $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Cardinality of real and complex number subsets
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Countability of integers and rationals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The Cartesian product of the set of positive integers with itself is
     equinumerous to the set of positive integers.  (Contributed by NM,
     1-Aug-2004.)  (Revised by Mario Carneiro, 9-Mar-2013.) $)
  xpnnen $p |- ( NN X. NN ) ~~ NN $=
    ( cn cxp com cen wbr nnenom xpen mp2an xpomen entr4i entri ) AABZCCBZAACDEZ
    NLMDEFFACACGHMCAIFJK $.

  $( Lemma for ~ znnen .  (Contributed by NM, 31-Jul-2004.) $)
  znnenlem $p |- ( ( ( 0 <_ x /\ -. 0 <_ y ) /\ ( x e. ZZ /\ y e. ZZ ) ) ->
                  ( x = y <-> ( 2 x. x ) = ( ( -u 2 x. y ) + 1 ) ) ) $=
    ( cc0 cv cle wbr wa cz wcel c2 cmul co cneg c1 caddc wne cr wi zre adantl
    wn clt wb 0re ltnle adantr anbi1d ltletr mp3an2 sylbird ancoms ancomsd ltne
    mpan2 ex syld syl2an impcom znegcl zneo sylan2 wceq cc 2cn mulneg12 sylancr
    zcn oveq1d neeqtrrd 2thd necon4bid ) CADZEFZCBDZEFUAZGZVLHIZVNHIZGZGZVLVNJV
    LKLZJMVNKLZNOLZVTVLVNPZWAWCPZVSVPWDVQVLQIZVNQIZVPWDRVRVLSVNSWFWGGZVPVNVLUBF
    ZWDWHVOVMWIWGWFVOVMGZWIRWGWFGZWJVNCUBFZVMGZWIWKWLVOVMWGWLVOUCZWFWGCQIZWNUDV
    NCUEUNUFUGWGWOWFWMWIRUDVNCVLUHUIUJUKULWGWIWDRWFWGWIWDVNVLUMUOTUPUQURVSWEVPV
    SWAJVNMZKLZNOLZWCVRVQWPHIWAWRPVNUSVLWPUTVAVSWBWQNOVRWBWQVBZVQVRJVCIVNVCIWSV
    DVNVGJVNVEVFTVHVITVJVK $.

  $( The set of integers and the set of positive integers are equinumerous.
     Exercise 1 of [Gleason] p. 140.  (Contributed by NM, 31-Jul-2004.)  (Proof
     shortened by Mario Carneiro, 13-Jun-2014.) $)
  znnen $p |- ZZ ~~ NN $=
    ( cz cn cdom wbr cen cxp ccrd cdm wcel cmin wfo com mp2an wss cc subf ax-mp
    nnsscn mp2 cvv cres con0 omelon nnenom ensymi isnumi xpnum cima wfun xpss12
    wf ffun fdmi sseqtr4i fores wceq wb foeq3 mpbir fodomnum xpnnen domentr zex
    dfz2 nnssz ssdomg sbth ) ABCDZBACDZABEDABBFZCDZVJBEDVHVJGHZIZVJAJVJUAZKZVKB
    VLIZVPVMLUBILBEDVPUCBLUDUELBUFMZVQBBUGMVOVJJVJUHZVNKZJUIZVJJHZNVSOOFZOJUKVT
    PWBOJULQVJWBWABONZWCVJWBNRRBOBOUJMWBOJPUMUNVJJUOMAVRUPVOVSUQVDAVRVJVNURQUSV
    JAVNUTSVAAVJBVBMATIBANVIVCVEBATVFSABVGM $.

  ${
    $d x y z $.
    $( The rational numbers are countable.  This proof does not use the Axiom
       of Choice, even though it uses an onto function, because the base set
       ` ( ZZ X. NN ) ` is numerable.  Exercise 2 of [Enderton] p. 133.  For
       purposes of the Metamath 100 list, we are considering Mario Carneiro's
       revision as the date this proof was completed.  This is Metamath 100
       proof #3.  (Contributed by NM, 31-Jul-2004.)  (Revised by Mario
       Carneiro, 3-Mar-2013.) $)
    qnnen $p |- QQ ~~ NN $=
      ( vx vy vz cq cn cdom wbr cen cz cxp wcel cv cdiv com mp2an wceq wrex mp2
      znnen cvv ccrd cdm co cmpt2 wfo con0 omelon nnenom ensymi isnumi wb ennum
      ax-mp mpbir xpnum wfn crn eqid fnmpt2i cab rnmpt2 elq abbi2i eqtr4i df-fo
      ovex mpbir2an fodomnum nnex enref xpen xpnnen entri domentr wss qex nnssq
      ssdomg sbth ) DEFGZEDFGZDEHGDIEJZFGZWBEHGVTWBUAUBZKZWBDABIEALZBLZMUCZUDZU
      EZWCIWDKZEWDKZWEWKWLNUFKNEHGWLUGENUHUINEUJOZIEHGZWKWLUKSIEULUMUNWMIEUOOWJ
      WIWBUPWIUQZDPABIEWHWIWIURZWFWGMVFUSWOCLZWHPBEQAIQZCUTDABCIEWHWIWPVAWRCDAB
      WQVBVCVDWBDWIVEVGWBDWIVHRWBEEJZEWNEEHGWBWSHGSEVIVJIEEEVKOVLVMDWBEVNODTKED
      VOWAVPVQEDTVRRDEVSO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The reals are uncountable
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d m n x y z $.  $d k n x A $.  $d k n x B $.  $d k m y z F $.  $d k ph $.
    $d k n x M $.  $d n N $.
    rpnnen2.1 $e |- F = ( x e. ~P NN |->
      ( n e. NN |-> if ( n e. x , ( ( 1 / 3 ) ^ n ) , 0 ) ) ) $.
    $( Lemma for ~ rpnnen2 .  (Contributed by Mario Carneiro, 13-May-2013.) $)
    rpnnen2lem1 $p |- ( ( A C_ NN /\ N e. NN ) ->
        ( ( F ` A ) ` N ) = if ( N e. A , ( ( 1 / 3 ) ^ N ) , 0 ) ) $=
      ( cn wss wcel cfv cv c1 co cexp cc0 cif cmpt wceq nnex fvmpt c3 cpw elpw2
      cdiv eleq2 ifbid mpteq2dv mptex sylbir eleq1 ifbieq1d eqid ovex c0ex ifex
      fveq1d oveq2 sylan9eq ) BGHZEGIEBDJZJECGCKZBIZLUAUDMZVANMZOPZQZJEBIZVCENM
      ZOPZUSEUTVFUSBGUBZIUTVFRBGSUCABCGVAAKZIZVDOPZQVFVJDVKBRZCGVMVEVNVLVBVDOVK
      BVAUEUFUGFCGVESUHTUIUPCEVEVIGVFVAERVBVGVDVHOVAEBUJVAEVCNUQUKVFULVGVHOVCEN
      UMUNUOTUR $.

    $( Lemma for ~ rpnnen2 .  (Contributed by Mario Carneiro, 13-May-2013.)
       (Revised by Mario Carneiro, 23-Aug-2014.) $)
    rpnnen2lem2 $p |- ( A C_ NN -> ( F ` A ) : NN --> RR ) $=
      ( cn wss cr cfv wf cv wcel c1 c3 co cc0 cif cmpt wceq nnex cdiv cn0 mp2an
      cexp 1re 3nn nndivre nnnn0 reexpcl sylancr ifcl sylancl adantl eqid fmptd
      0re cpw elpw2 eleq2 ifbid mpteq2dv mptex fvmpt sylbir feq1d mpbird ) BFGZ
      FHBDIZJFHCFCKZBLZMNUAOZVIUDOZPQZRZJVGCFVMHVNVIFLZVMHLZVGVOVLHLZPHLVPVOVKH
      LZVIUBLVQMHLNFLVRUEUFMNUGUCVIUHVKVIUIUJUPVJVLPHUKULUMVNUNUOVGFHVHVNVGBFUQ
      ZLVHVNSBFTURABCFVIAKZLZVLPQZRVNVSDVTBSZCFWBVMWCWAVJVLPVTBVIUSUTVAECFVMTVB
      VCVDVEVF $.

    $( Lemma for ~ rpnnen2 .  (Contributed by Mario Carneiro, 13-May-2013.) $)
    rpnnen2lem3 $p |- seq 1 ( + , ( F ` NN ) ) ~~> ( 1 / 2 ) $=
      ( cn cfv c1 c3 cdiv co cmin c2 wbr wtru cc wcel cr clt cc0 wceq cseq cexp
      vk caddc cli 1re 3nn nndivre mp2an recni a1i cabs cle 0re 3re 3pos ltleii
      recgt0ii absid 1lt3 wb recgt1 mpbi eqbrtri cn0 1nn0 cv cuz cif ssid simpr
      wa wss nnuz syl6eleqr rpnnen2lem1 sylancr iftrued eqtrd geolim2 trud exp1
      ax-mp wne ax-1cn 3ne0 pm3.2i divsubdir mp3an 3m1e2 oveq1i dividi 3eqtr3ri
      3cn oveq12i 2cnne0 divcan7 eqtri breqtri ) UDECFZGUAZGHIJZGUBJZGXBKJZIJZG
      LIJZUEXAXEUEMNXBUCWTGXBOPZNXBGQPHEPXBQPZUFUGGHUHUIZUJZUKXBULFZGRMNXKXBGRX
      HSXBUMMXKXBTXISXBUNXIHUOUPURUQXBUSUIGHRMZXBGRMZUTHQPSHRMXLXMVAUOUPHVBUIVC
      VDUKGVEPNVFUKNUCVGZGVHFZPZVLZXNWTFZXNEPZXBXNUBJZSVIZXTXQEEVMXSXRYATEVJXQX
      NXOENXPVKVNVOZAEBCXNDVPVQXQXSXTSYBVRVSVTWAXEXBLHIJZIJZXFXCXBXDYCIXGXCXBTX
      JXBWBWCHGKJZHIJZHHIJZXBKJZYCXDHOPZGOPZYIHSWDZVLZYFYHTWNWEYIYKWNWFWGZHGHWH
      WIYELHIWJWKYGGXBKHWNWFWLWKWMWOYJLOPLSWDVLYLYDXFTWEWPYMGLHWQWIWRWS $.

    $( Lemma for ~ rpnnen2 .  (Contributed by Mario Carneiro, 13-May-2013.)
       (Revised by Mario Carneiro, 31-Aug-2014.) $)
    rpnnen2lem4 $p |- ( ( A C_ B /\ B C_ NN /\ k e. NN ) ->
      ( 0 <_ ( ( F ` A ) ` k ) /\ ( ( F ` A ) ` k ) <_ ( ( F ` B ) ` k ) ) ) $=
      ( wss cn wcel cc0 cfv cle wbr c1 c3 co cif cr sylancl w3a cdiv cexp nnnn0
      cv cn0 0re 1re 3nn nndivre mp2an 3re 3pos recgt0ii ltleii expge0 3ad2ant3
      mp3an1 0le0 breq2 ifboth wceq sstr rpnnen2lem1 stoic3 breqtrrd wi reexpcl
      sylancr 0red simp1 sseld ifle syl31anc 3adant1 3brtr4d jca ) BCHZCIHZDUEZ
      IJZUAZKVTBFLLZMNWCVTCFLLZMNWBKVTBJZOPUBQZVTUCQZKRZWCMWBKWGMNZKKMNZKWHMNZW
      AVRWIVSWAVTUFJZKWFMNZWIVTUDZKWFUGOSJPIJWFSJZUHUIOPUJUKZPULUMUNUOWOWLWMWIW
      PWFVTUPURTUQZUSWEWIWJWKWGKWGWHKMUTKWHKMUTVATVRVSBIHWAWCWHVBBCIVCABEFVTGVD
      VEZVFWBWHVTCJZWGKRZWCWDMWBWGSJZKSJWIWEWSVGWHWTMNWAVRXAVSWAWOWLXAWPWNWFVTV
      HVIUQWBVJWQWBBCVTVRVSWAVKVLWEWSWGKVMVNWRVSWAWDWTVBVRACEFVTGVDVOVPVQ $.

    $( Lemma for ~ rpnnen2 .  (Contributed by Mario Carneiro, 13-May-2013.)
       (Revised by Mario Carneiro, 30-Apr-2014.) $)
    rpnnen2lem5 $p |- ( ( A C_ NN /\ M e. NN ) ->
                        seq M ( + , ( F ` A ) ) e. dom ~~> ) $=
      ( vk cn wss wcel wa caddc cfv c1 cseq cli nnuz cr rpnnen2lem2 wbr cdm 1nn
      a1i cv wf ssid mp1i ffvelrnda c2 cdiv co rpnnen2lem3 seqex breldm cuz cc0
      ovex elnnuz rpnnen2lem4 mp3an2 sylan2br simpld simprd cvgcmp adantr simpr
      cle adantlr recnd iserex mpbid ) BHIZEHJZKZLBDMZNOPUAZJZLVOEOVPJVLVQVMVLG
      HDMZVONNHQNHJVLUBUCVLHRGUDZVRHHIZHRVRUEVLHUFZAHCDFSUGUHVLHRVSVOABCDFSUHZL
      VRNOZNUIUJUKZPTWCVPJVLACDFULWCWDPLVRNUMNUIUJUQUNUGVLVSNUOMJZKZUPVSVOMZVGT
      ZWGVSVRMVGTZWEVLVSHJZWHWIKZVSURVLVTWJWKWAABHGCDFUSUTVAZVBWFWHWIWLVCVDVEVN
      GVONEHQVLVMVFVNWJKWGVLWJWGRJVMWBVHVIVJVK $.

    $( Lemma for ~ rpnnen2 .  (Contributed by Mario Carneiro, 13-May-2013.)
       (Revised by Mario Carneiro, 30-Apr-2014.) $)
    rpnnen2lem6 $p |- ( ( A C_ NN /\ M e. NN ) ->
        sum_ k e. ( ZZ>= ` M ) ( ( F ` A ) ` k ) e. RR ) $=
      ( cn wss wcel wa cv cfv cuz eqid cz nnz adantl eqidd cr wf eluznn adantll
      rpnnen2lem2 ad2antrr ffvelrnd rpnnen2lem5 isumrecl ) BHIZFHJZKZCLZBEMZMZC
      UMFFNMZUOOUJFPJUIFQRUKULUOJZKZUNSUQHTULUMUIHTUMUAUJUPABDEGUDUEUJUPULHJUIU
      LFUBUCUFABDEFGUGUH $.

    $( Lemma for ~ rpnnen2 .  (Contributed by Mario Carneiro, 13-May-2013.)
       (Revised by Mario Carneiro, 30-Apr-2014.) $)
    rpnnen2lem7 $p |- ( ( A C_ B /\ B C_ NN /\ M e. NN ) ->
        sum_ k e. ( ZZ>= ` M ) ( ( F ` A ) ` k ) <_
        sum_ k e. ( ZZ>= ` M ) ( ( F ` B ) ` k ) ) $=
      ( wss cn wcel w3a cfv eqidd cr wf rpnnen2lem2 ffvelrnda syldan cle cv cuz
      eqid simp3 nnzd wa eluznn sylan sstr 3adant3 syl 3ad2ant2 wbr rpnnen2lem4
      cc0 simprd 3expa 3adantl3 caddc cli cdm rpnnen2lem5 stoic3 3adant1 isumle
      cseq ) BCIZCJIZGJKZLZDUAZBFMZMZVKCFMZMZDVLVNGGUBMZVPUCVJGVGVHVIUDZUEVJVKV
      PKZUFZVMNVJVRVKJKZVMOKVJVIVRVTVQVKGUGUHZVJJOVKVLVJBJIZJOVLPVGVHWBVIBCJUIZ
      UJABEFHQUKRSVSVONVJVRVTVOOKWAVJJOVKVNVHVGJOVNPVIACEFHQULRSVJVRVTVMVOTUMZW
      AVGVHVTWDVIVGVHVTWDVGVHVTLUOVMTUMWDABCDEFHUNUPUQURSVGVHWBVIUSVLGVFUTVAZKW
      CABEFGHVBVCVHVIUSVNGVFWEKVGACEFGHVBVDVE $.

    $( Lemma for ~ rpnnen2 .  (Contributed by Mario Carneiro, 13-May-2013.)
       (Revised by Mario Carneiro, 30-Apr-2014.) $)
    rpnnen2lem8 $p |- ( ( A C_ NN /\ M e. NN ) ->
       sum_ k e. NN ( ( F ` A ) ` k ) =
         ( sum_ k e. ( 1 ... ( M - 1 ) ) ( ( F ` A ) ` k ) +
           sum_ k e. ( ZZ>= ` M ) ( ( F ` A ) ` k ) ) ) $=
      ( cn wss wcel wa cv cfv c1 cuz nnuz eqid simpr cr adantr rpnnen2lem2 cseq
      eqidd wf ffvelrnda recnd caddc cli cdm 1nn rpnnen2lem5 mpan2 isumsplit )
      BHIZFHJZKZCLZBEMZMZCURNFFOMZHPUTQUNUORUPUQHJKZUSUCVAUSUPHSUQURUNHSURUDUOA
      BDEGUATUEUFUNUGURNUBUHUIJZUOUNNHJVBUJABDENGUKULTUM $.

    $( Lemma for ~ rpnnen2 .  (Contributed by Mario Carneiro, 13-May-2013.)
       (Revised by Mario Carneiro, 30-Apr-2014.) $)
    rpnnen2lem9 $p |- ( M e. NN ->
       sum_ k e. ( ZZ>= ` M ) ( ( F ` ( NN \ { M } ) ) ` k ) =
         ( 0 + ( ( ( 1 / 3 ) ^ ( M + 1 ) ) / ( 1 - ( 1 / 3 ) ) ) ) ) $=
      ( cn wcel cfv c1 caddc co cc0 c3 cexp cr syl mpan clt wbr cuz cv csn cdif
      csu cdiv cmin nnz wa eqidd cc eluznn wss difss rpnnen2lem2 ax-mp ffvelrni
      eqid recnd cseq cli cdm rpnnen2lem5 isum1p cif wceq rpnnen2lem1 neldifsnd
      wf iffalsed eqtrd peano2nn nnzd sylan 1re 3nn nndivre mp2an recni a1i cle
      cabs 0re 3re 3pos recgt0ii ltleii absid 1lt3 wb recgt1 eqbrtri nnnn0d wne
      mpbi adantr eluzle adantl nnltp1le syldan mpbird eldifsn sylanbrc iftrued
      nnre gtned geolim2 isumclim oveq12d ) EGHZEUAIZBUBZGEUCZUDZDIZIZBUEEXOIZE
      JKLZUAIZXPBUEZKLMJNUFLZXROLJYAUGLUFLZKLXJXPBXOEXKXKUREUHXJXLXKHUIZXPUJYCX
      LGHZXPUKHZXLEULYDXPGPXLXOXNGUMZGPXOVIGXMUNZAXNCDFUOUPUQUSZQYFXJKXOEUTVAVB
      HYGAXNCDEFVCRVDXJXQMXTYBKXJXQEXNHZYAEOLZMVEZMYFXJXQYKVFYGAXNCDEFVGRXJYIYJ
      MXJEGVHVJVKXJXPYBBXOXRXSXSURXJXREVLZVMXJXLXSHZUIZXPUJYNYDYEXJXRGHYMYDYLXL
      XRULVNZYHQXJYABXOXRYAUKHXJYAJPHNGHYAPHZVOVPJNVQVRZVSVTYAWBIZJSTXJYRYAJSYP
      MYAWATYRYAVFYQMYAWCYQNWDWEWFWGYAWHVRJNSTZYAJSTZWINPHMNSTYSYTWJWDWENWKVRWO
      WLVTXJXRYLWMYNXPXLXNHZYAXLOLZMVEZUUBYNYDXPUUCVFZYOYFYDUUDYGAXNCDXLFVGRQYN
      UUAUUBMYNYDXLEWNUUAYOYNEXLXJEPHYMEXEWPYNEXLSTZXRXLWATZYMUUFXJXRXLWQWRXJYM
      YDUUEUUFWJYOEXLWSWTXAXFXLGEXBXCXDVKXGXHXIVK $.

    ${
      rpnnen2.2 $e |- ( ph -> A C_ NN ) $.
      rpnnen2.3 $e |- ( ph -> B C_ NN ) $.
      rpnnen2.4 $e |- ( ph -> m e. ( A \ B ) ) $.
      rpnnen2.5 $e |- ( ph ->
                        A. n e. NN ( n < m -> ( n e. A <-> n e. B ) ) ) $.
      rpnnen2.6 $e |- ( ps <-> sum_ k e. NN ( ( F ` A ) ` k ) =
                               sum_ k e. NN ( ( F ` B ) ` k ) ) $.
      $( Lemma for ~ rpnnen2 .  (Contributed by Mario Carneiro, 13-May-2013.)
         (Revised by Mario Carneiro, 30-Apr-2014.) $)
      rpnnen2lem10 $p |- ( ( ph /\ ps ) ->
            sum_ k e. ( ZZ>= ` m ) ( ( F ` A ) ` k ) =
            sum_ k e. ( ZZ>= ` m ) ( ( F ` B ) ` k ) ) $=
        ( c1 co wceq cn wcel wa cmin cfz cfv csu cuz caddc simpr sylib wss cdif
        cv eldifi ssel2 sylan2 syl2anc rpnnen2lem8 c3 cdiv cexp cc0 cif clt wbr
        wb cz cle w3a 1z nnz elfzm11 sylancr biimpa sylan simp3d wi wral elfznn
        breq1 eleq1 bibi12d imbi12d rspccva syl2an rpnnen2lem1 3eqtr4d sumeq2dv
        mpd ifbid oveq1d eqtrd adantr 3eqtr3d rpnnen2lem6 fzfid rpnnen2lem2 syl
        cr wf ffvelrn fsumrecl readdcan syl3anc mpbid ) ABUAZPGULZPUBQZUCQZFULZ
        EIUDZUDZFUEZXFUFUDZXIDIUDUDZFUEZUGQZXLXMXKFUEZUGQZRZXOXQRZXESXNFUEZSXKF
        UEZXPXRXEBYAYBRABUHOUIAYAXPRBAYAXHXNFUEZXOUGQZXPADSUJZXFSTZYAYDRKAYEXFD
        EUKTZYFKMYGYEXFDTYFXFDEUMDSXFUNUOUPZCDFHIXFJUQUPAYCXLXOUGAXHXNXKFAXIXHT
        ZUAZXIDTZPURUSQXIUTQZVAVBZXIETZYLVAVBZXNXKYJYKYNYLVAYJXIXFVCVDZYKYNVEZY
        JXIVFTZPXIVGVDZYPAYFYIYRYSYPVHZYHYFYIYTYFPVFTXFVFTYIYTVEVIXFVJXIPXFVKVL
        VMVNVOAHULZXFVCVDZUUADTZUUAETZVEZVPZHSVQXISTZYPYQVPZYINXIXGVRZUUFUUHHXI
        SUUAXIRZUUBYPUUEYQUUAXIXFVCVSUUJUUCYKUUDYNUUAXIDVTUUAXIEVTWAWBWCWDWHWIA
        YEUUGXNYMRYIKUUICDHIXIJWEWDAESUJZUUGXKYORYILUUICEHIXIJWEWDWFWGWJWKWLAYB
        XRRZBAUUKYFUULLYHCEFHIXFJUQUPWLWMAXSXTVEZBAXOWRTZXQWRTZXLWRTUUMAYEYFUUN
        KYHCDFHIXFJWNUPAUUKYFUUOLYHCEFHIXFJWNUPAXHXKFAPXGWOASWRXJWSZUUGXKWRTYIA
        UUKUUPLCEHIJWPWQUUISWRXIXJWTWDXAXOXQXLXBXCWLXD $.

      $( Lemma for ~ rpnnen2 .  (Contributed by Mario Carneiro,
         13-May-2013.) $)
      rpnnen2lem11 $p |- ( ph -> -. ps ) $=
        ( cn wcel c3 cdiv co cv cuz cfv csu wne wn wss cdif eldifi ssel2 sylan2
        cr syl2anc rpnnen2lem6 c1 cexp cn0 nnrecre ax-mp nnnn0d reexpcl sylancr
        3nn c2 crp nnrp rpreccl mp2b nnzd rpexpcl rpred rehalfcld csn cle snssd
        cz wbr ssdifd sstrd ssconb mpbird difssd rpnnen2lem7 syl3anc caddc cmin
        wb cc0 wceq rpnnen2lem9 syl cmul cc recni expp1 3cn 3ne0 divrec mp3an23
        recnd eqtr4d oveq1d ax-1cn pm3.2i divsubdir mp3an 3m1e2 oveq1i 3eqtr3ri
        dividi oveq2i 2cnne0 divcan7 syl5eq eqtrd oveq2d addid2d 3eqtrd breqtrd
        wa clt rphalflt lelttrd cif eluznn rpnnen2lem1 syldan sumeq2dv wral cfn
        sylan wo uzid vex oveq2 eleq1d ralsn sylibr ssid a1i orcd sumsn 3eqtr2d
        sumss2 syl21anc eqbrtrrd ltletrd gtned rpnnen2lem10 ex necon3ad mpd ) A
        GUAZUBUCZFUAZDIUCUCFUDZUUNUUOEIUCUCFUDZUEBUFAUUQUUPAEPUGZUUMPQZUUQULQLA
        DPUGZUUMDEUHZQZUUSKMUVBUUTUUMDQZUUSUUMDEUIZDPUUMUJUKUMZCEFHIUUMJUNUMZAU
        UQUORSTZUUMUPTZUUPUVFAUVGULQZUUMUQQZUVHULQRPQZUVIVCRURUSZAUUMUVEUTZUVGU
        UMVAVBAUUTUUSUUPULQKUVECDFHIUUMJUNUMAUUQUVHVDSTZUVHUVFAUVHAUVHAUVGVEQZU
        UMVPQZUVHVEQZUVKRVEQUVOVCRVFRVGVHAUUMUVEVIZUVGUUMVJVBZVKZVLZUVTAUUQUUNU
        UOPUUMVMZUHZIUCUCFUDZUVNVNAEUWCUGZUWCPUGUUSUUQUWDVNVQAUWEUWBPEUHZUGZAUW
        BUVAUWFAUUMUVAMVOADPEKVRVSAUURUWBPUGZUWEUWGWGLAUUMPUVEVOZEUWBPVTUMWAAPU
        WBWBUVECEUWCFHIUUMJWCWDAUWDWHUVGUUMUOWETUPTZUOUVGWFTZSTZWETZWHUVNWETUVN
        AUUSUWDUWMWIUVECFHIUUMJWJWKAUWLUVNWHWEAUWLUVHRSTZUWKSTZUVNAUWJUWNUWKSAU
        WJUVHUVGWLTZUWNAUVGWMQUVJUWJUWPWIUVGUVLWNUVMUVGUUMWOVBAUVHWMQZUWNUWPWIZ
        AUVHUVTWTZUWQRWMQZRWHUEZUWRWPWQUVHRWRWSWKXAXBAUWOUWNVDRSTZSTZUVNUWKUXBU
        WNSRUOWFTZRSTZRRSTZUVGWFTZUXBUWKUWTUOWMQUWTUXAXTZUXEUXGWIWPXCUWTUXAWPWQ
        XDZRUORXEXFUXDVDRSXGXHUXFUOUVGWFRWPWQXJXHXIXKAUWQUXCUVNWIZUWSUWQVDWMQVD
        WHUEXTUXHUXJXLUXIUVHVDRXMWSWKXNXOXPAUVNAUVNUWAWTXQXRXSAUVQUVNUVHYAVQUVS
        UVHYBWKYCAUUNUUOUWBIUCUCZFUDZUVHUUPVNAUXLUUNUUOUWBQUVGUUOUPTZWHYDZFUDZU
        WBUXMFUDZUVHAUUNUXKUXNFAUUOUUNQZUUOPQZUXKUXNWIZAUUSUXQUXRUVEUUOUUMYEYKA
        UWHUXRUXSUWICUWBHIUUOJYFYKYGYHAUWBUUNUGUXMWMQZFUWBYIZUUNUUNUGZUUNYJQZYL
        UXPUXOWIAUUMUUNAUVPUUMUUNQUVRUUMYMWKVOAUWQUYAUWSUXTUWQFUUMGYNUUOUUMWIUX
        MUVHWMUUOUUMUVGUPYOZYPYQYRAUYBUYCUYBAUUNYSYTUUAUWBUUNUXMFUUMUUDUUEAUUSU
        WQUXPUVHWIUVEUWSUXMUVHFUUMPUYDUUBUMUUCAUWBDUGUUTUUSUXLUUPVNVQAUUMDAUVBU
        VCMUVDWKVOKUVECUWBDFHIUUMJWCWDUUFUUGUUHABUUPUUQABUUPUUQWIABCDEFGHIJKLMN
        OUUIUUJUUKUUL $.
    $}

    $( Lemma for ~ rpnnen2 .  (Contributed by Mario Carneiro, 13-May-2013.) $)
    rpnnen2lem12 $p |- ~P NN ~<_ ( 0 [,] 1 ) $=
      ( vk vm cc0 c1 wcel cn wbr cv cfv cr cle wss wa wceq wi wn vy vz cicc cvv
      co cpw cdom ovex csu elpwi cuz sumeq1i 1nn rpnnen2lem6 mpan2 syl5eqel syl
      nnuz 1zzd eqidd wf rpnnen2lem2 ffvelrnda cseq cli cdm rpnnen2lem5 sylancl
      caddc ssid rpnnen2lem4 mp3an2 simpld sylan isumge0 c2 cdiv halfre a1i 1re
      rpnnen2lem7 mp3an23 elnnuz ax-mp ffvelrni recnd sylbir adantl rpnnen2lem3
      eqid isumclim breqtrd syl5eqbr halflt1 ltleii letrd 0re elicc2i syl3anbrc
      cc wne clt wb wral cdif wrex wo c0 ssdifss unss biimpi syl2an eqss ssdif0
      cun anbi12i un00 3bitri necon3bii nnwo ex sselda wal df-ral eldif orbi12i
      con34b xor 3bitr4ri imbi2i bitri simpll simplr simprl simprr rpnnen2lem11
      elun nnre syld rexlimdvaa con1bii albii alral ltnle syl2anr imbi1d syl5bi
      ralbidva syl5ibr reximdva rexun syl6ib bicom ralbii sylibr eqcom necon4ad
      biid jaod fveq2 fveq1d sumeq2sdv impbid1 dom2 ) GHUCUEZUDIJUFZUVEUGKGHUCU
      HUAUBUVFUVEJELZUALZCMZMZEUIZJUVGUBLZCMZMZEUIZUDUVHUVFIZUVKNIZGUVKOKUVKHOK
      UVKUVEIUVPUVHJPZUVQUVHJUJZUVRUVKHUKMZUVJEUIZNJUVTUVJEURULZUVRHJIZUWANIUMA
      UVHEBCHDUNUOUPUQZUVPUVJEUVIHJURUVPUSZUVPUVGJIZQUVJUTUVPJNUVGUVIUVPUVRJNUV
      IVAUVSAUVHBCDVBUQVCUVPUVRUWCVIUVIHVDVEVFIUVSUMAUVHBCHDVGVHUVPUVRUWFGUVJOK
      ZUVSUVRUWFQUWGUVJUVGJCMZMZOKZUVRJJPZUWFUWGUWJQJVJZAUVHJEBCDVKVLVMVNVOUVPU
      VKHVPVQUEZHUWDUWMNIUVPVRVSHNIUVPVTVSUVPUVKUWAUWMOUWBUVPUWAUVTUWIEUIZUWMOU
      VPUVRUWAUWNOKZUVSUVRUWKUWCUWOUWLUMAUVHJEBCHDWAWBUQUVPUWIUWMEUWHHUVTUVTWJU
      WEUVPUVGUVTIZQUWIUTUWPUWIWTIZUVPUWPUWFUWQUVGWCUWFUWIJNUVGUWHUWKJNUWHVAUWL
      AJBCDVBWDWEWFWGWHVIUWHHVDUWMVEKUVPABCDWIVSWKWLWMUWMHOKUVPUWMHVRVTWNWOVSWP
      GHUVKWQVTWRWSUVPUVLUVFIZQZUVKUVORZUVHUVLRZUWSUWTUVHUVLUWSUVHUVLXAZBLZFLZX
      BKZUXCUVHIZUXCUVLIZXCZSZBJXDZFUVHUVLXEZXFZUXJFUVLUVHXEZXFZXGZUWTTZUWSUXBU
      XJFUXKUXMXOZXFZUXOUWSUXBUXDUXCOKZBUXQXDZFUXQXFZUXRUWSUXBUYAUWSUXQJPZUXQXH
      XAZUYAUXBUVPUVRUVLJPZUYBUWRUVSUVLJUJZUVRUXKJPZUXMJPZUYBUYDUVHJUVLXIUVLJUV
      HXIUYFUYGQUYBUXKUXMJXJXKXLXLZUXBUYCUVHUVLUXQXHUXAUVHUVLPZUVLUVHPZQUXKXHRZ
      UXMXHRZQUXQXHRUVHUVLXMUYIUYKUYJUYLUVHUVLXNUVLUVHXNXPUXKUXMXQXRXSXKFBUXQXT
      XLYAUWSUXTUXJFUXQUWSUXDUXQIQUXDJIZUXTUXJSUWSUXQJUXDUYHYBUXTUXSTZUXHSZBYCZ
      UYMUXJUXTUXCUXQIZUXSSZBYCUYPUXSBUXQYDUYRUYOBUYRUYNUYQTZSUYOUYQUXSYGUYSUXH
      UYNUXHUYQUXCUXKIZUXCUXMIZXGUXFUXGTQZUXGUXFTQZXGUYQUXHTUYTVUBVUAVUCUXCUVHU
      VLYEUXCUVLUVHYEYFUXCUXKUXMYQUXFUXGYHYIUUAYJYKUUBYKUYPUXJUYMUYOBJXDUYOBJUU
      CUYMUXIUYOBJUYMUXCJIZQUXEUYNUXHVUDUXCNIUXDNIUXEUYNXCUYMUXCYRUXDYRUXCUXDUU
      DUUEUUFUUHUUIUUGUQUUJYSUXJFUXKUXMUUKUULUVPUVRUYDUXOUXPSUWRUVSUYEUVRUYDQZU
      XLUXPUXNVUEUXJUXPFUXKVUEUXDUXKIZUXJQZQUWTAUVHUVLEFBCDUVRUYDVUGYLUVRUYDVUG
      YMVUEVUFUXJYNVUEVUFUXJYOUWTUURYPYTVUEUXJUXPFUXMVUEUXDUXMIZUXJQZQZUWTAUVLU
      VHEFBCDUVRUYDVUIYMUVRUYDVUIYLVUEVUHUXJYNVUJUXJUXEUXGUXFXCZSZBJXDVUEVUHUXJ
      YOVULUXIBJVUKUXHUXEUXGUXFUUMYJUUNUUOUVKUVOUUPYPYTUUSXLYSUUQUXAJUVJUVNEUXA
      UVGUVIUVMUVHUVLCUUTUVAUVBUVCUVDWD $.
  $}

  ${
    $d n x $.
    $( The other half of ~ rpnnen , where we show an injection from sets of
       positive integers to real numbers.  The obvious choice for this is
       binary expansion, but it has the unfortunate property that it does not
       produce an injection on numbers which end with all 0's or all 1's (the
       more well-known decimal version of this is ~ 0.999... ).  Instead, we
       opt for a ternary expansion, which produces (a scaled version of) the
       Cantor set.  Since the Cantor set is riddled with gaps, we can show that
       any two sequences that are not equal must differ somewhere, and when
       they do, they are placed a finite distance apart, thus ensuring that the
       map is injective.

       Our map assigns to each subset ` A ` of the positive integers the number
       ` sum_ k e. A ( 3 ^ -u k ) = sum_ k e. NN ( ( F `` A ) `` k ) ` , where
       ` ( ( F `` A ) `` k ) = if ( k e. A , ( 3 ^ -u k ) , 0 ) ) `
       ( ~ rpnnen2lem1 ).  This is an infinite sum of real numbers
       ( ~ rpnnen2lem2 ), and since ` A C_ B ` implies
       ` ( F `` A ) <_ ( F `` B ) ` ( ~ rpnnen2lem4 ) and ` ( F `` NN ) `
       converges to ` 1 / 2 ` ( ~ rpnnen2lem3 ) by ~ geoisum1 , the sum is
       convergent to some real ( ~ rpnnen2lem5 and ~ rpnnen2lem6 ) by the
       comparison test for convergence ~ cvgcmp .  The comparison test also
       tells us that ` A C_ B ` implies ` sum_ ( F `` A ) <_ sum_ ( F `` B ) `
       ( ~ rpnnen2lem7 ).

       Putting it all together, if we have two sets ` x =/= y ` , there must
       differ somewhere, and so there must be an ` m ` such that
       ` A. n < m ( n e. x <-> n e. y ) ` but ` m e. ( x \ y ) ` or vice versa.
       In this case, we split off the first ` m - 1 ` terms ( ~ rpnnen2lem8 )
       and cancel them ( ~ rpnnen2lem10 ), since these are the same for both
       sets.  For the remaining terms, we use the subset property to establish
       that ` sum_ ( F `` y ) <_ sum_ ( F `` ( NN \ { m } ) ) ` and
       ` sum_ ( F `` { m } ) <_ sum_ ( F `` x ) ` (where these sums are only
       over ` ( ZZ>= `` m ) ` ), and since
       ` sum_ ( F `` ( NN \ { m } ) ) = ( 3 ^ -u m ) / 2 ` ( ~ rpnnen2lem9 )
       and ` sum_ ( F `` { m } ) = ( 3 ^ -u m ) ` , we establish that
       ` sum_ ( F `` y ) < sum_ ( F `` x ) ` ( ~ rpnnen2lem11 ) so that they
       must be different.  By contraposition ( ~ rpnnen2lem12 ), we find that
       this map is an injection.  (Contributed by Mario Carneiro, 13-May-2013.)
       (Proof shortened by Mario Carneiro, 30-Apr-2014.)  (Revised by NM,
       17-Aug-2021.) $)
    rpnnen2 $p |- ~P NN ~<_ ( 0 [,] 1 ) $=
      ( vx vn cn cpw wel c1 c3 cdiv co cv cexp cc0 cif cmpt eqid rpnnen2lem12 )
      ABACDBCBAEFGHIBJKILMNNZQOP $.
  $}

  $( The cardinality of the continuum is the same as the powerset of ` _om ` .
     This is a stronger statement than ~ ruc , which only asserts that ` RR `
     is uncountable, i.e. has a cardinality larger than ` _om ` .  The main
     proof is in two parts, ~ rpnnen1 and ~ rpnnen2 , each showing an injection
     in one direction, and this last part uses ~ sbth to prove that the sets
     are equinumerous.  By constructing explicit injections, we avoid the use
     of AC. (Contributed by Mario Carneiro, 13-May-2013.)  (Revised by Mario
     Carneiro, 23-Aug-2014.) $)
  rpnnen $p |- RR ~~ ~P NN $=
    ( cr cn cdom wbr cen cq cmap co nnex c2o csdm mp2an enref mapen domentr com
    wcel cvv 2onn domtr cpw rpnnen1 qnnen canth2 ensdomtr sdomdom mapdom1 pw2en
    qex mp2b cxp mapxpen mp3an elexi xpnnen entr4i cc0 c1 cicc rpnnen2 wss reex
    entri unitssre ssdomg mp2 sbth ) ABUAZCDZVHACDZAVHEDAFBGHZCDVKVHCDZVIIUIUBV
    KJBGHZBGHZCDZVNVHEDVLVKVHBGHZCDZVPVNEDZVOFVHKDZFVHCDVQFBEDBVHKDVSUCBIUDFBVH
    UELFVHUFFVHBUGUJVHVMEDBBEDVRBIUHZBIMVHVMBBNLVKVPVNOLVNVMVHVNJBBUKZGHZVMJPQB
    RQZWCVNWBEDSIIJBBPRRULUMJJEDWABEDWBVMEDJJPSUNMUOJJWABNLVCVTUPVKVNVHOLAVKVHT
    LVHUQURUSHZCDWDACDZVJUTARQWDAVAWEVBVDWDARVEVFVHWDATLAVHVGL $.

  $( The real numbers are equinumerous to their own Cartesian product, even
     though it is not necessarily true that ` RR ` is well-orderable (so we
     cannot use ~ infxpidm2 directly).  (Contributed by NM, 30-Jul-2004.)
     (Revised by Mario Carneiro, 16-Jun-2013.) $)
  rexpen $p |- ( RR X. RR ) ~~ RR $=
    ( cr cxp c2o com cmap co cen wbr ax-mp entri omex mp2an cdom 2onn csdm wcel
    cn cfn domentr cvv cpw rpnnen nnenom pwen pw2en xpen elexi xpmapen wss ssid
    ensymi ssnnfi xpfi isfinite mpbi canth2 sdomdom mapdom1 mapxpen mp3an enref
    sdomtr xpomen mapen endomtr c0 csn ovex 0ex xpsnen snfi xpdom2 sbth entr4i
    ) AABZCDEFZAVOVPVPBZVPAVPGHZVRVOVQGHADUAZVPAQUAZVSUBQDGHVTVSGHUCQDUDIJDKUEZ
    JZWBAVPAVPUFLVQVPMHZVPVQMHZVQVPGHVQCCBZDEFZGHWFVPMHZWCWFVQCCDCDNUGZWHKUHUKW
    FVPDEFZMHZWIVPGHWGWEVPMHZWJWEVSMHZVSVPGHZWKWEVSOHZWLWEDOHZDVSOHZWNWERPZWOCR
    PZWRWQCDPZCCUIWRNCUJCCULLZWTCCUMLWEUNUODKUPZWEDVSVBLWEVSUQIWAWEVSVPSLWEVPDU
    RIWICDDBZEFZVPWSDTPZXDWIXCGHNKKCDDDTTUSUTCCGHXBDGHXCVPGHCWHVAVCCCXBDVDLJWFW
    IVPSLVQWFVPVELVPVPVFVGZBZGHXFVQMHZWDXFVPVPVFCDEVHZVIVJUKXEVPMHZXGXEVSMHZWMX
    IXEVSOHZXJXEDOHZWPXKXERPXLVFVKXEUNUOXAXEDVSVBLXEVSUQIWAXEVSVPSLXEVPVPXHVLIV
    PXFVQVELVQVPVMLJWBVN $.

  ${
    $d v w x y z $.
    $( The complex numbers are equinumerous to the powerset of the positive
       integers.  (Contributed by Mario Carneiro, 16-Jun-2013.) $)
    cpnnen $p |- CC ~~ ~P NN $=
      ( vv vw vz vx vy cr cc cn cv wcel wa ci cmul caddc wceq coprab eleq1 reex
      co entr3i cpw cxp rexpen wf1o cen wbr cmpt2 bi2anan9 oveq12 sylan2 eqeq2d
      oveq2 anbi12d cbvoprab12v df-mpt2 eqtr4i cnref1o xpex f1oen ax-mp rpnnen
      ) FGHUAFFUBZFGUCVBGAIZFJZBIZFJZKZCIZVCLVEMSZNSZOZKZABCPZUDVBGUEUFDEVMVMDI
      ZFJZEIZFJZKZVHVNLVPMSZNSZOZKZDECPDEFFVTUGVLWBABCDEVCVNOZVEVPOZKZVGVRVKWAW
      CVDVOWDVFVQVCVNFQVEVPFQUHWEVJVTVHWDWCVIVSOVJVTOVEVPLMULVCVNVIVSNUIUJUKUMU
      NDECFFVTUOUPUQVBGVMFFRRURUSUTTVAT $.
  $}

  $( Alternate proof of ~ ruc .  This proof is a simple corollary of ~ rpnnen ,
     which determines the exact cardinality of the reals.  For an alternate
     proof discussed at ~ mmcomplex.html#uncountable , see ~ ruc .
     (Contributed by NM, 13-Oct-2004.)  (Revised by Mario Carneiro,
     13-May-2013.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  rucALT $p |- NN ~< RR $=
    ( cn cpw csdm wbr cr cen nnex canth2 rpnnen ensymi sdomentr mp2an ) AABZCDM
    EFDAECDAGHEMIJAMEKL $.

  ${
    $d m w x y $.  $d m x y A $.  $d m x y B $.  $d w z C $.  $d m n x y z F $.
    $d k m n x y z G $.  $d k m n x y M $.  $d k m x y N $.  $d k n w z ph $.
    $d w z D $.  $d n z S $.
    ruc.1 $e |- ( ph -> F : NN --> RR ) $.
    ruc.2 $e |- ( ph -> D = ( x e. ( RR X. RR ) , y e. RR |->
                    [_ ( ( ( 1st ` x ) + ( 2nd ` x ) ) / 2 ) / m ]_
                    if ( m < y , <. ( 1st ` x ) , m >. ,
                       <. ( ( m + ( 2nd ` x ) ) / 2 ) , ( 2nd ` x ) >. ) ) ) $.
    ${
      ruclem1.3 $e |- ( ph -> A e. RR ) $.
      ruclem1.4 $e |- ( ph -> B e. RR ) $.
      ruclem1.5 $e |- ( ph -> M e. RR ) $.
      ruclem1.6 $e |- X = ( 1st ` ( <. A , B >. D M ) ) $.
      ruclem1.7 $e |- Y = ( 2nd ` ( <. A , B >. D M ) ) $.
      $( Lemma for ~ ruc (the reals are uncountable).  Substitutions for the
         function ` D ` .  (Contributed by Mario Carneiro, 28-May-2014.)
         (Revised by Fan Zheng, 6-Jun-2016.) $)
      ruclem1 $p |- ( ph -> ( ( <. A , B >. D M ) e. ( RR X. RR ) /\
        X = if ( ( ( A + B ) / 2 ) < M , A ,
             ( ( ( ( A + B ) / 2 ) + B ) / 2 ) ) /\
        Y = if ( ( ( A + B ) / 2 ) < M , ( ( A + B ) / 2 ) , B ) ) ) $=
        ( co cr cop cxp wcel caddc c2 cdiv clt wbr cif wceq c1st cfv c2nd cmpt2
        cv csb oveqd opelxpi syl2anc wa simpr breq2d simpl fveq2d opeq1d oveq2d
        oveq1d opeq12d ifbieq12d csbeq2dv oveq12d csbeq1d eqtrd eqid opex csbex
        ifex ovmpt2a op1stg op2ndg ovex breq1 opeq2 oveq1 csbie syl5eq readdcld
        ifeq12d rehalfcld ifcld eqeltrd fvif cvv sylancl sylancr 3jca ) ADEUAZI
        FSZTTUBZUCJDEUDSZUEUFSZIUGUHZDXAEUDSZUEUFSZUIZUJKXBXAEUIZUJAWRXBDXAUAZX
        DEUAZUIZWSAWRGWQUKULZWQUMULZUDSZUEUFSZGUOZIUGUHZXJXNUAZXNXKUDSZUEUFSZXK
        UAZUIZUPZXIAWRWQIBCWSTGBUOZUKULZYBUMULZUDSZUEUFSZXNCUOZUGUHZYCXNUAZXNYD
        UDSZUEUFSZYDUAZUIZUPZUNZSZYAAFYOWQIMUQAWQWSUCZITUCYPYAUJADTUCZETUCZYQNO
        DETTURUSPBCWQIWSTYNYAYOYBWQUJZYGIUJZUTZYNGYFXTUPYAUUBGYFYMXTUUBYHXOYIYL
        XPXSUUBYGIXNUGYTUUAVAVBUUBYCXJXNUUBYBWQUKYTUUAVCZVDZVEUUBYKXRYDXKUUBYJX
        QUEUFUUBYDXKXNUDUUBYBWQUMUUCVDZVFVGUUEVHVIVJUUBGYFXMXTUUBYEXLUEUFUUBYCX
        JYDXKUDUUDUUEVKVGVLVMYOVNGXMXTXOXPXSXJXNVOXRXKVOVQVPVRUSVMAYAGXAXTUPZXI
        AGXMXAXTAXLWTUEUFAXJDXKEUDAYRYSXJDUJNODETTVSUSZAYRYSXKEUJNODETTVTUSZVKV
        GVLAUUFXBXJXAUAZXAXKUDSZUEUFSZXKUAZUIZXIGXAXTUUMWTUEUFWAZXNXAUJZXOXBXPX
        SUUIUULXNXAIUGWBXNXAXJWCUUOXRUUKXKUUOXQUUJUEUFXNXAXKUDWDVGVEVIWEAXBUUIX
        GUULXHAXJDXAUUGVEAUUKXDXKEAUUJXCUEUFAXKEXAUDUUHVFVGUUHVHWHWFVMVMZAXBXGX
        HWSAYRXATUCXGWSUCNAWTADENOWGWIZDXATTURUSAXDTUCYSXHWSUCAXCAXAEUUQOWGWIOX
        DETTURUSWJWKAJWRUKULZXEQAUURXIUKULZXEAWRXIUKUUPVDAUUSXBXGUKULZXHUKULZUI
        XEXBXGXHUKWLAXBUUTDUVAXDAYRXAWMUCZUUTDUJNUUNDXATWMVSWNAXDWMUCZYSUVAXDUJ
        XCUEUFWAZOXDEWMTVSWOWHWFVMWFAKWRUMULZXFRAUVEXIUMULZXFAWRXIUMUUPVDAUVFXB
        XGUMULZXHUMULZUIXFXBXGXHUMWLAXBUVGXAUVHEAYRUVBUVGXAUJNUUNDXATWMVTWNAUVC
        YSUVHEUJUVDOXDEWMTVTWOWHWFVMWFWP $.

      ruclem2.8 $e |- ( ph -> A < B ) $.
      $( Lemma for ~ ruc .  Ordering property for the input to ` D ` .
         (Contributed by Mario Carneiro, 28-May-2014.) $)
      ruclem2 $p |- ( ph -> ( A <_ X /\ X < Y /\ Y <_ B ) ) $=
        ( wbr cle clt caddc co c2 cdiv cif leidd readdcld rehalfcld wcel avglt1
        cr wb syl2anc mpbid avglt2 lttrd ltled breq2 ifboth cop cxp wceq simp2d
        ruclem1 breqtrrd iftrue breq12d syl5ibrcom iffalse pm2.61d simp3d breq1
        wn 3brtr4d eqbrtrd 3jca ) ADJUATJKUBTKEUATADDEUCUDZUEUFUDZIUBTZDVTEUCUD
        ZUEUFUDZUGZJUAADDUATZDWCUATZDWDUATZADNUHADWCNAWBAVTEAVSADENOUIUJZOUIUJZ
        ADVTWCNWHWIADEUBTZDVTUBTZSADUMUKZEUMUKZWJWKUNNODEULUOUPZAVTEUBTZVTWCUBT
        ZAWJWOSAWLWMWJWOUNNODEUQUOUPZAVTUMUKZWMWOWPUNWHOVTEULUOUPURUSWAWEWFWGDW
        CDWDDUAUTWCWDDUAUTVAUOADEVBIFUDUMUMVCUKZJWDVDZKWAVTEUGZVDZABCDEFGHIJKLM
        NOPQRVFZVEZVGAWDXAJKUBAWAWDXAUBTZAXEWAWKWNWAWDDXAVTUBWADWCVHWAVTEVHVIVJ
        AXEWAVOZWCEUBTZAWOXGWQAWRWMWOXGUNWHOVTEUQUOUPXFWDWCXAEUBWADWCVKWAVTEVKV
        IVJVLXDAWSWTXBXCVMZVPAKXAEUAXHAVTEUATZEEUATZXAEUATZAVTEWHOWQUSAEOUHWAXI
        XJXKVTEVTXAEUAVNEXAEUAVNVAUOVQVR $.

      $( Lemma for ~ ruc .  The constructed interval ` [ X , Y ] ` always
         excludes ` M ` .  (Contributed by Mario Carneiro, 28-May-2014.) $)
      ruclem3 $p |- ( ph -> ( M < X \/ Y < M ) ) $=
        ( clt wbr wn caddc co c2 cdiv cle readdcld rehalfcld lenltd wcel avglt2
        wa cr wb syl2anc mpbid avglt1 lelttr syl3anc mpan2d sylbird imp cif cop
        wi wceq ruclem1 simp2d iffalse sylan9eq breqtrrd ex con1d simp3d iftrue
        cxp simpr eqbrtrd syld orrd ) AIJTUAZKITUAZAWBUBDEUCUDZUEUFUDZITUAZWCAW
        FWBAWFUBZWBAWGUMIWEEUCUDZUEUFUDZJTAWGIWITUAZAWGIWEUGUAZWJAIWEPAWDADENOU
        HUIZUJAWKWEWITUAZWJAWEETUAZWMADETUAZWNSADUNUKEUNUKZWOWNUONODEULUPUQAWEU
        NUKZWPWNWMUOWLOWEEURUPUQAIUNUKWQWIUNUKWKWMUMWJVFPWLAWHAWEEWLOUHUIIWEWIU
        SUTVAVBVCAWGJWFDWIVDZWIADEVEIFUDUNUNVQUKZJWRVGZKWFWEEVDZVGZABCDEFGHIJKL
        MNOPQRVHZVIWFDWIVJVKVLVMVNAWFWCAWFUMKWEITAWFKXAWEAWSWTXBXCVOWFWEEVPVKAW
        FVRVSVMVTWA $.
    $}

    ruc.4 $e |- C = ( { <. 0 , <. 0 , 1 >. >. } u. F ) $.
    ruc.5 $e |- G = seq 0 ( D , C ) $.
    $( Lemma for ~ ruc .  Initial value of the interval sequence.  (Contributed
       by Mario Carneiro, 28-May-2014.) $)
    ruclem4 $p |- ( ph -> ( G ` 0 ) = <. 0 , 1 >. ) $=
      ( cc0 cfv c1 cop csn cn0 cres cn cseq fveq1i 0z cdif cun dfn2 reseq2i wfn
      cr wf wceq ffn fnresdm 3syl syl5reqr uneq2d syl5eq c0ex opex eqid fvsnun1
      fveq1d syl6eq seq1i ) AMHNMEDMUAZNMOPZMHVELUBAVFEDMUCAMDNMMVFPQZGRMQUDZSZ
      UEZNVFAMDVJADVGGUEVJKAGVIVGAVIGTSZGTVHGUFUGATUIGUJGTUHVKGUKITUIGULTGUMUNU
      OUPUQVBMVFRGVJURMOUSVJUTVAVCVDUQ $.

    $( Lemma for ~ ruc .  Domain and range of the interval sequence.
       (Contributed by Mario Carneiro, 28-May-2014.) $)
    ruclem6 $p |- ( ph -> G : NN0 --> ( RR X. RR ) ) $=
      ( cr cc0 cfv c1 cop wcel wceq co vz vw cn0 cxp cseq wf fveq1i cz 0z ax-mp
      seq1 eqtri ruclem4 syl5eqr 0re 1re opelxpi mp2an syl6eqel cv wa c1st c2nd
      1st2nd2 ad2antrl oveq1d caddc c2 cdiv clt wbr cn adantr cmpt2 xp1st xp2nd
      cif csb simprr eqid ruclem1 simp1d eqeltrd nn0uz 0p1e1 fveq2i nnuz eqtr4i
      0zd cuz eleq2i csn cun equncomi wne nnne0 necomd fvunsn syl syl5eq adantl
      ffvelrnda sylan2b seqf2 feq1i sylibr ) AUCMMUDZEDNUEZUFUCXGHUFAUAUBXGMEDN
      UCANDOZNPQZXGAXINHOZXJXKNXHOZXINHXHLUGNUHRXLXISUIEDNUKUJULABCDEFGHIJKLUMU
      NNMRPMRXJXGRUOUPNPMMUQURUSAUAUTZXGRZUBUTZMRZVAZVAZXMXOETXMVBOZXMVCOZQZXOE
      TZXGXRXMYAXOEXNXMYASAXPXMMMVDVEVFXRYBXGRYBVBOZXSXTVGTVHVITZXOVJVKZXSYDXTV
      GTVHVITVQSYBVCOZYEYDXTVQSXRBCXSXTEFGXOYCYFAVLMGUFXQIVMAEBCXGMFBUTZVBOZYGV
      COZVGTVHVITFUTZCUTVJVKYHYJQYJYIVGTVHVITYIQVQVRVNSXQJVMXNXSMRAXPXMMMVOVEXN
      XTMRAXPXMMMVPVEAXNXPVSYCVTYFVTWAWBWCWDAWIXMNPVGTZWJOZRAXMVLRZXMDOZMRYLVLX
      MYLPWJOVLYKPWJWEWFWGWHWKAYMVAYNXMGOZMYMYNYOSAYMYNXMGNXJQWLZWMZOZYOXMDYQDY
      PGKWNUGYMNXMWOYRYOSYMXMNXMWPWQGNXJXMWRWSWTXAAVLMXMGIXBWCXCXDUCXGHXHLXEXF
      $.

    $( Lemma for ~ ruc .  Successor value for the interval sequence.
       (Contributed by Mario Carneiro, 28-May-2014.) $)
    ruclem7 $p |- ( ( ph /\ N e. NN0 ) ->
      ( G ` ( N + 1 ) ) = ( ( G ` N ) D ( F ` ( N + 1 ) ) ) ) $=
      ( cn0 wcel c1 co cfv cc0 fveq1i caddc cseq cuz simpr nn0uz syl6eleq seqp1
      wceq syl oveq1i 3eqtr4g wne nn0p1nn adantl nnne0d necomd cop csn equncomi
      wa cn cun fvunsn syl5eq oveq2d eqtrd ) AINOZUTZIPUAQZHRZIHRZVIDRZEQZVKVIG
      RZEQVHVIEDSUBZRZIVORZVLEQZVJVMVHISUCRZOVPVRUHVHINVSAVGUDUEUFEDSIUGUIVIHVO
      MTVKVQVLEIHVOMTUJUKVHVLVNVKEVHSVIULZVLVNUHVHVISVHVIVGVIVAOAIUMUNUOUPVTVLV
      IGSSPUQZUQURZVBZRVNVIDWCDWBGLUSTGSWAVIVCVDUIVEVF $.

    $( Lemma for ~ ruc .  The intervals of the ` G ` sequence are all nonempty.
       (Contributed by Mario Carneiro, 28-May-2014.) $)
    ruclem8 $p |- ( ( ph /\ N e. NN0 ) ->
                    ( 1st ` ( G ` N ) ) < ( 2nd ` ( G ` N ) ) ) $=
      ( cfv c1st c2nd clt wbr fveq2d cr vk vn cn0 wcel cv wi cc0 c1 caddc fveq2
      co wceq breq12d imbi2d 0lt1 a1i cop ruclem4 c0ex 1ex op1st syl6eq 3brtr4d
      op2nd wa cle cn wf adantr cxp c2 cdiv cif cmpt2 ruclem6 ffvelrnda adantrr
      csb xp1st xp2nd nn0p1nn ffvelrn syl2an eqid simprr ruclem2 simp2d ruclem7
      syl 1st2nd2 oveq1d eqtrd expr expcom a2d nn0ind impcom ) IUCUDAIHNZONZWRP
      NZQRZAUAUEZHNZONZXCPNZQRZUFAUGHNZONZXGPNZQRZUFAUBUEZHNZONZXLPNZQRZUFAXKUH
      UIUKZHNZONZXQPNZQRZUFAXAUFUAUBIXBUGULZXFXJAYAXDXHXEXIQYAXCXGOXBUGHUJZSYAX
      CXGPYBSUMUNXBXKULZXFXOAYCXDXMXEXNQYCXCXLOXBXKHUJZSYCXCXLPYDSUMUNXBXPULZXF
      XTAYEXDXRXEXSQYEXCXQOXBXPHUJZSYEXCXQPYFSUMUNXBIULZXFXAAYGXDWSXEWTQYGXCWRO
      XBIHUJZSYGXCWRPYHSUMUNAUGUHXHXIQUGUHQRAUOUPAXHUGUHUQZONUGAXGYIOABCDEFGHJK
      LMURZSUGUHUSUTVAVBAXIYIPNUHAXGYIPYJSUGUHUSUTVDVBVCXKUCUDZAXOXTAYKXOXTUFAY
      KXOXTAYKXOVEZVEZXMXNUQZXPGNZEUKZONZYPPNZXRXSQYMXMYQVFRYQYRQRYRXNVFRYMBCXM
      XNEFGYOYQYRAVGTGVHZYLJVIAEBCTTVJZTFBUEZONZUUAPNZUIUKVKVLUKFUEZCUEQRUUBUUD
      UQUUDUUCUIUKVKVLUKUUCUQVMVRVNULYLKVIYMXLYTUDZXMTUDAYKUUEXOAUCYTXKHABCDEFG
      HJKLMVOVPVQZXLTTVSWIYMUUEXNTUDUUFXLTTVTWIAYKYOTUDZXOAYSXPVGUDUUGYKJXKWAVG
      TXPGWBWCVQYQWDYRWDAYKXOWEWFWGYMXQYPOYMXQXLYOEUKZYPAYKXQUUHULXOABCDEFGHXKJ
      KLMWHVQYMXLYNYOEYMUUEXLYNULUUFXLTTWJWIWKWLZSYMXQYPPUUISVCWMWNWOWPWQ $.

    ${
      ruclem9.6 $e |- ( ph -> M e. NN0 ) $.
      ruclem9.7 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
      $( Lemma for ~ ruc .  The first components of the ` G ` sequence are
         increasing, and the second components are decreasing.  (Contributed by
         Mario Carneiro, 28-May-2014.) $)
      ruclem9 $p |- ( ph -> ( ( 1st ` ( G ` M ) ) <_ ( 1st ` ( G ` N ) ) /\
                              ( 2nd ` ( G ` N ) ) <_ ( 2nd ` ( G ` M ) ) ) ) $=
        ( cfv cle wbr cr vk vn cuz wcel c1st c2nd wa cv wi c1 caddc wceq fveq2d
        co fveq2 breq2d breq1d anbi12d imbi2d cz cxp cn0 ruclem6 ffvelrnd xp1st
        syl leidd xp2nd jca a1i cop clt cn wf adantr cdiv cif csb cmpt2 eluznn0
        sylan nn0p1nn eqid ruclem8 syldan ruclem2 simp1d ruclem7 1st2nd2 oveq1d
        c2 eqtrd breqtrrd peano2nn0 syl3anc mpan2d simp3d eqbrtrd mpand anim12d
        letr expcom a2d uzind4 mpcom ) JIUCQZUDAIHQZUEQZJHQZUEQZRSZXIUFQZXGUFQZ
        RSZUGZPAXHUAUHZHQZUEQZRSZXQUFQZXMRSZUGZUIAXHXHRSZXMXMRSZUGZUIZAXHUBUHZH
        QZUEQZRSZYHUFQZXMRSZUGZUIAXHYGUJUKUNZHQZUEQZRSZYOUFQZXMRSZUGZUIAXOUIUAU
        BIJXPIULZYBYEAUUAXSYCYAYDUUAXRXHXHRUUAXQXGUEXPIHUOZUMUPUUAXTXMXMRUUAXQX
        GUFUUBUMUQURUSXPYGULZYBYMAUUCXSYJYAYLUUCXRYIXHRUUCXQYHUEXPYGHUOZUMUPUUC
        XTYKXMRUUCXQYHUFUUDUMUQURUSXPYNULZYBYTAUUEXSYQYAYSUUEXRYPXHRUUEXQYOUEXP
        YNHUOZUMUPUUEXTYRXMRUUEXQYOUFUUFUMUQURUSXPJULZYBXOAUUGXSXKYAXNUUGXRXJXH
        RUUGXQXIUEXPJHUOZUMUPUUGXTXLXMRUUGXQXIUFUUHUMUQURUSYFIUTUDAYCYDAXHAXGTT
        VAZUDZXHTUDZAVBUUIIHABCDEFGHKLMNVCZOVDZXGTTVEVFZVGAXMAUUJXMTUDZUUMXGTTV
        HVFZVGVIVJYGXFUDZAYMYTAUUQYMYTUIAUUQUGZYJYQYLYSUURYJYIYPRSZYQUURYIYIYKV
        KZYNGQZEUNZUEQZYPRUURYIUVCRSZUVCUVBUFQZVLSZUVEYKRSZUURBCYIYKEFGUVAUVCUV
        EAVMTGVNUUQKVOZAEBCUUITFBUHZUEQZUVIUFQZUKUNWKVPUNFUHZCUHVLSUVJUVLVKUVLU
        VKUKUNWKVPUNUVKVKVQVRVSULUUQLVOUURYHUUIUDZYITUDZUURVBUUIYGHAVBUUIHVNUUQ
        UULVOZAIVBUDUUQYGVBUDZOYGIVTWAZVDZYHTTVEVFZUURUVMYKTUDZUVRYHTTVHVFZUURV
        MTYNGUVHUURUVPYNVMUDUVQYGWBVFVDUVCWCUVEWCAUUQUVPYIYKVLSUVQABCDEFGHYGKLM
        NWDWEWFZWGUURYOUVBUEUURYOYHUVAEUNZUVBAUUQUVPYOUWCULUVQABCDEFGHYGKLMNWHW
        EUURYHUUTUVAEUURUVMYHUUTULUVRYHTTWIVFWJWLZUMWMUURUUKUVNYPTUDZYJUUSUGYQU
        IAUUKUUQUUNVOUVSUURYOUUIUDZUWEUURVBUUIYNHUVOUURUVPYNVBUDUVQYGWNVFVDZYOT
        TVEVFXHYIYPXAWOWPUURYRYKRSZYLYSUURYRUVEYKRUURYOUVBUFUWDUMUURUVDUVFUVGUW
        BWQWRUURYRTUDZUVTUUOUWHYLUGYSUIUURUWFUWIUWGYOTTVHVFUWAAUUOUUQUUPVOYRYKX
        MXAWOWSWTXBXCXDXE $.
    $}

    ${
      ruclem10.6 $e |- ( ph -> M e. NN0 ) $.
      ruclem10.7 $e |- ( ph -> N e. NN0 ) $.
      $( Lemma for ~ ruc .  Every first component of the ` G ` sequence is less
         than every second component.  That is, the sequences form a chain a_1
         ` < ` a_2 ` < ` ... ` < ` b_2 ` < ` b_1, where a_i are the first
         components and b_i are the second components.  (Contributed by Mario
         Carneiro, 28-May-2014.) $)
      ruclem10 $p |- ( ph -> ( 1st ` ( G ` M ) ) < ( 2nd ` ( G ` N ) ) ) $=
        ( cfv wbr cr wcel c1st cle cif cxp cn0 ruclem6 ffvelrnd xp1st syl ifcld
        c2nd xp2nd cuz nn0red max1 syl2anc cz wb eluz mpbird ruclem9 simpld clt
        nn0zd ruclem8 mpdan max2 simprd ltletrd lelttrd ) AIHQZUAQZIJUBRZJIUCZH
        QZUAQZJHQZUKQZAVKSSUDZTVLSTAUEVSIHABCDEFGHKLMNUFZOUGVKSSUHUIAVOVSTZVPST
        AUEVSVNHVTAVMJIUEPOUJZUGZVOSSUHUIZAVQVSTVRSTAUEVSJHVTPUGVQSSULUIZAVLVPU
        BRVOUKQZVKUKQUBRABCDEFGHIVNKLMNOAVNIUMQTZIVNUBRZAISTZJSTZWHAIOUNZAJPUNZ
        IJUOUPAIUQTVNUQTZWGWHURAIOVDAVNWBVDZIVNUSUPUTVAVBAVPWFVRWDAWAWFSTWCVOSS
        ULUIWEAVNUETVPWFVCRWBABCDEFGHVNKLMNVEVFAVQUAQVPUBRWFVRUBRABCDEFGHJVNKLM
        NPAVNJUMQTZJVNUBRZAWIWJWPWKWLIJVGUPAJUQTWMWOWPURAJPVDWNJVNUSUPUTVAVHVIV
        J $.
    $}

    $( Lemma for ~ ruc .  Closure lemmas for supremum.  (Contributed by Mario
       Carneiro, 28-May-2014.) $)
    ruclem11 $p |- ( ph -> ( ran ( 1st o. G ) C_ RR /\ ran ( 1st o. G ) =/= (/)
                             /\ A. z e. ran ( 1st o. G ) z <_ 1 ) ) $=
      ( cr c0 c1 cn0 syl cc0 cfv vn c1st ccom crn wss wne cv cle wbr wf ruclem6
      wral cxp 1stcof frn cdm wceq wcel 0nn0 ne0i mp1i eqnetrd dm0rn0 necon3bii
      fdm sylib wa fvco3 sylan clt c2nd cn adantr caddc co c2 cop cif csb cmpt2
      cdiv simpr a1i ruclem10 ruclem4 fveq2d 1ex op2nd syl6eq breqtrd ffvelrnda
      c0ex wi xp1st 1re ltle sylancl mpd eqbrtrd ralrimiva wfn ffn breq1 mpbird
      wb ralrn 3jca ) AUBIUCZUDZNUEZXIOUFZDUGZPUHUIZDXIULZAQNXHUJZXJAQNNUMZIUJZ
      XOABCEFGHIJKLMUKZQNNIUNRZQNXHUORAXHUPZOUFXKAXTQOAXOXTQUQXSQNXHVERSQURZQOU
      FAUSQSUTVAVBXTOXIOXHVCVDVFAXNUAUGZXHTZPUHUIZUAQULZAYDUAQAYBQURZVGZYCYBITZ
      UBTZPUHAXQYFYCYIUQXRQXPYBUBIVHVIYGYIPVJUIZYIPUHUIZYGYISITZVKTZPVJYGBCEFGH
      IYBSAVLNHUJYFJVMAFBCXPNGBUGZUBTZYNVKTZVNVOVPWAVOGUGZCUGVJUIYOYQVQYQYPVNVO
      VPWAVOYPVQVRVSVTUQYFKVMLMAYFWBYAYGUSWCWDAYMPUQYFAYMSPVQZVKTPAYLYRVKABCEFG
      HIJKLMWEWFSPWLWGWHWIVMWJYGYINURZPNURYJYKWMYGYHXPURYSAQXPYBIXRWKYHNNWNRWOY
      IPWPWQWRWSWTAXHQXAZXNYEXEAXOYTXSQNXHXBRXMYDDUAQXHXLYCPUHXCXFRXDXG $.

    ruc.6 $e |- S = sup ( ran ( 1st o. G ) , RR , < ) $.
    $( Lemma for ~ ruc .  The supremum of the increasing sequence ` 1st o. G `
       is a real number that is not in the range of ` F ` .  (Contributed by
       Mario Carneiro, 28-May-2014.) $)
    ruclem12 $p |- ( ph -> S e. ( RR \ ran F ) ) $=
      ( vz cr wbr wcel cfv cn0 vn vk crn c1st ccom clt csup wss c0 wne cle wral
      cv wrex c1 ruclem11 simp1d simp2d 1re simp3d breq2 ralbidv rspcev sylancr
      wceq suprcl syl3anc syl5eqel cn wa wo c2nd cmin co cop wf adantr caddc c2
      cxp cdiv cif csb cmpt2 ruclem6 nnm1nn0 ffvelrn syl2an xp1st syl ffvelrnda
      xp2nd eqid ruclem8 sylan2 ruclem3 ruclem7 nncn adantl ax-1cn npcan fveq2d
      cc sylancl 1st2nd2 oveq12d 3eqtr3d breq2d breq1d orbi12d mpbird nnnn0 wfn
      fvco3 1stcof ffn 3syl fnfvelrn syl2anc eqeltrrd suprub syl31anc syl6breqr
      wi ltletr mpan2d sylan simpr ruclem10 ltled eqbrtrd ralrimiva breq1 ralrn
      wb suprleub syl5eqbr lelttr mpand orim12d mpd lttri2d neneqd nrexdv eqeq1
      risset rexrn syl5bb mtbird eldifd ) AFPHUCZAFUDIUEZUCZPUFUGZPNAUUMPUHZUUM
      UIUJZOUMZUAUMZUKQZOUUMULZUAPUNZUUNPRAUUOUUPUUQUOUKQZOUUMULZABCODEGHIJKLMU
      PZUQZAUUOUUPUVCUVDURZAUOPRUVCUVAUSAUUOUUPUVCUVDUTUUTUVCUAUOPUURUOVEUUSUVB
      OUUMUURUOUUQUKVAVBVCVDZUAOUUMVFVGVHZAFUUKRZUURHSZFVEZUAVIUNZAUVKUAVIAUURV
      IRZVJZUVJFUVNUVJFUJUVJFUFQZFUVJUFQZVKZUVNUVJUURISZUDSZUFQZUVRVLSZUVJUFQZV
      KZUVQUVNUWCUVJUURUOVMVNZISZUDSZUWEVLSZVOZUVJEVNZUDSZUFQZUWIVLSZUVJUFQZVKU
      VNBCUWFUWGEGHUVJUWJUWLAVIPHVPZUVMJVQZAEBCPPVTZPGBUMZUDSZUWQVLSZVRVNVSWAVN
      GUMZCUMUFQUWRUWTVOUWTUWSVRVNVSWAVNUWSVOWBWCWDVEZUVMKVQZUVNUWEUWPRZUWFPRAT
      UWPIVPZUWDTRZUXCUVMABCDEGHIJKLMWEZUURWFZTUWPUWDIWGWHZUWEPPWIWJUVNUXCUWGPR
      UXHUWEPPWLWJAVIPUURHJWKZUWJWMUWLWMUVMAUXEUWFUWGUFQUXGABCDEGHIUWDJKLMWNWOW
      PUVNUVTUWKUWBUWMUVNUVSUWJUVJUFUVNUVRUWIUDUVNUWDUOVRVNZISZUWEUXJHSZEVNZUVR
      UWIUVMAUXEUXKUXMVEUXGABCDEGHIUWDJKLMWQWOUVNUXJUURIUVNUURXCRZUOXCRUXJUURVE
      UVMUXNAUURWRWSWTUURUOXAXDZXBUVNUWEUWHUXLUVJEUVNUXCUWEUWHVEUXHUWEPPXEWJUVN
      UXJUURHUXOXBXFXGZXBXHUVNUWAUWLUVJUFUVNUVRUWIVLUXPXBXIXJXKUVNUVTUVOUWBUVPU
      VNUVTUVSFUKQZUVOUVNUVSUUNFUKUVNUUOUUPUVAUVSUUMRUVSUUNUKQAUUOUVMUVEVQZAUUP
      UVMUVFVQZAUVAUVMUVGVQZUVNUURUULSZUVSUUMAUXDUURTRZUYAUVSVEUVMUXFUURXLZTUWP
      UURUDIXNWHUVNUULTXMZUYBUYAUUMRUVNUXDTPUULVPUYDAUXDUVMUXFVQZTPPIXOTPUULXPX
      QZUVMUYBAUYCWSZTUURUULXRXSXTUAOUUMUVSYAYBNYCUVNUVJPRZUVSPRZFPRZUVTUXQVJUV
      OYDUXIUVNUVRUWPRZUYIAUXDUYBUYKUVMUXFUYCTUWPUURIWGWHZUVRPPWIWJAUYJUVMUVHVQ
      ZUVJUVSFYEVGYFUVNFUWAUKQZUWBUVPUVNFUUNUWAUKNUVNUUNUWAUKQZUUQUWAUKQZOUUMUL
      ZUVNUYQUBUMZUULSZUWAUKQZUBTULZUVNUYTUBTUVNUYRTRZVJZUYSUYRISZUDSZUWAUKUVNU
      XDVUBUYSVUEVEUYETUWPUYRUDIXNYGVUCVUEUWAVUCVUDUWPRVUEPRUVNTUWPUYRIUYEWKVUD
      PPWIWJUVNUWAPRZVUBUVNUYKVUFUYLUVRPPWLWJZVQVUCBCDEGHIUYRUURUVNUWNVUBUWOVQU
      VNUXAVUBUXBVQLMUVNVUBYHUVNUYBVUBUYGVQYIYJYKYLUVNUYDUYQVUAYOUYFUYPUYTOUBTU
      ULUUQUYSUWAUKYMYNWJXKUVNUUOUUPUVAVUFUYOUYQYOUXRUXSUXTVUGUAOOUUMUWAYPYBXKY
      QUVNUYJVUFUYHUYNUWBVJUVPYDUYMVUGUXIFUWAUVJYRVGYSYTUUAUVNUVJFUXIUYMUUBXKUU
      CUUDUVIUUQFVEZOUUKUNZAUVLOFUUKUUFAUWNHVIXMVUIUVLYOJVIPHXPVUHUVKOUAVIHUUQU
      VJFUUEUUGXQUUHUUIUUJ $.
  $}

  ${
    $d d m x y F $.
    $( Lemma for ~ ruc .  There is no function that maps ` NN ` onto ` RR ` .
       (Use ~ nex if you want this in the form ` -. E. f f : NN -onto-> RR ` .)
       (Contributed by NM, 14-Oct-2004.)  (Proof shortened by Fan Zheng,
       6-Jun-2016.) $)
    ruclem13 $p |- -. F : NN -onto-> RR $=
      ( vd vx vy vm cn cr crn cdif c0 wceq cv c1st cfv caddc cop reex cc0 eqid
      co wfo forn difeq2d difid syl6eq cxp c2nd c2 clt wbr cif csb cmpt2 wex wn
      cdiv xpex mpt2ex isseti wa c1 csn cun cseq ccom csup wcel wf adantr simpr
      fof ruclem12 n0i syl ex exlimdv mpi pm2.65i ) FGAUAZGAHZIZJKZVSWAGGIJVSVT
      GGFGAUBUCGUDUEVSBLZCDGGUFZGECLZMNZWEUGNZOTUHUPTELZDLUIUJWFWHPWHWGOTUHUPTW
      GPUKULZUMZKZBUNWBUOZBWJCDWDGWIGGQQUQQURUSVSWKWLBVSWKWLVSWKUTZMWCRRVAPPVBA
      VCZRVDZVEHGUIVFZWAVGWLWMCDWNWCWPEAWOVSFGAVHWKFGAVKVIVSWKVJWNSWOSWPSVLWAWP
      VMVNVOVPVQVR $.
  $}

  $( The set of positive integers is strictly dominated by the set of real
     numbers, i.e. the real numbers are uncountable.  The proof consists of
     lemmas ~ ruclem1 through ~ ruclem13 and this final piece.  Our proof is
     based on the proof of Theorem 5.18 of [Truss] p. 114.  See ~ ruclem13 for
     the function existence version of this theorem.  For an informal
     discussion of this proof, see ~ mmcomplex.html#uncountable .  For an
     alternate proof see ~ rucALT .  This is Metamath 100 proof #22.
     (Contributed by NM, 13-Oct-2004.) $)
  ruc $p |- NN ~< RR $=
    ( vf cn cr csdm wbr cdom cen wn cvv wcel wss reex nnssre ssdomg mp2 cv wf1o
    wex wfo ruclem13 f1ofo mto nex bren mtbir brsdom mpbir2an ) BCDEBCFEZBCGEZH
    CIJBCKUHLMBCINOUIBCAPZQZARUKAUKBCUJSUJTBCUJUAUBUCBCAUDUEBCUFUG $.

  $( The set of rationals is strictly less equinumerous than the set of reals
     ( ` RR ` strictly dominates ` QQ ` ).  (Contributed by NM,
     18-Dec-2004.) $)
  resdomq $p |- QQ ~< RR $=
    ( cq cn cen wbr cr csdm qnnen ruc ensdomtr mp2an ) ABCDBEFDAEFDGHABEIJ $.

  $( There are at least aleph-one real numbers.  (Contributed by NM,
     2-Feb-2005.) $)
  aleph1re $p |- ( aleph ` 1o ) ~<_ RR $=
    ( c1o cale cfv cr cdom wbr csdm wn c0 csuc cn cen com aleph0 nnenom eqbrtri
    ensymi mp2an cvv wcel ensdomtr alephnbtwn2 mptnan df-1o fveq2i breq2i mtbir
    ruc wb fvex reex domtri mpbir ) ABCZDEFZDUNGFZHZUPDIJZBCZGFZIBCZDGFZUTVAKLF
    KDGFVBVAMKLNKMOQPUHVAKDUARIDUBUCUNUSDGAURBUDUEUFUGUNSTDSTUOUQUIABUJUKUNDSSU
    LRUM $.

  $( There are at least aleph-one irrationals.  (Contributed by NM,
     2-Feb-2005.) $)
  aleph1irr $p |- ( aleph ` 1o ) ~<_ ( RR \ QQ ) $=
    ( c1o cale cfv cr cdom wbr cq cdif cen aleph1re ccrd cdm wcel com cvv ax-mp
    csdm cn ensymi mp2an reex numth3 nnenom ruc ensdomtr sdomdom resdomq infdif
    mp3an domentr ) ABCZDEFDDGHZIFUKULEFJULDDKLMZNDEFZGDQFULDIFDOMUMUADOUBPNDQF
    ZUNNRIFRDQFUORNUCSUDNRDUETNDUFPUGDGUHUISUKDULUJT $.

  ${
    $d a b c d e x $.
    $( The complex numbers can be linearly ordered.  (Contributed by Stefan
       O'Rear, 16-Nov-2014.) $)
    cnso $p |- E. x x Or CC $=
      ( va vb vd vc ve cr cc cv wf1o wor wex cfv wceq wa clt wbr wrex syl cnex
      copab cxp cin ltso wiso eqid f1oiso mpan2 isoso soinxp syl6bb mpbii inex2
      wb xpex soeq1 spcev cen cn cpw rpnnen cpnnen entr4i bren mpbi exlimiiv )
      GHBIZJZHAIZKZALZBVHHCIDIZVGMNEIFIZVGMNOVLVMPQOFGRDGRCEUAZHHUBZUCZKZVKVHGP
      KZVQUDVHGHPVNVGUEZVRVQUNVHVNVNNVSVNUFDFCEGHPVNVGUGUHVSVRHVNKVQGHPVNVGUIHV
      NUJUKSULVJVQAVPVOVNHHTTUOUMHVIVPUPUQSGHURQVHBLGUSUTHVAVBVCGHBVDVEVF $.
  $}


$(
###############################################################################
  ELEMENTARY NUMBER THEORY
###############################################################################

  Here we introduce elementary number theory, in particular the elementary
  properties of divisibility and elementary prime number theory.

$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Elementary properties of divisibility
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Irrationality of square root of 2
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    sqrt2irrlem.1 $e |- ( ph -> A e. ZZ ) $.
    sqrt2irrlem.2 $e |- ( ph -> B e. NN ) $.
    sqrt2irrlem.3 $e |- ( ph -> ( sqrt ` 2 ) = ( A / B ) ) $.
    $( Lemma for ~ sqrt2irr .  This is the core of the proof: if
       ` A / B = sqrt ( 2 ) ` , then ` A ` and ` B ` are even, so ` A / 2 ` and
       ` B / 2 ` are smaller representatives, which is absurd by the method of
       infinite descent (here implemented by strong induction).  This is
       Metamath 100 proof #1.  (Contributed by NM, 20-Aug-2001.)  (Revised by
       Mario Carneiro, 12-Sep-2015.)  (Proof shortened by JV, 4-Jan-2022.) $)
    sqrt2irrlem $p |- ( ph -> ( ( A / 2 ) e. ZZ /\ ( B / 2 ) e. NN ) ) $=
      ( c2 cdiv co cz wcel cn cexp cmul oveq1d eqtr3d nncnd nnne0d eqtrd syl wb
      csqrt cfv 2cnd sqsqrtd zcnd sqdivd nnsqcld divcan1d cc0 wne 2ne0 divcan3d
      sqcld a1i eqeltrd nnzd zesq mpbird clt wbr sqvald oveq2d divdiv1d 3eqtr4d
      zsqcl eqeltrrd nnrpd rphalfcld rpgt0d elnnz sylanbrc nnesq jca ) ABGHIZJK
      ZCGHILKZAVPBGMIZGHIZJKZAVSAVSCGMIZLAGWANIZGHIVSWAAWBVRGHAWBVRWAHIZWANIVRA
      GWCWANAGBCHIZGMIZWCAGUBUCZGMIGWEAGAUDZUEAWFWDGMFOPABCABDUFZACEQACERUGSOAV
      RWAABWHUNZAWAACEUHZQZAWAWJRUISOAWAGWKWGGUJUKAULUOZUMPZWJUPUQABJKVPVTUADBU
      RTUSZAVQWAGHIZLKZAWOJKUJWOUTVAWPAVOGMIZWOJAWQVSGHIZWOAVRGGMIZHIVRGGNIZHIW
      QWRAWSWTVRHAGWGVBVCABGWHWGWLUGAVRGGWIWGWGWLWLVDVEAVSWAGHWMOSAVPWQJKWNVOVF
      TVGAWOAWAAWAWJVHVIVJWOVKVLACLKVQWPUAECVMTUSVN $.

    $( Obsolete proof of ~ sqrt2irrlem as of 4-Jan-2022.  (Contributed by NM,
       20-Aug-2001.)  (Revised by Mario Carneiro, 12-Sep-2015.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    sqrt2irrlemOLD $p |- ( ph -> ( ( A / 2 ) e. ZZ /\ ( B / 2 ) e. NN ) ) $=
      ( c2 cdiv co cz wcel cn cexp cmul 2cn oveq1d nncnd nnne0d eqtrd syl csqrt
      cfv cc wceq sqrtth ax-mp syl5eqr zcnd sqdivd nnsqcld divcan1d a1i cc0 wne
      sqcld 2ne0 divcan3d eqtr3d eqeltrd nnzd zesq mpbird clt wbr sqvali oveq2i
      divdiv1d 3eqtr4a zsqcl eqeltrrd nnrpd rphalfcld rpgt0d elnnz sylanbrc jca
      wb nnesq ) ABGHIZJKZCGHILKZAVTBGMIZGHIZJKZAWCAWCCGMIZLAGWENIZGHIWCWEAWFWB
      GHAWFWBWEHIZWENIWBAGWGWENAGBCHIZGMIZWGAGGUAUBZGMIZWIGUCKZWKGUDOGUEUFAWJWH
      GMFPUGABCABDUHZACEQACERUISPAWBWEABWMUOZAWEACEUJZQZAWEWORUKSPAWEGWPWLAOULZ
      GUMUNAUPULZUQURZWOUSUTABJKVTWDVQDBVATVBZAWAWEGHIZLKZAXAJKUMXAVCVDXBAVSGMI
      ZXAJAXCWCGHIZXAAWBGGMIZHIWBGGNIZHIXCXDXEXFWBHGOVEVFABGWMWQWRUIAWBGGWNWQWQ
      WRWRVGVHAWCWEGHWSPSAVTXCJKWTVSVITVJAXAAWEAWEWOVKVLVMXAVNVOACLKWAXBVQECVRT
      VBVP $.
  $}

  ${
    $d n x y z $.
    $( The square root of 2 is irrational.  See ~ zsqrtelqelz for a
       generalization to all non-square integers.  The proof's core is proven
       in ~ sqrt2irrlem , which shows that if ` A / B = sqrt ( 2 ) ` , then
       ` A ` and ` B ` are even, so ` A / 2 ` and ` B / 2 ` are smaller
       representatives, which is absurd.  An older version of this proof was
       included in _The Seventeen Provers of the World_ compiled by Freek
       Wiedijk.  It is also the first of the "top 100" mathematical theorems
       whose formalization is tracked by Freek Wiedijk on his _Formalizing 100
       Theorems_ page at ~ http://www.cs.ru.nl/~~freek/100/ .  (Contributed by
       NM, 8-Jan-2002.)  (Proof shortened by Mario Carneiro, 12-Sep-2015.) $)
    sqrt2irr $p |- ( sqrt ` 2 ) e/ QQ $=
      ( vx vy vz c2 wcel cv cdiv co wceq cz wrex cn c1 clt wbr wne wral ralbidv
      wi wa vn csqrt cfv cq caddc peano2nn breq2 imbi1d nnnlt1 pm2.21d rgen crp
      wn nnrp rphalflt breq1 oveq2 neeq2d imbi12d rspcv com13 simpr cc ad2antlr
      syl zcn nncn ad2antrr 2cnd cc0 nnne0 2ne0 a1i divcan7d eqtr4d sqrt2irrlem
      simplr simpll simprd simpld oveq1 embantd necon2bd mpd necon2ad ralrimdva
      ex syld cbvralv syl6ibr ceqsralv sylibrd ancld wo wb cle nnleltp1 cr nnre
      leloe syl2an bitr3d ancoms jaob syl6bb ralbidva r19.26 nnind ltp1d ralnex
      df-ne mp2d nrex elq rexcom bitri mtbir nelir ) DUBUCZUDXSUDEZXSAFZBFZGHZI
      ZAJKZBLKZYEBLYBLEZCFZYBMUEHZNOZXSYAYHGHZPZAJQZSZCLQZYBYINOZYEUMZYGYILEYOY
      BUFYHUAFZNOZYMSZCLQYHMNOZYMSZCLQYHYBNOZYMSZCLQZYOYOUABYIYRMIZYTUUBCLUUFYS
      UUAYMYRMYHNUGUHRYRYBIZYTUUDCLUUGYSUUCYMYRYBYHNUGUHRYRYIIZYTYNCLUUHYSYJYMY
      RYIYHNUGUHRZUUIUUBCLYHLEZUUAYMYHUIUJUKYGUUEUUEYHYBIZYMSZCLQZTZYOYGUUEUUMY
      GUUEXSYCPZAJQZUUMYGUUEXSYHYBGHZPZCJQZUUPYGUUEYBDGHZLEZXSYAUUTGHZPZAJQZSZU
      USYGUUTYBNOZUUEUVESYGYBULEUVFYBUNYBUOVEUVAUUEUVFUVDUUDUVFUVDSCUUTLYHUUTIZ
      UUCUVFYMUVDYHUUTYBNUPUVGYLUVCAJUVGYKUVBXSYHUUTYAGUQURRUSUTVAVEYGUVEUURCJY
      GYHJEZTZUVEXSUUQUVIXSUUQIZUVEUMZUVIUVJTZXSYHDGHZUUTGHZIUVKUVLXSUUQUVNUVIU
      VJVBZUVLYHYBDUVHYHVCEYGUVJYHVFVDYGYBVCEUVHUVJYBVGVHUVLVIYGYBVJPUVHUVJYBVK
      VHDVJPUVLVLVMVNVOUVLUVEXSUVNUVLUVAUVDXSUVNPZUVLUVMJEZUVAUVLYHYBYGUVHUVJVQ
      YGUVHUVJVRUVOVPZVSUVLUVQUVDUVPSUVLUVQUVAUVRVTUVCUVPAUVMJYAUVMIUVBUVNXSYAU
      VMUUTGWAURUTVEWBWCWDWGWEWFWHUUOUURACJYAYHIYCUUQXSYAYHYBGWAURWIWJYMUUPCYBL
      UUKYLUUOAJUUKYKYCXSYHYBYAGUQURZRWKWLWMYGYOUUDUULTZCLQUUNYGYNUVTCLYGUUJTZY
      NUUCUUKWNZYMSUVTUWAYJUWBYMUUJYGYJUWBWOUUJYGTYHYBWPOZYJUWBYHYBWQUUJYHWREYB
      WREUWCUWBWOYGYHWSYBWSZYHYBWTXAXBXCUHUUCYMUUKXDXEXFUUDUULCLXGXEWLXHVEYGYBU
      WDXIYNYPYQSCYBLUUKYJYPYMYQYHYBYINUPUUKYMYDUMZAJQYQUUKYLUWEAJUUKYLUUOUWEUV
      SXSYCXKXERYDAJXJXEUSUTXLXMXTYDBLKAJKYFABXSXNYDABJLXOXPXQXR $.
  $}

  $( The square root of 2 exists and is a real number.  (Contributed by NM,
     3-Dec-2004.) $)
  sqrt2re $p |- ( sqrt ` 2 ) e. RR $=
    ( c2 2re 2pos sqrtpclii ) ABCD $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Some Number sets are chains of proper subsets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The sequence ` NN ` , ` ZZ ` , ` QQ ` , ` RR ` , and ` CC ` forms a chain
     of proper subsets.  In each case the proper subset relationship is shown
     by demonstrating a number that belongs to one set but not the other.  We
     show that zero belongs to ` ZZ ` but not ` NN ` , one-half belongs to
     ` QQ ` but not ` ZZ ` , the square root of 2 belongs to ` RR ` but not
     ` QQ ` , and finally that the imaginary number ` _i ` belongs to ` CC `
     but not ` RR ` .  See ~ nthruz for a further refinement.  (Contributed by
     NM, 12-Jan-2002.) $)
  nthruc $p |- ( ( NN C. ZZ /\ ZZ C. QQ ) /\ ( QQ C. RR /\ RR C. CC ) ) $=
    ( cn cz wpss cq wa cr cc wss cc0 wcel wn nnssz 0z pm3.2i ssnelpss mp2 c1 c2
    0nnn ci cdiv co zssq 2nn znq mp2an halfnz csqrt qssre sqrt2re sqrt2irr neli
    1z cfv ax-resscn ax-icn inelr ) ABCZBDCZEDFCZFGCZEURUSABHIBJZIAJKZEURLVBVCM
    SNABIOPBDHQRUAUBZDJZVDBJKZEUSUCVEVFQBJRAJVEUMUDQRUEUFUGNBDVDOPNUTVADFHRUHUN
    ZFJZVGDJKZEUTUIVHVIUJVGDUKULNDFVGOPFGHTGJZTFJKZEVAUOVJVKUPUQNFGTOPNN $.

  $( The sequence ` NN ` , ` NN0 ` , and ` ZZ ` forms a chain of proper
     subsets.  In each case the proper subset relationship is shown by
     demonstrating a number that belongs to one set but not the other.  We show
     that zero belongs to ` NN0 ` but not ` NN ` and minus one belongs to
     ` ZZ ` but not ` NN0 ` .  This theorem refines the chain of proper subsets
     ~ nthruc .  (Contributed by NM, 9-May-2004.) $)
  nthruz $p |- ( NN C. NN0 /\ NN0 C. ZZ ) $=
    ( cn cn0 wpss cz wss cc0 wcel wn nnssnn0 0nn0 0nnn pm3.2i ssnelpss mp2 cneg
    wa c1 nn0ssz neg1z clt wbr neg1lt0 nn0nlt0 mt2 ) ABCZBDCZABEFBGZFAGHZPUEIUG
    UHJKLABFMNBDEQOZDGZUIBGZHZPUFRUJULSUKUIFTUAUBUIUCUDLBDUIMNL $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The divides relation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c || $.

  $( Extend the definition of a class to include the divides relation.  See
     ~ df-dvds . $)
  cdvds $a class || $.

  ${
    $d n x y $.
    $( Define the divides relation, see definition in [ApostolNT] p. 14.
       (Contributed by Paul Chapman, 21-Mar-2011.) $)
    df-dvds $a |- || = { <. x , y >. | ( ( x e. ZZ /\ y e. ZZ ) /\
                                            E. n e. ZZ ( n x. x ) = y ) } $.
  $}

  ${
    $d M n x y $.  $d N n x y $.
    $( Define the divides relation. ` M || N ` means ` M ` divides into ` N `
       with no remainder.  For example, ` 3 || 6 ` ( ~ ex-dvds ).  As proven in
       ~ dvdsval3 , ` M || N <-> ( N mod M ) = 0 ` .  See ~ divides and
       ~ dvdsval2 for other equivalent expressions.  (Contributed by Paul
       Chapman, 21-Mar-2011.) $)
    divides $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
                    ( M || N <-> E. n e. ZZ ( n x. M ) = N ) ) $=
      ( vx vy cdvds wbr cop cv cz wcel wa cmul co wceq wrex copab df-br df-dvds
      rexbidv eleq2i bitri oveq2 eqeq1d eqeq2 opelopab2 syl5bb ) BCFGZBCHZDIZJK
      EIZJKLAIZUJMNZUKOZAJPZLDEQZKZBJKCJKLULBMNZCOZAJPZUHUIFKUQBCFRFUPUIDEASUAU
      BUOURUKOZAJPUTDEBCJJUJBOZUNVAAJVBUMURUKUJBULMUCUDTUKCOVAUSAJUKCURUETUFUG
      $.
  $}

  ${
    $d k M $.  $d k N $.
    $( One nonzero integer divides another integer if and only if their
       quotient is an integer.  (Contributed by Jeff Hankins, 29-Sep-2013.) $)
    dvdsval2 $p |- ( ( M e. ZZ /\ M =/= 0 /\ N e. ZZ ) ->
      ( M || N <-> ( N / M ) e. ZZ ) ) $=
      ( vk cz wcel cc0 wne w3a cdvds wbr cv cmul co wceq wrex cdiv wa cc adantr
      zcn divides 3adant2 3ad2ant3 adantl 3ad2ant1 simpl2 divmul3d eqcom syl6bb
      biimprd impr simprl eqeltrd rexlimdvaa simpr simp2 divcan1d eqeq1d rspcev
      wb oveq1 syl2anc ex impbid bitrd ) ADEZAFGZBDEZHZABIJZCKZALMZBNZCDOZBAPMZ
      DEZVFVHVJVNUTVGCABUAUBVIVNVPVIVMVPCDVIVKDEZVMQQVOVKDVIVQVMVOVKNZVIVQQZVRV
      MVSVRBVLNVMVSBVKAVIBREZVQVHVFVTVGBTUCZSVQVKREVIVKTUDVIAREZVQVFVGWBVHATUEZ
      SVFVGVHVQUFUGBVLUHUIUJUKVIVQVMULUMUNVIVPVNVIVPQVPVOALMZBNZVNVIVPUOVIWEVPV
      IBAWAWCVFVGVHUPUQSVMWECVODVKVONVLWDBVKVOALVAURUSVBVCVDVE $.
  $}

  $( One nonzero integer divides another integer if and only if the remainder
     upon division is zero, see remark in [ApostolNT] p. 106.  (Contributed by
     Mario Carneiro, 22-Feb-2014.)  (Revised by Mario Carneiro,
     15-Jul-2014.) $)
  dvdsval3 $p |- ( ( M e. NN /\ N e. ZZ ) ->
                   ( M || N <-> ( N mod M ) = 0 ) ) $=
    ( cn wcel cz wa cdvds wbr cdiv co cmo cc0 wceq wne nnz nnne0 dvdsval2 3expa
    wb jca sylan cr crp zre nnrp mod0 syl2anr bitr4d ) ACDZBEDZFABGHZBAIJEDZBAK
    JLMZUIAEDZALNZFUJUKULSZUIUNUOAOAPTUNUOUJUPABQRUAUJBUBDAUCDUMULSUIBUDAUEBAUF
    UGUH $.

  ${
    $d x y z $.
    $( Reverse closure for the divisibility relation.  (Contributed by Stefan
       O'Rear, 5-Sep-2015.) $)
    dvdszrcl $p |- ( X || Y -> ( X e. ZZ /\ Y e. ZZ ) ) $=
      ( vx vy vz cz cdvds cv wcel wa cmul co wceq wrex df-dvds opabssxp eqsstri
      copab cxp brel ) ABFFGGCHZFIDHZFIJEHUAKLUBMEFNZJCDRFFSCDEOUCCDFFPQT $.
  $}

  $( Strong form of ~ dvdsval2 for positive integers.  (Contributed by Stefan
     O'Rear, 13-Sep-2014.) $)
  nndivdvds $p |- ( ( A e. NN /\ B e. NN ) ->
    ( B || A <-> ( A / B ) e. NN ) ) $=
    ( cn wcel wa cdvds wbr cc0 cdiv co clt cz wne wb nnz adantl adantr cr nngt0
    nnre nnne0 dvdsval2 syl3anc anbi1d divgt0d biantrud elnnz a1i 3bitr4d ) ACD
    ZBCDZEZBAFGZHABIJZKGZEUNLDZUOEZUMUNCDZULUMUPUOULBLDZBHMZALDZUMUPNUKUSUJBOPU
    KUTUJBUAPUJVAUKAOQBAUBUCUDULUOUMULABUJARDUKATQUKBRDUJBTPUJHAKGUKASQUKHBKGUJ
    BSPUEUFURUQNULUNUGUHUI $.

  ${
    $d M n $.  $d N n $.
    $( Definition of the divides relation for positive integers.  (Contributed
       by AV, 26-Jul-2021.) $)
    nndivides $p |- ( ( M e. NN /\ N e. NN )
                      -> ( M || N <-> E. n e. NN ( n x. M ) = N ) ) $=
      ( cn wcel wa cv cmul co wceq wrex cdiv cdvds wbr nndiv cc adantl ad2antrr
      nncn mulcomd eqeq1d rexbidva wb nndivdvds ancoms 3bitr4rd ) BDEZCDEZFZBAG
      ZHIZCJZADKCBLIDEZUJBHIZCJZADKBCMNZABCOUIUOULADUIUJDEZFZUNUKCURUJBUQUJPEUI
      UJSQUGBPEUHUQBSRTUAUBUHUGUPUMUCCBUDUEUF $.
  $}

  $( Two ways to say ` A == B ` (mod ` N ` ), see also definition in
     [ApostolNT] p. 106.  (Contributed by Mario Carneiro, 18-Feb-2014.) $)
  moddvds $p |- ( ( N e. NN /\ A e. ZZ /\ B e. ZZ ) ->
                  ( ( A mod N ) = ( B mod N ) <-> N || ( A - B ) ) ) $=
    ( wcel cz cmo co wceq wb wa cc0 caddc cr zre modadd1 3expia syl22anc oveq1d
    wi recnd cn cmin wbr crp nnrp adantr 0mod syl eqeq2d cneg ad2antrl ad2antll
    cdvds renegcld negsubd negidd eqeq12d sylibd resubcld npcand addid2d impbid
    0red zsubcl dvdsval3 sylan2 3bitr4d 3impb ) CUADZAEDZBEDZACFGZBCFGZHZCABUBG
    ZUMUCZIVIVJVKJZJZVOCFGZKCFGZHZVSKHZVNVPVRVTKVSVRCUDDZVTKHVIWCVQCUEUFZCUGUHU
    IVRVNWAVRVNABUJZLGZCFGZBWELGZCFGZHZWAVRAMDZBMDZWEMDZWCVNWJSVJWKVIVKANUKZVKW
    LVIVJBNULZVRBWOUNWDWKWLJWMWCJVNWJABWECOPQVRWGVSWIVTVRWFVOCFVRABVRAWNTZVRBWO
    TZUORVRWHKCFVRBWQUPRUQURVRWAVOBLGZCFGZKBLGZCFGZHZVNVRVOMDZKMDZWLWCWAXBSVRAB
    WNWOUSVRVCWOWDXCXDJWLWCJWAXBVOKBCOPQVRWSVLXAVMVRWRACFVRABWPWQUTRVRWTBCFVRBW
    QVARUQURVBVQVIVOEDVPWBIABVDCVOVEVFVGVH $.

  ${
    $d K x $.  $d M x $.  $d N x $.
    $( A lemma to assist theorems of ` || ` with no antecedents.  (Contributed
       by Paul Chapman, 21-Mar-2011.) $)
    dvds0lem $p |- ( ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) /\ ( K x. M ) = N ) ->
                     M || N ) $=
      ( vx cz wcel w3a cmul co wceq cdvds wbr wi wa cv wrex oveq1 eqeq1d rspcev
      adantl wb divides adantr mpbird expr 3impa 3comr imp ) AEFZBEFZCEFZGABHIZ
      CJZBCKLZUJUKUIUMUNMZUJUKUIUOUJUKNZUIUMUNUPUIUMNZNUNDOZBHIZCJZDEPZUQVAUPUT
      UMDAEURAJUSULCURABHQRSTUPUNVAUAUQDBCUBUCUDUEUFUGUH $.
  $}

  ${
    $d J x $.  $d K x $.  $d M x z $.  $d N x z $.  $d Z z $.  $d ph x $.
    dvds1lem.1 $e |- ( ph -> ( J e. ZZ /\ K e. ZZ ) ) $.
    dvds1lem.2 $e |- ( ph -> ( M e. ZZ /\ N e. ZZ ) ) $.
    dvds1lem.3 $e |- ( ( ph /\ x e. ZZ ) -> Z e. ZZ ) $.
    dvds1lem.4 $e |- ( ( ph /\ x e. ZZ ) ->
                       ( ( x x. J ) = K -> ( Z x. M ) = N ) ) $.
    $( A lemma to assist theorems of ` || ` with one antecedent.  (Contributed
       by Paul Chapman, 21-Mar-2011.) $)
    dvds1lem $p |- ( ph -> ( J || K -> M || N ) ) $=
      ( vz cv cmul co wceq cz wrex wcel wa cdvds wbr oveq1 eqeq1d rspcev syl6an
      rexlimdva wb divides syl 3imtr4d ) ABMZCNODPZBQRZLMZENOZFPZLQRZCDUAUBZEFU
      AUBZAUMURBQAULQSTGQSUMGENOZFPZURJKUQVBLGQUOGPUPVAFUOGENUCUDUEUFUGACQSDQST
      USUNUHHBCDUIUJAEQSFQSTUTURUHILEFUIUJUK $.
  $}

  ${
    $d I x y $.  $d J x y $.  $d K x y $.  $d L x y $.  $d M x y z $.
    $d N x y z $.  $d Z z $.  $d ph x y $.
    dvds2lem.1 $e |- ( ph -> ( I e. ZZ /\ J e. ZZ ) ) $.
    dvds2lem.2 $e |- ( ph -> ( K e. ZZ /\ L e. ZZ ) ) $.
    dvds2lem.3 $e |- ( ph -> ( M e. ZZ /\ N e. ZZ ) ) $.
    dvds2lem.4 $e |- ( ( ph /\ ( x e. ZZ /\ y e. ZZ ) ) -> Z e. ZZ ) $.
    dvds2lem.5 $e |- ( ( ph /\ ( x e. ZZ /\ y e. ZZ ) ) ->
               ( ( ( x x. I ) = J /\ ( y x. K ) = L ) -> ( Z x. M ) = N ) ) $.
    $( A lemma to assist theorems of ` || ` with two antecedents.  (Contributed
       by Paul Chapman, 21-Mar-2011.) $)
    dvds2lem $p |- ( ph -> ( ( I || J /\ K || L ) -> M || N ) ) $=
      ( wa cmul wceq cz wcel vz cdvds wbr cv co wrex wb divides bi2anan9 biimpd
      syl2anc reeanv syl6ibr oveq1 eqeq1d rspcev syl6an rexlimdvva syld sylibrd
      syl ) ADEUBUCZFGUBUCZPZUAUDZHQUEZIRZUASUFZHIUBUCZAVDBUDZDQUEERZCUDZFQUEGR
      ZPZCSUFBSUFZVHAVDVKBSUFZVMCSUFZPZVOAVDVRADSTESTPZFSTGSTPZVDVRUGKLVSVBVPVT
      VCVQBDEUHCFGUHUIUKUJVKVMBCSSULUMAVNVHBCSSAVJSTVLSTPPJSTVNJHQUEZIRZVHNOVGW
      BUAJSVEJRVFWAIVEJHQUNUOUPUQURUSAHSTISTPVIVHUGMUAHIUHVAUT $.
  $}

  $( An integer divides itself.  Theorem 1.1(a) in [ApostolNT] p. 14 (reflexive
     property of the divides relation).  (Contributed by Paul Chapman,
     21-Mar-2011.) $)
  iddvds $p |- ( N e. ZZ -> N || N ) $=
    ( cz wcel c1 cmul co wceq cdvds wbr zcn mulid2d 1z dvds0lem mp3anl1 anabsan
    mpdan ) ABCZDAEFAGZAAHIZQAAJKQRSDBCQQRSLDAAMNOP $.

  $( 1 divides any integer.  Theorem 1.1(f) in [ApostolNT] p. 14.  (Contributed
     by Paul Chapman, 21-Mar-2011.) $)
  1dvds $p |- ( N e. ZZ -> 1 || N ) $=
    ( cz wcel c1 cmul co wceq cdvds wbr zcn mulid1d 1z dvds0lem mp3anl2 anabsan
    mpdan ) ABCZADEFAGZDAHIZQAAJKQRSQDBCQRSLADAMNOP $.

  $( Any integer divides 0.  Theorem 1.1(g) in [ApostolNT] p. 14.  (Contributed
     by Paul Chapman, 21-Mar-2011.) $)
  dvds0 $p |- ( N e. ZZ -> N || 0 ) $=
    ( cz wcel cc0 cmul co wceq cdvds wbr zcn mul02d wi w3a dvds0lem mp3an13 mpd
    0z ex ) ABCZDAEFDGZADHIZSAAJKDBCZSUBTUALQQUBSUBMTUADADNROP $.

  ${
    $d M x $.  $d N x $.
    $( An integer divides another iff its negation does.  (Contributed by Paul
       Chapman, 21-Mar-2011.) $)
    negdvdsb $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M || N <-> -u M || N ) ) $=
      ( vx cz wcel wa cdvds wbr cneg znegcl cmul co wceq cc zcn syl2anr adantlr
      eqeq1d biimprd dvds1lem cv id anim1i adantl mul2neg mulneg12 impbid ) ADE
      ZBDEZFZABGHAIZBGHUJCABUKBCUAZIZUJUBZUHUKDEUIAJUCZULDEZUMDEUJULJUDZUJUPFZU
      MUKKLZBMULAKLZBMURUSUTBUHUPUSUTMZUIUPULNEZANEZVAUHULOZAOZULAUEPQRSTUJCUKB
      ABUMUOUNUQURUMAKLZBMULUKKLZBMURVFVGBUHUPVFVGMZUIUPVBVCVHUHVDVEULAUFPQRSTU
      G $.

    $( An integer divides another iff it divides its negation.  (Contributed by
       Paul Chapman, 21-Mar-2011.) $)
    dvdsnegb $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M || N <-> M || -u N ) ) $=
      ( vx cz wcel wa cdvds cneg cv id znegcl cmul co wceq wi cc negeq dvds1lem
      wbr zcn anim2i adantl mulneg1 eqeq2d syl5ibcom syl2anr sylan9eqr sylan9eq
      adantlr negneg expr 3impa syl3an 3coml 3expa impbid ) ADEZBDEZFZABGSABHZG
      SUSCABAUTCIZHZUSJZURUTDEUQBKUAZVADEZVBDEUSVAKUBZUQVEVAALMZBNZVBALMZUTNZOZ
      URVEVAPEZAPEZVKUQVATZATZVLVMFZVIVGHZNVHVJVAAUCZVHVQUTVIVGBQUDUEUFUIRUSCAU
      TABVBVDVCVFUQURVEVGUTNZVIBNZOZVEUQURWAVEVLUQVMURBPEZWAVNVOBTVLVMWBWAVPWBV
      SVTVPWBVSFVIVQBVRVSWBVQUTHBVGUTQBUJUGUHUKULUMUNUORUP $.
  $}

  $( An integer divides another iff its absolute value does.  (Contributed by
     Paul Chapman, 21-Mar-2011.) $)
  absdvdsb $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
                   ( M || N <-> ( abs ` M ) || N ) ) $=
    ( cz wcel wa cabs cfv wceq cdvds wbr wb cneg breq1 bicomd negdvdsb sylan9bb
    wi a1i ex wo zre absord adantr mpjaod ) ACDZBCDZEZAFGZAHZABIJZUHBIJZKZUHALZ
    HZUIULQUGUIUKUJUHABIMNRUGUNULUGUJUMBIJZUNUKABOUNUKUOUHUMBIMNPSUEUIUNTUFUEAA
    UAUBUCUD $.

  $( An integer divides another iff it divides its absolute value.
     (Contributed by Paul Chapman, 21-Mar-2011.) $)
  dvdsabsb $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
                   ( M || N <-> M || ( abs ` N ) ) ) $=
    ( cz wcel wa cabs cfv wceq cdvds wbr wb cneg breq2 bicomd dvdsnegb sylan9bb
    wi a1i ex wo zre absord adantl mpjaod ) ACDZBCDZEZBFGZBHZABIJZAUHIJZKZUHBLZ
    HZUIULQUGUIUKUJUHBAIMNRUGUNULUGUJAUMIJZUNUKABOUNUKUOUHUMAIMNPSUFUIUNTUEUFBB
    UAUBUCUD $.

  ${
    $d N n $.
    $( Only 0 is divisible by 0.  Theorem 1.1(h) in [ApostolNT] p. 14.
       (Contributed by Paul Chapman, 21-Mar-2011.) $)
    0dvds $p |- ( N e. ZZ -> ( 0 || N <-> N = 0 ) ) $=
      ( vn cz wcel cc0 cdvds wbr wceq cv cmul co wrex wb 0z divides mpan mul01d
      zcn eqtr2 sylan2 ancoms rexlimiva syl6bi dvds0 ax-mp breq2 mpbiri impbid1
      ) ACDZEAFGZAEHZUIUJBIZEJKZAHZBCLZUKECDZUIUJUOMNBEAOPUNUKBCUNULCDZUKUQUNUM
      EHUKUQULULRQUMAESTUAUBUCUKUJEEFGZUPURNEUDUEAEEFUFUGUH $.
  $}

  $( An integer divides a multiple of itself.  (Contributed by Paul Chapman,
     21-Mar-2011.) $)
  dvdsmul1 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> M || ( M x. N ) ) $=
    ( cz wcel wa cmul co cdvds wbr cc zcn mulcom syl2anr wi zmulcl w3a dvds0lem
    wceq ex 3com12 mpd3an3 mpd ) ACDZBCDZEBAFGABFGZRZAUEHIZUDBJDAJDUFUCBKAKBALM
    UCUDUECDZUFUGNZABOUDUCUHUIUDUCUHPUFUGBAUEQSTUAUB $.

  $( An integer divides a multiple of itself.  (Contributed by Paul Chapman,
     21-Mar-2011.) $)
  dvdsmul2 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> N || ( M x. N ) ) $=
    ( cz wcel cmul co cdvds wbr zmulcl w3a wceq eqid dvds0lem mpan2 mpd3an3 ) A
    CDZBCDZABEFZCDZBRGHZABIPQSJRRKTRLABRMNO $.

  $( An integer divides a positive integer power of itself.  (Contributed by
     Paul Chapman, 26-Oct-2012.) $)
  iddvdsexp $p |- ( ( M e. ZZ /\ N e. NN ) -> M || ( M ^ N ) ) $=
    ( cz wcel cn wa c1 cmin cexp cmul cdvds wbr cn0 nnm1nn0 zexpcl sylan2 simpl
    co dvdsmul2 syl2anc cc wceq zcn expm1t sylan breqtrrd ) ACDZBEDZFZAABGHRZIR
    ZAJRZABIRZKUIUKCDZUGAULKLUHUGUJMDUNBNAUJOPUGUHQUKASTUGAUADUHUMULUBAUCABUDUE
    UF $.

  ${
    $d K x $.  $d M x $.  $d N x $.
    $( If a product divides an integer, so does one of its factors.
       (Contributed by Paul Chapman, 21-Mar-2011.) $)
    muldvds1 $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
                     ( ( K x. M ) || N -> K || N ) ) $=
      ( vx cz wcel w3a cmul co cv wa zmulcl anim1i 3simpb ancoms 3ad2antl2 wceq
      3impa cc zcn mulass mul32 eqtr3d syl3an 3adantl3 eqeq1d biimpd dvds1lem
      3coml 3expa ) AEFZBEFZCEFZGZDABHIZCACDJZBHIZUKULUMUOEFZUMKUKULKURUMABLMRU
      KULUMNULUKUPEFZUQEFZUMUSULUTUPBLOPUNUSKZUPUOHIZCQUQAHIZCQVAVBVCCUKULUSVBV
      CQZUMUKULUSVDUSUKULVDUSUPSFZUKASFZULBSFZVDUPTATBTVEVFVGGUPAHIBHIVBVCUPABU
      AUPABUBUCUDUIUJUEUFUGUH $.

    $( If a product divides an integer, so does one of its factors.
       (Contributed by Paul Chapman, 21-Mar-2011.) $)
    muldvds2 $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
                     ( ( K x. M ) || N -> M || N ) ) $=
      ( vx cz wcel w3a cmul co cv wa zmulcl anim1i 3simpc ancoms 3ad2antl1 wceq
      3impa cc zcn mulass syl3an 3coml 3expa 3adantl3 eqeq1d biimprd dvds1lem )
      AEFZBEFZCEFZGZDABHIZCBCDJZAHIZUIUJUKUMEFZUKKUIUJKUPUKABLMRUIUJUKNUIUJUNEF
      ZUOEFZUKUQUIURUNALOPULUQKZUOBHIZCQUNUMHIZCQUSUTVACUIUJUQUTVAQZUKUIUJUQVBU
      QUIUJVBUQUNSFUIASFUJBSFVBUNTATBTUNABUAUBUCUDUEUFUGUH $.

    $( Multiplication by a constant maintains the divides relation.  Theorem
       1.1(d) in [ApostolNT] p. 14 (multiplication property of the divides
       relation).  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    dvdscmul $p |- ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ ) ->
                     ( M || N -> ( K x. M ) || ( K x. N ) ) ) $=
      ( vx cz wcel cdvds wbr cmul co wi w3a cv 3simpc zmulcl 3adant3 wceq 3coml
      cc zcn 3adant2 jca simpr wa mul12 syl3an 3expa 3adantl3 oveq2 sylan9eq ex
      dvds1lem ) AEFZBEFZCEFZBCGHABIJZACIJZGHKUMUNUOLZDBCUPUQDMZUMUNUONURUPEFZU
      QEFZUMUNUTUOABOPUMUOVAUNACOUAUBURUSEFZUCURVBUDZUSBIJZCQZUSUPIJZUQQVCVEVFA
      VDIJZUQUMUNVBVFVGQZUOUMUNVBVHVBUMUNVHVBUSSFUMASFUNBSFVHUSTATBTUSABUEUFRUG
      UHVDCAIUIUJUKULR $.

    $( Multiplication by a constant maintains the divides relation.
       (Contributed by Paul Chapman, 21-Mar-2011.) $)
    dvdsmulc $p |- ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ ) ->
                     ( M || N -> ( M x. K ) || ( N x. K ) ) ) $=
      ( vx cz wcel cdvds wbr cmul co wi w3a cv 3simpc wa zmulcl 3adant2 wceq cc
      zcn 3adant1 jca 3comr simpr mulass syl3an 3com13 3expa 3adantl3 sylan9req
      oveq1 ex dvds1lem 3coml ) AEFZBEFZCEFZBCGHBAIJZCAIJZGHKUOUPUQLZDBCURUSDMZ
      UOUPUQNUPUQUOUREFZUSEFZOUPUQUOLVBVCUPUOVBUQBAPQUQUOVCUPCAPUAUBUCUTVAEFZUD
      UTVDOZVABIJZCRZVAURIJZUSRVEVGVHVFAIJZUSUOUPVDVIVHRZUQUOUPVDVJVDUPUOVJVDVA
      SFUPBSFUOASFVJVATBTATVABAUEUFUGUHUIVFCAIUKUJULUMUN $.

    $( Cancellation law for the divides relation.  Theorem 1.1(e) in
       [ApostolNT] p. 14.  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    dvdscmulr $p |- ( ( M e. ZZ /\ N e. ZZ /\ ( K e. ZZ /\ K =/= 0 ) ) ->
                      ( ( K x. M ) || ( K x. N ) <-> M || N ) ) $=
      ( vx cz wcel wa w3a cmul co cdvds wbr zmulcl 3adant2 3coml 3adant3r wb cc
      wceq zcn cc0 wne cv 3adant3 3simpa simpr wi anim12i anim1i mul12 3adant1r
      3expb ancoms eqeq1d mulcl mulcan syl3an1 bitr3d syl3an 3impa 3expia 3impb
      jca imp biimpd dvds1lem dvdscmul impbid ) BEFZCEFZAEFZAUAUBZGZHZABIJZACIJ
      ZKLZBCKLZVNDVOVPBCDUCZVIVJVKVOEFZVPEFZGZVLVKVIVJWBVKVIVJHVTWAVKVIVTVJABMU
      DVKVJWAVIACMNVCOPVIVJVMUEVNVSEFZUFVNWCGVSVOIJZVPSZVSBIJZCSZVNWCWEWGQZVIVJ
      VMWCWHUGVIVJVMGZWCWHWCVIWIWHWCVIWIWHWCVIGZVJVMWHWJVSRFZBRFZGZVJCRFZVMARFZ
      VLGZWHWCWKVIWLVSTBTUHCTVKWOVLATUIWMWNWPHZAWFIJZVPSZWEWGWQWRWDVPWMWPWRWDSZ
      WNWPWMWTWPWKWLWTWOWKWLWTVLAVSBUJUKULUMNUNWMWFRFWNWPWSWGQVSBUOWFCAUPUQURUS
      ULUTOVAVBVDVEVFVIVJVKVRVQUGVLABCVGPVH $.

    $( Cancellation law for the divides relation.  (Contributed by Paul
       Chapman, 21-Mar-2011.) $)
    dvdsmulcr $p |- ( ( M e. ZZ /\ N e. ZZ /\ ( K e. ZZ /\ K =/= 0 ) ) ->
                      ( ( M x. K ) || ( N x. K ) <-> M || N ) ) $=
      ( vx cz wcel wa w3a cmul co cdvds wbr zmulcl 3adant2 3adant3r wceq wb zcn
      wi cc cc0 wne cv 3adant1 3simpa simpr anim12i anim1i mulass 3expa adantrr
      eqeq1d mulcl mulcan2 syl3an1 bitr3d syl3an 3expb 3impa 3coml 3expia 3impb
      jca imp biimpd dvds1lem dvdsmulc impbid ) BEFZCEFZAEFZAUAUBZGZHZBAIJZCAIJ
      ZKLZBCKLZVNDVOVPBCDUCZVIVJVKVOEFZVPEFZGVLVIVJVKHVTWAVIVKVTVJBAMNVJVKWAVIC
      AMUDVCOVIVJVMUEVNVSEFZUFVNWBGVSVOIJZVPPZVSBIJZCPZVNWBWDWFQZVIVJVMWBWGSVIV
      JVMGZWBWGWBVIWHWGWBVIWHWGWBVIGZVJVMWGWIVSTFZBTFZGZVJCTFZVMATFZVLGZWGWBWJV
      IWKVSRBRUGCRVKWNVLARUHWLWMWOHZWEAIJZVPPZWDWFWPWQWCVPWLWOWQWCPZWMWLWNWSVLW
      JWKWNWSVSBAUIUJUKNULWLWETFWMWOWRWFQVSBUMWECAUNUOUPUQURUSUTVAVBVDVEVFVIVJV
      KVRVQSVLABCVGOVH $.
  $}

  $( The sum of two integers modulo a positive integer equals zero iff the
     first of the two integers equals the negative of the other integer modulo
     the positive integer.  (Contributed by AV, 25-Jul-2021.) $)
  summodnegmod $p |- ( ( A e. ZZ /\ B e. ZZ /\ N e. NN )
           -> ( ( ( A + B ) mod N ) = 0 <-> ( A mod N ) = ( -u B mod N ) ) ) $=
    ( cz wcel cn w3a cmo co cneg wceq cmin cdvds wbr caddc cc0 wb zcn 3adant3
    cc simp3 simp1 znegcl 3ad2ant2 moddvds syl3anc wa anim12i subneg eqcomd syl
    breq2d zaddcl dvdsval3 syl2anc 3bitr2rd ) ADEZBDEZCFEZGZACHIBJZCHIKZCAVALIZ
    MNZCABOIZMNZVECHIPKZUTUSUQVADEZVBVDQUQURUSUAZUQURUSUBURUQVHUSBUCUDAVACUEUFU
    TVEVCCMUTATEZBTEZUGZVEVCKUQURVLUSUQVJURVKARBRUHSVLVCVEABUIUJUKULUTUSVEDEZVF
    VGQVIUQURVMUSABUMSCVEUNUOUP $.

  $( Constant multiplication in a modulo operation, see theorem 5.3 in
     [ApostolNT] p. 108.  (Contributed by AV, 21-Jul-2021.) $)
  modmulconst $p |- ( ( ( A e. ZZ /\ B e. ZZ /\ C e. NN ) /\ M e. NN )
                      -> ( ( A mod M ) = ( B mod M )
                           <-> ( ( C x. A ) mod ( C x. M ) )
                               = ( ( C x. B ) mod ( C x. M ) ) ) ) $=
    ( cz wcel cn w3a wa cmin co cdvds wbr cmul cmo wceq wb adantr syl3anc cc
    cc0 wne nnz adantl zsubcl 3adant3 nnne0 3ad2ant3 dvdscmulr bicomd 3anim123i
    jca zcn nncn 3anrot sylibr subdi syl breq2d bitrd simpr simp1 simp2 moddvds
    simpl3 nnmulcld zmulcld 3bitr4d ) AEFZBEFZCGFZHZDGFZIZDABJKZLMZCDNKZCANKZCB
    NKZJKZLMZADOKBDOKPZVRVQOKVSVQOKPZVNVPVQCVONKZLMZWAVNDEFZVOEFZCEFZCUAUBZIZVP
    WEQVMWFVLDUCUDVLWGVMVIVJWGVKABUEUFRVLWJVMVKVIWJVJVKWHWICUCZCUGULUHRWFWGWJHW
    EVPCDVOUIUJSVNWDVTVQLVLWDVTPZVMVLCTFZATFZBTFZHZWLVLWNWOWMHWPVIWNVJWOVKWMAUM
    BUMCUNUKWMWNWOUOUPCABUQURRUSUTVNVMVIVJWBVPQVLVMVAZVLVIVMVIVJVKVBZRVLVJVMVIV
    JVKVCZRABDVDSVNVQGFVREFZVSEFZWCWAQVNCDVIVJVKVMVEWQVFVLWTVMVLCAVKVIWHVJWKUHZ
    WRVGRVLXAVMVLCBXBWSVGRVRVSVQVDSVH $.

  ${
    $d I x y $.  $d J x y $.  $d K x y $.  $d M x y $.  $d N x y $.
    $( If an integer divides each of two other integers, it divides any linear
       combination of them.  Theorem 1.1(c) in [ApostolNT] p. 14 (linearity
       property of the divides relation).  (Contributed by Paul Chapman,
       21-Mar-2011.) $)
    dvds2ln $p |- ( ( ( I e. ZZ /\ J e. ZZ ) /\
                      ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ) ->
        ( ( K || M /\ K || N ) -> K || ( ( I x. M ) + ( J x. N ) ) ) ) $=
      ( vx vy cz wcel wa cmul co caddc cv jca adantr wceq cc zcn adantl zmulcld
      w3a simpr1 simpr2 simpr3 simpll simplr zaddcld zmulcl anim12i an4s expcom
      imp zaddcl syl zcnd adddir 3expa syl2anc ad3antrrr mul32d oveq12d mulcomd
      wi mulcld 3eqtrd oveq2 oveqan12d sylan9eq ex dvds2lem ) AHIZBHIZJZCHIZDHI
      ZEHIZUBZJZFGCDCECADKLZBEKLZMLZFNZAKLZGNZBKLZMLZVSVOVPVNVOVPVQUCZVNVOVPVQU
      DZOVSVOVQWHVNVOVPVQUEZOVSVOWBHIWHVSVTWAVSADVLVMVRUFWIUAVSBEVLVMVRUGZWJUAU
      HOVSWCHIZWEHIZJZJZWDHIZWFHIZJZWGHIVSWNWRVNWNWRVDVRWNVNWRWLVLWMVMWRWLVLJWP
      WMVMJWQWCAUIWEBUIUJUKULPUMZWDWFUNUOWOWCCKLZDQZWECKLZEQZJZWGCKLZWBQWOXDXEA
      WTKLZBXBKLZMLZWBWOXEWDCKLZWFCKLZMLZWTAKLZXBBKLZMLXHWOWDRIZWFRIZJZCRIZXEXK
      QZWOWRXPWSWPXNWQXOWDSWFSUJUOVSXQWNVSCWHUPPZXNXOXQXRWDWFCUQURUSWOXIXLXJXMM
      WOWCACWNWCRIZVSWLXTWMWCSPTZVLARIVMVRWNASUTZXSVAWOWEBCWNWERIZVSWMYCWLWESTT
      ZVSBRIWNVSBWKUPPZXSVAVBWOXLXFXMXGMWOWTAWOWCCYAXSVEYBVCWOXBBWOWECYDXSVEYEV
      CVBVFXAXCXFVTXGWAMWTDAKVGXBEBKVGVHVIVJVK $.
  $}

  ${
    $d K x y $.  $d M x y $.  $d N x y $.
    $( If an integer divides each of two other integers, it divides their sum.
       (Contributed by Paul Chapman, 21-Mar-2011.) $)
    dvds2add $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
                     ( ( K || M /\ K || N ) -> K || ( M + N ) ) ) $=
      ( vx vy cz wcel w3a caddc co cv 3simpa 3simpb zaddcl anim2i cmul wceq zcn
      wa cc 3impb adantl wi adddir syl3an 3comr 3expb oveq12 sylan9eq 3ad2antl1
      ex dvds2lem ) AFGZBFGZCFGZHZDEABACABCIJZDKZEKZIJZUMUNUOLUMUNUOMUMUNUOUMUQ
      FGZSUNUOSVAUMBCNOUAURFGZUSFGZSZUTFGUPURUSNUBUMUNVDURAPJZBQUSAPJZCQSZUTAPJ
      ZUQQZUCUOUMVDSZVGVIVJVGVHVEVFIJZUQUMVBVCVHVKQZVBVCUMVLVBURTGVCUSTGUMATGVL
      URRUSRARURUSAUDUEUFUGVEBVFCIUHUIUKUJUL $.

    $( If an integer divides each of two other integers, it divides their
       difference.  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    dvds2sub $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
                     ( ( K || M /\ K || N ) -> K || ( M - N ) ) ) $=
      ( vx vy cz wcel w3a cmin co cv 3simpa 3simpb wa zsubcl anim2i cmul cc zcn
      wceq 3impb adantl wi subdir syl3an 3comr 3expb oveq12 sylan9eq 3ad2antl1
      ex dvds2lem ) AFGZBFGZCFGZHZDEABACABCIJZDKZEKZIJZUMUNUOLUMUNUOMUMUNUOUMUQ
      FGZNUNUONVAUMBCOPUAURFGZUSFGZNZUTFGUPURUSOUBUMUNVDURAQJZBTUSAQJZCTNZUTAQJ
      ZUQTZUCUOUMVDNZVGVIVJVGVHVEVFIJZUQUMVBVCVHVKTZVBVCUMVLVBURRGVCUSRGUMARGVL
      URSUSSASURUSAUDUEUFUGVEBVFCIUHUIUKUJUL $.

    ${
      dvds2subd.1 $e |- ( ph -> K e. ZZ ) $.
      dvds2subd.2 $e |- ( ph -> K || M ) $.
      dvds2subd.3 $e |- ( ph -> K || N ) $.
      dvds2subd.4 $e |- ( ph -> M e. ZZ ) $.
      dvds2subd.5 $e |- ( ph -> N e. ZZ ) $.
      $( Natural deduction form of ~ dvds2sub .  (Contributed by Stanislas
         Polu, 9-Mar-2020.) $)
      dvds2subd $p |- ( ph -> K || ( M - N ) ) $=
        ( cdvds wbr cmin co cz wcel wa wi dvds2sub syl3anc mp2and ) ABCJKZBDJKZ
        BCDLMJKZFGABNOCNODNOUAUBPUCQEHIBCDRST $.
    $}

    $( The divides relation is transitive.  Theorem 1.1(b) in [ApostolNT] p. 14
       (transitive property of the divides relation).  (Contributed by Paul
       Chapman, 21-Mar-2011.) $)
    dvdstr $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
                   ( ( K || M /\ M || N ) -> K || N ) ) $=
      ( vx vy cz wcel w3a cv cmul co 3simpa 3simpc 3simpb wa zmulcl adantl wceq
      cc zcn oveq2 adantr eqeq2 mpbid mulass mul12 eqtrd syl3an 3comr 3ad2antl1
      wb 3expb eqeq1d syl5ibr dvds2lem ) AFGZBFGZCFGZHZDEABBCACDIZEIZJKZUPUQURL
      UPUQURMUPUQURNUTFGZVAFGZOZVBFGUSUTVAPQUTAJKZBRZVABJKZCRZOZVBAJKZCRUSVEOZV
      AVFJKZCRZVJVMVHRZVNVGVOVIVFBVAJUAUBVIVOVNUKVGVHCVMUCQUDVLVKVMCUPUQVEVKVMR
      ZURUPVCVDVPVCVDUPVPVCUTSGZVDVASGZUPASGZVPUTTVATATVQVRVSHVKUTVAAJKJKVMUTVA
      AUEUTVAAUFUGUHUIULUJUMUNUO $.
  $}

  $( If an integer divides another, it divides a multiple of it.  (Contributed
     by Paul Chapman, 17-Nov-2012.) $)
  dvdsmultr1 $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
                     ( K || M -> K || ( M x. N ) ) ) $=
    ( cz wcel w3a cdvds wbr cmul co dvdsmul1 3adant1 wa wi zmulcl dvdstr mpan2d
    syld3an3 ) ADEZBDEZCDEZFABGHZBBCIJZGHZAUCGHZTUAUDSBCKLSTUAUCDEZUBUDMUENTUAU
    FSBCOLABUCPRQ $.

  ${
    dvdsmultr1d.1 $e |- ( ph -> K e. ZZ ) $.
    dvdsmultr1d.2 $e |- ( ph -> M e. ZZ ) $.
    dvdsmultr1d.3 $e |- ( ph -> N e. ZZ ) $.
    dvdsmultr1d.4 $e |- ( ph -> K || M ) $.
    $( Natural deduction form of ~ dvdsmultr1 .  (Contributed by Stanislas
       Polu, 9-Mar-2020.) $)
    dvdsmultr1d $p |- ( ph -> K || ( M x. N ) ) $=
      ( cdvds wbr cmul co cz wcel wi dvdsmultr1 syl3anc mpd ) ABCIJZBCDKLIJZHAB
      MNCMNDMNSTOEFGBCDPQR $.
  $}

  $( If an integer divides another, it divides a multiple of it.  (Contributed
     by Paul Chapman, 17-Nov-2012.) $)
  dvdsmultr2 $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
                     ( K || N -> K || ( M x. N ) ) ) $=
    ( cz wcel w3a cdvds wbr cmul co wa wb dvdsmul2 biantrud 3adant1 simp1 simp3
    wi zmulcl dvdstr syl3anc sylbid ) ADEZBDEZCDEZFZACGHZUGCBCIJZGHZKZAUHGHZUDU
    EUGUJLUCUDUEKUIUGBCMNOUFUCUEUHDEZUJUKRUCUDUEPUCUDUEQUDUEULUCBCSOACUHTUAUB
    $.

  $( If an integer divides either of two others, it divides their product.
     (Contributed by Paul Chapman, 17-Nov-2012.)  (Proof shortened by Mario
     Carneiro, 17-Jul-2014.) $)
  ordvdsmul $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
                    ( ( K || M \/ K || N ) -> K || ( M x. N ) ) ) $=
    ( cz wcel w3a cdvds wbr cmul co dvdsmultr1 dvdsmultr2 jaod ) ADEBDECDEFABGH
    ABCIJGHACGHABCKABCLM $.

  $( If an integer divides a difference, then it divides one term iff it
     divides the other.  (Contributed by Mario Carneiro, 13-Jul-2014.) $)
  dvdssub2 $p |- ( ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) /\ K || ( M - N ) ) ->
                   ( K || M <-> K || N ) ) $=
    ( cz wcel cmin co cdvds wbr wa wi 3adant1 imp wceq cc syl2an adantr breqtrd
    zcn expr w3a zsubcl dvds2sub syld3an3 ancomsd nncan caddc dvds2add syld3an2
    npcan impbid ) ADEZBDEZCDEZUAZABCFGZHIZJABHIZACHIZUOUQURUSUOUQURJZJABUPFGZC
    HUOUTAVAHIZUOURUQVBULUMUNUPDEZURUQJVBKUMUNVCULBCUBLZABUPUCUDUEMUOVACNZUTUMU
    NVEULUMBOEZCOEZVEUNBSZCSZBCUFPLQRTUOUQUSURUOUQUSJZJAUPCUGGZBHUOVJAVKHIZULVC
    UMUNVJVLKVDAUPCUHUIMUOVKBNZVJUMUNVMULUMVFVGVMUNVHVIBCUJPLQRTUK $.

  $( An integer divides another iff it divides their sum.  (Contributed by Paul
     Chapman, 31-Mar-2011.)  (Revised by Mario Carneiro, 13-Jul-2014.) $)
  dvdsadd $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M || N <-> M || ( M + N ) ) ) $=
    ( cz wcel wa caddc co cdvds wbr cmin wb simpl zaddcl simpr iddvds adantr cc
    wceq zcn pncan syl2an breqtrrd dvdssub2 syl31anc bicomd ) ACDZBCDZEZAABFGZH
    IZABHIZUHUFUICDUGAUIBJGZHIUJUKKUFUGLABMUFUGNUHAAULHUFAAHIUGAOPUFAQDBQDULARU
    GASBSABTUAUBAUIBUCUDUE $.

  $( An integer divides another iff it divides their sum.  (Contributed by Paul
     Chapman, 31-Mar-2011.) $)
  dvdsaddr $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M || N <-> M || ( N + M ) ) ) $=
    ( cz wcel wa cdvds wbr caddc co dvdsadd wceq zcn addcom syl2an breq2d bitrd
    cc ) ACDZBCDZEZABFGAABHIZFGABAHIZFGABJTUAUBAFRAQDBQDUAUBKSALBLABMNOP $.

  $( An integer divides another iff it divides their difference.  (Contributed
     by Paul Chapman, 31-Mar-2011.) $)
  dvdssub $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M || N <-> M || ( M - N ) ) ) $=
    ( cz wcel wa cdvds wbr cneg caddc co cmin dvdsnegb wb znegcl dvdsadd sylan2
    cc wceq zcn negsub syl2an breq2d 3bitrd ) ACDZBCDZEZABFGABHZFGZAAUGIJZFGZAA
    BKJZFGABLUEUDUGCDUHUJMBNAUGOPUFUIUKAFUDAQDBQDUIUKRUEASBSABTUAUBUC $.

  $( An integer divides another iff it divides their difference.  (Contributed
     by Paul Chapman, 31-Mar-2011.) $)
  dvdssubr $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M || N <-> M || ( N - M ) ) ) $=
    ( cz wcel wa cmin co cdvds wbr caddc wb zsubcl ancoms dvdsadd syldan cc zcn
    wceq pncan3 syl2an breq2d bitr2d ) ACDZBCDZEZABAFGZHIZAAUFJGZHIZABHIUCUDUFC
    DZUGUIKUDUCUJBALMAUFNOUEUHBAHUCAPDBPDUHBRUDAQBQABSTUAUB $.

  $( Adding a multiple of the base does not affect divisibility.  (Contributed
     by Stefan O'Rear, 23-Sep-2014.) $)
  dvdsadd2b $p |- ( ( A e. ZZ /\ B e. ZZ /\ ( C e. ZZ /\ A || C ) ) ->
    ( A || B <-> A || ( C + B ) ) ) $=
    ( cz cdvds wbr wa w3a caddc co simpl1 simpl3l simpl2 simpl3r simpr dvds2add
    wcel imp syl2anc adantr syl32anc simp3l simp2 zaddcl znegcld dvdsnegb mpbid
    cneg wb wceq cmin ancoms zcnd cc zcn adantl negsubd pncan2d breqtrd impbida
    eqtrd ) ADQZBDQZCDQZACEFZGZHZABEFZACBIJZEFZVGVHGVBVDVCVEVHVJVBVCVFVHKVDVEVB
    VCVHLVBVCVFVHMVDVEVBVCVHNVGVHOVBVDVCHVEVHGVJACBPRUAVGVJGZAVICUHZIJZBEVKVBVI
    DQZVLDQZVJAVLEFZAVMEFZVBVCVFVJKZVGVNVJVGVDVCVNVBVCVDVEUBZVBVCVFUCCBUDZSTVGV
    OVJVGCVSUETVGVJOVKVEVPVDVEVBVCVJNVKVBVDVEVPUIVRVDVEVBVCVJLZACUFSUGVBVNVOHVJ
    VPGVQAVIVLPRUAVKVCVDVMBUJVBVCVFVJMWAVCVDGZVMVICUKJBWBVICWBVIVDVCVNVTULUMVDC
    UNQVCCUOUPZUQWBCBWCVCBUNQVDBUOTURVASUSUT $.

  $( Adding a multiple of the base does not affect divisibility.  Variant of
     ~ dvdsadd2b only requiring ` B ` to be a real number (not necessarily an
     integer).  (Contributed by AV, 19-Jul-2021.) $)
  dvdsaddre2b $p |- ( ( A e. ZZ /\ B e. RR /\ ( C e. ZZ /\ A || C ) ) ->
    ( A || B <-> A || ( C + B ) ) ) $=
    ( cz wcel cr cdvds wbr wa w3a caddc co wi com12 wn dvdszrcl simpl2im adantr
    3imp cc wb dvdsadd2b a1d 3exp com24 pm2.24 recn ad2antrl addcomd cdif eldif
    zcn nzadd eldifbd expcom syl5bir imp eqneltrd pm2.21 syl8 a1i impcom impbid
    exp32 ex pm2.61i ) BDEZADEZBFEZCDEZACGHZIZJZABGHZACBKLZGHZUAZMVMVGVQVHVIVLV
    GVQMVHVGVLVIVQVHVGVLVIVQMVHVGVLJVQVIABCUBUCUDUESNVGOZVMVQVRVMIZVNVPVRVNVPMV
    MVNVRVPVNVHVGVRVPMABPVGVPUFQNRVPVSVNVPVHVODEZVSVNMAVOPVSVTVNVMVRVTVNMZVHVIV
    LVRWAMZVIVLWBMMVHVLVIWBVJVIWBMVKVJVIVRVTOZWAVJVIVRWCVJVIVRIZIZVOBCKLZDWECBV
    JCTEWDCULRVIBTEVJVRBUGUHUIVJWDWFDEOZWDBFDUJEZVJWGBFDUKWHVJWGWHVJIWFFDBCUMUN
    UOUPUQURVDVTVNUSUTRNVASVBNQNVCVEVF $.

  ${
    $d k A $.  $d k N $.  $d k ph $.
    fsumdvds.1 $e |- ( ph -> A e. Fin ) $.
    fsumdvds.2 $e |- ( ph -> N e. ZZ ) $.
    fsumdvds.3 $e |- ( ( ph /\ k e. A ) -> B e. ZZ ) $.
    fsumdvds.4 $e |- ( ( ph /\ k e. A ) -> N || B ) $.
    $( If every term in a sum is divisible by ` N ` , then so is the sum.
       (Contributed by Mario Carneiro, 17-Jan-2015.) $)
    fsumdvds $p |- ( ph -> N || sum_ k e. A B ) $=
      ( csu cdvds wbr cc0 wceq wa cz wcel adantlr wb adantr 0z dvds0 mp1i simpr
      cv simplr eqbrtrrd 0dvds syl mpbid sumeq2dv cuz cfv wss cfn wo olcd eqtrd
      sumz 3brtr4d wne cdiv co fsumdivc dvdsval2 syl3anc fsumzcl eqeltrd mpbird
      zcnd pm2.61dane ) AEBCDJZKLZEMAEMNZOZMMEVLKMPQMMKLVOUAMUBUCAVNUDVOVLBMDJZ
      MVOBCMDVODUEBQZOZMCKLZCMNZVREMCKAVNVQUFAVQECKLZVNIRUGVRCPQZVSVTSAVQWBVNHR
      CUHUIUJUKVOBMULUMUNZBUOQZUPVPMNVOWDWCAWDVNFTUQBDMUSUIURUTAEMVAZOZVMVLEVBV
      CZPQZWFWGBCEVBVCZDJPWFBCEDAWDWEFTZWFEAEPQZWEGTZVJWFVQOZCAVQWBWEHRZVJAWEUD
      ZVDWFBWIDWJWMWAWIPQZAVQWAWEIRWMWKWEWBWAWPSWFWKVQWLTAWEVQUFWNECVEVFUJVGVHW
      FWKWEVLPQZVMWHSWLWOAWQWEABCDFHVGTEVLVEVFVIVK $.
  $}

  ${
    dvdslelem.1 $e |- M e. ZZ $.
    dvdslelem.2 $e |- N e. NN $.
    dvdslelem.3 $e |- K e. ZZ $.
    $( Lemma for ~ dvdsle .  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    dvdslelem $p |- ( N < M -> ( K x. M ) =/= N ) $=
      ( clt wbr cmul co wo cc0 cle cr wcel zrei 0re wb ax-mp cneg mp2an zgt0ge1
      c1 lelttric cz orbi2i mpbi le0neg1 nngt0i nnrei lttri mpan ltlei renegcli
      wne syl mulge0i sylan2 sylanb expcom remulcli recni breq2i bitr4i syl6ibr
      mulneg1i lelttri mpan2 syl6 wa lemulge12 mpanl12 sylan ex ltletri orim12d
      syld mpi lttri2i sylibr ) CBGHZABIJZCGHZCWBGHZKZWBCUOWAALMHZUCAMHZKZWEWFL
      AGHZKZWHANOZLNOWJAFPZQALUDUAWIWGWFAUEOWIWGRFAUBSUFUGWAWFWCWGWDWAWFWBLMHZW
      CWAWFLATZBIJZMHZWMWFWAWPWFLWNMHZWAWPWKWFWQRWLAUHSWAWQLBMHZWPWALBGHZWRLCGH
      ZWAWSCEUIZLCBQCEUJZBDPZUKULLBQXCUMUPZWNBAWLUNXCUQURUSUTWMLWBTZMHZWPWBNOWM
      XFRABWLXCVAZWBUHSWOXELMABAWLVBBXCVBVFVCVDVEWMWTWCXAWBLCXGQXBVGVHVIWAWGBWB
      MHZWDWAWGXHWAWRWGXHXDBNOWKWRWGVJXHXCWLBAVKVLVMVNWAXHWDCBWBXBXCXGVOVNVQVPV
      RWBCXGXBVSVT $.
  $}

  ${
    $d M n $.  $d N n $.
    $( The divisors of a positive integer are bounded by it.  The proof does
       not use ` / ` .  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    dvdsle $p |- ( ( M e. ZZ /\ N e. NN ) -> ( M || N -> M <_ N ) ) $=
      ( vn cz wcel cn wa wbr clt wn cmul co wne wi c1 cif neeq1d imbi12d elimel
      wceq cdvds cle w3a cv wrex breq2 oveq2 breq1 neeq2 oveq1 imbi2d dvdslelem
      1z 1nn dedth3h 3expia 3impia imp neneqd nrexdv nnz divides sylan2 3adant3
      com23 wb mtbird con2d cr zre nnre lenlt syl2an sylibrd ) ADEZBFEZGZABUAHZ
      BAIHZJZABUBHZVQVSVRVOVPVSVRJVOVPVSUCZVRCUDZAKLZBTZCDUEZWBWECDWBWCDEZGWDBW
      BWGWDBMZVOVPVSWGWHNVQWGVSWHVOVPWGVSWHNZVOVPWGWIBVOAOPZIHZWCWJKLZBMZNVPBOP
      ZWJIHZWLWNMZNWOWGWCOPZWJKLZWNMZNABWCOOOAWJTZVSWKWHWMAWJBIUFWTWDWLBAWJWCKU
      GQRBWNTWKWOWMWPBWNWJIUHBWNWLUIRWCWQTZWPWSWOXAWLWRWNWCWQWJKUJQUKWQWJWNAODU
      MSBOFUNSWCODUMSULUOUPVEUQURUSUTVOVPVRWFVFZVSVPVOBDEXBBVACABVBVCVDVGUPVHVO
      AVIEBVIEWAVTVFVPAVJBVKABVLVMVN $.
  $}

  $( The divisors of a nonzero integer are bounded by its absolute value.
     Theorem 1.1(i) in [ApostolNT] p. 14 (comparison property of the divides
     relation).  (Contributed by Paul Chapman, 21-Mar-2011.)  (Proof shortened
     by Fan Zheng, 3-Jul-2016.) $)
  dvdsleabs $p |- ( ( M e. ZZ /\ N e. ZZ /\ N =/= 0 ) ->
                    ( M || N -> M <_ ( abs ` N ) ) ) $=
    ( cz wcel cc0 wne w3a cdvds wbr cabs cfv cle wb dvdsabsb 3adant3 wi nnabscl
    wa cn dvdsle sylan2 3impb sylbid ) ACDZBCDZBEFZGABHIZABJKZHIZAUHLIZUDUEUGUI
    MUFABNOUDUEUFUIUJPZUEUFRUDUHSDUKBQAUHTUAUBUC $.

  $( Transfer divisibility to an order constraint on absolute values.
     (Contributed by Stefan O'Rear, 24-Sep-2014.) $)
  dvdsleabs2 $p |- ( ( M e. ZZ /\ N e. ZZ /\ N =/= 0 )
                     -> ( M || N -> ( abs ` M ) <_ ( abs ` N ) ) ) $=
    ( cz wcel cc0 wne w3a cdvds wbr cabs cfv cle zabscl 3anim1i adantr absdvdsb
    wa wb 3adant3 biimpa dvdsleabs sylc ex ) ACDZBCDZBEFZGZABHIZAJKZBJKLIZUGUHQ
    UICDZUEUFGZUIBHIZUJUGULUHUDUKUEUFAMNOUGUHUMUDUEUHUMRUFABPSTUIBUAUBUC $.

  $( If two integers divide each other, they must be equal, up to a difference
     in sign.  Theorem 1.1(j) in [ApostolNT] p. 14.  (Contributed by Mario
     Carneiro, 30-May-2014.)  (Revised by AV, 7-Aug-2021.) $)
  dvdsabseq $p |- ( ( M || N /\ N || M ) -> ( abs ` M ) = ( abs ` N ) ) $=
    ( cdvds wbr cabs cfv wceq cz wcel wa wi cc0 simpr breq1 wb 0dvds adantr zcn
    abs00ad adantl dvdszrcl bicomd bitrd fveq2 abs0 syl6eq eqeq2d bitr4d syl5ib
    sylan9bb expd cle wne simprl neqne dvdsleabs2 syl3anc eqcom syl5rbbr eqeq1d
    wn a1dd expcomd cr abscld letri3 syl2anr syl5bb biimprd a1d pm2.61ian com34
    syld mpdd mpcom imp ) ABCDZBACDZAEFZBEFZGZAHIZBHIZJZVQVRWAKZABUABLGZWDVQWEK
    WFWDJZVQVRWAVQVRJVRWGWAVQVRMWGVRVSLGZWAWFVRLACDZWDWHBLACNWDWIALGZWHWBWIWJOW
    CAPQWBWJWHOWCWBWHWJWBAARZSUBQUCUJWGVTLVSWFVTLGZWDWFVTLEFZLBLEUDUEUFQUGUHUIU
    KWFVAZWDJZVQVSVTULDZWEWOWBWCBLUMZVQWPKWNWBWCUNWDWCWNWBWCMZTWNWQWDBLUOQABUPU
    QWDVQWPWEKKWNWDVQVRWPWAWJWDVQVRWPWAKZKZKWJWDJZVRVQWSXAVRVQJZWAWPXBVQXAWAVRV
    QMXAVQLVTGZWAWJVQLBCDZWDXCALBCNWCXDXCOWBWCXDWFXCBPXCWLWCWFVTLURWCBBRZSUSUCT
    UJXAVSLVTWJWHWDWJVSWMLALEUDUEUFQUTUHUIVBVCWJVAZWDJZWTVQXGVRVTVSULDZWSXGWCWB
    ALUMZVRXHKWDWCXFWRTXFWBWCUNXFXIWDALUOQBAUPUQWDXHWSKXFWDXHWPWAWDWAXHWPJZWAVT
    VSGZWDXJVSVTURWCVTVDIVSVDIXKXJOWBWCBXEVEWBAWKVEVTVSVFVGVHVIUKTVMVJVKVLTVNVK
    VOVP $.

  $( If two nonnegative integers divide each other, they must be equal.
     (Contributed by Mario Carneiro, 30-May-2014.)  (Proof shortened by AV,
     7-Aug-2021.) $)
  dvdseq $p |- ( ( ( M e. NN0 /\ N e. NN0 ) /\ ( M || N /\ N || M ) ) ->
                    M = N ) $=
    ( cdvds wbr wa cn0 wcel cabs cfv wceq dvdsabseq nn0ge0 absidd adantr eqcomd
    nn0re simpr ad2antlr 3eqtrd sylan2 ) ABCDBACDEAFGZBFGZEZAHIZBHIZJZABJABKUCU
    FEAUDUEBUCAUDJUFUCUDAUAUDAJUBUAAAPALMNONUCUFQUBUEBJUAUFUBBBPBLMRST $.

  ${
    $d M m $.  $d N m $.
    $( If a nonzero integer ` M ` divides another integer ` N ` , the other
       integer ` N ` divided by the nonzero integer ` M ` (i.e. the _divisor
       conjugate_ of ` N ` to ` M ` ) divides the other integer ` N ` .
       Theorem 1.1(k) in [ApostolNT] p. 14.  (Contributed by AV,
       7-Aug-2021.) $)
    divconjdvds $p |- ( ( M || N /\ M =/= 0 ) -> ( N / M ) || N ) $=
      ( vm cdvds wbr cc0 cdiv co cz wcel wa cmul wceq wb adantl cc adantr simpr
      wne zcn wi dvdszrcl cv simpll oveq1 eqeq1d divcan2d rspcedvd w3a dvdsval2
      wrex 3jca syl mpbid divides syl2anc mpbird exp31 com3r mpd imp ) ABDEZAFS
      ZBAGHZBDEZVBAIJZBIJZKZVCVEUAABUBVHVCVBVEVHVCVBVEVHVCKZVBKZVECUCZVDLHZBMZC
      IUKZVIVNVBVIVMAVDLHZBMZCAIVFVGVCUDZVKAMZVMVPNVIVRVLVOBVKAVDLUEUFOVIBAVHBP
      JZVCVGVSVFBTOQVHAPJZVCVFVTVGATQQVHVCRZUGUHQVJVDIJZVGVEVNNVJVBWBVIVBRVJVFV
      CVGUIZVBWBNVIWCVBVIVFVCVGVQWAVHVGVCVFVGRQZULQABUJUMUNVIVGVBWDQCVDBUOUPUQU
      RUSUTVA $.
  $}

  ${
    $d x A $.  $d x N $.
    $( The complement of a divisor of ` N ` is also a divisor of ` N ` .
       (Contributed by Mario Carneiro, 2-Jul-2015.)  (Proof shortened by AV,
       9-Aug-2021.) $)
    dvdsdivcl $p |- ( ( N e. NN /\ A e. { x e. NN | x || N } ) ->
        ( N / A ) e. { x e. NN | x || N } ) $=
      ( cn wcel cv cdvds crab wa cdiv co wi breq1 elrab nndivdvds biimpd expcom
      wbr com23 imp cc0 wne nnne0 anim1i ancomd divconjdvds jctird sylbi impcom
      syl sylibr ) CDEZBAFZCGRZADHZEZICBJKZDEZUQCGRZIZUQUOEUPULUTUPBDEZBCGRZIZU
      LUTLUNVBABDUMBCGMNVCULURUSVAVBULURLVAULVBURULVAVBURLULVAIVBURCBOPQSTVCVBB
      UAUBZIUSVCVDVBVAVDVBBUCUDUEBCUFUJUGUHUIUNUSAUQDUMUQCGMNUK $.
  $}

  ${
    $d y z A $.  $d x y z N $.
    dvdsflip.a $e |- A = { x e. NN | x || N } $.
    dvdsflip.f $e |- F = ( y e. A |-> ( N / y ) ) $.
    $( An involution of the divisors of a number.  (Contributed by Stefan
       O'Rear, 12-Sep-2015.)  (Proof shortened by Mario Carneiro,
       13-May-2016.) $)
    dvdsflip $p |- ( N e. NN -> F : A -1-1-onto-> A ) $=
      ( vz cn wcel cv cdiv co wa eleq2i dvdsdivcl sylan2b wceq cc nncn wbr crab
      cdvds syl6eleqr ssrab2 eqsstri sseli anim12i adantr ad2antrl ad2antll cc0
      wb cmul wne nnne0 divmul3d divmul2d bitr4d sylan2 eqcom 3bitr4g f1o2d ) E
      IJZBHCCEBKZLMZEHKZLMZDGVDVECJZNVFAKEUCUAZAIUBZCVIVDVEVKJVFVKJCVKVEFOAVEEP
      QFUDVDVGCJZNVHVKCVLVDVGVKJVHVKJCVKVGFOAVGEPQFUDVDVIVLNZNVHVERZVFVGRZVEVHR
      VGVFRVMVDVEIJZVGIJZNZVNVOUMVIVPVLVQCIVECVKIFVJAIUEUFZUGCIVGVSUGUHVDVRNZVN
      EVEVGUNMRVOVTEVEVGVDESJVRETUIZVPVESJVDVQVETUJZVQVGSJVDVPVGTUKZVQVGULUOVDV
      PVGUPUKUQVTEVGVEWAWCWBVPVEULUOVDVQVEUPUJURUSUTVEVHVAVGVFVAVBVC $.
  $}

  ${
    $d A p $.
    $( The set of divisors of a number is a subset of a finite set.
       (Contributed by Mario Carneiro, 22-Sep-2014.) $)
    dvdsssfz1 $p |- ( A e. NN -> { p e. NN | p || A } C_ ( 1 ... A ) ) $=
      ( cn wcel cv cdvds wbr c1 cfz co wi wral crab wss wa cle cz nnz id wb syl
      dvdsle syl2anr ibar adantl adantr bitr4d sylibd ralrimiva rabss sylibr
      fznn ) ACDZBEZAFGZUNHAIJZDZKZBCLUOBCMUPNUMURBCUMUNCDZOZUOUNAPGZUQUSUNQDUM
      UOVAKUMUNRUMSUNAUBUCUTVAUSVAOZUQUSVAVBTUMUSVAUDUEUTAQDZUQVBTUMVCUSARUFUNA
      ULUAUGUHUIUOBCUPUJUK $.
  $}

  $( The only nonnegative integer that divides 1 is 1.  (Contributed by Mario
     Carneiro, 2-Jul-2015.) $)
  dvds1 $p |- ( M e. NN0 -> ( M || 1 <-> M = 1 ) ) $=
    ( cn0 wcel c1 cdvds wbr wceq wa simpl 1nn0 a1i simpr cz 1dvds adantr dvdseq
    nn0z syl syl22anc ex id 1z iddvds ax-mp syl6eqbr impbid1 ) ABCZADEFZADGZUGU
    HUIUGUHHZUGDBCZUHDAEFZUIUGUHIUKUJJKUGUHLUGULUHUGAMCULAQANROADPSTUIADDEUIUAD
    MCDDEFUBDUCUDUEUF $.

  ${
    $d x A $.  $d x B $.  $d x N $.
    $( Only 0 is divisible by all integers.  (Contributed by Paul Chapman,
       21-Mar-2011.) $)
    alzdvds $p |- ( N e. ZZ -> ( A. x e. ZZ x || N <-> N = 0 ) ) $=
      ( cz wcel cv cdvds wbr wral cc0 wceq wa wne wn cabs cfv wrex cn cr expcom
      ralrimiv cle clt wss nnssz zcn abscld arch syl ssrexv mpsyl wb zre syl2an
      ltnle rexbidva rexnal syl6bb mpbid wi ralim dvdsleabs 3expb syl11 expdimp
      adantl mtod nne sylib dvds0 breq2 syl5ibr impbid1 ) BCDZAEZBFGZACHZBIJZVP
      VMVQVPVMKZBILZMVQVRVSVNBNOZUAGZACHZVMWBMZVPVMVTVNUBGZACPZWCQCUCVMWDAQPZWE
      UDVMVTRDZWFVMBBUEUFZVTAUGUHWDAQCUIUJVMWEWAMZACPWCVMWDWIACVMWGVNRDWDWIUKVN
      CDZWHVNULVTVNUNUMUOWAACUPUQURVEVPVMVSWBVOWAUSZACHVPWBVMVSKZVOWAACUTWLWKAC
      WJWLWKWJVMVSWKVNBVAVBSTVCVDVFBIVGVHSVQVOACWJVOVQVNIFGVNVIBIVNFVJVKTVL $.

    $( Poset extensionality for division.  (Contributed by Stefan O'Rear,
       6-Sep-2015.) $)
    dvdsext $p |- ( ( A e. NN0 /\ B e. NN0 ) -> ( A = B <->
          A. x e. NN0 ( A || x <-> B || x ) ) ) $=
      ( cn0 wcel wa wceq cv cdvds wbr wb wral breq1 cz iddvds syl breq2 bibi12d
      nn0z rspcva ralrimivw simpll simplr ad2antlr adantll mpbird adantlr mpbid
      ad2antrr dvdseq syl22anc ex impbid2 ) BDEZCDEZFZBCGZBAHZIJZCURIJZKZADLZUQ
      VAADBCURIMUAUPVBUQUPVBFZUNUOBCIJZCBIJZUQUNUOVBUBUNUOVBUCVCVDCCIJZUOVFUNVB
      UOCNEVFCSCOPUDUOVBVDVFKZUNVAVGACDURCGUSVDUTVFURCBIQURCCIQRTUEUFVCBBIJZVEU
      NVHUOVBUNBNEVHBSBOPUIUNVBVHVEKZUOVAVIABDURBGUSVHUTVEURBBIQURBCIQRTUGUHBCU
      JUKULUM $.
  $}

  $( No number between ` 1 ` and ` M - 1 ` divides ` M ` .  (Contributed by
     Mario Carneiro, 24-Jan-2015.) $)
  fzm1ndvds $p |- ( ( M e. NN /\ N e. ( 1 ... ( M - 1 ) ) ) -> -. M || N ) $=
    ( cn wcel c1 cmin co cfz wa cdvds wbr cle clt elfzle2 adantl adantr syl2anc
    wn cz wb elfzelz zltlem1 mpbird elfznn nnred cr nnre ltnled mpbid wi dvdsle
    nnz mtod ) ACDZBEAEFGZHGDZIZABJKZABLKZUQBAMKZUSRUQUTBUOLKZUPVAUNBEUONOUQBSD
    ZASDZUTVATUPVBUNBEUOUAOUNVCUPAULPZBAUBQUCUQBAUQBUPBCDZUNBUOUDOZUEUNAUFDUPAU
    GPUHUIUQVCVEURUSUJVDVFABUKQUM $.

  $( Zero is the only one of the first ` A ` nonnegative integers that is
     divisible by ` A ` .  (Contributed by Stefan O'Rear, 6-Sep-2015.) $)
  fzo0dvdseq $p |- ( B e. ( 0 ..^ A ) -> ( A || B <-> B = 0 ) ) $=
    ( cc0 cfzo co wcel cdvds wbr wceq wne cle clt elfzolt2 elfzoelz zred adantr
    wn wa cn cn0 elfzoel2 ltnled mpbid cz wi csn cdif elfzonn0 eldifsn sylanbrc
    simpr dfn2 syl6eleqr dvdsle syl2anc mtod ex necon4ad dvds0 breq2 syl5ibrcom
    syl impbid ) BCADEFZABGHZBCIZVDVEBCVDBCJZVEQVDVGRZVEABKHZVDVIQZVGVDBALHVJBC
    AMVDBAVDBBCANOVDABCAUAZOUBUCPVHAUDFZBSFVEVIUEVDVLVGVKPVHBTCUFUGZSVHBTFZVGBV
    MFVDVNVGBAUHPVDVGUKBTCUIUJULUMABUNUOUPUQURVDVEVFACGHZVDVLVOVKAUSVBBCAGUTVAV
    C $.

  $( Two different elements of a half-open range are not congruent mod its
     length.  (Contributed by Stefan O'Rear, 6-Sep-2015.) $)
  fzocongeq $p |- ( ( A e. ( C ..^ D ) /\ B e. ( C ..^ D ) ) ->
      ( ( D - C ) || ( A - B ) <-> A = B ) ) $=
    ( cfzo co wcel wa cmin cdvds wbr cc0 wceq cz wb elfzoelz syl2an bitrd zcnd
    cc cabs elfzoel2 elfzoel1 zsubcld adantl zsubcl dvdsabsb syl2anc fzo0dvdseq
    cfv fzomaxdif syl subcl abs00ad subeq0 ) ACDEFZGZBUPGZHZDCIFZABIFZJKZVAUAUJ
    ZLMZABMZUSVBUTVCJKZVDUSUTNGZVANGZVBVFOURVGUQURDCBCDUBBCDUCUDUEUQANGBNGVHURA
    CDPZBCDPZABUFQUTVAUGUHUSVCLUTEFGVFVDOABCDUKUTVCUIULRUSVDVALMZVEUSVAUQATGZBT
    GZVATGURUQAVISZURBVJSZABUMQUNUQVLVMVKVEOURVNVOABUOQRR $.

  $( Two nonnegative integers less than the modulus are equal iff the sums of
     these integer with another integer are equal modulo the modulus.  Shorter
     proof of ~ addmodlteq based on the "divides" relation.  (Contributed by
     AV, 14-Mar-2021.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  addmodlteqALT $p |- ( ( I e. ( 0 ..^ N ) /\ J e. ( 0 ..^ N ) /\ S e. ZZ )
                -> ( ( ( I + S ) mod N ) = ( ( J + S ) mod N ) <-> I = J ) ) $=
    ( cc0 co wcel cz w3a caddc cmo wceq cmin cdvds wbr wb wi wa syl cc cfzo cn0
    cn clt elfzo0 elfzoelz simplrr nn0z ad2antrl sylan adantlr 3jca exp31 com12
    zaddcl 3adant3 sylbi 3imp moddvds elfzoel2 zcn subid1d eqcomd 3ad2ant1 zcnd
    pnpcan2 syl3an breq12d fzocongeq 3bitrd ) BEDUAFZGZCVKGZAHGZIZBAJFZDKFCAJFZ
    DKFLZDVPVQMFZNOZDEMFZBCMFZNOZBCLZVODUCGZVPHGZVQHGZIZVRVTPVLVMVNWHVLBUBGZWEB
    DUDOZIVMVNWHQZQZBDUEWIWEWLWJVMWIWERZWKVMCHGZWMWKQCEDUFZWNWMVNWHWNWMRZVNRWEW
    FWGWNWIWEVNUGWPBHGZVNWFWIWQWNWEBUHUIBAUOUJWNVNWGWMCAUOUKULUMSUNUPUQURVPVQDU
    SSVODWAVSWBNVLVMDWALZVNVLDHGZWRBEDUTWSWADWSDDVAVBVCSVDVLBTGVMCTGVNATGVSWBLV
    LBBEDUFVEVMCWOVEAVABCAVFVGVHVLVMWCWDPVNBCEDVIUPVJ $.

  ${
    $d K x y $.  $d N x $.
    $( A positive integer divides any greater factorial.  (Contributed by Paul
       Chapman, 28-Nov-2012.) $)
    dvdsfac $p |- ( ( K e. NN /\ N e. ( ZZ>= ` K ) ) -> K || ( ! ` N ) ) $=
      ( vx vy cfv wcel cn cfa cdvds wbr wi c1 wceq fveq2 breq2d imbi2d syl nnzd
      co cz cuz caddc cmin cmul cn0 nnm1nn0 faccl nnz dvdsmul2 syl2anc breqtrrd
      cv facnn2 wa adantl elnnuz uztrn sylan2b sylibr nnnn0d dvdsmultr1 syl3anc
      a1i peano2zd facp1 sylibrd ex a2d uzind4 impcom ) BAUAEZFAGFZABHEZIJZVLAC
      ULZHEZIJZKVLAAHEZIJZKZVLADULZHEZIJZKVLAWALUBSZHEZIJZKVLVNKCDABVOAMZVQVSVL
      WGVPVRAIVOAHNOPVOWAMZVQWCVLWHVPWBAIVOWAHNOPVOWDMZVQWFVLWIVPWEAIVOWDHNOPVO
      BMZVQVNVLWJVPVMAIVOBHNOPVTATFZVLAALUCSZHEZAUDSZVRIVLWMTFWKAWNIJVLWMVLWLUE
      FWMGFAUFWLUGQRAUHZWMAUIUJAUMUKVCWAVKFZVLWCWFWPVLWCWFKWPVLUNZWCAWBWDUDSZIJ
      ZWFWQWKWBTFWDTFWCWSKVLWKWPWOUOWQWBWQWAUEFZWBGFWQWAWQWALUAEZFZWAGFVLWPAXAF
      XBAUPAWALUQURWAUPUSZUTZWAUGQRWQWAWQWAXCRVDAWBWDVAVBWQWEWRAIWQWTWEWRMXDWAV
      EQOVFVGVHVIVJ $.
  $}

  $( A power divides a power with a greater exponent.  (Contributed by Mario
     Carneiro, 23-Feb-2014.) $)
  dvdsexp $p |- ( ( A e. ZZ /\ M e. NN0 /\ N e. ( ZZ>= ` M ) ) ->
                  ( A ^ M ) || ( A ^ N ) ) $=
    ( cz wcel cn0 cuz cfv w3a cexp co cmin cmul cdvds wbr simp1 uznn0sub zexpcl
    3ad2ant3 syl2anc 3adant3 dvdsmul2 caddc zcnd simp2 expaddd cc nn0cnd npcand
    eluzelcn oveq2d eqtr3d breqtrd ) ADEZBFEZCBGHEZIZABJKZACBLKZJKZURMKZACJKZNU
    QUTDEZURDEZURVANOUQUNUSFEZVCUNUOUPPZUPUNVEUOBCQSZAUSRTUNUOVDUPABRUAUTURUBTU
    QAUSBUCKZJKVAVBUQAUSBUQAVFUDUNUOUPUEZVGUFUQVHCAJUQCBUPUNCUGEUOBCUJSUQBVIUHU
    IUKULUM $.

  $( Any number ` K ` whose mod base ` N ` is divisible by a divisor ` P ` of
     the base is also divisible by ` P ` .  This means that primes will also be
     relatively prime to the base when reduced ` mod N ` for any base.
     (Contributed by Mario Carneiro, 13-Mar-2014.) $)
  dvdsmod $p |- ( ( ( P e. NN /\ N e. NN /\ K e. ZZ ) /\ P || N ) ->
                  ( P || ( K mod N ) <-> P || K ) ) $=
    ( cn wcel cz cdvds wbr cmo co cmin wceq breq2d nnzd zcnd subid1d wb moddvds
    cc0 syl3anc w3a wa cdiv cfl cfv cmul cr crp simpl3 zred simpl2 nnrpd modval
    syl2anc simpl1 nndivred flcld simpr dvdsmultr1d zmulcld breqtrrd 0zd mpbird
    eqeq2d 3bitr3d 3bitrd ) ADEZCDEZBFEZUAZACGHZUBZABCIJZGHABCBCUCJZUDUEZUFJZKJ
    ZGHZABSKJZGHZABGHVLVMVQAGVLBUGECUHEVMVQLVLBVGVHVIVKUIZUJZVLCVGVHVIVKUKZULBC
    UMUNMVLBAIJZVPAIJZLZWDSAIJZLZVRVTVLWEWGWDVLWEWGLZAVPSKJZGHZVLAVPWJGVLACVOVL
    AVGVHVIVKUOZNVLCWCNZVLVNVLBCWBWCUPUQZVJVKURUSVLVPVLVPVLCVOWMWNUTZOPVAVLVGVP
    FEZSFEZWIWKQWLWOVLVBZVPSARTVCVDVLVGVIWPWFVRQWLWAWOBVPARTVLVGVIWQWHVTQWLWAWR
    BSARTVEVLVSBAGVLBVLBWAOPMVF $.

  $( If an integer is divisible by a positive integer, the product of this
     integer with another integer modulo the positive integer is 0.
     (Contributed by Alexander van der Vekens, 30-Aug-2018.) $)
  mulmoddvds $p |- ( ( N e. NN /\ A e. ZZ /\ B e. ZZ ) -> ( N || A
                  -> ( ( A x. B ) mod N ) = 0 ) ) $=
    ( cn wcel cz w3a cdvds wbr cmul co cmo cc0 wceq wa adantr syl oveq1d eqtrd
    cr crp zre id nnrp 3anim123i 3comr modmulmod eqcomd dvdsval3 3adant3 biimpa
    wb zcn mul02d adantl 0mod 3adant2 ex ) CDEZAFEZBFEZGZCAHIZABJKCLKZMNVBVCOZV
    DACLKZBJKZCLKZMVEATEZVACUAEZGZVDVHNVBVKVCUTVAUSVKUTVIVAVAUSVJAUBVAUCCUDZUEU
    FPVKVHVDABCUGUHQVEVHMBJKZCLKZMVEVGVMCLVEVFMBJVBVCVFMNZUSUTVCVOULVACAUIUJUKR
    RVBVNMNZVCUSVAVPUTUSVAOZVNMCLKZMVQVMMCLVAVMMNUSVABBUMUNUORUSVRMNZVAUSVJVSVL
    CUPQPSUQPSSUR $.

  ${
    $d j k F $.  $d j k N $.
    $( A rule for divisibility by 3 of a number written in base 10.  This is
       Metamath 100 proof #85.  (Contributed by Mario Carneiro, 14-Jul-2014.)
       (Revised by Mario Carneiro, 17-Jan-2015.)  (Revised by AV,
       8-Sep-2021.) $)
    3dvds $p |- ( ( N e. NN0 /\ F : ( 0 ... N ) --> ZZ ) ->
     ( 3 || sum_ k e. ( 0 ... N ) ( ( F ` k ) x. ( ; 1 0 ^ k ) ) <->
       3 || sum_ k e. ( 0 ... N ) ( F ` k ) ) ) $=
      ( vj wcel cc0 co cz c3 c1 csu cmin cdvds wbr wb 3z sylancr c9 ax-1cn zcnd
      cn0 cfz wf wa cv cfv cdc cexp cmul a1i fzfid ffvelrn adantll 10nn elfznn0
      nnzi adantl zexpcl zmulcld fsumzcl zsubcld cneg caddc nncni 9p1e10 eqcomi
      negsubdi2i oveq1i 9cn pncan3oi 3eqtri 3t3e9 eqtr4i cdiv cc wne 1re gtneii
      1lt10 id geoser eqeltrrd 1z zsubcl mp2an subeq0i necon3bii mpbir dvdsval2
      ltneii mp3an12i mpbird wceq negsubdi2 breqtrrd peano2zm dvdsnegb negdvdsb
      sylancl syl mpbid syl5eqbrr wi muldvds1 dvdsmultr2 mp3an2i muls1d breqtrd
      mpd fsumdvds fsumsub dvdssub2 syl31anc ) CUAEZFCUBGZHBUCZUDZIHEZXOAUEZBUF
      ZJFUGZXSUHGZUIGZAKZHEXOXTAKZHEIYDYELGZMNIYDMNIYEMNOXRXQPUJZXQXOYCAXQFCUKZ
      XQXSXOEZUDZXTYBXPYIXTHEZXNXOHXSBULUMZYJYAHEZXSUAEZYBHEZYAUNUPZYIYNXQXSCUO
      UQZYAXSURZQZUSZUTXQXOXTAYHYLUTXQIXOYCXTLGZAKYFMXQXOUUAAIYHYGYJYCXTYTYLVAY
      JIXTYBJLGZUIGZUUAMYJIUUBMNZIUUCMNZYJYNUUDYQYNIIUIGZUUBMNZUUDYNUUFJYALGZVB
      ZUUBMUUIRUUFUUIYAJLGRJVCGZJLGRJYASYAUNVDZVGYAUUJJLUUJYAVEVFVHRJVISVJVKVLV
      MYNUUHUUBMNZUUIUUBMNZYNUULUUHUUBVBZMNZYNUUHJYBLGZUUNMYNUUHUUPMNZUUPUUHVNG
      ZHEZYNFXSJLGZUBGZYADUEZUHGZDKUURHYNYADXSYAVOEYNUUKUJYAJVPYNJYAVQVSVRUJYNV
      TZWAYNUVAUVCDYNFUUTUKYNUVBUVAEZUDYMUVBUAEZUVCHEYPUVEUVFYNUVBUUTUOUQYAUVBU
      RQUTWBUUHHEZUUHFVPZYNUUPHEZUUQUUSOJHEZYMUVGWCYPJYAWDWEZUVHJYAVPJYAVQVSWJU
      UHFJYAJYASUUKWFWGWHYNUVJYOUVIWCYNYMYNYOYPUVDYRQZJYBWDQUUHUUPWIWKWLYNYBVOE
      JVOEUUNUUPWMYNYBUVLTSYBJWNWSWOYNUVGUUBHEZUULUUOOUVKYNYOUVMUVLYBWPZWTZUUHU
      UBWQQWLYNUVGUVMUULUUMOUVKUVOUUHUUBWRQXAXBXRXRYNUVMUUGUUDXCPPUVOIIUUBXDWKX
      IWTXRYJYKUVMUUDUUEXCPYLYJYOUVMYSUVNWTIXTUUBXEXFXIYJXTYBYJXTYLTZYJYBYSTXGX
      HXJXQXOYCXTAYHYJYCYTTUVPXKXHIYDYEXLXM $.

    $( Obsolete version of ~ 3dvds as of 8-Sep-2021.  (Contributed by Mario
       Carneiro, 14-Jul-2014.)  (Revised by Mario Carneiro, 17-Jan-2015.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    3dvdsOLD $p |- ( ( N e. NN0 /\ F : ( 0 ... N ) --> ZZ ) ->
     ( 3 || sum_ k e. ( 0 ... N ) ( ( F ` k ) x. ( 10 ^ k ) ) <->
       3 || sum_ k e. ( 0 ... N ) ( F ` k ) ) ) $=
      ( vj wcel cc0 co cz c3 c10 cmul csu cmin cdvds wbr wb a1i sylancr ax-1cn
      c1 cn0 cfz wf wa cv cfv cexp 3z fzfid ffvelrn adantll 10nnOLD nnzi adantl
      elfznn0 zexpcl zmulcld fsumzcl zsubcld c9 caddc nncni negsubdi2i df-10OLD
      cneg oveq1i 9cn pncan3oi 3eqtri 3t3e9 eqtr4i cdiv wne 1re 1lt10OLD gtneii
      cc id geoser eqeltrrd zsubcl mp2an ltneii subeq0i necon3bii mpbir syl3anc
      1z dvdsval2 mpbird wceq zcnd negsubdi2 sylancl breqtrrd peano2zm dvdsnegb
      syl negdvdsb mpbid syl5eqbrr wi muldvds1 dvdsmultr2 subdid mulid1d oveq2d
      mpd eqtrd breqtrd fsumdvds fsumsub dvdssub2 syl31anc ) CUAEZFCUBGZHBUCZUD
      ZIHEZXPAUEZBUFZJXTUGGZKGZALZHEXPYAALZHEIYDYEMGZNOIYDNOIYENOPXSXRUHQZXRXPY
      CAXRFCUIZXRXTXPEZUDZYAYBXQYIYAHEZXOXPHXTBUJUKZYJJHEZXTUAEZYBHEZJULUMZYIYN
      XRXTCUOUNZJXTUPZRZUQZURXRXPYAAYHYLURXRIXPYCYAMGZALYFNXRXPUUAAIYHYGYJYCYAY
      TYLUSYJIYAYBTMGZKGZUUANYJIUUBNOZIUUCNOZYJYNUUDYQYNIIKGZUUBNOZUUDYNUUFTJMG
      ZVEZUUBNUUIUTUUFUUIJTMGUTTVAGZTMGUTTJSJULVBZVCJUUJTMVDVFUTTVGSVHVIVJVKYNU
      UHUUBNOZUUIUUBNOZYNUULUUHUUBVEZNOZYNUUHTYBMGZUUNNYNUUHUUPNOZUUPUUHVLGZHEZ
      YNFXTTMGZUBGZJDUEZUGGZDLUURHYNJDXTJVQEYNUUKQJTVMYNTJVNVOVPQYNVRZVSYNUVAUV
      CDYNFUUTUIYNUVBUVAEZUDYMUVBUAEZUVCHEYPUVEUVFYNUVBUUTUOUNJUVBUPRURVTYNUUHH
      EZUUHFVMZUUPHEZUUQUUSPUVGYNTHEZYMUVGWHYPTJWAWBZQUVHYNUVHTJVMTJVNVOWCUUHFT
      JTJSUUKWDWEWFQYNUVJYOUVIWHYNYMYNYOYPUVDYRRZTYBWARUUHUUPWIWGWJYNYBVQETVQEZ
      UUNUUPWKYNYBUVLWLSYBTWMWNWOYNUVGUUBHEZUULUUOPUVKYNYOUVNUVLYBWPZWRZUUHUUBW
      QRWJYNUVGUVNUULUUMPUVKUVPUUHUUBWSRWTXAYNXSXSUVNUUGUUDXBXSYNUHQZUVQUVPIIUU
      BXCWGXHWRYJXSYKUVNUUDUUEXBXSYJUHQYLYJYOUVNYSUVOWRIYAUUBXDWGXHYJUUCYCYATKG
      ZMGUUAYJYAYBTYJYAYLWLZYJYBYSWLUVMYJSQXEYJUVRYAYCMYJYAUVSXFXGXIXJXKXRXPYCY
      AAYHYJYCYTWLUVSXLXJIYDYEXMXN $.
  $}

  ${
    3dvdsdec.a $e |- A e. NN0 $.
    3dvdsdec.b $e |- B e. NN0 $.
    $( A decimal number is divisible by three iff the sum of its two "digits"
       is divisible by three.  The term "digits" in its narrow sense is only
       correct if ` A ` and ` B ` actually are digits (i.e. nonnegative
       integers less than 10).  However, this theorem holds for arbitrary
       nonnegative integers ` A ` and ` B ` , especially if ` A ` is itself a
       decimal number, e.g. ` A = ; C D ` .  (Contributed by AV, 14-Jun-2021.)
       (Revised by AV, 8-Sep-2021.) $)
    3dvdsdec $p |- ( 3 || ; A B <-> 3 || ( A + B ) ) $=
      ( c3 cdc cdvds wbr c9 cmul co caddc c1 eqcomi oveq1i 9cn cz wcel 3z mp2an
      dfdec10 9p1e10 ax-1cn nn0cni adddiri mulid2i oveq2i 3eqtri mulcli addassi
      cc0 breq2i wa wb nn0zi zaddcl 9nn zmulcl dvdsmul1 3t3e9 3cn mulassi eqtri
      nnzi breqtrri pm3.2i dvdsadd2b mp3an bitr4i ) EABFZGHEIAJKZABLKZLKZGHZEVL
      GHZVJVMEGVJMUKFZAJKZBLKVKALKZBLKVMABUAVQVRBLVQIMLKZAJKVKMAJKZLKVRVPVSAJVS
      VPUBNOIMAPUCACUDZUEVTAVKLAWAUFUGUHOVKABIAPWAUIWABDUDUJUHULEQRZVLQRZVKQRZE
      VKGHZUMVOVNUNSAQRZBQRWCACUOZBDUOABUPTWDWEIQRWFWDIUQVDWGIAURTEEEAJKZJKZVKG
      WBWHQRZEWIGHSWBWFWJSWGEAURTEWHUSTVKEEJKZAJKWIIWKAJWKIUTNOEEAVAVAWAVBVCVEV
      FEVLVKVGVHVI $.

    $( Obsolete proof of ~ 3dvdsdec as of 8-Sep-2021.  (Contributed by AV,
       14-Jun-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    3dvdsdecOLD $p |- ( 3 || ; A B <-> 3 || ( A + B ) ) $=
      ( c3 cdvds wbr c9 cmul co caddc c10 c1 oveq1i 9cn nn0cni cz wcel 3z mp2an
      cdc dfdecOLD df-10OLD ax-1cn adddiri mulid2i oveq2i 3eqtri mulcli addassi
      breq2i wa wb nn0zi zaddcl 9nn nnzi zmulcl dvdsmul1 3t3e9 eqcomi 3cn eqtri
      mulassi breqtrri pm3.2i dvdsadd2b mp3an bitr4i ) EABUAZFGEHAIJZABKJZKJZFG
      ZEVLFGZVJVMEFVJLAIJZBKJVKAKJZBKJVMABUBVPVQBKVPHMKJZAIJVKMAIJZKJVQLVRAIUCN
      HMAOUDACPZUEVSAVKKAVTUFUGUHNVKABHAOVTUIVTBDPUJUHUKEQRZVLQRZVKQRZEVKFGZULV
      OVNUMSAQRZBQRWBACUNZBDUNABUOTWCWDHQRWEWCHUPUQWFHAURTEEEAIJZIJZVKFWAWGQRZE
      WHFGSWAWEWISWFEAURTEWGUSTVKEEIJZAIJWHHWJAIWJHUTVANEEAVBVBVTVDVCVEVFEVLVKV
      GVHVI $.

    3dvds2dec.c $e |- C e. NN0 $.
    $( A decimal number is divisible by three iff the sum of its three "digits"
       is divisible by three.  The term "digits" in its narrow sense is only
       correct if ` A ` , ` B ` and ` C ` actually are digits (i.e. nonnegative
       integers less than 10).  However, this theorem holds for arbitrary
       nonnegative integers ` A ` , ` B ` and ` C ` .  (Contributed by AV,
       14-Jun-2021.)  (Revised by AV, 1-Aug-2021.) $)
    3dvds2dec $p |- ( 3 || ; ; A B C <-> 3 || ( ( A + B ) + C ) ) $=
      ( c3 cdc cdvds c1 cmul co caddc c9 oveq1i nn0cni 3eqtri wcel cz mp2an wbr
      cc0 c2 cexp 3dec sq10e99m1 9nn0 deccl ax-1cn adddiri oveq2i 9p1e10 eqcomi
      mulid2i 9cn oveq12i cc wceq mulcli wa oveq1d mp4an addcli addassi 9t11e99
      add4 1nn0 mulassi eqtri adddii 3t3e9 3cn breq2i wb 3z nn0zi zaddcl zmulcl
      dvdsmul1 pm3.2i dvdsadd2b mp3an bitr4i ) GABHCHZIUAGGGJJHZAKLZBMLZKLZKLZA
      BMLZCMLZMLZIUAZGWKIUAZWDWLGIWDJUBHZUCUDLZAKLZWOBKLZMLZCMLNNHZAKLZAMLZNBKL
      ZBMLZMLZCMLZWLABCDEUEWSXECMWQXBWRXDMWQWTJMLZAKLXAJAKLZMLXBWPXGAKUFOWTJAWT
      NNUGUGUHPZUIADPZUJXHAXAMAXJUNUKQWRNJMLZBKLXCJBKLZMLXDWOXKBKXKWOULUMONJBUO
      UIBEPZUJXLBXCMBXMUNUKQUPOXFXAXCMLZWJMLZCMLZXNWKMLWLXAUQRZAUQRZXCUQRZBUQRZ
      XFXPURWTAXIXJUSZXJNBUOXMUSZXMXQXRUTXSXTUTUTXEXOCMXAAXCBVFVAVBXNWJCXAXCYAY
      BVCABXJXMVCCFPVDXNWIWKMXNNWFKLZXCMLZNWGKLZWIXAYCXCMXANWEKLZAKLYCWTYFAKYFW
      TVEUMONWEAUOWEJJVGVGUHZPZXJVHVIOYEYDNWFBUOWEAYHXJUSZXMVJUMYEGGKLZWGKLWINY
      JWGKYJNVKUMOGGWGVLVLWFBYIXMVCVHVIQOQQVMGSRZWKSRZWISRZGWIIUAZUTWNWMVNVOWJS
      RZCSRYLASRZBSRZYOADVPZBEVPZABVQTCFVPWJCVQTYMYNYKWHSRZYMVOYKWGSRZYTVOWFSRZ
      YQUUAWESRYPUUBWEYGVPYRWEAVRTYSWFBVQTGWGVRTZGWHVRTYKYTYNVOUUCGWHVSTVTGWKWI
      WAWBWC $.

    $( Old version of ~ 3dvds2dec .  Obsolete as of 1-Aug-2021.  (Contributed
       by AV, 14-Jun-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    3dvds2decOLD $p |- ( 3 || ; ; A B C <-> 3 || ( ( A + B ) + C ) ) $=
      ( c3 cdc cdvds c1 cmul co caddc c9 oveq1i nn0cni 3eqtri wcel cz mp2an wbr
      c10 c2 cexp 3decOLD sq10e99m1OLD 9nn0 deccl ax-1cn adddiri mulid2i oveq2i
      df-10OLD 9cn oveq12i cc wceq mulcli wa add4 oveq1d addcli addassi 9t11e99
      mp4an eqcomi mulassi eqtri adddii 3t3e9 3cn breq2i wb nn0zi zaddcl zmulcl
      1nn0 3z dvdsmul1 pm3.2i dvdsadd2b mp3an bitr4i ) GABHCHZIUAGGGJJHZAKLZBML
      ZKLZKLZABMLZCMLZMLZIUAZGWKIUAZWDWLGIWDUBUCUDLZAKLZUBBKLZMLZCMLNNHZAKLZAML
      ZNBKLZBMLZMLZCMLZWLABCDEUEWRXDCMWPXAWQXCMWPWSJMLZAKLWTJAKLZMLXAWOXFAKUFOW
      SJAWSNNUGUGUHPZUIADPZUJXGAWTMAXIUKULQWQNJMLZBKLXBJBKLZMLXCUBXJBKUMONJBUNU
      IBEPZUJXKBXBMBXLUKULQUOOXEWTXBMLZWJMLZCMLZXMWKMLWLWTUPRZAUPRZXBUPRZBUPRZX
      EXOUQWSAXHXIURZXINBUNXLURZXLXPXQUSXRXSUSUSXDXNCMWTAXBBUTVAVEXMWJCWTXBXTYA
      VBABXIXLVBCFPVCXMWIWKMXMNWFKLZXBMLZNWGKLZWIWTYBXBMWTNWEKLZAKLYBWSYEAKYEWS
      VDVFONWEAUNWEJJVQVQUHZPZXIVGVHOYDYCNWFBUNWEAYGXIURZXLVIVFYDGGKLZWGKLWINYI
      WGKYINVJVFOGGWGVKVKWFBYHXLVBVGVHQOQQVLGSRZWKSRZWISRZGWIIUAZUSWNWMVMVRWJSR
      ZCSRYKASRZBSRZYNADVNZBEVNZABVOTCFVNWJCVOTYLYMYJWHSRZYLVRYJWGSRZYSVRWFSRZY
      PYTWESRYOUUAWEYFVNYQWEAVPTYRWFBVOTGWGVPTZGWHVPTYJYSYMVRUUBGWHVSTVTGWKWIWA
      WBWC $.
  $}

  ${
    $d A k $.  $d F k $.  $d ph k x $.
    fprodfvdvdsd.a $e |- ( ph -> A e. Fin ) $.
    fprodfvdvdsd.b $e |- ( ph -> A C_ B ) $.
    fprodfvdvdsd.f $e |- ( ph -> F : B --> ZZ ) $.
    $( A finite product of integers is divisible by any of its factors being
       function values.  (Contributed by AV, 1-Aug-2021.) $)
    fprodfvdvdsd $p |- ( ph
                         -> A. x e. A ( F ` x ) || prod_ k e. A ( F ` k ) ) $=
      ( cv cprod cdvds cmul wcel wa cz adantr sselda ffvelrnd wceq cfv wbr wral
      csn cdif co cfn diffi syl wf ssdifssd adantlr fprodzcl dvdsmul2 ralrimiva
      syl2anc wn cin neldifsnd disjsn sylibr cun difsnid eqcomd adantl wss zcnd
      c0 fprodsplit cc simpr fveq2 prodsn oveq2d eqtrd breq2d ralbidva mpbird )
      ABJZFUAZCEJZFUAZEKZLUBZBCUCVTCVSUDZUEZWBEKZVTMUFZLUBZBCUCAWIBCAVSCNZOZWGP
      NVTPNWIWKWFWBEWKCUGNZWFUGNAWLWJGQZCWEUHUIAWAWFNZWBPNWJAWNODPWAFADPFUJZWNI
      QAWFDWAACDWEHUKRSULUMWKDPVSFAWOWJIQZACDVSHRSZWGVTUNUPUOAWDWIBCWKWCWHVTLWK
      WCWGWEWBEKZMUFWHWKWFWEWBCEWKVSWFNUQWFWEURVHTWKVSCUSWFVSUTVAWJCWFWEVBZTAWJ
      WSCCVSVCVDVEWMWKWACNZOZWBXADPWAFWKWOWTWPQWKCDWAACDVFWJHQRSVGVIWKWRVTWGMWK
      WJVTVJNWRVTTAWJVKWKVTWQVGWBVTEVSCWAVSFVLVMUPVNVOVPVQVR $.
  $}

  ${
    $d A k $.  $d ph k x $.
    fproddvdsd.f $e |- ( ph -> A e. Fin ) $.
    fproddvdsd.s $e |- ( ph -> A C_ ZZ ) $.
    $( A finite product of integers is divisible by any of its factors.
       (Contributed by AV, 14-Aug-2020.)  (Proof shortened by AV,
       2-Aug-2021.) $)
    fproddvdsd $p |- ( ph -> A. x e. A x || prod_ k e. A k ) $=
      ( cv cprod cdvds wbr wral cid cz cfv wcel wa wceq fvresi syl eqcomd wf wi
      cres wf1o f1oi f1of mp1i fprodfvdvdsd sselda adantr imp prodeq2dv breq12d
      sseld ralbidva mpbird ) ABGZCDGZDHZIJZBCKUQLMUCZNZCURVANZDHZIJZBCKABCMDVA
      EFMMVAUDMMVAUAAMUEMMVAUFUGUHAUTVEBCAUQCOZPZUQVBUSVDIVGVBUQVGUQMOVBUQQACMU
      QFUIMUQRSTVGCURVCDVGURCOZPZVCURVIURMOZVCURQVGVHVJAVHVJUBVFACMURFUNUJUKMUR
      RSTULUMUOUP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Even and odd numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The set ` ZZ ` of integers can be partitioned into the set of even numbers and
the set of odd numbers, see ~ zeo4 .  Instead of defining new class variables
` Even ` and ` Odd ` to represent these sets, we use the idiom ` 2 || N ` to
say that "` N ` is _even_" (which implies ` N e. ZZ `, see ~ evenelz ) and
` -. 2 || N  ` to say that "` N ` is _odd_" (under the assumption that
` N e. ZZ `).  The previously proven theorems about even and odd numbers, like
~ zneo , ~ zeo , ~ zeo2 , etc. use different representations, which are
equivalent with the representations using the divides relation, see ~ evend2
and ~ oddp1d2 .  The corresponding theorems are ~ zeneo , ~ zeo3 and ~ zeo4 .
$)

  $( An even number is an integer.  This follows immediately from the reverse
     closure of the divides relation, see ~ dvdszrcl .  (Contributed by AV,
     22-Jun-2021.) $)
  evenelz $p |- ( 2 || N -> N e. ZZ ) $=
    ( c2 cdvds wbr cz wcel dvdszrcl simprd ) BACDBEFAEFBAGH $.

  $( An integer is even or odd.  With this representation of even and odd
     integers, this variant of ~ zeo follows immediately from the law of
     excluded middle, see ~ exmidd .  (Contributed by AV, 17-Jun-2021.) $)
  zeo3 $p |- ( N e. ZZ -> ( 2 || N \/ -. 2 || N ) ) $=
    ( cz wcel c2 cdvds wbr exmidd ) ABCDAEFG $.

  $( An integer is even or odd but not both.  With this representation of even
     and odd integers, this variant of ~ zeo2 follows immediately from the
     principle of double negation, see ~ notnotb .  (Contributed by AV,
     17-Jun-2021.) $)
  zeo4 $p |- ( N e. ZZ -> ( 2 || N <-> -. -. 2 || N ) ) $=
    ( c2 cdvds wbr wn wb cz wcel notnotb a1i ) BACDZKEEFAGHKIJ $.

  $( No even integer equals an odd integer (i.e. no integer can be both even
     and odd).  Exercise 10(a) of [Apostol] p. 28.  This variant of ~ zneo
     follows immediately from the fact that a contradiction implies anything,
     see ~ pm2.21i .  (Contributed by AV, 22-Jun-2021.) $)
  zeneo $p |- ( ( A e. ZZ /\ B e. ZZ )
                -> ( ( 2 || A /\ -. 2 || B ) -> A =/= B ) ) $=
    ( c2 cdvds wbr wn wa wne wi cz wcel nbrne1 a1i ) CADECBDEFGABHIAJKBJKGCABDL
    M $.

  ${
    $d j k $.  $d j m $.  $d j n $.  $d j x $.  $d j y $.  $d k m $.  $d k y $.
    $d m n $.  $d m x $.  $d m y $.  $d N j $.  $d N k $.  $d N n $.  $d n x $.
    $d n y $.  $d k x $.
    $( Lemma for ~ odd2np1 .  (Contributed by Scott Fenton, 3-Apr-2014.)
       (Revised by Mario Carneiro, 19-Apr-2014.) $)
    odd2np1lem $p |- ( N e. NN0 -> (
      E. n e. ZZ ( ( 2 x. n ) + 1 ) = N \/ E. k e. ZZ ( k x. 2 ) = N ) ) $=
      ( vy c2 cv cmul co c1 caddc wceq cz wrex wo cc0 eqeq2 rexbidv eqeq1d wcel
      2cn vj vx vm orbi12d weq oveq2 oveq1d syl6bb oveq1 0z mul02i rspcev mp2an
      cbvrexv olci cn0 orcom wa cc zcn mulcom sylancl adantl wi mpan2 syl5ibcom
      eqid eqeq2d sylbid rexlimdva peano2z mulid2i oveq12d oveq2i syl6eq ax-1cn
      a1i df-2 adddir mp3an23 mpan addass 3eqtr4d syl2anc orim12d syl5bi nn0ind
      mulcl syl ) EBFZGHZIJHZUAFZKZBLMZAFZEGHZWMKZALMZNWLOKZBLMZWQOKZALMZNEUBFZ
      GHZIJHZUCFZKZUBLMZDFZEGHZXGKZDLMZNZWLXGIJHZKZBLMZWQXOKZALMZNZWLCKZBLMZWQC
      KZALMZNUAUCCWMOKZWOXAWSXCYEWNWTBLWMOWLPQYEWRXBALWMOWQPQUDUAUCUEZWOXIWSXMY
      FWOWLXGKZBLMXIYFWNYGBLWMXGWLPQYGXHBUBLBUBUEZWLXFXGYHWKXEIJWJXDEGUFUGRUNUH
      YFWSWQXGKZALMXMYFWRYIALWMXGWQPQYIXLADLADUEWQXKXGWPXJEGUIRUNUHUDWMXOKZWOXQ
      WSXSYJWNXPBLWMXOWLPQYJWRXRALWMXOWQPQUDWMCKZWOYBWSYDYKWNYABLWMCWLPQYKWRYCA
      LWMCWQPQUDXCXAOLSOEGHZOKZXCUJETUKXBYMAOLWPOKWQYLOWPOEGUIRULUMUOXNXMXINXGU
      PSZXTXIXMUQYNXMXQXIXSYNXLXQDLYNXJLSZURZXLEXJGHZXGKZXQYPXKYQXGYOXKYQKZYNYO
      XJUSSEUSSZYSXJUTTXJEVAVBVCRYOYRXQVDYNYOWLYQIJHZKZBLMZYRXQYOUUAUUAKZUUCUUA
      VGUUBUUDBXJLBDUEZWLUUAUUAUUEWKYQIJWJXJEGUFUGRULVEYRUUBXPBLYRUUAXOWLYQXGIJ
      UIVHQVFVCVIVJYNXHXSUBLYNXDLSZURZWQXFIJHZKZALMZXHXSUUGXDIJHZLSZUUKEGHZUUHK
      ZUUJUUFUULYNXDVKVCUUFUUNYNUUFXDUSSZUUNXDUTUUOXDEGHZIEGHZJHZXEIIJHZJHZUUMU
      UHUUOUURXEEJHUUTUUOUUPXEUUQEJUUOYTUUPXEKTXDEVAVEUUQEKUUOETVLVQVMEUUSXEJVR
      VNVOUUOIUSSZYTUUMUURKVPTXDIEVSVTUUOXEUSSZUUHUUTKZYTUUOUVBTEXDWHWAUVBUVAUV
      AUVCVPVPXEIIWBVTWIWCWIVCUUIUUNAUUKLWPUUKKWQUUMUUHWPUUKEGUIRULWDXHUUIXRALX
      HUUHXOWQXFXGIJUIVHQVFVJWEWFWG $.
  $}

  ${
    $d k n x y N $.
    $( An integer is odd iff it is one plus twice another integer.
       (Contributed by Scott Fenton, 3-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    odd2np1 $p |- ( N e. ZZ ->
     ( -. 2 || N <-> E. n e. ZZ ( ( 2 x. n ) + 1 ) = N ) ) $=
      ( vk cz wcel c2 cmul co wceq wrex c1 caddc wb wa cneg syl 2cn cmin ax-1cn
      cc vx vy cdvds wbr wn cv 2z divides notbid wo cr elznn0 odd2np1lem adantl
      mpan cn0 peano2z znegcl ad2antlr zcn mulcl peano2cn simpl negcon2 syl2anc
      recnd eqcom sylancr mulcli mp3an23 2t1e2 oveq1i 2m1e1 eqtri syl6req adddi
      addsubass oveq2i mp3an13 oveq1d eqtr4d negeqd zcnd mulneg2 sylancl eqeq1d
      negsubdi syl5bb bitrd biimpa oveq2 rspcev rexlimdva recn syl2anr syl6rbbr
      ex mulneg1 oveq1 orim12d syl5 imp jaodan sylbi halfnz reeanv eqtr3 mulcom
      cdiv eqeq2d subadd mp3an3 subcl cc0 wne 2cnne0 divmul ancoms subdi mp3an1
      w3a syl2an wi zsubcl syl5ibcom sylbird sylbid rexlimivv sylbir mto pm5.17
      eleq1 bicom bitri sylanblc ) BDEZFBUCUDZUECUFZFGHZBIZCDJZUEZFAUFZGHZKLHZB
      IZADJZYPYQUUAFDEYPYQUUAMUGCFBUHUOUIYPUUGUUAUJZUUGUUANZUEZUUBUUGMZYPBUKEZB
      UPEZBOZUPEZUJNUUHBULUULUUMUUHUUOUUMUUHUULCABUMUNUULUUOUUHUUOFUAUFZGHZKLHZ
      UUNIZUADJZUBUFZFGHZUUNIZUBDJZUJUULUUHUBUAUUNUMUULUUTUUGUVDUUAUULUUSUUGUAD
      UULUUPDEZNZUUSUUGUVFUUSNUUPKLHZOZDEZFUVHGHZKLHZBIZUUGUVEUVIUULUUSUVEUVGDE
      UVIUUPUQZUVGURPUSUVFUUSUVLUVFUUSBUUROZIZUVLUVFUURTEZBTEZUUSUVOMUVEUVPUULU
      VEUUPTEZUVPUUPUTZUVRUUQTEZUVPFTEZUVRUVTQFUUPVAZUOUUQVBPPUNUVFBUULUVEVCVFU
      URBVDVEUVOUVNBIUVFUVLBUVNVGUVFUVNUVKBUVEUVNUVKIUULUVEUVNFUVGGHZKRHZOZUVKU
      VEUURUWDUVEUURUUQFKGHZLHZKRHZUWDUVEUWHUUQUWFKRHZLHZUURUVEUVTUWHUWJIZUVEUW
      AUVRUVTQUVSUWBVHUVTUWFTEKTEZUWKFKQSVISUUQUWFKVQVJPUWIKUUQLUWIFKRHKUWFFKRV
      KVLVMVNVRVOUVEUWCUWGKRUVEUVRUWCUWGIZUVSUWAUVRUWLUWMQSFUUPKVPVSPVTWAWBUVEU
      VKUWCOZKLHZUWEUVEUVJUWNKLUVEUWAUVGTEZUVJUWNIQUVEUVGUVMWCZFUVGWDVHVTUVEUWC
      TEZUWLUWEUWOIUVEUWAUWPUWRQUWQFUVGVAVHSUWCKWGWEWAWAUNWFWHWIWJUUFUVLAUVHDUU
      CUVHIZUUEUVKBUWSUUDUVJKLUUCUVHFGWKVTWFWLVEWQWMUULUVCUUAUBDUULUVADEZNZUVCU
      UAUXAUVCNUVAOZDEZUXBFGHZBIZUUAUWTUXCUULUVCUVAURUSUXAUVCUXEUXAUVCBUVBOZIZU
      XEUWTUVBTEZUVQUVCUXGMUULUWTUVATEZUWAUXHUVAUTZQUVAFVAWEBWNUVBBVDWOUXAUXEUX
      FBIUXGUXAUXDUXFBUWTUXDUXFIZUULUWTUXIUWAUXKUXJQUVAFWRWEUNWFBUXFVGWPWIWJYTU
      XECUXBDYRUXBIYSUXDBYRUXBFGWSWFWLVEWQWMWTXAXBXCXDUUIKFXIHZDEZXEUUIUUFYTNZC
      DJADJUXMUUFYTACDDXFUXNUXMACDDUXNUUEYSIZUUCDEZYRDEZNZUXMUUEYSBXGUXRUXOUUEF
      YRGHZIZUXMUXQUXOUXTMUXPUXQYSUXSUUEUXQYRTEZUWAYSUXSIYRUTZQYRFXHWEXJUNUXRUX
      TUXSUUDRHZKIZUXMUXQUXSTEZUUDTEZUYDUXTMZUXPUXQUWAUYAUYEQUYBFYRVAVHUXPUWAUU
      CTEZUYFQUUCUTZFUUCVAVHUYEUYFUWLUYGSUXSUUDKXKXLWOUXRUYDYRUUCRHZUXLIZUXMUXP
      UYHUYAUYKUYDMUXQUYIUYBUYHUYANZUYKFUYJGHZKIZUYDUYAUYHUYKUYNMZUYAUYHNUYJTEZ
      UYOYRUUCXMUWLUYPUWAFXNXONZUYOSXPUYKUXLUYJIUWLUYPUYQYAUYNUYJUXLVGKUYJFXQWH
      VSPXRUYLUYMUYCKUYAUYHUYMUYCIZUWAUYAUYHUYRQFYRUUCXSXTXRWFWIYBUXQUXPUYKUXMY
      CUXQUXPNUYJDEUYKUXMYRUUCYDUYJUXLDYLYEXRYFYFYGXAYHYIYJUUHUUJNUUGUUBMUUKUUG
      UUAYKUUGUUBYMYNYOWI $.

    $( An integer is even iff it is twice another integer.  (Contributed by AV,
       25-Jun-2020.) $)
    even2n $p |- ( 2 || N <-> E. n e. ZZ ( 2 x. n ) = N ) $=
      ( c2 cdvds wbr cz wcel cv cmul co wceq wrex evenelz wa a1i zmulcld adantr
      2z id wb eleq1 adantl mpbid rexlimiva divides 2cnd mulcomd eqeq1d rexbiia
      zcn syl6bb mpan pm5.21nii ) CBDEZBFGZCAHZIJZBKZAFLZBMURUOAFUPFGZURNUQFGZU
      OUTVAURUTCUPCFGZUTROUTSPQURVAUOTUTUQBFUAUBUCUDVBUOUNUSTRVBUONUNUPCIJZBKZA
      FLUSACBUEVDURAFUTVCUQBUTUPCUPUJUTUFUGUHUIUKULUM $.

    $( An integer is odd iff its predecessor is even.  (Contributed by Mario
       Carneiro, 5-Sep-2016.) $)
    oddm1even $p |- ( N e. ZZ -> ( -. 2 || N <-> 2 || ( N - 1 ) ) ) $=
      ( vn cz wcel c2 cv cmul co c1 caddc wceq wrex cmin cdvds wn wa simpl zcnd
      wbr 1cnd 2cnd simpr mulcld subadd2d mulcomd eqeq1d syl5bb bitr3d rexbidva
      eqcom odd2np1 wb 2z peano2zm divides sylancr 3bitr4d ) ACDZEBFZGHZIJHAKZB
      CLUSEGHZAIMHZKZBCLZEANSOEVCNSZURVAVDBCURUSCDZPZVCUTKZVAVDVHAIUTVHAURVGQRV
      HTVHEUSVHUAZVHUSURVGUBRZUCUDVIUTVCKVHVDVCUTUJVHUTVBVCVHEUSVJVKUEUFUGUHUIB
      AUKURECDVCCDVFVEULUMAUNBEVCUOUPUQ $.

    $( An integer is odd iff its successor is even.  (Contributed by Mario
       Carneiro, 5-Sep-2016.) $)
    oddp1even $p |- ( N e. ZZ -> ( -. 2 || N <-> 2 || ( N + 1 ) ) ) $=
      ( cz wcel c2 cdvds wn c1 cmin co caddc oddm1even peano2zm dvdsadd sylancr
      wbr wb 2z 2cnd zcn 1cnd addsub12d 2m1e1 oveq2i syl6eq breq2d 3bitrd ) ABC
      ZDAEOFDAGHIZEOZDDUHJIZEOZDAGJIZEOAKUGDBCUHBCUIUKPQALDUHMNUGUJULDEUGUJADGH
      IZJIULUGDAGUGRASUGTUAUMGAJUBUCUDUEUF $.

    $d n A $.
    $( The exponential of the negative of a number, when the exponent is odd.
       (Contributed by Mario Carneiro, 25-Apr-2015.) $)
    oexpneg $p |- ( ( A e. CC /\ N e. NN /\ -. 2 || N ) ->
      ( -u A ^ N ) = -u ( A ^ N ) ) $=
      ( vn wcel c2 wbr cmul co c1 wceq cneg cz syl wa cn0 oveq1d cc0 a1i eqtr3d
      cexp cc cn cdvds wn w3a caddc wrex nnz odd2np1 biimpa 3adant1 simpl1 cmin
      cv wb simprr simpl2 nncnd 1cnd simprl zmulcl sylancr zcnd subadd2d mpbird
      2z nnm1nn0 eqeltrrd expcld mulneg2d sqneg negcld cle cr clt 2re zred 2pos
      nn0ge0d prodge0 syl22anc elnn0z 2nn0 expmuld 3eqtr4d expp1d oveq2d negeqd
      sylanbrc rexlimddv ) AUADZBUBDZEBUCFUDZUEZECUNZGHZIUFHZBJZAKZBTHZABTHZKZJ
      CLWLWMWRCLUGZWKWLWMXCWLBLDWMXCUOBUHCBUIMUJUKWNWOLDZWRNZNZAWPTHZAGHZKZWTXB
      XFXGWSGHZXIWTXFXGAXFAWPWKWLWMXEULZXFBIUMHZWPOXFXLWPJWRWNXDWRUPZXFBIWPXFBW
      KWLWMXEUQZURXFUSXFWPXFELDXDWPLDVFWNXDWRUTZEWOVAVBVCVDVEXFWLXLODXNBVGMVHZV
      IXKVJXFWSWPTHZWSGHZXJWTXFXQXGWSGXFWSETHZWOTHAETHZWOTHXQXGXFXSXTWOTXFWKXSX
      TJXKAVKMPXFWSEWOXFAXKVLZXFXDQWOVMFZWOODXOXFEVNDZWOVNDQEVOFZQWPVMFYBYCXFVP
      RXFWOXOVQYDXFVRRXFWPXPVSEWOVTWAWOWBWIZEODXFWCRZWDXFAEWOXKYEYFWDWEPXFWSWQT
      HXRWTXFWSWPYAXPWFXFWQBWSTXMWGSSSXFXHXAXFAWQTHXHXAXFAWPXKXPWFXFWQBATXMWGSW
      HSWJ $.
  $}

  $( An integer is 0 modulo 2 iff it is even (i.e. divisible by 2), see example
     2 in [ApostolNT] p. 107.  (Contributed by AV, 21-Jul-2021.) $)
  mod2eq0even $p |- ( N e. ZZ -> ( ( N mod 2 ) = 0 <-> 2 || N ) ) $=
    ( cz wcel c2 cdvds wbr cmo co cc0 wceq cn wb 2nn dvdsval3 mpan bicomd ) ABC
    ZDAEFZADGHIJZDKCQRSLMDANOP $.

  ${
    $d N n $.
    $( An integer is 1 modulo 2 iff it is odd (i.e. not divisible by 2), see
       example 3 in [ApostolNT] p. 107.  (Contributed by AV, 24-May-2020.)
       (Proof shortened by AV, 5-Jul-2020.) $)
    mod2eq1n2dvds $p |- ( N e. ZZ -> ( ( N mod 2 ) = 1 <-> -. 2 || N ) ) $=
      ( vn cz wcel c2 cmo co c1 wceq cmul caddc cdiv wa cc0 cr 2rp oveq1d eqtrd
      syl a1i cv wrex cdvds wbr wn wo wi zeo crp zre mod0 sylancl biimpar eqeq1
      wb wne 0ne1 eqneqall syl6bi expcom cmin peano2zm cc xp1d2m1eqxm1d2 eleq1d
      mpi zcn biimpd mpan9 oveq2 adantl zcnd 2cnd 2ne0 divcan2d npcan1 ad2antlr
      rspcedeq1vd ex jaoi mpcom oveq1 eqcoms mulcomd mulmod0 mpan2 0p1e1 syl6eq
      a1d 2z id zmulcld zred 1red modaddmod syl3anc clt 2re 1lt2 pm3.2i 3eqtr3d
      1mod mp1i sylan9eqr rexlimdva impbid odd2np1 bitr4d ) ACDZAEFGZHIZEBUAZJG
      ZHKGZAIZBCUBZEAUCUDUEXIXKXPAELGCDZAHKGELGZCDZUFXIXKXPUGZAUHXQXIXTUGXSXIXQ
      XTXIXQMXJNIZXTXIYAXQXIAODEUIDZYAXQUOAUJPAEUKULUMYAXKNHIZXPXJNHUNYCNHUPXPU
      QXPNHURVFUSSUTXSXIXTXSXIMZXPXKYDBAHVAGZELGZCXNAXSXRHVAGZCDZXIYFCDZXRVBXIY
      HYIXIYGYFCXIAVCDZYGYFIAVGZAVDSVEVHVIYDXLYFIZMZXNEYFJGZHKGZAYMXMYNHKYLXMYN
      IYDXLYFEJVJVKQXIYOAIXSYLXIYOYEHKGZAXIYNYEHKXIYEEXIYEAVBVLXIVMENUPXIVNTVOQ
      XIYJYPAIYKAVPSRVQRVRWIVSVTWAXIXOXKBCXIXLCDZMZXOXKXOYRXJXNEFGZHXJYSIAXNAXN
      EFWBWCYQYSHIXIYQXMEFGZHKGZEFGZHEFGZYSHYQUUAHEFYQUUANHKGHYQYTNHKYQYTXLEJGZ
      EFGZNYQXMUUDEFYQEXLYQVMXLVGWDQYQYBUUENIPXLEWEWFRQWGWHQYQXMODHODYBUUBYSIYQ
      XMYQEXLECDYQWJTYQWKWLWMYQWNYBYQPTXMHEWOWPEODZHEWQUDZMUUCHIYQUUFUUGWRWSWTE
      XBXCXAVKXDVSXEXFBAXGXH $.
  $}

  ${
    $d N n $.
    $( A nonnegative integer is odd iff it is one plus twice another
       nonnegative integer.  (Contributed by AV, 19-Jun-2021.) $)
    oddnn02np1 $p |- ( N e. NN0 -> ( -. 2 || N
                                  <-> E. n e. NN0 ( ( 2 x. n ) + 1 ) = N ) ) $=
      ( cn0 wcel cv c2 cmul co c1 caddc wceq wa cz wrex wbr wi cc0 cle elnn0z
      wb cdvds wn 2tnp1ge0ge0 biimpd imdistani expcom syl6ibr simplbiim syl6bir
      eleq1 com13 impcom pm4.71rd bicomd rexbidva wss nn0ssz rexss mp1i odd2np1
      nn0z syl 3bitr4rd ) BCDZAEZCDZFVEGHIJHZBKZLZAMNZVHAMNZVHACNZFBUAOUBZVDVIV
      HAMVDVEMDZLZVHVIVOVHVFVNVDVHVFPVHVDVNVFVHVDVGCDZVNVFPZVGBCUJVPVGMDQVGROZV
      QVGSVRVNVNQVEROZLZVFVNVRVTVNVRVSVNVRVSVEUCUDUEUFVESUGUHUIUKULUMUNUOCMUPVL
      VJTVDUQVHACMURUSVDBMDVMVKTBVAABUTVBVC $.

    $( An integer greater than one is odd iff it is one plus twice a positive
       integer.  (Contributed by AV, 16-Aug-2021.) $)
    oddge22np1 $p |- ( N e. ( ZZ>= ` 2 ) -> ( -. 2 || N
                                   <-> E. n e. NN ( ( 2 x. n ) + 1 ) = N ) ) $=
      ( c2 wcel cn co c1 wa cn0 wrex wbr wi cz cc0 clt cle cr 2re a1i wb cuz cv
      cfv cmul caddc wceq cdvds eleq1 nn0z adantl w3a eluz2 cmin 1red nn0mulcld
      wn 2nn0 id nn0red lesubaddd 2m1e1 breq1i cdiv nn0re 2pos ledivmul syl3anc
      pm3.2i halfgt0 0red halfre ltletr mpani sylbird syl5bi com12 3ad2ant3 imp
      sylbi elnnz sylanbrc ex syl6bir com13 impcom pm4.71rd bicomd rexbidva wss
      nnssnn0 rexss mp1i eluzge2nn0 oddnn02np1 syl 3bitr4rd ) BCUAUCZDZAUBZEDZC
      WSUDFZGUEFZBUFZHZAIJZXCAIJZXCAEJZCBUGKUPZWRXDXCAIWRWSIDZHZXCXDXJXCWTXIWRX
      CWTLXCWRXIWTXCWRXBWQDZXIWTLXBBWQUHXKXIWTXKXIHWSMDZNWSOKZWTXIXLXKWSUIUJXKX
      IXMXKCMDZXBMDZCXBPKZUKXIXMLZCXBULXPXNXQXOXIXPXMXIXPCGUMFZXAPKZXMXICGXACQD
      ZXIRSXIUNZXIXAXICWSCIDXIUQSXIURUOUSUTXSGXAPKZXIXMXRGXAPVAVBXIYBGCVCFZWSPK
      ZXMXIGQDWSQDZXTNCOKZHZYDYBTYAWSVDZYGXIXTYFRVEVHSGWSCVFVGXINYCOKZYDXMVIXIN
      QDYCQDZYEYIYDHXMLXIVJYJXIVKSYHNYCWSVLVGVMVNVOVNVPVQVSVRWSVTWAWBWCWDWEWFWG
      WHEIWIXGXETWRWJXCAEIWKWLWRBIDXHXFTBWMABWNWOWP $.

    $( A nonnegative integer is even iff it is twice another nonnegative
       integer.  (Contributed by AV, 12-Aug-2021.) $)
    evennn02n $p |- ( N e. NN0
                      -> ( 2 || N <-> E. n e. NN0 ( 2 x. n ) = N ) ) $=
      ( cn0 wcel cv c2 cmul co wceq wa cz wrex cdvds wbr wi cc0 cle cr a1i wb
      eleq1 simpr clt 2re zre adantl 2pos nn0ge0 adantr prodge0 syl22anc elnn0z
      sylanbrc ex syl6bir com13 impcom pm4.71rd bicomd rexbidva wss nn0ssz mp1i
      rexss even2n 3bitr4rd ) BCDZAEZCDZFVHGHZBIZJZAKLZVKAKLZVKACLZFBMNZVGVLVKA
      KVGVHKDZJZVKVLVRVKVIVQVGVKVIOVKVGVQVIVKVGVJCDZVQVIOVJBCUAVSVQVIVSVQJZVQPV
      HQNZVIVSVQUBVTFRDZVHRDZPFUCNZPVJQNZWAWBVTUDSVQWCVSVHUEUFWDVTUGSVSWEVQVJUH
      UIFVHUJUKVHULUMUNUOUPUQURUSUTCKVAVOVMTVGVBVKACKVDVCVPVNTVGABVESVF $.

    $( A positive integer is even iff it is twice another positive integer.
       (Contributed by AV, 12-Aug-2021.) $)
    evennn2n $p |- ( N e. NN -> ( 2 || N <-> E. n e. NN ( 2 x. n ) = N ) ) $=
      ( cn wcel cv c2 cmul co wceq wa cz wrex cdvds wbr wi cc0 clt cr a1i wb ex
      eleq1 simpr cle 2re zre adantl 0le2 nngt0 prodgt0 syl22anc elnnz sylanbrc
      adantr syl6bir com13 impcom pm4.71rd bicomd rexbidva wss nnssz rexss mp1i
      even2n 3bitr4rd ) BCDZAEZCDZFVHGHZBIZJZAKLZVKAKLZVKACLZFBMNZVGVLVKAKVGVHK
      DZJZVKVLVRVKVIVQVGVKVIOVKVGVQVIVKVGVJCDZVQVIOVJBCUBVSVQVIVSVQJZVQPVHQNZVI
      VSVQUCVTFRDZVHRDZPFUDNZPVJQNZWAWBVTUESVQWCVSVHUFUGWDVTUHSVSWEVQVJUIUNFVHU
      JUKVHULUMUAUOUPUQURUSUTCKVAVOVMTVGVBVKACKVCVDVPVNTVGABVESVF $.
  $}

  ${
    $d A k $.
    $( A number which is twice an integer increased by 1 is odd.  (Contributed
       by AV, 16-Jul-2021.) $)
    2tp1odd $p |- ( ( A e. ZZ /\ B = ( ( 2 x. A ) + 1 ) ) -> -. 2 || B ) $=
      ( vk cz wcel c2 cmul co c1 caddc wceq wa cdvds wbr wn cv wrex id adantl
      wb oveq2 oveq1d eqeq1d eqidd rspcedvd 2z a1i zmulcld peano2zd odd2np1 syl
      mpbird adantr breq2 mtbird ) ADEZBFAGHZIJHZKZLFBMNZFURMNZUPVAOZUSUPVBFCPZ
      GHZIJHZURKZCDQZUPVFURURKZCADUPRZVCAKZVFVHTUPVJVEURURVJVDUQIJVCAFGUAUBUCSU
      PURUDUEUPURDEVBVGTUPUQUPFAFDEUPUFUGVIUHUICURUJUKULUMUSUTVATUPBURFMUNSUO
      $.
  $}

  $( An integer multiplied with its successor divided by 2 yields an integer,
     i.e. an integer multiplied with its successor is even.  (Contributed by
     AV, 19-Jul-2021.) $)
  mulsucdiv2z $p |- ( N e. ZZ -> ( ( N x. ( N + 1 ) ) / 2 ) e. ZZ ) $=
    ( c2 cdiv co cz wcel c1 caddc wo cmul wa zmulcl wb cc syl3anc eleq1d adantl
    wceq mpbird ex zeo peano2z sylan2 cc0 wne zcn zcnd 2cnne0 a1i ancoms divass
    wi div23 jaoi mpcom ) ABCDZEFZAGHDZBCDZEFZIAEFZAURJDBCDZEFZAUAUQVAVCULUTUQV
    AVCUQVAKVCUPURJDZEFZVAUQUREFVEAUBZUPURLUCVAVCVEMUQVAVBVDEVAANFZURNFZBNFBUDU
    EKZVBVDRAUFZVAURVFUGZVIVAUHUIZAURBUMOPQSTUTVAVCUTVAKVCAUSJDZEFZVAUTVNAUSLUJ
    VAVCVNMUTVAVBVMEVAVGVHVIVBVMRVJVKVLAURBUKOPQSTUNUO $.

  ${
    $d N k $.
    $( A squared odd number minus 1 divided by 8 is an integer.  (Contributed
       by AV, 19-Jul-2021.) $)
    sqoddm1div8z $p |- ( ( N e. ZZ /\ -. 2 || N )
                         -> ( ( ( N ^ 2 ) - 1 ) / 8 ) e. ZZ ) $=
      ( vk cz wcel c2 cdvds wbr wn wa cv cmul co caddc wceq wrex cexp cmin cdiv
      c1 c8 odd2np1 biimpa eqcom sqoddm1div8 adantll mulsucdiv2z eqeltrd syl5bi
      ad2antlr ex rexlimdva mpd ) ACDZEAFGHZIZEBJZKLSMLZANZBCOZAEPLSQLTRLZCDZUM
      UNUSBAUAUBUOURVABCURAUQNZUOUPCDZIZVAUQAUCVDVBVAVDVBIUTUPUPSMLKLERLZCVCVBU
      TVENUOAUPUDUEVCVECDUOVBUPUFUIUGUJUHUKUL $.
  $}

  $( A number which is twice an integer is even.  (Contributed by AV,
     16-Jul-2021.) $)
  2teven $p |- ( ( A e. ZZ /\ B = ( 2 x. A ) ) -> 2 || B ) $=
    ( cz wcel c2 cmul co wceq wa cdvds wbr 2z dvdsmul1 mpan adantr breq2 adantl
    wb mpbird ) ACDZBEAFGZHZIEBJKZEUAJKZTUDUBECDTUDLEAMNOUBUCUDRTBUAEJPQS $.

  $( An integer is either even or odd, version of ~ zeo3 avoiding the negation
     of the representation of an odd number.  (Proposed by BJ, 21-Jun-2021.)
     (Contributed by AV, 26-Jun-2020.) $)
  zeo5 $p |- ( N e. ZZ -> ( 2 || N \/ 2 || ( N + 1 ) ) ) $=
    ( cz wcel c2 cdvds wbr c1 caddc co wo zeo3 oddp1even bicomd orbi2d mpbird
    wn ) ABCZDAEFZDAGHIEFZJRRPZJAKQSTRQTSALMNO $.

  $( An integer is even iff its quotient with 2 is an integer.  This is a
     representation of even numbers without using the divides relation, see
     ~ zeo and ~ zeo2 .  (Contributed by AV, 22-Jun-2021.) $)
  evend2 $p |- ( N e. ZZ -> ( 2 || N <-> ( N / 2 ) e. ZZ ) ) $=
    ( c2 cz wcel cc0 wne cdvds wbr cdiv co wb 2z 2ne0 dvdsval2 mp3an12 ) BCDBEF
    ACDBAGHABIJCDKLMBANO $.

  $( An integer is odd iff its successor divided by 2 is an integer.  This is a
     representation of odd numbers without using the divides relation, see
     ~ zeo and ~ zeo2 .  (Contributed by AV, 22-Jun-2021.) $)
  oddp1d2 $p |- ( N e. ZZ -> ( -. 2 || N <-> ( ( N + 1 ) / 2 ) e. ZZ ) ) $=
    ( cz wcel c2 cdvds wbr wn c1 caddc co cdiv oddp1even cc0 wb 2z 2ne0 peano2z
    wne dvdsval2 mp3an12i bitrd ) ABCZDAEFGDAHIJZEFZUCDKJBCZALDBCDMRUBUCBCUDUEN
    OPAQDUCSTUA $.

  $( Alternate characterizations of an odd number.  (Contributed by AV,
     7-Jun-2020.) $)
  zob $p |- ( N e. ZZ -> ( ( ( N + 1 ) / 2 ) e. ZZ
                              <-> ( ( N - 1 ) / 2 ) e. ZZ ) ) $=
    ( cz wcel c1 caddc co c2 cdiv cmin peano2zm peano2z cc wceq zcnd npcan1 syl
    halfcld eqcomd eleq1d syl5ibr impbid2 zcn xp1d2m1eqxm1d2 bitrd ) ABCZADEFZG
    HFZBCZUGDIFZBCZADIFGHFZBCUEUHUJUGJUJUHUEUIDEFZBCUIKUEUGULBUEULUGUEUGLCULUGM
    UEUFUEUFAKNQUGOPRSTUAUEUIUKBUEALCUIUKMAUBAUCPSUD $.

  $( An integer is odd iff its predecessor divided by 2 is an integer.  This is
     another representation of odd numbers without using the divides relation.
     (Contributed by AV, 18-Jun-2021.)  (Proof shortened by AV,
     22-Jun-2021.) $)
  oddm1d2 $p |- ( N e. ZZ -> ( -. 2 || N <-> ( ( N - 1 ) / 2 ) e. ZZ ) ) $=
    ( cz wcel c2 cdvds wbr wn c1 caddc co cdiv cmin oddp1d2 zob bitrd ) ABCDAEF
    GAHIJDKJBCAHLJDKJBCAMANO $.

  ${
    $d M n $.  $d N n $.
    $( An integer is less than half of an odd number iff it is less than or
       equal to the half of the predecessor of the odd number (which is an even
       number).  (Contributed by AV, 29-Jun-2021.) $)
    ltoddhalfle $p |- ( ( N e. ZZ /\ -. 2 || N /\ M e. ZZ )
                        -> ( M < ( N / 2 ) <-> M <_ ( ( N - 1 ) / 2 ) ) ) $=
      ( vn cz wcel c2 wbr cdiv co clt c1 cle wb wceq wi wa cr a1i adantr cc w3a
      cdvds wn cmin cv cmul caddc wrex odd2np1 halfre 1red 3jca halflt1 axltadd
      mpisyl adantl readdcld peano2z zred syl3anc mpan2d zleltp1 ancoms sylibrd
      zre lttr cc0 halfgt0 jca ltaddpos syl mpbii lelttr impbid wne 1cnd 2cnne0
      zcn muldivdir breq2d 2z id zmulcld zcnd pncan1 oveq1d 2cnd divcan3d eqtrd
      2ne0 3bitr4d oveq1 bibi12d syl5ibcom ex com23 rexlimdva sylbid 3imp ) BDE
      ZFBUBGUCZADEZABFHIZJGZABKUDIZFHIZLGZMZWTXAFCUEZUFIZKUGIZBNZCDUHXBXHOZCBUI
      WTXLXMCDWTXIDEZPXBXLXHXNXBXLXHOZOWTXNXBXOXNXBPZAXKFHIZJGZAXKKUDIZFHIZLGZM
      XLXHXPAXIKFHIZUGIZJGZAXILGZXRYAXPYDYEXPYDAXIKUGIZJGZYEXPYDYCYFJGZYGXPYBQE
      ZKQEZXIQEZUAZYBKJGYHXNYLXBXNYIYJYKYIXNUJRZXNUKXIVEZULSUMYBKXIUNUOXPAQEZYC
      QEZYFQEZYDYHPYGOXBYOXNAVEUPZXNYPXBXNXIYBYNYMUQSZXNYQXBXNYFXIURUSSAYCYFVFU
      TVAXBXNYEYGMAXIVBVCVDXPYEXIYCJGZYDXPVGYBJGZYTVHXPYIYKPZUUAYTMXNUUBXBXNYIY
      KYMYNVISYBXIVJVKVLXPYOYKYPYEYTPYDOYRXNYKXBYNSYSAXIYCVMUTVAVNXNXRYDMXBXNXQ
      YCAJXNXITEKTEFTEFVGVOZPZXQYCNXIVRZXNVPUUDXNVQRXIKFVSUTVTSXPXTXIALXPXTXJFH
      IZXIXPXSXJFHXPXJTEZXSXJNXNUUGXBXNXJXNFXIFDEXNWARXNWBWCWDSXJWEVKWFXNUUFXIN
      XBXNXIFUUEXNWGUUCXNWJRWHSWIVTWKXLXRXDYAXGXLXQXCAJXKBFHWLVTXLXTXFALXLXSXEF
      HXKBKUDWLWFVTWMWNWOUPWPWQWRWS $.

    $( An integer is greater than half of an odd number iff it is greater than
       or equal to the half of the odd number.  (Contributed by AV,
       1-Jul-2021.) $)
    halfleoddlt $p |- ( ( N e. ZZ /\ -. 2 || N /\ M e. ZZ )
                        -> ( ( N / 2 ) <_ M <-> ( N / 2 ) < M ) ) $=
      ( vn cz wcel c2 wbr cdiv co cle clt wb c1 caddc wi wa cc0 cxr cc breq1d
      cdvds wn cv cmul wceq wrex odd2np1 cioo w3a 0xr 1re rexri 3pm3.2i halfgt0
      halfre halflt1 pm3.2i elioo3g mpbir2an zltaddlt1le mp3an3 wne adantr 1cnd
      zcn 2cnne0 a1i muldivdir syl3anc 3bitr4rd oveq1 syl5ibcom ex adantl com23
      bibi12d rexlimdva sylbid 3imp ) BDEZFBUAGUBZADEZBFHIZAJGZWCAKGZLZVTWAFCUC
      ZUDIMNIZBUEZCDUFWBWFOZCBUGVTWIWJCDVTWGDEZPWBWIWFWKWBWIWFOZOVTWKWBWLWKWBPZ
      WHFHIZAJGZWNAKGZLWIWFWMWGMFHIZNIZAKGZWRAJGZWPWOWKWBWQQMUHIEZWSWTLXAQREZMR
      EZWQREZUIQWQKGZWQMKGZPXBXCXDUJMUKULWQUOULUMXEXFUNUPUQQMWQURUSWQWGAUTVAWMW
      NWRAKWMWGSEZMSEFSEFQVBPZWNWRUEWKXGWBWGVEVCWMVDXHWMVFVGWGMFVHVIZTWMWNWRAJX
      ITVJWIWOWDWPWEWIWNWCAJWHBFHVKZTWIWNWCAKXJTVPVLVMVNVOVQVRVS $.
  $}

  ${
    $d A a b c $.  $d B a b c $.
    $( The sum of two odds is even.  (Contributed by Scott Fenton, 7-Apr-2014.)
       (Revised by Mario Carneiro, 19-Apr-2014.) $)
    opoe $p |- ( ( ( A e. ZZ /\ -. 2 || A ) /\ ( B e. ZZ /\ -. 2 || B ) ) ->
       2 || ( A + B ) ) $=
      ( va vb cz wcel c2 cdvds wbr wn caddc co wa cmul c1 wceq wrex 2cn ax-1cn
      cc cv odd2np1 bi2anan9 reeanv 2z zaddcl peano2zd dvdsmul1 zcn addcl adddi
      sylancr syl mp3an1 oveq1d eqtrd 2t1e2 df-2 eqtri oveq2i syl6eq mulcl mpan
      mp3an13 add4 mpanr12 syl2an breqtrd oveq12 breq2d syl5ibcom sylbir syl6bi
      rexlimivv imp an4s ) AEFZBEFZGAHIJZGBHIJZGABKLZHIZVQVRMZVSVTMZWBWCWDGCUAZ
      NLZOKLZAPZCEQZGDUAZNLZOKLZBPZDEQZMZWBVQVSWIVRVTWNCAUBDBUBUCWOWHWMMZDEQCEQ
      WBWHWMCDEEUDWPWBCDEEWEEFZWJEFZMZGWGWLKLZHIWPWBWSGGWEWJKLZOKLZNLZWTHWSGEFX
      BEFGXCHIUEWSXAWEWJUFUGGXBUHULWQWETFZWJTFZXCWTPWRWEUIWJUIXDXEMZXCWFWKKLZOO
      KLZKLZWTXFXCXGGONLZKLZXIXFXCGXANLZXJKLZXKXFXATFZXCXMPZWEWJUJGTFZXNOTFZXOR
      SGXAOUKVDUMXFXLXGXJKXPXDXEXLXGPRGWEWJUKUNUOUPXJXHXGKXJGXHUQURUSUTVAXDWFTF
      ZWKTFZXIWTPZXEXPXDXRRGWEVBVCXPXEXSRGWJVBVCXRXSMXQXQXTSSWFWKOOVEVFVGUPVGVH
      WPWTWAGHWGAWLBKVIVJVKVNVLVMVOVP $.

    $( The difference of two odds is even.  (Contributed by Scott Fenton,
       7-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    omoe $p |- ( ( ( A e. ZZ /\ -. 2 || A ) /\ ( B e. ZZ /\ -. 2 || B ) ) ->
       2 || ( A - B ) ) $=
      ( va vb cz wcel c2 cdvds wbr wn cmin co wa cv cmul c1 wceq wrex cc 2cn 2z
      caddc odd2np1 bi2anan9 reeanv zsubcl dvdsmul1 sylancr mpan ax-1cn pnpcan2
      zcn mulcl mp3an3 syl2an mp3an1 eqtr4d breqtrrd oveq12 syl5ibcom rexlimivv
      subdi breq2d sylbir syl6bi imp an4s ) AEFZBEFZGAHIJZGBHIJZGABKLZHIZVHVIMZ
      VJVKMZVMVNVOGCNZOLZPUBLZAQZCERZGDNZOLZPUBLZBQZDERZMZVMVHVJVTVIVKWECAUCDBU
      CUDWFVSWDMZDERCERVMVSWDCDEEUEWGVMCDEEVPEFZWAEFZMZGVRWCKLZHIWGVMWJGGVPWAKL
      ZOLZWKHWJGEFWLEFGWMHIUAVPWAUFGWLUGUHWHVPSFZWASFZWKWMQWIVPULWAULWNWOMWKVQW
      BKLZWMWNVQSFZWBSFZWKWPQZWOGSFZWNWQTGVPUMUIWTWOWRTGWAUMUIWQWRPSFWSUJVQWBPU
      KUNUOWTWNWOWMWPQTGVPWAVBUPUQUOURWGWKVLGHVRAWCBKUSVCUTVAVDVEVFVG $.

    $( The sum of an odd and an even is odd.  (Contributed by Scott Fenton,
       7-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    opeo $p |- ( ( ( A e. ZZ /\ -. 2 || A ) /\ ( B e. ZZ /\ 2 || B ) ) ->
      -. 2 || ( A + B ) ) $=
      ( vc va vb cz wcel c2 cdvds wbr wa caddc co cmul c1 wceq wrex mpan cc 2cn
      wn cv odd2np1 wb 2z divides bi2anan9 reeanv zaddcl zcn adddi mp3an1 mulcl
      oveq1d ax-1cn mp3an3 syl2an mulcom adantl oveq2d 3eqtrd syl2anc syl5ibcom
      add32 oveq2 eqeq1d rspcev oveq12 eqeq2d rexbidv rexlimivv sylbir imp an4s
      syl6bi ad2ant2r syl mpbird ) AFGZHAIJUAZKBFGZHBIJZKKZHABLMZIJUAZHCUBZNMZO
      LMZWDPZCFQZVSWAVTWBWJVSWAKZVTWBKZWJWKWLHDUBZNMZOLMZAPZDFQZEUBZHNMZBPZEFQZ
      KZWJVSVTWQWAWBXADAUCHFGWAWBXAUDUEEHBUFRUGXBWPWTKZEFQDFQWJWPWTDEFFUHXCWJDE
      FFWMFGZWRFGZKZWHWOWSLMZPZCFQZXCWJXFWMWRLMZFGHXJNMZOLMZXGPZXIWMWRUIXDWMSGZ
      WRSGZXMXEWMUJWRUJXNXOKZXLWNHWRNMZLMZOLMZWOXQLMZXGXPXKXROLHSGZXNXOXKXRPTHW
      MWRUKULUNXNWNSGZXQSGZXSXTPZXOYAXNYBTHWMUMRYAXOYCTHWRUMRYBYCOSGYDUOWNXQOVD
      UPUQXPXQWSWOLXOXQWSPZXNYAXOYETHWRURRUSUTVAUQXHXMCXJFWFXJPZWHXLXGYFWGXKOLW
      FXJHNVEUNVFVGVBXCXHWICFXCXGWDWHWOAWSBLVHVIVJVCVKVLVOVMVNWCWDFGZWEWJUDVSWA
      YGVTWBABUIVPCWDUCVQVR $.

    $( The difference of an odd and an even is odd.  (Contributed by Scott
       Fenton, 7-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    omeo $p |- ( ( ( A e. ZZ /\ -. 2 || A ) /\ ( B e. ZZ /\ 2 || B ) ) ->
      -. 2 || ( A - B ) ) $=
      ( vc va vb cz wcel c2 cdvds wa cmin co cmul c1 caddc wceq wrex mpan 2cn
      cc wn cv odd2np1 wb 2z divides bi2anan9 reeanv zsubcl subdi mp3an1 oveq1d
      wbr mulcl ax-1cn addsub mp3an2 syl2an mulcom oveq2d adantl 3eqtr2d eqeq1d
      zcn oveq2 rspcev syl2anc oveq12 eqeq2d rexbidv syl5ibcom rexlimivv sylbir
      syl6bi imp an4s ad2ant2r syl mpbird ) AFGZHAIUMUAZJBFGZHBIUMZJJZHABKLZIUM
      UAZHCUBZMLZNOLZWEPZCFQZVTWBWAWCWKVTWBJZWAWCJZWKWLWMHDUBZMLZNOLZAPZDFQZEUB
      ZHMLZBPZEFQZJZWKVTWAWRWBWCXBDAUCHFGWBWCXBUDUEEHBUFRUGXCWQXAJZEFQDFQWKWQXA
      DEFFUHXDWKDEFFWNFGZWSFGZJZWIWPWTKLZPZCFQZXDWKXGWNWSKLZFGHXKMLZNOLZXHPZXJW
      NWSUIXEWNTGZWSTGZXNXFWNVDWSVDXOXPJZXMWOHWSMLZKLZNOLZWPXRKLZXHXQXLXSNOHTGZ
      XOXPXLXSPSHWNWSUJUKULXOWOTGZXRTGZYAXTPZXPYBXOYCSHWNUNRYBXPYDSHWSUNRYCNTGY
      DYEUOWONXRUPUQURXPYAXHPXOXPXRWTWPKYBXPXRWTPSHWSUSRUTVAVBURXIXNCXKFWGXKPZW
      IXMXHYFWHXLNOWGXKHMVEULVCVFVGXDXIWJCFXDXHWEWIWPAWTBKVHVIVJVKVLVMVNVOVPWDW
      EFGZWFWKUDVTWBYGWAWCABUIVQCWEUCVRVS $.
  $}

  ${
    $d N n $.
    $( Exponentiation of -1 by an even power.  Variant of ~ m1expeven .
       (Contributed by AV, 25-Jun-2021.) $)
    m1expe $p |- ( 2 || N -> ( -u 1 ^ N ) = 1 ) $=
      ( vn c2 cdvds wbr cv cmul co wceq cz wrex c1 cneg cexp even2n wcel eqcoms
      oveq2 m1expeven sylan9eqr rexlimiva sylbi ) CADECBFZGHZAIZBJKLMZANHZLIZBA
      OUEUHBJUEUCJPUGUFUDNHZLUGUIIAUDAUDUFNRQUCSTUAUB $.

    $( Exponentiation of -1 by an odd power.  (Contributed by AV,
       26-Jun-2021.) $)
    m1expo $p |- ( ( N e. ZZ /\ -. 2 || N ) -> ( -u 1 ^ N ) = -u 1 ) $=
      ( vn cz wcel c2 cdvds wbr wn c1 cneg cexp co wceq cmul caddc wrex odd2np1
      cv neg1cn a1i wa oveq2 eqcoms cc cc0 neg1ne0 2z zmulcld expp1zd m1expeven
      wne id oveq1d mulid2i syl6eq eqtrd adantl sylan9eqr rexlimdva sylbid imp
      ex ) ACDZEAFGHZIJZAKLZVEMZVCVDEBRZNLZIOLZAMZBCPVGBAQVCVKVGBCVCVHCDZUAZVKV
      GVKVMVFVEVJKLZVEVFVNMAVJAVJVEKUBUCVLVNVEMVCVLVNVEVIKLZVENLZVEVLVEVIVEUDDV
      LSTVEUEUKVLUFTVLEVHECDVLUGTVLULUHUIVLVPIVENLVEVLVOIVENVHUJUMVESUNUOUPUQUR
      VBUSUTVA $.

    $( Exponentiation of negative one is one iff the exponent is even.
       (Contributed by AV, 20-Jun-2021.) $)
    m1exp1 $p |- ( N e. ZZ -> ( ( -u 1 ^ N ) = 1 <-> 2 || N ) ) $=
      ( vn c2 cz wcel c1 cexp co wceq wb wa cmul wrex 2z oveq2 eqcoms sylan9eqr
      eqtrd cc0 a1i cdvds wbr cneg cv divides mpan zcn mulcomd oveq2d m1expeven
      2cnd rexlimiva syl6bi impcom simpl 2thd ax-1ne0 eqcom ax-1cn eqnegi bitri
      wn nemtbir caddc odd2np1 cc neg1cn wne neg1ne0 id zmulcld expp1zd mulid2i
      oveq1d syl6eq eqeq1d mtbiri 2falsed pm2.61ian ) CAUAUBZADEZFUCZAGHZFIZVTJ
      VTWAKWDVTWAVTWDWAVTBUDZCLHZAIZBDMZWDCDEZWAVTWHJNBCAUEUFWGWDBDWGWEDEZWCWBW
      FGHZFWCWKIAWFAWFWBGOPWJWKWBCWELHZGHZFWJWFWLWBGWJWECWEUGWJUKUHUIWEUJZRQULU
      MUNVTWAUOUPVTVBZWAKZWDVTWPWDWBFIZWQFSUQWQFWBIFSIWBFURFUSUTVAVCWPWCWBFWAWO
      WCWBIZWAWOWLFVDHZAIZBDMWRBAVEWTWRBDWTWJWCWBWSGHZWBWCXAIAWSAWSWBGOPWJXAWMW
      BLHZWBWJWBWLWBVFEWJVGTWBSVHWJVITWJCWEWIWJNTWJVJVKVLWJXBFWBLHWBWJWMFWBLWNV
      NWBVGVMVORQULUMUNVPVQWOWAUOVRVS $.
  $}

  $( A positive integer is an even nonnegative integer iff it is an even
     positive integer.  (Contributed by AV, 30-May-2020.) $)
  nn0enne $p |- ( N e. NN -> ( ( N / 2 ) e. NN0 <-> ( N / 2 ) e. NN ) ) $=
    ( cn wcel c2 cdiv co cn0 cc0 wceq wo wi elnn0 nncn 2cnd 2ne0 diveq0ad eleq1
    wne a1i com12 0nnn pm2.21i syl6bi sylbid jao1i sylbi nnnn0 impbid1 ) ABCZAD
    EFZGCZUJBCZUKUIULUKULUJHIZJUIULKUJLULUMUIUIUMULUIUMAHIZULUIADAMUINDHRUIOSPU
    NUIULUNUIHBCZULAHBQUOULUAUBUCTUDTUEUFTUJUGUH $.

  $( The half of an even nonnegative integer is a nonnegative integer.
     (Contributed by AV, 22-Jun-2020.)  (Revised by AV, 28-Jun-2021.) $)
  nn0ehalf $p |- ( ( N e. NN0 /\ 2 || N ) -> ( N / 2 ) e. NN0 ) $=
    ( cn0 wcel c2 cdvds wbr cdiv co cz wb nn0z evend2 syl wa cc0 cle nn0ge0 clt
    cr a1i nn0re 2re ge0div syl3anc mpbid anim1i ancomd elnn0z sylibr ex sylbid
    2pos imp ) ABCZDAEFZADGHZBCZUNUOUPICZUQUNAICUOURJAKALMUNURUQUNURNZUROUPPFZN
    UQUSUTURUNUTURUNOAPFZUTAQUNASCDSCZODRFZVAUTJAUAVBUNUBTVCUNULTADUCUDUEUFUGUP
    UHUIUJUKUM $.

  $( The half of an even positive integer is a positive integer.  (Contributed
     by AV, 28-Jun-2021.) $)
  nnehalf $p |- ( ( N e. NN /\ 2 || N ) -> ( N / 2 ) e. NN ) $=
    ( cn wcel c2 cdvds wbr wa cdiv co cn0 nnnn0 nn0ehalf sylan wb nn0enne mpbid
    adantr ) ABCZDAEFZGADHIZJCZTBCZRAJCSUAAKALMRUAUBNSAOQP $.

  $( An odd nonnegative integer is either 1 or greater than 2.  (Contributed by
     AV, 2-Jun-2020.) $)
  nn0o1gt2 $p |- ( ( N e. NN0 /\ ( ( N + 1 ) / 2 ) e. NN0 )
                   -> ( N = 1 \/ 2 < N ) ) $=
    ( cn0 wcel c1 caddc co c2 cdiv wceq clt wbr wo cc0 wi wa cz nn0z jaoi com12
    cle cn elnn0 elnnnn0c 1red nn0re leloed wb zltp1le syl2anc 1p1e2 breq1i a1i
    1zzd cr 2re 3bitrd olc 2a1d oveq1 oveq1d eqcoms adantl oveq1i syl6eq eleq1d
    c3 2p1e3 wn 3halfnz pm2.24d mpi syl6bi expcom sylbid orc sylbi 0p1e1 halfnz
    imp ) ABCZADEFZGHFZBCZADIZGAJKZLZVTAUACZAMIZLWCWFNZAUBWGWIWHWGVTDATKZOWIAUC
    VTWJWIVTWJDAJKZDAIZLZWIVTDAVTUDAUEZUFWMVTWIWKVTWINZWLVTWKWIVTWKWEGAIZLZWIVT
    WKDDEFZATKZGATKZWQVTDPCAPCWKWSUGVTUMAQDAUHUIWSWTUGVTWRGATUJUKULVTGAGUNCVTUO
    ULWNUFUPWQVTWIWEWOWPWEWFVTWCWEWDUQURVTWPWIVTWPOZWCVFGHFZBCZWFXAWBXBBXAWBGDE
    FZGHFZXBWPWBXEIZVTXFAGAGIWAXDGHAGDEUSUTVAVBXDVFGHVGVCVDVEXCXBPCZVHWFVIXCXGW
    FXBQVJVKVLVMRSVNSWLWFVTWCWFADWDWEVOVAURRSVNVSVPWHWCDGHFZBCZWFWHWBXHBWHWADGH
    WHWAMDEFDAMDEUSVQVDUTVEXIXHPCZVHWFVRXIXJWFXHQVJVKVLRVPVS $.

  $( An alternate characterization of an odd integer greater than 1.
     (Contributed by AV, 2-Jun-2020.) $)
  nno $p |- ( ( N e. ( ZZ>= ` 2 ) /\ ( ( N + 1 ) / 2 ) e. NN0 )
                    -> ( ( N - 1 ) / 2 ) e. NN ) $=
    ( c2 wcel c1 co cdiv cn0 cmin cn wa wi wceq clt wbr a1d cz cc0 adantr mpbid
    cr cuz cfv caddc wne eluz2b3 wo nnnn0 nn0o1gt2 sylan eqneqall nn0z peano2zm
    syl ad2antlr cmul 2cn mulid2i nnre ltp1d 2re peano2nn nnred syl3anc expdimp
    a1i lttr mpd syl5eqbr wb 1red 2pos ltmuldiv rehalfcld posdifd adantlr elnnz
    pm3.2i sylanbrc nncn xp1d2m1eqxm1d2 eleq1d expcom jaoi mpcom impancom sylbi
    cc imp ) ABUAUBCZADUCEZBFEZGCZADHEBFEZICZWIAICZADUDZJWLWNKAUEWOWLWPWNADLZBA
    MNZUFZWOWLJZWPWNKZWOAGCWLWSAUGAUHUIWQWTXAKWRWQXAWTWNADUJOWTWRXAWTWRJZWNWPXB
    WKDHEZICZWNXBXCPCZQXCMNZXDWLXEWOWRWLWKPCXEWKUKWKULUMUNWOWRXFWLWOWRJZDWKMNZX
    FXGDBUOEZWJMNZXHXGXIBWJMBUPUQXGAWJMNZBWJMNZWOXKWRWOAAURZUSRWOWRXKXLWOBTCZAT
    CWJTCZWRXKJXLKXNWOUTVEXMWOWJAVAVBZBAWJVFVCVDVGVHXGDTCXOXNQBMNZJZXJXHVIXGVJZ
    WOXOWRXPRXRXGXNXQUTVKVQVEDWJBVLVCSXGDWKXSWOWKTCWRWOWJXPVMRVNSVOXCVPVRWTXDWN
    VIZWRWOXTWLWOXCWMIWOAWGCXCWMLAVSAVTUMWARRSOWBWCWDWEWFWH $.

  $( An alternate characterization of an odd nonnegative integer.  (Contributed
     by AV, 28-May-2020.)  (Proof shortened by AV, 2-Jun-2020.) $)
  nn0o $p |- ( ( N e. NN0 /\ ( ( N + 1 ) / 2 ) e. NN0 )
                    -> ( ( N - 1 ) / 2 ) e. NN0 ) $=
    ( c1 wceq c2 clt wbr wo cn0 wcel caddc co cdiv wa cmin wi cc0 adantr ex cz
    cr nn0o1gt2 1m1e0 oveq1i 2cn 2ne0 div0i eqtri 0nn0 eqeltri wb oveq1d eleq1d
    oveq1 mpbiri cuz cfv cn cle a1i nn0z ad2antrl 2re nn0re ltle sylancr impcom
    2z eluz2 syl3anbrc simprr jca nno nnnn0 3syl jaoi mpcom ) ABCZDAEFZGAHIZABJ
    KDLKHIZMZABNKZDLKZHIZAUAVQWAWDOVRVQWAWDVQWAMWDBBNKZDLKZHIZWFPHWFPDLKPWEPDLU
    BUCDUDUEUFUGUHUIVQWDWGUJWAVQWCWFHVQWBWEDLABBNUMUKULQUNRVRWAWDVRWAMZADUOUPIZ
    VTMWCUQIWDWHWIVTWHDSIZASIZDAURFZWIWJWHVGUSVSWKVRVTAUTVAWAVRWLVSVRWLOZVTVSDT
    IATIWMVBAVCDAVDVEQVFDAVHVIVRVSVTVJVKAVLWCVMVNRVOVP $.

  $( Alternate characterizations of an odd nonnegative integer.  (Contributed
     by AV, 4-Jun-2020.) $)
  nn0ob $p |- ( N e. NN0 -> ( ( ( N + 1 ) / 2 ) e. NN0
                              <-> ( ( N - 1 ) / 2 ) e. NN0 ) ) $=
    ( wcel c1 caddc co c2 cdiv cmin nn0o wa wceq cc nn0cn xp1d2m1eqxm1d2 eqcomd
    cn0 syl peano2cnm halfcld peano2nn0 nn0cnd addlsub mpbird eqeltrrd impbida
    1cnd adantr adantl ) APBZACDEZFGEZPBACHEZFGEZPBZAIUIUNJUMCDEZUKPUIUOUKKZUNU
    IUPUMUKCHEZKZUIALBZURAMZUSUQUMANOQUIUMCUKUIULUIUSULLBUTARQSUIUFUIUJUIUJATUA
    SUBUCUGUNUOPBUIUMTUHUDUE $.

  $( A positive integer is odd iff its predecessor divided by 2 is a positive
     integer.  (Contributed by AV, 28-Jun-2021.) $)
  nn0oddm1d2 $p |- ( N e. NN0 -> ( -. 2 || N
                                   <-> ( ( N - 1 ) / 2 ) e. NN0 ) ) $=
    ( cn0 wcel c2 cdvds wbr wn c1 caddc co cdiv cz cmin wb nn0z wa cc0 cle a1i
    cr oddp1d2 syl nn0re 1red nn0ge0 0le1 addge0d clt peano2nn0 nn0red 2re 2pos
    ge0div syl3anc mpbid anim1i ancomd elnn0z sylibr ex impbid1 nn0ob 3bitrd )
    ABCZDAEFGZAHIJZDKJZLCZVGBCZAHMJDKJBCVDALCVEVHNAOAUAUBVDVHVIVDVHVIVDVHPZVHQV
    GRFZPVIVJVKVHVDVKVHVDQVFRFZVKVDAHAUCVDUDAUEQHRFVDUFSUGVDVFTCDTCZQDUHFZVLVKN
    VDVFAUIUJVMVDUKSVNVDULSVFDUMUNUOUPUQVGURUSUTVGOVAAVBVC $.

  $( A positive integer is odd iff its successor divided by 2 is a positive
     integer.  (Contributed by AV, 28-Jun-2021.) $)
  nnoddm1d2 $p |- ( N e. NN -> ( -. 2 || N <-> ( ( N + 1 ) / 2 ) e. NN ) ) $=
    ( cn wcel c2 cdvds wbr wn c1 caddc co cdiv cz wb nnz oddp1d2 syl wa cc0 clt
    a1i peano2nn nnred cr 2re nnre 1red 0lt1 addgt0d 2pos divgt0d anim1i ancomd
    nngt0 elnnz sylibr ex impbid1 bitrd ) ABCZDAEFGZAHIJZDKJZLCZVBBCZUSALCUTVCM
    ANAOPUSVCVDUSVCVDUSVCQZVCRVBSFZQVDVEVFVCUSVFVCUSVADUSVAAUAUBDUCCUSUDTUSAHAU
    EUSUFAUMRHSFUSUGTUHRDSFUSUITUJUKULVBUNUOUPVBNUQUR $.

  $( 0 is even.  (Contributed by AV, 11-Feb-2020.)  (Revised by AV,
     23-Jun-2021.) $)
  z0even $p |- 2 || 0 $=
    ( c2 cz wcel cc0 cdvds wbr 2z dvds0 ax-mp ) ABCADEFGAHI $.

  $( 2 does not divide 1 (common case).  That means 1 is odd.  (Contributed by
     David A. Wheeler, 8-Dec-2018.) $)
  n2dvds1 $p |- -. 2 || 1 $=
    ( c2 c1 cdvds wbr cle clt wn 1lt2 1re 2re ltnlei mpbi cz wcel cn 1nn dvdsle
    wi 2z mp2an mto ) ABCDZABEDZBAFDUCGHBAIJKLAMNBONUBUCRSPABQTUA $.

  $( 2 does not divide -1.  That means -1 is odd.  (Contributed by AV,
     15-Aug-2021.) $)
  n2dvdsm1 $p |- -. 2 || -u 1 $=
    ( c2 c1 cneg cdvds wbr wn caddc co z0even ax-1cn 1pneg1e0 addcomli breqtrri
    cc0 neg1cn cz wcel wb neg1z oddp1even ax-mp mpbir ) ABCZDEFZAUCBGHZDEZANUED
    IBUCNJOKLMUCPQUDUFRSUCTUAUB $.

  $( 2 is even.  (Contributed by AV, 12-Feb-2020.)  (Revised by AV,
     23-Jun-2021.) $)
  z2even $p |- 2 || 2 $=
    ( c2 cz wcel cdvds wbr 2z iddvds ax-mp ) ABCAADEFAGH $.

  $( 2 does not divide 3, i.e. 3 is an odd number.  (Contributed by AV,
     28-Feb-2021.) $)
  n2dvds3 $p |- -. 2 || 3 $=
    ( c2 c3 cdvds wbr wn c1 cmin co cz 2z iddvds ax-mp 3m1e2 breqtrri oddm1even
    wcel wb 3z mpbir ) ABCDEZABFGHZCDZAAUACAIPAACDJAKLMNBIPTUBQRBOLS $.

  $( 4 is an even number.  (Contributed by AV, 23-Jul-2020.)  (Revised by AV,
     4-Jul-2021.) $)
  z4even $p |- 2 || 4 $=
    ( c2 cmul co c4 cdvds cz wcel wbr 2z dvdsmul1 mp2an 2t2e4 breqtri ) AAABCZD
    EAFGZOANEHIIAAJKLM $.

  $( An integer which is divisible by 4 is an even integer.  (Contributed by
     AV, 4-Jul-2021.) $)
  4dvdseven $p |- ( 4 || N -> 2 || N ) $=
    ( c4 cdvds wbr c2 cz wcel w3a wa 2z a1i 4z dvdszrcl simprd 3jca z4even jctl
    dvdstr sylc ) BACDZEFGZBFGZAFGZHEBCDZTIEACDTUAUBUCUATJKUBTLKTUBUCBAMNOTUDPQ
    EBARS $.

  ${
    $d A k x y z $.  $d B x y z $.  $d ph k x y z $.
    sumeven.a $e |- ( ph -> A e. Fin ) $.
    sumeven.b $e |- ( ( ph /\ k e. A ) -> B e. ZZ ) $.
    ${
      sumeven.e $e |- ( ( ph /\ k e. A ) -> 2 || B ) $.
      $( If every term in a sum is even, then so is the sum.  (Contributed by
         AV, 14-Aug-2021.) $)
      sumeven $p |- ( ph -> 2 || sum_ k e. A B ) $=
        ( vz c2 cv csu cdvds wbr wceq breq2d wcel wa cz wi adantl vx vy csn cun
        c0 sumeq1 cc0 z0even sum0 breqtrri a1i wss cdif csb caddc co w3a 2z cfn
        ssfi expcom adantr mpan9 simpll ssel imp syl2anc fsumzcl eldifi adantlr
        wral ralrimiva rspcsbela 3jca nfcv nfcsb1v nfbr csbeq1a rspc a1d anim1i
        syl2imc imp32 ancomd dvds2add sylc cvv wnel vex wn eldif df-nel biimpri
        simplbiim elun com12 elsni eleq1w syl5ibr syl jaoi syl5bi fsumsplitsnun
        wo syl121anc breqtrrd ex findcard2d ) AIUAJZCDKZLMIUECDKZLMZIUBJZCDKZLM
        ZIXMHJZUCZUDZCDKZLMZIBCDKZLMUAUBHBXIUENXJXKILXIUECDUFOXIXMNXJXNILXIXMCD
        UFOXIXRNXJXSILXIXRCDUFOXIBNXJYAILXIBCDUFOXLAIUGXKLUHCDUIUJUKAXMBULZXPBX
        MUMPZQZQZXOXTYEXOQZIXNDXPCUNZUOUPZXSLYFIRPZXNRPZYGRPZUQZXOIYGLMZQIYHLMY
        EYLXOYEYIYJYKYIYEURUKYEXMCDABUSPZYDXMUSPZEYBYNYOSYCYNYBYOBXMUTVAVBVCZYE
        DJZXMPZQAYQBPZCRPZAYDYRVDYEYRYSYDYRYSSZAYBUUAYCXMBYQVEVBZTVFFVGVHYEXPBP
        ZYTDBVKYKYDUUCAYCUUCYBXPBXMVIZTZTYEYTDBAYSYTYDFVJVLDXPBCRVMVGVNVBYFYMXO
        YEYMXOAYBYCYMAYCYMSYBYCUUCAICLMZDBVKYMUUDAUUFDBGVLUUFYMDXPBDIYGLDIVODLV
        ODXPCVPVQYQXPNZCYGILDXPCVROVSWBVTWCWAWDIXNYGWEWFYEXSYHNZXOYEYOXPWGPZXPX
        MWHZYTDXRVKUUHYPUUIYEHWIUKYDUUJAYCUUJYBYCUUCXPXMPWJZUUJXPBXMWKUUJUUKXPX
        MWLWMWNTTYEYTDXRYEYQXRPZQAYSYTAYDUULVDYEUULYSYDUULYSSAUULYRYQXQPZXDZYDY
        SYQXMXQWOUUNYDYSYRYDYSSZUUMYDYRYSUUBWPUUMUUGUUOYQXPWQYDYSUUGUUCUUEDHBWR
        WSWTXAWPXBTVFFVGVLXMCDWGXPXCXEVBXFXGEXH $.
    $}

    sumodd.o $e |- ( ( ph /\ k e. A ) -> -. 2 || B ) $.
    $( If every term in a sum is odd, then the sum is even iff the number of
       terms in the sum is even.  (Contributed by AV, 14-Aug-2021.) $)
    sumodd $p |- ( ph -> ( 2 || ( # ` A ) <-> 2 || sum_ k e. A B ) ) $=
      ( c2 chash cdvds wbr wb wceq breq2d wcel wa wn wi adantl syl2anc vx vy vz
      cv cfv csu cc0 csn cun c0 fveq2 hash0 syl6eq sumeq1 sum0 bibi12d wss cdif
      biidd c1 caddc co cz wral eldifi adantlr ralrimiva rspcsbela nfcv nfcsb1v
      csb nfbr nfn csbeq1a notbid rspc syl syl5com a1d imp32 adantr ssfi expcom
      jca cfn imp simpll ssel fsumzcl anim1i opeo cc zcnd addcom mpbird ex opoe
      con1d impbid bitr3 bicom 3imtr4g cn0 hashcl nn0zd oddp1even syl5bb bibi1d
      notnotb simprr eldifn hashunsng sylc cvv wnel vex a1i df-nel sylibr com12
      elun elsni eleq1w syl5ibr jaoi sylbi fsumsplitsnun syl121anc notbi syl6bb
      wo 3imtr4d findcard2d ) AHUAUDZIUEZJKZHYNCDUFZJKZLHUGJKZYSLHUBUDZIUEZJKZH
      YTCDUFZJKZLZHYTUCUDZUHZUIZIUEZJKZHUUHCDUFZJKZLZHBIUEZJKZHBCDUFZJKZLUAUBUC
      BYNUJMZYPYSYRYSUURYOUGHJUURYOUJIUEUGYNUJIUKULUMNUURYQUGHJUURYQUJCDUFUGYNU
      JCDUNCDUOUMNUPYNYTMZYPUUBYRUUDUUSYOUUAHJYNYTIUKNUUSYQUUCHJYNYTCDUNNUPYNUU
      HMZYPUUJYRUULUUTYOUUIHJYNUUHIUKNUUTYQUUKHJYNUUHCDUNNUPYNBMZYPUUOYRUUQUVAY
      OUUNHJYNBIUKNUVAYQUUPHJYNBCDUNNUPAYSUSAYTBUQZUUFBYTURZOZPZPZHUUAUTVAVBZJK
      ZQZUUDLZUVIHUUCDUUFCVKZVAVBZJKZQZLZUUEUUMUVFUUDUVILZUVNUVILZUVJUVOUVFUUDU
      VNLUVPUVQRUVFUUDUVNUVFUUDUVNUVFUUDPZUVNHUVKUUCVAVBZJKZQZUVRUVKVCOZHUVKJKZ
      QZPZUUCVCOZUUDPUWAUVFUWEUUDUVFUWBUWDUVFUUFBOZCVCOZDBVDUWBUVEUWGAUVDUWGUVB
      UUFBYTVEZSZSUVFUWHDBADUDZBOZUWHUVEFVFVGDUUFBCVCVHTZAUVBUVDUWDAUVDUWDRUVBA
      HCJKZQZDBVDZUVDUWDAUWODBGVGUVDUWGUWPUWDRUWIUWOUWDDUUFBUWCDDHUVKJDHVIDJVID
      UUFCVJVLVMUWKUUFMZUWNUWCUWQCUVKHJDUUFCVNNVOVPVQVRVSVTWDZWAUVFUWFUUDUVFYTC
      DAUVEYTWEOZABWEOZUVEUWSEUVBUWTUWSRUVDUWTUVBUWSBYTWBWCWAVRWFZUVFUWKYTOZPAU
      WLUWHAUVEUXBWGUVFUXBUWLUVEUXBUWLRZAUVBUXCUVDYTBUWKWHWAZSWFFTWIZWJUVKUUCWK
      TUVFUVNUWALZUUDUVFUUCWLOZUVKWLOZUXFUVFUUCUXEWMUVFUVKUWMWMUXGUXHPZUVMUVTUX
      IUVLUVSHJUUCUVKWNNVOTWAWOWPUVFUUDUVMUVFUUDQZUVMUVFUXJPUWFUXJPUWEUVMUVFUWF
      UXJUXEWJUVFUWEUXJUWRWAUUCUVKWQTWPWRWSUUDUVNUVIWTVQUVIUUDXAUVIUVNXAXBUVFUU
      BUVIUUDUUBUUBQZQUVFUVIUUBXIUVFUXKUVHUVFUUAVCOUXKUVHLUVFUUAUVFUWSUUAXCOUXA
      YTXDVQXEUUAXFVQVOXGXHUVFUUMUVHUVMLUVOUVFUUJUVHUULUVMUVFUUIUVGHJUVFUVDUWSU
      UFYTOQZPUUIUVGMAUVBUVDXJUVFUWSUXLUXAUVEUXLAUVDUXLUVBUUFBYTXKSSZWDYTUUFUVC
      XLXMNUVFUUKUVLHJUVFUWSUUFXNOZUUFYTXOZUWHDUUHVDUUKUVLMUXAUXNUVFUCXPXQUVFUX
      LUXOUXMUUFYTXRXSUVFUWHDUUHUVFUWKUUHOZPAUWLUWHAUVEUXPWGUVFUXPUWLUVEUXPUWLR
      AUXPUVEUWLUXPUXBUWKUUGOZYKUVEUWLRZUWKYTUUGYAUXBUXRUXQUVEUXBUWLUXDXTUXQUWQ
      UXRUWKUUFYBUVEUWLUWQUWGUWJDUCBYCYDVQYEYFXTSWFFTVGYTCDXNUUFYGYHNUPUVHUVMYI
      YJYLEYM $.
  $}

  ${
    $d A k $.  $d ph k $.
    evensumodd.a $e |- ( ph -> A e. Fin ) $.
    evensumodd.b $e |- ( ( ph /\ k e. A ) -> B e. ZZ ) $.
    evensumodd.o $e |- ( ( ph /\ k e. A ) -> -. 2 || B ) $.
    ${
      evensumodd.e $e |- ( ph -> 2 || ( # ` A ) ) $.
      $( If every term in a sum with an even number of terms is odd, then the
         sum is even.  (Contributed by AV, 14-Aug-2021.) $)
      evensumodd $p |- ( ph -> 2 || sum_ k e. A B ) $=
        ( c2 chash cfv cdvds wbr csu sumodd mpbid ) AIBJKLMIBCDNLMHABCDEFGOP $.
    $}

    oddsumodd.a $e |- ( ph -> -. 2 || ( # ` A ) ) $.
    $( If every term in a sum with an odd number of terms is odd, then the sum
       is odd.  (Contributed by AV, 14-Aug-2021.) $)
    oddsumodd $p |- ( ph -> -. 2 || sum_ k e. A B ) $=
      ( c2 chash cfv cdvds wbr csu sumodd mtbid ) AIBJKLMIBCDNLMHABCDEFGOP $.
  $}

  ${
    $d A k l $.  $d N k l $.  $d ph k l $.
    pwp1fsum.a $e |- ( ph -> A e. CC ) $.
    pwp1fsum.n $e |- ( ph -> N e. NN ) $.
    $( The n-th power of a number increased by 1 expressed by a product with a
       finite sum.  (Contributed by AV, 15-Aug-2021.) $)
    pwp1fsum $p |- ( ph -> ( ( ( -u 1 ^ ( N - 1 ) ) x. ( A ^ N ) ) + 1 )
                           = ( ( A + 1 ) x. sum_ k e. ( 0 ... ( N - 1 ) )
                                           ( ( -u 1 ^ k ) x. ( A ^ k ) ) ) ) $=
      ( vl c1 caddc co cc0 cfz cexp cmul csu wcel expcld wceq oveq2d syl neg1cn
      cmin cneg cv 1cnd fzfid wa cc a1i cn0 elfznn0 adantl adantr mulcld fsumcl
      adddird fsummulc2 mulcomd mulassd syl2an eqcomd ralrimiva sumeq2d mulid2d
      expp1 3eqtrd eqtrd oveq12d 1zzd 0zd cn nnz peano2zm peano2nn0 oveq2 oveq1
      cz fsumshft elfzelz zcnd npcan1 cuz cfv nncnd 0p1e1 fveq2i eqtr4i 3eltr4d
      nnuz oveq1i eleq2i nnm1nn0 nnnn0 expcom elfznn syl11 syl5bi fsumm1 pncan1
      imp sumeq1d weq cbvsumv syl6eq elnn0uz sylib ax-mp fsum1p 1t1e1 oveq1d wi
      eleq2s impcom addcomd addcld addassd expp1d mulm1d negidd mul02d sumeq2dv
      exp0 nncn 3eqtr3d fsumadd wss cfn wo olcd sumz addid1d 3eqtr2d ) ABHIJKDH
      UBJZLJZHUCZCUDZMJZBYPMJZNJZCOZNJZYOYMMJZBDMJZNJZHIJZAUUABYTNJZHYTNJZIJYNY
      QBYPHIJZMJZNJZCOZYTIJZUUEABHYTEAUEZAYNYSCAKYMUFZAYPYNPZUGZYQYRUUPYOYPYOUH
      PZUUPUAUIUUOYPUJPZAYPYMUKZULZQZUUPBYPABUHPZUUOEUMZUUTQZUNZUOZUPAUUFUUKUUG
      YTIAUUFYNBYSNJZCOUUKAYNYSBCUUNEUVEUQAYNUVGUUJCAUVGUUJRCYNUUPUVGYSBNJYQYRB
      NJZNJUUJUUPBYSUVCUVEURUUPYQYRBUVAUVDUVCUSUUPUVHUUIYQNUUPUUIUVHAUVBUURUUIU
      VHRUUOEUUSBYPVEUTVASVFVBVCVGAYTUVFVDVHAUULKHIJZYMLJZYOYPHUBJZMJZYRNJZCOZU
      UDIJZUVJYSCOZHIJZIJUVOUVPIJZHIJUUEAUUKUVOYTUVQIAUUKUVIYMHIJZLJZYOGUDZHUBJ
      ZMJZBUWBHIJZMJZNJZGOUVTUWCBUWAMJZNJZGOZUVOAUUJUWFCGHKYMAVIAVJADVKPZYMVQPZ
      FUWJDVQPUWKDVLDVMTTZUUPYQUUIUVAUUPBUUHUVCUUOUUHUJPZAUUOUURUWMUUSYPVNTULQU
      NYPUWBRZYQUWCUUIUWENYPUWBYOMVOUWNUUHUWDBMYPUWBHIVPSVHVRAUVTUWFUWHGAUWFUWH
      RGUVTAUWAUVTPZUGZUWEUWGUWCNUWPUWDUWABMUWPUWAUHPZUWDUWARUWOUWQAUWOUWAUWAUV
      IUVSVSVTULUWAWATSSVBVCAUWIUVIUVSHUBJZLJZUWHGOZYOUWRMJZBUVSMJZNJZIJUVOAUWH
      UXCGUVIUVSADVKUVSUVIWBWCZFADUHPUVSDRADFWDDWATZUXDVKRAUXDHWBWCZVKUVIHWBWEW
      FWIWGUIWHAUWOUWHUHPZUWOUWAHUVSLJZPZAUXGUVTUXHUWAUVIHUVSLWEWJWKUWAVKPZAUXG
      UXIAUXJUXGAUXJUGZUWCUWGUXKYOUWBUUQUXKUAUIUXJUWBUJPAUWAWLULQUXKBUWAAUVBUXJ
      EUMUXJUWAUJPAUWAWMULQUNWNUWAUVSWOWPWQWTUWAUVSRZUWCUXAUWGUXBNUXLUWBUWRYOMU
      WAUVSHUBVPSUWAUVSBMVOVHWRAUWTUVNUXCUUDIAUWTUVJUWHGOUVNAUWSUVJUWHGAUWRYMUV
      ILAYMUHPUWRYMRAYMUWLVTYMWSTZSXAUVJUWHUVMGCGCXBZUWCUVLUWGYRNUXNUWBUVKYOMUW
      AYPHUBVPSUWAYPBMVOVHXCXDAUXAUUBUXBUUCNAUWRYMYOMUXMSAUVSDBMUXESVHVHVGVFAYT
      HBKMJZNJZUVPIJHUVPIJUVQAYSUXPCKYMAUWJYMKWBWCPZFUWJYMUJPZUXQDWLZYMXEXFTUVE
      YPKRZYQHYRUXONUXTYQYOKMJZHYPKYOMVOUUQUYAHRUAYOYBXGXDYPKBMVOVHXHAUXPHUVPIA
      UXPHHNJHAUXOHHNAUVBUXOHREBYBTSXIXDXJAHUVPUUMAUVJYSCAUVIYMUFZYPUVJPZAYSUHP
      ZAUYDXKZYPHYMLJZUVJYPUYFPZYPVKPZUYEYPYMWOZAUYHUYDAUYHUGZYQYRUYJYOYPUUQUYJ
      UAUIZUYHUURAYPWMULZQZUYJBYPAUVBUYHEUMUYLQZUNWNTUVIHYMLWEWJZXLXMZUOZXNVFVH
      AUVOUVPHAUVNUUDAUVJUVMCUYBUYCAUVMUHPZAUYRXKZYPUYFUVJUYGUYHUYSUYIAUYHUYRUY
      JUVLYRUYJYOUVKUYKUYHUVKUJPAYPWLZULQZUYNUNWNTUYOXLXMZUOZAUUBUUCAYOYMUUQAUA
      UIAUWJUXRFUXSTQABDEAUWJDUJPFDWMTQUNZXOUYQUUMXPAUVRUUDHIAUVRUUDUVNIJZUVPIJ
      UUDUVNUVPIJZIJZUUDAUVOVUEUVPIAUVNUUDVUCVUDXNXJAUUDUVNUVPVUDVUCUYQXPAVUGUU
      DKIJUUDAVUFKUUDIAUVJUVMYSIJZCOUVJKCOZVUFKAUVJVUHKCUYCAVUHKRZAVUJXKZYPUYFU
      VJUYGUYHVUKUYIAUYHVUJUYJUVLYQIJZYRNJKYRNJVUHKUYJVULKYRNUYHVULKRAUYHVULUVL
      YOUVLNJZIJUVLUVLUCZIJKUYHYQVUMUVLIUYHYQYOUVKHIJZMJUVLYONJVUMUYHYPVUOYOMUY
      HVUOYPUYHYPUHPVUOYPRYPYCYPWATVASUYHYOUVKUUQUYHUAUIZUYTXQUYHUVLYOUYHYOUVKV
      UPUYTQZVUPURVFSUYHVUMVUNUVLIUYHUVLVUQXRSUYHUVLVUQXSVFULXJUYJUVLYQYRVUAUYM
      UYNUPUYJYRUYNXTYDWNTUYOXLXMYAAUVJUVMYSCUYBVUBUYPYEAUVJUXFYFZUVJYGPZYHVUIK
      RAVUSVURUYBYIUVJCHYJTYDSAUUDVUDYKVGVFXJYLVFVA $.

    oddpwp1fsum.n $e |- ( ph -> -. 2 || N ) $.
    $( An odd power of a number increased by 1 expressed by a product with a
       finite sum.  (Contributed by AV, 15-Aug-2021.) $)
    oddpwp1fsum $p |- ( ph -> ( ( A ^ N ) + 1 )
                           = ( ( A + 1 ) x. sum_ k e. ( 0 ... ( N - 1 ) )
                                           ( ( -u 1 ^ k ) x. ( A ^ k ) ) ) ) $=
      ( c1 cneg cmin co cexp cmul caddc cc0 c2 cdvds wbr syl oveq1d cfz cv wceq
      csu wn cz wcel nnzd oddm1even mpbid m1expe pwp1fsum nnnn0d expcld mulid2d
      wb 3eqtr3rd ) AHIZDHJKZLKZBDLKZMKZHNKHVAMKZHNKBHNKOUSUAKURCUBZLKBVDLKMKCU
      DMKVAHNKAVBVCHNAUTHVAMAPUSQRZUTHUCAPDQRUEZVEGADUFUGVFVEUPADFUHDUISUJUSUKS
      TTABCDEFULAVCVAHNAVAABDEADFUMUNUOTUQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The division algorithm
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    divalglem0.1 $e |- N e. ZZ $.
    divalglem0.2 $e |- D e. ZZ $.
    $( Lemma for ~ divalg .  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    divalglem0 $p |- ( ( R e. ZZ /\ K e. ZZ ) -> ( D || ( N - R ) ->
                       D || ( N - ( R - ( K x. ( abs ` D ) ) ) ) ) ) $=
      ( cz wcel wa cmin co cdvds wbr cabs ax-mp wi mp3an1 syl2an cc zcn cmul wb
      cfv caddc iddvds dvdsabsb mpbid cn0 nn0abscl nn0zi dvdsmultr2 mp3an13 mpi
      anidms adantl zsubcl mpan zmulcl mpan2 dvds2add mpan2d wceq subsub breq2d
      zcnd sylibrd ) BGHZCGHZIZADBJKZLMZAVJCANUCZUAKZUDKZLMZADBVMJKJKZLMVIVKAVM
      LMZVOVHVQVGVHAVLLMZVQAGHZVRFVSAALMZVRAUEVSVTVRUBAAUFUNUGOVSVHVLGHZVRVQPFV
      LVSVLUHHFAUIOUJZACVLUKULUMUOVGVJGHZVMGHZVKVQIVOPZVHDGHZVGWCEDBUPUQVHWAWDW
      BCVLURUSZVSWCWDWEFAVJVMUTQRVAVIVPVNALVGBSHZVMSHZVPVNVBZVHBTVHVMWGVEDSHZWH
      WIWJWFWKEDTODBVMVCQRVDVF $.

    divalglem1.3 $e |- D =/= 0 $.
    $( Lemma for ~ divalg .  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    divalglem1 $p |- 0 <_ ( N + ( abs ` ( N x. D ) ) ) $=
      ( cmul co cabs cfv cle wbr cc0 zrei 0re wcel ax-mp cr wb recni abscli wne
      cneg caddc wo letrii c1 cn nnabscl mp2an nnge1 le0neg1 renegcli lemulge11
      cz wa mpanl12 sylanb mpan2 absmuli absnidi oveq1d syl5eq breqtrrd le0neg2
      remulcli absge0i letri sylbi jaoi cmin df-neg breq1i lesubadd2i bitri
      mpbi ) BUBZBAFGZHIZJKZLBVRUCGJKZBLJKZLBJKZUDVSBLBCMZNUEWAVSWBWAVPVPAHIZFG
      ZVRJWAUFWDJKZVPWEJKZWDUGOZWFAUNOALUAWHDEAUHUIWDUJPWALVPJKZWFWGBQOZWAWIRWC
      BUKPVPQOWDQOWIWFUOWGBWCULZAAADMZSZTVPWDUMUPUQURWAVRBHIZWDFGWEBABWCSWMUSWA
      WNVPWDFBWCUTVAVBVCWBVPLJKZVSWJWBWORWCBVDPWOLVRJKVSVQVQBAWCWLVESZVFVPLVRWK
      NVQWPTZVGURVHVIPVSLBVJGZVRJKVTVPWRVRJBVKVLLBVRNWCWQVMVNVO $.

    $d D r $.  $d N r $.
    divalglem2.4 $e |- S = { r e. NN0 | D || ( N - r ) } $.
    $( Lemma for ~ divalg .  (Contributed by Paul Chapman, 21-Mar-2011.)
       (Revised by AV, 2-Oct-2020.) $)
    divalglem2 $p |- inf ( S , RR , < ) e. S $=
      ( cc0 cfv wcel cn0 cmin co cdvds wbr cmul cabs cz ax-mp cuz wss c0 wne cr
      clt cinf cv crab ssrab2 eqsstri nn0uz sseqtri caddc zmulcl mp2an nn0abscl
      cle nn0zi zaddcl divalglem1 elnn0z mpbir2an cneg iddvds wb dvdsabsb mpbid
      anidms wi nn0negzi dvdsmultr2 mp3an zcn absmuli negeqi df-neg subidi wceq
      cc oveq1i nn0cni subsub4 3eqtr2ri abscli mulneg1i 3eqtr4i breqtrri breq2d
      recni oveq2 elrab2 ne0ii infssuzcl ) BIUAJZUBBUCUDBUEUFUGBKBLWOBACDUHZMNZ
      OPZDLUILHWRDLUJUKULUMCCAQNZRJZUNNZBXABKXALKZACXAMNZOPZXBXASKZIXAURPCSKZWT
      SKXEEWTWSSKZWTLKXFASKZXGEFCAUOUPWSUQTZUSCWTUTUPACEFGVAXAVBVCACRJZVDZARJZQ
      NZXCOAXLOPZAXMOPZXHXNFXHAAOPZXNAVEXHXPXNVFAAVGVIVHTXHXKSKXLSKXNXOVJFXJXFX
      JLKECUQTVKXLXHXLLKFAUQTUSAXKXLVLVMTWTVDZXJXLQNZVDXCXMWTXRCAXFCVTKZECVNTZX
      HAVTKFAVNTZVOVPXQIWTMNCCMNZWTMNZXCWTVQYBIWTMCXTVRWAXSXSWTVTKYCXCVSXTXTWTX
      IWBCCWTWCVMWDXJXLXJCXTWEWJXLAYAWEWJWFWGWHWRXDDXALBWPXAVSWQXCAOWPXACMWKWIH
      WLVCWMBIWNUP $.

    $d D q r x z $.  $d N q r x z $.  $d R x $.  $d S z $.
    $( Lemma for ~ divalg .  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    divalglem4 $p |- S = { r e. NN0 | E. q e. ZZ N = ( ( q x. D ) + r ) } $=
      ( cv co caddc wceq cz wrex cn0 wcel cmin cdvds wa vz cmul crab wbr zsubcl
      wb nn0z sylancr divides nn0cn zmulcl mpan2 zcn ax-mp subadd mp3an1 addcom
      cc eqeq1d bitrd syl2an eqcom 3bitr3g rexbidva pm5.32i oveq2 breq2d elrab2
      zcnd eqeq2d rexbidv elrab 3bitr4i eqriv ) UABCEJZAUBKZDJZLKZMZENOZDPUCZUA
      JZPQZACWBRKZSUDZTWCCVPWBLKZMZENOZTWBBQWBWAQWCWEWHWCWEVPWDMZENOZWHWCANQZWD
      NQZWEWJUFGWCCNQZWBNQWLFWBUGCWBUEUHEAWDUIUHWCWIWGENWCVONQZTWDVPMZWFCMZWIWG
      WCWBURQZVPURQZWOWPUFWNWBUJWNVPWNWKVPNQGVOAUKULVIWQWRTZWOWBVPLKZCMZWPCURQZ
      WQWRWOXAUFWMXBFCUMUNCWBVPUOUPWSWTWFCWBVPUQUSUTVAWDVPVBWFCVBVCVDUTVEACVQRK
      ZSUDWEDWBPBVQWBMZXCWDASVQWBCRVFVGIVHVTWHDWBPXDVSWGENXDVRWFCVQWBVPLVFVJVKV
      LVMVN $.

    divalglem5.5 $e |- R = inf ( S , RR , < ) $.
    $( Lemma for ~ divalg .  (Contributed by Paul Chapman, 21-Mar-2011.)
       (Revised by AV, 2-Oct-2020.) $)
    divalglem5 $p |- ( 0 <_ R /\ R < ( abs ` D ) ) $=
      ( vx cc0 cle wbr cn0 wcel cmin co cdvds breq2d cabs cfv clt wa divalglem2
      cr cinf eqeltri cv wceq oveq2 crab cbvrabv eqtri elrab2 simpli nn0ge0i wn
      mpbi cz wne cn nnabscl mp2an nngt0i 0re cc zcn ax-mp abscli ltnlei ssrab2
      cuz wss eqsstri nn0uz sseqtri nn0abscl nn0sub2 mp3an12 wi nn0z c1 cmul 1z
      a1i divalglem0 mpan2 recni mulid2i oveq2i breq2i syl6ib syl imp infssuzle
      sylanbrc sylancr syl5eqbr wb simpld nn0re lesub mp3an3 recnd subidd bitrd
      syl2anc mpbid mto mpbir pm3.2i ) LBMNBAUAUBZUCNZBBOPZADBQRZSNZBCPXOXQUDZB
      CUFUCUGZCJACDEFGHIUEUHADKUIZQRZSNZXQKBOCXTBUJYAXPASXTBDQUKTCADEUIZQRZSNZE
      OULZYBKOULIYEYBEKOYCXTUJYDYAASYCXTDQUKTUMUNZUOUSZUPZUQXNXMBMNZURYJXMLMNZL
      XMUCNYKURXMAUTPZALVAXMVBPGHAVCVDVELXMVFAYLAVGPGAVHVIVJZVKUSYJBBXMQRZMNZYK
      YJBXSYNMJYJCLVMUBZVNYNCPZXSYNMNCOYPCYFOIYEEOVLVOVPVQYJYNOPZADYNQRZSNZYQXM
      OPZXOYJYRYLUUAGAVRVIYIXMBVSVTYJXRYTXRYJYHWFZXOXQYTXOBUTPZXQYTWABWBUUCXQAD
      BWCXMWDRZQRZQRZSNZYTUUCWCUTPXQUUGWAWEABWCDFGWGWHUUFYSASUUEYNDQUUDXMBQXMXM
      YMWIWJWKWKWLWMWNWOWNYBYTKYNOCXTYNUJYAYSASXTYNDQUKTYGUOWQYNCLWPWRWSYJYOXMB
      BQRZMNZYKYJBUFPZUUJYOUUIWTZYJXOUUJYJXOXQUUBXABXBZWNZUUMUUJUUJXMUFPUUKYMBB
      XMXCXDXHYJUUHLXMMYJBYJBUUMXEXFTXGXIXJBXMXOUUJYIUULVIYMVKXKXL $.
  $}

  ${
    divalglem6.1 $e |- A e. NN $.
    divalglem6.2 $e |- X e. ( 0 ... ( A - 1 ) ) $.
    divalglem6.3 $e |- K e. ZZ $.
    $( Lemma for ~ divalg .  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    divalglem6 $p |- ( K =/= 0 ->
                       -. ( X + ( K x. A ) ) e. ( 0 ... ( A - 1 ) ) ) $=
      ( cc0 clt wbr co caddc c1 cmin wcel cle cz wb 0z mp2an cr wne wo cmul cfz
      wn zrei 0re lttri2i w3a nnzi elfzm11 simp3i simp1i nnrei remulcli ltadd1i
      mpbi cneg renegcli wa nnnn0i nn0ge0i lemulge12 an4s mpanl12 lt0neg1 ax-mp
      mpan znegcl zltp1le 0p1e1 breq1i bitri recni mulneg1i oveq2i eqtri suble0
      subnegi bitr3i 3imtr4i readdcli ltletri sylancr ltnlei sylib elfzle1 nsyl
      sylbi simp2i addge02 letri sylancl lenlti simp3bi jaoi ) BGUABGHIZGBHIZUB
      CBAUCJZKJZGALMJZUDJZNZUEZBGBFUFZUGUHWQXDWRWQGWTOIZXCWQWTGHIZXFUEWQWTAWSKJ
      ZHIZXHGOIZXGCAHIZXICPNZGCOIZXKCXBNZXLXMXKUIZEGPNZAPNZXNXOQRADUJZCGAUKSUQZ
      ULCAWSCXLXMXKXSUMUFZADUNZBAXEYAUOZUPUQLBURZOIZAYCAUCJZOIZWQXJYCTNZYDYFBXE
      USZATNZGAOIZYGYDUTYFYAAADVAVBZYIYGYJYDYFAYCVCVDVEVHWQGYCHIZYDBTNZWQYLQXEB
      VFVGYLGLKJZYCOIZYDXPYCPNZYLYOQRBPNZYPFBVIVGGYCVJSYNLYCOVKVLVMVMXJAYEMJZGO
      IZYFYRXHGOYRAWSURZMJXHYEYTAMBABXEVNAYAVNZVOVPAWSUUAWSYBVNVSVQVLYIYETNYSYF
      QYAYCAYHYAUOAYEVRSVTWAWTXHGCWSXTYBWBZAWSYAYBWBUGWCWDWTGUUBUGWEWFWTGXAWGWH
      WRWTAHIZXCWRAWTOIZUUCUEWRAWSOIZWSWTOIZUUDWRLBOIZUUEWRYNBOIZUUGXPYQWRUUHQR
      FGBVJSYNLBOVKVLVMYJUUGUUEYKYIYMYJUUGUTUUEYAXEABVCVEVHWIXMUUFXLXMXKXSWJWST
      NCTNXMUUFQYBXTWSCWKSUQAWSWTYAYBUUBWLWMAWTYAUUBWNWFXCWTPNZXFUUCXPXQXCUUIXF
      UUCUIQRXRWTGAUKSWOWHWPWI $.
  $}

  ${
    divalglem7.1 $e |- D e. ZZ $.
    divalglem7.2 $e |- D =/= 0 $.
    $( Lemma for ~ divalg .  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    divalglem7 $p |- ( ( X e. ( 0 ... ( ( abs ` D ) - 1 ) ) /\ K e. ZZ ) ->
                       ( K =/= 0 -> -. ( X + ( K x. ( abs ` D ) ) ) e.
                                       ( 0 ... ( ( abs ` D ) - 1 ) ) ) ) $=
      ( cc0 co wcel cz wne cmul caddc wn wi cif wceq oveq1 eleq1d notbid 0z cfv
      cabs c1 cmin cfz imbi2d neeq1 oveq2d imbi12d cn nnabscl mp2an cle wbr clt
      0le0 nngt0i w3a wb nnzi elfzm11 mpbir3an elimel divalglem6 dedth2h ) CFAU
      BUAZUCUDGUEGZHZBIHZBFJZCBVFKGZLGZVGHZMZNVJVHCFOZVKLGZVGHZMZNVIBFOZFJZVOVS
      VFKGZLGZVGHZMZNCBFFCVOPZVNVRVJWEVMVQWEVLVPVGCVOVKLQRSUFBVSPZVJVTVRWDBVSFU
      GWFVQWCWFVPWBVGWFVKWAVOLBVSVFKQUHRSUIVFVSVOAIHAFJVFUJHDEAUKULZCFVGFVGHZFI
      HZFFUMUNZFVFUOUNZTUPVFWGUQWIVFIHWHWIWJWKURUSTVFWGUTFFVFVAULVBVCBFITVCVDVE
      $.
  $}

  ${
    $d D q r x z $.  $d N q r x z $.  $d S x z $.  $d X z $.  $d Y z $.
    divalglem8.1 $e |- N e. ZZ $.
    divalglem8.2 $e |- D e. ZZ $.
    divalglem8.3 $e |- D =/= 0 $.
    divalglem8.4 $e |- S = { r e. NN0 | D || ( N - r ) } $.
    $( Lemma for ~ divalg .  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    divalglem8 $p |-
        ( ( ( X e. S /\ Y e. S ) /\ ( X < ( abs ` D ) /\ Y < ( abs ` D ) ) ) ->
          ( K e. ZZ -> ( ( K x. ( abs ` D ) ) = ( Y - X ) -> X = Y ) ) ) $=
      ( wcel cz co wceq wi wa cc0 cc cn0 vz cabs cfv clt wbr cmul cmin caddc wb
      w3a cv cdvds crab ssrab2 eqsstri nn0sscn sstri sseli wne cn nnabscl mp2an
      nnzi zmulcl mpan2 subadd syl3an 3com12 eqcom 3bitr3g 3adant1r 3adant2r wn
      zcnd c1 cfz breq1 eleq1 imbi12d elnn0z sylib anim1i df-3an sylibr elfzm11
      cle 0z vtoclga biimpd sylan9 impancom 3ad2ant2 imp divalglem7 sylan con2d
      ex 3adant2 df-ne con2bii syl6ibr sylbid oveq1 nncni mul02i syl6eq biimpac
      syld eqeq1d subeq0 syl2anr syl5ib ad2ant2r 3adant3 expd mpdd 3expia an4s
      ) EBLZEAUBUCZUDUEZFBLZFXTUDUEZCMLZCXTUFNZFEUGNZOZEFOZPZPXSYAQZYBYCQZYDYIY
      JYKYDUJZYGCROZYHYLYGFEYEUHNZOZYMYJYBYDYGYOUIZYCXSYBYDYPYAXSYBYDUJYFYEOZYN
      FOZYGYOYBXSYDYQYRUIZYBFSLZXSESLZYDYESLYSBSFBTSBADGUKUGNULUEZGTUMTKUUBGTUN
      UOZUPUQZURZBSEUUDURZYDYEYDXTMLZYEMLXTAMLARUSXTUTLIJAVAVBZVCZCXTVDVEVNFEYE
      VFVGVHYFYEVIYNFVIVJVKVLYLYOCRUSZVMZYMYLYOYNRXTVOUGNVPNZLZUUKYKYJYOUUMPYDY
      BYOYCUUMYBYCFUULLZYOUUMUAUKZXTUDUEZUUOUULLZPZYCUUNPUAFBUUOFOUUPYCUUQUUNUU
      OFXTUDVQUUOFUULVRVSUUOBLZUUPUUQUUSUUPQZUUOMLZRUUOWFUEZUUPUJZUUQUUTUVAUVBQ
      ZUUPQUVCUUSUVDUUPUUSUUOTLUVDBTUUOUUCURUUOVTWAWBUVAUVBUUPWCWDRMLUUGUUQUVCU
      IWGUUIUUORXTWEVBWDWQZWHYOUUNUUMFYNUULVRWIWJWKWLYLUUJUUMYJYDUUJUUMVMPZYKYJ
      EUULLZYDUVFXSYAUVGUURYAUVGPUAEBUUOEOUUPYAUUQUVGUUOEXTUDVQUUOEUULVRVSUVEWH
      WMACEIJWNWOWRWPXHUUJYMCRWSWTXAXBYLYGYMYHYJYKYGYMQZYHPZYDXSYBUVIYAYCUVHRYF
      OZXSYBQZYHYMYGUVJYMYERYFYMYERXTUFNRCRXTUFXCXTXTUUHXDXEXFXIXGUVKYFROZFEOZU
      VJYHYBYTUUAUVLUVMUIXSUUEUUFFEXJXKYFRVIFEVIVJXLXMXNXOXPXQXR $.

    ${
      $d D k r x y $.  $d R x $.  $d S k x y $.
      divalglem9.5 $e |- R = inf ( S , RR , < ) $.
      $( Lemma for ~ divalg .  (Contributed by Paul Chapman, 21-Mar-2011.)
         (Revised by AV, 2-Oct-2020.) $)
      divalglem9 $p |- E! x e. S x < ( abs ` D ) $=
        ( wbr wa wceq wcel cc0 co cmin cz cdvds vy vk cv cabs cfv clt wreu wrex
        wi wral cr cinf divalglem2 eqeltri divalglem5 simpri breq1 rspcev mp2an
        cle cn0 oveq2 breq2d elrab2 simplbi nn0zd zsubcl anim12i syl2an simprbi
        cmul mpan dvds2sub mp3an1 sylc cc zcn caddc recni subidi oveq1i subsub2
        zrei syl5eq sub4 mpanl12 subcl ancoms addid2d 3eqtr3d mpbid wb absdvdsb
        0cn sylancr wne cn nnabscl divides adantr divalglem8 rexlimdv ex rgen2a
        nnzi mpd reu4 mpbir2an ) AUCZBUDUEZUFLZADUGXKADUHZXKUAUCZXJUFLZMZXIXMNZ
        UIZUADUJADUJCDOCXJUFLZXLCDUKUFULDKBDEFGHIJUMUNPCUTLXRBCDEFGHIJKUOUPXKXR
        ACDXICXJUFUQURUSXQAUADXIDOZXMDOZMZXOXPYAXOMZUBUCZXJVKQXMXIRQZNZUBSUHZXP
        YAYFXOYAXJYDTLZYFYABYDTLZYGYABEXIRQZEXMRQZRQZTLZYHYAYISOZYJSOZMZBYITLZB
        YJTLZMZYLXSXISOZXMSOZYOXTXSXIXSXIVAOZYPBEFUCZRQZTLZYPFXIVADUUBXINUUCYIB
        TUUBXIERVBVCJVDZVEVFZXTXMXTXMVAOZYQUUDYQFXMVADUUBXMNUUCYJBTUUBXMERVBVCJ
        VDZVEVFZYSYMYTYNESOZYSYMGEXIVGVLUUJYTYNGEXMVGVLVHVIXSYPXTYQXSUUAYPUUEVJ
        XTUUGYQUUHVJVHBSOZYMYNYRYLUIHBYIYJVMVNVOYAYKYDBTXSYSYTYKYDNZXTUUFUUIYSX
        IVPOZXMVPOZUULYTXIVQXMVQUUMUUNMZEERQZXIXMRQZRQZPYDVRQZYKYDUUOUURPUUQRQZ
        UUSUUPPUUQREEEGWCVSZVTWAPVPOUUMUUNUUTUUSNWNPXIXMWBVNWDEVPOZUVBUUOUURYKN
        UVAUVAEEXIXMWEWFUUOYDUUNUUMYDVPOXMXIWGWHWIWJVIVIVCWKXSYSYTYHYGWLZXTUUFU
        UIYSYTMZUUKYDSOZUVCHYTYSUVEXMXIVGWHZBYDWMWOVIWKXSYSYTYGYFWLZXTUUFUUIUVD
        XJSOUVEUVGXJUUKBPWPXJWQOHIBWRUSXEUVFUBXJYDWSWOVIWKWTYBYEXPUBSBDYCEXIXMF
        GHIJXAXBXFXCXDXKXNAUADXIXMXJUFUQXGXH $.
    $}

    $( Lemma for ~ divalg .  (Contributed by Paul Chapman, 21-Mar-2011.)
       (Proof shortened by AV, 2-Oct-2020.) $)
    divalglem10 $p |- E! r e. ZZ E. q e. ZZ
                   ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) $=
      ( vx cc0 wbr clt caddc wceq cz wrex wa anbi2i bitri cle cabs cfv cmul w3a
      cv co wreu cr cinf eqid divalglem9 wcel weu cn0 elnn0z ancom anbi1i anass
      an12 oveq2 eqeq2d rexbidv divalglem4 elrab2 3bitr4i df-3an rexbii r19.42v
      eubii df-reu mpbi breq2 breq1 3anbi123d cbvreuv ) KJUFZUALZVQAUBUCZMLZCEU
      FAUDUGZVQNUGZOZUEZEPQZJPUHZKDUFZUALZWGVSMLZCWAWGNUGZOZUEZEPQZDPUHVTJBUHZW
      FJABUIMUJZBCDFGHIWOUKULVQBUMZVTRZJUNVQPUMZWERZJUNWNWFWQWSJVTVQUOUMZRZWCEP
      QZRZWRVRVTRZXBRZRZWQWSXCWRXDRZXBRXFXAXGXBXAVTWRVRRZRZXGWTXHVTVQUPSXIWRVTV
      RRZRXGVTWRVRUTXJXDWRVTVRUQSTTURWRXDXBUSTVTWPRVTWTXBRZRWQXCWPXKVTWKEPQXBDV
      QUOBWGVQOZWKWCEPXLWJWBCWGVQWANVAVBVCABCDEFGHIVDVESWPVTUQVTWTXBUSVFWEXEWRW
      EXDWCRZEPQXEWDXMEPVRVTWCVGVHXDWCEPVITSVFVJVTJBVKWEJPVKVFVLWEWMJDPVQWGOZWD
      WLEPXNVRWHVTWIWCWKVQWGKUAVMVQWGVSMVNXNWBWJCVQWGWANVAVBVOVCVPVL $.
  $}

  ${
    $d D q r $.  $d N q r $.
    $( The division algorithm (theorem).  Dividing an integer ` N ` by a
       nonzero integer ` D ` produces a (unique) quotient ` q ` and a unique
       remainder ` 0 <_ r < ( abs `` D ) ` .  Theorem 1.14 in [ApostolNT]
       p. 19.  The proof does not use ` / ` , ` |_ ` or ` mod ` .  (Contributed
       by Paul Chapman, 21-Mar-2011.) $)
    divalg $p |- ( ( N e. ZZ /\ D e. ZZ /\ D =/= 0 ) -> E! r e. ZZ E. q e. ZZ
                   ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) ) $=
      ( cz wcel cc0 wne cv wbr cabs clt cmul co caddc wceq w3a wrex wreu c1 cle
      cfv wa cif eqeq1 3anbi3d rexbidv reubidv fveq2 breq2d oveq2 oveq1d eqeq2d
      3anbi23d cmin cdvds cn0 crab 1z elimel simpl eleq1 elimdhyp simpr ax-1ne0
      neeq1 eqid divalglem10 dedth2h 3impb ) BEFZAEFZAGHZGCIZUAJZVNAKUBZLJZBDIZ
      AMNZVNONZPZQZDERZCESZVKVLVMUCZWDVOVQVKBTUDZVTPZQZDERZCESVOVNWEATUDZKUBZLJ
      ZWFVRWJMNZVNONZPZQZDERZCESBATTBWFPZWCWICEWRWBWHDEWRWAWGVOVQBWFVTUEUFUGUHA
      WJPZWIWQCEWSWHWPDEWSVQWLWGWOVOWSVPWKVNLAWJKUIUJWSVTWNWFWSVSWMVNOAWJVRMUKU
      LUMUNUGUHWJWJWFVNUONUPJCUQURZWFCDBTEUSUTWEVLWJEFTEFATVLVMVAAWJEVBTWJEVBUS
      VCWEVMWJGHTGHATVLVMVDAWJGVFTWJGVFVEVCWTVGVHVIVJ $.

    $( Express the division algorithm as stated in ~ divalg in terms of
       ` || ` .  (Contributed by Paul Chapman, 31-Mar-2011.) $)
    divalgb $p |- ( ( N e. ZZ /\ D e. ZZ /\ D =/= 0 ) ->
                    ( E! r e. ZZ E. q e. ZZ ( 0 <_ r /\ r < ( abs ` D ) /\
                                              N = ( ( q x. D ) + r ) ) <->
                      E! r e. NN0 ( r < ( abs ` D ) /\ D || ( N - r ) ) ) ) $=
      ( cz wcel cc0 cv wbr co caddc wceq w3a wrex wreu wa cn0 wb cc zcn cle cfv
      cabs clt cmul cmin cdvds wne zsubcl divides sylan2 3impb 3com12 wi zmulcl
      zcnd subadd syl3an addcom syl2an 3adant1 eqeq1d bitrd eqcom 3expia 3impia
      3bitr3g expcomd imp rexbidva 3com23 anbi2d df-3an rexbii r19.42v syl6rbbr
      bitri anass syl6bb 3expa reubidva weu elnn0z anbi1i eubii df-reu 3bitr4ri
      3adant3 ) BEFZAEFZGCHZUAIZWKAUCUBUDIZBDHZAUEJZWKKJZLZMZDENZCEOZWMABWKUFJZ
      UGIZPZCQOZRAGUHWIWJPZWTWLXCPZCEOZXDXEWSXFCEWIWJWKEFZWSXFRWIWJXHMZWSWLWMPZ
      XBPZXFXIXKXJWQDENZPZWSXIXBXLXJXIXBWOXALZDENZXLWJWIXHXBXORZWJWIXHXPWIXHPZW
      JXAEFXPBWKUIDAXAUJUKULUMWIXHWJXOXLRWIXHWJMZXNWQDEXRWNEFZXNWQRZWIXHWJXSXTU
      NXQXSWJXTWIXHXSWJPZXTWIXHYAMZXAWOLZWPBLZXNWQYBYCWKWOKJZBLZYDWIBSFXHWKSFZY
      AWOSFZYCYFRBTWKTZYAWOWNAUOUPZBWKWOUQURYBYEWPBXHYAYEWPLZWIXHYGYHYKYAYIYJWK
      WOUSUTVAVBVCXAWOVDWPBVDVGVEVHVFVIVJVKVCVLWSXJWQPZDENXMWRYLDEWLWMWQVMVNXJW
      QDEVOVQVPWLWMXBVRVSVTWAWKQFZXCPZCWBXHXFPZCWBXDXGYNYOCYNXHWLPZXCPYOYMYPXCW
      KWCWDXHWLXCVRVQWEXCCQWFXFCEWFWGVSWH $.

    $( The division algorithm (theorem) for a positive divisor.  (Contributed
       by Paul Chapman, 21-Mar-2011.) $)
    divalg2 $p |- ( ( N e. ZZ /\ D e. NN ) ->
                    E! r e. NN0 ( r < D /\ D || ( N - r ) ) ) $=
      ( vq cz wcel cn wa cv cabs cfv clt wbr cmin co cn0 wreu cc0 w3a mpbid wne
      cdvds nnz nnne0 jca cmul caddc wceq wrex divalg divalgb 3expb sylan2 nnre
      cle wb nnnn0 nn0ge0d absidd breq2d anbi1d reubidv adantl ) BEFZAGFZHCIZAJ
      KZLMZABVFNOUBMZHZCPQZVFALMZVIHZCPQZVEVDAEFZARUAZHVKVEVOVPAUCAUDUEVDVOVPVK
      VDVOVPSRVFUOMVHBDIAUFOVFUGOUHSDEUICEQVKABCDUJABCDUKTULUMVEVKVNUPVDVEVJVMC
      PVEVHVLVIVEVGAVFLVEAAUNVEAAUQURUSUTVAVBVCT $.
  $}

  ${
    $d D z $.  $d N z $.  $d R z $.
    $( The result of the ` mod ` operator satisfies the requirements for the
       remainder ` R ` in the division algorithm for a positive divisor
       (compare ~ divalg2 and ~ divalgb ).  This demonstration theorem
       justifies the use of ` mod ` to yield an explicit remainder from this
       point forward.  (Contributed by Paul Chapman, 31-Mar-2011.)  (Revised by
       AV, 21-Aug-2021.) $)
    divalgmod $p |- ( ( N e. ZZ /\ D e. NN ) -> ( R = ( N mod D ) <->
                      ( R e. NN0 /\ ( R < D /\ D || ( N - R ) ) ) ) ) $=
      ( vz cz wcel wa cmo co wceq clt wbr cmin cdvds cn0 csn syl2an cmul adantl
      cr cn cv crab ovex snid eleq1 mpbiri elsni impbii crio crp zre nnrp modlt
      cdiv cfl cfv cc0 wne nnne0 redivcl syl3an 3anidm23 flcld nnz zmodcl nn0zd
      nnre zsubcl syldan cc nncn zcnd mulcomd modval nn0cnd zmulcl zcn subexsub
      syl2an2 adantr mpbid eqtr3d dvds0lem syl31anc wreu wb divalg2 breq1 oveq2
      breq2d anbi12d riota2 syl2anc mpbi2and eqcomd sneqd snriota eqtr4d eleq2d
      syl syl5bb elrab syl6bb ) CEFZAUAFZGZBCAHIZJZBDUBZAKLZACXJMIZNLZGZDOUCZFZ
      BOFBAKLZACBMIZNLZGZGXIBXHPZFZXGXPXIYBXIYBXHYAFXHCAHUDUEBXHYAUFUGBXHUHUIXG
      YAXOBXGYAXNDOUJZPZXOXGXHYCXGYCXHXGXHAKLZACXHMIZNLZYCXHJZXECTFZAUKFZYEXFCU
      LZAUMZCAUNQXGCAUOIZUPUQZEFZAEFZYFEFZYNARIZYFJYGXGYMXEXFYMTFZXEYIXFATFXFAU
      RUSYSYKAVHAUTCAVAVBVCVDZXFYPXEAVEZSXEXFXHEFYQXGXHCAVFZVGCXHVIVJXGAYNRIZYR
      YFXGAYNXFAVKFXEAVLSXGYNYTVMVNXGXHCUUCMIJZUUCYFJXEYIYJUUDXFYKYLCAVOQXGXHUU
      CCXGXHUUBVPXGUUCXFYPXEYOUUCEFUUAYTAYNVQVTVMXECVKFXFCVRWAVSWBWCYNAYFWDWEXG
      XHOFXNDOWFZYEYGGZYHWGUUBACDWHZXNUUFDOXHXJXHJZXKYEXMYGXJXHAKWIUUHXLYFANXJX
      HCMWJWKWLWMWNWOWPWQXGUUEXOYDJUUGXNDOWRXAWSWTXBXNXTDBOXJBJZXKXQXMXSXJBAKWI
      UUIXLXRANXJBCMWJWKWLXCXD $.
  $}

  ${
    $d D r z $.  $d N r z $.
    $( Obsolete proof of ~ divalgmod as of 21-Aug-2021.  (Contributed by Paul
       Chapman, 31-Mar-2011.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    divalgmodOLD $p |- ( ( N e. ZZ /\ D e. NN ) -> ( r = ( N mod D ) <->
                      ( r e. NN0 /\ ( r < D /\ D || ( N - r ) ) ) ) ) $=
      ( vz cz wcel wa cv co csn clt wbr cmin cdvds cn0 wceq cr syl2an cmul cc
      cmo crab crio crp zre nnrp modlt cdiv cfl cfv cc0 wne nnre redivcl syl3an
      cn nnne0 3anidm23 flcld nnz adantl zmodcl zsubcl syldan nncn zcnd mulcomd
      nn0zd modval wb zcn adantr zmulcl anabss7 nn0cnd subsub23 syl3anc 3bitr3g
      eqcom mpbid eqtr3d dvds0lem syl31anc divalg2 breq1 breq2d anbi12d syl2anc
      wreu oveq2 riota2 mpbi2and eqcomd sneqd snriota eqtr4d eleq2d velsn elrab
      syl ) BEFZAUPFZGZCHZBAUAIZJZFXDDHZAKLZABXGMIZNLZGZDOUBZFXDXEPXDOFXDAKLZAB
      XDMIZNLZGZGXCXFXLXDXCXFXKDOUCZJZXLXCXEXQXCXQXEXCXEAKLZABXEMIZNLZXQXEPZXAB
      QFZAUDFZXSXBBUEZAUFZBAUGRXCBAUHIZUIUJZEFZAEFZXTEFZYHASIZXTPYAXCYGXAXBYGQF
      ZXAYCXBAQFXBAUKULYMYEAUMAUQBAUNUOURUSZXBYJXAAUTZVAXAXBXEEFYKXCXEBAVBZVHBX
      EVCVDXCAYHSIZYLXTXCAYHXBATFXAAVEVAXCYHYNVFVGXCXEBYQMIZPZYQXTPZXAYCYDYSXBY
      EYFBAVIRXCYRXEPZXTYQPZYSYTXCBTFZYQTFXETFUUAUUBVJXAUUCXBBVKVLXCYQXAXBYQEFZ
      XBYJYIUUDXCYOYNAYHVMRVNVFXCXEYPVOBYQXEVPVQYRXEVSXTYQVSVRVTWAYHAXTWBWCXCXE
      OFXKDOWIZXSYAGZYBVJYPABDWDZXKUUFDOXEXGXEPZXHXSXJYAXGXEAKWEUUHXIXTANXGXEBM
      WJWFWGWKWHWLWMWNXCUUEXLXRPUUGXKDOWOWTWPWQCXEWRXKXPDXDOXGXDPZXHXMXJXOXGXDA
      KWEUUIXIXNANXGXDBMWJWFWGWSVR $.
  $}

  $( The result of the ` mod ` operator satisfies the requirements for the
     remainder ` R ` in the division algorithm for a positive divisor.  Variant
     of ~ divalgmod .  (Contributed by Stefan O'Rear, 17-Oct-2014.)  (Proof
     shortened by AV, 21-Aug-2021.) $)
  divalgmodcl $p |- ( ( N e. ZZ /\ D e. NN /\ R e. NN0 )
                    -> ( R = ( N mod D ) <-> ( R < D /\ D || ( N - R ) ) ) ) $=
    ( cz wcel cn cn0 cmo co wceq clt wbr cmin cdvds wa wb divalgmod baibd 3impa
    ) CDEZAFEZBGEZBCAHIJZBAKLACBMINLOZPTUAOUCUBUDABCQRS $.

  ${
    $d D z $.  $d N z $.  $d R z $.
    $( The result of the modulo operation is the remainder of the division
       algorithm.  (Contributed by AV, 19-Aug-2021.) $)
    modremain $p |- ( ( N e. ZZ /\ D e. NN /\ ( R e. NN0 /\ R < D ) )
                      -> ( ( N mod D ) = R
                           <-> E. z e. ZZ ( ( z x. D ) + R ) = N ) ) $=
      ( cmo co wceq cz wcel cn cn0 wbr wa wrex eqcom wb 3ad2ant3 adantr syl5bb
      cc clt cv cmul caddc cmin cdvds divalgmodcl 3adant3r ibar adantl 3ad2ant2
      w3a nnz simp1 zsubcld divides syl2anc zcn 3ad2ant1 nn0cn zmulcld subadd2d
      nn0z simpr zcnd rexbidva bitrd 3bitr2d ) DBEFZCGCVIGZDHIZBJIZCKIZCBUALZMZ
      ULZAUBZBUCFZCUDFDGZAHNZVICOVPVJVNBDCUEFZUFLZMZWBVTVKVLVMVJWCPVNBCDUGUHVOV
      KWBWCPZVLVNWDVMVNWBUIUJQVPWBVRWAGZAHNZVTVPBHIZWAHIWBWFPVLVKWGVOBUMUKZVPDC
      VKVLVOUNVOVKCHIZVLVMWIVNCVCRQUOABWAUPUQVPWEVSAHWEWAVRGVPVQHIZMZVSVRWAOWKD
      CVRVPDTIZWJVKVLWLVODURUSRVPCTIZWJVOVKWMVLVMWMVNCUTRQRWKVRWKVQBVPWJVDVPWGW
      JWHRVAVEVBSVFVGVHS $.
  $}

  ${
    $d D r x $.  $d K r $.  $d N r x $.
    $( Corollary of the division algorithm.  If an integer ` D ` greater than
       ` 1 ` divides ` N ` , then it does not divide any of ` N - 1 ` ,
       ` N - 2 ` ... ` N - ( D - 1 ) ` .  (Contributed by Paul Chapman,
       31-Mar-2011.) $)
    ndvdssub $p |- ( ( N e. ZZ /\ D e. NN /\ ( K e. NN /\ K < D ) ) ->
                     ( D || N -> -. D || ( N - K ) ) ) $=
      ( vr vx wcel clt wbr wa cdvds cmin co wi cn0 wceq wral breq1 oveq2 breq2d
      cc0 cz cn wn w3a wne nnnn0 nnne0 jca df-ne anbi2i cv wrex divalg2 anbi12d
      wreu sylib nngt0 3ad2ant2 zcn subid1d biimpar 3adant2 3expa anim2i ancoms
      reu4 0nn0 anbi2d eqeq2 imbi12d rspcv syl5 ralimi simpl2im r19.21v pm2.43i
      ax-mp expd 3impia eqeq1 syl5com pm4.14 syl6ib exp4a com23 imp4a syl7 impd
      syl7bi 3expia ) CUAFZAUBFZBUBFZBAGHZIZACJHZACBKLZJHZUCZMWKWLIZWPWOWSWKWLW
      PWOWSMWKWLWPUDZWMWNWSXAWNWMWSWMBNFZBTUEZIXAWNWSWMXBXCBUFBUGUHXAWNXBXCWSXA
      XBWNXCWSMXAXBWNXCWSWNXCIWNBTOZUCZIZXAXBWSXCXEWNBTUIUJXAXBWNWRIZXDMZXFWSMX
      ADUKZAGHZACXIKLZJHZIZXITOZMZDNPZXBXHWKWLWPXPWTWPXPMWTWTWPXPWTWTWPIZXOMZDN
      PZXQXPMWTXMDNULZXMEUKZAGHZACYAKLZJHZIZIZXIYAOZMZENPZDNPZXSWTXMDNUOXTYJIAC
      DUMXMYEDENYGXJYBXLYDXIYAAGQYGXKYCAJXIYACKRSUNVFUPYIXRDNYIXQXMXNXQXMIXMTAG
      HZACTKLZJHZIZIZYIXNXMXQYOXQYNXMWKWLWPYNXAYKYMWLWKYKWPAUQURWKWPYMWLWKYMWPW
      KYLCAJWKCCUSUTSVAVBUHVCVDVETNFYIYOXNMZMVGYHYPETNYATOZYFYOYGXNYQYEYNXMYQYB
      YKYDYMYATAGQYQYCYLAJYATCKRSUNVHYATXIVIVJVKVQVLVRVMVNXQXODNVOUPVRVPVSXOXHD
      BNXIBOZXMXGXNXDYRXJWNXLWRXIBAGQYRXKWQAJXIBCKRSUNXIBTVTVJVKWAWNWRXDWBWCWIW
      DWEWFWGWEWHWJWEVS $.
  $}

  $( Corollary of the division algorithm.  If an integer ` D ` greater than
     ` 1 ` divides ` N ` , then it does not divide any of ` N + 1 ` ,
     ` N + 2 ` ... ` N + ( D - 1 ) ` .  (Contributed by Paul Chapman,
     31-Mar-2011.) $)
  ndvdsadd $p |- ( ( N e. ZZ /\ D e. NN /\ ( K e. NN /\ K < D ) ) ->
                   ( D || N -> -. D || ( N + K ) ) ) $=
    ( cz wcel cn clt wbr wa w3a cdvds cmin co wn wi cc0 cr wb syl2an cc syl2anr
    caddc nnre posdif pm5.32i nnz zsubcl elnnz biimpri sylan sylbi anasss nngt0
    ltsubpos biimpd expcom mpdi imp adantrr jca ndvdssub syld3an3 zaddcl sylan2
    3adant1 dvdssubr an12s 3impb wceq zcn subsub3 syl3an breq2d bitr4d 3adant3r
    nncn notbid sylibrd ) CDEZAFEZBFEZBAGHZIZJACKHZACABLMZLMZKHZNZACBUBMZKHZNZV
    SVTWCWEFEZWEAGHZIZWDWHOVTWCWNVSVTWCIWLWMVTWAWBWLVTWAIZWBIWOPWEGHZIWLWOWBWPW
    ABQEZAQEZWBWPRVTBUCZAUCZBAUDUAUEWOWEDEZWPWLVTADEZBDEZXAWAAUFZBUFZABUGSWLXAW
    PIWEUHUIUJUKULVTWAWMWBVTWAWMVTWAPBGHZWMBUMWAVTXFWMOWAVTIXFWMWAWQWRXFWMRVTWS
    WTBAUNSUOUPUQURUSUTVEAWECVAVBVSVTWAWKWHRWBVSVTWAJZWJWGXGWJAWIALMZKHZWGVSVTW
    AWJXIRZVTVSWAXJVTXBWIDEZXJVSWAIXDWAVSXCXKXECBVCVDAWIVFSVGVHXGWFXHAKVSCTEVTA
    TEWABTEWFXHVICVJAVPBVPCABVKVLVMVNVQVOVR $.

  $( Special case of ~ ndvdsadd .  If an integer ` D ` greater than ` 1 `
     divides ` N ` , it does not divide ` N + 1 ` .  (Contributed by Paul
     Chapman, 31-Mar-2011.) $)
  ndvdsp1 $p |- ( ( N e. ZZ /\ D e. NN /\ 1 < D ) ->
                  ( D || N -> -. D || ( N + 1 ) ) ) $=
    ( c1 clt wbr cz wcel cn wa cdvds caddc co wn wi 1nn jctl ndvdsadd syl3an3 )
    CADEZBFGAHGCHGZSIABJEABCKLJEMNSTOPACBQR $.

  ${
    ndvdsi.1 $e |- A e. NN $.
    ndvdsi.2 $e |- Q e. NN0 $.
    ndvdsi.3 $e |- R e. NN $.
    ndvdsi.4 $e |- ( ( A x. Q ) + R ) = B $.
    ndvdsi.5 $e |- R < A $.
    $( A quick test for non-divisibility.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    ndvdsi $p |- -. A || B $=
      ( cmul co caddc cdvds wbr wn cz wcel nnzi mp2an cn dvdsmul1 clt wa zmulcl
      nn0zi wi pm3.2i ndvdsadd mp3an ax-mp breq2i mtbi ) AACJKZDLKZMNZABMNAUMMN
      ZUOOZAPQZCPQZUPAERZCFUEZACUASUMPQZATQDTQZDAUBNZUCUPUQUFURUSVBUTVAACUDSEVC
      VDGIUGADUMUHUIUJUNBAMHUKUL $.
  $}

  ${
    $d M x $.
    $( The floor of an odd integer divided by 4.  (Contributed by AV,
       17-Jun-2021.) $)
    flodddiv4 $p |- ( ( M e. ZZ /\ N = ( ( 2 x. M ) + 1 ) )
                      -> ( |_ ` ( N / 4 ) )
                         = if ( 2 || M , ( M / 2 ) , ( ( M - 1 ) / 2 ) ) ) $=
      ( cz wcel c2 co c1 caddc wceq wa c4 cdiv cfl wbr cc cc0 a1i eqtrd adantr
      c3 cmul cfv cdvds cmin cif oveq1 wne 2cnd zcn mulcld 1cnd 4cn 4ne0 pm3.2i
      vx divdir syl3anc 2t2e4 eqcomi oveq2d 2ne0 oveq1d sylan9eqr fveq2d iftrue
      divcan5d cle clt cr 1re 0le1 4re 4pos divge0 mp4an 1lt4 recgt1 mp2an mpbi
      wb 2z id dvdsval2 biimpac cn nnrecre ax-mp flbi2 sylancl mpbiri eqtr4d wn
      4nn iffalse cv wrex odd2np1 wi ax-1cn 2cnne0 divcan5 mp3an oveq12i eqtr3i
      2t1e2 oveq1i 2cn divdiri 2p1e3 3eqtr2i 3re 3pos ltleii 3lt4 nnrp divlt1lt
      0re crp mpbir redivcli eqcoms zmulcld zcnd divcan3d halfcn reccli addassd
      mpan2 pncan1 syl 3eqtr4rd adantl rexlimdva sylbid impcom pm2.61ian eqcomd
      ex ) ACDZBEAUAFZGHFZIZJZBKLFZMUBAELFZGKLFZHFZMUBZEAUCNZUUEAGUDFZELFZUEZUU
      CUUDUUGMUUBYSUUDUUAKLFZUUGBUUAKLUFYSUUMYTKLFZUUFHFZUUGYSYTODGODZKODZKPUGZ
      JZUUMUUOIYSEAYSUHZAUIZUJYSUKUUSYSUUQUURULUMUNQYTGKUPUQYSUUNUUEUUFHYSUUNYT
      EEUAFZLFUUEYSKUVBYTLKUVBIYSUVBKURUSQUTYSAEEUVAUUTUUTEPUGZYSVAQZUVDVFRVBRV
      CVDYSUUHUULIUUBYSUULUUHUUIYSUULUUHIUUIYSJZUULUUEUUHUUIUULUUEIYSUUIUUEUUKV
      ESUVEUUHUUEIZPUUFVGNZUUFGVHNZJZUVGUVHGVIDPGVGNKVIDZPKVHNZUVGVJVKVLVMGKVNV
      OGKVHNZUVHVPUVJUVKUVLUVHVTVLVMKVQVRVSUNUVEUUECDZUUFVIDZUVFUVIVTYSUUIUVMYS
      ECDZUVCYSUUIUVMVTUVOYSWAQUVDYSWBEAWCUQWDKWEDZUVNWMKWFWGUUFUUEWHWIWJWKUUIW
      LZYSJUULUUKUUHUVQUULUUKIYSUUIUUEUUKWNSYSUVQUUKUUHIZYSUVQEUOWOZUAFZGHFZAIZ
      UOCWPUVRUOAWQYSUWBUVRUOCUVSCDZUWBUVRWRYSUWCUWBUVRUWCUWBJZUVSGELFZUUFHFZHF
      ZMUBZUVSUUHUUKUWCUWHUVSIUWBUWCUWHUVSTKLFZHFZMUBZUVSUWCUWGUWJMUWCUWFUWIUVS
      HUWFUWIIUWCUWFEKLFZUUFHFEGHFZKLFUWIUWEUWLUUFHEGUAFZUVBLFZUWEUWLUUPEODUVCJ
      ZUWPUWOUWEIWSWTWTGEEXAXBUWNEUVBKLXEURXCXDXFEGKXGWSULUMXHUWMTKLXIXFXJQUTVD
      UWCUWKUVSIZPUWIVGNZUWIGVHNZJZUWRUWSTVIDZPTVGNUVJUVKUWRXKPTXQXKXLXMVLVMTKV
      NVOUWSTKVHNZXNUXAKXRDZUWSUXBVTXKUVPUXCWMKXOWGTKXPVRXSUNUWCUWIVIDUWQUWTVTT
      KXKVLUMXTUWIUVSWHYHWJRSUWDUUGUWGMUWDUUGUVSUWEHFZUUFHFZUWGUWDUUEUXDUUFHUWB
      UWCUUEUWAELFZUXDUUEUXFIAUWAAUWAELUFYAUWCUXFUVTELFZUWEHFZUXDUWCUVTODZUUPUW
      PUXFUXHIUWCUVTUWCEUVSUVOUWCWAQUWCWBYBYCZUWCUKUWPUWCWTQUVTGEUPUQUWCUXGUVSU
      WEHUWCUVSEUVSUIZUWCUHUVCUWCVAQYDZVBRVCVBUWCUXEUWGIUWBUWCUVSUWEUUFUXKUWEOD
      UWCYEQUUFODUWCKULUMYFQYGSRVDUWDUUKUXGUVSUWDUUJUVTELUWBUWCUUJUWAGUDFZUVTUU
      JUXMIAUWAAUWAGUDUFYAUWCUXIUXMUVTIUXJUVTYIYJVCVBUWCUXGUVSIUWBUXLSRYKYRYLYM
      YNYORYPYQSR $.
  $}

  $( The floor of an integer divided by a nonzero integer not dividing the
     first integer is less than the integer divided by the positive integer.
     (Contributed by AV, 4-Jul-2021.) $)
  fldivndvdslt $p |- ( ( K e. ZZ /\ ( L e. ZZ /\ L =/= 0 ) /\ -. L || K )
                       -> ( |_ ` ( K / L ) ) < ( K / L ) ) $=
    ( cz wcel cc0 wne wa cdvds wbr wn w3a co cr cfl cfv clt zre adantr ad2antrl
    cdiv simprr redivcld 3adant3 wb simprl simpl dvdsval2 syl3anc notbid flltnz
    biimp3a syl2anc ) ACDZBCDZBEFZGZBAHIZJZKABTLZMDZUSCDZJZUSNOUSPIUMUPUTURUMUP
    GZABUMAMDUPAQRUNBMDUMUOBQSUMUNUOUAZUBUCUMUPURVBVCUQVAVCUNUOUMUQVAUDUMUNUOUE
    VDUMUPUFBAUGUHUIUKUSUJUL $.

  $( The floor of an odd number divided by 4 is less than the odd number
     divided by 4.  (Contributed by AV, 4-Jul-2021.) $)
  flodddiv4lt $p |- ( ( N e. ZZ /\ -. 2 || N )
                      -> ( |_ ` ( N / 4 ) ) < ( N / 4 ) ) $=
    ( cz wcel c2 cdvds wbr wn wa c4 cc0 wne cdiv co cfl cfv clt simpl 4z pm3.2i
    4ne0 a1i 4dvdseven con3i adantl fldivndvdslt syl3anc ) ABCZDAEFZGZHZUGIBCZI
    JKZHZIAEFZGZAILMZNOUPPFUGUIQUMUJUKULRTSUAUIUOUGUNUHAUBUCUDAIUEUF $.

  $( The floor of an odd number divided by 4, multiplied by 2 is less than the
     half of the odd number.  (Contributed by AV, 4-Jul-2021.) $)
  flodddiv4t2lthalf $p |- ( ( N e. ZZ /\ -. 2 || N )
                            -> ( ( |_ ` ( N / 4 ) ) x. 2 ) < ( N / 2 ) ) $=
    ( cz wcel c2 cdvds wbr wa c4 cdiv co cmul clt cr cc0 a1i wne adantr syl3anc
    wceq cc wn cfl cfv flodddiv4lt wb zre 4re 4ne0 redivcld flcld zred 2re 2pos
    pm3.2i ltmul1 mpbid zcn halfcld 2cnd 2ne0 2cnne0 divdiv1 2t2e4 oveq2d eqtrd
    divcan1d oveq1d eqtr3d breqtrrd ) ABCZDAEFUAZGZAHIJZUBUCZDKJZVMDKJZADIJZLVL
    VNVMLFZVOVPLFZAUDVLVNMCZVMMCZDMCZNDLFZGZVRVSUEVJVTVKVJVNVJVMVJAHAUFHMCVJUGO
    HNPVJUHOUIZUJUKQVJWAVKWEQWDVLWBWCULUMUNOVNVMDUORUPVJVQVPSVKVJVQDIJZDKJVQVPV
    JVQDVJAAUQZURVJUSDNPZVJUTOVFVJWFVMDKVJWFADDKJZIJZVMVJATCDTCWHGZWKWFWJSWGWKV
    JVAOZWLADDVBRVJWIHAIWIHSVJVCOVDVEVGVHQVI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Bit sequences
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c bits $.
  $c sadd $.
  $c smul $.

  $( Define the binary bits of an integer. $)
  cbits $a class bits $.

  $( Define the sequence addition on bit sequences. $)
  csad $a class sadd $.

  $( Define the sequence multiplication on bit sequences. $)
  csmu $a class smul $.

  ${
    $d k n $.  $d m M $.  $d m n N $.
    $( Define the binary bits of an integer.  The expression
       ` M e. ( bits `` N ) ` means that the ` M ` -th bit of ` N ` is 1 (and
       its negation means the bit is 0).  (Contributed by Mario Carneiro,
       4-Sep-2016.) $)
    df-bits $a |- bits = ( n e. ZZ |->
      { m e. NN0 | -. 2 || ( |_ ` ( n / ( 2 ^ m ) ) ) } ) $.

    $( Expand the definition of the bits of an integer.  (Contributed by Mario
       Carneiro, 5-Sep-2016.) $)
    bitsfval $p |- ( N e. ZZ -> ( bits ` N ) =
      { m e. NN0 | -. 2 || ( |_ ` ( N / ( 2 ^ m ) ) ) } ) $=
      ( vn c2 cv cexp co cdiv cfl cfv cdvds wbr wn cn0 crab cz cbits wceq oveq1
      fveq2d breq2d notbid rabbidv df-bits nn0ex rabex fvmpt ) CBDCEZDAEFGZHGZI
      JZKLZMZANODBUIHGZIJZKLZMZANOPQUHBRZUMUQANURULUPURUKUODKURUJUNIUHBUIHSTUAU
      BUCACUDUQANUEUFUG $.

    $( Expand the definition of the bits of an integer.  (Contributed by Mario
       Carneiro, 5-Sep-2016.) $)
    bitsval $p |- ( M e. ( bits ` N ) <-> ( N e. ZZ /\ M e. NN0 /\
      -. 2 || ( |_ ` ( N / ( 2 ^ M ) ) ) ) ) $=
      ( vn vm cbits cfv wcel cz cn0 c2 cexp co cdiv cfl cdvds wbr wn wa cv crab
      w3a cdm df-bits dmmptss elfvdm sseldi bitsfval eleq2d oveq2 oveq2d fveq2d
      wceq breq2d notbid elrab syl6bb biadan2 3anass bitr4i ) ABEFZGZBHGZAIGZJB
      JAKLZMLZNFZOPZQZRZRVBVCVHUAVAVBVIVAEUBHBCHJCSJDSZKLZMLNFOPQDITEDCUCUDABEU
      EUFVBVAAJBVKMLZNFZOPZQZDITZGVIVBUTVPADBUGUHVOVHDAIVJAULZVNVGVQVMVFJOVQVLV
      ENVQVKVDBMVJAJKUIUJUKUMUNUOUPUQVBVCVHURUS $.

    $( Expand the definition of the bits of an integer.  (Contributed by Mario
       Carneiro, 5-Sep-2016.) $)
    bitsval2 $p |- ( ( N e. ZZ /\ M e. NN0 ) -> ( M e. ( bits ` N ) <->
      -. 2 || ( |_ ` ( N / ( 2 ^ M ) ) ) ) ) $=
      ( cbits cfv wcel cz cn0 wa c2 cexp co cfl cdvds wbr wn w3a bitsval df-3an
      cdiv bitri baib ) ABCDEZBFEZAGEZHZIBIAJKSKLDMNOZUBUCUDUFPUEUFHABQUCUDUFRT
      UA $.

    $( The set of bits of an integer is a subset of ` NN0 ` .  (Contributed by
       Mario Carneiro, 5-Sep-2016.) $)
    bitsss $p |- ( bits ` N ) C_ NN0 $=
      ( vm cbits cfv cn0 cv wcel cz c2 cexp co cfl cdvds wbr wn bitsval simp2bi
      cdiv ssriv ) BACDZEBFZTGAHGUAEGIAIUAJKRKLDMNOUAAPQS $.

    $( The ` bits ` function is a function from integers to subsets of
       nonnegative integers.  (Contributed by Mario Carneiro, 5-Sep-2016.) $)
    bitsf $p |- bits : ZZ --> ~P NN0 $=
      ( vn vk cz cn0 cpw c2 cv cexp co cdiv cfl cfv cdvds wn crab cbits df-bits
      wbr wcel wss ssrab2 nn0ex elpw2 mpbir a1i fmpti ) ACDEZFAGZFBGHIJIKLMRNZB
      DOZPBAQUJUGSZUHCSUKUJDTUIBDUAUJDUBUCUDUEUF $.
  $}

  $( Value of the zeroth bit.  (Contributed by Mario Carneiro, 5-Sep-2016.) $)
  bits0 $p |- ( N e. ZZ -> ( 0 e. ( bits ` N ) <-> -. 2 || N ) ) $=
    ( cz wcel cc0 cbits cfv c2 cexp co cdiv cfl cdvds wbr wn cn0 bitsval2 mpan2
    wb 0nn0 c1 cc wceq 2cn exp0 ax-mp oveq2i zcn div1d syl5eq fveq2d flid eqtrd
    breq2d notbid bitrd ) ABCZDAEFCZGAGDHIZJIZKFZLMZNZGALMZNUPDOCUQVBRSDAPQUPVA
    VCUPUTAGLUPUTAKFAUPUSAKUPUSATJIAURTAJGUACURTUBUCGUDUEUFUPAAUGUHUIUJAUKULUMU
    NUO $.

  $( The zeroth bit of an even number is zero.  (Contributed by Mario Carneiro,
     5-Sep-2016.) $)
  bits0e $p |- ( N e. ZZ -> -. 0 e. ( bits ` ( 2 x. N ) ) ) $=
    ( cz wcel c2 cmul co cdvds wbr cc0 cbits cfv wn 2z dvdsmul1 mpan wb zmulcld
    a1i id bits0 syl con2bid mpbid ) ABCZDDAEFZGHZIUEJKCZLDBCZUDUFMDANOUDUGUFUD
    UEBCUGUFLPUDDAUHUDMRUDSQUETUAUBUC $.

  $( The zeroth bit of an odd number is zero.  (Contributed by Mario Carneiro,
     5-Sep-2016.) $)
  bits0o $p |- ( N e. ZZ -> 0 e. ( bits ` ( ( 2 x. N ) + 1 ) ) ) $=
    ( cz wcel cc0 c2 cmul co c1 caddc cbits cfv cdvds wbr wn 2z dvdsmul1 cn clt
    mpan a1i wi id zmulcld 2nn ndvdsp1 syl3anc mpd wb peano2zd bits0 syl mpbird
    1lt2 ) ABCZDEAFGZHIGZJKCZEUPLMNZUNEUOLMZUREBCZUNUSOEAPSUNUOBCEQCZHERMZUSURU
    AUNEAUTUNOTUNUBUCZVAUNUDTVBUNUMTEUOUEUFUGUNUPBCUQURUHUNUOVCUIUPUJUKUL $.

  $( The ` M + 1 ` -th bit of ` N ` is the ` M ` -th bit of ` |_ ( N / 2 ) ` .
     (Contributed by Mario Carneiro, 5-Sep-2016.) $)
  bitsp1 $p |- ( ( N e. ZZ /\ M e. NN0 ) ->
    ( ( M + 1 ) e. ( bits ` N ) <-> M e. ( bits ` ( |_ ` ( N / 2 ) ) ) ) ) $=
    ( cz wcel cn0 c2 co cexp cdiv cfl cfv cdvds wbr wn cbits cmul nnne0d eqtr4d
    cn nncnd wa c1 caddc 2nn a1i simpr expp1d nnexpcld mulcomd eqtrd simpl zcnd
    oveq2d divdiv1d fveq2d cr wceq zred rehalfcld fldiv breq2d notbid peano2nn0
    syl2anc wb bitsval2 sylan2 flcld sylancom 3bitr4d ) BCDZAEDZUAZFBFAUBUCGZHG
    ZIGZJKZLMZNZFBFIGZJKZFAHGZIGJKZLMZNZVNBOKDZAWAOKDZVMVRWDVMVQWCFLVMVQVTWBIGZ
    JKZWCVMVPWHJVMVPBFWBPGZIGWHVMVOWJBIVMVOWBFPGWJVMFAVMFFSDVMUDUEZTZVKVLUFZUGV
    MWBFVMWBVMFAWKWMUHZTZWLUIUJUMVMBFWBVMBVKVLUKZULWLWOVMFWKQVMWBWNQUNRUOVMVTUP
    DWBSDWCWIUQVMBVMBWPURUSZWNVTWBUTVDRVAVBVLVKVNEDWFVSVEAVCVNBVFVGVKVLWACDWGWE
    VEVMVTWQVHAWAVFVIVJ $.

  $( The ` M + 1 ` -th bit of ` 2 N ` is the ` M ` -th bit of ` N ` .
     (Contributed by Mario Carneiro, 5-Sep-2016.) $)
  bitsp1e $p |- ( ( N e. ZZ /\ M e. NN0 ) ->
    ( ( M + 1 ) e. ( bits ` ( 2 x. N ) ) <-> M e. ( bits ` N ) ) ) $=
    ( cz wcel cn0 wa c1 caddc co c2 cmul cbits cfv cdiv cfl wb 2z a1i id fveq2d
    zmulcld bitsp1 sylan wceq zcn 2cnd cc0 wne 2ne0 divcan3d flid adantr eleq2d
    eqtrd bitrd ) BCDZAEDZFZAGHIJBKIZLMDZAUSJNIZOMZLMZDZABLMZDUPUSCDUQUTVDPUPJB
    JCDUPQRUPSUAAUSUBUCURVCVEAURVBBLUPVBBUDUQUPVBBOMBUPVABOUPBJBUEUPUFJUGUHUPUI
    RUJTBUKUNULTUMUO $.

  $( The ` M + 1 ` -th bit of ` 2 N + 1 ` is the ` M ` -th bit of ` N ` .
     (Contributed by Mario Carneiro, 5-Sep-2016.) $)
  bitsp1o $p |- ( ( N e. ZZ /\ M e. NN0 ) ->
    ( ( M + 1 ) e. ( bits ` ( ( 2 x. N ) + 1 ) ) <-> M e. ( bits ` N ) ) ) $=
    ( cz wcel wa c1 caddc co c2 cbits cfv cdiv cfl wb a1i wceq cc0 eqtrd fveq2d
    cr cn0 cmul 2z id zmulcld peano2zd bitsp1 sylan 2re zre remulcld recnd 1cnd
    2cnd wne 2ne0 divdird zcn divcan3d oveq1d cle wbr clt halfre halfgt0 ltleii
    0re halflt1 pm3.2i flbi2 mpan2 mpbiri adantr eleq2d bitrd ) BCDZAUADZEZAFGH
    IBUBHZFGHZJKDZAVTILHZMKZJKZDZABJKZDVPVTCDVQWAWENVPVSVPIBICDVPUCOVPUDUEUFAVT
    UGUHVRWDWFAVRWCBJVPWCBPVQVPWCBFILHZGHZMKZBVPWBWHMVPWBVSILHZWGGHWHVPVSFIVPVS
    VPIBITDVPUIOBUJUKULVPUMVPUNZIQUOVPUPOZUQVPWJBWGGVPBIBURWKWLUSUTRSVPWIBPZQWG
    VAVBZWGFVCVBZEZWNWOQWGVGVDVEVFVHVIVPWGTDWMWPNVDWGBVJVKVLRVMSVNVO $.

  ${
    $d m n N $.  $d m S $.
    bitsfzo.1 $e |- ( ph -> N e. NN0 ) $.
    bitsfzo.2 $e |- ( ph -> M e. NN0 ) $.
    bitsfzo.3 $e |- ( ph -> ( bits ` N ) C_ ( 0 ..^ M ) ) $.
    bitsfzo.4 $e |- S = inf ( { n e. NN0 | N < ( 2 ^ n ) } , RR , < ) $.
    $( Lemma for ~ bitsfzo .  (Contributed by Mario Carneiro, 5-Sep-2016.)
       (Revised by AV, 1-Oct-2020.) $)
    bitsfzolem $p |- ( ph -> N e. ( 0 ..^ ( 2 ^ M ) ) ) $=
      ( cc0 wcel c2 cexp co clt wbr cn0 a1i cle c1 vm cuz cfv cz nn0uz syl6eleq
      cfzo cn 2nn nnexpcld nnzd wn cmin cbits wss adantr cdiv cfl cdvds n2dvds1
      wa wceq caddc cmul cv crab ssrab2 cr cinf wne sseqtri wrex nnssnn0 nn0red
      c0 2re 1lt2 expnbnd syl3anc ssrexv mpsyl rabn0 infssuzcl sylancr syl5eqel
      sylibr sseldi nn0zd 0red zred nn0ge0d reexpcld nnred simpr breq2d cbvrabv
      oveq2 elrab2 simprbi lelttrd ltexp2d elnnz sylanbrc nnm1nn0 nncnd mulid2d
      mpbird ltm1d ltnled mpbid wi infssuzle mpan syl5eqbr syl5bir mpand lenltd
      syl mtod eqbrtrd 1red crp 2rp 1z zsubcld rpexpcld lemuldivd cc 2cn expm1t
      breqtrd ltdivmuld df-2 syl6breq rerpdivcld flbi sylancl mpbir2and syl2anc
      wb mtbiri bitsval2 sseldd elfzolt2 zlem1lt pm2.65da elfzo2 syl3anbrc ) AE
      JUBUCZKLDMNZUDKEUUJOPZEJUUJUGNKAEQUUIFUEUFAUUJALDLUHKZAUIRZGUJZUKAUUKUUJE
      SPZULAUUOBDSPZAUUOVAZUUPBTUMNZDOPZUUQUURJDUGNZKUUSUUQEUNUCZUUTUURAUVAUUTU
      OUUOHUPUUQUURUVAKZLELUURMNZUQNZURUCZUSPZULZUUQUVFLTUSPUTUUQUVETLUSUUQUVET
      VBZTUVDSPZUVDTTVCNZOPZUUQTUVCVDNZESPUVIUUQUVLUVCESUUQUVCUUQUVCUUQLUURUULU
      UQUIRUUQBUHKZUURQKZUUQBUDKZJBOPUVMAUVOUUOABAELCVEZMNZOPZCQVFZQBUVRCQVGZAB
      UVSVHOVIZUVSIAUVSUUIUOZUVSVOVJZUWAUVSKUVSQUUIUVTUEVKZAUVRCQVLZUWCUHQUOAUV
      RCUHVLZUWEVMAEVHKZLVHKZTLOPZUWFAEFVNZUWHAVPRUWIAVQRELCVRVSUVRCUHQVTWAUVRC
      QWBWFUVSJWCWDWEZWGZWHUPZUUQJDBUUQWIUUQDADUDKZUUOADGWHUPZWJZUUQBUWMWJZUUQD
      ADQKUUOGUPZWKUUQDBOPZUUJLBMNZOPUUQUUJEUWTUUQLDUWHUUQVPRZUWRWLAUWGUUOUWJUP
      ZUUQUWTAUWTUHKUUOALBUUMUWLUJUPWMAUUOWNUUQBUVSKZEUWTOPZAUXCUUOUWKUPUXCBQKU
      XDELUAVEZMNZOPZUXDUABQUVSUXEBVBUXFUWTEOUXEBLMWQWOUVRUXGCUAQUVPUXEVBUVQUXF
      EOUVPUXELMWQWOWPZWRWSXRZWTUUQLDBUXAUWOUWMUWIUUQVQRXAXGZWTBXBXCZBXDXRZUJZX
      EXFUUQUVCESPEUVCOPZULUUQUXNBUURSPZUUQUURBOPUXOULUUQBUWQXHUUQUURBUUQUURUXL
      VNUWQXIXJUUQUVNUXNUXOUXLUVNUXNVAUURUVSKZUUQUXOUXGUXNUAUURQUVSUXEUURVBUXFU
      VCEOUXEUURLMWQWOUXHWRUXPUXOXKUUQUXPBUWAUURSIUWBUXPUWAUURSPUWDUURUVSJXLXMX
      NRXOXPXSUUQUVCEUUQUVCUXMWMUXBXQXGXTUUQTEUVCUUQYAUXBUUQLUURLYBKUUQYCRUUQBT
      UWMTUDKZUUQYDRYEYFZYGXJUUQUVDLUVJOUUQUVDLOPEUVCLVDNZOPUUQEUWTUXSOUXIUUQLY
      HKUVMUWTUXSVBYIUXKLBYJWDYKUUQELUVCUXBUXAUXRYLXGYMYNUUQUVDVHKUXQUVHUVIUVKV
      AYTUUQEUVCUXBUXRYOYDUVDTYPYQYRWOUUAUUQEUDKZUVNUVBUVGYTAUXTUUOAEFWHUPUXLUU
      REUUBYSXGUUCUURJDUUDXRUUQUVOUWNUUPUUSYTUWMUWOBDUUEYSXGUUQUWSUUPULUXJUUQDB
      UWPUWQXIXJUUFAEUUJUWJAUUJUUNWMXIXGEJUUJUUGUUH $.
  $}

  ${
    $d m x M $.  $d m n x N $.
    $( The bits of a number are all less than ` M ` iff the number is
       nonnegative and less than ` 2 ^ M ` .  (Contributed by Mario Carneiro,
       5-Sep-2016.)  (Proof shortened by AV, 1-Oct-2020.) $)
    bitsfzo $p |- ( ( N e. ZZ /\ M e. NN0 ) ->
      ( N e. ( 0 ..^ ( 2 ^ M ) ) <-> ( bits ` N ) C_ ( 0 ..^ M ) ) ) $=
      ( cz wcel cn0 wa cc0 c2 cexp co cfv cdvds wbr wn clt cr a1i c1 cle mpbird
      vm vn cfzo cbits wss cv cdiv cfl w3a bitsval simp32 nn0uz syl6eleq simp1r
      cuz nn0zd 2re reexpcld simp1l zred cmul recnd mulid2d simp33 crp rpexpcld
      2rp rerpdivcld 1red ltnled caddc breq2i elfzole1 3ad2ant2 divge0d wceq wb
      0p1e1 0z flbi sylancl 2z dvds0 ax-mp id syl5breqr syl6bir syl5bir sylbird
      mpand mt3d lemuldivd eqbrtrrd elfzolt2 lelttrd 1lt2 ltexp2d elfzo2 3expia
      syl3anbrc syl5bi ssrdv crab cinf cneg cif simpr nnred simpllr nn0red max2
      cn syl2anc simplr n2dvds1 1z dvdsnegb mp2an mtbi simplll 2nn nnnn0d ifcld
      nnexpcld nndivred zcnd nncnd 2cnd 2ne0 expne0d divnegd max1 uzid bernneq3
      wne sylancr ltled letrd breqtrrd nngt0d mulid1d ledivmuld eqbrtrd divgt0d
      nnrpd lenegcon1d lt0neg1d ax-1cn neg1cn 1pneg1e0 addcomli syl6breqr neg1z
      mpbir2and breq2d mtbiri bitsval2 sseldd syl mpbid pm2.65da intnand simpll
      wo elznn0nn sylib ord eqid bitsfzolem impbida ) BCDZAEDZFZBGHAIJZUCJDZBUD
      KZGAUCJZUEZUVMUVOFZUAUVPUVQUAUFZUVPDUVKUVTEDZHBHUVTIJZUGJZUHKZLMZNZUIZUVS
      UVTUVQDZUVTBUJUVMUVOUWGUWHUVMUVOUWGUIZUVTGUOKZDACDUVTAOMZUWHUWIUVTEUWJUVM
      UVOUVKUWAUWFUKZULUMUWIAUVKUVLUVOUWGUNZUPZUWIUWKUWBUVNOMUWIUWBBUVNUWIHUVTH
      PDUWIUQQZUWLURZUWIBUVKUVLUVOUWGUSUTZUWIHAUWOUWMURUWIRUWBVAJZUWBBSUWIUWBUW
      IUWBUWPVBVCUWIUWRBSMRUWCSMZUWIUWSUWEUVMUVOUVKUWAUWFVDUWIUWSNUWCROMZUWEUWI
      UWCRUWIBUWBUWQUWIHUVTHVEDUWIVGQUWIUVTUWLUPZVFZVHZUWIVIZVJUWTUWCGRVKJZOMZU
      WIUWEUXERUWCOVRVLUWIGUWCSMZUXFUWEUWIBUWBUWQUXBUVOUVMGBSMUWGBGUVNVMVNVOUWI
      UXGUXFFZUWDGVPZUWEUWIUWCPDGCDUXIUXHVQUXCVSUWCGVTWAUXIHGUWDLHCDZHGLMWBHWCW
      DUXIWEWFWGWJWHWIWKUWIRBUWBUXDUWQUXBWLTWMUVOUVMBUVNOMUWGBGUVNWNVNWOUWIHUVT
      AUWOUXAUWNRHOMUWIWPQWQTUVTGAWRWTWSXAXBUVMUVRFZBHUBUFIJOMUBEXCPOXDZUBABUXK
      BEDZBPDZBXEZXLDZFZUXKUXPUXNUXKUXPAUXOASMZAUXOXFZSMZUXKUXPFZUXOPDZAPDZUXTU
      YAUXOUXKUXPXGZXHZUYAAUVKUVLUVRUXPXIZXJZUXOAXKXMUYAUXSAOMZUXTNUYAUXSUVQDUY
      HUYAUVPUVQUXSUVMUVRUXPXNUYAUXSUVPDZHBHUXSIJZUGJZUHKZLMZNZUYAUYMHRXEZLMZHR
      LMZUYPXOUXJRCDUYQUYPVQWBXPHRXQXRXSUYAUYLUYOHLUYAUYLUYOVPZUYOUYKSMZUYKUYOR
      VKJZOMZUYAUYKRUYABUYJUYABUVKUVLUVRUXPXTZUTUYAHUXSHXLDUYAYAQUYAUXRAUXOEUYF
      UYAUXOUYDYBYCZYDZYEZUYAVIZUYAUYKXEZUXOUYJUGJZRSUYABUYJUYABVUBYFUYAUYJVUDY
      GZUYAHUXSUYAYHHGYOUYAYIQUYAUXSVUCUPYJYKZUYAVUHRSMUXOUYJRVAJZSMUYAUXOUYJVU
      KSUYAUXOUXSUYJUYEUYAUXSVUCXJZUYAUYJVUDXHZUYAUYBUYCUXOUXSSMUYEUYGUXOAYLXMU
      YAUXSUYJVULVUMUYAHHUOKDZUXSEDZUXSUYJOMUXJVUNWBHYMWDVUCHUXSYNYPYQYRUYAUYJV
      UIUUAYSUYAUXORUYJUYEVUFUYAUYJVUDUUEUUBTUUCUUFUYAUYKGUYTOUYAUYKGOMGVUGOMUY
      AGVUHVUGOUYAUXOUYJUYEVUMUYAUXOUYDYTUYAUYJVUDYTUUDVUJYSUYAUYKVUEUUGTRUYOGU
      UHUUIUUJUUKUULUYAUYKPDUYOCDUYRUYSVUAFVQVUEUUMUYKUYOVTWAUUNUUOUUPUYAUVKVUO
      UYIUYNVQVUBVUCUXSBUUQXMTUURUXSGAWNUUSUYAUXSAVULUYGVJUUTUVAUVBUXKUXMUXQUXK
      UVKUXMUXQUVDUVKUVLUVRUVCBUVEUVFUVGWKUVKUVLUVRXNUVMUVRXGUXLUVHUVIUVJ $.

    $( Truncating the bit sequence after some ` M ` is equivalent to reducing
       the argument ` mod 2 ^ M ` .  (Contributed by Mario Carneiro,
       6-Sep-2016.) $)
    bitsmod $p |- ( ( N e. ZZ /\ M e. NN0 ) -> ( bits `
      ( N mod ( 2 ^ M ) ) ) = ( ( bits ` N ) i^i ( 0 ..^ M ) ) ) $=
      ( cz wcel cn0 wa c2 cfv cc0 cdiv cdvds wbr clt a1i nn0zd ad2antrr syl3anc
      co wb c1 vx cexp cmo cbits cfzo cin cv cfl wn w3a simpl cn simpr nnexpcld
      2nn zmodcld biantrurd simplr bitsval2 syl2anc biantrud cmin zred nndivred
      2z flcld cmul caddc 2cnd expp1d cuz 1nn0 nn0addcld adantr nn0ltp1le mpbid
      cle eluz2 syl3anbrc dvdsexp eqbrtrrd cr crp moddifz wne nnzd 2ne0 expne0d
      nnrpd zsubcld dvdsval2 mpbird zmulcld dvdstr zcnd nncnd divcan2d breqtrrd
      wi mp2and nn0red dvdscmulr syl112anc pncan3d oveq1d divdird eqtr3d fveq2d
      ltled wceq fladdz eqtrd pncan2d dvdssub2 syl31anc 3bitr3d dvds0 ax-mp 2rp
      notbid rpexpcld modcld nn0ge0d divge0d rpred 1le2 lenltd leexp2ad ltletrd
      modlt rpcnd mulid1d 1red ltdivmuld 1e0p1 syl6breq bitr3d 3anass 3bitr4g
      an12 rerpdivcld flbi sylancl mpbir2and syl5breqr intnand pm2.61dan syl6bb
      2thd con2bid pm5.32da elfzo2 elnn0uz 3anbi1i 3bitr2i anbi2i bitri bitsval
      0z elin eqrdv ) BCDZAEDZFZUABGAUBRZUCRZUDHZBUDHZIAUERZUFZUVDUVFCDZUAUGZED
      ZGUVFGUVLUBRZJRZUHHZKLZUIZUJZUVLUVHDZUVLUVIDZFZUVLUVGDUVLUVJDUVDUVKUVMUVR
      FZFZUVMUVTACDZUVLAMLZFZFZFZUVSUWBUVDUWCUWDUWIUVDUVKUWCUVDUVFUVDBUVEUVBUVC
      UKZUVDGAGULDZUVDUONUVBUVCUMUNZUPZOZUQUVDUVMUVRUWHUVDUVMFZUVRUWEUVTUWFFZFZ
      UWHUWOUWPUVRUWQUWOUWFUWPUVRSUWOUWFFZUVTGBUVNJRZUHHZKLZUIZUWPUVRUWRUVBUVMU
      VTUXBSUVDUVBUVMUWFUWJPZUVDUVMUWFURZUVLBUSUTUWRUWFUVTUWOUWFUMZVAUWRUXAUVQU
      WRGCDZUWTCDUVPCDGUWTUVPVBRZKLUXAUVQSUXFUWRVENZUWRUWSUWRBUVNUWRBUXCVCZUWRG
      UVLUWKUWRUONUXDUNZVDVFUWRUVOUWRUVFUVNUWRUVFUVDUVKUVMUWFUWNPZVCUXJVDZVFZUW
      RGBUVFVBRZUVNJRZUXGKUWRUVNGVGRZUVNUXOVGRZKLZGUXOKLZUWRUXPUXNUXQKUWRUXPUVE
      KLZUVEUXNKLZUXPUXNKLZUWRGUVLTVHRZUBRZUXPUVEKUWRGUVLUWRVIZUXDVJUWRUXFUYCED
      AUYCVKHDZUYDUVEKLUXHUWRUVLTUXDTEDUWRVLNVMZUWRUYCCDUWEUYCAVQLZUYFUWRUYCUYG
      OUWRAUWOUVCUWFUVBUVCUVMURZVNZOZUWRUWFUYHUXEUWRUVMUVCUWFUYHSUXDUYJUVLAVOUT
      VPUYCAVRVSGUYCAVTQWAUWRUYAUXNUVEJRCDZUWRBWBDZUVEWCDZUYLUXIUWRUVEUVDUVEULD
      UVMUWFUWLPZWIBUVEWDUTUWRUVECDZUVEIWEUXNCDZUYAUYLSUWRUVEUYOWFZUWRGAUYEGIWE
      UWRWGNZUYKWHUWRBUVFUXCUXKWJZUVEUXNWKQWLZUWRUXPCDUYPUYQUXTUYAFUYBWSUWRUVNG
      UWRUVNUXJWFZUXHWMUYRUYTUXPUVEUXNWNQWTUWRUXNUVNUWRUXNUYTWOZUWRUVNUXJWPZUWR
      GUVLUYEUYSUWRUVLUXDOZWHZWQWRUWRUXFUXOCDZUVNCDZUVNIWEZUXRUXSSUXHUWRUVNUXNK
      LZVUGUWRUVNUVEKLZUYAVUJUWRUXFUVMAUVLVKHDZVUKUXHUXDUWRUVLCDZUWEUVLAVQLVULV
      UEUYKUWRUVLAUWRUVLUXDXAUWRAUYJXAUXEXIUVLAVRVSGUVLAVTQVUAUWRVUHUYPUYQVUKUY
      AFVUJWSVUBUYRUYTUVNUVEUXNWNQWTUWRVUHVUIUYQVUJVUGSVUBVUFUYTUVNUXNWKQVPZVUB
      VUFUVNGUXOXBXCVPUWRUXGUVPUXOVHRZUVPVBRUXOUWRUWTVUOUVPVBUWRUWTUVOUXOVHRZUH
      HZVUOUWRUWSVUPUHUWRUVFUXNVHRZUVNJRUWSVUPUWRVURBUVNJUWRUVFBUWRUVFUXKWOZUWR
      BUXCWOXDXEUWRUVFUXNUVNVUSVUCVUDVUFXFXGXHUWRUVOWBDZVUGVUQVUOXJUXLVUNUVOUXO
      XKUTXLXEUWRUVPUXOUWRUVPUXMWOUWRUXOVUNWOXMXLWRGUWTUVPXNXOXTXPUWOUWFUIZFZUV
      QUWPVVBUVQUWPUIVVBGIUVPKUXFGIKLVEGXQXRVVBUVPIXJZIUVOVQLZUVOITVHRZMLZVVBUV
      FUVNVVBBUVEVVBBUVDUVBUVMVVAUWJPVCZVVBGAGWCDVVBXSNZUWOUWEVVAUWOAUYIOZVNZYA
      ZYBZVVBGUVLVVHVVBUVLUVDUVMVVAURZOZYAZVVBUVFUVDUVFEDUVMVVAUWMPYCYDVVBUVOTV
      VEMVVBUVOTMLUVFUVNTVGRZMLVVBUVFUVNVVPMVVBUVFUVEUVNVVLVVBUVEVVKYEVVBUVNVVO
      YEVVBUYMUYNUVFUVEMLVVGVVKBUVEYJUTVVBGAUVLVVBGVVHYETGVQLVVBYFNVVBUWEVUMAUV
      LVQLZUVLAVKHDVVJVVNVVBVVQVVAUWOVVAUMZVVBAUVLVVBAVVJVCVVBUVLVVMXAYGWLAUVLV
      RVSYHYIVVBUVNVVBUVNVVOYKYLWRVVBUVFTUVNVVLVVBYMVVOYNWLYOYPVVBVUTICDVVCVVDV
      VFFSVVBUVFUVNVVLVVOUUAUUSUVOIUUBUUCUUDUUEVVBUWFUVTVVRUUFUUIUUJUUGUWOUWEUW
      PVVIUQYQUWEUVTUWFYTUUHUUKYQUVKUVMUVRYRUWBUVTUVMUWGFZFUWIUWAVVSUVTUWAUVLIV
      KHDZUWEUWFUJUVMUWEUWFUJVVSUVLIAUULUVMVVTUWEUWFUVLUUMUUNUVMUWEUWFYRUUOUUPU
      VTUVMUWGYTUUQYSUVLUVFUURUVLUVHUVIUUTYSUVA $.

    $( Every number is associated with a finite set of bits.  (Contributed by
       Mario Carneiro, 5-Sep-2016.) $)
    bitsfi $p |- ( N e. NN0 -> ( bits ` N ) e. Fin ) $=
      ( vm cn0 wcel c2 cv cexp co clt wbr cbits cfv cfn cn cr a1i wa cc0 cfzo
      cz wrex nn0re 2re 1lt2 expnbnd syl3anc wss fzofi cuz simpl nn0uz syl6eleq
      c1 simprl nnnn0d nnexpcld nnzd simprr elfzo2 syl3anbrc wb bitsfzo syl2anc
      2nn nn0zd mpbid ssfi sylancr rexlimddv ) ACDZAEBFZGHZIJZAKLZMDZBNVJAODEOD
      ZUMEIJZVMBNUAAUBVPVJUCPVQVJUDPAEBUEUFVJVKNDZVMQZQZRVKSHZMDVNWAUGZVORVKUHV
      TARVLSHDZWBVTARUILZDVLTDVMWCVTACWDVJVSUJZUKULVTVLVTEVKENDVTVDPVTVKVJVRVMU
      NUOZUPUQVJVRVMURARVLUSUTVTATDVKCDWCWBVAVTAWEVEWFVKAVBVCVFWAVNVGVHVI $.

    $( The bit complement of ` N ` is ` -u N - 1 ` .  (Thus, by ~ bitsfi , all
       negative numbers have cofinite ` bits ` representations.)  (Contributed
       by Mario Carneiro, 5-Sep-2016.) $)
    bitscmp $p |- ( N e. ZZ ->
      ( NN0 \ ( bits ` N ) ) = ( bits ` ( -u N - 1 ) ) ) $=
      ( cz wcel cn0 cfv cneg c1 co wn wa c2 cdiv cdvds wbr zred syl2anc cle clt
      wb mpbid vm cbits cdif cmin cv cexp cfl bitsval2 2z a1i simpl cn nnexpcld
      2nn simpr nndivred flcld dvdsnegb notbid znegcld oddm1even syl wceq caddc
      cmul cr flltp1 readdcld ltnegd recnd negdi2d nncnd nnne0d divnegd 3brtr3d
      1red 1zzd zsubcld renegcld ltmuldivd mpbird nnzd zmulcld zltlem1 resubcld
      nnrpd lemuldivd lenegd eqbrtrrd ledivmuld zlem1lt ltdivmuld negcld npcand
      flle breqtrrd flbi mpbir2and breq2d bitr4d pm5.32da biantrurd bitrd eldif
      3bitrd znegcl w3a bitsval 3anass bitri 3bitr4g eqrdv ) ABCZUADAUBEZUCZAFZ
      GUDHZUBEZXMUAUEZDCZXSXNCZIZJZXQBCZXTKXQKXSUFHZLHZUGEZMNZIZJZJZXSXOCXSXRCZ
      XMYCYJYKXMXTYBYIXMXTJZYAYHYMYAKAYELHZUGEZMNZIKYOFZMNZIZYHXSAUHYMYPYRYMKBC
      ZYOBCYPYRSYTYMUIUJYMYNYMAYEYMAXMXTUKZOZYMKXSKULCYMUNUJXMXTUOUMZUPZUQZKYOU
      RPUSYMYSKYQGUDHZMNZYHYMYQBCYSUUGSYMYOUUEUTZYQVAVBYMYGUUFKMYMYGUUFVCZUUFYF
      QNZYFUUFGVDHZRNZYMUUFYEVEHZXQQNZUUJYMUUMXPRNZUUNYMUUOUUFXPYELHZRNYMYOGVDH
      ZFZYNFZUUFUUPRYMYNUUQRNZUURUUSRNYMYNVFCZUUTUUDYNVGVBYMYNUUQUUDYMYOGYMYOUU
      EOZYMVPZVHVITYMYOGYMYOUVBVJZYMGUVCVJZVKYMAYEYMAUUBVJYMYEUUCVLYMYEUUCVMVNZ
      VOYMUUFXPYEYMUUFYMYQGUUHYMVQVRZOZYMAUUBVSZYMYEUUCWFZVTWAYMUUMBCXPBCZUUOUU
      NSYMUUFYEUVGYMYEUUCWBZWCYMAUUAUTZUUMXPWDPTYMUUFXQYEUVHYMXPGUVIUVCWEZUVJWG
      TYMYFYQUUKRYMYFYQRNXQYEYQVEHZRNZYMXPUVOQNZUVPYMUUPYQQNUVQYMUUSUUPYQQUVFYM
      YOYNQNZUUSYQQNYMUVAUVRUUDYNWOVBYMYOYNUVBUUDWHTWIYMXPYQYEUVIYMYOUVBVSZUVJW
      JTYMUVKUVOBCUVQUVPSUVMYMYEYQUVLUUHWCXPUVOWKPTYMXQYQYEUVNUVSUVJWLWAYMYQGYM
      YOUVDWMUVEWNWPYMYFVFCUUFBCUUIUUJUULJSYMXQYEUVNUUCUPUVGYFUUFWQPWRWSWTXEUSX
      AXMYDYJXMXPGAXFXMVQVRXBXCXSDXNXDYLYDXTYIXGYKXSXQXHYDXTYIXIXJXKXL $.
  $}

  $( The bits of zero.  (Contributed by Mario Carneiro, 6-Sep-2016.) $)
  0bits $p |- ( bits ` 0 ) = (/) $=
    ( cc0 cbits cfv c0 cfzo co c2 cexp wcel wss c1 csn c0ex snid fzo01 eleqtrri
    cc wceq 2cn exp0 ax-mp oveq2i cz wb 0z 0nn0 bitsfzo mp2an mpbi fzo0 sseqtri
    cn0 0ss eqssi ) ABCZDUOAAEFZDAAGAHFZEFZIZUOUPJZAAKEFZURAALVAAMNOPUQKAEGQIUQ
    KRSGTUAUBPAUCIAULIUSUTUDUEUFAAUGUHUIAUJUKUOUMUN $.

  $( The bits of negative one.  (Contributed by Mario Carneiro, 5-Sep-2016.) $)
  m1bits $p |- ( bits ` -u 1 ) = NN0 $=
    ( cn0 cc0 cbits cdif cneg c1 cmin co cz wcel wceq 0z bitscmp ax-mp c0 0bits
    cfv difeq2i dif0 eqtri neg0 oveq1i df-neg eqtr4i fveq2i 3eqtr3ri ) ABCQZDZB
    EZFGHZCQZAFEZCQBIJUHUKKLBMNUHAODAUGOAPRASTUJULCUJBFGHULUIBFGUAUBFUCUDUEUF
    $.

  ${
    $d k m n x A $.  $d k n x y N $.
    $( Lemma for ~ bitsinv1 .  (Contributed by Mario Carneiro, 22-Sep-2016.) $)
    bitsinv1lem $p |- ( ( N e. ZZ /\ M e. NN0 ) ->
     ( N mod ( 2 ^ ( M + 1 ) ) ) = ( ( N mod ( 2 ^ M ) ) +
       if ( M e. ( bits ` N ) , ( 2 ^ M ) , 0 ) ) ) $=
      ( wcel c2 c1 caddc co wceq cc0 cz cmin a1i adantr cdiv cdvds syl2anc cmul
      wbr clt cle cbits cfv cexp cmo cif cn0 wa oveq2 eqeq2d cc simpl 2nn simpr
      cn nnexpcld zmodcld nn0cnd 1nn0 nn0addcld pncan3d subcld simplr nncnd wne
      2cnd 2ne0 nn0zd expne0d wn 2z dvds0 ax-mp syl5breqr cfl bitsval2 crp zred
      id cr nnrpd moddiffl breq2d wb moddifz nnncan1d oveq1d divsubdird mulcomd
      zcnd eqtr3d expp1d eqtr4d oveq12d divcan5d div23d 3eqtr3d zmulcld eqeltrd
      peano2zd dvdsmul2 nnncan2d breqtrrd dvdssub2 syl31anc bitr3d notbid bitrd
      zsubcld con2bid syl5ib con2d cpr wo cfzo cuz df-neg mulm1d nnred renegcld
      cneg modcld resubcld modlt ltnegd mpbid lesub1dd syl5eqbr ltletrd eqbrtrd
      0red modge0 1red ltmuldivd syl5eqbrr 0zd zlem1lt mpbird elnn0z syl6eleq
      imp sylanbrc nn0uz subge02d lelttrd breqtrd ltdivmuld syl3anbrc fzo0to2pr
      elfzo2 elpri syl ord syld diveq1d oveq2d n2dvds1 breq2 syl6 sylibrd con1d
      mtbiri diveq0d subeq0d addid1d ifbothda ) ABUAUBCZBDAEFGZUCGZUDGZBDAUCGZU
      DGZUVJFGZHUVIUVKIFGZHUVIUVKUVFUVJIUEZFGZHBJCZAUFCZUGZUVJIUVJUVNHUVLUVOUVI
      UVJUVNUVKFUHUIIUVNHUVMUVOUVIIUVNUVKFUHUIUVRUVFUGZUVKUVIUVKKGZFGUVIUVLUVSU
      VKUVIUVRUVKUJCZUVFUVRUVKUVRBUVJUVPUVQUKZUVRDADUNCZUVRULLZUVPUVQUMZUOZUPUQ
      ZMUVRUVIUJCZUVFUVRUVIUVRBUVHUWBUVRDUVGUWDUVRAEUWEEUFCUVRURLUSUOZUPUQZMUTU
      VSUVTUVJUVKFUVSUVTUVJUVRUVTUJCZUVFUVRUVIUVKUWJUWGVAZMUVSUVJUVSDAUWCUVSULL
      UVPUVQUVFVBUOVCUVRUVJIVDZUVFUVRDAUVRVEZDIVDUVRVFLZUVRAUWEVGZVHZMUVRUVFUVT
      UVJNGZEHZUVRUVFUWRIHZVIZUWSUVRUWTUVFUWTDUWRORZUVRUVFVIZUWTDIUWRODJCZDIORV
      JDVKVLUWTVRVMUVRUVFUXBUVRUVFDBUVJNGVNUBZORZVIUXBVIZABVOUVRUXFUXBUVRDBUVKK
      GZUVJNGZORZUXFUXBUVRUXIUXEDOUVRBVSCZUVJVPCZUXIUXEHUVRBUWBVQZUVRUVJUWFVTZB
      UVJWAPWBUVRUXDUXIJCZUWRJCZDUXIUWRKGZORUXJUXBWCUXDUVRVJLZUVRUXKUXLUXOUXMUX
      NBUVJWDPZUVRUWRUXIBUVIKGZUVJNGZKGZJUVRUXHUXTKGZUVJNGUWRUYBUVRUYCUVTUVJNUV
      RBUVKUVIUVRBUWBWIZUWGUWJWEWFUVRUXHUXTUVJUVRBUVKUYDUWGVAZUVRBUVIUYDUWJVAZU
      VRUVJUWFVCZUWQWGWJUVRUXIUYAUXSUVRUYAUXTUVHNGZDQGZJUVRDUXTQGZDUVJQGZNGUXTD
      QGZUVHNGUYAUYIUVRUYJUYLUYKUVHNUVRDUXTUWNUYFWHUVRUYKUVJDQGZUVHUVRDUVJUWNUY
      GWHUVRDAUWNUWEWKZWLWMUVRUXTUVJDUYFUYGUWNUWQUWOWNUVRUXTDUVHUYFUWNUVRUVHUWI
      VCUVRDUVGUWNUWOUVRAUWPWSVHWOWPZUVRUYHDUVRUXKUVHVPCZUYHJCZUXMUVRUVHUWIVTZB
      UVHWDPZUXRWQWRXHWRZUVRDUYIUXQOUVRUYQUXDDUYIORUYSUXRUYHDWTPUVRUXHUVTKGZUVJ
      NGUYAUXQUYIUVRVUAUXTUVJNUVRBUVIUVKUYDUWJUWGXAWFUVRUXHUVTUVJUYEUWLUYGUWQWG
      UYOWPXBDUXIUWRXCXDXEXFXGZXIXJXKUVRUWTUWSUVRUWRIEXLZCUWTUWSXMUVRUWRIDXNGZV
      UCUVRUWRIXOUBZCUXDUWRDSRZUWRVUDCUVRUWRUFVUEUVRUXPIUWRTRZUWRUFCUYTUVRVUGIE
      KGZUWRSRZUVRVUHEXTZUWRSEXPUVRVUJUVJQGZUVTSRVUJUWRSRUVRVUKUVJXTZUVTSUVRUVJ
      UYGXQUVRVULUVKXTZUVTUVRUVJUVRUVJUWFXRZXSUVRUVKUVRBUVJUXMUXNYAZXSUVRUVIUVK
      UVRBUVHUXMUYRYAZVUOYBZUVRUVKUVJSRZVULVUMSRUVRUXKUXLVURUXMUXNBUVJYCPUVRUVK
      UVJVUOVUNYDYEUVRVUMIUVKKGUVTTUVKXPUVRIUVIUVKUVRYJVUPVUOUVRUXKUYPIUVITRUXM
      UYRBUVHYKPYFYGYHYIUVRVUJUVTUVJUVREUVRYLXSVUQUXNYMYEYNUVRIJCUXPVUGVUIWCUVR
      YOUYTIUWRYPPYQUWRYRUUAUUBYSUXRUVRVUFUVTUYMSRUVRUVTUVHUYMSUVRUVTUVIUVHVUQV
      UPUVRUVHUWIXRUVRIUVKTRZUVTUVITRUVRUXKUXLVUSUXMUXNBUVJYKPUVRUVIUVKVUPVUOUU
      CYEUVRUXKUYPUVIUVHSRUXMUYRBUVHYCPUUDUYNUUEUVRUVTDUVJVUQUVRDUWDXRUXNUUFYQU
      WRIDUUIUUGUUHYSUWRIEUUJUUKUULZUUMYTUUNUUOWJUVRUXCUGZUVIUVKUVMVVAUVIUVKUVR
      UWHUXCUWJMUVRUWAUXCUWGMZVVAUVTUVJUVRUWKUXCUWLMUVRUVJUJCUXCUYGMUVRUWMUXCUW
      QMUVRUXCUWTUVRUWTUVFUVRUXAUXGUVFUVRUXAUWSUXGVUTUWSUXBDEORUUPUWREDOUUQUVAU
      URVUBUUSUUTYTUVBUVCVVAUVKVVBUVDWLUVE $.

    $( There is an explicit inverse to the ` bits ` function for nonnegative
       integers (which can be extended to negative integers using ~ bitscmp ),
       part 1.  (Contributed by Mario Carneiro, 7-Sep-2016.) $)
    bitsinv1 $p |- ( N e. NN0 -> sum_ n e. ( bits ` N ) ( 2 ^ n ) = N ) $=
      ( cn0 wcel cc0 cfzo co cin c2 cexp csu cmo wceq wi caddc c0 syl6eq ineq2d
      oveq2 sumeq1d vx vk cbits cfv cv c1 fzo0 in0 sum0 2cn exp0 oveq2d eqeq12d
      cc ax-mp imbi2d cz zmod10 syl eqcomd wa csn oveq1 wn fzonel disjsn sylibr
      nn0z a1i inindi 3eqtr3g cun cuz simpr nn0uz syl6eleq fzosplitsn cfn fzofi
      indi wss inss2 ssfi mp2an 2nn elin2d elfzouz syl6eleqr nnexpcld fsumsplit
      cn nncnd bitsinv1lem sylan eqeq2 snssd sseqin2 sylib simplr sumsn syl2anc
      cif eqtrd ifbothda eqtr4d syl5ibr expcom a2d nn0ind pm2.43i clt wbr id 2z
      nnzd uzid bernneq3 mpan elfzo2 syl3anbrc wb bitsfzo mpbid df-ss crp nn0re
      cr cle 2rp rpexpcld nn0ge0 modid syl22anc 3eqtr3d ) BCDZBUCUDZEBFGZHZIAUE
      ZJGZAKZBIBJGZLGZYPYTAKBYOUUAUUCMZYOYPEUAUEZFGZHZYTAKZBIUUEJGZLGZMZNYOEBUF
      LGZMZNYOYPEUBUEZFGZHZYTAKZBIUUNJGZLGZMZNYOYPEUUNUFOGZFGZHZYTAKZBIUVAJGZLG
      ZMZNYOUUDNUAUBBUUEEMZUUKUUMYOUVHUUHEUUJUULUVHUUHPYTAKZEUVHUUGPYTAUVHUUGYP
      PHZPUVHUUFPYPUVHUUFEEFGPUUEEEFSEUGQRYPUHZQTYTAUIZQUVHUUIUFBLUVHUUIIEJGZUF
      UUEEIJSIUNDUVMUFMUJIUKUOQULUMUPUUEUUNMZUUKUUTYOUVNUUHUUQUUJUUSUVNUUGUUPYT
      AUVNUUFUUOYPUUEUUNEFSRTUVNUUIUURBLUUEUUNIJSULUMUPUUEUVAMZUUKUVGYOUVOUUHUV
      DUUJUVFUVOUUGUVCYTAUVOUUFUVBYPUUEUVAEFSRTUVOUUIUVEBLUUEUVAIJSULUMUPUUEBMZ
      UUKUUDYOUVPUUHUUAUUJUUCUVPUUGYRYTAUVPUUFYQYPUUEBEFSRTUVPUUIUUBBLUUEBIJSUL
      UMUPYOUULEYOBUQDZUULEMBVHZBURUSUTUUNCDZYOUUTUVGYOUVSUUTUVGNUUTUVGYOUVSVAZ
      UUQYPUUNVBZHZYTAKZOGZUUSUWCOGZMUUQUUSUWCOVCUVTUVDUWDUVFUWEUVTUUPUWBYTUVCA
      UVTYPUUOUWAHZHUVJUUPUWBHPUVTUWFPYPUVTUUNUUODVDZUWFPMUWGUVTEUUNVEVIUUOUUNV
      FVGRYPUUOUWAVJUVKVKUVTUVCYPUUOUWAVLZHUUPUWBVLUVTUVBUWHYPUVTUUNEVMUDZDUVBU
      WHMUVTUUNCUWIYOUVSVNVOVPEUUNVQUSRYPUUOUWAVTQUVCVRDZUVTUVBVRDUVCUVBWAUWJEU
      VAVSYPUVBWBUVBUVCWCWDVIUVTYSUVCDZVAZYTUWLIYSIWKDZUWLWEVIUWLYSUWICUWLYSUVB
      DYSUWIDUWLYPUVBYSUVTUWKVNWFYSEUVAWGUSVOWHWIWLWJUVTUVFUUSUUNYPDZUUREXBZOGZ
      UWEYOUVQUVSUVFUWPMUVRUUNBWMWNUVTUWCUWOUUSOUWNUWCUURMUWCEMUWCUWOMUVTUUREUU
      RUWOUWCWOEUWOUWCWOUVTUWNVAZUWCUWAYTAKZUURUWQUWBUWAYTAUWQUWAYPWAUWBUWAMUWQ
      UUNYPUVTUWNVNWPUWAYPWQWRTUWQUVSUURUNDUWRUURMYOUVSUWNWSZUWQUURUWQIUUNUWMUW
      QWEVIUWSWIWLYTUURAUUNCYSUUNIJSWTXAXCUVTUWNVDZVAZUWCUVIEUXAUWBPYTAUXAUWTUW
      BPMUVTUWTVNYPUUNVFVGTUVLQXDULXEUMXFXGXHXIXJYOYRYPYTAYOYPYQWAZYRYPMYOBEUUB
      FGDZUXBYOBUWIDUUBUQDBUUBXKXLZUXCYOBCUWIYOXMZVOVPYOUUBYOIBUWMYOWEVIUXEWIXO
      IIVMUDDZYOUXDIUQDUXFXNIXPUOIBXQXRZBEUUBXSXTYOUVQYOUXCUXBYAUVRUXEBBYBXAYCY
      PYQYDWRTYOBYGDUUBYEDEBYHXLUXDUUCBMBYFYOIBIYEDYOYIVIUVRYJBYKUXGBUUBYLYMYN
      $.

    $( There is an explicit inverse to the ` bits ` function for nonnegative
       integers, part 2.  (Contributed by Mario Carneiro, 8-Sep-2016.) $)
    bitsinv2 $p |- ( A e. ( ~P NN0 i^i Fin ) ->
      ( bits ` sum_ n e. A ( 2 ^ n ) ) = A ) $=
      ( vk vm cn0 cfn wcel c2 cv cexp co csu cfv wss elfpw a1i syl sumeq1 sumex
      wceq cpw cin cbits cmpt simprbi wa 2nn0 simplbi sselda nn0expcld bitsinv1
      fsumnn0cl bitsss bitsfi sylanbrc oveq2 cbvsumv syl5eq eqid 3eqtr4d wf1 wb
      fvmpt wf1o ackbijnn f1of1 mp1i id f1fveq syl12anc mpbid ) AEUAFUBZGZAHBIZ
      JKZBLZUCMZCVLCIZVOBLZUDZMZAVTMZTZVQATZVMVQHDIZJKZDLZVPWAWBVMVPEGZWGVPTVMA
      VOBVMAENZAFGZAEOZUEVMVNAGUFZHVNHEGWLUGPVMAEVNVMWIWJWKUHUIUJULZDVPUKQVMVQV
      LGZWAWGTVMVQENZVQFGZWNWOVMVPUMPVMWHWPWMVPUNQVQEOUOZCVQVSWGVLVTVRVQTVSVRWF
      DLWGVRVOWFBDVNWEHJUPUQVRVQWFDRURVTUSZVQWFDSVCQCAVSVPVLVTVRAVOBRWRAVOBSVCU
      TVMVLEVTVAZWNVMWCWDVBVLEVTVDWSVMCBVTWRVEVLEVTVFVGWQVMVHVLEVQAVTVIVJVK $.

    $( The ` bits ` function restricted to nonnegative integers is a bijection
       from the integers to the finite sets of integers.  It is in fact the
       inverse of the Ackermann bijection ~ ackbijnn .  (Contributed by Mario
       Carneiro, 8-Sep-2016.) $)
    bitsf1ocnv $p |- ( ( bits |` NN0 ) : NN0 -1-1-onto-> ( ~P NN0 i^i Fin ) /\
     `' ( bits |` NN0 ) =
        ( x e. ( ~P NN0 i^i Fin ) |-> sum_ n e. x ( 2 ^ n ) ) ) $=
      ( vk cn0 cfn cbits cres wf1o ccnv cv c2 csu cmpt wceq wa wtru wcel wss cz
      a1i cpw cin cexp co eqid bitsss bitsfi elfpw sylanbrc adantl simprbi 2nn0
      cfv simplbi sselda nn0expcld fsumnn0cl bitsinv2 ad2antll fveq2 syl5ibrcom
      eqcomd eqeq2d bitsinv1 ad2antrl sumeq1 impbid f1ocnv2d simpld wb wf bitsf
      feqmptd reseq1d nn0ssz resmpt ax-mp syl6eq f1oeq1 syl mpbird cnveqd eqtrd
      simprd jca trud ) DDUAZEUBZFDGZHZWIIZAWHAJZKBJZUCUDZBLZMZNZOPWJWQPWJDWHCD
      CJZFUMZMZHZPXAWTIZWPNZPCADWHWSWOWTWTUEWRDQZWSWHQZPXDWSDRZWSEQXEXFXDWRUFTW
      RUGWSDUHUIUJWLWHQZWODQPXGWLWNBXGWLDRZWLEQZWLDUHZUKXGWMWLQOZKWMKDQXKULTXGW
      LDWMXGXHXIXJUNUOUPUQUJPXDXGOOZWRWONZWLWSNZXLXNXMWLWOFUMZNZXGXPPXDXGXOWLWL
      BURVBUSXMWSXOWLWRWOFUTVCVAXLXMXNWRWSWNBLZNZXDXRPXGXDXQWRBWRVDVBVEXNWOXQWR
      WLWSWNBVFVCVAVGVHZVIPWIWTNWJXAVJPWICSWSMZDGZWTPFXTDPCSWGFSWGFVKPVLTVMVNDS
      RYAWTNVOCSDWSVPVQVRZDWHWIWTVSVTWAPWKXBWPPWIWTYBWBPXAXCXSWDWCWEWF $.

    $( The ` bits ` function restricted to nonnegative integers is a bijection
       from the integers to the finite sets of integers.  It is in fact the
       inverse of the Ackermann bijection ~ ackbijnn .  (Contributed by Mario
       Carneiro, 8-Sep-2016.) $)
    bitsf1o $p |- ( bits |` NN0 ) : NN0 -1-1-onto-> ( ~P NN0 i^i Fin ) $=
      ( vx vn cn0 cpw cfn cin cbits cres wf1o ccnv cv c2 cexp co csu bitsf1ocnv
      cmpt wceq simpli ) CCDEFZGCHZIUAJATAKLBKMNBOQRABPS $.

    $( The ` bits ` function is an injection from ` ZZ ` to ` ~P NN0 ` .  It is
       obviously not a bijection (by Cantor's theorem ~ canth2 ), and in fact
       its range is the set of finite and cofinite subsets of ` NN0 ` .
       (Contributed by Mario Carneiro, 22-Sep-2016.) $)
    bitsf1 $p |- bits : ZZ -1-1-> ~P NN0 $=
      ( vx vy cz cn0 cbits cfv wceq wcel wa cn adantr c1 ad2antrl fvres syl cfn
      cneg wn com bitsfi cpw wf1 wf cv wi wral bitsf cc simpl zcnd simpr negcld
      1cnd cmin cres cdif simprr difeq2d bitscmp ad2antrr 3eqtr3d nnm1nn0 ominf
      co ad2antlr cen wbr nn0ennn nnenom entr2i enfii mpan2 difinf mpan eqeltrd
      mto nsyl3 eqneltrrd nsyl wo znegcld cr elznn simprbi negnegd eleq1d mpbid
      orbi2d ord mt3d 3eqtr4d wb cin wf1o bitsf1o f1of1 f1fveq syl2anc subcan2d
      ax-mp neg11d expr biimpa eqeltrrd mpd simprl syldan mpjaodan rgen2a dff13
      sylancr mpbir2an ) CDUAZEUBCXMEUCAUDZEFZBUDZEFZGZXNXPGZUEZBCUFACUFUGXTABC
      XNCHZXPCHZIZXNQZJHZXTYDQZDHZYCYEXRXSYCYEXRIZIZXNXPYCXNUHHYHYCXNYAYBUIZUJZ
      KZYCXPUHHYHYCXPYAYBUKZUJZKZYIYDXPQZLYIXNYLULYIXPYOULYIUMYIYDLUNVDZEDUOZFZ
      YPLUNVDZYRFZGZYQYTGZYIYQEFZYTEFZYSUUAYIDXOUPZDXQUPZUUDUUEYIXOXQDYCYEXRUQZ
      URYAUUFUUDGYBYHXNUSUTZYBUUGUUEGZYAYHXPUSZVEVAYIYQDHZYSUUDGYEUULYCXRYDVBMZ
      YQDENOYIYTDHZUUAUUEGYIYPJHZUUNYIUUOXPDHZYIXQPHZUUPYIXOXQPUUHXOPHZUUFPHZYI
      DPHZRZUURUUSRUUTSPHZVCUUTSDVFVGUVBDJSVHVIVJSDVKVLVPZDXOVMVNYIUUFUUDPUUIYI
      UULUUDPHUUMYQTOVOVQVRXPTVSYIUUOUUPYCUUOUUPVTZYHYCUUOYPQZDHZVTZUVDYCYPCHZU
      VGYCXPYMWAUVHYPWBHUVGYPWCWDOYCUVFUUPUUOYCUVEXPDYCXPYNWEWFWHWGZKWIWJYPVBZO
      ZYTDENOWKYIUULUUNUUBUUCWLZUUMUVKDXMPWMZYRUBZUULUUNIUVLDUVMYRWNUVNWODUVMYR
      WPWTZDUVMYQYTYRWQVNWRWGWSXAXBYCYGXNDHZXTYCYGUVPYCYFXNDYCXNYKWEWFXCYCUVPXR
      XSYCUVPXRIZIZXNYRFZXPYRFZGZXSUVRXOXQUVSUVTYCUVPXRUQZUVPUVSXOGYCXRXNDENMUV
      RUUPUVTXQGUVRUUORUUPUVRUUNUUOUVRUUEPHUUNUVRUUGUUEPYBUUJYAUVQUUKVEUVRUVAUU
      QUUGPHRUVCUVRXOXQPUWBUVPUURYCXRXNTMXDDXQVMXKVRYTTVSUVJVSUVRUUOUUPYCUVDUVQ
      UVIKWIXEZXPDENOWKUVRUVPUUPUWAXSWLZYCUVPXRXFUWCUVNUVPUUPIUWDUVODUVMXNXPYRW
      QVNWRWGXBXGYCYDCHZYEYGVTZYCXNYJWAUWEYDWBHUWFYDWCWDOXHXIABCXMEXJXL $.

    $( The bits of a power of two.  (Contributed by Mario Carneiro,
       5-Sep-2016.) $)
    2ebits $p |- ( N e. NN0 -> ( bits ` ( 2 ^ N ) ) = { N } ) $=
      ( vk cn0 wcel csn c2 cv cexp co csu cbits cfv cc wceq cn 2nn a1i nnexpcld
      id cfn nncnd oveq2 sumsn mpdan fveq2d cpw cin wss snssi sylanbrc bitsinv2
      snfi elfpw syl eqtr3d ) ACDZAEZFBGZHIZBJZKLZFAHIZKLUQUPUTVBKUPVBMDUTVBNUP
      VBUPFAFODUPPQUPSRUAUSVBBACURAFHUBUCUDUEUPUQCUFTUGDZVAUQNUPUQCUHUQTDZVCACU
      IVDUPAULQUQCUMUJUQBUKUNUO $.

    bitsinv.k $e |- K = `' ( bits |` NN0 ) $.
    $( The inverse of the ` bits ` function.  (Contributed by Mario Carneiro,
       8-Sep-2016.) $)
    bitsinv $p |- ( A e. ( ~P NN0 i^i Fin ) ->
      ( K ` A ) = sum_ k e. A ( 2 ^ k ) ) $=
      ( vx cv c2 cexp co csu cn0 cpw cfn cin sumeq1 cbits cres ccnv cmpt wf1o
      wceq bitsf1ocnv simpri eqtri sumex fvmpt ) EAEFZGBFHIZBJZAUHBJKLMNZCUGAUH
      BOCPKQZRZEUJUISZDKUJUKTULUMUAEBUBUCUDAUHBUEUF $.

    $( Recursive definition of the inverse of the ` bits ` function.
       (Contributed by Mario Carneiro, 8-Sep-2016.) $)
    bitsinvp1 $p |- ( ( A C_ NN0 /\ N e. NN0 ) ->
      ( K ` ( A i^i ( 0 ..^ ( N + 1 ) ) ) ) =
      ( ( K ` ( A i^i ( 0 ..^ N ) ) ) + if ( N e. A , ( 2 ^ N ) , 0 ) ) ) $=
      ( vk cn0 wss wcel wa cc0 caddc co cin c2 cexp csu c0 wceq a1i cfn c1 cfzo
      cv csn cfv cif fzonel disjsn sylibr ineq2d inindi in0 3eqtr3g simpr nn0uz
      wn cun cuz syl6eleq fzosplitsn syl indi syl6eq fzofi inss2 sylancl cn 2nn
      ssfi inss1 simpl syl5ss sselda nnexpcld nncnd fsumsplit cpw elfpw bitsinv
      sylanbrc snssi adantl sseqin2 sylib sumeq1d cc simplr oveq2 sumsn syl2anc
      eqtr2d sum0 syl6req ifeqda oveq12d 3eqtr4d ) AFGZCFHZIZAJCUAKLZUBLZMZNEUC
      ZOLZEPZAJCUBLZMZXDEPZACUDZMZXDEPZKLXBBUEZXGBUEZCAHZNCOLZJUFZKLWSXGXJXDXBE
      WSAXFXIMZMAQMXGXJMQWSXQQAWSCXFHUPZXQQRXRWSJCUGSXFCUHUIUJAXFXIUKAULUMWSXBA
      XFXIUQZMXGXJUQWSXAXSAWSCJURUEZHXAXSRWSCFXTWQWRUNUOUSJCUTVAUJAXFXIVBVCWSXA
      THZXBXAGXBTHZYAWSJWTVDSAXAVEXAXBVIVFZWSXCXBHIZXDYDNXCNVGHZYDVHSWSXBFXCWSX
      BAFAXAVJWQWRVKZVLZVMVNVOVPWSXBFVQTMZHZXLXERWSXBFGYBYIYGYCXBFVRVTXBEBDVSVA
      WSXMXHXPXKKWSXGYHHZXMXHRWSXGFGXGTHZYJWSXGAFAXFVJYFVLWSXFTHZXGXFGYKYLWSJCV
      DSAXFVEXFXGVIVFXGFVRVTXGEBDVSVAWSXNXOJXKWSXNIZXKXIXDEPZXOYMXJXIXDEYMXIAGZ
      XJXIRXNYOWSCAWAWBXIAWCWDWEYMXNXOWFHYNXORWSXNUNYMXOYMNCYEYMVHSWQWRXNWGVNVO
      XDXOECAXCCNOWHWIWJWKWSXNUPZIZXKQXDEPJYQXJQXDEYQYPXJQRWSYPUNACUHUIWEXDEWLW
      MWNWOWP $.
  $}

  $( The core of the proof of ~ sadadd2 .  The intuitive justification for this
     is that ` cadd ` is true if at least two arguments are true, and ` hadd `
     is true if an odd number of arguments are true, so altogether the result
     is ` n x. A ` where ` n ` is the number of true arguments, which is
     equivalently obtained by adding together one ` A ` for each true argument,
     on the right side.  (Contributed by Mario Carneiro, 8-Sep-2016.) $)
  sadadd2lem2 $p |- ( A e. CC ->
    ( if ( hadd ( ph , ps , ch ) , A , 0 ) +
      if ( cadd ( ph , ps , ch ) , ( 2 x. A ) , 0 ) ) =
    ( ( if ( ph , A , 0 ) + if ( ps , A , 0 ) ) + if ( ch , A , 0 ) ) ) $=
    ( cc cc0 cif co caddc wceq wa wb adantl ifbid iftrue oveq12d oveq1d 3eqtr4d
    wn iffalse wcel whad wcad c2 cmul wo 0cn ifcl mpan2 ad2antrr simpll addassd
    add12d eqtr4d pm5.501 bicomd simpr orcd syl 2timesd eqtrd addid2d id mulcld
    2cnd 2times adantr simpl 0cnd addcomd pm2.61dan ifnot nbn2 syl5eqr 3eqtr2rd
    biorf hadrot had1 syl5bbr cad1 oveq2d wxo notbid df-xor syl6bbr ibar ifclda
    simplll con1bid syl5bb intnanrd had0 cad0 addcld addid1d sylan9eqr ) DEUAZC
    ABCUBZDFGZABCUCZUDDUEHZFGZIHZADFGZBDFGZIHZCDFGZIHZJWQCKZABLZDFGZABUFZXAFGZI
    HZXFDIHZXCXHXIAXNXOJXIAKZXEDDIHZIHZDXEIHZDIHZXNXOXPXRDXEDIHZIHXTXPXEDDWQXEE
    UAZCAWQFEUAZYBUGBDFEUHUIZUJZWQCAUKZYFUMXPDXEDYFYEYFULUNXPXKXEXMXQIXPXJBDFXP
    BXJABXJLZXIABUOZMUPNXPXMXAXQXPXLXMXAJXPABXIAUQURXLXAFOUSXPDYFUTVAPXPXFXSDIX
    PXDDXEIAXDDJZXIADFOZMQQRXIASZKZXOYABFDGZBXAFGZIHZXNYLXFXEDIYLXFFXEIHZXEYLXD
    FXEIYKXDFJZXIADFTZMQYLXEWQYBCYKYDUJVBVAQWQYOYAJZCYKWQBYSWQBKZFXAIHZXQYOYAWQ
    UUAXQJBWQUUAXAXQWQXAWQUDDWQVEWQVCVDVBDVFVAVGZYTYMFYNXAIBYMFJWQBFDOMBYNXAJWQ
    BXAFOMPZYTXEDDIBXEDJWQBDFOMZQRWQBSZKZDFIHFDIHYOYAUUFDFWQUUEVHUUFVIVJUUFYMDY
    NFIUUEYMDJWQBFDTMZUUEYNFJWQBXAFTMZPUUFXEFDIUUEXEFJWQBDFTMZQRVKUJYLYMXKYNXMI
    YLYMUUEDFGZXKBDFVLZYLUUEXJDFYKUUEXJLZXIABVMZMNVNYLBXLXAFYKBXLLXIABVPMNPVOVK
    XIWSXKXBXMIXIWRXJDFCWRXJLWQWRCABUBZCXJCABVQZCABVRVSMNXIWTXLXAFCWTXLLWQABCVT
    MNPXIXGDXFICXGDJWQCDFOMWARWQCSZKZABWBZDFGZABKZXAFGZIHZXFXCXHUUQAUVBXFJUUQAK
    ZXFXSYOUVBUVCXDDXEIAYIUUQYJMQWQYOXSJZUUPAWQBUVDYTUUAXQYOXSUUBUUCYTXEDDIUUDW
    ARUUFYMDYNXEIUUGUUFYNFXEUUHUUIUNPVKUJUVCYMUUSYNUVAIUVCYMUUJUUSUUKUVCUUEUURD
    FUVCUUEXJSZUURUVCBXJAYGUUQYHMWCABWDZWENVNUVCBUUTXAFABUUTLUUQABWFMNPVOUUQYKK
    ZXEFIHYPUVBXFUVGXEFUVGBDFEWQUUPYKBWHUVGUUEKVIWGUVGVIVJUVGUUSXEUVAFIUVGUURBD
    FUURUVEUVGBUVFUVGBXJYKUULUUQUUMMWIWJNUVGUUTSUVAFJUVGABUUQYKUQWKUUTXAFTUSPUV
    GXDFXEIYKYQUUQYRMQRVKUUQWSUUSXBUVAIUUQWRUURDFUUPWRUURLWQWRUUNUUPUURUUOCABWL
    VSMNUUQWTUUTXAFUUPWTUUTLWQABCWMMNPUUPWQXHXFFIHXFUUPXGFXFICDFTWAWQXFWQXDXEWQ
    YCXDEUAUGADFEUHUIYDWNWOWPRVK $.

  ${
    $d c k m n x y $.  $d c k m x y A $.  $d c k m x y B $.  $d k n x y N $.
    $d k x y C $.  $d k x K $.  $d k x y ph $.
    $( Define the addition of two bit sequences, using ~ df-had and ~ df-cad
       bit operations.  (Contributed by Mario Carneiro, 5-Sep-2016.) $)
    df-sad $a |- sadd = ( x e. ~P NN0 , y e. ~P NN0 |-> { k e. NN0 |
      hadd ( k e. x , k e. y , (/) e. ( seq 0 (
        ( c e. 2o , m e. NN0 |->
          if ( cadd ( m e. x , m e. y , (/) e. c ) , 1o , (/) ) ) ,
        ( n e. NN0 |-> if ( n = 0 , (/) , ( n - 1 ) ) ) ) ` k ) ) } ) $.

    sadval.a $e |- ( ph -> A C_ NN0 ) $.
    sadval.b $e |- ( ph -> B C_ NN0 ) $.
    sadval.c $e |- C = seq 0 ( ( c e. 2o , m e. NN0 |->
          if ( cadd ( m e. A , m e. B , (/) e. c ) , 1o , (/) ) ) ,
        ( n e. NN0 |-> if ( n = 0 , (/) , ( n - 1 ) ) ) ) $.
    $( Define the addition of two bit sequences, using ~ df-had and ~ df-cad
       bit operations.  (Contributed by Mario Carneiro, 5-Sep-2016.) $)
    sadfval $p |- ( ph -> ( A sadd B ) = { k e. NN0 |
      hadd ( k e. A , k e. B , (/) e. ( C ` k ) ) } ) $=
      ( vx cn0 wcel cv c0 wceq c2o cc0 eleq2d vy cpw csad co cfv whad wss nn0ex
      crab elpw2 sylibr wcad c1o cif cmpt2 c1 cmin cmpt cseq wa simpl simpr w3a
      simp1l simp1r biidd cadbi123d mpt2eq3dva seqeq2d syl6eqr fveq1d hadbi123d
      ifbid rabbidv df-sad rabex ovmpt2a syl2anc ) ABMUBZNZCVSNZBCUCUDEOZBNZWBC
      NZPWBDUEZNZUFZEMUIZQABMUGVTIBMUHUJUKACMUGWAJCMUHUJUKLUABCVSVSWBLOZNZWBUAO
      ZNZPWBHFRMFOZWINZWMWKNZPHOZNZULZUMPUNZUOZGMGOZSQPXAUPUQUDUNURZSUSZUEZNZUF
      ZEMUIWHUCWIBQZWKCQZUTZXFWGEMXIWJWCWLWDXEWFXIWIBWBXGXHVATXIWKCWBXGXHVBTXIX
      DWEPXIWBXCDXIXCHFRMWMBNZWMCNZWQULZUMPUNZUOZXBSUSDXIWTXNXBSXIHFRMWSXMXIWPR
      NZWMMNZVCZWRXLUMPXQWNXJWOXKWQWQXQWIBWMXGXHXOXPVDTXQWKCWMXGXHXOXPVETXQWQVF
      VGVMVHVIKVJVKTVLVNLUAEFGHVOWGEMUHVPVQVR $.

    $( The carry sequence is a sequence of elements of ` 2o ` encoding a
       "sequence of wffs".  (Contributed by Mario Carneiro, 5-Sep-2016.) $)
    sadcf $p |- ( ph -> C : NN0 --> 2o ) $=
      ( cn0 c2o cv wcel c0 c1o cc0 co wf cfv vx vy wcad cmpt2 wceq c1 cmin cmpt
      cif cseq cvv 0nn0 iftrue 0ex fvmpt ax-mp cpr prid1 df2o3 eleqtrri eqeltri
      eqid a1i cop df-ov cxp wral con0 1on elexi prid2 keepel rgen2w fmpt2 mpbi
      wa f0cli nn0uz 0zd caddc cuz fvexd seqf2 feq1i sylibr ) AKLGELKEMZBNWFCNO
      GMNUCZPOUIZUDZFKFMZQUEZOWJUFUGRZUIZUHZQUJZSKLDSAUAUBLUKWIWNQKQWNTZLNAWPOL
      QKNWPOUEULFQWMOKWNWKOWLUMWNVBUNUOUPOOPUQZLOPUNURUSUTZVAVCUAMZUBMZWIRZLNAW
      SLNWTUKNVPVPXAWSWTVDZWITLWSWTWIVELKVFZLXBWIWHLNZEKVGGLVGXCLWISXDGELKWGPOL
      PWQLOPPVHVIVJVKUSUTWRVLVMGELKWHLWIWIVBVNVOWRVQVAVCVRAVSAWSQUFVTRWATNVPWSW
      NWBWCKLDWOJWDWE $.

    $( The initial element of the carry sequence is ` F. ` .  (Contributed by
       Mario Carneiro, 5-Sep-2016.) $)
    sadc0 $p |- ( ph -> -. (/) e. ( C ` 0 ) ) $=
      ( c0 cc0 cfv wcel wn cn0 cv cif wceq ax-mp noel c2o wcad cmpt2 c1 cmin co
      c1o cmpt cseq fveq1i cz 0z seq1 0nn0 iftrue 0ex fvmpt 3eqtri eleq2i mtbir
      eqid a1i ) KLDMZNZOAVEKKNKUAVDKKVDLGEUBPEQZBNVFCNKGQNUCUHKRUDZFPFQZLSZKVH
      UEUFUGZRZUIZLUJZMZLVLMZKLDVMJUKLULNVNVOSUMVGVLLUNTLPNVOKSUOFLVKKPVLVIKVJU
      PVLVBUQURTUSUTVAVC $.

    sadcp1.n $e |- ( ph -> N e. NN0 ) $.
    $( The carry sequence (which is a sequence of wffs, encoded as ` 1o ` and
       ` (/) ` ) is defined recursively as the carry operation applied to the
       previous carry and the two current inputs.  (Contributed by Mario
       Carneiro, 5-Sep-2016.) $)
    sadcp1 $p |- ( ph -> ( (/) e. ( C ` ( N + 1 ) ) <->
      cadd ( N e. A , N e. B , (/) e. ( C ` N ) ) ) ) $=
      ( c0 c1 co wcel c1o cn0 cc0 wceq vx vy caddc cfv wcad cif cmin cmpt cmpt2
      cv c2o cuz nn0uz syl6eleq seqp1 syl fveq1i oveq1i 3eqtr4g peano2nn0 eqeq1
      cseq oveq1 ifbieq2d eqid 0ex ovex ifex fvmpt 3syl wne cn nnne0d ifnefalse
      nn0p1nn nn0cnd pncand 3eqtrd oveq2d sadcf ffvelrnd wa simpr eleq1d eleq2d
      1cnd simpl cadbi123d ifbid biidd eleq2 eleq1 cbvmpt2v 1on ovmpt2a syl2anc
      con0 elexi noel iffalse mtbiri con4i 0lt1o iftrue syl5eleqr impbii syl6bb
      wn ) AMGNUCOZDUDZPMGBPZGCPZMGDUDZPZUEZQMUFZPZXOAXJXPMAXJXMXIFRFUJZSTZMXRN
      UGOZUFZUHZUDZHEUKREUJZBPZYDCPZMHUJZPZUEZQMUFZUIZOZXMGYKOZXPAXIYKYBSVBZUDZ
      GYNUDZYCYKOZXJYLAGSULUDZPYOYQTAGRYRLUMUNYKYBSGUOUPXIDYNKUQXMYPYCYKGDYNKUQ
      URUSAYCGXMYKAYCXISTZMXINUGOZUFZYTGAGRPZXIRPYCUUATLGUTFXIYAUUARYBXRXITXSYS
      XTYTMXRXISVAXRXINUGVCVDYBVEYSMYTVFXINUGVGVHVIVJAXISVKUUAYTTAXIAUUBXIVLPLG
      VOUPVMXISMYTVNUPAGNAGLVPAWFVQVRVSAXMUKPUUBYMXPTARUKGDABCDEFHIJKVTLWALUAUB
      XMGUKRUBUJZBPZUUCCPZMUAUJZPZUEZQMUFZXPYKUUFXMTZUUCGTZWBZUUHXOQMUULUUDXKUU
      EXLUUGXNUULUUCGBUUJUUKWCZWDUULUUCGCUUMWDUULUUFXMMUUJUUKWGWEWHWIHEUAUBUKRY
      JUUIYEYFUUGUEZQMUFYGUUFTZYIUUNQMUUOYEYEYFYFYHUUGUUOYEWJUUOYFWJYGUUFMWKWHW
      IYDUUCTZUUNUUHQMUUPYEUUDYFUUEUUGUUGYDUUCBWLYDUUCCWLUUPUUGWJWHWIWMXOQMQWQW
      NWRVFVHWOWPVRWEXQXOXOXQXOXHZXQMMPMWSUUQXPMMXOQMWTWEXAXBXOMQXPXCXOQMXDXEXF
      XG $.

    $( The full adder sequence is the half adder function applied to the inputs
       and the carry sequence.  (Contributed by Mario Carneiro, 5-Sep-2016.) $)
    sadval $p |- ( ph -> ( N e. ( A sadd B ) <->
      hadd ( N e. A , N e. B , (/) e. ( C ` N ) ) ) ) $=
      ( vk wcel c0 cfv whad cn0 eleq2d eleq1 csad co cv crab sadfval wceq fveq2
      wb hadbi123d elrab3 syl bitrd ) AGBCUAUBZNGMUCZBNZUNCNZOUNDPZNZQZMRUDZNZG
      BNZGCNZOGDPZNZQZAUMUTGABCDMEFHIJKUESAGRNVAVFUHLUSVFMGRUNGUFZUOVBUPVCURVEU
      NGBTUNGCTVGUQVDOUNGDUGSUIUJUKUL $.

    sadcadd.k $e |- K = `' ( bits |` NN0 ) $.
    ${
      sadcaddlem.1 $e |- ( ph -> ( (/) e. ( C ` N ) <-> ( 2 ^ N ) <_
      ( ( K ` ( A i^i ( 0 ..^ N ) ) ) + ( K ` ( B i^i ( 0 ..^ N ) ) ) ) ) ) $.
      $( Lemma for ~ sadcadd .  (Contributed by Mario Carneiro, 8-Sep-2016.) $)
      sadcaddlem $p |- ( ph -> ( (/) e. ( C ` ( N + 1 ) ) <->
        ( 2 ^ ( N + 1 ) ) <_ ( ( K ` ( A i^i ( 0 ..^ ( N + 1 ) ) ) ) +
                               ( K ` ( B i^i ( 0 ..^ ( N + 1 ) ) ) ) ) ) ) $=
        ( wcel caddc cc0 cle cn0 c0 cfv wcad c2 cexp co cin cif wbr c1 wb wa wo
        cfzo cad1 adantl cr cn 2nn a1i nnexpcld nnred ad2antrr cpw inss1 syl5ss
        cfn wss fzofi inss2 ssfi sylancl elfpw sylanbrc wf1o wf cbits cres ccnv
        bitsf1o f1ocnv ax-mp wceq f1oeq1 mpbir f1of ffvelrni syl nn0addcld 2nn0
        nn0red adantr nn0expcld 0nn0 ifclda biimpa nnnn0d ifcl nn0ge0d addge01d
        wn 0red mpbid iftrue oveq1d breqtrrd addge02d oveq2d jaodan clt iffalse
        ex oveq12d readdcld addid1d eqtrd fveq1i fveq2i fvres f1ocnvfv2 sylancr
        3eqtr3a syl6eqss cz nn0zd bitsfzo syl2anc mpbird elfzolt2 eqbrtrd bitrd
        ltnled wi nn0cnd breq1 ifboth breq1d syl5ibrcom con1d bitsinvp1 le2addd
        ioran ad2antrl ad2antll 00id syl6eq lt2addd syl5bi impcon4bid oveqan12d
        recnd cad0 lenltd con2bid biimpar ltadd1dd ltletr syl3anc mpand ltadd2d
        sylibrd leidd jcad sylbid syld impbid pm2.61dan sadcp1 cmul 2cnd expp1d
        addid2d nncnd times2d add4d breq12d 3bitr4d ) AHBPZHCPZUAHDUBPZUCZUDHUE
        UFZUWBQUFZBRHUNUFZUGZGUBZCUWDUGZGUBZQUFZUVRUWBRUHZUVSUWBRUHZQUFZQUFZSUI
        ZUAHUJQUFZDUBPUDUWOUEUFZBRUWOUNUFZUGGUBZCUWQUGGUBZQUFZSUIAUVTUWAUWNUKAU
        VTULZUWAUVRUVSUMZUWNUVTUWAUXBUKAUVRUVSUVTUOUPUXAUXBUWNUXAUXBUWNUXAUXBUL
        UWBUWBUWIUWLAUWBUQPZUVTUXBAUWBAUDHUDURPAUSUTMVAZVBZVCZUXFAUWIUQPZUVTUXB
        AUWIAUWFUWHAUWETVDVGUGZPZUWFTPZAUWETVHUWEVGPZUXIAUWEBTBUWDVEJVFAUWDVGPZ
        UWEUWDVHUXKUXLARHVIUTZBUWDVJZUWDUWEVKVLUWETVMVNZUXHTUWEGUXHTGVOZUXHTGVP
        UXPUXHTVQTVRZVSZVOZTUXHUXQVOZUXSVTTUXHUXQWAWBGUXRWCUXPUXSUKNUXHTGUXRWDW
        BWEUXHTGWFWBZWGWHZAUWGUXHPZUWHTPZAUWGTVHUWGVGPZUYCAUWGCTCUWDVEKVFAUXLUW
        GUWDVHUYEUXMCUWDVJZUWDUWGVKVLUWGTVMVNZUXHTUWGGUYAWGWHZWIZWKZVCAUWLUQPZU
        VTUXBAUWLAUWJUWKAUVRUWBRTAUVRULZUDHUDTPZUYLWJUTAHTPZUVRMWLWMRTPZAUVRXAZ
        ULZWNUTWOAUVSUWBRTAUVSULZUDHUYMUYRWJUTAUYNUVSMWLWMUYOAUVSXAZULZWNUTWOWI
        WKZVCUXAUWBUWISUIZUXBAUVTVUBOWPWLUXAUVRUWBUWLSUIUVSUXAUVRULZUWBUWBUWKQU
        FZUWLSAUWBVUDSUIZUVTUVRARUWKSUIVUEAUWKAUWBTPZUYOUWKTPAUWBUXDWQZWNUVSUWB
        RTWRVLZWSAUWBUWKUXEAUVSUWBRUQAUXCUVSUXEWLUYTXBWOZWTXCVCVUCUWJUWBUWKQUVR
        UWJUWBWCUXAUVRUWBRXDZUPXEXFUXAUVSULZUWBUWJUWBQUFZUWLSAUWBVULSUIZUVTUVSA
        RUWJSUIVUMAUWJAVUFUYOUWJTPVUGWNUVRUWBRTWRVLZWSAUWBUWJUXEAUVRUWBRUQAUXCU
        VRUXEWLUYQXBWOZXGXCVCVUKUWKUWBUWJQUVSUWKUWBWCUXAUVSUWBRXDZUPXHXFXIUUAXL
        UXBXAUYPUYSULZUXAUWNXAZUVRUVSUUBUXAVUQVURUXAVUQULZUWMUWCXJUIVURVUSUWMUW
        IUWCXJVUSUWMUWIRQUFUWIVUSUWLRUWIQVUSUWLRRQUFRVUSUWJRUWKRQUYPUWJRWCUXAUY
        SUVRUWBRXKZUUCUYSUWKRWCUXAUYPUVSUWBRXKZUUDXMUUEUUFXHVUSUWIVUSUWIVUSUWFU
        WHAUWFUQPZUVTVUQAUWFUYBWKZVCAUWHUQPZUVTVUQAUWHUYHWKZVCXNZUUKXOXPAUWIUWC
        XJUIUVTVUQAUWFUWHUWBUWBVVCVVEUXEUXEAUWFRUWBUNUFZPZUWFUWBXJUIAVVHUWFVQUB
        ZUWDVHZAVVIUWEUWDAUWFUXQUBZUWEUXRUBZUXQUBZVVIUWEUWFVVLUXQUWEGUXRNXQXRAU
        XJVVKVVIWCUYBUWFTVQXSWHAUXTUXIVVMUWEWCVTUXOTUXHUWEUXQXTYAYBUXNYCAUWFYDP
        UYNVVHVVJUKAUWFUYBYEMHUWFYFYGYHUWFRUWBYIWHAUWHVVGPZUWHUWBXJUIAVVNUWHVQU
        BZUWDVHZAVVOUWGUWDAUWHUXQUBZUWGUXRUBZUXQUBZVVOUWGUWHVVRUXQUWGGUXRNXQXRA
        UYDVVQVVOWCUYHUWHTVQXSWHAUXTUYCVVSUWGWCVTUYGTUXHUWGUXQXTYAYBUYFYCAUWHYD
        PUYNVVNVVPUKAUWHUYHYEMHUWHYFYGYHUWHRUWBYIWHUUGVCYJVUSUWMUWCVUSUWIUWLVVF
        VUSUWJUWKAUWJUQPUVTVUQVUOVCAUWKUQPUVTVUQVUIVCXNXNVUSUWBUWBAUXCUVTVUQUXE
        VCZVVTXNYLXCXLUUHUUIYKAUVTXAZULZUWAUVRUVSULZUWNVWAUWAVWCUKAUVRUVSUVTUUL
        UPVWBVWCUWNVWBVWCUWNVWBVWCULZUWCUWIUWCQUFZUWMSAUWCVWESUIZVWAVWCARUWISUI
        VWFAUWIUYIWSAUWCUWIAUWBUWBUXEUXEXNZUYJXGXCVCVWDUWLUWCUWIQVWCUWLUWCWCVWB
        UVRUVSUWJUWBUWKUWBQVUJVUPUUJUPXHXFXLVWBUWNUWBUWLXJUIZVWCVWBUWNUWIUWBQUF
        ZUWMXJUIZVWHVWBVWIUWCXJUIZUWNVWJVWBUWIUWBUWBVWBUWFUWHAVVBVWAVVCWLAVVDVW
        AVVEWLXNZAUXCVWAUXEWLZVWMAUWIUWBXJUIZVWAAUVTVWNAUVTVUBVWNXAOAUWBUWIUXEU
        YJUUMYKUUNUUOUUPVWBVWIUQPUWCUQPZUWMUQPZVWKUWNULVWJYMVWBUWIUWBVWLVWMXNAV
        WOVWAVWGWLAVWPVWAAUWIUWLUYJVUAXNWLVWIUWCUWMUUQUURUUSVWBUWBUWLUWIVWMAUYK
        VWAVUAWLAUXGVWAUYJWLUUTUVAAVWHVWCYMVWAAVWHUWLUWBSUIZXAZVWCAUWBUWLUXEVUA
        YLAVWRUVRUVSAUVRVWQAVWQUYPRUWKQUFZUWBSUIAVWSUWKUWBSAUWKAUWKVUHYNZUVLAUW
        BUWBSUIZRUWBSUIZUWKUWBSUIZAUWBUXEUVBZAUWBVUGWSZUVSVXAVXBVXCUWBRUWBUWKUW
        BSYORUWKUWBSYOYPYGYJUYPUWLVWSUWBSUYPUWJRUWKQVUTXEYQYRYSAUVSVWQAVWQUYSUW
        JRQUFZUWBSUIAVXFUWJUWBSAUWJAUWJVUNYNZXOAVXAVXBUWJUWBSUIZVXDVXEUVRVXAVXB
        VXHUWBRUWBUWJUWBSYORUWJUWBSYOYPYGYJUYSUWLVXFUWBSUYSUWKRUWJQVVAXHYQYRYSU
        VCUVDWLUVEUVFYKUVGABCDEFHIJKLMUVHAUWPUWCUWTUWMSAUWPUWBUDUVIUFUWCAUDHAUV
        JMUVKAUWBAUWBUXDUVMUVNXPAUWTUWFUWJQUFZUWHUWKQUFZQUFUWMAUWRVXIUWSVXJQABT
        VHUYNUWRVXIWCJMBGHNYTYGACTVHUYNUWSVXJWCKMCGHNYTYGXMAUWFUWJUWHUWKAUWFUYB
        YNVXGAUWHUYHYNVWTUVOXPUVPUVQ $.
    $}

    $( Non-recursive definition of the carry sequence.  (Contributed by Mario
       Carneiro, 8-Sep-2016.) $)
    sadcadd $p |- ( ph -> ( (/) e. ( C ` N ) <-> ( 2 ^ N ) <_
      ( ( K ` ( A i^i ( 0 ..^ N ) ) ) + ( K ` ( B i^i ( 0 ..^ N ) ) ) ) ) ) $=
      ( c0 cfv c2 co cc0 cin vx vk cn0 wcel cexp cfzo caddc cle wbr wb cv wi c1
      wceq fveq2 eleq2d oveq2 cc 2cn exp0 ax-mp syl6eq fzo0 ineq2d fveq2d cbits
      in0 cres ccnv 0nn0 fvres 0bits eqtr2i fveq12i cpw bitsf1o f1ocnvfv1 mp2an
      cfn wf1o eqtri oveq12d 00id breq12d bibi12d imbi2d sadc0 clt 0lt1 0re 1re
      wn ltnlei mpbi a1i 2falsed wa wss ad2antrr simplr simpr sadcaddlem expcom
      ex a2d nn0ind mpcom ) HUCUDAOHDPZUDZQHUERZBSHUFRZTZGPZCXKTZGPZUGRZUHUIZUJ
      ZMAOUAUKZDPZUDZQXSUERZBSXSUFRZTZGPZCYCTZGPZUGRZUHUIZUJZULAOSDPZUDZUMSUHUI
      ZUJZULAOUBUKZDPZUDZQYOUERZBSYOUFRZTZGPZCYSTZGPZUGRZUHUIZUJZULAOYOUMUGRZDP
      ZUDZQUUGUERZBSUUGUFRZTZGPZCUUKTZGPZUGRZUHUIZUJZULAXRULUAUBHXSSUNZYJYNAUUS
      YAYLYIYMUUSXTYKOXSSDUOUPUUSYBUMYHSUHUUSYBQSUERZUMXSSQUEUQQURUDUUTUMUNUSQU
      TVAVBUUSYHSSUGRSUUSYESYGSUGUUSYEOGPZSUUSYDOGUUSYDBOTOUUSYCOBUUSYCSSUFROXS
      SSUFUQSVCVBZVDBVGVBVEUVASVFUCVHZPZUVCVIZPZSOUVDGUVENUVDSVFPZOSUCUDZUVDUVG
      UNVJSUCVFVKVAVLVMVNUCUCVOVSTZUVCVTUVHUVFSUNVPVJUCUVISUVCVQVRWAZVBUUSYGUVA
      SUUSYFOGUUSYFCOTOUUSYCOCUVBVDCVGVBVEUVJVBWBWCVBWDWEWFXSYOUNZYJUUFAUVKYAYQ
      YIUUEUVKXTYPOXSYODUOUPUVKYBYRYHUUDUHXSYOQUEUQUVKYEUUAYGUUCUGUVKYDYTGUVKYC
      YSBXSYOSUFUQZVDVEUVKYFUUBGUVKYCYSCUVLVDVEWBWDWEWFXSUUGUNZYJUURAUVMYAUUIYI
      UUQUVMXTUUHOXSUUGDUOUPUVMYBUUJYHUUPUHXSUUGQUEUQUVMYEUUMYGUUOUGUVMYDUULGUV
      MYCUUKBXSUUGSUFUQZVDVEUVMYFUUNGUVMYCUUKCUVNVDVEWBWDWEWFXSHUNZYJXRAUVOYAXI
      YIXQUVOXTXHOXSHDUOUPUVOYBXJYHXPUHXSHQUEUQUVOYEXMYGXOUGUVOYDXLGUVOYCXKBXSH
      SUFUQZVDVEUVOYFXNGUVOYCXKCUVPVDVEWBWDWEWFAYLYMABCDEFIJKLWGYMWLZASUMWHUIUV
      QWISUMWJWKWMWNWOWPYOUCUDZAUUFUURAUVRUUFUURULAUVRWQZUUFUURUVSUUFWQBCDEFGYO
      IABUCWRUVRUUFJWSACUCWRUVRUUFKWSLAUVRUUFWTNUVSUUFXAXBXDXCXEXFXG $.

    ${
      sadadd2lem.1 $e |- ( ph -> ( ( K ` ( ( A sadd B ) i^i ( 0 ..^ N ) ) ) +
      if ( (/) e. ( C ` N ) , ( 2 ^ N ) , 0 ) ) =
      ( ( K ` ( A i^i ( 0 ..^ N ) ) ) + ( K ` ( B i^i ( 0 ..^ N ) ) ) ) ) $.
      $( Lemma for ~ sadadd2 .  (Contributed by Mario Carneiro, 9-Sep-2016.) $)
      sadadd2lem $p |- ( ph ->
        ( ( K ` ( ( A sadd B ) i^i ( 0 ..^ ( N + 1 ) ) ) ) +
          if ( (/) e. ( C ` ( N + 1 ) ) , ( 2 ^ ( N + 1 ) ) , 0 ) ) =
        ( ( K ` ( A i^i ( 0 ..^ ( N + 1 ) ) ) ) +
          ( K ` ( B i^i ( 0 ..^ ( N + 1 ) ) ) ) ) ) $=
        ( co cc0 wcel caddc cn0 vk csad cfzo cin cfv c2 cexp cif c0 cpw cfn wss
        c1 inss1 cv whad sadfval ssrab2 syl6eqss syl5ss fzofi a1i inss2 sylancl
        crab ssfi elfpw sylanbrc cbits cres ccnv wf1o bitsf1o f1ocnv f1of feq1i
        wf mp2b mpbir ffvelrni nn0cnd 2nn0 nn0expcld 0nn0 ifcl nn0addcld addcld
        syl 1nn0 cc adantr wn 0cnd ifclda wcad cmul sadval ifbid sadcp1 mulcomd
        expp1d eqtrd ifbieq1d oveq12d wceq sadadd2lem2 add32d addassd addcan2ad
        wa 3eqtr4d add4d bitsinvp1 syl2anc oveq1d ) ABCUBPZQHUCPZUDZGUEZHXPRZUF
        HUGPZQUHZSPZUIHUMSPZDUERZUFYDUGPZQUHZSPZBXQUDZGUEZHBRZYAQUHZSPZCXQUDZGU
        EZHCRZYAQUHZSPZSPZXPQYDUCPZUDGUEZYGSPBYTUDGUEZCYTUDGUEZSPAXSYBYGSPZSPZY
        JYOSPZYLYQSPZSPZYHYSAUUEUUHUIHDUERZYAQUHZAXSUUDAXSAXRTUJUKUDZRZXSTRAXRT
        ULXRUKRZUULAXRXPTXPXQUNAXPUAUOZBRUUNCRUIUUNDUERUPZUATVETABCDUAEFIJKLUQU
        UOUATURUSZUTAXQUKRZXRXQULUUMUUQAQHVAVBZXPXQVCXQXRVFVDXRTVGVHUUKTXRGUUKT
        GVQUUKTVITVJZVKZVQZTUUKUUSVLUUKTUUTVLUVAVMTUUKUUSVNUUKTUUTVOVRUUKTGUUTN
        VPVSZVTWHWAZAYBYGAYBAYATRZQTRZYBTRAUFHUFTRAWBVBZMWCZWDXTYAQTWEVDWAZAYGA
        YFTRUVEYGTRAUFYDUVFAHUMMUMTRAWIVBWFWCWDYEYFQTWEVDWAZWGZWGAUUFUUGAYJYOAY
        JAYIUUKRZYJTRAYITULYIUKRZUVKAYIBTBXQUNJUTAUUQYIXQULUVLUURBXQVCXQYIVFVDY
        ITVGVHUUKTYIGUVBVTWHWAZAYOAYNUUKRZYOTRAYNTULYNUKRZUVNAYNCTCXQUNKUTAUUQY
        NXQULUVOUURCXQVCXQYNVFVDYNTVGVHUUKTYNGUVBVTWHWAZWGZAYLYQAYLAUVDUVEYLTRU
        VGWDYKYAQTWEVDWAZAYQAUVDUVEYQTRUVGWDYPYAQTWEVDWAZWGZWGAUUIYAQWJAYAWJRZU
        UIAYAUVGWAZWKAUUIWLXJWMWNZAXSUUJSPZUUDSPUUFUUGUUJSPZSPUUEUUJSPUUHUUJSPA
        UWDUUFUUDUWESOAUUDYKYPUUIUPZYAQUHZYKYPUUIWOZUFYAWPPZQUHZSPZUWEAYBUWGYGU
        WJSAXTUWFYAQABCDEFHIJKLMWQWRAYEUWHYFUWIQABCDEFHIJKLMWSAYFYAUFWPPUWIAUFH
        AUFUVFWAZMXAAYAUFUWBUWLWTXBXCXDAUWAUWKUWEXEUWBYKYPUUIYAXFWHXBXDAXSUUDUU
        JUVCUVJUWCXGAUUFUUGUUJUVQUVTUWCXHXKXIAXSYBYGUVCUVHUVIXHAYJYLYOYQUVMUVRU
        VPUVSXLXKAUUAYCYGSAXPTULHTRZUUAYCXEUUPMXPGHNXMXNXOAUUBYMUUCYRSABTULUWMU
        UBYMXEJMBGHNXMXNACTULUWMUUCYRXEKMCGHNXMXNXDXK $.
    $}

    $( Sum of initial segments of the ` sadd ` sequence.  (Contributed by Mario
       Carneiro, 8-Sep-2016.) $)
    sadadd2 $p |- ( ph -> ( ( K ` ( ( A sadd B ) i^i ( 0 ..^ N ) ) ) +
      if ( (/) e. ( C ` N ) , ( 2 ^ N ) , 0 ) ) =
      ( ( K ` ( A i^i ( 0 ..^ N ) ) ) + ( K ` ( B i^i ( 0 ..^ N ) ) ) ) ) $=
      ( co cc0 cin cfv c0 caddc vx vk cn0 wcel csad cfzo c2 cexp cif wceq cv wi
      c1 oveq2 fzo0 syl6eq ineq2d fveq2d cbits cres ccnv 0nn0 fvres ax-mp 0bits
      in0 eqtr2i fveq12i cpw wf1o bitsf1o f1ocnvfv1 mp2an eqtri eleq2d ifbieq1d
      cfn fveq2 oveq12d 00id eqeq12d imbi2d sadc0 iffalsed oveq2d wa wss simplr
      ad2antrr simpr sadadd2lem ex expcom a2d nn0ind mpcom ) HUCUDABCUEOZPHUFOZ
      QZGRZSHDRZUDZUGHUHOZPUIZTOZBWRQZGRZCWRQZGRZTOZUJZMAWQPUAUKZUFOZQZGRZSXLDR
      ZUDZUGXLUHOZPUIZTOZBXMQZGRZCXMQZGRZTOZUJZULAPSPDRZUDZUGPUHOZPUIZTOZPUJZUL
      AWQPUBUKZUFOZQZGRZSYMDRZUDZUGYMUHOZPUIZTOZBYNQZGRZCYNQZGRZTOZUJZULAWQPYMU
      MTOZUFOZQZGRZSUUHDRZUDZUGUUHUHOZPUIZTOZBUUIQZGRZCUUIQZGRZTOZUJZULAXKULUAU
      BHXLPUJZYFYLAUVCXTYKYEPUVCXOPXSYJTUVCXOSGRZPUVCXNSGUVCXNWQSQSUVCXMSWQUVCX
      MPPUFOSXLPPUFUNPUOUPZUQWQVFUPURUVDPUSUCUTZRZUVFVAZRZPSUVGGUVHNUVGPUSRZSPU
      CUDZUVGUVJUJVBPUCUSVCVDVEVGVHUCUCVIVQQZUVFVJUVKUVIPUJVKVBUCUVLPUVFVLVMVNZ
      UPUVCXQYHXRYIPUVCXPYGSXLPDVRVOXLPUGUHUNVPVSUVCYEPPTOZPUVCYBPYDPTUVCYBUVDP
      UVCYASGUVCYABSQSUVCXMSBUVEUQBVFUPURUVMUPUVCYDUVDPUVCYCSGUVCYCCSQSUVCXMSCU
      VEUQCVFUPURUVMUPVSVTUPWAWBXLYMUJZYFUUGAUVOXTUUAYEUUFUVOXOYPXSYTTUVOXNYOGU
      VOXMYNWQXLYMPUFUNZUQURUVOXQYRXRYSPUVOXPYQSXLYMDVRVOXLYMUGUHUNVPVSUVOYBUUC
      YDUUETUVOYAUUBGUVOXMYNBUVPUQURUVOYCUUDGUVOXMYNCUVPUQURVSWAWBXLUUHUJZYFUVB
      AUVQXTUUPYEUVAUVQXOUUKXSUUOTUVQXNUUJGUVQXMUUIWQXLUUHPUFUNZUQURUVQXQUUMXRU
      UNPUVQXPUULSXLUUHDVRVOXLUUHUGUHUNVPVSUVQYBUURYDUUTTUVQYAUUQGUVQXMUUIBUVRU
      QURUVQYCUUSGUVQXMUUICUVRUQURVSWAWBXLHUJZYFXKAUVSXTXEYEXJUVSXOWTXSXDTUVSXN
      WSGUVSXMWRWQXLHPUFUNZUQURUVSXQXBXRXCPUVSXPXASXLHDVRVOXLHUGUHUNVPVSUVSYBXG
      YDXITUVSYAXFGUVSXMWRBUVTUQURUVSYCXHGUVSXMWRCUVTUQURVSWAWBAYKUVNPAYJPPTAYH
      YIPABCDEFIJKLWCWDWEVTUPYMUCUDZAUUGUVBAUWAUUGUVBULAUWAWFZUUGUVBUWBUUGWFBCD
      EFGYMIABUCWGUWAUUGJWIACUCWGUWAUUGKWILAUWAUUGWHNUWBUUGWJWKWLWMWNWOWP $.

    $( Sum of initial segments of the ` sadd ` sequence.  (Contributed by Mario
       Carneiro, 9-Sep-2016.) $)
    sadadd3 $p |- ( ph ->
      ( ( K ` ( ( A sadd B ) i^i ( 0 ..^ N ) ) ) mod ( 2 ^ N ) ) =
      ( ( ( K ` ( A i^i ( 0 ..^ N ) ) ) +
          ( K ` ( B i^i ( 0 ..^ N ) ) ) ) mod ( 2 ^ N ) ) ) $=
      ( co cc0 cfv wcel cdvds cn0 vk csad cfzo cin c0 c2 cexp cif cmo wceq cmin
      caddc wbr cz cn 2nn a1i nnexpcld nnzd iddvds syl dvds0 ifboth syl2anc cpw
      breq2 cfn wss inss1 cv whad crab sadfval ssrab2 syl6eqss fzofi inss2 ssfi
      syl5ss sylancl elfpw sylanbrc wf cbits cres ccnv wf1o bitsf1o f1ocnv f1of
      mp2b feq1i mpbir ffvelrni nn0cnd cc nncnd 0cn ifcl pncan2d breqtrrd nn0zd
      wb adantr 0zd ifclda zaddcld moddvds syl3anc mpbird sadadd2 oveq1d eqtr3d
      wn wa ) ABCUBOZPHUCOZUDZGQZUEHDQRZUFHUGOZPUHZULOZYAUIOZXSYAUIOZBXQUDGQCXQ
      UDGQULOZYAUIOAYDYEUJZYAYCXSUKOZSUMZAYAYBYHSAYAYASUMZYAPSUMZYAYBSUMZAYAUNR
      ZYJAYAAUFHUFUORAUPUQMURZUSZYAUTVAAYMYKYOYAVBVAXTYJYKYLYAPYAYBYASVFPYBYASV
      FVCVDAXSYBAXSAXRTVEVGUDZRZXSTRAXRTVHXRVGRZYQAXRXPTXPXQVIAXPUAVJZBRYSCRUEY
      SDQRVKZUATVLTABCDUAEFIJKLVMYTUATVNVOVSAXQVGRZXRXQVHYRUUAAPHVPUQXPXQVQXQXR
      VRVTXRTWAWBYPTXRGYPTGWCYPTWDTWEZWFZWCZTYPUUBWGYPTUUCWGUUDWHTYPUUBWIYPTUUC
      WJWKYPTGUUCNWLWMWNVAZWOAYAWPRPWPRYBWPRAYAYNWQWRXTYAPWPWSVTWTXAAYAUORYCUNR
      XSUNRYGYIXCYNAXSYBAXSUUEXBZAXTYAPUNAYMXTYOXDAXTXNXOXEXFXGUUFYCXSYAXHXIXJA
      YCYFYAUIABCDEFGHIJKLMNXKXLXM $.
  $}

  ${
    $d c k m n $.  $d c k m A $.  $d c k m B $.
    $( The sum of two sequences is a sequence.  (Contributed by Mario Carneiro,
       5-Sep-2016.) $)
    sadcl $p |- ( ( A C_ NN0 /\ B C_ NN0 ) -> ( A sadd B ) C_ NN0 ) $=
      ( vk vc vm vn cn0 wss wa csad co cv wcel c0 c2o wcad c1o cif cmpt2 cc0 c1
      wceq cmin cmpt cseq whad crab simpl simpr eqid sadfval ssrab2 syl6eqss
      cfv ) AGHZBGHZIZABJKCLZAMURBMNURDEOGELZAMUSBMNDLMPQNRSFGFLZTUBNUTUAUCKRUD
      TUEZUNMUFZCGUGGUQABVACEFDUOUPUHUOUPUIVAUJUKVBCGULUM $.

    $( The adder sequence function is commutative.  (Contributed by Mario
       Carneiro, 5-Sep-2016.) $)
    sadcom $p |- ( ( A C_ NN0 /\ B C_ NN0 ) -> ( A sadd B ) = ( B sadd A ) ) $=
      ( vk vc vm vn cn0 wss wa cv wcel c0 c2o wcad c1o cif cmpt2 cc0 wceq co c1
      cmin cmpt cseq cfv whad crab csad wb hadcoma a1i rabbidv simpl simpr eqid
      sadfval cadcoma ifbid mpt2eq3ia seqeq2 ax-mp 3eqtr4d ) AGHZBGHZIZCJZAKZVF
      BKZLVFDEMGEJZAKZVIBKZLDJZKZNZOLPZQZFGFJZRSLVQUAUBTPUCZRUDZUEKZUFZCGUGVHVG
      VTUFZCGUGABUHTBAUHTVEWAWBCGWAWBUIVEVGVHVTUJUKULVEABVSCEFDVCVDUMZVCVDUNZVS
      UOUPVEBAVSCEFDWDWCVPDEMGVKVJVMNZOLPZQZSVSWGVRRUDSDEMGVOWFVLMKVIGKIZVNWEOL
      VNWEUIWHVJVKVMUQUKURUSVPWGVRRUTVAUPVB $.
  $}

  ${
    $d c k m n x $.  $d c k m A $.  $d c k m B $.  $d k x C $.  $d k x ph $.
    $d n x N $.
    saddisj.1 $e |- ( ph -> A C_ NN0 ) $.
    saddisj.2 $e |- ( ph -> B C_ NN0 ) $.
    saddisj.3 $e |- ( ph -> ( A i^i B ) = (/) ) $.
    ${
      saddisjlem.c $e |- C = seq 0 ( ( c e. 2o , m e. NN0 |->
        if ( cadd ( m e. A , m e. B , (/) e. c ) , 1o , (/) ) ) ,
          ( n e. NN0 |-> if ( n = 0 , (/) , ( n - 1 ) ) ) ) $.
      saddisjlem.3 $e |- ( ph -> N e. NN0 ) $.
      $( Lemma for ~ sadadd .  (Contributed by Mario Carneiro, 9-Sep-2016.) $)
      saddisjlem $p |- ( ph -> ( N e. ( A sadd B ) <-> N e. ( A u. B ) ) ) $=
        ( wcel c0 cfv wn wi wceq eleq2d vx vk csad co whad wxo cun sadval wb cv
        cn0 cc0 c1 caddc fveq2 notbid imbi2d sadc0 wa noel wcad ad2antrr simplr
        wss sadcp1 cad0 adantl cin elin syl5bbr 3bitrd mtbiri expcom a2d nn0ind
        ex mpcom hadrot had0 syl wo xor2 rbaib elun syl6bbr ) AGBCUCUDNGBNZGCNZ
        OGDPZNZUEZWFWGUFZGBCUGNZABCDEFGHIJLMUHAWIQZWJWKUIGUKNAWMMAOUAUJZDPZNZQZ
        RAOULDPZNZQZRAOUBUJZDPZNZQZRAOXAUMUNUDZDPZNZQZRAWMRUAUBGWNULSZWQWTAXIWP
        WSXIWOWROWNULDUOTUPUQWNXASZWQXDAXJWPXCXJWOXBOWNXADUOTUPUQWNXESZWQXHAXKW
        PXGXKWOXFOWNXEDUOTUPUQWNGSZWQWMAXLWPWIXLWOWHOWNGDUOTUPUQABCDEFHIJLURXAU
        KNZAXDXHAXMXDXHRAXMUSZXDXHXNXDUSZXGXAONZXAUTXOXGXABNZXACNZXCVAZXQXRUSZX
        PXOBCDEFXAHABUKVDXMXDIVBACUKVDXMXDJVBLAXMXDVCVEXDXSXTUIXNXQXRXCVFVGXTXA
        BCVHZNXOXPXABCVIXOYAOXAAYAOSXMXDKVBTVJVKVLVPVMVNVOVQWJWIWFWGUEWMWKWIWFW
        GVRWIWFWGVSVJVTAWKWFWGWAZWLAWFWGUSZQZWKYBUIAYCGONZGUTYCGYANAYEGBCVIAYAO
        GKTVJVLWKYBYDWFWGWBWCVTGBCWDWEVK $.
    $}

    $( The sum of disjoint sequences is the union of the sequences.  (In this
       case, there are no carried bits.)  (Contributed by Mario Carneiro,
       9-Sep-2016.) $)
    saddisj $p |- ( ph -> ( A sadd B ) = ( A u. B ) ) $=
      ( vk vc vm vx co cv cn0 wcel wss sseld c0 cif cc0 adantr csad cun syl2anc
      sadcl unssd wb c2o wcad c1o cmpt2 wceq cmin cmpt cseq cin eqid saddisjlem
      wa c1 simpr ex pm5.21ndd eqrdv ) AGBCUAKZBCUBZAGLZMNZVFVDNZVFVENZAVDMVFAB
      MOZCMOZVDMODEBCUDUCPAVEMVFABCMDEUEPAVGVHVIUFAVGURBCHIUGMILZBNVLCNQHLNUHUI
      QRUJJMJLZSUKQVMUSULKRUMSUNZIJVFHAVJVGDTAVKVGETABCUOQUKVGFTVNUPAVGUTUQVAVB
      VC $.
  $}

  ${
    $d c k m n $.  $d c k m A $.  $d c k m B $.  $d n N $.
    ${
      sadaddlem.c $e |- C = seq 0 ( ( c e. 2o , m e. NN0 |-> if (
     cadd ( m e. ( bits ` A ) , m e. ( bits ` B ) , (/) e. c ) , 1o , (/) ) ) ,
          ( n e. NN0 |-> if ( n = 0 , (/) , ( n - 1 ) ) ) ) $.
      sadaddlem.k $e |- K = `' ( bits |` NN0 ) $.
      sadaddlem.1 $e |- ( ph -> A e. ZZ ) $.
      sadaddlem.2 $e |- ( ph -> B e. ZZ ) $.
      sadaddlem.3 $e |- ( ph -> N e. NN0 ) $.
      $( Lemma for ~ sadadd .  (Contributed by Mario Carneiro, 9-Sep-2016.) $)
      sadaddlem $p |- ( ph ->
        ( ( ( bits ` A ) sadd ( bits ` B ) ) i^i ( 0 ..^ N ) ) =
          ( bits ` ( ( A + B ) mod ( 2 ^ N ) ) ) ) $=
        ( co cfv wceq cz wcel cn0 caddc cexp cmo cbits csad cc0 cfzo cmin cdvds
        c2 cin wbr cdiv cres ccnv fveq1i 2nn a1i nnexpcld zmodcld fvres bitsmod
        cn syl syl2anc eqtrd cpw wf1o wi bitsf1o f1ocnvfv sylancr syl5eq oveq2d
        cfn mpd oveq1d cr crp zred nnrpd moddifz eqeltrd wne wb nnzd nnne0d wss
        inss1 bitsss sstri fzofi inss2 ssfi mp2an elfpw mpbir2an wf f1ocnv f1of
        mp2b feq1i mpbir ffvelrni mp1i nn0zd zsubcld dvdsval2 syl3anc mpbird wa
        dvds2add mp2and zcnd nn0cnd addsub4d breqtrrd zaddcld moddvds cle sadcl
        sadadd3 nn0red nn0ge0d fveq2i f1ocnvfv2 3eqtr3a syl6eqss elfzolt2 modid
        clt bitsfzo syl22anc 3eqtr2d fveq2d eqtr2d ) ABCUAOZUJHUBOZUCOZUDPBUDPZ
        CUDPZUEOZUFHUGOZUKZGPZUDPZUUDAYSUUEUDAYSYTUUCUKZGPZUUAUUCUKZGPZUAOZYRUC
        OZUUEYRUCOZUUEAYSUULQZYRYQUUKUHOZUIULZAYRBUUHUHOZCUUJUHOZUAOZUUOUIAYRUU
        QUIULZYRUURUIULZYRUUSUIULZAUUTUUQYRUMOZRSZAUVCBBYRUCOZUHOZYRUMOZRAUUQUV
        FYRUMAUUHUVEBUHAUUHUUGUDTUNZUOZPZUVEUUGGUVIKUPAUVEUVHPZUUGQZUVJUVEQZAUV
        KUVEUDPZUUGAUVETSZUVKUVNQABYRLAUJHUJVCSAUQURNUSZUTZUVETUDVAVDABRSHTSZUV
        NUUGQLNHBVBVEVFATTVGVOUKZUVHVHZUVOUVLUVMVIVJUVQTUVSUVEUUGUVHVKVLVPVMVNV
        QABVRSYRVSSZUVGRSABLVTAYRUVPWAZBYRWBVEWCAYRRSZYRUFWDZUUQRSZUUTUVDWEAYRU
        VPWFZAYRUVPWGZABUUHLAUUHUUGUVSSZUUHTSAUWHUUGTWHUUGVOSZUUGYTTYTUUCWIBWJZ
        WKUUCVOSZUUGUUCWHUWIUFHWLZYTUUCWMUUCUUGWNWOUUGTWPWQUVSTUUGGUVSTGWRUVSTU
        VIWRZUVTUVSTUVIVHUWMVJTUVSUVHWSUVSTUVIWTXAUVSTGUVIKXBXCZXDXEZXFZXGZYRUU
        QXHXIXJAUVAUURYRUMOZRSZAUWRCCYRUCOZUHOZYRUMOZRAUURUXAYRUMAUUJUWTCUHAUUJ
        UUIUVIPZUWTUUIGUVIKUPAUWTUVHPZUUIQZUXCUWTQZAUXDUWTUDPZUUIAUWTTSZUXDUXGQ
        ACYRMUVPUTZUWTTUDVAVDACRSUVRUXGUUIQMNHCVBVEVFAUVTUXHUXEUXFVIVJUXITUVSUW
        TUUIUVHVKVLVPVMVNVQACVRSUWAUXBRSACMVTUWBCYRWBVEWCAUWCUWDUURRSZUVAUWSWEU
        WFUWGACUUJMAUUJUUIUVSSZUUJTSAUXKUUITWHUUIVOSZUUIUUATUUAUUCWICWJZWKUWKUU
        IUUCWHUXLUWLUUAUUCWMUUCUUIWNWOUUITWPWQUVSTUUIGUWNXDXEZXFZXGZYRUURXHXIXJ
        AUWCUWEUXJUUTUVAXKUVBVIUWFUWQUXPYRUUQUURXLXIXMABCUUHUUJABLXNACMXNAUUHUW
        OXOAUUJUXNXOXPXQAYRVCSYQRSUUKRSUUNUUPWEUVPABCLMXRAUUHUUJUWPUXOXRYQUUKYR
        XSXIXJAYTUUADEFGHIYTTWHZAUWJURUUATWHZAUXMURJNKYBAUUEVRSUWAUFUUEXTULUUEY
        RYKULZUUMUUEQAUUEUUDUVSSZUUETSZAUXTUUDTWHUUDVOSZUUDUUBTUUBUUCWIUXQUXRUU
        BTWHUWJUXMYTUUAYAWOWKUWKUUDUUCWHUYBUWLUUBUUCWMZUUCUUDWNWOUUDTWPWQZUVSTU
        UDGUWNXDXEZYCUWBAUUEUYEYDAUUEUFYRUGOSZUXSAUYFUUFUUCWHZAUUFUUDUUCAUUEUVH
        PZUUDUVIPZUVHPZUUFUUDUUEUYIUVHUUDGUVIKUPYEAUYAUYHUUFQUYEUUETUDVAVDAUVTU
        XTUYJUUDQVJUXTAUYDURTUVSUUDUVHYFVLYGZUYCYHAUUERSUVRUYFUYGWEAUUEUYEXFNHU
        UEYLVEXJUUEUFYRYIVDUUEYRYJYMYNYOUYKYP $.
    $}

    $( For sequences that correspond to valid integers, the adder sequence
       function produces the sequence for the sum.  This is effectively a proof
       of the correctness of the ripple carry adder, implemented with logic
       gates corresponding to ~ df-had and ~ df-cad .

       It is interesting to consider in what sense the ` sadd ` function can be
       said to be "adding" things outside the range of the ` bits ` function,
       that is, when adding sequences that are not eventually constant and so
       do not denote any integer.  The correct interpretation is that the
       sequences are representations of 2-adic integers, which have a natural
       ring structure.  (Contributed by Mario Carneiro, 9-Sep-2016.) $)
    sadadd $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
      ( ( bits ` A ) sadd ( bits ` B ) ) = ( bits ` ( A + B ) ) ) $=
      ( vc vm vn cz wcel wa cbits cfv co cv cn0 wss bitsss a1i cc0 c1 c0 wceq
      vk csad caddc wi sadcl mp2an sseli wb cfzo cin c2 cexp cmo c2o wcad cmpt2
      c1o cmin cmpt cseq cres ccnv eqid simpll simplr simpr nn0addcld sadaddlem
      cif 1nn0 zaddcld bitsmod syl2anc eqtrd eleq2d elin 3bitr3g nn0uz syl6eleq
      cfz cuz eluzfz2 syl nn0zd fzval3 eleqtrd biantrud 3bitr4d pm5.21ndd eqrdv
      ex ) AFGZBFGZHZUAAIJZBIJZUBKZABUCKZIJZWNUALZMGZWTWQGZWTWSGZXBXAUDWNWQMWTW
      OMNWPMNWQMNAOBOWOWPUEUFUGPXCXAUDWNWSMWTWROUGPWNXAXBXCUHWNXAHZXBWTQWTRUCKZ
      UIKZGZHZXCXGHZXBXCXDWTWQXFUJZGWTWSXFUJZGXHXIXDXJXKWTXDXJWRUKXEULKUMKIJZXK
      XDABCDUNMDLZWOGXMWPGSCLGUOUQSVIUPEMELZQTSXNRURKVIUSQUTZDEIMVAVBZXECXOVCXP
      VCWLWMXAVDZWLWMXAVEZXDWTRWNXAVFZRMGXDVJPVGZVHXDWRFGXEMGXLXKTXDABXQXRVKXTX
      EWRVLVMVNVOWTWQXFVPWTWSXFVPVQXDXGXBXDWTQWTVTKZXFXDWTQWAJZGWTYAGXDWTMYBXSV
      RVSQWTWBWCXDWTFGYAXFTXDWTXSWDQWTWEWCWFZWGXDXGXCYCWGWHWKWIWJ $.

    $( The adder sequence function has a left identity, the empty set, which is
       the representation of the integer zero.  (Contributed by Mario Carneiro,
       9-Sep-2016.) $)
    sadid1 $p |- ( A C_ NN0 -> ( A sadd (/) ) = A ) $=
      ( cn0 wss c0 csad co cun id 0ss a1i cin wceq in0 saddisj un0 syl6eq ) ABC
      ZADEFADGAQADQHDBCQBIJADKDLQAMJNAOP $.

    $( The adder sequence function has a right identity, the empty set, which
       is the representation of the integer zero.  (Contributed by Mario
       Carneiro, 9-Sep-2016.) $)
    sadid2 $p |- ( A C_ NN0 -> ( (/) sadd A ) = A ) $=
      ( cn0 wss c0 csad co wceq 0ss sadcom mpan sadid1 eqtrd ) ABCZDAEFZADEFZAD
      BCMNOGBHDAIJAKL $.

    $d c k m C $.
    ${
      sadasslem.1 $e |- ( ph -> A C_ NN0 ) $.
      sadasslem.2 $e |- ( ph -> B C_ NN0 ) $.
      sadasslem.3 $e |- ( ph -> C C_ NN0 ) $.
      sadasslem.4 $e |- ( ph -> N e. NN0 ) $.
      $( Lemma for ~ sadass .  (Contributed by Mario Carneiro, 9-Sep-2016.) $)
      sadasslem $p |- ( ph ->
        ( ( ( A sadd B ) sadd C ) i^i ( 0 ..^ N ) ) =
        ( ( A sadd ( B sadd C ) ) i^i ( 0 ..^ N ) ) ) $=
        ( vc vm co cc0 cn0 cfv wceq cmo wcel wss syl vn csad cfzo cin cres ccnv
        cbits c2 cexp caddc cpw cfn inss1 syl5ss fzofi inss2 ssfi sylancl elfpw
        a1i sylanbrc wf1o wf bitsf1o f1ocnv f1of ffvelrni nn0cnd addassd oveq1d
        mp2b sadcl syl2anc nn0red readdcld crp 2rp nn0zd rpexpcld c2o cv c0 c1o
        wcad cif cmpt2 c1 cmin cmpt cseq sadadd3 eqidd modadd12d 3eqtr4d cr cle
        eqid wbr clt nn0ge0d fvres f1ocnvfv2 sylancr eqtr3d syl6eqss cz bitsfzo
        wb mpbird elfzolt2 modid syl22anc 2nn nnexpcld nnrpd 3eqtr3d wf1 f1fveq
        cn wa f1of1 mpan mpbid ) ABCUBLZDUBLZMEUCLZUDZUGNUEZUFZOZBCDUBLZUBLZYFU
        DZYIOZPZYGYMPZAYJUHEUILZQLZYNYQQLZYJYNAYDYFUDZYIOZDYFUDZYIOZUJLYQQLZBYF
        UDZYIOZYKYFUDZYIOZUJLYQQLZYRYSAUUFCYFUDZYIOZUJLZUUCUJLZYQQLUUFUUKUUCUJL
        ZUJLZYQQLUUDUUIAUUMUUOYQQAUUFUUKUUCAUUFAUUENUKULUDZRZUUFNRAUUENSUUEULRZ
        UUQAUUEBNBYFUMFUNAYFULRZUUEYFSUURUUSAMEUOUTZBYFUPYFUUEUQURUUENUSVAUUPNU
        UEYINUUPYHVBZUUPNYIVBZUUPNYIVCVDNUUPYHVEZUUPNYIVFVKZVGTZVHAUUKAUUJUUPRZ
        UUKNRAUUJNSUUJULRZUVFAUUJCNCYFUMGUNAUUSUUJYFSUVGUUTCYFUPYFUUJUQURUUJNUS
        VAUUPNUUJYIUVDVGTZVHAUUCAUUBUUPRZUUCNRAUUBNSUUBULRZUVIAUUBDNDYFUMHUNAUU
        SUUBYFSUVJUUTDYFUPYFUUBUQURUUBNUSVAUUPNUUBYIUVDVGTZVHVIVJAUUAUULUUCUUCY
        QAUUAAYTUUPRZUUANRAYTNSYTULRZUVLAYTYDNYDYFUMABNSZCNSZYDNSZFGBCVLVMZUNAU
        USYTYFSUVMUUTYDYFUPYFYTUQURYTNUSVAUUPNYTYIUVDVGTVNAUUFUUKAUUFUVEVNZAUUK
        UVHVNZVOAUUCUVKVNZUVTAUHEUHVPRAVQUTAEIVRVSZABCJKVTNKWAZBRZUWBCRZWBJWARZ
        WDWCWBWEWFUANUAWAZMPWBUWFWGWHLWEWIZMWJZKUAYIEJFGUWHWQIYIWQZWKAUUCYQQLWL
        WMAUUFUUFUUHUUNYQUVRUVRAUUHAUUGUUPRZUUHNRAUUGNSUUGULRZUWJAUUGYKNYKYFUMA
        UVODNSZYKNSZGHCDVLVMZUNAUUSUUGYFSUWKUUTYKYFUPYFUUGUQURUUGNUSVAUUPNUUGYI
        UVDVGTVNAUUKUUCUVSUVTVOUWAAUUFYQQLWLACDJKVTNUWDUWBDRZUWEWDWCWBWEWFUWGMW
        JZKUAYIEJGHUWPWQIUWIWKWMWNAYDDJKVTNUWBYDRUWOUWEWDWCWBWEWFUWGMWJZKUAYIEJ
        UVQHUWQWQIUWIWKABYKJKVTNUWCUWBYKRUWEWDWCWBWEWFUWGMWJZKUAYIEJFUWNUWRWQIU
        WIWKWNAYJWORYQVPRZMYJWPWRYJYQWSWRZYRYJPAYJAYGUUPRZYJNRZAYGNSYGULRZUXAAY
        GYENYEYFUMAUVPUWLYENSUVQHYDDVLVMUNAUUSYGYFSUXCUUTYEYFUPZYFYGUQURYGNUSVA
        ZUUPNYGYIUVDVGTZVNUWAAYJUXFWTAYJMYQUCLZRZUWTAUXHYJUGOZYFSZAUXIYGYFAYJYH
        OZUXIYGAUXBUXKUXIPUXFYJNUGXATAUVAUXAUXKYGPVDUXENUUPYGYHXBXCXDUXDXEAYJXF
        RENRZUXHUXJXHAYJUXFVRIEYJXGVMXIYJMYQXJTYJYQXKXLAYNWORUWSMYNWPWRYNYQWSWR
        ZYSYNPAYNAYMUUPRZYNNRZAYMNSYMULRZUXNAYMYLNYLYFUMAUVNUWMYLNSFUWNBYKVLVMU
        NAUUSYMYFSUXPUUTYLYFUPZYFYMUQURYMNUSVAZUUPNYMYIUVDVGTZVNAYQAUHEUHXSRAXM
        UTIXNXOAYNUXSWTAYNUXGRZUXMAUXTYNUGOZYFSZAUYAYMYFAYNYHOZUYAYMAUXOUYCUYAP
        UXSYNNUGXATAUVAUXNUYCYMPVDUXRNUUPYMYHXBXCXDUXQXEAYNXFRUXLUXTUYBXHAYNUXS
        VRIEYNXGVMXIYNMYQXJTYNYQXKXLXPAUXAUXNYOYPXHZUXEUXRUUPNYIXQZUXAUXNXTUYDU
        VAUVBUYEVDUVCUUPNYIYAVKUUPNYGYMYIXRYBVMYC $.
    $}

    $( Sequence addition is associative.  (Contributed by Mario Carneiro,
       9-Sep-2016.) $)
    sadass $p |- ( ( A C_ NN0 /\ B C_ NN0 /\ C C_ NN0 ) ->
      ( ( A sadd B ) sadd C ) = ( A sadd ( B sadd C ) ) ) $=
      ( vk cn0 wss w3a csad co cv wcel sadcl sseld wa cc0 cin elin syl biantrud
      c1 stoic3 simp1 3adant1 syl2anc caddc cfzo simpl1 simpl2 simpl3 simpr a1i
      wb 1nn0 nn0addcld sadasslem eleq2d 3bitr3g cfz cuz nn0uz syl6eleq eluzfz2
      cfv cz wceq nn0zd fzval3 eleqtrd 3bitr4d ex pm5.21ndd eqrdv ) AEFZBEFZCEF
      ZGZDABHIZCHIZABCHIZHIZVPDJZEKZWAVRKZWAVTKZVPVREWAVMVNVQEFVOVREFABLVQCLUAM
      VPVTEWAVPVMVSEFZVTEFVMVNVOUBVNVOWEVMBCLUCAVSLUDMVPWBWCWDULVPWBNZWCWAOWATU
      EIZUFIZKZNZWDWINZWCWDWFWAVRWHPZKWAVTWHPZKWJWKWFWLWMWAWFABCWGVMVNVOWBUGVMV
      NVOWBUHVMVNVOWBUIWFWATVPWBUJZTEKWFUMUKUNUOUPWAVRWHQWAVTWHQUQWFWIWCWFWAOWA
      URIZWHWFWAOUSVCZKWAWOKWFWAEWPWNUTVAOWAVBRWFWAVDKWOWHVEWFWAWNVFOWAVGRVHZSW
      FWIWDWQSVIVJVKVL $.
  $}

  ${
    $d c m A $.  $d c m B $.  $d c m n N $.
    sadeq.a $e |- ( ph -> A C_ NN0 ) $.
    sadeq.b $e |- ( ph -> B C_ NN0 ) $.
    sadeq.n $e |- ( ph -> N e. NN0 ) $.
    $( Any element of a sequence sum only depends on the values of the argument
       sequences up to and including that point.  (Contributed by Mario
       Carneiro, 9-Sep-2016.) $)
    sadeq $p |- ( ph -> ( ( A sadd B ) i^i ( 0 ..^ N ) ) =
  ( ( ( A i^i ( 0 ..^ N ) ) sadd ( B i^i ( 0 ..^ N ) ) ) i^i ( 0 ..^ N ) ) ) $=
      ( vc vm co cc0 cin cbits cn0 cfv wceq cmo wcel wss syl vn csad cfzo caddc
      cres ccnv c2 cexp inass inidm ineq2i eqtri fveq2i oveq12i oveq1i c2o wcad
      cv c0 c1o cif cmpt2 c1 cmin cmpt cseq inss1 syl5ss sadadd3 3eqtr4a cr crp
      eqid cle wbr clt cpw cfn sadcl syl2anc fzofi a1i inss2 ssfi sylancl elfpw
      sylanbrc wf1o bitsf1o f1ocnv f1of mp2b ffvelrni nn0red 2rp nn0zd rpexpcld
      wf nn0ge0d fvres f1ocnvfv2 sylancr eqtr3d syl6eqss cz wb bitsfzo elfzolt2
      mpbird modid syl22anc 3eqtr3rd wf1 wa f1of1 f1fveq mpan mpbid ) ABCUBJZKD
      UCJZLZMNUEZUFZOZBXTLZCXTLZUBJZXTLZYCOZPZYAYHPZAYIUGDUHJZQJZYDYLQJZYIYDAYE
      XTLZYCOZYFXTLZYCOZUDJZYLQJYEYCOZYFYCOZUDJZYLQJYMYNYSUUBYLQYPYTYRUUAUDYOYE
      YCYOBXTXTLZLYEBXTXTUIUUCXTBXTUJZUKULUMYQYFYCYQCUUCLYFCXTXTUIUUCXTCUUDUKUL
      UMUNUOAYEYFHIUPNIURZYERUUEYFRUSHURRZUQUTUSVAVBUANUAURZKPUSUUGVCVDJVAVEZKV
      FZIUAYCDHAYEBNBXTVGEVHZAYFCNCXTVGFVHZUUIVMGYCVMZVIABCHIUPNUUEBRUUECRUUFUQ
      UTUSVAVBUUHKVFZIUAYCDHEFUUMVMGUULVIVJAYIVKRYLVLRZKYIVNVOYIYLVPVOZYMYIPAYI
      AYHNVQVRLZRZYINRZAYHNSYHVRRZUUQAYHYGNYGXTVGAYENSYFNSYGNSUUJUUKYEYFVSVTVHA
      XTVRRZYHXTSUUSUUTAKDWAWBZYGXTWCZXTYHWDWEYHNWFWGZUUPNYHYCNUUPYBWHZUUPNYCWH
      ZUUPNYCWRWINUUPYBWJZUUPNYCWKWLZWMTZWNAUGDUGVLRAWOWBADGWPWQZAYIUVHWSAYIKYL
      UCJZRZUUOAUVKYIMOZXTSZAUVLYHXTAYIYBOZUVLYHAUURUVNUVLPUVHYINMWTTAUVDUUQUVN
      YHPWIUVCNUUPYHYBXAXBXCUVBXDAYIXERDNRZUVKUVMXFAYIUVHWPGDYIXGVTXIYIKYLXHTYI
      YLXJXKAYDVKRUUNKYDVNVOYDYLVPVOZYNYDPAYDAYAUUPRZYDNRZAYANSYAVRRZUVQAYAXSNX
      SXTVGABNSCNSXSNSEFBCVSVTVHAUUTYAXTSUVSUVAXSXTWCZXTYAWDWEYANWFWGZUUPNYAYCU
      VGWMTZWNUVIAYDUWBWSAYDUVJRZUVPAUWCYDMOZXTSZAUWDYAXTAYDYBOZUWDYAAUVRUWFUWD
      PUWBYDNMWTTAUVDUVQUWFYAPWIUWANUUPYAYBXAXBXCUVTXDAYDXERUVOUWCUWEXFAYDUWBWP
      GDYDXGVTXIYDKYLXHTYDYLXJXKXLAUVQUUQYJYKXFZUWAUVCUUPNYCXMZUVQUUQXNUWGUVDUV
      EUWHWIUVFUUPNYCXOWLUUPNYAYHYCXPXQVTXR $.
  $}

  $( Restrict the bits of a number to an upper integer set.  (Contributed by
     Mario Carneiro, 5-Sep-2016.) $)
  bitsres $p |- ( ( A e. ZZ /\ N e. NN0 ) -> ( ( bits ` A ) i^i ( ZZ>= ` N ) )
      = ( bits ` ( ( |_ ` ( A / ( 2 ^ N ) ) ) x. ( 2 ^ N ) ) ) ) $=
    ( cz wcel cn0 c2 co cbits cfv csad caddc cin cmul wceq a1i syl2anc c0 eqtrd
    cc0 wss wa cexp cmo cneg cuz cdiv cfl simpl cn simpr nnexpcld zmodcld nn0zd
    znegcld sadadd zcnd addcomd negidd fveq2d 0bits syl6eq oveq1d bitsss syl5ss
    2nn inss1 sadass mp3an12i cfzo bitsmod cun fzouzdisj ineq2i 3eqtr3i saddisj
    inindi in0 indi syl6eqr nn0uz syl6eleq fzouzsplit syl syl5eq syl5sseq df-ss
    sylib oveq2d sadid2 3eqtr3d cmin negsubd subcld nnne0d divcan1d cr crp zred
    nncnd nnrpd moddiffl 3eqtr2d ) ACDZBEDZUAZAFBUBGZUCGZUDZHIZAHIZJGZXHAKGZHIZ
    XJBUEIZLZAXFUFGUGIZXFMGZHIXEXHCDZXCXKXMNXEXGXEXGXEAXFXCXDUHZXEFBFUIDXEVEOXC
    XDUJZUKZULUMZUNZXSXHAUOPXEXIXGHIZJGZXOJGZQXOJGZXKXOXEYEQXOJXEYEXHXGKGZHIZQX
    EXRXGCDYEYINYCYBXHXGUOPXEYISHIQXEYHSHXEYHXGXHKGSXEXHXGXEXHYCUPZXEXGYBUPZUQX
    EXGYKURRUSUTVARVBXEYFXIYDXOJGZJGZXKXIETYDETXEXOETZYFYMNXHVCXGVCXEXOXJEXJXNV
    FXJETXEAVCZOZVDZXIYDXOVGVHXEYLXJXIJXEYLXJSBVIGZLZXOJGZXJXEYDYSXOJBAVJVBXEYT
    XJYRXNVKZLZXJXEYTYSXOVKUUBXEYSXOXEYSXJEXJYRVFYPVDYQYSXOLZQNXEXJYRXNLZLXJQLU
    UCQUUDQXJSBVLVMXJYRXNVPXJVQVNOVOXJYRXNVRVSXEXJUUATUUBXJNXEEXJUUAYOXEESUEIZU
    UAVTXEBUUEDUUEUUANXEBEUUEXTVTWASBWBWCWDWEXJUUAWFWGRRWHRXEYNYGXONYQXOWIWCWJX
    EXLXQHXEXLAXHKGZXQXEXHAYJXEAXSUPZUQXEUUFAXGWKGZUUHXFUFGZXFMGXQXEAXGUUGYKWLX
    EUUHXFXEAXGUUGYKWMXEXFYAWSXEXFYAWNWOXEUUIXPXFMXEAWPDXFWQDUUIXPNXEAXSWRXEXFY
    AWTAXFXAPVBXBRUSWJ $.

  $( The bits of a number are all at least ` N ` iff the number is divisible by
     ` 2 ^ N ` .  (Contributed by Mario Carneiro, 21-Sep-2016.) $)
  bitsuz $p |- ( ( A e. ZZ /\ N e. NN0 ) ->
    ( ( 2 ^ N ) || A <-> ( bits ` A ) C_ ( ZZ>= ` N ) ) ) $=
    ( cz wcel cn0 wa c2 co cdvds wbr cbits cfv wceq cmul wb a1i syl2anc cc0 wne
    adantr cexp cuz cin wss cdiv cfl bitsres eqeq1d simpl cn 2nn simpr nnexpcld
    zred nndivred flcld nnzd zmulcld cpw wf1 bitsf1 f1fveq mpan breq2 syl5ibcom
    dvdsmul2 nnne0d dvdsval2 syl3anc biimpa flid oveq1d cc zcnd nncnd 2cnd 2ne0
    syl nn0zd expne0d divcan1d eqtrd ex impbid 3bitrrd df-ss syl6bbr ) ACDZBEDZ
    FZGBUAHZAIJZAKLZBUBLZUCZWMMZWMWNUDWJWPAWKUEHZUFLZWKNHZKLZWMMZWSAMZWLWJWOWTW
    MABUGUHWJWSCDZWHXAXBOZWJWRWKWJWQWJAWKWJAWHWIUIZUNWJGBGUJDWJUKPWHWIULZUMZUOU
    PZWJWKXGUQZURXECEUSZKUTXCWHFXDVACXJWSAKVBVCQWJXBWLWJWKWSIJZXBWLWJWRCDWKCDZX
    KXHXIWRWKVFQWSAWKIVDVEWJWLXBWJWLFZWSWQWKNHAXMWRWQWKNXMWQCDZWRWQMWJWLXNWJXLW
    KRSWHWLXNOXIWJWKXGVGXEWKAVHVIVJWQVKVRVLXMAWKWJAVMDWLWJAXEVNTWJWKVMDWLWJWKXG
    VOTXMGBXMVPGRSXMVQPWJBCDWLWJBXFVSTVTWAWBWCWDWEWMWNWFWG $.

  ${
    $d n A $.  $d n N $.
    $( Shifting a bit sequence to the left (toward the more significant bits)
       causes the number to be multiplied by a power of two.  (Contributed by
       Mario Carneiro, 22-Sep-2016.) $)
    bitsshft $p |- ( ( A e. ZZ /\ N e. NN0 ) ->
        { n e. NN0 | ( n - N ) e. ( bits ` A ) }
            = ( bits ` ( A x. ( 2 ^ N ) ) ) ) $=
      ( cz wcel cn0 wa c2 cexp co cfv wss cdvds wbr a1i nnexpcld syl2anc wb cfl
      cdiv cmul cbits cin cv cmin crab wceq bitsss sseqin2 cuz simpll cn simplr
      mpbi 2nn nnzd dvdsmul2 zmulcld bitsuz mpbid sseld uznn0sub syl6 wn nnne0d
      2cnd nn0zd simprl expsubd oveq2d cc simpl zcnd adantr nncnd eqtr2d fveq2d
      divdiv2d breq2d notbid adantrr ad2ant2rl 3bitr4d expr pm5.21ndd rabbi2dva
      bitsval2 syl5reqr ) ADEZCFEZGZAHCIJZUAJZUBKZFWNUCZBUDZCUEJZAUBKZEZBFUFWNF
      LWOWNUGWMUHWNFUIUNWKWSBFWNWKWPFEZGZWQFEZWPWNEZWSXAXCWPCUJKZEXBXAWNXDWPXAW
      LWMMNZWNXDLZXAWIWLDEXEWIWJWTUKZXAWLXAHCHULEZXAUOOWIWJWTUMZPUPZAWLUQQXAWMD
      EZWJXEXFRXAAWLXGXJURZXIWMCUSQUTVACWPVBVCXAWRFWQWRFLXAAUHOVAWKWTXBXCWSRWKW
      TXBGZGZHWMHWPIJZTJZSKZMNZVDZHAHWQIJZTJZSKZMNZVDZXCWSXNXRYCXNXQYBHMXNXPYAS
      XNYAAXOWLTJZTJXPXNXTYEATXNHWPCXNVFXNHXHXNUOOZVEXNCWIWJXMUMZVGXNWPWKWTXBVH
      ZVGVIVJXNAXOWLWKAVKEXMWKAWIWJVLVMVNXNXOXNHWPYFYHPZVOXNWLXNHCYFYGPZVOXNXOY
      IVEXNWLYJVEVRVPVQVSVTXNXKWTXCXSRWKWTXKXBXLWAYHWPWMWGQWIXBWSYDRWJWTWQAWGWB
      WCWDWEWFWH $.
  $}

  ${
    $d k m n p x y A $.  $d k n x y N $.  $d k n x y ph $.  $d k m n p x y B $.
    $d k x M $.  $d k x y P $.
    $( Define the multiplication of two bit sequences, using repeated sequence
       addition.  (Contributed by Mario Carneiro, 9-Sep-2016.) $)
    df-smu $a |- smul = ( x e. ~P NN0 , y e. ~P NN0 |-> { k e. NN0 |
      k e. ( seq 0 ( ( p e. ~P NN0 , m e. NN0 |->
          ( p sadd { n e. NN0 | ( m e. x /\ ( n - m ) e. y ) } ) ) ,
      ( n e. NN0 |-> if ( n = 0 , (/) , ( n - 1 ) ) ) ) ` ( k + 1 ) ) } ) $.

    smuval.a $e |- ( ph -> A C_ NN0 ) $.
    smuval.b $e |- ( ph -> B C_ NN0 ) $.
    smuval.p $e |- P = seq 0 ( ( p e. ~P NN0 , m e. NN0 |->
          ( p sadd { n e. NN0 | ( m e. A /\ ( n - m ) e. B ) } ) ) ,
      ( n e. NN0 |-> if ( n = 0 , (/) , ( n - 1 ) ) ) ) $.
    $( The multiplication of two bit sequences as repeated sequence addition.
       (Contributed by Mario Carneiro, 9-Sep-2016.) $)
    smufval $p |- ( ph ->
      ( A smul B ) = { k e. NN0 | k e. ( P ` ( k + 1 ) ) } ) $=
      ( vx vy cn0 wcel co cv crab wceq cc0 cpw csmu c1 caddc nn0ex elpw2 sylibr
      cfv wss cmin wa csad cmpt2 cif cmpt cseq w3a simp1l eleq2d simp1r anbi12d
      c0 rabbidv oveq2d mpt2eq3dva seqeq2d syl6eqr fveq1d rabex ovmpt2a syl2anc
      df-smu ) ABNUAZOZCVMOZBCUBPEQZVPUCUDPZDUHZOZENRZSABNUIVNIBNUEUFUGACNUIVOJ
      CNUEUFUGLMBCVMVMVPVQHFVMNHQZFQZLQZOZGQZWBUJPZMQZOZUKZGNRZULPZUMZGNWETSVBW
      EUCUJPUNUOZTUPZUHZOZENRVTUBWCBSZWGCSZUKZWPVSENWSWOVRVPWSVQWNDWSWNHFVMNWAW
      BBOZWFCOZUKZGNRZULPZUMZWMTUPDWSWLXEWMTWSHFVMNWKXDWSWAVMOZWBNOZUQZWJXCWAUL
      XHWIXBGNXHWDWTWHXAXHWCBWBWQWRXFXGURUSXHWGCWFWQWRXFXGUTUSVAVCVDVEVFKVGVHUS
      VCLMEFGHVLVSENUEVIVJVK $.

    $( The sequence of partial sums of the sequence multiplication.
       (Contributed by Mario Carneiro, 9-Sep-2016.) $)
    smupf $p |- ( ph -> P : NN0 --> ~P NN0 ) $=
      ( cn0 cv wcel co wa cc0 c0 wf cfv wss vx vy cpw cmin crab csad cmpt2 wceq
      c1 cif cmpt cseq cvv 0nn0 iftrue eqid 0ex fvmpt mp1i 0elpw syl6eqel df-ov
      cop wral elpwi adantr ssrab2 sadcl sylancl nn0ex elpw2 sylibr rgen2 fmpt2
      cxp mpbi f0cli eqeltri a1i nn0uz 0zd caddc cuz fvexd seqf2 feq1i ) AKKUCZ
      GEWGKGLZELZBMFLZWIUDNCMOZFKUEZUFNZUGZFKWJPUHZQWJUIUDNZUJZUKZPULZRKWGDRAUA
      UBWGUMWNWRPKAPWRSZQWGPKMWTQUHAUNFPWQQKWRWOQWPUOWRUPUQURUSKUTZVAUALZUBLZWN
      NZWGMAXBWGMXCUMMOOXDXBXCVCZWNSWGXBXCWNVBWGKVOZWGXEWNWMWGMZEKVDGWGVDXFWGWN
      RXGGEWGKWHWGMZWIKMZOZWMKTZXGXJWHKTZWLKTXKXHXLXIWHKVEVFWKFKVGWHWLVHVIWMKVJ
      VKVLVMGEWGKWMWGWNWNUPVNVPXAVQVRVSVTAWAAXBPUIWBNWCSMOXBWRWDWEKWGDWSJWFVL
      $.

    $( The initial element of the partial sum sequence.  (Contributed by Mario
       Carneiro, 9-Sep-2016.) $)
    smup0 $p |- ( ph -> ( P ` 0 ) = (/) ) $=
      ( cc0 cfv cn0 cv wceq c0 cmin co wcel mp1i c1 cif cmpt cz 0z wa crab csad
      cpw cmpt2 cseq fveq1i seq1 syl5eq 0nn0 iftrue eqid 0ex fvmpt eqtrd ) AKDL
      ZKFMFNZKOZPVBUAQRZUBZUCZLZPKUDSZVAVGOAUEVHVAKGEMUIMGNENZBSVBVIQRCSUFFMUGU
      HRUJZVFKUKZLVGKDVKJULVJVFKUMUNTKMSVGPOAUOFKVEPMVFVCPVDUPVFUQURUSTUT $.

    smuval.n $e |- ( ph -> N e. NN0 ) $.
    $( The initial element of the partial sum sequence.  (Contributed by Mario
       Carneiro, 9-Sep-2016.) $)
    smupp1 $p |- ( ph -> ( P ` ( N + 1 ) ) =
      ( ( P ` N ) sadd { n e. NN0 | ( N e. A /\ ( n - N ) e. B ) } ) ) $=
      ( c1 co cn0 cc0 wceq cmin wcel csad vx vy vk caddc cfv cv c0 cif cmpt cpw
      wa crab cmpt2 cseq cuz nn0uz syl6eleq seqp1 syl fveq1i oveq1i 3eqtr4g a1i
      1nn0 nn0addcld eqeq1 oveq1 ifbieq2d eqid 0ex ovex ifex wne nn0p1nn nnne0d
      fvmpt cn ifnefalse nn0cnd pncand 3eqtrd oveq2d smupf ffvelrnd simpl simpr
      eleq1d anbi12d rabbidv anbi2d cbvrabv syl6eq oveq12d eleq1 oveq2 cbvmpt2v
      syl6eqr ovmpt2a syl2anc ) AGMUDNZDUEZGDUEZWTFOFUFZPQZUGXCMRNZUHZUIZUEZHEO
      UJZOHUFZEUFZBSZXCXKRNZCSZUKZFOULZTNZUMZNZXBGXRNZXBGBSZXCGRNZCSZUKZFOULZTN
      ZAWTXRXGPUNZUEZGYGUEZXHXRNZXAXSAGPUOUEZSYHYJQAGOYKLUPUQXRXGPGURUSWTDYGKUT
      XBYIXHXRGDYGKUTVAVBAXHGXBXRAXHWTPQZUGWTMRNZUHZYMGAWTOSXHYNQAGMLMOSAVDVCZV
      EFWTXFYNOXGXCWTQXDYLXEYMUGXCWTPVFXCWTMRVGVHXGVIYLUGYMVJWTMRVKVLVPUSAWTPVM
      YNYMQAWTAGOSZWTVQSLGVNUSVOWTPUGYMVRUSAGMAGLVSAMYOVSVTWAWBAXBXISYPXTYFQAOX
      IGDABCDEFHIJKWCLWDLUAUBXBGXIOUAUFZUBUFZBSZUCUFZYRRNZCSZUKZUCOULZTNZYFXRYQ
      XBQZYRGQZUKZYQXBUUDYETUUFUUGWEUUHUUDYAYTGRNZCSZUKZUCOULYEUUHUUCUUKUCOUUHY
      SYAUUBUUJUUHYRGBUUFUUGWFZWGUUHUUAUUICUUHYRGYTRUULWBWGWHWIUUKYDUCFOYTXCQZU
      UJYCYAUUMUUIYBCYTXCGRVGWGWJWKWLWMHEUAUBXIOXQUUEYQXPTNXJYQXPTVGXKYRQZXPUUD
      YQTUUNXPYSXCYRRNZCSZUKZFOULUUDUUNXOUUQFOUUNXLYSXNUUPXKYRBWNUUNXMUUOCXKYRX
      CRWOWGWHWIUUCUUQUCFOUUMUUBUUPYSUUMUUAUUOCYTXCYRRVGWGWJWKWQWBWPXBYETVKWRWS
      WA $.

    $( Define the addition of two bit sequences, using ~ df-had and ~ df-cad
       bit operations.  (Contributed by Mario Carneiro, 9-Sep-2016.) $)
    smuval $p |- ( ph -> ( N e. ( A smul B ) <-> N e. ( P ` ( N + 1 ) ) ) ) $=
      ( vk csmu co wcel c1 caddc cfv cn0 cv crab smufval eleq2d wb oveq1 fveq2d
      wceq id eleq12d elrab3 syl bitrd ) AGBCNOZPGMUAZUOQROZDSZPZMTUBZPZGGQROZD
      SZPZAUNUSGABCDMEFHIJKUCUDAGTPUTVCUELURVCMGTUOGUHZUOGUQVBVDUIVDUPVADUOGQRU
      FUGUJUKULUM $.

    ${
      smuval2.m $e |- ( ph -> M e. ( ZZ>= ` ( N + 1 ) ) ) $.
      $( The partial sum sequence stabilizes at ` N ` after the ` N + 1 ` -th
         element of the sequence; this stable value is the value of the
         sequence multiplication.  (Contributed by Mario Carneiro,
         9-Sep-2016.) $)
      smuval2 $p |- ( ph -> ( N e. ( A smul B ) <-> N e. ( P ` M ) ) ) $=
        ( co cfv wcel wceq cn0 cin vx vk c1 caddc cuz wb cv fveq2 eleq2d bibi2d
        csmu wi imbi2d cz smuval a1i wa cmin crab csad wss adantr peano2nn0 syl
        eluznn0 sylan smupp1 cc0 cfzo cpw smupf ffvelrnd elpwid ssrab2 sadeq c0
        inrab2 wn wral cle wbr inss1 simpr sseldi nn0red 1red readdcld elfzolt2
        clt inss2 eluzle ad2antlr ltletrd ltnled mpbid sseld nn0ge0 syl6 sylibd
        subge0d adantld mtod ralrimiva rabeq0 sylibr syl5eq oveq2d syl5ss eqtrd
        sadid1 ineq1d inass inidm ineq2i eqtri syl6eq elin 3bitr3g cfz syl6eleq
        nn0uz eluzfz2 nn0zd fzval3 eleqtrd biantrud 3bitr4d bitrd expcom uzind4
        biimprd a2d mpcom ) GHUCUDOZUEPZQAHBCUKOQZHGDPZQZUFZNAYPHUAUGZDPZQZUFZU
        LAYPHYNDPZQZUFZULZAYPHUBUGZDPZQZUFZULAYPHUUHUCUDOZDPZQZUFZULAYSULUAUBYN
        GYTYNRZUUCUUFAUUPUUBUUEYPUUPUUAUUDHYTYNDUHUIUJUMYTUUHRZUUCUUKAUUQUUBUUJ
        YPUUQUUAUUIHYTUUHDUHUIUJUMYTUULRZUUCUUOAUURUUBUUNYPUURUUAUUMHYTUULDUHUI
        UJUMYTGRZUUCYSAUUSUUBYRYPUUSUUAYQHYTGDUHUIUJUMUUGYNUNQABCDEFHIJKLMUOUPU
        UHYOQZAUUKUUOAUUTUUKUUOULAUUTUQZUUOUUKUVAUUNUUJYPUVAUUNHUUIUUHBQZFUGZUU
        HUROZCQZUQZFSUSZUTOZQZUUJUVAUUMUVHHUVABCDEFUUHIABSVAUUTJVBZACSVAZUUTKVB
        ZLAYNSQZUUTUUHSQZAHSQZUVMMHVCVDZUUHYNVEVFZVGUIUVAUVIHVHYNVIOZQZUQZUUJUV
        SUQZUVIUUJUVAHUVHUVRTZQHUUIUVRTZQUVTUWAUVAUWBUWCHUVAUWBUWCUVGUVRTZUTOZU
        VRTZUWCUVAUUIUVGYNUVAUUISUVASSVJUUHDUVABCDEFIUVJUVLLVKUVQVLVMZUVGSVAUVA
        UVFFSVNUPAUVMUUTUVPVBVOUVAUWFUWCUVRTZUWCUVAUWEUWCUVRUVAUWEUWCVPUTOZUWCU
        VAUWDVPUWCUTUVAUWDUVFFSUVRTZUSZVPUVFFSUVRVQUVAUVFVRZFUWJVSUWKVPRUVAUWLF
        UWJUVAUVCUWJQZUQZUVFUUHUVCVTWAZUWNUVCUUHWIWAUWOVRUWNUVCYNUUHUWNUVCUWNUW
        JSUVCSUVRWBUVAUWMWCZWDWEZUWNHUCUWNHUVAUVOUWMAUVOUUTMVBZVBWEUWNWFWGUWNUU
        HUVAUVNUWMUVQVBWEZUWNUVCUVRQUVCYNWIWAUWNUWJUVRUVCSUVRWJUWPWDUVCVHYNWHVD
        UUTYNUUHVTWAAUWMYNUUHWKWLWMUWNUVCUUHUWQUWSWNWOUWNUVEUWOUVBUWNUVEVHUVDVT
        WAZUWOUWNUVEUVDSQUWTUWNCSUVDUVAUVKUWMUVLVBWPUVDWQWRUWNUVCUUHUWQUWSWTWSX
        AXBXCUVFFUWJXDXEXFXGUVAUWCSVAUWIUWCRUVAUWCUUISUUIUVRWBUWGXHUWCXJVDXIXKU
        WHUUIUVRUVRTZTUWCUUIUVRUVRXLUXAUVRUUIUVRXMXNXOXPXIUIHUVHUVRXQHUUIUVRXQX
        RUVAUVSUVIUVAHVHHXSOZUVRUVAHVHUEPZQHUXBQUVAHSUXCUWRYAXTVHHYBVDUVAHUNQUX
        BUVRRUVAHUWRYCVHHYDVDYEZYFUVAUVSUUJUXDYFYGYHUJYKYIYLYJYM $.
    $}

    smupvallem.a $e |- ( ph -> A C_ ( 0 ..^ N ) ) $.
    smupvallem.m $e |- ( ph -> M e. ( ZZ>= ` N ) ) $.
    $( If ` A ` only has elements less than ` N ` , then all elements of the
       partial sum sequence past ` N ` already equal the final value.
       (Contributed by Mario Carneiro, 20-Sep-2016.) $)
    smupvallem $p |- ( ph -> ( P ` M ) = ( A smul B ) ) $=
      ( vk cfv cn0 wcel wceq vx csmu co cv cpw smupf cuz eluznn0 syl2anc elpwid
      ffvelrnd sseld c1 caddc smufval ssrab2 syl6eqss wb wa wss ad2antrr simplr
      adantr uztrn sylan smuval2 bicomd simpll wi fveq2 eqeq1d imbi2d eqidd a1i
      crab cz cmin csad c0 smupp1 wn clt wbr cle eluzle adantl cr nn0red lenltd
      wral mpbid cfzo elfzolt2 syl6 adantrd mtod ralrimivw rabeq0 sylibr oveq2d
      cc0 sadid1 syl 3eqtrd biimprd expcom a2d uzind4 sylc eqtr4d eleq2d smuval
      wf simpr bitr4d wo nn0zd peano2zd uztric mpjaodan ex pm5.21ndd eqrdv ) AP
      GDQZBCUBUCZAPUDZRSZYFYDSZYFYESZAYDRYFAYDRARRUEZGDABCDEFIJKLUFZAHRSZGHUGQZ
      SZGRSMOGHUHUIUKUJULAYERYFAYEYFYFUMUNUCZDQZSZPRVORABCDPEFIJKLUOYQPRUPUQULA
      YGYHYIURZAYGUSZHYOUGQZSZYRYOYMSZYSUUAUSZYIYHUUCBCDEFGYFIABRUTZYGUUAJVAACR
      UTZYGUUAKVALAYGUUAVBYSYNUUAGYTSAYNYGOVCHGYOVDVEVFVGYSUUBUSZYHYQYIUUFYDYPY
      FUUFYDHDQZYPUUFYNAYDUUGTZAYNYGUUBOVAAYGUUBVHZAUAUDZDQZUUGTZVIZAUUGUUGTZVI
      ZAYFDQZUUGTZVIZAYPUUGTZVIZAUUHVIUAPHGUUJHTZUULUUNAUVAUUKUUGUUGUUJHDVJVKVL
      ZUUJYFTZUULUUQAUVCUUKUUPUUGUUJYFDVJVKVLZUUJYOTZUULUUSAUVEUUKYPUUGUUJYODVJ
      VKVLZUUJGTZUULUUHAUVGUUKYDUUGUUJGDVJVKVLUUOHVPSZAUUGVMVNZYFYMSZAUUQUUSAUV
      JUUQUUSVIAUVJUSZUUSUUQUVKYPUUPUUGUVKYPUUPYFBSZFUDYFVQUCCSZUSZFRVOZVRUCUUP
      VSVRUCZUUPUVKBCDEFYFIAUUDUVJJVCAUUEUVJKVCLAYLUVJYGMYFHUHVEZVTUVKUVOVSUUPV
      RUVKUVNWAZFRWJUVOVSTUVKUVRFRUVKUVNYFHWBWCZUVKHYFWDWCZUVSWAUVJUVTAHYFWEWFU
      VKHYFAHWGSUVJAHMWHVCUVKYFUVQWHWIWKUVKUVLUVSUVMUVKUVLYFXAHWLUCZSUVSUVKBUWA
      YFABUWAUTUVJNVCULYFXAHWMWNWOWPWQUVNFRWRWSWTUVKUUPRUTUVPUUPTUVKUUPRUVKRYJY
      FDARYJDXMUVJYKVCUVQUKUJUUPXBXCXDVKXEXFXGZXHXIUUFUUBAUUSYSUUBXNUUIUUMUUOUU
      RUUTUUTUAPHYOUVBUVDUVFUVFUVIUWBXHXIXJXKUUFBCDEFYFIAUUDYGUUBJVAAUUEYGUUBKV
      ALAYGUUBVBXLXOYSYOVPSUVHUUAUUBXPYSYFYSYFAYGXNXQXRAUVHYGAHMXQVCYOHXSUIXTYA
      YBYC $.
  $}

  ${
    $d k m n p x A $.  $d k m n p x B $.  $d k n x ph $.
    $( The product of two sequences is a sequence.  (Contributed by Mario
       Carneiro, 19-Sep-2016.) $)
    smucl $p |- ( ( A C_ NN0 /\ B C_ NN0 ) -> ( A smul B ) C_ NN0 ) $=
      ( vk vp vm vn cn0 wss wa csmu co cv c1 caddc cpw wcel cmin crab csad cc0
      cmpt2 wceq c0 cif cmpt cseq cfv simpl simpr eqid smufval ssrab2 syl6eqss
      ) AGHZBGHZIZABJKCLZUQMNKDEGOGDLELZAPFLZURQKBPIFGRSKUAFGUSTUBUCUSMQKUDUETU
      FZUGPZCGRGUPABUTCEFDUNUOUHUNUOUIUTUJUKVACGULUM $.

    ${
      smu01lem.1 $e |- ( ph -> A C_ NN0 ) $.
      smu01lem.2 $e |- ( ph -> B C_ NN0 ) $.
      smu01lem.3 $e |- ( ( ph /\ ( k e. NN0 /\ n e. NN0 ) ) ->
        -. ( k e. A /\ ( n - k ) e. B ) ) $.
      $( Lemma for ~ smu01 and ~ smu02 .  (Contributed by Mario Carneiro,
         19-Sep-2016.) $)
      smu01lem $p |- ( ph -> ( A smul B ) = (/) ) $=
        ( vp vm co cv wcel cn0 wss csad cc0 wceq c0 wi vx csmu wn smucl syl2anc
        sseld wa c1 caddc cpw cmin crab cmpt2 cif cmpt cseq cfv peano2nn0 fveq2
        noel eqeq1d imbi2d eqid smup0 oveq1 adantr simpr wral anassrs ralrimiva
        smupp1 rabeq0 sylibr oveq2d sadid1 eqtr2d eqeq12d syl5ibr expcom nn0ind
        0ss mp1i a2d syl impcom eleq2d mtbiri smuval mtbird syld pm2.01d eq0rdv
        ex ) ADBCUBKZADLZWNMZAWPWONMZWPUCZAWNNWOABNOZCNOZWNNOFGBCUDUEUFAWQWRAWQ
        UGZWPWOWOUHUIKZIJNUJNILJLZBMELZXCUKKCMUGENULPKUMENXDQRSXDUHUKKUNUOQUPZU
        QZMZXAXGWOSMWOUTXAXFSWOWQAXFSRZWQXBNMAXHTZWOURAUALZXEUQZSRZTAQXEUQZSRZT
        AWOXEUQZSRZTXIXIUADXBXJQRZXLXNAXQXKXMSXJQXEUSVAVBXJWORZXLXPAXRXKXOSXJWO
        XEUSVAVBXJXBRZXLXHAXSXKXFSXJXBXEUSVAVBZXTABCXEJEIFGXEVCZVDWQAXPXHAWQXPX
        HTXPXHXAXOWOBMXDWOUKKCMUGZENULZPKZSYCPKZRXOSYCPVEXAXFYDSYEXABCXEJEWOIAW
        SWQFVFZAWTWQGVFZYAAWQVGZVKXAYESSPKZSXAYCSSPXAYBUCZENVHYCSRXAYJENAWQXDNM
        YJHVIVJYBENVLVMVNSNOYISRXANWASVOWBVPVQVRVSWCVTWDWEWFWGXABCXEJEWOIYFYGYA
        YHWHWIWMWJWKWL $.
    $}

    $( Multiplication of a sequence by ` 0 ` on the right.  (Contributed by
       Mario Carneiro, 19-Sep-2016.) $)
    smu01 $p |- ( A C_ NN0 -> ( A smul (/) ) = (/) ) $=
      ( vk vn cn0 wss c0 id 0ss a1i cv wcel cmin co wa wn noel intnan smu01lem
      ) ADEZAFBCSGFDESDHIBJZAKZCJZTLMZFKZNOSTDKUBDKNNUDUAUCPQIR $.

    $( Multiplication of a sequence by ` 0 ` on the left.  (Contributed by
       Mario Carneiro, 9-Sep-2016.) $)
    smu02 $p |- ( A C_ NN0 -> ( (/) smul A ) = (/) ) $=
      ( vk vn cn0 wss c0 0ss a1i id cv wcel cmin co wa wn noel intnanr smu01lem
      ) ADEZFABCFDESDGHSIBJZFKZCJZTLMAKZNOSTDKUBDKNNUAUCTPQHR $.
  $}

  ${
    $d k m n p x A $.  $d k m n p x B $.  $d k m n p x N $.  $d k n x ph $.
    $d k x P $.
    smupval.a $e |- ( ph -> A C_ NN0 ) $.
    smupval.b $e |- ( ph -> B C_ NN0 ) $.
    smupval.p $e |- P = seq 0 ( ( p e. ~P NN0 , m e. NN0 |->
          ( p sadd { n e. NN0 | ( m e. A /\ ( n - m ) e. B ) } ) ) ,
      ( n e. NN0 |-> if ( n = 0 , (/) , ( n - 1 ) ) ) ) $.
    smupval.n $e |- ( ph -> N e. NN0 ) $.
    $( Rewrite the elements of the partial sum sequence in terms of sequence
       multiplication.  (Contributed by Mario Carneiro, 20-Sep-2016.) $)
    smupval $p |- ( ph -> ( P ` N ) = ( ( A i^i ( 0 ..^ N ) ) smul B ) ) $=
      ( cfv cn0 cc0 co wcel csad wceq fveq2 vx vk cpw cv cfzo cin cmin wa cmpt2
      crab c0 c1 cif cmpt cseq csmu cfz cuz nn0uz syl6eleq eluzfz2b sylib caddc
      wi eqeq12d imbi2d smup0 inss1 syl5ss eqid eqtr4d a1i oveq1 adantr elfzouz
      adantl syl6eleqr smupp1 wb elin rbaib anbi1d rabbidv oveq2d eqtrd syl5ibr
      wss expcom a2d fzind2 mpcom inss2 cz nn0zd uzid syl smupvallem ) AGDMZGHE
      NUCNHUDEUDZBOGUEPZUFZQFUDZWSUGPCQUHFNUJRPUIFNXBOSUKXBULUGPUMUNOUOZMZXACUP
      PGOGUQPQZAWRXDSZAGOURMZQZXEAGNXGLUSUTOGVAVBAUAUDZDMZXIXCMZSZVDAODMZOXCMZS
      ZVDZAUBUDZDMZXQXCMZSZVDAXQULVCPZDMZYAXCMZSZVDAXFVDUAUBGOGXIOSZXLXOAYEXJXM
      XKXNXIODTXIOXCTVEVFXIXQSZXLXTAYFXJXRXKXSXIXQDTXIXQXCTVEVFXIYASZXLYDAYGXJY
      BXKYCXIYADTXIYAXCTVEVFXIGSZXLXFAYHXJWRXKXDXIGDTXIGXCTVEVFXPXHAXMUKXNABCDE
      FHIJKVGAXACXCEFHAXABNBWTVHIVIZJXCVJZVGVKVLXQWTQZAXTYDAYKXTYDVDXTYDAYKUHZX
      RXQBQZXBXQUGPCQZUHZFNUJZRPZXSYPRPZSXRXSYPRVMYLYBYQYCYRYLBCDEFXQHABNWGYKIV
      NACNWGYKJVNZKYLXQXGNYKXQXGQAXQOGVOVPUSVQZVRYLYCXSXQXAQZYNUHZFNUJZRPYRYLXA
      CXCEFXQHAXANWGYKYIVNYSYJYTVRYLUUCYPXSRYLUUBYOFNYLUUAYMYNYKUUAYMVSAUUAYMYK
      XQBWTVTWAVPWBWCWDWEVEWFWHWIWJWKAXACXCEFGGHYIJYJLXAWTWGABWTWLVLAGWMQGGURMQ
      AGLWNGWOWPWQWE $.
  $}

  ${
    $d m n p A $.  $d m n p B $.  $d m n p N $.  $d n ph $.
    smup1.a $e |- ( ph -> A C_ NN0 ) $.
    smup1.b $e |- ( ph -> B C_ NN0 ) $.
    smup1.n $e |- ( ph -> N e. NN0 ) $.
    $( Rewrite ~ smupp1 using only ` smul ` instead of the internal recursive
       function ` P ` .  (Contributed by Mario Carneiro, 20-Sep-2016.) $)
    smup1 $p |- ( ph -> ( ( A i^i ( 0 ..^ ( N + 1 ) ) ) smul B ) =
      ( ( ( A i^i ( 0 ..^ N ) ) smul B ) sadd
        { n e. NN0 | ( N e. A /\ ( n - N ) e. B ) } ) ) $=
      ( vp vm c1 co cn0 cv wcel cmin wa crab csad cc0 caddc cpw cmpt2 wceq cmpt
      c0 cif cseq cfv cfzo cin csmu smupp1 peano2nn0 syl smupval oveq1d 3eqtr3d
      eqid ) AEKUALZIJMUBMINJNZBODNZVAPLCOQDMRSLUCDMVBTUDUFVBKPLUGUETUHZUIEVCUI
      ZEBOVBEPLCOQDMRZSLBTUTUJLUKCULLBTEUJLUKCULLZVESLABCVCJDEIFGVCUSZHUMABCVCJ
      DUTIFGVGAEMOUTMOHEUNUOUPAVDVFVESABCVCJDEIFGVGHUPUQUR $.
  $}

  ${
    $d k m n p A $.  $d k m n p B $.  $d i k m n p x N $.  $d i k n x ph $.
    $d i x P $.  $d i x Q $.
    smueq.a $e |- ( ph -> A C_ NN0 ) $.
    smueq.b $e |- ( ph -> B C_ NN0 ) $.
    smueq.n $e |- ( ph -> N e. NN0 ) $.
    ${
      smueq.p $e |- P = seq 0 ( ( p e. ~P NN0 , m e. NN0 |->
          ( p sadd { n e. NN0 | ( m e. A /\ ( n - m ) e. B ) } ) ) ,
        ( n e. NN0 |-> if ( n = 0 , (/) , ( n - 1 ) ) ) ) $.
      smueq.q $e |- Q = seq 0 ( ( p e. ~P NN0 , m e. NN0 |->
 ( p sadd { n e. NN0 | ( m e. A /\ ( n - m ) e. ( B i^i ( 0 ..^ N ) ) ) } ) ) ,
        ( n e. NN0 |-> if ( n = 0 , (/) , ( n - 1 ) ) ) ) $.
      $( Any element of a sequence multiplication only depends on the values of
         the argument sequences up to and including that point.  (Contributed
         by Mario Carneiro, 20-Sep-2016.) $)
      smueqlem $p |- ( ph -> ( ( A smul B ) i^i ( 0 ..^ N ) ) =
  ( ( ( A i^i ( 0 ..^ N ) ) smul ( B i^i ( 0 ..^ N ) ) ) i^i ( 0 ..^ N ) ) ) $=
        ( co cc0 cin wcel cn0 ineq1d vk vx vi csmu cfzo cv wa wb cfv wss adantr
        cuz elfzouz adantl nn0uz syl6eleqr c1 caddc cle nn0zd peano2zd elfzolt2
        cz wbr clt nn0ltp1le syl2anc mpbid eluz2 syl3anbrc smuval2 cfz syl6eleq
        eluzfz2b sylib wi fveq2 eqeq12d imbi2d c0 smup0 inss1 syl5ss eqtr4d a1i
        wceq cmin crab oveq1 elfzonn0 smupp1 cpw wf smupf ffvelrn syl2an elpwid
        csad ssrab2 sadeq eqtrd inss2 sseli sseld elfzo0 simp2bi resubcld nnred
        cn nn0red nn0ge0d subge02d lelttrd jca w3a 3anass bitri baib syl5ibrcom
        syld pm4.71rd elin bitr4i syl6rbb anbi2d sylan2 rabbidva inrab2 3eqtr4g
        ancom oveq2d 3eqtrd syl5ibr expcom fzind2 mpcom eleq2d rbaib 3bitr3d
        a2d smupval 3bitrd ex pm5.32rd 3bitr4g eqrdv ) AUABCUDOZPHUEOZQZBUUHQCU
        UHQZUDOZUUHQZAUAUFZUUGRZUUMUUHRZUGUUMUUKRZUUOUGUUMUUIRUUMUULRAUUOUUNUUP
        AUUOUUNUUPUHAUUOUGZUUNUUMHDUIZRZUUMHEUIZRZUUPUUQBCDFGHUUMIABSUJZUUOJUKZ
        ACSUJZUUOKUKMUUQUUMPULUIZSUUOUUMUVERAUUMPHUMUNUOUPZUUQUUMUQUROZVCRHVCRU
        VGHUSVDZHUVGULUIRUUQUUMUUQUUMUVFUTVAUUQHAHSRZUUOLUKZUTUUQUUMHVEVDZUVHUU
        OUVKAUUMPHVBUNUUQUUMSRUVIUVKUVHUHUVFUVJUUMHVFVGVHUVGHVIVJVKUUQUUMUURUUH
        QZRZUUMUUTUUHQZRZUUSUVAUUQUVLUVNUUMAUVLUVNWFZUUOHPHVLORZAUVPAHUVERZUVQA
        HSUVELUOVMPHVNVOAUBUFZDUIZUUHQZUVSEUIZUUHQZWFZVPAPDUIZUUHQZPEUIZUUHQZWF
        ZVPZAUCUFZDUIZUUHQZUWKEUIZUUHQZWFZVPAUWKUQUROZDUIZUUHQZUWQEUIZUUHQZWFZV
        PAUVPVPUBUCHPHUVSPWFZUWDUWIAUXCUWAUWFUWCUWHUXCUVTUWEUUHUVSPDVQTUXCUWBUW
        GUUHUVSPEVQTVRVSUVSUWKWFZUWDUWPAUXDUWAUWMUWCUWOUXDUVTUWLUUHUVSUWKDVQTUX
        DUWBUWNUUHUVSUWKEVQTVRVSUVSUWQWFZUWDUXBAUXEUWAUWSUWCUXAUXEUVTUWRUUHUVSU
        WQDVQTUXEUWBUWTUUHUVSUWQEVQTVRVSUVSHWFZUWDUVPAUXFUWAUVLUWCUVNUXFUVTUURU
        UHUVSHDVQTUXFUWBUUTUUHUVSHEVQTVRVSUWJUVRAUWEUWGUUHAUWEVTUWGABCDFGIJKMWA
        ABUUJEFGIJAUUJCSCUUHWBKWCZNWAWDTWEUWKUUHRZAUWPUXBAUXHUWPUXBVPUWPUXBAUXH
        UGZUWMUWKBRZGUFZUWKWGOZCRZUGZGSWHZUUHQZWROZUUHQZUWOUXPWROZUUHQZWFUWPUXQ
        UXSUUHUWMUWOUXPWRWITUXIUWSUXRUXAUXTUXIUWSUWLUXOWROZUUHQUXRUXIUWRUYAUUHU
        XIBCDFGUWKIAUVBUXHJUKZAUVDUXHKUKZMUXHUWKSRZAUWKHWJZUNZWKTUXIUWLUXOHUXIU
        WLSASSWLZDWMUYDUWLUYGRUXHABCDFGIJKMWNUYESUYGUWKDWOWPWQUXOSUJUXIUXNGSWSW
        EAUVIUXHLUKZWTXAUXIUXAUWNUXJUXLUUJRZUGZGSWHZWROZUUHQUWOUYKUUHQZWROZUUHQ
        UXTUXIUWTUYLUUHUXIBUUJEFGUWKIUYBAUUJSUJZUXHUXGUKNUYFWKTUXIUWNUYKHUXIUWN
        SASUYGEWMUYDUWNUYGRUXHABUUJEFGIJUXGNWNUYESUYGUWKEWOWPWQUYKSUJUXIUYJGSWS
        WEUYHWTUXIUYNUXSUUHUXIUYMUXPUWOWRUXIUYJGSUUHQZWHUXNGUYPWHUYMUXPUXIUYJUX
        NGUYPUXKUYPRUXIUXKUUHRZUYJUXNUHUYPUUHUXKSUUHXBXCUXIUYQUGZUYIUXMUXJUYRUX
        MUXLUUHRZUXMUGZUYIUYRUXMUYSUYRUXMUXLSRZUYSUYRCSUXLUXIUVDUYQUYCUKXDUYRUY
        SVUAHXIRZUXLHVEVDZUGZUYRVUBVUCUYQVUBUXIUYQUXKSRZVUBUXKHVEVDZUXKHXEXFUNZ
        UYRUXLUXKHUYRUXKUWKUYRUXKUYQVUEUXIUXKHWJUNXJZUYRUWKUXIUYDUYQUYFUKZXJZXG
        VUHUYRHVUGXHUYRPUWKUSVDUXLUXKUSVDUYRUWKVUIXKUYRUXKUWKVUHVUJXLVHUYQVUFUX
        IUXKPHVBUNXMXNUYSVUAVUDUYSVUAVUBVUCXOVUAVUDUGUXLHXEVUAVUBVUCXPXQXRXSXTY
        AUYTUXMUYSUGUYIUYSUXMYJUXLCUUHYBYCYDYEYFYGUYJGSUUHYHUXNGSUUHYHYIYKTYLVR
        YMYNYTYOYPUKYQUUOUVMUUSUHAUVMUUSUUOUUMUURUUHYBYRUNUUOUVOUVAUHAUVOUVAUUO
        UUMUUTUUHYBYRUNYSUUQUUTUUKUUMUUQBUUJEFGHIUVCAUYOUUOUXGUKNUVJUUAYQUUBUUC
        UUDUUMUUGUUHYBUUMUUKUUHYBUUEUUF $.
    $}

    $( Any element of a sequence multiplication only depends on the values of
       the argument sequences up to and including that point.  (Contributed by
       Mario Carneiro, 20-Sep-2016.) $)
    smueq $p |- ( ph -> ( ( A smul B ) i^i ( 0 ..^ N ) ) =
  ( ( ( A i^i ( 0 ..^ N ) ) smul ( B i^i ( 0 ..^ N ) ) ) i^i ( 0 ..^ N ) ) ) $=
      ( vp vm vn cn0 cv wcel cmin co wa crab csad cmpt2 cc0 cpw wceq c0 c1 cmpt
      cif cseq cfzo cin eqid smueqlem ) ABCHIKUAZKHLZILZBMZJLZUNNOZCMPJKQROSJKU
      PTUBUCUPUDNOUFUEZTUGZHIULKUMUOUQCTDUHOUIMPJKQROSURTUGZIJDHEFGUSUJUTUJUK
      $.
  $}

  ${
    $d k n x A $.  $d k n x B $.  $d x N $.  $d k n x ph $.
    smumullem.a $e |- ( ph -> A e. ZZ ) $.
    smumullem.b $e |- ( ph -> B e. ZZ ) $.
    smumullem.n $e |- ( ph -> N e. NN0 ) $.
    $( Lemma for ~ smumul .  (Contributed by Mario Carneiro, 22-Sep-2016.) $)
    smumullem $p |- ( ph ->
      ( ( ( bits ` A ) i^i ( 0 ..^ N ) ) smul ( bits ` B ) ) =
      ( bits ` ( ( A mod ( 2 ^ N ) ) x. B ) ) ) $=
      ( vn cn0 wcel cbits cfv cc0 co c2 cmul wceq c0 oveq2 oveq1d cfzo cin csmu
      vx vk cexp cmo cv wi c1 caddc syl6eq ineq2d in0 wss bitsss smu02 ax-mp cc
      fzo0 2cn exp0 oveq2d fveq2d eqeq12d imbi2d cz zmod10 syl zcnd eqtrd 0bits
      mul02d syl6req cmin crab csad oveq1 a1i simpr smup1 cif bitsinv1lem sylan
      wa adantr cn 2nn nnexpcld zmodcld nn0cnd nnnn0d 0nn0 ifcl sylancl adddird
      mulcomd 3eqtrd nn0zd zmulcld sadadd syl2anc eqeq1d ibar rabbidv sylan9req
      bitsshft wn mul01d wral intnanrd ralrimivw rabeq0 sylibr 3eqtr4a ifbothda
      3eqtr2d syl5ibr expcom a2d nn0ind mpcom ) DIJABKLZMDUANZUBZCKLZUCNZBODUFN
      ZUGNZCPNZKLZQZGAYCMUDUHZUANZUBZYFUCNZBOYMUFNZUGNZCPNZKLZQZUIARBUJUGNZCPNZ
      KLZQZUIAYCMUEUHZUANZUBZYFUCNZBOUUFUFNZUGNZCPNZKLZQZUIAYCMUUFUJUKNZUANZUBZ
      YFUCNZBOUUOUFNZUGNZCPNZKLZQZUIAYLUIUDUEDYMMQZUUAUUEAUVDYPRYTUUDUVDYPRYFUC
      NZRUVDYORYFUCUVDYOYCRUBRUVDYNRYCUVDYNMMUANRYMMMUASMUTULUMYCUNULTYFIUOZUVE
      RQCUPZYFUQURULUVDYSUUCKUVDYRUUBCPUVDYQUJBUGUVDYQOMUFNZUJYMMOUFSOUSJUVHUJQ
      VAOVBURULVCTVDVEVFYMUUFQZUUAUUNAUVIYPUUIYTUUMUVIYOUUHYFUCUVIYNUUGYCYMUUFM
      UASUMTUVIYSUULKUVIYRUUKCPUVIYQUUJBUGYMUUFOUFSVCTVDVEVFYMUUOQZUUAUVCAUVJYP
      UURYTUVBUVJYOUUQYFUCUVJYNUUPYCYMUUOMUASUMTUVJYSUVAKUVJYRUUTCPUVJYQUUSBUGY
      MUUOOUFSVCTVDVEVFYMDQZUUAYLAUVKYPYGYTYKUVKYOYEYFUCUVKYNYDYCYMDMUASUMTUVKY
      SYJKUVKYRYICPUVKYQYHBUGYMDOUFSVCTVDVEVFAUUDMKLZRAUUCMKAUUCMCPNMAUUBMCPABV
      GJZUUBMQEBVHVITACACFVJZVMVKVDVLVNUUFIJZAUUNUVCAUVOUUNUVCUIUUNUVCAUVOWEZUU
      IUUFYCJZHUHUUFVONYFJZWEZHIVPZVQNZUUMUVTVQNZQUUIUUMUVTVQVRUVPUURUWAUVBUWBU
      VPYCYFHUUFYCIUOUVPBUPVSUVFUVPUVGVSAUVOVTZWAUVPUVBUULCUVQUUJMWBZPNZUKNZKLZ
      UUMUWEKLZVQNZUWBUVPUVAUWFKUVPUVAUUKUWDUKNZCPNUULUWDCPNZUKNUWFUVPUUTUWJCPA
      UVMUVOUUTUWJQEUUFBWCWDTUVPUUKUWDCUVPUUKUVPBUUJAUVMUVOEWFUVPOUUFOWGJUVPWHV
      SUWCWIZWJZWKUVPUWDUVPUUJIJMIJUWDIJUVPUUJUWLWLWMUVQUUJMIWNWOZWKZACUSJZUVOU
      VNWFZWPUVPUWKUWEUULUKUVPUWDCUWOUWQWQVCWRVDUVPUULVGJUWEVGJUWIUWGQUVPUUKCUV
      PUUKUWMWSACVGJZUVOFWFZWTUVPCUWDUWSUVPUWDUWNWSWTUULUWEXAXBUVPUWHUVTUUMVQUV
      QCUUJPNZKLZUVTQCMPNZKLZUVTQUWHUVTQUVPUUJMUUJUWDQZUXAUWHUVTUXDUWTUWEKUUJUW
      DCPSVDXCMUWDQZUXCUWHUVTUXEUXBUWEKMUWDCPSVDXCUVPUVQUXAUVRHIVPZUVTAUWRUVOUX
      FUXAQFCHUUFXGWDUVQUVRUVSHIUVQUVRXDXEXFUVPUVQXHZWEZUVLRUXCUVTVLUXHUXBMKUXH
      CUVPUWPUXGUWQWFXIVDUXHUVSXHZHIXJUVTRQUXHUXIHIUXHUVQUVRUVPUXGVTXKXLUVSHIXM
      XNXOXPVCXQVEXRXSXTYAYB $.
  $}

  ${
    $d k A $.  $d k B $.
    $( For sequences that correspond to valid integers, the sequence
       multiplication function produces the sequence for the product.  This is
       effectively a proof of the correctness of the multiplication process,
       implemented in terms of logic gates for ~ df-sad , whose correctness is
       verified in ~ sadadd .

       Outside this range, the sequences cannot be representing integers, but
       the ` smul ` function still "works".  This extended function is best
       interpreted in terms of the ring structure of the 2-adic integers.
       (Contributed by Mario Carneiro, 22-Sep-2016.) $)
    smumul $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
      ( ( bits ` A ) smul ( bits ` B ) ) = ( bits ` ( A x. B ) ) ) $=
      ( cz wcel wa cbits cfv csmu co cn0 wss bitsss a1i cc0 c1 cin wceq syl2anc
      c2 cmo vk cmul cv wi smucl mp2an sseli caddc cfzo cexp simpll simplr 1nn0
      wb simpr nn0addcld smumullem ineq1d cn 2nn nnexpcld zmodcld nn0zd zmulcld
      bitsmod eqtr4d inass inidm ineq2i eqtri oveq1i ineq1i inss1 smueq 3eqtr4a
      syl5ss nnrpd crp zred modabs2 eqidd modmul12d fveq2d 3eqtr3d eqtrd eleq2d
      cr elin 3bitr3g cfz cuz nn0uz syl6eleq eluzfz2b sylib fzval3 syl biantrud
      eleqtrd 3bitr4d ex pm5.21ndd eqrdv ) ACDZBCDZEZUAAFGZBFGZHIZABUBIZFGZXFUA
      UCZJDZXLXIDZXLXKDZXNXMUDXFXIJXLXGJKZXHJKZXIJKALZBLZXGXHUEUFUGMXOXMUDXFXKJ
      XLXJLUGMXFXMXNXOUNXFXMEZXNXLNXLOUHIZUIIZDZEZXOYCEZXNXOXTXLXIYBPZDXLXKYBPZ
      DYDYEXTYFYGXLXTYFXJSYAUJIZTIZFGZYGXTXGYBPZXHHIZYBPZAYHTIZBUBIZYHTIZFGZYFY
      JXTYMYOFGZYBPZYQXTYLYRYBXTABYAXDXEXMUKZXDXEXMULZXTXLOXFXMUOZOJDXTUMMUPZUQ
      URXTYOCDYAJDZYQYSQXTYNBXTYNXTAYHYTXTSYASUSDXTUTMUUCVAZVBVCZUUAVDUUCYAYOVE
      RVFXTYKYBPZXHYBPZHIZYBPYKUUHHIZYBPYMYFUUIUUJYBUUGYKUUHHUUGXGYBYBPZPYKXGYB
      YBVGUUKYBXGYBVHVIVJVKVLXTYKXHYAXTYKXGJXGYBVMXPXTXRMZVPXQXTXSMZUUCVNXTXGXH
      YAUULUUMUUCVNVOXTYPYIFXTYNABBYHUUFYTUUAUUAXTYHUUEVQZXTAWGDYHVRDYNYHTIYNQX
      TAYTVSUUNAYHVTRXTBYHTIWAWBWCWDXTXJCDUUDYJYGQXTABYTUUAVDUUCYAXJVERWEWFXLXI
      YBWHXLXKYBWHWIXTYCXNXTXLNXLWJIZYBXTXLNWKGZDXLUUODXTXLJUUPUUBWLWMNXLWNWOXT
      XLCDUUOYBQXTXLUUBVCNXLWPWQWSZWRXTYCXOUUQWRWTXAXBXC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The greatest common divisor operator
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c gcd $.

  $( Extend the definition of a class to include the greatest common divisor
     operator. $)
  cgcd $a class gcd $.

  ${
    $d n x y $.
    $( Define the ` gcd ` operator.  For example, ` ( -u 6 gcd 9 ) = 3 `
       ( ~ ex-gcd ).  For an alternate definition, based on the definition in
       [ApostolNT] p. 15, see ~ dfgcd2 .  (Contributed by Paul Chapman,
       21-Mar-2011.) $)
    df-gcd $a |- gcd = ( x e. ZZ , y e. ZZ |-> if ( ( x = 0 /\ y = 0 ) , 0 ,
             sup ( { n e. ZZ | ( n || x /\ n || y ) } , RR , < ) ) ) $.
  $}

  ${
    $d M n x y $.  $d N n x y $.
    $( The value of the ` gcd ` operator. ` ( M gcd N ) ` is the greatest
       common divisor of ` M ` and ` N ` .  If ` M ` and ` N ` are both ` 0 ` ,
       the result is defined conventionally as ` 0 ` .  (Contributed by Paul
       Chapman, 21-Mar-2011.)  (Revised by Mario Carneiro, 10-Nov-2013.) $)
    gcdval $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M gcd N ) =
              if ( ( M = 0 /\ N = 0 ) , 0 ,
                   sup ( { n e. ZZ | ( n || M /\ n || N ) } , RR , < ) ) ) $=
      ( vx vy cz cv cc0 wceq wa cdvds wbr crab clt csup cif eqeq1 anbi1d breq2
      cr cgcd rabbidv supeq1d ifbieq2d anbi2d df-gcd c0ex ltso supex ovmpt2
      ifex ) DEBCFFDGZHIZEGZHIZJZHAGZULKLZUQUNKLZJZAFMZTNOZPBHIZCHIZJZHUQBKLZUQ
      CKLZJZAFMZTNOZPUAVCUOJZHVFUSJZAFMZTNOZPULBIZUPVKVBVNHVOUMVCUOULBHQRVOTVAV
      MNVOUTVLAFVOURVFUSULBUQKSRUBUCUDUNCIZVKVEVNVJHVPUOVDVCUNCHQUEVPTVMVINVPVL
      VHAFVPUSVGVFUNCUQKSUEUBUCUDDEAUFVEHVJUGTVINUHUIUKUJ $.
  $}

  $( The value, by convention, of the ` gcd ` operator when both operands are
     0.  (Contributed by Paul Chapman, 21-Mar-2011.) $)
  gcd0val $p |- ( 0 gcd 0 ) = 0 $=
    ( vn cc0 cgcd co wceq wa cv cdvds wbr cz crab cr clt csup cif wcel 0z mp2an
    gcdval eqid iftrue eqtri ) BBCDZBBEZUDFZBAGBHIZUFFAJKLMNZOZBBJPZUIUCUHEQQAB
    BSRUDUDUHBEBTZUJUEBUGUARUB $.

  ${
    $d M n $.  $d N n $.
    $( The value of the ` gcd ` operator when at least one operand is nonzero.
       (Contributed by Paul Chapman, 21-Mar-2011.) $)
    gcdn0val $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ -. ( M = 0 /\ N = 0 ) ) ->
        ( M gcd N ) = sup ( { n e. ZZ | ( n || M /\ n || N ) } , RR , < ) ) $=
      ( cz wcel wa cc0 wceq wn cgcd co cv cdvds wbr crab cr clt csup cif gcdval
      iffalse sylan9eq ) BDECDEFBGHCGHFZIBCJKUCGALZBMNUDCMNFADOPQRZSUEABCTUCGUE
      UAUB $.
  $}

  ${
    $d A n w x y z $.  $d S w x $.
    gcdcllem1.1 $e |- S = { z e. ZZ | A. n e. A z || n } $.
    $( Lemma for ~ gcdn0cl , ~ gcddvds and ~ dvdslegcd .  (Contributed by Paul
       Chapman, 21-Mar-2011.) $)
    gcdcllem1 $p |- ( ( A C_ ZZ /\ E. n e. A n =/= 0 ) ->
                      ( S =/= (/) /\ E. x e. ZZ A. y e. S y <_ x ) ) $=
      ( vw cz cv cc0 wa cle wbr wral c1 wcel cdvds wceq wi wss wne wrex c0 ssel
      1dvds syl6 ralrimiv breq1 ralbidv elrab2 biimpri sylancr syl adantr neeq1
      1z ne0i cbvrexv cabs simprbi adantl simplbi ssel2 dvdsleabs 3expia sylan2
      anassrs com23 ralrimiva ancoms r19.26 pm3.35 ralimi sylbir syl2anc breq2d
      cfv fveq2 imbi12d cbvralv ralbii ralcom r19.21v 3bitri sylib cn0 nn0abscl
      nn0zd wb breq2 rspcedv imim2d ralimdva mpd r19.23v imp sylan2b jca ) DIUA
      ZFJZKUBZFDUCZLEUDUBZBJZAJZMNZBEOZAIUCZWTXDXCWTPEQZXDWTPIQZPXARNZFDOZXJUQW
      TXLFDWTXADQZXAIQZXLDIXAUEXAUFUGUHXJXKXMLCJZXARNZFDOZXMCPIEXPPSXQXLFDXPPXA
      RUIUJGUKULUMEPURUNUOXCWTHJZKUBZHDUCZXIXBXTFHDXAXSKUPZUSWTYAXIWTXTXITZHDOZ
      YAXITWTXTXEXSUTVRZMNZBEOZTZHDOZYDWTXBXEXAUTVRZMNZTZFDOZBEOZYIWTYMBEWTXEEQ
      ZLXEXARNZFDOZYPYLTZFDOZYMYOYQWTYOXEIQZYQXRYQCXEIEXPXESXQYPFDXPXEXARUIUJGU
      KZVAVBYOWTYTYSYOYTYQUUAVCYTWTYSYTWTLZYRFDUUBXNLXBYPYKYTWTXNXBYPYKTZTZWTXN
      LYTXOUUDDIXAVDYTXOXBUUCXEXAVEVFVGVHVIVJVKVGYQYSLYPYRLZFDOYMYPYRFDVLUUEYLF
      DYPYLVMVNVOVPVJYNXTYFTZHDOZBEOUUFBEOZHDOYIYMUUGBEYLUUFFHDXAXSSZXBXTYKYFYB
      UUIYJYEXEMXAXSUTVSVQVTWAWBUUFBHEDWCUUHYHHDXTYFBEWDWBWEWFWTYHYCHDWTXSDQLZY
      GXIXTUUJXHYGAYEIUUJYEUUJXSIQYEWGQDIXSVDXSWHUNWIXFYESZXHYGWJUUJUUKXGYFBEXF
      YEXEMWKUJVBWLWMWNWOXTXIHDWPWFWQWRWS $.
  $}

  ${
    $d x z K $.  $d n x y z M $.  $d n x y z N $.  $d x y R $.  $d x y S $.
    gcdcllem2.1 $e |- S = { z e. ZZ | A. n e. { M , N } z || n } $.
    gcdcllem2.2 $e |- R = { z e. ZZ | ( z || M /\ z || N ) } $.
    $( Lemma for ~ gcdn0cl , ~ gcddvds and ~ dvdslegcd .  (Contributed by Paul
       Chapman, 21-Mar-2011.) $)
    gcdcllem2 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> R = S ) $=
      ( vx cz wcel wa cv cdvds wbr cpr wral breq1 elrab2 breq2 ralbidv syl6rbbr
      weq ralprg anbi2d syl5bb anbi12d eqrdv ) EJKFJKLZIBCUIIMZCKZUJJKZUJENOZUJ
      FNOZLZLZUJBKUKULUJDMZNOZDEFPZQZLUIUPAMZUQNOZDUSQUTAUJJCAIUCZVBURDUSVAUJUQ
      NRUAGSUIUTUOULURUMUNDEFJJUQEUJNTUQFUJNTUDUEUFVAENOZVAFNOZLUOAUJJBVCVDUMVE
      UNVAUJENRVAUJFNRUGHSUBUH $.

    $( Lemma for ~ gcdn0cl , ~ gcddvds and ~ dvdslegcd .  (Contributed by Paul
       Chapman, 21-Mar-2011.) $)
    gcdcllem3 $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ -. ( M = 0 /\ N = 0 ) ) ->
        ( sup ( R , RR , < ) e. NN /\
          ( sup ( R , RR , < ) || M /\ sup ( R , RR , < ) || N ) /\
          ( ( K e. ZZ /\ K || M /\ K || N ) -> K <_ sup ( R , RR , < ) ) ) ) $=
      ( vy vx cz wcel wa cc0 wceq cdvds wbr c1 breq1 wn cr clt cn w3a cle wi cv
      csup crab ssrab2 eqsstri c0 wne wral wrex cpr wss prssi adantr wo neorian
      prid1g neeq1 rspcev sylan adantlr prid2g adantll jaodan gcdcllem1 syl2anc
      sylan2br wb gcdcllem2 raleq rexbidv anbi12d mpbird suprzcl2 mp3an1 sseldi
      syl a1i simprd 1dvds anim12i elrab2 mpbiran sylibr suprzub syl3anc elnnz1
      1z sylanbrc cbvrabv eqtri sylib biimpri 3impb 3expia mpan syl2im 3jca ) F
      LMZGLMZNZFOPGOPNUAZNZBUBUCUIZUDMZXJFQRZXJGQRZNZELMZEFQRZEGQRZUEZEXJUFRZUG
      XIXJLMZSXJUFRZXKXIBLXJBAUHZFQRZYBGQRZNZALUJZLIYEALUKULZXIBUMUNZJUHKUHZUFR
      ZJBUOZKLUPZNZXJBMZXIYMCUMUNZYJJCUOZKLUPZNZXIFGUQZLURZDUHZOUNZDYSUPZYRXGYT
      XHFGLUSUTXHXGFOUNZGOUNZVAUUCFOGOVBXGUUDUUCUUEXEUUDUUCXFXEFYSMUUDUUCFGLVCU
      UBUUDDFYSUUAFOVDVEVFVGXFUUEUUCXEXFGYSMUUEUUCFGLVHUUBUUEDGYSUUAGOVDVEVFVIV
      JVMKJAYSCDHVKVLXGYMYRVNZXHXGBCPZUUFABCDFGHIVOUUGYHYOYLYQBCUMVDUUGYKYPKLYJ
      JBCVPVQVRWCUTVSZBLURZYHYLYNYGKJBVTWAWCZWBXIUUIYLSBMZYAUUIXIYGWDXIYHYLUUHW
      EZXGUUKXHXGSFQRZSGQRZNZUUKXEUUMXFUUNFWFGWFWGUUKSLMUUOWNYEUUOASLBYBSPYCUUM
      YDUUNYBSFQTYBSGQTVRIWHWIWJUTKJBSWKWLXJWMWOXIXTXNXIYNXTXNNUUJYIFQRZYIGQRZN
      ZXNKXJLBYIXJPUUPXLUUQXMYIXJFQTYIXJGQTVRBYFUURKLUJIYEUURAKLYBYIPYCUUPYDUUQ
      YBYIFQTYBYIGQTVRWPWQWHWRWEXIYLXREBMZXSUULXOXPXQUUSUUSXOXPXQNZNYEUUTAELBYB
      EPYCXPYDXQYBEFQTYBEGQTVRIWHWSWTUUIYLUUSXSUGYGUUIYLUUSXSKJBEWKXAXBXCXD $.
  $}

  ${
    $d K n $.  $d M n z $.  $d N n z $.
    $( Closure of the ` gcd ` operator.  (Contributed by Paul Chapman,
       21-Mar-2011.) $)
    gcdn0cl $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ -. ( M = 0 /\ N = 0 ) ) ->
                    ( M gcd N ) e. NN ) $=
      ( vn cK vz cz wcel wa cc0 wceq wn cgcd co cv cdvds wbr crab cr cn eqid wi
      clt csup gcdn0val w3a cle cpr wral gcdcllem3 simp1d eqeltrd ) AFGBFGHAIJB
      IJHKHZABLMCNZAOPUMBOPHCFQZRUBUCZSCABUDULUOSGUOAOPUOBOPHDFGDAOPDBOPUEDUOUF
      PUACUNUMENOPEABUGUHCFQZEDABUPTUNTUIUJUK $.

    $( The gcd of two integers divides each of them.  (Contributed by Paul
       Chapman, 21-Mar-2011.) $)
    gcddvds $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
                    ( ( M gcd N ) || M /\ ( M gcd N ) || N ) ) $=
      ( vn cK vz cz wcel wa cc0 wceq cgcd cdvds wbr breq2 breq1d anbi12d mpbird
      co cv crab dvds0 ax-mp bi2anan9 anidm syl6bb mpbiri oveq12 gcd0val syl6eq
      0z adantl wn cr clt csup cn w3a cle wi cpr wral gcdcllem3 simp2d gcdn0val
      eqid pm2.61dan ) AFGBFGHZAIJZBIJZHZABKRZALMZVKBLMZHZVJVNVGVJVNIALMZIBLMZH
      ZVJVQIILMZIFGVRUJIUAUBVJVQVRVRHVRVHVOVRVIVPVRAIILNBIILNUCVRUDUEUFVJVLVOVM
      VPVJVKIALVJVKIIKRIAIBIKUGUHUIZOVJVKIBLVSOPQUKVGVJULHZVNCSZALMWABLMHCFTZUM
      UNUOZALMZWCBLMZHZVTWCUPGWFDFGDALMDBLMUQDWCURMUSCWBWAESLMEABUTVACFTZEDABWG
      VEWBVEVBVCVTVLWDVMWEVTVKWCALCABVDZOVTVKWCBLWHOPQVF $.

    $( An integer which divides both operands of the ` gcd ` operator is
       bounded by it.  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    dvdslegcd $p |- ( ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) /\
                        -. ( M = 0 /\ N = 0 ) ) ->
                      ( ( K || M /\ K || N ) -> K <_ ( M gcd N ) ) ) $=
      ( vn vz cz wcel w3a cc0 wceq wa wn cdvds wbr cle wi cv crab eqid com12 co
      cgcd cr clt csup cn cpr wral gcdcllem3 simp3d gcdn0val breq2d 3expb exp4b
      sylibrd com23 impcom 3impb imp ) AFGZBFGZCFGZHBIJCIJKLZABMNZACMNZKZABCUBU
      AZONZPZUTVAVBVCVIPZVAVBKZUTVJVKVCUTVIVKVCUTVFVHUTVFKVKVCKZVHUTVDVEVLVHPVL
      UTVDVEHZVHVLVMADQZBMNVNCMNKDFRZUCUDUEZONZVHVLVPUFGVPBMNVPCMNKVMVQPDVOVNEQ
      MNEBCUGUHDFRZEABCVRSVOSUIUJVLVGVPAODBCUKULUOTUMTUNUPUQURUS $.
  $}

  $( A positive integer which divides both positive operands of the ` gcd `
     operator is bounded by it.  (Contributed by AV, 9-Aug-2020.) $)
  nndvdslegcd $p |- ( ( K e. NN /\ M e. NN /\ N e. NN )
                      -> ( ( K || M /\ K || N ) -> K <_ ( M gcd N ) ) ) $=
    ( cn wcel w3a cz cc0 wceq wa wn cdvds wbr cgcd co cle nnz 3anim123i nnne0
    wi neneqd 3ad2ant2 intnanrd dvdslegcd syl2anc ) ADEZBDEZCDEZFZAGEZBGEZCGEZF
    BHIZCHIZJKABLMACLMJABCNOPMTUFUJUGUKUHULAQBQCQRUIUMUNUGUFUMKUHUGBHBSUAUBUCAB
    CUDUE $.

  $( Closure of the ` gcd ` operator.  (Contributed by Paul Chapman,
     21-Mar-2011.) $)
  gcdcl $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M gcd N ) e. NN0 ) $=
    ( cz wcel wa cc0 wceq cgcd co oveq12 gcd0val syl6eq 0nn0 syl6eqel adantl wn
    cn0 gcdn0cl nnnn0d pm2.61dan ) ACDBCDEZAFGBFGEZABHIZQDZUBUDUAUBUCFQUBUCFFHI
    FAFBFHJKLMNOUAUBPEUCABRST $.

  $( Closure of the ` gcd ` operator.  (Contributed by Thierry Arnoux,
     2-Feb-2020.) $)
  gcdnncl $p |- ( ( M e. NN /\ N e. NN ) -> ( M gcd N ) e. NN ) $=
    ( cn wcel wa cz cc0 wceq wn cgcd co simpl nnzd simpr nnne0d intnand gcdn0cl
    neneqd syl21anc ) ACDZBCDZEZAFDBFDAGHZBGHZEIABJKCDUBATUALMUBBTUANZMUBUDUCUB
    BGUBBUEORPABQS $.

  ${
    gcdcld.1 $e |- ( ph -> M e. ZZ ) $.
    gcdcld.2 $e |- ( ph -> N e. ZZ ) $.
    $( Closure of the ` gcd ` operator.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    gcdcld $p |- ( ph -> ( M gcd N ) e. NN0 ) $=
      ( cz wcel cgcd co cn0 gcdcl syl2anc ) ABFGCFGBCHIJGDEBCKL $.
  $}

  $( Closure of the ` gcd ` operator if the second operand is not 0.
     (Contributed by AV, 10-Jul-2021.) $)
  gcd2n0cl $p |- ( ( M e. ZZ /\ N e. ZZ /\ N =/= 0 ) -> ( M gcd N ) e. NN ) $=
    ( cz wcel cc0 wne w3a wa wceq wn cgcd co neneq intnand anim2i 3impa gcdn0cl
    cn syl ) ACDZBCDZBEFZGTUAHZAEIZBEIZHJZHZABKLRDTUAUBUGUBUFUCUBUEUDBEMNOPABQS
    $.

  ${
    $d A n $.  $d B n $.
    $( An integer is the product of an integer and the gcd of it and another
       integer.  (Contributed by AV, 11-Jul-2021.) $)
    zeqzmulgcd $p |- ( ( A e. ZZ /\ B e. ZZ )
                       -> E. n e. ZZ A = ( n x. ( A gcd B ) ) ) $=
      ( cz wcel wa cgcd co cdvds cv cmul wceq wrex gcddvds wb gcdcl nn0zd simpl
      wbr divides syl2anc eqcom a1i rexbidv biimpd sylbid adantrd mpd ) ADEZBDE
      ZFZABGHZAISZULBISZFACJULKHZLZCDMZABNUKUMUQUNUKUMUOALZCDMZUQUKULDEUIUMUSOU
      KULABPQUIUJRCULATUAUKUSUQUKURUPCDURUPOUKUOAUBUCUDUEUFUGUH $.
  $}

  $( An integer divided by the gcd of it and a nonzero integer is an integer.
     (Contributed by AV, 11-Jul-2021.) $)
  divgcdz $p |- ( ( A e. ZZ /\ B e. ZZ /\ B =/= 0 )
                  -> ( A / ( A gcd B ) ) e. ZZ ) $=
    ( cz wcel cc0 wne w3a cgcd co cdvds cdiv wa gcddvds 3adant3 simpld gcd2n0cl
    wbr wb cn syl nnz nnne0 jca simp1 df-3an sylanbrc dvdsval2 mpbid ) ACDZBCDZ
    BEFZGZABHIZAJQZAUMKICDZULUNUMBJQZUIUJUNUPLUKABMNOULUMCDZUMEFZUIGZUNUORULUQU
    RLZUIUSULUMSDZUTABPVAUQURUMUAUMUBUCTUIUJUKUDUQURUIUEUFUMAUGTUH $.

  ${
    $d n x y $.
    $( Domain and codomain of the ` gcd ` operator.  (Contributed by Paul
       Chapman, 31-Mar-2011.)  (Revised by Mario Carneiro, 16-Nov-2013.) $)
    gcdf $p |- gcd : ( ZZ X. ZZ ) --> NN0 $=
      ( vx vy vn cv cc0 wceq wa cdvds wbr cz crab cr clt csup cif cn0 wcel wral
      cxp cgcd wf co gcdval gcdcl eqeltrrd rgen2a df-gcd fmpt2 mpbi ) ADZEFBDZE
      FGECDZUJHIULUKHIGCJKLMNOZPQZBJRAJRJJSPTUAUNABJUJJQUKJQGUJUKTUBUMPCUJUKUCU
      JUKUDUEUFABJJUMPTABCUGUHUI $.
  $}

  ${
    $d M n $.  $d N n $.
    $( The ` gcd ` operator is commutative.  Theorem 1.4(a) in [ApostolNT]
       p. 16.  (Contributed by Paul Chapman, 21-Mar-2011.) $)
    gcdcom $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M gcd N ) = ( N gcd M ) ) $=
      ( vn cz wcel wa cc0 wceq cv cdvds wbr crab cr clt csup cif cgcd co gcdval
      ancom wb a1i rabbiia supeq1i ifbieq2i ancoms 3eqtr4a ) ADEZBDEZFAGHZBGHZF
      ZGCIZAJKZUMBJKZFZCDLZMNOZPUKUJFZGUOUNFZCDLZMNOZPZABQRBAQRZULUSURVBGUJUKTM
      UQVANUPUTCDUPUTUAUMDEUNUOTUBUCUDUECABSUIUHVDVCHCBASUFUG $.
  $}

  $( A positive integer divided by the gcd of it and another integer is a
     positive integer.  (Contributed by AV, 10-Jul-2021.) $)
  divgcdnn $p |- ( ( A e. NN /\ B e. ZZ ) -> ( A / ( A gcd B ) ) e. NN ) $=
    ( cn wcel cz wa cgcd co cdvds wbr cdiv nnz anim1i gcddvds simpld syl wb cc0
    wceq wn nnne0 neneqd adantr intnanrd gcdn0cl syl2anc nndivdvds syldan mpbid
    ) ACDZBEDZFZABGHZAIJZAUMKHCDZULAEDZUKFZUNUJUPUKALMZUQUNUMBIJABNOPUJUKUMCDZU
    NUOQULUQARSZBRSZFTUSURULUTVAUJUTTUKUJARAUAUBUCUDABUEUFAUMUGUHUI $.

  $( A positive integer divided by the gcd of it and another integer is a
     positive integer.  (Contributed by AV, 10-Jul-2021.) $)
  divgcdnnr $p |- ( ( A e. NN /\ B e. ZZ ) -> ( A / ( B gcd A ) ) e. NN ) $=
    ( cn wcel cz wa cgcd co cdiv wceq nnz gcdcom eqcomd oveq2d divgcdnn eqeltrd
    sylan ) ACDZBEDZFZABAGHZIHAABGHZIHCTUAUBAITUBUARAEDSUBUAJAKABLQMNABOP $.

  $( The gcd of two integers is zero iff they are both zero.  (Contributed by
     Paul Chapman, 21-Mar-2011.) $)
  gcdeq0 $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
                 ( ( M gcd N ) = 0 <-> ( M = 0 /\ N = 0 ) ) ) $=
    ( cz wcel wa cgcd co cc0 wceq wn wne gcdn0cl nnne0d necon4bd oveq12 gcd0val
    ex syl6eq impbid1 ) ACDBCDEZABFGZHIAHIBHIEZTUBUAHTUBJZUAHKTUCEUAABLMQNUBUAH
    HFGHAHBHFOPRS $.

  $( The gcd of two integers is positive (nonzero) iff they are not both zero.
     (Contributed by Paul Chapman, 22-Jun-2011.) $)
  gcdn0gt0 $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
                   ( -. ( M = 0 /\ N = 0 ) <-> 0 < ( M gcd N ) ) ) $=
    ( cz wcel wa cc0 cgcd co clt wbr wne wceq wn cn0 wb gcdcl cle nn0re nn0ge0
    cr 0re leltne mp3an1 syl2anc syl gcdeq0 necon3abid bitr2d ) ACDBCDEZFABGHZI
    JZUJFKZAFLBFLEZMUIUJNDZUKULOZABPUNUJTDZFUJQJZUOUJRUJSFTDUPUQUOUAFUJUBUCUDUE
    UIUMUJFABUFUGUH $.

  $( The gcd of 0 and an integer is the integer's absolute value.  (Contributed
     by Paul Chapman, 21-Mar-2011.) $)
  gcd0id $p |- ( N e. ZZ -> ( 0 gcd N ) = ( abs ` N ) ) $=
    ( cz wcel cc0 cgcd co cabs cfv wceq wa cle wbr cdvds 0z mpan adantr wi zred
    mpd wb gcd0val oveq2 fveq2 abs0 syl6eq 3eqtr4a adantl wne gcddvds cn0 gcdcl
    simprd nn0zd dvdsleabs syl3an1 3anidm12 zabscl dvds0 iddvds absdvdsb anidms
    syl mpbid jca wn biantrur necon3abii w3a dvdslegcd ex mp3an2 mpancom syl5bi
    eqid imp letri3d mpbir2and pm2.61dane ) ABCZDAEFZAGHZIZADADIZWBVSWCDDEFDVTW
    AUAADDEUBWCWADGHDADGUCUDUEUFUGVSADUHZJZWBVTWAKLZWAVTKLZWEVTAMLZWFVSWHWDVSVT
    DMLZWHDBCZVSWIWHJNDAUIOULPVSWDWHWFQZVSVTBCVSWDWKVSVTWJVSVTUJCNDAUKOUMZVTAUN
    UOUPSWEWADMLZWAAMLZJZWGVSWOWDVSWMWNVSWABCZWMAUQZWAURVBVSAAMLZWNAUSVSWRWNTAA
    UTVAVCVDPVSWDWOWGQZWDDDIZWCJZVEZVSWSXAADWTWCDVNVFVGWPVSXBWSQZWQWPWJVSXCNWPW
    JVSVHXBWSWADAVIVJVKVLVMVOSVSWBWFWGJTWDVSVTWAVSVTWLRVSWAWQRVPPVQVR $.

  $( The gcd of an integer and 0 is the integer's absolute value.  Theorem
     1.4(d)2 in [ApostolNT] p. 16.  (Contributed by Paul Chapman,
     31-Mar-2011.) $)
  gcdid0 $p |- ( N e. ZZ -> ( N gcd 0 ) = ( abs ` N ) ) $=
    ( cz wcel cc0 cgcd co cabs cfv wceq 0z gcdcom mpan gcd0id eqtr3d ) ABCZDAEF
    ZADEFZAGHDBCOPQIJDAKLAMN $.

  $( The gcd of a nonnegative integer with 0 is itself.  (Contributed by Paul
     Chapman, 31-Mar-2011.) $)
  nn0gcdid0 $p |- ( N e. NN0 -> ( N gcd 0 ) = N ) $=
    ( cn0 wcel cc0 cgcd co cabs cfv cz wceq nn0z gcdid0 syl nn0re nn0ge0 absidd
    eqtrd ) ABCZADEFZAGHZARAICSTJAKALMRAANAOPQ $.

  $( Negating one operand of the ` gcd ` operator does not alter the result.
     (Contributed by Paul Chapman, 21-Mar-2011.) $)
  gcdneg $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M gcd -u N ) = ( M gcd N ) ) $=
    ( cz wcel wa cgcd co cc0 wceq oveq12 adantl wb anbi2d cle wbr cdvds gcddvds
    wn gcdcl wi cneg negeq0d syl6bi eqtr4d nn0zd dvdsnegb sylancom mpbid notbid
    zcn imp simpl znegcl dvdslegcd ex syl3anc sylbid com12 impcom sylan2 mpbird
    w3a mpdi simpr zred letri3d adantr mpbir2and pm2.61dan eqcomd ) ACDZBCDZEZA
    BFGZABUAZFGZVMAHIZBHIZEZVNVPIZVMVSEVNHHFGZVPVSVNWAIVMAHBHFJKVMVSVPWAIZVMVSV
    QVOHIZEZWBVLVSWDLVKVLVRWCVQVLBBUJUBMKZAHVOHFJUCUKUDVMVSRZEVTVNVPNOZVPVNNOZW
    FVMWGWFVMVNAPOZVNVOPOZEZWGVMWIVNBPOZEWKABQVMWLWJWIVKVLVNCDZWLWJLVMVNABSUEZV
    NBUFUGMUHVMWFWKWGTZVMWFWDRZWOVMVSWDWEUIVMWMVKVOCDZWPWOTWNVKVLULZVLWQVKBUMZK
    WMVKWQVBWPWOVNAVOUNUOUPUQURVCUSWFVMWHWFVMVPAPOZVPBPOZEZWHVMXBWTVPVOPOZEZVLV
    KWQXDWSAVOQUTVMXAXCWTVKVLVPCDZXAXCLVLVKWQXEWSVKWQEVPAVOSUEUTZVPBUFUGMVAVMWF
    XBWHTZVMXEVKVLWFXGTXFWRVKVLVDXEVKVLVBWFXGVPABUNUOUPURVCUSVMVTWGWHELWFVMVNVP
    VMVNWNVEVMVPXFVEVFVGVHVIVJ $.

  $( Negating one operand of the ` gcd ` operator does not alter the result.
     (Contributed by Paul Chapman, 22-Jun-2011.) $)
  neggcd $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( -u M gcd N ) = ( M gcd N ) ) $=
    ( cz wcel wa cneg cgcd co wceq gcdneg ancoms znegcl gcdcom sylan 3eqtr4d )
    ACDZBCDZEBAFZGHZBAGHZRBGHZABGHQPSTIBAJKPRCDQUASIALRBMNABMO $.

  ${
    gcdaddmlem.1 $e |- K e. ZZ $.
    gcdaddmlem.2 $e |- M e. ZZ $.
    gcdaddmlem.3 $e |- N e. ZZ $.
    $( Lemma for ~ gcdaddm .  (Contributed by Paul Chapman, 31-Mar-2011.) $)
    gcdaddmlem $p |- ( M gcd N ) = ( M gcd ( ( K x. M ) + N ) ) $=
      ( cc0 wceq cmul co caddc wa cgcd wbr cdvds cz wcel mp2an wi ax-mp gcddvds
      wn cle simpli c1 cn0 gcdcl nn0zi w3a 1z dvds2ln mpanl12 mp3an zcn mulid2i
      cc oveq2i breqtri zmulcl zaddcl dvdslegcd ex mp2ani cneg mulneg1i oveq12i
      znegcl mulcli negcli negidi addcomli oveq1i addassi addid2i 3eqtr3i eqtri
      anim12i zrei letri3i sylibr wo pm4.57 mul01i syl6eq oveq1d eqeq1d pm5.32i
      oveq2 oveq12 sylbir eqtr4d sylbi jaoi pm2.61i ) BGHZABIJZCKJZGHZLZUBZWOCG
      HZLZUBZLZBCMJZBWQMJZHZXDXEXFUCNZXFXEUCNZLXGWTXHXCXIWTXEBONZXEWQONZXHXJXEC
      ONZBPQZCPQZXJXLLZEFBCUARZUDXEWPUECIJZKJZWQOXOXEXRONZXPXEPQZXMXNXOXSSZXEXM
      XNXEUFQEFBCUGRUHZEFAPQZUEPQZXTXMXNUIYADUJAUEXEBCUKULUMTXQCWPKCXNCUPQFCUNT
      ZUOUQURXTXMWQPQZWTXJXKLXHSZSYBEWPPQZXNYFYCXMYHDEABUSRFWPCUTRZXTXMYFUIWTYG
      XEBWQVAVBUMVCXCXFBONZXFCONZXIYJXFWQONZXMYFYJYLLZEYIBWQUARZUDXFAVDZBIJZUEW
      QIJZKJZCOYMXFYRONZYNXFPQZXMYFYMYSSZXFXMYFXFUFQEYIBWQUGRUHZEYIYOPQZYDYTXMY
      FUIUUAYCUUCDAVGTUJYOUEXFBWQUKULUMTYRWPVDZWQKJZCYPUUDYQWQKABYCAUPQDAUNTZXM
      BUPQEBUNTZVEWQYFWQUPQYIWQUNTUOVFUUDWPKJZCKJGCKJZUUECUUHGCKWPUUDGABUUFUUGV
      HZWPUUJVIZWPUUJVJVKVLUUDWPCUUKUUJYEVMCYEVNZVOVPURYTXMXNXCYJYKLXISZSUUBEFY
      TXMXNUIXCUUMXFBCVAVBUMVCVQXEXFXEYBVRXFUUBVRVSVTXDUBWSXBWAXGWSXBWBWSXGXBWS
      XBXGWOWRXAWOWQCGWOWQUUICWOWPGCKWOWPAGIJGBGAIWHAUUFWCWDWEUULWDWFWGZXBXEGGM
      JZXFBGCGMWIXBWSXFUUOHUUNBGWQGMWIWJWKZWLUUPWMWLWN $.
  $}

  $( Adding a multiple of one operand of the ` gcd ` operator to the other does
     not alter the result.  (Contributed by Paul Chapman, 31-Mar-2011.) $)
  gcdaddm $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
                  ( M gcd N ) = ( M gcd ( N + ( K x. M ) ) ) ) $=
    ( cz wcel cgcd co cmul caddc cc0 cif oveq1 oveq1d oveq2d oveq2 0z elimel cc
    wceq zcn eqeq2d id oveq12d eqeq12d gcdaddmlem dedth3h wa mulcl syl2an 3impa
    w3a addcom eqtrd ) ADEZBDEZCDEZUKZBCFGZBABHGZCIGZFGZBCUSIGZFGUNUOUPURVASURB
    UNAJKZBHGZCIGZFGZSUOBJKZCFGZVGVCVGHGZCIGZFGZSVGUPCJKZFGZVGVIVLIGZFGZSABCJJJ
    AVCSZVAVFURVPUTVEBFVPUSVDCIAVCBHLMNUABVGSZURVHVFVKBVGCFLVQBVGVEVJFVQUBVQVDV
    ICIBVGVCHOMUCUDCVLSZVHVMVKVOCVLVGFOVRVJVNVGFCVLVIIONUDVCVGVLAJDPQBJDPQCJDPQ
    UEUFUQUTVBBFUNUOUPUTVBSZUNUOUGUSREZCREVSUPUNAREBREVTUOATBTABUHUICTUSCULUIUJ
    NUM $.

  $( The GCD of two numbers is the same as the GCD of the left and their sum.
     (Contributed by Scott Fenton, 20-Apr-2014.) $)
  gcdadd $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
  ( M gcd N ) = ( M gcd ( N + M ) ) ) $=
    ( cz wcel wa cgcd co c1 cmul caddc wceq 1z gcdaddm mp3an1 zcn mulid2 oveq2d
    cc syl adantr eqtrd ) ACDZBCDZEABFGZABHAIGZJGZFGZABAJGZFGZHCDUBUCUDUGKLHABM
    NUBUGUIKZUCUBARDZUJAOUKUFUHAFUKUEABJAPQQSTUA $.

  $( The gcd of a number and itself is its absolute value.  (Contributed by
     Paul Chapman, 31-Mar-2011.) $)
  gcdid $p |- ( N e. ZZ -> ( N gcd N ) = ( abs ` N ) ) $=
    ( cz wcel cc0 cgcd co c1 cmul caddc cabs cfv wceq 1z gcdaddm mp3an13 gcdid0
    0z cc zcn oveq2d mulid2 addid2 eqtrd syl 3eqtr3rd ) ABCZADEFZADGAHFZIFZEFZA
    JKAAEFGBCUFDBCUGUJLMQGADNOAPUFUIAAEUFARCZUIALASUKUIDAIFAUKUHADIAUATAUBUCUDT
    UE $.

  $( The gcd of a number with 1 is 1.  Theorem 1.4(d)1 in [ApostolNT] p. 16.
     (Contributed by Mario Carneiro, 19-Feb-2014.) $)
  gcd1 $p |- ( M e. ZZ -> ( M gcd 1 ) = 1 ) $=
    ( cz wcel c1 cgcd co cle wbr wceq cdvds wa 1z gcddvds mpan2 simprd cn wi wn
    cc0 wne ax-1ne0 simpr necon3ai ax-mp gcdn0cl nnzd 1nn dvdsle sylancl mpd wb
    nnle1eq1 syl mpbid ) ABCZADEFZDGHZUPDIZUOUPDJHZUQUOUPAJHZUSUODBCZUTUSKLADMN
    OUOUPBCDPCUSUQQUOUPUOVAUPPCZLUOVAKASIZDSIZKZRZVBDSTVFUAVEDSVCVDUBUCUDADUENN
    ZUFUGUPDUHUIUJUOVBUQURUKVGUPULUMUN $.

  $( The gcd of two integers is the same as that of their absolute values.
     (Contributed by Paul Chapman, 31-Mar-2011.) $)
  gcdabs $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
                 ( ( abs ` M ) gcd ( abs ` N ) ) = ( M gcd N ) ) $=
    ( cz wcel wa cabs cfv wceq cneg wo co cr zre absor anim12i oveq12 sylan9eqr
    cgcd ex gcdneg syl2an wi a1i neggcd znegcl sylan eqtrd ccased mpd ) ACDZBCD
    ZEZAFGZAHZUMAIZHZJZBFGZBHZURBIZHZJZEZUMURRKZABRKZHZUJALDZBLDZVCUKAMBMVGUQVH
    VBANBNOUAULUNUSUPVAVFUNUSEVFUBULUMAURBRPUCULUPUSEZVFVIULVDUOBRKZVEUMUOURBRP
    ABUDZQSULUNVAEZVFVLULVDAUTRKVEUMAURUTRPABTQSULUPVAEZVFVMULVDUOUTRKZVEUMUOUR
    UTRPULVNVJVEUJUOCDUKVNVJHAUEUOBTUFVKUGQSUHUI $.

  $( ` gcd ` of the absolute value of the first operator.  (Contributed by
     Scott Fenton, 2-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  gcdabs1 $p |- ( ( N e. ZZ /\ M e. ZZ ) ->
    ( ( abs ` N ) gcd M ) = ( N gcd M ) ) $=
    ( cz wcel wa cabs cfv wceq cgcd co wi oveq1 a1i neggcd eqeq1d syl5ibrcom wo
    cneg zre absord adantr mpjaod ) BCDZACDZEZBFGZBHZUFAIJZBAIJZHZUFBRZHZUGUJKU
    EUFBAILMUEUJULUKAIJZUIHBANULUHUMUIUFUKAILOPUCUGULQUDUCBBSTUAUB $.

  $( ` gcd ` of the absolute value of the second operator.  (Contributed by
     Scott Fenton, 2-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  gcdabs2 $p |- ( ( N e. ZZ /\ M e. ZZ ) ->
    ( N gcd ( abs ` M ) ) = ( N gcd M ) ) $=
    ( cz wcel wa cabs cfv cgcd wceq gcdabs1 ancoms zabscl gcdcom sylan2 3eqtr4d
    co ) BCDZACDZEAFGZBHPZABHPZBSHPZBAHPRQTUAIBAJKRQSCDUBTIALBSMNBAMO $.

  $( The gcd remains unchanged if one operand is replaced with its remainder
     modulo the other.  (Contributed by Paul Chapman, 31-Mar-2011.) $)
  modgcd $p |- ( ( M e. ZZ /\ N e. NN ) ->
                 ( ( M mod N ) gcd N ) = ( M gcd N ) ) $=
    ( cz wcel wa co cgcd cneg cmul caddc cr wceq cc adantl eqtrd oveq2d syl3anc
    eqtr4d gcdcom syl2anc cn cmo cdiv cfl cfv cmin crp zre modval syl2an adantr
    nnrp zcn nncn cc0 wne nnre nnne0 redivcl syl3an 3anidm23 flcld zcnd mulneg1
    mulcom negeqd ancoms 3adant1 mulcl negsub sylan2 3impb znegcld simpl zmodcl
    w3a nnz gcdaddm nn0zd 3eqtr3d ) ACDZBUADZEZBABUBFZGFZBAGFZWDBGFZABGFZWCWEBA
    ABUCFZUDUEZHZBIFZJFZGFZWFWCWDWMBGWCWDABWJIFZUFFZWMWAAKDZBUGDWDWPLWBAUHZBULA
    BUIUJWCAMDZBMDZWJMDZWMWPLWAWSWBAUMUKWBWTWABUNNWCWJWCWIWAWBWIKDZWAWQWBBKDWBB
    UOUPXBWRBUQBURABUSUTVAVBZVCWSWTXAVPZWMAWOHZJFZWPXDWLXEAJWTXAWLXELZWSXAWTXGX
    AWTEZWLWJBIFZHXEWJBVDXHXIWOWJBVEVFOVGVHPWSWTXAXFWPLZWTXAEWSWOMDXJBWJVIAWOVJ
    VKVLOQRPWCWKCDBCDZWAWFWNLWCWJXCVMWBXKWABVQNZWAWBVNZWKBAVRQRWCXKWDCDWEWGLXLW
    CWDABVOVSBWDSTWCXKWAWFWHLXLXMBASTVT $.

  $( The GCD of one and an integer is one.  (Contributed by Scott Fenton,
     17-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  1gcd $p |- ( M e. ZZ -> ( 1 gcd M ) = 1 ) $=
    ( cz wcel c1 cgcd co wceq 1z gcdcom mpan gcd1 eqtrd ) ABCZDAEFZADEFZDDBCMNO
    GHDAIJAKL $.

  $( The greatest common divisor of six and four is two.  To calculate this
     gcd, a simple form of Euclid's algorithm is used:
     ` ( 6 gcd 4 ) = ( ( 4 + 2 ) gcd 4 ) = ( 2 gcd 4 ) ` and
     ` ( 2 gcd 4 ) = ( 2 gcd ( 2 + 2 ) ) = ( 2 gcd 2 ) = 2 ` .  (Contributed by
     AV, 27-Aug-2020.) $)
  6gcd4e2 $p |- ( 6 gcd 4 ) = 2 $=
    ( c6 c4 cgcd co c2 caddc cz wcel wceq 6nn 4z gcdcom mp2an 4cn 2cn oveq2i 2z
    nnzi gcdadd eqtri 4p2e6 addcomli 2p2e4 cabs cfv gcdid ax-mp cc0 cle wbr 2re
    cr 0le2 absid 3eqtr3ri 3eqtr2i ) ABCDZBACDZBEBFDZCDZEAGHBGHZUQURIAJRKABLMUS
    ABCBEANOUAUBPEECDZBECDZEUTVBEEEFDZCDZVCEGHZVFVBVEIQQEESMVEEBCDZVCVDBECUCPVF
    VAVGVCIQKEBLMTTVBEUDUEZEVFVBVHIQEUFUGEULHUHEUIUJVHEIUKUMEUNMTVAVFVCUTIKQBES
    MUOUP $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  B&eacute;zout's identity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d s t u v x y z A $.  $d s t u v x y z B $.
    ${
      $d s t u v x y z G $.  $d s t u v M $.  $d s t u v x y z ph $.
      $d s t u v x y z C $.
      bezout.1 $e |- M = { z e. NN | E. x e. ZZ E. y e. ZZ
                           z = ( ( A x. x ) + ( B x. y ) ) } $.
      bezout.3 $e |- ( ph -> A e. ZZ ) $.
      bezout.4 $e |- ( ph -> B e. ZZ ) $.
      $( Lemma for ~ bezout .  (Contributed by Mario Carneiro, 15-Mar-2014.) $)
      bezoutlem1 $p |- ( ph -> ( A =/= 0 -> ( abs ` A ) e. M ) ) $=
        ( cmul co caddc wceq cz wrex cc0 wcel c1 cc cabs cfv cv wne fveq2 oveq1
        cn eqeq12d rexbidv cr zre 1z ax-1rid eqcomd oveq2 eqeq2d rspcev sylancr
        cneg eqeq1 syl5ibrcom neg1z recn mulm1d neg1cn mulcom eqtr3d mpjaod syl
        absor vtoclga wa adantr mul01d oveq2d zcn mulcl syl2an addid1d eqtrd 0z
        zcnd mpan syl6bir reximdva mpd wi nnabscl ex elrab2 simplbi2com sylsyld
        2rexbidv ) AEUAUBZEBUCZKLZFCUCZKLZMLZNZCOPZBOPZEQUDZWNUGRZWNGRZAWNWPNZB
        OPZXBAEORZXGIDUCZUAUBZXIWOKLZNZBOPZXGDEOXIENZXLXFBOXNXJWNXKWPXIEUAUEXIE
        WOKUFUHUIXIORXIUJRZXMXIUKXOXJXINZXMXJXIUSZNZXOXMXPXIXKNZBOPZXOSORXIXISK
        LZNZXTULXOYAXIXIUMUNXSYBBSOWOSNXKYAXIWOSXIKUOUPUQURXPXLXSBOXJXIXKUTUIVA
        XOXMXRXQXKNZBOPZXOSUSZORXQXIYEKLZNZYDVBXOYEXIKLZXQYFXOXIXIVCZVDXOYETRXI
        TRYHYFNVEYIYEXIVFURVGYCYGBYEOWOYENXKYFXQWOYEXIKUOUPUQURXRXLYCBOXJXQXKUT
        UIVAXIVJVHVIVKVIAXFXABOAWOORZVLZXFWNWPFQKLZMLZNZXAYKYMWPWNYKYMWPQMLWPYK
        YLQWPMYKFAFTRYJAFJWBVMVNVOYKWPAETRWOTRWPTRYJAEIWBWOVPEWOVQVRVSVTUPQORYN
        XAWAWTYNCQOWQQNZWSYMWNYOWRYLWPMWQQFKUOVOUPUQWCWDWEWFAXHXCXDWGIXHXCXDEWH
        WIVIXEXDXBXIWSNZCOPBOPXBDWNUGGXIWNNYPWTBCOOXIWNWSUTWMHWJWKWL $.

      bezout.2 $e |- G = inf ( M , RR , < ) $.
      bezout.5 $e |- ( ph -> -. ( A = 0 /\ B = 0 ) ) $.
      $( Lemma for ~ bezout .  (Contributed by Mario Carneiro, 15-Mar-2014.)
         ( Revised by AV, 30-Sep-2020.) $)
      bezoutlem2 $p |- ( ph -> G e. M ) $=
        ( wcel cn co wceq cz wrex cc0 cr clt cinf c1 cuz cfv wss c0 wne cv cmul
        caddc crab ssrab2 eqsstri nnuz sseqtri cabs bezoutlem1 ne0i syl6 rexcom
        eqid wa cc adantr zcn ad2antll mulcld ad2antrl addcomd eqeq2d 2rexbidva
        zcnd syl5bb rabbidv syl5eq eleq2d sylibrd wn wo sylibr mpjaod infssuzcl
        neorian sylancr syl5eqel ) AGHUAUBUCZHLAHUDUEUFZUGHUHUIZWHHNHOWIHDUJZEB
        UJZUKPZFCUJZUKPZULPZQZCRSBRSZDOUMZOIWRDOUNUOUPUQAETUIZWJFTUIZAWTEURUFZH
        NWJABCDEFHIJKUSHXBUTVAAXAFURUFZHNZWJAXAXCWKWOWMULPZQZBRSCRSZDOUMZNXDACB
        DFEXHXHVCKJUSAHXHXCAHWSXHIAWRXGDOWRWQBRSCRSAXGWQBCRRVBAWQXFCBRRAWNRNZWL
        RNZVDZVDZWPXEWKXLWMWOXLEWLAEVENXKAEJVNVFXJWLVENAXIWLVGVHVIXLFWNAFVENXKA
        FKVNVFXIWNVENAXJWNVGVJVIVKVLVMVOVPVQVRVSHXCUTVAAETQFTQVDVTWTXAWAMETFTWE
        WBWCHUDWDWFWG $.

      $d M x y $.
      $( Lemma for ~ bezout .  (Contributed by Mario Carneiro, 22-Feb-2014.)
         ( Revised by AV, 30-Sep-2020.) $)
      bezoutlem3 $p |- ( ph -> ( C e. M -> G || C ) ) $=
        ( wcel co wceq cmul caddc cz vs vt vu vv cdvds wbr wa cmo cc0 cn wn cle
        clt cr cv wrex simpr eqeq1 2rexbidv oveq2 oveq1d eqeq2d oveq2d cbvrex2v
        syl6bb elrab2 sylib simpld nnred bezoutlem2 syl5bb nnrpd adantr syl2anc
        crp modlt nnzd zmodcld nn0red ltnled mpbid cdiv cfl cfv simprd ad2antrr
        wi cmin simprll simprrl nndivred zmulcld zsubcld simprlr simprrr mulcld
        flcld cc addsub4d adddird mulassd oveq12d eqtrd 3eqtr4d rspc2ev syl3anc
        zcnd subdid oveq1 oveq12 sylan2 eqeq1d syl5ibrcom expcomd rexlimdvv mpd
        expr ex modval eqcomd simplbi2com syl cinf c1 cuz wss crab eqsstri nnuz
        ssrab2 sseqtri infssuzle mpan syl5eqbr syl6 mtod cn0 wo elnn0 ord wb
        dvdsval3 mpbird ) AGIOZHGUEUFZAUUDUGZUUEGHUHPZUIQZUUFUUGUJOZUKUUHUUFUUI
        HUUGULUFZUUFUUGHUMUFZUUJUKUUFGUNOZHVOOZUUKUUFGUUFGUJOZGEUAUOZRPZFUBUOZR
        PZSPZQZUBTUPUATUPZUUFUUDUUNUVAUGAUUDUQDUOZEBUOZRPZFCUOZRPZSPZQZCTUPBTUP
        ZUVADGUJIUVBGQZUVIGUVGQZCTUPBTUPUVAUVJUVHUVKBCTTUVBGUVGURUSUVKUUTGUUPUV
        FSPZQBCUAUBTTUVCUUOQZUVGUVLGUVMUVDUUPUVFSUVCUUOERUTVAVBUVEUUQQZUVLUUSGU
        VNUVFUURUUPSUVEUUQFRUTVCVBVDVEJVFVGZVHZVIZAUUMUUDAHAHUJOZHEUCUOZRPZFUDU
        OZRPZSPZQZUDTUPUCTUPZAHIOUVRUWEUGABCDEFHIJKLMNVJUVIUWEDHUJIUVIUVBUWCQZU
        DTUPUCTUPUVBHQZUWEUVHUWFUVBUVTUVFSPZQBCUCUDTTUVCUVSQZUVGUWHUVBUWIUVDUVT
        UVFSUVCUVSERUTVAVBUVEUWAQZUWHUWCUVBUWJUVFUWBUVTSUVEUWAFRUTVCVBVDUWGUWFU
        WDUCUDTTUVBHUWCURUSVKJVFVGZVHZVLVMZGHVPVNUUFUUGHUUFUUGUUFGHUUFGUVPVQZAU
        VRUUDUWLVMZVRZVSAHUNOUUDAHUWLVIVMVTWAUUFUUIUUGIOZUUJUUFUUGUVGQZCTUPBTUP
        ZUUIUWQWGUUFGHGHWBPZWCWDZRPZWHPZUVGQZCTUPBTUPZUWSUUFUVAUXEUUFUUNUVAUVOW
        EUUFUUTUXEUAUBTTUUFUUOTOZUUQTOZUGZUUTUXEWGZUUFUXHUGZUWEUXIAUWEUUDUXHAUV
        RUWEUWKWEWFUXJUWDUXIUCUDTTUUFUXHUVSTOZUWATOZUGZUWDUXIWGUUFUXHUXMUGZUGZU
        UTUWDUXEUXOUXEUUTUWDUGZUUSUWCUXARPZWHPZUVGQZCTUPBTUPZUXOUUOUVSUXARPZWHP
        ZTOUUQUWAUXARPZWHPZTOUXREUYBRPZFUYDRPZSPZQZUXTUXOUUOUYAUUFUXFUXGUXMWIZU
        XOUVSUXAUUFUXHUXKUXLWJZUUFUXATOUXNUUFUWTUUFGHUVQUWOWKWQZVMZWLZWMUXOUUQU
        YCUUFUXFUXGUXMWNZUXOUWAUXAUUFUXHUXKUXLWOZUYLWLZWMUXOUUSEUYARPZFUYCRPZSP
        ZWHPUUPUYQWHPZUURUYRWHPZSPUXRUYGUXOUUPUURUYQUYRUXOEUUOAEWROUUDUXNAEKXGW
        FZUXOUUOUYIXGZWPUXOFUUQAFWROUUDUXNAFLXGWFZUXOUUQUYNXGZWPUXOEUYAVUBUXOUY
        AUYMXGZWPUXOFUYCVUDUXOUYCUYPXGZWPWSUXOUXQUYSUUSWHUXOUXQUVTUXARPZUWBUXAR
        PZSPUYSUXOUVTUWBUXAUXOEUVSVUBUXOUVSUYJXGZWPUXOFUWAVUDUXOUWAUYOXGZWPUUFU
        XAWROUXNUUFUXAUYKXGVMZWTUXOVUHUYQVUIUYRSUXOEUVSUXAVUBVUJVULXAUXOFUWAUXA
        VUDVUKVULXAXBXCVCUXOUYEUYTUYFVUASUXOEUUOUYAVUBVUCVUFXHUXOFUUQUYCVUDVUEV
        UGXHXBXDUXSUYHUXRUYEUVFSPZQBCUYBUYDTTUVCUYBQZUVGVUMUXRVUNUVDUYEUVFSUVCU
        YBERUTVAVBUVEUYDQZVUMUYGUXRVUOUVFUYFUYESUVEUYDFRUTVCVBXEXFUXPUXDUXSBCTT
        UXPUXCUXRUVGUWDUUTUXBUXQQUXCUXRQHUWCUXARXIGUUSUXBUXQWHXJXKXLUSXMXNXQXOX
        PXRXOXPUUFUXDUWRBCTTUUFUXCUUGUVGUUFUUGUXCUUFUULUUMUUGUXCQUVQUWMGHXSVNXT
        XLUSWAUWQUUIUWSUVIUWSDUUGUJIUVBUUGQUVHUWRBCTTUVBUUGUVGURUSJVFYAYBUWQHIU
        NUMYCZUUGULMIYDYEWDZYFUWQVUPUUGULUFIUJVUQIUVIDUJYGUJJUVIDUJYJYHYIYKUUGI
        YDYLYMYNYOYPUUFUUIUUHUUFUUGYQOUUIUUHYRUWPUUGYSVGYTXPUUFUVRGTOUUEUUHUUAU
        WOUWNHGUUBVNUUCXR $.

      $( Lemma for ~ bezout .  (Contributed by Mario Carneiro, 22-Feb-2014.) $)
      bezoutlem4 $p |- ( ph -> ( A gcd B ) e. M ) $=
        ( co wbr cdvds cmul cz wrex wcel vs vt vu cgcd wceq cle gcddvds syl2anc
        vv cv wa simpld wb gcdcld nn0zd divides mpbid simprd reeanv caddc wi cn
        bezoutlem2 weq oveq2 oveq1d eqeq2d oveq2d cbvrex2v eqeq1 2rexbidv sylib
        syl5bb simprrl simprll zmulcld simprrr simprlr zaddcld dvdsmul2 adddird
        elrab2 adantr mul32d oveq12d eqtrd breqtrd oveq1 oveqan12d breq2d breq2
        zcnd syl5ibcom imbi2d syl5ibrcom com23 rexlimdvva mpd rexlimdvv syl5bir
        expr mp2and dvdsle cc0 wne cabs cfv bezoutlem1 bezoutlem3 syld dvdsabsb
        nnzd sylibrd imp dvds0 syl pm2.61ne crab eqid rexcom cc ad2antll mulcld
        zcn ad2antrl addcomd 2rexbidva rabbidv syl5eq eleq2d dvdslegcd syl31anc
        wn nn0red nnred letri3d mpbir2and eqeltrd ) AEFUDNZGHAYSGUEYSGUFOZGYSUF
        OZAYSGPOZYTAUAUJZYSQNZEUEZUARSZUBUJZYSQNZFUEZUBRSZUUBAYSEPOZUUFAUUKYSFP
        OZAERTZFRTZUUKUULUKJKEFUGUHZULAYSRTZUUMUUKUUFUMAYSAEFJKUNZUOZJUAYSEUPUH
        UQAUULUUJAUUKUULUUOURAUUPUUNUULUUJUMUURKUBYSFUPUHUQUUFUUJUKUUEUUIUKZUBR
        SUARSAUUBUUEUUIUAUBRRUSAUUSUUBUAUBRRAGEUCUJZQNZFUIUJZQNZUTNZUEZUIRSUCRS
        ZUUCRTZUUGRTZUKZUUSUUBVAZVAZAGVBTZUVFAGHTUVLUVFUKABCDEFGHIJKLMVCZDUJZEB
        UJZQNZFCUJZQNZUTNZUEZCRSBRSZUVFDGVBHUWAUVNUVDUEZUIRSUCRSUVNGUEZUVFUVTUW
        BUVNUVAUVRUTNZUEBCUCUIRRBUCVDZUVSUWDUVNUWEUVPUVAUVRUTUVOUUTEQVEVFVGCUIV
        DZUWDUVDUVNUWFUVRUVCUVAUTUVQUVBFQVEVHVGVIUWCUWBUVEUCUIRRUVNGUVDVJVKVMIW
        BVLZURAUVEUVKUCUIRRAUUTRTZUVBRTZUKZUKUVIUVEUVJAUWJUVIUVEUVJVAAUWJUVIUKZ
        UKZUVJUVEUUSYSUVDPOZVAUWLYSUUDUUTQNZUUHUVBQNZUTNZPOUUSUWMUWLYSUUCUUTQNZ
        UUGUVBQNZUTNZYSQNZUWPPUWLUWSRTUUPYSUWTPOUWLUWQUWRUWLUUCUUTAUWJUVGUVHVNZ
        AUWHUWIUVIVOZVPZUWLUUGUVBAUWJUVGUVHVQZAUWHUWIUVIVRZVPZVSAUUPUWKUURWCZUW
        SYSVTUHUWLUWTUWQYSQNZUWRYSQNZUTNUWPUWLUWQUWRYSUWLUWQUXCWLUWLUWRUXFWLUWL
        YSUXGWLZWAUWLUXHUWNUXIUWOUTUWLUUCUUTYSUWLUUCUXAWLUWLUUTUXBWLUXJWDUWLUUG
        UVBYSUWLUUGUXDWLUWLUVBUXEWLUXJWDWEWFWGUUSUWPUVDYSPUUEUUIUWNUVAUWOUVCUTU
        UDEUUTQWHUUHFUVBQWHWIWJWMUVEUUBUWMUUSGUVDYSPWKWNWOXAWPWQWRWSWTXBAUUPUVL
        UUBYTVAUURAUVLUVFUWGULZYSGXCUHWRAGEPOZGFPOZUUAAUXLGXDPOZEXDEXDGPWKAEXDX
        EZUXLAUXOGEXFXGZPOZUXLAUXOUXPHTUXQABCDEFHIJKXHABCDEFUXPGHIJKLMXIXJAGRTZ
        UUMUXLUXQUMAGUXKXLZJGEXKUHXMXNAUXRUXNUXSGXOXPZXQAUXMUXNFXDFXDGPWKAFXDXE
        ZUXMAUYAGFXFXGZPOZUXMAUYAUYBHTZUYCAUYAUYBUVNUVRUVPUTNZUEZBRSCRSZDVBXRZT
        UYDACBDFEUYHUYHXSKJXHAHUYHUYBAHUWADVBXRUYHIAUWAUYGDVBUWAUVTBRSCRSAUYGUV
        TBCRRXTAUVTUYFCBRRAUVQRTZUVORTZUKZUKZUVSUYEUVNUYLUVPUVRUYLEUVOAEYATUYKA
        EJWLWCUYJUVOYATAUYIUVOYDYBYCUYLFUVQAFYATUYKAFKWLWCUYIUVQYATAUYJUVQYDYEY
        CYFVGYGVMYHYIYJXMABCDEFUYBGHIJKLMXIXJAUXRUUNUXMUYCUMUXSKGFXKUHXMXNUXTXQ
        AUXRUUMUUNEXDUEFXDUEUKYMUXLUXMUKUUAVAUXSJKMGEFYKYLXBAYSGAYSUUQYNAGUXKYO
        YPYQUVMYR $.
    $}

    $( B&eacute;zout's identity:  For any integers ` A ` and ` B ` , there are
       integers ` x , y ` such that ` ( A gcd B ) = A x. x + B x. y ` .  This
       is Metamath 100 proof #60.  (Contributed by Mario Carneiro,
       22-Feb-2014.) $)
    bezout $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
           E. x e. ZZ E. y e. ZZ ( A gcd B ) = ( ( A x. x ) + ( B x. y ) ) ) $=
      ( vz vu vv vt cz wcel cc0 wceq co cv cmul caddc wrex cn oveq2 eqeq2d cgcd
      wa wn crab cr clt cinf eqeq1 2rexbidv oveq1d oveq2d syl6bb cbvrabv simpll
      cbvrex2v simplr eqid simpr bezoutlem4 elrab simprbi syl ex 0z 00id mul01i
      0cn oveq12i gcd0val 3eqtr4ri rspc2ev mp3an oveq12 oveq1 oveqan12d eqeq12d
      mpbiri pm2.61d2 ) CIJZDIJZUBZCKLZDKLZUBZCDUAMZCANZOMZDBNZOMZPMZLZBIQAIQZW
      AWDUCZWLWAWMUBZWEENZWJLZBIQAIQZERUDZJZWLWNFGHCDWRUEUFUGZWRWQHNZCFNZOMZDGN
      ZOMZPMZLZGIQFIQZEHRWOXALZWQXAWJLZBIQAIQXHXIWPXJABIIWOXAWJUHUIXJXGXAXCWIPM
      ZLABFGIIWFXBLZWJXKXAXLWGXCWIPWFXBCOSUJTWHXDLZXKXFXAXMWIXEXCPWHXDDOSUKTUOU
      LUMVSVTWMUNVSVTWMUPWTUQWAWMURUSWSWERJWLWQWLEWERWOWELWPWKABIIWOWEWJUHUIUTV
      AVBVCWDWLKKUAMZKWFOMZKWHOMZPMZLZBIQAIQZKIJZXTXNKKOMZYAPMZLZXSVDVDKKPMKYBX
      NVEYAKYAKPKVGVFZYDVHVIVJXRYCXNYAXPPMZLABKKIIWFKLZXQYEXNYFXOYAXPPWFKKOSUJT
      WHKLZYEYBXNYGXPYAYAPWHKKOSUKTVKVLWDWKXRABIIWDWEXNWJXQCKDKUAVMWBWCWGXOWIXP
      PCKWFOVNDKWHOVNVOVPUIVQVR $.
  $}

  ${
    $d K x y $.  $d M x y $.  $d N x y $.
    $( An integer which divides each of two others also divides their gcd.
       (Contributed by Paul Chapman, 22-Jun-2011.)  (Revised by Mario Carneiro,
       30-May-2014.) $)
    dvdsgcd $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
                     ( ( K || M /\ K || N ) -> K || ( M gcd N ) ) ) $=
      ( vx vy cz wcel w3a cdvds wbr wa co cv cmul caddc wceq wrex wi cc zcn ex
      bezout 3adant1 dvds2ln 3impia simp3l simp12 mulcom syl2an syl2anc oveq12d
      cgcd 3coml simp3r simp13 breqtrd breq2 syl5ibrcom 3expia rexlimdvv mpid )
      AFGZBFGZCFGZHZABIJACIJKZBCULLZBDMZNLZCEMZNLZOLZPZEFQDFQZAVGIJZVCVDVNVBDEB
      CUBUCVEVFVNVORVEVFKVMVODEFFVEVFVHFGZVJFGZKZVMVORVEVFVRHZVOVMAVLIJVSAVHBNL
      ZVJCNLZOLZVLIVRVEVFAWBIJZVRVEVFWCVHVJABCUDUEUMVSVTVIWAVKOVSVPVCVTVIPZVEVF
      VPVQUFVBVCVDVFVRUGVPVHSGBSGWDVCVHTBTVHBUHUIUJVSVQVDWAVKPZVEVFVPVQUNVBVCVD
      VFVRUOVQVJSGCSGWEVDVJTCTVJCUHUIUJUKUPVGVLAIUQURUSUTUAVA $.
  $}

  $( Biconditional form of ~ dvdsgcd .  (Contributed by Scott Fenton,
     2-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  dvdsgcdb $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
    ( ( K || M /\ K || N ) <-> K || ( M gcd N ) ) ) $=
    ( cz wcel w3a cdvds wbr wa co dvdsgcd gcddvds simpld 3adant1 wi simp1 gcdcl
    cgcd dvdstr mpan2d nn0zd simp2 syl3anc simprd syld3an2 jcad impbid ) ADEZBD
    EZCDEZFZABGHZACGHZIABCRJZGHZABCKUKUOULUMUKUOUNBGHZULUIUJUPUHUIUJIZUPUNCGHZB
    CLZMNUKUHUNDEZUIUOUPIULOUHUIUJPUIUJUTUHUQUNBCQUANZUHUIUJUBAUNBSUCTUKUOURUMU
    IUJURUHUQUPURUSUDNUHUTUIUJUOURIUMOVAAUNCSUETUFUG $.

  ${
    $d D e n y z $.  $d M e n y z $.  $d N e n y z $.
    $( Alternate definition of the ` gcd ` operator, see definition in
       [ApostolNT] p. 15.  (Contributed by AV, 8-Aug-2021.) $)
    dfgcd2 $p |- ( ( M e. ZZ /\ N e. ZZ )
                   -> ( D = ( M gcd N ) <-> ( 0 <_ D /\ ( D || M /\ D || N )
                      /\ A. e e. ZZ ( ( e || M /\ e || N ) -> e || D ) ) ) ) $=
      ( vn cz wcel wa cc0 wbr cdvds wi adantr wb breq2 breq1 anbi12d adantl clt
      wceq vy vz cgcd co cle cv wral gcdcl nn0ge0d gcddvds 3anass ancom dvdsgcd
      w3a bitri sylbir ralrimiva 3jca imbi2d ralbidv 3anbi123d mpbird crab csup
      cr cif gcdval iftrue bi2anan9 imbi1d 3anbi23d dvdszrcl dvds0 jca ralbidva
      pm5.5 0z rspcv ax-mp 0dvds biimpd eqcom syl6ibr syl5 sylbid ex com12 3imp
      syl syl6bi adantld imp eqtrd wn iffalse wor ltso a1i simpld zred 3ad2ant2
      ad2antll elrab imbi12d com23 ad2antrr cn0 elnn0z simplbi2 impcom cn elnn0
      simp-4l wo 2a1 anbi2d ianor pm2.24 mpcom sylbi dvdsle syl2anc exp31 com14
      jaoi ad2antlr lenlt syl2anr mpbid mpan2d com13 syld expimpd sylibr simprr
      zre ancri rspcedvd eqsupd pm2.61ian eqtr2d impbida ) CFGZDFGZHZACDUCUDZTZ
      IAUEJZACKJZADKJZHZBUFZCKJZUULDKJZHZUULAKJZLZBFUGZUNZUUEUUGHUUSIUUFUEJZUUF
      CKJZUUFDKJZHZUUOUULUUFKJZLZBFUGZUNZUUEUVGUUGUUEUUTUVCUVFUUEUUFCDUHUICDUJU
      UEUVEBFUUEUULFGZHZUVHUUCUUDUNZUVEUVJUVHUUEHUVIUVHUUCUUDUKUVHUUEULUOUULCDU
      MUPUQURMUUGUUSUVGNUUEUUGUUHUUTUUKUVCUURUVFAUUFIUEOUUGUUIUVAUUJUVBAUUFCKPA
      UUFDKPQUUGUUQUVEBFUUGUUPUVDUUOAUUFUULKOUSUTVARVBUUEUUSHZUUFCITZDITZHZIEUF
      ZCKJZUVODKJZHZEFVCZVESVDZVFZAUUEUUFUWATUUSECDVGMUVNUVKUWAATUVNUVKHUWAIAUV
      NUWAITUVKUVNIUVTVHMUVNUVKIATZUVNUUSUWBUUEUVNUUSUUHAIKJZUWCHZUULIKJZUWEHZU
      UPLZBFUGZUNUWBUVNUUKUWDUURUWHUUHUVLUUIUWCUVMUUJUWCCIAKODIAKOVIUVNUUQUWGBF
      UVNUUOUWFUUPUVLUUMUWEUVMUUNUWECIUULKODIUULKOVIVJUTVKUUHUWDUWHUWBUWDUUHUWH
      UWBLZUWCUUHUWILZUWCUWCAFGZIFGZHUWJAIVLUWKUWJUWLUWKUUHUWIUWKUUHHZUWHUUPBFU
      GZUWBUWMUWGUUPBFUWMUVHHUWFUWGUUPNUVHUWFUWMUVHUWEUWEUULVMZUWOVNRUWFUUPVPWI
      VOUWKUWNUWBLUUHUWNIAKJZUWKUWBUWLUWNUWPLVQUUPUWPBIFUULIAKPVRVSUWKUWPAITZUW
      BUWKUWPUWQAVTWAIAWBWCWDMWEWFMWIMWGWHWJWKWLWMUVNWNZUVKHZUWAUVTAUWRUWAUVTTU
      VKUVNIUVTWOMUWSUAUBVEUVSASVESWPUWSWQWRUUSAVEGZUWRUUEUUKUUHUWTUURUUIUWTUUJ
      UUIAUUIUWKUUCACVLZWSZWTMZXAXBUAUFZUVSGZUWSAUXDSJWNZUXEUXDFGZUXDCKJZUXDDKJ
      ZHZHZUWSUXFLUVRUXJEUXDFUVOUXDTUVPUXHUVQUXIUVOUXDCKPUVOUXDDKPQXCUXKUWRUVKU
      XFUXKUWRHZUUEUUSUXFUUSUXLUUEHZUXFUUHUUKUURUXMUXFLZUUHUUKUURUXNLUXMUURUUHU
      UKHZUXFUXMUURUXDAKJZUXOUXFLZUXKUURUXPLZUWRUUEUXGUXJUXRUXGUURUXJUXPUUQUXJU
      XPLBUXDFUULUXDTZUUOUXJUUPUXPUXSUUMUXHUUNUXIUULUXDCKPUULUXDDKPQUULUXDAKPXD
      VRXEWLXFUXLUXPUXQLUUEUXOUXPUXLUXFUXOUXPAXGGZUXLUXFLUUKUUHUXTUUIUUHUXTLZUU
      JUUIUWKUUCHUYAUXAUWKUYAUUCUXTUWKUUHAXHXIMWIMXJUXOUXPUXTHZUXLUXFUXOUYBHZUX
      LHUXDAUEJZUXFUYCUXLUYDUYBUXOUXLUYDLZUXPUXTUXOUYELUXLUXTUXOUXPUYDUXLUXTUXO
      UXPUYDLZUXLUXTHZUXOHUXGAXKGZUYFUXGUXJUWRUXTUXOXMUYGUXOUYHUXTUXLUXOUYHLZUX
      TUYHUWQXNUXLUYILZAXLUYHUYJUWQUYHUXLUXOXOUWQUXLUYIUWQUXLHUXOUUHICKJZIDKJZH
      ZHZUYHUWQUXOUYNNUXLUWQUUKUYMUUHUWQUUIUYKUUJUYLAICKPAIDKPQXPMUWRUYNUYHLUWQ
      UXKUWRUYMUYHUUHUWRUVLWNZUVMWNZXNUYMUYHLZUVLUVMXQUYOUYQUYPUYMUYOUYHUYKUYOU
      YHLZUYLUWLUUCHUYKUYRICVLUUCUYKUYRLUWLUUCUYKUVLUYRCVTUVLUYHXRWJRXSMWGUYMUY
      PUYHUYLUYPUYHLZUYKUWLUUDHUYLUYSIDVLUUDUYLUYSLUWLUUDUYLUVMUYSDVTUVMUYHXRWJ
      RXSRWGYEXTWKXBWEWFYEXTXJWLUXDAYAYBYCYDWLXJWLUXLUXDVEGZUWTUYDUXFNUYCUXGUYT
      UXJUWRUXDYPXFUUKUWTUUHUYBUXCYFUXDAYGYHYIYCYJYKMYLYKWFWHWGYMYMXTXJUWSUYTUX
      DASJZHZHZUXDUBUFZSJZVUAUBAUVSVUCUWKUUKHZAUVSGUWSVUFVUBUUSVUFUWRUUEUUKUUHV
      UFUURUUKUWKUUIUWKUUJUXBMYQXAXBMUVRUUKEAFUVOATUVPUUIUVQUUJUVOACKPUVOADKPQX
      CYNVUDATVUEVUANVUCVUDAUXDSORUWSUYTVUAYOYRYSWMYTUUAUUB $.
  $}

  ${
    $d N x $.  $d M x $.  $d P x $.
    $( Associative law for ` gcd ` operator.  Theorem 1.4(b) in [ApostolNT]
       p. 16.  (Contributed by Scott Fenton, 2-Apr-2014.)  (Revised by Mario
       Carneiro, 19-Apr-2014.) $)
    gcdass $p |- ( ( N e. ZZ /\ M e. ZZ /\ P e. ZZ ) ->
    ( ( N gcd M ) gcd P ) = ( N gcd ( M gcd P ) ) ) $=
      ( vx cz wcel cc0 wceq wa cdvds wbr crab cr clt csup cif cgcd co anass wb
      w3a cv a1i rabbiia supeq1i ifbieq2i cn0 gcdcl 3adant3 nn0zd simp3 syl2anc
      gcdval gcdeq0 anbi1d bicomd simpr simpl1 simpl2 dvdsgcdb syl3anc rabbidva
      supeq1d ifbieq2d eqtr4d simp1 3adant1 anbi2d simpl3 3eqtr4a ) CEFZBEFZAEF
      ZUAZCGHZBGHZIZAGHZIZGDUBZCJKZVTBJKZIZVTAJKZIZDELZMNOZPZVOVPVRIZIZGWAWBWDI
      ZIZDELZMNOZPZCBQRZAQRZCBAQRZQRZVSWJWGWNGVOVPVRSMWFWMNWEWLDEWEWLTVTEFZWAWB
      WDSUCUDUEUFVNWQWPGHZVRIZGVTWPJKZWDIZDELZMNOZPZWHVNWPEFVMWQXGHVNWPVKVLWPUG
      FVMCBUHUIUJVKVLVMUKDWPAUMULVNVSXBWGXFGVNXBVSVNXAVQVRVKVLXAVQTVMCBUNUIUOUP
      VNMWFXENVNWEXDDEVNWTIZWCXCWDXHWTVKVLWCXCTVNWTUQZVKVLVMWTURVKVLVMWTUSZVTCB
      UTVAUOVBVCVDVEVNWSVOWRGHZIZGWAVTWRJKZIZDELZMNOZPZWOVNVKWREFWSXQHVKVLVMVFV
      NWRVLVMWRUGFVKBAUHVGUJDCWRUMULVNWJXLWNXPGVNXLWJVNXKWIVOVLVMXKWITVKBAUNVGV
      HUPVNMWMXONVNWLXNDEXHWKXMWAXHWTVLVMWKXMTXIXJVKVLVMWTVIVTBAUTVAVHVBVCVDVEV
      J $.
  $}

  $( Distribute multiplication by a nonnegative integer over gcd.  (Contributed
     by Paul Chapman, 22-Jun-2011.)  (Proof shortened by Mario Carneiro,
     30-May-2014.) $)
  mulgcd $p |- ( ( K e. NN0 /\ M e. ZZ /\ N e. ZZ ) ->
                 ( ( K x. M ) gcd ( K x. N ) ) = ( K x. ( M gcd N ) ) ) $=
    ( cn0 wcel cz cmul co cgcd cc0 wa cdvds wbr 3adant1 syl2anc dvdsgcd syl3anc
    wi wb mp2and wceq cn elnn0 w3a simp1 nnzd simp2 zmulcld simp3 gcdcld nnnn0d
    wo gcdcl nn0mulcld cdiv nn0cnd nncnd nnne0d divcan2d gcddvds simpld eqbrtrd
    wne dvdsmul1 nn0zd dvdsval2 mpbid dvdscmulr syl112anc dvdscmul mpd eqbrtrrd
    simprd dvdseq syl22anc 3expib mul02d gcd0val syl6reqr oveq1d 3ad2ant2 eqtrd
    cc zcn 3ad2ant3 oveq12d 3eqtr4d jaoi sylbi 3impib ) ADEZBFEZCFEZABGHZACGHZI
    HZABCIHZGHZUAZWKAUBEZAJUAZULWLWMKWSRZAUCWTXBXAWTWLWMWSWTWLWMUDZWPDEWRDEWPWR
    LMWRWPLMZWSXCWNWOXCABXCAWTWLWMUEZUFZWTWLWMUGZUHZXCACXFWTWLWMUIZUHZUJZXCAWQX
    CAXEUKWLWMWQDEZWTBCUMZNZUNZXCAWPAUOHZGHZWPWRLXCWPAXCWPXKUPXCAXEUQXCAXEURZUS
    ZXCXPWQLMZXQWRLMZXCXPBLMZXPCLMZXTXCXQWNLMZYBXCXQWPWNLXSXCWPWNLMZWPWOLMZXCWN
    FEZWOFEZYEYFKXHXJWNWOUTOZVAVBXCXPFEZWLAFEZAJVCZYDYBSXCAWPLMZYJXCAWNLMZAWOLM
    ZYMXCYKWLYNXFXGABVDOXCYKWMYOXFXIACVDOXCYKYGYHYNYOKYMRXFXHXJAWNWOPQTXCYKYLWP
    FEYMYJSXFXRXCWPXKVEAWPVFQVGZXGXFXRAXPBVHVIVGXCXQWOLMZYCXCXQWPWOLXSXCYEYFYIV
    MVBXCYJWMYKYLYQYCSYPXIXFXRAXPCVHVIVGXCYJWLWMYBYCKXTRYPXGXIXPBCPQTXCYJWQFEZY
    KXTYARYPXCWQXNVEZXFAXPWQVJQVKVLXCWRWNLMZWRWOLMZXDXCWQBLMZYTXCUUBWQCLMZWLWMU
    UBUUCKWTBCUTNZVAXCYRWLYKUUBYTRYSXGXFAWQBVJQVKXCUUCUUAXCUUBUUCUUDVMXCYRWMYKU
    UCUUARYSXIXFAWQCVJQVKXCWRFEYGYHYTUUAKXDRXCWRXOVEXHXJWRWNWOPQTWPWRVNVOVPXAWL
    WMWSXAWLWMUDZJJIHZJWQGHZWPWRUUEUUGJUUFUUEWQUUEWQWLWMXLXAXMNUPVQVRVSUUEWNJWO
    JIUUEWNJBGHJUUEAJBGXAWLWMUEZVTUUEBWLXABWCEWMBWDWAVQWBUUEWOJCGHJUUEAJCGUUHVT
    UUECWMXACWCEWLCWDWEVQWBWFUUEAJWQGUUHVTWGVPWHWIWJ $.

  $( Distribute absolute value of multiplication over gcd.  Theorem 1.4(c) in
     [ApostolNT] p. 16.  (Contributed by Paul Chapman, 22-Jun-2011.) $)
  absmulgcd $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
      ( ( K x. M ) gcd ( K x. N ) ) = ( abs ` ( K x. ( M gcd N ) ) ) ) $=
    ( cz wcel cabs cfv cgcd co cmul wceq wa cn0 oveq2d 3adant1 cc absmul syl2an
    zcn 3impdi w3a gcdcl nn0re nn0ge0 absidd syl nn0cnd oveqan12d syl3an zmulcl
    3impb gcdabs nn0abscl zabscl mulgcd 3eqtr3d eqtrd 3eqtr4rd ) ADEZBDEZCDEZUA
    ZAFGZBCHIZFGZJIZVCVDJIZAVDJIFGZABJIZACJIZHIZUTVAVFVGKUSUTVALZVEVDVCJVLVDMEZ
    VEVDKBCUBZVMVDVDUCVDUDUEUFNOUSUTVAVHVFKZUSAPEZVDPEVOVLASZVLVDVNUGAVDQRUKVBV
    KVCBFGZCFGZHIZJIZVGVBVIFGZVJFGZHIZVCVRJIZVCVSJIZHIZVKWAUSVPUTBPEZVACPEZWDWG
    KZVQBSCSVPWHWIWJVPWHLVPWILWBWEWCWFHABQACQUHTUIUSUTVAWDVKKZUSUTLVIDEVJDEWKUS
    VALABUJACUJVIVJULRTUSVCMEUTVRDEVAVSDEWGWAKAUMBUNCUNVCVRVSUOUIUPVBVTVDVCJUTV
    AVTVDKUSBCULONUQUR $.

  $( Reverse distribution law for the ` gcd ` operator.  (Contributed by Scott
     Fenton, 2-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  mulgcdr $p |- ( ( A e. ZZ /\ B e. ZZ /\ C e. NN0 ) ->
    ( ( A x. C ) gcd ( B x. C ) ) = ( ( A gcd B ) x. C ) ) $=
    ( cz wcel cn0 w3a cmul co cgcd wceq mulgcd 3coml cc 3ad2ant1 nn0cn 3ad2ant3
    zcn mulcomd 3ad2ant2 oveq12d gcdcl 3adant3 nn0cnd 3eqtr4d ) ADEZBDEZCFEZGZC
    AHIZCBHIZJIZCABJIZHIZACHIZBCHIZJIUMCHIUHUFUGULUNKCABLMUIUOUJUPUKJUIACUFUGAN
    EUHAROUHUFCNEUGCPQZSUIBCUGUFBNEUHBRTUQSUAUIUMCUIUMUFUGUMFEUHABUBUCUDUQSUE
    $.

  ${
    $d A a b $.  $d B a b $.  $d C a b $.
    $( Division law for GCD. (Contributed by Scott Fenton, 18-Apr-2014.)
       (Revised by Mario Carneiro, 19-Apr-2014.) $)
    gcddiv $p |- ( ( ( A e. ZZ /\ B e. ZZ /\ C e. NN )
       /\ ( C || A /\ C || B ) ) ->
       ( ( A gcd B ) / C ) = ( ( A / C ) gcd ( B / C ) ) ) $=
      ( va vb cz wcel w3a cdvds wbr wa cgcd co cdiv wceq cmul 3ad2ant3 divcan4d
      wrex cc cn cv wb simp1 divides syl2anc simp2 anbi12d reeanv syl6bbr gcdcl
      nnz wi nn0cnd 3adant3 nncn cc0 wne nnne0 cn0 nnnn0 mulgcdr syl3an3 oveq1d
      3ad2ant1 3ad2ant2 oveq12d 3eqtr4d oveq1 oveqan12d eqeq12d syl5ibcom 3expa
      zcn oveq12 expcom rexlimdvv sylbid imp ) AFGZBFGZCUAGZHZCAIJZCBIJZKZABLMZ
      CNMZACNMZBCNMZLMZOZWCWFDUBZCPMZAOZEUBZCPMZBOZKZEFSDFSZWLWCWFWODFSZWREFSZK
      WTWCWDXAWEXBWCCFGZVTWDXAUCWBVTXCWACULQZVTWAWBUDDCAUEUFWCXCWAWEXBUCXDVTWAW
      BUGECBUEUFUHWOWRDEFFUIUJWBVTWTWLUMWAWBWSWLDEFFWMFGZWPFGZKZWBWSWLUMZXEXFWB
      XHXEXFWBHZWNWQLMZCNMZWNCNMZWQCNMZLMZOWSWLXIWMWPLMZCPMZCNMXOXKXNXIXOCXEXFX
      OTGWBXGXOWMWPUKUNUOWBXECTGXFCUPQZWBXECUQURXFCUSQZRXIXJXPCNWBXEXFCUTGXJXPO
      CVAWMWPCVBVCVDXIXLWMXMWPLXIWMCXEXFWMTGWBWMVNVEXQXRRXIWPCXFXEWPTGWBWPVNVFX
      QXRRVGVHWSXKWHXNWKWSXJWGCNWNAWQBLVOVDWOWRXLWIXMWJLWNACNVIWQBCNVIVJVKVLVMV
      PVQQVRVS $.
  $}

  ${
    $d M k n $.  $d N k n $.
    $( The GCD of a multiple of a number is the number itself.  (Contributed by
       Scott Fenton, 12-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    gcdmultiple $p |- ( ( M e. NN /\ N e. NN ) -> ( M gcd ( M x. N ) ) = M ) $=
      ( vk vn cn wcel cmul co cgcd wi c1 caddc oveq2 oveq2d eqeq1d imbi2d eqtrd
      wceq cz cc cv weq nncn mulid1d cabs cfv nnz gcdid syl nnre nn0ge0d absidd
      nnnn0 wa adantr zmulcl syl2an gcdaddm mp3an1 syl2anc ax-1cn mp3an3 mulcom
      1z adddi mpan2 eqtr4d biimpd expcom a2d nnind impcom ) BEFAEFZAABGHZIHZAR
      ZVMAACUAZGHZIHZARZJVMAAKGHZIHZARZJVMAADUAZGHZIHZARZJVMAAWDKLHZGHZIHZARZJV
      MVPJCDBVQKRZVTWCVMWLVSWBAWLVRWAAIVQKAGMNOPCDUBZVTWGVMWMVSWFAWMVRWEAIVQWDA
      GMNOPVQWHRZVTWKVMWNVSWJAWNVRWIAIVQWHAGMNOPVQBRZVTVPVMWOVSVOAWOVRVNAIVQBAG
      MNOPVMWBAAIHZAVMWAAAIVMAAUCZUDNVMWPAUEUFZAVMASFZWPWRRAUGZAUHUIVMAAUJVMAAU
      MUKULQQWDEFZVMWGWKVMXAWGWKJVMXAUNZWGWKXBWFWJAXBWFAWEKAGHZLHZIHZWJXBWSWESF
      ZWFXERZVMWSXAWTUOVMWSWDSFXFXAWTWDUGAWDUPUQKSFWSXFXGVDKAWEURUSUTXBWIXDAIVM
      ATFZWDTFZWIXDRXAWQWDUCXHXIUNZWIWEWALHZXDXHXIKTFZWIXKRVAAWDKVEVBXJWAXCWELX
      HWAXCRZXIXHXLXMVAAKVCVFUONQUQNVGOVHVIVJVKVL $.
  $}

  $( Extend ~ gcdmultiple so ` N ` can be an integer.  (Contributed by Scott
     Fenton, 18-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  gcdmultiplez $p |- ( ( M e. NN /\ N e. ZZ ) -> ( M gcd ( M x. N ) ) = M ) $=
    ( cn wcel cz wa cmul co cgcd wceq cc0 oveq2 oveq2d eqeq1d cabs cfv cc eqtrd
    adantr syl wne nncn zcn absmul syl2an nnre nnnn0 nn0ge0d absidd oveq1d nnzd
    simpll nnz zmulcl sylan gcdabs2 syl2anc nnabscl gcdmultiple anassrs 3eqtr3d
    sylan2 mul01 cn0 nn0gcdid0 pm2.61ne ) ACDZBEDZFZAABGHZIHZAJAAKGHZIHZAJBKBKJ
    ZVKVMAVNVJVLAIBKAGLMNVIBKUAZFZAVJOPZIHZAABOPZGHZIHZVKAVIVRWAJVOVIVQVTAIVIVQ
    AOPZVSGHZVTVGAQDZBQDVQWCJVHAUBZBUCABUDUEVGWCVTJVHVGWBAVSGVGAAUFVGAAUGZUHUIU
    JSRMSVPAEDZVJEDZVRVKJVPAVGVHVOULUKVIWHVOVGWGVHWHAUMABUNUOSVJAUPUQVGVHVOWAAJ
    ZVHVOFVGVSCDWIBURAVSUSVBUTVAVIVMAKIHZAVGVMWJJZVHVGWDWKWEWDVLKAIAVCMTSVGWJAJ
    ZVHVGAVDDWLWFAVETSRVF $.

  $( A positive integer ` A ` is equal to its gcd with an integer ` B ` if and
     only if ` A ` divides ` B ` .  Generalization of ~ gcdeq .  (Contributed
     by AV, 1-Jul-2020.) $)
  gcdzeq $p |- ( ( A e. NN /\ B e. ZZ ) -> ( ( A gcd B ) = A <-> A || B ) ) $=
    ( cn wcel cz wa cgcd co wceq cdvds wbr nnz gcddvds sylan cle adantr syl cc0
    wi simpl simprd breq1 syl5ibcom iddvds wn simpr wne nnne0 necon3ai syl31anc
    dvdslegcd mpand simpld cn0 gcdcl nn0zd dvdsle syl2anc jctild nn0red cr nnre
    mpd letri3d sylibrd impbid ) ACDZBEDZFZABGHZAIZABJKZVIVJBJKZVKVLVIVJAJKZVMV
    GAEDZVHVNVMFALZABMNZUAVJABJUBUCVIVLVJAOKZAVJOKZFVKVIVLVSVRVIAAJKZVLVSVIVOVT
    VGVOVHVPPZAUDQVIVOVOVHARIZBRIZFZUEZVTVLFVSSWAWAVGVHUFVGWEVHVGARUGWEAUHWDARW
    BWCTUIQPAABUKUJULVIVNVRVIVNVMVQUMVIVJEDVGVNVRSVIVJVGVOVHVJUNDVPABUONZUPVGVH
    TVJAUQURVCUSVIVJAVIVJWFUTVGAVADVHAVBPVDVEVF $.


  $( ` A ` is equal to its gcd with ` B ` if and only if ` A ` divides ` B ` .
     (Contributed by Mario Carneiro, 23-Feb-2014.)  (Proof shortened by AV,
     8-Aug-2021.) $)
  gcdeq $p |- ( ( A e. NN /\ B e. NN ) -> ( ( A gcd B ) = A <-> A || B ) ) $=
    ( cn wcel cz cgcd co wceq cdvds wbr wb nnz gcdzeq sylan2 ) BCDACDBEDABFGAHA
    BIJKBLABMN $.

  ${
    $d M k $.  $d N k $.
    $( Unidirectional form of ~ dvdssq .  (Contributed by Scott Fenton,
       19-Apr-2014.) $)
    dvdssqim $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
       ( M || N -> ( M ^ 2 ) || ( N ^ 2 ) ) ) $=
      ( vk cz wcel wa cdvds wbr cv cmul co wceq wrex cexp divides zsqcl syl2anr
      c2 cc zcn dvdsmul2 sqmul breqtrrd oveq1 breq2d syl5ibcom rexlimdva adantr
      wi sylbid ) ADEZBDEZFABGHCIZAJKZBLZCDMZARNKZBRNKZGHZCABOUKUPUSUIULUKUOUSC
      DUKUMDEZFZUQUNRNKZGHUOUSVAUQUMRNKZUQJKZVBGUTVCDEUQDEUQVDGHUKUMPAPVCUQUAQU
      TUMSEASEVBVDLUKUMTATUMAUBQUCUOVBURUQGUNBRNUDUEUFUGUHUJ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( A divisibility equivalent for ~ odmulg .  (Contributed by Stefan O'Rear,
       6-Sep-2015.) $)
    dvdsmulgcd $p |- ( ( B e. ZZ /\ C e. ZZ ) ->
        ( A || ( B x. C ) <-> A || ( B x. ( C gcd A ) ) ) ) $=
      ( vx vy cz wcel wa cmul co cdvds wbr cv simplr simpld syl2anc zmulcld mpd
      caddc zcnd cgcd wceq dvdszrcl adantl bezout adantr simplll simpllr simprl
      simprr wi dvdsmultr1 syl3anc mulassd breqtrd dvdsmul1 mul12d breqtrrd w3a
      wrex dvds2add imp adddid oveq2 breq2d syl5ibrcom rexlimdvva simprd zmulcl
      syl32anc simpr gcddvds gcdcld nn0zd simpll dvdscmul dvdstr impbida ) BFGZ
      CFGZHZABCIJZKLZABCAUAJZIJZKLZWAWCHZWDCDMZIJZAEMZIJZSJZUBZEFUTDFUTZWFWGVTA
      FGZWNVSVTWCNWGWOWBFGZWCWOWPHWAAWBUCUDOZDECAUEPWGWMWFDEFFWGWHFGZWJFGZHZHZW
      FWMABWLIJZKLXAABWIIJZBWKIJZSJZXBKXAWOXCFGZXDFGZAXCKLZAXDKLZAXEKLZWGWOWTWQ
      UFZXABWIVSVTWCWTUGZXACWHVSVTWCWTUHZWGWRWSUIZQZQXABWKXLXAAWJXKWGWRWSUJZQZQ
      XAAWBWHIJZXCKXAWCAXRKLZWAWCWTNXAWOWPWRWCXSUKXKXABCXLXMQXNAWBWHULUMRXABCWH
      XABXLTZXACXMTXAWHXNTUNUOXAAABWJIJZIJZXDKXAWOYAFGAYBKLXKXABWJXLXPQAYAUPPXA
      BAWJXTXAAXKTXAWJXPTUQURWOXFXGUSXHXIHXJAXCXDVAVBVJXABWIWKXTXAWIXOTXAWKXQTV
      CURWMWEXBAKWDWLBIVDVEVFVGRWAWFHZWOWEFGZWPWFWEWBKLZWCYCWOYDWFWOYDHWAAWEUCU
      DZOZYCWOYDYFVHWAWPWFBCVIUFWAWFVKYCWDCKLZYEYCYHWDAKLZYCVTWOYHYIHVSVTWFNZYG
      CAVLPOYCWDFGVTVSYHYEUKYCWDYCCAYJYGVMVNYJVSVTWFVOBWDCVPUMRWOYDWPUSWFYEHWCA
      WEWBVQVBVJVR $.
  $}

  $( If ` K ` and ` M ` are relatively prime, then the GCD of ` K ` and
     ` M x. N ` is the GCD of ` K ` and ` N ` .  (Contributed by Scott Fenton,
     12-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  rpmulgcd $p |- ( ( ( K e. NN /\ M e. NN /\ N e. NN ) /\
                ( K gcd M ) = 1 ) -> ( K gcd ( M x. N ) ) = ( K gcd N ) ) $=
    ( cn wcel w3a cgcd co c1 wceq wa cmul gcdmultiple 3adant2 nnz zmulcl syl2an
    cz adantr eqtrd oveq1d 3ad2ant1 3adant1 gcdass syl3anc eqtr3d nnnn0 mulgcdr
    cn0 syl3an oveq1 sylan9eq cc nncn 3ad2ant3 mulid2d oveq2d ) ADEZBDEZCDEZFZA
    BGHZIJZKZABCLHZGHZAACLHZVEGHZGHZACGHVAVFVIJVCVAAVGGHZVEGHZVFVIVAVJAVEGURUTV
    JAJUSACMNUAVAAREZVGREZVEREZVKVIJURUSVLUTAOZUBURUTVMUSURVLCREZVMUTVOCOZACPQN
    USUTVNURUSBREZVPVNUTBOZVQBCPQUCVEVGAUDUEUFSVDVHCAGVDVHICLHZCVAVCVHVBCLHZVTU
    RVLUSVRUTCUIEVHWAJVOVSCUGABCUHUJVBICLUKULVDCVACUMEZVCUTURWBUSCUNUOSUPTUQT
    $.

  ${
    $d A n k $.  $d B n k $.  $d N n k $.
    $( If ` A ` and ` B ` are relatively prime, then so are ` A ^ N ` and
       ` B ` .  (Contributed by Scott Fenton, 12-Apr-2014.)  (Revised by Mario
       Carneiro, 19-Apr-2014.) $)
    rplpwr $p |- ( ( A e. NN /\ B e. NN /\ N e. NN ) ->
       ( ( A gcd B ) = 1 -> ( ( A ^ N ) gcd B ) = 1 ) ) $=
      ( vk vn cn wcel cgcd co c1 wceq cexp wi oveq2 oveq1d eqeq1d imbi2d adantr
      wa cz cv caddc weq nncn exp1d biimpar w3a df-3an cmul simpl1 nncnd simpl3
      nnnn0d expp1d simp1 cn0 nnnn0 3ad2ant3 nnexpcld nnzd mulcomd eqtrd oveq2d
      zcnd simpl2 nnz 3ad2ant1 3ad2ant2 gcdcom syl2anc biimpa rpmulgcd syl31anc
      peano2nn 3eqtr4d biimprd sylanbr an32s expcom a2d nnind expd com12 3impia
      ) AFGZBFGZCFGZABHIZJKZACLIZBHIZJKZMZWGWEWFSZWMWGWNWIWLWNWISZADUAZLIZBHIZJ
      KZMWOAJLIZBHIZJKZMWOAEUAZLIZBHIZJKZMWOAXCJUBIZLIZBHIZJKZMWOWLMDECWPJKZWSX
      BWOXKWRXAJXKWQWTBHWPJALNOPQDEUCZWSXFWOXLWRXEJXLWQXDBHWPXCALNOPQWPXGKZWSXJ
      WOXMWRXIJXMWQXHBHWPXGALNOPQWPCKZWSWLWOXNWRWKJXNWQWJBHWPCALNOPQWNXBWIWNXAW
      HJWEXAWHKWFWEWTABHWEAAUDUEORPUFXCFGZWOXFXJWOXOXFXJMZWNXOWIXPWNXOSWEWFXOUG
      ZWIXPWEWFXOUHXQWISZXJXFXRXIXEJXRBXHHIZBXDHIZXIXEXRXSBAXDUIIZHIZXTXRXHYABH
      XRXHXDAUIIYAXRAXCXRAWEWFXOWIUJZUKZXRXCWEWFXOWIULUMUNXRXDAXRXDXQXDTGZWIXQX
      DXQAXCWEWFXOUOXOWEXCUPGWFXCUQURUSZUTRZVDYDVAVBVCXRWFWEXDFGZBAHIZJKZYBXTKW
      EWFXOWIVEYCXQYHWIYFRXQWIYJXQWHYIJXQATGZBTGZWHYIKWEWFYKXOAVFVGWFWEYLXOBVFV
      HZABVIVJPVKBAXDVLVMVBXRXHTGYLXIXSKXRXHXRAXGYCXRXGXQXGFGZWIXOWEYNWFXCVNURR
      UMUSUTXQYLWIYMRZXHBVIVJXRYEYLXEXTKYGYOXDBVIVJVOPVPVQVRVSVTWAWBWCWD $.
  $}

  $( If ` A ` and ` B ` are relatively prime, then so are ` A ^ N ` and
     ` B ^ N ` .  (Contributed by Scott Fenton, 12-Apr-2014.)  (Revised by
     Mario Carneiro, 19-Apr-2014.) $)
  rppwr $p |- ( ( A e. NN /\ B e. NN /\ N e. NN ) ->
      ( ( A gcd B ) = 1 -> ( ( A ^ N ) gcd ( B ^ N ) ) = 1 ) ) $=
    ( cn wcel w3a cgcd co c1 wceq cexp 3jca nnzd gcdcom syl2anc nnz rplpwr sylc
    wa cz simpl1 simpl2 simpl3 nnnn0d nnexpcld 3ad2ant1 3ad2ant2 eqeq1d biimpa
    eqtrd ex ) ADEZBDEZCDEZFZABGHZIJZACKHBCKHZGHIJZUOUQSZULURDEZUNFAURGHZIJUSUT
    ULVAUNULUMUNUQUAZUTBCULUMUNUQUBZUTCULUMUNUQUCZUDUEZVELUTVBURAGHZIUTATEZURTE
    VBVGJUTAVCMUTURVFMAURNOUTUMULUNFBAGHZIJZVGIJUTUMULUNVDVCVELUOUQVJUOUPVIIUOV
    HBTEZUPVIJULUMVHUNAPUFUMULVKUNBPUGABNOUHUIBACQRUJAURCQRUK $.

  $( Square distributes over GCD. (Contributed by Scott Fenton, 18-Apr-2014.)
     (Revised by Mario Carneiro, 19-Apr-2014.) $)
  sqgcd $p |- ( ( M e. NN /\ N e. NN ) ->
         ( ( M gcd N ) ^ 2 ) = ( ( M ^ 2 ) gcd ( N ^ 2 ) ) ) $=
    ( cn wcel wa cgcd co c2 cexp c1 cdiv wceq cz cdvds adantr adantl syl2anc cc
    wbr cc0 cmul gcdnncl nnsqcld nncnd mulid1d nnsqcl nnz gcddvds syl2an simpld
    nnzd wi dvdssqim simprd gcddiv syl32anc nncn nnne0d sqdivd oveq12d syl31anc
    mpd dividd eqtr3d clt wne wb dvdsval2 syl3anc mpbid nnre nnred nngt0 nngt0d
    cr divgt0d elnnz sylanbrc 2nn rppwr mp3an3 3eqtr2d anim12i intnanrd gcdn0cl
    wn neneqd ax-1cn divmul mp3an2 syl12anc ) ACDZBCDZEZABFGZHIGZJUAGZWPAHIGZBH
    IGZFGZWNWPWNWPWNWOABUBZUCZUDZUEWNWTWPKGZJLZWQWTLZWNXDWRWPKGZWSWPKGZFGZAWOKG
    ZHIGZBWOKGZHIGZFGZJWNWRMDZWSMDZWPCDWPWRNSZWPWSNSZXDXILWLXOWMWLWRAUFZUKZOWMX
    PWLWMWSBUFUKZPXBWNWOANSZXQWNYBWOBNSZWLAMDZBMDZYBYCEZWMAUGZBUGZABUHUIZUJZWNW
    OMDZYDYBXQULWNWOXAUKZWLYDWMYGOZWOAUMQVBWNYCXRWNYBYCYIUNZWNYKYEYCXRULYLWMYEW
    LYHPZWOBUMQVBWRWSWPUOUPWNXKXGXMXHFWNAWOWLARDWMAUQOWNWOXAUDZWNWOXAURZUSWNBWO
    WMBRDWLBUQPYPYQUSUTWNXJXLFGZJLZXNJLZWNWOWOKGZYRJWNYDYEWOCDYFUUAYRLYMYOXAYIA
    BWOUOVAWNWOYPYQVCVDWNXJCDZXLCDZYSYTULZWNXJMDZTXJVESUUBWNYBUUEYJWNYKWOTVFZYD
    YBUUEVGYLYQYMWOAVHVIVJWNAWOWLAVODWMAVKOWNWOXAVLZWLTAVESWMAVMOWNWOXAVNZVPXJV
    QVRWNXLMDZTXLVESUUCWNYCUUIYNWNYKUUFYEYCUUIVGYLYQYOWOBVHVIVJWNBWOWMBVODWLBVK
    PUUGWMTBVESWLBVMPUUHVPXLVQVRUUBUUCHCDUUDVSXJXLHVTWAQVBWBWNWTRDZWPRDZWPTVFZX
    EXFVGZWNWTWNXOXPEWRTLZWSTLZEWFZWTCDWLXOWMXPXTYAWCWLUUPWMWLUUNUUOWLWRTWLWRXS
    URWGWDOWRWSWEQUDXCWNWPXBURUUJJRDUUKUULEUUMWHWTJWPWIWJWKVJVD $.

  $( Lemma for ~ dvdssq .  (Contributed by Scott Fenton, 18-Apr-2014.)
     (Revised by Mario Carneiro, 19-Apr-2014.) $)
  dvdssqlem $p |- ( ( M e. NN /\ N e. NN ) ->
           ( M || N <-> ( M ^ 2 ) || ( N ^ 2 ) ) ) $=
    ( cn wcel wa cdvds wbr c2 cexp co cz nnz syl2an cgcd wceq adantr nnsqcl cc0
    wb cr dvdssqim sqgcd gcdeq biimpar eqtrd cle cn0 gcdcl nn0red nn0ge0d nnnn0
    wi nnre sq11 syl22anc mpbid gcddvds simprd eqbrtrrd ex impbid ) ACDZBCDZEZA
    BFGZAHIJZBHIJZFGZVBAKDZBKDZVEVHULVCALZBLZABUAMVDVHVEVDVHEZABNJZABFVMVNHIJZV
    FOZVNAOZVMVOVFVGNJZVFVDVOVROVHABUBPVDVRVFOZVHVBVFCDVGCDVSVHSVCAQBQVFVGUCMUD
    UEVDVPVQSZVHVDVNTDRVNUFGATDZRAUFGZVTVDVNVBVIVJVNUGDVCVKVLABUHMZUIVDVNWCUJVB
    WAVCAUMPVBWBVCVBAAUKUJPVNAUNUOPUPVMVNAFGZVNBFGZVDWDWEEZVHVBVIVJWFVCVKVLABUQ
    MPURUSUTVA $.

  $( Two numbers are divisible iff their squares are.  (Contributed by Scott
     Fenton, 18-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  dvdssq $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
           ( M || N <-> ( M ^ 2 ) || ( N ^ 2 ) ) ) $=
    ( cz wcel wa cdvds wbr c2 cexp co cc0 wceq cabs cfv syl2an zsqcl adantr syl
    wb bitr4d breq1 breq1d bibi12d wne cn nnabscl breq2 breq2d dvdssqlem sylan2
    sq0i nnz simpl dvdsabsb nnsqcl nnzd cc zcn abssq 3bitr4d anassrs dvds0 2thd
    adantl pm2.61ne sylan absdvdsb adantlr eqcomd bitrd an32s 0dvds sqeq0 ) ACD
    ZBCDZEABFGZAHIJZBHIJZFGZSZKBFGZKVRFGZSZAKAKLZVPWAVSWBAKBFUAWDVQKVRFAUKUBUCV
    NAKUDZVOVTVNWEEZVOEZAMNZBFGZWHHIJZVRFGZVPVSWFWHUEDZVOWIWKSZAUFWLVOEWMWHKFGZ
    WJKFGZSZBKBKLZWIWNWKWOBKWHFUGWQVRKWJFBUKUHUCWLVOBKUDZWMWLVOWREZEZWHBMNZFGZW
    JXAHIJZFGZWIWKWSWLXAUEDXBXDSBUFWHXAUIUJWLWHCDZVOWIXBSWSWHULZVOWRUMWHBUNOWTW
    KWJVRMNZFGZXDWLWJCDZVRCDZWKXHSWSWLWJWHUOUPVOXJWRBPZQWJVRUNOWSXDXHSWLWSXCXGW
    JFWSBUQDZXCXGLVOXLWRBURZQBUSRUHVDTUTVAWLWPVOWLXEWPXFXEWNWOWHVBXEXIWOWHPWJVB
    RVCRQVEVFVNVOVPWISWEABVGVHWGVSVQMNZVRFGZWKWFVQCDZXJVSXOSVOVNXPWEAPQXKVQVRVG
    OWFXOWKSVOWFXNWJVRFVNXNWJLWEVNWJXNVNAUQDWJXNLAURAUSRVIQUBQVJUTVKVOWCVNVOWAV
    RKLZWBVOWAWQXQBVLVOXLXQWQSXMBVMRTVOXJWBXQSXKVRVLRTVDVE $.

  $( Partial converse to ~ bezout .  Existence of a linear combination does not
     set the GCD, but it does upper bound it.  (Contributed by Stefan O'Rear,
     23-Sep-2014.) $)
  bezoutr $p |- ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( X e. ZZ /\ Y e. ZZ ) ) -> ( A
      gcd B ) || ( ( A x. X ) + ( B x. Y ) ) ) $=
    ( cz wcel wa cgcd co cmul cdvds wbr caddc adantr zmulcld w3a dvdsmultr1 imp
    gcdcl syl31anc simpll simprl simplr simprr gcddvds simpld dvds2add syl32anc
    nn0zd simprd ) AEFZBEFZGZCEFZDEFZGZGZABHIZEFZACJIZEFZBDJIZEFZURUTKLZURVBKLZ
    URUTVBMIKLZUMUSUPUMURABSUINZUQACUKULUPUAZUMUNUOUBZOUQBDUKULUPUCZUMUNUOUDZOU
    QUSUKUNURAKLZVDVGVHVIUQVLURBKLZUMVLVMGUPABUENZUFUSUKUNPVLVDURACQRTUQUSULUOV
    MVEVGVJVKUQVLVMVNUJUSULUOPVMVEURBDQRTUSVAVCPVDVEGVFURUTVBUGRUH $.

  $( Converse of ~ bezout for when the greater common divisor is one
     (sufficient condition for relative primality).  (Contributed by Stefan
     O'Rear, 23-Sep-2014.) $)
  bezoutr1 $p |- ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( X e. ZZ /\ Y e. ZZ ) ) -> ( (
      ( A x. X ) + ( B x. Y ) ) = 1 -> ( A gcd B ) = 1 ) ) $=
    ( cz wcel wa cmul co caddc c1 wceq wbr cdvds cn a1i syl2anc cc0 wne oveq1
    cgcd cle bezoutr adantr simpr breqtrd wi gcdcl nn0zd ad2antrr 1nn dvdsle wb
    mpd wn simpll oveqan12d zcn mul02d sylan9eqr 00id syl6eq adantll eqnetrd ex
    0ne1 necon2bd imp gcdn0cl nnle1eq1 syl mpbid ) AEFBEFGZCEFZDEFZGZGZACHIZBDH
    IZJIZKLZABUAIZKLZVQWAGZWBKUBMZWCWDWBKNMZWEWDWBVTKNVQWBVTNMWAABCDUCUDVQWAUEU
    FWDWBEFZKOFZWFWEUGVMWGVPWAVMWBABUHUIUJWHWDUKPWBKULQUNWDWBOFZWEWCUMWDVMARLZB
    RLZGZUOZWIVMVPWAUPVQWAWMVQWLVTKVQWLVTKSVQWLGZVTRKVPWLVTRLVMVPWLGVTRRJIZRWLV
    PVTRCHIZRDHIZJIWOWJWKVRWPVSWQJARCHTBRDHTUQVNVOWPRWQRJVNCCURUSVODDURUSUQUTVA
    VBVCRKSWNVFPVDVEVGVHABVIQWBVJVKVLVE $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Algorithms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d F k m $.  $d N k m $.  $d k m ph $.
    nn0seqcvgd.1 $e |- ( ph -> F : NN0 --> NN0 ) $.
    nn0seqcvgd.2 $e |- ( ph -> N = ( F ` 0 ) ) $.
    nn0seqcvgd.3 $e |- ( ( ph /\ k e. NN0 ) ->
      ( ( F ` ( k + 1 ) ) =/= 0 -> ( F ` ( k + 1 ) ) < ( F ` k ) ) ) $.
    $( A strictly-decreasing nonnegative integer sequence with initial term
       ` N ` reaches zero by the ` N ` th term.  Deduction version.
       (Contributed by Paul Chapman, 31-Mar-2011.) $)
    nn0seqcvgd $p |- ( ph -> ( F ` N ) = 0 ) $=
      ( cfv cc0 wceq cle wbr cmin co cn0 wcel wi clt wa cr 0nn0 ffvelrn sylancl
      vm wf eqeltrd nn0red leidd cv c1 caddc fveq2 oveq2 breq12d eqbrtrrd recnd
      imbi2d subid1d breqtrrd a1i wb nn0re posdif adantr breq1 adantl peano2nn0
      syl2anr cz syl2an nn0zd nn0z zsubcl zltlem1 syl2anc ax-1cn subsub4 mp3an3
      cc nn0cn breq2d bitrd 3bitr2d biimpa an32s a1d wne ffvelrnda zred syl3anc
      ltletr sylibd syland expdimp pm2.61dane anasss expcom a2d 3adant1 fnn0ind
      pm2.43i subidd breqtrd ffvelrnd nn0ge0d 0re letri3 mpbir2and ) ADCHZIJZXI
      IKLZIXIKLZAXIDDMNZIKAXIXMKLZADOPZXODDKLAXNQZADICHZOFAOOCUEZIOPXQOPEUAOOIC
      UBUCUFZXSADADXSUGZUHZAUDUIZCHZDYBMNZKLZQAXQDIMNZKLZQZABUIZCHZDYIMNZKLZQZA
      YIUJUKNZCHZDYNMNZKLZQZXPUDBDDYBIJZYEYGAYSYCXQYDYFKYBICULYBIDMUMUNUQYBYIJZ
      YEYLAYTYCYJYDYKKYBYICULYBYIDMUMUNUQYBYNJZYEYQAUUAYCYOYDYPKYBYNCULYBYNDMUM
      UNUQYBDJZYEXNAUUBYCXIYDXMKYBDCULYBDDMUMUNUQYHXOAXQDYFKADXQDKFYAUOADADXTUP
      ZURUSUTYIOPZYIDRLZYMYRQXOUUDUUESZAYLYQAUUFYLYQQZAUUDUUEUUGAUUDSZUUESZUUGY
      OIUUIYOIJZSYQYLUUHUUJUUEYQUUHUUJSZUUEYQUUKUUEIYKRLZYOYKRLZYQUUHUUEUULVAZU
      UJUUDYITPDTPUUNAYIVBXTYIDVCVHVDUUJUUMUULVAUUHYOIYKRVEVFUUHUUMYQVAUUJUUHUU
      MYOYKUJMNZKLZYQUUHYOVIPYKVIPZUUMUUPVAUUHYOAXRYNOPYOOPUUDEYIVGOOYNCUBVJZVK
      ADVIPYIVIPUUQUUDADXSVKYIVLDYIVMVJZYOYKVNVOUUHUUOYPYOKADVSPZYIVSPZUUOYPJZU
      UDUUCYIVTUUTUVAUJVSPUVBVPDYIUJVQVRVJWAWBZVDWCWDWEWFUUIYOIWGZYLYQUUHUVDYLS
      YQQUUEUUHUVDYOYJRLZYLYQGUUHUVEYLSZUUMYQUUHYOTPYJTPYKTPUVFUUMQUUHYOUURUGUU
      HYJAOOYICEWHUGUUHYKUUSWIYOYJYKWKWJUVCWLWMVDWNWOWPWQWRWSWTWJXAADUUCXBXCAXI
      AOODCEXSXDZXEAXITPITPXJXKXLSVAAXIUVGUGXFXIIXGUCXH $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y M $.  $d x y ph $.  $d x y S $.
    $d x y V $.  $d x y Z $.
    algrf.1 $e |- Z = ( ZZ>= ` M ) $.
    algrf.2 $e |- R = seq M ( ( F o. 1st ) , ( Z X. { A } ) ) $.
    $( A sequence whose iteration function ignores the second argument is only
       affected by the first point of the initial value function.  (Contributed
       by Mario Carneiro, 11-Feb-2015.) $)
    seq1st $p |- ( ( M e. ZZ /\ A e. V ) ->
      R = seq M ( ( F o. 1st ) , { <. M , A >. } ) ) $=
      ( vx wcel cfv adantr wceq wi co fveq2 eqeq12d imbi2d eqtr4d fvex vy cz wa
      c1st ccom csn cxp cseq cop cuz seqfn cv c1 caddc seq1 syl6eleqr fvconst2g
      wfn id uzid syl2anr fvsng ex wb algrflem syl6eq adantl syl5ibr expcom a2d
      seqp1 uzind4 impcom adantll eqfnfvd syl5eq ) DUBJZAEJZUCZBCUDUEZFAUFUGZDU
      HZVTDAUIUFZDUHZHVSIDUJKZWBWDVQWBWEURVRVTWADUKLVQWDWEURVRVTWCDUKLVRIULZWEJ
      ZWFWBKZWFWDKZMZVQWGVRWJVRUAULZWBKZWKWDKZMZNVRDWBKZDWDKZMZNVRWJNZVRWFUMUNO
      ZWBKZWSWDKZMZNWRUAIDWFWKDMZWNWQVRXCWLWOWMWPWKDWBPWKDWDPQRWKWFMZWNWJVRXDWL
      WHWMWIWKWFWBPWKWFWDPQRZWKWSMZWNXBVRXFWLWTWMXAWKWSWBPWKWSWDPQRXEVQVRWQVSWO
      DWAKZWPVQWOXGMVRVTWADUOLVSWPDWCKZXGVQWPXHMVRVTWCDUOLVSXGAXHVRVRDFJXGAMVQV
      RUSVQDWEFDUTGUPFADEUQVADAUBEVBSSSVCWGVRWJXBVRWGWJXBNWJXBVRWGUCWHCKZWICKZM
      ZWHWICPWGXBXKVDVRWGWTXIXAXJWGWTWHWSWAKZVTOXIVTWADWFVKWHXLCWFWBTWSWATVEVFW
      GXAWIWSWCKZVTOXJVTWCDWFVKWIXMCWFWDTWSWCTVEVFQVGVHVIVJVLVMVNVOVP $.

    algrf.3 $e |- ( ph -> M e. ZZ ) $.
    algrf.4 $e |- ( ph -> A e. S ) $.
    $( The value of the algorithm iterator ` R ` at ` 0 ` is the initial state
       ` A ` .  (Contributed by Paul Chapman, 31-Mar-2011.)  (Revised by Mario
       Carneiro, 28-May-2014.) $)
    algr0 $p |- ( ph -> ( R ` M ) = A ) $=
      ( cfv c1st ccom csn cxp cseq wcel wceq syl fveq1i seq1 cuz uzid syl6eleqr
      cz fvconst2g syl2anc eqtrd syl5eq ) AFCLFEMNZGBOPZFQZLZBFCUMIUAAUNFULLZBA
      FUFRZUNUOSJUKULFUBTABDRFGRUOBSKAFFUCLZGAUPFUQRJFUDTHUEGBFDUGUHUIUJ $.

    algrf.5 $e |- ( ph -> F : S --> S ) $.
    $( An algorithm is a step function ` F : S --> S ` on a state space ` S ` .
       An algorithm acts on an initial state ` A e. S ` by iteratively applying
       ` F ` to give ` A ` , ` ( F `` A ) ` , ` ( F `` ( F `` A ) ) ` and so
       on.  An algorithm is said to halt if a fixed point of ` F ` is reached
       after a finite number of iterations.

       The algorithm iterator ` R : NN0 --> S ` "runs" the algorithm ` F ` so
       that ` ( R `` k ) ` is the state after ` k ` iterations of ` F ` on the
       initial state ` A ` .

       Domain and codomain of the algorithm iterator ` R ` .  (Contributed by
       Paul Chapman, 31-Mar-2011.)  (Revised by Mario Carneiro,
       28-May-2014.) $)
    algrf $p |- ( ph -> R : Z --> S ) $=
      ( vx vy wf cv wcel wa cfv vex c1st ccom csn cxp cseq wceq fvconst2g sylan
      adantr eqeltrd algrflem simpl ffvelrn syl2an syl5eqel seqf feq1i sylibr
      co ) AGDEUAUBZGBUCUDZFUEZOGDCOAMNUTDVAFGHJAMPZGQZRVCVASZBDABDQZVDVEBUFKGB
      VCDUGUHAVFVDKUIUJAVCDQZNPZDQZRZRVCVHUTUSVCESZDVCVHEMTNTUKADDEOVGVKDQVJLVG
      VIULDDVCEUMUNUOUPGDCVBIUQUR $.

    $( The value of the algorithm iterator ` R ` at ` ( K + 1 ) ` .
       (Contributed by Paul Chapman, 31-Mar-2011.)  (Revised by Mario Carneiro,
       27-Dec-2014.) $)
    algrp1 $p |- ( ( ph /\ K e. Z ) ->
                   ( R ` ( K + 1 ) ) = ( F ` ( R ` K ) ) ) $=
      ( wcel wa c1 co cfv fveq1i fvex caddc c1st ccom csn cxp cseq cuz syl6eleq
      wceq simpr seqp1 syl fveq2i algrflem eqtr4i 3eqtr4g ) AFHNZOZFPUAQZEUBUCZ
      HBUDUEZGUFZRZFVBRZUSVARZUTQZUSCRFCRZERZURFGUGRZNVCVFUIURFHVIAUQUJIUHUTVAG
      FUKULUSCVBJSVHVDERVFVGVDEFCVBJSUMVDVEEFVBTUSVATUNUOUP $.
  $}

  ${
    $d k z A $.  $d x F $.  $d k x z I $.  $d k x z R $.  $d k x z S $.
    $d z K $.
    alginv.1 $e |- R = seq 0 ( ( F o. 1st ) , ( NN0 X. { A } ) ) $.
    alginv.2 $e |- F : S --> S $.
    alginv.3 $e |- I Fn S $.
    alginv.4 $e |- ( x e. S -> ( I ` ( F ` x ) ) = ( I ` x ) ) $.
    $( If ` I ` is an invariant of ` F ` , its value is unchanged after any
       number of iterations of ` F ` .  (Contributed by Paul Chapman,
       31-Mar-2011.) $)
    alginv $p |- ( ( A e. S /\ K e. NN0 ) ->
                   ( I ` ( R ` K ) ) = ( I ` ( R ` 0 ) ) ) $=
      ( cn0 wcel cfv cc0 wceq wi fveq2 fveq2d eqeq1d vz vk cv c1 caddc co eqidd
      imbi2d wa nn0uz 0zd id a1i algrp1 algrf ffvelrnda eqeq12d vtoclga biimprd
      wf syl eqtrd expcom a2d nn0ind impcom ) GLMBDMZGCNZFNZOCNZFNZPZVGUAUCZCNZ
      FNZVKPZQVGVKVKPZQVGUBUCZCNZFNZVKPZQVGVRUDUEUFZCNZFNZVKPZQVGVLQUAUBGVMOPZV
      PVQVGWFVOVKVKWFVNVJFVMOCRSTUHVMVRPZVPWAVGWGVOVTVKWGVNVSFVMVRCRSTUHVMWBPZV
      PWEVGWHVOWDVKWHVNWCFVMWBCRSTUHVMGPZVPVLVGWIVOVIVKWIVNVHFVMGCRSTUHVGVKUGVR
      LMZVGWAWEVGWJWAWEQVGWJUIZWEWAWKWDVTVKWKWDVSENZFNZVTWKWCWLFVGBCDEVROLUJHVG
      UKZVGULZDDEUTVGIUMZUNSWKVSDMWMVTPZVGLDVRCVGBCDEOLUJHWNWOWPUOUPAUCZENZFNZW
      RFNZPWQAVSDWRVSPZWTWMXAVTXBWSWLFWRVSERSWRVSFRUQKURVAVBTUSVCVDVEVF $.
  $}

  ${
    $d A k $.  $d C k z $.  $d F z $.  $d N k $.  $d R k z $.  $d S k z $.
    algcvg.1 $e |- F : S --> S $.
    algcvg.2 $e |- R = seq 0 ( ( F o. 1st ) , ( NN0 X. { A } ) ) $.
    algcvg.3 $e |- C : S --> NN0 $.
    algcvg.4 $e |- ( z e. S -> ( ( C ` ( F ` z ) ) =/= 0 ->
                                 ( C ` ( F ` z ) ) < ( C ` z ) ) ) $.
    algcvg.5 $e |- N = ( C ` A ) $.
    $( One way to prove that an algorithm halts is to construct a countdown
       function ` C : S --> NN0 ` whose value is guaranteed to decrease for
       each iteration of ` F ` until it reaches ` 0 ` .  That is, if ` X e. S `
       is not a fixed point of ` F ` , then
       ` ( C `` ( F `` X ) ) < ( C `` X ) ` .

       If ` C ` is a countdown function for algorithm ` F ` , the sequence
       ` ( C `` ( R `` k ) ) ` reaches ` 0 ` after at most ` N ` steps, where
       ` N ` is the value of ` C ` for the initial state ` A ` .  (Contributed
       by Paul Chapman, 22-Jun-2011.) $)
    algcvg $p |- ( A e. S -> ( C ` ( R ` N ) ) = 0 ) $=
      ( wcel cfv cc0 cn0 wf wceq fvco3 clt vk ccom nn0uz 0zd a1i algrf ffvelrni
      id syl5eqel syl2anc fco sylancr sylancl algr0 fveq2d eqtrd syl6reqr cv wa
      wne wbr c1 caddc co wi ffvelrnda fveq2 neeq1d breq12d imbi12d vtoclga syl
      0nn0 peano2nn0 syl2an algrp1 sylan 3imtr4d nn0seqcvgd eqtr3d ) BEMZGCDUBZ
      NZGDNCNZOWAPEDQZGPMWCWDRWABDEFOPUCIWAUDZWAUHZEEFQWAHUEZUFZWAGBCNZPLEPBCJU
      GUIPEGCDSUJWAUAWBGWAEPCQWEPPWBQJWIPEPCDUKULWAOWBNZWJGWAWKODNZCNZWJWAWEOPM
      WKWMRWIVMPEOCDSUMWAWLBCWABDEFOPUCIWFWGUNUOUPLUQWAUAURZPMZUSZWNDNZFNZCNZOU
      TZWSWQCNZTVAZWNVBVCVDZWBNZOUTXDWNWBNZTVAWPWQEMWTXBVEZWAPEWNDWIVFAURZFNZCN
      ZOUTZXIXGCNZTVAZVEXFAWQEXGWQRZXJWTXLXBXMXIWSOXMXHWRCXGWQFVGUOZVHXMXIWSXKX
      ATXNXGWQCVGVIVJKVKVLWPXDWSOWPXDXCDNZCNZWSWAWEXCPMXDXPRWOWIWNVNPEXCCDSVOWP
      XOWRCWABDEFWNOPUCIWFWGWHVPUOUPZVHWPXDWSXEXATXQWAWEWOXEXARWIPEWNCDSVQVIVRV
      SVT $.
  $}

  $( Lemma for ~ algcvgb .  (Contributed by Paul Chapman, 31-Mar-2011.) $)
  algcvgblem $p |- ( ( M e. NN0 /\ N e. NN0 ) -> ( ( N =/= 0 -> N < M ) <->
                      ( ( M =/= 0 -> N < M ) /\ ( M = 0 -> N = 0 ) ) ) ) $=
    ( cn0 wcel wa cc0 wne clt wbr wi wceq wn cle cr wb 0re nn0re adantr syl6bbr
    df-ne wo imor ltnle sylancr nn0le0eq0 notbid bitrd anbi2d nne breq1 biimpar
    sylbi syl6bir expd ax-1 jctir jaob sylibr syl5bi nn0ge0 adantl lelttr mpand
    mp3an1 syl2anr sylibd imim2d pm3.34 impbid1 con34b imbi12i bitr4i anbi2i
    jcad ) ACDZBCDZEZBFGZBAHIZJZAFGZVSJZVRWAJZEZWBAFKZBFKZJZEVQVTWDVQVTWBWCVTVR
    LZVSUAZVQWBVRVSUBVQWHWBJZVSWBJZEWIWBJVQWJWKVQWHWAVSVQWHWAEWHFAHIZEVSVQWLWAW
    HVQWLWELZWAVQWLAFMIZLZWMVQFNDZANDZWLWOOPVOWQVPAQZRFAUCUDVOWOWMOVPVOWNWEAUEU
    FRUGAFTZSZUHWHVSWLWHWFVSWLOBFUIBFAHUJULUKUMUNVSWAUOUPWHWBVSUQURUSVQVSWAVRVQ
    VSWLWAVQFBMIZVSWLVPXAVOBUTVAVPBNDZWQXAVSEWLJZVOBQWRWPXBWQXCPFBAVBVDVEVCWTVF
    VGVNVRWAVSVHVIWGWCWBWGWFLZWMJWCWEWFVJVRXDWAWMBFTWSVKVLVMS $.

  ${
    algcvgb.1 $e |- F : S --> S $.
    algcvgb.2 $e |- C : S --> NN0 $.
    $( Two ways of expressing that ` C ` is a countdown function for algorithm
       ` F ` .  The first is used in these theorems.  The second states the
       condition more intuitively as a conjunction: if the countdown function's
       value is currently nonzero, it must decrease at the next step; if it has
       reached zero, it must remain zero at the next step.  (Contributed by
       Paul Chapman, 31-Mar-2011.) $)
    algcvgb $p |- ( X e. S ->
        ( ( ( C ` ( F ` X ) ) =/= 0 -> ( C ` ( F ` X ) ) < ( C ` X ) ) <->
          ( ( ( C ` X ) =/= 0 -> ( C ` ( F ` X ) ) < ( C ` X ) ) /\
            ( ( C ` X ) = 0 -> ( C ` ( F ` X ) ) = 0 ) ) ) ) $=
      ( wcel cfv cn0 cc0 wne clt wbr wi wceq wa wb ffvelrni syl algcvgblem
      syl2anc ) DBGZDAHZIGDCHZAHZIGZUEJKUEUCLMZNUCJKUGNUCJOUEJONPQBIDAFRUBUDBGU
      FBBDCERBIUDAFRSUCUETUA $.
  $}

  ${
    $d A k m $.  $d C k m z $.  $d F z $.  $d K m $.  $d N k m $.
    $d R k m z $.  $d S k m z $.
    algcvga.1 $e |- F : S --> S $.
    algcvga.2 $e |- R = seq 0 ( ( F o. 1st ) , ( NN0 X. { A } ) ) $.
    algcvga.3 $e |- C : S --> NN0 $.
    algcvga.4 $e |- ( z e. S -> ( ( C ` ( F ` z ) ) =/= 0 ->
                                  ( C ` ( F ` z ) ) < ( C ` z ) ) ) $.
    algcvga.5 $e |- N = ( C ` A ) $.
    $( The countdown function ` C ` remains ` 0 ` after ` N ` steps.
       (Contributed by Paul Chapman, 22-Jun-2011.) $)
    algcvga $p |- ( A e. S -> ( K e. ( ZZ>= ` N ) ->
                                ( C ` ( R ` K ) ) = 0 ) ) $=
      ( wcel cn0 cfv cc0 wceq wi wbr vm vk cuz ffvelrni syl5eqel cz nn0z cle wa
      eluz1 cv c1 caddc fveq2 fveq2d eqeq1d imbi2d algcvg a1i w3a nn0ge0 adantr
      co cr nn0re zre 0re letr mp3an1 syl2an mpand elnn0z simplbi2 adantl sylan
      syld impr expcom 3adant1 ancld nn0uz 0zd id wf algrf ffvelrnda wne neeq1d
      clt breq12d imbi12d vtoclga algcvgb simpr syl6bi mpd syl sylibrd syl6 a2d
      algrp1 uzind 3expib sylbid com3r ) BENZHONZGHUCPNZGDPZCPZQRZSXFHBCPOMEOBC
      KUDUEZXGXHXFXKXGHUFNZXHXFXKSZSHUGXMXHGUFNZHGUHTZUIXNHGUJXMXOXPXNXFUAUKZDP
      ZCPZQRZSXFHDPZCPZQRZSZXFUBUKZDPZCPZQRZSXFYEULUMVCZDPZCPZQRZSXNUAUBHGXQHRZ
      XTYCXFYMXSYBQYMXRYACXQHDUNUOUPUQXQYERZXTYHXFYNXSYGQYNXRYFCXQYEDUNUOUPUQXQ
      YIRZXTYLXFYOXSYKQYOXRYJCXQYIDUNUOUPUQXQGRZXTXKXFYPXSXJQYPXRXICXQGDUNUOUPU
      QYDXMABCDEFHIJKLMURUSXMYEUFNZHYEUHTZUTZXFYHYLYSXFXFYEONZUIZYHYLSYSXFYTYQY
      RXFYTSXMXFYQYRUIYTXFYQYRYTXFXGYQYRYTSXLXGYQUIZYRQYEUHTZYTUUBQHUHTZYRUUCXG
      UUDYQHVAVBXGHVDNZYEVDNZUUDYRUIUUCSZYQHVEYEVFQVDNUUEUUFUUGVGQHYEVHVIVJVKYQ
      UUCYTSXGYTYQUUCYEVLVMVNVPVOVQVRVSVTUUAYHYFFPZCPZQRZYLUUAYFENZYHUUJSZXFOEY
      EDXFBDEFQOWAJXFWBZXFWCZEEFWDXFIUSZWEWFUUKUUIQWGZUUIYGWITZSZUULAUKZFPZCPZQ
      WGZUVAUUSCPZWITZSUURAYFEUUSYFRZUVBUUPUVDUUQUVEUVAUUIQUVEUUTUUHCUUSYFFUNUO
      ZWHUVEUVAUUIUVCYGWIUVFUUSYFCUNWJWKLWLUUKUURYGQWGUUQSZUULUIUULCEFYFIKWMUVG
      UULWNWOWPWQUUAYKUUIQUUAYJUUHCXFBDEFYEQOWAJUUMUUNUUOXAUOUPWRWSWTXBXCXDWQXE
      WP $.

    $d K z $.  $d N z $.
    algfx.6 $e |- ( z e. S -> ( ( C ` z ) = 0 -> ( F ` z ) = z ) ) $.
    $( If ` F ` reaches a fixed point when the countdown function ` C ` reaches
       ` 0 ` , ` F ` remains fixed after ` N ` steps.  (Contributed by Paul
       Chapman, 22-Jun-2011.) $)
    algfx $p |- ( A e. S -> ( K e. ( ZZ>= ` N ) -> ( R ` K ) = ( R ` N ) ) ) $=
      ( wcel cfv wceq wi cn0 fveq2 vm vk cz cuz ffvelrni syl5eqel nn0zd cle wbr
      wa cv crab uzval eleq2d pm5.32i c1 caddc co eqeq1d imbi2d eqidd a1i sylan
      eluznn0 cc0 nn0uz 0zd id wf algrp1 syldan algrf ffvelrnda algcvga eqeq12d
      imp imbi12d vtoclga sylc eqtrd biimprd expcom adantl sylbir a2d uzind3 ex
      sylbi com3r mpd ) BEOZHUCOZGHUDPZOZGDPZHDPZQZRWKHWKHBCPSMESBCKUEUFZUGWLWN
      WKWQWLWNWKWQRZWLWNUJWLGHAUKZUHUIAUCULZOZUJWSWLWNXBWLWMXAGAHUMZUNUOWKUAUKZ
      DPZWPQZRWKWPWPQZRZWKUBUKZDPZWPQZRWKXIUPUQURZDPZWPQZRWSUAAUBHGXDHQZXFXGWKX
      OXEWPWPXDHDTUSUTXDXIQZXFXKWKXPXEXJWPXDXIDTUSUTXDXLQZXFXNWKXQXEXMWPXDXLDTU
      SUTXDGQZXFWQWKXRXEWOWPXDGDTUSUTXHWLWKWPVAVBWLXIXAOZUJZWKXKXNXTWLXIWMOZUJW
      KXKXNRZRZWLYAXSWLWMXAXIXCUNUOYAYCWLWKYAYBWKYAUJZXNXKYDXMXJWPYDXMXJFPZXJWK
      YAXISOZXMYEQWKHSOYAYFWRXIHVDVCZWKBDEFXIVESVFJWKVGZWKVHZEEFVIWKIVBZVJVKYDX
      JEOZXJCPZVEQZYEXJQZWKYAYFYKYGWKSEXIDWKBDEFVESVFJYHYIYJVLVMVKWKYAYMABCDEFX
      IHIJKLMVNVPWTCPZVEQZWTFPZWTQZRYMYNRAXJEWTXJQZYPYMYRYNYSYOYLVEWTXJCTUSYSYQ
      YEWTXJWTXJFTYSVHVOVQNVRVSVTUSWAWBWCWDWEWFWHWGWIWJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Euclid's Algorithm
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y M $.  $d x y N $.  $d x y X $.  $d x y z A $.  $d x z R $.
    $d z E $.
    eucalgval.1 $e |- E = ( x e. NN0 , y e. NN0 |->
                        if ( y = 0 , <. x , y >. , <. y , ( x mod y ) >. ) ) $.
    $( The value of the step function ` E ` for Euclid's Algorithm on an
       ordered pair.  (Contributed by Paul Chapman, 31-Mar-2011.)  (Revised by
       Mario Carneiro, 28-May-2014.) $)
    eucalgval2 $p |- ( ( M e. NN0 /\ N e. NN0 ) -> ( M E N ) =
                     if ( N = 0 , <. M , N >. , <. N , ( M mod N ) >. ) ) $=
      ( cn0 cv cc0 wceq cop cmo co cif wa simpr eqeq1d opeq12 oveq12 opex ifex
      opeq12d ifbieq12d ovmpt2a ) ABDEGGBHZIJZAHZUEKZUEUGUELMZKZNEIJZDEKZEDELMZ
      KZNCUGDJZUEEJZOZUFUKUHUJULUNUQUEEIUOUPPZQUGUEDERUQUEEUIUMURUGDUEELSUBUCFU
      KULUNDETEUMTUAUD $.

    $( Euclid's Algorithm ~ eucalg computes the greatest common divisor of two
       nonnegative integers by repeatedly replacing the larger of them with its
       remainder modulo the smaller until the remainder is 0.

       The value of the step function ` E ` for Euclid's Algorithm.
       (Contributed by Paul Chapman, 31-Mar-2011.)  (Revised by Mario Carneiro,
       28-May-2014.) $)
    eucalgval $p |- ( X e. ( NN0 X. NN0 ) -> ( E ` X ) =
          if ( ( 2nd ` X ) = 0 , X , <. ( 2nd ` X ) , ( mod ` X ) >. ) ) $=
      ( cn0 cxp wcel c1st cfv c2nd cop cc0 wceq cmo co cif df-ov xp1st fveq2d
      xp2nd eucalgval2 syl2anc syl5eqr 1st2nd2 syl6eqr opeq2d ifeq12d 3eqtr4d )
      DFFGHZDIJZDKJZLZCJZULMNZUMULUKULOPZLZQZDCJUODULDOJZLZQUJUNUKULCPZURUKULCR
      UJUKFHULFHVAURNDFFSDFFUAABCUKULEUBUCUDUJDUMCDFFUEZTUJUODUMUTUQVBUJUSUPULU
      JUSUMOJUPUJDUMOVBTUKULORUFUGUHUI $.

    $( Domain and codomain of the step function ` E ` for Euclid's Algorithm.
       (Contributed by Paul Chapman, 31-Mar-2011.)  (Revised by Mario Carneiro,
       28-May-2014.) $)
    eucalgf $p |- E : ( NN0 X. NN0 ) --> ( NN0 X. NN0 ) $=
      ( cv cc0 wceq cop cmo co cif cn0 cxp wcel wral wf adantl opelxpi eqeltrd
      wa cn wne nnne0 neneqd iffalsed nnnn0 cz nn0z zmodcl sylan syl2anc iftrue
      adantlr adantr wo simpr elnn0 sylib mpjaodan rgen2a fmpt2 mpbi ) BEZFGZAE
      ZVCHZVCVEVCIJZHZKZLLMZNZBLOALOVJVJCPVKABLVELNZVCLNZTZVCUANZVKVDVLVOVKVMVL
      VOTZVIVHVJVPVDVFVHVPVCFVOVCFUBVLVCUCQUDUEVPVMVGLNZVHVJNVOVMVLVCUFQVLVEUGN
      VOVQVEUHVEVCUIUJVCVGLLRUKSUMVNVDTVIVFVJVDVIVFGVNVDVFVHULQVNVFVJNVDVEVCLLR
      UNSVNVMVOVDUOVLVMUPVCUQURUSUTABLLVIVJCDVAVB $.

    $( The invariant of the step function ` E ` for Euclid's Algorithm is the
       ` gcd ` operator applied to the state.  (Contributed by Paul Chapman,
       31-Mar-2011.)  (Revised by Mario Carneiro, 29-May-2014.) $)
    eucalginv $p |- ( X e. ( NN0 X. NN0 ) ->
                        ( gcd ` ( E ` X ) ) = ( gcd ` X ) ) $=
      ( cn0 wcel cfv cgcd cc0 wceq cmo fveq2d co adantr df-ov syl6eqr cz adantl
      cop cxp c2nd cif eucalgval cn wa c1st 1st2nd2 oveq2d xp1st nn0zd sylancom
      nnz zmodcl gcdcom syl2anc modgcd 3eqtrd wne nnne0 neneqd iffalsed 3eqtr4d
      iftrue wo xp2nd elnn0 sylib mpjaodan eqtrd ) DFFUAGZDCHZIHDUBHZJKZDVMDLHZ
      TZUCZIHZDIHZVKVLVQIABCDEUDMVKVMUEGZVRVSKZVNVKVTUFZVMVOINZDUGHZVMINZVRVSWB
      WCVMWDVMLNZINZWFVMINZWEWBVOWFVMIWBVOWDVMTZLHWFWBDWILVKDWIKVTDFFUHOZMWDVML
      PQUIWBVMRGZWFRGWGWHKVTWKVKVMUMSWBWFVKVTWDRGZWFFGWBWDVKWDFGVTDFFUJOUKZWDVM
      UNULUKVMWFUOUPVKVTWLWHWEKWMWDVMUQULURWBVRVPIHWCWBVQVPIWBVNDVPWBVMJVTVMJUS
      VKVMUTSVAVBMVMVOIPQWBVSWIIHWEWBDWIIWJMWDVMIPQVCVNWAVKVNVQDIVNDVPVDMSVKVMF
      GVTVNVEDFFVFVMVGVHVIVJ $.

    $( The second member of the state decreases with each iteration of the step
       function ` E ` for Euclid's Algorithm.  (Contributed by Paul Chapman,
       31-Mar-2011.)  (Revised by Mario Carneiro, 29-May-2014.) $)
    eucalglt $p |- ( X e. ( NN0 X. NN0 ) ->
        ( ( 2nd ` ( E ` X ) ) =/= 0 -> ( 2nd ` ( E ` X ) ) < ( 2nd ` X ) ) ) $=
      ( cn0 cxp wcel cfv c2nd cc0 clt wbr cmo cop wceq adantr eqtrd fveq2d fvex
      wne wa c1st co eucalgval wn simpr iftrue eqeq2d fveq2 syl6bi eqeq2 sylibd
      cif syl5com necon3ad iffalsed op2nd syl6eq 1st2nd2 df-ov syl6eqr cr xp1st
      mpd crp nn0red cn wo xp2nd elnn0 sylib ord nnrpd modlt syl2anc eqbrtrd ex
      mt3d ) DFFGHZDCIZJIZKUAZWBDJIZLMVTWCUBZWBDUCIZWDNUDZWDLWEWBDNIZWGWEWBWDWH
      OZJIWHWEWAWIJWEWAWDKPZDWIUNZWIVTWAWKPZWCABCDEUEQZWEWJDWIWEWCWJUFVTWCUGWEW
      JWBKWEWLWJWBKPZWMWJWLWBWDPZWNWJWLWADPWOWJWKDWAWJDWIUHUIWADJUJUKWDKWBULUMU
      OUPVEZUQRSWDWHDJTDNTURUSWEWHWFWDOZNIWGWEDWQNVTDWQPWCDFFUTQSWFWDNVAVBRWEWF
      VCHWDVFHWGWDLMWEWFVTWFFHWCDFFVDQVGWEWDWEWDVHHZWJWPWEWRWJWEWDFHZWRWJVIVTWS
      WCDFFVJQWDVKVLVMVSVNWFWDVOVPVQVR $.

    eucalg.2 $e |- R = seq 0 ( ( E o. 1st ) , ( NN0 X. { A } ) ) $.
    ${
      eucalgcvga.3 $e |- N = ( 2nd ` A ) $.
      $( Once Euclid's Algorithm halts after ` N ` steps, the second element of
         the state remains 0 .  (Contributed by Paul Chapman, 22-Jun-2011.)
         (Revised by Mario Carneiro, 29-May-2014.) $)
      eucalgcvga $p |- ( A e. ( NN0 X. NN0 ) ->
                         ( K e. ( ZZ>= ` N ) -> ( 2nd ` ( R ` K ) ) = 0 ) ) $=
        ( vz cn0 wcel cuz cfv c2nd cc0 wceq fvres clt cxp wa cres xp2nd eluznn0
        syl5eqel sylan nn0uz 0zd id wf eucalgf a1i algrf ffvelrnda syldan simpl
        syl syl6eqr fveq2d eleq2d biimpar f2ndres wne eucalglt ffvelrni breq12d
        cv wbr neeq1d 3imtr4d eqid algcvga sylc eqtr3d ex ) CLLUAZMZFGNOZMZFDOZ
        POZQRVRVTUBZWAPVQUCZOZWBQWCWAVQMZWEWBRVRVTFLMZWFVRGLMVTWGVRGCPOZLJCLLUD
        UFFGUEUGVRLVQFDVRCDVQEQLUHIVRUIVRUJVQVQEUKVRABEHULZUMUNUOUPWAVQPSURWCVR
        FCWDOZNOZMZWEQRVRVTUQVRWLVTVRWKVSFVRWJGNVRWJWHGCVQPSJUSUTVAVBKCWDDVQEFW
        JWIILLVCKVHZVQMZWMEOZPOZQVDWPWMPOZTVIWOWDOZQVDWRWMWDOZTVIABEWMHVEWNWRWP
        QWNWOVQMWRWPRVQVQWMEWIVFWOVQPSURZVJWNWRWPWSWQTWTWMVQPSVGVKWJVLVMVNVOVP
        $.
    $}

    eucalg.3 $e |- A = <. M , N >. $.
    $( Euclid's Algorithm computes the greatest common divisor of two
       nonnegative integers by repeatedly replacing the larger of them with its
       remainder modulo the smaller until the remainder is 0.  Theorem 1.15 in
       [ApostolNT] p. 20.

       Upon halting, the 1st member of the final state ` ( R `` N ) ` is equal
       to the gcd of the values comprising the input state ` <. M , N >. ` .
       This is Metamath 100 proof #69 (greatest common divisor algorithm).
       (Contributed by Paul Chapman, 31-Mar-2011.)  (Proof shortened by Mario
       Carneiro, 29-May-2014.) $)
    eucalg $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                   ( 1st ` ( R ` N ) ) = ( M gcd N ) ) $=
      ( cn0 wcel cfv cgcd cc0 c2nd wceq syl fveq2d cz vz wa co cop cxp wf nn0uz
      c1st 0zd opelxpi syl5eqel eucalgf a1i algrf ffvelrn 1st2nd2 df-ov syl6eqr
      sylancom fveq2i op2ndg syl5eq cuz xp2nd nn0zd uzid eqid eucalgcvga eqtr3d
      mpd oveq2d xp1st nn0gcdid0 3syl 3eqtrrd cres wfn gcdf ax-mp nn0ssz xpss12
      wss mp2an fnssres cv eucalginv ffvelrni fvres 3eqtr4d alginv 0nn0 sylancl
      ffn 3eqtr3d algr0 syl6eq 3eqtrd ) FKLZGKLZUBZGDMZUHMZXANMZODMZNMZFGNUCZWT
      XCXBXAPMZNUCZXBONUCZXBWTXCXBXGUDZNMXHWTXAXJNWTXAKKUEZLZXAXJQWRWSKXKDUFZXL
      WTCDXKEOKUGIWTUIZWTCFGUDZXKJFGKKUJUKZXKXKEUFWTABEHULZUMUNZKXKGDUOUSZXAKKU
      PRSXBXGNUQURWTXGOXBNWTCPMZDMZPMZXGOWTYAXAPWTXTGDWTXTXOPMGCXOPJUTFGKKVAVBS
      SWTCXKLZYBOQZXPYCXTXTVCMLZYDYCXTTLYEYCXTCKKVDVEXTVFRABCDEXTXTHIXTVGVHVJRV
      IVKWTXLXBKLXIXBQXSXAKKVLXBVMVNVOWTXANXKVPZMZXDYFMZXCXEWRWSYCYGYHQXPUACDXK
      EYFGIXQNTTUEZVQZXKYIWBZYFXKVQYIKNUFYJVRYIKNWMVSKTWBZYLYKVTVTKTKTWAWCYIXKN
      WDWCUAWEZXKLZYMEMZNMZYMNMYOYFMZYMYFMABEYMHWFYNYOXKLYQYPQXKXKYMEXQWGYOXKNW
      HRYMXKNWHWIWJUSWTXLYGXCQXSXAXKNWHRWTXDXKLZYHXEQWTXMOKLYRXRWKKXKODUOWLXDXK
      NWHRWNWTXEXONMXFWTXDXONWTXDCXOWTCDXKEOKUGIXNXPWOJWPSFGNUQURWQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The least common multiple
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

According to Wikipedia ("Least common multiple", 27-Aug-2020,
~ https://en.wikipedia.org/wiki/Least_common_multiple ): "In arithmetic and
number theory, the _least common multiple_, lowest common multiple, or smallest
common multiple of two integers a and b, usually denoted by lcm(a, b), is the
smallest positive integer that is divisible by both a and b.  Since division of
integers by zero is undefined, this definition has meaning only if a and b are
both different from zero.  However, some authors define lcm(a,0) as 0 for all
a, which is the result of taking the lcm to be the least upper bound in the
lattice of divisibility.  ...  The lcm of more than two integers is also
well-defined: it is the smallest positive integer that is divisible by each of
them."

In this section, an operation calculating the least common multiple of two
integers ( ~ df-lcm ) as well as a function mapping a set of integers to their
least common multiple ( ~ df-lcmf ) are provided.  Both definitions are valid
for all integers, including negative integers and 0, obeying the above
mentioned convention. It is shown by ~ lcmfpr that the two definitions are
compatible.
$)

  $c lcm _lcm $.
  $( Extend the definition of a class to include the least common multiple
     operator. $)
  clcm $a class lcm $.
  $( Extend the definition of a class to include the least common multiple
     function. $)
  clcmf $a class _lcm $.

  ${
    $d n x y $.
    $( Define the ` lcm ` operator.  For example, ` ( 6 lcm 9 ) = 1 8 `
       ( ~ ex-lcm ).  (Contributed by Steve Rodriguez, 20-Jan-2020.)  (Revised
       by AV, 16-Sep-2020.) $)
    df-lcm $a |- lcm = ( x e. ZZ , y e. ZZ |-> if ( ( x = 0 \/ y = 0 ) , 0 ,
                     inf ( { n e. NN | ( x || n /\ y || n ) } , RR , < ) ) ) $.
  $}

  ${
    $d m n z $.
    $( Define the ` _lcm ` function on a set of integers.  (Contributed by AV,
       21-Aug-2020.)  (Revised by AV, 16-Sep-2020.) $)
    df-lcmf $a |- _lcm = ( z e. ~P ZZ |-> if ( 0 e. z , 0 ,
                         inf ( { n e. NN | A. m e. z m || n } , RR , < ) ) ) $.
  $}

  ${
    $d n x y M $.  $d n x y N $.
    $( Value of the ` lcm ` operator. ` ( M lcm N ) ` is the least common
       multiple of ` M ` and ` N ` .  If either ` M ` or ` N ` is ` 0 ` , the
       result is defined conventionally as ` 0 ` .  Contrast with ~ df-gcd and
       ~ gcdval .  (Contributed by Steve Rodriguez, 20-Jan-2020.)  (Revised by
       AV, 16-Sep-2020.) $)
    lcmval $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M lcm N ) =
        if ( ( M = 0 \/ N = 0 ) , 0 , inf ( { n e. NN | ( M || n /\ N || n ) }
        , RR , < ) ) ) $=
      ( vx vy cz cv cc0 wceq wo cdvds wbr wa cn crab cr clt cinf cif eqeq1 clcm
      orbi1d breq1 anbi1d rabbidv ifbieq2d orbi2d anbi2d df-lcm c0ex ltso infex
      infeq1d ifex ovmpt2 ) DEBCFFDGZHIZEGZHIZJZHUPAGZKLZURVAKLZMZANOZPQRZSBHIZ
      CHIZJZHBVAKLZCVAKLZMZANOZPQRZSUAVGUSJZHVJVCMZANOZPQRZSUPBIZUTVOVFVRHVSUQV
      GUSUPBHTUBVSPVEVQQVSVDVPANVSVBVJVCUPBVAKUCUDUEUMUFURCIZVOVIVRVNHVTUSVHVGU
      RCHTUGVTPVQVMQVTVPVLANVTVCVKVJURCVAKUCUHUEUMUFDEAUIVIHVNUJPVMQUKULUNUO $.
  $}

  ${
    $d n K $.  $d n M $.  $d n N $.
    $( The ` lcm ` operator is commutative.  (Contributed by Steve Rodriguez,
       20-Jan-2020.)  (Proof shortened by AV, 16-Sep-2020.) $)
    lcmcom $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M lcm N ) = ( N lcm M ) ) $=
      ( vn cz wcel wa cc0 wceq wo cdvds wbr cn crab cr clt cinf cif clcm lcmval
      co cv orcom wb ancom a1i rabbiia infeq1i ifbieq2i ancoms 3eqtr4a ) ADEZBD
      EZFAGHZBGHZIZGACUAZJKZBUPJKZFZCLMZNOPZQUNUMIZGURUQFZCLMZNOPZQZABRTBARTZUO
      VBVAVEGUMUNUBNUTVDOUSVCCLUSVCUCUPLEUQURUDUEUFUGUHCABSULUKVGVFHCBASUIUJ $.

    $( The value, by convention, of the ` lcm ` operator when either operand is
       0.  (Use ~ lcmcom for a left-hand 0.)  (Contributed by Steve Rodriguez,
       20-Jan-2020.)  (Proof shortened by AV, 16-Sep-2020.) $)
    lcm0val $p |- ( M e. ZZ -> ( M lcm 0 ) = 0 ) $=
      ( vn cz wcel cc0 clcm co wceq 0z wa wo cv cdvds wbr cn crab clt cinf cif
      cr lcmval eqid olci iftruei syl6eq mpan2 ) ACDZECDZAEFGZEHIUGUHJUIAEHZEEH
      ZKZEABLZMNEUMMNJBOPTQRZSEBAEUAULEUNUKUJEUBUCUDUEUF $.

    $( The value of the ` lcm ` operator when both operands are nonzero.
       (Contributed by Steve Rodriguez, 20-Jan-2020.)  (Revised by AV,
       16-Sep-2020.) $)
    lcmn0val $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ -. ( M = 0 \/ N = 0 ) )
      -> ( M lcm N ) = inf ( { n e. NN | ( M || n /\ N || n ) } , RR , < ) ) $=
      ( cz wcel wa cc0 wceq wo wn clcm co cv cdvds wbr cn crab cr clt cinf cif
      lcmval iffalse sylan9eq ) BDECDEFBGHCGHIZJBCKLUEGBAMZNOCUFNOFAPQRSTZUAUGA
      BCUBUEGUGUCUD $.

    $( Lemma for ~ lcmn0cl and ~ dvdslcm .  (Contributed by Steve Rodriguez,
       20-Jan-2020.)  (Proof shortened by AV, 16-Sep-2020.) $)
    lcmcllem $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ -. ( M = 0 \/ N = 0 ) ) ->
        ( M lcm N ) e. { n e. NN | ( M || n /\ N || n ) } ) $=
      ( cz wcel wa cc0 wceq wn co cdvds wbr cn c1 cfv wne adantr cc zcn df-ne
      wo clcm cv crab cr clt cinf lcmn0val cuz c0 ssrab2 nnuz sseqtri wrex cmul
      wss cabs zmulcl anim12i anbi12i sylbb2 mulne0 an4s syl2an nnabscl syl2anc
      ioran dvdsmul1 wb dvdsabsb syldan mpbid dvdsmul2 sylan2 anabss7 jca breq2
      anbi12d rspcev rabn0 sylibr infssuzcl sylancr eqeltrd ) BDEZCDEZFZBGHZCGH
      ZUAIZFZBCUBJBAUCZKLZCWLKLZFZAMUDZUEUFUGZWPABCUHWKWPNUIOZUPWPUJPZWQWPEWPMW
      RWOAMUKULUMWKWOAMUNZWSWKBCUOJZUQOZMEZBXBKLZCXBKLZFZWTWKXADEZXAGPZXCWGXGWJ
      BCURZQWGBREZCREZFBGPZCGPZFZXHWJWEXJWFXKBSCSUSWJWHIZWIIZFXNWHWIVGXLXOXMXPB
      GTCGTUTVAXJXLXKXMXHBCVBVCVDXAVEVFWGXFWJWGXDXEWGBXAKLZXDBCVHWEWFXGXQXDVIXI
      BXAVJVKVLWGCXAKLZXEBCVMWEWFXRXEVIZWGWFXGXSXICXAVJVNVOVLVPQWOXFAXBMWLXBHWM
      XDWNXEWLXBBKVQWLXBCKVQVRVSVFWOAMVTWAWPNWBWCWD $.

    $( Closure of the ` lcm ` operator.  (Contributed by Steve Rodriguez,
       20-Jan-2020.) $)
    lcmn0cl $p |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ -. ( M = 0 \/ N = 0 ) ) ->
        ( M lcm N ) e. NN ) $=
      ( vn cz wcel wa cc0 wceq wo wn cv cdvds wbr cn crab clcm co ssrab2 sseldi
      lcmcllem ) ADEBDEFAGHBGHIJFACKZLMBUALMFZCNONABPQUBCNRCABTS $.

    $( The lcm of two integers is divisible by each of them.  (Contributed by
       Steve Rodriguez, 20-Jan-2020.) $)
    dvdslcm $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M || ( M lcm N )
                                                /\ N || ( M lcm N ) ) ) $=
      ( vn cz wcel wa cc0 wceq wo co cdvds wbr dvds0 ad2antrr lcm0val sylan9eqr
      clcm breqtrrd cn breq2 oveq1 0z lcmcom mpan2 eqtr3d adantll oveq2 adantlr
      jaodan ad2antlr jca wn crab lcmcllem lcmn0cl anbi12d elrab3 syl pm2.61dan
      cv wb mpbid ) ADEZBDEZFZAGHZBGHZIZAABQJZKLZBVIKLZFZVEVHFZVJVKVMAGVIKVCAGK
      LVDVHAMNVEVFVIGHZVGVDVFVNVCVFVDVIGBQJZGAGBQUAVDBGQJZVOGVDGDEVPVOHUBBGUCUD
      BOUEPUFVCVGVNVDVGVCVIAGQJGBGAQUGAOPUHUIZRVMBGVIKVDBGKLVCVHBMUJVQRUKVEVHUL
      FZVIACUTZKLZBVSKLZFZCSUMEZVLCABUNVRVISEWCVLVAABUOWBVLCVISVSVIHVTVJWAVKVSV
      IAKTVSVIBKTUPUQURVBUS $.

    $( A positive integer which both operands of the ` lcm ` operator divide
       bounds it.  (Contributed by Steve Rodriguez, 20-Jan-2020.)  (Proof
       shortened by AV, 16-Sep-2020.) $)
    lcmledvds $p |- ( ( ( K e. NN /\ M e. ZZ /\ N e. ZZ )
                         /\ -. ( M = 0 \/ N = 0 ) )
                      -> ( ( M || K /\ N || K ) -> ( M lcm N ) <_ K ) ) $=
      ( vn cn wcel cz w3a cc0 wceq wo wn wa cdvds wbr cle adantr breq2 c1 ex co
      clcm cv crab cr clt lcmn0val 3adantl1 wi anbi12d elrab cuz cfv wss ssrab2
      cinf nnuz sseqtri infssuzle mpan sylbir 3ad2ant1 imp eqbrtrd ) AEFZBGFZCG
      FZHZBIJCIJKLZMZBANOZCANOZMZBCUBUAZAPOVJVMMVNBDUCZNOZCVONOZMZDEUDZUEUFUPZA
      PVJVNVTJZVMVFVGVIWAVEDBCUGUHQVJVMVTAPOZVHVMWBUIZVIVEVFWCVGVEVMWBVEVMMAVSF
      ZWBVRVMDAEVOAJVPVKVQVLVOABNRVOACNRUJUKVSSULUMZUNWDWBVSEWEVRDEUOUQURAVSSUS
      UTVATVBQVCVDT $.
  $}

  $( The lcm of two integers is zero iff either is zero.  (Contributed by Steve
     Rodriguez, 20-Jan-2020.) $)
  lcmeq0 $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( ( M lcm N ) = 0 <-> ( M = 0 \/
      N = 0 ) ) ) $=
    ( cz wcel wa clcm co cc0 wceq wo wn wne lcmn0cl nnne0d ex necon4bd oveq1 0z
    lcm0val sylan9eqr lcmcom mpan2 eqtr3d adantll oveq2 adantlr jaodan impbid )
    ACDZBCDZEZABFGZHIZAHIZBHIZJZUKUPULHUKUPKZULHLUKUQEULABMNOPUKUPUMUKUNUMUOUJU
    NUMUIUNUJULHBFGZHAHBFQUJBHFGZURHUJHCDUSURIRBHUAUBBSUCTUDUIUOUMUJUOUIULAHFGH
    BHAFUEASTUFUGOUH $.

  $( Closure of the ` lcm ` operator.  (Contributed by Steve Rodriguez,
     20-Jan-2020.) $)
  lcmcl $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M lcm N ) e. NN0 ) $=
    ( cz wcel wa cc0 wceq wo clcm co cn0 lcmcom oveq2 lcm0val sylan9eqr adantll
    adantr eqtrd adantlr jaodan 0nn0 syl6eqel wn lcmn0cl nnnn0d pm2.61dan ) ACD
    ZBCDZEZAFGZBFGZHZABIJZKDUIULEUMFKUIUJUMFGZUKUIUJEUMBAIJZFUIUMUOGUJABLQUHUJU
    OFGUGUJUHUOBFIJFAFBIMBNOPRUGUKUNUHUKUGUMAFIJFBFAIMANOSTUAUBUIULUCEUMABUDUEU
    F $.

  $( The greatest common divisor of two numbers divides their least common
     multiple.  (Contributed by Steve Rodriguez, 20-Jan-2020.) $)
  gcddvdslcm $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M gcd N ) || ( M lcm N ) ) $=
    ( cz wcel wa cgcd co cdvds clcm gcddvds simpld dvdslcm wi gcdcl nn0zd simpl
    wbr lcmcl dvdstr syl3anc mp2and ) ACDZBCDZEZABFGZAHQZAABIGZHQZUEUGHQZUDUFUE
    BHQABJKUDUHBUGHQABLKUDUECDUBUGCDUFUHEUIMUDUEABNOUBUCPUDUGABROUEAUGSTUA $.

  $( Negating one operand of the ` lcm ` operator does not alter the result.
     (Contributed by Steve Rodriguez, 20-Jan-2020.) $)
  lcmneg $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M lcm -u N ) = ( M lcm N ) ) $=
    ( cz wcel wa clcm co cneg cc0 wceq wo wb oveq2 mpbird sylan2 adantr syl2anc
    wbr cdvds wi lcm0val znegcl syl eqtr4d ad2antlr adantl lcmcom oveq2i eqcomi
    eqeq12d negeq oveq2d 3eqtr4a jaodan wn cle dvdslcm simpr cn0 lcmcl negdvdsb
    neg0 anbi2d cn w3a zcn negeq0d orbi2d notbid biimpa adantll lcmn0cl sylanl2
    nn0zd syldan simpl 3anass sylanbrc lcmledvds mpd simplr nnzd syl3an3 3expib
    ex syl3c sylbid nn0red cr letri3d mpbir2and pm2.61dan eqcomd ) ACDZBCDZEZAB
    FGZABHZFGZWPAIJZBIJZKZWQWSJZWPWTXCXAWPWTEZXCBAFGZWRAFGZJZXDXGBIFGZWRIFGZJZW
    OXJWNWTWOXHIXIBUAWOWRCDZXIIJBUBZWRUAUCUDUEWTXGXJLWPWTXEXHXFXIAIBFMAIWRFMUJU
    FNWPXCXGLWTWPWQXEWSXFABUGWOWNXKWSXFJXLAWRUGOUJPNXAXCWPXAAIFGZAIHZFGZWQWSXOX
    MXNIAFVBUHUIBIAFMXAWRXNAFBIUKULUMUFUNWPXBUOZEZXCWQWSUPRZWSWQUPRZXQAWSSRZBWS
    SRZEZXRWPYBXPWPYBXTWRWSSRZEZWOWNXKYDXLAWRUQOWPYAYCXTWPWOWSCDYAYCLWNWOURWPWS
    WOWNXKWSUSDXLAWRUTZOVNBWSVAQVCNPXQWSVDDZWNWOVEZXPYBXRTXQYFWPYGWPXPWTWRIJZKZ
    UOZYFWOXPYJWNWOXPYJWOXBYIWOXAYHWTWOBBVFVGVHVIVJVKZWOWNXKYJYFXLAWRVLVMVOWPXP
    VPZYFWNWOVQVRWPXPURWSABVSQVTXQAWQSRZBWQSRZEZXSWPYOXPABUQPXQYOYMWRWQSRZEZXSX
    QYNYPYMXQWOWQCDYNYPLWNWOXPWAXQWQABVLZWBBWQVAQVCXQWQVDDZWPYJYQXSTZYRYLYKYSWN
    WOYJYTTZWOYSWNXKUUAXLYSWNXKVEYJYTWQAWRVSWEWCWDWFWGVTWPXCXRXSELXPWPWQWSWPWQA
    BUTWHWOWNXKWSWIDXLWNXKEWSYEWHOWJPWKWLWM $.

  $( Negating one operand of the ` lcm ` operator does not alter the result.
     (Contributed by Steve Rodriguez, 20-Jan-2020.) $)
  neglcm $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( -u M lcm N ) = ( M lcm N ) ) $=
    ( cz wcel wa cneg clcm co wceq lcmneg ancoms znegcl lcmcom sylan 3eqtr4d )
    ACDZBCDZEBAFZGHZBAGHZRBGHZABGHQPSTIBAJKPRCDQUASIALRBMNABMO $.

  $( The lcm of two integers is the same as that of their absolute values.
     (Contributed by Steve Rodriguez, 20-Jan-2020.) $)
  lcmabs $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( ( abs ` M ) lcm ( abs ` N ) ) =
      ( M lcm N ) ) $=
    ( cz wcel wa cabs cfv wceq cneg wo co cr zre absor anim12i oveq12 sylan9eqr
    clcm ex lcmneg syl2an wi a1i neglcm znegcl sylan eqtrd ccased mpd ) ACDZBCD
    ZEZAFGZAHZUMAIZHZJZBFGZBHZURBIZHZJZEZUMURRKZABRKZHZUJALDZBLDZVCUKAMBMVGUQVH
    VBANBNOUAULUNUSUPVAVFUNUSEVFUBULUMAURBRPUCULUPUSEZVFVIULVDUOBRKZVEUMUOURBRP
    ABUDZQSULUNVAEZVFVLULVDAUTRKVEUMAURUTRPABTQSULUPVAEZVFVMULVDUOUTRKZVEUMUOUR
    UTRPULVNVJVEUJUOCDUKVNVJHAUEUOBTUFVKUGQSUHUI $.

  ${
    $d n x y M $.  $d n x y N $.  $d n K $.
    $( Lemma for ~ lcmgcd and ~ lcmdvds .  Prove them for positive ` M ` ,
       ` N ` , and ` K ` .  (Contributed by Steve Rodriguez, 20-Jan-2020.)
       (Proof shortened by AV, 16-Sep-2020.) $)
    lcmgcdlem $p |- ( ( M e. NN /\ N e. NN ) ->
        ( ( ( M lcm N ) x. ( M gcd N ) ) = ( abs ` ( M x. N ) ) /\
          ( ( K e. NN /\ ( M || K /\ N || K ) ) -> ( M lcm N ) || K ) ) ) $=
      ( vx cn wcel wa co cmul wceq cdvds wbr wi cz adantr cdiv wb breq2 syl3anc
      cc0 vn vy clcm cgcd cabs cfv nnmulcl nnred nnz zred adantl cle 0red nngt0
      nnre ltled mulge0d absidd cv crab cr clt wo wn anim12i nnne0 neneqd ioran
      cinf sylibr lcmn0val syl2anc wor ltso a1i gcddvds simpld gcdcl dvdsmultr1
      nn0zd 3expb mpancom mpd syl gcdnncl nndivdvds mpbid anbi12d simprd nnne0d
      wne dvdsval2 dvdsmul1 cc nncn nncnd divassd breqtrrd mulcomd oveq1d eqtrd
      jca elrabd elrabi elrab caddc bezout ad2antlr ad2antrr ad3antlr ad3antrrr
      wrex mulne0d divdiv2d oveq2 zcn ad2antrl mulcld ad2antll adddid sylan9eqr
      divdird mul12d divcan5d oveq2d 3eqtrd oveq12d adantlrr imp simprl zmulcld
      ex sylibd 3impia an32s c1 1z r19.9rzv mp2b eqtr2d adantld adantrd zaddcld
      w3a simprr 3expia impr eqeltrd nnzd divne0d mpbird reximdvva bitri dvdsle
      ne0i sylan2b lensymd infmin eqeltrrd divmul3d eleq1 anbi2d imbi12d breq1d
      c0 vtoclg mpcom ) BEFZCEFZGZBCUCHZBCUDHZIHZBCIHZUEUFZJAEFZBAKLZCAKLZGZGZU
      VKAKLZMUVJUVOUVNUVMUVJUVNUVJUVNBCUGZUHUVJBCUVJBUVHBNFZUVIBUIZOZUJUVJCUVIC
      NFZUVHCUIZUKZUJUVHTBULLUVIUVHTBUVHUMBUOBUNUPOUVITCULLUVHUVITCUVIUMCUOCUNU
      PUKUQURUVJUVNUVLPHZUVKJUVNUVMJUVJUVKBDUSZKLZCUWJKLZGZDEUTZVAVBVIZUWIUVJUW
      CUWFGZBTJZCTJZVCVDZUVKUWOJUVHUWCUVIUWFUWDUWGVEZUVJUWQVDZUWRVDZGUWSUVHUXAU
      VIUXBUVHBTBVFZVGUVICTCVFZVGVEUWQUWRVHVJDBCVKVLUVJUAVAUWNUWIVBVAVBVMUVJVNV
      OUVJUWIUVJUVLUVNKLZUWIEFZUVJUWPUXEUWTUWPUVLBKLZUXEUWPUXGUVLCKLZBCVPZVQZUV
      LNFZUWPUXGUXEMZUWPUVLBCVRVTZUXKUWCUWFUXLUVLBCVSWAWBWCWDUVJUVNEFUVLEFUXEUX
      FQUWBBCWEZUVNUVLWFVLWGZUHZUVJUWMBUWIKLZCUWIKLZGDUWIEUWJUWIJUWKUXQUWLUXRUW
      JUWIBKRUWJUWICKRWHUXOUVJUXQUXRUVJBBCUVLPHZIHZUWIKUVJUWCUXSNFZBUXTKLUWEUVJ
      UXHUYAUVJUWPUXHUWTUWPUXGUXHUXIWIWDUVJUXKUVLTWKZUWFUXHUYAQUVJUWPUXKUWTUXMW
      DZUVJUVLUXNWJZUWHUVLCWLSWGBUXSWMVLUVJBCUVLUVHBWNFZUVIBWOOZUVICWNFZUVHCWOZ
      UKZUVJUVLUXNWPZUYDWQWRUVJCCBUVLPHZIHZUWIKUVJUWFUYKNFZCUYLKLUWHUVJUXGUYMUV
      JUWPUXGUWTUXJWDUVJUXKUYBUWCUXGUYMQUYCUYDUWEUVLBWLSWGCUYKWMVLUVJUWICBIHZUV
      LPHUYLUVJUVNUYNUVLPUVJBCUYFUYIWSZWTUVJCBUVLUYIUYFUYJUYDWQXAWRXBXCUVJUAUSZ
      UWNFZGUWIUYPUVJUWIVAFUYQUXPOUYQUYPVAFUVJUYQUYPUWMDUYPEXDUHUKUYQUVJUYPEFZB
      UYPKLZCUYPKLZGZGZUWIUYPULLZUWMVUADUYPEUWJUYPJUWKUYSUWLUYTUWJUYPBKRUWJUYPC
      KRWHXEUVJVUBGZUWIUYPKLZVUCVUDVUEUBNXLZDNXLZVUEVUDUVLBUWJIHZCUBUSZIHZXFHZJ
      ZUBNXLDNXLZVUGUVJVUMVUBUVJUWPVUMUWTDUBBCXGWDOVUDVULVUEDUBNNVUDUWJNFZVUINF
      ZGZGZVULVUEVUQVULGZVUEUYPUWIPHZNFZVURVUSUYPUWJIHZCPHZUYPVUIIHZBPHZXFHZNVU
      QVULVUSVVEJZUVJUYRVUPVULVVFMVUAUVJUYRGZVUPGZVULVVFVVHVULGVUSUYPUVLIHZUVNP
      HZUYPVUHIHZUVNPHZUYPVUJIHZUVNPHZXFHZVVEVVHVUSVVJJVULVVHUYPUVNUVLUYRUYPWNF
      UVJVUPUYPWOXHZUVJUVNWNFUYRVUPUVJUVNUWBWPZXIZUVJUVLWNFUYRVUPUYJXIVVHBCUVJU
      YEUYRVUPUYFXIZUVIUYGUVHUYRVUPUYHXJZUVHBTWKZUVIUYRVUPUXCXKZUVICTWKZUVHUYRV
      UPUXDXJZXMZUVJUYBUYRVUPUYDXIXNOVULVVHVVJUYPVUKIHZUVNPHZVVOVULVVIVWFUVNPUV
      LVUKUYPIXOWTVVHVWGVVKVVMXFHZUVNPHVVOVVHVWFVWHUVNPVVHUYPVUHVUJVVPVVHBUWJVV
      SVUNUWJWNFVVGVUOUWJXPXQZXRZVVHCVUIVVTVUOVUIWNFVVGVUNVUIXPXSZXRZXTWTVVHVVK
      VVMUVNVVHUYPVUHVVPVWJXRVVHUYPVUJVVPVWLXRVVRVWEYBXAYAVVHVVOVVEJVULVVHVVLVV
      BVVNVVDXFVVHVVLBVVAIHZUVNPHVVBVVHVVKVWMUVNPVVHUYPBUWJVVPVVSVWIYCWTVVHVVAC
      BVVHUYPUWJVVPVWIXRVVTVVSVWDVWBYDXAVVHVVNCVVCIHZUVNPHVWNUYNPHVVDVVHVVMVWNU
      VNPVVHUYPCVUIVVPVVTVWKYCWTVVHUVNUYNVWNPUVJUVNUYNJUYRVUPUYOXIYEVVHVVCBCVVH
      UYPVUIVVPVWKXRVVSVVTVWBVWDYDYFYGOYFYLYHYIVUQVVENFZVULUVJVUPVUBVWOUVJVUPGU
      YRVUAVWOUVJUYRVUPVUAVWOMVVGVUPVUAVWOVVGVUPVUAUUDVVBVVDVVGVUPVUAVVBNFZVVHU
      YTVWPUYSVVHUYTCVVAKLZVWPVVHUWFUYPNFZVUNUYTVWQMUVIUWFUVHUYRVUPUWGXJZUYRVWR
      UVJVUPUYPUIXHZVVGVUNVUOYJZCUYPUWJVSSVVHUWFVWCVVANFVWQVWPQVWSVWDVVHUYPUWJV
      WTVXAYKCVVAWLSYMUUAYNVVGVUPVUAVVDNFZVVHUYSVXBUYTVVHUYSBVVCKLZVXBVVHUWCVWR
      VUOUYSVXCMUVHUWCUVIUYRVUPUWDXKZVWTVVGVUNVUOUUEZBUYPVUIVSSVVHUWCVWAVVCNFVX
      CVXBQVXDVWBVVHUYPVUIVWTVXEYKBVVCWLSYMUUBYNUUCUUFYOUUGYOOUUHVUQVUEVUTQZVUL
      VUQUWINFZUWITWKZVWRVXFUVJVXGVUBVUPUVJUWIUXOUUIZXIUVJVXHVUBVUPUVJUVNUVLVVQ
      UYJUVJUVNUWBWJUYDUUJXIUVJUYRVUPVWRVUAVWTYHUWIUYPWLSOUUKYLUULWCVUEVUFVUGYP
      NFZNUVEWKZVUEVUFQYQNYPUUOZVUEUBNYRYSVXJVXKVUFVUGQYQVXLVUFDNYRYSUUMVJZVUDV
      XGUYRVUEVUCMUVJVXGVUBVXIOUVJUYRVUAYJUWIUYPUUNVLWCUUPUUQUURYTZUVJUVNUVKUVL
      VVQUVJUVKUVJUWIUVKEVXNUXOUUSWPUYJUYDUUTWGYTUVJUVTUWAUVPUVJUVTGZUWAUVJUVPU
      VSYJVUDUVKUYPKLZMVXOUWAMUAAEUYPAJZVUDVXOVXPUWAVXQVUBUVTUVJVXQUYRUVPVUAUVS
      UYPAEUVAVXQUYSUVQUYTUVRUYPABKRUYPACKRWHWHUVBUYPAUVKKRUVCVUDVUEVXPVXMUVJVU
      EVXPQVUBUVJUWIUVKUYPKVXNUVDOWGUVFUVGYLXB $.
  $}

  $( The product of two numbers' least common multiple and greatest common
     divisor is the absolute value of the product of the two numbers.  In
     particular, that absolute value _is_ the least common multiple of two
     coprime numbers, for which ` ( M gcd N ) = 1 ` .

     Multiple methods exist for proving this, and it is often proven either as
     a consequence of the fundamental theorem of arithmetic ~ 1arith or of
     B&eacute;zout's identity ~ bezout ; see e.g.
     ~ https://proofwiki.org/wiki/Product_of_GCD_and_LCM and
     ~ https://math.stackexchange.com/a/470827 .  This proof uses the latter to
     first confirm it for positive integers ` M ` and ` N ` (the "Second Proof"
     in the above Stack Exchange page), then shows that implies it for all
     nonzero integer inputs, then finally uses ~ lcm0val to show it applies
     when either or both inputs are zero.  (Contributed by Steve Rodriguez,
     20-Jan-2020.) $)
  lcmgcd $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( ( M lcm N ) x. ( M gcd N ) ) =
      ( abs ` ( M x. N ) ) ) $=
    ( cz wcel wa cc0 wceq clcm co cmul cabs cfv nn0cnd adantl oveq1d cc 3eqtr4d
    adantr cn cdvds wo cgcd gcdcl mul02d 0z lcmcom mpan2 lcm0val eqtr3d abs00bd
    zcn simpr fveq2d mul01d oveq2d jaodan neanior nnabscl anim12i an4s sylan2br
    wn wne wbr wi lcmgcdlem simpld syl lcmabs gcdabs oveq12d oveqan12d nn0abscl
    absidm syl2an absmuld 3eqtr3d pm2.61dan ) ACDZBCDZEZAFGZBFGZUAZABHIZABUBIZJ
    IZABJIZKLZGZWAWBWJWCWAWBEZFBHIZWFJIZFBJIZKLZWGWIWAWMWOGWBWAFWFJIZFWMWOWAWFW
    AWFABUCMUDZWAWLFWFJVTWLFGVSVTBFHIZWLFVTFCDWRWLGUEBFUFUGBUHUINOWAWNWABVTBPDZ
    VSBUKZNZUDUJQRWKWEWLWFJWKAFBHWAWBULZOOWKWHWNKWKAFBJXBOUMQWAWCEZAFHIZWFJIZAF
    JIZKLZWGWIWAXEXGGWCWAWPFXEXGWQWAXDFWFJVSXDFGVTAUHROWAXFWAAVSAPDZVTAUKZRZUNU
    JQRXCWEXDWFJXCBFAHWAWCULZUOOXCWHXFKXCBFAJXKUOUMQUPWAWDVBZEZAKLZBKLZHIZXNXOU
    BIZJIZXNXOJIZKLZWGWIXMXNSDZXOSDZEZXRXTGZXLWAAFVCZBFVCZEYCAFBFUQVSYEVTYFYCVS
    YEEYAVTYFEYBAURBURUSUTVAYCYDFSDXNFTVDXOFTVDEEXPFTVDVEFXNXOVFVGVHWAXRWGGXLWA
    XPWEXQWFJABVIABVJVKRWAXTWIGXLWAXNKLZXOKLZJIZXSXTWIVSXHWSYIXSGVTXIWTXHWSYGXN
    YHXOJAVNBVNVLVOWAXNXOVSXNPDVTVSXNAVMMRVTXOPDVSVTXOBVMMNVPWAABXJXAVPQRVQVR
    $.

  $( The lcm of two integers divides any integer the two divide.  (Contributed
     by Steve Rodriguez, 20-Jan-2020.) $)
  lcmdvds $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) -> ( ( M || K /\ N || K )
      -> ( M lcm N ) || K ) ) $=
    ( cz wcel cc0 wceq cdvds wbr wa clcm co wi wb adantl breq1d imbi12d ex cabs
    cfv w3a id breq1 oveq1 lcmcom mpan lcm0val eqtrd sylan9eqr mpbiri 3ad2antl3
    0z adantrd oveq2 3ad2antl2 adantld wo wne neanior lcmcl nn0zd dvds0 syl a1d
    wn adantr breq2 anbi12d mpbird adantrl adantllr adantlrr anassrs cn nnabscl
    cgcd lcmgcdlem simprd sylani syl2an expdimp dvdsabsb zabscl absdvdsb sylan2
    cmul bitrd adantlr adantll bicomd lcmabs sylan bitr4d mpbid pm2.61dane an4s
    adantrr sylan2br impancom 3impa 3comr ecase3d ) ADEZBDEZCDEZUAZBFGZCFGZBAHI
    ZCAHIZJZBCKLZAHIZMZXFXGXNXFXGJXIXMXJXEXCXGXIXMMZXDXEXGJZXOFAHIZXQMZXQUBZXPX
    IXQXMXQXGXIXQNXEBFAHUCOXPXLFAHXGXEXLFCKLZFBFCKUDXEXTCFKLZFFDEXEXTYAGULFCUEU
    FCUGUHUIPQUJUKUMRXFXHXNXFXHJXJXMXIXDXCXHXJXMMZXEXDXHJZYBXRXSYCXJXQXMXQXHXJX
    QNXDCFAHUCOYCXLFAHXHXDXLBFKLFCFBKUNBUGUIPQUJUOUPRXDXEXCXGXHUQVEZXNMZXDXEXCY
    EXDXEJZYDXCXNYDYFBFURZCFURZJXCXNMZBFCFUSXDYGXEYHYIXDYGJZXEYHJZJZXCXNYLXCJXN
    AFYLXCAFGZXNYJXEXCYMJZXNYHXDXEYNXNYGYFYMXNXCYFYMJXNBFHIZCFHIZJZXLFHIZMZYFYS
    YMYFYRYQYFXLDEZYRYFXLBCUTVAZXLVBVCVDVFYMXNYSNYFYMXKYQXMYRYMXIYOXJYPAFBHVGAF
    CHVGVHAFXLHVGQOVIVJVKVLVMYLXCAFURZXNYLXCUUBJZJBSTZASTZHIZCSTZUUEHIZJZUUDUUG
    KLZUUEHIZMZXNYLUUCUUIUUKYJUUDVNEZUUGVNEZUUCUUIJUUKMYKBVOCVOUUCUUMUUNJZUUEVN
    EZUUIUUKAVOUUOUUJUUDUUGVPLWFLUUDUUGWFLSTGUUPUUIJUUKMUUEUUDUUGVQVRVSVTWAYJXE
    UUCUULXNNZYHXDXEUUCUUQYGYFXCUUQUUBYFXCJZUUIXKUUKXMUURXKUUIUURXIUUFXJUUHXDXC
    XIUUFNXEXDXCJXIBUUEHIZUUFBAWBXCXDUUEDEZUUSUUFNAWCZBUUEWDWEWGWHXEXCXJUUHNXDX
    EXCJXJCUUEHIZUUHCAWBXCXEUUTUVBUUHNUVACUUEWDWEWGWIVHWJUURUUKXLUUEHIZXMYFUUKU
    VCNXCYFUUJXLUUEHBCWKPVFYFYTXCXMUVCNUUAXLAWBWLWMQWQVKVLWNVMWORWPWRWSWTXAXB
    $.

  $( The lcm of an integer and itself is its absolute value.  (Contributed by
     Steve Rodriguez, 20-Jan-2020.) $)
  lcmid $p |- ( M e. ZZ -> ( M lcm M ) = ( abs ` M ) ) $=
    ( cz wcel clcm cabs cfv wceq cc0 oveq2 fveq2 abs0 syl6eq eqeq12d wne anidms
    co wa cc adantr cmul lcmcl nn0cnd zabscl zcnd zcn simpr absne0d cgcd lcmgcd
    gcdid oveq2d absmuld 3eqtr3d mulcan2ad lcm0val pm2.61ne ) ABCZAADPZAEFZGAHD
    PZHGAHAHGZURUTUSHAHADIVAUSHEFHAHEJKLMUQAHNZQZURUSUSUQURRCZVBUQVDUQUQQURAAUA
    UBOSUQUSRCVBUQUSAUCUDSZVEVCAUQARCVBAUEZSUQVBUFUGUQURUSTPZUSUSTPZGVBUQURAAUH
    PZTPZAATPEFZVGVHUQVJVKGAAUIOUQVIUSURTAUJUKUQAAVFVFULUMSUNAUOUP $.

  $( The lcm of an integer and 1 is the absolute value of the integer.
     (Contributed by AV, 23-Aug-2020.) $)
  lcm1 $p |- ( M e. ZZ -> ( M lcm 1 ) = ( abs ` M ) ) $=
    ( cz wcel c1 clcm co cgcd cmul cabs cfv gcd1 oveq2d cn0 lcmcl mpan2 mulid1d
    1z nn0cnd eqtr2d wceq lcmgcd zcn fveq2d 3eqtrd ) ABCZADEFZUFADGFZHFZADHFZIJ
    ZAIJUEUHUFDHFUFUEUGDUFHAKLUEUFUEUFUEDBCZUFMCQADNORPSUEUKUHUJTQADUAOUEUIAIUE
    AAUBPUCUD $.

  $( The product of two positive integers' least common multiple and greatest
     common divisor is the product of the two integers.  (Contributed by AV,
     27-Aug-2020.) $)
  lcmgcdnn $p |- ( ( M e. NN /\ N e. NN )
                   -> ( ( M lcm N ) x. ( M gcd N ) ) = ( M x. N ) ) $=
    ( cn wcel wa clcm co cgcd cmul cabs cfv cz nnz lcmgcd syl2an cn0 cr cc0 cle
    wceq wbr nnmulcl nnnn0d nn0re nn0ge0 jca absid 3syl eqtrd ) ACDZBCDZEZABFGA
    BHGIGZABIGZJKZUNUJALDBLDUMUOTUKAMBMABNOULUNPDZUNQDZRUNSUAZEUOUNTULUNABUBUCU
    PUQURUNUDUNUEUFUNUGUHUI $.

  $( Two integers' absolute values are equal iff their least common multiple
     and greatest common divisor are equal.  (Contributed by Steve Rodriguez,
     20-Jan-2020.) $)
  lcmgcdeq $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
      ( ( M lcm N ) = ( M gcd N ) <-> ( abs ` M ) = ( abs ` N ) ) ) $=
    ( cz wcel wa clcm co cgcd wceq cabs cfv cdvds wbr adantr wi mp2and wb sylan
    imp mpbid dvdslcm simpld gcddvds simprd breq1 syl5ibrcom lcmcl nn0zd dvdstr
    syl3an2 3com12 3expb anidms absdvdsb zabscl dvdsabsb bitrd 3coml ancoms cn0
    nn0abscl anim12i dvdseq ex lcmid syl gcdid eqtr4d eqeq12d syl5ibcom adantlr
    oveq2 lcmabs gcdabs impbida ) ACDZBCDZEZABFGZABHGZIZAJKZBJKZIZVRWAEZWBWCLMZ
    WCWBLMZWDWEABLMZWFWEAVSLMZVSBLMZWHVRWIWAVRWIBVSLMZABUAZUBNVRWAWJVRWJWAVTBLM
    ZVRVTALMZWMABUCZUDVSVTBLUEUFSVRWIWJEWHOZWAVRWPVRVPVQWPVPVRVQWPVRVPVSCDZVQWP
    VRVSABUGUHZAVSBUIUJUKULUMNPVRWHWFQWAVRWHWBBLMZWFABUNVPWBCDZVQWSWFQAUOZWBBUP
    RUQNTWEBALMZWGWEWKVSALMZXBVRWKWAVRWIWKWLUDNVRWAXCVRXCWAWNVRWNWMWOUBVSVTALUE
    UFSVRWKXCEXBOZWAVRXDVRVPVQXDVQVRVPXDVRVQWQVPXDWRBVSAUIUJURULUMNPVRXBWGQZWAV
    QVPXEVQVPEXBWCALMZWGBAUNVQWCCDVPXFWGQBUOWCAUPRUQUSNTVRWFWGEZWDOWAVRXGWDVRWB
    UTDZWCUTDZEXGWDVPXHVQXIAVABVAVBWBWCVCRVDNPVRWDEWBWCFGZWBWCHGZIZWAVPWDXLVQVP
    WDXLVPWBWBFGZWBWBHGZIWDXLVPXMWBJKZXNVPWTXMXOIXAWBVEVFVPWTXNXOIXAWBVGVFVHWDX
    MXJXNXKWBWCWBFVLWBWCWBHVLVIVJSVKVRXLWAQWDVRXJVSXKVTABVMABVNVINTVO $.

  $( Biconditional form of ~ lcmdvds .  (Contributed by Steve Rodriguez,
     20-Jan-2020.) $)
  lcmdvdsb $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) -> ( ( M || K /\ N || K )
      <-> ( M lcm N ) || K ) ) $=
    ( cz wcel w3a cdvds wbr wa co lcmdvds dvdslcm simpld 3adant1 wi simp2 lcmcl
    clcm dvdstr mpand nn0zd simp1 syl3anc simprd 3com13 syld3an2 jcad impbid )
    ADEZBDEZCDEZFZBAGHZCAGHZIBCRJZAGHZABCKULUPUMUNULBUOGHZUPUMUJUKUQUIUJUKIZUQC
    UOGHZBCLZMNULUJUODEZUIUQUPIUMOUIUJUKPUJUKVAUIURUOBCQUANZUIUJUKUBBUOASUCTULU
    SUPUNUJUKUSUIURUQUSUTUDNUIVAUJUKUSUPIUNOZVBUKVAUIVCCUOASUEUFTUGUH $.

  ${
    $d x M $.  $d x N $.  $d x P $.
    $( Associative law for ` lcm ` operator.  (Contributed by Steve Rodriguez,
       20-Jan-2020.)  (Proof shortened by AV, 16-Sep-2020.) $)
    lcmass $p |- ( ( N e. ZZ /\ M e. ZZ /\ P e. ZZ ) -> ( ( N lcm M ) lcm P ) =
        ( N lcm ( M lcm P ) ) ) $=
      ( vx cz wcel cc0 wceq wo cdvds wbr wa cn crab cr clt cinf cif clcm wb w3a
      cv orass anass a1i rabbiia infeq1i ifbieq2i cn0 lcmcl 3adant3 nn0zd simp3
      co lcmval syl2anc lcmeq0 orbi1d bicomd adantl simp1 adantr simpl2 syl3anc
      nnz lcmdvdsb anbi1d rabbidva infeq1d eqtr4d 3adant1 orbi2d anbi2d 3eqtr4a
      ifbieq2d ) CEFZBEFZAEFZUAZCGHZBGHZIZAGHZIZGCDUBZJKZBWEJKZLZAWEJKZLZDMNZOP
      QZRZVTWAWCIZIZGWFWGWILZLZDMNZOPQZRZCBSUNZASUNZCBASUNZSUNZWDWOWLWSGVTWAWCU
      COWKWRPWJWQDMWJWQTWEMFZWFWGWIUDUEUFUGUHVSXBXAGHZWCIZGXAWEJKZWILZDMNZOPQZR
      ZWMVSXAEFVRXBXLHVSXAVPVQXAUIFVRCBUJUKULVPVQVRUMZDXAAUOUPVSWDXGWLXKGVSXGWD
      VSXFWBWCVPVQXFWBTVRCBUQUKURUSVSOWKXJPVSWJXIDMVSXELZWHXHWIXNWEEFZVPVQWHXHT
      XEXOVSWEVEUTZVSVPXEVPVQVRVAZVBVPVQVRXEVCZWECBVFVDVGVHVIVOVJVSXDVTXCGHZIZG
      WFXCWEJKZLZDMNZOPQZRZWTVSVPXCEFXDYEHXQVSXCVQVRXCUIFVPBAUJVKULDCXCUOUPVSWO
      XTWSYDGVSXTWOVSXSWNVTVQVRXSWNTVPBAUQVKVLUSVSOWRYCPVSWQYBDMXNWPYAWFXNXOVQV
      RWPYATXPXRVSVRXEXMVBWEBAVFVDVMVHVIVOVJVN $.
  $}

  $( The least common multiple of three and two is six.  In contrast to
     ~ 3lcm2e6 , this proof does not use the property of 2 and 3 being prime,
     therefore it is much longer.  (Contributed by Steve Rodriguez,
     20-Jan-2020.)  (Revised by AV, 27-Aug-2020.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  3lcm2e6woprm $p |- ( 3 lcm 2 ) = 6 $=
    ( c3 c2 co cgcd cdiv c1 c6 cc wcel cc0 wa wceq cz 3z 2z mp2an pm3.2i oveq2i
    cn 1z clcm cmul wne 3cn 2cn mulcli lcmcl nn0cnd wn 2ne0 neii intnan gcdn0cl
    nncnd nnne0i w3a 3nn lcmgcdnn eqcomd mp1i divmul3 mpbird mp3an gcdcom caddc
    2nn cabs cfv gcdid ax-mp abs1 eqtr2i gcdadd 1p1e2 3eqtri 1p2e3 eqtri oveq1i
    3t2e6 6cn div1i ) ABUACZABUBCZABDCZECZWCFECZGWCHIZWBHIZWDHIZWDJUCZKZWBWELAB
    UDUEUFAMIZBMIZWHNOWLWMKZWBABUGUHPWIWJWNAJLZBJLZKUIZWIWLWMNOQZWPWOBJUJUKULZW
    NWQKWDABUMZUNPWDWNWQWDSIWRWSWTPUOQWGWHWKUPZWEWBXAWEWBLWCWBWDUBCZLZASIZBSIZK
    ZXCXAXDXEUQVFQXFXBWCABURUSUTWCWBWDVAVBUSVCWDFWCEWDBADCZFWLWMWDXGLNOABVDPFBF
    BVECZDCZXGFFBDCZBFDCZXIFFFDCZFFFVECZDCZXJXLFVGVHZFFMIZXLXOLTFVIVJVKVLXPXPXL
    XNLTTFFVMPXMBFDVNRVOXPWMXJXKLTOFBVDPWMXPXKXILOTBFVMPVOXHABDVPRVLVQRWFGFECGW
    CGFEVSVRGVTWAVQVO $.

  $( The least common multiple of six and four is twelve.  (Contributed by AV,
     27-Aug-2020.) $)
  6lcm4e12 $p |- ( 6 lcm 4 ) = ; 1 2 $=
    ( c6 c4 co cmul cdiv c2 cc wcel cc0 wa wceq 6cn 4cn cz pm3.2i nn0cnd eqcomd
    ax-mp cn oveq2i clcm cgcd c1 cdc mulcli 6nn0 nn0zi 4z lcmcl gcdcl 4ne0 neii
    wne wn intnan gcdn0cl nnne0i w3a 6nn 4nn lcmgcdnn mp1i divmul3 mpbird mp3an
    6gcd4e2 2cn 2ne0 divassi 4d2e2 6t2e12 3eqtri ) ABUACZABDCZABUBCZECZVNFECZUC
    FUDZVNGHZVMGHZVOGHZVOIUMZJZVMVPKABLMUEANHZBNHZJZVTWDWEAUFUGUHOZWFVMABUIPRWA
    WBWFWAWGWFVOABUJPRVOWFAIKZBIKZJUNZJVOSHWFWJWGWIWHBIUKULUOOABUPRUQOVSVTWCURZ
    VPVMWKVPVMKVNVMVODCZKWKWLVNASHZBSHZJWLVNKWKWMWNUSUTOABVAVBQVNVMVOVCVDQVEVOF
    VNEVFTVQABFECZDCAFDCVRABFLMVGVHVIWOFADVJTVKVLVL $.

  ${
    $d Z z $.  $d ph m z $.
    absproddvds.s $e |- ( ph -> Z C_ ZZ ) $.
    absproddvds.f $e |- ( ph -> Z e. Fin ) $.
    absproddvds.p $e |- P = ( abs ` prod_ z e. Z z ) $.
    $( The absolute value of the product of the elements of a finite subset of
       the integers is divisible by each element of this subset.  (Contributed
       by AV, 21-Aug-2020.) $)
    absproddvds $p |- ( ph -> A. m e. Z m || P ) $=
      ( cv cprod cabs cfv cdvds wbr wral fproddvdsd wcel wa cz sselda wb adantr
      fprodzcl dvdsabsb syl2anc biimpd ralimdva mpd breq2i ralbii sylibr ) ADIZ
      EBIZBJZKLZMNZDEOZULCMNZDEOAULUNMNZDEOUQADEBGFPAUSUPDEAULEQZRZUSUPVAULSQUN
      SQZUSUPUAAESULFTAVBUTAEUMBGAESUMFTUCUBULUNUDUEUFUGUHURUPDECUOULMHUIUJUK
      $.

    absprodnn.z $e |- ( ph -> 0 e/ Z ) $.
    $( The absolute value of the product of the elements of a finite subset of
       the integers not containing 0 is a poitive integer.  (Contributed by AV,
       21-Aug-2020.) $)
    absprodnn $p |- ( ph -> P e. NN ) $=
      ( cv cprod cabs cfv cn cz wcel cc0 wne sselda fprodzcl wa elnelne2 expcom
      zcnd wnel wi syl imp fprodn0 nnabscl syl2anc syl5eqel ) ACDBIZBJZKLZMGAUM
      NOUMPQUNMOADULBFADNULERZSADULBFAULDOZTULUOUCAUPULPQZAPDUDZUPUQUEHUPURUQUL
      PDUAUBUFUGUHUMUIUJUK $.
  $}

  ${
    $d Z k m n $.
    $( For each finite subset of the integers not containing 0 there is a
       positive integer which is divisible by each element of this subset.
       (Contributed by AV, 21-Aug-2020.) $)
    fissn0dvds $p |- ( ( Z C_ ZZ /\ Z e. Fin /\ 0 e/ Z )
                       -> E. n e. NN A. m e. Z m || n ) $=
      ( vk cz wss cfn wcel cc0 wnel w3a cv cdvds wbr wral cprod cabs cfv simp1
      cn simp2 eqid simp3 absprodnn wceq wb ralbidv adantl absproddvds rspcedvd
      breq2 ) CEFZCGHZICJZKZALZBLZMNZACOZUPCDLDPQRZMNZACOZBUTTUODUTCULUMUNSZULU
      MUNUAZUTUBZULUMUNUCUDUQUTUEZUSVBUFUOVFURVAACUQUTUPMUKUGUHUODUTACVCVDVEUIU
      J $.

    $( For each finite subset of the integers not containing 0 there is a
       positive integer which is divisible by each element of this subset.
       (Contributed by AV, 21-Aug-2020.) $)
    fissn0dvdsn0 $p |- ( ( Z C_ ZZ /\ Z e. Fin /\ 0 e/ Z )
                         -> { n e. NN | A. m e. Z m || n } =/= (/) ) $=
      ( cz wss cfn wcel cc0 wnel w3a cv cdvds wbr wral wrex crab wne fissn0dvds
      cn c0 rabn0 sylibr ) CDECFGHCIJAKBKLMACNZBSOUCBSPTQABCRUCBSUAUB $.
  $}

  ${
    $d Z m n z $.
    $( Value of the ` _lcm ` function. ` ( _lcm `` Z ) ` is the least common
       multiple of the integers contained in the finite subset of integers
       ` Z ` .  If at least one of the elements of ` Z ` is ` 0 ` , the result
       is defined conventionally as ` 0 ` .  (Contributed by AV, 21-Apr-2020.)
       (Revised by AV, 16-Sep-2020.) $)
    lcmfval $p |- ( ( Z C_ ZZ /\ Z e. Fin )
                    -> ( _lcm ` Z ) = if ( 0 e. Z , 0 ,
                      inf ( { n e. NN | A. m e. Z m || n } , RR , < ) ) ) $=
      ( vz cz wss wcel wa cc0 cv wral cn crab cr clt cinf cif clcmf cn0 wceq wb
      cfn cdvds wbr cpw df-lcmf a1i eleq2 raleq rabbidv infeq1d ifbieq2d adantl
      cmpt cvv zex ssex elpwg syl ibir adantr 0nn0 wn wnel df-nel nnssnn0 sstri
      ssrab2 c1 cuz cfv c0 wne nnuz sseqtri fissn0dvdsn0 3expa infssuzcl sseldi
      sylancr sylan2br ifclda fvmptd ) CEFZCUBGZHZDCIDJZGZIAJBJUCUDZAWGKZBLMZNO
      PZQZICGZIWIACKZBLMZNOPZQZEUEZRSRDWSWMUNTWFDABUFUGWGCTZWMWRTWFWTWHWNWLWQIW
      GCIUHWTNWKWPOWTWJWOBLWIAWGCUIUJUKULUMWDCWSGZWEWDXAWDCUOGXAWDUACEUPUQCEUOU
      RUSUTVAWFWNIWQSISGWFWNHVBUGWNVCWFICVDZWQSGICVEWFXBHZWPSWQWPLSWOBLVHZVFVGX
      CWPVIVJVKZFWPVLVMZWQWPGWPLXEXDVNVOWDWEXBXFABCVPVQWPVIVRVTVSWAWBWC $.

    $( The value, by convention, of the least common multiple for a set
       containing 0 is 0.  (Contributed by AV, 21-Apr-2020.)  (Proof shortened
       by AV, 16-Sep-2020.) $)
    lcmf0val $p |- ( ( Z C_ ZZ /\ 0 e. Z ) -> ( _lcm ` Z ) = 0 ) $=
      ( vz vm vn cz wss cc0 wcel wa cv wral cn crab clt cinf cif clcmf wceq cvv
      cr cdvds wbr cpw cmpt df-lcmf eleq2 raleq rabbidv infeq1d ifbieq2d iftrue
      a1i adantl sylan9eqr wb zex ssex elpwg syl ibir adantr simpr fvmptd ) AEF
      ZGAHZIZBAGBJZHZGCJDJUAUBZCVGKZDLMZTNOZPZGEUCZQAQBVNVMUDRVFBCDUEULVGARZVFV
      MVEGVICAKZDLMZTNOZPZGVOVHVEVLVRGVGAGUFVOTVKVQNVOVJVPDLVICVGAUGUHUIUJVEVSG
      RVDVEGVRUKUMUNVDAVNHZVEVDVTVDASHVTVDUOAEUPUQAESURUSUTVAVDVEVBVC $.

    $( The value of the ` _lcm ` function for a set without 0.  (Contributed by
       AV, 21-Aug-2020.)  (Revised by AV, 16-Sep-2020.) $)
    lcmfn0val $p |- ( ( Z C_ ZZ /\ Z e. Fin /\ 0 e/ Z ) -> ( _lcm ` Z )
                      = inf ( { n e. NN | A. m e. Z m || n } , RR , < ) ) $=
      ( cz wss cfn wcel cc0 wnel w3a clcmf cfv cv cdvds wbr wral cn crab wceq
      cr clt cinf cif lcmfval 3adant3 wn df-nel iffalse sylbi 3ad2ant3 eqtrd )
      CDEZCFGZHCIZJCKLZHCGZHAMBMNOACPBQRTUAUBZUCZUQULUMUOURSUNABCUDUEUNULURUQSZ
      UMUNUPUFUSHCUGUPHUQUHUIUJUK $.

    $( The value of the ` _lcm ` function for a subset of the positive
       integers.  (Contributed by AV, 21-Aug-2020.)  (Revised by AV,
       16-Sep-2020.) $)
    lcmfnnval $p |- ( ( Z C_ NN /\ Z e. Fin ) -> ( _lcm ` Z )
                      = inf ( { n e. NN | A. m e. Z m || n } , RR , < ) ) $=
      ( cn wss cfn wcel wa cz cc0 wnel clcmf cfv cv cdvds wbr wral crab adantr
      cr clt cinf wceq id nnssz syl6ss simpr 0nnn nelir ssel nelcon3d lcmfn0val
      mpi syl3anc ) CDEZCFGZHCIEZUPJCKZCLMANBNOPACQBDRTUAUBUCUOUQUPUOCDIUOUDUEU
      FSUOUPUGUOURUPUOJDKURJDUHUIUOJCJDCDJUJUKUMSABCULUN $.

    $( Lemma for ~ lcmfn0cl and ~ dvdslcmf .  (Contributed by AV, 21-Aug-2020.)
       (Proof shortened by AV, 16-Sep-2020.) $)
    lcmfcllem $p |- ( ( Z C_ ZZ /\ Z e. Fin /\ 0 e/ Z )
                      -> ( _lcm ` Z ) e. { n e. NN | A. m e. Z m || n } ) $=
      ( cz wss cfn wcel cc0 wnel w3a clcmf cfv cv cdvds wbr wral cn crab cr c1
      clt cinf lcmfn0val cuz c0 wne nnuz sseqtri fissn0dvdsn0 infssuzcl sylancr
      ssrab2 eqeltrd ) CDECFGHCIJZCKLAMBMNOACPZBQRZSUAUBZUPABCUCUNUPTUDLZEUPUEU
      FUQUPGUPQURUOBQULUGUHABCUIUPTUJUKUM $.

    $( Closure of the ` _lcm ` function.  (Contributed by AV, 21-Aug-2020.) $)
    lcmfn0cl $p |- ( ( Z C_ ZZ /\ Z e. Fin /\ 0 e/ Z )
                     -> ( _lcm ` Z ) e. NN ) $=
      ( vm vn cz wss cfn wcel cc0 wnel w3a cv cdvds wbr wral cn crab cfv ssrab2
      clcmf lcmfcllem sseldi ) ADEAFGHAIJBKCKLMBANZCOPOASQUBCORBCATUA $.
  $}

  ${
    $d M m n $.  $d N m n $.
    $( The value of the ` _lcm ` function for an unordered pair is the value of
       the ` lcm ` operator for both elements.  (Contributed by AV,
       22-Aug-2020.)  (Proof shortened by AV, 16-Sep-2020.) $)
    lcmfpr $p |- ( ( M e. ZZ /\ N e. ZZ )
                   -> ( _lcm ` { M , N } ) = ( M lcm N ) ) $=
      ( vm vn cz wcel wa cc0 cv cdvds wbr cn crab cr clt cinf cif wceq wo eqcom
      cpr wral clcmf cfv clcm co wb c0ex orbi12i bitri a1i breq1 ralprg rabbidv
      elpr infeq1d ifbieq2d wss cfn prssi prfi lcmfval sylancl lcmval 3eqtr4d )
      AEFBEFGZHABUAZFZHCIZDIZJKZCVGUBZDLMZNOPZQZAHRZBHRZSZHAVJJKZBVJJKZGZDLMZNO
      PZQVGUCUDZABUEUFVFVHVRVNWCHVHVRUGVFVHHARZHBRZSVRHABUHUOWEVPWFVQHATHBTUIUJ
      UKVFNVMWBOVFVLWADLVKVSVTCABEEVIAVJJULVIBVJJULUMUNUPUQVFVGEURVGUSFWDVORABE
      UTABVACDVGVBVCDABVDVE $.
  $}

  $( Closure of the ` _lcm ` function.  (Contributed by AV, 21-Aug-2020.) $)
  lcmfcl $p |- ( ( Z C_ ZZ /\ Z e. Fin ) -> ( _lcm ` Z ) e. NN0 ) $=
    ( cz wss cfn wcel wa cc0 clcmf cfv cn0 lcmf0val 0nn0 syl6eqel adantlr wn cn
    wnel df-nel lcmfn0cl 3expa sylan2br nnnn0d pm2.61dan ) ABCZADEZFZGAEZAHIZJE
    ZUDUGUIUEUDUGFUHGJAKLMNUFUGOZFUHUJUFGAQZUHPEZGARUDUEUKULASTUAUBUC $.

  $( Closure of the ` _lcm ` function.  (Contributed by AV, 20-Apr-2020.) $)
  lcmfnncl $p |- ( ( Z C_ NN /\ Z e. Fin ) -> ( _lcm ` Z ) e. NN ) $=
    ( cn wss cfn wcel wa cz cc0 wnel clcmf id nnssz syl6ss adantr simpr wn 0nnn
    cfv ssel mtoi df-nel sylibr lcmfn0cl syl3anc ) ABCZADEZFAGCZUFHAIZAJRBEUEUG
    UFUEABGUEKLMNUEUFOUEUHUFUEHAEZPUHUEUIHBEQABHSTHAUAUBNAUCUD $.

  $( The least common multiple of a set of integers is 0 iff at least one of
     its element is 0.  (Contributed by AV, 21-Aug-2020.) $)
  lcmfeq0b $p |- ( ( Z C_ ZZ /\ Z e. Fin )
                   -> ( ( _lcm ` Z ) = 0 <-> 0 e. Z ) ) $=
    ( cz wss cfn wcel wa clcmf cfv cc0 wceq wnel wne df-nel w3a lcmfn0cl nnne0d
    wn 3expia syl5bir necon4bd wi lcmf0val ex adantr impbid ) ABCZADEZFZAGHZIJZ
    IAEZUHUKUIIUKQIAKZUHUIILZIAMUFUGULUMUFUGULNUIAOPRSTUFUKUJUAUGUFUKUJAUBUCUDU
    E $.

  ${
    $d Z n x $.
    $( The least common multiple of a set of integers is divisible by each of
       its elements.  (Contributed by AV, 22-Aug-2020.) $)
    dvdslcmf $p |- ( ( Z C_ ZZ /\ Z e. Fin )
                     -> A. x e. Z x || ( _lcm ` Z ) ) $=
      ( vn cz wss cfn wcel wa cc0 cv clcmf cdvds wbr wral adantr syl wceq 3expa
      cn sylan2br cfv wi ssel imp dvds0 lcmf0val ad4ant13 breqtrrd ralrimiva wn
      crab wnel df-nel lcmfcllem lcmfn0cl breq2 ralbidv elrab3 mpbid pm2.61dan
      wb ) BDEZBFGZHZIBGZAJZBKUAZLMZABNZVDVEHZVHABVJVFBGZHZVFIVGLVLVFDGZVFILMVJ
      VKVMVDVKVMUBZVEVBVNVCBDVFUCOOUDVFUEPVBVEVGIQVCVKBUFUGUHUIVDVEUJZHZVGVFCJZ
      LMZABNZCSUKGZVIVOVDIBULZVTIBUMZVBVCWAVTACBUNRTVPVGSGZVTVIVAVOVDWAWCWBVBVC
      WAWCBUORTVSVICVGSVQVGQVRVHABVQVGVFLUPUQURPUSUT $.
  $}

  ${
    $d K k m $.  $d Z k m $.
    $( A positive integer which is divisible by all elements of a set of
       integers bounds the least common multiple of the set.  (Contributed by
       AV, 22-Aug-2020.)  (Proof shortened by AV, 16-Sep-2020.) $)
    lcmfledvds $p |- ( ( Z C_ ZZ /\ Z e. Fin /\ 0 e/ Z )
                       -> ( ( K e. NN /\ A. m e. Z m || K )
                            -> ( _lcm ` Z ) <_ K ) ) $=
      ( vk cz wss cfn wcel cc0 wnel cn cv cdvds wbr wral wa cfv cle wceq c1 w3a
      clcmf crab cr clt cinf lcmfn0val adantr ssrab2 nnuz sseqtri simpr ralbidv
      cuz breq2 elrab sylibr infssuzle sylancr 3ad2antl1 eqbrtrd ex ) CEFZCGHZI
      CJZUAZBKHALZBMNZACOZPZCUBQZBRNVFVJPVKVGDLZMNZACOZDKUCZUDUEUFZBRVFVKVPSVJA
      DCUGUHVCVDVJVPBRNZVEVCVJPZVOTUNQZFBVOHZVQVOKVSVNDKUIUJUKVRVJVTVCVJULVNVID
      BKVLBSVMVHACVLBVGMUOUMUPUQBVOTURUSUTVAVB $.

    $( Characterization of the least common multiple of a set of integers
       (without 0):  A positiven integer is the least common multiple of a set
       of integers iff it divides each of the elements of the set and every
       integer which divides each of the elements of the set is greater than or
       equal to this integer.  (Contributed by AV, 22-Aug-2020.) $)
    lcmf $p |- ( ( K e. NN /\ ( Z C_ ZZ /\ Z e. Fin /\ 0 e/ Z ) )
                 -> ( K = ( _lcm ` Z ) <-> ( A. m e. Z m || K
                      /\ A. k e. NN ( A. m e. Z m || k -> K <_ k ) ) ) ) $=
      ( cn wcel wa wceq cv cdvds wbr cle wi lcmfledvds adantl breq2 ralbidv syl
      wral cr wss cfn cc0 wnel w3a clcmf cfv dvdslcmf 3adant3 expdimp ralrimiva
      cz jca breq1 imbi2d anbi12d syl5ibrcom lcmfn0cl imbi12d rspcv adantld clt
      wo wb nnre nnred anim12i leloe expd impcom wn lenlt syl2anr pm2.21 syl6bi
      syldc adantr com13 2a1 jaoi com12 sylbid embantd com23 mpdd impbid ) CEFZ
      DULUAZDUBFZUCDUDZUEZGZCDUFUGZHZBIZCJKZBDSZWOAIZJKZBDSZCWRLKZMZAESZGZWLXDW
      NWOWMJKZBDSZWTWMWRLKZMZAESZGZWKXJWGWKXFXIWHWIXFWJBDUHUIZWKXHAEWKWREFWTXGB
      WRDNUJUKUMOWNWQXFXCXIWNWPXEBDCWMWOJPQWNXBXHAEWNXAXGWTCWMWRLUNUOQUPUQWLXDX
      FCWMLKZMZWNWLXCXMWQWLWMEFZXCXMMWKXNWGDURZOXBXMAWMEWRWMHZWTXFXAXLXPWSXEBDW
      RWMWOJPQWRWMCLPUSUTRVAWLXMXDWNWLXFXLXDWNMZWKXFWGXKOWLXLCWMVBKZWNVCZXQWLCT
      FZWMTFZGXLXSVDWGXTWKYACVEZWKWMXOVFZVGCWMVHRXSWLXQXRWLXQMWNXDWLXRWNWQWLXRW
      NMZMXCWLWQWMCLKZYDWKWGWQYEMWKWGWQYEBCDNVIVJWLYEXRVKZYDWKYAXTYEYFVDWGYCYBW
      MCVLVMXRWNVNVOVPVQVRWNWLXDVSVTWAWBWCWDWEWF $.
  $}

  ${
    $d m n $.
    $( The least common multiple of the empty set is 1.  (Contributed by AV,
       22-Aug-2020.)  (Proof shortened by AV, 16-Sep-2020.) $)
    lcmf0 $p |- ( _lcm ` (/) ) = 1 $=
      ( vm vn c0 clcmf cfv cv cdvds wbr wral cn crab cr clt cinf c1 wss cfn cc0
      cz wceq wcel wnel 0fin noel nelir lcmfn0val mp3an ral0 rgenw rabid2 mpbir
      0ss eqcomi infeq1i nninf 3eqtri ) CDEZAFBFGHZACIZBJKZLMNZJLMNOCSPCQUARCUB
      UQVATSULUCRCRUDUEABCUFUGLUTJMJUTJUTTUSBJIUSBJURAUHUIUSBJUJUKUMUNUOUP $.
  $}

  $( The least common multiple of a singleton is its absolute value.
     (Contributed by AV, 22-Aug-2020.) $)
  lcmfsn $p |- ( M e. ZZ -> ( _lcm ` { M } ) = ( abs ` M ) ) $=
    ( cz wcel csn clcmf cfv cpr clcm co cabs wceq dfsn2 a1i fveq2d lcmfpr lcmid
    anidms 3eqtrd ) ABCZADZEFAAGZEFZAAHIZAJFSTUAETUAKSALMNSUBUCKAAOQAPR $.

  ${
    $d A k m $.  $d B k m $.  $d C k m $.
    $( The least common multiple of a triple of integers is the least common
       multiple of the third integer and the least common multiple of the first
       two integers.  Although there would be a shorter proof using
       ~ lcmfunsn , this explicit proof (not based on induction) should be
       kept.  (Proof modification is discouraged.)  (Contributed by AV,
       23-Aug-2020.) $)
    lcmftp $p |- ( ( A e. ZZ /\ B e. ZZ /\ C e. ZZ )
                 -> ( _lcm ` { A , B , C } ) = ( ( A lcm B ) lcm C ) ) $=
      ( vm cc0 wceq cz wcel w3a co wa syl adantl adantr 3adant3 wn cdvds wbr wi
      clcm vk w3o ctp clcmf cfv wss wb 0z eltpg ax-mp biimpri anim12ci lcmf0val
      tpssi lcmcom mpancom lcm0val eqtrd eqcomd 3ad2ant3 3ad2ant2 oveq1d 3eqtrd
      0zd oveq1 3ad2ant1 oveq2 3eqtr3d lcmcl nn0zd sylan9eqr 3jaoian cv wral cn
      cle simp3 jca dvdslcm simp1 cn0 3jca dvdstr expd com12 mpcom impcom simpr
      simp2 mpand mpdan breq1 raltpg mpbird ad2antlr 3ioran eqcom notbii biimpi
      wo anbi12i ioran sylibr sylbi lcmn0cl neneqd nnz 3anass lcmdvds lcmledvds
      id nnne0 imp syl22anc ex sylbid ralrimiva cfn wnel anim12i tpfi a1i con3d
      biimpd df-nel lcmf syl13anc pm2.61ian ) EAFZEBFZECFZUBZAGHZBGHZCGHZIZABCU
      CZUDUEZABTJZCTJZFYLYPKZYREYTUUAYQGUFZEYQHZKYREFYLUUCYPUUBUUCYLEGHZUUCYLUG
      ZUHEABCGUIUJZUKABCGUNZULYQUMLYIYPEYTFYJYKYIYPKZEECTJZEBTJZCTJZYTYPEUUIFZY
      IYOYMUULYNYOUUIEYOUUICETJZEUUDYOUUIUUMFYOVDECUOUPCUQURZUSUTMUUHEUUJCTYPEU
      UJFZYIYNYMUUOYOYNUUJEYNUUJBETJZEUUDYNUUJUUPFYNVDEBUOUPBUQURUSVAMVBYIUUKYT
      FYPYIUUJYSCTEABTVEVBNVCYJYPKZUUIAETJZCTJEYTUUQEUURCTYPEUURFZYJYMYNUUSYOYM
      UUREAUQUSVFMVBYPUUIEFZYJYOYMUUTYNUUNUTMUUQUURYSCTYJUURYSFYPEBATVGNVBVHYPY
      KEYSETJZYTYMYNEUVAFZYOYMYNKZYSGHZUVBUVCYSABVIVJZUVDUVAEYSUQUSLOECYSTVGVKV
      LURYLPZYPKZYTYRUVGYTYRFZDVMZYTQRZDYQVNZUVIUAVMZQRZDYQVNZYTUVLVPRZSZUAVOVN
      ZKZUVGUVKUVQUVGUVKAYTQRZBYTQRZCYTQRZIZUVGYSYTQRZUWAKZUWBUVGUVDYOKZUWDYPUW
      EUVFYPUVDYOYMYNUVDYOUVEOZYMYNYOVQZVRZMZYSCVSLUVGUWDKUVSUVTUWAUWDUVGUVSUWC
      UVGUVSSUWAUVGUWCUVSYPUWCUVSSZUVFAYSQRZBYSQRZKZYPUWJYMYNUWMYOABVSZOUWKYPUW
      JSUWLYPUWKUWJYPUWKUWCUVSYPYMUVDYTGHZIUWKUWCKUVSSYPYMUVDUWOYMYNYOVTUWFYPYT
      YPUWEYTWAHUWHYSCVILVJZWBAYSYTWCLWDWENWFMWENWGUWDUVGUVTUWCUVGUVTSUWAUVGUWC
      UVTUVGUWLUWCUVTYPUWLUVFYMYNUWLYOUVCUWMUWLUWNUWKUWLWHLOMUVGYNUVDUWOIZUWLUW
      CKUVTSYPUWQUVFYPYNUVDUWOYMYNYOWIUWFUWPWBMBYSYTWCLWJWENWGUWDUWAUVGUWCUWAWH
      MWBWKYPUVKUWBUGUVFUVJUVSUVTUWADABCGGGUVIAYTQWLUVIBYTQWLUVICYTQWLWMMWNUVGU
      VPUAVOUVGUVLVOHZKZUVNAUVLQRZBUVLQRZCUVLQRZIZUVOYPUVNUXCUGUVFUWRUVMUWTUXAU
      XBDABCGGGUVIAUVLQWLUVIBUVLQWLUVICUVLQWLWMWOUWSUXCUVOUWSUXCKZUWRUVDYOIZYSE
      FZCEFZWTPZYSUVLQRZUXBUVOUWSUXEUXCUWSUWRUVDYOUVGUWRWHYPUVDUVFUWRUWFWOYPYOU
      VFUWRUWGWOWBNUXDUXFPZUXGPZKZUXHUWSUXLUXCUVGUXLUWRUVGUXJUXKUVGYSVOHZUXJUVG
      UVCAEFZBEFZWTPZKZUXMUVFUXPYPUVCUVFYIPZYJPZYKPZIZUXPYIYJYKWPZUXRUXSUXPUXTU
      XRUXSKZUXNPZUXOPZKZUXPUYCUYFUXRUYDUXSUYEYIUXNEAWQWRZYJUXOEBWQWRZXAWSUXNUX
      OXBZXCOXDYMYNUVCYOUVCXKOZULABXEZLUXMYSEYSXLXFZLUVFUXKYPUVFUYAUXKUYBUXTUXR
      UXKUXSUXTUXKYKUXGECWQWRWSUTXDNZVRNNUXFUXGXBZXCUXCUWSUXIUWTUXAUWSUXISUXBUW
      SUWTUXAKZUXIUWSUVLGHZYMYNIZUYOUXISUWSUYPUVCKUYQUVGUVCUWRUYPYPUVCUVFUYJMUV
      LXGULUYPYMYNXHXCUVLABXILWEOWGUXCUXBUWSUWTUXAUXBVQMUXEUXHKUXIUXBKUVOUVLYSC
      XJXMXNXOXPXQVRUVGYTVOHZUUBYQXRHZEYQXSZUVHUVRUGUVGUWEUXHKUYRUVGUWEUXHUWIUV
      GUXLUXHUVGUXJUXKUVGUXMUXJUVGUXQUXMUVFUXPYPUVCUVFUYAUXPUYBUXRUXSUXPUXTUYCU
      YFUXPUXRUYDUXSUYEUXRUYDUYGWSUXSUYEUYHWSXTUYIXCOXDUYJULUYKLUYLLUYMVRUYNXCV
      RYSCXELYPUUBUVFUUGMUYSUVGABCYAYBUVGUUCPZUYTYPUVFVUAYPUUCYLYPUUCYLUUEYPUUF
      YBYDYCWGEYQYEXCUADYTYQYFYGWNUSYH $.
  $}

  ${
    $d m x y z $.  $d k n x y z $.  $d k l m y $.
    $( Lemma for ~ lcmfdvds and ~ lcmfunsnlem (Induction step part 1).
       (Contributed by AV, 25-Aug-2020.) $)
    lcmfunsnlem1 $p |- ( ( ( z e. ZZ /\ y C_ ZZ /\ y e. Fin )
           /\ ( A. k e. ZZ ( A. m e. y m || k -> ( _lcm ` y ) || k )
           /\ A. n e. ZZ ( _lcm ` ( y u. { n } ) ) = ( ( _lcm ` y ) lcm n ) ) )
                         -> A. k e. ZZ ( A. m e. ( y u. { z } ) m || k
                                       -> ( _lcm ` ( y u. { z } ) ) || k ) ) $=
      ( vl cv cz wcel cdvds wbr wral clcmf cfv wi clcm wceq wa breq2 adantr wss
      cfn w3a csn cun co nfra1 nfan ralbidv imbi12d cbvralv rspcv adantl uneq2d
      sneq fveq2d oveq2 eqeq12d 3ad2ant1 simpr lcmfcl nn0zd 3adant1 simpl1 3jca
      nfv ssun1 ssralv mp1i imim1d imp31 wo snidg olcd sylibr breq1 syl imp jca
      elun lcmdvds sylc syl5ibrcom ex com23 syl5d syld syl5bi impancom ralrimi
      impd ) BGZHIZAGZHUAZWNUBIZUCZDGZCGZJKZDWNLZWNMNZWSJKZOZCHLZWNEGZUDZUEZMNZ
      XBXFPUFZQZEHLZRZRWTDWNWLUDZUEZLZXOMNZWSJKZOZCHWQXMCWQCVFXEXLCXDCHUGXLCVFU
      HUHWQWSHIZXMXSWQXTRZXEXLXSXEWRFGZJKZDWNLZXBYBJKZOZFHLZYAXLXSOZXDYFCFHWSYB
      QZXAYDXCYEYIWTYCDWNWSYBWRJSUIWSYBXBJSUJUKYAYGXDYHXTYGXDOWQYFXDFWSHYBWSQZY
      DXAYEXCYJYCWTDWNYBWSWRJSUIYBWSXBJSUJULUMYAXLXQXBWLPUFZQZXDXSWQXLYLOZXTWMW
      OYMWPXKYLEWLHXFWLQZXIXQXJYKYNXHXOMYNXGXNWNXFWLUOUNUPXFWLXBPUQURULUSTYAXDY
      LXSOYAXDRZXPYLXRYOXPYLXROYOXPRZXRYLYKWSJKZYPXTXBHIZWMUCZXCWLWSJKZRYQYOYSX
      PYAYSXDYAXTYRWMWQXTUTWQYRXTWOWPYRWMWOWPRXBWNVAVBVCTWMWOWPXTVDVETTYPXCYTYA
      XDXPXCYAXPXAXCWNXOUAXPXAOYAWNXNVGWTDWNXOVHVIVJVKYOXPYTYAXPYTOZXDWQUUAXTWM
      WOUUAWPWMWLXOIZUUAWMWLWNIZWLXNIZVLUUBWMUUDUUCWLHVMVNWLWNXNVTVOWTYTDWLXOWR
      WLWSJVPULVQUSTTVRVSWSXBWLWAWBXQYKWSJVPWCWDWEWDWFWGWHWKWIWJ $.

    $d i k l m n y z $.
    $( Lemma 1 for ~ lcmfunsnlem2 .  (Contributed by AV, 26-Aug-2020.) $)
    lcmfunsnlem2lem1 $p |- ( ( ( 0 e/ y /\ z =/= 0 /\ n =/= 0 )
       /\ ( n e. ZZ /\ ( ( z e. ZZ /\ y C_ ZZ /\ y e. Fin )
       /\ ( A. k e. ZZ ( A. m e. y m || k -> ( _lcm ` y ) || k )
       /\ A. n e. ZZ ( _lcm ` ( y u. { n } ) ) = ( ( _lcm ` y ) lcm n ) ) ) ) )
            -> A. k e. NN ( A. i e. ( ( y u. { z } ) u. { n } ) i || k
                            -> ( ( _lcm ` ( y u. { z } ) ) lcm n ) <_ k ) ) $=
      ( cc0 cv cz wcel cdvds wbr wral wi wceq wa wo wn adantl imp vl wnel clcmf
      wne w3a wss cfn cfv csn cun clcm co cle nfv nfra1 nfan simprr simp2 snssi
      cn cn0 3ad2ant1 unssd simp3 snfi unfi sylancl jca lcmfcl syl nn0zd adantr
      simprl df-nel biimpi elsni eqcomd necon3ai anim12i 3adant3 ioran xchnxbir
      bitri sylibr lcmfn0cl nnne0d neneqd neneq 3ad2ant3 ad2antrr exp43 adantrd
      3jca elun com23 imp32 sneq uneq2d oveq2 eqeq12d rspcv nnz 3adant1 simpll1
      fveq2d elun1 orcd breq1 com12 ralrimiv breq2 ralbidv imbi12d cbvralv mpid
      syl5bi exp31 com24 impl vsnid olci mpbir orci mp1i lcmdvds sylc expd syld
      syl5ibr exp5j com34 lcmledvds ralrimi ) GAHZUBZBHZGUDZFHZGUDZUEZYRIJZYPIJ
      ZYNIUFZYNUGJZUEZEHZDHZKLZEYNMZYNUCUHZUUGKLZNZDIMZYNYRUIZUJZUCUHZUUJYRUKUL
      ZOZFIMZPZPZPZPZCHZUUGKLZCYNYPUIZUJZUUNUJZMZUVGUCUHZYRUKULUUGUMLZNDUTYTUVB
      DYTDUNUUAUVADUUADUNUUEUUTDUUEDUNUUMUUSDUULDIUOUUSDUNUPUPUPUPUVCUUGUTJZUVI
      UVKUVCUVLPZUVIPZUVLUVJIJZUUAUEZUVJGOZYRGOZQRZPZUVJUUGKLZYRUUGKLZPUVKUVMUV
      TUVIUVCUVLUVTYTUUAUVAUVLUVTNZYTUVAUUAUWCYTUUEUUAUWCNUUTYTUUEUUAUVLUVTYTUU
      EPZUUAUVLPZPZUVPUVSUWFUVLUVOUUAUWDUUAUVLUQUWDUVOUWEUUEUVOYTUUEUVJUUEUVGIU
      FZUVGUGJZPUVJVAJUUEUWGUWHUUEYNUVFIUUBUUCUUDURUUBUUCUVFIUFUUDYPIUSVBVCZUUE
      UUDUVFUGJUWHUUBUUCUUDVDYPVEYNUVFVFVGZVHUVGVIVJVKSVLUWDUUAUVLVMWMUWFUVQRZU
      VRRZPUVSUWFUWKUWLUWFUVJGUWFUVJUWFUWGUWHGUVGUBZUEZUVJUTJUWDUWNUWEUWDUWGUWH
      UWMUUEUWGYTUWISUUEUWHYTUWJSYTUWMUUEYTGYNJZRZGUVFJZRZPZUWMYOYQUWSYSYOUWPYQ
      UWRYOUWPGYNVNVOUWQYPGUWQGYPGYPVPVQVRVSVTUWMGUVGJZRUWSGUVGVNUWOUWQQUWSUWTU
      WOUWQWAGYNUVFWNWBWCWDVLWMVLUVGWEVJWFWGYTUWLUUEUWEYSYOUWLYQYRGWHWIWJVHUVQU
      VRWAWDVHWKWLWOWPTVLUVNUWAUWBUVMUVIUWAUVCUVLUVIUWANZYTUVBUVLUXANZUVBYTUXBU
      UAUVAYTUXBNZUVAUUAUXCUVAUUAUVLYTUXAUVAUUAUVLYTUXANZUUEUUMUUSUWEUXDNZUUEUU
      SUUMUXEUUEUUSUVJUUJYPUKULZOZUUMUXENZUUBUUCUUSUXGNUUDUURUXGFYPIYRYPOZUUPUV
      JUUQUXFUXIUUOUVGUCUXIUUNUVFYNYRYPWQWRXEYRYPUUJUKWSWTXAVBUXGUUEUXHUXGUUEUU
      MUWEYTUXAUXGUUEUUMPZUWEPZYTPZUVIUWAUXLUVIPZUWAUXGUXFUUGKLZUXMUUGIJZUUJIJZ
      UUBUEZUUKYPUUGKLZPUXNUXKUXQYTUVIUXKUXOUXPUUBUWEUXOUXJUVLUXOUUAUUGXBSZSUUE
      UXPUUMUWEUUCUUDUXPUUBUUCUUDPUUJYNVIVKXCWJUUBUUCUUDUUMUWEXDWMWJUXMUUKUXRUX
      LUVIUUKUXJUWEYTUVIUUKNZUUEUUMUWEYTPZUXTNUUEUVIUYAUUMUUKUUEUVIUYAUUMUUKNUU
      EUVIPZUYAPZUUMUUIUUKUYBUUIUYAUYBUUHEYNUVIUUFYNJZUUHNUUEUYDUVIUUHUYDUUFUVH
      JZUVIUUHNUYDUUFUVGJZUUFUUNJZQUYEUYDUYFUYGUUFYNUVFXFXGUUFUVGUUNWNWDUVEUUHC
      UUFUVHUVDUUFUUGKXHXAVJXISXJVLUUMUUFUAHZKLZEYNMZUUJUYHKLZNZUAIMZUYCUULUULU
      YLDUAIUUGUYHOZUUIUYJUUKUYKUYNUUHUYIEYNUUGUYHUUFKXKXLUUGUYHUUJKXKXMXNUYCUX
      OUYMUULNUYAUXOUYBUWEUXOYTUXSVLSUYLUULUAUUGIUYHUUGOZUYJUUIUYKUUKUYOUYIUUHE
      YNUYHUUGUUFKXKXLUYHUUGUUJKXKXMXAVJXPXOXQXRTXSTUXLUVIUXRYPUVHJZUVIUXRNUXLU
      YPYPUVGJZYPUUNJZQUYQUYRUYQYPYNJZYPUVFJZQUYTUYSBXTYAYPYNUVFWNYBYCYPUVGUUNW
      NYBUVEUXRCYPUVHUVDYPUUGKXHXAYDTVHUUGUUJYPYEYFUVJUXFUUGKXHYIYGYJXIYHWOWPYG
      YKXITXITTTUVMUVIUWBYRUVHJZUVIUWBNUVMVUAYRUVGJZYRUUNJZQVUCVUBFXTYAYRUVGUUN
      WNYBUVEUWBCYRUVHUVDYRUUGKXHXAYDTVHUUGUVJYRYLYFXQYM $.

    $( Lemma 2 for ~ lcmfunsnlem2 .  (Contributed by AV, 26-Aug-2020.) $)
    lcmfunsnlem2lem2 $p |- ( ( ( 0 e/ y /\ z =/= 0 /\ n =/= 0 )
       /\ ( n e. ZZ /\ ( ( z e. ZZ /\ y C_ ZZ /\ y e. Fin )
       /\ ( A. k e. ZZ ( A. m e. y m || k -> ( _lcm ` y ) || k )
       /\ A. n e. ZZ ( _lcm ` ( y u. { n } ) ) = ( ( _lcm ` y ) lcm n ) ) ) ) )
                             -> ( _lcm ` ( ( y u. { z } ) u. { n } ) )
                                = ( ( _lcm ` ( y u. { z } ) ) lcm n ) ) $=
      ( vi cc0 cz wcel cdvds wbr wral wi clcm wceq wa adantr adantl syl wn wnel
      cv wne w3a wss cfn clcmf cfv csn cun co cle cn wo elun wel simp1 weq sneq
      uneq2d fveq2d oveq2 eqeq12d rspcv breq1 dvdslcmf 3adant1 impel lcmfcl cn0
      nn0zd lcmcl sylan jca dvdslcm simpld ssel 3ad2ant2 impcom syl2anc syl3anc
      dvdstr mp2and simpr lcmass breqtrrd elsni simprd syl5ibr imp oveq1 breq2d
      ex jaoi syl5ibrcom syld sylbi simp2 snssi 3ad2ant1 unssd snfi unfi anim1i
      simp3 sylancl expd com13 ralrimiv lcmfunsnlem2lem1 df-nel biimpi necon3ai
      eqcomd ioran sylanbrc sylnibr sylibr lcmfn0cl nnne0d neneqd df-ne lcmn0cl
      wb 3ad2ant3 mpan2 w3o nnel biimpri 3mix1d 3mix2d 3mix3d 3ianor con2i 3jca
      nne lcmf mpbird ) GAUBZUAZBUBZGUCZEUBZGUCZUDZUUCHIZUUAHIZYSHUEZYSUFIZUDZD
      UBCUBZJKDYSLYSUGUHZUUKJKMCHLZYSUUCUIZUJZUGUHZUULUUCNUKZOZEHLZPZPZPZPZYSUU
      AUIZUJZUGUHZUUCNUKZUVEUUNUJZUGUHZUVCUVGUVIOZFUBZUVGJKZFUVHLZUVKUUKJKFUVHL
      UVGUUKULKMCUMLZPZUVCUVMUVNUVCUVLFUVHUVBUVKUVHIZUVLMZUUEUVAUUFUVQUUTUUJUUF
      UVQMZUUSUUJUVRMUUMUUSUUJUUFUVQUVPUUJUUFPZUUSUVLUVPUVKUVEIZUVKUUNIZUNUVSUU
      SUVLMZMZUVKUVEUUNUOUVTUWCUWAUVTFAUPZUVKUVDIZUNZUWCUVKYSUVDUOUWFUVSUWBUWFU
      VSPZUUSUVFUULUUANUKZOZUVLUWGUUGUUSUWIMUVSUUGUWFUUJUUGUUFUUGUUHUUIUQZQZRUU
      RUWIEUUAHEBURZUUPUVFUUQUWHUWLUUOUVEUGUWLUUNUVDYSUUCUUAUSUTVAUUCUUAUULNVBV
      CVDSUWGUVLUWIUVKUWHUUCNUKZJKZUWFUVSUWNUWDUVSUWNMZUWEUWDUVSUWNUWDUVSPZUVKU
      ULUUAUUCNUKZNUKZUWMJUWPUVKUULJKZUULUWRJKZUVKUWRJKZUWDUUKUULJKZCYSLZUWSUVS
      UXBUWSCUVKYSUUKUVKUULJVEVDUUJUXCUUFUUHUUIUXCUUGCYSVFVGQVHUWPUULHIZUWQHIZP
      ZUWTUVSUXFUWDUVSUXDUXEUUJUXDUUFUUHUUIUXDUUGUUHUUIPUULYSVIZVKVGZQZUVSUWQUU
      JUUGUUFUWQVJIUWJUUAUUCVLVMVKZVNRUXFUWTUWQUWRJKUULUWQVOVPSUWPUVKHIZUXDUWRH
      IUWSUWTPUXAMUVSUWDUXKUUJUWDUXKMZUUFUUHUUGUXLUUIYSHUVKVQVRQVSUVSUXDUWDUXIR
      ZUWPUWRUWPUXDUXEUWRVJIUXMUVSUXEUWDUXJRUULUWQVLVTVKUVKUULUWRWBWAWCUWPUXDUU
      GUUFUWMUWROUXMUVSUUGUWDUWKRUVSUUFUWDUUJUUFWDRUUCUUAUULWEWAWFWMUWEFBURZUWO
      UVKUUAWGUVSUWNUXNUUAUWMJKZUVSUUAUWHJKZUWHUWMJKZUXOUVSUXDUUGPZUXPUUJUXRUUF
      UUJUXDUUGUXHUWJVNQUXRUULUWHJKUXPUULUUAVOWHSUUJUWHHIZUUFUXQUUJUWHUUJUXDUUG
      UWHVJIUUJUULUUHUUIUULVJIUUGUXGVGVKUWJUULUUAVLVTVKZUXSUUFPUXQUUCUWMJKUWHUU
      CVOVPVMUVSUUGUXSUWMHIUXPUXQPUXOMUWKUUJUXSUUFUXTQUVSUWMUUJUXSUUFUWMVJIUXTU
      WHUUCVLVMVKUUAUWHUWMWBWAWCUVKUUAUWMJVEWISWNWJUWIUVGUWMUVKJUVFUWHUUCNWKWLW
      OWPWMWQUWAFEURZUWCUVKUUCWGUYAUVSUUSUVLUVSUUSPZUVLUYAUUCUVGJKZUYBUVFUVGJKZ
      UYCUYBUVFHIZUUFPZUYDUYCPUVSUYFUUSUUJUYEUUFUUJUVFUUJUVEHUEZUVEUFIZUVFVJIUU
      JYSUVDHUUGUUHUUIWRUUGUUHUVDHUEUUIUUAHWSWTXAZUUJUUIUVDUFIZUYHUUGUUHUUIXEUU
      AXBZYSUVDXCZXFZUVEVIVTVKXDZQUVFUUCVOSWHUVKUUCUVGJVEWIXGSWNWQXHXGRVSVSRXIA
      BFCDEXJVNUVCUVGUMIZUVHHUEZUVHUFIZGUVHUAZUDZPZUVJUVOYDUVBUUEUYTUVAUUFUUEUY
      TMZUUJUUFVUAMUUTUUJUUFVUAUVSUUEUYTUVSUUEPZUYOUYSVUBUYFUVFGOZUUCGOZUNTZUYO
      UVSUYFUUEUYNQVUBVUCTVUDTZVUEVUBUVFGVUBUVFVUBUYGUYHGUVEUAZUVFUMIUVSUYGUUEU
      UJUYGUUFUYIQZQUVSUYHUUEUUJUYHUUFUYMQQUUEVUGUVSUUEGUVEIZTVUGUUEGYSIZGUVDIZ
      UNZVUIUUEVUJTZVUKTZVULTYTUUBVUMUUDYTVUMGYSXKXLWTUUBYTVUNUUDVUKUUAGVUKGUUA
      GUUAWGXNZXMVRVUJVUKXOXPGYSUVDUOZXQGUVEXKXRRUVEXSWAXTYAUUEVUFUVSUUDYTVUFUU
      BUUDVUFUUCGYBXLYERVUCVUDXOXPUVFUUCYCVTVUBUYPUYQUYRUVSUYPUUEUVSUVEUUNHVUHU
      UFUUNHUEUUJUUCHWSRXAQUVSUYQUUEUUJUYQUUFUUIUUGUYQUUHUUIUYHUUNUFIUYQUUIUYJU
      YHUYKUYLYFUUCXBUVEUUNXCXFYEQQUUEUYRUVSUUEGUVHIZTUYRVUQUUEVUQYTTZUUBTZUUDT
      ZYGZUUETVUQVUIGUUNIZUNVVAGUVEUUNUOVUIVVAVVBVUIVULVVAVUPVUJVVAVUKVUJVURVUS
      VUTVURVUJGYSYHYIYJVUKVUSVURVUTVUKUUAGOVUSVUOUUAGYPXRYKWNWQVVBVUTVURVUSVVB
      VUDVUTVVBGUUCGUUCWGXNUUCGYPXRYLWNWQYTUUBUUDYMXRYNGUVHXKXRRYOVNWMWMQVSVSCF
      UVGUVHYQSYRXN $.

    $( Lemma for ~ lcmfunsn and ~ lcmfunsnlem (Induction step part 2).
       (Contributed by AV, 26-Aug-2020.) $)
    lcmfunsnlem2 $p |- ( ( ( z e. ZZ /\ y C_ ZZ /\ y e. Fin )
           /\ ( A. k e. ZZ ( A. m e. y m || k -> ( _lcm ` y ) || k )
           /\ A. n e. ZZ ( _lcm ` ( y u. { n } ) ) = ( ( _lcm ` y ) lcm n ) ) )
                         -> A. n e. ZZ ( _lcm ` ( ( y u. { z } ) u. { n } ) )
                                     = ( ( _lcm ` ( y u. { z } ) ) lcm n ) ) $=
      ( cv cz wcel wss clcmf cfv wi clcm co wceq wa cc0 wo unssd adantl cfn w3a
      cdvds wbr wral csn cun nfv nfra1 nfan cdif wb eqoreldif ax-mp simp2 snssi
      0z 3ad2ant1 mp1i c0ex snid olci elun mpbir lcmf0val sylancl adantr uneq2d
      sneq fveq2d oveq2 cn0 snfi unfi mpan2 3ad2ant3 lcmfcl syl2anc lcm0val syl
      nn0zd sylan9eqr 3eqtr4d com12 elun1 ad2antrr oveq2d eldifi ad2antlr eqtrd
      ex simp3 lcmcom syl2anr snssd orcd sylibr 3eqtr4rd a1d elsng eqcom syl6bb
      impd biimpri olcd syl2an2 syl5eleqr wn wnel wne ioran df-nel df-ne bitr4i
      anbi12i eldif velsn bicomi necon3abii lcmfunsnlem2lem2 exp520 imp syl5bir
      com23 syl5bi sylbi ecase3 jaoi ralrimi ) BFZGHZAFZGIZYLUAHZUBZDFCFZUCUDDY
      LUEYLJKZYPUCUDLCGUEZYLEFZUFZUGJKYQYSMNOZEGUEZPZPZYLYJUFZUGZYTUGZJKZUUFJKZ
      YSMNZOZEGYOUUCEYOEUHYRUUBEYREUHUUAEGUIUJUJYSGHZUUDUUKUULYSQOZYSGQUFZUKHZR
      ZUUDUUKLZQGHZUULUUPULUQYSQGUMUNUUMUUQUUOUUDUUMUUKYOUUMUUKLUUCYOUUMUUKYOUU
      MPZUUFUUNUGZJKZQUUHUUJYOUVAQOZUUMYOUUTGIQUUTHZUVBYOUUFUUNGYOYLUUEGYKYMYNU
      OZYKYMUUEGIZYNYJGUPURZSZUURUUNGIYOUQQGUPUSSUVCQUUFHZQUUNHZRUVIUVHQUTVAZVB
      QUUFUUNVCVDUUTVEVFVGUUSUUGUUTJUUSYTUUNUUFUUMYTUUNOYOYSQVITVHVJUUMYOUUJUUI
      QMNZQYSQUUIMVKYOUUIGHZUVKQOYOUUIYOUUFGIZUUFUAHZUUIVLHZUVGYNYKUVNYMYNUUEUA
      HZUVNYJVMZYLUUEVNZVOVPUUFVQZVRWAUUIVSVTWBWCWKVGWDQYLHZYJQOZUUOUUQLZUVTUUO
      UUQUVTUUOPZYOUUCUUKUWCYOUUCUUKLZUWCYOPZUUKUUCUWEYSUUIMNZQUUJUUHUWEUWFYSQM
      NZQUWEUUIQYSMUWEUVMUVHUUIQOZUWEYLUUEGYOYMUWCUVDTYOUVEUWCUVFTSUVTUVHUUOYOQ
      YLUUEWEZWFUUFVEZVRWGUUOUWGQOZUVTYOUUOUULUWKYSGUUNWHZYSVSZVTWIWJYOUVLUULUU
      JUWFOZUWCYOUUIYOUVMUVNUVOUVGYOYNUVPUVNYKYMYNWLUVQUVRVFUVSVRWAZUUOUULUVTUW
      LTUUIYSWMZWNUWEUUGGIZQUUGHZUUHQOZUWEUUFYTGYOUVMUWCUVGTUUOYTGIZUVTYOUUOYSG
      UWLWOZWISUVTUWRUUOYOUVTUVHQYTHZRZUWRUVTUVHUXBUWIWPQUUFYTVCZWQWFUUGVEZVRWR
      WSWKXCWKUWAUUOUUQUWAUUOPZYOUUCUUKUXFYOUWDUXFYOPZUUKUUCUXGUWFQUUJUUHUXGUWF
      UWGQUXGUUIQYSMYOUVMUXFUVHUWHUVGUXGUVTQUUEHZRZUVHUXGUXHUVTUWAUXHUUOYOUXHUW
      AUURUXHUWAULUQUURUXHQYJOUWAQYJGWTQYJXAXBUNXDWFXEQYLUUEVCZWQUWJXFWGUXGUULU
      WKUUOUULUWAYOUWLWIZUWMVTWJYOUVLUXFUULUWNUWOUXKUWPXFUXGUWQUWRUWSUXGUUFYTGY
      OUVMUXFUVGTUUOUWTUWAYOUXAWISUXGUXCUWRUXGUVHUXBUXGUXIUVHUXGUXHUVTUWAUXHUUO
      YOUWAQUUNUUEUVJYJQVIXGWFXEUXJWQWPUXDWQUXEVRWRWSWKXCWKUVTUWARXHZQYLXIZYJQX
      JZPZUWBUXLUVTXHZUWAXHZPUXOUVTUWAXKUXMUXPUXNUXQQYLXLYJQXMXOXNUUOUULYSUUNHZ
      XHZPUXOUUQYSGUUNXPUXOUULUXSUUQUXOUXSUULUUQUXSYSQXJZUXOUULUUQLZUXRYSQUXRUU
      MEQXQXRXSUXMUXNUXTUYALUXMUXNUXTUULUUDUUKABCDEXTYAYBYCYDXCYEYFYGYHYFWDYI
      $.

    $d Y k m $.  $d Y n x y z $.
    $( Lemma for ~ lcmfdvds and ~ lcmfunsn .  These two theorems must be proven
       simultaneously by induction on the cardinality of a finite set ` Y ` ,
       because they depend on each other.  This can be seen by the two parts
       ~ lcmfunsnlem1 and ~ lcmfunsnlem2 of the induction step, each of them
       using both induction hypotheses.  (Contributed by AV, 26-Aug-2020.) $)
    lcmfunsnlem $p |- ( ( Y C_ ZZ /\ Y e. Fin )
                  -> ( A. k e. ZZ ( A. m e. Y m || k -> ( _lcm ` Y ) || k )
                       /\ A. n e. ZZ ( _lcm ` ( Y u. { n } ) )
                                   = ( ( _lcm ` Y ) lcm n ) ) ) $=
      ( wcel cz cdvds wral clcmf cfv wi cun clcm co wceq wa c0 imbi12d ralbidv
      c1 vx vy vz cfn wss wbr csn sseq1 raleq fveq2 breq1d uneq1 fveq2d eqeq12d
      cv oveq1d anbi12d weq lcmf0 1dvds syl5eqbr a1d adantl ralrimiva uncom un0
      cabs eqtri a1i lcmfsn 1z lcmcom mpan lcm1 3eqtrrd 3eqtrd jca simpl sylbir
      unss vex snss w3a lcmfunsnlem1 lcmfunsnlem2 3exp1 impcom embantd ex com23
      findcard2 ) DUDEDFUEZBUOAUOZGUFZBDHZDIJZWMGUFZKZAFHZDCUOZUGZLZIJZWPWTMNZO
      ZCFHZPZUAUOZFUEZWNBXHHZXHIJZWMGUFZKZAFHZXHXALZIJZXKWTMNZOZCFHZPZKQFUEZWNB
      QHZQIJZWMGUFZKZAFHZQXALZIJZYCWTMNZOZCFHZPZKUBUOZFUEZWNBYMHZYMIJZWMGUFZKZA
      FHZYMXALZIJZYPWTMNZOZCFHZPZKZYMUCUOZUGZLZFUEZWNBUUIHZUUIIJZWMGUFZKZAFHZUU
      IXALZIJZUULWTMNZOZCFHZPZKWLXGKUAUBUCDXHQOZXIYAXTYLXHQFUHUVBXNYFXSYKUVBXMY
      EAFUVBXJYBXLYDWNBXHQUIUVBXKYCWMGXHQIUJZUKRSUVBXRYJCFUVBXPYHXQYIUVBXOYGIXH
      QXAULUMUVBXKYCWTMUVCUPUNSUQRUAUBURZXIYNXTUUEXHYMFUHUVDXNYSXSUUDUVDXMYRAFU
      VDXJYOXLYQWNBXHYMUIUVDXKYPWMGXHYMIUJZUKRSUVDXRUUCCFUVDXPUUAXQUUBUVDXOYTIX
      HYMXAULUMUVDXKYPWTMUVEUPUNSUQRXHUUIOZXIUUJXTUVAXHUUIFUHUVFXNUUOXSUUTUVFXM
      UUNAFUVFXJUUKXLUUMWNBXHUUIUIUVFXKUULWMGXHUUIIUJZUKRSUVFXRUUSCFUVFXPUUQXQU
      URUVFXOUUPIXHUUIXAULUMUVFXKUULWTMUVGUPUNSUQRXHDOZXIWLXTXGXHDFUHUVHXNWSXSX
      FUVHXMWRAFUVHXJWOXLWQWNBXHDUIUVHXKWPWMGXHDIUJZUKRSUVHXRXECFUVHXPXCXQXDUVH
      XOXBIXHDXAULUMUVHXKWPWTMUVIUPUNSUQRYAYFYKYAYEAFWMFEZYEYAUVJYDYBUVJYCTWMGU
      SWMUTVAVBVCVDYAYJCFWTFEZYJYAUVKYHXAIJWTVGJZYIUVKYGXAIYGXAOUVKYGXAQLXAQXAV
      EXAVFVHVIUMWTVJUVKYITWTMNZWTTMNZUVLUVKYCTWTMYCTOUVKUSVIUPTFEUVKUVMUVNOVKT
      WTVLVMWTVNVOVPVCVDVQYMUDEZUUJUUFUVAUVOUUJUUFUVAKUVOUUJPYNUUEUVAUUJYNUVOUU
      JYNUUHFUEZPZYNYMUUHFVTZYNUVPVRVSVCUUJUVOUUEUVAKZUUJUVQUVOUVSKZUVRUVPYNUVT
      UVPUUGFEZYNUVTKUUGFUCWAWBUWAYNUVOUUEUVAUWAYNUVOWCUUEPUUOUUTUBUCABCWDUBUCA
      BCWEVQWFVSWGVSWGWHWIWJWKWG $.
  $}

  ${
    $d K k m $.  $d Z k m n $.
    $( The least common multiple of a set of integers divides any integer which
       is divisible by all elements of the set.  (Contributed by AV,
       26-Aug-2020.) $)
    lcmfdvds $p |- ( ( K e. ZZ /\ Z C_ ZZ /\ Z e. Fin )
                     -> ( A. m e. Z m || K -> ( _lcm ` Z ) || K ) ) $=
      ( vk vn cz wcel wss cfn cv cdvds wbr wral clcmf cfv wi csn wceq wa breq2
      cun clcm co ralbidv imbi12d rspcv com12 adantr lcmfunsnlem syl11 3impib )
      BFGZCFHZCIGZAJZBKLZACMZCNOZBKLZPZUODJZKLZACMZURVAKLZPZDFMZCEJZQUANOURVGUB
      UCREFMZSULUTUMUNSVFULUTPVHULVFUTVEUTDBFVABRZVCUQVDUSVIVBUPACVABUOKTUDVABU
      RKTUEUFUGUHDAECUIUJUK $.

    $d Z m x $.
    $( Biconditional form of ~ lcmfdvds .  (Contributed by AV, 26-Aug-2020.) $)
    lcmfdvdsb $p |- ( ( K e. ZZ /\ Z C_ ZZ /\ Z e. Fin )
                      -> ( A. m e. Z m || K <-> ( _lcm ` Z ) || K ) ) $=
      ( vx cz wcel wss cfn w3a cv cdvds wbr wral clcmf cfv lcmfdvds wa wi com12
      adantr dvdslcmf breq1 rspcv imp lcmfcl nn0zd adantl simplr dvdstr syl3anc
      ssel expd exp31 com23 com24 com45 com15 mpd 3impib imp31 ralrimiva impbid
      syld ex ) BEFZCEGZCHFZIZAJZBKLZACMZCNOZBKLZABCPVHVMVKVHVMQVJACVHVMVICFZVJ
      VEVFVGVMVNVJRRZVFVGQZVEVOVPDJZVLKLZDCMZVEVORDCUAVNVSVEVMVPVJVNVSVIVLKLZVE
      VMVPVJRRRVRVTDVICVQVIVLKUBUCVNVTVEVPVMVJVNVPVEVTVMVJRZVNVEVPVTWARZVNVEVPW
      BVNVEQZVPQZVTVMVJWDVIEFZVLEFZVEVTVMQVJRWCVPWEVNVPWERVEVPVNWEVFVNWERVGCEVI
      UKTSTUDVPWFWCVPVLCUEUFUGVNVEVPUHVIVLBUIUJULUMUNUOUPVCUQURSUSUTVAVDVB $.
  $}

  ${
    $d N n $.  $d Y k m n $.
    $( The ` _lcm ` function for a union of a set of integer and a singleton.
       (Contributed by AV, 26-Aug-2020.) $)
    lcmfunsn $p |- ( ( Y C_ ZZ /\ Y e. Fin /\ N e. ZZ )
                     -> ( _lcm ` ( Y u. { N } ) ) = ( ( _lcm ` Y ) lcm N ) ) $=
      ( vm vk vn cz wcel csn cun clcmf cfv clcm co wceq wa cv cdvds wbr wral wi
      wss cfn lcmfunsnlem uneq2d fveq2d oveq2 eqeq12d rspcv com12 adantl 3impia
      sneq syl ) BFUAZBUBGZAFGZBAHZIZJKZBJKZALMZNZUNUOOCPDPZQRCBSUTVCQRTDFSZBEP
      ZHZIZJKZUTVELMZNZEFSZOUPVBTZDCEBUCVKVLVDUPVKVBVJVBEAFVEANZVHUSVIVAVMVGURJ
      VMVFUQBVEAULUDUEVEAUTLUFUGUHUIUJUMUK $.
  $}

  ${
    $d Y x y z $.  $d Z x y z $.
    $( The ` _lcm ` function for a union of sets of integers.  (Contributed by
       AV, 27-Aug-2020.) $)
    lcmfun $p |- ( ( ( Y C_ ZZ /\ Y e. Fin ) /\ ( Z C_ ZZ /\ Z e. Fin ) )
              -> ( _lcm ` ( Y u. Z ) ) = ( ( _lcm ` Y ) lcm ( _lcm ` Z ) ) ) $=
      ( cz wss cfn wcel wa cun clcmf cfv clcm co wi c0 fveq2d oveq2d syl adantl
      wceq adantr vx vy vz cv csn cleq1lem uneq2 un0 syl6eq fveq2 lcmf0 eqeq12d
      c1 imbi12d weq cabs lcmfcl nn0zd lcm1 cr cc0 cle wbr cn0 nn0re nn0ge0 jca
      absid eqtrd eqcomd unass eqcomi a1i simpl unss sylbir unssd ex impcom vex
      unfi biimpri lcmfunsn syl3anc anim1i id mpan9 oveq1d anim2i ancomd lcmass
      snss wb w3a simpr 3jca eqeq2d mpbird exp31 com23 findcard2 expd ) BCDZBEF
      ZGACDZAEFZGZABHZIJZAIJZBIJZKLZSZXDXCXGXMMXDXCXGXMUAUDZCDXGGZAXNHZIJZXJXNI
      JZKLZSZMNCDZXGGZXJXJUMKLZSZMUBUDZCDZXGGZAYEHZIJZXJYEIJZKLZSZMZYEUCUDZUEZH
      ZCDZXGGZAYPHZIJZXJYPIJZKLZSZMXCXGGZXMMUAUBUCBXNNSZXOYBXTYDXGXNNCUFUUEXQXJ
      XSYCUUEXPAIUUEXPANHAXNNAUGAUHUIOUUEXRUMXJKUUEXRNIJUMXNNIUJUKUIPULUNUAUBUO
      ZXOYGXTYLXGXNYECUFUUFXQYIXSYKUUFXPYHIXNYEAUGOUUFXRYJXJKXNYEIUJPULUNXNYPSZ
      XOYRXTUUCXGXNYPCUFUUGXQYTXSUUBUUGXPYSIXNYPAUGOUUGXRUUAXJKXNYPIUJPULUNXNBS
      ZXOUUDXTXMXGXNBCUFUUHXQXIXSXLUUHXPXHIXNBAUGOUUHXRXKXJKXNBIUJPULUNYBYCXJXG
      YCXJSYAXGYCXJUPJZXJXGXJCFZYCUUISXGXJAUQZURZXJUSQXGXJUTFZVAXJVBVCZGZUUIXJS
      XGXJVDFZUUOUUKUUPUUMUUNXJVEXJVFVGQXJVHQVIRVJYEEFZYRYMUUCUUQYRYMUUCUUQYRGZ
      YMGZUUCYTXJYJYNKLZKLZSZUUSYTYIYNKLZUVAUURYTUVCSYMUURYTYHYOHZIJZUVCUURYSUV
      DIYSUVDSUURUVDYSAYEYOVKVLVMOUURYHCDZYHEFZYNCFZUVEUVCSYRUVFUUQYRAYECXGXEYQ
      XEXFVNRYQYFXGYQYFYOCDZGZYFYEYOCVOZYFUVIVNZVPZTZVQRYRUUQUVGXGUUQUVGMZYQXFU
      VOXEXFUUQUVGAYEWAVRRRVSYRUVHUUQYQUVHXGYQUVJUVHUVKUVIUVHYFUVHUVIYNCUCVTWLW
      BRZVPTRZYNYHWCWDVITUUSUVCYKYNKLZUVAUUSYIYKYNKUURYGYMYLYRYGUUQYQYFXGUVMWER
      YMWFWGWHUURUVRUVASZYMUURUUJYJCFUVHUVSYRUUJUUQXGUUJYQUULRRUURYJUURYFUUQGYJ
      VDFUURUUQYFYRYFUUQUVNWIWJYEUQQURUVQYNYJXJWKWDTVIVIUURUUCUVBWMYMUURUUBUVAY
      TUURUUAUUTXJKUURYFUUQUVHWNZUUAUUTSYRUUQUVTYQUUQUVTMZXGYQUVJUWAUVKUVJUUQUV
      TUVJUUQGYFUUQUVHUVJYFUUQUVLTUVJUUQWOUVJUVHUUQUVPTWPVRVPTVSYNYEWCQPWQTWRWS
      WTXAXBVSVS $.
  $}

  $( Associative law for the ` _lcm ` function.  (Contributed by AV,
     27-Aug-2020.) $)
  lcmfass $p |- ( ( ( Y C_ ZZ /\ Y e. Fin ) /\ ( Z C_ ZZ /\ Z e. Fin ) )
                  -> ( _lcm ` ( { ( _lcm ` Y ) } u. Z ) )
                     = ( _lcm ` ( Y u. { ( _lcm ` Z ) } ) ) ) $=
    ( cz wss cfn wcel wa clcmf cfv csn clcm co cun cabs lcmfcl nn0zd lcmfsn syl
    wceq cn0 cr cc0 cle wbr nn0re nn0ge0 jca absid eqtrd eqtr2d oveqan12d snssd
    3syl snfi jctir lcmfun sylan sylan2 3eqtr4d ) ACDAEFGZBCDBEFGZGAHIZJZHIZBHI
    ZKLZVBVEJZHIZKLZVCBMHIZAVGMHIZUTVAVDVBVEVHKUTVDVBNIZVBUTVBCFVDVLSUTVBAOZPZV
    BQRUTVBTFZVBUAFZUBVBUCUDZGVLVBSVMVOVPVQVBUEVBUFUGVBUHUMUIVAVHVENIZVEVAVECFV
    HVRSVAVEBOZPZVEQRVAVETFZVEUAFZUBVEUCUDZGVRVESVSWAWBWCVEUEVEUFUGVEUHUMUJUKUT
    VCCDZVCEFZGVAVJVFSUTWDWEUTVBCVNULVBUNUOVCBUPUQVAUTVGCDZVGEFZGVKVISVAWFWGVAV
    ECVTULVEUNUOAVGUPURUS $.

  $( The least common multiple of 2 , 3 and 4 is 12.  (Contributed by AV,
     27-Aug-2020.) $)
  lcmf2a3a4e12 $p |- ( _lcm ` { 2 , 3 , 4 } ) = ; 1 2 $=
    ( c2 cz wcel c3 c4 ctp clcmf cfv c1 cdc wceq 2z 3z 4z w3a clcm co lcmftp c6
    syl6eq lcmcom 3adant3 3lcm2e6woprm oveq1d 6lcm4e12 eqtrd mp3an ) ABCZDBCZEB
    CZADEFGHZIAJZKLMNUHUIUJOZUKADPQZEPQZULADERUMUOSEPQULUMUNSEPUMUNDAPQZSUHUIUN
    UPKUJADUAUBUCTUDUETUFUG $.

  ${
    $d N m $.
    $( The least common multiple of all positive integers less than or equal to
       an integer is less than or equal to the factorial of the integer.
       (Contributed by AV, 16-Aug-2020.)  (Revised by AV, 27-Aug-2020.) $)
    lcmflefac $p |- ( N e. NN -> ( _lcm ` ( 1 ... N ) ) <_ ( ! ` N ) ) $=
      ( vm cn wcel c1 cfz co cz wss cfn cc0 wnel w3a cfa cfv cdvds wbr wral a1i
      cv wa clcmf cle fzssz fzfid 0nelfz1 3jca cn0 nnnn0 syl cuz elfznn elfzuz3
      faccl adantl dvdsfac syl2an2 ralrimiva jca lcmfledvds sylc ) ACDZEAFGZHIZ
      VCJDZKVCLZMANOZCDZBTZVGPQZBVCRZUAVCUBOVGUCQVBVDVEVFVDVBEAUDSVBEAUEVFVBAUF
      SUGVBVHVKVBAUHDVHAUIAUNUJVBVJBVCVIVCDZVICDVBAVIUKODZVJVIAULVLVMVBVIEAUMUO
      VIAUPUQURUSBVGVCUTVA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Coprimality and Euclid's lemma
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

According to Wikipedia "Coprime integers",
see ~ https://en.wikipedia.org/wiki/Coprime_integers (16-Aug-2020) "[[...] two
integers a and b are said to be _relatively prime_, mutually prime, or
_coprime_ [[...] if the only positive integer (factor) that divides both of
them is 1.  Consequently, any prime number that divides one does not divide the
other.  This is equivalent to their greatest common divisor (gcd) being 1.".
In the following, we use this equivalent characterization to say that
` A e. ZZ ` and ` B e. ZZ ` are coprime (or relatively prime) if
` ( A gcd B ) = 1 `. The equivalence of the definitions is shown by
~ coprmgcdb .  The negation, i.e. two integers are not coprime, can be
expressed either by ` ( A gcd B ) =/= 1 `, see ~ ncoprmgcdne1b , or
equivalently by ` 1 < ( A gcd B ) `, see ~ ncoprmgcdgt1b .

A proof of Euclid's lemma based on coprimality is provided in ~ coprmdvds (see
~ euclemma for a version of Euclid's lemma for primes).
$)

  ${
    $d A i $.  $d B i $.
    $( Two positive integers are coprime, i.e. the only positive integer that
       divides both of them is 1, iff their greatest common divisor is 1.
       (Contributed by AV, 9-Aug-2020.) $)
    coprmgcdb $p |- ( ( A e. NN /\ B e. NN )
                      -> ( A. i e. NN ( ( i || A /\ i || B ) -> i = 1 )
                           <-> ( A gcd B ) = 1 ) ) $=
      ( cn wcel wa cv cdvds wbr c1 wceq wi wral cgcd nnz adantr breq1 syl cle
      cz co gcddvds syl2an simpr gcdnncl anbi12d eqeq1 imbi12d rspcv mpid mpdan
      simpl anim1i ancomd 3anass sylibr nndvdslegcd wb breq2 nnge1 nnre letri3d
      w3a 1red biimprd mpan2d adantl sylbid adantll syld ralrimiva ex impbid )
      ADEZBDEZFZCGZAHIZVQBHIZFZVQJKZLZCDMZABNUAZJKZVPWDAHIZWDBHIZFZWCWELVNATEBT
      EWHVOAOBOABUBUCVPWHFZWCWHWEVPWHUDWIWDDEZWCWHWELZLVPWJWHABUEPWBWKCWDDVQWDK
      ZVTWHWAWEWLVRWFVSWGVQWDAHQVQWDBHQUFVQWDJUGUHUIRUJUKVPWEWCVPWEFZWBCDWMVQDE
      ZFZVTVQWDSIZWAWOWNVNVOVCZVTWPLWOWNVPFWQWOVPWNWMVPWNVPWEULUMUNWNVNVOUOUPVQ
      ABUQRWEWNWPWALVPWEWNFWPVQJSIZWAWEWPWRURWNWDJVQSUSPWNWRWALWEWNWRJVQSIZWAVQ
      UTWNWAWRWSFWNVQJVQVAWNVDVBVEVFVGVHVIVJVKVLVM $.

    $( Two positive integers are not coprime, i.e. there is an integer greater
       than 1 which divides both integers, iff their greatest common divisor is
       not 1.  (Contributed by AV, 9-Aug-2020.) $)
    ncoprmgcdne1b $p |- ( ( A e. NN /\ B e. NN )
                          -> ( E. i e. ( ZZ>= ` 2 ) ( i || A /\ i || B )
                               <-> ( A gcd B ) =/= 1 ) ) $=
      ( cn wcel wa cv cdvds wbr wrex c1 wn wi wne wex adantr adantl jca df-rex
      ex c2 cuz cfv wceq wral cgcd co eluz2nn simpr eluz2b3 df-ne sylbi biimpri
      biimpi anim1i ancomd sylibr impcom simprrl impbid2 exbidv wb rexanali a1i
      3bitr4g coprmgcdb necon3bbid 3bitrd ) ADEBDEFZCGZAHIVJBHIFZCUAUBUCZJZVKVJ
      KUDZLZFZCDJZVKVNMCDUEZLZABUFUGZKNVIVJVLEZVKFZCOVJDEZVPFZCOVMVQVIWBWDCVIWB
      WDWBWCVPWAWCVKVJUHPWBVKVOWAVKUIWAVOVKWAWCVJKNZFZVOVJUJZWEVOWCWEVOVJKUKZUN
      QULPRRVIWDWBVIWDFWAVKWDWAVIVPWCWAVOWCWAMVKVOWCWAVOWCFZWFWAWIWEWCVOWEWCWEV
      OWHUMUOUPWGUQTQURQVIWCVKVOUSRTUTVAVKCVLSVPCDSVEVQVSVBVIVKVNCDVCVDVIVRVTKA
      BCVFVGVH $.

    $( Two positive integers are not coprime, i.e. there is an integer greater
       than 1 which divides both integers, iff their greatest common divisor is
       greater than 1.  (Contributed by AV, 9-Aug-2020.) $)
    ncoprmgcdgt1b $p |- ( ( A e. NN /\ B e. NN )
                          -> ( E. i e. ( ZZ>= ` 2 ) ( i || A /\ i || B )
                               <-> 1 < ( A gcd B ) ) ) $=
      ( cn wcel wa cv cdvds wbr c2 cuz cfv wrex cgcd co c1 wne ncoprmgcdne1b wb
      clt gcdnncl nngt1ne1 syl bitr4d ) ADEBDEFZCGZAHIUFBHIFCJKLMABNOZPQZPUGTIZ
      ABCRUEUGDEUIUHSABUAUGUBUCUD $.
  $}

  ${
    $d F i $.  $d G i $.  $d I i $.
    $( If two positive integers are coprime, i.e. their greatest common divisor
       is 1, the only positive integer that divides both of them is 1.
       (Contributed by AV, 4-Aug-2021.) $)
    coprmdvds1 $p |- ( ( F e. NN /\ G e. NN /\ ( F gcd G ) = 1 )
                       -> ( ( I e. NN /\ I || F /\ I || G ) -> I = 1 ) ) $=
      ( vi cn wcel cgcd co c1 wceq cdvds wbr wi wa wral coprmgcdb breq1 anbi12d
      w3a cv eqeq1 imbi12d rspcv com23 3impib com12 syl6bir 3impia ) AEFZBEFZAB
      GHIJZCEFZCAKLZCBKLZSZCIJZMZUIUJNUKDTZAKLZURBKLZNZURIJZMZDEOZUQABDPUOVDUPU
      LUMUNVDUPMULVDUMUNNZUPVCVEUPMDCEURCJZVAVEVBUPVFUSUMUTUNURCAKQURCBKQRURCIU
      AUBUCUDUEUFUGUH $.
  $}

  $( Euclid's Lemma (see ProofWiki "Euclid's Lemma", 10-Jul-2021,
     ~ https://proofwiki.org/wiki/Euclid's_Lemma ):  If an integer divides the
     product of two integers and is coprime to one of them, then it divides the
     other.  See also theorem 1.5 in [ApostolNT] p. 16.  Generalization of
     ~ euclemma .  (Contributed by Paul Chapman, 22-Jun-2011.)  (Proof
     shortened by AV, 10-Jul-2021.) $)
  coprmdvds $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
                    ( ( K || ( M x. N ) /\ ( K gcd M ) = 1 ) -> K || N ) ) $=
    ( cz wcel w3a cmul co cdvds wbr cgcd c1 wceq wa wb zcn breq2d bitrd adantr
    cc mulcom syl2an dvdsmulgcd ancoms 3adant1 gcdcom 3adant3 eqeq1d syl6bi imp
    wi oveq2 mulid1d 3ad2ant3 eqtrd biimpd ex com23 impd ) ADEZBDEZCDEZFZABCGHZ
    IJZABKHZLMZACIJZVCVGVEVHVCVGVEVHUKVCVGNZVEVHVIVEACBAKHZGHZIJZVHVCVEVLOZVGVA
    VBVMUTVAVBNZVEACBGHZIJZVLVNVDVOAIVABTECTEVDVOMVBBPCPZBCUAUBQVBVAVPVLOACBUCU
    DRUESVIVKCAIVIVKCLGHZCVCVGVKVRMZVCVGVJLMVSVCVFVJLUTVAVFVJMVBABUFUGUHVJLCGUL
    UIUJVCVRCMZVGVBUTVTVAVBCVQUMUNSUOQRUPUQURUS $.

  $( If an integer divides the product of two integers and is coprime to one of
     them, then it divides the other.  (Contributed by Paul Chapman,
     22-Jun-2011.)  Obsolete version of ~ coprmdvds as of 10-Jul-2021.
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  coprmdvdsOLD $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
                    ( ( K || ( M x. N ) /\ ( K gcd M ) = 1 ) -> K || N ) ) $=
    ( cz wcel cmul co cdvds wbr cgcd c1 wceq wi wa cc zcn ancoms 3adant2 adantr
    cabs w3a mulcom syl2an 3adant1 breq2d dvdsmul2 simp1 zmulcl dvdsgcd syl3anc
    mpand sylbid absmulgcd 3coml oveq2 mulid1d sylan9eqr fveq2d 3ad2antl3 eqtrd
    cfv wb dvdsabsb bitr4d sylibd ex com23 impd ) ADEZBDEZCDEZUAZABCFGZHIZABJGZ
    KLZACHIZVLVPVNVQVLVPVNVQMVLVPNZVNACAFGZCBFGZJGZHIZVQVLVNWBMVPVLVNAVTHIZWBVL
    VMVTAHVJVKVMVTLZVIVJBOECOEWDVKBPCPZBCUBUCUDUEVLAVSHIZWCWBVIVKWFVJVKVIWFCAUF
    QRVLVIVSDEZVTDEZWFWCNWBMVIVJVKUGVIVKWGVJVKVIWGCAUHQRVJVKWHVIVKVJWHCBUHQUDAV
    SVTUIUJUKULSVRWBACTVAZHIZVQVRWAWIAHVRWACVOFGZTVAZWIVLWAWLLZVPVKVIVJWMCABUMU
    NSVKVIVPWLWILVJVKVPNWKCTVPVKWKCKFGCVOKCFUOVKCWEUPUQURUSUTUEVLVQWJVBZVPVIVKW
    NVJACVCRSVDVEVFVGVH $.

  ${
    $d x K $.  $d x M $.  $d x N $.
    $( If an integer is divisible by two coprime integers, then it is divisible
       by their product.  (Contributed by Mario Carneiro, 24-Feb-2014.) $)
    coprmdvds2 $p |- ( ( ( M e. ZZ /\ N e. ZZ /\ K e. ZZ ) /\
                         ( M gcd N ) = 1 ) ->
                       ( ( M || K /\ N || K ) -> ( M x. N ) || K ) ) $=
      ( vx cz wcel w3a cgcd co wceq wa cdvds wbr wi cc zcn syl3anc sylbid breq2
      cmul c1 cv wrex divides 3adant1 adantr simprr simpl2 mulcom syl2an breq2d
      wb syl2anc simprl simpl1 coprmdvds mpan2d dvdsmulc syld imbi12d syl5ibcom
      anassrs rexlimdva com23 impd ) BEFZCEFZAEFZGZBCHIUAJZKZBALMZCALMZBCTIZALM
      ZVKVMVLVOVKVMDUBZCTIZAJZDEUCZVLVONZVIVMVSULZVJVGVHWAVFDCAUDUEUFVKVRVTDEVI
      VJVPEFZVRVTNVIVJWBKZKZBVQLMZVNVQLMZNVRVTWDWEBVPLMZWFWDWEBCVPTIZLMZWGWDVQW
      HBLWDWBVGVQWHJZVIVJWBUGZVFVGVHWCUHZWBVPOFCOFWJVGVPPCPVPCUIUJUMUKWDWIVJWGV
      IVJWBUNWDVFVGWBWIVJKWGNVFVGVHWCUOZWLWKBCVPUPQUQRWDVFWBVGWGWFNWMWKWLCBVPUR
      QUSVRWEVLWFVOVQABLSVQAVNLSUTVAVBVCRVDVE $.
  $}

  $( One half of ~ rpmulgcd2 , which does not need the coprimality assumption.
     (Contributed by Mario Carneiro, 2-Jul-2015.) $)
  mulgcddvds $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
      ( K gcd ( M x. N ) ) || ( ( K gcd M ) x. ( K gcd N ) ) ) $=
    ( cz wcel cmul co cgcd cdvds wbr wa zmulcld nn0zd adantr syl2anc wi syl3anc
    cc0 mpd wb w3a simp1 simp2 simp3 gcdcld dvds0 oveq2 nn0cnd mul01d sylan9eqr
    wceq syl breqtrrd wne cdiv simpr divcan1d gcddvds simpld dvdsmultr1 eqbrtrd
    zcnd simprd dvdsmultr2 dvdsgcd mp2and dvdsval2 dvdsmulcr syl112anc cabs cfv
    mpbid nn0abscl iddvds dvdsabsb dvdsmulc dvdstr nn0red nn0ge0d absidd oveq2d
    cn0 absmuld mulgcd 3eqtr4d mpbird eqbrtrrd pm2.61dane ) ADEZBDEZCDEZUAZABCF
    GZHGZABHGZACHGZFGZIJWPRWLWPRUKZKWNRWQIWLWNRIJZWRWLWNDEZWSWLWNWLAWMWIWJWKUBZ
    WLBCWIWJWKUCZWIWJWKUDZLZUEMZWNUFULNWRWLWQWORFGRWPRWOFUGWLWOWLWOWLABXAXBUEZU
    HUIUJUMWLWPRUNZKZWNWPUOGZWPFGZWNWQIXHWNWPXHWNWLWTXGXENZVBXHWPWLWPDEZXGWLWPW
    LACXAXCUEZMZNZVBWLXGUPZUQZXHXIWOIJZXJWQIJZXHXIAIJZXIBIJZXRXHXJAWPFGZIJZXTXH
    XJWNYBIXQWLWNYBIJZXGWLWNAIJZYDWLYEWNWMIJZWLWIWMDEZYEYFKXAXDAWMUROZUSZWLWTWI
    XLYEYDPXEXAXNWNAWPUTQSNVAXHXIDEZWIXLXGYCXTTXHWPWNIJZYJWLYKXGWLWPAIJZWPWMIJZ
    YKWLYLWPCIJZWLWIWKYLYNKXAXCACUROZUSWLYNYMWLYLYNYOVCWLXLWJWKYNYMPXNXBXCWPBCV
    DQSWLXLWIYGYLYMKYKPXNXAXDWPAWMVEQVFNXHXLXGWTYKYJTXOXPXKWPWNVGQVLZWLWIXGXANZ
    XOXPWPXIAVHVIVLXHXJBWPFGZIJZYAXHXJWNYRIXQWLWNYRIJZXGWLYTWNYRVJVKZIJZWLWNBVJ
    VKZAFGZUUCCFGZHGZUUAIWLWNUUDIJZWNUUEIJZWNUUFIJZWLYEUUGYIWLWTUUCDEZWIYEUUGPX
    EWLUUCWLWJUUCWBEZXBBVMULZMZXAWNUUCAVDQSWLYFWMUUEIJZUUHWLYEYFYHVCWLBUUCIJZUU
    NWLBBIJZUUOWLWJUUPXBBVNULWLWJWJUUPUUOTXBXBBBVOOVLWLWJUUJWKUUOUUNPXBUUMXCCBU
    UCVPQSWLWTYGUUEDEZYFUUNKUUHPXEXDWLUUCCUUMXCLZWNWMUUEVQQVFWLWTUUDDEUUQUUGUUH
    KUUIPXEWLUUCAUUMXALUURWNUUDUUEVEQVFWLUUCWPVJVKZFGUUCWPFGZUUAUUFWLUUSWPUUCFW
    LWPWLWPXMVRWLWPXMVSVTWAWLBWPWLBXBVBWLWPXMUHWCWLUUKWIWKUUFUUTUKUULXAXCUUCACW
    DQWEUMWLWTYRDEYTUUBTXEWLBWPXBXNLWNYRVOOWFNVAXHYJWJXLXGYSYATYPWLWJXGXBNZXOXP
    WPXIBVHVIVLXHYJWIWJXTYAKXRPYPYQUVAXIABVEQVFXHYJWODEZXLXRXSPYPWLUVBXGWLWOXFM
    NXOWPXIWOVPQSWGWH $.

  $( If ` M ` is relatively prime to ` N ` , then the GCD of ` K ` with
     ` M x. N ` is the product of the GCDs with ` M ` and ` N ` respectively.
     (Contributed by Mario Carneiro, 2-Jul-2015.) $)
  rpmulgcd2 $p |- ( ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) /\
                ( M gcd N ) = 1 ) ->
      ( K gcd ( M x. N ) ) = ( ( K gcd M ) x. ( K gcd N ) ) ) $=
    ( cz wcel cgcd co c1 wceq cmul cn0 cdvds wbr zmulcld gcdcld gcddvds syl3anc
    wa wi mp2and simpl1 simpl2 simpl3 nn0mulcld mulgcddvds adantr syl2anc nn0zd
    w3a simpld simprd dvdstr dvdsgcd simpr breqtrd wb dvds1 coprmdvds2 syl31anc
    syl mpbid dvdscmul dvdsmulc syl2and dvdseq syl22anc ) ADEZBDEZCDEZUIZBCFGZH
    IZRZABCJGZFGZKEABFGZACFGZJGZKEVOVRLMZVRVOLMZVOVRIVMAVNVGVHVIVLUAZVMBCVGVHVI
    VLUBZVGVHVIVLUCZNZOVMVPVQVMABWAWBOZVMACWAWCOZUDVJVSVLABCUEUFVMVRALMZVRVNLMZ
    VTVMVPALMZVQALMZWGVMWIVPBLMZVMVGVHWIWKRWAWBABPUGZUJVMWJVQCLMZVMVGVIWJWMRWAW
    CACPUGZUJVMVPDEZVQDEZVGVPVQFGZHIZWIWJRWGSVMVPWEUHZVMVQWFUHZWAVMWQHLMZWRVMWQ
    VKHLVMWQBLMZWQCLMZWQVKLMZVMWQVPLMZWKXBVMXEWQVQLMZVMWOWPXEXFRWSWTVPVQPUGZUJV
    MWIWKWLUKZVMWQDEZWOVHXEWKRXBSVMWQVMVPVQWSWTOZUHZWSWBWQVPBULQTVMXFWMXCVMXEXF
    XGUKVMWJWMWNUKZVMXIWPVIXFWMRXCSXKWTWCWQVQCULQTVMXIVHVIXBXCRXDSXKWBWCWQBCUMQ
    TVJVLUNUOVMWQKEXAWRUPXJWQUQUTVAAVPVQURUSTVMWMWKWHXLXHVMWMVRVPCJGZLMZWKXMVNL
    MZWHVMWPVIWOWMXNSWTWCWSVPVQCVBQVMWOVHVIWKXOSWSWBWCCVPBVCQVMVRDEZXMDEVNDEZXN
    XORWHSVMVPVQWSWTNZVMVPCWSWCNWDVRXMVNULQVDTVMXPVGXQWGWHRVTSXRWAWDVRAVNUMQTVO
    VRVEVF $.

  $( Two equal reduced fractions have the same numerator and denominator.
     (Contributed by Jeff Hankins, 29-Sep-2013.) $)
  qredeq $p |- ( ( ( M e. ZZ /\ N e. NN /\ ( M gcd N ) = 1 ) /\ ( P e. ZZ
    /\ Q e. NN /\ ( P gcd Q ) = 1 ) /\ ( M / N ) = ( P / Q ) ) -> ( M = P /\
    N = Q ) ) $=
    ( cz wcel cgcd co c1 wceq wa cmul adantr adantl 3adant3 3ad2ant2 syl2an wbr
    cc cdvds cn w3a cdiv zcn nncn cc0 wne divcld mulcand divcan2d eqeq1d bitr3d
    nnne0 3ad2ant1 mulcl mulcan2d mulassd divcan1d oveq2d eqtrd bitrd cle simp2
    eqeq2d nnz anim12i simpl1 simp1 dvdsmul1 simpr breqtrrd gcdcom sylan ancoms
    simp3 ad2antrr jca coprmdvds dvdsle simpr1 dvdsmul2 mulcom breqtrd ad2antlr
    3jca sylc cr nnre letri3d mpbir2and oveq2 anbi2d biimpa syl6bir com12 ancrd
    mpd ex sylbid 3impia ) CEFZDUAFZCDGHZIJZUBZAEFZBUAFZABGHZIJZUBZCDUCHZABUCHZ
    JZCAJZDBJZKZXEXJKZXMCBLHZDALHZJZXPXQXMCDXLLHZJZXTXQDXKLHZYAJXMYBXQXKXLDXEXK
    SFZXJXAXBYDXDXAXBKZCDXACSFZXBCUDZMZXBDSFZXADUEZNZXBDUFUGZXADUMZNZUHOMXJXLSF
    ZXEXFXGYOXIXFXGKZABXFASFZXGAUDZMZXGBSFZXFBUEZNZXGBUFUGZXFBUMZNZUHOZNZXEYIXJ
    XBXAYIXDYJPZMZXEYLXJXBXAYLXDYMPMZUIXQYCCYAXEYCCJZXJXAXBUUKXDYECDYHYKYNUJOMU
    KULXQXRYABLHZJYBXTXQCYABXEYFXJXAXBYFXDYGUNMZXEYIYOYASFXJUUHUUFDXLUOQXJYTXEX
    GXFYTXIUUAPNZXJUUCXEXGXFUUCXIUUDPNUPXQUULXSXRXQUULDXLBLHZLHXSXQDXLBUUIUUGUU
    NUQXQUUOADLXJUUOAJZXEXFXGUUPXIYPABYSUUBUUEURONUSUTVDULVAXQXTXPXQXTKZXOXPUUQ
    XODBVBRZBDVBRZUUQDEFZXGKZDBTRZUURXQUVAXTXEUUTXJXGXBXAUUTXDDVEZPZXFXGXIVCVFM
    UUQUUTXABEFZUBZDXRTRZDCGHZIJZKUVBXQUVFXTXQUUTXAUVEXEUUTXJUVDMZXAXBXDXJVGXJU
    VEXEXGXFUVEXIBVEZPZNZWEMUUQUVGUVIUUQDXSXRTXQDXSTRZXTXEUUTXFUVNXJUVDXFXGXIVH
    DAVIQMXQXTVJZVKXEUVIXJXTXEUVHXCIXAXBUVHXCJZXDXBXAUVPXBUUTXAUVPUVCDCVLVMVNOX
    AXBXDVOUTVPVQDCBVRWFDBVSWFUUQUVEXBKZBDTRZUUSXQUVQXTXJXEUVQXJUVEXEXBUVLXAXBX
    DVCVFVNMUUQUVEXFUUTUBZBADLHZTRZBAGHZIJZKUVRXQUVSXTXQUVEXFUUTUVMXEXFXGXIVTUV
    JWEMUUQUWAUWCUUQBXRUVTTXQBXRTRZXTXEXAUVEUWDXJXAXBXDVHUVLCBWAQMUUQXRXSUVTUVO
    XQXSUVTJZXTXEYIYQUWEXJUUHXFXGYQXIYRUNZDAWBQMUTWCXJUWCXEXTXJUWBXHIXFXGUWBXHJ
    ZXIXGXFUWGXGUVEXFUWGUVKBAVLVMVNOXFXGXIVOUTWDVQBADVRWFBDVSWFUUQDBXEDWGFZXJXT
    XBXAUWHXDDWHPVPXJBWGFZXEXTXGXFUWIXIBWHPWDWIWJUUQXOXNXOUUQXNXOUUQXQCDLHZXSJZ
    KXNXOUWKXTXQXOUWJXRXSDBCLWKUKWLXQUWKXNXQUWKDCLHZXSJXNXQUWJUWLXSXEUWJUWLJZXJ
    XAXBUWMXDXAYFYIUWMXBYGYJCDWBQOMUKXQCADUUMXJYQXEUWFNUUIUUJUIVAWMWNWOWPWQWRWS
    WT $.

  ${
    $d n x y z A $.
    $( Every rational number has a unique reduced form.  (Contributed by Jeff
       Hankins, 29-Sep-2013.) $)
    qredeu $p |- ( A e. QQ -> E! x e. ( ZZ X. NN ) ( ( ( 1st ` x ) gcd ( 2nd `
    x ) ) = 1 /\ A = ( ( 1st ` x ) / ( 2nd ` x ) ) ) ) $=
      ( vz vn vy cv cdiv co wceq cn cz c1st cgcd c1 wcel wbr cc0 adantl oveq12d
      wa wrex cfv c2nd cxp wi wral wreu w3a cop cdvds nnz gcddvds simpld sylan2
      cq wne wb cn0 gcdcl nn0zd simpl nnne0 neneqd intnand gcdn0cl syl21anc syl
      wn dvdsval2 syl3anc mpbid 3adant3 clt simprd cr nnre nn0red nngt0 divgt0d
      jca sylibr opelxpd gcdcld nn0cnd 1cnd cmul mulid1d cc zcn adantr divcan2d
      nncn mulgcd 3eqtr2rd mulcanad divcan7d eqeq2d biimp3ar ovex op1std op2ndd
      elnnz eqeq1d anbi12d rspcev syl12anc elxp6 simprl ad2antrr simprr simprll
      simprrl simprlr simprrr eqtr3d qredeq syl331anc fvex opth simplll simplrl
      ad2antlr 3eqtr4d syl2anb rgen2a jctir 3expia rexlimivv fveq2 reu4 3imtr4i
      ex elq ) BCFZDFZGHZIZDJUACKUAAFZLUBZYRUCUBZMHZNIZBYSYTGHZIZTZAKJUDZUAZUUE
      EFZLUBZUUHUCUBZMHZNIZBUUIUUJGHZIZTZTZYRUUHIZUEZEUUFUFAUUFUFZTZBUOOUUEAUUF
      UGYQUUTCDKJYNKOZYOJOZYQUUTUVAUVBYQUHZUUGUUSUVCYNYNYOMHZGHZYOUVDGHZUIZUUFO
      UVEUVFMHZNIZBUVEUVFGHZIZUUGUVCUVEUVFKJUVAUVBUVEKOZYQUVAUVBTZUVDYNUJPZUVLU
      VBUVAYOKOZUVNYOUKZUVAUVOTZUVNUVDYOUJPZYNYOULZUMUNUVMUVDKOZUVDQUPZUVAUVNUV
      LUQUVMUVDUVBUVAUVOUVDUROZUVPYNYOUSUNZUTZUVMUVDJOZUWAUVMUVAUVOYNQIZYOQIZTV
      HZUWEUVAUVBVAZUVBUVOUVAUVPRZUVBUWHUVAUVBUWGUWFUVBYOQYOVBZVCVDRYNYOVEVFZUV
      DVBVGZUWIUVDYNVIVJVKZVLUVCUVFKOZQUVFVMPZTZUVFJOUVAUVBUWQYQUVMUWOUWPUVMUVR
      UWOUVBUVAUVOUVRUVPUVQUVNUVRUVSVNUNUVMUVTUWAUVOUVRUWOUQUWDUWMUWJUVDYOVIVJV
      KZUVMYOUVDUVBYOVOOUVAYOVPRUVMUVDUWCVQUVBQYOVMPUVAYOVRRUVMUWEQUVDVMPUWLUVD
      VRVGVSVTVLUVFXBWAWBUVAUVBUVIYQUVMUVHNUVDUVMUVHUVMUVEUVFUWNUWRWCWDUVMWEUVM
      UVDUWCWDZUWMUVMUVDNWFHUVDUVDUVEWFHZUVDUVFWFHZMHZUVDUVHWFHZUVMUVDUWSWGUVMU
      WTYNUXAYOMUVMYNUVDUVAYNWHOUVBYNWIWJZUWSUWMWKUVMYOUVDUVBYOWHOUVAYOWLRZUWSU
      WMWKSUVMUWBUVLUWOUXBUXCIUWCUWNUWRUVDUVEUVFWMVJWNWOVLUVAUVBUVKYQUVMUVJYPBU
      VMYNYOUVDUXDUXEUWSUVBYOQUPUVAUWKRUWMWPWQWRUUEUVIUVKTAUVGUUFYRUVGIZUUBUVIU
      UDUVKUXFUUAUVHNUXFYSUVEYTUVFMUVEUVFYRYNUVDGWSZYOUVDGWSZWTZUVEUVFYRUXGUXHX
      AZSXCUXFUUCUVJBUXFYSUVEYTUVFGUXIUXJSWQXDXEXFUURAEUUFYRUUFOYRYSYTUIZIZYSKO
      ZYTJOZTZTZUUHUUIUUJUIZIZUUIKOZUUJJOZTZTZUURUUHUUFOYRKJXGUUHKJXGUXPUYBTZUU
      PUUQUYCUUPTZUXKUXQYRUUHUYDYSUUIIYTUUJITZUXKUXQIUYDUXMUXNUUBUXSUXTUULUUCUU
      MIUYEUXPUXMUYBUUPUXLUXMUXNXHXIUXPUXNUYBUUPUXLUXMUXNXJXIUYCUUBUUDUUOXKUYBU
      XSUXPUUPUXRUXSUXTXHYBUYBUXTUXPUUPUXRUXSUXTXJYBUYCUUEUULUUNXLUYDBUUCUUMUYC
      UUBUUDUUOXMUYCUUEUULUUNXNXOUUIUUJYSYTXPXQYSYTUUIUUJYRLXRYRUCXRXSWAUXLUXOU
      YBUUPXTUXPUXRUYAUUPYAYCYLYDYEYFYGYHCDBYMUUEUUOAEUUFUUQUUBUULUUDUUNUUQUUAU
      UKNUUQYSUUIYTUUJMYRUUHLYIZYRUUHUCYIZSXCUUQUUCUUMBUUQYSUUIYTUUJGUYFUYGSWQX
      DYJYK $.
  $}

  $( If ` K ` is relatively prime to ` M ` and to ` N ` , it is also relatively
     prime to their product.  (Contributed by Mario Carneiro, 24-Feb-2014.)
     (Proof shortened by Mario Carneiro, 2-Jul-2015.) $)
  rpmul $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
                ( ( ( K gcd M ) = 1 /\ ( K gcd N ) = 1 ) ->
                  ( K gcd ( M x. N ) ) = 1 ) ) $=
    ( cz wcel w3a cgcd co c1 wceq cmul cdvds wbr mulgcddvds oveq12 1t1e1 syl6eq
    wa breq2d syl5ibcom cn0 wb simp1 zmulcl 3adant1 gcdcld dvds1 syl sylibd ) A
    DEZBDEZCDEZFZABGHZIJACGHZIJRZABCKHZGHZILMZURIJZUMURUNUOKHZLMUPUSABCNUPVAIUR
    LUPVAIIKHIUNIUOIKOPQSTUMURUAEUSUTUBUMAUQUJUKULUCUKULUQDEUJBCUDUEUFURUGUHUI
    $.

  $( If ` K ` is relatively prime to ` N ` then it is also relatively prime to
     any divisor ` M ` of ` N ` .  (Contributed by Mario Carneiro,
     19-Jun-2015.) $)
  rpdvds $p |- ( ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) /\
    ( ( K gcd N ) = 1 /\ M || N ) ) -> ( K gcd M ) = 1 ) $=
    ( cz wcel cgcd co c1 wceq cdvds wbr wa cle syl2anc simprr wi cc0 wn wne wb
    w3a simpl1 simpl2 gcddvds simpld simprd ax-1ne0 simprl neeq1d mpbiri neneqd
    cn simplrr eqbrtrrd simpll3 0dvds syl mpbid jca simpl3 sylibrd mtod gcdn0cl
    gcdeq0 syl21anc nnzd dvdstr syl3anc mp2and mtbid dvdslegcd syl31anc breqtrd
    ex nnle1eq1 ) ADEZBDEZCDEZUAZACFGZHIZBCJKZLZLZABFGZHMKZWEHIZWDWEVTHMWDWEAJK
    ZWECJKZWEVTMKZWDWHWEBJKZWDVPVQWHWKLVPVQVRWCUBZVPVQVRWCUCZABUDNZUEWDWKWBWIWD
    WHWKWNUFVSWAWBOWDWEDEZVQVRWKWBLWIPWDWEWDVPVQAQIZBQIZLZRWEULEZWLWMWDWRVTQIZW
    DVTQWDVTQSHQSUGWDVTHQVSWAWBUHZUIUJUKZWDWRWPCQIZLZWTWDWRXDWDWRLZWPXCWDWPWQUH
    XEQCJKZXCXEBQCJWDWPWQOVSWAWBWRUMUNXEVRXFXCTVPVQVRWCWRUOCUPUQURUSVNWDVPVRWTX
    DTWLVPVQVRWCUTZACVDNZVAVBABVCVEZVFZWMXGWEBCVGVHVIWDWOVPVRXDRWHWILWJPXJWLXGW
    DWTXDXBXHVJWEACVKVLVIXAVMWDWSWFWGTXIWEVOUQUR $.


  ${
    $d F m x y z $.  $d M m n x y z $.  $d N m n x y z $.
    $( The product of the elements of a sequence of pairwise coprime positive
       integers is coprime to a positive integer which is coprime to all
       integers of the sequence.  (Contributed by AV, 18-Aug-2020.) $)
    coprmprod $p |- ( ( ( M e. Fin /\ M C_ NN /\ N e. NN )
                       /\ F : NN --> NN /\ A. m e. M ( ( F ` m ) gcd N ) = 1 )
                     -> ( A. m e. M A. n e. ( M \ { m } )
                                    ( ( F ` m ) gcd ( F ` n ) ) = 1
                          -> ( prod_ m e. M ( F ` m ) gcd N ) = 1 ) ) $=
      ( wcel cn wss w3a cgcd co c1 wceq wral wi c0 oveq1d eqeq1d wa adantr cdif
      vx vy vz cfn wf cfv csn cprod cun sseq1 3anbi1d difeq1 raleqdv raleqbi1dv
      cv raleq 3anbi123d prodeq1 imbi12d prod0 a1i cz nnz syl 3ad2ant2 3ad2ant1
      1gcd eqtrd wn cmul nfv nfcv simprl unss snss biimpri adantl sylbir simprr
      vex simpll3 simpl sselda nncnd fveq2 simpr 3adant2 fprodsplitsn fprodnncl
      ffvelrnd nnzd zmulcld gcdcom syl2anc ex com12 simpl2 3jca 3anim123d ssun1
      imp idd ssralv mp1i ssdifd ralimdva syld imim1d imp31 rpmulgcd vsnid olci
      wo elun mpbir rspcv wb mpbird 3adant3 3eqtrd exp31 findcard2s 3expd 3imp
      ) DUEFZDGHZEGFZIGGCUFZAUPZCUGZEJKZLMZADNZYKBUPCUGJKLMZBDYJUHZUAZNZADNZDYK
      AUIZEJKZLMZOZYFYGYHYIYNUUCOZOYFYGYHYIUUDYFYGYHYIIZYNYSUUBUBUPZGHZYHYIIZYM
      AUUFNZYOBUUFYPUAZNZAUUFNZIZUUFYKAUIZEJKZLMZOPGHZYHYIIZYMAPNZYOBPYPUAZNZAP
      NZIZPYKAUIZEJKZLMZOUCUPZGHZYHYIIZYMAUVGNZYOBUVGYPUAZNZAUVGNZIZUVGYKAUIZEJ
      KZLMZOZUVGUDUPZUHZUJZGHZYHYIIZYMAUWANZYOBUWAYPUAZNZAUWANZIZUWAYKAUIZEJKZL
      MZOUUEYNYSIZUUBOUBUCUDDUUFPMZUUMUVCUUPUVFUWMUUHUURUUIUUSUULUVBUWMUUGUUQYH
      YIUUFPGUKULYMAUUFPUQUUKUVAAUUFPUWMYOBUUJUUTUUFPYPUMUNUOURUWMUUOUVELUWMUUN
      UVDEJUUFPYKAUSQRUTUUFUVGMZUUMUVNUUPUVQUWNUUHUVIUUIUVJUULUVMUWNUUGUVHYHYIU
      UFUVGGUKULYMAUUFUVGUQUUKUVLAUUFUVGUWNYOBUUJUVKUUFUVGYPUMUNUOURUWNUUOUVPLU
      WNUUNUVOEJUUFUVGYKAUSQRUTUUFUWAMZUUMUWHUUPUWKUWOUUHUWCUUIUWDUULUWGUWOUUGU
      WBYHYIUUFUWAGUKULYMAUUFUWAUQUUKUWFAUUFUWAUWOYOBUUJUWEUUFUWAYPUMUNUOURUWOU
      UOUWJLUWOUUNUWIEJUUFUWAYKAUSQRUTUUFDMZUUMUWLUUPUUBUWPUUHUUEUUIYNUULYSUWPU
      UGYGYHYIUUFDGUKULYMAUUFDUQUUKYRAUUFDUWPYOBUUJYQUUFDYPUMUNUOURUWPUUOUUALUW
      PUUNYTEJUUFDYKAUSQRUTUURUUSUVFUVBYHUUQUVFYIYHUVELEJKZLYHUVDLEJUVDLMYHYKAV
      AVBQYHEVCFZUWQLMEVDZEVHVEVIVFVGUVGUEFZUVSUVGFZVJZSZUVRUWHUWKUXCUVRSZUWHSZ
      UWJEUVOUVSCUGZVKKZJKZEUXFJKZLUXDUWHUWJUXHMZUXCUWHUXJOUVRUWHUXCUXJUWCUWDUX
      CUXJOUWGUWCUXCUXJUWCUXCSZUWJUXGEJKZUXHUXKUWIUXGEJUXKUVGUVSYKUXFAGUXKAVLAU
      XFVMUWCUWTUXBVNZUWCUVSGFZUXCUWBYHUXNYIUWBUVHUVTGHZSZUXNUVGUVTGVOZUXOUXNUV
      HUXNUXOUVSGUDWAVPVQVRVSZVGTUWCUWTUXBVTUXKYJUVGFZSZYKUXTGGYJCUWBYHYIUXCUXS
      WBUXKUVGGYJUWCUVHUXCUWBYHUVHYIUWBUXPUVHUXQUVHUXOWCVSZVGTWDWKZWEYJUVSCWFZU
      XKUXFUWCUXFGFZUXCUWBYIUYDYHUWBYISGGUVSCUWBYIWGUWBUXNYIUXRTWKWHZTZWEWIQUXK
      UXGVCFUWRUXLUXHMUXKUVOUXFUXKUVOUXKUVGYKAUXMUYBWJZWLZUXKUXFUYFWLWMUWCUWRUX
      CYHUWBUWRYIUWSVFZTZUXGEWNWOVIWPVGWQTXBUXEYHUVOGFZUYDIZEUVOJKZLMUXHUXIMUXD
      UWHUYLUXCUWHUYLOUVRUWHUXCUYLUWCUWDUXCUYLOUWGUWCUXCUYLUXKYHUYKUYDUWBYHYIUX
      CWRUYGUYFWSWPVGWQTXBUXEUYMUVPLUXDUWHUYMUVPMZUXCUWHUYNOUVRUWHUXCUYNUWCUWDU
      XCUYNOUWGUWCUXCUYNUXKUWRUVOVCFUYNUYJUYHEUVOWNWOWPVGWQTXBUXCUVRUWHUVQUXCUW
      HUVNUVQUXCUWCUVIUWDUVJUWGUVMUXCUWBUVHYHYHYIYIUWBUVHOUXCUYAVBUXCYHXCUXCYIX
      CWTUVGUWAHZUWDUVJOUXCUVGUVTXAZYMAUVGUWAXDXEUXCUWGUWFAUVGNZUVMUYOUWGUYQOUX
      CUYPUWFAUVGUWAXDXEUXCUWFUVLAUVGUXCUXSSZUVKUWEHUWFUVLOUYRUVGUWAYPUYOUYRUYP
      VBXFYOBUVKUWEXDVEXGXHWTXIXJVIEUVOUXFXKWOUWHUXILMZUXDUWCUWDUYSUWGUWCUWDSUY
      SUXFEJKZLMZUWCUWDVUAUVSUWAFZUWDVUAOUWCVUBUXAUVSUVTFZXNVUCUXAUDXLXMUVSUVGU
      VTXOXPYMVUAAUVSUWAYJUVSMZYLUYTLVUDYKUXFEJUYCQRXQXEXBUWCUYSVUAXRUWDUWCUXIU
      YTLUWCUWRUXFVCFUXIUYTMUYIUWCUXFUYEWLEUXFWNWORTXSXTVRYAYBYCYDYDYEYE $.
  $}

  ${
    $d F m n $.  $d K m x y z $.  $d M m n x y z $.
    $( Lemma for ~ coprmproddvds :  Induction step.  (Contributed by AV,
       19-Aug-2020.) $)
    coprmproddvdslem $p |- ( ( y e. Fin /\ -. z e. y )
           -> ( ( ( ( y C_ NN /\ ( K e. NN /\ F : NN --> NN ) )
           /\ ( A. m e. y A. n e. ( y \ { m } ) ( ( F ` m ) gcd ( F ` n ) ) = 1
           /\ A. m e. y ( F ` m ) || K ) ) -> prod_ m e. y ( F ` m ) || K )
             -> ( ( ( ( y u. { z } ) C_ NN /\ ( K e. NN /\ F : NN --> NN ) )
                /\ ( A. m e. ( y u. { z } ) A. n e. ( ( y u. { z } ) \ { m } )
                                             ( ( F ` m ) gcd ( F ` n ) ) = 1
                     /\ A. m e. ( y u. { z } ) ( F ` m ) || K ) )
                          -> prod_ m e. ( y u. { z } ) ( F ` m ) || K ) ) ) $=
      ( cv wcel wa cn cgcd wceq wral cdvds wbr wi adantl adantr ffvelrnd imp wn
      cfn wss wf cfv co c1 csn cdif cprod cun cmul nfv nfcv simpll unss biimpri
      snss sylbir simplr simprrr simpl sselda nncnd fveq2 fprodsplitsn ad2ant2r
      vex cz w3a simprl simprr fprodnncl ex nnzd nnz 3jca impcom ralunb simplbi
      com12 wo vsnid olci mpbir a1i snssi ssneld eldifd oveq2d eqeq1d rspcv syl
      elun ralimdva syl5 raldifb biimpi sylbi ralimi coprmprod syl31anc adantrd
      wnel expimpd ralbii anbi1i simprrl jca32 pm2.27 syl2anc exp31 syl5bi impr
      com24 syl2ani breq1d ax-mp coprmdvds2 syl22anc eqbrtrd ) AGZUBHZBGZYBHZUA
      ZIZYBJUCZFJHZJJEUDZIZIZCGZEUEZDGZEUEZKUFZUGLZDYBYMUHZUIMZCYBMZYNFNOZCYBMZ
      IZIZYBYNCUJZFNOZPZYBYDUHZUKZJUCZYKIZYRDUUJYSUIZMZCUUJMZUUBCUUJMZIZIZUUJYN
      CUJZFNOYGUUHIZUURIZUUSUUFYDEUEZULUFZFNYGUULUUSUVCLUUHUUQYGUULIZYBYDYNUVBC
      JUVDCUMCUVBUNYCYFUULUOZUULYDJHZYGUUKUVFYKUUKYHUUIJUCZIZUVFYBUUIJUPZUVGUVF
      YHUVFUVGYDJBVHURUQQUSZRZQZYCYFUULUTUVDYMYBHZIZYNUVNJJYMEUVDYJUVMYGUUKYIYJ
      VAZRUVDYBJYMUULYHYGUUKYHYKUUKUVHYHUVIYHUVGVBUSRZQZVCSVDYMYDEVEZUVDUVBUVDJ
      JYDEUVOUVLSVDVFVGUVAUUFVIHZUVBVIHZFVIHZVJZUUFUVBKUFUGLZUUGUVBFNOZUVCFNOZU
      VAUVSUVTUWAUVAUUFUUTUURUUFJHZYGUURUWFPUUHUURYGUWFUULYGUWFPUUQUULYGUWFUULY
      GIZYBYNCUULYCYFVKUWGUVMIJJYMEUWGYJUVMUULYJYGUUKYIYJVLZRRUWGYBJYMUULYHYGUV
      PRVCSVMVNRWARTVOUURUVTUUTUULUVTUUQUULUVBUULJJYDEUWHUVKSVORQUURUWAUUTUULUW
      AUUQYKUWAUUKYIUWAYJFVPRQRQVQUUTUURUWCYGUURUWCPUUHYGUULUUQUWCUVDUUOUWCUUPU
      VDUUOUWCUVDUUOIYCYHUVBJHZVJZYJYNUVBKUFZUGLZCYBMZUUAUWCUVDUWJUUOUVDYCYHUWI
      UVEUVQUULUWIYGYKUUKUWIYJUUKUWIPYIYJUUKUWIYJUUKIJJYDEYJUUKVBUUKUVFYJUVJQSV
      NQVRQVQRUVDYJUUOUVORUVDUUOUWMUUOUUNCYBMZUVDUWMUUOUWNUUNCUUIMZUUNCYBUUIVSZ
      VTUVDUUNUWLCYBUVNYDUUMHUUNUWLPUVNYDUUJYSYDUUJHZUVNUWQYEYDUUIHZWBUWRYEBWCW
      DYDYBUUIWNWEZWFUVDUVMYDYSHUAZYGUVMUWTPZUULYFUXAYCUVMYFUWTUVMYSYBYDYMYBWGW
      HWAQRTWIYRUWLDYDUUMYOYDLZYQUWKUGUXBYPUVBYNKYOYDEVEWJWKWLWMWOWPTUUOUUAUVDU
      UOUWNUWOIZUUAUWPUWNUUAUWOUUNYTCYBUUNYOYSXDYRPZDUUJMZYTYRDUUJYSWQZUXEUXDDY
      BMZUXDDUUIMZIYTUXDDYBUUIVSZUXGYTUXHUXGYTYRDYBYSWQZWRRWSUSWTRWSQUWJYJUWMVJ
      UUAUWCCDEYBUVBXATXBVNXCXERTUUTUULUUQUUGUUOUUTUULIZUXGCYBMZUUCUUGUUPUUOUXC
      UXLUWPUWNUXLUWOUUNUXGCYBUUNUXEUXGUXFUXEUXGUXHUXIVTUSWTRWSUUPUUCUUBCUUIMUU
      BCYBUUIVSVTUXLUUCIUUDUXKUUGUXLUUAUUCUXGYTCYBUXJXFXGUUTUULUUDUUGPZYGUUHUUL
      UXMPYGUUDUULUUHUUGYGUUDUULUUHUUGPZYGUUDIZUULIZYLUUDUXNUXPYHYIYJUULYHUXOUV
      PQUXOUUKYIYJXHUXOUUKYIYJVAXIYGUUDUULUTUUEUUGXJXKXLXOTTXMXPXNUURUWDUUTUUQU
      WDUULUUPUWDUUOUWQUUPUWDPUWSUUBUWDCYDUUJYMYDLYNUVBFNUVRXQWLXRQQQUWBUWCIUUG
      UWDIUWEFUUFUVBXSTXTYAXL $.

    $d F x y z $.
    $( If a positive integer is divisible by each element of a set of pairwise
       coprime positive integers, then it is divisible by their product.
       (Contributed by AV, 19-Aug-2020.) $)
    coprmproddvds $p |- ( ( ( M C_ NN /\ M e. Fin )
                            /\ ( K e. NN /\ F : NN --> NN )
                            /\ ( A. m e. M A. n e. ( M \ { m } )
                                              ( ( F ` m ) gcd ( F ` n ) ) = 1
                                 /\ A. m e. M ( F ` m ) || K ) )
                          -> prod_ m e. M ( F ` m ) || K ) $=
      ( cn wss wa cv wceq cdif wral cdvds wbr cprod wi cleq1lem difeq1 anbi12d
      c0 vx vy vz cfn wcel wf cfv cgcd co c1 csn cun raleqdv raleqbi1dv prodeq1
      raleq breq1d imbi12d prod0 nnz 1dvds syl syl5eqbr adantr coprmproddvdslem
      cz ad2antlr findcard2s exp4c impcom 3imp ) EFGZEUDUEZHDFUEZFFCUFZHZAIZCUG
      ZBICUGUHUIUJJZBEVQUKZKZLZAELZVRDMNZAELZHZEVRAOZDMNZVMVLVPWFWHPPVMVLVPWFWH
      UAIZFGVPHZVSBWIVTKZLZAWILZWDAWILZHZHZWIVRAOZDMNZPTFGZVPHZVSBTVTKZLZATLZWD
      ATLZHZHZTVRAOZDMNZPUBIZFGVPHZVSBXIVTKZLZAXILZWDAXILZHZHZXIVRAOZDMNZPXIUCI
      UKULZFGVPHZVSBXSVTKZLZAXSLZWDAXSLZHZHZXSVRAOZDMNZPVLVPHZWFHZWHPUAUBUCEWIT
      JZWPXFWRXHYKWJWTWOXEVPWITFQYKWMXCWNXDWLXBAWITYKVSBWKXAWITVTRUMUNWDAWITUPS
      SYKWQXGDMWITVRAUOUQURWIXIJZWPXPWRXRYLWJXJWOXOVPWIXIFQYLWMXMWNXNWLXLAWIXIY
      LVSBWKXKWIXIVTRUMUNWDAWIXIUPSSYLWQXQDMWIXIVRAUOUQURWIXSJZWPYFWRYHYMWJXTWO
      YEVPWIXSFQYMWMYCWNYDWLYBAWIXSYMVSBWKYAWIXSVTRUMUNWDAWIXSUPSSYMWQYGDMWIXSV
      RAUOUQURWIEJZWPYJWRWHYNWJYIWOWFVPWIEFQYNWMWCWNWEWLWBAWIEYNVSBWKWAWIEVTRUM
      UNWDAWIEUPSSYNWQWGDMWIEVRAUOUQURVPXHWSXEVNXHVOVNXGUJDMVRAUSVNDVFUEUJDMNDU
      TDVAVBVCVDVGUBUCABCDVEVHVIVJVK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cancellability of congruences
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A n $.  $d B n $.  $d M n $.
    $( Definition of congruence by integer multiple (see ProofWiki "Congruence
       (Number Theory)", 11-Jul-2021,
       ~ https://proofwiki.org/wiki/Definition:Congruence_(Number_Theory) ):
       An integer ` A ` is congruent to an integer ` B ` modulo ` M ` if their
       difference is a multiple of ` M ` .  See also the definition in
       [ApostolNT] p. 104:  "... ` a ` is congruent to ` b ` modulo ` m ` , and
       we write ` a == b ` (mod ` m ` ) if ` m ` divides the difference
       ` a - b ` ", or Wikipedia "Modular arithmetic - Congruence",
       ~ https://en.wikipedia.org/wiki/Modular_arithmetic#Congruence ,
       11-Jul-2021,:  "Given an integer n > 1, called a modulus, two integers
       are said to be congruent modulo n, if n is a divisor of their difference
       (i.e., if there is an integer k such that a-b = kn)".  (Contributed by
       AV, 11-Jul-2021.) $)
    congr $p |- ( ( A e. ZZ /\ B e. ZZ /\ M e. NN )
                    -> ( ( A mod M ) = ( B mod M )
                         <-> E. n e. ZZ ( n x. M ) = ( A - B ) ) ) $=
      ( cz wcel cn w3a cmo co wceq cmin cdvds wbr cv cmul wrex wb moddvds 3coml
      simp3 nnzd zsubcl 3adant3 divides syl2anc bitrd ) AEFZBEFZDGFZHZADIJBDIJK
      ZDABLJZMNZCODPJUMKCEQZUJUHUIULUNRABDSTUKDEFUMEFZUNUORUKDUHUIUJUAUBUHUIUPU
      JABUCUDCDUMUEUFUG $.
  $}

  ${
    $d A a b m n $.  $d B a b m n $.
    $( Integers divided by gcd are coprime.  (Contributed by AV,
       12-Jul-2021.) $)
    divgcdcoprm0 $p |- ( ( A e. ZZ /\ B e. ZZ /\ B =/= 0 )
                    -> ( ( A / ( A gcd B ) ) gcd ( B / ( A gcd B ) ) ) = 1 ) $=
      ( va cz wcel co wa cdiv c1 wceq 3adant3 cmul wb wi caddc cc zcnd ad2antrr
      syl eqcom vb vm vn cc0 wne w3a cgcd cdvds wbr gcddvds cv wrex gcdcl nn0zd
      simpl divides simpr anbi12d bezout oveqan12rd eqeq2d bicomd adantl nn0cnd
      jca ad2antlr mul32d oveq12d zmulcld cn0 zaddcld cn gcd2n0cl nnrp rpcnne0d
      oveq1 div11 syl3anc divid divdir divcan4d eqtrd eqeq12d 3bitr2d sylan9bbr
      nnne0d anim1i ancomd bezoutr1 adantr syl5bi simpll1 divmul3 3bitr4g imp32
      biimprd a1d simp2 a1dd eqeq1d sylibd sylbid exp32 com34 ex rexlimdvva mpd
      com23 impl rexlimdva impd ) ADEZBDEZBUDUEZUFZABUGFZAUHUIZXPBUHUIZGZAXPHFZ
      BXPHFZUGFZIJZXLXMXSXNABUJKXOXSCUKZXPLFZAJZCDULZUAUKZXPLFZBJZUADULZGYCXOXQ
      YGXRYKXOXPDEZXLGZXQYGMXLXMYMXNXLXMGZYLXLYNXPABUMZUNZXLXMUOVEKCXPAUPSXOYLX
      MGZXRYKMXLXMYQXNYNYLXMYPXLXMUQVEKUAXPBUPSURXOYGYKYCXOYFYKYCNCDXOYDDEZGZYK
      YFYCYSYJYFYCNZUADXOYRYHDEZYJYTNZXOXPAUBUKZLFZBUCUKZLFZOFZJZUCDULUBDULZYRU
      UAGZUUBNZXLXMUUIXNUBUCABUSKXOUUHUUKUBUCDDXOUUCDEZUUEDEZGZGZUUJUUHUUBUUOUU
      JUUHUUBNUUOUUJGZYJUUHYTUUPYJYFUUHYCUUPYJYFUUHYCNUUPYJYFGZGZUUHIYDUUCLFZYH
      UUELFZOFZJZYCUUQUUHXPYEUUCLFZYIUUELFZOFZJZUUPUVBUUQUVFUUHUUQUVEUUGXPYFYJU
      VCUUDUVDUUFOYEAUUCLVPYIBUUELVPUTVAVBUUPUVFXPUUSXPLFZUUTXPLFZOFZJZXPXPHFZU
      VIXPHFZJZUVBUUPUVEUVIXPUUPUVCUVGUVDUVHOUUPYDXPUUCUUJYDPEZUUOUUJYDYRUUAUOZ
      QVCZXOXPPEZUUNUUJXLXMUVQXNYNXPYOVDKRZUUNUUCPEXOUUJUUNUUCUULUUMUOZQVFVGUUP
      YHXPUUEUUJYHPEZUUOUUJYHYRUUAUQZQVCZUVRUUNUUEPEXOUUJUUNUUEUULUUMUQZQVFVGVH
      VAUUPUVQUVIPEUVQXPUDUEZGZUVMUVJMUVRUUPUVIUUPUVGUVHUUPUUSXPUUPYDUUCUUJYRUU
      OUVOVCUUNUULXOUUJUVSVFVIZXOYLUUNUUJXLXMYLXNYPKRVIZUUPUUTXPUUPYHUUEUUJUUAU
      UOUWAVCUUNUUMXOUUJUWCVFVIZUUPXPXOXPVJEZUUNUUJXLXMUWIXNYOKZRUNVIZVKQXOUWEU
      UNUUJXOXPVLEZUWEABVMZUWLXPXPVNVOSRZXPUVIXPVQVRUUPUVKIUVLUVAUUPUWEUVKIJUWN
      XPVSSUUPUVLUVGXPHFZUVHXPHFZOFZUVAUUPUVGPEUVHPEUWEUVLUWQJUUPUVGUWGQUUPUVHU
      WKQUWNUVGUVHXPVTVRUUPUWOUUSUWPUUTOUUPUUSXPUUPUUSUWFQXOUVQUUNUUJXOXPUWJVDR
      XOUWDUUNUUJXOXPUWMWFRZWAUUPUUTXPUUPUUTUWHQUVRUWRWAVHWBWCWDWEUURUVBYDYHUGF
      ZIJZYCUVBUVAIJZUURUWTIUVATUUPUXAUWTNZUUQUUPUUJUUNGUXBUUPUUNUUJUUOUUNUUJXO
      UUNUQWGWHYDYHUUCUUEWISWJWKUURUWSYBIUURYDXTYHYAUGUUPYJYFYDXTJZUUPYFUXCNYJU
      UPUXCYFUUPXTYDJZAYEJZUXCYFUUPAPEUVNUWEUXDUXEMUUPAXLXMXNUUNUUJWLQUVPUWNAYD
      XPWMVRYDXTTYEATWNWPWQWOUUPYJYFYHYAJZUUPYJUXFYFUUPUXFYJUUPYAYHJZBYIJZUXFYJ
      UUPBPEZUVTUWEUXGUXHMXOUXIUUNUUJXOBXLXMXNWRQRUWBUWNBYHXPWMVRYHYATYIBTWNWPW
      SWOVHWTXAXBXCXDXHXEXHXFXGXIXJXHXJXKXBXG $.
  $}

  ${
    $d A a b $.  $d B a b $.  $d M a b $.
    $( Integers divided by gcd are coprime (see ProofWiki "Integers Divided by
       GCD are Coprime", 11-Jul-2021,
       ~ https://proofwiki.org/wiki/Integers_Divided_by_GCD_are_Coprime ):  Any
       pair of integers, not both zero, can be reduced to a pair of coprime
       ones by dividing them by their gcd.  (Contributed by AV,
       12-Jul-2021.) $)
    divgcdcoprmex $p |- ( ( A e. ZZ /\ ( B e. ZZ /\ B =/= 0 )
                            /\ M = ( A gcd B ) ) -> E. a e. ZZ E. b e. ZZ
                   ( A = ( M x. a ) /\ B = ( M x. b ) /\ ( a gcd b ) = 1 ) ) $=
      ( cz wcel cc0 wa cgcd co wceq cmul wrex syl 3adant3 zcn adantr ad2antrr
      cc wne w3a cv c1 simpl anim2i zeqzmulgcd adantlr ancoms reeanv adantl cn0
      gcdcl nn0cnd mulcomd simp3 eqcomd oveq1d eqtrd eqeq1 mpbird ancomd gcdcom
      wb simpr oveq2d 3eqtrd sylan9eqr cdiv 3ad2ant1 simp1 gcdcld gcdeq0 syl6bi
      3ad2ant2 necon3d impr bicomd eqeq2d bitr2d anbi12d wi 3anass divgcdcoprm0
      divmul3d biimpri oveq12 eqeq1d syl5ibcom sylbid imp 3jca reximdva syl5bir
      ex mp2and ) AFGZBFGZBHUAZIZCABJKZLZUBZADUCZXAMKZLZDFNZBEUCZBAJKZMKZLZEFNZ
      ACXDMKZLZBCXHMKZLZXDXHJKZUDLZUBZEFNZDFNZWQWTXGXBWQWTIZWQWRIZXGWTWRWQWRWSU
      EZUFZABDUGOPWQWTXLXBWTWQXLWRWQXLWSBAEUGUHUIPXGXLIXFXKIZEFNZDFNXCYAXFXKDEF
      FUJXCYGXTDFXCXDFGZIZYFXSEFYIXHFGZIZYFXSYKYFIZXNXPXRYLXNXEXMLZYIYMYJYFYIXE
      XAXDMKZXMYIXDXAYHXDTGZXCXDQUKZXCXATGZYHWQWTYQXBYBXAYBYCXAULGZYEABUMOZUNPR
      UOXCYNXMLYHXCXACXDMXCCXAWQWTXBUPUQZURRUSSYFXNYMVDZYKXFUUAXKAXEXMUTRUKVAYF
      YKBXJXOXFXKVEXCYJXJXOLYHXCYJIZXJXHXAMKZXAXHMKXOXCXJUUCLYJXCXIXAXHMWQWTXIX
      ALZXBYBWRWQIUUDYBWQWRYEVBBAVCOPVFRUUBXHXAYJXHTGZXCXHQZUKUUBXAXCYRYJWQWTYR
      XBYSPRUNUOUUBXACXHMXCXACLYJYTRURVGUHVHYKYFXRYKYFAXAVIKZXDLZBXAVIKZXHLZIZX
      RYKXFUUHXKUUJYKUUHXFYKAXDXAXCATGZYHYJWQWTUULXBAQVJSYIYOYJYPRXCYQYHYJXCXAX
      CABWQWTXBVKWTWQWRXBYDVOVLUNSZXCXAHUAZYHYJWQWTUUNXBWQWRWSUUNYCXAHBHYCXAHLA
      HLZBHLZIUUPABVMUUOUUPVEVNVPVQPSZWEVRYKUUJBUUCLXKYKBXHXAXCBTGZYHYJWTWQUURX
      BWRUURWSBQRVOSYJUUEYIUUFUKUUMUUQWEYKUUCXJBYKXAXIXHMXCXAXILZYHYJXCYCUUSWQW
      TYCXBYEPABVCOSVFVSVTWAXCUUKXRWBYHYJXCUUGUUIJKZUDLZUUKXRXCWQWRWSUBZUVAWQWT
      UVBXBUVBYBWQWRWSWCWFPABWDOUUKUUTXQUDUUGXDUUIXHJWGWHWISWJWKWLWOWMWMWNWP $.
  $}

  ${
    $d A k r s $.  $d B k r s $.  $d C k r s $.  $d M k r s $.  $d N k r s $.
    $( One direction of the bicondition in ~ cncongr .  Theorem 5.4 in
       [ApostolNT] p. 109.  (Contributed by AV, 13-Jul-2021.) $)
    cncongr1 $p |- ( ( ( A e. ZZ /\ B e. ZZ /\ C e. ZZ )
                     /\ ( N e. NN /\ M = ( N / ( C gcd N ) ) ) )
                   -> ( ( ( A x. C ) mod N ) = ( ( B x. C ) mod N )
                        -> ( A mod M ) = ( B mod M ) ) ) $=
      ( cz wcel co wceq wa cmul cmo cmin wi adantl adantr syl cc zcnd ad2antrr
      vk vr vs w3a cn cgcd cdiv cv wrex wb zmulcl 3adant2 simpl congr syl2an3an
      3adant1 c1 cc0 wne nnz nnne0 jca eqidd 3jca 3ad2ant3 impcom divgcdcoprmex
      ex com12 oveq2 3ad2ant2 oveq12d 3ad2ant1 simpr simp3 gcdcld nn0cnd mul12d
      eqeq12d simp1 nnzd simp2 zmulcld subdid eqcomd eqeq2d anim12i zsubcld imp
      3adant3 gcd2n0cl syl3anc mulcand 3bitrd df-3an sylibr subdir nncnd simpll
      zcn divmul2 divgcdnnr eleq1 eqcoms mpbird cdvds wbr anim2i dvdsmul2 breq2
      zsubcl mulcomd breq2d gcdcom eqeq1d ancomd 3anass moddvds sylibrd expcomd
      coprmdvds sylbid com23 com3l syl6bi com14 mpd impl eqtr2 sylbird a1i 3imp
      rexlimdvva rexlimdva ) AFGZBFGZCFGZUDZEUEGZDECEUFHZUGHZIZJZJZACKHZELHBCKH
      ZELHIZUAUHZEKHZUUEUUFMHZIZUAFUIZADLHZBDLHZIZYRUUEFGZUUFFGZUUCYSUUGUULUJYO
      YQUUPYPACUKULYPYQUUQYOBCUKUPYSUUBUMZUUEUUFUAEUNUOUUDUUKUUOUAFUUDUUHFGZJZC
      YTUBUHZKHZIZEYTUCUHZKHZIZUVAUVDUFHZUQIZUDZUCFUIUBFUIZUUKUUONZUUDUVJUUSUUD
      YQEFGZEURUSZJZYTYTIZUDZUVJUUCYRUVPYSYRUVPNUUBYRYSUVPYQYOYSUVPNYPYQYSUVPYQ
      YSJZYQUVNUVOYQYSUMYSUVNYQYSUVLUVMEUTZEVAZVBOUVQYTVCVDVHVEVIPVFCEYTUBUCVGQ
      PUUTUVIUVKUBUCFFUUTUVAFGZUVDFGZJZJZUVIUVKUWCUVIJZUUKUUHUVEKHZAUVBKHZBUVBK
      HZMHZIZUUOUWDUUIUWEUUJUWHUVIUUIUWEIZUWCUVFUVCUWJUVHEUVEUUHKVJVKOUVIUUJUWH
      IZUWCUVCUVFUWKUVHUVCUUEUWFUUFUWGMCUVBAKVJCUVBBKVJVLVMOVSUWDUWIUUHUVDKHZAU
      VAKHZBUVAKHZMHZIZUUOUWCUWIUWPUJUVIUWCUWIYTUWLKHZYTUWMKHZYTUWNKHZMHZIUWQYT
      UWOKHZIUWPUWCUWEUWQUWHUWTUWCUUHYTUVDUUTUUHRGUWBUUTUUHUUDUUSVNZSPUUDYTRGZU
      USUWBUUDYTUUDCEYRYQUUCYOYPYQVOZPZUUCUVLYRYSUVLUUBUVRPOVPVQTUWBUVDRGZUUTUW
      BUVDUVTUWAVNZSOVRUWCUWFUWRUWGUWSMUWCAYTUVAUUDARGZUUSUWBYRUXHUUCYRAYOYPYQV
      TZSPTUUTUXCUWBUUTYTUUTCEYRYQUUCUUSUXDTUUDUVLUUSUUCUVLYRUUCEUURWAOZPVPVQPU
      WBUVARGZUUTUWBUVAUVTUWAUMZSZOZVRUWCBYTUVAUUDBRGZUUSUWBYRUXOUUCYRBYOYPYQWB
      ZSPTUUDUXCUUSUWBUUDYTUUDCEUXEUXJVPVQZTZUXNVRVLVSUWCUWTUXAUWQUWCUXAUWTUWCY
      TUWMUWNUXRUWCUWMUWCAUVAUUDYOUUSUWBYRYOUUCUXIPTUWBUVTUUTUXLOZWCSUWCUWNUWCB
      UVAUUDYPUUSUWBYRYPUUCUXPPTUXSWCSWDWEWFUWCUWLUWOYTUWCUWLUWCUUHUVDUUTUUSUWB
      UXBPUWBUWAUUTUXGOZWCSUUTUWBUWORGZYRUWBUYANZUUCUUSYOYPUYBYQYOYPJZUWBUYAUYC
      UWBJZUWOUYDUWMUWNUYDYOUVTJUWMFGUYCYOUWBUVTYOYPUMUXLWGAUVAUKQUYDYPUVTJUWNF
      GUYCYPUWBUVTYOYPVNUXLWGBUVAUKQWHSVHWJTWIUXRUUDYTURUSZUUSUWBUUDYTUEGZUYEUU
      DYQUVLUVMUYFUXEUXJUUCUVMYRYSUVMUUBUVSPOCEWKWLYTVAQZTWMWNPUWDUWPUWLABMHZUV
      AKHZIZUUOUWDUWOUYIUWLUWCUWOUYIIUVIUWCUYIUWOUWCUXHUXOUXKUDZUYIUWOIUWCUXHUX
      OJZUXKJUYKUUTUYLUWBUXKYRUYLUUCUUSYOYPUYLYQYOUXHYPUXOAWTBWTWGWJTUXMWGUXHUX
      OUXKWOWPABUVAWQQWEPWFUVIUWCUYJUUONZUVCUVFUVHUWCUYMNZUVFUVHUYNNNUVCUWCUVFU
      VHUYMUWCUVFUUAUVDIZUVHUYMNZUWCERGZUXFUXCUYEJZUYOUVFUJUUDUYQUUSUWBUUCUYQYR
      UUCEUURWROTUWCUVDUXTSUUDUYRUUSUWBUUDUXCUYEUXQUYGVBTEUVDYTXAWLUWCUYOUYPUWC
      UYOJZUUTUVTUVDUEGZJZJZUYOJZUYPUYSVUBUYOUYSUUTVUAUUTUWBUYOWSUYSUVTUYTUWCUV
      TUYOUXSPUYSUYTUUAUEGZUUTVUDUWBUYOUUDVUDUUSUUDYSYQJVUDUUDYSYQUUCYSYRUUROUX
      EVBECXBQPTUYOUYTVUDUJZUWCVUEUVDUUAUVDUUAUEXCXDOXEVBVBUWCUYOVNVBVUCUVHUYMV
      UCUVHJUYJAUVDLHZBUVDLHZIZUUOVUCUVHUYJVUHNZVUBUVHVUINZUYOUUDUUSVUAVUJYRUUS
      VUAJZVUJNZUUCYOYPVULYQUYCVUKVUJUYCVUKJZUVDUWLXFXGZVUJVUMUUSUWAJZVUNVUKVUO
      UYCVUAUWAUUSUYTUWAUVTUVDUTZOXHOUUHUVDXIQUYJVUNUVHVUMVUHUYJVUNUVDUYIXFXGZU
      VHVUMVUHNNUWLUYIUVDXFXJVUMVUQUVHVUHVUMVUQUVDUVAUYHKHZXFXGZUVHVUHNVUMUYIVU
      RUVDXFVUMUYHUVAUYCUYHRGVUKUYCUYHABXKZSPVUKUXKUYCVUAUXKUUSUVTUXKUYTUVAWTPO
      OXLXMVUMUVHVUSVUHVUMUVHUVDUVAUFHZUQIZVUSVUHNVUKUVHVVBUJZUYCVUAVVCUUSVUAUV
      GVVAUQVUAUWBUVGVVAIUYTUWAUVTVUPXHZUVAUVDXNQXOOOVUMVUSVVBVUHVUMVUSVVBJZUVD
      UYHXFXGZVUHVUMUWAUVTUYHFGZUDZVVEVVFNVUMUWAUVTJZVVGJVVHVUMVVGVVIUYCVVGVUKV
      VIVUTVUKUVTUWAVUAUWBUUSVVDOXPWGXPUWAUVTVVGWOWPUVDUVAUYHYAQVUMUYTYOYPUDZVU
      HVVFUJVUMUYTUYCJVVJVUMUYCUYTVUKUYTUYCVUAUYTUUSUVTUYTVNOXHXPUYTYOYPXQWPABU
      VDXRQXSXTYBYCYBYDYEYFYGVHWJPYHPWIVUCUUOVUHUJZUVHVUBUYOVVKUUDUYOVVKNZUUSVU
      AUUCVVLYRUUBVVLYSVVLUUADUUADIZUYOVVKVVMUYOJDUVDIZVVKUUADUVDYIVVNUUMVUFUUN
      VUGDUVDALVJDUVDBLVJVSQVHXDOOTWIPXSVHQVHYJYDYKYLVFYBYBYBVHYMYGYNYB $.
  $}

  ${
    $d A k $.  $d B k $.  $d C k $.  $d M k $.  $d N k $.
    $( The other direction of the bicondition in ~ cncongr .  (Contributed by
       AV, 11-Jul-2021.) $)
    cncongr2 $p |- ( ( ( A e. ZZ /\ B e. ZZ /\ C e. ZZ )
                       /\ ( N e. NN /\ M = ( N / ( C gcd N ) ) ) )
                     -> ( ( A mod M ) = ( B mod M )
                          -> ( ( A x. C ) mod N ) = ( ( B x. C ) mod N ) ) ) $=
      ( vk cz wcel co wceq wa cmo cmul wi cc0 adantr cdvds wb adantl cc cn cgcd
      w3a cdiv zcn mul01d 3ad2ant1 3ad2ant2 eqtr4d oveq1d oveq2 eqeq12d syl5ibr
      wne cv cmin wrex wbr simpl simp3 divgcdnnr syl2anr simpl1 moddvds syl3anc
      simpl2 nnzd zsubcl 3adant3 jca divides syl 3bitrd simpr zmulcld ad3antrrr
      zcnd mulcan2d subdir syl3an eqeq2d bitr3d nnz cn0 anim12i gcdcl nn0cnd wn
      nnne0 neneqd intnand gcdeq0 mpbird divassd 3anass sylibr divgcdz dvdsmul1
      necon3abid eqeltrd syl2an2 nncnd divmulasscom syl32anc breqtrrd exp32 imp
      adantrd breq2 syl5ibcom sylbid rexlimdva 3adant2 3adant1 sylibrd ex com23
      zmulcl com12 pm2.61ine ) AGHZBGHZCGHZUCZEUAHZDECEUBIZUDIZJZKZKZADLIZBDLIZ
      JZACMIZELIZBCMIZELIZJZYJYMKZYRNCOYSYRCOJZAOMIZELIZBOMIZELIZJZYJUUEYMYJUUA
      UUCELYDUUAUUCJYIYDUUAOUUCYAYBUUAOJYCYAAAUEZUFUGYBYAUUCOJYCYBBBUEZUFUHUIPU
      JPYTYOUUBYQUUDYTYNUUAELCOAMUKUJYTYPUUCELCOBMUKUJULUMYSCOUNZYRYJYMUUHYRNZY
      JYMFUOZYGMIZABUPIZJZFGUQZUUIYJYMAYGLIZBYGLIZJZYGUULQURZUUNYIYMUUQRZYDYHUU
      SYEYHYKUUOYLUUPDYGALUKDYGBLUKULSSYJYGUAHZYAYBUUQUURRYIYEYCUUTYDYEYHUSZYAY
      BYCUTZECVAVBZYAYBYCYIVCYAYBYCYIVFABYGVDVEYJYGGHZUULGHZKUURUUNRYJUVDUVEYJY
      GUVCVGZYDUVEYIYAYBUVEYCABVHZVIPVJFYGUULVKVLVMYJUUHUUNYRYJUUHUUNYRNYJUUHKZ
      UUNEYNYPUPIZQURZYRUVHUUMUVJFGUVHUUJGHZKZUUMUUKCMIZUVIJZUVJUVLUVMUULCMIZJU
      UMUVNUVLUUKUULCUVLUUKUVLUUJYGUVHUVKVNUVHUVDUVKYJUVDUUHUVFPPVOVQYDUULTHZYI
      UUHUVKYAYBUVPYCYAYBKUULUVGVQVIVPYDCTHZYIUUHUVKYDCUVBVQZVPUVHUUHUVKYJUUHVN
      PVRUVLUVOUVIUVMYDUVOUVIJZYIUUHUVKYAATHYBBTHYCUVQUVSUUFUUGCUEABCVSVTVPWAWB
      UVLEUVMQURZUVNUVJUVHUVKUVTYJUVKUVTNZUUHYDYIUWAYDYEUWAYHYDYEUVKUVTYDYEUVKK
      ZKZEEUUJCMIYFUDIZMIZUVMQUWBEGHZYDUWDGHEUWEQURYEUWFUVKEWCZPUWCUWDUUJCYFUDI
      ZMIGUWCUUJCYFUWBUUJTHZYDUWBUUJYEUVKVNZVQSZYDUVQUWBUVRPZUWCYFUWCYCUWFKZYFW
      DHYDYCUWBUWFUVBUWBEYEUVKUSZVGWEZCEWFVLWGZUWCYFOUNZYTEOJZKZWHUWCUWRYTUWBUW
      RWHZYDYEUWTUVKYEEOEWIZWJPSWKUWCUWSYFOUWCUWMYFOJUWSRUWOCEWLVLWSWMZWNUWCUUJ
      UWHUWBUVKYDUWJSUWCYCUWFEOUNZUCZUWHGHUWCYCUWFUXCKZKUXDYDYCUWBUXEUVBYEUXEUV
      KYEUWFUXCUWGUXAVJPWEYCUWFUXCWOWPCEWQVLVOWTEUWDWRXAUWCUWIETHZUVQYFTHUWQUVM
      UWEJUWKUWBUXFYDUWBEUWNXBSUWLUWPUXBUUJECYFXCXDXEXFXHXGPXGUVMUVIEQXIXJXKXLY
      JYRUVJRZUUHYJYEYNGHZYPGHZUXGYIYEYDUVASYDUXHYIYAYCUXHYBACXRXMPYDUXIYIYBYCU
      XIYABCXRXNPYNYPEVDVEPXOXPXQXKXGXSXTXP $.
  $}

  $( Cancellability of Congruences (see ProofWiki "Cancellability of
     Congruences, ~ https://proofwiki.org/wiki/Cancellability_of_Congruences ,
     10-Jul-2021):  Two products with a common factor are congruent modulo a
     positive integer iff the other factors are congruent modulo the integer
     divided by the greates common divisor of the integer and the common
     factor.  See also Theorem 5.4 "Cancellation law" in [ApostolNT] p. 109.
     (Contributed by AV, 13-Jul-2021.) $)
  cncongr $p |- ( ( ( A e. ZZ /\ B e. ZZ /\ C e. ZZ )
                    /\ ( N e. NN /\ M = ( N / ( C gcd N ) ) ) )
                  -> ( ( ( A x. C ) mod N ) = ( ( B x. C ) mod N )
                       <-> ( A mod M ) = ( B mod M ) ) ) $=
    ( cz wcel w3a cn cgcd co cdiv wceq wa cmul cmo cncongr1 cncongr2 impbid ) A
    FGBFGCFGHEIGDECEJKLKMNNACOKEPKBCOKEPKMADPKBDPKMABCDEQABCDERS $.

  $( Corollary 1 of Cancellability of Congruences:  Two products with a common
     factor are congruent modulo an integer being coprime to the common factor
     iff the other factors are congruent modulo the integer.  (Contributed by
     AV, 13-Jul-2021.) $)
  cncongrcoprm $p |- ( ( ( A e. ZZ /\ B e. ZZ /\ C e. ZZ )
                         /\ ( N e. NN /\ ( C gcd N ) = 1 ) )
                       -> ( ( ( A x. C ) mod N ) = ( ( B x. C ) mod N )
                            <-> ( A mod N ) = ( B mod N ) ) ) $=
    ( cn wcel cgcd co c1 wceq wa cz w3a cdiv cmul cmo wb simpl nncn div1d oveq2
    eqcomd sylan9req jca cncongr sylan2 ) DEFZCDGHZIJZKZALFBLFCLFMUGDDUHNHZJZKA
    COHDPHBCOHDPHJADPHBDPHJQUJUGULUGUIRUGUIDDINHZUKUGDDSTUIUKUMUHIDNUAUBUCUDABC
    DDUEUF $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Elementary prime number theory
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Elementary properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Remark: to represent odd prime numbers, i.e., all prime numbers except ` 2 `,
  the idiom ` P e. ( Prime \ { 2 } ) ` is used.  It is a little bit shorter
  than ` ( P e. Prime /\ P =/= 2 ) `.  Both representations can be converted
  into each other by ~ eldifsn .

$)

  $c Prime $.

  $( Extend the definition of a class to include the set of prime numbers. $)
  cprime $a class Prime $.

  ${
    $d n p $.
    $( Define the set of prime numbers.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    df-prm $a |- Prime = { p e. NN | { n e. NN | n || p } ~~ 2o } $.
  $}

  ${
    $d P n p z $.
    $( The predicate "is a prime number".  A prime number is a positive integer
       with exactly two positive divisors.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    isprm $p |- ( P e. Prime <->
                  ( P e. NN /\ { n e. NN | n || P } ~~ 2o ) ) $=
      ( vp cv cdvds wbr cn crab c2o cen cprime wceq breq2 rabbidv breq1d df-prm
      elrab2 ) BDZCDZEFZBGHZIJFRAEFZBGHZIJFCAGKSALZUAUCIJUDTUBBGSAREMNOBCPQ $.

    $( A prime number is a positive integer.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    prmnn $p |- ( P e. Prime -> P e. NN ) $=
      ( vz cprime wcel cn cv cdvds wbr crab c2o cen isprm simplbi ) ACDAEDBFAGH
      BEIJKHABLM $.

    $( A prime number is an integer.  (Contributed by Paul Chapman,
       22-Jun-2011.)  (Proof shortened by Jonathan Yan, 16-Jul-2017.) $)
    prmz $p |- ( P e. Prime -> P e. ZZ ) $=
      ( cprime wcel prmnn nnzd ) ABCAADE $.
  $}

  $( The prime numbers are a subset of the positive integers.  (Contributed by
     AV, 22-Jul-2020.) $)
  prmssnn $p |- Prime C_ NN $=
    ( vx cprime cn cv prmnn ssriv ) ABCADEF $.

  $( The set of prime numbers exists.  (Contributed by AV, 22-Jul-2020.) $)
  prmex $p |- Prime e. _V $=
    ( cprime cn nnex prmssnn ssexi ) ABCDE $.

  ${
    $d n z $.
    $( 1 is not a prime number.  (Contributed by Paul Chapman, 22-Jun-2011.)
       (Proof shortened by Fan Zheng, 3-Jul-2016.) $)
    1nprm $p |- -. 1 e. Prime $=
      ( vn vz c1 cprime wcel cv cdvds wbr cn crab c2o cen csdm c1o csn wceq 1nn
      wn wa eleq1 mpbiri cn0 wb nnnn0 dvds1 bicomd biadan2 velsn breq1 3bitr4ri
      syl elrab eqriv ensn1 eqbrtri 1sdom2 ensdomtr mp2an sdomnen ax-mp mpbiran
      1ex isprm mtbir ) CDEZAFZCGHZAIJZKLHZVHKMHZVIRVHNLHNKMHVJVHCOZNLBVHVKBFZC
      PZVLIEZVLCGHZSVLVKEVLVHEVMVNVOVMVNCIEZQVLCITUAVNVOVMVNVLUBEVOVMUCVLUDVLUE
      UKUFUGBCUHVGVOAVLIVFVLCGUIULUJUMCVBUNUOUPVHNKUQURVHKUSUTVEVPVIQCAVCVAVD
      $.
  $}

  ${
    $d N n $.
    $( The positive divisors of a positive integer include 1 and itself.
       (Contributed by Paul Chapman, 22-Jun-2011.) $)
    1idssfct $p |- ( N e. NN -> { 1 , N } C_ { n e. NN | n || N } ) $=
      ( cn wcel c1 cv cdvds wbr crab cpr wss 1nn cz nnz 1dvds syl breq1 biimpri
      wa elrab sylancr iddvds mpdan prssi syl2anc ) BCDZEAFZBGHZACIZDZBUIDZEBJU
      IKUFECDZEBGHZUJLUFBMDZUMBNZBOPUJULUMSUHUMAECUGEBGQTRUAUFBBGHZUKUFUNUPUOBU
      BPUKUFUPSUHUPABCUGBBGQTRUCEBUIUDUE $.
  $}

  ${
    $d n p z P $.
    $( Lemma for ~ isprm2 .  (Contributed by Paul Chapman, 22-Jun-2011.) $)
    isprm2lem $p |- ( ( P e. NN /\ P =/= 1 ) ->
      ( { n e. NN | n || P } ~~ 2o <-> { n e. NN | n || P } = { 1 , P } ) ) $=
      ( cn wcel c1 wne wa cv cdvds wbr crab c2o cen cpr syl ad2antrr 1nn elrab3
      wb breq1 wceq simplr necomd wi simpr nnz 1dvds ax-mp sylibr iddvds mpbird
      cz en2eqpr syl3anc ex necom pr2ne mpan biimpar sylan2br syl5ibrcom impbid
      mpd ) ACDZAEFZGZBHZAIJZBCKZLMJZVIEANZUAZVFVJVLVFVJGZEAFZVLVMAEVDVEVJUBUCV
      MVJEVIDZAVIDZVNVLUDVFVJUEVMEAIJZVOVDVQVEVJVDAULDZVQAUFZAUGOPECDZVOVQSQVHV
      QBECVGEAITRUHUIVMVPAAIJZVDWAVEVJVDVRWAVSAUJOPVDVPWASVEVJVHWABACVGAAITRPUK
      EAVIUMUNVCUOVFVJVLVKLMJZVEVDVNWBEAUPVDWBVNVTVDWBVNSQEACCUQURUSUTVIVKLMTVA
      VB $.

    $( The predicate "is a prime number".  A prime number is an integer greater
       than or equal to 2 whose only positive divisors are 1 and itself.
       Definition in [ApostolNT] p. 16.  (Contributed by Paul Chapman,
       26-Oct-2012.) $)
    isprm2 $p |- ( P e. Prime <-> ( P e. ( ZZ>= ` 2 ) /\
                      A. z e. NN ( z || P -> ( z = 1 \/ z = P ) ) ) ) $=
      ( vn cprime wcel c1 wa cn cv cdvds wbr wss wceq wi bitri ancom bitr4i wal
      wb 3bitri wne crab cpr c2 cuz cfv wo wral 1nprm eleq1 biimpcd mtoi neqned
      pm4.71i c2o cen isprm isprm2lem eqss imbi2i 1idssfct jcab mpbiran2 adantr
      pm5.74ri bitrd expcom pm5.32d syl5bb anass eluz2b3 anbi1i dfss2 breq1 vex
      pm5.32ri elrab elpr imbi12i impexp albii df-ral anbi2i ) BDEZWDBFUAZGBHEZ
      CIZBJKZCHUBZFBUCZLZGZWEGZBUDUEUFEZAIZBJKZWOFMWOBMUGZNZAHUHZGZWDWEWDBFWDBF
      MZFDEZUIXAWDXBBFDUJUKULUMUNWEWDWLWDWFWIUOUPKZGWEWLBCUQWEWFXCWKWFWEXCWKSWF
      WEGZXCWIWJMZWKBCURWFXEWKSWEWFXEWKWFXENWFWKWJWILZGZNZWFWKNZXEXGWFWIWJUSUTX
      HXIWFXFNCBVAWFWKXFVBVCOVEVDVFVGVHVIVPWMWEWFGZWKGZWNWKGWTWMWEWLGXKWLWEPWEW
      FWKVJQXJWNWKXJXDWNWEWFPBVKQVLWKWSWNWKWOWIEZWOWJEZNZARZWSAWIWJVMXOWOHEZWRN
      ZARWSXNXQAXNXPWPGZWQNXQXLXRXMWQWHWPCWOHWGWOBJVNVQWOFBAVOVRVSXPWPWQVTOWAWR
      AHWBQOWCTT $.

    $( The predicate "is a prime number".  A prime number is an integer greater
       than or equal to 2 with no divisors strictly between 1 and itself.
       (Contributed by Paul Chapman, 26-Oct-2012.) $)
    isprm3 $p |- ( P e. Prime <-> ( P e. ( ZZ>= ` 2 ) /\
                      A. z e. ( 2 ... ( P - 1 ) ) -. z || P ) ) $=
      ( wcel c2 cuz cfv wbr c1 wceq wi cn wa wn co wb cle cz adantr cr syl2an
      cprime cv cdvds wo wral cmin cfz isprm2 iman clt eluz2nn nnz dvdsle sylan
      nnge1 jctild sylan2 wne zre nnre 1re leltne mp3an1 3adant2 3expia anim12d
      pm4.38 df-ne nesym anbi12i ioran bitr4i syl6bb syl6 syld eluzelz caddc 1z
      imp zltp1le mpan df-2 breq1i syl6bbr zltlem1 anbi12d peano2zm elfz mp3an2
      bitr4d bitr3d anasss expcom pm5.32d fzssuz 2eluzge1 uzss ax-mp sstri nnuz
      2z sseqtr4i sseli pm4.71ri notbid syl5bb pm5.74da bi2.04 3bitr3g ralbidv2
      wss con2b pm5.32i bitri ) BUACBDEFZCZAUBZBUCGZXQHIZXQBIZUDZJZAKUEZLXPXRMZ
      ADBHUFNZUGNZUEZLABUHXPYCYGXPYBYDAKYFXPXRXQKCZYAJZJXRXQYFCZMZJYHYBJYJYDJXP
      XRYIYKYIYHYAMZLZMXPXRLZYKYHYAUIYNYMYJYNYMYHYJLYJYNYHYLYJYHYNYLYJOZYHXPXRY
      OYHXPLZXRLHXQUJGZXQBUJGZLZYLYJYPXRYSYLOZYPXRHXQPGZXQBPGZLZYTXPYHBKCZXRUUC
      JBUKZYHUUDLXRUUBUUAYHXQQCZUUDXRUUBJXQULZXQBUMUNYHUUAUUDXQUORUPUQYHUUFUUDU
      UCYTJXPUUGUUEUUFUUDLUUCYQXQHURZOZYRBXQURZOZLZYTUUFXQSCZBSCZUUCUULJUUDXQUS
      BUTUUMUUNLUUAUUIUUBUUKUUMUUNUUAUUIUUMUUAUUIUUNHSCUUMUUAUUIVAHXQVBVCVDVEUU
      MUUNUUBUUKXQBVBVEVFTUULYSUUHUUJLZYLYQYRUUHUUJVGUUOXSMZXTMZLYLUUHUUPUUJUUQ
      XQHVHBXQVIVJXSXTVKVLVMVNTVOVSYPYSYJOZXRYHUUFBQCZUURXPUUGDBVPUUFUUSLZYSDXQ
      PGZXQYEPGZLZYJUUTYQUVAYRUVBUUFYQUVAOUUSUUFYQHHVQNZXQPGZUVAHQCUUFYQUVEOVRH
      XQVTWADUVDXQPWBWCWDRXQBWEWFUUSUUFYEQCZYJUVCOZBWGUUFDQCUVFUVGXAXQDYEWHWIUQ
      WJTRWKWLWMWNYJYHYFKXQYFHEFZKYFXOUVHDYEWODUVHCXOUVHXKWPHDWQWRWSWTXBXCXDWDX
      EXFXGXRYHYAXHXRYJXLXIXJXMXN $.

    $( The predicate "is a prime number".  A prime number is an integer greater
       than or equal to 2 whose only divisor greater than or equal to 2 is
       itself.  (Contributed by Paul Chapman, 26-Oct-2012.) $)
    isprm4 $p |- ( P e. Prime <-> ( P e. ( ZZ>= ` 2 ) /\
                      A. z e. ( ZZ>= ` 2 ) ( z || P -> z = P ) ) ) $=
      ( cprime wcel c2 cuz cfv cv cdvds wbr c1 wceq wi cn wral wa imbi1i bitr4i
      imbi2i bitri wo isprm2 wne eluz2b3 impexp bi2.04 wn df-ne ralbii2 anbi2i
      df-or ) BCDBEFGZDZAHZBIJZUNKLZUNBLZUAZMZANOZPUMUOUQMZAULOZPABUBVBUTUMVAUS
      AULNUNULDZVAMUNNDZUNKUCZPZVAMZVDUSMZVCVFVAUNUDQVGVDVEVAMZMVHVDVEVAUEVIUSV
      DVIUOVEUQMZMUSVEUOUQUFVJURUOVJUPUGZUQMURVEVKUQUNKUHQUPUQUKRSTSTTUIUJR $.
  $}

  ${
    $d k x y $.  $d n x A $.  $d x z ch $.  $d x et $.  $d x ta $.  $d x th $.
    $d k n y z ph $.
    prmind.1 $e |- ( x = 1 -> ( ph <-> ps ) ) $.
    prmind.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    prmind.3 $e |- ( x = z -> ( ph <-> th ) ) $.
    prmind.4 $e |- ( x = ( y x. z ) -> ( ph <-> ta ) ) $.
    prmind.5 $e |- ( x = A -> ( ph <-> et ) ) $.
    prmind.6 $e |- ps $.
    ${
      prmind2.7 $e |- ( ( x e. Prime /\ A. y e. ( 1 ... ( x - 1 ) ) ch ) ->
        ph ) $.
      prmind2.8 $e |- ( ( y e. ( ZZ>= ` 2 ) /\ z e. ( ZZ>= ` 2 ) ) ->
        ( ( ch /\ th ) -> ta ) ) $.
      $( A variation on ~ prmind assuming complete induction for primes.
         (Contributed by Mario Carneiro, 20-Jun-2015.) $)
      prmind2 $p |- ( A e. NN -> et ) $=
        ( wcel c1 vn vk cn cfz co wral elfz1end biimpi caddc wceq oveq2 raleqdv
        cv weq wb elfz1eq syl mpbiri rgen csn wa wsbc cdvds cmin wrex cdiv cmul
        wbr c2 peano2nn ad2antrr nncnd cuz cfv elfzuz ad2antrl eluz2nn divcan2d
        nnne0d cz clt simprr cc0 wne dvdsval2 syl3anc mpbid mulid2d cle elfzle2
        nnzd nncn ax-1cn pncan sylancl breqtrd nnz zleltp1 syl2anc eqbrtrd 1red
        cc cr nnred nngt0d ltmuldiv syl112anc eluz2b1 sylanbrc mpbir2and simplr
        fznn rspcv nnrpd rpdivcld rpgt0d elnnz dividd eluz2b2 simprbi syl122anc
        sylc ltdiv23 mpbird cbvralv sylib vex dfsbcq syl5bbr jca wi anbi2d ovex
        sbcie imbi12d wn cprime oveq2d ex sylibrd sbceq1d imbi2d expcom vtoclga
        syl3c sbceq1dd rexlimdvaa ralnex simpl elnnuz eluzp1p1 fveq2i syl6eleqr
        df-2 isprm3 baibr simpr nfcv nfv nfsbc1v oveq1 sbceq1a vtoclgaf syl5com
        nfim sylbid syl5bir pm2.61d ralsnsg ancld cun fzsuc sylbi ralunb syl6bb
        nnind ) JUCSZJTJUDUEZSZAGUVRUFZFUVQUVSJUGUHAGTUAUMZUDUEZUFAGTTUDUEZUFAG
        TUBUMZUDUEZUFZAGTUWDTUIUEZUDUEZUFZUVTUAUBJUWATUJAGUWBUWCUWATTUDUKULUAUB
        UNAGUWBUWEUWAUWDTUDUKULUWAUWGUJAGUWBUWHUWAUWGTUDUKULUWAJUJAGUWBUVRUWAJT
        UDUKULAGUWCGUMZUWCSZABPUWKUWJTUJABUOUWJTUPKUQURUSUWDUCSZUWFUWFAGUWGUTZU
        FZVAZUWIUWLUWFUWNUWLUWFAGUWGVBZUWNUWLUWFUWPUWLUWFVAZHUMZUWGVCVHZHVIUWGT
        VDUEZUDUEZVEZUWPUWQUWSUWPHUXAUWQUWRUXASZUWSVAZVAZAGUWRUWGUWRVFUEZVGUEZU
        WGUXEUWGUWRUXEUWGUWLUWGUCSZUWFUXDUWDVJZVKZVLZUXEUWRUXEUWRVIVMVNZSZUWRUC
        SZUXCUXMUWQUWSUWRVIUWTVOVPZUWRVQUQZVLZUXEUWRUXPVSZVRUXEUXFUXLSZUXMCAGUX
        FVBZVAZAGUXGVBZUXEUXFVTSZTUXFWAVHZUXSUXEUWSUYCUWQUXCUWSWBUXEUWRVTSZUWRW
        CWDUWGVTSUWSUYCUOUXEUWRUXPWKZUXRUXEUWGUXJWKUWRUWGWEWFWGZUXETUWRVGUEZUWG
        WAVHZUYDUXEUYHUWRUWGWAUXEUWRUXQWHUXEUWRUWDWIVHZUWRUWGWAVHZUXEUWRUWTUWDW
        IUXCUWRUWTWIVHUWQUWSUWRVIUWTWJVPUXEUWDXBSZTXBSZUWTUWDUJZUWLUYLUWFUXDUWD
        WLVKWMUWDTWNZWOWPZUXEUYEUWDVTSZUYJUYKUOUYFUWLUYQUWFUXDUWDWQVKZUWRUWDWRW
        SWGWTUXETXCSUWGXCSZUWRXCSZWCUWRWAVHZUYIUYDUOUXEXAUXEUWGUXJXDZUXEUWRUXPX
        DZUXEUWRUXPXEZTUWGUWRXFXGWGUXFXHXIUXOUXECUXTUXEUWRUWESZUWFCUXEVUEUXNUYJ
        UXPUYPUXEUYQVUEUXNUYJVAUOUYRUWRUWDXLUQXJUWLUWFUXDXKZACGUWRUWELXMYBUXEUX
        FUWESZDIUWEUFZUXTUXEVUGUXFUCSZUXFUWDWIVHZUXEUYCWCUXFWAVHVUIUYGUXEUXFUXE
        UWGUWRUXEUWGUXJXNUXEUWRUXPXNXOXPUXFXQXIUXEVUJUXFUWGWAVHZUXEUWGUWGVFUEZU
        WRWAVHZVUKUXEVULTUWRWAUXEUWGUXKUXEUWGUXJVSXRUXEUXMTUWRWAVHZUXOUXMUXNVUN
        UWRXSXTUQWTUXEUYSUYSWCUWGWAVHUYTVUAVUMVUKUOVUBVUBUXEUWGUXJXEVUCVUDUWGUW
        GUWRYCYAWGUXEUYCUYQVUJVUKUOUYGUYRUXFUWDWRWSYDUXEUYQVUGVUIVUJVAUOUYRUXFU
        WDXLUQXJUXEUWFVUHVUFADGIUWEMYEYFDUXTIUXFUWEDAGIUMZVBVUOUXFUJZUXTADGVUOI
        YGMYNAGVUOUXFYHYIZXMYBYJUXMCDVAZEYKZYKUXMUYAUYBYKZYKIUXFUXLVUPVUSVUTUXM
        VUPVURUYAEUYBVUPDUXTCVUQYLEAGUWRVUOVGUEZVBVUPUYBAEGVVAUWRVUOVGYMNYNVUPA
        GVVAUXGVUOUXFUWRVGUKUUAYIYOUUBUXMVUOUXLSVUSRUUCUUDUUEUUFUUGUXBYPUWSYPHU
        XAUFZUWQUWPUWSHUXAUUHUWQVVBUWGYQSZUWPUWQUWGUXLSZVVBVVCUOUWQUWGTTUIUEZVM
        VNZUXLUWQUWDTVMVNSZUWGVVFSUWQUWLVVGUWLUWFUUIZUWDUUJZYFTUWDUUKUQVIVVEVMU
        UNUULUUMVVCVVDVVBHUWGUUOUUPUQUWQCHTUWTUDUEZUFZVVCUWPUWQVVKCHUWEUFZUWQUW
        FVVLUWLUWFUUQACGHUWELYEYFUWQCHVVJUWEUWQUWTUWDTUDUWQUYLUYMUYNUWQUWDVVHVL
        WMUYOWOYRULYDCHTUWJTVDUEZUDUEZUFZAYKVVKUWPYKGUWGYQGUWGUURVVKUWPGVVKGUUS
        AGUWGUUTUVEUWJUWGUJZVVOVVKAUWPVVPCHVVNVVJVVPVVMUWTTUDUWJUWGTVDUVAYRULAG
        UWGUVBYOUWJYQSVVOAQYSUVCUVDUVFUVGUVHYSUWLUXHUWNUWPUOUXIAGUWGUCUVIUQYTUV
        JUWLUWIAGUWEUWMUVKZUFUWOUWLAGUWHVVQUWLVVGUWHVVQUJVVITUWDUVLUVMULAGUWEUW
        MUVNUVOYTUVPAFGJUVROXMYB $.
    $}

    prmind.7 $e |- ( x e. Prime -> ph ) $.
    prmind.8 $e |- ( ( y e. ( ZZ>= ` 2 ) /\ z e. ( ZZ>= ` 2 ) ) ->
      ( ( ch /\ th ) -> ta ) ) $.
    $( Perform induction over the multiplicative structure of ` NN ` .  If a
       property ` ph ( x ) ` holds for the primes and ` 1 ` and is preserved
       under multiplication, then it holds for every positive integer.
       (Contributed by Mario Carneiro, 20-Jun-2015.) $)
    prmind $p |- ( A e. NN -> et ) $=
      ( c1 co cv cprime wcel cmin cfz wral adantr prmind2 ) ABCDEFGHIJKLMNOPGUA
      ZUBUCACHSUISUDTUETUFQUGRUH $.
  $}

  ${
    $d M m $.  $d P m $.
    $( If ` M ` divides a prime, then ` M ` is either the prime or one.
       (Contributed by Scott Fenton, 8-Apr-2014.) $)
    dvdsprime $p |- ( ( P e. Prime /\ M e. NN ) ->
       ( M || P <-> ( M = P \/ M = 1 ) ) ) $=
      ( vm cprime wcel cn wa cdvds wbr wceq c1 wo c2 cuz breq1 eqeq1 syl adantr
      wi syl5ibrcom cv wral isprm2 orbi12d orcom syl6bb imbi12d rspccva adantll
      cfv sylanb cz prmz iddvds 1dvds jaod impbid ) ADEZBFEZGZBAHIZBAJZBKJZLZUR
      AMNUJEZCUAZAHIZVFKJZVFAJZLZSZCFUBZGUSVAVDSZCAUCVLUSVMVEVKVMCBFVFBJZVGVAVJ
      VDVFBAHOVNVJVCVBLVDVNVHVCVIVBVFBKPVFBAPUDVCVBUEUFUGUHUIUKUTVBVAVCUTVAVBAA
      HIZURVOUSURAULEZVOAUMZAUNQRBAAHOTUTVAVCKAHIZURVRUSURVPVRVQAUOQRBKAHOTUPUQ
      $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A product of two integers greater than one is composite.  (Contributed
       by Mario Carneiro, 20-Jun-2015.) $)
    nprm $p |- ( ( A e. ( ZZ>= ` 2 ) /\ B e. ( ZZ>= ` 2 ) ) ->
        -. ( A x. B ) e. Prime ) $=
      ( vx c2 cuz cfv wcel cz eluzelz adantr clt wbr cn simprbi adantl cr cdvds
      zred wceq wi wa cmul co wne cprime wn c1 eluz2b2 cc0 wb eluz2nn ltmulgt11
      nngt0d syl3anc mpbid ltned dvdsmul1 syl2an wral breq1 eqeq1 imbi12d rspcv
      cv isprm4 syl5 mpid necon3ad mpd ) ADEFZGZBVJGZUAZAABUBUCZUDVNUEGZUFVMAVN
      VMAVKAHGZVLDAIZJRZVMUGBKLZAVNKLZVLVSVKVLBMGVSBUHNOVMAPGBPGUIAKLVSVTUJVRVM
      BVLBHGZVKDBIZORVMAVKAMGVLAUKJUMABULUNUOUPVMVOAVNVMVOAVNQLZAVNSZVKVPWAWCVL
      VQWBABUQURVKVOWCWDTZTVLVOCVDZVNQLZWFVNSZTZCVJUSZVKWEVOVNVJGWJCVNVENWIWECA
      VJWFASWGWCWHWDWFAVNQUTWFAVNVAVBVCVFJVGVHVI $.
  $}

  ${
    nprmi.1 $e |- A e. NN $.
    nprmi.2 $e |- B e. NN $.
    nprmi.3 $e |- 1 < A $.
    nprmi.4 $e |- 1 < B $.
    nprmi.5 $e |- ( A x. B ) = N $.
    $( An inference for compositeness.  (Contributed by Mario Carneiro,
       18-Feb-2014.)  (Revised by Mario Carneiro, 20-Jun-2015.) $)
    nprmi $p |- -. N e. Prime $=
      ( cmul co cprime wcel cn c1 clt wbr wn wa c2 eluz2b2 nprm syl2anbr eleq1i
      cuz cfv mp4an mtbi ) ABIJZKLZCKLAMLZNAOPZBMLZNBOPZUIQZDFEGUJUKRASUDUEZLBU
      OLUNULUMRATBTABUAUBUFUHCKHUCUG $.
  $}

  ${
    $d A k $.  $d N k $.  $d ph k $.
    dvdsnprmd.g $e |- ( ph -> 1 < A ) $.
    dvdsnprmd.l $e |- ( ph -> A < N ) $.
    dvdsnprmd.d $e |- ( ph -> A || N ) $.
    $( If a number is divisible by an integer greater than 1 and less then the
       number, the number is not prime.  (Contributed by AV, 24-Jul-2021.) $)
    dvdsnprmd $p |- ( ph -> -. N e. Prime ) $=
      ( vk wbr wcel cz wa wb c2 cle c1 clt adantr cr cc0 wi cdvds wn cv cmul co
      cprime wceq wrex dvdszrcl divides 3syl cuz cfv 2z a1i simplr breq2 adantl
      mpbird w3a zre 3ad2ant1 3ad2ant3 0lt1 0red 1red syl3anc mpani imp 3adant3
      lttr 3jca 3exp mpd ltmulgt12 syl caddc df-2 breq1i zltp1le mpancom bicomd
      1zzd syl5bb eluz2 syl3anbrc simpl biimpa sylibr nprm syl2anc eleq1 notbid
      ex mpbid rexlimdva sylbid ) ABCUAHZCUFIZUBZFAWRGUCZBUDUEZCUGZGJUHZWTAWRBJ
      IZCJIZKZWRXDLFBCUIZGBCUJUKAXCWTGJAXAJIZKZXCWTXJXCKZXBUFIZUBZWTXKXAMULUMZI
      ZBXNIZXMXKMJIZXIMXANHZXOXQXKUNUOAXIXCUPXKXROXAPHZXKXSBXBPHZXKXTBCPHZXJYAX
      CAYAXIEQQXCXTYALXJXBCBPUQURUSXKBRIZXARIZSBPHZUTZXSXTLXJYEXCAXIYEAOBPHZXIY
      ETZDAWRXGYFYGTZFXHXEYHXFXEYFXIYEXEYFXIUTYBYCYDXEYFYBXIBVAZVBXIXEYCYFXAVAV
      CXEYFYDXIXEYFYDXESOPHZYFYDVDXESRIORIYBYJYFKYDTXEVEXEVFYISOBVKVGVHVIVJVLVM
      QUKVNVIQBXAVOVPUSXROOVQUEZXANHZXKXSMYKXANVRVSXJYLXSLZXCXIYMAXIXSYLOJIZXIX
      SYLLXIWCOXAVTWAWBURQWDUSMXAWEWFXJXPXCAXPXIAXQXEMBNHZUTZXPAYFYPDAWRXGYFYPT
      ZFXHXEYQXFXEYFYPXEYFKZXQXEYOXQYRUNUOXEYFWGYRYKBNHZYOXEYFYSYNXEYFYSLXEWCOB
      VTWAWHMYKBNVRVSWIVLWNQUKVNMBWEWIQQXABWJWKXCXMWTLXJXCXLWSXBCUFWLWMURWOWNWP
      WQVN $.
  $}

  $( A prime number is either 2 or odd.  (Contributed by AV, 19-Jun-2021.) $)
  prm2orodd $p |- ( P e. Prime -> ( P = 2 \/ -. 2 || P ) ) $=
    ( cprime wcel c2 wceq cdvds wbr wn c1 wo cn wb dvdsprime mpan2 eqcom biimpi
    2nn wne wi 1ne2 necom eqneqall com12 sylbi ax-mp jaoi syl6bi con3d orrd ) A
    BCZADEZDAFGZHUJULUKUJULDAEZDIEZJZUKUJDKCULUOLQADMNUMUKUNUMUKDAOPIDRZUNUKSZT
    UPDIRZUQIDUAUNURUKUKDIUBUCUDUEUFUGUHUI $.

  $( 2 is a prime number.  (Contributed by Paul Chapman, 22-Jun-2011.)  (Proof
     shortened by Fan Zheng, 16-Jun-2016.) $)
  2prm $p |- 2 e. Prime $=
    ( vz c2 cprime wcel cuz cfv cv cdvds wbr wn c1 cmin co cfz wral cz mpbir2an
    clt 2z c0 1lt2 eluz2b1 ral0 cin wceq fzssuz df-ss mpbi uzdisj eqtr3i raleqi
    wss mpbir isprm3 ) BCDBBEFZDZAGBHIJZABBKLMZNMZOZUPBPDKBRISUABUBQUTUQATOUQAU
    CUQAUSTUSUOUDZUSTUSUOULVAUSUEBURUFUSUOUGUHBBUIUJUKUMABUNQ $.

  $( 3 is a prime number.  (Contributed by Paul Chapman, 22-Jun-2011.) $)
  3prm $p |- 3 e. Prime $=
    ( vz c3 cprime wcel c2 cuz cfv cv cdvds wbr wn c1 cmin co cfz wral mpbir2an
    cz clt 2z 3z 1lt3 eluz2b1 wceq elfz1eq caddc iddvds cn wi 2nn ndvdsp1 mp3an
    1lt2 mp2b df-3 breq2i mtbir breq1 mtbiri 3m1e2 oveq2i eleq2s rgen isprm3
    syl ) BCDBEFGDZAHZBIJZKZAEBLMNZONZPVFBRDLBSJUAUBBUCQVIAVKVIVGEEONZVKVGVLDVG
    EUDZVIVGEUEVMVHEBIJZVNEELUFNZIJZERDZEEIJZVPKZTEUGVQEUHDLESJVRVSUITUJUMEEUKU
    LUNBVOEIUOUPUQVGEBIURUSVEVJEEOUTVAVBVCABVDQ $.

  $( 4 is not a prime number.  (Contributed by Paul Chapman, 22-Jun-2011.)
     (Proof shortened by Mario Carneiro, 18-Feb-2014.) $)
  4nprm $p |- -. 4 e. Prime $=
    ( c2 c4 2nn 1lt2 2t2e4 nprmi ) AABCCDDEF $.

  ${
    $d P x $.
    $( A prime number is an integer greater than or equal to 2.  (Contributed
       by Paul Chapman, 17-Nov-2012.) $)
    prmuz2 $p |- ( P e. Prime -> P e. ( ZZ>= ` 2 ) ) $=
      ( vx cprime wcel c2 cuz cfv cv cdvds wbr wceq wi wral isprm4 simplbi ) AC
      DAEFGZDBHZAIJQAKLBPMBANO $.
  $}

  $( A prime number is an integer greater than 1.  (Contributed by Alexander
     van der Vekens, 17-May-2018.) $)
  prmgt1 $p |- ( P e. Prime -> 1 < P ) $=
    ( cprime wcel c2 cuz cfv c1 clt wbr prmuz2 cz cle w3a eluz2 caddc wceq df-2
    co a1i breq1d wb 1z zltp1le mpan biimprd sylbid imp 3adant1 sylbi syl ) ABC
    ADEFCZGAHIZAJUKDKCZAKCZDALIZMULDANUNUOULUMUNUOULUNUOGGORZALIZULUNDUPALDUPPU
    NQSTUNULUQGKCUNULUQUAUBGAUCUDUEUFUGUHUIUJ $.

  $( Subtracting 2 from a prime number results in a nonnegative integer.
     (Contributed by Alexander van der Vekens, 30-Aug-2018.) $)
  prmm2nn0 $p |- ( P e. Prime -> ( P - 2 ) e. NN0 ) $=
    ( cprime wcel c2 cuz cfv cmin co cn0 prmuz2 uznn0sub syl ) ABCADEFCADGHICAJ
    DAKL $.

  $( An odd prime is greater than 2.  (Contributed by AV, 20-Aug-2021.) $)
  oddprmgt2 $p |- ( P e. ( Prime \ { 2 } ) -> 2 < P ) $=
    ( cprime c2 csn cdif wne wa clt wbr eldifsn cuz cfv wi prmuz2 cz cle cr zre
    wcel sylbi w3a eluz2 wb ltlen syl2an biimprd exp4b 3imp syl imp ) ABCDESABS
    ZACFZGCAHIZABCJUKULUMUKACKLSZULUMMZANUNCOSZAOSZCAPIZUAUOCAUBUPUQURUOUPUQURU
    LUMUPUQGUMURULGZUPCQSAQSUMUSUCUQCRARCAUDUEUFUGUHTUIUJT $.

  $( An odd prime is greater than or equal to 3.  (Contributed by Alexander van
     der Vekens, 7-Oct-2018.)  (Revised by AV, 20-Aug-2021.) $)
  oddprmge3 $p |- ( P e. ( Prime \ { 2 } ) -> P e. ( ZZ>= ` 3 ) ) $=
    ( cprime c2 csn cdif wcel c3 cz cle wbr w3a cuz cfv clt eldifi oddprmgt2 wa
    3z a1i prmz adantr c1 caddc co df-3 wb zltp1le sylancr biimpa syl5eqbr 3jca
    2z syl2anc eluz2 sylibr ) ABCDZEFZGHFZAHFZGAIJZKZAGLMFUQABFZCANJZVAABUPOAPV
    BVCQZURUSUTURVDRSVBUSVCATZUAVDGCUBUCUDZAIUEVBVCVFAIJZVBCHFUSVCVGUFULVECAUGU
    HUIUJUKUMGAUNUO $.

  $( Obsolete version of ~ oddprmge3 as of 20-Aug-2021.  (Contributed by
     Alexander van der Vekens, 7-Oct-2018.)  (Proof shortened by AV,
     20-Aug-2021.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  prmn2uzge3OLD $p |- ( ( P e. Prime /\ P =/= 2 ) -> P e. ( ZZ>= ` 3 ) ) $=
    ( cprime wcel c2 wne wa csn cdif c3 cuz cfv eldifsn oddprmge3 sylbir ) ABCA
    DEFABDGHCAIJKCABDLAMN $.

  $( A square is never prime.  (Contributed by Mario Carneiro, 20-Jun-2015.) $)
  sqnprm $p |- ( A e. ZZ -> -. ( A ^ 2 ) e. Prime ) $=
    ( cz wcel c2 cexp co cprime cfv wa adantr syl recnd clt wbr eluz2b1 cc0 cle
    cr c1 syl2anc cabs cmul zre absresq abscld sqvald eqtr3d simpr eqeltrrd cuz
    wceq cn0 nn0abscl nn0zd sq1 prmuz2 adantl simprbi breqtrrd syl5eqbr absge0d
    wn wb 1re 0le1 lt2sq mpanl12 mpbird sylanbrc nprm pm2.65da ) ABCZADEFZGCZAU
    AHZVOUBFZGCZVLVNIZVMVPGVRVODEFZVMVPVRARCZVSVMUKVLVTVNAUCJZAUDKZVRVOVRVOVRAV
    RAWALZUEZLUFUGVLVNUHUIVRVODUJHZCZWFVQVBVRVOBCSVOMNZWFVRVOVLVOULCVNAUMJUNVRW
    GSDEFZVSMNZVRWHSVSMUOVRSVMVSMVRVMWECZSVMMNZVNWJVLVMUPUQWJVMBCWKVMOURKWBUSUT
    VRVORCZPVOQNZWGWIVCZWDVRAWCVASRCPSQNWLWMIWNVDVESVOVFVGTVHVOOVIZWOVOVOVJTVK
    $.

  ${
    $d N z $.  $d P z $.
    $( An integer greater than or equal to 2 divides a prime number iff it is
       equal to it.  (Contributed by Paul Chapman, 26-Oct-2012.) $)
    dvdsprm $p |- ( ( N e. ( ZZ>= ` 2 ) /\ P e. Prime ) ->
                    ( N || P <-> N = P ) ) $=
      ( vz c2 cuz cfv wcel cprime wa cdvds wceq wi cv wral isprm4 simprbi breq1
      wbr eqeq1 imbi12d rspcv mpan9 ancoms cz iddvds breq2 syl5ibcom syl adantr
      eluzelz impbid ) BDEFZGZAHGZIBAJRZBAKZUNUMUOUPLZUNCMZAJRZURAKZLZCULNZUMUQ
      UNAULGVBCAOPVAUQCBULURBKUSUOUTUPURBAJQURBASTUAUBUCUMUPUOLZUNUMBUDGZVCDBUJ
      VDBBJRUPUOBUEBABJUFUGUHUIUK $.
  $}

  ${
    $d p x y z N $.
    $( Every integer greater than or equal to 2 has a prime factor.
       (Contributed by Paul Chapman, 26-Oct-2012.)  (Proof shortened by Mario
       Carneiro, 20-Jun-2015.) $)
    exprmfct $p |- ( N e. ( ZZ>= ` 2 ) -> E. p e. Prime p || N ) $=
      ( vx cn wcel c2 cv cdvds wbr cprime wrex wi c1 wceq eleq1 rexbidv imbi12d
      breq2 cz wa vy vz cuz cfv eluz2nn cmul co imbi1d cc0 cmin 1m1e0 syl5eqelr
      uz2m1nn 0nnn pm2.21i syl prmz iddvds breq1 rspcev mpdan a1d simpl eluzelz
      ad2antrr ad2antlr dvdsmul1 syl2anc adantl zmulcld dvdstr syl3anc reximdva
      mpan2d embantd a1dd adantrd prmind mpcom ) ADEAFUCUDZEZBGZAHIZBJKZAUECGZV
      TEZWBWEHIZBJKZLMVTEZWHLUAGZVTEZWBWJHIZBJKZLZUBGZVTEZWBWOHIZBJKZLZWJWOUFUG
      ZVTEZWBWTHIZBJKZLZWAWDLCUAUBAWEMNWFWIWHWEMVTOUHWEWJNZWFWKWHWMWEWJVTOXEWGW
      LBJWEWJWBHRPQWEWONZWFWPWHWRWEWOVTOXFWGWQBJWEWOWBHRPQWEWTNZWFXAWHXCWEWTVTO
      XGWGXBBJWEWTWBHRPQWEANZWFWAWHWDWEAVTOXHWGWCBJWEAWBHRPQWIUIDEZWHWIUIMMUJUG
      DUKMUMULXIWHUNUOUPWEJEZWHWFXJWEWEHIZWHXJWESEXKWEUQWEURUPWGXKBWEJWBWEWEHUS
      UTVAVBWKWPTZWNXDWSXLWNXCXAXLWKWMXCWKWPVCXLWLXBBJXLWBJEZTZWLWJWTHIZXBXNWJS
      EZWOSEZXOWKXPWPXMFWJVDVEZWPXQWKXMFWOVDVFZWJWOVGVHXNWBSEZXPWTSEWLXOTXBLXMX
      TXLWBUQVIXRXNWJWOXRXSVJWBWJWTVKVLVNVMVOVPVQVRVS $.
  $}

  ${
    $d I p $.  $d N p $.
    $( Each integer greater than 1 and less then or equal to a fixed number is
       divisible by a prime less then or equal to this fixed number.
       (Contributed by AV, 15-Aug-2020.) $)
    prmdvdsfz $p |- ( ( N e. NN /\ I e. ( 2 ... N ) )
                       -> E. p e. Prime ( p <_ N /\ p || I ) ) $=
      ( cn wcel c2 cfz co wa cv wbr cprime wrex cle adantl syl wi ad2antlr zred
      cr cuz cfv elfzuz exprmfct cz prmz eluz2nn dvdsle syl2anr elfzle2 elfzelz
      cdvds nnre ad2antrr letr syl3anc mpan2d syld ancrd reximdva mpd ) BDEZAFB
      GHEZIZCJZAULKZCLMZVEBNKZVFIZCLMVDAFUAUBEZVGVCVJVBAFBUCZOACUDPVDVFVICLVDVE
      LEZIZVFVHVMVFVEANKZVHVLVEUEEADEZVFVNQVDVEUFZVCVOVBVCVJVOVKAUGPOVEAUHUIVMV
      NABNKZVHVCVQVBVLAFBUJRVMVETEZATEZBTEZVNVQIVHQVLVRVDVLVEVPSOVCVSVBVLVCAAFB
      UKSRVBVTVCVLBUMUNVEABUOUPUQURUSUTVA $.
  $}

  $( No prime number divides 1.  (Contributed by Paul Chapman, 17-Nov-2012.)
     (Proof shortened by Mario Carneiro, 2-Jul-2015.) $)
  nprmdvds1 $p |- ( P e. Prime -> -. P || 1 ) $=
    ( cprime wcel c1 cdvds wbr 1nprm wceq cn0 wb prmnn nnnn0d dvds1 syl biimpcd
    eleq1 sylbid mtoi ) ABCZADEFZDBCZGSTADHZUASAICTUBJSAAKLAMNUBSUAADBPOQR $.

  ${
    $d x z P $.
    $( One need only check prime divisors of ` P ` up to ` sqrt P ` in order to
       ensure primality.  (Contributed by Mario Carneiro, 18-Feb-2014.) $)
    isprm5 $p |- ( P e. Prime <-> ( P e. ( ZZ>= ` 2 ) /\
                    A. z e. Prime ( ( z ^ 2 ) <_ P -> -. z || P ) ) ) $=
      ( vx cprime wcel c2 cdvds wbr wceq wi wa co cle wn cmul clt c1 cc0 mpbid
      cn cuz cfv cv wral cexp isprm4 prmuz2 eluz2b2 simprbi cr eluzelre eluz2nn
      wb nngt0d ltmulgt11 syl3anc ltnled oveq12 anidms breq1d notbid syl5ibrcom
      a1i remulcld imim2d con2 syl6 imim12d ralimdv2 annim breq1 anbi12d rspcev
      wrex weq ancom2s expr ad2ant2lr cdiv simprl wne eluzelz ad2antlr ad2antrr
      cz nnne0d dvdsval2 recnd mulid2d dvdsle imp syl21anc simprr neqned necomd
      ltlend mpbir2and eqbrtrd 1red zred nnre jca syl ltmuldiv eluz2b1 sylanbrc
      nngt0 crp nnmulcld nnrp rpdivcl syl2an syl2anc lemul1d divmuldivd divassd
      nncnd eqtrd divcan2d eqcomd bitr4d biimpd dvds0lem syl31anc jctird syl6an
      breq12d letrid mpjaod syl5bir rexlimdva prmz ad2antrl ad3antlr eluzge2nn0
      ex ad3antrrr nn0ge0d nnnn0 rexnal le2msq syl22anc simplrl letrd dvdstr jc
      simplrr mp2and exprmfct reximddv 3imtr3g impcon4bid sqvald imbi1d ralbiia
      syld prmnn syl6bbr pm5.32i bitri ) BDEBFUAUBZEZAUCZBGHZUVCBIZJZAUVAUDZKUV
      BUVCFUELZBMHZUVDNZJZADUDZKABUFUVBUVGUVLUVBUVGUVCUVCOLZBMHZUVJJZADUDZUVLUV
      BUVGUVPUVBUVFUVOAUVADUVBUVCDEZUVCUVAEZUVFUVOUVQUVRJUVBUVCUGZVCUVBUVFUVDUV
      NNZJUVOUVBUVEUVTUVDUVBUVTUVEBBOLZBMHZNZUVBBUWAPHZUWCUVBQBPHZUWDUVBBTEZUWE
      BUHUIUVBBUJEZUWGRBPHUWEUWDUMFBUKZUWHUVBBBULZUNBBUOUPSUVBBUWAUWHUVBBBUWHUW
      HVDUQSUVEUVNUWBUVEUVMUWABMUVEUVMUWAIUVCBUVCBOURUSUTVAVBVEUVDUVNVFVGVHVIUV
      BUVFNZAUVAVNZUVONZADVNZUVGNUVPNUVBUWKCUCZUWNOLZBMHZUWNBGHZKZCUVAVNZUWMUVB
      UWJUWSAUVAUWJUVDUVENZKZUVBUVRKZUWSUVDUVEVJUXBUXAUWSUXBUXAKZUVNUWSBUVMMHZU
      VRUVDUVNUWSJUVBUWTUVRUVDUVNUWSUVRUVNUVDUWSUWRUVNUVDKCUVCUVACAVOZUWPUVNUWQ
      UVDUXEUWOUVMBMUXEUWOUVMIUWNUVCUWNUVCOURUSUTUWNUVCBGVKVLVMVPVQVRUXCBUVCVSL
      ZUVAEZUXDUXFUXFOLZBMHZUXFBGHZKZUWSUXCUXFWEEZQUXFPHZUXGUXCUVDUXLUXBUVDUWTV
      TZUXCUVCWEEZUVCRWABWEEZUVDUXLUMUVRUXOUVBUXAFUVCWBWCZUXCUVCUVRUVCTEZUVBUXA
      UVCULWCZWFZUVBUXPUVRUXAFBWBZWDZUVCBWGUPSZUXCQUVCOLZBPHZUXMUXCUYDUVCBPUXCU
      VCUXCUVCUVRUVCUJEZUVBUXAFUVCUKWCZWHZWIUXCUVCBPHUVCBMHZBUVCWAUXCUXOUWFUVDU
      YIUXQUVBUWFUVRUXAUWIWDZUXNUXOUWFKUVDUYIUVCBWJWKWLUXCUVCBUXCUVCBUXBUVDUWTW
      MWNWOUXCUVCBUYGUVBUWGUVRUXAUWHWDZWPWQWRUXCQUJEUWGUYFRUVCPHZKZUYEUXMUMUXCW
      SUXCBUYBWTUXCUXRUYMUXSUXRUYFUYLUVCXAUVCXGXBXCQBUVCXDUPSUXFXEXFUXCUXDUXIUX
      JUXCUXDUXIUXCUXDBBUVMVSLZOLZUVMUYNOLZMHUXIUXCBUVMUYNUYKUXCUVCUVCUYGUYGVDZ
      UXCUWFUVMTEZUYNXHEZUYJUXCUVCUVCUXSUXSXIZUWFBXHEUVMXHEUYSUYRBXJUVMXJBUVMXK
      XLXMXNUXCUXHUYOBUYPMUXCUXHUWAUVMVSLUYOUXCBUVCBUVCUXCBUYKWHZUYHVUAUYHUXTUX
      TXOUXCBBUVMVUAVUAUXCUVMUYTXQZUXCUVMUYTWFZXPXRUXCUYPBUXCBUVMVUAVUBVUCXSXTY
      GYAYBUXCUXOUXLUXPUVCUXFOLBIUXJUXQUYCUYBUXCBUVCVUAUYHUXTXSUVCUXFBYCYDYEUWR
      UXKCUXFUVAUWNUXFIZUWPUXIUWQUXJVUDUWOUXHBMVUDUWOUXHIUWNUXFUWNUXFOURUSUTUWN
      UXFBGVKVLVMYFUXCUVMBUYQUYKYHYIYPYJYKUVBUWRUWMCUVAUVBUWNUVAEZKZUWRUWMVUFUW
      RKZUVCUWNGHZUWLADVUGUVQVUHKZKZUVNUVDVUJUVMUWOBVUJUVCUVCVUJUVCUVQUXOVUGVUH
      UVCYLYMZWTZVULVDVUJUWNUWNVUJUWNVUEUWNWEEZUVBUWRVUIFUWNWBYNZWTZVUOVDVUJBUV
      BUXPVUEUWRVUIUYAYQZWTVUJUVCUWNMHZUVMUWOMHZVUJUXOUWNTEZVUHVUQVUKVUEVUSUVBU
      WRVUIUWNULYNZVUGUVQVUHWMZUXOVUSKVUHVUQUVCUWNWJWKWLVUJUYFRUVCMHZUWNUJERUWN
      MHZVUQVURUMVULUVQVVBVUGVUHUVQUVRVVBUVSUVRUVCUVCYOYRXCYMVUOVUJVUSVVCVUTVUS
      UWNUWNYSYRXCUVCUWNUUAUUBSVUFUWPUWQVUIUUCUUDVUJVUHUWQUVDVVAVUFUWPUWQVUIUUG
      VUJUXOVUMUXPVUHUWQKUVDJVUKVUNVUPUVCUWNBUUEUPUUHUUFVUEVUHADVNUVBUWRUWNAUUI
      WCUUJYPYKUUPUVFAUVAYTUVOADYTUUKUULUVKUVOADUVQUVIUVNUVJUVQUVHUVMBMUVQUVCUV
      QUVCUVCUUQXQUUMUTUUNUUOUURUUSUUT $.
  $}

  ${
    $d z P $.
    $( One need only check prime divisors of ` P ` up to ` sqrt P ` in order to
       ensure primality.  This version of ~ isprm5 combines the primality and
       bound on ` z ` into a finite interval of prime numbers.  (Contributed by
       Steve Rodriguez, 20-Jan-2020.) $)
    isprm7 $p |- ( P e. Prime <-> ( P e. ( ZZ>= ` 2 ) /\
        A. z e. ( ( 2 ... ( |_ ` ( sqrt ` P ) ) ) i^i Prime ) -. z || P ) ) $=
      ( cprime wcel c2 cfv co cle wbr wi wral wa cr cc0 wb a1i jca adantr syl
      cz cuz cv cexp cdvds wn csqrt cfl cfz cin isprm5 prmz zred 0red 1red 0lt1
      clt prmgt1 lttrd ltled eluzelre 2re 0le2 eluzle letrd resqcl sqge0 sqrtle
      c1 sylan sqrtsq breq1d bitrd syl2anr imbi1d ralbidva pm5.32i impexp flcld
      resqrtcld anim12i prmuz2 ad2antlr syl2an biimpa 2z elfz4 mp3anl1 syl12anc
      flge anasss simprl elind elin elfzelz adantl reflcl elfzle2 anim1d syl5bi
      ex flle ancom syl6ib impbid syl5bbr ralbidv2 3bitri ) BCDBEUAFZDZAUBZEUCG
      ZBHIZXJBUDIUEZJZACKZLXIXJBUFFZHIZXMJZACKZLXIXMAEXPUGFZUHGZCUIZKZLABUJXIXO
      XSXIXNXRACXIXJCDZLZXLXQXMYDXJMDZNXJHIZLZBMDZNBHIZLZXLXQOXIYDYFYGYDXJXJUKZ
      ULZYDNXJYDUMZYMYDNVHXJYNYDUNYMNVHUPIYDUOPXJUQURUSQXIYIYJEBUTZXINEBXIUMEMD
      XIVAPYONEHIXIVBPEBVCVDZQYHYKLXLXKUFFZXPHIZXQYHXKMDZNXKHIZLZYKXLYROYFUUAYG
      YFYSYTXJVEXJVFQRXKBVGVIYHYRXQOYKYHYQXJXPHXJVJVKRVLVMVNVOVPXIXSYCXIXRXMACY
      BYDXRJYDXQLZXMJXIXJYBDZXMJYDXQXMVQXIUUBUUCXMXIUUBUUCXIUUBUUCXIUUBLYACXJXI
      YDXQXJYADZYEXQLXTTDZXJTDZLZEXJHIZXJXTHIZUUDYEUUGXQXIUUEYDUUFXIXPXIBYOYPVS
      ZVRYLVTRYDUUHXIXQYDXJXHDUUHXJWAEXJVCSWBYEXQUUIXIXPMDZUUFXQUUIOYDUUJYLXPXJ
      WIWCWDETDUUEUUFUUHUUILUUDWEXJEXTWFWGWHWJXIYDXQWKWLWTXIUUCXQYDLZUUBUUCUUDY
      DLXIUULXJYACWMXIUUDXQYDXIUUDXQXIUUDLXJXTXPUUDYFXIUUDXJXJEXTWNULWOXIXTMDZU
      UDXIUUKUUMUUJXPWPSRXIUUKUUDUUJRUUDUUIXIXJEXTWQWOXIXTXPHIZUUDXIUUKUUNUUJXP
      XASRVDWTWRWSXQYDXBXCXDVNXEXFVPXG $.
  $}

  ${
    $d N x y $.  $d N y z $.  $d S x y $.
    maxprmfct.1 $e |- S = { z e. Prime | z || N } $.
    $( The set of prime factors of an integer greater than or equal to 2
       satisfies the conditions to have a supremum, and that supremum is a
       member of the set.  (Contributed by Paul Chapman, 17-Nov-2012.) $)
    maxprmfct $p |- ( N e. ( ZZ>= ` 2 ) ->
         ( ( S C_ ZZ /\ S =/= (/) /\ E. x e. ZZ A. y e. S y <_ x ) /\
         sup ( S , RR , < ) e. S ) ) $=
      ( c2 cuz cfv wcel cz cv cle wbr wral wrex cprime cdvds wex wa wss wne w3a
      c0 cr clt csup crab ssrab2 eqsstri prmz ssriv sstri exprmfct breq1 elrab2
      a1i exbii n0 df-rex 3bitr4ri sylib eluzelz cn eluz2nn anim1i sylbi dvdsle
      wi expcom impd syl5 ralrimiv syl wceq breq2 ralbidv syl2anc 3jca suprzcl2
      rspcev jccir ) EGHIJZDKUAZDUDUBZBLZALZMNZBDOZAKPZUCDUEUFUGDJWCWDWEWJWDWCD
      QKDCLZERNZCQUHQFWLCQUIUJBQKWFUKZULUMUQWCWFERNZBQPZWEEBUNWFDJZBSWFQJZWNTZB
      SWEWOWPWRBWLWNCWFQDWKWFERUOFUPZURBDUSWNBQUTVAVBWCEKJWFEMNZBDOZWJGEVCWCEVD
      JZXAEVEXBWTBDWPWFKJZWNTZXBWTWPWRXDWSWQXCWNWMVFVGXBXCWNWTXCXBWNWTVIWFEVHVJ
      VKVLVMVNWIXAAEKWGEVOWHWTBDWGEWFMVPVQWAVRVSABDVTWB $.
  $}

  $( Either ` A / ( A gcd B ) ` is odd or ` B / ( A gcd B ) ` is odd.
     (Contributed by Scott Fenton, 19-Apr-2014.) $)
  divgcdodd $p |- ( ( A e. NN /\ B e. NN ) ->
    ( -. 2 || ( A / ( A gcd B ) ) \/ -. 2 || ( B / ( A gcd B ) ) ) ) $=
    ( cn wcel wa c2 cgcd co cdvds wbr wn wi c1 cz wb nnz dvdsval2 syl3anc mpbid
    cdiv wo n2dvds1 2z gcddvds syl2an simpld cc0 wne gcdnncl nnzd nnne0d adantr
    simprd adantl dvdsgcdb wceq gcddiv nncnd dividd eqtr3d breq2d biimpd sylbid
    mp3an2i syl31anc expdimp mtoi ex imor sylib ) ACDZBCDZEZFAABGHZTHZIJZFBVNTH
    ZIJZKZLVPKVSUAVMVPVSVMVPEVRFMIJZUBVMVPVRVTVMVPVREZFVOVQGHZIJZVTFNDVMVONDZVQ
    NDZWAWCOUCVMVNAIJZWDVMWFVNBIJZVKANDZBNDZWFWGEZVLAPZBPZABUDUEZUFVMVNNDZVNUGU
    HZWHWFWDOVMVNABUIZUJZVMVNWPUKZVKWHVLWKULZVNAQRSVMWGWEVMWFWGWMUMVMWNWOWIWGWE
    OWQWRVLWIVKWLUNZVNBQRSFVOVQUOVDVMWCVTVMWBMFIVMVNVNTHZWBMVMWHWIVNCDWJXAWBUPW
    SWTWPWMABVNUQVEVMVNVMVNWPURWRUSUTVAVBVCVFVGVHVPVSVIVJ $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Coprimality and Euclid's lemma (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
This section is about coprimality with respect to primes, and a special version
of Euclid's lemma for primes is provided, see ~ euclemma .
$)

  ${
    $d N z $.  $d P z $.
    $( A prime number either divides an integer or is coprime to it, but not
       both.  Theorem 1.8 in [ApostolNT] p. 17.  (Contributed by Paul Chapman,
       22-Jun-2011.) $)
    coprm $p |- ( ( P e. Prime /\ N e. ZZ ) ->
                  ( -. P || N <-> ( P gcd N ) = 1 ) ) $=
      ( vz wcel cz wa cdvds wbr wn c1 sylan breq1 syl5ibcom wo cn cc0 adantr wi
      wceq cr cprime cgcd co prmz gcddvds simprd con3d 0nnn prmnn mtoi intnanrd
      eleq1 gcdn0cl ex mpd simpld cv wral c2 cuz isprm2 simprbi orbi12d imbi12d
      cfv eqeq1 rspcv syl5com mp2d biorf orcom syl6bb syl5ibrcom cle clt iddvds
      syld wne syl w3a dvdslegcd 3anidm12 mpand prmgt1 zred nnred ltletr mp3an1
      1re syl2anc ltne mpan a1i 3syld necon2bd impbid ) AUADZBEDZFZABGHZIZABUBU
      CZJSZWSXAXBASZIZXCWSXDWTWSXBBGHZXDWTWSXBAGHZXFWQAEDZWRXGXFFAUDZABUEKZUFXB
      ABGLMUGWSXCXEXCXDNZWSXBODZXGXKWSAPSZBPSZFIZXLWQXOWRWQXMXNWQXMPODZUHWQAODX
      MXPAUIAPOULMUJUKQZWQXHWRXOXLRXIXHWRFXOXLABUMUNKUOZWSXGXFXJUPWQXLXGXKRZRWR
      WQCUQZAGHZXTJSZXTASZNZRZCOURZXLXSWQAUSUTVEDYFCAVAVBYEXSCXBOXTXBSZYAXGYDXK
      XTXBAGLYGYBXCYCXDXTXBJVFXTXBAVFVCVDVGVHQVIXEXCXDXCNXKXDXCVJXDXCVKVLVMVQWS
      WTXBJWSWTAXBVNHZJXBVOHZXBJVRZWSAAGHZWTYHWQYKWRWQXHYKXIAVPVSQWSXOYKWTFYHRZ
      XQWQXHWRXOYLRZXIXHWRYMXHXHWRVTXOYLAABWAUNWBKUOWCWSJAVOHZYHYIWQYNWRAWDQWSA
      TDZXBTDZYNYHFYIRZWQYOWRWQAXIWEQWSXBXRWFJTDZYOYPYQWIJAXBWGWHWJWCYIYJRWSYRY
      IYJWIJXBWKWLWMWNWOWP $.
  $}

  $( Unequal prime numbers are relatively prime.  (Contributed by Mario
     Carneiro, 23-Feb-2014.) $)
  prmrp $p |- ( ( P e. Prime /\ Q e. Prime ) ->
                ( ( P gcd Q ) = 1 <-> P =/= Q ) ) $=
    ( cprime wcel wa cdvds wbr wn cgcd co c1 wceq wne cz wb coprm sylan2 c2 cuz
    prmz cfv prmuz2 dvdsprm sylan necon3bbid bitr3d ) ACDZBCDZEZABFGZHZABIJKLZA
    BMUHUGBNDUKULOBTABPQUIUJABUGARSUADUHUJABLOAUBBAUCUDUEUF $.


  $( Euclid's lemma.  A prime number divides the product of two integers iff it
     divides at least one of them.  Theorem 1.9 in [ApostolNT] p. 17.
     (Contributed by Paul Chapman, 17-Nov-2012.) $)
  euclemma $p |- ( ( P e. Prime /\ M e. ZZ /\ N e. ZZ ) ->
                        ( P || ( M x. N ) <-> ( P || M \/ P || N ) ) ) $=
    ( cprime wcel cz w3a cmul co cdvds wbr wo wn wi wa cgcd c1 wceq wb syl3an1
    coprm 3adant3 anbi2d prmz coprmdvds sylbid df-or syl6ibr ordvdsmul impbid
    expd ) ADEZBFEZCFEZGZABCHIJKZABJKZACJKZLZUOUPUQMZURNUSUOUPUTURUOUPUTOUPABPI
    QRZOZURUOUTVAUPULUMUTVASUNABUAUBUCULAFEZUMUNVBURNAUDZABCUETUFUKUQURUGUHULVC
    UMUNUSUPNVDABCUITUJ $.

  ${
    $d x y z P $.
    $( A number is prime iff it satisfies Euclid's lemma ~ euclemma .
       (Contributed by Mario Carneiro, 6-Sep-2015.) $)
    isprm6 $p |- ( P e. Prime <-> ( P e. ( ZZ>= ` 2 ) /\ A. x e. ZZ
          A. y e. ZZ ( P || ( x x. y ) -> ( P || x \/ P || y ) ) ) ) $=
      ( vz wcel cmul co cdvds wbr wo wi cz wa wb c1 wceq cn adantr syl ad2antrl
      cprime c2 cuz cfv wral prmuz2 euclemma 3expb biimpd ralrimivva simpl cdiv
      cv jca eluz2nn nnzd iddvds cc nncn cc0 wne nnne0 divcan1d breqtrrd simprr
      simprl nndivdvds syl2anc mpbid nnz oveq1 breq2d breq2 orbi1d oveq2 orbi2d
      imbi12d rspc2va sylan mpd cle dvdsle div1d breq1d sylibrd cr clt rpregt0d
      nnrp crp 1rp rpregt0 mp1i lediv2 syl3anc nnle1eq1 cn0 nnnn0 simplrr simpr
      sylibd dvdseq syl22anc orim12d imp syldan an32s ralrimiva isprm2 sylanbrc
      ex expr impbii ) CUAEZCUBUCUDEZCAUMZBUMZFGZHIZCXPHIZCXQHIZJZKZBLUEALUEZMZ
      XNXOYDCUFXNYCABLLXNXPLEZXQLEZMMXSYBXNYFYGXSYBNCXPXQUGUHUIUJUNYEXODUMZCHIZ
      YHOPZYHCPZJZKZDQUEXNXOYDUKYEYMDQYEYHQEZYIYLXOYNYIMZYDYLXOYOMZYDCCYHULGZHI
      ZCYHHIZJZYLYPYDMCYQYHFGZHIZYTYPUUBYDYPCCUUAHYPCLEZCCHIYPCXOCQEZYOCUORZUPZ
      CUQSYPCYHYPUUDCUREUUECUSSZYNYHUREXOYIYHUSTYNYHUTVAXOYIYHVBTVCVDRYPYQLEZYH
      LEZMYDUUBYTKZYPUUHUUIYPYQYPYIYQQEZXOYNYIVEYPUUDYNYIUUKNUUEXOYNYIVFCYHVGVH
      VIZUPYNUUIXOYIYHVJTUNYCUUJCYQXQFGZHIZYRYAJZKABYQYHLLXPYQPZXSUUNYBUUOUUPXR
      UUMCHXPYQXQFVKVLUUPXTYRYAXPYQCHVMVNVQXQYHPZUUNUUBUUOYTUUQUUMUUACHXQYHYQFV
      OVLUUQYAYSYRXQYHCHVMVPVQVRVSVTYPYTYLYPYRYJYSYKYPYRYHOWAIZYJYPYRCOULGZYQWA
      IZUURYPYRCYQWAIZUUTYPUUCUUKYRUVAKUUFUULCYQWBVHYPUUSCYQWAYPCUUGWCWDWEYPYHW
      FEUTYHWGIMZOWFEUTOWGIMZCWFEUTCWGIMUURUUTNYNUVBXOYIYNYHYHWIWHTOWJEUVCYPWKO
      WLWMYPCYPUUDCWJEUUECWISWHYHOCWNWOWEYNUURYJNXOYIYHWPTXAYPYSYKYPYSMYHWQEZCW
      QEZYIYSYKYPUVDYSYNUVDXOYIYHWRTRYPUVEYSYPUUDUVEUUECWRSRXOYNYIYSWSYPYSWTYHC
      XBXCXKXDXEXFXGXLXHDCXIXJXM $.
  $}

  ${
    $d N m $.  $d P k m $.  $d A k m $.
    $( A prime divides a positive power of an integer iff it divides the
       integer.  (Contributed by Mario Carneiro, 24-Feb-2014.)  (Revised by
       Mario Carneiro, 17-Jul-2014.) $)
    prmdvdsexp $p |- ( ( P e. Prime /\ A e. ZZ /\ N e. NN ) ->
                       ( P || ( A ^ N ) <-> P || A ) ) $=
      ( vm vk wcel cz cn cexp co cdvds wb wi c1 wceq oveq2 breq2d bibi1d imbi2d
      wbr cprime wa cv caddc cc zcn adantl exp1d wo cmul cn0 nnnn0 expp1 syl2an
      simpll simpr zexpcl simplr euclemma syl3anc bitrd syl6bb bibi2d syl5ibcom
      orbi1 oridm expcom a2d nnind impcom 3impa ) BUAFZAGFZCHFZBACIJZKTZBAKTZLZ
      VNVLVMUBZVRVSBADUCZIJZKTZVQLZMVSBANIJZKTZVQLZMVSBAEUCZIJZKTZVQLZMVSBAWGNU
      DJZIJZKTZVQLZMVSVRMDECVTNOZWCWFVSWOWBWEVQWOWAWDBKVTNAIPQRSVTWGOZWCWJVSWPW
      BWIVQWPWAWHBKVTWGAIPQRSVTWKOZWCWNVSWQWBWMVQWQWAWLBKVTWKAIPQRSVTCOZWCVRVSW
      RWBVPVQWRWAVOBKVTCAIPQRSVSWDABKVSAVMAUEFZVLAUFUGZUHQWGHFZVSWJWNVSXAWJWNMV
      SXAUBZWMWIVQUIZLWJWNXBWMBWHAUJJZKTZXCXBWLXDBKVSWSWGUKFZWLXDOXAWTWGULZAWGU
      MUNQXBVLWHGFZVMXEXCLVLVMXAUOVSVMXFXHXAVLVMUPXGAWGUQUNVLVMXAURBWHAUSUTVAWJ
      XCVQWMWJXCVQVQUIVQWIVQVQVEVQVFVBVCVDVGVHVIVJVK $.
  $}

  $( A prime divides a positive power of another iff they are equal.
     (Contributed by Paul Chapman, 30-Nov-2012.)  (Revised by Mario Carneiro,
     24-Feb-2014.) $)
  prmdvdsexpb $p |- ( ( P e. Prime /\ Q e. Prime /\ N e. NN ) ->
                      ( P || ( Q ^ N ) <-> P = Q ) ) $=
    ( cprime wcel cn w3a cexp co cdvds wbr wceq cz wb prmdvdsexp syl3an2 c2 cuz
    prmz cfv prmuz2 dvdsprm sylan 3adant3 bitrd ) ADEZBDEZCFEZGABCHIJKZABJKZABL
    ZUGUFBMEUHUIUJNBSBACOPUFUGUJUKNZUHUFAQRTEUGULAUABAUBUCUDUE $.

  $( If a prime divides a nonnegative power of another, then they are equal.
     (Contributed by Mario Carneiro, 16-Jan-2015.) $)
  prmdvdsexpr $p |- ( ( P e. Prime /\ Q e. Prime /\ N e. NN0 ) ->
                      ( P || ( Q ^ N ) -> P = Q ) ) $=
    ( cprime wcel cn0 cexp co cdvds wbr wceq wi cn cc0 wo wa elnn0 w3a breq2d
    c1 prmdvdsexpb biimpd 3expia prmnn adantl nncnd exp0d pm2.21d adantr sylbid
    nprmdvds1 oveq2 imbi1d syl5ibrcom jaod syl5bi 3impia ) ADEZBDEZCFEZABCGHZIJ
    ZABKZLZUTCMEZCNKZOURUSPZVDCQVGVEVDVFURUSVEVDURUSVERVBVCABCUAUBUCVGVDVFABNGH
    ZIJZVCLVGVIATIJZVCVGVHTAIVGBVGBUSBMEURBUDUEUFUGSURVJVCLUSURVJVCAUKUHUIUJVFV
    BVIVCVFVAVHAICNBGULSUMUNUOUPUQ $.

  $( Two positive prime powers are equal iff the primes and the powers are
     equal.  (Contributed by Paul Chapman, 30-Nov-2012.) $)
  prmexpb $p |- ( ( ( P e. Prime /\ Q e. Prime ) /\ ( M e. NN /\ N e. NN ) ) ->
                  ( ( P ^ M ) = ( Q ^ N ) <-> ( P = Q /\ M = N ) ) ) $=
    ( cprime wcel wa cn cexp co wceq w3a cdvds wbr cz prmz adantr 3ad2ant1 nnzd
    wb simp2l iddvdsexp syl2anc breq2 3ad2ant3 simp1l simp1r simp2r prmdvdsexpb
    syl3anc bitrd mpbid zred c1 clt prmgt1 ad2antrr 3adant3 simp3 oveq1d eqtr4d
    expcand jca 3expia oveq12 impbid1 ) AEFZBEFZGZCHFZDHFZGZGACIJZBDIJZKZABKZCD
    KZGZVIVLVOVRVIVLVOLZVPVQVSAVMMNZVPVSAOFZVJVTVIVLWAVOVGWAVHAPQRZVIVJVKVOUAZA
    CUBUCVSVTAVNMNZVPVOVIVTWDTVLVMVNAMUDUEVSVGVHVKWDVPTVGVHVLVOUFVGVHVLVOUGVIVJ
    VKVOUHZABDUIUJUKULZVSACDVSAWBUMVSCWCSVSDWESVIVLUNAUONZVOVGWGVHVLAUPUQURVSVM
    VNADIJVIVLVOUSVSABDIWFUTVAVBVCVDABCDIVEVF $.

  ${
    $d P x k $.  $d N x $.
    $( The factorial of a number only contains primes less than the base.
       (Contributed by Mario Carneiro, 6-Mar-2014.) $)
    prmfac1 $p |- ( ( N e. NN0 /\ P e. Prime /\ P || ( ! ` N ) ) -> P <_ N ) $=
      ( wcel cfa cfv cdvds wbr cle wi c1 wceq fveq2 breq2d breq2 imbi12d imbi2d
      cc0 adantr cz cr vx vk cprime cv caddc co breq2i nprmdvds1 pm2.21d syl5bi
      cn0 fac0 wa wo cmul facp1 wb simpr cn faccl nnzd nn0p1nn euclemma syl3anc
      bitrd nn0re lep1d prmz adantl zred nnred letr mpan2d imim2d com23 syl2anc
      dvdsle a1dd jaod sylbid ex a2d nn0ind 3imp ) BUKCAUCCZABDEZFGZABHGZWEAUAU
      DZDEZFGZAWIHGZIZIWEAQDEZFGZAQHGZIZIWEAUBUDZDEZFGZAWRHGZIZIWEAWRJUEUFZDEZF
      GZAXCHGZIZIWEWGWHIZIUAUBBWIQKZWMWQWEXIWKWOWLWPXIWJWNAFWIQDLMWIQAHNOPWIWRK
      ZWMXBWEXJWKWTWLXAXJWJWSAFWIWRDLMWIWRAHNOPWIXCKZWMXGWEXKWKXEWLXFXKWJXDAFWI
      XCDLMWIXCAHNOPWIBKZWMXHWEXLWKWGWLWHXLWJWFAFWIBDLMWIBAHNOPWOAJFGZWEWPWNJAF
      ULUGWEXMWPAUHUIUJWRUKCZWEXBXGXNWEXBXGIXNWEUMZXEXBXFXOXEWTAXCFGZUNZXBXFIZX
      OXEAWSXCUOUFZFGZXQXOXDXSAFXNXDXSKWEWRUPRMXOWEWSSCXCSCXTXQUQXNWEURXOWSXNWS
      USCWEWRUTRVAXOXCXNXCUSCZWEWRVBRZVAAWSXCVCVDVEXOWTXRXPXOXBWTXFXOXAXFWTXOXA
      WRXCHGZXFXOWRXNWRTCZWEWRVFRZVGXOATCYDXCTCXAYCUMXFIXOAWEASCZXNAVHVIZVJYEXO
      XCYBVKAWRXCVLVDVMVNVOXOXPXFXBXOYFYAXPXFIYGYBAXCVQVPVRVSVTVOWAWBWCWD $.
  $}


  ${
    $d p A $.  $d p B $.  $d p N $.
    $( If two numbers ` A ` and ` B ` are relatively prime, then they are still
       relatively prime if raised to a power.  (Contributed by Mario Carneiro,
       24-Feb-2014.) $)
    rpexp $p |- ( ( A e. ZZ /\ B e. ZZ /\ N e. NN ) ->
                  ( ( ( A ^ N ) gcd B ) = 1 <-> ( A gcd B ) = 1 ) ) $=
      ( vp cz wcel cc0 wceq wa co cgcd c1 wb wi wn cdvds cprime syl2anc syl3anc
      wbr cn w3a cexp 0exp oveq1d eqeq1d oveq1 oveq12 sylan syl5ibrcom 3ad2ant3
      bibi12d c2 cuz cfv wne cv exprmfct cn0 simpl1 simpl3 nnnn0d zexpcl adantr
      wrex simpl2 gcddvds simpld prmz adantl simpr cc zcnd expeq0 anbi1d mtbird
      gcdn0cl syl21anc nnzd dvdstr mpan2d simpll1 prmdvdsexp sylibd simprd jcad
      dvdsgcd nprmdvds1 breq2 notbid necon2ad 3syld rexlimdva 3adantl3 baib syl
      eluz2b3 sylibrd syl5 iddvdsexp mp2and impbid 3bitr3d necon4bid ex pm2.61d
      ) AEFZBEFZCUAFZUBZAGHZBGHZIZACUCJZBKJZLHZABKJZLHZMZXIXGXMXSNXHXIXSXMGCUCJ
      ZGKJZLHZGGKJZLHZMXIYAYCLXIXTGGKCUDUEUFXMXPYBXRYDXMXOYALXKXNXTHXLXOYAHAGCU
      CUGXNXTBGKUHUIUFXMXQYCLAGBGKUHUFULUJUKXJXMOZXSXJYEIZXOLXQLYFXOUMUNUOZFZXQ
      YGFZXOLUPZXQLUPZYFYHYIYHDUQZXOPTZDQVEZYFYIXODURYFYNYKYIYFYMYKDQYFYLQFZIZY
      MYLAPTZYLBPTZIZYLXQPTZYKYPYMYQYRYPYMYLXNPTZYQYPYMXOXNPTZUUAYPUUBXOBPTZYPX
      NEFZXHUUBUUCIYFUUDYOYFXGCUSFUUDXGXHXIYEUTZYFCXGXHXIYEVAZVBACVCRZVDZYFXHYO
      XGXHXIYEVFZVDZXNBVGRZVHYPYLEFZXOEFZUUDYMUUBIUUANYOUULYFYLVIVJZYFUUMYOYFXO
      YFUUDXHXNGHZXLIZOXOUAFZUUGUUIYFUUPXMXJYEVKYFUUOXKXLYFAVLFXIUUOXKMYFAUUEVM
      UUFACVNRVOVPXNBVQVRZVSVDZUUHYLXOXNVTSWAYPYOXGXIUUAYQMYFYOVKXGXHXIYEYOWBZY
      FXIYOUUFVDZAYLCWCSWDYPYMUUCYRYPUUBUUCUUKWEYPUULUUMXHYMUUCIYRNUUNUUSUUJYLX
      OBVTSWAWFYPUULXGXHYSYTNUUNUUTUUJYLABWGSYOYTYKNYFYOYTXQLYOYTOXRYLLPTZOZYLW
      HZXRYTUVBXQLYLPWIWJUJWKVJWLWMYFXQUAFZYIYKMXGXHYEUVEXIABVQWNZYIUVEYKXQWQWO
      WPZWRWSYIYTDQVEZYFYHXQDURYFUVHYJYHYFYTYJDQYPYTUUAYRIZYMYJYPYTUUAYRYPYTXQX
      NPTZUUAYPXQAPTZAXNPTZUVJYPUVKXQBPTZYPXGXHUVKUVMIUUTUUJABVGRZVHYPXGXIUVLUU
      TUVAACWTRYPXQEFZXGUUDUVKUVLIUVJNYFUVOYOYFXQUVFVSVDZUUTUUHXQAXNVTSXAYPUULU
      VOUUDYTUVJIUUANUUNUVPUUHYLXQXNVTSWAYPYTUVMYRYPUVKUVMUVNWEYPUULUVOXHYTUVMI
      YRNUUNUVPUUJYLXQBVTSWAWFYPUULUUDXHUVIYMNUUNUUHUUJYLXNBWGSYOYMYJNYFYOYMXOL
      YOYMOXPUVCUVDXPYMUVBXOLYLPWIWJUJWKVJWLWMYFUUQYHYJMUURYHUUQYJXOWQWOWPZWRWS
      XBUVQUVGXCXDXEXF $.
  $}

  $( Relative primality passes to asymmetric powers.  (Contributed by Stefan
     O'Rear, 27-Sep-2014.) $)
  rpexp1i $p |- ( ( A e. ZZ /\ B e. ZZ /\ M e. NN0 ) -> ( ( A gcd B ) = 1 -> (
      ( A ^ M ) gcd B ) = 1 ) ) $=
    ( cz wcel cn0 cgcd co c1 wceq cexp wi wa cn cc0 wo elnn0 w3a rpexp eqtrd cc
    biimprd 3expa simpr oveq2d zcn ad2antrr oveq1d 1gcd ad2antlr jaodan sylan2b
    exp0d a1d 3impa ) ADEZBDEZCFEZABGHIJZACKHZBGHZIJZLZURUPUQMZCNEZCOJZPVCCQVDV
    EVCVFUPUQVEVCUPUQVERVBUSABCSUBUCVDVFMZVBUSVGVAIBGHZIVGUTIBGVGUTAOKHIVGCOAKV
    DVFUDUEVGAUPAUAEUQVFAUFUGUMTUHUQVHIJUPVFBUIUJTUNUKULUO $.

  $( Relative primality passes to symmetric powers.  (Contributed by Stefan
     O'Rear, 27-Sep-2014.) $)
  rpexp12i $p |- ( ( A e. ZZ /\ B e. ZZ /\ ( M e. NN0 /\ N e. NN0 ) ) -> ( ( A
      gcd B ) = 1 -> ( ( A ^ M ) gcd ( B ^ N ) ) = 1 ) ) $=
    ( cz wcel cn0 wa w3a cgcd co wceq cexp rpexp1i zexpcl syl2anc gcdcom eqeq1d
    c1 wi 3adant3r simp2 simp1 simp3l simp3r syl3anc 3imtr4d syld ) AEFZBEFZCGF
    ZDGFZHZIZABJKSLZACMKZBJKZSLZUPBDMKZJKZSLZUIUJUKUOURTULABCNUAUNBUPJKZSLZUSUP
    JKZSLZURVAUNUJUPEFZULVCVETUIUJUMUBZUNUIUKVFUIUJUMUCUIUJUKULUDACOPZUIUJUKULU
    EZBUPDNUFUNUQVBSUNVFUJUQVBLVHVGUPBQPRUNUTVDSUNVFUSEFZUTVDLVHUNUJULVJVGVIBDO
    PUPUSQPRUGUH $.

  $( A prime number does not divide the factorial of a nonnegative integer less
     than the prime number.  (Contributed by AV, 13-Jul-2021.) $)
  prmndvdsfaclt $p |- ( ( P e. Prime /\ N e. NN0 )
                        -> ( N < P -> -. P || ( ! ` N ) ) ) $=
    ( cprime wcel cn0 wa clt wbr cle wn cfa cdvds cr wb nn0re prmnn nnred ltnle
    cfv syl2anr wi prmfac1 3exp impcom con3d sylbid ) ACDZBEDZFZBAGHZABIHZJZABK
    SLHZJUHBMDAMDUJULNUGBOUGAAPQBARTUIUMUKUHUGUMUKUAUHUGUMUKABUBUCUDUEUF $.

  ${
    $d A i j $.  $d B i j $.
    $( If two positive integers are not coprime, the larger of them is not a
       prime number.  (Contributed by AV, 9-Aug-2020.) $)
    ncoprmlnprm $p |- ( ( A e. NN /\ B e. NN /\ A < B )
                        -> ( 1 < ( A gcd B ) -> B e/ Prime ) ) $=
      ( vi vj wcel clt wbr w3a co cdvds wa c2 wrex cprime wb wn wi cz syl cr cn
      c1 cgcd cv cuz cfv wnel ncoprmgcdgt1b bicomd 3adant3 cmin cfz wral wo cle
      simp1 eluzelz anim12ci dvdsle nnre 3anim123i 3anrot sylibr lelttr expcomd
      eluzelre 3exp com34 3imp1 imp nnz 3ad2ant2 adantr zltlem1 mpbid ex impcom
      syldc peano2zm anim1i ancomd elfz5 mpbird weq breq1 adantl simprr notnotb
      rspcedvd rexnal bicomi rexbii bitr3i olcd df-nel ianor xchnxbir rexlimdva
      isprm3 bitri sylbid ) AUAEZBUAEZABFGZHZUBABUCIFGZCUDZAJGZXGBJGZKZCLUEUFZM
      ZBNUGZXBXCXFXLOXDXBXCKXLXFABCUHUIUJXEXJXMCXKXEXGXKEZKZXJXMXOXJKZBXKEZPZDU
      DZBJGZPZDLBUBUKIZULIZUMZPZUNZXMXPYEXRXPXTDYCMZYEXPXTXIDXGYCXPXGYCEZXGYBUO
      GZXJXOYIXHXOYIQXIXOXHXGAUOGZYIXOXGREZXBKXHYJQXEXBXNYKXBXCXDUPLXGUQZURXGAU
      SSXOYJYIXOYJKZXGBFGZYIXOYJYNXBXCXDXNYJYNQZXBXCXNXDYOXBXCXNXDYOQXBXCXNHZYJ
      XDYNYPXGTEZATEZBTEZHZYJXDKYNQYPYRYSYQHYTXBYRXCYSXNYQAUTBUTLXGVFVAYQYRYSVB
      VCXGABVDSVEVGVHVIVJYMYKBREZKZYNYIOXOUUBYJXEUUAXNYKXCXBUUAXDBVKZVLYLURVMXG
      BVNSVOVPVRVMVQXPXNYBREZKZYHYIOXOUUEXJXOUUDXNXEUUDXNXCXBUUDXDXCUUAUUDUUCBV
      SSVLVTWAVMXGLYBWBSWCDCWDXTXIOXPXSXGBJWEWFXOXHXIWGWIYEYAPZDYCMYGYADYCWJUUF
      XTDYCXTUUFXTWHWKWLWMVCWNXMBNEZPYFBNWOXQYDKYFUUGXQYDWPDBWSWQWTVCVPWRXA $.
  $}

  $( Corollary 2 of Cancellability of Congruences:  Two products with a common
     factor are congruent modulo a prime number not dividing the common factor
     iff the other factors are congruent modulo the prime number.  (Contributed
     by AV, 13-Jul-2021.) $)
  cncongrprm $p |- ( ( ( A e. ZZ /\ B e. ZZ /\ C e. ZZ )
                       /\ ( P e. Prime /\ -. P || C ) )
                     -> ( ( ( A x. C ) mod P ) = ( ( B x. C ) mod P )
                          <-> ( A mod P ) = ( B mod P ) ) ) $=
    ( cz wcel w3a cprime cdvds wbr wn wa cn cgcd co c1 wceq cmul cmo wb wi prmz
    prmnn ad2antrl coprm gcdcom sylan eqeq1d ancoms biimpd expimpd 3ad2ant3 imp
    bitrd jca cncongrcoprm syldan ) AEFZBEFZCEFZGZDHFZDCIJKZLZDMFZCDNOZPQZLACRO
    DSOBCRODSOQADSOBDSOQTVAVDLVEVGVBVEVAVCDUCUDVAVDVGUTURVDVGUAUSUTVBVCVGUTVBLV
    CVGVBUTVCVGTVBUTLZVCDCNOZPQVGDCUEVHVIVFPVBDEFUTVIVFQDUBDCUFUGUHUNUIUJUKULUM
    UOABCDUPUQ $.

  $( The predicate "is an even number".  An even number and 2 have 2 as
     greatest common divisor.  (Contributed by AV, 1-Jul-2020.)  (Revised by
     AV, 8-Aug-2021.) $)
  isevengcd2 $p |- ( Z e. ZZ -> ( 2 || Z <-> ( 2 gcd Z ) = 2 ) ) $=
    ( cz wcel c2 cgcd co wceq cdvds wbr cn wb 2nn gcdzeq mpan bicomd ) ABCZDAEF
    DGZDAHIZDJCPQRKLDAMNO $.

  $( The predicate "is an odd number".  An odd number and 2 have 1 as greatest
     common divisor.  (Contributed by AV, 1-Jul-2020.)  (Revised by AV,
     8-Aug-2021.) $)
  isoddgcd1 $p |- ( Z e. ZZ -> ( -. 2 || Z <-> ( 2 gcd Z ) = 1 ) ) $=
    ( c2 cprime wcel cz cdvds wbr wn cgcd co c1 wceq wb 2prm coprm mpan ) BCDAE
    DBAFGHBAIJKLMNBAOP $.

  $( The least common multiple of three and two is six.  The operands are
     unequal primes and thus coprime, so the result is (the absolute value of)
     their product.  (Contributed by Steve Rodriguez, 20-Jan-2020.)  (Proof
     shortened by AV, 27-Aug-2020.) $)
  3lcm2e6 $p |- ( 3 lcm 2 ) = 6 $=
    ( c3 c2 clcm co cmul c6 cgcd c1 wceq wne 2re 2lt3 cprime wcel mp2an 3nn 2nn
    cn cz nnzi gtneii wb 3prm 2prm prmrp mpbir oveq2i lcmgcdnn cn0 lcmcl nn0cni
    mulid1i 3eqtr3ri 3t2e6 eqtri ) ABCDZABEDZFUPABGDZEDZUPHEDUQUPURHUPEURHIZABJ
    ZBAKLUAAMNBMNUTVAUBUCUDABUEOUFUGARNBRNUSUQIPQABUHOUPUPASNBSNUPUINAPTBQTABUJ
    OUKULUMUNUO $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Properties of the canonical representation of a rational
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c numer denom $.

  $( Extend class notation to include canonical numerator function. $)
  cnumer $a class numer $.
  $( Extend class notation to include canonical denominator function. $)
  cdenom $a class denom $.

  ${
    $d x y $.
    $( The canonical numerator of a rational is the numerator of the rational's
       reduced fraction representation (no common factors, denominator
       positive).  (Contributed by Stefan O'Rear, 13-Sep-2014.) $)
    df-numer $a |- numer = ( y e. QQ |-> ( 1st ` ( iota_ x e. ( ZZ X. NN ) ( (
        ( 1st ` x ) gcd ( 2nd ` x ) ) = 1 /\ y = ( ( 1st ` x ) / ( 2nd ` x ) )
        ) ) ) ) $.
    $( The canonical denominator of a rational is the denominator of the
       rational's reduced fraction representation (no common factors,
       denominator positive).  (Contributed by Stefan O'Rear, 13-Sep-2014.) $)
    df-denom $a |- denom = ( y e. QQ |-> ( 2nd ` ( iota_ x e. ( ZZ X. NN ) ( (
        ( 1st ` x ) gcd ( 2nd ` x ) ) = 1 /\ y = ( ( 1st ` x ) / ( 2nd ` x ) )
        ) ) ) ) $.
  $}

  ${
    $d A a b $.  $d B a b $.  $d C a b $.  $d x a b $.

    ${
      $d A x $.
      $( Value of the canonical numerator function.  (Contributed by Stefan
         O'Rear, 13-Sep-2014.) $)
      qnumval $p |- ( A e. QQ -> ( numer ` A ) = ( 1st ` ( iota_ x e. ( ZZ X.
          NN ) ( ( ( 1st ` x ) gcd ( 2nd ` x ) ) = 1 /\ A = ( ( 1st ` x ) / (
          2nd ` x ) ) ) ) ) ) $=
        ( va cv c1st cfv c2nd cgcd co c1 wceq cdiv wa cz cn cxp cq cnumer eqeq1
        crio anbi2d riotabidv fveq2d df-numer fvex fvmpt ) CBADZEFZUGGFZHIJKZCD
        ZUHUILIZKZMZANOPZTZEFUJBULKZMZAUOTZEFQRUKBKZUPUSEUTUNURAUOUTUMUQUJUKBUL
        SUAUBUCACUDUSEUEUF $.

      $( Value of the canonical denominator function.  (Contributed by Stefan
         O'Rear, 13-Sep-2014.) $)
      qdenval $p |- ( A e. QQ -> ( denom ` A ) = ( 2nd ` ( iota_ x e. ( ZZ X.
          NN ) ( ( ( 1st ` x ) gcd ( 2nd ` x ) ) = 1 /\ A = ( ( 1st ` x ) / (
          2nd ` x ) ) ) ) ) ) $=
        ( va cv c1st cfv c2nd cgcd co c1 wceq cdiv wa cz cn cxp cq cdenom eqeq1
        crio anbi2d riotabidv fveq2d df-denom fvex fvmpt ) CBADZEFZUGGFZHIJKZCD
        ZUHUILIZKZMZANOPZTZGFUJBULKZMZAUOTZGFQRUKBKZUPUSGUTUNURAUOUTUMUQUJUKBUL
        SUAUBUCACUDUSGUEUF $.
    $}

    $( Lemma for ~ qnumcl and ~ qdencl .  (Contributed by Stefan O'Rear,
       13-Sep-2014.) $)
    qnumdencl $p |- ( A e. QQ -> ( ( numer ` A ) e. ZZ /\ ( denom ` A ) e. NN )
        ) $=
      ( va cq wcel cv c1st cfv c2nd cgcd co c1 wceq cdiv wa cz cn cnumer eleq1d
      cxp crio cdenom wreu qredeu riotacl syl cop elxp6 qnumval qdenval anbi12d
      biimprd adantld syl5bi mpd ) ACDZBEZFGZUPHGZIJKLAUQURMJLNZBOPSZTZUTDZAQGZ
      ODZAUAGZPDZNZUOUSBUTUBVBBAUCUSBUTUDUEVBVAVAFGZVAHGZUFLZVHODZVIPDZNZNUOVGV
      AOPUGUOVMVGVJUOVGVMUOVDVKVFVLUOVCVHOBAUHRUOVEVIPBAUIRUJUKULUMUN $.

    $( The canonical numerator of a rational is an integer.  (Contributed by
       Stefan O'Rear, 13-Sep-2014.) $)
    qnumcl $p |- ( A e. QQ -> ( numer ` A ) e. ZZ ) $=
      ( cq wcel cnumer cfv cz cdenom cn qnumdencl simpld ) ABCADEFCAGEHCAIJ $.

    $( The canonical denominator is a positive integer.  (Contributed by Stefan
       O'Rear, 13-Sep-2014.) $)
    qdencl $p |- ( A e. QQ -> ( denom ` A ) e. NN ) $=
      ( cq wcel cnumer cfv cz cdenom cn qnumdencl simprd ) ABCADEFCAGEHCAIJ $.

    $( Canonical numerator defines a function.  (Contributed by Stefan O'Rear,
       13-Sep-2014.) $)
    fnum $p |- numer : QQ --> ZZ $=
      ( va vb cq cz cv c1st cfv c2nd cgcd co c1 wceq cdiv wa cn cxp crio cnumer
      df-numer wcel qnumval qnumcl eqeltrrd fmpti ) ACDBEZFGZUEHGZIJKLAEZUFUGMJ
      LNBDOPQFGZRBASUHCTUHRGUIDBUHUAUHUBUCUD $.

    $( Canonical denominator defines a function.  (Contributed by Stefan
       O'Rear, 13-Sep-2014.) $)
    fden $p |- denom : QQ --> NN $=
      ( va vb cq cn cv c1st cfv c2nd cgcd co c1 wceq cdiv wa cz cxp crio cdenom
      df-denom wcel qdenval qdencl eqeltrrd fmpti ) ACDBEZFGZUEHGZIJKLAEZUFUGMJ
      LNBODPQHGZRBASUHCTUHRGUIDBUHUAUHUBUCUD $.

    $( Two numbers are the canonical representation of a rational iff they are
       coprime and have the right quotient.  (Contributed by Stefan O'Rear,
       13-Sep-2014.) $)
    qnumdenbi $p |- ( ( A e. QQ /\ B e. ZZ /\ C e. NN )
        -> ( ( ( B gcd C ) = 1 /\ A = ( B / C ) )
          <-> ( ( numer ` A ) = B /\ ( denom ` A ) = C ) ) ) $=
      ( va wcel cz cn cfv wceq wa c1st c2nd cgcd co c1 cdiv cop 3adant1 oveq12d
      eqeq1d cq w3a cnumer cdenom cv cxp crio wb qredeu riotacl 1st2nd2 qnumval
      wreu 3syl qdenval opeq12d eqtr4d 3ad2ant1 fvex opth syl6rbb opelxpi fveq2
      eqeq2d anbi12d riota2 syl2anc op1stg op2ndg 3bitr2rd ) AUAEZBFEZCGEZUBZAU
      CHZBIAUDHZCIJZDUEZKHZVRLHZMNZOIZAVSVTPNZIZJZDFGUFZUGZBCQZIZWHKHZWHLHZMNZO
      IZAWJWKPNZIZJZBCMNZOIZABCPNZIZJVNWIVOVPQZWHIZVQVKVLWIXBUHVMVKWGXAWHVKWGWG
      KHZWGLHZQZXAVKWEDWFUMZWGWFEWGXEIDAUIZWEDWFUJWGFGUKUNVKVOXCVPXDDAULDAUOUPU
      QTURVOVPBCAUCUSAUDUSUTVAVNWHWFEZXFWPWIUHVLVMXHVKBCFGVBRVKVLXFVMXGURWEWPDW
      FWHVRWHIZWBWMWDWOXIWAWLOXIVSWJVTWKMVRWHKVCZVRWHLVCZSTXIWCWNAXIVSWJVTWKPXJ
      XKSVDVEVFVGVNWMWRWOWTVNWLWQOVLVMWLWQIVKVLVMJWJBWKCMBCFGVHZBCFGVIZSRTVNWNW
      SAVNWJBWKCPVLVMWJBIVKXLRVLVMWKCIVKXMRSVDVEVJ $.

    $( The canonical representation of a rational is fully reduced.
       (Contributed by Stefan O'Rear, 13-Sep-2014.) $)
    qnumdencoprm $p |- ( A e. QQ
        -> ( ( numer ` A ) gcd ( denom ` A ) ) = 1 ) $=
      ( cq wcel cnumer cdenom cgcd co c1 wceq cdiv wa eqidd eqid jctir cz cn wb
      cfv qnumcl qdencl qnumdenbi mpd3an23 mpbird simpld ) ABCZADRZAERZFGHIZAUF
      UGJGIZUEUHUIKZUFUFIZUGUGIZKZUEUKULUEUFLUGMNUEUFOCUGPCUJUMQASATAUFUGUAUBUC
      UD $.

    $( Recover a rational number from its canonical representation.
       (Contributed by Stefan O'Rear, 13-Sep-2014.) $)
    qeqnumdivden $p |- ( A e. QQ -> A = ( ( numer ` A ) / ( denom ` A ) ) ) $=
      ( cq wcel cnumer cdenom cgcd co c1 wceq cdiv wa eqidd eqid jctir cz cn wb
      cfv qnumcl qdencl qnumdenbi mpd3an23 mpbird simprd ) ABCZADRZAERZFGHIZAUF
      UGJGIZUEUHUIKZUFUFIZUGUGIZKZUEUKULUEUFLUGMNUEUFOCUGPCUJUMQASATAUFUGUAUBUC
      UD $.

    $( Multiplying a rational by its denominator results in an integer.
       (Contributed by Stefan O'Rear, 13-Sep-2014.) $)
    qmuldeneqnum $p |- ( A e. QQ -> ( A x. ( denom ` A ) ) = ( numer ` A ) ) $=
      ( wcel cdenom cfv cmul cnumer cdiv qeqnumdivden oveq1d qnumcl zcnd qdencl
      cq co nncnd nnne0d divcan1d eqtrd ) AMBZAACDZENAFDZTGNZTENUASAUBTEAHISUAT
      SUAAJKSTALZOSTUCPQR $.

    $( Calculate the reduced form of a quotient using ` gcd ` .  (Contributed
       by Stefan O'Rear, 13-Sep-2014.) $)
    divnumden $p |- ( ( A e. ZZ /\ B e. NN ) -> ( ( numer ` ( A / B ) ) = ( A /
        ( A gcd B ) ) /\ ( denom ` ( A / B ) ) = ( B / ( A gcd B ) ) ) ) $=
      ( cz wcel cn wa cgcd co cdiv c1 wceq cfv cdvds wbr adantl wn sylan2 cc wb
      cc0 cnumer cdenom simpl nnz nnne0 neneqd intnand gcdn0cl syl21anc gcddvds
      gcddiv syl31anc nncnd nnne0d dividd eqtr3d wne zcn adantr nncn w3a eqcomd
      divcan7 syl122anc cq znq simpld gcdcl nn0zd dvdsval2 syl3anc mpbid simprd
      simpr nndivdvds syl2anc qnumdenbi mpbi2and ) ACDZBEDZFZAABGHZIHZBWBIHZGHZ
      JKZABIHZWCWDIHZKZWGUALWCKWGUBLWDKFZWAWBWBIHZWEJWAVSBCDZWBEDZWBAMNZWBBMNZF
      ZWKWEKVSVTUCZVTWLVSBUDZOZWAVSWLATKZBTKZFPWMWQWSWAXAWTVTXAPVSVTBTBUEZUFOUG
      ABUHUIZVTVSWLWPWRABUJQZABWBUKULWAWBWAWBXCUMZWAWBXCUNZUOUPWAARDZBRDZBTUQZW
      BRDZWBTUQZWIVSXGVTAURUSVTXHVSBUTOVTXIVSXBOXEXFXGXHXIFXJXKFVAWHWGABWBVCVBV
      DWAWGVEDWCCDZWDEDZWFWIFWJSABVFWAWNXLWAWNWOXDVGWAWBCDZXKVSWNXLSVTVSWLXNWRV
      SWLFWBABVHVIQXFWQWBAVJVKVLWAWOXMWAWNWOXDVMWAVTWMWOXMSVSVTVNXCBWBVOVPVLWGW
      CWDVQVKVR $.

    $( Reducing a quotient never increases the denominator.  (Contributed by
       Stefan O'Rear, 13-Sep-2014.) $)
    divdenle $p |- ( ( A e. ZZ /\ B e. NN ) -> ( denom ` ( A / B ) ) <_ B ) $=
      ( cz wcel cn wa cdiv co cdenom cfv cgcd cle wceq c1 wbr cc0 wn adantl clt
      cr cnumer divnumden simprd simpl nnz nnne0 neneqd intnand syl21anc nnge1d
      gcdn0cl 1red 0lt1 a1i nnred nngt0d nnre nngt0 lediv2 syl222anc mpbid nncn
      wb cc div1d breqtrd eqbrtrd ) ACDZBEDZFZABGHZIJZBABKHZGHZBLVJVKUAJAVMGHMV
      LVNMABUBUCVJVNBNGHZBLVJNVMLOZVNVOLOZVJVMVJVHBCDZAPMZBPMZFQVMEDVHVIUDVIVRV
      HBUERVJVTVSVIVTQVHVIBPBUFUGRUHABUKUIZUJVJNTDPNSOZVMTDPVMSOBTDZPBSOZVPVQVC
      VJULWBVJUMUNVJVMWAUOVJVMWAUPVIWCVHBUQRVIWDVHBURRNVMBUSUTVAVJBVIBVDDVHBVBR
      VEVFVG $.

    $( A rational is positive iff its canonical numerator is.  (Contributed by
       Stefan O'Rear, 15-Sep-2014.) $)
    qnumgt0 $p |- ( A e. QQ -> ( 0 < A <-> 0 < ( numer ` A ) ) ) $=
      ( cq wcel cc0 clt wbr cdenom cfv cmul co cnumer cr 0red qre qdencl nngt0d
      wb nnred ltmul1 syl112anc nncnd mul02d qmuldeneqnum breq12d bitrd ) ABCZD
      AEFZDAGHZIJZAUHIJZEFZDAKHZEFUFDLCALCUHLCDUHEFUGUKQUFMANUFUHAOZRUFUHUMPDAU
      HSTUFUIDUJULEUFUHUFUHUMUAUBAUCUDUE $.

    $( A rational is positive iff its canonical numerator is a positive
       integer.  (Contributed by Stefan O'Rear, 15-Sep-2014.) $)
    qgt0numnn $p |- ( ( A e. QQ /\ 0 < A ) -> ( numer ` A ) e. NN ) $=
      ( cq wcel cc0 clt wbr wa cnumer cfv cz qnumcl adantr qnumgt0 biimpa elnnz
      cn sylanbrc ) ABCZDAEFZGAHIZJCZDTEFZTPCRUASAKLRSUBAMNTOQ $.

    $( Squaring commutes with GCD, in particular two coprime numbers have
       coprime squares.  (Contributed by Stefan O'Rear, 15-Sep-2014.) $)
    nn0gcdsq $p |- ( ( A e. NN0 /\ B e. NN0 ) -> ( ( A gcd B ) ^ 2 ) = ( ( A ^
        2 ) gcd ( B ^ 2 ) ) ) $=
      ( cn0 wcel cn cc0 wceq wo cgcd co c2 cexp wa cabs cfv syl cz oveq1d oveq1
      sq0 elnn0 sqgcd nncn abssq nnz gcd0id a1i zsqcl 3syl eqtrd 3eqtr4d adantl
      cc eqeq12d adantr mpbird gcdid0 oveq2d oveq2 gcd0val oveq1i oveq12i eqtri
      wb 3eqtr4i oveq12 oveqan12d 3eqtr4a ccase syl2anb ) ACDAEDZAFGZHBEDZBFGZH
      ABIJZKLJZAKLJZBKLJZIJZGZBCDAUABUAVKVMVLVNVTABUBVLVMMVTFBIJZKLJZFKLJZVRIJZ
      GZVMWEVLVMBNOZKLJZVRNOZWBWDVMBUMDWGWHGBUCBUDPVMWAWFKLVMBQDZWAWFGBUEZBUFPR
      VMWDFVRIJZWHVMWCFVRIWCFGZVMTUGRVMWIVRQDWKWHGWJBUHVRUFUIUJUKULVLVTWEVDVMVL
      VPWBVSWDVLVOWAKLAFBISRVLVQWCVRIAFKLSZRUNUOUPVKVNMVTAFIJZKLJZVQWCIJZGZVKWQ
      VNVKANOZKLJZVQNOZWOWPVKAUMDWSWTGAUCAUDPVKWNWRKLVKAQDZWNWRGAUEZAUQPRVKWPVQ
      FIJZWTVKWCFVQIWLVKTUGURVKXAVQQDXCWTGXBAUHVQUQUIUJUKUOVNVTWQVDVKVNVPWOVSWP
      VNVOWNKLBFAIUSRVNVRWCVQIBFKLSZURUNULUPVLVNMZFFIJZKLJZWCWCIJZVPVSWCFXGXHTX
      FFKLUTVAXHXFFWCFWCFITTVBUTVCVEXEVOXFKLAFBFIVFRVLVNVQWCVRWCIWMXDVGVHVIVJ
      $.

    $( ~ nn0gcdsq extended to integers by symmetry.  (Contributed by Stefan
       O'Rear, 15-Sep-2014.) $)
    zgcdsq $p |- ( ( A e. ZZ /\ B e. ZZ ) -> ( ( A gcd B ) ^ 2 ) = ( ( A ^ 2 )
        gcd ( B ^ 2 ) ) ) $=
      ( cz wcel wa cgcd co c2 cexp cabs cfv gcdabs eqcomd cn0 wceq nn0abscl zre
      cr absresq syl oveq1d nn0gcdsq syl2an adantr adantl oveq12d 3eqtrd ) ACDZ
      BCDZEZABFGZHIGAJKZBJKZFGZHIGZULHIGZUMHIGZFGZAHIGZBHIGZFGUJUKUNHIUJUNUKABL
      MUAUHULNDUMNDUOUROUIAPBPULUMUBUCUJUPUSUQUTFUJARDZUPUSOUHVAUIAQUDASTUJBRDZ
      UQUTOUIVBUHBQUEBSTUFUG $.

    $( Squaring a rational squares its canonical components.  (Contributed by
       Stefan O'Rear, 15-Sep-2014.) $)
    numdensq $p |- ( A e. QQ -> ( ( numer ` ( A ^ 2 ) ) = ( ( numer ` A ) ^ 2 )
        /\ ( denom ` ( A ^ 2 ) ) = ( ( denom ` A ) ^ 2 ) ) ) $=
      ( cq wcel cnumer cfv c2 cexp co cdenom cgcd wceq cdiv qnumdencoprm oveq1d
      c1 wa cz qnumcl qdencl nnzd zgcdsq syl2anc sq1 3eqtr3d qeqnumdivden nncnd
      a1i zcnd nnne0d sqdivd eqtrd cn qsqcl zsqcl syl nnsqcld qnumdenbi syl3anc
      wb mpbi2and ) ABCZADEZFGHZAIEZFGHZJHZOKZAFGHZVCVELHZKZVHDEVCKVHIEVEKPZVAV
      BVDJHZFGHZOFGHZVFOVAVLOFGAMNVAVBQCZVDQCVMVFKARZVAVDASZTVBVDUAUBVNOKVAUCUG
      UDVAVHVBVDLHZFGHVIVAAVRFGAUENVAVBVDVAVBVPUHVAVDVQUFVAVDVQUIUJUKVAVHBCVCQC
      ZVEULCVGVJPVKUSAUMVAVOVSVPVBUNUOVAVDVQUPVHVCVEUQURUT $.

    $( Square commutes with canonical numerator.  (Contributed by Stefan
       O'Rear, 15-Sep-2014.) $)
    numsq $p |- ( A e. QQ -> ( numer ` ( A ^ 2 ) ) = ( ( numer ` A ) ^ 2 ) ) $=
      ( cq wcel c2 cexp co cnumer cfv wceq cdenom numdensq simpld ) ABCADEFZGHA
      GHDEFIMJHAJHDEFIAKL $.

    $( Square commutes with canonical denominator.  (Contributed by Stefan
       O'Rear, 15-Sep-2014.) $)
    densq $p |- ( A e. QQ -> ( denom ` ( A ^ 2 ) ) = ( ( denom ` A ) ^ 2 ) ) $=
      ( cq wcel c2 cexp co cnumer cfv wceq cdenom numdensq simprd ) ABCADEFZGHA
      GHDEFIMJHAJHDEFIAKL $.

    $( A rational is an integer iff it has denominator 1.  (Contributed by
       Stefan O'Rear, 15-Sep-2014.) $)
    qden1elz $p |- ( A e. QQ -> ( ( denom ` A ) = 1 <-> A e. ZZ ) ) $=
      ( cq wcel cdenom cfv c1 wceq cz wa cnumer cdiv co qeqnumdivden oveq2 zcnd
      adantr div1d cle wbr cn adantl qnumcl 3eqtrd eqeltrd simpr fveq2d sylancl
      1nn divdenle eqbrtrrd wb qdencl nnle1eq1 syl mpbid impbida ) ABCZADEZFGZA
      HCZUQUSIZAAJEZHVAAVBURKLZVBFKLZVBUQAVCGUSAMPUSVCVDGUQURFVBKNUAVAVBVAVBUQV
      BHCUSAUBPZOQUCVEUDUQUTIZURFRSZUSVFAFKLZDEZURFRVFVHADVFAVFAUQUTUEZOQUFVFUT
      FTCVIFRSVJUHAFUIUGUJVFURTCZVGUSUKUQVKUTAULPURUMUNUOUP $.

    $( If an integer has a rational square root, that root is must be an
       integer.  (Contributed by Stefan O'Rear, 15-Sep-2014.) $)
    zsqrtelqelz $p |- ( ( A e. ZZ /\ ( sqrt ` A ) e. QQ )
        -> ( sqrt ` A ) e. ZZ ) $=
      ( cz wcel csqrt cfv cq wa cdenom c1 wceq cn qdencl adantl a1i cexp adantr
      c2 co wb qden1elz 1red nnnn0d nn0ge0d cc0 cle wbr 0le1 sq1 sqsqrtd fveq2d
      nnred zcn simpl zq syl mpbird eqtrd densq 3eqtr2rd sq11d mpbid ) ABCZADEZ
      FCZGZVCHEZIJZVCBCZVEVFIVEVFVDVFKCVBVCLMZUKVEUAVEVFVEVFVIUBUCUDIUEUFVEUGNV
      EIQORZIVCQORZHEZVFQORZVJIJVEUHNVEVLAHEZIVEVKAHVBVKAJVDVBAAULUIPUJVEVNIJZV
      BVBVDUMVEAFCZVOVBSVBVPVDAUNPATUOUPUQVDVLVMJVBVCURMUSUTVDVGVHSVBVCTMVA $.

    $( Any integer strictly between two adjacent squares has an irrational
       square root.  (Contributed by Stefan O'Rear, 15-Sep-2014.) $)
    nonsq $p |- ( ( ( A e. NN0 /\ B e. NN0 ) /\ ( ( B ^ 2 ) < A /\ A < ( ( B +
        1 ) ^ 2 ) ) ) -> -. ( sqrt ` A ) e. QQ ) $=
      ( cn0 wcel wa c2 cexp co clt wbr cz ad2antlr cr nn0re ad2antrr cc0 nn0ge0
      nn0z cle syl c1 caddc csqrt cq wn simprl recnd sqsqrtd breqtrrd resqrtcld
      cfv sqrtge0d lt2sqd mpbird eqbrtrd peano2re peano2nn0 syl3anc zsqrtelqelz
      simprr btwnnz wi ex mtod ) ACDZBCDZEZBFGHZAIJZABUAUBHZFGHZIJZEZEZAUCUKZUD
      DZVOKDZVNBKDZBVOIJZVOVJIJZVQUEVFVRVEVMBRLVNVSVHVOFGHZIJVNVHAWAIVGVIVLUFVN
      AVNAVEAMDVFVMANOZUGUHZUIVNBVOVFBMDZVEVMBNLZVNAWBVEPASJVFVMAQOZUJZVFPBSJVE
      VMBQLVNAWBWFULZUMUNVNVTWAVKIJVNWAAVKIWCVGVIVLUTUOVNVOVJWGVNWDVJMDWEBUPTWH
      VFPVJSJZVEVMVFVJCDWIBUQVJQTLUMUNBVOVAURVNAKDZVPVQVBVEWJVFVMAROWJVPVQAUSVC
      TVD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Euler's theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c odZ $.
  $c phi $.

  $( Extend class notation with the order function on the class of integers mod
     N. $)
  codz $a class odZ $.

  $( Extend class notation with the Euler phi function. $)
  cphi $a class phi $.

  ${
    $d m n x $.
    $( Define the order function on the class of integers mod N. (Contributed
       by Mario Carneiro, 23-Feb-2014.)  (Revised by AV, 26-Sep-2020.) $)
    df-odz $a |- odZ = ( n e. NN |-> ( x e. { x e. ZZ | ( x gcd n ) = 1 } |->
                   inf ( { m e. NN | n || ( ( x ^ m ) - 1 ) } , RR , < ) ) ) $.

    $( Define the Euler phi function (also called _ Euler totient function_),
       which counts the number of integers less than ` n ` and coprime to it,
       see definition in [ApostolNT] p. 25.  (Contributed by Mario Carneiro,
       23-Feb-2014.) $)
    df-phi $a |- phi = ( n e. NN |-> ( # `
                         { x e. ( 1 ... n ) | ( x gcd n ) = 1 } ) ) $.
  $}

  ${
    $d n x N $.
    $( Value of the Euler ` phi ` function.  (Contributed by Mario Carneiro,
       23-Feb-2014.) $)
    phival $p |- ( N e. NN -> ( phi ` N ) = ( # `
                         { x e. ( 1 ... N ) | ( x gcd N ) = 1 } ) ) $=
      ( vn cv cgcd co c1 wceq cfz crab chash cfv cn cphi oveq2 eqeq1d rabeqbidv
      fveq2d df-phi fvex fvmpt ) CBADZCDZEFZGHZAGUCIFZJZKLUBBEFZGHZAGBIFZJZKLMN
      UCBHZUGUKKULUEUIAUFUJUCBGIOULUDUHGUCBUBEOPQRACSUKKTUA $.
  $}

  ${
    $d x N $.
    $( Bounds and closure for the value of the Euler ` phi ` function.
       (Contributed by Mario Carneiro, 23-Feb-2014.) $)
    phicl2 $p |- ( N e. NN -> ( phi ` N ) e. ( 1 ... N ) ) $=
      ( vx cn wcel cfv cgcd co c1 cfz chash cz cle wbr cfn cn0 wss mp2an cvv wb
      wceq cphi crab phival fzfi ssrab2 ssfi hashcl ax-mp nn0zi a1i csn hashsng
      cv 1z cdom ovex rabex cuz eluzfz1 nnuz eleq2s nnz 1gcd oveq1 eqeq1d elrab
      syl sylanbrc snssd ssdomg mpsyl snfi hashdom sylibr syl5eqbrr mpbir nnnn0
      mp2 hashfz1 syl5breq w3a elfz1 sylancr mpbir3and eqeltrd ) ACDZAUAEBUMZAF
      GZHTZBHAIGZUBZJEZWJBAUCWFWLWJDZWLKDZHWLLMZWLALMZWNWFWLWKNDZWLODWJNDZWKWJP
      ZWQHAUDZWIBWJUEZWJWKUFQZWKUGUHUIUJWFHHUKZJEZWLLHKDZXDHTUNHKULUHWFXCWKUOMZ
      XDWLLMZWKRDWFXCWKPXFWIBWJHAIUPZUQWFHWKWFHWJDZHAFGZHTZHWKDXIAHURECHAUSUTVA
      WFAKDZXKAVBZAVCVGWIXKBHWJWGHTWHXJHWGHAFVDVEVFVHVIXCWKRVJVKXCNDWQXGXFSHVLX
      BXCWKNVMQVNVOWFWLWJJEZALWLXNLMZWKWJUOMZWJRDWSXPXHXAWKWJRVJVRWQWRXOXPSXBWT
      WKWJNVMQVPWFAODXNATAVQAVSVGVTWFXEXLWMWNWOWPWASUNXMWLHAWBWCWDWE $.

    $( Closure for the value of the Euler ` phi ` function.  (Contributed by
       Mario Carneiro, 28-Feb-2014.) $)
    phicl $p |- ( N e. NN -> ( phi ` N ) e. NN ) $=
      ( cn wcel cphi cfv c1 cfz co phicl2 elfznn syl ) ABCADEZFAGHCLBCAILAJK $.

    $( Lemma for ~ phibnd .  (Contributed by Mario Carneiro, 23-Feb-2014.) $)
    phibndlem $p |- ( N e. ( ZZ>= ` 2 ) ->
             { x e. ( 1 ... N ) | ( x gcd N ) = 1 } C_ ( 1 ... ( N - 1 ) ) ) $=
      ( c2 cuz cfv wcel cv cgcd co c1 wceq cmin cfz wi wral crab wa wne cn syl
      wss wn eluz2nn wo wb fzm1 nnuz eleq2s biimpa ord sylan cabs eluzelz gcdid
      cz nnre nnnn0 nn0ge0d absidd eqtrd clt wbr eluz2b2 simprbi cr 1re eqnetrd
      ltne mpan oveq1 neeq1d syl5ibrcom adantr necon4bd ralrimiva rabss sylibr
      syld ) BCDEFZAGZBHIZJKZVTJBJLIMIZFZNZAJBMIZOWBAWFPWCUAVSWEAWFVSVTWFFZQZWD
      WAJWHWDUBZVTBKZWAJRZVSBSFZWGWIWJNBUCZWLWGQWDWJWLWGWDWJUDZWGWNUEBJDESVTJBU
      FUGUHUIUJUKVSWJWKNWGVSWKWJBBHIZJRVSWOBJVSWOBULEZBVSBUOFWOWPKCBUMBUNTVSWLW
      PBKWMWLBBUPWLBBUQURUSTUTVSJBVAVBZBJRZVSWLWQBVCVDJVEFWQWRVFJBVHVITVGWJWAWO
      JVTBBHVJVKVLVMVRVNVOWBAWFWCVPVQ $.

    $( A slightly tighter bound on the value of the Euler ` phi ` function.
       (Contributed by Mario Carneiro, 23-Feb-2014.) $)
    phibnd $p |- ( N e. ( ZZ>= ` 2 ) -> ( phi ` N ) <_ ( N - 1 ) ) $=
      ( vx c2 cuz cfv wcel cv cgcd co wceq cfz crab chash cle wbr cfn wss mp2an
      c1 fzfi cmin cphi cdom phibndlem ssdomg mpsyl wb ssrab2 hashdom sylibr cn
      ssfi eluz2nn phival syl cn0 nnm1nn0 hashfz1 3syl eqcomd 3brtr4d ) ACDEFZB
      GAHISJZBSAKIZLZMEZSASUAIZKIZMEZAUBEZVGNVBVEVHUCOZVFVINOZVHPFZVBVEVHQVKSVG
      TZBAUDVEVHPUEUFVEPFZVMVLVKUGVDPFVEVDQVOSATVCBVDUHVDVEULRVNVEVHPUIRUJVBAUK
      FZVJVFJAUMZBAUNUOVBVIVGVBVPVGUPFVIVGJVQAUQVGURUSUTVA $.

    phicld.1 $e |- ( ph -> N e. NN ) $.
    $( Closure for the value of the Euler ` phi ` function.  (Contributed by
       Mario Carneiro, 29-May-2016.) $)
    phicld $p |- ( ph -> ( phi ` N ) e. NN ) $=
      ( cn wcel cphi cfv phicl syl ) ABDEBFGDECBHI $.
  $}

  $( Value of the Euler ` phi ` function at 1.  (Contributed by Mario Carneiro,
     23-Feb-2014.) $)
  phi1 $p |- ( phi ` 1 ) = 1 $=
    ( c1 cphi cfv csn wcel wceq cfz co cn phicl2 ax-mp cz 1z fzsn eleqtri elsni
    1nn ) ABCZADZERAFRAAGHZSAIERTEQAJKALETSFMANKORAPK $.

  ${
    $d x N $.
    $( Alternate definition of the Euler ` phi ` function.  (Contributed by
       Mario Carneiro, 23-Feb-2014.)  (Revised by Mario Carneiro,
       2-May-2016.) $)
    dfphi2 $p |- ( N e. NN -> ( phi ` N ) = ( # `
                          { x e. ( 0 ..^ N ) | ( x gcd N ) = 1 } ) ) $=
      ( wcel c1 wceq c2 cfv cphi cgcd co cc0 cfzo crab chash cz syl cin wss wne
      sylib cn cuz wo cv elnn1uz2 csn phi1 0z hashsng ax-mp rabid2 elsni oveq1d
      syl6eq mprgbir fveq2i 3eqtr2i fveq2 oveq2 eqeq1d rabeqbidv fveq2d 3eqtr4a
      gcd1 fzo01 cfz eluz2nn phival fzossfz a1i sseqin2 fzo0ss1 syl6eqr rabeqdv
      mpbi inrab2 3eqtr4g cmin phibndlem eluzelz fzoval sseqtr4d df-ss wi wa wn
      wral cabs gcd0id eluzelre eluzge2nn0 nn0ge0d absidd eqtrd eluz2b3 simprbi
      eqnetrd adantr eleq2s neeq1d syl5ibrcom necon2bd 1z fzospliti sylancl ord
      simpr syld ralrimiva rabss sylibr 3eqtr3d jaoi sylbi ) BUACZBDEZBFUBGCZUC
      BHGZAUDZBIJZDEZAKBLJZMZNGZEZBUEXPYEXQXPDHGZXSDIJZDEZAKUFZMZNGZXRYDYFDYING
      ZYKUGKOCZYLDEUHKOUIUJYIYJNYIYJEYHAYIYHAYIUKXSYICZYGKDIJZDYNXSKDIXSKULZUMY
      MYODEUHKVDUJUNUOUPUQBDHURXPYCYJNXPYAYHAYBYIXPYBKDLJZYIBDKLUSVEUNXPXTYGDBD
      XSIUSUTVAVBVCXQXRYAADBVFJZMZNGZYDXQXOXRYTEBVGABVHPXQYSYCNXQYSDBLJZQZYCUUA
      QZYSYCXQYAAYRUUAQZMYAAYBUUAQZMUUBUUCXQYAAUUDUUEXQUUDUUAUUEXQUUAYRRZUUDUUA
      EUUFXQDBVIVJUUAYRVKTUUAYBRUUEUUAEBVLUUAYBVKVOVMVNYAAYRUUAVPYAAYBUUAVPVQXQ
      YSUUARUUBYSEXQYSDBDVRJVFJZUUAABVSXQBOCZUUAUUGEFBVTZDBWAPWBYSUUAWCTXQYCUUA
      RZUUCYCEXQYAXSUUACZWDZAYBWGUUJXQUULAYBXQXSYBCZWEZYAXSYQCZWFUUKUUNUUOXTDUU
      NXTDSUUOKBIJZDSZXQUUQUUMXQUUPBDXQUUPBWHGZBXQUUHUUPUUREUUIBWIPXQBFBWJXQBBW
      KWLWMWNXQXOBDSBWOWPWQWRUUOXTUUPDXTUUPEXSYIYQYNXSKBIYPUMVEWSWTXAXBUUNUUOUU
      KUUNUUMDOCUUOUUKUCXQUUMXGXCXSKBDXDXEXFXHXIYAAYBUUAXJXKYCUUAWCTXLVBWNXMXN
      $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z N $.  $d y z ph $.
    hashdvds.1 $e |- ( ph -> N e. NN ) $.
    hashdvds.2 $e |- ( ph -> A e. ZZ ) $.
    hashdvds.3 $e |- ( ph -> B e. ( ZZ>= ` ( A - 1 ) ) ) $.
    hashdvds.4 $e |- ( ph -> C e. ZZ ) $.
    $( The number of numbers in a given residue class in a finite set of
       integers.  (Contributed by Mario Carneiro, 12-Mar-2014.)  (Proof
       shortened by Mario Carneiro, 7-Jun-2016.) $)
    hashdvds $p |- ( ph -> ( # ` { x e. ( A ... B ) | N || ( x - C ) } ) =
       ( ( |_ ` ( ( B - C ) / N ) ) - ( |_ ` ( ( ( A - 1 ) - C ) / N ) ) ) ) $=
      ( co wbr cz wcel syl3anc cle wb cr adantr mpbid vz vy c1 cmin cfl cfv cfz
      cdiv chash cv cdvds crab cen wceq caddc 1zzd cuz eluzelz syl zsubcld zred
      nndivred flcld peano2zm fzen cc ax-1cn zcnd addcom sylancr npcand oveq12d
      breqtrd cmul ovexd cfn cvv fzfi rabexg mp1i wa clt elfzle1 adantl elfzelz
      zltp1le syl2an mpbird fllt cc0 nnred jca ltdivmul2 nnzd zmulcld ltsubaddd
      zaddcld zlem1lt syl2anc elfzle2 flge lemuldiv leaddsub mpbir2and dvdsmul2
      nngt0d elfz pncand breqtrrd oveq1 breq2d elrab sylanbrc ad2antrl ltsub1dd
      ltdiv1 simprr wne nnne0d dvdsval2 lesub1dd lediv1 peano2zd syl5bi adantrl
      ex anbi2i adantrr nncnd divmul3d subadd2d bitrd 3bitr4g sylan2b en3d entr
      eqcom wss mp2an zre ssrab2 hashen sylibr cn0 eluzle lesub1 syl3an flword2
      ssfi uznn0sub hashfz1 3syl eqtr3d ) AUCDEUDKZFUHKZUEUFZCUCUDKZEUDKZFUHKZU
      EUFZUDKZUGKZUIUFZFBUJZEUDKZUKLZBCDUGKZULZUIUFZUVAAUVBUVHUMLZUVCUVIUNZAUVB
      UUTUCUOKZUUPUGKZUMLUVMUVHUMLUVJAUVBUCUUTUOKZUVAUUTUOKZUGKZUVMUMAUCMNUVAMN
      UUTMNZUVBUVPUMLAUPAUUPUUTAUUOAUUNFAUUNADEADUUQUQUFNZDMNZIUUQDURUSZJUTVAZG
      VBZVCZAUUSAUURFAUURAUUQEACMNZUUQMNZHCVDUSZJUTVAZGVBZVCZUTUWIUUTUCUVAVEOAU
      VNUVLUVOUUPUGAUCVFNUUTVFNUVNUVLUNVGAUUTUWIVHZUCUUTVIVJAUUPUUTAUUPUWCVHUWJ
      VKVLVMAUAUBUVMUVHUAUJZFVNKZEUOKZUBUJZEUDKZFUHKZAUVLUUPUGVOUVGVPNZUVHVQNAC
      DVRZUVFBUVGVPVSVTAUWKUVMNZUWMUVHNZAUWSWAZUWMUVGNZFUWMEUDKZUKLZUWTUXAUXBCU
      WMPLZUWMDPLZUXAUXEUUQUWMWBLZUXAUURUWLWBLZUXGUXAUUSUWKWBLZUXHUXAUXIUUTUWKW
      BLZUXAUXJUVLUWKPLZUWSUXKAUWKUVLUUPWCWDAUVQUWKMNZUXJUXKQUWSUWIUWKUVLUUPWEZ
      UUTUWKWFWGWHAUUSRNZUXLUXIUXJQUWSUWHUXMUUSUWKWIWGWHUXAUURRNZUWKRNZFRNZWJFW
      BLZWAZUXIUXHQAUXOUWSUWGSUXAUWKUWSUXLAUXMWDZVAZAUXSUWSAUXQUXRAFGWKAFGXFWLZ
      SZUURUWKFWMOTUXAUUQEUWLAUUQRNZUWSAUUQUWFVAZSAERNZUWSAEJVAZSZUXAUWLUXAUWKF
      UXTAFMNZUWSAFGWNZSZWOZVAZWPTUXAUWDUWMMNZUXEUXGQAUWDUWSHSZUXAUWLEUYLAEMNZU
      WSJSWQZCUWMWRWSWHUXAUXFUWLUUNPLZUXAUYRUWKUUOPLZUXAUYSUWKUUPPLZUWSUYTAUWKU
      VLUUPWTWDAUUORNZUXLUYSUYTQUWSUWBUXMUUOUWKXAWGWHUXAUXPUUNRNZUXSUYRUYSQUYAA
      VUBUWSUWASUYCUWKUUNFXBOWHUXAUWLRNUYFDRNZUXFUYRQUYMUYHAVUCUWSADUVTVAZSUWLE
      DXCOWHUXAUYNUWDUVSUXBUXEUXFWAQUYQUYOAUVSUWSUVTSUWMCDXGOXDUXAFUWLUXCUKUXAU
      XLUYIFUWLUKLUXTUYKUWKFXEWSUXAUWLEUXAUWLUYLVHZAEVFNZUWSAEJVHZSXHXIUVFUXDBU
      WMUVGUVDUWMUNUVEUXCFUKUVDUWMEUDXJXKXLXMYFUWNUVHNZUWNUVGNZFUWOUKLZWAZAUWPU
      VMNZUVFVUJBUWNUVGUVDUWNUNUVEUWOFUKUVDUWNEUDXJXKXLZAVUKVULAVUKWAZVULUVLUWP
      PLZUWPUUPPLZVUNUUTUWPWBLZVUOVUNUUSUWPWBLZVUQVUNUURUWOWBLZVURVUNUUQUWNEAUY
      DVUKUYESVUNUWNVUIUWNMNZAVUJUWNCDWEXNZVAZAUYFVUKUYGSZVUNCUWNPLZUUQUWNWBLZV
      UIVVDAVUJUWNCDWCXNVUNUWDVUTVVDVVEQAUWDVUKHSVVACUWNWRWSTXOVUNUXOUWORNZUXSV
      USVURQAUXOVUKUWGSVUNUWOVUNUWNEVVAAUYPVUKJSUTZVAZAUXSVUKUYBSZUURUWOFXPOTVU
      NUXNUWPMNZVURVUQQAUXNVUKUWHSVUNVUJVVJAVUIVUJXQVUNUYIFWJXRZUWOMNVUJVVJQAUY
      IVUKUYJSAVVKVUKAFGXSZSVVGFUWOXTOTZUUSUWPWIWSTVUNUVQVVJVUQVUOQAUVQVUKUWISV
      VMUUTUWPWFWSTVUNUWPUUOPLZVUPVUNUWOUUNPLZVVNVUNUWNDEVVBAVUCVUKVUDSVVCVUIUW
      NDPLAVUJUWNCDWTXNYAVUNVVFVUBUXSVVOVVNQVVHAVUBVUKUWASVVIUWOUUNFYBOTVUNVUAV
      VJVVNVUPQAVUAVUKUWBSVVMUUOUWPXAWSTVUNVVJUVLMNZUUPMNZVULVUOVUPWAQVVMAVVPVU
      KAUUTUWIYCSAVVQVUKUWCSUWPUVLUUPXGOXDYFYDAUWSVUHWAZUWKUWPUNZUWNUWMUNZQZVVR
      AUWSVUKWAZVWAVUHVUKUWSVUMYGAVWBWAZUWPUWKUNZUWMUWNUNZVVSVVTVWCVWDUWOUWLUNV
      WEVWCUWOUWKFAVUKUWOVFNUWSVUNUWOVVGVHYEAUWSUWKVFNVUKUXAUWKUXTVHYHAFVFNVWBA
      FGYISAVVKVWBVVLSYJVWCUWNEUWLAVUKUWNVFNUWSVUNUWNVVAVHYEAVUFVWBVUGSAUWSUWLV
      FNVUKVUEYHYKYLUWKUWPYQUWNUWMYQYMYNYFYOUVBUVMUVHYPWSUVBVPNUVHVPNZUVKUVJQUC
      UVAVRUWQUVHUVGYRVWFUWRUVFBUVGUUAUVGUVHUUIYSUVBUVHUUBYSUUCAUUPUUTUQUFNZUVA
      UUDNUVCUVAUNAUXNVUAUUSUUOPLZVWGUWHUWBAUURUUNPLZVWHAUUQDPLZVWIAUVRVWJIUUQD
      UUEUSAUWEUVSUYPVWJVWIQZUWFUVTJUWEUYDUVSVUCUYPUYFVWKUUQYTDYTEYTUUQDEUUFUUG
      OTAUXOVUBUXSVWIVWHQUWGUWAUYBUURUUNFYBOTUUSUUOUUHOUUTUUPUUJUVAUUKUULUUM $.
  $}

  ${
    $d x K $.  $d x P $.
    $( Value of the Euler ` phi ` function at a prime power.  Theorem 2.5(a) in
       [ApostolNT] p. 28.  (Contributed by Mario Carneiro, 24-Feb-2014.) $)
    phiprmpw $p |- ( ( P e. Prime /\ K e. NN ) -> ( phi ` ( P ^ K ) ) =
                     ( ( P ^ ( K - 1 ) ) x. ( P - 1 ) ) ) $=
      ( vx wcel cn wa co cfv c1 wceq crab chash cmin cn0 syl cc cc0 cz cdiv cfl
      cprime cexp cphi cv cgcd cfz cmul prmnn nnnn0 nnexpcl syl2an phival nncnd
      nnm1nn0 adantr ax-1cn subdi mp3an3 syl2anc mulid1d oveq2d caddc cdvds wbr
      cun cin c0 inrab wn wral wi elfzelz prmz rpexp syl3an1 3expa an32s zexpcl
      wb simpr gcdcom eqeq1d coprm adantlr 3bitr4d adantl subid1d breq2d notbid
      zcn bitr4d sylan2 biimpd imnan sylib ralrimiva rabeq0 sylibr cfn wss fzfi
      syl5eq ssrab2 ssfi mp2an hashun mp3an12 biimprd con1d orrd unrab syl6reqr
      wo rabid2 fveq2d nnnn0d hashfz1 expm1t sylan 3eqtrd 1zzd cuz nn0uz fveq2i
      1m1e0 eqtr4i syl6eleq 0zd hashdvds oveq1d nnne0d expm1d eqtr4d nnzd eqtrd
      nnz flid oveq1i 0m0e0 ax-mp eqtri 0z syl6eq oveq12d hashcl nn0cni sylancr
      div0d addcom 3eqtr3rd mulcld a1i subaddd mpbird 3eqtrrd ) AUADZBEDZFZABUB
      GZUCHZCUDZUUSUEGZIJZCIUUSUFGZKZLHZABIMGZUBGZAIMGUGGZUURUUSEDZUUTUVFJUUPAE
      DZBNDZUVJUUQAUHZBUIZABUJUKZCUUSULOUURUVIUVHAUGGZUVHIUGGZMGZUVPUVHMGZUVFUU
      RUVHPDZAPDZUVIUVRJZUURUVHUUPUVKUVGNDUVHEDUUQUVMBUNAUVGUJUKZUMZUUPUWAUUQUU
      PAUVMUMZUOZUVTUWAIPDUWBUPUVHAIUQURUSUURUVQUVHUVPMUURUVHUWDUTVAUURUVSUVFJU
      VHUVFVBGZUVPJUURUVEAUVAQMGZVCVDZCUVDKZVEZLHZUVFUWJLHZVBGZUVPUWGUURUVEUWJV
      FZVGJZUWLUWNJZUURUWOUVCUWIFZCUVDKZVGUVCUWICUVDVHUURUWRVIZCUVDVJUWSVGJUURU
      WTCUVDUURUVAUVDDZFZUVCUWIVIZVKUWTUXBUVCUXCUXAUURUVARDZUVCUXCVSUVAIUUSVLUU
      RUXDFZUVCAUVAVCVDZVIZUXCUXEUUSUVAUEGZIJZAUVAUEGIJZUVCUXGUUPUXDUUQUXIUXJVS
      ZUUPUXDUUQUXKUUPARDZUXDUUQUXKAVMZAUVABVNVOVPVQUXEUVBUXHIUXEUXDUUSRDZUVBUX
      HJUURUXDVTUURUXNUXDUUPUXLUVLUXNUUQUXMUVNABVRUKUOUVAUUSWAUSWBUUPUXDUXGUXJV
      SUUQAUVAWCWDWEUXEUWIUXFUXEUWHUVAAVCUXEUVAUXDUVAPDUURUVAWJWFWGWHWIWKWLZWMU
      VCUWIWNWOWPUWRCUVDWQWRXBUVEWSDZUWJWSDZUWPUWQUVDWSDZUVEUVDWTUXPIUUSXAZUVCC
      UVDXCUVDUVEXDXEZUXRUWJUVDWTUXQUXSUWICUVDXCUVDUWJXDXEUVEUWJXFXGOUURUWLUVDL
      HZUUSUVPUURUWKUVDLUURUVDUVCUWIXMZCUVDKZUWKUURUYBCUVDVJUVDUYCJUURUYBCUVDUX
      BUVCUWIUXBUWIUVCUXBUVCUXCUXOXHXIXJWPUYBCUVDXNWRUVCUWICUVDXKXLXOUURUUSNDUY
      AUUSJUURUUSUVOXPZUUSXQOUUPUWAUUQUUSUVPJUWEABXRXSXTUURUWNUVFUVHVBGZUWGUURU
      WMUVHUVFVBUURUWMUUSQMGZASGZTHZIIMGZQMGZASGZTHZMGUVHQMGUVHUURCIUUSQAUUPUVK
      UUQUVMUOZUURYAUURUUSNUYIYBHZUYDNQYBHUYNYCUYIQYBYEYDYFYGUURYHYIUURUYHUVHUY
      LQMUURUYHUVHTHZUVHUURUYGUVHTUURUYGUUSASGUVHUURUYFUUSASUURUUSUURUUSUVOUMWG
      YJUURABUWFUURAUYMYKZUUQBRDUUPBYPWFYLYMXOUURUVHRDUYOUVHJUURUVHUWCYNUVHYQOY
      OUURUYLQTHZQUURUYKQTUURUYKQASGQUYJQASUYJQQMGQUYIQQMYEYRYSUUAYRUURAUWFUYPU
      UHXBXOQRDUYQQJUUBQYQYTUUCUUDUURUVHUWDWGXTVAUURUVFPDZUVTUYEUWGJUVFUXPUVFND
      UXTUVEUUEYTUUFZUWDUVFUVHUUIUUGYOUUJUURUVPUVHUVFUURUVHAUWDUWFUUKUWDUYRUURU
      YSUULUUMUUNUUOYO $.
  $}

  $( Value of the Euler ` phi ` function at a prime.  (Contributed by Mario
     Carneiro, 28-Feb-2014.) $)
  phiprm $p |- ( P e. Prime -> ( phi ` P ) = ( P - 1 ) ) $=
    ( cprime wcel c1 cexp co cphi cfv cmin cmul cn wceq 1nn phiprmpw mpan2 prmz
    zcnd exp1d cc0 cc fveq2d 1m1e0 oveq2i syl5eq oveq1d sylancl mulid2d 3eqtr3d
    exp0d ax-1cn subcl eqtrd ) ABCZADEFZGHZADDIFZEFZADIFZJFZAGHURUMDKCUOUSLMADN
    OUMUNAGUMAUMAAPQZRUAUMUSDURJFURUMUQDURJUMUQASEFDUPSAEUBUCUMAUTUIUDUEUMURUMA
    TCDTCURTCUTUJADUKUFUGULUH $.

  ${
    $d w y z F $.  $d w x y M $.  $d w x y z ph $.  $d w x y z S $.  $d x T $.
    $d w x y N $.  $d w z U $.  $d w z V $.  $d w z W $.
    crth.1 $e |- S = ( 0 ..^ ( M x. N ) ) $.
    crth.2 $e |- T = ( ( 0 ..^ M ) X. ( 0 ..^ N ) ) $.
    crth.3 $e |- F = ( x e. S |-> <. ( x mod M ) , ( x mod N ) >. ) $.
    crth.4 $e |- ( ph -> ( M e. NN /\ N e. NN /\ ( M gcd N ) = 1 ) ) $.
    $( The Chinese Remainder Theorem: the function that maps ` x ` to its
       remainder classes ` mod M ` and ` mod N ` is 1-1 and onto when ` M ` and
       ` N ` are coprime.  (Contributed by Mario Carneiro, 24-Feb-2014.)
       (Proof shortened by Mario Carneiro, 2-May-2016.) $)
    crth $p |- ( ph -> F : S -1-1-onto-> T ) $=
      ( cfv wceq cmo co wcel cz cc0 wbr syl vy vz wf1 wf1o wf cv wral cmul cfzo
      wi cop elfzoelz eleq2s wa cxp cn simpr cgcd simp1d adantr zmodfzo syl2anc
      simp2d opelxpi syl6eleqr fmptd oveq1 opeq12d opex fvmpt ad2antrl ad2antll
      c1 sylan2 eqeq12d ovex opth syl6bb cmin cdvds nnzd simprl syl6eleq simprr
      zsubcld simp3d coprmdvds2 syl31anc wb moddvds syl3anc anbi12d crp cle clt
      cr zred nnmulcld nnrpd elfzole1 elfzolt2 modid syl22anc bitr3d ralrimivva
      3imtr4d sylbid dff13 sylanbrc cen cfn nnnn0 chash nn0mulcl hashfzo0 fzofi
      cn0 hashxp mp2an oveqan12d syl5eq eqtr4d xpfi hashen sylib syl2an 3brtr4g
      eqeltri f1finf1o sylancl mpbid ) ACDEUCZCDEUDZACDEUEUAUFZELZUBUFZELZMZYNY
      PMZUJZUBCUGUACUGYLABCBUFZFNOZUUAGNOZUKZDEUUACPAUUAQPZUUDDPUUEUUARFGUHOZUI
      OZCUUARUUFULHUMAUUEUNZUUDRFUIOZRGUIOZUOZDUUHUUBUUIPZUUCUUJPZUUDUUKPUUHUUE
      FUPPZUULAUUEUQZAUUNUUEAUUNGUPPZFGUROVMMZKUSZUTUUAFVAVBUUHUUEUUPUUMUUOAUUP
      UUEAUUNUUPUUQKVCZUTUUAGVAVBUUBUUCUUIUUJVDVBIVEVNJVFAYTUAUBCCAYNCPZYPCPZUN
      ZUNZYRYNFNOZYPFNOZMZYNGNOZYPGNOZMZUNZYSUVCYRUVDUVGUKZUVEUVHUKZMUVJUVCYOUV
      KYQUVLUUTYOUVKMAUVABYNUUDUVKCEUUAYNMUUBUVDUUCUVGUUAYNFNVGUUAYNGNVGVHJUVDU
      VGVIVJVKUVAYQUVLMAUUTBYPUUDUVLCEUUAYPMUUBUVEUUCUVHUUAYPFNVGUUAYPGNVGVHJUV
      EUVHVIVJVLVOUVDUVGUVEUVHYNFNVPYNGNVPVQVRUVCFYNYPVSOZVTSZGUVMVTSZUNZUUFUVM
      VTSZUVJYSUVCFQPGQPUVMQPUUQUVPUVQUJUVCFAUUNUVBUURUTZWAUVCGAUUPUVBUUSUTZWAU
      VCYNYPUVCYNUUGPZYNQPZUVCYNCUUGAUUTUVAWBHWCZYNRUUFULTZUVCYPUUGPZYPQPZUVCYP
      CUUGAUUTUVAWDHWCZYPRUUFULTZWEAUUQUVBAUUNUUPUUQKWFUTUVMFGWGWHUVCUVFUVNUVIU
      VOUVCUUNUWAUWEUVFUVNWIUVRUWCUWGYNYPFWJWKUVCUUPUWAUWEUVIUVOWIUVSUWCUWGYNYP
      GWJWKWLUVCYNUUFNOZYPUUFNOZMZYSUVQUVCUWHYNUWIYPUVCYNWPPUUFWMPZRYNWNSZYNUUF
      WOSZUWHYNMUVCYNUWCWQUVCUUFUVCFGUVRUVSWRZWSZUVCUVTUWLUWBYNRUUFWTTUVCUVTUWM
      UWBYNRUUFXATYNUUFXBXCUVCYPWPPUWKRYPWNSZYPUUFWOSZUWIYPMUVCYPUWGWQUWOUVCUWD
      UWPUWFYPRUUFWTTUVCUWDUWQUWFYPRUUFXATYPUUFXBXCVOUVCUUFUPPUWAUWEUWJUVQWIUWN
      UWCUWGYNYPUUFWJWKXDXFXGXEUAUBCDEXHXIACDXJSDXKPYLYMWIAUUGUUKCDXJAUUNUUPUUG
      UUKXJSZUURUUSUUNFXQPZGXQPZUWRUUPFXLGXLUWSUWTUNZUUGXMLZUUKXMLZMZUWRUXAUXBU
      UFUXCUXAUUFXQPUXBUUFMFGXNUUFXOTUXAUXCUUIXMLZUUJXMLZUHOZUUFUUIXKPZUUJXKPZU
      XCUXGMRFXPZRGXPZUUIUUJXRXSUWSUWTUXEFUXFGUHFXOGXOXTYAYBUUGXKPUUKXKPZUXDUWR
      WIRUUFXPUXHUXIUXLUXJUXKUUIUUJYCXSZUUGUUKYDXSYEYFVBHIYGDUUKXKIUXMYHCDEYIYJ
      YK $.

    phimul.4 $e |- U = { y e. ( 0 ..^ M ) | ( y gcd M ) = 1 } $.
    phimul.5 $e |- V = { y e. ( 0 ..^ N ) | ( y gcd N ) = 1 } $.
    phimul.6 $e |- W = { y e. S | ( y gcd ( M x. N ) ) = 1 } $.
    $( Lemma for ~ phimul .  (Contributed by Mario Carneiro, 24-Feb-2014.) $)
    phimullem $p |- ( ph ->
                   ( phi ` ( M x. N ) ) = ( ( phi ` M ) x. ( phi ` N ) ) ) $=
      ( wcel wceq vw vz chash cfv cmul co cphi cxp cfn cv cgcd c1 cc0 cfzo crab
      wss fzofi ssrab2 ssfi mp2an eqeltri hashxp cen wbr cima wral wa cmo oveq1
      cop eqeq1d elrab2 simplbi opeq12d opex fvmpt syl adantl syl6eleq elfzoelz
      cz cn simp1d adantr zmodfzo syl2anc modgcd cle nnzd gcddvds simpld simprd
      cdvds simp2d dvdsmul1 wi wn nnne0 necon3ai 3syl gcdn0cl syl21anc nnmulcld
      wne simpr dvdstr syl3anc mp2and dvdslegcd syl31anc simprbi nnle1eq1 mpbid
      breqtrd wb eqtrd sylanbrc dvdsmul2 opelxpi eqeltrd ralrimiva wfun cdm wfn
      wf1o crth f1ofn fnfun eqsstri fndm syl5sseqr syl2an eqtri eqtr3d eqeltrrd
      cmpt sylib dfphi2 fveq2i syl6eqr funimass4 mpbird ccnv sseqtr4i f1ocnvfv2
      xpss12 sseli wf f1ocnv f1of ffvelrn cbvmptv opelxp rpmul funfvima2 syldan
      imp ex ssrdv eqssd wf1 f1of1 elexi f1imaen sylancl eqbrtrrd hashen sylibr
      xpfi syl5reqr rabeq ax-mp oveq12d 3eqtr4d ) AKUCUDZFUCUDZJUCUDZUEUFZHIUEU
      FZUGUDZHUGUDZIUGUDZUEUFAUVRFJUHZUCUDZUVOFUISZJUISZUWDUVRTFCUJZHUKUFZULTZC
      UMHUNUFZUOZUIPUWJUISUWKUWJUPUWKUISUMHUQUWICUWJURZUWJUWKUSUTVAZJUWGIUKUFZU
      LTZCUMIUNUFZUOZUIQUWPUISUWQUWPUPUWQUISUMIUQUWOCUWPURZUWPUWQUSUTVAZFJVBUTA
      UWCKVCVDZUWDUVOTZAGKVEZUWCKVCAUXBUWCAUXBUWCUPZUAUJZGUDZUWCSZUAKVFZAUXFUAK
      AUXDKSZVGZUXEUXDHVHUFZUXDIVHUFZVJZUWCUXHUXEUXLTZAUXHUXDDSZUXMUXHUXNUXDUVS
      UKUFZULTZUWGUVSUKUFZULTZUXPCUXDDKUWGUXDTUXQUXOULUWGUXDUVSUKVIVKRVLZVMZBUX
      DBUJZHVHUFZUYAIVHUFZVJZUXLDGUYAUXDTUYBUXJUYCUXKUYAUXDHVHVIUYAUXDIVHVIVNZN
      UXJUXKVOVPVQVRUXIUXJFSZUXKJSZUXLUWCSUXIUXJUWJSZUXJHUKUFZULTZUYFUXIUXDWASZ
      HWBSZUYHUXIUXDUMUVSUNUFZSZUYKUXHUYNAUXHUXDDUYMUXTLVSVRUXDUMUVSVTVQZAUYLUX
      HAUYLIWBSZHIUKUFULTZOWCZWDZUXDHWEWFUXIUYIUXDHUKUFZULUXIUYKUYLUYIUYTTUYOUY
      SUXDHWGWFUXIUYTULWHVDZUYTULTZUXIUYTUXOULWHUXIUYTUXDWMVDZUYTUVSWMVDZUYTUXO
      WHVDZUXIVUCUYTHWMVDZUXIUYKHWASZVUCVUFVGUYOUXIHUYSWIZUXDHWJWFZWKUXIVUFHUVS
      WMVDZVUDUXIVUCVUFVUIWLUXIVUGIWASZVUJVUHUXIIAUYPUXHAUYLUYPUYQOWNZWDZWIZHIW
      OWFUXIUYTWASZVUGUVSWASZVUFVUJVGVUDWPUXIUYTUXIUYKVUGUXDUMTZHUMTZVGZWQZUYTW
      BSZUYOVUHUXIUYLHUMXDVUTUYSHWRVUSHUMVUQVURXEWSWTUXDHXAXBZWIZVUHUXIUVSUXIHI
      UYSVUMXCZWIZUYTHUVSXFXGXHUXIVUOUYKVUPVUQUVSUMTZVGZWQZVUCVUDVGVUEWPVVCUYOV
      VEUXIUVSWBSZUVSUMXDVVHVVDUVSWRVVGUVSUMVUQVVFXEWSWTZUYTUXDUVSXIXJXHUXHUXPA
      UXHUXNUXPUXSXKVRZXNUXIVVAVUAVUBXOVVBUYTXLVQXMXPUWIUYJCUXJUWJFUWGUXJTUWHUY
      IULUWGUXJHUKVIVKPVLXQUXIUXKUWPSZUXKIUKUFZULTZUYGUXIUYKUYPVVLUYOVUMUXDIWEW
      FUXIVVMUXDIUKUFZULUXIUYKUYPVVMVVOTUYOVUMUXDIWGWFUXIVVOULWHVDZVVOULTZUXIVV
      OUXOULWHUXIVVOUXDWMVDZVVOUVSWMVDZVVOUXOWHVDZUXIVVRVVOIWMVDZUXIUYKVUKVVRVW
      AVGUYOVUNUXDIWJWFZWKUXIVWAIUVSWMVDZVVSUXIVVRVWAVWBWLUXIVUGVUKVWCVUHVUNHIX
      RWFUXIVVOWASZVUKVUPVWAVWCVGVVSWPUXIVVOUXIUYKVUKVUQIUMTZVGZWQZVVOWBSZUYOVU
      NUXIUYPIUMXDVWGVUMIWRVWFIUMVUQVWEXEWSWTUXDIXAXBZWIZVUNVVEVVOIUVSXFXGXHUXI
      VWDUYKVUPVVHVVRVVSVGVVTWPVWJUYOVVEVVJVVOUXDUVSXIXJXHVVKXNUXIVWHVVPVVQXOVW
      IVVOXLVQXMXPUWOVVNCUXKUWPJUWGUXKTUWNVVMULUWGUXKIUKVIVKQVLXQUXJUXKFJXSWFXT
      YAAGYBZKGYCZUPZUXCUXGXOADEGYEZGDYDZVWKABDEGHILMNOYFZDEGYGZDGYHWTZADKVWLKU
      XRCDUOZDRUXRCDURYIZAVWNVWOVWLDTVWPVWQDGYJWTYKZUAKUWCGUUAWFUUBAUBUWCUXBAUB
      UJZUWCSZVXBUXBSAVXCVGZVXBGUUCZUDZGUDZVXBUXBAVWNVXBESZVXGVXBTVXCVWPUWCEVXB
      UWCUWJUWPUHZEFUWJUPJUWPUPUWCVXIUPFUWKUWJPUWLYIJUWQUWPQUWRYIFUWJJUWPUUFUTM
      UUDUUGZDEVXBGUUEYLZAVXCVXFKSZVXGUXBSZVXDVXFDSZVXFUVSUKUFZULTZVXLAEDVXEUUH
      ZVXHVXNVXCAVWNEDVXEYEVXQVWPDEGUUIEDVXEUUJWTVXJEDVXBVXEUUKYLZVXDVXFHUKUFZU
      LTZVXFIUKUFZULTZVXPVXDVXFHVHUFZHUKUFZVXSULVXDVXFWASZUYLVYDVXSTVXDVXFUYMSV
      YEVXDVXFDUYMVXRLVSVXFUMUVSVTVQZAUYLVXCUYRWDVXFHWGWFVXDVYCUWJSZVYDULTZVXDV
      YCFSZVYGVYHVGVXDVYIVXFIVHUFZJSZVXDVYCVYJVJZUWCSVYIVYKVGVXDVXBVYLUWCVXDVXG
      VXBVYLVXKVXDVXNVXGVYLTVXRUAVXFUXLVYLDGUXDVXFTUXJVYCUXKVYJUXDVXFHVHVIUXDVX
      FIVHVIVNGBDUYDYPUADUXLYPNBUADUYDUXLUYEUULYMVYCVYJVOVPVQYNAVXCXEYOVYCVYJFJ
      UUMYQZWKUWIVYHCVYCUWJFUWGVYCTUWHVYDULUWGVYCHUKVIVKPVLYQWLYNVXDVYJIUKUFZVY
      AULVXDVYEUYPVYNVYATVYFAUYPVXCVULWDVXFIWGWFVXDVYJUWPSZVYNULTZVXDVYKVYOVYPV
      GVXDVYIVYKVYMWLUWOVYPCVYJUWPJUWGVYJTUWNVYNULUWGVYJIUKVIVKQVLYQWLYNVXDVYEV
      UGVUKVXTVYBVGVXPWPVYFAVUGVXCAHUYRWIWDAVUKVXCAIVULWIWDVXFHIUUNXGXHUXRVXPCV
      XFDKUWGVXFTUXQVXOULUWGVXFUVSUKVIVKRVLXQAVXLVXMAVWKVWMVXLVXMWPVWRVXAKVXFGU
      UOWFUUQUUPYOUURUUSUUTADEGUVAZKDUPZUXBKVCVDAVWNVYQVWPDEGUVBVQVWTDEKGKUIDUI
      SVYRKUISZDUYMUILUMUVSUQVAVWTDKUSUTZUVCUVDUVEUVFUWCUISZVYSUXAUWTXOUWEUWFWU
      AUWMUWSFJUVIUTVYTUWCKUVGUTUVHUVJAVVIUVTUVOTAHIUYRVULXCVVIUVTUXRCUYMUOZUCU
      DUVOCUVSYRKWUBUCKVWSWUBRDUYMTVWSWUBTLUXRCDUYMUVKUVLYMYSYTVQAUWAUVPUWBUVQU
      EAUYLUWAUVPTUYRUYLUWAUWKUCUDUVPCHYRFUWKUCPYSYTVQAUYPUWBUVQTVULUYPUWBUWQUC
      UDUVQCIYRJUWQUCQYSYTVQUVMUVN $.
  $}

  ${
    $d x y M $.  $d x y N $.
    $( The Euler ` phi ` function is a multiplicative function, meaning that it
       distributes over multiplication at relatively prime arguments.  Theorem
       2.5(c) in [ApostolNT] p. 28.  (Contributed by Mario Carneiro,
       24-Feb-2014.) $)
    phimul $p |- ( ( M e. NN /\ N e. NN /\ ( M gcd N ) = 1 ) ->
                   ( phi ` ( M x. N ) ) = ( ( phi ` M ) x. ( phi ` N ) ) ) $=
      ( vx vy cn wcel cgcd co c1 wceq w3a cc0 cmul cfzo cxp crab cmo cop eqid
      cv cmpt id phimullem ) AEFBEFABGHIJKZCDLABMHZNHZLANHZLBNHZOZDTZAGHIJDUGPZ
      CUFCTZAQHULBQHRUAZABUJBGHIJDUHPZUJUEGHIJDUFPZUFSUISUMSUDUBUKSUNSUOSUC $.
  $}

  ${
    $d x y z A $.  $d w x y z F $.  $d w x y z G $.  $d w x y z N $.  $d x S $.
    $d w x y z ph $.  $d x y z T $.
    eulerth.1 $e |- ( ph -> ( N e. NN /\ A e. ZZ /\ ( A gcd N ) = 1 ) ) $.
    eulerth.2 $e |- S = { y e. ( 0 ..^ N ) | ( y gcd N ) = 1 } $.
    eulerth.3 $e |- T = ( 1 ... ( phi ` N ) ) $.
    eulerth.4 $e |- ( ph -> F : T -1-1-onto-> S ) $.
    eulerth.5 $e |- G = ( x e. T |-> ( ( A x. ( F ` x ) ) mod N ) ) $.
    $( Lemma for ~ eulerth .  (Contributed by Mario Carneiro, 8-May-2015.) $)
    eulerthlem1 $p |- ( ph -> G : T --> S ) $=
      ( co wcel cgcd c1 wceq syl2anc cv cfv cmul cmo wa cc0 cz cn simp2d adantr
      cfzo wf1o wf f1of syl ffvelrnda oveq1 eqeq1d elrab2 sylib simpld elfzoelz
      zmulcld simp1d zmodfzo modgcd gcdcom simp3d eqtrd simprd wi rpmul syl3anc
      nnzd mp2and 3eqtrd sylanbrc fmptd ) ABFDBUAZGUBZUCOZIUDOZEHAVSFPZUEZWBUFI
      UKOZPZWBIQOZRSZWBEPWDWAUGPZIUHPZWFWDDVTADUGPZWCAWJWKDIQOZRSZJUIZUJZWDVTWE
      PZVTUGPZWDWPVTIQOZRSZWDVTEPWPWSUEAFEVSGAFEGULFEGUMMFEGUNUOUPCUAZIQOZRSZWS
      CVTWEEWTVTSXAWRRWTVTIQUQURKUSUTZVAVTUFIVBUOZVCZAWJWCAWJWKWMJVDZUJZWAIVETW
      DWGWAIQOZIWAQOZRWDWIWJWGXHSXEXGWAIVFTWDWIIUGPZXHXISXEAXJWCAIXFVNZUJZWAIVG
      TWDIDQOZRSZIVTQOZRSZXIRSZAXNWCAXMWLRAXJWKXMWLSXKWNIDVGTAWJWKWMJVHVIUJWDXO
      WRRWDXJWQXOWRSXLXDIVTVGTWDWPWSXCVJVIWDXJWKWQXNXPUEXQVKXLWOXDIDVTVLVMVOVPX
      BWHCWBWEEWTWBSXAWGRWTWBIQUQURKUSVQNVR $.

    $( Lemma for ~ eulerth .  (Contributed by Mario Carneiro, 28-Feb-2014.) $)
    eulerthlem2 $p |- ( ph -> ( ( A ^ ( phi ` N ) ) mod N ) = ( 1 mod N ) ) $=
      ( co cmo c1 wceq cmul wcel vz vw cphi cfv cexp cmin cdvds wbr cseq cle wa
      cgcd cn cz simp1d phicld nnred adantr cv breq1 anbi2d oveq2 fveq2 oveq12d
      wi oveq1d eqeq12d oveq2d eqeq1d anbi12d imbi12d weq cr cc0 wf syl cfz cuz
      wf1o nnuz syl6eleq syl6eleqr ffvelrnd oveq1 elrab2 sylib elfzoelz zmulcld
      simpld zred modabs2 syl2anc 1z ovex fvmpt zcnd a1i 3eqtr4rd gcdcom simprd
      nnzd eqtrd lep1d adantl syl3anc cn0 ad2antrl zexpcl wss wb mpbird adantlr
      ffvelrnda syldan seqcl sseldi mp3an2 modmul1 syl22anc seqp1 eqtr4d sylibd
      cc mulcomd mpan2d eleq2i sylan2br wf1 wral moddvds coprmdvds clt elfzole1
      elfzolt2 modid sylan cfn mp2an sylancl mpbid leidd caddc simp2d cfzo f1of
      crp eluzfz1 nnrpd seq1i exp1d seq1 ax-mp oveq2i syl5eq nnre peano2re letr
      jca mpand imdistanda imim1d nnnn0 simprl simprr letrd nnz fzss2 syl6sseqr
      eluz sselda zmulcl crab ssrab2 eulerthlem1 peano2nn nnge1d elfz mpbir2and
      eqsstri 3expia mul4d expp1d syl221anc recnd 3eqtr4d rpmul sylibrd anim12d
      modcld an12s a2d syld nnind mpcom mpdan nnnn0d ccnv ccom mulcl mulcom w3a
      mulass ssid f1ocnv adantrr adantrl eqeqan12d subdid breq2d 3bitr4d simp3d
      zsubcld f1of1 f1fveq 3bitr3d sylbid ralrimivva dff13 sylanbrc cen eqeltri
      cvv f1oen fzofi ssfi f1finf1o f1oco f1oeq23 fvco3 fveq2d f1ocnvfv2 eqtr2d
      seqf1o eqeltrd mulid2d ax-1cn subdir zsubcl 3eqtr2d breqtrd mp2and mp3an3
      ex ) ADIUCUDZUEOZIPOQIPORZIVUEQUFOZUGUHZAIVUDSGQUIZUDZVUGSOZUGUHZIVUJULOZ
[encoded data, 6720 characters]
      VAWVDYUDWMVUEQIYJVUBWLXK $.
  $}

  ${
    $d f k x y A $.  $d f k x y N $.
    $( Euler's theorem, a generalization of Fermat's little theorem.  If ` A `
       and ` N ` are coprime, then ` A ^ phi ( N ) == 1 ` (mod ` N ` ).  This
       is Metamath 100 proof #10.  Also called Euler-Fermat theorem, see
       theorem 5.17 in [ApostolNT] p. 113.  (Contributed by Mario Carneiro,
       28-Feb-2014.) $)
    eulerth $p |- ( ( N e. NN /\ A e. ZZ /\ ( A gcd N ) = 1 ) ->
                    ( ( A ^ ( phi ` N ) ) mod N ) = ( 1 mod N ) ) $=
      ( vk vf vx vy wcel cgcd co c1 wceq cfv cc0 cmo chash cfn mp2an sylib cmul
      cv cn cz w3a cphi cfz cfzo crab wf1o cen wbr wex cn0 phicl nnnn0d hashfz1
      cexp syl dfphi2 eqtrd 3ad2ant1 wb fzfi fzofi ssrab2 ssfi hashen bren cmpt
      wss simpl oveq1 eqeq1d cbvrabv eqid simpr fveq2 oveq2d oveq1d eulerthlem2
      wa cbvmptv exlimddv ) BUAGZAUBGZABHIJKZUCZJBUDLZUEIZCTZBHIZJKZCMBUFIZUGZD
      TZUHZAWGUPIBNIJBNIKDWFWHWMUIUJZWODUKWFWHOLZWMOLZKZWPWCWDWSWEWCWQWGWRWCWGU
      LGWQWGKWCWGBUMUNWGUOUQCBURUSUTWHPGWMPGZWSWPVAJWGVBWLPGWMWLVIWTMBVCWKCWLVD
      WLWMVEQWHWMVFQRWHWMDVGRWFWOVTEFAWMWHWNCWHAWIWNLZSIZBNIZVHBWFWOVJWKFTZBHIZ
      JKCFWLWIXDKWJXEJWIXDBHVKVLVMWHVNWFWOVOCEWHXCAETZWNLZSIZBNIWIXFKZXBXHBNXIX
      AXGASWIXFWNVPVQVRWAVSWB $.
  $}

  $( Fermat's little theorem.  When ` P ` is prime, ` A ^ P == A ` (mod ` P ` )
     for any ` A ` , see theorem 5.19 in [ApostolNT] p. 114.  (Contributed by
     Mario Carneiro, 28-Feb-2014.) $)
  fermltl $p |- ( ( P e. Prime /\ A e. ZZ ) ->
                  ( ( A ^ P ) mod P ) = ( A mod P ) ) $=
    ( wcel cz cexp co cmo wceq cc0 sylan w3a simp2 3ad2ant1 nnnn0d nnrpd eqtr4d
    cn0 oveq1d c1 cmul cprime wa cdvds wbr cn prmnn dvdsval3 crp 0zd simp3 0mod
    wb syl modexp syl221anc 0expd 3expia sylbid wn cgcd coprm prmz gcdcom bitrd
    eqeq1d cphi cr phicld zexpcl syl2anc zred 1red eulerth syl3an1 modmul1 cmin
    cfv phiprm oveq2d cc zcnd expm1t mulid2d 3eqtr3d pm2.61d ) BUACZADCZUBZBAUC
    UDZABEFZBGFZABGFZHZWHWIWLIHZWMWFBUECZWGWIWNULBUFZBAUGJWFWGWNWMWFWGWNKZWKIBE
    FZBGFZWLWQWGIDCBQCBUHCZWLIBGFZHWKWSHWFWGWNLWQUIWQBWFWGWOWNWPMZNWQBXBOZWQWLI
    XAWFWGWNUJWQWTXAIHXCBUKUMPZAIBBUNUOWQWLXAWSXDWQWRIBGWQBXBUPRPPUQURWHWIUSZAB
    UTFZSHZWMWHXEBAUTFZSHXGBAVAWHXHXFSWFBDCWGXHXFHBVBBAVCJVEVDWFWGXGWMWFWGXGKZA
    BVFVQZEFZATFZBGFZSATFZBGFZWKWLXIXKVGCSVGCWGWTXKBGFSBGFHZXMXOHXIXKXIWGXJQCXK
    DCWFWGXGLZXIXJXIBWFWGWOXGWPMZVHNAXJVIVJVKXIVLXQXIBXROWFWOWGXGXPWPABVMVNXKSA
    BVOUOXIXLWJBGXIXLABSVPFZEFZATFZWJXIXKXTATXIXJXSAEWFWGXJXSHXGBVRMVSRXIAVTCWO
    WJYAHXIAXQWAZXRABWBVJPRXIXNABGXIAYBWCRWDUQURWE $.

  ${
    prmdiv.1 $e |- R = ( ( A ^ ( P - 2 ) ) mod P ) $.
    $( Show an explicit expression for the modular inverse of ` A mod P ` .
       (Contributed by Mario Carneiro, 24-Jan-2015.) $)
    prmdiv $p |- ( ( P e. Prime /\ A e. ZZ /\ -. P || A ) ->
      ( R e. ( 1 ... ( P - 1 ) ) /\ P || ( ( A x. R ) - 1 ) ) ) $=
      ( wcel cz cdvds wbr c1 cmin co cfz cmul cc0 wceq 3ad2ant1 c2 syl2anc zcnd
      cn0 cprime wn w3a caddc nprmdvds1 cphi cfv cexp cdiv cfl cgcd prmnn simp2
      cmo cn prmz gcdcom coprm biimp3a eqtrd eulerth syl3anc phiprm nnm1nn0 syl
      eqeltrd zexpcl 1zzd moddvds mpbid cuz prmuz2 uznn0sub zred nndivred flcld
      wb zmulcld dvdsmul1 wa wi 1z zsubcl sylancl dvds2sub mp2and subdid cr crp
      nnrpd modval syl5eq oveq2d 2m1e1 oveq2i syl6eqr nncnd 2cnd subsubd expp1d
      mulcomd 3eqtrd mul12d oveq12d 3eqtr4d oveq1d sub32d breqtrrd oveq2 breq2d
      1cnd syl5ibcom cneg mul01d df-neg dvdsnegb bitr4d sylibd mtod wo syl5eqel
      zmodfz nn0uz syl6eleq elfzp12 ord mpd 1e0p1 oveq1i syl6eleqr jca ) BUAEZA
      FEZBAGHUBZUCZCIBIJKZLKZEBACMKZIJKZGHZYOCNIUDKZYPLKZYQYOCNOZUBCUUBEZYOUUCB
      IGHZYLYMUUEUBYNBUEPYOUUCBANMKZIJKZGHZUUEYOYTUUCUUHYOBABUFUGZUHKZIJKZBAABQ
      JKZUHKZBUIKZUJUGZMKZMKZJKZYSGYOBUUKGHZBUUQGHZBUURGHZYOUUJBUNKIBUNKOZUUSYO
      BUOEZYMABUKKZIOUVBYLYMUVCYNBULPZYLYMYNUMZYOUVDBAUKKZIYOYMBFEZUVDUVGOUVFYL
      YMUVHYNBUPPZABUQRYLYMYNUVGIOBAURUSUTABVAVBYOUVCUUJFEZIFEZUVBUUSVQUVEYOYMU
      UITEUVJUVFYOUUIYPTYLYMUUIYPOYNBVCPZYOUVCYPTEUVEBVDVEZVFAUUIVGRZYOVHUUJIBV
      IVBVJYOUVHUUPFEUUTUVIYOAUUOUVFYOUUNYOUUMBYOUUMYOYMUULTEZUUMFEZUVFYOBQVKUG
      EZUVOYLYMUVQYNBVLPQBVMVEZAUULVGRZVNZUVEVOVPZVRZBUUPVSRYOUVHUUKFEZUUQFEUUS
      UUTVTUVAWAUVIYOUVJUVKUWCUVNWBUUJIWCWDYOBUUPUVIUWBVRZBUUKUUQWEVBWFYOYSUUJU
      UQJKZIJKUURYOYRUWEIJYOAUUMBUUOMKZJKZMKAUUMMKZAUWFMKZJKYRUWEYOAUUMUWFYOAUV
      FSZYOUUMUVSSZYOUWFYOBUUOUVIUWAVRSWGYOCUWGAMYOCUUMBUNKZUWGDYOUUMWHEBWIEUWL
      UWGOUVTYOBUVEWJUUMBWKRWLWMYOUUJUWHUUQUWIJYOUUJAUULIUDKZUHKUUMAMKUWHYOUUIU
      WMAUHYOUUIBQIJKZJKZUWMYOUUIYPUWOUVLUWNIBJWNWOWPYOBQIYOBUVEWQZYOWRYOXKZWSU
      TWMYOAUULUWJUVRWTYOUUMAUWKUWJXAXBYOBAUUOUWPUWJYOUUOUWASXCXDXEXFYOUUJUUQIY
      OUUJUVNSYOUUQUWDSUWQXGUTXHZUUCYSUUGBGUUCYRUUFIJCNAMXIXFXJXLYOUUHBIXMZGHZU
      UEYOUUGUWSBGYOUUGNIJKUWSYOUUFNIJYOAUWJXNXFIXOWPXJYOUVHUVKUUEUWTVQUVIWBBIX
      PWDXQXRXSYOUUCUUDYOCNYPLKZEZUUCUUDXTZYOCUWLUXADYOUVPUVCUWLUXAEUVSUVEUUMBY
      BRYAYOYPNVKUGZEUXBUXCVQYOYPTUXDUVMYCYDCNYPYEVEVJYFYGIUUAYPLYHYIYJUWRYK $.

    $( The modular inverse of ` A mod P ` is unique.  (Contributed by Mario
       Carneiro, 24-Jan-2015.) $)
    prmdiveq $p |- ( ( P e. Prime /\ A e. ZZ /\ -. P || A ) ->
     ( ( S e. ( 0 ... ( P - 1 ) ) /\ P || ( ( A x. S ) - 1 ) ) <-> S = R ) ) $=
      ( wcel cz cdvds wbr cc0 c1 cmin co cfz cmul wa wceq cmo ad2antrl zcnd w3a
      cprime wn cgcd simprr prmdiv adantr simprd simpl1 prmz syl simpl2 elfzelz
      wi zmulcld 1z zsubcl sylancl simpld dvds2sub syl3anc mp2and 1cnd nnncan2d
      cn0 elfznn0 nn0red recnd subdid eqtr4d breqtrd simpl3 coprm syl2anc mpbid
      wb zsubcld coprmdvds cn prmnn moddvds mpbird cr crp cle clt nnrpd elfzle1
      elfzle2 zltlem1 syl22anc c2 cexp cuz cfv prmuz2 uznn0sub 3syl zexpcl zred
      modid modabs2 oveq1i 3eqtr4g 3eqtr3d ex caddc 1e0p1 wss 0z fzp1ss eqsstri
      ax-mp sseli eleq1 syl5ibr oveq1d breq2d biimprd anim12d syl5com impbid
      oveq2 ) BUBFZAGFZBAHIUCZUAZDJBKLMZNMZFZBADOMZKLMZHIZPZDCQZYGYNYOYGYNPZDBR
      MZCBRMZDCYPYQYRQZBDCLMZHIZYPBAYTOMZHIZBAUDMKQZUUAYPBYLACOMZKLMZLMZUUBHYPY
      MBUUFHIZBUUGHIZYGYJYMUEYPCKYHNMZFZUUHYGUUKUUHPZYNABCEUFZUGZUHYPBGFZYLGFZU
      UFGFZYMUUHPUUIUNYPYDUUOYDYEYFYNUIZBUJUKZYPYKGFKGFZUUPYPADYDYEYFYNULZYJDGF
      ZYGYMDJYHUMSZUOZUPYKKUQURYPUUEGFUUTUUQYPACUVAYPUUKCGFZYPUUKUUHUUNUSCKYHUM
      UKZUOZUPUUEKUQURBYLUUFUTVAVBYPUUGYKUUELMUUBYPYKUUEKYPYKUVDTYPUUEUVGTYPVCV
      DYPADCYPAUVATYPDYPDYJDVEFYGYMDYHVFSVGZVHYPCUVFTVIVJVKYPYFUUDYDYEYFYNVLYPY
      DYEYFUUDVPUURUVABAVMVNVOYPUUOYEYTGFUUCUUDPUUAUNUUSUVAYPDCUVCUVFVQBAYTVRVA
      VBYPBVSFZUVBUVEYSUUAVPYPYDUVIUURBVTUKZUVCUVFDCBWAVAWBYPDWCFBWDFZJDWEIZDBW
      FIZYQDQUVHYPBUVJWGZYJUVLYGYMDJYHWHSYPUVMDYHWEIZYJUVOYGYMDJYHWISYPUVBUUOUV
      MUVOVPUVCUUSDBWJVNWBDBXAWKYPABWLLMZWMMZBRMZBRMZUVRYRCYPUVQWCFUVKUVSUVRQYP
      UVQYPYEUVPVEFZUVQGFUVAYPYDBWLWNWOFUVTUURBWPWLBWQWRAUVPWSVNWTUVNUVQBXBVNCU
      VRBREXCEXDXEXFYGUULYOYNUUMYOUUKYJUUHYMUUKYJYOCYIFUUJYICUUJJKXGMZYHNMZYIKU
      WAYHNXHXCJGFUWBYIXIXJJYHXKXMXLXNDCYIXOXPYOYMUUHYOYLUUFBHYOYKUUEKLDCAOYCXQ
      XRXSXTYAYB $.

    $( The (modular) inverse of the inverse of a number is itself.
       (Contributed by Mario Carneiro, 24-Jan-2015.) $)
    prmdivdiv $p |- ( ( P e. Prime /\ A e. ( 1 ... ( P - 1 ) ) ) ->
                      A = ( ( R ^ ( P - 2 ) ) mod P ) ) $=
      ( wcel c1 cmin co cfz wa cc0 cmul cdvds cz wn cn elfznn fzm1ndvds syl3anc
      wbr cprime c2 cexp cmo wceq caddc 1e0p1 oveq1i wss 0z ax-mp eqsstri simpr
      fzp1ss sseldi simpl adantl prmnn sylan prmdiv simprd nncnd simpld mulcomd
      nnzd syl oveq1d breqtrd wb elfzelz adantr syl2anc eqid prmdiveq mpbi2and
      ) BUAEZAFBFGHZIHZEZJZAKVQIHZEZBCALHZFGHZMTZACBUBGHUCHBUDHZUEZVTVRWAAVRKFU
      FHZVQIHZWAFWHVQIUGUHKNEWIWAUIUJKVQUNUKULVPVSUMUOVTBACLHZFGHZWDMVTCVREZBWK
      MTZVTVPANEBAMTOZWLWMJVPVSUPZVTAVSAPEVPAVQQUQZVEVPBPEZVSWNBURZBARUSABCDUTS
      ZVAVTWJWCFGVTACVTAWPVBVTCVTWLCPEVTWLWMWSVCZCVQQVFVBVDVGVHVTVPCNEZBCMTOZWB
      WEJWGVIWOVTWLXAWTCFVQVJVFVTWQWLXBVPWQVSWRVKWTBCRVLCBWFAWFVMVNSVO $.
  $}

  ${
    $d w x y M $.  $d w x z M $.  $d w x A $.  $d w x B $.  $d w x y N $.
    $d z N $.
    hashgcdlem.a $e |- A = { y e. ( 0 ..^ ( M / N ) ) |
        ( y gcd ( M / N ) ) = 1 } $.
    hashgcdlem.b $e |- B = { z e. ( 0 ..^ M ) | ( z gcd M ) = N } $.
    hashgcdlem.f $e |- F = ( x e. A |-> ( x x. N ) ) $.
    $( A correspondence between elements of specific GCD and relative primes in
       a smaller ring.  (Contributed by Stefan O'Rear, 12-Sep-2015.) $)
    hashgcdlem $p |- ( ( M e. NN /\ N e. NN /\ N || M ) ->
        F : A -1-1-onto-> B ) $=
      ( wcel wbr co cc0 cgcd c1 wceq wa adantr vw cn cdvds cmul cdiv cfzo oveq1
      w3a eqeq1d elrab2 cn0 elfzonn0 ad2antrl nnnn0 3ad2ant2 nn0mulcld elfzolt2
      cv clt simpl1 cr wb cz elfzoelz zred nnre 3ad2ant1 nngt0 ltmuldiv syl3anc
      jca mpbird elfzo0 syl3anbrc cc wne nnne0 divcan1d eqcomd oveq2d nndivdvds
      nncn biimp3a nnzd mulgcdr simprr oveq1d mulid2d eqtrd 3eqtrd sylanbrc cle
      sylan2b gcddvds syl2anc eqbrtrrd nnz dvdsval2 mpbid elfzofz elfznn0 nn0re
      simpld cfz nn0ge0 3syl divge0 elnn0z ltdiv1 simpl2 simpl3 gcddiv syl32anc
      dividd 3eqtr3d simplbi anim12i ad2antll eqeq2d syl5ibrcom divcan4d impbid
      zcnd sylan2 f1o2d ) GUBLZHUBLZHGUCMZUHZAUADEAURZHUDNZUAURZHUENZFKYJDLZYIY
      JOGHUENZUFNZLZYJYOPNZQRZSZYKELZBURZYOPNZQRZYSBYJYPDUUBYJRUUCYRQUUBYJYOPUG
      UIIUJZYIYTSZYKOGUFNZLZYKGPNZHRZUUAUUFYKUKLYFYKGUSMZUUHUUFYJHYQYJUKLYIYSYJ
      YOULUMYIHUKLZYTYGYFUULYHHUNUOTZUPYFYGYHYTUTUUFUUKYJYOUSMZYQUUNYIYSYJOYOUQ
      UMUUFYJVALGVALZHVALZOHUSMZSZUUKUUNVBUUFYJYQYJVCLZYIYSYJOYOVDZUMZVEYIUUOYT
      YFYGUUOYHGVFVGZTYIUURYTYGYFUURYHYGUUPUUQHVFHVHVKUOZTYJGHVIVJVLYKGVMVNUUFU
      UIYKYOHUDNZPNZYRHUDNZHUUFGUVDYKPUUFUVDGYIUVDGRYTYIGHYFYGGVOLYHGWBVGYGYFHV
      OLZYHHWBUOZYGYFHOVPZYHHVQUOZVRTVSVTUUFUUSYOVCLZUULUVEUVFRUVAYIUVKYTYIYOYF
      YGYHYOUBLZGHWAWCZWDTUUMYJYOHWEVJUUFUVFQHUDNZHUUFYRQHUDYIYQYSWFWGYIUVNHRYT
      YIHUVHWHTWIWJCURZGPNZHRZUUJCYKUUGEUVOYKRUVPUUIHUVOYKGPUGUIJUJWKWMYLELZYIY
      LUUGLZYLGPNZHRZSZYMDLZUVQUWACYLUUGEUVOYLRUVPUVTHUVOYLGPUGUIJUJZYIUWBSZYMY
      PLZYMYOPNZQRZUWCUWEYMUKLZUVLYMYOUSMZUWFUWEYMVCLZOYMWLMZUWIUWEHYLUCMZUWKUW
      EUVTHYLUCYIUVSUWAWFZUWEUVTYLUCMZUVTGUCMZUWEYLVCLZGVCLZUWOUWPSUVSUWQYIUWAY
      LOGVDZUMZUWEGYFYGYHUWBUTWDZYLGWNWOXCWPZUWEHVCLZUVIUWQUWMUWKVBYIUXCUWBYGYF
      UXCYHHWQUOTYIUVIUWBUVJTUWTHYLWRVJWSUWEYLVALZOYLWLMZSZUURUWLUWEYLOGXDNLZYL
      UKLZUXFUVSUXGYIUWAYLOGWTUMYLGXAUXHUXDUXEYLXBYLXEVKXFYIUURUWBUVCTZYLHXGWOY
      MXHWKYIUVLUWBUVMTUWEYLGUSMZUWJUVSUXJYIUWAYLOGUQUMUWEUXDUUOUURUXJUWJVBUWEY
      LUWTVEYIUUOUWBUVBTUXIYLGHXIVJWSYMYOVMVNUWEUVTHUENZHHUENZUWGQUWEUVTHHUEUWN
      WGUWEUWQUWRYGUWMYHUXKUWGRUWTUXAYFYGYHUWBXJUXBYFYGYHUWBXKYLGHXLXMYIUXLQRUW
      BYIHUVHUVJXNTXOUUDUWHBYMYPDUUBYMRUUCUWGQUUBYMYOPUGUIIUJWKWMYNUVRSYIYQUVSS
      ZYJYMRZYLYKRZVBYNYQUVRUVSYNYQYSUUEXPUVRUVSUWAUWDXPXQYIUXMSZUXNUXOUXPUXOUX
      NYLYMHUDNZRUXPUXQYLUXPYLHUXPYLUVSUWQYIYQUWSXRYCYIUVGUXMUVHTZYIUVIUXMUVJTZ
      VRVSUXNYKUXQYLYJYMHUDUGXSXTUXPUXNUXOYJYKHUENZRUXPUXTYJUXPYJHUXPYJYQUUSYIU
      VSUUTUMYCUXRUXSYAVSUXOYMUXTYJYLYKHUEUGXSXTYBYDYE $.
  $}

  ${
    $d x z M $.  $d x z N $.  $d y z M $.  $d y z N $.
    $( Number of initial positive integers with specified divisors.
       (Contributed by Stefan O'Rear, 12-Sep-2015.) $)
    hashgcdeq $p |- ( ( M e. NN /\ N e. NN ) -> ( # ` { x e. ( 0 ..^ M ) |
          ( x gcd M ) = N } ) = if ( N || M , ( phi ` ( M / N ) ) , 0 ) ) $=
      ( vy vz cdvds wbr cv cgcd co wceq cc0 cfzo chash cfv cn wcel wa eqid c0
      crab cdiv cphi cif eqeq2 nndivdvds biimpa dfphi2 syl cmul cmpt hashgcdlem
      c1 wf1o cen 3expa ovex rabex f1oen hasheni 3syl eqtr2d wn simprr elfzoelz
      wral ad2antrl nnz ad2antrr gcddvds syl2anc simprd eqbrtrrd con3d impancom
      cz expr ralrimiv rabeq0 sylibr fveq2d hash0 syl6eq ifbothda ) CBFGZAHZBIJ
      ZCKZALBMJZUAZNOZBCUBJZUCOZKWKLKWKWEWMLUDZKBPQZCPQZRZWMLWMWNWKUELWNWKUEWQW
      ERZWMDHWLIJUMKZDLWLMJZUAZNOZWKWRWLPQZWMXBKWQWEXCBCUFUGDWLUHUIWRXAWJEXAEHC
      UJJUKZUNZXAWJUOGXBWKKWOWPWEXEEDAXAWJXDBCXASWJSXDSULUPXAWJXDWSDWTLWLMUQURU
      SXAWJUTVAVBWQWEVCZRZWKTNOLXGWJTNXGWHVCZAWIVFWJTKXGXHAWIWQWFWIQZXFXHWQXIRW
      HWEWQXIWHWEWQXIWHRZRZWGCBFWQXIWHVDXKWGWFFGZWGBFGZXKWFVPQZBVPQZXLXMRXIXNWQ
      WHWFLBVEVGWOXOWPXJBVHVIWFBVJVKVLVMVQVNVOVRWHAWIVSVTWAWBWCWD $.

    $d d w x y z N $.
    $( The divisor sum identity of the totient function.  Theorem 2.2 in
       [ApostolNT] p. 26.  (Contributed by Stefan O'Rear, 12-Sep-2015.) $)
    phisum $p |- ( N e. NN -> sum_ d e. { x e. NN | x || N }
          ( phi ` d ) = N ) $=
      ( vy vz vw cn wcel cv cdvds wbr crab cfv co wceq cc0 chash cdiv wa cfn c1
      cphi csu cgcd cfzo ciun breq1 elrab cif hashgcdeq adantrr iftrue ad2antll
      eqtrd sylan2b sumeq2dv cfz fzfi dvdsssfz1 ssfi sylancr fzofi ssrab2 mp2an
      wss wral wdisj oveq1 eqeq1d simprbi rgen rgenw invdisj mp1i hashiun fveq2
      cmpt eqid dvdsflip oveq2 ovex fvmpt adantl elrabi phicld fsumf1o 3eqtr4rd
      a1i nncnd cz wn elfzoelz nnz adantr nnne0 neneqd intnand gcdn0cl syl21anc
      gcddvds syl2anc simprd sylanbrc risset eqcom rexbii bitri sylib ralrimiva
      wrex rabid2 sylibr iunrab syl6reqr fveq2d cn0 nnnn0 hashfzo0 syl ) BGHZAI
      ZBJKZAGLZCIZUBMZCUCZDYCEIZBUDNZDIZOZEPBUENZLZUFZQMZBXTYCYLQMZDUCYCBYIRNZU
      BMZDUCYNYFXTYCYOYQDYIYCHZXTYIGHZYIBJKZSZYOYQOYBYTAYIGYAYIBJUGUHXTUUASYOYT
      YQPUIZYQXTYSYOUUBOYTEBYIUJUKYTUUBYQOXTYSYTYQPULUMUNUOUPXTDYCYLXTUABUQNZTH
      YCUUCVEYCTHUABURBAUSUUCYCUTVAZYLTHZXTYRSYKTHYLYKVEUUEPBVBYJEYKVCYKYLUTVDW
      HFIZBUDNZYIOZFYLVFZDYCVFDYCYLVGXTUUIDYCUUHFYLUUFYLHUUFYKHUUHYJUUHEUUFYKYG
      UUFOYHUUGYIYGUUFBUDVHVIUHVJVKVLDFYCYLUUGVMVNVOXTYCYEYCYQCDEYCBYGRNZVQZYPY
      DYPUBVPUUDAEYCUUKBYCVRUUKVRZVSYRYIUUKMYPOXTEYIUUJYPYCUUKYGYIBRVTUULBYIRWA
      WBWCXTYDYCHZSZYEUUNYDUUMYDGHXTYBAYDGWDWCWEWIWFWGXTYNYKQMZBXTYMYKQXTYKYJDY
      CXJZEYKLZYMXTUUPEYKVFYKUUQOXTUUPEYKXTYGYKHZSZYHYCHZUUPUUSYHGHZYHBJKZUUTUU
      SYGWJHZBWJHZYGPOZBPOZSWKZUVAUURUVCXTYGPBWLWCZXTUVDUURBWMWNZXTUVGUURXTUVFU
      VEXTBPBWOWPWQWNYGBWRWSUUSYHYGJKZUVBUUSUVCUVDUVJUVBSUVHUVIYGBWTXAXBYBUVBAY
      HGYAYHBJUGUHXCUUTYIYHOZDYCXJUUPDYHYCXDUVKYJDYCYIYHXEXFXGXHXIUUPEYKXKXLYJD
      EYCYKXMXNXOXTBXPHUUOBOBXQBXRXSUNUN $.
  $}

  ${
    $d m n x N $.  $d n x A $.  $d n K $.
    $( Value of the order function.  This is a function of functions; the inner
       argument selects the base (i.e. mod ` N ` for some ` N ` , often prime)
       and the outer argument selects the integer or equivalence class (if you
       want to think about it that way) from the integers mod ` N ` .  In order
       to ensure the supremum is well-defined, we only define the expression
       when ` A ` and ` N ` are coprime.  (Contributed by Mario Carneiro,
       23-Feb-2014.)  (Revised by AV, 26-Sep-2020.) $)
    odzval $p |- ( ( N e. NN /\ A e. ZZ /\ ( A gcd N ) = 1 ) ->
                  ( ( odZ ` N ) ` A ) = inf ( { n e. NN |
                    N || ( ( A ^ n ) - 1 ) } , RR , < ) ) $=
      ( vx vm cn wcel cz cgcd co c1 wceq cfv cv cexp cmin cdvds crab cr clt wbr
      codz cinf cmpt oveq2 eqeq1d rabbidv oveq1 cbvrabv syl6eqr breq1 mpteq12dv
      wa infeq1d df-odz zex mptrabex fvmpt fveq1d elrab oveq1d breq2d eqid ltso
      infex sylbir sylan9eq 3impb ) CFGZAHGZACIJZKLZACUBMZMZCABNZOJZKPJZQUAZBFR
      ZSTUCZLVIVJVLUMZVNADVOCIJZKLZBHRZCDNZVOOJZKPJZQUAZBFRZSTUCZUDZMZVTVIAVMWK
      ECDWEENZIJZKLZDHRZWMWGQUAZBFRZSTUCZUDWKFUBWMCLZDWPWSWDWJWTWPWECIJZKLZDHRW
      DWTWOXBDHWTWNXAKWMCWEIUEUFUGWCXBBDHVOWELWBXAKVOWECIUHUFUIUJWTSWRWITWTWQWH
      BFWMCWGQUKUGUNULDBEUOWCDBHWJUPUQURUSWAAWDGWLVTLWCVLBAHVOALWBVKKVOACIUHUFU
      TDAWJVTWDWKWEALZSWIVSTXCWHVRBFXCWGVQCQXCWFVPKPWEAVOOUHVAVBUGUNWKVCSVSTVDV
      EURVFVGVH $.

    $( - Lemma for ~ odzcl , showing existence of a recurrent point for the
       exponential.  (Contributed by Mario Carneiro, 28-Feb-2014.)  (Proof
       shortened by AV, 26-Sep-2020.) $)
    odzcllem $p |- ( ( N e. NN /\ A e. ZZ /\ ( A gcd N ) = 1 ) ->
                    ( ( ( odZ ` N ) ` A ) e. NN /\
                      N || ( ( A ^ ( ( odZ ` N ) ` A ) ) - 1 ) ) ) $=
      ( vn cn wcel cz cgcd co c1 wceq cfv cexp cmin cdvds wbr cmo syl2anc oveq2
      oveq1d breq2d w3a codz cv crab wa clt cinf odzval cuz wss wne ssrab2 nnuz
      cr c0 sseqtri wrex cphi phicl 3ad2ant1 eulerth wb simp1 cn0 nnnn0d zexpcl
      simp2 1z moddvds mp3an3 mpbid rspcev rabn0 sylibr infssuzcl sylancr elrab
      eqeltrd sylib ) BDEZAFEZABGHIJZUAZABUBKKZBACUCZLHZIMHZNOZCDUDZEWDDEBAWDLH
      ZIMHZNOZUEWCWDWIUNUFUGZWIACBUHWCWIIUIKZUJWIUOUKZWMWIEWIDWNWHCDULUMUPWCWHC
      DUQZWOWCBURKZDEZBAWQLHZIMHZNOZWPVTWAWRWBBUSUTZWCWSBPHIBPHJZXAABVAWCVTWSFE
      ZXCXAVBZVTWAWBVCWCWAWQVDEXDVTWAWBVGWCWQXBVEAWQVFQVTXDIFEXEVHWSIBVIVJQVKWH
      XACWQDWEWQJZWGWTBNXFWFWSIMWEWQALRSTVLQWHCDVMVNWIIVOVPVRWHWLCWDDWEWDJZWGWK
      BNXGWFWJIMWEWDALRSTVQVS $.

    $( The order of a group element is an integer.  (Contributed by Mario
       Carneiro, 28-Feb-2014.) $)
    odzcl $p |- ( ( N e. NN /\ A e. ZZ /\ ( A gcd N ) = 1 ) ->
                 ( ( odZ ` N ) ` A ) e. NN ) $=
      ( cn wcel cz cgcd co c1 wceq w3a codz cfv cexp cmin cdvds odzcllem simpld
      wbr ) BCDAEDABFGHIJABKLLZCDBASMGHNGORABPQ $.

    $( Any element raised to the power of its order is ` 1 ` .  (Contributed by
       Mario Carneiro, 28-Feb-2014.) $)
    odzid $p |- ( ( N e. NN /\ A e. ZZ /\ ( A gcd N ) = 1 ) ->
                      N || ( ( A ^ ( ( odZ ` N ) ` A ) ) - 1 ) ) $=
      ( cn wcel cz cgcd co c1 wceq w3a codz cfv cexp cmin cdvds odzcllem simprd
      wbr ) BCDAEDABFGHIJABKLLZCDBASMGHNGORABPQ $.

    $( The only powers of ` A ` that are congruent to ` 1 ` are the multiples
       of the order of ` A ` .  (Contributed by Mario Carneiro, 28-Feb-2014.)
       (Proof shortened by AV, 26-Sep-2020.) $)
    odzdvds $p |- ( ( ( N e. NN /\ A e. ZZ /\ ( A gcd N ) = 1 ) /\ K e. NN0 )
      -> ( N || ( ( A ^ K ) - 1 ) <-> ( ( odZ ` N ) ` A ) || K ) ) $=
      ( vn cn wcel cz co c1 wceq cn0 cmo cexp cmin cdvds wbr cc0 syl2anc oveq1d
      cr cgcd w3a wa codz cfv wn wi cle clt crp nn0re adantl odzcl adantr nnrpd
      modlt nn0z zmodcld nn0red nnred ltnled mpbid crab cinf oveq2 breq2d elrab
      cv cuz wss ssrab2 nnuz sseqtri infssuzle mpan sylbir ancoms odzval breq1d
      syl5ibr mtod imnan sylibr wo elnn0 sylib ord syld simpl1 dvds0 syl simpl2
      nnzd zcnd exp0d 1m1e0 syl6eq breqtrrd syl5ibrcom impbid cdiv cfl nndivred
      cmul nnnn0d nn0ge0 wb nngt0d ge0div syl3anc nn0mulcld zexpcl zred expmuld
      1red 1zzd odzid moddvds mpbird modexp syl221anc flcld 1exp 3eqtrd modmul1
      flge0nn0 caddc expaddd modval oveq2d nn0cnd recnd pncan3d mulid2d 3eqtr3d
      eqtrd eqtr3d eqeq1d sylancom 3bitr3d dvdsval3 3bitr4d ) CEFZAGFZACUAHIJZU
      BZBKFZUCZCABACUDUEUEZLHZMHZINHZOPZUUJQJZCABMHZINHOPZUUIBOPZUUHUUMUUNUUHUU
      MUUJEFZUFZUUNUUHUUMUURUCZUFUUMUUSUGUUHUUTUUIUUJUHPZUUHUUJUUIUIPZUVAUFUUHB
      TFZUUIUJFZUVBUUGUVCUUFBUKULZUUHUUIUUFUUIEFZUUGACUMUNZUOZBUUIUPRUUHUUJUUIU
      UHUUJUUHBUUIUUGBGFZUUFBUQULZUVGURZUSUUHUUIUVGUTZVAVBUUTUVAUUHCADVHZMHZINH
      ZOPZDEVCZTUIVDZUUJUHPZUURUUMUVSUURUUMUCUUJUVQFZUVSUVPUUMDUUJEUVMUUJJZUVOU
      ULCOUWAUVNUUKINUVMUUJAMVESVFVGUVQIVIUEZVJUVTUVSUVQEUWBUVPDEVKVLVMUUJUVQIV
      NVOVPVQUUHUUIUVRUUJUHUUFUUIUVRJUUGADCVRUNVSVTWAUUMUURWBWCUUHUURUUNUUHUUJK
      FZUURUUNWDUVKUUJWEWFWGWHUUHUUMUUNCAQMHZINHZOPUUHCQUWEOUUHCGFCQOPUUHCUUCUU
      DUUEUUGWIZWMCWJWKUUHUWEIINHQUUHUWDIINUUHAUUHAUUCUUDUUEUUGWLZWNZWOSWPWQWRU
      UNUULUWECOUUNUUKUWDINUUJQAMVESVFWSWTUUHUUOCLHZICLHZJZUUKCLHZUWJJZUUPUUMUU
      HUWIUWLUWJUUHAUUIBUUIXAHZXBUEZXDHZMHZUUKXDHZCLHZIUUKXDHZCLHZUWIUWLUUHUWQT
      FITFUUKGFZCUJFZUWQCLHZUWJJUWSUXAJUUHUWQUUHUUDUWPKFUWQGFUWGUUHUUIUWOUUHUUI
      UVGXEZUUHUWNTFQUWNUHPZUWOKFZUUHBUUIUVEUVGXCZUUHQBUHPZUXFUUGUXIUUFBXFULUUH
      UVCUUITFQUUIUIPUXIUXFXGUVEUVLUUHUUIUVGXHBUUIXIXJVBUWNYFRZXKZAUWPXLRXMUUHX
      OUUHUUDUWCUXBUWGUVKAUUJXLRZUUHCUWFUOZUUHUXDAUUIMHZUWOMHZCLHZIUWOMHZCLHZUW
      JUUHUWQUXOCLUUHAUUIUWOUWHUXJUXEXNSUUHUXNGFZIGFZUXGUXCUXNCLHUWJJZUXPUXRJUU
      HUUDUUIKFUXSUWGUXEAUUIXLRZUUHXPZUXJUXMUUHUYACUXNINHOPZUUFUYDUUGACXQUNUUHU
      UCUXSUXTUYAUYDXGUWFUYBUYCUXNICXRXJXSUXNIUWOCXTYAUUHUXQICLUUHUWOGFUXQIJUUH
      UWNUXHYBUWOYCWKSYDUWQIUUKCYEYAUUHUWRUUOCLUUHAUWPUUJYGHZMHUWRUUOUUHAUWPUUJ
      UWHUVKUXKYHUUHUYEBAMUUHUYEUWPBUWPNHZYGHBUUHUUJUYFUWPYGUUHUVCUVDUUJUYFJUVE
      UVHBUUIYIRYJUUHUWPBUUHUWPUXKYKUUHBUVEYLYMYPYJYQSUUHUWTUUKCLUUHUUKUUHUUKUX
      LWNYNSYOYRUUHUUCUUOGFZUXTUWKUUPXGUWFUUFUUGUUDUYGUWGABXLYSUYCUUOICXRXJUUHU
      UCUXBUXTUWMUUMXGUWFUXLUYCUUKICXRXJYTUUHUVFUVIUUQUUNXGUVGUVJUUIBUUARUUB $.

    $( The order of any group element is a divisor of the Euler ` phi `
       function.  (Contributed by Mario Carneiro, 28-Feb-2014.) $)
    odzphi $p |- ( ( N e. NN /\ A e. ZZ /\ ( A gcd N ) = 1 ) ->
                  ( ( odZ ` N ) ` A ) || ( phi ` N ) ) $=
      ( cn wcel cz cgcd co c1 wceq w3a cphi cfv cexp cmin cdvds wbr codz cmo wb
      mpbid eulerth simp1 cn0 phicld nnnn0d zexpcl syl2anc 1zzd moddvds syl3anc
      simp2 odzdvds mpdan ) BCDZAEDZABFGHIZJZBABKLZMGZHNGOPZABQLLUROPZUQUSBRGHB
      RGIZUTABUAUQUNUSEDZHEDVBUTSUNUOUPUBZUQUOURUCDZVCUNUOUPUKUQURUQBVDUDUEZAUR
      UFUGUQUHUSHBUIUJTUQVEUTVASVFAURBULUMT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Arithmetic modulo a prime number
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( A prime number divides an integer minus 1 iff the integer modulo the prime
     number is 1.  (Contributed by Alexander van der Vekens, 17-May-2018.) $)
  modprm1div $p |- ( ( P e. Prime /\ A e. ZZ )
                     -> ( ( A mod P ) = 1 <-> P || ( A - 1 ) ) ) $=
    ( cprime wcel cz wa cmo co c1 wceq cmin cdvds wbr cr clt prmnn nnred prmgt1
    1mod adantr eqcomd syl2anc eqeq2d cn wb simpr 1zzd moddvds syl3anc bitrd )
    BCDZAEDZFZABGHZIJUNIBGHZJZBAIKHLMZUMIUOUNUKIUOJZULUKBNDZIBOMZURUKBBPZQBRUSU
    TFUOIBSUAUBTUCUMBUDDZULIEDUPUQUEUKVBULVATUKULUFUMUGAIBUHUIUJ $.

  $( If an integer minus 1 is divisible by a prime number, the integer itself
     is not divisible by this prime number.  (Contributed by Alexander van der
     Vekens, 30-Aug-2018.) $)
  m1dvdsndvds $p |- ( ( P e. Prime /\ A e. ZZ )
                      -> ( P || ( A - 1 ) -> -. P || A ) ) $=
    ( cprime wcel cz wa cmo co c1 wceq cc0 wn cmin cdvds wbr wi ax-1ne0 neii wb
    eqeq1 eqcoms mtbii modprm1div cn prmnn dvdsval3 sylan bicomd notbid 3imtr3d
    a1i ) BCDZAEDZFZABGHZIJZUOKJZLZBAIMHNOBANOZLUPURPUNUPIKJZUQIKQRUTUQSIUOIUOK
    TUAUBUKABUCUNUQUSUNUSUQULBUDDUMUSUQSBUEBAUFUGUHUIUJ $.

  ${
    modprminv.1 $e |- R = ( ( A ^ ( P - 2 ) ) mod P ) $.
    $( Show an explicit expression for the modular inverse of ` A mod P ` .
       This is an application of ~ prmdiv .  (Contributed by Alexander van der
       Vekens, 15-May-2018.) $)
    modprminv $p |- ( ( P e. Prime /\ A e. ZZ /\ -. P || A )
               -> ( R e. ( 1 ... ( P - 1 ) ) /\ ( ( A x. R ) mod P ) = 1 ) ) $=
      ( cprime wcel cz cdvds wbr wn w3a c1 cmin co cfz cmul cmo wceq wa sylan2
      prmdiv wb wi elfzelz zmulcl modprm1div expr 3adant3 pm5.32d mpbird ) BEFZ
      AGFZBAHIJZKZCLBLMNZONFZACPNZBQNLRZSUPBUQLMNHIZSABCDUAUNUPURUSUKULUPURUSUB
      ZUCUMUKULUPUTULUPSUKUQGFZUTUPULCGFVACLUOUDACUETUQBUFTUGUHUIUJ $.

    $( The modular inverse of ` A mod P ` is unique.  (Contributed by Alexander
       van der Vekens, 17-May-2018.) $)
    modprminveq $p |- ( ( P e. Prime /\ A e. ZZ /\ -. P || A )
                  -> ( ( S e. ( 0 ... ( P - 1 ) ) /\ ( ( A x. S ) mod P ) = 1 )
                       <-> S = R ) ) $=
      ( cprime wcel cz cdvds wbr wn w3a cc0 c1 cmin co cfz wceq wa sylan2 wb wi
      cmul cmo elfzelz zmulcl modprm1div expr 3adant3 pm5.32d prmdiveq bitrd )
      BFGZAHGZBAIJKZLZDMBNOPZQPGZADUCPZBUDPNRZSURBUSNOPIJZSDCRUPURUTVAUMUNURUTV
      AUAZUBUOUMUNURVBUNURSUMUSHGZVBURUNDHGVCDMUQUEADUFTUSBUGTUHUIUJABCDEUKUL
      $.
  $}

  $( Variant of Fermat's little theorem if ` A ` is not a multiple of ` P ` ,
     see theorem 5.18 in [ApostolNT] p. 113.  (Contributed by AV, 21-Aug-2020.)
     (Proof shortened by AV, 5-Sep-2020.) $)
  vfermltl $p |- ( ( P e. Prime /\ A e. ZZ /\ -. P || A )
                   -> ( ( A ^ ( P - 1 ) ) mod P ) = 1 ) $=
    ( cprime wcel cz cdvds wbr wn w3a c1 cmin co cexp cmo cphi wceq 3ad2ant1 wa
    cgcd syl cfv phiprm eqcomd oveq2d oveq1d cn prmnn simp2 prmz anim1i 3adant3
    ancomd gcdcom coprm biimp3a eqtrd eulerth syl3anc clt nnred prmgt1 jca 1mod
    cr 3eqtrd ) BCDZAEDZBAFGHZIZABJKLZMLZBNLABOUAZMLZBNLZJBNLZJVIVKVMBNVIVJVLAM
    VFVGVJVLPVHVFVLVJBUBUCQUDUEVIBUFDZVGABSLZJPVNVOPVFVGVPVHBUGZQVFVGVHUHVIVQBA
    SLZJVIVGBEDZRZVQVSPVFVGWAVHVFVGRVTVGVFVTVGBUIUJULUKABUMTVFVGVHVSJPBAUNUOUPA
    BUQURVIBVDDZJBUSGZRZVOJPVFVGWDVHVFWBWCVFBVRUTBVAVBQBVCTVE $.

  $( Alternate proof of ~ vfermltl , not using Euler's theorem.  (Contributed
     by AV, 21-Aug-2020.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  vfermltlALT $p |- ( ( P e. Prime /\ A e. ZZ /\ -. P || A )
                      -> ( ( A ^ ( P - 1 ) ) mod P ) = 1 ) $=
    ( wcel cz c1 cmin co cexp c2 cmul wceq oveq2d eqtrd 3ad2ant1 oveq1d 3adant3
    cmo cr wa adantl cprime cdvds wbr w3a caddc 2m1e1 a1i eqcomd prmz zcnd 2cnd
    wn subsubd cc zcn 3ad2ant2 cn0 prmm2nn0 expp1d crp anim1i ancomd zexpcl syl
    1cnd simp2 prmnn nnrpd modmulmod syl3anc zre adantr reexpcld modcld mulcomd
    zred recnd 3eqtr2d cfz eqid modprminv simprd ) BUACZADCZBAUBUCULZUDZABEFGZH
    GZBQGZAABIFGZHGZBQGZJGZBQGZEWFWIWKAJGZBQGZWLAJGZBQGZWNWFWHWOBQWFWHAWJEUEGZH
    GWOWFWGWSAHWCWDWGWSKWEWCWGBIEFGZFGWSWCEWTBFWCWTEWTEKWCUFUGUHLWCBIEWCBBUIUJW
    CUKWCVEUMMNLWFAWJWDWCAUNCZWEAUOZUPWCWDWJUQCZWEBURZNUSMOWFWKRCZWDBUTCZWRWPKW
    CWDXEWEWCWDSZWKXGWDXCSWKDCXGXCWDWCXCWDXDVAVBAWJVCVDVPPWCWDWEVFWCWDXFWEWCBBV
    GVHZNWKABVIVJWFWQWMBQWCWDWQWMKWEXGWLAXGWLXGWKBXGAWJWDARCWCAVKTWCXCWDXDVLVMW
    CXFWDXHVLVNVQWDXAWCXBTVOPOVRWFWLEWGVSGCWNEKABWLWLVTWAWBM $.

  $( If an integer minus 1 is divisible by a prime number, then the integer to
     the power of the prime number minus 2 is 1 modulo the prime number.
     (Contributed by Alexander van der Vekens, 30-Aug-2018.) $)
  powm2modprm $p |- ( ( P e. Prime /\ A e. ZZ ) -> ( P || ( A - 1 )
                  -> ( ( A ^ ( P - 2 ) ) mod P ) = 1 ) ) $=
    ( wcel cz wa c1 cmin co cdvds wbr cmo wceq cmul simpr adantr syl3anc oveq1d
    syl cr zmodcld cprime c2 cexp simpll m1dvdsndvds imp w3a cfz eqid modprminv
    wn eqcomd modprm1div biimpar crp zre ad2antlr prmm2nn0 anim2i ancoms zexpcl
    cn0 cn prmnn nn0zd nnrpd modmulmod nn0cnd mulid2d reexpcl syl2anr jca eqtrd
    modabs2 3eqtr3d eqtr2d ex ) BUACZADCZEZBAFGHIJZABUBGHZUCHZBKHZFLVTWAEZFAWDM
    HBKHZWDWEVRVSBAIJUKZFWFLZVRVSWAUDVTVSWAVRVSNOVTWAWGABUEUFVRVSWGUGWDFBFGHUHH
    CZWFFLZEZWHABWDWDUIUJWKWFFWIWJNULRPWEABKHZWDMHZBKHZFWDMHZBKHZWFWDWEWMWOBKWE
    WLFWDMVTWLFLWAABUMUNQQWEASCZWDDCBUOCZWNWFLVSWQVRWAAUPZUQWEWDWEWCBWEVSWBVBCZ
    EZWCDCZVTXAWAVSVRXAVRWTVSBURZUSUTZOAWBVAZRVTBVCCZWAVRXFVSBVDZOZOTVEVTWRWAVR
    WRVSVRBXGVFOZOAWDBVGPWEWPWDBKHZWDVTWPXJLWAVTWOWDBKVTWDVTWDVTWCBVTXAXBXDXERX
    HTVHVIQOWEWCSCZWREZXJWDLVTXLWAVTXKWRVSWQWTXKVRWSXCAWBVJVKXIVLOWCBVNRVMVOVPV
    Q $.

  ${
    $d N i s $.  $d P i s $.
    $( For any prime number and for any positive integer less than this prime
       number, there is a unique modular inverse of this positive integer.
       (Contributed by Alexander van der Vekens, 12-May-2018.) $)
    reumodprminv $p |- ( ( P e. Prime /\ N e. ( 1 ..^ P ) )
                   -> E! i e. ( 1 ... ( P - 1 ) ) ( ( N x. i ) mod P ) = 1 ) $=
      ( vs wcel c1 co wa cv cmul cmo wceq wi cmin cfz wral cz syl jca cc0 cdvds
      cprime cfzo weq wrex wreu c2 wbr wn simpl elfzoelz adantl cn prmnn adantr
      cexp prmz fzoval eleq2d biimpa fzm1ndvds w3a eqid modprminv simpld simprd
      cuz cfv wss 1eluzge0 fzss1 mp1i sseld 3ad2ant1 imdistani modprminveq expr
      eqcomd ralrimiva syl3anc oveq2 oveq1d eqeq1d eqeq1 imbi2d ralbidv anbi12d
      rspcev reu8 sylibr ) AUBEZCFAUCGZEZHZCBIZJGZAKGZFLZCDIZJGZAKGZFLZBDUDZMZD
      FAFNGZOGZPZHZBXFUEZWRBXFUFWNCAUGNGUPGAKGZXFEZCXJJGZAKGZFLZXBXJWSLZMZDXFPZ
      HZHZXIWNWKCQEZACUAUHUIZXSWKWMUJWMXTWKCFAUKULWNAUMEZCXFEZHYAWNYBYCWKYBWMAU
      NUOWKWMYCWKWLXFCWKAQEWLXFLAUQFAURRUSUTSACVARWKXTYAVBZXKXRYDXKXNCAXJXJVCZV
      DZVEYDXNXQYDXKXNYFVFYDXPDXFYDWSXFEZHYDWSTXEOGZEZHXPYDYGYIWKXTYGYIMYAWKXFY
      HWSFTVGVHEXFYHVIWKVJFTXEVKVLVMVNVOYDYIXBXOYDYIXBHZHWSXJYDYJWSXJLCAXJWSYEV
      PUTVRVQRVSSSVTXHXRBXJXFWOXJLZWRXNXGXQYKWQXMFYKWPXLAKWOXJCJWAWBWCYKXDXPDXF
      YKXCXOXBWOXJWSWDWEWFWGWHRWRXBBDXFXCWQXAFXCWPWTAKWOWSCJWAWBWCWIWJ $.
  $}

  ${
    $d I j r $.  $d N j r $.  $d P j r $.
    $( For two positive integers less than a given prime number there is always
       a nonnegative integer (less than the given prime number) so that the sum
       of one of the two positive integers and the other of the positive
       integers multiplied by the nonnegative integer is 0 ( modulo the given
       prime number).  (Contributed by Alexander van der Vekens,
       17-May-2018.) $)
    modprm0 $p |- ( ( P e. Prime /\ N e. ( 1 ..^ P ) /\ I e. ( 1 ..^ P ) )
                   -> E. j e. ( 0 ..^ P ) ( ( I + ( j x. N ) ) mod P ) = 0 ) $=
      ( vr wcel c1 co cmul caddc cmo cc0 wceq wa cmin cz 3ad2ant1 adantl oveq1d
      cr cprime cfzo w3a cv wrex wi cfz wreu reumodprminv reurex cn prmz adantr
      elfzelz elfzoelz 3ad2ant3 zmulcl syl2an zsubcld prmnn zmodfzo syl2anc crp
      zred nnred remulcl resubcld 3ad2ant2 nnrpd modaddmulmod syl31anc cc nncnd
      zcnd mulcl subdird oveq2d mulcom mulmod0 syl2anr 3adant3 mul32d modmulmod
      eqtrd syl3anc eqtr4d oveq12d remulcld modsubmodmod eqeq1d biimpd impancom
      imp mulid2d cle wbr clt anim12ci cuz cfv elfzo2 eluz2 0red 1red 3jca 0le1
      zre a1i anim1i letr sylc 3adant1 sylbi simp3 jca 3adant2 modid modadd2mod
      syl 3eqtr3d 0cnd pncan3d 0mod 3eqtrd oveq1 rspcev rexlimiva 3syl pm2.43i
      ex ) AUAFZDGAUBHZFZCYLFZUCZCBUDZDIHZJHZAKHZLMZBLAUBHZUEZYKYMYOUUBUFZYNYKY
      MNZDEUDZIHZAKHZGMZEGAGOHZUGHZUHUUHEUUJUEUUCAEDUIUUHEUUJUJUUHUUCEUUJUUEUUJ
      FZUUHNZYOUUBUULYONZAUUECIHZOHZAKHZUUAFZCUUPDIHZJHZAKHZLMZUUBUUMUUOPFAUKFZ
      UUQUUMAUUNYOAPFZUULYKYMUVCYNAULQRUULUUEPFZCPFZUUNPFYOUUKUVDUUHUUEGUUIUNZU
      MYNYKUVEYMCGAUOZUPZUUECUQURUSYOUVBUULYKYMUVBYNAUTZQRUUOAVAVBUUMUUTCUUODIH
      ZJHZAKHZCADIHZUUNDIHZOHZJHZAKHZLUUMCTFZUUOTFDPFZAVCFZUUTUVLMYOUVRUULYNYKU
      VRYMYNCUVGVDZUPZRZUUMAUUNYOATFZUULYKYMUWDYNYKAUVIVEZQRUULUUETFZUVRUUNTFYO
      UUKUWFUUHUUKUUEUVFVDUMZUWBUUECVFURZVGYOUVSUULYMYKUVSYNDGAUOZVHRYOUVTUULYK
      YMUVTYNYKAUVIVIZQRZCUUODAVJVKUUMUVKUVPAKUUMUVJUVOCJUUMAUUNDYOAVLFZUULYKYM
      UWLYNYKAUVIVMZQRUULUUEVLFZCVLFZUUNVLFYOUUKUWNUUHUUKUUEUVFVNZUMZYNYKUWOYMY
      NCUVGVNZUPZUUECVOURYODVLFZUULYMYKUWTYNYMDUWIVNZVHZRZVPVQSUUMCUVOAKHZJHZAK
      HZCLCOHZAKHZJHZAKHZUVQLUUMUXEUXIAKUUMUXDUXHCJUUMUVMAKHZUVNAKHZOHZAKHZLUUE
      DIHZAKHZCIHZAKHZOHZAKHZUXDUXHUUMUXMUXSAKUUMUXKLUXLUXROYOUXKLMZUULYKYMUYAY
      NUUDUXKDAIHZAKHZLUUDUVMUYBAKYKUWLUWTUVMUYBMYMUWMUXAADVRURSYMUVSUVTUYCLMYK
      UWIUWJDAVSVTWDWARUUMUXLUXOCIHZAKHZUXRUUMUVNUYDAKUUMUUECDUULUWNYOUWQUMYOUW
      OUULUWSRZUXCWBSUUMUXOTFZUVEUVTUXRUYEMUULUWFDTFZUYGYOUWGYMYKUYHYNYMDUWIVDZ
      VHZUUEDVFURYOUVEUULUVHRUWKUXOCAWCWEWFWGSUUMUVMTFZUVNTFUVTUXNUXDMYOUYKUULY
      KYMUYKYNYKUWDUYHUYKYMUWEUYIADVFURWARZUUMUUNDUWHYOUYHUULUYJRWHZUWKUVMUVNAW
      IWEUUMUXTLGCIHZAKHZOHZAKHUXHUUMUXSUYPAKUUMUXRUYOLOUUMUXQUYNAKUUMUXPGCIUUL
      YOUXPGMZUUKYOUUHUYQUUKYONZUUHUYQUYRUUGUXPGUYRUUFUXOAKYOUWTUWNUUFUXOMUUKUX
      BUWPDUUEVRVTSWJWKWLWMSSVQSUUMUYPUXGAKUUMUYOCLOUUMUYOCAKHZCUUMUYNCAKUUMCUY
      FWNSUUMUVRUVTNZLCWOWPZCAWQWPZNZNZUYSCMYOVUDUULYKYNVUDYMYKYNNZUYTVUCYKUVTY
      NUVRUWJUWAWRYNVUCYKYNCGWSWTFZUVCVUBUCZVUCCGAXAVUGVUAVUBVUFUVCVUAVUBVUFGPF
      ZUVEGCWOWPZUCVUAGCXBUVEVUIVUAVUHUVEVUINLTFZGTFZUVRUCZLGWOWPZVUINVUAUVEVUL
      VUIUVEVUJVUKUVRUVEXCUVEXDCXGXEUMUVEVUMVUIVUMUVEXFXHXILGCXJXKXLXMQVUFUVCVU
      BXNXOXMRXOXPRCAXQXSWDVQSWDXTVQSUUMUVOTFUVRUVTUXFUVQMUUMUVMUVNUYLUYMVGUWCU
      WKUVOCAXRWEUUMUXJCUXGJHZAKHZLAKHZLUUMUXGTFZUVRUVTUCZUXJVUOMYOVURUULYKYNVU
      RYMVUEVUQUVRUVTYNVUQYKYNLCYNXCUWAVGRYNUVRYKUWARYKUVTYNUWJUMXEXPRUXGCAXRXS
      UUMVUNLAKYOVUNLMZUULYNYKVUSYMYNCLUWRYNYAYBUPRSYOVUPLMZUULYKYMVUTYNYKUVTVU
      TUWJAYCXSQRYDXTYDYTUVABUUPUUAYPUUPMZYSUUTLVVAYRUUSAKVVAYQUURCJYPUUPDIYEVQ
      SWJYFVBYJYGYHWAYI $.
  $}

  ${
    $d I j $.  $d N j $.  $d P j $.
    $( For a positive integer and a nonnegative integer both less than a given
       prime number there is always a second nonnegative integer (less than the
       given prime number) so that the sum of this second nonnegative integer
       multiplied with the positive integer and the first nonnegative integer
       is 0 ( modulo the given prime number).  (Contributed by Alexander van
       der Vekens, 8-Nov-2018.) $)
    nnnn0modprm0 $p |- ( ( P e. Prime /\ N e. ( 1 ..^ P ) /\ I e. ( 0 ..^ P ) )
                   -> E. j e. ( 0 ..^ P ) ( ( I + ( j x. N ) ) mod P ) = 0 ) $=
      ( wcel c1 cfzo co cc0 cmul caddc wceq wrex wa adantr oveq2d adantl oveq1d
      cmo syl cprime cv csn cn prmnn fzo0sn0fzo1 eleq2d wo wi elun elsni lbfzo0
      cun sylibr cz cc elfzoelz zcn mul02 00id syl6eq 3syl crp nnrp eqtrd oveq1
      0mod eqeq1d rspcev syl2anc wb rexbidv mpbird simpl simprr modprm0 syl3anc
      ex jaoi sylbi com12 sylbid 3impia ) AUAEZDFAGHZEZCIAGHZEZCBUBZDJHZKHZASHZ
      ILZBWGMZWDWFNZWHCIUCZWEUMZEZWNWOWGWQCWOAUDEZWGWQLWDWSWFAUEZOAUFTUGWRWOWNW
      RCWPEZCWEEZUHWOWNUIZCWPWEUJXAXCXBXACILZXCCIUKXDWOWNXDWONZWNIWJKHZASHZILZB
      WGMZWOXIXDWOIWGEZIIDJHZKHZASHZILZXIWDXJWFWDWSXJWTAULUNOWOXMIASHZIWOXLIASW
      FXLILZWDWFDUOEDUPEZXPDFAUQDURXQXLIIKHIXQXKIIKDUSPUTVAVBQRWDXOILZWFWDWSAVC
      EXRWTAVDAVGVBOVEXHXNBIWGWIILZXGXMIXSXFXLASXSWJXKIKWIIDJVFPRVHVIVJQXEWMXHB
      WGXDWMXHVKWOXDWLXGIXDWKXFASCIWJKVFRVHOVLVMVRTXBWOWNXBWONWDWFXBWNWOWDXBWDW
      FVNQXBWDWFVOXBWOVNABCDVPVQVRVSVTWAWBWC $.

    $( For an integer not being 0 modulo a given prime number and a nonnegative
       integer less than the prime number, there is always a second nonnegative
       integer (less than the given prime number) so that the sum of this
       second nonnegative integer multiplied with the integer and the first
       nonnegative integer is 0 ( modulo the given prime number).  (Contributed
       by Alexander van der Vekens, 10-Nov-2018.) $)
    modprmn0modprm0 $p |- ( ( P e. Prime /\ N e. ZZ /\ ( N mod P ) =/= 0 )
            -> ( I e. ( 0 ..^ P )
                 -> E. j e. ( 0 ..^ P ) ( ( I + ( j x. N ) ) mod P ) = 0 ) ) $=
      ( wcel cz cmo co cfzo cmul caddc wceq wrex wa 3adant3 wi adantr cc adantl
      cc0 cprime wne w3a cv c1 simpl1 cn prmnn zmodfzo sylan2 ancoms fzo1fzo0n0
      simplbi2com 3ad2ant3 mpd nnnn0modprm0 syl3anc elfzoelz zcnd anim1i ancomd
      simpr cn0 zmodcl nn0cn 3syl mulcom syl2anr oveq2d oveq1d cr zred 3ad2ant2
      crp zre nnrpd 3ad2ant1 modaddmulmod syl31anc zcn mulcomd 3eqtrrd rexbidva
      ex imp eqeq1d mpbird ) AUAEZDFEZDAGHZTUBZUCZCTAIHZEZCBUDZDJHZKHZAGHZTLZBW
      MMZWLWNNZWTCWOWJJHZKHZAGHZTLZBWMMZXAWHWJUEAIHEZWNXFWHWIWKWNUFWLXGWNWLWJWM
      EZXGWHWIXHWKWIWHXHWHWIAUGEZXHAUHZDAUIUJUKOWKWHXHXGPWIXGXHWKWJAULUMUNUOQWL
      WNVBABCWJUPUQXAWSXEBWMXAWOWMEZNZWRXDTXLXDCWJWOJHZKHZAGHZCDWOJHZKHZAGHZWRX
      LXCXNAGXLXBXMCKXKWOREZWJREZXBXMLXAXKWOWOTAURZUSZWLXTWNWHWIXTWKWHWINZWIXIN
      WJVCEXTYCXIWIWHXIWIXJUTVADAVDWJVEVFOQWOWJVGVHVIVJXLCVKEZDVKEZWOFEZAVNEZXO
      XRLXAYDXKWNYDWLWNCCTAURVLSQXAYEXKWLYEWNWIWHYEWKDVOVMQQXKYFXAYASXAYGXKWLYG
      WNWHWIYGWKWHAXJVPVQQQCDWOAVRVSXLXQWQAGXLXPWPCKXAXKXPWPLZWLXKYHPZWNWIWHYIW
      KWIXKYHWIXKNDWOWIDREXKDVTQXKXSWIYBSWAWDVMQWEVIVJWBWFWCWGWD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Pythagorean Triples
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( If three numbers are coprime, and the square of one is the product of the
     other two, then there is a formula for the other two in terms of ` gcd `
     and square.  (Contributed by Scott Fenton, 2-Apr-2014.)  (Revised by Mario
     Carneiro, 19-Apr-2014.) $)
  coprimeprodsq $p |- ( ( ( A e. NN0 /\ B e. ZZ /\ C e. NN0 ) /\
    ( ( A gcd B ) gcd C ) = 1 ) -> ( ( C ^ 2 ) = ( A x. B ) ->
      A = ( ( A gcd C ) ^ 2 ) ) ) $=
    ( cn0 wcel cz w3a cgcd co c1 wceq cmul 3ad2ant1 nn0cnd nn0zd mulgcd syl3anc
    3eqtr3d oveq2d gcdass c2 cexp nn0z gcdcl syl2an 3adant2 sqvald simp13 nn0cn
    cc mulcomd simpl3 eqeq1d biimp3a oveq12d simp11 simp12 mulgcdr sylan ancoms
    wa 3adant1 cfv 3ad2ant3 gcdid syl oveq1d simp2 gcdabs1 syl2anc eqtrd gcdcom
    cabs 3eqtr4d biimpar 3adant3 mulid1d 3eqtrrd 3expia ) ADEZBFEZCDEZGZABHICHI
    ZJKZCUAUBIZABLIZKZAACHIZUAUBIZKWCWEWHGZWJWIWILIZAWICBHIZHIZLIZAWKWIWKWIWCWE
    WIDEZWHVTWBWPWAVTAFEZCFEZWPWBAUCZCUCZACUDUEUFMZNUGWKAWILIZCWILIZHIZXBAWMLIZ
    HIZWLWOWKXCXEXBHWKCALIZCCLIZHIZACLIZWGHIZXCXEWKXGXJXHWGHWKCAWKCVTWAWBWEWHUH
    ZNWCWEAUJEZWHVTWAXMWBAUIMMZUKWCWEWHXHWGKWCWEVAZWFXHWGXOCXOCVTWAWBWEULNUGUMU
    NUOWKWBWQWRXIXCKXLWKAVTWAWBWEWHUPZOZWKCXLOZCACPQWKVTWRWAXKXEKXPXRVTWAWBWEWH
    UQACBPQRSWKWQWRWPXDWLKXQXRXAACWIURQWKVTWIFEWMFEZXFWOKXPWKWIXAOWKWMWCWEWMDEZ
    WHWAWBXTVTWBWAXTWBWRWAXTWTCBUDUSUTVBZMOAWIWMPQRWKWOAJLIZAWCWEWOYBKWHXOWNJAL
    WCWNJKWEWCWNWDJWCACWMHIZHIZABCHIZHIZWNWDWCYCYEAHWCCCHIZBHIZWMYCYEWCYHCVMVCZ
    BHIZWMWCYGYIBHWCWRYGYIKWBVTWRWAWTVDZCVEVFVGWCWRWAYJWMKYKVTWAWBVHZBCVIVJVKWC
    WRWRWAYHYCKYKYKYLBCCTQWCWRWAWMYEKYKYLCBVLVJRSWCWQWRXSWNYDKVTWAWQWBWSMZYKWCW
    MYAOWMCATQWCWQWAWRWDYFKYMYLYKCBATQVNUMVOSVPWKAXNVQVKVRVS $.

  $( If three numbers are coprime, and the square of one is the product of the
     other two, then there is a formula for the other two in terms of ` gcd `
     and square.  (Contributed by Scott Fenton, 17-Apr-2014.)  (Revised by
     Mario Carneiro, 19-Apr-2014.) $)
  coprimeprodsq2 $p |- ( ( ( A e. ZZ /\ B e. NN0 /\ C e. NN0 ) /\
    ( ( A gcd B ) gcd C ) = 1 ) -> ( ( C ^ 2 ) = ( A x. B ) ->
      B = ( ( B gcd C ) ^ 2 ) ) ) $=
    ( cz wcel cn0 w3a cgcd co c1 wceq wa c2 cexp cmul zcn nn0cn mulcom 3adant3
    cc syl2an adantr eqeq2d wi simpl2 simpl1 simpl3 gcdcom oveq1d eqeq1d sylan2
    wb nn0z biimpa coprimeprodsq syl31anc sylbid ) ADEZBFEZCFEZGZABHIZCHIZJKZLZ
    CMNIZABOIZKVFBAOIZKZBBCHIMNIKZVEVGVHVFVAVGVHKZVDURUSVKUTURATEBTEVKUSAPBQABR
    UASUBUCVEUSURUTBAHIZCHIZJKZVIVJUDURUSUTVDUEURUSUTVDUFURUSUTVDUGVAVDVNURUSVD
    VNULZUTUSURBDEZVOBUMURVPLZVCVMJVQVBVLCHABUHUIUJUKSUNBACUOUPUQ $.

  $( A prime not equal to ` 2 ` is odd.  (Contributed by Mario Carneiro,
     4-Feb-2015.) $)
  oddprm $p |- ( N e. ( Prime \ { 2 } ) -> ( ( N - 1 ) / 2 ) e. NN ) $=
    ( cprime c2 wcel c1 co cz cc0 clt cn cdvds wn wb 2z wa mpanr12 syl2anc 3syl
    wbr cr csn cdif cmin cdiv eldifi prmz syl wceq eldifsni necomd cuz cfv uzid
    neneqd ax-mp dvdsprm sylancr mtbird n2dvds1 omoe cn0 prmnn nnm1nn0 nn0z wne
    2ne0 dvdsval2 mp3an12 mpbid prmuz2 uz2m1nn nnre nngt0 2re 2pos divgt0 elnnz
    1z 4syl sylanbrc ) ABCUAZUBDZAEUCFZCUDFZGDZHWDISZWDJDWBCWCKSZWEWBAGDZCAKSZL
    ZWGWBABDZWHABWAUEZAUFUGWBWICAUHZWBCAWBACABCUIUJUNWBCCUKULZDZWKWIWMMCGDZWONC
    UMUOWLACUPUQURWHWJOEGDCEKSLWGVRUSAEUTPQWBWCVADZWCGDZWGWEMZWBWKAJDWQWLAVBAVC
    RWCVDWPCHVEWRWSNVFCWCVGVHRVIWBWKAWNDWCJDZWFWLAVJAVKWTWCTDZHWCISZWFWCVLWCVMX
    AXBOCTDHCISWFVNVOWCCVPPQVSWDVQVT $.

  $( A prime not equal to ` 2 ` is an odd positive integer.  (Contributed by
     AV, 28-Jun-2021.) $)
  nnoddn2prm $p |- ( N e. ( Prime \ { 2 } ) -> ( N e. NN /\ -. 2 || N ) ) $=
    ( cprime c2 csn cdif wcel cn cdvds wbr wn eldifi prmnn syl c1 cmin co wi cz
    cdiv nnz oddprm wb oddm1d2 syl5ibrcom jcai ) ABCDZEFZAGFZCAHIJZUGABFUHABUFK
    ALMUGANOPCSPZGFZUHUIQAUAUKUIUHUJRFZUJTUHARFUIULUBATAUCMUDMUE $.

  $( A prime not equal to ` 2 ` is odd.  (Contributed by AV, 28-Jun-2021.) $)
  oddn2prm $p |- ( N e. ( Prime \ { 2 } ) -> -. 2 || N ) $=
    ( cprime c2 csn cdif wcel cn cdvds wbr wn nnoddn2prm simprd ) ABCDEFAGFCAHI
    JAKL $.

  $( A number is a prime number not equal to ` 2 ` iff it is an odd prime
     number.  Conversion theorem for two representations of odd primes.
     (Contributed by AV, 14-Jul-2021.) $)
  nnoddn2prmb $p |- ( N e. ( Prime \ { 2 } )
                      <-> ( N e. Prime /\ -. 2 || N ) ) $=
    ( cprime c2 csn cdif wcel cdvds wbr wn wa eldifi oddn2prm jca simpl wceq wi
    wne z2even breq2 mpbiri a1i con3dimp neqned nelsn syl eldifd impbii ) ABCDZ
    EFZABFZCAGHZIZJZUIUJULABUHKALMUMABUHUJULNUMACQAUHFIUMACUJACOZUKUNUKPUJUNUKC
    CGHRACCGSTUAUBUCACUDUEUFUG $.

  $( A prime less than 5 is either 2 or 3.  (Contributed by AV, 5-Jul-2021.) $)
  prm23lt5 $p |- ( ( P e. Prime /\ P < 5 ) -> ( P = 2 \/ P = 3 ) ) $=
    ( cprime wcel c5 clt wbr cc0 c4 co c2 wceq c3 wo cn0 adantr c1 cz syl5bi wi
    com12 wa cfz cle prmnn nnnn0d 4nn0 a1i caddc df-5 breq2i wb prmz 4z zleltp1
    sylancl biimprd imp elfz2nn0 syl3anbrc ctp cpr cun fz0to4untppr eleq2i elun
    w3o eltpi cn wne nnne0 eqneqall 3syl eleq1 1nprm pm2.21i syl6bi orc a1d syl
    3jaoi elpri olc 4nprm jaoi sylbi mpd ) ABCZADEFZUAZAGHUBIZCZAJKZALKZMZWIANC
    ZHNCZAHUCFZWKWGWOWHWGAAUDZUEOWPWIUFUGWGWHWQWHAHPUHIZEFZWGWQDWSAEUIUJWGWQWTW
    GAQCHQCWQWTUKAULUMAHUNUOUPRUQAHURUSWKAGPJUTZLHVAZVBZCZWIWNWJXCAVCVDWGXDWNSW
    HXDWGWNXDAXACZAXBCZMWGWNSZAXAXBVEXEXGXFXEAGKZAPKZWLVFXGAGPJVGXHXGXIWLWGXHWN
    WGAVHCAGVIZXHWNSWRAVJXHXJWNWNAGVKTVLTXIWGPBCZWNAPBVMXKWNVNVOVPWLWNWGWLWMVQV
    RVTVSXFWMAHKZMXGALHWAWMXGXLWMWNWGWMWLWBVRXLWGHBCZWNAHBVMXMWNWCVOVPWDVSWDWET
    ORWF $.

  $( A prime is either 2 or 3 or greater than or equal to 5.  (Contributed by
     AV, 5-Jul-2021.) $)
  prm23ge5 $p |- ( P e. Prime -> ( P = 2 \/ P = 3 \/ P e. ( ZZ>= ` 5 ) ) ) $=
    ( c2 wceq c3 c5 cuz cfv wcel w3o cprime wi ax-1 wn w3a 3ioran wa wbr pm2.24
    cz sylbi cle 3ianor eluz2 xchnxbir 5nn nnzi pm2.24i prmz syl11 a1d clt zred
    cr 5re a1i ltnled wo prm23lt5 ioran syl5bir syl ex com3l 3jaoi com12 3impia
    sylbird pm2.61i ) ABCZADCZAEFGHZIZAJHZVLKZVLVMLVLMVIMZVJMZVKMZNVNVIVJVKOVOV
    PVQVNVQVOVPPZVNVQESHZMZASHZMZEAUAQZMZIZVRVNKZVSWAWCNWEVKVSWAWCUBEAUCUDVTWFW
    BWDVSWFEUEUFUGWBVNVRWAWBVLVMWAVLRAUHZUIUJVMWDVRVLVMWDAEUKQZVRVLKZVMAEVMAWGU
    LEUMHVMUNUOUPVMWHWIVMWHPVIVJUQZWIAURVRWJMWJVLVIVJUSWJVLRUTVAVBVGVCVDTVEVFTV
    H $.

  ${
    $d A n m k $.  $d B n m k $.  $d C n m k $.
    $( Lemma for ~ pythagtrip .  Prove a weaker version of one direction of the
       theorem.  (Contributed by Scott Fenton, 28-Mar-2014.)  (Revised by Mario
       Carneiro, 19-Apr-2014.) $)
    pythagtriplem1 $p |- (
       E. n e. NN E. m e. NN E. k e. NN
       ( A = ( k x. ( ( m ^ 2 ) - ( n ^ 2 ) ) ) /\
         B = ( k x. ( 2 x. ( m x. n ) ) ) /\
         C = ( k x. ( ( m ^ 2 ) + ( n ^ 2 ) ) ) ) ->
        ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) ) $=
      ( c2 cexp co cmin cmul wceq caddc cn wcel cc sqcld 2cn mulcl c4 cv w3a wa
      wrex wi nncn adantl syl2anr sylancr subcld adantr ancoms add32d subadd23d
      sqcl sqmul sq2 a1i oveq12d eqtrd oveq1d 4cn 2p2e4 subaddrii oveq1i subdir
      mp3an12 syl5reqr oveq2d binom2sub 3eqtr4d 3adant3 simp3 3ad2ant2 3ad2ant1
      syl binom2 sqmuld 3ad2ant3 adddid eqtr4d addcld syl3an eqeq12d syl5ibrcom
      oveq1 oveqan12d 3expa rexlimdva rexlimivv ) ADUAZEUAZGHIZFUAZGHIZJIZKIZLZ
      BWKGWLWNKIZKIZKIZLZCWKWMWOMIZKIZLZUBZDNUDAGHIZBGHIZMIZCGHIZLZFENNWNNOZWLN
      OZUCXFXKDNXLXMWKNOZXFXKUEXLXMXNUBXKXFWQGHIZXAGHIZMIZXDGHIZLZXLWNPOZXMWLPO
      ZXNWKPOZXSWNUFWLUFWKUFXTYAYBUBZWKGHIZWPGHIZWTGHIZMIZKIZYDXCGHIZKIXQXRYCYG
      YIYDKXTYAYGYILYBXTYAUCZWMGHIZGWMWOKIZKIZJIZWOGHIZMIZYFMIZYKYMMIZYOMIZYGYI
      YJYQYNYFMIZYOMIYSYJYNYOYFYJYKYMYJWMYAWMPOZXTWLUOZUGQZYJGPOZYLPOZYMPORYAUU
      AWOPOZUUEXTUUBWNUOZWMWOSUHZGYLSUIZUJYJWOXTUUFYAUUGUKQYJWTYJUUDWSPOZWTPOZR
      YAXTUUJWLWNSULZGWSSZUIQZUMYJYTYRYOMYJYTYKYFYMJIZMIYRYJYKYMYFUUCUUIUUNUNYJ
      UUOYMYKMYJUUOTYLKIZYMJIZYMYJYFUUPYMJYJYFGGHIZWSGHIZKIZUUPYJUUDUUJYFUUTLRU
      ULGWSUPUIYJUURTUUSYLKUURTLYJUQURYAXTUUSYLLWLWNUPULUSUTVAYJYMTGJIZYLKIZUUQ
      UVAGYLKTGGVBRRVCVDVEYJUUEUVBUUQLZUUHTPOUUDUUEUVCVBRTGYLVFVGVPVHUTVIUTVAUT
      YJYEYPYFMYAUUAUUFYEYPLXTUUBUUGWMWOVJUHVAYAUUAUUFYIYSLXTUUBUUGWMWOVQUHVKVL
      VIYCXQYDYEKIZYDYFKIZMIYHYCXOUVDXPUVEMYCWKWPXTYAYBVMZYCWMWOYAXTUUAYBUUBVNZ
      XTYAUUFYBUUGVOZUJZVRYCWKWTUVFYCUUDUUJUUKRXTYAUUJYBUULVLUUMUIZVRUSYCYDYEYF
      YBXTYDPOYAWKUOVSYCWPUVIQYCWTUVJQVTWAYCWKXCUVFYCWMWOUVGUVHWBVRVKWCXFXIXQXJ
      XRWRXBXIXQLXEWRXBXGXOXHXPMAWQGHWFBXAGHWFWGVLXEWRXJXRLXBCXDGHWFVSWDWEWHWIW
      J $.

    $( Lemma for ~ pythagtrip .  Prove the full version of one direction of the
       theorem.  (Contributed by Scott Fenton, 28-Mar-2014.)  (Revised by Mario
       Carneiro, 19-Apr-2014.) $)
    pythagtriplem2 $p |- ( ( A e. NN /\ B e. NN ) -> (
       E. n e. NN E. m e. NN E. k e. NN
       ( { A , B } = { ( k x. ( ( m ^ 2 ) - ( n ^ 2 ) ) ) ,
                       ( k x. ( 2 x. ( m x. n ) ) ) } /\
         C = ( k x. ( ( m ^ 2 ) + ( n ^ 2 ) ) ) ) ->
        ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) ) ) $=
      ( cn wcel wa cv c2 cexp co cmul wceq caddc wrex w3a wo cvv cpr wb mpanr12
      cmin preq12bg anbi1d df-3an orbi12i bitr4i syl6bb rexbidv 2rexbidv r19.43
      ovex andir 2rexbii rexbii 3bitri wi pythagtriplem1 a1i 3ancoma sylbi nncn
      cc sqcld addcom syl2an eqeq1d syl5ibr jaod sylbid ) AGHZBGHZIZABUADJZEJZK
      LMZFJZKLMZUDMZNMZVPKVQVSNMNMZNMZUAOZCVPVRVTPMNMOZIZDGQZEGQFGQZAWBOZBWDOZW
      FRZDGQZEGQZFGQZAWDOZBWBOZWFRZDGQZEGQZFGQZSZAKLMZBKLMZPMZCKLMZOZVOWIWLWRSZ
      DGQZEGQFGQZXBVOWHXIFEGGVOWGXHDGVOWGWJWKIZWPWQIZSZWFIZXHVOWEXMWFVOWBTHWDTH
      WEXMUBVPWANUNVPWCNUNABWBWDGGTTUEUCUFXNXKWFIZXLWFIZSXHXKXLWFUOWLXOWRXPWJWK
      WFUGWPWQWFUGUHUIUJUKULXJWMWSSZEGQZFGQWNWTSZFGQXBXIXQFEGGWLWRDGUMUPXRXSFGW
      MWSEGUMUQWNWTFGUMURUJVOWOXGXAWOXGUSVOABCDEFUTVAXAXGVOXDXCPMZXFOZXAWQWPWFR
      ZDGQZEGQFGQYAWSYCFEGGWRYBDGWPWQWFVBUQUPBACDEFUTVCVOXEXTXFVMXCVEHXDVEHXEXT
      OVNVMAAVDVFVNBBVDVFXCXDVGVHVIVJVKVL $.
  $}

  $( Lemma for ~ pythagtrip .  Show that ` C ` and ` B ` are relatively prime
     under some conditions.  (Contributed by Scott Fenton, 8-Apr-2014.)
     (Revised by Mario Carneiro, 19-Apr-2014.) $)
  pythagtriplem3 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
     ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
     ( ( A gcd B ) = 1 /\ -. 2 || A ) ) ->
     ( B gcd C ) = 1 ) $=
    ( cn wcel w3a c2 cexp co wceq cgcd c1 wbr wa nnz zsqcl syl 3ad2ant1 syl2anc
    cz caddc cdvds wn adantl 3ad2ant2 gcdadd gcdcom eqtr3d adantr simpl2 simpl3
    oveq2 sqgcd simpl1 3eqtr4d 3adant3 simp3l oveq1d eqtrd cr cc0 cle wb gcdcld
    3ad2ant3 nn0red nn0ge0d 1re 0le1 sq11 mpanr12 mpbid ) ADEZBDEZCDEZFZAGHIZBG
    HIZUAIZCGHIZJZABKIZLJZGAUBMUCZNZFZBCKIZGHIZLGHIZJZWGLJZWFWHWBGHIZWIVPWAWHWL
    JWEVPWANZVRVTKIZVQVRKIZWHWLWMVRVSKIZWNWOWAWPWNJVPVSVTVRKULUDVPWPWOJWAVPVRVQ
    KIZWPWOVPVRTEZVQTEZWQWPJVNVMWRVOVNBTEZWRBOZBPQUEZVMVNWSVOVMATEWSAOAPQRZVRVQ
    UFSVPWRWSWQWOJXBXCVRVQUGSUHUIUHWMVNVOWHWNJVMVNVOWAUJZVMVNVOWAUKBCUMSWMVMVNW
    LWOJVMVNVOWAUNXDABUMSUOUPWFWBLGHVPWAWCWDUQURUSWFWGUTEZVAWGVBMZWJWKVCZVPWAXE
    WEVPWGVPBCVNVMWTVOXAUEVOVMCTEVNCOVEVDZVFRVPWAXFWEVPWGXHVGRXEXFNLUTEVALVBMXG
    VHVIWGLVJVKSVL $.

  $( Lemma for ~ pythagtrip .  Show that ` C - B ` and ` C + B ` are relatively
     prime.  (Contributed by Scott Fenton, 12-Apr-2014.)  (Revised by Mario
     Carneiro, 19-Apr-2014.) $)
  pythagtriplem4 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
     ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
     ( ( A gcd B ) = 1 /\ -. 2 || A ) ) ->
     ( ( C - B ) gcd ( C + B ) ) = 1 ) $=
    ( cn wcel c2 co caddc wceq cgcd c1 cdvds wa cmin cmul cz nnzd syl2anc nncnd
    wbr w3a cexp wn wo simp3r nnz zsubcl syl2anr 3adant1 3ad2ant1 simp13 simp12
    nnaddcld gcddvds simprd breq1 wi simpl13 simpl12 zaddcld zsubcld dvdsmultr1
    biimpd mpan9 2z mp3an1 mpd cc breqtrrd simpl2 oveq1d simpl11 nnsqcld pncand
    subsq eqtr3d breqtrd wb adantr cprime 2prm 2nn prmdvdsexp mp3an13 syl mpbid
    mtand neg1z gcdaddm pnncan 3anidm23 subcl mulm1d oveq2d addcl negsubd eqtrd
    2times adantl 3eqtr4d zmulcl sylancr eqbrtrd 1z ppncan 3anidm13 mulid2d cc0
    cneg wne nnaddcl nnne0d ancoms intnand gcdn0cl syl21anc dvdsgcd syl3anc cn0
    neneqd mp2and 2nn0 mulgcd pythagtriplem3 2t1e2 syl6eq dvdsprime orel1 sylc
    ) ADEZBDEZCDEZUAZAFUBGZBFUBGZHGZCFUBGZIZABJGKIZFALTZUCZMZUAZCBNGZCBHGZJGZFI
    ZUCUUGUUFKIZUDZUUHUUCUUGYTYMYRYSUUAUEUUCUUGMZFYNLTZYTUUJFYQYONGZYNLUUJFUUEU
    UDOGZUULLUUJFUUELTZFUUMLTZUUCUUFUUELTZUUGUUNUUCUUFUUDLTZUUPUUCUUDPEZUUEPEZU
    UQUUPMYMYRUURUUBYKYLUURYJYLCPEZBPEZUURYKCUFBUFCBUGUHUIUJZUUCUUEUUCCBYJYKYLY
    RUUBUKZYJYKYLYRUUBULZUMQZUUDUUEUNRUOUUGUUPUUNUUFFUUELUPVCVDUUJUUSUURUUNUUOU
    QZUUJCBUUJCYJYKYLYRUUBUUGURZQZUUJBYJYKYLYRUUBUUGUSZQZUTUUJCBUVHUVJVAFPEZUUS
    UURUVFVEFUUEUUDVBVFRVGUUJCVHEZBVHEZUULUUMIUUJCUVGSUUJBUVISCBVORVIUUJYPYONGU
    ULYNUUJYPYQYONYMYRUUBUUGVJVKUUJYNYOUUJYNUUJAYJYKYLYRUUBUUGVLVMSUUJYOUUJBUVI
    VMSVNVPVQUUJAPEZUUKYTVRZUUCUVNUUGYMYRUVNUUBYJYKUVNYLAUFUJUJVSFVTEZUVNFDEUVO
    WAWBAFFWCWDWEWFWGUUCUUFFLTZUUIUUCUUFFBOGZFCOGZJGZFLUUCUUFUVRLTZUUFUVSLTZUUF
    UVTLTZUUCUUFUUDUVRJGZUVRLUUCUUFUUDUUEKXIZUUDOGZHGZJGZUWDUUCUURUUSUUFUWHIZUV
    BUVEUWEPEUURUUSUWIWHUWEUUDUUEWIVFRUUCUVLUVMUWHUWDIUUCCUVCSZUUCBUVDSZUVLUVMM
    ZUWGUVRUUDJUWLUUEUUDNGZBBHGZUWGUVRUVLUVMUWMUWNICBBWJWKUWLUWGUUEUUDXIZHGUWMU
    WLUWFUWOUUEHUWLUUDCBWLZWMWNUWLUUEUUDCBWOUWPWPWQUVMUVRUWNIUVLBWRWSWTWNRWQUUC
    UWDUUDLTZUWDUVRLTZUUCUURUVRPEZUWQUWRMUVBUUCUVKUVAUWSVEUUCBUVDQZFBXAXBZUUDUV
    RUNRUOXCUUCUUFUUDUVSJGZUVSLUUCUUFUUDUUEKUUDOGZHGZJGZUXBUUCUURUUSUUFUXEIZUVB
    UVEKPEUURUUSUXFXDKUUDUUEWIVFRUUCUXDUVSUUDJUUCUVLUVMUXDUVSIUWJUWKUWLUUEUUDHG
    ZCCHGZUXDUVSUVLUVMUXGUXHICBCXEXFUWLUXCUUDUUEHUWLUUDUWPXGWNUVLUVSUXHIUVMCWRV
    SWTRWNWQUUCUXBUUDLTZUXBUVSLTZUUCUURUVSPEZUXIUXJMUVBUUCUVKUUTUXKVEUUCCUVCQZF
    CXAXBZUUDUVSUNRUOXCUUCUUFPEUWSUXKUWAUWBMUWCUQUUCUUFUUCUURUUSUUDXHIZUUEXHIZM
    UCUUFDEZUVBUVEUUCUXOUXNUUCUUEXHYMYRUUEXHXJZUUBYKYLUXQYJYLYKUXQYLYKMUUECBXKX
    LXMUIUJXTXNUUDUUEXOXPZQUXAUXMUUFUVRUVSXQXRYAUUCUVTFBCJGZOGZFUUCUVAUUTUVTUXT
    IZUWTUXLFXSEUVAUUTUYAYBFBCYCVFRUUCUXTFKOGFUUCUXSKFOABCYDWNYEYFWQVQUUCUVPUXP
    UVQUUIVRWAUXRFUUFYGXBWFUUGUUHYHYI $.

  $( Lemma for ~ pythagtrip .  Show that ` C - B ` is positive.  (Contributed
     by Scott Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro,
     19-Apr-2014.) $)
  pythagtriplem10 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) ) -> 0 < ( C - B ) ) $=
    ( cn wcel c2 cexp co clt wbr cr nnre 3ad2ant1 resqcld 3ad2ant2 mpbid adantr
    cc0 3ad2ant3 cle w3a caddc wceq wa cmin wne nnne0 sqgt0d ltaddpos2d breqtrd
    simpr nnnn0 nn0ge0d lt2sqd mpbird posdifd ) ADEZBDEZCDEZUAZAFGHZBFGHZUBHZCF
    GHZUCZUDZBCIJZRCBUEHIJVFVGVBVDIJVFVBVCVDIUTVBVCIJZVEUTRVAIJVHUTAUQURAKEUSAL
    MZUQURARUFUSAUGMUHUTVAVBUTAVINUTBURUQBKEZUSBLOZNUIPQUTVEUKUJVFBCUTVJVEVKQZU
    TCKEZVEUSUQVMURCLSQZUTRBTJZVEURUQVOUSURBBULUMOQUTRCTJZVEUSUQVPURUSCCULUMSQU
    NUOVFBCVLVNUPP $.

  $( Lemma for ~ pythagtrip .  Calculate ` ( sqrt `` ( C - B ) ) ` .
     (Contributed by Scott Fenton, 18-Apr-2014.)  (Revised by Mario Carneiro,
     19-Apr-2014.) $)
  pythagtriplem6 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
       ( ( A gcd B ) = 1 /\ -. 2 || A ) ) ->
       ( sqrt ` ( C - B ) ) = ( ( C - B ) gcd A ) ) $=
    ( cn wcel w3a c2 cexp co caddc wceq cgcd c1 cmin csqrt cz 3ad2ant2 3ad2ant1
    nnz eqtrd cdvds wbr wn wa cfv cn0 cmul cc0 3ad2ant3 zsubcld pythagtriplem10
    clt 3adant3 elnnz sylanbrc nnnn0d simp3 simp2 nnaddcld nnnn0 pythagtriplem4
    nnzd 3jca oveq1d 1gcd syl jca oveq1 zcnd sqcld cc nncn pncand subsq syl2anc
    nncnd mulcomd 3eqtr3d coprimeprodsq fveq2d gcdcld nn0red nn0ge0d sqrtsqd
    sylc ) ADEZBDEZCDEZFZAGHIZBGHIZJIZCGHIZKZABLIMKGAUAUBUCUDZFZCBNIZOUEWQALIZG
    HIZOUEWRWPWQWSOWPWQUFEZCBJIZPEZAUFEZFZWQXALIZALIZMKZUDWJWQXAUGIZKWQWSKWPXDX
    GWPWTXBXCWPWQWPWQPEZUHWQULUBZWQDEWIWNXIWOWICBWHWFCPEWGCSUIWGWFBPEWHBSQUJZRZ
    WIWNXJWOABCUKUMWQUNUOUPWIWNXBWOWIXAWICBWFWGWHUQWFWGWHURUSZVBRWIWNXCWOWFWGXC
    WHAUTRRVCWPXFMALIZMWPXEMALABCVAVDWPAPEZXNMKWIWNXOWOWFWGXOWHASRZRZAVEVFTVGWP
    WLWKNIZWMWKNIZWJXHWNWIXRXSKWOWLWMWKNVHQWIWNXRWJKWOWIWJWKWIAWIAXPVIVJWIBWGWF
    BVKEZWHBVLQZVJVMRWIWNXSXHKWOWIXSXAWQUGIZXHWICVKEZXTXSYBKWHWFYCWGCVLUIYACBVN
    VOWIXAWQWIXAXMVPWIWQXKVIVQTRVRWQXAAVSWEVTWPWRWPWRWPWQAXLXQWAZWBWPWRYDWCWDT
    $.

  $( Lemma for ~ pythagtrip .  Calculate ` ( sqrt `` ( C + B ) ) ` .
     (Contributed by Scott Fenton, 18-Apr-2014.)  (Revised by Mario Carneiro,
     19-Apr-2014.) $)
  pythagtriplem7 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
       ( ( A gcd B ) = 1 /\ -. 2 || A ) ) ->
       ( sqrt ` ( C + B ) ) = ( ( C + B ) gcd A ) ) $=
    ( cn wcel w3a c2 cexp co wceq cgcd c1 csqrt cmin cz 3ad2ant1 eqtrd cc nncnd
    nnzd caddc cdvds wbr wn wa cfv cn0 cmul simp3 simp2 zsubcld nnaddcld nnnn0d
    nnnn0 3jca pythagtriplem4 oveq1d nnz 1gcd syl jca oveq1 3ad2ant2 nncn sqcld
    pncand subsq syl2anc zcnd mulcomd 3eqtr3d coprimeprodsq2 sylc fveq2d gcdcld
    nn0red nn0ge0d sqrtsqd ) ADEZBDEZCDEZFZAGHIZBGHIZUAIZCGHIZJZABKILJGAUBUCUDU
    EZFZCBUAIZMUFWJAKIZGHIZMUFWKWIWJWLMWICBNIZOEZWJUGEZAUGEZFZWMWJKIZAKIZLJZUEW
    CWMWJUHIZJWJWLJWIWQWTWIWNWOWPWBWGWNWHWBCBWBCVSVTWAUIZTWBBVSVTWAUJZTUKZPWBWG
    WOWHWBWJWBCBXBXCULZUMPWBWGWPWHVSVTWPWAAUNPPUOWIWSLAKIZLWIWRLAKABCUPUQWIAOEZ
    XFLJWBWGXGWHVSVTXGWAAURPPZAUSUTQVAWIWEWDNIZWFWDNIZWCXAWGWBXIXJJWHWEWFWDNVBV
    CWBWGXIWCJWHWBWCWDWBAVSVTAREWAAVDPVEWBBWBBXCSZVEVFPWBWGXJXAJWHWBXJWJWMUHIZX
    AWBCREBREXJXLJWBCXBSXKCBVGVHWBWJWMWBWJXESWBWMXDVIVJQPVKWMWJAVLVMVNWIWKWIWKW
    IWJAWBWGWJOEWHWBWJXETPXHVOZVPWIWKXMVQVRQ $.

  $( Lemma for ~ pythagtrip .  Show that ` ( sqrt `` ( C - B ) ) ` is a
     positive integer.  (Contributed by Scott Fenton, 17-Apr-2014.)  (Revised
     by Mario Carneiro, 19-Apr-2014.) $)
  pythagtriplem8 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
       ( ( A gcd B ) = 1 /\ -. 2 || A ) ) -> ( sqrt ` ( C - B ) ) e. NN ) $=
    ( cn wcel w3a c2 cexp co caddc wceq cgcd c1 cdvds wn wa cz cc0 nnz 3ad2ant1
    wbr cmin csqrt pythagtriplem6 zsubcl syl2anr 3adant1 neneqd intnand gcdn0cl
    cfv nnne0 syl21anc eqeltrd ) ADEZBDEZCDEZFZAGHIBGHIJICGHIKZABLIMKGANUAOPZFC
    BUBIZUCUKVAALIZDABCUDURUSVBDEZUTURVAQEZAQEZVARKZARKZPOZVCUPUQVDUOUQCQEBQEVD
    UPCSBSCBUEUFUGUOUPVEUQASTUOUPVHUQUOVGVFUOARAULUHUITVAAUJUMTUN $.

  $( Lemma for ~ pythagtrip .  Show that ` ( sqrt `` ( C + B ) ) ` is a
     positive integer.  (Contributed by Scott Fenton, 17-Apr-2014.)  (Revised
     by Mario Carneiro, 19-Apr-2014.) $)
  pythagtriplem9 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
       ( ( A gcd B ) = 1 /\ -. 2 || A ) ) -> ( sqrt ` ( C + B ) ) e. NN ) $=
    ( cn wcel w3a c2 cexp co caddc wceq cgcd c1 cdvds wn wa cz cc0 nnz 3ad2ant1
    wbr csqrt cfv pythagtriplem7 zaddcl syl2anr 3adant1 neneqd intnand syl21anc
    nnne0 gcdn0cl eqeltrd ) ADEZBDEZCDEZFZAGHIBGHIJICGHIKZABLIMKGANUAOPZFZCBJIZ
    UBUCVAALIZDABCUDUTVAQEZAQEZVARKZARKZPOZVBDEUQURVCUSUOUPVCUNUPCQEBQEVCUOCSBS
    CBUEUFUGTUQURVDUSUNUOVDUPASTTUQURVGUSUNUOVGUPUNVFVEUNARAUKUHUITTVAAULUJUM
    $.

  ${
    pythagtriplem11.1 $e |- M
              = ( ( ( sqrt ` ( C + B ) ) + ( sqrt ` ( C - B ) ) ) / 2 ) $.
    $( Lemma for ~ pythagtrip .  Show that ` M ` (which will eventually be
       closely related to the ` m ` in the final statement) is a natural.
       (Contributed by Scott Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    pythagtriplem11 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
       ( ( A gcd B ) = 1 /\ -. 2 || A ) ) -> M e. NN ) $=
      ( cn wcel c2 cexp co caddc cgcd cdvds wbr wn wa cz cc0 wb 3ad2ant1 w3a c1
      wceq csqrt cfv cmin cdiv clt pythagtriplem9 nnzd simp3r 3ad2ant3 3ad2ant2
      nnz zaddcld 2z dvdsgcdb mp3an1 syl2anc simprd mtand pythagtriplem7 breq2d
      biimpar pythagtriplem8 zsubcld pythagtriplem6 opoe syl22anc nnaddcld 2ne0
      mtbird wne dvdsval2 mp3an12 syl mpbid nnred nngt0d addgt0d halfpos2 elnnz
      cr sylanbrc syl5eqel ) AFGZBFGZCFGZUAZAHIJBHIJKJCHIJUCZABLJUBUCZHAMNZOZPZ
      UAZDCBKJZUDUEZCBUFJZUDUEZKJZHUGJZFEWOXAQGZRXAUHNZXAFGWOHWTMNZXBWOWQQGHWQM
      NZOWSQGHWSMNZOXDWOWQABCUIZUJWOXEHWPALJZMNZWOXIWLWIWJWKWMUKZWOXIPHWPMNZWLW
      OXKWLPZXIWOWPQGZAQGZXLXISZWIWJXMWNWICBWHWFCQGWGCUNULZWGWFBQGWHBUNUMZUOTWI
      WJXNWNWFWGXNWHAUNTTZHQGZXMXNXOUPHWPAUQURUSVDUTVAWOWQXHHMABCVBVCVLWOWSABCV
      EZUJWOXFHWRALJZMNZWOYBWLXJWOYBPHWRMNZWLWOYCWLPZYBWOWRQGZXNYDYBSZWIWJYEWNW
      ICBXPXQVFTXRXSYEXNYFUPHWRAUQURUSVDUTVAWOWSYAHMABCVGVCVLWQWSVHVIWOWTQGZXDX
      BSZWOWTWOWQWSXGXTVJZUJXSHRVMYGYHUPVKHWTVNVOVPVQWORWTUHNZXCWOWQWSWOWQXGVRW
      OWSXTVRWOWQXGVSWOWSXTVSVTWOWTWCGYJXCSWOWTYIVRWTWAVPVQXAWBWDWE $.

    $( Lemma for ~ pythagtrip .  Calculate the square of ` M ` .  (Contributed
       by Scott Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    pythagtriplem12 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
       ( ( A gcd B ) = 1 /\ -. 2 || A ) ) -> ( M ^ 2 ) = ( ( C + A ) / 2 ) ) $=
      ( wcel c2 cexp co caddc wceq wbr csqrt cdiv cmul cc 3ad2ant1 cc0 2cn cr
      cn w3a cgcd c1 cdvds wn wa cmin oveq1i nncn addcl syl2anr 3adant1 sqrtcld
      cfv subcl addcld wne 2ne0 mp3an23 sqvali oveq2i syl6eq syl binom2 syl2anc
      sqdiv cle nnre readdcl clt 3ad2ant3 3ad2ant2 nngt0 addgt0d ltle mpan sylc
      wi resqrtth oveq1d resubcl pythagtriplem10 3adant3 oveq12d mulcld sylancr
      mulcl add32d adddi mp3an1 ppncand 2timesd eqtr4d oveq1 sqcld pncand subsq
      0re 3eqtr3rd fveq2d sqrtmuld nnnn0 nn0ge0d sqrtsqd 3eqtr3d oveq2d 3adant2
      3eqtrd 2cnne0 divdiv1 divcan3 syl5eq ) AUAFZBUAFZCUAFZUBZAGHIZBGHIZJIZCGH
      IZKZABUCIUDKGAUELUFUGZUBZDGHICBJIZMUOZCBUHIZMUOZJIZGNIZGHIZCAJIZGNIZDYJGH
      EUIYDYKYIGHIZGGOIZNIZGYLOIZGNIZGNIZYMYDYIPFZYKYPKXQYBYTYCXQYFYHXQYEXOXPYE
      PFZXNXPCPFZBPFZUUAXOCUJZBUJZCBUKULUMZUNZXQYGXOXPYGPFZXNXPUUBUUCUUHXOUUDUU
      ECBUPULUMZUNZUQQYTYKYNGGHIZNIZYPYTGPFZGRURZYKUULKSUSYIGVGUTUUKYOYNNGSVAVB
      VCVDYDYPYQYONIZYSYDYNYQYONYDYNYFGHIZGYFYHOIZOIZJIZYHGHIZJIZYEUURJIZYGJIZY
      QYDYFPFZYHPFZYNUVAKXQYBUVDYCUUGQXQYBUVEYCUUJQYFYHVEVFYDUUSUVBUUTYGJYDUUPY
      EUURJYDYETFZRYEVHLZUUPYEKXQYBUVFYCXOXPUVFXNXPCTFZBTFZUVFXOCVIZBVIZCBVJULU
      MQZYDUVFRYEVKLZUVGUVLXQYBUVMYCXQCBXPXNUVHXOUVJVLXOXNUVIXPUVKVMXPXNRCVKLXO
      CVNVLXOXNRBVKLXPBVNVMVOQRTFZUVFUVMUVGVSWSRYEVPVQVRZYEVTVFWAYDYGTFZRYGVHLZ
      UUTYGKXQYBUVPYCXOXPUVPXNXPUVHUVIUVPXOUVJUVKCBWBULUMQZYDUVPRYGVKLZUVQUVRXQ
      YBUVSYCABCWCWDUVNUVPUVSUVQVSWSRYGVPVQVRZYGVTVFWEYDUVCYEYGJIZUURJIZYQYDYEU
      URYGXQYBUUAYCUUFQXQYBUURPFZYCXQUUMUUQPFUWCSXQYFYHUUGUUJWFGUUQWHWGQXQYBUUH
      YCUUIQWIYDYQGCOIZGAOIZJIZUWBYDUUBAPFZYQUWFKZXQYBUUBYCXPXNUUBXOUUDVLQZXQYB
      UWGYCXNXOUWGXPAUJZQQZUUMUUBUWGUWHSGCAWJWKVFYDUWAUWDUURUWEJYDUWACCJIUWDYDC
      BCUWIXQYBUUCYCXOXNUUCXPUUEVMQZUWIWLYDCUWIWMWNYDUUQAGOYDYEYGOIZMUOXRMUOUUQ
      AYDUWMXRMYDXTXSUHIZYAXSUHIZXRUWMYBXQUWNUWOKYCXTYAXSUHWOVMYDXRXSYDAUWKWPYD
      BUWLWPWQYDUUBUUCUWOUWMKUWIUWLCBWRVFWTXAYDYEYGUVLUVOUVRUVTXBYDAXQYBATFZYCX
      NXOUWPXPAVIQQXQYBRAVHLZYCXNXOUWQXPXNAAXCXDQQXEXFXGWEWNWNXIWAYDYQPFZYSUUOK
      ZYDUUMYLPFZUWRSXQYBUWTYCXNXPUWTXOXPUUBUWGUWTXNUUDUWJCAUKULXHQZGYLWHWGUWRU
      UMUUNUGZUXBUWSXJXJYQGGXKUTVDWNYDYRYLGNYDUWTYRYLKZUXAUWTUUMUUNUXCSUSYLGXLU
      TVDWAXIXM $.
  $}

  ${
    pythagtriplem13.1 $e |- N
        = ( ( ( sqrt ` ( C + B ) ) - ( sqrt ` ( C - B ) ) ) / 2 ) $.
    $( Lemma for ~ pythagtrip .  Show that ` N ` (which will eventually be
       closely related to the ` n ` in the final statement) is a natural.
       (Contributed by Scott Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    pythagtriplem13 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
       ( ( A gcd B ) = 1 /\ -. 2 || A ) ) -> N e. NN ) $=
      ( cn wcel c2 co cdvds wbr wa cz cc0 clt nnzd wb 3ad2ant1 cr mpbid cexp c1
      w3a caddc wceq cgcd csqrt cfv cmin cdiv pythagtriplem9 simp3r simp3 simp2
      nnaddcld nnz dvdsgcdb mp3an1 syl2anc biimpar simprd pythagtriplem7 breq2d
      wn 2z mtbird pythagtriplem8 3ad2ant3 3ad2ant2 zsubcld pythagtriplem6 omoe
      mtand syl22anc zred simp13 nnred crp nnrp ltsubrpd nngt0 simp12 ltaddposd
      lttrd cle pythagtriplem10 3adant3 wi ltle mpan sylc addgt0d sqrtltd nnsub
      0re wne 2ne0 dvdsval2 mp3an12 syl nngt0d halfpos2 elnnz sylanbrc syl5eqel
      ) AFGZBFGZCFGZUCZAHUAIBHUAIUDICHUAIUEZABUFIUBUEZHAJKZVDZLZUCZDCBUDIZUGUHZ
      CBUIIZUGUHZUIIZHUJIZFEXOYAMGZNYAOKZYAFGXOHXTJKZYBXOXQMGHXQJKZVDXSMGHXSJKZ
      VDYDXOXQABCUKZPXOYEHXPAUFIZJKZXOYIXLXIXJXKXMULZXOYILHXPJKZXLXOYKXLLZYIXOX
      PMGZAMGZYLYIQZXIXJYMXNXIXPXICBXFXGXHUMXFXGXHUNUOZPRXIXJYNXNXFXGYNXHAUPRRZ
      HMGZYMYNYOVEHXPAUQURUSUTVAVMXOXQYHHJABCVBVCVFXOXSABCVGZPXOYFHXRAUFIZJKZXO
      UUAXLYJXOUUALHXRJKZXLXOUUBXLLZUUAXOXRMGZYNUUCUUAQZXIXJUUDXNXICBXHXFCMGXGC
      UPVHXGXFBMGXHBUPVIVJZRYQYRUUDYNUUEVEHXRAUQURUSUTVAVMXOXSYTHJABCVKVCVFXQXS
      VLVNXOXTMGZYDYBQZXOXTXOXSXQOKZXTFGZXOXRXPOKUUIXOXRCXPXIXJXRSGZXNXIXRUUFVO
      RZXOCXFXGXHXJXNVPVQZXIXJXPSGZXNXIXPYPVQRZXOCBUUMXIXJBVRGZXNXGXFUUPXHBVSVI
      RVTXONBOKZCXPOKXIXJUUQXNXGXFUUQXHBWAVIRZXOBCXOBXFXGXHXJXNWBVQZUUMWCTWDXOX
      RXPUULXOUUKNXROKZNXRWEKZUULXIXJUUTXNABCWFWGNSGZUUKUUTUVAWHWONXRWIWJWKUUOX
      OUUNNXPOKZNXPWEKZUUOXOCBUUMUUSXIXJNCOKZXNXHXFUVEXGCWAVHRUURWLUVBUUNUVCUVD
      WHWONXPWIWJWKWMTXOXSFGXQFGUUIUUJQYSYGXSXQWNUSTZPYRHNWPUUGUUHVEWQHXTWRWSWT
      TXONXTOKZYCXOXTUVFXAXOXTSGUVGYCQXOXTUVFVQXTXBWTTYAXCXDXE $.

    $( Lemma for ~ pythagtrip .  Calculate the square of ` N ` .  (Contributed
       by Scott Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    pythagtriplem14 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
       ( ( A gcd B ) = 1 /\ -. 2 || A ) ) -> ( N ^ 2 ) = ( ( C - A ) / 2 ) ) $=
      ( wcel c2 cexp caddc wceq wbr cmin cdiv 3adant1 3ad2ant1 cc0 cmul syl2anc
      co cc cn w3a cgcd c1 cdvds wn csqrt cfv oveq1i nncn addcl syl2anr sqrtcld
      wa subcl subcld wne 2cn 2ne0 sqdiv mp3an23 syl sqvali oveq2i sqcld 2cnne0
      divdiv1 simp12 simp13 binom2sub nnre readdcl recnd resubcl mulcld sylancr
      cr mulcl addsubd nncnd simp11 mp3an1 ppncan 3anidm13 2times adantr eqtr4d
      subdi subsq oveq1 3ad2ant2 pncand eqtr3d fveq2d cle clt adantl addgt0d wi
      nngt0 0re ltle mpan sylc pythagtriplem10 3adant3 sqrtmuld nn0ge0d sqrtsqd
      nnnn0 oveq2d oveq12d resqrtth oveq1d 3eqtr4rd 3adant2 divcan3 syl5eq
      eqtrd ) AUAFZBUAFZCUAFZUBZAGHSZBGHSZISZCGHSZJZABUCSUDJGAUEKUFUNZUBZDGHSCB
      ISZUGUHZCBLSZUGUHZLSZGMSZGHSZCALSZGMSZDYPGHEUIYJYQYOGHSZGGHSZMSZYSYJYOTFZ
      YQUUBJZYCYHUUCYIYAYBUUCXTYAYBUNZYLYNUUEYKYBCTFZBTFZYKTFYACUJZBUJZCBUKULUM
      ZUUEYMYBUUFUUGYMTFYAUUHUUICBUOULUMZUPNOZUUCGTFZGPUQZUUDURUSYOGUTVAVBYJUUB
      YTGGQSZMSZYSUUAUUOYTMGURVCVDYJYTGMSZGMSZUUPYSYJYTTFZUURUUPJZYJYOUULVEUUSU
      UMUUNUNZUVAUUTVFVFYTGGVGVAVBYJUUQYRGMYJUUQGYRQSZGMSZYRYJYTUVBGMYJYTYLGHSZ
      GYLYNQSZQSZLSZYNGHSZISZUVBYJYLTFZYNTFZYTUVIJYJYAYBUVJXTYAYBYHYIVHZXTYAYBY
      HYIVIZUUJRYJYAYBUVKUVLUVMUUKRYLYNVJRYJYKYMISZUVFLSZYKUVFLSZYMISUVBUVIYJYK
      YMUVFYJYKYCYHYKVQFZYIYAYBUVQXTYBCVQFZBVQFZUVQYACVKZBVKZCBVLULZNOZVMYJYMYC
      YHYMVQFZYIYAYBUWDXTYBUVRUVSUWDYAUVTUWACBVNULNOZVMYCYHUVFTFZYIYCUUMUVETFUW
      FURYCYLYNYAYBUVJXTUUJNYAYBUVKXTUUKNVOGUVEVRVPOVSYJUVBGCQSZGAQSZLSZUVOYJUU
      FATFZUVBUWIJZYJCUVMVTZYJAXTYAYBYHYIWAVTUUMUUFUWJUWKURGCAWHWBRYJUVNUWGUVFU
      WHLYCYHUVNUWGJZYIYAYBUWMXTYBUUFUUGUWMYAUUHUUIUUFUUGUNUVNCCISZUWGUUFUUGUVN
      UWNJCBCWCWDUUFUWGUWNJUUGCWEWFWGULNOYJUVEAGQYJYDUGUHZUVEAYJYKYMQSZUGUHUWOU
      VEYJUWPYDUGYJYGYELSZUWPYDYJUUFUUGUWQUWPJUWLYJBUVLVTCBWIRYJYFYELSZUWQYDYHY
      CUWRUWQJYIYFYGYELWJWKYCYHUWRYDJYIYCYDYEXTYAYDTFYBXTAAUJZVEOYAXTYETFYBYABU
      UIVEWKWLOWMWMWNYJYKYMUWCYCYHPYKWOKZYIYAYBUWTXTUUEUVQPYKWPKZUWTUWBUUECBYBU
      VRYAUVTWQYAUVSYBUWAWFYBPCWPKYACWTWQYAPBWPKYBBWTWFWRPVQFZUVQUXAUWTWSXAPYKX
      BXCXDNOZUWEYJUWDPYMWPKZPYMWOKZUWEYCYHUXDYIABCXEXFUXBUWDUXDUXEWSXAPYMXBXCX
      DZXGWMYJAYCYHAVQFZYIXTYAUXGYBAVKOOYCYHPAWOKZYIXTYAUXHYBXTAAXJXHOOXIWMXKXL
      WGYJUVGUVPUVHYMIYJUVDYKUVFLYJUVQUWTUVDYKJUWCUXCYKXMRXNYJUWDUXEUVHYMJUWEUX
      FYMXMRXLXOXSXNYJYRTFZUVCYRJZYCYHUXIYIXTYBUXIYAYBUUFUWJUXIXTUUHUWSCAUOULXP
      OUXIUUMUUNUXJURUSYRGXQVAVBXSXNWMXRXSXR $.
  $}

  ${
    pythagtriplem15.1 $e |- M
         = ( ( ( sqrt ` ( C + B ) ) + ( sqrt ` ( C - B ) ) ) / 2 ) $.
    pythagtriplem15.2 $e |- N
         = ( ( ( sqrt ` ( C + B ) ) - ( sqrt ` ( C - B ) ) ) / 2 ) $.
    $( Lemma for ~ pythagtrip .  Show the relationship between ` M ` , ` N ` ,
       and ` A ` .  (Contributed by Scott Fenton, 17-Apr-2014.)  (Revised by
       Mario Carneiro, 19-Apr-2014.) $)
    pythagtriplem15 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
       ( ( A gcd B ) = 1 /\ -. 2 || A ) ) -> A = ( ( M ^ 2 ) - ( N ^ 2 ) ) ) $=
      ( cn wcel w3a c2 cexp co caddc wceq wa cmin cdiv cc 3ad2ant1 c1 cdvds wbr
      cgcd wn cmul pythagtriplem12 pythagtriplem14 oveq12d simp3 simp1 nnaddcld
      nncnd cz nnz 3ad2ant3 zsubcld zcnd cc0 wne 2cnne0 divsubdir mp3an3 eqtr4d
      syl2anc nncn pnncand 2timesd oveq1d 2cn 2ne0 divcan3 mp3an23 syl 3eqtrrd
      ) AHIZBHIZCHIZJZAKLMBKLMNMCKLMOZABUDMUAOKAUBUCUEPZJZDKLMZEKLMZQMZCANMZCAQ
      MZQMZKRMZKAUFMZKRMZAWBWEWFKRMZWGKRMZQMZWIWBWCWLWDWMQABCDFUGABCEGUHUIWBWFS
      IZWGSIZWIWNOZVSVTWOWAVSWFVSCAVPVQVRUJVPVQVRUKULUMTVSVTWPWAVSWGVSCAVRVPCUN
      IVQCUOUPVPVQAUNIVRAUOTUQURTWOWPKSIZKUSUTZPWQVAWFWGKVBVCVEVDWBWHWJKRWBWHAA
      NMWJWBCAAVSVTCSIZWAVRVPWTVQCVFUPTVSVTASIZWAVPVQXAVRAVFTTZXBVGWBAXBVHVDVIW
      BXAWKAOZXBXAWRWSXCVJVKAKVLVMVNVO $.

    $( Lemma for ~ pythagtrip .  Show the relationship between ` M ` , ` N ` ,
       and ` B ` .  (Contributed by Scott Fenton, 17-Apr-2014.)  (Revised by
       Mario Carneiro, 19-Apr-2014.) $)
    pythagtriplem16 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
       ( ( A gcd B ) = 1 /\ -. 2 || A ) ) -> B = ( 2 x. ( M x. N ) ) ) $=
      ( wcel c2 cexp co wceq wbr cmul cdiv cc syl2anc 3adant1 3ad2ant1 cc0 cgcd
      cn w3a caddc c1 cdvds wn wa csqrt cmin oveq12i nncn addcl syl2anr sqrtcld
      cfv wne 2cnne0 divmuldiv mpanr12 mulcld divdiv1 mp3an23 syl eqtr4d cr cle
      subcl nnre readdcl clt adantl adantr nngt0 addgt0d 0re ltle mpan resqrtth
      wi sylc resubcl pythagtriplem10 3adant3 oveq1d simp12 simp13 subsq pnncan
      oveq12d 3anidm23 2times 2cn 2ne0 divcan3 3syl eqtrd 3eqtr3d syl5eq oveq2d
      divcan2 3ad2ant2 eqtr2d ) AUBHZBUBHZCUBHZUCZAIJKBIJKUDKCIJKLZABUAKUELIAUF
      MUGUHZUCZIDENKZNKIBIOKZNKZBXJXKXLINXJXKCBUDKZUIUPZCBUJKZUIUPZUDKZIOKZXOXQ
      UJKZIOKZNKZXLDXSEYANFGUKXJYBXRXTNKZIOKZIOKZXLXJYBYCIINKOKZYEXJXRPHZXTPHZY
      BYFLZXGXHYGXIXEXFYGXDXEXFUHZXOPHZXQPHZYGYJXNXFCPHZBPHZXNPHXECULZBULZCBUMU
      NUOZYJXPXFYMYNXPPHXEYOYPCBVHUNUOZXOXQUMQZRSXGXHYHXIXEXFYHXDYJYKYLYHYQYRXO
      XQVHQZRSYGYHUHIPHZITUQZUHZUUCYIURURXRXTIIUSUTQXJYCPHZYEYFLZXGXHUUDXIXEXFU
      UDXDYJXRXTYSYTVARSUUDUUCUUCUUEURURYCIIVBVCVDVEXJYDBIOXJXOIJKZXQIJKZUJKZIO
      KXNXPUJKZIOKZYDBXJUUHUUIIOXJUUFXNUUGXPUJXJXNVFHZTXNVGMZUUFXNLXGXHUUKXIXEX
      FUUKXDXFCVFHZBVFHZUUKXECVIZBVIZCBVJUNZRSXGXHUULXIXEXFUULXDYJUUKTXNVKMZUUL
      UUQYJCBXFUUMXEUUOVLXEUUNXFUUPVMXFTCVKMXECVNVLXETBVKMXFBVNVMVOTVFHZUUKUURU
      ULVTVPTXNVQVRWARSXNVSQXJXPVFHZTXPVGMZUUGXPLXGXHUUTXIXEXFUUTXDXFUUMUUNUUTX
      EUUOUUPCBWBUNRSZXJUUTTXPVKMZUVAUVBXGXHUVCXIABCWCWDUUSUUTUVCUVAVTVPTXPVQVR
      WAXPVSQWJWEXJUUHYCIOXJYKYLUUHYCLXJXEXFYKXDXEXFXHXIWFZXDXEXFXHXIWGZYQQXJXE
      XFYLUVDUVEYRQXOXQWHQWEXJUUJIBNKZIOKZBXJUUIUVFIOXGXHUUIUVFLZXIXEXFUVHXDXFY
      MYNUVHXEYOYPYMYNUHUUIBBUDKZUVFYMYNUUIUVILCBBWIWKYNUVFUVILYMBWLVLVEUNRSWEX
      JXEYNUVGBLZUVDYPYNUUAUUBUVJWMWNBIWOVCWPWQWRWEWQWSWTXGXHXMBLZXIXEXDUVKXFXE
      YNUVKYPYNUUAUUBUVKWMWNBIXAVCVDXBSXC $.

    $( Lemma for ~ pythagtrip .  Show the relationship between ` M ` , ` N ` ,
       and ` C ` .  (Contributed by Scott Fenton, 17-Apr-2014.)  (Revised by
       Mario Carneiro, 19-Apr-2014.) $)
    pythagtriplem17 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
       ( ( A gcd B ) = 1 /\ -. 2 || A ) ) -> C = ( ( M ^ 2 ) + ( N ^ 2 ) ) ) $=
      ( cn wcel w3a c2 cexp co caddc wceq wa cdiv cc nncn 3ad2ant1 c1 cdvds wbr
      cgcd wn cmin cmul pythagtriplem12 pythagtriplem14 oveq12d 3ad2ant3 addcld
      subcld cc0 wne 2cnne0 divdir mp3an3 syl2anc eqtr4d ppncand 2timesd oveq1d
      2cn 2ne0 divcan3 mp3an23 syl 3eqtrrd ) AHIZBHIZCHIZJZAKLMBKLMNMCKLMOZABUD
      MUAOKAUBUCUEPZJZDKLMZEKLMZNMZCANMZCAUFMZNMZKQMZKCUGMZKQMZCVPVSVTKQMZWAKQM
      ZNMZWCVPVQWFVRWGNABCDFUHABCEGUIUJVPVTRIZWARIZWCWHOZVPCAVMVNCRIZVOVLVJWLVK
      CSUKTZVMVNARIZVOVJVKWNVLASTTZULVPCAWMWOUMWIWJKRIZKUNUOZPWKUPVTWAKUQURUSUT
      VPWBWDKQVPWBCCNMWDVPCACWMWOWMVAVPCWMVBUTVCVPWLWECOZWMWLWPWQWRVDVECKVFVGVH
      VI $.
  $}

  ${
    $d A m n $.  $d B m n $.  $d C m n $.
    $( Lemma for ~ pythagtrip .  Wrap the previous ` M ` and ` N ` up in
       quantifiers.  (Contributed by Scott Fenton, 18-Apr-2014.)  (Revised by
       Mario Carneiro, 19-Apr-2014.) $)
    pythagtriplem18 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
       ( ( A gcd B ) = 1 /\ -. 2 || A ) ) ->
       E. n e. NN E. m e. NN
       ( A = ( ( m ^ 2 ) - ( n ^ 2 ) ) /\
         B = ( 2 x. ( m x. n ) ) /\
         C = ( ( m ^ 2 ) + ( n ^ 2 ) ) ) ) $=
      ( cn wcel w3a c2 cexp caddc wceq csqrt cfv cmin cmul oveq1 oveq2d eqeq2d
      co cgcd c1 cdvds wbr wn wa cdiv wrex eqid pythagtriplem13 pythagtriplem11
      cv pythagtriplem15 pythagtriplem16 pythagtriplem17 oveq2 3anbi123d oveq1d
      rspc2ev syl113anc ) AFGBFGCFGHAIJTBIJTKTCIJTLABUATUBLIAUCUDUEUFHCBKTMNZCB
      OTMNZOTIUGTZFGVAVBKTIUGTZFGAVDIJTZVCIJTZOTZLZBIVDVCPTZPTZLZCVEVFKTZLZADUL
      ZIJTZEULZIJTZOTZLZBIVNVPPTZPTZLZCVOVQKTZLZHZDFUHEFUHABCVCVCUIZUJABCVDVDUI
      ZUKABCVDVCWGWFUMABCVDVCWGWFUNABCVDVCWGWFUOWEVHVKVMHAVOVFOTZLZBIVNVCPTZPTZ
      LZCVOVFKTZLZHEDVCVDFFVPVCLZVSWIWBWLWDWNWOVRWHAWOVQVFVOOVPVCIJQZRSWOWAWKBW
      OVTWJIPVPVCVNPUPRSWOWCWMCWOVQVFVOKWPRSUQVNVDLZWIVHWLVKWNVMWQWHVGAWQVOVEVF
      OVNVDIJQZURSWQWKVJBWQWJVIIPVNVDVCPQRSWQWMVLCWQVOVEVFKWRURSUQUSUT $.
  $}

  ${
    $d A m n k $.  $d B m n k $.  $d C m n k $.
    $( Lemma for ~ pythagtrip .  Introduce ` k ` and remove the relative
       primality requirement.  (Contributed by Scott Fenton, 18-Apr-2014.)
       (Revised by Mario Carneiro, 19-Apr-2014.) $)
    pythagtriplem19 $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN ) /\
       ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) /\
       -. 2 || ( A / ( A gcd B ) ) ) ->
       E. n e. NN E. m e. NN E. k e. NN
       ( A = ( k x. ( ( m ^ 2 ) - ( n ^ 2 ) ) ) /\
         B = ( k x. ( 2 x. ( m x. n ) ) ) /\
         C = ( k x. ( ( m ^ 2 ) + ( n ^ 2 ) ) ) ) ) $=
      ( cn wcel c2 cexp co wceq cdiv cdvds wbr cmul wrex cz cc0 3ad2ant1 w3a wn
      caddc cgcd cv wa nnz anim12i nnne0 neneqd intnanrd adantr gcdn0cl syl2anc
      cmin 3adant3 c1 clt gcddvds syl2an simpld wb nnzd nnne0d dvdsval2 syl3anc
      wne mpbid cr nnre nnred nngt0 nngt0d divgt0d elnnz sylanbrc simprd dvdssq
      3ad2ant2 anbi12d wi nnsqcld nnsqcl dvds2add simpr breqtrd 3ad2ant3 mpbird
      mpd nncn nncnd sqdivd oveq12d divdird eqtr4d oveq1 gcddiv syl31anc dividd
      cc eqtr3d simp3 pythagtriplem18 syl312anc divcan2d eqcomd oveq2 3anbi123d
      3jca eqeq2d syl5ibcom reximdv 2rexbidv rspcev rexcom rexbii bitri sylib )
      AGHZBGHZCGHZUAZAIJKZBIJKZUCKZCIJKZLZIAABUDKZMKZNOUBZUAZADUEZEUEZIJKZFUEZI
      JKZUOKZPKZLZBYLIYMYOPKPKZPKZLZCYLYNYPUCKZPKZLZUAZEGQZFGQZDGQZUUFDGQEGQZFG
      QZYKYHGHZAYHYQPKZLZBYHYTPKZLZCYHUUCPKZLZUAZEGQZFGQZUUIYBYGUULYJXSXTUULYAX
      SXTUFARHZBRHZUFASLZBSLZUFUBZUULXSUVBXTUVCAUGZBUGZUHXSUVFXTXSUVDUVEXSASAUI
      UJUKULABUMUNUPZTYKYIYQLZBYHMKZYTLZCYHMKZUUCLZUAZEGQZFGQZUVAYKYIGHZUVKGHZU
      VMGHZYIIJKZUVKIJKZUCKZUVMIJKZLYIUVKUDKZUQLZYJUVQYBYGUVRYJYBYIRHZSYIUROUVR
      YBYHANOZUWGYBUWHYHBNOZXSXTUWHUWIUFZYAXSUVBUVCUWJXTUVGUVHABUSUTUPZVAYBYHRH
      ZYHSVGZUVBUWHUWGVBYBYHUVIVCZYBYHUVIVDZXSXTUVBYAUVGTZYHAVEVFVHYBAYHXSXTAVI
      HYAAVJTYBYHUVIVKZXSXTSAUROYAAVLTYBYHUVIVMZVNYIVOVPTYBYGUVSYJYBUVKRHZSUVKU
      ROUVSYBUWIUWSYBUWHUWIUWKVQYBUWLUWMUVCUWIUWSVBUWNUWOXTXSUVCYAUVHVSZYHBVEVF
      VHYBBYHXTXSBVIHYABVJVSUWQXTXSSBUROYABVLVSUWRVNUVKVOVPTYBYGUVTYJYBYGUFZUVM
      RHZSUVMUROZUVTUXAYHCNOZUXBUXAUXDYHIJKZYFNOZUXAUXEYEYFNYBUXEYENOZYGYBUXEYC
      NOZUXEYDNOZUFZUXGYBUWJUXJUWKYBUWHUXHUWIUXIYBUWLUVBUWHUXHVBUWNUWPYHAVRUNYB
      UWLUVCUWIUXIVBUWNUWTYHBVRUNVTVHYBUXERHYCRHYDRHUXJUXGWAYBUXEYBYHUVIWBZVCYB
      YCXSXTYCGHYAAWCTZVCYBYDXTXSYDGHYABWCVSZVCUXEYCYDWDVFWIULYBYGWEWFYBUXDUXFV
      BZYGYBUWLCRHZUXNUWNYAXSUXOXTCUGWGZYHCVRUNULWHYBUXDUXBVBZYGYBUWLUWMUXOUXQU
      WNUWOUXPYHCVEVFULVHYBUXCYGYBCYHYAXSCVIHXTCVJWGUWQYAXSSCUROXTCVLWGUWRVNULU
      VMVOVPUPYKUWCYEUXEMKZUWDYKUWCYCUXEMKZYDUXEMKZUCKZUXRYBYGUWCUYALYJYBUWAUXS
      UWBUXTUCYBAYHXSXTAWTHYAAWJTZYBYHUVIWKZUWOWLYBBYHXTXSBWTHYABWJVSZUYCUWOWLW
      MTYBYGUXRUYALYJYBYCYDUXEYBYCUXLWKYBYDUXMWKYBUXEUXKWKYBUXEUXKVDWNTWOYKUWDY
      FUXEMKZUXRYBYGUWDUYELYJYBCYHYAXSCWTHXTCWJWGZUYCUWOWLTYGYBUXRUYELYJYEYFUXE
      MWPVSWOWOYBYGUWFYJYBYHYHMKZUWEUQYBUVBUVCUULUWJUYGUWELUWPUWTUVIUWKABYHWQWR
      YBYHUYCUWOWSXATYBYGYJXBYIUVKUVMEFXCXDYKUVPUUTFGYKUVOUUSEGYKAYHYIPKZLZBYHU
      VKPKZLZCYHUVMPKZLZUAZUVOUUSYBYGUYNYJYBUYIUYKUYMYBUYHAYBAYHUYBUYCUWOXEXFYB
      UYJBYBBYHUYDUYCUWOXEXFYBUYLCYBCYHUYFUYCUWOXEXFXITUVOUYIUUNUYKUUPUYMUURUVJ
      UVLUYIUUNVBUVNUVJUYHUUMAYIYQYHPXGXJTUVLUVJUYKUUPVBUVNUVLUYJUUOBUVKYTYHPXG
      XJVSUVNUVJUYMUURVBUVLUVNUYLUUQCUVMUUCYHPXGXJWGXHXKXLXLWIUUHUVADYHGYLYHLZU
      UFUUSFEGGUYOYSUUNUUBUUPUUEUURUYOYRUUMAYLYHYQPWPXJUYOUUAUUOBYLYHYTPWPXJUYO
      UUDUUQCYLYHUUCPWPXJXHXMXNUNUUIUUGDGQZFGQUUKUUGDFGGXOUYPUUJFGUUFDEGGXOXPXQ
      XR $.
  $}

  ${
    $d A k m n $.  $d B k m n $.  $d C k m n $.
    $( Parameterize the Pythagorean triples.  If ` A ` , ` B ` , and ` C ` are
       naturals, then they obey the Pythagorean triple formula iff they are
       parameterized by three naturals.  This proof follows the Isabelle proof
       at ~ http://afp.sourceforge.net/entries/Fermat3_4.shtml .  This is
       Metamath 100 proof #23.  (Contributed by Scott Fenton, 19-Apr-2014.) $)
    pythagtrip $p |- ( ( A e. NN /\ B e. NN /\ C e. NN ) ->
    ( ( ( A ^ 2 ) + ( B ^ 2 ) ) = ( C ^ 2 ) <->
       E. n e. NN E. m e. NN E. k e. NN
       ( { A , B } = { ( k x. ( ( m ^ 2 ) - ( n ^ 2 ) ) ) ,
                       ( k x. ( 2 x. ( m x. n ) ) ) } /\
         C = ( k x. ( ( m ^ 2 ) + ( n ^ 2 ) ) ) ) ) ) $=
      ( cn wcel w3a c2 cexp co wceq cmul wa wrex wo cdiv cdvds 3adant3 caddc cv
      cpr cmin wbr divgcdodd adantr pythagtriplem19 3expia simp12 simp11 simp13
      cgcd wn cc nnsqcl nncnd 3ad2ant1 3ad2ant2 addcomd eqeq1d biimpa cz gcdcom
      nnz syl2anc oveq2d breq2d biimp3a syl311anc orim12d mpd cvv ovex preq12bg
      notbid mpanr12 anbi1d rexbidv andir df-3an orbi12i 3ancoma orbi2i 3bitr2i
      wb 2rexbidv rexbii r19.43 bitri syl6bb mpbird ex wi pythagtriplem2 impbid
      2rexbii ) AGHZBGHZCGHZIZAJKLZBJKLZUALZCJKLZMZABUCDUBZEUBZJKLZFUBZJKLZUDLZ
      NLZXGJXHXJNLNLZNLZUCMZCXGXIXKUALNLMZOZDGPZEGPFGPZXAXFXTXAXFOZXTAXMMZBXOMZ
      XQIZDGPZEGPZFGPZBXMMZAXOMZXQIZDGPZEGPZFGPZQZYAJAABUMLZRLSUEUNZJBYORLZSUEZ
      UNZQZYNXAYTXFWRWSYTWTABUFTUGYAYPYGYSYMXAXFYPYGABCDEFUHUIXAXFYSYMXAXFYSIWS
      WRWTXCXBUALZXEMZJBBAUMLZRLZSUEZUNZYMWRWSWTXFYSUJWRWSWTXFYSUKWRWSWTXFYSULX
      AXFUUBYSXAXFUUBXAXDUUAXEXAXBXCWRWSXBUOHWTWRXBAUPUQURWSWRXCUOHWTWSXCBUPUQU
      SUTVAVBTXAXFYSUUFYAYRUUEYAYQUUDJSYAYOUUCBRYAAVCHZBVCHZYOUUCMXAUUGXFWRWSUU
      GWTAVEURUGXAUUHXFWSWRUUHWTBVEUSUGABVDVFVGVHVPVIBACDEFUHVJUIVKVLXAXTYNWFZX
      FWRWSUUIWTWRWSOZXTYBYCOZYIYHOZQZXQOZDGPZEGPFGPZYNUUJXSUUOFEGGUUJXRUUNDGUU
      JXPUUMXQUUJXMVMHXOVMHXPUUMWFXGXLNVNXGXNNVNABXMXOGGVMVMVOVQVRVSWGUUPYDYJQZ
      DGPZEGPFGPZYNUUOUURFEGGUUNUUQDGUUNUUKXQOZUULXQOZQYDYIYHXQIZQUUQUUKUULXQVT
      YDUUTUVBUVAYBYCXQWAYIYHXQWAWBUVBYJYDYIYHXQWCWDWEWHWQUUSYEYKQZEGPZFGPZYNUU
      RUVCFEGGYDYJDGWIWQUVEYFYLQZFGPYNUVDUVFFGYEYKEGWIWHYFYLFGWIWJWJWJWKTUGWLWM
      WRWSXTXFWNWTABCDEFWOTWP $.
  $}

  ${
    $d i j A $.  $d i j k B $.  $d i j n C $.  $d i j k m n ph $.
    iserodd.f $e |- ( ( ph /\ k e. NN0 ) -> C e. CC ) $.
    iserodd.h $e |- ( n = ( ( 2 x. k ) + 1 ) -> B = C ) $.
    $( Collect the odd terms in a sequence.  (Contributed by Mario Carneiro,
       7-Apr-2015.) $)
    iserodd $p |- ( ph -> ( seq 0 ( + , ( k e. NN0 |-> C ) ) ~~> A <->
      seq 1 ( + , ( n e. NN |-> if ( 2 || n , 0 , B ) ) ) ~~> A ) ) $=
      ( cn c2 wbr cc0 cn0 co c1 caddc wcel cfv wceq cc vi vj vm cdvds cmpt cmul
      cv cif nn0uz nnuz 0zd 1zzd 2nn0 a1i nn0mulcl sylan nn0p1nn syl eqid fmptd
      wa clt nn0red peano2nn0 syl2an 1red cr nn0re adantl ltp1d 2re 2pos ltmul2
      wb syl112anc mpbid ltadd1dd weq oveq2 oveq1d ovex fvmpt 3brtr4d cdif wral
      crn eldifi simpr 0cnd wn wrex cz nnz odd2np1 cle simprl cmin cdiv nnm1nn0
      ad2antlr nn0ge0d divge0 syl22anc simprr 2cn ad2antrl mulcl sylancr ax-1cn
      zcn pncan sylancl eqtr3d 2cnd 2ne0 divcan3d eqtrd breqtrd elnn0z sylanbrc
      wne ex wi eqcomd jcad reximdv2 sylbid eleq1d fvmpt2 syl2anc cvv ralrimiva
      nfv nffvmpt1 nfeq1 fveq2 cbvral sylib r19.21bi fveq2d syl5ibrcom syld imp
      rexlimdva adantr ifclda sylan2 eldif vex cbvmptv elrnmpt ax-mp con1d impr
      syl6ibr sylan2b iftrued eqeq1d ffvelrnda nn0z dvdsmul1 nn0zd 1lt2 ndvdsp1
      2z 2nn syl3anc mpd iffalsed eqeltrd ifbieq2d fvmptg 3eqtrd eqtr4d eqeq12d
      breq2 isercoll2 ) ABUAUBFIJFUGZUDKZLCUHZUEZUCMJUCUGZUFNZOPNZUEZEMDUEZLOIM
      UIUJAUKAULAUCMUWDIUWEAUWBMQZVAUWCMQZUWDIQAJMQZUWGUWHUWIAUMUNZJUWBUOUPUWCU
      QURUWEUSZUTAUAUGZMQZVAZJUWLUFNZOPNZJUWLOPNZUFNZOPNZUWLUWERZUWQUWERZVBUWNU
      WOUWROUWNUWOAUWIUWMUWOMQUWJJUWLUOUPVCUWNUWRAUWIUWQMQZUWRMQUWMUWJUWLVDZJUW
      QUOVEVCUWNVFUWNUWLUWQVBKZUWOUWRVBKZUWNUWLUWMUWLVGQZAUWLVHVIZVJUWNUXFUWQVG
      QJVGQZLJVBKZUXDUXEVNUXGUWNUWQUWMUXBAUXCVIZVCUXHUWNVKUNUXIUWNVLUNUWLUWQJVM
      VOVPVQUWMUWTUWPSAUCUWLUWDUWPMUWEUCUAVRUWCUWOOPUWBUWLJUFVSVTUWKUWOOPWAWBVI
      UWNUXBUXAUWSSUXJUCUWQUWDUWSMUWEUWBUWQSUWCUWROPUWBUWQJUFVSVTUWKUWROPWAWBUR
      WCAUBUGZUWARZLSZUBIUWEWFZWDZAUVRUWARZLSZFUXOWEUXMUBUXOWEAUXQFUXOAUVRUXOQZ
      VAZUXPUVTLUXRAUVRIQZUXPUVTSZUVRIUXNWGAUXTVAZUXTUVTTQUYAAUXTWHUYBUVSLCTUYB
      UVSVAWIUYBUVSWJZCTQZUYBUYCUVRJEUGZUFNZOPNZSZEMWKZUYDUYBUYCUYGUVRSZEWLWKZU
      YIUYBUVRWLQZUYCUYKVNUXTUYLAUVRWMVIEUVRWNURUYBUYJUYHEWLMUYBUYEWLQZUYJVAZUY
      EMQZUYHUYBUYNUYOUYBUYNVAZUYMLUYEWOKUYOUYBUYMUYJWPUYPLUVROWQNZJWRNZUYEWOUY
      PUYQVGQLUYQWOKUXHUXILUYRWOKUYPUYQUXTUYQMQAUYNUVRWSWTZVCUYPUYQUYSXAUXHUYPV
      KUNUXIUYPVLUNUYQJXBXCUYPUYRUYFJWRNUYEUYPUYQUYFJWRUYPUYGOWQNZUYQUYFUYPUYGU
      VROWQUYBUYMUYJXDVTUYPUYFTQZOTQUYTUYFSUYPJTQUYETQZVUAXEUYMVUBUYBUYJUYEXJXF
      ZJUYEXGXHXIUYFOXKXLXMVTUYPUYEJVUCUYPXNJLYAUYPXOUNXPXQXRUYEXSXTYBUYNUYHYCU
      YBUYNUYGUVRUYMUYJWHYDUNYEYFYGZAUYIUYDYCUXTAUYHUYDEMAUYOVAZUYDUYHDTQZGUYHC
      DTHYHUUAUUDUUEUUBUUCUUFZFIUVTTUWAUWAUSZYIYJUUGUXSUVSLCUXRAUXTUVRUXNQZWJZV
      AUVSUVRIUXNUUHAUXTVUJUVSUYBUVSVUIUYBUYCUYIVUIVUDUVRYKQVUIUYIVNFUUIEMUYGUV
      RUWEYKUCEMUWDUYGUCEVRUWCUYFOPUWBUYEJUFVSVTZUUJUUKUULUUOUUMUUNUUPUUQXQYLUX
      QUXMFUBUXOUXQUBYMFUXLLFIUVTUXKYNYOFUBVRUXPUXLLUVRUXKUWAYPUURYQYRYSAITUXKU
      WAAFIUVTTUWAVUGVUHUTUUSAUWLUWFRZUWTUWARZSZUAMAUYEUWFRZUYEUWERZUWARZSZEMWE
      VUNUAMWEAVUREMVUEVUODVUQVUEUYOVUFVUODSAUYOWHGEMDTUWFUWFUSYIYJVUEVUQUYGUWA
      RZJUYGUDKZLDUHZDVUEVUPUYGUWAUYOVUPUYGSAUCUYEUWDUYGMUWEVUKUWKUYFOPWAWBVIYT
      VUEUYGIQZVVATQVUSVVASVUEUYFMQZVVBAUWIUYOVVCUWJJUYEUOUPZUYFUQURVUEVVADTVUE
      VUTLDVUEJUYFUDKZVUTWJZVUEJWLQUYMVVEUVEUYOUYMAUYEUUTVIJUYEUVAXHVUEUYFWLQJI
      QZOJVBKZVVEVVFYCVUEUYFVVDUVBVVGVUEUVFUNVVHVUEUVCUNJUYFUVDUVGUVHUVIZGUVJFU
      YGUVTVVAITUWAUYHUVSVUTCDLUVRUYGJUDUVPHUVKVUHUVLYJVVIUVMUVNYLVURVUNEUAMVUR
      UAYMEVULVUMEMDUWLYNYOEUAVRZVUOVULVUQVUMUYEUWLUWFYPVVJVUPUWTUWAUYEUWLUWEYP
      YTUVOYQYRYSUVQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The prime count function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c pCnt $.

  $( Extend class notation with the prime count function. $)
  cpc $a class pCnt $.

  ${
    $d p r z x y n $.
    $( Define the prime count function, which returns the largest exponent of a
       given prime (or other positive integer) that divides the number.  For
       rational numbers, it returns negative values according to the power of a
       prime in the denominator.  (Contributed by Mario Carneiro,
       23-Feb-2014.) $)
    df-pc $a |- pCnt = ( p e. Prime , r e. QQ |-> if ( r = 0 , +oo ,
      ( iota z E. x e. ZZ E. y e. NN ( r = ( x / y ) /\
        z = ( sup ( { n e. NN0 | ( p ^ n ) || x } , RR , < ) -
              sup ( { n e. NN0 | ( p ^ n ) || y } , RR , < ) ) ) ) ) ) $.
  $}

  ${
    $d x y z A $.  $d n x y z N $.  $d n x y z P $.  $d x S $.
    pclem.1 $e |- A = { n e. NN0 | ( P ^ n ) || N } $.
    $( - Lemma for the prime power pre-function's properties.  (Contributed by
       Mario Carneiro, 23-Feb-2014.) $)
    pclem $p |- ( ( P e. ( ZZ>= ` 2 ) /\ ( N e. ZZ /\ N =/= 0 ) ) ->
          ( A C_ ZZ /\ A =/= (/) /\ E. x e. ZZ A. y e. A y <_ x ) ) $=
      ( wcel cz cc0 wa wbr cn0 cexp co cdvds adantr ad2antrl cn cr c2 cuz c0 cv
      cfv wne wss cle wral wrex crab ssrab2 eqsstri nn0ssz sstri a1i 0nn0 c1 cc
      eluzelcn exp0d 1dvds eqbrtrd wceq oveq2 breq1d elrab2 sylanbrc ne0i nnssz
      syl cabs clt zcn abscld eluzelre eluz2b2 simprbi expnbnd syl3anc wi sylib
      simprr simprd eluz2nn ad2antrr simpld nnexpcld nnzd simplrl dvdsleabs mpd
      simplrr nnred nnnn0 reexpcld lelttr mpand nnz ltexp2d sylibrd nn0red nnre
      nn0zd ltle syl2anc syld anassrs ralrimdva reximdva ssrexv mpsyl 3jca ) DU
      AUBUEHZFIHZFJUFZKZKZCIUGZCUCUFZBUDZAUDZUHLZBCUIZAIUJZXSXRCMICDEUDZNOZFPLZ
      EMUKMGYHEMULUMUNUOUPXRJCHZXTXRJMHZDJNOZFPLZYIYJXRUQUPXRYKURFPXRDXNDUSHXQU
      ADUTQVAXOURFPLXNXPFVBRVCYHYLEJMCYFJVDYGYKFPYFJDNVEVFGVGVHCJVIVKSIUGXRYDAS
      UJZYEVJXRFVLUEZDYBNOZVMLZASUJZYMXRYNTHZDTHZURDVMLZYQXOYRXNXPXOFFVNVORZXNY
      SXQUADVPZQXNYTXQXNDSHZYTDVQVRZQYNDAVSVTXRYPYDASXRYBSHZKYPYCBCXRUUEYACHZYP
      YCWAXRUUEUUFKZKZYPYAYBVMLZYCUUHYPDYANOZYOVMLZUUIUUHUUJYNUHLZYPUUKUUHUUJFP
      LZUULUUHYAMHZUUMUUHUUFUUNUUMKXRUUEUUFWCYHUUMEYAMCYFYAVDYGUUJFPYFYADNVEVFG
      VGWBZWDUUHUUJIHXOXPUUMUULWAUUHUUJUUHDYAXNUUCXQUUGDWEWFUUHUUNUUMUUOWGZWHZW
      IXNXOXPUUGWJXNXOXPUUGWMUUJFWKVTWLUUHUUJTHYRYOTHUULYPKUUKWAUUHUUJUUQWNXRYR
      UUGUUAQUUHDYBXNYSXQUUGUUBWFZUUEYBMHXRUUFYBWORWPUUJYNYOWQVTWRUUHDYAYBUURUU
      HYAUUPXDUUEYBIHXRUUFYBWSRXNYTXQUUGUUDWFWTXAUUHYATHYBTHZUUIYCWAUUHYAUUPXBU
      UEUUSXRUUFYBXCRYAYBXEXFXGXHXIXJWLYDASIXKXLXM $.

    pclem.2 $e |- S = sup ( A , RR , < ) $.
    $( Closure of the prime power pre-function.  (Contributed by Mario
       Carneiro, 23-Feb-2014.) $)
    pcprecl $p |- ( ( P e. ( ZZ>= ` 2 ) /\ ( N e. ZZ /\ N =/= 0 ) ) ->
                    ( S e. NN0 /\ ( P ^ S ) || N ) ) $=
      ( vz vy vx wcel cz wne wa cn0 cexp co cdvds wbr cv c2 cuz cfv cc0 cr csup
      clt wss c0 cle wral wrex w3a pclem suprzcl2 syl syl5eqel wceq breq1d crab
      oveq2 cbvrabv eqtri elrab2 sylib ) BUAUBUCKELKEUDMNNZCAKCOKBCPQZERSZNVFCA
      UEUGUFZAGVFALUHAUIMHTITUJSHAUKILULUMVIAKIHABDEFUNIHAUOUPUQBJTZPQZERSZVHJC
      OAVJCURVKVGERVJCBPVAUSABDTZPQZERSZDOUTVLJOUTFVOVLDJOVMVJURVNVKERVMVJBPVAU
      SVBVCVDVE $.

    $( Non-divisibility property of the prime power pre-function.  (Contributed
       by Mario Carneiro, 23-Feb-2014.) $)
    pcprendvds $p |- ( ( P e. ( ZZ>= ` 2 ) /\ ( N e. ZZ /\ N =/= 0 ) ) ->
                       -. ( P ^ ( S + 1 ) ) || N ) $=
      ( vy vx wcel cz wne co cexp cdvds wbr cle cn0 cr cv c2 cuz wa c1 caddc wn
      cfv cc0 pcprecl simpld nn0re clt ltp1 peano2re ltnle mpdan mpbid 3syl wss
      wb c0 wral wrex w3a pclem peano2nn0 wceq oveq2 breq1d crab cbvrabv elrab2
      wi eqtri simplbi2 csup suprzub syl6breqr 3expia 3adant2 sylsyld mtod ) BU
      AUBUGJEKJEUHLUCUCZBCUDUEMZNMZEOPZWDCQPZWCCRJZCSJZWGUFZWCWHBCNMEOPABCDEFGU
      IUJZCUKWICWDULPZWJCUMWIWDSJWLWJUTCUNCWDUOUPUQURWCAKUSZAVALZHTITZQPHAVBIKV
      CZVDWFWDAJZWGIHABDEFVEWCWHWDRJZWFWQVMWKCVFWQWRWFBWONMZEOPZWFIWDRAWOWDVGWS
      WEEOWOWDBNVHVIABDTZNMZEOPZDRVJWTIRVJFXCWTDIRXAWOVGXBWSEOXAWOBNVHVIVKVNVLV
      OURWMWPWQWGVMWNWMWPWQWGWMWPWQVDWDASULVPCQIHAWDVQGVRVSVTWAWB $.

    $( Non-divisibility property of the prime power pre-function.  (Contributed
       by Mario Carneiro, 23-Feb-2014.) $)
    pcprendvds2 $p |- ( ( P e. ( ZZ>= ` 2 ) /\ ( N e. ZZ /\ N =/= 0 ) ) ->
                       -. P || ( N / ( P ^ S ) ) ) $=
      ( wcel cz cc0 wne wa cexp co cdvds wbr cmul nnzd syl3anc nncnd c2 cuz cfv
      cdiv c1 caddc pcprendvds wi cn eluz2nn adantr cn0 pcprecl simprd nnexpcld
      wb simpld nnne0d simprl dvdsval2 mpbid dvdscmul expp1d eqcomd cc ad2antrl
      zcn divcan2d breq12d sylibd mtod ) BUAUBUCHZEIHZEJKZLZLZBEBCMNZUDNZOPZBCU
      EUFNMNZEOPZABCDEFGUGVPVSVQBQNZVQVRQNZOPZWAVPBIHVRIHZVQIHZVSWDUHVPBVLBUIHV
      OBUJUKZRVPVQEOPZWEVPCULHZWHABCDEFGUMZUNVPWFVQJKVMWHWEUPVPVQVPBCWGVPWIWHWJ
      UQZUOZRZVPVQWLURZVLVMVNUSVQEUTSVAWMVQBVRVBSVPWBVTWCEOVPVTWBVPBCVPBWGTWKVC
      VDVPEVQVMEVEHVLVNEVGVFVPVQWLTWNVHVIVJVK $.

    $( Value of the prime power pre-function at 1.  (Contributed by Mario
       Carneiro, 23-Feb-2014.)  (Revised by Mario Carneiro, 26-Apr-2016.) $)
    pcpre1 $p |- ( ( P e. ( ZZ>= ` 2 ) /\ N = 1 ) -> S = 0 ) $=
      ( wcel c1 wceq wa cc0 cle wbr cexp co cdvds cz wne mpbiri c2 cuz 1z eleq1
      cfv cn0 ax-1ne0 neeq1 jca pcprecl sylan2 simprd breqtrd cn eluz2nn adantr
      simpr wi simpld nnexpcld nnzd 1nn dvdsle sylancl mpd nncnd exp0d breqtrrd
      nnred nn0zd 0zd clt eluz2b2 simprbi leexp2d mpbird wb nn0le0eq0 syl mpbid
      ) BUAUBUEHZEIJZKZCLMNZCLJZWCWDBCOPZBLOPZMNWCWFIWGMWCWFIQNZWFIMNZWCWFEIQWC
      CUFHZWFEQNZWBWAERHZELSZKZWJWKKWBWLWMWBWLIRHUCEIRUDTWBWMILSUGEILUHTUIZABCD
      EFGUJZUKZULWAWBUQUMWCWFRHIUNHWHWIURWCWFWCBCWABUNHZWBBUOUPZWCWJWKWQUSZUTVA
      VBWFIVCVDVEWCBWCBWSVFVGVHWCBCLWCBWSVIWCCWTVJWCVKWAIBVLNZWBWAWRXABVMVNUPVO
      VPWCWJWDWEVQWBWAWNWJWOWAWNKWJWKWPUSUKCVRVSVT $.
  $}

  ${
    $d n x y M $.  $d n x y N $.  $d n x y P $.  $d x S $.  $d x T $.
    pcpremul.1 $e |- S = sup ( { n e. NN0 | ( P ^ n ) || M } , RR , < ) $.
    pcpremul.2 $e |- T = sup ( { n e. NN0 | ( P ^ n ) || N } , RR , < ) $.
    pcpremul.3 $e |- U = sup (
                       { n e. NN0 | ( P ^ n ) || ( M x. N ) } , RR , < ) $.
    $( Multiplicative property of the prime count pre-function.  Note that the
       primality of ` P ` is essential for this property; ` ( 4 pCnt 2 ) = 0 `
       but ` ( 4 pCnt ( 2 x. 2 ) ) = 1 =/= 2 x. ( 4 pCnt 2 ) = 0 ` .  Since
       this is needed to show uniqueness for the real prime count function
       (over ` QQ ` ), we don't bother to define it off the primes.
       (Contributed by Mario Carneiro, 23-Feb-2014.) $)
    pcpremul $p |- ( ( P e. Prime /\ ( M e. ZZ /\ M =/= 0 ) /\
                     ( N e. ZZ /\ N =/= 0 ) ) -> ( S + T ) = U ) $=
      ( wcel cz wa co wbr cexp cmul cdvds cn0 syl3anc vy vx cprime cc0 wne wceq
      w3a caddc cle clt wn cv crab cr csup wss wral wrex c0 c2 cuz cfv 3ad2ant1
      prmuz2 zmulcl ad2ant2r 3adant1 cc zcn anim1i mulne0 syl2an pclem syl12anc
      eqid simp1d simp3d simp2l simp2r pcprecl simpld simp3l nn0addcld cn prmnn
      simp3r nncnd expaddd simprd wi nnexpcld nnzd dvdsmulc mpd eqbrtrd zmulcld
      dvdscmul dvdstr mp2and breq1d sylanbrc cbvrabv syl6eleq suprzub syl6breqr
      oveq2 elrab wo pcprendvds2 ioran wb simp1 nnne0d dvdsval2 euclemma mtbird
      cdiv mpbid c1 nn0ltp1le syl2anc peano2nn0 syl dvdsexp 3expia mpan2d nn0zd
      syld eluz expp1d zcnd mulcld divcan2d oveq2d divmuldivd breq12d dvdscmulr
      eqtr4d eqtr3d nn0red syl112anc bitrd 3imtr3d sylbid eqleltd mpbir2and
      mtod ) AUCKZFLKZFUDUEZMZGLKZGUDUEZMZUGZBCUHNZDUFUUPDUIOUUPDUJOZUKUUOUUPAE
      ULZPNZFGQNZROZESUMZUNUJUOZDUIUUOUVBLUPZUAULUBULZUIOUAUVBUQUBLURZUUPUVBKUU
      PUVCUIOUUOUVDUVBUSUEZUVFUUOAUTVAVBKZUUTLKZUUTUDUEZUVDUVGUVFUGUUHUUKUVHUUN
      AVDVCZUUKUUNUVIUUHUUIUULUVIUUJUUMFGVEVFVGZUUKUUNUVJUUHUUKFVHKZUUJMGVHKZUU
      MMUVJUUNUUIUVMUUJFVIVJUULUVNUUMGVIVJFGVKVLVGZUBUAUVBAEUUTUVBVOZVMVNZVPUUO
      UVDUVGUVFUVQVQUUOUUPAUVEPNZUUTROZUBSUMZUVBUUOUUPSKZAUUPPNZUUTROZUUPUVTKUU
      OBCUUOBSKZABPNZFROZUUOUVHUUIUUJUWDUWFMUVKUUHUUIUUJUUNVRZUUHUUIUUJUUNVSZUU
      SFROESUMZABEFUWIVOZHVTVNZWAZUUOCSKZACPNZGROZUUOUVHUULUUMUWMUWOMUVKUUHUUKU
      ULUUMWBZUUHUUKUULUUMWFZUUSGROESUMZACEGUWRVOZIVTVNZWAZWCZUUOUWBFUWNQNZROZU
      XCUUTROZUWCUUOUWBUWEUWNQNZUXCRUUOABCUUOAUUHUUKAWDKUUNAWEVCZWGZUXAUWLWHZUU
      OUWFUXFUXCROZUUOUWDUWFUWKWIZUUOUWELKZUUIUWNLKZUWFUXJWJUUOUWEUUOABUXGUWLWK
      ZWLZUWGUUOUWNUUOACUXGUXAWKZWLZUWNUWEFWMTWNWOUUOUWOUXEUUOUWMUWOUWTWIZUUOUX
      MUULUUIUWOUXEWJUXQUWPUWGFUWNGWQTWNUUOUWBLKZUXCLKUVIUXDUXEMUWCWJUUOUWBUUOA
      UUPUXGUXBWKZWLZUUOFUWNUWGUXQWPUVLUWBUXCUUTWRTWSUVSUWCUBUUPSUVEUUPUFUVRUWB
      UUTRUVEUUPAPXFWTXGXAUVSUVAUBESUVEUURUFUVRUUSUUTRUVEUURAPXFWTXBXCUBUAUVBUU
      PXDTJXEUUOUUQAFUWEXQNZGUWNXQNZQNZROZUUOUYEAUYBROZAUYCROZXHZUUOUYFUKZUYGUK
      ZUYHUKUUOUVHUUIUUJUYIUVKUWGUWHUWIABEFUWJHXIVNUUOUVHUULUUMUYJUVKUWPUWQUWRA
      CEGUWSIXIVNUYFUYGXJXAUUOUUHUYBLKZUYCLKZUYEUYHXKUUHUUKUUNXLUUOUWFUYKUXKUUO
      UXLUWEUDUEUUIUWFUYKXKUXOUUOUWEUXNXMZUWGUWEFXNTXRZUUOUWOUYLUXRUUOUXMUWNUDU
      EUULUWOUYLXKUXQUUOUWNUXPXMZUWPUWNGXNTXRZAUYBUYCXOTXPUUOUUQUUPXSUHNZDUIOZU
      YEUUOUWADSKZUUQUYRXKUXBUUOUYSADPNZUUTROZUUOUVHUVIUVJUYSVUAMUVKUVLUVOUVBAD
      EUUTUVPJVTVNZWAZUUPDXTYAUUODUYQVAVBKZAUYQPNZUUTROZUYRUYEUUOVUDVUEUYTROZVU
      FUUOALKZUYQSKZVUDVUGWJUUOAUXGWLZUUOUWAVUIUXBUUPYBYCZVUHVUIVUDVUGAUYQDYDYE
      YAUUOVUGVUAVUFUUOUYSVUAVUBWIUUOVUELKUYTLKUVIVUGVUAMVUFWJUUOVUEUUOAUYQUXGV
      UKWKWLUUOUYTUUOADUXGVUCWKWLUVLVUEUYTUUTWRTYFYHUUOUYQLKDLKVUDUYRXKUUOUYQVU
      KYGUUODVUCYGUYQDYIYAUUOVUFUWBAQNZUWBUYDQNZROZUYEUUOVUEVULUUTVUMRUUOAUUPUX
      HUXBYJUUOUWBUUTUWBXQNZQNUUTVUMUUOUUTUWBUUOFGUUOFUWGYKZUUOGUWPYKZYLUUOUWBU
      XTWGUUOUWBUXTXMZYMUUOVUOUYDUWBQUUOVUOUUTUXFXQNUYDUUOUWBUXFUUTXQUXIYNUUOFU
      WEGUWNVUPUUOUWEUXNWGVUQUUOUWNUXPWGUYMUYOYOYRYNYSYPUUOVUHUYDLKUXSUWBUDUEVU
      NUYEXKVUJUUOUYBUYCUYNUYPWPUYAVURUWBAUYDYQUUAUUBUUCUUDUUGUUOUUPDUUOUUPUXBY
      TUUODVUCYTUUEUUF $.
  $}

  ${
    $d n p r s t w x y z N $.  $d n p s t r w x y z P $.  $d p r s t w z S $.
    $d p r s t w z T $.  $d z ph $.
    pcval.1 $e |- S = sup ( { n e. NN0 | ( P ^ n ) || x } , RR , < ) $.
    pcval.2 $e |- T = sup ( { n e. NN0 | ( P ^ n ) || y } , RR , < ) $.
    $( The value of the prime power function.  (Contributed by Mario Carneiro,
       23-Feb-2014.)  (Revised by Mario Carneiro, 3-Oct-2014.) $)
    pcval $p |- ( ( P e. Prime /\ ( N e. QQ /\ N =/= 0 ) ) -> ( P pCnt N ) =
       ( iota z E. x e. ZZ E. y e. NN ( N = ( x / y ) /\ z = ( S - T ) ) ) ) $=
      ( cc0 co cv wceq wa cpnf cdvds cn0 cr clt vp vr cprime wcel wne cdiv cmin
      cq cpc cn wrex cio cif cexp wbr crab csup simpr eqeq1d eqeq1 oveq1 breq1d
      rabbidv supeq1d syl6eqr eqeq2d bi2anan9r 2rexbidv iotabidv ifbieq2d df-pc
      cz oveq12d pnfex iotaex ifex ovmpt2a ifnefalse sylan9eq anasss ) DUCUDZHU
      HUDZHKUEZDHUILZHAMZBMZUFLZNZCMZEFUGLZNZOZBUJUKAVLUKZCULZNWAWBOWCWDHKNZPWN
      UMZWNUAUBDHUCUHUBMZKNZPWQWGNZWIUAMZGMZUNLZWEQUOZGRUPZSTUQZXBWFQUOZGRUPZST
      UQZUGLZNZOZBUJUKAVLUKZCULZUMWPUIWTDNZWQHNZOZWRWOXMWNPXPWQHKXNXOURUSXPXLWM
      CXPXKWLABVLUJXOWSWHXNXJWKWQHWGUTXNXIWJWIXNXEEXHFUGXNXEDXAUNLZWEQUOZGRUPZS
      TUQEXNSXDXSTXNXCXRGRXNXBXQWEQWTDXAUNVAZVBVCVDIVEXNXHXQWFQUOZGRUPZSTUQFXNS
      XGYBTXNXFYAGRXNXBXQWFQXTVBVCVDJVEVMVFVGVHVIVJABCGUBUAVKWOPWNVNWMCVOVPVQHK
      PWNVRVSVT $.

    ${
      pceu.3 $e |- U = sup ( { n e. NN0 | ( P ^ n ) || s } , RR , < ) $.
      pceu.4 $e |- V = sup ( { n e. NN0 | ( P ^ n ) || t } , RR , < ) $.
      pceu.5 $e |- ( ph -> P e. Prime ) $.
      pceu.6 $e |- ( ph -> N =/= 0 ) $.
      pceu.7 $e |- ( ph -> ( x e. ZZ /\ y e. NN ) ) $.
      pceu.8 $e |- ( ph -> N = ( x / y ) ) $.
      pceu.9 $e |- ( ph -> ( s e. ZZ /\ t e. NN ) ) $.
      pceu.10 $e |- ( ph -> N = ( s / t ) ) $.
      $( Lemma for ~ pceu .  (Contributed by Mario Carneiro, 23-Feb-2014.) $)
      pceulem $p |- ( ph -> ( S - T ) = ( U - V ) ) $=
        ( vz caddc co wceq cmin cv cexp cmul cdvds wbr cn0 crab cr csup cz wcel
        clt simprd nncnd simpld zcnd mulcomd cdiv eqtr3d nnne0d divmuleqd mpbid
        cn eqtrd breq2d rabbidv oveq2 breq1d cbvrabv 3eqtr4g supeq1d cprime cc0
        wne nnzd div0d eqeq1d syl5ibrcom sylibrd necon3d mpd pcpremul syl122anc
        oveq1 eqid 3eqtr4d c2 cuz cfv prmuz2 syl wa pcprecl syl12anc addsubeq4d
        nn0cnd ) AGHUDUEZFKUDUEZUFFGUGUEHKUGUEUFAEIUHZUIUEZCUHZLUHZUJUEZUKULZIU
        MUNZUOUSUPZXGBUHZDUHZUJUEZUKULZIUMUNZUOUSUPZXDXEAUOXLXRUSAEUCUHZUIUEZXJ
        UKULZUCUMUNYAXPUKULZUCUMUNXLXRAYBYCUCUMAXJXPYAUKAXJXIXHUJUEZXPAXHXIAXHA
        XNUQURZXHVJURZSUTZVAZAXIAXIUQURZXOVJURZUAVBZVCZVDAXIXOVEUEZXNXHVEUEZUFY
        DXPUFAJYMYNUBTVFAXIXOXNXHYLAXOAYIYJUAUTZVAZAXNAYEYFSVBZVCYHAXOYOVGZAXHY
        GVGZVHVIVKVLVMXKYBIUCUMXFXTUFZXGYAXJUKXFXTEUIVNZVOVPXQYCIUCUMYTXGYAXPUK
        UUAVOVPVQVRAEVSURZXHUQURZXHVTWAZYIXIVTWAZXDXMUFQAXHYGWBZYSYKAJVTWAZUUER
        AXIVTJVTAXIVTUFZYMVTUFZJVTUFZAUUIUUHVTXOVEUEZVTUFAXOYPYRWCUUHYMUUKVTXIV
        TXOVEWKWDWEAJYMVTUBWDWFWGWHZEGHXMIXHXINOXMWLWIWJAUUBYEXNVTWAZXOUQURZXOV
        TWAZXEXSUFQYQAUUGUUMRAXNVTJVTAXNVTUFZYNVTUFZUUJAUUQUUPVTXHVEUEZVTUFAXHY
        HYSWCUUPYNUURVTXNVTXHVEWKWDWEAJYNVTTWDWFWGWHZAXOYOWBZYREFKXSIXNXOMPXSWL
        WIWJWMAGHFKAGAEWNWOWPURZUUCUUDGUMURZAUUBUVAQEWQWRZUUFYSUVAUUCUUDWSWSUVB
        EGUIUEXHUKULXGXHUKULIUMUNZEGIXHUVDWLNWTVBXAXCAHAUVAYIUUEHUMURZUVCYKUULU
        VAYIUUEWSWSUVEEHUIUEXIUKULXGXIUKULIUMUNZEHIXIUVFWLOWTVBXAXCAFAUVAYEUUMF
        UMURZUVCYQUUSUVAYEUUMWSWSUVGEFUIUEXNUKULXGXNUKULIUMUNZEFIXNUVHWLMWTVBXA
        XCAKAUVAUUNUUOKUMURZUVCUUTYRUVAUUNUUOWSWSUVIEKUIUEXOUKULXGXOUKULIUMUNZE
        KIXOUVJWLPWTVBXAXCXBVI $.
    $}

    $( Uniqueness for the prime power function.  (Contributed by Mario
       Carneiro, 23-Feb-2014.) $)
    pceu $p |- ( ( P e. Prime /\ ( N e. QQ /\ N =/= 0 ) ) ->
             E! z E. x e. ZZ E. y e. NN ( N = ( x / y ) /\ z = ( S - T ) ) ) $=
      ( wcel wa cv co wceq cmin cn wrex cz cdvds vs vt vw cprime cq cc0 wne wex
      cdiv cexp wbr cn0 crab cr clt csup wi wal weu simprl elq sylib ovex biidd
      ceqsexv exancom bitr3i rexbii rexcom4 eqid simp11l simp11r simp12 simp13l
      bitri w3a simp2 simp3l pceulem simp13r simp3r 3eqtr4d 3exp rexlimdvv impd
      adantrl alrimivv eqeq1 anbi2d 2rexbidv oveq1 eqeq2d breq2 rabbidv supeq1d
      syl5eq oveq1d anbi12d rexbidv oveq2 oveq2d cbvrexv syl6bb eu4 sylanbrc )
      DUDKZHUEKZHUFUGZLLZHAMZBMZUINZOZCMZEFPNZOZLZBQRZASRZCUHZXSHUAMZUBMZUINZOZ
      UCMZDGMUJNZYATUKZGULUMZUNUOUPZYFYBTUKZGULUMZUNUOUPZPNZOZLZUBQRZUASRZLXNYE
      OZUQZUCURCURXSCUSXIXMBQRZASRZXTXIXGUUAXFXGXHUTABHVAVBUUAXRCUHZASRXTYTUUBA
      SYTXQCUHZBQRUUBXMUUCBQXMXPXMLCUHUUCXMXMCXOEFPVCXPXMVDVEXPXMCVFVGVHXQBCQVI
      VOVHXRACSVIVOVBXIYSCUCXIXSYQYRXIXQYQYRUQZABSQXFXHXJSKXKQKLZXQUUDUQUQXGXFX
      HLZUUEXQUUDUUFUUEXQVPZYOYRUAUBSQUUGYASKYBQKLZYOYRUUGUUHYOVPZXOYMXNYEUUIAB
      UBDEFYIGHYLUAIJYIVJYLVJXFXHUUEXQUUHYOVKXFXHUUEXQUUHYOVLUUFUUEXQUUHYOVMXMX
      PUUFUUEUUHYOVNUUGUUHYOVQUUGUUHYDYNVRVSXMXPUUFUUEUUHYOVTUUGUUHYDYNWAWBWCWD
      WCWFWDWEWGXSYQCUCYRXSXMYEXOOZLZBQRZASRYQYRXQUUKABSQYRXPUUJXMXNYEXOWHWIWJU
      ULYPAUASXJYAOZUULHYAXKUINZOZYEYIFPNZOZLZBQRYPUUMUUKUURBQUUMXMUUOUUJUUQUUM
      XLUUNHXJYAXKUIWKWLUUMXOUUPYEUUMEYIFPUUMEYFXJTUKZGULUMZUNUOUPYIIUUMUNUUTYH
      UOUUMUUSYGGULXJYAYFTWMWNWOWPWQWLWRWSUURYOBUBQXKYBOZUUOYDUUQYNUVAUUNYCHXKY
      BYAUIWTWLUVAUUPYMYEUVAFYLYIPUVAFYFXKTUKZGULUMZUNUOUPYLJUVAUNUVCYKUOUVAUVB
      YJGULXKYBYFTWMWNWOWPXAWLWRXBXCXBXCXDXE $.
  $}

  ${
    $d n x y z N $.  $d n x y z P $.  $d x y z S $.
    pczpre.1 $e |- S = sup ( { n e. NN0 | ( P ^ n ) || N } , RR , < ) $.
    $( Connect the prime count pre-function to the actual prime count function,
       when restricted to the integers.  (Contributed by Mario Carneiro,
       23-Feb-2014.)  (Proof shortened by Mario Carneiro, 24-Dec-2016.) $)
    pczpre $p |- ( ( P e. Prime /\ ( N e. ZZ /\ N =/= 0 ) ) ->
                    ( P pCnt N ) = S ) $=
      ( vx vy vz wcel cz wa co wceq cdvds cn0 cr clt cmin eqid c1 cprime cc0 cv
      wne cpc cdiv cexp wbr crab csup cn wrex cio cq pcval sylanr1 simprl div1d
      zq zcnd eqcomd cuz cfv prmuz2 pcpre1 sylancl adantr oveq2d pcprecl simpld
      c2 sylan nn0cnd subid1d eqtr2d oveq1 eqeq2d breq2 rabbidv supeq1d syl6eqr
      1nn oveq1d anbi12d oveq2 rspc2ev mp3an2 syl12anc cvv weu wb supex eqeltri
      ltso pceu eqeq1 anbi2d 2rexbidv iota2 sylancr mpbid eqtrd ) AUAIZDJIZDUBU
      DZKZKZADUELZDFUCZGUCZUFLZMZHUCZACUCUGLZXINUHZCOUIZPQUJZXNXJNUHZCOUIZPQUJZ
      RLZMZKZGUKULFJULZHUMZBXDXCDUNIZXEXHYEMDUSZFGHAXQXTCDXQSZXTSZUOUPXGXLBYAMZ
      KZGUKULFJULZYEBMZXGXDDDTUFLZMZBBXNTNUHZCOUIZPQUJZRLZMZYLXCXDXEUQZXGYNDXGD
      XGDUUAUTURVAXGYSBUBRLBXGYRUBBRXCYRUBMZXFXCAVKVBVCIZTTMUUBAVDZTSYQAYRCTYQS
      YRSVEVFVGVHXGBXGBXGBOIZABUGLDNUHZXCUUCXFUUEUUFKUUDXNDNUHZCOUIZABCDUUHSEVI
      VLVJVMVNVOXDTUKIYOYTKZYLWBYKUUIDDXJUFLZMZBBXTRLZMZKFGDTJUKXIDMZXLUUKYJUUM
      UUNXKUUJDXIDXJUFVPVQUUNYAUULBUUNXQBXTRUUNXQUUHPQUJZBUUNPXPUUHQUUNXOUUGCOX
      IDXNNVRVSVTEWAWCVQWDXJTMZUUKYOUUMYTUUPUUJYNDXJTDUFWEVQUUPUULYSBUUPXTYRBRU
      UPPXSYQQUUPXRYPCOXJTXNNVRVSVTVHVQWDWFWGWHXGBWIIYDHWJZYLYMWKBUUOWIEPUUHQWN
      WLWMXDXCYFXEUUQYGFGHAXQXTCDYHYIWOUPYDYLHBWIXMBMZYCYKFGJUKUURYBYJXLXMBYAWP
      WQWRWSWTXAXB $.
  $}

  ${
    $d x N $.  $d x P $.
    $( Closure of the prime power function.  (Contributed by Mario Carneiro,
       23-Feb-2014.) $)
    pczcl $p |- ( ( P e. Prime /\ ( N e. ZZ /\ N =/= 0 ) ) ->
                  ( P pCnt N ) e. NN0 ) $=
      ( vx cprime wcel cz cc0 wne wa cpc co cv cexp cdvds wbr cn0 crab clt eqid
      cr csup pczpre c2 cuz cfv prmuz2 pcprecl sylan simpld eqeltrd ) ADEZBFEBG
      HIZIZABJKACLMKBNOCPQZTRUAZPAUOCBUOSZUBUMUOPEZAUOMKBNOZUKAUCUDUEEULUQURIAU
      FUNAUOCBUNSUPUGUHUIUJ $.
  $}

  $( Closure of the prime power function.  (Contributed by Mario Carneiro,
     23-Feb-2014.) $)
  pccl $p |- ( ( P e. Prime /\ N e. NN ) -> ( P pCnt N ) e. NN0 ) $=
    ( cn wcel cprime cz cc0 wne wa cpc co cn0 nnz nnne0 jca pczcl sylan2 ) BCDZ
    AEDBFDZBGHZIABJKLDRSTBMBNOABPQ $.

  ${
    pccld.1 $e |- ( ph -> P e. Prime ) $.
    pccld.2 $e |- ( ph -> N e. NN ) $.
    $( Closure of the prime power function.  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    pccld $p |- ( ph -> ( P pCnt N ) e. NN0 ) $=
      ( cprime wcel cn cpc co cn0 pccl syl2anc ) ABFGCHGBCIJKGDEBCLM $.
  $}

  ${
    $d n A $.  $d n B $.  $d n P $.
    $( Multiplication property of the prime power function.  (Contributed by
       Mario Carneiro, 23-Feb-2014.) $)
    pcmul $p |- ( ( P e. Prime /\ ( A e. ZZ /\ A =/= 0 ) /\
                                  ( B e. ZZ /\ B =/= 0 ) ) ->
                  ( P pCnt ( A x. B ) ) = ( ( P pCnt A ) + ( P pCnt B ) ) ) $=
      ( vn wcel cz cc0 wne wa co cdvds wbr cn0 crab cr clt csup caddc cpc eqid
      cprime cv cexp cmul pcpremul wceq pczpre 3adant3 3adant2 oveq12d ad2ant2r
      w3a zmulcl cc zcn anim1i mulne0 syl2an jca sylan2 3impb 3eqtr4rd ) CUAEZA
      FEZAGHZIZBFEZBGHZIZULZCDUBUCJZAKLDMNOPQZVKBKLDMNOPQZRJVKABUDJZKLDMNOPQZCA
      SJZCBSJZRJCVNSJZCVLVMVODABVLTZVMTZVOTZUEVJVPVLVQVMRVCVFVPVLUFVICVLDAVSUGU
      HVCVIVQVMUFVFCVMDBVTUGUIUJVCVFVIVRVOUFZVFVIIZVCVNFEZVNGHZIWBWCWDWEVDVGWDV
      EVHABUMUKVFAUNEZVEIBUNEZVHIWEVIVDWFVEAUOUPVGWGVHBUOUPABUQURUSCVODVNWAUGUT
      VAVB $.
  $}

  ${
    $d n x y z A $.  $d n x y z B $.  $d n x y z P $.
    $( Division property of the prime power function.  (Contributed by Mario
       Carneiro, 1-Mar-2014.) $)
    pcdiv $p |- ( ( P e. Prime /\ ( A e. ZZ /\ A =/= 0 ) /\ B e. NN ) ->
                  ( P pCnt ( A / B ) ) = ( ( P pCnt A ) - ( P pCnt B ) ) ) $=
      ( vx vy vz vn wcel cz wa cn cdiv co wceq cdvds cn0 cr clt cmin eqid cv cq
      cprime cc0 wne w3a cpc cexp wbr crab csup wrex cio simp1 simp2l simp3 znq
      syl2anc zcnd nncnd simp2r nnne0d divne0d pcval syl12anc 3adant3 nnz nnne0
      pczpre jca sylan2 3adant2 oveq12d jctil oveq1 eqeq2d breq2 rabbidv oveq1d
      supeq1d anbi12d oveq2 oveq2d rspc2ev syl3anc cvv weu wb ovex eqeq1 anbi2d
      pceu 2rexbidv iota2 sylancr mpbid eqtrd ) CUCHZAIHZAUDUEZJZBKHZUFZCABLMZU
      GMZXDDUAZEUAZLMZNZFUAZCGUAUHMZXFOUIZGPUJZQRUKZXKXGOUIZGPUJZQRUKZSMZNZJZEK
      ULDIULZFUMZCAUGMZCBUGMZSMZXCWRXDUBHZXDUDUEZXEYBNWRXAXBUNZXCWSXBYFWRWSWTXB
      UOZWRXAXBUPZABUQURZXCABXCAYIUSXCBYJUTWRWSWTXBVAXCBYJVBVCZDEFCXNXQGXDXNTZX
      QTZVDVEXCXIYEXRNZJZEKULDIULZYBYENZXCWSXBXDXDNZYEXKAOUIZGPUJZQRUKZXKBOUIZG
      PUJZQRUKZSMZNZJZYQYIYJXCUUGYSXCYCUUBYDUUESWRXAYCUUBNXBCUUBGAUUBTVIVFWRXBY
      DUUENZXAXBWRBIHZBUDUEZJUUIXBUUJUUKBVGBVHVJCUUEGBUUETVIVKVLVMXDTVNYPUUHXDA
      XGLMZNZYEUUBXQSMZNZJDEABIKXFANZXIUUMYOUUOUUPXHUULXDXFAXGLVOVPUUPXRUUNYEUU
      PXNUUBXQSUUPQXMUUARUUPXLYTGPXFAXKOVQVRVTVSVPWAXGBNZUUMYSUUOUUGUUQUULXDXDX
      GBALWBVPUUQUUNUUFYEUUQXQUUEUUBSUUQQXPUUDRUUQXOUUCGPXGBXKOVQVRVTWCVPWAWDWE
      XCYEWFHYAFWGZYQYRWHYCYDSWIXCWRYFYGUURYHYKYLDEFCXNXQGXDYMYNWLVEYAYQFYEWFXJ
      YENZXTYPDEIKUUSXSYOXIXJYEXRWJWKWMWNWOWPWQ $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z P $.
    $( Multiplication property of the prime power function.  (Contributed by
       Mario Carneiro, 9-Sep-2014.) $)
    pcqmul $p |- ( ( P e. Prime /\ ( A e. QQ /\ A =/= 0 ) /\
                                   ( B e. QQ /\ B =/= 0 ) ) ->
                  ( P pCnt ( A x. B ) ) = ( ( P pCnt A ) + ( P pCnt B ) ) ) $=
      ( vx vy vz vw wcel cc0 wne wa cdiv co wceq cn wrex cz cpc caddc adantrr
      cprime cq w3a cv cmul simp2l elq simp3l reeanv simp2r simp3r jca ad2antrr
      sylib wi simp1 simprl nncnd nnne0d div0d eqeq1d syl5ibrcom necon3d simprr
      cmin simpll simplrl simplrr zmulcld zcnd simprrl simprrr mulne0d nnmulcld
      oveq1 pcdiv syl121anc pcmul syl122anc nnzd oveq12d cn0 pczcl nn0cnd pccld
      syl12anc addsub4d 3eqtrd cc divmuldivd oveq2d 3eqtr4d expr neeq1 bi2anan9
      syl2and oveq12 oveq2 oveqan12d eqeq12d imbi12d sylanl1 rexlimdvva syl5bir
      mpid mp2and ) CUAHZAUBHZAIJZKZBUBHZBIJZKZUCZADUDZEUDZLMZNZEOPZDQPZBFUDZGU
      DZLMZNZGOPZFQPZCABUEMZRMZCARMZCBRMZSMZNZXNXHXTXGXHXIXMUFDEAUGUNXNXKYFXGXJ
      XKXLUHFGBUGUNXTYFKXSYEKZFQPDQPXNYLXSYEDFQQUIXNYMYLDFQQYMXRYDKZGOPEOPXNXOQ
      HZYAQHZKZKZYLXRYDEGOOUIYRYNYLEGOOYRXPOHZYBOHZKZKYNXIXLKZYLXNUUBYQUUAXNXIX
      LXGXHXIXMUJXGXJXKXLUKULUMXNXGYQUUAYNUUBYLUOZUOXGXJXMUPXGYQKZUUAKZUUCYNXQI
      JZYCIJZKZCXQYCUEMZRMZCXQRMZCYCRMZSMZNZUOUUEUUFXOIJZUUGYAIJZUUNUUEXOIXQIUU
      EXQINXOINZIXPLMZINUUEXPUUEXPUUDYSYTUQZURZUUEXPUUSUSZUTUUQXQUURIXOIXPLVOVA
      VBVCUUEYAIYCIUUEYCINYAINZIYBLMZINUUEYBUUEYBUUDYSYTVDZURZUUEYBUVDUSZUTUVBY
      CUVCIYAIYBLVOVAVBVCUUDUUAUUOUUPKZUUNUUDUUAUVGKZKZCXOYAUEMZXPYBUEMZLMZRMZC
      XORMZCXPRMZVEMZCYARMZCYBRMZVEMZSMZUUJUUMUVIUVMCUVJRMZCUVKRMZVEMZUVNUVQSMZ
      UVOUVRSMZVEMUVTUVIXGUVJQHUVJIJUVKOHUVMUWCNXGYQUVHVFZUVIXOYAXGYOYPUVHVGZXG
      YOYPUVHVHZVIUVIXOYAUVIXOUWGVJZUVIYAUWHVJZUUDUUAUUOUUPVKZUUDUUAUUOUUPVLZVM
      UVIXPYBUUDUUAYSUVGUUSTZUUDUUAYTUVGUVDTZVNUVJUVKCVPVQUVIUWAUWDUWBUWEVEUVIX
      GYOUUOYPUUPUWAUWDNUWFUWGUWKUWHUWLXOYACVRVSUVIXGXPQHXPIJZYBQHYBIJZUWBUWENU
      WFUVIXPUWMVTUUDUUAUWOUVGUVATZUVIYBUWNVTUUDUUAUWPUVGUVFTZXPYBCVRVSWAUVIUVN
      UVQUVOUVRUVIUVNUVIXGYOUUOUVNWBHUWFUWGUWKCXOWCWFWDUVIUVQUVIXGYPUUPUVQWBHUW
      FUWHUWLCYAWCWFWDUVIUVOUVICXPUWFUWMWEWDUVIUVRUVICYBUWFUWNWEWDWGWHUVIUUIUVL
      CRUVIXOXPYAYBUWIUUDUUAXPWIHUVGUUTTUWJUUDUUAYBWIHUVGUVETUWQUWRWJWKUVIUUKUV
      PUULUVSSUVIXGYOUUOYSUUKUVPNUWFUWGUWKUWMXOXPCVPVQUVIXGYPUUPYTUULUVSNUWFUWH
      UWLUWNYAYBCVPVQWAWLWMWPYNUUBUUHYLUUNXRXIUUFYDXLUUGAXQIWNBYCIWNWOYNYHUUJYK
      UUMYNYGUUICRAXQBYCUEWQWKXRYDYIUUKYJUULSAXQCRWRBYCCRWRWSWTXAVBXBXEXCXDXCXD
      XF $.
  $}

  ${
    $d x y A $.  $d n p r x y z P $.  $d n x y N $.
    $( The value of the prime power function at zero.  (Contributed by Mario
       Carneiro, 3-Oct-2014.) $)
    pc0 $p |- ( P e. Prime -> ( P pCnt 0 ) = +oo ) $=
      ( vp vr vx vy vz vn cprime wcel cc0 cq cpc co cpnf wceq cz cdvds wbr cn0
      cv 0z zq ax-mp cdiv cexp crab cr clt csup cmin wrex cio cif iftrue adantl
      wa cn df-pc pnfex ovmpt2a mpan2 ) AHIJKIZAJLMNOJPIVBUAJUBUCBCAJHKCTZJOZNV
      CDTZETZUDMOFTBTZGTUEMZVEQRGSUFUGUHUIVHVFQRGSUFUGUHUIUJMOUPEUQUKDPUKFULZUM
      ZNLVDVJNOVGAOVDNVIUNUODEFGCBURUSUTVA $.

    $( Value of the prime count function at 1.  (Contributed by Mario Carneiro,
       23-Feb-2014.) $)
    pc1 $p |- ( P e. Prime -> ( P pCnt 1 ) = 0 ) $=
      ( vn cprime wcel c1 cpc co cv cexp cdvds wbr cn0 crab cr clt csup cz wceq
      cc0 eqid wne 1z ax-1ne0 pczpre mpanr12 c2 cuz prmuz2 pcpre1 sylancl eqtrd
      cfv ) ACDZAEFGZABHIGEJKBLMZNOPZSUMEQDESUAUNUPRUBUCAUPBEUPTZUDUEUMAUFUGULD
      EERUPSRAUHETUOAUPBEUOTUQUIUJUK $.

    $( Closure of the general prime count function.  (Contributed by Mario
       Carneiro, 23-Feb-2014.) $)
    pcqcl $p |- ( ( P e. Prime /\ ( N e. QQ /\ N =/= 0 ) ) ->
                 ( P pCnt N ) e. ZZ ) $=
      ( vx vy wcel cc0 wne wa cv cdiv co wceq cn wrex cz syl5ibrcom pczcl nn0zd
      cpc wi cprime cq simprl elq sylib nncn nnne0 div0d ad2antll oveq1 necon3d
      eqeq1d an32 w3a cmin pcdiv 3adant3 nnz jca sylan2 3adant2 zsubcld eqeltrd
      3expb sylan2b expr syld neeq1 oveq2 eleq1d imbi12d com23 impancom adantrl
      rexlimdvv mpd ) AUAEZBUBEZBFGZHHZBCIZDIZJKZLZDMNCONZABSKZOEZVTVRWEVQVRVSU
      CCDBUDUEVTWDWGCDOMVQVSWAOEZWBMEZHZWDWGTZTVRVQWJVSWKVQWJHZWDVSWGWLVSWGTWDW
      CFGZAWCSKZOEZTWLWMWAFGZWOWLWAFWCFWLWCFLWAFLZFWBJKZFLZWIWSVQWHWIWBWBUFWBUG
      ZUHUIWQWCWRFWAFWBJUJULPUKVQWJWPWOWJWPHVQWHWPHZWIHWOWHWIWPUMVQXAWIWOVQXAWI
      UNZWNAWASKZAWBSKZUOKOWAWBAUPXBXCXDVQXAXCOEWIVQXAHXCAWAQRUQVQWIXDOEZXAWIVQ
      WBOEZWBFGZHZXEWIXFXGWBURWTUSVQXHHXDAWBQRUTVAVBVCVDVEVFVGWDVSWMWGWOBWCFVHW
      DWFWNOBWCASVIVJVKPVLVMVNVOVP $.

    $( Division property of the prime power function.  (Contributed by Mario
       Carneiro, 10-Aug-2015.) $)
    pcqdiv $p |- ( ( P e. Prime /\ ( A e. QQ /\ A =/= 0 ) /\
                                   ( B e. QQ /\ B =/= 0 ) ) ->
                  ( P pCnt ( A / B ) ) = ( ( P pCnt A ) - ( P pCnt B ) ) ) $=
      ( cprime wcel cq cc0 wne wa w3a cpc co cmin cdiv cc qcn syl cz pcqcl zcnd
      caddc cmul simp2l simp3l simp3r divcan1d oveq2d wceq simp1 qdivcl syl3anc
      simp2r divne0d pcqmul syl122anc eqtr3d oveq1d syl12anc 3adant2 pncand
      eqtr2d ) CDEZAFEZAGHZIZBFEZBGHZIZJZCAKLZCBKLZMLCABNLZKLZVKUALZVKMLVMVIVJV
      NVKMVICVLBUBLZKLZVJVNVIVOACKVIABVIVCAOEVBVCVDVHUCZAPQZVIVFBOEVBVEVFVGUDZB
      PQZVBVEVFVGUEZUFUGVIVBVLFEZVLGHZVFVGVPVNUHVBVEVHUIZVIVCVFVGWBVQVSWAABUJUK
      ZVIABVRVTVBVCVDVHULWAUMZVSWAVLBCUNUOUPUQVIVMVKVIVMVIVBWBWCVMREWDWEWFCVLSU
      RTVIVKVBVHVKREVECBSUSTUTVA $.

    $( Prime power of a reciprocal.  (Contributed by Mario Carneiro,
       10-Aug-2015.) $)
    pcrec $p |- ( ( P e. Prime /\ ( A e. QQ /\ A =/= 0 ) ) ->
                  ( P pCnt ( 1 / A ) ) = -u ( P pCnt A ) ) $=
      ( cprime wcel cq cc0 wne wa c1 cdiv co cmin cneg wceq cz 1z ax-mp ax-1ne0
      cpc zq pm3.2i pcqdiv mp3an2 pc1 adantr oveq1d eqtrd df-neg syl6eqr ) BCDZ
      AEDAFGHZHZBIAJKSKZFBASKZLKZUNMULUMBISKZUNLKZUOUJIEDZIFGZHUKUMUQNURUSIODUR
      PITQRUAIABUBUCULUPFUNLUJUPFNUKBUDUEUFUGUNUHUI $.

    $( Prime power of an exponential.  (Contributed by Mario Carneiro,
       10-Aug-2015.) $)
    pcexp $p |- ( ( P e. Prime /\ ( A e. QQ /\ A =/= 0 ) /\ N e. ZZ ) ->
                  ( P pCnt ( A ^ N ) ) = ( N x. ( P pCnt A ) ) ) $=
      ( wcel cc0 wa cexp co cpc cmul wceq cneg caddc oveq2 oveq2d oveq1 eqeq12d
      c1 adantr cc vx vy cprime cq wne cz cv pc1 qcn ad2antrl exp0d zcnd mul02d
      pcqcl 3eqtr4d cn0 expp1 sylan simpll simplrl simplrr nn0z qexpclz syl3anc
      wi adantl expne0d pcqmul syl122anc eqtrd nn0cn adddird mulid2d syl5ibr ex
      1cnd cn negeq cdiv nnnn0 expneg syl2an sylan2 pcrec syl12anc nncn mulneg1
      syl2anr zindd 3impia ) BUCDZAUDDZAEUEZFZCUFDBACGHZIHZCBAIHZJHZKZBAUAUGZGH
      ZIHZWTWQJHZKBAEGHZIHZEWQJHZKBAUBUGZGHZIHZXGWQJHZKZBAXGLZGHZIHZXLWQJHZKZBA
      XGRMHZGHZIHZXQWQJHZKZWSWKWNFZUAUBCWTEKZXBXEXCXFYCXAXDBIWTEAGNOWTEWQJPQWTX
      GKZXBXIXCXJYDXAXHBIWTXGAGNOWTXGWQJPQWTXQKZXBXSXCXTYEXAXRBIWTXQAGNOWTXQWQJ
      PQWTXLKZXBXNXCXOYFXAXMBIWTXLAGNOWTXLWQJPQWTCKZXBWPXCWRYGXAWOBIWTCAGNOWTCW
      QJPQYBBRIHZEXEXFWKYHEKWNBUHSYBXDRBIYBAWLATDZWKWMAUIUJZUKOYBWQYBWQBAUNULZU
      MUOYBXGUPDZXKYAVEXKYAYBYLFZXIWQMHZXJWQMHZKXIXJWQMPYMXSYNXTYOYMXSBXHAJHZIH
      ZYNYMXRYPBIYBYIYLXRYPKYJAXGUQUROYMWKXHUDDZXHEUEZWLWMYQYNKWKWNYLUSYMWLWMXG
      UFDZYRWKWLWMYLUTZWKWLWMYLVAZYLYTYBXGVBVFZAXGVCVDZYMAXGYBYIYLYJSUUBUUCVGZU
      UAUUBXHABVHVIVJYMXTXJRWQJHZMHYOYMXGRWQYLXGTDZYBXGVKVFYMVPYBWQTDZYLYKSZVLY
      MUUFWQXJMYMWQUUIVMOVJQVNVOYBXGVQDZXKXPVEXKXPYBUUJFZXILZXJLZKXIXJVRUUKXNUU
      LXOUUMUUKXNBRXHVSHZIHZUULUUKXMUUNBIYBYIYLXMUUNKUUJYJXGVTZAXGWAWBOUUKWKYRY
      SUUOUULKWKWNUUJUSUUJYBYLYRUUPUUDWCUUJYBYLYSUUPUUEWCXHBWDWEVJUUJUUGUUHXOUU
      MKYBXGWFYKXGWQWGWHQVNVOWIWJ $.

    $( Extended real closure of the general prime count function.  (Contributed
       by Mario Carneiro, 3-Oct-2014.) $)
    pcxcl $p |- ( ( P e. Prime /\ N e. QQ ) ->
                 ( P pCnt N ) e. RR* ) $=
      ( cprime wcel cq wa cpc cxr cc0 wceq cpnf pc0 pnfxr syl6eqel adantr oveq2
      co eleq1d syl5ibrcom wne pcqcl zred rexrd expr pm2.61dne ) ACDZBEDZFZABGQ
      ZHDZBIUHUJBIJZAIGQZHDZUFUMUGUFULKHALMNOUKUIULHBIAGPRSUFUGBITZUJUFUGUNFFZU
      IUOUIABUAUBUCUDUE $.

    $( The prime count of an integer is greater or equal to zero.  (Contributed
       by Mario Carneiro, 3-Oct-2014.) $)
    pcge0 $p |- ( ( P e. Prime /\ N e. ZZ ) -> 0 <_ ( P pCnt N ) ) $=
      ( cprime wcel cz wa cc0 cpc co cle wbr wceq 0lepnf oveq2 adantr sylan9eqr
      cpnf pc0 syl5breqr wne pczcl nn0ge0d anassrs pm2.61dane ) ACDZBEDZFZGABHI
      ZJKZBGUGBGLZFGQUHJMUJUGUHAGHIZQBGAHNUEUKQLUFAROPSUEUFBGTZUIUEUFULFFUHABUA
      UBUCUD $.

    $( Defining property of the prime count function.  (Contributed by Mario
       Carneiro, 9-Sep-2014.) $)
    pczdvds $p |- ( ( P e. Prime /\ ( N e. ZZ /\ N =/= 0 ) ) ->
      ( P ^ ( P pCnt N ) ) || N ) $=
      ( vn cprime wcel cz cc0 wne wa cpc co cexp cv cdvds wbr cn0 crab clt eqid
      cr csup pczpre oveq2d c2 cuz cfv prmuz2 pcprecl simprd sylan eqbrtrd ) AD
      EZBFEBGHIZIZAABJKZLKAACMLKBNOCPQZTRUAZLKZBNUNUOUQALAUQCBUQSZUBUCULAUDUEUF
      EZUMURBNOZAUGUTUMIUQPEVAUPAUQCBUPSUSUHUIUJUK $.

    $( Defining property of the prime count function.  (Contributed by Mario
       Carneiro, 23-Feb-2014.) $)
    pcdvds $p |- ( ( P e. Prime /\ N e. NN ) -> ( P ^ ( P pCnt N ) ) || N ) $=
      ( cn wcel cprime cz cc0 wne wa cpc co cexp cdvds wbr nnz nnne0 jca sylan2
      pczdvds ) BCDZAEDBFDZBGHZIAABJKLKBMNTUAUBBOBPQABSR $.

    $( Defining property of the prime count function.  (Contributed by Mario
       Carneiro, 3-Oct-2014.) $)
    pczndvds $p |- ( ( P e. Prime /\ ( N e. ZZ /\ N =/= 0 ) ) ->
                    -. ( P ^ ( ( P pCnt N ) + 1 ) ) || N ) $=
      ( vn cprime wcel cz cc0 wne wa cpc co c1 caddc cexp cdvds wbr cv cn0 crab
      eqid cr clt csup c2 cuz cfv prmuz2 pcprendvds pczpre oveq1d oveq2d breq1d
      wn sylan mtbird ) ADEZBFEBGHIZIZAABJKZLMKZNKZBOPAACQNKBOPCRSZUAUBUCZLMKZN
      KZBOPZUPAUDUEUFEUQVFUMAUGVBAVCCBVBTVCTZUHUNURVAVEBOURUTVDANURUSVCLMAVCCBV
      GUIUJUKULUO $.

    $( Defining property of the prime count function.  (Contributed by Mario
       Carneiro, 23-Feb-2014.) $)
    pcndvds $p |- ( ( P e. Prime /\ N e. NN ) ->
                    -. ( P ^ ( ( P pCnt N ) + 1 ) ) || N ) $=
      ( cn wcel cprime cz cc0 wne wa cpc co c1 caddc cdvds wbr wn nnz nnne0 jca
      cexp pczndvds sylan2 ) BCDZAEDBFDZBGHZIAABJKLMKTKBNOPUCUDUEBQBRSABUAUB $.

    $( The remainder after dividing out all factors of ` P ` is not divisible
       by ` P ` .  (Contributed by Mario Carneiro, 9-Sep-2014.) $)
    pczndvds2 $p |- ( ( P e. Prime /\ ( N e. ZZ /\ N =/= 0 ) ) ->
                    -. P || ( N / ( P ^ ( P pCnt N ) ) ) ) $=
      ( vn cprime wcel cz cc0 wne wa cpc co cexp cdiv cdvds wbr cn0 crab oveq2d
      cv eqid cr clt csup c2 cuz cfv wn prmuz2 pcprendvds2 pczpre breq2d mtbird
      sylan ) ADEZBFEBGHIZIZABAABJKZLKZMKZNOABAACSLKBNOCPQZUAUBUCZLKZMKZNOZUNAU
      DUEUFEUOVDUGAUHUTAVACBUTTVATZUIUMUPUSVCANUPURVBBMUPUQVAALAVACBVEUJRRUKUL
      $.

    $( The remainder after dividing out all factors of ` P ` is not divisible
       by ` P ` .  (Contributed by Mario Carneiro, 23-Feb-2014.) $)
    pcndvds2 $p |- ( ( P e. Prime /\ N e. NN ) ->
                    -. P || ( N / ( P ^ ( P pCnt N ) ) ) ) $=
      ( cn wcel cprime cz cc0 wne wa cpc co cexp cdiv cdvds wbr nnne0 pczndvds2
      wn nnz jca sylan2 ) BCDZAEDBFDZBGHZIABAABJKLKMKNORUBUCUDBSBPTABQUA $.
  $}

  $( ` P ^ A ` divides ` N ` if and only if ` A ` is at most the count of
     ` P ` .  (Contributed by Mario Carneiro, 3-Oct-2014.) $)
  pcdvdsb $p |- ( ( P e. Prime /\ N e. ZZ /\ A e. NN0 ) ->
                  ( A <_ ( P pCnt N ) <-> ( P ^ A ) || N ) ) $=
    ( wcel cz cn0 cpc co cle wbr cexp cdvds wb cc0 wa syl2anc wi syl nnzd wn cn
    cprime w3a wceq oveq2 breq2d breq2 bibi12d wne cuz cfv simpl3 simpl1 simpl2
    nn0zd simpr pczcl syl12anc eluz prmnn dvdsexp sylbird pczdvds nnexpcl sylan
    3expia 3adant2 adantr nnexpcld dvdstr syl3anc mpan2d syld c1 caddc cr nn0re
    clt ltnle syl2an nn0ltp1le bitr3d peano2nn0 pczndvds mtod sylibr impcon4bid
    imnan sylbid cpnf cxr 3ad2ant3 rexrd pnfge pc0 3ad2ant1 breqtrrd dvds0 2thd
    pm2.61ne ) BUBDZCEDZAFDZUCZABCGHZIJZBAKHZCLJZMABNGHZIJZXGNLJZMCNCNUDZXFXJXH
    XKXLXEXIAICNBGUEUFCNXGLUGUHXDCNUIZOZXFXHXNXFXGBXEKHZLJZXHXNXFXEAUJUKDZXPXNA
    EDZXEEDXQXFMXNAXAXBXCXMULZUOZXNXEXNXAXBXMXEFDZXAXBXCXMUMZXAXBXCXMUNZXDXMUPZ
    BCUQURZUOAXEUSPXNBEDZXCXQXPQXNBXNXABUADZYBBUTZRZSZXSYFXCXQXPBAXEVAVFPVBXNXP
    XOCLJZXHXNXAXBXMYKYBYCYDBCVCURXNXGEDZXOEDXBXPYKOXHQXDYLXMXDXGXAXCXGUADZXBXA
    YGXCYMYHBAVDVEVGSZVHZXNXOXNBXEYIYEVISYCXGXOCVJVKVLVMXNXFTZXEVNVOHZAIJZXHTZX
    NYAXCYPYRMYEXSYAXCOXEAVRJZYPYRYAXEVPDAVPDZYTYPMXCXEVQAVQZXEAVSVTXEAWAWBPXNY
    RBYQKHZXGLJZYSXNYRAYQUJUKDZUUDXNYQEDXRUUEYRMXNYQXNYAYQFDZYEXEWCRZUOXTYQAUSP
    XNYFUUFUUEUUDQYJUUGYFUUFUUEUUDBYQAVAVFPVBXNUUDXHOZTUUDYSQXNUUHUUCCLJZXNXAXB
    XMUUITYBYCYDBCWDURXNUUCEDYLXBUUHUUIQXNUUCXNBYQYIUUGVISYOYCUUCXGCVJVKWEUUDXH
    WHWFVMWIWGXDXJXKXDAWJXIIXDAWKDAWJIJXDAXCXAUUAXBUUBWLWMAWNRXAXBXIWJUDXCBWOWP
    WQXDYLXKYNXGWRRWSWT $.

  $( There are a positive number of powers of a prime ` P ` in ` N ` iff ` P `
     divides ` N ` .  (Contributed by Mario Carneiro, 23-Feb-2014.) $)
  pcelnn $p |- ( ( P e. Prime /\ N e. NN ) ->
                  ( ( P pCnt N ) e. NN <-> P || N ) ) $=
    ( cprime wcel cn wa c1 cpc co cle wbr cexp cdvds cz wb nnz cn0 1nn0 pcdvdsb
    mp3an3 sylan2 pccl elnnnn0c baibr syl wceq prmnn nncnd exp1d adantr 3bitr3d
    breq1d ) ACDZBEDZFZGABHIZJKZAGLIZBMKZUPEDZABMKUNUMBNDZUQUSOZBPUMVAGQDVBRGAB
    STUAUOUPQDZUQUTOABUBUTVCUQUPUCUDUEUOURABMUMURAUFUNUMAUMAAUGUHUIUJULUK $.

  $( There are zero powers of a prime ` P ` in ` N ` iff ` P ` does not divide
     ` N ` .  (Contributed by Mario Carneiro, 23-Feb-2014.) $)
  pceq0 $p |- ( ( P e. Prime /\ N e. NN ) ->
                  ( ( P pCnt N ) = 0 <-> -. P || N ) ) $=
    ( cprime wcel cn wa cdvds wbr cpc co cc0 wne pcelnn cn0 wb pccl nnne0 elnn0
    wceq wo biimpi ord necon1ad impbid2 syl bitr3d necon2bbid ) ACDBEDFZABGHZAB
    IJZKUHUJEDZUIUJKLZABMUHUJNDZUKULOABPUMUKULUJQUMUKUJKUMUKUJKSZUMUKUNTUJRUAUB
    UCUDUEUFUG $.

  $( The prime count of a prime power.  (Contributed by Mario Carneiro,
     12-Mar-2014.) $)
  pcidlem $p |- ( ( P e. Prime /\ A e. NN0 ) -> ( P pCnt ( P ^ A ) ) = A ) $=
    ( cprime wcel cn0 cexp co cle wbr cdvds cn nnexpcld cz nnzd pcdvdsb syl3anc
    syl wb adantl mpbird wa cpc wceq simpl prmnn simpr pccld nn0red leidd mpbid
    wi dvdsle syl2anc mpd nnred nn0zd nn0z c2 cuz cfv c1 prmuz2 eluz2b1 simprbi
    clt leexp2d iddvds cr nn0re letri3d mpbir2and ) BCDZAEDZUAZBBAFGZUBGZAUCVPA
    HIZAVPHIZVNVQBVPFGZVOHIZVNVSVOJIZVTVNVPVPHIZWAVNVPVNVPVNBVOVLVMUDZVNBAVNVLB
    KDWCBUEQZVLVMUFZLZUGZUHZUIVNVLVOMDZVPEDWBWARWCVNVOWFNZWGVPBVOOPUJVNVSMDVOKD
    WAVTUKVNVSVNBVPWDWGLNWFVSVOULUMUNVNBVPAVNBWDUOVNVPWGUPVMAMDVLAUQSVNBURUSUTD
    ZVABVEIZVNVLWKWCBVBQWKBMDWLBVCVDQVFTVNVRVOVOJIZVNWIWMWJVOVGQVNVLWIVMVRWMRWC
    WJWEABVOOPTVNVPAWHVMAVHDVLAVISVJVK $.

  $( The prime count of a prime power.  (Contributed by Mario Carneiro,
     9-Sep-2014.) $)
  pcid $p |- ( ( P e. Prime /\ A e. ZZ ) -> ( P pCnt ( P ^ A ) ) = A ) $=
    ( cz wcel cprime cn0 cneg cn wa cexp co cpc wceq pcidlem c1 adantr cmin cc0
    cc eqtrd cr wo elznn0nn cdiv prmnn nncnd simprl recnd nnnn0 expneg2 syl3anc
    ad2antll oveq2d wne simpl 1zzd ax-1ne0 a1i nnexpcld pcdiv syl121anc oveq12d
    pc1 syldan df-neg negnegd syl5eqr jaodan sylan2b ) ACDBEDZAFDZAUADZAGZHDZIZ
    UBBBAJKZLKZAMZAUCVJVKVRVOABNVJVOIZVQBOBVMJKZUDKZLKZAVSVPWABLVSBSDASDVMFDZVP
    WAMVSBVJBHDVOBUEPZUFVSAVJVLVNUGUHZVNWCVJVLVMUIULZBAUJUKUMVSWBBOLKZBVTLKZQKZ
    AVSVJOCDORUNZVTHDWBWIMVJVOUOVSUPWJVSUQURVSBVMWDWFUSOVTBUTVAVSWIRVMQKZAVSWGR
    WHVMQVJWGRMVOBVCPVJVOWCWHVMMWFVMBNVDVBVSWKVMGAVMVEVSAWEVFVGTTTVHVI $.

  ${
    $d x y A $.  $d x y P $.
    $( The prime count of a negative number.  (Contributed by Mario Carneiro,
       13-Mar-2014.) $)
    pcneg $p |- ( ( P e. Prime /\ A e. QQ ) ->
                  ( P pCnt -u A ) = ( P pCnt A ) ) $=
      ( vx vy wcel cneg cpc co wceq cdiv cn cz wa cc0 wne oveq2d cmin cn0 clt
      cr cprime cq cv wrex elq cc zcn ad2antrl nncn ad2antll nnne0 divnegd neg0
      simpr negeqd 3eqtr4a oveq1d simpll simplrl znegcld negne0bd mpbid simplrr
      wb syl pcdiv syl121anc cexp cdvds wbr crab csup eqid pczpre syl12anc prmz
      zexpcl sylan simpl dvdsnegb syl2an an32s rabbidva eqtrd eqtr4d pm2.61dane
      supeq1d negeq oveq2 eqeq12d syl5ibrcom rexlimdvva syl5bi imp ) BUAEZAUBEZ
      BAFZGHZBAGHZIZWPACUCZDUCZJHZIZDKUDCLUDWOWTCDAUEWOXDWTCDLKWOXALEZXBKEZMZMZ
      WTXDBXCFZGHZBXCGHZIXHXJBXAFZXBJHZGHZXKXHXIXMBGXHXAXBXEXAUFEWOXFXAUGZUHXFX
      BUFEWOXEXBUIUJXFXBNOWOXEXBUKUJULPXHXNXKIXANXHXANIZMZXMXCBGXQXLXAXBJXQNFNX
      LXAUMXQXANXHXPUNZUOXRUPUQPXHXANOZMZXNBXLGHZBXBGHZQHZXKXTWOXLLEZXLNOZXFXNY
      CIWOXGXSURZXTXAWOXEXFXSUSZUTZXTXSYEXHXSUNZXTXEXSYEVDYGXEXAXOVAVEVBZWOXEXF
      XSVCZXLXBBVFVGXTXKBXAGHZYBQHZYCXTWOXEXSXFXKYMIYFYGYIYKXAXBBVFVGXTYAYLYBQX
      TYABXBVHHZXLVIVJZDRVKZTSVLZYLXTWOYDYEYAYQIYFYHYJBYQDXLYQVMVNVOXTWOXEXSYLY
      QIYFYGYIWOXEXSMZMZYLYNXAVIVJZDRVKZTSVLZYQBUUBDXAUUBVMVNYSTUUAYPSYSYTYODRW
      OXBREZYRYTYOVDZWOUUCMYNLEZXEUUDYRWOBLEUUCUUEBVPBXBVQVRXEXSVSYNXAVTWAWBWCW
      GWDVOWEUQWEWEWFWDXDWRXJWSXKXDWQXIBGAXCWHPAXCBGWIWJWKWLWMWN $.
  $}

  $( The prime count of an absolute value.  (Contributed by Mario Carneiro,
     13-Mar-2014.) $)
  pcabs $p |- ( ( P e. Prime /\ A e. QQ ) ->
                ( P pCnt ( abs ` A ) ) = ( P pCnt A ) ) $=
    ( cprime wcel cq wa cabs cfv wceq cpc co cneg wi oveq2 a1i pcneg syl5ibrcom
    eqeq1d cr qre adantl absord mpjaod ) BCDZAEDZFZAGHZAIZBUGJKZBAJKZIZUGALZIZU
    HUKMUFUGABJNOUFUKUMBULJKZUJIABPUMUIUNUJUGULBJNRQUFAUEASDUDATUAUBUC $.

  $( The prime count increases under the divisibility relation.  (Contributed
     by Mario Carneiro, 13-Mar-2014.) $)
  pcdvdstr $p |- ( ( P e. Prime /\ ( A e. ZZ /\ B e. ZZ /\ A || B ) ) ->
                ( P pCnt A ) <_ ( P pCnt B ) ) $=
    ( wcel cz cdvds wbr wa cpc co cle cc0 wceq syl simpr oveq2d simplr3 simplr2
    wb syl12anc cprime w3a cxr cq 0z ax-mp pcxcl mpan2 xrleid ad2antrr eqbrtrrd
    zq 0dvds mpbid 3brtr4d wne cexp simpll simplr1 pczdvds wi cn prmnn nnexpcld
    cn0 pczcl nnzd dvdstr syl3anc mp2and pcdvdsb mpbird pm2.61dane ) CUADZAEDZB
    EDZABFGZUBZHZCAIJZCBIJZKGZALVSALMZHZCLIJZWEVTWAKVNWEWEKGZVRWCVNWEUCDZWFVNLU
    DDZWGLEDWHUELULUFCLUGUHWEUINUJWDALCIVSWCOZPWDBLCIWDLBFGZBLMZWDALBFWIVOVPVQV
    NWCQUKWDVPWJWKSVOVPVQVNWCRBUMNUNPUOVSALUPZHZWBCVTUQJZBFGZWMWNAFGZVQWOWMVNVO
    WLWPVNVRWLURZVOVPVQVNWLUSZVSWLOZCAUTTVOVPVQVNWLQWMWNEDVOVPWPVQHWOVAWMWNWMCV
    TWMVNCVBDWQCVCNWMVNVOWLVTVEDZWQWRWSCAVFTZVDVGWRVOVPVQVNWLRZWNABVHVIVJWMVNVP
    WTWBWOSWQXBXAVTCBVKVIVLVM $.

  $( The prime count of a GCD is the minimum of the prime counts of the
     arguments.  (Contributed by Mario Carneiro, 3-Oct-2014.) $)
  pcgcd1 $p |- ( ( ( P e. Prime /\ A e. ZZ /\ B e. ZZ ) /\
  ( P pCnt A ) <_ ( P pCnt B ) ) -> ( P pCnt ( A gcd B ) ) = ( P pCnt A ) ) $=
    ( wcel cz cpc co cle wbr wa cgcd wceq cc0 cdvds wn syl2anc cr syl12anc cpnf
    syl cprime w3a oveq2 oveq2d eqeq1d wne simpl1 cn simp2 adantr simpl3 simprr
    simpr necon3ai gcdn0cl syl21anc nnzd simpld pcdvdstr syl13anc cexp cxr cmnf
    gcddvds clt cq pcxcl cn0 pczcl nn0red pcge0 ge0gtmnf simprl syl22anc pnfnre
    zq xrre pc0 eleq1d mtbiri notbid syl5ibrcom necon2ad mpd pczdvds wb pcdvdsb
    neli syl3anc mpbid wi prmnn nnexpcld dvdsgcd mp2and pccld letri3d mpbir2and
    mpbird anassrs cabs cfv gcdid0 pcabs sylan2 3adant3 eqtrd pm2.61ne ) CUADZA
    EDZBEDZUBZCAFGZCBFGZHIZJCABKGZFGZXMLZCAMKGZFGZXMLZBMBMLZXQXTXMYBXPXSCFBMAKU
    CUDUEXLXOBMUFZXRXLXOYCJZJZXRXQXMHIZXMXQHIZYEXIXPEDZXJXPANIZYFXIXJXKYDUGZYEX
    PYEXJXKAMLZYBJZOZXPUHDXLXJYDXIXJXKUIZUJZXIXJXKYDUKZYEYCYMXLXOYCULZYLBMYKYBU
    MUNTABUOUPZUQZYOYEYIXPBNIZYEXJXKYIYTJYOYPABVDPURXPACUSUTYEYGCXMVAGZXPNIZYEU
    UAANIZUUABNIZUUBYEXIXJAMUFZUUCYJYOYEXMQDZUUEYEXMVBDZXNQDVCXMVEIZXOUUFYEXIAV
    FDZUUGYJYEXJUUIYOAVPZTCAVGPZYEXNYEXIXKYCXNVHDYJYPYQCBVIRVJYEUUGMXMHIZUUHUUK
    YEXIXJUULYJYOCAVKPXMVLPXLXOYCVMZXMXNVQVNZYEUUFAMYEUUFOYKCMFGZQDZOYEUUPSQDSQ
    VOWHYEUUOSQYEXIUUOSLYJCVRTVSVTYKUUFUUPYKXMUUOQAMCFUCVSWAWBWCWDZCAWERYEXOUUD
    UUMYEXIXKXMVHDZXOUUDWFYJYPYEXIXJUUEUURYJYOUUQCAVIRZXMCBWGWIWJYEUUAEDXJXKUUC
    UUDJUUBWKYEUUAYECXMYEXICUHDYJCWLTUUSWMUQYOYPUUAABWNWIWOYEXIYHUURYGUUBWFYJYS
    UUSXMCXPWGWIWSYEXQXMYEXQYECXPYJYRWPVJUUNWQWRWTXLYAXOXLXTCAXAXBZFGZXMXLXSUUT
    CFXLXJXSUUTLYNAXCTUDXIXJUVAXMLZXKXJXIUUIUVBUUJACXDXEXFXGUJXH $.

  $( The prime count of a GCD is the minimum of the prime counts of the
     arguments.  (Contributed by Mario Carneiro, 3-Oct-2014.) $)
  pcgcd $p |- ( ( P e. Prime /\ A e. ZZ /\ B e. ZZ ) -> ( P pCnt ( A gcd B ) )
    = if ( ( P pCnt A ) <_ ( P pCnt B ) , ( P pCnt A ) , ( P pCnt B ) ) ) $=
    ( wcel cz w3a cpc co cle wbr cgcd wceq wa pcgcd1 adantl eqtr4d cxr cq pcxcl
    zq cprime cif iftrue wn gcdcom 3adant1 adantr oveq2d iffalse sylan2 3adant3
    wo 3adant2 xrletri syl2anc orcanai 3ancomb sylanb syldan pm2.61dan ) CUADZA
    EDZBEDZFZCAGHZCBGHZIJZCABKHZGHZVGVEVFUBZLVDVGMVIVEVJABCNVGVJVELVDVGVEVFUCOP
    VDVGUDZMZVICBAKHZGHZVJVLVHVMCGVDVHVMLZVKVBVCVOVAABUEUFUGUHVLVJVFVNVKVJVFLVD
    VGVEVFUIOVDVKVFVEIJZVNVFLZVDVGVPVDVEQDZVFQDZVGVPULVAVBVRVCVBVAARDVRATCASUJU
    KVAVCVSVBVCVABRDVSBTCBSUJUMVEVFUNUOUPVDVAVCVBFVPVQVAVBVCUQBACNURUSPPUT $.

  ${
    $d p x y A $.  $d p B $.
    $( A characterization of divisibility in terms of prime count.
       (Contributed by Mario Carneiro, 23-Feb-2014.)  (Revised by Mario
       Carneiro, 3-Oct-2014.) $)
    pc2dvds $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
                 ( A || B <-> A. p e. Prime ( p pCnt A ) <_ ( p pCnt B ) ) ) $=
      ( cz wcel wa cdvds wbr cpc co cle cprime cc0 wceq wn c1 wb adantr cr cpnf
      cv wral w3a pcdvdstr ancoms ralrimiva 3expia oveq2 breq1d ralbidv imbi12d
      wi breq1 wne cabs cfv cgcd cdiv c2 cuz wo cn clt simpld gcdcl nn0zd simpl
      gcddvds dvdsabsb syl2anc mpbid gcdn0cl sylan2 nnzd nnne0d nnabscl adantlr
      necon3ai dvdsval2 syl3anc nngt0 jca divgt0 syl2an elnnz sylanbrc elnn1uz2
      nnre sylib simprd syl5ibcom cmul nncnd 1cnd divmuld eqeq1d bitrd absdvdsb
      mulid1d 3imtr4d wrex exprmfct simprl pcdiv syl121anc cq simplll syl pcabs
      cmin zq oveq1d eqtrd simprr pcelnn mpbird eqeltrrd pccld cn0 simplr pczcl
      syl12anc znnsub nn0red ltnled simpllr nprmdvds1 ad2antrl gcdid0 oveq2d cc
      cif breq2d mtbird mpd biantrurd expr syl5 cxr adantl necon3bd lemin pcgcd
      dividd leidd 3bitr4rd reximdva rexnal syl6ib orim12d ord con4d 2prm ne0ii
      c0 r19.2z mpan id pcxcl syl2anr pnfge pc0 xrletri3 sylancl 3bitr4d pnfnre
      pnfxr neli mtbiri adantll an4s necon1bd sylbid rexlimdva sylibrd pm2.61ne
      eleq1 0dvds impbid ) ADEZBDEZFZABGHZCUAZAIJZUWDBIJZKHZCLUBZUVTUWAUWCUWHUV
      TUWAUWCUCZUWGCLUWDLEZUWIUWGABUWDUDUEUFUGUWBUWHUWCULUWDMIJZUWFKHZCLUBZMBGH
      ZULAMAMNZUWHUWMUWCUWNUWOUWGUWLCLUWOUWEUWKUWFKAMUWDIUHUIUJAMBGUMUKUWBAMUNZ
      FZUWCUWHUWQUWCUWHOZUWQAUOUPZABUQJZURJZPNZUXAUSUTUPEZVAZUWCUWRVAUWQUXAVBEZ
      UXDUWQUXADEZMUXAVCHZUXEUWQUWTUWSGHZUXFUWBUXHUWPUWBUWTAGHZUXHUWBUXIUWTBGHZ
      ABVHZVDUWBUWTDEZUVTUXIUXHQUWBUWTABVEVFUVTUWAVGUWTAVIVJVKRUWQUXLUWTMUNUWSD
      EZUXHUXFQUWQUWTUWPUWBUWOBMNZFZOUWTVBEZUXOAMUWOUXNVGVRABVLVMZVNUWQUWTUXQVO
      ZUWQUWSUVTUWPUWSVBEZUWAAVPVQZVNUWTUWSVSVTVKUWQUXSUXPUXGUXTUXQUXSUWSSEZMUW
      SVCHZFUWTSEZMUWTVCHZFUXGUXPUXSUYAUYBUWSWHUWSWAWBUXPUYCUYDUWTWHUWTWAWBUWSU
      WTWCWDVJUXAWEWFZUXAWGWIUWQUXBUWCUXCUWRUWQUWTUWSNZUWSBGHZUXBUWCUWQUXJUYFUY
      GUWBUXJUWPUWBUXIUXJUXKWJRUWTUWSBGUMWKUWQUXBUWTPWLJZUWSNUYFUWQUWSUWTPUWQUW
      SUXTWMZUWQUWTUXQWMZUWQWNUXRWOUWQUYHUWTUWSUWQUWTUYJWSWPWQUWBUWCUYGQUWPABWR
      RWTUXCUWDUXAGHZCLXAZUWQUWRUXACXBUWQUYLUWGOZCLXAUWRUWQUYKUYMCLUWQUWJUYKUYM
      UWQUWJUYKFZFZUWGUWEUWDUWTIJZKHZUYOUYPUWEVCHZUYQOUYOUYRUWEUYPXJJZVBEZUYOUW
      DUXAIJZUYSVBUYOVUAUWDUWSIJZUYPXJJZUYSUYOUWJUXMUWSMUNUXPVUAVUCNUWQUWJUYKXC
      ZUYOUWSUWQUXSUYNUXTRZVNUYOUWSVUEVOZUWQUXPUYNUXQRZUWSUWTUWDXDXEUYOVUBUWEUY
      PXJUYOUWJAXFEZVUBUWENVUDUYOUVTVUHUVTUWAUWPUYNXGZAXKXHAUWDXIVJXLXMUYOVUAVB
      EZUYKUWQUWJUYKXNZUYOUWJUXEVUJUYKQVUDUWQUXEUYNUYERUWDUXAXOVJXPXQUYOUYPDEUW
      EDEUYRUYTQUYOUYPUYOUWDUWTVUDVUGXRZVFUYOUWEUYOUWJUVTUWPUWEXSEVUDVUIUWBUWPU
      YNXTUWDAYAYBZVFUYPUWEYCVJXPUYOUYPUWEUYOUYPVULYDUYOUWEVUMYDZYEVKUYOUWEUWGU
      WEUWFYLZKHZUWEUWEKHZUWGFZUYQUWGUYOUWESEZVUSUWFSEZVUPVURQVUNVUNUYOUWFUYOUW
      JUWABMUNZUWFXSEVUDUVTUWAUWPUYNYFZUYOUWDUWSAMUQJZURJZGHZOVVAUYOVVEUWDPGHZU
      WJVVFOUWQUYKUWDYGYHUYOVVDPUWDGUYOVVDUWSUWSURJPUYOVVCUWSUWSURUYOUVTVVCUWSN
      VUIAYIXHYJUYOUWSUWQUWSYKEUYNUYIRVUFUUDXMYMYNUYOVVEBMUYOUYKUXNVVEVUKUXNUXA
      VVDUWDGUXNUWTVVCUWSURBMAUQUHYJYMWKUUAYOUWDBYAZYBYDUWEUWEUWFUUBVTUYOUYPVUO
      UWEKUYOUWJUVTUWAUYPVUONVUDVUIVVBABUWDUUCVTYMUYOVUQUWGUYOUWEVUNUUEYPUUFYNY
      QUUGUWGCLUUHUUIYRUUJYOUUKUULUWMUWLCLXAZUWBUWNLUUOUNUWMVVHUSLUUMUUNUWLCLUU
      PUUQUWBVVHUXNUWNUWBUWLUXNCLUWBUWJFZUWLUWFTNZUXNVVITUWFKHZUWFTKHZVVKFZUWLV
      VJVVIVVLVVKVVIUWFYSEZVVLUWJUWJBXFEZVVNUWBUWJUURUWAVVOUVTBXKYTUWDBUUSUUTZU
      WFUVAXHYPVVIUWKTUWFKUWJUWKTNUWBUWDUVBYTUIVVIVVNTYSEVVJVVMQVVPUVGUWFTUVCUV
      DUVEVVJVUTOVVIUXNVVJVUTTSETSUVFUVHUWFTSUVQUVIVVIVUTBMUWBUWJVVAVUTUVTUWJUW
      AVVAVUTUWJUWAVVAFZVUTUVTUWJVVQFUWFVVGYDUVJUVKYQUVLYRUVMUVNUWAUWNUXNQUVTBU
      VRYTUVOYRUVPUVS $.

    $( The prime count function, viewed as a function from ` NN ` to
       ` ( NN ^m Prime ) ` , is one-to-one.  (Contributed by Mario Carneiro,
       23-Feb-2014.) $)
    pc11 $p |- ( ( A e. NN0 /\ B e. NN0 ) -> ( A = B <->
                 A. p e. Prime ( p pCnt A ) = ( p pCnt B ) ) ) $=
      ( cn0 wcel wa wceq cpc co cprime wral cdvds wbr cz wb nn0z cle cxr cq zq
      cv oveq2 ralrimivw pcxcl sylan2 anim12dan xrletri3 ancoms ralbidva r19.26
      syl syl6bb pc2dvds anbi12d bitr4d syl2an dvdseq ex sylbid impbid2 ) ADEZB
      DEZFZABGZCUAZAHIZVEBHIZGZCJKZVDVHCJABVEHUBUCVCVIABLMZBALMZFZVDVAANEZBNEZV
      IVLOVBAPBPVMVNFZVIVFVGQMZCJKZVGVFQMZCJKZFZVLVOVIVPVRFZCJKVTVOVHWACJVEJEZV
      OVHWAOZWBVOFVFREZVGREZFWCWBVMWDVNWEVMWBASEWDATVEAUDUEVNWBBSEWEBTVEBUDUEUF
      VFVGUGUKUHUIVPVRCJUJULVOVJVQVKVSABCUMVNVMVKVSOBACUMUHUNUOUPVCVLVDABUQURUS
      UT $.

    $( The prime count function can be used as an indicator that a given
       rational number is an integer.  (Contributed by Mario Carneiro,
       23-Feb-2014.) $)
    pcz $p |- ( A e. QQ -> ( A e. ZZ <-> A. p e. Prime 0 <_ ( p pCnt A ) ) ) $=
      ( vx vy wcel cz cc0 cv cpc co cle wbr cprime wral wceq cn wrex wi cdvds
      wa cq pcge0 ancoms ralrimiva cdiv elq nnz dvds0 syl ad2antlr breqtrrd a1d
      simpr wne cmin simplll simplr simpllr pcdiv syl121anc breq2d cn0 syl12anc
      pczcl nn0red pccld subge0d bitrd ralbidva wb pc2dvds adantr bitr4d biimpd
      syl2anr pm2.61dane adantl nnne0 simpl dvdsval2 syl3anc sylibd oveq2 eleq1
      id ralbidv imbi12d syl5ibrcom rexlimivv sylbi impbid2 ) AUAEZAFEZGBHZAIJZ
      KLZBMNZWMWPBMWNMEZWMWPWNAUBUCUDWLACHZDHZUEJZOZDPQCFQWQWMRZCDAUFXBXCCDFPWS
      FEZWTPEZTZXCXBGWNXAIJZKLZBMNZXAFEZRXFXIWTWSSLZXJXFXIXKRWSGXFWSGOZTZXKXIXM
      WTGWSSXEWTGSLZXDXLXEWTFEZXNWTUGZWTUHUIUJXFXLUMUKULXFWSGUNZTZXIXKXRXIWNWTI
      JZWNWSIJZKLZBMNZXKXRXHYABMXRWRTZXHGXTXSUOJZKLYAYCXGYDGKYCWRXDXQXEXGYDOXRW
      RUMZXDXEXQWRUPZXFXQWRUQZXDXEXQWRURZWSWTWNUSUTVAYCXTXSYCXTYCWRXDXQXTVBEYEY
      FYGWNWSVDVCVEYCXSYCWNWTYEYHVFVEVGVHVIXFXKYBVJZXQXEXOXDYIXDXPXDWEWTWSBVKVO
      VLVMVNVPXFXOWTGUNZXDXKXJVJXEXOXDXPVQXEYJXDWTVRVQXDXEVSWTWSVTWAWBXBWQXIWMX
      JXBWPXHBMXBWOXGGKAXAWNIWCVAWFAXAFWDWGWHWIWJWK $.
  $}

  ${
    $d n p A $.  $d n p P $.
    $( Self-referential expression for a prime power.  (Contributed by Mario
       Carneiro, 16-Jan-2015.) $)
    pcprmpw2 $p |- ( ( P e. Prime /\ A e. NN ) ->
      ( E. n e. NN0 A || ( P ^ n ) <-> A = ( P ^ ( P pCnt A ) ) ) ) $=
      ( vp cprime wcel cn wa cdvds wbr cn0 cpc wceq ad2antrr adantr cle syl2anc
      co cz nnzd cexp wrex simplr nnnn0d prmnn pccl nnexpcld wral nn0red simpll
      cv leidd nn0zd pcid breqtrrd simpr oveq1d 3brtr4d wne cc0 wn simplrr prmz
      adantl simprl dvdstr syl3anc mpan2d simplrl prmdvdsexpr syld necon3ad imp
      wi pceq0 mpbird pccld nn0ge0d eqbrtrd pm2.61dane ralrimiva pc2dvds pcdvds
      wb dvdseq syl22anc rexlimdvaa iddvds oveq2 breq2d rspcev breq1 syl5ibrcom
      syl rexbidv impbid ) BEFZAGFZHZABCUKZUARZIJZCKUBZABBALRZUARZMZWSXBXFCKWSW
      TKFZXBHZHZAKFXEKFAXEIJZXEAIJZXFXIAWQWRXHUCZUDXIXEXIBXDWQBGFZWRXHBUEZNZWSX
      DKFZXHBAUFZOZUGZUDXIXJDUKZALRZXTXELRZPJZDEUHZXIYCDEXIXTEFZHZYCXTBYFXTBMZH
      ZXDBXELRZYAYBPXIXDYIPJYEYGXIXDXDYIPXIXDXIXDXRUIULXIWQXDSFYIXDMWQWRXHUJZXI
      XDXRUMXDBUNQUONYHXTBALYFYGUPZUQYHXTBXELYKUQURYFXTBUSZHZYAUTYBPYMYAUTMZXTA
      IJZVAZYFYLYPYFYOXTBYFYOXTXAIJZYGYFYOXBYQWSXGXBYEVBYFXTSFZASFZXASFYOXBHYQV
      NYEYRXIXTVCVDYFAXIWRYEXLOTYFXAXIXAGFYEXIBWTXOWSXGXBVEUGOTXTAXAVFVGVHYFYEW
      QXGYQYGVNXIYEUPXIWQYEYJOWSXGXBYEVIXTBWTVJVGVKVLVMYMYEWRYNYPWDXIYEYLUCZXIW
      RYEYLXLNXTAVOQVPYMYBYMXTXEYTXIXEGFYEYLXSNVQVRVSVTWAXIYSXESFZXJYDWDXIAXLTX
      IXEXSTAXEDWBQVPWSXKXHBAWCOAXEWEWFWGWSXCXFXEXAIJZCKUBZWSXPXEXEIJZUUCXQWSUU
      AUUDWSXEWSBXDWQXMWRXNOXQUGTXEWHWNUUBUUDCXDKWTXDMXAXEXEIWTXDBUAWIWJWKQXFXB
      UUBCKAXEXAIWLWOWMWP $.

    $( Self-referential expression for a prime power.  (Contributed by Mario
       Carneiro, 16-Jan-2015.) $)
    pcprmpw $p |- ( ( P e. Prime /\ A e. NN ) ->
      ( E. n e. NN0 A = ( P ^ n ) <-> A = ( P ^ ( P pCnt A ) ) ) ) $=
      ( cprime wcel cn wa cv cexp co wceq cn0 wrex cpc cdvds wbr cz prmz adantr
      syl zexpcl sylan iddvds breq1 syl5ibrcom reximdva pcprmpw2 sylibd wi pccl
      oveq2 eqeq2d rspcev ex impbid ) BDEZAFEZGZABCHZIJZKZCLMZABBANJZIJZKZURVBA
      UTOPZCLMVEURVAVFCLURUSLEZGZVFVAUTUTOPZVHUTQEZVIURBQEZVGVJUPVKUQBRSBUSUAUB
      UTUCTAUTUTOUDUEUFABCUGUHURVCLEZVEVBUIBAUJVLVEVBVAVECVCLUSVCKUTVDAUSVCBIUK
      ULUMUNTUO $.
  $}

  ${
    $d A n $.  $d N n $.  $d P n $.
    $( If a positive integer divides a prime power, it is a prime power.
       (Contributed by AV, 25-Jul-2021.) $)
    dvdsprmpweq $p |- ( ( P e. Prime /\ A e. NN /\ N e. NN0 )
                      -> ( A || ( P ^ N ) -> E. n e. NN0 A = ( P ^ n ) ) ) $=
      ( cprime wcel cn cn0 w3a cexp co cdvds wceq wrex adantr wb oveq2 rspcedvd
      wbr adantl cv wa cpc simp1 simp2 pccld eqeq2d simpl3 breq2d simpr 3adant3
      pcprmpw2 mpbid ex ) BEFZAGFZDHFZIZABDJKZLSZABCUAZJKZMZCHNURUTUBZVCABBAUCK
      ZJKZMZCVEHURVEHFUTURBAUOUPUQUDUOUPUQUEUFOVAVEMZVCVGPVDVHVBVFAVAVEBJQUGTVD
      AVBLSZCHNZVGVDVIUTCDHUOUPUQUTUHVADMZVIUTPVDVKVBUSALVADBJQUITURUTUJRURVJVG
      PZUTUOUPVLUQABCULUKOUMRUN $.

    $( If an integer greater than 1 divides a prime power, it is a (proper)
       prime power.  (Contributed by AV, 13-Aug-2021.) $)
    dvdsprmpweqnn $p |- ( ( P e. Prime /\ A e. ( ZZ>= ` 2 ) /\ N e. NN0 )
                         -> ( A || ( P ^ N ) -> E. n e. NN A = ( P ^ n ) ) ) $=
      ( cprime wcel c2 cn0 cexp co wceq cn wrex wi cc0 cz eqeq2d c1 com12 sylbi
      cuz cfv w3a cdvds wbr cv wa eluz2nn dvdsprmpweq syl3an2 imp csn cun df-n0
      wo rexeqi rexun bitri wb 0z oveq2 rexsng ax-mp prmnn nncnd exp0d 3ad2ant1
      wne eluz2b3 eqneqall simplbiim 3ad2ant2 sylbid impd jao1i mpcom ex ) BEFZ
      AGUAUBFZDHFZUCZABDIJUDUEZABCUFZIJZKZCLMZWECHMZWAWBUGZWFWAWBWGVSVRALFZVTWB
      WGNAUHABCDUIUJUKWGWFWECOULZMZUOZWHWFNZWGWECLWJUMZMWLWECHWNUNUPWECLWJUQURW
      FWKWHWKABOIJZKZWMOPFWKWPUSUTWEWPCOPWCOKWDWOAWCOBIVAQVBVCWPWAWBWFWAWPWBWFN
      ZWAWPARKZWQWAWORAVRVSWORKVTVRBVRBBVDVEVFVGQVSVRWRWQNZVTVSWIARVHZWSAVIWRWT
      WQWQARVJSVKVLVMSVNTVOTVPVQ $.

    $( If a positive integer divides a prime power, it is a prime power with a
       smaller exponent.  (Contributed by AV, 25-Jul-2021.) $)
    dvdsprmpweqle $p |- ( ( P e. Prime /\ A e. NN /\ N e. NN0 )
                         -> ( A || ( P ^ N )
                              -> E. n e. NN0 ( n <_ N /\ A = ( P ^ n ) ) ) ) $=
      ( wcel cn0 cexp co wbr wceq wa clt cr adantr syl wi cz 3ad2ant1 c1 ex w3a
      cprime cn cdvds cv cle wrex dvdsprmpweq imp nn0re 3ad2ant3 anim12i ancomd
      wo lelttric wb breq1 adantl cc0 wne prmnn nnnn0d simpr nn0expcld nn0zd cc
      cdiv nncnd nnne0d nn0z expne0d simp3 dvdsval2 syl3anc jca expsub syl2an2r
      cmin eqcomd eleq1d nn0cn subcld negsubdi2 anim1i ltsubnn0 eqeltrd expneg2
      cneg nnred reexpcld znnsub biimpa prmgt1 expgt1 breq2d anbi12d syl5ibrcom
      wn oveq2 mpd recnz pm2.21d sylbid com23 imp41 com12 jao1i mpcom reximdva
      ) BUBEZAUCEZDFEZUAZABDGHZUDIZCUEZDUFIZABXPGHZJZKZCFUGZXMXOKZXSCFUGZYAXMXO
      YCABCDUHUIYBXSXTCFYBXPFEZKZXSXTYEXSKZXQXSXQDXPLIZUNZYFXQYFXPMEZDMEZKZYHYE
      YKXSYEYJYIYBYJYDYIXMYJXOXLXJYJXKDUJUKNXPUJULUMNXPDUOOXQYGYFYFYGXQXMXOYDXS
      YGXQPZXMYDXOXSYLPZXMYDXOYMPXMYDKZXSXOYLYNXSXOYLPYNXSKXOXRXNUDIZYLXSXOYOUP
      YNAXRXNUDUQURYNYOYLPXSYNYOXNXRVGHZQEZYLYNXRQEXRUSUTXNQEYOYQUPYNXRYNBXPXMB
      FEZYDXJXKYRXLXJBBVAZVBRNZXMYDVCVDVEYNBXPXMBVFEZYDXJXKUUAXLXJBYSVHZRNZXMBU
      SUTZYDXJXKUUDXLXJBYSVIZRNYDXPQEZXMXPVJZURVKYNXNYNBDYTXMXLYDXJXKXLVLZNVDVE
      XRXNVMVNYNYQBDXPVRHZGHZQEZYLYNYPUUJQXMUUAUUDKZYDDQEZUUFKZYPUUJJXJXKUULXLX
      JUUAUUDUUBUUEVORXMUUMYDUUFXLXJUUMXKDVJUKUUGULZUULUUNKUUJYPBDXPVPVSVQVTYNY
      GUUKXQYNYGUUKXQPYNYGKZUUKSBUUIWHZGHZVGHZQEZXQUUPUUJUUSQUUPUUAUUIVFEZUUQFE
      UUJUUSJYNUUAYGUUCNYNUVAYGYNDXPXMDVFEZYDXLXJUVBXKDWAUKZNYDXPVFEZXMXPWAZURW
      BNUUPUUQXPDVRHZFUUPUVBUVDKZUUQUVFJZYNUVGYGXMUVBYDUVDUVCUVEULNDXPWCOZYNYGU
      VFFEZYNYDXLKYGUVJPYNXLYDXMXLYDUUHWDUMXPDWEOUIZWFBUUIWGVNVTUUPUUTXQUUPUURM
      EZSUURLIZKZUUTWRUUPUVHUVNUVIUUPUVNUVHBUVFGHZMEZSUVOLIZKUUPUVPUVQUUPBUVFYN
      BMEZYGXMUVRYDXJXKUVRXLXJBYSWIRNNZUVKWJUUPUVRUVFUCEZSBLIZUVQUVSYNYGUVTYNUU
      NYGUVTUPUUODXPWKOWLYNUWAYGXMUWAYDXJXKUWAXLBWMRNNBUVFWNVNVOUVHUVLUVPUVMUVQ
      UVHUURUVOMUUQUVFBGWSZVTUVHUURUVOSLUWBWOWPWQWTUURXAOXBXCTXDXCXCNXCTXDTXDXE
      XFXGXHYEXSVCVOTXIWTT $.
  $}

  ${
    $d A m n $.  $d B m n $.  $d C m n $.  $d D m n $.
    $( If the difference of two squares is a power of a prime, the prime
       divides twice the second squared number.  (Contributed by AV,
       13-Aug-2021.) $)
    difsqpwdvds $p |- ( ( ( A e. NN0 /\ B e. NN0 /\ ( B + 1 ) < A )
                          /\ ( C e. Prime /\ D e. NN0 ) )
                        -> ( ( C ^ D ) = ( ( A ^ 2 ) - ( B ^ 2 ) )
                             -> C || ( 2 x. B ) ) ) $=
      ( vm wcel c1 co wbr w3a wa cexp wceq cdvds syl adantr cn cz adantl wi cn0
      vn caddc clt cprime c2 cmin cmul cc nn0cn anim12i 3adant3 subsq eqeq2d cv
      wrex cuz cfv simprl nn0z zaddcl cr nn0re 1red ltaddsub2d simpr difgtsumgt
      3jca sylbid 3impia eluz2b1 sylanbrc simprr zsubcl dvdsmul1 ad2antrr breq2
      jca mpbird dvdsprmpweqnn sylc prmz iddvdsexp syl5ibrcom rexlimdva biimp3a
      sylan dvdsmul2 anim12ci 3anass dvds2sub 3ad2ant1 3ad2ant2 pnncand 2timesd
      wb sylibr eqcomd eqtrd breq2d biimpd syld expcomd mpd ex ) AUAFZBUAFZBGUC
      HAUDIZJZCUEFZDUAFZKZKZCDLHZAUFLHBUFLHUGHZMXNABUCHZABUGHZUHHZMZCUFBUHHZNIZ
      XMXOXRXNXIXOXRMZXLXIAUIFZBUIFZKZYBXFXGYEXHXFYCXGYDAUJZBUJZUKULABUMOPUNXMX
      SYAXMXSKZXPCEUOZLHZMZEQUPZYAYHXJXPUFUQURZFZXKJZXPXNNIZYLXMYOXSXMXJYNXKXIX
      JXKUSZXIYNXLXIXPRFZGXPUDIZYNXFXGYRXHXFXGKZARFZBRFZKZYRXFUUAXGUUBAUTBUTUKZ
      ABVAZOULXFXGXHYSYTXHGXQUDIZYSYTBGAXGBVBFXFBVCSYTVDZXFAVBFZXGAVCPZVEZYTUUH
      XGGVBFZJUUFYSTYTUUHXGUUKUUIXFXGVFUUGVHABGVGOVIVJXPVKVLPXIXJXKVMZVHPYHYPXP
      XRNIZXIUUMXLXSXIYRXQRFZKZUUMXFXGUUOXHYTUUCUUOUUDUUCYRUUNUUEABVNZVROULZXPX
      QVOOVPXSYPUUMWPXMXNXRXPNVQSVSXPCEDVTWAYHYLCXPNIZYAXMYLUURTZXSXLUUSXIXJUUS
      XKXJYKUUREQXJYIQFZKUURYKCYJNIZXJCRFZUUTUVACWBZCYIWCWGXPYJCNVQWDWEPSPYHXQC
      UBUOZLHZMZUBQUPZUURYATZYHXJXQYMFZXKJZXQXNNIZUVGXMUVJXSXMXJUVIXKYQXIUVIXLX
      IUUNUUFUVIXFXGUUNXHYTUUCUUNUUDUUPOULXFXGXHUUFUUJWFXQVKVLPUULVHPYHUVKXQXRN
      IZXIUVLXLXSXIUUOUVLUUQXPXQWHOVPXSUVKUVLWPXMXNXRXQNVQSVSXQCUBDVTWAYHUVGCXQ
      NIZUVHXMUVGUVMTZXSXLUVNXIXJUVNXKXJUVFUVMUBQXJUVDQFZKUVMUVFCUVENIZXJUVBUVO
      UVPUVCCUVDWCWGXQUVECNVQWDWEPSPXMUVMUVHTXSXMUURUVMYAXMUURUVMKZCXPXQUGHZNIZ
      YAXMUVBYRUUNJZUVQUVSTXMUVBUUOKUVTXIUUOXLUVBUUQXJUVBXKUVCPWIUVBYRUUNWJWQCX
      PXQWKOXIUVSYATXLXIUVSYAXIUVRXTCNXIUVRBBUCHZXTXIABBXFXGYCXHYFWLXGXFYDXHYGW
      MZUWBWNXGXFUWAXTMXHXGXTUWAXGBYGWOWRWMWSWTXAPXBXCPXBXDXBXDXEVI $.
  $}

  ${
    pcaddlem.1 $e |- ( ph -> P e. Prime ) $.
    pcaddlem.2 $e |- ( ph -> A = ( ( P ^ M ) x. ( R / S ) ) ) $.
    pcaddlem.3 $e |- ( ph -> B = ( ( P ^ N ) x. ( T / U ) ) ) $.
    pcaddlem.4 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    pcaddlem.5 $e |- ( ph -> ( R e. ZZ /\ -. P || R ) ) $.
    pcaddlem.6 $e |- ( ph -> ( S e. NN /\ -. P || S ) ) $.
    pcaddlem.7 $e |- ( ph -> ( T e. ZZ /\ -. P || T ) ) $.
    pcaddlem.8 $e |- ( ph -> ( U e. NN /\ -. P || U ) ) $.
    $( Lemma for ~ pcadd .  The original numbers ` A ` and ` B ` have been
       decomposed using the prime count function as ` ( P ^ M ) x. ( R / S ) `
       where ` R , S ` are both not divisible by ` P ` and
       ` M = ( P pCnt A ) ` , and similarly for ` B ` .  (Contributed by Mario
       Carneiro, 9-Sep-2014.) $)
    pcaddlem $p |- ( ph -> M <_ ( P pCnt ( A + B ) ) ) $=
      ( co cc0 caddc cpc cle wbr wceq oveq2 breq2d wne cdiv cmin cexp cmul wcel
      wa cr cn0 cuz cfv cz eluzel2 syl zred adantr cprime cn prmnn nncnd nnne0d
      eluzelz zsubcld expclzd cdvds wn simpld zcnd divassd oveq2d mulcld eqtr3d
      divadddivd nnzd zmulcld uznn0sub zaddcld mul01d eqeq1d syl5ibrcom necon3d
      nnexpcld divcld adddid pncan3d cc expaddz syl22anc oveq1d mulassd oveq12d
      3eqtrd eqtr4d 3imtr3d nnmulcld div0d oveq1 syld imp pcdiv syl121anc pcmul
      neeq1d syl122anc simprd wb pceq0 syl2anc mpbird 00id eqtrd pczcl syl12anc
      syl6eq nn0cnd subid1d eqeltrd nn0addge1 cq qexpclz syl3anc expne0d qmulcl
      nnq znq qaddcl sylbird pcqmul pcid 3eqtr3d breqtrrd cpnf cxr pc0 pm2.61ne
      rexrd pnfge ) AIDBCUASZUBSZUCUDIDTUBSZUCUDUUETUUETUEUUFUUGIUCUUETDUBUFUGA
      UUETUHZUNZIIDEFUISZDJIUJSZUKSZGHUISZULSZUASZUBSZUASZUUFUCUUIIUOUMZUUPUPUM
      IUUQUCUDAUURUUHAIAJIUQURUMZIUSUMZNIJUTVAZVBZVCUUIUUPDEHULSZUULGULSZFULSZU
      ASZUBSZUPUUIUUPDUVFFHULSZUISZUBSZUVGDUVHUBSZUJSZUVGAUUPUVJUEUUHAUUOUVIDUB
      AUUJUVDHUISZUASUUOUVIAUVMUUNUUJUAAUULGHADUUKADADVDUMZDVEUMZKDVFVAZVGZADUV
      PVHZAJIAUUSJUSUMNIJVIVAZUVAVJZVKZAGAGUSUMZDGVLUDVMQVNZVOZAHAHVEUMZDHVLUDV
      MZRVNZVGZAHUWGVHZVPVQAEFUVDHAEAEUSUMZDEVLUDVMOVNZVOZAFAFVEUMZDFVLUDVMZPVN
      ZVGZAUULGUWAUWDVRUWHAFUWOVHZUWIVTVSZVQVCUUIUVNUVFUSUMZUVFTUHZUVHVEUMZUVJU
      VLUEAUVNUUHKVCZAUWSUUHAUVCUVEAEHUWKAHUWGWAZWBAUVDFAUULGAUULADUUKUVPAUUSUU
      KUPUMNIJWCVAWIWAUWCWBAFUWOWAZWBWDVCZAUUHUWTAUUHUVITUHZUWTADIUKSZUUOULSZTU
      HZUUOTUHZUUHUXFAUUOTUXHTAUXHTUEUUOTUEZUXGTULSZTUEAUXGADIUVQUVRUVAVKZWEUXK
      UXHUXLTUUOTUXGULUFWFWGWHZAUXHUUETAUXHUXGUUJULSZUXGUUNULSZUASUUEAUXGUUJUUN
      UXMAEFUWLUWPUWQWJAUULUUMUWAAGHUWDUWHUWIWJZVRWKABUXOCUXPUALACDJUKSZUUMULSU
      XGUULULSZUUMULSUXPMAUXRUXSUUMULADIUUKUASZUKSZUXRUXSAUXTJDUKAIJAIUVAVOAJUV
      SVOWLVQADWMUMDTUHZUUTUUKUSUMZUYAUXSUEUVQUVRUVAUVTDIUUKWNWOVSWPAUXGUULUUMU
      XMUWAUXQWQWSWRWTZXJZAUUOUVITUWRXJXAAUVFTUVITAUVITUEUVFTUEZTUVHUISZTUEAUVH
      AUVHAFHUWOUWGXBZVGAUVHUYHVHXCUYFUVIUYGTUVFTUVHUIXDWFWGWHXEXFZAUXAUUHUYHVC
      UVFUVHDXGXHUUIUVLUVGTUJSZUVGAUVLUYJUEUUHAUVKTUVGUJAUVKDFUBSZDHUBSZUASZTAU
      VNFUSUMFTUHHUSUMHTUHUVKUYMUEKUXDUWQUXCUWIFHDXIXKAUYMTTUASTAUYKTUYLTUAAUYK
      TUEZUWNAUWMUWNPXLAUVNUWMUYNUWNXMKUWODFXNXOXPAUYLTUEZUWFAUWEUWFRXLAUVNUWEU
      YOUWFXMKUWGDHXNXOXPWRXQYAXRVQVCUUIUVGUUIUVGUUIUVNUWSUWTUVGUPUMUXBUXEUYIDU
      VFXSXTZYBYCXRWSUYPYDIUUPYEXOUUIDUXHUBSZDUXGUBSZUUPUASZUUFUUQUUIUVNUXGYFUM
      ZUXGTUHZUUOYFUMZUXJUYQUYSUEUXBAUYTUUHADYFUMZUYBUUTUYTAUVOVUCUVPDYKVAZUVRU
      VADIYGYHVCAVUAUUHADIUVQUVRUVAYIVCAVUBUUHAUUJYFUMZUUNYFUMZVUBAUWJUWMVUEUWK
      UWOEFYLXOAUULYFUMZUUMYFUMZVUFAVUCUYBUYCVUGVUDUVRUVTDUUKYGYHAUWBUWEVUHUWCU
      WGGHYLXOUULUUMYJXOUUJUUNYMXOVCAUUHUXJAUUHUXIUXJUYEUXNYNXFUXGUUODYOXKAUYQU
      UFUEUUHAUXHUUEDUBUYDVQVCAUYSUUQUEUUHAUYRIUUPUAAUVNUUTUYRIUEKUVAIDYPXOWPVC
      YQYRAIYSUUGUCAIYTUMIYSUCUDAIUVBUUCIUUDVAAUVNUUGYSUEKDUUAVAYRUUB $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z P $.  $d w x y z ph $.
    pcadd.1 $e |- ( ph -> P e. Prime ) $.
    pcadd.2 $e |- ( ph -> A e. QQ ) $.
    pcadd.3 $e |- ( ph -> B e. QQ ) $.
    pcadd.4 $e |- ( ph -> ( P pCnt A ) <_ ( P pCnt B ) ) $.
    $( An inequality for the prime count of a sum.  This is the source of the
       ultrametric inequality for the p-adic metric.  (Contributed by Mario
       Carneiro, 9-Sep-2014.) $)
    pcadd $p |- ( ph -> ( P pCnt A ) <_ ( P pCnt ( A + B ) ) ) $=
      ( cdiv co wceq cn cz cpc wbr wcel wa cc0 oveq2d cmul vx vy vz vw cv caddc
      wrex cle cq elq sylib wi cxr cprime pcxcl syl2anc xrleid syl adantr oveq2
      cc qcn addid1d sylan9eqr breqtrrd a1d wne reeanv cexp ad3antrrr prmnn cn0
      simplrl simprrl wn cpnf cr simpllr pcqcl syl12anc zred clt ltpnf wb pnfxr
      rexr xrltnle sylancl mpbid pc0 breq1d syl5ibcom necon3bd eqnetrrd simprll
      mtbird mpd nncnd nnne0d div0d oveq1 eqeq1d necon3d pczcl nnexpcld mulcomd
      syl5ibrcom zcnd pccld divdivdivd cmin pcdiv syl121anc eqtrd nn0zd expsubd
      oveq1d 3eqtrd 3eqtr4d expclzd expne0d divcan2d simplrr cdvds pczdvds nnzd
      eqtr2d dvdsval2 syl3anc pczndvds2 jca pcdvds nnred divgt0d elnnz sylanbrc
      nngt0d pcndvds2 rexlimdvva syl5bir simprrr simprlr cuz eluz pcaddlem expr
      cfv mpbird pm2.61dane mp2and ) ABUAUEZUBUEZIJZKZUBLUGZUAMUGZCUCUEZUDUEZIJ
      ZKZUDLUGZUCMUGZDBNJZDBCUFJZNJZUHOZABUIPZUUPFUAUBBUJUKACUIPZUVBGUCUDCUJUKA
      UUPUVBQZUVFULCRACRKZQZUVFUVIUVKUVCUVCUVEUHAUVCUVCUHOZUVJAUVCUMPZUVLADUNPZ
      UVGUVMEFDBUOUPUVCUQURUSUVKUVDBDNUVJAUVDBRUFJBCRBUFUTABAUVGBVAPZFBVBZURVCV
      DSVEVFUVIUUOUVAQZUCMUGUAMUGACRVGZQZUVFUUOUVAUAUCMMVHUVSUVQUVFUAUCMMUVQUUN
      UUTQZUDLUGUBLUGUVSUUKMPZUUQMPZQZQZUVFUUNUUTUBUDLLVHUWDUVTUVFUBUDLLUWDUULL
      PZUURLPZQZUVTUVFUWDUWGUVTQZQZBCDUUKDDUUKNJZVIJZIJZUULDDUULNJZVIJZIJZUUQDD
      UUQNJZVIJZIJZUURDDUURNJZVIJZIJZUVCDCNJZAUVNUVRUWCUWHEVJZUWIDUVCVIJZUWLUWO
      IJZTJUXDBUXDIJZTJBUWIUXEUXFUXDTUWIUUKUWNTJZUWKUULTJZIJUXGUULUWKTJZIJZUXEU
      XFUWIUXHUXIUXGIUWIUWKUULUWIUWKUWIDUWJUWIUVNDLPUXCDVKURZUWIUVNUWAUUKRVGZUW
      JVLPUXCUVSUWAUWBUWHVMZUWIUUMRVGUXLUWIBUUMRUWDUWGUUNUUTVNZUWIDRNJZUXBUHOZV
      OBRVGZUWIUXPVPUXBUHOZUWIUXBVQPZUXRVOZUWIUXBUWIUVNUVHUVRUXBMPZUXCAUVHUVRUW
      CUWHGVJZAUVRUWCUWHVRZDCVSVTZWAUXSUXBVPWBOZUXTUXBWCUXSUXBUMPVPUMPUYEUXTWDU
      XBWFWEUXBVPWGWHWIURUWIUXOVPUXBUHUWIUVNUXOVPKUXCDWJURWKWPUWIUXPBRUWIUVCUXB
      UHOZBRKZUXPAUYFUVRUWCUWHHVJZUYGUVCUXOUXBUHBRDNUTWKWLWMWQZWNUWIUUKRUUMRUWI
      UUMRKUUKRKZRUULIJZRKUWIUULUWIUULUWDUWEUWFUVTWOZWRZUWIUULUYLWSZWTUYJUUMUYK
      RUUKRUULIXAXBXGXCWQZDUUKXDVTZXEZWRZUYMXFSUWIUUKUWKUULUWNUWIUUKUXMXHZUYRUY
      MUWIUWNUWIDUWMUXKUWIDUULUXCUYLXIZXEZWRZUWIUWKUYQWSZUWIUWNVUAWSZUYNXJUWIUX
      FBUWKUWNIJZIJUUMVUEIJUXJUWIUXDVUEBIUWIUXDDUWJUWMXKJZVIJVUEUWIUVCVUFDVIUWI
      UVCDUUMNJZVUFUWIBUUMDNUXNSUWIUVNUWAUXLUWEVUGVUFKUXCUXMUYOUYLUUKUULDXLXMXN
      SUWIDUWJUWMUWIDUXKWRZUWIDUXKWSZUWIUWMUYTXOUWIUWJUYPXOXPXNSUWIBUUMVUEIUXNX
      QUWIUUKUULUWKUWNUYSUYMUYRVUBUYNVUDVUCXJXRXSSUWIBUXDUWIUVGUVOAUVGUVRUWCUWH
      FVJZUVPURUWIDUVCVUHVUIUWIUVNUVGUXQUVCMPZUXCVUJUYIDBVSVTZXTUWIDUVCVUHVUIVU
      LYAYBYGUWIDUXBVIJZUWRUXAIJZTJVUMCVUMIJZTJCUWIVUNVUOVUMTUWIUUQUWTTJZUWQUUR
      TJZIJVUPUURUWQTJZIJZVUNVUOUWIVUQVURVUPIUWIUWQUURUWIUWQUWIDUWPUXKUWIUVNUWB
      UUQRVGZUWPVLPUXCUVSUWAUWBUWHYCZUWIUUSRVGVUTUWICUUSRUWDUWGUUNUUTUUAZUYCWNU
      WIUUQRUUSRUWIUUSRKUUQRKZRUURIJZRKUWIUURUWIUURUWDUWEUWFUVTUUBZWRZUWIUURVVE
      WSZWTVVCUUSVVDRUUQRUURIXAXBXGXCWQZDUUQXDVTZXEZWRZVVFXFSUWIUUQUWQUURUWTUWI
      UUQVVAXHZVVKVVFUWIUWTUWIDUWSUXKUWIDUURUXCVVEXIZXEZWRZUWIUWQVVJWSZUWIUWTVV
      NWSZVVGXJUWIVUOCUWQUWTIJZIJUUSVVRIJVUSUWIVUMVVRCIUWIVUMDUWPUWSXKJZVIJVVRU
      WIUXBVVSDVIUWIUXBDUUSNJZVVSUWICUUSDNVVBSUWIUVNUWBVUTUWFVVTVVSKUXCVVAVVHVV
      EUUQUURDXLXMXNSUWIDUWPUWSVUHVUIUWIUWSVVMXOUWIUWPVVIXOXPXNSUWICUUSVVRIVVBX
      QUWIUUQUURUWQUWTVVLVVFVVKVVOVVGVVQVVPXJXRXSSUWICVUMUWIUVHCVAPUYBCVBURUWID
      UXBVUHVUIUYDXTUWIDUXBVUHVUIUYDYAYBYGUWIUXBUVCUUCUUGPZUYFUYHUWIVUKUYAVWAUY
      FWDVULUYDUVCUXBUUDUPUUHUWIUWLMPZDUWLYDOVOZUWIUWKUUKYDOZVWBUWIUVNUWAUXLVWD
      UXCUXMUYODUUKYEVTUWIUWKMPUWKRVGUWAVWDVWBWDUWIUWKUYQYFVUCUXMUWKUUKYHYIWIUW
      IUVNUWAUXLVWCUXCUXMUYODUUKYJVTYKUWIUWOLPZDUWOYDOVOZUWIUWOMPZRUWOWBOVWEUWI
      UWNUULYDOZVWGUWIUVNUWEVWHUXCUYLDUULYLUPUWIUWNMPUWNRVGUULMPVWHVWGWDUWIUWNV
      UAYFVUDUWIUULUYLYFUWNUULYHYIWIUWIUULUWNUWIUULUYLYMUWIUWNVUAYMUWIUULUYLYQU
      WIUWNVUAYQYNUWOYOYPUWIUVNUWEVWFUXCUYLDUULYRUPYKUWIUWRMPZDUWRYDOVOZUWIUWQU
      UQYDOZVWIUWIUVNUWBVUTVWKUXCVVAVVHDUUQYEVTUWIUWQMPUWQRVGUWBVWKVWIWDUWIUWQV
      VJYFVVPVVAUWQUUQYHYIWIUWIUVNUWBVUTVWJUXCVVAVVHDUUQYJVTYKUWIUXALPZDUXAYDOV
      OZUWIUXAMPZRUXAWBOVWLUWIUWTUURYDOZVWNUWIUVNUWFVWOUXCVVEDUURYLUPUWIUWTMPUW
      TRVGUURMPVWOVWNWDUWIUWTVVNYFVVQUWIUURVVEYFUWTUURYHYIWIUWIUURUWTUWIUURVVEY
      MUWIUWTVVNYMUWIUURVVEYQUWIUWTVVNYQYNUXAYOYPUWIUVNUWFVWMUXCVVEDUURYRUPYKUU
      EUUFYSYTYSYTUUIUUJ $.
  $}

  ${
    pcadd2.1 $e |- ( ph -> P e. Prime ) $.
    pcadd2.2 $e |- ( ph -> A e. QQ ) $.
    pcadd2.3 $e |- ( ph -> B e. QQ ) $.
    pcadd2.4 $e |- ( ph -> ( P pCnt A ) < ( P pCnt B ) ) $.
    $( The inequality of ~ pcadd becomes an equality when one of the factors
       has prime count strictly less than the other.  (Contributed by Mario
       Carneiro, 16-Jan-2015.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    pcadd2 $p |- ( ph -> ( P pCnt A ) = ( P pCnt ( A + B ) ) ) $=
      ( cpc co caddc cle wbr cxr wcel cq pcxcl syl2anc cc0 oveq2d clt wi cprime
      wceq xrltle mpd pcadd cneg qaddcl qnegcl syl wn wb xrltnle mpbid wa pcneg
      adantr breq1d biimpar ex cc qcn negcld add12d addcomd negidd eqtrd 3eqtrd
      addid1d breq12d sylibd mpbird breqtrrd addassd breqtrd xrletri3 mpbir2and
      mtod ) ADBIJZDBCKJZIJZUDZVTWBLMZWBVTLMZABCDEFGAVTDCIJZUAMZVTWFLMZHAVTNOZW
      FNOZWGWHUBADUCOZBPOZWIEFDBQRZAWKCPOZWJEGDCQRZVTWFUERUFUGAWBDWACUHZKJZIJVT
      LAWAWPDEAWLWNWAPOZFGBCUIRZAWNWPPOZGCUJUKZAWBWFDWPIJZLAWBWFUAMZWBWFLMZAXCW
      FWBLMZULZAXEWFVTLMZAWGXGULZHAWIWJWGXHUMWMWOVTWFUNRUOAXEXBDWPWAKJZIJZLMZXG
      AXEXKAXEUPWPWADAWKXEEURAWTXEXAURAWRXEWSURAXBWBLMXEAXBWFWBLAWKWNXBWFUDEGCD
      UQRZUSUTUGVAAXBWFXJVTLXLAXIBDIAXIBWPCKJZKJBSKJZBAWPBCACAWNCVBOGCVCUKZVDZA
      WLBVBOFBVCUKZXOVEAXMSBKAXMCWPKJZSAWPCXPXOVFACXOVGZVHTABXQVJZVITVKVLVSAWBN
      OZWJXCXFUMAWKWRYAEWSDWAQRZWOWBWFUNRVMAYAWJXCXDUBYBWOWBWFUERUFXLVNUGAWQBDI
      AWQBXRKJXNBABCWPXQXOXPVOAXRSBKXSTXTVITVPAWIYAWCWDWEUPUMWMYBVTWBVQRVR $.
  $}

  ${
    $d k m p A $.  $d k n p B $.  $d k p F $.  $d p M $.  $d p N $.
    $d k n m p P $.  $d k p ph $.
    pcmpt.1 $e |- F = ( n e. NN |-> if ( n e. Prime , ( n ^ A ) , 1 ) ) $.
    pcmpt.2 $e |- ( ph -> A. n e. Prime A e. NN0 ) $.
    $( Closure for the prime power map.  (Contributed by Mario Carneiro,
       12-Mar-2014.) $)
    pcmptcl $p |- ( ph -> ( F : NN --> NN /\
                    seq 1 ( x. , F ) : NN --> NN ) ) $=
      ( vk vp cn wf cmul c1 cv cprime wcel co wral wi wa a1d cseq cexp cif wceq
      pm2.27 iftrue adantr prmnn nnexpcl sylan eqeltrd ex syld iffalse syl6eqel
      cn0 1nn pm2.61i ralimi2 syl fmpt sylib nnuz 1zzd ffvelrnda nnmulcl adantl
      wn seqf jca ) AIIDJZIIKDLUAJACMZNOZVLBUBPZLUCZIOZCIQZVKABUPOZCNQVQFVRVPCN
      IVMVRRZVPVLIOZVMVSVPRVMVSVRVPVMVRUEVMVRVPVMVRSVOVNIVMVOVNUDVRVMVNLUFUGVMV
      TVRVNIOVLUHVLBUIUJUKULUMVMVHZVPVSWAVOLIVMVNLUNUQUOTURTUSUTCIIVODEVAVBZAGH
      KIDLIVCAVDAIIGMZDWBVEWCIOHMZIOSWCWDKPIOAWCWDVFVGVIVJ $.

    pcmpt.3 $e |- ( ph -> N e. NN ) $.
    ${
      pcmpt.4 $e |- ( ph -> P e. Prime ) $.
      pcmpt.5 $e |- ( n = P -> A = B ) $.
      $( Construct a function with given prime count characteristics.
         (Contributed by Mario Carneiro, 12-Mar-2014.) $)
      pcmpt $p |- ( ph -> ( P pCnt ( seq 1 ( x. , F ) ` N ) ) =
                          if ( P <_ N , B , 0 ) ) $=
        ( cn wcel c1 cpc co cle cc0 wceq vp vk cmul cseq cfv wbr cv caddc fveq2
        cif wi oveq2d breq2 ifbid eqeq12d imbi2d cprime cz seq1 ax-mp 1nn 1nprm
        cexp eleq1 mtbiri iffalsed 1ex fvmpt eqtri oveq2i pc1 syl5eq clt prmgt1
        1z wn cr wb 1re c2 cuz prmuz2 eluzelre syl ltnle mpbid eqtr4d wa adantr
        sylancr wf pcmptcl simpld peano2nn ffvelrn syl2an adantrr pccld addid2d
        nn0cnd csb cvv ad2antrl ovex ifex csbex fvmpts nfv nfcv nfcsb1v nfov id
        nfif csbeq1a oveq12d csbief syl6eq sylancl simprr eqeltrd iftrued eqtrd
        ifbieq1d csbeq1d 3eqtrd cn0 eleq1d sylc syl2anc simpr wne nnz nnne0 jca
        syl3anc nnred expr cdvds ad2antrr sylan9eq nfcvd csbiegf pcidlem eqeq1d
        wral rspcv oveq1 syl5ibrcom nnre ltp1 peano2re mpdan breq1d eqeq2d nnuz
        mtbid syl6eleq seqp1 simprd ffvelrnda pcmul prmnn leidd 3imtr4d simplrr
        breqtrrd necomd nfel1 rspc prmdvdsexpr necon3ad mpd iftrue breq2d pceq0
        mtbird mpbird iffalse pm2.61dan addid1d ltlend simprl nnleltp1 biantrud
        3bitr4rd biimprd pm2.61dne expcom a2d nnind mpcom ) GMNADGUCFOUDZUEZPQZ
        DGRUFZCSUJZTZJADUAUGZUWLUEZPQZDUWRRUFZCSUJZTZUKADOUWLUEZPQZDORUFZCSUJZT
        ZUKADUBUGZUWLUEZPQZDUXIRUFZCSUJZTZUKADUXIOUHQZUWLUEZPQZDUXORUFZCSUJZTZU
        KAUWQUKUAUBGUWROTZUXCUXHAUYAUWTUXEUXBUXGUYAUWSUXDDPUWROUWLUIULUYAUXAUXF
        CSUWRODRUMUNUOUPUWRUXITZUXCUXNAUYBUWTUXKUXBUXMUYBUWSUXJDPUWRUXIUWLUIULU
        YBUXAUXLCSUWRUXIDRUMUNUOUPUWRUXOTZUXCUXTAUYCUWTUXQUXBUXSUYCUWSUXPDPUWRU
        XOUWLUIULUYCUXAUXRCSUWRUXODRUMUNUOUPUWRGTZUXCUWQAUYDUWTUWNUXBUWPUYDUWSU
        WMDPUWRGUWLUIULUYDUXAUWOCSUWRGDRUMUNUOUPADUQNZUXHKUYEUXESUXGUYEUXEDOPQZ
        SUXDODPUXDOFUEZOOURNUXDUYGTVOUCFOUSUTOMNUYGOTVAEOEUGZUQNZUYHBVCQZOUJZOM
        FUYHOTZUYIUYJOUYLUYIOUQNVBUYHOUQVDVEVFHVGVHUTVIVJDVKZVLUYEUXFCSUYEODVMU
        FZUXFVPZDVNUYEOVQNDVQNZUYNUYOVRVSUYEDVTWAUENUYPDWBVTDWCWDODWEWJWFVFWGWD
        UXIMNZAUXNUXTAUYQUXNUXTUKZAUYQWHZUYRUXODAUYQUXODTZUYRAUYQUYTWHZWHZUXKST
        ZUXKDUXOFUEZPQZUHQZCTZUXNUXTVUBVUGVUCSVUEUHQZCTVUBVUHVUEDDCVCQZPQZCVUBV
        UEVUBVUEVUBDVUDAUYEVUAKWIZAUYQVUDMNZUYTAMMFWKZUXOMNZVULUYQAVUMMMUWLWKZA
        BEFHIWLZWMZUXIWNZMMUXOFWOZWPZWQWRWTWSVUBVUDVUIDPVUBVUDUXOUQNZUXOEUXOBXA
        ZVCQZOUJZVVCVUIVUBVUNEUXOUYKXAZXBNZVUDVVDTZUYQVUNAUYTVURXCEUXOUYKUYIUYJ
        OUYHBVCXDVGXEXFZVUNVVFWHVUDVVEVVDEUXOUYKMFXBHXGEUXOUYKVVDUXIOUHXDVVAEVV
        COVVAEXHEUXOVVBVCEUXOXIEVCXIEUXOBXJZXKEOXIXMUYHUXOTZUYIVVAUYJVVCOUYHUXO
        UQVDVVJUYHUXOBVVBVCVVJXLEUXOBXNZXOYCXPXQZXRVUBVVAVVCOVUBUXODUQAUYQUYTXS
        ZVUKXTYAVUBUXODVVBCVCVVMVUBVVBEDBXAZCVUBEUXODBVVMYDVUBUYEVVNCTVUKEDBCUQ
        UYEECUUALUUBWDYBXOYEULVUBUYECYFNZVUJCTVUKAVVOVUAAUYEBYFNZEUQUUEZVVOKIVV
        PVVOEDUQUYHDTBCYFLYGUUFYHWICDUUCYIYEVUCVUFVUHCUXKSVUEUHUUGUUDUUHVUBUXMS
        UXKVUBUXLCSVUBUXOUXIRUFZUXLVUBUXIVQNZVVRVPZUYQVVSAUYTUXIUUIXCVVSUXIUXOV
        MUFZVVTUXIUUJVVSUXOVQNVWAVVTVRUXIUUKUXIUXOWEUULWFWDVUBUXODUXIRVVMUUMUUP
        VFUUNVUBUXQVUFUXSCAUYQUXQVUFTZUYTUYSUXQDUXJVUDUCQZPQZVUFUYSUXPVWCDPUYSU
        XIOWAUEZNUXPVWCTUYSUXIMVWEAUYQYJUUOUUQUCFOUXIUURWDULUYSUYEUXJURNZUXJSYK
        ZWHZVUDURNZVUDSYKZWHZVWDVUFTAUYEUYQKWIUYSUXJMNZVWHAMMUXIUWLAVUMVUOVUPUU
        SUUTZVWLVWFVWGUXJYLUXJYMYNWDUYSVULVWKVUTVULVWIVWJVUDYLVUDYMYNWDUXJVUDDU
        VAYOYBZWQVUBUXRCSVUBDDUXORVUBDAUYPVUAADAUYEDMNZKDUVBWDZYPWIUVCVVMUVFYAU
        OUVDYQAUYQUXODYKZUYRAUYQVWQWHZWHZUXTUXNVWSUXQUXKUXSUXMVWSUXQVUFUXKSUHQU
        XKAUYQVWBVWQVWNWQVWSVUESUXKUHVWSVVAVUESTZVWSVVAWHZVWTDVUDYRUFZVPZVXAVXB
        DVVCYRUFZVXADUXOYKVXDVPVXAUXODAUYQVWQVVAUVEUVGVXAVXDDUXOVXAUYEVVAVVBYFN
        ZVXDDUXOTUKAUYEVWRVVAKYSZVWSVVAYJZVXAVVAVVQVXEVXGAVVQVWRVVAIYSVVPVXEEUX
        OUQEVVBYFVVIUVHVVJBVVBYFVVKYGUVIYHDUXOVVBUVJYOUVKUVLVXAVUDVVCDYRVWSVVAV
        UDVVDVVCVWSVUNVVFVVGUYQVUNAVWQVURXCZVVHVVLXRZVVAVVCOUVMYTUVNUVPVXAUYEVU
        LVWTVXCVRVXFVWSVULVVAVWSVUMVUNVULAVUMVWRVUQWIVXHVUSYIWIDVUDUVOYIUVQVWSV
        VAVPZWHZVUEUYFSVXKVUDODPVWSVXJVUDVVDOVXIVVAVVCOUVRYTULAUYFSTZVWRVXJAUYE
        VXLKUYMWDYSYBUVSULVWSUXKVWSUXKVWSDUXJAUYEVWRKWIAUYQVWLVWQVWMWQWRWTUVTYE
        VWSUXRUXLCSVWSDUXOVMUFZUXRVWQWHUXLUXRVWSDUXOVWSDAVWOVWRVWPWIZYPVWSUXOVX
        HYPUWAVWSVWOUYQUXLVXMVRVXNAUYQVWQUWBDUXIUWCYIVWSVWQUXRAUYQVWQXSUWDUWEUN
        UOUWFYQUWGUWHUWIUWJUWK $.

      pcmpt2.6 $e |- ( ph -> M e. ( ZZ>= ` N ) ) $.
      $( Dividing two prime count maps yields a number with all dividing primes
         confined to an interval.  (Contributed by Mario Carneiro,
         14-Mar-2014.) $)
      pcmpt2 $p |- ( ph -> ( P pCnt ( ( seq 1 ( x. , F ) ` M ) /
     ( seq 1 ( x. , F ) ` N ) ) ) = if ( ( P <_ M /\ -. P <_ N ) , B , 0 ) ) $=
        ( co cmin cc0 wcel cn wceq cmul c1 cseq cfv cdiv cpc cle wbr cif cprime
        wn wa cz wne wf pcmptcl simprd cuz eluznn syl2anc ffvelrnd nnne0d pcdiv
        nnzd syl121anc pcmpt oveq12d cn0 wral eleq1d rspcv nn0cnd subidd adantr
        cv cr prmnn syl nnred simpr eluzle letrd iftrued iftrue adantl iffalsed
        sylc nsyl3 3eqtr4d iffalse oveq2d cc 0cn ifcl sylancl subid1d sylan9eqr
        biantrud ifbid eqtrd pm2.61dan 3eqtrd ) ADGUAFUBUCZUDZHXCUDZUEOUFOZDXDU
        FOZDXEUFOZPOZDGUGUHZCQUIZDHUGUHZCQUIZPOZXJXLUKZULZCQUIZADUJRZXDUMRXDQUN
        XESRXFXITLAXDASSGXCASSFUOSSXCUOABEFIJUPUQZAHSRGHURUDRZGSRKNGHUSUTZVAZVD
        AXDYBVBASSHXCXSKVAXDXEDVCVEAXGXKXHXMPABCDEFGIJYALMVFABCDEFHIJKLMVFVGAXL
        XNXQTAXLULZCCPOZQXNXQAYDQTXLACACAXRBVHRZEUJVICVHRZLJYEYFEDUJEVODTBCVHMV
        JVKWGVLZVMVNYCXKCXMCPYCXJCQYCDHGADVPRXLADAXRDSRLDVQVRVSVNAHVPRXLAHKVSVN
        AGVPRXLAGYAVSVNAXLVTZAHGUGUHZXLAXTYINHGWAVRVNWBWCXLXMCTAXLCQWDWEVGYCXPC
        QXPXLYCXJXOVTYHWHWFWIAXOULZXNXKXQXOAXNXKQPOXKXOXMQXKPXLCQWJWKAXKACWLRQW
        LRXKWLRYGWMXJCQWLWNWOWPWQYJXJXPCQYJXOXJAXOVTWRWSWTXAXB $.
    $}

    $d p F $.  $d p ph $.  $d p A $.  $d p N $.
    pcmptdvds.3 $e |- ( ph -> M e. ( ZZ>= ` N ) ) $.
    $( The partial products of the prime power map form a divisibility chain.
       (Contributed by Mario Carneiro, 12-Mar-2014.) $)
    pcmptdvds $p |- ( ph -> ( seq 1 ( x. , F ) ` N ) ||
                            ( seq 1 ( x. , F ) ` M ) ) $=
      ( vp vm c1 wbr wcel cc0 cle cprime cn0 cn cmul cseq cfv cdvds cdiv co cpc
      cz cv wral wa wn csb cif nfv nfcsb1v nfel1 weq eleq1d cbvral sylib csbeq1
      csbeq1a rspcv mpan9 nn0ge0d 0le0 breq2 ifboth sylancl cexp cmpt nfcv nfov
      nfif eleq1 oveq12d ifbieq1d cbvmpt eqtri adantr simpr cuz pcmpt2 breqtrrd
      id ralrimiva cq wb wf pcmptcl simprd eluznn syl2anc ffvelrnd nnzd znq pcz
      syl mpbird wne nnne0d dvdsval2 syl3anc ) AFUADMUBZUCZEXEUCZUDNZXGXFUEUFZU
      HOZAXJPKUIZXIUGUFZQNZKRUJZAXMKRAXKROZUKZPXKEQNXKFQNULUKZCXKBUMZPUNZXLQXPP
      XRQNZPPQNZPXSQNZXPXRACLUIZBUMZSOZLRUJZXOXRSOZABSOZCRUJYFHYHYECLRYHLUOCYDS
      CYCBUPZUQCLURZBYDSCYCBVCZUSUTVAZYEYGLXKRLKURYDXRSCYCXKBVBZUSVDVEVFVGXQXTY
      AYBXRPXRXSPQVHPXSPQVHVIVJXPYDXRXKLDEFDCTCUIZROZYNBVKUFZMUNZVLLTYCROZYCYDV
      KUFZMUNZVLGCLTYQYTLYQVMYRCYSMYRCUOCYCYDVKCYCVMCVKVMYIVNCMVMVOYJYOYRYPYSMY
      NYCRVPYJYNYCBYDVKYJWFYKVQVRVSVTAYFXOYLWAAFTOZXOIWAAXOWBYMAEFWCUCOZXOJWAWD
      WEWGAXIWHOZXJXNWIAXGUHOZXFTOUUCAXGATTEXEATTDWJTTXEWJABCDGHWKWLZAUUAUUBETO
      IJEFWMWNWOWPZATTFXEUUEIWOZXGXFWQWNXIKWRWSWTAXFUHOXFPXAUUDXHXJWIAXFUUGWPAX
      FUUGXBUUFXFXGXCXDWT $.
  $}

  ${
    $d p F $.  $d n p N $.
    pcprod.1 $e |- F = ( n e. NN |->
                         if ( n e. Prime , ( n ^ ( n pCnt N ) ) , 1 ) ) $.
    $( The product of the primes taken to their respective powers reconstructs
       the original number.  (Contributed by Mario Carneiro, 12-Mar-2014.) $)
    pcprod $p |- ( N e. NN -> ( seq 1 ( x. , F ) ` N ) = N ) $=
      ( vp cn wcel wceq cv cpc co cprime wa wbr cc0 cn0 ancoms ralrimiva adantl
      wral cmul c1 cseq cfv cle cif pccl simpr simpl oveq1 pcmpt iftrue iffalse
      wn cdvds cz wi dvdsle sylan con3dimp pceq0 adantr mpbird eqtr4d pm2.61dan
      prmz wb eqtrd wf pcmptcl simprd ffvelrn mpancom nnnn0d nnnn0 pc11 syl2anc
      ) CFGZCUABUBUCZUDZCHZEIZVTJKZWBCJKZHZELTZVRWEELWBLGZVRWEWGVRMZWCWBCUENZWD
      OUFZWDWHAIZCJKZWDWBABCDVRWLPGZALTWGVRWMALWKLGVRWMWKCUGQRZSWGVRUHWGVRUIWKW
      BCJUJUKWHWIWJWDHZWIWOWHWIWDOULSWHWIUNZMZWJOWDWPWJOHWHWIWDOUMSWQWDOHZWBCUO
      NZUNZWHWSWIWGWBUPGVRWSWIUQWBVFWBCURUSUTWHWRWTVGWPWBCVAVBVCVDVEVHQRVRVTPGC
      PGWAWFVGVRVTFFVSVIZVRVTFGVRFFBVIXAVRWLABDWNVJVKFFCVSVLVMVNCVOVTCEVPVQVC
      $.
  $}

  ${
    $d k A $.  $d k B $.
    $( The sum of 1 over a set is the size of the set.  (Contributed by Mario
       Carneiro, 8-Mar-2014.)  (Revised by Mario Carneiro, 20-May-2014.) $)
    sumhash $p |- ( ( B e. Fin /\ A C_ B ) ->
                   sum_ k e. B if ( k e. A , 1 , 0 ) = ( # ` A ) ) $=
      ( cC cfn wcel wss wa c1 csu chash cfv cmul co cv cc0 cif cc wceq ax-1cn
      ssfi fsumconst sylancl wral cuz wo simpr rgenw simpl olcd sumss2 syl21anc
      a1i cn0 hashcl syl nn0cnd mulid1d 3eqtr3d ) BEFZABGZHZAICJZAKLZIMNZBCOAFI
      PQCJZVDVBAEFZIRFZVCVESBAUAZTAICUBUCVBVAVHCAUDZBDUELGZUTUFVCVFSUTVAUGVJVBV
      HCATUHUMVBUTVKUTVAUIUJABICDUKULVBVDVBVDVBVGVDUNFVIAUOUPUQURUS $.
  $}

  $( The difference between the floors of adjacent fractions is either 1 or 0.
     (Contributed by Mario Carneiro, 8-Mar-2014.) $)
  fldivp1 $p |- ( ( M e. ZZ /\ N e. NN ) ->
                  ( ( |_ ` ( ( M + 1 ) / N ) ) - ( |_ ` ( M / N ) ) ) =
                    if ( N || ( M + 1 ) , 1 , 0 ) ) $=
    ( cz wcel wa c1 caddc co wbr cdiv cfl cfv cmin cc0 wceq wb adantl adantr cr
    clt cn cdvds cif wne nnz nnne0 peano2z dvdsval2 syl3anc biimpa flid syl cle
    nnm1nn0 nn0red nn0ge0d nnre nngt0 syl22anc ad2antlr cmul ltm1d nncn mulid1d
    divge0 breqtrrd 1re ltdivmul syl112anc mpbird nndivre mpancom flbi2 syl2anc
    a1i mpbir2and eqtr4d cc zcn ax-1cn ppncand oveq1d zcnd subcl sylancl eqtr3d
    divdird dividd oveq2d eqtrd fveq2d zre sylan 1z fladdz 3eqtrrd flcld iftrue
    subaddd wn cmo cn0 zmodcl resubcl wo elnn0 sylib ord dvdsval3 syl2anr con1d
    sylibrd imp jca syl21anc crp nnrp modlt syl2an lttrd sylancom modval mulcld
    id sub32d pncan divsubdird divcan3d recnd mpbid subeq0ad iffalse pm2.61dan
    ) ACDZBUADZEZBAFGHZUBIZYQBJHZKLZABJHZKLZMHZYRFNUCZOYPYREZUUCFUUDUUEUUCFOZUU
    BFGHZYTOZUUEYTYSBFMHZBJHZGHZKLZUUAFGHZKLZUUGUUEYTYSUULUUEYSCDZYTYSOYPYRUUOY
    PBCDZBNUDZYQCDZYRUUOPYOUUPYNBUEQYOUUQYNBUFQZYNUURYOAUGZRZBYQUHUIUJZYSUKULUU
    EUULYSOZNUUJUMIZUUJFTIZYOUVDYNYRYOUUISDZNUUIUMIBSDZNBTIZUVDYOUUIBUNZUOZYOUU
    IUVIUPBUQZBURZUUIBVEUSUTYOUVEYNYRYOUVEUUIBFVAHZTIZYOUUIBUVMTYOBUVKVBYOBBVCZ
    VDVFYOUVFFSDZUVGUVHUVEUVNPUVJUVPYOVGVOUVKUVLUUIFBVHVIVJUTUUEUUOUUJSDZUVCUVD
    UVEEPUVBYOUVQYNYRUVFYOUVQUVJUUIBVKVLUTUUJYSVMVNVPVQYPUULUUNOYRYPUUKUUMKYPUU
    KUUABBJHZGHZUUMYPABGHZBJHZUUKUVSYPYQUUIGHZBJHUWAUUKYPUWBUVTBJYPAFBYNAVRDZYO
    AVSRZFVRDZYPVTVOZYOBVRDZYNUVOQZWAWBYPYQUUIBYPYQUVAWCZYOUUIVRDZYNYOUWGUWEUWJ
    UVOVTBFWDWEQUWHUUSWGWFYPABBUWDUWHUWHUUSWGWFYPUVRFUUAGYPBUWHUUSWHWIWJWKRYPUU
    NUUGOZYRYPUUASDZFCDUWKYNASDYOUWLAWLABVKWMZWNUUAFWOWERWPYPUUFUUHPYRYPYTUUBFY
    PYTYPYSYNYQSDZYOYSSDYNUURUWNUUTYQWLULZYQBVKWMWQZWCZYPUUBYPUUAUWMWQWCZUWFWSR
    VJYRUUDFOYPYRFNWRQVQYPYRWTZEZUUCNUUDUWTUUCNOZYTUUBOZUWTYTYQBXAHZFMHZBJHZGHZ
    KLZYTUUBUWTUXGYTOZNUXEUMIZUXEFTIZUWTUXDSDZNUXDUMIUVGUVHEZUXIYPUXKUWSYPUXCSD
    UVPUXKYPUXCYNUURYOUXCXBDZUUTYQBXCWMZUOZVGUXCFXDWEZRUWTUXDUWTUXCUADZUXDXBDYP
    UWSUXQYPUXQYRYPUXQWTUXCNOZYRYPUXQUXRYPUXMUXQUXRXEUXNUXCXFXGXHYOYOUURYRUXRPY
    NYOYDUUTBYQXIXJXLXKXMUXCUNULUPYOUXLYNUWSYOUVGUVHUVKUVLXNUTUXDBVEXOYPUXJUWSY
    PUXJUXDUVMTIZYPUXDBUVMTYPUXDUXCBUXPUXOYOUVGYNUVKQZYPUXCUXOVBYNUWNBXPDZUXCBT
    IYOUWOBXQZYQBXRXSXTYPBUWHVDVFYPUXKUVPUVGUVHUXJUXSPUXPUVPYPVGVOUXTYOUVHYNUVL
    QUXDFBVHVIVJRYPUXHUXIUXJEPZUWSYPYTCDUXESDZUYCUWPYNYOUXKUYDUXPUXDBVKYAZUXEYT
    VMVNRVPUWTUXFUUAKYPUXFUUAOZUWSYPUUAYTMHZUXEOUYFYPUXEABYTVAHZMHZBJHUUAUYHBJH
    ZMHUYGYPUXDUYIBJYPUXDYQFMHZUYHMHZUYIYPUXDYQUYHMHZFMHUYLYPUXCUYMFMYNUWNUYAUX
    CUYMOYOUWOUYBYQBYBXSWBYPYQFUYHUWIUWFYPBYTUWHUWQYCZYEVQYPUYKAUYHMYPUWCUWEUYK
    AOUWDVTAFYFWEWBWJWBYPAUYHBUWDUYNUWHUUSYGYPUYJYTUUAMYPYTBUWQUWHUUSYHWIWPYPUU
    AYTUXEYPUUAUWMYIUWQYPUXEUYEYIWSYJRWKWFYPUXAUXBPUWSYPYTUUBUWQUWRYKRVJUWSUUDN
    OYPYRFNYLQVQYM $.

  $( Lemma for ~ pcfac .  (Contributed by Mario Carneiro, 20-May-2014.) $)
  pcfaclem $p |- ( ( N e. NN0 /\ M e. ( ZZ>= ` N ) /\ P e. Prime ) ->
                   ( |_ ` ( N / ( P ^ M ) ) ) = 0 ) $=
    ( cn0 wcel cuz cfv cprime w3a co cc0 cle wbr c1 clt 3ad2ant1 cr wb 3ad2ant3
    cexp cdiv cfl wceq caddc nn0ge0 nn0re prmnn eluznn0 3adant3 nnexpcld nngt0d
    cn nnred ge0div syl3anc mpbid cmul nn0red eluzle 3ad2ant2 c2 prmuz2 syl2anc
    bernneq3 lelttrd nncnd mulid1d breqtrrd ltdivmul syl112anc mpbird syl6breqr
    1red 0p1e1 cz wa nndivred 0z flbi sylancl mpbir2and ) CDEZBCFGEZAHEZIZCABTJ
    ZUAJZUBGKUCZKWGLMZWGKNUDJZOMZWEKCLMZWIWBWCWLWDCUEPWECQEZWFQEZKWFOMZWLWIRWBW
    CWMWDCUFPZWEWFWEABWDWBAULEWCAUGSWBWCBDEZWDBCUHUIZUJZUMZWEWFWSUKZCWFUNUOUPWE
    WGNWJOWEWGNOMZCWFNUQJZOMZWECWFXCOWECBWFWPWEBWRURWTWCWBCBLMWDCBUSUTWEAVAFGEZ
    WQBWFOMWDWBXEWCAVBSWRABVDVCVEWEWFWEWFWSVFVGVHWEWMNQEWNWOXBXDRWPWEVMWTXACNWF
    VIVJVKVNVLWEWGQEKVOEWHWIWKVPRWECWFWPWSVQVRWGKVSVTWA $.

  ${
    $d k m n x P $.  $d k m x N $.  $d k m M $.  $d k K $.
    $( Calculate the prime count of a factorial.  (Contributed by Mario
       Carneiro, 11-Mar-2014.)  (Revised by Mario Carneiro, 21-May-2014.) $)
    pcfac $p |- ( ( N e. NN0 /\ M e. ( ZZ>= ` N ) /\ P e. Prime ) ->
   ( P pCnt ( ! ` N ) ) = sum_ k e. ( 1 ... M ) ( |_ ` ( N / ( P ^ k ) ) ) ) $=
      ( vm cuz cfv wcel cfa cpc co c1 cdiv cfl csu wceq wa wi cc0 wbr vx vn cn0
      cprime cfz cv cexp wral caddc fveq2 oveq2d oveq1 fveq2d sumeq2sdv eqeq12d
      raleqbidv imbi2d cfn fzfid wss sumz olcs syl 0nn0 a1i elfznn nnnn0d nn0uz
      syl6eleq adantl simpll pcfaclem syl3anc sumeq2dv oveq2i pc1 syl5eq adantr
      fac0 3eqtr4rd ralrimiva cz nn0z uzid peano2uz 3syl uzss ssralv cmul facp1
      wne simplr cn faccl nnz nnne0 nn0p1nn pcmul eqtr2d cmin cdvds nn0zd prmnn
      jca cif ad2antlr nnexpcl syl2an fldivp1 syl2anc cle wb elfzuz pccld elfz5
      syl2anr simpllr pcdvdsb bitr2d ifbid eqtrd nn0red peano2re nndivred flcld
      nnzd cr zcnd fsumsub chash fzfi eluzelz zred c2 prmuz2 bernneq3 wn fsumcl
      clt syld letrid ord nnexpcld dvdsle nnred lenltd sylibd sylbid mt4d letrd
      eluzle eluz mpbird fzss2 sumhash sylancr hashfz1 3eqtr3d subaddd ralimdva
      recnd mpbid syl5ib ex a2d nn0ind oveq2 sumeq1d eqeq2d rspcv 3impib 3com12
      imp syl5 ) CDFGZHZDUCHZAUDHZADIGZJKZLCUEKZDABUFZUGKZMKZNGZBOZPZUVPUVQUVRU
      WGUVQUVRQUVTLEUFZUEKZUWEBOZPZEUVOUHZUVPUWGUVQUVRUWLUVRAUAUFZIGZJKZUWIUWMU
      WCMKZNGZBOZPZEUWMFGZUHZRUVRASIGZJKZUWISUWCMKZNGZBOZPZESFGZUHZRUVRAUBUFZIG
      ZJKZUWIUXJUWCMKZNGZBOZPZEUXJFGZUHZRUVRAUXJLUIKZIGZJKZUWIUXSUWCMKZNGZBOZPZ
      EUXSFGZUHZRUVRUWLRUAUBDUWMSPZUXAUXIUVRUYHUWSUXGEUWTUXHUWMSFUJUYHUWOUXCUWR
      UXFUYHUWNUXBAJUWMSIUJUKUYHUWIUWQUXEBUYHUWPUXDNUWMSUWCMULUMUNUOUPUQUWMUXJP
      ZUXAUXRUVRUYIUWSUXPEUWTUXQUWMUXJFUJUYIUWOUXLUWRUXOUYIUWNUXKAJUWMUXJIUJUKU
      YIUWIUWQUXNBUYIUWPUXMNUWMUXJUWCMULUMUNUOUPUQUWMUXSPZUXAUYGUVRUYJUWSUYEEUW
      TUYFUWMUXSFUJUYJUWOUYAUWRUYDUYJUWNUXTAJUWMUXSIUJUKUYJUWIUWQUYCBUYJUWPUYBN
      UWMUXSUWCMULUMUNUOUPUQUWMDPZUXAUWLUVRUYKUWSUWKEUWTUVOUWMDFUJUYKUWOUVTUWRU
      WJUYKUWNUVSAJUWMDIUJUKUYKUWIUWQUWEBUYKUWPUWDNUWMDUWCMULUMUNUOUPUQUVRUXGEU
      XHUVRUWHUXHHZQZUWISBOZSUXFUXCUYMUWIURHZUYNSPZUYMLUWHUSUWILFGZUTUYOUYPUWIB
      LVAVBVCUYMUWIUXESBUYMUWBUWIHZQZSUCHZUWBUXHHZUVRUXESPUYTUYSVDVEUYRVUAUYMUY
      RUWBUCUXHUYRUWBUWBUWHVFVGZVHVIVJUVRUYLUYRVKAUWBSVLVMVNUVRUXCSPUYLUVRUXCAL
      JKSUXBLAJVSVOAVPVQVRVTWAUXJUCHZUVRUXRUYGVUCUVRUXRUYGRVUCUVRQZUXRUXPEUYFUH
      ZUYGVUDUXSUXQHZUYFUXQUTUXRVUERVUDUXJWBHZUXJUXQHVUFVUCVUGUVRUXJWCVRUXJWDUX
      JUXJWEWFUXJUXSWGUXPEUYFUXQWHWFVUDUXPUYEEUYFUXPUXLAUXSJKZUIKZUXOVUHUIKZPVU
      DUWHUYFHZQZUYEUXLUXOVUHUIULVULVUIUYAVUJUYDVULUYAAUXKUXSWIKZJKZVUIVULUXTVU
      MAJVULVUCUXTVUMPVUCUVRVUKVKZUXJWJVCUKVULUVRUXKWBHZUXKSWKZQZUXSWBHZUXSSWKZ
      QZVUNVUIPVUCUVRVUKWLZVULVUCUXKWMHZVURVUOUXJWNVVCVUPVUQUXKWOUXKWPXDWFVULVU
      CUXSWMHZVVAVUOUXJWQZVVDVUSVUTUXSWOUXSWPXDWFUXKUXSAWRVMWSVULUYDUXOWTKZVUHP
      VUJUYDPVULUWIUYCUXNWTKZBOUWIUWBLVUHUEKZHZLSXEZBOZVVFVUHVULUWIVVGVVJBVULUY
      RQZVVGUWCUXSXATZLSXEZVVJVVLVUGUWCWMHZVVGVVNPVVLUXJVULVUCUYRVUOVRZXBVULAWM
      HZUWBUCHZVVOUYRUVRVVQVUCVUKAXCXFZVUBAUWBXGXHZUXJUWCXIXJVVLVVMVVILSVVLVVIU
      WBVUHXKTZVVMUYRUWBUYQHVUHWBHZVVIVWAXLVULUWBLUWHXMVULVUHVULAUXSVVBVULVUCVV
      DVUOVVEVCZXNZXBZUWBLVUHXOXPVVLUVRVUSVVRVWAVVMXLVUCUVRVUKUYRXQVVLUXSVVLVUC
      VVDVVPVVEVCYFUYRVVRVULVUBVJUWBAUXSXRVMXSXTYAVNVULUWIUYCUXNBVULLUWHUSZVVLU
      YCVVLUYBVVLUXSUWCVULUXSYGHZUYRVULUXJYGHZVWGVULUXJVUOYBZUXJYCVCZVRVVTYDYEY
      HZVVLUXNVVLUXMVVLUXJUWCVULVWHUYRVWIVRVVTYDYEYHZYIVULVVKVVHYJGZVUHVULUYOVV
      HUWIUTZVVKVWMPLUWHYKVULUWHVUHFGHZVWNVULVWOVUHUWHXKTZVULVUHUXSUWHVULVUHVWD
      YBZVWJVULUWHVUKUWHWBHZVUDUXSUWHYLVJZYMVULUXSAUXSUGKZYSTZVUHUXSXKTZVULAYNF
      GHZUXSUCHZVXAUVRVXCVUCVUKAYOXFVULUXSVWCVGZAUXSYPXJVULVXBYQUXSVUHXKTZVXAYQ
      ZVULVXBVXFVULVUHUXSVWQVWJUUAUUBVULVXFVWTUXSXATZVXGVULUVRVUSVXDVXFVXHXLVVB
      VULUXSVWCYFVXEUXSAUXSXRVMVULVXHVWTUXSXKTZVXGVULVWTWBHVVDVXHVXIRVULVWTVULA
      UXSVVSVXEUUCZYFVWCVWTUXSUUDXJVULVWTUXSVULVWTVXJUUEVWJUUFUUGUUHYTUUIVUKUXS
      UWHXKTVUDUXSUWHUUKVJUUJVULVWBVWRVWOVWPXLVWEVWSVUHUWHUULXJUUMVUHLUWHUUNVCV
      VHUWIBUUOUUPVULVUHUCHVWMVUHPVWDVUHUUQVCYAUURVULUYDUXOVUHVULUWIUYCBVWFVWKY
      RVULUWIUXNBVWFVWLYRVULVUHVWQUVAUUSUVBUOUVCUUTYTUVDUVEUVFUVMUWKUWGECUVOUWH
      CPZUWJUWFUVTVXKUWIUWAUWEBUWHCLUEUVGUVHUVIUVJUVNUVKUVL $.

    $( Calculate the prime count of a binomial coefficient.  (Contributed by
       Mario Carneiro, 11-Mar-2014.)  (Revised by Mario Carneiro,
       21-May-2014.) $)
    pcbc $p |- ( ( N e. NN /\ K e. ( 0 ... N ) /\ P e. Prime ) ->
   ( P pCnt ( N _C K ) ) = sum_ k e. ( 1 ... N ) ( ( |_ ` ( N / ( P ^ k ) ) ) -
     ( ( |_ ` ( ( N - K ) / ( P ^ k ) ) ) + ( |_ ` ( K / ( P ^ k ) ) ) ) ) ) $=
      ( cn wcel cc0 co cfa cfv cmin cdiv cpc caddc csu cz wceq cn0 syl 3ad2ant2
      cfz cprime w3a cmul cbc c1 cexp cfl wne simp3 nnnn0 3ad2ant1 faccl nnne0d
      cv nnzd fznn0sub elfznn0 nnmulcld pcdiv syl121anc bcval2 fzfid wa cr nnre
      oveq2d adantr simpl3 prmnn elfznn nnnn0d nnexpcld nndivred flcld resubcld
      adantl zcnd nn0red addcld fsumsub cuz nn0zd pcfac syl3anc cle wbr nn0ge0d
      uzid subge02d mpbid zsubcld eluz syl2anc mpbird elfzuz3 oveq12d syl122anc
      wb pcmul fsumadd 3eqtr4d eqtr4d ) DEFZCGDUAHFZAUBFZUCZADIJZDCKHZIJZCIJZUD
      HZLHZMHZAXHMHZAXLMHZKHZADCUEHZMHUFDUAHZDABUOZUGHZLHZUHJZXIYALHZUHJZCYALHZ
      UHJZNHZKHBOZXGXFXHPFXHGUIXLEFXNXQQXDXEXFUJZXGXHXGDRFZXHEFXDXEYKXFDUKULZDU
      MSZUPXGXHYMUNXGXJXKXGXIRFZXJEFXEXDYNXFCGDUQTZXIUMSZXGCRFZXKEFXEXDYQXFCDUR
      TZCUMSZUSXHXLAUTVAXGXRXMAMXEXDXRXMQXFCDVBTVGXGYIXSYCBOZXSYHBOZKHXQXGXSYCY
      HBXGUFDVCZXGXTXSFZVDZYCUUDYBUUDDYAXGDVEFZUUCXDXEUUEXFDVFULZVHUUDAXTUUDXFA
      EFXDXEXFUUCVIAVJSUUCXTRFXGUUCXTXTDVKVLVQVMZVNVOVRUUDYEYGUUDYEUUDYDUUDXIYA
      XGXIVEFUUCXGDCUUFXGCYRVSZVPVHUUGVNVOVRZUUDYGUUDYFUUDCYAXGCVEFUUCUUHVHUUGV
      NVOVRZVTWAXGXOYTXPUUAKXGYKDDWBJFZXFXOYTQYLXGDPFZUUKXGDYLWCZDWISYJABDDWDWE
      XGAXJMHZAXKMHZNHZXSYEBOZXSYGBOZNHXPUUAXGUUNUUQUUOUURNXGYNDXIWBJFZXFUUNUUQ
      QYOXGUUSXIDWFWGZXGGCWFWGUUTXGCYRWHXGDCUUFUUHWJWKXGXIPFUULUUSUUTWSXGDCUUMX
      GCYRWCWLUUMXIDWMWNWOYJABDXIWDWEXGYQDCWBJFZXFUUOUURQYRXEXDUVAXFCGDWPTYJABD
      CWDWEWQXGXFXJPFXJGUIXKPFXKGUIXPUUPQYJXGXJYPUPXGXJYPUNXGXKYSUPXGXKYSUNXJXK
      AWTWRXGXSYEYGBUUBUUIUUJXAXBWQXCXB $.
  $}

  ${
    $d p A $.  $d p N $.
    $( If a power of a rational number is an integer, then the number is an
       integer.  In other words, all n-th roots are irrational unless they are
       integers (so that the original number is an n-th power).  (Contributed
       by Mario Carneiro, 10-Aug-2015.) $)
    qexpz $p |- ( ( A e. QQ /\ N e. NN /\ ( A ^ N ) e. ZZ ) ->
        A e. ZZ ) $=
      ( vp cq wcel co cz cc0 wne wa cpc cle wbr cprime cmul syl syl12anc mpbird
      cr wb cn cexp w3a eleq1 cv wral simpll2 nncnd mul01d cn0 simpr simpll3 cc
      simpll1 simplr nnzd expne0d pczcl nn0ge0d pcexp syl121anc breqtrd eqbrtrd
      qcn wceq clt 0red pcqcl zred nngt0d lemul2 syl112anc ralrimiva simpl1 pcz
      nnred 0zd pm2.61ne ) ADEZBUAEZABUBFZGEZUCZAGEZHGEAHAHGUDWCAHIZJZWDHCUEZAK
      FZLMZCNUFZWFWICNWFWGNEZJZWIBHOFZBWHOFZLMZWLWMHWNLWLBWLBVSVTWBWEWKUGZUHUIW
      LHWGWAKFZWNLWLWQWLWKWBWAHIWQUJEWFWKUKZVSVTWBWEWKULWLABWLVSAUMEVSVTWBWEWKU
      NZAVDPWCWEWKUOZWLBWPUPZUQWGWAURQUSWLWKVSWEBGEWQWNVEWRWSWTXAAWGBUTVAVBVCWL
      HSEWHSEBSEHBVFMWIWOTWLVGWLWHWLWKVSWEWHGEWRWSWTWGAVHQVIWLBWPVPWLBWPVJHWHBV
      KVLRVMWFVSWDWJTVSVTWBWEVNACVOPRWCVQVR $.

    $( A second or higher power of a rational number is not a prime number.  Or
       by contraposition, the n-th root of a prime number is irrational.
       Suggested by Norm Megill.  (Contributed by Mario Carneiro,
       10-Aug-2015.) $)
    expnprm $p |- ( ( A e. QQ /\ N e. ( ZZ>= ` 2 ) ) ->
        -. ( A ^ N ) e. Prime ) $=
      ( cq wcel c2 wa c1 wne cexp co adantl cdvds wbr wceq cpc ad2antlr cc0 syl
      cn cz cuz cfv cprime wn eluz2b3 simprbi eluzelz simpr simpll prmnn nnne0d
      cmul eluz2nn 0expd neeqtrrd oveq1 necon3i pcqcl syl12anc dvdsmul1 syl2anc
      nncnd exp1d oveq2d 1z pcid sylancl pcexp syl121anc 3eqtr3rd breqtrd ex wb
      cn0 nnnn0d dvds1 sylibd necon3ad mpd ) ACDZBEUAUBDZFZBGHZABIJZUCDZUDWAWCV
      TWABSDZWCBUEUFKWBWEBGWBWEBGLMZBGNZWBWEWGWBWEFZBBWDAOJZULJZGLWIBTDZWJTDZBW
      KLMWAWLVTWEEBUGPZWIWEVTAQHZWMWBWEUHZVTWAWEUIZWIWDQBIJZHWOWIWDQWRWIWDWEWDS
      DWBWDUJKZUKWIBWAWFVTWEBUMZPUNUOAQWDWRAQBIUPUQRZWDAURUSBWJUTVAWIWDWDGIJZOJ
      ZWDWDOJZGWKWIXBWDWDOWIWDWIWDWSVBVCVDWIWEGTDXCGNWPVEGWDVFVGWIWEVTWOWLXDWKN
      WPWQXAWNAWDBVHVIVJVKVLWBBVNDWGWHVMWBBWAWFVTWTKVOBVPRVQVRVS $.
  $}

  ${
    $d K m n p q $.
    $( Every positive integer which is not a power of two is divisible by an
       odd prime number.  (Contributed by AV, 6-Aug-2021.) $)
    oddprmdvds $p |- ( ( K e. NN /\ -. E. n e. NN0 K = ( 2 ^ n ) )
                       -> E. p e. ( Prime \ { 2 } ) p || K ) $=
      ( vq cn wcel c2 co wceq cn0 cdvds wbr cprime wi wa wb syl adantr adantl
      cc vm cv cexp wrex wn csn cdif cpc cdiv 2prm pcndvds2 mpan pcdvds 2nn a1i
      id pccld nnexpcld jca nndivdvds c1 cuz cfv wo elnn1uz2 cc0 wne nncn nnne0
      w3a 3anass sylanbrc diveq1 oveq2 eqeq2d simpr rspcedvd pm2.24 syl6 sylbid
      ex com12 exprmfct breq1 biimpcd necon3bd cmul prmnn mpbid nndivides eqcom
      syl2anr nnmulcld nncnd 3jca divmul syl5bb anim1i eldifsn cz nnzd dvdsmul2
      sylibr 2nn0 nn0expcld nn0cnd mulass breq2 a1d exp31 com23 rexlimdva syldd
      breqtrd impd jaoi sylbi mp2d imp ) BEFZBGAUBZUCHZIZAJUDZUEZCUBZBKLZCMGUFU
      GZUDZXTGBGGBUHHZUCHZUIHZKLZUEZYKBKLZYEYINZGMFZXTYNUJGBUKULYQXTYOUJGBUMULZ
      XTYNYOYPNXTYNOZYOYLEFZYPXTYOYTPZYNXTXTYKEFZOUUAXTXTUUBXTUPZXTGYJGEFXTUNUO
      XTGBYQXTUJUOUUCUQZURZUSBYKUTQZRYTYSYPYTYLVAIZYLGVBVCFZVDYSYPNZYLVEUUGUUIU
      UHYSUUGYPYSUUGBYKIZYPYSBTFZYKTFZYKVFVGZVJZUUGUUJPXTUUNYNXTUUKUULUUMOZUUNB
      VHZXTUUBUUOUUEUUBUULUUMYKVHYKVIUSZQUUKUULUUMVKVLRBYKVMQXTUUJYPNYNXTUUJYDY
      PXTUUJYDXTUUJOZYCUUJAYJJXTYJJFUUJUUDRYAYJIZYCUUJPUURUUSYBYKBYAYJGUCVNVOSX
      TUUJVPVQWAYDYIVRVSRVTWBUUHDUBZYLKLZDMUDZUUIYLDWCUVBXTYNYPXTUVBYNYPNZXTUVA
      UVCDMXTUUTMFZOZUVAYNUUTGVGZYPUVEUVAYNUVFNUVEUVAOYMUUTGUVAUUTGIZYMNUVEUVGU
      VAYMUUTGYLKWDWESWFWAUVEUVAUAUBZUUTWGHZYLIZUAEUDZUVFYPNZUVDUUTEFZYTUVAUVKP
      XTUUTWHZXTYOYTYRUUFWIUAUUTYLWJWLUVEUVJUVLUAEUVEUVHEFZOZUVJYKUVIWGHZBIZUVL
      UVJYLUVIIZUVPUVRUVIYLWKUVPUUKUVITFZUUOVJUVSUVRPUVPUUKUVTUUOUVEUUKUVOXTUUK
      UVDUUPRRUVPUVIUVPUVHUUTUVEUVOVPZUVEUVMUVOUVDUVMXTUVNSRWMWNUVPUUBUUOUVEUUB
      UVOXTUUBUVDUUERRZUUQQWOBUVIYKWPQWQUVPUVFUVRYPUVPUVFUVRYPUVPUVFOZUVROZYIYE
      UWDYGUUTBKLZCUUTYHUWCUUTYHFZUVRUWCUVDUVFOUWFUVPUVDUVFUVEUVDUVOXTUVDVPRWRU
      UTMGWSXCRYFUUTIYGUWEPUWDYFUUTBKWDSUWDUUTUVQKLZUWEUWCUWGUVRUWCUUTYKUVHWGHZ
      UUTWGHZUVQKUWCUWHWTFZUUTWTFZOZUUTUWIKLUVPUWLUVFUVPUWJUWKUVPUWHUVPYKUVHUWB
      UWAWMXAUVEUWKUVOUVDUWKXTUVDUUTUVNXASRUSRUWHUUTXBQUWCUULUVHTFZUUTTFZVJZUWI
      UVQIUVPUWOUVFUVPUULUWMUWNUVPYKUVEYKJFZUVOXTUWPUVDXTGYJGJFXTXDUOUUDXERRXFU
      VOUWMUVEUVHVHSUVEUWNUVOUVDUWNXTUVDUUTUVNWNSRWORYKUVHUUTXGQXNRUVRUWGUWEPUW
      CUVQBUUTKXHSWIVQXIXJXKVTXLVTXMXLWBXOQXPXQWBVTWAXRXS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Pocklington's theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d k n x D $.  $d k K $.  $d k x N $.  $d k n x P $.
    $( A relation involving divisibility by a prime power.  (Contributed by
       Mario Carneiro, 2-Mar-2014.) $)
    prmpwdvds $p |- ( ( ( K e. ZZ /\ D e. ZZ ) /\ ( P e. Prime /\ N e. NN ) /\
         ( D || ( K x. ( P ^ N ) ) /\ -. D || ( K x. ( P ^ ( N - 1 ) ) ) ) ) ->
                   ( P ^ N ) || D ) $=
      ( vk cz wcel wa cexp co cmul cdvds wbr c1 wn wi wceq oveq2d breq2d notbid
      vx vn cprime cn cmin wral simpll caddc oveq2 oveq1 anbi12d breq1d imbi12d
      cv ralbidv imbi2d weq breq1 breq2 cgcd simplrl coprm syl2anc zcn ad2antll
      wb prmz ad2antrl zcnd mulcomd simpl gcdcom eqeq1d simprr coprmdvds sylbid
      cc syl3anc expdimp con1d expimpd ex vtoclga impl exp1d ad2antlr cc0 1m1e0
      oveq2i exp0d syl5eq adantl mulid1d eqtrd 3imtr4d ralrimiva imbi1d cbvralv
      zmulcld rspcv syl wrex nnnn0 ad2antrr zexpcl simplr divides adantll prmnn
      cn0 nncnd expp1d nnexpcld mulassd eqtr4d nnne0d dvdsmulcr syl112anc bitrd
      wne nnzd an32s syl5ibcom rexlimdva adantlr a2d nnm1nn0 expm1t nncn ax-1cn
      com23 pncan sylancl anbi2d syld anassrs ralrimdva syl5bi expl nnind com12
      impr sylc 3impia ) CFGZAFGZHZBUCGZDUDGZHZACBDIJZKJZLMZACBDNUEJZIJZKJZLMZO
[encoded data, 4160 characters]
      UOKUJSTUKWQWTUUCUUD $.
  $}

  ${
    pockthg.1 $e |- ( ph -> A e. NN ) $.
    pockthg.2 $e |- ( ph -> B e. NN ) $.
    pockthg.3 $e |- ( ph -> B < A ) $.
    pockthg.4 $e |- ( ph -> N = ( ( A x. B ) + 1 ) ) $.
    ${
      pockthlem.5 $e |- ( ph -> P e. Prime ) $.
      pockthlem.6 $e |- ( ph -> P || N ) $.
      pockthlem.7 $e |- ( ph -> Q e. Prime ) $.
      pockthlem.8 $e |- ( ph -> ( Q pCnt A ) e. NN ) $.
      pockthlem.9 $e |- ( ph -> C e. ZZ ) $.
      pockthlem.10 $e |- ( ph -> ( ( C ^ ( N - 1 ) ) mod N ) = 1 ) $.
      pockthlem.11 $e |- ( ph ->
                          ( ( ( C ^ ( ( N - 1 ) / Q ) ) - 1 ) gcd N ) = 1 ) $.
      $( Lemma for ~ pockthg .  (Contributed by Mario Carneiro, 2-Mar-2014.) $)
      pockthlem $p |- ( ph -> ( Q pCnt A ) <_ ( Q pCnt ( P - 1 ) ) ) $=
        ( c1 wcel cpc co cmin cle wbr cexp cdvds codz cdiv cz cprime cn cmul wn
        pcdvds syl2anc nnzd dvdsmul1 caddc oveq1d cc wceq nnmulcld nncnd ax-1cn
        cfv pncan sylancl eqtrd breqtrrd wa wi prmnn syl nnnn0d nnexpcld cuz 1z
        nnuz syl6eleq eluzp1p1 eqeltrd eluzp1m1 sylancr syl6eleqr dvdstr mp2and
        syl3anc cc0 wne nnne0d dvdsval2 mpbid cgcd gcddvds simpld simprd gcdcld
        wb nn0zd c2 df-2 fveq2i eluz2b2 sylib simpr necon3ai dvdslegcd syl31anc
        clt cmo cn0 zexpcl modgcd gcdcom 3eqtr3d rpexp breqtrd gcdn0cl syl21anc
        gcd1 nnle1eq1 odzcl cr nnred 1mod eqtr4d 1zzd moddvds peano2zm divcan1d
        odzdvds nprmdvds1 iddvdsexp nn0ge0d nngt0d ge0div elnn0z sylanbrc
        breq2d dvdsgcd mpan2d expm1d oveq2d nndivred recnd divassd 3eqtr2d mtod
        bitr4d 3imtr3d prmpwdvds syl222anc odzphi phiprm prmuz2 pcdvdsb mpbird
        cphi ) AFBUAUBZFESUCUBZUAUBUDUEZFUUTUFUBZUVAUGUEZAUVCDEUHVFVFZUGUEZUVEU
        VAUGUEZUVDAGSUCUBZUVCUIUBZUJTZUVEUJTZFUKTZUUTULTZUVEUVIUVCUMUBZUGUEUVEU
        VIFUUTSUCUBUFUBZUMUBZUGUEZUNUVFAUVCUVHUGUEZUVJAUVCBUGUEZBUVHUGUEZUVRAUV
        LBULTUVSNHFBUOUPABBCUMUBZUVHUGABUJTZCUJTBUWAUGUEABHUQZACIUQBCURUPAUVHUW
        ASUSUBZSUCUBZUWAAGUWDSUCKUTAUWAVATSVATUWEUWAVBAUWAABCHIVCZVDVEUWASVGVHV
        IVJAUVCUJTZUWBUVHUJTZUVSUVTVKUVRVLAUVCAFUUTAUVLFULTNFVMVNZAUUTOVOZVPZUQ
        ZUWCAUVHAUVHSVQVFZULASUJTZGSSUSUBZVQVFZTUVHUWMTVRAGUWDUWPKAUWAUWMTUWDUW
        PTAUWAULUWMUWFVSVTSUWAWAVNWBZSGWCWDVSWEZUQZUVCBUVHWFWHWGZAUWGUVCWIWJUWH
        UVRUVJWSUWLAUVCUWKWKZUWSUVCUVHWLWHWMAUVEAEULTZDUJTZDEWNUBZSVBZUVEULTAEU
        KTZUXBLEVMVNZPAUXDSUDUEZUXEAUXDDGWNUBZSUDAUXDDUGUEZUXDGUGUEZUXDUXIUDUEZ
        AUXJUXDEUGUEZAUXCEUJTZUXJUXMVKPAEUXGUQZDEWOUPZWPAUXMEGUGUEZUXKAUXJUXMUX
        PWQMAUXDUJTZUXNGUJTZUXMUXQVKUXKVLAUXDADEPUXOWRWTZUXOAGAGULTZSGXJUEZAGXA
        VQVFZTUYAUYBVKAGUWPUYCUWQXAUWOVQXBXCZWEGXDXEZWPZUQZUXDEGWFWHWGAUXRUXCUX
        SDWIVBZGWIVBZVKZUNZUXJUXKVKUXLVLUXTPUYGAGWIWJUYKAGUYFWKUYJGWIUYHUYIXFXG
        VNUXDDGXHXIWGADUVHUFUBZGWNUBZSVBZUXISVBZAUYLGXKUBZGWNUBZSGWNUBZUYMSAUYP
        SGWNQUTAUYLUJTZUYAUYQUYMVBAUXCUVHXLTZUYSPAUVHUWRVOZDUVHXMUPZUYFUYLGXNUP
        AUYRGSWNUBZSAUWNUXSUYRVUCVBVRUYGSGXOWDAUXSVUCSVBUYGGYAVNVIXPAUXCUXSUVHU
        LTUYNUYOWSPUYGUWRDGUVHXQWHWMXRAUXDULTZUXHUXEWSAUXCUXNUYHEWIVBZVKZUNZVUD
        PUXOAEWIWJVUGAEUXGWKVUFEWIUYHVUEXFXGVNDEXSXTUXDYBVNWMZDEYCWHUQZNOAUVEUV
        HUVNUGAEUYLSUCUBZUGUEZUVEUVHUGUEZAUXQGVUJUGUEZVUKMAUYPSGXKUBZVBZVUMAUYP
        SVUNQAGYDTUYBVUNSVBAGUYFYEAUYAUYBUYEWQGYFUPYGAUYAUYSUWNVUOVUMWSUYFVUBAY
        HUYLSGYIWHWMAUXNUXSVUJUJTZUXQVUMVKVUKVLUXOUYGAUYSVUPVUBUYLYJVNEGVUJWFWH
        WGAUXBUXCUXEUYTVUKVULWSUXGPVUHVUADUVHEYLXIWMAUVHUVCAUVHUWRVDAUVCUWKVDZU
        XAYKZVJAUVQESUGUEZAUXFVUSUNLEYMVNAEDUVHFUIUBZUFUBZSUCUBZUGUEZEVVBGWNUBZ
        UGUEZUVQVUSAVVCUXQVVEMAUXNVVBUJTZUXSVVCUXQVKVVEVLUXOAVVAUJTZVVFAUXCVUTX
        LTZVVGPAVUTUJTZWIVUTUDUEZVVHAFUVHUGUEZVVIAFUVCUGUEZUVRVVKAFUJTZUVMVVLAF
        UWIUQZOFUUTYNUPUWTAVVMUWGUWHVVLUVRVKVVKVLVVNUWLUWSFUVCUVHWFWHWGAVVMFWIW
        JUWHVVKVVIWSVVNAFUWIWKZUWSFUVHWLWHWMAWIUVHUDUEZVVJAUVHVUAYOAUVHYDTFYDTW
        IFXJUEVVPVVJWSAUVHUWRYEZAFUWIYEAFUWIYPUVHFYQWHWMVUTYRYSZDVUTXMUPVVAYJVN
        UYGEVVBGUUAWHUUBAVVCUVEVUTUGUEZUVQAUXBUXCUXEVVHVVCVVSWSUXGPVUHVVRDVUTEY
        LXIAUVPVUTUVEUGAUVPUVIUVCFUIUBZUMUBUVNFUIUBVUTAUVOVVTUVIUMAFUUTAFUWIVDZ
        VVOAUUTOUQUUCUUDAUVIUVCFAUVIAUVHUVCVVQUWKUUEUUFVUQVWAVVOUUGAUVNUVHFUIVU
        RUTUUHYTUUJAVVDSEUGRYTUUKUUIUVEFUVIUUTUULUUMAUVEEUUSVFZUVAUGAUXBUXCUXEU
        VEVWBUGUEUXGPVUHDEUUNWHAUXFVWBUVAVBLEUUOVNXRAUWGUVKUVAUJTZUVFUVGVKUVDVL
        UWLVUIAUVAAUVAUWMULAUWNEUWPTUVAUWMTVRAEUYCUWPAUXFEUYCTLEUUPVNUYDVTSEWCW
        DVSWEUQZUVCUVEUVAWFWHWGAUVLVWCUUTXLTUVBUVDWSNVWDUWJUUTFUVAUUQWHUUR $.
    $}

    $(
    pockthg @p |- ( ph -> ( N e. Prime <-> A. p e. Prime ( p || A -> E. x e. ZZ
                   ( ( ( x ^ ( N - 1 ) ) mod N ) = 1 /\
                     ( ( ( x ^ ( ( N - 1 ) / p ) ) - 1 ) gcd N ) = 1 ) ) ) ) @=
      ? @.
    $)

    $d p q x N $.  $d p x A $.  $d p q x ph $.
    pockthg.5 $e |- ( ph -> A. p e. Prime ( p || A -> E. x e. ZZ
                   ( ( ( x ^ ( N - 1 ) ) mod N ) = 1 /\
                     ( ( ( x ^ ( ( N - 1 ) / p ) ) - 1 ) gcd N ) = 1 ) ) ) $.
    $( The generalized Pocklington's theorem.  If ` N - 1 = A x. B ` where
       ` B < A ` , then ` N ` is prime if and only if for every prime factor
       ` p ` of ` A ` , there is an ` x ` such that
       ` x ^ ( N - 1 ) = 1 ( mod N ) ` and
       ` gcd ( x ^ ( ( N - 1 ) / p ) - 1 , N ) = 1 ` .  (Contributed by Mario
       Carneiro, 2-Mar-2014.) $)
    pockthg $p |- ( ph -> N e. Prime ) $=
      ( wcel co cle wbr cprime c1 cn wa adantr vq c2 cuz cfv cv cexp cdvds wral
      wn wi cmul caddc nnmulcld nnuz syl6eleq eluzp1p1 fveq2i syl6eleqr eqeltrd
      syl df-2 clt cr eluzelre nnred resqcld prmnn ad2antrl wb nngt0d syl112anc
      cc0 ltmul2 mpbid nnltp1le syl2anc nncnd sqvald 3brtr4d cmin cpc wceq cdiv
      cmo cgcd cz wrex exp1d ad2antll cn0 simprl nnzd ad2antrr 1nn0 a1i pcdvdsb
      nnge1 syl3anc eqbrtrrd w3a simpl1 simpl2l simpl2r simpl3l simpl3r simprrl
      simprrr pockthlem rexlimdvaa 3expa embantd expr id prmuz2 uz2m1nn syl2anr
      pccl nn0ge0d breq1 syl5ibrcom simpr pccld elnn0 sylib mpjaod ralimdva mpd
      wo pc2dvds mpbird dvdsle nnnn0d nn0ltlem1 lt2sqd lelttrd ltnled ralrimiva
      a1dd con2d isprm5 sylanbrc ) AEUBUCUDZLZUAUEZUBUFMZENOZUUDEUGOZUIUJZUAPUH
      EPLAECDUKMZQULMZUUBJAUUJQQULMZUCUDZUUBAUUIQUCUDZLUUJUULLAUUIRUUMACDGHUMZU
      NUOQUUIUPUTUBUUKUCVAUQURUSZAUUHUAPAUUDPLZSUUGUUFAUUPUUGUUFUIZAUUPUUGSZSZE
      UUEVBOUUQUUSECUBUFMZUUEAEVCLZUURAUUCUVAUUOUBEVDUTTZAUUTVCLUURACACGVEZVFTU
      USUUDUUSUUDUUPUUDRLAUUGUUDVGVHZVEZVFZAEUUTNOUURAUUJCCUKMZEUUTNAUUIUVGVBOZ
      UUJUVGNOZADCVBOZUVHIADVCLCVCLZUVKVLCVBOUVJUVHVIADHVEUVCUVCACGVJDCCVMVKVNA
      UUIRLUVGRLUVHUVIVIUUNACCGGUMUUIUVGVOVPVNJACACGVQVRVSTUUSCUUDVBOZUUTUUEVBO
      UUSUVLCUUDQVTMZNOZUUSCUVMUGOZUVNUUSUVOFUEZCWAMZUVPUVMWAMZNOZFPUHZUUSUVPCU
      GOZBUEZEQVTMZUFMEWDMQWBZUWBUWCUVPWCMUFMQVTMEWEMQWBZSZBWFWGZUJZFPUHZUVTAUW
      IUURKTUUSUWHUVSFPUUSUVPPLZSZUVQRLZUWHUVSUJZUVQVLWBZUUSUWJUWLUWMUUSUWJUWLS
      ZSZUWAUWGUVSUWPUVPQUFMZUVPCUGUWPUVPUWPUVPUWJUVPRLUUSUWLUVPVGVHVQWHUWPQUVQ
      NOZUWQCUGOZUWLUWRUUSUWJUVQWQWIUWPUWJCWFLZQWJLZUWRUWSVIUUSUWJUWLWKAUWTUURU
      WOACGWLZWMUXAUWPWNWOQUVPCWPWRVNWSAUURUWOUWGUVSUJAUURUWOWTZUWFUVSBWFUXCUWB
      WFLZUWFSZSZCDUWBUUDUVPEUXFACRLZAUURUWOUXEXAZGUTUXFADRLUXHHUTUXFAUVJUXHIUT
      UXFAEUUJWBUXHJUTUUPUUGAUWOUXEXBUUPUUGAUWOUXEXCUWJUWLAUURUXEXDUWJUWLAUURUX
      EXEUXCUXDUWFWKUXCUXDUWDUWEXFUXCUXDUWDUWEXGXHXIXJXKXLUWKUWNUVSUWHUWKUVSUWN
      VLUVRNOUWKUVRUWJUWJUVMRLZUVRWJLUUSUWJXMUUPUXIAUUGUUPUUDUUBLUXIUUDXNUUDXOU
      TVHZUVPUVMXQXPXRUVQVLUVRNXSXTYRUWKUVQWJLUWLUWNYHUWKUVPCUUSUWJYAAUXGUURUWJ
      GWMYBUVQYCYDYEYFYGUUSUWTUVMWFLUVOUVTVIAUWTUURUXBTZUUSUVMUXJWLCUVMFYIVPYJU
      USUWTUXIUVOUVNUJUXKUXJCUVMYKVPYGUUSCWJLZUUDWJLUVLUVNVIAUXLUURACGYLZTUUSUU
      DUVDYLZCUUDYMVPYJUUSCUUDAUVKUURUVCTUVEAVLCNOUURACUXMXRTUUSUUDUXNXRYNVNYOU
      USEUUEUVBUVFYPVNXLYSYQUAEYTUUA $.
  $}

  ${
    $d x y D $.  $d x y E $.  $d x y N $.  $d x y P $.  $d y A $.
    pockthi.p $e |- P e. Prime $.
    pockthi.g $e |- G e. NN $.
    pockthi.m $e |- M = ( G x. P ) $.
    pockthi.n $e |- N = ( M + 1 ) $.
    pockthi.d $e |- D e. NN $.
    pockthi.e $e |- E e. NN $.
    pockthi.a $e |- A e. NN $.
    pockthi.fac $e |- M = ( D x. ( P ^ E ) ) $.
    pockthi.gt $e |- D < ( P ^ E ) $.
    pockthi.mod $e |- ( ( A ^ M ) mod N ) = ( 1 mod N ) $.
    pockthi.gcd $e |- ( ( ( A ^ G ) - 1 ) gcd N ) = 1 $.
    $( Pocklington's theorem, which gives a sufficient criterion for a number
       ` N ` to be prime.  This is the preferred method for verifying large
       primes, being much more efficient to compute than trial division.  This
       form has been optimized for application to specific large primes; see
       ~ pockthg for a more general closed-form version.  (Contributed by Mario
       Carneiro, 2-Mar-2014.) $)
    pockthi $p |- N e. Prime $=
      ( co c1 vy vx cn wcel cprime cexp cn0 prmnn ax-mp nnnn0i nnexpcl mp2an id
      a1i clt wbr cmul caddc wceq nncni mulcomi eqtri oveq1i cv cdvds cmin cdiv
      cmo cgcd wa cz wrex wi wral prmdvdsexpb mp3an23 nnmulcli eqeltri peano2nn
      wb eqcomi ax-1cn subadd2i mpbir oveq2i cr nnrei cc0 nngt0i ltaddpos2 mpbi
      1re breqtrri 1mod 3eqtrri subcli nnne0i divmuli syl6eq oveq2d oveq1d nnzi
      oveq2 oveq1 eqeq1d anbi12d rspcev mpan sylancr syl6bi rgen pockthg ) BUCU
      DZGUEUDLXMUACDUFSZBGUBXNUCUDZXMCUCUDZDUGUDXOCUEUDZXPHCUHUIZDMUJCDUKULZUNX
      MUMBXNUOUPXMPUNGXNBUQSZTURSZUSXMGFTURSZYAKFXTTURFBXNUQSXTOBXNBLUTXNXSUTVA
      VBVCVBUNUBVDZXNVEUPZUAVDZGTVFSZUFSZGVHSZTUSZYEYFYCVGSZUFSZTVFSZGVISZTUSZV
      JZUAVKVLZVMZUBUEVNXMYQUBUEYCUEUDZYDYCCUSZYPYRXQDUCUDYDYSVTHMYCCDVOVPYSAYF
      UFSZGVHSZTUSZAYJUFSZTVFSZGVISZTUSZYPUUAAFUFSZGVHSZTYTUUGGVHYFFAUFYFFUSYBG
      USGYBKWAGTFGGYBUCKFUCUDYBUCUDFECUQSZUCJECIXRVQVRZFVSUIVRZUTZWBFUUJUTWCWDZ
      WEVCUUHTGVHSZTQGWFUDTGUOUPUUNTUSGUUKWGTYBGUOWHFUOUPZTYBUOUPZFUUJWIFWFUDTW
      FUDUUOUUPVTFUUJWGWLFTWJULWKKWMGWNULVBVBYSUUEAEUFSZTVFSZGVISTYSUUDUURGVIYS
      UUCUUQTVFYSYJEAUFYSYJYFCVGSZEYCCYFVGXCUUSEUSCEUQSZYFUSYFFUUIUUTUUMJECEIUT
      ZCXRUTZVAWOYFCEGTUULWBWPUVBUVACXRWQWRWDWSWTXAXARWSAVKUDUUBUUFVJZYPANXBYOU
      VCUAAVKYEAUSZYIUUBYNUUFUVDYHUUATUVDYGYTGVHYEAYFUFXDXAXEUVDYMUUETUVDYLUUDG
      VIUVDYKUUCTVFYEAYJUFXDXAXAXEXFXGXHXIXJXKUNXLUI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Infinite primes theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d m n y A $.  $d m n y G $.
    unbenlem.1 $e |- G = ( rec ( ( x e. _V |-> ( x + 1 ) ) , 1 ) |` _om ) $.
    $( Lemma for ~ unben .  (Contributed by NM, 5-May-2005.)  (Revised by Mario
       Carneiro, 15-Sep-2013.) $)
    unbenlem $p |-
        ( ( A C_ NN /\ A. m e. NN E. n e. A m < n ) -> A ~~ _om ) $=
      ( vy cn clt wbr wrex wa com wcel wf1o c1 wceq wb wi syl cv wral ccnv cima
      wss cen cvv cres nnex ssex wf1 cuz cfv om2uzf1oi nnuz f1oeq3 ax-mp f1ocnv
      1z mpbir f1of1 mp2b f1ores f1oeng syl2anc adantr crn imassrn cdm dfdm4 wf
      mpan f1of fdmi eqtr3i sseqtri om2uzuzi syl6eleqr breq1 rexbidv rspcv wfun
      f1ofun funcnvres2 f1oeq1 sylib wfo f1ofo forn eleq2d f1ofn fvelrnb bitr3d
      wfn biimpa fvres eqeq1d adantll om2uzlt2i sylan2 sylan9bb syldan biimparc
      sseli breq2 exp44 imp31 reximdva syl5 exp4b com4l imp rexlimdv syld com3l
      ex ralrimiv unbnn3 sylancr entr ) BHUEZCUAZDUAZIJZDBKZCHUBZLZBEUCZBUDZUFJ
      ZYIMUFJZBMUFJYAYJYFYABUGNBYIYHBUHZOZYJBHUIUJHMYHUKZYAYMMHEOZHMYHOYNYOMPUL
      UMZEOZAPEUSFUNHYPQYOYQRUOHYPMEUPUQUTZMHEURHMYHVAVBHMBYHVCVLZBYIUGYLVDVEVF
      YGYIMUEGUAZYBNZCYIKZGMUBYKYIYHVGZMYHBVHEVIUUCMEVJMHEYOMHEVKYRMHEVMUQVNVOV
      PZYGUUBGMYAYFYTMNZUUBSUUEYAYFUUBUUEYAYFUUBSUUEYALZYFYTEUMZYCIJZDBKZUUBUUE
      YFUUISZYAUUEUUGHNUUJUUEUUGYPHAYTPEUSFVQUOVRYEUUICUUGHYBUUGQYDUUHDBYBUUGYC
      IVSVTWATVFUUFUUHUUBDBUUEYAYCBNZUUHUUBSSUUHUUEYAUUKUUBUUHUUEYAUUKUUBYAUUKL
      YBEYIUHZUMZYCQZCYIKZUUHUUELZUUBYAUUKUUOYAYIBUULOZUUKUUORYAYIBYLUCZOZUUQYA
      YMUUSYSBYIYLURTEWBZUURUULQUUSUUQRYOUUTYRMHEWCUQBEWDYIBUURUULWEVBWFUUQYCUU
      LVGZNZUUKUUOUUQUVABYCUUQYIBUULWGUVABQYIBUULWHYIBUULWITWJUUQUULYIWNUVBUUOR
      YIBUULWKCYIYCUULWLTWMTWOUUPUUNUUACYIUUHUUEYBYINZUUNUUASUUHUUEUVCUUNUUAUUE
      UVCLZUUNLUUAUUHUVDUUNYBEUMZYCQZUUAUUHRUVCUUNUVFUUEUVCUUNUVFUVCUUMUVEYCYBY
      IEWPWQWOWRUVDUUAUUGUVEIJZUVFUUHUVCUUEYBMNUUAUVGRYIMYBUUDXDAYTYBPEUSFWSWTU
      VEYCUUGIXEXAXBXCXFXGXHXIXJXKXLXMXNXPXOXLXQGCYIXRXSBYIMXTVE $.
  $}

  ${
    $d m n x A $.
    $( An unbounded set of positive integers is infinite.  (Contributed by NM,
       5-May-2005.)  (Revised by Mario Carneiro, 15-Sep-2013.) $)
    unben $p |- ( ( A C_ NN /\ A. m e. NN E. n e. A m < n ) -> A ~~ NN ) $=
      ( vx cn wss cv clt wbr wrex wral wa com cen cvv c1 caddc co cmpt crdg
      cres eqid unbenlem nnenom ensymi entr sylancl ) AEFBGCGHICAJBEKLAMNIMENIA
      ENIDABCDODGPQRSPTMUAZUHUBUCEMUDUEAMEUFUG $.
  $}

  ${
    $d j k N $.  $d j M $.  $d j k K $.
    infpnlem.1 $e |- K = ( ( ! ` N ) + 1 ) $.
    $( Lemma for ~ infpn .  The smallest divisor (greater than 1) ` M ` of
       ` N ! + 1 ` is a prime greater than ` N ` .  (Contributed by NM,
       5-May-2005.) $)
    infpnlem1 $p |- ( ( N e. NN /\ M e. NN ) ->
                        ( ( ( 1 < M /\ ( K / M ) e. NN ) /\
                  A. j e. NN ( ( 1 < j /\ ( K / j ) e. NN ) -> M <_ j ) ) ->
       ( N < M /\ A. j e. NN ( ( M / j ) e. NN -> ( j = 1 \/ j = M ) ) ) ) ) $=
      ( cn wcel wa c1 clt wbr cdiv co cle wi wral wceq wb cr nnre cv wo syl2anr
      wn lenlt adantr cn0 nnnn0 cfa cfv caddc facndiv oveq1i nnz syl5eqelr nsyl
      cz sylanl1 expr sylbird con4d expimpd adantrd cc faccl peano2nnd syl5eqel
      w3a syl nncnd nndivtr ex 3com13 3expa adantrl letri3 syl2an biimprd exp4b
      com3l imp32 adantll imim2d com23 sylan2d exp4d com24 exp32 imp31 ralimdva
      com14 3imp adantld impd prime adantl sylibrd jcad ) DFGZCFGZHZICJKZBCLMZF
      GZHZIAUAZJKZBXFLMFGZHZCXFNKZOZAFPZHZDCJKZCXFLMFGZXFIQXFCQZUBOAFPZXAXEXNXL
      XAXBXDXNXAXBHZXNXDXRXNUDZCDNKZXDUDZXAXTXSRZXBWTCSGZDSGYBWSCTZDTCDUEUCUFXA
      XBXTYAWSDUGGZWTXBXTHZYADUHZYEWTHYFHDUIUJZIUKMZCLMZUQGXDDCULXDYJXCUQBYICLE
      UMXCUNUOUPURUSUTVAVBVCXAXMXGXFCNKZXOVHZXPOZAFPZXQXAXEXLYNXAXDXLYNOZXBXAXD
      YOXAXDHZXKYMAFYLYPXFFGZHZXKXPXGYKXOYRXKXPOZOYRYKXOXGYSXAXDYQYKXOXGYSOOZOX
      AYKYQXDYTXAYKYQXDYTOXAYKYQHZHZXGXOXDYSUUBXGXOXDYSUUBXOXDHZXHXGYSXAYQUUCXH
      OZYKWSBVDGZWTYQUUDWSBWSBYIFEWSYHWSYEYHFGYGDVEVIVFVGVJUUEWTYQUUDYQWTUUEUUD
      YQWTUUEVHUUCXHXFCBVKVLVMVNURVOUUBXKXIXPUUBXJXPXIWTUUAXJXPOZWSWTYKYQUUFYQW
      TYKUUFYQWTYKXJXPYQWTHXPYKXJHZYQXFSGYCXPUUGRWTXFTYDXFCVPVQVRVSVTWAWBWCWDWE
      WFWGWHWGWIWKWLVTWJVLWMWNWTXQYNRWSACWOWPWQWR $.

    $( Lemma for ~ infpn .  For any positive integer ` N ` , there exists a
       prime number ` j ` greater than ` N ` .  (Contributed by NM,
       5-May-2005.) $)
    infpnlem2 $p |- ( N e. NN -> E. j e. NN ( N < j /\
                    A. k e. NN ( ( j / k ) e. NN -> ( k = 1 \/ k = j ) ) ) ) $=
      ( cn wcel c1 cv clt wbr cdiv co wa cle wi wral wrex wceq syl wo cfa caddc
      cfv cn0 nnnn0 peano2nnd syl5eqel nnge1d wb 1nn nnleltp1 sylancr syl6breqr
      faccl mpbid cc0 wne nncn nnne0 jca divid 3syl syl6eqel breq2 oveq2 eleq1d
      cc anbi12d rspcev syl12anc nnwos infpnlem1 reximdva mpd ) DFGZHAIZJKZCVQL
      MZFGZNZHBIZJKZCWBLMZFGZNZVQWBOKPBFQNZAFRZDVQJKVQWBLMFGWBHSWBVQSUAPBFQNZAF
      RVPWAAFRZWHVPCFGZHCJKZCCLMZFGZWJVPCDUBUDZHUCMZFEVPWOVPDUEGWOFGZDUFDUOTZUG
      UHZVPHWPCJVPHWOOKZHWPJKZVPWOWRUIVPHFGWQWTXAUJUKWRHWOULUMUPEUNVPWMHFVPWKCV
      HGZCUQURZNWMHSWSWKXBXCCUSCUTVACVBVCUKVDWAWLWNNACFVQCSZVRWLVTWNVQCHJVEXDVS
      WMFVQCCLVFVGVIVJVKWAWFABVQWBSZVRWCVTWEVQWBHJVEXEVSWDFVQWBCLVFVGVIVLTVPWGW
      IAFBCVQDEVMVNVO $.
  $}

  ${
    $d j k N $.
    $( There exist infinitely many prime numbers: for any positive integer
       ` N ` , there exists a prime number ` j ` greater than ` N ` .  (See
       ~ infpn2 for the equinumerosity version.)  (Contributed by NM,
       1-Jun-2006.) $)
    infpn $p |- ( N e. NN -> E. j e. NN ( N < j /\
                    A. k e. NN ( ( j / k ) e. NN -> ( k = 1 \/ k = j ) ) ) ) $=
      ( cfa cfv c1 caddc co eqid infpnlem2 ) ABCDEFGHZCKIJ $.
  $}

  ${
    $d j k n m $.  $d j k S $.
    infpn2.1 $e |- S = { n e. NN | ( 1 < n /\
                A. m e. NN ( ( n / m ) e. NN -> ( m = 1 \/ m = n ) ) ) } $.
    $( There exist infinitely many prime numbers: the set of all primes ` S `
       is unbounded by ~ infpn , so by ~ unben it is infinite.  This is
       Metamath 100 proof #11.  (Contributed by NM, 5-May-2005.) $)
    infpn2 $p |- S ~~ NN $=
      ( vj vk cn cv clt wbr wrex wral c1 cdiv co wcel weq wi wa cr wss cen wceq
      wo crab ssrab2 eqsstri infpn nnge1 adantr nnre lelttr mp3an1 syl2an mpand
      cle 1re ancld anim1d anass syl6ib reximdva mpd breq2 oveq1 eleq1d equequ2
      orbi2d imbi12d ralbidv anbi12d elrab2 anbi1i anbi2i 3bitri rexbii2 sylibr
      ancom rgen unben mp2an ) AGUAEHZFHZIJZFAKZEGLAGUBJAMCHZIJZWFBHZNOZGPZWHMU
      CZBCQZUDZRZBGLZSZCGUEGDWPCGUFUGWEEGWBGPZWDMWCIJZWCWHNOZGPZWKBFQZUDZRZBGLZ
      SZSZFGKZWEWQWDXDSZFGKXGFBWBUHWQXHXFFGWQWCGPZSZXHWDWRSZXDSXFXJWDXKXDXJWDWR
      XJMWBUPJZWDWRWQXLXIWBUIUJWQWBTPZWCTPZXLWDSWRRZXIWBUKWCUKMTPXMXNXOUQMWBWCU
      LUMUNUOURUSWDWRXDUTVAVBVCWDXFFAGWCAPZWDSXIXESZWDSXIXEWDSZSXIXFSXPXQWDWPXE
      CWCGACFQZWGWRWOXDWFWCMIVDXSWNXCBGXSWJWTWMXBXSWIWSGWFWCWHNVEVFXSWLXAWKCFBV
      GVHVIVJVKDVLVMXIXEWDUTXRXFXIXEWDVRVNVOVPVQVSAEFVTWA $.
  $}

  ${
    $d N p $.
    $( The primes are unbounded.  (Contributed by Paul Chapman,
       28-Nov-2012.) $)
    prmunb $p |- ( N e. NN -> E. p e. Prime N < p ) $=
      ( cn wcel cn0 clt wbr cprime wrex cfv c1 caddc co cdvds c2 cuz 3syl wa wn
      cz cv nnnn0 cfa faccl elnnuz eluzp1p1 fveq2i syl6eleqr sylbi exprmfct cle
      df-2 wi prmz nn0z eluz syl2an prmuz2 eluz2b2 adantr simpld nnnn0d eluznn0
      sylib sylancom nnz simprd dvdsfac w3a ndvdsp1 imp syl31anc sylbird ancoms
      wb ex con2d cr nn0re zred ltnle sylibrd reximdva mpd syl ) ACDAEDZABUAZFG
      ZBHIZAUBWFWGAUCJZKLMZNGZBHIZWIWFWJCDZWKOPJZDZWMAUDZWNWJKPJDZWPWJUEWRWKKKL
      MZPJWOKWJUFOWSPULUGUHUIWKBUJQWFWLWHBHWFWGHDZRWLWGAUKGZSZWHWTWFWLXBUMWTWFR
      ZXAWLXCXAAWGPJDZWLSZWTWGTDATDXDXAVOWFWGUNZAUOWGAUPUQWTXDXEUMWFWTXDXEWTXDR
      ZWJTDZWGCDZKWGFGZWGWJNGZXEXGWFWNXHWTXDWGEDWFXGWGXGXIXJWTXIXJRZXDWTWGWODXL
      WGURWGUSVDUTZVAZVBAWGVCVEWQWJVFQXNXGXIXJXMVGWTXDXIXKXNWGAVHVEXHXIXJVIXKXE
      WGWJVJVKVLVPUTVMVQVNWFAVRDWGVRDWHXBVOWTAVSWTWGXFVTAWGWAUQWBWCWDWE $.
  $}

  ${
    $d n p $.
    $( There are an infinite number of primes.  Theorem 1.7 in [ApostolNT]
       p. 16.  (Contributed by Paul Chapman, 28-Nov-2012.) $)
    prminf $p |- Prime ~~ NN $=
      ( vn vp cprime cn wss clt wbr wrex wral cen prmnn ssriv prmunb rgen unben
      cv mp2an ) CDEAPZBPZFGBCHZADICDJGBCDSKLTADRBMNCABOQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Sum of prime reciprocals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d r x K $.  $d n r x z N $.  $d r x z Q $.
    prmreclem1.1 $e |- Q = ( n e. NN |->
      sup ( { r e. NN | ( r ^ 2 ) || n } , RR , < ) ) $.
    $( Lemma for ~ prmrec .  Properties of the "square part" function, which
       extracts the ` m ` of the decomposition ` N = r m ^ 2 ` , with ` m `
       maximal and ` r ` squarefree.  (Contributed by Mario Carneiro,
       5-Aug-2014.) $)
    prmreclem1 $p |- ( N e. NN -> ( ( Q ` N ) e. NN /\
      ( ( Q ` N ) ^ 2 ) || N /\
      ( K e. ( ZZ>= ` 2 ) -> -. ( K ^ 2 ) || ( N / ( ( Q ` N ) ^ 2 ) ) ) ) ) $=
      ( vz cn wcel c2 cexp co cdvds wbr cr clt wceq cz cle c1 vx cfv cdiv wn wi
      cuz cv crab ssrab2 csup breq2 rabbidv supeq1d ltso supex fvmpt wss c0 wne
      wral wrex nnssz sstri a1i 1nn nnz 1dvds syl oveq1 sq1 syl6eq breq1d elrab
      sylanbrc ne0i zsqcl dvdsle syl2anr nnlesq adantl nnre resqcld adantr letr
      wa id syl3anc mpand syld ralrimiva ralrab sylibr ralbidv syl2anc suprzcl2
      rspcev eqeltrd sseldi cbvrabv elrab2 sylib simprd mulid1d eluz2b2 simprbi
      cmul nncnd wb 1red eluz2nn nnred nngt0d ltmul2 syl112anc eqbrtrrd nnmulcl
      cc0 mpbid syl2an ltnled ad2antrr simpr nnsqcld nnne0d dvdsval2 mpd sqmuld
      dvdscmul cc eqcomd nncn divcan2d 3brtr3d suprzub breqtrrd mtand ex 3jca )
      DHIZDAUBZHIZYTJKLZDMNZCJUFUBIZCJKLZDUUBUCLZMNZUDZUEYSEUGZJKLZDMNZEHUHZHYT
      UUKEHUIZYSYTUULOPUJZUULBDUUJBUGZMNZEHUHZOPUJUUNHAUUODQZOUUQUULPUURUUPUUKE
      HUUODUUJMUKULUMFOUULPUNUOUPZYSUULRUQZUULURUSZGUGZUAUGZSNZGUULUTZUARVAZUUN
      UULIUUTYSUULHRUUMVBVCZVDYSTUULIZUVAYSTHIZTDMNZUVHUVIYSVEVDYSDRIZUVJDVFZDV
      GVHUUKUVJETHUUITQZUUJTDMUVMUUJTJKLTUUITJKVIVJVKVLVMVNUULTVOVHYSUVKUVBDSNZ
      GUULUTZUVFUVLYSUVBJKLZDMNZUVNUEZGHUTUVOYSUVRGHYSUVBHIZWEZUVQUVPDSNZUVNUVS
      UVPRIZYSUVQUWAUEYSUVSUVBRIUWBUVBVFUVBVPVHYSWFUVPDVQVRUVTUVBUVPSNZUWAUVNUV
      SUWCYSUVBVSVTUVTUVBOIZUVPOIDOIZUWCUWAWEUVNUEUVSUWDYSUVBWAVTZUVTUVBUWFWBYS
      UWEUVSDWAWCUVBUVPDWDWGWHWIWJUUKUVQUVNGEHUUIUVBQUUJUVPDMUUIUVBJKVIVLZWKWLU
      VEUVOUADRUVCDQUVDUVNGUULUVCDUVBSUKWMWPWNZUAGUULWOWGWQZWRZYSUUAUUCYSYTUULI
      UUAUUCWEUWIUVQUUCGYTHUULUVBYTQUVPUUBDMUVBYTJKVIVLUUKUVQEGHUWGWSWTXAXBZYSU
      UDUUHYSUUDWEZUUGYTCXFLZYTSNZUWLYTUWMPNUWNUDUWLYTTXFLZYTUWMPUWLYTUWLYTYSUU
      AUUDUWJWCZXGZXCUWLTCPNZUWOUWMPNZUUDUWRYSUUDCHIZUWRCXDXEVTUWLTOICOIYTOIXQY
      TPNUWRUWSXHUWLXIUWLCUUDUWTYSCXJZVTZXKUWLYTUWPXKZUWLYTUWPXLTCYTXMXNXRXOUWL
      YTUWMUXCUWLUWMYSUUAUWTUWMHIZUUDUWJUXAYTCXPXSZXKXTXRUWLUUGWEZUWMUUNYTSUXFU
      UTUVFUWMUULIZUWMUUNSNUUTUXFUVGVDYSUVFUUDUUGUWHYAUXFUXDUWMJKLZDMNZUXGUWLUX
      DUUGUXEWCUXFUUBUUEXFLZUUBUUFXFLZUXHDMUXFUUGUXJUXKMNZUWLUUGYBUXFUUERIZUUFR
      IZUUBRIZUUGUXLUEUXFUUEHIUXMUXFCUWLUWTUUGUXBWCZYCUUEVFVHYSUXNUUDUUGYSUUCUX
      NUWKYSUXOUUBXQUSZUVKUUCUXNXHYSHRUUBVBYSYTUWJYCZWRZYSUUBUXRYDZUVLUUBDYEWGX
      RYAYSUXOUUDUUGUXSYAUUBUUEUUFYHWGYFUXFUXHUXJUXFYTCUWLYTYIIUUGUWQWCUXFCUXPX
      GYGYJUXFDUUBYSDYIIUUDUUGDYKYAUXFUUBYSUUBHIUUDUUGUXRYAXGYSUXQUUDUUGUXTYAYL
      YMUUKUXIEUWMHUUIUWMQUUJUXHDMUUIUWMJKVIVLVMVNUAGUULUWMYNWGYSYTUUNQUUDUUGUU
      SYAYOYPYQYR $.
  $}

  ${
    $d j k m n p r w x y z F $.  $d j k n p q x y z K $.  $d k n p q x y z M $.
    $d r A $.  $d j k n p q x y z ph $.  $d n p r x y z Q $.  $d j k q x W $.
    $d j k n p q x y z N $.
    prmrec.1 $e |- F = ( n e. NN |-> if ( n e. Prime , ( 1 / n ) , 0 ) ) $.
    ${
      prmrec.2 $e |- ( ph -> K e. NN ) $.
      prmrec.3 $e |- ( ph -> N e. NN ) $.
      prmrec.4 $e |- M = { n e. ( 1 ... N ) |
        A. p e. ( Prime \ ( 1 ... K ) ) -. p || n } $.
      ${
        prmreclem2.5 $e |- Q = ( n e. NN |->
          sup ( { r e. NN | ( r ^ 2 ) || n } , RR , < ) ) $.
        $( Lemma for ~ prmrec .  There are at most ` 2 ^ K ` squarefree numbers
           which divide no primes larger than ` K ` .  (We could strengthen
           this to ` 2 ^ # ( Prime i^i ( 1 ... K ) ) ` but there's no reason
           to.)  We establish the inequality by showing that the prime counts
           of the number up to ` K ` completely determine it because all higher
           prime counts are zero, and they are all at most ` 1 ` because no
           square divides the number, so there are at most ` 2 ^ K `
           possibilities.  (Contributed by Mario Carneiro, 5-Aug-2014.) $)
        prmreclem2 $p |- ( ph ->
          ( # ` { x e. M | ( Q ` x ) = 1 } ) <_ ( 2 ^ K ) ) $=
          ( c1 cc0 co c2 wcel vy vz cv cfv wceq crab chash cpr cfz cmap cle wbr
          cexp cdom cvv ovex cprime cpc cif cmpt wa fveq2 eqeq1d elrab wf caddc
          weq clt wn cdiv cdvds cn cuz cdif wral ssrab2 eqsstri simprl ad2antrr
          sseldi elfznn syl simpr prmuz2 wi prmreclem1 simp3d simprr oveq1d sq1
          sylc syl6eq oveq2d nncnd eqtrd cz cn0 wb a1i bitr4d cr sylancl mpbird
          1z syl6eleq 1e0p1 c0ex eqid ex syl5bi wfn fnmpti mp2an oveq1 ifbieq1d
          fvmpt eqeq12d ralbiia bitri breq2 notbid ralbidv elrab2 simprbi pceq0
          ifex cin syl2anr cun inundif raleqi ralunb bitr3i iffalse iftrue ssfi
          nnnn0d cfn wss sylancr div1d breq2d nnzd pcdvdsb syl3anc mtbid nn0red
          2nn0 pccld 2re ltnle df-2 syl6breq nn0zd zleltp1 nn0uz elfz5 0z ax-mp
          fzpr oveq2i preq2i 3eqtr4i prid1 ifclda fmptd prex elmap sylibr eleq1
          anbi12i eqfnfv simprll simprrl r19.26 eldifi fz1ssnn anbi12d ralimdva
          sstri eqtr3 syl6bir syl5bir mp2and biantrud incom uneq1i eqtri eldifn
          eqtr4d rgen biantru elinel1 3bitr4g pc11 syl2anc syl5bb dom2d eqeltri
          mpi fzfi prfi fzfid hashdom hashmap prhash2ex hashfz1 oveq12d breqtrd
          mapfi ) ABUCZCUDZPUEZBGUFZUGUDZQPUHZPFUIRZUJRZUGUDZSFUMRZUKAUXOUXSUKU
          LZUXNUXRUNULZAUXRUOTUYBUXPUXQUJUPAUAUBUXNUXRDUXQDUCZUQTZUYCUAUCZURRZQ
          USZUTZDUXQUYDUYCUBUCZURRZQUSZUTZUOUYEUXNTZUYEGTZUYECUDZPUEZVAZAUYHUXR
          TZUXMUYPBUYEGBUAVGUXLUYOPUXKUYECVBVCVDZAUYQUYRAUYQVAZUXQUXPUYHVEUYRUY
          TDUXQUYGUXPUYHUYTUYCUXQTZVAZUYDUYFQUXPVUBUYDVAZUYFQPUIRZUXPVUCUYFVUDT
          ZUYFPUKULZVUCVUFUYFPPVFRZVHULZVUCUYFSVUGVHVUCUYFSVHULZSUYFUKULZVIZVUC
          UYCSUMRZUYEUYOSUMRZVJRZVKULZVUJVUCUYEVLTZUYCSVMUDTZVUOVIZVUCUYEPHUIRZ
          TZVUPVUCGVUSUYEGJUCZUYCVKULZVIZJUQUXQVNZVOZDVUSUFZVUSNVVEDVUSVPZVQZUY
          TUYNVUAUYDAUYNUYPVRVSVTUYEHWAWBZVUCUYDVUQVUBUYDWCZUYCWDWBVUPUYOVLTVUM
          UYEVKULVUQVURWECDUYCUYEIOWFWGWKVUCVUOVULUYEVKULZVUJVUCVUNUYEVULVKVUCV
          UNUYEPVJRUYEVUCVUMPUYEVJVUCVUMPSUMRPVUCUYOPSUMUYTUYPVUAUYDAUYNUYPWHVS
          WIWJWLWMVUCUYEVUCUYEVVIWNUUAWOUUBVUCUYDUYEWPTSWQTZVUJVVKWRVVJVUCUYEVV
          IUUCVVLVUCUUHWSSUYCUYEUUDUUEWTUUFVUCUYFXATSXATVUIVUKWRVUCUYFVUCUYCUYE
          VVJVVIUUIZUUGUUJUYFSUUKXBXCUULUUMVUCUYFWPTPWPTZVUFVUHWRVUCUYFVVMUUNXD
          UYFPUUOXBXCVUCUYFQVMUDZTVVNVUEVUFWRVUCUYFWQVVOVVMUUPXEXDUYFQPUUQXBXCQ
          QPVFRZUIRZQVVPUHZVUDUXPQWPTVVQVVRUEUURQUUTUUSPVVPQUIXFUVAPVVPQXFUVBUV
          CXEQUXPTVUBUYDVIVAQPXGUVDWSUVEUYHXHZUVFUXPUXQUYHQPUVGPFUIUPUVHUVIXIXJ
          UYMUYIUXNTZVAUYQUYIGTZUYICUDZPUEZVAZVAZAUYHUYLUEZUAUBVGZWRZUYMUYQVVTV
          WDUYSUXMVWCBUYIGBUBVGUXLVWBPUXKUYICVBVCVDUVKAVWEVWHVWFVVAUQTZVVAUYEUR
          RZQUSZVWIVVAUYIURRZQUSZUEZJUXQVOZAVWEVAZVWGVWFVVAUYHUDZVVAUYLUDZUEZJU
          XQVOZVWOUYHUXQXKUYLUXQXKVWFVWTWRDUXQUYGUYHUYDUYFQUYCUYEURUPXGYFVVSXLD
          UXQUYKUYLUYDUYJQUYCUYIURUPXGYFUYLXHZXLJUXQUYHUYLUVLXMVWSVWNJUXQVVAUXQ
          TVWQVWKVWRVWMDVVAUYGVWKUXQUYHDJVGZUYDVWIUYFVWJQUYCVVAUQUVJZUYCVVAUYEU
          RXNXOVVSVWIVWJQVVAUYEURUPXGYFXPDVVAUYKVWMUXQUYLVXBUYDVWIUYJVWLQVXCUYC
          VVAUYIURXNXOVXAVWIVWLQVVAUYIURUPXGYFXPXQXRXSVWPVWOVWJVWLUEZJUQVOZVWGV
          WPVXDJUQUXQYGZVOZVXGVXDJVVDVOZVAZVWOVXEVWPVXHVXGVWPVVAUYEVKULZVIZJVVD
          VOZVVAUYIVKULZVIZJVVDVOZVXHVWPUYNVXLAUYNUYPVWDUVMZUYNVUTVXLVVEVXLDUYE
          VUSGDUAVGZVVCVXKJVVDVXQVVBVXJUYCUYEVVAVKXTYAYBNYCYDWBVWPVWAVXOAUYQVWA
          VWCUVNZVWAUYIVUSTVXOVVEVXODUYIVUSGDUBVGZVVCVXNJVVDVXSVVBVXMUYCUYIVVAV
          KXTYAYBNYCYDWBVXLVXOVAVXKVXNVAZJVVDVOVWPVXHVXKVXNJVVDUVOVWPVXTVXDJVVD
          VWPVVAVVDTZVAZVXTVWJQUEZVWLQUEZVAVXDVYBVYCVXKVYDVXNVYAVWIVUPVYCVXKWRV
          WPVVAUQUXQUVPZVWPGVLUYEGVUSVLVVHHUVQUVTZVXPVTZVVAUYEYEYHVYAVWIUYIVLTV
          YDVXNWRVWPVYEVWPGVLUYIVYFVXRVTZVVAUYIYEYHUVRVWJVWLQUWAUWBUVSUWCUWDUWE
          VWOVWNJVXFVOZVWNJUXQUQVNZVOZVAZVXGVWOVWNJVXFVYJYIZVOVYLVWNJVYMUXQVYMU
          XQUQYGZVYJYIUXQVXFVYNVYJUQUXQUWFUWGUXQUQYJUWHYKVWNJVXFVYJYLYMVYLVYIVX
          GVYKVYIVWNJVYJVVAVYJTVWIVIZVWNVVAUXQUQUWIVYOVWKQVWMVWIVWJQYNVWIVWLQYN
          UWJWBUWKUWLVWNVXDJVXFVVAVXFTVWIVWNVXDWRVVAUQUXQUWMVWIVWKVWJVWMVWLVWIV
          WJQYOVWIVWLQYOXQWBXRYMXSVXEVXDJVXFVVDYIZVOVXIVXDJVYPUQUQUXQYJYKVXDJVX
          FVVDYLYMUWNVWPUYEWQTUYIWQTVWGVXEWRVWPUYEVYGYQVWPUYIVYHYQUYEUYIJUWOUWP
          WTUWQXIXJUWRUWTAUXNYRTZUXRYRTZUYAUYBWRGYRTUXNGYSVYQGVVFYRNVUSYRTVVFVU
          SYSVVFYRTPHUXAVVGVUSVVFYPXMUWSUXMBGVPGUXNYPXMAUXPYRTZUXQYRTZVYRQPUXBZ
          APFUXCZUXPUXQUXJYTUXNUXRYRUXDYTXCAUXSUXPUGUDZUXQUGUDZUMRZUXTAVYSVYTUX
          SWUEUEWUAWUBUXPUXQUXEYTAWUCSWUDFUMWUCSUEAUXFWSAFWQTWUDFUEAFLYQFUXGWBU
          XHWOUXI $.

        $( Lemma for ~ prmrec .  The main inequality established here is
           ` # M <_ # { x e. M | ( Q `` x ) = 1 } x. sqrt N ` , where
           ` { x e. M | ( Q `` x ) = 1 } ` is the set of squarefree numbers in
           ` M ` .  This is demonstrated by the map
           ` y |-> <. y / ( Q `` y ) ^ 2 , ( Q `` y ) >. ` where ` Q `` y ` is
           the largest number whose square divides ` y ` .  (Contributed by
           Mario Carneiro, 5-Aug-2014.) $)
        prmreclem3 $p |- ( ph
             -> ( # ` M ) <_ ( ( 2 ^ K ) x. ( sqrt ` N ) ) ) $=
          ( c2 co wcel cdvds wbr cle vx vy vz chash cfv cexp csqrt cfl cmul cfn
          cA cr cn0 c1 cfz fzfi cv wn cprime cdif wral crab ssrab2 eqsstri ssfi
          wss mp2an hashcl ax-mp nn0rei a1i cn 2nn nnnn0d nnexpcl sylancr nnrpd
          cc0 wa rpsqrtcld rprege0d flge0nn0 syl nn0mulcld nnred rpred remulcld
          nn0red wceq remulcl cxp cdom xpfi cdiv cop cz clt simpr sseldi elfznn
          cuz prmreclem1 simp2d wne simp1d nnsqcld nnzd nnne0d dvdsval2 syl3anc
          wi mpbid nnre nngt0 jca syl2an syl2anc sylanbrc adantr nncnd divcan1d
          breqtrd dvdsle mpd letrd nnuz syl6eleq elfz5 mpbird weq breq2 ralbidv
          wb notbid elrab2 sylib fveq2 crp rprege0 ex divgt0 elnnz elfzle2 prmz
          dvdsmul1 simprd eldifi adantl dvdstr mpan2d con3d ralimdva ord simp3d
          elnn1uz2 sylsyld mt4d eqeq1d elrab recnd sqsqrtd breqtrrd le2sq nn0zd
          wo flge opelxpi ovex fvex opth oveq1 oveq12 sylbi adantrr ssriv sstri
          sylan2 simprr eqeq12d syl5ib oveq1d oveq12d opeq12d impbid1 dom2d mpi
          id hashdom sylibr hashxp hashfz1 oveq2d syl5eq nn0ge0d lemul1ad caddc
          prmreclem2 fllelt simpld lemul2a syl31anc ) AFUDUEZOEUFPZGUGUEZUHUEZU
          IPZUXCUXDUIPZUXBULQAUXBFUJQZUXBUMQUNGUOPZUJQFUXIVFUXHUNGUPFIUQZCUQZRS
          ZURZIUSUNEUOPZUTZVAZCUXIVBUXIMUXPCUXIVCVDZUXIFVEVGZFVHVIVJVKZAUXFAUXC
          UXEAUXCAOVLQEUMQUXCVLQVMAEKVNOEVOVPZVNAUXDULQZVRUXDTSVSZUXEUMQZAUXDAG
          AGLVQVTZWAUXDWBWCZWDWHZAUXCUXDAUXCUXTWEZAUXDUYDWFZWGAUXBUAUQZBUEZUNWI
          ZUAFVBZUDUEZUXEUIPZUXFUXSAUYMULQZUXEULQZUYNULQUYMUYLUJQZUYMUMQUXHUYLF
          VFUYQUXRUYKUAFVCFUYLVEVGZUYLVHVIVJZAUXEUYEWHZUYMUXEWJVPUYFAUXBUYLUNUX
          EUOPZWKZUDUEZUYNTAFVUBWLSZUXBVUCTSZAVUBUJQZVUDUYQVUAUJQZVUFUYRUNUXEUP
          ZUYLVUAWMVGZAUBUCFVUBUBUQZVUJBUEZOUFPZWNPZVUKWOZUCUQZVUOBUEZOUFPZWNPZ
          VUPWOZUJAVUJFQZVUNVUBQZAVUTVSZVUMUYLQZVUKVUAQZVVAVVBVUMFQZVUMBUEZUNWI
          ZVVCVVBVUMUXIQZUXJVUMRSZURZIUXOVAZVVEVVBVVHVUMGTSZVVBVUMVUJGVVBVUMVVB
          VUMWPQZVRVUMWQSZVUMVLQZVVBVULVUJRSZVVMVVBVUJVLQZVVPVVBVUJUXIQZVVQVVBF
          UXIVUJUXQAVUTWRZWSZVUJGWTZWCZVVQVUKVLQZVVPUXKOXAUEZQUXKOUFPVUMRSURXKZ
          BCUXKVUJHNXBZXCWCZVVBVULWPQZVULVRXDVUJWPQZVVPVVMYMVVBVULVVBVUKVVBVVQV
          WCVWBVVQVWCVVPVWEVWFXEWCZXFZXGZVVBVULVWKXHZVVBVUJVWBXGZVULVUJXIXJXLZV
          VBVVQVULVLQZVVNVWBVWKVVQVUJULQZVRVUJWQSZVSVULULQZVRVULWQSZVSVVNVWPVVQ
          VWQVWRVUJXMVUJXNXOVWPVWSVWTVULXMVULXNXOVUJVULUUAXPXQVUMUUBXRZWEVVBVUJ
          VWBWEZAGULQVUTAGLWEXSZVVBVUMVUJRSZVUMVUJTSZVVBVUMVUMVULUIPZVUJRVVBVVM
          VWHVUMVXFRSVWOVWLVUMVULUUEXQVVBVUJVULVVBVUJVWBXTVVBVULVWKXTVWMYAZYBZV
          VBVVMVVQVXDVXEXKVWOVWBVUMVUJYCXQYDVVBVVRVUJGTSVVTVUJUNGUUCWCZYEVVBVUM
          UNXAUEZQGWPQZVVHVVLYMVVBVUMVLVXJVXAYFYGAVXKVUTAGLXGXSVUMUNGYHXQYIVVBU
          XJVUJRSZURZIUXOVAZVVKVVBVVRVXNVVBVUTVVRVXNVSVVSUXPVXNCVUJUXIFCUBYJZUX
          MVXMIUXOVXOUXLVXLUXKVUJUXJRYKYNYLMYOYPUUFVVBVXMVVJIUXOVVBUXJUXOQZVSZV
          VIVXLVXQVVIVXDVXLVVBVXDVXPVXHXSVXQUXJWPQZVVMVWIVVIVXDVSVXLXKVXPVXRVVB
          VXPUXJUSQVXRUXJUSUXNUUGUXJUUDWCUUHVVBVVMVXPVWOXSVVBVWIVXPVWNXSUXJVUMV
          UJUUIXJUUJUUKUULYDUXPVVKCVUMUXIFUXKVUMWIZUXMVVJIUXOVXSUXLVVIUXKVUMUXJ
          RYKYNYLMYOXRVVBVVFOUFPZVUMRSZVVGVVBVVOVYAVXAVVOVVFVLQZVYAUKVWDQUKOUFP
          VUMVXTWNPRSURXKZBCUKVUMHNXBZXCWCVVBVVQVVGURVVFVWDQZVYAURZVWBVVBVVGVYE
          VVBVYBVVGVYEUVEVVBVVOVYBVXAVVOVYBVYAVYCVYDXEWCVVFUUOYPUUMVVQVWCVVPVYE
          VYFXKBCVVFVUJHNXBUUNUUPUUQUYKVVGUAVUMFUYIVUMWIUYJVVFUNUYIVUMBYQUURUUS
          XRVVBVVDVUKUXETSZVVBVUKUXDTSZVYGVVBVYHVULUXDOUFPZTSZVVBVULGVYITVVBVUL
          VUJGVVBVULVWKWEVXBVXCVVBVVPVULVUJTSZVWGVVBVWHVVQVVPVYKXKVWLVWBVULVUJY
          CXQYDVXIYEVVBGVVBGVXCUUTUVAUVBVVBVUKYRQZUXDYRQZVYHVYJYMZVVBVUKVWJVQAV
          YMVUTUYDXSVYLVUKULQVRVUKTSVSUYBVYNVYMVUKYSUXDYSVUKUXDUVCXPXQYIVVBUYAV
          UKWPQVYHVYGYMAUYAVUTUYHXSVVBVUKVWJXGUXDVUKUVFXQXLVVBVUKVXJQUXEWPQZVVD
          VYGYMVVBVUKVLVXJVWJYFYGAVYOVUTAUXEUYEUVDXSVUKUNUXEYHXQYIVUMVUKUYLVUAU
          VGXQYTAVUTVUOFQZVSZVUNVUSWIZUBUCYJZYMAVYQVSZVYRVYSVYRVXFVURVUQUIPZWIZ
          VYTVYSVYRVUMVURWIZVUKVUPWIZVSWUBVUMVUKVURVUPVUJVULWNUVHVUJBUVIUVJWUDW
          UCVULVUQWIWUBVUKVUPOUFUVKVUMVURVULVUQUIUVLUVQUVMVYTVXFVUJWUAVUOAVUTVX
          FVUJWIVYPVXGUVNVYTVUOVUQVYTVUOVYTFVLVUOFUXIVLUXQUBUXIVLVWAUVOUVPAVUTV
          YPUVRWSZXTVYTVUQVYTVUPVYTVUOVLQZVUPVLQZWUEWUFWUGVUQVUORSOVWDQOOUFPVUR
          RSURXKBCOVUOHNXBXEWCXFZXTVYTVUQWUHXHYAUVSUVTVYSVUMVURVUKVUPVYSVUJVUOV
          ULVUQWNVYSUWGVYSVUKVUPOUFVUJVUOBYQZUWAUWBWUIUWCUWDYTUWEUWFUXHVUFVUEVU
          DYMUXRVUIFVUBUJUWHVGUWIAVUCUYMVUAUDUEZUIPZUYNUYQVUGVUCWUKWIUYRVUHUYLV
          UAUWJVGAWUJUXEUYMUIAUYCWUJUXEWIUYEUXEUWKWCUWLUWMYBAUYMUXCUXEUYOAUYSVK
          UYGUYTAUXEUYEUWNAUABCDEFGHIJKLMNUWQUWOYEAUYPUYAUXCULQVRUXCTSVSUXEUXDT
          SZUXFUXGTSUYTUYHAUXCAUXCUXTVQWAAWULUXDUXEUNUWPPWQSZAUYAWULWUMVSUYHUXD
          UWRWCUWSUXEUXDUXCUWTUXAYE $.
      $}

      prmrec.5 $e |- ( ph -> seq 1 ( + , F ) e. dom ~~> ) $.
      prmrec.6 $e |- ( ph -> sum_ k e. ( ZZ>= ` ( K + 1 ) )
        if ( k e. Prime , ( 1 / k ) , 0 ) < ( 1 / 2 ) ) $.
      prmrec.7 $e |- W = ( p e. NN |-> { n e. ( 1 ... N ) |
        ( p e. Prime /\ p || n ) } ) $.
      $( Lemma for ~ prmrec .  Show by induction that the indexed (nondisjoint)
         union ` W `` k ` is at most the size of the prime reciprocal series.
         The key counting lemma is ~ hashdvds , to show that the number of
         numbers in ` 1 ... N ` that divide ` k ` is at most ` N / k ` .
         (Contributed by Mario Carneiro, 6-Aug-2014.) $)
      prmreclem4 $p |- ( ph -> ( N e. ( ZZ>= ` K ) ->
        ( # ` U_ k e. ( ( K + 1 ) ... N ) ( W ` k ) ) <_
          ( N x. sum_ k e. ( ( K + 1 ) ... N )
            if ( k e. Prime , ( 1 / k ) , 0 ) ) ) ) $=
        ( wcel co cc0 cle vx vj cuz cfv c1 caddc cfz ciun chash cprime cdiv cif
        cv csu cmul wbr wceq oveq2 iuneq1d fveq2d sumeq1d oveq2d breq12d imbi2d
        wi weq cz nncnd mul01d syl5breqr c0 clt nnred ltp1d wb peano2zd syl2anc
        0le0 nnzd syl6eq hash0 3brtr4d a1i wa cfn cn0 wss wral elfzuz peano2nnd
        cn eluznn sylan cdvds crab eleq1 breq1 anbi12d rabbidv ovex rabex fvmpt
        adantl sylan2 ralrimiva adantr sylibr ssfi sylancr hashcl syl nn0red cr
        iunss fzfid syl2an nnrecre sylancl fsumrecl remulcld wn cmin simpl zcnd
        recnd ax-1cn pncan oveq1d eqtrd breq2d readdcld cun simpr eqtri subid1d
        cc cfl fveq2i 1m1e0 oveq1i fzn mpbid 0iun sum0 fzfi ssrab2 syl6eqss 0re
        syldan ifcl 0red ifclda leadd1d eluzp1p1 ifbieq1d fsumm1 eluzelz adddid
        prmnn bitr4d fveq2 sseq1d sylc csn eleqtrrd fzsuc2 iunxun iunxsn uneq2i
        rspcv hashun2 eqbrtrd nndivred flle elfznn rabbiia 1zzd nnnn0d syl6eleq
        nn0uz eqtr4i 0zd hashdvds 0m0e0 nnne0d div0d syl5eq 0z flid ax-mp flcld
        oveq12d 3eqtrd syl5eqr divrecd eqcomd biantrurd eqtr4d iftrue ralrimivw
        con3i rabeq0 sylan9eq iffalse sylan9eqr pm2.61dan leadd2dd letr syl3anc
        letrd mpand sylbid expcom a2d uzind4 com12 ) GEUCUDZQABEUEUFRZGUGRZBUMZ
[encoded data, 4480 characters]
        NVYOVWQVXRVXAVXSXKXPXSXTVUNVWCVUPUXHUXIUXKUXLUXMUXNUXOUXP $.

      $( Lemma for ~ prmrec .  Here we show the inequality ` N / 2 < # M ` by
         decomposing the set ` ( 1 ... N ) ` into the disjoint union of the set
         ` M ` of those numbers that are not divisible by any "large" primes
         (above ` K ` ) and the indexed union over ` K < k ` of the numbers
         ` W `` k ` that divide the prime ` k ` .  By ~ prmreclem4 the second
         of these has size less than ` N ` times the prime reciprocal series,
         which is less than ` 1 / 2 ` by assumption, we find that the
         complementary part ` M ` must be at least ` N / 2 ` large.
         (Contributed by Mario Carneiro, 6-Aug-2014.) $)
      prmreclem5 $p |- ( ph -> ( N / 2 ) < ( ( 2 ^ K ) x. ( sqrt ` N ) ) ) $=
        ( wcel wbr cn cc0 vx vq vr c2 cdiv chash cfv cexp csqrt nnred rehalfcld
        co cmul cr cfn cn0 c1 cfz fzfi cv cdvds wn cprime cdif wral crab ssrab2
        wss eqsstri ssfi mp2an hashcl ax-mp nn0rei a1i 2nn nnnn0d nnexpcl nnrpd
        sylancr rpsqrtcld rpred remulcld clt caddc ciun recnd cuz wa wceq eleq1
        weq breq1 anbi12d rabbidv ovex rabex fvmpt adantl notbid ralbidv elrab2
        wi breq2 ex wrex cle ad2antrl cz wb syl nnuz nnzd ad2antrr mpbird mpbid
        syl2anc ad2antlr simprr syl3anc anbi2d elrab fveq2d cin c0 simprbi elin
        eleq2d imnan sylib sylnibr cif sylancl 0le0 syl6eq cseq cc lelttrd csup
        csu cun 2halvesd peano2nnd elfzuz eluznn syl2an syldan ralrimiva sylibr
        syl6eqss iunss unssd cbvralv syl5bb elun1 sylbir dfrex2 eldifn syl6eleq
        eldifi prmnn elfz5 mtbid ltnled zltp1le elfznn dvdsle mpd elfzle2 letrd
        prmz peano2zd mpbir2and simplr jca sylanbrc eleqtrrd fveq2 eliuni elun2
        elfz rexlimdvaa syl5bir pm2.61d ssrdv eqssd eqtr2d noel simprl biantrud
        hashfz1 syl6bbr ltp1d fzdisj bitrd mtbiri eldifd rspcdva adantlr syl6bi
        expr mtod nrexdv eliun eq0rdv hashun 3eqtrd nn0red fzfid sylan 0re ifcl
        nnrecre sylan2 fsumrecl prmreclem4 nnleltp1 fzn 3bitrd mul01d syl5breqr
        eluz iuneq1 0iun sumeq1 sum0 oveq2d breq12d syl5ibrcom sylbid wo uztric
        hash0 mpjaod eqid ifbieq1d c0ex ifex cli eqeltrd iserex isumrecl halfre
        cdm fzssuz nnrp rpreccld rpge0d ifboth isumless nngt0d ltmul2 syl112anc
        oveq2 wne 2cn 2ne0 mp3an23 breqtrrd ltadd2dd eqbrtrd ltadd1d cmpt oveq1
        divrec breq1d cbvrabv syl5eq supeq1d cbvmptv prmreclem3 ltletrd ) AGUDU
[encoded data, 4560 characters]
        XDWOVVHVVIVVJVVKVVL $.
    $}

    $( Lemma for ~ prmrec .  If the series ` F ` was convergent, there would be
       some ` k ` such that the sum starting from ` k + 1 ` sums to less than
       ` 1 / 2 ` ; this is a sufficient hypothesis for ~ prmreclem5 to produce
       the contradictory bound ` N / 2 < ( 2 ^ k ) sqrt N ` , which is false
       for ` N = 2 ^ ( 2 k + 2 ) ` .  (Contributed by Mario Carneiro,
       6-Aug-2014.) $)
    prmreclem6 $p |- -. seq 1 ( + , F ) e. dom ~~> $=
      ( vk vj caddc c1 wcel cr clt c2 co cv wbr cn cle wtru cc0 wa a1i vy vz vx
      vm vp vr vw cseq cli cdm crn csup cdiv cmin cfv wrex crp wss c0 wral nnuz
      wne wf 1zzd cprime cif nnrecre adantl ifcl sylancl fmptd ffvelrnda serfre
      0re trud frn mp1i fdmi eleqtrri ne0i dm0rn0 necon3bii sylib climdm biimpi
      1nn climrecl simpr adantr wceq weq eleq1 oveq2 ifbieq1d prmnn nnrecred wn
      ifclda elexi fvmpt eqeltrd adantlr nnrp rpreccld rpge0d 0le0 breq2 ifboth
      breqtrrd climserle ralrimiva ralbidv wb breq1 mp2b halfre mpbid cmul cexp
      cn0 2nn sylancr nnnn0d cuz csu cdvds cfz crab notbid syl cc ax-1cn oveq2d
      eqid oveq1d eqtrd breq12d 2cn nncnd addassd rspcev syl2anc wfn ffn rexbii
      ralrn sylibr syl3anc rpreccl ax-mp ltsubrp resubcl suprlub syl31anc rexrn
      suprcl 2rp 2re nnmulcl peano2nnd reexpcl ltnrd cdif cmpt peano2nn nnexpcl
      nnsqcld cbvralv syl5bb cbvrabv simpll cbvsumv syl5eqbr prmreclem5 ex nnzd
      csqrt eluznn sylan simpl recni iserex isumrecl syl6eleq fsumser isumsplit
      elfznn ltadd2d nncn pncan sumeq1d breq1d bitr4d isumsup ltsubaddd 3bitr2d
      adddid mulcom 2timesi oveq2i syl6eqr 3eqtr4d 2nn0 expmuld 3eqtr3d divcan4
      expp1 expcl mp3an23 nnnn0 expaddd 2timesd nnrpd rprege0d 3eqtr4rd 3imtr3d
      2ne0 sqrtsq mtod nrexdv pm2.65i ) FBGUHZUIUJZHZUYBUKZIJULZGKUMLZUNLZDMZUY
      BUOZJNZDOUPZUYDUYHUAMZJNZUAUYEUPZUYLUYDUYHUYFJNZUYOUYDUYFIHZUYGUQHZUYPUYD
      UYEIURZUYEUSVBZUBMZUCMZPNZUBUYEUTZUCIUPZUYQOIUYBVCZUYSUYDVUFQEBGOVAQVDQOI
      EMZBQAOAMZVEHZGVUHUMLZRVFZIBQVUHOHZSVUJIHZRIHZVUKIHVULVUMQVUHVGVHVNVUIVUJ
      RIVIVJCVKVLVMVOZOIUYBVPVQZGUYBUJZHZUYTUYDGOVUQWFOIUYBVUOVRVSVURVUQUSVBUYT
      VUQGVTVUQUSUYEUSUYBWAWBWCVQZUYDUYJVUBPNZDOUTZUCIUPZVUEUYDUYBUIUOZIHUYJVVC
      PNZDOUTZVVBUYDVVCDUYBGOVAUYDVDZUYDUYBVVCUINZUYBWDWEZUYDOIUYIUYBVUFUYDVUOT
      VLZWGUYDVVDDOUYDUYIOHZSZVVCEBGUYIOVAUYDVVJWHZUYDVVGVVJVVHWIUYDVUGOHZVUGBU
      OZIHVVJUYDVVMSZVVNVUGVEHZGVUGUMLZRVFZIVVMVVNVVRWJZUYDAVUGVUKVVROBAEWKVUIV
      VPVUJVVQRVUHVUGVEWLVUHVUGGUMWMWNCVVRIVVRIHZQVVPVVQRIQVVPSVUGVVPVVMQVUGWOV
      HWPVUNQVVPWQSVNTWRVOZWSWTZVHZVVTVVOVWATZXAXBUYDVVMRVVNPNVVJVVORVVRVVNPVVO
      RVVQPNZRRPNZRVVRPNZVVOVVQVVOVUGVVMVUGUQHUYDVUGXCVHXDXEXFVVPVWEVWFVWGVVQRV
      VQVVRRPXGRVVRRPXGXHVJZVWCXIXBXJXKVVAVVEUCVVCIVUBVVCWJVUTVVDDOVUBVVCUYJPXG
      XLUUAUUBZVUDVVAUCIVUFUYBOUUCZVUDVVAXMVUOOIUYBUUDZVUCVUTUBDOUYBVUAUYJVUBPX
      NUUFXOUUEUUGZUCUBUYEUUPUUHZKUQHUYRUUQKUUIUUJUYFUYGUUKVJUYDUYSUYTVUEUYHIHZ
      UYPUYOXMVUPVUSVWLUYDUYQUYGIHZVWNVWMXPUYFUYGUULVJUCUBUAUYEUYHUUMUUNXQVUFVW
      JUYOUYLXMVUOVWKUYNUYKUADOUYBUYMUYJUYHJXGUUOXOWCUYDUYKDOVVKUYKKKUYIXRLZGFL
      ZXSLZVWRJNZVVKVWRVVKKIHVWQXTHZVWRIHUURVVKVWQVVKVWPVVKKOHZVVJVWPOHYAVVLKUY
      IUUSYBZUUTYCZKVWQUVAYBUVBVVKUYIGFLZYDUOZVVREYEZUYGJNZKVXDXSLZKXSLZKUMLZKU
      YIXSLZVXIUVQUOZXRLZJNZUYKVWSVVKVXGVXNVVKVXGSZUDABUYIUEMZUFMZYFNZWQZUEVEGU
      YIYGLZUVCZUTZUFGVXIYGLZYHVXIUGOUGMZVEHVYDVUHYFNZSAVYCYHUVDZUGCVVKVVJVXGVV
      LWIVVKVXIOHVXGVVKVXHVVKVXAVXDXTHVXHOHYAVVKVXDVVJVXDOHZUYDUYIUVEVHZYCZKVXD
      UVFYBZUVGWIVYBVYEWQZUGVYAUTZUFAVYCVYBVYDVXQYFNZWQZUGVYAUTUFAWKZVYLVXSVYNU
      EUGVYAUEUGWKVXRVYMVXPVYDVXQYFXNYIUVHVYOVYNVYKUGVYAVYOVYMVYEVXQVUHVYDYFXGY
      IXLUVIUVJUYDVVJVXGUVKVXOVXEUDMZVEHZGVYPUMLZRVFZUDYEVXFUYGJVXEVYSVVRUDEUDE
      WKVYQVVPVYRVVQRVYPVUGVEWLVYPVUGGUMWMWNUVLVVKVXGWHUVMVYFYNUVNUVOVVKVXGOVVR
      EYEZVXTVVREYEZUYGFLZJNZVYTUYGUNLZWUAJNUYKVVKVXGWUAVXFFLZWUBJNWUCVVKVXFUYG
      WUAVVKVVREBVXDVXEVXEYNZVVKVXDVYHUVPVVKVUGVXEHZSZVVMVVSVVKVYGWUGVVMVYHVUGV
      XDUVRUVSVWBYJVVTWUHVWATVVKUYDFBVXDUHUYCHUYDVVJUVTZVVKEBGVXDOVAVYHVVKVVMSZ
      VVNVVRYKVVMVVSVVKVWBVHZVVRYKHZWUJVVRVWAUWAZTZXAUWBXQUWCVWOVVKXPTZVVKWUAUY
      JIVVKVVREBGUYIVVKVUGVXTHZSZVVMVVSWUPVVMVVKVUGUYIUWGVHVWBYJVVKUYIOGYDUOVVL
      VAUWDWULWUQWUMTUWEZVVIXAZUWHVVKVYTWUEWUBJVVKVYTGVXDGUNLZYGLZVVREYEZVXFFLW
      UEVVKVVREBGVXDVXEOVAWUFVYHWUKWUNWUIUWFVVKWVBWUAVXFFVVKWVAVXTVVREVVKWUTUYI
      GYGVVKUYIYKHZGYKHZWUTUYIWJVVJWVCUYDUYIUWIVHZYLUYIGUWJVJYMUWKYOYPUWLUWMVVK
      VYTUYGWUAUYDVYTIHVVJUYDVYTUYFIUYDUCVVRDEBUYBGOVAUYBYNVVFVWCVWDVWHVWIUWNZV
      WMXAWIWUOWUSUWOVVKWUDUYHWUAUYJJVVKVYTUYFUYGUNUYDVYTUYFWJVVJWVFWIYOWURYQUW
      PVVKVXJVWRVXMVWRJVVKVXJVWRKXRLZKUMLZVWRVVKVXIWVGKUMVVKKVXDKXRLZXSLKVWQGFL
      ZXSLZVXIWVGVVKWVIWVJKXSVVKKVXDXRLZVWPKGXRLZFLZWVIWVJVVKKUYIGKYKHZVVKYRTZW
      VEWVDVVKYLTZUWQVVKVXDYKHWVOWVIWVLWJVVKVXDVYHYSYRVXDKUWRVJVVKWVJVWPGGFLZFL
      WVNVVKVWPGGVVKVWPVXBYSWVQWVQYTWVMWVRVWPFGYLUWSUWTUXAUXBYMVVKKVXDKWVPKXTHV
      VKUXCTVYIUXDVVKWVOVWTWVKWVGWJYRVXCKVWQUXGYBUXEYOVVKVWRYKHZWVHVWRWJZVVKWVO
      VWTWVSYRVXCKVWQUXHYBWVSWVOKRVBWVTYRUXQVWRKUXFUXIYJYPVVKKUYIVXDFLZXSLVXKVX
      HXRLVWRVXMVVKKUYIVXDWVPVYIVVJUYIXTHUYDUYIUXJVHUXKVVKVWQWWAKXSVVKVWQUYIUYI
      FLZGFLWWAVVKVWPWWBGFVVKUYIWVEUXLYOVVKUYIUYIGWVEWVEWVQYTYPYMVVKVXLVXHVXKXR
      VVKVXHIHRVXHPNSVXLVXHWJVVKVXHVVKVXHVYJUXMUXNVXHUXRYJYMUXOYQUXPUXSUXTUYA
      $.
  $}

  ${
    $d k m n $.
    prmrec.f $e |- F = ( n e. NN |->
      sum_ k e. ( Prime i^i ( 1 ... n ) ) ( 1 / k ) ) $.
    $( The sum of the reciprocals of the primes diverges.  Theorem 1.13 in
       [ApostolNT] p. 18.  This is the "second" proof at
       ~ http://en.wikipedia.org/wiki/Prime_harmonic_series , attributed to
       Paul Erd&#337;s.  This is Metamath 100 proof #81.  (Contributed by Mario
       Carneiro, 6-Aug-2014.) $)
    prmrec $p |- -. F e. dom ~~> $=
      ( vm wcel cn cv cprime c1 cdiv co cc0 cif cmpt wceq csu cfv cc wa cli cdm
      caddc cseq eleq1 oveq2 ifbieq1d cbvmptv prmreclem6 cfz cin wss cuz cfn wo
      wral inss2 sseli elfznn nnrecre recnd 3syl rgen pm3.2i sumss2 mp2an rbaib
      fzfi olci elin ifbid sumeq2i eqtri adantl wtru prmnn syl 0cnd ifclda trud
      wn fvmpt2 sylancl id syl6eleq a1i fsumser syl5eq mpteq2ia wfn cz 1z seqfn
      nnuz ax-mp fneq2i mpbir dffn5 mpbi 3eqtr4i eleq1i mtbir ) CUAUBZFUCEGEHZI
      FZJXDKLZMNZOZJUDZXCFAXHEAGXGAHZIFZJXJKLZMNZXDXJPXEXKXFXLMXDXJIUEXDXJJKUFU
      GUHZUICXIXCBGIJBHZUJLZUKZXLAQZOBGXOXIRZOZCXIBGXRXSXOGFZXRXPXMAQZXSXRXPXJX
      QFZXLMNZAQZYBXQXPULZXLSFZAXQUPZTXPJUMRZULZXPUNFZUOXRYEPYFYHIXPUQZYGAXQYCX
      JXPFZXJGFZYGXQXPXJYLURXJXOUSZYNXLXJUTVAZVBVCVDYKYJJXOVHVIXQXPXLAJVEVFXPYD
      XMAYMYCXKXLMYCXKYMXJIXPVJVGVKVLVMYAXMAXHJXOYAYMTZYNXMSFZXJXHRXMPYMYNYAYOV
      NYRVOXKXLMSXKYGVOXKYNYGXJVPYPVQVNVOXKWATVRVSVTZAGXMSXHXNWBWCYAXOGYIYAWDWN
      WEYRYQYSWFWGWHWIDXIGWJZXIXTPYTXIYIWJZJWKFUUAWLUCXHJWMWOGYIXIWNWPWQBGXIWRW
      SWTXAXB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Fundamental theorem of arithmetic
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d e f g k n p q x y z $.  $d q x y F $.  $d e f g q x y M $.  $d q y ph $.
    $d n p q x G $.  $d n p q x N $.  $d p P $.  $d f g n q x y R $.
    1arith.1 $e |- M = ( n e. NN |-> ( p e. Prime |-> ( p pCnt n ) ) ) $.
    $( Lemma for ~ 1arith .  (Contributed by Mario Carneiro, 30-May-2014.) $)
    1arithlem1 $p |- ( N e. NN ->
                       ( M ` N ) = ( p e. Prime |-> ( p pCnt N ) ) ) $=
      ( cprime cv cpc co cmpt cn wceq oveq2 mpteq2dv zex prmz ssriv ssexi mptex
      cz fvmpt ) ACDFDGZAGZHIZJDFUBCHIZJKBUCCLDFUDUEUCCUBHMNEDFUEFTOAFTUCPQRSUA
      $.

    $( Lemma for ~ 1arith .  (Contributed by Mario Carneiro, 30-May-2014.) $)
    1arithlem2 $p |- ( ( N e. NN /\ P e. Prime ) ->
                       ( ( M ` N ) ` P ) = ( P pCnt N ) ) $=
      ( cn wcel cprime cfv cv cpc cmpt 1arithlem1 fveq1d oveq1 eqid ovex fvmpt
      co sylan9eq ) DGHZAIHADCJZJAEIEKZDLTZMZJADLTZUBAUCUFBCDEFNOEAUEUGIUFUDADL
      PUFQADLRSUA $.

    $( Lemma for ~ 1arith .  (Contributed by Mario Carneiro, 30-May-2014.) $)
    1arithlem3 $p |- ( N e. NN -> ( M ` N ) : Prime --> NN0 ) $=
      ( cn wcel cprime cn0 cfv wf cv cpc cmpt pccl ancoms eqid fmptd 1arithlem1
      co feq1d mpbird ) CFGZHICBJZKHIDHDLZCMTZNZKUCDHUFIUGUEHGUCUFIGUECOPUGQRUC
      HIUDUGABCDESUAUB $.

    ${
      1arithlem4.2 $e |- G = ( y e. NN |->
                               if ( y e. Prime , ( y ^ ( F ` y ) ) , 1 ) ) $.
      1arithlem4.3 $e |- ( ph -> F : Prime --> NN0 ) $.
      1arithlem4.4 $e |- ( ph -> N e. NN ) $.
      1arithlem4.5 $e |- ( ( ph /\ ( q e. Prime /\ N <_ q ) ) ->
                           ( F ` q ) = 0 ) $.
      $( Lemma for ~ 1arith .  (Contributed by Mario Carneiro, 30-May-2014.) $)
      1arithlem4 $p |- ( ph -> E. x e. NN F = ( M ` x ) ) $=
        ( cfv cn wceq cn0 cprime cmul c1 cseq wcel cv wrex wf ffvelrnda pcmptcl
        ralrimiva simprd ffvelrnd wral wa cpc cle wbr cc0 cif 1arithlem2 adantr
        co sylan simpr fveq2 pcmpt nnred prmz zred adantl ifid anassrs syl5reqr
        cr ifeq2d iftrue lecasei 3eqtrrd wb 1arithlem3 syl eqfnfv syl2an mpbird
        wfn ffn syl2anc eqeq2d rspcev ) AHUAFUBUCZPZQUDZEWKGPZRZEBUEZGPZRZBQUFA
        QQHWJAQQFUGQQWJUGACUEZEPZCFLAWSSUDZCTATSWREMUHUJZUIUKNULZAWNIUEZEPZXCWM
        PZRZITUMZAXFITAXCTUDZUNZXEXCWKUOVBZXCHUPUQZXDURUSZXDAWLXHXEXJRXBXCDGWKJ
        KUTVCXIWSXDXCCFHLAWTCTUMXHXAVAAHQUDXHNVAZAXHVDWRXCEVEVFXIXLXDRZHXCXIHXM
        VGXHXCVNUDAXHXCXCVHVIVJXIHXCUPUQZUNZXDXKXDXDUSXLXKXDVKXPXKXDURXDAXHXOXD
        URROVLVOVMXKXNXIXKXDURVPVJVQVRUJATSEUGZTSWMUGZWNXGVSZMAWLXRXBDGWKJKVTWA
        XQETWEWMTWEXSXRTSEWFTSWMWFITEWMWBWCWGWDWQWNBWKQWOWKRWPWMEWOWKGVEWHWIWG
        $.
    $}

    1arith.2 $e |- R = { e e. ( NN0 ^m Prime ) | ( `' e " NN ) e. Fin } $.
    $( Fundamental theorem of arithmetic, where a prime factorization is
       represented as a sequence of prime exponents, for which only finitely
       many primes have nonzero exponent.  The function ` M ` maps the set of
       positive integers one-to-one onto the set of prime factorizations
       ` R ` .  (Contributed by Paul Chapman, 17-Nov-2012.)  (Proof shortened
       by Mario Carneiro, 30-May-2014.) $)
    1arith $p |- M : NN -1-1-onto-> R $=
      ( vx vq cn cv cfv wceq wcel cprime cn0 wa wbr cle cr vy vf vk vg wf1o wf1
      wfo wf wi wral wfn cpc co cmpt cz prmz ssriv ssexi mptex fnmpti cmap ccnv
      zex cima cfn 1arithlem3 nn0ex elmap sylibr cfz wss fzfi ffn elpreima 3syl
      c1 wb 1arithlem2 eleq1d cdvds dvdsle syl2anr pcelnn ancoms cuz prmnn nnuz
      id syl6eleq elfz5 3imtr4d sylbid expimpd ssrdv ssfi sylancr cnveq imaeq1d
      nnz elrab2 sylanbrc rgen mpbir2an adantlr adantll eqeq12d ralbidva eqfnfv
      ffnfv syl2an nnnn0 pc11 3bitr4d biimpd rgen2a dff13 wrex cexp cif cc0 cfl
      caddc eqid simplbi ad2antrr simplr 0re ifcl sylancl max1 flge0nn0 syl2anc
      sylib nn0p1nn syl wn clt adantr nnred zssre simprl sseldi lelttrd ltletrd
      sstri max2 flltp1 simprr ltnled mpbid biantrurd bitr4d rspccv wo ffvelrnd
      breq1 mtod elnn0 ord mpd 1arithlem4 cdm cnvimass syl6eqss syl5ss fimaxre2
      fdm simprbi r19.29a dffo3 df-f1o ) JADUEJADUFZJADUGZUVLJADUHZHKZDLZUAKZDL
      ZMZUVOUVQMZUIZUAJUJHJUJUVNDJUKUVPANZHJUJCJEOEKCKULUMZUNDEOUWCOUOVCIOUOIKZ
      UPZUQZURZUSFUTUWBHJUVOJNZUVPPOVAUMZNZUVPVBZJVDZVENZUWBUWHOPUVPUHZUWJCDUVO
      EFVFZPOUVPVGUWGVHVIUWHVPUVOVJUMZVENUWLUWPVKUWMVPUVOVLUWHIUWLUWPUWHUWDUWLN
      ZUWDONZUWDUVPLZJNZQZUWDUWPNZUWHUWNUVPOUKZUWQUXAVQUWOOPUVPVMZOUWDJUVPVNVOU
      WHUWRUWTUXBUWHUWRQZUWTUWDUVOULUMZJNZUXBUXEUWSUXFJUWDCDUVOEFVRZVSUXEUWDUVO
      VTRZUWDUVOSRZUXGUXBUWRUWDUONUWHUXIUXJUIUWHUWEUWHWHUWDUVOWAWBUWRUWHUXGUXIV
      QUWDUVOWCWDUWRUWDVPWELZNUVOUONUXBUXJVQUWHUWRUWDJUXKUWDWFWGWIUVOWSUWDVPUVO
      WJWBWKWLWMWLWNUWPUWLWOWPBKZVBZJVDZVENZUWMBUVPUWIAUXLUVPMZUXNUWLVEUXPUXMUW
      KJUXLUVPWQWRVSGWTXAXBHJADXIXCZUWAHUAJUWHUVQJNZQZUVSUVTUXSUWSUWDUVRLZMZIOU
      JZUXFUWDUVQULUMZMZIOUJZUVSUVTUXSUYAUYDIOUXSUWRQUWSUXFUXTUYCUWHUWRUWSUXFMU
      XRUXHXDUXRUWRUXTUYCMUWHUWDCDUVQEFVRXEXFXGUWHUWNOPUVRUHZUVSUYBVQZUXRUWOCDU
      VQEFVFUWNUXCUVROUKUYGUYFUXDOPUVRVMIOUVPUVRXHXJXJUWHUVOPNUVQPNUVTUYEVQUXRU
      VOXKUVQXKUVOUVQIXLXJXMXNXOHUAJADXPXCUVMUVNUBKZUVPMHJXQZUBAUJUXQUYIUBAUYHA
      NZUCKZUVQSRZUCUYHVBZJVDZUJZUYIUATUYJUVQTNZQZUYOQZHUDCUYHUDJUDKZONUYSUYSUY
      HLXRUMVPXSUNZDXTUVQSRZUVQXTXSZYALZVPYBUMZIEFUYTYCUYJOPUYHUHZUYPUYOUYJUYHU
      WINZVUEUYJVUFUYNVENZUXOVUGBUYHUWIAUXLUYHMZUXNUYNVEVUHUXMUYMJUXLUYHWQWRVSG
      WTZYDPOUYHVGUWGVHYMZYEZUYRVUCPNZVUDJNZUYRVUBTNZXTVUBSRZVULUYRUYPXTTNZVUNU
      YJUYPUYOYFZYGVUAUVQXTTYHYIZUYRVUPUYPVUOYGVUQXTUVQYJWPVUBYKYLVUCYNYOZUYRUW
      RVUDUWDSRZQZQZUWDUYHLZJNZYPVVCXTMZVVBVVDUWDUVQSRZVVBUVQUWDYQRVVFYPVVBUVQV
      UDUWDUYRUYPVVAVUQYRZVVBVUDUYRVUMVVAVUSYRYSZVVBOTUWDOUOTUWFYTUUEZUYRUWRVUT
      UUAZUUBZVVBUVQVUBVUDVVGUYRVUNVVAVURYRZVVHVVBVUPUYPUVQVUBSRYGVVGXTUVQUUFWP
      VVBVUNVUBVUDYQRVVLVUBUUGYOUUCUYRUWRVUTUUHUUDVVBUVQUWDVVGVVKUUIUUJVVBVVDUW
      DUYNNZVVFVVBVVDUWRVVDQZVVMVVBUWRVVDVVJUUKVVBVUEUYHOUKVVMVVNVQUYRVUEVVAVUK
      YRZOPUYHVMOUWDJUYHVNVOUULVVBUYOVVMVVFUIUYQUYOVVAYFUYLVVFUCUWDUYNUYKUWDUVQ
      SUUPUUMYOWLUUQVVBVVDVVEVVBVVCPNVVDVVEUUNVVBOPUWDUYHVVOVVJUUOVVCUURYMUUSUU
      TUVAUYJUYNTVKVUGUYOUATXQUYJUYNUYHUVBZTUYHJUVCUYJVVPOTUYJVUEVVPOMVUJOPUYHU
      VGYOVVIUVDUVEUYJVUFVUGVUIUVHUAUCUYNUVFYLUVIXBHUBJADUVJXCJADUVKXC $.

    $( Fundamental theorem of arithmetic, where a prime factorization is
       represented as a finite monotonic 1-based sequence of primes.  Every
       positive integer has a unique prime factorization.  Theorem 1.10 in
       [ApostolNT] p. 17.  This is Metamath 100 proof #80.  (Contributed by
       Paul Chapman, 17-Nov-2012.)  (Revised by Mario Carneiro,
       30-May-2014.) $)
    1arith2 $p |- A. z e. NN E! g e. R ( M ` z ) = g $=
      ( cv cfv wceq wreu cn wcel ccnv wf1o 1arith f1ocnv ax-mp f1ocnvfvb mp3an1
      f1ofveu mpan wb reubidva mpbird rgen ) AJZFKDJZLZDBMZANUINOZULUJFPZKUILZD
      BMZBNUNQZUMUPNBFQZUQBCEFGHIRZNBFSTDBNUIUNUCUDUMUKUODBURUMUJBOUKUOUEUSNBUI
      UJFUAUBUFUGUH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Lagrange's four-square theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Z[i] $.

  $( Extend class notation with the set of gaussian integers. $)
  cgz $a class Z[i] $.

  $( Define the set of gaussian integers, which are complex numbers whose real
     and imaginary parts are integers.  (Note that the ` [ _i ] ` is actually
     part of the symbol token and has no independent meaning.)  (Contributed by
     Mario Carneiro, 14-Jul-2014.) $)
  df-gz $a |- Z[i] = { x e. CC | ( ( Re ` x ) e. ZZ /\ ( Im ` x ) e. ZZ ) } $.

  ${
    $d x A $.
    $( Elementhood in the gaussian integers.  (Contributed by Mario Carneiro,
       14-Jul-2014.) $)
    elgz $p |- ( A e. Z[i] <->
      ( A e. CC /\ ( Re ` A ) e. ZZ /\ ( Im ` A ) e. ZZ ) ) $=
      ( vx cgz wcel cc cre cfv cz cim wa w3a cv wceq fveq2 eleq1d anbi12d df-gz
      elrab2 3anass bitr4i ) ACDAEDZAFGZHDZAIGZHDZJZJUAUCUEKBLZFGZHDZUGIGZHDZJU
      FBAECUGAMZUIUCUKUEULUHUBHUGAFNOULUJUDHUGAINOPBQRUAUCUEST $.
  $}

  $( A gaussian integer is a complex number.  (Contributed by Mario Carneiro,
     14-Jul-2014.) $)
  gzcn $p |- ( A e. Z[i] -> A e. CC ) $=
    ( cgz wcel cc cre cfv cz cim elgz simp1bi ) ABCADCAEFGCAHFGCAIJ $.

  $( An integer is a gaussian integer.  (Contributed by Mario Carneiro,
     14-Jul-2014.) $)
  zgz $p |- ( A e. ZZ -> A e. Z[i] ) $=
    ( cz wcel cc cre cfv cim cgz zcn zre rered eqeltrd cc0 reim0d syl6eqel elgz
    id 0z syl3anbrc ) ABCZADCAEFZBCAGFZBCAHCAITUAABTAAJZKTQLTUBMBTAUCNROAPS $.

  $( ` _i ` is a gaussian integer.  (Contributed by Mario Carneiro,
     14-Jul-2014.) $)
  igz $p |- _i e. Z[i] $=
    ( ci cgz wcel cc cre cfv cz cim ax-icn cc0 rei 0z eqeltri imi elgz mpbir3an
    c1 1z ) ABCADCAEFZGCAHFZGCISJGKLMTQGNRMAOP $.

  $( The gaussian integers are closed under negation.  (Contributed by Mario
     Carneiro, 14-Jul-2014.) $)
  gznegcl $p |- ( A e. Z[i] -> -u A e. Z[i] ) $=
    ( cgz wcel cneg cre cfv cim gzcn negcld renegd elgz simp2bi znegcld eqeltrd
    cc cz imnegd simp3bi syl3anbrc ) ABCZADZOCUAEFZPCUAGFZPCUABCTAAHZITUBAEFZDP
    TAUDJTUETAOCZUEPCZAGFZPCZAKZLMNTUCUHDPTAUDQTUHTUFUGUIUJRMNUAKS $.

  $( The gaussian integers are closed under conjugation.  (Contributed by Mario
     Carneiro, 14-Jul-2014.) $)
  gzcjcl $p |- ( A e. Z[i] -> ( * ` A ) e. Z[i] ) $=
    ( cgz wcel ccj cfv cc cre cz cim gzcn cjcld recjd elgz simp2bi eqeltrd cneg
    imcjd simp3bi znegcld syl3anbrc ) ABCZADEZFCUBGEZHCUBIEZHCUBBCUAAAJZKUAUCAG
    EZHUAAUELUAAFCZUFHCZAIEZHCZAMZNOUAUDUIPHUAAUEQUAUIUAUGUHUJUKRSOUBMT $.

  $( The gaussian integers are closed under addition.  (Contributed by Mario
     Carneiro, 14-Jul-2014.) $)
  gzaddcl $p |- ( ( A e. Z[i] /\ B e. Z[i] ) -> ( A + B ) e. Z[i] ) $=
    ( cgz wcel wa caddc co cc cre cfv cim gzcn syl2an wceq elgz simp2bi eqeltrd
    cz zaddcl simp3bi addcl readd imadd syl3anbrc ) ACDZBCDZEZABFGZHDZUHIJZRDUH
    KJZRDUHCDUEAHDZBHDZUIUFALZBLZABUAMUGUJAIJZBIJZFGZRUEULUMUJURNUFUNUOABUBMUEU
    PRDZUQRDZURRDUFUEULUSAKJZRDZAOZPUFUMUTBKJZRDZBOZPUPUQSMQUGUKVAVDFGZRUEULUMU
    KVGNUFUNUOABUCMUEVBVEVGRDUFUEULUSVBVCTUFUMUTVEVFTVAVDSMQUHOUD $.

  $( The gaussian integers are closed under multiplication.  (Contributed by
     Mario Carneiro, 14-Jul-2014.) $)
  gzmulcl $p |- ( ( A e. Z[i] /\ B e. Z[i] ) -> ( A x. B ) e. Z[i] ) $=
    ( cgz wcel wa cmul co cc cre cfv cz gzcn syl2an wceq simp2bi zmulcl simp3bi
    cim elgz eqeltrd mulcl cmin remul zsubcld caddc immul zaddcld syl3anbrc ) A
    CDZBCDZEZABFGZHDZULIJZKDULRJZKDULCDUIAHDZBHDZUMUJALZBLZABUAMUKUNAIJZBIJZFGZ
    ARJZBRJZFGZUBGZKUIUPUQUNVFNUJURUSABUCMUKVBVEUIUTKDZVAKDZVBKDUJUIUPVGVCKDZAS
    ZOZUJUQVHVDKDZBSZOZUTVAPMUIVIVLVEKDUJUIUPVGVIVJQZUJUQVHVLVMQZVCVDPMUDTUKUOU
    TVDFGZVCVAFGZUEGZKUIUPUQUOVSNUJURUSABUFMUKVQVRUIVGVLVQKDUJVKVPUTVDPMUIVIVHV
    RKDUJVOVNVCVAPMUGTULSUH $.

  $( Construct a gaussian integer from real and imaginary parts.  (Contributed
     by Mario Carneiro, 16-Jul-2014.) $)
  gzreim $p |- ( ( A e. ZZ /\ B e. ZZ ) -> ( A + ( _i x. B ) ) e. Z[i] ) $=
    ( cz wcel cgz ci cmul co caddc zgz igz gzmulcl sylancr gzaddcl syl2an ) ACD
    AEDFBGHZEDZAPIHEDBCDZAJRFEDBEDQKBJFBLMAPNO $.

  $( The gaussian integers are closed under subtraction.  (Contributed by Mario
     Carneiro, 14-Jul-2014.) $)
  gzsubcl $p |- ( ( A e. Z[i] /\ B e. Z[i] ) -> ( A - B ) e. Z[i] ) $=
    ( cgz wcel wa cneg caddc co cmin cc wceq gzcn negsub syl2an gznegcl gzaddcl
    sylan2 eqeltrrd ) ACDZBCDZEABFZGHZABIHZCSAJDBJDUBUCKTALBLABMNTSUACDUBCDBOAU
    APQR $.

  $( The squared norm of a gaussian integer is an integer.  (Contributed by
     Mario Carneiro, 16-Jul-2014.) $)
  gzabssqcl $p |- ( A e. Z[i] -> ( ( abs ` A ) ^ 2 ) e. NN0 ) $=
    ( cgz wcel cabs cfv c2 cexp co cre cim caddc cn0 gzcn absvalsq2d cz cc elgz
    simp2bi zsqcl2 syl simp3bi nn0addcld eqeltrd ) ABCZADEFGHAIEZFGHZAJEZFGHZKH
    LUDAAMNUDUFUHUDUEOCZUFLCUDAPCZUIUGOCZAQZRUESTUDUKUHLCUDUJUIUKULUAUGSTUBUC
    $.

  ${
    4sqlem5.2 $e |- ( ph -> A e. ZZ ) $.
    4sqlem5.3 $e |- ( ph -> M e. NN ) $.
    4sqlem5.4 $e |- B = ( ( ( A + ( M / 2 ) ) mod M ) - ( M / 2 ) ) $.
    $( Lemma for ~ 4sq .  (Contributed by Mario Carneiro, 15-Jul-2014.) $)
    4sqlem5 $p |- ( ph -> ( B e. ZZ /\ ( ( A - B ) / M ) e. ZZ ) ) $=
      ( cz wcel cmin co cdiv zcnd c2 caddc cmo cc recnd subcld eqeltrrd zred cr
      nnred readdcld nnrpd modcld syl5eqel nncand cmul nnne0d divcan1d subsub3d
      oveq2i syl5eq oveq1d crp moddifz syl2anc eqeltrd nnzd zmulcld zsubcld jca
      rehalfcld ) ACHIBCJKZDLKZHIABVEJKCHABCABEMZACBDNLKZOKZDPKZVHJKZQGAVJVHAVJ
      AVIDABVHABEUAADADFUCZVDZUDZADFUEZUFRZAVHVMRZSUGZUHABVEEAVFDUIKVEHAVEDABCV
      GVRSADVLRADFUJUKAVFDAVFVIVJJKZDLKZHAVEVSDLAVEBVKJKVSCVKBJGUMABVJVHVGVPVQU
      LUNUOAVIUBIDUPIVTHIVNVOVIDUQURUSZADFUTVATVBTWAVC $.

    $( Lemma for ~ 4sq .  (Contributed by Mario Carneiro, 15-Jul-2014.) $)
    4sqlem6 $p |- ( ph -> ( -u ( M / 2 ) <_ B /\ B < ( M / 2 ) ) ) $=
      ( c2 cdiv co cneg cle wbr clt cc0 cmin caddc cmo wcel syl2anc nnred nnrpd
      0red zred rehalfcld readdcld modcld cr crp modge0 lesub1dd df-neg 3brtr4g
      modlt nncnd 2halvesd breqtrrd ltsubaddd mpbird syl5eqbr jca ) ADHIJZKZCLM
      CVBNMAOVBPJBVBQJZDRJZVBPJZVCCLAOVEVBAUCAVDDABVBABEUDADADFUAUEZUFZADFUBZUG
      ZVGAVDUHSZDUISZOVELMVHVIVDDUJTUKVBULGUMACVFVBNGAVFVBNMVEVBVBQJZNMAVEDVMNA
      VKVLVEDNMVHVIVDDUNTADADFUOUPUQAVEVBVBVJVGVGURUSUTVA $.

    $( Lemma for ~ 4sq .  (Contributed by Mario Carneiro, 15-Jul-2014.) $)
    4sqlem7 $p |- ( ph -> ( B ^ 2 ) <_ ( ( ( M ^ 2 ) / 2 ) / 2 ) ) $=
      ( c2 cexp co cdiv cle wbr cneg cz wcel cmin simpld cr cc0 nnrpd rphalfcld
      4sqlem5 zred rpred clt 4sqlem6 simprd ltled lenegcon1d wa lenegsq syl3anc
      wb rpge0d mpbi2and cmul 2cnd sqvald oveq2d nncnd wne 2ne0 sqdivd divdiv1d
      a1i sqcld 3eqtr4d breqtrd ) ACHIJZDHKJZHIJZDHIJZHKJHKJZLACVKLMZCNVKLMZVJV
      LLMZACVKACACOPBCQJDKJOPABCDEFGUCRUDZAVKADADFUAUBZUEZAVKNCLMZCVKUFMZABCDEF
      GUGZUHUIAVKCVTVRAWAWBWCRUJACSPVKSPTVKLMVOVPUKVQUNVRVTAVKVSUOCVKULUMUPAVMH
      HIJZKJVMHHUQJZKJVLVNAWDWEVMKAHAURZUSUTADHADFVAZWFHTVBAVCVFZVDAVMHHADWGVGW
      FWFWHWHVEVHVI $.

    $( Lemma for ~ 4sq .  (Contributed by Mario Carneiro, 15-Jul-2014.) $)
    4sqlem8 $p |- ( ph -> M || ( ( A ^ 2 ) - ( B ^ 2 ) ) ) $=
      ( cmin co cdvds wbr c2 cexp cz wcel zsubcld syl3anc syl2anc cc zcnd caddc
      cdiv 4sqlem5 simprd cc0 wne wb nnzd nnne0d simpld dvdsval2 mpbird zaddcld
      cmul dvdsmul2 wceq subsq breqtrrd wa wi zsqcl syl dvdstr mp2and ) ADBCHIZ
      JKZVEBLMIZCLMIZHIZJKZDVIJKZAVFVEDUBINOZACNOZVLABCDEFGUCZUDADNOZDUEUFVENOZ
      VFVLUGADFUHZADFUIABCEAVMVLVNUJZPZDVEUKQULAVEBCUAIZVEUNIZVIJAVTNOVPVEWAJKA
      BCEVRUMVSVTVEUORABSOCSOVIWAUPABETACVRTBCUQRURAVOVPVINOVFVJUSVKUTVQVSAVGVH
      ABNOVGNOEBVAVBAVMVHNOVRCVAVBPDVEVIVCQVD $.

    ${
      4sqlem9.5 $e |- ( ( ph /\ ps ) -> ( B ^ 2 ) = 0 ) $.
      $( Lemma for ~ 4sq .  (Contributed by Mario Carneiro, 15-Jul-2014.) $)
      4sqlem9 $p |- ( ( ph /\ ps ) -> ( M ^ 2 ) || ( A ^ 2 ) ) $=
        ( cdvds c2 cexp co cdiv cz wcel cmin cc0 wb adantr wa cc 4sqlem5 simpld
        wbr wceq zcnd sqeq0 biimpa syldan oveq2d subid1d oveq1d simprd eqeltrrd
        syl eqtrd wne nnzd nnne0d dvdsval2 syl3anc mpbird dvdssq syl2anc mpbid
        ) ABUAZECJUEZEKLMCKLMJUEZVGVHCENMZOPZVGCDQMZENMZVJOVGVLCENVGVLCRQMCVGDR
        CQABDKLMRUFZDRUFZIAVNVOADUBPVNVOSADADOPZVMOPZACDEFGHUCZUDUGDUHUPUIUJUKV
        GCVGCACOPZBFTZUGULUQUMAVQBAVPVQVRUNTUOAVHVKSZBAEOPZERURVSWAAEGUSZAEGUTF
        ECVAVBTVCVGWBVSVHVISAWBBWCTVTECVDVEVF $.
    $}

    4sqlem10.5 $e |- ( ( ph /\ ps ) ->
      ( ( ( ( M ^ 2 ) / 2 ) / 2 ) - ( B ^ 2 ) ) = 0 ) $.
    $( Lemma for ~ 4sq .  (Contributed by Mario Carneiro, 16-Jul-2014.) $)
    4sqlem10 $p |- ( ( ph /\ ps ) ->
      ( M ^ 2 ) || ( ( A ^ 2 ) - ( ( ( M ^ 2 ) / 2 ) / 2 ) ) ) $=
      ( c2 cexp co cdiv cmul cmin cdvds wbr cc0 cz wcel wa cmo wceq adantr cneg
      caddc cn nnred rehalfcld recnd negnegd wn 4sqlem5 simpld zred cle 4sqlem6
      clt simprd ltned neneqd wo 2cnd sqvald oveq2d nncnd wne 2ne0 sqdivd sqcld
      a1i divdiv1d 3eqtr4d halfcld zcnd subeq0d eqtr2d cc wb sqeqor syl2anc ord
      mpbid eqeltrrd znegcld zaddcld nnrpd modcld 0cnd df-neg subcan2d dvdsval3
      mpd 3eqtr3g mpbird dvdssq nnne0d dvdsmulcr syl112anc eqbrtrd wi zsqcl syl
      nnzd zmulcld dvds2sub mp2and oveq1d subdid 2halvesd pnpcan2d eqtr3d subsq
      syl3anc 3eqtr2d breqtrd ) ABUAZEJKLZCEJMLZUFLZJKLZXTENLZOLZCJKLZXRJMLZJML
      ZOLZPXQXRYAPQZXRYBPQZXRYCPQZXQEXTPQZYHXQYKXTEUBLZRUCZXQYLRXSXQYLXQXTEXQXT
      XQCXSACSTBFUDZXQXSUEZUEXSSXQXSXQXSXQEXQEAEUGTZBGUDZUHUIUJZUKXQYOXQDYOSXQD
      XSUCZULDYOUCZXQDXSXQDXSXQDXQDSTZCDOLEMLSTZAUUAUUBUABACDEFGHUMUDUNZUOXQYOD
      UPQZDXSURQZAUUDUUEUABACDEFGHUQUDUSUTVAXQYSYTXQDJKLZXSJKLZUCZYSYTVBZXQUUGY
      FUUFXQXRJJKLZMLXRJJNLZMLUUGYFXQUUJUUKXRMXQJXQVCZVDVEXQEJXQEYQVFZUULJRVGXQ
      VHVKZVIXQXRJJXQEUUMVJZUULUULUUNUUNVLVMZXQYFUUFXQYEXQXRUUOVNVNXQDXQDUUCVOZ
      VJIVPVQXQDVRTXSVRTZUUHUUIVSUUQYRDXSVTWAWCWBWMZUUCWDWEWDWFZUOXQEYQWGWHUJXQ
      WIYRXQDYOYLXSOLRXSOLUUSHXSWJWNWKXQYPXTSTZYKYMVSYQUUTEXTWLWAWOZXQESTZUVAYK
      YHVSXQEYQXDZUUTEXTWPWAWCXQXREENLZYBPXQEUUMVDXQUVEYBPQZYKUVBXQUVCUVAUVCERV
      GUVFYKVSUVDUUTUVDXQEYQWQEEXTWRWSWOWTXQXRSTZYASTZYBSTYHYIUAYJXAXQUVCUVGUVD
      EXBXCXQUVAUVHUUTXTXBXCXQXTEUUTUVDXEXRYAYBXFXNXGXQYCXTXTNLZYBOLXTXTEOLZNLZ
      YGXQYAUVIYBOXQXTXQXTUUTVOZVDXHXQXTXTEUVLUVLUUMXIXQUVKXTCXSOLZNLZYDUUGOLZY
      GXQUVJUVMXTNXQXTXSXSUFLZOLUVJUVMXQUVPEXTOXQEUUMXJVEXQCXSXSXQCYNVOZYRYRXKX
      LVEXQCVRTUURUVOUVNUCUVQYRCXSXMWAXQUUGYFYDOUUPVEXOXOXP $.
  $}

  ${
    $d a b c d n w x y z $.  $d a b c d n B $.  $d n E $.  $d n G $.  $d n H $.
    $d a b c d j k n v A $.  $d a b c d n C $.  $d a b c d n D $.  $d j n F $.
    $d a b c d i k n u M $.  $d k m n u v N $.  $d a b c d i j k m n u v P $.
    $d a b c d j k m n u v ph $.  $d a b c d i j k m n u v S $.  $d k u T $.
    $d i R $.
    4sq.1 $e |- S = { n | E. x e. ZZ E. y e. ZZ E. z e. ZZ E. w e. ZZ
      n = ( ( ( x ^ 2 ) + ( y ^ 2 ) ) + ( ( z ^ 2 ) + ( w ^ 2 ) ) ) } $.
    $( Lemma for ~ 4sq .  The set ` S ` is the set of all numbers that are
       expressible as a sum of four squares.  Our goal is to show that
       ` S = NN0 ` ; here we show one subset direction.  (Contributed by Mario
       Carneiro, 14-Jul-2014.) $)
    4sqlem1 $p |- S C_ NN0 $=
      ( cv c2 cexp co caddc cz wrex cn0 wcel wa zsqcl2 nn0addcl syl2an wceq cab
      wi eleq1a syl rexlimdvva rexlimivv abssi eqsstri ) EFHZAHZIJKZBHZIJKZLKZC
      HZIJKZDHZIJKZLKZLKZUAZDMNCMNZBMNAMNZFUBOGVDFOVCUJOPZABMMUKMPZUMMPZQZVBVEC
      DMMVHUPMPZURMPZQZQVAOPZVBVEUCVHUOOPZUTOPZVLVKVFULOPUNOPVMVGUKRUMRULUNSTVI
      UQOPUSOPVNVJUPRURRUQUSSTUOUTSTVAOUJUDUEUFUGUHUI $.

    $( Lemma for ~ 4sq .  Change bound variables in ` S ` .  (Contributed by
       Mario Carneiro, 14-Jul-2014.) $)
    4sqlem2 $p |- ( A e. S <-> E. a e. ZZ E. b e. ZZ E. c e. ZZ E. d e. ZZ
      A = ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) ) $=
      ( wcel cv c2 cexp co caddc cz wrex wceq cab eleq2i wa wi id ovex syl6eqel
      cvv a1i rexlimdvva rexlimivv oveq1 oveq1d eqeq2d 2rexbidv oveq2d cbvrex2v
      weq eqeq1 syl5bb elab3 bitri ) EFMEGNZANZOPQZBNZOPQZRQZCNZOPQZDNZOPQZRQZR
      QZUAZDSTCSTZBSTASTZGUBZMEHNZOPQZINZOPQZRQZJNZOPQZKNZOPQZRQZRQZUAZKSTJSTZI
      STHSTZFVSELUCVRWMGEWLEUIMZHISSVTSMWBSMUDZWKWNJKSSWKWNUEWOWESMWGSMUDUDWKEW
      JUIWKUFWDWIRUGUHUJUKULVRVDWDVNRQZUAZDSTCSTZISTHSTVDEUAZWMVQWRVDWAVHRQZVNR
      QZUAZDSTCSTABHISSAHUSZVPXBCDSSXCVOXAVDXCVIWTVNRXCVFWAVHRVEVTOPUMUNUNUOUPB
      IUSZXBWQCDSSXDXAWPVDXDWTWDVNRXDVHWCWARVGWBOPUMUQUNUOUPURWSWRWLHISSWRVDWJU
      AZKSTJSTWSWLWQXEVDWDWFVMRQZRQZUACDJKSSCJUSZWPXGVDXHVNXFWDRXHVKWFVMRVJWEOP
      UMUNUQUODKUSZXGWJVDXIXFWIWDRXIVMWHWFRVLWGOPUMUQUQUOURWSXEWKJKSSVDEWJUTUPV
      AUPVAVBVC $.

    $( Lemma for ~ 4sq .  Sufficient condition to be in ` S ` .  (Contributed
       by Mario Carneiro, 14-Jul-2014.) $)
    4sqlem3 $p |- ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) ->
      ( ( ( A ^ 2 ) + ( B ^ 2 ) ) + ( ( C ^ 2 ) + ( D ^ 2 ) ) ) e. S ) $=
      ( vc vd cz c2 cexp co caddc wceq wrex va vb wcel wa cv eqid oveq1d oveq2d
      oveq1 eqeq2d rspc2ev mp3an3 2rexbidv 3expa 4sqlem2 sylibr sylan2 ) GNUCZH
      NUCZUDENUCZFNUCZUDZEOPQZFOPQZRQZGOPQZHOPQZRQZRQZVELUEZOPQZMUEZOPQZRQZRQZS
      ZMNTLNTZVIIUCZURUSVIVISZVQVIUFVPVSVIVEVFVMRQZRQZSLMGHNNVJGSZVOWAVIWBVNVTV
      ERWBVKVFVMRVJGOPUIUGUHUJVLHSZWAVIVIWCVTVHVERWCVMVGVFRVLHOPUIUHUHUJUKULVBV
      QUDVIUAUEZOPQZUBUEZOPQZRQZVNRQZSZMNTLNTZUBNTUANTZVRUTVAVQWLWKVQVIVCWGRQZV
      NRQZSZMNTLNTUAUBEFNNWDESZWJWOLMNNWPWIWNVIWPWHWMVNRWPWEVCWGRWDEOPUIUGUGUJU
      MWFFSZWOVPLMNNWQWNVOVIWQWMVEVNRWQWGVDVCRWFFOPUIUHUGUJUMUKUNABCDVIIJUAUBLM
      KUOUPUQ $.

    $( Lemma for ~ 4sqlem4 .  (Contributed by Mario Carneiro, 14-Jul-2014.) $)
    4sqlem4a $p |- ( ( A e. Z[i] /\ B e. Z[i] ) ->
      ( ( ( abs ` A ) ^ 2 ) + ( ( abs ` B ) ^ 2 ) ) e. S ) $=
      ( cgz wcel wa cabs cfv c2 cexp co caddc cre cz cim gzcn oveqan12d cc elgz
      absvalsq2d simp2bi simp3bi jca 4sqlem3 syl2an eqeltrd ) EJKZFJKZLEMNOPQZF
      MNOPQZRQESNZOPQEUANZOPQRQZFSNZOPQFUANZOPQRQZRQZGUMUNUOUSUPVBRUMEEUBUFUNFF
      UBUFUCUMUQTKZURTKZLUTTKZVATKZLVCGKUNUMVDVEUMEUDKZVDVEEUEZUGUMVHVDVEVIUHUI
      UNVFVGUNFUDKZVFVGFUEZUGUNVJVFVGVKUHUIABCDUQURUTVAGHIUJUKUL $.

    ${
      $d u A $.
      $( Lemma for ~ 4sq .  We can express the four-square property more
         compactly in terms of gaussian integers, because the norms of gaussian
         integers are exactly sums of two squares.  (Contributed by Mario
         Carneiro, 14-Jul-2014.) $)
      4sqlem4 $p |- ( A e. S <-> E. u e. Z[i] E. v e. Z[i]
        A = ( ( ( abs ` u ) ^ 2 ) + ( ( abs ` v ) ^ 2 ) ) ) $=
        ( wcel cfv c2 cexp co caddc wceq cgz wrex cz va vb vc cabs 4sqlem2 cmul
        vd cv wa ci gzreim adantr adantl cre cim cc gzcn syl absvalsq2d cr crre
        syl2an oveq1d crim oveq12d eqtrd oveqan12d eqcomd eqeq2d oveq2d rspc2ev
        zre fveq2 eqeq1 2rexbidv syl5ibrcom rexlimdvva rexlimivv sylbi 4sqlem4a
        syl3anc wi eleq1a impbii ) GHKZGFUHZUDLZMNOZEUHZUDLZMNOZPOZQZERSFRSZWEG
        UAUHZMNOZUBUHZMNOZPOZUCUHZMNOZUGUHZMNOZPOZPOZQZUGTSUCTSZUBTSUATSWNABCDG
        HIUAUBUCUGJUEXGWNUAUBTTWOTKZWQTKZUIZXFWNUCUGTTXJWTTKZXBTKZUIZUIZWNXFXEW
        LQZERSFRSZXNWOUJWQUFOPOZRKZWTUJXBUFOPOZRKZXEXQUDLZMNOZXSUDLZMNOZPOZQZXP
        XJXRXMWOWQUKZULXMXTXJWTXBUKZUMXNYEXEXJXMYBWSYDXDPXJYBXQUNLZMNOZXQUOLZMN
        OZPOWSXJXQXJXRXQUPKYGXQUQURUSXJYJWPYLWRPXJYIWOMNXHWOUTKZWQUTKZYIWOQXIWO
        VLZWQVLZWOWQVAVBVCXJYKWQMNXHYMYNYKWQQXIYOYPWOWQVDVBVCVEVFXMYDXSUNLZMNOZ
        XSUOLZMNOZPOXDXMXSXMXTXSUPKYHXSUQURUSXMYRXAYTXCPXMYQWTMNXKWTUTKZXBUTKZY
        QWTQXLWTVLZXBVLZWTXBVAVBVCXMYSXBMNXKUUAUUBYSXBQXLUUCUUDWTXBVDVBVCVEVFVG
        VHXOYFXEYBWKPOZQFEXQXSRRWFXQQZWLUUEXEUUFWHYBWKPUUFWGYAMNWFXQUDVMVCVCVIW
        IXSQZUUEYEXEUUGWKYDYBPUUGWJYCMNWIXSUDVMVCVJVIVKWAXFWMXOFERRGXEWLVNVOVPV
        QVRVSWMWEFERRWFRKWIRKUIWLHKWMWEWBABCDWFWIHIJVTWLHGWCURVRWD $.

      mul4sq.1 $e |- ( ph -> A e. Z[i] ) $.
      mul4sq.2 $e |- ( ph -> B e. Z[i] ) $.
      mul4sq.3 $e |- ( ph -> C e. Z[i] ) $.
      mul4sq.4 $e |- ( ph -> D e. Z[i] ) $.
      mul4sq.5 $e |- X = ( ( ( abs ` A ) ^ 2 ) + ( ( abs ` B ) ^ 2 ) ) $.
      mul4sq.6 $e |- Y = ( ( ( abs ` C ) ^ 2 ) + ( ( abs ` D ) ^ 2 ) ) $.
      mul4sq.7 $e |- ( ph -> M e. NN ) $.
      mul4sq.8 $e |- ( ph -> ( ( A - C ) / M ) e. Z[i] ) $.
      mul4sq.9 $e |- ( ph -> ( ( B - D ) / M ) e. Z[i] ) $.
      mul4sq.10 $e |- ( ph -> ( X / M ) e. NN0 ) $.
      $( Lemma for ~ mul4sq : algebraic manipulations.  The extra assumptions
         involving ` M ` are for a part of ~ 4sqlem17 which needs to know not
         just that the product is a sum of squares, but also that it preserves
         divisibility by ` M ` .  (Contributed by Mario Carneiro,
         14-Jul-2014.) $)
      mul4sqlem $p |- ( ph -> ( ( X / M ) x. ( Y / M ) ) e. S ) $=
        ( ccj cfv cmul co caddc cdiv cabs c2 cexp cmin cgz wcel gzcn syl mulcld
        absvalsqd cjcld eqeltrd addcld ppncand cjaddd cjmuld cjcjd oveq1d eqtrd
        oveq2d oveq12d adddid mul4d mulcomd 3eqtr4d eqtr4d 3eqtrd add42d subcld
        adddird wceq cjsub syl2anc subdird subdid subadd4d syl5eq nncnd absdivd
        nnne0d nnred nnnn0d nn0ge0d absidd abscld recnd sqdivd nnsqcld syl5eqel
        divdird divmuldivd sqvald nncand eqtr3d divsubdird divassd cjdivd cjred
        cc addsub4d nn0zd zgz gzcjcl gzmulcl gzaddcl nnncan1d 4sqlem4a eqeltrrd
        cz gzsubcl ) AFUFUGZHUHUIZGIUFUGZUHUIZUJUIZLUKUIZULUGZUMUNUIZYBIUHUIZGH
[encoded data, 6160 characters]
        XNUSGWUJXOWDAWUEWUIWVIWUGUDYBVXOXOWDWUKWULYAWDVCBCDEYGYNJKOXRWDXS $.
    $}

    $( Euler's four-square identity:  The product of two sums of four squares
       is also a sum of four squares.  This is usually quoted as an explicit
       formula involving eight real variables; we save some time by working
       with complex numbers (gaussian integers) instead, so that we only have
       to work with four variables, and also hiding the actual formula for the
       product in the proof of ~ mul4sqlem .  (For the curious, the explicit
       formula that is used is
       ` ( | a | ^ 2 + | b | ^ 2 ) ( | c | ^ 2 + | d | ^ 2 ) = `
       ` | a * x. c + b x. d * | ^ 2 + | a * x. d - b x. c * | ^ 2 ` .)
       (Contributed by Mario Carneiro, 14-Jul-2014.) $)
    mul4sq $p |- ( ( A e. S /\ B e. S ) -> ( A x. B ) e. S ) $=
      ( va vb vc vd wcel co cgz wrex wa c1 syl cv cabs cfv cexp caddc wceq cmul
      c2 4sqlem4 reeanv cdiv cn0 simpll gzabssqcl simprl nn0addcld nn0cnd div1d
      simplr simprr oveq12d eqid cn 1nn a1i cmin cc gzsubcl adantr gzcn eqeltrd
      adantl mul4sqlem eqeltrrd syl5ibrcom rexlimdvva syl5bir rexlimivv syl2anb
      oveq12 eleq1d sylbir ) EGNEJUAZUBUCUHUDOZKUAZUBUCUHUDOZUEOZUFZKPQZJPQZFLU
      AZUBUCUHUDOZMUAZUBUCUHUDOZUEOZUFZMPQZLPQZEFUGOZGNZFGNABCDKJEGHIUIABCDMLFG
      HIUIWJWRRWIWQRZLPQJPQWTWIWQJLPPUJXAWTJLPPXAWHWPRZMPQKPQWCPNZWKPNZRZWTWHWP
      KMPPUJXEXBWTKMPPXEWEPNZWMPNZRZRZWTXBWGWOUGOZGNXIWGSUKOZWOSUKOZUGOXJGXIXKW
      GXLWOUGXIWGXIWGXIWDWFXIXCWDULNXCXDXHUMZWCUNTXIXFWFULNXEXFXGUOZWEUNTUPZUQU
      RZXIWOXIWOXIWLWNXIXDWLULNXCXDXHUSZWKUNTXIXGWNULNXEXFXGUTZWMUNTUPUQURVAXIA
      BCDWCWEWKWMGHSWGWOIXMXNXQXRWGVBWOVBSVCNXIVDVEXIWCWKVFOZSUKOXSPXIXSXIXSPNZ
      XSVGNXEXTXHWCWKVHVIZXSVJTURYAVKXIWEWMVFOZSUKOYBPXIYBXIYBPNZYBVGNXHYCXEWEW
      MVHVLZYBVJTURYDVKXIXKWGULXPXOVKVMVNXBWSXJGEWGFWOUGVTWAVOVPVQVRWBVS $.

    ${
      4sq.2 $e |- ( ph -> N e. NN ) $.
      4sq.3 $e |- ( ph -> P = ( ( 2 x. N ) + 1 ) ) $.
      4sq.4 $e |- ( ph -> P e. Prime ) $.
      ${
        4sqlem11.5 $e |- A =
          { u | E. m e. ( 0 ... N ) u = ( ( m ^ 2 ) mod P ) } $.
        4sqlem11.6 $e |- F = ( v e. A |-> ( ( P - 1 ) - v ) ) $.
        $( Lemma for ~ 4sq .  Use the pigeonhole principle to show that the
           sets ` { m ^ 2 | m e. ( 0 ... N ) } ` and
           ` { -u 1 - n ^ 2 | n e. ( 0 ... N ) } ` have a common element,
           ` mod P ` .  (Contributed by Mario Carneiro, 15-Jul-2014.) $)
        4sqlem11 $p |- ( ph -> ( A i^i ran F ) =/= (/) ) $=
          ( vk crn cun chash cfv clt wbr wn cin c0 wne cle cc0 c1 cmin cfz cdom
          co cfn wcel wss fzfid cv c2 cexp cmo wceq wrex wa wi cz elfzelz zsqcl
          cab cn syl cprime prmnn zmodfz eleq1a rexlimdva abssdv syl5eqss caddc
          syl2anr wf zcnd oveq1d adantr sselda wb ssfi mpbird cen fz01en hashen
          syl2anc cn0 nnnn0d hashfz1 eqtrd breqtrd nn0red zred mpbid ltp1d cmul
          cr cc sylancr 2timesd 3eqtrd cmpt wf1o wf1 ex cdvds ad2antrl ad2antll
          weq syl3anc elfzle2 breqtrrd cabs nn0zd subid1d fveq2d elfzle1 absidd
          sylanbrc oveq12d dvdsle necon4ad sylbid dom2lem f1f1orn ax-mp sylibr
          mtod sstri prmz peano2zm addid2d eqeltrrd fmptd frn unssd ssdomg sylc
          fzrev3i hashdom hashcl lenltd nncnd 1cnd add4d 2cn addassd wo moddvds
          mulcl subsq breq2d zaddcld zsubcld euclemma 2re nnred remulcl le2addd
          3bitrd lelttrd ltnled ad2antrr 1red nn0abscl necon3bid biimpar rpgt0d
          subeq0ad absrpcld elnnz nnge1d 0cnd abs3difd abssub letrd elnnz1 letr
          0cn dvdsabsb mpan2d jaod oveq1 impbid1 eqid rnmpt eqtr4i f1oeq3 f1oen
          ovex ensymd ax-1cn pncan sylancl oveq2d peano2nn0 eqbrtrrd cuz fzssuz
          entr uzssz zsscn syl6ss adantrr adantrl subcanad f1eq1 f1oeng 3eqtr4d
          eqtr3d simpr hashun eqtr4d necon3bd mpd ) AIHMUBZUCZUDUEZUFUGZUHZHUYG
[encoded data, 4400 characters]
          UYGUYCYAUYDXBXPUYEUYF $.

        $( Lemma for ~ 4sq .  For any odd prime ` P ` , there is a ` k < P `
           such that ` k P - 1 ` is a sum of two squares.  (Contributed by
           Mario Carneiro, 15-Jul-2014.) $)
        4sqlem12 $p |- ( ph -> E. k e. ( 1 ... ( P - 1 ) ) E. u e. Z[i]
          ( ( ( abs ` u ) ^ 2 ) + 1 ) = ( k x. P ) ) $=
          ( vj cv crn cin wcel wex cabs cfv c2 cexp co caddc cmul wceq cgz wrex
          c1 cmin cfz c0 wne 4sqlem11 n0 sylib cmo wa cc0 vex weq eqeq1 rexbidv
          elab2 cab abid rexeqi oveq1 oveq1d eqeq2d cbvrexv syl5bb rexab 3bitri
          rnmpt eleq2i rexcom4 r19.41v exbii bitri 3bitr4i oveq2 ceqsexv rexbii
          ovex anbi12i elin reeanv w3a cz cle wbr clt cdvds cr crp cn0 3ad2ant1
          cn syl nn0red nnrpd nnred syl22anc elfzelz zsqcl2 syl2anc zsqcl nn0zd
          wb mpbid breqtrrd syl3anc nn0cnd subsub3d nncnd eqtrd mpbird nnrp 2nn
          nnmulcl sylancr zred elfzle1 elfzle2 le2sq2 c4 a1i nngt0d syl112anc
          cc eqtr2 cdiv cprime prmnn nnm1nn0 nn0ge0d ltm1d modid simp2r zmodcld
          ci modlt prmz zltlem1 modsubdir simp3 3eqtr4rd simp2l zsubcld moddvds
          nn0addcld 1cnd breqtrd nn0p1nn dvdssubr nnne0d dvdsval2 syl2an rpgt0d
          nnzd rpdivcl sylanbrc nnge1d resqcld readdcld nnsqcld le2addd 2timesd
          elnnz 1red 2lt4 2re 4re ltmul1 mpbii 2cn sqmul oveq1i syl6eq ltaddrpd
          sq2 lelttrd lttrd ltadd1dd sqvald binom21 3eqtr3d ltdivmul 1z elfzm11
          mpbir3and gzreim cre cim gzcn absvalsq2d crred crimd oveq12d divcan1d
          eqtr4d fveq2 eqeq1d rspc2ev 3expia syl5 rexlimdvva syl5bi exlimdv mpd
          ) AUBUCZHNUDZUEZUFZUBUGZGUCZUHUIZUJUKULZURUMULZKUCZIUNULZUOZGUPUQKURI
          URUSULZUTULZUQZAUYCVAVBUYEABCDEFGHIJLMNOPQRSTUAVCUBUYCVDVEAUYDUYOUBUY
          DUYALUCZUJUKULZIVFULZUOZUYAUYMMUCZUJUKULZIVFULZUSULZUOZVGZMVHOUTULZUQ
          LVUFUQZAUYOUYAHUFZUYAUYBUFZVGUYSLVUFUQZVUDMVUFUQZVGUYDVUGVUHVUJVUIVUK
          UYFUYRUOZLVUFUQZVUJGUYAHUBVIGUBVJVULUYSLVUFUYFUYAUYRVKVLTVMVUIFUCZVUB
          UOZUYAUYMVUNUSULZUOZVGZFUGZMVUFUQZVUKUYAVUQFHUQZUBVNZUFZVUOMVUFUQZVUQ
          VGZFUGZVUIVUTVVCVVAVUQFVUMGVNZUQVVFVVAUBVOVUQFHVVGTVPVUMVVDVUQFGVUMUY
          FVUBUOZMVUFUQGFVJZVVDVULVVHLMVUFLMVJZUYRVUBUYFVVJUYQVUAIVFUYPUYTUJUKV
          QVRVSVTVVIVVHVUOMVUFUYFVUNVUBVKVLWAWBWCUYBVVBUYAFUBHVUPNUAWDWEVUTVURM
          VUFUQZFUGVVFVURMFVUFWFVVKVVEFVUOVUQMVUFWGWHWIWJVUSVUDMVUFVUQVUDFVUBVU
          AIVFWNVUOVUPVUCUYAVUNVUBUYMUSWKVSWLWMWIWOUYAHUYBWPUYSVUDLMVUFVUFWQWJA
          VUEUYOLMVUFVUFVUEUYRVUCUOZAUYPVUFUFZUYTVUFUFZVGZVGUYOUYAUYRVUCUUAAVVO
          VVLUYOAVVOVVLWRZUYQVUAUMULZURUMULZIUUBULZUYNUFZUYPUUKUYTUNULUMULZUPUF
          ZVWAUHUIZUJUKULZURUMULZVVSIUNULZUOZUYOVVPVVTVVSWSUFZURVVSWTXAZVVSIXBX
          AZVVPIVVRXCXAZVWHVVPVWKIVVRIUSULZXCXAZVVPIUYQUYMVUAUSULZUSULZVWLXCVVP
          UYRVWNIVFULZUOZIVWOXCXAZVVPUYMIVFULZVUBUSULZVUCVWPUYRVVPVWSUYMVUBUSVV
          PUYMXDUFZIXEUFZVHUYMWTXAUYMIXBXAVWSUYMUOVVPUYMVVPIXHUFZUYMXFUFVVPIUUC
          UFZVXCAVVOVXDVVLSXGZIUUDXIZIUUEXIZXJZVVPIVXFXKZVVPUYMVXGUUFVVPIVVPIVX
          FXLZUUGUYMIUUHXMZVRVVPVUBVWSWTXAZVWPVWTUOZVVPVUBUYMVWSWTVVPVUBIXBXAZV
          UBUYMWTXAZVVPVUAXDUFZVXBVXNVVPVUAVVPUYTWSUFZVUAXFUFVVPVVNVXQAVVMVVNVV
          LUUIZUYTVHOXNXIZUYTXOXIZXJZVXIVUAIUULXPVVPVUBWSUFIWSUFZVXNVXOXSVVPVUB
          VVPVUAIVVPVXQVUAWSUFVXSUYTXQXIZVXFUUJXRVVPVXDVYBVXEIUUMXIZVUBIUUNXPXT
          VXKYAVVPVXAVXPVXBVXLVXMXSVXHVYAVXIUYMVUAIUUOYBXTAVVOVVLUUPUUQVVPVXCUY
          QWSUFZVWNWSUFVWQVWRXSVXFVVPUYPWSUFZVYEVVPVVMVYFAVVMVVNVVLUURZUYPVHOXN
          XIZUYPXQXIVVPUYMVUAVVPUYMVXGXRVYCUUSUYQVWNIUUTYBXTVVPVWOVVQUYMUSULVWL
          VVPUYQUYMVUAVVPUYQVVPVYFUYQXFUFVYHUYPXOXIZYCVVPUYMVXGYCVVPVUAVXTYCYDV
          VPVVQIURVVPVVQVVPUYQVUAVYIVXTUVAZYCVVPIVXFYEZVVPUVBYDYFUVCVVPVYBVVRWS
          UFZVWKVWMXSVYDVVPVVRVVPVVQXFUFVVRXHUFZVYJVVQUVDXIZUVJZIVVRUVEXPYGVVPV
          YBIVHVBVYLVWKVWHXSVYDVVPIVXFUVFZVYOIVVRUVGYBXTZVVPVVSVVPVWHVHVVSXBXAV
          VSXHUFVYQVVPVVSVVPVYMVXCVVSXEUFZVYNVXFVYMVVRXEUFVXBVYRVXCVVRYHIYHVVRI
          UVKUVHXPUVIVVSUVSUVLUVMVVPVWJVVRIIUNULZXBXAZVVPVVRUJOUNULZUJUKULZUJWU
          AUNULZUMULZURUMULZVYSXBVVPVVQWUDURVVPVVQVYJXJZVVPWUBWUCVVPWUAVVPWUAVV
          PUJXHUFZOXHUFZWUAXHUFZYIAVVOWUHVVLQXGZUJOYJYKZXLUVNZVVPWUCVVPWUGWUIWU
          CXHUFYIWUKUJWUAYJYKZXLUVOZVVPUVTVVPVVQWUBWUDWUFWULWUNVVPVVQUJOUJUKULZ
          UNULZWUBWUFVVPWUPVVPWUGWUOXHUFWUPXHUFYIVVPOWUJUVPZUJWUOYJYKXLWULVVPVV
          QWUOWUOUMULWUPWTVVPUYQVUAWUOWUOVVPUYQVYIXJVYAVVPWUOWUQXLZWURVVPUYPXDU
          FVHUYPWTXAZOXDUFZUYPOWTXAZUYQWUOWTXAVVPUYPVYHYLZVVPVVMWUSVYGUYPVHOYMX
          IVVPOWUJXLZVVPVVMWVAVYGUYPVHOYNXIUYPOYOXMVVPUYTXDUFVHUYTWTXAZWUTUYTOW
          TXAZVUAWUOWTXAVVPUYTVXSYLZVVPVVNWVDVXRUYTVHOYMXIWVCVVPVVNWVEVXRUYTVHO
          YNXIUYTOYOXMUVQVVPWUOVVPWUOWUQYEUVRYAVVPWUPYPWUOUNULZWUBXBVVPUJYPXBXA
          ZWUPWVGXBXAZUWAVVPUJXDUFZYPXDUFZWUOXDUFVHWUOXBXAWVHWVIXSWVJVVPUWBYQWV
          KVVPUWCYQWURVVPWUOWUQYRUJYPWUOUWDYSUWEVVPWUBUJUJUKULZWUOUNULZWVGVVPUJ
          YTUFOYTUFWUBWVMUOUWFVVPOWUJYEUJOUWGYKWVLYPWUOUNUWKUWHUWIYAUWLVVPWUBWU
          CWULVVPWUCWUMXKUWJUWMUWNVVPIUJUKULWUAURUMULZUJUKULZVYSWUEVVPIWVNUJUKA
          VVOIWVNUOVVLRXGVRVVPIVYKUWOVVPWUAYTUFWVOWUEUOVVPWUAWUKYEWUAUWPXIUWQYA
          VVPVVRXDUFIXDUFZWVPVHIXBXAVWJVYTXSVVPVVRVYNXLVXJVXJVVPIVXFYRVVRIIUWRY
          SYGVVPURWSUFVYBVVTVWHVWIVWJWRXSUWSVYDVVSURIUWTYKUXAVVPVYFVXQVWBVYHVXS
          UYPUYTUXBXPZVVPVWEVVRVWFVVPVWDVVQURUMVVPVWDVWAUXCUIZUJUKULZVWAUXDUIZU
          JUKULZUMULVVQVVPVWAVVPVWBVWAYTUFWVQVWAUXEXIUXFVVPWVSUYQWWAVUAUMVVPWVR
          UYPUJUKVVPUYPUYTWVBWVFUXGVRVVPWVTUYTUJUKVVPUYPUYTWVBWVFUXHVRUXIYFVRVV
          PVVRIVVPVVRVYNYEVYKVYPUXJUXKUYLVWGUYIVWFUOKGVVSVWAUYNUPUYJVVSUOUYKVWF
          UYIUYJVVSIUNVQVSUYFVWAUOZUYIVWEVWFWWBUYHVWDURUMWWBUYGVWCUJUKUYFVWAUHU
          XLVRVRUXMUXNYBUXOUXPUXQUXRUXSUXT $.
      $}

      4sq.5 $e |- ( ph -> ( 0 ... ( 2 x. N ) ) C_ S ) $.
      4sq.6 $e |- T = { i e. NN | ( i x. P ) e. S } $.
      4sq.7 $e |- M = inf ( T , RR , < ) $.
      $( Lemma for ~ 4sq .  (Contributed by Mario Carneiro, 16-Jul-2014.)
         (Revised by AV, 14-Sep-2020.) $)
      4sqlem13 $p |- ( ph -> ( T =/= (/) /\ M < P ) ) $=
        ( c1 vu vk vv vm cv cabs cfv c2 cexp co caddc cmul wceq cgz wrex cfz c0
        cmin wne clt wbr cmo cc0 cab cmpt eqid 4sqlem12 wcel simplrl elfznn syl
        wa cn simpr abs1 oveq1i sq1 eqtri oveq2i simplrr cz 1z 4sqlem4a sylancl
        ax-mp syl5eqelr eqeltrrd oveq1 eleq1d elrab2 sylanbrc ne0i crab eqsstri
        zgz ssrab2 cr cinf cuz wss nnuz sseqtri infssuzcl syl5eqel sseldi nnred
        sylancr cprime ad2antrr prmnn cle infssuzle syl5eqbr prmz elfzm11 mpbid
        w3a wb simp3d lelttrd jca ex rexlimdvva mpd ) AUAUEZUFUGUHUIUJZTUKUJZUB
        UEZFULUJZUMZUAUNUOUBTFTURUJZUPUJZUOHUQUSZKFUTVAZVLZABCDEUCUAYEUDUEUHUIU
        JFVBUJUMUDVCLUPUJUOUAVDZFGUBUDJUCYPYKUCUEURUJVEZLMNOPYPVFYQVFVGAYJYOUBU
        AYLUNAYHYLVHZYEUNVHZVLZVLZYJYOUUAYJVLZYMYNUUBYHHVHZYMUUBYHVMVHZYIGVHZUU
        CUUBYRUUDAYRYSYJVIZYHYKVJVKZUUBYGYIGUUAYJVNUUBYGYFTUFUGZUHUIUJZUKUJZGUU
        ITYFUKUUITUHUIUJTUUHTUHUIVOVPVQVRVSUUBYSTUNVHZUUJGVHAYRYSYJVTTWAVHZUUKW
        BTWOWEBCDEYETGJMWCWDWFWGIUEZFULUJZGVHZUUEIYHVMHUUMYHUMUUNYIGUUMYHFULWHW
        IRWJWKZHYHWLVKZUUBKYHFUUBKUUBHVMKHUUOIVMWMVMRUUOIVMWPWNZUUBKHWQUTWRZHSU
        UBHTWSUGZWTZYMUUSHVHHVMUUTUURXAXBZUUQHTXCXGXDXEXFUUBYHUUGXFUUBFUUBFXHVH
        ZFVMVHAUVCYTYJPXIZFXJVKXFUUBKUUSYHXKSUUBUVAUUCUUSYHXKVAUVBUUPYHHTXLXGXM
        UUBYHWAVHZTYHXKVAZYHFUTVAZUUBYRUVEUVFUVGXQZUUFUUBUULFWAVHZYRUVHXRWBUUBU
        VCUVIUVDFXNVKYHTFXOXGXPXSXTYAYBYCYD $.

      ${
        4sq.m $e |- ( ph -> M e. ( ZZ>= ` 2 ) ) $.
        4sq.a $e |- ( ph -> A e. ZZ ) $.
        4sq.b $e |- ( ph -> B e. ZZ ) $.
        4sq.c $e |- ( ph -> C e. ZZ ) $.
        4sq.d $e |- ( ph -> D e. ZZ ) $.
        4sq.e $e |- E = ( ( ( A + ( M / 2 ) ) mod M ) - ( M / 2 ) ) $.
        4sq.f $e |- F = ( ( ( B + ( M / 2 ) ) mod M ) - ( M / 2 ) ) $.
        4sq.g $e |- G = ( ( ( C + ( M / 2 ) ) mod M ) - ( M / 2 ) ) $.
        4sq.h $e |- H = ( ( ( D + ( M / 2 ) ) mod M ) - ( M / 2 ) ) $.
        4sq.r $e |- R =
          ( ( ( ( E ^ 2 ) + ( F ^ 2 ) ) + ( ( G ^ 2 ) + ( H ^ 2 ) ) ) / M ) $.
        4sq.p $e |- ( ph -> ( M x. P ) =
          ( ( ( A ^ 2 ) + ( B ^ 2 ) ) + ( ( C ^ 2 ) + ( D ^ 2 ) ) ) ) $.
        $( Lemma for ~ 4sq .  (Contributed by Mario Carneiro, 16-Jul-2014.)
           (Revised by AV, 14-Sep-2020.) $)
        4sqlem14 $p |- ( ph -> R e. NN0 ) $=
          ( c2 cexp co caddc cdiv cn0 cz wcel cc0 cle wbr cdvds cmul cmin cn cv
          crab ssrab2 eqsstri cr clt cinf cuz cfv wss wne nnuz sseqtri 4sqlem13
          c1 simpld infssuzcl sylancr syl5eqel sseldi nnzd cprime prmz dvdsmul1
          c0 syl syl2anc 4sqlem8 wa zsqcl 4sqlem5 zsqcl2 nn0zd zsubcld dvds2add
          wi syl3anc mp2and zcnd sqcld addsub4d zaddcld nn0addcld oveq1d addcld
          breqtrrd eqtrd zmulcld dvds2sub nncnd mulcld nncand breqtrd wb nnne0d
          prmnn dvdsval2 nn0red nn0ge0d nngt0d divge0 syl22anc elnn0z sylanbrc
          mpbid nnred ) AKPUTVAVBZQUTVAVBZVCVBZRUTVAVBZSUTVAVBZVCVBZVCVBZTVDVBZ
          VEURAUUHVFVGZVHUUHVIVJZUUHVEVGATUUGVKVJZUUIATTJVLVBZUULUUGVMVBZVMVBZU
          UGVKATUULVKVJZTUUMVKVJZTUUNVKVJZATVFVGZJVFVGZUUOATAMVNTMNVOJVLVBLVGZN
          VNVPVNUGUUTNVNVQVRZATMVSVTWAZMUHAMWIWBWCZWDMWSWEZUVBMVGMVNUVCUVAWFWGA
          UVDTJVTVJABCDEJLMNOTUAUBUCUDUEUFUGUHWHWJMWIWKWLWMWNZWOZAJWPVGZUUSUEJW
          QWTZTJWRXAATFUTVAVBZGUTVAVBZVCVBZUUCVMVBZHUTVAVBZIUTVAVBZVCVBZUUFVMVB
          ZVCVBZUUMVKATUVLVKVJZTUVPVKVJZTUVQVKVJZATUVIUUAVMVBZUVJUUBVMVBZVCVBZU
          VLVKATUWAVKVJZTUWBVKVJZTUWCVKVJZAFPTUJUVEUNXBAGQTUKUVEUOXBAUURUWAVFVG
          UWBVFVGUWDUWEXCUWFXJUVFAUVIUUAAFVFVGUVIVFVGUJFXDWTZAUUAAPVFVGZUUAVEVG
          AUWHFPVMVBTVDVBVFVGAFPTUJUVEUNXEWJZPXFWTZXGXHAUVJUUBAGVFVGUVJVFVGUKGX
          DWTZAUUBAQVFVGZUUBVEVGAUWLGQVMVBTVDVBVFVGAGQTUKUVEUOXEWJZQXFWTZXGXHTU
          WAUWBXIXKXLAUVIUVJUUAUUBAFAFUJXMXNZAGAGUKXMXNZAPAPUWIXMXNZAQAQUWMXMXN
          ZXOXTATUVMUUDVMVBZUVNUUEVMVBZVCVBZUVPVKATUWSVKVJZTUWTVKVJZTUXAVKVJZAH
          RTULUVEUPXBAISTUMUVEUQXBAUURUWSVFVGUWTVFVGUXBUXCXCUXDXJUVFAUVMUUDAHVF
          VGUVMVFVGULHXDWTZAUUDARVFVGZUUDVEVGAUXFHRVMVBTVDVBVFVGAHRTULUVEUPXEWJ
          ZRXFWTZXGXHAUVNUUEAIVFVGUVNVFVGUMIXDWTZAUUEASVFVGZUUEVEVGAUXJISVMVBTV
          DVBVFVGAISTUMUVEUQXEWJZSXFWTZXGXHTUWSUWTXIXKXLAUVMUVNUUDUUEAHAHULXMXN
          ZAIAIUMXMXNZARARUXGXMXNZASASUXKXMXNZXOXTAUURUVLVFVGUVPVFVGUVRUVSXCUVT
          XJUVFAUVKUUCAUVIUVJUWGUWKXPAUUCAUUAUUBUWJUWNXQZXGZXHAUVOUUFAUVMUVNUXE
          UXIXPAUUFAUUDUUEUXHUXLXQZXGZXHTUVLUVPXIXKXLAUUMUVKUVOVCVBZUUGVMVBUVQA
          UULUYAUUGVMUSXRAUVKUVOUUCUUFAUVIUVJUWOUWPXSAUVMUVNUXMUXNXSAUUAUUBUWQU
          WRXSZAUUDUUEUXOUXPXSZXOYAXTAUURUULVFVGUUMVFVGUUOUUPXCUUQXJUVFATJUVFUV
          HYBZAUULUUGUYDAUUCUUFUXRUXTXPXHTUULUUMYCXKXLAUULUUGATJATUVEYDAJAUVGJV
          NVGUEJYJWTYDYEAUUCUUFUYBUYCXSYFYGAUURTVHWEUUGVFVGUUKUUIYHUVFATUVEYIAU
          UGAUUCUUFUXQUXSXQZXGTUUGYKXKYSAUUGVSVGVHUUGVIVJTVSVGVHTVTVJUUJAUUGUYE
          YLAUUGUYEYMATUVEYTATUVEYNUUGTYOYPUUHYQYRWM $.

        $( Lemma for ~ 4sq .  (Contributed by Mario Carneiro, 16-Jul-2014.)
           (Revised by AV, 14-Sep-2020.) $)
        4sqlem15 $p |- ( ( ph /\ R = M ) ->
          ( ( ( ( ( ( M ^ 2 ) / 2 ) / 2 ) - ( E ^ 2 ) ) = 0 /\
              ( ( ( ( M ^ 2 ) / 2 ) / 2 ) - ( F ^ 2 ) ) = 0 ) /\
            ( ( ( ( ( M ^ 2 ) / 2 ) / 2 ) - ( G ^ 2 ) ) = 0 /\
              ( ( ( ( M ^ 2 ) / 2 ) / 2 ) - ( H ^ 2 ) ) = 0 ) ) ) $=
          ( wceq wa c2 cexp co cdiv cmin cc0 caddc cuz cfv cn eluz2nn syl nnred
          wcel resqcld rehalfcld recnd cz 4sqlem5 simpld zred addsub4d 2halvesd
          zsqcl oveq1d eqtr3d adantr cmul sqvald simpr readdcld nnne0d divcan1d
          syl5eqr 3eqtr2rd oveq12d subidd 3eqtr3d cr cle wbr wb 4sqlem7 le2addd
          resubcld breqtrd mpbird add20 syl22anc biimpa syldan eqtrd simprd jca
          subge0d ) AKTUTZVAZTVBVCVDZVBVEVDZVBVEVDZPVBVCVDZVFVDZVGUTYAQVBVCVDZV
          FVDZVGUTVAZYARVBVCVDZVFVDZVGUTYASVBVCVDZVFVDZVGUTVAZAXQYCYEVHVDZVGUTZ
          YFXRYLXTYBYDVHVDZVFVDZVGAYLYOUTXQAYAYAVHVDZYNVFVDYLYOAYAYAYBYDAYAAXTA
          XSATATATVBVIVJVOTVKVOUITVLVMZVNZVPZVQZVQZVRZUUBAYBAYBAPVSVOZYBVSVOAUU
          CFPVFVDTVEVDVSVOAFPTUJYQUNVTWAPWEVMWBZVRAYDAYDAQVSVOZYDVSVOAUUEGQVFVD
          TVEVDVSVOAGQTUKYQUOVTWAQWEVMWBZVRWCAYPXTYNVFAXTAXTYTVRZWDZWFWGWHXRYOV
          GUTZXTYGYIVHVDZVFVDZVGUTZAXQYOUUKVHVDZVGUTZUUIUULVAZXRXTXTVHVDZYNUUJV
          HVDZVFVDZXSXSVFVDZUUMVGXRUUPXSUUQXSVFAUUPXSUTXQAXSAXSYSVRZWDWHXRXSTTW
          IVDZUUQTVEVDZTWIVDZUUQAXSUVAUTXQATATYRVRZWJWHXRUVBTTWIXRUVBKTURAXQWKW
          OWFAUVCUUQUTXQAUUQTAUUQAYNUUJAYBYDUUDUUFWLZAYGYIAYGARVSVOZYGVSVOAUVFH
          RVFVDTVEVDVSVOAHRTULYQUPVTWARWEVMWBZAYIASVSVOZYIVSVOAUVHISVFVDTVEVDVS
          VOAISTUMYQUQVTWASWEVMWBZWLZWLVRUVDATYQWMWNWHWPWQAUURUUMUTXQAXTXTYNUUJ
          UUGUUGAYNUVEVRAUUJUVJVRWCWHAUUSVGUTXQAXSUUTWRWHWSAUUNUUOAYOWTVOVGYOXA
          XBZUUKWTVOVGUUKXAXBZUUNUUOXCAXTYNYTUVEXFAUVKYNXTXAXBAYNYPXTXAAYBYDYAY
          AUUDUUFUUAUUAAFPTUJYQUNXDZAGQTUKYQUOXDZXEUUHXGAXTYNYTUVEXPXHAXTUUJYTU
          VJXFAUVLUUJXTXAXBAUUJYPXTXAAYGYIYAYAUVGUVIUUAUUAAHRTULYQUPXDZAISTUMYQ
          UQXDZXEUUHXGAXTUUJYTUVJXPXHYOUUKXIXJXKXLZWAXMAYMYFAYCWTVOVGYCXAXBZYEW
          TVOVGYEXAXBZYMYFXCAYAYBUUAUUDXFAUVRYBYAXAXBUVMAYAYBUUAUUDXPXHAYAYDUUA
          UUFXFAUVSYDYAXAXBUVNAYAYDUUAUUFXPXHYCYEXIXJXKXLAXQYHYJVHVDZVGUTZYKXRU
          VTUUKVGAUVTUUKUTXQAYPUUJVFVDUVTUUKAYAYAYGYIUUBUUBAYGUVGVRAYIUVIVRWCAY
          PXTUUJVFUUHWFWGWHXRUUIUULUVQXNXMAUWAYKAYHWTVOVGYHXAXBZYJWTVOVGYJXAXBZ
          UWAYKXCAYAYGUUAUVGXFAUWBYGYAXAXBUVOAYAYGUUAUVGXPXHAYAYIUUAUVIXFAUWCYI
          YAXAXBUVPAYAYIUUAUVIXPXHYHYJXIXJXKXLXO $.

        $( Lemma for ~ 4sq .  (Contributed by Mario Carneiro, 16-Jul-2014.)
           (Revised by AV, 14-Sep-2020.) $)
        4sqlem16 $p |- ( ph -> ( R <_ M /\
          ( ( R = 0 \/ R = M ) -> ( M ^ 2 ) || ( M x. P ) ) ) ) $=
          ( cle wbr cc0 wceq wo c2 cexp co cmul cdvds wi caddc cdiv cz wcel cuz
          cmin cfv eluz2nn syl 4sqlem5 simpld zsqcl zred readdcld nnred resqcld
          cn rehalfcld 4sqlem7 le2addd recnd 2halvesd breqtrd sqvald clt nngt0d
          cr wb ledivmul syl112anc mpbird syl5eqbr wa simpr nnne0d diveq0ad cn0
          syl5eqr zsqcl2 nn0addcld nn0ge0d add20 syl22anc biimpa syldan 4sqlem9
          bitrd simprd nnsqcld dvds2add syl3anc adantr mp2and 4sqlem15 4sqlem10
          nnzd zaddcld subeq0ad eqeltrd zsubcld addsub4d oveq2d eqtr3d eqeltrrd
          zcnd mpbid dvdssubr syl2anc jaodan breqtrrd ex jca ) AKTUTVAKVBVCZKTV
          CZVDZTVEVFVGZTJVHVGZVIVAZVJAKPVEVFVGZQVEVFVGZVKVGZRVEVFVGZSVEVFVGZVKV
          GZVKVGZTVLVGZTUTURAUUPTUTVAZUUOTTVHVGZUTVAZAUUOUUFUURUTAUUOUUFVEVLVGZ
          UUTVKVGZUUFUTAUUKUUNUUTUUTAUUIUUJAUUIAPVMVNZUUIVMVNZAUVBFPVPVGTVLVGVM
          VNAFPTUJATVEVOVQVNTWGVNUITVRVSZUNVTWAZPWBVSZWCZAUUJAQVMVNZUUJVMVNAUVH
          GQVPVGTVLVGVMVNAGQTUKUVDUOVTWAZQWBVSWCZWDZAUULUUMAUULARVMVNZUULVMVNAU
          VLHRVPVGTVLVGVMVNAHRTULUVDUPVTWAZRWBVSWCZAUUMASVMVNZUUMVMVNAUVOISVPVG
          TVLVGVMVNAISTUMUVDUQVTWAZSWBVSWCZWDZAUUFATATUVDWEZWFZWHZUWAAUUKUUTVEV
          LVGZUWBVKVGZUUTUTAUUIUUJUWBUWBUVGUVJAUUTUWAWHZUWDAFPTUJUVDUNWIAGQTUKU
          VDUOWIWJAUUTAUUTUWAWKZWLZWMAUUNUWCUUTUTAUULUUMUWBUWBUVNUVQUWDUWDAHRTU
          LUVDUPWIAISTUMUVDUQWIWJUWFWMWJAUUFAUUFUVTWKWLZWMATATUVSWKZWNWMAUUOWQV
          NTWQVNZUWIVBTWOVAUUQUUSWRAUUKUUNUVKUVRWDZUVSUVSATUVDWPUUOTTWSWTXAXBAU
          UEUUHAUUEXCUUFFVEVFVGZGVEVFVGZVKVGZHVEVFVGZIVEVFVGZVKVGZVKVGZUUGVIAUU
          CUUFUWQVIVAZUUDAUUCXCZUUFUWMVIVAZUUFUWPVIVAZUWRUWSUUFUWKVIVAZUUFUWLVI
          VAZUWTAUUCFPTUJUVDUNUWSUUIVBVCZUUJVBVCZAUUCUUKVBVCZUXDUXEXCZUWSUXFUUN
          VBVCZAUUCUUPVBVCZUXFUXHXCZUWSUUPKVBURAUUCXDXHAUXIUXJAUXIUUOVBVCZUXJAU
          UOTAUUOUWJWKUWHATUVDXEXFAUUKWQVNVBUUKUTVAUUNWQVNVBUUNUTVAUXKUXJWRUVKA
          UUKAUUIUUJAUVBUUIXGVNUVEPXIVSZAUVHUUJXGVNUVIQXIVSZXJXKUVRAUUNAUULUUMA
          UVLUULXGVNUVMRXIVSZAUVOUUMXGVNUVPSXIVSZXJXKUUKUUNXLXMXQXNXOZWAAUXFUXG
          AUUIWQVNVBUUIUTVAUUJWQVNVBUUJUTVAUXFUXGWRUVGAUUIUXLXKUVJAUUJUXMXKUUIU
          UJXLXMXNXOZWAXPAUUCGQTUKUVDUOUWSUXDUXEUXQXRXPAUXBUXCXCUWTVJZUUCAUUFVM
          VNZUWKVMVNZUWLVMVNZUXRAUUFATUVDXSYFZAFVMVNUXTUJFWBVSZAGVMVNUYAUKGWBVS
          ZUUFUWKUWLXTYAYBYCUWSUUFUWNVIVAZUUFUWOVIVAZUXAAUUCHRTULUVDUPUWSUULVBV
          CZUUMVBVCZAUUCUXHUYGUYHXCZUWSUXFUXHUXPXRAUXHUYIAUULWQVNVBUULUTVAUUMWQ
          VNVBUUMUTVAUXHUYIWRUVNAUULUXNXKUVQAUUMUXOXKUULUUMXLXMXNXOZWAXPAUUCIST
          UMUVDUQUWSUYGUYHUYJXRXPAUYEUYFXCUXAVJZUUCAUXSUWNVMVNZUWOVMVNZUYKUYBAH
          VMVNUYLULHWBVSZAIVMVNUYMUMIWBVSZUUFUWNUWOXTYAYBYCAUWTUXAXCUWRVJZUUCAU
          XSUWMVMVNZUWPVMVNZUYPUYBAUWKUWLUYCUYDYGZAUWNUWOUYNUYOYGZUUFUWMUWPXTYA
          YBYCAUUDXCZUWRUUFUWQUUFVPVGZVIVAZVUAUUFUWMUUTVPVGZUWPUUTVPVGZVKVGZVUB
          VIVUAUUFVUDVIVAZUUFVUEVIVAZUUFVUFVIVAZVUAUUFUWKUWBVPVGZUWLUWBVPVGZVKV
          GZVUDVIVUAUUFVUJVIVAZUUFVUKVIVAZUUFVULVIVAZAUUDFPTUJUVDUNVUAUWBUUIVPV
          GVBVCZUWBUUJVPVGVBVCZVUAVUPVUQXCZUWBUULVPVGVBVCZUWBUUMVPVGVBVCZXCZABC
          DEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSYDZWAZWAZYEAUU
          DGQTUKUVDUOVUAVUPVUQVVCXRYEVUAUXSVUJVMVNVUKVMVNVUMVUNXCVUOVJAUXSUUDUY
          BYBZVUAUWKUWBAUXTUUDUYCYBVUAUWBUUIVMVUAVUPUWBUUIVCZVVDAVUPVVFWRUUDAUW
          BUUIAUWBUWDWKZAUUIUVFYOYHYBYPAUVCUUDUVFYBYIZYJVUAUWLUWBAUYAUUDUYDYBVV
          HYJUUFVUJVUKXTYAYCAVULVUDVCUUDAUWMUWCVPVGVULVUDAUWKUWLUWBUWBAUWKUYCYO
          AUWLUYDYOVVGVVGYKAUWCUUTUWMVPUWFYLYMYBWMVUAUUFUWNUWBVPVGZUWOUWBVPVGZV
          KVGZVUEVIVUAUUFVVIVIVAZUUFVVJVIVAZUUFVVKVIVAZAUUDHRTULUVDUPVUAVUSVUTV
          UAVURVVAVVBXRZWAYEAUUDISTUMUVDUQVUAVUSVUTVVOXRYEVUAUXSVVIVMVNVVJVMVNV
          VLVVMXCVVNVJVVEVUAUWNUWBAUYLUUDUYNYBVVHYJVUAUWOUWBAUYMUUDUYOYBVVHYJUU
          FVVIVVJXTYAYCAVVKVUEVCUUDAUWPUWCVPVGVVKVUEAUWNUWOUWBUWBAUWNUYNYOAUWOU
          YOYOVVGVVGYKAUWCUUTUWPVPUWFYLYMYBWMVUAUXSVUDVMVNVUEVMVNVUGVUHXCVUIVJV
          VEVUAUWMUUTAUYQUUDUYSYBVUAUWCUUTVMAUWCUUTVCUUDUWFYBVUAUWBUWBVVHVVHYGY
          NZYJVUAUWPUUTAUYRUUDUYTYBVVPYJUUFVUDVUEXTYAYCAVUFVUBVCUUDAUWQUVAVPVGV
          UFVUBAUWMUWPUUTUUTAUWMUYSYOAUWPUYTYOUWEUWEYKAUVAUUFUWQVPUWGYLYMYBWMVU
          AUXSUWQVMVNZUWRVUCWRVVEAVVQUUDAUWMUWPUYSUYTYGYBUUFUWQYQYRXAYSAUUGUWQV
          CUUEUSYBYTUUAUUB $.

        $( Lemma for ~ 4sq .  (Contributed by Mario Carneiro, 16-Jul-2014.)
           (Revised by AV, 14-Sep-2020.) $)
        4sqlem17 $p |- -. ph $=
          ( c2 cexp co cmul cdvds wbr cc0 wceq wo cle wi 4sqlem16 simpld cr clt
          cinf c1 cuz cfv wss wcel cn cv crab ssrab2 eqsstri nnuz sseqtri wn c0
          wne 4sqlem13 infssuzcl sylancr sseldi nnred simprd ltned nncnd sqvald
          syl5eqel breq1d cz wb nnzd cprime syl syl2anc cn0 caddc cabs cdiv cre
          ci cim cgz cc gzreim gzcn absvalsq2d crred oveq1d crimd oveq12d eqtrd
          zred eqtr4d cmin eqid zcnd ax-icn mulcl addsub4d subdid oveq2d subcld
          4sqlem5 divdird divassd 3eqtrd eqeltrd dvdscmulr syl112anc necon3bbid
          prmz nnne0d dvdsprm 3bitrd mpbird 4sqlem14 elnn0 sylib syl5 syld mt3d
          ord orc divcan3d eqtr3d syl6eqr mulcomd a1i nnnn0d mul4sqlem eqeltrrd
          prmnn oveq1 eleq1d sylanbrc infssuzle syl5eqbr letri3d mpbir2and olcd
          elrab2 mpd pm2.65i ) ATUTVAVBZTJVCVBZVDVEZAKVFVGZKTVGZVHZUVSAUWAUVTAU
          WAKTVIVEZTKVIVEAUWCUWBUVSVJZABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJU
          KULUMUNUOUPUQURUSVKZVLATMVMVNVOZKVIUHAMVPVQVRZVSZKMVTZUWFKVIVEMWAUWGM
          NWBZJVCVBZLVTZNWAWCWAUGUWLNWAWDWEZWFWGZAKWAVTZKJVCVBZLVTZUWIAUWOUVSAU
          VSWHTJWJATJATAMWATUWMATUWFMUHAUWHMWIWJZUWFMVTUWNAUWRTJVNVEZABCDEJLMNO
          TUAUBUCUDUEUFUGUHWKZVLMVPWLWMWTWNZWOZAUWRUWSUWTWPWQAUVSTJAUVSTTVCVBZU
          VRVDVEZTJVDVEZTJVGZAUVQUXCUVRVDATATUXAWRZWSXAATXBVTZJXBVTZUXHTVFWJUXD
          UXEXCATUXAXDZAJXEVTZUXIUEJUUDXFUXJATUXAUUEZTTJUUAUUBATUTVQVRVTUXKUXEU
          XFXCUIUEJTUUFXGUUGUUCUUHZAUWOWHUVTUVSAUWOUVTAKXHVTUWOUVTVHABCDEFGHIJK
          LMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUUIKUUJUUKUUOUVTUWBAUV
          SUVTUWAUUPAUWCUWDUWEWPZUULUUMUUNZAFXMGVCVBZXIVBZXJVRUTVAVBZHXMIVCVBZX
          IVBZXJVRUTVAVBZXIVBZTXKVBZPXMQVCVBZXIVBZXJVRUTVAVBZRXMSVCVBZXIVBZXJVR
          UTVAVBZXIVBZTXKVBZVCVBZUWPLAUYLJKVCVBUWPAUYCJUYKKVCAUVRTXKVBUYCJAUVRU
          YBTXKAUVRFUTVAVBZGUTVAVBZXIVBZHUTVAVBZIUTVAVBZXIVBZXIVBUYBUSAUXRUYOUY
          AUYRXIAUXRUXQXLVRZUTVAVBZUXQXNVRZUTVAVBZXIVBUYOAUXQAUXQXOVTZUXQXPVTAF
          XBVTGXBVTVUCUJUKFGXQXGZUXQXRXFXSAUYTUYMVUBUYNXIAUYSFUTVAAFGAFUJYEZAGU
          KYEZXTYAAVUAGUTVAAFGVUEVUFYBYAYCYDAUYAUXTXLVRZUTVAVBZUXTXNVRZUTVAVBZX
          IVBUYRAUXTAUXTXOVTZUXTXPVTAHXBVTIXBVTVUKULUMHIXQXGZUXTXRXFXSAVUHUYPVU
          JUYQXIAVUGHUTVAAHIAHULYEZAIUMYEZXTYAAVUIIUTVAAHIVUMVUNYBYAYCYDYCYFYAA
          JTAJAUXKJWAVTUEJUVEXFZWRZUXGUXLUUQUURZAUYKPUTVAVBZQUTVAVBZXIVBZRUTVAV
          BZSUTVAVBZXIVBZXIVBZTXKVBKAUYJVVDTXKAUYFVUTUYIVVCXIAUYFUYEXLVRZUTVAVB
          ZUYEXNVRZUTVAVBZXIVBVUTAUYEAUYEXOVTZUYEXPVTAPXBVTZQXBVTZVVIAVVJFPYGVB
          ZTXKVBZXBVTZAFPTUJUXAUNYPZVLZAVVKGQYGVBZTXKVBZXBVTZAGQTUKUXAUOYPZVLZP
          QXQXGZUYEXRXFXSAVVFVURVVHVUSXIAVVEPUTVAAPQAPVVPYEZAQVWAYEZXTYAAVVGQUT
          VAAPQVWCVWDYBYAYCYDAUYIUYHXLVRZUTVAVBZUYHXNVRZUTVAVBZXIVBVVCAUYHAUYHX
          OVTZUYHXPVTARXBVTZSXBVTZVWIAVWJHRYGVBZTXKVBZXBVTZAHRTULUXAUPYPZVLZAVW
          KISYGVBZTXKVBZXBVTZAISTUMUXAUQYPZVLZRSXQXGZUYHXRXFXSAVWFVVAVWHVVBXIAV
          WERUTVAARSARVWPYEZASVXAYEZXTYAAVWGSUTVAARSVXCVXDYBYAYCYDYCYAURUUSYCAJ
          KVUPAKUXOWRUUTYDABCDEUXQUXTUYEUYHLOTUYBUYJUBVUDVULVWBVXBUYBYHUYJYHUXA
          AUXQUYEYGVBZTXKVBZVVMXMVVRVCVBZXIVBZXOAVXFVVLXMVVQVCVBZXIVBZTXKVBVVMV
          XITXKVBZXIVBVXHAVXEVXJTXKAVXEVVLUXPUYDYGVBZXIVBVXJAFUXPPUYDAFUJYIZAXM
          XPVTZGXPVTUXPXPVTYJAGUKYIZXMGYKWMAPVVPYIZAVXNQXPVTUYDXPVTYJAQVWAYIZXM
          QYKWMYLAVXIVXLVVLXIAXMGQVXNAYJUVAZVXOVXQYMYNYFYAAVVLVXITAFPVXMVXPYOAV
          XNVVQXPVTVXIXPVTYJAGQVXOVXQYOZXMVVQYKWMUXGUXLYQAVXKVXGVVMXIAXMVVQTVXR
          VXSUXGUXLYRYNYSAVVNVVSVXHXOVTAVVJVVNVVOWPAVVKVVSVVTWPVVMVVRXQXGYTAUXT
          UYHYGVBZTXKVBZVWMXMVWRVCVBZXIVBZXOAVYAVWLXMVWQVCVBZXIVBZTXKVBVWMVYDTX
          KVBZXIVBVYCAVXTVYETXKAVXTVWLUXSUYGYGVBZXIVBVYEAHUXSRUYGAHULYIZAVXNIXP
          VTUXSXPVTYJAIUMYIZXMIYKWMARVWPYIZAVXNSXPVTUYGXPVTYJASVXAYIZXMSYKWMYLA
          VYDVYGVWLXIAXMISVXRVYIVYKYMYNYFYAAVWLVYDTAHRVYHVYJYOAVXNVWQXPVTVYDXPV
          TYJAISVYIVYKYOZXMVWQYKWMUXGUXLYQAVYFVYBVWMXIAXMVWQTVXRVYLUXGUXLYRYNYS
          AVWNVWSVYCXOVTAVWJVWNVWOWPAVWKVWSVWTWPVWMVWRXQXGYTAUYCJXHVUQAJVUOUVBY
          TUVCUVDUWLUWQNKWAMUWJKVGUWKUWPLUWJKJVCUVFUVGUGUVNUVHKMVPUVIWMUVJAKTAK
          UXOWOUXBUVKUVLUVMUXNUVOUXMUVP $.
      $}

      $( Lemma for ~ 4sq .  Inductive step, odd prime case.  (Contributed by
         Mario Carneiro, 16-Jul-2014.)  (Revised by AV, 14-Sep-2020.) $)
      4sqlem18 $p |- ( ph -> P e. S ) $=
        ( co va vb vc vd c1 cmul cprime wcel cn prmnn syl nncnd mulid2d wceq c2
        cuz cfv wa cv cexp caddc cz wrex wn cr clt cinf wss c0 wne crab eqsstri
        ssrab2 nnuz sseqtri wbr 4sqlem13 simpld infssuzcl syl5eqel oveq1 eleq1d
        sylancr elrab2 sylib simprd 4sqlem2 adantr w3a cdiv cmo cmin simp1l cc0
        wi cfz simp1r simp2ll simp2lr simp2rl simp2rr eqid simp3 pm2.21i 3expia
        4sqlem17 anassrs rexlimdvva mpd pm2.01da elnn1uz2 mt3d eqeltrrd simprbi
        wo ord ) AUEFUFTZFGAFAFAFUGUHZFUIUHPFUJUKULUMAUEHUHZXQGUHZAKUEHAKUEUNZK
        UOUPUQUHZAYBAYBURZKFUFTZUAUSZUOUTTUBUSZUOUTTVATUCUSZUOUTTUDUSZUOUTTVATV
        ATUNZUDVBVCUCVBVCZUBVBVCUAVBVCZYBVDZAYKYBAYDGUHZYKAKUIUHZYMAKHUHYNYMURA
        KHVEVFVGZHSAHUEUPUQZVHHVIVJZYOHUHHUIYPHIUSZFUFTZGUHZIUIVKUIRYTIUIVMVLVN
        VOAYQKFVFVPABCDEFGHIJKLMNOPQRSVQVRHUEVSWCVTZYTYMIKUIHYRKUNYSYDGYRKFUFWA
        WBRWDWEZWFBCDEYDGJUAUBUCUDMWGWEWHYCYJYLUAUBVBVBYCYEVBUHZYFVBUHZURZURYIY
        LUCUDVBVBYCUUEYGVBUHZYHVBUHZURZYIYLWOYCUUEUUHURZYIYLYCUUIYIWIZYLUUJBCDE
        YEYFYGYHFYEKUOWJTZVATKWKTUUKWLTZUOUTTYFUUKVATKWKTUUKWLTZUOUTTVATYGUUKVA
        TKWKTUUKWLTZUOUTTYHUUKVATKWKTUUKWLTZUOUTTVATVATKWJTZGHIJUULUUMUUNUUOKLM
        UUJALUIUHAYBUUIYIWMZNUKUUJAFUOLUFTZUEVATUNUUQOUKUUJAXRUUQPUKUUJAWNUURWP
        TGVHUUQQUKRSAYBUUIYIWQUUCUUDUUHYCYIWRUUCUUDUUHYCYIWSUUFUUGUUEYCYIWTUUFU
        UGUUEYCYIXAUULXBUUMXBUUNXBUUOXBUUPXBYCUUIYIXCXFXDXEXGXHXHXIXJAYAYBAYNYA
        YBXOAYNYMUUBVRKXKWEXPXLUUAXMXSUEUIUHXTYTXTIUEUIHYRUEUNYSXQGYRUEFUFWAWBR
        WDXNUKXM $.
    $}

    $( Lemma for ~ 4sq .  The proof is by strong induction - we show that if
       all the integers less than ` k ` are in ` S ` , then ` k ` is as well.
       In this part of the proof we do the induction argument and dispense with
       all the cases except the odd prime case, which is sent to ~ 4sqlem18 .
       If ` k ` is ` 0 , 1 , 2 ` , we show ` k e. S ` directly; otherwise if
       ` k ` is composite, ` k ` is the product of two numbers less than it
       (and hence in ` S ` by assumption), so by ~ mul4sq ` k e. S ` .
       (Contributed by Mario Carneiro, 14-Jul-2014.)  (Revised by Mario
       Carneiro, 20-Jun-2015.) $)
    4sqlem19 $p |- NN0 = S $=
      ( wcel cn cc0 wceq c1 cmul co eleq1 c2 cexp caddc cfz wa vk vj vm vi cabs
      cn0 cv wo elnn0 cfv abs1 oveq1i sq1 eqtri sq0 oveq12i 1p0e1 cgz cz 1z zgz
      abs0 ax-mp 4sqlem4a mp2an eqeltrri cprime cmin wral wne cdif eldifsn crab
      0z csn cr clt cinf cdiv oddprm adantr eldifi prmnn nncn 3syl ax-1cn subcl
      sylancl 2cnd 2ne0 a1i divcan2d oveq1d npcan eqtr2d cun oveq2d cuz nnm1nn0
      cc elnn0uz sylib eluzfz1 fzsplit eqtrd wss fzsn snssi eqsstri 0p1e1 simpr
      dfss3 sylibr syl5eqss unssd eqsstrd oveq1 eleq1d cbvrabv 4sqlem18 sylanbr
      00id eqid an32s eqtr4i pm2.61ne wi mul4sq prmind2 id syl6eqel sylbi ssriv
      df-2 jaoi 4sqlem1 eqssi ) UFEUAUFEUAUGZUFHYRIHZYRJKZUHYREHZYRUIYSUUAYTUBU
      GZEHZLEHUCUGZEHZUDUGZEHZUUDUUFMNZEHZUUAUBUCUDYRUUBLEOUUBUUDEOUUBUUFEOUUBU
      UHEOUUBYREOLUEUJZPQNZJUEUJZPQNZRNZLEUUNLJRNLUUKLUUMJRUUKLPQNLUUJLPQUKULUM
      UNZUUMJPQNJUULJPQVBULUOUNZUPUQUNLURHZJURHZUUNEHLUSHUUQUTLVAVCZJUSHZUURVNJ
      VAVCZABCDLJEFGVDVEVFUUBVGHZUUEUCLUUBLVHNZSNZVIZTZUUCPEHZUUBPUUBPEOUVBUUBP
      VJZUVEUUCUVBUVHTUUBVGPVOZVKHZUVEUUCUUBVGPVLUVJUVETZABCDUUBEYRUUBMNZEHZUAI
      VMZUDFUVNVPVQVRZUVCPVSNZGUVJUVPIHUVEUUBVTWAUVKPUVPMNZLRNUVCLRNZUUBUVKUVQU
      VCLRUVKUVCPUVKUUBWTHZLWTHZUVCWTHUVKUVBUUBIHZUVSUVJUVBUVEUUBVGUVIWBWAZUUBW
      CZUUBWDWEZWFUUBLWGWHUVKWIPJVJUVKWJWKWLZWMUVKUVSUVTUVRUUBKUWDWFUUBLWNWHWOU
      WBUVKJUVQSNZJJSNZJLRNZUVCSNZWPZEUVKUWFJUVCSNZUWJUVKUVQUVCJSUWEWQUVKUVCJWR
      UJHZJUWKHUWKUWJKUVKUVCUFHZUWLUVKUVBUWAUWMUWBUWCUUBWSWEUVCXAXBJUVCXCJJUVCX
      DWEXEUVKUWGUWIEUWGEXFUVKUWGJVOZEUUTUWGUWNKVNJXGVCJEHUWNEXFUUMUUMRNZJEUWOJ
      JRNJUUMJUUMJRUUPUUPUPYBUNUURUURUWOEHUVAUVAABCDJJEFGVDVEVFZJEXHVCXIWKUVKUW
      IUVDEUWHLUVCSXJULUVKUVEUVDEXFUVJUVEXKUCUVDEXLXMXNXOXPUVMUUFUUBMNZEHUAUDIY
      RUUFKUVLUWQEYRUUFUUBMXQXRXSUVOYCXTYAYDUVGUVFUUKUUKRNZPEUWRLLRNPUUKLUUKLRU
      UOUUOUPYNYEUUQUUQUWREHUUSUUSABCDLLEFGVDVEVFWKYFUUEUUGTUUIYGUUDPWRUJZHUUFU
      WSHTABCDUUDUUFEFGYHWKYIYTYRJEYTYJUWPYKYOYLYMABCDEFGYPYQ $.
  $}

  ${
    $d a b c d m n w x y z A $.
    $( Lagrange's four-square theorem, or Bachet's conjecture: every
       nonnegative integer is expressible as a sum of four squares.  This is
       Metamath 100 proof #19.  (Contributed by Mario Carneiro,
       16-Jul-2014.) $)
    4sq $p |- ( A e. NN0 <-> E. a e. ZZ E. b e. ZZ E. c e. ZZ E. d e. ZZ
        A = ( ( ( a ^ 2 ) + ( b ^ 2 ) ) + ( ( c ^ 2 ) + ( d ^ 2 ) ) ) ) $=
      ( vx vy vz vw vm vn cv c2 cexp co caddc wceq cz wrex 2rexbidv cn0 4sqlem2
      cab eqeq1 cbvabv 4sqlem19 ) FGHIAUAJBCDEFGHIJLZFLMNOGLMNOPOHLMNOILMNOPOPO
      ZQZIRSHRSZGRSFRSZJUCKUKKLZUHQZIRSHRSZGRSFRSJKUGULQZUJUNFGRRUOUIUMHIRRUGUL
      UHUDTTUEUFUB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Van der Waerden's theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c AP $. $( Arithmetic progression $)
  $c MonoAP $. $( Monochromatic arithmetic progression $)
  $c PolyAP $. $( Polychromatic arithmetic progression $)

  $( The arithmetic progression function. $)
  cvdwa $a class AP $.

  $( The monochromatic arithmetic progression predicate. $)
  cvdwm $a class MonoAP $.

  $( The polychromatic arithmetic progression predicate. $)
  cvdwp $a class PolyAP $.

  ${
    $d a c d f i k m $.
    $( Define the arithmetic progression function, which takes as input a
       length ` k ` , a start point ` a ` , and a step ` d ` and outputs the
       set of points in this progression.  (Contributed by Mario Carneiro,
       18-Aug-2014.) $)
    df-vdwap $a |- AP = ( k e. NN0 |-> ( a e. NN , d e. NN |->
      ran ( m e. ( 0 ... ( k - 1 ) ) |-> ( a + ( m x. d ) ) ) ) ) $.

    $( Define the "contains a monochromatic AP" predicate.  (Contributed by
       Mario Carneiro, 18-Aug-2014.) $)
    df-vdwmc $a |- MonoAP = { <. k , f >. |
      E. c ( ran ( AP ` k ) i^i ~P ( `' f " { c } ) ) =/= (/) } $.

    $( Define the "contains a polychromatic collection of APs" predicate.  See
       ~ vdwpc for more information.  (Contributed by Mario Carneiro,
       18-Aug-2014.) $)
    df-vdwpc $a |- PolyAP = { <. <. m , k >. , f >. | E. a e. NN
      E. d e. ( NN ^m ( 1 ... m ) ) ( A. i e. ( 1 ... m )
      ( ( a + ( d ` i ) ) ( AP ` k ) ( d ` i ) ) C_
        ( `' f " { ( f ` ( a + ( d ` i ) ) ) } ) /\
      ( # ` ran ( i e. ( 1 ... m ) |-> ( f ` ( a + ( d ` i ) ) ) ) ) = m ) } $.
  $}

  ${
    $d a d m n x A $.  $d a d m n x D $.  $d a d k m n x K $.  $d m x X $.
    $( Define the arithmetic progression function, which takes as input a
       length ` k ` , a start point ` a ` , and a step ` d ` and outputs the
       set of points in this progression.  (Contributed by Mario Carneiro,
       18-Aug-2014.) $)
    vdwapfval $p |- ( K e. NN0 -> ( AP ` K ) = ( a e. NN , d e. NN |->
      ran ( m e. ( 0 ... ( K - 1 ) ) |-> ( a + ( m x. d ) ) ) ) ) $=
      ( vk cn cc0 cv c1 cmin co cfz cmul caddc cmpt crn cmpt2 cn0 wcel nnex w3a
      cvdwa simp1 oveq1d oveq2d mpteq1d rneqd mpt2eq3dva df-vdwap mpt2ex fvmpt
      wceq ) EBCDFFAGEHZIJKZLKZCHZAHDHZMKNKZOZPZQCDFFAGBIJKZLKZUROZPZQRUBUMBULZ
      CDFFUTVDVEUPFSZUQFSZUAZUSVCVHAUOVBURVHUNVAGLVHUMBIJVEVFVGUCUDUEUFUGUHEACD
      UICDFFVDTTUJUK $.

    $( The arithmetic progression function is a function.  (Contributed by
       Mario Carneiro, 18-Aug-2014.) $)
    vdwapf $p |- ( K e. NN0 -> ( AP ` K ) : ( NN X. NN ) --> ~P NN ) $=
      ( va vd vm cn0 wcel cn cxp cpw cvdwa cfv wf cc0 c1 cmin co cv wral eqid
      wa cfz cmul caddc cmpt crn cmpt2 wss simpll elfznn0 adantl nnnn0 ad2antlr
      nn0mulcld nnnn0addcl syl2anc fmptd frn syl nnex elpw2 sylibr rgen2a fmpt2
      mpbi vdwapfval feq1d mpbiri ) AEFZGGHZGIZAJKZLVIVJBCGGDMANOPZUAPZBQZDQZCQ
      ZUBPZUCPZUDZUEZUFZLZVTVJFZCGRBGRWBWCBCGVNGFZVPGFZTZVTGUGZWCWFVMGVSLWGWFDV
      MVRGVSWFVOVMFZTZWDVQEFVRGFWDWEWHUHWIVOVPWHVOEFWFVOVLUIUJWEVPEFWDWHVPUKULU
      MVNVQUNUOVSSUPVMGVSUQURVTGUSUTVAVBBCGGVTVJWAWASVCVDVHVIVJVKWADABCVEVFVG
      $.

    $( Value of the arithmetic progression function.  (Contributed by Mario
       Carneiro, 18-Aug-2014.) $)
    vdwapval $p |- ( ( K e. NN0 /\ A e. NN /\ D e. NN ) ->
      ( X e. ( A ( AP ` K ) D ) <->
        E. m e. ( 0 ... ( K - 1 ) ) X = ( A + ( m x. D ) ) ) ) $=
      ( vx va vd wcel cn co cv cmul caddc wceq cc0 cfz wrex cmpt crn cn0 w3a c1
      cvdwa cfv cab cmpt2 vdwapfval 3ad2ant1 oveqd oveq2 oveq12 sylan2 mpteq2dv
      cmin rneqd eqid ovex mptex rnex ovmpt2a 3adant1 eqtrd rnmpt syl6eq eleq2d
      wa cvv id syl6eqel rexlimivw eqeq1 rexbidv elab3 syl6bb ) DUAIZAJIZBJIZUB
      ZEABDUDUEZKZIEFLZACLZBMKZNKZOZCPDUCUOKZQKZRZFUFZIEWEOZCWHRZVSWAWJEVSWACWH
      WESZTZWJVSWAABGHJJCWHGLZWCHLZMKZNKZSZTZUGZKZWNVSVTXAABVPVQVTXAOVRCDGHUHUI
      UJVQVRXBWNOVPGHABJJWTWNXAWOAOZWPBOZVGZWSWMXECWHWRWEXDXCWQWDOWRWEOWPBWCMUK
      WOAWQWDNULUMUNUPXAUQWMCWHWEPWGQURUSUTVAVBVCCFWHWEWMWMUQVDVEVFWIWLFEWKEVHI
      CWHWKEWEVHWKVIAWDNURVJVKWBEOWFWKCWHWBEWEVLVMVNVO $.

    $( Remove the first element of an arithmetic progression.  (Contributed by
       Mario Carneiro, 11-Sep-2014.) $)
    vdwapun $p |- ( ( K e. NN0 /\ A e. NN /\ D e. NN ) ->
      ( A ( AP ` ( K + 1 ) ) D ) = ( { A } u. ( ( A + D ) ( AP ` K ) D ) ) ) $=
      ( vn vm wcel c1 caddc co cc0 wceq cmul wa wex cfz cmin cc oveq2d adantr
      cz vx cn0 cn w3a cvdwa cfv csn cun cv wo wrex wb peano2nn0 vdwapval simp1
      syl3an1 nn0cnd ax-1cn pncan sylancl eleq2d cuz nn0uz syl6eleq elfzp12 syl
      bitrd anbi1d andir syl6bb exbidv df-rex 19.43 bicomi nncn 3ad2ant3 mul02d
      3bitr4g 3ad2ant2 addid1d eqtrd eqeq2d c0ex oveq1 velsn simpr 0p1e1 oveq1i
      ceqsexv 1zzd nn0zd elfzelz fzsubel syl22anc mpbid 1m1e0 zcnd 1cnd subdird
      adantl mulid2d mulcld pncan3d eqtr2d subcl addassd eqtr4d syl2anc rexbidv
      rspcev eqeq1 syl5ibrcom expimpd exlimdv 0zd fzaddel npcan eleqtrd adddird
      peano2zm addcomd ovex eleq1 anbi12d spcev anbi2d rexlimdva impbid nnaddcl
      3adant1 syld3an2 bitr4d orbi12d elun syl6bbr eqrdv ) CUBFZAUCFZBUCFZUDZUA
      ABCGHIZUEUFIZAUGZABHIZBCUEUFIZUHZYTUAUIZUUBFZDUIZJKZUUGAUUIBLIZHIZKZMZDNZ
      UUIJGHIZCOIZFZUUMMZDNZUJZUUGUUFFZYTUUHUUMDJUUAGPIZOIZUKZUVAYQUUAUBFYRYSUU
      HUVEULCUMABDUUAUUGUNUPYTUUIUVDFZUUMMZDNUUNUUSUJZDNZUVEUVAYTUVGUVHDYTUVGUU
      JUURUJZUUMMUVHYTUVFUVJUUMYTUVFUUIJCOIZFZUVJYTUVDUVKUUIYTUVCCJOYTCQFZGQFZU
      VCCKYTCYQYRYSUOZUQURCGUSUTRVAYTCJVBUFZFUVLUVJULYTCUBUVPUVOVCVDUUIJCVEVFVG
      VHUUJUURUUMVIVJVKUUMDUVDVLUVIUVAUUNUUSDVMVNVRVGYTUVAUUGUUCFZUUGUUEFZUJUVB
      YTUUOUVQUUTUVRYTUUGAJBLIZHIZKZUUGAKUUOUVQYTUVTAUUGYTUVTAJHIAYTUVSJAHYTBYS
      YQBQFZYRBVOVPZVQRYTAYRYQAQFZYSAVOVSZVTWAWBUUMUWADJWCUUJUULUVTUUGUUJUUKUVS
      AHUUIJBLWDRWBWIUAAWEVRYTUUTUUGUUDEUIZBLIZHIZKZEJCGPIZOIZUKZUVRYTUUTUWLYTU
      USUWLDYTUURUUMUWLYTUURMZUWLUUMUULUWHKZEUWKUKZUWMUUIGPIZUWKFUULUUDUWPBLIZH
      IZKZUWOUWMUWPGGPIZUWJOIZUWKUWMUUIGCOIZFZUWPUXAFZUWMUUIUUQUXBYTUURWFUUPGCO
      WGWHVDUWMGTFZCTFZUUITFZUXEUXCUXDULUWMWJZUWMCYTYQUURUVOSWKUURUXGYTUUIUUPCW
      LWTZUXHUUIGGCWMWNWOUWTJUWJOWPWHVDUWMUULABUWQHIZHIUWRUWMUUKUXJAHUWMUXJBUUK
      BPIZHIUUKUWMUWQUXKBHUWMUWQUUKGBLIZPIUXKUWMUUIGBUWMUUIUXIWQZUWMWRYTUWBUURU
      WCSZWSUWMUXLBUUKPUWMBUXNXARWARUWMBUUKUXNUWMUUIBUXMUXNXBXCXDRUWMABUWQYTUWD
      UURUWESUXNUWMUWPBUWMUUIQFUVNUWPQFUXMURUUIGXEUTUXNXBXFXGUWNUWSEUWPUWKUWFUW
      PKZUWHUWRUULUXOUWGUWQUUDHUWFUWPBLWDRWBXJXHUUMUWIUWNEUWKUUGUULUWHXKXIXLXMX
      NYTUWIUUTEUWKYTUWFUWKFZMZUUTUWIUURUWHUULKZMZDNZUXQUWFGHIZUUQFZUWHAUYABLIZ
      HIZKZUXTUXQUYAUUPUWJGHIZOIZUUQUXQUXPUYAUYGFZYTUXPWFUXQJTFUWJTFZUWFTFZUXEU
      XPUYHULUXQXOUXQUXFUYIUXQCYTYQUXPUVOSZWKCXTVFUXPUYJYTUWFJUWJWLWTZUXQWJUWFG
      JUWJXPWNWOUXQUYFCUUPOUXQUVMUVNUYFCKUXQCUYKUQURCGXQUTRXRUXQUWHABUWGHIZHIUY
      DUXQABUWGYTUWDUXPUWESYTUWBUXPUWCSZUXQUWFBUXQUWFUYLWQZUYNXBZXFUXQUYCUYMAHU
      XQUYCUWGUXLHIZUYMUXQUWFGBUYOUXQWRUYNXSUXQUYMUWGBHIUYQUXQBUWGUYNUYPYAUXQUX
      LBUWGHUXQBUYNXARXGXGRXGUXSUYBUYEMDUYAUWFGHYBUUIUYAKZUURUYBUXRUYEUUIUYAUUQ
      YCUYRUULUYDUWHUYRUUKUYCAHUUIUYABLWDRWBYDYEXHUWIUUSUXSDUWIUUMUXRUURUUGUWHU
      ULXKYFVKXLYGYHYQUUDUCFZYRYSUVRUWLULYRYSUYSYQABYIYJUUDBECUUGUNYKYLYMUUGUUC
      UUEYNYOVGYP $.

    $( The first element of an arithmetic progression.  (Contributed by Mario
       Carneiro, 12-Sep-2014.) $)
    vdwapid1 $p |- ( ( K e. NN /\ A e. NN /\ D e. NN ) ->
      A e. ( A ( AP ` K ) D ) ) $=
      ( cn wcel w3a csn caddc co c1 cmin cvdwa cfv cun wss ssun1 wb snssg wceq
      cc 3ad2ant2 mpbiri 3ad2ant1 ax-1cn npcan sylancl fveq2d oveqd cn0 nnm1nn0
      nncn vdwapun syl3an1 eqtr3d eleqtrrd ) CDEZADEZBDEZFZAAGZABHIBCJKIZLMIZNZ
      ABCLMZIZUSAVCEZUTVCOZUTVBPUQUPVFVGQURAVCDRUAUBUSABVAJHIZLMZIZVEVCUSVIVDAB
      USVHCLUSCTEZJTEVHCSUPUQVKURCUKUCUDCJUEUFUGUHUPVAUIEUQURVJVCSCUJABVAULUMUN
      UO $.

    $( Value of a length-1 arithmetic progression.  (Contributed by Mario
       Carneiro, 18-Aug-2014.) $)
    vdwap0 $p |- ( ( A e. NN /\ D e. NN ) -> ( A ( AP ` 0 ) D ) = (/) ) $=
      ( vx vm cn wcel wa cc0 cvdwa cfv co cv cmul caddc wceq c0 ax-mp cz wb 0z
      c1 cmin cfz wrex wn noel pm2.21i clt wbr 0re ltm1 peano2zm fzn mp2an mpbi
      cr eleq2s nrex cn0 0nn0 vdwapval mp3an1 mtbiri eq0rdv ) AEFZBEFZGZCABHIJK
      ZVGCLZVHFZVIADLZBMKNKOZDHHUAUBKZUCKZUDZVLDVNVLUEZVKPVNVKPFVPVKUFUGVMHUHUI
      ZVNPOZHUPFVQUJHUKQHRFZVMRFZVQVRSTVSVTTHULQHVMUMUNUOUQURHUSFVEVFVJVOSUTABD
      HVIVAVBVCVD $.

    $( Value of a length-1 arithmetic progression.  (Contributed by Mario
       Carneiro, 18-Aug-2014.) $)
    vdwap1 $p |- ( ( A e. NN /\ D e. NN ) -> ( A ( AP ` 1 ) D ) = { A } ) $=
      ( cn wcel wa c1 cvdwa cfv co csn caddc cc0 cun 1e0p1 fveq2i cn0 wceq 0nn0
      oveqi c0 vdwapun mp3an1 syl5eq nnaddcl vdwap0 sylancom uneq2d un0 syl6eq
      eqtrd ) ACDZBCDZEZABFGHZIZAJZABKIZBLGHIZMZUPUMUOABLFKIZGHZIZUSUNVAABFUTGN
      OSLPDUKULVBUSQRABLUAUBUCUMUSUPTMUPUMURTUPUKULUQCDURTQABUDUQBUEUFUGUPUHUIU
      J $.
  $}

  ${
    $d a c d f i k m w x z F $.  $d a c d f i k m w x z K $.  $d c x ph $.
    $d d f i k m J $.  $d a d f i k m M $.
    vdwmc.1 $e |- X e. _V $.
    vdwmc.2 $e |- ( ph -> K e. NN0 ) $.
    vdwmc.3 $e |- ( ph -> F : X --> R ) $.
    $( The predicate " The ` <. R , N >. ` -coloring ` F ` contains a
       monochromatic AP of length ` K ` ".  (Contributed by Mario Carneiro,
       18-Aug-2014.) $)
    vdwmc $p |- ( ph -> ( K MonoAP F <-> E. c E. a e. NN E. d e. NN
                  ( a ( AP ` K ) d ) C_ ( `' F " { c } ) ) ) $=
      ( vz vw cfv cv wex cn wrex wcel cvv vk vf cvdwm wbr crn ccnv csn cima cpw
      cvdwa cin c0 wne co wss cn0 wb wf fex sylancl wceq wa fveq2 rneqd imaeq1d
      cnveq pweqd ineqan12d neeq1d exbidv df-vdwmc brabga syl2anc cxp wfn selpw
      vdwapf ffn sseq1 syl5bb rexrn 4syl elin exbii df-rex 3bitr4ri cop syl6eqr
      n0 df-ov sseq1d rexxp 3bitr3g bitrd ) ADCUCUDZDUJNZUEZCUFZGOUGZUHZUIZUKZU
      LUMZGPZFOZHOZWPUNZWTUOZHQRFQRZGPADUPSZCTSZWOXDUQJAEBCURETSXKKIEBTCUSUTUAO
      ZUJNZUEZUBOZUFZWSUHZUIZUKZULUMZGPXDUAUBDCUCUPTXLDVAZXOCVAZVBZXTXCGYCXSXBU
      LYAYBXNWQXRXAYAXMWPXLDUJVCVDYBXQWTYBXPWRWSXOCVFVEVGVHVIVJUBUAGVKVLVMAXCXI
      GALOZXASZLWQRZMOZWPNZWTUOZMQQVNZRZXCXIAXJYJQUIZWPURWPYJVOYFYKUQJDVQYJYLWP
      VRYEYILMYJWPYEYDWTUOYDYHVAYILWTVPYDYHWTVSVTWAWBYDXBSZLPYDWQSYEVBZLPXCYFYM
      YNLYDWQXAWCWDLXBWIYELWQWEWFYIXHMFHQQYGXEXFWGZVAZYHXGWTYPYHYOWPNXGYGYOWPVC
      XEXFWPWJWHWKWLWMVJWN $.

    ${
      $d a c d R $.  $d a d ph $.
      vdwmc2.4 $e |- ( ph -> A e. X ) $.
      $( Expand out the definition of an arithmetic progression.  (Contributed
         by Mario Carneiro, 18-Aug-2014.) $)
      vdwmc2 $p |- ( ph -> ( K MonoAP F <-> E. c e. R E. a e. NN E. d e. NN
      A. m e. ( 0 ... ( K - 1 ) ) ( a + ( m x. d ) ) e. ( `' F " { c } ) ) ) $=
        ( vx cn wrex wcel wa c0 cvdwm wbr cv cvdwa cfv co ccnv csn cima wss wex
        cmul caddc cc0 c1 cmin cfz wral vdwmc wb wceq wne w3a vdwapid1 ne0i syl
        wi 3expb adantll ssn0 expcom wn disjsn wf adantr fimacnvdisj ex syl5bir
        cin necon1ad syld rexlimdvva pm4.71rd exbidv syl6bbr ffvelrnd 1nn ne0ii
        df-rex simpllr fveq2d oveqd vdwap0 eqtrd 0ss syl6eqss ralrimiva sylancr
        r19.2z ralrimivw syl2anc rexex cn0 wo elnn0 sylib mpjaodan wal vdwapval
        2thd sylan imbi1d albidv dfss2 ralcom4 ovex eleq1 ceqsalv r19.23v albii
        ralbii 3bitr3i 3bitr4g 2rexbidva rexbidv 3bitrd ) AFEUAUBHUCZJUCZFUDUEZ
        UFZEUGIUCZUHZUIZUJZJPQZHPQZIUKZYPICQZYGDUCYHULUFZUMUFZYMRZDUNFUOUPUFUQU
        FZURZJPQHPQZICQACEFGHIJKLMUSAFPRZYQYRUTFUNVAZAUUESZYQYKCRZYPSZIUKYRUUGY
        PUUIIUUGYPUUHUUGYNUUHHJPPUUGYGPRZYHPRZSZSZYNYMTVBZUUHUUMYJTVBZYNUUNVGUU
        EUULUUOAUUEUUJUUKUUOUUEUUJUUKVCYGYJRUUOYGYHFVDYJYGVEVFVHVIYNUUOUUNYJYMV
        JVKVFUUMUUHYMTUUHVLCYLVSTVAZUUMYMTVAZCYKVMUUGUUPUUQVGZUULUUGGCEVNZUURAU
        USUUEMVOUUSUUPUUQGCYLEVPVQVFVOVRVTWAWBWCWDYPICWIWEAUUFSZYQYRUUTYRYQUUTC
        TVBZYPICURYRAUVAUUFABEUEZCRUVAAGCBEMNWFCUVBVEVFVOUUTYPICUUTPTVBZYOHPURY
        PUOPWGWHZUUTYOHPUUTUUJSZUVCYNJPURYOUVDUVEYNJPUVEUUKSZYJTYMUVFYJYGYHUNUD
        UEZUFZTUVFYIUVGYGYHUVFFUNUDAUUFUUJUUKWJWKWLUUJUUKUVHTVAUUTYGYHWMVIWNYMW
        OWPWQYNJPWSWRWQYOHPWSWRWTYPICWSXAZYPICXBVFUVIXJAFXCRZUUEUUFXDLFXEXFXGAY
        PUUDICAYNUUCHJPPAUULSZOUCZYJRZUVLYMRZVGZOXHUVLYTVAZDUUBQZUVNVGZOXHZYNUU
        CUVKUVOUVROUVKUVMUVQUVNAUVJUULUVMUVQUTZLUVJUUJUUKUVTYGYHDFUVLXIVHXKXLXM
        OYJYMXNUVPUVNVGZOXHZDUUBURUWADUUBURZOXHUUCUVSUWADOUUBXOUWBUUADUUBUVNUUA
        OYTYGYSUMXPUVLYTYMXQXRYAUWCUVROUVPUVNDUUBXSXTYBYCYDYEYF $.
    $}

    vdwpc.4 $e |- ( ph -> M e. NN ) $.
    vdwpc.5 $e |- J = ( 1 ... M ) $.
    $( The predicate " The coloring ` F ` contains a polychromatic ` M ` -tuple
       of AP's of length ` K ` ".  A polychromatic ` M ` -tuple of AP's is a
       set of AP's with the same base point but different step lengths, such
       that each individual AP is monochromatic, but the AP's all have mutually
       distinct colors.  (The common basepoint is not required to have the same
       color as any of the AP's.)  (Contributed by Mario Carneiro,
       18-Aug-2014.) $)
    vdwpc $p |- ( ph -> ( <. M , K >. PolyAP F <-> E. a e. NN
      E. d e. ( NN ^m J ) ( A. i e. J ( ( a + ( d ` i ) ) ( AP ` K )
          ( d ` i ) ) C_ ( `' F " { ( F ` ( a + ( d ` i ) ) ) } ) /\
      ( # ` ran ( i e. J |-> ( F ` ( a + ( d ` i ) ) ) ) ) = M ) ) ) $=
      ( cn wcel cv cfv co vk vf cn0 cvv cop cvdwp wbr caddc cvdwa ccnv csn cima
      vm wss wral cmpt crn chash wceq wa cmap wrex wb wf fex sylancl cfz coprab
      c1 w3a df-br df-vdwpc eleq2i bitri simp1 oveq2d syl6eqr simp2 oveqd simp3
      fveq2d cnveqd fveq1d imaeq12d sseq12d raleqbidv mpteq12dv eqeq12d anbi12d
      sneqd rneqd rexeqbidv rexbidv eloprabga syl5bb syl3anc ) AGPQZFUCQZDUDQZG
      FUEZDUFUGZIRCRJRSZUHTZXBFUISZTZDUJZXCDSZUKZULZUNZCEUOZCEXGUPZUQZURSZGUSZU
      TZJPEVATZVBZIPVBZVCNLAHBDVDHUDQWSMKHBUDDVEVFXAWTDUEZXCXBUARZUISZTZUBRZUJZ
      XCYDSZUKZULZUNZCVIUMRZVGTZUOZCYKYFUPZUQZURSZYJUSZUTZJPYKVATZVBZIPVBZUMUAU
      BVHZQZWQWRWSVJXSXAXTUFQUUBWTDUFVKUFUUAXTUBCUAUMIJVLVMVNYTXSUMUAUBGFDPUCUD
      YJGUSZYAFUSZYDDUSZVJZYSXRIPUUFYQXPJYRXQUUFYKEPVAUUFYKVIGVGTEUUFYJGVIVGUUC
      UUDUUEVOZVPOVQZVPUUFYLXKYPXOUUFYIXJCYKEUUHUUFYCXEYHXIUUFYBXDXCXBUUFYAFUIU
      UCUUDUUEVRWAVSUUFYEXFYGXHUUFYDDUUCUUDUUEVTZWBUUFYFXGUUFXCYDDUUIWCZWJWDWEW
      FUUFYOXNYJGUUFYNXMURUUFYMXLUUFCYKYFEXGUUHUUJWGWKWAUUGWHWIWLWMWNWOWP $.
  $}

  ${
    $d a c d i m A $.  $d d i m D $.  $d d i I $.  $d a c d i m K $.
    $d a c d i F $.  $d i M $.  $d c i ph $.  $d i R $.  $d i W $.
    vdwlem1.r $e |- ( ph -> R e. Fin ) $.
    vdwlem1.k $e |- ( ph -> K e. NN ) $.
    vdwlem1.w $e |- ( ph -> W e. NN ) $.
    vdwlem1.f $e |- ( ph -> F : ( 1 ... W ) --> R ) $.
    vdwlem1.a $e |- ( ph -> A e. NN ) $.
    vdwlem1.m $e |- ( ph -> M e. NN ) $.
    vdwlem1.d $e |- ( ph -> D : ( 1 ... M ) --> NN ) $.
    vdwlem1.s $e |- ( ph -> A. i e. ( 1 ... M )
      ( ( A + ( D ` i ) ) ( AP ` K ) ( D ` i ) ) C_
      ( `' F " { ( F ` ( A + ( D ` i ) ) ) } ) ) $.
    vdwlem1.i $e |- ( ph -> I e. ( 1 ... M ) ) $.
    vdwlem1.e $e |- ( ph ->
      ( F ` A ) = ( F ` ( A + ( D ` I ) ) ) ) $.
    $( Lemma for ~ vdw .  (Contributed by Mario Carneiro, 12-Sep-2014.) $)
    vdwlem1 $p |- ( ph -> ( K + 1 ) MonoAP F ) $=
      ( va vd vc vm c1 caddc co cvdwm wbr cv cvdwa cfv ccnv csn cima wss cn wex
      wrex wcel cfz ffvelrnd cun cn0 wceq nnnn0d vdwapun syl3anc cle nnred nnuz
      cuz syl6eleq eluzfz1 nnaddcld nnrpd ltaddrpd ltled wral r19.21bi cnvimass
      syl wa cdm wf fdm syl5sseq adantr sstrd cmul cmin nnm1nn0 nn0uz ffvelrnda
      cc0 nncnd mul02d oveq2d addid1d eqtr2d oveq1 eqeq2d rspcev syl2anc mpbird
      wb vdwapval sseldd ralrimiva fveq2 rspcv sylc elfzle2 letrd cz nnzd elfz5
      eleq1d eqidd wfn ffn fniniseg 3syl mpbir2and snssd oveq12d fveq2d imaeq2d
      sneqd sseq12d sseqtr4d unssd eqsstrd sseq1d oveq2 rspc2ev sseq2d 2rexbidv
      fvex sneq spcev ovex peano2nn0 vdwmc ) AHUEUFUGZFUHUIUAUJZUBUJZUUEUKULZUG
      ZFUMZUCUJZUNZUOZUPZUBUQUSUAUQUSZUCURZAUUIUUJBFULZUNZUOZUPZUBUQUSUAUQUSZUU
      PABUQUTZGCULZUQUTZBUVCUUHUGZUUSUPZUVAOAUEIVAUGZUQGCQSVBZAUVEBUNZBUVCUFUGZ
      UVCHUKULZUGZVCZUUSAHVDUTZUVBUVDUVEUVMVEAHLVFZOUVHBUVCHVGVHAUVIUVLUUSABUUS
      ABUUSUTZBUEJVAUGZUTZUUQUUQVEZAUVRBJVIUIZABBUECULZUFUGZJABOVJZAUWBABUWAOAU
      VGUQUECQAIUEVLULZUTUEUVGUTZAIUQUWDPVKVMUEIVNWBZVBZVOVJZAJMVJABUWBUWCUWHAB
      UWAUWCAUWAUWGVPVQVRAUWBUVQUTZUWBJVIUIAUWEBEUJZCULZUFUGZUVQUTZEUVGVSUWIUWF
      AUWMEUVGAUWJUVGUTZWCZUWLUWKUVKUGZUVQUWLUWOUWPUUJUWLFULZUNZUOZUVQAUWPUWSUP
      ZEUVGRVTAUWSUVQUPUWNAFWDZUWSUVQFUWRWAAUVQDFWEZUXAUVQVENUVQDFWFWBWGWHWIUWO
      UWLUWPUTZUWLUWLUDUJZUWKWJUGZUFUGZVEZUDWOHUEWKUGZVAUGZUSZUWOWOUXIUTZUWLUWL
      WOUWKWJUGZUFUGZVEZUXJAUXKUWNAUXHWOVLULZUTUXKAUXHVDUXOAHUQUTZUXHVDUTLHWLWB
      WMVMWOUXHVNWBWHUWOUXMUWLWOUFUGUWLUWOUXLWOUWLUFUWOUWKUWOUWKAUVGUQUWJCQWNZW
      PWQWRUWOUWLUWOUWLUWOBUWKAUVBUWNOWHUXQVOZWPWSWTUXGUXNUDWOUXIUXDWOVEZUXFUXM
      UWLUXSUXEUXLUWLUFUXDWOUWKWJXAWRXBXCXDUWOUVNUWLUQUTUWKUQUTUXCUXJXFUWOHAUXP
      UWNLWHVFUXRUXQUWLUWKUDHUWLXGVHXEXHXIUWMUWIEUEUVGUWJUEVEZUWLUWBUVQUXTUWKUW
      ABUFUWJUECXJWRXRXKXLUWBUEJXMWBXNABUWDUTJXOUTUVRUVTXFABUQUWDOVKVMAJMXPBUEJ
      XQXDXEAUUQXSAUXBFUVQXTUVPUVRUVSWCXFNUVQDFYAUVQUUQBFYBYCYDYEAUVLUUJUVJFULZ
      UNZUOZUUSAGUVGUTUWTEUVGVSUVLUYCUPZSRUWTUYDEGUVGUWJGVEZUWPUVLUWSUYCUYEUWLU
      VJUWKUVCUVKUYEUWKUVCBUFUWJGCXJZWRZUYFYFUYEUWRUYBUUJUYEUWQUYAUYEUWLUVJFUYG
      YGYIYHYJXKXLAUURUYBUUJAUUQUYATYIYHYKYLYMUUTUVFBUUGUUHUGZUUSUPUAUBBUVCUQUQ
      UUFBVEUUIUYHUUSUUFBUUGUUHXAYNUUGUVCVEUYHUVEUUSUUGUVCBUUHYOYNYPVHUUOUVAUCU
      UQBFYSUUKUUQVEZUUNUUTUAUBUQUQUYIUUMUUSUUIUYIUULUURUUJUUKUUQYTYHYQYRUUAWBA
      DFUUEUVQUAUCUBUEJVAUUBAUVNUUEVDUTUVOHUUCWBNUUDXE $.
  $}

  ${
    $d a b c d m x F $.  $d a b c d m n x K $.  $d m x M $.  $d a c d m x ph $.
    $d a c d m x G $.  $d b d m x N $.  $d x R $.  $d x W $.
    vdwlem2.r $e |- ( ph -> R e. Fin ) $.
    vdwlem2.k $e |- ( ph -> K e. NN0 ) $.
    vdwlem2.w $e |- ( ph -> W e. NN ) $.
    vdwlem2.n $e |- ( ph -> N e. NN ) $.
    vdwlem2.f $e |- ( ph -> F : ( 1 ... M ) --> R ) $.
    vdwlem2.m $e |- ( ph -> M e. ( ZZ>= ` ( W + N ) ) ) $.
    vdwlem2.g $e |- G = ( x e. ( 1 ... W ) |-> ( F ` ( x + N ) ) ) $.
    $( Lemma for ~ vdw .  (Contributed by Mario Carneiro, 12-Sep-2014.) $)
    vdwlem2 $p |- ( ph -> ( K MonoAP G -> K MonoAP F ) ) $=
      ( cfv co cn wcel va vd vc vb vm vn cvdwa ccnv csn cima wss wrex wex cvdwm
      cv wbr wa caddc id nnaddcl syl2anr cmul wceq cc0 c1 cfz simpllr ad3antrrr
      cmin nncnd elfznn0 adantl nn0cnd simplrl mulcld add32d wral simplrr oveq1
      cn0 oveq2d eqeq2d rspcev mpan2 wb ad2antrr adantr vdwapval syl3anc mpbird
      eqid sseldd wfn wf cuz elfznn nnuz syl6eleq cz elfzuz3 nnzd eluzadd uztrn
      syl2anc elfzuzb sylanbrc ffvelrnda syldan fmptd ffn fniniseg mpbid simpld
      syl ralrimiva eleq1d rspcv sylc eqeltrd fveq2d fvmpt simprd 3eqtr2d eleq1
      fvex jca fveq2 eqeq1d anbi12d syl5ibrcom rexlimdva 3imtr4d ssrdv reximdva
      simprl expr sseq1d rexbidv ovex vdwmc syl6an eximdv ) AUAUOZUBUOZFUGQZRZE
      UHUCUOZUIZUJZUKZUBSULZUASULZUCUMUDUOZUUDUUERZDUHUUHUJZUKZUBSULZUDSULZUCUM
      FEUNUPFDUNUPAUULUURUCAUUKUURUASAUUCSTZUQZUUCHURRZSTZUUKUVAUUDUUERZUUOUKZU
      BSULZUURUUSUUSHSTZUVBAUUSUSMUUCHUTVAZUUTUUJUVDUBSUUTUUDSTZUUJUVDUUTUVHUUJ
      UQZUQZBUVCUUOUVJBUOZUVAUEUOZUUDVBRZURRZVCZUEVDFVEVIRZVFRZULZUVKVEGVFRZTZU
      VKDQZUUGVCZUQZUVKUVCTZUVKUUOTZUVJUVOUWCUEUVQUVJUVLUVQTZUQZUWCUVOUVNUVSTZU
      VNDQZUUGVCZUQUWGUWHUWJUWGUVNUUCUVMURRZHURRZUVSUWGUUCHUVMUWGUUCAUUSUVIUWFV
      GZVJUWGHAUVFUUSUVIUWFMVHVJUWGUVLUUDUWGUVLUWFUVLVTTUVJUVLUVPVKVLVMUWGUUDUU
      TUVHUUJUWFVNZVJVOVPZUWGUWKVEIVFRZTZUVKHURRZUVSTZBUWPVQZUWLUVSTZUWGUWQUWKE
      QZUUGVCZUWGUWKUUITZUWQUXCUQZUWGUUFUUIUWKUUTUVHUUJUWFVRUWGUWKUUFTZUWKUUCUF
      UOZUUDVBRZURRZVCZUFUVQULZUWFUXKUVJUWFUWKUWKVCZUXKUWKWKUXJUXLUFUVLUVQUXGUV
      LVCZUXIUWKUWKUXMUXHUVMUUCURUXGUVLUUDVBVSWAWBWCWDVLUWGFVTTZUUSUVHUXFUXKWEU
      VJUXNUWFAUXNUUSUVIKWFZWGUWMUWNUUCUUDUFFUWKWHWIWJWLUWGEUWPWMZUXDUXEWEAUXPU
      USUVIUWFAUWPCEWNUXPABUWPUWRDQZCEAUVKUWPTZUWSUXQCTAUXRUQZUWRVEWOQZTGUWRWOQ
      ZTZUWSUXSUWRSUXTUXRUVKSTUVFUWRSTAUVKIWPMUVKHUTVAWQWRUXSGIHURRZWOQTZUYCUYA
      TZUYBAUYDUXROWGUXRIUVKWOQTHWSTUYEAUVKVEIWTAHMXAHUVKIXBVAUYCGUWRXCXDUWRVEG
      XEXFZAUVSCUWRDNXGXHPXIZUWPCEXJXNVHUWPUUGUWKEXKXNXLZXMZAUWTUUSUVIUWFAUWSBU
      WPUYFXOVHUWSUXABUWKUWPUVKUWKVCZUWRUWLUVSUVKUWKHURVSZXPXQXRXSUWGUWIUWLDQZU
      XBUUGUWGUVNUWLDUWOXTUWGUWQUXBUYLVCUYIBUWKUXQUYLUWPEUYJUWRUWLDUYKXTPUWLDYE
      YAXNUWGUWQUXCUYHYBYCYFUVOUVTUWHUWBUWJUVKUVNUVSYDUVOUWAUWIUUGUVKUVNDYGYHYI
      YJYKUVJUXNUVBUVHUWDUVRWEUXOUUTUVBUVIUVGWGUUTUVHUUJYOUVAUUDUEFUVKWHWIUVJDU
      VSWMZUWEUWCWEAUYMUUSUVIAUVSCDWNUYMNUVSCDXJXNWFUVSUUGUVKDXKXNYLYMYPYNUUQUV
      EUDUVASUUMUVAVCZUUPUVDUBSUYNUUNUVCUUOUUMUVAUUDUUEVSYQYRWCUUAYKUUBACEFUWPU
      AUCUBVEIVFYSKUYGYTACDFUVSUDUCUBVEGVFYSKNYTYL $.
  $}

  ${
    $d k m n x y z A $.  $d a d i j k m x y z G $.  $d a d i j k m n x y z K $.
    $d i j m x J $.  $d d i x P $.  $d a d i j k m x y z ph $.  $d i k x y R $.
    $d i j m n x y z B $.  $d a d i k m x y z H $.  $d a d i j k m x y M $.
    $d j k m n x y z D $.  $d i j m n x y E $.  $d i j k m x y z W $.
    $d a d i x T $.  $d k m x y z V $.
    vdwlem3.v $e |- ( ph -> V e. NN ) $.
    vdwlem3.w $e |- ( ph -> W e. NN ) $.
    ${
      vdwlem3.a $e |- ( ph -> A e. ( 1 ... V ) ) $.
      vdwlem3.b $e |- ( ph -> B e. ( 1 ... W ) ) $.
      $( Lemma for ~ vdw .  (Contributed by Mario Carneiro, 13-Sep-2014.) $)
      vdwlem3 $p |- ( ph -> ( B + ( W x. ( ( A - 1 ) + V ) ) ) e.
        ( 1 ... ( W x. ( 2 x. V ) ) ) ) $=
        ( c1 co caddc cmul wcel cle wbr cn syl nnred cr cmin cfz elfznn nnm1nn0
        c2 cn0 nn0nnaddcl syl2anc nnmulcld nnaddcld 2nn nnmulcl sylancr elfzle2
        wb nnre leadd1 syl3an syl3anc mpbid nncnd 1cnd adddid nn0cnd addassd cc
        ax-1cn pncan3 oveq1d eqtr3d oveq2d mulid1d 3eqtr3d breqtrrd 2timesd cc0
        wceq leadd1dd clt nngt0d lemul2 syl112anc cuz cfv cz nnuz syl6eleq nnzd
        letrd elfz5 mpbird ) ACEBJUAKZDLKZMKZLKZJEUEDMKZMKZUBKNZWOWQOPZAWOEBDLK
        ZMKZWQAWOACWNACJEUBKNZCQNZICEUCRZAEWMGAWLUFNZDQNZWMQNABQNZXEABJDUBKNZXG
        HBDUCRZBUDRZFWLDUGUHZUIZUJZSAXAAEWTGABDXIFUJZUISAWQAEWPGAUEQNXFWPQNUKFU
        EDULUMZUIZSAWOEWNLKZXAOACEOPZWOXQOPZAXBXRICJEUNRAXCEQNZWNQNZXRXSUOZXDGX
        LXCCTNXTETNZYAWNTNYBCUPEUPWNUPCEWNUQURUSUTAEJWMLKZMKEJMKZWNLKXAXQAEJWMA
        EGVAZAVBZAWMXKVAVCAYDWTEMAJWLLKZDLKYDWTAJWLDYGAWLXJVDADFVAZVEAYHBDLAJVF
        NBVFNYHBVQVGABXIVAJBVHUMVIVJVKAYEEWNLAEYFVLVIVMVNAWTWPOPZXAWQOPZAWTDDLK
        WPOABDDABXISADFSZYLAXHBDOPHBJDUNRVRADYIVOVNAWTTNWPTNYCVPEVSPYJYKUOAWTXN
        SAWPXOSAEGSAEGVTWTWPEWAWBUTWIAWOJWCWDZNWQWENWRWSUOAWOQYMXMWFWGAWQXPWHWO
        JWQWJUHWK $.
    $}

    vdwlem4.r $e |- ( ph -> R e. Fin ) $.
    vdwlem4.h $e |- ( ph -> H : ( 1 ... ( W x. ( 2 x. V ) ) ) --> R ) $.
    vdwlem4.f $e |- F = ( x e. ( 1 ... V ) |-> ( y e. ( 1 ... W ) |->
      ( H ` ( y + ( W x. ( ( x - 1 ) + V ) ) ) ) ) ) $.
    $( Lemma for ~ vdw .  (Contributed by Mario Carneiro, 12-Sep-2014.) $)
    vdwlem4 $p |- ( ph -> F : ( 1 ... V ) --> ( R ^m ( 1 ... W ) ) ) $=
      ( c1 cfz co cv cmul wcel ad2antrr cmin caddc cmpt cmap wa wf c2 cn simplr
      cfv simpr vdwlem3 ffvelrnd eqid fmptd cfn wb adantr elmapg sylancl mpbird
      cvv ovex ) ABNGOPZCNHOPZCQZHBQZNUAPGUBPRPUBPZFUJZUCZDVEUDPZEAVGVDSZUEZVJV
      KSZVEDVJUFZVMCVEVIDVJVMVFVESZUEZNHUGGRPRPOPZDVHFAVRDFUFVLVPLTVQVGVFGHAGUH
      SVLVPITAHUHSVLVPJTAVLVPUIVMVPUKULUMVJUNUOVMDUPSZVEVBSVNVOUQAVSVLKURNHOVCD
      VEVJUPVBUSUTVAMUO $.

    vdwlem7.m $e |- ( ph -> M e. NN ) $.
    vdwlem7.g $e |- ( ph -> G : ( 1 ... W ) --> R ) $.
    vdwlem7.k $e |- ( ph -> K e. ( ZZ>= ` 2 ) ) $.
    vdwlem7.a $e |- ( ph -> A e. NN ) $.
    vdwlem7.d $e |- ( ph -> D e. NN ) $.
    vdwlem7.s $e |- ( ph -> ( A ( AP ` K ) D ) C_ ( `' F " { G } ) ) $.
    ${
      vdwlem6.b $e |- ( ph -> B e. NN ) $.
      vdwlem6.e $e |- ( ph -> E : ( 1 ... M ) --> NN ) $.
      vdwlem6.s $e |- ( ph -> A. i e. ( 1 ... M )
        ( ( B + ( E ` i ) ) ( AP ` K ) ( E ` i ) ) C_
          ( `' G " { ( G ` ( B + ( E ` i ) ) ) } ) ) $.
      vdwlem6.j $e |- J = ( i e. ( 1 ... M ) |->
        ( G ` ( B + ( E ` i ) ) ) ) $.
      vdwlem6.r $e |- ( ph -> ( # ` ran J ) = M ) $.
      vdwlem6.t $e |- T = ( B + ( W x. ( ( A + ( V - D ) ) - 1 ) ) ) $.
      vdwlem6.p $e |- P = ( j e. ( 1 ... ( M + 1 ) ) |->
        ( if ( j = ( M + 1 ) , 0 , ( E ` j ) ) + ( W x. D ) ) ) $.
      $( Lemma for ~ vdw .  (Contributed by Mario Carneiro, 12-Sep-2014.) $)
      vdwlem5 $p |- ( ph -> T e. NN ) $=
        ( cmin co caddc c1 cmul cn wcel cn0 nnnn0d nncnd subcld npcand subsub4d
        addcomd oveq2d eqtrd cuz cfv cfz ccnv csn cima cnvimass cmap wf vdwlem4
        cdm wceq fdm syl syl5sseq cvdwa ssun2 uz2m1nn nnaddcld vdwapid1 syl3anc
        cun c2 sseldi eluz2nn ax-1cn npcan sylancl fveq2d oveqd nnm1nn0 vdwapun
        cc eqtr3d eleqtrrd elfzuz3 uznn0sub eqeltrd nn0nnaddcl syl2anc eqeltrrd
        sseldd nn0mulcld nnnn0addcl syl5eqel ) AIETDSFUSUTZVAUTZVBUSUTZVCUTZVAU
        TZVDUQAEVDVEYCVFVEYDVDVEULATYBATUBVGAYAVDVEYBVFVEADXTUIAXTDUSUTZDVAUTZX
        TVDAXTDASFASUAVHZAFUJVHZVIADUIVHZVJAYEVFVEDVDVEZYFVDVEAYESDFVAUTZUSUTZV
        FAYESFDVAUTZUSUTYLASFDYGYHYIVKAYMYKSUSAFDYHYIVLVMVNASYKVOVPVEZYLVFVEAYK
        VBSVQUTZVEYNAMVRNVSZVTZYOYKAMWEZYQYOMYPWAAYOHVBTVQUTWBUTZMWCYRYOWFABCHM
        OSTUAUBUCUDUEWDYOYSMWGWHWIADFQWJVPZUTZYQYKUKAYKDVSZYKFQVBUSUTZWJVPUTZWP
        ZUUAAUUDUUEYKUUDUUBWKAUUCVDVEZYKVDVEFVDVEZYKUUDVEAQWQVOVPVEZUUFUHQWLWHA
        DFUIUJWMUJYKFUUCWNWOWRADFUUCVBVAUTZWJVPZUTZUUAUUEAUUJYTDFAUUIQWJAQXGVEV
        BXGVEUUIQWFAQAUUHQVDVEZUHQWSWHZVHWTQVBXAXBXCXDAUUCVFVEZYJUUGUUKUUEWFAUU
        LUUNUUMQXEWHUIUJDFUUCXFWOXHXIXPXPYKVBSXJWHYKSXKWHXLUIYEDXMXNXOWMYAXEWHX
        QEYCXRXNXS $.

      $( Lemma for ~ vdw .  (Contributed by Mario Carneiro, 13-Sep-2014.) $)
      vdwlem6 $p |- ( ph ->
        ( <. ( M + 1 ) , K >. PolyAP H \/ ( K + 1 ) MonoAP G ) ) $=
        ( vm va vd vn cfv crn wcel c1 caddc co wbr wo wa wceq cfz wrex wfn fvex
        cv wb cfn adantr cn cuz syl wf ccnv csn cima wss wral weq oveq2d fveq2d
        fveq2 fvmpt eqtr3d imp wn cmpt chash cmul biimpa ad2antrr nnnn0d syldan
        cc0 cn0 syl2anc ovex cmin cc nncnd nn0cnd adantlr mulcld adddid addsubd
        oveq1d eqtrd oveq1 eqeq2d vdwapval syl3anc sseldd ffn fniniseg nnaddcld
        eqid simpld mpteq2dv fveq1d 3eqtr4rd anbi12d syl5ibrcom addassd oveq12d
        eqeq1d cle sneqd imaeq2d cab vz cop cvdwp cvdwm fnmpti fvelrnb ax-mp c2
        eluz2nn cvdwa simprl simprr vdwlem1 rexlimdvaa syl5bi olcd cmap vdwlem5
        cif 0nn0 a1i nnuz syl6eleq elfzp1 ord con1d ffvelrnda ifclda nn0nnaddcl
        nnmulcld fmptd nnex elmap sylibr addcld nnm1nn0 elfznn0 nn0mulcld add4d
        adantl 1cnd add32d mul12d 3eqtr4d rspcev mpan2 biimpar vdwlem4 r19.21bi
        sylan2 vdwlem3 eqeltrd simprd mptex eleq1 rexlimdva 3imtr4d ssrdv ssun1
        jca cun fzsuc syl5sseqr eqeq1 ifbieq2d elfzle2 clt nnred ltp1d peano2re
        sselda ltnled mpbid breq1 notbid con2d syl5 add12d oveq1i subcld ax-1cn
        cr iffalse subcl sylancl npcand 3eqtr3d syl5eq addcomd 3eqtr2d cnvimass
        3eqtrd cdm fdm syl5sseq vdwapid1 3sstr4d ex eqtr4d eluzfz1 ne0i elfzuz3
        c0 wne cz nnzd uzid uzaddcl uztrn eluzle ralrimiva r19.2z rexlimiv fznn
        mpbir2and peano2nnd eluzfz2 iftrue addid2d sseq12d jaod sylbid ralrimiv
        idd rexeqdv rexun rexsn syl5bb orbi12d bitrd abbidv rnmpt df-sn uneq12i
        rexbidva unab eqtri 3eqtr4g wfo fzfi dffn4 mpbi fofi mp2an wi hashunsng
        cvv sylan ralbidv rneqd fveq1 rspc2ev vdwpc mpbird orcd pm2.61dan ) AEN
[encoded data, 9200 characters]
        YGVWMVWNVWOVWP $.
    $}

    $( Lemma for ~ vdw .  (Contributed by Mario Carneiro, 12-Sep-2014.) $)
    vdwlem7 $p |- ( ph -> ( <. M , K >. PolyAP G ->
      ( <. ( M + 1 ) , K >. PolyAP H \/ ( K + 1 ) MonoAP G ) ) ) $=
      ( va vi vd vj vk cop cvdwp wbr cv cfv caddc co cvdwa ccnv csn cima wss c1
      cfz wral cmpt crn chash wceq wa cn cmap wrex cvdwm ovex cn0 wcel cuz 2nn0
      wo c2 eluznn0 sylancr eqid cc0 cif cmul cmin ad2antrr cfn simplrl simplrr
      vdwpc nnex elmap sylib simprl fveq2 oveq2d oveq12d fveq2d imaeq2d sseq12d
      wf sneqd cbvralv cbvmptv simprr vdwlem6 ex rexlimdvva sylbid ) AKJUJHUKUL
      UEUMZUFUMZUGUMZUNZUOUPZXOJUQUNZUPZHURZXPHUNZUSZUTZVAZUFVBKVCUPZVDZUFYDXTV
      EZVFVGUNKVHZVIZUGVJYDVKUPZVLUEVJVLKVBUOUPZJUJIUKULJVBUOUPHVMULVSZAFUFHYDJ
      KVBMVCUPZUEUGVBMVCVNAVTVOVPJVTVQUNVPZJVOVPVRUAJVTWAWBTSYDWCWLAYHYKUEUGVJY
      IAXLVJVPZXNYIVPZVIZVIZYHYKYQYHVIZBCDXLEUHVBYJVCUPUHUMZYJVHWDYSXNUNWEMEWFU
      PUOUPVEZFXLMDLEWGUPUOUPVBWGUPWFUPUOUPZUIUHXNGHIYFJKLMALVJVPYPYHNWHAMVJVPY
      PYHOWHAFWIVPYPYHPWHAVBMVTLWFUPWFUPVCUPFIXCYPYHQWHRAKVJVPYPYHSWHAYLFHXCYPY
      HTWHAYMYPYHUAWHADVJVPYPYHUBWHAEVJVPYPYHUCWHADEXQUPGURHUSUTVAYPYHUDWHAYNYO
      YHWJYRYOYDVJXNXCAYNYOYHWKVJYDXNWMVBKVCVNWNWOYRYEXLUIUMZXNUNZUOUPZUUCXQUPZ
      XSUUDHUNZUSZUTZVAZUIYDVDYQYEYGWPYCUUIUFUIYDXMUUBVHZXRUUEYBUUHUUJXPUUDXOUU
      CXQUUJXOUUCXLUOXMUUBXNWQZWRZUUKWSUUJYAUUGXSUUJXTUUFUUJXPUUDHUULWTZXDXAXBX
      EWOUFUIYDXTUUFUUMXFYQYEYGXGUUAWCYTWCXHXIXJXK $.
  $}

  ${
    $d a d i m n x A $.  $d a d i m n x D $.  $d a d i m x F $.  $d i m x ph $.
    $d i m x C $.  $d a d i m n x K $.  $d a d i m x W $.
    vdwlem8.r $e |- ( ph -> R e. Fin ) $.
    vdwlem8.k $e |- ( ph -> K e. ( ZZ>= ` 2 ) ) $.
    vdwlem8.w $e |- ( ph -> W e. NN ) $.
    vdwlem8.f $e |- ( ph -> F : ( 1 ... ( 2 x. W ) ) --> R ) $.
    vdwlem8.c $e |- C e. _V $.
    vdwlem8.a $e |- ( ph -> A e. NN ) $.
    vdwlem8.d $e |- ( ph -> D e. NN ) $.
    vdwlem8.s $e |- ( ph -> ( A ( AP ` K ) D ) C_ ( `' G " { C } ) ) $.
    vdwlem8.g $e |- G = ( x e. ( 1 ... W ) |-> ( F ` ( x + W ) ) ) $.
    $( Lemma for ~ vdw .  (Contributed by Mario Carneiro, 18-Aug-2014.) $)
    vdwlem8 $p |- ( ph -> <. 1 , K >. PolyAP F ) $=
      ( wcel va vi vd vm vn c1 cop cvdwp wbr cv cfv caddc co cvdwa ccnv csn wss
      cima cfz wral cmpt chash wceq wa cn cmap wrex cmin nncnd addcomd subsub4d
      crn oveq2d eqtr4d subcld ppncand eqtrd cn0 nnaddcld cuz cdm cnvimass fvex
      dmmpti sseqtri syl6ss cun ssun2 c2 uz2m1nn syl vdwapid1 syl3anc sseldi cc
      eluz2nn ax-1cn npcan sylancl fveq2d oveqd nnnn0d eqtr3d sseldd nnnn0addcl
      vdwapun elfzuz3 3syl syl2anc wf 1nn sylancr cz 1z sylibr ovex cmul adantr
      ax-mp eqid oveq1 vdwapval wfn fniniseg sylib simpld simprd 3eqtr2d eqeq1d
      wb fvmpt anbi12d oveq12d sneqd imaeq2d mpteq2dv rneqd syl6eq cvv sseq12d
      eleqtrrd uznn0sub eqeltrrd wf1o f1of snssd fssd fzsn feq2i nnex elmap cc0
      f1osng elfznn0 nn0mulcl syl2anr nnuz syl6eleq eqeq2d rspcev mpan2 biimpar
      sylan2 fnmpti eluzelz eluzadd mpdan 2timesd nn0cnd add32d 3eltr4d elfzuzb
      sylanbrc jca eleq1 fveq2 syl5ibrcom rexlimdva 3imtr4d ssrdv fvsng addassd
      ffn npcand 3eqtrd 3sstr4d ralrimivw cxp fconstmpt syl6eqr elfz3 ne0i mp2b
      wne rnxp hashsng oveq1d ralbidv fveq1 elfz1eq sylan9eq ralbidva mpteq2dva
      c0 rspc2ev syl112anc a1i vdwpc mpbird ) AUFIUGGUHUIUAUJZUBUJZUCUJZUKZULUM
      ZUXMIUNUKZUMZGUOZUXNGUKZUPZURZUQZUBUFUFUSUMZUTZUBUYBUXRVAZVLZVBUKZUFVCZVD
      ZUCVEUYBVFUMZVGUAVEVGZACJEVHUMZULUMZVETUFEUGUPZUYITZUYLUFUYMUKZULUMZUYOUX
      OUMZUXQUYPGUKZUPZURZUQZUBUYBUTZUBUYBUYRVAZVLZVBUKZUFVCZUYJACCULUMZJCEULUM
      ZVHUMZULUMZUYLVEAVUJVUGUYKCVHUMZULUMUYLAVUIVUKVUGULAVUIJECULUMZVHUMVUKAVU
      HVULJVHACEACPVIZAEQVIZVJVMAJECAJMVIZVUNVUMVKVNVMACCUYKVUMVUMAJEVUOVUNVOZV
      PVQAVUGVETVUIVRTZVUJVETACCPPVSAVUHUFJUSUMZTJVUHVTUKTVUQACEUXOUMZVURVUHAVU
      SHUODUPZURZVURRVVAHWAVURHVUTWBBVURBUJZJULUMZGUKZHVVCGWCZSWDWEWFAVUHCUPZVU
      HEIUFVHUMZUNUKUMZWGZVUSAVVHVVIVUHVVHVVFWHAVVGVETZVUHVETEVETZVUHVVHTAIWIVT
      UKTZVVJLIWJWKZACEPQVSQVUHEVVGWLWMWNACEVVGUFULUMZUNUKZUMZVUSVVIAVVOUXOCEAV
      VNIUNAIWOTUFWOTVVNIVCAIAVVLIVETZLIWPWKZVIWQIUFWRWSWTXAAVVGVRTCVETZVVKVVPV
      VIVCAVVGVVMXBPQCEVVGXFWMXCUUAXDVUHUFJXGVUHJUUBXHVUGVUIXEXIUUCAUYBVEUYMXJZ
      UYNAUFUPZVEUYMXJVVTAVWAEUPZVEUYMAVWAVWBUYMUUDZVWAVWBUYMXJAUFVETZVVKVWCXKQ
      UFEVEVEUUMXLVWAVWBUYMUUEWKAEVEQUUFUUGUYBVWAVEUYMUFXMTZUYBVWAVCXNUFUUHXSUU
      IXOVEUYBUYMUUJUFUFUSXPUUKXOAVUAUBUYBACJULUMZEUXOUMZUXQVUTURZUYQUYTABVWGVW
      HAVVBVWFUDUJZEXQUMZULUMZVCZUDUULVVGUSUMZVGZVVBUFWIJXQUMZUSUMZTZVVBGUKZDVC
      ZVDZVVBVWGTZVVBVWHTZAVWLVWTUDVWMAVWIVWMTZVDZVWTVWLVWKVWPTZVWKGUKZDVCZVDVX
      DVXEVXGVXDVWKUFVTUKZTVWOVWKVTUKZTVXEVXDVWKVEVXHVXDVWFVETZVWJVRTZVWKVETAVX
      JVXCACJPMVSZXRVXCVWIVRTEVRTVXKAVWIVVGUUNAEQXBVWIEUUOUUPZVWFVWJXEXIUUQUURV
      XDJJULUMZCVWJULUMZJULUMZVTUKZVWOVXIVXDVXOVURTZJVXOVTUKTZVXNVXQTZVXDVXRVXO
      HUKZDVCZVXDVXOVVATZVXRVYBVDZVXDVUSVVAVXOAVUSVVAUQVXCRXRVXCAVXOCUEUJZEXQUM
      ZULUMZVCZUEVWMVGZVXOVUSTZVXCVXOVXOVCZVYIVXOXTVYHVYKUEVWIVWMVYEVWIVCZVYGVX
      OVXOVYLVYFVWJCULVYEVWIEXQYAVMUUSUUTUVAAVYJVYIAIVRTZVVSVVKVYJVYIYJAIVVRXBZ
      PQCEUEIVXOYBWMUVBUVCXDHVURYCZVYCVYDYJBVURVVDHVVESUVDZVURDVXOHYDXSYEZYFZVX
      OUFJXGVXSJXMTVXTVXOJUVEJVXOJUVFUVGXHAVWOVXNVCVXCAJVUOUVHXRVXDVWKVXPVTVXDC
      JVWJACWOTVXCVUMXRAJWOTVXCVUOXRVXDVWJVXMUVIUVJZWTUVKVWKUFVWOUVLUVMVXDVXFVX
      PGUKZVYADVXDVWKVXPGVYSWTVXDVXRVYAVYTVCVYRBVXOVVDVYTVURHVVBVXOVCVVCVXPGVVB
      VXOJULYAWTSVXPGWCYKWKVXDVXRVYBVYQYGYHUVNVWLVWQVXEVWSVXGVVBVWKVWPUVOVWLVWR
      VXFDVVBVWKGUVPYIYLUVQUVRAVYMVXJVVKVXAVWNYJVYNVXLQVWFEUDIVVBYBWMAVWPFGXJGV
      WPYCVXBVWTYJNVWPFGUWCVWPDVVBGYDXHUVSUVTAUYPVWFUYOEUXOAUYPUYLEULUMCUYKEULU
      MZULUMVWFAUYOEUYLULAVWDVVKUYOEVCXKQUFEVEVEUWAXLZVMACUYKEVUMVUPVUNUWBAWUAJ
      CULAJEVUOVUNUWDVMUWEZWUBYMAUYSVUTUXQAUYRDAUYRVWFGUKZCHUKZDAUYPVWFGWUCWTAC
      VURTZWUEWUDVCAWUFWUEDVCZACVVATZWUFWUGVDZAVUSVVACRAVVQVVSVVKCVUSTVVRPQCEIW
      LWMXDVYOWUHWUIYJVYPVURDCHYDXSYEZYFBCVVDWUDVURHVVBCVCVVCVWFGVVBCJULYAWTSVW
      FGWCYKWKAWUFWUGWUJYGYHZYNYOUWFUWGAVUEVUTVBUKZUFAVUDVUTVBAVUDUYBVUTUWHZVLZ
      VUTAVUCWUMAVUCUBUYBDVAWUMAUBUYBUYRDWUKYPUBUYBDUWIUWJYQUYBUXDUWNZWUNVUTVCV
      WEUFUYBTWUOXNUFUWKUYBUFUWLUWMUYBVUTUWOXSYRWTDYSTWULUFVCODYSUWPXSYRUYHVUBV
      UFVDUYLUXMULUMZUXMUXOUMZUXQWUPGUKZUPZURZUQZUBUYBUTZUBUYBWURVAZVLZVBUKZUFV
      CZVDUAUCUYLUYMVEUYIUXJUYLVCZUYCWVBUYGWVFWVGUYAWVAUBUYBWVGUXPWUQUXTWUTWVGU
      XNWUPUXMUXOUXJUYLUXMULYAZUWQWVGUXSWUSUXQWVGUXRWURWVGUXNWUPGWVHWTZYNYOYTUW
      RWVGUYFWVEUFWVGUYEWVDVBWVGUYDWVCWVGUBUYBUXRWURWVIYPYQWTYIYLUXLUYMVCZWVBVU
      BWVFVUFWVJWVAVUAUBUYBWVJUXKUYBTZVDZWUQUYQWUTUYTWVLWUPUYPUXMUYOUXOWVLUXMUY
      OUYLULWVJWVKUXMUXKUYMUKUYOUXKUXLUYMUWSWVKUXKUFUYMUXKUFUWTWTUXAZVMZWVMYMWV
      LWUSUYSUXQWVLWURUYRWVLWUPUYPGWVNWTZYNYOYTUXBWVJWVEVUEUFWVJWVDVUDVBWVJWVCV
      UCWVJUBUYBWURUYRWVOUXCYQWTYIYLUXEUXFAFUBGUYBIUFVWPUAUCUFVWOUSXPVYNNVWDAXK
      UXGUYBXTUXHUXI $.
  $}

  ${
    $d a c d g h i k m n u v w x y z ph $.  $d f x y z V $.  $d f x y z W $.
    $d a c d f g w x y z F $.  $d a c d f g h i k m n r s u v w x y z K $.
    $d a d f g n x y M $.  $d a c d f g h i k m n r s u v w x y z R $.
    $d a d g x y z H $.
    vdw.r $e |- ( ph -> R e. Fin ) $.
    ${
      vdwlem9.k $e |- ( ph -> K e. ( ZZ>= ` 2 ) ) $.
      vdwlem9.s $e |- ( ph -> A. s e. Fin E. n e. NN
        A. f e. ( s ^m ( 1 ... n ) ) K MonoAP f ) $.
      ${
        vdwlem9.m $e |- ( ph -> M e. NN ) $.
        vdwlem9.w $e |- ( ph -> W e. NN ) $.
        vdwlem9.g $e |- ( ph -> A. g e. ( R ^m ( 1 ... W ) )
          ( <. M , K >. PolyAP g \/ ( K + 1 ) MonoAP g ) ) $.
        vdwlem9.v $e |- ( ph -> V e. NN ) $.
        vdwlem9.a $e |- ( ph -> A. f e. ( ( R ^m ( 1 ... W ) ) ^m ( 1 ... V ) )
          K MonoAP f ) $.
        vdwlem9.h $e |- ( ph -> H : ( 1 ... ( W x. ( 2 x. V ) ) ) --> R ) $.
        vdwlem9.f $e |- F = ( x e. ( 1 ... V ) |-> ( y e. ( 1 ... W ) |->
          ( H ` ( y + ( W x. ( ( x - 1 ) + V ) ) ) ) ) ) $.
        $( Lemma for ~ vdw .  (Contributed by Mario Carneiro, 12-Sep-2014.) $)
        vdwlem9 $p |- ( ph ->
          ( <. ( M + 1 ) , K >. PolyAP H \/ ( K + 1 ) MonoAP H ) ) $=
          ( va vd vz cvdwm wbr c1 caddc co cop cvdwp cfz cmap wcel wral vdwlem4
          wo cv wf ovex elmap sylibr breq2 rspcv sylc cvdwa cfv ccnv csn wss cn
          cima wrex wex cuz eluz2nn syl nnnn0d vdwmc adantr wceq simprr simprll
          c2 wa simprlr vdwapid1 syl3anc sseldd wb fniniseg mpbid simprd simpld
          wfn ffn ffvelrnd eqeltrrd rsp cfn cmul cvv elmapg sylancl vdwlem7 olc
          wi a1i jaod cmin cmpt oveq1 oveq1d oveq2d fveq2d mpteq2dv mptex fvmpt
          weq eqtr3d cn0 peano2nn0 nnm1nn0 nn0nnaddcl syl2anc nnmulcld nnaddcld
          breq2d cz cle nnzd sylancr nnred nncnd cr cc mpd 2nn nnmulcl leadd1dd
          elfzle2 2timesd breqtrrd nngt0d lemul2 syl112anc eluz2 syl3anbrc 1cnd
          cc0 clt nn0cnd addcld addassd mulid1d 3eqtr3d eleqtrd cbvmptv vdwlem2
          adddid ax-1cn pncan3 sylbird orim2d syld rexlimdvva exlimdv sylbid
          expr ) AJHUHUIZKUJUKULJUMIUNUIZJUJUKULZIUHUIZUTZAHDUJMUOULZUPULZUJLUO
          ULZUPULZUQZJEVAZUHUIZEUWAURUVMAUVTUVSHVBZUWBABCDHILMUASOUCUDUSZUVSUVT
          HDUVRUPVCUJLUOVCZVDVEUBUWDUVMEHUWAUWCHJUHVFVGVHAUVMUEVAZUFVAZJVIVJULZ
          HVKFVAZVLVOZVMZUFVNVPUEVNVPZFVQUVQAUVSHJUVTUEFUFUWGAJAJWGVRVJUQZJVNUQ
          ZPJVSVTZWAZUWFWBAUWNUVQFAUWMUVQUEUFVNVNAUWHVNUQZUWIVNUQZWHZUWMUVQAUXA
          UWMWHZWHZKJUMUWKUNUIZUVOUWKUHUIZUTZUVQUXCUXFFUVSURZUWKUVSUQZUXFAUXGUX
          BTWCUXCUWHHVJZUWKUVSUXCUWHUVTUQZUXIUWKWDZUXCUWHUWLUQZUXJUXKWHZUXCUWJU
          WLUWHAUXAUWMWEZUXCUWPUWSUWTUWHUWJUQAUWPUXBUWQWCAUWSUWTUWMWFZAUWSUWTUW
          MWIZUWHUWIJWJWKWLUXCHUVTWRZUXLUXMWMAUXQUXBAUWEUXQUWFUVTUVSHWSVTWCUVTU
          WKUWHHWNVTWOZWPZUXCUVTUVSUWHHAUWEUXBUWFWCUXCUXJUXKUXRWQZWTXAZUXFFUVSX
          BVHUXCUXFUVNUXEUTZUVQUXCUXDUYBUXEUXCBCUWHUWIDHUWKIJKLMALVNUQZUXBUAWCZ
          AMVNUQUXBSWCZADXCUQZUXBOWCZAUJMWGLXDULZXDULZUOULDIVBUXBUCWCZUDAKVNUQU
          XBRWCUXCUXHUVRDUWKVBZUYAUXCUYFUVRXEUQUXHUYKWMUYGUJMUOVCZDUVRUWKXCXEXF
          XGWOAUWOUXBPWCUXOUXPUXNXHUXEUYBXJUXCUXEUVNXIXKXLUXCUXEUVPUVNUXCUXEUVO
          CUVRCVAZMUWHUJXMULZLUKULZXDULZUKULZIVJZXNZUHUIUVPUXCUYSUWKUVOUHUXCUXI
          UYSUWKUXCUXJUXIUYSWDUXTBUWHCUVRUYMMBVAZUJXMULZLUKULZXDULZUKULZIVJZXNU
          YSUVTHBUEYBZCUVRVUEUYRVUFVUDUYQIVUFVUCUYPUYMUKVUFVUBUYOMXDVUFVUAUYNLU
          KUYTUWHUJXMXOXPXQXQXRXSUDCUVRUYRUYLXTYAVTUXSYCYKUXCUGDIUYSUVOUYIUYPMU
          YGUXCJYDUQZUVOYDUQAVUGUXBUWRWCJYEVTUYEUXCMUYOUYEUXCUYNYDUQZUYCUYOVNUQ
          UXCUWSVUHUXOUWHYFVTZUYDUYNLYGYHYIUYJUXCUYIMUWHLUKULZXDULZVRVJZMUYPUKU
          LZVRVJUXCVUKYLUQUYIYLUQZVUKUYIYMUIZUYIVULUQUXCVUKUXCMVUJUYEUXCUWHLUXO
          UYDYJZYIYNAVUNUXBAUYIAMUYHSAWGVNUQUYCUYHVNUQUUAUAWGLUUBYOZYIYNWCUXCVU
          JUYHYMUIZVUOUXCVUJLLUKULUYHYMUXCUWHLLUXCUWHUXOYPUXCLUYDYPZVUSUXCUXJUW
          HLYMUIUXTUWHUJLUUDVTUUCUXCLUXCLUYDYQZUUEUUFUXCVUJYRUQUYHYRUQZMYRUQUUM
          MUUNUIVURVUOWMUXCVUJVUPYPAVVAUXBAUYHVUQYPWCUXCMUYEYPUXCMUYEUUGVUJUYHM
          UUHUUIWOVUKUYIUUJUUKUXCVUKVUMVRUXCMUJUYOUKULZXDULMUJXDULZUYPUKULVUKVU
          MUXCMUJUYOUXCMUYEYQZUXCUULZUXCUYNLUXCUYNVUIUUOZVUTUUPUVCUXCVVBVUJMXDU
          XCUJUYNUKULZLUKULVVBVUJUXCUJUYNLVVEVVFVUTUUQUXCVVGUWHLUKUXCUJYSUQUWHY
          SUQVVGUWHWDUVDUXCUWHUXOYQUJUWHUVEYOXPYCXQUXCVVCMUYPUKUXCMVVDUURXPUUSX
          RUUTCUGUVRUYRUGVAZUYPUKULZIVJCUGYBUYQVVIIUYMVVHUYPUKXOXRUVAUVBUVFUVGU
          VHYTUVLUVIUVJUVKYT $.
      $}

      $d f ph $.
      ${
        vdwlem10.m $e |- ( ph -> M e. NN ) $.
        $( Lemma for ~ vdw .  Set up secondary induction on ` M ` .
           (Contributed by Mario Carneiro, 18-Aug-2014.) $)
        vdwlem10 $p |- ( ph -> E. n e. NN A. f e. ( R ^m ( 1 ... n ) )
          ( <. M , K >. PolyAP f \/ ( K + 1 ) MonoAP f ) ) $=
          ( cn wcel cv cvdwp wbr c1 caddc co wral vx vm vw vg vy va vd vc vv vh
          vz vu vk cop cvdwm wo cfz cmap wrex wi opeq1 breq1d orbi1d rexralbidv
          wceq imbi2d weq oveq1 raleqdv rexbidv rspcv sylc oveq2 oveq2d cbvrexv
          cfn sylib wa breq2 cbvralv c2 2nn simpr nnmulcl sylancr wf cvv adantr
          cmul wb ovex elmapg sylancl biimpa cfv simplr cle elfznn adantl nnred
          cmpt simpllr elfzle2 leadd1dd nncnd 2timesd breqtrrd cz nnaddcld nnuz
          cuz syl6eleq ad2antrr nnzd elfz5 syl2anc mpbird ffvelrnd fveq2d fmptd
          cbvmptv biimpar syldan syl cvdwa ccnv csn cima wss wex cn0 2nn0 vdwmc
          eluznn0 simprll rspcev syl5bi orbi12d syl5bb cmin vex simprlr vdwlem8
          simprr orcd expr rexlimdvva exlimdv sylbid ralrimdva syl6an rexlimdva
          syld mpd fzfi mapfi simprrl mpan sylan2 simp1l simp1r simp2ll simp2lr
          w3a simp2rl simp2rr simp3 mpbid oveq1d mpteq2dv syl5eq vdwlem9 3expia
          ralrimiv syl6bb anassrs rexlimddv rexlimdvaa expcom a2d nnind mpcom )
          FLMAFEUNZCNZOPZEQRSZUWDUOPZUPZCBQDNZUQSZURSZTDLUSZKAUANZEUNZUWDOPZUWG
          UPZCUWKTDLUSZUTAQEUNZUWDOPZUWGUPZCUWKTZDLUSZUTAUBNZEUNZUWDOPZUWGUPZCU
          WKTZDLUSZUTAUXCQRSZEUNZUWDOPZUWGUPZCUWKTZDLUSZUTAUWLUTUAUBFUWMQVEZUWQ
          UXBAUXOUWPUWTDCLUWKUXOUWOUWSUWGUXOUWNUWRUWDOUWMQEVAVBVCVDVFUAUBVGZUWQ
          UXHAUXPUWPUXFDCLUWKUXPUWOUXEUWGUXPUWNUXDUWDOUWMUXCEVAVBVCVDVFUWMUXIVE
          ZUWQUXNAUXQUWPUXLDCLUWKUXQUWOUXKUWGUXQUWNUXJUWDOUWMUXIEVAVBVCVDVFUWMF
          VEZUWQUWLAUXRUWPUWHDCLUWKUXRUWOUWEUWGUXRUWNUWCUWDOUWMFEVAVBVCVDVFAEUW
          DUOPZCBQUCNZUQSZURSZTZUCLUSZUXBAUXSCUWKTZDLUSZUYDABVPMZUXSCGNZUWJURSZ
          TZDLUSZGVPTZUYFHJUYKUYFGBVPUYHBVEZUYJUYEDLUYMUXSCUYIUWKUYHBUWJURVHVIV
          JVKVLUYEUYCDUCLDUCVGZUXSCUWKUYBUYNUWJUYABURUWIUXTQUQVMVNZVIVOVQAUYCUX
          BUCLUYCEUDNZUOPZUDUYBTZAUXTLMZVRZUXBUXSUYQCUDUYBUWDUYPEUOVSVTUYTWAUXT
          WISZLMZUYRUWTCBQVUAUQSZURSZTZUXBUYTWALMZUYSVUBWBAUYSWCWAUXTWDWEZUYTUY
          RUWTCVUDUYTUWDVUDMZVUCBUWDWFZUYRUWTUTUYTVUHVUIUYTUYGVUCWGMVUHVUIWJAUY
          GUYSHWHZQVUAUQWKBVUCUWDVPWGWLWMWNUYTVUIVRZUYREUAUYAUWMUXTRSZUWDWOZXAZ
          UOPZUWTVUKVUNUYBMZUYRVUOUTUYTVUIUYABVUNWFZVUPVUKUEUYAUENZUXTRSZUWDWOZ
          BVUNVUKVURUYAMZVRZVUCBVUSUWDUYTVUIVVAWPVVBVUSVUCMZVUSVUAWQPZVVBVUSUXT
          UXTRSVUAWQVVBVURUXTUXTVVBVURVVAVURLMVUKVURUXTWRWSZWTVVBUXTAUYSVUIVVAX
          BZWTZVVGVVAVURUXTWQPVUKVURQUXTXCWSXDVVBUXTVVBUXTVVFXEXFXGVVBVUSQXKWOZ
          MVUAXHMVVCVVDWJVVBVUSLVVHVVBVURUXTVVEVVFXIXJXLVVBVUAUYTVUBVUIVVAVUGXM
          XNVUSQVUAXOXPXQXRUAUEUYAVUMVUTUAUEVGVULVUSUWDUWMVURUXTRVHXSYAZXTZUYTV
          UPVUQUYTUYGUYAWGMVUPVUQWJVUJQUXTUQWKZBUYAVUNVPWGWLWMYBYCUYQVUOUDVUNUY
          BUYPVUNEUOVSVKYDVUKVUOUFNZUGNZEYEWOSVUNYFUHNZYGYHYIZUGLUSUFLUSZUHYJUW
          TVUKBVUNEUYAUFUHUGVVKVUKWAYKMEWAXKWOMZEYKMYLAVVQUYSVUIIXMZEWAYNWEVVJY
          MVUKVVPUWTUHVUKVVOUWTUFUGLLVUKVVLLMZVVMLMZVRZVVOUWTVUKVWAVVOVRZVRZUWS
          UWGVWCUEVVLVVNVVMBUWDVUNEUXTUYTUYGVUIVWBVUJXMVUKVVQVWBVVRWHAUYSVUIVWB
          XBUYTVUIVWBWPUHUUAVUKVVSVVTVVOYOVUKVVSVVTVVOUUBVUKVWAVVOUUDVVIUUCUUEU
          UFUUGUUHUUIUUMYCUUJUXAVUEDVUALUWIVUAVEZUWTCUWKVUDVWDUWJVUCBURUWIVUAQU
          QVMVNVIYPUUKYQUULUUNUXCLMZAUXHUXNAVWEUXHUXNUTUXHUXDUYPOPZUWFUYPUOPZUP
          ZUDUYBTZUCLUSAVWEVRZUXNUXGVWIDUCLUXGVWHUDUWKTUYNVWIUXFVWHCUDUWKCUDVGU
          XEVWFUWGVWGUWDUYPUXDOVSUWDUYPUWFUOVSYRVTUYNVWHUDUWKUYBUYOVIYSVOVWJVWI
          UXNUCLVWJUYSVWIVRZVRZUXSCUYBQUINZUQSZURSZTZUXNUILVWLUYBVPMZUYLVWPUILU
          SZVWLUYGUYAVPMVWQAUYGVWEVWKHXMQUXTUUOBUYAUUPWMAUYLVWEVWKJXMUYKVWRGUYB
          VPUYKUXSCUYHVWNURSZTZUILUSUYHUYBVEZVWRUYJVWTDUILDUIVGZUXSCUYIVWSVXBUW
          JVWNUYHURUWIVWMQUQVMVNVIVOVXAVWTVWPUILVXAUXSCVWSVWOUYHUYBVWNURVHVIVJY
          SVKVLVWJVWKVWMLMZVWPVRZUXNVWJVWKVXDVRZVRZUXTWAVWMWISZWISZLMZUXJUJNZOP
          ZUWFVXJUOPZUPZUJBQVXHUQSZURSZTZUXNVXFUYSVXCVXIVWJUYSVWIVXDYOVWJVWKVXC
          VWPUUQVXCUYSVXGLMZVXIVUFVXCVXQWBWAVWMWDUURUXTVXGWDUUSXPVXFVXMUJVXOVWJ
          VXEVXJVXOMZVXMVWJVXEVXRUVDZUKULBCUMDUAVWNUEUYAVURUXTUWMQYTSZVWMRSZWIS
          ZRSZVXJWOZXAZXAVXJEUXCVWMUXTGVXSAUYGAVWEVXEVXRUUTZHYDZVXSAVVQVYFIYDVX
          SAUYLVYFJYDAVWEVXEVXRUVAUYSVWIVXDVWJVXRUVBVXSVWIUXDUMNZOPZUWFVYHUOPZU
          PZUMUYBTUYSVWIVXDVWJVXRUVCVWHVYKUDUMUYBUDUMVGVWFVYIVWGVYJUYPVYHUXDOVS
          UYPVYHUWFUOVSYRVTVQVXCVWPVWKVWJVXRUVEVXCVWPVWKVWJVXRUVFVXSVXRVXNBVXJW
          FZVWJVXEVXRUVGVXSUYGVXNWGMVXRVYLWJVYGQVXHUQWKBVXNVXJVPWGWLWMUVHUAUKVW
          NVYEULUYAULNZUXTUKNZQYTSZVWMRSZWISZRSZVXJWOZXAZUAUKVGZVYEULUYAVYMVYBR
          SZVXJWOZXAVYTUEULUYAVYDWUCUEULVGVYCWUBVXJVURVYMVYBRVHXSYAWUAULUYAWUCV
          YSWUAWUBVYRVXJWUAVYBVYQVYMRWUAVYAVYPUXTWIWUAVXTVYOVWMRUWMVYNQYTVHUVIV
          NVNXSUVJUVKYAUVLUVMUVNUXMVXPDVXHLUWIVXHVEZUXMUXLCVXOTVXPWUDUXLCUWKVXO
          WUDUWJVXNBURUWIVXHQUQVMVNVIUXLVXMCUJVXOCUJVGUXKVXKUWGVXLUWDVXJUXJOVSU
          WDVXJUWFUOVSYRVTUVOYPXPUVPUVQUVRYQUVSUVTUWAUWB $.
      $}

      $( Lemma for ~ vdw .  (Contributed by Mario Carneiro, 18-Aug-2014.) $)
      vdwlem11 $p |- ( ph -> E. n e. NN
        A. f e. ( R ^m ( 1 ... n ) ) ( K + 1 ) MonoAP f ) $=
        ( vi c1 co cv wbr cn cfv wcel cfn syl wa va vd caddc cfz cmap wral wrex
        cvdwm chash cop cvdwp wo cn0 hashcl nn0p1nn vdwlem10 wf cvv adantr ovex
        wb elmapg sylancl biimpa wn nn0red ltp1d cr peano2re ltnled mpbid cvdwa
        cle clt ccnv csn cima wss cmpt crn wceq cuz eluz2nn nnnn0d simprr vdwpc
        c2 eqid cdom ad3antrrr ad2antrr cdm cnvimass syl6ss fdm sseqtrd simplrl
        simpr elmap sylib ffvelrnda nnaddcld vdwapid1 syl3anc sseldd ex ffvelrn
        nnex syl6an ralimdva imp fmpt frn ssdomg sylc ssfi syl2anc mpbird breq1
        hashdom syl5ibcom expimpd rexlimdvva sylbid mtod biorf anassrs ralbidva
        syldan rexbidva ) AEKUCLCMZUHNZCBKDMZUDLZUELZUFZDOUGBUIPZKUCLZEUJYKUKNZ
        YLULZCYOUFZDOUGABCDEYRFGHIAYQUMQZYROQZABRQZUUBGBUNSZYQUOSZUPAYPUUADOAYM
        OQZTZYLYTCYOUUHYKYOQZYNBYKUQZYLYTVAZUUHUUIUUJUUHUUDYNURQUUIUUJVAAUUDUUG
        GUSKYMUDUTZBYNYKRURVBVCVDAUUGUUJUUKAUUGUUJTZTZYSVEUUKUUNYSYRYQVMNZAUUOV
        EZUUMAYQYRVNNUUPAYQAYQUUEVFZVGAYQYRUUQAYQVHQYRVHQUUQYQVISVJVKUSUUNYSUAM
        ZJMZUBMZPZUCLZUVAEVLPLZYKVOUVBYKPZVPZVQZVRZJKYRUDLZUFZJUVHUVDVSZVTZUIPZ
        YRWAZTZUBOUVHUELZUGUAOUGUUOUUNBJYKUVHEYRYNUAUBUULUUNEAEOQZUUMAEWGWBPQUV
        PHEWCSZUSWDAUUGUUJWEZAUUCUUMUUFUSUVHWHWFUUNUVNUUOUAUBOUVOUUNUUROQZUUTUV
        OQZTZTZUVIUVMUUOUWBUVITZUVLYQVMNZUVMUUOUWCUWDUVKBWINZUWCUUDUVKBVRZUWEAU
        UDUUMUWAUVIGWJZUWCUVHBUVJUQZUWFUWCUVDBQZJUVHUFZUWHUWBUVIUWJUWBUVGUWIJUV
        HUWBUUSUVHQZTZUUJUVGUVBYNQZUWIUUNUUJUWAUWKUVRWKUWLUVGUWMUWLUVGTZUVCYNUV
        BUWNUVCYKWLZYNUWNUVCUVFUWOUWLUVGWRYKUVEWMWNUWNUUJUWOYNWAUUNUUJUWAUWKUVG
        UVRWJYNBYKWOSWPUWLUVBUVCQZUVGUWLUVPUVBOQUVAOQUWPAUVPUUMUWAUWKUVQWJUWLUU
        RUVAUUNUVSUVTUWKWQUWBUVHOUUSUUTUWBUVTUVHOUUTUQUUNUVSUVTWEOUVHUUTXHKYRUD
        UTWSWTXAZXBUWQUVBUVAEXCXDUSXEXFYNBUVBYKXGXIXJXKJUVHBUVDUVJUVJWHXLWTUVHB
        UVJXMSZUVKBRXNXOUWCUVKRQZUUDUWDUWEVAUWCUUDUWFUWSUWGUWRBUVKXPXQUWGUVKBRX
        TXQXRUVLYRYQVMXSYAYBYCYDYEYSYLYFSYGYIYHYJXR $.
    $}

    ${
      vdwlem12.f $e |- ( ph -> F : ( 1 ... ( ( # ` R ) + 1 ) ) --> R ) $.
      vdwlem12.2 $e |- ( ph -> -. 2 MonoAP F ) $.
      $( Lemma for ~ vdw . ` K = 2 ` base case of induction.  (Contributed by
         Mario Carneiro, 18-Aug-2014.) $)
      vdwlem12 $p |- -. ph $=
        ( vx vy va vd c1 cfv co wcel syl wceq cn cv weq wa vz vw vc chash caddc
        cfz wbr clt cfn cn0 hashcl nn0red ltp1d nn0p1nn nnnn0d hashfz1 breqtrrd
        csdm wb fzfi hashsdom sylancl mpbid cdom wn wf1 wf wral fveq2 eqeqan12d
        wi eqeq12 imbi12d eqcom syl6bb wss elfznn nnred ssriv a1i biidd cle w3a
        cr simplr3 c2 cvdwm ad2antrr 3simpa ccnv csn cima wrex wex cmin simplrl
        cvdwa simprr simplrr nnsub syl2anc cun df-2 fveq2i 1nn0 vdwapun syl3anc
        oveqi syl5eq simprl wfn ffn mpbir2and snssd nncnd pncan3d oveq1d vdwap1
        fniniseg eqtrd eqidd eqsstrd unssd oveq1 sseq1d oveq2 rspc2ev fvex sneq
        imaeq2d sseq2d 2rexbidv spcev ovex 2nn0 vdwmc mpbird sylanl2 expr mtod
        simplr1 simplr2 sseldi eqleltd ex wlogle ralrimivva dff13 sylanbrc sylc
        f1domg domnsym pm2.65i ) ABKBUDLZKUEMZUFMZURUGZAUUNUUPUDLZUHUGZUUQAUUNU
        UOUURUHAUUNAUUNABUINZUUNUJNZDBUKOZULUMAUUOUJNUURUUOPAUUOAUVAUUOQNUVBUUN
        UNOUOUUOUPOUQAUUTUUPUINUUSUUQUSDKUUOUTBUUPVAVBVCAUUPBVDUGZUUQVEAUUTUUPB
        CVFZUVCDAUUPBCVGZGRZCLZHRZCLZPZGHSZVKZHUUPVHGUUPVHUVDEAUVLGHUUPUUPAUARZ
        CLZUBRZCLZPZUAUBSZVKUVLUVLGHUAUBUUPUAGSZUBHSZTUVQUVJUVRUVKUVSUVTUVNUVGU
        VPUVIUVMUVFCVIUVOUVHCVIVJUVMUVFUVOUVHVLVMUAHSZUBGSZTZUVQUVJUVRUVKUWCUVQ
        UVIUVGPUVJUWAUWBUVNUVIUVPUVGUVMUVHCVIUVOUVFCVIVJUVIUVGVNVOUWCUVRHGSUVKU
        VMUVHUVOUVFVLUVHUVFVNVOVMUUPWDVPAGUUPWDUVFUUPNZUVFUVFUUOVQZVRZVSZVTAUWD
        UVHUUPNZTZTZUVLWAAUWDUWHUVFUVHWBUGZWCZTZUVJUVKUWMUVJTZUVKUWKUVFUVHUHUGZ
        VEUWDUWHUWKAUVJWEUWNUWOWFCWGUGZAUWPVEUWLUVJFWHUWMUVJUWOUWPUWLAUWIUVJUWO
        TZUWPUWDUWHUWKWIUWJUWQTZUWPIRZJRZWFWQLZMZCWJZUCRZWKZWLZVPZJQWMIQWMZUCWN
        ZUWRUXBUXCUVIWKZWLZVPZJQWMIQWMZUXIUWRUVFQNZUVHUVFWOMZQNZUVFUXOUXAMZUXKV
        PZUXMUWRUWDUXNAUWDUWHUWQWPZUWEOZUWRUWOUXPUWJUVJUWOWRUWRUXNUVHQNZUWOUXPU
        SUXTUWRUWHUYAAUWDUWHUWQWSZUVHUUOVQOZUVFUVHWTXAVCZUWRUXQUVFWKZUVFUXOUEMZ
        UXOKWQLZMZXBZUXKUWRUXQUVFUXOKKUEMZWQLZMZUYIUXAUYKUVFUXOWFUYJWQXCXDXHUWR
        KUJNZUXNUXPUYLUYIPUYMUWRXEVTUXTUYDUVFUXOKXFXGXIUWRUYEUYHUXKUWRUVFUXKUWR
        UVFUXKNZUWDUVJUXSUWJUVJUWOXJUWRCUUPXKZUYNUWDUVJTUSUWRUVEUYOAUVEUWIUWQEW
        HZUUPBCXLOZUUPUVIUVFCXSOXMXNUWRUYHUVHWKZUXKUWRUYHUVHUXOUYGMZUYRUWRUYFUV
        HUXOUYGUWRUVFUVHUWRUVFUXTXOUWRUVHUYCXOXPXQUWRUYAUXPUYSUYRPUYCUYDUVHUXOX
        RXAXTUWRUVHUXKUWRUVHUXKNZUWHUVIUVIPZUYBUWRUVIYAUWRUYOUYTUWHVUATUSUYQUUP
        UVIUVHCXSOXMXNYBYCYBUXLUXRUVFUWTUXAMZUXKVPIJUVFUXOQQIGSUXBVUBUXKUWSUVFU
        WTUXAYDYEUWTUXOPVUBUXQUXKUWTUXOUVFUXAYFYEYGXGUXHUXMUCUVIUVHCYHUXDUVIPZU
        XGUXLIJQQVUCUXFUXKUXBVUCUXEUXJUXCUXDUVIYIYJYKYLYMOUWRBCWFUUPIUCJKUUOUFY
        NWFUJNUWRYOVTUYPYPYQYRYSYTUWNUVFUVHUWNUWDUVFWDNUWDUWHUWKAUVJUUAUWFOUWNU
        UPWDUVHUWGUWDUWHUWKAUVJUUBUUCUUDXMUUEUUFUUGGHUUPBCUUHUUIUUPBUICUUKUUJUU
        PBUULOUUM $.
    $}

    $d f ph $.
    vdw.k $e |- ( ph -> K e. NN0 ) $.
    $( Lemma for ~ vdw .  Main induction on ` K ` ; ` K = 0 ` , ` K = 1 ` base
       cases.  (Contributed by Mario Carneiro, 18-Aug-2014.) $)
    vdwlem13 $p |- ( ph -> E. n e. NN
      A. f e. ( R ^m ( 1 ... n ) ) K MonoAP f ) $=
      ( vr cn wcel cv cvdwm c1 cfz co cmap wral wrex wceq cfn va vd vc vx vk vg
      vs vm wbr cc0 c2 cuz cfv wo elnn1uz2 cvdwa ccnv csn cima wss wf wb elmapg
      cvv ovex sylancl biimpa wa 1nn vdwap1 mp2an cz 1z elfz3 mp1i eqidd adantl
      wfn fniniseg mpbir2and snssd syl5eqss syldan ralrimiva fveq2 oveqd sseq1d
      ffn syl ralbidv syl5ibrcom wex oveq1 oveq2 rspc2ev mp3an12 imaeq2d sseq2d
      fvex sneq 2rexbidv spcev cn0 adantr vdwmc syl5ibr ralimdva oveq2d raleqdv
      rspcev mpan syl6 syld caddc breq1 rexralbidv weq hashcl nn0p1nn wi simpll
      chash wn simplr vex elmap sylib simpr vdwlem12 iman mpbir syl2anc rexbidv
      rgen a1i breq2 cbvralv syl6bb syl5bi c0 cbvrexv ralbii sylibr vdwlem11 ex
      ralrimdva uzind4 rspcv syl2im jaod vdwap0 syl6eq syl6eqss ralrimivw elnn0
      0ss syl5 mpjaod ) AEIJZECKZLUIZCBMDKZNOZPOZQZDIRZEUJSZUUSEMSZEUKULUMZJZUN
      AUVFEUOAUVHUVFUVJAUVHMMEUPUMZOZUUTUQZMUUTUMZURZUSZUTZCBMMNOZPOZQZUVFAUVTU
      VHMMMUPUMZOZUVPUTZCUVSQAUWCCUVSAUUTUVSJZUVRBUUTVAZUWCAUWDUWEABTJZUVRVDJUW
      DUWEVBFMMNVEZBUVRUUTTVDVCVFVGZAUWEVHZUWBMURZUVPMIJZUWKUWBUWJSVIVIMMVJVKUW
      IMUVPUWIMUVPJZMUVRJZUVNUVNSZMVLJUWMUWIVMMVNVOUWIUVNVPUWIUUTUVRVRZUWLUWMUW
      NVHVBUWEUWOAUVRBUUTWHVQUVRUVNMUUTVSWIVTWAWBWCWDUVHUVQUWCCUVSUVHUVLUWBUVPU
      VHUVKUWAMMEMUPWEWFWGWJWKAUVTUVACUVSQZUVFAUVQUVACUVSUVQUVAAUWDVHZUAKZUBKZU
      VKOZUVMUCKZURZUSZUTZUBIRUAIRZUCWLZUVQUWTUVPUTZUBIRUAIRZUXFUWKUWKUVQUXHVIV
      IUXGUVQMUWSUVKOZUVPUTUAUBMMIIUWRMSUWTUXIUVPUWRMUWSUVKWMWGUWSMSUXIUVLUVPUW
      SMMUVKWNWGWOWPUXEUXHUCUVNMUUTWSUXAUVNSZUXDUXGUAUBIIUXJUXCUVPUWTUXJUXBUVOU
      VMUXAUVNWTWQWRXAXBWIUWQBUUTEUVRUAUCUBUWGAEXCJZUWDGXDUWHXEXFXGUWKUWPUVFVIU
      VEUWPDMIUVBMSZUVACUVDUVSUXLUVCUVRBPUVBMMNWNXHXIXJXKXLZXMAUWFUVJUVACHKZUVC
      POZQZDIRZHTQZUVFFUDKZUUTLUIZCUXOQDIRZHTQUKUUTLUIZCUXOQZDIRZHTQZUEKZUUTLUI
      ZCUXOQZDIRZHTQZUYFMXNOZUUTLUIZCUXOQDIRZHTQZUXRUDUEUKEUXSUKSZUYAUYDHTUYOUX
      TUYBDCIUXOUXSUKUUTLXOXPWJUDUEXQZUYAUYIHTUYPUXTUYGDCIUXOUXSUYFUUTLXOXPWJUX
      SUYKSZUYAUYMHTUYQUXTUYLDCIUXOUXSUYKUUTLXOXPWJUXSESZUYAUXQHTUYRUXTUVADCIUX
      OUXSEUUTLXOXPWJUYEUKVLJUYDHTUXNTJZUXNYBUMZMXNOZIJZUYBCUXNMVUANOZPOZQZUYDU
      YSUYTXCJVUBUXNXRUYTXSWIUYSUYBCVUDUYSUUTVUDJZVHZUYBXTVUGUYBYCZVHZYCVUIUXNU
      UTUYSVUFVUHYAVUIVUFVUCUXNUUTVAUYSVUFVUHYDUXNVUCUUTHYEMVUANVEYFYGVUGVUHYHY
      IVUGUYBYJYKWDUYCVUEDVUAIUVBVUASZUYBCUXOVUDVUJUVCVUCUXNPUVBVUAMNWNXHXIXJYL
      YNYOUYJUYFUFKZLUIZUFUGKZMUHKZNOZPOZQZUHIRZUGTQZUYFUVIJZUYNUYIVURHUGTHUGXQ
      ZUYIUYGCVUMUVCPOZQZDIRZVURVVAUYHVVCDIVVAUYGCUXOVVBUXNVUMUVCPWMXIYMVVCVUQD
      UHIDUHXQZVVCUYGCVUPQVUQVVEUYGCVVBVUPVVEUVCVUOVUMPUVBVUNMNWNXHXIUYGVULCUFV
      UPUUTVUKUYFLYPYQYRUUAZYRYQVUTVUSUYMHTVUTUYSVHZVUSUYMVVGVUSVHZUXNCDUYFUGVU
      TUYSVUSYDVUTUYSVUSYAVVHVUSVVDUGTQVVGVUSYHVVDVURUGTVVFUUBUUCUUDUUEUUFYSUUG
      UXQUVFHBTUXNBSZUXPUVEDIVVIUVACUXOUVDUXNBUVCPWMXIYMUUHUUIUUJYSUVGUVTAUVFUV
      GUVQCUVSUVGUVLYTUVPUVGUVLMMUJUPUMZOZYTUVGUVKVVJMMEUJUPWEWFUWKUWKVVKYTSVIV
      IMMUUKVKUULUVPUUPUUMUUNUXMUUQAUXKUUSUVGUNGEUUOYGUUR $.
  $}

  ${
    $d a c d f m n K $.  $d a c d f n R $.
    $( Van der Waerden's theorem.  For any finite coloring ` R ` and integer
       ` K ` , there is an ` N ` such that every coloring function from
       ` 1 ... N ` to ` R ` contains a monochromatic arithmetic progression
       (which written out in full means that there is a color ` c ` and base,
       increment values ` a , d ` such that all the numbers
       ` a , a + d , ... , a + ( k - 1 ) d ` lie in the preimage of ` { c } ` ,
       i.e. they are all in ` 1 ... N ` and ` f ` evaluated at each one yields
       ` c ` ).  (Contributed by Mario Carneiro, 13-Sep-2014.) $)
    vdw $p |- ( ( R e. Fin /\ K e. NN0 ) -> E. n e. NN
      A. f e. ( R ^m ( 1 ... n ) ) E. c e. R E. a e. NN E. d e. NN
      A. m e. ( 0 ... ( K - 1 ) ) ( a + ( m x. d ) ) e. ( `' f " { c } ) ) $=
      ( cfn wcel cn0 wa cv c1 cfz co wral cn wrex cvv cvdwm wbr cmap cmul caddc
      ccnv csn cima cc0 cmin simpl simpr vdwlem13 ovex simpllr wf simpll elmapg
      sylancl biimpa cuz cfv simplr nnuz syl6eleq eluzfz1 syl ralbidva rexbidva
      wb vdwmc2 mpbid ) AIJZEKJZLZEBMZUAUBZBANDMZOPZUCPZQZDRSFMCMHMUDPUEPVPUFGM
      UGUHJCUIENUJPOPQHRSFRSGASZBVTQZDRSVOABDEVMVNUKVMVNULUMVOWAWCDRVOVRRJZLZVQ
      WBBVTWEVPVTJZLZNACVPEVSFGHNVROUNZVMVNWDWFUOWEWFVSAVPUPZWEVMVSTJWFWIVJVMVN
      WDUQWHAVSVPITURUSUTWGVRNVAVBZJNVSJWGVRRWJVOWDWFVCVDVENVRVFVGVKVHVIVL $.
  $}

  ${
    $d a d k m A $.  $d a c d f m n K $.  $d a c d x ph $.  $d a c d f n x R $.
    $d a d k m B $.  $d a c d f k m n F $.  $d a d k m x S $.
    $( Corollary of ~ vdw , and lemma for ~ vdwnn .  If ` F ` is a coloring of
       the integers, then there are arbitrarily long monochromatic APs in
       ` F ` .  (Contributed by Mario Carneiro, 13-Sep-2014.) $)
    vdwnnlem1 $p |- ( ( R e. Fin /\ F : NN --> R /\ K e. NN0 ) ->
      E. c e. R E. a e. NN E. d e. NN A. m e. ( 0 ... ( K - 1 ) )
        ( a + ( m x. d ) ) e. ( `' F " { c } ) ) $=
      ( vf vn wcel cn cv co ccnv cima c1 cfz wral wrex wss cfn wf cn0 w3a caddc
      cmul csn cc0 cmin cmap vdw 3adant2 wa cres simpl2 cuz cfv fzssuz sseqtr4i
      wi nnuz fssres sylancl cvv wb simpl1 ovex elmapg mpbird wceq cnveq eleq2d
      imaeq1d ralbidv 2rexbidv rexbidv rspcv syl resss cnvss imass1 mp2b ralimi
      sseli reximi syl6 rexlimdva mpd ) AUAJZKACUBZDUCJZUDZELBLGLUFMUEMZHLZNZFL
      UGZOZJZBUHDPUIMQMZRZGKSEKSZFASZHAPILZQMZUJMZRZIKSZWMCNZWPOZJZBWSRZGKSZEKS
      ZFASZWIWKXGWJAHBIDEFGUKULWLXFXNIKWLXCKJZUMZXFWMCXDUNZNZWPOZJZBWSRZGKSZEKS
      ZFASZXNXPXQXEJZXFYDUTXPYEXDAXQUBZXPWJXDKTYFWIWJWKXOUOXDPUPUQKPXCURVAUSKAX
      DCVBVCXPWIXDVDJYEYFVEWIWJWKXOVFPXCQVGAXDXQUAVDVHVCVIXBYDHXQXEWNXQVJZXAYCF
      AYGWTYAEGKKYGWRXTBWSYGWQXSWMYGWOXRWPWNXQVKVMVLVNVOVPVQVRYCXMFAYBXLEKYAXKG
      KXTXJBWSXSXIWMXQCTXRXHTXSXITCXDVSXQCVTXRXHWPWAWBWDWCWEWEWEWFWGWH $.

    vdwnn.1 $e |- ( ph -> R e. Fin ) $.
    vdwnn.2 $e |- ( ph -> F : NN --> R ) $.
    vdwnn.3 $e |- S = { k e. NN | -. E. a e. NN E. d e. NN
      A. m e. ( 0 ... ( k - 1 ) ) ( a + ( m x. d ) ) e. ( `' F " { c } ) } $.
    $( Lemma for ~ vdwnn .  The set of all "bad" ` k ` for the theorem is
       upwards-closed, because a long AP implies a short AP. (Contributed by
       Mario Carneiro, 13-Sep-2014.) $)
    vdwnnlem2 $p |- ( ( ph /\ B e. ( ZZ>= ` A ) ) -> ( A e. S -> B e. S ) ) $=
      ( wcel cn co cc0 c1 wrex cuz cfv wa cv cmul caddc ccnv csn cima cmin wral
      cfz wn wss wi cz eluzel2 peano2zm syl id cc wceq zcnd ax-1cn npcan fveq2d
      sylancl eleqtrrd eluzp1m1 syl2anc ad2antlr fzss2 3syl reximdv con3d simpr
      ssralv eluznn syl2anr jctild expimpd oveq1 oveq2d raleqdv 2rexbidv notbid
      elrab2 3imtr4g ) ACBUAUBZOZUCZBPOZIUDGUDKUDUEQUFQHUGJUDUHUIOZGRBSUJQZULQZ
      UKZKPTZIPTZUMZUCCPOZWMGRCSUJQZULQZUKZKPTZIPTZUMZUCZBEOCEOWKWLWSXGWKWLUCZW
      SXFWTXHXEWRXHXDWQIPXHXCWPKPXHXAWNUAUBOZWOXBUNXCWPUOWJXIAWLWJWNUPOZCWNSUFQ
      ZUAUBZOXIWJBUPOXJBCUQZBURUSWJCWIXLWJUTWJXKBUAWJBVAOSVAOXKBVBWJBXMVCVDBSVE
      VGVFVHWNCVIVJVKWNRXAVLWMGWOXBVQVMVNVNVOWLWLWJWTWKWLUTAWJVPCBVRVSVTWAWMGRF
      UDZSUJQZULQZUKZKPTIPTZUMZWSFBPEXNBVBZXRWRXTXQWPIKPPXTWMGXPWOXTXOWNRULXNBS
      UJWBWCWDWEWFNWGXSXFFCPEXNCVBZXRXEYAXQXCIKPPYAWMGXPXBYAXOXARULXNCSUJWBWCWD
      WEWFNWGWH $.

    vdwnn.4 $e |- ( ph -> A. c e. R S =/= (/) ) $.
    $( Lemma for ~ vdwnn .  (Contributed by Mario Carneiro, 13-Sep-2014.)
       (Proof shortened by AV, 27-Sep-2020.) $)
    vdwnnlem3 $p |- -. ph $=
      ( cr cv wrex wcel cn co c1 vx clt cinf cle wbr wral cfn wa cmul caddc csn
      ccnv cima cc0 cmin cfz wn crab ssrab2 eqsstri cuz cfv wss c0 nnuz sseqtri
      wne r19.21bi infssuzcl sylancr sseldi nnred ralrimiva fimaxre3 syl2anc wi
      cfl cn0 wf 1nn ffvelrn sylancl syl adantr r19.2z ex simplr fllep1 adantlr
      ne0i flcld peano2zd zred letr syl3anc mpan2d cz nnzd eluz simpll impancom
      wb vdwnnlem2 sylbird syld sseli syl6 rexlimdva simpr vdwnnlem1 3syld wceq
      nnnn0d oveq1 oveq2d raleqdv 2rexbidv notbid elrab2 ralimdva ralnex syl6ib
      simprbi pm2.65d nrexdv pm2.65i ) ACNUBUCZUAOZUDUEZHBUFZUANPZABUGQZYGNQZHB
      UFYKJAYMHBAHOZBQZUHZYGYPCRYGCGOEOIOUISUJSFULYNUKUMQZEUNDOZTUOSZUPSZUFZIRP
      GRPZUQZDRURRLUUCDRUSUTZYPCTVAVBZVCCVDVGZYGCQZCRUUEUUDVEVFAUUFHBMVHCTVIVJZ
      VKZVLZVMUAHBYGVNVOAYJUANAYHNQZUHZYJYQEUNYHVQVBZTUJSZTUOSZUPSZUFZIRPGRPZHB
      PZUULYJYIHBPZUUNVRQZUUSUULBVDVGZYJUUTVPAUVBUUKATFVBZBQZUVBARBFVSZTRQUVDKV
      TRBTFWAWBBUVCWJWCWDUVBYJUUTYIHBWEWFWCUULYIUVAHBUULYOUHZYIUUNCQZUVAUVFYIYG
      UUNUDUEZUVGUVFYIYHUUNUDUEZUVHUVFUUKUVIAUUKYOWGZYHWHWCUVFYMUUKUUNNQYIUVIUH
      UVHVPAYOYMUUKUUJWIUVJUVFUUNUVFUUMUVFYHUVJWKWLZWMYGYHUUNWNWOWPUVFUVHUUNYGV
      AVBQZUVGUVFYGWQQUUNWQQUVLUVHXBUVFYGAYOYGRQUUKUUIWIWRUVKYGUUNWSVOUVFAUUGUV
      LUVGVPAUUKYOWTAYOUUGUUKUUHWIAUVLUUGUVGAYGUUNBCDEFGHIJKLXCXAVOXDXEZUVGUUNC
      RUUNUUDXFXMXGXHAUVAUUSVPUUKAUVAUUSAUVAUHYLUVEUVAUUSAYLUVAJWDAUVEUVAKWDAUV
      AXIBEFUUNGHIXJWOWFWDXKUULYJUURUQZHBUFUUSUQUULYIUVNHBUVFYIUVGUVNUVMUVGUUNR
      QUVNUUCUVNDUUNRCYRUUNXLZUUBUURUVOUUAUUQGIRRUVOYQEYTUUPUVOYSUUOUNUPYRUUNTU
      OXNXOXPXQXRLXSYCXGXTUURHBYAYBYDYEYF $.
  $}

  ${
    $d a c d k m u w x y z F $.  $d c u y z R $.
    $( Van der Waerden's theorem, infinitary version.  For any finite coloring
       ` F ` of the positive integers, there is a color ` c ` that contains
       arbitrarily long arithmetic progressions.  (Contributed by Mario
       Carneiro, 13-Sep-2014.) $)
    vdwnn $p |- ( ( R e. Fin /\ F : NN --> R ) ->
      E. c e. R A. k e. NN E. a e. NN E. d e. NN A. m e. ( 0 ... ( k - 1 ) )
      ( a + ( m x. d ) ) e. ( `' F " { c } ) ) $=
      ( vu vw vy vz wcel cn cv cmul co caddc wral wrex wn vx cfn wf wa ccnv csn
      cima cc0 c1 cmin cfz crab simpll simplr weq oveq2d eleq1d cbvralv ralbidv
      wi oveq1 syl5bb oveq2 cbvrex2v raleqdv 2rexbidv notbid cbvrabv simpr sneq
      wne imaeq2d eleq2d cbvrexv sylnib rabn0 rexnal bitri ralbii ralnex sylibr
      c0 vdwnnlem3 iman mpbir ) AUBLZMADUCZUDZENZCNZGNZOPZQPZDUEZFNZUFZUGZLZCUH
      BNZUIUJPZUKPZRZGMSEMSZBMRZFASZUTWHXETZUDZTXGAWMWNHNZUFZUGZLZCXARZGMSEMSZT
      ZBMULZUAIDJHKWFWGXFUMWFWGXFUNXNJNZINZKNZOPZQPZXJLZIUHUANZUIUJPZUKPZRZKMSJ
      MSZTBUAMBUAUOZXMYFXMYAIXARZKMSJMSYGYFXLYHXPXQWKOPZQPZXJLZIXARZEGJKMMXLWIY
      IQPZXJLZIXAREJUOZYLXKYNCIXACIUOZWMYMXJYPWLYIWIQWJXQWKOVAUPUQURYOYNYKIXAYO
      YMYJXJWIXPYIQVAUQUSVBGKUOZYKYAIXAYQYJXTXJYQYIXSXPQWKXRXQOVCUPUQUSVDYGYHYE
      JKMMYGYAIXAYDYGWTYCUHUKWSYBUIUJVAUPVEVFVBVGVHXGXMBMRZHASZTZXOWBVKZHARZXGX
      EYSWHXFVIXDYRFHAFHUOZXCXMBMUUCXBXLEGMMUUCWRXKCXAUUCWQXJWMUUCWPXIWNWOXHVJV
      LVMUSVFUSVNVOUUBYRTZHARYTUUAUUDHAUUAXNBMSUUDXNBMVPXMBMVQVRVSYRHAVTVRWAWCW
      HXEWDWE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ramsey's theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Ramsey $.

  $( Extend class notation with the Ramsey number function. $)
  cram $a class Ramsey $.

  ${
    $d n s M $.  $d n ph $.  $d n s T $.
    ramtlecl.t $e |- T = { n e. NN0 | A. s ( n <_ ( # ` s ) -> ph ) } $.
    $( The set ` T ` of numbers with the Ramsey number property is
       upward-closed.  (Contributed by Mario Carneiro, 21-Apr-2015.) $)
    ramtlecl $p |- ( M e. T -> ( ZZ>= ` M ) C_ T ) $=
      ( wcel cfv cv cle wbr wi wal cn0 wss wral wa cxr sseldi cvv cuz crab wceq
      chash breq1 imbi1d albidv elrab2 simplbi eluznn0 ssrdv syl simprbi eluzle
      ex adantl cr nn0ssre ressxr sstri adantr vex hashxrcl mp1i xrletr syl3anc
      sylan mpand imim1d ralrimdva alimdv mpd ralcom4 sylibr sylanbrc syl6sseqr
      ssrab ) DBGZDUAHZCIZEIZUDHZJKZALZEMZCNUBZBVRVSNOZWECVSPZVSWFOVRDNGZWGVRWI
      DWBJKZALZEMZWEWLCDNBVTDUCZWDWKEWMWCWJAVTDWBJUEUFUGFUHZUIZWICVSNWIVTVSGZVT
      NGZVTDUJZUOUKULVRWDCVSPZEMZWHVRWLWTVRWIWLWNUMVRWKWSEVRWKWDCVSVRWPQZWCWJAX
      ADVTJKZWCWJWPXBVRDVTUNUPXADRGVTRGWBRGZXBWCQWJLXANRDNUQRURUSUTZVRWIWPWOVAS
      XANRVTXDVRWIWPWQWOWRVGSWATGXCXAEVBWATVCVDDVTWBVEVFVHVIVJVKVLWDCEVSVMVNWEC
      NVSVQVOFVP $.
  $}

  ${
    $d c f x y C $.  $d c f m n r s x y z F $.  $d a b c f i m n r s x y z M $.
    $d a i x A $.  $d a i x B $.  $d c f m n r s x y z R $.  $d m r y z T $.
    $d a i x N $.  $d c f m n r s x y z V $.
    $( Define the Ramsey number function.  The input is a number ` m ` for the
       size of the edges of the hypergraph, and a tuple ` r ` from the finite
       color set to lower bounds for each color.  The Ramsey number
       ` ( M Ramsey R ) ` is the smallest number such that for any set ` S `
       with ` ( M Ramsey R ) <_ # S ` and any coloring ` F ` of the set of
       ` M ` -element subsets of ` S ` (with color set ` dom R ` ), there is a
       color ` c e. dom R ` and a subset ` x C_ S ` such that
       ` R ( c ) <_ # x ` and all the hyperedges of ` x ` (that is, subsets of
       ` x ` of size ` M ` ) have color ` c ` .  (Contributed by Mario
       Carneiro, 20-Apr-2015.)  (Revised by AV, 14-Sep-2020.) $)
    df-ram $a |- Ramsey = ( m e. NN0 , r e. _V |-> inf ( { n e. NN0 | A. s
      ( n <_ ( # ` s ) -> A. f e. ( dom r ^m { y e. ~P s | ( # ` y ) = m } )
        E. c e. dom r E. x e. ~P s ( ( r ` c ) <_ ( # ` x ) /\
        A. y e. ~P x ( ( # ` y ) = m -> ( f ` y ) = c ) ) ) } , RR* , < ) ) $.

    ramval.c $e |- C = ( a e. _V , i e. NN0 |->
      { b e. ~P a | ( # ` b ) = i } ) $.
    $( Value of the "binomial set", the set of all ` N ` -element subsets of
       ` A ` .  (Contributed by Mario Carneiro, 20-Apr-2015.) $)
    hashbcval $p |- ( ( A e. V /\ N e. NN0 ) ->
      ( A C N ) = { x e. ~P A | ( # ` x ) = N } ) $=
      ( wcel cvv cn0 co cv chash cfv wceq cpw crab wa pwexg adantr rabexg fveq2
      elex syl eqeq1d cbvrabv simpl pweqd simpr eqeq2d rabeqbidv syl5eq mpd3an3
      ovmpt2ga sylan ) BFJBKJZELJZBECMANZOPZEQZABRZSZQZBFUEURUSVDKJZVEURUSTVCKJ
      ZVFURVGUSBKUAUBVBAVCKUCUFGDBEKLHNZOPZDNZQZHGNZRZSZVDCKVLBQZVJEQZTZVNVAVJQ
      ZAVMSVDVKVRHAVMVHUTQVIVAVJVHUTOUDUGUHVQVRVBAVMVCVQVLBVOVPUIUJVQVJEVAVOVPU
      KULUMUNIUPUOUQ $.

    $( The binomial set is a finite set.  (Contributed by Mario Carneiro,
       20-Apr-2015.) $)
    hashbccl $p |- ( ( A e. Fin /\ N e. NN0 ) -> ( A C N ) e. Fin ) $=
      ( vx cfn wcel cn0 wa co cv chash cfv wceq cpw crab hashbcval simpl ssrab2
      wss pwfi sylib ssfi sylancl eqeltrd ) AIJZDKJZLZADBMHNOPDQZHARZSZIHABCDIE
      FGTUKUMIJZUNUMUCUNIJUKUIUOUIUJUAAUDUEULHUMUBUMUNUFUGUH $.

    $( Subset relation for the binomial set.  (Contributed by Mario Carneiro,
       20-Apr-2015.) $)
    hashbcss $p |- ( ( A e. V /\ B C_ A /\ N e. NN0 ) ->
      ( B C N ) C_ ( A C N ) ) $=
      ( vx wcel wss cn0 w3a wceq cpw crab co cvv hashbcval cv chash simp2 sspwb
      cfv sylib rabss2 syl simp1 ssexd simp3 syl2anc 3adant2 3sstr4d ) AFKZBALZ
      EMKZNZJUAUBUEEOZJBPZQZUSJAPZQZBECRZAECRZURUTVBLZVAVCLURUPVFUOUPUQUCZBAUDU
      FUSJUTVBUGUHURBSKUQVDVAOURBAFUOUPUQUIVGUJUOUPUQUKJBCDESGHITULUOUQVEVCOUPJ
      ACDEFGHITUMUN $.

    $( The set of subsets of size zero is the singleton of the empty set.
       (Contributed by Mario Carneiro, 22-Apr-2015.) $)
    hashbc0 $p |- ( A e. V -> ( A C 0 ) = { (/) } ) $=
      ( vx wcel cc0 co cv chash cfv wceq cpw c0 wa cab cvv crab hashbcval mpan2
      csn cn0 0nn0 wb vex hasheq0 ax-mp anbi2i id 0elpw syl6eqel pm4.71ri abbii
      bitr4i df-rab df-sn 3eqtr4i syl6eq ) ADIZAJBKZHLZMNJOZHAPZUAZQUDZVBJUEIVC
      VGOUFHABCJDEFGUBUCVDVFIZVERZHSVDQOZHSVGVHVJVKHVJVIVKRVKVEVKVIVDTIVEVKUGHU
      HVDTUIUJUKVKVIVKVDQVFVKULAUMUNUOUQUPVEHVFURHQUSUTVA $.

    $( The size of the binomial set is the binomial coefficient.  (Contributed
       by Mario Carneiro, 20-Apr-2015.) $)
    hashbc2 $p |- ( ( A e. Fin /\ N e. NN0 ) ->
      ( # ` ( A C N ) ) = ( ( # ` A ) _C N ) ) $=
      ( vx cfn wcel cn0 wa co chash cfv cv wceq cpw crab cbc fveq2d nn0z hashbc
      hashbcval cz sylan2 eqtr4d ) AIJZDKJZLZADBMZNOHPNODQHARSZNOZANODTMZUJUKUL
      NHABCDIEFGUDUAUIUHDUEJUNUMQDUBHADUCUFUG $.

    $( There are no subsets of the empty set with size greater than zero.
       (Contributed by Mario Carneiro, 22-Apr-2015.) $)
    0hashbc $p |- ( N e. NN -> ( (/) C N ) = (/) ) $=
      ( cn wcel c0 co chash cfv cc0 wceq cbc cfn cn0 0fin nnnn0 cvv oveq1i bc0k
      hashbc2 sylancr hash0 syl5eq eqtrd wb ovex hasheq0 ax-mp sylib ) CGHZICAJ
      ZKLZMNZUNINZUMUOIKLZCOJZMUMIPHCQHUOUSNRCSIABCDEFUCUDUMUSMCOJMURMCOUEUACUB
      UFUGUNTHUPUQUHICAUIUNTUJUKUL $.

    ramval.t $e |- T = { n e. NN0 | A. s ( n <_ ( # ` s ) ->
       A. f e. ( R ^m ( s C M ) ) E. c e. R E. x e. ~P s
        ( ( F ` c ) <_ ( # ` x ) /\ ( x C M ) C_ ( `' f " { c } ) ) ) } $.
    $( The value of the Ramsey number function.  (Contributed by Mario
       Carneiro, 21-Apr-2015.)  (Revised by AV, 14-Sep-2020.) $)
    ramval $p |- ( ( M e. NN0 /\ R e. V /\ F : R --> NN0 )
                   -> ( M Ramsey F ) = inf ( T , RR* , < ) ) $=
      ( vy cn0 wcel wa vm vr wf w3a cvv cv chash cfv cle wbr wceq cpw wral wrex
      wi cdm crab cmap wal cxr clt cinf cram cmpt2 df-ram a1i ccnv csn cima wss
      co simplrr dmeqd simpll3 fdm syl eqtrd simplrl eqeq2d rabbidv vex simpll1
      hashbcval sylancr eqtr4d oveq12d simpr 3ad2ant3 sylan9eqr ad2antrr fveq1d
      raleqdv breq1d oveq2d eqeltrd eqtr3d sseq1d rabss wfn elmapi ad3antlr ffn
      wb fniniseg 3syl eleq2d rabid syl6bb biimpar elpwi adantl hashbcss sselda
      syl3anc syldan biantrurd bitr4d anassrs pm5.74da ralbidva syl5bb rexbidva
      bitr2d anbi12d rexeqbidv bitrd imbi2d albidv rabbidva syl6eqr simp1 simp3
      infeq1d simp2 fex syl2anc xrltso infex ovmpt2d ) IRSZCJSZCRHUCZUDZUAUBIHR
      UEGUFZKUFZUGUHUIUJZNUFZUBUFZUHZAUFZUGUHZUIUJZQUFZUGUHZUAUFZUKZUUMEUFZUHUU
      GUKZUOZQUUJULZUMZTZAUUEULZUNZNUUHUPZUNZEUVEUUPQUVCUQZURVKZUMZUOZKUSZGRUQZ
      UTVAVBZDUTVAVBZVCUEVCUAUBRUEUVMVDUKUUCAQEUAGKUBNVEVFUUCUUOIUKZUUHHUKZTZTZ
      UTUVLDVAUVRUVLUUFUUGHUHZUUKUIUJZUUJIBVKZUUQVGUUGVHVIZVJZTZAUVCUNZNCUNZECU
      UEIBVKZURVKZUMZUOZKUSZGRUQDUVRUVKUWKGRUVRUUDRSZTZUVJUWJKUWMUVIUWIUUFUWMUV
      IUVFEUWHUMUWIUWMUVFEUVHUWHUWMUVECUVGUWGURUWMUVEHUPZCUWMUUHHUUCUVOUVPUWLVL
      ZVMUWMUUBUWNCUKZYTUUAUUBUVQUWLVNCRHVOZVPVQUWMUVGUUNIUKZQUVCUQZUWGUWMUUPUW
      RQUVCUWMUUOIUUNUUCUVOUVPUWLVRZVSVTUWMUUEUESZYTUWGUWSUKKWAZYTUUAUUBUVQUWLW
      BZQUUEBFIUELMOWCWDWEWFWLUWMUVFUWFEUWHUWMUUQUWHSZTZUVDUWENUVECUVRUVECUKUWL
      UXDUVQUUCUVEUWNCUVQUUHHUVOUVPWGVMUUBYTUWPUUAUWQWHWIWJUXEUVBUWDAUVCUXEUUJU
      VCSZTZUULUVTUVAUWCUXGUUIUVSUUKUIUXGUUGUUHHUWMUVPUXDUXFUWOWJWKWMUXGUWCUUPQ
      UUTUQZUWBVJZUVAUXGUWAUXHUWBUXGUUJUUOBVKZUWAUXHUXGUUOIUUJBUWMUVOUXDUXFUWTW
      JZWNUXGUUJUESUUORSUXJUXHUKAWAUXGUUOIRUXKUWMYTUXDUXFUXCWJZWOQUUJBFUUOUELMO
      WCWDWPZWQUXIUUPUUMUWBSZUOZQUUTUMUXGUVAUUPQUUTUWBWRUXGUXOUUSQUUTUXGUUMUUTS
      ZTUUPUXNUURUXGUXPUUPUXNUURXCUXGUXPUUPTZTZUXNUUMUWGSZUURTZUURUXRUWGCUUQUCZ
      UUQUWGWSUXNUXTXCUXDUYAUWMUXFUXQUUQCUWGWTXAUWGCUUQXBUWGUUGUUMUUQXDXEUXRUXS
      UURUXGUXQUUMUWASZUXSUXGUYBUXQUXGUYBUUMUXHSUXQUXGUWAUXHUUMUXMXFUUPQUUTXGXH
      XIUXGUWAUWGUUMUXGUXAUUJUUEVJZYTUWAUWGVJUXAUXGUXBVFUXFUYCUXEUUJUUEXJXKUXLU
      UEUUJBFIUELMOXLXNXMXOXPXQXRXSXTYAYCYDYBYEXTYFYGYHYIPYJYMYTUUAUUBYKUUCUUBU
      UAHUESYTUUAUUBYLYTUUAUUBYNCRJHYOYPUVNUESUUCUTDVAYQYRVFYS $.

    $( Lemma for extended real closure of the Ramsey number function.
       (Contributed by Mario Carneiro, 20-Apr-2015.)  (Revised by AV,
       14-Sep-2020.) $)
    ramcl2lem $p |- ( ( M e. NN0 /\ R e. V /\ F : R --> NN0 )
             -> ( M Ramsey F ) = if ( T = (/) , +oo , inf ( T , RR , < ) ) ) $=
      ( cpnf cr clt cn0 vz c0 wceq cram co cinf cif wcel wf eqeq2 ramval infeq1
      w3a cxr xrinf0 syl6eq sylan9eq wn wne df-ne wa adantr wor xrltso cv chash
      a1i cfv cle wbr ccnv csn cima wss cpw wrex cmap wral crab eqsstri nn0ssre
      wal ssrab2 sstri cc0 cuz nn0uz sseqtri infssuzcl sylan sseldi rexrd simpr
      wi infssuzle sylancr sselda lenltd mpbid infmin eqtrd sylan2br ifbothda )
      DUBUCZIHUDUEZQUCXEDRSUFZUCZXEXDQXFUGZUCITUHCJUHCTHUIUMZQXFQXHXEUJXFXHXEUJ
      XIXDXEDUNSUFZQABCDEFGHIJKLMNOPUKZXDXJUBUNSUFQUNDUBSULUOUPUQXDURXIDUBUSZXG
      DUBUTXIXLVAZXEXJXFXIXEXJUCXLXKVBXMUAUNDXFSUNSVCXMVDVGXMXFXMDRXFDTRDGVEKVE
      ZVFVHVIVJNVEZHVHAVEZVFVHVIVJXPIBUEEVEVKXOVLVMVNVAAXNVOVPNCVPECXNIBUEVQUEV
      RWNKWBZGTVSTPXQGTWCVTZWAWDZXIDWEWFVHZVNZXLXFDUHYAXIDTXTXRWGWHZVGDWEWIWJZW
      KZWLYCXMUAVEZDUHZVAZXFYEVIVJZYEXFSVJURYGYAYFYHYBXMYFWMYEDWEWOWPYGXFYEXMXF
      RUHYFYDVBXMDRYEDRVNXMXSVGWQWRWSWTXAXBXC $.

    $( The Ramsey number has the Ramsey number property if any number does.
       (Contributed by Mario Carneiro, 20-Apr-2015.)  (Revised by AV,
       14-Sep-2020.) $)
    ramtcl $p |- ( ( M e. NN0 /\ R e. V /\ F : R --> NN0 ) ->
      ( ( M Ramsey F ) e. T <-> T =/= (/) ) ) $=
      ( cn0 wcel co cv wf w3a cram c0 wne ne0i clt cinf wceq cpnf cif ramcl2lem
      wa cr ifnefalse sylan9eq cc0 cuz cfv wss chash cle wbr ccnv csn cima wrex
      cpw cmap wral wal crab ssrab2 eqsstri nn0uz sseqtri a1i infssuzcl eqeltrd
      wi sylan ex impbid2 ) IQRCJRCQHUAUBZIHUCSZDRZDUDUEZDWEUFWDWGWFWDWGUMWEDUN
      UGUHZDWDWGWEDUDUIUJWHUKWHABCDEFGHIJKLMNOPULDUDUJWHUOUPWDDUQURUSZUTZWGWHDR
      WJWDDQWIDGTKTZVAUSVBVCNTZHUSATZVAUSVBVCWMIBSETVDWLVEVFUTUMAWKVHVGNCVGECWK
      IBSVISVJVTKVKZGQVLQPWNGQVMVNVOVPVQDUQVRWAVSWBWC $.

    $( The Ramsey number is an integer iff there is a number with the Ramsey
       number property.  (Contributed by Mario Carneiro, 20-Apr-2015.)
       (Revised by AV, 14-Sep-2020.) $)
    ramtcl2 $p |- ( ( M e. NN0 /\ R e. V /\ F : R --> NN0 ) ->
      ( ( M Ramsey F ) e. NN0 <-> T =/= (/) ) ) $=
      ( cn0 wcel cpnf cv wf w3a cram co c0 wne wceq cr clt cif ramcl2lem eleq1d
      cinf pnfnre neli iftrue nn0re syl6bi mtoi necon2ai chash cfv cle wbr ccnv
      ramtcl csn cima wss wa cpw wrex cmap wral wal crab ssrab2 eqsstri syl6bir
      wi sseli impbid ) IQRCJRCQHUAUBZIHUCUDZQRZDUEUFZWCWEDUEUGZSDUHUIUMZUJZQRZ
      WFWCWDWIQABCDEFGHIJKLMNOPUKULWJDUEWGWJSUHRZSUHUNUOWGWJSQRWKWGWISQWGSWHUPU
      LSUQURUSUTURWCWFWDDRWEABCDEFGHIJKLMNOPVFDQWDDGTKTZVAVBVCVDNTZHVBATZVAVBVC
      VDWNIBUDETVEWMVGVHVIVJAWLVKVLNCVLECWLIBUDVMUDVNVTKVOZGQVPQPWOGQVQVRWAVSWB
      $.

    $( The Ramsey number is a lower bound on the set of all numbers with the
       Ramsey number property.  (Contributed by Mario Carneiro, 20-Apr-2015.)
       (Revised by AV, 14-Sep-2020.) $)
    ramtub $p |- ( ( ( M e. NN0 /\ R e. V /\ F : R --> NN0 ) /\ A e. T ) ->
      ( M Ramsey F ) <_ A ) $=
      ( cn0 co cv wcel wf w3a wa cram cr clt cinf cle c0 wceq cif ramcl2lem n0i
      cpnf iffalsed sylan9eq cc0 cuz cfv wss wbr chash ccnv cima wrex cmap wral
      csn cpw wal crab ssrab2 eqsstri nn0uz sseqtri a1i infssuzle sylan eqbrtrd
      wi ) JRUADKUADRIUBUCZBEUAZUDJIUESZEUFUGUHZBUIWBWCWDEUJUKZUOWEULWEACDEFGHI
      JKLMNOPQUMWCWFUOWEEBUNUPUQWBEURUSUTZVAZWCWEBUIVBWHWBERWGEHTLTZVCUTUIVBOTZ
      IUTATZVCUTUIVBWKJCSFTVDWJVIVEVAUDAWIVJVFODVFFDWIJCSVGSVHWALVKZHRVLRQWLHRV
      MVNVOVPVQBEURVRVSVT $.
  $}

  ${
    $d c f g n s t x C $.  $d c f x G $.  $d c f g s t x ph $.  $d c f s x S $.
    $d c f g n s t x F $.  $d a b c f g i n s t x M $.  $d c f g n s t x R $.
    $d a c f g i n s t x N $.  $d c f g n s t x V $.
    rami.c $e |- C = ( a e. _V , i e. NN0 |->
      { b e. ~P a | ( # ` b ) = i } ) $.
    rami.m $e |- ( ph -> M e. NN0 ) $.
    rami.r $e |- ( ph -> R e. V ) $.
    rami.f $e |- ( ph -> F : R --> NN0 ) $.
    ${
      ramub.n $e |- ( ph -> N e. NN0 ) $.
      ramub.i $e |- ( ( ph /\ ( N <_ ( # ` s ) /\ f : ( s C M ) --> R ) ) ->
        E. c e. R E. x e. ~P s ( ( F ` c ) <_ ( # ` x ) /\
          ( x C M ) C_ ( `' f " { c } ) ) ) $.
      $( The Ramsey number is a lower bound on the set of all numbers with the
         Ramsey number property.  (Contributed by Mario Carneiro,
         22-Apr-2015.) $)
      ramub $p |- ( ph -> ( M Ramsey F ) <_ N ) $=
        ( vn cn0 wcel wf cv chash cfv cle wbr co ccnv csn cima wss wa wrex cmap
        cpw wral wi crab cram elmapi ancom2s expr sylan2 ralrimdva alrimiv wceq
        wal breq1 imbi1d albidv elrab sylanbrc eqid ramtub syl31anc ) AHUBUCDJU
        CDUBGUDIUAUEZKUEZUFUGZUHUIZNUEZGUGBUEZUFUGUHUIWDHCUJEUEZUKWCULUMUNUOBVT
        URUPNDUPZEDVTHCUJZUQUJZUSZUTZKVJZUAUBVAZUCZHGVBUJIUHUIPQRAIUBUCIWAUHUIZ
        WIUTZKVJZWMSAWOKAWNWFEWHWEWHUCAWGDWEUDZWNWFUTWEDWGVCAWQWNWFAWNWQWFTVDVE
        VFVGVHWKWPUAIUBVSIVIZWJWOKWRWBWNWIVSIWAUHVKVLVMVNVOBICDWLEFUAGHJKLMNOWL
        VPVQVR $.
    $}

    ${
      ramub2.n $e |- ( ph -> N e. NN0 ) $.
      ramub2.i $e |- ( ( ph /\ ( ( # ` s ) = N /\
        f : ( s C M ) --> R ) ) -> E. c e. R E. x e. ~P s
          ( ( F ` c ) <_ ( # ` x ) /\ ( x C M ) C_ ( `' f " { c } ) ) ) $.
      $( It is sufficient to check the Ramsey property on finite sets of size
         equal to the upper bound.  (Contributed by Mario Carneiro,
         23-Apr-2015.) $)
      ramub2 $p |- ( ph -> ( M Ramsey F ) <_ N ) $=
        ( vg vt cv chash cfv cle wbr co wf wa c1 cfz cen wss ccnv csn cima wrex
        cpw cdom wex cn0 wcel wceq adantr hashfz1 syl simprl eqbrtrd cfn cvv wb
        fzfid vex hashdom sylancl mpbid domen sylib cin simpll ad2antrl hasheni
        cres ensym ad2antrr eqtrd simplrr simprr hashbcss syl3anc fssresd resex
        a1i wi feq1 anbi2d cnveq imaeq1d cnvresima syl6eq sseq2d 2rexbidv vtocl
        imbi12d syl12anc sstr expcom ad2antll selpw 3imtr4g inss1 syl6ss anim2d
        id anim12d reximdv2 reximdv mpd exlimddv ramub ) ABCDUAFGHIJUBLMNOPQRSA
        IUBUCZUDUEZUFUGZYBHCUHZDUAUCZUIZUJZUJZUKIULUHZKUCZUMUGZYKYBUNZUJZNUCZGU
        EBUCZUDUEUFUGZYPHCUHZYFUOYOUPZUQZUNZUJZBYBUSZURZNDURZKYIYJYBUTUGZYNKVAY
        IYJUDUEZYCUFUGZUUFYIUUGIYCUFYIIVBVCZUUGIVDZAUUIYHSVEIVFZVGAYDYGVHVIYIYJ
        VJVCYBVKVCZUUHUUFVLYIUKIVMUBVNZYJYBVKVOVPVQKYJYBUUMVRVSYIYNUJZYQYRYTYKH
        CUHZVTZUNZUJZBYKUSZURZNDURZUUEUUNAYKUDUEZIVDZUUODYFUUOWDZUIZUVAAYHYNWAU
        UNUVBUUGIUUNYKYJUMUGZUVBUUGVDYLUVFYIYMYJYKWEWBYKYJWCVGUUNUUIUUJAUUIYHYN
        SWFUUKVGWGUUNYEDUUOYFAYDYGYNWHUUNUULYMHVBVCZUUOYEUNUULUUNUUMWNYIYLYMWIA
        UVGYHYNPWFYBYKCFHVKLMOWJWKWLAUVCUUODEUCZUIZUJZUJZYQYRUVHUOZYSUQZUNZUJZB
        UUSURNDURZWOAUVCUVEUJZUJZUVAWOEUVDYFUUOUAVNWMUVHUVDVDZUVKUVRUVPUVAUVSUV
        JUVQAUVSUVIUVEUVCUUODUVHUVDWPWQWQUVSUVOUURNBDUUSUVSUVNUUQYQUVSUVMUUPYRU
        VSUVMUVDUOZYSUQUUPUVSUVLUVTYSUVHUVDWRWSUUOYSYFWTXAXBWQXCXETXDXFUUNUUTUU
        DNDUUNUURUUBBUUSUUCUUNYPUUSVCZYPUUCVCZUURUUBUUNYPYKUNZYPYBUNZUWAUWBYMUW
        CUWDWOYIYLUWCYMUWDYPYKYBXGXHXIBYKXJBYBXJXKUUNUUQUUAYQUUQUUAWOUUNUUQYRUU
        PYTUUQXOYTUUOXLXMWNXNXPXQXRXSXTYA $.
    $}

    rami.x $e |- ( ph -> ( M Ramsey F ) e. NN0 ) $.
    rami.s $e |- ( ph -> S e. W ) $.
    rami.l $e |- ( ph -> ( M Ramsey F ) <_ ( # ` S ) ) $.
    rami.g $e |- ( ph -> G : ( S C M ) --> R ) $.
    $( The defining property of a Ramsey number.  (Contributed by Mario
       Carneiro, 22-Apr-2015.) $)
    rami $p |- ( ph -> E. c e. R E. x e. ~P S
        ( ( F ` c ) <_ ( # ` x ) /\ ( x C M ) C_ ( `' G " { c } ) ) ) $=
      ( vf vs vn co cmap wcel cfv chash cle wbr ccnv csn cima wss cpw wrex wral
      cv wa wf cvv wb ovex elmapg sylancl mpbird cram wal cn0 crab w3a wne eqid
      wi c0 ramtcl2 ramtcl bitr4d syl3anc mpbid wceq breq1 imbi1d elrab simprbi
      albidv syl fveq2 breq2d oveq1 oveq2d pweq rexeqdv rexbidv raleqbidv spcgv
      imbi12d syl3c cnveq imaeq1d sseq2d anbi2d 2rexbidv rspcv sylc ) AHDEICUFZ
      UGUFZUHZNUTZGUIBUTZUJUIUKULZXLICUFZUCUTZUMZXKUNZUOZUPZVAZBEUQZURZNDURZUCX
      IUSZXMXNHUMZXQUOZUPZVAZBYAURNDURZAXJXHDHVBZUBADJUHZXHVCUHXJYJVDQEICVEDXHH
      JVCVFVGVHAEKUHIGVIUFZUDUTZUJUIZUKULZXTBYMUQZURZNDURZUCDYMICUFZUGUFZUSZVPZ
      UDVJZYLEUJUIZUKULZYDTAYLUEUTZYNUKULZUUAVPZUDVJZUEVKVLZUHZUUCAYLVKUHZUUKSA
      IVKUHZYKDVKGVBZUULUUKVDPQRUUMYKUUNVMUULUUJVQVNUUKBCDUUJUCFUEGIJUDLMNOUUJV
      OZVRBCDUUJUCFUEGIJUDLMNOUUOVSVTWAWBUUKUULUUCUUIUUCUEYLVKUUFYLWCZUUHUUBUDU
      UPUUGYOUUAUUFYLYNUKWDWEWHWFWGWIUAUUBUUEYDVPUDEKYMEWCZYOUUEUUAYDUUQYNUUDYL
      UKYMEUJWJWKUUQYRYCUCYTXIUUQYSXHDUGYMEICWLWMUUQYQYBNDUUQXTBYPYAYMEWNWOWPWQ
      WSWRWTYCYIUCHXIXOHWCZXTYHNBDYAUURXSYGXMUURXRYFXNUURXPYEXQXOHXAXBXCXDXEXFX
      G $.
  $}

  ${
    $d c f n s x F $.  $d a b c f i n s x M $.  $d c f n s x R $.
    $d c f n s x V $.
    $( The Ramsey number is either a nonnegative integer or plus infinity.
       (Contributed by Mario Carneiro, 20-Apr-2015.)  (Revised by AV,
       14-Sep-2020.) $)
    ramcl2 $p |- ( ( M e. NN0 /\ R e. V /\ F : R --> NN0 ) ->
      ( M Ramsey F ) e. ( NN0 u. { +oo } ) ) $=
      ( vn vs vc vx va vi vb vf cn0 wcel co cpnf cv chash cfv wa wf w3a csn cun
      cram cle wbr cvv wceq cpw crab cmpt2 ccnv cima wss wrex cmap wi wal c0 cr
      wral clt cinf cif eqid ramcl2lem sylan9eq ssun2 pnfex snss mpbir syl6eqel
      iftrue wne ssun1 ramtcl2 biimpar sseldi pm2.61dane ) CMNADNAMBUAUBZCBUEOZ
      MPUCZUDZNEQFQZRSUFUGGQZBSHQZRSUFUGWGCIJUHMKQRSJQUIKIQUJUKULZOLQUMWFUCUNUO
      THWEUJUPGAUPLAWECWHOUQOVBURFUSEMUKZUTWAWIUTUIZTWBPWDWAWJWBWJPWIVAVCVDZVEP
      HWHAWILJEBCDFIKGWHVFZWIVFZVGWJPWKVNVHPWDNWCWDUOWCMVIPWDVJVKVLVMWAWIUTVOZT
      MWDWBMWCVPWAWBMNWNHWHAWILJEBCDFIKGWLWMVQVRVSVT $.
  $}

  $( The Ramsey number is an extended real number.  (This theorem does not
     imply Ramsey's theorem, unlike ~ ramcl .)  (Contributed by Mario Carneiro,
     20-Apr-2015.) $)
  ramxrcl $p |- ( ( M e. NN0 /\ R e. V /\ F : R --> NN0 ) ->
    ( M Ramsey F ) e. RR* ) $=
    ( cn0 wcel wf w3a cpnf csn cun cxr cram co nn0ssre ressxr sstri wss pnfxr
    cr snssi ax-mp unssi ramcl2 sseldi ) CEFADFAEBGHEIJZKLCBMNEUFLETLOPQILFUFLR
    SILUAUBUCABCDUDUE $.

  $( If the Ramsey number is upper bounded, then it is an integer.
     (Contributed by Mario Carneiro, 20-Apr-2015.) $)
  ramubcl $p |- ( ( ( M e. NN0 /\ R e. V /\ F : R --> NN0 ) /\
    ( A e. NN0 /\ ( M Ramsey F ) <_ A ) ) -> ( M Ramsey F ) e. NN0 ) $=
    ( cn0 wcel wf w3a cram co cle wbr wa cpnf csn wceq wn cr cxr nn0re ltpnf wb
    rexr pnfxr xrltnle sylancl mpbid ad2antrl simprr breq1 syl5ibcom mtod elsni
    clt syl nsyl cun wo ramcl2 adantr elun sylib ord mt3d ) DFGBEGBFCHIZAFGZDCJ
    KZALMZNZNZVHFGZVHOPZGZVKVHOQZVNVKVOOALMZVGVPRZVFVIVGASGZVQAUAVRAOUOMZVQAUBV
    RATGOTGVSVQUCAUDUEAOUFUGUHUPUIVKVIVOVPVFVGVIUJVHOALUKULUMVHOUNUQVKVLVNVKVHF
    VMURGZVLVNUSVFVTVJBCDEUTVAVHFVMVBVCVDVE $.

  ${
    $d c x C $.  $d c x F $.  $d c x G $.  $d a b c i x M $.  $d c x ph $.
    $d c x N $.  $d c x R $.  $d c x V $.
    ramlb.c $e |- C = ( a e. _V , i e. NN0 |->
      { b e. ~P a | ( # ` b ) = i } ) $.
    ramlb.m $e |- ( ph -> M e. NN0 ) $.
    ramlb.r $e |- ( ph -> R e. V ) $.
    ramlb.f $e |- ( ph -> F : R --> NN0 ) $.
    ramlb.s $e |- ( ph -> N e. NN0 ) $.
    ramlb.g $e |- ( ph -> G : ( ( 1 ... N ) C M ) --> R ) $.
    ramlb.i $e |- ( ( ph /\ ( c e. R /\ x C_ ( 1 ... N ) ) ) ->
      ( ( x C M ) C_ ( `' G " { c } ) -> ( # ` x ) < ( F ` c ) ) ) $.
    $( Establish a lower bound on a Ramsey number.  (Contributed by Mario
       Carneiro, 22-Apr-2015.) $)
    ramlb $p |- ( ph -> N < ( M Ramsey F ) ) $=
      ( cram co clt wbr cle wn wa cv cfv chash ccnv csn cima wss c1 cfz cpw cfn
      wrex cn0 wcel adantr simpr ramubcl syl32anc fzfid wceq hashfz1 syl breq2d
      wf biimpar rami wi elpwi adantlr simprr ssfi syl2anc hashcl simpl ffvelrn
      nn0red syl2an ltnled sylibd sylanr2 con2d imnan sylib rexlimdvva pm2.01da
      pm2.21d mpd cxr wb rexrd ramxrcl syl3anc xrltnle mpbird ) AIHFUAUBZUCUDZX
      BIUEUDZUFZAXDAXDUGZMUHZFUIZBUHZUJUIZUEUDZXIHCUBGUKXGULUMUNZUGZBUOIUPUBZUQ
      ZUSMDUSXEXFBCDXNEFGHJURKLMNAHUTVAZXDOVBZADJVAZXDPVBZADUTFVKZXDQVBZXFXPXRX
      TIUTVAZXDXBUTVAXQXSYAAYBXDRVBAXDVCIDFHJVDVEXFUOIVFAXBXNUJUIZUEUDXDAYCIXBU
      EAYBYCIVGRIVHVIVJVLAXNHCUBDGVKXDSVBVMXFXMXEMBDXOXFXGDVAZXIXOVAZUGUGZXMXEY
      FXKXLUFVNXMUFYFXLXKYEXFYDXIXNUNZXLXKUFZVNXIXNVOXFYDYGUGZUGZXLXJXHUCUDZYHA
      YIXLYKVNXDTVPYJXJXHYJXJYJXIURVAZXJUTVAYJXNURVAYGYLYJUOIVFXFYDYGVQXNXIVRVS
      XIVTVIWCYJXHXFXTYDXHUTVAYIYAYDYGWADUTXGFWBWDWCWEWFWGWHXKXLWIWJWMWKWNWLAIW
      OVAXBWOVAZXCXEWPAIAIRWCWQAXPXRXTYMOPQDFHJWRWSIXBWTVSXA $.
  $}

  ${
    $d b d z $.  $d c f s x C $.  $d a b c f i s x M $.  $d c d f s x y z R $.
    $d a c d f i s x y z F $.  $d c d f s x z V $.
    $( The Ramsey number when ` M = 0 ` .  (Contributed by Mario Carneiro,
       22-Apr-2015.) $)
    0ram $p |- ( ( ( R e. V /\ R =/= (/) /\ F : R --> NN0 ) /\ E. x e. ZZ
      A. y e. ran F y <_ x ) -> ( 0 Ramsey F ) = sup ( ran F , RR , < ) ) $=
      ( va vc wcel c0 cn0 cv cle wbr wa cc0 wceq cvv cfv wss adantr vz vi vb vf
      vs vd wne wf w3a crn wral cz wrex cram co cr clt csup chash cpw crab eqid
      cmpt2 0nn0 a1i simpl1 simpl3 frn syl nn0ssz syl6ss cdm fdm simpl2 eqnetrd
      dm0rn0 necon3bii sylib simpr suprzcl2 syl3anc sseldd csn ccnv vex hashbc0
      cima ax-mp feq2i biimpi simprr 0ex snid ffvelrn sylancl pwid nn0red rexrd
      ffvelrnd cxr hashxrcl mp1i wfn fnfvelrn syl2anc suprzub simprl xrletrd wb
      fvex elpreima 3syl mpbir2and fveq2 breq1d sseq1i snss bitr4i sneq imaeq2d
      ffn eleq2d syl5bb anbi12d breq2d anbi1d rspc2ev syl112anc sylanr2 fvelrnb
      ramub mpbid cn c1 cmin cfz cfn mpbird syl5ibcom breq1 cop simpll1 simpll3
      nnm1nn0 ad2antll wf1o f1osn f1of snssd fss sylancr ovex sylibr cdom fzfid
      ssdomg sylc ssfi hashdom hashfz1 breqtrd ffvelrnda adantrr nn0ltlem1 fvsn
      hashcl f1ofn simprbi syl5eqelr elsni fveq2d syl5bi ramlb ramubcl syl32anc
      mp2b nn0lem1lt expr nn0ge0d syl5ibrcom elnn0 mpjaod rexlimdva mpd letri3d
      wo ) CEHZCIUGZCJDUHZUIZBKAKLMBDUJZUKAULUMZNZODUNUOZUWKUPUQURZPUWNUWOLMZUW
      OUWNLMZUWMUAFUBQJUCKUSRUBKPUCFKUTVAVCZCUDUBDOUWOEUEFUCGUWRVBZOJHZUWMVDVEZ
      UWGUWHUWIUWLVFZUWGUWHUWIUWLVGZUWMUWKJUWOUWMUWIUWKJSUXCCJDVHVIZUWMUWKULSZU
      WKIUGZUWLUWOUWKHZUWMUWKJULUXDVJVKZUWMDVLZIUGUXFUWMUXICIUWMUWIUXICPUXCCJDV
      MVIUWGUWHUWIUWLVNVOUXIIUWKIDVPVQVRUWJUWLVSZABUWKVTWAZWBZUEKZOUWRUOZCUDKZU
      HZUWMUWOUXMUSRZLMZIWCZCUXOUHZGKZDRZUAKZUSRZLMZUYCOUWRUOZUXOWDZUYAWCZWGZSZ
      NZUAUXMUTZUMGCUMZUXPUXTUXNUXSCUXOUXMQHZUXNUXSPUEWEZUXMUWRUBQFUCUWSWFWHWIW
      JUWMUXRUXTNZNZIUXORZCHZUXMUYLHZUYRDRZUXQLMZIUYGUYRWCZWGZHZUYMUYQUXTIUXSHZ
      UYSUWMUXRUXTWKZIWLWMZUXSCIUXOWNWOZUYTUYQUXMUYOWPVEUYQVUAUWOUXQUYQVUAUYQVU
      AUYQCJUYRDUWMUWIUYPUXCTZVUIWSWQWRUWMUWOWTHUYPUWMUWOUWMUWOUXLWQZWRTUYNUXQW
      THUYQUYOUXMQXAXBUYQUXEUWLVUAUWKHZVUAUWOLMUWMUXEUYPUXHTUWMUWLUYPUXJTUYQDCX
      CZUYSVULUYQUWIVUMVUJCJDYAZVIVUICUYRDXDXEABUWKVUAXFWAUWMUXRUXTXGXHUYQVUEVU
      FUYRVUCHZVUFUYQVUHVEVUOUYQUYRIUXOXJWMVEUYQUXTUXOUXSXCVUEVUFVUONXIVUGUXSCU
      XOYAUXSIVUCUXOXKXLXMUYKVUBVUENVUAUYDLMZVUENGUAUYRUXMCUYLUYAUYRPZUYEVUPUYJ
      VUEVUQUYBVUAUYDLUYAUYRDXNXOUYJIUYIHZVUQVUEUYJUXSUYISVURUYFUXSUYIUYCQHUYFU
      XSPUAWEUYCUWRUBQFUCUWSWFWHZXPIUYIWLXQXRVUQUYIVUDIVUQUYHVUCUYGUYAUYRXSXTYB
      YCYDUYCUXMPZVUPVUBVUEVUTUYDUXQVUALUYCUXMUSXNYEYFYGYHYIYKZUWMUYBUWOPZGCUMZ
      UWQUWMUXGVVCUXKUWMUWIVUMUXGVVCXIUXCVUNGCUWODYJXLYLUWMVVBUWQGCUWMUYACHZNZU
      YBUWNLMZVVBUWQVVEUYBYMHZVVFUYBOPZUWMVVDVVGVVFUWMVVDVVGNZNZVVFUYBYNYOUOZUW
      NUQMZVVJUAUWRCUBDIUYAUUAWCZOVVKEFUCUFUWSUWTVVJVDVEUWGUWHUWIUWLVVIUUBUWGUW
      HUWIUWLVVIUUCVVGVVKJHZUWMVVDUYBUUDUUEZVVJUXSCVVMUHZYNVVKYPUOZOUWRUOZCVVMU
      HVVJUXSUYHVVMUHZUYHCSVVPUXSUYHVVMUUFZVVSIUYAWLGWEZUUGZUXSUYHVVMUUHWHVVJUY
      ACUWMVVDVVGXGUUIUXSUYHCVVMUUJUUKVVRUXSCVVMVVQQHVVRUXSPYNVVKYPUULVVQUWRUBQ
      FUCUWSWFWHWIUUMUYFVVMWDUFKZWCZWGZSZIVWEHZVVJVWCCHZUYCVVQSZNZNZUYDVWCDRZUQ
      MZVWFUXSVWESVWGUYFUXSVWEVUSXPIVWEWLXQXRVWKUYDUYBUQMZVWGVWMVWKVWNUYDVVKLMZ
      VWKUYDVVQUSRZVVKLVWKUYDVWPLMZUYCVVQUUNMZVWKVVQYQHZVWIVWRVWKYNVVKUUOZVVJVW
      HVWIWKZUYCVVQYQUUPUUQVWKUYCYQHZVWSVWQVWRXIVWKVWSVWIVXBVWTVXAVVQUYCUURXEZV
      WTUYCVVQYQUUSXEYRVWKVVNVWPVVKPVVJVVNVWJVVOTVVKUUTVIUVAVWKUYDJHZUYBJHZVWNV
      WOXIVWKVXBVXDVXCUYCUVFVIVVJVXEVWJUWMVVDVXEVVGUWMCJUYADUXCUVBZUVCZTUYDUYBU
      VDXEYRVWGUYBVWLUYDUQVWGUYAVWCDVWGUYAVWDHUYAVWCPVWGUYAIVVMRZVWDIUYAWLVWAUV
      EVWGVUFVXHVWDHZVVTVVMUXSXCVWGVUFVXINXIVWBUXSUYHVVMUVGUXSIVWDVVMXKUVPUVHUV
      IUYAVWCUVJVIUVKYEYSUVLUVMVVJVXEUWNJHZVVFVVLXIVXGUWMVXJVVIUWMUWTUWGUWIUWOJ
      HUWPVXJUXAUXBUXCUXLVVAUWOCDOEUVNUVOZTUYBUWNUVQXEYRUVRVVEVVFVVHOUWNLMVVEUW
      NUWMVXJVVDVXKTUVSUYBOUWNLYTUVTVVEVXEVVGVVHUWFVXFUYBUWAVRUWBUYBUWOUWNLYTYS
      UWCUWDUWMUWNUWOUWMUWNVXKWQVUKUWEXM $.

    $( The Ramsey number when ` M = 0 ` .  (Contributed by Mario Carneiro,
       22-Apr-2015.) $)
    0ram2 $p |- ( ( R e. Fin /\ R =/= (/) /\ F : R --> NN0 ) ->
      ( 0 Ramsey F ) = sup ( ran F , RR , < ) ) $=
      ( vy vx cfn wcel c0 wne cn0 wf w3a cv cz wrex cr wceq wss 3ad2ant3 syl6ss
      sylib cle wbr crn wral cc0 cram clt csup frn nn0ssz nn0ssre wfo simp1 wfn
      co ffn dffn4 fofi syl2anc cdm fdm simp2 eqnetrd necon3bii fimaxre syl3anc
      dm0rn0 ssrexv sylc 0ram mpdan ) AEFZAGHZAIBJZKZCLDLUAUBCBUCZUDZDMNZUEBUFU
      OVPOUGUHPVOVPMQVQDVPNZVRVOVPIMVNVLVPIQVMAIBUIRZUJSVOVPOQVPEFZVPGHZVSVOVPI
      OVTUKSVOVLAVPBULZWAVLVMVNUMVOBAUNZWCVNVLWDVMAIBUPRABUQTAVPBURUSVOBUTZGHWB
      VOWEAGVNVLWEAPVMAIBVARVLVMVNVBVCWEGVPGBVGVDTDCVPVEVFVQDVPMVHVIDCABEVJVK
      $.

    $( The Ramsey number when ` R = (/) ` .  (Contributed by Mario Carneiro,
       22-Apr-2015.) $)
    ram0 $p |- ( M e. NN0 -> ( M Ramsey (/) ) = M ) $=
      ( vx va vi vb cn0 wcel c0 co wceq cle wbr cvv cv chash cfv a1i wa c1 cc0
      vf vs vc cram cpw crab cmpt2 eqid id 0ex wf f0 ccnv csn cima wss wrex f00
      vex simpl hashbcval sylancr wne wex cfz cen hashfz1 breq1d biimpar cfn wb
      cdom fzfid hashdom sylancl mpbid domen sylib simprr selpw sylibr ad2antrl
      hasheni ad2antrr eqtr3d jca ex eximdv df-rex rabn0 eqnetrd neneqd pm2.21d
      mpd adantld syl5bi impr ramub cn wi clt nnnn0 nnm1nn0 cbc hashbc2 syl2anc
      cmin syl oveq1d cz nnz nnre ltm1d olcd bcval4 syl3anc 3eqtrd ovex hasheq0
      wo ax-mp feq2d mpbiri noel pm2.21i ramlb ramubcl nn0lem1lt mpbird nn0ge0d
      syl32anc breq1 syl5ibrcom elnn0 biimpi mpjaod nn0red letri3d mpbir2and
      nn0re ) AFGZAHUDIZAJUUBAKLZAUUBKLZUUABCDMFENOPDNJECNUEUFUGZHUADHAAMUBCEUC
      UUEUHZUUAUIZHMGZUUAUJQZHFHUKZUUAFULZQZUUGUUAAUBNZOPZKLZUUMAUUEIZHUANZUKZU
      CNZHPZBNZOPZKLUVAAUUEIZUUQUMUUSUNZUOUPRBUUMUEZUQUCHUQZUURUUQHJZUUPHJZRUUA
      UUORZUVFUUPUUQURUVIUVHUVFUVGUVIUVHUVFUVIUUPHUVIUUPUVBAJZBUVEUFZHUVIUUMMGZ
      UUAUUPUVKJUBUSZUUAUUOUTBUUMUUEDAMCEUUFVAVBUVIUVJBUVEUQZUVKHVCUVIUVAUVEGZU
      VJRZBVDZUVNUVISAVEIZUVAVFLZUVAUUMUPZRZBVDZUVQUVIUVRUUMVLLZUWBUVIUVROPZUUN
      KLZUWCUUAUWEUUOUUAUWDAUUNKAVGZVHVIUVIUVRVJGUVLUWEUWCVKUVISAVMUVMUVRUUMMVN
      VOVPBUVRUUMUVMVQVRUVIUWAUVPBUVIUWAUVPUVIUWARZUVOUVJUWGUVTUVOUVIUVSUVTVSBU
      UMVTWAUWGUWDUVBAUVSUWDUVBJUVIUVTUVRUVAWCWBUUAUWDAJUUOUWAUWFWDWEWFWGWHWNUV
      JBUVEWIWAUVJBUVEWJWAWKWLWMWOWPWQWRZUUAAWSGZUUDATJZUWIUUDWTUUAUWIUUDASXGIZ
      UUBXALZUWIBUUEHDHHAUWKMCEUCUUFAXBZUUHUWIUJQUUJUWIUUKQAXCZUWISUWKVEIZAUUEI
      ZHHUKHHHUKHULUWIUWPHHHUWIUWPOPZTJZUWPHJZUWIUWQUWOOPZAXDIZUWKAXDIZTUWIUWOV
      JGUUAUWQUXAJUWISUWKVMUWMUWOUUEDACEUUFXEXFUWIUWTUWKAXDUWIUWKFGZUWTUWKJUWNU
      WKVGXHXIUWIUXCAXJGATXALZUWKAXALZXTUXBTJUWNAXKUWIUXEUXDUWIAAXLXMXNAUWKXOXP
      XQUWPMGUWRUWSVKUWOAUUEXRUWPMXSYAVRYBYCUUSHGZUVCHUMUVDUOUPUVBUUTXALWTZUWIU
      VAUWOUPUXFUXGUUSYDYEWBYFUWIUUAUUBFGZUUDUWLVKUWMUWIUUAUXHUWMUUAUUAUUHUUJUU
      AUUCUXHUUGUUIUULUUGUWHAHHAMYGYKZXHAUUBYHXFYIQUUAUUDUWJTUUBKLUUAUUBUXIYJAT
      UUBKYLYMUUAUWIUWJXTAYNYOYPUUAUUBAUUAUUBUXIYQAYTYRYS $.

    $( Lemma for ~ ramcl :  Existence of the Ramsey number when ` M = 0 ` .
       (Contributed by Mario Carneiro, 23-Apr-2015.) $)
    0ramcl $p |- ( ( R e. Fin /\ F : R --> NN0 ) -> ( 0 Ramsey F ) e. NN0 ) $=
      ( vy vx cfn wcel cn0 wa cc0 cram co c0 wceq wfo sylib wne cr wss 3ad2ant3
      cz wf crn wfn ffn dffn4 ad2antlr wb foeq2 adantl mpbid simplbi syl oveq2d
      fo00 0nn0 ram0 ax-mp eqeltri syl6eqel w3a clt csup 0ram2 frn cle wbr wral
      cv wrex nn0ssz syl6ss cdm fdm simp2 eqnetrd dm0rn0 necon3bii nn0ssre fofi
      simp1 syl2anc fimaxre syl3anc ssrexv sylc sseldd eqeltrd 3expa pm2.61dane
      suprzcl2 an32s ) AEFZAGBUAZHZIBJKZGFZALWNALMZHZWOILJKZGWRBLIJWRLBUBZBNZBL
      MZWRAWTBNZXAWMXCWLWQWMBAUCXCAGBUDABUEOZUFWQXCXAUGWNALWTBUHUIUJXAXBWTLMWTB
      UNUKULUMWSIGIGFWSIMUOIUPUQUOURUSWLALPZWMWPWLXEWMWPWLXEWMUTZWOWTQVAVBZGABV
      CXFWTGXGWMWLWTGRXEAGBVDSZXFWTTRZWTLPZCVHDVHVEVFCWTVGZDTVIZXGWTFXFWTGTXHVJ
      VKZXFBVLZLPXJXFXNALWMWLXNAMXEAGBVMSWLXEWMVNVOXNLWTLBVPVQOZXFXIXKDWTVIZXLX
      MXFWTQRWTEFZXJXPXFWTGQXHVRVKXFWLXCXQWLXEWMVTWMWLXCXEXDSAWTBVSWAXODCWTWBWC
      XKDWTTWDWEDCWTWJWCWFWGWHWKWI $.

    $( The Ramsey number when ` F ` has value zero for some color ` C ` .
       (Contributed by Mario Carneiro, 22-Apr-2015.) $)
    ramz2 $p |- ( ( ( M e. NN /\ R e. V /\ F : R --> NN0 ) /\
      ( C e. R /\ ( F ` C ) = 0 ) ) -> ( M Ramsey F ) = 0 ) $=
      ( vx va vi vb wcel cn0 cfv cc0 wceq wa cle wbr cv chash c0 vf vs vc cn wf
      w3a cram co cvv cpw crab cmpt2 eqid simpl1 nnnn0d simpl2 simpl3 0nn0 ccnv
      a1i csn cima wss wrex simplrl 0elpw simplrr 0le0 syl6eqbr simpll1 0hashbc
      syl syl6eqss fveq2 breq1d sneq imaeq2d sseq2d anbi12d hash0 syl6eq breq2d
      0ss oveq1 sseq1d rspc2ev syl112anc ramub ramubcl syl32anc nn0le0eq0 mpbid
      wb ) DUDJZBEJZBKCUEZUFZABJZACLZMNZOZOZDCUGUHZMPQZXCMNZXBFGHUIKIRSLHRNIGRU
      JUKULZBUAHCDMEUBGIUCXFUMZXBDWNWOWPXAUNUOZWNWOWPXAUPZWNWOWPXAUQZMKJZXBURUT
      ZXBMUBRZSLPQXMDXFUHBUARZUEOZOZWRTXMUJZJZWSMPQZTDXFUHZXNUSZAVAZVBZVCZUCRZC
      LZFRZSLZPQZYGDXFUHZYAYEVAZVBZVCZOZFXQVDUCBVDWQWRWTXOVEXRXPXMVFUTXPWSMMPWQ
      WRWTXOVGVHVIXPXTTYCXPWNXTTNWNWOWPXAXOVJXFHDGIXGVKVLYCWCVMYNXSYDOWSYHPQZYJ
      YCVCZOUCFATBXQYEANZYIYOYMYPYQYFWSYHPYEACVNVOYQYLYCYJYQYKYBYAYEAVPVQVRVSYG
      TNZYOXSYPYDYRYHMWSPYRYHTSLMYGTSVNVTWAWBYRYJXTYCYGTDXFWDWEVSWFWGWHZXBXCKJZ
      XDXEWMXBDKJWOWPXKXDYTXHXIXJXLYSMBCDEWIWJXCWKVLWL $.

    $( The Ramsey number when ` F ` is the zero function.  (Contributed by
       Mario Carneiro, 22-Apr-2015.) $)
    ramz $p |- ( ( M e. NN0 /\ R e. V /\ R =/= (/) ) ->
      ( M Ramsey ( R X. { 0 } ) ) = 0 ) $=
      ( vc vy vx cn0 wcel cc0 cram co wceq wa cv a1i cr clt cle wral cz wne csn
      c0 cxp cn wo wi elnn0 wex n0 wf cfv simpll simplr fconst6 simpr fvconst2g
      0nn0 sylancr ramz2 syl32anc ex exlimdv syl5bi expimpd crn csup wrex simpl
      wbr 0z elsni 0le0 syl6eqbr rgen rnxp adantl raleqdv mpbiri ralbidv rspcev
      breq2 0ram syl31anc supeq1d wor ltso 0re supsn mp2an 3eqtrd oveq1 syl5ibr
      eqeq1d jaoi sylbi 3impib ) BGHZACHZAUCUAZBAIUBZUDZJKZILZWRBUEHZBILZUFWSWT
      MZXDUGZBUHXEXHXFXEWSWTXDWTDNZAHZDUIXEWSMZXDDAUJXKXJXDDXKXJXDXKXJMZXEWSAGX
      BUKZXJXIXBULILZXDXEWSXJUMXEWSXJUNXMXLAIGURUOZOXKXJUPZXLIGHXJXNURXPAIXIGUQ
      USXIAXBBCUTVAVBVCVDVEXGXDXFIXBJKZILXGXQXBVFZPQVGZXAPQVGZIXGWSWTXMENZFNZRV
      JZEXRSZFTVHZXQXSLWSWTVIWSWTUPXMXGXOOXGITHYAIRVJZEXRSZYEVKXGYGYFEXASYFEXAY
      AXAHYAIIRYAIVLVMVNVOXGYFEXRXAWTXRXALWSAXAVPVQZVRVSYDYGFITYBILYCYFEXRYBIYA
      RWBVTWAUSFEAXBCWCWDXGPXRXAQYHWEXTILZXGPQWFIPHYIWGWHPIQWIWJOWKXFXCXQIBIXBJ
      WLWNWMWOWPWQ $.
  $}

  ${
    $d u x D $.  $d c d f s u v w x y z F $.  $d a b c d f i s u v w x y z M $.
    $d a c d f i s u v w x y z G $.  $d c d f s u v w x y z R $.  $d a i u W $.
    $d c d f s u v w x y z ph $.  $d a c d i u v w x y z S $.  $d a i x z V $.
    $d c d u v w x y z C $.  $d c d u v w x y z H $.  $d c d u v w x y z K $.
    $d x z E $.  $d a c d i u v w x y z X $.
    ramub1.m $e |- ( ph -> M e. NN ) $.
    ramub1.r $e |- ( ph -> R e. Fin ) $.
    ramub1.f $e |- ( ph -> F : R --> NN ) $.
    ramub1.g $e |- G = ( x e. R |-> ( M Ramsey ( y e. R |->
      if ( y = x , ( ( F ` x ) - 1 ) , ( F ` y ) ) ) ) ) $.
    ramub1.1 $e |- ( ph -> G : R --> NN0 ) $.
    ramub1.2 $e |- ( ph -> ( ( M - 1 ) Ramsey G ) e. NN0 ) $.
    ${
      ramub1.3 $e |- C = ( a e. _V , i e. NN0 |->
        { b e. ~P a | ( # ` b ) = i } ) $.
      ramub1.4 $e |- ( ph -> S e. Fin ) $.
      ramub1.5 $e |- ( ph -> ( # ` S ) = ( ( ( M - 1 ) Ramsey G ) + 1 ) ) $.
      ramub1.6 $e |- ( ph -> K : ( S C M ) --> R ) $.
      ramub1.x $e |- ( ph -> X e. S ) $.
      ramub1.h $e |- H = ( u e. ( ( S \ { X } ) C ( M - 1 ) ) |->
        ( K ` ( u u. { X } ) ) ) $.
      ${
        ramub1.d $e |- ( ph -> D e. R ) $.
        ramub1.w $e |- ( ph -> W C_ ( S \ { X } ) ) $.
        ramub1.7 $e |- ( ph -> ( G ` D ) <_ ( # ` W ) ) $.
        ramub1.8 $e |- ( ph -> ( W C ( M - 1 ) ) C_ ( `' H " { D } ) ) $.
        ramub1.e $e |- ( ph -> E e. R ) $.
        ramub1.v $e |- ( ph -> V C_ W ) $.
        ramub1.9 $e |- ( ph ->
          if ( E = D , ( ( F ` D ) - 1 ) , ( F ` E ) ) <_ ( # ` V ) ) $.
        ramub1.s $e |- ( ph -> ( V C M ) C_ ( `' K " { E } ) ) $.
        $( Lemma for ~ ramub1 .  (Contributed by Mario Carneiro,
           23-Apr-2015.) $)
        ramub1lem1 $p |- ( ph -> E. z e. ~P S
          ( ( F ` E ) <_ ( # ` z ) /\ ( z C M ) C_ ( `' K " { E } ) ) ) $=
          ( cfv cv chash cle wbr co ccnv csn cima wss wa cpw wrex wceq cun wcel
          cdif sstrd difss2d snssd unssd cfn wb elpw2g mpbird adantr caddc cmin
          syl c1 cif iftrue adantl eqbrtrrd cn ffvelrnd nnred 1red ssfi syl2anc
          cr cn0 hashcl nn0re lesubaddd mpbid fveq2 wn snidg sseld wi hashunsng
          3syl mp2and crab sylancl simpl1l eqsstr3d simpr simpl3 rabid sylanbrc
          hashbcval sseldd elpw sylibr sylib cvv cc fveq2d eqtr3d eqeq1d breq2d
          elrab oveq1 sseq1d anbi12d rspcev syl12anc eldifn syl6 mt2d snfi unfi
          breqan12rd nnnn0d w3a simpl2 elpwid eleqtrrd nnm1nn0 syl6sseq ssundif
          uncom difexg ax-mp diffi nn0cn ax-1cn pncan neldifsnd undif1 elpwunsn
          eldifd ssequn2 syl5req oveq1d mptiniseg eleqtrd uneq1 simprbi simpl1r
          vex 3eqtr4d wfn wf ffn fniniseg mpbir2and pm2.61dan rabssdv ifnefalse
          eqsstrd wne pm2.61dane ) AKLVBZDVCZVDVBZVEVFZUWHPFVGZOVHKVIVJZVKZVLZD
          IVMZVNZKGAKGVOZVLZQSVIZVPZUWOVQZUWGUWTVDVBZVEVFZUWTPFVGZUWLVKZUWPAUXA
          UWQAUXAUWTIVKZAQUWSIAQIUWSAQRIUWSVRZUSUOVSZVTZASIULWAWBZAIWCVQZUXAUXF
          WDUIUWTIWCWEWJWFWGUWRUXCGLVBZQVDVBZWKWHVGZVEVFZUWRUXLWKWIVGZUXMVEVFUX
          OUWRUWQUXPUWGWLZUXPUXMVEUWQUXQUXPVOAUWQUXPUWGWMWNAUXQUXMVEVFZUWQUTWGW
          OUWRUXLWKUXMUWRUXLAUXLWPVQUWQAHWPGLUDUNWQWGWRUWRWSAUXMXBVQZUWQAQWCVQZ
          UXMXCVQUXSAUXKQIVKZUXTUIUXIIQWTXAZQXDUXMXEXNWGXFXGUWQAUWGUXLUXBUXNVEK
          GLXHAUXTSQVQZXIZUXBUXNVOZUYBAUYCSUWSVQZASIVQZUYFULSIXJWJAUYCSUXGVQUYF
          XIAQUXGSUXHXKSIUWSUUAUUBUUCAUYGUXTUYDVLUYEXLULQSIXMWJXOUUFWFUWRUXDBVC
          ZVDVBZPVOZBUWTVMZXPZUWLAUXDUYLVOZUWQAUWTWCVQZPXCVQZUYMAUXTUWSWCVQUYNU
          YBSUUDQUWSUUEXQAPUBUUGZBUWTFJPWCTUAUHYDXAWGUWRUYJBUYKUWLUWRUYHUYKVQZU
          YJUUHZUYHQVMZVQZUYHUWLVQZUYRUYTVLZUYJBUYSXPZUWLUYHVUBAVUCUWLVKAUWQUYQ
          UYJUYTXRAVUCQPFVGZUWLAUXTUYOVUDVUCVOUYBUYPBQFJPWCTUAUHYDXAVAXSWJVUBUY
          TUYJUYHVUCVQUYRUYTXTUWRUYQUYJUYTYAUYJBUYSYBYCYEUYRUYTXIZVLZVUAUYHIPFV
          GZVQZUYHOVBZKVOZVUFUYHUYJBUWOXPZVUGVUFUYHUWOVQZUYJUYHVUKVQVUFUYHIVKZV
          ULVUFUYHUWTIVUFUYHUWTUWRUYQUYJVUEUUIZUUJZVUFAUXFAUWQUYQUYJVUEXRZUXJWJ
          VSZUYHIBUVNZYFYGUWRUYQUYJVUEYAZUYJBUWOYBYCVUFAVUGVUKVOZVUPAUXKUYOVUTU
          IUYPBIFJPWCTUAUHYDXAWJUUKVUFUYHUWSVRZUWSVPZOVBZGVUIKVUFVVAEVCZUWSVPZO
          VBZGVOZEUXGPWKWIVGZFVGZXPZVQZVVCGVOZVUFVVANVHGVIVJZVVJVUFVVDVDVBZVVHV
          OZERVMZXPZVVMVVAVUFAVVQVVMVKVUPAVVQRVVHFVGZVVMARWCVQZVVHXCVQZVVRVVQVO
          AUXKRIVKVVSUIARIUWSUOVTIRWTXAAPWPVQVVTUBPUULWJERFJVVHWCTUAUHYDXAUQXSW
          JVUFVVAVVPVQZVVAVDVBZVVHVOZVVAVVQVQVUFVVARVKVWAVUFVVAQRVUFUYHUWSQVPZV
          KVVAQVKVUFUYHUWTVWDVUOQUWSUUOUUMUYHUWSQUUNYHVUFAQRVKVUPUSWJVSVVARUYHY
          IVQVVAYIVQVURUYHUWSYIUUPUUQYFYGVUFVWBWKWHVGZWKWIVGZVWBVVHVUFVWBYJVQZW
          KYJVQVWFVWBVOVUFVVAWCVQZVWBXCVQVWGVUFUYHWCVQZVWHVUFUXKVUMVWIVUFAUXKVU
          PUIWJVUQIUYHWTXAUYHUWSUURWJZVVAXDVWBUUSXNUUTVWBWKUVAXQVUFVWEPWKWIVUFV
          VBVDVBZVWEPVUFVWHSVVAVQXIZVWKVWEVOZVWJVUFSUYHUVBVUFAUYGVWHVWLVLVWMXLV
          UPULVVASIXMXNXOVUFUYIVWKPVUFUYHVVBVDVUFVVBUYHUWSVPZUYHUYHUWSUVCVUFUWS
          UYHVKVWNUYHVOVUFSUYHVUFUYHUYKUYSVRVQSUYHVQVUFUYHUYKUYSVUNUYRVUEXTUVEU
          YHQSUVDWJWAUWSUYHUVFYHUVGZYKVUSYLYLUVHYLVVOVWCEVVAVVPVVDVVAVOZVVNVWBV
          VHVVDVVAVDXHYMYOYCYEVUFAGHVQVVMVVJVOVUPUNEVVIVVFGNHUMUVIXNUVJVVKVVAVV
          IVQVVLVVGVVLEVVAVVIVWPVVFVVCGVWPVVEVVBOVVDVVAUWSUVKYKYMYOUVLWJVUFUYHV
          VBOVWOYKAUWQUYQUYJVUEUVMUVOVUFAOVUGUVPZVUAVUHVUJVLWDVUPAVUGHOUVQVWQUK
          VUGHOUVRWJVUGKUYHOUVSXNUVTUWAUWBUWDUWNUXCUXEVLDUWTUWOUWHUWTVOZUWJUXCU
          WMUXEVWRUWIUXBUWGVEUWHUWTVDXHYNVWRUWKUXDUWLUWHUWTPFYPYQYRYSYTAKGUWEZV
          LZQUWOVQZUWGUXMVEVFZVUDUWLVKZUWPAVXAVWSAVXAUYAUXIAUXKVXAUYAWDUIQIWCWE
          WJWFWGVWTUXQUWGUXMVEVWSUXQUWGVOAKGUXPUWGUWCWNAUXRVWSUTWGWOAVXCVWSVAWG
          UWNVXBVXCVLDQUWOUWHQVOZUWJVXBUWMVXCVXDUWIUXMUWGVEUWHQVDXHYNVXDUWKVUDU
          WLUWHQPFYPYQYRYSYTUWF $.
      $}

      $( Lemma for ~ ramub1 .  (Contributed by Mario Carneiro, 23-Apr-2015.) $)
      ramub1lem2 $p |- ( ph -> E. c e. R E. z e. ~P S
        ( ( F ` c ) <_ ( # ` z ) /\ ( z C M ) C_ ( `' K " { c } ) ) ) $=
        ( vd vw vv cv cfv chash cle wbr c1 cmin ccnv csn cima wss cdif cpw wrex
        co wa cfn cn wcel cn0 nnm1nn0 syl diffi cram nn0red leidd hashcl nn0cnd
        1cnd cun caddc undif1 snssd ssequn2 sylib syl5eq fveq2d wn neldifsnd wi
        wceq hashunsng mp2and 3eqtr3d addcan2ad breqtrrd wf adantr crab syl2anc
        hashbcval eleq2d weq fveq2 eqeq1d elrab syl6bb elpwid difss2d unssd vex
        simprbda snex unex elpw sylibr ssfi ssneldd simplbda oveq1d cc ffvelrnd
        nncnd nnnn0d fmptd rami cif cmpt simprll fvmpt simprlr simprrl ad2antrr
        ovex simprrr expr mpd ax-1cn sylancl 3eqtrd sylanbrc eleqtrrd ffvelrnda
        npcan ifcld equequ2 ifbieq1d mpteq2dv oveq2d eqeltrrd eqbrtrrd hashbcss
        cres eqid syl3anc fssresd ifbieq2d fvex ifex ad2antrl breq1d anbi1d cin
        equequ1 cnvresima eqsstri syl6ss ramub1lem1 sylbid rexlimdva rexlimdvva
        inss1 anassrs reximdva ) AUKUNZKUOZULUNZUPUOZUQURZUVTNUSUTVHZFVHLVAUVRV
        BVCVDZVIZULHOVBZVEZVFZVGUKGVGRUNZJUOZDUNZUPUOUQURUWKNFVHMVAUWIVBZVCZVDV
        IDHVFZVGZRGVGZAULFGUWGIKLUWCVJVJPQUKUEANVKVLZUWCVMVLZSNVNVOZTUCUDAHVJVL
        ZUWGVJVLZUFHUWFVPVOZAUWCKVQVHZUXCUWGUPUOZUQAUXCAUXCUDVRVSAUXDUXCUSAUXDA
        UXAUXDVMVLUXBUWGVTVOWAAUXCUDWAAWBAUWGUWFWCZUPUOZHUPUOZUXDUSWDVHZUXCUSWD
        VHZAUXEHUPAUXEHUWFWCZHHUWFWEAUWFHVDZUXJHWNAOHUIWFZUWFHWGWHWIWJAUXAOUWGV
        LWKZUXFUXHWNZUXBAOHWLAOHVLZUXAUXMVIUXNWMUIUWGOHWOVOWPUGWQWRWSAEUWGUWCFV
        HZEUNZUWFWCZMUOGLAUXQUXPVLZVIZHNFVHZGUXRMAUYAGMWTZUXSUHXAUXTUXRBUNZUPUO
        ZNWNZBUWNXBZUYAUXTUXRUWNVLZUXRUPUOZNWNZUXRUYFVLUXTUXRHVDUYGUXTUXQUWFHUX
        TUXQHUWFUXTUXQUWGAUXSUXQUWHVLZUXQUPUOZUWCWNZAUXSUXQUYDUWCWNZBUWHXBZVLUY
        JUYLVIAUXPUYNUXQAUXAUWRUXPUYNWNUXBUWSBUWGFIUWCVJPQUEXDXCXEUYMUYLBUXQUWH
        BEXFUYDUYKUWCUYCUXQUPXGXHXIXJZXOXKZXLAUXKUXSUXLXAXMUXRHUXQUWFEXNOXPXQXR
        XSUXTUYHUYKUSWDVHZUWCUSWDVHZNUXTUXQVJVLZOUXQVLWKZUYHUYQWNZUXTUXAUXQUWGV
        DUYSAUXAUXSUXBXAUYPUWGUXQXTXCUXTUXQUWGOUYPUXTOHWLYAUXTUXOUYSUYTVIVUAWMA
        UXOUXSUIXAUXQOHWOVOWPUXTUYKUWCUSWDAUXSUYJUYLUYOYBYCAUYRNWNZUXSANYDVLUSY
        DVLVUBANSYFUUANUSUUGUUBXAUUCUYEUYIBUXRUWNUYCUXRWNUYDUYHNUYCUXRUPXGXHXIU
        UDAUYAUYFWNZUXSAUWTNVMVLZVUCUFANSYGZBHFINVJPQUEXDXCXAUUEYEUJYHYIAUWEUWP
        UKULGUWHAUVRGVLZUVTUWHVLZVIZUWEUWPAVUHUWEVIZVIZUWICGCUKXFZUVRJUOZUSUTVH
        ZCUNZJUOZYJZYKZUOZUMUNZUPUOZUQURZVUSNFVHZMUVTNFVHZUUPZVAUWLVCZVDZVIZUMU
        VTVFZVGZRGVGUWPVUJUMFGUVTIVUQVVDNVJUWHPQRUEAVUDVUIVUEXAZAGVJVLZVUITXAVU
        JCGVUPVMVUQVUJVUNGVLZVIZVUKVUMVUOVMVUJVUMVMVLZVVLVUJVULVKVLVVNVUJGVKUVR
        JAGVKJWTZVUIUAXAZAVUFVUGUWEYLZYEVULVNVOXAVVMVUOVUJGVKVUNJVVPUUFYGUUHVUQ
        UUQZYHVUJUVSNVUQVQVHZVMVUJVUFUVSVVSWNVVQBUVRNCGCBXFZUYCJUOZUSUTVHZVUOYJ
        ZYKZVQVHVVSGKBUKXFZVWDVUQNVQVWECGVWCVUPVWEVVTVUKVWBVUMVUOBUKCUUIVWEVWAV
        ULUSUTUYCUVRJXGYCUUJUUKUULUBNVUQVQYQYMVOZVUJGVMUVRKAGVMKWTZVUIUCXAVVQYE
        UUMAVUFVUGUWEYNZVUJUVSVVSUWAUQVWFAVUHUWBUWDYOZUUNVUJUYAGVVCMAUYBVUIUHXA
        VUJUWTUVTHVDVUDVVCUYAVDAUWTVUIUFXAVUJUVTHUWFVUJUVTUWGVWHXKZXLVVJHUVTFIN
        VJPQUEUUOUURUUSYIVUJVVIUWORGVUJUWIGVLZVIVVGUWOUMVVHVUJVWKVUSVVHVLZVVGUW
        OWMVUJVWKVWLVIZVIZVVGRUKXFZVUMUWJYJZVUTUQURZVVFVIZUWOVWNVVAVWQVVFVWNVUR
        VWPVUTUQVWKVURVWPWNVUJVWLCUWIVUPVWPGVUQCRXFVUKVWOVUOUWJVUMCRUKUVGVUNUWI
        JXGUUTVVRVWOVUMUWJVULUSUTYQUWIJUVAUVBYMUVCUVDUVEVUJVWMVWRUWOVUJVWMVWRVI
        ZVIZBCDEFUVRGHIUWIJKLMNVUSUVTOPQAUWQVUIVWSSYPAVVKVUIVWSTYPAVVOVUIVWSUAY
        PUBAVWGVUIVWSUCYPAUXCVMVLVUIVWSUDYPUEAUWTVUIVWSUFYPAUXGUXIWNVUIVWSUGYPA
        UYBVUIVWSUHYPAUXOVUIVWSUIYPUJVUJVUFVWSVVQXAVUJUVTUWGVDVWSVWJXAVUJUWBVWS
        VWIXAVUJUWDVWSAVUHUWBUWDYRXAVUJVWKVWLVWRYLVWTVUSUVTVUJVWKVWLVWRYNXKVUJV
        WMVWQVVFYOVWTVVBVVEUWMVUJVWMVWQVVFYRVVEUWMVVCUVFUWMVVCUWLMUVHUWMVVCUVOU
        VIUVJUVKYSUVLUVPUVMUVQYTYSUVNYT $.
    $}

    $( Inductive step for Ramsey's theorem, in the form of an explicit upper
       bound.  (Contributed by Mario Carneiro, 23-Apr-2015.) $)
    ramub1 $p |- ( ph -> ( M Ramsey F ) <_ ( ( ( M - 1 ) Ramsey G ) + 1 ) ) $=
      ( cn0 cv cfv co cn wcel adantr vz va vi vb vf vs vc vw vu vv cvv wceq cpw
      chash crab cmpt2 c1 cmin cram caddc cfn nnnn0d wf wss nnssnn0 fss sylancl
      eqid peano2nn0 syl wa wex cle wbr ccnv csn cima c0 simprl nn0p1nn eqeltrd
      wrex wne wb vex hashclb ax-mp sylibr hashnncl mpbid n0 sylib cdif adantrr
      cun cmpt simprll simprlr simprr uneq1 cbvmptv ramub1lem2 expr exlimdv mpd
      fveq2d ramub2 ) AUAUBUCUKNUDOUNPUCOULUDUBOUMUOUPZDUEUCEGGUQURQZFUSQZUQUTQ
      ZVAUFUBUDUGXHVHZAGHVBIADREVCZRNVDDNEVCJVEDRNEVFVGAXJNSZXKNSMXJVIVJAUFOZUN
      PZXKULZXOGXHQDUEOZVCZVKZVKZUHOZXOSZUHVLZUGOZEPUAOZUNPVMVNYFGXHQXRVOYEVPVQ
      VDVKUAXOUMWBUGDWBZYAXOVRWCZYDYAXPRSZYHYAXPXKRAXQXSVSYAXNXKRSAXNXTMTXJVTVJ
      WAZYAXOVASZYIYHWDYAXPNSZYKYAXPYJVBXOUKSYKYLWDUFWEXOUKWFWGWHZXOWIVJWJUHXOW
      KWLYAYCYGUHAXTYCYGAXTYCVKZVKBCUAUIXHDXOUCEFUJXOYBVPZWMXIXHQZUJOZYOWOZXRPZ
      WPXRGYBUBUDUGAGRSYNHTADVASYNITAXMYNJTKADNFVCYNLTAXNYNMTXLAXTYKYCYMWNAXQXS
      YCWQAXQXSYCWRAXTYCWSUJUIYPYSUIOZYOWOZXRPYQYTULYRUUAXRYQYTYOWTXFXAXBXCXDXE
      XG $.
  $}

  ${
    $d f F $.  $d f x M $.  $d f g h k m n w x y z R $.
    $( Ramsey's theorem: the Ramsey number is an integer for every finite
       coloring and set of upper bounds.  (Contributed by Mario Carneiro,
       23-Apr-2015.) $)
    ramcl $p |- ( ( M e. NN0 /\ R e. Fin /\ F : R --> NN0 ) ->
      ( M Ramsey F ) e. NN0 ) $=
      ( vf vx vh vk vy vw cn0 wcel cram co wa wi cc0 c1 wceq weq cmin vm vg cfn
      vn vz wf cmap cvv wb nn0ex simpr elmapg sylancr wral caddc eleq1d ralbidv
      cv oveq1 imbi2d elmapi 0ramcl sylan2 ralrimiva cbvralv cfv csu wal simpll
      oveq2 ad2antrl ffvelrnda fsumnn0cl eqeq2 anbi2d imbi1d albidv csn simplll
      cxp cmpt ffvelrn adantll nn0red nn0ge0d fsum00 rgenw mpteqb ax-mp syl6bbr
      fvex feqmptd fconstmpt a1i eqeq12d c0 oveq2d simpllr peano2nn0 syl adantr
      eqeltrd simp-4l syl3anc syl6eqel cn cif ad2antrr sylancl cc nn0cnd ax-1cn
      0nn0 wss pncan oveq1d eqid fmptd simplrr fveq2 sumeq2dv 3eqtrd feq1 fveq1
      equequ1 ifbieq2d eqeq1d anbi12d imbi12d sylc cbvmptv expr adantrl sylbird
      w3a simprl wn expcom a2d nn0ind bitr4d 0xp syl6eq ram0 sylan9eqr wne ramz
      xpeq1 pm2.61dane syl5ibrcom sylbid expimpd alrimiv wfn ffn ffnfv baib cle
      wbr simplr simprr nnssnn0 fss mptexg nnm1nn0 ifcld 3ad2antl2 nncnd ifeq2d
      subid1d adantl ifeq1da eqtr2d ovif2 syl6eqr simp1 0cn fsumsub elsng ifbid
      keepel sumeq2i chash simp3 snssd sumhash syl2anc hashsng syl5eqr jca ovex
      eqtrd simplrl fvmpt sylan9eq spcgv syl3c mpbird nn0p1nn ifbieq1d mpteq2dv
      ifex rspcv syl5eq ramub1 ramubcl syl32anc wrex rexnal wo elnn0 sylib 3jca
      ramz2 sylan syld rexlimdva syl5bir pm2.61d exp31 alrimdv sumeq2sdv cbvalv
      ord syl6ibr anassrs com12 mpd biantrud bitr3d spv ralrimdva syl5bi rspccv
      imp 3impia ) CJKZAUCKZAJBUFZCBLMZJKZUYQUYRNZUYSBJAUGMZKZVUAVUBJUHKZUYRVUD
[encoded data, 4800 characters]
      OVUHVUADBVUCVUFBRVUGUYTJVUFBCLVJUPUYNWTYNUYP $.
  $}

  ${
    $d c f n s x F $.  $d a b c f i n s x M $.  $d c f n s x R $.
    $d c f x C $.
    ramsey.c $e |- C = ( a e. _V , i e. NN0 |->
      { b e. ~P a | ( # ` b ) = i } ) $.
    $( Ramsey's theorem with the definition ` Ramsey ` eliminated.  If ` M ` is
       an integer, ` R ` is a specified finite set of colors, and
       ` F : R --> NN0 ` is a set of lower bounds for each color, then there is
       an ` n ` such that for every set ` s ` of size greater than ` n ` and
       every coloring ` f ` of the set ` ( s C M ) ` of all ` M ` -element
       subsets of ` s ` , there is a color ` c ` and a subset ` x C_ s ` such
       that ` x ` is larger than ` F ( c ) ` and the ` M ` -element subsets of
       ` x ` are monochromatic with color ` c ` .  This is the hypergraph
       version of Ramsey's theorem; the version for simple graphs is the case
       ` M = 2 ` .  This is Metamath 100 proof #31.  (Contributed by Mario
       Carneiro, 23-Apr-2015.) $)
    ramsey $p |- ( ( M e. NN0 /\ R e. Fin /\ F : R --> NN0 ) -> E. n e. NN0
     A. s ( n <_ ( # ` s ) -> A. f e. ( R ^m ( s C M ) ) E. c e. R E. x e. ~P s
      ( ( F ` c ) <_ ( # ` x ) /\ ( x C M ) C_ ( `' f " { c } ) ) ) ) $=
      ( cn0 wcel cfn cv cfv co wrex wf w3a chash cle wbr ccnv csn cima wss cmap
      wa cpw wral wi wal crab c0 wne cram ramcl eqid ramtcl2 mpbid rabn0 sylib
      ) HNOCPOCNGUAUBZFQIQZUCRUDUELQZGRAQZUCRUDUEVIHBSDQUFVHUGUHUIUKAVGULTLCTDC
      VGHBSUJSUMUNIUOZFNUPZUQURZVJFNTVFHGUSSNOVLCGHUTABCVKDEFGHPIJKLMVKVAVBVCVJ
      FNVDVE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Primorial function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  According to Wikipedia "Primorial", ~ https://en.wikipedia.org/wiki/Primorial
  (28-Aug-2020): "In mathematics, and more particularly in number theory,
  _primorial_, denoted by "#", is a function from natural numbers to natural
  numbers similar to the factorial function, but rather than successively
  multiplying [[all] positive integers [less than or equal to a given number],
  the function only multiplies [[the] prime numbers [less than or equal to the
  given number].  The name "primorial", coined by Harvey Dubner, draws an
  analogy to primes similar to the way the name "factorial" relates to
  factors."

$)

  $c #p $. $( Primorial. $)

  $( Extend class notation to include the primorial of nonnegative integers. $)
  cprmo $a class #p $.

  ${
    $d k n $.
    $( Define the primorial function on nonnegative integers as the product of
       all prime numbers less than or equal to the integer.  For example,
       ` ( #p `` 1 0 ) = 2 x. 3 x. 5 x. 7 = 2 1 0 ` (see ~ ex-prmo ).

       In the literature, the primorial function is written as a postscript
       hash: 6# = 30.  In contrast to ~ prmorcht , where the primorial function
       is defined by using the sequence builder ( ` P = seq 1 ( x. , F ) ` ),
       the more specialized definition of a product of a series is used here.
       (Contributed by AV, 28-Aug-2020.) $)
    df-prmo $a |- #p = ( n e. NN0 |-> prod_ k e. ( 1 ... n )
                                            if ( k e. Prime , k , 1 ) ) $.

    $d N k n $.
    $( Value of the primorial function for nonnegative integers.  (Contributed
       by AV, 28-Aug-2020.) $)
    prmoval $p |- ( N e. NN0 -> ( #p ` N ) = prod_ k e. ( 1 ... N )
                                             if ( k e. Prime , k , 1 ) ) $=
      ( vn cn0 wcel c1 cv cfz co cprime cif cprod cprmo cmpt wceq df-prmo oveq2
      cvv a1i prodeq1d adantl id prodex fvmptd ) BDEZCBFCGZHIZAGZJEUHFKZALZFBHI
      ZUIALZDMRMCDUJNOUEACPSUFBOZUJULOUEUMUGUKUIAUFBFHQTUAUEUBULREUEUKUIAUCSUD
      $.

    $( Closure of the primorial function.  (Contributed by AV, 28-Aug-2020.) $)
    prmocl $p |- ( N e. NN0 -> ( #p ` N ) e. NN ) $=
      ( vk cn0 wcel cprmo cfv c1 cfz co cv cprime cif cprod cn prmoval fzfid wa
      elfznn adantl 1nn a1i ifcld fprodnncl eqeltrd ) ACDZAEFGAHIZBJZKDZUGGLZBM
      NBAOUEUFUIBUEGAPUEUGUFDZQZUHUGGNUJUGNDUEUGARSGNDUKTUAUBUCUD $.
  $}

  $( The primorial function is nonzero.  (Contributed by AV, 28-Aug-2020.) $)
  prmone0 $p |- ( N e. NN0 -> ( #p ` N ) =/= 0 ) $=
    ( cn0 wcel cprmo cfv prmocl nnne0d ) ABCADEAFG $.

  $( The primorial of 0.  (Contributed by AV, 28-Aug-2020.) $)
  prmo0 $p |- ( #p ` 0 ) = 1 $=
    ( vk cc0 cprmo cfv c1 cfz co cv cprime wcel cif cprod cn0 wceq 0nn0 prmoval
    c0 ax-mp fz10 prodeq1i prod0 3eqtri ) BCDZEBFGZAHZIJUEEKZALZQUFALEBMJUCUGNO
    ABPRUDQUFASTUFAUAUB $.

  $( The primorial of 1.  (Contributed by AV, 28-Aug-2020.) $)
  prmo1 $p |- ( #p ` 1 ) = 1 $=
    ( vk c1 cprmo cfv cfz co cv cprime wcel cif cprod cn0 wceq prmoval ax-mp cz
    1nn0 cc wn eqtri wa ax-1cn pm3.2i 1nprm a1i eleq1 notbid mpbird iffalse syl
    1z fprod1 eqid ) BCDZBBEFAGZHIZUOBJZAKZBBLIUNURMQABNOURBBURBBBPIZBRIZUAURBM
    USUTUKUBUCUQBABUOBMZUPSZUQBMVAVBBHIZSZVDVAUDUEVAUPVCUOBHUFUGUHUPUOBUIUJULOB
    UMZTVETT $.

  ${
    $d N k $.
    $( The primorial of a successor.  (Contributed by AV, 28-Aug-2020.) $)
    prmop1 $p |- ( N e. NN0 -> ( #p ` ( N + 1 ) )
                         = if ( ( N + 1 ) e. Prime ,
                                ( ( #p ` N ) x. ( N + 1 ) ) , ( #p ` N ) ) ) $=
      ( vk cn0 wcel c1 co cprmo cfv cfz cprime cprod cmul wceq prmoval cn wa cc
      cif adantl oveq2d caddc cv peano2nn0 syl cuz nn0p1nn elnnuz sylib elfzelz
      cmin zcnd 1cnd ifcld eleq1 id ifbieq1d fprodm1 nn0cn pncan1 oveq1d eqcomd
      prodeq1d wb iftrue eqeq12d adantr mpbird fzfid elfznn 1nn fprodnncl nncnd
      wn a1i mulid1d eqtr4d iffalse pm2.61ian eqtrd 3eqtrd ) ACDZAEUAFZGHZEWBIF
      ZBUBZJDZWEERZBKZEWBEUJFZIFZWGBKZWBJDZWBERZLFZWLAGHZWBLFZWORZWAWBCDWCWHMAU
      CBWBNUDWAWGWMBEWBWAWBODWBEUEHDAUFWBUGUHWAWEWDDZPZWFWEEQWRWEQDWAWRWEWEEWBU
      IUKSWSULUMWEWBMZWFWLWEWBEWEWBJUNWTUOUPUQWAWNEAIFZWGBKZWMLFZWQWAWKXBWMLWAW
      JXAWGBWAWIAEIWAAQDWIAMAURAUSUDTVBUTWLWAXCWQMZWLWAPZXDXBWBLFZWPMZXEXBWOWBL
      WAXBWOMWLWAWOXBBANZVASUTWLXDXGVCWAWLXCXFWQWPWLWMWBXBLWLWBEVDTWLWPWOVDVEVF
      VGWLVMZWAPZXDXBELFZWOMZXJXKXBWOXJXBWAXBQDXIWAXBWAXAWGBWAEAVHWEXADZWGODWAX
      MWFWEEOWEAVIEODXMVJVNUMSVKVLSVOWAWOXBMXIXHSVPXIXDXLVCWAXIXCXKWQWOXIWMEXBL
      WLWBEVQTWLWPWOVQVEVFVGVRVSVT $.
  $}

  $( Value of the primorial function expressed recursively.  (Contributed by
     AV, 28-Aug-2020.) $)
  prmonn2 $p |- ( N e. NN -> ( #p ` N ) = if ( N e. Prime ,
                                               ( ( #p ` ( N - 1 ) ) x. N ) ,
                                               ( #p ` ( N - 1 ) ) ) ) $=
    ( cn wcel cprmo cfv c1 cmin co caddc cprime cmul cc wceq nncn npcan1 eqcomd
    cif syl fveq2d cn0 nnm1nn0 prmop1 eleq1d oveq2d ifbieq1d 3eqtrd ) ABCZADEAF
    GHZFIHZDEZUIJCZUHDEZUIKHZULQZAJCZULAKHZULQUGAUIDUGUIAUGALCUIAMANAORZPSUGUHT
    CUJUNMAUAUHUBRUGUKUOUMUPULUGUIAJUQUCUGUIAULKUQUDUEUF $.

  $( The primorial of 2.  (Contributed by AV, 28-Aug-2020.) $)
  prmo2 $p |- ( #p ` 2 ) = 2 $=
    ( c2 cprmo cfv cprime wcel c1 cmin co cmul cif cn 2nn prmonn2 ax-mp iftruei
    wceq 2prm 2m1e1 fveq2i eqtri prmo1 oveq1i 2cn mulid2i ) ABCZADEZAFGHZBCZAIH
    ZUHJZAAKEUEUJPLAMNUJUIAUFUIUHQOUIFAIHAUHFAIUHFBCFUGFBRSUATUBAUCUDTTT $.

  $( The primorial of 3.  (Contributed by AV, 28-Aug-2020.) $)
  prmo3 $p |- ( #p ` 3 ) = 6 $=
    ( c3 cprmo cfv cprime wcel c1 cmin co cmul cif c6 cn wceq 3nn prmonn2 ax-mp
    3prm iftruei c2 eqtri 3m1e2 fveq2i prmo2 oveq1i 3cn 2cn 3t2e6 mulcomli ) AB
    CZADEZAFGHZBCZAIHZULJZKALEUIUNMNAOPUNUMKUJUMULQRUMSAIHKULSAIULSBCSUKSBUAUBU
    CTUDASKUEUFUGUHTTT $.

  ${
    $d N k p $.
    $( The primorial of a number is divisible by each prime less then or equal
       to the number.  (Contributed by AV, 15-Aug-2020.)  (Revised by AV,
       28-Aug-2020.) $)
    prmdvdsprmo $p |- ( N e. NN
                         -> A. p e. Prime ( p <_ N -> p || ( #p ` N ) ) ) $=
      ( vk cn wcel wbr cdvds cprime wa c1 co cprod cmul syl ifcld adantl adantr
      cz wceq cc cv cle cprmo cfv wi cfz csn cdif cif fzfi diffi eldifi elfzelz
      cfn mp1i 1zzd fprodzcl dvdsmul2 syl2anc cn0 nnnn0 prmoval ad2antrr breq2d
      prmz wn cin c0 neldifsnd disjsn sylibr cun prmnn anim1i wb mpbird difsnid
      nnz fznn eqcomd fzfid zcnd fprodsplit simplr nncnd 1cnd eleq1 id ifbieq1d
      prodsn simpr iftrued eqtrd oveq2d bitrd ex ralrimiva ) ADEZBUAZAUBFZWSAUC
      UDZGFZUEBHWRWSHEZIZWTXBXDWTIZXBWSJAUFKZWSUGZUHZCUAZHEZXIJUIZCLZWSMKZGFZXE
      XLREWSREZXNXEXHXKCXFUNEXHUNEXEJAUJXFXGUKUOXIXHEZXKREXEXPXJXIJRXPXIXFEZXIR
      EXIXFXGULXIJAUMZNXPUPOPUQXDXOWTXCXOWRWSVEPQXLWSURUSXEXBWSXFXKCLZGFXNXEXAX
      SWSGWRXAXSSZXCWTWRAUTEXTAVACAVBNVCVDXEXSXMWSGXEXSXLXGXKCLZMKXMXEXHXGXKXFC
      XEWSXHEVFXHXGVGVHSXEWSXFVIXHWSVJVKXEWSXFEZXFXHXGVLZSXEYBWSDEZWTIZXDYDWTXC
      YDWRWSVMPZVNWRYBYEVOZXCWTWRAREYGAVRWSAVSNVCVPYBYCXFXFWSVQVTNXEJAWAXQXKTEX
      EXQXKXQXJXIJRXRXQUPOWBPWCXEYAWSXLMXEYAXCWSJUIZWSXEXCYHTEYAYHSWRXCWTWDXEXC
      WSJTXEWSXDYDWTYFQWEXEWFOXKYHCWSHXIWSSZXJXCXIWSJXIWSHWGYIWHWIWJUSXDYHWSSWT
      XDXCWSJWRXCWKWLQWMWNWMVDWOVPWPWQ $.
  $}

  ${
    $d I p $.  $d N p q $.
    $( The primorial of a number plus an integer greater than 1 and less then
       or equal to the number is divisible by a prime less then or equal to the
       number.  (Contributed by AV, 15-Aug-2020.)  (Revised by AV,
       28-Aug-2020.) $)
    prmdvdsprmop $p |- ( ( N e. NN /\ I e. ( 2 ... N ) )
                          -> E. p e. Prime ( p <_ N /\ p || I
                                             /\ p || ( ( #p ` N ) + I ) ) ) $=
      ( vq cn wcel c2 co wa cv cle wbr cdvds cprime wrex wi breq1 adantr imp cz
      cfz cprmo cfv caddc prmdvdsfz simprl simprr wral prmdvdsprmo wceq imbi12d
      w3a rspcv syl5com adantrd prmz ad2antlr cn0 nnnn0 prmocl syl nnzd elfzelz
      dvds2add syl3anc mp2and 3jca ex reximdva mpd ) BEFZAGBUAHFZIZCJZBKLZVNAML
      ZIZCNOVOVPVNBUBUCZAUDHMLZULZCNOABCUEVMVQVTCNVMVNNFZIZVQVTWBVQIZVOVPVSWBVO
      VPUFWBVOVPUGZWCVNVRMLZVPVSWBVQWEWBVOWEVPVMWAVOWEPZVKWAWFPVLVKDJZBKLZWGVRM
      LZPZDNUHWAWFBDUIWJWFDVNNWGVNUJWHVOWIWEWGVNBKQWGVNVRMQUKUMUNRSUOSWDWCVNTFZ
      VRTFZATFZWEVPIVSPWAWKVMVQVNUPUQWBWLVQVMWLWAVKWLVLVKVRVKBURFVREFBUSBUTVAVB
      RRRWBWMVQVLWMVKWAAGBVCUQRVNVRAVDVEVFVGVHVIVJ $.
  $}

  ${
    $d N m $.  $d X m $.
    fvprmselelfz.f $e |- F = ( m e. NN |-> if ( m e. Prime , m , 1 ) ) $.
    $( The value of the prime selection function is in a finite sequence of
       integers if the argument is in this finite sequence of integers.
       (Contributed by AV, 19-Aug-2020.) $)
    fvprmselelfz $p |- ( ( N e. NN /\ X e. ( 1 ... N ) )
                         -> ( F ` X ) e. ( 1 ... N ) ) $=
      ( cprime wcel cn c1 cfz wa cfv cif adantr sylan9eqr adantl fvmptd eqeltrd
      wceq a1i co cv cmpt eleq1 ifbieq1d iftrue elfznn simpl simprr iffalse 1nn
      id wn cuz elnnuz eluzfz1 sylbi pm2.61ian ) DFGZCHGZDICJUAZGZKZDBLZVAGUSVC
      KZVDDVAVEADAUBZFGZVFIMZDHBFBAHVHUCSZVEETVFDSZVEVHUSDIMZDVJVGUSVFDIVFDFUDV
      JULUEZUSVKDSVCUSDIUFNOVCDHGZUSVBVMUTDCUGPZPUSVCUHQUSUTVBUIRUSUMZVCKZVDIVA
      VPADVHIHBHVIVPETVJVPVHVKIVLVOVKISVCUSDIUJNOVCVMVOVNPIHGVPUKTQVCIVAGZVOUTV
      QVBUTCIUNLGVQCUOICUPUQNPRUR $.

    $d Y m $.
    $( The greatest common divisor of two values of the prime selection
       function for different arguments is 1.  (Contributed by AV,
       19-Aug-2020.) $)
    fvprmselgcd1 $p |- ( ( X e. ( 1 ... N ) /\ Y e. ( 1 ... N ) /\ X =/= Y )
                         -> ( ( F ` X ) gcd ( F ` Y ) ) = 1 ) $=
      ( cprime wcel c1 co cgcd wa a1i ad2antrr sylan9eqr adantl fvmptd ad2antlr
      wceq cn cfz wne w3a cfv wi cif cmpt eleq1 ifbieq1d iftrue elfznn 3ad2ant1
      cv id simpll 3ad2ant2 simplr oveq12d prmrp biimprcd 3ad2ant3 impcom eqtrd
      ex wn iffalse 1nn cz prmz gcd1 syl 1gcd 1z mp1i 4cases ) DGHZEGHZDICUAJZH
      ZEVRHZDEUBZUCZDBUDZEBUDZKJZISZUEVPVQLZWBWFWGWBLZWEDEKJZIWHWCDWDEKWHADAUMZ
      GHZWJIUFZDTBGBATWLUGSZWHFMZWJDSZWHWLVPDIUFZDWOWKVPWJDIWJDGUHWOUNUIZVPWPDS
      ZVQWBVPDIUJZNOWBDTHZWGVSVTWTWADCUKULZPVPVQWBUOQWHAEWLETBGWNWJESZWHWLVQEIU
      FZEXBWKVQWJEIWJEGUHXBUNUIZVQXCESZVPWBVQEIUJZROWBETHZWGVTVSXGWAECUKUPZPVPV
      QWBUQQURWBWGWIISZWAVSWGXIUEVTWGXIWADEUSUTVAVBVCVDVPVQVEZLZWBWFXKWBLZWEDIK
      JZIXLWCDWDIKXLADWLDTBGWMXLFMZWOXLWLWPDWQVPWRXJWBWSNOWBWTXKXAPVPXJWBUOQXLA
      EWLITBTXNXBXLWLXCIXDXJXCISZVPWBVQEIVFZROWBXGXKXHPITHZXLVGMQURVPXMISZXJWBV
      PDVHHXRDVIDVJVKNVCVDVPVEZVQLZWBWFXTWBLZWEIEKJZIYAWCIWDEKYAADWLITBTWMYAFMZ
      WOYAWLWPIWQXSWPISZVQWBVPDIVFZNOWBWTXTXAPXQYAVGMQYAAEWLETBGYCXBYAWLXCEXDVQ
      XEXSWBXFROWBXGXTXHPXSVQWBUQQURVQYBISZXSWBVQEVHHYFEVIEVLVKRVCVDXSXJLZWBWFY
      GWBLZWEIIKJZIYHWCIWDIKYHADWLITBTWMYHFMZWOYHWLWPIWQXSYDXJWBYENOWBWTYGXAPXQ
      YHVGMZQYHAEWLITBTYJXBYHWLXCIXDXJXOXSWBXPROWBXGYGXHPYKQURIVHHYIISYHVMIVLVN
      VCVDVO $.
  $}

  ${
    $d N k $.
    $( The primorial of a positive integer is less than or equal to the
       factorial of the integer.  (Contributed by AV, 15-Aug-2020.)  (Revised
       by AV, 29-Aug-2020.) $)
    prmolefac $p |- ( N e. NN0 -> ( #p ` N ) <_ ( ! ` N ) ) $=
      ( vk wcel c1 cprod cfv cle wa cn adantl nnred wceq cc0 breq2 syl5ibr jaoi
      wbr wi ax-mp breq1 cn0 cfz co cprime cif cprmo cfa nfv fzfid elfznn ifcld
      cv 1nn a1i wo ifeqor nnnn0 nn0ge0d syl 0le1 wb adantr mpbiri leidd nnge1d
      ex fprodle prmoval fprodfac 3brtr4d ) AUACZDAUBUCZBULZUDCZVMDUEZBEVLVMBEA
      UFFAUGFGVKVLVOVMBVKBUHVKDAUIVKVMVLCZHZVOVQVNVMDIVPVMICZVKVMAUJZJZDICVQUMU
      NUKKVOVMLZVODLZUOZVQMVOGQZRZVNVMDUPZWAWEWBVQWDWAMVMGQZVPWGVKVPVRWGVSVRVMV
      MUQURUSJVOVMMGNOWBVQWDWBVQHWDMDGQZUTWBWDWHVAVQVODMGNVBVCVFPSVQVMVTKZWCVQV
      OVMGQZRZWFWAWKWBVQWJWAVMVMGQVQVMWIVDVOVMVMGTOVQWJWBDVMGQVQVMVTVEVODVMGTOP
      SVGBAVHABVIVJ $.

    $d N k m x $.
    $( The primorial of a nonnegative integer divides the least common multiple
       of all positive integers less than or equal to the integer.
       (Contributed by AV, 19-Aug-2020.)  (Revised by AV, 29-Aug-2020.) $)
    prmodvdslcmf $p |- ( N e. NN0 -> ( #p ` N ) || ( _lcm ` ( 1 ... N ) ) ) $=
      ( vk vm vx wcel cfv c1 cv cn cprime cdvds wceq wa simpr a1i ifcld wral cz
      wbr adantl cn0 cprmo cfz co cif cprod clcmf prmoval eqidd eleq1d ifbieq1d
      cmpt elfznn 1nn fvmptd eqcomd prodeq2i syl6eq wss cfn cgcd csn cdif fzfid
      wf fz1ssnn jctil wnel fzssz 0nelfz1 lcmfn0cl syl3anc id eqid fmptd adantr
      cc0 wne eldifi wn eldif velsn biimpri equcoms necon3bi sylbi fvprmselgcd1
      ralrimiva sseldi 1zzd elfzuz2 eluzfz1 2a1i imdistanri dvdslcmf 3syl breq1
      cuz syl rspcv sylc eqbrtrd coprmproddvds syl122anc ) AUAEZAUBFZGAUCUDZBHZ
      CICHZJEZXIGUEZULZFZBUFZXGUGFZKXEXFXGXHJEZXHGUEZBUFXNBAUHXGXQXMBXHXGEZXMXQ
      XRCXHXKXQIXLIXRXLUIXRXIXHLZMZXJXPXIXHGXTXIXHJXRXSNZUJYAUKXHAUMZXRXPXHGIYB
      GIEZXRUNOPUOUPUQURXEXGIUSZXGUTEZMZXOIEZIIXLVEXMDHZXLFVAUDGLZDXGXHVBZVCZQZ
      BXGQXMXOKSZBXGQXNXOKSXEYEYDXEGAVDZAVFZVGZXEXGRUSZYEVQXGVHZYGYQXEGAVIZOYNY
      RXEAVJOXGVKVLXECIXKIXLXIIEZXKIEXEYTXJXIGIYTVMYCYTUNOPTXLVNZVOXEYLBXGXEXRM
      ZYIDYKUUBYHYKEZMXRYHXGEZXHYHVRZYIUUBXRUUCXEXRNZVPUUCUUDUUBYHXGYJVSTUUCUUE
      UUBUUCUUDYHYJEZVTZMUUEYHXGYJWAUUHUUEUUDUUGXHYHUUGDBUUGYHXHLDXHWBWCWDWETWF
      TCXLAXHYHUUAWGVLWHWHXEYMBXGUUBXMXQXOKUUBCXHXKXQIXLRUUBXLUIUUBXSMZXJXPXIXH
      GUUIXIXHJUUBXSNZUJUUJUKUUBXGIXHYOUUFWIUUBXPXHGRUUBXGRXHYSUUFWIUUBWJPUOUUB
      XQXGEYHXOKSZDXGQZXQXOKSZUUBXPXHGXGUUFUUBAGWRFEZGXGEXRUUNXEXHGAWKTGAWLWSPU
      UBYFYQYEMUULXEYFXRYPVPYEYDYQYQYEYDYSWMWNDXGWOWPUUKUUMDXQXGYHXQXOKWQWTXAXB
      WHBDXLXOXGXCXDXB $.

    $( The primorial of a positive integer is less than or equal to the least
       common multiple of all positive integers less than or equal to the
       integer.  (Contributed by AV, 19-Aug-2020.)  (Revised by AV,
       29-Aug-2020.) $)
    prmolelcmf $p |- ( N e. NN0 -> ( #p ` N ) <_ ( _lcm ` ( 1 ... N ) ) ) $=
      ( cn0 wcel cprmo cfv cz c1 cfz co clcmf cn wa wbr cle prmocl nnzd wss cfn
      cdvds a1i cc0 wnel fzssz 0nelfz1 lcmfn0cl syl3anc jca prmodvdslcmf dvdsle
      fzfid sylc ) ABCZADEZFCZGAHIZJEZKCZLUMUPSMUMUPNMULUNUQULUMAOPULUOFQZUORCU
      AUOUBZUQURULGAUCTULGAUJUSULAUDTUOUEUFUGAUHUMUPUIUK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Prime gaps
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
According to Wikipedia "Prime gap", ~ https://en.wikipedia.org/wiki/Prime_gap
(16-Aug-2020): "A _prime gap_ is the difference between two successive prime
numbers.  The n-th prime gap, denoted g_n or g(p_n) is the difference between
the (n+1)-th and the n-th prime numbers, i.e. g_n = p_n+1 - p_n .  We have
g_1 = 1, g_2 = g_3 = 2, and g_4 = 4."

It can be proven that there are arbitrary large gaps, usually by showing that
"in the sequence n!+2, n!+3, ..., n!+n the first term is divisible by 2, the
second term is divisible by 3, and so on. Thus, this is a sequence of n-1
consecutive composite integers, and it must belong to a gap between primes
having length at least n.", see ~ prmgap .

Instead of using the factorial of n (see ~ df-fac ), any function can be chosen
for which f(n) is not relatively prime to the integers 2, 3, ..., n.  For
example, the least common multiple of the integers 2, 3, ..., n, see
~ prmgaplcm , or the primorial n# (the product of all prime numbers less than
or equal to n), see ~ prmgapprmo , are such functions, which provide smaller
values than the factorial function (see ~ lcmflefac and ~ prmolefac resp.
~ prmolelcmf ):  "For instance, the first prime gap of size larger than 14
occurs between the primes 523 and 541, while 15! is the vastly larger number
1307674368000."  But the least common multiple of the integers 2, 3, ..., 15 is
360360, and 15# is 30030 (p_3248 = 30029 and P_3249 = 30047, so g_3248 = 18).
$)

  $( Lemma for ~ prmgap :  The factorial of a number plus an integer greater
     than 1 and less then or equal to the number is divisible by that integer.
     (Contributed by AV, 13-Aug-2020.) $)
  prmgaplem1 $p |- ( ( N e. NN /\ I e. ( 2 ... N ) )
                     -> I || ( ( ! ` N ) + I ) ) $=
    ( cn c2 cfz co wa cfa cfv cdvds wbr caddc cuz elfzuz eluz2nn elfzuz3 adantl
    wcel syl cz jca dvdsfac elfzelz iddvds cn0 nnnn0 faccl nnzd adantr dvds2add
    wi syl3anc mp2and ) BCRZADBEFRZGZABHIZJKZAAJKZAUQALFJKZUPACRZBAMIRZGZURUOVC
    UNUOVAVBUOADMIRVAADBNAOSADBPUAQABUBSUOUSUNUOATRZUSADBUCZAUDSQUPVDUQTRZVDURU
    SGUTUKUOVDUNVEQZUNVFUOUNUQUNBUERUQCRBUFBUGSUHUIVGAUQAUJULUM $.

  ${
    $d I i $.  $d N i $.
    $( Lemma for ~ prmgap :  The factorial of a number plus an integer greater
       than 1 and less then or equal to the number are not coprime.
       (Contributed by AV, 13-Aug-2020.) $)
    prmgaplem2 $p |- ( ( N e. NN /\ I e. ( 2 ... N ) )
                       -> 1 < ( ( ( ! ` N ) + I ) gcd I ) ) $=
      ( vi cn wcel c2 cfz co wa cv cfa cfv caddc cdvds wbr cuz adantl breq1 syl
      wb wrex c1 cgcd elfzuz wceq anbi12d prmgaplem1 cz elfzelz iddvds rspcedvd
      clt jca nnnn0 faccl adantr eluz2nn nnaddcld ncoprmgcdgt1b syl2anc mpbid
      cn0 ) BDEZAFBGHEZIZCJZBKLZAMHZNOZVFANOZIZCFPLZUAZUBVHAUCHULOZVEVKAVHNOZAA
      NOZIZCAVLVDAVLEZVCAFBUDZQVFAUEZVKVQTVEVTVIVOVJVPVFAVHNRVFAANRUFQVEVOVPABU
      GVDVPVCVDAUHEVPAFBUIAUJSQUMUKVEVHDEADEZVMVNTVEVGAVCVGDEZVDVCBVBEWBBUNBUOS
      UPVDWAVCVDVRWAVSAUQSQZURWCVHACUSUTVA $.
  $}

  ${
    $d I x $.  $d N x $.
    $( Lemma for ~ prmgaplcm :  The least common multiple of all positive
       integers less than or equal to a number plus an integer greater than 1
       and less then or equal to the number is divisible by that integer.
       (Contributed by AV, 14-Aug-2020.)  (Revised by AV, 27-Aug-2020.) $)
    prmgaplcmlem1 $p |- ( ( N e. NN /\ I e. ( 2 ... N ) )
                          -> I || ( ( _lcm ` ( 1 ... N ) ) + I ) ) $=
      ( vx cn wcel c2 cfz co wa c1 clcmf cfv cdvds wbr caddc cv wss mp1i adantl
      cz wral 2eluzge1 fzss1 sselda fzssz fzfi pm3.2i dvdslcmf breq1 rspcv sylc
      cuz cfn elfzelz iddvds syl wi lcmfcl nn0zd dvds2add syl3anc mp2and ) BDEZ
      AFBGHZEZIZAJBGHZKLZMNZAAMNZAVHAOHMNZVFAVGECPZVHMNZCVGUAZVIVCVDVGAFJULLEVD
      VGQVCUBFJBUCRUDVGTQZVGUMEZIZVNVFVOVPJBUEJBUFUGZCVGUHRVMVICAVGVLAVHMUIUJUK
      VEVJVCVEATEZVJAFBUNZAUOUPSVFVSVHTEZVSVIVJIVKUQVEVSVCVTSZVQWAVFVRVQVHVGURU
      SRWBAVHAUTVAVB $.

    $d I i $.  $d N i $.
    $( Lemma for ~ prmgaplcm :  The least common multiple of all positive
       integers less than or equal to a number plus an integer greater than 1
       and less then or equal to the number are not coprime.  (Contributed by
       AV, 14-Aug-2020.)  (Revised by AV, 27-Aug-2020.) $)
    prmgaplcmlem2 $p |- ( ( N e. NN /\ I e. ( 2 ... N ) )
                          -> 1 < ( ( ( _lcm ` ( 1 ... N ) ) + I ) gcd I ) ) $=
      ( vi cn wcel c2 cfz co wa cv c1 cfv cdvds wbr adantl wb breq1 cz syl a1i
      clcmf caddc cuz wrex cgcd clt elfzuz anbi12d prmgaplcmlem1 elfzelz iddvds
      wceq jca rspcedvd wss cfn cc0 fzssz fzfid 0nelfz1 lcmfn0cl syl3anc adantr
      wnel eluz2nn nnaddcld ncoprmgcdgt1b syl2anc mpbid ) BDEZAFBGHEZIZCJZKBGHZ
      UALZAUBHZMNZVMAMNZIZCFUCLZUDZKVPAUEHUFNZVLVSAVPMNZAAMNZIZCAVTVKAVTEZVJAFB
      UGZOVMAULZVSWEPVLWHVQWCVRWDVMAVPMQVMAAMQUHOVLWCWDABUIVKWDVJVKAREWDAFBUJAU
      KSOUMUNVLVPDEADEZWAWBPVLVOAVJVODEZVKVJVNRUOZVNUPEUQVNVDZWJWKVJKBURTVJKBUS
      WLVJBUTTVNVAVBVCVKWIVJVKWFWIWGAVESOZVFWMVPACVGVHVI $.
  $}

  ${
    $d A x y $.  $d N i p $.
    prmgaplem3.a $e |- A = { p e. Prime | p < N } $.
    $( Lemma for ~ prmgap .  (Contributed by AV, 9-Aug-2020.) $)
    prmgaplem3 $p |- ( N e. ( ZZ>= ` 3 ) -> E. x e. A A. y e. A y <_ x ) $=
      ( c3 wcel cr wss cfn c0 w3a cv cle wbr clt cprime c2 cz cuz cfv wral wrex
      vi wne crab ssrab2 a1i cn prmssnn nnssre sstri syl6ss cfzo co fzofi breq1
      cc0 wa elrab cn0 nnnn0d ad2antrl eluzge3nn adantr simprr elfzo0 syl3anbrc
      prmnn ex syl5bi ssrdv ssfi sylancr 2prm eluz2 c1 caddc df-3 wb 2z zltp1le
      breq1i mpan biimprd imp 3adant1 sylbi sylanbrc ne0i syl sseq1 eleq1 neeq1
      wceq 3anbi123d ax-mp fimaxre ) DGUAUBHZCIJZCKHZCLUFZMZBNANOPBCUCACUDWTENZ
      DQPZERUGZIJZXGKHZXGLUFZXDWTXGRIXGRJWTXFERUHUIRUJIUKULUMUNWTUSDUOUPZKHXGXK
      JXIUSDUQWTUEXGXKUENZXGHXLRHZXLDQPZUTZWTXLXKHZXFXNEXLRXEXLDQURVAWTXOXPWTXO
      UTXLVBHZDUJHZXNXPXMXQWTXNXMXLXLVJVCVDWTXRXODVEVFWTXMXNVGXLDVHVIVKVLVMXKXG
      VNVOWTSXGHZXJWTSRHZSDQPZXSXTWTVPUIWTGTHZDTHZGDOPZMYAGDVQYCYDYAYBYCYDYAYDS
      VRVSUPZDOPZYCYAGYEDOVTWDYCYAYFSTHYCYAYFWAWBSDWCWEWFVLWGWHWIXFYAESRXESDQUR
      VAWJXGSWKWLCXGWPZXDXHXIXJMWAFYGXAXHXBXIXCXJCXGIWMCXGKWNCXGLWOWQWRVIABCWSW
      L $.
  $}

  ${
    $d A x y $.  $d N i p $.  $d P i p $.
    prmgaplem4.a $e |- A = { p e. Prime | ( N < p /\ p <_ P ) } $.
    $( Lemma for ~ prmgap .  (Contributed by AV, 10-Aug-2020.) $)
    prmgaplem4 $p |- ( ( N e. NN /\ P e. Prime /\ N < P )
                       -> E. x e. A A. y e. A x <_ y ) $=
      ( wcel cprime clt wbr w3a cr wss cfn c0 cv cle wa wceq wne wral wrex crab
      vi cn ssrab2 a1i prmssnn nnssre sstri syl6ss co fzfid breq2 breq1 anbi12d
      cfz elrab cz prmz anim12i 3adant3 adantr df-3an sylibr wi nnre sseli ltle
      nnz syl2an anim1d ex imp32 elfz2 sylanbrc syl5bi ssrdv ssfi syl2anc simp2
      prmnn nnred leidd anim1i ancomd 3adant1 ne0i syl wb sseq1 eleq1 3anbi123d
      neeq1 ax-mp syl3anbrc fiminre ) EUFHZDIHZEDJKZLZCMNZCOHZCPUAZLZAQBQRKBCUB
      ACUCXBEFQZJKZXGDRKZSZFIUDZMNZXKOHZXKPUAZXFXBXKIMXKINXBXJFIUGUHIUFMUIUJUKZ
      ULXBEDURUMZOHXKXPNXMXBEDUNXBUEXKXPUEQZXKHXQIHZEXQJKZXQDRKZSZSZXBXQXPHZXJY
      AFXQIXGXQTXHXSXIXTXGXQEJUOXGXQDRUPUQUSXBYBYCXBYBSZEUTHZDUTHZXQUTHZLZEXQRK
      ZXTSZYCYDYEYFSZYGSYHXBYKYBYGWSWTYKXAWSYEWTYFEVKDVAVBVCXRYGYAXQVAVDVBYEYFY
      GVEVFXBXRYAYJWSWTXRYAYJVGZVGXAWSWTSZXRYLYMXRSXSYIXTYMEMHZXQMHXSYIVGXRWSYN
      WTEVHVDIMXQXOVIEXQVJVLVMVNVCVOXQEDVPVQVNVRVSXPXKVTWAXBDXKHZXNXBWTXADDRKZS
      ZYOWSWTXAWBWTXAYQWSWTXASYPXAWTYPXAWTDWTDDWCWDWEWFWGWHXJYQFDIXGDTXHXAXIYPX
      GDEJUOXGDDRUPUQUSVQXKDWIWJCXKTZXFXLXMXNLWKGYRXCXLXDXMXEXNCXKMWLCXKOWMCXKP
      WOWNWPWQABCWRWJ $.
  $}

  ${
    $d N n p q r z $.
    $( Lemma for ~ prmgap : for each integer greater than 2 there is a smaller
       prime closest to this integer, i.e. there is a smaller prime and no
       other prime is between this prime and the integer.  (Contributed by AV,
       9-Aug-2020.) $)
    prmgaplem5 $p |- ( N e. ( ZZ>= ` 3 ) -> E. p e. Prime ( p < N
                             /\ A. z e. ( ( p + 1 ) ..^ N ) z e/ Prime ) ) $=
      ( vr vq wcel cv wbr clt cprime wral c1 caddc co cfzo wa breq1 adantl wi
      cz c3 cuz cfv crab wnel wrex elrabi ad2antlr wceq wb oveq1 oveq1d raleqdv
      cle anbi12d elrab simprbi elfzo2 simpl simpr3 sylanbrc adantrl eluz2 prmz
      w3a zltp1le sylan wn cr prmnn nnred zre biimpd syl2an pm2.21 syl6 sylbird
      ltnle expcom com23 a1i 3imp sylbi 3ad2ant1 syl5com embantd ex df-nel ax-1
      imp a1d sylbir pm2.61i impancom syl5bi ralimdv2 jca rspcedvd eqid r19.29a
      prmgaplem3 ) BUAUBUCFZAGZDGZUNHZAEGZBIHZEJUDZKZCGZBIHZXCJUEZAXJLMNZBONZKZ
      PZCJUFDXHXBXDXHFZPZXIPZXPXDBIHZXLAXDLMNZBONZKZPZCXDJXQXDJFZXBXIXGEXDJUGZU
      HXJXDUIZXPYDUJXSYGXKXTXOYCXJXDBIQYGXLAXNYBYGXMYABOXJXDLMUKULUMUORXSXTYCXQ
      XTXBXIXQYEXTXGXTEXDJXFXDBIQUPUQUHXRXIYCXRXEXLAXHYBXRXCXHFZXESZXCYBFZXLSYJ
      XCYAUBUCFZBTFZXCBIHZVEZXRYIPXLXCYABURXRYNYIXLXCJFZXRYNPZYIXLSZSZYOYPYQYOY
      PPYHXEXLYOYNYHXRYOYNPYOYMYHYOYNUSYOYKYLYMUTXGYMEXCJXFXCBIQUPVAVBYPXEXLSZY
      OXRYNYSXQYNYSSXBXQYEYNYSYFYKYLYEYSSZYMYKYATFZXCTFZYAXCUNHZVEYTYAXCVCUUAUU
      BUUCYTUUBUUCYTSSUUAUUBYEUUCYSYEUUBUUCYSSYEUUBPZUUCXDXCIHZYSYEXDTFUUBUUEUU
      CUJXDVDXDXCVFVGUUDUUEXEVHZYSYEXDVIFZXCVIFZUUEUUFSUUBYEXDXDVJVKXCVLUUGUUHP
      UUEUUFXDXCVRVMVNXEXLVOVPVQVSVTWAWBWCWDWERWJRWFWGYOVHXLYRXCJWHXLYQYPXLYIWI
      WKWLWMWNWOWGWPWJWQWRDAXHBEXHWSXAWT $.

    $( Lemma for ~ prmgap : for each positive integer there is a greater prime
       closest to this integer, i.e. there is a greater prime and no other
       prime is between this prime and the integer.  (Contributed by AV,
       10-Aug-2020.) $)
    prmgaplem6 $p |- ( N e. NN -> E. p e. Prime ( N < p
                             /\ A. z e. ( ( N + 1 ) ..^ p ) z e/ Prime ) ) $=
      ( vn vq wcel cv clt wbr cprime wrex wa w3a cle wi adantr cz impcom imp ex
      cn wnel c1 caddc cfzo wral prmunb crab eqid prmgaplem4 wceq breq2 anbi12d
      co breq1 elrab simplrl simprrl simpll cuz cfv elfzo2 eluz2 wb nnz zltp1le
      prmz syl2an exbiri 3ad2ant1 com12 cr prmnn nnred ad2antrl adantl ltleletr
      syl3anc exp4b 3ad2ant2 expdcom com45 com14 adantld 3ad2ant3 3imp sylanbrc
      jca exp41 sylbi elfzolt2 ltnle biimpd pm2.21d sylan2 embantd com23 df-nel
      wn ax-1 a1d sylbir pm2.61i ralimdv2 jca32 syl5bi impd reximdv2 rexlimdv3a
      mpd ) BUAFZBDGZHIZDJKBCGZHIZAGZJUBZABUCUDUNZXNUEUNZUFZLZCJKZBDUGXKXMYBDJX
      KXLJFZXMMZXNXPNIZABEGZHIZYFXLNIZLZEJUHZUFZCYJKYBCAYJXLBEYJUIUJYDYKYACYJJY
      DXNYJFZYKXNJFZYALZYLYMXOXNXLNIZLZLZYDYKYNOZYIYPEXNJYFXNUKYGXOYHYOYFXNBHUL
      YFXNXLNUOUMUPYDYQYRYDYQLZYKYNYSYKLYMXOXTYDYMYPYKUQYSXOYKYDYMXOYOURPYSYKXT
      YSYEXQAYJXSXPJFZYSXPYJFZYEOZXPXSFZXQOZOZOZYTYSUUEYTYSLZUUCUUBXQUUGUUCUUBX
      QOUUGUUCLZUUAYEXQUUHYTBXPHIZXPXLNIZLZUUAYTYSUUCUSUUCUUGUUKUUCXPXRUTVAFZXN
      QFZXPXNHIZMUUGUUKOZXPXRXNVBUULUUMUUNUUOUULXRQFZXPQFZXRXPNIZMUUMUUNUUOOOZX
      RXPVCUURUUPUUSUUQUURUUMUUNUUGUUKUURUUMLZUUNLZUUGLUUIUUJUVAUUGUUIUUTUUGUUI
      OZUUNUURUVBUUMUUGUURUUIYSYTUURUUIOZYDYTUVCOZYQXKYCUVDXMXKYTUUIUURXKBQFUUQ
      UUIUURVDYTBVEXPVGBXPVFVHVIVJPRVKPPSUUGUVAUUJUUGUUNUUJUUTYSYTUUNUUJOZYQYDY
      TUVEOZYPYMYDUVFOZYOYMUVGOXOYTYMYDYOUVEYTYMYDUUNYOUUJYDYTYMUUNYOUUJOOZYCXK
      YTYMLZUVHOXMYCUVIUUNYOUUJYCUVILXPVLFZXNVLFZXLVLFZUUNYOLUUJOYTUVJYCYMYTXPX
      PVMVNZVOUVIUVKYCYMUVKYTYMXNXNVMVNZVPVPYCUVLUVIYCXLXLVMVNPXPXNXLVQVRVSVTWA
      WBWCVPRRRWDRWHWIWEWJWFWJRYIUUKEXPJYFXPUKYGUUIYHUUJYFXPBHULYFXPXLNUOUMUPWG
      UUCUUGUUNYEXQOXPXRXNWKUUGUUNLYEXQUUGUUNYEWSZYTUVJUVKUUNUVOOYSUVMYMUVKYDYP
      UVNVOUVJUVKLUUNUVOXPXNWLWMVHSWNWOWPTWQTYTWSXQUUFXPJWRXQUUEYSXQUUDUUBXQUUC
      WTXAXAXBXCXDSXETTXFXGXHXJXIXJ $.
  $}

  ${
    $d F p q r s z $.  $d F i j $.  $d N p q r s z $.  $d N i j $.
    $d ph p q j z $.
    prmgaplem7.n $e |- ( ph -> N e. NN ) $.
    prmgaplem7.f $e |- ( ph -> F e. ( NN ^m NN ) ) $.
    prmgaplem7.i $e |- ( ph -> A. i e. ( 2 ... N )
                               1 < ( ( ( F ` N ) + i ) gcd i ) ) $.
    $( Lemma for ~ prmgap .  (Contributed by AV, 12-Aug-2020.) $)
    prmgaplem7 $p |- ( ph -> E. p e. Prime E. q e. Prime
                             ( p < ( ( F ` N ) + 2 ) /\ ( ( F ` N ) + N ) < q
                               /\ A. z e. ( ( p + 1 ) ..^ q ) z e/ Prime ) ) $=
      ( cn wcel c2 caddc co clt wbr cprime c1 wa vr vs vj cfv cv wnel cfzo wral
      w3a wrex cmap wf elmapi syl ffvelrnd c3 simpr elnnuz sylib 1z 2z eluzaddi
      1p2e3 eqcomi fveq2i syl6eleqr prmgaplem5 anim1i ancomd nnaddcl prmgaplem6
      cuz reeanv simprll simprrl wo wi cz nnz adantl zaddcld ad2antrr fzospliti
      a1i ex neleq1 adantld adantrd a1d nnzd peano2zd cgcd cfz cmin wsbc adantr
      rspcv wb fzshftral syl3anc wceq 2cnd nncn addcom syl2an nncnd oveq12d csb
      cc cvv ovex sbcbr2g mp1i csbov12g csbov2g csbvarg oveq2d eqtrd breq2d cc0
      bitrd cr 2re mpbid ad2antll ltletr mpand impancom 3adant1 3ad2ant1 impcom
      sylbi elnnz sylanbrc sylbid syld com23 jaoi com12 reximdva oveq1 elfzoelz
      raleqbidv fzval3 eqcomd eleq2d biimpa pncan3 oveq1d zsubcl syl2anr gcdcom
      weq zcnd syl2anc elfzo2 cle eluz2 2pos nnre ltaddpos readdcld zred posdif
      zre nngt0 addgt0d 0red ltsubpos ncoprmlnprm mpid imp syldc ralrimiva 3jca
      imp31 syl5bir mp2and mpdan ) AEDUDZKLZGUEZUVTMNOZPQZUVTENOZFUEZPQZBUEZRUF
      ZBUWBSNOZUWFUGOZUHZUIZFRUJZGRUJZAKKEDADKKUKOLKKDULIDKKUMUNHUOAUWATZUWDUAU
      EZRUFZUAUWJUWCUGOZUHZTZGRUJZUWGUBUEZRUFZUBUWESNOZUWFUGOZUHZTZFRUJZUWOUWPU
      WCUPVLUDZLUXBUWPUWCSMNOZVLUDZUXJUWPUVTSVLUDLZUWCUXLLUWPUWAUXMAUWAUQUVTURU
      SMSUVTUTVAVBUNUPUXKVLUXKUPVCVDVEVFUAUWCGVGUNUWPUWEKLZUXIUWPUWAEKLZTUXNUWP
      UXOUWAAUXOUWAHVHVIUVTEVJUNZUBUWEFVKUNUXBUXITUXAUXHTZFRUJZGRUJUWPUWOUXAUXH
      GFRRVMUWPUXRUWNGRUWPUWBRLZTZUXQUWMFRUXTUWFRLZTZUXQUWMUYBUXQTZUWDUWGUWLUYB
      UWDUWTUXHVNUYBUXAUWGUXGVOUYCUWIBUWKUYBUXQUWHUWKLZUWIUYBUYDUXQUWIUYBUYDUWH
      UWSLZUWHUWCUWFUGOLZVPZUXQUWIVQZUYBUYDUYGUYBUYDTZUYDUWCVRLZTUYGUYIUYJUYDUY
      BUYJUYDUWPUYJUXSUYAUWPUVTMUWAUVTVRLZAUVTVSVTZMVRLZUWPVAWDZWAWBVHVIUWHUWJU
      WFUWCWCUNWEUYGUYBUYHUYEUYBUYHVQZUYFUYEUYHUYBUYEUXAUWIUXHUYEUWTUWIUWDUWRUW
      IUAUWHUWSUWQUWHRWFWQWGWHWIUYBUYFUWHUWCUXEUGOZLZUWHUXFLZVPZUYHUYBUYFUYSUYB
      UYFTZUYFUXEVRLZTUYSUYTVUAUYFUYBVUAUYFUWPVUAUXSUYAUWPUWEUWPUWEUXPWJZWKWBVH
      VIUWHUWCUWFUXEWCUNWEUYSUYBUYHUYQUYOUYRUYQUYBUYHUYQUYBTUWIUXQUYBUYQUWIUWPU
      YQUWIVQZUXSUYAAUWAVUCAUWASUVTCUEZNOZVUDWLOZPQZCMEWMOUHZVUCJAUWAVUHVUCVQUW
      PVUHVUGCUCUEZUVTWNOZWOZUCMUVTNOZEUVTNOZWMOZUHZVUCUWPUYMEVRLZUYKVUHVUOWRUY
      NAVUPUWAAEHWJWPUYLVUGCUCUVTMEWSWTUWPVUOSUVTVUJNOZVUJWLOZPQZUCUWCUWEWMOZUH
      ZVUCUWPVUKVUSUCVUNVUTUWPVULUWCVUMUWEWMAMXILUVTXILZVULUWCXAUWAAXBUVTXCZMUV
      TXDXEAEXILVVBVUMUWEXAUWAAEHXFVVCEUVTXDXEXGUWPVUKSCVUJVUFXHZPQZVUSVUJXJLZV
      UKVVEWRUWPVUIUVTWNXKZCVUJSVUFPXJXLXMUWPVVDVURSPUWPVVDCVUJVUEXHZCVUJVUDXHZ
      WLOZVURVVFVVDVVJXAUWPVVGCVUJVUEVUDWLXJXNXMUWPVVHVUQVVIVUJWLUWPVVHUVTVVINO
      ZVUQVVFVVHVVKXAUWPVVGCVUJUVTVUDNXJXOXMVVFVVKVUQXAUWPVVGVVFVVIVUJUVTNCVUJX
      JXPZXQXMXRVVFVVIVUJXAUWPVVGVVLXMXGXRXSYAUUCUWPUYQVVAUWIUWPUYQVVAUWIVQUWPU
      YQTZVVASUVTUWHUVTWNOZNOZVVNWLOZPQZUWIVVMUWHVUTLZVVAVVQVQUWPUYQVVRUWPUYPVU
      TUWHUWPUWEVRLZUYPVUTXAVUBVVSVUTUYPUWCUWEUUDUUEUNUUFUUGVUSVVQUCUWHVUTUCBUU
      MZVURVVPSPVVTVUQVVOVUJVVNWLVVTVUJVVNUVTNVUIUWHUVTWNUUAZXQVWAXGXSWQUNVVMVV
      QSVVNUWHWLOZPQZUWIVVMVVPVWBSPVVMVVPUWHVVNWLOZVWBVVMVVOUWHVVNWLUWPVVBUWHXI
      LVVOUWHXAUYQUWAVVBAVVCVTUYQUWHUWHUWCUXEUUBZUUNUVTUWHUUHXEUUIVVMUWHVRLZVVN
      VRLZVWDVWBXAUYQVWFUWPVWEVTZUYQVWFUYKVWGUWPVWEUYLUWHUVTUUJUUKZUWHVVNUULUUO
      XRXSVVMVVNKLZUWHKLZVVNUWHPQZVWCUWIVQVVMVWGXTVVNPQZVWJVWIVVMUVTUWHPQZVWMUY
      QUWPVWNUYQUWHUWCVLUDLZVUAUWHUXEPQZUIZUWPVWNVQZUWHUWCUXEUUPZVWOVUAVWRVWPVW
      OUYJVWFUWCUWHUUQQZUIZVWRUWCUWHUURZVWFVWTVWRUYJVWFUWPVWTVWNVWFUWPTZUVTUWCP
      QZVWTVWNVXCXTMPQZVXDVXEVXCUUSWDZVWFMYBLZUVTYBLZVXEVXDWRUWPVXGVWFYCWDUWAVX
      HAUVTUUTZVTZMUVTUVAXEYDVXCVXHUWCYBLZUWHYBLZVXDVWTTVWNVQUWAVXHVWFAVXIYEZUW
      AVXKVWFAUWAUVTMVXIVXGUWAYCWDUVBYEZVWFVXLUWPUWHUVEWPZUVTUWCUWHYFWTYGYHYIYL
      YJYLYKUWPVXHVXLVWNVWMWRUYQVXJUYQUWHVWEUVCZUVTUWHUVDXEYDVVNYMYNVVMVWFXTUWH
      PQZVWKVWHUYQUWPVXQUYQVWQUWPVXQVQZVWSVWOVUAVXRVWPVWOVXAVXRVXBVWFVWTVXRUYJV
      WFUWPVWTVXQVXCXTUWCPQZVWTVXQVXCUVTMVXMVXGVXCYCWDUWAXTUVTPQZVWFAUVTUVFZYEV
      XFUVGVXCXTYBLVXKVXLVXSVWTTVXQVQVXCUVHVXNVXOXTUWCUWHYFWTYGYHYIYLYJYLYKUWHY
      MYNVVMVXTVWLUWPVXTUYQUWAVXTAVYAVTWPUWPVXHVXLVXTVWLWRUYQVXJVXPUVTUWHUVIXEY
      DVVNUWHUVJWTYOYPWEYQYOYOWEUVKUVLWBYKWIWEUYRUYHUYBUYRUXHUWIUXAUYRUXGUWIUWG
      UXDUWIUBUWHUXFUXCUWHRWFWQWGWGWIYRYSUVMYRYSYPYQUVPUVNUVOWEYTYTUVQUVRUVS $.

    $d ph p q $.
    $( Lemma for ~ prmgap .  (Contributed by AV, 13-Aug-2020.) $)
    prmgaplem8 $p |- ( ph -> E. p e. Prime E. q e. Prime ( N <_ ( q - p )
                               /\ A. z e. ( ( p + 1 ) ..^ q ) z e/ Prime ) ) $=
      ( caddc co wbr cprime c1 wa wcel cn adantr cz cv cfv c2 clt wnel cfzo w3a
      wral cmin cle wi cr prmnn nnred ad2antll ad2antlr adantl ad2antrr cmap wf
      elmapi ffvelrn 3syl mpd 1red readdcld wceq nncnd 1cnd add32d nnzd zaddcld
      ex wb prmz zltp1le syl2an biimpa eqbrtrd expcom imp oveq2d addassd eqtr4d
      df-2 breq2d peano2zd zleltp1 syl2anr biimprd sylbid com12 lesub3d 3adant3
      a1i impcom simpr3 jca prmgaplem7 reximddv2 ) AGUAZEDUBZUCKLZUDMZXBEKLZFUA
      ZUDMZBUANUEBXAOKLXFUFLUHZUGZEXFXAUILUJMZXHPGFNNAXANQZPZXFNQZPZXIPXJXHXIXN
      XJXDXGXNXJUKXHXDXGPZXNXJXOXNPZXFXAEXBOKLZXMXFULQXOXLXMXFXFUMUNUOXNXAULQZX
      OXKXRAXMXKXAXAUMUNUPUQXNEULQZXOAXSXKXMAEHUNURUQXPXBOXNXBULQZXOAXTXKXMAXBA
      ERQZXBRQZHADRRUSLQRRDUTZYAYBUKIDRRVAYCYAYBRREDVBVMVCVDZUNURUQXPVEVFXOXNXQ
      EKLZXFUJMZXGXNYFUKXDXNXGYFXNXGPYEXEOKLZXFUJXLYEYGVGZXMXGAYHXKAXBOEAXBYDVH
      ZAVIZAEHVHVJSURXNXGYGXFUJMZXLXETQXFTQXGYKVNXMXLXBEAXBTQXKAXBYDVKZSAETQXKA
      EHVKSVLXFVOXEXFVPVQVRVSVTUQWAXOXNXAXQUJMZXDXNYMUKXGXNXDYMXLXDYMUKXMXLXDXA
      XQOKLZUDMZYMXLXCYNXAUDAXCYNVGXKAXCXBOOKLZKLYNAUCYPXBKUCYPVGAWEWOWBAXBOOYI
      YJYJWCWDSWFXLYMYOXKXATQXQTQYMYOVNAXAVOAXBYLWGXAXQWHWIWJWKSWLSWAWMVMWNWPXN
      XDXGXHWQWRABCDEFGHIJWSWT $.
  $}

  ${
    $d i n p q x z $.
    $( The prime gap theorem: for each positive integer there are (at least)
       two successive primes with a difference ("gap") at least as big as the
       given integer.  (Contributed by AV, 13-Aug-2020.) $)
    prmgap $p |- A. n e. NN E. p e. Prime E. q e. Prime
               ( n <_ ( q - p ) /\ A. z e. ( ( p + 1 ) ..^ q ) z e/ Prime ) $=
      ( vi vx cv co wbr cprime c1 caddc wa wrex cn wcel cfa cfv cgcd clt cle id
      cmin wnel cfzo wral cmpt cmap facmapnn a1i cfz prmgaplem2 cvv eqidd fveq2
      wceq adantl simpl fvexd fvmptd oveq1d breqtrrd ralrimiva prmgaplem8 rgen
      c2 ) BGZCGZDGZUCHUAIAGJUDAVIKLHVHUEHUFMCJNDJNBOVGOPZAEFOFGZQRZUGZVGCDVJUB
      VMOOUHHPVJFUIUJVJKVGVMRZEGZLHZVOSHZTIEVFVGUKHZVJVOVRPZMZKVGQRZVOLHZVOSHVQ
      TVOVGULVTVPWBVOSVTVNWAVOLVTFVGVLWAOVMUMVTVMUNVKVGUPVLWAUPVTVKVGQUOUQVJVSU
      RVTVGQUSUTVAVAVBVCVDVE $.
  $}

  ${
    $d i n p q x z $.
    $( Alternate proof of ~ prmgap : in contrast to ~ prmgap , where the gap
       starts at n! , the factorial of n, the gap starts at the least common
       multiple of all positive integers less than or equal to n.  (Contributed
       by AV, 13-Aug-2020.)  (Revised by AV, 27-Aug-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    prmgaplcm $p |- A. n e. NN E. p e. Prime E. q e. Prime
               ( n <_ ( q - p ) /\ A. z e. ( ( p + 1 ) ..^ q ) z e/ Prime ) $=
      ( vi vx cv co cprime c1 caddc wa cn wcel cfz clcmf cfv a1i cvv cgcd id wf
      cmin cle wbr wnel cfzo wral wrex cmpt cmap wss cfn cc0 fzssz fzfi 0nelfz1
      cz lcmfn0cl syl3anc adantl eqid fmptd wb nnex pm3.2i elmapg mpbird clt c2
      mp1i prmgaplcmlem2 cn0 eqidd wceq oveq2 fveq2d simpl lcmfcl fvmptd oveq1d
      weq breqtrrd ralrimiva prmgaplem8 rgen ) BGZCGZDGZUCHUDUEAGIUFAWIJKHWHUGH
      UHLCIUIDIUIBMWGMNZAEFMJFGZOHZPQZUJZWGCDWJUAWJWNMMUKHNZMMWNUBZWJFMWMMWNWKM
      NZWMMNZWJWQWLURULZWLUMNZUNWLUFZWRWSWQJWKUORWTWQJWKUPRXAWQWKUQRWLUSUTVAWNV
      BVCMSNZXBLWOWPVDWJXBXBVEVEVFMMWNSSVGVKVHWJJWGWNQZEGZKHZXDTHZVIUEEVJWGOHZW
      JXDXGNZLZJJWGOHZPQZXDKHZXDTHXFVIXDWGVLXIXEXLXDTXIXCXKXDKXIFWGWMXKMWNVMXIW
      NVNFBWBZWMXKVOXIXMWLXJPWKWGJOVPVQVAWJXHVRXJURULZXJUMNZLXKVMNXIXNXOJWGUOJW
      GUPVFXJVSVKVTWAWAWCWDWEWF $.
  $}

  ${
    $d I p q $.  $d N p q $.
    $( Lemma for ~ prmgapprmo :  The primorial of a number plus an integer
       greater than 1 and less then or equal to the number are not coprime.
       (Contributed by AV, 15-Aug-2020.)  (Revised by AV, 29-Aug-2020.) $)
    prmgapprmolem $p |- ( ( N e. NN /\ I e. ( 2 ... N ) )
                           -> 1 < ( ( ( #p ` N ) + I ) gcd I ) ) $=
      ( vq vp cn c2 cfz co wa cv cprmo cfv cdvds wbr cprime wb breq1 adantl syl
      wcel caddc cuz wrex cgcd clt cle w3a prmuz2 ad2antlr wceq anbi12d 3adant1
      c1 pm3.22 rspcedvd prmdvdsprmop r19.29a cn0 prmocl elfzuz eluz2nn nnaddcl
      nnnn0 syl2an ncoprmgcdgt1b syl2anc mpbid ) BETZAFBGHTZIZCJZBKLZAUAHZMNZVK
      AMNZIZCFUBLZUCZUMVMAUDHUENZVJDJZBUFNZVTAMNZVTVMMNZUGZVRDOVJVTOTZIZWDIZVPW
      CWBIZCVTVQWEVTVQTVJWDVTUHUIVKVTUJZVPWHPWGWIVNWCVOWBVKVTVMMQVKVTAMQUKRWDWH
      WFWBWCWHWAWBWCUNULRUOABDUPUQVJVMETZAETZVRVSPVHVLETZWKWJVIVHBURTWLBVCBUSSV
      IAVQTWKAFBUTAVASZVLAVBVDVIWKVHWMRVMACVEVFVG $.
  $}

  ${
    $d i j k m n $.  $d j k m n p q z $.
    $( Alternate proof of ~ prmgap : in contrast to ~ prmgap , where the gap
       starts at n! , the factorial of n, the gap starts at n#, the primorial
       of n.  (Contributed by AV, 15-Aug-2020.)  (Revised by AV, 29-Aug-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    prmgapprmo $p |- A. n e. NN E. p e. Prime E. q e. Prime
               ( n <_ ( q - p ) /\ A. z e. ( ( p + 1 ) ..^ q ) z e/ Prime ) $=
      ( vi vj vk vm cv co cprime c1 caddc wa cn wcel cfz cfv wceq adantl cle id
      cmin wbr wnel cfzo wral wrex cmpt cprod cmap wf eqid fzfid eqidd ifbieq1d
      cif eleq1 elfznn 1nn a1i ifcld fvmptd eqeltrd fprodnncl fmpti elmap mpbir
      nnex cgcd clt c2 cprmo prmgapprmolem cz elfzelz prodeq2dv mpteq2dva oveq2
      1zzd prodeq1d simpl cn0 nnnn0 prmoval eqcomd adantr eqtrd oveq1d breqtrrd
      syl ralrimiva prmgaplem8 rgen ) BIZCIZDIZUCJUAUDAIKUEAWQLMJWPUFJUGNCKUHDK
      UHBOWOOPZAEFOLFIZQJZGIZHOHIZKPZXBLUQZUIZRZGUJZUIZWOCDWRUBXHOOUKJPZWRXIOOX
      HULFOOXGXHXHUMWSOPZWTXFGXJLWSUNXJXAWTPZNZXFXAKPZXALUQZOXLHXAXDXNOXEOXLXEU
      OXBXASZXDXNSZXLXOXCXMXBXALXBXAKURXOUBUPZTXKXAOPZXJXAWSUSZTXKXNOPZXJXKXMXA
      LOXSLOPZXKUTVAVBTZVCYBVDVEVFOOXHVIVIVGVHVAWRLWOXHRZEIZMJZYDVJJZVKUDEVLWOQ
      JZWRYDYGPZNZLWOVMRZYDMJZYDVJJYFVKYDWOVNYIYEYKYDVJYIYCYJYDMYIYCLWOQJZXNGUJ
      ZYJYIFWOWTXNGUJZYMOXHOYIFOXGYNYIXJNZWTXFXNGYOXKNZHXAXDXNOXEVOYPXEUOXOXPYP
      XQTXKXRYOXSTXKXNVOPYOXKXMXALVOXALWSVPXKVTVBTVCVQVRWSWOSZYNYMSYIYQWTYLXNGW
      SWOLQVSWATWRYHWBYIYLXNGYILWOUNXAYLPZXTYIYRXMXALOXAWOUSYAYRUTVAVBTVEVCWRYM
      YJSYHWRYJYMWRWOWCPYJYMSWOWDGWOWEWKWFWGWHWIWIWJWLWMWN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Decimal arithmetic (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    dec2dvds.1 $e |- A e. NN0 $.
    dec2dvds.2 $e |- B e. NN0 $.
    dec2dvds.3 $e |- ( B x. 2 ) = C $.
    dec2dvds.4 $e |- D = ( C + 1 ) $.
    $( Divisibility by two is obvious in base 10.  (Contributed by Mario
       Carneiro, 19-Apr-2015.) $)
    dec2dvds $p |- -. 2 || ; A D $=
      ( c2 cdc c1 caddc co cdvds wbr c5 cz wcel nn0zi 2z cc0 cmul 5nn0 dvdsmul2
      wn mp2an 5t2e10 breqtri wi 10nn0 dvdsmultr1 mp3an ax-mp wa nn0mulcli 2nn0
      cn0 eqeltrri dvds2add dfdec10 breqtrri cn clt deccl 2nn 1lt2 ndvdsp1 eqid
      eqcomi decsuc breq2i mtbi ) IACJZKLMZNOZIADJZNOIVMNOZVOUEZIKUAJZAUBMZCLMZ
      VMNIVTNOZICNOZIWANOZIVSNOZWBIPIUBMZVSNPQRIQRZIWFNOPUCSTPIUDUFUGUHWGVSQRAQ
      RWEWBUITVSUJSAESIVSAUKULUMIBIUBMZCNBQRWGIWHNOBFSTBIUDUFGUHWGVTQRCQRWBWCUN
      WDUITVTVSAUJEUOSCWHCUQGBIFUPUOURZSIVTCUSULUFACUTVAVMQRIVBRKIVCOVQVRUIVMAC
      EWIVDSVEVFIVMVGULUMVNVPINACDVMEWIDCKLMHVIVMVHVJVKVL $.
  $}

  ${
    dec5dvds.1 $e |- A e. NN0 $.
    dec5dvds.2 $e |- B e. NN $.
    dec5dvds.3 $e |- B < 5 $.
    $( Divisibility by five is obvious in base 10.  (Contributed by Mario
       Carneiro, 19-Apr-2015.) $)
    dec5dvds $p |- -. 5 || ; A B $=
      ( c5 cdc c2 cmul co 5nn 2nn0 nn0mulcli caddc c1 cc0 5cn 2cn nn0cni oveq1i
      mulassi 5t2e10 eqtr3i dfdec10 eqtr4i ndvdsi ) FABGZHAIJZBKHALCMDFUHIJZBNJ
      OPGZAIJZBNJUGUIUKBNFHIJZAIJUIUKFHAQRACSUAULUJAIUBTUCTABUDUEEUF $.

    dec5dvds2.4 $e |- ( 5 + B ) = C $.
    $( Divisibility by five is obvious in base 10.  (Contributed by Mario
       Carneiro, 19-Apr-2015.) $)
    dec5dvds2 $p |- -. 5 || ; A C $=
      ( c5 cdc cdvds wbr dec5dvds caddc co cz wcel wb 5nn0 nn0zi nnnn0i dvdsadd
      deccl mp2an cc0 0nn0 dec0h eqid nn0cni addid2i decadd breq2i bitri mtbi )
      HABIZJKZHACIZJKZABDEFLUOHHUNMNZJKZUQHOPUNOPUOUSQHRSUNABDBETZUBSHUNUAUCURU
      PHJUDHABACHUNUERDUTHRUFUNUGAADUHUIGUJUKULUM $.
  $}

  ${
    dec5nprm.1 $e |- A e. NN $.
    $( Divisibility by five is obvious in base 10.  (Contributed by Mario
       Carneiro, 19-Apr-2015.) $)
    dec5nprm $p |- -. ; A 5 e. Prime $=
      ( c2 cmul co c1 caddc c5 cdc cn wcel 2nn nnmulcli peano2nn ax-mp 5nn 1nn0
      1lt2 nncni 5cn numlti 1lt5 cc0 mul32i 5t2e10 oveq1i eqtri mulid2i oveq12i
      mulcomli ax-1cn adddiri dfdec10 3eqtr4i nprmi ) CADEZFGEZHAHIZUPJKUQJKCAL
      BMZUPNOPAFFCLBQQRUAUBUPHDEZFHDEZGEFUCIZADEZHGEUQHDEURUTVCVAHGUTCHDEZADEVC
      CAHCLSZABSTUDVDVBADHCVBTVEUEUJUFUGHTUHUIUPFHUPUSSUKTULAHUMUNUO $.

    dec2nprm.2 $e |- B e. NN0 $.
    dec2nprm.3 $e |- ( B x. 2 ) = C $.
    $( Divisibility by two is obvious in base 10.  (Contributed by Mario
       Carneiro, 19-Apr-2015.) $)
    dec2nprm $p |- -. ; A C e. Prime $=
      ( c5 cmul co caddc c2 cdc cn wcel cn0 5nn nnmulcli c1 nncni 2cn mp2an 2nn
      nnnn0addcl 1nn0 1lt5 numlti cc0 mul32i 5t2e10 oveq1i eqtri oveq12i nn0cni
      1lt2 adddiri dfdec10 3eqtr4i nprmi ) GAHIZBJIZKACLZUSMNBONUTMNGAPDQZEUSBU
      CUAUBABRGPDEUDUEUFUNUSKHIZBKHIZJIRUGLZAHIZCJIUTKHIVAVCVFVDCJVCGKHIZAHIVFG
      AKGPSADSTUHVGVEAHUIUJUKFULUSBKUSVBSBEUMTUOACUPUQUR $.
  $}

  ${
    modxai.1 $e |- N e. NN $.
    modxai.2 $e |- A e. NN $.
    modxai.3 $e |- B e. NN0 $.
    modxai.4 $e |- D e. ZZ $.
    modxai.5 $e |- K e. NN0 $.
    modxai.6 $e |- M e. NN0 $.
    ${
      modxai.7 $e |- C e. NN0 $.
      modxai.8 $e |- L e. NN0 $.
      modxai.11 $e |- ( ( A ^ B ) mod N ) = ( K mod N ) $.
      modxai.12 $e |- ( ( A ^ C ) mod N ) = ( L mod N ) $.
      modxai.9 $e |- ( B + C ) = E $.
      modxai.10 $e |- ( ( D x. N ) + M ) = ( K x. L ) $.
      $( Add exponents in a power mod calculation.  (Contributed by Mario
         Carneiro, 21-Feb-2014.)  (Revised by Mario Carneiro, 5-Feb-2015.) $)
      modxai $p |- ( ( A ^ E ) mod N ) = ( M mod N ) $=
        ( cexp co cmo cmul caddc oveq2i wcel cn0 wceq nncni expadd mp3an eqtr3i
        cc oveq1i wtru cz nnexpcl mp2an nnzi a1i nn0zi crp nnrp ax-mp modmul12d
        cn trud zcn mulcli nn0cni addcomi eqtri cr nn0rei modcyc ) AEUBUCZIUDUC
        ABUBUCZACUBUCZUEUCZIUDUCZHIUDUCZVRWAIUDABCUFUCZUBUCZVRWAWDEAUBTUGAUOUHB
        UIUHZCUIUHZWEWAUJAKUKLPABCULUMUNUPWBHDIUEUCZUFUCZIUDUCZWCWBFGUEUCZIUDUC
        ZWJWBWLUJUQVSFVTGIVSURUHUQVSAVHUHZWFVSVHUHKLABUSUTVAVBFURUHUQFNVCVBVTUR
        UHUQVTWMWGVTVHUHKPACUSUTVAVBGURUHUQGQVCVBIVDUHZUQIVHUHWNJIVEVFZVBVSIUDU
        CFIUDUCUJUQRVBVTIUDUCGIUDUCUJUQSVBVGVIWKWIIUDWHHUFUCWKWIUAWHHDIDURUHZDU
        OUHMDVJVFIJUKVKHOVLVMUNUPVNHVOUHWNWPWJWCUJHOVPWOMHIDVQUMVNVN $.
    $}

    ${
      mod2xi.9 $e |- ( ( A ^ B ) mod N ) = ( K mod N ) $.
      mod2xi.7 $e |- ( 2 x. B ) = E $.
      mod2xi.8 $e |- ( ( D x. N ) + M ) = ( K x. K ) $.
      $( Double exponents in a power mod calculation.  (Contributed by Mario
         Carneiro, 21-Feb-2014.) $)
      mod2xi $p |- ( ( A ^ E ) mod N ) = ( M mod N ) $=
        ( c2 cmul co caddc nn0cni 2timesi eqtr3i modxai ) ABBCDEEFGHIJKLMJLNNQB
        RSBBTSDBBJUAUBOUCPUD $.
    $}

    ${
      modxp1i.9 $e |- ( ( A ^ B ) mod N ) = ( K mod N ) $.
      modxp1i.7 $e |- ( B + 1 ) = E $.
      modxp1i.8 $e |- ( ( D x. N ) + M ) = ( K x. A ) $.
      $( Add one to an exponent in a power mod calculation.  (Contributed by
         Mario Carneiro, 21-Feb-2014.) $)
      modxp1i $p |- ( ( A ^ E ) mod N ) = ( M mod N ) $=
        ( c1 1nn0 nnnn0i cexp co cmo wcel wceq nncni exp1 ax-mp oveq1i modxai
        cc ) ABQCDEAFGHIJKLMRAISNAQTUAZAGUBAUJUCUKAUDAIUEAUFUGUHOPUI $.
    $}
  $}

  ${
    mod2xnegi.1 $e |- A e. NN $.
    mod2xnegi.2 $e |- B e. NN0 $.
    mod2xnegi.3 $e |- D e. ZZ $.
    mod2xnegi.4 $e |- K e. NN $.
    mod2xnegi.5 $e |- M e. NN0 $.
    mod2xnegi.6 $e |- L e. NN0 $.
    mod2xnegi.10 $e |- ( ( A ^ B ) mod N ) = ( L mod N ) $.
    mod2xnegi.7 $e |- ( 2 x. B ) = E $.
    mod2xnegi.8 $e |- ( L + K ) = N $.
    mod2xnegi.9 $e |- ( ( D x. N ) + M ) = ( K x. K ) $.
    $( Version of ~ mod2xi with a negative mod value.  (Contributed by Mario
       Carneiro, 21-Feb-2014.) $)
    mod2xnegi $p |- ( ( A ^ E ) mod N ) = ( M mod N ) $=
      ( caddc co cmin cn cn0 wcel nn0nnaddcl mp2an eqeltrri cz zaddcl nn0addcli
      nnzi nnnn0i nn0zi zsubcl cmul nncni cc ax-mp addcli subdiri oveq1i mulcli
      nn0cni addsubi oveq2i adddii oveq12i adddiri addassi eqtr2i eqtr3i mulsub
      zcn mulcomi wceq mp4an subadd2i mpbir 3eqtr2i mod2xi ) ABHCSTZEESTZUATZDF
      GHFESTZHUBQFUCUDEUBUDWDUBUDNLFEUEUFUGZIJWAUHUDZWBUHUDWCUHUDHUHUDCUHUDZWFH
      WEUKKHCUIUFWBEEELULZWHUJUMWAWBUNUFNMOPWCHUOTZGSTWAHUOTZWBHUOTZUATZGSTWJGS
      TZWKUATZFFUOTZWIWLGSWAWBHHCHWEUPZWGCUQUDKCVMURZUSZEEELUPZWSUSZWPUTVAWJGWK
      WAHWRWPVBGMVCZWBHWTWPVBVDHHUOTZEEUOTZSTZHEUOTZXESTZUATZWNWOXBCHUOTZGSTZST
      ZHWBUOTZUATXGWNXJXDXKXFUAXIXCXBSRVEHEEWPWSWSVFVGXJWMXKWKUAWMXBXHSTZGSTXJW
      JXLGSHCHWPWQWPVHVAXBXHGHHWPWPVBCHWQWPVBXAVIVJHWBWPWTVNVGVKHEUATZXMUOTZXGW
      OHUQUDZEUQUDZXOXPXNXGVOWPWSWPWSHEHEVLVPXMFXMFUOXMFVOWDHVOQHEFWPWSFNVCVQVR
      ZXQVGVKVKVSVT $.
  $}

  ${
    modsubi.1 $e |- N e. NN $.
    modsubi.2 $e |- A e. NN $.
    modsubi.3 $e |- B e. NN0 $.
    modsubi.4 $e |- M e. NN0 $.
    modsubi.6 $e |- ( A mod N ) = ( K mod N ) $.
    modsubi.5 $e |- ( M + B ) = K $.
    $( Subtract from within a mod calculation.  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    modsubi $p |- ( ( A - B ) mod N ) = ( M mod N ) $=
      ( caddc co cmo cmin cr wcel wa wceq nn0rei cneg crp nnrei eqeltrri pm3.2i
      nn0addcli renegcli cn nnrp ax-mp modadd1 mp3an nncni nn0cni negsubi recni
      oveq1i subadd2i mpbir eqtri 3eqtr3i ) ABUAZLMZENMZCVBLMZENMZABOMZENMDENMA
      PQZCPQZRVBPQZEUBQZRAENMCENMSVDVFSVHVIAGUCDBLMZCPKVLDBIHUFTUDZUEVJVKBBHTUG
      EUHQVKFEUIUJUEJACVBEUKULVCVGENABAGUMBHUNZUOUQVEDENVECBOMZDCBCVMUPZVNUOVOD
      SVLCSKCBDVPVNDIUNURUSUTUQVA $.
  $}

  ${
    gcdi.1 $e |- K e. NN0 $.
    gcdi.2 $e |- R e. NN0 $.
    ${
      gcdi.3 $e |- N e. NN0 $.
      gcdi.5 $e |- ( N gcd R ) = G $.
      gcdi.4 $e |- ( ( K x. N ) + R ) = M $.
      $( Calculate a GCD via Euclid's algorithm.  (Contributed by Mario
         Carneiro, 19-Feb-2014.) $)
      gcdi $p |- ( M gcd N ) = G $=
        ( cgcd co cmul caddc nn0mulcli nn0cni cz wcel wceq nn0zi oveq2i gcdaddm
        addcomli mp3an cn0 numcl eqeltrri gcdcom mp2an 3eqtr4i eqtr3i ) EAKLZDE
        KLZBEACEMLZNLZKLZEDKLZULUMUODEKUNADUNCEFHOPAGPJUCUACQREQRZAQRULUPSCFTEH
        TZAGTCEAUBUDDQRURUMUQSDUNANLDUEJEACFHGUFUGTUSDEUHUIUJIUK $.
    $}

    ${
      gcdmodi.3 $e |- N e. NN $.
      gcdmodi.4 $e |- ( K mod N ) = ( R mod N ) $.
      gcdmodi.5 $e |- ( N gcd R ) = G $.
      $( Calculate a GCD via Euclid's algorithm.  Theorem 5.6 in [ApostolNT]
         p. 109.  (Contributed by Mario Carneiro, 19-Feb-2014.) $)
      gcdmodi $p |- ( K gcd N ) = G $=
        ( cgcd co cmo oveq1i cz wcel cn wceq nn0zi modgcd mp2an 3eqtr3i gcdcom
        nnzi 3eqtri ) CDJKZADJKZDAJKZBCDLKZDJKZADLKZDJKZUEUFUHUJDJHMCNODPOZUIUE
        QCERGCDSTANOZULUKUFQAFRZGADSTUAUMDNOUFUGQUNDGUCADUBTIUD $.
    $}
  $}

  ${
    decexp2.1 $e |- M e. NN0 $.
    decexp2.2 $e |- ( M + 2 ) = N $.
    $( Calculate a power of two.  (Contributed by Mario Carneiro,
       19-Feb-2014.) $)
    decexp2 $p |- ( ( 4 x. ( 2 ^ M ) ) + 0 ) = ( 2 ^ N ) $=
      ( c4 c2 cexp co cmul c1 caddc 2cn nn0cni wcel cn0 wceq expp1 mp2an ax-1cn
      3eqtr4i 2nn0 nn0expcli mulcli cc mulcomi eqtr2i oveq1i mulcomli peano2nn0
      cc0 decbin0 ax-mp 4nn0 nn0mulcli addid1i addassi df-2 oveq2i 3eqtr2ri ) E
      FAGHZIHZFAJKHZJKHZGHZVAUJKHFBGHFFUTIHZIHFVBGHZFIHZVAVDVEFVGFUTLUTFAUACUBZ
      MZUCLVEVFFIVFUTFIHZVEFUDNZAONZVFVJPLCFAQRUTFVILUEUFUGUHUTVHUKVKVBONZVDVGP
      LVLVMCAUIULFVBQRTVAVAEUTUMVHUNMUOBVCFGVCAJJKHZKHAFKHBAJJACMSSUPFVNAKUQURD
      USURT $.
  $}

  ${
    numexp.1 $e |- A e. NN0 $.
    $( Calculate an integer power.  (Contributed by Mario Carneiro,
       17-Apr-2015.) $)
    numexp0 $p |- ( A ^ 0 ) = 1 $=
      ( cc wcel cc0 cexp co c1 wceq nn0cni exp0 ax-mp ) ACDAEFGHIABJAKL $.

    $( Calculate an integer power.  (Contributed by Mario Carneiro,
       17-Apr-2015.) $)
    numexp1 $p |- ( A ^ 1 ) = A $=
      ( cc wcel c1 cexp co wceq nn0cni exp1 ax-mp ) ACDAEFGAHABIAJK $.

    numexpp1.2 $e |- M e. NN0 $.
    ${
      numexpp1.3 $e |- ( M + 1 ) = N $.
      numexpp1.4 $e |- ( ( A ^ M ) x. A ) = C $.
      $( Calculate an integer power.  (Contributed by Mario Carneiro,
         17-Apr-2015.) $)
      numexpp1 $p |- ( A ^ N ) = C $=
        ( c1 caddc co cexp cmul cc wcel cn0 wceq nn0cni expp1 mp2an 3eqtr3i
        oveq2i ) ACIJKZLKZACLKAMKZADLKBANOCPOUDUEQAERFACSTUCDALGUBHUA $.
    $}

    ${
      numexp2x.3 $e |- ( 2 x. M ) = N $.
      numexp2x.4 $e |- ( A ^ M ) = D $.
      numexp2x.5 $e |- ( D x. D ) = C $.
      $( Double an integer power.  (Contributed by Mario Carneiro,
         17-Apr-2015.) $)
      numexp2x $p |- ( A ^ N ) = C $=
        ( cexp co cmul caddc c2 nn0cni 2timesi eqtr3i wcel eqtri oveq2i cc wceq
        cn0 expadd mp3an oveq12i ) AEKLZADKLZUIMLZBUHADDNLZKLZUJEUKAKODMLEUKHDD
        GPQRUAAUBSDUDSZUMULUJUCAFPGGADDUEUFTUJCCMLBUICUICMIIUGJTT $.
    $}
  $}

  ${
    decsplit0.1 $e |- A e. NN0 $.
    $( Split a decimal number into two parts.  Base case: ` N = 0 ` .
       (Contributed by Mario Carneiro, 16-Jul-2015.)  (Revised by AV,
       8-Sep-2021.) $)
    decsplit0b $p |- ( ( A x. ( ; 1 0 ^ 0 ) ) + B ) = ( A + B ) $=
      ( c1 cc0 cdc cexp co cmul caddc 10nn0 numexp0 oveq2i nn0cni mulid1i eqtri
      oveq1i ) ADEFZEGHZIHZABJTADIHASDAIRKLMAACNOPQ $.

    $( Split a decimal number into two parts.  Base case: ` N = 0 ` .
       (Contributed by Mario Carneiro, 16-Jul-2015.)  (Revised by AV,
       8-Sep-2021.) $)
    decsplit0 $p |- ( ( A x. ( ; 1 0 ^ 0 ) ) + 0 ) = A $=
      ( c1 cc0 cdc cexp co cmul caddc decsplit0b nn0cni addid1i eqtri ) ACDEDFG
      HGDIGADIGAADBJAABKLM $.

    $( Split a decimal number into two parts.  Base case: ` N = 1 ` .
       (Contributed by Mario Carneiro, 16-Jul-2015.)  (Revised by AV,
       8-Sep-2021.) $)
    decsplit1 $p |- ( ( A x. ( ; 1 0 ^ 1 ) ) + B ) = ; A B $=
      ( c1 cc0 cdc cexp co cmul caddc 10nn0 numexp1 oveq2i nn0cni eqtr4i oveq1i
      mulcomi dfdec10 ) ADEFZDGHZIHZBJHSAIHZBJHABFUAUBBJUAASIHUBTSAISKLMSASKNAC
      NQOPABRO $.

    decsplit.2 $e |- B e. NN0 $.
    decsplit.3 $e |- D e. NN0 $.
    decsplit.4 $e |- M e. NN0 $.
    decsplit.5 $e |- ( M + 1 ) = N $.
    decsplit.6 $e |- ( ( A x. ( ; 1 0 ^ M ) ) + B ) = C $.
    $( Split a decimal number into two parts.  Inductive step.  (Contributed by
       Mario Carneiro, 16-Jul-2015.)  (Revised by AV, 8-Sep-2021.) $)
    decsplit $p |- ( ( A x. ( ; 1 0 ^ N ) ) + ; B D ) = ; C D $=
      ( cdc cexp co cmul caddc 10nn0 nn0mulcli nn0cni cc0 addassi adddii oveq2i
      c1 nn0expcli eqtr3i oveq1i mulcomi numexpp1 eqtri dfdec10 oveq12i 3eqtr4i
      mul12i ) UEUAMZAUPENOZPOZPOZUPBPOZDQOZQOZUPCPOZDQOZAUPFNOZPOZBDMZQOCDMUSU
      TQOZDQOVBVDUSUTDUSUPURRAUQGUPERJUFZSZSTUTUPBRHSTDITUBVHVCDQUPURBQOZPOVHVC
      UPURBUPRTZURVJTBHTUCVKCUPPLUDUGUHUGVFUSVGVAQVFAUPUQPOZPOUSVEVMAPUPVMEFRJK
      UQUPUQVITZVLUIUJUDAUPUQAGTVLVNUOUKBDULUMCDULUN $.
  $}

  ${
    decsplit0OLD.1 $e |- A e. NN0 $.
    $( Obsolete version of ~ decsplit0b as of 9-Sep-2021.  (Contributed by
       Mario Carneiro, 16-Jul-2015.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    decsplit0bOLD $p |- ( ( A x. ( 10 ^ 0 ) ) + B ) = ( A + B ) $=
      ( c10 cc0 cexp co cmul caddc 10nn0OLD numexp0 oveq2i nn0cni mulid1i eqtri
      c1 oveq1i ) ADEFGZHGZABISAPHGARPAHDJKLAACMNOQ $.

    $( Obsolete version of ~ decsplit0 as of 9-Sep-2021.  (Contributed by Mario
       Carneiro, 16-Jul-2015.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    decsplit0OLD $p |- ( ( A x. ( 10 ^ 0 ) ) + 0 ) = A $=
      ( c10 cc0 cexp co cmul caddc decsplit0bOLD nn0cni addid1i eqtri ) ACDEFGF
      DHFADHFAADBIAABJKL $.

    $( Obsolete version of ~ decsplit1 as of 9-Sep-2021.  (Contributed by Mario
       Carneiro, 16-Jul-2015.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    decsplit1OLD $p |- ( ( A x. ( 10 ^ 1 ) ) + B ) = ; A B $=
      ( c10 c1 cexp co cmul caddc 10nn0OLD numexp1 oveq2i nn0cni mulcomi eqtr4i
      cdc oveq1i dfdecOLD ) ADEFGZHGZBIGDAHGZBIGABPTUABITADHGUASDAHDJKLDADJMACM
      NOQABRO $.

    decsplitOLD.2 $e |- B e. NN0 $.
    decsplitOLD.3 $e |- D e. NN0 $.
    decsplitOLD.4 $e |- M e. NN0 $.
    decsplitOLD.5 $e |- ( M + 1 ) = N $.
    decsplitOLD.6 $e |- ( ( A x. ( 10 ^ M ) ) + B ) = C $.
    $( Obsolete version of ~ decsplit as of 9-Sep-2021.  (Contributed by Mario
       Carneiro, 16-Jul-2015.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    decsplitOLD $p |- ( ( A x. ( 10 ^ N ) ) + ; B D ) = ; C D $=
      ( c10 cexp co cmul caddc 10nn0OLD nn0cni wcel cdc cc cn0 mulcli nn0mulcli
      expcl mp2an addassi adddii oveq2i eqtr3i oveq1i mulcomi numexpp1 dfdecOLD
      mul12i eqtri oveq12i 3eqtr4i ) MAMENOZPOZPOZMBPOZDQOZQOZMCPOZDQOZAMFNOZPO
      ZBDUAZQOCDUAVBVCQOZDQOVEVGVBVCDMVAMRSZAUTAGSZMUBTEUCTUTUBTVLJMEUFUGZUDZUD
      VCMBRHUESDISUHVKVFDQMVABQOZPOVKVFMVABVLVOBHSUIVPCMPLUJUKULUKVIVBVJVDQVIAM
      UTPOZPOVBVHVQAPMVQEFRJKUTMVNVLUMUNUJAMUTVMVLVNUPUQBDUOURCDUOUS $.
  $}

  ${
    karatsuba.a $e |- A e. NN0 $.
    karatsuba.b $e |- B e. NN0 $.
    karatsuba.c $e |- C e. NN0 $.
    karatsuba.d $e |- D e. NN0 $.
    karatsuba.s $e |- S e. NN0 $.
    karatsuba.m $e |- M e. NN0 $.
    karatsuba.r $e |- ( A x. C ) = R $.
    karatsuba.t $e |- ( B x. D ) = T $.
    karatsuba.e $e |- ( ( A + B ) x. ( C + D ) ) = ( ( R + S ) + T ) $.
    karatsuba.x $e |- ( ( A x. ( ; 1 0 ^ M ) ) + B ) = X $.
    karatsuba.y $e |- ( ( C x. ( ; 1 0 ^ M ) ) + D ) = Y $.
    karatsuba.w $e |- ( ( R x. ( ; 1 0 ^ M ) ) + S ) = W $.
    karatsuba.z $e |- ( ( W x. ( ; 1 0 ^ M ) ) + T ) = Z $.
    $( The Karatsuba multiplication algorithm.  If ` X ` and ` Y ` are
       decomposed into two groups of digits of length ` M ` (only the lower
       group is known to be this size but the algorithm is most efficient when
       the partition is chosen near the middle of the digit string), then
       ` X Y ` can be written in three groups of digits, where each group needs
       only one multiplication.  Thus, we can halve both inputs with only three
       multiplications on the smaller operands, yielding an asymptotic
       improvement of n^(log_2 3) instead of n^2 for the "naive" algorithm
       ~ decmul1c .  (Contributed by Mario Carneiro, 16-Jul-2015.)  (Revised by
       AV, 9-Sep-2021.) $)
    karatsuba $p |- ( X x. Y ) = Z $=
      ( c1 cc0 cdc cexp co cmul caddc nn0cni wcel cn0 10nn0 expcl mp2an muladdi
      cc mulcli addcli add32i adddiri mul32i oveq1i eqtri mulassi wceq mulcomli
      oveq12i 3eqtr2i addcani mpbi 3eqtri 3eqtr3ri 3eqtr3i ) AUFUGUHZHUIUJZUKUJ
      ZBULUJZCVSUKUJZDULUJZUKUJZIVSUKUJZGULUJZJKUKUJLWDVTWBUKUJZDBUKUJZULUJVTDU
      KUJZWBBUKUJZULUJZULUJWGWKULUJZWHULUJWFVTBWBDAVSAMUMZVRUTUNHUOUNVSUTUNVRUP
      UMRVRHUQURZVAZBNUMZCVSCOUMZWNVAZDPUMZUSWGWHWKVTWBWOWRVADBWSWPVAZWIWJVTDWO
      WSVAWBBWRWPVAVBVCWLWEWHGULVTCUKUJZFULUJZVSUKUJXAVSUKUJZFVSUKUJZULUJWEWLXA
      FVSVTCWOWQVAFQUMZWNVDXBIVSUKXBEVSUKUJZFULUJIXAXFFULXAACUKUJZVSUKUJXFAVSCW
      MWNWQVEXGEVSUKSVFVGVFUDVGVFXCWGXDWKULVTCVSWOWQWNVHXDADUKUJZCBUKUJZULUJZVS
      UKUJXHVSUKUJZXIVSUKUJZULUJWKFXJVSUKXGWHULUJZFULUJZXMXJULUJZVIFXJVIXNEFULU
      JZGULUJZABULUJCDULUJUKUJXOXNXGFULUJZWHULUJXQXGWHFACWMWQVAZWTXEVCXRXPWHGUL
      XGEFULSVFBDGWPWSTVJZVKVGUAABCDWMWPWQWSUSVLXMFXJXGWHXSWTVBXEXHXIADWMWSVAZC
      BWQWPVAZVBVMVNVFXHXIVSYAYBWNVDXKWIXLWJULADVSWMWSWNVECBVSWQWPWNVEVKVOVKVPX
      TVKVOWAJWCKUKUBUCVKUEVQ $.
  $}

  ${
    karatsubaOLD.a $e |- A e. NN0 $.
    karatsubaOLD.b $e |- B e. NN0 $.
    karatsubaOLD.c $e |- C e. NN0 $.
    karatsubaOLD.d $e |- D e. NN0 $.
    karatsubaOLD.s $e |- S e. NN0 $.
    karatsubaOLD.m $e |- M e. NN0 $.
    karatsubaOLD.r $e |- ( A x. C ) = R $.
    karatsubaOLD.t $e |- ( B x. D ) = T $.
    karatsubaOLD.e $e |- ( ( A + B ) x. ( C + D ) ) = ( ( R + S ) + T ) $.
    karatsubaOLD.x $e |- ( ( A x. ( 10 ^ M ) ) + B ) = X $.
    karatsubaOLD.y $e |- ( ( C x. ( 10 ^ M ) ) + D ) = Y $.
    karatsubaOLD.w $e |- ( ( R x. ( 10 ^ M ) ) + S ) = W $.
    karatsubaOLD.z $e |- ( ( W x. ( 10 ^ M ) ) + T ) = Z $.
    $( Obsolete version of ~ karatsuba as of 9-Sep-2021.  (Contributed by Mario
       Carneiro, 16-Jul-2015.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    karatsubaOLD $p |- ( X x. Y ) = Z $=
      ( c10 cexp co cmul caddc nn0cni cc wcel cn0 10nn0OLD expcl mulcli muladdi
      mp2an addcli add32i adddiri mul32i eqtri mulassi mulcomli oveq12i 3eqtr2i
      oveq1i wceq addcani mpbi 3eqtri 3eqtr3ri 3eqtr3i ) AUFHUGUHZUIUHZBUJUHZCV
      PUIUHZDUJUHZUIUHZIVPUIUHZGUJUHZJKUIUHLWAVQVSUIUHZDBUIUHZUJUHVQDUIUHZVSBUI
      UHZUJUHZUJUHWDWHUJUHZWEUJUHWCVQBVSDAVPAMUKZUFULUMHUNUMVPULUMUFUOUKRUFHUPU
      SZUQZBNUKZCVPCOUKZWKUQZDPUKZURWDWEWHVQVSWLWOUQDBWPWMUQZWFWGVQDWLWPUQVSBWO
      WMUQUTVAWIWBWEGUJVQCUIUHZFUJUHZVPUIUHWRVPUIUHZFVPUIUHZUJUHWBWIWRFVPVQCWLW
      NUQFQUKZWKVBWSIVPUIWSEVPUIUHZFUJUHIWRXCFUJWRACUIUHZVPUIUHXCAVPCWJWKWNVCXD
      EVPUISVIVDVIUDVDVIWTWDXAWHUJVQCVPWLWNWKVEXAADUIUHZCBUIUHZUJUHZVPUIUHXEVPU
      IUHZXFVPUIUHZUJUHWHFXGVPUIXDWEUJUHZFUJUHZXJXGUJUHZVJFXGVJXKEFUJUHZGUJUHZA
      BUJUHCDUJUHUIUHXLXKXDFUJUHZWEUJUHXNXDWEFACWJWNUQZWQXBVAXOXMWEGUJXDEFUJSVI
      BDGWMWPTVFZVGVDUAABCDWJWMWNWPURVHXJFXGXDWEXPWQUTXBXEXFADWJWPUQZCBWNWMUQZU
      TVKVLVIXEXFVPXRXSWKVBXHWFXIWGUJADVPWJWPWKVCCBVPWNWMWKVCVGVMVGVNXQVGVMVRJV
      TKUIUBUCVGUEVO $.
  $}

  $( Two to the fourth power is 16.  (Contributed by Mario Carneiro,
     20-Apr-2015.) $)
  2exp4 $p |- ( 2 ^ 4 ) = ; 1 6 $=
    ( c2 c1 c6 cdc c4 2nn0 2t2e4 sq2 4t4e16 numexp2x ) ABCDEAEFFGHIJ $.

  $( Two to the sixth power is 64.  (Contributed by Mario Carneiro,
     20-Apr-2015.)  (Proof shortened by OpenAI, 25-Mar-2020.) $)
  2exp6 $p |- ( 2 ^ 6 ) = ; 6 4 $=
    ( c2 c6 c4 cdc c8 c3 2nn0 3nn0 3cn 2cn 3t2e6 mulcomli cu2 8t8e64 numexp2x )
    ABCDEFBGHFABIJKLMNO $.

  $( Two to the eighth power is 256.  (Contributed by Mario Carneiro,
     20-Apr-2015.) $)
  2exp8 $p |- ( 2 ^ 8 ) = ; ; 2 5 6 $=
    ( c2 c5 cdc c6 c1 c4 c8 2nn0 4nn0 nn0cni 2cn c9 1nn0 6nn0 9nn0 co 6cn caddc
    cmul c3 4t2e8 mulcomli 2exp4 deccl eqid mulid1i 1p1e2 9cn addcomli decaddci
    5nn0 9p6e15 mulid2i oveq1i 6p3e9 eqtri 6t6e36 decmul1c decmul2c numexp2x
    3nn0 ) AABCZDCEDCZFGHIFAGFIJKUAUBUCEDVBDVCLVCEDMNUDZMNVCUEZNOEDBAVCESPLMNOV
    CVCVDJUFUGUKLDEBCUHQULUIUJEDLDDTVCNMNVENVAEDSPZTRPDTRPLVFDTRDQUMUNUOUPUQURU
    SUT $.

  $( Two to the sixteenth power is 65536.  (Contributed by Mario Carneiro,
     20-Apr-2015.) $)
  2exp16 $p |- ( 2 ^ ; 1 6 ) = ; ; ; ; 6 5 5 3 6 $=
    ( c2 c6 c5 cdc c3 c8 c1 2nn0 5nn0 deccl 6nn0 eqid 1nn0 caddc co cc0 decaddi
    3nn0 0nn0 cmul 8nn0 8cn 2cn 8t2e16 mulcomli 2exp8 c4 4nn0 dec0h 0p1e1 1p2e3
    decadd 3p1e4 8p5e13 addcomli decaddc 4p1e5 2t2e4 1p1e2 oveq12i 4p2e6 5t2e10
    5cn eqtri addid2i decmac 6t2e12 3cn 3p2e5 oveq2i 5t5e25 decma2c 6cn decrmac
    5p3e8 6t5e30 6t6e36 decmul1c decmul2c numexp2x ) ABCDZCDZEDZBDACDZBDZFGBDZH
    UAFAWFUBUCUDUEUFWDBWCBWEGCDZEDZWEWDBACHIJZKJZWIKWELZKWGEGCMIJZRJACWGEWEWBEG
    ADZFDZWDWHHIWLRWDLZWHLWJRWMFGAMHJZUAJWDBGUGDZEAWACGWEWGWNNOWIKGUGMUHJRWKGCW
    MFWQEWGWNMIWPUAWGLWNLGEUGGWMNOGMRMPGGAGEGWMSMMHGMUIWMLUJUKULUMQRFCGEDUBVCUN
    UOUPHIMACGCABCGWDWQGNOHIMIWOGUGCWQGMUHMWQLUQQHIMAATOZGGNOZNOUGANOBWRUGWSANU
    RUSUTVAVDGPCCATOCMSIVBCVCVEQVFGACBATOEMHRVGEACVHUCVIUOZQVFWDBPECWNEEWEEWIKS
    RWKERUIZIRRACPECWMFAWDPENOZHISRWOXBEPEDEVHVEZXAVDIUAHACTOZPANOZNOXDANOWMXEA
    XDNAUCVEZVJGPAXDAMSHCAGPDVCUCVBUEXFQVDACFCCTOEHIRVKVOQVFEPEBCTOERSRVPXCQVFV
    LWDBWHBBEWEKWIKWKKRACBWGEEWDEHIRWOKRRGACABTOEMHRBAWMVMUCVGUEWTQEPECBTOERSRB
    CEPDVMVCVPUEXCQVNVQVRVSVT $.

  $( Three to the third power is 27.  (Contributed by Mario Carneiro,
     20-Apr-2015.) $)
  3exp3 $p |- ( 3 ^ 3 ) = ; 2 7 $=
    ( c3 c2 c7 cdc 3nn0 2nn0 2p1e3 cexp co cmul c9 oveq1i 9t3e27 eqtri numexpp1
    sq3 ) ABCDZBAEFGABHIZAJIKAJIQRKAJPLMNO $.

  ${
    $d n x $.  $d x N $.
    $( The factorial grows faster than two to the power ` N ` .  (Contributed
       by Mario Carneiro, 15-Sep-2016.) $)
    2expltfac $p |- ( N e. ( ZZ>= ` 4 ) -> ( 2 ^ N ) < ( ! ` N ) ) $=
      ( c2 cexp co cfa cfv clt wbr c1 c4 wceq oveq2 fveq2 breq12d wcel a1i cmul
      cn nnred remulcld vx vn cv c6 caddc 2exp4 syl6eq fac4 1nn0 2nn0 6nn0 4nn0
      cdc cz 6lt10 1lt2 decltc cuz 2nn 4nn simpl eluznn sylancr nnnn0d nnexpcld
      wa cr 2re faccld 1red readdcld crp 2rp simpr ltmul1dd nn0ge0d df-2 nnge1d
      cle leadd1dd syl5eqbr lemul2ad ltletrd 2cnd expp1d cn0 syl 3brtr4d uzind4
      facp1 ex ) BUAUCZCDZWLEFZGHIUDUMZBJUMZGHZBUBUCZCDZWREFZGHZBWRIUEDZCDZXBEF
      ZGHZBACDZAEFZGHUAUBJAWLJKZWMWOWNWPGXHWMBJCDWOWLJBCLUFUGXHWNJEFWPWLJEMUHUG
      NWLWRKWMWSWNWTGWLWRBCLWLWREMNWLXBKWMXCWNXDGWLXBBCLWLXBEMNWLAKWMXFWNXGGWLA
      BCLWLAEMNWQJUNOIBUDJUIUJUKULUOUPUQPWRJURFOZXAXEXIXAVFZWSBQDZWTXBQDZXCXDGX
      JXKWTBQDXLXJWSBXJWSXJBWRBROXJUSPXJWRXJJROXIWRROUTXIXAVAWRJVBVCZVDZVESZBVG
      OXJVHPZTXJWTBXJWTXJWRXNVIZSZXPTXJWTXBXRXJWRIXJWRXMSZXJVJZVKZTXJWSWTBXOXRB
      VLOXJVMPXIXAVNVOXJBXBWTXPYAXRXJWTXJWTXQVDVPXJBIIUEDXBVSVQXJIWRIXTXSXTXJWR
      XMVRVTWAWBWCXJBWRXJWDXNWEXJWRWFOXDXLKXNWRWJWGWHWKWI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cyclical shifts of words (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d L i j k $.  $d V i j k $.  $d W i j k $.
    $( If cyclically shifting a word of length being a prime number by a number
       of positions which is not divisible by the prime number results in the
       word itself, the word is a "repeated symbol word".  (Contributed by AV,
       18-May-2018.)  (Revised by AV, 10-Nov-2018.) $)
    cshwsidrepsw $p |- ( ( W e. Word V /\ ( # ` W ) e. Prime )
         -> ( ( L e. ZZ /\ ( L mod ( # ` W ) ) =/= 0 /\ ( W cyclShift L ) = W )
                          -> W = ( ( W ` 0 ) repeatS ( # ` W ) ) ) ) $=
      ( vi vj vk wcel cfv wa cmo co cc0 wceq w3a cmul caddc adantr adantl cn0
      cv cword chash cprime cz wne ccsh creps cfzo wral wrex simpr simp1 simpr2
      3jca modprmn0modprm0 sylc elfzonn0 ad2antrr simpl simpr3 anim1i cshweqrep
      wi anim12i weq oveq1 oveq2d oveq1d fveq2d eqeq2d rspcva syl2anc rexlimiva
      fveq2 eqtrd ex mpcom ralrimiva wb repswsymballbi mpbird ) CBUAGZCUBHZUCGZ
      IZAUDGZAWCJKLUEZCAUFKCMZNZCLCHZWCUGKMZWEWIIZWKDTZCHZWJMZDLWCUHKZUIZWLWODW
      PWMETZAOKZPKZWCJKZLMZEWPUJZWLWMWPGZIZWOXEWDWFWGNZXDXCWLXFXDWLWDWFWGWEWDWI
      WBWDUKQWIWFWEWFWGWHULZRWEWFWGWHUMUNQWLXDUKWCEWMAUOUPXBXEWOVCEWPWRWPGZXBIZ
      XEWOXIXEIZWNXACHZWJXJWRSGZWNWMFTZAOKZPKZWCJKZCHZMZFSUIZWNXKMZXHXLXBXEWRWC
      UQURXJWBWFIZWHXDIZXSXEYAXIWLYAXDWEWBWIWFWBWDUSXGVDQRXEYBXIWLWHXDWEWFWGWHU
      TVARFWMABCVBUPXRXTFWRSFEVEZXQXKWNYCXPXACYCXOWTWCJYCXNWSWMPXMWRAOVFVGVHVIV
      JVKVLXIXKWJMZXEXBYDXHXALCVNRQVOVPVMVQVRWBWKWQVSWDWIDBCVTURWAVP $.
  $}

  $( If cyclically shifting a word of length being a prime number results in
     the word itself, the shift must be either by 0 (modulo the length of the
     word) or the word must be a "repeated symbol word".  (Contributed by AV,
     18-May-2018.)  (Revised by AV, 10-Nov-2018.) $)
  cshwsidrepswmod0 $p |- ( ( W e. Word V /\ ( # ` W ) e. Prime /\ L e. ZZ )
                        -> ( ( W cyclShift L ) = W -> ( ( L mod ( # ` W ) ) = 0
                                \/ W = ( ( W ` 0 ) repeatS ( # ` W ) ) ) ) ) $=
    ( cword wcel chash cfv cprime cz w3a ccsh co wceq cmo cc0 creps wo wi orc
    wa 2a1d wne 3simpa ad2antlr simplr3 simpll simpr cshwsidrepsw syl13anc olcd
    imp exp31 pm2.61ine ) CBDEZCFGZHEZAIEZJZCAKLCMZAUONLZOMZCOCGUOPLMZQZRRUTOVA
    VCURUSVAVBSUAUTOUBZURUSVCVDURTZUSTZVBVAVFUNUPTZUQVDUSVBURVGVDUSUNUPUQUCUDUN
    UPUQVDUSUEVDURUSUFVEUSUGVGUQVDUSJVBABCUHUKUIUJULUM $.

  ${
    $d L i j $.  $d V i j $.  $d W i j $.  $d ph i j $.
    cshwshash.0 $e |- ( ph -> ( W e. Word V /\ ( # ` W ) e. Prime ) ) $.
    $( If cyclically shifting a word of length being a prime number not
       consisting of identical symbols by at least one position (and not by as
       many positions as the length of the word), the result will not be the
       word itself.  (Contributed by AV, 19-May-2018.)  (Revised by AV,
       8-Jun-2018.)  (Revised by AV, 10-Nov-2018.) $)
    cshwshashlem1 $p |- ( ( ph /\ E. i e. ( 0 ..^ ( # ` W ) )
                          ( W ` i ) =/= ( W ` 0 ) /\ L e. ( 1 ..^ ( # ` W ) ) )
                           -> ( W cyclShift L ) =/= W ) $=
      ( cfv cc0 wne co wcel w3a wi wceq wn wa ex a1d syl sylbi cv chash cfzo c1
      wrex ccsh wral df-ne rexbii rexnal bitri w3o simpll fzo0ss1 fzossfz sstri
      cfz sseli ad2antlr simpr creps cword cprime wo cz adantr cshwsidrepswmod0
      cmo elfzelz adantl syl3anc fzofzim zmodidfzoimp eqtr2 expcom com24 impcom
      3imp 3adant3 orcd pm2.61ine df-3or sylibr 3mix3 mpcom syl3an1 3mix1 3mix2
      olc jaoi wb repswsymballbi 3ad2ant1 biimpa 3mix3d 3jaoi cn clt wbr elfzo1
      nnne0 pm2.21 com12 cr nnre sylan eqcom syl5bi 3adant2 pm2.24d exp31 com34
      ltne ax-1 com23 ) ABUAEGZHEGZIZBHEUBGZUCJZUEZCUDXSUCJZKZLZECUFJZEIZMYEEYD
      YEENZYFAYAYCYGYFMZYAXPXQNZBXTUGZOZAYCYHMYAYIOZBXTUEYKXRYLBXTXPXQUHUIYIBXT
      UJUKAYCYKYHAYCYGYKYFAYCYGYKYFMAYCPZYGPZYJYFCHNZCXSNZYJULZYNYJYNACHXSUQJZK
      ZYGYQAYCYGUMYCYSAYGYBYRCYBXTYRXSUNHXSUOUPURUSYMYGUTYOYPEXQXSVAJNZULZAYSYG
      LZYQAEDVBKZXSVCKZPZYSYGUUAFCXSVHJZHNZYTVDZUUEYSYGLZUUAUUEYSYGUUHUUEYSYGUU
      HMZUUEYSPUUCUUDCVEKZUUJUUCUUDYSUMUUEUUDYSUUCUUDUTVFYSUUKUUECHXSVIVJCDEVGV
      KQVRUUGUUIUUAMYTUUGUUIUUAUUGUUIPZYOYPVDZYTVDUUAUULUUMYTUULUUMMCXSYPUUMUUL
      YPYOWIRCXSIZUULUUMUUNUULPYOYPUULUUNYOUUIUUGUUNYOMZUUEYSUUGUUOMZYGYSUUEUUP
      YSUUNUUGUUEYOUUNYSUUGUUEYOMZMZUUNYSPCXTKZUURCXSVLUUSUUFCNZUURCXSVMUUTUUGU
      UQUUTUUGPYOUUEUUFCHVNRQSSVOVPVQVSVQVQVTQWAVTYOYPYTWBWCQYTUUAUUIYTYOYPWDRW
      JWEWFYOUUBYQMYPYTYOYQUUBYOYPYJWGRYPYQUUBYPYOYJWHRUUBYTYQUUBYTPYJYOYPUUBYT
      YJAYSYTYJWKZYGAUUEUVAFUUCUVAUUDBDEWLVFSWMWNWOVOWPWEVKYOYNYJMYPYJYNYOYJYCY
      OYJMZAYGYCCWQKZXSWQKZCXSWRWSZLZUVBXSCWTZUVCUVDUVBUVEUVCCHIZUVBCXAUVHYOOUV
      BCHUHYOYJXBTSWMTUSXCYNYPYJYCYPYJMZAYGYCUVFUVIUVGUVCUVEUVIUVDUVCUVEPXSCIZU
      VIUVCCXDKUVEUVJCXECXSXMXFUVJXSCNZOZUVIXSCUHYPUVKUVLYJCXSXGUVKYJXBXHTSXITU
      SXCYJYNXNWPWEXJXKXLXOXHVRXCYFYDXNWA $.

    $d K i $.
    $( If cyclically shifting a word of length being a prime number and not of
       identical symbols by different numbers of positions, the resulting words
       are different.  (Contributed by Alexander van der Vekens, 19-May-2018.)
       (Revised by Alexander van der Vekens, 8-Jun-2018.) $)
    cshwshashlem2 $p |- ( ( ph /\ E. i e. ( 0 ..^ ( # ` W ) )
         ( W ` i ) =/= ( W ` 0 ) ) -> ( ( L e. ( 0 ..^ ( # ` W ) )
                                       /\ K e. ( 0 ..^ ( # ` W ) ) /\ K < L )
                              -> ( W cyclShift L ) =/= ( W cyclShift K ) ) ) $=
      ( cc0 co wa wcel clt wbr ccsh wi adantl 3ad2ant1 cr cz 3adant3 cv cfv wne
      chash cfzo wrex w3a wceq caddc oveq1 eqcomd ad2antrr cword cfz cle cprime
      cmin simpld adantr elfzofz 3ad2ant2 fznn0sub2 syl cn0 cn elfzo0 zre nn0re
      nnre resubcl syl2anr readdcld jca ex elfzoelz syl11 sylbi imp fzonmapblen
      ltle sylc simpl elfzelz syl3anc syl13anc 2cshwid sylan2 syl2an 3eqtr3d c1
      simplrl simplrr 3simpa nnz nn0z zsubcl anim2i ancoms zaddcl elnn0z simplr
      2cshw wb posdif biimp3a addgegt0d com12 sylanbrc simp2bi elfzo1 syl3anbrc
      elnnz cshwshashlem1 pm2.21ddne 2a1 pm2.61ine ) ABUAFUBHFUBUCBHFUDUBZUEIZU
      FZJZDXRKZCXRKZCDLMZUGZFDNIZFCNIZUCZOZOYEYFYEYFUHZXTYHYIXTJZYDYGYJYDJZYGFC
      XQDUQIZUIIZNIZFYKYFYLNIZYEYLNIZYNFYIYOYPUHXTYDYIYPYOYEYFYLNUJUKULYKFEUMKZ
      CHXQUNIZKZYLYRKZYMXQUOMZYOYNUHZYJYQYDXTYQYIAYQXSAYQXQUPKGURUSPZUSYDYSYJYB
      YAYSYCCHXQUTVAPYDYTYJYAYBYTYCYADYRKZYTDHXQUTZDXQVBVCQPYDUUAYJYDYMRKZXQRKZ
      JZYMXQLMZUUAYAYBUUHYCYAYBUUHYADVDKZXQVEKZDXQLMZUGZYBUUHOZDXQVFZUUJUUKUUNU
      ULCSKZUUJUUKJZUUHYBUUPUUQUUHUUPUUQJZUUFUUGUURCYLUUPCRKZUUQCVGZUSUUQYLRKZU
      UPUUKUUGDRKZUVAUUJXQVIZDVHZXQDVJVKZPVLUUQUUGUUPUUKUUGUUJUVCPPVMVNCHXQVOZV
      PTVQVRTDCXQVSZYMXQVTWAPYQYSYTUUAUGZJYQUUPYLSKZUUBYQUVHWBUVHUUPYQYSYTUUPUU
      ACHXQWCQPUVHUVIYQYTYSUVIUUAYLHXQWCVAPCYLEFXBWDWEYJYQUUDYPFUHZYDUUCYAYBUUD
      YCUUEQUUDYQDSKZUVJDHXQWCDEFWFWGWHWIYKAXSYMWJXQUEIKZYNFUCYIAXSYDWKYIAXSYDW
      LYDUVLYJYDYMVEKZUUKUUIUVLYDYMSKZHYMLMZUVMYAYBUVNYCYAUUQUUPUVNYBYAUUMUUQUU
      OUUJUUKUULWMVQUVFUUQUUPJUUPUVIJZUVNUUPUUQUVPUUQUVIUUPUUKXQSKUVKUVIUUJXQWN
      DWOXQDWPVKWQWRCYLWSVCWHTYAYBUVOYCYAYBUVOYAUUMYBUVOOUUOYBUUMUVOYBCVDKZUUKC
      XQLMZUGUUMUVOOZCXQVFUVQUUKUVSUVRUVQUUPHCUOMZJZUVSCWTUWAUUMUVOUWAUUMJCYLUU
      PUUSUVTUUMUUTULUUMUVAUWAUUJUUKUVAUULUVETPUUPUVTUUMXAUUMHYLLMZUWAUUJUUKUUL
      UWBUUJUVBUUGUULUWBXCUUKUVDUVCDXQXDWHXEPXFVNVQQVQXGVQVRTYMXLXHYAYBUUKYCYAU
      UJUUKUULUUOXIQUVGXQYMXJXKPABYMEFGXMWDXNVNVNYGXTYDXOXP $.

    $( If cyclically shifting a word of length being a prime number and not of
       identical symbols by different numbers of positions, the resulting words
       are different.  (Contributed by Alexander van der Vekens, 19-May-2018.)
       (Revised by Alexander van der Vekens, 8-Jun-2018.) $)
    cshwshashlem3 $p |- ( ( ph /\ E. i e. ( 0 ..^ ( # ` W ) )
         ( W ` i ) =/= ( W ` 0 ) ) -> ( ( L e. ( 0 ..^ ( # ` W ) )
                                       /\ K e. ( 0 ..^ ( # ` W ) ) /\ K =/= L )
                              -> ( W cyclShift L ) =/= ( W cyclShift K ) ) ) $=
      ( cc0 cfv co wcel wne w3a wa ccsh wi clt wbr cr elfzoelz chash cfzo cv wo
      wrex wb zred lttri2 syl2anr cshwshashlem2 3expia imp necomd expcom ancoms
      com12 jaod sylbid 3impia ) DHFUAIZUBJZKZCVAKZCDLZMABUCFIHFILBVAUENZFDOJZF
      COJZLZVBVCVDVEVHPZVBVCNZVDCDQRZDCQRZUDZVIVCCSKDSKVDVMUFVBVCCCHUTTUGVBDDHU
      TTUGCDUHUIVJVKVIVLVBVCVKVIVEVBVCVKMVHABCDEFGUJUPUKVCVBVLVIPVCVBVLVIVEVCVB
      VLMZVHVEVNNVGVFVEVNVGVFLABDCEFGUJULUMUNUKUOUQURUSUP $.

    $d i n $.  $d j n $.  $d ph n $.  $d W n $.
    $( The singletons resulting by cyclically shifting a given word of length
       being a prime number and not consisting of identical symbols is a
       disjoint collection.  (Contributed by Alexander van der Vekens,
       19-May-2018.)  (Revised by Alexander van der Vekens, 8-Jun-2018.) $)
    cshwsdisj $p |- ( ( ph /\ E. i e. ( 0 ..^ ( # ` W ) )
                              ( W ` i ) =/= ( W ` 0 ) )
                   -> Disj_ n e. ( 0 ..^ ( # ` W ) ) { ( W cyclShift n ) } ) $=
      ( vj cv cfv cc0 wne chash cfzo co wrex wa ccsh csn wral wcel weq cin wceq
      c0 wo wdisj wi orc a1d simprl simprrl simprrr biimpi adantr cshwshashlem3
      necom w3a imp syl13anc disjsn2 syl olcd pm2.61ine ralrimivva oveq2 disjor
      ex sneqd sylibr ) ABHEIJEIKBJELIMNZOPZCGUAZECHZQNZRZEGHZQNZRZUBUDUCZUEZGV
      JSCVJSCVJVOUFVKVTCGVJVJVKVMVJTZVPVJTZPZPZVTUGVMVPVLVTWDVLVSUHUIVMVPKZWDVT
      WEWDPZVSVLWFVNVQKZVSWFVKWAWBVPVMKZWGWEVKWCUJWEVKWAWBUKWEVKWAWBULWEWHWDWEW
      HVMVPUPUMUNVKWAWBWHUQWGABVPVMDEFUOURUSVNVQUTVAVBVGVCVDVJVOVRCGVLVNVQVMVPE
      QVEVHVFVI $.
  $}

  ${
    $d V n w $.  $d W n w $.
    cshwrepswhash1.m $e |- M = { w e. Word V | E. n e. ( 0 ..^ ( # ` W ) )
                                               ( W cyclShift n ) = w } $.
    $( The set of (different!) words resulting by cyclically shifting a given
       word is an indexed union.  (Contributed by AV, 19-May-2018.)  (Revised
       by AV, 8-Jun-2018.)  (Proof shortened by AV, 8-Nov-2018.) $)
    cshwsiun $p |- ( W e. Word V
                  -> M = U_ n e. ( 0 ..^ ( # ` W ) ) { ( W cyclShift n ) } ) $=
      ( cword wcel cv ccsh co wceq cc0 wrex cab wa eqcom biimpi reximi adantl
      chash cfv cfzo crab csn ciun df-rab cshwcl eleq1 syl5ibrcom rexlimdva imp
      adantr jca ex impbid2 velsn bicomi a1i rexbidv bitrd abbidv syl5eq df-iun
      wb 3eqtr4g ) EDGZHZEBIZJKZAIZLZBMEUAUBUCKZNZAVGUDZVKVJUEZHZBVMNZAOZCBVMVP
      UFVHVOVKVGHZVNPZAOVSVNAVGUGVHWAVRAVHWAVKVJLZBVMNZVRVHWAWCVNWCVTVLWBBVMVLW
      BVJVKQRSTVHWCWAVHWCPVTVNVHWCVTVHWBVTBVMVHVIVMHZPVTWBVJVGHZVHWEWDVIDEUHUMV
      KVJVGUIUJUKULWCVNVHWBVLBVMWBVLVKVJQRSTUNUOUPVHWBVQBVMWBVQVEVHVQWBAVJUQURU
      SUTVAVBVCFBAVMVPVDVF $.

    $( The class of (different!) words resulting by cyclically shifting a given
       word is a set.  (Contributed by AV, 8-Jun-2018.)  (Revised by AV,
       8-Nov-2018.) $)
    cshwsex $p |- ( W e. Word V -> M e. _V ) $=
      ( cword wcel cc0 chash cfv cfzo co cv ccsh csn ciun cvv cshwsiun wral a1i
      ovex snex ralrimivw iunexg sylancr eqeltrd ) EDGHZCBIEJKZLMZEBNOMZPZQZRAB
      CDEFSUHUJRHULRHZBUJTUMRHIUILUBUHUNBUJUNUHUKUCUAUDBUJULRRUEUFUG $.

    $( The size of the set of (different!) words resulting by cyclically
       shifting an empty word is 0.  (Contributed by AV, 8-Nov-2018.) $)
    cshws0 $p |- ( W = (/) -> ( # ` M ) = 0 ) $=
      ( c0 wceq chash cfv cc0 cv ccsh co cfzo wrex crab cvv wcel syl6eq hasheq0
      cword wb 0ex eleq1 mpbiri bicomd syl ibi oveq2d fzo0 rexeqdv rabbidv wral
      wn rex0 a1i ralrimivw rabeq0 sylibr eqtrd syl5eq fveq2d hash0 ) EGHZCIJGI
      JKVECGIVECEBLMNALHZBKEIJZONZPZADUBZQZGFVEVKVFBGPZAVJQZGVEVIVLAVJVEVFBVHGV
      EVHKKONGVEVGKKOVEVGKHZVEERSZVEVNUCVEVOGRSUDEGRUEUFVOVNVEERUAUGUHUIUJKUKTU
      LUMVEVLUOZAVJUNVMGHVEVPAVJVPVEVFBUPUQURVLAVJUSUTVAVBVCVDT $.

    $d A i n u w $.  $d M r $.  $d N i n u w $.  $d V n r u w $.  $d W i r u $.
    $( The size of the set of (different!) words resulting by cyclically
       shifting a nonempty "repeated symbol word" is 1.  (Contributed by AV,
       18-May-2018.)  (Revised by AV, 8-Nov-2018.) $)
    cshwrepswhash1 $p |- ( ( A e. V /\ N e. NN /\ W = ( A repeatS N ) )
                           -> ( # ` M ) = 1 ) $=
      ( vr vu vi wcel co wceq cv ccsh cc0 wrex wi wa cn creps w3a chash cfv csn
      c1 wex cfzo cword crab wreu weq wral wb nnnn0 repsdf2 sylan2 simp1 adantl
      cn0 eleq1 eqcoms lbfzo0 biimpri syl6bi 3ad2ant2 com12 imp cshw0 syl oveq2
      eqeq1d rspcev syl2anc eqeq2 rexbidv ex sylbid 3impia repsw 3adant3 oveq1d
      simpll3 cz ad2antrr elfzoelz repswcshw syl3anc biimpd rexlimdva ralrimiva
      eqtrd eqeq1 imbi2d ralbidv reu7 sylanbrc reusn sylib eqeq1i exbii cshwsex
      sylibr cvv 3ad2ant1 hash1snb mpbird ) BFLZEUALZGBEUBMZNZUCZDUDUEUGNZDIOUF
      ZNZIUHZXMGCOZPMZAOZNZCQGUDUEZUIMZRZAFUJZUKZXONZIUHZXQXMYDAYEULZYHXMYDAYER
      ZXSJOZNZCYCRZAJUMZSZJYEUNZAYERZYIXIXJXLYJXIXJTZXLGYELZYBENZKOGUEBNKQEUIMU
      NZUCZYJXJXIEVALZXLUUBUOEUPZBKEFGUQURZYRUUBYJYRUUBTZYSXSGNZCYCRZYJUUBYSYRY
      SYTUUAUSUTZUUFQYCLZGQPMZGNZUUHYRUUBUUJXJUUBUUJSXIUUBXJUUJYTYSXJUUJSUUAYTX
      JYBUALZUUJXJUUMUOEYBEYBUAVBVCUUJUUMYBVDVEVFVGVHUTVIUUFYSUULUUIFGVJVKUUGUU
      LCQYCXRQNXSUUKGXRQGPVLVMVNVOYDUUHAGYEXTGNYAUUGCYCXTGXSVPVQVNVOVRVSVTXMXKY
      ELZYMXKYKNZSZJYEUNZYQXIXJUUNXLXJXIUUCUUNUUDBEFWAURWBXMUUPJYEXMYKYELZTZYLU
      UOCYCUUSXRYCLZTZYLUUOUVAXSXKYKUVAXSXKXRPMZXKUVAGXKXRPXIXJXLUURUUTWDWCUVAX
      IUUCXRWELZUVBXKNXMXIUURUUTXIXJXLUSWFXMUUCUURUUTXJXIUUCXLUUDVGWFUUTUVCUUSX
      RQYBWGUTBXREFWHWIWMVMWJWKWLYPUUQAXKYEXTXKNZYOUUPJYEUVDYNUUOYMXTXKYKWNWOWP
      VNVOYDYMAJYEYNYAYLCYCXTYKXSVPVQWQWRYDAIYEWSWTXPYGIDYFXOHXAXBXDXMDXELZXNXQ
      UOXIXJXLUVEYRXLUUBUVEUUEYSYTUVEUUAACDFGHXCXFVFVTDXEIXGVKXH $.

    $d V i $.
    $( If a word (not consisting of identical symbols) has a length being a
       prime number, the size of the set of (different!) words resulting by
       cyclically shifting the original word equals the length of the original
       word.  (Contributed by AV, 19-May-2018.)  (Revised by AV,
       10-Nov-2018.) $)
    cshwshashnsame $p |- ( ( W e. Word V /\ ( # ` W ) e. Prime )
                       -> ( E. i e. ( 0 ..^ ( # ` W ) ) ( W ` i ) =/= ( W ` 0 )
                            -> ( # ` M ) = ( # ` W ) ) ) $=
      ( wcel chash cfv wa cv cc0 co wceq ccsh csu cfn c1 cmul cword cprime cfzo
      wne wrex csn ciun cshwsiun ad2antrr fveq2d fzofi a1i id cshwsdisj hashiun
      snfi cvv ovex hashsng mp1i sumeq2sdv cc 1cnd fsumconst sylancr cn0 adantr
      lencl hashfzo0 syl oveq1d cr prmnn nnred adantl ax-1rid 3eqtrd eqtrd ex )
      FEUAHZFIJZUBHZKZBLFJMFJUDBMWAUCNZUEZDIJZWAOWCWEKZWFCWDFCLZPNZUFZUGZIJWDWJ
      IJZCQZWAWGDWKIVTDWKOWBWEACDEFGUHUIUJWGCWDWJWDRHZWGMWAUKZULWJRHWGWHWDHKWIU
      PULWCBCEFWCUMUNUOWGWMWDSCQZWAWGWDWLSCWIUQHWLSOWGFWHPURWIUQUSUTVAWCWPWAOWE
      WCWPWDIJZSTNZWASTNZWAWCWNSVBHWPWROWOWCVCWDSCVDVEWCWQWASTWCWAVFHZWQWAOVTWT
      WBEFVHVGWAVIVJVKWCWAVLHZWSWAOWBXAVTWBWAWAVMVNVOWAVPVJVQVGVRVQVS $.

    $( If a word has a length being a prime number, the size of the set of
       (different!) words resulting by cyclically shifting the original word
       equals the length of the original word or 1.  (Contributed by AV,
       19-May-2018.)  (Revised by AV, 10-Nov-2018.) $)
    cshwshash $p |- ( ( W e. Word V /\ ( # ` W ) e. Prime )
                      -> ( ( # ` M ) = ( # ` W ) \/ ( # ` M ) = 1 ) ) $=
      ( vi cv cfv cc0 wceq chash co wcel wa c1 adantr syl6com wn wrex cfzo wral
      cword cprime wo wi creps wb repswsymballbi cn cle wbr prmnn nnge1d sylan2
      wrdsymb1 ad2antlr cshwrepswhash1 syl3anc ex sylbird olc wne rexnal bicomi
      simpr df-ne rexbii bitr3i cshwshashnsame orc sylbi pm2.61i ) GHEIZJEIZKZG
      JELIZUAMZUBZEDUCNZVQUDNZOZCLIZVQKZWCPKZUEZUFZWBVSWEWFWBVSEVOVQUGMKZWEVTWH
      VSUHWAGDEUIQWBWHWEWBWHOVODNZVQUJNZWHWEWBWIWHWAVTPVQUKULWIWAVQVQUMZUNDEUPU
      OQWAWJVTWHWKUQWBWHVFAVOBCVQDEFURUSUTVAWEWDVBRVSSZVNVOVCZGVRTZWGWLVPSZGVRT
      WNVPGVRVDWOWMGVRWMWOVNVOVGVEVHVIWBWNWDWFAGBCDEFVJWDWEVKRVLVM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Specific prime numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d N x $.
    prmlem0.1 $e |- ( ( -. 2 || M /\ x e. ( ZZ>= ` M ) ) ->
            ( ( x e. ( Prime \ { 2 } ) /\ ( x ^ 2 ) <_ N ) -> -. x || N ) ) $.
    prmlem0.2 $e |- ( K e. Prime -> -. K || N ) $.
    prmlem0.3 $e |- ( K + 2 ) = M $.
    $( Lemma for ~ prmlem1 and ~ prmlem2 .  (Contributed by Mario Carneiro,
       18-Feb-2014.) $)
    prmlem0 $p |- ( ( -. 2 || K /\ x e. ( ZZ>= ` K ) ) ->
            ( ( x e. ( Prime \ { 2 } ) /\ ( x ^ 2 ) <_ N ) -> -. x || N ) ) $=
      ( c2 cdvds wbr wn cuz cfv wcel wa cprime co wi c1 caddc cv wceq cdif cexp
      csn cle eldifi eleq1 breq1 notbid imbi12d mpbiri syl5 adantrd a1i wo uzp1
      wb adantl eldifsn cz eluzel2 simpl 1z n2dvds1 opoe mpanr12 syl2anc adantr
      wne 2z uzid dvdsprm sylan mpbid eqcomd a1d necon3ad expimpd syl5bi sylbid
      mp1i ex cc zcnd ax-1cn addass syl 1p1e2 oveq2i eqtri syl6eq fveq2d eleq2d
      mp3an23 dvdsaddr sylancr breq2i syl6bb mtbid jaod mpjaod ) HBIJZKZAUAZBLM
      NZOZXEBUBZXEPHUEZUCZNZXEHUDQDUFJZOXEDIJZKZRZXEBSTQZLMNZXHXORXGXHXKXNXLXKX
      EPNZXHXNXEPXIUGXHXRXNRBPNZBDIJZKZRFXHXRXSXNYAXEBPUHXHXMXTXEBDIUIUJUKULUMU
      NUOXQXEXPUBZXEXPSTQZLMZNZUPXGXOXPXEUQXGYBXOYEXGYBXOXGYBOZXKXNXLYFXKXPXJNZ
      XNYBXKYGURXGXEXPXJUHUSXGYGXNRYBYGXPPNZXPHVJZOXGXNXPPHUTXGYHYIXNXGYHOZXMXP
      HYJXPHUBXMYJHXPYJHXPIJZHXPUBZXGYKYHXGBVANZXDYKXFYMXDBXEVBUSZXDXFVCZYMXDOS
      VANHSIJKYKVDVEBSVFVGVHVIXGHHLMNZYHYKYLURHVANZYPXGVKHVLWBXPHVMVNVOVPVQVRVS
      VTVIWAUNWCXGYEXECLMZNZXOXGYDYRXEXGYCCLXGYCBSSTQZTQZCXGBWDNZYCUUAUBZXGBYNW
      EUUBSWDNZUUDUUCWFWFBSSWGWOWHUUABHTQZCYTHBTWIWJGWKWLWMWNXGHCIJZKZYSXORXGXC
      UUFYOXGXCHUUEIJZUUFXGYQYMXCUUHURVKYNHBWPWQUUECHIGWRWSWTUUGYSXOEWCWHWAXAUM
      XFXHXQUPXDBXEUQUSXB $.
  $}

  ${
    $d N x $.
    prmlem1.n $e |- N e. NN $.
    prmlem1.gt $e |- 1 < N $.
    prmlem1.2 $e |- -. 2 || N $.
    prmlem1.3 $e |- -. 3 || N $.
    ${
      prmlem1a.x $e |- ( ( -. 2 || 5 /\ x e. ( ZZ>= ` 5 ) ) ->
        ( ( x e. ( Prime \ { 2 } ) /\ ( x ^ 2 ) <_ N ) -> -. x || N ) ) $.
      $( A quick proof skeleton to show that the numbers less than 25 are
         prime, by trial division.  (Contributed by Mario Carneiro,
         18-Feb-2014.) $)
      prmlem1a $p |- N e. Prime $=
        ( cprime wcel c2 cuz cfv wbr cdvds wn wi cn c1 mpbir2an c3 cv cexp wral
        co cle clt eluz2b2 wceq breq1 notbid imbi2d wne wa prmnn adantr eldifsn
        csn cdif n2dvds1 a1i 3p2e5 prmlem0 1nprm pm2.21i 1p2e3 mpan nnuz eleq2s
        c5 expd syl5bir mpcom 2a1i pm2.61ne rgen isprm5 ) BHIBJKLIZAUAZJUBUDBUE
        MZVRBNMZOZPZAHUCVQBQIRBUFMCDBUGSWBAHVRHIZWBVSJBNMZOZPVRJVRJUHZWAWEVSWFV
        TWDVRJBNUIUJUKVRQIZWCVRJULZUMZWBWCWGWHVRUNUOWIVRHJUQURIZWGWBVRHJUPWGWJV
        SWAWJVSUMWAPZVRRKLZQJRNMOVRWLIWKUSARTBATVIBGTBNMOTHIFUTVAVBRHIRBNMOVCVD
        VEVBVFVGVHVJVKVLWEWCVSEVMVNVOABVPS $.
    $}

    prmlem1.lt $e |- N < ; 2 5 $.
    $( A quick proof skeleton to show that the numbers less than 25 are prime,
       by trial division.  (Contributed by Mario Carneiro, 18-Feb-2014.) $)
    prmlem1 $p |- N e. Prime $=
      ( vx c5 wcel c2 cexp co cle wbr wa cdvds wn wi clt cr cuz cfv cprime cdif
      cv csn eluzelre resqcld eluzle cc0 5re 5nn0 nn0ge0i mpanl12 syl2anc nnrei
      le2sq2 resqcli w3a cdc cmul 5cn sqvali 5t5e25 eqtri breqtrri ltletr mpani
      mp3an12 sylc wb ltnle sylancr mpbid pm2.21d adantld adantl prmlem1a ) GAB
      CDEGUEZHUAUBIZVSUCJUFUDIZVSJKLZAMNZOVSAPNQZRJHPNQVTWCWDWAVTWCWDVTAWBSNZWC
      QZVTWBTIZHJKLZWBMNZWEVTVSHVSUGZUHZVTVSTIZHVSMNZWIWJHVSUIHTIUJHMNWLWMOWIUK
      HULUMHVSUQUNUOATIZWHTIZWGWIWERABUPZHUKURWNWOWGUSAWHSNWIWEAJHUTZWHSFWHHHVA
      LWQHVBVCVDVEVFAWHWBVGVHVIVJVTWNWGWEWFVKWPWKAWBVLVMVNVOVPVQVR $.
  $}

  $( 5 is a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.)
     (Revised by Mario Carneiro, 20-Apr-2015.) $)
  5prm $p |- 5 e. Prime $=
    ( c5 5nn 1lt5 c2 c1 2nn 2nn0 cmul co caddc c4 2t2e4 oveq1i df-5 eqtr4i 1lt2
    1nn ndvdsi c3 5nn0 3nn 1nn0 3t1e3 3p2e5 eqtri 2lt3 5lt10 declti prmlem1 ) A
    BCDADEFGQDDHIZEJIKEJIAUJKEJLMNOPRSAEDUAUBFSEHIZDJISDJIAUKSDJUCMUDUEUFRDAAFT
    TUGUHUI $.

  $( 6 is not a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.) $)
  6nprm $p |- -. 6 e. Prime $=
    ( c3 c2 c6 3nn 2nn 1lt3 1lt2 3t2e6 nprmi ) ABCDEFGHI $.

  $( 7 is a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.)
     (Revised by Mario Carneiro, 20-Apr-2015.) $)
  7prm $p |- 7 e. Prime $=
    ( c7 7nn 1lt7 c2 c3 c1 2nn 3nn0 1nn cmul co caddc 3cn 2cn 3t2e6 oveq1i df-7
    c6 eqtr4i ndvdsi mulcomli 1lt2 3nn 2nn0 1lt3 5nn0 7nn0 7lt10 declti prmlem1
    c5 ) ABCDAEFGHIDEJKZFLKRFLKZAULRFLEDRMNOUAPQSUBTEADFUCUDIEDJKZFLKUMAUNRFLOP
    QSUETDUKAGUFUGUHUIUJ $.

  $( 8 is not a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.) $)
  8nprm $p |- -. 8 e. Prime $=
    ( c4 c2 c8 4nn 2nn 1lt4 1lt2 4t2e8 nprmi ) ABCDEFGHI $.

  $( 9 is not a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.) $)
  9nprm $p |- -. 9 e. Prime $=
    ( c3 c9 3nn 1lt3 3t3e9 nprmi ) AABCCDDEF $.

  $( 10 is not a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.)
     (Revised by AV, 6-Sep-2021.) $)
  10nprm $p |- -. ; 1 0 e. Prime $=
    ( c5 c2 c1 cc0 cdc 5nn 2nn 1lt5 1lt2 5t2e10 nprmi ) ABCDEFGHIJK $.

  $( Obsolete version of ~ 10nprm as of 6-Sep-2021.  (Contributed by Mario
     Carneiro, 18-Feb-2014.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  10nprmOLD $p |- -. 10 e. Prime $=
    ( c5 c2 c10 5nn 2nn 1lt5 1lt2 5t2e10OLD nprmi ) ABCDEFGHI $.

  $( 11 is a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.)
     (Revised by Mario Carneiro, 20-Apr-2015.) $)
  11prm $p |- ; 1 1 e. Prime $=
    ( c1 cdc 1nn0 1nn decnncl 1lt10 declti cc0 0nn0 c2 mul02i 1e0p1 dec2dvds c3
    2cn 3nn 3nn0 co caddc c9 cmul 3t3e9 oveq1i 9p2e11 eqtri 2lt3 ndvdsi c5 2nn0
    2nn 5nn0 1lt2 decltc prmlem1 ) AABZAACDEAAADCCFGAHHACIJOKLMNUONJPQUJNNUARZJ
    SRTJSRUOUPTJSUBUCUDUEUFUGAJAUHCUICUKFULUMUN $.

  $( 13 is a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.)
     (Revised by Mario Carneiro, 20-Apr-2015.) $)
  13prm $p |- ; 1 3 e. Prime $=
    ( c1 c3 cdc 1nn0 3nn decnncl 1nn 3nn0 1lt10 declti c2 mulid2i df-3 dec2dvds
    2cn c4 4nn0 cmul co 2nn0 4cn 3cn 4t3e12 mulcomli decsuc 1lt3 ndvdsi c5 5nn0
    2p1e3 3lt10 1lt2 decltc prmlem1 ) ABCZABDEFABAGHDIJAAKBDDKOLMNBUOPAEQGAKBBP
    RSDTUJPBAKCUAUBUCUDUEUFUGAKBUHDTHUIUKULUMUN $.

  $( 17 is a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.)
     (Revised by Mario Carneiro, 20-Apr-2015.) $)
  17prm $p |- ; 1 7 e. Prime $=
    ( c1 c7 cdc 1nn0 7nn decnncl 1nn 7nn0 1lt10 declti c3 c6 3nn0 df-7 dec2dvds
    3t2e6 c5 c2 5nn0 2nn0 3nn 2nn cmul co 5cn 3cn 5t3e15 mulcomli 5p2e7 decaddi
    2lt3 ndvdsi 7lt10 1lt2 decltc prmlem1 ) ABCZABDEFABAGHDIJAKLBDMPNOKUQQRUASU
    BAQBKQUCUDRDSTQKAQCUEUFUGUHUIUJUKULARBQDTHSUMUNUOUP $.

  $( 19 is a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.)
     (Revised by Mario Carneiro, 20-Apr-2015.) $)
  19prm $p |- ; 1 9 e. Prime $=
    ( c1 c9 cdc 1nn0 9nn decnncl 1nn 9nn0 1lt10 declti c4 c8 4nn0 df-9 dec2dvds
    4t2e8 c3 c6 3nn 6nn0 cmul co 8nn0 8p1e9 6cn 3cn 6t3e18 mulcomli decsuc 1lt3
    ndvdsi c2 c5 2nn0 5nn0 9lt10 1lt2 decltc prmlem1 ) ABCZABDEFABAGHDIJAKLBDMP
    NOQUTRASTGALBQRUAUBDUCUDRQALCUEUFUGUHUIUJUKAULBUMDUNHUOUPUQURUS $.

  $( 23 is a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.)
     (Revised by Mario Carneiro, 20-Apr-2015.) $)
  23prm $p |- ; 2 3 e. Prime $=
    ( c2 c3 cdc 2nn0 3nn decnncl c1 2nn 3nn0 1nn0 1lt10 declti mulid2i dec2dvds
    nncni df-3 c7 7nn0 cmul co 7cn 7t3e21 mulcomli 1p2e3 decaddi 2lt3 ndvdsi c5
    5nn 3lt5 declt prmlem1 ) ABCZABDEFABGHIJKLAGABDJAAHOMPNBUMQAERHAGBBQSTADJDQ
    BAGCUABEOUBUCUDUEUFUGABUHDIUIUJUKUL $.

  ${
    $d x N $.
    prmlem2.n $e |- N e. NN $.
    prmlem2.lt $e |- N < ; ; 8 4 1 $.
    prmlem2.gt $e |- 1 < N $.
    prmlem2.2 $e |- -. 2 || N $.
    prmlem2.3 $e |- -. 3 || N $.
    prmlem2.5 $e |- -. 5 || N $.
    prmlem2.7 $e |- -. 7 || N $.
    prmlem2.11 $e |- -. ; 1 1 || N $.
    prmlem2.13 $e |- -. ; 1 3 || N $.
    prmlem2.17 $e |- -. ; 1 7 || N $.
    prmlem2.19 $e |- -. ; 1 9 || N $.
    prmlem2.23 $e |- -. ; 2 3 || N $.
    $( Our last proving session got as far as 25 because we started with the
       two "bootstrap" primes 2 and 3, and the next prime is 5, so knowing that
       2 and 3 are prime and 4 is not allows us to cover the numbers less than
       ` 5 ^ 2 = 2 5 ` .  Additionally, nonprimes are "easy", so we can extend
       this range of known prime/nonprimes all the way until 29, which is the
       first prime larger than 25.  Thus, in this lemma we extend another
       blanket out to ` 2 9 ^ 2 = 8 4 1 ` , from which we can prove even more
       primes.  If we wanted, we could keep doing this, but the goal is
       Bertrand's postulate, and for that we only need a few large primes - we
       don't need to find them all, as we have been doing thus far.  So after
       this blanket runs out, we'll have to switch to another method (see
       ~ 1259prm ).

       As a side note, you can see the pattern of the primes in the indentation
       pattern of this lemma!  (Contributed by Mario Carneiro, 18-Feb-2014.)
       (Proof shortened by Mario Carneiro, 20-Apr-2015.) $)
    prmlem2 $p |- N e. Prime $=
      ( c5 c9 c1 c2 wcel wbr 2nn0 vx c7 cdc c3 cuz cfv cprime csn cdif cexp cle
      cv co wa cdvds wn wi clt cr eluzelre resqcld eluzle cc0 9nn0 deccl nn0rei
      nn0ge0i le2sq2 mpanl12 syl2anc nnrei resqcli w3a c8 c4 cmul nn0cni sqvali
      c6 eqid 1nn0 6nn0 5nn0 8nn0 caddc 2timesi 2p2e4 oveq1i 4p1e5 eqtri 9p9e18
      decaddc 5p2e7 7p1e8 8p6e14 9t2e18 1p1e2 8p8e16 decaddci decmul2c decmul1c
      4nn0 9t9e81 breqtrri ltletr mpani mp3an12 sylc wb sylancr pm2.21d adantld
      ltnle mpbid adantl 9nn 3nn 1lt9 1lt3 9t3e27 nprmi pm2.21i decaddi prmlem0
      7nn0 7p2e9 5nn 1lt5 5t5e25 a1i 3nn0 3p2e5 1lt7 7t3e21 1p2e3 9p2e11 5t3e15
      7nn 9nprm prmlem1a ) UAABDEFUANUBAUAUBOAUAOPPUCZAUAUUAPUDUCZAUAUUBPNUCZAU
      AUUCPUBUCZAUAUUDPOUCZAUAUUEQPUCZAUAUUFQUDUCZAUAUUGQNUCZAUAUUHQUBUCZAUAUUI
      QOUCZAUAULZUUJUEUFRZUUKUGQUHUIRZUUKQUJUMZAUKSZUNUUKAUOSUPZUQQUUJUOSUPUULU
      UOUUPUUMUULUUOUUPUULAUUNURSZUUOUPZUULUUNUSRZUUJQUJUMZUUNUKSZUUQUULUUKUUJU
      UKUTZVAZUULUUKUSRZUUJUUKUKSZUVAUVBUUJUUKVBUUJUSRVCUUJUKSUVDUVEUNUVAUUJQOT
      VDVEZVFZUUJUVFVGUUJUUKVHVIVJAUSRZUUTUSRZUUSUVAUUQUQABVKZUUJUVGVLUVHUVIUUS
      VMAUUTURSUVAUUQAVNVOUCZPUCZUUTURCUUTUUJUUJVPUMUVLUUJUUJUVFVQZVRQOUVKPUUJQ
      VSUCZUUJUVFTVDUUJVTZWAQVSTWBVENVNQVSVNVOQUUJVPUMZUVNWCWDTWBUVPUUJUUJWEUMN
      VNUCUUJUVMWFQOQONVNUUJUUJTVDTVDUVOUVOQQWEUMZPWEUMVOPWEUMNUVQVOPWEWGWHWIWJ
      WDWKWLWJUVNVTNQWEUMZPWEUMUBPWEUMVNUVRUBPWEWMWHWNWJXBWOWLQOUVNPOVNUUJVDTVD
      UVOWAWDPVNVSQOQVPUMVNWAWDWDWPWQWBWRWSXCWTXAWJXDAUUTUUNXEXFXGXHUULUVHUUSUU
      QUURXIUVJUVCAUUNXMXJXNXKXLXOUUIUGRUUIAUOSUPOUDUUIXPXQXRXSXTYAYBQUBOUUIQTY
      ETUUIVTYFYCYDUUHUGRUUHAUOSUPNNUUHYGYGYHYHYIYAYBQNUBUUHQTWCTUUHVTWMYCYDUUG
      AUOSUPUUGUGRMYJQUDNUUGQTYKTUUGVTYLYCYDUUFUGRUUFAUOSUPUBUDUUFYRXQYMXSYNYAY
      BQPUDUUFQTWATUUFVTYOYCYDUUEAUOSUPUUEUGRLYJPOPQUUEQWAVDTUUEVTWQWAYPWSYDUUD
      AUOSUPUUDUGRKYJPUBOUUDQWAYETUUDVTYFYCYDUUCUGRUUCAUOSUPNUDUUCYGXQYHXSYQYAY
      BPNUBUUCQWAWCTUUCVTWMYCYDUUBAUOSUPUUBUGRJYJPUDNUUBQWAYKTUUBVTYLYCYDUUAAUO
      SUPUUAUGRIYJPPUDUUAQWAWATUUAVTYOYCYDOUGROAUOSUPYSYBYPYDUBAUOSUPUBUGRHYJYF
      YDNAUOSUPNUGRGYJWMYDYT $.
  $}

  $( 37 is a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.)
     (Proof shortened by Mario Carneiro, 20-Apr-2015.) $)
  37prm $p |- ; 3 7 e. Prime $=
    ( c3 c7 cdc 3nn0 decnncl c8 c4 c1 4nn0 7nn0 1nn0 3nn c6 c2 2nn0 cmul co cc0
    caddc ndvdsi 8nn0 deccl 7lt10 3lt10 declti decltc 1lt10 3t2e6 df-7 dec2dvds
    7nn 8nn 1nn 6nn0 6p1e7 eqid 3cn mulid1i oveq1i addid1i eqtri dec0h decmul2c
    0nn0 decsuc 1lt3 2nn 2lt5 dec5dvds2 c5 5nn0 7t5e35 decaddi 2lt7 4nn mulid2i
    5p2e7 nncni 4p3e7 addcomli decrmanc 4lt10 decmul1 2p1e3 declt 0p1e1 oveq12i
    2cn decadd 7t2e14 decmac c9 9nn 9nn0 1p1e2 9p8e17 decaddc 8lt9 1lt2 prmlem2
    ) ABCZABDUKEAFGCBHDFGUAIUBJKUCFGAULIDUDUEUFABHLJKUGUEAAMBDDUHUIUJAXAHNCZHLH
    NKOUBUMAMBAXBPQDUNUOHNAMARXBDKOXBUPUNVDAHPQZRSQARSQAXCARSAUQURUSAUQUTVAANPQ
    MRMCUHMUNVBVAVCVEVFTANBDVGVHVQVIBXAVJNUKVKVGAVJBBVJPQNDVKOVLVQVMVNTHHCZXAAG
    HHKUMEZDVOHHAABXDGKKIXDUPZDAUQVPZHAPQZGSQAGSQBXHAGSXGUSGABGVOVRUQVSVTZVAWAH
    HGUMKIWBUETHACZXANXDHAKLEOXENMHHABXJNPQXDOUNKKHANMNXJOKDXJUPUNNWHVPZUHWCXFW
    DUOWIHHAKKLVFWETHBCZXANAHBKUKEOLHBRANABHXLAKJVDDXLUPADVBOJKHNPQZRHSQZSQNHSQ
    ZAXMNXNHSXKWFWGWDVAHGBBNPQAKIDWJVSVMWKHBAUMJDUDUETHWLCZXAHHFCZHWLKWMEZKHFKU
    LEHWLHFABXPHPQXQKWNKUAXPXPXRVRURXQUPHHSQZHSQXOAXSNHSWOUSWDVAJWPWQHFWLKUAWMW
    RWETNACZXAHHGCZNAOLEZKHGKVOENAHGABXTHPQYAODKIXTXTYBVRURYAUPWDXIWIHNGAKOIDWB
    WSUFTWT $.

  $( 43 is a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.)
     (Proof shortened by Mario Carneiro, 20-Apr-2015.) $)
  43prm $p |- ; 4 3 e. Prime $=
    ( c4 c3 cdc 4nn0 c1 3nn0 1nn0 c2 1nn 0nn0 eqid cmul co caddc 2nn0 ndvdsi c7
    cc0 c9 c5 3nn decnncl c8 8nn0 deccl 3lt10 8nn 4lt10 declti decltc 4nn 1lt10
    2cn mulid2i dec2dvds dec0h mulid1i ax-1cn addid2i oveq12i 3p1e4 eqtri 2p1e3
    df-3 3cn 4cn 4t3e12 mulcomli decsuc decma2c 1lt3 3lt5 dec5dvds c6 6nn0 1lt7
    7t6e42 decnncl2 addid1i oveq1i 3eqtri decmac 0lt1 declt 3t3e9 9p4e13 nnnn0i
    7nn 9nn 2p2e4 7t2e14 1p1e2 nncni addcomli 9lt10 5nn 9t2e18 8p5e13 5lt10 2nn
    decaddci decadd 3pos prmlem2 ) ABCZABDUAUBAUCACBEDUCAUDDUEFGUFUCAAUGDDUHUIU
    JABEUKFGULUIAEHBDGHUMUNZVDUOBXEEACZEUAEAGDUEIEAREBABEXGEGDJGXGKEGUPFFGBELMZ
    RENMZNMBENMZAXHBXIENBVEUQEURUSZUTVAVBEHBBALMGOVCABEHCVFVEVGVHVIVJVKPABDUAVL
    VMQXEVNEWHVOIAHBQVNLMDOVCVQVIVPPEECZXEBERCZEEGIUBFEIVREEERBABRXLXMGGGJXLKXM
    KFFJEBLMZERNMZNMXJAXNBXOENBVEUNZEURVSUTVAVBXNRNMBRNMBRBCXNBRNXPVTBVEVSZBFUP
    WAWBEREGJIWCWDPEBCZXEBAEBGUAUBFUKEBRABABEXRAGFJDXRKADUPFFGXNXINMXJAXNBXIENX
    PXKUTVAVBBBLMZANMSANMXRXSSANWEVTWFVBWBEBAIFDUHUIPEQCZXEHSEQGWHUBOWIEQRSHABH
    XTSGQWHWGZJSWIWGZXTKSYBUPOFOEHLMZRHNMZNMHHNMAYCHYDHNXFHUMUSUTWJVBZEABHQHLMS
    GDYBWKWLFSAXRSWIWMVFWFWNXAWBEQSIYAYBWOUIPESCZXEHTESGWIUBOWPESRTHABHYFTGYBJT
    WPWGZYFKTYGUPOFOYEEUCBHSHLMTGUDYGWQWLFWRXAWBESTIYBYGWSUIPHBCZXEEHRCZHBOUAUB
    ZGHWTVRHBHRABYHELMYIOFOJYHYHYJWMUQYIKWJXQXBHRBOJUAXCWDPXD $.

  $( 83 is a prime number.  (Contributed by Mario Carneiro, 18-Feb-2014.)
     (Proof shortened by Mario Carneiro, 20-Apr-2015.) $)
  83prm $p |- ; 8 3 e. Prime $=
    ( c8 c3 cdc 8nn0 decnncl c4 c1 4nn0 3nn0 1nn0 c2 c7 2nn0 7nn0 cmul co caddc
    c6 eqtri c5 3nn deccl 3lt10 8nn 8lt10 declti decltc 1lt10 2cn df-3 dec2dvds
    mulid2i 2nn cc0 0nn0 eqid dec0h 3t2e6 addid2i oveq12i 6p2e8 nn0cni mulcomli
    3cn 7t3e21 decaddi decma2c 2lt3 ndvdsi 3lt5 dec5dvds 7nn 6nn nnnn0i mulid1i
    1p2e3 ax-1cn 7p1e8 oveq1i 7p6e13 6lt7 1nn nncni mulcomi 6lt10 5nn 6cn 1p1e2
    6t3e18 8p5e13 decaddci decmac 5lt10 3p1e4 addcomli 4p4e8 7t4e28 2p1e3 declt
    5lt7 c9 9nn 9nn0 9t4e36 7lt10 4nn 3t3e9 9p4e13 4lt10 1lt2 prmlem2 ) ABCZABD
    UAEAAFCBGDAFDHUBIJUCAFAUDHDUEUFUGABGUDIJUHUFAGKBDJKUIULUJUKBXLKLCZKUAKLMNUB
    UMKLUNKBABKXMKMNUOMXMUPKMUQIIMBKOPZUNKQPZQPRKQPZAXNRXOKQURKUIUSZUTVASKGBBLO
    PKMJMLBKGCLNVBZVDVEVCVPVFVGVHVIABDUAVJVKLXLGGCZRVLGGJJUBVMGGUNRLABGXSRJJUOR
    VMVNZXSUPRXTUQNIJLGOPZUNGQPZQPLGQPAYALYBGQLXRVOZGVQUSUTVRSYARQPLRQPGBCZYALR
    QYCVSVTSVGZWAVIXSXLLRGGJWBEZNVMXSLOPZRQPLXSOPZRQPXLYGYHRQXSLXSYFWCXRWDVSYES
    GGRWBJXTWEUFVIYDXLRTGBJUAEXTWFGBUNTRABKYDTJIUOTWFVNZYDUPTYIUQXTIMGROPZXOQPX
    PAYJRXOKQRWGULXQUTVASGABKBROPTJDYIRBGACWGVDWIVCWHIWJWKWLGBTWBIYIWMUFVIGLCZX
    LFGTCZGLJVLEHGTJWFEGLGTFABBYKYLJNJYIYKUPYLUPHIIGFOPZGBQPZQPFFQPZAYMFYNFQFFH
    VBZULZBGFVDVQWNWOUTWPSKABBLFOPTMDYIWQWRIWJWKWLGTLJYIVLWTWSVIGXACZXLFLGXAJXB
    EHVLGXAUNLFABFYRLJXCUONYRUPLNUQHIHYMUNFQPZQPYOAYMFYSFQYQFYPUSUTWPSBRBFXAFOP
    LIXTNXDWNILRYDXRWGVTWOWKWLGXALWBXCNXEUFVIKBCZXLBGFCZKBMUAEIGFJXFEKBGFBABGYT
    UUAMIJHYTUPUUAUPIIJKBOPZGGQPZQPXPAUUBRUUCKQBKRVDUIURVCWHUTVASBBOPZFQPXAFQPY
    DUUDXAFQXGVSXHSWLGKFBJMHIXIXJUGVIXK $.

  $( 139 is a prime number.  (Contributed by Mario Carneiro, 19-Feb-2014.)
     (Proof shortened by Mario Carneiro, 20-Apr-2015.) $)
  139prm $p |- ; ; 1 3 9 e. Prime $=
    ( c1 c3 cdc c9 1nn0 3nn0 c8 c4 9nn0 c6 6nn0 0nn0 cmul co caddc c2 2nn0 7nn0
    cc0 c7 deccl 9nn decnncl 8nn0 4nn0 1lt8 3lt10 9lt10 3decltc 3nn 1lt10 4t2e8
    declti df-9 dec2dvds 1nn eqid dec0h ax-1cn addid2i oveq2i nn0cni 3cn 4t3e12
    2p1e3 mulcomli decsuc eqtri 8p1e9 6t3e18 decma2c 1lt3 ndvdsi 4nn 4lt5 5p4e9
    dec5dvds2 7nn 6nn 7cn mulid1i oveq12i 7p6e13 9cn 9t7e63 6p3e9 addcomli 6lt7
    decaddi 2cn nncni 1p2e3 mulid2i 00id oveq1i 7p2e9 3eqtri decmac 7lt10 10nn0
    addid1i mul01i 5nn0 8cn 5cn 8p5e13 8t7e56 6lt10 6t2e12 decrmac 2nn prmlem2
    c5 ) ABCZDCZXNDABEFUAZUBUCAGBHDAEUDFUEIEUFUGUHUIXNDAABEUJUCZIEUKUMXNHGDXPUE
    ULUNUOBXOHJCZAUJHJUEKUAUPHJSABXNDAXRAUEKLEXRUQAEURFIEBHMNZSAONZONXSAONXNXTA
    XSOAUSUTVAAPBXSEQVEHBAPCZHUEVBVCVDVFVGVHAGDBJMNEUDVIJBAGCJKVBZVCVJVFVGZVKVL
    VMXNHDXPVNVOVPVQTXOADCZJVRADEIUAVSADSJTXNDJYDJEILKYDUQZJKURZRIKTAMNZSJONZON
    TJONZXNYGTYHJOTVTWAJYBUTZWBWCVHJBDTDMNJKFKDTJBCWDVTWEVFJBDYBVCWFWGZWIVKWHVM
    AACZXOYATAAEUPUCZAPEQUAVRAPSTYLXNDPYATEQLRYAUQTRURZAAEEUAIQYLAMNZSPONZONYOP
    ONXNYPPYOOPWJUTVAAABYOPEEQYLYLYMWKWAWLWIVHAASTPPDSYLTEELRYLUQYNQILAPMNZSSON
    ZONPSONPYQPYRSOPWJWMZWNWBPWJXAVHYQTONPTONDSDCZYQPTOYSWOTPDVTWJWPWGDIURZWQWR
    VKAATUPERWSUMVMXNXOASCZDXQWTUBASSDXNXNDSUUBDELLIUUBUQUUAXPILABSSAABSXNYREFL
    LXNUQYRSSSCWNSLURVHEFLAAMNZYRONASONAUUCAYRSOAUSWAWNWBAUSXAVHBAMNZSONBSONBSB
    CUUDBSOBVCWAWOBVCXABFURZWQWRXNSMNZDONSDONDYTUUFSDOXNXNXPVBXBWODWDUTUUAWQVKA
    BDUPFIUHUMVMATCZXOGBATEVRUCUDUJATSBGXNDXMUUGBERLFUUGUQUUEUDIXCAGMNZSXMONZON
    GXMONXNUUHGUUIXMOGXDWMXMXEUTWBXFVHXMJDTGMNBXCKFGTXMJCXDVTXGVFWFWIWRATBUPRFU
    GUMVMYDXOTJADEUBUCRVSADSJTXNDJYDJEILKYEYFRIKATMNZYHONYIXNUUJTYHJOTVTWMYJWBW
    CVHJBDDTMNJKFKWEYKWIWRADJUPIKXHUMVMPBCZXOJAPBQUJUCKUPPBJXNDAUUKAQFEUUKUQKIE
    APBPJMNEQVEJPYAYBWJXIVFVGYCXJPBAXKFEUKUMVMXL $.

  $( 163 is a prime number.  (Contributed by Mario Carneiro, 19-Feb-2014.)
     (Proof shortened by Mario Carneiro, 20-Apr-2015.) $)
  163prm $p |- ; ; 1 6 3 e. Prime $=
    ( c1 c6 cdc c3 1nn0 c8 c4 3nn0 c2 c5 cc0 0nn0 cmul co caddc eqtri 2nn0 7nn0
    c7 c9 6nn0 deccl 3nn decnncl 8nn0 4nn0 6lt10 3lt10 3decltc 6nn 1lt10 declti
    1lt8 2cn mulid2i df-3 dec2dvds 5nn0 1nn eqid dec0h ax-1cn addid2i 5p1e6 5cn
    oveq2i 3cn 5t3e15 mulcomli decsuc 2p1e3 4cn 4t3e12 decma2c 1lt3 ndvdsi 3lt5
    dec5dvds 7nn 2nn 7t2e14 4p2e6 decaddi 7t3e21 1p2e3 2lt7 9nn0 nncni addcomli
    9nn mulid1i oveq12i 4p1e5 oveq1i 9cn 9p4e13 decmac 9lt10 00id addid1i 3p3e6
    3t2e6 7cn 6cn 7p6e13 7lt10 10nn 6p1e7 9p7e16 9t7e63 nn0cni 7pos declt 7p1e8
    8cn 8p8e16 9t8e72 1lt9 decrmac 2lt10 prmlem2 ) ABCZDCZYBDABEUAUBZUCUDAFBGDA
    EUEUAUFHEUMUGUHUIYBDAABEUJUDHEUKULYBAIDYDEIUNUOZUPUQDYCJGCZAUCJGURUFUBUSJGK
    ADYBDAYFAURUFLEYFUTAEVAHHEDJMNZKAONZONYGAONYBYHAYGOAVBVCZVFAJBYGEURVDJDAJCV
    EVGVHVIVJPAIDDGMNEQVKGDAICZVLVGVMVIVJVNVOVPYBDYDUCVQVRSYCIDCZIVSIDQHUBVTIDK
    ISYBDIYKIQHLQYKUTZIQVARHQSIMNZKIONZONYMIONYBYNIYMOIUNVCVFAGBYMIEUFQWAWBWCPI
    ADSDMNIQEQWDWEWCVNWFVPAACZYCAGCZTAAEUSUDZAGEUFUBWJAGKTYOYBDJYPTEUFLWGYPUTTW
    GVAZAAEEUBHURYOAMNZKJONZONYSJONYBYTJYSOJVEVCVFAABYSJEEURYOYOYQWHWKJABVEVBVD
    WIWCPAAKTGJDAYOTEELWGYOUTZYRUFHEAGMNZYHONGAONJUUBGYHAOGVLUOZYIWLWMPUUBTONGT
    ONADCZUUBGTOUUCWNTGUUDWOVLWPWIPWQVNAATUSEWGWRULVPUUDYCYJSADEUCUDAIEQUBVSAIK
    SUUDYBDDYJSEQLRYJUTSRVAZADEHUBHHADKDAABKUUDKDONZEHLHUUDUTZUUFDKDCDVGVCDHVAP
    EUALAAMNZKKONZONAKONAUUHAUUIKOAVBWKWSWLAVBWTPDAMNZDONZBKBCUUKDDONBUUJDDODVG
    WKWNXAPBUAVAPWQADKSIDDAUUDSEHLRUUGUUEQHEAIMNZYHONIAONDUULIYHAOYEYIWLVKPDIMN
    ZSONBSONUUDUUMBSOXBWNSBUUDXCXDXEWIPWQVNADSUSHRXFULVPASCZYCTAKCZASEVSUDWGXGA
    SAKTYBDBUUNUUOERELUUNUTUUOUTWGHUAATMNZABONZONTSONYBUUPTUUQSOTWOUOBASXDVBXHW
    IWLXIPSTMNZKONBDCZKONUUSUURUUSKOTSUUSWOXCXJVIWNUUSUUSBDUAHUBXKWTPWQAKSELVSX
    LXMVPATCZYCFYOATEWJUDUEYQATAAFYBDSUUTYOEWGEEUUTUTUUAUEHRAFMNZASONZONFFONYBU
    VAFUVBFOFXOUOSAFXCVBXNWIWLXPPSIDTFMNRQVKXQVJWQAATEEWJXRXMVPYKYCSIIDQUCUDRVT
    IDSYBDIYKIQHQYLRHQAGBISMNIEUFQSIYPXCUNWAVIWBWCIADDSMNIQEQSDIACXCVGWDVIWEWCX
    SIDIVTHQXTULVPYA $.

  $( 317 is a prime number.  (Contributed by Mario Carneiro, 19-Feb-2014.)
     (Proof shortened by Mario Carneiro, 20-Apr-2015.) $)
  317prm $p |- ; ; 3 1 7 e. Prime $=
    ( c3 c1 cdc c7 3nn0 1nn0 c8 c4 7nn0 cc0 c5 c2 5nn0 0nn0 2nn0 caddc co eqtri
    cmul c9 deccl 7nn decnncl 8nn0 4nn0 1lt10 7lt10 3decltc 1nn declti c6 3t2e6
    3lt8 df-7 dec2dvds 3nn 10nn0 2nn eqid dec0h ax-1cn addid2i 3cn mulid1i 00id
    oveq12i addid1i mul01i oveq1i decma2c 5cn 5t3e15 mulcomli 5p2e7 2lt3 ndvdsi
    decaddi 2lt5 dec5dvds2 oveq2i 7t4e28 2p1e3 8p3e11 decaddci 7t5e35 2lt7 9nn0
    9nn 9cn 2cn mulid2i 9p2e11 addcomli decmac 8cn 8p1e9 9p8e17 9lt10 5nn 4p1e5
    6p5e11 4cn 4t3e12 5lt10 3p1e4 decadd 1p1e2 1p2e3 7p4e11 8p5e13 6p1e7 8t7e56
    7cn 6nn0 decsuc 1lt7 declt 6cn 9t6e54 4p3e7 3lt9 8nn 7p1e8 3t3e9 8lt10 1lt2
    nnnn0i decltc prmlem2 ) ABCZDCZYJDABEFUAZUBUCAGBHDBEUDFUEIFUMUFUGUHYJDBABEU
    IUCIFUFUJYJAUKDYLEULUNUOAYKBJCZKCZLUPYMKUQMUAURYMKJLAYJDBYNLUQMNOYNUSLOUTZE
    IFBJJBAABJYMJBPQZFNNFYMUSYPBJBCZBVAVBZBFUTZREFNABSQZJJPQZPQAJPQAYTAUUAJPAVC
    VDZVEVFAVCVGRAJSQZBPQZBYQUUDYPBUUCJBPAVCVHVIYRRYSRVJBKDAKSQLFMOKABKCVKVCVLV
    MVNVQVJVOVPYJLDYLURVRVNVSDYKHKCZLUBHKUEMUAURHKJLDYJDAUUELUEMNOUUEUSYOIIEDHS
    QZJAPQZPQUUFAPQYJUUGAUUFPAVCVBVTLGBAUUFAOUDEWAWBFWCWDRAKDDKSQLEMOWEVNVQVJWF
    VPBBCZYKLGCZTBBFUIUCZLGOUDUAWHLGJTUUHYJDTUUITOUDNWGUUIUSTWGUTZBBFFUAZIWGBBJ
    TLABBUUHJTPQZFFNWGUUHUSZUUMTJTCTWIVBUUKROFFBLSQZYPPQLBPQZAUUOLYPBPLWJWKZYRV
    FWBRZUUOTPQLTPQUUHUUOLTPUUQVITLUUHWIWJWLWMRWNBBJTGTDBUUHTFFNWGUUNUUKUDIFBGS
    QZYPPQGBPQTUUSGYPBPGWOWKZYRVFWPRUUSTPQGTPQBDCZUUSGTPUUTVITGUVAWIWOWQWMRWNVJ
    BBTUIFWGWRUJVPBACZYKLHCZKBAFUPUCZLHOUEUAWSLHJKUVBYJDKUVCKOUENMUVCUSKMUTZBAF
    EUAZIMBAJKLABBUVBJKPQZFENMUVBUSZUVGKJKCKVKVBZUVEROFFUURALSQZKPQUKKPQZUUHUVJ
    UKKPULVIXARWNBAJKHKDBUVBKFENMUVHUVEUEIFBHSQZYPPQHBPQKUVLHYPBPHXBWKYRVFWTRBL
    DAHSQKFOMHABLCXBVCXCVMKLDVKWJVNWMVQWNVJBAKUIEMXDUJVPUVAYKBGCZUUHBDFUBUCBGFU
    DUAUUJBGBBUVAYJDUVBUVMUUHFUDFFUVMUSZUUNBDFIUAIUVFBDBHBABBUVABUVBPQFIFUEUVAU
    SZJBBABHBUVBNFFEYSUVHYRABHVCVAXEWMXFFFFBBSQZBBPQZPQBLPQAUVPBUVQLPBVAVDXGVFX
    HRZDBSQZHPQDHPQUUHUVSDHPDXMVDVIXIRWNBDJBGUVBDKUVABFINFUVOYSUDIMUUSUVGPQGKPQ
    UVBUUSGUVGKPUUTUVIVFXJRKUKDDGSQMXNXKGDKUKCWOXMXLVMXOWNVJBBDFFUBXPXQVPBTCZYK
    BUKCZUVBBTFWHUCBUKFXNUAUVDBUKBAUVTYJDUUHUWAUVBFXNFEUWAUSUVHBTFWGUAIUULBTBLB
    ABBUVTBUUHPQFWGFOUVTUSZJBBBBLBUUHNFFFYSUUNYRXGXFFFFUVRTBSQZLPQTLPQUUHUWCTLP
    TWIVDVIWLRWNBTJAUKUUHDKUVTAFWGNEUWBAEUTXNIMBUKSQZUVGPQUVKUUHUWDUKUVGKPUKXRW
    KUVIVFXARKHDTUKSQAMUEEXSXTVQWNVJBATFEWHYAXQVPLACZYKUVBUVMLAOUPUCUVBUVDYGBGF
    YBUCBABGUWEYJDDUVBUVMFEFUDUVHUVNLAOEUAIILAJGBABBUWEBDPQZOENUDUWEUSZUWFGJGCD
    BGXMVAYCWMGUDUTZRFFFLBSQZYPPQUUPAUWILYPBPLWJVDYRVFWBRYTGPQAGPQUUHYTAGPUUBVI
    GAUUHWOVCWCWMRWNLAJGADDBUWEGOENUDUWGUWHEIFLASQZYPPQUKBPQDUWJUKYPBPALUKVCWJU
    LVMYRVFXKRAASQZGPQTGPQUVAUWKTGPYDVIWQRWNVJBLGAFOUDEYEYFYHVPYI $.

  $( 631 is a prime number.  (Contributed by Mario Carneiro, 1-Mar-2014.)
     (Proof shortened by Mario Carneiro, 20-Apr-2015.) $)
  631prm $p |- ; ; 6 3 1 e. Prime $=
    ( c6 c3 cdc c1 3nn0 deccl c8 c4 1nn0 cc0 0nn0 c2 2nn0 caddc eqtri cmul 7nn0
    co c7 c5 6nn0 1nn decnncl 8nn0 4nn0 6lt8 3lt10 1lt10 3decltc 3nn declti 2cn
    mul02i 1e0p1 dec2dvds eqid dec0h 3t2e6 oveq12i 6cn addid1i 3t1e3 oveq1i 3cn
    00id 3eqtri decma2c mul01i 1lt3 ndvdsi 1lt5 dec5dvds c9 7nn 9nn0 oveq2i 9cn
    0p1e1 7cn 9t7e63 mulcomli nn0cni 1lt7 5nn0 4nn 8cn addid2i 5cn 5p1e6 8p5e13
    mulid2i addcomli decmac 7p1e8 7p4e11 4lt10 1p1e2 4p2e6 4t3e12 2p1e3 decaddi
    4cn 8p3e11 8t3e24 decaddci 7lt10 2nn 1p2e3 3p3e6 7t3e21 7p5e12 7t7e49 4p1e5
    9p2e11 2lt10 9nn 9t3e27 7p6e13 10nn ax-1cn 6p1e7 decadd 2t2e4 decmul1c 1lt2
    7t2e14 10pos decltc prmlem2 ) ABCZDCZYJDABUAEFZUBUCAGBHDDUAUDEUEIIUFUGUHUIY
    JDDABUAUJUCIIUHUKYJJJDYLKLULUMUNUOBYKLDCZJCZDUJYMJLDMIFZKFUBYMJJDBYJDJYNDYO
    KKIYNUPDIUQZEIKLDJJBABJYMJJNRZMIKKYMUPYQJJJCVEJKUQOEEKBLPRZYQNRAJNRAYRAYQJN
    URVEUSAUTVAOBDPRZJNRBJNRBJBCYSBJNVBVCBVDVABEUQVFVGBJPRZDNRJDNRZDJDCZYTJDNBV
    DVHVCVRYPVFVGVIVJYJDYLUBVKVLSYKVMJCZDVNVMJVOKFUBVMJJDSYJDJUUCDVOKKIUUCUPYPQ
    IKSVMPRZYQNRUUDJNRYJJNRYJYQJUUDNVEVPUUDYJJNVMSYJVQVSVTWAVCYJYJYLWBVAVFSJPRZ
    DNRUUADUUBUUEJDNSVSVHVCVRYPVFVGWCVJDDCZYKTSCZHDDIUBUCTSWDQFWETSJHUUFYJDGUUG
    HWDQKUEUUGUPHUEUQZDDIIFZIUDDDJGTABDUUFJGNRZIIKUDUUFUPZUUJGJGCGWFWGGUDUQOWDE
    IDTPRZUUANRTDNRAUULTUUADNTWHWKZVRUSWIOUULGNRTGNRDBCZUULTGNUUMVCGTUUNWFWHWJW
    LOWMDDJHSGDDUUFHIIKUEUUKUUHQIIDSPRZUUANRSDNRGUUOSUUADNSVSWKZVRUSWNOUUOHNRSH
    NRUUFUUOSHNUUPVCWOOWMVGDDHUBIUEWPUKVJUUNYKHGCZSDBIUJUCHGUEUDFVNHGJSUUNYJDUU
    FUUQSUEUDKQUUQUPSQUQZDBIEFIUUIDBDDHABDUUNJUUFNRIEIIUUNUPZUUFUUFUUIWBWGUEEID
    HPRZDDNRZNRHLNRZAUUTHUVALNHXBWKWQUSWRODLBBHPRDIMIHBDLCZXBVDWSWAWTXAWMDBJSGU
    UFDBUUNSIEKQUUSUURUDIEDGPRZJBNRZNRGBNRUUFUVDGUVEBNGWFWKBVDWGZUSXCOLHDBBGPRS
    MUEQGBLHCWFVDXDWAWTISHUUFVSXBWOWLXEWMVGDBSUBEQXFUKVJDSCZYKBSCZLDSIVNUCBSEQF
    XGBSJLUVGYJDUVCUVHLEQKMUVHUPLMUQZDSIQFIDLIMFZDSDLBABLUVGJUVCNRIQIMUVGUPZUVC
    UVCUVJWBWGEEMDBPRZDLNRZNRBBNRZAUVLBUVMBNBVDWKZXHUSXIOLDBSBPRLMIMXJXHXAWMDSJ
    LSUVCDTUVGLIQKMUVKUVIQIWDUUOJTNRZNRSTNRUVCUUOSUVPTNUUPTWHWGUSXKOHVMDTSSPRLU
    EVOMXLXMIXNXEWMVGDSLUBQMXOUKVJDVMCZYKBBCZHDVMIXPUCBBEEFWEBBJHUVQYJDAUVRHEEK
    UEUVRUPUUHDVMIVOFIUADVMJABABBUVQJANRZIVOKUAUVQUPZUVSAJACAUTWGAUAUQOEEEUVLUV
    ENRUVNAUVLBUVEBNUVOUVFUSXIOZLSBBVMBPRZAMQUAXQWTEXRXEWMDVMJHBADBUVQHIVOKUEUV
    TUUHEIEUWALSDBUWBHMQUEXQWTIWOXEWMVGDVMHUBVOUEWPUKVJLBCZYKLSCZDJCZLBMUJUCLSM
    QFXSLSDJUWCYJDDACZUWDUWEMQIKUWDUPUWEUPLBMEFIDAIUAFZLBDSLABDUWCDUWFNRMEIQUWC
    UPZJDDADSDUWFKIIUAYPUWFUPVRADSUTXTYAWLYBMEILLPRZUVANRUVBAUWIHUVALNYCWQUSWRO
    YRSNRASNRUUNYRASNURVCSAUUNVSUTXRWLOWMUWCSPRZJNRUWFDCZJNRUWKUWJUWKJNLBUWFDSL
    UWCQMEUWHIMDHALSPRLIUEMSLDHCVSULYFWAWRXASBYMVSVDXJWAYDVCUWKUWKUWFDUWGIFWBVA
    OVGDLJBIMKEYGYEYHVJYI $.

  $( The primorial of 4.  (Contributed by AV, 28-Aug-2020.) $)
  prmo4 $p |- ( #p ` 4 ) = 6 $=
    ( c4 cprmo cfv c1 cmin co c6 cprime wcel cmul cif cn wceq 4nn prmonn2 ax-mp
    4nprm iffalsei eqtri c3 caddc 3p1e4 4cn ax-1cn subadd2i mpbir fveq2i prmo3
    3cn ) ABCZADEFZBCZGUJAHIZULAJFZULKZULALIUJUOMNAOPUMUNULQRSULTBCGUKTBUKTMTDU
    AFAMUBADTUCUDUIUEUFUGUHSS $.

  $( The primorial of 5.  (Contributed by AV, 28-Aug-2020.) $)
  prmo5 $p |- ( #p ` 5 ) = ; 3 0 $=
    ( c5 cprmo cfv cprime wcel c1 cmin co cmul cif c3 cc0 cdc cn 5nn prmonn2 c6
    wceq c4 eqtri ax-mp 5prm iftruei caddc 4p1e5 5cn ax-1cn 4cn subadd2i fveq2i
    mpbir prmo4 oveq1i 6t5e30 ) ABCZADEZAFGHZBCZAIHZURJZKLMZANEUOUTROAPUAUTUSVA
    UPUSURUBUCUSQAIHVAURQAIURSBCQUQSBUQSRSFUDHARUEAFSUFUGUHUIUKUJULTUMUNTTT $.

  $( The primorial of 6.  (Contributed by AV, 28-Aug-2020.) $)
  prmo6 $p |- ( #p ` 6 ) = ; 3 0 $=
    ( c6 cprmo cfv c1 cmin co c3 cc0 cdc cprime wcel cmul cif cn wceq 6nn ax-mp
    prmonn2 eqtri c5 6nprm iffalsei caddc 5p1e6 6cn ax-1cn subadd2i mpbir prmo5
    5cn fveq2i ) ABCZADEFZBCZGHIZULAJKZUNALFZUNMZUNANKULUROPARQUPUQUNUAUBSUNTBC
    UOUMTBUMTOTDUCFAOUDADTUEUFUJUGUHUKUISS $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Very large primes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    1259prm.1 $e |- N = ; ; ; 1 2 5 9 $.
    $( Lemma for ~ 1259prm .  Calculate a power mod.  In decimal, we calculate
       ` 2 ^ 1 6 = 5 2 N + 6 8 == 6 8 ` and ` 2 ^ 1 7 == 6 8 x. 2 = 1 3 6 ` in
       this lemma.  (Contributed by Mario Carneiro, 22-Feb-2014.)  (Revised by
       Mario Carneiro, 20-Apr-2015.)  (Proof shortened by AV, 16-Sep-2021.) $)
    1259lem1 $p |- ( ( 2 ^ ; 1 7 ) mod N ) = ( ; ; 1 3 6 mod N ) $=
      ( c2 c1 c6 cdc cc0 c8 c3 c5 1nn0 2nn0 5nn0 6nn0 8nn0 co eqid cmul caddc
      c4 c7 c9 cn deccl 9nn decnncl eqeltri 0z 3nn0 cexp nn0zi nn0expcli nn0cni
      2nn cmo 2cn 8t2e16 mulcomli 9nn0 4nn0 7nn0 dec0h 4cn addid2i oveq1i 4p1e5
      0nn0 eqtri 7cn 6cn 7p6e13 addcomli decaddc 2p1e3 5cn 6p5e11 10nn0 mulid1i
      dec10p 1p0e1 oveq12i 5p1e6 3p2e5 3eqtri decmac 5t2e10 00id decma2c 5t5e25
      3cn 2t2e4 decsuc decaddi decrmac 9cn 9t5e45 9t2e18 8p8e16 decaddci 2exp16
      5p2e7 1p1e2 numexp2x 3eqtr2i mod2xi 6p1e7 mul02i decmul1c 3eqtr4i modxp1i
      nncni 6t2e12 ) CDEFZGDUAFEHFZDIFZEFZAADCFZJFZUBFUCBXRUBXQJDCKLUDZMUDZUEUF
      UGZUNDEKNUDUHEHNOUDZXOEDIKUIUDNUDZCHJCFZXMCHUJPZXNAYAUNOYDJCMLUDZUKCHLOUL
      YBYEAUOPQHCXMHOUMUPUQURZYDARPXNSPEJFZJFZIFZEFCXMUJPYEYERPZXRUBEHYDYJETUAF
      ZAXNXTUSNOBXNQZYFNTUAUTVAUDXQJJIYDYIICEFZXREYLSPXSMMUIXRQGETUAJIEYLVGNUTV
      AENVBYLQGTSPZDSPTDSPZJYOTDSTVCVDVEVFVHUIUAEXOVIVJVKVLVMYFUICELNUDDCIDYDYH
      JDGFZXQJYNSPKLUIKXQQGJCEIDJYNVGMLNJMVBZYNQGCSPZDSPCDSPIYSCDSCUPVDVEVNVHKE
      JDDFVJVOVPVLVMYFMVQJCDIDEJGYDIYQSPMLKUIYDQZYQIXOYQVQUMWJIVSVLKMVGJDRPZDGS
      PZSPJDSPEUUAJUUBDSJVOVRVTWAWBVHCDRPZISPCISPJGJFZUUCCISCUPVRVEICJWJUPWCVLY
      RWDWEJCGDCYQJGYDDMLVGKYTDKVBLMVGJCRPZGGSPZSPYQGSPYQUUEYQUUFGSWFWGWAGVSVHC
      CRPZDSPYPJUUDUUGTDSWKVEVFYRWDWEWHJCJYNIDYDIMLUIYTMUIKCJEJJRPLMWBWIWLDGICJ
      RPIKVGUIJCYQVOUPWFURIWJVDWMWNWHJCUBYLECYDHMLOYTUSNLTJUAJUBRPCUTMLUBJTJFWO
      VOWPURXAWMDHECCUBRPHKOOUBCDHFWOUPWQURXBNWRWSWNWHWTCYKYEHXMLOYGYEQYKQXCXDX
      EDEUAXMKNXFXMQWLGXPSPXPGARPZXPSPXNCRPXPXPYCUMVDUUHGXPSAAYAXKXGVEEHXOECDXN
      LNOYMNKDCIECRPKLVNXLWLUQXHXIXJ $.

    $( Lemma for ~ 1259prm .  Calculate a power mod.  In decimal, we calculate
       ` 2 ^ 3 4 = ( 2 ^ 1 7 ) ^ 2 == 1 3 6 ^ 2 == 1 4 N + 8 7 0 ` .
       (Contributed by Mario Carneiro, 22-Feb-2014.)  (Revised by Mario
       Carneiro, 20-Apr-2015.)  (Proof shortened by AV, 15-Sep-2021.) $)
    1259lem2 $p |- ( ( 2 ^ ; 3 4 ) mod N ) = ( ; ; 8 7 0 mod N ) $=
      ( c2 c1 cdc c4 c3 c6 c8 cc0 c5 c9 1nn0 4nn0 6nn0 0nn0 cmul co caddc eqtri
      c7 2nn0 deccl 5nn0 9nn decnncl eqeltri 7nn0 nn0zi 3nn0 8nn0 1259lem1 eqid
      cn 2nn 2cn mulid1i oveq1i 2p1e3 7t2e14 mulcomli decmul2c 9nn0 8p1e9 7p2e9
      7cn decadd 9p7e16 3cn 3p1e4 addcomli dec0h 00id oveq12i addid1i 4cn 4p4e8
      ax-1cn 3eqtri decmac mulid2i addid2i 4t2e8 8p6e14 decma2c 5cn 9cn decaddi
      5p2e7 5t4e20 9p3e12 9t4e36 nn0cni 8cn 4p1e5 5p3e8 6cn 3t3e9 9p1e10 6t3e18
      decmul1c 6p2e8 1p1e2 8p3e11 decaddci 6t6e36 eqtr4i mod2xi ) CDUAEZDFEZGFE
      DGEZHEZIUAEZJEZAADCEZKEZLEUNBXPLXOKDCMUBUCZUDUCZUEUFUGUODUAMUHUCXJDFMNUCZ
      UIXKHDGMUJUCZOUCZXMJIUAUKUHUCZPUCABULDUAGFCDXIUBMUHXIUMNMCDQRZDSRCDSRZGYC
      CDSCUPUQURUSTUACXJVFUPUTVAVBXJAQRXNSRDIEZFEZLEZHEXLXLQRXPLXMJXJYGHXOAXNXR
      VCYBPBXNUMXSOXQXOKLLXJYFLUAXPXMXOSRXQUDVCVCXPUMIUADCLLXMXOUKUHMUBXMUMXOUM
      ZVDVEVGXSVCUHDCDHXJYEFGXOLUASRMUBMOYHVHXSNUJDFJFDDIJXJDGSRZMNPNXJUMZYIFJF
      EGDFVIVRVJVKFNVLTMUKPDDQRZJJSRZSRDJSRDYKDYLJSDVRUQVMVNDVRVOTZFDQRZFSRFFSR
      IJIEZYNFFSFVPUQURVQIUKVLZVSVTDFJHCGFDXJHMNPOYJHOVLUBNMDCQRZJDSRZSRYDGYQCY
      RDSCUPWADVRWBZVNUSTFCQRZHSRIHSRXJYTIHSWCURWDTVTWEDFJLKUALCXJLMNPVCYJLVCVL
      UDVCUBDKQRZJCSRZSRKCSRUAUUAKUUBCSKWFWACUPWBZVNWITCJLFKQRLUBPVCKFCJEWFVPWJ
      VALWGWBWHVTWEXJLQRZJSRXOHEZJSRUUEUUDUUEJSDFXOHLGXJVCMNYJOUJDLQRZGSRLGSRXO
      UUFLGSLWGWAURWKTLFGHEWGVPWLVAXAURUUEUUEXOHXQOUCWMVOTWEXKHYGHXLIDEZXLYAXTO
      XLUMZOIDUKMUCDGIDXLYFLFJEZXKUUGMUJUKMXKUMZUUGUMYAVCFJNPUCXKHFIDYEFDXLIUUI
      SRXTONUKUUHJIFJFIIUUIPUKNPYPUUIUMFVPWBIWNVOVGMNMDGJKDDIJXKFDSRZMUJPUDUUJU
      UKKJKEWOKUDVLTMUKPYMGDQRZKSRGKSRIYOUULGKSGVIUQURKGIWFVIWPVKYPVSVTHDQRZISR
      HISRXJUUMHISHWQUQURIHXJWNWQWDVKTVTXKHJDGUUILDXLDXTOPMUUHDMVLZUJVCMDGJDGFJ
      DXKYRMUJPMUUJYRDJDEYSUUNTUJPMDGQRZYRSRGDSRFUUOGYRDSGVIWAYSVNVJTGGQRZDSRLD
      SRDJEUUPLDSWRURWSTVTDILHGQRDMUKMWTVDWHVTWEXKHUUGHHGXLOXTOUUHOUJDGJGHIDCXK
      GMUJPUJUUJGUJVLOMUBDHQRZUUBSRHCSRIUUQHUUBCSHWQWAUUCVNXBTDIDCGHQRGMUKUJHGY
      EWQVIWTVAXCMXDXEVTXFXAVBXGXH $.

    $( Lemma for ~ 1259prm .  Calculate a power mod.  In decimal, we calculate
       ` 2 ^ 3 8 = 2 ^ 3 4 x. 2 ^ 4 == 8 7 0 x. 1 6 = 1 1 N + 7 1 ` and
       ` 2 ^ 7 6 = ( 2 ^ 3 4 ) ^ 2 == 7 1 ^ 2 = 4 N + 5 == 5 ` .  (Contributed
       by Mario Carneiro, 22-Feb-2014.)  (Revised by Mario Carneiro,
       20-Apr-2015.)  (Proof shortened by AV, 16-Sep-2021.) $)
    1259lem3 $p |- ( ( 2 ^ ; 7 6 ) mod N ) = ( 5 mod N ) $=
      ( c2 c3 c8 cdc c4 c7 c6 c1 c5 c9 1nn0 2nn0 cc0 4nn0 0nn0 co cmul caddc cn
      deccl 5nn0 9nn decnncl eqeltri 3nn0 8nn0 4z 7nn0 nn0zi 6nn0 1259lem2 cexp
      2nn cmo 2exp4 oveq1i eqid 4p4e8 decaddi 9nn0 10nn0 nn0cni dec10p addcomli
      7cn mulid2i dec0h 0p1e1 3cn ax-1cn 3p1e4 decadd 2p1e3 decsuc 5p4e9 7p5e12
      5cn decaddci 9cn 9t11e99 mulcomli decsucc decma2c addid1i mulid1i oveq12i
      decmac 9p1e10 8cn 8p5e13 eqtri 3eqtri mul02i addid2i 8t6e48 8p4e12 7t6e42
      7p2e9 2cn 4p1e5 decmul1c 6cn decmul1 eqtr4i modxai 3t2e6 6p1e7 8t2e16 4cn
      decmul2c 4t2e8 8p2e10 5t4e20 9t4e36 6p5e11 7t7e49 7p7e14 decrmac mod2xi )
      CDEFZGHIFHJFZKAAJCFZKFZLFUABYELYDKJCMNUBZUCUBZUDUEUFZUODEUGUHUBUIHJUJMUBZ
      UCCDGFZGJJFZYBEHFZOFZJIFZYCAYHUODGUGPUBYKJJMMUBZUKYLOEHUHUJUBZQUBZYIPJIMU
      LUBABUMCGUNRYNAUPUQURDGEYJGUGPPYJUSUTVAYKASRYCTRJDFZLFZCFZOFYMYNSRYELHJYK
      YTOJOFZAYCYGVBUJMBYCUSZYOQVCJJJHYEYSCYRYKHUUATRMMMUJYKUSUUAHJHFUUAVCVDVGH
      VEVFYGNJDMUGUBYDKJGYRLJYESRZJYRTRYFUCMPYEYEYGVDVHZOJJDJGJYRQMMUGJMVIYRUSV
      JDJGVKVLVMVFVNJCDYDMNVOYDUSZVPZVQVNYDKCYRUUCHYFUCUJUUDUUFNHKYDVGVSVRVFVTW
      ILUUAYKLSRVBWJLYKLLFWAYKYOVDWBWCWDWEJIYTOYMKCFZCFZYNYQMULYNUSQUUGCKCUCNUB
      ZNUBYLOUUGCJYSCOYMUUHYPQUUINYMUSZUUHUSMNQEHKCJYRLOYLUUGOTRUHUJUCNYLUSZUUG
      UUGUUIVDWFMVBQEJSRZKOTRZTREKTRYRUULEUUMKTEWKWGKVSWFWHWLWMHJSRZCTRHCTRLOLF
      UUNHCTHVGWGURWTLVBVIWNWIOJSRZCTROCTRZCOCFZUUOOCTJVLWOURCXAWPZCNVIZWNWIYLO
      UUHOIYMULYPQUUJQEHUUGCIGYLULUHUJUUKNPGECKEISRGPUHPWQXBNWRVTWSXCIXDWOXEXLX
      FXGDEHICJYBNUGUHYBUSULMCDSRZJTRIJTRHUUTIJTDCIVKXAXHWCURXIWMECYNWKXAXJWCXL
      GASRKTRKOFZGFZJFYCYCSRYELOKGUVBJGAKYGVBQUCBKUCVIPMPYDKOGGUVAGCYEOGTRZYFUC
      QPYEUSUVCGOGFGXKWPZGPVIWMPPNJCOCGKOJYDUUPMNQNUUEUUPCUUQUURUUSWMPQMGJSRZOJ
      TRZTRGJTRKUVEGUVFJTGXKWGVJWHXBWMGCSRZCTRECTRUUAUVGECTXMURXNWMWECOGGKSRGNQ
      PKGCOFVSXKXOWCUVDVAWEDIJGGLSRKUGULUCLGDIFWAXKXPWCVMMXQVTWEHJUVBJYCHYCYIUJ
      MUUBMUJHJHUVAGJYCHUJMUJUUBUJPMGKHHSRPXBXRWDJHSRZHTRHHTRJGFUVHHHTHVGVHURXS
      WMXTYCYCYIVDWGXLXFYA $.

    $( Lemma for ~ 1259prm .  Calculate a power mod.  In decimal, we calculate
       ` 2 ^ 3 0 6 = ( 2 ^ 7 6 ) ^ 4 x. 4 == 5 ^ 4 x. 4 = 2 N - 1 8 ` ,
       ` 2 ^ 6 1 2 = ( 2 ^ 3 0 6 ) ^ 2 == 1 8 ^ 2 = 3 2 4 ` ,
       ` 2 ^ 6 2 9 = 2 ^ 6 1 2 x. 2 ^ 1 7 == 3 2 4 x. 1 3 6 = 3 5 N - 1 ` and
       finally ` 2 ^ ( N - 1 ) = ( 2 ^ 6 2 9 ) ^ 2 == 1 ^ 2 = 1 ` .
       (Contributed by Mario Carneiro, 22-Feb-2014.)  (Revised by Mario
       Carneiro, 20-Apr-2015.)  (Proof shortened by AV, 16-Sep-2021.) $)
    1259lem4 $p |- ( ( 2 ^ ( N - 1 ) ) mod N ) = ( 1 mod N ) $=
      ( c2 c6 cdc c9 cc0 c1 co 2nn0 deccl 1nn0 c5 caddc eqid c3 4nn0 0nn0 cmul
      c4 cmin 2nn 6nn0 9nn0 0z 1nn c8 cn0 5nn0 8nn0 nn0cni ax-1cn decsuc eqtr4i
      8p1e9 mvrraddi eqeltri c7 cn 9nn decnncl 3nn0 nn0zi 8nn 1z 1259lem3 4p1e5
      7nn0 7cn 2cn 7t2e14 mulcomli 6t2e12 decmul2c addid2i mul02i oveq1i 5t5e25
      6cn nncni 3eqtr4i mod2xi 2p1e3 2t2e4 eqtri 5t2e10 modxp1i mulid1i addid1i
      decmul1c 5cn 3t2e6 dec0h mulid2i 1p1e2 2p2e4 decadd 5p4e9 9p1e10 decaddc2
      3cn decsucc decmul1 mul01i 00id oveq12i 0p1e1 3eqtri decma2c 8cn addcomli
      1p2e3 8p4e12 decmac 8p6e14 8t8e64 mod2xnegi 1259lem1 7p2e9 decaddi 7p5e12
      3p2e5 5p1e6 decaddc 7p3e10 3p1e4 6p1e7 4t2e8 8p2e10 5t3e15 5t4e20 decrmac
      4cn 5p2e7 9cn 9t3e27 7p4e11 decaddci cc wcel 3t3e9 4p2e6 wceq npcan mp2an
      9t4e36 9p7e16 6p4e10 4t3e12 6t3e18 6t4e24 modxai oveq2i 9t2e18 ) CDCEZFEZ
      GAHUAIZHUUQHAUBUUOFDCUCJKZUDKUEUFLUUQHCEZMEZUGEZUHAUVAHUVAUUTUGUUSMHCLJKZ
      UIKZUJKZUKULAUUTFEZUVAHNIBUUTUGFUVAUVCUJUOUVAOUMUNUPZUVDUQZCDHEZCEZHUREZP
      TEZUUPPCEZTEZHPEZDEZUUQAAUVEUSBUUTFUVCUTVAUQZUBUVHCDHUCLKZJKUVKPTVBQKZVCU
      VLTPCVBJKZQKZUVGHURLVHKZUVNDHPLVBKZUCKCPGEZDEZGUVIHUGEZUUSTEZHEZUVMAUBUWC
      DPGVBRKZUCKUEHUGLVDVAUVTUWFHUUSTUVBQKZLKZCHMEZPEZHUWDMGEZUWGAUVPUBUWKPHML
      UIKZVBKVEMGUIRKZUWJCUWKCEZGUWLCMEZUWMAUVPUBUWKCUWNJKUECMJUIKZUWOCURDEZGUW
      PMUWQAUVPUBURDVHUCKUEUIUWRABVFURDUWKCCHUWSJVHUCUWSOJLHTMCURSILQVGURCHTEZV
      IVJVKVLUMDCUUSVSVJVMVLZVNGUWQNIUWQGASIZUWQNIMMSIUWQUWQUWRUKVOUXBGUWQNAAUV
      PVTZVPZVQVRWAWBUWKCPUWPUWNJWCUWPOUMGUWMNIUWMUXBUWMNIUWQCSIUWMUWMUWOUKZVOU
      XBGUWMNUXDVQCMMGCHUWQJJUIUWQORLCCSIZHNIZTHNIZMUXFTHNWDVQZVGWEWFWJWAWGUWKP
      UWCDCGUWLJUWNVBUWLOUCRCUWKSIZGNIUWCGNIUWCUXJUWCGNHMPGCHUWKJLUIUWKOZRLCHSI
      ZHNICHNIZPUXLCHNCVJWHZVQWCWEMCHGEZWKVJWFVLVNVQUWCUWCUWHUKWIWECPSIZDGDEPCD
      XAVJWLVLZDUCWMWEVNHASIZUWGNIUWQGEZGEUWMUWMSIUUTFUWFHUXSUXRUWGUVCUDUWILUXR
      AUVEAUXCWNBWEUWGOZCTEZUWQUUTUWFNICTJQKCTMUYAJQVGUYAOUMUUSMUUSTUYAFUUTUWFU
      VBUIUVBQUUTOZUWFOZHCHCCTUUSUUSLJLJUUSOZUYDWOWPWQWRWQXBWSWTMGUXSGUWMGUWMUW
      OUIRUWMOZRRUWMMSIZGNIUXSGNIUXSUYFUXSGNMGUWQGMUWMUIUIRUYERVRMWKVPXCVQUXSUX
      SUWQGUWRRKUKWIWEUWMGSIGGGEUWMUXEXDGRWMWEVNUNWBUWCDUVHCCHUWDJUWHUCUWDOJLPG
      GHCDHGUWCHVBRRLUWCOHLWMZJLRUXPGGNIZNIDGNIDUXPDUYHGNUXQXEXFDVSWIWECGSIZHNI
      GHNIZHGHEZUYIGHNCVJXDVQXGUYGXHXIUXAVNUWGUWENIUVEAUWFHHUGUUTFUWGUWEUWILLUJ
      UXTUWEOZUUSTMUWFUVBQVGUYCUMUGHFXJULUOXKWQBUNGUVMNIUVMUXBUVMNIUWEUWESIUVMU
      VMUVTUKVOUXBGUVMNUXDVQHUGUVLTUWEUWTUWEHUGLUJKLUJUYLQHTLQKHUGHTHPCHUWEUWTL
      UJLQUYLUWTOLJLHHSIZHHNIZNIHCNIPUYMHUYNCNHULWHZWOXFXLWEUGHSIZTNIUGTNIUUSUY
      PUGTNUGXJWHVQXMWEXNHUGUWTTUGDUWEUJLUJUYLQUCHUGSIZDNIUGDNIUWTUYQUGDNUGXJWN
      VQXOWEXPWJVNWAXQABXRUVHCHURUUOFUVIUVJUVQJLVHUVIOUVJOZDHCUVHUCLWOUVHOUMURC
      FVIVJXSXKWQUVKASIUUQNITTEZGEZDEZTEUVMUVOSIUUTFUUTUGUVKVUATPHEZAUUQUVCUDUV
      CUJBUVFUVRQPHVBLKUUSMUWKDUVKUYTDUVJUUTUUTVUBNIUVBUIUWNUCUYBUUSMPHUWKDUUTV
      UBUVBUIVBLUYBVUBOHCMUUSPLJVBUYDPCMXAVJYBXKXTYCWQUVRUCUWAHCPCUVKUYSGURUUSU
      WKUVJNILJVBJUYDHMHURPCUWKUVJLUILVHUXKUYRUYNHNIUXMPUYNCHNWOVQWCWEJURMUUSVI
      WKYAXKYDUVRRVHPTHGHTTGUVKPURNIVBQLRUVKOZURPUXOVIXAYEXKLQRPHSIZHGNIZNIPHNI
      TVUDPVUEHNPXAWHHULWIXFYFWEZTHSIZGNITGNITGTEZVUGTGNTYMWHZVQTYMWITQWMZXHXNP
      TGCCURGHUVKCVBQRJVUCCJWMJRLPCSIZUYJNIDHNIZURVUKDUYJHNWLXGXFYGWETCSIZCNIUG
      CNIUXOVUMUGCNYHVQYIWEXNXIPTMUVJDCUVKDVBQUCVUCUIUCJHMURPMSICLUIJMPUWKWKXAY
      JVLYNXTCGDTMSIDJRUCMTCGEWKYMYKVLDVSVOXTYLXIPTFVUBTTUVKUGVBQUJVUCUDQQCURHP
      PFSITJVHQFPCUREYOXAYPVLWCLYQYRPDTTTFSIUGVBUCUJFTPDEYOYMUUFVLYFQUGDUWTXJVS
      XOXKYRYLXIUVNDVUATUVMHFEZTEZUVOUVTUWBUCUVOOQVUNTHFLUDKZQKHPVUNTUVMUYTDFUR
      EZUVNVUOLVBVUPQUVNOVUOOUVTUCFURUDVHKUVLTHHEZDHUYSGHUVMVUNVUQNIUVSQHHLLKUC
      UVMOZHFFURVURDVUNVUQLUDUDVHVUNOVUQOHGHHFNILRXGFHUXOYOULWSXKUMUCUUGYDLRLPC
      HCHTTGUVLVURHNIVBJLJUVLOZHHCVURLLWOVUROUMLQRVUFUXLCNICCNITVUHUXLCCNUXNVQW
      PVUJXHXNVUGDNITDNIUXOVUGTDNVUIVQDTUXOVSYMUUHXKWEXNUVLTGTPVUQDHUVMTUVSQRQV
      USVUJVBUCLPCGHPFURGUVLUYJVBJRLVUTUYJHUYKXGUYGWEVBVHRPPSIZUYHNIFGNIFVVAFUY
      HGNUUAXEXFFYOWIWEUXPHNIVULURGUREUXPDHNUXQVQYGURVHWMXHXNHCDTPSITLJQUUITCDY
      MVJUUBXKXTXNXIUVLTVUOTDCUVMUCUVSQVUSQJPCDVUNTHUVLCVBJJVUTUCQLHUGFPDSILUJU
      ODPUWEVSXAUUJVLUMHCTCDSIZCLJJUXAWPXTYLDTUYAVSYMUUKVLWJVNUNUULCUUPSIUVAUUQ
      UUOFUUTUGCHUUPJUURUDUUPOUJLDCGHCUUSMGUUOHUCJRLUUOOUYGJUIRVVBUYHNIVVBGNIUU
      SGNIUUSUYHGVVBNXEUUMVVBUUSGNUXAVQUUSUUSUVBUKWIXHUXGUXHMGMEUXIVGMUIWMXHXIF
      CUWEYOVJUUNVLVNUVFUNAYSYTHYSYTUUQHNIAUUCUXCULAHUUDUUEUYJHUXBHNIUYMXGUXBGH
      NUXDVQUYOWAXQ $.

    $( Lemma for ~ 1259prm .  Calculate the GCD of ` 2 ^ 3 4 - 1 == 8 6 9 `
       with ` N = 1 2 5 9 ` .  (Contributed by Mario Carneiro, 22-Feb-2014.)
       (Revised by Mario Carneiro, 20-Apr-2015.) $)
    1259lem5 $p |- ( ( ( 2 ^ ; 3 4 ) - 1 ) gcd N ) = 1 $=
      ( c8 c6 cdc c9 c1 c2 c3 c4 3nn0 deccl 8nn0 9nn0 1nn0 2nn0 cc0 cmul caddc
      co cexp cmin cn wcel cn0 2nn 4nn0 nnexpcl mp2an nnm1nn0 ax-mp 6nn0 c5 9nn
      5nn0 decnncl eqeltri 1259lem2 6p1e7 eqid decsuc decsucc modsubi 0nn0 cgcd
      c7 cz wceq nn0zi gcdcom cdvds wbr wn 3nn 8nn dec0h ax-1cn mulid1i addid2i
      oveq12i 1p1e2 eqtri 3cn oveq1i 8p3e11 addcomli decmac 8lt10 declti ndvdsi
      8cn 1nn cprime wb 13prm coprm mpbi 2cn mulid2i addid1i 2p1e3 3p1e4 3eqtri
      decma2c gcdi 3t2e6 mulcomli 6p2e8 4cn 4t2e8 8p1e9 4p3e7 oveq2i 8t4e32 7cn
      7nn0 7p2e9 decaddi 9cn 9t4e36 6p4e10 decaddci2 9t2e18 8p8e16 2t0e0 nn0cni
      decaddci 8p4e12 6cn 9p6e15 eqtr4i gcdmodi ) CDEZFEZGHIJEZUATZGUBTZAYPUCUD
      ZYQUEUDHUCUDYOUEUDYRUFIJKUGLZHYOUHUIZYPUJUKYMFCDMULLZNLZAGHEZUMEZFEZUCBUU
      DFUUCUMGHOPLUOLUNUPUQZYPGCVFEZQEYNAUUFYTOUUBABURYMUUGYNUUACDVFYMMULUSYMUT
      ZVAYNUTZVBVCIFEZQEZGGAYNOUUJQIFKNLZVDLZUUBCFEZGHYNUUKPCFMNLZUUMYOGJUUKUUN
      UGYSUUOHGEZGHUUNYOPHGPOLZYSGIEZGGYOUUPOGIOKLZUUQUUPUURVETZUURUUPVETZGUUPV
      GUDZUURVGUDUUTUVAVHUUPUUQVIZUURUUSVIUUPUURVJUIUURUUPVKVLVMZUVAGVHZUURUUPG
      CGIOVNUPOVOGIQCGHGGUURCOKVDMUURUTZCMVPZOOOGGRTZQGSTZSTGGSTHUVHGUVIGSGVQVR
      ZGVQVSVTWAWBIGRTZCSTICSTGGEZUVKICSIWCVRWDCIUVLWKWCWEWFWBWGGICWLKMWHWIWJUU
      RWMUDUVBUVDUVEWNWOUVCUURUUPWPUIWQWBHGGIGIJQUUPUURPOOKUUPUTZUVFOUGVDGHRTZG
      QSTZSTHGSTIUVNHUVOGSHWRWSGVQWTVTXAWBUVHISTGISTJQJEUVHGISUVJWDIGJWCVQXBWFJ
      UGVPXCXDXEIJHGHCFQYOUUPKUGPOYOUTZUVMPNVDHIRTZHQSTZSTDHSTZCUVQDUVRHSIHDWCW
      RXFXGZHWRWTVTXHWBHJRTZGSTCGSTFQFEZUWACGSJHCXIWRXJXGWDXKFNVPZXCXDXECFIJJUU
      JQJUUNYOMNKUGUUNUTZUVPUGVDUGJCRTZIJSTZSTUWEVFSTUUJUWFVFUWESJIVFXIWCXLWFXM
      IHFUWEVFKPXPCJIHEWKXIXNXGVFHFXOWRXQWFXRWBIDJJFRTJKULUGFJIDEXSXIXTXGXBYAYB
      XDXEUUJQCFHYMFQUUKUUNUULVDMNUUKUTZUWDPNVDIFQCHCDHUUJCQSTZKNVDMUUJUTUWHCQC
      ECWKWTUVGWBPULPUVQQHSTZSTUVSCUVQDUWIHSUVTHWRVSVTXHWBGCDHHFRTCOMMFHGCEXSWR
      YCXGWAULYDYGXDHQRTZFSTQFSTFUWBUWJQFSYEWDFXSVSUWCXCXDXEGYNRTUUKSTUUEAYMFUU
      JQGUUDFQYNUUKUUANUULVDUUIUWGONVDCDIFGUUCUMGYMUUJQSTMULKNUUHUUJUUJUULYFWTO
      UOOGCRTZIGSTZSTCJSTUUCUWKCUWLJSCWKWSXBVTYHWBGDRTZFSTDFSTGUMEZUWMDFSDYIWSW
      DFDUWNXSYIYJWFWBXDGFRTZQSTFQSTFUWBUWOFQSFXSWSWDFXSWTUWCXCXDBYKXEYL $.

    $( 1259 is a prime number.  (Contributed by Mario Carneiro, 22-Feb-2014.)
       (Proof shortened by Mario Carneiro, 20-Apr-2015.) $)
    1259prm $p |- N e. Prime $=
      ( c2 c3 c4 cdc c7 c1 co 3nn0 c5 c8 cmul caddc 1nn0 2nn0 deccl 8nn0 eqid
      c9 cmin 37prm 4nn decnncl 5nn0 8p1e9 eqtr4i oveq1i nn0cni ax-1cn pncan3oi
      decaddi eqtri 4nn0 7nn0 3t3e9 2p1e3 oveq12i 9p3e12 3cn 2cn 3p2e5 addcomli
      4t3e12 decmac 7cn 7t3e21 mulcomli 1p2e3 4cn 7t4e28 decmul1c decmul2c wcel
      cc wceq cn0 9nn0 eqeltri npcan eqcomi 1nn 2nn cexp numexp1 oveq2i clt 7nn
      mp2an 4lt7 declt breqtrri 1259lem4 1259lem5 pockthi ) CDEFZDGFZHWPAHUAIZA
      UBDEJUCUDZWRHCFZKFZLFZWPWQMIZWRXBHNIZHUAIXBAXDHUAAXATFZXDBXALTXBHWTKHCOPQ
      UEQZROXBSUFULUGUHXBHXBXALXFRQUIUJUKUMDGXALWPCDFZWQDEJUNQJUOWQSRCDPJQDECDD
      WTKHWPXGJUNPJWPSZXGSJUEODDMIZCHNIZNITDNIWTXITXJDNUPUQURUSUMHCKEDMIDOPJVDD
      CKUTVAVBVCULVEDEXGLGCWPUOJUNXHRPCHDDGMICPOPGDCHFVFUTVGVHVIULGECLFVFVJVKVH
      VLVMUGZWRHNIZAAVOVNHVOVNXLAVPAAXEVQBXATXFVRQVSUIUJAHVTWIWAWSWBWCWRXCWPWQH
      WDIZMIXKXMWQWPMWQDGJUOQWEZWFUGWPWQXMWGDEGJUNWHWJWKXNWLABWMABWNWO $.
  $}

  ${
    2503prm.1 $e |- N = ; ; ; 2 5 0 3 $.
    $( Lemma for ~ 2503prm .  Calculate a power mod.  In decimal, we calculate
       ` 2 ^ 1 8 = 5 1 2 ^ 2 = 1 0 4 N + 1 8 3 2 == 1 8 3 2 ` .  (Contributed
       by Mario Carneiro, 3-Mar-2014.)  (Revised by Mario Carneiro,
       20-Apr-2015.)  (Proof shortened by AV, 16-Sep-2021.) $)
    2503lem1 $p |- ( ( 2 ^ ; 1 8 ) mod N ) = ( ; ; ; 1 8 3 2 mod N ) $=
      ( c2 c1 cc0 c4 c5 c3 2nn0 5nn0 deccl 0nn0 4nn0 1nn0 co c6 eqid cmul caddc
      cdc c9 c8 cn 3nn decnncl eqeltri 2nn 9nn0 10nn0 nn0zi 8nn0 3nn0 cmo 8p1e9
      2exp8 dec0h 2t2e4 ax-1cn addid2i oveq12i 4p1e5 eqtri 5t2e10 decsuc decmac
      cexp 6t2e12 decmul1c numexpp1 oveq1i 9cn 2cn 9t2e18 mulcomli 1p1e2 8p3e11
      6nn0 decaddci 3p1e4 decadd addid1i 2p2e4 decaddi addcomli dec0u 5p1e6 6cn
      nn0cni 4t2e8 8p4e12 5cn 4cn 5t4e20 decma2c mul01i 3eqtri 3cn mulid2i 00id
      mul02i 4t3e12 decrmac c7 7nn0 6p1e7 oveq2i 5t5e25 7p5e12 mulid1i decrmanc
      7cn decmul1 decmul2c eqtr4i mod2xi ) CUADETZFTZDUBTZGDTZCTZXRHTZCTZAACGTZ
      ETZHTUCBYDHYCECGIJKZLKZUDUEUFUGUHXQXPFUIMKZUJXSCGDJNKZIKZYACXRHDUBNUKKZUL
      KZIKCUAVFOXTAUMCXTUBUAIUKUNYCPXSCCDCUBVFOIYEVQUOINCGEDCGDDYCDIJLNYCQZDNUP
      ZINNCCROZEDSOZSOFDSOGYNFYODSUQDURUSZUTVAVBDEDGCRONLYPVCVDVEVGVHVIVJUACXRV
      KVLVMVNXQAROYBSOCPTZCTZDTZFTZFTXTXTROYDHYACXQYTFHDTZAYBYFULYKIBYBQYGMHDUL
      NKYCECDTZFXQYSFEYDYAUUASOYELCDINKZMYDQXRHHDUUBFYAUUAYJULULNYAQUUAQDUBDCXR
      HNUKULXRQVONVPVRVSVTYGMLCGCDXQYRDGCTZYCUUBESOIJINYLUUBUUBUUCWHWAYGNGCJIKZ
      XPFGFCYQCDXQCUUDSOUIMJMXQQZUUDCGFTUUDUUEWHVLGCFUUDCJIIUUDQWBWCWDIINXPCROZ
      GDSOZSOCETZPSOYQUUGUUIUUHPSCIWEWFUTCEPUUIPILVQUUIQPWGUSWCVBFCROZFSOUBFSOD
      CTZUUJUBFSWIVJWJVBVEXPFEDGUUDDCXQDUIMLNUUFYMJNIXPGROZECSOZSOGETZCSOUUDUUL
      UUNUUMCSGJWECVLUSZUTGECUUNCJLIUUNQUUOWCVBCEDFGROILYPGFUUIWKWLWMVNVDVEWNXQ
      EROZFSOEFSOFEFTUUPEFSXQXQYGWHWOVJFWLUSFMUPWPWNXPFHUUAFDXQCUIMIUUFULMNDEED
      HHDEXPDNLLNXPQZYMULNLDHROZEESOZSOHESOHUURHUUSESHWQWRWSUTHWQWAVBEHROZDSOYO
      DEDTUUTEDSHWQWTVJYPYMWPVEDCFFHROCNIIXAWBWCXBWNXSCYTFXTXPCTZXTYIYHIXTQZMXP
      CUIIKGDXPCXTYSFXSXSUVAJNUIIXSQZUVAQYIMYHXSCPDGYRDDXTXPXSSOYHIVQNUVBDEGDPD
      XPXSNLJNUUQUVCGDPWKURWFWDYPVTJNNGDEXCGYQCDXSPDSOZJNLXDUVCUVDXCEXCTXEXCXDU
      PVBJINGGROZYOSOUVEDSOYQYODUVESYPXFCGPUVEIJWFXGVDVBDGROZXCSOGXCSOUUKUVFGXC
      SGWKWRVJXCGUUKXKWKXHWDVBVEDEDCGRONLYPGCXPWKVLVCVNVDVEXSCDXSFXTCYHIIUVBNXS
      XSYHWHXICDROZCSOCCSOFUVGCCSCVLXIVJWBVBXJWNXSCUVAFCXTIYHIUVBMGDXPCCXSIJNUV
      CIVCCVLWRXLUQXLXMXNXO $.

    $( Lemma for ~ 2503prm .  Calculate a power mod.  We calculate
       ` 2 ^ 1 9 = 2 ^ 1 8 x. 2 == 1 8 3 2 x. 2 = N + 1 1 6 1 ` ,
       ` 2 ^ 3 8 = ( 2 ^ 1 9 ) ^ 2 == 1 1 6 1 ^ 2 = 5 3 8 N + 1 3 0 7 ` ,
       ` 2 ^ 3 9 = 2 ^ 3 8 x. 2 == 1 3 0 7 x. 2 = N + 1 1 1 ` ,
       ` 2 ^ 7 8 = ( 2 ^ 3 9 ) ^ 2 == 1 1 1 ^ 2 = 5 N - 1 9 4 ` ,
       ` 2 ^ 1 5 6 = ( 2 ^ 7 8 ) ^ 2 == 1 9 4 ^ 2 = 1 5 N + 9 1 ` ,
       ` 2 ^ 3 1 2 = ( 2 ^ 1 5 6 ) ^ 2 == 9 1 ^ 2 = 3 N + 7 7 2 ` ,
       ` 2 ^ 6 2 4 = ( 2 ^ 3 1 2 ) ^ 2 == 7 7 2 ^ 2 = 2 3 8 N + 2 7 0 ` ,
       ` 2 ^ 1 2 4 8 = ( 2 ^ 6 2 4 ) ^ 2 == 2 7 0 ^ 2 = 2 9 N + 3 1 3 ` ,
       ` 2 ^ 1 2 5 1 = 2 ^ 1 2 4 8 x. 8 == 3 1 3 x. 8 = N + 1 ` and finally
       ` 2 ^ ( N - 1 ) = ( 2 ^ 1 2 5 1 ) ^ 2 == 1 ^ 2 = 1 ` .  (Contributed by
       Mario Carneiro, 3-Mar-2014.)  (Revised by Mario Carneiro, 20-Apr-2015.)
       (Proof shortened by AV, 16-Sep-2021.) $)
    2503lem2 $p |- ( ( 2 ^ ( N - 1 ) ) mod N ) = ( 1 mod N ) $=
      ( c2 c1 cdc c5 cc0 co c3 2nn0 0nn0 1nn0 c4 c8 4nn0 c6 c9 c7 cmul caddc cn
      cmin 5nn0 deccl 3nn decnncl eqeltri 2nn 0z 8nn0 3nn0 6nn0 9nn0 nn0zi 7nn0
      4nn 2503lem1 8p1e9 eqid decsuc nn0cni addid1i mulid2i 1p0e1 oveq12i 2p1e3
      2cn eqtri 5cn oveq1i 5p1e6 dec0h 3eqtri decma2c ax-1cn mul01i 6cn addid2i
      1z 3cn 3p1e4 8t2e16 decmul1c 3t2e6 decmul1 2t2e4 eqtr4i modxp1i 2t1e2 9cn
      9t2e18 mulcomli decmul2c 1p1e2 6p3e9 addcomli decadd 6p1e7 9p2e11 decaddc
      7p1e8 oveq2i 5t2e10 decaddi 8p6e14 decmac 0p1e1 5t5e25 5t3e15 5p4e9 3t3e9
      8cn 4cn 8t5e40 9p3e12 8t3e24 7cn 7p4e11 decaddci 1t1e1 00id 1p2e3 mulid1i
      mod2xi mul02i 7t2e14 4t2e8 8p4e12 4p1e5 9p4e13 7p5e12 9p8e17 9t9e81 4p3e7
      decsucc 9t4e36 decrmac 9p6e15 7t7e49 decaddci2 9p1e10 decma 6t6e36 6p6e12
      decaddc2 2p2e4 5t4e20 4t3e12 5p2e7 4p2e6 7p6e13 4t4e16 6t2e12 6p2e8 7p2e9
      mod2xnegi 9p9e18 5p5e10 9p5e14 4p4e8 9t5e45 9t3e27 7p3e10 cexp cmo 8p3e11
      cu2 nncni 8p2e10 modxai mvrraddi ) CDCEZFEZDEZGADUBHZDDAACFEZGEZIEZUABUVQ
[encoded data, 10160 characters]
      GGASHZDTHVXJWUAXVIGDTAXVEYEVJWUADVXJXTXGWGWGYD $.

    $( Lemma for ~ 2503prm .  Calculate the GCD of ` 2 ^ 1 8 - 1 == 1 8 3 1 `
       with ` N = 2 5 0 3 ` .  (Contributed by Mario Carneiro, 3-Mar-2014.)
       (Revised by Mario Carneiro, 20-Apr-2015.)  (Proof shortened by AV,
       15-Sep-2021.) $)
    2503lem3 $p |- ( ( ( 2 ^ ; 1 8 ) - 1 ) gcd N ) = 1 $=
      ( c1 c8 cdc c3 c2 co 1nn0 c5 cc0 2nn0 c6 c7 7nn0 c4 c9 cmul caddc eqtri
      cexp cmin cn wcel cn0 2nn 8nn0 deccl nnexpcl mp2an nnm1nn0 3nn0 5nn0 0nn0
      ax-mp 3nn decnncl eqeltri 2503lem1 1p1e2 eqid modsubi 6nn0 4nn0 9nn0 cgcd
      decsuc cz wceq nn0zi gcdcom cdvds wbr 9nn 1nn mulid2i oveq12i 2p2e4 8p1e9
      wn 2cn 9t2e18 decmac 1lt9 declt ndvdsi cprime wb 19prm coprm mpbi 4cn 9cn
      4p2e6 oveq1i 9p9e18 decma2c gcdi 4p1e5 6p5e11 9p8e17 addcomli 6p1e7 dec0h
      6cn 8cn 1t1e1 00id ax-1cn addid1i 7cn 7p1e8 3eqtri 8p7e15 8t2e16 mulcomli
      2t1e2 6p2e8 decaddi 5cn 5t2e10 addid2i 7p5e12 oveq2i 6t2e12 7t2e14 9p4e13
      decaddci 2t2e4 7p4e11 nn0cni 3cn 7p3e10 1p2e3 eqtr4i gcdmodi ) CDEZFEZCEZ
      CGYQUAHZCUBHZAYTUCUDZUUAUEUDGUCUDYQUEUDUUBUFCDIUGUHZGYQUIUJZYTUKUOYRCYQFU
      UCULUHZIUHZAGJEZKEZFEZUCBUUHFUUGKGJLUMUHUNUHUPUQURZYTCYRGEYSAUUJUUDIUUFAB
      USYRCGYSUUEIUTYSVAZVGVBMNEZGEZCCAYSIUULGMNVCOUHZLUHZUUFPDEZNEZCGYSUUMLUUP
      NPDVDUGUHZOUHZUUOYQJEZCCUUMUUQIYQJUUCUMUHZUUSCCEZNEZCGUUQUUTLUVBNCCIIUHZO
      UHZUVAMDEZCCUUTUVCIMDVCUGUHZUVEPQEZCCUVCUVFIPQVDVEUHZUVGCQEZCCUVFUVHICQIV
      EUHZUVIUVHUVJVFHZUVJUVHVFHZCUVHVHUDZUVJVHUDUVLUVMVIUVHUVIVJZUVJUVKVJUVHUV
      JVKUJUVJUVHVLVMVTZUVMCVIZUVJUVHGUVBCQIVNUQLCCIVOUQCQCCGPQCUVJUVBIVEIIUVJV
      AZUVBVAZLVEICGRHZCCSHZSHGGSHZPUVTGUWAGSGWAVPUTVQVRTCDQQGRHIUGVSWBVGWCCCQI
      IVNWDWEWFUVJWGUDUVNUVPUVQWHWIUVOUVJUVHWJUJWKTPQCQCMDCUVHUVJVDVEIVEUVHVAZU
      VRIUGICPRHZUWASHPGSHZMUWDPUWAGSPWLVPUTVQWNTZCQRHZQSHQQSHYQUWGQQSQWMVPWOWP
      TWQWRMDPQCUVBNCUVFUVHVCUGVDVEUVFVAZUWCIOICMRHZPCSHZSHMJSHUVBUWIMUWJJSMXEV
      PWSVQWTTCDRHZQSHDQSHCNEZUWKDQSDXFVPZWOQDUWLWMXFXAXBTZWQWRUVBNMDCYQJCUVCUV
      FUVDOVCUGUVCVAZUWHIUMICCKNCCDKUVBMCSHZIIUNOUVSUWPNKNEXCNOXDTZIUGUNCCRHZKK
      SHZSHCKSHCUWRCUWSKSXGXHVQCXIXJTUWRNSHCNSHDKDEUWRCNSXGWONCDXKXIXLXBDUGXDXM
      WQCNRHZDSHNDSHCJEZUWTNDSNXKVPZWODNUXAXFXKXNXBTWQWRYQJUVBNGUUPNCUUTUVCUUCU
      MUVDOUUTVAZUWOLOICDCGGPDCYQUVBCSHIUGILYQVAZCCGUVBIIUTUVSVGLUGIGCRHZUWASHU
      WBPUXEGUWAGSXQUTVQVRTCMDGDRHGIVCLDGCMEXFWAXOXPXRXSWQCKNGJRHNIUNOJGCKEZXTW
      AYAXPNXKYBXSWQWRUUPNYQJCUULGCUUQUUTUUROUUCUMUUQVAZUXCILIPDCQCMNCUUPYQCSHV
      DUGIVEUUPVAZCDQYQIUGVSUXDVGIOIUWFUWNWQUWTJSHNJSHCGEZUWTNJSUXBWOYCTWQWRUUL
      GUUPNGYRCCUUMUUQUUNLUUROUUMVAZUXGLIIMNPQGYQFGUULUUPCSHVCOVDVEUULVAPDQUUPV
      DUGVSUXHVGLULLGMRHZUWESHUXKMSHYQUWEMUXKSWNYDCGDUXKMILVCMGUXIXEWAYEXPMGDXE
      WAXRXBXSTCPFGGNRHQIVDVENGCPEXKWAYFXPUTULQPCFEWMWLYGXBYHWQGGRHZNSHPNSHUVBU
      XLPNSYIWONPUVBXKWLYJXBTWQWRCYSRHUUMSHUUIAYRCUULGCUUHFKYSUUMUUEIUUNLUUKUXJ
      IULUNYQFMNCUUGKCYRUULKSHUUCULVCOYRVAUULUULUUNYKXJIUNICDKNCGJCYQUWPIUGUNOU
      XDUWQIUMIUWRKCSHZSHUWAGUWRCUXMCSXGCXIYBVQUTTUWKNSHDNSHUXAUWKDNSUWMWOXNTWQ
      CFRHZNSHFNSHUXFUXNFNSFYLVPWONFUXFXKYLYMXBTWQUWRGSHCGSHFKFEUWRCGSXGWOYNFUL
      XDXMWQBYOWRYP $.

    $( 2503 is a prime number.  (Contributed by Mario Carneiro, 3-Mar-2014.)
       (Proof shortened by Mario Carneiro, 20-Apr-2015.) $)
    2503prm $p |- N e. Prime $=
      ( c2 c1 c8 cdc c3 c9 co 1nn0 cc0 caddc cmul 2nn0 deccl 0nn0 c6 3nn0 6nn0
      c7 cmin 139prm 8nn decnncl 5nn0 2p1e3 eqid decsuc eqtr4i oveq1i 8nn0 9nn0
      c5 7nn0 6cn ax-1cn 6p1e7 addcomli dec0h eqtri mulid1i addid2i oveq12i 8cn
      1p1e2 8p7e15 decmac 3cn mulid2i 3p3e6 c4 4nn0 8t3e24 4cn 6p4e10 decaddci2
      decma2c 9cn 9p7e16 9t8e72 mulcomli decmul1c decmul2c nn0cni pncan3oi wcel
      wceq cn0 eqeltri npcan mp2an eqcomi 1nn 2nn cexp numexp1 oveq2i clt 8lt10
      cc 1lt10 declti decltc breqtrri 2503lem2 2503lem3 pockthi ) CDEFZDGFZHFZD
      XHADUAIZAUBDEJUCUDZXKCUMFZKFZCFZDLIZDUAIZXHXJMIZAXPDUAAXNGFZXPBXNCGXOXMKC
      UMNUEOPOZNUFXOUGUHUIUJXRXOXQXIHXNCXHDQFZXJDEJUKOZDGJROZULXJUGNDQJSODGDQXH
      XMKQXIYAJRJSXIUGYAUGYBPSDEKTDCUMDXHDQLIZJUKPUNXHUGZYDTKTFQDTUOUPUQURTUNUS
      UTJUEJDDMIZKDLIZLIDDLICYFDYGDLDUPVADUPVBVCVEUTEDMIZTLIETLIDUMFYHETLEVDVAU
      JVFUTVGDEKQGQKGXHQJUKPSYEQSUSRPRDGMIZKGLIZLIGGLIQYIGYJGLGVHVIGVHVBVCVJUTC
      VKGEGMIQNVLSVMUFQVKDKFUOVNVOURVPVGVQDEYACHTXHULJUKYENUNDHMIZTLIHTLIYAYKHT
      LHVRVIUJVSUTHETCFVRVDVTWAWBWCXODXOXNCXTNOWDUPWEUIUIZXKDLIZAAWTWFDWTWFYMAW
      GAAXSWHBXNGXTROWIWDUPADWJWKWLXLWMWNXKXRXHXJDWOIZMIYLYNXJXHMXJXIHYCULOWPZW
      QUIXHXJYNWRDXIEHJYCUKULWSDGDWMRJXAXBXCYOXDABXEABXFXG $.
  $}

  ${
    4001prm.1 $e |- N = ; ; ; 4 0 0 1 $.
    $( Lemma for ~ 4001prm .  Calculate a power mod.  In decimal, we calculate
       ` 2 ^ 1 2 = 4 0 9 6 = N + 9 5 ` ,
       ` 2 ^ 2 4 = ( 2 ^ 1 2 ) ^ 2 == 9 5 ^ 2 = 2 N + 1 0 2 3 ` ,
       ` 2 ^ 2 5 = 2 ^ 2 4 x. 2 == 1 0 2 3 x. 2 = 2 0 4 6 ` ,
       ` 2 ^ 5 0 = ( 2 ^ 2 5 ) ^ 2 == 2 0 4 6 ^ 2 = 1 0 4 6 N + 1 0 7 0 ` ,
       ` 2 ^ 1 0 0 = ( 2 ^ 5 0 ) ^ 2 == 1 0 7 0 ^ 2 = 2 8 6 N + 6 1 4 ` and
       ` 2 ^ 2 0 0 = ( 2 ^ 1 0 0 ) ^ 2 == 6 1 4 ^ 2 = 9 4 N + 9 0 2 `
       ` == 9 0 2 ` .  (Contributed by Mario Carneiro, 3-Mar-2014.)  (Revised
       by Mario Carneiro, 20-Apr-2015.)  (Proof shortened by AV,
       16-Sep-2021.) $)
    4001lem1 $p |- ( ( 2 ^ ; ; 2 0 0 ) mod N ) = ( ; ; 9 0 2 mod N ) $=
      ( c2 c1 cc0 c9 c4 c6 4nn0 0nn0 deccl 9nn0 6nn0 1nn0 2nn0 c5 co cmul caddc
      cdc cn 1nn decnncl eqeltri 10nn0 nn0zi c8 c7 5nn0 8nn0 7nn0 c3 0z 3nn0 2z
      2nn 1z cexp cmo 2exp6 oveq1i 6cn 2cn 6t2e12 mulcomli eqid 9cn dec0h eqtri
      addid1i 00id mulid2i oveq12i ax-1cn mul01i 3eqtri decma2c addid2i mulid1i
      4cn 5cn 5p1e6 addcomli 2p2e4 oveq2i 6t6e36 3p1e4 6p4e10 decaddci2 decaddi
      6t4e24 decmac decsuc 4t4e16 decmul1c decmul2c eqtr4i mod2xi nn0cni dec10p
      5p4e9 4p1e5 2t2e4 4t2e8 8p1e9 3cn 3p2e5 9t9e81 9p1e10 9t5e45 7cn decaddci
      7p5e12 5p2e7 5t5e25 nncni mul02i dec0u decmul1 3t2e6 3eqtr4i 5t2e10 0p1e1
      modxp1i 10p10e20 7p4e11 decaddc cn0 dfdec10 6p2e8 decrmac 4p2e6 8cn 2p1e3
      eqcomi decadd 9p2e11 decrmanc 6p3e9 6p1e7 decaddc2 8p3e11 8t4e32 7p7e14
      4p3e7 7t7e49 9t4e36 8p2e10 decma ) CDETZETZFGTZCETZETZHDTZGTZFETZCTZAAGET
[encoded data, 5600 characters]
      QVUQPUXNGDSUXOVAXBVIYRWNWOWPWQWR $.

    $( Lemma for ~ 4001prm .  Calculate a power mod.  In decimal, we calculate
       ` 2 ^ 4 0 0 = ( 2 ^ 2 0 0 ) ^ 2 == 9 0 2 ^ 2 = 2 0 3 N + 1 4 0 1 ` and
       ` 2 ^ 8 0 0 = ( 2 ^ 4 0 0 ) ^ 2 == 1 4 0 1 ^ 2 = 4 9 0 N + 2 3 1 1 `
       ` == 2 3 1 1 ` .  (Contributed by Mario Carneiro, 3-Mar-2014.)  (Revised
       by Mario Carneiro, 20-Apr-2015.)  (Proof shortened by AV,
       16-Sep-2021.) $)
    4001lem2 $p |- ( ( 2 ^ ; ; 8 0 0 ) mod N ) = ( ; ; ; 2 3 1 1 mod N ) $=
      ( c2 c4 cc0 cdc c9 c8 c1 c3 4nn0 0nn0 deccl 1nn0 2nn0 eqid cmul co caddc
      c6 cn 1nn decnncl eqeltri 2nn 9nn0 nn0zi 4001lem1 nn0cni 2cn 2t2e4 mul02i
      3nn0 decmul1 mulcomli 6nn0 4p2e6 decaddi 00id decadd addid1i ax-1cn dec0h
      eqtri cn0 addid2i 4cn 4t2e8 oveq12i 2p1e3 3cn 4t3e12 decsuc decmac mul01i
      decrmanc oveq1i 6cn 3eqtri decma2c mulid1i 3p1e4 8nn0 1p2e3 9t9e81 9t2e18
      1p1e2 8p8e16 decaddci decmul2c eqtr4i mod2xi c7 7nn0 7p1e8 4p3e7 addcomli
      9cn 9p1e10 decaddc2 4t4e16 6p3e9 9t4e36 decmul1c 8cn c5 5cn 5p4e9 mulid2i
      5nn0 4p1e5 0cn 4p4e8 ) CDEFZEFZDGFZEFZHEFZEFZIDFZEFZIFZCJFZIFZIFZAAXOIFUA
      BXOIXNEDEKLMZLMZUBUCUDZUEYGXQXPEDGKUFMZLMZUGYAIXTEIDNKMZLMZNMZYDIYCICJOUM
      MZNMZNMCCEFZEFZYPJFZXOGEFZCFZYBAYHUEYPECEOLMZLMZYRYPJUUAUMMZUGYSCGEUFLMZO
      MZYMABUHYQCXOYQUUBUIUJYPEXNECYQOUUALYQPLCEDECYPOOLYPPZLUKCUJULZUNUUGUNUOY
      RAQRYBSRHIFZJFZTFZEFZDFYTYTQRXOIYAIYRUUKDYPAYBYGNYLNBYBPZUUCKUUAXNEITFZEY
      RUUJEEXOYAYPSRYFLITNUPMZLXOPZXTECEUUMEYAYPYKLOLYAPZUUFIDTXTCNKOXTPZUQURUS
      UTUUCLLDEITYRUUITEXNUUMESRKLNUPXNPZUUMUUMUUNUIVAUUCUPLYPJEIDUUHJIYRIESRZU
      UAUMLNYRPZUUSIEIFIVBVAZINVCZVDKUMNCEDHIYPEISRZOLUVCIVEIVBVFZNUDUUFKDCHVGU
      JVHUOEDQRZUVCSRUVCIUVEEUVCISDVGULZUVDVIUVDVDVPICJJDQRNOVJDJICFVGVKVLUOVMV
      NYREQRZTSRETSRZTETFZUVGETSYRYRUUCUIVOZVQTVRVFZTUPVCZVSVTUVGESREESRZEEEFZU
      VGEESUVJVQUSELVCZVSVTYPJIYPDYRIUUAUMNUUTNCECEIYPNOLUUFLCUJWAIVBULZUNJIQRZ
      ISRJISRDUVQJISJVKWAVQWBVDVPVTYSCUUKDYTIHFZEFZYTUUEUUDOYTPZKUVREIHNWCMZLMG
      EUVREYTUUJEEYSUVSUFLUWALYSPZUVSPUUELLYSCIHGUUITCYTUVRESRUUDONWCUVTUVRUVRU
      WAUIVAUFUPOGEGUUHJYSICSRZUFLUWCJVEWDUMUDUWBUFWEEGQRZUWCSREJSRJUWDEUWCJSGW
      RULWDVIJVKVFVDVPIHTCCGQRHNWCWCGCUVRWRUJWFUOWGUPWHWIVNYTEQRZESRUVMEUVNUWEE
      ESYTYTUUEUIVOVQUSUVOVSVTYSCUVSDCYTOUUDOUVTKGEUVRECYSOUFLUWBLWFUUGUNUKUNWJ
      WKWLXOCXSXOYGUIUJXNEXRECXOOYFLUUOLDEHECXNOKLUURLVHUUGUNUUGUNUOXQAQRYESRIG
      FZTFZCFZHFZEFZIFYBYBQRXOIYDIXQUWJIXPAYEYGNYONBYEPYJNYIXNECHFZEXQUWIEEXOYD
      XPSRYFLCHOWCMZLUUOYCIDGUWKYDXPYNNKUFYDPXPPZCWMHYCDSROWNWOCJWMYCDOUMKYCPDJ
      WMVGVKWPWQURVMGIIEFWRVBWSWQWTYJLLDECHXQUWHHEXNUWKESRKLOWCUURUWKUWKUWLUIVA
      YJWCLXPEDUWGCXQCESRZYILUWNCVECUJVAZOUDXQPZKDGUWFTDJXPKKUFUWMUPUMITGDDQRJN
      UPUMXAXBURXCXDUVEUWNSRECSRCUVEEUWNCSUVFUWOVICUJVFVDVPXQEQRZHSREHSRHEHFUWQ
      EHSXQXQYJUIVOZVQHXEVFHWCVCVSVTUWQESRUVMEUVNUWQEESUWRVQUSUVOVSVTXPEIXPIXQI
      YILNUWPNDGDGIXPNKUFUWMUFDVGWAZGWRWAUNEIQRZISRUVCIUWTEISUVPVQUVDVDVPVTYAIU
      WJIYBYAYBYMYLNUULNYLXTEXTEYBUWIEEYAYAYKLYKLUUPUUPYMLLIDIDYBUWHHXFTFZEFZXT
      XTESRNKNKUUQXTXTYKUIVAYMWCUXAEXFTXJUPMZLMYAIUXAIIUWGCEYBIUXBSRYLNUXCNUULE
      IUXAEUXAIIUXBLNUXCLUVBUXBPUXAUXAUXCUIZVFUVAUTNOLXTEXFTIUWFTEYAUXAESRYKLXJ
      UPUUPUXAUXDVANUPLIDIIGXTXFESRZNKUXEXFVEXFXGVAZXJUDUUQNIVBWAZDIQRZUXESRDXF
      SRGUXHDUXEXFSUWSUXFVIXFDGXGVGXHWQVDVPUWTTSRUVHTUVIUWTETSUVPVQUVKUVLVSVNII
      QRZISRIISRCECFUXIIISUXGVQWGCOVCVSVNYAIDUXBHYBDYLNKUULKXTEUXAEDEYAKYKLUUPL
      LXFTTXTDQREXJUPLIDXFTDIXTKNKUUQUPNIDQRZISRDISRXFUXJDISDVGXIZVQXKVDXAXDTVR
      VAURDEUVNVGXLDEQREUVNDVGVOUVOVDUOXDUXJDSRDDSRHUXJDDSUXKVQXMVDVPVTYBEQRZES
      RUVMEUVNUXLEESYBYBYMUIZVOVQUSUVOVSVTYBUXMWAWJWKWL $.

    $( Lemma for ~ 4001prm .  Calculate a power mod.  In decimal, we calculate
       ` 2 ^ 1 0 0 0 = 2 ^ 8 0 0 x. 2 ^ 2 0 0 == 2 3 1 1 x. 9 0 2 `
       ` = 5 2 1 N + 1 ` and finally
       ` 2 ^ ( N - 1 ) = ( 2 ^ 1 0 0 0 ) ^ 4 == 1 ^ 4 = 1 ` .  (Contributed by
       Mario Carneiro, 3-Mar-2014.)  (Revised by Mario Carneiro, 20-Apr-2015.)
       (Proof shortened by AV, 16-Sep-2021.) $)
    4001lem3 $p |- ( ( 2 ^ ( N - 1 ) ) mod N ) = ( 1 mod N ) $=
      ( c2 cc0 c1 co c4 0nn0 deccl 2nn0 1nn0 c8 c5 5nn0 eqid cmul caddc decmul1
      cdc c9 cmin cn 4nn0 1nn decnncl eqeltri 2nn 0z 10nn0 8nn0 nn0zi 3nn0 9nn0
      c3 4001lem2 4001lem1 8p2e10 decadd dec0h nn0cni addid2i 5cn addid1i eqtri
      00id cn0 5t4e20 4cn 4t2e8 mulcomli mulid2i oveq12i decrmanc mul01i oveq1i
      2cn 3eqtri decma2c mulid1i ax-1cn 1p1e2 c6 6nn0 4p1e5 9t2e18 decaddci2 c7
      9cn 7nn0 7p1e8 3cn 9t3e27 decsuc decrmac 9p5e14 9p6e15 decmac 2t2e4 3t2e6
      decmul2c eqtr4i modxai dec0u mul02i nncni mod2xi mvrraddi ) CCDSZDSZDSZDA
      EUAFZEEAAGDSZDSZESZUBBXMEXLDGDUCHIZHIZUDUEUFZUGXIDXHDCDJHIZHIZHIZUHKKCEDS
      ZDSZDSZDXJEEAXQUGYBDYADUIHIZHIZUHKKCLDSZDSZXIMCSZESZYCCUNSZESZESZTDSZCSZE
      AXQUGYFDLDUJHIZHIYIYHEMCNJIZKIZUKYKEYJECUNJULIZKIZKIZKXSYMCTDUMHIZJIABUOA
      BUPYFDXHDYBDYGXIYOHXRHYGOXIOZLDCDYADYFXHUJHJHYFOXHOZUQVEURVEURYIAPFEQFXHL
      SZGSZMSZCSZCSYLYNPFXMEDEYIUUGCYHAEXPKHKBEKUSYQJYPXLDMCYIUUFCDXMDYHQFXOHNJ
      XMOYHYHYPUTZVAYQJHGDDMYIUUEMDXLMDQFZUCHHNXLOUUIMDMSZMVBVCMNUSZVDYQNHYHEGU
      UDGYIDDQFZYPKUULDVFVEHUFYIOZUCMCXHLGYHUCNJYHOUJVGGCLVHVPVIVJREGPFZUULQFGD
      QFGUUNGUULDQGVHVKVEVLGVHVCVDVMYIDPFZMQFDMQFMUUJUUODMQYIYIYQUTVNZVOMVBVAUU
      KVQVRUUOCQFDCQFZCDCSZUUODCQUUPVOCVPVAZCJUSZVQVRYHEEYHCYIEYPKKUUMKYHUUHVSE
      EPFZEQFEEQFCUVAEEQEVTVKZVOWAVDVMVRYMCUUGCYLGWBSZCSZYNYTUUAJYNOJUVCCGWBUCW
      CIZJITDUVCCYLUUFCDYMUVDUMHUVEJYMOUVDOYTJHYKEGWBTUUEMEYLUVCDQFYSKUCWCYLOZU
      VCUVCUVEUTVCUMNKYJETUUDGEYKGEQFZYRKUVGMVFWDNUFYKOZUMUCKCUNTXHLCYJEJULKYJO
      ZUMUJJELCCTPFCKUJJTCELSWHVPWEVJWAUQWFCWGLUNTPFJWIWJTUNCWGSWHWKWLVJWMWNETP
      FZUVGQFTMQFEGSUVJTUVGMQTWHVKZWDVLWOVDWNUVJWBQFTWBQFEMSUVJTWBQUVKVOWPVDWQY
      LDPFZCQFUUQCUURUVLDCQYLYLYTUTVNVOUUSUUTVQVRYKEUVDCCYLJYSKUVFJYJEUVCCCYKJY
      RKUVHJCUNGWBCYJJJULUVIWCWRWSRCVPVKZRUVMRWTXAXBYCCXJYCYEUTVPYBDXIDCYCJYDHY
      COHYADXHDCYBJUIHYBOHCJXCCVPXDZRUVNRVJDAPFZEQFDEQFZUVAUVODEQAAXQXEXDVOUVAE
      UVPUVBEVTVAZXAXAZXFCXJPFXMDSZXKXJCUVSXJXTUTVPXIDXMDCXJJXSHXJOHXHDXLDCXIJX
      RHUUBHCDGDCXHJJHUUCHWRUVNRUVNRUVNRVJAUVSEUVSXMDXPHIUTVTAXNUVSEQFBXMDEUVSX
      PHUVQUVSOWMXAXGXAUVRXF $.

    $( Lemma for ~ 4001prm .  Calculate the GCD of ` 2 ^ 8 0 0 - 1 == 2 3 1 0 `
       with ` N = 4 0 0 1 ` .  (Contributed by Mario Carneiro, 3-Mar-2014.)
       (Revised by Mario Carneiro, 20-Apr-2015.)  (Proof shortened by AV,
       16-Sep-2021.) $)
    4001lem4 $p |- ( ( ( 2 ^ ; ; 8 0 0 ) - 1 ) gcd N ) = 1 $=
      ( c2 c3 cdc c1 cc0 co 0nn0 deccl 2nn0 3nn0 1nn0 c4 c6 c9 c5 eqtri caddc
      c7 c8 cexp cmin cn wcel cn0 2nn 8nn0 nnexpcl mp2an nnm1nn0 ax-mp 4nn0 1nn
      decnncl eqeltri 4001lem2 0p1e1 eqid decsuc modsubi 6nn0 9nn0 5nn0 cgcd cz
      wceq nn0zi gcdcom cdvds wbr wn 3nn cmul 4cn 4t3e12 mulcomli 2p2e4 decaddi
      3cn 2lt3 ndvdsi cprime wb 3prm coprm mpbi dec0h 2t1e2 oveq12i 2p1e3 4t2e8
      2cn oveq1i 8p3e11 decma2c gcdi mulid2i addid1i 3p1e4 1t1e1 4p1e5 addcomli
      ax-1cn 3eqtri 8p4e12 5cn 5t2e10 4p2e6 5p1e6 1p1e2 6cn 6t2e12 3p2e5 nn0cni
      00id 6p5e11 6p3e9 5p2e7 oveq2i 7cn 7p2e9 9cn 9t2e18 decaddci 6p1e7 7p6e13
      7nn0 9p2e11 9p1e10 7p3e10 mul01i eqtr4i gcdmodi ) CDEZFEZGEZFCUAGEZGEZUBH
      ZFUCHZAYTUDUEZUUAUFUECUDUEYSUFUEUUBUGYRGUAGUHIJIJCYSUIUJZYTUKULYPGYOFCDKL
      JZMJZIJZANGEZGEZFEZUDBUUHFUUGGNGUMIJIJUNUOUPZYTFYPFEYQAUUJUUCMUUFABUQYPGF
      YQUUEIURYQUSZUTVAFOEZPEZFEZFFAYQMUUMFUULPFOMVBJZVCJZMJZUUFOFEZPEZFFYQUUNM
      UURPOFVBMJZVCJZUUQNQEZDEZFCUUNUUSKUVBDNQUMVDJZLJZUVAUULOEZFFUUSUVCMUULOUU
      OVBJZUVEFCEZFEZFCUVCUVFKUVHFFCMKJZMJZUVGUVBFFUVFUVIMUVDUVKDFEZFCUVIUVBKDF
      LMJZUVDFNEZFFUVBUVLMFNMUMJZUVMDFCUVLUVNKLUVOUVNDVEHZDUVNVEHZFUVNVFUEZDVFU
      EUVPUVQVGUVNUVOVHZDLVHUVNDVIUJDUVNVJVKVLZUVQFVGZDUVNNCVMUMUGFCNDNVNHCMKKN
      DUVHVOVTVPVQVRVSWAWBDWCUEUVRUVTUWAWDWEUVSDUVNWFUJWGRFNGDCDFFUVNDMUMILUVNU
      SZDLWHKMMCFVNHZGFSHZSHCFSHDUWCCUWDFSWIURWJWKRCNVNHZDSHUADSHFFEZUWEUADSNCU
      AVOWMWLVQZWNWORWPWQDFFNFNQGUVLUVNLMMUMUVLUSZUWBMVDIFDVNHZFGSHZSHDFSHZNUWI
      DUWJFSDVTWRZFXDWSZWJWTRFFVNHZNSHFNSHQGQEUWNFNSXAWNNFQVOXDXBXCQVDWHXEWPWQN
      QDFCUVHFFUVBUVLUMVDLMUVBUSZUWHKMMUWEUWKSHUANSHUVHUWEUAUWKNSUWGWTWJXFRFGFC
      QVNHMIURQCFGEZXGWMXHVQUTWPWQUVHFNQFUULOGUVIUVBUVJMUMVDUVIUSZUWOMVBIFCGNFF
      OGUVHNGSHZMKIUMUVHUSZUWRNGNENVOWSZNUMWHRMVBIUWNGGSHZSHUWJFUWNFUXAGSXAXPWJ
      UWMRFCVNHZNSHCNSHOGOEZUXBCNSCWMWRZWNNCOVOWMXIXCZOVBWHZXEWPUWNQSHFQSHOUXCU
      WNFQSXAWNQFOXGXDXJXCUXFXEWPWQUULOUVHFCUVBDFUVFUVIUUOVBUVJMUVFUSZUWQKLMFOF
      DCNQFUULUVHFSHMVBMLUULUSZFCDUVHMKWKUWSUTKVDMUWCFFSHZSHCCSHZNUWCCUXICSWIXK
      WJVRRFCQCOVNHZDMKLOCUVHXLWMXMVQZDCQVTWMXNXCVSWPFCDUXKMKWKUXLUTWPWQUVBDUUL
      OFUURPGUVCUVFUVDLUUOVBUVCUSZUXGMVCINQFOFOFFUVBUULGSHUMVDMVBUWOUULUULUUOXO
      WSMMMFNVNHZUXISHNCSHOUXNNUXICSNVOWRXKWJXIRFQVNHZOSHQOSHUWFUXOQOSQXGWRWNOQ
      UWFXLXGXQXCRWPUWIOSHDOSHPGPEZUWIDOSUWLWNODPXLVTXRXCPVCWHZXEWPWQUURPUVBDCU
      UMFCUUSUVCUUTVCUVDLUUSUSZUXMKMKOFNTCUULPGUURUVBCSHVBMUMYHUURUSZNQTUVBCUMV
      DKUWOXSVSKVCIUXKUWRSHUXKNSHUULUWRNUXKSUWTXTFCOUXKNMKUMUXLUXEVSRUWCTSHCTSH
      PUXPUWCCTSWIWNTCPYAWMYBXCUXQXEWPFUAFCCPVNHDMUHLPCFUAEYCWMYDVQXKMWOYEWPWQU
      UMFUURPFYPGFUUNUUSUUPMUUTVCUUNUSZUXRMIMUULPOCFYOFFUUMUURFSHUUOVCVBKUUMUSO
      FCUURVBMXKUXSUTMMMFOGTFCDFUULOFSHZMVBIYHUXHUYATGTEYFTYHWHRMLMUWNUWDSHUXIC
      UWNFUWDFSXAURWJXKRFOVNHZTSHOTSHFDEZUYBOTSOXLWRWNTOUYCYAXLYGXCRWPFPVNHZCSH
      PCSHUWFUYDPCSPYCWRWNYIRWPUWNPSHFPSHUWPUWNFPSXAWNPFUWPYCXDYJXCRZWPWQFYQVNH
      UUNSHUUIAYPGUUMFFUUHFGYQUUNUUEIUUPMUUKUXTMMIYOFUULPFUUGGFYPUUMGSHUUDMUUOV
      CYPUSUUMUUMUUPXOWSMIMCDFTFNGFYOUULFSHKLMYHYOUSFOTUULMVBYFUXHUTMIMUXBUXISH
      UXJNUXBCUXICSUXDXKWJVRRUWITSHDTSHUWPUWIDTSUWLWNTDUWPYAVTYKXCRWPUYEWPFGVNH
      ZFSHUWDFGFEUYFGFSFXDYLWNURFMWHXEWPBYMWQYN $.

    $( 4001 is a prime number.  (Contributed by Mario Carneiro, 3-Mar-2014.)
       (Proof shortened by Mario Carneiro, 20-Apr-2015.)  (Proof shortened by
       AV, 16-Sep-2021.) $)
    4001prm $p |- N e. Prime $=
      ( c2 c3 cdc c5 c8 cc0 c1 co c4 cmul 0nn0 deccl caddc 5nn0 1nn0 3nn0 2nn0
      c6 cmin 5prm 8nn decnncl2 4nn0 nn0cni ax-1cn addid2i eqid decsuc mvrraddi
      eqtr4i 8nn0 8t5e40 5cn mul02i decmul1 cc wcel wceq cn0 npcan mp2an eqcomi
      eqeltri 2nn decnncl 3nn cexp 2p1e3 sqvali 5t5e25 eqtri 2cn 5t2e10 decaddi
      mulcomli decmul1c numexpp1 6nn0 c7 7nn0 7p1e8 addcomli 3t1e3 oveq1i 3p1e4
      7cn 2t1e2 oveq12i 8cn 8p2e10 decrmac 3t2e6 6p1e7 2t2e4 6cn 6p4e10 decma2c
      4cn 5p1e6 3cn 5t3e15 decmul2c 2lt10 3lt10 declti decltc breqtrri 4001lem3
      clt 1nn 4001lem4 pockthi ) CDCEZFDGHEZHEZAIUAJZAUBXPGUCUDUDXRKHEZHEZHEZXQ
      FLJAYAIYAXTHXSHKHUEMNMNZMNUFUGAXTIEZYAIOJBXTHIYAYBMIUGUHYAUIUJULUKZXPHXTH
      FXQPGHUMMNMXQUIMGHXSHFXPPUMMXPUIMUNFUOUPZUQYEUQULXRIOJZAAURUSIURUSYFAUTAA
      YCVABXTIYBQNVEUFUGAIVBVCVDDCRVFVGVHVFXRYAXOFDVIJZLJYDICEZFXTHXOITEZYGDCRS
      NZICQSNZPFYHFEZCDPSVJCFYHFFCFCVIJZPSPYMFFLJCFEFUOVKVLVMPSIHCCFLJCQMSFCIHE
      ZUOVNVOVQZCVNUHVPVLVRVSZMITQVTNICITXOXSHWAYHYIQSQVTYHUIYIUIYJMWBDCIKHIXOI
      WAOJZRSYQGVAWAIGWHUGWCWDZUMVEXOUIZQMQDILJZIOJDIOJKYTDIOWEWFWGVMCILJZYQOJC
      GOJYNUUACYQGOWIYRWJGCYNWKVNWLWDVMWMDCCWAHIXOTRSVTYSSMQDCLJZIOJTIOJWAUUBTI
      OWNWFWOVMCCLJZTOJKTOJYNUUCKTOWPWFTKYNWQWTWRWDVMWMWSDCYIHFIXOPRSYSMQIFTDFL
      JQPXAFDIFEUOXBXCVQUJYOVRXDULXOYLYGXKDYHCFRYKSPXEICDXLSRXFXGXHYPXIABXJABXM
      XN $.
  $}


$(
###############################################################################
  BASIC STRUCTURES
###############################################################################
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Extensible structures
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Basic definitions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  An "extensible structure" (or "structure" in short, at least in this section)
  is used to define a specific group, ring, poset, and so on.  An extensible
  structure can contain many components.  For example, a group will have at
  least two components (base set and operation), although it can be further
  specialized by adding other components such as a multiplicative operation for
  rings (and still remain a group per our definition).  Thus, every ring is
  also a group.  This extensible structure approach allows theorems from more
  general structures (such as groups) to be reused for more specialized
  structures (such as rings) without having to reprove anything.  Structures
  are common in mathematics, but in informal (natural language) proofs the
  details are assumed in ways that we must make explicit.

  An extensible structure is implemented as a function (a set of ordered pairs)
  on a finite (and not necessarily sequential) subset of ` NN ` .  The
  function's argument is the index of a structure component (such as ` 1 ` for
  the base set of a group), and its value is the component (such as the base
  set).  By convention, we normally avoid direct reference to the hard-coded
  numeric index and instead use structure component extractors such as ~ ndxid
  and ~ strfv .  Using extractors makes it easier to change numeric indices and
  also makes the components' purpose clearer.  For example, as noted in
  ~ ndxid , we can refer to a specific poset with base set ` B ` and order
  relation ` L ` using the extensible structure
  ` { <. ( Base `` ndx ) , B >. , <. ( le `` ndx ) , L >. } ` rather than
  ` { <. 1 , B >. , <. ; 1 0 , L >. } ` .

  There are many other possible ways to handle structures.  We chose this
  extensible structure approach because this approach (1) results in simpler
  notation than other approaches we are aware of, and (2) is easier to do
  proofs with.  We cannot use an approach that uses "hidden" arguments;
  Metamath does not support hidden arguments, and in any case we want nothing
  hidden.  It would be possible to use a categorical approach (e.g., something
  vaguely similar to Lean's mathlib).  However, instances (the chain of proofs
  that an ` X ` is a ` Y ` via a bunch of forgetful functors) can cause serious
  performance problems for automated tooling, and the resulting proofs would be
  painful to look at directly (in the case of Lean, they are long past the
  level where people would find it acceptable to look at them directly).
  Metamath is working under much stricter conditions than this, and it has
  still managed to achieve about the same level of flexibility through this
  "extensible structure" approach.

  To create a substructure of a given extensible structure, you can simply use
  the multifunction restriction operator for extensible structures ` |``s ` as
  defined in ~ df-ress .  This can be used to turn statements about rings into
  statements about subrings, modules into submodules, etc.  This definition
  knows nothing about individual structures and merely truncates the ` Base `
  set while leaving operators alone.  Individual kinds of structures will need
  to handle this behavior by ignoring operators' values outside the range (like
  ` Ring ` ), defining a function using the base set and applying that (like
  ` TopGrp ` ), or explicitly truncating the slot before use (like ` MetSp ` ).
  For example, the unital ring of integers ` ZZring ` is defined in ~ df-zring
  as simply ` ZZring = ( CCfld |``s ZZ ) ` .  This can be similarly done for
  all other subsets of ` CC ` , which has all the structure we can show applies
  to it, and this all comes "for free".  Should we come up with some new
  structure in the future that we wish ` CC ` to inherit, then we change the
  definition of ` CCfld ` , reprove all the slot extraction theorems, add a new
  one, and that's it.  None of the other downstream theorems have to change.

  Note that the construct of ~ df-prds addresses a different situation.  It is
  not possible to have SubGroup and SubRing be the same thing because they
  produce different outputs on the same input.  The subgroups of an extensible
  structure treated as a group are not the same as the subrings of that same
  structure.  With ~ df-prds it can actually reasonably perform the task, that
  is, being the product group given a family of groups, while also being the
  product ring given a family of rings.  There is no contradiction here because
  the group part of a product ring is a product group.

  There is also a general theory of "substructure algebras", in the form of
  ~ df-mre and ~ df-acs .  SubGroup is a Moore collection, as is SubRing,
  SubRng and many other substructure collections.  But it is not useful for
  picking out a particular collection of interest; SubRing and SubGroup still
  need to be defined and they are distinct --- nothing is going to select these
  definitions for us.

  Extensible structures only work well when they represent concrete categories,
  where there is a "base set", morphisms are functions, and subobjects are
  subsets with induced operations.  In short, they primarily work well for
  "sets with (some) extra structure".  Extensible structures may not suffice
  for more complicated situations.  For example, in manifolds, ` |``s ` would
  not work.  That said, extensible structures are sufficient for many of the
  structures that set.mm currently considers, and offer a good compromise for a
  goal-oriented formalization.

$)

  $c Struct $.
  $c ndx $.
  $c sSet $.
  $c Slot $.
  $c Base $.
  $c |`s $.

  $( Extend class notation with the class of structures with components
     numbered below ` A ` . $)
  cstr $a class Struct $.

  $( Extend class notation with the structure component index extractor. $)
  cnx $a class ndx $.

  $( Set components of a structure. $)
  csts $a class sSet $.

  $( Extend class notation with the slot function. $)
  cslot $a class Slot A $.

  $( Extend class notation with the class of all base set extractors. $)
  cbs $a class Base $.

  $( Extend class notation with the extensible structure builder restriction
     operator. $)
  cress $a class |`s $.

  ${
    $d f x $.
    $( Define a structure with components in ` M ... N ` .  This is not a
       requirement for groups, posets, etc., but it is a useful assumption for
       component extraction theorems.

       As mentioned in the section header, an "extensible structure should be
       implemented as a function (a set of ordered pairs)".  The current
       definition, however, is less restrictive: it allows for classes which
       contain the empty set ` (/) ` to be extensible structures.  Because of
       ~ 0nelfun , such classes cannot be functions.  Without the empty set,
       however, a structure must be a function, see ~ structn0fun :
       ` F Struct X -> Fun ( F \ { (/) } ) ` .

       Allowing an extensible structure to contain the empty set ensures that
       expressions like ` { <. A , B >. , <. C , D >. } ` are structures
       without asserting or implying that ` A ` , ` B ` , ` C ` and ` D ` are
       sets (if ` A ` or ` B ` is a proper class, then ` <. A , B >. = (/) ` ,
       see ~ opprc ).  This is used critically in ~ strle1 , ~ strle2 ,
       ~ strle3 and ~ strleun to avoid sethood hypotheses on the "payload"
       sets: without this, ~ ipsstr and theorems like it will have many sethood
       assumptions, and may not even be usable in the empty context.  Instead,
       the sethood assumption is deferred until it is actually needed, e.g.
       ~ ipsbase , which requires that the base set is a set but not any of the
       other components.  Usually, a concrete structure like ` CCfld ` does not
       contain the empty set, and therefore is a function, see ~ cnfldfun .
       (Contributed by Mario Carneiro, 29-Aug-2015.) $)
    df-struct $a |- Struct = { <. f , x >. | ( x e. ( <_ i^i ( NN X. NN ) ) /\
       Fun ( f \ { (/) } ) /\ dom f C_ ( ... ` x ) ) } $.
  $}

  $( Define the structure component index extractor.  See theorem ~ ndxarg to
     understand its purpose.  The restriction to ` NN ` ensures that ` ndx ` is
     a set.  The restriction to some set is necessary since ` _I ` is a proper
     class.  In principle, we could have chosen ` CC ` or (if we revise all
     structure component definitions such as ~ df-base ) another set such as
     the set of finite ordinals ` _om ` ( ~ df-om ).  (Contributed by NM,
     4-Sep-2011.) $)
  df-ndx $a |- ndx = ( _I |` NN ) $.

  ${
    $d x A $.
    $( Define the slot extractor for extensible structures.  The class
       ` Slot A ` is a function whose argument can be any set, although it is
       meaningful only if that set is a member of an extensible structure (such
       as a partially ordered set ( ~ df-poset ) or a group ( ~ df-grp )).

       Note that ` Slot A ` is implemented as "evaluation at ` A ` ".  That is,
       ` ( Slot A `` S ) ` is defined to be ` ( S `` A ) ` , where ` A ` will
       typically be a small nonzero natural number.  Each extensible structure
       ` S ` is a function defined on specific natural number "slots", and this
       function extracts the value at a particular slot.

       The special "structure" ` ndx ` , defined as the identity function
       restricted to ` NN ` , can be used to extract the number ` A ` from a
       slot, since ` ( Slot A `` ndx ) = A ` (see ~ ndxarg ).  This is
       typically used to refer to the number of a slot when defining structures
       without having to expose the detail of what that number is (for
       instance, we use the expression ` ( Base `` ndx ) ` in theorems and
       proofs instead of its value 1).

       The class ` Slot ` cannot be defined as
       ` ( x e. _V |-> ( f e. _V |-> ( f `` x ) ) ) ` because each ` Slot A `
       is a function on the proper class ` _V ` so is itself a proper class,
       and the values of functions are sets ( ~ fvex ).  It is necessary to
       allow proper classes as values of ` Slot A ` since for instance the
       class of all (base sets of) groups is proper.  (Contributed by Mario
       Carneiro, 22-Sep-2015.) $)
    df-slot $a |- Slot A = ( x e. _V |-> ( x ` A ) ) $.
  $}

  ${
    $d A f $.  $d B f $.
    $( Equality theorem for the ` Slot ` construction.  (Contributed by BJ,
       27-Dec-2021.) $)
    sloteq $p |- ( A = B -> Slot A = Slot B ) $=
      ( vf wceq cvv cv cfv cmpt cslot fveq2 mpteq2dv df-slot 3eqtr4g ) ABDZCEAC
      FZGZHCEBOGZHAIBINCEPQABOJKCALCBLM $.
  $}

  $( Define the base set (also called underlying set or carrier set) extractor
     for extensible structures.  (Contributed by NM, 4-Sep-2011.)  (Revised by
     Mario Carneiro, 14-Aug-2015.) $)
  df-base $a |- Base = Slot 1 $.

  ${
    $d e s w x $.
    $( Set a component of an extensible structure.  This function is useful for
       taking an existing structure and "overriding" one of its components.
       For example, ~ df-ress adjusts the base set to match its second
       argument, which has the effect of making subgroups, subspaces, subrings
       etc. from the original structures.  Or ~ df-mgp , which takes a ring and
       overrides its addition operation with the multiplicative operation, so
       that we can consider the "multiplicative group" using group and monoid
       theorems, which expect the operation to be in the ` +g ` slot instead of
       the ` .r ` slot.  (Contributed by Mario Carneiro, 1-Dec-2014.) $)
    df-sets $a |- sSet = ( s e. _V , e e. _V |->
      ( ( s |` ( _V \ dom { e } ) ) u. { e } ) ) $.

    $( Define a multifunction restriction operator for extensible structures,
       which can be used to turn statements about rings into statements about
       subrings, modules into submodules, etc.  This definition knows nothing
       about individual structures and merely truncates the ` Base ` set while
       leaving operators alone; individual kinds of structures will need to
       handle this behavior, by ignoring operators' values outside the range
       (like ` Ring ` ), defining a function using the base set and applying
       that (like ` TopGrp ` ), or explicitly truncating the slot before use
       (like ` MetSp ` ).

       (Credit for this operator goes to Mario Carneiro.)

       See ~ ressbas for the altered base set, and ~ resslem ( ~ subrg0 ,
       ~ ressplusg , ~ subrg1 , ~ ressmulr ) for the (un)altered other
       operations.  (Contributed by Stefan O'Rear, 29-Nov-2014.) $)
    df-ress $a |- |`s = ( w e. _V , x e. _V |-> if ( ( Base ` w ) C_ x , w ,
        ( w sSet <. ( Base ` ndx ) , ( x i^i ( Base ` w ) ) >. ) ) ) $.
  $}

  ${
    $d f x $.
    $( The structure relation is a relation.  (Contributed by Mario Carneiro,
       29-Aug-2015.) $)
    brstruct $p |- Rel Struct $=
      ( vx vf cv cle cn cxp cin wcel c0 csn cdif wfun cdm cfz cfv wss df-struct
      w3a cstr relopabi ) ACZDEEFGHBCZIJKLUBMUANOPRBASABQT $.
  $}

  ${
    $d f x F $.  $d f x X $.
    $( The property of being a structure with components in
       ` ( 1st `` X ) ... ( 2nd `` X ) ` .  (Contributed by Mario Carneiro,
       29-Aug-2015.) $)
    isstruct2 $p |- ( F Struct X <-> ( X e. ( <_ i^i ( NN X. NN ) ) /\
        Fun ( F \ { (/) } ) /\ dom F C_ ( ... ` X ) ) ) $=
      ( vx vf cstr cvv wcel wa cle cdif wfun cdm cfz cfv wss w3a cun cfn wceq
      cn wbr cxp cin csn wrel brstruct brrelex12 mpan ssun1 undif1 sseqtr4i wfn
      c0 simp2 funfn sylib c1st c2nd cop inss2 sseli 1st2nd2 3ad2ant1 fveq2d co
      syl df-ov fzfi eqeltrri syl6eqel difss dmss ax-mp simp3 ssfi syl2anc fnfi
      syl5ss p0ex unexg sylancl ssexg sylancr jca cv simpr eleq1d simpl difeq1d
      elex funeqd dmeqd sseq12d 3anbi123d df-struct brabga pm5.21nii ) ABEUAZAF
      GZBFGZHZBITTUBZUCZGZAUMUDZJZKZALZBMNZOZPZEUEWRXAUFABEUGUHXKWSWTXKAXFXEQZO
      XLFGZWSAAXEQXLAXEUIAXEUJUKXKXFRGZXEFGXMXKXFXFLZULZXORGZXNXKXGXPXDXGXJUNXF
      UOUPXKXIRGXOXIOXQXKXIBUQNZBURNZUSZMNZRXKBXTMXDXGBXTSZXJXDBXBGYBXCXBBIXBUT
      VABTTVBVFVCVDXRXSMVEYARXRXSMVGXRXSVHVIVJXKXOXHXIXFAOXOXHOAXEVKXFAVLVMXDXG
      XJVNVRXIXOVOVPXOXFVQVPVSXFXERFVTWAAXLFWBWCXDXGWTXJBXCWJVCWDCWEZXCGZDWEZXE
      JZKZYELZYCMNZOZPXKDCABEFFYEASZYCBSZHZYDXDYGXGYJXJYMYCBXCYKYLWFZWGYMYFXFYM
      YEAXEYKYLWHZWIWKYMYHXHYIXIYMYEAYOWLYMYCBMYNVDWMWNCDWOWPWQ $.
  $}

  $( A structure is a set.  (Contributed by AV, 10-Nov-2021.) $)
  structex $p |- ( G Struct X -> G e. _V ) $=
    ( cstr brstruct brrelexi ) ABCDE $.

  $( A structure witout the empty set is a function.  (Contributed by AV,
     13-Nov-2021.) $)
  structn0fun $p |- ( F Struct X -> Fun ( F \ { (/) } ) ) $=
    ( cstr wbr cle cxp cin wcel csn cdif wfun cdm cfz cfv wss isstruct2 simp2bi
    cn c0 ) ABCDBERRFGHASIJKALBMNOABPQ $.

  $( The property of being a structure with components in ` M ... N ` .
     (Contributed by Mario Carneiro, 29-Aug-2015.) $)
  isstruct $p |- ( F Struct <. M , N >. <->
    ( ( M e. NN /\ N e. NN /\ M <_ N ) /\
      Fun ( F \ { (/) } ) /\ dom F C_ ( M ... N ) ) ) $=
    ( cop cstr wbr cle cn cxp cin wcel c0 csn cdif wfun cdm cfz cfv wss w3a co
    isstruct2 brinxp2 df-br bitr3i biid df-ov sseq2i 3anbi123i bitr4i ) ABCDZEF
    UKGHHIJZKZALMNOZAPZUKQRZSZTBHKCHKBCGFTZUNUOBCQUAZSZTAUKUBURUMUNUNUTUQURBCUL
    FUMBCHHGUCBCULUDUEUNUFUSUPUOBCQUGUHUIUJ $.

  $( Two ways to express the relational part of a structure.  (Contributed by
     Mario Carneiro, 29-Aug-2015.) $)
  structcnvcnv $p |- ( F Struct X -> `' `' F = ( F \ { (/) } ) ) $=
    ( cstr wbr ccnv c0 csn cdif wss cin wceq wcel cvv cxp 0nelxp cnvcnv eqsstri
    wn inss2 cnvss sseli mto disjsn mpbir cnvcnvss reldisj ax-mp mpbi wrel wfun
    wb a1i structn0fun funrel syl dfrel2 sylib difss mp2b syl6eqssr eqssd ) ABC
    DZAEZEZAFGZHZVDVFIZVBVDVEJFKZVGVHFVDLZRVIFMMNZLMMOVDVJFVDAVJJVJAPAVJSQUAUBV
    DFUCUDVDAIVHVGUKAUEVDVEAUFUGUHULVBVFVFEZEZVDVBVFUIZVLVFKVBVFUJVMABUMVFUNUOV
    FUPUQVFAIVKVCIVLVDIAVEURVFATVKVCTUSUTVA $.

  $( The converse of the converse of a structure is a function.  Closed form of
     ~ structfun .  (Contributed by AV, 12-Nov-2021.) $)
  structfung $p |- ( F Struct X -> Fun `' `' F ) $=
    ( cstr wbr ccnv wfun c0 csn cdif structn0fun structcnvcnv funeqd mpbird ) A
    BCDZAEEZFAGHIZFABJNOPABKLM $.

  ${
    structfun.1 $e |- F Struct X $.
    $( Convert between two kinds of structure closure.  (Contributed by Mario
       Carneiro, 29-Aug-2015.)  (Proof shortened by AV, 12-Nov-2021.) $)
    structfun $p |- Fun `' `' F $=
      ( cstr wbr ccnv wfun structfung ax-mp ) ABDEAFFGCABHI $.
  $}

  ${
    structfn.1 $e |- F Struct <. M , N >. $.
    $( Convert between two kinds of structure closure.  (Contributed by Mario
       Carneiro, 29-Aug-2015.) $)
    structfn $p |- ( Fun `' `' F /\ dom F C_ ( 1 ... N ) ) $=
      ( ccnv wfun cdm c1 cfz co wss cop structfun wcel cle wbr w3a mpbi simp1i
      cn csn cdif cstr isstruct simp3i cuz cfv elnnuz fzss1 ax-mp sstri pm3.2i
      c0 ) AEEFAGZHCIJZKABCLZDMUNBCIJZUOBTNZCTNZBCOPZQZAUMUAUBFZUNUQKZAUPUCPVAV
      BVCQDABCUDRZUEBHUFUGNZUQUOKURVEURUSUTVAVBVCVDSSBUHRBHCUIUJUKUL $.
  $}

  ${
    $d x N $.  $d x S $.
    strfvnd.c $e |- E = Slot N $.
    $( A slot is a function on sets, treated as structures.  (Contributed by
       Mario Carneiro, 22-Sep-2015.) $)
    slotfn $p |- E Fn _V $=
      ( vx cvv cv cfv fvex cslot cmpt df-slot eqtri fnmpti ) DEBDFZGZABNHABIDEO
      JCDBKLM $.

    strfvnd.f $e |- ( ph -> S e. V ) $.
    $( Deduction version of ~ strfvn .  (Contributed by Mario Carneiro,
       15-Nov-2014.) $)
    strfvnd $p |- ( ph -> ( E ` S ) = ( S ` N ) ) $=
      ( vx wcel cvv cfv wceq elex cv fveq1 cslot cmpt df-slot eqtri fvex fvmpt
      3syl ) ABEIBJIBCKDBKZLGBEMHBDHNZKZUCJCDUDBOCDPHJUEQFHDRSDBTUAUB $.
  $}

  $( The base set extractor is a function on ` _V ` .  (Contributed by Stefan
     O'Rear, 8-Jul-2015.) $)
  basfn $p |- Base Fn _V $=
    ( cbs c1 df-base slotfn ) ABCD $.

  ${
    wunndx.1 $e |- ( ph -> U e. WUni ) $.
    wunndx.2 $e |- ( ph -> _om e. U ) $.
    $( Closure of the index extractor in an infinite weak universe.
       (Contributed by Mario Carneiro, 12-Jan-2017.) $)
    wunndx $p |- ( ph -> ndx e. U ) $=
      ( cnx cid cn cres df-ndx cc wuncn wss nnsscn wunss wf1o wf f1oi f1of mp1i
      a1i wunf syl5eqel ) AEFGHZBIAGGBUCCAJGBCABCDKGJLAMTNZUDGGUCOGGUCPAGQGGUCR
      SUAUB $.
  $}

  ${
    strfvn.f $e |- S e. _V $.
    strfvn.c $e |- E = Slot N $.
    $( Value of a structure component extractor ` E ` .  Normally, ` E ` is a
       defined constant symbol such as ` Base ` ( ~ df-base ) and ` N ` is a
       fixed integer such as ` 1 ` . ` S ` is a structure, i.e. a specific
       member of a class of structures such as ` Poset ` ( ~ df-poset ) where
       ` S e. Poset ` .

       Note:  Normally, this theorem shouldn't be used outside of this section,
       because it requires hard-coded index values.  Instead, use ~ strfv .
       (Contributed by NM, 9-Sep-2011.)  (Revised by Mario Carneiro,
       6-Oct-2013.)  (New usage is discouraged.) $)
    strfvn $p |- ( E ` S ) = ( S ` N ) $=
      ( cfv wceq wtru cvv wcel a1i strfvnd trud ) ABFCAFGHABCIEAIJHDKLM $.
  $}

  ${
    ndxarg.1 $e |- E = Slot N $.
    $( A structure component extractor produces a value which is contained in a
       set dependent on ` S ` , but not ` E ` .  This is sometimes useful for
       showing sethood.  (Contributed by Mario Carneiro, 15-Aug-2015.) $)
    strfvss $p |- ( E ` S ) C_ U. ran S $=
      ( cvv wcel cfv crn cuni wss id strfvnd fvssunirn syl6eqss wn c0 fvprc 0ss
      pm2.61i ) AEFZABGZAHIZJTUACAGUBTABCEDTKLACMNTOUAPUBABQUBRNS $.

    ${
      wunstr.2 $e |- ( ph -> U e. WUni ) $.
      wunstr.3 $e |- ( ph -> S e. U ) $.
      $( Closure of a structure index in a weak universe.  (Contributed by
         Mario Carneiro, 12-Jan-2017.) $)
      wunstr $p |- ( ph -> ( E ` S ) e. U ) $=
        ( crn cuni cfv wunrn wununi wss strfvss a1i wunss ) ABIZJZBDKZCGARCGABC
        GHLMTSNABDEFOPQ $.
    $}

    ndxarg.2 $e |- N e. NN $.
    $( Get the numeric argument from a defined structure component extractor
       such as ~ df-base .  (Contributed by Mario Carneiro, 6-Oct-2013.) $)
    ndxarg $p |- ( E ` ndx ) = N $=
      ( cnx cfv cid cn cres cvv df-ndx wcel resiexg ax-mp eqeltri strfvn fveq1i
      nnex wceq fvresi 3eqtri ) EAFBEFBGHIZFZBEABEUBJKHJLUBJLRHJMNOCPBEUBKQBHLU
      CBSDHBTNUA $.

    $d x N $.  $d x E $.
    $( A structure component extractor is defined by its own index.  This
       theorem, together with ~ strfv below, is useful for avoiding direct
       reference to the hard-coded numeric index in component extractor
       definitions, such as the ` 1 ` in ~ df-base and the ` ; 1 0 ` in
       ~ df-ple , making it easier to change should the need arise.

       For example, we can refer to a specific poset with base set ` B ` and
       order relation ` L ` using ` { <. ( Base `` ndx ) , B >. , `
       ` <. ( le `` ndx ) , L >. } ` rather than ` { <. 1 , B >. , `
       ` <. ; 1 0 , L >. } ` .  The latter, while shorter to state, requires
       revision if we later change ` ; 1 0 ` to some other number, and it may
       also be harder to remember.  (Contributed by NM, 19-Oct-2012.)  (Revised
       by Mario Carneiro, 6-Oct-2013.)  (Proof shortened by BJ,
       27-Dec-2021.) $)
    ndxid $p |- E = Slot ( E ` ndx ) $=
      ( cnx cfv wceq cslot ndxarg eqcomi sloteq syl5eq ax-mp ) BEAFZGZANHZGNBAB
      CDIJOABHPCBNKLM $.

    $( Obsolete proof of ~ ndxid as of 28-Dec-2021.  (Contributed by NM,
       19-Oct-2012.)  (Revised by Mario Carneiro, 6-Oct-2013.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ndxidOLD $p |- E = Slot ( E ` ndx ) $=
      ( vx cslot cnx cfv cvv cv cmpt df-slot ndxarg fveq2i mpteq2i eqtr4i ) ABF
      ZGAHZFZCSEIREJZHZKZQERLQEIBTHZKUBEBLEIUAUCRBTABCDMNOPPP $.
  $}

  ${
    strndxid.s $e |- ( ph -> S e. V ) $.
    strndxid.e $e |- E = Slot N $.
    strndxid.n $e |- N e. NN $.
    $( The value of a structure component extractor is the value of the
       corresponding slot of the structure.  (Contributed by AV,
       13-Mar-2020.) $)
    strndxid $p |- ( ph -> ( S ` ( E ` ndx ) ) = ( E ` S ) ) $=
      ( cfv cnx ndxid strfvnd eqcomd ) ABCIJCIZBIABCNECDGHKFLM $.
  $}

  ${
    $d e s A $.  $d e s B $.  $d e s S $.
    $( The structure override operator is a proper operator.  (Contributed by
       Stefan O'Rear, 29-Jan-2015.) $)
    reldmsets $p |- Rel dom sSet $=
      ( vs ve cvv cv csn cdm cdif cres cun csts df-sets reldmmpt2 ) ABCCADCBDEZ
      FGHMIJBAKL $.

    $( Value of the structure replacement function.  (Contributed by Mario
       Carneiro, 30-Apr-2015.) $)
    setsvalg $p |- ( ( S e. V /\ A e. W ) -> ( S sSet A ) =
      ( ( S |` ( _V \ dom { A } ) ) u. { A } ) ) $=
      ( vs ve wcel cvv csts co csn cdm cdif cres cun wceq elex wa resexg cv
      adantr snex unexg sylancl simpl simpr sneqd dmeqd difeq2d uneq12d df-sets
      reseq12d ovmpt2ga mpd3an3 syl2an ) BCGBHGZAHGZBAIJBHAKZLZMZNZUROZPZADGBCQ
      ADQUPUQVBHGZVCUPUQRVAHGZURHGVDUPVEUQBUTHSUAAUBVAURHHUCUDEFBAHHETZHFTZKZLZ
      MZNZVHOVBIHVFBPZVGAPZRZVKVAVHURVNVFBVJUTVLVMUEVNVIUSHVNVHURVNVGAVLVMUFUGZ
      UHUIULVOUJFEUKUMUNUO $.

    $( Value of the structure replacement function.  (Contributed by Mario
       Carneiro, 1-Dec-2014.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    setsval $p |- ( ( S e. V /\ B e. W ) -> ( S sSet <. A , B >. ) =
      ( ( S |` ( _V \ { A } ) ) u. { <. A , B >. } ) ) $=
      ( wcel cop csts co cvv csn cdm cdif cres wceq opex setsvalg mpan2 dmsnopg
      cun difeq2d reseq2d uneq1d sylan9eq ) CDFZBEFZCABGZHIZCJUGKZLZMZNZUITZCJA
      KZMZNZUITUEUGJFUHUMOABPUGCDJQRUFULUPUIUFUKUOCUFUJUNJABESUAUBUCUD $.
  $}

  ${
    setsidvald.e $e |- E = Slot N $.
    setsidvald.n $e |- N e. NN $.
    setsidvald.s $e |- ( ph -> S e. V ) $.
    setsidvald.f $e |- ( ph -> Fun S ) $.
    setsidvald.d $e |- ( ph -> ( E ` ndx ) e. dom S ) $.
    $( Value of the structure replacement function, deduction version.
       (Contributed by AV, 14-Mar-2020.) $)
    setsidvald $p |- ( ph -> S = ( S sSet <. ( E ` ndx ) , ( E ` S ) >. ) ) $=
      ( cnx cfv cop csts co cvv csn cun wcel wceq setsval sylancl ndxid strfvnd
      cdif cres fvex opeq2d sneqd uneq2d wfun cdm funresdfunsn syl2anc 3eqtrrd
      ) ABKCLZBCLZMZNOZBPUPQUEUFZURQZRZUTUPUPBLZMZQZRZBABESUQPSUSVBTHBCUGUPUQBE
      PUAUBAVAVEUTAURVDAUQVCUPABCUPECDFGUCHUDUHUIUJABUKUPBULSVFBTIJBUPUMUNUO $.
  $}

  $( The value of the structure replacement function for its first argument is
     its second argument.  (Contributed by SO, 12-Jul-2018.) $)
  fvsetsid $p |- ( ( F e. V /\ X e. W /\ Y e. U ) ->
      ( ( F sSet <. X , Y >. ) ` X ) = Y ) $=
    ( wcel w3a cop csts co cfv cvv csn cdif cres cun wceq setsval cdm fveq1d wn
    3adant2 simp2 simp3 cin dmres inss1 eqsstri sseli mto fsnunfv syl3anc eqtrd
    neldifsn a1i ) BCGZEDGZFAGZHZEBEFIZJKZLEBMENOZPZVANQZLZFUTEVBVEUQUSVBVERURE
    FBCASUCUAUTURUSEVDTZGZUBZVFFRUQURUSUDUQURUSUEVIUTVHEVCGEMUOVGVCEVGVCBTZUFVC
    BVCUGVCVJUHUIUJUKUPVDDAEFULUMUN $.

  $( The structure replacement function is a function.  (Contributed by SO,
     12-Jul-2018.) $)
  fsets $p |- ( ( ( F e. V /\ F : A --> B ) /\ X e. A /\ Y e. B ) ->
      ( F sSet <. X , Y >. ) : A --> B ) $=
    ( wcel wf wa w3a cop csts co cvv csn cdif cres cun feq1d mpbird difss mpan2
    wss fssres cin resres invdif reseq2i eqtri wfn wceq ffn fnresdm syl reseq1d
    syl5reqr adantl fsnunf2 syl3an1 wb simp1l simp3 setsval syl2anc ) CDGZABCHZ
    IZEAGZFBGZJZABCEFKZLMZHZABCNEOZPZQZVKORZHZVGAVNPZBVPHZVHVIVRVFVTVEVFVTVSBCV
    SQZHZVFVSAUCWBAVNUAABVSCUDUBVFVSBVPWAVFWACAQZVOQZVPWDCAVOUEZQWACAVOUFWEVSCA
    VNUGUHUIVFWCCVOVFCAUJWCCUKABCULACUMUNUOUPSTUQABVPEFURUSVJVEVIVMVRUTVEVFVHVI
    VAVGVHVIVBVEVIIABVLVQEFCDBVCSVDT $.

  $( The domain of a structure with replacement is the domain of the original
     structure extended by the index of the replacement.  (Contributed by AV,
     7-Jun-2021.) $)
  setsdm $p |- ( ( G e. V /\ E e. W )
                 -> dom ( G sSet <. I , E >. ) = ( dom G u. { I } ) ) $=
    ( wcel wa cop csts co cdm cvv csn cdif cres cun wceq a1i cin syl5eq dmsnopg
    setsvalg sylan2 dmeqd dmres adantl difeq2d ineq1d incom invdif eqtri syl6eq
    opex dmun uneq12d undif1 3eqtrd ) BDFZAEFZGZBCAHZIJZKBLVAMZKZNZOZVCPZKZBKZC
    MZNZVJPZVIVJPZUTVBVGUSURVALFZVBVGQVNUSCAUMRVABDLUBUCUDUTVHVFKZVDPVLVFVCUNUT
    VOVKVDVJUTVOVEVISZVKBVEUEUTVPLVJNZVISZVKUTVEVQVIUTVDVJLUSVDVJQURCAEUAUFZUGU
    HVRVIVQSVKVQVIUIVIVJUJUKULTVSUOTVLVMQUTVIVJUPRUQ $.

  $( A structure with replacement is a function if the original structure is a
     function.  (Contributed by AV, 7-Jun-2021.) $)
  setsfun $p |- ( ( ( G e. V /\ Fun G ) /\ ( I e. U /\ E e. W ) )
                  -> Fun ( G sSet <. I , E >. ) ) $=
    ( wcel wfun wa cop cvv cdm cin c0 wceq adantl adantr ineq1i eqtri a1i dmres
    csts co csn cdif cres cun funres funsng in32 incom disjdif 0in 3eqtri funun
    syl21anc wb opex setsvalg sylan2 funeqd mpbird ) CEGZCHZIZDAGBFGIZIZCDBJZUB
    UCZHZCKVHUDZLZUEZUFZVKUGZHZVGVNHZVKHZVNLZVLMZNOZVPVEVQVFVDVQVCVMCUHPQVFVRVE
    DBAFUIPWAVGVTVMCLZMZVLMZNVSWCVLCVMUARWDVMVLMZWBMNWBMNVMWBVLUJWENWBWEVLVMMNV
    MVLUKVLKULSRWBUMUNSTVNVKUOUPVEVJVPUQVFVEVIVOVDVCVHKGZVIVOOWFVDDBURTVHCEKUSU
    TVAQVB $.

  $( A structure with replacement without the empty set is a function if the
     original structure without the empty set is a function.  This variant of
     ~ setsfun is useful for proofs based on ~ isstruct2 which requires
     ` Fun ( F \ { (/) } ) ` for ` F ` to be an extensible structure.
     (Contributed by AV, 7-Jun-2021.) $)
  setsfun0 $p |- ( ( ( G e. V /\ Fun ( G \ { (/) } ) )
                     /\ ( I e. U /\ E e. W ) )
                  -> Fun ( ( G sSet <. I , E >. ) \ { (/) } ) ) $=
    ( wcel c0 csn cdif wfun wa cvv cdm cres cun cin wceq adantl a1i cop csts co
    funres adantr funsng dmres ineq1i in32 incom disjdif eqtri 0in 3eqtri funun
    syl21anc difundir resdifcom elex anim12i opnz disjsn2 disjdif2 3syl uneq12d
    wne sylibr syl5eq funeqd mpbird wb opex setsvalg sylan2 difeq1d ) CEGZCHIZJ
    ZKZLZDAGZBFGZLZLZCDBUAZUBUCZVQJZKZCMWEIZNZJZOZWIPZVQJZKZWDWOVRWKOZWIPZKZWDW
    PKZWIKZWPNZWJQZHRZWRVTWSWCVSWSVPWKVRUDSUEWCWTVTDBAFUFSXCWDXBWKVRNZQZWJQZHXA
    XEWJVRWKUGUHXFWKWJQZXDQHXDQHWKXDWJUIXGHXDXGWJWKQHWKWJUJWJMUKULUHXDUMUNULTWP
    WIUOUPWDWNWQWDWNWLVQJZWIVQJZPWQWLWIVQUQWDXHWPXIWIXHWPRWDCWKVQURTWDWEHVFZWIV
    QQHRXIWIRWCXJVTWCDMGZBMGZLXJWAXKWBXLDAUSBFUSUTDBVAVGSWEHVBWIVQVCVDVEVHVIVJV
    TWHWOVKWCVTWGWNVTWFWMVQVSVPWEMGZWFWMRXMVSDBVLTWECEMVMVNVOVIUEVJ $.

  ${
    setsn0fun.s $e |- ( ph -> S Struct X ) $.
    setsn0fun.i $e |- ( ph -> I e. U ) $.
    setsn0fun.e $e |- ( ph -> E e. W ) $.
    $( The value of the structure replacement function (without the empty set)
       is a function if the structure (without the empty set)is a function.
       (Contributed by AV, 7-Jun-2021.)  (Revised by AV, 16-Nov-2021.) $)
    setsn0fun $p |- ( ph -> Fun ( ( S sSet <. I , E >. ) \ { (/) } ) ) $=
      ( cstr wbr cop csts cdif wfun wi wa wcel cvv structn0fun structex sylanl1
      co c0 csn setsfun0 expcom syl2anc com12 mpdan mpcom ) BGKLZABEDMNUDUEUFZO
      PZHUMBUNOPZAUOQBGUAAUMUPRZUOAECSZDFSZUQUOQIJUQURUSRZUOUMBTSUPUTUOBGUBCDBE
      TFUGUCUHUIUJUKUL $.
  $}

  $( An extensible structure with a replaced slot is an extensible structure.
     (Contributed by AV, 14-Nov-2021.) $)
  setsstruct2 $p |- ( ( ( G Struct X /\ E e. V /\ I e. NN )
                       /\ Y = <. if ( I <_ ( 1st ` X ) , I , ( 1st ` X ) ) ,
                                 if ( I <_ ( 2nd ` X ) , ( 2nd ` X ) , I ) >. )
                      -> ( G sSet <. I , E >. ) Struct Y ) $=
    ( cstr wbr wcel cn w3a cfv cle wa cfz wss wi 3adant2 adantl sylbi c1st c2nd
    cif cop wceq csts co cxp cin c0 csn cdif wfun isstruct2 elin elxp6 wb eleq1
    cdm adantr simp3 simp1l ifcld nnred simp1r cr nnre anim12i ancomd min1 max1
    syl letrd df-br sylib opelxpd elind sylbid impcom 3ad2ant1 imp cvv structex
    3exp structn0fun jca simp2 setsfun0 syl12anc cun setsdm fveq2 df-ov syl6eqr
    sseq2d df-3an cz nnz 3anim123i ssfzunsnext syl6sseq sylan2 ex syl5bir com12
    expd eqsstrd syl3anbrc breq2 mpbird ) BEGHZADIZCJIZKZFCEUALZMHZCXOUCZCEUBLZ
    MHZXRCUCZUDZUEZNBCAUDUFUGZFGHZYCYAGHZXNYEYBXNYAMJJUHZUIZIZYCUJUKZULUMZYCUSZ
    YAOLZPYEXKXMYHXLXKXMYHXKEYGIZBYIULUMZBUSZEOLZPZKZXMYHQZBEUNZYMYNYSYQYMEMIZE
    YFIZNZYSEMYFUOZUUBUUAYSUUBEXOXRUDZUEZXOJIZXRJIZNZNZUUAYSQEJJUPZUUJUUAUUEMIZ
    YSUUFUUAUULUQUUIEUUEMURUTUUIUULYSQUUFUUIUULXMYHUUIUULXMKZMYFYAUUMXQXTMHYAMI
    UUMXQCXTUUMXQUUMXPCXOJUUIUULXMVAZUUGUUHUULXMVBVCZVDUUMCUUNVDUUMXTUUMXSXRCJU
    UGUUHUULXMVEUUNVCZVDUUMCVFIZXOVFIZNXQCMHUUMUURUUQUUIXMUURUUQNUULUUIUURXMUUQ
    UUGUURUUHXOVGUTCVGZVHRVICXOVJVLUUMUUQXRVFIZNCXTMHUUMUUTUUQUUIXMUUTUUQNUULUU
    IUUTXMUUQUUHUUTUUGXRVGSUUSVHRVICXRVKVLVMXQXTMVNVOUUMXQXTJJUUOUUPVPVQWDSVRTV
    STVTTWARXNBWBIZYNNZXMXLYJXKXLUVBXMXKUVAYNBEWCZBEWEWFVTXKXLXMVAXKXLXMWGZJABC
    WBDWHWIXNYKYOCUKWJZYLXNUVAXLNYKUVEUEXNUVAXLXKXLUVAXMUVCVTUVDWFABCWBDWKVLXKX
    MUVEYLPZXLXKXMUVFXKYRXMUVFQZYTYMYQUVGYNYMYQUVGYMUUCYQUVGQZUUDUUBUVHUUAUUBUU
    JUVHUUKUUJYQYOXOXROUGZPZUVGUUFYQUVJUQUUIUUFYPUVIYOUUFYPUUEOLUVIEUUEOWLXOXRO
    WMWNWOUTUUIUVJUVGQUUFUVJUUIUVGUVJUUIXMUVFUUIXMNUUGUUHXMKZUVJUVFUUGUUHXMWPUV
    JUVKUVFUVKUVJXOWQIZXRWQIZCWQIZKZUVFUUGUVLUUHUVMXMUVNXOWRXRWRCWRWSUVJUVONUVE
    XQXTOUGYLYOCXOXRWTXQXTOWMXAXBXCXDXFXESVRTSTWARTWARXGYCYAUNXHUTYBYDYEUQXNFYA
    YCGXISXJ $.

  ${
    $d E y $.  $d G y $.  $d I y $.  $d X y $.
    $( An extensible structure with a replaced slot is an extensible structure.
       (Contributed by AV, 14-Nov-2021.) $)
    setsexstruct2 $p |- ( ( G Struct X /\ E e. V /\ I e. NN )
                          -> E. y ( G sSet <. I , E >. ) Struct y ) $=
      ( cstr wbr wcel cn w3a cop csts co cv c1st cfv cle cif c2nd cvv opex wceq
      a1i eqidd setsstruct2 mpdan breq2 elabd ) CFGHBEIDJIKZCDBLMNZAOZGHUKDFPQZ
      RHDUMSZDFTQZRHUODSZLZGHZAUQUQUAIUJUNUPUBUDUJUQUQUCURUJUQUEBCDEFUQUFUGULUQ
      UKGUHUI $.
  $}

  $( An extensible structure with a replaced slot is an extensible structure.
     (Contributed by AV, 9-Jun-2021.)  (Revised by AV, 14-Nov-2021.) $)
  setsstruct $p |- ( ( E e. V /\ I e. ( ZZ>= ` M ) /\ G Struct <. M , N >. )
          -> ( G sSet <. I , E >. ) Struct <. M , if ( I <_ N , N , I ) >. ) $=
    ( wcel cfv cop wbr w3a cn cle cif wceq wa wi c1 cz 3ad2ant1 cstr c1st co c0
    cuz c2nd csts csn cdif wfun cdm cfz isstruct simp2 simp3l 1z nnge1 eluzuzle
    wss sylancr elnnuz syl6ibr adantld a1d 3imp op1stg breq2d ifbieq12d 3adant3
    eqidd adantr cxr eluz2 zre rexrd 3ad2ant2 simp3 sylbi adantl impcom xrmineq
    3jca syl eqtr2d 3adant2 op2ndg opeq12d jca 3exp pm2.43i expdcom setsstruct2
    eqcomd ) AFGZCDUEHGZBDEIZUAJZKWQWNCLGZKZDCEMJZECNZIZCWPUBHZMJZCXCNZCWPUFHZM
    JZXFCNZIOZPZBCAIUGUCXBUAJWNWOWQXJWQWNWOXJWQWNWOPZXJQZWQDLGZELGZDEMJZKZBUDUH
    UIUJZBUKDEULUCUSZKWQXLQZBDEUMXPXQXSXRXPWQXKXJXPWQXKKZWSXIXTWQWNWRXPWQXKUNXP
    WQWNWOUOXPWQXKWRXPXKWRQZWQXMXNYAXOXMWOWRWNXMWOCRUEHGZWRXMRSGRDMJWOYBQUPDUQD
    RCURUTCVAVBVCTVDVEWBXTDXEXAXHXPXKDXEOWQXPXKPZXECDMJZCDNZDXPXEYEOZXKXMXNYFXO
    XMXNPZXDYDCXCCDYGXCDCMDELLVFZVGYGCVJZYHVHVIVKYCCVLGZDVLGZDCMJZKZYEDOXKXPYMW
    OXPYMQZWNWODSGZCSGZYLKZYNDCVMYQYMXPYQYJYKYLYPYOYJYLYPCCVNVOVPYOYPYKYLYODDVN
    VOTYOYPYLVQWBVDVRVSVTCDWAWCWDWEXPWQXAXHOZXKXMXNYRXOYGWTXGECXFCYGEXFCMYGXFED
    ELLWFWMZVGYSYIVHVITWGWHWITVRWJWKVEABCFWPXBWLWC $.

  $( Obsolete version of ~ setsstruct as of 14-Nov-2021.  (Contributed by AV,
     9-Jun-2021.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  setsstructOLD $p |- ( ( G e. U /\ E e. V /\ I e. ( ZZ>= ` M ) )
                     -> ( G Struct <. M , N >.
                          -> ( G sSet <. I , E >. )
                             Struct <. M , if ( I <_ N , N , I ) >. ) ) $=
    ( wcel w3a cn cle wbr co wss cop wa wi ex 3ad2ant1 cr cuz cfv csn cdif wfun
    c0 cdm cfz cif csts cstr simpr11 simpr12 eluznn com12 3ad2ant3 imp 3ad2ant2
    ifcld nnre eluzelre anim12i adantr simpl3 3jca lemaxle simp1 pm3.22 3adant1
    syl simp2 setsfun0 syl2anc cun wceq 3simpa setsdm simp3 ssfzunsn syl2an23an
    cz nnz eqsstrd isstruct 3imtr4g ) CAHZBGHZDEUAUBZHZIZEJHZFJHZEFKLZIZCUFUCZU
    DUEZCUGZEFUHMNZIZWKDFKLZFDUIZJHZEXAKLZIZCDBOUJMZWOUDUEZXEUGZEXAUHMZNZIZCEFO
    UKLXEEXAOUKLWJWSXJWJWSPZXDXFXIXKWKXBXCWKWLWMWPWRWJULXKWTFDJWKWLWMWPWRWJUMWJ
    WSDJHZWIWFWSXLQWGWSWIXLWNWPWIXLQZWRWKWLXMWMWKWIXLDEUNRSSUOUPUQUSXKFTHZDTHZP
    ZETHZWMIZXCWJWSXRWIWFWSXRQWGWSWIXRWNWPWIXRQWRWNWIXRWNWIPXPXQWMWNXNWIXOWLWKX
    NWMFUTUREDVAVBWNXQWIWKWLXQWMEUTSVCWKWLWMWIVDVERSUOUPUQEFDVFVJVEXKWFWPPWIWGP
    ZXFWJWFWSWPWFWGWIVGWNWPWRVKVBWJXSWSWGWIXSWFWGWIVHVIVCWHBCDAGVLVMXKXGWQDUCVN
    ZXHXKWFWGPZXGXTVOWJYAWSWFWGWIVPVCBCDAGVQVJWSWRFWAHZWJWIXTXHNWNWPWRVRWNWPYBW
    RWLWKYBWMFWBURSWFWGWIWSVDWQDEFVSVTWCVERCEFWDXEEXAWDWE $.

  ${
    wunsets.1 $e |- ( ph -> U e. WUni ) $.
    wunsets.2 $e |- ( ph -> S e. U ) $.
    wunsets.3 $e |- ( ph -> A e. U ) $.
    $( Closure of structure replacement in a weak universe.  (Contributed by
       Mario Carneiro, 12-Jan-2017.) $)
    wunsets $p |- ( ph -> ( S sSet A ) e. U ) $=
      ( csts co cvv csn cdm cdif cres cun wcel wceq setsvalg syl2anc wunres
      wunsn wunun eqeltrd ) ACBHIZCJBKZLMZNZUEOZDACDPBDPUDUHQFGBCDDRSAUGUEDEACU
      FDEFTABDEGUAUBUC $.
  $}

  $( The structure replacement function does not affect the value of ` S ` away
     from ` A ` .  (Contributed by Mario Carneiro, 1-Dec-2014.)  (Revised by
     Mario Carneiro, 30-Apr-2015.) $)
  setsres $p |- ( S e. V ->
    ( ( S sSet <. A , B >. ) |` ( _V \ { A } ) ) = ( S |` ( _V \ { A } ) ) ) $=
    ( wcel cop csts co cvv csn cdif cres cdm cun wceq c0 wss ax-mp mpbir eqtri
    opex setsvalg mpan2 reseq1d resundir dmsnopss sscon resabs1 cin dmres disj2
    wrel wb relres reldm0 uneq12i un0 syl6eq ) CDEZCABFZGHZIAJZKZLCIUTJZMZKZLZV
    DNZVCLZCVCLZUSVAVHVCUSUTIEVAVHOABUAUTCDIUBUCUDVIVGVCLZVDVCLZNZVJVGVDVCUEVMV
    JPNVJVKVJVLPVCVFQZVKVJOVEVBQVNABUFVEVBIUGRZCVCVFUHRVLPOZVLMZPOZVQVCVEUIZPVD
    VCUJVSPOVNVOVCVEUKSTVLULVPVRUMVDVCUNVLUORSUPVJUQTTUR $.

  $( Replacing the same components twice yields the same as the second setting
     only.  (Contributed by Mario Carneiro, 2-Dec-2014.) $)
  setsabs $p |- ( ( S e. V /\ C e. W ) ->
    ( ( S sSet <. A , B >. ) sSet <. A , C >. ) = ( S sSet <. A , C >. ) ) $=
    ( wcel wa cop csts co cvv csn cdif cres cun wceq setsres adantr setsval
    uneq1d ovexd sylan 3eqtr4d ) DEGZCFGZHZDABIZJKZLAMNZOZACIZMZPZDUJOZUMPUIULJ
    KZDULJKUGUKUOUMUEUKUOQUFABDERSUAUEUILGUFUPUNQUEDUHJUBACUILFTUCACDEFTUD $.

  ${
    setscom.1 $e |- A e. _V $.
    setscom.2 $e |- B e. _V $.
    $( Component-setting is commutative when the x-values are different.
       (Contributed by Mario Carneiro, 5-Dec-2014.)  (Revised by Mario
       Carneiro, 30-Apr-2015.) $)
    setscom $p |- ( ( ( S e. V /\ A =/= B ) /\ ( C e. W /\ D e. X ) ) ->
       ( ( S sSet <. A , C >. ) sSet <. B , D >. ) =
       ( ( S sSet <. B , D >. ) sSet <. A , C >. ) ) $=
      ( wcel wa csts co cvv csn cres cun wceq wss cdif rescom uneq1i un23 eqtri
      wne cop setsval ad2ant2r reseq1d resundir wrel cdm cxp elex ad2antrl opex
      opelxpi sylancr relsn sylibr dmsnopss cin c0 disjsn2 ad2antlr disj2 sylib
      syl5ss relssres syl2anc uneq2d syl5eq eqtrd uneq1d ad2ant2rl ad2antll ssv
      wb ssconb mp2an 3eqtr4a ovex simprr simprl 3eqtr4d ) EFKZABUFZLZCGKZDHKZL
      ZLZEACUGZMNZOBPZUAZQZBDUGZPZRZEWSMNZOAPZUAZQZWNPZRZWOWSMNZXBWNMNZWMEXDQZW
      QQZXFRZWTRZEWQQZXDQZWTRZXFRZXAXGXMXOXFRZWTRXQXLXRWTXKXOXFEXDWQUBUCUCXOXFW
      TUDUEWMWRXLWTWMWRXJXFRZWQQZXLWMWOXSWQWGWJWOXSSWHWKACEFGUHUIUJWMXTXKXFWQQZ
      RXLXJXFWQUKWMYAXFXKWMXFULZXFUMZWQTYAXFSWMWNOOUNZKZYBWMAOKCOKZYEIWJYFWIWKC
      GUOUPACOOURUSWNACUQUTVAWMYCXCWQACVBWMXCWPVCVDSZXCWQTZWHYGWGWLABVEVFXCWPVG
      VHZVIXFWQVJVKVLVMVNVOWMXEXPXFWMXEXNWTRZXDQZXPWGWKXEYKSWHWJWGWKLXBYJXDBDEF
      HUHUJVPWMYKXOWTXDQZRXPXNWTXDUKWMYLWTXOWMWTULZWTUMZXDTYLWTSWMWSYDKZYMWMBOK
      DOKZYOJWKYPWIWJDHUOVQBDOOURUSWSBDUQUTVAWMYNWPXDBDVBWMYHWPXDTZYIXCOTWPOTYH
      YQVSXCVRWPVRXCWPOVTWAVHVIWTXDVJVKVLVMVNVOWBWMWOOKWKXHXASEWNMWCWIWJWKWDBDW
      OOHUHUSWMXBOKWJXIXGSEWSMWCWIWJWKWEACXBOGUHUSWF $.
  $}

  ${
    strfvd.e $e |- E = Slot ( E ` ndx ) $.
    strfvd.s $e |- ( ph -> S e. V ) $.
    strfvd.f $e |- ( ph -> Fun S ) $.
    strfvd.n $e |- ( ph -> <. ( E ` ndx ) , C >. e. S ) $.
    $( Deduction version of ~ strfv .  (Contributed by Mario Carneiro,
       15-Nov-2014.) $)
    strfvd $p |- ( ph -> C = ( E ` S ) ) $=
      ( cfv cnx strfvnd wfun cop wcel wceq funopfv sylc eqtr2d ) ACDJKDJZCJZBAC
      DTEFGLACMTBNCOUABPHITBCQRS $.
  $}

  ${
    strfv2d.e $e |- E = Slot ( E ` ndx ) $.
    strfv2d.s $e |- ( ph -> S e. V ) $.
    strfv2d.f $e |- ( ph -> Fun `' `' S ) $.
    strfv2d.n $e |- ( ph -> <. ( E ` ndx ) , C >. e. S ) $.
    strfv2d.c $e |- ( ph -> C e. W ) $.
    $( Deduction version of ~ strfv .  (Contributed by Mario Carneiro,
       30-Apr-2015.) $)
    strfv2d $p |- ( ph -> C = ( E ` S ) ) $=
      ( cfv cnx strfvnd ccnv cvv cres cnvcnv2 wcel wceq fveq1i fvex fvres ax-mp
      eqtri wfun cop cxp cin syl opelxpi sylancr elind cnvcnv syl6eleqr funopfv
      elex sylc syl5eqr eqtr2d ) ACDLMDLZCLZBACDVAEGHNAVBVACOOZLZBVDVACPQZLZVBV
      AVCVECRUAVAPSZVFVBTMDUBZVAPCUCUDUEAVCUFVABUGZVCSVDBTIAVICPPUHZUIVCACVJVIJ
      AVGBPSZVIVJSVHABFSVKKBFUQUJVABPPUKULUMCUNUOVABVCUPURUSUT $.
  $}

  ${
    strfv2.s $e |- S e. _V $.
    strfv2.f $e |- Fun `' `' S $.
    strfv2.e $e |- E = Slot ( E ` ndx ) $.
    strfv2.n $e |- <. ( E ` ndx ) , C >. e. S $.
    $( A variation on ~ strfv to avoid asserting that ` S ` itself is a
       function, which involves sethood of all the ordered pair components of
       ` S ` .  (Contributed by Mario Carneiro, 30-Apr-2015.) $)
    strfv2 $p |- ( C e. V -> C = ( E ` S ) ) $=
      ( wcel cvv a1i ccnv wfun cnx cfv cop id strfv2d ) ADIZABCJDGBJISEKBLLMSFK
      NCOAPBISHKSQR $.
  $}

  ${
    strfv.s $e |- S Struct X $.
    strfv.e $e |- E = Slot ( E ` ndx ) $.
    strfv.n $e |- { <. ( E ` ndx ) , C >. } C_ S $.
    $( Extract a structure component ` C ` (such as the base set) from a
       structure ` S ` (such as a member of ` Poset ` , ~ df-poset ) with a
       component extractor ` E ` (such as the base set extractor ~ df-base ).
       By virtue of ~ ndxid , this can be done without having to refer to the
       hard-coded numeric index of ` E ` .  (Contributed by Mario Carneiro,
       6-Oct-2013.)  (Revised by Mario Carneiro, 29-Aug-2015.) $)
    strfv $p |- ( C e. V -> C = ( E ` S ) ) $=
      ( cstr wbr cvv wcel structex ax-mp structfun cnx cfv cop csn wss strfv2
      opex snss mpbir ) ABCDBEIJBKLFBEMNBEFOGPCQZARZBLUFSBTHUFBUEAUBUCUDUA $.
  $}

  ${
    strfv3.u $e |- ( ph -> U = S ) $.
    strfv3.s $e |- S Struct X $.
    strfv3.e $e |- E = Slot ( E ` ndx ) $.
    strfv3.n $e |- { <. ( E ` ndx ) , C >. } C_ S $.
    strfv3.c $e |- ( ph -> C e. V ) $.
    strfv3.a $e |- A = ( E ` U ) $.
    $( Variant on ~ strfv for large structures.  (Contributed by Mario
       Carneiro, 10-Jan-2017.) $)
    strfv3 $p |- ( ph -> A = C ) $=
      ( cfv wcel wceq strfv syl fveq2d eqtr4d syl6reqr ) ACEFOZBACDFOZUCACGPCUD
      QMCDFGHJKLRSAEDFITUANUB $.
  $}

  ${
    strssd.e $e |- E = Slot ( E ` ndx ) $.
    strssd.t $e |- ( ph -> T e. V ) $.
    strssd.f $e |- ( ph -> Fun T ) $.
    strssd.s $e |- ( ph -> S C_ T ) $.
    strssd.n $e |- ( ph -> <. ( E ` ndx ) , C >. e. S ) $.
    $( Deduction version of ~ strss .  (Contributed by Mario Carneiro,
       15-Nov-2014.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    strssd $p |- ( ph -> ( E ` T ) = ( E ` S ) ) $=
      ( cfv cnx cop sseldd strfvd cvv ssexd wss wfun funss sylc eqtr3d ) ABDELC
      ELABDEFGHIACDMELBNJKOPABCEQGACDFHJRACDSDTCTJICDUAUBKPUC $.
  $}

  ${
    strss.t $e |- T e. _V $.
    strss.f $e |- Fun T $.
    strss.s $e |- S C_ T $.
    strss.e $e |- E = Slot ( E ` ndx ) $.
    strss.n $e |- <. ( E ` ndx ) , C >. e. S $.
    $( Propagate component extraction to a structure ` T ` from a subset
       structure ` S ` .  (Contributed by Mario Carneiro, 11-Oct-2013.)
       (Revised by Mario Carneiro, 15-Jan-2014.) $)
    strss $p |- ( E ` T ) = ( E ` S ) $=
      ( cfv wceq wtru cvv wcel a1i wfun wss cnx cop strssd trud ) CDJBDJKLABCDM
      HCMNLEOCPLFOBCQLGORDJASBNLIOTUA $.
  $}

  ${
    str0.a $e |- F = Slot I $.
    $( All components of the empty set are empty sets.  (Contributed by Stefan
       O'Rear, 27-Nov-2014.)  (Revised by Mario Carneiro, 7-Dec-2014.) $)
    str0 $p |- (/) = ( F ` (/) ) $=
      ( c0 cfv 0ex strfvn 0fv eqtr2i ) DAEBDEDDABFCGBHI $.
  $}

  $( The base set of the empty structure.  (Contributed by David A. Wheeler,
     7-Jul-2016.) $)
  base0 $p |- (/) = ( Base ` (/) ) $=
    ( cbs c1 df-base str0 ) ABCD $.

  ${
    strfvi.e $e |- E = Slot N $.
    strfvi.x $e |- X = ( E ` S ) $.
    $( Structure slot extractors cannot distinguish between proper classes and
       ` (/) ` , so they can be protected using the identity function.
       (Contributed by Stefan O'Rear, 21-Mar-2015.) $)
    strfvi $p |- X = ( E ` ( _I ` S ) ) $=
      ( cfv cid cvv wcel wceq fvi eqcomd fveq2d wn str0 fvprc 3eqtr4a pm2.61i
      c0 eqtri ) DABGZAHGZBGZFAIJZUBUDKUEAUCBUEUCAAILMNUEOZTTBGUBUDBCEPABQUFUCT
      BAHQNRSUA $.
  $}

  ${
    setsid.e $e |- E = Slot ( E ` ndx ) $.
    $( Value of the structure replacement function at a replaced index.
       (Contributed by Mario Carneiro, 1-Dec-2014.)  (Revised by Mario
       Carneiro, 30-Apr-2015.) $)
    setsid $p |- ( ( W e. A /\ C e. V ) ->
      C = ( E ` ( W sSet <. ( E ` ndx ) , C >. ) ) ) $=
      ( wcel wa cnx cfv cvv csn cres cun sylancl wceq c0 cin eqtri a1i cop csts
      co cdif setsval fveq2d resexg adantr snex unexg strfvnd fvex fvres resres
      snid ax-mp incom disjdif reseq2i res0 wrel cdm wss adantl opelxpi sylancr
      cxp elex relsn sylibr dmsnopss relssres uneq12d resundir un0 uncom eqtr3i
      opex 3eqtr4g fveq1d syl5eqr fvsng sylancom eqtrd 3eqtrrd ) EAGZBDGZHZEICJ
      ZBUAZUBUCZCJEKWILZUDZMZWJLZNZCJWIWPJZBWHWKWPCWIBEADUEUFWHWPCWIKFWHWNKGZWO
      KGWPKGWFWRWGEWMAUGUHWJUIWNWOKKUJOUKWHWQWIWOJZBWHWQWIWPWLMZJZWSWIWLGXAWQPW
      IICULZUOWIWLWPUMUPWHWIWTWOWHWNWLMZWOWLMZNQWONZWTWOWHXCQXDWOXCQPWHXCEWMWLR
      ZMZQEWMWLUNXGEQMQXFQEXFWLWMRQWMWLUQWLKURSUSEUTSSTWHWOVAZWOVBWLVCXDWOPWHWJ
      KKVGGZXHWHWIKGZBKGZXIXBWGXKWFBDVHVDWIBKKVEVFWJWIBVRVIVJWIBVKWOWLVLOVMWNWO
      WLVNWOQNWOXEWOVOWOQVPVQVSVTWAWFWGXJWSBPXJWHXBTWIBKDWBWCWDWE $.

    setsnid.n $e |- ( E ` ndx ) =/= D $.
    $( Value of the structure replacement function at an untouched index.
       (Contributed by Mario Carneiro, 1-Dec-2014.)  (Revised by Mario
       Carneiro, 30-Apr-2015.) $)
    setsnid $p |- ( E ` W ) = ( E ` ( W sSet <. D , C >. ) ) $=
      ( cvv wcel cfv cop csts co wceq cnx id strfvnd cres fvres ax-mp c0 strfvn
      ovex csn cdif setsres fveq1d wne fvex eldifsn mpbir2an syl5eq eqtr4d str0
      3eqtr3g wn fvprc reldmsets ovprc1 fveq2d 3eqtr4a pm2.61i ) DGHZDCIZDBAJZK
      LZCIZMVBVCNCIZDIZVFVBDCVGGEVBOPVBVFVGVEIZVHVECVGDVDKUBEUAVBVGVEGBUCUDZQZI
      ZVGDVJQZIZVIVHVBVGVKVMBADGUEUFVGVJHZVLVIMVOVGGHVGBUGNCUHFVGGBUIUJZVGVJVER
      SVOVNVHMVPVGVJDRSUNUKULVBUOZTTCIVCVFCVGEUMDCUPVQVETCDVDKUQURUSUTVA $.
  $}

  ${
    $d a b w $.  $d a b E $.  $d b F $.  $d a b W $.  $d a b ph $.
    sbcie2s.a $e |- A = ( E ` W ) $.
    sbcie2s.b $e |- B = ( F ` W ) $.
    sbcie2s.1 $e |- ( ( a = A /\ b = B ) -> ( ph <-> ps ) ) $.
    $( A special version of class substitution commonly used for structures.
       (Contributed by Thierry Arnoux, 14-Mar-2019.) $)
    sbcie2s $p |- ( w = W
      -> ( [. ( E ` w ) / a ]. [. ( F ` w ) / b ]. ps <-> ph ) ) $=
      ( cv wceq cfv fvex wa wb fveq2 simprl syl6eqr adantr eqtrd simprr syl2anc
      bicomd ex sbc2iedv ) CNZHOZBAIJUJFPZUJGPZUJFQUJGQUKINZULOZJNZUMOZRZBASUKU
      RRZABUSUNDOUPEOABSUSUNULDUKUOUQUAUKULDOURUKULHFPDUJHFTKUBUCUDUSUPUMEUKUOU
      QUEUKUMEOURUKUMHGPEUJHGTLUBUCUDMUFUGUHUI $.
  $}

  ${
    $d a b c w $.  $d a b c E $.  $d b c F $.  $d c G $.  $d a b c W $.
    $d a b c ph $.
    sbcie3s.a $e |- A = ( E ` W ) $.
    sbcie3s.b $e |- B = ( F ` W ) $.
    sbcie3s.c $e |- C = ( G ` W ) $.
    sbcie3s.1 $e |- ( ( a = A /\ b = B /\ c = C ) -> ( ph <-> ps ) ) $.
    $( A special version of class substitution commonly used for structures.
       (Contributed by Thierry Arnoux, 15-Mar-2019.) $)
    sbcie3s $p |- ( w = W -> ( [. ( E ` w ) / a ]. [. ( F ` w ) / b ].
      [. ( G ` w ) / c ]. ps <-> ph ) ) $=
      ( cv wceq cfv wsbc cvv fvexd wa wb simpllr fveq2 ad3antrrr syl6eqr simplr
      eqtrd simpr syl3anc bicomd sbcied ) CRZJSZBMUPITZUAZLUPHTZUAAKUPGTZUBUQUP
      GUCUQKRZVASZUDZUSALUTUBVDUPHUCVDLRZUTSZUDZBAMURUBVGUPIUCVGMRZURSZUDZABVJV
      BDSVEESVHFSABUEVJVBJGTZDVJVBVAVKUQVCVFVIUFUQVAVKSVCVFVIUPJGUGUHUKNUIVJVEJ
      HTZEVJVEUTVLVDVFVIUJUQUTVLSVCVFVIUPJHUGUHUKOUIVJVHJITZFVJVHURVMVGVIULUQUR
      VMSVCVFVIUPJIUGUHUKPUIQUMUNUOUOUO $.
  $}

  ${
    baseval.k $e |- K e. _V $.
    $( Value of the base set extractor.  (Normally it is preferred to work with
       ` ( Base `` ndx ) ` rather than the hard-coded ` 1 ` in order to make
       structure theorems portable.  This is an example of how to obtain it
       when needed.)  (New usage is discouraged.)  (Contributed by NM,
       4-Sep-2011.) $)
    baseval $p |- ( Base ` K ) = ( K ` 1 ) $=
      ( cbs c1 df-base strfvn ) ACDBEF $.
  $}

  $( Utility theorem: index-independent form of ~ df-base .  (Contributed by
     NM, 20-Oct-2012.) $)
  baseid $p |- Base = Slot ( Base ` ndx ) $=
    ( cbs c1 df-base 1nn ndxid ) ABCDE $.

  ${
    elbasfv.s $e |- S = ( F ` Z ) $.
    elbasfv.b $e |- B = ( Base ` S ) $.
    $( Utility theorem: reverse closure for any structure defined as a
       function.  (Contributed by Stefan O'Rear, 24-Aug-2015.) $)
    elbasfv $p |- ( X e. B -> Z e. _V ) $=
      ( wcel c0 wceq cvv n0i wn cbs cfv fvprc syl5eq fveq2d base0 3eqtr4g nsyl2
      ) DAHAIJEKHZADLUBMZBNOINOAIUCBINUCBECOIFECPQRGSTUA $.
  $}

  ${
    elbasov.o $e |- Rel dom O $.
    elbasov.s $e |- S = ( X O Y ) $.
    elbasov.b $e |- B = ( Base ` S ) $.
    $( Utility theorem: reverse closure for any structure defined as a
       two-argument function.  (Contributed by Mario Carneiro, 3-Oct-2015.) $)
    elbasov $p |- ( A e. B -> ( X e. _V /\ Y e. _V ) ) $=
      ( wcel c0 wceq cvv wa n0i wn cbs cfv co ovprc syl5eq fveq2d base0 3eqtr4g
      nsyl2 ) ABJBKLEMJFMJNZBAOUFPZCQRKQRBKUGCKQUGCEFDSKHEFDGTUAUBIUCUDUE $.
  $}

  ${
    strov2rcl.s $e |- S = ( I F R ) $.
    strov2rcl.b $e |- B = ( Base ` S ) $.
    strov2rcl.f $e |- Rel dom F $.
    $( Partial reverse closure for any structure defined as a two-argument
       function.  (Contributed by Stefan O'Rear, 27-Mar-2015.)  (Proof
       shortened by AV, 2-Dec-2019.) $)
    strov2rcl $p |- ( X e. B -> I e. _V ) $=
      ( wcel cvv elbasov simpld ) FAJEKJBKJFACDEBIGHLM $.
  $}

  $( Index value of the base set extractor.  (Normally it is preferred to work
     with ` ( Base `` ndx ) ` rather than the hard-coded ` 1 ` in order to make
     structure theorems portable.  This is an example of how to obtain it when
     needed.)  (New usage is discouraged.)  (Contributed by Mario Carneiro,
     2-Aug-2013.) $)
  basendx $p |- ( Base ` ndx ) = 1 $=
    ( cbs c1 df-base 1nn ndxarg ) ABCDE $.

  $( The index value of the base set extractor is a positive integer.  This
     property should be ensured for every concrete coding because otherwise it
     could not be used in an extensible structure (slots must be positive
     integers).  (Contributed by AV, 23-Sep-2020.) $)
  basendxnn $p |- ( Base ` ndx ) e. NN $=
    ( cnx cbs cfv c1 cn df-base 1nn ndxarg eqeltri ) ABCDEBDFGHGI $.

  ${
    basprssdmsets.s $e |- ( ph -> S Struct X ) $.
    basprssdmsets.i $e |- ( ph -> I e. U ) $.
    basprssdmsets.w $e |- ( ph -> E e. W ) $.
    basprssdmsets.b $e |- ( ph -> ( Base ` ndx ) e. dom S ) $.
    $( The pair of the base index and another index is a subset of the domain
       of the structure obtained by replacing/adding a slot at the other index
       in a structure having a base slot.  (Contributed by AV, 7-Jun-2021.)
       (Revised by AV, 16-Nov-2021.) $)
    basprssdmsets $p |- ( ph -> { ( Base ` ndx ) , I }
                                C_ dom ( S sSet <. I , E >. ) ) $=
      ( cnx cbs cdm wcel wo elun sylibr syl cvv cfv cpr csn cun csts orcd snidg
      cop co olcd prssd wceq cstr wbr structex setsdm syl2anc sseqtr4d ) ALMUAZ
      EUBBNZEUCZUDZBEDUHUEUINZAUSEVBAUSUTOZUSVAOZPUSVBOAVDVEKUFUSUTVAQRAEUTOZEV
      AOZPEVBOAVGVFAECOVGIECUGSUJEUTVAQRUKABTOZDFOVCVBULABGUMUNVHHBGUOSJDBETFUP
      UQUR $.
  $}

  ${
    $d a w $.
    $( The structure restriction is a proper operator, so it can be used with
       ~ ovprc1 .  (Contributed by Stefan O'Rear, 29-Nov-2014.) $)
    reldmress $p |- Rel dom |`s $=
      ( vw va cvv cv cbs cfv wss cnx cin cop csts cif cress df-ress reldmmpt2
      co ) ABCCADZEFZBDZGQQHEFSRIJKPLMBANO $.
  $}

  ${
    $d a w A $.  $d a w B $.  $d a w W $.
    ressbas.r $e |- R = ( W |`s A ) $.
    ressbas.b $e |- B = ( Base ` W ) $.
    $( Value of structure restriction.  (Contributed by Stefan O'Rear,
       29-Nov-2014.) $)
    ressval $p |- ( ( W e. X /\ A e. Y ) -> R = if ( B C_ A , W ,
            ( W sSet <. ( Base ` ndx ) , ( A i^i B ) >. ) ) ) $=
      ( vw va wcel wa cress co wss cbs cfv csts cvv wceq cnx cin cop elex simpl
      cif ovex ifcl sylancl fveq2d syl6eqr simpr sseq12d ineq12d opeq2d oveq12d
      cv ifbieq12d df-ress ovmpt2ga mpd3an3 syl2an syl5eq ) DEKZAFKZLCDAMNZBAOZ
      DDUAPQZABUBZUCZRNZUFZGVDDSKZASKZVFVLTZVEDEUDAFUDVMVNVLSKZVOVMVNLVMVKSKVPV
      MVNUEDVJRUGVGDVKSUHUIIJDASSIUQZPQZJUQZOZVQVQVHVSVRUBZUCZRNZUFVLMSVQDTZVSA
      TZLZVTVGVQWCDVKWFVRBVSAWFVRDPQBWFVQDPWDWEUEZUJHUKZWDWEULZUMWGWFVQDWBVJRWG
      WFWAVIVHWFVSAVRBWIWHUNUOUPURJIUSUTVAVBVC $.

    $( General behavior of trivial restriction.  (Contributed by Stefan O'Rear,
       29-Nov-2014.) $)
    ressid2 $p |- ( ( B C_ A /\ W e. X /\ A e. Y ) -> R = W ) $=
      ( wss wcel wceq wa cnx cbs cfv cin cop csts co cif iftrue sylan9eqr 3impb
      ressval ) BAIZDEJZAFJZCDKUFUGLUECUEDDMNOABPQRSZTDABCDEFGHUDUEDUHUAUBUC $.

    $( Value of nontrivial structure restriction.  (Contributed by Stefan
       O'Rear, 29-Nov-2014.) $)
    ressval2 $p |- ( ( -. B C_ A /\ W e. X /\ A e. Y ) -> R = ( W sSet
        <. ( Base ` ndx ) , ( A i^i B ) >. ) ) $=
      ( wss wn wcel cnx cbs cfv cin cop csts co wceq wa ressval sylan9eqr 3impb
      cif iffalse ) BAIZJZDEKZAFKZCDLMNABOPQRZSUHUITUGCUFDUJUDUJABCDEFGHUAUFDUJ
      UEUBUC $.

    $( Base set of a structure restriction.  (Contributed by Stefan O'Rear,
       26-Nov-2014.) $)
    ressbas $p |- ( A e. V -> ( A i^i B ) = ( Base ` R ) ) $=
      ( cvv wcel cin cbs cfv wceq w3a fveq2d 3eqtr4a 3expib wn co c0 wa sseqin2
      wss wi simp1 sylib ressid2 cnx cop csts simp2 eqeltri inex2 baseid setsid
      fvex sylancl ressval2 eqtr4d pm2.61i 0fv 0ex strfvn 3eqtr4ri fvprc syl5eq
      in0 ineq2d cress reldmress ovprc1 adantr pm2.61ian ) EHIZADIZABJZCKLZMZBA
      UCZVNVOUAVRUDVSVNVOVRVSVNVONZBEKLZVPVQGVTVSVPBMVSVNVOUEBAUBUFVTCEKABCEHDF
      GUGOPQVSRZVNVOVRWBVNVONZVPEUHKLZVPUIUJSZKLZVQWCVNVPHIVPWFMWBVNVOUKBABWAHG
      EKUPULUMHVPKHEUNUOUQWCCWEKABCEHDFGUROUSQUTVNRZVRVOWGATJZTKLZVPVQWDTLTWIWH
      WDVATKWDVBUNVCAVGVDWGBTAWGBWATGEKVEVFVHWGCTKWGCEAVISTFEAVIVJVKVFOPVLVM $.

    $( Base set of a structure restriction.  (Contributed by Mario Carneiro,
       2-Dec-2014.) $)
    ressbas2 $p |- ( A C_ B -> A = ( Base ` R ) ) $=
      ( wss cin cbs cfv wceq df-ss biimpi cvv wcel fvex eqeltri ssex ressbas
      syl eqtr3d ) ABGZABHZACIJZUBUCAKABLMUBANOUCUDKABBDIJNFDIPQRABCNDEFSTUA $.

    $( The base set of a restriction is a subset of the base set of the
       original structure.  (Contributed by Stefan O'Rear, 27-Nov-2014.)
       (Revised by Mario Carneiro, 30-Apr-2015.) $)
    ressbasss $p |- ( Base ` R ) C_ B $=
      ( cvv wcel cbs cfv wss cin ressbas inss2 syl6eqssr wn c0 cress reldmress
      co ovprc2 syl5eq fveq2d base0 0ss eqsstr3i syl6eqss pm2.61i ) AGHZCIJZBKU
      IUJABLBABCGDEFMABNOUIPZUJQIJZBUKCQIUKCDARTQEDARSUAUBUCULQBUDBUEUFUGUH $.
  $}

  ${
    resslem.r $e |- R = ( W |`s A ) $.
    resslem.e $e |- C = ( E ` W ) $.
    resslem.f $e |- E = Slot N $.
    resslem.n $e |- N e. NN $.
    resslem.b $e |- 1 < N $.
    $( Other elements of a structure restriction.  (Contributed by Mario
       Carneiro, 26-Nov-2014.)  (Revised by Mario Carneiro, 2-Dec-2014.) $)
    resslem $p |- ( A e. V -> C = ( E ` R ) ) $=
      ( wcel cfv cvv cbs w3a fveq2d c1 c0 wceq wss wa wi eqid ressid2 3expib wn
      cnx cin cop csts co ressval2 ndxid ndxarg gtneii eqnetri basendx neeqtrri
      setsnid syl6eqr pm2.61i cress reldmress ovprc1 syl5eq fvprc eqtr4d adantr
      1re str0 pm2.61ian syl6reqr ) AFMZCDNZGDNZBGOMZVOVPVQUAZGPNZAUBZVRVOUCVSU
      DWAVRVOVSWAVRVOQCGDAVTCGOFHVTUEZUFRUGWAUHZVRVOVSWCVRVOQZVPGUIPNZAVTUJZUKU
      LUMZDNVQWDCWGDAVTCGOFHWBUNRWFWEDGDEJKUOUIDNZSWEWHESDEJKUPSEVKLUQURUSUTVAV
      BUGVCVRUHZVSVOWIVPTVQWIVPTDNTWICTDWICGAVDUMTHGAVDVEVFVGRDEJVLVBGDVHVIVJVM
      IVN $.
  $}

  $( All restrictions of the null set are trivial.  (Contributed by Stefan
     O'Rear, 29-Nov-2014.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
  ress0 $p |- ( (/) |`s A ) = (/) $=
    ( cvv wcel c0 cress co wceq wss 0ss 0ex eqid base0 ressid2 reldmress ovprc2
    mp3an12 pm2.61i ) ABCZDAEFZDGZDAHDBCRTAIJADSDBBSKLMPDAENOQ $.

  ${
    ressid.1 $e |- B = ( Base ` W ) $.
    $( Behavior of trivial restriction.  (Contributed by Stefan O'Rear,
       29-Nov-2014.) $)
    ressid $p |- ( W e. X -> ( W |`s B ) = W ) $=
      ( wss wcel cvv cress wceq ssid cbs cfv fvex eqeltri eqid ressid2 mp3an13
      co ) AAEBCFAGFBAHRZBIAJABKLGDBKMNAASBCGSODPQ $.

    $( Restriction only cares about the part of the second set which intersects
       the base of the first.  (Contributed by Stefan O'Rear, 29-Nov-2014.) $)
    ressinbas $p |- ( A e. X -> ( W |`s A ) = ( W |`s ( A i^i B ) ) ) $=
      ( wcel cvv cress co cin wceq elex wss w3a eqid ressid2 syl3an eqtr4d csts
      wn wa ssid incom df-ss biimpi syl5eq syl5sseqr inex1g 3expb cnx cbs inass
      cfv cop inidm ineq2i eqtr2i opeq2i oveq2i ressval2 inss1 sstr mpan2 con3i
      3eqtr4a pm2.61ian c0 reldmress ovprc1 adantr syl ) ADFAGFZCAHIZCABJZHIZKZ
      ADLCGFZVLVPBAMZVQVLUAVPVRVQVLVPVRVQVLNVMCVOABVMCGGVMOZEPVRBVNMZVQVQVLVNGF
      ZVOCKVRBBVNBUBVRVNBAJZBABUCVRWBBKBAUDUEUFUGCGLZABGUHZVNBVOCGGVOOZEPQRUIVR
      TZVQVLVPWFVQVLNCUJUKUMZVNUNZSICWGVNBJZUNZSIZVMVOWHWJCSVNWIWGWIABBJZJVNABB
      ULWLBABUOUPUQURUSABVMCGGVSEUTWFVTTVQVQVLWAVOWKKVTVRVTVNAMVRABVABVNAVBVCVD
      WCWDVNBVOCGGWEEUTQVEUIVFVQTZVPVLWMVMVGVOCAHVHVICVNHVHVIRVJVFVK $.
  $}

  ${
    ressval3d.r $e |- R = ( S |`s A ) $.
    ressval3d.b $e |- B = ( Base ` S ) $.
    ressval3d.e $e |- E = ( Base ` ndx ) $.
    ressval3d.s $e |- ( ph -> S e. V ) $.
    ressval3d.f $e |- ( ph -> Fun S ) $.
    ressval3d.d $e |- ( ph -> E e. dom S ) $.
    ressval3d.a $e |- ( ph -> A e. Y ) $.
    ressval3d.u $e |- ( ph -> A C_ B ) $.
    $( Value of structure restriction, deduction version.  (Contributed by AV,
       14-Mar-2020.) $)
    ressval3d $p |- ( ph -> R = ( S sSet <. E , A >. ) ) $=
      ( csts co wceq cvv wss cop wn wa wo wi wpss sspss dfpss3 orbi1i bitri cnx
      cbs cfv cin wcel simplr adantl simpl fvex eqeltri syl2an ressval2 syl3anc
      a1i ssexg df-ss biimpi eqcomd adantr opeq12d oveq2d eqtrd ex cress ressid
      oveq2 syl 3eqtrd c1 df-base 1nn cdm syl5eqelr setsidvald jaoi sylbi mpcom
      syl6eq ) BCUAZADEFBUBZQRZSZPWJWJCBUAUCZUDZBCSZUEZAWMUFZWJBCUGZWPUEWQBCUHW
      SWOWPBCUIUJUKWOWRWPWOAWMWOAUDZDEULUMUNZBCUOZUBZQRZWLWTWNEGUPZBTUPZDXDSWJW
      NAUQAXEWOLURWOWJCTUPZXFAWJWNUSXGACEUMUNZTJEUMUTVAVEBCTVFVBBCDEGTIJVCVDWTX
      CWKEQWTWKXCWTFXABXBFXASZWTKVEWOBXBSZAWJXJWNWJXBBWJXBBSBCVGVHVIVJVJVKVIVLV
      MVNWPAWMWPAUDZDEEXAXHUBZQRZWLXKDEBVORZECVORZEDXNSXKIVEWPXNXOSABCEVOVQVJXK
      XEXOESAXEWPLURCEGJVPVRVSAEXMSWPAEUMVTGWAWBLMAXAFEWCKNWDWEURXKXLWKEQXKWKXL
      XKFXABXHXIXKKVEXKBCXHWPAUSJWIVKVIVLVSVNWFWGWH $.
  $}

  $( Restriction composition law.  (Contributed by Stefan O'Rear, 29-Nov-2014.)
     (Proof shortened by Mario Carneiro, 2-Dec-2014.) $)
  ressress $p |- ( ( A e. X /\ B e. Y ) ->
    ( ( W |`s A ) |`s B ) = ( W |`s ( A i^i B ) ) ) $=
    ( cvv wcel wa cress co cin wceq cbs cfv wss wn cop csts eqid syl wi w3a cnx
    simplr simpr1 simpr2 syl3anc inass in12 eqtri ressbas ineq2d syl5req opeq2d
    ressval2 oveq12d fvex inex2 setsabs sylancl eqtrd simpll ovexd simpr3 inss1
    sstr mpan2 nsyl inex1g 3eqtr4d exp31 ressid2 mp3an2 3ad2antr3 simpl eqsstrd
    ovex in32 df-ss sylib oveq2d ressinbas 3syl 3adant3r3 oveq1d syl5ss sseqin2
    ex inss2 pm2.61ii 3expib c0 ress0 reldmress ovprc1 3eqtr4a a1d pm2.61i ) CF
    GZADGZBEGZHZCAIJZBIJZCABKZIJZLZUAWSWTXAXGXCMNZBOZCMNZAOZWSWTXAUBZXGUAXIPZXK
    PZXLXGXMXNHZXLHZXCUCMNZBXHKZQZRJZCXQXEXJKZQZRJZXDXFXPXTCXQAXJKZQRJZYBRJZYCX
    PXCYEXSYBRXPXNWSWTXCYELXMXNXLUDZXOWSWTXAUEZXOWSWTXAUFZAXJXCCFDXCSZXJSZUOUGX
    PXRYAXQXPYABYDKZXRYAABXJKZKZYLABXJUHZABXJUIUJXPYDXHBXPWTYDXHLZYIAXJXCDCYJYK
    UKZTULUMUNUPXPWSYAFGYFYCLYHXJXECMUQURXQYDYACFFUSUTVAXPXMXCFGZXAXDXTLXMXNXLV
    BXPCAIVCXOWSWTXAVDBXHXDXCFEXDSZXHSZUOUGXPXJXEOZPWSXEFGZXFYCLXPXKUUAYGUUAXEA
    OXKABVEXJXEAVFVGVHYHXPWTUUBYIABDVIZTXEXJXFCFFXFSYKUOUGVJVKXIXLXGXIXLHZXDXCX
    FXIWSXAXDXCLZWTXIYRXAUUECAIVQBXHXDXCFEYSYTVLVMVNUUDCYDIJZCYAIJZXCXFUUDYDYAC
    IUUDYAYDBKZYDABXJVRUUDYDBOUUHYDLUUDYDXHBUUDWTYPXIWSWTXAUFZYQTXIXLVOVPYDBVSV
    TUMWAUUDWTXCUUFLUUIAXJCDYKWBTUUDWTUUBXFUUGLZUUIUUCXEXJCFYKWBZWCVJVAWHXKXLXG
    XKXLHZXDCBIJZXFUULXCCBIXKWSWTXCCLXAAXJXCCFDYJYKVLWDWEUULCYMIJZUUGUUMXFUULYM
    YACIUULYAYNYMYOUULYMAOYNYMLUULYMXJABXJWIXKXLVOWFYMAWGVTUMWAUULXAUUMUUNLXKWS
    WTXAVDBXJCEYKWBTUULWTUUBUUJXKWSWTXAUFUUCUUKWCVJVAWHWJWKWSPZXGXBUUOWLBIJWLXD
    XFBWMUUOXCWLBICAIWNWOWECXEIWNWOWPWQWR $.

  $( Restriction absorption law.  (Contributed by Mario Carneiro,
     12-Jun-2015.) $)
  ressabs $p |- ( ( A e. X /\ B C_ A ) ->
    ( ( W |`s A ) |`s B ) = ( W |`s B ) ) $=
    ( wcel wss wa cress cin cvv wceq ssexg ancoms ressress syldan simpr sseqin2
    co sylib oveq2d eqtrd ) ADEZBAFZGZCAHRBHRZCABIZHRZCBHRUBUCBJEZUEUGKUCUBUHBA
    DLMABCDJNOUDUFBCHUDUCUFBKUBUCPBAQSTUA $.

  ${
    wunress.1 $e |- ( ph -> U e. WUni ) $.
    wunress.2 $e |- ( ph -> _om e. U ) $.
    wunress.3 $e |- ( ph -> W e. U ) $.
    $( Closure of structure restriction in a weak universe.  (Contributed by
       Mario Carneiro, 12-Jan-2017.) $)
    wunress $p |- ( ph -> ( W |`s A ) e. U ) $=
      ( cvv wcel cress co cbs cfv cnx cin eqid c1 df-base wunstr c0 wa wss csts
      cop cif wceq ressval sylan wunndx incom wunin syl5eqel wunop ifcld adantr
      wunsets eqeltrd ex wn wun0 reldmress ovprc2 eleq1d syl5ibrcom pm2.61d ) A
      BHIZDBJKZCIZAVFVHAVFUAVGDLMZBUBZDDNLMZBVIOZUDZUCKZUEZCADCIVFVGVOUFGBVIVGD
      CHVGPVIPUGUHAVOCIVFAVJDVNCGAVMDCEGAVKVLCEANCLQREACEFUISAVLVIBOCBVIUJAVIBC
      EADCLQREGSUKULUMUPUNUOUQURAVHVFUSZTCIACEUTVPVGTCDBJVAVBVCVDVE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Slot definitions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c +g $.
  $c .r $.
  $c *r $.
  $c Scalar $.
  $c .s $.
  $c .i $.
  $c TopSet $.
  $c le $.
  $c oc $.
  $c dist $.
  $c UnifSet $.
  $c Hom $.
  $c comp $.

  $( Extend class notation with group (addition) operation. $)
  cplusg $a class +g $.

  $( Extend class notation with ring multiplication. $)
  cmulr $a class .r $.

  $( Extend class notation with involution. $)
  cstv $a class *r $.

  $( Extend class notation with scalar field. $)
  csca $a class Scalar $.

  $( Extend class notation with scalar product. $)
  cvsca $a class .s $.

  $( Extend class notation with Hermitian form (inner product). $)
  cip $a class .i $.

  $( Extend class notation with the topology component of a topological
     space. $)
  cts $a class TopSet $.

  $( Extend class notation with less-than-or-equal for posets. $)
  cple $a class le $.

  $( Extend class notation with the class of orthocomplementation
     extractors. $)
  coc $a class oc $.

  $( Extend class notation with the metric space distance function. $)
  cds $a class dist $.

  $( Extend class notation with the uniform structure. $)
  cunif $a class UnifSet $.

  $( Extend class notation with the hom-set structure. $)
  chom $a class Hom $.

  $( Extend class notation with the composition operation. $)
  cco $a class comp $.

  $( Define group operation.  (Contributed by NM, 4-Sep-2011.)  (Revised by
     Mario Carneiro, 14-Aug-2015.) $)
  df-plusg $a |- +g = Slot 2 $.

  $( Define ring multiplication.  (Contributed by NM, 4-Sep-2011.)  (Revised by
     Mario Carneiro, 14-Aug-2015.) $)
  df-mulr $a |- .r = Slot 3 $.

  $( Define the involution function of a *-ring.  (Contributed by NM,
     4-Sep-2011.)  (Revised by Mario Carneiro, 14-Aug-2015.) $)
  df-starv $a |- *r = Slot 4 $.

  $( Define scalar field component of a vector space ` v ` .  (Contributed by
     NM, 4-Sep-2011.)  (Revised by Mario Carneiro, 14-Aug-2015.) $)
  df-sca $a |- Scalar = Slot 5 $.

  $( Define scalar product.  (Contributed by NM, 4-Sep-2011.)  (Revised by
     Mario Carneiro, 14-Aug-2015.) $)
  df-vsca $a |- .s = Slot 6 $.

  $( Define Hermitian form (inner product).  (Contributed by NM, 4-Sep-2011.)
     (Revised by Mario Carneiro, 14-Aug-2015.) $)
  df-ip $a |- .i = Slot 8 $.

  $( Define the topology component of a topological space (structure).
     (Contributed by NM, 4-Sep-2011.)  (Revised by Mario Carneiro,
     14-Aug-2015.) $)
  df-tset $a |- TopSet = Slot 9 $.

  $( Define less-than-or-equal ordering extractor for posets and related
     structures.  We use ` ; 1 0 ` for the index to avoid conflict with ` 1 `
     through ` 9 ` used for other purposes.  (Contributed by NM, 4-Sep-2011.)
     (Revised by Mario Carneiro, 14-Aug-2015.)  (Revised by AV, 9-Sep-2021.) $)
  df-ple $a |- le = Slot ; 1 0 $.

  $( Obsolete version of ~ df-ple as of 9-Sep-2021.  (Contributed by NM,
     4-Sep-2011.)  (Revised by Mario Carneiro, 14-Aug-2015.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  dfpleOLD $p |- le = Slot 10 $=
    ( vx c1 cc0 cdc cslot cvv c10 cfv cmpt cple df-slot dec10OLD eqcomi mpteq2i
    cv fveq2i eqtri df-ple 3eqtr4i ) BCDZEZAFGAOZHZIZJGEUAAFTUBHZIUDATKAFUEUCTG
    UBGTLMPNQRAGKS $.

  $( Define the orthocomplementation extractor for posets and related
     structures.  (Contributed by NM, 4-Sep-2011.)  (Revised by Mario Carneiro,
     14-Aug-2015.) $)
  df-ocomp $a |- oc = Slot ; 1 1 $.

  $( Define the distance function component of a metric space (structure).
     (Contributed by NM, 4-Sep-2011.)  (Revised by Mario Carneiro,
     14-Aug-2015.) $)
  df-ds $a |- dist = Slot ; 1 2 $.

  $( Define the uniform structure component of a uniform space.  (Contributed
     by Mario Carneiro, 14-Aug-2015.) $)
  df-unif $a |- UnifSet = Slot ; 1 3 $.

  $( Define the hom-set component of a category.  (Contributed by Mario
     Carneiro, 2-Jan-2017.) $)
  df-hom $a |- Hom = Slot ; 1 4 $.

  $( Define the composition operation of a category.  (Contributed by Mario
     Carneiro, 2-Jan-2017.) $)
  df-cco $a |- comp = Slot ; 1 5 $.

  $( Structure definition utility lemma.  To prove that an explicit function is
     a function using O(n) steps, exploit the order properties of the index
     set.  Zero-pair case.  Obsolete as of 26-Nov-2021.  Theorems
     ~ strlemor0OLD , ~ strlemor1OLD , ~ strlemor2OLD , ~ strlemor3OLD were
     replaced by ~ strleun , ~ strle1 , ~ strle2 , ~ strle3 following the
     introduction ~ df-struct .  (Contributed by Stefan O'Rear, 3-Jan-2015.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  strlemor0OLD $p |- ( Fun `' `' (/) /\ dom (/) C_ ( 1 ... 0 ) ) $=
    ( c0 ccnv wfun cdm c1 cc0 cfz co wss funcnvcnv ax-mp dm0 0ss eqsstri pm3.2i
    fun0 ) ABBCZADZEFGHZIACQPAJKRASLSMNO $.

  ${
    strlemor.f $e |- ( Fun `' `' F /\ dom F C_ ( 1 ... I ) ) $.
    strlemor.i $e |- I e. NN0 $.
    strlemor.o $e |- I < J $.
    strlemor.j $e |- J e. NN $.
    strlemor.a $e |- A = J $.
    ${
      strlemor1.g $e |- G = ( F u. { <. A , X >. } ) $.
      $( Add one element to the end of a structure.  Obsolete as of
         26-Nov-2021.  See comment of ~ strlemor0OLD .  (Contributed by Stefan
         O'Rear, 3-Jan-2015.)  (Revised by Mario Carneiro, 30-Apr-2015.)
         (Proof modification is discouraged.)  (New usage is discouraged.) $)
      strlemor1OLD $p |- ( Fun `' `' G /\ dom G C_ ( 1 ... J ) ) $=
        ( ccnv wfun cdm c1 wss cun wcel eqtri cfz co cop csn wa cin wceq simpli
        c0 funcnvsn pm3.2i cnvcnvss dmss ax-mp cnvcnvsn eqsstr3i dmsnopss sstri
        ss2in mp2an wn cle wbr clt nn0rei nnrei ltnlei elfzle2 mto simpri sseli
        mpbi disjsn mpbir sseq0 funun opeq1i sneqi uneq2i cnveqi cnvun dmun cuz
        funeqi dmeqi cfv cz nn0zi ltleii eluz2 mpbir3an fzss2 cn elfz1end snssi
        nnzi unssi eqsstri ) CMZMZNZCOZPEUAUBZQXABMZMZFEUCUDMZRZNZXENZXFNZUEXEO
        ZXFOZUFZUIUGZXHXIXJXIBOZPDUAUBZQZGUHFEUJUKXMXOEUDZUFZQZXSUIUGZXNXKXOQZX
        LXRQXTXEBQYBBULXEBUMUNXLEFUCZUDZOZXRXFYDQXLYEQXFYDMZMZYDEFUOZYDULUPXFYD
        UMUNEFUQZURXKXOXLXRUSUTYAEXOSZVAYJEXPSZYKEDVBVCZDEVDVCYLVAIDEDHVEZEJVFZ
        VGVLEPDVHVIXOXPEXIXQGVJZVKVIXOEVMVNXMXSVOUTXEXFVPUTWTXGWTXDYFRZMZXGWSYP
        WSBYDRZMYPCYRCBAFUCZUDZRYRLYTYDBYSYCAEFKVQVRVSTZVTBYDWATVTYQXEYGRXGXDYF
        WAYGXFXEYHVSTTWDVNXBXOYERZXCXBYROUUBCYRUUAWEBYDWBTXOYEXCXOXPXCYOEDWCWFS
        ZXPXCQUUCDWGSEWGSDEVBVCDHWHEJWPDEYMYNIWIDEWJWKDPEWLUNURYEXRXCYIEXCSZXRX
        CQEWMSUUDJEWNVLEXCWOUNURWQWRUK $.
    $}

    strlemor2.o $e |- J < K $.
    strlemor2.k $e |- K e. NN $.
    strlemor2.b $e |- B = K $.
    ${
      strlemor2.g $e |- G = ( F u. { <. A , X >. , <. B , Y >. } ) $.
      $( Add two elements to the end of a structure.  Obsolete as of
         26-Nov-2021.  See comment of ~ strlemor0OLD .  (Contributed by Stefan
         O'Rear, 3-Jan-2015.)  (Revised by Mario Carneiro, 30-Apr-2015.)
         (Proof modification is discouraged.)  (New usage is discouraged.) $)
      strlemor2OLD $p |- ( Fun `' `' G /\ dom G C_ ( 1 ... K ) ) $=
        ( cop cun csn eqid strlemor1OLD nnnn0i cpr df-pr uneq2i unass 3eqtr4i )
        BCAHSZUAZTZDFGIACULEFHJKLMNULUBUCFMUDOPQCUJBISZUEZTCUKUMUAZTZTDULUOTUNU
        PCUJUMUFUGRCUKUOUHUIUC $.
    $}

    strlemor3.o $e |- K < L $.
    strlemor3.l $e |- L e. NN $.
    strlemor3.c $e |- C = L $.
    ${
      strlemor3.g $e |- G = ( F u. { <. A , X >. , <. B , Y >. ,
          <. C , Z >. } ) $.
      $( Add three elements to the end of a structure.  Obsolete as of
         26-Nov-2021.  See comment of ~ strlemor0OLD .  (Contributed by Stefan
         O'Rear, 3-Jan-2015.)  (Revised by Mario Carneiro, 30-Apr-2015.)
         (Proof modification is discouraged.)  (New usage is discouraged.) $)
      strlemor3OLD $p |- ( Fun `' `' G /\ dom G C_ ( 1 ... L ) ) $=
        ( cop cpr cun eqid strlemor2OLD nnnn0i ctp csn df-tp unass strlemor1OLD
        uneq2i 3eqtr4i ) CDAJUEZBKUEZUFZUGZEHILABDVAFGHJKMNOPQRSTVAUHUIHSUJUAUB
        UCDURUSCLUEZUKZUGDUTVBULZUGZUGEVAVDUGVCVEDURUSVBUMUPUDDUTVDUNUQUO $.
    $}
  $}

  ${
    strleun.f $e |- F Struct <. A , B >. $.
    strleun.g $e |- G Struct <. C , D >. $.
    strleun.l $e |- B < C $.
    $( Combine two structures into one.  (Contributed by Mario Carneiro,
       29-Aug-2015.) $)
    strleun $p |- ( F u. G ) Struct <. A , D >. $=
      ( wbr cn wcel cle w3a wfun cdm wss simp1i mp2an ax-mp cun cop cstr c0 csn
      cdif cfz co isstruct mpbi simp2i simp3i nnrei ltleii letri 3pm3.2i wa cin
      wceq pm3.2i difss dmss sstri ss2in clt fzdisj sseq0 funun difundir funeqi
      mpbir dmun cuz cfv cz nnzi eluz2 mpbir3an fzss2 fzss1 unssi eqsstri ) EFU
      AZADUBUCJAKLZDKLZADMJZNWCUDUEZUFZOZWCPZADUGUHZQWDWEWFWDBKLZABMJZWDWLWMNZE
      WGUFZOZEPZABUGUHZQZEABUBUCJWNWPWSNGEABUIUJZRZRZCKLZWECDMJZXCWEXDNZFWGUFZO
      ZFPZCDUGUHZQZFCDUBUCJXEXGXJNHFCDUIUJZRZUKZACMJZXDWFWMBCMJZXNWDWLWMXAULBCB
      WDWLWMXAUKZUMZCXCWEXDXLRZUMZIUNZABCAXBUMZXQXSUOSZXCWEXDXLULZACDYAXSDXMUMZ
      UOSUPWIWOXFUAZOZWPXGUQWOPZXFPZURZUDUSZYFWPXGWNWPWSWTUKXEXGXJXKUKUTYIWRXIU
      RZQZYKUDUSZYJYGWRQYHXIQYLYGWQWRWOEQYGWQQEWGVAWOEVBTWNWPWSWTULZVCYHXHXIXFF
      QYHXHQFWGVAXFFVBTXEXGXJXKULZVCYGWRYHXIVDSBCVEJYMIABCDVFTYIYKVGSWOXFVHSWHY
      EEFWGVIVJVKWJWQXHUAWKEFVLWQXHWKWQWRWKYNDBVMVNLZWRWKQYPBVOLDVOLBDMJZBXPVPD
      XMVPXOXDYQXTYCBCDXQXSYDUOSBDVQVRBADVSTVCXHXIWKYOCAVMVNLZXIWKQYRAVOLCVOLXN
      AXBVPCXRVPYBACVQVRCADVTTVCWAWBWCADUIVR $.
  $}

  ${
    strle1.i $e |- I e. NN $.
    strle1.a $e |- A = I $.
    $( Make a structure from a singleton.  (Contributed by Mario Carneiro,
       29-Aug-2015.) $)
    strle1 $p |- { <. A , X >. } Struct <. I , I >. $=
      ( cop csn cstr wbr cn wcel cle w3a c0 cdif wfun cdm cfz wss cvv co funsng
      nnrei leidi 3pm3.2i difss eqeltri mpan funss mpsyl wn fun0 opprc2 difeq1d
      sneqd difid syl6eq funeqd mpbiri pm2.61i dmsnopss sneqi cz wceq nnzi fzsn
      ax-mp eqtr4i sseqtri isstruct mpbir3an ) ACFZGZBBFHIBJKZVNBBLIZMVMNGZOZPZ
      VMQZBBRUAZSVNVNVODDBBDUCUDUECTKZVRVQVMSWAVMPZVRVMVPUFAJKWAWBABJEDUGACJTUB
      UHVQVMUIUJWAUKZVRNPULWCVQNWCVQVPVPONWCVMVPVPWCVLNACUMUOUNVPUPUQURUSUTVSAG
      ZVTACVAWDBGZVTABEVBBVCKVTWEVDBDVEBVFVGVHVIVMBBVJVK $.

    strle2.j $e |- I < J $.
    strle2.k $e |- J e. NN $.
    strle2.b $e |- B = J $.
    $( Make a structure from a pair.  (Contributed by Mario Carneiro,
       29-Aug-2015.) $)
    strle2 $p |- { <. A , X >. , <. B , Y >. } Struct <. I , J >. $=
      ( cop cpr csn cun cstr df-pr strle1 strleun eqbrtri ) AELZBFLZMUANZUBNZOC
      DLPUAUBQCCDDUCUDACEGHRBDFJKRIST $.

    strle3.k $e |- J < K $.
    strle3.l $e |- K e. NN $.
    strle3.c $e |- C = K $.
    $( Make a structure from a triple.  (Contributed by Mario Carneiro,
       29-Aug-2015.) $)
    strle3 $p |- { <. A , X >. , <. B , Y >. , <. C , Z >. }
        Struct <. I , K >. $=
      ( cop ctp cpr csn cun cstr df-tp strle2 strle1 strleun eqbrtri ) AGRZBHRZ
      CIRZSUIUJTZUKUAZUBDFRUCUIUJUKUDDEFFULUMABDEGHJKLMNUECFIPQUFOUGUH $.
  $}

  $( Index value of the ~ df-plusg slot.  (Contributed by Mario Carneiro,
     14-Aug-2015.) $)
  plusgndx $p |- ( +g ` ndx ) = 2 $=
    ( cplusg c2 df-plusg 2nn ndxarg ) ABCDE $.

  $( Utility theorem: index-independent form of ~ df-plusg .  (Contributed by
     NM, 20-Oct-2012.) $)
  plusgid $p |- +g = Slot ( +g ` ndx ) $=
    ( cplusg c2 df-plusg 2nn ndxid ) ABCDE $.

  ${
    opelstrbas.s $e |- ( ph -> S Struct X ) $.
    opelstrbas.v $e |- ( ph -> V e. Y ) $.
    opelstrbas.b $e |- ( ph -> <. ( Base ` ndx ) , V >. e. S ) $.
    $( The base set of a structure with a base set.  (Contributed by AV,
       10-Nov-2021.) $)
    opelstrbas $p |- ( ph -> V = ( Base ` S ) ) $=
      ( cbs cvv baseid cstr wbr wcel structex syl ccnv wfun structfung strfv2d
      ) ACBIJEKABDLMZBJNFBDOPAUABQQRFBDSPHGT $.
  $}

  ${
    1str.g $e |- G = { <. ( Base ` ndx ) , B >. } $.
    $( A constructed one-slot structure.  (Contributed by AV, 27-Mar-2020.) $)
    1strstr $p |- G Struct <. 1 , 1 >. $=
      ( cnx cbs cfv cop csn c1 cstr 1nn basendx strle1 eqbrtri ) BDEFZAGHIIGJCO
      IAKLMN $.

    $( The base set of a constructed one-slot structure.  (Contributed by AV,
       27-Mar-2020.) $)
    1strbas $p |- ( B e. V -> B = ( Base ` G ) ) $=
      ( cbs c1 cop 1strstr baseid cnx cfv csn eqimss2i strfv ) ABECFFGABDHIBJEK
      AGLDMN $.

    1strwun.u $e |- ( ph -> U e. WUni ) $.
    ${
      1strwunbndx.b $e |- ( ph -> ( Base ` ndx ) e. U ) $.
      $( A constructed one-slot structure in a weak universe containing the
         index of the base set extractor.  (Contributed by AV, 27-Mar-2020.) $)
      1strwunbndx $p |- ( ( ph /\ B e. U ) -> G e. U ) $=
        ( wcel wa cnx cbs cfv cop csn cwun adantr simpr wunop wunsn syl5eqel )
        ABCHZIZDJKLZBMZNCEUBUDCACOHUAFPZUBUCBCUEAUCCHUAGPAUAQRST $.
    $}

    1strwun.o $e |- ( ph -> _om e. U ) $.
    $( A constructed one-slot structure in a weak universe.  (Contributed by
       AV, 27-Mar-2020.) $)
    1strwun $p |- ( ( ph /\ B e. U ) -> G e. U ) $=
      ( cnx cbs c1 df-base wunndx wunstr 1strwunbndx ) ABCDEFAHCIJKFACFGLMN $.
  $}

  ${
    2str.g $e |- G = { <. ( Base ` ndx ) , B >. , <. ( E ` ndx ) , .+ >. } $.
    2str.e $e |- E = Slot N $.
    2str.l $e |- 1 < N $.
    2str.n $e |- N e. NN $.
    $( A constructed two-slot structure.  (Contributed by Mario Carneiro,
       29-Aug-2015.) $)
    2strstr $p |- G Struct <. 1 , N >. $=
      ( cnx cbs cfv cop cpr c1 cstr 1nn basendx ndxarg strle2 eqbrtri ) DJKLZAM
      JCLZBMNOEMPFUBUCOEABQRHICEGISTUA $.

    $( The base set of a constructed two-slot structure.  (Contributed by Mario
       Carneiro, 29-Aug-2015.) $)
    2strbas $p |- ( B e. V -> B = ( Base ` G ) ) $=
      ( cbs c1 cop 2strstr baseid cnx cfv csn cpr snsspr1 sseqtr4i strfv ) ADKF
      LEMABCDEGHIJNOPKQAMZRUCPCQBMZSDUCUDTGUAUB $.

    $( The other slot of a constructed two-slot structure.  (Contributed by
       Mario Carneiro, 29-Aug-2015.) $)
    2strop $p |- ( .+ e. V -> .+ = ( E ` G ) ) $=
      ( c1 cop 2strstr ndxid cnx cfv csn cbs cpr snsspr2 sseqtr4i strfv ) BDCFK
      ELABCDEGHIJMCEHJNOCPBLZQORPALZUCSDUDUCTGUAUB $.
  $}

  ${
    2str1.g $e |- G = { <. ( Base ` ndx ) , B >. , <. N , .+ >. } $.
    2str1.b $e |- ( Base ` ndx ) < N $.
    2str1.n $e |- N e. NN $.
    $( A constructed two-slot structure.  Version of ~ 2strstr not depending on
       the hard-coded index value of the base set.  (Contributed by AV,
       22-Sep-2020.) $)
    2strstr1 $p |- G Struct <. ( Base ` ndx ) , N >. $=
      ( c1 cop cnx cbs cfv cstr cslot cpr eqid ndxarg eqcomi opeq1i basendx clt
      preq2i eqtri eqbrtrri 2strstr breqtrri ) CHDIJKLZDIMABDNZCDCUGAIZDBIZOUIJ
      UHLZBIZOEUJULUIDUKBUKDUHDUHPZGQRSUBUCUMUGHDUATFUDGUEUGHDTSUF $.

    $( The base set of a constructed two-slot structure.  Version of ~ 2strbas
       not depending on the hard-coded index value of the base set.
       (Contributed by AV, 22-Sep-2020.) $)
    2strbas1 $p |- ( B e. V -> B = ( Base ` G ) ) $=
      ( cbs cnx cfv cop 2strstr1 baseid csn cpr snsspr1 sseqtr4i strfv ) ACIEJI
      KZDLABCDFGHMNTALZOUADBLZPCUAUBQFRS $.

    2str1.e $e |- E = Slot N $.
    $( The other slot of a constructed two-slot structure.  Version of ~ 2strop
       not depending on the hard-coded index value of the base set.
       (Contributed by AV, 22-Sep-2020.) $)
    2strop1 $p |- ( .+ e. V -> .+ = ( E ` G ) ) $=
      ( cnx cbs cfv cop 2strstr1 ndxid csn cpr snsspr2 ndxarg opeq1i 3sstr4i
      sneqi strfv ) BDCFKLMZENABDEGHIOCEJIPEBNZQUEANZUFRKCMZBNZQDUGUFSUIUFUHEBC
      EJITUAUCGUBUD $.
  $}

  $( The slot for the base set is not the slot for the group operation in an
     extensible structure.  (Contributed by AV, 14-Nov-2021.) $)
  basendxnplusgndx $p |- ( Base ` ndx ) =/= ( +g ` ndx ) $=
    ( cnx cbs cfv c1 cplusg df-base 1nn ndxarg 1ne2 plusgndx neeqtrri eqnetri
    c2 ) ABCDAECZBDFGHDMNIJKL $.

  ${
    grpfn.g $e |- G = { <. ( Base ` ndx ) , B >. , <. ( +g ` ndx ) , .+ >. } $.
    $( A constructed group is a structure on ` 1 ... 2 ` .  (Contributed by
       Mario Carneiro, 28-Sep-2013.)  (Revised by Mario Carneiro,
       30-Apr-2015.) $)
    grpstr $p |- G Struct <. 1 , 2 >. $=
      ( cplusg c2 df-plusg 1lt2 2nn 2strstr ) ABECFDGHIJ $.

    $( The base set of a constructed group.  (Contributed by Mario Carneiro,
       2-Aug-2013.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    grpbase $p |- ( B e. V -> B = ( Base ` G ) ) $=
      ( cplusg c2 df-plusg 1lt2 2nn 2strbas ) ABFCGDEHIJK $.

    $( The operation of a constructed group.  (Contributed by Mario Carneiro,
       2-Aug-2013.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    grpplusg $p |- ( .+ e. V -> .+ = ( +g ` G ) ) $=
      ( cplusg c2 df-plusg 1lt2 2nn 2strop ) ABFCGDEHIJK $.
  $}

  ${
    ressplusg.1 $e |- H = ( G |`s A ) $.
    ressplusg.2 $e |- .+ = ( +g ` G ) $.
    $( ` +g ` is unaffected by restriction.  (Contributed by Stefan O'Rear,
       27-Nov-2014.) $)
    ressplusg $p |- ( A e. V -> .+ = ( +g ` H ) ) $=
      ( cplusg c2 df-plusg 2nn 1lt2 resslem ) ABDHIECFGJKLM $.
  $}

  ${
    grpstrx.b $e |- B e. _V $.
    grpstrx.p $e |- .+ e. _V $.
    grpstrx.g $e |- G = { <. 1 , B >. , <. 2 , .+ >. } $.
    $( The base of an explicitly given group.  Note:  This theorem has
       hard-coded structure indices for demonstration purposes.  It is not
       intended for general use; use ~ grpbase instead.
       (New usage is discouraged.)  (Contributed by NM, 17-Oct-2012.) $)
    grpbasex $p |- B = ( Base ` G ) $=
      ( cvv wcel cbs cfv wceq c1 cop c2 cpr cnx cplusg basendx opeq1i plusgndx
      preq12i eqtr4i grpbase ax-mp ) AGHACIJKDABCGCLAMZNBMZOPIJZAMZPQJZBMZOFUHU
      EUJUFUGLARSUINBTSUAUBUCUD $.

    $( The operation of an explicitly given group.  Note:  This theorem has
       hard-coded structure indices for demonstration purposes.  It is not
       intended for general use; use ~ grpplusg instead.
       (New usage is discouraged.)  (Contributed by NM, 17-Oct-2012.) $)
    grpplusgx $p |- .+ = ( +g ` G ) $=
      ( cvv wcel cplusg cfv wceq c1 cop c2 cpr cnx cbs basendx opeq1i plusgndx
      preq12i eqtr4i grpplusg ax-mp ) BGHBCIJKEABCGCLAMZNBMZOPQJZAMZPIJZBMZOFUH
      UEUJUFUGLARSUINBTSUAUBUCUD $.
  $}

  $( Index value of the ~ df-mulr slot.  (Contributed by Mario Carneiro,
     14-Aug-2015.) $)
  mulrndx $p |- ( .r ` ndx ) = 3 $=
    ( cmulr c3 df-mulr 3nn ndxarg ) ABCDE $.

  $( Utility theorem: index-independent form of ~ df-mulr .  (Contributed by
     Mario Carneiro, 8-Jun-2013.) $)
  mulrid $p |- .r = Slot ( .r ` ndx ) $=
    ( cmulr c3 df-mulr 3nn ndxid ) ABCDE $.

  $( The slot for the group (addition) operation is not the slot for the ring
     (multiplication) operation in an extensible structure.  (Contributed by
     AV, 16-Feb-2020.) $)
  plusgndxnmulrndx $p |- ( +g ` ndx ) =/= ( .r ` ndx ) $=
    ( cnx cplusg cfv c2 cmulr plusgndx 2re 2lt3 ltneii mulrndx neeqtrri eqnetri
    c3 ) ABCDAECZFDMNDMGHIJKL $.

  $( The slot for the base set is not the slot for the ring (multiplication)
     operation in an extensible structure.  (Contributed by AV,
     16-Feb-2020.) $)
  basendxnmulrndx $p |- ( Base ` ndx ) =/= ( .r ` ndx ) $=
    ( cnx cbs cfv c1 cmulr df-base 1nn ndxarg 1re 1lt3 mulrndx neeqtrri eqnetri
    c3 ltneii ) ABCDAECZBDFGHDNPDNIJOKLM $.

  ${
    rngfn.r $e |- R
               = { <. ( Base ` ndx ) , B >. , <. ( +g ` ndx ) , .+ >. ,
                   <. ( .r ` ndx ) , .x. >. } $.
    $( A constructed ring is a structure.  (Contributed by Mario Carneiro,
       28-Sep-2013.)  (Revised by Mario Carneiro, 29-Aug-2015.) $)
    rngstr $p |- R Struct <. 1 , 3 >. $=
      ( cnx cbs cfv cop cplusg cmulr ctp c1 c3 cstr c2 1nn basendx 1lt2 2nn 3nn
      plusgndx 2lt3 mulrndx strle3 eqbrtri ) CFGHZAIFJHZBIFKHZDILMNIOEUGUHUIMPN
      ABDQRSTUBUCUAUDUEUF $.

    $( The base set of a constructed ring.  (Contributed by Mario Carneiro,
       2-Oct-2013.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    rngbase $p |- ( B e. V -> B = ( Base ` R ) ) $=
      ( cbs c1 cop rngstr baseid cnx cfv csn cplusg cmulr ctp snsstp1 sseqtr4i
      c3 strfv ) ACGEHTIABCDFJKLGMAIZNUBLOMBIZLPMDIZQCUBUCUDRFSUA $.

    $( The additive operation of a constructed ring.  (Contributed by Mario
       Carneiro, 2-Oct-2013.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    rngplusg $p |- ( .+ e. V -> .+ = ( +g ` R ) ) $=
      ( cplusg c1 cop rngstr plusgid cnx cfv csn cbs cmulr ctp snsstp2 sseqtr4i
      c3 strfv ) BCGEHTIABCDFJKLGMBIZNLOMAIZUBLPMDIZQCUCUBUDRFSUA $.

    $( The multiplicative operation of a constructed ring.  (Contributed by
       Mario Carneiro, 2-Oct-2013.)  (Revised by Mario Carneiro,
       30-Apr-2015.) $)
    rngmulr $p |- ( .x. e. V -> .x. = ( .r ` R ) ) $=
      ( cmulr c1 cop rngstr mulrid cnx cfv csn cbs cplusg ctp snsstp3 sseqtr4i
      c3 strfv ) DCGEHTIABCDFJKLGMDIZNLOMAIZLPMBIZUBQCUCUDUBRFSUA $.
  $}

  $( Index value of the ~ df-starv slot.  (Contributed by Mario Carneiro,
     14-Aug-2015.) $)
  starvndx $p |- ( *r ` ndx ) = 4 $=
    ( cstv c4 df-starv 4nn ndxarg ) ABCDE $.

  $( Utility theorem: index-independent form of ~ df-starv .  (Contributed by
     Mario Carneiro, 6-Oct-2013.) $)
  starvid $p |- *r = Slot ( *r ` ndx ) $=
    ( cstv c4 df-starv 4nn ndxid ) ABCDE $.

  ${
    ressmulr.1 $e |- S = ( R |`s A ) $.
    ${
      ressmulr.2 $e |- .x. = ( .r ` R ) $.
      $( ` .r ` is unaffected by restriction.  (Contributed by Stefan O'Rear,
         27-Nov-2014.) $)
      ressmulr $p |- ( A e. V -> .x. = ( .r ` S ) ) $=
        ( cmulr c3 df-mulr 3nn 1lt3 resslem ) ADCHIEBFGJKLM $.
    $}

    ${
      ressstarv.2 $e |- .* = ( *r ` R ) $.
      $( ` *r ` is unaffected by restriction.  (Contributed by Mario Carneiro,
         9-Oct-2015.) $)
      ressstarv $p |- ( A e. V -> .* = ( *r ` S ) ) $=
        ( cstv c4 df-starv 4nn 1lt4 resslem ) ADCHIEBFGJKLM $.
    $}
  $}

  ${
    srngfn.r $e |- R = ( { <. ( Base ` ndx ) , B >. , <. ( +g ` ndx ) , .+ >. ,
         <. ( .r ` ndx ) , .x. >. } u. { <. ( *r ` ndx ) , .* >. } ) $.
    $( A constructed star ring is a function with domain contained in ` 1 `
       thru ` 4 ` .  (Contributed by Mario Carneiro, 18-Nov-2013.)  (Revised by
       Mario Carneiro, 14-Aug-2015.) $)
    srngfn $p |- R Struct <. 1 , 4 >. $=
      ( cnx cbs cfv cop cplusg cmulr ctp cstv csn cun c1 c4 cstr c3 eqid rngstr
      4nn starvndx strle1 3lt4 strleun eqbrtri ) CGHIAJGKIBJGLIDJMZGNIZEJOZPQRJ
      SFQTRRUIUKABUIDUIUAUBUJREUCUDUEUFUGUH $.

    $( The base set of a constructed star ring.  (Contributed by Mario
       Carneiro, 18-Nov-2013.)  (Revised by Mario Carneiro, 6-May-2015.) $)
    srngbase $p |- ( B e. X -> B = ( Base ` R ) ) $=
      ( cbs c1 c4 cop srngfn baseid cnx cfv csn cplusg cmulr ctp snsstp1 ssun1
      cstv cun sseqtr4i sstri strfv ) ACHFIJKABCDEGLMNHOAKZPUGNQOBKZNRODKZSZCUG
      UHUITUJUJNUBOEKPZUCCUJUKUAGUDUEUF $.

    $( The addition operation of a constructed star ring.  (Contributed by
       Mario Carneiro, 20-Jun-2015.) $)
    srngplusg $p |- ( .+ e. X -> .+ = ( +g ` R ) ) $=
      ( cplusg c1 c4 cop srngfn plusgid cnx cfv csn cbs cmulr ctp snsstp2 ssun1
      cstv cun sseqtr4i sstri strfv ) BCHFIJKABCDEGLMNHOBKZPNQOAKZUGNRODKZSZCUH
      UGUITUJUJNUBOEKPZUCCUJUKUAGUDUEUF $.

    $( The multiplication operation of a constructed star ring.  (Contributed
       by Mario Carneiro, 20-Jun-2015.) $)
    srngmulr $p |- ( .x. e. X -> .x. = ( .r ` R ) ) $=
      ( cmulr c1 c4 cop srngfn mulrid cnx cfv csn cbs cplusg ctp snsstp3 ssun1
      cstv cun sseqtr4i sstri strfv ) DCHFIJKABCDEGLMNHODKZPNQOAKZNROBKZUGSZCUH
      UIUGTUJUJNUBOEKPZUCCUJUKUAGUDUEUF $.

    $( The involution function of a constructed star ring.  (Contributed by
       Mario Carneiro, 20-Jun-2015.) $)
    srnginvl $p |- ( .* e. X -> .* = ( *r ` R ) ) $=
      ( cstv c1 c4 cop srngfn starvid cnx cfv csn cbs cplusg cmulr ctp sseqtr4i
      cun ssun2 strfv ) ECHFIJKABCDEGLMNHOEKPZNQOAKNROBKNSODKTZUEUBCUEUFUCGUAUD
      $.
  $}

  $( Index value of the ~ df-sca slot.  (Contributed by Mario Carneiro,
     14-Aug-2015.) $)
  scandx $p |- ( Scalar ` ndx ) = 5 $=
    ( csca c5 df-sca 5nn ndxarg ) ABCDE $.

  $( Utility theorem: index-independent form of scalar ~ df-sca .  (Contributed
     by Mario Carneiro, 19-Jun-2014.) $)
  scaid $p |- Scalar = Slot ( Scalar ` ndx ) $=
    ( csca c5 df-sca 5nn ndxid ) ABCDE $.

  $( Index value of the ~ df-vsca slot.  (Contributed by Mario Carneiro,
     14-Aug-2015.) $)
  vscandx $p |- ( .s ` ndx ) = 6 $=
    ( cvsca c6 df-vsca 6nn ndxarg ) ABCDE $.

  $( Utility theorem: index-independent form of scalar product ~ df-vsca .
     (Contributed by Mario Carneiro, 2-Oct-2013.)  (Revised by Mario Carneiro,
     19-Jun-2014.) $)
  vscaid $p |- .s = Slot ( .s ` ndx ) $=
    ( cvsca c6 df-vsca 6nn ndxid ) ABCDE $.

  ${
    lvecfn.w $e |- W = ( { <. ( Base ` ndx ) , B >. , <. ( +g ` ndx ) , .+ >. ,
              <. ( Scalar ` ndx ) , F >. } u. { <. ( .s ` ndx ) , .x. >. } ) $.
    $( A constructed left module or left vector space is a function.
       (Contributed by Mario Carneiro, 1-Oct-2013.)  (Revised by Mario
       Carneiro, 29-Aug-2015.) $)
    lmodstr $p |- W Struct <. 1 , 6 >. $=
      ( cnx cbs cfv cop cplusg csca ctp cvsca csn cun c1 c6 cstr c5 1nn basendx
      c2 1lt2 2nn plusgndx 5nn scandx strle3 6nn vscandx strle1 strleun eqbrtri
      2lt5 5lt6 ) EGHIZAJGKIZBJGLIZDJMZGNIZCJOZPQRJSFQTRRUTVBUQURUSQUCTABDUAUBU
      DUEUFUOUGUHUIVARCUJUKULUPUMUN $.

    $( The base set of a constructed left vector space.  (Contributed by Mario
       Carneiro, 2-Oct-2013.)  (Revised by Mario Carneiro, 29-Aug-2015.) $)
    lmodbase $p |- ( B e. X -> B = ( Base ` W ) ) $=
      ( cbs c1 c6 cop lmodstr baseid cnx cfv csn cplusg csca ctp snsstp1 cvsca
      cun ssun1 sseqtr4i sstri strfv ) AEHFIJKABCDEGLMNHOAKZPUGNQOBKZNRODKZSZEU
      GUHUITUJUJNUAOCKPZUBEUJUKUCGUDUEUF $.

    $( The additive operation of a constructed left vector space.  (Contributed
       by Mario Carneiro, 2-Oct-2013.)  (Revised by Mario Carneiro,
       29-Aug-2015.) $)
    lmodplusg $p |- ( .+ e. X -> .+ = ( +g ` W ) ) $=
      ( cplusg c1 c6 cop lmodstr plusgid cnx cfv csn cbs csca ctp snsstp2 cvsca
      cun ssun1 sseqtr4i sstri strfv ) BEHFIJKABCDEGLMNHOBKZPNQOAKZUGNRODKZSZEU
      HUGUITUJUJNUAOCKPZUBEUJUKUCGUDUEUF $.

    $( The set of scalars of a constructed left vector space.  (Contributed by
       Mario Carneiro, 2-Oct-2013.)  (Revised by Mario Carneiro,
       29-Aug-2015.) $)
    lmodsca $p |- ( F e. X -> F = ( Scalar ` W ) ) $=
      ( csca c1 c6 cop lmodstr scaid cnx cfv csn cbs cplusg ctp snsstp3 cvsca
      cun ssun1 sseqtr4i sstri strfv ) DEHFIJKABCDEGLMNHODKZPNQOAKZNROBKZUGSZEU
      HUIUGTUJUJNUAOCKPZUBEUJUKUCGUDUEUF $.

    $( The scalar product operation of a constructed left vector space.
       (Contributed by Mario Carneiro, 2-Oct-2013.)  (Revised by Mario
       Carneiro, 29-Aug-2015.) $)
    lmodvsca $p |- ( .x. e. X -> .x. = ( .s ` W ) ) $=
      ( cvsca c1 c6 cop lmodstr vscaid cnx cfv csn cbs cplusg csca ctp sseqtr4i
      cun ssun2 strfv ) CEHFIJKABCDEGLMNHOCKPZNQOAKNROBKNSODKTZUEUBEUEUFUCGUAUD
      $.
  $}

  $( Index value of the ~ df-ip slot.  (Contributed by Mario Carneiro,
     14-Aug-2015.) $)
  ipndx $p |- ( .i ` ndx ) = 8 $=
    ( cip c8 df-ip 8nn ndxarg ) ABCDE $.

  $( Utility theorem: index-independent form of ~ df-ip .  (Contributed by
     Mario Carneiro, 6-Oct-2013.) $)
  ipid $p |- .i = Slot ( .i ` ndx ) $=
    ( cip c8 df-ip 8nn ndxid ) ABCDE $.

  ${
    ipspart.a $e |- A = ( { <. ( Base ` ndx ) , B >. ,
       <. ( +g ` ndx ) , .+ >. , <. ( .r ` ndx ) , .X. >. } u.
     { <. ( Scalar ` ndx ) , S >. , <. ( .s ` ndx ) , .x. >. ,
       <. ( .i ` ndx ) , I >. } ) $.
    $( Lemma to shorten proofs of ~ ipsbase through ~ ipsvsca .  (Contributed
       by Stefan O'Rear, 27-Nov-2014.)  (Revised by Mario Carneiro,
       29-Aug-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    ipsstr $p |- A Struct <. 1 , 8 >. $=
      ( cnx cbs cfv cop cplusg cmulr ctp csca cvsca c1 c8 c5 cip cstr c3 rngstr
      cun eqid c6 5nn scandx 5lt6 6nn vscandx 6lt8 ipndx strle3 strleun eqbrtri
      8nn 3lt5 ) AIJKBLIMKCLINKFLOZIPKZDLIQKZELIUAKZGLOZUERSLUBHRUCTSUTVDBCUTFU
      TUFUDVAVBVCTUGSDEGUHUIUJUKULUMURUNUOUSUPUQ $.

    $( The base set of a constructed inner product space.  (Contributed by
       Stefan O'Rear, 27-Nov-2014.)  (Revised by Mario Carneiro, 29-Aug-2015.)
       (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    ipsbase $p |- ( B e. V -> B = ( Base ` A ) ) $=
      ( cbs c1 c8 cop ipsstr baseid cnx cfv csn cplusg ctp cmulr csca cvsca cip
      snsstp1 cun ssun1 sseqtr4i sstri strfv ) BAJHKLMABCDEFGINOPJQBMZRUKPSQCMZ
      PUAQFMZTZAUKULUMUEUNUNPUBQDMPUCQEMPUDQGMTZUFAUNUOUGIUHUIUJ $.

    $( The additive operation of a constructed inner product space.
       (Contributed by Stefan O'Rear, 27-Nov-2014.)  (Revised by Mario
       Carneiro, 29-Aug-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    ipsaddg $p |- ( .+ e. V -> .+ = ( +g ` A ) ) $=
      ( cplusg c1 c8 cop ipsstr plusgid cnx cfv csn cbs ctp cmulr snsstp2 cvsca
      csca cip cun ssun1 sseqtr4i sstri strfv ) CAJHKLMABCDEFGINOPJQCMZRPSQBMZU
      KPUAQFMZTZAULUKUMUBUNUNPUDQDMPUCQEMPUEQGMTZUFAUNUOUGIUHUIUJ $.

    $( The multiplicative operation of a constructed inner product space.
       (Contributed by Stefan O'Rear, 27-Nov-2014.)  (Revised by Mario
       Carneiro, 29-Aug-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    ipsmulr $p |- ( .X. e. V -> .X. = ( .r ` A ) ) $=
      ( cmulr c1 c8 cop ipsstr mulrid cnx cfv csn cbs ctp cplusg csca cvsca cip
      snsstp3 cun ssun1 sseqtr4i sstri strfv ) FAJHKLMABCDEFGINOPJQFMZRPSQBMZPU
      AQCMZUKTZAULUMUKUEUNUNPUBQDMPUCQEMPUDQGMTZUFAUNUOUGIUHUIUJ $.

    $( The set of scalars of a constructed inner product space.  (Contributed
       by Stefan O'Rear, 27-Nov-2014.)  (Revised by Mario Carneiro,
       29-Aug-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    ipssca $p |- ( S e. V -> S = ( Scalar ` A ) ) $=
      ( csca c1 c8 cop ipsstr scaid cnx cfv csn cvsca ctp cip snsstp1 cbs cmulr
      cplusg cun ssun2 sseqtr4i sstri strfv ) DAJHKLMABCDEFGINOPJQDMZRUKPSQEMZP
      UAQGMZTZAUKULUMUBUNPUCQBMPUEQCMPUDQFMTZUNUFAUNUOUGIUHUIUJ $.

    $( The scalar product operation of a constructed inner product space.
       (Contributed by Stefan O'Rear, 27-Nov-2014.)  (Revised by Mario
       Carneiro, 29-Aug-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    ipsvsca $p |- ( .x. e. V -> .x. = ( .s ` A ) ) $=
      ( cvsca c1 c8 cop ipsstr vscaid cnx cfv csn csca ctp snsstp2 cplusg cmulr
      cip cbs cun ssun2 sseqtr4i sstri strfv ) EAJHKLMABCDEFGINOPJQEMZRPSQDMZUK
      PUDQGMZTZAULUKUMUAUNPUEQBMPUBQCMPUCQFMTZUNUFAUNUOUGIUHUIUJ $.

    $( The multiplicative operation of a constructed inner product space.
       (Contributed by Stefan O'Rear, 27-Nov-2014.)  (Revised by Mario
       Carneiro, 29-Aug-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    ipsip $p |- ( I e. V -> I = ( .i ` A ) ) $=
      ( cip c1 c8 cop ipsstr ipid cnx cfv csn csca ctp cvsca snsstp3 cbs cplusg
      cmulr cun ssun2 sseqtr4i sstri strfv ) GAJHKLMABCDEFGINOPJQGMZRPSQDMZPUAQ
      EMZUKTZAULUMUKUBUNPUCQBMPUDQCMPUEQFMTZUNUFAUNUOUGIUHUIUJ $.
  $}

  ${
    resssca.1 $e |- H = ( G |`s A ) $.
    ${
      resssca.2 $e |- F = ( Scalar ` G ) $.
      $( ` Scalar ` is unaffected by restriction.  (Contributed by Mario
         Carneiro, 7-Dec-2014.) $)
      resssca $p |- ( A e. V -> F = ( Scalar ` H ) ) $=
        ( csca c5 df-sca 5nn 1lt5 resslem ) ABDHIECFGJKLM $.
    $}

    ${
      ressvsca.2 $e |- .x. = ( .s ` G ) $.
      $( ` .s ` is unaffected by restriction.  (Contributed by Mario Carneiro,
         7-Dec-2014.) $)
      ressvsca $p |- ( A e. V -> .x. = ( .s ` H ) ) $=
        ( cvsca c6 df-vsca 6nn 1lt6 resslem ) ABDHIECFGJKLM $.
    $}

    ${
      ressip.2 $e |- ., = ( .i ` G ) $.
      $( The inner product is unaffected by restriction.  (Contributed by
         Thierry Arnoux, 16-Jun-2019.) $)
      ressip $p |- ( A e. V -> ., = ( .i ` H ) ) $=
        ( cip c8 df-ip 8nn 1lt8 resslem ) ADCHIEBFGJKLM $.
    $}
  $}

  ${
    phlfn.h $e |- H = ( { <. ( Base ` ndx ) , B >. , <. ( +g ` ndx ) , .+ >. ,
               <. ( Scalar ` ndx ) , T >. }
            u. { <. ( .s ` ndx ) , .x. >. , <. ( .i ` ndx ) , ., >. } ) $.
    $( A constructed pre-Hilbert space is a structure.  Starting from ~ lmodstr
       (which has 4 members), we chain ~ strleun once more, adding an ordered
       pair to the function, to get all 5 members.  (Contributed by Mario
       Carneiro, 1-Oct-2013.)  (Revised by Mario Carneiro, 29-Aug-2015.) $)
    phlstr $p |- H Struct <. 1 , 8 >. $=
      ( cnx cbs cfv cop cplusg csca ctp cvsca csn cun cip c1 c8 cstr cpr uneq2i
      df-pr unass 3eqtr4i c6 eqid lmodstr 8nn ipndx strle1 6lt8 strleun eqbrtri
      ) EHIJAKHLJBKHMJCKNZHOJDKZPZQZHRJZFKZPZQZSTKUAUPUQVAUBZQUPURVBQZQEVCVDVEU
      PUQVAUDUCGUPURVBUEUFSUGTTUSVBABDCUSUSUHUIUTTFUJUKULUMUNUO $.

    $( The base set of a constructed pre-Hilbert space.  (Contributed by Mario
       Carneiro, 6-Oct-2013.)  (Revised by Mario Carneiro, 29-Aug-2015.) $)
    phlbase $p |- ( B e. X -> B = ( Base ` H ) ) $=
      ( cbs c1 c8 cop phlstr baseid cnx cfv csn cplusg csca ctp snsstp1 cip cpr
      cvsca cun ssun1 sseqtr4i sstri strfv ) AEIGJKLABCDEFHMNOIPALZQUJORPBLZOSP
      CLZTZEUJUKULUAUMUMOUDPDLOUBPFLUCZUEEUMUNUFHUGUHUI $.

    $( The additive operation of a constructed pre-Hilbert space.  (Contributed
       by Mario Carneiro, 6-Oct-2013.)  (Revised by Mario Carneiro,
       29-Aug-2015.) $)
    phlplusg $p |- ( .+ e. X -> .+ = ( +g ` H ) ) $=
      ( cplusg c1 c8 cop phlstr plusgid cnx cfv csn cbs csca ctp cvsca sseqtr4i
      snsstp2 cip cpr cun ssun1 sstri strfv ) BEIGJKLABCDEFHMNOIPBLZQORPALZUJOS
      PCLZTZEUKUJULUCUMUMOUAPDLOUDPFLUEZUFEUMUNUGHUBUHUI $.

    $( The ring of scalars of a constructed pre-Hilbert space.  (Contributed by
       Mario Carneiro, 6-Oct-2013.)  (Revised by Mario Carneiro,
       29-Aug-2015.) $)
    phlsca $p |- ( T e. X -> T = ( Scalar ` H ) ) $=
      ( csca c1 c8 cop phlstr scaid cnx cfv csn cbs cplusg ctp snsstp3 sseqtr4i
      cvsca cip cpr cun ssun1 sstri strfv ) CEIGJKLABCDEFHMNOIPCLZQORPALZOSPBLZ
      UJTZEUKULUJUAUMUMOUCPDLOUDPFLUEZUFEUMUNUGHUBUHUI $.

    $( The scalar product operation of a constructed pre-Hilbert space.
       (Contributed by Mario Carneiro, 6-Oct-2013.)  (Revised by Mario
       Carneiro, 29-Aug-2015.) $)
    phlvsca $p |- ( .x. e. X -> .x. = ( .s ` H ) ) $=
      ( cvsca c1 c8 cop phlstr vscaid cnx cfv csn cip cpr snsspr1 cbs ctp ssun2
      cplusg csca cun sseqtr4i sstri strfv ) DEIGJKLABCDEFHMNOIPDLZQUJORPFLZSZE
      UJUKTULOUAPALOUDPBLOUEPCLUBZULUFEULUMUCHUGUHUI $.

    $( The inner product (Hermitian form) operation of a constructed
       pre-Hilbert space.  (Contributed by Mario Carneiro, 6-Oct-2013.)
       (Revised by Mario Carneiro, 29-Aug-2015.) $)
    phlip $p |- ( ., e. X -> ., = ( .i ` H ) ) $=
      ( cip c1 c8 cop phlstr ipid cnx cfv csn cvsca cpr snsspr2 cbs cplusg csca
      ctp cun ssun2 sseqtr4i sstri strfv ) FEIGJKLABCDEFHMNOIPFLZQORPDLZUJSZEUK
      UJTULOUAPALOUBPBLOUCPCLUDZULUEEULUMUFHUGUHUI $.
  $}

  $( Index value of the ~ df-tset slot.  (Contributed by Mario Carneiro,
     14-Aug-2015.) $)
  tsetndx $p |- ( TopSet ` ndx ) = 9 $=
    ( cts c9 df-tset 9nn ndxarg ) ABCDE $.

  $( Utility theorem: index-independent form of ~ df-tset .  (Contributed by
     NM, 20-Oct-2012.) $)
  tsetid $p |- TopSet = Slot ( TopSet ` ndx ) $=
    ( cts c9 df-tset 9nn ndxid ) ABCDE $.

  ${
    topgrpfn.w $e |- W = { <. ( Base ` ndx ) , B >. ,
       <. ( +g ` ndx ) , .+ >. , <. ( TopSet ` ndx ) , J >. } $.
    $( A constructed topological group is a structure.  (Contributed by Mario
       Carneiro, 29-Aug-2015.) $)
    topgrpstr $p |- W Struct <. 1 , 9 >. $=
      ( cnx cbs cfv cop cplusg cts ctp c1 c9 cstr c2 1nn basendx 1lt2 2nn 2lt9
      plusgndx 9nn tsetndx strle3 eqbrtri ) DFGHZAIFJHZBIFKHZCILMNIOEUGUHUIMPNA
      BCQRSTUBUAUCUDUEUF $.

    $( The base set of a constructed topological group.  (Contributed by Mario
       Carneiro, 29-Aug-2015.) $)
    topgrpbas $p |- ( B e. X -> B = ( Base ` W ) ) $=
      ( cbs c1 cop topgrpstr baseid cnx cfv csn cplusg cts ctp snsstp1 sseqtr4i
      c9 strfv ) ADGEHTIABCDFJKLGMAIZNUBLOMBIZLPMCIZQDUBUCUDRFSUA $.

    $( The additive operation of a constructed topological group.  (Contributed
       by Mario Carneiro, 29-Aug-2015.) $)
    topgrpplusg $p |- ( .+ e. X -> .+ = ( +g ` W ) ) $=
      ( cplusg c1 c9 cop topgrpstr plusgid cnx cfv csn cbs cts snsstp2 sseqtr4i
      ctp strfv ) BDGEHIJABCDFKLMGNBJZOMPNAJZUBMQNCJZTDUCUBUDRFSUA $.

    $( The topology of a constructed topological group.  (Contributed by Mario
       Carneiro, 29-Aug-2015.) $)
    topgrptset $p |- ( J e. X -> J = ( TopSet ` W ) ) $=
      ( cts c1 cop topgrpstr tsetid cnx cfv csn cbs cplusg ctp snsstp3 sseqtr4i
      c9 strfv ) CDGEHTIABCDFJKLGMCIZNLOMAIZLPMBIZUBQDUCUDUBRFSUA $.
  $}

  ${
    resstset.1 $e |- H = ( G |`s A ) $.
    resstset.2 $e |- J = ( TopSet ` G ) $.
    $( ` TopSet ` is unaffected by restriction.  (Contributed by Mario
       Carneiro, 13-Aug-2015.) $)
    resstset $p |- ( A e. V -> J = ( TopSet ` H ) ) $=
      ( cts c9 df-tset 9nn 1lt9 resslem ) ADCHIEBFGJKLM $.
  $}

  $( Index value of the ~ df-ple slot.  (Contributed by Mario Carneiro,
     14-Aug-2015.)  (Revised by AV, 9-Sep-2021.) $)
  plendx $p |- ( le ` ndx ) = ; 1 0 $=
    ( cple c1 cc0 cdc df-ple 10nn ndxarg ) ABCDEFG $.

  $( Obsolete version of ~ df-ple as of 9-Sep-2021.  (Contributed by Mario
     Carneiro, 14-Aug-2015.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  plendxOLD $p |- ( le ` ndx ) = 10 $=
    ( cple c10 dfpleOLD 10nnOLD ndxarg ) ABCDE $.

  $( Utility theorem: self-referencing, index-independent form of ~ df-ple .
     (Contributed by NM, 9-Nov-2012.)  (Revised by AV, 9-Sep-2021.) $)
  pleid $p |- le = Slot ( le ` ndx ) $=
    ( cple c1 cc0 cdc df-ple 10nn ndxid ) ABCDEFG $.

  $( Obsolete version of ~ otpsstr as of 9-Sep-2021.  (Contributed by Mario
     Carneiro, 9-Nov-2015.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  pleidOLD $p |- le = Slot ( le ` ndx ) $=
    ( cple c10 dfpleOLD 10nnOLD ndxid ) ABCDE $.

  ${
    otpsstr.w $e |- K = { <. ( Base ` ndx ) , B >. ,
      <. ( TopSet ` ndx ) , J >. , <. ( le ` ndx ) , .<_ >. } $.
    $( Functionality of a topological ordered space.  (Contributed by Mario
       Carneiro, 12-Nov-2015.)  (Revised by AV, 9-Sep-2021.) $)
    otpsstr $p |- K Struct <. 1 , ; 1 0 >. $=
      ( cnx cbs cfv cop cts cple ctp c1 cc0 cdc cstr c9 1nn basendx 1lt9 plendx
      9nn tsetndx 9lt10 10nn strle3 eqbrtri ) CFGHZAIFJHZBIFKHZDILMMNOZIPEUHUIU
      JMQUKABDRSTUBUCUDUEUAUFUG $.

    $( The base set of a topological ordered space.  (Contributed by Mario
       Carneiro, 12-Nov-2015.)  (Revised by AV, 9-Sep-2021.) $)
    otpsbas $p |- ( B e. V -> B = ( Base ` K ) ) $=
      ( cbs c1 cc0 cdc cop otpsstr baseid cnx cfv csn cts cple ctp snsstp1
      sseqtr4i strfv ) ACGEHHIJKABCDFLMNGOAKZPUCNQOBKZNRODKZSCUCUDUETFUAUB $.

    $( The open sets of a topological ordered space.  (Contributed by Mario
       Carneiro, 12-Nov-2015.)  (Revised by AV, 9-Sep-2021.) $)
    otpstset $p |- ( J e. V -> J = ( TopSet ` K ) ) $=
      ( cts c1 cc0 cdc cop otpsstr tsetid cnx cfv csn cbs cple ctp snsstp2
      sseqtr4i strfv ) BCGEHHIJKABCDFLMNGOBKZPNQOAKZUCNRODKZSCUDUCUETFUAUB $.

    $( The order of a topological ordered space.  (Contributed by Mario
       Carneiro, 12-Nov-2015.)  (Revised by AV, 9-Sep-2021.) $)
    otpsle $p |- ( .<_ e. V -> .<_ = ( le ` K ) ) $=
      ( cple c1 cc0 cdc cop otpsstr pleid cnx cfv csn cbs cts ctp snsstp3 strfv
      sseqtr4i ) DCGEHHIJKABCDFLMNGODKZPNQOAKZNROBKZUCSCUDUEUCTFUBUA $.

    $( Obsolete version of ~ otpsstr as of 9-Sep-2021.  (Contributed by Mario
       Carneiro, 12-Nov-2015.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    otpsstrOLD $p |- K Struct <. 1 , 10 >. $=
      ( cnx cbs cfv cop cts cple ctp c1 c10 cstr c9 1nn basendx 1lt9 9nn strle3
      tsetndx 9lt10OLD 10nnOLD plendxOLD eqbrtri ) CFGHZAIFJHZBIFKHZDILMNIOEUGU
      HUIMPNABDQRSTUBUCUDUEUAUF $.

    $( Obsolete version of ~ otpsbas as of 9-Sep-2021.  (Contributed by Mario
       Carneiro, 12-Nov-2015.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    otpsbasOLD $p |- ( B e. V -> B = ( Base ` K ) ) $=
      ( cbs c10 cop otpsstrOLD baseid cnx cfv csn cts cple ctp snsstp1 sseqtr4i
      c1 strfv ) ACGETHIABCDFJKLGMAIZNUBLOMBIZLPMDIZQCUBUCUDRFSUA $.

    $( Obsolete version of ~ otpstset as of 9-Sep-2021.  (Contributed by Mario
       Carneiro, 12-Nov-2015.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    otpstsetOLD $p |- ( J e. V -> J = ( TopSet ` K ) ) $=
      ( cts c10 cop otpsstrOLD tsetid cnx cfv csn cbs cple ctp snsstp2 sseqtr4i
      c1 strfv ) BCGETHIABCDFJKLGMBIZNLOMAIZUBLPMDIZQCUCUBUDRFSUA $.

    $( Obsolete version of ~ otpsle as of 9-Sep-2021.  (Contributed by Mario
       Carneiro, 12-Nov-2015.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    otpsleOLD $p |- ( .<_ e. V -> .<_ = ( le ` K ) ) $=
      ( cple c10 cop otpsstrOLD pleid cnx cfv csn cbs cts ctp snsstp3 sseqtr4i
      c1 strfv ) DCGETHIABCDFJKLGMDIZNLOMAIZLPMBIZUBQCUCUDUBRFSUA $.
  $}

  ${
    ressle.1 $e |- W = ( K |`s A ) $.
    ressle.2 $e |- .<_ = ( le ` K ) $.
    $( ` le ` is unaffected by restriction.  (Contributed by Mario Carneiro,
       3-Nov-2015.) $)
    ressle $p |- ( A e. V -> .<_ = ( le ` W ) ) $=
      ( cple c1 cc0 cdc df-ple 10nn 1lt10 resslem ) ACEHIJKDBFGLMNO $.
  $}

  $( Index value of the ~ df-ocomp slot.  (Contributed by Mario Carneiro,
     25-Oct-2015.) $)
  ocndx $p |- ( oc ` ndx ) = ; 1 1 $=
    ( coc c1 cdc df-ocomp 1nn0 1nn decnncl ndxarg ) ABBCDBBEFGH $.

  $( Utility theorem: index-independent form of ~ df-ocomp .  (Contributed by
     Mario Carneiro, 25-Oct-2015.) $)
  ocid $p |- oc = Slot ( oc ` ndx ) $=
    ( coc c1 cdc df-ocomp 1nn0 1nn decnncl ndxid ) ABBCDBBEFGH $.

  $( Index value of the ~ df-ds slot.  (Contributed by Mario Carneiro,
     14-Aug-2015.) $)
  dsndx $p |- ( dist ` ndx ) = ; 1 2 $=
    ( cds c1 c2 cdc df-ds 1nn0 2nn decnncl ndxarg ) ABCDEBCFGHI $.

  $( Utility theorem: index-independent form of ~ df-ds .  (Contributed by
     Mario Carneiro, 23-Dec-2013.) $)
  dsid $p |- dist = Slot ( dist ` ndx ) $=
    ( cds c1 c2 cdc df-ds 1nn0 2nn decnncl ndxid ) ABCDEBCFGHI $.

  $( Index value of the ~ df-unif slot.  (Contributed by Thierry Arnoux,
     17-Dec-2017.) $)
  unifndx $p |- ( UnifSet ` ndx ) = ; 1 3 $=
    ( cunif c1 c3 cdc df-unif 1nn0 3nn decnncl ndxarg ) ABCDEBCFGHI $.

  $( Utility theorem: index-independent form of ~ df-unif .  (Contributed by
     Thierry Arnoux, 17-Dec-2017.) $)
  unifid $p |- UnifSet = Slot ( UnifSet ` ndx ) $=
    ( cunif c1 c3 cdc df-unif 1nn0 3nn decnncl ndxid ) ABCDEBCFGHI $.

  ${
    odrngstr.w $e |- W = ( { <. ( Base ` ndx ) , B >. ,
       <. ( +g ` ndx ) , .+ >. , <. ( .r ` ndx ) , .x. >. } u.
     { <. ( TopSet ` ndx ) , J >. , <. ( le ` ndx ) , .<_ >. ,
       <. ( dist ` ndx ) , D >. } ) $.
    $( Functionality of an ordered metric ring.  (Contributed by Mario
       Carneiro, 20-Aug-2015.)  (Proof shortened by AV, 15-Sep-2021.) $)
    odrngstr $p |- W Struct <. 1 , ; 1 2 >. $=
      ( cnx cbs cfv cop ctp c1 c2 cdc c9 cc0 1nn0 2nn cplusg cmulr cts cple cds
      cun cstr c3 eqid rngstr tsetndx 9lt10 10nn plendx 0nn0 2pos declt decnncl
      9nn dsndx strle3 3lt9 strleun eqbrtri ) GIJKALIUAKCLIUBKDLMZIUCKZELIUDKZF
      LIUEKZBLMZUFNNOPZLUGHNUHQVJVEVIACVEDVEUIUJVFVGVHQNRPVJEFBUSUKULUMUNNROSUO
      TUPUQNOSTURUTVAVBVCVD $.

    $( The base set of an ordered metric ring.  (Contributed by Mario Carneiro,
       20-Aug-2015.) $)
    odrngbas $p |- ( B e. V -> B = ( Base ` W ) ) $=
      ( cbs c1 c2 cdc cop odrngstr baseid cnx cfv csn ctp cplusg cmulr cts cple
      snsstp1 cds cun ssun1 sseqtr4i sstri strfv ) AHJGKKLMNABCDEFHIOPQJRANZSUL
      QUARCNZQUBRDNZTZHULUMUNUEUOUOQUCRENQUDRFNQUFRBNTZUGHUOUPUHIUIUJUK $.

    $( The addition operation of an ordered metric ring.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    odrngplusg $p |- ( .+ e. V -> .+ = ( +g ` W ) ) $=
      ( cplusg c1 c2 cdc cop odrngstr plusgid cnx cfv csn ctp cbs cmulr snsstp2
      cts cple cds cun ssun1 sseqtr4i sstri strfv ) CHJGKKLMNABCDEFHIOPQJRCNZSQ
      UARANZULQUBRDNZTZHUMULUNUCUOUOQUDRENQUERFNQUFRBNTZUGHUOUPUHIUIUJUK $.

    $( The multiplication operation of an ordered metric ring.  (Contributed by
       Mario Carneiro, 20-Aug-2015.) $)
    odrngmulr $p |- ( .x. e. V -> .x. = ( .r ` W ) ) $=
      ( cmulr c1 c2 cdc cop odrngstr mulrid cnx cfv csn ctp cplusg snsstp3 cple
      cbs cts cds cun ssun1 sseqtr4i sstri strfv ) DHJGKKLMNABCDEFHIOPQJRDNZSQU
      DRANZQUARCNZULTZHUMUNULUBUOUOQUERENQUCRFNQUFRBNTZUGHUOUPUHIUIUJUK $.

    $( The open sets of an ordered metric ring.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    odrngtset $p |- ( J e. V -> J = ( TopSet ` W ) ) $=
      ( cts c1 c2 cdc cop odrngstr tsetid cnx cfv csn ctp cds snsstp1 cbs cmulr
      cple cplusg cun ssun2 sseqtr4i sstri strfv ) EHJGKKLMNABCDEFHIOPQJRENZSUL
      QUERFNZQUARBNZTZHULUMUNUBUOQUCRANQUFRCNQUDRDNTZUOUGHUOUPUHIUIUJUK $.

    $( The order of an ordered metric ring.  (Contributed by Mario Carneiro,
       20-Aug-2015.) $)
    odrngle $p |- ( .<_ e. V -> .<_ = ( le ` W ) ) $=
      ( cple c1 c2 cdc cop odrngstr pleid cnx cfv csn ctp cts cds snsstp2 cmulr
      cbs cplusg cun ssun2 sseqtr4i sstri strfv ) FHJGKKLMNABCDEFHIOPQJRFNZSQUA
      RENZULQUBRBNZTZHUMULUNUCUOQUERANQUFRCNQUDRDNTZUOUGHUOUPUHIUIUJUK $.

    $( The metric of an ordered metric ring.  (Contributed by Mario Carneiro,
       20-Aug-2015.) $)
    odrngds $p |- ( D e. V -> D = ( dist ` W ) ) $=
      ( cds c1 c2 cdc cop odrngstr dsid cnx cfv csn ctp cts cple snsstp3 cplusg
      cbs cmulr cun ssun2 sseqtr4i sstri strfv ) BHJGKKLMNABCDEFHIOPQJRBNZSQUAR
      ENZQUBRFNZULTZHUMUNULUCUOQUERANQUDRCNQUFRDNTZUOUGHUOUPUHIUIUJUK $.
  $}

  ${
    ressds.1 $e |- H = ( G |`s A ) $.
    ressds.2 $e |- D = ( dist ` G ) $.
    $( ` dist ` is unaffected by restriction.  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    ressds $p |- ( A e. V -> D = ( dist ` H ) ) $=
      ( cds c1 c2 cdc df-ds 1nn0 2nn decnncl 1nn 2nn0 1lt10 declti resslem ) AB
      DHIJKECFGLIJMNOIJIPQMRST $.
  $}

  $( Index value of the ~ df-hom slot.  (Contributed by Mario Carneiro,
     7-Jan-2017.) $)
  homndx $p |- ( Hom ` ndx ) = ; 1 4 $=
    ( chom c1 c4 cdc df-hom 1nn0 4nn decnncl ndxarg ) ABCDEBCFGHI $.

  $( Utility theorem: index-independent form of ~ df-hom .  (Contributed by
     Mario Carneiro, 7-Jan-2017.) $)
  homid $p |- Hom = Slot ( Hom ` ndx ) $=
    ( chom c1 c4 cdc df-hom 1nn0 4nn decnncl ndxid ) ABCDEBCFGHI $.

  $( Index value of the ~ df-cco slot.  (Contributed by Mario Carneiro,
     7-Jan-2017.) $)
  ccondx $p |- ( comp ` ndx ) = ; 1 5 $=
    ( cco c1 c5 cdc df-cco 1nn0 5nn decnncl ndxarg ) ABCDEBCFGHI $.

  $( Utility theorem: index-independent form of ~ df-cco .  (Contributed by
     Mario Carneiro, 7-Jan-2017.) $)
  ccoid $p |- comp = Slot ( comp ` ndx ) $=
    ( cco c1 c5 cdc df-cco 1nn0 5nn decnncl ndxid ) ABCDEBCFGHI $.

  ${
    resshom.1 $e |- D = ( C |`s A ) $.
    ${
      resshom.2 $e |- H = ( Hom ` C ) $.
      $( ` Hom ` is unaffected by restriction.  (Contributed by Mario Carneiro,
         5-Jan-2017.) $)
      resshom $p |- ( A e. V -> H = ( Hom ` D ) ) $=
        ( chom c1 c4 cdc df-hom 1nn0 4nn decnncl 1nn 4nn0 1lt10 declti resslem
        ) ADCHIJKEBFGLIJMNOIJIPQMRST $.
    $}

    ${
      ressco.2 $e |- .x. = ( comp ` C ) $.
      $( ` comp ` is unaffected by restriction.  (Contributed by Mario
         Carneiro, 5-Jan-2017.) $)
      ressco $p |- ( A e. V -> .x. = ( comp ` D ) ) $=
        ( cco c1 c5 cdc df-cco 1nn0 5nn decnncl 1nn 5nn0 1lt10 declti resslem )
        ADCHIJKEBFGLIJMNOIJIPQMRST $.
    $}
  $}

  $( The slots ` Base ` , ` Hom ` and ` comp ` are different.  (Contributed by
     AV, 5-Mar-2020.) $)
  slotsbhcdif $p |- ( ( Base ` ndx ) =/= ( Hom ` ndx )
                   /\ ( Base ` ndx ) =/= ( comp ` ndx )
                   /\ ( Hom ` ndx ) =/= ( comp ` ndx ) ) $=
    ( cnx cbs cfv chom wne c1 1nn c4 cdc 4nn0 1nn0 1lt10 declti ltneii neeqtrri
    1re homndx eqnetri c5 ccondx cco df-base ndxarg 5nn0 deccl nn0rei 5nn declt
    4lt5 3pm3.2i ) ABCZADCZEUKAUACZEULUMEUKFULBFUBGUCZFFHIZULFUOPFHFGJKLMNQORUK
    FUMUNFFSIZUMFUPPFSFGUDKLMNTORULUOUMQUOUPUMUOUPUOFHKJUEUFFHSKJUGUIUHNTORUJ
    $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition of the structure product
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c |`t $. $( Function returning a subspace topology. $)
  $c TopOpen $.

  $( Extend class notation with the function returning a subspace topology. $)
  crest $a class |`t $.

  $( Extend class notation with the topology extractor function. $)
  ctopn $a class TopOpen $.

  ${
    $d j x y $.
    $( Function returning the subspace topology induced by the topology ` y `
       and the set ` x ` .  (Contributed by FL, 20-Sep-2010.)  (Revised by
       Mario Carneiro, 1-May-2015.) $)
    df-rest $a |- |`t = ( j e. _V , x e. _V |->
      ran ( y e. j |-> ( y i^i x ) ) ) $.

    $( Define the topology extractor function.  This differs from ~ df-tset
       when a structure has been restricted using ~ df-ress ; in this case the
       ` TopSet ` component will still have a topology over the larger set, and
       this function fixes this by restricting the topology as well.
       (Contributed by Mario Carneiro, 13-Aug-2015.) $)
    df-topn $a |- TopOpen = ( w e. _V |->
      ( ( TopSet ` w ) |`t ( Base ` w ) ) ) $.

    $( The subspace topology operator is a function on pairs.  (Contributed by
       Mario Carneiro, 1-May-2015.) $)
    restfn $p |- |`t Fn ( _V X. _V ) $=
      ( vj vx vy cvv cv cin cmpt crn crest df-rest vex mptex rnex fnmpt2i ) ABD
      DCAEZCEBEFZGZHIBCAJQCOPAKLMN $.

    $( The topology extractor function is a function on the universe.
       (Contributed by Mario Carneiro, 13-Aug-2015.) $)
    topnfn $p |- TopOpen Fn _V $=
      ( vw cvv cv cts cfv cbs crest co ctopn ovex df-topn fnmpti ) ABACZDEZMFEZ
      GHINOGJAKL $.
  $}

  ${
    $d j x y A $.  $d x B $.  $d j x y J $.  $d x S $.
    $( The subspace topology induced by the topology ` J ` on the set ` A ` .
       (Contributed by FL, 20-Sep-2010.)  (Revised by Mario Carneiro,
       1-May-2015.) $)
    restval $p |- ( ( J e. V /\ A e. W )
       -> ( J |`t A ) = ran ( x e. J |-> ( x i^i A ) ) ) $=
      ( vj vy wcel cvv crest co cv cin cmpt crn wceq elex mptexg rnexg syl wa
      adantr simpl simpr ineq2d mpteq12dv rneqd df-rest ovmpt2ga mpd3an3 syl2an
      ) CDHCIHZBIHZCBJKACALZBMZNZOZPZBEHCDQBEQULUMUQIHZURULUSUMULUPIHUSACUOIRUP
      ISTUBFGCBIIAFLZUNGLZMZNZOUQJIUTCPZVABPZUAZVCUPVFAUTVBCUOVDVEUCVFVABUNVDVE
      UDUEUFUGGAFUHUIUJUK $.

    $( The predicate "is an open set of a subspace topology".  (Contributed by
       FL, 5-Jan-2009.)  (Revised by Mario Carneiro, 15-Dec-2013.) $)
    elrest $p |- ( ( J e. V /\ B e. W ) ->
      ( A e. ( J |`t B ) <-> E. x e. J A = ( x i^i B ) ) ) $=
      ( wcel wa crest co cv cin cmpt crn wceq wrex restval eleq2d eqid vex
      inex1 elrnmpti syl6bb ) DEGCFGHZBDCIJZGBADAKZCLZMZNZGBUGOADPUDUEUIBACDEFQ
      RADUGBUHUHSUFCATUAUBUC $.

    $( Sufficient condition for being an open set in a subspace.  (Contributed
       by Jeff Hankins, 11-Jul-2009.)  (Revised by Mario Carneiro,
       15-Dec-2013.) $)
    elrestr $p |- ( ( J e. V /\ S e. W /\ A e. J ) ->
                  ( A i^i S ) e. ( J |`t S ) ) $=
      ( vx wcel cin crest co wa wceq wrex eqid ineq1 eqeq2d rspcev mpan2 elrest
      cv syl5ibr 3impia ) CDGZBEGZACGZABHZCBIJGZUEUGUCUDKUFFTZBHZLZFCMZUEUFUFLZ
      UKUFNUJULFACUHALUIUFUFUHABOPQRFUFBCDESUAUB $.

    $( Value of the structure restriction when the topology input is empty.
       (Contributed by Mario Carneiro, 13-Aug-2015.) $)
    0rest $p |- ( (/) |`t A ) = (/) $=
      ( vx cvv wcel c0 crest co wceq cv cin cmpt crn 0ex restval mpan rneqi rn0
      mpt0 eqtri wrel syl6eq cdm cxp relxp wfn restfn ax-mp releqi mpbir ovprc2
      fndm pm2.61i ) ACDZEAFGZEHUMUNBEBIAJZKZLZEECDUMUNUQHMBAECCNOUQELEUPEBUORP
      QSUAEAFFUBZTCCUCZTCCUDURUSFUSUEURUSHUFUSFUKUGUHUIUJUL $.
  $}

  ${
    $d f x y z A $.  $d f x y z J $.  $d x V $.
    $( The subspace topology over a subset of the base set is the original
       topology.  (Contributed by Mario Carneiro, 13-Aug-2015.) $)
    restid2 $p |- ( ( A e. V /\ J C_ ~P A ) -> ( J |`t A ) = J ) $=
      ( vx wcel cpw wss wa crest co cv cin cmpt crn cvv wceq pwexg adantr simpr
      syl6eq ssexd simpl restval syl2anc cid cres sselda elpwid df-ss mpteq2dva
      sylib mptresid rneqd rnresi eqtrd ) ACEZBAFZGZHZBAIJZDBDKZALZMZNZBUSBOEUP
      UTVDPUSBUQOUPUQOEURACQRUPURSZUAUPURUBDABOCUCUDUSVDUEBUFZNBUSVCVFUSVCDBVAM
      VFUSDBVBVAUSVABEHZVAAGVBVAPVGVAAUSBUQVAVEUGUHVAAUIUKUJDBULTUMBUNTUO $.

    $( The subspace topology is a collection of subsets of the restriction set.
       (Contributed by Mario Carneiro, 13-Aug-2015.) $)
    restsspw $p |- ( J |`t A ) C_ ~P A $=
      ( vx vy crest co cpw cv wcel wss cin wceq wrex cvv wa wb c0 n0i cxp syl
      wfn cdm restfn fndm ax-mp ndmov nsyl2 elrest inss2 sseq1 mpbiri rexlimivw
      ibi selpw sylibr ssriv ) CBAEFZAGZCHZUQIZUSAJZUSURIUTUSDHZAKZLZDBMZVAUTVE
      UTBNIANIOZUTVEPUTUQQLVFUQUSRBANEENNSZUAEUBVGLUCVGEUDUEUFUGDUSABNNUHTUMVDV
      ADBVDVAVCAJVBAUIUSVCAUJUKULTCAUNUOUP $.

    $( The finite intersections operator commutes with restriction.
       (Contributed by Mario Carneiro, 30-Aug-2015.) $)
    firest $p |- ( fi ` ( J |`t A ) ) = ( ( fi ` J ) |`t A ) $=
      ( vy vf vz cvv wcel wa crest cfi cfv wceq cv cin c0 wrex wral adantl syl
      wb vx co cint cpw cfn csn cdif ovex elfi2 ax-mp wf wex eldifi wss simprbi
      elfpw simplbi sseld elrest adantr sylibd ineq1 eqeq2d ac6sfi syl2anc ciin
      ralrimiv wne eldifsni ad2antlr iinin1 a1i simpllr crn wfn fniinfv simplll
      fvex intrnfi syl13anc eqeltrd elrestr syl3anc intiin iineq2 syl5eq eleq1d
      ffn simpr syl5ibrcom expimpd exlimdv mpd eleq1 rexlimdva syl5bi wi ineq1i
      sylancr 3expa ralrimiva ssralv sylc iinfi eqeltrrd imbi1d sylbid rexlimdv
      syl6eqr impbid eqrdv wn fi0 cdm wrel relxp restfn fndm releqi mpbir ovprc
      cxp fveq2d wo ianor fvprc oveq1d 0rest syl6eq ovprc2 jaoi 3eqtr4a pm2.61i
      sylbi ) BFGZAFGZHZBAIUBZJKZBJKZAIUBZLYQUAYSUUAYQUAMZYSGZUUBUUAGZUUCUUBCMZ
      UCZLZCYRUDUENZOUFZUGZPZYQUUDYRFGZUUCUUKTBAIUHZCUUBYRFUIUJYQUUGUUDCUUJYQUU
      EUUJGZHZUUDUUGUUFUUAGZUUOUUEBDMZUKZEMZUUSUUQKZANZLZEUUEQZHZDULZUUPUUOUUEU
      EGZUUSUUEANZLZCBPZEUUEQUVEUUOUUEUUHGZUVFUUNUVJYQUUEUUHUUIUMRZUVJUUEYRUNZU
      VFUUEYRUPZUOSZUUOUVIEUUEUUOUUSUUEGUUSYRGZUVIUUOUUEYRUUSUUOUVJUVLUVKUVJUVL
      UVFUVMUQSURYQUVOUVITUUNCUUSABFFUSUTVAVGUVHUVBECUUEBDUUEUUTLUVGUVAUUSUUEUU
      TAVBVCVDVEUUOUVDUUPDUUOUURUVCUUPUUOUURHZUUPUVCEUUEUVAVFZUUAGUVPUVQEUUEUUT
      VFZANZUUAUVPUUEOVHZUVQUVSLUUNUVTYQUURUUEUUHOVIVJZEUUEAUUTVKSUVPYTFGZYPUVR
      YTGUVSUUAGUWBUVPBJVRZVLYOYPUUNUURVMUVPUVRUUQVNUCZYTUVPUUQUUEVOZUVRUWDLUUR
      UWEUUOUUEBUUQWHREUUEUUQVPSUVPYOUURUVTUVFUWDYTGYOYPUUNUURVQUUOUURWIUWAUUOU
      VFUURUVNUTUUEBUUQFVSVTWAUVRAYTFFWBWCWAUVCUUFUVQUUAUVCUUFEUUEUUSVFZUVQEUUE
      WDZEUUEUUSUVAWEWFWGWJWKWLWMUUBUUFUUAWNWJWOWPYQUUDUUBUUSANZLZEYTPZUUCYQUWB
      YPUUDUWJTUWCYOYPWIEUUBAYTFFUSWSYQUWIUUCEYTYQUUSYTGZUUSUUFLZCBUDUENZUUIUGZ
      PZUWIUUCWQZYOUWKUWOTYPCUUSBFUIUTYQUWLUWPCUWNYQUUEUWNGZHZUWPUWLUUBUUFANZLZ
      UUCWQUWRUUCUWTUWSYSGUWREUUEUWHVFZUWSYSUWRUXAUWFANZUWSUWRUVTUXAUXBLUWQUVTY
      QUUEUWMOVIRZEUUEAUUSVKSUUFUWFAUWGWRXIUWRUULUWHYRGZEUUEQZUVTUVFUXAYSGUULUW
      RUUMVLUWRUUEBUNZUXDEBQZUXEUWRUUEUWMGZUXFUWQUXHYQUUEUWMUUIUMRZUXHUXFUVFUUE
      BUPZUQSYQUXGUWQYQUXDEBYOYPUUSBGUXDUUSABFFWBWTXAUTUXDEUUEBXBXCUXCUWRUXHUVF
      UXIUXHUXFUVFUXJUOSEUUEUWHYRFXDVTXEUUBUWSYSWNWJUWLUWIUWTUUCUWLUWHUWSUUBUUS
      UUFAVBVCXFWJWOXGXHXGXJXKYQXLZOJKOYSUUAXMUXKYROJBAIIXNZXOFFYBZXOFFXPUXLUXM
      IUXMVOUXLUXMLXQUXMIXRUJXSXTZYAYCUXKYOXLZYPXLZYDUUAOLZYOYPYEUXOUXQUXPUXOUU
      AOAIUBOUXOYTOAIBJYFYGAYHYIYTAIUXNYJYKYNYLYM $.

    restid.1 $e |- X = U. J $.
    $( The subspace topology of the base set is the original topology.
       (Contributed by Jeff Hankins, 9-Jul-2009.)  (Revised by Mario Carneiro,
       13-Aug-2015.) $)
    restid $p |- ( J e. V -> ( J |`t X ) = J ) $=
      ( wcel cvv cpw wss crest wceq cuni uniexg syl5eqel eqimss2i sspwuni mpbir
      co restid2 sylancl ) ABEZCFEACGHZACIQAJTCAKZFDABLMUAUBCHCUBDNACOPCAFRS $.
  $}

  ${
    $d w B $.  $d w J $.  $d w W $.
    topnval.1 $e |- B = ( Base ` W ) $.
    topnval.2 $e |- J = ( TopSet ` W ) $.
    $( Value of the topology extractor function.  (Contributed by Mario
       Carneiro, 13-Aug-2015.) $)
    topnval $p |- ( J |`t B ) = ( TopOpen ` W ) $=
      ( vw cvv wcel crest co ctopn cfv wceq cv cts cbs fveq2 syl6eqr c0 fvprc
      oveq12d df-topn ovex fvmpt eqcomd wn 0rest syl5eq oveq1d 3eqtr4a pm2.61i
      ) CGHZBAIJZCKLZMULUNUMFCFNZOLZUOPLZIJUMGKUOCMZUPBUQAIURUPCOLZBUOCOQERURUQ
      CPLAUOCPQDRUAFUBBAIUCUDUEULUFZSAIJSUMUNAUGUTBSAIUTBUSSECOTUHUICKTUJUK $.

    $( Value of the topology extractor function when the topology is defined
       over the same set as the base.  (Contributed by Mario Carneiro,
       13-Aug-2015.) $)
    topnid $p |- ( J C_ ~P B -> J = ( TopOpen ` W ) ) $=
      ( cpw wss ctopn cfv crest topnval cvv wcel wceq fvex eqeltri restid2 mpan
      co cbs syl5reqr ) BAFGZCHIBAJSZBABCDEKALMUBUCBNACTILDCTOPABLQRUA $.
  $}

  ${
    topnpropd.1 $e |- ( ph -> ( Base ` K ) = ( Base ` L ) ) $.
    topnpropd.2 $e |- ( ph -> ( TopSet ` K ) = ( TopSet ` L ) ) $.
    $( The topology extractor function depends only on the base and topology
       components.  (Contributed by NM, 18-Jul-2006.) $)
    topnpropd $p |- ( ph -> ( TopOpen ` K ) = ( TopOpen ` L ) ) $=
      ( cts cfv cbs crest co ctopn oveq12d eqid topnval 3eqtr3g ) ABFGZBHGZIJCF
      GZCHGZIJBKGCKGAPRQSIEDLQPBQMPMNSRCSMRMNO $.
  $}

  $c topGen $.
  $c Xt_ $.
  $c 0g $.
  $c gsum $.

  $( Extend class notation with a function that converts a basis to its
     corresponding topology. $)
  ctg $a class topGen $.

  $( Extend class notation with a function whose value is a product
     topology. $)
  cpt $a class Xt_ $.

  $( Extend class notation with group identity element. $)
  c0g $a class 0g $.

  $( Extend class notation to include finitely supported group sums. $)
  cgsu $a class gsum $.

  ${
    $d e f g m n o w x y $.
    $( Define group identity element.  Remark: this definition is required here
       because the symbol ` 0g ` is already used in ~ df-gsum .  The related
       theorems are provided later, see ~ grpidval .  (Contributed by NM,
       20-Aug-2011.) $)
    df-0g $a |- 0g = ( g e. _V |-> ( iota e ( e e. ( Base ` g ) /\
                  A. x e. ( Base ` g )
                  ( ( e ( +g ` g ) x ) = x /\ ( x ( +g ` g ) e ) = x ) ) ) ) $.

    $( Define the group sum for the structure ` G ` of a finite sequence of
       elements whose values are defined by the expression ` B ` and whose set
       of indices is ` A ` .  It may be viewed as a product (if ` G ` is a
       multiplication), a sum (if ` G ` is an addition) or any other operation.
       The variable ` k ` is normally a free variable in ` B ` (i.e., ` B ` can
       be thought of as ` B ( k ) ` ).  The definition is meaningful in
       different contexts, depending on the size of the index set ` A ` and
       each demanding different properties of ` G ` .

       1.  If ` A = (/) ` and ` G ` has an identity element, then the sum
       equals this identity.

       2.  If ` A = ( M ... N ) ` and ` G ` is any magma, then the sum is the
       sum of the elements, evaluated left-to-right, i.e.
       ` ( B ( 1 ) + B ( 2 ) ) + B ( 3 ) ` etc.

       3.  If ` A ` is a finite set (or is nonzero for finitely many indices)
       and ` G ` is a commutative monoid, then the sum adds up these elements
       in some order, which is then uniquely defined.

       4.  If ` A ` is an infinite set and ` G ` is a Hausdorff topological
       group, then there is a meaningful sum, but ` gsum ` cannot handle this
       case.  See ~ df-tsms .  Remark: this definition is required here because
       the symbol ` gsum ` is already used in ~ df-prds and ~ df-imas .  The
       related theorems are provided later, see ~ gsumvalx .  (Contributed by
       FL, 5-Sep-2010.)  (Revised by FL, 17-Oct-2011.)  (Revised by Mario
       Carneiro, 7-Dec-2014.) $)
    df-gsum $a |- gsum = ( w e. _V , f e. _V |-> [_ { x e. ( Base ` w ) |
            A. y e. ( Base ` w )
            ( ( x ( +g ` w ) y ) = y /\ ( y ( +g ` w ) x ) = y ) } / o ]_
            if ( ran f C_ o , ( 0g ` w ) , if ( dom f e. ran ... ,
               ( iota x E. m E. n e. ( ZZ>= ` m ) ( dom f = ( m ... n ) /\
                 x = ( seq m ( ( +g ` w ) , f ) ` n ) ) ) , ( iota x E. g
     [. ( `' f " ( _V \ o ) ) / y ]. ( g : ( 1 ... ( # ` y ) ) -1-1-onto-> y /\
             x = ( seq 1 ( ( +g ` w ) , ( f o. g ) ) ` ( # ` y ) ) ) ) ) ) ) $.
  $}

  ${
    $d f g x y z $.
    $( Define a function that converts a basis to its corresponding topology.
       Equivalent to the definition of a topology generated by a basis in
       [Munkres] p. 78 (see ~ tgval2 ).  The first use of this definition is
       ~ tgval but the token is used in ~ df-pt .  See ~ tgval3 for an
       alternate expression for the value.  (Contributed by NM,
       16-Jul-2006.) $)
    df-topgen $a |- topGen = ( x e. _V |-> { y | y C_ U. ( x i^i ~P y ) } ) $.

    $( Define the product topology on a collection of topologies.  For
       convenience, it is defined on arbitrary collections of sets, expressed
       as a function from some index set to the subbases of each factor space.
       (Contributed by Mario Carneiro, 3-Feb-2015.) $)
    df-pt $a |- Xt_ = ( f e. _V |-> ( topGen ` { x | E. g ( ( g Fn dom f /\
      A. y e. dom f ( g ` y ) e. ( f ` y ) /\ E. z e. Fin A. y e. ( dom f \ z )
           ( g ` y ) = U. ( f ` y ) ) /\ x = X_ y e. dom f ( g ` y ) ) } ) ) $.
  $}

  $c Xs_ ^s $.

  $( The function constructing structure products. $)
  cprds $a class Xs_ $.

  $( The function constructing structure powers. $)
  cpws $a class ^s $.

  ${
    $d a c d e f g h s r x v $.
    $( Define a structure product.  This can be a product of groups, rings,
       modules, or ordered topological fields; any unused components will have
       garbage in them but this is usually not relevant for the purpose of
       inheriting the structures present in the factors.  (Contributed by
       Stefan O'Rear, 3-Jan-2015.)  (Revised by Thierry Arnoux,
       15-Jun-2019.) $)
    df-prds $a |- Xs_ = ( s e. _V , r e. _V |->
      [_ X_ x e. dom r ( Base ` ( r ` x ) ) / v ]_
      [_ ( f e. v , g e. v |-> X_ x e. dom r
           ( ( f ` x ) ( Hom ` ( r ` x ) ) ( g ` x ) ) ) / h ]_
  ( ( { <. ( Base ` ndx ) , v >. ,
        <. ( +g ` ndx ) , ( f e. v , g e. v |-> ( x e. dom r |->
          ( ( f ` x ) ( +g ` ( r ` x ) ) ( g ` x ) ) ) ) >. ,
        <. ( .r ` ndx ) , ( f e. v , g e. v |-> ( x e. dom r |->
          ( ( f ` x ) ( .r ` ( r ` x ) ) ( g ` x ) ) ) ) >. } u.
      { <. ( Scalar ` ndx ) , s >. ,
        <. ( .s ` ndx ) , ( f e. ( Base ` s ) , g e. v |->
          ( x e. dom r |-> ( f ( .s ` ( r ` x ) ) ( g ` x ) ) ) ) >. ,
        <. ( .i ` ndx ) , ( f e. v , g e. v |-> ( s gsum ( x e. dom r |->
          ( ( f ` x ) ( .i ` ( r ` x ) ) ( g ` x ) ) ) ) ) >. } ) u.
    ( { <. ( TopSet ` ndx ) , ( Xt_ ` ( TopOpen o. r ) ) >. ,
        <. ( le ` ndx ) , { <. f , g >. | ( { f , g } C_ v /\
        A. x e. dom r ( f ` x ) ( le ` ( r ` x ) ) ( g ` x ) ) } >. ,
        <. ( dist ` ndx ) , ( f e. v , g e. v |-> sup (
         ( ran ( x e. dom r |-> ( ( f ` x ) ( dist ` ( r ` x ) ) ( g ` x ) ) )
           u. { 0 } ) , RR* , < ) ) >. } u.
      { <. ( Hom ` ndx ) , h >. ,
        <. ( comp ` ndx ) , ( a e. ( v X. v ) , c e. v |->
           ( d e. ( c h ( 2nd ` a ) ) , e e. ( h ` a ) |-> ( x e. dom r |->
             ( ( d ` x ) ( <. ( ( 1st ` a ) ` x ) , ( ( 2nd ` a ) ` x ) >.
               ( comp ` ( r ` x ) ) ( c ` x ) ) ( e ` x ) ) ) ) ) >. } ) ) ) $.

    $( The structure product is a well-behaved binary operator.  (Contributed
       by Stefan O'Rear, 7-Jan-2015.)  (Revised by Thierry Arnoux,
       15-Jun-2019.) $)
    reldmprds $p |- Rel dom Xs_ $=
      ( vs vr vv vx vh vf vg va vc vd ve cv cfv cbs co cmpt2 cnx cop cmpt cun
      cvv cdm cixp chom cplusg cmulr ctp csca cvsca cip cgsu cts ctopn ccom cpt
      cple cpr wss wbr wral wa copab cds crn cc0 csn cxr clt csup cco c2nd c1st
      cxp csb cprds df-prds reldmmpt2 ) ABUAUACDBLZUBZDLZVRMZNMUCEFGCLZWBDVSVTF
      LZMZVTGLZMZWAUDMOUCPQNMWBRQUEMFGWBWBDVSWDWFWAUEMOSPRQUFMFGWBWBDVSWDWFWAUF
      MOSPRUGQUHMALZRQUIMFGWGNMWBDVSWCWFWAUIMOSPRQUJMFGWBWBWGDVSWDWFWAUJMOSUKOP
      RUGTQULMUMVRUNUOMRQUPMWCWEUQWBURWDWFWAUPMUSDVSUTVAFGVBRQVCMFGWBWBDVSWDWFW
      AVCMOSVDVEVFTVGVHVIPRUGQUDMELZRQVJMHIWBWBVMWBJKILZHLZVKMZWHOWJWHMDVSVTJLM
      VTKLMVTWJVLMMVTWKMRVTWIMWAVJMOOSPPRUQTTVNVNVODCKFGEABHIJVPVQ $.
  $}

  ${
    $d r i $.
    $( Define a structure power, which is just a structure product where all
       the factors are the same.  (Contributed by Mario Carneiro,
       11-Jan-2015.) $)
    df-pws $a |-
        ^s = ( r e. _V , i e. _V |-> ( ( Scalar ` r ) Xs_ ( i X. { r } ) ) ) $.
  $}

  ${
    $d x R $.
    prdsbasex.b $e |- B = X_ x e. dom R ( Base ` ( R ` x ) ) $.
    $( Lemma for structure products.  (Contributed by Mario Carneiro,
       3-Jan-2015.) $)
    prdsbasex $p |- B e. _V $=
      ( cdm cv cfv cbs cixp cvv wcel ixpexg fvexd mprg eqeltri ) BACEZAFZCGZHGZ
      IZJDSJKTJKAPAPSJLQPKRHMNO $.
  $}

  ${
    imasvalstr.u $e |- U = ( ( { <. ( Base ` ndx ) , B >. ,
        <. ( +g ` ndx ) , .+ >. , <. ( .r ` ndx ) , .X. >. } u.
        { <. ( Scalar ` ndx ) , S >. , <. ( .s ` ndx ) , .x. >. ,
          <. ( .i ` ndx ) , ., >. } ) u.
        { <. ( TopSet ` ndx ) , O >. , <. ( le ` ndx ) , L >. ,
        <. ( dist ` ndx ) , D >. } ) $.
    $( Structure product value is a structure.  (Contributed by Stefan O'Rear,
       3-Jan-2015.)  (Revised by Mario Carneiro, 30-Apr-2015.)  (Revised by
       Thierry Arnoux, 16-Jun-2019.) $)
    imasvalstr $p |- U Struct <. 1 , ; 1 2 >. $=
      ( cnx cfv cop ctp cun c1 c2 cdc c9 cbs cplusg cmulr csca cip cts cple cds
      cvsca cstr c8 eqid ipsstr cc0 9nn tsetndx 9lt10 10nn plendx 1nn0 0nn0 2nn
      2pos declt decnncl dsndx strle3 8lt9 strleun eqbrtri ) GLUAMANLUBMCNLUCMF
      NOLUDMDNLUIMENLUEMHNOPZLUFMZJNLUGMZINLUHMZBNOZPQQRSZNUJKQUKTVPVKVOVKACDEF
      HVKULUMVLVMVNTQUNSVPJIBUOUPUQURUSQUNRUTVAVBVCVDQRUTVBVEVFVGVHVIVJ $.
  $}

  $( Structure product value is a structure.  (Contributed by Stefan O'Rear,
     3-Jan-2015.)  (Revised by Mario Carneiro, 30-Apr-2015.)  (Revised by
     Thierry Arnoux, 16-Jun-2019.) $)
  prdsvalstr $p |- ( ( { <. ( Base ` ndx ) , B >. ,
      <. ( +g ` ndx ) , .+ >. , <. ( .r ` ndx ) , .X. >. } u.
      { <. ( Scalar ` ndx ) , S >. , <. ( .s ` ndx ) , .x. >. ,
        <. ( .i ` ndx ) , ., >. } ) u.
    ( { <. ( TopSet ` ndx ) , O >. , <. ( le ` ndx ) , L >. ,
        <. ( dist ` ndx ) , D >. } u.
      { <. ( Hom ` ndx ) , H >. , <. ( comp ` ndx ) , .xb >. } ) )
      Struct <. 1 , ; 1 5 >. $=
    ( cnx cfv cop ctp cun c1 c5 c4 1nn0 cbs cplusg cmulr csca cvsca cip cts cds
    cple chom cco cpr cdc cstr unass c2 eqid imasvalstr 4nn decnncl homndx 4nn0
    5nn 4lt5 declt ccondx strle2 2nn0 2lt4 strleun eqbrtrri ) LUAMANLUBMCNLUCMG
    NOLUDMDNLUEMFNLUFMINOPZLUGMKNLUIMJNLUHMBNOZPZLUJMZHNLUKMZENULZPVLVMVQPPQQRU
    MZNUNVLVMVQUOQQUPUMQSUMZVRVNVQABCDFGVNIJKVNUQURVOVPVSVRHEQSTUSUTVAQSRTVBVCV
    DVEQRTVCUTVFVGQUPSTVHUSVIVEVJVK $.

  ${
    prdsvallem.u $e |- ( ph -> U = ( ( { <. ( Base ` ndx ) , B >. ,
        <. ( +g ` ndx ) , .+ >. , <. ( .r ` ndx ) , .X. >. } u.
        { <. ( Scalar ` ndx ) , S >. , <. ( .s ` ndx ) , .x. >. ,
          <. ( .i ` ndx ) , ., >. } ) u.
      ( { <. ( TopSet ` ndx ) , O >. , <. ( le ` ndx ) , L >. ,
          <. ( dist ` ndx ) , D >. } u.
        { <. ( Hom ` ndx ) , H >. , <. ( comp ` ndx ) , .xb >. } ) ) ) $.
    prdsvallem.1 $e |- A = ( E ` U ) $.
    prdsvallem.2 $e |- E = Slot ( E ` ndx ) $.
    prdsvallem.3 $e |- ( ph -> T e. _V ) $.
    prdsvallem.4 $e |- { <. ( E ` ndx ) , T >. } C_
      ( ( { <. ( Base ` ndx ) , B >. ,
        <. ( +g ` ndx ) , .+ >. , <. ( .r ` ndx ) , .X. >. } u.
        { <. ( Scalar ` ndx ) , S >. , <. ( .s ` ndx ) , .x. >. ,
          <. ( .i ` ndx ) , ., >. } ) u.
      ( { <. ( TopSet ` ndx ) , O >. , <. ( le ` ndx ) , L >. ,
          <. ( dist ` ndx ) , D >. } u.
        { <. ( Hom ` ndx ) , H >. , <. ( comp ` ndx ) , .xb >. } ) ) $.
    $( Lemma for ~ prdsbas and similar theorems.  (Contributed by Mario
       Carneiro, 7-Jan-2017.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    prdsvallem $p |- ( ph -> A = T ) $=
      ( cnx cbs cfv cop cplusg cmulr ctp csca cip cun cts cple cds chom cco cpr
      cvsca cvv c1 c5 cdc prdsvalstr strfv3 ) ABHUBUCUDCUEUBUFUDEUEUBUGUDJUEUHU
      BUIUDFUEUBURUDIUEUBUJUDNUEUHUKUBULUDPUEUBUMUDOUEUBUNUDDUEUHUBUOUDMUEUBUPU
      DGUEUQUKUKKLUSUTUTVAVBUEQCDEFGIJMNOPVCSUATRVD $.
  $}

  ${
    $d h r s v .+ $.  $d h r s v .<_ $.  $d a c d e f g h r s v B $.
    $d a c d e h r s v H $.  $d a c d e f g h r s v x ph $.  $d h r s v D $.
    $d h r s v O $.  $d h r s v .X. $.  $d h r s v .xb $.  $d x I $.
    $d a c d e f g h r s v x R $.  $d a c d e f g h r s v x S $.
    $d h r s v .x. $.  $d h r s v ., $.
    prdsval.p $e |- P = ( S Xs_ R ) $.
    prdsval.k $e |- K = ( Base ` S ) $.
    prdsval.i $e |- ( ph -> dom R = I ) $.
    prdsval.b $e |- ( ph -> B = X_ x e. I ( Base ` ( R ` x ) ) ) $.
    prdsval.a $e |- ( ph -> .+ = ( f e. B , g e. B |-> ( x e. I |->
        ( ( f ` x ) ( +g ` ( R ` x ) ) ( g ` x ) ) ) ) ) $.
    prdsval.t $e |- ( ph -> .X. = ( f e. B , g e. B |-> ( x e. I |->
        ( ( f ` x ) ( .r ` ( R ` x ) ) ( g ` x ) ) ) ) ) $.
    prdsval.m $e |- ( ph -> .x. = ( f e. K , g e. B |-> ( x e. I |->
        ( f ( .s ` ( R ` x ) ) ( g ` x ) ) ) ) ) $.
    prdsval.j $e |- ( ph -> ., = ( f e. B , g e. B |-> ( S gsum
        ( x e. I |-> ( ( f ` x ) ( .i ` ( R ` x ) ) ( g ` x ) ) ) ) ) ) $.
    prdsval.o $e |- ( ph -> O = ( Xt_ ` ( TopOpen o. R ) ) ) $.
    prdsval.l $e |- ( ph -> .<_ = { <. f , g >. | ( { f , g } C_ B /\
        A. x e. I ( f ` x ) ( le ` ( R ` x ) ) ( g ` x ) ) } ) $.
    prdsval.d $e |- ( ph -> D = ( f e. B , g e. B |-> sup ( ( ran ( x e. I |->
   ( ( f ` x ) ( dist ` ( R ` x ) ) ( g ` x ) ) ) u. { 0 } ) , RR* , < ) ) ) $.
    prdsval.h $e |- ( ph -> H = ( f e. B , g e. B |-> X_ x e. I
           ( ( f ` x ) ( Hom ` ( R ` x ) ) ( g ` x ) ) ) ) $.
    prdsval.x $e |- ( ph -> .xb = ( a e. ( B X. B ) , c e. B |->
        ( d e. ( c H ( 2nd ` a ) ) , e e. ( H ` a ) |-> ( x e. I |->
          ( ( d ` x ) ( <. ( ( 1st ` a ) ` x ) , ( ( 2nd ` a ) ` x ) >.
            ( comp ` ( R ` x ) ) ( c ` x ) ) ( e ` x ) ) ) ) ) ) $.
    prdsval.s $e |- ( ph -> S e. W ) $.
    prdsval.r $e |- ( ph -> R e. Z ) $.
    $( Value of the structure product.  (Contributed by Stefan O'Rear,
       3-Jan-2015.)  (Revised by Mario Carneiro, 7-Jan-2017.)  (Revised by
       Thierry Arnoux, 16-Jun-2019.) $)
    prdsval $p |- ( ph -> P = ( ( { <. ( Base ` ndx ) , B >. ,
        <. ( +g ` ndx ) , .+ >. , <. ( .r ` ndx ) , .X. >. } u.
        { <. ( Scalar ` ndx ) , S >. , <. ( .s ` ndx ) , .x. >. ,
          <. ( .i ` ndx ) , ., >. } ) u.
      ( { <. ( TopSet ` ndx ) , O >. , <. ( le ` ndx ) , .<_ >. ,
          <. ( dist ` ndx ) , D >. } u.
        { <. ( Hom ` ndx ) , H >. , <. ( comp ` ndx ) , .xb >. } ) ) ) $=
      ( vs vr vv vh cprds co cnx cbs cfv cop cplusg cmulr ctp cvsca cip cun cds
      cple chom cco cpr cvv cv cdm cixp cmpt2 cmpt cgsu ctopn ccom cpt wss wral
      wbr copab crn cxr clt csup cxp csb wceq a1i cmap wcel cuni vex rnex uniex
      wa strfvss rnss uniss mp2b sstri rgenw mpbir ax-mp fveq1d fveq2d ixpeq2dv
      ovex simpr eqtrd ixpeq1d adantr oveqd mpt2eq123dv eqtr4d opeq2d mpteq12dv
      ad2antrr ad4antr tpeq123d simpllr uneq12d csbied2 elex tpex unex csca cts
      cc0 csn c2nd c1st df-prds ciun fvssunirn iunss ssexi ixpssmap2g ssex mp1i
      baseid dmeqd 3eqtr4d cpw wf ovssunirn c1 cdc df-hom dmex ixpconst sseqtri
      ss2ixp elpw2 rgen2w eqid fmpt2 mpbi xpex pwex fex2 mp3an ad3antrrr simplr
      c4 simp-4r syl6eqr oveq12d coeq2d sseq2d breqd raleqbidv anbi12d opabbidv
      wb rneqd uneq1d supeq1d sqxpeqd preq12d anasss syl prex ovmpt2d syl5eq )
[encoded data, 4240 characters]
      AUYFUXPUXRUXTYSUYCUYEUWQYTYTXCUWRUWS $.
  $}

  ${
    $d a c d e f g x B $.  $d a c d e H $.  $d f g K $.  $d a c d e f g x ph $.
    $d a c d e f g w x y z I $.  $d f g x P $.  $d a c d e f g w x y z R $.
    $d a c d e f g x S $.
    prdsbas.p $e |- P = ( S Xs_ R ) $.
    prdsbas.s $e |- ( ph -> S e. V ) $.
    prdsbas.r $e |- ( ph -> R e. W ) $.
    $( Scalar ring of a structure product.  (Contributed by Stefan O'Rear,
       5-Jan-2015.)  (Revised by Mario Carneiro, 15-Aug-2015.)  (Revised by
       Thierry Arnoux, 16-Jun-2019.) $)
    prdssca $p |- ( ph -> S = ( Scalar ` P ) ) $=
      ( vx vf vg cfv cv co cmpt cmpt2 cop eqidd cnx va vc csca cdm cbs cixp cds
      vd crn cc0 csn cun cxr clt csup cplusg cxp c2nd chom c1st cco cvsca cmulr
      ve cip cgsu cpr wss cple wbr wral copab ctopn ccom cpt eqid prdsval scaid
      wa wcel cvv elex syl ctp cts snsstp1 ssun2 sstri ssun1 prdsvallem eqcomd
      ) ABUCMZDAWLJCUDZJNZCMZUEMUFZKLWPWPJWMWNKNZMZWNLNZMZWOUGMOPUIUJUKULUMUNUO
      QZKLWPWPJWMWRWTWOUPMOPQZDUAUBWPWPUQWPUHVDUBNZUANZURMZKLWPWPJWMWRWTWOUSMOU
      FQZOXDXFMJWMWNUHNMWNVDNMWNXDUTMMWNXEMRWNXCMWOVAMOOPQQZDKLDUEMZWPJWMWQWTWO
      VBMOPQZKLWPWPJWMWRWTWOVCMOPQZBUCXFKLWPWPDJWMWRWTWOVEMOPVFOQZWQWSVGWPVHWRW
      TWOVIMVJJWMVKVSKLVLZVMCVNVOMZAJWPXABXBCDXGXIXJVDKLXFXKWMXHXLXMEFUAUBUHGXH
      VPAWMSAWPSAXBSAXJSAXISAXKSAXMSAXLSAXASAXFSAXGSHIVQWLVPVRADEVTDWAVTHDEWBWC
      TUCMDRZUKZTUEMWPRTUPMXBRTVCMXJRWDZXNTVBMXIRZTVEMXKRZWDZULZXTTWEMXMRTVIMXL
      RTUGMXARWDTUSMXFRTVAMXGRVGULZULXOXSXTXNXQXRWFXSXPWGWHXTYAWIWHWJWK $.

    prdsbas.b $e |- B = ( Base ` P ) $.
    prdsbas.i $e |- ( ph -> dom R = I ) $.
    $( Base set of a structure product.  (Contributed by Stefan O'Rear,
       3-Jan-2015.)  (Revised by Mario Carneiro, 15-Aug-2015.)  (Revised by
       Thierry Arnoux, 16-Jun-2019.) $)
    prdsbas $p |- ( ph -> B = X_ x e. I ( Base ` ( R ` x ) ) ) $=
      ( cfv co cop eqidd cvv cnx vf vg va vc vd ve cv cbs cixp cds cmpt crn cc0
      csn cun cxr clt csup cmpt2 cplusg cxp c2nd chom c1st cco cvsca cmulr cgsu
      cip cpr wss cple wbr wral wa copab ccom cpt eqid prdsval baseid ciun wcel
      ctopn cmap cuni strfvss fvssunirn rnss uniss mp2b sstri rgenw iunss mpbir
      rnexg uniexg 3syl ssexg sylancr ixpssmap2g ovex ssex ctp csca cts snsstp1
      ssun1 prdsvallem ) ACBGBUGZEOZUHOZUIZUAUBXMXMBGXJUAUGZOZXJUBUGZOZXKUJOPUK
      ULUMUNUOUPUQURUSZUAUBXMXMBGXOXQXKUTOPUKUSZFUCUDXMXMVAXMUEUFUDUGZUCUGZVBOZ
      UAUBXMXMBGXOXQXKVCOPUIUSZPYAYCOBGXJUEUGOXJUFUGOXJYAVDOOXJYBOQXJXTOXKVEOPP
      UKUSUSZXMUAUBFUHOZXMBGXNXQXKVFOPUKUSZUAUBXMXMBGXOXQXKVGOPUKUSZDUHYCUAUBXM
      XMFBGXOXQXKVIOPUKVHPUSZXNXPVJXMVKXOXQXKVLOVMBGVNVOUAUBVPZWDEVQVROZABXMXRD
      XSEFYDYFYGUFUAUBYCYHGYEYIYJHIUCUDUEJYEVSNAXMRAXSRAYGRAYFRAYHRAYJRAYIRAXRR
      AYCRAYDRKLVTMWAABGXLWBZSWCZXMYKGWEPZVKXMSWCAYKEULZWFZULZWFZVKZYQSWCZYLYRX
      LYQVKZBGVNYTBGXLXKULZWFZYQXKUHTUHOZWAWGXKYOVKUUAYPVKUUBYQVKEXJWHXKYOWIUUA
      YPWJWKWLWMBGXLYQWNWOAYOSWCZYPSWCYSAEIWCYNSWCUUDLEIWPYNSWQWRYOSWPYPSWQWRYK
      YQSWSWTBGXLSXAXMYMYKGWEXBXCWRUUCXMQZUNZUUETUTOXSQZTVGOYGQZXDZTXEOFQTVFOYF
      QTVIOYHQXDZUOZUUKTXFOYJQTVLOYIQTUJOXRQXDTVCOYCQTVEOYDQVJUOZUOUUFUUIUUKUUE
      UUGUUHXGUUIUUJXHWLUUKUULXHWLXI $.

    ${
      prdsplusg.b $e |- .+ = ( +g ` P ) $.
      $( Addition in a structure product.  (Contributed by Stefan O'Rear,
         3-Jan-2015.)  (Revised by Mario Carneiro, 15-Aug-2015.)  (Revised by
         Thierry Arnoux, 16-Jun-2019.) $)
      prdsplusg $p |- ( ph -> .+ = ( f e. B , g e. B |-> ( x e. I |->
            ( ( f ` x ) ( +g ` ( R ` x ) ) ( g ` x ) ) ) ) ) $=
        ( cfv cvv va vc vd ve cv cds co cmpt crn cc0 csn cun cxr clt csup cmpt2
        cplusg cxp c2nd chom cixp c1st cop cco cbs cvsca cmulr cip cgsu cpr wss
        cple wbr wral wa copab ctopn ccom cpt eqid prdsbas prdsval plusgid cuni
        eqidd cpw cmap wf wcel ovssunirn cnx strfvss fvssunirn rnss uniss sstri
        mp2b ovex elpw mpbir a1i fmptd rnexg 3syl pwexg 4syl cdm dmexg eqeltrrd
        uniexg syl elmapd mpbird ralrimivw fmpt2 fvex eqeltri xpex fex2 mp3an23
        sylib ctp csca cts snsstp2 ssun1 prdsvallem ) AECHICCBJBUEZHUEZSZYHIUEZ
        SZYHFSZUFSUGUHUIUJUKULUMUNUOUPZHICCBJYJYLYMUQSZUGZUHZUPZGUAUBCCURZCUCUD
        UBUEZUAUEZUSSZHICCBJYJYLYMUTSUGVAUPZUGUUAUUCSBJYHUCUESYHUDUESYHUUAVBSSY
        HUUBSVCYHYTSYMVDSUGUGUHUPUPZYRHIGVESZCBJYIYLYMVFSUGUHUPZHICCBJYJYLYMVGS
        UGUHUPZDUQUUCHICCGBJYJYLYMVHSUGUHVIUGUPZYIYKVJCVKYJYLYMVLSVMBJVNVOHIVPZ
        VQFVRVSSZABCYNDYRFGUUDUUFUUGUDHIUUCUUHJUUEUUIUUJKLUAUBUCMUUEVTQABCDFGJK
        LMNOPQWAAYRWEAUUGWEAUUFWEAUUHWEAUUJWEAUUIWEAYNWEAUUCWEAUUDWENOWBRWCAYSF
        UIZWDZUIZWDZUIZWDZWFZJWGUGZYRWHZYRTWIZAYQUURWIZICVNZHCVNUUSAUVBHCAUVAIC
        AUVAJUUQYQWHABJYPUUQYQYPUUQWIZAYHJWIVOUVCYPUUPVKYPYOUIZWDZUUPYOYJYLWJYO
        UUNVKUVDUUOVKUVEUUPVKYOYMUIZWDZUUNYMUQWKUQSZWCWLYMUULVKUVFUUMVKUVGUUNVK
        FYHWMYMUULWNUVFUUMWOWQWPYOUUNWNUVDUUOWOWQWPYPUUPYJYLYOWRWSWTXAYQVTXBAUU
        QJYQTTAUUNTWIZUUOTWIUUPTWIUUQTWIAUULTWIZUUMTWIUVIAFLWIZUUKTWIUVJOFLXCUU
        KTXJXDUULTXCUUMTXJXDUUNTXCUUOTXJUUPTXEXFAFXGZJTQAUVKUVLTWIOFLXHXKXIXLXM
        XNXNHICCYQUURYRYRVTXOYAUUSYSTWIUURTWIUUTCCCDVESTPDVEXPXQZUVMXRUUQJWGWRY
        SUURYRTTXSXTXKUVHYRVCZUKZWKVESCVCZUVNWKVGSUUGVCZYBZWKYCSGVCWKVFSUUFVCWK
        VHSUUHVCYBZULZUVTWKYDSUUJVCWKVLSUUIVCWKUFSYNVCYBWKUTSUUCVCWKVDSUUDVCVJU
        LZULUVOUVRUVTUVPUVNUVQYEUVRUVSYFWPUVTUWAYFWPYG $.
    $}

    ${
      prdsmulr.t $e |- .x. = ( .r ` P ) $.
      $( Multiplication in a structure product.  (Contributed by Mario
         Carneiro, 11-Jan-2015.)  (Revised by Mario Carneiro, 15-Aug-2015.)
         (Revised by Thierry Arnoux, 16-Jun-2019.) $)
      prdsmulr $p |- ( ph -> .x. = ( f e. B , g e. B |-> ( x e. I |->
            ( ( f ` x ) ( .r ` ( R ` x ) ) ( g ` x ) ) ) ) ) $=
        ( cfv cvv va vc vd ve cv cds co cmpt crn cc0 csn cun cxr clt csup cmpt2
        cplusg cxp c2nd chom cixp c1st cop cco cmulr cbs cvsca cip cgsu cpr wss
        cple wbr wral copab ctopn ccom cpt eqid prdsbas prdsplusg eqidd prdsval
        wa mulrid cuni cpw cmap wcel ovssunirn cnx strfvss fvssunirn rnss uniss
        wf mp2b sstri ovex elpw mpbir a1i fmptd rnexg uniexg 3syl pwexg syl cdm
        dmexg eqeltrrd elmapd mpbird ralrimivw fmpt2 sylib fvex eqeltri mp3an23
        xpex fex2 ctp csca cts snsstp3 ssun1 prdsvallem ) AGCHICCBJBUEZHUEZSZYH
        IUEZSZYHESZUFSUGUHUIUJUKULUMUNUOUPZDUQSZFUAUBCCURZCUCUDUBUEZUAUEZUSSZHI
        CCBJYJYLYMUTSUGVAUPZUGYRYTSBJYHUCUESYHUDUESYHYRVBSSYHYSSVCYHYQSYMVDSUGU
        GUHUPUPZHICCBJYJYLYMVESZUGZUHZUPZHIFVFSZCBJYIYLYMVGSUGUHUPZUUEDVEYTHICC
        FBJYJYLYMVHSUGUHVIUGUPZYIYKVJCVKYJYLYMVLSVMBJVNWDHIVOZVPEVQVRSZABCYNDYO
        EFUUAUUGUUEUDHIYTUUHJUUFUUIUUJKLUAUBUCMUUFVSQABCDEFJKLMNOPQVTABCDYOEFHI
        JKLMNOPQYOVSWAAUUEWBAUUGWBAUUHWBAUUJWBAUUIWBAYNWBAYTWBAUUAWBNOWCRWEAYPE
        UIZWFZUIZWFZUIZWFZWGZJWHUGZUUEWPZUUETWIZAUUDUURWIZICVNZHCVNUUSAUVBHCAUV
        AICAUVAJUUQUUDWPABJUUCUUQUUDUUCUUQWIZAYHJWIWDUVCUUCUUPVKUUCUUBUIZWFZUUP
        UUBYJYLWJUUBUUNVKUVDUUOVKUVEUUPVKUUBYMUIZWFZUUNYMVEWKVESZWEWLYMUULVKUVF
        UUMVKUVGUUNVKEYHWMYMUULWNUVFUUMWOWQWRUUBUUNWNUVDUUOWOWQWRUUCUUPYJYLUUBW
        SWTXAXBUUDVSXCAUUQJUUDTTAUUPTWIZUUQTWIAUUNTWIZUUOTWIUVIAUULTWIZUUMTWIUV
        JAELWIZUUKTWIUVKOELXDUUKTXEXFUULTXDUUMTXEXFUUNTXDUUOTXEXFUUPTXGXHAEXIZJ
        TQAUVLUVMTWIOELXJXHXKXLXMXNXNHICCUUDUURUUEUUEVSXOXPUUSYPTWIUURTWIUUTCCC
        DVFSTPDVFXQXRZUVNXTUUQJWHWSYPUURUUETTYAXSXHUVHUUEVCZUKZWKVFSCVCZWKUQSYO
        VCZUVOYBZWKYCSFVCWKVGSUUGVCWKVHSUUHVCYBZULZUWAWKYDSUUJVCWKVLSUUIVCWKUFS
        YNVCYBWKUTSYTVCWKVDSUUAVCVJULZULUVPUVSUWAUVQUVRUVOYEUVSUVTYFWRUWAUWBYFW
        RYG $.
    $}

    ${
      prdsvsca.k $e |- K = ( Base ` S ) $.
      prdsvsca.m $e |- .x. = ( .s ` P ) $.
      $( Scalar multiplication in a structure product.  (Contributed by Stefan
         O'Rear, 5-Jan-2015.)  (Revised by Mario Carneiro, 15-Aug-2015.)
         (Revised by Thierry Arnoux, 16-Jun-2019.) $)
      prdsvsca $p |- ( ph -> .x. = ( f e. K , g e. B |-> ( x e. I |->
            ( f ( .s ` ( R ` x ) ) ( g ` x ) ) ) ) ) $=
        ( va vc vd ve cv cfv cds cmpt crn cc0 csn cun cxr clt csup cmpt2 cplusg
        co cxp c2nd chom cixp c1st cop cco cvsca cip cgsu cpr wss cple wbr wral
        cmulr wa copab ctopn ccom prdsbas eqid prdsplusg prdsmulr eqidd prdsval
        cpt vscaid cuni cpw cmap cvv wcel ovssunirn cnx strfvss fvssunirn uniss
        wf rnss mp2b sstri ovex elpw mpbir a1i fmptd rnexg uniexg 3syl 4syl cdm
        pwexg dmexg syl eqeltrrd elmapd mpbird ralrimivw fmpt2 cbs fvex eqeltri
        sylib xpex fex2 mp3an23 ctp csca cts snsstp2 ssun2 ssun1 prdsvallem ) A
        GCHICCBJBUEZHUEZUFZYMIUEZUFZYMEUFZUGUFURUHUIUJUKULUMUNUOUPZDUQUFZFUAUBC
        CUSCUCUDUBUEZUAUEZUTUFZHICCBJYOYQYRVAUFURVBUPZURUUBUUDUFBJYMUCUEUFYMUDU
        EUFYMUUBVCUFUFYMUUCUFVDYMUUAUFYRVEUFURURUHUPUPZHIKCBJYNYQYRVFUFZURZUHZU
        PZUUIDVNUFZDVFUUDHICCFBJYOYQYRVGUFURUHVHURUPZYNYPVICVJYOYQYRVKUFVLBJVMV
        OHIVPZVQEVRWEUFZABCYSDYTEFUUEUUIUUJUDHIUUDUUKJKUULUUMLMUAUBUCNSRABCDEFJ
        LMNOPQRVSABCDYTEFHIJLMNOPQRYTVTWAABCDEFUUJHIJLMNOPQRUUJVTWBAUUIWCAUUKWC
        AUUMWCAUULWCAYSWCAUUDWCAUUEWCOPWDTWFAKCUSZEUIZWGZUIZWGZUIZWGZWHZJWIURZU
        UIWQZUUIWJWKZAUUHUVBWKZICVMZHKVMUVCAUVFHKAUVEICAUVEJUVAUUHWQABJUUGUVAUU
        HUUGUVAWKZAYMJWKVOUVGUUGUUTVJUUGUUFUIZWGZUUTUUFYNYQWLUUFUURVJUVHUUSVJUV
        IUUTVJUUFYRUIZWGZUURYRVFWMVFUFZWFWNYRUUPVJUVJUUQVJUVKUURVJEYMWOYRUUPWRU
        VJUUQWPWSWTUUFUURWRUVHUUSWPWSWTUUGUUTYNYQUUFXAXBXCXDUUHVTXEAUVAJUUHWJWJ
        AUURWJWKZUUSWJWKUUTWJWKUVAWJWKAUUPWJWKZUUQWJWKUVMAEMWKZUUOWJWKUVNPEMXFU
        UOWJXGXHUUPWJXFUUQWJXGXHUURWJXFUUSWJXGUUTWJXKXIAEXJZJWJRAUVOUVPWJWKPEMX
        LXMXNXOXPXQXQHIKCUUHUVBUUIUUIVTXRYBUVCUUNWJWKUVBWJWKUVDKCKFXSUFWJSFXSXT
        YACDXSUFWJQDXSXTYAYCUVAJWIXAUUNUVBUUIWJWJYDYEXMUVLUUIVDZUKZWMXSUFCVDWMU
        QUFYTVDWMVNUFUUJVDYFZWMYGUFFVDZUVQWMVGUFUUKVDZYFZULZUWCWMYHUFUUMVDWMVKU
        FUULVDWMUGUFYSVDYFWMVAUFUUDVDWMVEUFUUEVDVIULZULUVRUWBUWCUVTUVQUWAYIUWBU
        VSYJWTUWCUWDYKWTYL $.
    $}

    ${
      prdsip.m $e |- ., = ( .i ` P ) $.
      $( Inner product in a structure product.  (Contributed by Thierry Arnoux,
         16-Jun-2019.) $)
      prdsip $p |- ( ph -> ., = ( f e. B , g e. B |-> ( S gsum
        ( x e. I |-> ( ( f ` x ) ( .i ` ( R ` x ) ) ( g ` x ) ) ) ) ) ) $=
        ( cfv cop va vc vd ve cv cds co cmpt crn cc0 csn cun cxr clt csup cmpt2
        cplusg cxp c2nd chom cixp c1st cco cip cgsu cbs cvsca cmulr cpr wss wbr
        cple wral wa copab ctopn ccom eqid prdsbas prdsplusg eqidd prdsval ipid
        cpt cvv wcel fvex eqeltri a1i mpt2exga sylancl cnx ctp csca cts snsstp3
        ssun2 sstri ssun1 prdsvallem ) AICGHCCBJBUEZGUEZSZXAHUEZSZXAESZUFSUGUHU
        IUJUKULUMUNUOUPZDUQSZFUAUBCCURCUCUDUBUEZUAUEZUSSZGHCCBJXCXEXFUTSUGVAUPZ
        UGXJXLSBJXAUCUESXAUDUESXAXJVBSSXAXKSTXAXISXFVCSUGUGUHUPUPZGHCCFBJXCXEXF
        VDSUGUHVEUGZUPZGHFVFSZCBJXBXEXFVGSUGUHUPZGHCCBJXCXEXFVHSUGUHUPZDVDXLXOX
        BXDVICVJXCXEXFVLSVKBJVMVNGHVOZVPEVQWDSZABCXGDXHEFXMXQXRUDGHXLXOJXPXSXTK
        LUAUBUCMXPVRQABCDEFJKLMNOPQVSABCDXHEFGHJKLMNOPQXHVRVTAXRWAAXQWAAXOWAAXT
        WAAXSWAAXGWAAXLWAAXMWANOWBRWCACWEWFZYAXOWEWFYAACDVFSWEPDVFWGWHZWIYBGHCC
        XNWEWEWJWKWLVDSXOTZUKZWLVFSCTWLUQSXHTWLVHSXRTWMZWLWNSFTZWLVGSXQTZYCWMZU
        LZYIWLWOSXTTWLVLSXSTWLUFSXGTWMWLUTSXLTWLVCSXMTVIULZULYDYHYIYFYGYCWPYHYE
        WQWRYIYJWSWRWT $.
    $}

    ${
      prdsle.l $e |- .<_ = ( le ` P ) $.
      $( Structure product weak ordering.  (Contributed by Mario Carneiro,
         15-Aug-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
      prdsle $p |- ( ph -> .<_ = { <. f , g >. | ( { f , g } C_ B /\
        A. x e. I ( f ` x ) ( le ` ( R ` x ) ) ( g ` x ) ) } ) $=
        ( cfv cop va vc vd ve cv cds co cmpt crn cc0 csn cun cxr clt csup cmpt2
        cplusg cxp c2nd chom cixp c1st cco cpr wss cple wbr wral wa copab cvsca
        cmulr cip cgsu ctopn ccom cpt cbs eqid prdsbas prdsplusg prdsmulr eqidd
        prdsvsca prdsval pleid cvv wcel fvex eqeltri xpex prss opabbii opabssxp
        vex anbi1i eqsstr3i ssexi a1i cnx cts ctp csca snsstp2 ssun1 prdsvallem
        sstri ssun2 ) AJCGHCCBIBUEZGUEZSZXIHUEZSZXIESZUFSUGUHUIUJUKULUMUNUOUPZD
        UQSZFUAUBCCURZCUCUDUBUEZUAUEZUSSZGHCCBIXKXMXNUTSUGVAUPZUGXSYASBIXIUCUES
        XIUDUESXIXSVBSSXIXTSTXIXRSXNVCSUGUGUHUPUPZXJXLVDCVEZXKXMXNVFSVGBIVHZVIZ
        GHVJZDVKSZDVLSZDVFYAGHCCFBIXKXMXNVMSUGUHVNUGUPZYFVOEVPVQSZABCXODXPEFYBY
        GYHUDGHYAYIIFVRSZYFYJKLUAUBUCMYKVSZQABCDEFIKLMNOPQVTABCDXPEFGHIKLMNOPQX
        PVSWAABCDEFYHGHIKLMNOPQYHVSWBABCDEFYGGHIYKKLMNOPQYLYGVSWDAYIWCAYJWCAYFW
        CAXOWCAYAWCAYBWCNOWERWFYFWGWHAYFXQCCCDVRSWGPDVRWIWJZYMWKYFXJCWHXLCWHVIZ
        YDVIZGHVJXQYOYEGHYNYCYDXJXLCGWOHWOWLWPWMYDGHCCWNWQWRWSWTVFSYFTZUKZWTXAS
        YJTZYPWTUFSXOTZXBZWTUTSYATWTVCSYBTVDZULZWTVRSCTWTUQSXPTWTVLSYHTXBWTXCSF
        TWTVKSYGTWTVMSYITXBULZUUBULYQYTUUBYRYPYSXDYTUUAXEXGUUBUUCXHXGXF $.

      $( Closure of the order relation on a structure product.  (Contributed by
         Mario Carneiro, 16-Aug-2015.) $)
      prdsless $p |- ( ph -> .<_ C_ ( B X. B ) ) $=
        ( vf vg vx cv cfv cpr wss cple wbr wral wa copab cxp prdsle wcel anbi1i
        vex prss opabbii opabssxp eqsstr3i syl6eqss ) AGPSZQSZUABUBZRSZURTVAUST
        VADTUCTUDRFUEZUFZPQUGZBBUHZARBCDEPQFGHIJKLMNOUIVDURBUJUSBUJUFZVBUFZPQUG
        VEVGVCPQVFUTVBURUSBPULQULUMUKUNVBPQBBUOUPUQ $.
    $}

    ${
      prdsds.l $e |- D = ( dist ` P ) $.
      $( Structure product distance function.  (Contributed by Mario Carneiro,
         15-Aug-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
      prdsds $p |- ( ph -> D = ( f e. B , g e. B |-> sup ( ( ran ( x e. I |->
   ( ( f ` x ) ( dist ` ( R ` x ) ) ( g ` x ) ) ) u. { 0 } ) , RR* , < ) ) ) $=
        ( cfv cop va vc vd ve vy vz vw cv cds cmpt crn cc0 csn cun cxr clt csup
        co cmpt2 cplusg cxp c2nd chom cixp c1st cco cvsca cmulr cgsu cple ctopn
        cip ccom cpt cbs eqid prdsbas prdsplusg prdsmulr prdsvsca eqidd prdsval
        prdsle dsid cvv wcel cuni cpw wf wral wbr wn wrex wi wa crab df-sup wss
        ssrab2 unissi xrex uniex elpw2 mpbir eqeltri rgen2w mpbi fvex xpex pwex
        fmpt2 fex2 mp3an a1i cnx cts ctp cpr csca ssun1 sstri ssun2 prdsvallem
        snsstp3 ) ADCHICCBJBUHZHUHSZYEIUHSZYEFSZUISURUJUKULUMUNZUOUPUQZUSZEUTSZ
        GUAUBCCVAZCUCUDUBUHZUAUHZVBSZHICCBJYFYGYHVCSURVDUSZURYOYQSBJYEUCUHSYEUD
        UHSYEYOVESSYEYPSTYEYNSYHVFSURURUJUSUSZYKEVGSZEVHSZEUIYQHICCGBJYFYGYHVLS
        URUJVIURUSZEVJSZVKFVMVNSZABCYKEYLFGYRYSYTUDHIYQUUAJGVOSZUUBUUCKLUAUBUCM
        UUDVPZQABCEFGJKLMNOPQVQABCEYLFGHIJKLMNOPQYLVPVRABCEFGYTHIJKLMNOPQYTVPVS
        ABCEFGYSHIJUUDKLMNOPQUUEYSVPVTAUUAWAAUUCWAABCEFGHIJUUBKLMNOPQUUBVPWCAYK
        WAAYQWAAYRWANOWBRWDYKWEWFZAYMUOWGZWHZYKWIZYMWEWFUUHWEWFUUFYJUUHWFZICWJH
        CWJUUIUUJHICCYJUEUHZUFUHZUPWKWLUFYIWJUULUUKUPWKUULUGUHUPWKUGYIWMWNUFUOW
        JWOZUEUOWPZWGZUUHUEUFUGYIUOUPWQUUOUUHWFUUOUUGWRUUNUOUUMUEUOWSWTUUOUUGUO
        XAXBZXCXDXEXFHICCYJUUHYKYKVPXKXGCCCEVOSWEPEVOXHXEZUUQXIUUGUUPXJYMUUHYKW
        EWEXLXMXNXOUISYKTZUMZXOXPSUUCTZXOVJSUUBTZUURXQZXOVCSYQTXOVFSYRTXRZUNZXO
        VOSCTXOUTSYLTXOVHSYTTXQXOXSSGTXOVGSYSTXOVLSUUATXQUNZUVDUNUUSUVBUVDUUTUV
        AUURYDUVBUVCXTYAUVDUVEYBYAYC $.

      $( Structure product distance function.  (Contributed by Mario Carneiro,
         15-Sep-2015.) $)
      prdsdsfn $p |- ( ph -> D Fn ( B X. B ) ) $=
        ( vf vg vx cv cfv cxp wfn cds co cmpt crn cc0 csn cun cxr clt csup eqid
        cmpt2 xrltso supex fnmpt2i prdsds fneq1d mpbiri ) ACBBUAZUBPQBBRGRSZPST
        VBQSTVBETUCTUDUEUFUGUHUIZUJUKULZUNZVAUBPQBBVDVEVEUMUJVCUKUOUPUQAVACVEAR
        BCDEFPQGHIJKLMNOURUSUT $.
    $}

    ${
      prdstset.l $e |- O = ( TopSet ` P ) $.
      $( Structure product topology.  (Contributed by Mario Carneiro,
         15-Aug-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
      prdstset $p |- ( ph -> O = ( Xt_ ` ( TopOpen o. R ) ) ) $=
        ( vf vx cfv cop cnx va vc vd ve vg cds cplusg cxp cv c2nd chom co cmpt2
        cixp c1st cco cmpt ctopn ccom cpt cvsca cmulr cts cip cgsu cple prdsbas
        cbs eqid prdsplusg prdsmulr prdsvsca eqidd prdsle prdsds prdsval tsetid
        fvexd csn ctp cpr cun csca snsstp1 ssun1 sstri ssun2 prdsvallem ) AGBCU
        FRZCUGRZEUAUBBBUHBUCUDUBUIZUAUIZUJRZPUEBBQFQUIZPUIRZWNUEUIRZWNDRZUKRULU
        NUMZULWLWRRQFWNUCUIRWNUDUIRWNWLUORRWNWMRSWNWKRWQUPRULULUQUMUMZURDUSZUTR
        ZCVARZCVBRZCVCWRPUEBBEQFWOWPWQVDRULUQVEULUMZCVFRZXAAQBWICWJDEWSXBXCUDPU
        EWRXDFEVHRZXEXAHIUAUBUCJXFVIZNAQBCDEFHIJKLMNVGAQBCWJDEPUEFHIJKLMNWJVIVJ
        AQBCDEXCPUEFHIJKLMNXCVIVKAQBCDEXBPUEFXFHIJKLMNXGXBVIVLAXDVMAXAVMAQBCDEP
        UEFXEHIJKLMNXEVIVNAQBWICDEPUEFHIJKLMNWIVIVOAWRVMAWSVMKLVPOVQAWTUTVRTVCR
        XASZVSZXHTVFRXESZTUFRWISZVTZTUKRWRSTUPRWSSWAZWBZTVHRBSTUGRWJSTVBRXCSVTT
        WCRESTVARXBSTVDRXDSVTWBZXNWBXIXLXNXHXJXKWDXLXMWEWFXNXOWGWFWH $.
    $}

    ${
      prdshom.h $e |- H = ( Hom ` P ) $.
      $( Structure product hom-sets.  (Contributed by Mario Carneiro,
         7-Jan-2017.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
      prdshom $p |- ( ph -> H = ( f e. B , g e. B |->
          X_ x e. I ( ( f ` x ) ( Hom ` ( R ` x ) ) ( g ` x ) ) ) ) $=
        ( cfv cvv va vc vd ve cds cplusg cxp cv c2nd chom co cixp cmpt2 cop cco
        c1st cmpt cvsca cmulr cip cgsu cple cts eqid prdsbas prdsplusg prdsmulr
        cbs prdsvsca eqidd prdstset prdsle prdsds prdsval homid crn cuni cpw wf
        cmap wcel wral wss ovssunirn cnx fvssunirn rnss uniss mp2b sstri ss2ixp
        strfvss rgenw ax-mp wceq cdm dmexg eqeltrrd rnexg uniexg 3syl ixpconstg
        syl syl2anc syl5sseq ovex elpw2 ralrimivw fmpt2 sylib fvex eqeltri xpex
        sylibr a1i pwex fex2 syl3anc csn ctp cpr csca snsspr1 ssun2 prdsvallem
        cun ) AICDUESZDUFSZFUAUBCCUGZCUCUDUBUHZUAUHZUISZGHCCBJBUHZGUHSZYMHUHSZY
        MESZUJSZUKZULZUMZUKYKYTSBJYMUCUHSYMUDUHSYMYKUPSSYMYLSUNYMYJSYPUOSUKUKUQ
        UMUMZYTDURSZDUSSZDUJYTGHCCFBJYNYOYPUTSUKUQVAUKUMZDVBSZDVCSZABCYGDYHEFUU
        AUUBUUCUDGHYTUUDJFVHSZUUEUUFKLUAUBUCMUUGVDZQABCDEFJKLMNOPQVEABCDYHEFGHJ
        KLMNOPQYHVDVFABCDEFUUCGHJKLMNOPQUUCVDVGABCDEFUUBGHJUUGKLMNOPQUUHUUBVDVI
        AUUDVJACDEFJUUFKLMNOPQUUFVDVKABCDEFGHJUUEKLMNOPQUUEVDVLABCYGDEFGHJKLMNO
        PQYGVDVMAYTVJAUUAVJNOVNRVOAYIEVPZVQZVPZVQZVPZVQZJVTUKZVRZYTVSZYITWAZUUP
        TWAZYTTWAAYSUUPWAZHCWBZGCWBUUQAUVAGCAUUTHCAYSUUOWCUUTABJUUNULZYSUUOYRUU
        NWCZBJWBYSUVBWCUVCBJYRYQVPZVQZUUNYQYNYOWDYQUULWCUVDUUMWCUVEUUNWCYQYPVPZ
        VQZUULYPUJWEUJSZVOWLYPUUJWCUVFUUKWCUVGUULWCEYMWFYPUUJWGUVFUUKWHWIWJYQUU
        LWGUVDUUMWHWIWJWMBJYRUUNWKWNAJTWAUUNTWAZUVBUUOWOAEWPZJTQAELWAZUVJTWAOEL
        WQXCWRAUULTWAZUUMTWAUVIAUUJTWAZUUKTWAUVLAUVKUUITWAUVMOELWSUUITWTXAUUJTW
        SUUKTWTXAUULTWSUUMTWTXABJUUNTTXBXDXEYSUUOUUNJVTXFZXGXNXHXHGHCCYSUUPYTYT
        VDXIXJUURACCCDVHSTPDVHXKXLZUVOXMXOUUSAUUOUVNXPXOYIUUPYTTTXQXRUVHYTUNZXS
        ZWEVCSUUFUNWEVBSUUEUNWEUESYGUNXTZUVPWEUOSUUAUNZYAZYFZWEVHSCUNWEUFSYHUNW
        EUSSUUCUNXTWEYBSFUNWEURSUUBUNWEUTSUUDUNXTYFZUWAYFUVQUVTUWAUVPUVSYCUVTUV
        RYDWJUWAUWBYDWJYE $.

      prdsco.o $e |- .xb = ( comp ` P ) $.
      $( Structure product composition operation.  (Contributed by Mario
         Carneiro, 7-Jan-2017.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
      prdsco $p |- ( ph -> .xb = ( a e. ( B X. B ) , c e. B |->
        ( d e. ( c H ( 2nd ` a ) ) , e e. ( H ` a ) |-> ( x e. I |->
          ( ( d ` x ) ( <. ( ( 1st ` a ) ` x ) , ( ( 2nd ` a ) ` x ) >.
            ( comp ` ( R ` x ) ) ( c ` x ) ) ( e ` x ) ) ) ) ) ) $=
        ( vf vg cds cfv cplusg cxp cv c2nd co c1st cop cco cmpt cmpt2 cvsca cip
        cmulr cgsu cple cts cbs eqid prdsplusg prdsmulr prdsvsca eqidd prdstset
        prdsbas prdsle prdsds prdshom prdsval cvv wcel fvex eqeltri xpex mpt2ex
        ccoid a1i cnx csn ctp chom cpr cun csca snsspr2 ssun2 sstri prdsvallem
        ) AGCDUEUFZDUGUFZFMNCCUHZCOHNUIZMUIZUJUFZIUKWRIUFBJBUIZOUIUFWTHUIUFWTWR
        ULUFUFWTWSUFUMWTWQUFWTEUFZUNUFUKUKUOUPZUPZXCDUQUFZDUSUFZDUNIUCUDCCFBJWT
        UCUIUFWTUDUIUFXAURUFUKUOUTUKUPZDVAUFZDVBUFZABCWNDWOEFXCXDXEHUCUDIXFJFVC
        UFZXGXHKLMNOPXIVDZTABCDEFJKLPQRSTVJABCDWOEFUCUDJKLPQRSTWOVDVEABCDEFXEUC
        UDJKLPQRSTXEVDVFABCDEFXDUCUDJXIKLPQRSTXJXDVDVGAXFVHACDEFJXHKLPQRSTXHVDV
        IABCDEFUCUDJXGKLPQRSTXGVDVKABCWNDEFUCUDJKLPQRSTWNVDVLABCDEFUCUDIJKLPQRS
        TUAVMAXCVHQRVNUBWAXCVOVPAMNWPCXBCCCDVCUFVOSDVCVQVRZXKVSXKVTWBWCUNUFXCUM
        ZWDZWCVBUFXHUMWCVAUFXGUMWCUEUFWNUMWEZWCWFUFIUMZXLWGZWHZWCVCUFCUMWCUGUFW
        OUMWCUSUFXEUMWEWCWIUFFUMWCUQUFXDUMWCURUFXFUMWEWHZXQWHXMXPXQXOXLWJXPXNWK
        WLXQXRWKWLWM $.
    $}
  $}

  ${
    $d f g x y z B $.  $d f g x y z F $.  $d f g x y z G $.  $d f g x y z ph $.
    $d f g x y z I $.  $d x J $.  $d y z K $.  $d x T $.  $d x V $.
    $d f g x y z R $.  $d f g x y z S $.  $d x W $.  $d f g x y z Y $.
    prdsbasmpt.y $e |- Y = ( S Xs_ R ) $.
    prdsbasmpt.b $e |- B = ( Base ` Y ) $.
    ${
      prdsbasmpt.s $e |- ( ph -> S e. V ) $.
      prdsbasmpt.i $e |- ( ph -> I e. W ) $.
      prdsbasmpt.r $e |- ( ph -> R Fn I ) $.
      $( The base set of a structure product is an indexed set product.
         (Contributed by Stefan O'Rear, 10-Jan-2015.)  (Revised by Mario
         Carneiro, 15-Aug-2015.) $)
      prdsbas2 $p |- ( ph -> B = X_ x e. I ( Base ` ( R ` x ) ) ) $=
        ( cvv wfn wcel fnex syl2anc cdm wceq fndm syl prdsbas ) ABCIDEFGOJLADFP
        ZFHQDOQNMFHDRSKAUEDTFUANFDUBUCUD $.

      $( A constructed tuple is a point in a structure product iff each
         coordinate is in the proper base set.  (Contributed by Stefan O'Rear,
         10-Jan-2015.) $)
      prdsbasmpt $p |- ( ph -> ( ( x e. I |-> U ) e. B <->
          A. x e. I U e. ( Base ` ( R ` x ) ) ) ) $=
        ( cmpt wcel cv cfv cbs cixp wral prdsbas2 eleq2d wb mptelixpg syl bitrd
        ) ABGFPZCQUIBGBRDSTSZUAZQZFUJQBGUBZACUKUIABCDEGHIJKLMNOUCUDAGIQULUMUENB
        GFUJIUFUGUH $.

      ${
        prdsbasmpt.t $e |- ( ph -> T e. B ) $.
        $( Points in the structure product are functions; use this with ~ dffn5
           to establish equalities.  (Contributed by Stefan O'Rear,
           10-Jan-2015.) $)
        prdsbasfn $p |- ( ph -> T Fn I ) $=
          ( vx cv cfv cbs cixp wcel wfn prdsbas2 eleqtrd ixpfn syl ) AEPFPQCRSR
          ZTZUAEFUBAEBUHOAPBCDFGHIJKLMNUCUDPFUGEUEUF $.

        prdsbasprj.j $e |- ( ph -> J e. I ) $.
        $( Each point in a structure product restricts on each coordinate to
           the relevant base set.  (Contributed by Stefan O'Rear,
           10-Jan-2015.) $)
        prdsbasprj $p |- ( ph -> ( T ` J ) e. ( Base ` ( R ` J ) ) ) $=
          ( vx wcel cfv cv cbs wral prdsbas2 eleqtrd cvv wfn elixp2 simp3bi syl
          cixp wceq fveq2 fveq2d eleq12d rspcva syl2anc ) AGFSRUAZETZURCTZUBTZS
          ZRFUCZGETZGCTZUBTZSZQAERFVAUKZSZVCAEBVHPARBCDFHIJKLMNOUDUEVIEUFSEFUGV
          CRFVAEUHUIUJVBVGRGFURGULZUSVDVAVFURGEUMVJUTVEUBURGCUMUNUOUPUQ $.
      $}

      prdsplusgval.f $e |- ( ph -> F e. B ) $.
      prdsplusgval.g $e |- ( ph -> G e. B ) $.
      ${
        prdsplusgval.p $e |- .+ = ( +g ` Y ) $.
        $( Value of a componentwise sum in a structure product.  (Contributed
           by Stefan O'Rear, 10-Jan-2015.)  (Revised by Mario Carneiro,
           15-Aug-2015.) $)
        prdsplusgval $p |- ( ph -> ( F .+ G ) = ( x e. I |-> ( ( F ` x )
            ( +g ` ( R ` x ) ) ( G ` x ) ) ) ) $=
          ( vy vz cv cfv cplusg co cmpt cvv wfn wcel fnex syl2anc cdm wceq fndm
          syl prdsplusg wa fveq1 oveqan12d adantl mpteq2dv mptexg ovmpt2d ) AUA
          UBGHCCBIBUCZUAUCZUDZVEUBUCZUDZVEEUDUEUDZUFZUGBIVEGUDZVEHUDZVJUFZUGZDU
          HABCLDEFUAUBIJUHMOAEIUIZIKUJZEUHUJQPIKEUKULNAVPEUMIUNQIEUOUPTUQAVFGUN
          ZVHHUNZURZURBIVKVNVTVKVNUNAVRVSVGVLVIVMVJVEVFGUSVEVHHUSUTVAVBRSAVQVOU
          HUJPBIVNKVCUPVD $.

        prdsplusgfval.j $e |- ( ph -> J e. I ) $.
        $( Value of a structure product sum at a single coordinate.
           (Contributed by Stefan O'Rear, 10-Jan-2015.) $)
        prdsplusgfval $p |- ( ph -> ( ( F .+ G ) ` J ) = ( ( F ` J )
            ( +g ` ( R ` J ) ) ( G ` J ) ) ) $=
          ( vx co cfv cv cplusg cmpt prdsplusgval fveq1d wcel wceq fveq2 fveq2d
          oveq123d eqid ovex fvmpt syl eqtrd ) AIFGCUCZUDIUBHUBUEZFUDZVAGUDZVAD
          UDZUFUDZUCZUGZUDZIFUDZIGUDZIDUDZUFUDZUCZAIUTVGAUBBCDEFGHJKLMNOPQRSTUH
          UIAIHUJVHVMUKUAUBIVFVMHVGVAIUKZVBVIVCVJVEVLVNVDVKUFVAIDULUMVAIFULVAIG
          ULUNVGUOVIVJVLUPUQURUS $.
      $}

      ${
        prdsmulrval.t $e |- .x. = ( .r ` Y ) $.
        $( Value of a componentwise ring product in a structure product.
           (Contributed by Mario Carneiro, 11-Jan-2015.) $)
        prdsmulrval $p |- ( ph -> ( F .x. G ) = ( x e. I |-> ( ( F ` x )
            ( .r ` ( R ` x ) ) ( G ` x ) ) ) ) $=
          ( vy vz cv cfv cmulr cmpt cvv wfn wcel fnex syl2anc cdm wceq fndm syl
          co prdsmulr wa fveq1 oveqan12d adantl mpteq2dv mptexg ovmpt2d ) AUAUB
          GHCCBIBUCZUAUCZUDZVEUBUCZUDZVEDUDUEUDZUPZUFBIVEGUDZVEHUDZVJUPZUFZFUGA
          BCLDEFUAUBIJUGMOADIUHZIKUIZDUGUIQPIKDUJUKNAVPDULIUMQIDUNUOTUQAVFGUMZV
          HHUMZURZURBIVKVNVTVKVNUMAVRVSVGVLVIVMVJVEVFGUSVEVHHUSUTVAVBRSAVQVOUGU
          IPBIVNKVCUOVD $.

        prdsmulrfval.j $e |- ( ph -> J e. I ) $.
        $( Value of a structure product's ring product at a single coordinate.
           (Contributed by Mario Carneiro, 11-Jan-2015.) $)
        prdsmulrfval $p |- ( ph -> ( ( F .x. G ) ` J ) = ( ( F ` J )
            ( .r ` ( R ` J ) ) ( G ` J ) ) ) $=
          ( vx co cfv cv cmulr cmpt prdsmulrval fveq1d wcel wceq fveq2 oveq123d
          fveq2d eqid ovex fvmpt syl eqtrd ) AIFGEUCZUDIUBHUBUEZFUDZVAGUDZVACUD
          ZUFUDZUCZUGZUDZIFUDZIGUDZICUDZUFUDZUCZAIUTVGAUBBCDEFGHJKLMNOPQRSTUHUI
          AIHUJVHVMUKUAUBIVFVMHVGVAIUKZVBVIVCVJVEVLVNVDVKUFVAICULUNVAIFULVAIGUL
          UMVGUOVIVJVLUPUQURUS $.
      $}

      ${
        prdsleval.l $e |- .<_ = ( le ` Y ) $.
        $( Value of the product ordering in a structure product.  (Contributed
           by Mario Carneiro, 15-Aug-2015.) $)
        prdsleval $p |- ( ph -> ( F .<_ G <->
          A. x e. I ( F ` x ) ( le ` ( R ` x ) ) ( G ` x ) ) ) $=
          ( vf vg wbr cop cv wcel wa cfv cple wral copab df-br cpr wss cvv fnex
          wfn syl2anc cdm wceq fndm syl prdsle vex anbi1i opabbii eleq2d syl5bb
          prss syl6eqr wb fveq1 breqan12d ralbidv opelopab2a bitrd ) AFGIUCZFGU
          DZUAUEZCUFUBUEZCUFUGZBUEZVSUHZWBVTUHZWBDUHUIUHZUCZBHUJZUGZUAUBUKZUFZW
          BFUHZWBGUHZWEUCZBHUJZVQVRIUFAWJFGIULAIWIVRAIVSVTUMCUNZWGUGZUAUBUKWIAB
          CLDEUAUBHIJUOMOADHUQZHKUFDUOUFQPHKDUPURNAWQDUSHUTQHDVAVBTVCWHWPUAUBWA
          WOWGVSVTCUAVDUBVDVIVEVFVJVGVHAFCUFGCUFWJWNVKRSWGWNUAUBFGCCVSFUTZVTGUT
          ZUGWFWMBHWRWSWCWKWDWLWEWBVSFVLWBVTGVLVMVNVOURVP $.
      $}

      ${
        prdsdsval.d $e |- D = ( dist ` Y ) $.
        $( Value of the metric in a structure product.  (Contributed by Mario
           Carneiro, 20-Aug-2015.) $)
        prdsdsval $p |- ( ph -> ( F D G ) = sup ( ( ran ( x e. I |->
     ( ( F ` x ) ( dist ` ( R ` x ) ) ( G ` x ) ) ) u. { 0 } ) , RR* , < ) ) $=
          ( vf vg cv cfv cds co cmpt crn cc0 csn cun cxr clt csup cvv wcel fnex
          wfn syl2anc cdm wceq syl prdsds fveq1 oveqan12d adantl mpteq2dv rneqd
          fndm wa uneq1d supeq1d xrltso supex a1i ovmpt2d ) AUAUBGHCCBIBUCZUAUC
          ZUDZVQUBUCZUDZVQEUDUEUDZUFZUGZUHZUIUJZUKZULUMUNBIVQGUDZVQHUDZWBUFZUGZ
          UHZWFUKZULUMUNZDUOABCDLEFUAUBIJUOMOAEIURZIKUPEUOUPQPIKEUQUSNAWOEUTIVA
          QIEVIVBTVCAVRGVAZVTHVAZVJZVJZULWGWMUMWSWEWLWFWSWDWKWSBIWCWJWRWCWJVAAW
          PWQVSWHWAWIWBVQVRGVDVQVTHVDVEVFVGVHVKVLRSWNUOUPAULWMUMVMVNVOVP $.
      $}
    $}

    prdsvscaval.t $e |- .x. = ( .s ` Y ) $.
    prdsvscaval.k $e |- K = ( Base ` S ) $.
    prdsvscaval.s $e |- ( ph -> S e. V ) $.
    prdsvscaval.i $e |- ( ph -> I e. W ) $.
    prdsvscaval.r $e |- ( ph -> R Fn I ) $.
    prdsvscaval.f $e |- ( ph -> F e. K ) $.
    prdsvscaval.g $e |- ( ph -> G e. B ) $.
    $( Scalar multiplication in a structure product is pointwise.  (Contributed
       by Stefan O'Rear, 10-Jan-2015.) $)
    prdsvscaval $p |- ( ph -> ( F .x. G ) = ( x e. I |->
        ( F ( .s ` ( R ` x ) ) ( G ` x ) ) ) ) $=
      ( vy vz cv cfv cvsca co cmpt cvv wfn wcel fnex syl2anc wceq fndm prdsvsca
      cdm syl wa id fveq1 oveqan12d adantl mpteq2dv mptexg ovmpt2d ) AUCUDGHJCB
      IUCUEZBUEZUDUEZUFZVIDUFUGUFZUHZUIBIGVIHUFZVLUHZUIZFUJABCMDEFUCUDIJKUJNRAD
      IUKZILULZDUJULTSILDUMUNOAVQDURIUOTIDUPUSQPUQAVHGUOZVJHUOZUTZUTBIVMVOWAVMV
      OUOAVSVTVHGVKVNVLVSVAVIVJHVBVCVDVEUAUBAVRVPUJULSBIVOLVFUSVG $.

    prdsvscafval.j $e |- ( ph -> J e. I ) $.
    $( Scalar multiplication of a single coordinate in a structure product.
       (Contributed by Stefan O'Rear, 10-Jan-2015.) $)
    prdsvscafval $p |- ( ph -> ( ( F .x. G ) ` J ) =
        ( F ( .s ` ( R ` J ) ) ( G ` J ) ) ) $=
      ( vx cv cfv cvsca cvv prdsvscaval wceq fveq2 fveq2d eqidd oveq123d adantl
      co ovexd fvmptd ) AUDIFUDUEZGUFZUSCUFZUGUFZUPZFIGUFZICUFZUGUFZUPZHFGEUPUH
      AUDBCDEFGHJKLMNOPQRSTUAUBUIUSIUJZVCVGUJAVHFFUTVDVBVFVHVAVEUGUSICUKULVHFUM
      USIGUKUNUOUCAFVDVFUQUR $.
  $}

  ${
    $d y B $.  $d x y F $.  $d x y G $.  $d y ph $.  $d y S $.  $d y V $.
    $d x y I $.  $d y R $.  $d y W $.  $d y Y $.
    prdsbasmpt2.y $e |- Y = ( S Xs_ ( x e. I |-> R ) ) $.
    prdsbasmpt2.b $e |- B = ( Base ` Y ) $.
    prdsbasmpt2.s $e |- ( ph -> S e. V ) $.
    prdsbasmpt2.i $e |- ( ph -> I e. W ) $.
    prdsbasmpt2.r $e |- ( ph -> A. x e. I R e. X ) $.
    ${
      prdsbasmpt2.k $e |- K = ( Base ` R ) $.
      $( The base set of an indexed structure product.  (Contributed by Mario
         Carneiro, 13-Sep-2015.) $)
      prdsbas3 $p |- ( ph -> B = X_ x e. I K ) $=
        ( vy cfv cbs cv cmpt cixp wcel wral wfn eqid syl prdsbas2 nfcv nffvmpt1
        fnmpt nffv fveq2 fveq2d cbvixp syl6eq wa fvmpt2 syl6eqr ralimiaa ixpeq2
        wceq 3syl eqtrd ) ACBFBUAZBFDUBZSZTSZUCZBFGUCZACRFRUAZVGSZTSZUCVJARCVGE
        FHIKLMNOADJUDZBFUEZVGFUFPBFDVGJVGUGZULUHUIRBFVNVIBVMTBTUJBFDVLUKUMRVIUJ
        VLVFVCVMVHTVLVFVGUNUOUPUQAVPVIGVCZBFUEVJVKVCPVOVRBFVFFUDVOURZVIDTSGVSVH
        DTBFDJVGVQUSUOQUTVABFVIGVBVDVE $.

      $( A constructed tuple is a point in a structure product iff each
         coordinate is in the proper base set.  (Contributed by Mario Carneiro,
         3-Jul-2015.)  (Revised by Mario Carneiro, 13-Sep-2015.) $)
      prdsbasmpt2 $p |- ( ph ->
          ( ( x e. I |-> U ) e. B <-> A. x e. I U e. K ) ) $=
        ( cmpt wcel cixp wral prdsbas3 eleq2d wb mptelixpg syl bitrd ) ABGFSZCT
        UIBGHUAZTZFHTBGUBZACUJUIABCDEGHIJKLMNOPQRUCUDAGJTUKULUEPBGFHJUFUGUH $.

      prdsbascl.f $e |- ( ph -> F e. B ) $.
      $( An element of the base has projections closed in the factors.
         (Contributed by Mario Carneiro, 27-Aug-2015.) $)
      prdsbascl $p |- ( ph -> A. x e. I ( F ` x ) e. K ) $=
        ( wcel cfv cmpt wral wfn wceq eqid fnmpt prdsbasfn dffn5 sylib eqeltrrd
        cv syl prdsbasmpt2 mpbid ) ABGBULFUAZUBZCTUPHTBGUCAFUQCAFGUDFUQUEACBGDU
        BZEFGIJLMNOPADKTBGUCURGUDQBGDURKURUFUGUMSUHBGFUIUJSUKABCDEUPGHIJKLMNOPQ
        RUNUO $.
    $}

    prdsdsval2.f $e |- ( ph -> F e. B ) $.
    prdsdsval2.g $e |- ( ph -> G e. B ) $.
    ${
      prdsdsval2.e $e |- E = ( dist ` R ) $.
      prdsdsval2.d $e |- D = ( dist ` Y ) $.
      $( Value of the metric in a structure product.  (Contributed by Mario
         Carneiro, 20-Aug-2015.) $)
      prdsdsval2 $p |- ( ph -> ( F D G ) = sup ( ( ran ( x e. I |->
        ( ( F ` x ) E ( G ` x ) ) ) u. { 0 } ) , RR* , < ) ) $=
        ( vy co cv cfv cmpt cds crn cc0 csn cun cxr clt csup wcel wral wfn eqid
        fnmpt syl prdsdsval nfcv nffvmpt1 nffv nfov wceq fveq2d oveq123d cbvmpt
        fveq2 eqidd fvmpt2 syl6eqr oveqd ralimiaa mpteq12 syl2anc syl5eq uneq1d
        wa rneqd supeq1d eqtrd ) AHIDUEUDJUDUFZHUGZWFIUGZWFBJEUHZUGZUIUGZUEZUHZ
        UJZUKULZUMZUNUOUPBJBUFZHUGZWQIUGZGUEZUHZUJZWOUMZUNUOUPAUDCDWIFHIJKLNOPQ
        RAEMUQZBJURZWIJUSSBJEWIMWIUTZVAVBTUAUCVCAUNWPXCUOAWNXBWOAWMXAAWMBJWRWSW
        QWIUGZUIUGZUEZUHZXAUDBJWLXIBWGWHWKBWGVDBWJUIBUIVDBJEWFVEVFBWHVDVGUDXIVD
        WFWQVHZWGWRWHWSWKXHXKWJXGUIWFWQWIVLVIWFWQHVLWFWQIVLVJVKAJJVHXIWTVHZBJUR
        ZXJXAVHAJVMAXEXMSXDXLBJWQJUQXDWBZXHGWRWSXNXHEUIUGGXNXGEUIBJEMWIXFVNVIUB
        VOVPVQVBBJXIJWTVRVSVTWCWAWDWE $.
    $}

    ${
      prdsdsval3.k $e |- K = ( Base ` R ) $.
      prdsdsval3.e $e |- E = ( ( dist ` R ) |` ( K X. K ) ) $.
      prdsdsval3.d $e |- D = ( dist ` Y ) $.
      $( Value of the metric in a structure product.  (Contributed by Mario
         Carneiro, 27-Aug-2015.) $)
      prdsdsval3 $p |- ( ph -> ( F D G ) = sup ( ( ran ( x e. I |->
        ( ( F ` x ) E ( G ` x ) ) ) u. { 0 } ) , RR* , < ) ) $=
        ( co cv cfv cds cmpt crn cc0 csn cun cxr csup eqid prdsdsval2 wceq wral
        clt eqidd wcel prdsbascl wa cxp cres oveqi ovres syl5eq ex ral2imi sylc
        mpteq12 syl2anc rneqd uneq1d supeq1d eqtr4d ) AHIDUFBJBUGZHUHZVTIUHZEUI
        UHZUFZUJZUKZULUMZUNZUOVAUPBJWAWBGUFZUJZUKZWGUNZUOVAUPABCDEFWCHIJLMNOPQR
        STUAUBWCUQUEURAUOWLWHVAAWKWFWGAWJWEAJJUSWIWDUSZBJUTZWJWEUSAJVBAWAKVCZBJ
        UTWBKVCZBJUTWNABCEFHJKLMNOPQRSTUCUAVDABCEFIJKLMNOPQRSTUCUBVDWOWPWMBJWOW
        PWMWOWPVEWIWAWBWCKKVFVGZUFWDGWQWAWBUDVHWAWBKKWCVIVJVKVLVMBJWIJWDVNVOVPV
        QVRVS $.
    $}
  $}

  ${
    $d i r F $.  $d i r I $.  $d i r R $.
    pwsval.y $e |- Y = ( R ^s I ) $.
    pwsval.f $e |- F = ( Scalar ` R ) $.
    $( Value of a structure power.  (Contributed by Mario Carneiro,
       11-Jan-2015.) $)
    pwsval $p |- ( ( R e. V /\ I e. W ) -> Y = ( F Xs_ ( I X. { R } ) ) ) $=
      ( vr vi wcel wa cpws co csn cxp cprds cvv wceq csca elex cfv simpl fveq2d
      cv syl6eqr sneq xpeq12 syl2anr oveq12d df-pws ovex ovmpt2a syl2an syl5eq
      id ) ADKZCEKZLFACMNZBCAOZPZQNZGUQARKCRKUSVBSURADUACEUAIJACRRIUEZTUBZJUEZV
      COZPZQNVBMVCASZVECSZLZVDBVGVAQVJVDATUBBVJVCATVHVIUCUDHUFVIVIVFUTSVGVASVHV
      IUPVCAUGVECVFUTUHUIUJJIUKBVAQULUMUNUO $.
  $}

  ${
    $d x I $.  $d x R $.  $d x V $.  $d x W $.
    pwsbas.y $e |- Y = ( R ^s I ) $.
    pwsbas.f $e |- B = ( Base ` R ) $.
    $( Base set of a structure power.  (Contributed by Mario Carneiro,
       11-Jan-2015.) $)
    pwsbas $p |- ( ( R e. V /\ I e. W ) -> ( B ^m I ) = ( Base ` Y ) ) $=
      ( vx wcel wa cbs cfv csca co cixp cmap eqid cvv wceq csn cxp cprds pwsval
      fveq2d cv fvexd simpr snex xpexg sylancl c0 wne cdm snnzg adantr dmxp syl
      prdsbas wral fvconst2g ralrimiva ixpeq2 eqtrd fvex oveq1i syl6eqr 3eqtrrd
      ixpconstg ) BDJZCEJZKZFLMBNMZCBUAZUBZUCOZLMZICBLMZPZACQOZVLFVPLBVMCDEFGVM
      RUDUEVLVQICIUFZVOMZLMZPZVSVLIVQVPVOVMCSSVPRVLBNUGVLVKVNSJVOSJVJVKUHZBUICV
      NESUJUKVQRVLVNULUMZVOUNCTVJWFVKBDUOUPCVNUQURUSVLWCVRTZICUTZWDVSTVJWHVKVJW
      GICVJWACJKWBBLCBWADVAUEVBUPICWCVRVCURVDVLVSVRCQOZVTVLVKVRSJVSWITWEBLVEICV
      RESVIUKAVRCQHVFVGVH $.

    pwselbas.v $e |- V = ( Base ` Y ) $.
    $( Membership in the base set of a structure product.  (Contributed by
       Stefan O'Rear, 24-Jan-2015.) $)
    pwselbasb $p |- ( ( R e. W /\ I e. Z ) -> ( X e. V <-> X : I --> B ) ) $=
      ( wcel wa cmap co wf cbs cfv pwsbas cvv syl6eqr eleq2d fvex elmapg adantl
      wb eqeltri mpan bitr3d ) BELZCHLZMZFACNOZLZFDLCAFPZULUMDFULUMGQRDABCEHGIJ
      SKUAUBUKUNUOUFZUJATLUKUPABQRTJBQUCUGACFTHUDUHUEUI $.

    pwselbas.r $e |- ( ph -> R e. W ) $.
    pwselbas.i $e |- ( ph -> I e. Z ) $.
    pwselbas.x $e |- ( ph -> X e. V ) $.
    $( An element of a structure power is a function from the index set to the
       base set of the structure.  (Contributed by Mario Carneiro,
       11-Jan-2015.)  (Revised by Mario Carneiro, 5-Jun-2015.) $)
    pwselbas $p |- ( ph -> X : I --> B ) $=
      ( wcel wf wb pwselbasb syl2anc mpbid ) AGEPZDBGQZOACFPDIPUBUCRMNBCDEFGHIJ
      KLSTUA $.
  $}

  ${
    $d x .+ $.  $d x F $.  $d x G $.  $d x I $.  $d x ph $.  $d x .x. $.
    $d x R $.  $d x W $.
    pwsplusgval.y $e |- Y = ( R ^s I ) $.
    pwsplusgval.b $e |- B = ( Base ` Y ) $.
    pwsplusgval.r $e |- ( ph -> R e. V ) $.
    pwsplusgval.i $e |- ( ph -> I e. W ) $.
    pwsplusgval.f $e |- ( ph -> F e. B ) $.
    pwsplusgval.g $e |- ( ph -> G e. B ) $.
    ${
      pwsplusgval.a $e |- .+ = ( +g ` R ) $.
      pwsplusgval.p $e |- .+b = ( +g ` Y ) $.
      $( Value of addition in a structure power.  (Contributed by Mario
         Carneiro, 11-Jan-2015.) $)
      pwsplusgval $p |- ( ph -> ( F .+b G ) = ( F oF .+ G ) ) $=
        ( cfv vx csca csn cxp cprds co cplusg cv cmpt cof cbs cvv eqid wcel wfn
        fvexd fnconstg syl pwsval syl2anc fveq2d syl5eq eleqtrd prdsplusgval wa
        wceq fvconst2g sylan syl6eqr mpteq2dva pwselbas feqmptd offval2 3eqtr4d
        oveqd eqtrd ) AFGEUBTZHEUCUDZUEUFZUGTZUFZUAHUAUHZFTZWBGTZCUFZUIZFGDUFFG
        CUJUFAWAUAHWCWDWBVRTZUGTZUFZUIWFAUAVSUKTZVTVRVQFGHULJVSVSUMWJUMAEUBUPOA
        EIUNZVRHUONHEIUQURAFBWJPABKUKTWJMAKVSUKAWKHJUNKVSVFNOEVQHIJKLVQUMUSUTZV
        AVBZVCAGBWJQWMVCVTUMVDAUAHWIWEAWBHUNZVEZWHCWCWDWOWHEUGTCWOWGEUGAWKWNWGE
        VFNHEWBIVGVHVARVIVOVJVPADVTFGADKUGTVTSAKVSUGWLVAVBVOAUAHWCWDCFGJULULOWO
        WBFUPWOWBGUPAUAHEUKTZFAWPEHBIFKJLWPUMZMNOPVKVLAUAHWPGAWPEHBIGKJLWQMNOQV
        KVLVMVN $.
    $}

    ${
      pwsmulrval.a $e |- .x. = ( .r ` R ) $.
      pwsmulrval.p $e |- .xb = ( .r ` Y ) $.
      $( Value of multiplication in a structure power.  (Contributed by Mario
         Carneiro, 11-Jan-2015.) $)
      pwsmulrval $p |- ( ph -> ( F .xb G ) = ( F oF .x. G ) ) $=
        ( cfv vx csca csn cxp cprds co cmulr cv cmpt cof cbs cvv eqid fvexd wfn
        wcel fnconstg syl wceq pwsval syl2anc fveq2d syl5eq eleqtrd prdsmulrval
        wa fvconst2g sylan syl6eqr oveqd eqtrd pwselbas feqmptd offval2 3eqtr4d
        mpteq2dva ) AFGCUBTZHCUCUDZUEUFZUGTZUFZUAHUAUHZFTZWBGTZEUFZUIZFGDUFFGEU
        JUFAWAUAHWCWDWBVRTZUGTZUFZUIWFAUAVSUKTZVRVQVTFGHULJVSVSUMWJUMACUBUNOACI
        UPZVRHUONHCIUQURAFBWJPABKUKTWJMAKVSUKAWKHJUPKVSUSNOCVQHIJKLVQUMUTVAZVBV
        CZVDAGBWJQWMVDVTUMVEAUAHWIWEAWBHUPZVFZWHEWCWDWOWHCUGTEWOWGCUGAWKWNWGCUS
        NHCWBIVGVHVBRVIVJVPVKADVTFGADKUGTVTSAKVSUGWLVBVCVJAUAHWCWDEFGJULULOWOWB
        FUNWOWBGUNAUAHCUKTZFAWPCHBIFKJLWPUMZMNOPVLVMAUAHWPGAWPCHBIGKJLWQMNOQVLV
        MVNVO $.
    $}
  $}

  ${
    $d f g x B $.  $d f g x I $.  $d f g x O $.  $d f g x R $.  $d f g x V $.
    $d x F $.  $d x G $.  $d x ph $.  $d f g x W $.
    pwsle.y $e |- Y = ( R ^s I ) $.
    pwsle.v $e |- B = ( Base ` Y ) $.
    pwsle.o $e |- O = ( le ` R ) $.
    pwsle.l $e |- .<_ = ( le ` Y ) $.
    $( Ordering in a structure power.  (Contributed by Mario Carneiro,
       16-Aug-2015.) $)
    pwsle $p |- ( ( R e. V /\ I e. W ) -> .<_ = ( oR O i^i ( B X. B ) ) ) $=
      ( vf vg vx wcel wa cfv cple eqid cv cpr csca csn cxp cprds co cbs wss wbr
      wral copab cofr cin prss pwsval fveq2d syl5eq sseq2d syl5bb anbi1d simpll
      vex wceq fvconst2g sylan syl6eqr breqd ralbidva wf simplr simprl pwselbas
      wfn ffn syl simprr inidm eqidd ofrfval bitr4d pm5.32da w3a brinxp2 df-3an
      bitri syl6bbr bitr3d opabbidv cvv fvexd simpr snex xpexg sylancl c0 snnzg
      wne cdm adantr dmxp prdsle eqtrd wrel inss2 relxp relss mp2 dfrel4v sylib
      a1i 3eqtr4d ) BFPZCGPZQZMUAZNUAZUBZBUCRZCBUDZUEZUFUGZUHRZUIZOUAZXPRZYEXQR
      ZYEYARZSRZUJZOCUKZQZMNULZXPXQEUMZAAUEZUNZUJZMNULZDYPXOYLYQMNXOXPAPZXQAPZQ
      ZYKQZYLYQXOUUAYDYKUUAXRAUIXOYDXPXQAMVCNVCUOXOAYCXRXOAHUHRYCJXOHYBUHBXSCFG
      HIXSTUPZUQURUSUTVAXOUUBUUAXPXQYNUJZQZYQXOUUAYKUUDXOUUAQZYKYFYGEUJZOCUKUUD
      UUFYJUUGOCUUFYECPZQZYIEYFYGUUIYIBSREUUIYHBSUUFXMUUHYHBVDXMXNUUAVBZCBYEFVE
      VFUQKVGVHVIUUFOCCYFYGECXPXQGGUUFCBUHRZXPVJXPCVNUUFUUKBCAFXPHGIUUKTZJUUJXM
      XNUUAVKZXOYSYTVLVMCUUKXPVOVPUUFCUUKXQVJXQCVNUUFUUKBCAFXQHGIUULJUUJUUMXOYS
      YTVQVMCUUKXQVOVPUUMUUMCVRUUIYFVSUUIYGVSVTWAWBYQYSYTUUDWCUUEXPXQAAYNWDYSYT
      UUDWEWFWGWHWIXODYBSRZYMXODHSRUUNLXOHYBSUUCUQURXOOYCYBYAXSMNCUUNWJWJYBTXOB
      UCWKXOXNXTWJPYAWJPXMXNWLBWMCXTGWJWNWOYCTXOXTWPWRZYAWSCVDXMUUOXNBFWQWTCXTX
      AVPUUNTXBXCXOYPXDZYPYRVDUUPXOYPYOUIYOXDUUPYNYOXEAAXFYPYOXGXHXKMNYPXIXJXL
      $.

    pwsleval.r $e |- ( ph -> R e. V ) $.
    pwsleval.i $e |- ( ph -> I e. W ) $.
    pwsleval.a $e |- ( ph -> F e. B ) $.
    pwsleval.b $e |- ( ph -> G e. B ) $.
    $( Ordering in a structure power.  (Contributed by Mario Carneiro,
       16-Aug-2015.) $)
    pwsleval $p |- ( ph -> ( F .<_ G <-> A. x e. I ( F ` x ) O ( G ` x ) ) ) $=
      ( wbr cofr cxp cin cv cfv wral wcel wceq pwsle syl2anc breqd wb brinxp wf
      cbs wfn eqid pwselbas ffn syl inidm wa eqidd ofrfval 3bitr2d ) AEFHUAEFIU
      BZCCUCUDZUAZEFVGUAZBUEZEUFZVKFUFZIUABGUGAHVHEFADJUHGKUHHVHUIQRCDGHIJKLMNO
      PUJUKULAECUHFCUHVJVIUMSTEFCCVGUNUKABGGVLVMIGEFKKAGDUPUFZEUOEGUQAVNDGCJELK
      MVNURZNQRSUSGVNEUTVAAGVNFUOFGUQAVNDGCJFLKMVONQRTUSGVNFUTVARRGVBAVKGUHVCZV
      LVDVPVMVDVEVF $.
  $}

  ${
    $d x A $.  $d x F $.  $d x I $.  $d x K $.  $d x R $.  $d x W $.  $d x X $.
    $d x ph $.  $d x .x. $.
    pwsvscaval.y $e |- Y = ( R ^s I ) $.
    pwsvscaval.b $e |- B = ( Base ` Y ) $.
    pwsvscaval.s $e |- .x. = ( .s ` R ) $.
    pwsvscaval.t $e |- .xb = ( .s ` Y ) $.
    pwsvscaval.f $e |- F = ( Scalar ` R ) $.
    pwsvscaval.k $e |- K = ( Base ` F ) $.
    pwsvscaval.r $e |- ( ph -> R e. V ) $.
    pwsvscaval.i $e |- ( ph -> I e. W ) $.
    pwsvscaval.a $e |- ( ph -> A e. K ) $.
    pwsvscaval.x $e |- ( ph -> X e. B ) $.
    $( Scalar multiplication in a structure power is pointwise.  (Contributed
       by Mario Carneiro, 11-Jan-2015.) $)
    pwsvscafval $p |- ( ph -> ( A .xb X ) = ( ( I X. { A } ) oF .x. X ) ) $=
      ( vx co csn cxp cprds cvsca cfv cv cmpt wcel pwsval syl2anc fveq2d syl5eq
      cof wceq oveqd cbs cvv eqid csca eqeltri a1i wfn fnconstg syl prdsvscaval
      fvex eleqtrd wa fvconst2g sylan mpteq2dva adantr fvexd fconstmpt pwselbas
      syl6eqr feqmptd offval2 eqtr4d 3eqtrd ) ABLEUEBLGHDUFUGZUHUEZUIUJZUEUDHBU
      DUKZLUJZWIWFUJZUIUJZUEZULZHBUFUGZLFURUEZAEWHBLAEMUIUJWHQAMWGUIADJUMZHKUMM
      WGUSTUADGHJKMNRUNUOZUPUQUTAUDWGVAUJZWFGWHBLHIVBKWGWGVCWSVCWHVCSGVBUMAGDVD
      UJVBRDVDVKVEVFUAAWQWFHVGTHDJVHVIUBALCWSUCACMVAUJWSOAMWGVAWRUPUQVLVJAWNUDH
      BWJFUEZULWPAUDHWMWTAWIHUMZVMZWLFBWJXBWLDUIUJFXBWKDUIAWQXAWKDUSTHDWIJVNVOU
      PPWAUTVPAUDHBWJFWOLKIVBUAABIUMXAUBVQXBWILVRWOUDHBULUSAUDHBVSVFAUDHDVAUJZL
      AXCDHCJLMKNXCVCOTUAUCVTWBWCWDWE $.

    pwsvscaval.j $e |- ( ph -> J e. I ) $.
    $( Scalar multiplication of a single coordinate in a structure power.
       (Contributed by Mario Carneiro, 11-Jan-2015.) $)
    pwsvscaval $p |- ( ph -> ( ( A .xb X ) ` J ) = ( A .x. ( X ` J ) ) ) $=
      ( co cfv csn cxp cof pwsvscafval fveq1d wcel wceq cbs wf wfn pwselbas ffn
      eqid syl wa eqidd ofc1 mpdan eqtrd ) AIBMEUFZUGIHBUHUIMFUJUFZUGZBIMUGZFUF
      ZAIVGVHABCDEFGHJKLMNOPQRSTUAUBUCUDUKULAIHUMZVIVKUNUEAHBVJFMLJIUBUCAHDUOUG
      ZMUPMHUQAVMDHCKMNLOVMUTPUAUBUDURHVMMUSVAAVLVBVJVCVDVEVF $.
  $}

  ${
    pwssca.y $e |- Y = ( R ^s I ) $.
    pwssca.s $e |- S = ( Scalar ` R ) $.
    $( The ring of scalars of a structure product.  (Contributed by Stefan
       O'Rear, 24-Jan-2015.) $)
    pwssca $p |- ( ( R e. V /\ I e. W ) -> S = ( Scalar ` Y ) ) $=
      ( wcel wa csn cxp cprds co csca cfv cvv eqid fvex eqeltri a1i simpr xpexg
      snex sylancl prdssca pwsval fveq2d eqtr4d ) ADIZCEIZJZBBCAKZLZMNZOPFOPULU
      OUNBQQUORBQIULBAOPQHAOSTUAULUKUMQIUNQIUJUKUBAUDCUMEQUCUEUFULFUOOABCDEFGHU
      GUHUI $.
  $}

  ${
    pwsdiagel.y $e |- Y = ( R ^s I ) $.
    pwsdiagel.b $e |- B = ( Base ` R ) $.
    pwsdiagel.c $e |- C = ( Base ` Y ) $.
    $( Membership of diagonal elements in the structure power base set.
       (Contributed by Stefan O'Rear, 24-Jan-2015.) $)
    pwsdiagel $p |- ( ( ( R e. V /\ I e. W ) /\ A e. B ) ->
        ( I X. { A } ) e. C ) $=
      ( wcel wa csn cxp wf fconst6g adantl wb pwselbasb adantr mpbird ) DFLEGLM
      ZABLZMEANOZCLZEBUEPZUDUGUCEABQRUCUFUGSUDBDECFUEHGIJKTUAUB $.
  $}

  ${
    $d Y x $.  $d R x $.  $d I x $.  $d B x $.  $d C x $.  $d W x $.
    pwssnf1o.y $e |- Y = ( R ^s { I } ) $.
    pwssnf1o.b $e |- B = ( Base ` R ) $.
    pwssnf1o.f $e |- F = ( x e. B |-> ( { I } X. { x } ) ) $.
    pwssnf1o.c $e |- C = ( Base ` Y ) $.
    $( Triviality of singleton powers: set equipollence.  (Contributed by
       Stefan O'Rear, 24-Jan-2015.) $)
    pwssnf1o $p |- ( ( R e. V /\ I e. W ) -> F : B -1-1-onto-> C ) $=
      ( wcel wa wf1o cvv cbs cfv wceq csn cmap co fvex eqeltri mapsnf1o sylancr
      simpr wb snex pwsbas mpan2 adantr syl6reqr f1oeq3 syl mpbird ) DGNZFHNZOZ
      BCEPZBBFUAZUBUCZEPZUTBQNUSVDBDRSQKDRUDUEURUSUHABEFQHLUFUGUTCVCTVAVDUIUTVC
      IRSZCURVCVETZUSURVBQNVFFUJBDVBGQIJKUKULUMMUNCVCBEUOUPUQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition of the structure quotient
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ordTop $.
  $c RR*s $.

  $( Extend class notation with the order topology. $)
  cordt $a class ordTop $.

  $( Extend class notation with the extended real number structure. $)
  cxrs $a class RR*s $.

  ${
    $d r x y $.
    $( Define the order topology, given an order ` <_ ` , written as ` r `
       below.  A closed subbasis for the order topology is given by the closed
       rays ` [ y , +oo ) = { z e. X | y <_ z } ` and
       ` ( -oo , y ] = { z e. X | z <_ y } ` , along with ` ( -oo , +oo ) = X `
       itself.  (Contributed by Mario Carneiro, 3-Sep-2015.) $)
    df-ordt $a |- ordTop = ( r e. _V |-> ( topGen ` ( fi ` ( { dom r } u. ran
       ( ( x e. dom r |-> { y e. dom r | -. y r x } ) u.
         ( x e. dom r |-> { y e. dom r | -. x r y } ) ) ) ) ) ) $.

    $( The extended real number structure.  Unlike ~ df-cnfld , the extended
       real numbers do not have good algebraic properties, so this is not
       actually a group or anything higher, even though it has just as many
       operations as ~ df-cnfld .  The main interest in this structure is in
       its ordering, which is complete and compact.  The metric described here
       is an extension of the absolute value metric, but it is not itself a
       metric because ` +oo ` is infinitely far from all other points.  The
       topology is based on the order and not the extended metric (which would
       make ` +oo ` an isolated point since there is nothing else in the ` 1 `
       -ball around it).  All components of this structure agree with ` CCfld `
       when restricted to ` RR ` .  (Contributed by Mario Carneiro,
       20-Aug-2015.) $)
    df-xrs $a |- RR*s = ( { <. ( Base ` ndx ) , RR* >. ,
        <. ( +g ` ndx ) , +e >. , <. ( .r ` ndx ) , *e >. } u.
        { <. ( TopSet ` ndx ) , ( ordTop ` <_ ) >. ,
          <. ( le ` ndx ) , <_ >. ,
          <. ( dist ` ndx ) , ( x e. RR* , y e. RR* |->
            if ( x <_ y , ( y +e -e x ) , ( x +e -e y ) ) ) >. } ) $.
  $}

  $c "s $. $( Image structure $)
  $c /s $. $( Quotient structure $)
  $c qTop $. $( Quotient topology $)
  $c Xs. $. $( Binary structure $)

  $( Extend class notation with the quotient topology function. $)
  cqtop $a class qTop $.

  $( Image structure function. $)
  cimas $a class "s $.

  $( Quotient structure function. $)
  cqus $a class /s $.

  $( Binary product structure function. $)
  cxps $a class Xs. $.

  ${
    $d e f g h i j n p q r s v x y $.
    $( Define the quotient topology given a function ` f ` and topology ` j `
       on the domain of ` f ` .  (Contributed by Mario Carneiro,
       23-Mar-2015.) $)
    df-qtop $a |- qTop = ( j e. _V , f e. _V |->
       { s e. ~P ( f " U. j ) | ( ( `' f " s ) i^i U. j ) e. j } ) $.

    $( Define an image structure, which takes a structure and a function on the
       base set, and maps all the operations via the function.  For this to
       work properly ` f ` must either be injective or satisfy the
       well-definedness condition ` f ( a ) = f ( c ) /\ f ( b ) = f ( d ) -> `
       ` f ( a + b ) = f ( c + d ) ` for each relevant operation.

       Note that although we call this an "image" by association to ~ df-ima ,
       in order to keep the definition simple we consider only the case when
       the domain of ` F ` is equal to the base set of ` R ` .  Other cases can
       be achieved by restricting ` F ` (with ~ df-res ) and/or ` R ` ( with
       ~ df-ress ) to their common domain.  (Contributed by Mario Carneiro,
       23-Feb-2015.)  (Revised by AV, 6-Oct-2020.) $)
    df-imas $a |- "s = ( f e. _V , r e. _V |-> [_ ( Base ` r ) / v ]_
  ( ( { <. ( Base ` ndx ) , ran f >. ,
        <. ( +g ` ndx ) , U_ p e. v U_ q e. v
     { <. <. ( f ` p ) , ( f ` q ) >. , ( f ` ( p ( +g ` r ) q ) ) >. } >. ,
        <. ( .r ` ndx ) , U_ p e. v U_ q e. v
     { <. <. ( f ` p ) , ( f ` q ) >. , ( f ` ( p ( .r ` r ) q ) ) >. } >. } u.
      { <. ( Scalar ` ndx ) , ( Scalar ` r ) >. ,
        <. ( .s ` ndx ) , U_ q e. v ( p e. ( Base ` ( Scalar ` r ) ) ,
           x e. { ( f ` q ) } |-> ( f ` ( p ( .s ` r ) q ) ) ) >. ,
        <. ( .i ` ndx ) , U_ p e. v U_ q e. v
     { <. <. ( f ` p ) , ( f ` q ) >. , ( p ( .i ` r ) q ) >. } >. } ) u.
      { <. ( TopSet ` ndx ) , ( ( TopOpen ` r ) qTop f ) >. ,
        <. ( le ` ndx ) , ( ( f o. ( le ` r ) ) o. `' f ) >. ,
        <. ( dist ` ndx ) , ( x e. ran f , y e. ran f |-> inf ( U_ n e. NN
         ran ( g e. { h e. ( ( v X. v ) ^m ( 1 ... n ) ) |
        ( ( f ` ( 1st ` ( h ` 1 ) ) ) = x /\ ( f ` ( 2nd ` ( h ` n ) ) ) = y /\
         A. i e. ( 1 ... ( n - 1 ) ) ( f ` ( 2nd ` ( h ` i ) ) ) =
           ( f ` ( 1st ` ( h ` ( i + 1 ) ) ) ) ) } |->
           ( RR*s gsum ( ( dist ` r ) o. g ) ) ) , RR* , < ) ) >. } ) ) $.

    $( Define a quotient ring (or quotient group), which is a special case of
       an image structure ~ df-imas where the image function is
       ` x |-> [ x ] e ` .  (Contributed by Mario Carneiro, 23-Feb-2015.) $)
    df-qus $a |- /s = ( r e. _V , e e. _V |->
      ( ( x e. ( Base ` r ) |-> [ x ] e ) "s r ) ) $.

    $( Define a binary product on structures.  (Contributed by Mario Carneiro,
       14-Aug-2015.) $)
    df-xps $a |- Xs. = ( r e. _V , s e. _V |->
      ( `' ( x e. ( Base ` r ) , y e. ( Base ` s ) |-> `' ( { x } +c { y } ) )
        "s ( ( Scalar ` r ) Xs_ `' ( { r } +c { s } ) ) ) ) $.
  $}

  ${
    $d f r v .<_ $.  $d f r v B $.  $d f r v D $.  $d f r v G $.  $d f r v O $.
    $d f g h i n p q r v x y F $.  $d f g h i n p q r v x y R $.  $d h p q V $.
    $d f r v I $.  $d f r v .+b $.  $d f g h i n p q r v x y ph $.
    $d f r v .(x) $.  $d f r v .xb $.
    imasval.u $e |- ( ph -> U = ( F "s R ) ) $.
    imasval.v $e |- ( ph -> V = ( Base ` R ) ) $.
    imasval.p $e |- .+ = ( +g ` R ) $.
    imasval.m $e |- .X. = ( .r ` R ) $.
    imasval.g $e |- G = ( Scalar ` R ) $.
    imasval.k $e |- K = ( Base ` G ) $.
    imasval.q $e |- .x. = ( .s ` R ) $.
    imasval.i $e |- ., = ( .i ` R ) $.
    imasval.j $e |- J = ( TopOpen ` R ) $.
    imasval.e $e |- E = ( dist ` R ) $.
    imasval.n $e |- N = ( le ` R ) $.
    imasval.a $e |- ( ph -> .+b = U_ p e. V U_ q e. V
     { <. <. ( F ` p ) , ( F ` q ) >. , ( F ` ( p .+ q ) ) >. } ) $.
    imasval.t $e |- ( ph -> .xb = U_ p e. V U_ q e. V
     { <. <. ( F ` p ) , ( F ` q ) >. , ( F ` ( p .X. q ) ) >. } ) $.
    imasval.s $e |- ( ph -> .(x) = U_ q e. V ( p e. K ,
           x e. { ( F ` q ) } |-> ( F ` ( p .x. q ) ) ) ) $.
    imasval.w $e |- ( ph -> I = U_ p e. V U_ q e. V
     { <. <. ( F ` p ) , ( F ` q ) >. , ( p ., q ) >. } ) $.
    imasval.o $e |- ( ph -> O = ( J qTop F ) ) $.
    imasval.d $e |- ( ph -> D = ( x e. B , y e. B |-> inf ( U_ n e. NN
         ran ( g e. { h e. ( ( V X. V ) ^m ( 1 ... n ) ) |
        ( ( F ` ( 1st ` ( h ` 1 ) ) ) = x /\ ( F ` ( 2nd ` ( h ` n ) ) ) = y /\
         A. i e. ( 1 ... ( n - 1 ) ) ( F ` ( 2nd ` ( h ` i ) ) ) =
           ( F ` ( 1st ` ( h ` ( i + 1 ) ) ) ) ) } |->
         ( RR*s gsum ( E o. g ) ) ) , RR* , < ) ) ) $.
    imasval.l $e |- ( ph -> .<_ = ( ( F o. N ) o. `' F ) ) $.
    imasval.f $e |- ( ph -> F : V -onto-> B ) $.
    imasval.r $e |- ( ph -> R e. Z ) $.
    $( Value of an image structure.  (Contributed by Mario Carneiro,
       23-Feb-2015.)  (Revised by Mario Carneiro, 11-Jul-2015.)  (Revised by
       Thierry Arnoux, 16-Jun-2019.)  (Revised by AV, 6-Oct-2020.) $)
    imasval $p |- ( ph -> U = ( ( { <. ( Base ` ndx ) , B >. ,
        <. ( +g ` ndx ) , .+b >. , <. ( .r ` ndx ) , .xb >. } u.
        { <. ( Scalar ` ndx ) , G >. , <. ( .s ` ndx ) , .(x) >. ,
          <. ( .i ` ndx ) , I >. } ) u.
        { <. ( TopSet ` ndx ) , O >. , <. ( le ` ndx ) , .<_ >. ,
        <. ( dist ` ndx ) , D >. } ) ) $=
      ( vf vr vv cimas cnx cbs cfv cop cplusg cmulr ctp csca cvsca cip cun cple
      co cds cvv cv crn csn ciun cmpt2 ctopn cqtop ccom ccnv c1st wceq c2nd cfz
      cn c1 wral w3a cxp cmap crab cxrs cgsu cmpt cxr clt cinf a1i wa rneqd syl
      ad2antrr eqtrd opeq2d fveq2d 3eqtr4d fveq1d opeq12d syl6eqr oveqd fveq12d
      sneqd iuneq12d eqtr4d tpeq123d mpt2eq123dv iuneq2d uneq12d coeq12d wcel
      tpex cts caddc cmin csb df-imas fvexd simplrl wfo simplrr iuneq1d oveq12d
      forn cnveqd sqxpeqd oveq1d eqeq1d eqeq12d ralbidv 3anbi123d coeq1d oveq2d
      simpr rabeqbidv mpteq12dv infeq1d csbied wf fof fvex syl6eqel fex syl2anc
      elex unex ovmpt2d ) AMSHVOWHVPVQVRZDVSZVPVTVRZGVSZVPWAVRZIVSZWBZVPWCVRZTV
      SZVPWDVRZLVSZVPWEVRZUBVSZWBZWFZVPUUAVRZUGVSZVPWGVRZUEVSZVPWIVRZEVSZWBZWFZ
      ULAVLVMSHWJWJVNVMWKZVQVRZUVPVLWKZWLZVSZUVRUKVNWKZUJUXDUKWKZUXAVRZUJWKZUXA
      VRZVSZUXEUXGUWSVTVRZWHZUXAVRZVSZWMZWNZWNZVSZUVTUKUXDUJUXDUXIUXEUXGUWSWAVR
      ZWHZUXAVRZVSZWMZWNZWNZVSZWBZUWCUWSWCVRZVSZUWEUJUXDUKBUYGVQVRZUXHWMZUXEUXG
      UWSWDVRZWHZUXAVRZWOZWNZVSZUWGUKUXDUJUXDUXIUXEUXGUWSWEVRZWHZVSZWMZWNZWNZVS
      ZWBZWFZUWKUWSWPVRZUXAWQWHZVSZUWMUXAUWSWGVRZWRZUXAWSZWRZVSZUWOBCUXBUXBQXDN
      XEOWKZVRWTVRZUXAVRZBWKZXAZQWKZVUNVRXBVRZUXAVRZCWKZXAZPWKZVUNVRXBVRZUXAVRZ
      VVDXEUUBWHVUNVRWTVRZUXAVRZXAZPXEVUSXEUUCWHXCWHZXFZXGZOUXDUXDXHZXEVUSXCWHZ
      XIWHZXJZXKUWSWIVRZNWKZWRZXLWHZXMZWLZWNZXNXOXPZWOZVSZWBZWFZUUDZUWRVOWJVOVL
      VMWJWJVWIWOXAABCVNVLNOPQVMUJUKUUEXQAUXASXAZUWSHXAZXRZXRZVNUWTVWHUWRWJVWMU
      WSVQUUFVWMUXDUWTXAZXRZVUEUWJVWGUWQVWOUYFUWBVUDUWIVWOUXCUVQUXQUVSUYEUWAVWO
      UXBDUVPVWOUXBSWLZDVWOUXASAVWJVWKVWNUUGZXSAVWPDXAZVWLVWNAUHDSUUHZVWRVJUHDS
      UULXTYAYBZYCVWOUXPGUVRVWOUXPUKUHUJUHUXESVRZUXGSVRZVSZUXEUXGFWHZSVRZVSZWMZ
      WNZWNZGVWOUKUXDUHUXOVXHVWOUWTHVQVRZUXDUHVWOUWSHVQAVWJVWKVWNUUIZYDVWMVWNUV
      BAUHVXJXAVWLVWNUMYAYEZVWOUJUXDUHUXNVXGVXLVWOUXMVXFVWOUXIVXCUXLVXEVWOUXFVX
      AUXHVXBVWOUXEUXASVWQYFVWOUXGUXASVWQYFZYGZVWOUXKVXDUXASVWQVWOUXJFUXEUXGVWO
      UXJHVTVRFVWOUWSHVTVXKYDUNYHYIYJYGYKYLYLAGVXIXAVWLVWNVCYAYMYCVWOUYDIUVTVWO
      UYDUKUHUJUHVXCUXEUXGKWHZSVRZVSZWMZWNZWNZIVWOUKUXDUHUYCVXSVXLVWOUJUXDUHUYB
      VXRVXLVWOUYAVXQVWOUXIVXCUXTVXPVXNVWOUXSVXOUXASVWQVWOUXRKUXEUXGVWOUXRHWAVR
      KVWOUWSHWAVXKYDUOYHYIYJYGYKYLYLAIVXTXAVWLVWNVDYAYMYCYNVWOUYHUWDUYPUWFVUCU
      WHVWOUYGTUWCVWOUYGHWCVRTVWOUWSHWCVXKYDUPYHZYCVWOUYOLUWEVWOUJUHUYNWNUJUHUK
      BUDVXBWMZUXEUXGJWHZSVRZWOZWNZUYOLVWOUJUHUYNVYEVWOUKBUYIUYJUYMUDVYBVYDVWOU
      YITVQVRUDVWOUYGTVQVYAYDUQYHVWOUXHVXBVXMYKVWOUYLVYCUXASVWQVWOUYKJUXEUXGVWO
      UYKHWDVRJVWOUWSHWDVXKYDURYHYIYJYOYPVWOUJUXDUHUYNVXLUUJALVYFXAVWLVWNVEYAYE
      YCVWOVUBUBUWGVWOVUBUKUHUJUHVXCUXEUXGUAWHZVSZWMZWNZWNZUBVWOUKUXDUHVUAVYJVX
      LVWOUJUXDUHUYTVYIVXLVWOUYSVYHVWOUXIVXCUYRVYGVXNVWOUYQUAUXEUXGVWOUYQHWEVRU
      AVWOUWSHWEVXKYDUSYHYIYGYKYLYLAUBVYKXAVWLVWNVFYAYMYCYNYQVWOVUHUWLVUMUWNVWF
      UWPVWOVUGUGUWKVWOVUGUCSWQWHZUGVWOVUFUCUXASWQVWOVUFHWPVRUCVWOUWSHWPVXKYDUT
      YHVWQUUKAUGVYLXAVWLVWNVGYAYMYCVWOVULUEUWMVWOVULSUFWRZSWSZWRZUEVWOVUJVYMVU
      KVYNVWOUXASVUIUFVWQVWOVUIHWGVRUFVWOUWSHWGVXKYDVBYHYRVWOUXASVWQUUMYRAUEVYO
      XAVWLVWNVIYAYMYCVWOVWEEUWOVWOVWEBCDDQXDNVUOSVRZVUQXAZVUTSVRZVVBXAZVVESVRZ
      VVGSVRZXAZPVVJXFZXGZOUHUHXHZVVNXIWHZXJZXKRVVRWRZXLWHZXMZWLZWNZXNXOXPZWOZE
      VWOBCUXBUXBVWDDDWUMVWTVWTVWOXNVWCWULXOVWOQXDVWBWUKVWOVWAWUJVWONVVPVVTWUGW
      UIVWOVVLWUDOVVOWUFVWOVVMWUEVVNXIVWOUXDUHVXLUUNUUOVWOVURVYQVVCVYSVVKWUCVWO
      VUPVYPVUQVWOVUOUXASVWQYFUUPVWOVVAVYRVVBVWOVUTUXASVWQYFUUPVWOVVIWUBPVVJVWO
      VVFVYTVVHWUAVWOVVEUXASVWQYFVWOVVGUXASVWQYFUUQUURUUSUVCVWOVVSWUHXKXLVWOVVQ
      RVVRVWOVVQHWIVRRVWOUWSHWIVXKYDVAYHUUTUVAUVDXSYPUVEYOAEWUNXAVWLVWNVHYAYMYC
      YNYQUVFAUHDSUVGZUHWJYSSWJYSAVWSWUOVJUHDSUVHXTAUHVXJWJUMHVQUVIUVJUHDWJSUVK
      UVLAHUIYSHWJYSVKHUIUVMXTUWRWJYSAUWJUWQUWBUWIUVQUVSUWAYTUWDUWFUWHYTUVNUWLU
      WNUWPYTUVNXQUVOYB $.
  $}

  ${
    $d g h i n p q u v w x y z F $.  $d g h i n p q u v w x y z R $.  $d x U $.
    $d x y B $.  $d x y E $.  $d g h i n p q u v w x y z ph $.  $d h n x y X $.
    $d p x K $.  $d g x y S $.  $d g h p q w z V $.  $d h n x y Y $.
    imasbas.u $e |- ( ph -> U = ( F "s R ) ) $.
    imasbas.v $e |- ( ph -> V = ( Base ` R ) ) $.
    imasbas.f $e |- ( ph -> F : V -onto-> B ) $.
    imasbas.r $e |- ( ph -> R e. Z ) $.
    $( The base set of an image structure.  (Contributed by Mario Carneiro,
       23-Feb-2015.)  (Revised by Mario Carneiro, 11-Jul-2015.)  (Revised by
       Thierry Arnoux, 16-Jun-2019.)  (Revised by AV, 6-Oct-2020.) $)
    imasbas $p |- ( ph -> B = ( Base ` U ) ) $=
      ( cfv cnx cop cv co ciun c1 eqid eqidd vp vq vx vy vn vg vh vi cbs cplusg
      csn cmulr ctp csca cvsca cmpt2 cip cun cts ctopn cqtop cple ccom ccnv cds
      cn c1st wceq c2nd caddc cmin cfz wral w3a cxp cmap crab cxrs cgsu crn cxr
      cmpt clt cinf cvv c2 cdc imasval imasvalstr baseid snsstp1 ssun1 wcel wfo
      sstri fvex syl6eqel fornex sylc strfv3 eqcomd ) ADUILZBAXBBMUILBNZMUJLUAF
      UBFUAOZELUBOZELZNZXDXECUJLZPELNUKQQZNZMULLUAFUBFXGXDXECULLZPELNUKQQZNZUMZ
      MUNLCUNLZNMUOLUBFUAUCXOUILZXFUKXDXECUOLZPELUPQZNMUQLUAFUBFXGXDXECUQLZPNUK
      QQZNUMZURZMUSLCUTLZEVAPZNMVBLECVBLZVCEVDVCZNMVELUCUDBBUEVFUFRUGOZLVGLELUC
      OVHUEOZYGLVILELUDOVHUHOZYGLVILELYIRVJPYGLVGLELVHUHRYHRVKPVLPVMVNUGFFVORYH
      VLPVPPVQVRCVELZUFOVCVSPWBVTQWAWCWDUPZNUMZURZDUIWERRWFWGNAUCUDBYKXHXICXLXQ
      XKXRDUFUGUHUEYJEXOXSXTYCXPYFYEYDFGUBUAHIXHSXKSXOSXPSXQSXSSYCSYJSYESAXITAX
      LTAXRTAXTTAYDTAYKTAYFTJKWHBYKXIXOXRXLYMXTYFYDYMSWIWJXCUKZYBYMYNXNYBXCXJXM
      WKXNYAWLWOYBYLWLWOAFWEWMFBEWNBWEWMAFCUILWEICUIWPWQJFBWEEWRWSXBSWTXA $.

    ${
      imasds.e $e |- E = ( dist ` R ) $.
      imasds.d $e |- D = ( dist ` U ) $.
      $( The distance function of an image structure.  (Contributed by Mario
         Carneiro, 23-Feb-2015.)  (Revised by Mario Carneiro, 11-Jul-2015.)
         (Revised by Thierry Arnoux, 16-Jun-2019.)  (Revised by AV,
         6-Oct-2020.) $)
      imasds $p |- ( ph -> D = ( x e. B , y e. B |-> inf ( U_ n e. NN
         ran ( g e. { h e. ( ( V X. V ) ^m ( 1 ... n ) ) |
        ( ( F ` ( 1st ` ( h ` 1 ) ) ) = x /\ ( F ` ( 2nd ` ( h ` n ) ) ) = y /\
         A. i e. ( 1 ... ( n - 1 ) ) ( F ` ( 2nd ` ( h ` i ) ) ) =
           ( F ` ( 1st ` ( h ` ( i + 1 ) ) ) ) ) } |->
         ( RR*s gsum ( E o. g ) ) ) , RR* , < ) ) ) $=
        ( vp vq cn c1 cv cfv c1st wceq c2nd caddc co cmin cfz wral w3a cxp cmap
        crab cxrs ccom cgsu cmpt crn ciun cxr clt cinf cmpt2 cnx cbs cop cplusg
        csn cmulr ctp csca cvsca cip cun cts ctopn cqtop cple ccnv cds cvv eqid
        cdc eqidd imasval imasvalstr dsid snsstp3 ssun2 sstri wcel wfo syl6eqel
        c2 fvex fornex sylc mpt2exga syl2anc strfv3 ) AEBCDDKUDHUEIUFZUGUHUGMUG
        BUFUIKUFZXGUGUJUGMUGCUFUIJUFZXGUGUJUGMUGXIUEUKULXGUGUHUGMUGUIJUEXHUEUMU
        LUNULUOUPINNUQUEXHUNULURULUSUTLHUFVAVBULVCVDVEVFVGVHZVIZVJVKUGDVLVJVMUG
        UBNUCNUBUFZMUGUCUFZMUGZVLZXLXMFVMUGZULMUGVLVNVEVEZVLVJVOUGUBNUCNXOXLXMF
        VOUGZULMUGVLVNVEVEZVLVPVJVQUGFVQUGZVLVJVRUGUCNUBBXTVKUGZXNVNXLXMFVRUGZU
        LMUGVIVEZVLVJVSUGUBNUCNXOXLXMFVSUGZULVLVNVEVEZVLVPVTZVJWAUGFWBUGZMWCULZ
        VLZVJWDUGMFWDUGZVAMWEVAZVLZVJWFUGXKVLZVPZVTZGWFWGUEUEWTWIVLABCDXKXPXQFX
        SYBXRYCGHIJKLMXTYDYEYGYAYKYJYHNOUCUBPQXPWHXRWHXTWHYAWHYBWHYDWHYGWHTYJWH
        AXQWJAXSWJAYCWJAYEWJAYHWJAXKWJAYKWJRSWKDXKXQXTYCXSYOYEYKYHYOWHWLWMYMVNY
        NYOYIYLYMWNYNYFWOWPADWGWQZYPXKWGWQANWGWQNDMWRYPANFVKUGWGQFVKXAWSRNDWGMX
        BXCZYQBCDDXJWGWGXDXEUAXF $.

      $( The distance function is a function on the base set.  (Contributed by
         Mario Carneiro, 20-Aug-2015.)  (Proof shortened by AV, 6-Oct-2020.) $)
      imasdsfn $p |- ( ph -> D Fn ( B X. B ) ) $=
        ( vx c1 cv cfv co vy vn vg vh vi cxp wfn c1st wceq c2nd caddc cmin wral
        cn cfz w3a cmap crab cxrs ccom cgsu cmpt crn ciun cxr cinf cmpt2 xrltso
        clt eqid infex fnmpt2i imasds fneq1d mpbiri ) ACBBUFZUGPUABBUBUNUCQUDRZ
        SUHSGSPRUIUBRZVQSUJSGSUARUIUERZVQSUJSGSVSQUKTVQSUHSGSUIUEQVRQULTUOTUMUP
        UDHHUFQVRUOTUQTURUSFUCRUTVATVBVCVDZVEVIVFZVGZVPUGPUABBWAWBWBVJVEVTVIVHV
        KVLAVPCWBAPUABCDEUCUDUEUBFGHIJKLMNOVMVNVO $.

      imasdsval.x $e |- ( ph -> X e. B ) $.
      imasdsval.y $e |- ( ph -> Y e. B ) $.
      imasdsval.s $e |- S = { h e. ( ( V X. V ) ^m ( 1 ... n ) ) |
        ( ( F ` ( 1st ` ( h ` 1 ) ) ) = X /\ ( F ` ( 2nd ` ( h ` n ) ) ) = Y /\
         A. i e. ( 1 ... ( n - 1 ) ) ( F ` ( 2nd ` ( h ` i ) ) ) =
           ( F ` ( 1st ` ( h ` ( i + 1 ) ) ) ) ) } $.
      $( The distance function of an image structure.  (Contributed by Mario
         Carneiro, 20-Aug-2015.)  (Revised by AV, 6-Oct-2020.) $)
      imasdsval $p |- ( ph -> ( X D Y ) = inf ( U_ n e. NN
        ran ( g e. S |-> ( RR*s gsum ( E o. g ) ) ) , RR* , < ) ) $=
        ( vx vy cn c1 cv cfv c1st wceq c2nd caddc co cmin cfz wral w3a cxp cmap
        crab cxrs ccom cgsu cmpt crn ciun cxr clt cinf imasds wa simplrl eqeq2d
        cvv wcel simplrr 3anbi12d rabbidv syl6eqr mpteq1d rneqd iuneq2dv xrltso
        infeq1d infex a1i ovmpt2d ) AUFUGNOBBJUHGUIHUJZUKULUKLUKZUFUJZUMZJUJZWK
        UKUNUKLUKZUGUJZUMZIUJZWKUKUNUKLUKWSUIUOUPWKUKULUKLUKUMIUIWOUIUQUPURUPUS
        ZUTZHMMVAUIWOURUPVBUPZVCZVDKGUJVEVFUPZVGZVHZVIZVJVKVLJUHGEXDVGZVHZVIZVJ
        VKVLZCVQAUFUGBCDFGHIJKLMPQRSTUAUBVMAWMNUMZWQOUMZVNVNZVJXGXJVKXNJUHXFXIX
        NWOUHVRZVNZXEXHXPGXCEXDXPXCWLNUMZWPOUMZWTUTZHXBVCEXPXAXSHXBXPWNXQWRXRWT
        XPWMNWLAXLXMXOVOVPXPWQOWPAXLXMXOVSVPVTWAUEWBWCWDWEWGUCUDXKVQVRAVJXJVKWF
        WHWIWJ $.

      imasds.u $e |- T = ( E |` ( V X. V ) ) $.
      $( The distance function of an image structure.  (Contributed by Mario
         Carneiro, 20-Aug-2015.)  (Revised by AV, 6-Oct-2020.) $)
      imasdsval2 $p |- ( ph -> ( X D Y ) = inf ( U_ n e. NN
        ran ( g e. S |-> ( RR*s gsum ( T o. g ) ) ) , RR* , < ) ) $=
        ( co cn cxrs cv ccom cgsu cmpt crn ciun cxr clt cinf imasdsval wceq cxp
        wcel cres coeq1i c1 cfz cmap wss cfv c1st c2nd caddc cmin wral w3a crab
        ssrab2 eqsstri sseli elmapi frn cores 4syl syl5eq oveq2d mpteq2ia rneqi
        wf a1i iuneq2i infeq1i syl6eqr ) AOPCUHKUIHEUJLHUKZULZUMUHZUNZUOZUPZUQU
        RUSKUIHEUJFWNULZUMUHZUNZUOZUPZUQURUSABCDEGHIJKLMNOPQRSTUAUBUCUDUEUFUTUQ
        XDWSURKUIXCWRXCWRVAKUKZUIVCXBWQHEXAWPWNEVCZWTWOUJUMXFWTLNNVBZVDZWNULZWO
        FXHWNUGVEXFWNXGVFXEVGUHZVHUHZVCXJXGWNWIWNUOXGVIXIWOVAEXKWNEVFIUKZVJVKVJ
        MVJOVAXEXLVJVLVJMVJPVAJUKZXLVJVLVJMVJXMVFVMUHXLVJVKVJMVJVAJVFXEVFVNUHVG
        UHVOVPZIXKVQXKUFXNIXKVRVSVTWNXGXJWAXJXGWNWBLWNXGWCWDWEWFWGWHWJWKWLWM $.
    $}

    ${
      imasplusg.p $e |- .+ = ( +g ` R ) $.
      imasplusg.a $e |- .+b = ( +g ` U ) $.
      $( The group operation in an image structure.  (Contributed by Mario
         Carneiro, 23-Feb-2015.)  (Revised by Mario Carneiro, 11-Jul-2015.)
         (Revised by Thierry Arnoux, 16-Jun-2019.) $)
      imasplusg $p |- ( ph -> .+b = U_ p e. V U_ q e. V
        { <. <. ( F ` p ) , ( F ` q ) >. , ( F ` ( p .+ q ) ) >. } ) $=
        ( cfv cop cvv vx vy vg vh vi vn cv co csn ciun cnx cbs cplusg cmulr ctp
        csca cvsca cmpt2 cip cun cts ctopn cqtop cple ccom ccnv cds c1 cdc eqid
        c2 eqidd imasds imasval imasvalstr plusgid snsstp2 ssun1 wcel wral fvex
        sstri syl6eqel snex rgenw iunexg sylancl ralrimivw syl2anc strfv3 ) ADK
        HJHKUGZGRJUGZGRZSZWKWLCUHGRSZUIZUJZUJZUKULRBSZUKUMRWRSZUKUNRKHJHWNWKWLE
        UNRZUHGRSUIUJUJZSZUOZUKUPREUPRZSUKUQRJHKUAXEULRZWMUIWKWLEUQRZUHGRURUJZS
        UKUSRKHJHWNWKWLEUSRZUHSUIUJUJZSUOZUTZUKVAREVBRZGVCUHZSUKVDRGEVDRZVEGVFV
        EZSUKVGRFVGRZSUOZUTZFUMTVHVHVKVISAUAUBBXQCWREXBXGXAXHFUCUDUEUFEVGRZGXEX
        IXJXMXFXPXOXNHIJKLMPXAVJXEVJXFVJXGVJXIVJXMVJXTVJZXOVJAWRVLAXBVLAXHVLAXJ
        VLAXNVLAUAUBBXQEFUCUDUEUFXTGHILMNOYAXQVJVMAXPVLNOVNBXQWRXEXHXBXSXJXPXNX
        SVJVOVPWTUIZXLXSYBXDXLWSWTXCVQXDXKVRWBXLXRVRWBAHTVSZWQTVSZKHVTWRTVSAHEU
        LRTMEULWAWCZAYDKHAYCWPTVSZJHVTYDYEYFJHWOWDWEJHWPTTWFWGWHKHWQTTWFWIQWJ
        $.
    $}

    ${
      imasmulr.p $e |- .x. = ( .r ` R ) $.
      imasmulr.t $e |- .xb = ( .r ` U ) $.
      $( The ring multiplication in an image structure.  (Contributed by Mario
         Carneiro, 23-Feb-2015.)  (Revised by Mario Carneiro, 11-Jul-2015.)
         (Revised by Thierry Arnoux, 16-Jun-2019.) $)
      imasmulr $p |- ( ph -> .xb = U_ p e. V U_ q e. V
        { <. <. ( F ` p ) , ( F ` q ) >. , ( F ` ( p .x. q ) ) >. } ) $=
        ( cfv cop eqid vx vy vg vh vi vn cv co csn ciun cnx cbs cplusg ctp csca
        cmulr cvsca cmpt2 cip cun cts ctopn cqtop cple ccom ccnv cds cvv c1 cdc
        c2 imasplusg eqidd imasds imasval imasvalstr mulrid snsstp3 ssun1 sstri
        wcel wral fvex syl6eqel rgenw iunexg sylancl ralrimivw syl2anc strfv3
        snex ) ADKHJHKUGZGRJUGZGRZSZWLWMEUHGRSZUIZUJZUJZUKULRBSZUKUMRFUMRZSZUKU
        PRWSSZUNZUKUORCUORZSUKUQRJHKUAXEULRZWNUIWLWMCUQRZUHGRURUJZSUKUSRKHJHWOW
        LWMCUSRZUHSUIUJUJZSUNZUTZUKVARCVBRZGVCUHZSUKVDRGCVDRZVEGVFVEZSUKVGRFVGR
        ZSUNZUTZFUPVHVIVIVKVJSAUAUBBXQCUMRZXACWSXGEXHFUCUDUEUFCVGRZGXEXIXJXMXFX
        PXOXNHIJKLMXTTZPXETXFTXGTXITXMTYATZXOTABXTXACFGHIJKLMNOYBXATVLAWSVMAXHV
        MAXJVMAXNVMAUAUBBXQCFUCUDUEUFYAGHILMNOYCXQTVNAXPVMNOVOBXQXAXEXHWSXSXJXP
        XNXSTVPVQXCUIZXLXSYDXDXLWTXBXCVRXDXKVSVTXLXRVSVTAHVHWAZWRVHWAZKHWBWSVHW
        AAHCULRVHMCULWCWDZAYFKHAYEWQVHWAZJHWBYFYGYHJHWPWKWEJHWQVHVHWFWGWHKHWRVH
        VHWFWIQWJ $.
    $}

    ${
      imassca.g $e |- G = ( Scalar ` R ) $.
      $( The scalar field of an image structure.  (Contributed by Mario
         Carneiro, 23-Feb-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
      imassca $p |- ( ph -> G = ( Scalar ` U ) ) $=
        ( vq vp csca cfv cnx cop eqid vx vy vg vh vi cbs cplusg cmulr ctp cvsca
        vn cv csn co cmpt2 ciun cip cun cts ctopn cqtop cple ccom cds imasplusg
        ccnv imasmulr eqidd imasds imasval fveq2d cvv wcel wceq fvex eqeltri c1
        c2 cdc imasvalstr scaid snsstp1 ssun2 sstri ssun1 strfv ax-mp syl6reqr
        ) ADPQRUFQBSRUGQDUGQZSRUHQDUHQZSUIZRPQFSZRUJQNGOUAFUFQZNULZEQZUMOULZWNC
        UJQZUNEQUOUPZSZRUQQOGNGWPEQWOSWPWNCUQQZUNSUMUPUPZSZUIZURZRUSQCUTQZEVAUN
        ZSRVBQECVBQZVCEVFVCZSRVDQDVDQZSUIZURZPQZFADXKPAUAUBBXICUGQZWICWJWQCUHQZ
        WRDUCUDUEUKCVDQZEFWTXAXEWMXHXGXFGHNOIJXMTZXNTZMWMTWQTWTTXETXOTZXGTABXMW
        ICDEGHNOIJKLXPWITVEABCWJXNDEGHNOIJKLXQWJTVGAWRVHAXAVHAXFVHAUAUBBXICDUCU
        DUEUKXOEGHIJKLXRXITVIAXHVHKLVJVKFVLVMFXLVNFCPQVLMCPVOVPFXKPVLVQVQVRVSSB
        XIWIFWRWJXKXAXHXFXKTVTWAWLUMZXDXKXSXCXDWLWSXBWBXCWKWCWDXDXJWEWDWFWGWH
        $.

      imasvsca.k $e |- K = ( Base ` G ) $.
      imasvsca.q $e |- .x. = ( .s ` R ) $.
      imasvsca.s $e |- .xb = ( .s ` U ) $.
      $( The scalar multiplication operation of an image structure.
         (Contributed by Mario Carneiro, 23-Feb-2015.)  (Revised by Thierry
         Arnoux, 16-Jun-2019.) $)
      imasvsca $p |- ( ph -> .xb = U_ q e. V ( p e. K ,
           x e. { ( F ` q ) } |-> ( F ` ( p .x. q ) ) ) ) $=
        ( vy vz vw vv vu cv cfv csn co cmpt2 ciun cnx cbs cop cplusg cmulr csca
        ctp cvsca cip cun cts ctopn cqtop cple ccom ccnv cds cvv c1 c2 cdc eqid
        fveq2i eqtri imasplusg imasmulr eqidd imasds imasval imasvalstr snsstp2
        vscaid ssun2 ssun1 sstri wcel wral syl6eqel eqeltri mpt2ex rgenw iunexg
        fvex snex sylancl strfv3 ) AEMKNBJMUHZHUIZUJZNUHZWTFUKHUIZULZUMZUNUOUIC
        UPUNUQUIGUQUIZUPUNURUIGURUIZUPUTZUNUSUIDUSUIZUPZUNVAUIXFUPZUNVBUINKMKXC
        HUIXAUPXCWTDVBUIZUKUPUJUMUMZUPZUTZVCZUNVDUIDVEUIZHVFUKZUPUNVGUIHDVGUIZV
        HHVIVHZUPUNVJUIGVJUIZUPUTZVCZGVAVKVLVLVMVNUPABUCCYBDUQUIZXGDXHFDURUIZXF
        GUDUEUFUGDVJUIZHXJXMXNXRJYAXTXSKLMNOPYEVOZYFVOZXJVOJIUOUIZXJUOUITIXJUOS
        VPVQUAXMVOXRVOYGVOZXTVOACYEXGDGHKLMNOPQRYHXGVOVRACDXHYFGHKLMNOPQRYIXHVO
        VSAXFVTAXNVTAXSVTABUCCYBDGUDUEUFUGYGHKLOPQRYKYBVOWAAYAVTQRWBCYBXGXJXFXH
        YDXNYAXSYDVOWCWEXLUJXPYDXKXLXOWDXPXQYDXPXIWFXQYCWGWHWHAKVKWIXEVKWIZMKWJ
        XFVKWIAKDUOUIVKPDUOWPWKYLMKNBJXBXDJYJVKTIUOWPWLXAWQWMWNMKXEVKVKWOWRUBWS
        $.
    $}

    ${
      imasip.i $e |- ., = ( .i ` R ) $.
      imasip.w $e |- I = ( .i ` U ) $.
      $( The inner product of an image structure.  (Contributed by Thierry
         Arnoux, 16-Jun-2019.) $)
      imasip $p |- ( ph -> I = U_ p e. V U_ q e. V
        { <. <. ( F ` p ) , ( F ` q ) >. , ( p ., q ) >. } ) $=
        ( cfv cop eqid vx vy vz vw vv vu cv co csn ciun cnx cbs cplusg ctp csca
        cmulr cvsca cip cun cts ctopn cqtop cple ccom ccnv cds cvv c1 imasplusg
        c2 imasmulr imasvsca eqidd imasds imasval imasvalstr ipid snsstp3 ssun2
        sstri ssun1 wcel wral fvex syl6eqel snex rgenw iunexg sylancl ralrimivw
        cdc syl2anc strfv3 ) AGKHJHKUGZERJUGZERSWNWOFUHSZUIZUJZUJZUKULRBSUKUMRD
        UMRZSUKUPRDUPRZSUNZUKUORCUORZSZUKUQRDUQRZSZUKURRWSSZUNZUSZUKUTRCVARZEVB
        UHZSUKVCRECVCRZVDEVEVDZSUKVFRDVFRZSUNZUSZDURVGVHVHVJWKSAUAUBBXNCUMRZWTC
        XACUQRZCUPRZXEDUCUDUEUFCVFRZEXCFWSXJXCULRZXMXLXKHIJKLMXQTZXSTZXCTZYATZX
        RTZPXJTXTTZXLTABXQWTCDEHIJKLMNOYBWTTVIABCXAXSDEHIJKLMNOYCXATVKAUABCXEXR
        DEXCYAHIJKLMNOYDYEYFXETVLAWSVMAXKVMAUAUBBXNCDUCUDUEUFXTEHILMNOYGXNTVNAX
        MVMNOVOBXNWTXCXEXAXPWSXMXKXPTVPVQXGUIZXIXPYHXHXIXDXFXGVRXHXBVSVTXIXOWAV
        TAHVGWBZWRVGWBZKHWCWSVGWBAHCULRVGMCULWDWEZAYJKHAYIWQVGWBZJHWCYJYKYLJHWP
        WFWGJHWQVGVGWHWIWJKHWRVGVGWHWLQWM $.
    $}

    ${
      imastset.j $e |- J = ( TopOpen ` R ) $.
      imastset.o $e |- O = ( TopSet ` U ) $.
      $( The topology of an image structure.  (Contributed by Mario Carneiro,
         23-Feb-2015.) $)
      imastset $p |- ( ph -> O = ( J qTop F ) ) $=
        ( vp cfv cnx cop eqid vq vx vy vz vw vv cts cbs cplusg cmulr csca cvsca
        vu ctp cip cv csn ciun cqtop cple ccom ccnv imasplusg imasmulr imasvsca
        co cun cds eqidd imasds imasval fveq2d cvv wcel wceq ovex c1 imasvalstr
        c2 cdc tsetid snsstp1 ssun2 sstri strfv ax-mp 3eqtr4g ) ADUGQRUHQBSRUIQ
        DUIQZSRUJQDUJQZSUNRUKQCUKQZSRULQDULQZSRUOQPHUAHPUPZEQUAUPZEQSWLWMCUOQZV
        FSUQURURZSUNVGZRUGQFEUSVFZSZRUTQECUTQZVAEVBVAZSZRVHQDVHQZSZUNZVGZUGQZGW
        QADXEUGAUBUCBXBCUIQZWHCWICULQZCUJQZWKDUDUEUFUMCVHQZEWJWNWOFWJUHQZWTWSWQ
        HIUAPJKXGTZXITZWJTZXKTZXHTZWNTNXJTZWSTABXGWHCDEHIUAPJKLMXLWHTVCABCWIXID
        EHIUAPJKLMXMWITVDAUBBCWKXHDEWJXKHIUAPJKLMXNXOXPWKTVEAWOVIAWQVIAUBUCBXBC
        DUDUEUFUMXJEHIJKLMXQXBTVJAWTVILMVKVLOWQVMVNWQXFVOFEUSVPWQXEUGVMVQVQVSVT
        SBXBWHWJWKWIXEWOWTWQXETVRWAWRUQXDXEWRXAXCWBXDWPWCWDWEWFWG $.
    $}

    ${
      imasle.n $e |- N = ( le ` R ) $.
      imasle.l $e |- .<_ = ( le ` U ) $.
      $( The ordering of an image structure.  (Contributed by Mario Carneiro,
         23-Feb-2015.) $)
      imasle $p |- ( ph -> .<_ = ( ( F o. N ) o. `' F ) ) $=
        ( cnx cfv cop cvv eqid vp vq vx vy vz vw vv vu ccom ccnv cbs cplusg ctp
        cmulr csca cvsca cip cv co csn ciun cun cts cple cds c1 ctopn imasplusg
        c2 cdc imasmulr imasvsca eqidd imastset imasds imasval imasvalstr pleid
        snsstp2 ssun2 sstri wcel wf wfo fof syl fvex syl6eqel fex syl2anc coexg
        eqeltri sylancl cnvexg strfv3 ) AFEGUIZEUJZUIZPUKQBRPULQDULQZRPUNQDUNQZ
        RUMPUOQCUOQZRPUPQDUPQZRPUQQUAHUBHUAURZEQUBURZEQRXCXDCUQQZUSRUTVAVAZRUMV
        BZPVCQDVCQZRZPVDQWRRZPVEQDVEQZRZUMZVBZDVDSVFVFVIVJRAUCUDBXKCULQZWSCWTCU
        PQZCUNQZXBDUEUFUGUHCVEQZEXAXEXFCVGQZXAUKQZWRGXHHIUBUAJKXOTZXQTZXATZXTTZ
        XPTZXETXSTZXRTZNABXOWSCDEHIUBUAJKLMYAWSTVHABCWTXQDEHIUBUAJKLMYBWTTVKAUC
        BCXBXPDEXAXTHIUBUAJKLMYCYDYEXBTVLAXFVMABCDEXSXHHIJKLMYFXHTVNAUCUDBXKCDU
        EUFUGUHXREHIJKLMYGXKTVOAWRVMLMVPBXKWSXAXBWTXNXFWRXHXNTVQVRXJUTXMXNXIXJX
        LVSXMXGVTWAAWPSWBZWQSWBZWRSWBAESWBZGSWBYHAHBEWCZHSWBYJAHBEWDYKLHBEWEWFA
        HCUKQSKCUKWGWHHBSEWIWJZGCVDQSNCVDWGWLEGSSWKWMAYJYIYLESWNWFWPWQSSWKWJOWO
        $.
    $}
  $}

  ${
    f1ocpbl.f $e |- ( ph -> F : V -1-1-onto-> X ) $.
    $( Lemma for ~ f1ocpbl .  (Contributed by Mario Carneiro, 24-Feb-2015.) $)
    f1ocpbllem $p |- ( ( ph /\ ( A e. V /\ B e. V ) /\ ( C e. V /\ D e. V ) )
      -> ( ( ( F ` A ) = ( F ` C ) /\ ( F ` B ) = ( F ` D ) )
        <-> ( A = C /\ B = D ) ) ) $=
      ( wcel wa w3a cfv wceq wf1 wb wf1o f1of1 f1fveq syl12anc 3ad2ant1 anbi12d
      syl simp2l simp3l simp2r simp3r ) ABGJZCGJZKZDGJZEGJZKZLZBFMDFMNZBDNZCFME
      FMNZCENZUNGHFOZUHUKUOUPPAUJUSUMAGHFQUSIGHFRUCUAZAUHUIUMUDAUJUKULUEGHBDFST
      UNUSUIULUQURPUTAUHUIUMUFAUJUKULUGGHCEFSTUB $.

    $( An injection is compatible with any operations on the base set.
       (Contributed by Mario Carneiro, 24-Feb-2015.) $)
    f1ocpbl $p |- ( ( ph /\ ( A e. V /\ B e. V ) /\ ( C e. V /\ D e. V ) ) ->
      ( ( ( F ` A ) = ( F ` C ) /\ ( F ` B ) = ( F ` D ) ) ->
        ( F ` ( A .+ B ) ) = ( F ` ( C .+ D ) ) ) ) $=
      ( wcel wa w3a cfv wceq co f1ocpbllem oveq12 fveq2d syl6bi ) ABHKCHKLDHKEH
      KLMBGNDGNOCGNEGNOLBDOCEOLZBCFPZGNDEFPZGNOABCDEGHIJQUAUBUCGBDCEFRST $.

    $( An injection is compatible with any operations on the base set.
       (Contributed by Mario Carneiro, 15-Aug-2015.) $)
    f1ovscpbl $p |- ( ( ph /\ ( A e. K /\ B e. V /\ C e. V ) ) ->
      ( ( F ` B ) = ( F ` C ) -> ( F ` ( A .+ B ) ) = ( F ` ( A .+ C ) ) ) ) $=
      ( wcel w3a wa cfv wceq co wf1 wb wf1o f1of1 adantr simpr2 simpr3 syl12anc
      syl f1fveq oveq2 fveq2d syl6bi ) ABGKZCHKZDHKZLZMZCFNDFNOZCDOZBCEPZFNBDEP
      ZFNOUNHIFQZUKULUOUPRAUSUMAHIFSUSJHIFTUEUAAUJUKULUBAUJUKULUCHICDFUFUDUPUQU
      RFCDBEUGUHUI $.

    $( An injection is compatible with any relations on the base set.
       (Contributed by Mario Carneiro, 24-Feb-2015.) $)
    f1olecpbl $p |- ( ( ph /\ ( A e. V /\ B e. V ) /\ ( C e. V /\ D e. V ) ) ->
      ( ( ( F ` A ) = ( F ` C ) /\ ( F ` B ) = ( F ` D ) ) ->
        ( A N B <-> C N D ) ) ) $=
      ( wcel wa w3a cfv wceq wbr wb f1ocpbllem breq12 syl6bi ) ABHKCHKLDHKEHKLM
      BFNDFNOCFNEFNOLBDOCEOLBCGPDEGPQABCDEFHIJRBDCEGST $.
  $}

  ${
    $d p q B $.  $d p q R $.  $d a b p q w y z V $.  $d p q w .x. $.  $d p X $.
    $d a b p q w x y z F $.  $d a b p q w ph $.  $d a b p q w x y z .xb $.
    $d p q Y $.
    imasaddf.f $e |- ( ph -> F : V -onto-> B ) $.
    imasaddf.e $e |- ( ( ph /\ ( a e. V /\ b e. V ) /\ ( p e. V /\ q e. V ) )
      -> ( ( ( F ` a ) = ( F ` p ) /\ ( F ` b ) = ( F ` q ) )
        -> ( F ` ( a .x. b ) ) = ( F ` ( p .x. q ) ) ) ) $.
    ${
      imasaddflem.a $e |- ( ph -> .xb = U_ p e. V U_ q e. V
          { <. <. ( F ` p ) , ( F ` q ) >. , ( F ` ( p .x. q ) ) >. } ) $.
      $( The image structure operation is a function if the original operation
         is compatible with the function.  (Contributed by Mario Carneiro,
         23-Feb-2015.) $)
      imasaddfnlem $p |- ( ph -> .xb Fn ( B X. B ) ) $=
        ( vw vz wceq wral wss wcel syl vx wfun cdm cxp wfn wrel wbr wmo cfv cop
        vy cv co csn ciun opex relsnop rgenw reliun mpbir releqd mpbiri crn cvv
        fvex wa wfo fof ffvelrn anim12dan sylan opelxpi sylancl snssd ralrimiva
        wf anassrs iunss sylibr eqsstrd dmss c0 wne dmxp ax-mp syl6sseq sqxpeqd
        vn0 forn sseqtr4d wi wal wrex eleq2d adantr df-br rexbii bitr2i 3bitr4g
        eliun w3a elsn vex opth syl5bi eqeq2 biimprd syl6 impd 3expa rexlimdvva
        sylbid alrimiv mo2icl ralrimivva fofn opeq2 breq1d mobidv ralrn ralbidv
        mpbird opeq1 breq1 ralxp ssralv sylc dffun7 sylanbrc eqimss2 sylib snss
        wb opeldm sylbir ralimi sylbi eleq1d eleq1 dfss3 eqsstr3d eqssd df-fn )
        ACUBZCUCZBBUDZPCUUFUEACUFZUAULZNULZCUGZNUHZUAUUEQZUUDAUUGHFGFHULZEUIZGU
        LZEUIZUJZUUMUUODUMZEUIZUJZUNZUOZUOZUFZUVDUVBUFZHFQUVEHFUVEUVAUFZGFQUVFG
        FUUQUUSUUNUUPUPZUUREVEZUQURGFUVAUSUTURHFUVBUSUTACUVCMVAVBAUUEEVCZUVIUDZ
        RUUKUAUVJQZUULAUUEUUFUVJAUUEUUFVDUDZUCZUUFACUVLRUUEUVMRACUVCUVLMAUVBUVL
        RZHFQUVCUVLRAUVNHFAUUMFSZVFZUVAUVLRZGFQUVNUVPUVQGFAUVOUUOFSZUVQAUVOUVRV
        FZVFZUUTUVLUVTUUQUUFSZUUSVDSUUTUVLSUVTUUNBSZUUPBSZVFZUWAAFBEVPZUVSUWDAF
        BEVGZUWEKFBEVHTUWEUVOUWBUVRUWCFBUUMEVIFBUUOEVIVJVKUUNUUPBBVLTUVHUUQUUSU
        UFVDVLVMVNVQVOGFUVAUVLVRVSVOHFUVBUVLVRVSVTCUVLWATVDWBWCUVMUUFPWHUUFVDWD
        WEWFZAUVIBAUWFUVIBPKFBEWITWGZWJAUKULZOULZUJZUUICUGZNUHZOUVIQZUKUVIQZUVK
        AUWOIULZEUIZUWJUJZUUICUGZNUHZOUVIQZIFQZAUXBUWQJULZEUIZUJZUUICUGZNUHZJFQ
        ZIFQAUXGIJFFAUWPFSUXCFSVFZVFZUXFUUIUWPUXCDUMEUIZPZWKZNWLUXGUXJUXMNUXJUX
        FUXEUUIUJZUVASZGFWMZHFWMZUXLUXJUXNCSZUXNUVCSZUXFUXQAUXRUXSYMUXIACUVCUXN
        MWNWOUXEUUICWPUXSUXNUVBSZHFWMUXQHUXNFUVBWTUXTUXPHFGUXNFUVAWTWQWRWSUXJUX
        OUXLHGFFAUXIUVSUXOUXLWKUXOUXNUUTPZAUXIUVSXAZUXLUXNUUTUXEUUIUPXBUYAUXEUU
        QPZUUIUUSPZVFUYBUXLUXEUUIUUQUUSUWQUXDUPNXCXDUYBUYCUYDUXLUYBUYCUXKUUSPZU
        YDUXLWKUYCUWQUUNPUXDUUPPVFUYBUYEUWQUXDUUNUUPUWPEVEUXCEVEXDLXEUYEUXLUYDU
        XKUUSUUIXFXGXHXIXEXEXJXKXLXMUXFNUXKXNTXOAUXAUXHIFAEFUEZUXAUXHYMAUWFUYFK
        FBEXPTZUWTUXGOJFEUWJUXDPZUWSUXFNUYHUWRUXEUUICUWJUXDUWQXQXRXSXTTYAYBAUYF
        UWOUXBYMUYGUWNUXAUKIFEUWIUWQPZUWMUWTOUVIUYIUWLUWSNUYIUWKUWRUUICUWIUWQUW
        JYCXRXSYAXTTYBUUKUWMUAUKOUVIUVIUUHUWKPUUJUWLNUUHUWKUUICYDXSYEVSUUKUAUUE
        UVJYFYGUANCYHYIAUUEUUFUWGAUUFUVJUUEUWHAUUHUUESZUAUVJQZUVJUUERAUWKUUESZO
        UVIQZUKUVIQZUYKAUYNUUNUWJUJZUUESZOUVIQZHFQZAUYRUUQUUESZGFQZHFQZAUVBCRZH
        FQZVUAAUVCCRZVUCACUVCPVUDMUVCCYJTHFUVBCVRYKVUBUYTHFVUBUVACRZGFQUYTGFUVA
        CVRVUEUYSGFVUEUUTCSUYSUUTCUUQUUSUPYLUUQUUSCUVGUVHYNYOYPYQYPTAUYQUYTHFAU
        YFUYQUYTYMUYGUYPUYSOGFEUWJUUPPUYOUUQUUEUWJUUPUUNXQYRXTTYAYBAUYFUYNUYRYM
        UYGUYMUYQUKHFEUWIUUNPZUYLUYPOUVIVUFUWKUYOUUEUWIUUNUWJYCYRYAXTTYBUYJUYLU
        AUKOUVIUVIUUHUWKUUEYSYEVSUAUVJUUEYTVSUUAUUBCUUFUUCYI $.

      $( The operation of an image structure is defined to distribute over the
         mapping function.  (Contributed by Mario Carneiro, 23-Feb-2015.) $)
      imasaddvallem $p |- ( ( ph /\ X e. V /\ Y e. V ) ->
        ( ( F ` X ) .xb ( F ` Y ) ) = ( F ` ( X .x. Y ) ) ) $=
        ( cfv co cop wceq wss wcel w3a df-ov wfun cxp wfn imasaddfnlem 3ad2ant1
        fnfun syl csn cv ciun fveq2 opeq1d oveq1 opeq12d sneqd ssiun2s 3ad2ant2
        fveq2d wral opeq2d oveq2 ralrimivw ss2iun 3ad2ant3 sseqtr4d opex sylibr
        sstrd snss funopfv sylc syl5eq ) AGFUAZHFUAZUBZGEPZHEPZCQVSVTRZCPZGHDQZ
        EPZVSVTCUCVRCUDZWAWDRZCUAZWBWDSAVPWEVQACBBUEZUFWEABCDEFIJKLMNOUGWHCUIUJ
        UHVRWFUKZCTWGVRWIJFIFJULZEPZIULZEPZRZWJWLDQZEPZRZUKZUMZUMZCVRWIJFWKVTRZ
        WJHDQZEPZRZUKZUMZWTVPAWIXFTVQJFXEGWIWJGSZXDWFXGXAWAXCWDXGWKVSVTWJGEUNUO
        XGXBWCEWJGHDUPVAUQURUSUTVQAXFWTTZVPVQXEWSTZJFVBXHVQXIJFIFWRHXEWLHSZWQXD
        XJWNXAWPXCXJWMVTWKWLHEUNVCXJWOXBEWLHWJDVDVAUQURUSVEJFXEWSVFUJVGVKAVPCWT
        SVQOUHVHWFCWAWDVIVLVJWAWDCVMVNVO $.

      imasaddflem.c $e |- ( ( ph /\ ( p e. V /\ q e. V ) ) ->
        ( p .x. q ) e. V ) $.
      $( The image set operations are closed if the original operation is.
         (Contributed by Mario Carneiro, 23-Feb-2015.) $)
      imasaddflem $p |- ( ph -> .xb : ( B X. B ) --> B ) $=
        ( cxp wss cfv wcel wa ffvelrn wfn wf imasaddfnlem cop csn ciun wral wfo
        cv fof syl anim12dan opelxpi sylan syldan syl2anc snssd ralrimiva iunss
        co anassrs sylibr eqsstrd dff2 sylanbrc ) ACBBOZUACVFBOZPVFBCUBABCDEFGH
        IJKLMUCACHFGFHUIZEQZGUIZEQZUDZVHVJDUTZEQZUDZUEZUFZUFZVGMAVQVGPZHFUGVRVG
        PAVSHFAVHFRZSZVPVGPZGFUGVSWAWBGFAVTVJFRZWBAVTWCSZSZVOVGWEVLVFRZVNBRZVOV
        GRAFBEUBZWDWFAFBEUHWHKFBEUJUKZWHWDSVIBRZVKBRZSWFWHVTWJWCWKFBVHETFBVJETU
        LVIVKBBUMUKUNAWDVMFRZWGNAWHWLWGWIFBVMETUNUOVLVNVFBUMUPUQVAURGFVPVGUSVBU
        RHFVQVGUSVBVCVFBCVDVE $.
    $}

    imasaddf.u $e |- ( ph -> U = ( F "s R ) ) $.
    imasaddf.v $e |- ( ph -> V = ( Base ` R ) ) $.
    imasaddf.r $e |- ( ph -> R e. Z ) $.
    ${
      imasaddf.p $e |- .x. = ( +g ` R ) $.
      imasaddf.a $e |- .xb = ( +g ` U ) $.
      $( The image structure's group operation is a function.  (Contributed by
         Mario Carneiro, 23-Feb-2015.)  (Revised by Mario Carneiro,
         10-Jul-2015.) $)
      imasaddfn $p |- ( ph -> .xb Fn ( B X. B ) ) $=
        ( imasplusg imasaddfnlem ) ABDEGHJKLMNOABEDCFGHIJKPQNRSTUAUB $.

      $( The value of an image structure's group operation.  (Contributed by
         Mario Carneiro, 23-Feb-2015.) $)
      imasaddval $p |- ( ( ph /\ X e. V /\ Y e. V ) ->
        ( ( F ` X ) .xb ( F ` Y ) ) = ( F ` ( X .x. Y ) ) ) $=
        ( imasplusg imasaddvallem ) ABDEGHIJLMNOPQABEDCFGHKLMRSPTUAUBUCUD $.

      imasaddf.c $e |- ( ( ph /\ ( p e. V /\ q e. V ) ) ->
        ( p .x. q ) e. V ) $.
      $( The image structure's group operation is closed in the base set.
         (Contributed by Mario Carneiro, 23-Feb-2015.) $)
      imasaddf $p |- ( ph -> .xb : ( B X. B ) --> B ) $=
        ( imasplusg imasaddflem ) ABDEGHJKLMNOABEDCFGHIJKPQNRSTUBUAUC $.
    $}

    ${
      imasmulf.p $e |- .x. = ( .r ` R ) $.
      imasmulf.a $e |- .xb = ( .r ` U ) $.
      $( The image structure's ring multiplication is a function.  (Contributed
         by Mario Carneiro, 23-Feb-2015.) $)
      imasmulfn $p |- ( ph -> .xb Fn ( B X. B ) ) $=
        ( imasmulr imasaddfnlem ) ABDEGHJKLMNOABCDEFGHIJKPQNRSTUAUB $.

      $( The value of an image structure's ring multiplication.  (Contributed
         by Mario Carneiro, 23-Feb-2015.) $)
      imasmulval $p |- ( ( ph /\ X e. V /\ Y e. V ) ->
        ( ( F ` X ) .xb ( F ` Y ) ) = ( F ` ( X .x. Y ) ) ) $=
        ( imasmulr imasaddvallem ) ABDEGHIJLMNOPQABCDEFGHKLMRSPTUAUBUCUD $.

      imasmulf.c $e |- ( ( ph /\ ( p e. V /\ q e. V ) ) ->
        ( p .x. q ) e. V ) $.
      $( The image structure's ring multiplication is closed in the base set.
         (Contributed by Mario Carneiro, 23-Feb-2015.) $)
      imasmulf $p |- ( ph -> .xb : ( B X. B ) --> B ) $=
        ( imasmulr imasaddflem ) ABDEGHJKLMNOABCDEFGHIJKPQNRSTUBUAUC $.
    $}
  $}

  ${
    $d a p q w x y z F $.  $d a p q w x y z K $.  $d a p q w x ph $.  $d x U $.
    $d p q x B $.  $d p q x R $.  $d p q w x y z .x. $.  $d a p q w x y .xb $.
    $d a p q w x y V $.  $d p x X $.  $d p q x Y $.
    imasvscaf.u $e |- ( ph -> U = ( F "s R ) ) $.
    imasvscaf.v $e |- ( ph -> V = ( Base ` R ) ) $.
    imasvscaf.f $e |- ( ph -> F : V -onto-> B ) $.
    imasvscaf.r $e |- ( ph -> R e. Z ) $.
    imasvscaf.g $e |- G = ( Scalar ` R ) $.
    imasvscaf.k $e |- K = ( Base ` G ) $.
    imasvscaf.q $e |- .x. = ( .s ` R ) $.
    imasvscaf.s $e |- .xb = ( .s ` U ) $.
    imasvscaf.e $e |- ( ( ph /\ ( p e. K /\ a e. V /\ q e. V ) ) ->
    ( ( F ` a ) = ( F ` q ) -> ( F ` ( p .x. a ) ) = ( F ` ( p .x. q ) ) ) ) $.
    $( The image structure's scalar multiplication is a function.  (Contributed
       by Mario Carneiro, 24-Feb-2015.) $)
    imasvscafn $p |- ( ph -> .xb Fn ( K X. B ) ) $=
      ( vx vw vy vz wfun cdm cxp wceq wfn wrel cv wbr wmo wral cfv csn co cmpt2
      ciun eqid fvex fnmpt2i fnrel ax-mp rgenw reliun mpbir imasvsca releqd crn
      mpbiri wss cvv wcel wa dffn2 mpbi fssxp wfo fof syl ffvelrnda snssd xpss2
      wf xpss1 3syl syl5ss ralrimiva iunss sylibr eqsstrd dmss wne vn0 syl6sseq
      c0 dmxp forn xpeq2d sseqtr4d cop wi wal df-br wb eleq2d adantr wrex eliun
      w3a df-3an mpt2fun funopfv df-ov opex opeldm dmmpt2 syl6eleq opelxp sylib
      vex weq oveq1 fveq2d eqidd equcoms eqcomd syl5bi ralrimivva opeq2 ralbidv
      mobidv ralrn mpbird ralxp sylanbrc ovmpt2 syl5eqr eqtr3d adantl elsni imp
      cbvmpt2v simprd sylan2 eqtr4d ex sylan2br anassrs rexlimdva sylbid mo2icl
      alrimiv fofn breq1d ssralv sylc dffun7 eqimss2 r19.21bi adantrl syl5eqssr
      breq1 simprl snid opelxpi sylancl sseldd eleq1 dfss3 eqsstr3d eqssd df-fn
      eleq1d ) ADUHZDUIZIBUJZUKDUWAULADUMZUDUNZUEUNZDUOZUEUPZUDUVTUQZUVSAUWBLJM
      UDILUNZGURZUSZMUNZUWHEUTZGURZVAZVBZUMZUWPUWNUMZLJUQUWQLJUWNIUWJUJZULZUWQM
      UDIUWJUWMUWNUWNVCZUWLGVDZVEZUWRUWNVFVGVHLJUWNVIVJADUWOAUDBCDEFGHIJKLMOPQR
      STUAUBVKZVLVNAUVTIGVMZUJZVOUWFUDUXEUQZUWGAUVTUWAUXEAUVTUWAVPUJZUIZUWAADUX
      GVOUVTUXHVOADUWOUXGUXCAUWNUXGVOZLJUQUWOUXGVOAUXILJAUWHJVQZVRZUWNUWRVPUJZU
      XGUWRVPUWNWHZUWNUXLVOUWSUXMUXBUWRUWNVSVTUWRVPUWNWAVGUXKUWJBVOUWRUWAVOUXLU
      XGVOUXKUWIBAJBUWHGAJBGWBZJBGWHQJBGWCWDWEWFUWJBIWGUWRUWAVPWIWJWKWLLJUWNUXG
      WMWNWODUXGWPWDVPWTWQUXHUWAUKWRUWAVPXAVGWSZAUXDBIAUXNUXDBUKQJBGXBWDXCZXDAU
      WKUFUNZXEZUWDDUOZUEUPZUFUXDUQZMIUQZUXFAUYBUWKNUNZGURZXEZUWDDUOZUEUPZNJUQZ
      MIUQAUYGMNIJAUWKIVQZUYCJVQZVRZVRZUYFUWDUWKUYCEUTGURZUKZXFZUEXGUYGUYLUYOUE
      UYFUYEUWDXEZDVQZUYLUYNUYEUWDDXHUYLUYQUYPUWOVQZUYNAUYQUYRXIUYKADUWOUYPUXCX
      JXKUYRUYPUWNVQZLJXLUYLUYNLUYPJUWNXMUYLUYSUYNLJAUYKUXJUYSUYNXFZUYKUXJVRAUY
      IUYJUXJXNZUYTUYIUYJUXJXOAVUAVRZUYSUYNVUBUYSVRUWDUWMUYMUYSUWDUWMUKVUBUYSUY
      EUWNURZUWDUWMUWNUHUYSVUCUWDUKXFMUDIUWJUWMUWNUWTXPUYEUWDUWNXQVGUYSVUCUWKUY
      DUWNUTZUWMUWKUYDUWNXRUYSUYIUYDUWJVQZVRZVUDUWMUKUYSUYEUWRVQVUFUYSUYEUWNUIZ
      UWRUYEUWDUWNUWKUYDXSUEYEXTMUDIUWJUWMUWNUWTUXAYAZYBUWKUYDIUWJYCYDZUGUFUWKU
      YDIUWJUGUNZUWHEUTZGURZUWMUWNUWMUGMYFVUKUWLGVUJUWKUWHEYGYHZUXQUYDUKZUWMYIM
      UDUGUFIUWJUWMVULVULMUGYFVULUWMVULUWMUKUGMVUMYJYKUDUFYFVULYIUUGUXAUUAWDUUB
      UUCUUDUYSVUBUYDUWIUKZUYMUWMUKZUYSVUEVUOUYSUYIVUEVUIUUHUYDUWIUUEWDVUBVUOVU
      PUCUUFUUIUUJUUKUULUUMUUNYLUUOYLUUQUYFUEUYMUUPWDYMAUYAUYHMIAUXNGJULZUYAUYH
      XIQJBGUURZUXTUYGUFNJGVUNUXSUYFUEVUNUXRUYEUWDDUXQUYDUWKYNUUSYPYQWJYOYRUWFU
      XTUDMUFIUXDUWCUXRUKUWEUXSUEUWCUXRUWDDUVGYPYSWNUWFUDUVTUXEUUTUVAUDUEDUVBYT
      AUVTUWAUXOAUWAUXEUVTUXPAUWCUVTVQZUDUXEUQZUXEUVTVOAUXRUVTVQZUFUXDUQZMIUQZV
      UTAVVCUWKUWIXEZUVTVQZLJUQZMIUQAVVEMLIJAUYIUXJVRVRZUWRUVTVVDVVGUWRVUGUVTVU
      HVVGUWNDVOZVUGUVTVOAUXJVVHUYIAVVHLJAUWODVOZVVHLJUQADUWOUKVVIUXCUWODUVCWDL
      JUWNDWMYDUVDUVEUWNDWPWDUVFVVGUYIUWIUWJVQVVDUWRVQAUYIUXJUVHUWIUWHGVDUVIUWK
      UWIIUWJUVJUVKUVLYMAVVBVVFMIAUXNVUQVVBVVFXIQVURVVAVVEUFLJGUXQUWIUKUXRVVDUV
      TUXQUWIUWKYNUVRYQWJYOYRVUSVVAUDMUFIUXDUWCUXRUVTUVMYSWNUDUXEUVTUVNWNUVOUVP
      DUWAUVQYT $.

    $( The value of an image structure's scalar multiplication.  (Contributed
       by Mario Carneiro, 24-Feb-2015.) $)
    imasvscaval $p |- ( ( ph /\ X e. K /\ Y e. V ) ->
      ( X .xb ( F ` Y ) ) = ( F ` ( X .x. Y ) ) ) $=
      ( vx wcel w3a cfv co csn cmpt2 cop wfun wss cdm wceq cxp imasvscafn fnfun
      wfn syl 3ad2ant1 ciun eqidd fveq2 sneqd oveq2 fveq2d mpt2eq123dv 3ad2ant3
      ssiun2s imasvsca sseqtr4d fvex snid opelxpi sylancl eqid dmmpt2 syl6eleqr
      cv simp2 funssfv syl3anc df-ov 3eqtr4g oveq1 ovmpt2 eqtrd ) AKIUGZLJUGZUH
      ZKLGUIZDUJZKWNOUFIWNUKZOWBZLEUJZGUIZULZUJZKLEUJZGUIZWMKWNUMZDUIZXDWTUIZWO
      XAWMDUNZWTDUOXDWTUPZUGXEXFUQAWKXGWLADIBURZVAXGABCDEFGHIJMNOPQRSTUAUBUCUDU
      EUSXIDUTVBVCWMWTNJOUFINWBZGUIZUKZWQXJEUJZGUIZULZVDZDWLAWTXPUOWKNJXOLWTXJL
      UQZOUFIXLXNIWPWSXQIVEXQXKWNXJLGVFVGXQXMWRGXJLWQEVHVIVJVLVKAWKDXPUQWLAUFBC
      DEFGHIJMNOQRSTUAUBUCUDVMVCVNWMXDIWPURZXHWMWKWNWPUGZXDXRUGAWKWLWCZWNLGVOVP
      ZKWNIWPVQVROUFIWPWSWTWTVSZWRGVOVTWAXDDWTWDWEKWNDWFKWNWTWFWGWMWKXSXAXCUQXT
      YAOUFKWNIWPWSXCWTXCWQKUQWRXBGWQKLEWHVIUFWBWNUQXCVEYBXBGVOWIVRWJ $.

    imasvscaf.c $e |- ( ( ph /\ ( p e. K /\ q e. V ) ) -> ( p .x. q ) e. V ) $.
    $( The image structure's scalar multiplication is closed in the base set.
       (Contributed by Mario Carneiro, 24-Feb-2015.) $)
    imasvscaf $p |- ( ph -> .xb : ( K X. B ) --> B ) $=
      ( vx cxp wfn wss wf imasvscafn cv cfv co cmpt2 ciun imasvsca wral wcel wa
      csn wfo fof syl ffvelrnda syldan ralrimivw anass1rs ralrimiva fmpt2 sylib
      eqid fssxp snssd xpss2 xpss1 3syl sstrd iunss sylibr eqsstrd sylanbrc
      dff2 ) ADIBUFZUGDWCBUFZUHWCBDUIABCDEFGHIJKLMNOPQRSTUAUBUCUJADLJMUEILUKZGU
      LZUTZMUKZWEEUMZGULZUNZUOZWDAUEBCDEFGHIJKLMOPQRSTUAUBUPAWKWDUHZLJUQWLWDUHA
      WMLJAWEJURZUSZWKIWGUFZBUFZWDWOWPBWKUIZWKWQUHWOWJBURZUEWGUQZMIUQWRWOWTMIAW
      HIURZWNWTAXAWNUSZUSWSUEWGAXBWIJURWSUDAJBWIGAJBGVAJBGUIQJBGVBVCZVDVEVFVGVH
      MUEIWGWJBWKWKVKVIVJWPBWKVLVCWOWGBUHWPWCUHWQWDUHWOWFBAJBWEGXCVDVMWGBIVNWPW
      CBVOVPVQVHLJWKWDVRVSVTWCBDWBWA $.
  $}

  ${
    imasless.u $e |- ( ph -> U = ( F "s R ) ) $.
    imasless.v $e |- ( ph -> V = ( Base ` R ) ) $.
    imasless.f $e |- ( ph -> F : V -onto-> B ) $.
    imasless.r $e |- ( ph -> R e. Z ) $.
    imasless.l $e |- .<_ = ( le ` U ) $.
    $( The order relation defined on an image set is a subset of the base set.
       (Contributed by Mario Carneiro, 24-Feb-2015.) $)
    imasless $p |- ( ph -> .<_ C_ ( B X. B ) ) $=
      ( ccom ccnv cxp cdm crn wss cima cple cfv eqid wrel relco relssdmrn ax-mp
      imasle dmco wceq wfo wf fof frel 3syl sylib imaeq1d imassrn forn syl5sseq
      dfrel2 syl eqsstrd syl5eqss rncoss rnco2 syl5ss xpss12 syl2anc ) AFECUAUB
      ZNZEOZNZBBPZABCDEFVJGHIJKLVJUCMUHAVMVMQZVMRZPZVNVMUDVMVQSVKVLUEVMUFUGAVOB
      SVPBSVQVNSAVOVLOZVKQZTZBVKVLUIAVTEVSTZBAVREVSAEUDZVREUJAGBEUKZGBEULWBKGBE
      UMGBEUNUOEVAUPUQAERZWABEVSURAWCWDBUJKGBEUSVBZUTVCVDAVPVKRZBVKVLVEAWFEVJRZ
      TZBEVJVFAWDWHBEWGURWEUTVDVGVOBVPBVHVIVGVC $.

    $d c d .<_ $.  $d a b c d F $.  $d a b c d N $.  $d a b c d V $.  $d d Y $.
    $d a b c d ph $.  $d c d X $.
    imasleval.n $e |- N = ( le ` R ) $.
    imasleval.e $e |- ( ( ph /\ ( a e. V /\ b e. V ) /\ ( c e. V /\ d e. V ) )
      -> ( ( ( F ` a ) = ( F ` c ) /\ ( F ` b ) = ( F ` d ) )
        -> ( a N b <-> c N d ) ) ) $.
    $( The value of the image structure's ordering when the order is compatible
       with the mapping function.  (Contributed by Mario Carneiro,
       24-Feb-2015.) $)
    imasleval $p |- ( ( ph /\ X e. V /\ Y e. V ) ->
      ( ( F ` X ) .<_ ( F ` Y ) <-> X N Y ) ) $=
      ( wcel cfv wbr wb wa cv wi fveq2 breq1d breq1 bibi12d imbi2d breq2d breq2
      wceq ccom ccnv wrex cdm wfn wfo fofn syl adantr fndm rexeqdv sylan anbi1d
      fnbrfvb wex ancom vex breldm pm4.71ri bitri exbii df-rex 3bitr4i ad2antrr
      fvex brco 3expa an32s anassrs impl pm5.32da bitr3d rexbidva syl6bb simprr
      r19.41v eqeq1d rspcev sylancl biantrurd 3bitr4d syl5bb bitrd brcnv anbi1i
      eqid 3bitr4ri 3bitr3g imasle breqd simprl expcom vtocl2ga com12 3impib )
      AIHUCZJHUCZIEUDZJEUDZFUEZIJGUEZUFZXMXNUGAXSANUHZEUDZOUHZEUDZFUEZXTYBGUEZU
      FZUIAXOYCFUEZIYBGUEZUFZUIAXSUINOIJHHXTIUQZYFYIAYJYDYGYEYHYJYAXOYCFXTIEUJU
      KXTIYBGULUMUNYBJUQZYIXSAYKYGXQYHXRYKYCXPXOFYBJEUJUOYBJIGUPUMUNAXTHUCZYBHU
      CZUGZYFAYNUGZYAYCEGURZEUSZURZUEZLUHZEUDZYAUQZLHUTZYEUGZYDYEYOYTYAEUEZYTYC
      YPUEZUGZLEVAZUTZUUBYEUGZLHUTZYSUUDYOUUIUUGLHUTUUKYOUUGLUUHHYOEHVBZUUHHUQA
      UULYNAHBEVCUULRHBEVDVEVFZHEVGVEZVHYOUUGUUJLHYOYTHUCZUGZUUBUUFUGUUGUUJUUPU
      UBUUEUUFYOUULUUOUUBUUEUFUUMHYTYAEVKVIVJUUPUUBUUFYEUUFMUHZYCEUEZYTUUQGUEZU
      GZMUUHUTZUUPUUBUGZYEUUSUURUGZMVLUUQUUHUCZUUTUGZMVLUUFUVAUVCUVEMUVCUUTUVEU
      USUURVMUUTUVDUURUVDUUSUUQYCEMVNYBEWBZVOVFVPVQVRMYTYCEGLVNZUVFWCUUTMUUHVSV
      TUVBUUTMHUTZUUQEUDZYCUQZMHUTZYEUGZUVAYEUVBUVHUVJYEUGZMHUTUVLUVBUUTUVMMHUV
      BUUQHUCZUGZUVJUUSUGZUUTUVMUVOUVJUURUUSUVBUULUVNUVJUURUFYOUULUUOUUBUUMWAHU
      UQYCEVKVIVJUUPUVNUUBUVPUVMUFUUPUVNUGZUUBUGUVJUUSYEUVQUUBUVJUUSYEUFZYOUUOU
      VNUUBUVJUGUVRUIZAUUOUVNUGZYNUVSAUVTYNUVSUBWDWEWFWGWHWEWIWJUVJYEMHWMWKYOUV
      AUVHUFUUOUUBYOUUTMUUHHUUNVHWAYOYEUVLUFUUOUUBYOUVKYEYOYMYCYCUQZUVKAYLYMWLY
      CXCUVJUWAMYBHUUQYBUQUVIYCYCUUQYBEUJWNWOWPWQWAWRWSWHWIWJWTYAYTYQUEZUUFUGZL
      VLYTUUHUCZUUGUGZLVLYSUUIUWCUWELUWCUUGUWEUWBUUEUUFYAYTEXTEWBZUVGXAXBUUGUWD
      UUEUWDUUFYTYAEUVGUWFVOVFVPVQVRLYAYCYPYQUWFUVFWCUUGLUUHVSXDUUBYELHWMXEYOFY
      RYAYCAFYRUQYNABCDEFGHKPQRSUATXFVFXGYOUUCYEYOYLYAYAUQZUUCAYLYMXHYAXCUUBUWG
      LXTHYTXTUQUUAYAYAYTXTEUJWNWOWPWQWRXIXJXKXL $.
  $}

  ${
    $d e r x y .~ $.  $d e r F $.  $d e r x ph $.  $d e r x R $.  $d x y V $.
    qusval.u $e |- ( ph -> U = ( R /s .~ ) ) $.
    qusval.v $e |- ( ph -> V = ( Base ` R ) ) $.
    qusval.f $e |- F = ( x e. V |-> [ x ] .~ ) $.
    qusval.e $e |- ( ph -> .~ e. W ) $.
    qusval.r $e |- ( ph -> R e. Z ) $.
    $( Value of a quotient structure.  (Contributed by Mario Carneiro,
       23-Feb-2015.) $)
    qusval $p |- ( ph -> U = ( F "s R ) ) $=
      ( vr ve cimas cvv wceq wcel cqus co cv cbs cfv cec cmpt df-qus a1i simprl
      cmpt2 wa fveq2d adantr eqtr4d ad2antll mpteq12dv syl6eqr oveq12d elex syl
      eceq2 ovexd ovmpt2d eqtrd ) AEDCUAUBFDQUBZJAOPDCRRBOUCZUDUEZBUCZPUCZUFZUG
      ZVGQUBZVFUARUAOPRRVMUKSABPOUHUIAVGDSZVJCSZULZULZVLFVGDQVQVLBGVICUFZUGFVQB
      VHVKGVRVQVHDUDUEZGVQVGDUDAVNVOUJZUMAGVSSVPKUNUOVOVKVRSAVNVJCVIVBUPUQLURVT
      USADITDRTNDIUTVAACHTCRTMCHUTVAAFDQVCVDVE $.

    $( The function in ~ qusval is a surjection onto a quotient set.
       (Contributed by Mario Carneiro, 23-Feb-2015.) $)
    quslem $p |- ( ph -> F : V -onto-> ( V /. .~ ) ) $=
      ( vy wfo cv cvv wcel syl crn cqs wfn cec wral ecexg ralrimivw fnmpt dffn4
      sylib wceq wb wrex cab rnmpt df-qs eqtr4i foeq3 ax-mp ) AGFUAZFPZGGCUBZFP
      ZAFGUCZVAABQZCUDZRSZBGUEVDAVGBGACHSVGMVEHCUFTUGBGVFFRLUHTGFUIUJUTVBUKVAVC
      ULUTOQVFUKBGUMOUNVBBOGVFFLUOBOGCUPUQUTVBGFURUSUJ $.
  $}

  ${
    $d x .~ $.  $d x ph $.  $d x R $.  $d x V $.
    qusin.u $e |- ( ph -> U = ( R /s .~ ) ) $.
    qusin.v $e |- ( ph -> V = ( Base ` R ) ) $.
    qusin.e $e |- ( ph -> .~ e. W ) $.
    qusin.r $e |- ( ph -> R e. Z ) $.
    qusin.s $e |- ( ph -> ( .~ " V ) C_ V ) $.
    $( Restrict the equivalence relation in a quotient structure to the base
       set.  (Contributed by Mario Carneiro, 23-Feb-2015.) $)
    qusin $p |- ( ph -> U = ( R /s ( .~ i^i ( V X. V ) ) ) ) $=
      ( vx cec cmpt cimas co wcel eqid qusval cxp cin cqus cima wss wceq ecinxp
      cv sylan mpteq2dva oveq1d cvv eqidd inex1g syl 3eqtr4d ) AMEMUHZBNZOZCPQM
      EUQBEEUAZUBZNZOZCPQDCVAUCQZAUSVCCPAMEURVBABEUDEUEUQERURVBUFLEUQBUGUIUJUKA
      MBCDUSEFGHIUSSJKTAMVACVDVCEULGAVDUMIVCSABFRVAULRJBUTFUNUOKTUP $.
  $}

  ${
    $d x .~ $.  $d x ph $.  $d x R $.  $d x V $.
    qusbas.u $e |- ( ph -> U = ( R /s .~ ) ) $.
    qusbas.v $e |- ( ph -> V = ( Base ` R ) ) $.
    qusbas.e $e |- ( ph -> .~ e. W ) $.
    qusbas.r $e |- ( ph -> R e. Z ) $.
    $( Base set of a quotient structure.  (Contributed by Mario Carneiro,
       23-Feb-2015.) $)
    qusbas $p |- ( ph -> ( V /. .~ ) = ( Base ` U ) ) $=
      ( vx cqs cv cec cmpt eqid qusval quslem imasbas ) AEBMCDLELNBOPZEGALBCDUA
      EFGHIUAQZJKRIALBCDUAEFGHIUBJKSKT $.

    quss.k $e |- K = ( Scalar ` R ) $.
    $( The scalar field of a quotient structure.  (Contributed by Mario
       Carneiro, 24-Feb-2015.) $)
    quss $p |- ( ph -> K = ( Scalar ` U ) ) $=
      ( vx cqs cv cec cmpt eqid qusval quslem imassca ) AFBOCDNFNPBQRZEFHANBCDU
      CFGHIJUCSZKLTJANBCDUCFGHIJUDKLUALMUB $.
  $}

  ${
    $d x .~ $.  $d a b x A $.  $d b x B $.  $d x C $.  $d x D $.  $d a b x V $.
    $d a b x .+ $.  $d a b x ph $.
    ercpbl.r $e |- ( ph -> .~ Er V ) $.
    ercpbl.v $e |- ( ph -> V e. _V ) $.
    ercpbl.f $e |- F = ( x e. V |-> [ x ] .~ ) $.
    $( Value of the function in ~ qusval .  (Contributed by Mario Carneiro,
       24-Feb-2015.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    divsfval $p |- ( ph -> ( F ` A ) = [ A ] .~ ) $=
      ( wcel cec wceq cvv ecss ssexd wn c0 cdm syl eleq2d cfv eceq1 fvmptg cmpt
      cv sylan2 expcom wa dmeqi wral ralrimivw dmmptg syl5eq notbid syl6bir wne
      ndmfv ecdmn0 wer erdm biimpd syl5bir necon1bd jcad eqtr3 syl6 pm2.61d ) A
      CFJZCEUAZCDKZLZVHAVKAVHVJMJVKAVJFMHACDFGNOBCBUEZDKZVJFMEVLCDUBIUCUFUGAVHP
      ZVIQLZVJQLZUHVKAVNVOVPAVNCERZJZPVOAVRVHAVQFCAVQBFVMUDZRZFEVSIUIAVMMJZBFUJ
      VTFLAWABFAVMFMHAVLDFGNOUKBFVMMULSUMTUNCEUQUOAVHVJQVJQUPCDRZJZAVHCDURAWCVH
      AWBFCAFDUSWBFLGFDUTSTVAVBVCVDVIVJQVEVFVG $.

    ${
      ercpbllem.1 $e |- ( ph -> A e. V ) $.
      $( Lemma for ~ ercpbl .  (Contributed by Mario Carneiro, 24-Feb-2015.) $)
      ercpbllem $p |- ( ph -> ( ( F ` A ) = ( F ` B ) <-> A .~ B ) ) $=
        ( cfv wceq cec wbr divsfval eqeq12d erth bitr4d ) ACFLZDFLZMCENZDENZMCD
        EOATUBUAUCABCEFGHIJPABDEFGHIJPQACDEGHKRS $.
    $}

    ${
      ercpbl.c $e |- ( ( ph /\ ( a e. V /\ b e. V ) ) -> ( a .+ b ) e. V ) $.
      ercpbl.e $e |- ( ph ->
        ( ( A .~ C /\ B .~ D ) -> ( A .+ B ) .~ ( C .+ D ) ) ) $.
      $( Translate the function compatibility relation to a quotient set.
         (Contributed by Mario Carneiro, 24-Feb-2015.)  (Revised by Mario
         Carneiro, 12-Aug-2015.) $)
      ercpbl $p |- ( ( ph /\ ( A e. V /\ B e. V ) /\ ( C e. V /\ D e. V ) ) ->
        ( ( ( F ` A ) = ( F ` C ) /\ ( F ` B ) = ( F ` D ) ) ->
          ( F ` ( A .+ B ) ) = ( F ` ( C .+ D ) ) ) ) $=
        ( wcel wa cfv w3a wbr co wceq 3ad2ant1 wer cvv simp2l ercpbllem anbi12d
        wi simp2r caovclg 3adant3 3imtr4d ) ACJRZDJRZSZEJRFJRSZUAZCEHUBZDFHUBZS
        ZCDGUCZEFGUCZHUBZCITEITUDZDITFITUDZSVDITVEITUDAURVCVFUKUSQUEUTVGVAVHVBU
        TBCEHIJAURJHUFUSMUEZAURJUGRUSNUEZOAUPUQUSUHUIUTBDFHIJVIVJOAUPUQUSULUIUJ
        UTBVDVEHIJVIVJOAURVDJRUSAKLCDJJJGPUMUNUIUO $.
    $}

    erlecpbl.e $e |- ( ph ->
      ( ( A .~ C /\ B .~ D ) -> ( A N B <-> C N D ) ) ) $.
    $( Translate the relation compatibility relation to a quotient set.
       (Contributed by Mario Carneiro, 24-Feb-2015.)  (Revised by Mario
       Carneiro, 12-Aug-2015.) $)
    erlecpbl $p |- ( ( ph /\ ( A e. V /\ B e. V ) /\ ( C e. V /\ D e. V ) ) ->
      ( ( ( F ` A ) = ( F ` C ) /\ ( F ` B ) = ( F ` D ) ) ->
        ( A N B <-> C N D ) ) ) $=
      ( wcel wa cfv wceq wbr 3ad2ant1 w3a wb wer cvv simp2l ercpbllem simp2r wi
      anbi12d sylbid ) ACJOZDJOZPZEJOFJOPZUAZCHQEHQRZDHQFHQRZPCEGSZDFGSZPZCDISE
      FISUBZUOUPURUQUSUOBCEGHJAUMJGUCUNKTZAUMJUDOUNLTZMAUKULUNUEUFUOBDFGHJVBVCM
      AUKULUNUGUFUIAUMUTVAUHUNNTUJ $.
  $}

  ${
    $d a b p q x .~ $.  $d a b p q F $.  $d a b p q x ph $.  $d a b p q x V $.
    $d p q x R $.  $d p q x .x. $.  $d p q x X $.  $d a b p q .xb $.
    $d p q x Y $.
    qusaddf.u $e |- ( ph -> U = ( R /s .~ ) ) $.
    qusaddf.v $e |- ( ph -> V = ( Base ` R ) ) $.
    qusaddf.r $e |- ( ph -> .~ Er V ) $.
    qusaddf.z $e |- ( ph -> R e. Z ) $.
    qusaddf.e $e |- ( ph ->
      ( ( a .~ p /\ b .~ q ) -> ( a .x. b ) .~ ( p .x. q ) ) ) $.
    qusaddf.c $e |- ( ( ph /\ ( p e. V /\ q e. V ) ) ->
      ( p .x. q ) e. V ) $.
    ${
      qusaddflem.f $e |- F = ( x e. V |-> [ x ] .~ ) $.
      qusaddflem.g $e |- ( ph -> .xb = U_ p e. V U_ q e. V
          { <. <. ( F ` p ) , ( F ` q ) >. , ( F ` ( p .x. q ) ) >. } ) $.
      $( Value of an operation defined on a quotient structure.  (Contributed
         by Mario Carneiro, 24-Feb-2015.) $)
      qusaddvallem $p |- ( ( ph /\ X e. V /\ Y e. V ) ->
        ( [ X ] .~ .xb [ Y ] .~ ) = [ ( X .x. Y ) ] .~ ) $=
        ( wcel w3a cfv co cec cqs cvv wer cbs fvex syl6eqel erex sylc quslem cv
        ercpbl imasaddvallem 3ad2ant1 divsfval oveq12d 3eqtr3d ) AJIUEZKIUEZUFZ
        JHUGZKHUGZEUHJKFUHZHUGJCUIZKCUIZEUHVKCUIAICUJEFHIJKMNOPABCDGHIUKLQRUCAI
        CULZIUKUEZCUKUESAIDUMUGUKRDUMUNUOZICUKUPUQTURABOUSPUSNUSMUSFCHINMSVPUCU
        BUAUTUDVAVHVIVLVJVMEVHBJCHIAVFVNVGSVBZAVFVOVGVPVBZUCVCVHBKCHIVQVRUCVCVD
        VHBVKCHIVQVRUCVCVE $.

      $( The operation of a quotient structure is a function.  (Contributed by
         Mario Carneiro, 24-Feb-2015.) $)
      qusaddflem $p |- ( ph ->
        .xb : ( ( V /. .~ ) X. ( V /. .~ ) ) --> ( V /. .~ ) ) $=
        ( cqs cvv wer wcel cbs cfv fvex syl6eqel erex quslem ercpbl imasaddflem
        sylc cv ) AICUCEFHIKLMNABCDGHIUDJOPUAAICUEIUDUFCUDUFQAIDUGUHUDPDUGUIUJZ
        ICUDUKUORULABMUPNUPLUPKUPFCHILKQUQUATSUMUBTUN $.
    $}

    ${
      qusaddf.p $e |- .x. = ( +g ` R ) $.
      qusaddf.a $e |- .xb = ( +g ` U ) $.
      $( The base set of an image structure.  (Contributed by Mario Carneiro,
         24-Feb-2015.) $)
      qusaddval $p |- ( ( ph /\ X e. V /\ Y e. V ) ->
        ( [ X ] .~ .xb [ Y ] .~ ) = [ ( X .x. Y ) ] .~ ) $=
        ( cec cmpt eqid cqs cvv wer wcel cbs cfv fvex syl6eqel erex sylc qusval
        vx cv quslem imasplusg qusaddvallem ) AUQBCDEFUQGUQURBUCUDZGHIJKLMNOPQR
        STVBUEZAGBUFEDCFVBGJKLAUQBCFVBGUGJOPVCAGBUHGUGUIBUGUIQAGCUJUKUGPCUJULUM
        GBUGUNUOZRUPPAUQBCFVBGUGJOPVCVDRUSRUAUBUTVA $.

      $( The base set of an image structure.  (Contributed by Mario Carneiro,
         24-Feb-2015.) $)
      qusaddf $p |- ( ph ->
        .xb : ( ( V /. .~ ) X. ( V /. .~ ) ) --> ( V /. .~ ) ) $=
        ( cec cmpt eqid cqs cvv wer wcel cbs cfv fvex syl6eqel erex sylc qusval
        vx cv quslem imasplusg qusaddflem ) AUOBCDEFUOGUOUPBUAUBZGHIJKLMNOPQRUT
        UCZAGBUDEDCFUTGHIJAUOBCFUTGUEHMNVAAGBUFGUEUGBUEUGOAGCUHUIUENCUHUJUKGBUE
        ULUMZPUNNAUOBCFUTGUEHMNVAVBPUQPSTURUS $.
    $}

    ${
      qusmulf.p $e |- .x. = ( .r ` R ) $.
      qusmulf.a $e |- .xb = ( .r ` U ) $.
      $( The base set of an image structure.  (Contributed by Mario Carneiro,
         24-Feb-2015.) $)
      qusmulval $p |- ( ( ph /\ X e. V /\ Y e. V ) ->
        ( [ X ] .~ .xb [ Y ] .~ ) = [ ( X .x. Y ) ] .~ ) $=
        ( cec cmpt eqid cqs cvv wer wcel cbs cfv fvex syl6eqel erex sylc qusval
        vx cv quslem imasmulr qusaddvallem ) AUQBCDEFUQGUQURBUCUDZGHIJKLMNOPQRS
        TVBUEZAGBUFCDEFVBGJKLAUQBCFVBGUGJOPVCAGBUHGUGUIBUGUIQAGCUJUKUGPCUJULUMG
        BUGUNUOZRUPPAUQBCFVBGUGJOPVCVDRUSRUAUBUTVA $.

      $( The base set of an image structure.  (Contributed by Mario Carneiro,
         24-Feb-2015.) $)
      qusmulf $p |- ( ph ->
        .xb : ( ( V /. .~ ) X. ( V /. .~ ) ) --> ( V /. .~ ) ) $=
        ( cec cmpt eqid cqs cvv wer wcel cbs cfv fvex syl6eqel erex sylc qusval
        vx cv quslem imasmulr qusaddflem ) AUOBCDEFUOGUOUPBUAUBZGHIJKLMNOPQRUTU
        CZAGBUDCDEFUTGHIJAUOBCFUTGUEHMNVAAGBUFGUEUGBUEUGOAGCUHUIUENCUHUJUKGBUEU
        LUMZPUNNAUOBCFUTGUEHMNVAVBPUQPSTURUS $.
    $}
  $}

  $( A short expression for the pair function mapping ` 0 ` to ` A ` and ` 1 `
     to ` B ` .  (Contributed by Mario Carneiro, 14-Aug-2015.) $)
  xpsc $p |- `' ( { A } +c { B } ) =
    ( ( { (/) } X. { A } ) u. ( { 1o } X. { B } ) ) $=
    ( csn ccda co ccnv cxp c1o cun cvv wcel wceq snex cdaval mp2an cnveqi cnvun
    c0 cnvxp uneq12i 3eqtri ) ACZBCZDEZFUBRCZGZUCHCZGZIZFUFFZUHFZIUEUBGZUGUCGZI
    UDUIUBJKUCJKUDUILAMBMUBUCJJNOPUFUHQUJULUKUMUBUESUCUGSTUA $.

  $( A short expression for the pair function mapping ` 0 ` to ` A ` and ` 1 `
     to ` B ` .  (Contributed by Mario Carneiro, 14-Aug-2015.) $)
  xpscg $p |- ( ( A e. V /\ B e. W ) ->
    `' ( { A } +c { B } ) = { <. (/) , A >. , <. 1o , B >. } ) $=
    ( wcel wa c0 csn cxp c1o cun cop ccda co ccnv wceq cvv xpsng mpan con0 xpsc
    cpr 0ex 1on uneq12 syl2an df-pr 3eqtr4g ) ACEZBDEZFGHAHZIZJHBHZIZKZGALZHZJB
    LZHZKZUKUMMNOUPURUBUIULUQPZUNUSPZUOUTPUJGQEUIVAUCGAQCRSJTEUJVBUDJBTDRSULUQU
    NUSUEUFABUAUPURUGUH $.

  $( The pair function is a function on ` 2o = { (/) , 1o } ` .  (Contributed
     by Mario Carneiro, 14-Aug-2015.) $)
  xpscfn $p |- ( ( A e. V /\ B e. W ) -> `' ( { A } +c { B } ) Fn 2o ) $=
    ( wcel wa csn ccda co ccnv c2o wfn c0 cop c1o cpr cvv con0 0ex 1on wne 1n0
    necomi fnprg mp3an3 mpanl12 df2o3 fneq2i sylibr xpscg fneq1d mpbird ) ACEBD
    EFZAGBGHIJZKLMANOBNPZKLZUMUOMOPZLZUPMQEZOREZUMURSTUSUTFUMMOUAUROMUBUCMOABQR
    CDUDUEUFKUQUOUGUHUIUMKUNUOABCDUJUKUL $.

  ${
    $d x A $.  $d x B $.
    $( The pair function maps ` 0 ` to ` A ` .  (Contributed by Mario Carneiro,
       14-Aug-2015.) $)
    xpsc0 $p |- ( A e. V -> ( `' ( { A } +c { B } ) ` (/) ) = A ) $=
      ( vx wcel c0 csn cfv cxp c1o wfn cin wceq wfun cid cop wss cvv ax-mp a1i
      ccda co ccnv cun xpsc fveq1i cdm fnconstg cv vex fvi elsni fveq2d syl5eqr
      velsn sylibr ssriv xpss2 con0 1on elexi fvex xpsn sseqtri funsn funss mp2
      funfn mpbi dmxpss sslin wne 1n0 necomi disjsn2 sseq0 mp2an 0ex snid fvun1
      syl112anc syl5eq wa xpsng fveq1d fvsng eqtrd mpan ) ACEZFAGZBGZUAUBUCZHZF
      FGZWJIZHZAWIWMFWOJGZWKIZUDZHZWPFWLWSABUEUFWIWOWNKWRWRUGZKZWNXALZFMZFWNEZW
      TWPMWNACUHXBWIWRNZXBWRJBOHZPGZQXHNXFWRWQXGGZIZXHWKXIQWRXJQDWKXIDUIZWKEZXK
      XGMXKXIEXLXKXKOHZXGXKREXMXKMDUJXKRUKSXLXKBOXKBULUMUNDXGUOUPUQWKXIWQURSJXG
      JUSUTVAZBOVBZVCVDJXGXNXOVEWRXHVFVGWRVHVITXDWIXCWNWQLZQZXPFMZXDXAWQQXQWQWK
      VJXAWQWNVKSFJVLXRJFVMVNFJVOSXCXPVPVQTXEWIFVRVSTWNXAWOWRFVTWAWBFREZWIWPAMV
      RXSWIWCZWPFFAPGZHAXTFWOYAFARCWDWEFARCWFWGWHWG $.

    $( The pair function maps ` 1 ` to ` B ` .  (Contributed by Mario Carneiro,
       14-Aug-2015.) $)
    xpsc1 $p |- ( B e. V -> ( `' ( { A } +c { B } ) ` 1o ) = B ) $=
      ( vx wcel c1o csn cfv cxp c0 wfn cin wceq wfun cid cop wss ax-mp a1i con0
      ccda co ccnv cun xpsc fveq1i cdm cv cvv vex fvi elsni fveq2d velsn sylibr
      syl5eqr ssriv xpss2 0ex fvex xpsn sseqtri funsn funss funfn mpbi fnconstg
      mp2 dmxpss ssrin wne 1n0 necomi disjsn2 sseq0 mp2an elexi fvun2 syl112anc
      1on snid syl5eq wa xpsng fveq1d fvsng eqtrd mpan ) BCEZFAGZBGZUAUBUCZHZFF
      GZWKIZHZBWIWMFJGZWJIZWOUDZHZWPFWLWSABUEUFWIWRWRUGZKZWOWNKXAWNLZJMZFWNEZWT
      WPMXBWIWRNZXBWRJAOHZPGZQXHNXFWRWQXGGZIZXHWJXIQWRXJQDWJXIDUHZWJEZXKXGMXKXI
      EXLXKXKOHZXGXKUIEXMXKMDUJXKUIUKRXLXKAOXKAULUMUPDXGUNUOUQWJXIWQURRJXGUSAOU
      TZVAVBJXGUSXNVCWRXHVDVHWRVEVFSWNBCVGXDWIXCWQWNLZQZXOJMZXDXAWQQXPWQWJVIXAW
      QWNVJRJFVKXQFJVLVMJFVNRXCXOVOVPSXEWIFFTVTVQWASXAWNWRWOFVRVSWBFTEZWIWPBMVT
      XRWIWCZWPFFBPGZHBXSFWOXTFBTCWDWEFBTCWFWGWHWG $.
  $}

  $( The value of the pair function at an element of ` 2o ` .  (Contributed by
     Mario Carneiro, 14-Aug-2015.) $)
  xpscfv $p |- ( ( A e. V /\ B e. W /\ C e. 2o ) ->
      ( `' ( { A } +c { B } ) ` C ) = if ( C = (/) , A , B ) ) $=
    ( wcel c2o csn ccda co ccnv cfv wceq cif c1o fveq2 eqeq12d syl5ibrcom wne
    c0 wo wa cpr elpri df2o3 eleq2s xpsc0 adantr iftrue xpsc1 adantl 1n0 mpbiri
    neeq1 ifnefalse syl jaod syl5 3impia ) ADFZBEFZCGFZCAHBHIJKZLZCTMZABNZMZVBV
    ECOMZUAZUTVAUBZVGVICTOUCGCTOUDUEUFVJVEVGVHVJVGVETVCLZAMZUTVLVAABDUGUHVEVDVK
    VFACTVCPVEABUIQRVJVGVHOVCLZBMZVAVNUTABEUJUKVHVDVMVFBCOVCPVHCTSZVFBMVHVOOTSU
    LCOTUNUMCTABUOUPQRUQURUS $.

  ${
    $d k A $.  $d k B $.  $d k G $.  $d k X $.  $d k Y $.
    $( Elementhood in the target space of the function ` F ` appearing in
       ~ xpsval .  (Contributed by Mario Carneiro, 14-Aug-2015.) $)
    xpsfrnel $p |- ( G e. X_ k e. 2o if ( k = (/) , A , B ) <-> ( G Fn 2o /\
       ( G ` (/) ) e. A /\ ( G ` 1o ) e. B ) ) $=
      ( c2o c0 wceq wcel cfv wral w3a c1o wa fveq2 eleq12d wne syl bitri 3anass
      cfn cv cif cixp cvv wfn elixp2 3ancoma cpr df2o3 raleqi con0 elexi iftrue
      0ex 1on neeq1 mpbiri ifnefalse ralpr 2onn nnfi ax-mp fnfi mpan2 biantrurd
      1n0 com elex syl5rbbr pm5.32i 3bitr4i ) DCECUAZFGZABUBZUCHDUDHZDEUEZVLDIZ
      VNHZCEJZKZVPFDIZAHZLDIZBHZKZCEVNDUFVTVPVOVSKZWEVOVPVSUGVPVOVSMZMVPWBWDMZM
      WFWEVPWGWHWHVSVPWGVSVRCFLUHZJWHVRCEWIUIUJVRWBWDCFLUNLUKUOULVMVQWAVNAVLFDN
      VMABUMOVLLGZVQWCVNBVLLDNWJVLFPZVNBGWJWKLFPVFVLLFUPUQVLFABURQOUSRVPVOVSVPD
      THZVOVPETHZWLEVGHWMUTEVAVBEDVCVDDTVHQVEVIVJVPVOVSSVPWBWDSVKRR $.

    $( A function on ` 2o ` is determined by its values at zero and one.
       (Contributed by Mario Carneiro, 27-Aug-2015.) $)
    xpsfeq $p |- ( G Fn 2o ->
       `' ( { ( G ` (/) ) } +c { ( G ` 1o ) } ) = G ) $=
      ( vk c2o wfn c0 cfv csn c1o ccda co ccnv cvv wcel fvex xpscfn mp2an ax-mp
      wceq fveq2 3eqtr4a a1i id cv wo cpr elpri df2o3 eleq2s xpsc0 xpsc1 adantl
      jaoi syl eqfnfvd ) ACDZBCEAFZGHAFZGIJKZAURCDZUOUPLMZUQLMZUSEANZHANZUPUQLL
      OPUAUOUBBUCZCMZVDURFZVDAFZRZUOVEVDERZVDHRZUDZVHVKVDEHUECVDEHUFUGUHVIVHVJV
      IEURFZUPVFVGUTVLUPRVBUPUQLUIQVDEURSVDEASTVJHURFZUQVFVGVAVMUQRVCUPUQLUJQVD
      HURSVDHASTULUMUKUN $.

    $( Elementhood in the target space of the function ` F ` appearing in
       ~ xpsval .  (Contributed by Mario Carneiro, 15-Aug-2015.) $)
    xpsfrnel2 $p |- ( `' ( { X } +c { Y } ) e.
       X_ k e. 2o if ( k = (/) , A , B ) <-> ( X e. A /\ Y e. B ) ) $=
      ( csn c2o c0 wceq wcel cfv c1o wa cvv cxp cdm cun 0ex elsni sylbi ccda co
      ccnv cv cif cixp wfn w3a xpsfrnel cpr prid1 df2o3 eleqtrri fndm syl5eleqr
      xpsc dmeqi dmun eqtri syl6eleq wo elun wbr wex eldm brxp syl6eqelr adantl
      vex exlimiv dmxpss sseli 1n0 neii pm2.21i eqcoms 3syl jaoi syl con0 elexi
      1on prid2 jca 3ad2ant1 anim12i 3anass xpscfn biantrurd xpsc0 eleq1d xpsc1
      elex bi2anan9 bitr3d syl5bb pm5.21nii bitri ) DFZEFZUAUBUCZCGCUDZHIABUEUF
      JXAGUGZHXAKZAJZLXAKZBJZUHZDAJZEBJZMZABCXAUIXHDNJZENJZMZXKXCXEXNXGXCXLXMXC
      HHFZWSOZPZLFZWTOZPZQZJZXLXCHXAPZYAXCHGYCHHLUJZGHLRUKULUMGXAUNZUOYCXPXSQZP
      YAXAYFDEUPUQXPXSURUSZUTYBHXQJZHXTJZVAXLHXQXTVBYHXLYIYHHXBXPVCZCVDXLCHXPRV
      EYJXLCYJHXOJZXBWSJZMXLHXBXOWSVFYLXLYKYLDXBNXBDSCVIZVGVHTVJTYIHXRJHLIXLXTX
      RHXRWTVKVLHLSXLLHLHIZXLLHVMVNZVOVPVQVRTVSXCLYAJZXMXCLYCYAXCLGYCLYDGHLLVTW
      BWAZWCULUMYEUOYGUTYPLXQJZLXTJZVAXMLXQXTVBYRXMYSYRLXOJYNXMXQXOLXOWSVKVLLHS
      YNXMYOVOVQYSLXBXSVCZCVDXMCLXSYQVEYTXMCYTLXRJZXBWTJZMXMLXBXRWTVFUUBXMUUAUU
      BEXBNXBESYMVGVHTVJTVRTVSWDWEXIXLXJXMDAWMEBWMWFXHXCXEXGMZMZXNXKXCXEXGWGXNU
      UCUUDXKXNXCUUCDENNWHWIXLXEXIXMXGXJXLXDDADENWJWKXMXFEBDENWLWKWNWOWPWQWR $.

    $( Equivalent condition for the pair function to be a proper function on
       ` A ` .  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
    xpscf $p |- ( `' ( { X } +c { Y } ) : 2o --> A <->
        ( X e. A /\ Y e. A ) ) $=
      ( vk c2o csn ccda co ccnv wf cv c0 wceq cif cixp wcel wa wfn cfv wral
      ifid eleq2i ralbii anbi2i ovex cnvex elixp ffnfv 3bitr4i xpsfrnel2 bitr3i
      ) EABFZCFZGHZIZJZUODEDKZLMZAANZOPZBAPCAPQUOERZUQUOSZUSPZDETZQVAVBAPZDETZQ
      UTUPVDVFVAVCVEDEUSAVBURAUAUBUCUDDEUSUOUNULUMGUEUFUGDEAUOUHUIAADBCUJUK $.
  $}

  ${
    $d a b k w x y z A $.  $d a b w z F $.  $d k V $.  $d x y X $.  $d x y Y $.
    $d a b k w x y z B $.  $d k W $.
    xpsff1o.f $e |- F = ( x e. A , y e. B |-> `' ( { x } +c { y } ) ) $.
    $( The value of the function appearing in ~ xpsval .  (Contributed by Mario
       Carneiro, 15-Aug-2015.) $)
    xpsfval $p |- ( ( X e. A /\ Y e. B ) ->
      ( X F Y ) = `' ( { X } +c { Y } ) ) $=
      ( cv csn ccda co ccnv wceq wa sneq oveqan12d cnveqd ovex cnvex ovmpt2a )
      ABFGCDAIZJZBIZJZKLZMFJZGJZKLZMEUBFNZUDGNZOUFUIUJUKUCUGUEUHKUBFPUDGPQRHUIU
      GUHKSTUA $.

    $( The function appearing in ~ xpsval is a bijection from the cartesian
       product to the indexed cartesian product indexed on the pair
       ` 2o = { (/) , 1o } ` .  (Contributed by Mario Carneiro,
       15-Aug-2015.) $)
    xpsff1o $p |- F : ( A X. B ) -1-1-onto->
      X_ k e. 2o if ( k = (/) , A , B ) $=
      ( vz vw va vb cv c0 wceq cfv wral csn co wcel cvv cxp c2o cif cixp wf1 wf
      wf1o wfo wi ccda ccnv wa xpsfrnel2 biimpri rgen2 fmpt2 mpbi c1st c2nd cop
      1st2nd2 fveq2d df-ov xp1st xp2nd xpsfval syl2anc syl5eqr eqtrd fveq1 fvex
      eqeqan12d xpsc0 ax-mp 3eqtr3g xpsc1 opeq12d syl5ibr sylbid dff13 mpbir2an
      c1o wrex wfn xpsfrnel simp2bi simp3bi ixpfn xpsfeq eqtr2d rspceov syl3anc
      syl rgen foov df-f1o ) CDUAZEUBELMNCDUCZUDZFUGWQWSFUEZWQWSFUHZWTWQWSFUFZH
      LZFOZILZFOZNZXCXENZUIZIWQPHWQPALZQBLZQUJRUKZWSSZBDPACPXBXMABCDXMXJCSXKDSU
      LCDEXJXKUMUNUOABCDXLWSFGUPUQZXIHIWQWQXCWQSZXEWQSZULZXGXCUROZQXCUSOZQUJRUK
      ZXEUROZQXEUSOZQUJRUKZNZXHXOXPXDXTXFYCXOXDXRXSUTZFOZXTXOXCYEFXCCDVAZVBXOYF
      XRXSFRZXTXRXSFVCXOXRCSXSDSYHXTNXCCDVDXCCDVEABCDFXRXSGVFVGVHVIXPXFYAYBUTZF
      OZYCXPXEYIFXECDVAZVBXPYJYAYBFRZYCYAYBFVCXPYACSYBDSYLYCNXECDVDXECDVEABCDFY
      AYBGVFVGVHVIVLYDXHXQYEYINYDXRYAXSYBYDMXTOZMYCOZXRYAMXTYCVJXRTSYMXRNXCURVK
      XRXSTVMVNYATSYNYANXEURVKYAYBTVMVNVOYDWBXTOZWBYCOZXSYBWBXTYCVJXSTSYOXSNXCU
      SVKXRXSTVPVNYBTSYPYBNXEUSVKYAYBTVPVNVOVQXOXPXCYEXEYIYGYKVLVRVSUOHIWQWSFVT
      WAXAXBXCJLKLFRNKDWCJCWCZHWSPXNYQHWSXCWSSZMXCOZCSZWBXCOZDSZXCYSUUAFRZNYQYR
      XCUBWDZYTUUBCDEXCWEZWFZYRUUDYTUUBUUEWGZYRUUCYSQUUAQUJRUKZXCYRYTUUBUUCUUHN
      UUFUUGABCDFYSUUAGVFVGYRUUDUUHXCNEUBWRXCWHXCWIWMWJJKCDYSUUAXCFWKWLWNJKHCDW
      SFWOWAWQWSFWPWA $.

    $( A short expression for the indexed cartesian product on two indexes.
       (Contributed by Mario Carneiro, 15-Aug-2015.) $)
    xpsfrn $p |- ran F = X_ k e. 2o if ( k = (/) , A , B ) $=
      ( cxp c2o cv c0 wceq cif cixp wf1o wfo crn xpsff1o f1ofo forn mp2b ) CDHZ
      EIEJKLCDMNZFOUBUCFPFQUCLABCDEFGRUBUCFSUBUCFTUA $.

    $( A short expression for the indexed cartesian product on two indexes.
       (Contributed by Mario Carneiro, 15-Aug-2015.) $)
    xpsfrn2 $p |- ( ( A e. V /\ B e. W ) ->
      ran F = X_ k e. 2o ( `' ( { A } +c { B } ) ` k ) ) $=
      ( wcel wa c2o cv csn ccda co ccnv cfv cixp wceq c0 xpscfv 3expa ixpeq2dva
      cif crn xpsfrn syl6reqr ) CGJZDHJZKZELEMZCNDNOPQRZSELULUATCDUEZSFUFUKELUM
      UNUIUJULLJUMUNTCDULGHUBUCUDABCDEFIUGUH $.

    $( The function appearing in ~ xpsval is a bijection from the cartesian
       product to the indexed cartesian product indexed on the pair
       ` 2o = { (/) , 1o } ` .  (Contributed by Mario Carneiro,
       24-Jan-2015.) $)
    xpsff1o2 $p |- F : ( A X. B ) -1-1-onto-> ran F $=
      ( vk cxp c2o cv c0 wceq cif cixp wf1o wf1 crn xpsff1o f1of1 f1f1orn mp2b
      ) CDHZGIGJKLCDMNZEOUBUCEPUBEQEOABCDGEFRUBUCESUBUCETUA $.
  $}

  ${
    $d r s y $.  $d c k x y A $.  $d c k x y B $.  $d c d k x y C $.  $d k G $.
    $d c d k x y D $.  $d r s F $.  $d c d k r s S $.  $d k r s U $.  $d x W $.
    $d a b c d k ph $.  $d k x y .x. $.  $d k x y .X. $.  $d a b c d k x y X $.
    $d c d k r s x R $.  $d a b c d .xb $.  $d a b c d k x y Y $.
    xpsval.t $e |- T = ( R Xs. S ) $.
    xpsval.x $e |- X = ( Base ` R ) $.
    xpsval.y $e |- Y = ( Base ` S ) $.
    xpsval.1 $e |- ( ph -> R e. V ) $.
    xpsval.2 $e |- ( ph -> S e. W ) $.
    ${
      xpsval.f $e |- F = ( x e. X , y e. Y |-> `' ( { x } +c { y } ) ) $.
      xpsval.k $e |- G = ( Scalar ` R ) $.
      xpsval.u $e |- U = ( G Xs_ `' ( { R } +c { S } ) ) $.
      $( Value of the binary structure product function.  (Contributed by Mario
         Carneiro, 14-Aug-2015.) $)
      xpsval $p |- ( ph -> T = ( `' F "s U ) ) $=
        ( vr vs cxps co ccnv cimas cvv wcel wceq elex syl cv cbs cfv ccda cmpt2
        csn csca cprds wa fveq2 syl6eqr mpt2eq12 syl2an cnveqd adantr oveqan12d
        sneq oveq12d df-xps ovex ovmpt2a syl2anc syl5eq ) AFDEUDUEZHUFZGUGUEZNA
        DUHUIZEUHUIZVPVRUJADJUIVSQDJUKULAEKUIVTREKUKULUBUCDEUHUHBCUBUMZUNUOZUCU
        MZUNUOZBUMURCUMURUPUEUFZUQZUFZWAUSUOZWAURZWCURZUPUEZUFZUTUEZUGUEVRUDWAD
        UJZWCEUJZVAZWGVQWMGUGWPWFHWPWFBCLMWEUQZHWNWBLUJWDMUJWFWQUJWOWNWBDUNUOLW
        ADUNVBOVCWOWDEUNUOMWCEUNVBPVCBCWBWDLMWEVDVESVCVFWPWMIDURZEURZUPUEZUFZUT
        UEGWPWHIWLXAUTWPWHDUSUOZIWNWHXBUJWOWADUSVBVGTVCWPWKWTWNWOWIWRWJWSUPWADV
        IWCEVIVHVFVJUAVCVJBCUCUBVKVQGUGVLVMVNVO $.

      $( The indexed structure product that appears in ~ xpsval has the same
         base as the target of the function ` F ` .  (Contributed by Mario
         Carneiro, 15-Aug-2015.) $)
      xpslem $p |- ( ph -> ran F = ( Base ` U ) ) $=
        ( vk cbs cfv c2o cv csn ccda ccnv cixp crn cvv con0 eqid wcel csca fvex
        co eqeltri a1i 2on wfn xpscfn syl2anc prdsbas2 c0 wceq cif wa wi xpscfv
        3expia fveq2d ifeq12 mp2an fvif eqtr4i syl6eqr ixpeq2dva xpsfrn eqtr2d
        imp ) AGUCUDZUBUEUBUFZDUGEUGUHURUIZUDZUCUDZUJZHUKZAUBWCWEIUEULUMGUAWCUN
        IULUOAIDUPUDULTDUPUQUSUTUEUMUOAVAUTADJUOZEKUOZWEUEVBQRDEJKVCVDVEAWHUBUE
        WDVFVGZLMVHZUJWIAUBUEWGWMAWDUEUOZVIZWGWLDEVHZUCUDZWMWOWFWPUCAWNWFWPVGZA
        WJWKWNWRVJQRWJWKWNWRDEWDJKVKVLVDWBVMWMWLDUCUDZEUCUDZVHZWQLWSVGMWTVGWMXA
        VGOPWLLWSMWTVNVOWLDEUCVPVQVRVSBCLMUBHSVTVRWA $.
    $}

    $( The base set of the binary structure product.  (Contributed by Mario
       Carneiro, 15-Aug-2015.) $)
    xpsbas $p |- ( ph -> ( X X. Y ) = ( Base ` T ) ) $=
      ( vx vy csn ccda co ccnv eqid cxp csca cfv cprds cv crn cvv xpsval xpslem
      cmpt2 wf1o wfo xpsff1o2 f1ocnv ax-mp f1ofo mp1i ovexd imasbas ) AGHUAZBUB
      UCZBPCPQRSZUDRZDNOGHNUEPOUEPQRSUJZSZVDUFZUGANOBCDVCVDVAEFGHIJKLMVDTZVATZV
      CTZUHANOBCDVCVDVAEFGHIJKLMVGVHVIUIVFUTVEUKZVFUTVEULAUTVFVDUKVJNOGHVDVGUMU
      TVFVDUNUOVFUTVEUPUQAVAVBUDURUS $.

    xpsadd.3 $e |- ( ph -> A e. X ) $.
    xpsadd.4 $e |- ( ph -> B e. Y ) $.
    xpsadd.5 $e |- ( ph -> C e. X ) $.
    xpsadd.6 $e |- ( ph -> D e. Y ) $.
    xpsadd.7 $e |- ( ph -> ( A .x. C ) e. X ) $.
    xpsadd.8 $e |- ( ph -> ( B .X. D ) e. Y ) $.
    ${
      xpsaddlem.m $e |- .x. = ( E ` R ) $.
      xpsaddlem.n $e |- .X. = ( E ` S ) $.
      xpsaddlem.p $e |- .xb = ( E ` T ) $.
      xpsaddlem.f $e |- F = ( x e. X , y e. Y |-> `' ( { x } +c { y } ) ) $.
      xpsaddlem.u $e |- U = ( ( Scalar ` R ) Xs_ `' ( { R } +c { S } ) ) $.
      xpsaddlem.1 $e |- ( ( ph /\
        `' ( { A } +c { B } ) e. ran F /\ `' ( { C } +c { D } ) e. ran F ) ->
    ( ( `' F ` `' ( { A } +c { B } ) ) .xb ( `' F ` `' ( { C } +c { D } ) ) ) =
      ( `' F ` ( `' ( { A } +c { B } ) ( E ` U ) `' ( { C } +c { D } ) ) ) ) $.
      xpsaddlem.2 $e |- ( ( `' ( { R } +c { S } ) Fn 2o /\
        `' ( { A } +c { B } ) e. ( Base ` U ) /\
        `' ( { C } +c { D } ) e. ( Base ` U ) ) ->
      ( `' ( { A } +c { B } ) ( E ` U ) `' ( { C } +c { D } ) ) =
        ( k e. 2o |-> ( ( `' ( { A } +c { B } ) ` k )
  ( E ` ( `' ( { R } +c { S } ) ` k ) ) ( `' ( { C } +c { D } ) ` k ) ) ) ) $.
      $( Lemma for ~ xpsadd and ~ xpsmul .  (Contributed by Mario Carneiro,
         15-Aug-2015.) $)
      xpsaddlem $p |- ( ph ->
        ( <. A , B >. .xb <. C , D >. ) = <. ( A .x. C ) , ( B .X. D ) >. ) $=
        ( csn ccda ccnv cfv cop crn wcel wceq df-ov xpsfval syl2anc syl5eqr cxp
        co opelxpi wf1o xpsff1o2 f1of ax-mp ffvelrni eqeltrrd mpd3an23 f1ocnvfv
        wf syl wi sylancr mpd oveq12d c2o cmpt wfn cbs xpscfn csca eqid eleqtrd
        cv xpslem syl3anc dffn5 sylib cif iftrue fveq2d syl6eqr oveq123d eqtr4d
        wa c0 wn iffalse pm2.61i adantr simpr xpscfv 3eqtr4a mpteq2dva 3eqtr3d
        eqtrd ) ADUTEUTVAVMVBZQVBZVCZFUTGUTVAVMVBZYAVCZJVMZXTYCNPVCVMZYAVCZDEVD
        ZFGVDZJVMDFLVMZEGMVMZVDZAXTQVEZVFYCYMVFYEYGVGAYHQVCZXTYMAYNDEQVMZXTDEQV
        HADTVFZEUAVFZYOXTVGUGUHBCTUAQDEUPVIVJVKZAYHTUAVLZVFZYNYMVFAYPYQYTUGUHDE
        TUAVNVJZYSYMYHQYSYMQVOZYSYMQWCBCTUAQUPVPZYSYMQVQVRZVSWDVTZAYIQVCZYCYMAU
        UFFGQVMZYCFGQVHAFTVFZGUAVFZUUGYCVGUIUJBCTUAQFGUPVIVJVKZAYIYSVFZUUFYMVFA
        UUHUUIUUKUIUJFGTUAVNVJZYSYMYIQUUDVSWDVTZURWAAYBYHYDYIJAYNXTVGZYBYHVGZYR
        AUUBYTUUNUUOWEUUCUUAYSYMYHXTQWBWFWGAUUFYCVGZYDYIVGZUUJAUUBUUKUUPUUQWEUU
        CUULYSYMYIYCQWBWFWGWHAYGYJUTYKUTVAVMVBZYAVCZYLAYFUURYAAYFOWIOWQZXTVCZUU
        TYCVCZUUTHUTIUTVAVMVBZVCZPVCZVMZWJZUURAUVCWIWKZXTNWLVCZVFYCUVIVFYFUVGVG
        AHRVFZISVFZUVHUEUFHIRSWMVJAXTYMUVIUUEABCHIKNQHWNVCZRSTUAUBUCUDUEUFUPUVL
        WOUQWRZWPAYCYMUVIUUMUVMWPUSWSAUUROWIUUTUURVCZWJZUVGAUURWIWKZUURUVOVGAYJ
        TVFZYKUAVFZUVPUKULYJYKTUAWMVJOWIUURWTXAAOWIUVFUVNAUUTWIVFZXHZUUTXIVGZDE
        XBZUWAFGXBZUWAHIXBZPVCZVMZUWAYJYKXBZUVFUVNUWAUWFUWGVGUWAUWFYJUWGUWAUWBD
        UWCFUWELUWAUWEHPVCLUWAUWDHPUWAHIXCXDUMXEUWADEXCUWAFGXCXFUWAYJYKXCXGUWAX
        JZUWFYKUWGUWHUWBEUWCGUWEMUWHUWEIPVCMUWHUWDIPUWAHIXKXDUNXEUWADEXKUWAFGXK
        XFUWAYJYKXKXGXLUVTUVAUWBUVBUWCUVEUWEUVTUVDUWDPUVTUVJUVKUVSUVDUWDVGAUVJU
        VSUEXMAUVKUVSUFXMAUVSXNZHIUUTRSXOWSXDUVTYPYQUVSUVAUWBVGAYPUVSUGXMAYQUVS
        UHXMUWIDEUUTTUAXOWSUVTUUHUUIUVSUVBUWCVGAUUHUVSUIXMAUUIUVSUJXMUWIFGUUTTU
        AXOWSXFUVTUVQUVRUVSUVNUWGVGAUVQUVSUKXMAUVRUVSULXMUWIYJYKUUTTUAXOWSXPXQX
        GXGXDAYLQVCZUURVGZUUSYLVGZAUWJYJYKQVMZUURYJYKQVHAUVQUVRUWMUURVGUKULBCTU
        AQYJYKUPVIVJVKAUUBYLYSVFZUWKUWLWEUUCAUVQUVRUWNUKULYJYKTUAVNVJYSYMYLUURQ
        WBWFWGXSXR $.
    $}

    ${
      xpsadd.m $e |- .x. = ( +g ` R ) $.
      xpsadd.n $e |- .X. = ( +g ` S ) $.
      xpsadd.p $e |- .xb = ( +g ` T ) $.
      $( Value of the addition operation in a binary structure product.
         (Contributed by Mario Carneiro, 15-Aug-2015.) $)
      xpsadd $p |- ( ph ->
        ( <. A , B >. .xb <. C , D >. ) = <. ( A .x. C ) , ( B .X. D ) >. ) $=
        ( vx vy vk vd vc va vb csca cfv ccda co ccnv cprds cplusg cv cmpt2 eqid
        csn cxp crn cvv wf1o wfo xpsff1o2 f1ocnv mp1i syl f1ocpbl xpsval xpslem
        f1ofo ovexd imasaddval c2o wfn cbs wcel w3a fvexd 2on simp1 simp2 simp3
        con0 a1i prdsplusgval xpsaddlem ) AUJUKBCDEFGHIJKFUQURZFVGGVGUSUTVAZVBU
        TZULVCUJUKNOUJVDVGUKVDVGUSUTVAVEZLMNOPQRSTUAUBUCUDUEUFUGUHUIWTVFZWSVFZA
        NOVHZWSHWSVCURZIWTVAZWTVIZBVGCVGUSUTVAZDVGEVGUSUTVAZVJUMUNUOUPAXFXCXEVK
        ZXFXCXEVLXCXFWTVKXIAUJUKNOWTXAVMXCXFWTVNVOZXFXCXEVTVPAUOVDUPVDUNVDUMVDX
        DXEXFXCXJVQAUJUKFGIWSWTWQLMNOPQRSTXAWQVFZXBVRAUJUKFGIWSWTWQLMNOPQRSTXAX
        KXBVSAWQWRVBWAXDVFZUIWBWRWCWDZXGWSWEURZWFZXHXNWFZWGZULXNXDWRWQXGXHWCVJW
        MWSXBXNVFXQFUQWHWCWMWFXQWIWNXMXOXPWJXMXOXPWKXMXOXPWLXLWOWP $.
    $}

    ${
      xpsmul.m $e |- .x. = ( .r ` R ) $.
      xpsmul.n $e |- .X. = ( .r ` S ) $.
      xpsmul.p $e |- .xb = ( .r ` T ) $.
      $( Value of the multiplication operation in a binary structure product.
         (Contributed by Mario Carneiro, 15-Aug-2015.) $)
      xpsmul $p |- ( ph ->
        ( <. A , B >. .xb <. C , D >. ) = <. ( A .x. C ) , ( B .X. D ) >. ) $=
        ( vx vy vk vd vc va vb csca cfv csn ccda co ccnv cprds cmulr cmpt2 eqid
        cv cxp crn cvv wf1o wfo xpsff1o2 f1ocnv f1ofo syl f1ocpbl xpsval xpslem
        mp1i ovexd imasmulval c2o wfn cbs wcel w3a con0 fvexd simp1 simp2 simp3
        2on a1i prdsmulrval xpsaddlem ) AUJUKBCDEFGHIJKFUQURZFUSGUSUTVAVBZVCVAZ
        ULVDUJUKNOUJVGUSUKVGUSUTVAVBVEZLMNOPQRSTUAUBUCUDUEUFUGUHUIWTVFZWSVFZANO
        VHZWSHWSVDURZIWTVBZWTVIZBUSCUSUTVAVBZDUSEUSUTVAVBZVJUMUNUOUPAXFXCXEVKZX
        FXCXEVLXCXFWTVKXIAUJUKNOWTXAVMXCXFWTVNVTZXFXCXEVOVPAUOVGUPVGUNVGUMVGXDX
        EXFXCXJVQAUJUKFGIWSWTWQLMNOPQRSTXAWQVFZXBVRAUJUKFGIWSWTWQLMNOPQRSTXAXKX
        BVSAWQWRVCWAXDVFZUIWBWRWCWDZXGWSWEURZWFZXHXNWFZWGZULXNWRWQXDXGXHWCVJWHW
        SXBXNVFXQFUQWIWCWHWFXQWMWNXMXOXPWJXMXOXPWKXMXOXPWLXLWOWP $.
    $}
  $}

  ${
    $d a k x y A $.  $d a c k x y B $.  $d a c k G $.  $d a b c K $.  $d x W $.
    $d a c k x y C $.  $d a c k x y R $.  $d a c k x y S $.  $d a b c x y X $.
    $d a b c k ph $.  $d k x y .x. $.  $d k x y .X. $.  $d a b c x y Y $.
    $d a b c .xb $.
    xpssca.t $e |- T = ( R Xs. S ) $.
    xpssca.g $e |- G = ( Scalar ` R ) $.
    xpssca.1 $e |- ( ph -> R e. V ) $.
    xpssca.2 $e |- ( ph -> S e. W ) $.
    $( Value of the scalar field of a binary structure product.  For
       concreteness, we choose the scalar field to match the left argument, but
       in most cases where this slot is meaningful both factors will have the
       same scalar field, so that it doesn't matter which factor is chosen.
       (Contributed by Mario Carneiro, 15-Aug-2015.) $)
    xpssca $p |- ( ph -> G = ( Scalar ` T ) ) $=
      ( vx vy cfv csn ccda co ccnv cvv eqid cbs cxp cprds cmpt2 crn xpsval wf1o
      cv xpslem wfo xpsff1o2 f1ocnv mp1i f1ofo syl ovexd csca wceq wtru eqeltri
      wcel fvex a1i ovex cnvex prdssca trud imassca ) ABUANZCUANZUBZEBOZCOZPQZR
      ZUCQZDLMVIVJLUHOMUHOPQRUDZRZEVQUEZSALMBCDVPVQEFGVIVJHVITZVJTZJKVQTZIVPTZU
      FALMBCDVPVQEFGVIVJHVTWAJKWBIWCUIAVSVKVRUGZVSVKVRUJVKVSVQUGWDALMVIVJVQWBUK
      VKVSVQULUMVSVKVRUNUOAEVOUCUPEVPUQNURUSVPVOESSWCESVAUSEBUQNSIBUQVBUTVCVOSV
      AUSVNVLVMPVDVEVCVFVGVH $.

    xpsvsca.x $e |- X = ( Base ` R ) $.
    xpsvsca.y $e |- Y = ( Base ` S ) $.
    xpsvsca.k $e |- K = ( Base ` G ) $.
    xpsvsca.m $e |- .x. = ( .s ` R ) $.
    xpsvsca.n $e |- .X. = ( .s ` S ) $.
    xpsvsca.p $e |- .xb = ( .s ` T ) $.
    xpsvsca.3 $e |- ( ph -> A e. K ) $.
    xpsvsca.4 $e |- ( ph -> B e. X ) $.
    xpsvsca.5 $e |- ( ph -> C e. Y ) $.
    xpsvsca.6 $e |- ( ph -> ( A .x. B ) e. X ) $.
    xpsvsca.7 $e |- ( ph -> ( A .X. C ) e. Y ) $.
    $( Value of the scalar multiplication function in a binary structure
       product.  (Contributed by Mario Carneiro, 15-Aug-2015.) $)
    xpsvsca $p |- ( ph ->
        ( A .xb <. B , C >. ) = <. ( A .x. B ) , ( A .X. C ) >. ) $=
      ( vx vy vc va vb vk csn ccda co ccnv cv cmpt2 cfv cprds cop wcel crn wceq
      cvsca df-ov eqid xpsfval syl2anc syl5eqr opelxpi wf1o xpsff1o2 f1of ax-mp
      cxp wf ffvelrni syl eqeltrrd cvv xpsval xpslem wfo f1ocnv mp1i f1ofo csca
      ovexd wtru fvex eqeltri a1i ovex cnvex prdssca trud f1ovscpbl imasvscaval
      mpd3an23 wi f1ocnvfv sylancr mpd oveq2d c2o cmpt wa c0 cif iftrue syl6eqr
      fveq2d eqidd oveq123d eqtr4d iffalse pm2.61i adantr simpr syl3anc 3eqtr4a
      wn xpscfv mpteq2dva cbs con0 2on xpscfn eleqtrd prdsvscaval dffn5 3eqtr4d
      wfn sylib eqtrd 3eqtr3d ) ABCURDURUSUTVAZULUMOPULVBURUMVBURUSUTVAVCZVAZVD
      ZGUTZBUUCKEURZFURZUSUTZVAZVEUTZVJVDZUTZUUEVDZBCDVFZGUTBCIUTZBDJUTZVFZABLV
      GUUCUUDVHZVGUUGUUOVIUGAUUPUUDVDZUUCUUTAUVACDUUDUTZUUCCDUUDVKACOVGZDPVGZUV
      BUUCVIUHUIULUMOPUUDCDUUDVLZVMVNVOZAUUPOPWAZVGZUVAUUTVGAUVCUVDUVHUHUICDOPV
      PVNZUVGUUTUUPUUDUVGUUTUUDVQZUVGUUTUUDWBULUMOPUUDUVEVRZUVGUUTUUDVSVTWCWDWE
      ZAUVGUULGUUMHUUEKLUUTBUUCWFUNUOUPAULUMEFHUULUUDKMNOPQUAUBSTUVERUULVLZWGAU
      LUMEFHUULUUDKMNOPQUAUBSTUVERUVMWHZAUUTUVGUUEVQZUUTUVGUUEWIUVJUVOAUVKUVGUU
      TUUDWJWKZUUTUVGUUEWLWDAKUUKVEWNKUULWMVDVIWOUULUUKKWFWFUVMKWFVGZWOKEWMVDWF
      REWMWPWQZWRUUKWFVGWOUUJUUHUUIUSWSWTWRXAXBUCUUMVLZUFAUOVBUPVBUNVBUUMUUELUU
      TUVGUVPXCXDXEAUUFUUPBGAUVAUUCVIZUUFUUPVIZUVFAUVJUVHUVTUWAXFUVKUVIUVGUUTUU
      PUUCUUDXGXHXIXJAUUOUUQURUURURUSUTVAZUUEVDZUUSAUUNUWBUUEAUQXKBUQVBZUUCVDZU
      WDUUKVDZVJVDZUTZXLUQXKUWDUWBVDZXLZUUNUWBAUQXKUWHUWIAUWDXKVGZXMZBUWDXNVIZC
      DXOZUWMEFXOZVJVDZUTZUWMUUQUURXOZUWHUWIUWMUWQUWRVIUWMUWQUUQUWRUWMBBUWNCUWP
      IUWMUWPEVJVDIUWMUWOEVJUWMEFXPXRUDXQUWMBXSUWMCDXPXTUWMUUQUURXPYAUWMYHZUWQU
      URUWRUWSBBUWNDUWPJUWSUWPFVJVDJUWSUWOFVJUWMEFYBXRUEXQUWSBXSUWMCDYBXTUWMUUQ
      UURYBYAYCUWLBBUWEUWNUWGUWPUWLUWFUWOVJUWLEMVGZFNVGZUWKUWFUWOVIAUWTUWKSYDAU
      XAUWKTYDAUWKYEZEFUWDMNYIYFXRUWLBXSUWLUVCUVDUWKUWEUWNVIAUVCUWKUHYDAUVDUWKU
      IYDUXBCDUWDOPYIYFXTUWLUUQOVGZUURPVGZUWKUWIUWRVIAUXCUWKUJYDAUXDUWKUKYDUXBU
      UQUURUWDOPYIYFYGYJAUQUULYKVDZUUKKUUMBUUCXKLWFYLUULUVMUXEVLUVSUCUVQAUVRWRX
      KYLVGAYMWRAUWTUXAUUKXKYSSTEFMNYNVNUGAUUCUUTUXEUVLUVNYOYPAUWBXKYSZUWBUWJVI
      AUXCUXDUXFUJUKUUQUUROPYNVNUQXKUWBYQYTYRXRAUUSUUDVDZUWBVIZUWCUUSVIZAUXGUUQ
      UURUUDUTZUWBUUQUURUUDVKAUXCUXDUXJUWBVIUJUKULUMOPUUDUUQUURUVEVMVNVOAUVJUUS
      UVGVGZUXHUXIXFUVKAUXCUXDUXKUJUKUUQUUROPVPVNUVGUUTUUSUWBUUDXGXHXIUUAUUB $.
  $}

  ${
    $d c d k x y A $.  $d d k x y C $.  $d a b c d k ph $.  $d a b c d k x R $.
    $d c d k x y B $.  $d d k x y D $.  $d a b c d k S $.  $d a b c d x y X $.
    $d c d .<_ $.  $d x W $.  $d a b c d x y Y $.
    xpsle.t $e |- T = ( R Xs. S ) $.
    xpsle.x $e |- X = ( Base ` R ) $.
    xpsle.y $e |- Y = ( Base ` S ) $.
    xpsle.1 $e |- ( ph -> R e. V ) $.
    xpsle.2 $e |- ( ph -> S e. W ) $.
    xpsle.p $e |- .<_ = ( le ` T ) $.
    $( Closure of the ordering in a binary structure product.  (Contributed by
       Mario Carneiro, 15-Aug-2015.) $)
    xpsless $p |- ( ph -> .<_ C_ ( ( X X. Y ) X. ( X X. Y ) ) ) $=
      ( vx vy csn co ccnv cxp csca cfv ccda cprds cv crn cvv eqid xpsval xpslem
      cmpt2 wf1o wfo xpsff1o2 f1ocnv mp1i f1ofo syl ovexd imasless ) AHIUAZBUBU
      CZBRCRUDSTZUESZDPQHIPUFRQUFRUDSTULZTZEVFUGZUHAPQBCDVEVFVCFGHIJKLMNVFUIZVC
      UIZVEUIZUJAPQBCDVEVFVCFGHIJKLMNVIVJVKUKAVHVBVGUMZVHVBVGUNVBVHVFUMVLAPQHIV
      FVIUOVBVHVFUPUQVHVBVGURUSAVCVDUEUTOVA $.

    xpsle.m $e |- M = ( le ` R ) $.
    xpsle.n $e |- N = ( le ` S ) $.
    xpsle.3 $e |- ( ph -> A e. X ) $.
    xpsle.4 $e |- ( ph -> B e. Y ) $.
    xpsle.5 $e |- ( ph -> C e. X ) $.
    xpsle.6 $e |- ( ph -> D e. Y ) $.
    $( Value of the ordering in a binary structure product.  (Contributed by
       Mario Carneiro, 20-Aug-2015.) $)
    xpsle $p |- ( ph ->
        ( <. A , B >. .<_ <. C , D >. <-> ( A M C /\ B N D ) ) ) $=
      ( vx vy va vb vc vd vk csn ccda co ccnv cmpt2 cfv wbr csca cprds cple cop
      cv wa crn wcel wb df-ov wceq eqid xpsfval syl2anc syl5eqr opelxpi wf1o wf
      cxp xpsff1o2 f1of ffvelrni syl eqeltrrd cvv xpsval xpslem wfo f1ocnv mp1i
      ax-mp f1ofo ovexd f1olecpbl imasleval mpd3an23 wi sylancr mpd breq12d c2o
      f1ocnvfv wral cbs con0 fvexd 2on a1i wfn xpscfn eleqtrd prdsleval c1o cpr
      c0 df2o3 raleqi 0ex elexi fveq2 fveq2d breq123d ralpr bitri xpsc0 syl6eqr
      1on xpsc1 anbi12d syl5bb bitrd 3bitr3d ) ABUOCUOUPUQURZUHUINOUHVFUOUIVFUO
      UPUQURUSZURZUTZDUOEUOUPUQURZYPUTZIVAZYNYRFVBUTZFUOGUOUPUQURZVCUQZVDUTZVAZ
      BCVEZDEVEZIVABDJVAZCEKVAZVGZAYNYOVHZVIYRUUKVIYTUUEVJAUUFYOUTZYNUUKAUULBCY
      OUQZYNBCYOVKABNVIZCOVIZUUMYNVLUDUEUHUINOYOBCYOVMZVNVOVPZAUUFNOVTZVIZUULUU
      KVIAUUNUUOUUSUDUEBCNOVQVOZUURUUKUUFYOUURUUKYOVRZUURUUKYOVSUHUINOYOUUPWAZU
      URUUKYOWBWLZWCWDWEZAUUGYOUTZYRUUKAUVEDEYOUQZYRDEYOVKADNVIZEOVIZUVFYRVLUFU
      GUHUINOYODEUUPVNVOVPZAUUGUURVIZUVEUUKVIAUVGUVHUVJUFUGDENOVQVOZUURUUKUUGYO
      UVCWCWDWEZAUURUUCHYPIUUDUUKYNYRWFUJUKULUMAUHUIFGHUUCYOUUALMNOPQRSTUUPUUAV
      MZUUCVMZWGAUHUIFGHUUCYOUUALMNOPQRSTUUPUVMUVNWHZAUUKUURYPVRZUUKUURYPWIUVAU
      VPAUVBUURUUKYOWJWKZUUKUURYPWMWDAUUAUUBVCWNUAUUDVMZAUJVFUKVFULVFUMVFYPUUDU
      UKUURUVQWOWPWQAYQUUFYSUUGIAUULYNVLZYQUUFVLZUUQAUVAUUSUVSUVTWRUVBUUTUURUUK
      UUFYNYOXCWSWTAUVEYRVLZYSUUGVLZUVIAUVAUVJUWAUWBWRUVBUVKUURUUKUUGYRYOXCWSWT
      XAAUUEUNVFZYNUTZUWCYRUTZUWCUUBUTZVDUTZVAZUNXBXDZUUJAUNUUCXEUTZUUBUUAYNYRX
      BUUDWFXFUUCUVNUWJVMAFVBXGXBXFVIAXHXIAFLVIZGMVIZUUBXBXJSTFGLMXKVOAYNUUKUWJ
      UVDUVOXLAYRUUKUWJUVLUVOXLUVRXMUWIXPYNUTZXPYRUTZXPUUBUTZVDUTZVAZXNYNUTZXNY
      RUTZXNUUBUTZVDUTZVAZVGZAUUJUWIUWHUNXPXNXOZXDUXCUWHUNXBUXDXQXRUWHUWQUXBUNX
      PXNXSXNXFYHXTUWCXPVLZUWDUWMUWEUWNUWGUWPUWCXPYNYAUXEUWFUWOVDUWCXPUUBYAYBUW
      CXPYRYAYCUWCXNVLZUWDUWRUWEUWSUWGUXAUWCXNYNYAUXFUWFUWTVDUWCXNUUBYAYBUWCXNY
      RYAYCYDYEAUWQUUHUXBUUIAUWMBUWNDUWPJAUUNUWMBVLUDBCNYFWDAUWPFVDUTJAUWOFVDAU
      WKUWOFVLSFGLYFWDYBUBYGAUVGUWNDVLUFDENYFWDYCAUWRCUWSEUXAKAUUOUWRCVLUEBCOYI
      WDAUXAGVDUTKAUWTGVDAUWLUWTGVLTFGMYIWDYBUCYGAUVHUWSEVLUGDEOYIWDYCYJYKYLYM
      $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Moore spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  $c Moore mrCls mrInd ACS $.

  $( The class of Moore systems. $)
  cmre $a class Moore $.

  $( The class function generating Moore closures. $)
  cmrc $a class mrCls $.

  $( ` mrInd ` is a class function which takes a Moore system to its set of
     independent sets. $)
  cmri $a class mrInd $.

  $( The class of algebraic closure (Moore) systems. $)
  cacs $a class ACS $.

  ${
    $d c f s x $.

    $( Define a _Moore collection_, which is a family of subsets of a base set
       which preserve arbitrary intersection.  Elements of a Moore collection
       are termed _closed_; Moore collections generalize the notion of
       closedness from topologies ( ~ cldmre ) and vector spaces ( ~ lssmre )
       to the most general setting in which such concepts make sense.
       Definition of Moore collection of sets in [Schechter] p. 78.  A Moore
       collection may also be called a _closure system_ (Section 0.6 in
       [Gratzer] p. 23.)  The name _Moore collection_ is after Eliakim Hastings
       Moore, who discussed these systems in Part I of [Moore] p. 53 to 76.

       See ~ ismre , ~ mresspw , ~ mre1cl and ~ mreintcl for the major
       properties of a Moore collection.  Note that a Moore collection uniquely
       determines its base set ( ~ mreuni ); as such the disjoint union of all
       Moore collections is sometimes considered as ` U. ran Moore ` ,
       justified by ~ mreunirn .  (Contributed by Stefan O'Rear, 30-Jan-2015.)
       (Revised by David Moews, 1-May-2017.) $)
    df-mre $a |- Moore = ( x e. _V |-> { c e. ~P ~P x | ( x e. c /\
        A. s e. ~P c ( s =/= (/) -> |^| s e. c ) ) } ) $.

    $( Define the _Moore closure_ of a generating set, which is the smallest
       closed set containing all generating elements.  Definition of Moore
       closure in [Schechter] p. 79.  This generalizes topological closure
       ( ~ mrccls ) and linear span ( ~ mrclsp ).

       A Moore closure operation ` N ` is (1) extensive, i.e.,
       ` x C_ ( N `` x ) ` for all subsets ` x ` of the base set ( ~ mrcssid ),
       (2) isotone, i.e., ` x C_ y ` implies that ` ( N `` x ) C_ ( N `` y ) `
       for all subsets ` x ` and ` y ` of the base set ( ~ mrcss ), and (3)
       idempotent, i.e., ` ( N `` ( N `` x ) ) = ( N `` x ) ` for all subsets
       ` x ` of the base set ( ~ mrcidm .)  Operators satisfying these three
       properties are in bijective correspondence with Moore collections, so
       these properties may be used to give an alternate characterization of a
       Moore collection by providing a closure operation ` N ` on the set of
       subsets of a given base set which satisfies (1), (2), and (3); the
       closed sets can be recovered as those sets which equal their closures
       (Section 4.5 in [Schechter] p. 82.)  (Contributed by Stefan O'Rear,
       31-Jan-2015.)  (Revised by David Moews, 1-May-2017.) $)
    df-mrc $a |- mrCls = ( c e. U. ran Moore |-> ( x e. ~P U. c |->
        |^| { s e. c | x C_ s } ) ) $.

    $( In a Moore system, a set is _independent_ if no element of the set is in
       the closure of the set with the element removed (Section 0.6 in
       [Gratzer] p. 27; Definition 4.1.1 in [FaureFrolicher] p. 83.) ` mrInd `
       is a class function which takes a Moore system to its set of independent
       sets.  (Contributed by David Moews, 1-May-2017.) $)
    df-mri $a |- mrInd = ( c e. U. ran Moore |->
                 { s e. ~P U. c |
                   A. x e. s -. x e. ( ( mrCls ` c ) ` ( s \ { x } ) ) } ) $.

    $( An important subclass of Moore systems are those which can be
       interpreted as closure under some collection of operators of finite
       arity (the collection itself is not required to be finite).  These are
       termed _algebraic closure systems_; similar to definition (A) of an
       algebraic closure system in [Schechter] p. 84, but to avoid the
       complexity of an arbitrary mixed collection of functions of various
       arities (especially if the axiom of infinity ~ omex is to be avoided),
       we consider a single function defined on finite sets instead.
       (Contributed by Stefan O'Rear, 2-Apr-2015.) $)
    df-acs $a |- ACS = ( x e. _V |-> { c e. ( Moore ` x ) |
            E. f ( f : ~P x --> ~P x /\ A. s e. ~P x ( s e. c <->
                    U. ( f " ( ~P s i^i Fin ) ) C_ s ) ) } ) $.
  $}

  ${
    $d C c s x $.  $d X c s x $.  $d S c s x $.
    $( Property of being a Moore collection on some base set.  (Contributed by
       Stefan O'Rear, 30-Jan-2015.) $)
    ismre $p |- ( C e. ( Moore ` X ) <-> ( C C_ ~P X /\ X e. C /\
        A. s e. ~P C ( s =/= (/) -> |^| s e. C ) ) ) $=
      ( vc vx cmre cfv wcel cvv cpw cv wi wral wa crab wceq pweq anbi1d eleq2
      wb wss wne cint w3a elfvex elex 3ad2ant2 wel pweqd eleq1 rabeqbidv df-mre
      vpwex pwex rabex fvmpt3i eleq2d imbi2d raleqbidv anbi12d elrab a1i elpw2g
      c0 pwexg syl 3anass syl6bbr 3bitrd pm5.21nii ) ABFGZHZBIHZABJZUAZBAHZCKZV
      DUBZVQUCZAHZLZCAJZMZUDZABFUEVPVOVMWCBAUFUGVMVLABDKZHZVRVSWEHZLZCWEJZMZNZD
      VNJZOZHZAWLHZVPWCNZNZWDVMVKWMAEBEDUHZWJNZDEKZJZJZOWMIFWTBPZWSWKDXBWLXCXAV
      NWTBQUIXCWRWFWJWTBWEUJRUKECDULWSDXBXAEUMUNUOUPUQWNWQTVMWKWPDAWLWEAPZWFVPW
      JWCWEABSXDWHWACWIWBWEAQXDWGVTVRWEAVSSURUSUTVAVBVMWQVOWPNWDVMWOVOWPVMVNIHW
      OVOTBIVEAVNIVCVFRVOVPWCVGVHVIVJ $.

    $( The Moore collection generator is a well-behaved function.  Analogue for
       Moore collections of ~ fntopon for topologies.  (Contributed by Stefan
       O'Rear, 30-Jan-2015.) $)
    fnmre $p |- Moore Fn _V $=
      ( vx vc vs cvv wel cv c0 wne cint wcel wi wral crab cmre vpwex pwex rabex
      cpw wa df-mre fnmpti ) ADABECFZGHUBIBFZJKCUCRLSZBAFRZRZMNUDBUFUEAOPQACBTU
      A $.

    $( A Moore collection is a subset of the power of the base set; each closed
       subset of the system is actually a subset of the base.  (Contributed by
       Stefan O'Rear, 30-Jan-2015.) $)
    mresspw $p |- ( C e. ( Moore ` X ) -> C C_ ~P X ) $=
      ( vs cmre cfv wcel cpw wss cv c0 wne cint wi wral ismre simp1bi ) ABDEFAB
      GHBAFCIZJKQLAFMCAGNABCOP $.

    $( A Moore-closed subset is a subset.  (Contributed by Stefan O'Rear,
       31-Jan-2015.) $)
    mress $p |- ( ( C e. ( Moore ` X ) /\ S e. C ) -> S C_ X ) $=
      ( cmre cfv wcel wa cpw mresspw sselda elpwid ) ACDEFZBAFGBCLACHBACIJK $.

    $( In any Moore collection the base set is closed.  (Contributed by Stefan
       O'Rear, 30-Jan-2015.) $)
    mre1cl $p |- ( C e. ( Moore ` X ) -> X e. C ) $=
      ( vs cmre cfv wcel cpw wss cv c0 wne cint wi wral ismre simp2bi ) ABDEFAB
      GHBAFCIZJKQLAFMCAGNABCOP $.

    $( A nonempty collection of closed sets has a closed intersection.
       (Contributed by Stefan O'Rear, 30-Jan-2015.) $)
    mreintcl $p |- ( ( C e. ( Moore ` X ) /\ S C_ C /\ S =/= (/) ) ->
        |^| S e. C ) $=
      ( vs cmre cfv wcel wss c0 wne w3a cpw cv cint wral elpw2g biimpar 3adant3
      wi ismre simp3bi 3ad2ant1 simp3 neeq1 inteq eleq1d imbi12d rspcva syl3anc
      wceq 3impia ) ACEFZGZBAHZBIJZKBALZGZDMZIJZURNZAGZSZDUPOZUOBNZAGZUMUNUQUOU
      MUQUNBAULPQRUMUNVCUOUMACLHCAGVCACDTUAUBUMUNUOUCUQVCUOVEVBUOVESDBUPURBUJZU
      SUOVAVEURBIUDVFUTVDAURBUEUFUGUHUKUI $.

    $d I s y $.  $d X y $.  $d C y $.
    $( A nonempty indexed intersection of closed sets is closed.  (Contributed
       by Stefan O'Rear, 1-Feb-2015.) $)
    mreiincl $p |- ( ( C e. ( Moore ` X ) /\ I =/= (/) /\
          A. y e. I S e. C ) -> |^|_ y e. I S e. C ) $=
      ( vs cmre cfv wcel c0 wne wral w3a ciin cv wceq wrex cab 3ad2ant3 wex wss
      cint dfiin2g simp1 uniiunlem ibi wi nfra1 nfre1 nfab nfcv nfne nfim com12
      n0 rsp elisset rspe ex syl5 rexcom4 syl6ib syld abn0 syl6ibr exlimi sylbi
      imp 3adant1 mreintcl syl3anc eqeltrd ) BEGHIZDJKZCBIZADLZMZADCNZFOCPZADQZ
      FRZUBZBVPVMVRWBPVNAFDCBUCSVQVMWABUAZWAJKZWBBIVMVNVPUDVPVMWCVNVPWCAFDCBBUE
      UFSVNVPWDVMVNVPWDVNAODIZATVPWDUGZADUOWEWFAVPWDAVOADUHAWAJVTAFVSADUIUJAJUK
      ULUMWEVPVTFTZWDWEVPVOWGVPWEVOVOADUPUNWEVOVSFTZADQZWGVOWHWEWIFCBUQWEWHWIWH
      ADURUSUTVSAFDVAVBVCVTFVDVEVFVGVHVIBWAEVJVKVL $.

    $( The relative intersection of a set of closed sets is closed.
       (Contributed by Stefan O'Rear, 3-Apr-2015.) $)
    mrerintcl $p |- ( ( C e. ( Moore ` X ) /\ S C_ C ) ->
        ( X i^i |^| S ) e. C ) $=
      ( cmre cfv wcel wss wa cint cin wceq rint0 adantl mre1cl ad2antrr eqeltrd
      c0 wne w3a cpw simp2 mresspw 3ad2ant1 sstrd simp3 rintn0 syl2anc mreintcl
      3expa pm2.61dane ) ACDEFZBAGZHZCBIZJZAFZBQUMBQKZHUOCAUQUOCKUMCBLMUKCAFULU
      QACNOPUKULBQRZUPUKULURSZUOUNAUSBCTZGURUOUNKUSBAUTUKULURUAUKULAUTGURACUBUC
      UDUKULURUECBUFUGABCUHPUIUJ $.

    $( The relative intersection of a family of closed sets is closed.
       (Contributed by Stefan O'Rear, 3-Apr-2015.) $)
    mreriincl $p |- ( ( C e. ( Moore ` X ) /\ A. y e. I S e. C ) ->
        ( X i^i |^|_ y e. I S ) e. C ) $=
      ( cmre cfv wcel wral wa ciin c0 wceq riin0 adantl mre1cl ad2antrr eqeltrd
      cin wne wss mress ex ralimdv imp riinn0 sylan simpll simpr simplr syl3anc
      mreiincl pm2.61dane ) BEFGHZCBHZADIZJZEADCKZSZBHDLUQDLMZJUSEBUTUSEMUQAECD
      NOUNEBHUPUTBEPQRUQDLTZJZUSURBUQCEUAZADIZVAUSURMUNUPVDUNUOVCADUNUOVCBCEUBU
      CUDUEAECDUFUGVBUNVAUPURBHUNUPVAUHUQVAUIUNUPVAUJABCDEULUKRUM $.

    $( Two closed sets have a closed intersection.  (Contributed by Stefan
       O'Rear, 30-Jan-2015.) $)
    mreincl $p |- ( ( C e. ( Moore ` X ) /\ A e. C /\ B e. C ) ->
        ( A i^i B ) e. C ) $=
      ( cmre cfv wcel w3a cpr cint cin wceq intprg 3adant1 c0 simp1 prssi prnzg
      wss wne 3ad2ant2 mreintcl syl3anc eqeltrrd ) CDEFGZACGZBCGZHZABIZJZABKZCU
      FUGUJUKLUEABCCMNUHUEUICSZUIOTZUJCGUEUFUGPUFUGULUEABCQNUFUEUMUGABCRUACUIDU
      BUCUD $.

    $( Since the entire base set of a Moore collection is the greatest element
       of it, the base set can be recovered from a Moore collection by set
       union.  (Contributed by Stefan O'Rear, 30-Jan-2015.) $)
    mreuni $p |- ( C e. ( Moore ` X ) -> U. C = X ) $=
      ( cmre cfv wcel cpw wss cuni wceq mre1cl mresspw elpwuni biimpa syl2anc )
      ABCDEBAEZABFGZAHBIZABJABKOPQABLMN $.

    $( Two ways to express the notion of being a Moore collection on an
       unspecified base.  (Contributed by Stefan O'Rear, 30-Jan-2015.) $)
    mreunirn $p |- ( C e. U. ran Moore <-> C e. ( Moore ` U. C ) ) $=
      ( vx cmre crn cuni wcel cfv cv cvv wrex wfn wb fnmre fnunirn ax-mp mreuni
      fveq2d eleq2d ibir rexlimivw sylbi fvssunirn sseli impbii ) ACDEZFZAAEZCG
      ZFZUFABHZCGZFZBIJZUICIKUFUMLMBACINOULUIBIULUIULUHUKAULUGUJCAUJPQRSTUAUHUE
      ACUGUBUCUD $.
  $}

  ${
    $d ph s $.  $d C s $.  $d X s $.
    ismred.ss $e |- ( ph -> C C_ ~P X ) $.
    ismred.ba $e |- ( ph -> X e. C ) $.
    ismred.in $e |- ( ( ph /\ s C_ C /\ s =/= (/) ) -> |^| s e. C ) $.
    $( Properties that determine a Moore collection.  (Contributed by Stefan
       O'Rear, 30-Jan-2015.) $)
    ismred $p |- ( ph -> C e. ( Moore ` X ) ) $=
      ( cpw wss wcel cv c0 wne cint wi wral cmre cfv selpw 3expia sylan2b ismre
      ralrimiva syl3anbrc ) ABCHICBJDKZLMZUENBJZOZDBHZPBCQRJEFAUHDUIUEUIJAUEBIZ
      UHDBSAUJUFUGGTUAUCBCDUBUD $.
  $}

  ${
    $d ph s $.  $d C s $.  $d X s $.
    ismred2.ss $e |- ( ph -> C C_ ~P X ) $.
    ismred2.in $e |- ( ( ph /\ s C_ C ) -> ( X i^i |^| s ) e. C ) $.
    $( Properties that determine a Moore collection, using restricted
       intersection.  (Contributed by Stefan O'Rear, 3-Apr-2015.) $)
    ismred2 $p |- ( ph -> C e. ( Moore ` X ) ) $=
      ( c0 cint cin wceq eqid rint0 ax-mp wss wcel 0ss cv wa wi 0ex sseq1 inteq
      anbi2d ineq2d eleq1d imbi12d vtocl mpan2 syl5eqelr wne w3a simp2 3ad2ant1
      cpw sstrd simp3 rintn0 syl2anc 3adant3 eqeltrrd ismred ) ABCDEACCGHZIZBGG
      JVCCJGKCGLMAGBNZVCBOZBPADQZBNZRZCVFHZIZBOZSAVDRZVESDGTVFGJZVHVLVKVEVMVGVD
      AVFGBUAUCVMVJVCBVMVIVBCVFGUBUDUEUFFUGUHUIAVGVFGUJZUKZVJVIBVOVFCUNZNVNVJVI
      JVOVFBVPAVGVNULAVGBVPNVNEUMUOAVGVNUPCVFUQURAVGVKVNFUSUTVA $.
  $}

  ${
    $d V a b c $.  $d X a b c $.

    $( The Moore collections of subsets of a space, viewed as a kind of subset
       of the power set, form a Moore collection in their own right on the
       power set.  (Contributed by Stefan O'Rear, 30-Jan-2015.) $)
    mremre $p |- ( X e. V -> ( Moore ` X ) e. ( Moore ` ~P X ) ) $=
      ( va vb vc wcel cpw wss cv mresspw a1i c0 wne w3a wb mpbird ismred sselda
      cint wa cmre cfv selpw sylibr ssriv ssid pwidg intssuni2 3adant1 syl6sseq
      unipw elpw2g 3ad2ant1 wel wex n0 intss1 adantl simpr syl sstrd ex exlimdv
      cuni syl5bi 3impia wral simp2 mre1cl elintg simp12 simpl2 simpl3 mreintcl
      ralrimiva syl3anc cvv intex sylbi 3ad2ant3 ) BAFZBUAUBZBGZCWBWCGZHWACWBWD
      CIZWBFWEWCHZWEWDFWEBJCWCUCUDUEKWAWCBCWCWCHWAWCUFKBAUGWAWFWELMZNZWESZWCFZW
      IBHZWHWIWCVDZBWFWGWIWLHWAWEWCUHUIBUKUJWAWFWJWKOWGWIBAULUMPQWAWEWBHZWGNZWI
      BDWAWMWGWIWCHZWGDCUNZDUOWAWMTZWODWEUPWQWPWODWQWPWOWQWPTZWIDIZWCWPWIWSHWQW
      SWEUQURWRWSWBFZWSWCHWQWEWBWSWAWMUSRWSBJUTVAVBVCVEVFWNBWIFZBWSFZDWEVGZWNXB
      DWEWNWPTWTXBWNWEWBWSWAWMWGVHRWSBVIUTVOWAWMXAXCOWGDBWEAVJUMPWNWSWIHZWSLMZN
      ZWSSZWIFZXGEIZFZEWEVGZXFXJEWEXFECUNZTZXIWBFWSXIHXEXJXFWEWBXIWAWMWGXDXEVKR
      XMWSWIXIWNXDXEXLVLXLWIXIHXFXIWEUQURVAWNXDXEXLVMXIWSBVNVPVOXEWNXHXKOZXDXEX
      GVQFXNWSVREXGWEVQVJVSVTPQQ $.
  $}

  ${
    $d A x $.  $d C x $.  $d X x $.
    $( The subcollection of a closed set system below a given closed set is
       itself a closed set system.  (Contributed by Stefan O'Rear,
       9-Mar-2015.) $)
    submre $p |- ( ( C e. ( Moore ` X ) /\ A e. C ) ->
        ( C i^i ~P A ) e. ( Moore ` A ) ) $=
      ( vx cmre cfv wcel wa cpw cin wss inss2 a1i simpr pwidg adantl elind sstr
      mpan2 3ad2ant2 cv c0 wne w3a cint simp1l inss1 mreintcl syl3anc intssuni2
      simp3 cuni syl2anc unipw syl6sseq wb elpw2g 3ad2ant1 mpbird ismred ) BCEF
      GZABGZHZBAIZJZADVEVDKZVCBVDLZMVCBVDAVAVBNVBAVDGVAABOPQVCDUAZVEKZVHUBUCZUD
      ZBVDVHUEZVKVAVHBKZVJVLBGVAVBVIVJUFVIVCVMVJVIVEBKVMBVDUGVHVEBRSTVCVIVJUKZB
      VHCUHUIVKVLVDGZVLAKZVKVLVDULZAVKVHVDKZVJVLVQKVIVCVRVJVIVFVRVGVHVEVDRSTVNV
      HVDUJUMAUNUOVCVIVOVPUPZVJVBVSVAVLABUQPURUSQUT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Moore closures
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d F c x s $.  $d C c x s $.  $d X c x s $.  $d U c x s $.  $d V c x s $.
    $( The domain and range of the function expression for Moore closures.
       (Contributed by Stefan O'Rear, 31-Jan-2015.) $)
    mrcflem $p |- ( C e. ( Moore ` X ) ->
        ( x e. ~P X |-> |^| { s e. C | x C_ s } ) : ~P X --> C ) $=
      ( cmre cfv wcel cpw cv wss crab cint cmpt wa wne simpl ssrab2 a1i mre1cl
      c0 adantr elpwi sseq2 elrab sylanbrc ne0i syl mreintcl syl3anc eqid fmptd
      adantl ) BCEFGZACHZAIZDIZJZDBKZLZBAUNUSMZUMUOUNGZNZUMURBJZURTOZUSBGUMVAPV
      CVBUQDBQRVBCURGZVDVBCBGZUOCJZVEUMVFVABCSUAVAVGUMUOCUBULUQVGDCBUPCUOUCUDUE
      URCUFUGBURCUHUIUTUJUK $.

    $( Moore-closure is a well-behaved function.  (Contributed by Stefan
       O'Rear, 1-Feb-2015.) $)
    fnmrc $p |- mrCls Fn U. ran Moore $=
      ( vx vc vs cv cuni cpw wss crab cint cmpt cvv wcel cmrc cmre df-mrc fnmpt
      crn wfn cfv mreunirn cxp mrcflem fssxp syl vuniex pwex xpex ssexg sylancl
      wf vex sylbi mprg ) ABDZEZFZADCDGCUNHIJZKLZMNQEZRBUSBUSUQMKACBOPUNUSLUNUO
      NSLZURUNTUTUQUPUNUAZGZVAKLURUTUPUNUQUJVBAUNUOCUBUPUNUQUCUDUPUNUOBUEUFBUKU
      GUQVAKUHUIULUM $.

    mrcfval.f $e |- F = ( mrCls ` C ) $.
    $( Value of the function expression for the Moore closure.  (Contributed by
       Stefan O'Rear, 31-Jan-2015.) $)
    mrcfval $p |- ( C e. ( Moore ` X ) -> F =
        ( x e. ~P X |-> |^| { s e. C | x C_ s } ) ) $=
      ( vc cmre cfv wcel cmrc cpw cv wss crab cint cmpt cuni wceq cvv fvssunirn
      crn sseli unieq pweqd rabeq inteqd mpteq12dv df-mrc cxp wf mreunirn sylbi
      mrcflem fssxp syl vuniex pwex vex xpex ssexg sylancl fvmpt3 mpteq1d eqtrd
      mreuni syl5eq ) BDHIZJZCBKIZADLZAMEMNZEBOZPZQZFVIVJABRZLZVNQZVOVIBHUBRZJV
      JVRSVHVSBHDUAUCGBAGMZRZLZVLEVTOZPZQZVRVSKTVTBSZAWBWDVQVNWFWAVPVTBUDUEWFWC
      VMVLEVTBUFUGUHAEGUIVTVSJZWEWBVTUJZNZWHTJWETJWGWBVTWEUKZWIWGVTWAHIJWJVTULA
      VTWAEUNUMWBVTWEUOUPWBVTWAGUQURGUSUTWEWHTVAVBVCUPVIAVQVKVNVIVPDBDVFUEVDVEV
      G $.

    $( The Moore closure is a function mapping arbitrary subsets to closed
       sets.  (Contributed by Stefan O'Rear, 31-Jan-2015.) $)
    mrcf $p |- ( C e. ( Moore ` X ) -> F : ~P X --> C ) $=
      ( vx vs cmre cfv wcel cpw wf cv wss crab cint cmpt mrcflem mrcfval mpbird
      feq1d ) ACGHIZCJZABKUBAEUBELFLMFANOPZKEACFQUAUBABUCEABCFDRTS $.

    $( Evaluation of the Moore closure of a set.  (Contributed by Stefan
       O'Rear, 31-Jan-2015.)  (Proof shortened by Fan Zheng, 6-Jun-2016.) $)
    mrcval $p |- ( ( C e. ( Moore ` X ) /\ U C_ X ) -> ( F ` U ) =
        |^| { s e. C | U C_ s } ) $=
      ( vx cmre cfv wcel wss wa cv crab cint cpw cvv wceq adantr syl cmpt sseq1
      mrcfval rabbidv inteqd adantl wb mre1cl elpw2g biimpar c0 wne simpr sseq2
      elrab sylanbrc ne0i intex sylib fvmptd ) ADHIJZBDKZLZGBGMZEMZKZEANZOZBVEK
      ZEANZOZDPZCQVACGVLVHUARVBGACDEFUCSVDBRZVHVKRVCVMVGVJVMVFVIEAVDBVEUBUDUEUF
      VABVLJZVBVADAJZVNVBUGADUHZBDAUITUJVCVJUKULZVKQJVCDVJJZVQVCVOVBVRVAVOVBVPS
      VAVBUMVIVBEDAVEDBUNUOUPVJDUQTVJURUSUT $.

    $( The Moore closure of a set is a closed set.  (Contributed by Stefan
       O'Rear, 31-Jan-2015.) $)
    mrccl $p |- ( ( C e. ( Moore ` X ) /\ U C_ X ) -> ( F ` U ) e. C ) $=
      ( cmre cfv wcel wss wa cpw mrcf adantr mre1cl elpw2g syl biimpar ffvelrnd
      wf wb ) ADFGHZBDIZJDKZABCUAUCACSUBACDELMUABUCHZUBUADAHUDUBTADNBDAOPQR $.

    $( The Moore closure of a singleton is a closed set.  (Contributed by
       Stefan O'Rear, 31-Jan-2015.) $)
    mrcsncl $p |- ( ( C e. ( Moore ` X ) /\ U e. X ) -> ( F ` { U } ) e. C ) $=
      ( wcel cmre cfv csn wss snssi mrccl sylan2 ) BDFADGHFBIZDJNCHAFBDKANCDELM
      $.

    $( The closure of a closed set is itself.  (Contributed by Stefan O'Rear,
       31-Jan-2015.) $)
    mrcid $p |- ( ( C e. ( Moore ` X ) /\ U e. C ) -> ( F ` U ) = U ) $=
      ( vs cmre cfv wcel wa cv crab cint wceq mress mrcval syldan intmin adantl
      wss eqtrd ) ADGHIZBAIZJBCHZBFKTFALMZBUBUCBDTUDUENABDOABCDFEPQUCUEBNUBFBAR
      SUA $.

    $( The closure of a set is a subset of the base.  (Contributed by Stefan
       O'Rear, 31-Jan-2015.) $)
    mrcssv $p |- ( C e. ( Moore ` X ) -> ( F ` U ) C_ X ) $=
      ( cmre cfv wcel crn cuni fvssunirn cpw wf wss mrcf frn uniss 3syl sseqtrd
      mreuni syl5ss ) ADFGHZBCGCIZJZDCBKUBUDAJZDUBDLZACMUCANUDUENACDEOUFACPUCAQ
      RADTSUA $.

    $( A set is closed iff it is equal to its closure.  (Contributed by Stefan
       O'Rear, 31-Jan-2015.) $)
    mrcidb $p |- ( C e. ( Moore ` X ) -> ( U e. C <-> ( F ` U ) = U ) ) $=
      ( cmre cfv wcel wceq mrcid wa simpr mrcssv adantr eqsstr3d mrccl eqeltrrd
      wss syldan impbida ) ADFGHZBAHBCGZBIZABCDEJUAUCKZUBBAUAUCLZUAUCBDRUBAHUDB
      UBDUEUAUBDRUCABCDEMNOABCDEPSQT $.

    $( Closure preserves subset ordering.  (Contributed by Stefan O'Rear,
       31-Jan-2015.) $)
    mrcss $p |- ( ( C e. ( Moore ` X ) /\ U C_ V /\ V C_ X ) ->
        ( F ` U ) C_ ( F ` V ) ) $=
      ( vs cmre cfv wcel wss w3a cv crab cint wi sstr2 adantr wceq mrcval intss
      ss2rabdv syl 3ad2ant2 simp1 sstr 3adant1 syl2anc 3adant2 3sstr4d ) AEHIJZ
      BDKZDEKZLZBGMZKZGANZOZDUOKZGANZOZBCIZDCIZULUKURVAKZUMULUTUQKVDULUSUPGAULU
      SUPPUOAJBDUOQRUBUTUQUAUCUDUNUKBEKZVBURSUKULUMUEULUMVEUKBDEUFUGABCEGFTUHUK
      UMVCVASULADCEGFTUIUJ $.

    $( The closure of a set is a superset.  (Contributed by Stefan O'Rear,
       31-Jan-2015.) $)
    mrcssid $p |- ( ( C e. ( Moore ` X ) /\ U C_ X ) -> U C_ ( F ` U ) ) $=
      ( vs cmre cfv wcel wss wa cv crab cint ssintub mrcval syl5sseqr ) ADGHIBD
      JKBFLJFAMNBBCHFBAOABCDFEPQ $.

    $( A set is closed iff it contains its closure.  (Contributed by Stefan
       O'Rear, 2-Apr-2015.) $)
    mrcidb2 $p |- ( ( C e. ( Moore ` X ) /\ U C_ X ) ->
        ( U e. C <-> ( F ` U ) C_ U ) ) $=
      ( cmre cfv wcel wss wa wceq mrcidb adantr mrcssid biantrud syl6rbbr bitrd
      wb eqss ) ADFGHZBDIZJZBAHZBCGZBKZUDBIZTUCUERUAABCDELMUBUFUFBUDIZJUEUBUGUF
      ABCDENOUDBSPQ $.

    $( The closure operation is idempotent.  (Contributed by Stefan O'Rear,
       31-Jan-2015.) $)
    mrcidm $p |- ( ( C e. ( Moore ` X ) /\ U C_ X ) ->
        ( F ` ( F ` U ) ) = ( F ` U ) ) $=
      ( cmre cfv wcel wss wceq mrccl mrcid syldan ) ADFGHBDIBCGZAHNCGNJABCDEKAN
      CDELM $.

    $( The closure is the minimal closed set; any closed set which contains the
       generators is a superset of the closure.  (Contributed by Stefan O'Rear,
       31-Jan-2015.) $)
    mrcsscl $p |- ( ( C e. ( Moore ` X ) /\ U C_ V /\ V e. C ) ->
        ( F ` U ) C_ V ) $=
      ( cmre cfv wcel wss w3a mress 3adant2 mrcss syld3an3 wceq mrcid sseqtrd )
      AEGHIZBDJZDAIZKBCHZDCHZDSTUADEJZUBUCJSUAUDTADELMABCDEFNOSUAUCDPTADCEFQMR
      $.

    $( Idempotence of closure under a general union.  (Contributed by Stefan
       O'Rear, 31-Jan-2015.) $)
    mrcuni $p |- ( ( C e. ( Moore ` X ) /\ U C_ ~P X ) ->
        ( F ` U. U ) = ( F ` U. ( F " U ) ) ) $=
      ( vs vx cfv wcel wss wa cuni wral syl2anc syl adantr unissb mrcss syl3anc
      sylibr cmre cpw cima simpl cv simpll ssel2 elpwid adantll mrcssid wfun wi
      cdm wf mrcf ffun fdm sseq2d biimpar funfvima2 imp elssuni sstrd ralrimiva
      wceq mrcssv ralrimivw wfn wb ffn sseq1 ralima sylan mpbird adantl sspwuni
      biimpi mrcidm sseqtrd eqssd ) ADUAHIZBDUBZJZKZBLZCHZCBUCZLZCHZWDWAWEWHJZW
      HDJZWFWIJWAWCUDZWDFUEZWHJZFBMWJWDWNFBWDWMBIZKZWMWMCHZWHWPWAWMDJZWMWQJWAWC
      WOUFWCWOWRWAWCWOKWMDBWBWMUGUHUIAWMCDEUJNWPWQWGIZWQWHJWDWOWSWDCUKZBCUMZJZW
      OWSULWAWTWCWAWBACUNZWTACDEUOZWBACUPOPWAXBWCWAXAWBBWAXCXAWBVEXDWBACUQOURUS
      BWMCUTNVAWQWGVBOVCVDFBWHQTWDWRFWGMZWKWDXEGUEZCHZDJZGBMZWDXHGBWAXHWCAXFCDE
      VFPVGWACWBVHZWCXEXIVIWAXCXJXDWBACVJOZWRXHFGWBBCWMXGDVKVLVMVNFWGDQTAWECWHD
      ERSWDWIWFCHZWFWDWAWHWFJZWFDJZWIXLJWLWDWMWFJZFWGMZXMWDXPXGWFJZGBMZWDXQGBWD
      XFBIZKWAXFWEJZWEDJZXQWAWCXSUFXSXTWDXFBVBVOWDYAXSWCYAWAWCYABDVPVQVOZPAXFCW
      EDERSVDWAXJWCXPXRVIXKXOXQFGWBBCWMXGWFVKVLVMVNFWGWFQTWAXNWCAWECDEVFPAWHCWF
      DERSWDWAYAXLWFVEWLYBAWECDEVRNVSVT $.

    $( Idempotence of closure under a pair union.  (Contributed by Stefan
       O'Rear, 31-Jan-2015.) $)
    mrcun $p |- ( ( C e. ( Moore ` X ) /\ U C_ X /\ V C_ X ) ->
        ( F ` ( U u. V ) ) = ( F ` ( ( F ` U ) u. ( F ` V ) ) ) ) $=
      ( cfv wcel wss cpr cuni cun wceq elpw2g syl biimpar syl2anc fveq2d fvex
      wb cmre w3a cima cpw simp1 mre1cl 3adant3 3adant2 prssi mrcuni uniprg wfn
      wf mrcf ffn 3ad2ant1 fnimapr syl3anc unieqd unipr syl6eq 3eqtr3d ) AEUAGH
      ZBEIZDEIZUBZBDJZKZCGZCVGUCZKZCGZBDLZCGBCGZDCGZLZCGVFVCVGEUDZIZVIVLMVCVDVE
      UEVFBVQHZDVQHZVRVCVDVSVEVCVSVDVCEAHZVSVDTAEUFZBEANOPUGZVCVEVTVDVCVTVEVCWA
      VTVETWBDEANOPUHZBDVQUIQAVGCEFUJQVFVHVMCVFVSVTVHVMMWCWDBDVQVQUKQRVFVKVPCVF
      VKVNVOJZKVPVFVJWEVFCVQULZVSVTVJWEMVCVDWFVEVCVQACUMWFACEFUNVQACUOOUPWCWDVQ
      BDCUQURUSVNVOBCSDCSUTVARVB $.
  $}

  ${
    mrcssd.1 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    mrcssd.2 $e |- N = ( mrCls ` A ) $.
    $( The Moore closure of a set is a subset of the base.  Deduction form of
       ~ mrcssv .  (Contributed by David Moews, 1-May-2017.) $)
    mrcssvd $p |- ( ph -> ( N ` B ) C_ X ) $=
      ( cmre cfv wcel wss mrcssv syl ) ABEHIJCDIEKFBCDEGLM $.

    mrcssd.3 $e |- ( ph -> U C_ V ) $.
    mrcssd.4 $e |- ( ph -> V C_ X ) $.
    $( Moore closure preserves subset ordering.  Deduction form of ~ mrcss .
       (Contributed by David Moews, 1-May-2017.) $)
    mrcssd $p |- ( ph -> ( N ` U ) C_ ( N ` V ) ) $=
      ( cmre cfv wcel wss mrcss syl3anc ) ABFKLMCENEFNCDLEDLNGIJBCDEFHOP $.
  $}

  ${
    mrcssidd.1 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    mrcssidd.2 $e |- N = ( mrCls ` A ) $.
    mrcssidd.3 $e |- ( ph -> U C_ X ) $.
    $( A set is contained in its Moore closure.  Deduction form of ~ mrcssid .
       (Contributed by David Moews, 1-May-2017.) $)
    mrcssidd $p |- ( ph -> U C_ ( N ` U ) ) $=
      ( cmre cfv wcel wss mrcssid syl2anc ) ABEIJKCELCCDJLFHBCDEGMN $.

    $( Moore closure is idempotent.  Deduction form of ~ mrcidm .  (Contributed
       by David Moews, 1-May-2017.) $)
    mrcidmd $p |- ( ph -> ( N ` ( N ` U ) ) = ( N ` U ) ) $=
      ( cmre cfv wcel wss wceq mrcidm syl2anc ) ABEIJKCELCDJZDJPMFHBCDEGNO $.
  $}

  ${
    mressmrcd.1 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    mressmrcd.2 $e |- N = ( mrCls ` A ) $.
    mressmrcd.3 $e |- ( ph -> S C_ ( N ` T ) ) $.
    mressmrcd.4 $e |- ( ph -> T C_ S ) $.
    $( In a Moore system, if a set is between another set and its closure, the
       two sets have the same closure.  Deduction form.  (Contributed by David
       Moews, 1-May-2017.) $)
    mressmrcd $p |- ( ph -> ( N ` S ) = ( N ` T ) ) $=
      ( cfv mrcssvd mrcssd sstrd mrcidmd sseqtrd eqssd ) ACEKZDEKZARSEKSABCESFG
      HIABDEFGHLZMABDEFGHADCFJACSFITNZNOPABDECFGHJUAMQ $.
  $}

  ${
    submrc.f $e |- F = ( mrCls ` C ) $.
    submrc.g $e |- G = ( mrCls ` ( C i^i ~P D ) ) $.
    $( In a closure system which is cut off above some level, closures below
       that level act as normal.  (Contributed by Stefan O'Rear,
       9-Mar-2015.) $)
    submrc $p |- ( ( C e. ( Moore ` X ) /\ D e. C /\ U C_ D ) ->
        ( G ` U ) = ( F ` U ) ) $=
      ( cmre cfv wcel wss w3a 3adant3 mrcssidd mrccl syl2anc mrcsscl syl3anc
      cpw cin submre simp1 simp3 mress sstrd 3com23 fvex elpw elind inss1 eqssd
      sylibr sseldi ) AFIJKZBAKZCBLZMZCEJZCDJZURABTZUAZBIJKZCUTLUTVBKUSUTLUOUPV
      CUQBAFUBNZURACDFUOUPUQUCZGURCBFUOUPUQUDZUOUPBFLUQABFUENUFZOURAVAUTURUOCFL
      UTAKVEVGACDFGPQURUTBLZUTVAKUOUQUPVHACDBFGRUGUTBCDUHUIUMUJVBCEUTBHRSURUOCU
      SLUSAKUTUSLVEURVBCEBVDHVFOURVBAUSAVAUKURVCUQUSVBKVDVFVBCEBHPQUNACDUSFGRSU
      L $.
  $}

  ${
    mrieqvlemd.1 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    mrieqvlemd.2 $e |- N = ( mrCls ` A ) $.
    mrieqvlemd.3 $e |- ( ph -> S C_ X ) $.
    mrieqvlemd.4 $e |- ( ph -> Y e. S ) $.
    $( In a Moore system, if ` Y ` is a member of ` S ` , ` ( S \ { Y } ) ` and
       ` S ` have the same closure if and only if ` Y ` is in the closure of
       ` ( S \ { Y } ) ` .  Used in the proof of ~ mrieqvd and ~ mrieqv2d .
       Deduction form.  (Contributed by David Moews, 1-May-2017.) $)
    mrieqvlemd $p |- ( ph -> ( Y e. ( N ` ( S \ { Y } ) ) <->
                               ( N ` ( S \ { Y } ) ) = ( N ` S ) ) ) $=
      ( csn cdif cfv wcel wceq wa adantr cun mrcssidd simpr undif1 wss ssdifssd
      cmre snssd unssd syl5eqssr unssad difssd mressmrcd eqcomd sseldd eleqtrrd
      impbida ) AFCFKZLZDMZNZUQCDMZOZAURPZUSUQVABCUPDEABEUDMNURGQZHVACUOUQVACUO
      RUPUORUQCUOUAVAUPUOUQVABUPDEVBHVACEUOACEUBURIQUCSVAFUQAURTUEUFUGUHVACUOUI
      UJUKAUTPFUSUQAFUSNUTACUSFABCDEGHISJULQAUTTUMUN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Independent sets in a Moore system
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A c s x $.  $d c N $.  $d s X $.
    mrisval.1 $e |- N = ( mrCls ` A ) $.
    mrisval.2 $e |- I = ( mrInd ` A ) $.
    $( Value of the set of independent sets of a Moore system.  (Contributed by
       David Moews, 1-May-2017.) $)
    mrisval $p |- ( A e. ( Moore ` X ) -> I = { s e. ~P X |
                    A. x e. s -. x e. ( N ` ( s \ { x } ) ) } ) $=
      ( vc cmre cfv wcel cv wn wral cuni cpw crab cmri cmrc cdif wceq fvssunirn
      csn sseli unieq pweqd fveq2 syl6eqr fveq1d eleq2d notbid rabeqbidv df-mri
      crn ralbidv vuniex pwex rabex fvmpt3i syl syl5eq mreuni rabeqdv eqtrd ) B
      EJKZLZCAMZFMZVHUDUAZDKZLZNZAVIOZFBPZQZRZVNFEQZRVGCBSKZVQHVGBJUOPZLVSVQUBV
      FVTBJEUCUEIBVHVJIMZTKZKZLZNZAVIOZFWAPZQZRVQVTSWABUBZWFVNFWHVPWIWGVOWABUFU
      GWIWEVMAVIWIWDVLWIWCVKVHWIVJWBDWIWBBTKDWABTUHGUIUJUKULUPUMAFIUNWFFWHWGIUQ
      URUSUTVAVBVGVNFVPVRVGVOEBEVCUGVDVE $.
  $}

  ${
    $d A s x $.  $d s S x $.  $d s X $.  $d s N $.
    ismri.1 $e |- N = ( mrCls ` A ) $.
    ismri.2 $e |- I = ( mrInd ` A ) $.
    $( Criterion for a set to be an independent set of a Moore system.
       (Contributed by David Moews, 1-May-2017.) $)
    ismri $p |- ( A e. ( Moore ` X ) -> ( S e. I <->
                  ( S C_ X /\ A. x e. S -. x e. ( N ` ( S \ { x } ) ) ) ) ) $=
      ( vs cmre cfv wcel cpw cv cdif wn wral wa eleq2d cvv csn wss crab mrisval
      wceq difeq1 fveq2d notbid raleqbi1dv elrab syl6bb wb elfvex elpw2g anbi1d
      syl bitrd ) BFJKLZCDLZCFMZLZANZCVBUAZOZEKZLZPZACQZRZCFUBZVHRURUSCVBINZVCO
      ZEKZLZPZAVKQZIUTUCZLVIURDVQCABDEFIGHUDSVPVHICUTVOVGAVKCVKCUEZVNVFVRVMVEVB
      VRVLVDEVKCVCUFUGSUHUIUJUKURVAVJVHURFTLVAVJULBFJUMCFTUNUPUOUQ $.
  $}

  ${
    $d A x $.  $d S x $.
    ismri2.1 $e |- N = ( mrCls ` A ) $.
    ismri2.2 $e |- I = ( mrInd ` A ) $.
    $( Criterion for a subset of the base set in a Moore system to be
       independent.  (Contributed by David Moews, 1-May-2017.) $)
    ismri2 $p |- ( ( A e. ( Moore ` X ) /\ S C_ X ) ->
                   ( S e. I <-> A. x e. S -. x e. ( N ` ( S \ { x } ) ) ) ) $=
      ( cmre cfv wcel wss cv csn cdif wn wral ismri baibd ) BFIJKCDKCFLAMZCTNOE
      JKPACQABCDEFGHRS $.

    ismri2d.3 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    ismri2d.4 $e |- ( ph -> S C_ X ) $.
    $( Criterion for a subset of the base set in a Moore system to be
       independent.  Deduction form.  (Contributed by David Moews,
       1-May-2017.) $)
    ismri2d $p |- ( ph ->
                    ( S e. I <-> A. x e. S -. x e. ( N ` ( S \ { x } ) ) ) ) $=
      ( cmre cfv wcel wss cv csn cdif wn wral wb ismri2 syl2anc ) ACGLMNDGODENB
      PZDUDQRFMNSBDTUAJKBCDEFGHIUBUC $.

    ismri2dd.5 $e |- ( ph -> A. x e. S -. x e. ( N ` ( S \ { x } ) ) ) $.
    $( Definition of independence of a subset of the base set in a Moore
       system.  One-way deduction form.  (Contributed by David Moews,
       1-May-2017.) $)
    ismri2dd $p |- ( ph -> S e. I ) $=
      ( wcel cv csn cdif cfv wn wral ismri2d mpbird ) ADEMBNZDUBOPFQMRBDSLABCDE
      FGHIJKTUA $.
  $}

  ${
    $d A x $.  $d S x $.
    mriss.1 $e |- I = ( mrInd ` A ) $.
    $( An independent set of a Moore system is a subset of the base set.
       (Contributed by David Moews, 1-May-2017.) $)
    mriss $p |- ( ( A e. ( Moore ` X ) /\ S e. I ) -> S C_ X ) $=
      ( vx cmre cfv wcel wss cv csn cdif cmrc wn wral eqid ismri simprbda ) ADG
      HIBCIBDJFKZBTLMANHZHIOFBPFABCUADUAQERS $.

    mrissd.2 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    mrissd.3 $e |- ( ph -> S e. I ) $.
    $( An independent set of a Moore system is a subset of the base set.
       Deduction form.  (Contributed by David Moews, 1-May-2017.) $)
    mrissd $p |- ( ph -> S C_ X ) $=
      ( cmre cfv wcel wss mriss syl2anc ) ABEIJKCDKCELGHBCDEFMN $.
  $}

  ${
    $d A x $.  $d S x $.  $d x ph $.  $d x Y $.  $d x N $.
    ismri2dad.1 $e |- N = ( mrCls ` A ) $.
    ismri2dad.2 $e |- I = ( mrInd ` A ) $.
    ismri2dad.3 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    ismri2dad.4 $e |- ( ph -> S e. I ) $.
    ismri2dad.5 $e |- ( ph -> Y e. S ) $.
    $( Consequence of a set in a Moore system being independent.  Deduction
       form.  (Contributed by David Moews, 1-May-2017.) $)
    ismri2dad $p |- ( ph -> -. Y e. ( N ` ( S \ { Y } ) ) ) $=
      ( vx cv csn cdif cfv wcel wn wral mrissd ismri2d mpbid wceq simpr difeq2d
      wa sneqd fveq2d eleq12d notbid rspcdv mpd ) AMNZCUNOZPZEQZRZSZMCTZGCGOZPZ
      EQZRZSZACDRUTKAMBCDEFHIJABCDFIJKUAUBUCAUSVEMGCLAUNGUDZUGZURVDVGUNGUQVCAVF
      UEZVGUPVBEVGUOVACVGUNGVHUHUFUIUJUKULUM $.
  $}

  ${
    $d A x $.  $d S x $.  $d x ph $.
    mrieqvd.1 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    mrieqvd.2 $e |- N = ( mrCls ` A ) $.
    mrieqvd.3 $e |- I = ( mrInd ` A ) $.
    mrieqvd.4 $e |- ( ph -> S C_ X ) $.
    $( In a Moore system, a set is independent if and only if, for all elements
       of the set, the closure of the set with the element removed is unequal
       to the closure of the original set.  Part of Proposition 4.1.3 in
       [FaureFrolicher] p. 83.  (Contributed by David Moews, 1-May-2017.) $)
    mrieqvd $p |- ( ph -> ( S e. I <->
                          A. x e. S ( N ` ( S \ { x } ) ) =/= ( N ` S ) ) ) $=
      ( wcel cv csn cdif cfv wn wral wne adantr ismri2d wa wss simpr mrieqvlemd
      cmre necon3bbid ralbidva bitrd ) ADELBMZDUJNOFPZLZQZBDRUKDFPZSZBDRABCDEFG
      IJHKUAAUMUOBDAUJDLZUBZULUKUNUQCDFGUJACGUFPLUPHTIADGUCUPKTAUPUDUEUGUHUI $.

    $d s S x $.  $d s x ph $.  $d s x I $.  $d s x N $.
    $( In a Moore system, a set is independent if and only if all its proper
       subsets have closure properly contained in the closure of the set.  Part
       of Proposition 4.1.3 in [FaureFrolicher] p. 83.  (Contributed by David
       Moews, 1-May-2017.) $)
    mrieqv2d $p |- ( ph -> ( S e. I <->
                             A. s ( s C. S -> ( N ` s ) C. ( N ` S ) ) ) ) $=
      ( vx wcel wpss cfv wa w3a 3ad2ant1 adantr cvv cv wi wal wn wex pssnel csn
      3ad2ant3 cdif cmre wceq simprr difsnb sylib simpl3 pssssd ssdifd eqsstr3d
      simpl2 mrissd ssdifssd mrcssd difssd mrcssidd ismri2dad sspsstrd exlimddv
      simprl sseldd ssnelpssd 3expia alrimiv ex wral wne elfvexd wss difexg syl
      ssexd simp1r difsnpss simp2 psseq1d mpbird simp3 mpd fveq2d mpbid spcimdv
      3impia pssned 3com23 mrieqvlemd necon3bbid ralrimiv ismri2d sylibrd
      impbid ) ACDMZGUAZCNZXAEOZCEOZNZUBZGUCZAWTXGAWTPXFGAWTXBXEAWTXBQZLUAZCMZX
      IXAMUDZPZXELXBAXLLUEWTLXACUFUHXHXLPZXCCXIUGZUIZEOZXDXMBXAEXOFXHBFUJOMZXLA
      WTXQXBHRSZIXMXAXAXNUIZXOXMXKXSXAUKXHXJXKULXIXAUMUNXMXACXNXMXACAWTXBXLUOUP
      UQURXMCFXNXMBCDFJXRAWTXBXLUSZUTZVAVBXMXPXDXIXMBXOECFXRIXMCXNVCYAVBXMCXDXI
      XMBCEFXRIYAVDXHXJXKVHZVIXMBCDEFXIIJXRXTYBVEVJVFVGVKVLVMAXGXIXPMZUDZLCVNZW
      TAXGYEAXGPYDLCAXGXJYDAXGXJQZYDXPXDVOZAXJXGYGAXJXGQXPXDAXJXGXPXDNZAXJPZXFY
      HGXOTYICTMXOTMYICFTYIBUJFAXQXJHSVPACFVQZXJKSVTCXNTVRVSYIXAXOUKZXFYHYIYKXF
      QZXEYHYLXBXEYLXBXOCNZYLXJYMAXJYKXFWAXICWBUNYLXAXOCYIYKXFWCZWDWEYIYKXFWFWG
      YLXCXPXDYLXAXOEYNWHWDWIVKWJWKWLWMYFYCXPXDYFBCEFXIAXGXQXJHRIAXGYJXJKRAXGXJ
      WFWNWOWEVKWPVMALBCDEFIJHKWQWRWS $.
  $}

  ${
    $d A s $.  $d s S $.  $d s T $.  $d s X $.  $d s ph $.  $d s I $.
    $d s N $.
    mrissmrcd.1 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    mrissmrcd.2 $e |- N = ( mrCls ` A ) $.
    mrissmrcd.3 $e |- I = ( mrInd ` A ) $.
    mrissmrcd.4 $e |- ( ph -> S C_ ( N ` T ) ) $.
    mrissmrcd.5 $e |- ( ph -> T C_ S ) $.
    mrissmrcd.6 $e |- ( ph -> S e. I ) $.
    $( In a Moore system, if an independent set is between a set and its
       closure, the two sets are equal (since the two sets must have equal
       closures by ~ mressmrcd , and so are equal by ~ mrieqv2d .)
       (Contributed by David Moews, 1-May-2017.) $)
    mrissmrcd $p |- ( ph -> S = T ) $=
      ( vs wpss wn wceq cfv wi psseq1d mressmrcd pssne necomd necon2bi syl wcel
      cv wal mrissd mrieqv2d mpbid cvv ssexd wa simpr fveq2d imbi12d spcdv mtod
      mpd wss wo sspss sylib ord eqcomd ) ADCADCOZPDCQZAVGDFRZCFRZOZAVJVIQVKPAB
      CDFGHIKLUAVKVJVIVKVIVJVIVJUBUCUDUEANUGZCOZVLFRZVJOZSZNUHZVGVKSZACEUFVQMAB
      CEFGNHIJABCEGJHMUIUJUKAVPVRNDULADCEMLUMAVLDQZUNZVMVGVOVKVTVLDCAVSUOZTVTVN
      VIVJVTVLDFWAUPTUQURUTUSAVGVHADCVAVGVHVBLDCVCVDVEUTVF $.
  $}

  ${
    $d A x $.  $d S x $.  $d T x $.  $d x ph $.
    mrissmrid.1 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    mrissmrid.2 $e |- N = ( mrCls ` A ) $.
    mrissmrid.3 $e |- I = ( mrInd ` A ) $.
    mrissmrid.4 $e |- ( ph -> S e. I ) $.
    mrissmrid.5 $e |- ( ph -> T C_ S ) $.
    $( In a Moore system, subsets of independent sets are independent.
       (Contributed by David Moews, 1-May-2017.) $)
    mrissmrid $p |- ( ph -> T e. I ) $=
      ( vx mrissd sstrd cdif cfv wcel wn wral cv csn ismri2d mpbid sseld ssdifd
      ssdifssd mrcssd ssneld imim12d ralimdv2 mpd ismri2dd ) AMBDEFGIJHADCGLABC
      EGJHKNZOAMUAZCUOUBZPZFQZRSZMCTZUODUPPZFQZRSZMDTACERUTKAMBCEFGIJHUNUCUDAUS
      VCMCDAUODRUOCRUSVCADCUOLUEAVBURUOABVAFUQGHIADCUPLUFACGUPUNUGUHUIUJUKULUM
      $.
  $}

  ${
    $d s X y $.  $d s S y z $.  $d s ph y z $.  $d s y Y z $.  $d s y z Z $.
    $d s y z N $.
    mreexd.1 $e |- ( ph -> X e. V ) $.
    mreexd.2 $e |- ( ph -> A. s e. ~P X A. y e. X
                     A. z e. ( ( N ` ( s u. { y } ) ) \ ( N ` s ) )
                     y e. ( N ` ( s u. { z } ) ) ) $.
    mreexd.3 $e |- ( ph -> S C_ X ) $.
    mreexd.4 $e |- ( ph -> Y e. X ) $.
    mreexd.5 $e |- ( ph -> Z e. ( N ` ( S u. { Y } ) ) ) $.
    mreexd.6 $e |- ( ph -> -. Z e. ( N ` S ) ) $.
    $( In a Moore system, the closure operator is said to have the _exchange
       property_ if, for all elements ` y ` and ` z ` of the base set and
       subsets ` S ` of the base set such that ` z ` is in the closure of
       ` ( S u. { y } ) ` but not in the closure of ` S ` , ` y ` is in the
       closure of ` ( S u. { z } ) ` (Definition 3.1.9 in [FaureFrolicher]
       p. 57 to 58.)  This theorem allows us to construct substitution
       instances of this definition.  (Contributed by David Moews,
       1-May-2017.) $)
    mreexd $p |- ( ph -> Y e. ( N ` ( S u. { Z } ) ) ) $=
      ( csn cun cfv wcel cv cdif wral cpw sselpwd wceq wa adantr ad2antrr simpr
      simplr uneq12d fveq2d eleqtrrd wn neleqtrrd eldifd simpllr eleq12d rspcdv
      sneqd rspcimdv mpd ) ABUAZJUAZCUAZQZRZESZTZCVEVDQZRZESZVEESZUBZUCZBGUCZJG
      UDZUCHDIQZRZESZTZLAVQWBJDVRADGFKMUEAVEDUFZUGZVPWBBHGAHGTWCNUHWDVDHUFZUGZV
      JWBCIVOWFIVMVNWFIDHQZRZESZVMAIWITWCWEOUIWFVLWHEWFVEDVKWGAWCWEUKZWFVDHWDWE
      UJVAULUMUNWFVNDESZIAIWKTUOWCWEPUIWFVEDEWJUMUPUQWFVFIUFZUGZVDHVIWAWDWEWLUK
      WMVHVTEWMVEDVGVSAWCWEWLURWMVFIWFWLUJVAULUMUSUTVBVBVC $.
  $}

  ${
    $d A x $.  $d s X y $.  $d s S x y z $.  $d s x ph y z $.  $d s x y Y z $.
    $d s y z N $.
    mreexmrid.1 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    mreexmrid.2 $e |- N = ( mrCls ` A ) $.
    mreexmrid.3 $e |- I = ( mrInd ` A ) $.
    mreexmrid.4 $e |- ( ph -> A. s e. ~P X A. y e. X
                        A. z e. ( ( N ` ( s u. { y } ) ) \ ( N ` s ) )
                        y e. ( N ` ( s u. { z } ) ) ) $.
    mreexmrid.5 $e |- ( ph -> S e. I ) $.
    mreexmrid.6 $e |- ( ph -> Y e. X ) $.
    mreexmrid.7 $e |- ( ph -> -. Y e. ( N ` S ) ) $.
    $( In a Moore system whose closure operator has the exchange property, if a
       set is independent and an element is not in its closure, then adding the
       element to the set gives another independent set.  Lemma 4.1.5 in
       [FaureFrolicher] p. 84.  (Contributed by David Moews, 1-May-2017.) $)
    mreexmrid $p |- ( ph -> ( S u. { Y } ) e. I ) $=
      ( cun cfv wcel vx csn mrissd snssd unssd cv cdif wn w3a cvv cmre 3ad2ant1
      wa elfvexd wral cpw ssdifssd simp3 difundir simp2 mrcssidd ssneldd nelneq
      wceq syl2anc elsni nsyl difsnb uneq2d syl5eq fveq2d eleqtrd mreexd undif1
      ismri2dad wss ssequn2 neleqtrrd pm2.65i df-3an mtbi imnani adantlr adantl
      sylib ad2antrr eqneltrd sneqd difeq2d difun2 eqtrd wo simpr elun mpjaodan
      syl6eq ralrimiva ismri2dd ) AUADEIUBZRZFGHLMKAEWSHADEFHMKOUCZAIHPUDUEAUAU
      FZWTXBUBZUGZGSZTZUHZUAWTAXBWTTZUMZXBETZXGXBWSTZAXJXGXHAXJUMZXFAXJXFUIZXLX
      FUMXMIEXCUGZXCRZGSZTXMBCXNGUJHIXBJXMDUKHAXJDHUKSTXFKULZUNAXJBUFZJUFZCUFUB
      RGSTCXSXRUBRGSXSGSUGUOBHUOJHUPUOXFNULXMEHXCXMDEFHMXQAXJEFTXFOULZUCUQAXJIH
      TXFPULXMXBXEXNWSRZGSAXJXFURXMXDYAGXMXDXNWSXCUGZRYAEWSXCUSXMYBWSXNXMXKUHYB
      WSVDXMXBIVDZXKXMXJIETUHZYCUHAXJXFUTZAXJYDXFAEEGSZIADEGHKLXAVAQVBZULXBIEVC
      VEXBIVFZVGXBWSVHWEVIVJVKVLXMDEFGHXBLMXQXTYEVOVMXMXPYFIAXJIYFTUHZXFQULXMXO
      EGXMXOEXCRZEEXCVNXMXCEVPYJEVDXMXBEYEUDXCEVQWEVJVKVRVSAXJXFVTWAWBWCXIXKUMZ
      XEYFXBYKXBIYFXKYCXIYHWDZAYIXHXKQWFWGYKXDEGYKXDEWSUGZEYKXDWTWSUGYMYKXCWSWT
      YKXBIYLWHWIEWSWJWPAYMEVDZXHXKAYDYNYGIEVHWEWFWKVKVRXIXHXJXKWLAXHWMXBEWSWNW
      EWOWQWR $.
  $}

  ${
    $d f F g h j $.  $d f g G h j $.  $d f g h H j $.  $d f g h ph j $.
    $d t u f v g h i I j $.  $d t u f v g h K $.  $d t u f v g h N $.
    $d t u f v g h X $.
    mreexexlemd.1 $e |- ( ph -> X e. J ) $.
    mreexexlemd.2 $e |- ( ph -> F C_ ( X \ H ) ) $.
    mreexexlemd.3 $e |- ( ph -> G C_ ( X \ H ) ) $.
    mreexexlemd.4 $e |- ( ph -> F C_ ( N ` ( G u. H ) ) ) $.
    mreexexlemd.5 $e |- ( ph -> ( F u. H ) e. I ) $.
    mreexexlemd.6 $e |- ( ph -> ( F ~~ K \/ G ~~ K ) ) $.
    mreexexlemd.7 $e |- ( ph -> A. t A. u e. ~P ( X \ t ) A. v e. ~P ( X \ t )
                                ( ( ( u ~~ K \/ v ~~ K ) /\
                                  u C_ ( N ` ( v u. t ) ) /\ ( u u. t ) e. I )
                           -> E. i e. ~P v ( u ~~ i /\ ( i u. t ) e. I ) ) ) $.
    $( This lemma is used to generate substitution instances of the induction
       hypothesis in ~ mreexexd .  (Contributed by David Moews, 1-May-2017.) $)
    mreexexlemd $p |- ( ph -> E. j e. ~P G ( F ~~ j /\ ( j u. H ) e. I ) ) $=
      ( vf vg vh cen wbr wo cun cfv wss wcel cv wa cpw wrex w3a wi cdif wal weq
      wral simplr breq1d orbi12d simpll uneq12d fveq2d sseq12d eleq1d 3anbi123d
      simpr simpllr breq12d simplll anbi12d pweqd cbvrexdva2 imbi12d wceq simpl
      difeq2d adantr cbvraldva2 cbvalv sylib cvv ssun2 a1i ssexd difexg sselpwd
      syl eleqtrrd ad2antrr uneq2d rexeqbidv rspcdv rspcimdv spcimdv mpd mp3and
      ) AGLUEUFZHLUEUFZUGZGHIUHZMUIZUJZGIUHZJUKZGFULZUEUFZXJIUHZJUKZUMZFHUNZUOZ
      TRSAUBULZLUEUFZUCULZLUEUFZUGZXQXSUDULZUHZMUIZUJZXQYBUHZJUKZUPZXQXJUEUFZXJ
      YBUHZJUKZUMZFXSUNZUOZUQZUCNYBURZUNZVAZUBYQVAZUDUSZXDXGXIUPZXPUQZACULZLUEU
      FZBULZLUEUFZUGZUUCUUEDULZUHZMUIZUJZUUCUUHUHZJUKZUPZUUCEULZUEUFZUUOUUHUHZJ
      UKZUMZEUUEUNZUOZUQZBNUUHURZUNZVAZCUVDVAZDUSYTUAUVFYSDUDDUDUTZUVEYRCUBUVDY
      QUVGCUBUTZUMZUVBYOBUCUVDYQUVIBUCUTZUMZUUNYHUVAYNUVKUUGYAUUKYEUUMYGUVKUUDX
      RUUFXTUVKUUCXQLUEUVGUVHUVJVBZVCUVKUUEXSLUEUVIUVJVKZVCVDUVKUUCXQUUJYDUVLUV
      KUUIYCMUVKUUEXSUUHYBUVMUVGUVHUVJVEZVFVGVHUVKUULYFJUVKUUCXQUUHYBUVLUVNVFVI
      VJUVKUUSYLEFUUTYMUVKEFUTZUMZUUPYIUURYKUVPUUCXQUUOXJUEUVGUVHUVJUVOVLUVKUVO
      VKZVMUVPUUQYJJUVPUUOXJUUHYBUVQUVGUVHUVJUVOVNVFVIVOUVPUUEXSUVIUVJUVOVBVPVQ
      VRUVIUVDYQVSUVJUVIUVCYPUVIUUHYBNUVGUVHVTWAVPZWBWCUVRWCWDWEAYSUUBUDIWFAIXH
      JSIXHUJAIGWGWHWIAYBIVSZUMZYRUUBUBGYQUVTGNIURZUNZYQAGUWBUKUVSAGUWAWFANKUKU
      WAWFUKONIKWJWLZPWKWBUVTYPUWAUVTYBINAUVSVKWAVPZWMUVTXQGVSZUMZYOUUBUCHYQUWF
      HUWBYQAHUWBUKUVSUWEAHUWAWFUWCQWKWNUVTYQUWBVSUWEUWDWBWMUWFXSHVSZUMZYHUUAYN
      XPUWHYAXDYEXGYGXIUWHXRXBXTXCUWHXQGLUEUVTUWEUWGVBZVCUWHXSHLUEUWFUWGVKZVCVD
      UWHXQGYDXFUWIUWHYCXEMUWHXSHYBIUWJAUVSUWEUWGVLZVFVGVHUWHYFXHJUWHXQGYBIUWIU
      WKVFVIVJUWHYLXNFYMXOUWHXSHUWJVPUWHYIXKYKXMUWHXQGXJUEUWIVCUWHYJXLJUWHYBIXJ
      UWKWOVIVOWPVRWQWRWSWTXA $.
  $}

  ${
    mreexexlem2d.1 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    mreexexlem2d.2 $e |- N = ( mrCls ` A ) $.
    mreexexlem2d.3 $e |- I = ( mrInd ` A ) $.
    mreexexlem2d.4 $e |- ( ph -> A. s e. ~P X A. y e. X
                           A. z e. ( ( N ` ( s u. { y } ) ) \ ( N ` s ) )
                           y e. ( N ` ( s u. { z } ) ) ) $.
    mreexexlem2d.5 $e |- ( ph -> F C_ ( X \ H ) ) $.
    mreexexlem2d.6 $e |- ( ph -> G C_ ( X \ H ) ) $.
    mreexexlem2d.7 $e |- ( ph -> F C_ ( N ` ( G u. H ) ) ) $.
    mreexexlem2d.8 $e |- ( ph -> ( F u. H ) e. I ) $.
    ${
      $d s F g y z $.  $d s g G y z $.  $d s g H y z $.  $d s g ph y z $.
      $d s g y Y z $.  $d s g y z N $.  $d s X y $.
      mreexexlem2d.9 $e |- ( ph -> Y e. F ) $.
      $( Used in ~ mreexexlem4d to prove the induction step in ~ mreexexd .
         See the proof of Proposition 4.2.1 in [FaureFrolicher] p. 86 to 87.
         (Contributed by David Moews, 1-May-2017.) $)
      mreexexlem2d $p |- ( ph -> E. g e. G
                              ( -. g e. ( F \ { Y } ) /\
                                ( ( F \ { Y } ) u. ( H u. { g } ) ) e. I ) ) $=
        ( cv wcel csn cdif wn cun wa wex wrex cfv wss cmre simpr ssun2 difundir
        adantr wceq cin c0 incom ssdifin0 syl syl5eqr minel difsnb sylib uneq2d
        syl2anc syl5eq syl5sseqr mrissd ssdifssd mrcssidd sstrd mrcssvd mrcidmd
        unssd mrcssd sseqtrd sseldd sseldi ismri2dad pm2.65da nss simprl simprr
        ssun1 ssneldd unass wral cpw difss unss1 mp1i mrissmrid fveq2d neleqtrd
        difss2d mreexmrid syl5eqelr jca32 ex eximdv mpd df-rex sylibr ) AEUCZGU
        DZXIFLUEZUFZUDUGZXLHXIUEZUHUHZIUDZUIZUIZEUJZXQEGUKAXJXIFHUHZXKUFZJULZUD
        UGZUIZEUJZXSAGYBUMZUGYEAYFLYBUDAYFUIZFYBLYGFGHUHZJULZYBAFYIUMYFTURYGYIY
        BJULYBYGDYHJYBKADKUNULUDZYFNURZOYGGHYBAYFUOAHYBUMYFAHYAYBAXLHUHZHYAHXLU
        PAYAXLHXKUFZUHYLFHXKUQAYMHXLALHUDUGZYMHUSALFUDZHFUTZVAUSYNUBAYPFHUTZVAF
        HVBAFKHUFZUMYQVAUSRFKHVCVDVELFHVFVJLHVGVHVIVKZVLADYAJKNOAXTKXKADXTIKPNU
        AVMVNZVOZVPURVSYGDYAJKYKOVQVTYGDYAJKYKOAYAKUMYFYTURVRWAVPAYOYFUBURZWBYG
        DXTIJKLOPYKAXTIUDZYFUAURYGFXTLFHWIUUBWCWDWEEGYBWFVHAYDXREAYDXRAYDUIZXJX
        MXPAXJYCWGZUUDXLYBXIAXLYBUMYDAXLYAYBAYLXLYAXLHWIYSVLUUAVPURAXJYCWHZWJUU
        DXOYLXNUHIXLHXNWKUUDBCDYLIJKXIMAYJYDNURZOPABUCZMUCZCUCUEUHJULUDCUUIUUHU
        EUHJULUUIJULUFWLBKWLMKWMWLYDQURUUDDXTYLIJKUUGOPAUUCYDUAURXLFUMYLXTUMUUD
        FXKWNXLFHWOWPWQUUDGKXIUUDGKHAGYRUMYDSURWTUUEWBUUDYBYLJULXIUUFUUDYAYLJAY
        AYLUSYDYSURWRWSXAXBXCXDXEXFXQEGXGXH $.
    $}

    ${
      $d F i $.  $d G i $.  $d H i $.  $d i I $.
      mreexexlem3d.9 $e |- ( ph -> ( F = (/) \/ G = (/) ) ) $.
      $( Base case of the induction in ~ mreexexd .  (Contributed by David
         Moews, 1-May-2017.) $)
      mreexexlem3d $p |- ( ph ->
                           E. i e. ~P G ( F ~~ i /\ ( i u. H ) e. I ) ) $=
        ( cpw wcel cen wbr cun cv wa wrex c0 wceq simpr wss cdif cin cfv adantr
        cmre uneq1d uncom un0 eqtr3i syl6eq fveq2d mrissd unssbd mrcssidd unssd
        sseqtrd ssun2 a1i mrissmrcd ssequn1 sylibr ssind disjdif syl6sseq sylib
        ss0b mpjaodan 0elpw syl6eqel cvv elfvexd difss2d ssexd enrefg syl breq2
        uneq1 eleq1d anbi12d rspcev syl12anc ) AFGUBZUCFFUDUEZFHUFZIUCZFEUGZUDU
        EZWSHUFZIUCZUHZEWOUIAFUJWOAFUJUKZXDGUJUKZAXDULAXEUHZFUJUMXDXFFHKHUNZUOU
        JXFFHXGXFWQHUKFHUMXFDWQHIJKADKURUPUCXEMUQZNOXFFHHJUPZXFFGHUFZJUPZXIAFXK
        UMXESUQXFXJHJXFXJUJHUFZHXFGUJHAXEULUSHUJUFXLHHUJUTHVAVBVCVDVIXFDHJKXHNX
        FFHKXFDWQIKOXHAWRXETUQZVEVFVGVHHWQUMXFHFVJVKXMVLFHVMVNAFXGUMXEQUQVOHKVP
        VQFVSVRUAVTGWAWBAFWCUCWPAFKWCADURKMWDAFKHQWEWFFWCWGWHTXCWPWRUHEFWOWSFUK
        ZWTWPXBWRWSFFUDWIXNXAWQIWSFHWJWKWLWMWN $.
    $}

    ${
      $d f g h X $.  $d f g h I i j $.  $d f g h L $.  $d f g h N $.
      $d q s y z N $.  $d q r s F y z $.  $d q r s G y z $.  $d q r s H y z $.
      $d q r s ph y z $.  $d q r I i j $.  $d q r ph i $.  $d q r F i j $.
      $d q r G i j $.  $d q r H i j $.  $d s X y $.
      mreexexlem4d.9 $e |- ( ph -> L e. _om ) $.
      mreexexlem4d.A $e |- ( ph ->
                             A. h A. f e. ~P ( X \ h ) A. g e. ~P ( X \ h )
                             ( ( ( f ~~ L \/ g ~~ L ) /\
                               f C_ ( N ` ( g u. h ) ) /\ ( f u. h ) e. I ) ->
                              E. j e. ~P g ( f ~~ j /\ ( j u. h ) e. I ) ) ) $.
      mreexexlem4d.B $e |- ( ph -> ( F ~~ suc L \/ G ~~ suc L ) ) $.
      $( Induction step of the induction in ~ mreexexd .  (Contributed by David
         Moews, 1-May-2017.) $)
      mreexexlem4d $p |- ( ph ->
                           E. j e. ~P G ( F ~~ j /\ ( j u. H ) e. I ) ) $=
        ( vr vq vi cv cen wbr cun wcel wa cpw wrex c0 wceq cmre cfv adantr cdif
        csn wral wss simpr orcd mreexexlem3d wne wex biimpi adantl mreexexlem2d
        n0 wn w3a 3anass ad2antrr elfvexd simpr2 difsnb sylib ssdifssd eqsstr3d
        ssdifd difun1 syl6sseqr simpr1 uncom uneq2i unass difsnid uneq1d syl5eq
        cvv syl5eqr syl fveq2d sseqtr4d simpr3 csuc wo wi simplr 3anan12 dif1en
        com sylbir expcom syl2anc orim12d mpd mreexexlemd simprl elpwid difss2d
        wal simplr1 snssd unssd wb ad3antrrr elpw2g mpbird ad3antlr cin simprrl
        ssexd vex en2sn mp2an a1i incom disjdif eqtri ssdifin0 unen rexlimddv
        syl22anc eqbrtrrd eqtr2i simprrr syl5eqelr breq2 uneq1 anbi12d syl12anc
        eleq1d rspcev sylan2br adantlr exlimddv pm2.61dane ) AIHUKZULUMZUUPKUNZ
        LUOZUPZHJUQZURZIUSAIUSUTZUPZBCDHIJKLNOPADOVAVBUOZUVCQVCRSABUKZPUKZCUKVE
        UNNVBUOCUVGUVFVEUNNVBUVGNVBVDVFBOVFPOUQVFZUVCTVCAIOKVDZVGZUVCUAVCAJUVIV
        GZUVCUBVCAIJKUNZNVBZVGZUVCUCVCAIKUNLUOZUVCUDVCUVDUVCJUSUTAUVCVHVIVJAIUS
        VKZUPUHUKZIUOZUVBUHUVPUVRUHVLZAUVPUVSUHIVPVMVNAUVRUVBUVPAUVRUPZUIUKZIUV
        QVEZVDZUOVQZUWCKUWAVEZUNZUNLUOZUPZUVBUIJUVTBCDUIIJKLNOUVQPAUVEUVRQVCRSA
        UVHUVRTVCAUVJUVRUAVCAUVKUVRUBVCAUVNUVRUCVCAUVOUVRUDVCAUVRVHVOUWAJUOZUWH
        UPUVTUWIUWDUWGVRZUVBUWIUWDUWGVSUVTUWJUPZUWCUJUKZULUMZUWLUWFUNZLUOZUPZUV
        BUJJUWEVDZUQZUWKFEGHUJUWCUWQUWFLWQMNOUWKDVAOAUVEUVRUWJQVTWAZUWKUWCUVIUW
        EVDZOUWFVDZUWKUWCUWCUWEVDZUWTUWKUWDUXBUWCUTUVTUWIUWDUWGWBUWAUWCWCWDUWKU
        WCUVIUWEUWKIUVIUWBAUVJUVRUWJUAVTWEWGWFOKUWEWHZWIUWKUWQUWTUXAUWKJUVIUWEA
        UVKUVRUWJUBVTWGUXCWIUWKIUWQUWFUNZNVBZUWBUWKIUVMUXEAUVNUVRUWJUCVTUWKUXDU
        VLNUWKUWIUXDUVLUTUVTUWIUWDUWGWJZUWIUXDUWQUWEKUNZUNZUVLUWFUXGUWQKUWEWKWL
        UWIUXHUWQUWEUNZKUNUVLUWQUWEKWMUWIUXIJKJUWAWNWOWRWPWSWTXAWEUVTUWIUWDUWGX
        BUWKIMXCZULUMZJUXJULUMZXDZUWCMULUMZUWQMULUMZXDAUXMUVRUWJUGVTUWKUXKUXNUX
        LUXOUWKMXIUOZUVRUXKUXNXEAUXPUVRUWJUEVTZAUVRUWJXFUXKUXPUVRUPZUXNUXKUXRUP
        UXPUXKUVRVRUXNUXPUXKUVRXGIMUVQXHXJXKXLUWKUXPUWIUXLUXOXEUXQUXFUXLUXPUWIU
        PZUXOUXLUXSUPUXPUXLUWIVRUXOUXPUXLUWIXGJMUWAXHXJXKXLXMXNAEUKZMULUMFUKZMU
        LUMXDUXTUYAGUKZUNNVBVGUXTUYBUNLUOVRUXTUUPULUMUUPUYBUNLUOUPHUYAUQURXEFOU
        YBVDUQZVFEUYCVFGXSUVRUWJUFVTXOUWKUWLUWRUOZUWPUPZUPZUWLUWEUNZUVAUOZIUYGU
        LUMZUYGKUNZLUOZUVBUYFUYHUYGJVGZUYFUWLUWEJUYFUWLJUWEUYFUWLUWQUWKUYDUWPXP
        XQZXRUYFUWAJUWIUWDUWGUVTUYEXTYAYBUYFJWQUOUYHUYLYCUYFJOWQUWKOWQUOUYEUWSV
        CUYFJOKAUVKUVRUWJUYEUBYDXRYJUYGJWQYEWSYFUYFUWCUWBUNZIUYGULUVRUYNIUTAUWJ
        UYEIUVQWNYGUYFUWMUWBUWEULUMZUWCUWBYHZUSUTZUWLUWEYHUSUTZUYNUYGULUMUWKUYD
        UWMUWOYIUYOUYFUVQWQUOUWAWQUOUYOUHYKUIYKUVQUWAWQWQYLYMYNUYQUYFUYPUWBUWCY
        HUSUWCUWBYOUWBIYPYQYNUYFUWLUWQVGUYRUYMUWLJUWEYRWSUWCUWLUWBUWEYSUUAUUBUY
        FUYJUWNLUYJUWLUXGUNUWNUWLUWEKWMUXGUWFUWLUWEKWKWLUUCUWKUYDUWMUWOUUDUUEUU
        TUYIUYKUPHUYGUVAUUPUYGUTZUUQUYIUUSUYKUUPUYGIULUUFUYSUURUYJLUUPUYGKUUGUU
        JUUHUUKUUIYTUULYTUUMUUNUUO $.
    $}

    $d q f F g h $.  $d f F g h l $.  $d q f g G h $.  $d f g G h l $.
    $d s f g h X y z k $.  $d s f g h ph y z k $.  $d s f g h y I i z k $.
    $d s f g h y z k N $.  $d f g h X k l $.  $d f g h ph k l $.
    $d f g h I i k l $.  $d f g h k l N $.  $d q f g h ph $.  $d q f g h I i $.
    $d q H $.
    mreexexd.9 $e |- ( ph -> ( F e. Fin \/ G e. Fin ) ) $.
    $( Exchange-type theorem.  In a Moore system whose closure operator has the
       exchange property, if ` F ` and ` G ` are disjoint from ` H ` ,
       ` ( F u. H ) ` is independent, ` F ` is contained in the closure of
       ` ( G u. H ) ` , and either ` F ` or ` G ` is finite, then there is a
       subset ` q ` of ` G ` equinumerous to ` F ` such that ` ( q u. H ) ` is
       independent.  This implies the case of Proposition 4.2.1 in
       [FaureFrolicher] p. 86 where either ` ( A \ B ) ` or ` ( B \ A ) ` is
       finite.  The theorem is proven by induction using ~ mreexexlem3d for the
       base case and ~ mreexexlem4d for the induction step.  (Contributed by
       David Moews, 1-May-2017.)  Removed dependencies on ~ ax-rep and
       ~ ax-ac2 .  (Revised by Brendan Leahy, 2-Jun-2021.) $)
    mreexexd $p |- ( ph -> E. q e. ~P G ( F ~~ q /\ ( q u. H ) e. I ) ) $=
      ( vg vf vh vi vl vk cvv cfn wcel ccrd cfv cif elfvexd wn wo cen wbr exmid
      cmre wi ficardid ensymd iftrue breqtrrd a1i wa orcanai syl iffalse adantl
      wceq ex orim12d mpi com cv cun wss w3a cpw wrex cdif wral ficardom ifclda
      wal csuc breq2 orbi12d 3anbi1d imbi1d 2ralbidv albidv imbi2d weq ad2antrr
      c0 csn simplrl elpwid simplrr simpr2 simpr3 simpr1 en0 sylib mreexexlem3d
      orbi12i ralrimivva alrimiv nfv nfa1 nf3an nfra1 nfal nfan simpll2 simpll3
      nfra2 3ad2ant1 mreexexlem4d expr ralrimi 3exp com12 a2d finds mreexexlemd
      alrimi mpcom ) AUBUCUDUELEFGHUHEUIUJZEUKULZFUKULZUMZIJADUTJMUNQRSTAYLYLUO
      ZUPEYOUQURZFYOUQURZUPYLUSAYLYQYPYRYLYQVAAYLEYMYOUQYLYMEEVBVCYLYMYNVDVEVFA
      YPYRAYPVGZFYNYOUQYSFUIUJZFYNUQURAYLYTUAVHZYTYNFFVBVCVIYPYOYNVLAYLYMYNVJVK
      VEVMVNVOYOVPUJAUCVQZYOUQURZUBVQZYOUQURZUPZUUBUUDUDVQZVRIULVSZUUBUUGVRHUJZ
      VTZUUBUEVQZUQURUUKUUGVRHUJVGUEUUDWAWBZVAZUBJUUGWCZWAZWDUCUUOWDZUDWGZAYLYM
      YNVPYLYMVPUJAEWEVKYSYTYNVPUJUUAFWEVIWFAUUBUFVQZUQURZUUDUURUQURZUPZUUHUUIV
      TZUULVAZUBUUOWDUCUUOWDZUDWGZVAAUUBWRUQURZUUDWRUQURZUPZUUHUUIVTZUULVAZUBUU
      OWDUCUUOWDZUDWGZVAAUUBUGVQZUQURZUUDUVMUQURZUPZUUHUUIVTZUULVAZUBUUOWDZUCUU
      OWDZUDWGZVAAUUBUVMWHZUQURZUUDUWBUQURZUPZUUHUUIVTZUULVAZUBUUOWDZUCUUOWDZUD
      WGZVAAUUQVAUFUGYOUURWRVLZUVEUVLAUWKUVDUVKUDUWKUVCUVJUCUBUUOUUOUWKUVBUVIUU
      LUWKUVAUVHUUHUUIUWKUUSUVFUUTUVGUURWRUUBUQWIUURWRUUDUQWIWJWKWLWMWNWOUFUGWP
      ZUVEUWAAUWLUVDUVTUDUWLUVCUVRUCUBUUOUUOUWLUVBUVQUULUWLUVAUVPUUHUUIUWLUUSUV
      NUUTUVOUURUVMUUBUQWIUURUVMUUDUQWIWJWKWLWMWNWOUURUWBVLZUVEUWJAUWMUVDUWIUDU
      WMUVCUWGUCUBUUOUUOUWMUVBUWFUULUWMUVAUWEUUHUUIUWMUUSUWCUUTUWDUURUWBUUBUQWI
      UURUWBUUDUQWIWJWKWLWMWNWOUURYOVLZUVEUUQAUWNUVDUUPUDUWNUVCUUMUCUBUUOUUOUWN
      UVBUUJUULUWNUVAUUFUUHUUIUWNUUSUUCUUTUUEUURYOUUBUQWIUURYOUUDUQWIWJWKWLWMWN
      WOAUVKUDAUVJUCUBUUOUUOAUUBUUOUJZUUDUUOUJZVGZVGZUVIUULUWRUVIVGZBCDUEUUBUUD
      UUGHIJKADJUTULUJZUWQUVIMWQNOABVQZKVQZCVQWSVRIULUJCUXBUXAWSVRIULUXBIULWCWD
      BJWDKJWAWDZUWQUVIPWQUWSUUBUUNAUWOUWPUVIWTXAUWSUUDUUNAUWOUWPUVIXBXAUWRUVHU
      UHUUIXCUWRUVHUUHUUIXDUWSUVHUUBWRVLZUUDWRVLZUPUWRUVHUUHUUIXEUVFUXDUVGUXEUU
      BXFUUDXFXIXGXHVMXJXKUVMVPUJZAUWAUWJAUXFUWAUWJVAAUXFUWAUWJAUXFUWAVTZUWIUDA
      UXFUWAUDAUDXLUXFUDXLUVTUDXMXNUXGUWHUCUUOAUXFUWAUCAUCXLUXFUCXLUVTUCUDUVSUC
      UUOXOXPXNUXGUWOUWHUXGUWOVGUWGUBUUOUXGUWOUBAUXFUWAUBAUBXLUXFUBXLUVTUBUDUVR
      UCUBUUOUUOXTXPXNUWOUBXLXQUXGUWOUWPUWGUXGUWQVGZUWFUULUXHUWFVGZBCDUCUBUDUEU
      UBUUDUUGHUVMIJKUXGUWTUWQUWFAUXFUWTUWAMYAWQNOUXGUXCUWQUWFAUXFUXCUWAPYAWQUX
      IUUBUUNUXGUWOUWPUWFWTXAUXIUUDUUNUXGUWOUWPUWFXBXAUXHUWEUUHUUIXCUXHUWEUUHUU
      IXDAUXFUWAUWQUWFXRAUXFUWAUWQUWFXSUXHUWEUUHUUIXEYBVMYCYDVMYDYJYEYFYGYHYKYI
      $.

    $( Obsolete proof of ~ mreexexd as of 2-Jun-2021.  Exchange-type theorem.
       In a Moore system whose closure operator has the exchange property, if
       ` F ` and ` G ` are disjoint from ` H ` , ` ( F u. H ) ` is independent,
       ` F ` is contained in the closure of ` ( G u. H ) ` , and either ` F `
       or ` G ` is finite, then there is a subset ` q ` of ` G ` equinumerous
       to ` F ` such that ` ( q u. H ) ` is independent.  This implies the case
       of Proposition 4.2.1 in [FaureFrolicher] p. 86 where either
       ` ( A \ B ) ` or ` ( B \ A ) ` is finite.  The theorem is proven by
       induction using ~ mreexexlem3d for the base case and ~ mreexexlem4d for
       the induction step.  (Contributed by David Moews, 1-May-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    mreexexdOLD $p |- ( ph -> E. q e. ~P G ( F ~~ q /\ ( q u. H ) e. I ) ) $=
      ( vg vf vh vi vl vk cvv ccrd cfv cin cmre elfvexd wceq wo cen word cardon
      wbr onordi ordtri2or3 mp2an difss2d ssexd cardidd breq2 syl5ibcom orim12d
      ensymd mpi com wcel cv cun wss w3a wa cpw wrex cdif wral wal cfn ficardom
      wi orim12i wb ordom ordelinel mp3an sylibr c0 csuc orbi12d 3anbi1d imbi1d
      syl 2ralbidv albidv imbi2d ad2antrr csn simplrl elpwid simplrr simpr2 en0
      simpr3 simpr1 orbi12i sylib mreexexlem3d ex ralrimivva alrimiv nfa1 nf3an
      nfv nfra1 nfal nfra2 3ad2ant1 simpll2 simpll3 mreexexlem4d ralrimi alrimi
      nfan expr 3exp com12 a2d finds mpcom mreexexlemd ) AUBUCUDUELEFGHUHEUIUJZ
      FUIUJZUKZIJADULJMUMZQRSTAYPYRUNZYQYRUNZUOZEYRUPUSZFYRUPUSZUOYPUQZYQUQZUUB
      YPEURUTZYQFURUTZYPYQVAVBAYTUUCUUAUUDAEYPUPUSYTUUCAYPEAEUHAEJUHYSAEJGQVCVD
      VEVIYPYREUPVFVGAFYQUPUSUUAUUDAYQFAFUHAFJUHYSAFJGRVCVDVEVIYQYRFUPVFVGVHVJY
      RVKVLZAUCVMZYRUPUSZUBVMZYRUPUSZUOZUUJUULUDVMZVNIUJVOZUUJUUOVNHVLZVPZUUJUE
      VMZUPUSUUSUUOVNHVLVQUEUULVRVSZWEZUBJUUOVTZVRZWAUCUVCWAZUDWBZAYPVKVLZYQVKV
      LZUOZUUIAEWCVLZFWCVLZUOUVHUAUVIUVFUVJUVGEWDFWDWFWQUUEUUFVKUQUUIUVHWGUUGUU
      HWHYPYQVKWIWJWKAUUJUFVMZUPUSZUULUVKUPUSZUOZUUPUUQVPZUUTWEZUBUVCWAUCUVCWAZ
      UDWBZWEAUUJWLUPUSZUULWLUPUSZUOZUUPUUQVPZUUTWEZUBUVCWAUCUVCWAZUDWBZWEAUUJU
      GVMZUPUSZUULUWFUPUSZUOZUUPUUQVPZUUTWEZUBUVCWAZUCUVCWAZUDWBZWEAUUJUWFWMZUP
      USZUULUWOUPUSZUOZUUPUUQVPZUUTWEZUBUVCWAZUCUVCWAZUDWBZWEAUVEWEUFUGYRUVKWLU
      NZUVRUWEAUXDUVQUWDUDUXDUVPUWCUCUBUVCUVCUXDUVOUWBUUTUXDUVNUWAUUPUUQUXDUVLU
      VSUVMUVTUVKWLUUJUPVFUVKWLUULUPVFWNWOWPWRWSWTUVKUWFUNZUVRUWNAUXEUVQUWMUDUX
      EUVPUWKUCUBUVCUVCUXEUVOUWJUUTUXEUVNUWIUUPUUQUXEUVLUWGUVMUWHUVKUWFUUJUPVFU
      VKUWFUULUPVFWNWOWPWRWSWTUVKUWOUNZUVRUXCAUXFUVQUXBUDUXFUVPUWTUCUBUVCUVCUXF
      UVOUWSUUTUXFUVNUWRUUPUUQUXFUVLUWPUVMUWQUVKUWOUUJUPVFUVKUWOUULUPVFWNWOWPWR
      WSWTUVKYRUNZUVRUVEAUXGUVQUVDUDUXGUVPUVAUCUBUVCUVCUXGUVOUURUUTUXGUVNUUNUUP
      UUQUXGUVLUUKUVMUUMUVKYRUUJUPVFUVKYRUULUPVFWNWOWPWRWSWTAUWDUDAUWCUCUBUVCUV
      CAUUJUVCVLZUULUVCVLZVQZVQZUWBUUTUXKUWBVQZBCDUEUUJUULUUOHIJKADJULUJVLZUXJU
      WBMXANOABVMZKVMZCVMXBVNIUJVLCUXOUXNXBVNIUJUXOIUJVTWABJWAKJVRWAZUXJUWBPXAU
      XLUUJUVBAUXHUXIUWBXCXDUXLUULUVBAUXHUXIUWBXEXDUXKUWAUUPUUQXFUXKUWAUUPUUQXH
      UXLUWAUUJWLUNZUULWLUNZUOUXKUWAUUPUUQXIUVSUXQUVTUXRUUJXGUULXGXJXKXLXMXNXOU
      WFVKVLZAUWNUXCAUXSUWNUXCWEAUXSUWNUXCAUXSUWNVPZUXBUDAUXSUWNUDAUDXRUXSUDXRU
      WMUDXPXQUXTUXAUCUVCAUXSUWNUCAUCXRUXSUCXRUWMUCUDUWLUCUVCXSXTXQUXTUXHUXAUXT
      UXHVQUWTUBUVCUXTUXHUBAUXSUWNUBAUBXRUXSUBXRUWMUBUDUWKUCUBUVCUVCYAXTXQUXHUB
      XRYHUXTUXHUXIUWTUXTUXJVQZUWSUUTUYAUWSVQZBCDUCUBUDUEUUJUULUUOHUWFIJKUXTUXM
      UXJUWSAUXSUXMUWNMYBXANOUXTUXPUXJUWSAUXSUXPUWNPYBXAUYBUUJUVBUXTUXHUXIUWSXC
      XDUYBUULUVBUXTUXHUXIUWSXEXDUYAUWRUUPUUQXFUYAUWRUUPUUQXHAUXSUWNUXJUWSYCAUX
      SUWNUXJUWSYDUYAUWRUUPUUQXIYEXMYIYFXMYFYGYJYKYLYMYNYO $.
  $}

  ${
    $d s X y z $.  $d s ph y z $.  $d s y I z $.  $d s y z N $.  $d S i $.
    $d T i $.  $d ph i $.  $d i I $.
    mreexdomd.1 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    mreexdomd.2 $e |- N = ( mrCls ` A ) $.
    mreexdomd.3 $e |- I = ( mrInd ` A ) $.
    mreexdomd.4 $e |- ( ph -> A. s e. ~P X A. y e. X
                        A. z e. ( ( N ` ( s u. { y } ) ) \ ( N ` s ) )
                        y e. ( N ` ( s u. { z } ) ) ) $.
    mreexdomd.5 $e |- ( ph -> S C_ ( N ` T ) ) $.
    mreexdomd.6 $e |- ( ph -> T C_ X ) $.
    mreexdomd.7 $e |- ( ph -> ( S e. Fin \/ T e. Fin ) ) $.
    mreexdomd.8 $e |- ( ph -> S e. I ) $.
    $( In a Moore system whose closure operator has the exchange property, if
       ` S ` is independent and contained in the closure of ` T ` , and either
       ` S ` or ` T ` is finite, then ` T ` dominates ` S ` .  This is an
       immediate consequence of ~ mreexexd .  (Contributed by David Moews,
       1-May-2017.) $)
    mreexdomd $p |- ( ph -> S ~<_ T ) $=
      ( vi c0 cv cen wbr cun wcel wa cdom cpw cdif mrissd dif0 syl6sseqr fveq2i
      cfv un0 syl5eqel mreexexd simprrl wss simprl elpwid wi cmre elfvexd ssexd
      cvv ssdomg syl adantr mpd endomtr syl2anc rexlimddv ) AESUAZUBUCZVNTUDGUE
      ZUFZEFUGUCZSFUHZABCDEFTGHIJSKLMNAEIITUIZADEGIMKRUJIUKZULAFIVTPWAULAEFHUNF
      TUDZHUNOWBFHFUOUMULAETUDEGEUORUPQUQAVNVSUEZVQUFZUFZVOVNFUGUCZVRAWCVOVPURW
      EVNFUSZWFWEVNFAWCVQUTVAAWGWFVBZWDAFVFUEWHAFIVFADVCIKVDPVEVNFVFVGVHVIVJEVN
      FVKVLVM $.
  $}

  ${
    $d s X y z $.  $d s ph y z $.  $d s y I z $.  $d s y z N $.
    mreexfidimd.1 $e |- ( ph -> A e. ( Moore ` X ) ) $.
    mreexfidimd.2 $e |- N = ( mrCls ` A ) $.
    mreexfidimd.3 $e |- I = ( mrInd ` A ) $.
    mreexfidimd.4 $e |- ( ph -> A. s e. ~P X A. y e. X
                          A. z e. ( ( N ` ( s u. { y } ) ) \ ( N ` s ) )
                          y e. ( N ` ( s u. { z } ) ) ) $.
    mreexfidimd.5 $e |- ( ph -> S e. I ) $.
    mreexfidimd.6 $e |- ( ph -> T e. I ) $.
    mreexfidimd.7 $e |- ( ph -> S e. Fin ) $.
    mreexfidimd.8 $e |- ( ph -> ( N ` S ) = ( N ` T ) ) $.
    $( In a Moore system whose closure operator has the exchange property, if
       two independent sets have equal closure and one is finite, then they are
       equinumerous.  Proven by using ~ mreexdomd twice.  This implies a
       special case of Theorem 4.2.2 in [FaureFrolicher] p. 87.  (Contributed
       by David Moews, 1-May-2017.) $)
    mreexfidimd $p |- ( ph -> S ~~ T ) $=
      ( cdom wbr cen cfv mrcssidd sseqtrd cfn wcel orcd mreexdomd sseqtr4d olcd
      mrissd sbth syl2anc ) AEFSTFESTEFUATABCDEFGHIJKLMNAEEHUBZFHUBZADEHIKLADEG
      IMKOUKZUCRUDADFGIMKPUKZAEUEUFZFUEUFZQUGOUHABCDFEGHIJKLMNAFUOUNADFHIKLUQUC
      RUIUPAURUSQUJPUHEFULUM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Algebraic closure systems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d C c f s $.  $d C t y $.  $d F f s t y z $.  $d S s y $.  $d X c f s x $.
    $d X t y $.
    $( A set is an algebraic closure system iff it is specified by some
       function of the finite subsets, such that a set is closed iff it does
       not expand under the operation.  (Contributed by Stefan O'Rear,
       2-Apr-2015.) $)
    isacs $p |- ( C e. ( ACS ` X ) <-> ( C e. ( Moore ` X ) /\
          E. f ( f : ~P X --> ~P X /\ A. s e. ~P X ( s e. C <->
                  U. ( f " ( ~P s i^i Fin ) ) C_ s ) ) ) ) $=
      ( vc vx cacs cfv wcel cvv cmre cpw cv wf wb wral wa wex elfvex crab fveq2
      cfn cin cima cuni wss adantr wceq feq23d raleqdv anbi12d exbidv rabeqbidv
      wel pweq df-acs fvex rabex fvmpt eleq2d eleq2 bibi1d ralbidv anbi2d elrab
      syl6bb pm5.21nii ) ACGHZIZCJIZACKHZIZCLZVMBMZNZDMZAIZVNVPLUBUCUDUEVPUFZOZ
      DVMPZQZBRZQZACGSVLVJWBACKSUGVJVIAVODEUNZVROZDVMPZQZBRZEVKTZIWCVJVHWIAFCFM
      ZLZWKVNNZWEDWKPZQZBRZEWJKHZTWIJGWJCUHZWOWHEWPVKWJCKUAWQWNWGBWQWLVOWMWFWQW
      KWKVMVMVNWJCUOZWRUIWQWEDWKVMWRUJUKULUMFBDEUPWHEVKCKUQURUSUTWHWBEAVKEMZAUH
      ZWGWABWTWFVTVOWTWEVSDVMWTWDVQVRWSAVPVAVBVCVDULVEVFVG $.

    $( Algebraic closure systems are closure systems.  (Contributed by Stefan
       O'Rear, 2-Apr-2015.) $)
    acsmre $p |- ( C e. ( ACS ` X ) -> C e. ( Moore ` X ) ) $=
      ( vf vs cacs cfv wcel cmre cpw cv wf cfn cin cima cuni wss wb wral wa wex
      isacs simplbi ) ABEFGABHFGBIZUCCJZKDJZAGUDUEILMNOUEPQDUCRSCTACBDUAUB $.

    isacs2.f $e |- F = ( mrCls ` C ) $.
    $( In the definition of an algebraic closure system, we may always take the
       operation being closed over as the Moore closure.  (Contributed by
       Stefan O'Rear, 2-Apr-2015.) $)
    isacs2 $p |- ( C e. ( ACS ` X ) <-> ( C e. ( Moore ` X ) /\
          A. s e. ~P X ( s e. C <->
              A. y e. ( ~P s i^i Fin ) ( F ` y ) C_ s ) ) ) $=
      ( vf vt vz cfv wcel cpw cv cfn wss wb wral wa sseq1d syl2anc cacs cmre wf
      cin cima cuni wex isacs ciun iunss wfun wceq funiunfv syl syl5rbbr bibi2d
      ffun ralbidv pm5.32i exbii simpll inss1 sseli elpwi adantl simplr mrcsscl
      syl3anc ralrimiva adantlr adantllr wi simplll ad2antlr sstrd mrcssidd vex
      elpw sylibr inss2 elind mrccl ad3antrrr sseldd simprr ad2antrr eleq1 pweq
      mresspw ineq1d sseq2 raleqbidv bibi12d mpbid weq fveq2 sstr2 ralimdva imp
      rspcva cbvralv sylib mpbird impbida ex exlimdv mrcf fssd cmrc cvv eqeltri
      fvex feq1 fveq1 syl6bb anbi12d spcev sylan impbid syl5bb bitri ) BDUAJKBD
      UBJKZDLZYCGMZUCZHMZBKZYDYFLZNUDZUEUFZYFOZPZHYCQZRZGUGZRYBEMZBKZAMZCJZYPOZ
      AYPLZNUDZQZPZEYCQZRBGDHUHYBYOUUEYOYEYGIMZYDJZYFOZIYIQZPZHYCQZRZGUGZYBUUEY
      NUULGYEYMUUKYEYLUUJHYCYEYKUUIYGUUIIYIUUGUIZYFOYEYKIYIUUGYFUJYEUUNYJYFYEYD
      UKUUNYJULYCYCYDUQIYIYDUMUNSUOUPURUSUTYBUUMUUEYBUULUUEGYBUULUUEYBUULRZUUDE
      YCUUOYPYCKZRZYQUUCYBUUPYQUUCUULYBYQUUCUUPYBYQRZYTAUUBUURYRUUBKZRYBYRYPOZY
      QYTYBYQUUSVAUUSUUTUURUUSYRUUAKUUTUUBUUAYRUUANVBVCYRYPVDUNZVEYBYQUUSVFBYRC
      YPDFVGVHVIVJVKUUQUUCRZYQUUGYPOZIUUBQZUVBYRYDJZYPOZAUUBQZUVDUUQUUCUVGUUQYT
      UVFAUUBUUQUUSRZUVEYSOZYTUVFVLUVHYRYSLZNUDZKUUGYSOZIUVKQZUVIUVHUVJNYRUVHYR
      YSOYRUVJKUVHBYRCDYBUULUUPUUSVMZFUVHYRYPDUUSUUTUUQUVAVEUUPYPDOUUOUUSYPDVDV
      NVOZVPYRYSAVQVRVSUUSYRNKUUQUUBNYRUUANVTVCVEWAUVHYSBKZUVMUVHYBYRDOUVPUVNUV
      OBYRCDFWBTZUVHYSYCKUUKUVPUVMPZUVHBYCYSYBBYCOUULUUPUUSBDWIZWCUVQWDUUOUUKUU
      PUUSYBYEUUKWEZWFUUJUVRHYSYCYFYSULZYGUVPUUIUVMYFYSBWGUWAUUHUVLIYIUVKUWAYHU
      VJNYFYSWHWJYFYSUUGWKWLWMWTTWNUVLUVIIYRUVKIAWOZUUGUVEYSUUFYRYDWPSWTTUVEYSY
      PWQUNWRWSUVFUVCAIUUBAIWOUVEUUGYPYRUUFYDWPSXAXBUVBUUPUUKYQUVDPZUUOUUPUUCVF
      UUOUUKUUPUUCUVTWFUUJUWCHYPYCHEWOZYGYQUUIUVDYFYPBWGZUWDUUHUVCIYIUUBUWDYHUU
      ANYFYPWHWJZYFYPUUGWKWLWMWTTXCXDVIXEXFYBUUEUUMYBYCYCCUCZUUEUUMYBYCBYCCBCDF
      XGUVSXHUULUWGUUERGCCBXIJXJFBXIXLXKYDCULZYEUWGUUKUUEYCYCYDCXMUWHUUKYGYSYFO
      ZAYIQZPZHYCQUUEUWHUUJUWKHYCUWHUUIUWJYGUWHUUIUUFCJZYFOZIYIQUWJUWHUUHUWMIYI
      UWHUUGUWLYFUUFYDCXNSURUWMUWIIAYIUWBUWLYSYFUUFYRCWPSXAXOUPURUWKUUDHEYCUWDY
      GYQUWJUUCUWEUWDUWIYTAYIUUBUWFYFYPYSWKWLWMXAXOXPXQXRXEXSXTUSYA $.

    $( A set is closed in an algebraic closure system iff it contains all
       closures of finite subsets.  (Contributed by Stefan O'Rear,
       2-Apr-2015.) $)
    acsfiel $p |- ( C e. ( ACS ` X ) -> ( S e. C <->
          ( S C_ X /\ A. y e. ( ~P S i^i Fin ) ( F ` y ) C_ S ) ) ) $=
      ( vs cacs cfv wcel wss wa cv cpw cfn cin wral cmre acsmre wb mress ex cdm
      sylan pm4.71rd elfvdm elpw2g syl biimpar isacs2 simprbi adantr wceq eleq1
      pweq ineq1d sseq2 raleqbidv bibi12d rspcva syl2anc pm5.32da bitrd ) BEHIJ
      ZCBJZCEKZVELVFAMDIZCKZACNZOPZQZLVDVEVFVDVEVFVDBERIJZVEVFBESBCEUAUDUBUEVDV
      FVEVKVDVFLCENZJZGMZBJZVGVOKZAVONZOPZQZTZGVMQZVEVKTZVDVNVFVDEHUCZJVNVFTBEH
      UFCEWDUGUHUIVDWBVFVDVLWBABDEGFUJUKULWAWCGCVMVOCUMZVPVEVTVKVOCBUNWEVQVHAVS
      VJWEVRVIOVOCUOUPVOCVGUQURUSUTVAVBVC $.

    $( A set is closed in an algebraic closure system iff it contains all
       closures of finite subsets.  (Contributed by Stefan O'Rear,
       3-Apr-2015.) $)
    acsfiel2 $p |- ( ( C e. ( ACS ` X ) /\ S C_ X ) -> ( S e. C <->
          A. y e. ( ~P S i^i Fin ) ( F ` y ) C_ S ) ) $=
      ( cacs cfv wcel wss cv cpw cfn cin wral acsfiel baibd ) BEGHICBICEJAKDHCJ
      ACLMNOABCDEFPQ $.
  $}

  ${
    acsmred.1 $e |- ( ph -> A e. ( ACS ` X ) ) $.
    $( An algebraic closure system is also a Moore system.  Deduction form of
       ~ acsmre .  (Contributed by David Moews, 1-May-2017.) $)
    acsmred $p |- ( ph -> A e. ( Moore ` X ) ) $=
      ( cacs cfv wcel cmre acsmre syl ) ABCEFGBCHFGDBCIJ $.
  $}

  ${
    $d F a s t $.  $d F f $.  $d V a t $.  $d X a s t $.  $d X f $.
    $d f s t $.
    $( A closure system determined by a function is a closure system and
       algebraic.  (Contributed by Stefan O'Rear, 3-Apr-2015.) $)
    isacs1i $p |- ( ( X e. V /\ F : ~P X --> ~P X ) ->
        { s e. ~P X | U. ( F " ( ~P s i^i Fin ) ) C_ s } e. ( ACS ` X ) ) $=
      ( vf vt va wcel cpw wa cv cfn cin cima cuni wss wral syl unieqd cvv wf wb
      crab cmre cfv wex cacs ssrab2 a1i cint elpw2g mpbiri ad2antrr crn imassrn
      inss1 adantl syl5ss unissd unipw syl6sseq adantr inss2 intss1 sspwb sylib
      frn wel ssrin imass2 ssel2 pweq ineq1d imaeq2d id sseq12d simprbi adantll
      weq elrab sstrd ralrimiva ssint sylibr ssind sylanbrc ismred2 fssxp pwexg
      wceq cxp xpexg syl2anc ssexg syl2anr simpr elrab3 rgen feq1 imaeq1 sseq1d
      jctir bibi2d ralbidv anbi12d spcegv sylc isacs ) CBHZCIZXJAUAZJZADKZIZLMZ
      NZOZXMPZDXJUCZCUDUEHXJXJEKZUAZFKZXSHZXTYBIZLMZNZOZYBPZUBZFXJQZJZEUFZXSCUG
      UEHXLXSCFXSXJPXLXRDXJUHUIXLYBXSPZJZCYBUJZMZXJHZAYPIZLMZNZOZYPPZYPXSHXIYQX
      KYMXIYQYPCPCYOUPYPCBUKULUMYNUUACYOXLUUACPYMXLUUAXJOCXLYTXJXLYTAUNZXJAYSUO
      XKUUCXJPXIXJXJAVGUQURUSCUTVAVBYNUUAGKZPZGYBQUUAYOPYNUUEGYBYNGFVHZJZUUAAUU
      DIZLMZNZOZUUDUUGYTUUJUUGYSUUIPZYTUUJPUUGYRUUHPZUULUUGYPUUDPZUUMUUFUUNYNUU
      FYPYOUUDCYOVCUUDYBVDURUQYPUUDVEVFYRUUHLVIRYSUUIAVJRUSYMUUFUUKUUDPZXLYMUUF
      JUUDXSHZUUOYBXSUUDVKUUPUUDXJHUUOXRUUODUUDXJDGVSZXQUUKXMUUDUUQXPUUJUUQXOUU
      IAUUQXNUUHLXMUUDVLVMVNSUUQVOVPVTVQRVRWAWBGUUAYBWCWDWEXRUUBDYPXJXMYPWJZXQU
      UAXMYPUURXPYTUURXOYSAUURXNYRLXMYPVLVMVNSUURVOVPVTWFWGXLATHZXKYCAYENZOZYBP
      ZUBZFXJQZJZYLXKAXJXJWKZPUVFTHZUUSXIXJXJAWHXIXJTHZUVHUVGCBWIZUVIXJXJTTWLWM
      AUVFTWNWOXLXKUVDXIXKWPUVCFXJXRUVBDYBXJDFVSZXQUVAXMYBUVJXPUUTUVJXOYEAUVJXN
      YDLXMYBVLVMVNSUVJVOVPWQWRXBYKUVEEATXTAWJZYAXKYJUVDXJXJXTAWSUVKYIUVCFXJUVK
      YHUVBYCUVKYGUVAYBUVKYFUUTXTAYEWTSXAXCXDXEXFXGXSECFXHWF $.
  $}

  ${
    $d K a b c $.  $d T a b c $.  $d V a b c $.  $d X a b c x $.  $d a d e $.
    $d a f $.  $d b d e $.  $d b f $.  $d c d e $.  $d c f $.  $d d f x $.
    $d e x $.
    $( Algebraicity is a composable property; combining several algebraic
       closure properties gives another.  (Contributed by Stefan O'Rear,
       3-Apr-2015.) $)
    mreacs $p |- ( X e. V -> ( ACS ` X ) e. ( Moore ` ~P X ) ) $=
      ( vx va vf vb vc vd ve cv cfv cpw cmre wcel wceq wss sylibr wral wa cvv
      cacs fveq2 pweq fveq2d eleq12d wtru acsmre mresspw syl selpw a1i cint cin
      ssriv wf cfn cima cuni wb wex vex mremre mp1i sstr mrerintcl syl2anc cmrc
      mpan2 ciun cmpt cxp wel ssel2 acsmred eqid mrcssvd ralrimiva adantr iunss
      elpw2 fmptd fssxp vpwex xpex ssexg sylancl elpwi ad2antlr acsfiel2 ralbii
      adantlr ralbidva ralcom bitri syl6bbr elrint2 adantl wfun funmpt funiunfv
      ax-mp sseq1i inss1 sspwb syl5ss sselda ad2antrr weq iuneq2d fvmptg sseq1d
      sylib syl5bb syl5bbr 3bitr4d jca feq1 imaeq1 unieqd bibi2d ralbidv spcegv
      anbi12d sylc isacs sylanbrc ismred2 trud vtoclg ) CJZUAKZYJLZMKZNZBUAKZBL
      ZMKZNCBAYJBOZYKYOYMYQYJBUAUBYRYLYPMYJBUCUDUEYNUFYKYLDYKYLLZPUFDYKYSDJZYKN
      ZYTYLPZYTYSNUUAYTYJMKZNUUBYTYJUGZYTYJUHUIDYLUJQUNUKYTYKPZYLYTULUMZYKNZUFU
      UEUUFUUCNZYLYLEJZUOZFJZUUFNZUUIUUKLZUPUMZUQZURZUUKPZUSZFYLRZSZEUTZUUGUUEU
      UCYMNZYTUUCPZUUHYJTNZUVBUUECVAZTYJVBVCUUEYKUUCPUVCDYKUUCUUDUNYTYKUUCVDVHU
      UCYTYLVEVFUUEGYLHYTGJZHJZVGKZKZVIZVJZTNZYLYLUVKUOZUULUVKUUNUQZURZUUKPZUSZ
      FYLRZSZUVAUUEUVKYLYLVKZPZUVTTNUVLUUEUVMUWAUUEGYLUVJYLUVKUUEUVFYLNZSZUVJYJ
      PZUVJYLNUWCUVIYJPZHYTRZUWDUUEUWFUWBUUEUWEHYTUUEHDVLZSZUVGUVFUVHYJUWHUVGYJ
      YTYKUVGVMZVNZUVHVOZVPVQVRHYTUVIYJVSQUVJYJUVEVTQUVKVOZWAZYLYLUVKWBUIYLYLCW
      CZUWNWDUVKUVTTWEWFUUEUVMUVRUWMUUEUVQFYLUUEUUKYLNZSZFHVLZHYTRZHYTIJZUVHKZV
      IZUUKPZIUUNRZUULUVPUWPUWRUWTUUKPZIUUNRZHYTRZUXCUWPUWQUXEHYTUWPUWGSUVGYKNZ
      UUKYJPZUWQUXEUSUUEUWGUXGUWOUWIWKUWOUXHUUEUWGUUKYJWGZWHIUVGUUKUVHYJUWKWIVF
      WLUXCUXDHYTRZIUUNRUXFUXBUXJIUUNHYTUWTUUKVSWJUXDIHUUNYTWMWNWOUWOUULUWRUSUU
      EHYLYTUUKWPWQUVPIUUNUWSUVKKZVIZUUKPZUWPUXCUXLUVOUUKUVKWRUXLUVOOGYLUVJWSIU
      UNUVKWTXAXBUXMUXKUUKPZIUUNRUWPUXCIUUNUXKUUKVSUWPUXNUXBIUUNUWPUWSUUNNZSZUX
      KUXAUUKUXPUWSYLNUXATNZUXKUXAOUWPUUNYLUWSUWPUUNUUMYLUUMUPXCUWOUUMYLPZUUEUW
      OUXHUXRUXIUUKYJXDXLWQXEXFUXPUXAYJPZUVDUXQUXPUWTYJPZHYTRZUXSUUEUYAUWOUXOUU
      EUXTHYTUWHUVGUWSUVHYJUWJUWKVPVQXGHYTUWTYJVSQUVEUXAYJTWEWFGUWSUVJUXAYLTUVK
      GIXHHYTUVIUWTUVFUWSUVHUBXIUWLXJVFXKWLXMXNXOVQXPUUTUVSEUVKTUUIUVKOZUUJUVMU
      USUVRYLYLUUIUVKXQUYBUURUVQFYLUYBUUQUVPUULUYBUUPUVOUUKUYBUUOUVNUUIUVKUUNXR
      XSXKXTYAYCYBYDUUFEYJFYEYFWQYGYHYI $.

    $( Algebraicity of a conditional point closure condition.  (Contributed by
       Stefan O'Rear, 3-Apr-2015.) $)
    acsfn $p |- ( ( ( X e. V /\ K e. X ) /\ ( T C_ X /\ T e. Fin ) ) ->
        { a e. ~P X | ( T C_ a -> K e. a ) } e. ( ACS ` X ) ) $=
      ( vb vc wcel wa wss cfn cv wi cpw wceq c0 wral syl wb adantl crab csn cif
      cmpt cin cima cuni cacs ciun wfun funmpt funiunfv mp1i inss1 sseli elpwid
      cfv elpwi sylan9ssr selpw sylibr adantll eqeq1 ifbid eqid snex ifex fvmpt
      weq 0ex iuneq2dv eqtr3d sseq1d iunss sseq1 bibi1d snssg adantr bitr3d 0ss
      biimt a1i pm2.21 2thd ifbothda ralbidv ad3antlr syl5bb sspwb sylib syl5ss
      ralss bi2.04 ralbii elpwg biimparc ad2antlr eleq1 imbi1d ceqsralv simplrr
      wn elpw2 biantrud elin syl6bbr syl5rbbr 3bitrd 3bitrrd rabbidva wf simpll
      vex snelpwi 0elpw ifcl sylancl fmptd isacs1i syl2anc eqeltrd ) DCHZBDHZIZ
      ADJZAKHZIZIZAELZJZBYIHZMZEDNZUAFYMFLZAOZBUBZPUCZUDZYINZKUEZUFUGZYIJZEYMUA
      ZDUHUQZYHYLUUBEYMYHYIYMHZIZUUBGYTGLZAOZYPPUCZUIZYIJZUUHYKMZGYTQZYLUUFUUAU
      UJYIUUFGYTUUGYRUQZUIZUUAUUJYRUJUUOUUAOUUFFYMYQUKGYTYRULUMUUFGYTUUNUUIUUFU
      UGYTHZIUUGYMHZUUNUUIOUUEUUPUUQYHUUEUUPIUUGDJUUQUUPUUEUUGYIDUUPUUGYIYTYSUU
      GYSKUNZUOUPYIDURZUSGDUTVAVBFUUGYQUUIYMYRFGVIYOUUHYPPYNUUGAVCVDYRVEZUUHYPP
      BVFVJVGVHRVKVLVMUUKUUIYIJZGYTQZUUFUUMGYTUUIYIVNYCUVBUUMSYBYGUUEYCUVAUULGY
      TUUHYPYIJZUULSPYIJZUULSZUVAUULSYCYPPYPUUIOUVCUVAUULYPUUIYIVOVPPUUIOUVDUVA
      UULPUUIYIVOVPYCUUHIYKUVCUULYCYKUVCSUUHBYIDVQVRUUHYKUULSYCUUHYKWATVSUUHXBZ
      UVEYCUVFUVDUULUVDUVFYIVTWBUUHYKWCWDTWEWFWGWHUUFUUMUUPUULMZGYMQZAYTHZYKMZY
      LUUFYTYMJZUUMUVHSUUEUVKYHUUEYTYSYMUURUUEYIDJYSYMJUUSYIDWIWJWKTUULGYTYMWLR
      UVHUUHUUPYKMZMZGYMQZUUFUVJUVGUVMGYMUUPUUHYKWMWNUUFAYMHZUVNUVJSYGUVOYDUUEY
      FUVOYEADKWOWPWQUVLUVJGAYMUUHUUPUVIYKUUGAYTWRWSWTRWHUUFUVIYJYKYJAYSHZUUFUV
      IAYIEXMXCUUFUVPUVPYFIUVIUUFYFUVPYDYEYFUUEXAXDAYSKXEXFXGWSXHXIXJYHYBYMYMYR
      XKUUCUUDHYBYCYGXLYHFYMYQYMYRYHYQYMHZYNYMHYHYPYMHZPYMHUVQYCUVRYBYGBDXNWQDX
      OYOYPPYMXPXQVRUUTXRYRCDEXSXTYA $.

    $( Algebraicity of a point closure condition.  (Contributed by Stefan
       O'Rear, 3-Apr-2015.) $)
    acsfn0 $p |- ( ( X e. V /\ K e. X ) ->
        { a e. ~P X | K e. a } e. ( ACS ` X ) ) $=
      ( wcel wa cv cpw crab c0 wss wi cacs cfv wb 0ss a1bi a1i rabbiia cfn 0fin
      acsfn mpanr12 syl5eqel ) CBEACEFZADGZEZDCHZIJUFKZUGLZDUHIZCMNZUGUJDUHUGUJ
      OUFUHEUIUGUFPQRSUEJCKJTEUKULECPUAJABCDUBUCUD $.

    $d E a $.
    $( Algebraicity of a one-argument closure condition.  (Contributed by
       Stefan O'Rear, 3-Apr-2015.) $)
    acsfn1 $p |- ( ( X e. V /\ A. b e. X E e. X ) ->
        { a e. ~P X | A. b e. a E e. a } e. ( ACS ` X ) ) $=
      ( wcel wral wa cv cpw crab csn wss wi ciin cin cacs cfv wel wb elpwi snss
      ralss syl vex imbi1i ralbii syl6bb rabbiia riinrab eqtr4i cmre mreacs cfn
      adantr simpll simpr snssi ad2antlr snfi acsfn syl22anc ralimdva mreriincl
      a1i ex imp syl2anc syl5eqel ) CBFZACFZECGZHZADIZFZEVNGZDCJZKZVQECEIZLZVNM
      ZVONZDVQKZOPZCQRZVRWBECGZDVQKWDVPWFDVQVNVQFZVPEDSZVONZECGZWFWGVNCMVPWJTVN
      CUAVOEVNCUCUDWIWBECWHWAVOVSVNEUEUBUFUGUHUIWBEDVQCUJUKVMWEVQULRFZWCWEFZECG
      ZWDWEFVJWKVLBCUMUOVJVLWMVJVKWLECVJVSCFZHZVKWLWOVKHZVJVKVTCMZVTUNFZWLVJWNV
      KUPWOVKUQWNWQVJVKVSCURUSWRWPVSUTVEVTABCDVAVBVFVCVGEWEWCCVQVDVHVI $.

    $( Algebraicity of a one-argument closure condition with additional
       constant.  (Contributed by Stefan O'Rear, 3-Apr-2015.) $)
    acsfn1c $p |- ( ( X e. V /\ A. b e. K A. c e. X E e. X ) ->
        { a e. ~P X | A. b e. K A. c e. a E e. a } e. ( ACS ` X ) ) $=
      ( wcel wral wa cv cpw crab ciin cin cacs cfv riinrab cmre mreacs ralimdv
      adantr acsfn1 ex imp mreriincl syl2anc syl5eqelr ) DCHZADHGDIZFBIZJZAEKZH
      GUMIZFBIEDLZMUOFBUNEUOMZNOZDPQZUNFEUOBRULURUOSQHZUPURHZFBIZUQURHUIUSUKCDT
      UBUIUKVAUIUJUTFBUIUJUTACDEGUCUDUAUEFURUPBUOUFUGUH $.

    $( Algebraicity of a two-argument closure condition.  (Contributed by
       Stefan O'Rear, 3-Apr-2015.) $)
    acsfn2 $p |- ( ( X e. V /\ A. b e. X A. c e. X E e. X ) ->
        { a e. ~P X | A. b e. a A. c e. a E e. a } e. ( ACS ` X ) ) $=
      ( wcel wral wa cv crab wss wi ciin cin cfv wel ralss vex riinrab cpw cacs
      cpr wb elpwi r19.21v impexp prss imbi1i bitr3i ralbii 3bitr3g ralbidv syl
      bitrd rabbiia eqtr4i cmre mreacs adantr ad2antrr cfn simpll simprr ancoms
      prssi ad2ant2lr prfi a1i acsfn syl22anc expr ralimdva mreriincl syl5eqelr
      imp syl2anc ex syl5eqel ) CBGZACGZFCHZECHZIZADJZGZFWEHZEWEHZDCUAZKZWIECFJ
      ZEJZUCZWELZWFMZFCHZDWIKZNOZCUBPZWJWPECHZDWIKWRWHWTDWIWEWIGWECLZWHWTUDWECU
      EXAWHEDQZWGMZECHWTWGEWECRXAXCWPECXAXBWFMZFWEHFDQZXDMZFCHXCWPXDFWECRXBWFFW
      EUFXFWOFCXFXEXBIZWFMWOXEXBWFUGXGWNWFWKWLWEFSESUHUIUJUKULUMUOUNUPWPEDWICTU
      QWDWSWIURPGZWQWSGZECHZWRWSGVTXHWCBCUSZUTVTWCXJVTWBXIECVTWLCGZIZWBXIXMWBIZ
      WQWIFCWODWIKZNOZWSWOFDWICTXNXHXOWSGZFCHZXPWSGVTXHXLWBXKVAXMWBXRXMWAXQFCXM
      WKCGZWAXQXMXSWAIZIZVTWAWMCLZWMVBGZXQVTXLXTVCXMXSWAVDXLXSYBVTWAXSXLYBWKWLC
      VFVEVGYCYAWKWLVHVIWMABCDVJVKVLVMVPFWSXOCWIVNVQVOVRVMVPEWSWQCWIVNVQVS $.
  $}


$(
###############################################################################
  BASIC CATEGORY THEORY
###############################################################################
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Categories
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Categories
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Cat $. $( The class of all categories. $)
  $c Id $. $( The identity arrow in a category. $)
  $c Homf $. $( The functionalized hom-set operation. $)
  $c comf $. $( The functionalized composition operation. $)

  $( Extend class notation with the class of categories. $)
  ccat $a class Cat $.

  $( Extend class notation with the identity arrow of a category. $)
  ccid $a class Id $.

  $( Extend class notation to include functionalized Hom-set extractor. $)
  chomf $a class Homf $.

  $( Extend class notation to include functionalized composition operation. $)
  ccomf $a class comf $.

  ${
    $d b c f g h k o w x y z .x. $.  $d b c f g h k o w x y z B $.
    $d b c f g h k o w x y z C $.  $d b c f g h k o w x y z H $.
    $( A category is an abstraction of a structure (a group, a topology, an
       order...)  Category theory consists in finding new formulation of the
       concepts associated with those structures (product, substructure...)
       using morphisms instead of the belonging relation.  That trick has the
       interesting property that heterogeneous structures like topologies or
       groups for instance become comparable.  Definition in [Lang] p. 53.  In
       contrast to definition 3.1 of [Adamek] p. 21, where "A category is a
       quadruple A = (O, hom, id, o)", a category is defined as an extensible
       structure consisting of three slots: the objects "O"
       ( ` ( Base `` c ) ` ), the morphisms "hom" ( ` ( Hom `` c ) ` ) and the
       composition law "o" ( ` ( comp `` c ) ` ).  The identities "id" are
       defined by their properties related to morphisms and their composition,
       see condition 3.1(b) in [Adamek] p. 21 and ~ df-cid .  (Note: in
       category theory morphisms are also called arrows.)  (Contributed by FL,
       24-Oct-2007.)  (Revised by Mario Carneiro, 2-Jan-2017.) $)
    df-cat $a |- Cat = { c | [. ( Base ` c ) / b ]. [. ( Hom ` c ) / h ].
      [. ( comp ` c ) / o ]. A. x e. b
      ( E. g e. ( x h x ) A. y e. b
        ( A. f e. ( y h x ) ( g ( <. y , x >. o x ) f ) = f /\
          A. f e. ( x h y ) ( f ( <. x , x >. o y ) g ) = f ) /\
        A. y e. b A. z e. b A. f e. ( x h y ) A. g e. ( y h z )
      ( ( g ( <. x , y >. o z ) f ) e. ( x h z ) /\ A. w e. b A. k e. ( z h w )
         ( ( k ( <. y , z >. o w ) g ) ( <. x , y >. o w ) f ) =
         ( k ( <. x , z >. o w ) ( g ( <. x , y >. o z ) f ) ) ) ) } $.

    $( Define the category identity arrow.  Since it is uniquely defined when
       it exists, we do not need to add it to the data of the category, and
       instead extract it by uniqueness.  (Contributed by Mario Carneiro,
       3-Jan-2017.) $)
    df-cid $a |- Id = ( c e. Cat |->
      [_ ( Base ` c ) / b ]_ [_ ( Hom ` c ) / h ]_ [_ ( comp ` c ) / o ]_
      ( x e. b |-> ( iota_ g e. ( x h x ) A. y e. b
        ( A. f e. ( y h x ) ( g ( <. y , x >. o x ) f ) = f /\
          A. f e. ( x h y ) ( f ( <. x , x >. o y ) g ) = f ) ) ) ) $.

    $( Define the functionalized Hom-set operator, which is exactly like
       ` Hom ` but is guaranteed to be a function on the base.  (Contributed by
       Mario Carneiro, 4-Jan-2017.) $)
    df-homf $a |- Homf = ( c e. _V |->
      ( x e. ( Base ` c ) , y e. ( Base ` c ) |-> ( x ( Hom ` c ) y ) ) ) $.

    $( Define the functionalized composition operator, which is exactly like
       ` comp ` but is guaranteed to be a function of the proper type.
       (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    df-comf $a |- comf = ( c e. _V |->
      ( x e. ( ( Base ` c ) X. ( Base ` c ) ) , y e. ( Base ` c ) |->
      ( g e. ( ( 2nd ` x ) ( Hom ` c ) y ) , f e. ( ( Hom ` c ) ` x ) |->
        ( g ( x ( comp ` c ) y ) f ) ) ) ) $.

    iscat.b $e |- B = ( Base ` C ) $.
    iscat.h $e |- H = ( Hom ` C ) $.
    iscat.o $e |- .x. = ( comp ` C ) $.
    $( The predicate "is a category".  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    iscat $p |- ( C e. V -> ( C e. Cat <-> A. x e. B
      ( E. g e. ( x H x ) A. y e. B
          ( A. f e. ( y H x ) ( g ( <. y , x >. .x. x ) f ) = f /\
            A. f e. ( x H y ) ( f ( <. x , x >. .x. y ) g ) = f ) /\
        A. y e. B A. z e. B A. f e. ( x H y ) A. g e. ( y H z )
        ( ( g ( <. x , y >. .x. z ) f ) e. ( x H z ) /\
          A. w e. B A. k e. ( z H w )
         ( ( k ( <. y , z >. .x. w ) g ) ( <. x , y >. .x. w ) f ) =
         ( k ( <. x , z >. .x. w ) ( g ( <. x , y >. .x. z ) f ) ) ) ) ) ) $=
      ( cv co wceq wral oveqd vo vh vb cop wrex wcel cco cfv wsbc chom cbs ccat
      vc wa fvexd fveq2 syl6eqr simpl fveq2d simpll simpllr simplr simpr eqeq1d
      raleqbidv anbi12d rexeqbidv eleq12d eqidd oveq123d eqeq12d sbcied2 df-cat
      cvv elab2g ) IPZHPZBPZAPZUDZVSUAPZQZQZVQRZHVRVSUBPZQZSZVQVPVSVSUDZVRWAQZQ
      ZVQRZHVSVRWEQZSZUNZBUCPZSZIVSVSWEQZUEZVPVQVSVRUDZCPZWAQZQZVSWTWEQZUFZJPZV
      PVRWTUDZDPZWAQZQZVQWSXGWAQZQZXEXBVSWTUDZXGWAQZQZRZJWTXGWEQZSZDWOSZUNZIVRW
      TWEQZSZHWLSZCWOSZBWOSZUNZAWOSZUAUMPZUGUHZUIZUBYGUJUHZUIZUCYGUKUHZUIVPVQVT
      VSGQZQZVQRZHVRVSKQZSZVQVPWHVRGQZQZVQRZHVSVRKQZSZUNZBESZIVSVSKQZUEZVPVQWSW
      TGQZQZVSWTKQZUFZXEVPXFXGGQZQZVQWSXGGQZQZXEUUHXLXGGQZQZRZJWTXGKQZSZDESZUNZ
      IVRWTKQZSZHUUASZCESZBESZUNZAESZUMFULLYGFRZYKUVHUCYLEVNUVIYGUKUOUVIYLFUKUH
      EYGFUKUPMUQUVIWOERZUNZYIUVHUBYJKVNUVKYGUJUOUVKYJFUJUHKUVKYGFUJUVIUVJURUSN
      UQUVKWEKRZUNZYFUVHUAYHGVNUVMYGUGUOUVMYHFUGUHGUVMYGFUGUVIUVJUVLUTUSOUQUVMW
      AGRZUNZYEUVGAWOEUVIUVJUVLUVNVAZUVOWRUUFYDUVFUVOWPUUDIWQUUEUVOWEKVSVSUVKUV
      LUVNVBZTUVOWNUUCBWOEUVPUVOWGYQWMUUBUVOWDYOHWFYPUVOWEKVRVSUVQTUVOWCYNVQUVO
      WBYMVPVQUVOWAGVTVSUVMUVNVCZTTVDVEUVOWKYTHWLUUAUVOWEKVSVRUVQTZUVOWJYSVQUVO
      WIYRVQVPUVOWAGWHVRUVRTTVDVEVFVEVGUVOYCUVEBWOEUVPUVOYBUVDCWOEUVPUVOYAUVCHW
      LUUAUVSUVOXSUVAIXTUVBUVOWEKVRWTUVQTUVOXDUUJXRUUTUVOXBUUHXCUUIUVOXAUUGVPVQ
      UVOWAGWSWTUVRTTZUVOWEKVSWTUVQTVHUVOXQUUSDWOEUVPUVOXOUUQJXPUURUVOWEKWTXGUV
      QTUVOXKUUNXNUUPUVOXIUULVQVQXJUUMUVOWAGWSXGUVRTUVOXHUUKXEVPUVOWAGXFXGUVRTT
      UVOVQVIVJUVOXEXEXBUUHXMUUOUVOWAGXLXGUVRTUVOXEVIUVTVJVKVEVEVFVEVEVEVEVFVEV
      LVLVLABCDHIUBJUAUCUMVMVO $.
  $}

  ${
    $d f g y .1. $.  $d f g k w x y z B $.  $d f g k w x y z ph $.  $d g .x. $.
    $d f g k w x y z C $.  $d f g k w H $.
    iscatd.b $e |- ( ph -> B = ( Base ` C ) ) $.
    iscatd.h $e |- ( ph -> H = ( Hom ` C ) ) $.
    iscatd.o $e |- ( ph -> .x. = ( comp ` C ) ) $.
    iscatd.c $e |- ( ph -> C e. V ) $.
    iscatd.1 $e |- ( ( ph /\ x e. B ) -> .1. e. ( x H x ) ) $.
    iscatd.2 $e |- ( ( ph /\ ( x e. B /\ y e. B /\ f e. ( y H x ) ) ) ->
      ( .1. ( <. y , x >. .x. x ) f ) = f ) $.
    iscatd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B /\ f e. ( x H y ) ) ) ->
      ( f ( <. x , x >. .x. y ) .1. ) = f ) $.
    iscatd.4 $e |- ( ( ph /\ ( x e. B /\ y e. B /\ z e. B ) /\
      ( f e. ( x H y ) /\ g e. ( y H z ) ) ) ->
        ( g ( <. x , y >. .x. z ) f ) e. ( x H z ) ) $.
    iscatd.5 $e |- ( ( ph /\ ( ( x e. B /\ y e. B ) /\ ( z e. B /\ w e. B ) )
      /\ ( f e. ( x H y ) /\ g e. ( y H z ) /\ k e. ( z H w ) ) ) ->
       ( ( k ( <. y , z >. .x. w ) g ) ( <. x , y >. .x. w ) f ) =
         ( k ( <. x , z >. .x. w ) ( g ( <. x , y >. .x. z ) f ) ) ) $.
    $( Properties that determine a category.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    iscatd $p |- ( ph -> C e. Cat ) $=
      ( ccat wcel cv cop cco cfv co wceq chom wral wa wrex 3exp2 imp31 ralrimiv
      cbs wi ralrimiva oveq1 eqeq1d ralbidv oveq2 anbi12d rspcev syl2anc 3expia
      jca imp43 3expa imp32 expr expd imp42 ralrimdva jcad ralrimivv ralrimivva
      ex oveqd raleqbidv rexeqbidv eleq12d eqidd oveq123d eqeq12d mpbid wb eqid
      w3a iscat syl mpbird ) AGUDUEZKUFZJUFZCUFZBUFZUGZWTGUHUIZUJZUJZWRUKZJWSWT
      GULUIZUJZUMZWRWQWTWTUGZWSXBUJZUJZWRUKZJWTWSXFUJZUMZUNZCGUSUIZUMZKWTWTXFUJ
      ZUOZWQWRWTWSUGZDUFZXBUJZUJZWTYAXFUJZUEZLUFZWQWSYAUGZEUFZXBUJZUJZWRXTYHXBU
      JZUJZYFYCWTYAUGZYHXBUJZUJZUKZLYAYHXFUJZUMZEXPUMZUNZKWSYAXFUJZUMZJXMUMZDXP
      UMZCXPUMZUNZBXPUMZAWQWRXAWTHUJZUJZWRUKZJWSWTMUJZUMZWRWQXIWSHUJZUJZWRUKZJW
      TWSMUJZUMZUNZCFUMZKWTWTMUJZUOZWQWRXTYAHUJZUJZWTYAMUJZUEZYFWQYGYHHUJZUJZWR
      XTYHHUJZUJZYFUVCYMYHHUJZUJZUKZLYAYHMUJZUMZEFUMZUNZKWSYAMUJZUMZJUUPUMZDFUM
      ZCFUMZUNZBFUMUUGAUWBBFAWTFUEZUNZUVAUWAUWDIUUTUEIWRUUHUJZWRUKZJUUKUMZWRIUU
      MUJZWRUKZJUUPUMZUNZCFUMZUVASUWDUWKCFUWDWSFUEZUNZUWGUWJUWNUWFJUUKAUWCUWMWR
      UUKUEZUWFUTAUWCUWMUWOUWFTUPUQURUWNUWIJUUPAUWCUWMWRUUPUEZUWIUTAUWCUWMUWPUW
      IUAUPUQURVJVAUUSUWLKIUUTWQIUKZUURUWKCFUWQUULUWGUUQUWJUWQUUJUWFJUUKUWQUUIU
      WEWRWQIWRUUHVBVCVDUWQUUOUWIJUUPUWQUUNUWHWRWQIWRUUMVEVCVDVFVDVGVHUWDUVSCDF
      FUWDUWMYAFUEZUNUNZUVPJKUUPUVQUWSUWPWQUVQUEZUNZUVEUVOAUWCUWMUWRUXAUVEUTZAU
      WCUWMUWRUXBAUWCUWMUWRWLUXAUVEUBVIUPVKUWSUXAUVNEFUWDUWMUWRYHFUEZUXAUVNUTZA
      UWCUWMUWRUXCUXDUTUTAUWCUWMUNZUNUWRUXCUXDAUXEUWRUXCUNZUXDAUXEUXFUNZUNZUXAU
      VNUXHUXAUNUVLLUVMUXHUWPUWTYFUVMUEZUVLUTUXHUWPUWTUXIUVLAUXGUWPUWTUXIWLUVLU
      CVLUPVMURWAVNVOVNVPVQVRVSVTVJVAAUWBUUFBFXPOAUVAXSUWAUUEAUUSXQKUUTXRAMXFWT
      WTPWBAUURXOCFXPOAUULXHUUQXNAUUJXEJUUKXGAMXFWSWTPWBAUUIXDWRAUUHXCWQWRAHXBX
      AWTQWBWBVCWCAUUOXLJUUPXMAMXFWTWSPWBZAUUNXKWRAUUMXJWRWQAHXBXIWSQWBWBVCWCVF
      WCWDAUVTUUDCFXPOAUVSUUCDFXPOAUVRUUBJUUPXMUXJAUVPYTKUVQUUAAMXFWSYAPWBAUVEY
      EUVOYSAUVCYCUVDYDAUVBYBWQWRAHXBXTYAQWBWBZAMXFWTYAPWBWEAUVNYREFXPOAUVLYPLU
      VMYQAMXFYAYHPWBAUVIYLUVKYOAUVGYJWRWRUVHYKAHXBXTYHQWBAUVFYIYFWQAHXBYGYHQWB
      WBAWRWFWGAYFYFUVCYCUVJYNAHXBYMYHQWBAYFWFUXKWGWHWCWCVFWCWCWCWCVFWCWIAGNUEW
      PUUGWJRBCDEXPGXBJKLXFNXPWKXFWKXBWKWMWNWO $.
  $}

  ${
    $d f g k w x y z B $.  $d f g k w x y z C $.  $d g ph $.  $d f g h x y X $.
    $d f g h k w x y z H $.  $d f g h k w x y z .x. $.
    catidex.b $e |- B = ( Base ` C ) $.
    catidex.h $e |- H = ( Hom ` C ) $.
    catidex.o $e |- .x. = ( comp ` C ) $.
    catidex.c $e |- ( ph -> C e. Cat ) $.
    catidex.x $e |- ( ph -> X e. B ) $.
    $( Each object in a category has an associated identity arrow.
       (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    catidex $p |- ( ph -> E. g e. ( X H X ) A. y e. B
          ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\
            A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) ) $=
      ( vx cv cop co wceq wral vz vk vw wcel wa wrex ccat iscat ibi ralimi 3syl
      simpl id oveq12d oveq2 opeq2 oveqd eqeq1d raleqbidv oveq1 opeq12d anbi12d
      oveq1d ralbidv rexeqbidv rspcv sylc ) AICUDGPZFPZBPZOPZQZVKERZRZVISZFVJVK
      HRZTZVIVHVKVKQZVJERZRZVISZFVKVJHRZTZUEZBCTZGVKVKHRZUFZOCTZVHVIVJIQZIERZRZ
      VISZFVJIHRZTZVIVHIIQZVJERZRZVISZFIVJHRZTZUEZBCTZGIIHRZUFZNADUGUDZWGVHVIVK
      VJQZUAPZERRZVKXGHRUDUBPZVHVJXGQUCPZERRVIXFXJERRXIXHVKXGQXJERRSUBXGXJHRTUC
      CTUEGVJXGHRTFWBTUACTBCTZUEZOCTZWHMXEXMOBUAUCCDEFGUBHUGJKLUHUIXLWGOCWGXKUL
      UJUKWGXDOICVKISZWEXBGWFXCXNVKIVKIHXNUMZXOUNXNWDXABCXNVQWNWCWTXNVOWLFVPWMV
      KIVJHUOXNVNWKVIXNVMWJVHVIXNVLWIVKIEVKIVJUPXOUNUQURUSXNWAWRFWBWSVKIVJHUTXN
      VTWQVIXNVSWPVIVHXNVRWOVJEXNVKIVKIXOXOVAVCUQURUSVBVDVEVFVG $.

    $( Each object in a category has a unique identity arrow.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    catideu $p |- ( ph -> E! g e. ( X H X ) A. y e. B
          ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\
            A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) ) $=
      ( vh cv co wceq wral wa wrex wrmo wreu catidex wi wcel oveq1 opeq1 oveq1d
      cop oveqd eqeq1d raleqbidv oveq2 anbi12d syl ralrimivw weq an3 id eqeq12d
      rspcv im2anan9r eqtr2 equcomd syl56 rgen2a ralbidv rmo4 sylibr rmoim sylc
      a1i reu5 sylanbrc ) AGPZFPZBPZIUJZIEQZQZVQRZFVRIHQZSZVQVPIIUJZVREQZQZVQRZ
      FIVRHQZSZTZBCSZGIIHQZUAWLGWMUBZWLGWMUCABCDEFGHIJKLMNUDAWLVPVQWEIEQZQZVQRZ
      FWMSZVQVPWOQZVQRZFWMSZTZUEZGWMSXBGWMUBZWNAXCGWMAICUFXCNWKXBBICVRIRZWDWRWJ
      XAXEWBWQFWCWMVRIIHUGXEWAWPVQXEVTWOVPVQXEVSWEIEVRIIUHUIUKULUMXEWHWTFWIWMVR
      IIHUNXEWGWSVQXEWFWOVQVPVRIWEEUNUKULUMUOVBUPUQAXBOPZVQWOQZVQRZFWMSZVQXFWOQ
      ZVQRZFWMSZTZTZGOURZUEZOWMSGWMSZXDXQAXPGOWMXNWRXLTVPWMUFZXFWMUFZTVPXFWOQZX
      FRZXTVPRZTZXOWRXAXIXLUSXSWRYAXRXLYBWQYAFXFWMFOURZWPXTVQXFVQXFVPWOUNYDUTVA
      VBXKYBFVPWMFGURZXJXTVQVPVQVPXFWOUGYEUTVAVBVCYCOGXTXFVPVDVEVFVGVMXBXMGOWMX
      OWRXIXAXLXOWQXHFWMXOWPXGVQVPXFVQWOUGULVHXOWTXKFWMXOWSXJVQVPXFVQWOUNULVHUO
      VIVJWLXBGWMVKVLWLGWMVNVO $.
  $}

  ${
    $d b c f g h o x y B $.  $d b c f g h o x y C $.  $d b c f g h o x y .x. $.
    $d b c f g h o x y H $.  $d f g x y ph $.  $d f g x y X $.
    cidfval.b $e |- B = ( Base ` C ) $.
    cidfval.h $e |- H = ( Hom ` C ) $.
    cidfval.o $e |- .x. = ( comp ` C ) $.
    cidfval.c $e |- ( ph -> C e. Cat ) $.
    cidfval.i $e |- .1. = ( Id ` C ) $.
    $( Each object in a category has an associated identity arrow.
       (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    cidfval $p |- ( ph -> .1. = ( x e. B |-> ( iota_ g e. ( x H x ) A. y e. B
      ( A. f e. ( y H x ) ( g ( <. y , x >. .x. x ) f ) = f /\
        A. f e. ( x H y ) ( f ( <. x , x >. .x. y ) g ) = f ) ) ) ) $=
      ( cfv cv co wceq oveqd vc vb vh vo ccid cop wral crio cmpt ccat wcel chom
      wa cbs cco csb cvv fvexd fveq2 syl6eqr simpl fveq2d simpll simpllr simplr
      simpr eqeq1d raleqbidv anbi12d riotaeqbidv mpteq12dv csbied2 fvex eqeltri
      df-cid mptex fvmpt syl syl5eq ) AGEUEPZBDIQZHQZCQZBQZUFZWDFRZRZWBSZHWCWDJ
      RZUGZWBWAWDWDUFZWCFRZRZWBSZHWDWCJRZUGZUMZCDUGZIWDWDJRZUHZUIZOAEUJUKVTXASN
      UAEUBUAQZUNPZUCXBULPZUDXBUOPZBUBQZWAWBWEWDUDQZRZRZWBSZHWCWDUCQZRZUGZWBWAW
      KWCXGRZRZWBSZHWDWCXKRZUGZUMZCXFUGZIWDWDXKRZUHZUIZUPZUPZUPXAUJUEXBESZUBXCD
      YEXAUQYFXBUNURYFXCEUNPZDXBEUNUSKUTYFXFDSZUMZUCXDJYDXAUQYIXBULURYIXDEULPJY
      IXBEULYFYHVAVBLUTYIXKJSZUMZUDXEFYCXAUQYKXBUOURYKXEEUOPFYKXBEUOYFYHYJVCVBM
      UTYKXGFSZUMZBXFYBDWTYFYHYJYLVDZYMXTWRIYAWSYMXKJWDWDYIYJYLVEZTYMXSWQCXFDYN
      YMXMWJXRWPYMXJWHHXLWIYMXKJWCWDYOTYMXIWGWBYMXHWFWAWBYMXGFWEWDYKYLVFZTTVGVH
      YMXPWNHXQWOYMXKJWDWCYOTYMXOWMWBYMXNWLWBWAYMXGFWKWCYPTTVGVHVIVHVJVKVLVLVLB
      CHIUCUDUBUAVOBDWTDYGUQKEUNVMVNVPVQVRVS $.

    cidval.x $e |- ( ph -> X e. B ) $.
    $( Each object in a category has an associated identity arrow.
       (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    cidval $p |- ( ph -> ( .1. ` X ) = ( iota_ g e. ( X H X ) A. y e. B
      ( A. f e. ( y H X ) ( g ( <. y , X >. .x. X ) f ) = f /\
        A. f e. ( X H y ) ( f ( <. X , X >. .x. y ) g ) = f ) ) ) $=
      ( cv co wceq wral vx cop wa cvv cidfval simpr oveq12d oveq2d opeq2d oveqd
      crio eqeq1d raleqbidv oveq1d opeq12d anbi12d ralbidv riotaeqbidv wcel a1i
      riotaex fvmptd ) AUAJHQZGQZBQZUAQZUBZVFERZRZVDSZGVEVFIRZTZVDVCVFVFUBZVEER
      ZRZVDSZGVFVEIRZTZUCZBCTZHVFVFIRZUKVCVDVEJUBZJERZRZVDSZGVEJIRZTZVDVCJJUBZV
      EERZRZVDSZGJVEIRZTZUCZBCTZHJJIRZUKZCFUDAUABCDEFGHIKLMNOUEAVFJSZUCZVTWOHWA
      WPWSVFJVFJIAWRUFZWTUGWSVSWNBCWSVLWGVRWMWSVJWEGVKWFWSVFJVEIWTUHWSVIWDVDWSV
      HWCVCVDWSVGWBVFJEWSVFJVEWTUIWTUGUJULUMWSVPWKGVQWLWSVFJVEIWTUNWSVOWJVDWSVN
      WIVDVCWSVMWHVEEWSVFJVFJWTWTUOUNUJULUMUPUQURPWQUDUSAWOHWPVAUTVB $.
  $}

  ${
    $d b c f g h o x y B $.  $d b c f g h o x y C $.
    $( The identity arrow construction is a function on categories.
       (Contributed by Mario Carneiro, 17-Jan-2017.) $)
    cidffn $p |- Id Fn Cat $=
      ( vc vb vh vo vx vg vf vy ccat cv cbs cfv chom cco cop co wceq wral csbex
      csb wa crio cmpt ccid vex mptex df-cid fnmpti ) AIBAJZKLZCUIMLZDUINLZEBJZ
      FJZGJZHJZEJZOUQDJZPPUOQGUPUQCJZPRUOUNUQUQOUPURPPUOQGUQUPUSPRUAHUMRFUQUQUS
      PUBZUCZTZTZTUDBUJVCCUKVBDULVAEUMUTBUEUFSSSEHGFCDBAUGUH $.

    cidfn.b $e |- B = ( Base ` C ) $.
    cidfn.i $e |- .1. = ( Id ` C ) $.
    $( The identity arrow operator is a function from objects to arrows.
       (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    cidfn $p |- ( C e. Cat -> .1. Fn B ) $=
      ( vx vg vf vy ccat wcel wfn cv cop cco cfv co wceq wral eqid chom wa crio
      cmpt riotaex fnmpti id cidfval fneq1d mpbiri ) BJKZCALFAGMZHMZIMZFMZNUOBO
      PZQQUMRHUNUOBUAPZQSUMULUOUONUNUPQQUMRHUOUNUQQSUBIASZGUOUOUQQZUCZUDZALFAUT
      VAURGUSUEVATUFUKACVAUKFIABUPCHGUQDUQTUPTUKUGEUHUIUJ $.
  $}

  ${
    $d f g y .1. $.  $d x B $.  $d f g x y C $.  $d f g x y ph $.
    catidd.b $e |- ( ph -> B = ( Base ` C ) ) $.
    catidd.h $e |- ( ph -> H = ( Hom ` C ) ) $.
    catidd.o $e |- ( ph -> .x. = ( comp ` C ) ) $.
    catidd.c $e |- ( ph -> C e. Cat ) $.
    catidd.1 $e |- ( ( ph /\ x e. B ) -> .1. e. ( x H x ) ) $.
    catidd.2 $e |- ( ( ph /\ ( x e. B /\ y e. B /\ f e. ( y H x ) ) ) ->
      ( .1. ( <. y , x >. .x. x ) f ) = f ) $.
    catidd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B /\ f e. ( x H y ) ) ) ->
      ( f ( <. x , x >. .x. y ) .1. ) = f ) $.
    $( Deduce the identity arrow in a category.  (Contributed by Mario
       Carneiro, 3-Jan-2017.) $)
    catidd $p |- ( ph -> ( Id ` C ) = ( x e. B |-> .1. ) ) $=
      ( co wceq wcel oveqd vg cbs cfv cv cop cco chom wral wa crio cmpt ccid ex
      w3a eleq2d 3anbi123d eqeq1d 3imtr3d 3expd imp41 ralrimiva jca wreu wb imp
      eqid ccat adantr simpr catideu oveq1 ralbidv oveq2 anbi12d riota2 syl2anc
      mpbid mpteq2dva cidfval mpteq1d 3eqtr4d ) ABEUBUCZUAUDZHUDZCUDZBUDZUEZWFE
      UFUCZQZQZWDRZHWEWFEUGUCZQZUHZWDWCWFWFUEZWEWHQZQZWDRZHWFWEWLQZUHZUIZCWBUHZ
      UAWFWFWLQZUJZUKBWBGUKEULUCZBDGUKABWBXDGAWFWBSZUIZGWDWIQZWDRZHWMUHZWDGWPQZ
      WDRZHWSUHZUIZCWBUHZXDGRZXGXNCWBXGWEWBSZUIZXJXMXRXIHWMAXFXQWDWMSZXIAXFXQXS
      XIAWFDSZWEDSZWDWEWFIQZSZUNZGWDWGWFFQZQZWDRZXFXQXSUNXIAYDYGOUMAXTXFYAXQYCX
      SADWBWFJUOZADWBWEJUOZAYBWMWDAIWLWEWFKTUOUPAYFXHWDAYEWIGWDAFWHWGWFLTTUQURU
      SUTVAXRXLHWSAXFXQWDWSSZXLAXFXQYJXLAXTYAWDWFWEIQZSZUNZWDGWOWEFQZQZWDRZXFXQ
      YJUNXLAYMYPPUMAXTXFYAXQYLYJYHYIAYKWSWDAIWLWFWEKTUOUPAYOXKWDAYNWPWDGAFWHWO
      WELTTUQURUSUTVAVBVAXGGXCSZXBUAXCVCXOXPVDAXFYQAXTGWFWFIQZSZXFYQAXTYSNUMYHA
      YRXCGAIWLWFWFKTUOURVEXGCWBEWHHUAWLWFWBVFZWLVFZWHVFZAEVGSXFMVHAXFVIVJXBXOU
      AXCGWCGRZXAXNCWBUUCWNXJWTXMUUCWKXIHWMUUCWJXHWDWCGWDWIVKUQVLUUCWRXLHWSUUCW
      QXKWDWCGWDWPVMUQVLVNVLVOVPVQVRABCWBEWHXEHUAWLYTUUAUUBMXEVFVSABDWBGJVTWA
      $.
  $}

  ${
    $d a f g k r w x z .1. $.  $d a f g k r w x y z B $.  $d a g k r w y z C $.
    $d f g k r w x y z H $.  $d a f g k r w x y z ph $.
    $d f g k w x y z .x. $.
    iscatd2.b $e |- ( ph -> B = ( Base ` C ) ) $.
    iscatd2.h $e |- ( ph -> H = ( Hom ` C ) ) $.
    iscatd2.o $e |- ( ph -> .x. = ( comp ` C ) ) $.
    iscatd2.c $e |- ( ph -> C e. V ) $.
    iscatd2.ps $e |- ( ps <-> ( ( x e. B /\ y e. B ) /\ ( z e. B /\ w e. B )
      /\ ( f e. ( x H y ) /\ g e. ( y H z ) /\ k e. ( z H w ) ) ) ) $.
    iscatd2.1 $e |- ( ( ph /\ y e. B ) -> .1. e. ( y H y ) ) $.
    iscatd2.2 $e |- ( ( ph /\ ps ) -> ( .1. ( <. x , y >. .x. y ) f ) = f ) $.
    iscatd2.3 $e |- ( ( ph /\ ps ) -> ( g ( <. y , y >. .x. z ) .1. ) = g ) $.
    iscatd2.4 $e |- ( ( ph /\ ps ) ->
       ( g ( <. x , y >. .x. z ) f ) e. ( x H z ) ) $.
    iscatd2.5 $e |- ( ( ph /\ ps ) ->
       ( ( k ( <. y , z >. .x. w ) g ) ( <. x , y >. .x. w ) f ) =
         ( k ( <. x , z >. .x. w ) ( g ( <. x , y >. .x. z ) f ) ) ) $.
    $( Version of ~ iscatd with a uniform assumption list, for increased proof
       sharing capabilities.  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    iscatd2 $p |- ( ph -> ( C e. Cat /\ ( Id ` C ) = ( y e. B |-> .1. ) ) ) $=
      ( va vr ccat wcel ccid cfv cmpt wceq cv co w3a wa wex cop c0 wne ne0i syl
      3ad2antr1 n0 sylib eeanv simpll simplr2 simplr1 jca simplr3 simprl simprr
      3jca wsb simplll eleq1d anbi1d simpllr simplr anbi12d anidm syl6bb oveq1d
      simpr eleq12d oveq2d eleq2d 3anbi123d syl5bb anbi2d opeq1d eqidd oveq123d
      wi oveq12d eqeq12d imbi12d sbiedv sbt chvarv syl13anc ex exlimdvv syl5bir
      mp2and wral simpr2 ralrimiva adantr id neeq1d rspcv sylc 3ad2ant1 rspccva
      simp23 syl2anc eleq1 3anbi1d oveq1 opeq1 oveqd df-3an bitri syl6bbr exp45
      opeq2d 3imp exlimdv 3anbi23d simpl 3anbi12d 3anbi13d 3anass iscatd catidd
      mpd ) AHUHUIHUJUKDGJULUMADUFEFGHIJUGLMNOPQRSUAADUNZGUIZUFUNZGUIZUGUNZUUBY
[encoded data, 4560 characters]
      HIJUGNPQRVYPUAUXIVUKYRVK $.
  $}

  ${
    $d f g x y .1. $.  $d f g x y B $.  $d f g x y ph $.  $d f g x y .x. $.
    $d f g x y C $.  $d f g x y H $.  $d f g x y X $.  $d f g x y Y $.
    $d f F $.
    catidcl.b $e |- B = ( Base ` C ) $.
    catidcl.h $e |- H = ( Hom ` C ) $.
    catidcl.i $e |- .1. = ( Id ` C ) $.
    catidcl.c $e |- ( ph -> C e. Cat ) $.
    catidcl.x $e |- ( ph -> X e. B ) $.
    $( Each object in a category has an associated identity arrow.
       (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    catidcl $p |- ( ph -> ( .1. ` X ) e. ( X H X ) ) $=
      ( vg vf vy cfv cv cop co wceq wral cco crio eqid cidval wreu wcel catideu
      wa riotacl syl eqeltrd ) AFDOLPZMPZNPZFQFCUAOZRRUMSMUNFERTUMULFFQUNUORRUM
      SMFUNERTUHNBTZLFFERZUBZUQANBCUODMLEFGHUOUCZJIKUDAUPLUQUEURUQUFANBCUOMLEFG
      HUSJKUGUPLUQUIUJUK $.

    catlid.o $e |- .x. = ( comp ` C ) $.
    catlid.y $e |- ( ph -> Y e. B ) $.
    catlid.f $e |- ( ph -> F e. ( X H Y ) ) $.
    $( Left identity property of an identity arrow.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    catlid $p |- ( ph -> ( ( .1. ` Y ) ( <. X , Y >. .x. Y ) F ) = F ) $=
      ( vf vg co vx wcel cfv cv cop wceq wral crab wa simpl ralimi ss2rabi crio
      a1i cidval wreu catideu riotacl2 syl eqeltrd sseldi oveq1 eqeq1d 2ralbidv
      wi elrab simprbi opeq1 oveq1d oveqd raleqbidv rspcv sylc oveq2 id eqeq12d
      ) AFHIGTZUBIEUCZRUDZHIUEZIDTZTZVSUFZRVQUGZVRFWATZFUFZQAHBUBVRVSUAUDZIUEZI
      DTZTZVSUFZRWGIGTZUGZUABUGZWDNAVRSUDZVSWITZVSUFZRWLUGZUABUGZSIIGTZUHZUBZWN
      AWRVSWOIIUEWGDTTVSUFRIWGGTUGZUIZUABUGZSWTUHZXAVRXEWSSWTXEWSVEWOWTUBXDWRUA
      BWRXCUJUKUNULAVRXESWTUMZXFAUABCDERSGIJKOMLPUOAXESWTUPXGXFUBAUABCDRSGIJKOM
      PUQXESWTURUSUTVAXBVRWTUBWNWSWNSVRWTWOVRUFZWQWKUARBWLXHWPWJVSWOVRVSWIVBVCV
      DVFVGUSWMWDUAHBWGHUFZWKWCRWLVQWGHIGVBXIWJWBVSXIWIWAVRVSXIWHVTIDWGHIVHVIVJ
      VCVKVLVMWCWFRFVQVSFUFZWBWEVSFVSFVRWAVNXJVOVPVLVM $.

    $( Right identity property of an identity arrow.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    catrid $p |- ( ph -> ( F ( <. X , X >. .x. Y ) ( .1. ` X ) ) = F ) $=
      ( vf vg co vy wcel cv cfv cop wceq wral crab wa simpr ralimi ss2rabi crio
      a1i cidval wreu catideu riotacl2 syl eqeltrd sseldi oveq2 eqeq1d 2ralbidv
      wi elrab simprbi oveqd raleqbidv rspcv sylc oveq1 id eqeq12d ) AFHIGTZUBR
      UCZHEUDZHHUEZIDTZTZVPUFZRVOUGZFVQVSTZFUFZQAIBUBVPVQVRUAUCZDTZTZVPUFZRHWEG
      TZUGZUABUGZWBPAVQVPSUCZWFTZVPUFZRWIUGZUABUGZSHHGTZUHZUBZWKAWLVPWEHUEHDTTV
      PUFRWEHGTUGZWOUIZUABUGZSWQUHZWRVQXBWPSWQXBWPVEWLWQUBXAWOUABWTWOUJUKUNULAV
      QXBSWQUMZXCAUABCDERSGHJKOMLNUOAXBSWQUPXDXCUBAUABCDRSGHJKOMNUQXBSWQURUSUTV
      AWSVQWQUBWKWPWKSVQWQWLVQUFZWNWHUARBWIXEWMWGVPWLVQVPWFVBVCVDVFVGUSWJWBUAIB
      WEIUFZWHWARWIVOWEIHGVBXFWGVTVPXFWFVSVPVQWEIVRDVBVHVCVIVJVKWAWDRFVOVPFUFZV
      TWCVPFVPFVQVSVLXGVMVNVJVK $.
  $}

  ${
    $d f g k v w x y z B $.  $d f g k v w x y z C $.  $d f g k v w x y z .x. $.
    $d f g k w x y z F $.  $d f g k v w x y z H $.  $d f g k w x y z ph $.
    $d f g k w x y z G $.  $d f g k w x y z K $.  $d f g k w x y z W $.
    $d f g k w x y z X $.  $d f g k w x y z Y $.  $d f g k w x y z Z $.
    catcocl.b $e |- B = ( Base ` C ) $.
    catcocl.h $e |- H = ( Hom ` C ) $.
    catcocl.o $e |- .x. = ( comp ` C ) $.
    catcocl.c $e |- ( ph -> C e. Cat ) $.
    catcocl.x $e |- ( ph -> X e. B ) $.
    catcocl.y $e |- ( ph -> Y e. B ) $.
    catcocl.z $e |- ( ph -> Z e. B ) $.
    catcocl.f $e |- ( ph -> F e. ( X H Y ) ) $.
    catcocl.g $e |- ( ph -> G e. ( Y H Z ) ) $.
    $( Closure of a composition arrow.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    catcocl $p |- ( ph -> ( G ( <. X , Y >. .x. Z ) F ) e. ( X H Z ) ) $=
      ( co vg vf vx vy vz vv vw cv cop wcel wral ccat wceq wrex iscat ibi simpl
      wa 2ralimi adantl ralimi adantr ad2antrr ad3antrrr simpllr simplr oveq12d
      3syl eleqtrrd simpr simp-5r simp-4r opeq12d oveq123d eleq12d rspcimdv mpd
      rspcdv ) AUAUHZUBUHZUCUHZUDUHZUIZUEUHZDTZTZWAWDGTZUJZUAWBWDGTZUKZUBWAWBGT
      ZUKZUEBUKZUDBUKZUCBUKZFEHIUIZJDTZTZHJGTZUJZACULUJZVSVTWBWAUIWADTTVTUMUBWB
      WAGTUKVTVSWAWAUIWBDTTVTUMUBWKUKURUDBUKUAWAWAGTUNZWHUFUHZVSWBWDUIUGUHZDTTV
      TWCXDDTTXCWFWAWDUIXDDTTUMUFWDXDGTUKUGBUKZURZUAWIUKUBWKUKZUEBUKUDBUKZURZUC
      BUKZWONXAXJUCUDUEUGBCDUBUAUFGULKLMUOUPXIWNUCBXHWNXBXGWLUDUEBBXFWHUBUAWKWI
      WHXEUQUSUSUTVAVHAWNWTUCHBOAWAHUMZURZWMWTUDIBAIBUJXKPVBXLWBIUMZURZWLWTUEJB
      AJBUJXKXMQVCXNWDJUMZURZWJWTUBEWKXPEHIGTZWKAEXQUJXKXMXORVDXPWAHWBIGAXKXMXO
      VEXLXMXOVFZVGVIXPVTEUMZURZWHWTUAFWIXPFWIUJXSXPFIJGTZWIAFYAUJXKXMXOSVDXPWB
      IWDJGXRXNXOVJVGVIVBXTVSFUMZURZWFWRWGWSYCVSFVTEWEWQYCWCWPWDJDYCWAHWBIAXKXM
      XOXSYBVKZXLXMXOXSYBVLVMXNXOXSYBVEZVGXTYBVJXPXSYBVFVNYCWAHWDJGYDYEVGVOVRVP
      VPVPVPVQ $.

    catass.w $e |- ( ph -> W e. B ) $.
    catass.g $e |- ( ph -> K e. ( Z H W ) ) $.
    $( Associativity of composition in a category.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    catass $p |- ( ph ->
       ( ( K ( <. Y , Z >. .x. W ) G ) ( <. X , Y >. .x. W ) F ) =
         ( K ( <. X , Z >. .x. W ) ( G ( <. X , Y >. .x. Z ) F ) ) ) $=
      ( vg vf vy vx vz vk vw cv cop co wceq wral wa wrex wcel ccat iscat adantr
      ibi syl ad2antrr ad3antrrr simpllr simplr oveq12d ad4antr ad5antr ad6antr
      eleqtrrd simp-4r simp-7r simp-6r opeq12d simp-5r oveq123d rspcdv rspcimdv
      simpr eqeq12d adantld mpd ) AUDUKZUEUKZUFUKZUGUKZULWHDUMUMWFUNUEWGWHGUMUO
      WFWEWHWHULWGDUMUMWFUNUEWHWGGUMZUOUPUFBUOUDWHWHGUMUQZWEWFWHWGULZUHUKZDUMZU
      MZWHWLGUMURZUIUKZWEWGWLULZUJUKZDUMZUMZWFWKWRDUMZUMZWPWNWHWLULZWRDUMZUMZUN
      ZUIWLWRGUMZUOZUJBUOZUPZUDWGWLGUMZUOZUEWIUOZUHBUOZUFBUOZUPZUGBUOZHFKLULZID
      UMZUMZEJKULZIDUMZUMZHFEYALDUMZUMZJLULZIDUMZUMZUNZACUSURZXQPYJXQUGUFUHUJBC
      DUEUDUIGUSMNOUTVBVCAXPYIUGJBQAWHJUNZUPZXOYIWJYLXNYIUFKBAKBURYKRVAYLWGKUNZ
      UPZXMYIUHLBALBURYKYMSVDYNWLLUNZUPZXLYIUEEWIYPEJKGUMZWIAEYQURYKYMYOTVEYPWH
      JWGKGAYKYMYOVFYLYMYOVGVHVLYPWFEUNZUPZXJYIUDFXKYSFKLGUMZXKAFYTURYKYMYOYRUA
      VIYSWGKWLLGYLYMYOYRVFYNYOYRVGVHVLYSWEFUNZUPZXIYIWOUUBXHYIUJIBAIBURYKYMYOY
      RUUAUBVJUUBWRIUNZUPZXFYIUIHXGUUDHLIGUMZXGAHUUEURYKYMYOYRUUAUUCUCVKUUDWLLW
      RIGYNYOYRUUAUUCVMUUBUUCWAVHVLUUDWPHUNZUPZXBYCXEYHUUGWTXTWFEXAYBUUGWKYAWRI
      DUUGWHJWGKAYKYMYOYRUUAUUCUUFVNZYLYMYOYRUUAUUCUUFVOZVPZUUBUUCUUFVGZVHUUGWP
      HWEFWSXSUUGWQXRWRIDUUGWGKWLLUUIYNYOYRUUAUUCUUFVQZVPUUKVHUUDUUFWAZYSUUAUUC
      UUFVFZVRYPYRUUAUUCUUFVMZVRUUGWPHWNYEXDYGUUGXCYFWRIDUUGWHJWLLUUHUULVPUUKVH
      UUMUUGWEFWFEWMYDUUGWKYAWLLDUUJUULVHUUNUUOVRVRWBVSVTWCVTVTVTVTWCVTWD $.
  $}

  ${
    $d f g h w x y z C $.  $d f g h w x y z V $.
    $( Any structure with an empty set of objects is a category.  (Contributed
       by Mario Carneiro, 3-Jan-2017.) $)
    0catg $p |- ( ( C e. V /\ (/) = ( Base ` C ) ) -> C e. Cat ) $=
      ( vx vy vz vw vf vg vh wcel c0 cfv wceq wa cv co pm2.21i w3a cop syl chom
      cbs cco simpr eqidd simpl noel adantl simpr1 simp21 simp2ll iscatd ) ABJZ
      KAUBLMZNZCDEFKAAUCLZKGHIAUALZBUMUNUDUOUQUEUOUPUEUMUNUFCOZKJZKURURUQPJZUOU
      SUTURUGZQUHUOUSDOZKJZGOZVBURUQPJZRNUSKVDVBURSURUPPPVDMZUOUSVCVEUIUSVFVAQT
      UOUSVCVDURVBUQPJZRNUSVDKURURSVBUPPPVDMZUOUSVCVGUIUSVHVAQTUOUSVCEOZKJZRVGH
      OZVBVIUQPJZNZRUSVKVDURVBSZVIUPPPZURVIUQPJZUOUSVCVJVMUJUSVPVAQTUOUSVCNVJFO
      ZKJNZNVGVLIOZVIVQUQPJRZRUSVSVKVBVISVQUPPPVDVNVQUPPPVSVOURVISVQUPPPMZUSVCV
      RUOVTUKUSWAVAQTUL $.
  $}

  $( The empty set is a category, the _empty category_, see example 3.3(4.c) in
     [Adamek] p. 24.  (Contributed by Mario Carneiro, 3-Jan-2017.) $)
  0cat $p |- (/) e. Cat $=
    ( c0 cvv wcel cbs cfv wceq ccat 0ex base0 0catg mp2an ) ABCAADEFAGCHIABJK
    $.

  ${
    $d c x y B $.  $d c x y C $.  $d c x y H $.  $d x y ph $.  $d x y X $.
    $d x y Y $.
    homffval.f $e |- F = ( Homf ` C ) $.
    homffval.b $e |- B = ( Base ` C ) $.
    homffval.h $e |- H = ( Hom ` C ) $.
    $( Value of the functionalized Hom-set operation.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    homffval $p |- F = ( x e. B , y e. B |-> ( x H y ) ) $=
      ( vc chomf cfv cv co cmpt2 cvv wceq cbs chom c0 fveq2 syl6eqr mpt2eq123dv
      wcel oveqd df-homf fvex eqeltri mpt2ex fvmpt wn mpt20 eqcomi fvprc syl5eq
      mpt2eq12 syl2anc 3eqtr4a pm2.61i eqtri ) EDKLZABCCAMZBMZFNZOZGDPUDZVAVEQJ
      DABJMZRLZVHVBVCVGSLZNZOVEPKVGDQZABVHVHVJCCVDVKVHDRLZCVGDRUAHUBZVMVKVIFVBV
      CVKVIDSLFVGDSUAIUBUEUCABJUFABCCVDCVLPHDRUGUHZVNUIUJVFUKZTABTTVDOZVAVEVPTA
      BTVDULUMDKUNVOCTQZVQVEVPQVOCVLTHDRUNUOZVRABCCTTVDUPUQURUSUT $.

    $( If the Hom-set operation is a function it is equal to the corresponding
       functionalized Hom-set operation.  (Contributed by AV, 1-Mar-2020.) $)
    fnhomeqhomf $p |- ( H Fn ( B X. B ) -> F = H ) $=
      ( vx vy cxp wfn cv co cmpt2 wceq fnov homffval eqeq2 mpbiri sylbi ) DAAJK
      DHIAAHLILDMNZOZCDOZHIAADPUBUCCUAOHIABCDEFGQDUACRST $.

    homfval.x $e |- ( ph -> X e. B ) $.
    homfval.y $e |- ( ph -> Y e. B ) $.
    $( Value of the functionalized Hom-set operation.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    homfval $p |- ( ph -> ( X F Y ) = ( X H Y ) ) $=
      ( vx vy cv co cvv cmpt2 wceq homffval a1i wa oveq12 adantl ovexd ovmpt2d
      ) AMNFGBBMOZNOZEPZFGEPZDQDMNBBUIRSAMNBCDEHIJTUAUGFSUHGSUBUIUJSAUGFUHGEUCU
      DKLAFGEUEUF $.
  $}

  ${
    $d x y B $.  $d x y C $.
    homffn.f $e |- F = ( Homf ` C ) $.
    homffn.b $e |- B = ( Base ` C ) $.
    $( The functionalized Hom-set operation is a function.  (Contributed by
       Mario Carneiro, 4-Jan-2017.) $)
    homffn $p |- F Fn ( B X. B ) $=
      ( vx vy cv chom cfv co eqid homffval ovex fnmpt2i ) FGAAFHZGHZBIJZKCFGABC
      RDERLMPQRNO $.
  $}

  ${
    $d x y B $.  $d x y C $.  $d x y D $.  $d x y H $.  $d x y ph $.
    $d x y J $.
    homfeq.h $e |- H = ( Hom ` C ) $.
    homfeq.j $e |- J = ( Hom ` D ) $.
    homfeq.1 $e |- ( ph -> B = ( Base ` C ) ) $.
    homfeq.2 $e |- ( ph -> B = ( Base ` D ) ) $.
    $( Condition for two categories with the same base to have the same
       hom-sets.  (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    homfeq $p |- ( ph -> ( ( Homf ` C ) = ( Homf ` D ) <->
      A. x e. B A. y e. B ( x H y ) = ( x J y ) ) ) $=
      ( chomf cfv wceq cv co cmpt2 wral eqid eqidd mpt2eq123dv homffval eqeq12d
      cbs syl6reqr cvv wcel wb ovex rgen2w mpt22eqb ax-mp syl6bb ) AEMNZFMNZOBC
      DDBPZCPZGQZRZBCDDUQURHQZRZOZUSVAOCDSBDSZAUOUTUPVBAUTBCEUENZVEUSRUOABCDDUS
      VEVEUSKKAUSUAUBBCVEEUOGUOTVETIUCUFAVBBCFUENZVFVARUPABCDDVAVFVFVALLAVAUAUB
      BCVFFUPHUPTVFTJUCUFUDUSUGUHZCDSBDSVCVDUIVGBCDDUQURGUJUKBCDDUSVAUGULUMUN
      $.
  $}

  ${
    $d x y C $.  $d x y D $.  $d x y ph $.
    homfeqd.1 $e |- ( ph -> ( Base ` C ) = ( Base ` D ) ) $.
    homfeqd.2 $e |- ( ph -> ( Hom ` C ) = ( Hom ` D ) ) $.
    $( If two structures have the same ` Hom ` slot, they have the same
       Hom-sets.  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    homfeqd $p |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $=
      ( vx vy chomf cfv wceq cv chom cbs wral oveqd ralrimivw eqid eqidd homfeq
      co mpbird ) ABHICHIJFKZGKZBLIZTUBUCCLIZTJZGBMIZNZFUGNAUHFUGAUFGUGAUDUEUBU
      CEOPPAFGUGBCUDUEUDQUEQAUGRDSUA $.
  $}

  ${
    homfeqbas.1 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    $( Deduce equality of base sets from equality of Hom-sets.  (Contributed by
       Mario Carneiro, 4-Jan-2017.) $)
    homfeqbas $p |- ( ph -> ( Base ` C ) = ( Base ` D ) ) $=
      ( cbs cfv cxp cdm chomf dmeqd wceq eqid homffn fndm ax-mp 3eqtr3g dmxpid
      wfn ) ABEFZSGZHCEFZUAGZHSUAATUBABIFZHZCIFZHZTUBAUCUEDJUCTRUDTKSBUCUCLSLMT
      UCNOUEUBRUFUBKUACUEUELUALMUBUENOPJSQUAQP $.
  $}

  ${
    homfeqval.b $e |- B = ( Base ` C ) $.
    homfeqval.h $e |- H = ( Hom ` C ) $.
    homfeqval.j $e |- J = ( Hom ` D ) $.
    homfeqval.1 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    homfeqval.x $e |- ( ph -> X e. B ) $.
    homfeqval.y $e |- ( ph -> Y e. B ) $.
    $( Value of the functionalized Hom-set operation.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    homfeqval $p |- ( ph -> ( X H Y ) = ( X J Y ) ) $=
      ( chomf cfv co eqid homfval cbs oveqd homfeqbas syl5eq eleqtrd 3eqtr3d )
      AGHCOPZQGHDOPZQGHEQGHFQAUFUGGHLUAABCUFEGHUFRIJMNSADTPZDUGFGHUGRUHRKAGBUHM
      ABCTPUHIACDLUBUCZUDAHBUHNUIUDSUE $.
  $}

  ${
    $d c x y z B $.  $d c f g x y z C $.  $d f g x z ph $.  $d c f g x z .x. $.
    $d f g F $.  $d f g G $.  $d f g x z X $.  $d f g x z Y $.  $d f g x z Z $.
    $d c f g x z H $.
    comfffval.o $e |- O = ( comf ` C ) $.
    comfffval.b $e |- B = ( Base ` C ) $.
    comfffval.h $e |- H = ( Hom ` C ) $.
    comfffval.x $e |- .x. = ( comp ` C ) $.
    $( Value of the functionalized composition operation.  (Contributed by
       Mario Carneiro, 4-Jan-2017.) $)
    comfffval $p |- O = ( x e. ( B X. B ) , y e. B |->
     ( g e. ( ( 2nd ` x ) H y ) , f e. ( H ` x ) |-> ( g ( x .x. y ) f ) ) ) $=
      ( cfv cv co cmpt2 wceq cbs c0 vc ccomf cxp c2nd cvv wcel chom cco syl6eqr
      fveq2 sqxpeqd oveqd fveq1d mpt2eq123dv df-comf fvex eqeltri xpex fvmpt wn
      mpt2ex fvprc syl5eq xpeq2d xp0 syl6eq mpt2eq12 syl2anc mpt20 eqtr4d eqtri
      pm2.61i ) IDUBNZABCCUCZCGFAOZUDNZBOZHPZVOHNZGOZFOZVOVQEPZPZQZQZJDUEUFZVMW
      ERUADABUAOZSNZWHUCZWHGFVPVQWGUGNZPZVOWJNZVTWAVOVQWGUHNZPZPZQZQWEUEUBWGDRZ
      ABWIWHWPVNCWDWQWHCWQWHDSNZCWGDSUJKUIZUKWSWQGFWKWLWOVRVSWCWQWJHVPVQWQWJDUG
      NHWGDUGUJLUIZULWQVOWJHWTUMWQWNWBVTWAWQWMEVOVQWQWMDUHNEWGDUHUJMUIULULUNUNA
      BFGUAUOABVNCWDCCCWRUEKDSUPUQZXAURXAVAUSWFUTZVMTWEDUBVBXBWEABTTWDQZTXBVNTR
      CTRWEXCRXBVNCTUCTXBCTCXBCWRTKDSVBVCZVDCVEVFXDABVNCTTWDVGVHABTWDVIVFVJVLVK
      $.

    comffval.x $e |- ( ph -> X e. B ) $.
    comffval.y $e |- ( ph -> Y e. B ) $.
    comffval.z $e |- ( ph -> Z e. B ) $.
    $( Value of the functionalized composition operation.  (Contributed by
       Mario Carneiro, 4-Jan-2017.) $)
    comffval $p |- ( ph -> ( <. X , Y >. O Z ) =
     ( g e. ( Y H Z ) , f e. ( X H Y ) |-> ( g ( <. X , Y >. .x. Z ) f ) ) ) $=
      ( vx co vz cop cxp cv c2nd cfv cmpt2 cvv wceq comfffval a1i simprl fveq2d
      wcel op2ndg syl2anc adantr eqtrd simprr oveq12d df-ov syl6eqr mpt2eq123dv
      wa oveqd opelxpi ovex mpt2ex ovmpt2d ) ASUAIJUBZKBBUCZBFESUDZUEUFZUAUDZGT
      ZVLGUFZFUDZEUDZVLVNDTZTZUGZFEJKGTZIJGTZVQVRVJKDTZTZUGZHUHHSUAVKBWAUGUIASU
      ABCDEFGHLMNOUJUKAVLVJUIZVNKUIZVDZVDZFEVOVPVTWBWCWEWJVMJVNKGWJVMVJUEUFZJWJ
      VLVJUEAWGWHULZUMAWKJUIZWIAIBUNZJBUNZWMPQIJBBUOUPUQURAWGWHUSZUTWJVPVJGUFWC
      WJVLVJGWLUMIJGVAVBWJVSWDVQVRWJVLVJVNKDWLWPUTVEVCAWNWOVJVKUNPQIJBBVFUPRWFU
      HUNAFEWBWCWEJKGVGIJGVGVHUKVI $.

    comfval.f $e |- ( ph -> F e. ( X H Y ) ) $.
    comfval.g $e |- ( ph -> G e. ( Y H Z ) ) $.
    $( Value of the functionalized composition operation.  (Contributed by
       Mario Carneiro, 4-Jan-2017.) $)
    comfval $p |- ( ph ->
      ( G ( <. X , Y >. O Z ) F ) = ( G ( <. X , Y >. .x. Z ) F ) ) $=
      ( vg vf co cv cop cvv comffval wceq wa oveq12 adantl ovexd ovmpt2d ) AUAU
      BFEJKGUCIJGUCUAUDZUBUDZIJUEZKDUCZUCZFEUQUCZUPKHUCUFABCDUBUAGHIJKLMNOPQRUG
      UNFUHUOEUHUIURUSUHAUNFUOEUQUJUKTSAFEUQULUM $.
  $}

  ${
    $d f g x y B $.  $d f g x y C $.  $d f g x .x. $.  $d f g X $.  $d f g Y $.
    $d f g ph $.  $d f g Z $.
    comfffval2.o $e |- O = ( comf ` C ) $.
    comfffval2.b $e |- B = ( Base ` C ) $.
    comfffval2.h $e |- H = ( Homf ` C ) $.
    comfffval2.x $e |- .x. = ( comp ` C ) $.
    $( Value of the functionalized composition operation.  (Contributed by
       Mario Carneiro, 4-Jan-2017.) $)
    comfffval2 $p |- O = ( x e. ( B X. B ) , y e. B |->
     ( g e. ( ( 2nd ` x ) H y ) , f e. ( H ` x ) |-> ( g ( x .x. y ) f ) ) ) $=
      ( cv cfv co cmpt2 wcel adantr homfval cxp c2nd chom comfffval xp2nd simpr
      eqid c1st cop xp1st df-ov 3eqtr3g wceq 1st2nd2 fveq2d 3eqtr4d mpt2eq123dv
      wa eqidd mpt2eq3ia eqtr4i ) IABCCUAZCGFANZUBOZBNZDUCOZPZVCVFOZGNFNVCVEEPP
      ZQZQABVBCGFVDVEHPZVCHOZVIQZQABCDEFGVFIJKVFUGZMUDABVBCVMVJVCVBRZVECRZURZGF
      VKVLVIVGVHVIVQCDHVFVDVELKVNVOVDCRVPVCCCUESZVOVPUFTVQVCUHOZVDUIZHOZVTVFOZV
      LVHVQVSVDHPVSVDVFPWAWBVQCDHVFVSVDLKVNVOVSCRVPVCCCUJSVRTVSVDHUKVSVDVFUKULV
      QVCVTHVOVCVTUMVPVCCCUNSZUOVQVCVTVFWCUOUPVQVIUSUQUTVA $.

    comffval2.x $e |- ( ph -> X e. B ) $.
    comffval2.y $e |- ( ph -> Y e. B ) $.
    comffval2.z $e |- ( ph -> Z e. B ) $.
    $( Value of the functionalized composition operation.  (Contributed by
       Mario Carneiro, 4-Jan-2017.) $)
    comffval2 $p |- ( ph -> ( <. X , Y >. O Z ) =
     ( g e. ( Y H Z ) , f e. ( X H Y ) |-> ( g ( <. X , Y >. .x. Z ) f ) ) ) $=
      ( co cv cop chom cfv cmpt2 eqid comffval homfval eqidd mpt2eq123dv eqtr4d
      ) AIJUAZKHSFEJKCUBUCZSZIJULSZFTETUKKDSSZUDFEJKGSZIJGSZUOUDABCDEFULHIJKLMU
      LUEZOPQRUFAFEUPUQUOUMUNUOABCGULJKNMURQRUGABCGULIJNMURPQUGAUOUHUIUJ $.

    comfval2.f $e |- ( ph -> F e. ( X H Y ) ) $.
    comfval2.g $e |- ( ph -> G e. ( Y H Z ) ) $.
    $( Value of the functionalized composition operation.  (Contributed by
       Mario Carneiro, 4-Jan-2017.) $)
    comfval2 $p |- ( ph ->
      ( G ( <. X , Y >. O Z ) F ) = ( G ( <. X , Y >. .x. Z ) F ) ) $=
      ( chom cfv eqid co homfval eleqtrd comfval ) ABCDEFCUAUBZHIJKLMUHUCZOPQRA
      EIJGUDIJUHUDSABCGUHIJNMUIPQUEUFAFJKGUDJKUHUDTABCGUHJKNMUIQRUEUFUG $.
  $}

  ${
    $d x y B $.  $d f g x y C $.  $d f g H $.  $d f g ph $.  $d f g X $.
    $d f g Y $.  $d f g Z $.
    comfffn.o $e |- O = ( comf ` C ) $.
    comfffn.b $e |- B = ( Base ` C ) $.
    $( The functionalized composition operation is a function.  (Contributed by
       Mario Carneiro, 4-Jan-2017.) $)
    comfffn $p |- O Fn ( ( B X. B ) X. B ) $=
      ( vx vy vg vf cxp cv c2nd cfv chom co cco cmpt2 eqid comfffval ovex fvex
      mpt2ex fnmpt2i ) FGAAJAHIFKZLMZGKZBNMZOZUDUGMZHKIKUDUFBPMZOOZQCFGABUJIHUG
      CDEUGRUJRSHIUHUIUKUEUFUGTUDUGUAUBUC $.

    comffn.h $e |- H = ( Hom ` C ) $.
    comffn.x $e |- ( ph -> X e. B ) $.
    comffn.y $e |- ( ph -> Y e. B ) $.
    comffn.z $e |- ( ph -> Z e. B ) $.
    $( The functionalized composition operation is a function.  (Contributed by
       Mario Carneiro, 4-Jan-2017.) $)
    comffn $p |- ( ph -> ( <. X , Y >. O Z ) Fn ( ( Y H Z ) X. ( X H Y ) ) ) $=
      ( vg vf co wfn cv eqid cop cxp cco cfv cmpt2 ovex fnmpt2i comffval fneq1d
      mpbiri ) AFGUAZHEQZGHDQZFGDQZUBZROPUMUNOSZPSZUKHCUCUDZQZQZUEZUOROPUMUNUTV
      AVATUPUQUSUFUGAUOULVAABCURPODEFGHIJKURTLMNUHUIUJ $.
  $}

  ${
    $d f g u x y z B $.  $d f g u z C $.  $d f g u z ph $.  $d f g u x y .x. $.
    $d f g u z D $.  $d f g u x y H $.  $d f g u x y .xb $.
    comfeq.1 $e |- .x. = ( comp ` C ) $.
    comfeq.2 $e |- .xb = ( comp ` D ) $.
    comfeq.h $e |- H = ( Hom ` C ) $.
    comfeq.3 $e |- ( ph -> B = ( Base ` C ) ) $.
    comfeq.4 $e |- ( ph -> B = ( Base ` D ) ) $.
    comfeq.5 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    $( Condition for two categories with the same hom-sets to have the same
       composition.  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    comfeq $p |- ( ph -> ( ( comf ` C ) = ( comf ` D ) <->
      A. x e. B A. y e. B A. z e. B A. f e. ( x H y ) A. g e. ( y H z )
      ( g ( <. x , y >. .x. z ) f ) = ( g ( <. x , y >. .xb z ) f ) ) ) $=
      ( vu wral cv cop co wceq cxp c2nd cfv cmpt2 ccomf cvv wcel wb ovex mpt2ex
      rgen2w mpt22eqb ax-mp vex op2ndd oveq1d fveq2 df-ov syl6eqr oveq1 eqeq12d
      fvex oveqd raleqbidv ralcom 3bitr4g ralbidv ralxp bitri cbs sqxpeqd eqidd
      mpt2eq123dv eqid comfffval chom w3a chomf 3ad2ant1 xp2nd 3ad2ant2 eleqtrd
      simp3 c1st xp1st 3eqtr3g 1st2nd2 fveq2d 3eqtr4d mpt2eq3dva eqtrd syl5rbbr
      homfeqval ) KUAZJUAZBUAZCUAZUBZDUAZIUCZUCZWRWSXBXCHUCZUCZUDZKXAXCLUCZTJWT
      XALUCZTZDETZCETBETZSDEEUEZEKJSUAZUFUGZXCLUCZXOLUGZWRWSXOXCIUCZUCZUHZUHZSD
      XNEKJXQXRWRWSXOXCHUCZUCZUHZUHZUDZAFUIUGZGUIUGZUDYGYAYEUDZDETZSXNTZXMYAUJU
      KZDETSXNTYGYLULYMSDXNEKJXQXRXTXPXCLUMXOLVFUNUOSDXNEYAYEUJUPUQYKXLSBCEEXOX
      BUDZYJXKDEYNXTYDUDZJXRTZKXQTZXHJXJTZKXITYJXKYNYPYRKXQXIYNXPXAXCLWTXAXOBUR
      CURUSUTYNYOXHJXRXJYNXRXBLUGXJXOXBLVAWTXALVBVCYNXTXEYDXGYNXSXDWRWSXOXBXCIV
      DVGYNYCXFWRWSXOXBXCHVDVGVEVHVHXTUJUKZJXRTKXQTYJYQULYSKJXQXRWRWSXSUMUOKJXQ
      XRXTYDUJUPUQXHJKXJXIVIVJVKVLVMAYBYHYFYIAYBSDFVNUGZYTUEZYTYAUHYHASDXNEYAUU
      AYTYAAEYTPVOPAYAVPVQSDYTFIJKLYHYHVRYTVRZOMVSVCAYFSDGVNUGZUUCUEZUUCKJXPXCG
      VTUGZUCZXOUUEUGZYDUHZUHZYIAYFSDXNEUUHUHUUIASDXNEYEUUHAXOXNUKZXCEUKZWAZKJX
      QXRYDUUFUUGYDUULYTFGLUUEXPXCUUBOUUEVRZAUUJFWBUGGWBUGUDUUKRWCZUULXPEYTUUJA
      XPEUKUUKXOEEWDWEAUUJEYTUDUUKPWCZWFZUULXCEYTAUUJUUKWGUUOWFWQUULXOWHUGZXPUB
      ZLUGZUURUUEUGZXRUUGUULUUQXPLUCUUQXPUUEUCUUSUUTUULYTFGLUUEUUQXPUUBOUUMUUNU
      ULUUQEYTUUJAUUQEUKUUKXOEEWIWEUUOWFUUPWQUUQXPLVBUUQXPUUEVBWJUULXOUURLUUJAX
      OUURUDUUKXOEEWKWEZWLUULXOUURUUEUVAWLWMUULYDVPVQWNASDXNEUUHUUDUUCUUHAEUUCQ
      VOQAUUHVPVQWOSDUUCGHJKUUEYIYIVRUUCVRUUMNVSVCVEWP $.
  $}

  ${
    $d f g x y z C $.  $d f g x y z D $.  $d f g x y z ph $.
    comfeqd.1 $e |- ( ph -> ( comp ` C ) = ( comp ` D ) ) $.
    comfeqd.2 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    $( Condition for two categories with the same hom-sets to have the same
       composition.  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    comfeqd $p |- ( ph -> ( comf ` C ) = ( comf ` D ) ) $=
      ( vg vf vx vy vz ccomf cfv wceq cv cco co wral oveqd ralrimivw eqid eqidd
      cop chom cbs homfeqbas comfeq mpbird ) ABKLCKLMFNZGNZHNZINZUBZJNZBOLZPZPU
      HUIULUMCOLZPZPMZFUKUMBUCLZPZQZGUJUKUSPZQZJBUDLZQZIVDQZHVDQAVFHVDAVEIVDAVC
      JVDAVAGVBAURFUTAUOUQUHUIAUNUPULUMDRRSSSSSAHIJVDBCUPUNGFUSUNTUPTUSTAVDUAAB
      CEUEEUFUG $.
  $}

  ${
    comfeqval.b $e |- B = ( Base ` C ) $.
    comfeqval.h $e |- H = ( Hom ` C ) $.
    comfeqval.1 $e |- .x. = ( comp ` C ) $.
    comfeqval.2 $e |- .xb = ( comp ` D ) $.
    comfeqval.3 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    comfeqval.4 $e |- ( ph -> ( comf ` C ) = ( comf ` D ) ) $.
    comfeqval.x $e |- ( ph -> X e. B ) $.
    comfeqval.y $e |- ( ph -> Y e. B ) $.
    comfeqval.z $e |- ( ph -> Z e. B ) $.
    comfeqval.f $e |- ( ph -> F e. ( X H Y ) ) $.
    comfeqval.g $e |- ( ph -> G e. ( Y H Z ) ) $.
    $( Equality of two compositions.  (Contributed by Mario Carneiro,
       4-Jan-2017.) $)
    comfeqval $p |- ( ph ->
      ( G ( <. X , Y >. .x. Z ) F ) = ( G ( <. X , Y >. .xb Z ) F ) ) $=
      ( cop ccomf cfv co oveqd eqid comfval cbs chom homfeqbas syl5eq homfeqval
      eleqtrd 3eqtr3d ) AHGJKUDZLCUEUFZUGZUGHGURLDUEUFZUGZUGHGURLFUGUGHGURLEUGU
      GAUTVBHGAUSVAURLRUHUHABCFGHIUSJKLUSUIMNOSTUAUBUCUJADUKUFZDEGHDULUFZVAJKLV
      AUIVCUIVDUIZPAJBVCSABCUKUFVCMACDQUMUNZUPAKBVCTVFUPALBVCUAVFUPAGJKIUGJKVDU
      GUBABCDIVDJKMNVEQSTUOUPAHKLIUGKLVDUGUCABCDIVDKLMNVEQTUAUOUPUJUQ $.
  $}

  ${
    $d f g h w x y z C $.  $d f g h w x y z D $.  $d f g h w x y z ph $.
    catpropd.1 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    catpropd.2 $e |- ( ph -> ( comf ` C ) = ( comf ` D ) ) $.
    catpropd.3 $e |- ( ph -> C e. V ) $.
    catpropd.4 $e |- ( ph -> D e. W ) $.
    $( Two structures with the same base, hom-sets and composition operation
       are either both categories or neither.  (Contributed by Mario Carneiro,
       5-Jan-2017.) $)
    catpropd $p |- ( ph -> ( C e. Cat <-> D e. Cat ) ) $=
      ( vg vf vy vz vh vw co wceq wral wa wcel vx cv cop cco cfv chom wrex ccat
      cbs wi simpl 2ralimi adantl ralimi a1i wb nfra1 nfv oveq1 cbvralv ralbidv
      eleq1d oveq2 syl5bb cbvral oveqd eleq12d opeq2 oveq1d opeq1 ralcom syl6bb
      raleqbidv biimpi ancri r19.26 chomf adantr ad4antr ccomf ad5antr ad2antrr
      simpllr simp-4r simplr simpr comfeqval eqeq12d ex ralimdva ralbi impancom
      eqid syl6 impr syl anbi2d syl5bir expdimp expimpd imp an4s expr pm5.21ndd
      an32s syl56 homfeqbas eqeq1d raleqbidva anbi12d rexeqbidva ad7antr oveq2d
      homfeqval bitrd iscat 3bitr4d ) AJUBZKUBZLUBZUAUBZUCZYABUDUEZPPZXSQZKXTYA
[encoded data, 4560 characters]
      PIUALMOUVRCUVGKJNUVJEUVRWMVXCVWGXPWPXQ $.

    $( Two structures with the same base, hom-sets and composition operation
       have the same identity function.  (Contributed by Mario Carneiro,
       17-Jan-2017.) $)
    cidpropd $p |- ( ph -> ( Id ` C ) = ( Id ` D ) ) $=
      ( vg vf vy ccat wcel ccid cfv wceq wa co eqid vx cbs cv cop cco chom wral
      crio homfeqbas adantr chomf ad4antr simpr simpllr homfeqval ad5antr ccomf
      cmpt simplr simp-4r comfeqval eqeq1d raleqbidva anbi12d ralbidva ad2antrr
      riotabidva raleqdv riotaeqbidv mpteq12dva cidfval catpropd biimpa 3eqtr4d
      eqtrd wn c0 cdm wfn cidffn fndm ax-mp eleq2i sylnibr ndmfv syl6bbr notbid
      syl eqtr4d pm2.61dan ) ABMNZBOPZCOPZQAWKRZUABUBPZJUCZKUCZLUCZUAUCZUDZWSBU
      EPZSSZWQQZKWRWSBUFPZSZUGZWQWPWSWSUDZWRXASSZWQQZKWSWRXDSZUGZRZLWOUGZJWSWSX
      DSZUHZURUACUBPZWPWQWTWSCUEPZSSZWQQZKWRWSCUFPZSZUGZWQWPXGWRXQSSZWQQZKWSWRX
      TSZUGZRZLXPUGZJWSWSXTSZUHZURWLWMWNUAWOXOXPYJAWOXPQZWKABCFUIZUJWNWSWONZRZX
      OYGLWOUGZJXNUHYJYNXMYOJXNYNWPXNNZRZXLYGLWOYQWRWONZRZXFYBXKYFYSXCXSKXEYAYS
      WOBCXDXTWRWSWOTZXDTZXTTZABUKPCUKPQZWKYMYPYRFULZYQYRUMZWNYMYPYRUNZUOYSWQXE
      NZRZXBXRWQUUHWOBCXQXAWQWPXDWRWSWSYTUUAXATZXQTZAUUCWKYMYPYRUUGFUPABUQPCUQP
      QZWKYMYPYRUUGGUPYQYRUUGUSWNYMYPYRUUGUTZUULYSUUGUMYNYPYRUUGUNVAVBVCYSXIYDK
      XJYEYSWOBCXDXTWSWRYTUUAUUBUUDUUFUUEUOYSWQXJNZRZXHYCWQUUNWOBCXQXAWPWQXDWSW
      SWRYTUUAUUIUUJYSUUCUUMUUDUJAUUKWKYMYPYRUUMGUPYSYMUUMUUFUJZUUOYQYRUUMUSYNY
      PYRUUMUNYSUUMUMVAVBVCVDVEVGYNYOYHJXNYIYNWOBCXDXTWSWSYTUUAUUBAUUCWKYMFVFWN
      YMUMZUUPUOYNYGLWOXPAYKWKYMYLVFVHVIVOVJWNUALWOBXAWLKJXDYTUUAUUIAWKUMWLTVKW
      NUALXPCXQWMKJXTXPTUUBUUJAWKCMNZABCDEFGHIVLZVMWMTVKVNAWKVPZRZWLVQWMUUTBOVR
      ZNZVPWLVQQUUTWKUVBAUUSUMUVAMBOMVSUVAMQVTMOWAWBZWCWDBOWEWHUUTCUVANZVPZWMVQ
      QAUUSUVEAWKUVDAWKUUQUVDUURUVAMCUVCWCWFWGVMCOWEWHWIWJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Opposite category
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c oppCat $. $( Opposite category $)

  $( The opposite category operation. $)
  coppc $a class oppCat $.

  ${
    $d f u z $.
    $( Define an opposite category, which is the same as the original category
       but with the direction of arrows the other way around.  Definition 3.5
       of [Adamek] p. 25.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    df-oppc $a |- oppCat = ( f e. _V |-> ( ( f sSet
      <. ( Hom ` ndx ) , tpos ( Hom ` f ) >. ) sSet <. ( comp ` ndx ) ,
        ( u e. ( ( Base ` f ) X. ( Base ` f ) ) , z e. ( Base ` f ) |->
          tpos ( <. z , ( 2nd ` u ) >. ( comp ` f ) ( 1st ` u ) ) ) >. ) ) $.
  $}

  ${
    $d c B $.  $d c u z C $.  $d c H $.  $d c .x. $.
    oppcval.b $e |- B = ( Base ` C ) $.
    oppcval.h $e |- H = ( Hom ` C ) $.
    oppcval.x $e |- .x. = ( comp ` C ) $.
    oppcval.o $e |- O = ( oppCat ` C ) $.
    $( Value of the opposite category.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    oppcval $p |- ( C e. V -> O = ( ( C sSet <. ( Hom ` ndx ) , tpos H >. )
      sSet <. ( comp ` ndx ) , ( u e. ( B X. B ) , z e. B |->
        tpos ( <. z , ( 2nd ` u ) >. .x. ( 1st ` u ) ) ) >. ) ) $=
      ( vc cfv chom ctpos cop csts co cco wcel coppc cnx cxp cv c2nd c1st cmpt2
      cvv wceq elex id fveq2 syl6eqr tposeqd opeq2d oveq12d sqxpeqd mpt2eq123dv
      cbs oveqd df-oppc ovex fvmpt syl syl5eq ) DHUAZGDUBNZDUCONZFPZQZRSZUCTNZB
      ACCUDZCAUEBUEZUFNQZVOUGNZESZPZUHZQZRSZLVGDUIUAVHWBUJDHUKMDMUEZVIWCONZPZQZ
      RSZVMBAWCUTNZWHUDZWHVPVQWCTNZSZPZUHZQZRSWBUIUBWCDUJZWGVLWNWARWOWCDWFVKRWO
      ULWOWEVJVIWOWDFWOWDDONFWCDOUMJUNUOUPUQWOWMVTVMWOBAWIWHWLVNCVSWOWHCWOWHDUT
      NCWCDUTUMIUNZURWPWOWKVRWOWJEVPVQWOWJDTNEWCDTUMKUNVAUOUSUPUQABMVBVLWARVCVD
      VEVF $.
  $}

  ${
    $d u z C $.
    oppchom.h $e |- H = ( Hom ` C ) $.
    oppchom.o $e |- O = ( oppCat ` C ) $.
    $( Hom-sets of the opposite category.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    oppchomfval $p |- tpos H = ( Hom ` O ) $=
      ( vu vz cvv wcel ctpos chom cfv wceq cnx cop csts co c1 c4 c0 cco cbs cxp
      cv c2nd c1st cmpt2 homid wne cdc c5 1nn0 4nn decnncl nnrei 4nn0 5nn declt
      4lt5 ltneii homndx ccondx neeq12i mpbir setsnid fvex eqeltri tposex mpan2
      setsid eqid oppcval fveq2d 3eqtr4a tpos0 fvprc syl5eq tposeqd df-hom str0
      wn coppc syl6eqr pm2.61i ) AHIZBJZCKLZMWEANKLZWFOPQZKLZWINUALZFGAUBLZWLUC
      WLGUDFUDZUELOWMUFLAUALZQJUGZOPQZKLWFWGWOWKKWIUHWHWKUIRSUJZRUKUJZUIWQWRWQR
      SULUMUNUORSUKULUPUQUSURUTWHWQWKWRVAVBVCVDVEWEWFHIWFWJMBBAKLZHDAKVFVGVHHWF
      KHAUHVJVIWECWPKGFWLAWNBCHWLVKDWNVKEVLVMVNWEWAZTJTWFWGVOWTBTWTBWSTDAKVPVQV
      RWTWGTKLTWTCTKWTCAWBLTEAWBVPVQVMKWQVSVTWCVNWD $.

    $( Hom-sets of the opposite category.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    oppchom $p |- ( X ( Hom ` O ) Y ) = ( Y H X ) $=
      ( ctpos co chom cfv oppchomfval oveqi ovtpos eqtr3i ) DEBHZIDECJKZIEDBIPQ
      DEABCFGLMDEBNO $.
  $}

  ${
    $d u z B $.  $d u z C $.  $d u z ph $.  $d u z .x. $.  $d u z X $.
    $d u z Y $.  $d u z Z $.
    oppcco.b $e |- B = ( Base ` C ) $.
    oppcco.c $e |- .x. = ( comp ` C ) $.
    oppcco.o $e |- O = ( oppCat ` C ) $.
    oppcco.x $e |- ( ph -> X e. B ) $.
    oppcco.y $e |- ( ph -> Y e. B ) $.
    oppcco.z $e |- ( ph -> Z e. B ) $.
    $( Composition in the opposite category.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    oppccofval $p |- ( ph ->
      ( <. X , Y >. ( comp ` O ) Z ) = tpos ( <. Z , Y >. .x. X ) ) $=
      ( vu vz cfv cvv wcel wceq cop cxp cv c2nd c1st co ctpos cco cnx chom csts
      cmpt2 cbs elfvex eleq2s eqid oppcval 3syl fveq2d ovex fvex eqeltri mpt2ex
      xpex ccoid setsid mp2an syl6eqr simprr simprl adantr op2ndg syl2anc eqtrd
      wa opeq12d op1stg oveq12d tposeqd opelxpi tposex a1i ovmpt2d ) AOPFGUAZHB
      BUBZBPUCZOUCZUDQZUAZWGUEQZDUFZUGZHGUAZFDUFZUGZEUHQZRAWPCUIUJQCUJQZUGUAZUK
      UFZUIUHQOPWEBWLULZUAUKUFZUHQZWTAEXAUHAFBSZCRSZEXATLXDFCUMQZBFCUMUNIUOPOBC
      DWQERIWQUPJKUQURUSWSRSWTRSWTXBTCWRUKUTOPWEBWLBBBXERICUMVAVBZXFVDXFVCRWTUH
      RWSVEVFVGVHAWGWDTZWFHTZVOZVOZWKWNXJWIWMWJFDXJWFHWHGAXGXHVIXJWHWDUDQZGXJWG
      WDUDAXGXHVJZUSXJXCGBSZXKGTAXCXILVKZAXMXIMVKZFGBBVLVMVNVPXJWJWDUEQZFXJWGWD
      UEXLUSXJXCXMXPFTXNXOFGBBVQVMVNVRVSAXCXMWDWESLMFGBBVTVMNWORSAWNWMFDUTWAWBW
      C $.

    $( Composition in the opposite category.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    oppcco $p |- ( ph ->
    ( G ( <. X , Y >. ( comp ` O ) Z ) F ) = ( F ( <. Z , Y >. .x. X ) G ) ) $=
      ( cop cco cfv co ctpos oppccofval oveqd ovtpos syl6eq ) AFEHIQJGRSTZTFEJI
      QHDTZUAZTEFUGTAUFUHFEABCDGHIJKLMNOPUBUCFEUGUDUE $.
  $}

  ${
    $d f g h u w x y z C $.  $d f g h w x y z O $.
    oppcbas.1 $e |- O = ( oppCat ` C ) $.
    ${
      oppcbas.2 $e |- B = ( Base ` C ) $.
      $( Base set of an opposite category.  (Contributed by Mario Carneiro,
         2-Jan-2017.) $)
      oppcbas $p |- B = ( Base ` O ) $=
        ( vu vz cbs cfv cnx cop co eqid wne c1 c4 1re 1nn0 c5 c0 wcel wceq chom
        cvv ctpos csts cco cxp cv c2nd c1st cmpt2 oppcval fveq2d baseid cdc 1nn
        4nn0 1lt10 declti ltneii basendx neeq12i mpbir setsnid clt wbr 5nn 4lt5
        homndx declt 4nn nnrei lttri mp2an ccondx eqtri syl6reqr wn base0 fvprc
        decnncl coppc syl5eq 3eqtr4a pm2.61i ) ABHIZCHIZEBUDUAZWGWHUBWIWHBJUCIZ
        BUCIZUEZKUFLZJUGIZFGWGWGUHWGGUIFUIZUJIKWOUKIBUGIZLUEULZKUFLZHIZWGWICWRH
        GFWGBWPWKCUDWGMWKMWPMDUMUNWGWMHIWSWLWJHBUOJHIZWJNOOPUPZNOXAQOPOUQURRUSU
        TZVAWTOWJXAVBVJVCVDVEWQWNHWMUOWTWNNOOSUPZNOXCQOXAVFVGXAXCVFVGOXCVFVGXBO
        PSRURVHVIVKOXAXCQXAOPRVLWBVMXCOSRVHWBVMVNVOVAWTOWNXCVBVPVCVDVEVQVRWIVSZ
        TTHIWGWHVTBHWAXDCTHXDCBWCITDBWCWAWDUNWEWFVQ $.
    $}

    $( Lemma for ~ oppccat .  (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    oppccatid $p |- ( C e. Cat -> ( O e. Cat /\ ( Id ` O ) = ( Id ` C ) ) ) $=
      ( vy vx vz vw vf wcel cfv wceq wa cv cvv eqid oppchom cop oppcco syl6eleq
      co vg vh ccat ccid cbs cmpt chom w3a cco oppcbas eqidd coppc fvex eqeltri
      biid simpl simpr catidcl syl6eleqr simpr1l simpr1r simpr31 catrid simpr2l
      a1i simpr32 catlid catcocl eqeltrd simpr2r simpr33 catass 3eqtr4rd oveq1d
      eqtrd oveq2d 3eqtr4d iscatd2 wfn cidfn dffn5 sylib eqeq2d anbi2d mpbird )
      AUCIZBUCIZBUDJZAUDJZKZLWGWHDAUEJZDMZWIJZUFZKZLWFEMZWKIZWLWKIZLZFMZWKIZGMZ
      WKIZLZHMZWPWLBUGJZTZIZUAMZWLWTXFTZIZUBMZWTXBXFTZIZUHZUHZEDFGWKBBUIJZWMHUA
      UBXFNWKBUEJKWFWKABCWKOZUJVEWFXFUKWFXQUKBNIWFBAULJNCAULUMUNVEXPUOWFWRLZWMW
      LWLAUGJZTWLWLXFTXSWKAWIXTWLXRXTOZWIOZWFWRUPWFWRUQURAXTBWLWLYACPUSWFXPLZWM
      XEWPWLQZWLXQTTXEWMWLWLQZWPAUIJZTTXEYCWKAYFXEWMBWPWLWLXRYFOZCWQWRXDXOWFUTZ
      WQWRXDXOWFVAZYIRYCWKAYFWIXEXTWLWPXRYAYBWFXPUPZYIYGYHYCXEXGWLWPXTTXHXKXNWS
      XDWFVBAXTBWPWLYACPSZVCVOYCXIWMYEWTXQTTWMXIWTWLQZWLYFTTXIYCWKAYFWMXIBWLWLW
      TXRYGCYIYIXAXCWSXOWFVDZRYCWKAYFWIXIXTWTWLXRYAYBYJYMYGYIYCXIXJWTWLXTTXHXKX
      NWSXDWFVFAXTBWLWTYACPSZVGVOYCXIXEYDWTXQTTZWTWPXTTZWPWTXFTYCYOXEXIYLWPYFTT
      ZYPYCWKAYFXEXIBWPWLWTXRYGCYHYIYMRZYCWKAYFXIXEXTWTWLWPXRYAYGYJYMYIYHYNYKVH
      VIAXTBWPWTYACPUSYCXIXLXBWTQZWLYFTTZXEYDXBXQTZTZXLYQWPWTQXBXQTZTZXLXIWLWTQ
      XBXQTTZXEUUATXLYOUUCTYCYQXLYSWPYFTTXEYTXBWLQWPYFTTUUDUUBYCWKAYFXLXIXTXEWP
      XBWTWLXRYAYGYJXAXCWSXOWFVJZYMYIYCXLXMXBWTXTTXHXKXNWSXDWFVKAXTBWTXBYACPSYN
      YHYKVLYCWKAYFYQXLBWPWTXBXRYGCYHYMUUFRYCWKAYFXEYTBWPWLXBXRYGCYHYIUUFRVMYCU
      UEYTXEUUAYCWKAYFXIXLBWLWTXBXRYGCYIYMUUFRVNYCYOYQXLUUCYRVPVQVRWFWJWOWGWFWI
      WNWHWFWIWKVSWIWNKWKAWIXRYBVTDWKWIWAWBWCWDWE $.

    ${
      oppchomf.h $e |- H = ( Homf ` C ) $.
      $( Hom-sets of the opposite category.  (Contributed by Mario Carneiro,
         17-Jan-2017.) $)
      oppchomf $p |- tpos H = ( Homf ` O ) $=
        ( vy vx cbs cfv cv chom co cmpt2 chomf ctpos wceq wcel wa eqid homffval
        oppchom a1i mpt2eq3ia oppcbas tposmpt2 3eqtr4ri ) FGAHIZUGFJZGJZCKIZLZM
        FGUGUGUIUHAKIZLZMCNIZBOFGUGUGUKUMUKUMPUHUGQUIUGQRAULCUHUIULSZDUAUBUCFGU
        GCUNUJUNSUGACDUGSZUDUJSTGFUGUGUMBGFUGABULEUPUOTUEUF $.
    $}

    ${
      oppcid.2 $e |- B = ( Id ` C ) $.
      $( Identity function of an opposite category.  (Contributed by Mario
         Carneiro, 2-Jan-2017.) $)
      oppcid $p |- ( C e. Cat -> ( Id ` O ) = B ) $=
        ( ccat wcel ccid cfv wceq oppccatid simprd syl6eqr ) BFGZCHIZBHIZANCFGO
        PJBCDKLEM $.
    $}

    $( An opposite category is a category.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    oppccat $p |- ( C e. Cat -> O e. Cat ) $=
      ( ccat wcel ccid cfv wceq oppccatid simpld ) ADEBDEBFGAFGHABCIJ $.

    ${
      2oppcco.2 $e |- B = ( Base ` C ) $.
      $( The double opposite category has the same objects as the original
         category.  Intended for use with property lemmas such as ~ monpropd .
         (Contributed by Mario Carneiro, 3-Jan-2017.) $)
      2oppcbas $p |- B = ( Base ` ( oppCat ` O ) ) $=
        ( coppc cfv eqid oppcbas ) ACCFGZJHABCDEII $.
    $}

    $( The double opposite category has the same morphisms as the original
       category.  Intended for use with property lemmas such as ~ monpropd .
       (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    2oppchomf $p |- ( Homf ` C ) = ( Homf ` ( oppCat ` O ) ) $=
      ( chomf cfv ctpos coppc wrel cdm wceq cbs cxp wfn eqid homffn fnrel ax-mp
      relxp fndm oppchomf releqi mpbir tpostpos2 mp2an eqtr3i ) ADEZFZFZUFBGEZD
      EUFHZUFIZHZUHUFJUFAKEZUMLZMZUJUMAUFUFNZUMNOZUNUFPQULUNHUMUMRUKUNUOUKUNJUQ
      UNUFSQUAUBUFUCUDBUGUIUINAUFBCUPTTUE $.

    $( The double opposite category has the same composition as the original
       category.  Intended for use with property lemmas such as ~ monpropd .
       (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    2oppccomf $p |- ( comf ` C ) = ( comf ` ( oppCat ` O ) ) $=
      ( vg vf vx vy vz ccomf cfv wceq wtru cv cop cco co wral cbs wcel eqid w3a
      coppc wa oppcbas simpr1 simpr2 simpr3 oppcco eqtr2d ralrimivw ralrimivvva
      chom eqidd 2oppcbas a1i chomf 2oppchomf comfeq mpbird trud ) AIJBUBJZIJKZ
      LVBDMZEMZFMZGMZNZHMZAOJZPPZVCVDVGVHVAOJZPPZKZDVFVHAULJZPZQZEVEVFVNPZQZHAR
      JZQGVSQFVSQLVRFGHVSVSVSLVEVSSZVFVSSZVHVSSZUAUCZVPEVQWCVMDVOWCVLVDVCVHVFNV
      EBOJZPPVJWCVSBWDVDVCVAVEVFVHVSABCVSTZUDWDTVATLVTWAWBUEZLVTWAWBUFZLVTWAWBU
      GZUHWCVSAVIVCVDBVHVFVEWEVITZCWHWGWFUHUIUJUJUKLFGHVSAVAVKVIEDVNWIVKTVNTLVS
      UMVSVARJKLVSABCWEUNUOAUPJVAUPJKLABCUQUOURUSUT $.
  $}

  ${
    $d f g x y z C $.  $d f g x y z D $.  $d f g x y z ph $.
    oppchomfpropd.1 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    $( If two categories have the same hom-sets, so do their opposites.
       (Contributed by Mario Carneiro, 26-Jan-2017.) $)
    oppchomfpropd $p |- ( ph ->
      ( Homf ` ( oppCat ` C ) ) = ( Homf ` ( oppCat ` D ) ) ) $=
      ( chomf cfv ctpos coppc tposeqd eqid oppchomf 3eqtr3g ) ABEFZGCEFZGBHFZEF
      CHFZEFAMNDIBMOOJMJKCNPPJNJKL $.

    oppccomfpropd.1 $e |- ( ph -> ( comf ` C ) = ( comf ` D ) ) $.
    $( If two categories have the same hom-sets and composition, so do their
       opposites.  (Contributed by Mario Carneiro, 26-Jan-2017.) $)
    oppccomfpropd $p |- ( ph ->
      ( comf ` ( oppCat ` C ) ) = ( comf ` ( oppCat ` D ) ) ) $=
      ( vg vf vx vy vz cfv ccomf wceq cv cco co wral cbs wcel eqid cop chom w3a
      coppc wa chomf ad2antrr simplr3 simplr2 simplr1 simprr syl6eleq comfeqval
      oppchom simprl oppcco homfeqbas eleqtrd 3eqtr4d ralrimivva oppcbas syl6eq
      ralrimivvva a1i oppchomfpropd comfeq mpbird ) ABUDKZLKCUDKZLKMFNZGNZHNZIN
      ZUAZJNZVHOKZPPZVJVKVNVOVIOKZPPZMZFVMVOVHUBKZPZQGVLVMWAPZQZJBRKZQIWEQHWEQA
      WDHIJWEWEWEAVLWESZVMWESZVOWESZUCZUEZVTGFWCWBWJVKWCSZVJWBSZUEZUEZVKVJVOVMU
      AZVLBOKZPPVKVJWOVLCOKZPPVQVSWNWEBCWQWPVJVKBUBKZVOVMVLWETZWRTZWPTZWQTZABUF
      KCUFKMWIWMDUGABLKCLKMWIWMEUGWFWGWHAWMUHZWFWGWHAWMUIZWFWGWHAWMUJZWNVJWBVOV
      MWRPWJWKWLUKBWRVHVMVOWTVHTZUNULWNVKWCVMVLWRPWJWKWLUOBWRVHVLVMWTXFUNULUMWN
      WEBWPVKVJVHVLVMVOWSXAXFXEXDXCUPWNCRKZCWQVKVJVIVLVMVOXGTZXBVITZWNVLWEXGXEA
      WEXGMWIWMABCDUQZUGZURWNVMWEXGXDXKURWNVOWEXGXCXKURUPUSUTVCAHIJWEVHVIVRVPGF
      WAVPTVRTWATWEVHRKMAWEBVHXFWSVAVDAWEXGVIRKXJXGCVIXIXHVAVBABCDVEVFVG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Monomorphisms and epimorphisms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Mono $. $( The class of all monomorphisms. $)
  $c Epi $. $( The class of all epimorphisms. $)

  $( Extend class notation with the class of all monomorphisms. $)
  cmon $a class Mono $.

  $( Extend class notation with the class of all epimorphisms. $)
  cepi $a class Epi $.

  ${
    $d b c f g h x y z $.
    $( Function returning the monomorphisms of the category ` c ` .  JFM CAT_1
       def. 10.  (Contributed by FL, 5-Dec-2007.)  (Revised by Mario Carneiro,
       2-Jan-2017.) $)
    df-mon $a |- Mono = ( c e. Cat |->
      [_ ( Base ` c ) / b ]_ [_ ( Hom ` c ) / h ]_
      ( x e. b , y e. b |-> { f e. ( x h y ) | A. z e. b Fun `'
        ( g e. ( z h x ) |-> ( f ( <. z , x >. ( comp ` c ) y ) g ) ) } ) ) $.

    $( Function returning the epimorphisms of the category ` c ` .  JFM CAT_1
       def. 11.  (Contributed by FL, 8-Aug-2008.)  (Revised by Mario Carneiro,
       2-Jan-2017.) $)
    df-epi $a |- Epi = ( c e. Cat |-> tpos ( Mono ` ( oppCat ` c ) ) ) $.
  $}

  ${
    $d b c f g h x y z B $.  $d g h z G $.  $d g h z K $.  $d f g h x y z ph $.
    $d b c f g h x y z C $.  $d b c f g h x y z H $.  $d b c f g h x y z .x. $.
    $d f g h z F $.  $d f g h x y z X $.  $d f g h x y z Y $.  $d g h z Z $.
    $d f M $.
    ismon.b $e |- B = ( Base ` C ) $.
    ismon.h $e |- H = ( Hom ` C ) $.
    ismon.o $e |- .x. = ( comp ` C ) $.
    ismon.s $e |- M = ( Mono ` C ) $.
    ismon.c $e |- ( ph -> C e. Cat ) $.
    $( Definition of a monomorphism in a category.  (Contributed by Mario
       Carneiro, 3-Jan-2017.) $)
    monfval $p |- ( ph -> M = ( x e. B , y e. B |-> { f e. ( x H y ) |
 A. z e. B Fun `' ( g e. ( z H x ) |-> ( f ( <. z , x >. .x. y ) g ) ) } ) ) $=
      ( cfv cv co cbs vc vb vh cmon cop cmpt ccnv wfun wral crab ccat wcel wceq
      cmpt2 chom cco csb fvexd fveq2 syl6eqr wa simpl fveq2d simplr simpr oveqd
      cvv simpll mpteq12dv cnveqd funeqd raleqbidv rabeqbidv mpt2eq123dv df-mon
      csbied2 fvex eqeltri mpt2ex fvmpt syl syl5eq ) AKFUDQZBCEEIDRZBRZJSZHRZIR
      ZWDWEUEZCRZGSZSZUFZUGZUHZDEUIZHWEWJJSZUJZUNZOAFUKULWCWSUMPUAFUBUARZTQZUCW
      TUOQZBCUBRZXCIWDWEUCRZSZWGWHWIWJWTUPQZSZSZUFZUGZUHZDXCUIZHWEWJXDSZUJZUNZU
      QZUQWSUKUDWTFUMZUBXAEXPWSVGXQWTTURXQXAFTQZEWTFTUSLUTXQXCEUMZVAZUCXBJXOWSV
      GXTWTUOURXTXBFUOQJXTWTFUOXQXSVBVCMUTXTXDJUMZVAZBCXCXCXNEEWRXQXSYAVDZYCYBX
      LWPHXMWQYBXDJWEWJXTYAVEZVFYBXKWODXCEYCYBXJWNYBXIWMYBIXEXHWFWLYBXDJWDWEYDV
      FYBXGWKWGWHYBXFGWIWJYBXFFUPQGYBWTFUPXQXSYAVHVCNUTVFVFVIVJVKVLVMVNVPVPBCDH
      IUCUBUAVOBCEEWREXRVGLFTVQVRZYEVSVTWAWB $.

    ismon.x $e |- ( ph -> X e. B ) $.
    ismon.y $e |- ( ph -> Y e. B ) $.
    $( Definition of a monomorphism in a category.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    ismon $p |- ( ph -> ( F e. ( X M Y ) <-> ( F e. ( X H Y ) /\ A. z e. B
      Fun `' ( g e. ( z H X ) |-> ( F ( <. z , X >. .x. Y ) g ) ) ) ) ) $=
      ( vf co vx vy wcel cv cop cmpt ccnv wfun wral crab wa monfval wceq simprl
      cvv simprr oveq12d oveq2d opeq2d oveqd mpteq12dv cnveqd ralbidv rabeqbidv
      funeqd ovex rabex a1i ovmpt2d eleq2d oveq1 mpteq2dv elrab syl6bb ) AGJKIT
      ZUCGFBUDZJHTZSUDZFUDZVPJUEZKETZTZUFZUGZUHZBCUIZSJKHTZUJZUCGWGUCFVQGVSWATZ
      UFZUGZUHZBCUIZUKAVOWHGAUAUBJKCCFVPUAUDZHTZVRVSVPWNUEZUBUDZETZTZUFZUGZUHZB
      CUIZSWNWQHTZUJWHIUOAUAUBBCDESFHILMNOPULAWNJUMZWQKUMZUKUKZXCWFSXDWGXGWNJWQ
      KHAXEXFUNZAXEXFUPZUQXGXBWEBCXGXAWDXGWTWCXGFWOWSVQWBXGWNJVPHXHURXGWRWAVRVS
      XGWPVTWQKEXGWNJVPXHUSXIUQUTVAVBVEVCVDQRWHUOUCAWFSWGJKHVFVGVHVIVJWFWMSGWGV
      RGUMZWEWLBCXJWDWKXJWCWJXJFVQWBWIVRGVSWAVKVLVBVEVCVMVN $.

    $( Write out the monomorphism property directly.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    ismon2 $p |- ( ph -> ( F e. ( X M Y ) <-> ( F e. ( X H Y ) /\ A. z e. B
      A. g e. ( z H X ) A. h e. ( z H X )
        ( ( F ( <. z , X >. .x. Y ) g ) =
          ( F ( <. z , X >. .x. Y ) h ) -> g = h ) ) ) ) $=
      ( wcel co cv cmpt ccnv wfun wral wa wceq wi ismon wb ccat ad2antrr simprl
      cop simprr simplr catcocl anassrs ralrimiva wf eqid fmpt df-f1 baib sylbi
      wf1 oveq2 f1mpt bitr3d syl ralbidva pm5.32da bitrd ) AHKLJUATHKLIUATZFBUB
      ZKIUAZHFUBZVPKUOLEUAZUAZUCZUDUEZBCUFZUGVOVTHGUBZVSUAZUHVRWDUHUIGVQUFFVQUF
      ZBCUFZUGABCDEFHIJKLMNOPQRSUJAVOWCWGAVOUGZWBWFBCWHVPCTZUGZVTVPLIUAZTZFVQUF
      ZWBWFUKWJWLFVQWHWIVRVQTZWLWHWIWNUGZUGCDEVRHIVPKLMNOADULTVOWOQUMWHWIWNUNAK
      CTVOWORUMALCTVOWOSUMWHWIWNUPAVOWOUQURUSUTWMVQWKWAVGZWBWFWMVQWKWAVAZWPWBUK
      FVQWKVTWAWAVBZVCWPWQWBVQWKWAVDVEVFWPWMWFFGVQWKVTWEWAWRVRWDHVSVHVIVEVJVKVL
      VMVN $.

    $( A monomorphism is a morphism.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    monhom $p |- ( ph -> ( X M Y ) C_ ( X H Y ) ) $=
      ( vf vg vz co cv wcel cop cmpt ccnv wfun wral wa ismon simpl syl6bi ssrdv
      ) APGHFSZGHESZAPTZULUAUNUMUAZQRTZGESUNQTUPGUBHDSSUCUDUERBUFZUGUOARBCDQUNE
      FGHIJKLMNOUHUOUQUIUJUK $.

    moni.z $e |- ( ph -> Z e. B ) $.
    moni.f $e |- ( ph -> F e. ( X M Y ) ) $.
    moni.g $e |- ( ph -> G e. ( Z H X ) ) $.
    moni.k $e |- ( ph -> K e. ( Z H X ) ) $.
    $( Property of a monomorphism.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    moni $p |- ( ph -> ( ( F ( <. Z , X >. .x. Y ) G ) =
                         ( F ( <. Z , X >. .x. Y ) K ) <-> G = K ) ) $=
      ( vg vz vh cop co wceq cv wi wral ismon2 mpbid simprd adantr simpr oveq1d
      wcel eleqtrrd simpllr opeq1d eqidd simplr oveq123d eqeq12d imbi12d rspcdv
      wa rspcimdv mpd oveq2 impbid1 ) AEFLJUGZKDUHZUHZEHVOUHZUIZFHUIZAEUDUJZUEU
      JZJUGZKDUHZUHZEUFUJZWCUHZUIZVTWEUIZUKZUFWAJGUHZULZUDWJULZUEBULZVRVSUKZAEJ
      KGUHUSZWMAEJKIUHUSWOWMVIUAAUEBCDUDUFEGIJKMNOPQRSUMUNUOAWLWNUELBTAWALUIZVI
      ZWKWNUDFWJWQFLJGUHZWJAFWRUSWPUBUPWQWALJGAWPUQURZUTWQVTFUIZVIZWIWNUFHWJWQH
      WJUSWTWQHWRWJAHWRUSWPUCUPWSUTUPXAWEHUIZVIZWGVRWHVSXCWDVPWFVQXCEEVTFWCVOXC
      WBVNKDXCWALJAWPWTXBVAVBURZXCEVCZWQWTXBVDZVEXCEEWEHWCVOXDXEXAXBUQZVEVFXCVT
      FWEHXFXGVFVGVHVJVJVKFHEVOVLVM $.
  $}

  ${
    $d a b c f g C $.  $d a b c f g D $.  $d a b c f g ph $.
    monpropd.3 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    monpropd.4 $e |- ( ph -> ( comf ` C ) = ( comf ` D ) ) $.
    monpropd.c $e |- ( ph -> C e. Cat ) $.
    monpropd.d $e |- ( ph -> D e. Cat ) $.
    $( If two categories have the same set of objects, morphisms, and
       compositions, then they have the same monomorphisms.  (Contributed by
       Mario Carneiro, 3-Jan-2017.) $)
    monpropd $p |- ( ph -> ( Mono ` C ) = ( Mono ` D ) ) $=
      ( va vb vg vc vf cfv cv co wral wcel wceq wa eqid cbs chom cmpt ccnv wfun
      cop crab cmpt2 cmon chomf ad2antrr simpr simp-4r homfeqval ad5antr simplr
      cco simp-5r simpllr comfeqval mpteq12dva cnveqd funeqd ralbidva homfeqbas
      ccomf rabbidva raleqdv rabeqbidv eqtrd mpt2eq3dva syl2anc monfval 3eqtr4d
      3impa mpt2eq12 ) AHIBUAMZVQJKNZHNZBUBMZOZLNZJNZVRVSUFZINZBUQMZOOZUCZUDZUE
      ZKVQPZLVSWEVTOZUGZUHZHICUAMZWOJVRVSCUBMZOZWBWCWDWECUQMZOOZUCZUDZUEZKWOPZL
      VSWEWPOZUGZUHZBUIMZCUIMZAWNHIVQVQXEUHZXFAHIVQVQWMXEAVSVQQZWEVQQZWMXERAXJS
      ZXKSZWMXBKVQPZLWLUGXEXMWKXNLWLXMWBWLQZSZWJXBKVQXPVRVQQZSZWIXAXRWHWTXRJWAW
      GWQWSXRVQBCVTWPVRVSVQTZVTTZWPTZXMBUJMCUJMRZXOXQAYBXJXKDUKZUKXPXQULAXJXKXO
      XQUMUNXRWCWAQZSVQBCWRWFWCWBVTVRVSWEXSXTWFTZWRTZAYBXJXKXOXQYDDUOABVFMCVFMR
      XJXKXOXQYDEUOXPXQYDUPAXJXKXOXQYDURXLXKXOXQYDUMXRYDULXMXOXQYDUSUTVAVBVCVDV
      GXMXNXCLWLXDXMVQBCVTWPVSWEXSXTYAYCAXJXKUPXLXKULUNXMXBKVQWOAVQWORZXJXKABCD
      VEZUKVHVIVJVOVKAYGYGXIXFRYHYHHIVQVQWOWOXEVPVLVJAHIKVQBWFLJVTXGXSXTYEXGTFV
      MAHIKWOCWRLJWPXHWOTYAYFXHTGVMVN $.
  $}

  ${
    $d c C $.  $d c M $.
    oppcmon.o $e |- O = ( oppCat ` C ) $.
    oppcmon.c $e |- ( ph -> C e. Cat ) $.
    ${
      oppcmon.m $e |- M = ( Mono ` O ) $.
      oppcmon.e $e |- E = ( Epi ` C ) $.
      $( A monomorphism in the opposite category is an epimorphism.
         (Contributed by Mario Carneiro, 3-Jan-2017.) $)
      oppcmon $p |- ( ph -> ( X M Y ) = ( Y E X ) ) $=
        ( vc co ctpos cepi cfv ccat wceq coppc cmon wcel syl6eqr fveq2d tposeqd
        cv fveq2 df-epi cvv fvex eqeltri tposex fvmpt syl syl5eq ovtpos syl6req
        oveqd ) AGFCMGFDNZMFGDMACURGFACBOPZURKABQUAUSURRILBLUEZSPZTPZNURQOUTBRZ
        VBDVCVBETPZDVCVAETVCVABSPEUTBSUFHUBUCJUBUDLUGDDVDUHJETUIUJUKULUMUNUQGFD
        UOUP $.
    $}

    ${
      oppcepi.e $e |- E = ( Epi ` O ) $.
      oppcepi.m $e |- M = ( Mono ` C ) $.
      $( An epimorphism in the opposite category is a monomorphism.
         (Contributed by Mario Carneiro, 3-Jan-2017.) $)
      oppcepi $p |- ( ph -> ( X E Y ) = ( Y M X ) ) $=
        ( co cfv cmon chomf wceq a1i ccomf ccat wcel 2oppchomf oppccat syl eqid
        coppc 2oppccomf monpropd syl5eq oveqd oppcmon eqtr2d ) AGFDLGFEUEMZNMZL
        FGCLADUMGFADBNMUMKABULBOMULOMPABEHUAQBRMULRMPABEHUFQIAESTZULSTABSTUNIBE
        HUBUCZEULULUDZUBUCUGUHUIAECUMULGFUPUOUMUDJUJUK $.
    $}
  $}

  ${
    $d g z B $.  $d g z C $.  $d f g h z H $.  $d g h z .x. $.  $d f g h z X $.
    $d f E $.  $d g h z F $.  $d f g z ph $.  $d f g h z Y $.
    isepi.b $e |- B = ( Base ` C ) $.
    isepi.h $e |- H = ( Hom ` C ) $.
    isepi.o $e |- .x. = ( comp ` C ) $.
    isepi.e $e |- E = ( Epi ` C ) $.
    isepi.c $e |- ( ph -> C e. Cat ) $.
    isepi.x $e |- ( ph -> X e. B ) $.
    isepi.y $e |- ( ph -> Y e. B ) $.
    $( Definition of an epimorphism in a category.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    isepi $p |- ( ph -> ( F e. ( X E Y ) <-> ( F e. ( X H Y ) /\ A. z e. B
      Fun `' ( g e. ( Y H z ) |-> ( g ( <. X , Y >. .x. z ) F ) ) ) ) ) $=
      ( co wcel coppc cfv cmon chom cv cop cco cmpt ccnv wfun wral eqid oppcbas
      wa ccat oppccat syl ismon oppcmon eleq2d wceq oppchom simpr adantr oppcco
      a1i mpteq12dv cnveqd funeqd ralbidva anbi12d 3bitr3d ) AHKJDUAUBZUCUBZSZT
      HKJVMUDUBZSZTZFBUEZKVPSZHFUEZVSKUFJVMUGUBZSSZUHZUIZUJZBCUKZUNHJKGSZTHJKIS
      ZTZFKVSISZWAHJKUFVSESSZUHZUIZUJZBCUKZUNABCVMWBFHVPVNKJCDVMVMULZLUMVPULWBU
      LVNULZADUOTVMUOTPDVMWQUPUQRQURAVOWHHADGVNVMKJWQPWROUSUTAVRWJWGWPAVQWIHVQW
      IVAADIVMKJMWQVBVFUTAWFWOBCAVSCTZUNZWEWNWTWDWMWTFVTWCWKWLVTWKVAWTDIVMVSKMW
      QVBVFWTCDEWAHVMVSKJLNWQAWSVCAKCTWSRVDAJCTWSQVDVEVGVHVIVJVKVL $.

    $( Write out the epimorphism property directly.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    isepi2 $p |- ( ph -> ( F e. ( X E Y ) <-> ( F e. ( X H Y ) /\ A. z e. B
      A. g e. ( Y H z ) A. h e. ( Y H z )
        ( ( g ( <. X , Y >. .x. z ) F ) =
          ( h ( <. X , Y >. .x. z ) F ) -> g = h ) ) ) ) $=
      ( wcel co cv cmpt ccnv wfun wral wa wceq wi isepi wb ccat ad2antrr simprl
      cop simplr simprr catcocl anassrs ralrimiva wf eqid fmpt df-f1 baib sylbi
      wf1 oveq1 f1mpt bitr3d syl ralbidva pm5.32da bitrd ) AIKLHUATIKLJUATZFLBU
      BZJUAZFUBZIKLUOVPEUAZUAZUCZUDUEZBCUFZUGVOVTGUBZIVSUAZUHVRWDUHUIGVQUFFVQUF
      ZBCUFZUGABCDEFHIJKLMNOPQRSUJAVOWCWGAVOUGZWBWFBCWHVPCTZUGZVTKVPJUAZTZFVQUF
      ZWBWFUKWJWLFVQWHWIVRVQTZWLWHWIWNUGZUGCDEIVRJKLVPMNOADULTVOWOQUMAKCTVOWORU
      MALCTVOWOSUMWHWIWNUNAVOWOUPWHWIWNUQURUSUTWMVQWKWAVGZWBWFWMVQWKWAVAZWPWBUK
      FVQWKVTWAWAVBZVCWPWQWBVQWKWAVDVEVFWPWMWFFGVQWKVTWEWAWRVRWDIVSVHVIVEVJVKVL
      VMVN $.

    $( An epimorphism is a morphism.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    epihom $p |- ( ph -> ( X E Y ) C_ ( X H Y ) ) $=
      ( vf vg vz co cv wcel cop cmpt ccnv wfun wral wa isepi simpl syl6bi ssrdv
      ) APGHESZGHFSZAPTZULUAUNUMUAZQHRTZFSQTUNGHUBUPDSSUCUDUERBUFZUGUOARBCDQEUN
      FGHIJKLMNOUHUOUQUIUJUK $.

    epii.z $e |- ( ph -> Z e. B ) $.
    epii.f $e |- ( ph -> F e. ( X E Y ) ) $.
    epii.g $e |- ( ph -> G e. ( Y H Z ) ) $.
    epii.k $e |- ( ph -> K e. ( Y H Z ) ) $.
    $( Property of an epimorphism.  (Contributed by Mario Carneiro,
       3-Jan-2017.) $)
    epii $p |- ( ph -> ( ( G ( <. X , Y >. .x. Z ) F ) =
                         ( K ( <. X , Y >. .x. Z ) F ) <-> G = K ) ) $=
      ( cop coppc cfv cco co wceq eqid oppcco eqeq12d chom cmon oppcbas oppccat
      ccat wcel syl oppcmon eleqtrrd oppchom syl6eleqr moni bitr3d ) AFGLKUDJCU
      EUFZUGUFZUHZUHZFIVHUHZUIGFJKUDLDUHZUHZIFVKUHZUIGIUIAVIVLVJVMABCDGFVFLKJMO
      VFUJZTSRUKABCDIFVFLKJMOVNTSRUKULABVFVGFGVFUMUFZIVFUNUFZKJLBCVFVNMUOVOUJVG
      UJVPUJZACUQURVFUQURQCVFVNUPUSSRTAFJKEUHKJVPUHUAACEVPVFKJVNQVQPUTVAAGKLHUH
      ZLKVOUHZUBCHVFLKNVNVBZVCAIVRVSUCVTVCVDVE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Sections, inverses, isomorphisms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Sect $. $( Sections of a morphism. $)
  $c Inv $. $( The inverse of a morphism. $)
  $c Iso $. $( The class of all isomorphisms. $)

  $( Extend class notation with the sections of a morphism. $)
  csect $a class Sect $.

  $( Extend class notation with the inverses of a morphism. $)
  cinv $a class Inv $.

  $( Extend class notation with the class of all isomorphisms. $)
  ciso $a class Iso $.

  ${
    $d c f g h x y $.
    $( Function returning the section relation in a category.  Given arrows
       ` f : X --> Y ` and ` g : Y --> X ` , we say ` f Sect g ` , that is,
       ` f ` is a section of ` g ` , if ` g o. f = 1 `` X ` .  If there there
       is an arrow ` g ` with ` f Sect g ` , the arrow ` f ` is called a
       _section_, see definition 7.19 of [Adamek] p. 106.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    df-sect $a |- Sect = ( c e. Cat |->
     ( x e. ( Base ` c ) , y e. ( Base ` c ) |-> { <. f , g >. |
       [. ( Hom ` c ) / h ]. ( ( f e. ( x h y ) /\ g e. ( y h x ) ) /\
         ( g ( <. x , y >. ( comp ` c ) x ) f ) = ( ( Id ` c ) ` x ) ) } ) ) $.

    $( The inverse relation in a category.  Given arrows ` f : X --> Y ` and
       ` g : Y --> X ` , we say ` g Inv f ` , that is, ` g ` is an inverse of
       ` f ` , if ` g ` is a section of ` f ` and ` f ` is a section of ` g ` .
       Definition 3.8 of [Adamek] p. 28.  (Contributed by FL, 22-Dec-2008.)
       (Revised by Mario Carneiro, 2-Jan-2017.) $)
    df-inv $a |- Inv = ( c e. Cat |-> ( x e. ( Base ` c ) , y e. ( Base ` c )
      |-> ( ( x ( Sect ` c ) y ) i^i `' ( y ( Sect ` c ) x ) ) ) ) $.

    $( Function returning the isomorphisms of the category ` c ` .  Definition
       3.8 of [Adamek] p. 28, and definition in [Lang] p. 54.  (Contributed by
       FL, 9-Jun-2014.)  (Revised by Mario Carneiro, 2-Jan-2017.) $)
    df-iso $a |- Iso = ( c e. Cat |->
      ( ( x e. _V |-> dom x ) o. ( Inv ` c ) ) ) $.
  $}

  ${
    $d c f g h x y .1. $.  $d c x y B $.  $d c f g h x y C $.  $d f g x y ph $.
    $d f g F $.  $d c f g h x y H $.  $d c f g h x y .x. $.  $d f g x y X $.
    $d f g G $.  $d f g x y Y $.
    issect.b $e |- B = ( Base ` C ) $.
    issect.h $e |- H = ( Hom ` C ) $.
    issect.o $e |- .x. = ( comp ` C ) $.
    issect.i $e |- .1. = ( Id ` C ) $.
    issect.s $e |- S = ( Sect ` C ) $.
    issect.c $e |- ( ph -> C e. Cat ) $.
    issect.x $e |- ( ph -> X e. B ) $.
    issect.y $e |- ( ph -> Y e. B ) $.
    $( Value of the section operation.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    sectffval $p |- ( ph -> S = ( x e. B , y e. B |-> { <. f , g >. |
      ( ( f e. ( x H y ) /\ g e. ( y H x ) ) /\
        ( g ( <. x , y >. .x. x ) f ) = ( .1. ` x ) ) } ) ) $=
      ( vc vh csect cfv cv co wcel cop wceq copab cmpt2 ccat cbs ccid chom wsbc
      wa cco fveq2 syl6eqr fvexd simpr oveqd eleq2d anbi12d simpl fveq2d fveq1d
      cvv eqeq12d sbcied2 opabbidv mpt2eq123dv df-sect eqeltri mpt2ex fvmpt syl
      fvex syl5eq ) AFEUDUEZBCDDIUFZBUFZCUFZKUGZUHZJUFZWEWDKUGZUHZURZWHWCWDWEUI
      ZWDGUGZUGZWDHUEZUJZURZIJUKZULZRAEUMUHWBWSUJSUBEBCUBUFZUNUEZXAWCWDWEUCUFZU
      GZUHZWHWEWDXBUGZUHZURZWHWCWLWDWTUSUEZUGZUGZWDWTUOUEZUEZUJZURZUCWTUPUEZUQZ
      IJUKZULWSUMUDWTEUJZBCXAXAXQDDWRXRXAEUNUEZDWTEUNUTNVAZXTXRXPWQIJXRXNWQUCXO
      KVJXRWTUPVBXRXOEUPUEKWTEUPUTOVAXRXBKUJZURZXGWKXMWPYBXDWGXFWJYBXCWFWCYBXBK
      WDWEXRYAVCZVDVEYBXEWIWHYBXBKWEWDYCVDVEVFYBXJWNXLWOYBXIWMWHWCYBXHGWLWDYBXH
      EUSUEGYBWTEUSXRYAVGZVHPVAVDVDYBWDXKHYBXKEUOUEHYBWTEUOYDVHQVAVIVKVFVLVMVNB
      CIJUCUBVOBCDDWRDXSVJNEUNVTVPZYEVQVRVSWA $.

    $( Value of the section relation.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    sectfval $p |- ( ph -> ( X S Y ) = { <. f , g >. |
        ( ( f e. ( X H Y ) /\ g e. ( Y H X ) ) /\
          ( g ( <. X , Y >. .x. X ) f ) = ( .1. ` X ) ) } ) $=
      ( co vx vy cv wcel cop cfv wceq copab cvv sectffval simprl simprr oveq12d
      wa eleq2d anbi12d opeq12d oveqd fveq2d eqeq12d opabbidv cxp ovex opabssxp
      xpex ssexi a1i ovmpt2d ) AUAUBJKBBGUCZUAUCZUBUCZITZUDZHUCZVKVJITZUDZUNZVN
      VIVJVKUEZVJETZTZVJFUFZUGZUNZGHUHVIJKITZUDZVNKJITZUDZUNZVNVIJKUEZJETZTZJFU
      FZUGZUNZGHUHZDUIAUAUBBCDEFGHIJJLMNOPQRRUJAVJJUGZVKKUGZUNUNZWCWNGHWRVQWHWB
      WMWRVMWEVPWGWRVLWDVIWRVJJVKKIAWPWQUKZAWPWQULZUMUOWRVOWFVNWRVKKVJJIWTWSUMU
      OUPWRVTWKWAWLWRVSWJVNVIWRVRWIVJJEWRVJJVKKWSWTUQWSUMURWRVJJFWSUSUTUPVARSWO
      UIUDAWOWDWFVBWDWFJKIVCKJIVCVEWMGHWDWFVDVFVGVH $.

    $( The section relation is a relation between morphisms from ` X ` to ` Y `
       and morphisms from ` Y ` to ` X ` .  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    sectss $p |- ( ph -> ( X S Y ) C_ ( ( X H Y ) X. ( Y H X ) ) ) $=
      ( vf vg co cv wcel wa cop cfv wceq copab cxp sectfval opabssxp syl6eqss )
      AHIDTRUAZHIGTZUBSUAZIHGTZUBUCUNULHIUDHETTHFUEUFZUCRSUGUMUOUHABCDEFRSGHIJK
      LMNOPQUIUPRSUMUOUJUK $.

    $( The property " ` F ` is a section of ` G ` ".  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    issect $p |- ( ph -> ( F ( X S Y ) G <-> ( F e. ( X H Y ) /\
        G e. ( Y H X ) /\ ( G ( <. X , Y >. .x. X ) F ) = ( .1. ` X ) ) ) ) $=
      ( co vf vg wbr cv wcel wa cop cfv wceq copab sectfval breqd oveq12 ancoms
      w3a eqeq1d eqid brab2a df-3an bitr4i syl6bb ) AGHJKDTZUCGHUAUDZJKITZUEUBU
      DZKJITZUEUFVEVCJKUGJETZTZJFUHZUIZUFUAUBUJZUCZGVDUEZHVFUEZHGVGTZVIUIZUOZAV
      BVKGHABCDEFUAUBIJKLMNOPQRSUKULVLVMVNUFVPUFVQVJVPUAUBGHVDVFVKVCGUIZVEHUIZU
      FVHVOVIVSVRVHVOUIVEHVCGVGUMUNUPVKUQURVMVNVPUSUTVA $.

    issect.f $e |- ( ph -> F e. ( X H Y ) ) $.
    issect.g $e |- ( ph -> G e. ( Y H X ) ) $.
    $( Property of being a section.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    issect2 $p |- ( ph ->
      ( F ( X S Y ) G <-> ( G ( <. X , Y >. .x. X ) F ) = ( .1. ` X ) ) ) $=
      ( co wcel wa wbr cop cfv wceq wb jca w3a issect df-3an syl6bb baibd mpdan
      ) AGJKIUBUCZHKJIUBUCZUDZGHJKDUBUEZHGJKUFJEUBUBJFUGUHZUIAUQURTUAUJAUTUSVAA
      UTUQURVAUKUSVAUDABCDEFGHIJKLMNOPQRSULUQURVAUMUNUOUP $.
  $}

  ${
    sectcan.b $e |- B = ( Base ` C ) $.
    sectcan.s $e |- S = ( Sect ` C ) $.
    sectcan.c $e |- ( ph -> C e. Cat ) $.
    sectcan.x $e |- ( ph -> X e. B ) $.
    sectcan.y $e |- ( ph -> Y e. B ) $.
    sectcan.1 $e |- ( ph -> G ( X S Y ) F ) $.
    sectcan.2 $e |- ( ph -> F ( Y S X ) H ) $.
    $( If ` G ` is a section of ` F ` and ` F ` is a section of ` H ` , then
       ` G = H ` .  Proposition 3.10 of [Adamek] p. 28.  (Contributed by Mario
       Carneiro, 2-Jan-2017.) $)
    sectcan $p |- ( ph -> G = H ) $=
      ( cfv cop co eqid ccid cco chom wcel wceq wbr issect simp1d simp2d catass
      w3a mpbid simp3d oveq1d oveq2d 3eqtr3d catlid catrid ) AICUAQZQZFHIRZICUB
      QZSZSZGHUSQZHHRIVBSZSZFGAGEIHRIVBSSZFVCSGEFVAHVBSSZVFSVDVGABCVBFECUCQZGIH
      IHJVJTZVBTZLMNMAFHIVJSZUDZEIHVJSUDZVIVEUEZAFEHIDSUFVNVOVPUKOABCDVBUSFEVJH
      IJVKVLUSTZKLMNUGULZUHZAVOGVMUDZVHUTUEZAEGIHDSUFVOVTWAUKPABCDVBUSEGVJIHJVK
      VLVQKLNMUGULZUHNAVOVTWAWBUIZUJAVHUTFVCAVOVTWAWBUMUNAVIVEGVFAVNVOVPVRUMUOU
      PABCVBUSFVJHIJVKVQLMVLNVSUQABCVBUSGVJHIJVKVQLMVLNWCURUP $.
  $}

  ${
    sectco.b $e |- B = ( Base ` C ) $.
    sectco.o $e |- .x. = ( comp ` C ) $.
    sectco.s $e |- S = ( Sect ` C ) $.
    sectco.c $e |- ( ph -> C e. Cat ) $.
    sectco.x $e |- ( ph -> X e. B ) $.
    sectco.y $e |- ( ph -> Y e. B ) $.
    sectco.z $e |- ( ph -> Z e. B ) $.
    sectco.1 $e |- ( ph -> F ( X S Y ) G ) $.
    sectco.2 $e |- ( ph -> H ( Y S Z ) K ) $.
    $( Composition of two sections.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    sectco $p |- ( ph ->
     ( H ( <. X , Y >. .x. Z ) F ) ( X S Z ) ( G ( <. Z , Y >. .x. X ) K ) ) $=
      ( cop co wbr ccid cfv wceq chom eqid wcel w3a issect mpbid simp1d catcocl
      simp2d catass simp3d oveq1d catlid 3eqtr3d oveq2d 3eqtrd issect2 mpbird )
      AHFJKUBZLEUCUCZGILKUBJEUCUCZJLDUCUDVHVGJLUBZJEUCUCZJCUEUFZUFZUGAVJGIVGVIK
      EUCUCZVFJEUCZUCGFVNUCZVLABCEVGICUHUFZGJJLKMVPUIZNPQSRABCEFHVPJKLMVQNPQRSA
      FJKVPUCUJZGKJVPUCUJZVOVLUGZAFGJKDUCUDVRVSVTUKTABCDEVKFGVPJKMVQNVKUIZOPQRU
      LUMZUNZAHKLVPUCUJZILKVPUCUJZIHKLUBKEUCUCZKVKUFZUGZAHIKLDUCUDWDWEWHUKUAABC
      DEVKHIVPKLMVQNWAOPRSULUMZUNZUOZAWDWEWHWIUPZQAVRVSVTWBUPZUQAVMFGVNAWFFVFKE
      UCZUCWGFWNUCVMFAWFWGFWNAWDWEWHWIURUSABCEFHVPIKJKLMVQNPQRSWCWJRWLUQABCEVKF
      VPJKMVQWAPQNRWCUTVAVBAVRVSVTWBURVCABCDEVKVGVHVPJLMVQNWAOPQSWKABCEIGVPLKJM
      VQNPSRQWLWMUOVDVE $.
  $}

  ${
    $d C c x $.
    $( Function value of the function returning the isomorphisms of a category.
       (Contributed by AV, 5-Apr-2017.) $)
    isofval $p |- ( C e. Cat -> ( Iso ` C ) = ( ( x e. _V |-> dom x )
                                                o. ( Inv ` C ) ) ) $=
      ( vc ccat wcel cvv cv cdm cmpt cinv cfv ccom ciso df-iso a1i fveq2 coeq2d
      wceq adantl id wfun funmpt fvexd cofunexg sylancr fvmptd ) BDEZCBAFAGHZIZ
      CGZJKZLZUIBJKZLZDMFMCDULIRUGACNOUJBRZULUNRUGUOUKUMUIUJBJPQSUGTUGUIUAUMFEU
      NFEAFUHUBUGBJUCUIUMFUDUEUF $.
  $}

  ${
    $d c x y B $.  $d f g h x y ph $.  $d f g h x y z X $.  $d f g h x y z Y $.
    $d c x y C $.  $d c f g h z N $.  $d c x y S $.
    invfval.b $e |- B = ( Base ` C ) $.
    invfval.n $e |- N = ( Inv ` C ) $.
    invfval.c $e |- ( ph -> C e. Cat ) $.
    invfval.x $e |- ( ph -> X e. B ) $.
    invfval.y $e |- ( ph -> Y e. B ) $.
    ${
      invfval.s $e |- S = ( Sect ` C ) $.
      $( Value of the inverse relation.  (Contributed by Mario Carneiro,
         2-Jan-2017.) $)
      invffval $p |- ( ph -> N =
        ( x e. B , y e. B |-> ( ( x S y ) i^i `' ( y S x ) ) ) ) $=
        ( vc cfv cv co cbs cinv ccnv cin cmpt2 ccat wcel wceq csect fveq2 oveqd
        syl6eqr cnveqd ineq12d mpt2eq123dv df-inv cvv fvex eqeltri mpt2ex fvmpt
        syl syl5eq ) AGEUAQZBCDDBRZCRZFSZVEVDFSZUBZUCZUDZKAEUEUFVCVJUGLPEBCPRZT
        QZVLVDVEVKUHQZSZVEVDVMSZUBZUCZUDVJUEUAVKEUGZBCVLVLVQDDVIVRVLETQZDVKETUI
        JUKZVTVRVNVFVPVHVRVMFVDVEVRVMEUHQFVKEUHUIOUKZUJVRVOVGVRVMFVEVDWAUJULUMU
        NBCPUOBCDDVIDVSUPJETUQURZWBUSUTVAVB $.

      $( Value of the inverse relation.  (Contributed by Mario Carneiro,
         2-Jan-2017.) $)
      invfval $p |- ( ph -> ( X N Y ) = ( ( X S Y ) i^i `' ( Y S X ) ) ) $=
        ( vx vy cv co ccnv cin cvv wceq wa simprl simprr oveq12d cnveqd ineq12d
        invffval wcel ovex inex1 a1i ovmpt2d ) ANOFGBBNPZOPZDQZUOUNDQZRZSFGDQZG
        FDQZRZSZETANOBCDEFFHIJKKMUHAUNFUAZUOGUAZUBUBZUPUSURVAVEUNFUOGDAVCVDUCZA
        VCVDUDZUEVEUQUTVEUOGUNFDVGVFUEUFUGKLVBTUIAUSVAFGDUJUKULUM $.

      $( Value of the inverse relation.  (Contributed by Mario Carneiro,
         2-Jan-2017.) $)
      isinv $p |- ( ph ->
        ( F ( X N Y ) G <-> ( F ( X S Y ) G /\ G ( Y S X ) F ) ) ) $=
        ( co wbr wa cfv eqid ccnv cin invfval breqd brin syl6bb wrel wb cxp wss
        chom cco ccid sectss relxp relss mpisyl relbrcnvg syl anbi2d bitrd ) AE
        FHIGPZQZEFHIDPZQZEFIHDPZUAZQZRZVEFEVFQZRAVCEFVDVGUBZQVIAVBVKEFABCDGHIJK
        LMNOUCUDEFVDVGUEUFAVHVJVEAVFUGZVHVJUHAVFIHCUKSZPZHIVMPZUIZUJVPUGVLABCDC
        ULSZCUMSZVMIHJVMTVQTVRTOLNMUNVNVOUOVFVPUPUQEFVFURUSUTVA $.
    $}

    ${
      invss.h $e |- H = ( Hom ` C ) $.
      $( The inverse relation is a relation between morphisms ` F : X --> Y `
         and their inverses ` G : Y --> X ` .  (Contributed by Mario Carneiro,
         2-Jan-2017.) $)
      invss $p |- ( ph -> ( X N Y ) C_ ( ( X H Y ) X. ( Y H X ) ) ) $=
        ( co csect cfv cxp ccnv cin eqid invfval inss1 syl6eqss cco ccid sectss
        sstrd ) AFGENZFGCOPZNZFGDNGFDNQAUHUJGFUINRZSUJABCUIEFGHIJKLUITZUAUJUKUB
        UCABCUICUDPZCUEPZDFGHMUMTUNTULJKLUFUG $.
    $}

    $( The inverse relation is symmetric.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    invsym $p |- ( ph -> ( F ( X N Y ) G <-> G ( Y N X ) F ) ) $=
      ( co wbr csect cfv wa eqid isinv ancom syl6bb bitr4d ) ADEGHFNOZEDHGCPQZN
      OZDEGHUENOZRZEDHGFNOAUDUGUFRUHABCUEDEFGHIJKLMUESZTUGUFUAUBABCUEEDFHGIJKML
      UITUC $.

    $( The inverse relation is symmetric.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    invsym2 $p |- ( ph -> `' ( X N Y ) = ( Y N X ) ) $=
      ( vg vf co wrel cv wbr wcel vex df-br ccnv wa wceq chom cfv cxp wss invss
      relxp relss mpisyl relcnv jctil cop invsym brcnv bitr3i 3bitr3g eqrelrdv2
      eqid mpancom ) EFDNZUAZOZFEDNZOZUBAVCVEUCAVFVDAVEFECUDUEZNZEFVGNZUFZUGVJO
      VFABCVGDFEGHIKJVGUTUHVHVIUIVEVJUJUKVBULUMALMVCVEAMPZLPZVBQZVLVKVEQVLVKUNZ
      VCRZVNVERABCVKVLDEFGHIJKUOVMVLVKVCQVOVLVKVBLSMSUPVLVKVCTUQVLVKVETURUSVA
      $.

    $( The inverse relation is a function, which is to say that every morphism
       has at most one inverse.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    invfun $p |- ( ph -> Fun ( X N Y ) ) $=
      ( vf vg vh co cv wbr wal wcel adantr wrel wa weq wi wfun chom cfv cxp wss
      eqid invss relxp relss csect ccat isinv simplbda adantrr simprbda adantrl
      mpisyl sectcan ex alrimiv alrimivv dffun2 sylanbrc ) AEFDOZUAZLPZMPZVHQZV
      JNPZVHQZUBZMNUCZUDZNRZMRLRVHUEAVHEFCUFUGZOZFEVSOZUHZUIWBUAVIABCVSDEFGHIJK
      VSUJUKVTWAULVHWBUMVAAVRLMAVQNAVOVPAVOUBBCCUNUGZVJVKVMFEGWCUJZACUOSVOITAFB
      SVOKTAEBSVOJTAVLVKVJFEWCOZQZVNAVLVJVKEFWCOZQWFABCWCVJVKDEFGHIJKWDUPUQURAV
      NVJVMWGQZVLAVNWHVMVJWEQABCWCVJVMDEFGHIJKWDUPUSUTVBVCVDVELMNVHVFVG $.

    $d z C $.
    isoval.n $e |- I = ( Iso ` C ) $.
    $( The isomorphisms are the domain of the inverse relation.  (Contributed
       by Mario Carneiro, 2-Jan-2017.)  (Proof shortened by AV,
       21-May-2020.) $)
    isoval $p |- ( ph -> ( X I Y ) = dom ( X N Y ) ) $=
      ( vz vx vy co cvv cfv wcel cv cdm cmpt ccom ciso cinv ccat isofval coeq2i
      wceq syl 3eqtr4g oveqd cop cxp wfn csect ccnv cin cmpt2 eqid ovex fnmpt2i
      inex1 invffval fneq1d mpbiri opelxpi syl2anc fvco2 df-ov dmeq fvmpt ax-mp
      dmex fveq2i eqtr3i eqtrd ) AFGDQFGNRNUAZUBZUCZEUDZQZFGEQZUBZADWBFGACUESZW
      ACUFSZUDZDWBACUGTWFWHUJJNCUHUKMEWGWAIUIULUMAFGUNZWBSZWIESZWASZWCWEAEBBUOZ
      UPZWIWMTZWJWLUJAWNOPBBOUAZPUAZCUQSZQZWQWPWRQURZUSZUTZWMUPOPBBXAXBXBVAWSWT
      WPWQWRVBVDVCAWMEXBAOPBCWREFGHIJKLWRVAVEVFVGAFBTGBTWOKLFGBBVHVIWMWAEWIVJVI
      FGWBVKWDWASZWEWLWDRTXCWEUJFGEVBZNWDVTWERWAVSWDVLWAVAWDXDVOVMVNWDWKWAFGEVK
      VPVQULVR $.

    ${
      inviso1.1 $e |- ( ph -> F ( X N Y ) G ) $.
      $( If ` G ` is an inverse to ` F ` , then ` F ` is an isomorphism.
         (Contributed by Mario Carneiro, 3-Jan-2017.) $)
      inviso1 $p |- ( ph -> F e. ( X I Y ) ) $=
        ( co cdm wrel wbr wcel wfun invfun funrel syl releldm syl2anc eleqtrrd
        isoval ) ADHIGQZRZHIFQAUJSZDEUJTDUKUAAUJUBULABCGHIJKLMNUCUJUDUEPDEUJUFU
        GABCFGHIJKLMNOUIUH $.

      $( If ` G ` is an inverse to ` F ` , then ` G ` is an isomorphism.
         (Contributed by Mario Carneiro, 3-Jan-2017.) $)
      inviso2 $p |- ( ph -> G e. ( Y I X ) ) $=
        ( co wbr invsym mpbid inviso1 ) ABCEDFGIHJKLNMOADEHIGQREDIHGQRPABCDEGHI
        JKLMNSTUA $.
    $}

    $( The inverse relation is a function from isomorphisms to isomorphisms.
       (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    invf $p |- ( ph -> ( X N Y ) : ( X I Y ) --> ( Y I X ) ) $=
      ( co wfn crn wss wf cdm isoval wfun invfun funfn sylib fneq2d mpbird wceq
      ccnv df-rn invsym2 dmeqd eqtr4d syl5eq eqimss syl df-f sylanbrc ) AFGENZF
      GDNZOZURPZGFDNZQZUSVBURRAUTURURSZOZAURUAVEABCEFGHIJKLUBURUCUDAUSVDURABCDE
      FGHIJKLMTUEUFAVAVBUGVCAVAURUHZSZVBURUIAVGGFENZSVBAVFVHABCEFGHIJKLUJUKABCD
      EGFHIJLKMTULUMVAVBUNUOUSVBURUPUQ $.

    $( The inverse relation is a bijection from isomorphisms to isomorphisms.
       This means that every isomorphism ` F e. ( X I Y ) ` has a unique
       inverse, denoted by ` ( ( Inv `` C ) `` F ) ` .  Remark 3.12 of [Adamek]
       p. 28.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    invf1o $p |- ( ph -> ( X N Y ) : ( X I Y ) -1-1-onto-> ( Y I X ) ) $=
      ( co wfn ccnv wf invf ffn syl wf1o invsym2 fneq1d mpbird dff1o4 sylanbrc
      ) AFGENZFGDNZOZUGPZGFDNZOZUHUKUGUAAUHUKUGQUIABCDEFGHIJKLMRUHUKUGSTAULGFEN
      ZUKOZAUKUHUMQUNABCDEGFHIJLKMRUKUHUMSTAUKUJUMABCEFGHIJKLUBUCUDUHUKUGUEUF
      $.

    invinv.f $e |- ( ph -> F e. ( X I Y ) ) $.
    $( The inverse of the inverse of an isomorphism is itself.  Proposition
       3.14(1) of [Adamek] p. 29.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    invinv $p |- ( ph -> ( ( Y N X ) ` ( ( X N Y ) ` F ) ) = F ) $=
      ( co cfv ccnv invsym2 fveq1d wf1o wcel invf1o f1ocnvfv1 syl2anc eqtr3d
      wceq ) ADGHFPZQZUHRZQZUIHGFPZQDAUIUJULABCFGHIJKLMSTAGHEPZHGEPZUHUADUMUBUK
      DUGABCEFGHIJKLMNUCOUMUNDUHUDUEUF $.

    invco.o $e |- .x. = ( comp ` C ) $.
    invco.z $e |- ( ph -> Z e. B ) $.
    invco.f $e |- ( ph -> G e. ( Y I Z ) ) $.
    $( The composition of two isomorphisms is an isomorphism, and the inverse
       is the composition of the individual inverses.  Proposition 3.14(2) of
       [Adamek] p. 29.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    invco $p |- ( ph -> ( G ( <. X , Y >. .x. Z ) F ) ( X N Z )
      ( ( ( X N Y ) ` F ) ( <. Z , Y >. .x. X ) ( ( Y N Z ) ` G ) ) ) $=
      ( cop co cfv wbr csect eqid wa cdm wcel isoval eleqtrd wb invfun funfvbrb
      wfun syl mpbid isinv simpld sectco simprd mpbir2and ) AFEIJUBKDUCUCZEIJHU
      CZUDZFJKHUCZUDZKJUBIDUCUCZIKHUCUEVDVIIKCUFUDZUCUEVIVDKIVJUCUEABCVJDEVFFVH
      IJKLSVJUGZNOPTAEVFIJVJUCUEZVFEJIVJUCUEZAEVFVEUEZVLVMUHAEVEUIZUJZVNAEIJGUC
      VORABCGHIJLMNOPQUKULAVEUPVPVNUMABCHIJLMNOPUNEVEUOUQURABCVJEVFHIJLMNOPVKUS
      URZUTAFVHJKVJUCUEZVHFKJVJUCUEZAFVHVGUEZVRVSUHAFVGUIZUJZVTAFJKGUCWAUAABCGH
      JKLMNPTQUKULAVGUPWBVTUMABCHJKLMNPTUNFVGUOUQURABCVJFVHHJKLMNPTVKUSURZUTVAA
      BCVJDVHFVFEKJILSVKNTPOAVRVSWCVBAVLVMVQVBVAABCVJVDVIHIKLMNOTVKUSVC $.
  $}

  ${
    $d C f g $.  $d F f g $.  $d H f g $.  $d I g $.  $d X f g $.  $d Y f g $.
    $d .o. g $.  $d .* g $.  $d .1. f g $.  $d ph f g $.
    dfiso2.b $e |- B = ( Base ` C ) $.
    dfiso2.h $e |- H = ( Hom ` C ) $.
    dfiso2.c $e |- ( ph -> C e. Cat ) $.
    dfiso2.i $e |- I = ( Iso ` C ) $.
    dfiso2.x $e |- ( ph -> X e. B ) $.
    dfiso2.y $e |- ( ph -> Y e. B ) $.
    dfiso2.f $e |- ( ph -> F e. ( X H Y ) ) $.
    dfiso2.1 $e |- .1. = ( Id ` C ) $.
    dfiso2.o $e |- .o. = ( <. X , Y >. ( comp ` C ) X ) $.
    dfiso2.p $e |- .* = ( <. Y , X >. ( comp ` C ) Y ) $.
    $( Alternate definition of an isomorphism of a category, according to
       definition 3.8 in [Adamek] p. 28.  (Contributed by AV, 10-Apr-2017.) $)
    dfiso2 $p |- ( ph -> ( F e. ( X I Y ) <-> E. g e. ( Y H X )
               ( ( g .o. F ) = ( .1. ` X ) /\ ( F .* g ) = ( .1. ` Y ) ) ) ) $=
      ( vf co wcel cinv cfv cdm csect ccnv cin cv wceq wrex eqid isoval invfval
      eleq2d dmeqd cop cco wex cab copab sectfval cnveqd cnvopab syl6eq ineq12d
      wa inopab an4 an42 anidm bitri anbi1i opabbii eqtri dmopab wb eleq1 oveq2
      anbi1d eqeq1d oveq1 anbi12d exbidv syl biantrurd bicomd a1i eqcomd df-rex
      elabg oveqd syl6bbr 3bitrd ) AFJKHUDZUEFJKCUFUGZUDZUHZUEFJKCUIUGZUDZKJXBU
      DZUJZUKZUHZUEZEULZFLUDZJDUGZUMZFXIIUDZKDUGZUMZVJZEKJGUDZUNZAWRXAFABCHWSJK
      MWSUOZOQRPUPURAXAXGFAWTXFABCXBWSJKMXSOQRXBUOZUQUSURAXHFUCULZJKGUDZUEZXIXQ
      UEZVJZXIYAJKUTJCVAUGZUDZUDZXKUMZYAXIKJUTKYFUDZUDZXNUMZVJZVJZEVBZUCVCZUEZF
      YBUEZYDVJZXIFYGUDZXKUMZFXIYJUDZXNUMZVJZVJZEVBZXRAXGYPFAXGYNUCEVDZUHYPAXFU
      UGAXFYEYIVJZUCEVDZYDYCVJZYLVJZUCEVDZUKZUUGAXCUUIXEUULABCXBYFDUCEGJKMNYFUO
      ZTXTOQRVEAXEUUKEUCVDZUJUULAXDUUOABCXBYFDEUCGKJMNUUNTXTORQVEVFUUKEUCVGVHVI
      UUMUUHUUKVJZUCEVDUUGUUHUUKUCEVKUUPYNUCEUUPYEUUJVJZYMVJYNYEYIUUJYLVLUUQYEY
      MUUQYEYEVJYEYCYDYDYCVMYEVNVOVPVOVQVRVHUSYNUCEVSVHURAYRYQUUFVTSYOUUFUCFYBY
      AFUMZYNUUEEUURYEYSYMUUDUURYCYRYDYAFYBWAWCUURYIUUAYLUUCUURYHYTXKYAFXIYGWBW
      DUURYKUUBXNYAFXIYJWEWDWFWFWGWNWHAUUFYDXPVJZEVBXRAUUEUUSEAYSYDUUDXPAYDYSAY
      RYDSWIWJAUUAXLUUCXOAYTXJXKAYGLXIFALYGLYGUMAUAWKWLWOWDAUUBXMXNAYJIFXIAIYJI
      YJUMAUBWKWLWOWDWFWFWGXPEXQWMWPWQWQ $.
  $}

  ${
    $d C g $.  $d F g $.  $d H g $.  $d I g $.  $d X g $.  $d Y g $.
    $d ph g $.
    dfiso3.b $e |- B = ( Base ` C ) $.
    dfiso3.h $e |- H = ( Hom ` C ) $.
    dfiso3.i $e |- I = ( Iso ` C ) $.
    dfiso3.s $e |- S = ( Sect ` C ) $.
    dfiso3.c $e |- ( ph -> C e. Cat ) $.
    dfiso3.x $e |- ( ph -> X e. B ) $.
    dfiso3.y $e |- ( ph -> Y e. B ) $.
    dfiso3.f $e |- ( ph -> F e. ( X H Y ) ) $.
    $( Alternate definition of an isomorphism of a category as a section in
       both directions.  (Contributed by AV, 11-Apr-2017.) $)
    dfiso3 $p |- ( ph -> ( F e. ( X I Y ) <-> E. g e. ( Y H X )
                                      ( g ( Y S X ) F /\ F ( X S Y ) g ) ) ) $=
      ( co wcel cv cop cco cfv ccid wceq wrex wbr eqid dfiso2 ccat adantr simpr
      wa issect2 anbi12d ancom syl6rbb rexbidva bitrd ) AFIJHSTEUAZFIJUBICUCUDZ
      SZSICUEUDZUDUFZFVAJIUBJVBSZSJVDUDUFZUNZEJIGSZUGVAFJIDSUHZFVAIJDSUHZUNZEVI
      UGABCVDEFGHVFIJVCKLOMPQRVDUIZVCUIVFUIUJAVHVLEVIAVAVITZUNZVLVGVEUNVHVOVJVG
      VKVEVOBCDVBVDVAFGJIKLVBUIZVMNACUKTVNOULZAJBTVNQULZAIBTVNPULZAVNUMZAFIJGST
      VNRULZUOVOBCDVBVDFVAGIJKLVPVMNVQVSVRWAVTUOUPVGVEUQURUSUT $.
  $}

  ${
    inveq.b $e |- B = ( Base ` C ) $.
    inveq.h $e |- H = ( Hom ` C ) $.
    inveq.n $e |- N = ( Inv ` C ) $.
    inveq.c $e |- ( ph -> C e. Cat ) $.
    inveq.x $e |- ( ph -> X e. B ) $.
    inveq.y $e |- ( ph -> Y e. B ) $.
    $( If there are two inverses of an morphism, these inverses are equal.
       Corollary 3.11 of [Adamek] p. 28.  (Contributed by AV, 10-Apr-2017.) $)
    inveq $p |- ( ph -> ( ( F ( X N Y ) G /\ F ( X N Y ) K ) -> G = K ) ) $=
      ( co wbr wa adantr wceq csect cfv eqid ccat wcel isinv simpr syl6bi com12
      wi impcom simpl adantld imp sectcan ex ) ADEIJHQZRZDGURRZSZEGUAAVASBCCUBU
      CZDEGJIKVBUDZACUEUFVANTAJBUFVAPTAIBUFVAOTVAAEDJIVBQZRZUSAVEUKUTAUSVEAUSDE
      IJVBQZRZVESVEABCVBDEHIJKMNOPVCUGVGVEUHUIUJTULAVADGVFRZAUTVHUSAUTVHGDVDRZS
      VHABCVBDGHIJKMNOPVCUGVHVIUMUIUNUOUPUQ $.
  $}

  ${
    $d C c x y $.
    $( The function value of the function returning the isomorphisms of a
       category is a function over the square product of the base set of the
       category.  (Contributed by AV, 5-Apr-2017.) $)
    isofn $p |- ( C e. Cat
                  -> ( Iso ` C ) Fn ( ( Base ` C ) X. ( Base ` C ) ) ) $=
      ( vx vy vc ccat wcel cfv cbs wfn cvv cv cmpt cinv wral adantl csect co wa
      a1i wceq ciso cxp cdm ccom crn wss dmexg ralrimiva eqid syl ccnv cin ovex
      fnmpt cmpt2 inex1 ralrimivva fnmpt2 df-inv fveq2 oveqd cnveqd mpt2eq123dv
      ineq12d id fvex pm3.2i mpt2exg mp1i fvmptd fneq1d mpbird ssv fnco syl3anc
      isofval ) AEFZAUAGZAHGZVSUBZIBJBKZUCZLZAMGZUDZVTIZVQWCJIZWDVTIZWDUEZJUFZW
      FVQWBJFZBJNWGVQWKBJWAJFWKVQWAJUGOUHBJWBWCJWCUIUNUJVQWHBCVSVSWACKZAPGZQZWL
      WAWMQZUKZULZUOZVTIZVQWQJFZCVSNBVSNWSVQWTBCVSVSWTVQWAVSFWLVSFRRWNWPWAWLWMU
      MUPSUQBCVSVSWQWRJWRUIZURUJVQVTWDWRVQDABCDKZHGZXCWAWLXBPGZQZWLWAXDQZUKZULZ
      UOZWREMJMDEXILTVQBCDUSSXBATZXIWRTVQXJBCXCXCXHVSVSWQXBAHUTZXKXJXEWNXGWPXJX
      DWMWAWLXBAPUTZVAXJXFWOXJXDWMWLWAXLVAVBVDVCOVQVEVSJFZXMRWRJFVQXMXMAHVFZXNV
      GBCVSVSWQJJWRXAVHVIVJVKVLWJVQWIVMSJVTWCWDVNVOVQVTVRWEBAVPVKVL $.
  $}

  ${
    isohom.b $e |- B = ( Base ` C ) $.
    isohom.h $e |- H = ( Hom ` C ) $.
    isohom.i $e |- I = ( Iso ` C ) $.
    isohom.c $e |- ( ph -> C e. Cat ) $.
    isohom.x $e |- ( ph -> X e. B ) $.
    isohom.y $e |- ( ph -> Y e. B ) $.
    $( An isomorphism is a homomorphism.  (Contributed by Mario Carneiro,
       27-Jan-2017.) $)
    isohom $p |- ( ph -> ( X I Y ) C_ ( X H Y ) ) $=
      ( co cxp cdm cinv cfv eqid wss isoval invss dmss eqsstrd dmxpss syl6ss
      syl ) AFGENZFGDNZGFDNZOZPZUIAUHFGCQRZNZPZULABCEUMFGHUMSZKLMJUAAUNUKTUOULT
      ABCDUMFGHUPKLMIUBUNUKUCUGUDUIUJUEUF $.
  $}

  ${
    isoco.b $e |- B = ( Base ` C ) $.
    isoco.o $e |- .x. = ( comp ` C ) $.
    isoco.n $e |- I = ( Iso ` C ) $.
    isoco.c $e |- ( ph -> C e. Cat ) $.
    isoco.x $e |- ( ph -> X e. B ) $.
    isoco.y $e |- ( ph -> Y e. B ) $.
    isoco.z $e |- ( ph -> Z e. B ) $.
    isoco.f $e |- ( ph -> F e. ( X I Y ) ) $.
    isoco.g $e |- ( ph -> G e. ( Y I Z ) ) $.
    $( The composition of two isomorphisms is an isomorphism.  Proposition
       3.14(2) of [Adamek] p. 29.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    isoco $p |- ( ph -> ( G ( <. X , Y >. .x. Z ) F ) e. ( X I Z ) ) $=
      ( co cop cinv cfv eqid invco inviso1 ) ABCFEHIUAJDTTEHICUBUCZTUCFIJUGTUCJ
      IUAHDTTGUGHJKUGUDZNOQMABCDEFGUGHIJKUHNOPMRLQSUEUF $.
  $}

  ${
    $d f g ph $.  $d f g S $.  $d f g T $.  $d f g X $.  $d f g Y $.
    oppcsect.b $e |- B = ( Base ` C ) $.
    oppcsect.o $e |- O = ( oppCat ` C ) $.
    oppcsect.c $e |- ( ph -> C e. Cat ) $.
    oppcsect.x $e |- ( ph -> X e. B ) $.
    oppcsect.y $e |- ( ph -> Y e. B ) $.
    ${
      oppcsect.s $e |- S = ( Sect ` C ) $.
      oppcsect.t $e |- T = ( Sect ` O ) $.
      $( A section in the opposite category.  (Contributed by Mario Carneiro,
         3-Jan-2017.) $)
      oppcsect $p |- ( ph -> ( F ( X T Y ) G <-> G ( X S Y ) F ) ) $=
        ( cfv co wcel chom cop cco ccid wceq w3a wbr wa eqid adantr oppcco ccat
        oppcid syl fveq1d eqeq12d pm5.32da df-3an oppchom eleq2i anbi12ci bitri
        anbi1i 3bitr4g oppcbas oppccat issect 3bitr4d ) AFIJHUARZSZTZGJIVISZTZG
        FIJUBZIHUCRZSSZIHUDRZRZUEZUFZGIJCUARZSZTZFJIWASZTZFGVNICUCRZSSZICUDRZRZ
        UEZUFZFGIJESUGGFIJDSUGAWCWEUHZVSUHZWLWJUHVTWKAWLVSWJAWLUHZVPWGVRWIWNBCW
        FFGHIJIKWFUIZLAIBTWLNUJZAJBTWLOUJWPUKWNIVQWHWNCULTZVQWHUEAWQWLMUJWHCHLW
        HUIZUMUNUOUPUQVTVKVMUHZVSUHWMVKVMVSURWSWLVSVKWEVMWCVJWDFCWAHIJWAUIZLUSU
        TVLWBGCWAHJIWTLUSUTVAVCVBWCWEWJURVDABHEVOVQFGVIIJBCHLKVEVIUIVOUIVQUIQAW
        QHULTMCHLVFUNNOVGABCDWFWHGFWAIJKWTWOWRPMNOVGVH $.

      $( A section in the opposite category.  (Contributed by Mario Carneiro,
         3-Jan-2017.) $)
      oppcsect2 $p |- ( ph -> ( X T Y ) = `' ( X S Y ) ) $=
        ( vf vg co cfv wrel ccnv chom cxp wss cco ccid oppcbas eqid oppccat syl
        ccat wcel sectss relxp relss mpisyl relcnv a1i wbr oppcsect vex syl6bbr
        cv brcnv eqbrrdv ) APQGHERZGHDRZUAZAVFGHFUBSZRZHGVIRZUCZUDVLTVFTABFEFUE
        SZFUFSZVIGHBCFJIUGVIUHVMUHVNUHOACUKULFUKULKCFJUIUJLMUMVJVKUNVFVLUOUPVHT
        AVGUQURAPVCZQVCZVFUSVPVOVGUSVOVPVHUSABCDEVOVPFGHIJKLMNOUTVOVPVGPVAQVAVD
        VBVE $.
    $}

    ${
      oppcinv.s $e |- I = ( Inv ` C ) $.
      oppcinv.t $e |- J = ( Inv ` O ) $.
      $( An inverse in the opposite category.  (Contributed by Mario Carneiro,
         3-Jan-2017.) $)
      oppcinv $p |- ( ph -> ( X J Y ) = ( Y I X ) ) $=
        ( cfv co ccnv cin eqid csect incom oppcsect2 wrel wceq chom cxp wss cco
        cnveqd ccid sectss relxp relss mpisyl dfrel2 sylib eqtrd ineq12d syl5eq
        oppcbas ccat wcel oppccat syl invfval 3eqtr4d ) AGHFUAPZQZHGVHQZRZSZHGC
        UAPZQZGHVMQRZSZGHEQHGDQAVLVKVISVPVIVKUBAVKVNVIVOAVKVNRZRZVNAVJVQABCVMVH
        FHGIJKMLVMTZVHTZUCUJAVNUDZVRVNUEAVNHGCUFPZQZGHWBQZUGZUHWEUDWAABCVMCUIPZ
        CUKPZWBHGIWBTWFTWGTVSKMLULWCWDUMVNWEUNUOVNUPUQURABCVMVHFGHIJKLMVSVTUCUS
        UTABFVHEGHBCFJIVAOACVBVCFVBVCKCFJVDVELMVTVFABCVMDHGINKMLVSVFVG $.
    $}

    ${
      oppciso.s $e |- I = ( Iso ` C ) $.
      oppciso.t $e |- J = ( Iso ` O ) $.
      $( An isomorphism in the opposite category.  See also remark 3.9 in
         [Adamek] p. 28.  (Contributed by Mario Carneiro, 3-Jan-2017.) $)
      oppciso $p |- ( ph -> ( X J Y ) = ( Y I X ) ) $=
        ( cinv cfv co cdm eqid oppcinv oppcbas ccat wcel oppccat isoval 3eqtr4d
        dmeqd syl ) AGHFPQZRZSHGCPQZRZSGHERHGDRAUKUMABCULUJFGHIJKLMULTZUJTZUAUH
        ABFEUJGHBCFJIUBUOACUCUDFUCUDKCFJUEUILMOUFABCDULHGIUNKMLNUFUG $.
    $}
  $}

  ${
    $d g h x B $.  $d g h x C $.  $d g h x F $.  $d g h x ph $.  $d g h x X $.
    $d g h x Y $.
    sectmon.b $e |- B = ( Base ` C ) $.
    sectmon.m $e |- M = ( Mono ` C ) $.
    sectmon.s $e |- S = ( Sect ` C ) $.
    sectmon.c $e |- ( ph -> C e. Cat ) $.
    sectmon.x $e |- ( ph -> X e. B ) $.
    sectmon.y $e |- ( ph -> Y e. B ) $.
    ${
      sectmon.1 $e |- ( ph -> F ( X S Y ) G ) $.
      $( If ` F ` is a section of ` G ` , then ` F ` is a monomorphism.  A
         monomorphism that arises from a section is also known as a _split
         monomorphism_.  (Contributed by Mario Carneiro, 3-Jan-2017.) $)
      sectmon $p |- ( ph -> F e. ( X M Y ) ) $=
        ( vg co wcel ad2antrr vx vh chom cfv cv cop cco wceq wral ccid wbr eqid
        wi issect mpbid simp1d wa oveq2 simp3d oveq1d ccat simplr simprl simp2d
        catass catlid 3eqtr3d simprr eqeq12d syl5ib ralrimivva ralrimiva ismon2
        w3a mpbir2and ) AEHIGRSEHICUCUDZRSZEQUEZUAUEZHUFZICUGUDZRZRZEUBUEZWBRZU
        HZVRWDUHZUMZUBVSHVPRZUIQWIUIZUABUIAVQFIHVPRSZFEHIUFHWARRZHCUJUDZUDZUHZA
        EFHIDRUKVQWKWOVNPABCDWAWMEFVPHIJVPULZWAULZWMULZLMNOUNUOZUPZAWJUABAVSBSZ
        UQZWHQUBWIWIWFFWCVSIUFHWARZRZFWEXCRZUHXBVRWISZWDWISZUQZUQZWGWCWEFXCURXI
        XDVRXEWDXIWLVRVTHWARZRWNVRXJRXDVRXIWLWNVRXJAWOXAXHAVQWKWOWSUSTZUTXIBCWA
        VREVPFHVSHIJWPWQACVASXAXHMTZAXAXHVBZAHBSXAXHNTZAIBSXAXHOTZXBXFXGVCZAVQX
        AXHWTTZXNAWKXAXHAVQWKWOWSVDTZVEXIBCWAWMVRVPVSHJWPWRXLXMWQXNXPVFVGXIWLWD
        XJRWNWDXJRXEWDXIWLWNWDXJXKUTXIBCWAWDEVPFHVSHIJWPWQXLXMXNXOXBXFXGVHZXQXN
        XRVEXIBCWAWMWDVPVSHJWPWRXLXMWQXNXSVFVGVIVJVKVLAUABCWAQUBEVPGHIJWPWQKMNO
        VMVO $.
    $}

    monsect.n $e |- N = ( Inv ` C ) $.
    monsect.1 $e |- ( ph -> F e. ( X M Y ) ) $.
    monsect.2 $e |- ( ph -> G ( Y S X ) F ) $.
    $( If ` F ` is a monomorphism and ` G ` is a section of ` F ` , then ` G `
       is an inverse of ` F ` and they are both isomorphisms.  This is also
       stated as "a monomorphism which is also a split epimorphism is an
       isomorphism".  (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    monsect $p |- ( ph -> F ( X N Y ) G ) $=
      ( co wbr cop cco cfv ccid wceq chom wcel eqid issect simp3d oveq1d simp2d
      w3a mpbid simp1d catass catlid catrid eqtr4d 3eqtr3d catcocl catidcl moni
      issect2 mpbird isinv mpbir2and ) AEFIJHTUAEFIJDTUAZFEJIDTUAZAVIFEIJUBZICU
      CUDZTTZICUEUDZUDZUFZAEVMIIUBJVLTZTZEVOVQTZUFVPAEFJIUBJVLTTZEVKJVLTZTJVNUD
      ZEWATZVRVSAVTWBEWAAFJICUGUDZTUHZEIJWDTUHZVTWBUFZAVJWEWFWGUNSABCDVLVNFEWDJ
      IKWDUIZVLUIZVNUIZMNPOUJUOZUKULABCVLEFWDEJIJIKWHWINOPOAWEWFWGWKUMZAWEWFWGW
      KUPZPWLUQAWCEVSABCVLVNEWDIJKWHWJNOWIPWLURABCVLVNEWDIJKWHWJNOWIPWLUSUTVAAB
      CVLEVMWDVOGIJIKWHWILNOPORABCVLEFWDIJIKWHWINOPOWLWMVBABCVNWDIKWHWJNOVCVDUO
      ABCDVLVNEFWDIJKWHWIWJMNOPWLWMVEVFSABCDEFHIJKQNOPMVGVH $.
  $}

  ${
    sectepi.b $e |- B = ( Base ` C ) $.
    sectepi.e $e |- E = ( Epi ` C ) $.
    sectepi.s $e |- S = ( Sect ` C ) $.
    sectepi.c $e |- ( ph -> C e. Cat ) $.
    sectepi.x $e |- ( ph -> X e. B ) $.
    sectepi.y $e |- ( ph -> Y e. B ) $.
    ${
      sectepi.1 $e |- ( ph -> F ( X S Y ) G ) $.
      $( If ` F ` is a section of ` G ` , then ` G ` is an epimorphism.  An
         epimorphism that arises from a section is also known as a _split
         epimorphism_.  (Contributed by Mario Carneiro, 3-Jan-2017.) $)
      sectepi $p |- ( ph -> G e. ( Y E X ) ) $=
        ( cfv co eqid ccat coppc cmon csect oppcbas wcel oppccat syl wbr mpbird
        oppcsect sectmon oppcmon eleqtrd ) AGHICUAQZUBQZRIHERABUNUNUCQZGFUOHIBC
        UNUNSZJUDUOSZUPSZACTUEUNTUEMCUNUQUFUGNOAGFHIUPRUHFGHIDRUHPABCDUPGFUNHIJ
        UQMNOLUSUJUIUKACEUOUNHIUQMURKULUM $.
    $}

    episect.n $e |- N = ( Inv ` C ) $.
    episect.1 $e |- ( ph -> F e. ( X E Y ) ) $.
    episect.2 $e |- ( ph -> F ( X S Y ) G ) $.
    $( If ` F ` is an epimorphism and ` F ` is a section of ` G ` , then ` G `
       is an inverse of ` F ` and they are both isomorphisms.  This is also
       stated as "an epimorphism which is also a split monomorphism is an
       isomorphism".  (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    episect $p |- ( ph -> F ( X N Y ) G ) $=
      ( co coppc cfv cinv wbr csect cmon eqid oppcbas ccat wcel oppccat oppcmon
      syl eleqtrrd oppcsect mpbird monsect oppcinv breqd mpbid ) AFGJICUAUBZUCU
      BZTZUDFGIJHTZUDABVAVAUEUBZFGVAUFUBZVBJIBCVAVAUGZKUHVFUGZVEUGZACUIUJVAUIUJ
      NCVAVGUKUMPOVBUGZAFIJETJIVFTRACEVFVAJIVGNVHLULUNAGFIJVETUDFGIJDTUDSABCDVE
      GFVAIJKVGNOPMVIUOUPUQAVCVDFGABCHVBVAJIKVGNPOQVJURUSUT $.
  $}

  ${
    invid.b $e |- B = ( Base ` C ) $.
    invid.i $e |- I = ( Id ` C ) $.
    invid.c $e |- ( ph -> C e. Cat ) $.
    invid.x $e |- ( ph -> X e. B ) $.
    $( The identity is a section of itself.  (Contributed by AV,
       8-Apr-2017.) $)
    sectid $p |- ( ph -> ( I ` X ) ( X ( Sect ` C ) X ) ( I ` X ) ) $=
      ( cfv csect co wbr cop cco wceq chom eqid catidcl catlid issect2 mpbird )
      AEDJZUCEECKJZLMUCUCEENECOJZLLUCPABCUEDUCCQJZEEFUFRZGHIUERZIABCDUFEFUGGHIS
      ZTABCUDUEDUCUCUFEEFUGUHGUDRHIIUIUIUAUB $.

    $( The inverse of the identity is the identity.  (Contributed by AV,
       8-Apr-2017.) $)
    invid $p |- ( ph -> ( I ` X ) ( X ( Inv ` C ) X ) ( I ` X ) ) $=
      ( cfv cinv co wbr csect sectid eqid isinv mpbir2and ) AEDJZSEECKJZLMSSEEC
      NJZLMZUBABCDEFGHIOZUCABCUASSTEEFTPHIIUAPQR $.

    $( The identity is an isomorphism.  Example 3.13 of [Adamek] p. 28.
       (Contributed by AV, 8-Apr-2017.) $)
    idiso $p |- ( ph -> ( I ` X ) e. ( X ( Iso ` C ) X ) ) $=
      ( cfv ciso cinv eqid invid inviso1 ) ABCEDJZPCKJZCLJZEEFRMHIIQMABCDEFGHIN
      O $.

    $( The inverse of the identity is the identity.  Example 3.13 of [Adamek]
       p. 28.  (Contributed by AV, 9-Apr-2017.) $)
    idinv $p |- ( ph -> ( ( X ( Inv ` C ) X ) ` ( I ` X ) ) = ( I ` X ) ) $=
      ( cinv cfv co wfun wbr wceq eqid invfun invid funbrfv sylc ) AEECJKZLZMED
      KZUCUBNUCUBKUCOABCUAEEFUAPHIIQABCDEFGHIRUCUCUBST $.
  $}

  ${
    invisoinv.b $e |- B = ( Base ` C ) $.
    invisoinv.i $e |- I = ( Iso ` C ) $.
    invisoinv.n $e |- N = ( Inv ` C ) $.
    invisoinv.c $e |- ( ph -> C e. Cat ) $.
    invisoinv.x $e |- ( ph -> X e. B ) $.
    invisoinv.y $e |- ( ph -> Y e. B ) $.
    invisoinv.f $e |- ( ph -> F e. ( X I Y ) ) $.
    $( The inverse of an isomorphism ` F ` (which is unique because of ~ invf
       and is therefore denoted by ` ( ( X N Y ) `` F ) ` , see also remark
       3.12 in [Adamek] p. 28) is invers to the isomorphism.  (Contributed by
       AV, 9-Apr-2017.) $)
    invisoinvl $p |- ( ph -> ( ( X N Y ) ` F ) ( Y N X ) F ) $=
      ( co cfv wbr cop eqid ccid cco ciso idiso a1i oveqd eleqtrrd invco isohom
      wceq chom sseldd catlid fveq1d idinv eqtrd oveq2d ffvelrnd catrid 3brtr3d
      cinv invf invsym mpbird ) ADGHFPZQZDHGFPRDVFVERAHCUAQZQZDGHSHCUBQZPPVFVHH
      HFPZQZHHSGVIPZPZDVFVEABCVIDVHEFGHHIKLMNJOVITZNAVHHHCUCQZPHHEPABCVGHIVGTZL
      NUDAEVOHHEVOUJAJUEUFUGUHABCVIVGDCUKQZGHIVQTZVPLMVNNAGHEPZGHVQPDABCVQEGHIV
      RJLMNUIOULUMAVMVFVHVLPVFAVKVHVFVLAVKVHHHCVAQZPZQVHAVHVJWAAFVTHHFVTUJAKUEU
      FUNABCVGHIVPLNUOUPUQABCVIVGVFVQHGIVRVPLNVNMAHGEPZHGVQPVFABCVQEHGIVRJLNMUI
      AVSWBDVEABCEFGHIKLMNJVBOURULUSUPUTABCVFDFHGIKLNMVCVD $.

    $( The inverse of an isomorphism is invers to the isomorphism.
       (Contributed by AV, 9-Apr-2017.) $)
    invisoinvr $p |- ( ph -> F ( X N Y ) ( ( X N Y ) ` F ) ) $=
      ( co cfv wbr invisoinvl invsym mpbird ) ADDGHFPZQZUBRUCDHGFPRABCDEFGHIJKL
      MNOSABCDUCFGHIKLMNTUA $.

    invcoisoid.1 $e |- .1. = ( Id ` C ) $.
    ${
      invcoisoid.o $e |- .o. = ( <. X , Y >. ( comp ` C ) X ) $.
      $( The inverse of an isomorphism composed with the isomorphism is the
         identity.  (Contributed by AV, 5-Apr-2017.) $)
      invcoisoid $p |- ( ph -> ( ( ( X N Y ) ` F ) .o. F ) = ( .1. ` X ) ) $=
        ( co cfv csect wbr wceq invisoinvr eqid isinv simpl syl6bi mpd cop chom
        wa cco isohom sseldd invf ffvelrnd issect2 a1i eqcomd oveqd bitrd mpbid
        eqeq1d ) AEEHIGTZUAZHICUBUAZTUCZVGEJTZHDUAZUDZAEVGVFUCZVIABCEFGHIKLMNOP
        QUEAVMVIVGEIHVHTUCZUMVIABCVHEVGGHIKMNOPVHUFZUGVIVNUHUIUJAVIVGEHIUKHCUNU
        AZTZTZVKUDVLABCVHVPDEVGCULUAZHIKVSUFZVPUFRVONOPAHIFTZHIVSTEABCVSFHIKVTL
        NOPUOQUPAIHFTZIHVSTVGABCVSFIHKVTLNPOUOAWAWBEVFABCFGHIKMNOPLUQQURUPUSAVR
        VJVKAVQJVGEAJVQJVQUDASUTVAVBVEVCVD $.
    $}

    isocoinvid.o $e |- .o. = ( <. Y , X >. ( comp ` C ) Y ) $.
    $( The inverse of an isomorphism composed with the isomorphism is the
       identity.  (Contributed by AV, 10-Apr-2017.) $)
    isocoinvid $p |- ( ph -> ( F .o. ( ( X N Y ) ` F ) ) = ( .1. ` Y ) ) $=
      ( co cfv csect wbr wceq invisoinvl wa eqid isinv simpl syl6bi mpd cop cco
      chom isohom invf ffvelrnd sseldd issect2 eqcomd oveqd eqeq1d bitrd mpbid
      a1i ) AEHIGTZUAZEIHCUBUAZTUCZEVGJTZIDUAZUDZAVGEIHGTUCZVIABCEFGHIKLMNOPQUE
      AVMVIEVGHIVHTUCZUFVIABCVHVGEGIHKMNPOVHUGZUHVIVNUIUJUKAVIEVGIHULICUMUAZTZT
      ZVKUDVLABCVHVPDVGECUNUAZIHKVSUGZVPUGRVONPOAIHFTZIHVSTVGABCVSFIHKVTLNPOUOA
      HIFTZWAEVFABCFGHIKMNOPLUPQUQURAWBHIVSTEABCVSFHIKVTLNOPUOQURUSAVRVJVKAVQJE
      VGAJVQJVQUDASVEUTVAVBVCVD $.
  $}

  ${
    rcaninv.b $e |- B = ( Base ` C ) $.
    rcaninv.n $e |- N = ( Inv ` C ) $.
    rcaninv.c $e |- ( ph -> C e. Cat ) $.
    rcaninv.x $e |- ( ph -> X e. B ) $.
    rcaninv.y $e |- ( ph -> Y e. B ) $.
    rcaninv.z $e |- ( ph -> Z e. B ) $.
    rcaninv.f $e |- ( ph -> F e. ( Y ( Iso ` C ) X ) ) $.
    rcaninv.g $e |- ( ph -> G e. ( Y ( Hom ` C ) Z ) ) $.
    rcaninv.h $e |- ( ph -> H e. ( Y ( Hom ` C ) Z ) ) $.
    rcaninv.1 $e |- R = ( ( Y N X ) ` F ) $.
    rcaninv.o $e |- .o. = ( <. X , Y >. ( comp ` C ) Z ) $.
    $( Right cancellation of an inverse of an isomorphism.  (Contributed by AV,
       5-Apr-2017.) $)
    rcaninv $p |- ( ph -> ( ( G .o. R ) = ( H .o. R ) -> G = H ) ) $=
      ( wceq cfv cop cco ccid chom eqid ciso isohom sseldd invf ffvelrnd catass
      co wa invcoisoid eqcomd oveq2d catrid 3eqtr2rd adantr eqcomi a1i oveq123d
      eqidd simpr eqtrd oveq1d oveqi oveq1i syl5eqel oveq2i 3eqtrd ex ) AFDKUQZ
      GDKUQZUDZFGUDAVTURZFFEJIHUQZUEZIJUFLCUGUEZUQZUQZEJIUFZLWDUQZUQZVSEWHUQZGA
      FWIUDVTAWIFWCEWGJWDUQZUQZJJUFLWDUQZUQFJCUHUEZUEZWMUQFABCWDEWCCUIUEZFLJIJM
      WPUJZWDUJZOQPQAJICUKUEZUQZJIWPUQEABCWPWSJIMWQWSUJZOQPULSUMZAIJWSUQZIJWPUQ
      ZWCABCWPWSIJMWQXAOPQULAWTXCEWBABCWSHJIMNOQPXAUNSUOUMZRTUPAWOWLFWMAWLWOABC
      WNEWSHJIWKMXANOQPSWNUJZWKUJUSZUTVAABCWDWNFWPJLMWQXFOQWRRTVBVCVDWAWFVSEWHW
      AWFVRVSAWFVRUDVTAFFWCDWEKWEKUDAKWEUCVEVFAFVHWCDUDADWCUBVEVFVGVDAVTVIVJVKA
      WJGUDVTAWJGDWEUQZEWHUQZGWOWMUQZGWJXIUDAVSXHEWHKWEGDUCVLVMVFAXIGDEWKUQZWMU
      QZGWLWMUQZXJABCWDEDWPGLJIJMWQWROQPQXBADWCXDUBXEVNRUAUPXLXMUDAXKWLGWMDWCEW
      KUBVMVOVFAWLWOGWMXGVAVPABCWDWNGWPJLMWQXFOQWRRUAVBVPVDVPVQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Isomorphic objects
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
In this subsection, the "is isomorphic to" relation between objects of a
category ` ~=c ` is defined (see ~ df-cic ).  It is shown that this relation is
an equivalence relation, see ~ cicer .
$)

  $c ~=c $.

  $( Extend class notation to include the category isomorphism relation. $)
  ccic $a class ~=c $.

  ${
    $( Function returning the set of isomorphic objects for each category
       ` c ` .  Definition 3.15 of [Adamek] p. 29.  Analogous to the definition
       of the group isomorphism relation ` ~=g ` , see ~ df-gic .  (Contributed
       by AV, 4-Apr-2020.) $)
    df-cic $a |- ~=c = ( c e. Cat |-> ( ( Iso ` c ) supp (/) ) ) $.
  $}

  ${
    $d C c $.
    $( The set of isomorphic objects of the category ` c ` .  (Contributed by
       AV, 4-Apr-2020.) $)
    cicfval $p |- ( C e. Cat -> ( ~=c ` C ) = ( ( Iso ` C ) supp (/) ) ) $=
      ( vc ccat wcel cv ciso cfv c0 csupp co ccic cmpt wceq df-cic fveq2 oveq1d
      cvv a1i adantl id ovexd fvmptd ) ACDZBABEZFGZHIJZAFGZHIJZCKQKBCUFLMUCBNRU
      DAMZUFUHMUCUIUEUGHIUDAFOPSUCTUCUGHIUAUB $.
  $}

  ${
    cic.i $e |- I = ( Iso ` C ) $.
    cic.b $e |- B = ( Base ` C ) $.
    cic.c $e |- ( ph -> C e. Cat ) $.
    cic.x $e |- ( ph -> X e. B ) $.
    cic.y $e |- ( ph -> Y e. B ) $.
    $( The relation "is isomorphic to" for categories.  (Contributed by AV,
       5-Apr-2020.) $)
    brcic $p |- ( ph -> ( X ( ~=c ` C ) Y <-> ( X I Y ) =/= (/) ) ) $=
      ( cfv wbr c0 wcel wne wceq syl a1i cvv ccic ciso csupp ccat cicfval breqd
      co cop wb df-br fveq1d neeq1d df-ov eqcomi cbs cxp fvexd sqxpexg syl6eleq
      wfn opelxp sylanbrc isofn fvn0elsuppb syl3anc 3bitr3rd 3bitrd ) AEFCUALZM
      EFCUBLZNUCUGZMZEFUHZVJOZEFDUGZNPZAVHVJEFACUDOZVHVJQICUERUFVKVMUIAEFVJUJSA
      VLDLZNPVLVILZNPZVOVMAVQVRNAVLDVIDVIQAGSUKULAVQVNNVQVNQAVNVQEFDUMUNSULACUO
      LZVTUPZTOZVLWAOZVIWAUTZVSVMUIAVTTOWBACUOUQVTTURRAEVTOFVTOWCAEBVTJHUSAFBVT
      KHUSEFVTVTVAVBAVPWDICVCRWAVITVLVDVEVFVG $.

    $d I f $.  $d X f $.  $d Y f $.
    $( Objects ` X ` and ` Y ` in a category are isomorphic provided that there
       is an isomorphism ` f : X --> Y ` , see definition 3.15 of [Adamek]
       p. 29.  (Contributed by AV, 4-Apr-2020.) $)
    cic $p |- ( ph -> ( X ( ~=c ` C ) Y <-> E. f f e. ( X I Y ) ) ) $=
      ( ccic cfv wbr co c0 wne cv wcel wex brcic n0 syl6bb ) AFGCMNOFGEPZQRDSUE
      TDUAABCEFGHIJKLUBDUEUCUD $.

    $d F f $.
    cic.f $e |- ( ph -> F e. ( X I Y ) ) $.
    $( Prove that two objects are isomorphic by an explicit isomorphism.
       (Contributed by AV, 4-Apr-2020.) $)
    brcici $p |- ( ph -> X ( ~=c ` C ) Y ) $=
      ( vf ccic cfv wbr cv co wcel wex eleq1 spcegv sylc cic mpbird ) AFGCOPQNR
      ZFGESZTZNUAZADUHTZUKUJMMUIUKNDUHUGDUHUBUCUDABCNEFGHIJKLUEUF $.
  $}

  $( Isomorphism is reflexive.  (Contributed by AV, 5-Apr-2020.) $)
  cicref $p |- ( ( C e. Cat /\ O e. ( Base ` C ) ) -> O ( ~=c ` C ) O ) $=
    ( ccat wcel cbs cfv wa ccid ciso eqid simpl simpr cinv co wbr csect cop cco
    wceq chom catidcl catrid issect2 anbi12d mpbir2and mpbird inviso1 brcici
    isinv ) ACDZBAEFZDZGZUKABAHFZFZAIFZBBUPJZUKJZUJULKZUJULLZUTUMUKAUOUOUPAMFZB
    BURVAJZUSUTUTUQUMUOUOBBVANOUOUOBBAPFZNOZVDGZUMVEUOUOBBQBARFZNNUOSZVGUMUKAVF
    UNUOATFZBBURVHJZUNJZUSUTVFJZUTUMUKAUNVHBURVIVJUSUTUAZUBZVMUMVDVGVDVGUMUKAVC
    VFUNUOUOVHBBURVIVKVJVCJZUSUTUTVLVLUCZVOUDUEUMUKAVCUOUOVABBURVBUSUTUTVNUIUFU
    GUH $.

  ${
    $( Isomorphism implies the left side is an object.  (Contributed by AV,
       5-Apr-2020.) $)
    ciclcl $p |- ( ( C e. Cat /\ R ( ~=c ` C ) S ) -> R e. ( Base ` C ) ) $=
      ( ccat wcel ccic cfv wbr cbs c0 csupp co cicfval breqd cop cxp wne wa cvv
      ciso wfn wb isofn fvex sqxpexg mp1i 0ex a1i df-br elsuppfn syl5bb syl3anc
      w3a opelxp1 adantr syl6bi sylbid imp ) ADEZBCAFGZHZBAIGZEZUSVABCATGZJKLZH
      ZVCUSUTVEBCAMNUSVFBCOZVBVBPZEZVGVDGJQZRZVCUSVDVHUAZVHSEZJSEZVFVKUBAUCVBSE
      VMUSAIUDVBSUEUFVNUSUGUHVFVGVEEVLVMVNUMVKBCVEUIVGVDSSVHJUJUKULVIVCVJBCVBVB
      UNUOUPUQUR $.

    $( Isomorphism implies the right side is an object.  (Contributed by AV,
       5-Apr-2020.) $)
    cicrcl $p |- ( ( C e. Cat /\ R ( ~=c ` C ) S ) -> S e. ( Base ` C ) ) $=
      ( ccat wcel ccic cfv wbr cbs c0 csupp co cicfval breqd cop cxp wne wa cvv
      ciso wfn wb isofn fvex sqxpexg mp1i 0ex a1i df-br elsuppfn syl5bb syl3anc
      w3a opelxp2 adantr syl6bi sylbid imp ) ADEZBCAFGZHZCAIGZEZUSVABCATGZJKLZH
      ZVCUSUTVEBCAMNUSVFBCOZVBVBPZEZVGVDGJQZRZVCUSVDVHUAZVHSEZJSEZVFVKUBAUCVBSE
      VMUSAIUDVBSUEUFVNUSUGUHVFVGVEEVLVMVNUMVKBCVEUIVGVDSSVHJUJUKULVIVCVJBCVBVB
      UNUOUPUQUR $.

    $d C f g $.  $d R f g $.  $d S f g $.
    $( Isomorphism is symmetric.  (Contributed by AV, 5-Apr-2020.) $)
    cicsym $p |- ( ( C e. Cat /\ R ( ~=c ` C ) S ) -> S ( ~=c ` C ) R ) $=
      ( vf vg wcel cfv wbr wa cv co eqid simpl simpr adantl adantr sylbid com12
      wex cdm ccat ccic cbs cicrcl ciclcl ciso cic cinv crn isoval ccnv invsym2
      wi eqcomd dmeqd df-rn syl6eqr eqtrd eleq2d cvv vex elrng mp1i bitrd df-br
      wb cop exbii opeldm brcici ex syl exlimiv syl5bi impancom mp2and ) AUAFZB
      CAUBGZHZICAUCGZFZBVTFZCBVRHZABCUDABCUEVQWAWBIZVSWCVQWDIZVSDJZBCAUFGZKZFZD
      SZWCWEVTADWGBCWGLZVTLZVQWDMZWDWBVQWAWBNOZWDWAVQWAWBMOZUGWJWEWCWIWEWCUMZDW
      EWIWCWEWIEJZWFCBAUHGZKZHZESZWCWEWIWFWSUIZFZXAWEWHXBWFWEWHBCWRKZTZXBWEVTAW
      GWRBCWLWRLZWMWNWOWKUJWEXEWSUKZTXBWEXDXGWEXGXDWEVTAWRCBWLXFWMWOWNULUNUOWSU
      PUQURUSWFUTFXCXAVFWEDVAZEWFWSUTVBVCVDXAWQWFVGWSFZESZWEWCWTXIEWQWFWSVEVHXJ
      WEWCXIWPEXIWQWSTZFZWPWQWFWSEVAXHVIWEXLWCWEXLWQCBWGKZFZWCWEXKXMWQWEXMXKWEV
      TAWGWRCBWLXFWMWOWNWKUJUNUSWEXNWCWEXNIVTAWQWGCBWKWLWEVQXNWMPWEWAXNWOPWEWBX
      NWNPWEXNNVJVKQRVLVMRVNQRVMRQVOVP $.

    $d T f g $.
    $( Isomorphism is transitive.  (Contributed by AV, 5-Apr-2020.) $)
    cictr $p |- ( ( C e. Cat /\ R ( ~=c ` C ) S /\ S ( ~=c ` C ) T )
                  -> R ( ~=c ` C ) T ) $=
      ( vf vg wcel cfv wbr wa cicrcl ex 3impib wi cv co wex eqid simpll adantl
      ccat ccic w3a cbs ciclcl jca anim12d ciso simpl simplr cic simprr anbi12d
      cop cco isoco brcici exlimiv com12 imp sylbid com23 mpd ) AUAGZBCAUBHZIZC
      DVEIZUCBAUDHZGZCVHGZJZDVHGZJZBDVEIZVDVFVGVMVDVFVKVGVLVDVFVKVDVFJVIVJABCUE
      ABCKUFLVDVGVLACDKLUGMVDVFVGVMVNNVDVMVFVGJZVNVDVMVOVNNVDVMJZVOEOZBCAUHHZPG
      ZEQZFOZCDVRPGZFQZJZVNVPVFVTVGWCVPVHAEVRBCVRRZVHRZVDVMUIZVMVIVDVIVJVLSTZVM
      VJVDVIVJVLUJTZUKVPVHAFVRCDWEWFWGWIVDVKVLULZUKUMWDVPVNVTWCVPVNNZVSWCWKNEWC
      VSWKWBVSWKNFWBVSWKWBVSJZVPVNWLVPJZVHAWAVQBCUNDAUOHZPPVRBDWEWFVPVDWLWGTZVP
      VIWLWHTZVPVLWLWJTZWMVHAWNVQWAVRBCDWFWNRWEWOWPVPVJWLWITWQWBVSVPUJWBVSVPSUP
      UQLLURUSURUTUSVALVBMVC $.

    $d C x y z $.  $d f x y $.
    $( Isomorphism is an equivalence relation on objects of a category.  Remark
       3.16 in [Adamek] p. 29.  (Contributed by AV, 5-Apr-2020.) $)
    cicer $p |- ( C e. Cat -> ( ~=c ` C ) Er ( Base ` C ) ) $=
      ( vx vy vz vf ccat wcel cbs cfv ccic wrel c0 cv wne a1i releqd mpbird cvv
      wceq wbr ciso csupp cxp crab cop w3a copab relopab fveq2 neeq1d rabxp wfn
      isofn fvex sqxpexg mp1i 0ex suppvalfn syl3anc cicfval cicsym cictr cicref
      co 3expb ciclcl impbida iserd ) AFGZBCDAHIZAJIZVIVKKAUAIZLUBVDZKZVIVNEMZV
      LIZLNZEVJVJUCZUDZKZVIVTBMZVJGZCMZVJGWAWCUEZVLIZLNZUFZBCUGZKZWIVIWGBCUHOVI
      VSWHVSWHSVIVQWFEBCVJVJVOWDSVPWELVOWDVLUIUJUKOPQVIVMVSVIVLVRULVRRGZLRGZVMV
      SSAUMVJRGWJVIAHUNVJRUOUPWKVIUQOEVLRRVRLURUSPQVIVKVMAUTPQAWAWCVAVIWAWCVKTW
      CDMZVKTWAWLVKTAWAWCWLVBVEVIWBWAWAVKTAWAVCAWAWAVFVGVH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subcategories
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c C_cat $.
  $c |`cat $.
  $c Subcat $.

  $( Extend class notation to include the subset relation for subcategories. $)
  cssc $a class C_cat $.

  $( Extend class notation to include category restriction (which is like
     structure restriction but also allows limiting the collection of
     morphisms). $)
  cresc $a class |`cat $.

  $( Extend class notation to include the collection of subcategories of a
     category. $)
  csubc $a class Subcat $.

  ${
    $d c f g h j s t x y z $.  $d h j s t x H $.  $d h j s t x J $.
    $( Define the subset relation for subcategories.  Despite the name, this is
       not really a "category-aware" definition, which is to say it makes no
       explicit references to homsets or composition; instead this is a
       subset-like relation on the functions that are used as subcategory
       specifications in ~ df-subc , which makes it play an analogous role to
       the subset relation applied to the subgroups of a group.  (Contributed
       by Mario Carneiro, 6-Jan-2017.) $)
    df-ssc $a |- C_cat = { <. h , j >. | E. t ( j Fn ( t X. t ) /\
      E. s e. ~P t h e. X_ x e. ( s X. s ) ~P ( j ` x ) ) } $.

    $( Define the restriction of a category to a given set of arrows.
       (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    df-resc $a |- |`cat = ( c e. _V , h e. _V |->
      ( ( c |`s dom dom h ) sSet <. ( Hom ` ndx ) , h >. ) ) $.

    $( ` ( Subcat `` C ) ` is the set of all the subcategory specifications of
       the category ` C ` .  Like ~ df-subg , this is not actually a collection
       of categories (as in definition 4.1(a) of [Adamek] p. 48), but only sets
       which when given operations from the base category (using ~ df-resc )
       form a category.  All the objects and all the morphisms of the
       subcategory belong to the supercategory.  The identity of an object, the
       domain and the codomain of a morphism are the same in the subcategory
       and the supercategory.  The composition of the subcategory is a
       restriction of the composition of the supercategory.  (Contributed by
       FL, 17-Sep-2009.)  (Revised by Mario Carneiro, 4-Jan-2017.) $)
    df-subc $a |- Subcat = ( c e. Cat |-> { h | ( h C_cat ( Homf ` c ) /\
      [. dom dom h / s ]. A. x e. s ( ( ( Id ` c ) ` x ) e. ( x h x ) /\
        A. y e. s A. z e. s A. f e. ( x h y ) A. g e. ( y h z )
          ( g ( <. x , y >. ( comp ` c ) z ) f ) e. ( x h z ) ) ) } ) $.

    $( The subcategory subset relation is a relation.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    sscrel $p |- Rel C_cat $=
      ( vj vt vh vx vs cv cxp wfn cfv cpw cixp wcel wrex wa wex df-ssc relopabi
      cssc ) AFZBFZTGHCFDEFZUAGDFSIJKLETJMNBOCARDBCAEPQ $.

    $( The subcategory subset relation is a relation.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    brssc $p |- ( H C_cat J <-> E. t ( J Fn ( t X. t ) /\
        E. s e. ~P t H e. X_ x e. ( s X. s ) ~P ( J ` x ) ) ) $=
      ( vj vh cssc cvv wcel wa cv cxp wfn cfv cpw cixp wrex wex wceq wbr sscrel
      wrel brrelex12 mpan xpex fnex mpan2 elex rexlimivw anim12ci exlimiv simpr
      fneq1d simpl fveq1d ixpeq2dv eleq12d rexbidv anbi12d exbidv df-ssc brabga
      vex pweqd pm5.21nii ) CDHUAZCIJZDIJZKZDBLZVKMZNZCAELZVNMZALZDOZPZQZJZEVKP
      ZRZKZBSZHUCVGVJUBCDHUDUEWCVJBVMVIWBVHVMVLIJVIVKVKBVDZWEUFVLIDUGUHVTVHEWAC
      VSUIUJUKULFLZVLNZGLZAVOVPWFOZPZQZJZEWARZKZBSWDGFCDHIIWHCTZWFDTZKZWNWCBWQW
      GVMWMWBWQVLWFDWOWPUMZUNWQWLVTEWAWQWHCWKVSWOWPUOWQAVOWJVRWQWIVQWQVPWFDWRUP
      VEUQURUSUTVAABGFEVBVCVF $.

    $( An analogue of ~ pwex for the subcategory subset relation:  The
       collection of subcategory subsets of a given set ` J ` is a set.
       (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    sscpwex $p |- { h | h C_cat J } e. _V $=
      ( vt vx vs cv cssc wbr cab crn cuni cpw cpm cxp cixp wcel wa cvv wss vex
      cdm co ovex wfn cfv wrex wex brssc wf simpl xpex fnex sylancl rnexg pwexg
      uniexg 4syl wceq fndm adantr syl6eqel ss2ixp fvssunirn mpbi simprr sseldi
      sspwb mprg elixpconst sylib elpwi ad2antrl xpss12 syl2anc sseqtr4d elpm2r
      a1i syl22anc rexlimdvaa imp exlimiv sylbi abssi ssexi ) AFZBGHZAIBJZKZLZB
      UAZMUBZWIWJMUCWFAWKWFBCFZWLNZUDZWEDEFZWONZDFZBUEZLZOZPZEWLLZUFZQZCUGWEWKP
      ZDCWEBEUHXDXECWNXCXEWNXAXEEXBWNWOXBPZXAQZQZWIRPZWJRPWPWIWEUIZWPWJSXEXHBRP
      ZWGRPWHRPXIXHWNWMRPXKWNXGUJWLWLCTZXLUKZWMRBULUMBRUNWGRUPWHRUOUQXHWJWMRWNW
      JWMURXGWMBUSUTZXMVAXHWEDWPWIOZPXJXHWTXOWEWSWISZWTXOSDWPDWPWSWIVBXPWQWPPWR
      WHSXPBWQVCWRWHVGVDVQVHWNXFXAVEVFDWPWIWEATVIVJXHWPWMWJXHWOWLSZXQWPWMSXFXQW
      NXAWOWLVKVLZXRWOWLWOWLVMVNXNVOWIWJWPWERRVPVRVSVTWAWBWCWD $.

    $( Reverse closure for the subcategory predicate.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    subcrcl $p |- ( H e. ( Subcat ` C ) -> C e. Cat ) $=
      ( vc vh vx vg vf vy vz vs csubc cfv wcel cdm ccat cv chomf co wral wa wbr
      cssc ccid cop cco wsbc cab df-subc dmmptss elfvdm sseldi ) BAKLMKNOACODPZ
      CPZQLUBUAEPZUMUCLLUNUNULRMFPGPUNHPZUDIPZUMUELRRUNUPULRMFUOUPULRSGUNUOULRS
      IJPZSHUQSTEUQSJULNNUFTDUGKEHIGFDJCUHUIBAKUJUK $.
  $}

  ${
    $d s t x y H $.  $d s t x y J $.  $d s t ph $.  $d s t S $.  $d t T $.
    sscfn1.1 $e |- ( ph -> H C_cat J ) $.
    ${
      sscfn1.2 $e |- ( ph -> S = dom dom H ) $.
      $( The subcategory subset relation is defined on functions with square
         domain.  (Contributed by Mario Carneiro, 6-Jan-2017.) $)
      sscfn1 $p |- ( ph -> H Fn ( S X. S ) ) $=
        ( vt vx vs cv cxp wfn cfv cpw cixp wcel wrex wa cdm wceq wex cssc brssc
        sylib ixpfn simpr adantr fndm adantl dmeqd dmxpid syl6eq eqtr2d sqxpeqd
        wbr fneq2d mpbid ex syl5 rexlimdvw adantld exlimdv mpd ) ADGJZVDKLZCHIJ
        ZVFKZHJDMNZOPZIVDNZQZRZGUAZCBBKZLZACDUBUOVMEHGCDIUCUDAVLVOGAVKVOVEAVIVO
        IVJVICVGLZAVOHVGVHCUEAVPVOAVPRZVPVOAVPUFVQVGVNCVQVFBVQBCSZSZVFABVSTVPFU
        GVQVSVGSVFVQVRVGVPVRVGTAVGCUHUIUJVFUKULUMUNUPUQURUSUTVAVBVC $.
    $}

    ${
      sscfn2.2 $e |- ( ph -> T = dom dom J ) $.
      $( The subcategory subset relation is defined on functions with square
         domain.  (Contributed by Mario Carneiro, 6-Jan-2017.) $)
      sscfn2 $p |- ( ph -> J Fn ( T X. T ) ) $=
        ( vt vx vy cv cxp wfn cfv cpw cixp wcel wrex wa cdm wceq wex cssc brssc
        wbr sylib simpr adantr adantl dmeqd dmxpid syl6eq eqtr2d sqxpeqd fneq2d
        fndm mpbid ex adantrd exlimdv mpd ) ADGJZVAKZLZCHIJZVDKHJDMNOPIVANQZRZG
        UAZDBBKZLZACDUBUDVGEHGCDIUCUEAVFVIGAVCVIVEAVCVIAVCRZVCVIAVCUFVJVBVHDVJV
        ABVJBDSZSZVAABVLTVCFUGVJVLVBSVAVJVKVBVCVKVBTAVBDUOUHUIVAUJUKULUMUNUPUQU
        RUSUT $.
    $}
  $}

  ${
    $d s t x y z H $.  $d s t x y z J $.  $d s t ph $.  $d s x y z S $.
    $d s t T $.
    isssc.1 $e |- ( ph -> H Fn ( S X. S ) ) $.
    $( Lemma for ~ ssc1 and similar theorems.  (Contributed by Mario Carneiro,
       6-Jan-2017.) $)
    ssclem $p |- ( ph -> ( H e. _V <-> S e. _V ) ) $=
      ( cvv wcel cxp cdm dmxpid wceq wfn fndm syl adantr dmexg adantl syl5eqelr
      wa eqeltrrd sqxpexg fnex syl2an impbida ) ACEFZBEFZAUDRZBBBGZHZEBIUFUGEFZ
      UHEFUFCHZUGEAUJUGJZUDACUGKZUKDUGCLMNUDUJEFACEOPSUGEOMQAULUIUDUEDBETUGECUA
      UBUC $.

    isssc.2 $e |- ( ph -> J Fn ( T X. T ) ) $.
    ${
      isssc.3 $e |- ( ph -> T e. V ) $.
      $( Value of the subcategory subset relation when the arguments are known
         functions.  (Contributed by Mario Carneiro, 6-Jan-2017.) $)
      isssc $p |- ( ph -> ( H C_cat J <-> ( S C_ T /\
        A. x e. S A. y e. S ( x H y ) C_ ( x J y ) ) ) ) $=
        ( vz vs vt cv wcel wceq wa wex cdm cssc wbr cxp cfv cpw cixp wss co wfn
        wrex wral brssc fndm adantl adantr syl eqtr3d dmxpid 3eqtr3g ex sqxpeqd
        dmeqd id fneq2d syl5ibrcom impbid anbi1d exbidv syl5bb wb pweq ceqsexgv
        rexeqdv bitrd df-rex cvv w3a 3anass elixp2 vex xpex fnex mpan2 pm4.71ri
        3bitr4i anbi2d an12 syl6bb wi exsimpl isset sylibr ssexg expcom adantrd
        a1i elpw sseq1 raleqdv fvex fveq2 df-ov syl6eqr sseq12d ralxp pm5.21ndd
        cop anbi12d 3bitrd ) AFGUAUBZFLMOZXKUCZLOZGUDZUEZUFPZMEUEZUJZXKDQZXKXQP
        ZXMFUDZXOPZLXLUKZRZRZMSZDEUGZBOZCOZFUHZYHYIGUHZUGZCDUKBDUKZRZAXJNOZEQZX
        PMYOUEZUJZRZNSZXRXJGYOYOUCZUIZYRRZNSAYTLNFGMULAUUCYSNAUUBYPYRAUUBYPAUUB
        YPAUUBRZUUATEEUCZTYOEUUDUUAUUEUUDGTZUUAUUEUUBUUFUUAQAUUAGUMUNUUDGUUEUIZ
        UUFUUEQAUUGUUBJUOUUEGUMUPUQVBYOUREURUSUTAUUBYPUUGJYPUUAUUEGYPYOEYPVCVAV
        DVEVFVGVHVIAEHPZYTXRVJKYRXRNEHYPXPMYQXQYOEVKVMVLUPVNXRXTXPRZMSAYFXPMXQV
        OAUUIYEMAUUIXTXSYCRZRYEAXPUUJXTXPFXLUIZYCRZAUUJFVPPZUUKYCVQUUMUULRXPUUL
        UUMUUKYCVRLXLXOFVSUULUUMUUKUUMYCUUKXLVPPUUMXKXKMVTZUUNWAXLVPFWBWCUOWDWE
        AUUKXSYCAUUKXSAUUKXSAUUKRZXLTDDUCZTXKDUUOXLUUPUUOFTZXLUUPUUKUUQXLQAXLFU
        MUNUUOFUUPUIZUUQUUPQAUURUUKIUOUUPFUMUPUQVBXKURDURUSUTAUUKXSUURIXSXLUUPF
        XSXKDXSVCVAZVDVEVFVGVIWFXTXSYCWGWHVHVIADVPPZYFYNYFUUTWIAYFXSMSUUTXSYDMW
        JMDWKWLWPAYGUUTYMAUUHYGUUTWIKYGUUHUUTDEHWMWNUPWOUUTYFYNVJWIAYDYNMDVPXSX
        TYGYCYMXTXKEUGXSYGXKEUUNWQXKDEWRVIXSYCYBLUUPUKYMXSYBLXLUUPUUSWSYBYLLBCD
        DYBYAXNUGXMYHYIXGZQZYLYAXNXMFWTWQUVBYAYJXNYKUVBYAUVAFUDYJXMUVAFXAYHYIFX
        BXCUVBXNUVAGUDYKXMUVAGXAYHYIGXBXCXDVIXEWHXHVLWPXFXI $.
    $}

    ssc1.3 $e |- ( ph -> H C_cat J ) $.
    $( Infer subset relation on objects from the subcategory subset relation.
       (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    ssc1 $p |- ( ph -> S C_ T ) $=
      ( vx vy wss cv co wral cssc wbr wa cvv wcel mpbid sscrel brrelex2i ssclem
      syl isssc simpld ) ABCKZILZJLZDMUHUIEMKJBNIBNZADEOPZUGUJQHAIJBCDERFGAERSZ
      CRSAUKULHDEOUAUBUDACEGUCTUETUF $.
  $}

  ${
    $d x y H $.  $d x y J $.  $d x y S $.  $d x y X $.  $d y Y $.
    ssc2.1 $e |- ( ph -> H Fn ( S X. S ) ) $.
    ssc2.2 $e |- ( ph -> H C_cat J ) $.
    ssc2.3 $e |- ( ph -> X e. S ) $.
    ssc2.4 $e |- ( ph -> Y e. S ) $.
    $( Infer subset relation on morphisms from the subcategory subset relation.
       (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    ssc2 $p |- ( ph -> ( X H Y ) C_ ( X J Y ) ) $=
      ( vx vy wcel cv co wss wral cdm cssc cvv wa eqidd sscfn2 sscrel brrelex2i
      dmexg 4syl isssc mpbid simprd wceq oveq1 sseq12d oveq2 rspc2va syl21anc
      wbr ) AEBMFBMKNZLNZCOZURUSDOZPZLBQKBQZEFCOZEFDOZPZIJABDRZRZPZVCACDSUQZVIV
      CUAHAKLBVHCDTGAVHCDHAVHUBUCAVJDTMVGTMVHTMHCDSUDUEDTUFVGTUFUGUHUIUJVBVFEUS
      COZEUSDOZPKLEFBBUREUKUTVKVAVLUREUSCULUREUSDULUMUSFUKVKVDVLVEUSFECUNUSFEDU
      NUMUOUP $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y H $.  $d x y S $.
    $d x y T $.
    $( Any function restricted to a square domain is a subcategory subset of
       the original.  (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    sscres $p |- ( ( H Fn ( S X. S ) /\ S e. V ) ->
      ( H |` ( T X. T ) ) C_cat H ) $=
      ( vx vy cxp wfn wcel wa cres cin wss cv co wral inss1 wceq simpl sseldi
      cssc wbr inss2 ovresd eqimss rgen2a pm3.2i fnssres sylancl resres fnresdm
      simpr syl adantr reseq1d syl5eqr inxp a1i fneq12d mpbid isssc mpbiri ) CA
      AGZHZADIZJZCBBGZKZCUAUBABLZAMZENZFNZVHOZVKVLCOZMZFVIPEVIPZJVJVPABQVOEFVIV
      KVIIZVLVIIZJZVMVNRVOVSVKVLCBVSVIBVKABUCZVQVRSTVSVIBVLVTVQVRULTUDVMVNUEUMU
      FUGVFEFVIAVHCDVFCVCVGLZKZWAHZVHVIVIGZHVFVDWAVCMWCVDVESZVCVGQVCWACUHUIVFWA
      WDWBVHVFWBCVCKZVGKVHCVCVGUJVFWFCVGVDWFCRVEVCCUKUNUOUPWAWDRVFAABBUQURUSUTW
      EVDVEULVAVB $.

    $( The subcategory subset relation is reflexive.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    sscid $p |- ( ( H Fn ( S X. S ) /\ S e. V ) -> H C_cat H ) $=
      ( cxp wfn wcel wa cres cssc wceq fnresdm adantr sscres eqbrtrrd ) BAADZEZ
      ACFZGBOHZBBIPRBJQOBKLAABCMN $.

    $( The subcategory subset relation is transitive.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    ssctr $p |- ( ( A C_cat B /\ B C_cat C ) -> A C_cat C ) $=
      ( vx vy cssc wbr wa cdm wss cv co wral eqidd sscfn2 ssc1 sstrd adantr cvv
      wcel simpl sscfn1 simpr cxp wfn simprl simprr sseldd ralrimivva brrelex2i
      ssc2 sscrel adantl dmexg 3syl isssc mpbir2and ) ABFGZBCFGZHZACFGAIIZCIZIZ
      JDKZEKZALZVDVECLZJZEVAMDVAMUTVABIIZVCUTVAVIABUTVAABURUSUAZUTVANUBZUTVIABV
      JUTVINOZVJPZUTVIVCBCVLUTVCBCURUSUCZUTVCNOZVNPQUTVHDEVAVAUTVDVATZVEVATZHZH
      ZVFVDVEBLVGVSVAABVDVEUTAVAVAUDUEVRVKRUTURVRVJRUTVPVQUFZUTVPVQUGZUKVSVIBCV
      DVEUTBVIVIUDUEVRVLRUTUSVRVNRVSVAVIVDUTVAVIJVRVMRZVTUHVSVAVIVEWBWAUHUKQUIU
      TDEVAVCACSVKVOUTCSTZVBSTVCSTUSWCURBCFULUJUMCSUNVBSUNUOUPUQ $.

    $( The subcategory subset relation is antisymmetric.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    ssceq $p |- ( ( A C_cat B /\ B C_cat A ) -> A = B ) $=
      ( vx vy cssc wbr wa wceq cdm cxp cv wral eqidd sscfn1 ssc1 eqssd wcel wfn
      co adantr simpl simpr sqxpeqd simprl simprr ssc2 wss sseldd ralrimivva wb
      eqfnov syl2anc mpbir2and ) ABEFZBAEFZGZABHZAIIZURJZBIIZUTJZHZCKZDKZASZVCV
      DBSZHZDURLCURLZUPURUTUPURUTUPURUTABUPURABUNUOUAZUPURMNZUPUTBAUNUOUBZUPUTM
      NZVIOZUPUTURBAVLVJVKOPUCUPVGCDURURUPVCURQZVDURQZGZGZVEVFVQURABVCVDUPAUSRZ
      VPVJTUPUNVPVITUPVNVOUDZUPVNVOUEZUFVQUTBAVCVDUPBVARZVPVLTUPUOVPVKTVQURUTVC
      UPURUTUGVPVMTZVSUHVQURUTVDWBVTUHUFPUIUPVRWAUQVBVHGUJVJVLCDURURUTUTABUKULU
      M $.
  $}

  ${
    $d c h C $.  $d c h H $.
    rescval.1 $e |- D = ( C |`cat H ) $.
    $( Value of the category restriction.  (Contributed by Mario Carneiro,
       4-Jan-2017.) $)
    rescval $p |- ( ( C e. V /\ H e. W ) -> D =
      ( ( C |`s dom dom H ) sSet <. ( Hom ` ndx ) , H >. ) ) $=
      ( vc vh wcel wa cresc co cdm cress cop csts cvv wceq elex cv cnx chom cfv
      simpl simpr dmeqd oveq12d opeq2d df-resc ovex ovmpt2a syl2an syl5eq ) ADI
      ZCEIZJBACKLZACMZMZNLZUAUBUCZCOZPLZFUNAQICQIUPVBRUOADSCESGHACQQGTZHTZMZMZN
      LZUTVDOZPLVBKVCARZVDCRZJZVGUSVHVAPVKVCAVFURNVIVJUDVKVEUQVKVDCVIVJUEZUFUFU
      GVKVDCUTVLUHUGHGUIUSVAPUJUKULUM $.

    rescval2.1 $e |- ( ph -> C e. V ) $.
    rescval2.2 $e |- ( ph -> S e. W ) $.
    rescval2.3 $e |- ( ph -> H Fn ( S X. S ) ) $.
    $( Value of the category restriction.  (Contributed by Mario Carneiro,
       4-Jan-2017.) $)
    rescval2 $p |- ( ph ->
      D = ( ( C |`s S ) sSet <. ( Hom ` ndx ) , H >. ) ) $=
      ( cdm cress co cnx csts wcel cvv wceq syl2anc chom cfv cop cxp xpexg fnex
      wfn rescval fndm syl dmeqd dmxpid syl6eq oveq2d oveq1d eqtrd ) ACBELZLZMN
      ZOUAUBEUCZPNZBDMNZUTPNABFQERQZCVASIAEDDUDZUGZVDRQZVCKADGQZVGVFJJDDGGUETVD
      REUFTBCEFRHUHTAUSVBUTPAURDBMAURVDLDAUQVDAVEUQVDSKVDEUIUJUKDULUMUNUOUP $.
  $}

  ${
    $d x y D $.
    rescbas.d $e |- D = ( C |`cat H ) $.
    rescbas.b $e |- B = ( Base ` C ) $.
    rescbas.c $e |- ( ph -> C e. V ) $.
    rescbas.h $e |- ( ph -> H Fn ( S X. S ) ) $.
    rescbas.s $e |- ( ph -> S C_ B ) $.
    $( Base set of the category restriction.  (Contributed by Mario Carneiro,
       4-Jan-2017.) $)
    rescbas $p |- ( ph -> S = ( Base ` D ) ) $=
      ( co cbs cfv cnx wne c1 c4 cvv chom cop csts baseid cdc 1re 1nn 4nn0 1nn0
      cress 1lt10 declti ltneii basendx neeq12i mpbir setsnid wss wceq ressbas2
      homndx eqid syl wcel fvex eqeltri ssex rescval2 fveq2d 3eqtr4a ) ACEUJMZN
      OZVKPUAOZFUBUCMZNOEDNOFVMNVKUDPNOZVMQRRSUEZQRVPUFRSRUGUHUIUKULUMVORVMVPUN
      VAUOUPUQAEBURZEVLUSLEBVKCVKVBIUTVCADVNNACDEFGTHJAVQETVDLEBBCNOTICNVEVFVGV
      CKVHVIVJ $.

    $( Hom-sets of the category restriction.  (Contributed by Mario Carneiro,
       4-Jan-2017.) $)
    reschom $p |- ( ph -> H = ( Hom ` D ) ) $=
      ( cress co chom cfv cvv wcel cbs syl2anc cnx cop csts cxp wfn wss eqeltri
      wceq ovex fvex ssex syl xpexg homid setsid sylancr rescval2 fveq2d eqtr4d
      fnex ) AFCEMNZUAOPFUBUCNZOPZDOPAVAQRFQRZFVCUHCEMUIAFEEUDZUEVEQRZVDKAEQRZV
      GVFAEBUFVGLEBBCSPQICSUJUGUKULZVHEEQQUMTVEQFUTTQFOQVAUNUOUPADVBOACDEFGQHJV
      HKUQURUS $.

    $( Hom-sets of the category restriction.  (Contributed by Mario Carneiro,
       4-Jan-2017.) $)
    reschomf $p |- ( ph -> H = ( Homf ` D ) ) $=
      ( vx vy cbs cfv cv cxp wfn eqid chom reschom wceq rescbas sqxpeqd fneq12d
      co cmpt2 chomf mpbid fnov sylib eqtrd homffval syl6eqr ) AFMNDOPZUPMQNQDU
      APZUGUHZDUIPZAFUQURABCDEFGHIJKLUBZAUQUPUPRZSZUQURUCAFEERZSVBKAVCVAFUQUTAE
      UPABCDEFGHIJKLUDUEUFUJMNUPUPUQUKULUMMNUPDUSUQUSTUPTUQTUNUO $.

    rescco.o $e |- .x. = ( comp ` C ) $.
    $( Composition in the category restriction.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    rescco $p |- ( ph -> .x. = ( comp ` D ) ) $=
      ( co cco cfv c1 c4 cvv cress cnx chom cop csts ccoid wne cdc 1nn0 decnncl
      c5 4nn nnrei 4nn0 5nn 4lt5 declt gtneii ccondx neeq12i mpbir setsnid wcel
      homndx wceq wss cbs fvex eqeltri ssex eqid ressco rescval2 fveq2d 3eqtr4a
      syl ) ACEUAOZPQZVQUBUCQZGUDUEOZPQFDPQGVSPVQUFUBPQZVSUGRUKUHZRSUHZUGWCWBWC
      RSUIULUJUMRSUKUIUNUOUPUQURWAWBVSWCUSVDUTVAVBAETVCZFVRVEAEBVFWDMEBBCVGQTJC
      VGVHVIVJVPZECVQFTVQVKNVLVPADVTPACDEGHTIKWELVMVNVO $.
  $}

  ${
    rescabs.c $e |- ( ph -> C e. V ) $.
    rescabs.h $e |- ( ph -> H Fn ( S X. S ) ) $.
    rescabs.j $e |- ( ph -> J Fn ( T X. T ) ) $.
    rescabs.s $e |- ( ph -> S e. W ) $.
    rescabs.t $e |- ( ph -> T C_ S ) $.
    $( Restriction absorption law.  (Contributed by Mario Carneiro,
       6-Jan-2017.) $)
    rescabs $p |- ( ph -> ( ( C |`cat H ) |`cat J ) = ( C |`cat J ) ) $=
      ( cress co csts cvv wceq wcel adantr cnx chom cfv cop cresc eqid rescval2
      ovexd ssexd cbs wss wa simpr baseid wne c1 c4 cdc 1re 1nn 4nn0 1nn0 1lt10
      declti ltneii basendx homndx neeq12i mpbir setsnid ressid2 syl3anc oveq1d
      ovex cxp wfn xpexg syl2anc setsabs sylancr cin ressbas syl sseq1d biimpar
      fnex inss2 a1i ssind ssrin eqssd oveq2d ressinbas 3eqtr4d 3eqtrd ressval2
      wn necomi fvex inex2 setscom syl22anc ressabs eqtr3d eqtrd pm2.61dan ) AB
      CNOZUAUBUCZEUDZPOZFUEOZBDNOZXHFUDZPOZBEUEOZFUEOBFUEOZAXKXJDNOZXMPOZXNAXJX
      KDFQQXKUFAXGXIPUHADCHLMUIZKUGAXGUJUCZDUKZXRXNRAYAULZXRXJXMPOZXGXMPOZXNYBX
      QXJXMPYBYAXJQSZDQSZXQXJRAYAUMYBXGXIPUHAYFYAXSTZDXTXQXJQQXQUFZEXHUJXGUNUAU
      JUCZXHUOUPUPUQURZUOUPYJUSUPUQUPUTVAVBVCVDVEYIUPXHYJVFVGVHVIZVJZVKVLVMYBXG
      QSZFQSZYCYDRBCNVNAYNYAAFDDVOZVPYOQSZYNKAYFYFYPXSXSDDQQVQVRYOQFWFVRZTXHEFX
      GQQVSVTYBXGXLXMPYBBCBUJUCZWAZNOZBDYRWAZNOZXGXLYBYSUUABNYBYSUUAYBYSDYRAYSD
      UKYAAYSXTDACHSZYSXTRLCYRXGHBXGUFYRUFZWBWCWDWEYSYRUKYBCYRWGWHWIYBDCUKZUUAY
      SUKAUUEYAMTDCYRWJWCWKWLYBUUCXGYTRAUUCYALTCYRBHUUDWMWCYBYFXLUUBRYGDYRBQUUD
      WMWCWNVMWOAYAWQZULZXRXLXIPOZXMPOZXNUUGXQUUHXMPUUGXQXJYIDXTWAZUDZPOZXGUUKP
      OZXIPOZUUHUUGUUFYEYFXQUULRAUUFUMZUUGXGXIPUHAYFUUFXSTZDXTXQXJQQYHYLWPVLUUG
      YMXHYIUOZEQSZUUJQSZUULUUNRUUGBCNUHZUUQUUGYIXHYKWRWHAUURUUFAECCVOZVPUVAQSZ
      UURJAUUCUUCUVBLLCCHHVQVRUVAQEWFVRTUUSUUGXTDXGUJWSWTWHXHYIEUUJXGQQQUAUBWSU
      AUJWSXAXBUUGUUMXLXIPUUGXGDNOZUUMXLUUGUUFYMYFUVCUUMRUUOUUTUUPDXTUVCXGQQUVC
      UFXTUFWPVLUUGUUCUUEUVCXLRAUUCUUFLTAUUEUUFMTCDBHXCVRXDVMWOVMUUGXLQSYNUUIXN
      RBDNVNAYNUUFYQTXHEFXLQQVSVTXEXFXEAXOXJFUEABXOCEGHXOUFILJUGVMABXPDFGQXPUFI
      XSKUGWN $.
  $}

  ${
    rescabs2.c $e |- ( ph -> C e. V ) $.
    rescabs2.j $e |- ( ph -> J Fn ( T X. T ) ) $.
    rescabs2.s $e |- ( ph -> S e. W ) $.
    rescabs2.t $e |- ( ph -> T C_ S ) $.
    $( Restriction absorption law.  (Contributed by Mario Carneiro,
       6-Jan-2017.) $)
    rescabs2 $p |- ( ph -> ( ( C |`s S ) |`cat J ) = ( C |`cat J ) ) $=
      ( cress co cnx chom csts cresc cvv eqid rescval2 cfv cop wcel wss ressabs
      wceq syl2anc oveq1d ovexd ssexd 3eqtr4d ) ABCLMZDLMZNOUAEUBZPMBDLMZUNPMUL
      EQMZBEQMZAUMUOUNPACGUCDCUDUMUOUFJKCDBGUEUGUHAULUPDERRUPSABCLUIADCGJKUJZIT
      ABUQDEFRUQSHURITUK $.
  $}

  ${
    $d c f g j s x y z C $.  $d c f g j s x y z J $.  $d c f g j s x y z S $.
    $d c j s .1. $.  $d c j H $.  $d c j s .x. $.
    issubc.h $e |- H = ( Homf ` C ) $.
    issubc.i $e |- .1. = ( Id ` C ) $.
    issubc.o $e |- .x. = ( comp ` C ) $.
    issubc.c $e |- ( ph -> C e. Cat ) $.
    ${
      issubc.s $e |- ( ph -> S = dom dom J ) $.
      $( Elementhood in the set of subcategories.  (Contributed by Mario
         Carneiro, 4-Jan-2017.) $)
      issubc $p |- ( ph -> ( J e. ( Subcat ` C ) <-> ( J C_cat H /\
         A. x e. S ( ( .1. ` x ) e. ( x J x ) /\ A. y e. S A. z e. S
          A. f e. ( x J y ) A. g e. ( y J z )
            ( g ( <. x , y >. .x. z ) f ) e. ( x J z ) ) ) ) ) $=
        ( vj wcel co vc vs ccat cdm wceq csubc cfv cssc wbr cv wral wa wb chomf
        cop ccid cco wsbc cab csb cvv simpl sscpwex ss2abi ssexi df-subc fvmpts
        csbex syl2anc eleq2d sbcel2 wi elex sscrel brrelexi adantr df-sbc simpr
        a1i fveq2d syl6eqr breq12d vex dmeqd simpllr eqtr4d fveq1d simplr oveqd
        dmex eleq12d raleqbidv anbi12d sbcied2 adantlr sbcied syl5bbr pm5.21ndd
        ex 3bitr2d ) AEUCSZFLUDZUDZUEZLEUFUGZSZLKUHUIZBUJZHUGZXHXHLTZSZJUJZIUJZ
        XHCUJZUOZDUJZGTZTZXHXPLTZSZJXNXPLTZUKZIXHXNLTZUKZDFUKZCFUKZULZBFUKZULZU
        MPQXAXDULZXFLUAERUJZUAUJZUNUGZUHUIZXHYLUPUGZUGZXHXHYKTZSZXLXMXOXPYLUQUG
        ZTZTZXHXPYKTZSZJXNXPYKTZUKZIXHXNYKTZUKZDUBUJZUKZCUUHUKZULZBUUHUKZUBYKUD
        ZUDZURZULZRUSZUTZSZLUUQSZUAEURZYIYJXEUURLYJXAUURVASZXEUURUEXAXDVBZUVBYJ
        UAEUUQUUQYNRUSRYMVCUUPYNRYNUUOVBVDVEVHVSUAEUUQUCUFVABCDIJRUBUAVFVGVIVJU
        VAUUSUMYJUAELUUQVKVSYJUUTYIUAEUCUVCYJYLEUEZULZLVASZUUTYIUUTUVFVLUVELUUQ
        VMVSYIUVFVLUVEXGUVFYHLKUHVNVOVPVSUVEUVFUUTYIUMUUTUUPRLURUVEUVFULZYIUUPR
        LVQUVGUUPYIRLVAUVEUVFVRUVEYKLUEZUUPYIUMUVFUVEUVHULZYNXGUUOYHUVIYKLYMKUH
        UVEUVHVRZUVEYMKUEUVHUVEYMEUNUGKUVEYLEUNYJUVDVRVTMWAVPWBUVIUULYHUBUUNFVA
        UUNVASUVIUUMYKRWCWJWJVSUVIUUNXCFUVIUUMXBUVIYKLUVJWDWDXAXDUVDUVHWEWFUVIU
        UHFUEZULZUUKYGBUUHFUVIUVKVRZUVLYRXKUUJYFUVLYPXIYQXJUVLXHYOHUVLYOEUPUGHU
        VLYLEUPYJUVDUVHUVKWEZVTNWAWGUVLYKLXHXHUVEUVHUVKWHZWIWKUVLUUIYECUUHFUVMU
        VLUUGYDDUUHFUVMUVLUUEYBIUUFYCUVLYKLXHXNUVOWIUVLUUCXTJUUDYAUVLYKLXNXPUVO
        WIUVLUUAXRUUBXSUVLYTXQXLXMUVLYSGXOXPUVLYSEUQUGGUVLYLEUQUVNVTOWAWIWIUVLY
        KLXHXPUVOWIWKWLWLWLWLWMWLWNWMWOWPWQWSWRWPWTVI $.
    $}

    issubc2.a $e |- ( ph -> J Fn ( S X. S ) ) $.
    $( Elementhood in the set of subcategories.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    issubc2 $p |- ( ph -> ( J e. ( Subcat ` C ) <-> ( J C_cat H /\ A. x e. S
      ( ( .1. ` x ) e. ( x J x ) /\ A. y e. S A. z e. S A. f e. ( x J y )
        A. g e. ( y J z ) ( g ( <. x , y >. .x. z ) f ) e. ( x J z ) ) ) ) ) $=
      ( cdm cxp wfn wceq fndm syl dmeqd dmxpid syl6req issubc ) ABCDEFGHIJKLMNO
      PALRZRFFSZRFAUHUIALUITUHUIUAQUILUBUCUDFUEUFUG $.
  $}

  ${
    $d f g x y z C $.
    $( For any category ` C ` , the empty set is a subcategory subset of
       ` C ` .  (Contributed by AV, 23-Apr-2020.) $)
    0ssc $p |- ( C e. Cat -> (/) C_cat ( Homf ` C ) ) $=
      ( vx vy ccat wcel c0 chomf cfv cssc wbr cbs wss wral 0ss a1i cxp wfn eqid
      cv co ral0 cvv wf ffn ax-mp xp0 fneq2i mpbir homffn fvexd isssc mpbir2and
      f0 ) ADEZFAGHZIJFAKHZLZBSZCSZFTURUSUOTLCFMZBFMZUQUNUPNOVAUNUTBUAOUNBCFUPF
      UOUBFFFPZQZUNVCFFQZFFFUCVDFUMFFFUDUEVBFFFUFUGUHOUOUPUPPQUNUPAUOUORUPRUIOU
      NAKUJUKUL $.

    $( For any category ` C ` , the empty set is a (full) subcategory of
       ` C ` , see example 4.3(1.a) in [Adamek] p. 48.  (Contributed by AV,
       23-Apr-2020.) $)
    0subcat $p |- ( C e. Cat -> (/) e. ( Subcat ` C ) ) $=
      ( vx vg vf vy vz ccat wcel c0 csubc cfv chomf cssc wbr cv co wral a1i wfn
      eqid ccid cop cco wa 0ssc id cxp wf f0 ffn ax-mp 0xp fneq2i mpbir issubc2
      ral0 mpbir2and ) AGHZIAJKHIALKZMNBOZAUAKZKUTUTIPHCODOUTEOZUBFOZAUCKZPPUTV
      CIPHCVBVCIPQDUTVBIPQFIQEIQUDZBIQZAUEVFURVEBUPRURBEFAIVDVADCUSIUSTVATVDTUR
      UFIIIUGZSZURVHIISZIIIUHVIIUIIIIUJUKVGIIIULUMUNRUOUQ $.

    $( For any category ` C ` , ` C ` itself is a (full) subcategory of ` C ` ,
       see example 4.3(1.b) in [Adamek] p. 48.  (Contributed by AV,
       23-Apr-2020.) $)
    catsubcat $p |- ( C e. Cat -> ( Homf ` C ) e. ( Subcat ` C ) ) $=
      ( vx vg vf vy vz wcel cfv cv co wral cbs wss ssid ralrimivva eqid homfval
      wa a1i adantr ccat chomf csubc cssc wbr ccid cop cco cvv cxp homffn fvexd
      wfn isssc mpbir2and simpl simpr catidcl eleqtrrd adantl wi eleq2d biimpcd
      chom impcom biimpd adantld imp catcocl wceq jca ralrimiva id issubc2 ) AU
      AGZAUBHZAUCHGVPVPUDUEZBIZAUFHZHZVRVRVPJZGZCIZDIZVREIZUGFIZAUHHZJJZVRWFVPJ
      ZGZCWEWFVPJZKDVRWEVPJZKZFALHZKEWNKZRZBWNKVOVQWNWNMZWLWLMZEWNKBWNKWQVOWNNS
      VOWRBEWNWNWRVOVRWNGZWEWNGZRRWLNSOVOBEWNWNVPVPUIVPWNWNUJUMVOWNAVPVPPZWNPZU
      KSZXCVOALULUNUOVOWPBWNVOWSRZWBWOXDVTVRVRAVDHZJWAXDWNAVSXEVRXBXEPZVSPZVOWS
      UPZVOWSUQZURXDWNAVPXEVRVRXAXBXFXIXIQUSXDWMEFWNWNXDWTWFWNGZRZRZWJDCWLWKXLW
      DWLGZWCWKGZRZRZWHVRWFXEJZWIXPWNAWGWDWCXEVRWEWFXBXFWGPZXLVOXOXDVOXKXHTTXLW
      SXOXDWSXKXITZTXLWTXOXKWTXDWTXJUPUTZTXLXJXOXKXJXDWTXJUQUTZTXOXLWDVRWEXEJZG
      ZXMXLYCVAXNXLXMYCXLWLYBWDXLWNAVPXEVRWEXAXBXFXSXTQVBVCTVEXLXOWCWEWFXEJZGZX
      LXNYEXMXLXNYEXLWKYDWCXLWNAVPXEWEWFXAXBXFXTYAQVBVFVGVHVIXLWIXQVJXOXLWNAVPX
      EVRWFXAXBXFXSYAQTUSOOVKVLVOBEFAWNWGVSDCVPVPXAXGXRVOVMXCVNUO $.
  $}

  ${
    $d f g x y z C $.  $d f g x y z J $.  $d f g x y z ph $.
    subcixp.1 $e |- ( ph -> J e. ( Subcat ` C ) ) $.
    ${
      subcssc.h $e |- H = ( Homf ` C ) $.
      $( An element in the set of subcategories is a subset of the category.
         (Contributed by Mario Carneiro, 6-Jan-2017.) $)
      subcssc $p |- ( ph -> J C_cat H ) $=
        ( vx vg vf vy vz cssc cv cfv co wcel wral cdm wa eqid wbr cop cco csubc
        ccid ccat subcrcl syl eqidd issubc mpbid simpld ) ADCLUAZGMZBUENZNUNUND
        OPHMIMUNJMZUBKMZBUCNZOOUNUQDOPHUPUQDOQIUNUPDOQKDRRZQJUSQSGUSQZADBUDNPZU
        MUTSEAGJKBUSURUOIHCDFUOTURTAVABUFPEBDUGUHAUSUIUJUKUL $.
    $}

    subcfn.2 $e |- ( ph -> S = dom dom J ) $.
    $( An element in the set of subcategories is a binary function.
       (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    subcfn $p |- ( ph -> J Fn ( S X. S ) ) $=
      ( chomf cfv eqid subcssc sscfn1 ) ACDBGHZABLDELIJFK $.
  $}

  ${
    subcss1.1 $e |- ( ph -> J e. ( Subcat ` C ) ) $.
    subcss1.2 $e |- ( ph -> J Fn ( S X. S ) ) $.
    ${
      subcss1.b $e |- B = ( Base ` C ) $.
      $( The objects of a subcategory are a subset of the objects of the
         original.  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
      subcss1 $p |- ( ph -> S C_ B ) $=
        ( chomf cfv cxp wfn eqid homffn a1i subcssc ssc1 ) ADBECIJZGRBBKLABCRRM
        ZHNOACREFSPQ $.
    $}

    ${
      subcss2.h $e |- H = ( Hom ` C ) $.
      subcss2.x $e |- ( ph -> X e. S ) $.
      subcss2.y $e |- ( ph -> Y e. S ) $.
      $( The morphisms of a subcategory are a subset of the morphisms of the
         original.  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
      subcss2 $p |- ( ph -> ( X J Y ) C_ ( X H Y ) ) $=
        ( co chomf cfv eqid subcssc ssc2 cbs sseldd subcss1 homfval sseqtrd ) A
        FGEMFGBNOZMFGDMACEUDFGIABUDEHUDPZQKLRABSOZBUDDFGUEUFPZJACUFFAUFBCEHIUGU
        AZKTACUFGUHLTUBUC $.
    $}
  $}

  ${
    $d f g x y z C $.  $d f g x y z F $.  $d f g x y z G $.  $d f g x y z ph $.
    $d f g x y z J $.  $d f g x y z S $.  $d f g x y z X $.  $d f g x y z Y $.
    $d x .1. $.  $d f g x y z .x. $.  $d f g x y z Z $.
    subcidcl.j $e |- ( ph -> J e. ( Subcat ` C ) ) $.
    subcidcl.2 $e |- ( ph -> J Fn ( S X. S ) ) $.
    subcidcl.x $e |- ( ph -> X e. S ) $.
    ${
      subcidcl.1 $e |- .1. = ( Id ` C ) $.
      $( The identity of the original category is contained in each
         subcategory.  (Contributed by Mario Carneiro, 4-Jan-2017.) $)
      subcidcl $p |- ( ph -> ( .1. ` X ) e. ( X J X ) ) $=
        ( vx vg vf vy vz wcel cv cfv co wral cop cco chomf cssc csubc eqid ccat
        wa wbr subcrcl syl issubc2 mpbid simprd simpl ralimi wceq fveq2 oveq12d
        id eleq12d rspcv sylc ) AFCPKQZDRZVDVDESZPZKCTZFDRZFFESZPZIAVGLQMQVDNQZ
        UAOQZBUBRZSSVDVMESPLVLVMESTMVDVLESTOCTNCTZUHZKCTZVHAEBUCRZUDUIZVQAEBUER
        PZVSVQUHGAKNOBCVNDMLVREVRUFJVNUFAVTBUGPGBEUJUKHULUMUNVPVGKCVGVOUOUPUKVG
        VKKFCVDFUQZVEVIVFVJVDFDURWAVDFVDFEWAUTZWBUSVAVBVC $.
    $}

    subccocl.o $e |- .x. = ( comp ` C ) $.
    subccocl.y $e |- ( ph -> Y e. S ) $.
    subccocl.z $e |- ( ph -> Z e. S ) $.
    subccocl.f $e |- ( ph -> F e. ( X J Y ) ) $.
    subccocl.g $e |- ( ph -> G e. ( Y J Z ) ) $.
    $( A subcategory is closed under composition.  (Contributed by Mario
       Carneiro, 4-Jan-2017.) $)
    subccocl $p |- ( ph -> ( G ( <. X , Y >. .x. Z ) F ) e. ( X J Z ) ) $=
      ( co wcel vx vg vf vy vz cv ccid cfv cop wral wa chomf cssc wbr eqid ccat
      csubc subcrcl issubc2 mpbid simprd wceq adantr ad2antrr ad3antrrr simpllr
      syl simplr oveq12d eleqtrrd ad4antr simp-5r simp-4r opeq12d simpr eleq12d
      oveq123d rspcdv rspcimdv adantld mpd ) AUAUFZBUGUHZUHWBWBGSTZUBUFZUCUFZWB
      UDUFZUIZUEUFZDSZSZWBWIGSZTZUBWGWIGSZUJZUCWBWGGSZUJZUECUJZUDCUJZUKZUACUJZF
      EHIUIZJDSZSZHJGSZTZAGBULUHZUMUNZXAAGBUQUHTZXHXAUKKAUAUDUEBCDWCUCUBXGGXGUO
      WCUONAXIBUPTKBGURVGLUSUTVAAWTXFUAHCMAWBHVBZUKZWSXFWDXKWRXFUDICAICTXJOVCXK
      WGIVBZUKZWQXFUEJCAJCTXJXLPVDXMWIJVBZUKZWOXFUCEWPXOEHIGSZWPAEXPTXJXLXNQVEX
      OWBHWGIGAXJXLXNVFXKXLXNVHVIVJXOWFEVBZUKZWMXFUBFWNXRFIJGSZWNAFXSTXJXLXNXQR
      VKXRWGIWIJGXKXLXNXQVFXMXNXQVHVIVJXRWEFVBZUKZWKXDWLXEYAWEFWFEWJXCYAWHXBWIJ
      DYAWBHWGIAXJXLXNXQXTVLZXKXLXNXQXTVMVNXMXNXQXTVFZVIXRXTVOXOXQXTVHVQYAWBHWI
      JGYBYCVIVPVRVSVSVSVTVSWA $.
  $}

  ${
    $d f g h w x y z C $.  $d g h x y z D $.  $d f g h w x y z ph $.  $d x X $.
    $d f g h w x y z .1. $.  $d f g h w x y z J $.  $d f g h w x y z S $.
    subccat.1 $e |- D = ( C |`cat J ) $.
    subccat.j $e |- ( ph -> J e. ( Subcat ` C ) ) $.
    ${
      subccatid.1 $e |- ( ph -> J Fn ( S X. S ) ) $.
      subccatid.2 $e |- .1. = ( Id ` C ) $.
      $( A subcategory is a category.  (Contributed by Mario Carneiro,
         4-Jan-2017.) $)
      subccatid $p |- ( ph ->
        ( D e. Cat /\ ( Id ` D ) = ( x e. S |-> ( .1. ` x ) ) ) ) $=
        ( cv wcel wa co cfv cvv ccat adantr sseldd vw vy vz vf w3a cco cbs eqid
        vg vh csubc subcrcl syl subcss1 rescbas reschom rescco ovex eqeltri a1i
        cresc biid cxp wfn subcidcl chom simpr1l simpr1r subcss2 simpr31 catlid
        simpr simpr2l simpr32 catrid subccocl simpr2r simpr33 catass iscatd2
        wss ) AUALZEMZBLZEMZNZUBLZEMZUCLZEMZNZUDLZWBWDGOZMZUILZWDWGGOZMZUJLZWGW
        IGOZMZUEZUEZUABUBUCEDCUFPZWDFPUDUIUJGQACUGPZCDEGRHXDUHZAGCUKPMZCRMZICGU
        LUMZJAXDCEGIJXEUNZUOAXDCDEGRHXEXHJXIUPAXDCDEXCGRHXEXHJXIXCUHZUQDQMADCGV
        AOQHCGVAURUSUTXBVBAWENCEFGWDAXFWEISAGEEVCVDZWEJSAWEVLKVEAXBNZXDCXCFWLCV
        FPZWBWDXEXMUHZKAXGXBXHSZXLEXDWBAEXDWAXBXISZWCWEWKXAAVGZTZXJXLEXDWDXPWCW
        EWKXAAVHZTZXLWMWBWDXMOWLXLCEXMGWBWDAXFXBISZAXKXBJSZXNXQXSVIWNWQWTWFWKAV
        JZTZVKXLXDCXCFWOXMWDWGXEXNKXOXTXJXLEXDWGXPWHWJWFXAAVMZTZXLWPWDWGXMOWOXL
        CEXMGWDWGYAYBXNXSYEVIWNWQWTWFWKAVNZTZVOXLCEXCWLWOGWBWDWGYAYBXQXJXSYEYCY
        GVPXLXDCXCWLWOXMWRWIWBWDWGXEXNXJXOXRXTYFYDYHXLEXDWIXPWHWJWFXAAVQZTXLWSW
        GWIXMOWRXLCEXMGWGWIYAYBXNYEYIVIWNWQWTWFWKAVRTVSVT $.

      subcid.x $e |- ( ph -> X e. S ) $.
      $( The identity in a subcategory is the same as the original category.
         (Contributed by Mario Carneiro, 4-Jan-2017.) $)
      subcid $p |- ( ph -> ( .1. ` X ) = ( ( Id ` D ) ` X ) ) $=
        ( vx ccid cfv cv cvv ccat wcel wceq subccatid simprd simpr fveq2d fvexd
        cmpt wa fvmptd eqcomd ) AGCNOZOGEOZAMGMPZEOZUKDUJQACRSUJMDUMUFTAMBCDEFH
        IJKUAUBAULGTZUGULGEAUNUCUDLAGEUEUHUI $.
    $}

    $( A subcategory is a category.  (Contributed by Mario Carneiro,
       4-Jan-2017.) $)
    subccat $p |- ( ph -> D e. Cat ) $=
      ( vx ccat wcel ccid cfv cdm cmpt wceq eqidd subcfn eqid subccatid simpld
      cv ) ACHICJKGDLLZGTBJKZKMNAGBCUAUBDEFABUADFAUAOPUBQRS $.
  $}

  ${
    $d f g x y z C $.  $d f g x y z D $.  $d f g x y z H $.  $d f g x y z ph $.
    $d f g x y z J $.  $d f g x y z S $.
    issubc3.h $e |- H = ( Homf ` C ) $.
    issubc3.i $e |- .1. = ( Id ` C ) $.
    issubc3.1 $e |- D = ( C |`cat J ) $.
    issubc3.c $e |- ( ph -> C e. Cat ) $.
    issubc3.a $e |- ( ph -> J Fn ( S X. S ) ) $.
    $( Alternate definition of a subcategory, as a subset of the category which
       is itself a category.  The assumption that the identity be closed is
       necessary just as in the case of a monoid, ~ issubm2 , for the same
       reasons, since categories are a generalization of monoids.  (Contributed
       by Mario Carneiro, 6-Jan-2017.) $)
    issubc3 $p |- ( ph -> ( J e. ( Subcat ` C ) <-> ( J C_cat H /\
      A. x e. S ( .1. ` x ) e. ( x J x ) /\ D e. Cat ) ) ) $=
      ( cfv wcel cv co wral ccat wa vg vf vy vz csubc cssc wbr w3a simpr adantr
      subcssc cxp wfn ad2antrr subcidcl ralrimiva subccat cop cco simpr1 simpr2
      3jca chom cbs eqid simplrr simprl1 homffn simplrl rescbas eleqtrd simprl2
      ssc1 simprl3 simprrl reschom oveqd simprrr catcocl rescco 3eltr4d anassrs
      ralrimivva ralrimivvva 3adantr2 r19.26 sylanbrc issubc2 mpbir2and impbida
      a1i ) AHCUENOZHGUFUGZBPZFNWNWNHQOZBERZDSOZUHZAWLTZWMWPWQWSCGHAWLUIZIUKWSW
      OBEWSWNEOZTCEFHWNWSWLXAWTUJAHEEULUMZWLXAMUNWSXAUIJUOUPWSCDHKWTUQVBAWRTZWL
      WMWOUAPZUBPZWNUCPZURZUDPZCUSNZQZQZWNXHHQZOZUAXFXHHQZRUBWNXFHQZRZUDERUCERZ
      TBERZAWMWPWQUTXCWPXQBERZXRAWMWPWQVAAWMWQXSWPAWMWQTZTZXPBUCUDEEEYAXAXFEOZX
      HEOZUHZTXMUBUAXOXNYAYDXEXOOZXDXNOZTZXMYAYDYGTZTZXDXEXGXHDUSNZQZQWNXHDVCNZ
      QXKXLYIDVDNZDYJXEXDYLWNXFXHYMVEYLVEYJVEAWMWQYHVFYIWNEYMXAYBYCYGYAVGYICVDN
      ZCDEHSKYNVEZACSOZXTYHLUNZAXBXTYHMUNZYIEYNHGYRGYNYNULUMYIYNCGIYOVHWKAWMWQY
      HVIVMZVJZVKYIXFEYMXAYBYCYGYAVLYTVKYIXHEYMXAYBYCYGYAVNYTVKYIXEXOWNXFYLQYAY
      DYEYFVOYIHYLWNXFYIYNCDEHSKYOYQYRYSVPZVQVKYIXDXNXFXHYLQYAYDYEYFVRYIHYLXFXH
      UUAVQVKVSYIXJYKXDXEYIXIYJXGXHYIYNCDEXIHSKYOYQYRYSXIVEZVTVQVQYIHYLWNXHUUAV
      QWAWBWCWDWEWOXQBEWFWGXCBUCUDCEXIFUBUAGHIJUUBAYPWRLUJAXBWRMUJWHWIWJ $.
  $}

  ${
    $d f g x y z C $.  $d f g x y z H $.  $d f g x y z ph $.  $d f g x y z S $.
    $d x y D $.  $d x y E $.
    fullsubc.b $e |- B = ( Base ` C ) $.
    fullsubc.h $e |- H = ( Homf ` C ) $.
    fullsubc.c $e |- ( ph -> C e. Cat ) $.
    fullsubc.s $e |- ( ph -> S C_ B ) $.
    $( The full subcategory generated by a subset of objects is the category
       with these objects and the same morphisms as the original.  The result
       is always a subcategory (and it is full, meaning that all morphisms of
       the original category between objects in the subcategory is also in the
       subcategory), see definition 4.1(2) of [Adamek] p. 48.  (Contributed by
       Mario Carneiro, 4-Jan-2017.) $)
    fullsubc $p |- ( ph -> ( H |` ( S X. S ) ) e. ( Subcat ` C ) ) $=
      ( vx vg vf vy cfv wcel cv co wral wa adantr vz cxp cres cssc wbr ccid cop
      csubc cco wfn cvv homffn cbs fvex eqeltri sscres mp2an a1i chom eqid ccat
      sselda catidcl simpr ovresd homfval eleqtrrd ad3antrrr wss simprl catcocl
      eqtrd simprr simplr ralrimivva wceq raleqbidv mpbird ralrimiva jca xpss12
      raleqdv syl2anc fnssres sylancr issubc2 mpbir2and ) AEDDUBZUCZCUHNOWIEUDU
      EZJPZCUFNZNZWKWKWIQZOZKPZLPZWKMPZUGUAPZCUINZQQZWKWSWIQZOZKWRWSWIQZRZLWKWR
      WIQZRZUADRZMDRZSZJDRWJAEBBUBZUJZBUKOWJBCEGFULZBCUMNUKFCUMUNUOBDEUKUPUQURA
      XJJDAWKDOZSZWOXIXOWMWKWKCUSNZQZWNXOBCWLXPWKFXPUTZWLUTZACVAOZXNHTZADBWKIVB
      ZVCXOWNWKWKEQXQXOWKWKEDAXNVDZYCVEXOBCEXPWKWKGFXRYBYBVFVLVGXOXHMDXOWRDOZSZ
      XGUADYEWSDOZSZXGXCKWRWSXPQZRZLWKWRXPQZRYGXCLKYJYHYGWQYJOZWPYHOZSZSZXAWKWS
      XPQZXBYNBCWTWQWPXPWKWRWSFXRWTUTZXOXTYDYFYMYAVHXOWKBOZYDYFYMYBVHZYGWRBOZYM
      YEYSYFXODBWRADBVIZXNITZVBZTZTYGWSBOYMYEDBWSXOYTYDUUATVBZTZYGYKYLVJYGYKYLV
      MVKYNXBWKWSEQYOYNWKWSEDXOXNYDYFYMYCVHYEYFYMVNVEYNBCEXPWKWSGFXRYRUUEVFVLVG
      VOYGXEYILXFYJYEXFYJVPYFYEXFWKWREQYJYEWKWREDAXNYDVNXOYDVDVEYEBCEXPWKWRGFXR
      XOYQYDYBTUUBVFVLTYGXCKXDYHYGXDWRWSEQYHYGWRWSEDXOYDYFVNYEYFVDVEYGBCEXPWRWS
      GFXRUUCUUDVFVLWBVQVRVSVSVTVSAJMUACDWTWLLKEWIGXSYPHAXLWHXKVIZWIWHUJXMAYTYT
      UUFIIDBDBWAWCXKWHEWDWEWFWG $.

    fullsubc.d $e |- D = ( C |`s S ) $.
    fullsubc.e $e |- E = ( C |`cat ( H |` ( S X. S ) ) ) $.
    $( The category formed by structure restriction is the same as the category
       restriction.  (Contributed by Mario Carneiro, 5-Jan-2017.) $)
    fullresc $p |- ( ph -> ( ( Homf ` D ) = ( Homf ` E ) /\
                             ( comf ` D ) = ( comf ` E ) ) ) $=
      ( vx vy cfv wceq co eqid cvv chomf ccomf chom wral wcel wss adantr simprl
      cv wa sseldd simprr homfval cxp cres ovresd homffn xpss12 syl2anc fnssres
      ccat wfn sylancr reschom oveqdr eqtr3d cbs ressbas2 fvex syl6eqel resshom
      syl 3eqtr3rd ralrimivva rescbas homfeq mpbird cco ressco rescco comfeqd
      jca ) ADUAPFUAPQZDUBPFUBPQAWCNUIZOUIZDUCPZRZWDWEFUCPZRZQZOEUDNEUDAWJNOEEA
      WDEUEZWEEUEZUJZUJZWDWEGRZWDWECUCPZRWIWGWNBCGWPWDWEIHWPSZWNEBWDAEBUFZWMKUG
      ZAWKWLUHZUKWNEBWEWSAWKWLULZUKUMWNWDWEGEEUNZUOZRWOWIWNWDWEGEWTXAUPAWMNOXCW
      HABCFEXCVAMHJAGBBUNZVBXBXDUFZXCXBVBBCGIHUQAWRWRXEKKEBEBURUSXDXBGUTVCZKVDV
      EVFAWMNOWPWFAETUEZWPWFQAEDVGPZTAWREXHQKEBDCLHVHVLZDVGVIVJZECDWPTLWQVKVLVE
      VMVNANOEDFWFWHWFSWHSXIABCFEXCVAMHJXFKVOVPVQZADFACVRPZDVRPZFVRPAXGXLXMQXJE
      CDXLTLXLSZVSVLABCFEXLXCVAMHJXFKXNVTVFXKWAWB $.
  $}

  $( A category restricted to a smaller set of objects is a category.
     (Contributed by Mario Carneiro, 6-Jan-2017.) $)
  resscat $p |- ( ( C e. Cat /\ S e. V ) -> ( C |`s S ) e. Cat ) $=
    ( ccat wcel wa cress cbs cfv cin wceq eqid ressinbas adantl chomf cxp cresc
    co cres ccomf simpl wss inss2 fullsubc subccat fullresc simpld simprd ovexd
    a1i cvv catpropd mpbird eqeltrd ) ADEZBCEZFZABGRZABAHIZJZGRZDUPURVAKUOBUSAC
    USLZMNUQVADEAAOIZUTUTPSZQRZDEUQAVEVDVELZUQUSAUTVCVBVCLZUOUPUAZUTUSUBUQBUSUC
    UJZUDUEZUQVAVEUKDUQVAOIVEOIKZVATIVETIKZUQUSAVAUTVEVCVBVGVHVIVALVFUFZUGUQVKV
    LVMUHUQAUTGUIVJULUMUN $.

  ${
    $d x C $.  $d x D $.  $d x H $.  $d x J $.
    subsubc.d $e |- D = ( C |`cat H ) $.
    $( A subcategory of a subcategory is a subcategory.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    subsubc $p |- ( H e. ( Subcat ` C ) -> ( J e. ( Subcat ` D ) <->
      ( J e. ( Subcat ` C ) /\ J C_cat H ) ) ) $=
      ( vx csubc cfv wcel cssc wbr wa chomf eqid cdm ccat co cresc adantr cvv
      subcssc cbs subcrcl eqidd subcfn subcss1 reschomf breq2d syl5ibr pm4.71rd
      id cv ccid wral w3a simpr simpl ssctr syl2anc biimpa 2thd cxp sscfn1 ssc1
      wfn sselda subcid eleq1d ralbidva dmexg rescabs syl5req 3anbi123d issubc3
      oveq1i syl subccat 3bitr4rd pm5.32da bitrd ancom syl6bb ) CAGHZIZDBGHIZDC
      JKZDWCIZLZWGWFLWDWEWFWELWHWDWEWFWEWFWDDBMHZJKZWEBWIDWEUKWINZUAWDCWIDJWDAU
      BHZABCOZOZCPEWLNZACUCZWDAWNCWDUKZWDWNUDUEZWDWLAWNCWQWRWOUFUGUHZUIUJWDWFWE
      WGWDWFLZDAMHZJKZFULZAUMHZHZXCXCDQZIZFDOOZUNZADRQZPIZUOWJXCBUMHZHZXFIZFXHU
      NZBDRQZPIZUOWGWEWTXBWJXIXOXKXQWTXBWJWTWFCXAJKXBWDWFUPZWTAXACWDWFUQZXANZUA
      DCXAURUSWDWFWJWSUTVAWTXGXNFXHWTXCXHIZLZXEXMXFYBABWNXDCXCEWTWDYAXSSWTCWNWN
      VBVEZYAWDYCWFWRSZSXDNZWTXHWNXCWTXHWNDCWTXHDCXRWTXHUDVCZYDXRVDZVFVGVHVIWTX
      JXPPWTXPACRQZDRQXJBYHDREVOWTAWNXHCDPTWDAPIWFWPSZYDYFWDWNTIZWFWDWMTIYJCWCV
      JWMTVJVPSYGVKVLVHVMWTFAXJXHXDXADXTYEXJNYIYFVNWTFBXPXHXLWIDWKXLNXPNWDBPIWF
      WDABCEWQVQSYFVNVRVSVTWFWGWAWB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Functors
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Func $.  $( The class of all functors. $)
  $c idFunc $.  $( Identity functor. $)
  $c o.func $.  $( Functor composition. $)
  $c |`f $.  $( Functor restriction. $)

  $( Extend class notation with the class of all functors. $)
  cfunc $a class Func $.

  $( Extend class notation with identity functor. $)
  cidfu $a class idFunc $.

  $( Extend class notation with functor composition. $)
  ccofu $a class o.func $.

  $( Extend class notation to include restriction of a functor to a
     subcategory. $)
  cresf $a class |`f $.

  ${
    $d b f g h m n t u x y z $.
    $( Function returning all the functors from a category ` t ` to a category
       ` u ` .  Definition 3.17 of [Adamek] p. 29, and definition in [Lang]
       p. 62 ("covariant functor").  Intuitively a functor associates any
       morphism of ` t ` to a morphism of ` u ` , any object of ` t ` to an
       object of ` u ` , and respects the identity, the composition, the domain
       and the codomain.  Here to capture the idea that a functor associates
       any object of ` t ` to an object of ` u ` we write it associates any
       identity of ` t ` to an identity of ` u ` which simplifies the
       definition.  According to remark 3.19 in [Adamek] p. 30, "a functor F :
       A -> B is technically a family of functions; one from Ob(A) to Ob(B)
       [here: f, called "the object part" in the following], and for each pair
       (A,A') of A-objects, one from hom(A,A') to hom(FA, FA') [here: g, called
       "the morphism part" in the following]".  (Contributed by FL,
       10-Feb-2008.)  (Revised by Mario Carneiro, 2-Jan-2017.) $)
    df-func $a |- Func = ( t e. Cat , u e. Cat |-> { <. f , g >. |
     [. ( Base ` t ) / b ]. ( f : b --> ( Base ` u ) /\ g e. X_ z e. ( b X. b )
      ( ( ( f ` ( 1st ` z ) ) ( Hom ` u )
          ( f ` ( 2nd ` z ) ) ) ^m ( ( Hom ` t ) ` z ) ) /\ A. x e. b
      ( ( ( x g x ) ` ( ( Id ` t ) ` x ) ) = ( ( Id ` u ) ` ( f ` x ) ) /\
    A. y e. b A. z e. b A. m e. ( x ( Hom ` t ) y ) A. n e. ( y ( Hom ` t ) z )
      ( ( x g z ) ` ( n ( <. x , y >. ( comp ` t ) z ) m ) ) =
      ( ( ( y g z ) ` n ) ( <. ( f ` x ) , ( f ` y ) >.
          ( comp ` u ) ( f ` z ) ) ( ( x g y ) ` m ) ) ) ) } ) $.

    $( Define the identity functor.  (Contributed by Mario Carneiro,
       3-Jan-2017.) $)
    df-idfu $a |- idFunc = ( t e. Cat |-> [_ ( Base ` t ) / b ]_ <.
    ( _I |` b ) , ( z e. ( b X. b ) |-> ( _I |` ( ( Hom ` t ) ` z ) ) ) >. ) $.

    $( Define the composition of two functors.  (Contributed by Mario Carneiro,
       3-Jan-2017.) $)
    df-cofu $a |- o.func = ( g e. _V , f e. _V |->
      <. ( ( 1st ` g ) o. ( 1st ` f ) ) , ( x e. dom dom ( 2nd ` f ) ,
      y e. dom dom ( 2nd ` f ) |-> ( ( ( ( 1st ` f ) ` x ) ( 2nd ` g )
        ( ( 1st ` f ) ` y ) ) o. ( x ( 2nd ` f ) y ) ) ) >. ) $.

    $( Define the restriction of a functor to a subcategory (analogue of
       ~ df-res ).  (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    df-resf $a |- |`f = ( f e. _V , h e. _V |->
      <. ( ( 1st ` f ) |` dom dom h ) , ( x e. dom h |->
        ( ( ( 2nd ` f ) ` x ) |` ( h ` x ) ) ) >. ) $.

    $( The set of functors is a relation.  (Contributed by Mario Carneiro,
       2-Jan-2017.) $)
    relfunc $p |- Rel ( D Func E ) $=
      ( vb vu vf vg vz vt vx vn vm vy cv cbs cfv chom co ccid wceq wral wf c1st
      cxp c2nd cmap cixp wcel cop cco w3a wsbc ccat cfunc df-func relmpt2opab
      wa ) CMZDMZNOEMZUAFMZGUQUQUCGMZUBOUSOVAUDOUSOURPOQVAHMZPOZOUEQUFUGIMZVBRO
      OVDVDUTQOVDUSOZURROOSJMZKMZVDLMZUHVAVBUIOQQVDVAUTQOVFVHVAUTQOVGVDVHUTQOVE
      VHUSOUHVAUSOURUIOQQSJVHVAVCQTKVDVHVCQTGUQTLUQTUPIUQTUJCVBNOUKHDEFULULABUM
      ILGDHEFKJCUNUO $.

    $( Reverse closure for a functor.  (Contributed by Mario Carneiro,
       6-Jan-2017.) $)
    funcrcl $p |- ( F e. ( D Func E ) -> ( D e. Cat /\ E e. Cat ) ) $=
      ( vt vu vb vf vg vz vx vn vm vy ccat cv cbs cfv chom co wral wf c1st c2nd
      cxp cmap cixp wcel ccid wceq cop cco wa wsbc copab cfunc df-func elmpt2cl
      w3a ) DENNFOZEOZPQGOZUAHOZIUSUSUDIOZUBQVAQVCUCQVAQUTRQSVCDOZRQZQUESUFUGJO
      ZVDUHQQVFVFVBSQVFVAQZUTUHQQUIKOZLOZVFMOZUJVCVDUKQSSVFVCVBSQVHVJVCVBSQVIVF
      VJVBSQVGVJVAQUJVCVAQUTUKQSSUIKVJVCVESTLVFVJVESTIUSTMUSTULJUSTURFVDPQUMGHU
      NABUOCJMIEDGHLKFUPUQ $.
  $}

  ${
    $d b d e f g m n x y z B $.  $d b d e f g C $.  $d b d e f g m n x y z D $.
    $d b d e f g m n x y z E $.  $d b d e f g m n x y z H $.  $d b d e f g I $.
    $d f g m n x y z F $.  $d f g m n x y z G $.  $d b d e f g x y z J $.
    $d b d e f g .1. $.  $d m n x y z ph $.  $d b d e f g .x. $.
    $d b d e f g O $.
    isfunc.b $e |- B = ( Base ` D ) $.
    isfunc.c $e |- C = ( Base ` E ) $.
    isfunc.h $e |- H = ( Hom ` D ) $.
    isfunc.j $e |- J = ( Hom ` E ) $.
    isfunc.1 $e |- .1. = ( Id ` D ) $.
    isfunc.i $e |- I = ( Id ` E ) $.
    isfunc.x $e |- .x. = ( comp ` D ) $.
    isfunc.o $e |- O = ( comp ` E ) $.
    isfunc.d $e |- ( ph -> D e. Cat ) $.
    isfunc.e $e |- ( ph -> E e. Cat ) $.
    $( Value of the set of functors between two categories.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    isfunc $p |- ( ph -> ( F ( D Func E ) G <-> ( F : B --> C /\
      G e. X_ z e. ( B X. B ) ( ( ( F ` ( 1st ` z ) ) J
                ( F ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) /\ A. x e. B
      ( ( ( x G x ) ` ( .1. ` x ) ) = ( I ` ( F ` x ) ) /\
    A. y e. B A. z e. B A. m e. ( x H y ) A. n e. ( y H z )
      ( ( x G z ) ` ( n ( <. x , y >. .x. z ) m ) ) =
      ( ( ( y G z ) ` n ) ( <. ( F ` x ) , ( F ` y ) >.
          O ( F ` z ) ) ( ( x G y ) ` m ) ) ) ) ) ) $=
      ( vf vg vd ve vb cfunc co wbr cv cmap wcel cxp c1st cfv c2nd cixp wa wceq
      cop wral copab wf w3a ccat cbs chom ccid cco wsbc cvv fvexd simpl syl6eqr
      fveq2d simpr simplr feq23d fvex eqeltri elmap syl6bbr oveqd simpll fveq1d
      sqxpeqd ixpeq1d oveq12d ixpeq2dv eqtrd eleq2d eqeq12d raleqbidv 3anbi123d
      anbi12d df-3an syl6bb sbcied2 opabbidv df-func csn ciun ovex rgenw ixpexg
      snex ax-mp iunex anim2i 2eximi elopab eliunxp 3imtr4i ssriv ssexi ovmpt2a
      xpex wex syl2anc breqd elex anim12i 3adant3 eleq1d oveq1d eleq12d opeq12d
      brabv oveq123d 2ralbidv ralbidv syl5bbr eqid brabga pm5.21nii 3anbi1i
      bitri ) AMNGLUNUOZUPMNUIUQZFEURUOZUSZUJUQZDEEUTZDUQZVAVBZUUFVBZUUKVCVBZUU
      FVBZQUOZUUKOVBZURUOZVDZUSZVEZBUQZIVBZUVBUVBUUIUOZVBZUVBUUFVBZPVBZVFZKUQZJ
      UQZUVBCUQZVGZUUKHUOZUOZUVBUUKUUIUOZVBZUVIUVKUUKUUIUOZVBZUVJUVBUVKUUIUOZVB
      ZUVFUVKUUFVBZVGZUUKUUFVBZRUOZUOZVFZKUVKUUKOUOZVHZJUVBUVKOUOZVHZDEVHZCEVHZ
      VEZBEVHZVEZUIUJVIZUPZEFMVJZNDUUJUULMVBZUUNMVBZQUOZUUQURUOZVDZUSZUVCUVBUVB
      NUOZVBZUVBMVBZPVBZVFZUVNUVBUUKNUOZVBZUVIUVKUUKNUOZVBZUVJUVBUVKNUOZVBZUXGU
      VKMVBZVGZUUKMVBZRUOZUOZVFZKUWGVHJUWIVHZDEVHCEVHZVEZBEVHZVKZAUUEUWPMNAGVLU
      SLVLUSUUEUWPVFUGUHUKULGLVLVLUMUQZULUQZVMVBZUUFVJZUUIDUYGUYGUTZUUMUUOUYHVN
      VBZUOZUUKUKUQZVNVBZVBZURUOZVDZUSZUVBUYNVOVBZVBZUVDVBZUVFUYHVOVBZVBZVFZUVI
      UVJUVLUUKUYNVPVBZUOZUOZUVOVBZUVRUVTUWBUWCUYHVPVBZUOZUOZVFZKUVKUUKUYOUOZVH
      ZJUVBUVKUYOUOZVHZDUYGVHZCUYGVHZVEZBUYGVHZVKZUMUYNVMVBZVQZUIUJVIUWPUNUYNGV
      FZUYHLVFZVEZVVDUWOUIUJVVGVVBUWOUMVVCEVRVVGUYNVMVSVVGVVCGVMVBZEVVGUYNGVMVV
      EVVFVTWBSWAVVGUYGEVFZVEZVVBUUHUUTUWNVKZUWOVVJUYJUUHUYSUUTVVAUWNVVJUYJEFUU
      FVJUUHVVJUYGUYIEFUUFVVGVVIWCZVVJUYILVMVBZFVVJUYHLVMVVEVVFVVIWDZWBTWAWEFEU
      UFFVVMVRTLVMWFWGZEVVHVRSGVMWFWGZWHWIVVJUYRUUSUUIVVJUYRDUUJUYQVDUUSVVJDUYK
      UUJUYQVVJUYGEVVLWMWNVVJDUUJUYQUURVVJUYMUUPUYPUUQURVVJUYLQUUMUUOVVJUYLLVNV
      BQVVJUYHLVNVVNWBUBWAWJVVJUUKUYOOVVJUYOGVNVBOVVJUYNGVNVVEVVFVVIWKZWBUAWAZW
      LWOWPWQWRVVJVUTUWMBUYGEVVLVVJVUEUVHVUSUWLVVJVUBUVEVUDUVGVVJVUAUVCUVDVVJUV
      BUYTIVVJUYTGVOVBIVVJUYNGVOVVQWBUCWAWLWBVVJUVFVUCPVVJVUCLVOVBPVVJUYHLVOVVN
      WBUDWAWLWSVVJVURUWKCUYGEVVLVVJVUQUWJDUYGEVVLVVJVUOUWHJVUPUWIVVJUYOOUVBUVK
      VVRWJVVJVUMUWFKVUNUWGVVJUYOOUVKUUKVVRWJVVJVUIUVPVULUWEVVJVUHUVNUVOVVJVUGU
      VMUVIUVJVVJVUFHUVLUUKVVJVUFGVPVBHVVJUYNGVPVVQWBUEWAWJWJWBVVJVUKUWDUVRUVTV
      VJVUJRUWBUWCVVJVUJLVPVBRVVJUYHLVPVVNWBUFWAWJWJWSWTWTWTWTXBWTXAUUHUUTUWNXC
      ZXDXEXFBCDULUKUIUJJKUMXGUWPUIUUGUUFXHZUUSUTZXIZUIUUGVWAFEURXJVVTUUSUUFXMU
      URVRUSZDUUJVHUUSVRUSVWCDUUJUUPUUQURXJXKDUUJUURVRXLXNYDXOUKUWPVWBUYNUUFUUI
      VGVFZUWOVEZUJYEUIYEVWDUVAVEZUJYEUIYEUYNUWPUSUYNVWBUSVWEVWFUIUJUWOUVAVWDUV
      AUWNVTXPXQUWOUIUJUYNXRUIUJUUGUUSUYNXSXTYAYBYCYFYGUWQMUUGUSZUXDUYEVKZUYFUW
      QMVRUSZNVRUSZVEZVWHUWOUIUJMNYOVWGUXDVWKUYEVWGVWIUXDVWJMUUGYHNUXCYHYIYJUWO
      VWHUIUJMNUWPVRVRUWOVVKUUFMVFZUUINVFZVEZVWHVVSVWNUUHVWGUUTUXDUWNUYEVWNUUFM
      UUGVWLVWMVTZYKVWNUUINUUSUXCVWLVWMWCZVWNDUUJUURUXBVWNUUPUXAUUQURVWNUUMUWSU
      UOUWTQVWNUULUUFMVWOWLVWNUUNUUFMVWOWLWOYLWPYMVWNUWMUYDBEVWNUVHUXIUWLUYCVWN
      UVEUXFUVGUXHVWNUVCUVDUXEVWNUUINUVBUVBVWPWJWLVWNUVFUXGPVWNUVBUUFMVWOWLZWBW
      SVWNUWJUYBCDEEVWNUWFUYAJKUWIUWGVWNUVPUXKUWEUXTVWNUVNUVOUXJVWNUUINUVBUUKVW
      PWJWLVWNUVRUXMUVTUXOUWDUXSVWNUWBUXQUWCUXRRVWNUVFUXGUWAUXPVWQVWNUVKUUFMVWO
      WLYNVWNUUKUUFMVWOWLWOVWNUVIUVQUXLVWNUUINUVKUUKVWPWJWLVWNUVJUVSUXNVWNUUINU
      VBUVKVWPWJWLYPWSYQYQXBYRXAYSUWPYTUUAUUBVWGUWRUXDUYEFEMVVOVVPWHUUCUUDXD $.

    isfuncd.1 $e |- ( ph -> F : B --> C ) $.
    isfuncd.2 $e |- ( ph -> G Fn ( B X. B ) ) $.
    isfuncd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x G y ) : ( x H y ) --> ( ( F ` x ) J ( F ` y ) ) ) $.
    isfuncd.4 $e |- ( ( ph /\ x e. B ) ->
      ( ( x G x ) ` ( .1. ` x ) ) = ( I ` ( F ` x ) ) ) $.
    isfuncd.5 $e |- ( ( ph /\ ( x e. B /\ y e. B /\ z e. B ) /\
      ( m e. ( x H y ) /\ n e. ( y H z ) ) ) ->
        ( ( x G z ) ` ( n ( <. x , y >. .x. z ) m ) ) =
        ( ( ( y G z ) ` n ) ( <. ( F ` x ) , ( F ` y ) >.
            O ( F ` z ) ) ( ( x G y ) ` m ) ) ) $.
    $( Deduce that an operation is a functor of categories.  (Contributed by
       Mario Carneiro, 4-Jan-2017.) $)
    isfuncd $p |- ( ph -> F ( D Func E ) G ) $=
      ( cfunc co wbr wf cxp cv c1st cfv c2nd cmap cixp wcel wceq cop wa cvv wfn
      wral cbs fvex eqeltri xpex fnex sylancl ovex elmap ralrimivva fveq2 df-ov
      sylibr syl6eqr vex op1std fveq2d op2ndd oveq12d ralxp elixp2 syl3anbrc wi
      eleq12d w3a 3expia 3exp2 imp43 ralrimivv jca ralrimiva isfunc mpbir3and )
      AMNGLUNUOUPEFMUQNDEEURZDUSZUTVAZMVAZXEVBVAZMVAZQUOZXEOVAZVCUOZVDVEZBUSZIV
      AXNXNNUOVAXNMVAZPVAVFZKUSZJUSZXNCUSZVGZXEHUOUOXNXENUOVAXQXSXENUOVAXRXNXSN
      UOZVAXOXSMVAZVGXEMVARUOUOVFZKXSXEOUOZVKJXNXSOUOZVKZDEVKCEVKZVHZBEVKUIANVI
      VEZNXDVJZXENVAZXLVEZDXDVKZXMAYJXDVIVEYIUJEEEGVLVAVISGVLVMVNZYNVOXDVINVPVQ
      UJAYAXOYBQUOZYEVCUOZVEZCEVKBEVKYMAYQBCEEAXNEVEZXSEVEZVHVHYEYOYAUQYQUKYOYE
      YAXOYBQVRXNXSOVRVSWCVTYLYQDBCEEXEXTVFZYKYAXLYPYTYKXTNVAYAXEXTNWAXNXSNWBWD
      YTXJYOXKYEVCYTXGXOXIYBQYTXFXNMXNXSXEBWEZCWEZWFWGYTXHXSMXNXSXEUUAUUBWHWGWI
      YTXKXTOVAYEXEXTOWAXNXSOWBWDWIWNWJWCDXDXLNWKWLAYHBEAYRVHZXPYGULUUCYFCDEEUU
      CYSXEEVEZVHVHYCJKYEYDAYRYSUUDXRYEVEXQYDVEVHZYCWMZAYRYSUUDUUFAYRYSUUDWOUUE
      YCUMWPWQWRWSVTWTXAABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHXBXC $.
  $}

  ${
    $d m n x y z B $.  $d m n x y z D $.  $d m n x y z E $.  $d m n x y z ph $.
    $d m n x y z F $.  $d m n x y z G $.
    funcf1.b $e |- B = ( Base ` D ) $.
    funcf1.c $e |- C = ( Base ` E ) $.
    funcf1.f $e |- ( ph -> F ( D Func E ) G ) $.
    $( The object part of a functor is a function on objects.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    funcf1 $p |- ( ph -> F : B --> C ) $=
      ( vz vx vn vm cv cfv co wcel wral eqid vy wf cxp c1st c2nd chom cmap cixp
      ccid wceq cop cco wa cfunc wbr w3a ccat df-br sylib funcrcl simpld simprd
      syl isfunc mpbid simp1d ) ABCFUBZGKBBUCKOZUDPFPVHUEPFPEUFPZQVHDUFPZPUGQUH
      RZLOZDUIPZPVLVLGQPVLFPZEUIPZPUJMOZNOZVLUAOZUKVHDULPZQQVLVHGQPVPVRVHGQPVQV
      LVRGQPVNVRFPUKVHFPEULPZQQUJMVRVHVJQSNVLVRVJQSKBSUABSUMLBSZAFGDEUNQZUOZVGV
      KWAUPJALUAKBCDVSVMNMEFGVJVOVIVTHIVJTVITVMTVOTVSTVTTADUQRZEUQRZAFGUKZWBRZW
      DWEUMAWCWGJFGWBURUSDEWFUTVCZVAAWDWEWHVBVDVEVF $.
  $}

  ${
    $d m n x y z B $.  $d m n x y z D $.  $d m n x y z E $.  $d m n x y z ph $.
    $d m n x y z F $.  $d m n x y z G $.  $d x y z J $.  $d z X $.  $d z Y $.
    $d m n x y z H $.
    funcixp.b $e |- B = ( Base ` D ) $.
    funcixp.h $e |- H = ( Hom ` D ) $.
    funcixp.j $e |- J = ( Hom ` E ) $.
    funcixp.f $e |- ( ph -> F ( D Func E ) G ) $.
    $( The morphism part of a functor is a function on homsets.  (Contributed
       by Mario Carneiro, 2-Jan-2017.) $)
    funcixp $p |- ( ph -> G e. X_ z e. ( B X. B )
      ( ( ( F ` ( 1st ` z ) ) J ( F ` ( 2nd ` z ) ) ) ^m ( H ` z ) ) ) $=
      ( vx cfv cv co wcel wral eqid vn vm cbs cxp c1st c2nd cmap cixp ccid wceq
      vy wf cop cco wa cfunc wbr w3a ccat df-br sylib funcrcl syl simpld simprd
      isfunc mpbid simp2d ) ACEUCOZFULZGBCCUDBPZUEOFOVKUFOFOIQVKHOUGQUHRZNPZDUI
      OZOVMVMGQOVMFOZEUIOZOUJUAPZUBPZVMUKPZUMVKDUNOZQQVMVKGQOVQVSVKGQOVRVMVSGQO
      VOVSFOUMVKFOEUNOZQQUJUAVSVKHQSUBVMVSHQSBCSUKCSUONCSZAFGDEUPQZUQZVJVLWBURM
      ANUKBCVIDVTVNUBUAEFGHVPIWAJVITKLVNTVPTVTTWATADUSRZEUSRZAFGUMZWCRZWEWFUOAW
      DWHMFGWCUTVADEWGVBVCZVDAWEWFWIVEVFVGVH $.

    funcf2.x $e |- ( ph -> X e. B ) $.
    funcf2.y $e |- ( ph -> Y e. B ) $.
    $( The morphism part of a functor is a function on homsets.  (Contributed
       by Mario Carneiro, 2-Jan-2017.) $)
    funcf2 $p |- ( ph ->
      ( X G Y ) : ( X H Y ) --> ( ( F ` X ) J ( F ` Y ) ) ) $=
      ( co cfv cmap wcel vz wf cop c1st c2nd df-ov cixp funcixp opelxpi syl2anc
      cxp wceq fveq2 fveq2d oveq12d syl6eqr fvixp syl5eqel op1stg op2ndg oveq1d
      cv wa eleqtrd elmapi syl ) AIJFQZIERZJERZHQZIJGQZSQZTVKVJVGUBAVGIJUCZUDRZ
      ERZVMUERZERZHQZVKSQZVLAVGVMFRZVSIJFUFAFUABBUKZUAVBZUDRZERZWBUERZERZHQZWBG
      RZSQZUGTVMWATZVTVSTAUABCDEFGHKLMNUHAIBTZJBTZWJOPIJBBUIUJUAWAWIVMVSFWBVMUL
      ZWGVRWHVKSWMWDVOWFVQHWMWCVNEWBVMUDUMUNWMWEVPEWBVMUEUMUNUOWMWHVMGRVKWBVMGU
      MIJGUFUPUOUQUJURAVRVJVKSAWKWLVRVJULOPWKWLVCZVOVHVQVIHWNVNIEIJBBUSUNWNVPJE
      IJBBUTUNUOUJVAVDVGVJVKVEVF $.
  $}

  ${
    $d x B $.  $d x D $.  $d x E $.  $d x F $.  $d x G $.  $d x ph $.
    funcfn2.b $e |- B = ( Base ` D ) $.
    funcfn2.f $e |- ( ph -> F ( D Func E ) G ) $.
    $( The morphism part of a functor is a function.  (Contributed by Mario
       Carneiro, 3-Jan-2017.) $)
    funcfn2 $p |- ( ph -> G Fn ( B X. B ) ) $=
      ( vx cxp cv c1st cfv c2nd chom co cmap cixp wcel eqid wfn funcixp ixpfn
      syl ) AFIBBJZIKZLMEMUFNMEMDOMZPUFCOMZMQPZRSFUEUAAIBCDEFUHUGGUHTUGTHUBIUEU
      IFUCUD $.
  $}

  ${
    $d m n x y z B $.  $d m n x y z D $.  $d m n x y z E $.  $d m n x y z ph $.
    $d x .1. $.  $d m n x y z F $.  $d m n x y z G $.  $d x I $.  $d x X $.
    funcid.b $e |- B = ( Base ` D ) $.
    funcid.1 $e |- .1. = ( Id ` D ) $.
    funcid.i $e |- I = ( Id ` E ) $.
    funcid.f $e |- ( ph -> F ( D Func E ) G ) $.
    funcid.x $e |- ( ph -> X e. B ) $.
    $( A functor maps each identity to the corresponding identity in the target
       category.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    funcid $p |- ( ph -> ( ( X G X ) ` ( .1. ` X ) ) = ( I ` ( F ` X ) ) ) $=
      ( vx wcel cv cfv co wral vn vm vy vz wceq cop cco chom wa cbs wf cxp c1st
      c2nd cmap cixp cfunc wbr w3a eqid ccat df-br funcrcl simpld simprd isfunc
      sylib syl mpbid simp3d simpl ralimi id oveq12d fveq2 fveq12d fveq2d rspcv
      eqeq12d sylc ) AIBPOQZDRZWAWAGSZRZWAFRZHRZUEZOBTZIDRZIIGSZRZIFRZHRZUEZNAW
      GUAQZUBQZWAUCQZUFUDQZCUGRZSSWAWRGSRWOWQWRGSRWPWAWQGSRWEWQFRUFWRFREUGRZSSU
      EUAWQWRCUHRZSTUBWAWQXASTUDBTUCBTZUIZOBTZWHABEUJRZFUKZGUDBBULWRUMRFRWRUNRF
      REUHRZSWRXARUOSUPPZXDAFGCEUQSZURZXFXHXDUSMAOUCUDBXECWSDUBUAEFGXAHXGWTJXEU
      TXAUTXGUTKLWSUTWTUTACVAPZEVAPZAFGUFZXIPZXKXLUIAXJXNMFGXIVBVGCEXMVCVHZVDAX
      KXLXOVEVFVIVJXCWGOBWGXBVKVLVHWGWNOIBWAIUEZWDWKWFWMXPWBWIWCWJXPWAIWAIGXPVM
      ZXQVNWAIDVOVPXPWEWLHWAIFVOVQVSVRVT $.
  $}

  ${
    $d m n x y z B $.  $d m n x y z D $.  $d m n x y z E $.  $d m n x y z ph $.
    $d m n x y z F $.  $d m n x y z G $.  $d m n x y z H $.  $d m n x y z M $.
    $d m n x y z N $.  $d m n x y z O $.  $d m n x y z X $.  $d m n x y z Y $.
    $d m n x y z .x. $.  $d m n x y z Z $.
    funcco.b $e |- B = ( Base ` D ) $.
    funcco.h $e |- H = ( Hom ` D ) $.
    funcco.o $e |- .x. = ( comp ` D ) $.
    funcco.O $e |- O = ( comp ` E ) $.
    funcco.f $e |- ( ph -> F ( D Func E ) G ) $.
    funcco.x $e |- ( ph -> X e. B ) $.
    funcco.y $e |- ( ph -> Y e. B ) $.
    funcco.z $e |- ( ph -> Z e. B ) $.
    funcco.m $e |- ( ph -> M e. ( X H Y ) ) $.
    funcco.n $e |- ( ph -> N e. ( Y H Z ) ) $.
    $( A functor maps composition in the source category to composition in the
       target.  (Contributed by Mario Carneiro, 2-Jan-2017.) $)
    funcco $p |- ( ph -> ( ( X G Z ) ` ( N ( <. X , Y >. .x. Z ) M ) ) =
      ( ( ( Y G Z ) ` N ) ( <. ( F ` X ) , ( F ` Y ) >.
          O ( F ` Z ) ) ( ( X G Y ) ` M ) ) ) $=
      ( vx vn vm vy vz cv ccid cfv co wceq cop wral cbs cxp c1st c2nd chom cmap
      wa wf cixp wcel cfunc wbr w3a eqid ccat df-br sylib funcrcl simpld simprd
      syl isfunc mpbid simp3d adantr ad2antrr ad3antrrr simpllr simplr eleqtrrd
      oveq12d ad4antr simp-5r simp-4r opeq12d oveq123d fveq12d eqeq12d rspcimdv
      simpr fveq2d rspcdv adantld mpd ) AUEUJZCUKULZULXAXAGUMULXAFULZEUKULZULUN
      ZUFUJZUGUJZXAUHUJZUOZUIUJZDUMZUMZXAXJGUMZULZXFXHXJGUMZULZXGXAXHGUMZULZXCX
      HFULZUOZXJFULZKUMZUMZUNZUFXHXJHUMZUPZUGXAXHHUMZUPZUIBUPZUHBUPZVCZUEBUPZJI
      LMUOZNDUMZUMZLNGUMZULZJMNGUMZULZILMGUMZULZLFULZMFULZUOZNFULZKUMZUMZUNZABE
      UQULZFVDZGUIBBURXJUSULFULXJUTULFULEVAULZUMXJHULVBUMVEVFZYLAFGCEVGUMZVHZUU
      JUULYLVISAUEUHUIBUUICDXBUGUFEFGHXDUUKKOUUIVJPUUKVJXBVJXDVJQRACVKVFZEVKVFZ
      AFGUOZUUMVFZUUOUUPVCAUUNUURSFGUUMVLVMCEUUQVNVQZVOAUUOUUPUUSVPVRVSVTAYKUUH
      UELBTAXALUNZVCZYJUUHXEUVAYIUUHUHMBAMBVFUUTUAWAUVAXHMUNZVCZYHUUHUINBANBVFU
      UTUVBUBWBUVCXJNUNZVCZYFUUHUGIYGUVEILMHUMZYGAIUVFVFUUTUVBUVDUCWCUVEXALXHMH
      AUUTUVBUVDWDUVAUVBUVDWEWGWFUVEXGIUNZVCZYDUUHUFJYEUVHJMNHUMZYEAJUVIVFUUTUV
      BUVDUVGUDWHUVHXHMXJNHUVAUVBUVDUVGWDUVCUVDUVGWEWGWFUVHXFJUNZVCZXNYQYCUUGUV
      KXLYOXMYPUVKXALXJNGAUUTUVBUVDUVGUVJWIZUVCUVDUVGUVJWDZWGUVKXFJXGIXKYNUVKXI
      YMXJNDUVKXALXHMUVLUVAUVBUVDUVGUVJWJZWKUVMWGUVHUVJWPZUVEUVGUVJWEZWLWMUVKXP
      YSXRUUAYBUUFUVKXTUUDYAUUEKUVKXCUUBXSUUCUVKXALFUVLWQUVKXHMFUVNWQWKUVKXJNFU
      VMWQWGUVKXFJXOYRUVKXHMXJNGUVNUVMWGUVOWMUVKXGIXQYTUVKXALXHMGUVLUVNWGUVPWMW
      LWNWRWOWOWOWSWOWT $.
  $}

  ${
    funcsect.b $e |- B = ( Base ` D ) $.
    funcsect.s $e |- S = ( Sect ` D ) $.
    funcsect.t $e |- T = ( Sect ` E ) $.
    funcsect.f $e |- ( ph -> F ( D Func E ) G ) $.
    funcsect.x $e |- ( ph -> X e. B ) $.
    funcsect.y $e |- ( ph -> Y e. B ) $.
    funcsect.m $e |- ( ph -> M ( X S Y ) N ) $.
    $( The image of a section under a functor is a section.  (Contributed by
       Mario Carneiro, 2-Jan-2017.) $)
    funcsect $p |- ( ph ->
      ( ( X G Y ) ` M ) ( ( F ` X ) T ( F ` Y ) ) ( ( Y G X ) ` N ) ) $=
      ( cfv co wbr cop cco ccid wceq chom wcel eqid ccat cfunc wa df-br funcrcl
      w3a sylib simpld issect simp3d fveq2d simp1d simp2d funcco funcid 3eqtr3d
      syl mpbid cbs simprd funcf1 ffvelrnd funcf2 issect2 mpbird ) AIKLHUAZTZJL
      KHUAZTZKGTZLGTZEUAUBVRVPVSVTUCVSFUDTZUAUAZVSFUETZTZUFAJIKLUCKCUDTZUAUAZKK
      HUAZTKCUETZTZWGTWBWDAWFWIWGAIKLCUGTZUAZUHZJLKWJUAZUHZWFWIUFZAIJKLDUAUBWLW
      NWOUOSABCDWEWHIJWJKLMWJUIZWEUIZWHUIZNACUJUHZFUJUHZAGHUCZCFUKUAZUHZWSWTULA
      GHXBUBXCPGHXBUMUPCFXAUNVFZUQQRURVGZUSUTABCWEFGHWJIJWAKLKMWPWQWAUIZPQRQAWL
      WNWOXEVAZAWLWNWOXEVBZVCABCWHFGHWCKMWRWCUIZPQVDVEAFVHTZFEWAWCVPVRFUGTZVSVT
      XJUIZXKUIZXFXIOAWSWTXDVIABXJKGABXJCFGHMXLPVJZQVKABXJLGXNRVKAWKVSVTXKUAIVO
      ABCFGHWJXKKLMWPXMPQRVLXGVKAWMVTVSXKUAJVQABCFGHWJXKLKMWPXMPRQVLXHVKVMVN $.
  $}

  ${
    funcinv.b $e |- B = ( Base ` D ) $.
    funcinv.s $e |- I = ( Inv ` D ) $.
    funcinv.t $e |- J = ( Inv ` E ) $.
    funcinv.f $e |- ( ph -> F ( D Func E ) G ) $.
    funcinv.x $e |- ( ph -> X e. B ) $.
    funcinv.y $e |- ( ph -> Y e. B ) $.
    funcinv.m $e |- ( ph -> M ( X I Y ) N ) $.
    $( The image of an inverse under a functor is an inverse.  (Contributed by
       Mario Carneiro, 3-Jan-2017.) $)
    funcinv $p |- ( ph ->
      ( ( X G Y ) ` M ) ( ( F ` X ) J ( F ` Y ) ) ( ( Y G X ) ` N ) ) $=
      ( co cfv wbr csect eqid wa ccat wcel cop cfunc df-br sylib funcrcl simpld
      syl isinv mpbid funcsect simprd cbs funcf1 ffvelrnd mpbir2and ) AIKLFTUAZ
      JLKFTUAZKEUAZLEUAZHTUBVCVDVEVFDUCUAZTUBVDVCVFVEVGTUBABCCUCUAZVGDEFIJKLMVH
      UDZVGUDZPQRAIJKLVHTUBZJILKVHTUBZAIJKLGTUBVKVLUESABCVHIJGKLMNACUFUGZDUFUGZ
      AEFUHZCDUITZUGZVMVNUEAEFVPUBVQPEFVPUJUKCDVOULUNZUMQRVIUOUPZUMUQABCVHVGDEF
      JILKMVIVJPRQAVKVLVSURUQADUSUAZDVGVCVDHVEVFVTUDZOAVMVNVRURABVTKEABVTCDEFMW
      APUTZQVAABVTLEWBRVAVJUOVB $.
  $}

  ${
    funciso.b $e |- B = ( Base ` D ) $.
    funciso.s $e |- I = ( Iso ` D ) $.
    funciso.t $e |- J = ( Iso ` E ) $.
    funciso.f $e |- ( ph -> F ( D Func E ) G ) $.
    funciso.x $e |- ( ph -> X e. B ) $.
    funciso.y $e |- ( ph -> Y e. B ) $.
    funciso.m $e |- ( ph -> M e. ( X I Y ) ) $.
    $( The image of an isomorphism under a functor is an isomorphism.
       Proposition 3.21 of [Adamek] p. 32.  (Contributed by Mario Carneiro,
       3-Jan-2017.) $)
    funciso $p |- ( ph -> ( ( X G Y ) ` M ) e. ( ( F ` X ) J ( F ` Y ) ) ) $=
      ( cfv co cbs cinv eqid ccat wcel cop cfunc wa wbr df-br sylib funcrcl syl
      simprd funcf1 ffvelrnd cdm simpld isoval eleqtrd wb invfun funfvbrb mpbid
      wfun funcinv inviso1 ) ADUASZDIJKFTSIJKCUBSZTZSZKJFTSHDUBSZJESKESVHUCZVLU
      CZACUDUEZDUDUEZAEFUFZCDUGTZUEZVOVPUHAEFVRUIVSOEFVRUJUKCDVQULUMZUNABVHJEAB
      VHCDEFLVMOUOZPUPABVHKEWAQUPNABCDEFVIVLIVKJKLVIUCZVNOPQAIVJUQZUEZIVKVJUIZA
      IJKGTWCRABCGVIJKLWBAVOVPVTURZPQMUSUTAVJVEWDWEVAABCVIJKLWBWFPQVBIVJVCUMVDV
      FVG $.
  $}

  ${
    $d f g x y z C $.  $d f g x y z F $.  $d f g x y z G $.  $d f g x y z ph $.
    $d f g x y z O $.  $d f g x y z P $.
    funcoppc.o $e |- O = ( oppCat ` C ) $.
    funcoppc.p $e |- P = ( oppCat ` D ) $.
    funcoppc.f $e |- ( ph -> F ( C Func D ) G ) $.
    $( A functor on categories yields a functor on the opposite categories (in
       the same direction), see definition 3.41 of [Adamek] p. 39.
       (Contributed by Mario Carneiro, 4-Jan-2017.) $)
    funcoppc $p |- ( ph -> F ( O Func P ) tpos G ) $=
      ( cfv cco ccid eqid wcel cop co wa syl cv vx vy vz vf vg cbs chom oppcbas
      ctpos ccat cfunc wbr df-br sylib funcrcl simpld oppccat simprd funcf1 cxp
      funcfn2 tposfn wf adantr simprr simprl funcf2 ovtpos feq1i oppchom feq23i
      wfn bitri sylibr simpr funcid wceq oppcid fveq1d fveq12d 3eqtr4d 3ad2ant1
      simp23 simp22 simp21 simp3r syl6eleq simp3l funcco oppcco fveq2d ffvelrnd
      a1i w3a fveq1i oveq12i 3eqtr4g isfuncd ) AUAUBUCBUFKZCUFKZGGLKZGMKZUDUEDE
      FUIZGUGKZDMKZDUGKZDLKZWSBGHWSNZUHWTCDIWTNZUHXDNXFNXBNXENXANXGNABUJOZGUJOA
      XJCUJOZAEFPZBCUKQZOZXJXKRAEFXMULZXNJEFXMUMUNBCXLUOSZUPZBGHUQSAXKDUJOAXJXK
      XPURZCDIUQSAWSWTBCEFXHXIJUSZAFWSWSUTZVLXCXTVLAWSBCEFXHJVAWSWSFVBSAUATZWSO
      ZUBTZWSOZRZRZYCYABUGKZQZYCEKZYAEKZCUGKZQZYCYAFQZVCZYAYCXDQZYJYIXFQZYAYCXC
      QZVCZYFWSBCEFYGYKYCYAXHYGNZYKNZAXOYEJVDAYBYDVEAYBYDVFVGYRYOYPYMVCYNYOYPYQ
      YMYAYCFVHZVIYOYPYHYLYMBYGGYAYCYSHVJZCYKDYJYIYTIVJVKVMVNAYBRZYABMKZKZYAYAF
      QZKYJCMKZKYAXBKZYAYAXCQZKYJXEKUUCWSBUUDCEFUUGYAXHUUDNZUUGNZAXOYBJVDAYBVOV
      PUUCUUHUUEUUIUUFUUIUUFVQUUCYAYAFVHWMUUCYAXBUUDAXBUUDVQZYBAXJUULXQUUDBGHUU
      JVRSVDVSVTUUCYJXEUUGAXEUUGVQZYBAXKUUMXRUUGCDIUUKVRSVDVSWAAYBYDUCTZWSOZWNZ
      UDTZYOOZUETZYCUUNXDQZOZRZWNZUUSUUQYAYCPUUNXAQQZUUNYAFQZKZUUSUUNYCFQZKZUUQ
      YMKZYJYIPUUNEKZXGQZQZUVDYAUUNXCQZKUUSYCUUNXCQZKZUUQYQKZUVKQUVCUUQUUSUUNYC
      PYABLKZQQZUVEKUVIUVHUVJYIPYJCLKZQQUVFUVLUVCWSBUVQCEFYGUUSUUQUVSUUNYCYAXHY
      SUVQNZUVSNZAUUPXOUVBJWBAYBYDUUOUVBWCZAYBYDUUOUVBWDZAYBYDUUOUVBWEZUVCUUSUU
      TUUNYCYGQAUUPUURUVAWFBYGGYCUUNYSHVJWGUVCUUQYOYHAUUPUURUVAWHUUBWGWIUVCUVDU
      VRUVEUVCWSBUVQUUQUUSGYAYCUUNXHUVTHUWDUWCUWBWJWKUVCWTCUVSUVIUVHDYJYIUVJXIU
      WAIUVCWSWTYAEAUUPWSWTEVCUVBXSWBZUWDWLUVCWSWTYCEUWEUWCWLUVCWSWTUUNEUWEUWBW
      LWJWAUVDUVMUVEYAUUNFVHWOUVOUVHUVPUVIUVKUUSUVNUVGYCUUNFVHWOUUQYQYMUUAWOWPW
      QWR $.
  $}

  ${
    $d b c z B $.  $d b c z C $.  $d b c z H $.  $d z ph $.  $d z X $.
    $d z Y $.
    idfuval.i $e |- I = ( idFunc ` C ) $.
    idfuval.b $e |- B = ( Base ` C ) $.
    idfuval.c $e |- ( ph -> C e. Cat ) $.
    ${
      idfuval.h $e |- H = ( Hom ` C ) $.
      $( Value of the identity functor.  (Contributed by Mario Carneiro,
         3-Jan-2017.) $)
      idfuval $p |- ( ph -> I =
        <. ( _I |` B ) , ( z e. ( B X. B ) |-> ( _I |` ( H ` z ) ) ) >. ) $=
        ( vc vb cidfu cfv cid cres cv wceq cbs chom cxp cmpt cop ccat csb fvexd
        wcel cvv fveq2 syl6eqr wa simpr reseq2d sqxpeqd fveq2d fveq1d mpteq12dv
        simpl opeq12d csbied2 df-idfu opex fvmpt syl syl5eq ) AFDMNZOCPZBCCUAZO
        BQZENZPZUBZUCZGADUDUGVFVMRIKDLKQZSNZOLQZPZBVPVPUAZOVIVNTNZNZPZUBZUCZUEV
        MUDMVNDRZLVOCWCVMUHWDVNSUFWDVODSNCVNDSUIHUJWDVPCRZUKZVQVGWBVLWFVPCOWDWE
        ULZUMWFBVRWAVHVKWFVPCWGUNWFVTVJOWFVIVSEWFVSDTNEWFVNDTWDWEURUOJUJUPUMUQU
        SUTBKLVAVGVLVBVCVDVE $.

      idfu2nd.x $e |- ( ph -> X e. B ) $.
      idfu2nd.y $e |- ( ph -> Y e. B ) $.
      $( Value of the morphism part of the identity functor.  (Contributed by
         Mario Carneiro, 3-Jan-2017.) $)
      idfu2nd $p |- ( ph -> ( X ( 2nd ` I ) Y ) = ( _I |` ( X H Y ) ) ) $=
        ( vz c2nd cfv cid cres cvv wcel co cop df-ov cv cxp cmpt idfuval fveq2d
        cbs fvex eqeltri resiexg ax-mp xpex mptex op2nd syl6eq wa simpr syl6eqr
        wceq reseq2d opelxpi syl2anc ovex mp1i fvmptd syl5eq ) AFGEOPZUAFGUBZVI
        PQFGDUAZRZFGVIUCANVJQNUDZDPZRZVLBBUEZVISAVIQBRZNVPVOUFZUBZOPVRAEVSOANBC
        DEHIJKUGUHVQVRBSTVQSTBCUIPSICUIUJUKZBSULUMNVPVOBBVTVTUNUOUPUQAVMVJVAZUR
        ZVNVKQWBVNVJDPVKWBVMVJDAWAUSUHFGDUCUTVBAFBTGBTVJVPTLMFGBBVCVDVKSTVLSTAF
        GDVEVKSULVFVGVH $.

      idfu2.f $e |- ( ph -> F e. ( X H Y ) ) $.
      $( Value of the morphism part of the identity functor.  (Contributed by
         Mario Carneiro, 28-Jan-2017.) $)
      idfu2 $p |- ( ph -> ( ( X ( 2nd ` I ) Y ) ` F ) = F ) $=
        ( c2nd cfv co cid cres idfu2nd fveq1d wcel wceq fvresi syl eqtrd ) ADGH
        FPQRZQDSGHERZTZQZDADUHUJABCEFGHIJKLMNUAUBADUIUCUKDUDOUIDUEUFUG $.
    $}

    $( Value of the object part of the identity functor.  (Contributed by Mario
       Carneiro, 3-Jan-2017.) $)
    idfu1st $p |- ( ph -> ( 1st ` I ) = ( _I |` B ) ) $=
      ( vz c1st cfv cid cres cxp cv chom cmpt cop cvv wcel cbs eqid fveq2d fvex
      idfuval eqeltri resiexg ax-mp xpex mptex op1st syl6eq ) ADIJKBLZHBBMZKHNC
      OJZJLZPZQZIJULADUQIAHBCUNDEFGUNUAUDUBULUPBRSULRSBCTJRFCTUCUEZBRUFUGHUMUOB
      BURURUHUIUJUK $.

    idfu1.x $e |- ( ph -> X e. B ) $.
    $( Value of the object part of the identity functor.  (Contributed by Mario
       Carneiro, 3-Jan-2017.) $)
    idfu1 $p |- ( ph -> ( ( 1st ` I ) ` X ) = X ) $=
      ( c1st cfv cid cres idfu1st fveq1d wcel wceq fvresi syl eqtrd ) AEDJKZKEL
      BMZKZEAEUAUBABCDFGHNOAEBPUCEQIBERST $.
  $}

  ${
    $d f g x y z C $.  $d f g x y z I $.
    idfucl.i $e |- I = ( idFunc ` C ) $.
    $( The identity functor is a functor.  Example 3.20(1) of [Adamek] p. 30.
       (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    idfucl $p |- ( C e. Cat -> I e. ( C Func C ) ) $=
      ( vz vx vg vf vy wcel cid cfv cop co cv cvv wceq wral wa fvresi syl cfunc
      ccat cbs cres c2nd cxp chom cmpt eqid id idfuval fveq2d fvex resiexg xpex
      ax-mp mptex syl6eq opeq2d eqtr4d wbr wf c1st cmap cixp ccid cco wf1o f1oi
      op2nd f1of elmap mpbir xp1st adantl xp2nd oveq12d df-ov 1st2nd2 syl5eleqr
      mp1i oveq1d ralrimiva mptelixpg sylibr eqeltrd simpl simpr catidcl fveq1d
      wb idfu2nd 3eqtr4d ad2antrr simplrl simplrr simprl simprr catcocl opeq12d
      idfu2 oveq123d ralrimivva jca isfunc mpbir3and df-br sylib ) AUBIZBJAUCKZ
      UDZBUEKZLZAAUAMZXIBXKDXJXJUFZJDNZAUGKZKZUDZUHZLZXMXIDXJAXQBCXJUIZXIUJZXQU
      IZUKZXIXLXTXKXIXLYAUEKXTXIBYAUEYEULXKXTXJOIXKOIAUCUMZXJOUNUPDXOXSXJXJYFYF
      UOZUQVJURZUSUTXIXKXLXNVAZXMXNIXIYIXJXJXKVBZXLDXOXPVCKZXKKZXPUEKZXKKZXQMZX
      RVDMZVEZIENZAVFKZKZYRYRXLMZKZYRXKKZYSKZPZFNZGNZYRHNZLZXPAVGKZMZMZYRXPXLMZ
      KZUUFUUHXPXLMKZUUGYRUUHXLMKZUUCUUHXKKZLZXPXKKZUUJMZMZPZFUUHXPXQMZQGYRUUHX
      QMZQZDXJQHXJQZRZEXJQXJXJXKVHYJXIXJVIXJXJXKVKWAXIXLXTYQYHXIXSYPIZDXOQZXTYQ
      IZXIUVHDXOXIXPXOIZRZXSXRXRVDMZYPXSUVMIXRXRXSVBZXRXRXSVHUVNXRVIXRXRXSVKUPX
      RXRXSXPXQUMZUVOVLVMUVLYOXRXRVDUVLYOYKYMLZXQKZXRUVLYOYKYMXQMUVQUVLYLYKYNYM
      XQUVLYKXJIZYLYKPUVKUVRXIXPXJXJVNVOXJYKSTUVLYMXJIZYNYMPUVKUVSXIXPXJXJVPVOX
      JYMSTVQYKYMXQVRURUVLXPUVPXQUVKXPUVPPXIXPXJXJVSVOULUTWBVTWCXOOIUVJUVIWKYGD
      XOXSYPOWDUPWEWFXIUVGEXJXIYRXJIZRZUUEUVFUWAYTJYRYRXQMZUDZKZYTUUBUUDUWAYTUW
      BIUWDYTPUWAXJAYSXQYRYBYDYSUIZXIUVTWGZXIUVTWHZWIUWBYTSTUWAYTUUAUWCUWAXJAXQ
      BYRYRCYBUWFYDUWGUWGWLWJUWAUUCYRYSUVTUUCYRPZXIXJYRSZVOULWMUWAUVEHDXJXJUWAU
      UHXJIZXPXJIZRZRZUVBGFUVDUVCUWMUUGUVDIZUUFUVCIZRZRZUULJYRXPXQMZUDZKZUULUUN
      UVAUWQUULUWRIUWTUULPUWQXJAUUJUUGUUFXQYRUUHXPYBYDUUJUIZUWAXIUWLUWPUWFWNZUW
      AUVTUWLUWPUWGWNZUWAUWJUWKUWPWOZUWAUWJUWKUWPWPZUWMUWNUWOWQZUWMUWNUWOWRZWSU
      WRUULSTUWQUULUUMUWSUWQXJAXQBYRXPCYBUXBYDUXCUXEWLWJUWQUUOUUFUUPUUGUUTUUKUW
      QUURUUIUUSXPUUJUWQUUCYRUUQUUHUWQUVTUWHUXCUWITUWQUWJUUQUUHPUXDXJUUHSTWTUWQ
      UWKUUSXPPUXEXJXPSTVQUWQXJAUUFXQBUUHXPCYBUXBYDUXDUXEUXGXAUWQXJAUUGXQBYRUUH
      CYBUXBYDUXCUXDUXFXAXBWMXCXCXDWCXIEHDXJXJAUUJYSGFAXKXLXQYSXQUUJYBYBYDYDUWE
      UWEUXAUXAYCYCXEXFXKXLXNXGXHWF $.
  $}

  ${
    $d f g x y B $.  $d f g x y F $.  $d f g x y G $.  $d f g x y ph $.
    $d x y X $.  $d x y Y $.
    cofuval.b $e |- B = ( Base ` C ) $.
    cofuval.f $e |- ( ph -> F e. ( C Func D ) ) $.
    cofuval.g $e |- ( ph -> G e. ( D Func E ) ) $.
    $( Value of the composition of two functors.  (Contributed by Mario
       Carneiro, 3-Jan-2017.) $)
    cofuval $p |- ( ph -> ( G o.func F ) =
      <. ( ( 1st ` G ) o. ( 1st ` F ) ) ,
         ( x e. B , y e. B |-> ( ( ( ( 1st ` F ) ` x ) ( 2nd ` G )
           ( ( 1st ` F ) ` y ) ) o. ( x ( 2nd ` F ) y ) ) ) >. ) $=
      ( vg vf cvv c1st cfv c2nd co wcel cv ccom cdm cmpt2 cop ccofu df-cofu a1i
      wceq wa simprl fveq2d simprr coeq12d cxp dmeqd wfn cfunc wrel wbr relfunc
      1st2ndbr sylancr funcfn2 fndm syl adantr eqtrd dmxpid syl6eq fveq1d oveqd
      oveq123d mpt2eq123dv opeq12d elex opex ovmpt2d ) AMNIHOOMUAZPQZNUAZPQZUBZ
      BCWARQZUCZUCZWFBUAZWBQZCUAZWBQZVSRQZSZWGWIWDSZUBZUDZUEZIPQZHPQZUBZBCDDWGW
      RQZWIWRQZIRQZSZWGWIHRQZSZUBZUDZUEZUFOUFMNOOWPUDUIABCNMUGUHAVSIUIZWAHUIZUJ
      ZUJZWCWSWOXGXLVTWQWBWRXLVSIPAXIXJUKZULXLWAHPAXIXJUMZULZUNXLBCWFWFWNDDXFXL
      WFDDUOZUCDXLWEXPXLWEXDUCZXPXLWDXDXLWAHRXNULZUPAXQXPUIZXKAXDXPUQXSADEFWRXD
      JAEFURSZUSHXTTZWRXDXTUTEFVAKHXTVBVCVDXPXDVEVFVGVHUPDVIVJZYBXLWLXCWMXEXLWH
      WTWJXAWKXBXLVSIRXMULXLWGWBWRXOVKXLWIWBWRXOVKVMXLWDXDWGWIXRVLUNVNVOAIFGURS
      ZTIOTLIYCVPVFAYAHOTKHXTVPVFXHOTAWSXGVQUHVR $.

    $( Value of the object part of the functor composition.  (Contributed by
       Mario Carneiro, 3-Jan-2017.) $)
    cofu1st $p |- ( ph ->
      ( 1st ` ( G o.func F ) ) = ( ( 1st ` G ) o. ( 1st ` F ) ) ) $=
      ( vx vy co c1st cfv ccom cv c2nd fvex cbs ccofu cmpt2 cofuval fveq2d coex
      cop cvv eqeltri mpt2ex op1st syl6eq ) AGFUAMZNOGNOZFNOZPZKLBBKQZUNOLQZUNO
      GROMUPUQFROMPZUBZUFZNOUOAULUTNAKLBCDEFGHIJUCUDUOUSUMUNGNSFNSUEKLBBURBCTOU
      GHCTSUHZVAUIUJUK $.

    cofu2nd.x $e |- ( ph -> X e. B ) $.
    $( Value of the object part of the functor composition.  (Contributed by
       Mario Carneiro, 28-Jan-2017.) $)
    cofu1 $p |- ( ph -> ( ( 1st ` ( G o.func F ) ) ` X ) =
      ( ( 1st ` G ) ` ( ( 1st ` F ) ` X ) ) ) $=
      ( ccofu co c1st cfv ccom cofu1st fveq1d wcel wf wceq c2nd eqid cfunc wrel
      cbs wbr relfunc 1st2ndbr sylancr funcf1 fvco3 syl2anc eqtrd ) AHGFMNOPZPH
      GOPZFOPZQZPZHURPUQPZAHUPUSABCDEFGIJKRSABDUGPZURUAHBTUTVAUBABVBCDURFUCPZIV
      BUDACDUENZUFFVDTURVCVDUHCDUIJFVDUJUKULLBVBHUQURUMUNUO $.

    cofu2nd.y $e |- ( ph -> Y e. B ) $.
    $( Value of the morphism part of the functor composition.  (Contributed by
       Mario Carneiro, 3-Jan-2017.) $)
    cofu2nd $p |- ( ph ->
      ( X ( 2nd ` ( G o.func F ) ) Y ) = ( ( ( ( 1st ` F ) ` X ) ( 2nd ` G )
           ( ( 1st ` F ) ` Y ) ) o. ( X ( 2nd ` F ) Y ) ) ) $=
      ( vx vy c1st cfv c2nd co cv ccom ccofu cvv cmpt2 cofuval fveq2d fvex coex
      cop cbs eqeltri mpt2ex op2nd syl6eq wceq wa simprl simprr oveq12d coeq12d
      wcel ovex a1i ovmpt2d ) AOPHIBBOUAZFQRZRZPUAZVGRZGSRZTZVFVIFSRZTZUBZHVGRZ
      IVGRZVKTZHIVMTZUBZGFUCTZSRZUDAWBGQRZVGUBZOPBBVOUEZUJZSRWEAWAWFSAOPBCDEFGJ
      KLUFUGWDWEWCVGGQUHFQUHUIOPBBVOBCUKRUDJCUKUHULZWGUMUNUOAVFHUPZVIIUPZUQUQZV
      LVRVNVSWJVHVPVJVQVKWJVFHVGAWHWIURZUGWJVIIVGAWHWIUSZUGUTWJVFHVIIVMWKWLUTVA
      MNVTUDVBAVRVSVPVQVKVCHIVMVCUIVDVE $.

    cofu2.h $e |- H = ( Hom ` C ) $.
    cofu2.y $e |- ( ph -> R e. ( X H Y ) ) $.
    $( Value of the morphism part of the functor composition.  (Contributed by
       Mario Carneiro, 28-Jan-2017.) $)
    cofu2 $p |- ( ph -> ( ( X ( 2nd ` ( G o.func F ) ) Y ) ` R ) =
      ( ( ( ( 1st ` F ) ` X ) ( 2nd ` G ) ( ( 1st ` F ) ` Y ) ) `
        ( ( X ( 2nd ` F ) Y ) ` R ) ) ) $=
      ( co cfv ccofu c2nd c1st ccom cofu2nd fveq1d chom wf wcel wceq eqid cfunc
      wrel wbr relfunc 1st2ndbr sylancr funcf2 fvco3 syl2anc eqtrd ) AEJKHGUASU
      BTSZTEJGUCTZTZKVCTZHUBTSZJKGUBTZSZUDZTZEVHTVFTZAEVBVIABCDFGHJKLMNOPUEUFAJ
      KISZVDVEDUGTZSZVHUHEVLUIVJVKUJABCDVCVGIVMJKLQVMUKACDULSZUMGVOUIVCVGVOUNCD
      UOMGVOUPUQOPURRVLVNEVFVHUSUTVA $.
  $}

  ${
    $d x y B $.  $d x y F $.  $d x y G $.  $d x y H $.  $d x y ph $.
    $d x y K $.
    cofuval2.b $e |- B = ( Base ` C ) $.
    cofuval2.f $e |- ( ph -> F ( C Func D ) G ) $.
    cofuval2.x $e |- ( ph -> H ( D Func E ) K ) $.
    $( Value of the composition of two functors.  (Contributed by Mario
       Carneiro, 3-Jan-2017.) $)
    cofuval2 $p |- ( ph -> ( <. H , K >. o.func <. F , G >. ) = <. ( H o. F ) ,
     ( x e. B , y e. B |-> ( ( ( F ` x ) K ( F ` y ) ) o. ( x G y ) ) ) >. ) $=
      ( cop co cfv ccom wcel cvv ccofu c1st cv c2nd cmpt2 cfunc wbr df-br sylib
      cofuval wceq wrel relfunc brrelex12 sylancr op1stg syl coeq12d w3a op2ndg
      wa 3ad2ant1 fveq1d oveq123d oveqd mpt2eq3dva opeq12d eqtrd ) AJKOZHIOZUAP
      VIUBQZVJUBQZRZBCDDBUCZVLQZCUCZVLQZVIUDQZPZVNVPVJUDQZPZRZUEZOJHRZBCDDVNHQZ
      VPHQZKPZVNVPIPZRZUEZOABCDEFGVJVILAHIEFUFPZUGZVJWKSMHIWKUHUIAJKFGUFPZUGZVI
      WMSNJKWMUHUIUJAVMWDWCWJAVKJVLHAJTSKTSVAZVKJUKAWMULWNWOFGUMNJKWMUNUOZJKTTU
      PUQAHTSITSVAZVLHUKZAWKULWLWQEFUMMHIWKUNUOZHITTUPUQZURABCDDWBWIAVNDSZVPDSZ
      USZVSWGWAWHXCVOWEVQWFVRKAXAVRKUKZXBAWOXDWPJKTTUTUQVBXCVNVLHAXAWRXBWTVBZVC
      XCVPVLHXEVCVDXCVTIVNVPAXAVTIUKZXBAWQXFWSHITTUTUQVBVEURVFVGVH $.
  $}

  ${
    $d f g x y z C $.  $d f g x y z E $.  $d f g x y z F $.  $d f g x y z ph $.
    $d f g x y z G $.
    cofucl.f $e |- ( ph -> F e. ( C Func D ) ) $.
    cofucl.g $e |- ( ph -> G e. ( D Func E ) ) $.
    $( The composition of two functors is a functor.  Proposition 3.23 of
       [Adamek] p. 33.  (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    cofucl $p |- ( ph -> ( G o.func F ) e. ( C Func E ) ) $=
      ( vx vy vz co cfv c2nd eqid wcel wf wral wa adantr vg vf ccofu c1st cfunc
      cop ccom cbs cmpt2 cofuval cofu1st fveq2d fvex coex mpt2ex syl6eq opeq12d
      cv op2nd eqtr4d wbr cxp chom cmap cixp ccid wceq cco wrel relfunc sylancr
      1st2ndbr funcf1 fco syl2anc feq1d mpbird wfn fnmpt2i fneq1d mpbiri simprl
      ovex ffvelrnd simprr funcf2 elmap sylibr cofu2nd cofu1 oveq12d ralrimivva
      oveq1d 3eltr4d fveq2 df-ov syl6eqr vex op1std op2ndd ralxp elixp sylanbrc
      eleq12d simpr funcid ffvelrnda eqtrd funcrcl simpld catidcl cofu2 3eqtr4d
      simplr simprlr simprll simprrl simprrr catcocl fvco3 funcco 3eqtrd fveq1d
      ccat syl oveq123d anassrs ralrimiva simprd isfunc mpbir3and df-br eqeltrd
      jca sylib ) AFEUCLZYPUDMZYPNMZUFZBDUELZAYPFUDMZEUDMZUGZIJBUHMZUUDIURZUUBM
      ZJURZUUBMZFNMZLZUUEUUGENMZLZUGZUIZUFZYSAIJUUDBCDEFUUDOZGHUJZAYQUUCYRUUNAU
      UDBCDEFUUPGHUKZAYRUUONMUUNAYPUUONUUQULUUCUUNUUAUUBFUDUMEUDUMUNIJUUDUUDUUM
      BUHUMZUUSUOUSUPZUQUTAYQYRYTVAZYSYTPAUVAUUDDUHMZYQQZYRKUUDUUDVBZKURZUDMZYQ
      MZUVENMZYQMZDVCMZLZUVEBVCMZMZVDLZVEPZUUEBVFMZMZUUEUUEYRLMZUUEYQMZDVFMZMZV
      GZUAURZUBURZUUEUUGUFZUVEBVHMZLLZUUEUVEYRLZMZUWCUUGUVEYRLMZUWDUUEUUGYRLZMZ
      UVSUUGYQMZUFZUVEYQMZDVHMZLZLZVGZUAUUGUVEUVLLZRUBUUEUUGUVLLZRZKUUDRJUUDRZS
      ZIUUDRAUVCUUDUVBUUCQZACUHMZUVBUUAQUUDUXFUUBQZUXEAUXFUVBCDUUAUUIUXFOZUVBOZ
      ACDUELZVIFUXJPZUUAUUIUXJVAZCDVJHFUXJVLVKZVMAUUDUXFBCUUBUUKUUPUXHABCUELZVI
      EUXNPZUUBUUKUXNVAZBCVJGEUXNVLVKZVMZUUDUXFUVBUUAUUBVNVOAUUDUVBYQUUCUURVPVQ
      AYRUVDVRZUVEYRMZUVNPZKUVDRZUVOAUXSUUNUVDVRIJUUDUUDUUMUUNUUNOUUJUULUUFUUHU
      UIWCUUEUUGUUKWCUNVSAUVDYRUUNUUTVTWAAUWKUVSUWMUVJLZUXAVDLZPZJUUDRIUUDRUYBA
      UYEIJUUDUUDAUUEUUDPZUUGUUDPZSZSZUUMUUFUUAMZUUHUUAMZUVJLZUXAVDLZUWKUYDUYIU
      XAUYLUUMQZUUMUYMPUYIUUFUUHCVCMZLZUYLUUJQUXAUYPUULQUYNUYIUXFCDUUAUUIUYOUVJ
      UUFUUHUXHUYOOZUVJOZAUXLUYHUXMTUYIUUDUXFUUEUUBAUXGUYHUXRTZAUYFUYGWBZWDUYIU
      UDUXFUUGUUBUYSAUYFUYGWEZWDWFUYIUUDBCUUBUUKUVLUYOUUEUUGUUPUVLOZUYQAUXPUYHU
      XQTUYTVUAWFUXAUYPUYLUUJUULVNVOUYLUXAUUMUYJUYKUVJWCUUEUUGUVLWCWGWHUYIUUDBC
      DEFUUEUUGUUPAUXOUYHGTZAUXKUYHHTZUYTVUAWIUYIUYCUYLUXAVDUYIUVSUYJUWMUYKUVJU
      YIUUDBCDEFUUEUUPVUCVUDUYTWJUYIUUDBCDEFUUGUUPVUCVUDVUAWJWKWMWNWLUYAUYEKIJU
      UDUUDUVEUWEVGZUXTUWKUVNUYDVUEUXTUWEYRMUWKUVEUWEYRWOUUEUUGYRWPWQVUEUVKUYCU
      VMUXAVDVUEUVGUVSUVIUWMUVJVUEUVFUUEYQUUEUUGUVEIWRZJWRZWSULVUEUVHUUGYQUUEUU
      GUVEVUFVUGWTULWKVUEUVMUWEUVLMUXAUVEUWEUVLWOUUEUUGUVLWPWQWKXDXAWHKUVDUVNYR
      YPNUMXBXCAUXDIUUDAUYFSZUWBUXCVUHUVQUUEUUEUUKLMZUUFUUFUUILZMZUYJUVTMZUVRUW
      AVUHVUKUUFCVFMZMZVUJMVULVUHVUIVUNVUJVUHUUDBUVPCUUBUUKVUMUUEUUPUVPOZVUMOZA
      UXPUYFUXQTZAUYFXEZXFULVUHUXFCVUMDUUAUUIUVTUUFUXHVUPUVTOZAUXLUYFUXMTZAUUDU
      XFUUEUUBUXRXGZXFXHVUHUUDBCUVQDEFUVLUUEUUEUUPAUXOUYFGTZAUXKUYFHTZVURVURVUB
      VUHUUDBUVPUVLUUEUUPVUBVUOABYDPZUYFAVVDCYDPZAUXOVVDVVESGBCEXIYEXJZTZVURXKX
      LVUHUVSUYJUVTVUHUUDBCDEFUUEUUPVVBVVCVURWJZULXMVUHUXBJKUUDUUDVUHUYGUVEUUDP
      ZSZSUWSUBUAUXAUWTVUHVVJUWDUXAPZUWCUWTPZSZUWSVUHVVJVVMSZSZUWGUUFUVEUUBMZUU
      ILZUUEUVEUUKLZUGZMZUWCUUGUVEUUKLZMZUUHVVPUUILMZUWDUULMZUUJMZUYJUYKUFZVVPU
      UAMZUWPLZLZUWIUWRVVOVVTUWGVVRMZVVQMZVWBVWDUUFUUHUFVVPCVHMZLLZVVQMVWIVVOUU
      EUVEUVLLZUUFVVPUYOLZVVRQUWGVWNPVVTVWKVGVVOUUDBCUUBUUKUVLUYOUUEUVEUUPVUBUY
      QVUHUXPVVNVUQTZAUYFVVNXNZVUHUYGVVIVVMXOZWFVVOUUDBUWFUWDUWCUVLUUEUUGUVEUUP
      VUBUWFOZVUHVVDVVNVVGTVWQVUHUYGVVIVVMXPZVWRVUHVVJVVKVVLXQZVUHVVJVVKVVLXRZX
      SVWNVWOUWGVVQVVRXTVOVVOVWJVWMVVQVVOUUDBUWFCUUBUUKUVLUWDUWCVWLUUEUUGUVEUUP
      VUBVWSVWLOZVWPVWQVWTVWRVXAVXBYAULVVOUXFCVWLDUUAUUIUYOVWDVWBUWPUUFUUHVVPUX
      HUYQVXCUWPOZVUHUXLVVNVUTTVUHUUFUXFPVVNVVATVVOUUDUXFUUGUUBVUHUXGVVNAUXGUYF
      UXRTTZVWTWDVVOUUDUXFUVEUUBVXEVWRWDVVOUXAUYPUWDUULVVOUUDBCUUBUUKUVLUYOUUEU
      UGUUPVUBUYQVWPVWQVWTWFVXAWDVVOUWTUUHVVPUYOLUWCVWAVVOUUDBCUUBUUKUVLUYOUUGU
      VEUUPVUBUYQVWPVWTVWRWFVXBWDYAYBVVOUWGUWHVVSVVOUUDBCDEFUUEUVEUUPVUHUXOVVNV
      VBTZVUHUXKVVNVVCTZVWQVWRWIYCVVOUWJVWCUWLVWEUWQVWHVVOUWNVWFUWOVWGUWPVVOUVS
      UYJUWMUYKVUHUVSUYJVGVVNVVHTVVOUUDBCDEFUUGUUPVXFVXGVWTWJUQVVOUUDBCDEFUVEUU
      PVXFVXGVWRWJWKVVOUUDBCUWCDEFUVLUUGUVEUUPVXFVXGVWTVWRVUBVXBXLVVOUUDBCUWDDE
      FUVLUUEUUGUUPVXFVXGVWQVWTVUBVXAXLYFXMYGWLWLYNYHAIJKUUDUVBBUWFUVPUBUADYQYR
      UVLUVTUVJUWPUUPUXIVUBUYRVUOVUSVWSVXDVVFAVVEDYDPZAUXKVVEVXHSHCDFXIYEYIYJYK
      YQYRYTYLYOYM $.
  $}

  ${
    $d x y C $.  $d x y G $.  $d x y H $.  $d x y K $.  $d x y ph $.
    cofuass.g $e |- ( ph -> G e. ( C Func D ) ) $.
    cofuass.h $e |- ( ph -> H e. ( D Func E ) ) $.
    cofuass.k $e |- ( ph -> K e. ( E Func F ) ) $.
    $( Functor composition is associative.  (Contributed by Mario Carneiro,
       3-Jan-2017.) $)
    cofuass $p |- ( ph ->
      ( ( K o.func H ) o.func G ) = ( K o.func ( H o.func G ) ) ) $=
      ( vx vy ccofu co c1st cfv ccom c2nd wcel cbs cmpt2 cop coass eqid cofu1st
      cv coeq1d coeq2d 3eqtr4a w3a cfunc 3ad2ant1 wrel relfunc 1st2ndbr sylancr
      wbr simp2 ffvelrnd simp3 cofu2nd cofu1 oveq12d coeq12d mpt2eq3dva opeq12d
      funcf1 cofucl cofuval 3eqtr4d ) AHGNOZPQZFPQZRZLMBUAQZVPLUGZVNQZMUGZVNQZV
      LSQOZVQVSFSQZOZRZUBZUCHPQZGFNOZPQZRZLMVPVPVQWHQZVSWHQZHSQZOZVQVSWGSQOZRZU
      BZUCVLFNOHWGNOAVOWIWEWPAWFGPQZRZVNRWFWQVNRZRVOWIWFWQVNUDAVMWRVNACUAQZCDEG
      HWTUEZJKUFUHAWHWSWFAVPBCDFGVPUEZIJUFUIUJALMVPVPWDWOAVQVPTZVSVPTZUKZVRWQQZ
      VTWQQZWLOZVRVTGSQOZRZWCRXHXIWCRZRWDWOXHXIWCUDXEWAXJWCXEWTCDEGHVRVTXAAXCGC
      DULOTXDJUMZAXCHDEULOTXDKUMXEVPWTVQVNXEVPWTBCVNWBXBXAAXCVNWBBCULOZURZXDAXM
      UNFXMTZXNBCUOIFXMUPUQUMVHZAXCXDUSZUTXEVPWTVSVNXPAXCXDVAZUTVBUHXEWMXHWNXKX
      EWJXFWKXGWLXEVPBCDFGVQXBAXCXOXDIUMZXLXQVCXEVPBCDFGVSXBXSXLXRVCVDXEVPBCDFG
      VQVSXBXSXLXQXRVBVEUJVFVGALMVPBCEFVLXBIACDEGHJKVIVJALMVPBDEWGHXBABCDFGIJVI
      KVJVK $.
  $}

  ${
    $d x y C $.  $d x D $.  $d x y F $.  $d x y I $.  $d x y ph $.
    cofulid.g $e |- ( ph -> F e. ( C Func D ) ) $.
    ${
      cofulid.1 $e |- I = ( idFunc ` D ) $.
      $( The identity functor is a left identity for composition.  (Contributed
         by Mario Carneiro, 3-Jan-2017.) $)
      cofulid $p |- ( ph -> ( I o.func F ) = F ) $=
        ( vx vy c1st cfv ccom cbs cv c2nd co eqid wcel syl wceq cmpt2 cop ccofu
        cid cres ccat cfunc funcrcl simprd idfu1st coeq1d wrel relfunc 1st2ndbr
        wa wf wbr sylancr funcf1 fcoi2 eqtrd w3a chom ffvelrnda 3adant3 3adant2
        3ad2ant1 idfu2nd simp2 simp3 funcf2 mpt2eq3dva cxp funcfn2 sylib eqtr4d
        wfn fnov opeq12d idfucl cofuval 1st2nd 3eqtr4d ) AEJKZDJKZLZHIBMKZWGHNZ
        WEKZINZWEKZEOKPZWHWJDOKZPZLZUAZUBWEWMUBZEDUCPDAWFWEWPWMAWFUDCMKZUEZWELZ
        WEAWDWSWEAWRCEGWRQZABUFRZCUFRZADBCUGPZRZXBXCUOFBCDUHSUIZUJUKAWGWRWEUPWT
        WETAWGWRBCWEWMWGQZXAAXDULZXEWEWMXDUQZBCUMZFDXDUNURZUSZWGWRWEUTSVAAWPHIW
        GWGWNUAZWMAHIWGWGWOWNAWHWGRZWJWGRZVBZWOUDWIWKCVCKZPZUEZWNLZWNXPWLXSWNXP
        WRCXQEWIWKGXAAXNXCXOXFVGXQQZAXNWIWRRXOAWGWRWHWEXLVDVEAXOWKWRRXNAWGWRWJW
        EXLVDVFVHUKXPWHWJBVCKZPZXRWNUPXTWNTXPWGBCWEWMYBXQWHWJXGYBQYAAXNXIXOXKVG
        AXNXOVIAXNXOVJVKYCXRWNUTSVAVLAWMWGWGVMVQWMXMTAWGBCWEWMXGXKVNHIWGWGWMVRV
        OVPVSAHIWGBCCDEXGFAXCECCUGPRXFCEGVTSWAAXHXEDWQTXJFDXDWBURWC $.
    $}

    ${
      cofurid.1 $e |- I = ( idFunc ` C ) $.
      $( The identity functor is a right identity for composition.
         (Contributed by Mario Carneiro, 3-Jan-2017.) $)
      cofurid $p |- ( ph -> ( F o.func I ) = F ) $=
        ( vx vy c1st cfv ccom cbs co eqid wcel syl wceq eqtrd 3ad2ant1 cv cmpt2
        c2nd cop ccofu cres ccat cfunc wa funcrcl simpld idfu1st coeq2d wf wrel
        cid wbr relfunc 1st2ndbr sylancr funcf1 w3a chom fveq1d fvresi 3ad2ant2
        fcoi1 oveq12d simp2 simp3 idfu2nd coeq12d funcf2 mpt2eq3dva cxp funcfn2
        3ad2ant3 wfn fnov sylib eqtr4d opeq12d idfucl cofuval 1st2nd 3eqtr4d )
        ADJKZEJKZLZHIBMKZWJHUAZWHKZIUAZWHKZDUCKZNZWKWMEUCKNZLZUBZUDWGWOUDZDEUEN
        DAWIWGWSWOAWIWGUPWJUFZLZWGAWHXAWGAWJBEGWJOZABUGPZCUGPZADBCUHNZPZXDXEUIF
        BCDUJQUKZULZUMAWJCMKZWGUNXBWGRAWJXJBCWGWOXCXJOAXFUOZXGWGWOXFUQZBCURZFDX
        FUSUTZVAWJXJWGVGQSAWSHIWJWJWKWMWONZUBZWOAHIWJWJWRXOAWKWJPZWMWJPZVBZWRXO
        UPWKWMBVCKZNZUFZLZXOXSWPXOWQYBXSWLWKWNWMWOXSWLWKXAKZWKXSWKWHXAAXQWHXARX
        RXITZVDXQAYDWKRXRWJWKVEVFSXSWNWMXAKZWMXSWMWHXAYEVDXRAYFWMRXQWJWMVEVQSVH
        XSWJBXTEWKWMGXCAXQXDXRXHTXTOZAXQXRVIZAXQXRVJZVKVLXSYAWKWGKWMWGKCVCKZNZX
        OUNYCXORXSWJBCWGWOXTYJWKWMXCYGYJOAXQXLXRXNTYHYIVMYAYKXOVGQSVNAWOWJWJVOV
        RWOXPRAWJBCWGWOXCXNVPHIWJWJWOVSVTWAWBAHIWJBBCEDXCAXDEBBUHNPXHBEGWCQFWDA
        XKXGDWTRXMFDXFWEUTWF $.
    $}
  $}

  ${
    $d f h x z F $.  $d x y z G $.  $d f h x y z H $.  $d f h x z ph $.
    $d x y z S $.
    resfval.c $e |- ( ph -> F e. V ) $.
    resfval.d $e |- ( ph -> H e. W ) $.
    $( Value of the functor restriction operator.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    resfval $p |- ( ph -> ( F |`f H ) =
      <. ( ( 1st ` F ) |` dom dom H ) , ( x e. dom H |->
        ( ( ( 2nd ` F ) ` x ) |` ( H ` x ) ) ) >. ) $=
      ( vf vh cvv cv c1st cfv cdm cres c2nd cmpt wceq wcel cop cresf df-resf wa
      cmpt2 a1i simprl fveq2d simprr reseq12d fveq1d mpteq12dv opeq12d elex syl
      dmeqd opex ovmpt2d ) AIJCDKKILZMNZJLZOZOZPZBVBBLZUSQNZNZVEVANZPZRZUAZCMNZ
      DOZOZPZBVMVECQNZNZVEDNZPZRZUAZUBKUBIJKKVKUESABIJUCUFAUSCSZVADSZUDUDZVDVOV
      JVTWDUTVLVCVNWDUSCMAWBWCUGZUHWDVBVMWDVADAWBWCUIZUPZUPUJWDBVBVIVMVSWGWDVGV
      QVHVRWDVEVFVPWDUSCQWEUHUKWDVEVADWFUKUJULUMACETCKTGCEUNUOADFTDKTHDFUNUOWAK
      TAVOVTUQUFUR $.

    resfval2.g $e |- ( ph -> G e. X ) $.
    resfval2.d $e |- ( ph -> H Fn ( S X. S ) ) $.
    $( Value of the functor restriction operator.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    resfval2 $p |- ( ph -> ( <. F , G >. |`f H ) = <. ( F |` S ) ,
      ( x e. S , y e. S |-> ( ( x G y ) |` ( x H y ) ) ) >. ) $=
      ( vz cop co cfv cres wceq cresf c1st cdm cv c2nd cmpt cmpt2 cvv wcel opex
      a1i resfval op1stg syl2anc cxp wfn fndm syl dmxpid syl6eq reseq12d op2ndg
      dmeqd fveq1d reseq1d mpteq12dv fveq2 df-ov syl6eqr mpt2mpt opeq12d eqtrd
      ) AEFPZGUAQVMUBRZGUCZUCZSZOVOOUDZVMUERZRZVRGRZSZUFZPEDSZBCDDBUDZCUDZFQZWE
      WFGQZSZUGZPAOVMGUHIVMUHUIAEFUJUKLULAVQWDWCWJAVNEVPDAEHUIZFJUIZVNETKMEFHJU
      MUNAVPDDUOZUCDAVOWMAGWMUPVOWMTNWMGUQURZVCDUSUTVAAWCOWMVRFRZWASZUFWJAOVOWB
      WMWPWNAVTWOWAAVRVSFAWKWLVSFTKMEFHJVBUNVDVEVFBCODDWPWIVRWEWFPZTZWOWGWAWHWR
      WOWQFRWGVRWQFVGWEWFFVHVIWRWAWQGRWHVRWQGVGWEWFGVHVIVAVJUTVKVL $.
  $}

  ${
    $d z F $.  $d z H $.  $d z ph $.  $d z X $.  $d z Y $.
    resf1st.f $e |- ( ph -> F e. V ) $.
    resf1st.h $e |- ( ph -> H e. W ) $.
    resf1st.s $e |- ( ph -> H Fn ( S X. S ) ) $.
    $( Value of the functor restriction operator on objects.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    resf1st $p |- ( ph -> ( 1st ` ( F |`f H ) ) = ( ( 1st ` F ) |` S ) ) $=
      ( vz cresf co c1st cfv cdm cres cv cvv wcel wceq c2nd cmpt resfval fveq2d
      cop fvex resex dmexg mptexg 3syl op1stg sylancr cxp wfn fndm dmeqd dmxpid
      syl syl6eq reseq2d 3eqtrd ) ACDKLZMNCMNZDOZOZPZJVDJQZCUANNVGDNPZUBZUEZMNZ
      VFVCBPAVBVJMAJCDEFGHUCUDAVFRSVIRSZVKVFTVCVECMUFUGADFSVDRSVLHDFUHJVDVHRUIU
      JVFVIRRUKULAVEBVCAVEBBUMZOBAVDVMADVMUNVDVMTIVMDUOURUPBUQUSUTVA $.

    resf2nd.x $e |- ( ph -> X e. S ) $.
    resf2nd.y $e |- ( ph -> Y e. S ) $.
    $( Value of the functor restriction operator on morphisms.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    resf2nd $p |- ( ph ->
      ( X ( 2nd ` ( F |`f H ) ) Y ) = ( ( X ( 2nd ` F ) Y ) |` ( X H Y ) ) ) $=
      ( vz co c2nd cfv cres cvv wcel cresf cop df-ov cv cdm c1st resfval fveq2d
      cmpt wceq fvex resex dmexg mptexg 3syl op2ndg sylancr eqtrd simpr syl6eqr
      reseq12d cxp opelxpi syl2anc wfn fndm syl eleqtrrd ovex a1i fvmptd syl5eq
      wa ) AGHCDUAOZPQZOGHUBZVOQGHCPQZOZGHDOZRZGHVOUCANVPNUDZVQQZWADQZRZVTDUEZV
      OSAVOCUFQZWEUEZRZNWEWDUIZUBZPQZWIAVNWJPANCDEFIJUGUHAWHSTWISTZWKWIUJWFWGCU
      FUKULADFTWESTWLJDFUMNWEWDSUNUOWHWISSUPUQURAWAVPUJZVMZWBVRWCVSWNWBVPVQQVRW
      NWAVPVQAWMUSZUHGHVQUCUTWNWCVPDQVSWNWAVPDWOUHGHDUCUTVAAVPBBVBZWEAGBTHBTVPW
      PTLMGHBBVCVDADWPVEWEWPUJKWPDVFVGVHVTSTAVRVSGHVQVIULVJVKVL $.
  $}

  ${
    $d f g x y z C $.  $d f g x y z D $.  $d f g x y z F $.  $d f g x y z ph $.
    $d f g x y z H $.
    funcres.f $e |- ( ph -> F e. ( C Func D ) ) $.
    funcres.h $e |- ( ph -> H e. ( Subcat ` C ) ) $.
    $( A functor restricted to a subcategory is a functor.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    funcres $p |- ( ph -> ( F |`f H ) e. ( ( C |`cat H ) Func D ) ) $=
      ( vz co cfv cres wcel wceq eqid syl adantr eleqtrrd sseldd fvres 3ad2ant1
      vx vy vf vg cresf c1st cdm c2nd cop cresc cfunc cmpt csubc resfval fveq2d
      cv cvv fvex resex dmexg mptexg op2ndg sylancr eqtrd opeq2d eqtr4d wbr cbs
      3syl cco ccid chom subccat ccat wa funcrcl simprd wf wrel 1st2ndbr funcf1
      relfunc eqidd subcfn subcss1 fssresd simpld feq2d mpbid wfn fnmpti eqcomd
      rescbas cxp fndm sqxpeqd fneq12d wss simprl simprr funcf2 subcss2 resf2nd
      mpbii feq1d mpbird reschom oveq12d feq23d eleq2d biimpar fveq12d eqsstr3d
      oveqd subcid sselda funcid 3eqtr4d w3a simp21 simp22 simp23 simp3l simp3r
      subcidcl subccocl funcco rescco opeq12d fveq1d oveq123d isfuncd eqeltrd
      df-br sylib ) ADEUEIZDUFJZEUGZUGZKZYPUHJZUIZBEUJIZCUKIZAYPYTHYRHUPZDUHJZJ
      ZUUEEJZKZULZUIZUUBAHDEBCUKIZBUMJZFGUNZAUUAUUJYTAUUAUUKUHJZUUJAYPUUKUHUUNU
      OAYTUQLUUJUQLZUUOUUJMYQYSDUFURUSAEUUMLZYRUQLUUPGEUUMUTHYRUUIUQVAVIYTUUJUQ
      UQVBVCVDZVEVFAYTUUAUUDVGUUBUUDLAUAUBHUUCVHJZCVHJZUUCUUCVJJZUUCVKJZUCUDCYT
      UUAUUCVLJZCVKJZCVLJZCVJJZUUSNUUTNZUVCNUVENZUVBNUVDNZUVANUVFNZABUUCEUUCNZG
      VMABVNLZCVNLZADUULLZUVLUVMVOFBCDVPOZVQAYSUUTYTVRUUSUUTYTVRABVHJZUUTYSYQAU
      VPUUTBCYQUUFUVPNZUVGAUULVSUVNYQUUFUULVGZBCWBFDUULVTVCZWAAUVPBYSEGABYSEGAY
      SWCWDZUVQWEZWFAYSUUSUUTYTAUVPBUUCYSEVNUVKUVQAUVLUVMUVOWGZUVTUWAWMZWHWIAUU
      JYRWJUUAUUSUUSWNZWJHYRUUIUUJUUGUUHUUEUUFURUSUUJNWKAYRUWDUUJUUAAUUAUUJUURW
      LAYRYSYSWNZUWDAEUWEWJZYRUWEMUVTUWEEWOOAYSUUSUWCWPVDWQXDAUAUPZUUSLZUBUPZUU
      SLZVOZVOZUWGUWIEIZUWGYQJZUWIYQJZUVEIZUWGUWIUUAIZVRZUWGUWIUVCIZUWGYTJZUWIY
      TJZUVEIZUWQVRUWLUWRUWMUWPUWGUWIUUFIZUWMKZVRUWLUWGUWIBVLJZIZUWPUWMUXCUWLUV
      PBCYQUUFUXEUVEUWGUWIUVQUXENZUVHAUVRUWKUVSPUWLYSUVPUWGAYSUVPWRZUWKUWAPZUWL
      UWGUUSYSAUWHUWJWSAYSUUSMZUWKUWCPZQZRUWLYSUVPUWIUXIUWLUWIUUSYSAUWHUWJWTUXK
      QZRXAUWLBYSUXEEUWGUWIAUUQUWKGPZAUWFUWKUVTPZUXGUXLUXMXBWFUWLUWMUWPUWQUXDUW
      LYSDEUULUUMUWGUWIAUVNUWKFPUXNUXOUXLUXMXCXEXFUWLUWMUWPUWSUXBUWQUWLEUVCUWGU
      WIAEUVCMZUWKAUVPBUUCYSEVNUVKUVQUWBUVTUWAXGZPXNUWLUXBUWPUWLUWTUWNUXAUWOUVE
      UWLUWGYSLZUWTUWNMZUXLUWGYSYQSZOUWLUWIYSLZUXAUWOMZUXMUWIYSYQSZOXHWLXIWIAUW
      HVOZUWGUVBJZUWGUWGUUAIZJUWGBVKJZJZUWGUWGUUFIZUWGUWGEIZKZJZUWTUVDJZUYDUYEU
      YHUYFUYKUYDYSDEUULUUMUWGUWGAUVNUWHFPAUUQUWHGPZAUWFUWHUVTPZAUXRUWHAYSUUSUW
      GUWCXJXKZUYPXCUYDUYHUYEUYDBUUCYSUYGEUWGUVKUYNUYOUYGNZUYPXOWLXLUYDUYHUYIJZ
      UWNUVDJUYLUYMUYDUVPBUYGCYQUUFUVDUWGUVQUYQUVIAUVRUWHUVSPAUUSUVPUWGAUUSYSUV
      PUWCUWAXMXPXQUYDUYHUYJLUYLUYRMUYDBYSUYGEUWGUYNUYOUYPUYQYEUYHUYJUYISOUYDUW
      TUWNUVDUYDUXRUXSUYPUXTOUOXRVDAUWHUWJUUEUUSLZXSZUCUPZUWSLZUDUPZUWIUUEUVCIZ
      LZVOZXSZVUCVUAUWGUWIUIZUUEBVJJZIZIZUWGUUEUUFIZUWGUUEEIZKZJZVUCUWIUUEUUFIZ
      JZVUAUXCJZUWNUWOUIZUUEYQJZUVFIZIZVUCVUAVUHUUEUVAIZIZUWGUUEUUAIZJVUCUWIUUE
      UUAIZJZVUAUWQJZUWTUXAUIZUUEYTJZUVFIZIVUGVUOVUKVULJZVVBVUGVUKVUMLVUOVVLMVU
      GBYSVUIVUAVUCEUWGUWIUUEAUYTUUQVUFGTZAUYTUWFVUFUVTTZVUGUWGUUSYSAUWHUWJUYSV
      UFXTAUYTUXJVUFUWCTZQZVUINZVUGUWIUUSYSAUWHUWJUYSVUFYAVVOQZVUGUUEUUSYSAUWHU
      WJUYSVUFYBVVOQZVUGVUAUWSUWMAUYTVUBVUEYCVUGEUVCUWGUWIAUYTUXPVUFUXQTZXNQZVU
      GVUCVUDUWIUUEEIZAUYTVUBVUEYDVUGEUVCUWIUUEVVTXNQZYFVUKVUMVULSOVUGUVPBVUICY
      QUUFUXEVUAVUCUVFUWGUWIUUEUVQUXGVVQUVJAUYTUVRVUFUVSTVUGYSUVPUWGAUYTUXHVUFU
      WATZVVPRVUGYSUVPUWIVWDVVRRVUGYSUVPUUEVWDVVSRVUGUWMUXFVUAVUGBYSUXEEUWGUWIV
      VMVVNUXGVVPVVRXBVWARVUGVWBUWIUUEUXEIVUCVUGBYSUXEEUWIUUEVVMVVNUXGVVRVVSXBV
      WCRYGVDVUGVVDVUKVVEVUNVUGYSDEUULUUMUWGUUEAUYTUVNVUFFTZVVMVVNVVPVVSXCVUGVV
      CVUJVUCVUAVUGUVAVUIVUHUUEVUGVUIUVAAUYTVUIUVAMVUFAUVPBUUCYSVUIEVNUVKUVQUWB
      UVTUWAVVQYHTWLXNXNXLVUGVVGVUQVVHVURVVKVVAVUGVVIVUSVVJVUTUVFVUGUWTUWNUXAUW
      OVUGUXRUXSVVPUXTOVUGUYAUYBVVRUYCOYIVUGUUEYSLVVJVUTMVVSUUEYSYQSOXHVUGVVGVU
      CVUPVWBKZJZVUQVUGVUCVVFVWFVUGYSDEUULUUMUWIUUEVWEVVMVVNVVRVVSXCYJVUGVUCVWB
      LVWGVUQMVWCVUCVWBVUPSOVDVUGVVHVUAUXDJZVURVUGVUAUWQUXDVUGYSDEUULUUMUWGUWIV
      WEVVMVVNVVPVVRXCYJVUGVUAUWMLVWHVURMVWAVUAUWMUXCSOVDYKXRYLYTUUAUUDYNYOYM
      $.
  $}

  ${
    $d f g x y z A $.  $d f g x y z C $.  $d f g x y z D $.  $d f g x y z ph $.
    $d f g x y z F $.  $d f g x y z G $.  $d f g x y z H $.  $d f g x y z R $.
    funcres2b.a $e |- A = ( Base ` C ) $.
    funcres2b.h $e |- H = ( Hom ` C ) $.
    funcres2b.r $e |- ( ph -> R e. ( Subcat ` D ) ) $.
    funcres2b.s $e |- ( ph -> R Fn ( S X. S ) ) $.
    funcres2b.1 $e |- ( ph -> F : A --> S ) $.
    funcres2b.2 $e |- ( ( ph /\ ( x e. A /\ y e. A ) ) ->
      ( x G y ) : Y --> ( ( F ` x ) R ( F ` y ) ) ) $.
    $( Condition for a functor to also be a functor into the restriction.
       (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    funcres2b $p |- ( ph ->
      ( F ( C Func D ) G <-> F ( C Func ( D |`cat R ) ) G ) ) $=
      ( co cfv vz vg vf ccat wcel cfunc wbr cresc wi cop wa df-br funcrcl sylbi
      simpld a1i wb cbs wf cxp c1st c2nd chom cmap cixp ccid wceq cco wral eqid
      cv w3a subcss1 fssd csubc subcrcl syl rescbas feq3d mpbid 2thd adantr cvv
      wfn crn wss adantlr frn ad2antrr simprl ffvelrnd simprr sstrd anbi2d df-f
      subcss2 3bitr4g reschom oveqd bitrd ralrimivva fveq2 df-ov syl6eqr op1std
      vex fveq2d op2ndd oveq12d eleq12d elmap syl6bb bibi12d ralxp sylibr ralbi
      3anbi3d elixp2 ffvelrnda subcid eqeq2d rescco 2ralbidv ralbidva 3anbi123d
      ovex anbi12d simpr isfunc subccat 3bitr4d ex pm5.21ndd ) AEUDUEZIJEFUFSZU
      GZIJEFGUHSZUFSZUGZYPYNUIAYPYNFUDUEZYPIJUJZYOUEYNYTUKIJYOULEFUUAUMUNUOUPYS
      YNUIAYSYNYQUDUEZYSUUAYRUEYNUUBUKIJYRULEYQUUAUMUNUOUPAYNYPYSUQAYNUKZDFURTZ
      IUSZJUADDUTZUAVKZVATZITZUUGVBTZITZFVCTZSZUUGKTZVDSZVEUEZBVKZEVFTZTUUQUUQJ
      STZUUQITZFVFTZTZVGZUBVKZUCVKZUUQCVKZUJZUUGEVHTZSSUUQUUGJSTZUVDUVFUUGJSTZU
      VEUUQUVFJSZTZUUTUVFITZUJZUUGITZFVHTZSZSZVGZUBUVFUUGKSZVIUCUUQUVFKSZVIZUAD
      VICDVIZUKZBDVIZVLDYQURTZIUSZJUAUUFUUIUUKYQVCTZSZUUNVDSZVEUEZUUSUUTYQVFTZT
      ZVGZUVIUVJUVLUVNUVOYQVHTZSZSZVGZUBUVTVIUCUWAVIZUADVICDVIZUKZBDVIZVLYPYSUU
      CUUEUWGUUPUWKUWEUXBAUUEUWGUQYNAUUEUWGADHUUDIQAUUDFHGOPUUDVJZVMZVNADHIUSZU
      WGQAHUWFIDAUUDFYQHGUDYQVJZUXCAGFVOTUEZYTOFGVPVQZPUXDVRVSVTWAWBUUCJWCUEZJU
      UFWDZUUGJTZUUOUEZUAUUFVIZVLUXIUXJUXKUWJUEZUAUUFVIZVLUUPUWKUUCUXMUXOUXIUXJ
      UUCUXLUXNUQZUAUUFVIZUXMUXOUQUUCUWAUUTUVMUULSZUVKUSZUWAUUTUVMUWHSZUVKUSZUQ
      ZCDVIBDVIUXQUUCUYBBCDDUUCUUQDUEZUVFDUEZUKZUKZUXSUWAUUTUVMGSZUVKUSZUYAUYFU
      VKUWAWDZUVKWEZUXRWFZUKUYIUYJUYGWFZUKUXSUYHUYFUYKUYLUYIUYFUYKUYLUYFUYJUYGU
      XRUYFLUYGUVKUSZUYLAUYEUYMYNRWGLUYGUVKWHVQZUYFFHUULGUUTUVMAUXGYNUYEOWIAGHH
      UTWDZYNUYEPWIUULVJZUYFDHUUQIAUXEYNUYEQWIZUUCUYCUYDWJWKUYFDHUVFIUYQUUCUYCU
      YDWLWKWPWMUYNWAWNUWAUXRUVKWOUWAUYGUVKWOWQUYFUYGUXTUVKUWAUYFGUWHUUTUVMAGUW
      HVGYNUYEAUUDFYQHGUDUXFUXCUXHPUXDWRWIWSVSWTXAUXPUYBUABCDDUUGUVGVGZUXLUXSUX
      NUYAUYRUXLUVKUXRUWAVDSZUEUXSUYRUXKUVKUUOUYSUYRUXKUVGJTUVKUUGUVGJXBUUQUVFJ
      XCXDZUYRUUMUXRUUNUWAVDUYRUUIUUTUUKUVMUULUYRUUHUUQIUUQUVFUUGBXFZCXFZXEXGZU
      YRUUJUVFIUUQUVFUUGVUAVUBXHXGZXIUYRUUNUVGKTUWAUUGUVGKXBUUQUVFKXCXDZXIXJUXR
      UWAUVKUUTUVMUULYFUUQUVFKYFZXKXLUYRUXNUVKUXTUWAVDSZUEUYAUYRUXKUVKUWJVUGUYT
      UYRUWIUXTUUNUWAVDUYRUUIUUTUUKUVMUWHVUCVUDXIVUEXIXJUXTUWAUVKUUTUVMUWHYFVUF
      XKXLXMXNXOUXLUXNUAUUFXPVQXQUAUUFUUOJXRUAUUFUWJJXRWQUUCUWDUXABDUUCUYCUKZUV
      CUWNUWCUWTVUHUVBUWMUUSVUHFYQHUVAGUUTUXFAUXGYNUYCOWIAUYOYNUYCPWIUVAVJZUUCD
      HUUQIAUXEYNQWBXSXTYAVUHUWBUWSCUADDVUHUVSUWRUCUBUWAUVTVUHUVRUWQUVIVUHUVQUW
      PUVJUVLVUHUVPUWOUVNUVOAUVPUWOVGYNUYCAUUDFYQHUVPGUDUXFUXCUXHPUXDUVPVJZYBWI
      WSWSYAYCYCYGYDYEUUCBCUADUUDEUVHUURUCUBFIJKUVAUULUVPMUXCNUYPUURVJZVUIUVHVJ
      ZVUJAYNYHZAYTYNUXHWBYIUUCBCUADUWFEUVHUURUCUBYQIJKUWLUWHUWOMUWFVJNUWHVJVUK
      UWLVJVULUWOVJVUMAUUBYNAFYQGUXFOYJWBYIYKYLYM $.
  $}

  ${
    $d f g x y C $.  $d f g x y D $.  $d f g x y R $.
    $( A functor into a restricted category is also a functor into the whole
       category.  (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    funcres2 $p |- ( R e. ( Subcat ` D ) ->
      ( C Func ( D |`cat R ) ) C_ ( C Func D ) ) $=
      ( vf vg vx vy cfv wcel co cfunc cv wbr wa cbs cdm eqid wf ccat mpbird a1i
      csubc cresc wrel relfunc cop simpr chom simpl eqidd subcfn funcf1 subcrcl
      adantr subcss1 rescbas simplr simprl simprr funcf2 wceq reschom funcres2b
      feq3d oveqd ex df-br 3imtr3g relssdv ) CBUBHIZDEABCUCJZKJZABKJZVLUDVJAVKU
      EUAVJDLZELZVLMZVNVOVMMZVNVOUFZVLIVRVMIVJVPVQVJVPNZVQVPVJVPUGZVSFGAOHZABCC
      PPZVNVOAUHHZFLZGLZWCJZWAQZWCQZVJVPUIZVSBWBCWIVSWBUJUKZVSWAWBVNRWAVKOHZVNR
      VSWAWKAVKVNVOWGWKQVTULVSWBWKVNWAVSBOHZBVKWBCSVKQZWLQZVJBSIVPBCUMUNZWJVSWL
      BWBCWIWJWNUOZUPVDTVSWDWAIZWEWAIZNZNZWFWDVNHZWEVNHZCJZWDWEVOJZRWFXAXBVKUHH
      ZJZXDRWTWAAVKVNVOWCXEWDWEWGWHXEQVJVPWSUQVSWQWRURVSWQWRUSUTWTXCXFXDWFWTCXE
      XAXBVSCXEVAWSVSWLBVKWBCSWMWNWOWJWPVBUNVEVDTVCTVFVNVOVLVGVNVOVMVGVHVI $.
  $}

  ${
    $d f g z C $.  $d f g z D $.  $d f g z ph $.
    wunfunc.1 $e |- ( ph -> U e. WUni ) $.
    wunfunc.2 $e |- ( ph -> C e. U ) $.
    wunfunc.3 $e |- ( ph -> D e. U ) $.
    $( A weak universe is closed under the functor set operation.  (Contributed
       by Mario Carneiro, 12-Jan-2017.) $)
    wunfunc $p |- ( ph -> ( C Func D ) e. U ) $=
      ( vz cbs cfv cmap co chom cxp c1 wunstr wcel eqid fvex wss vf vg crn cuni
      cpw cfunc df-base wunmap cdc df-hom wunrn wununi wunxp wunpw wrel relfunc
      c4 a1i cv cop wbr df-br wa wf simpr funcf1 elmap sylibr c1st c2nd mapsspw
      cixp wral fvssunirn ovssunirn xpss12 mp2an sspwb sstri rgenw ss2ixp ax-mp
      mpbi xpex rnex uniex pwex ixpconst sseqtri funcixp sseldi opelxpi syl2anc
      ex syl5bir relssdv wunss ) ACIJZBIJZKLZBMJZUCZUDZCMJZUCZUDZNZUEZWSWSNZKLZ
      NZBCUFLZDEAWTXJDEAWRWSDEACDIOUGEGPABDIOUGEFPZUHAXHXIDEAXGDEAXCXFDEAXBDEAX
      ADEABDMOUQUIZUJEFPUKULAXEDEAXDDEACDMXNUJEGPUKULUMUNAWSWSDEXMXMUMUHUMAUAUB
      XLXKXLUOABCUPURUAUSZUBUSZUTZXLQXOXPXLVAZAXQXKQZXOXPXLVBAXRXSAXRVCZXOWTQZX
      PXJQXSXTWSWRXOVDYAXTWSWRBCXOXPWSRZWRRAXRVEZVFWRWSXOCISBISZVGVHXTHXIHUSZVI
      JXOJZYEVJJXOJZXDLZYEXAJZKLZVLZXJXPYKHXIXHVLZXJYJXHTZHXIVMYKYLTYMHXIYJYIYH
      NZUEZXHYHYIVKYNXGTZYOXHTYIXCTYHXFTYPXAYEVNXDYFYGVOYIXCYHXFVPVQYNXGVRWCVSV
      THXIYJXHWAWBHXIXHWSWSYDYDWDXGXCXFXBXABMSWEWFXEXDCMSWEWFWDWGWHWIXTHWSBCXOX
      PXAXDYBXARXDRYCWJWKXOXPWTXJWLWMWNWOWPWQ $.
  $}

  ${
    $d f g m n w x y z A $.  $d f g m n w x y z C $.  $d f g m n x y z ph $.
    $d f g m n x y z B $.  $d f g m n x y z D $.
    funcpropd.1 $e |- ( ph -> ( Homf ` A ) = ( Homf ` B ) ) $.
    funcpropd.2 $e |- ( ph -> ( comf ` A ) = ( comf ` B ) ) $.
    funcpropd.3 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    funcpropd.4 $e |- ( ph -> ( comf ` C ) = ( comf ` D ) ) $.
    funcpropd.a $e |- ( ph -> A e. V ) $.
    funcpropd.b $e |- ( ph -> B e. V ) $.
    funcpropd.c $e |- ( ph -> C e. V ) $.
    funcpropd.d $e |- ( ph -> D e. V ) $.
    $( If two categories have the same set of objects, morphisms, and
       compositions, then they have the same functors.  (Contributed by Mario
       Carneiro, 17-Jan-2017.) $)
    funcpropd $p |- ( ph -> ( A Func C ) = ( B Func D ) ) $=
      ( vz co wcel wa cfv eqid vf vg vx vn vm vy vw cfunc relfunc cbs cv wf cxp
      ccat c1st c2nd chom cmap cixp ccid wceq cop cco wral w3a catpropd anbi12d
      wbr wb fveq2 fveq2d oveq12d cbvixpv eleq2i anbi2i chomf ad2antrr cidpropd
      ccomf fveq1d eqeq12d ad6antr simp-5r simp-4r simpllr simplr simpr ad5antr
      comfeqval simprl df-ov simprr ad3antrrr adantr opelxpi syl2anc vex op1std
      ffvelrnd op2ndd syl6eqr fvixp syl5eqel elmapi adantll ffvelrnda homfeqval
      syl ralbidva raleqdv raleqbidv bitrd sylan2b pm5.32da xp1st xp2nd 3eqtr3g
      adantl 1st2nd2 3eqtr4d ixpeq2dva sqxpeqd ixpeq1d eleq2d feq23d raleqbidva
      homfeqbas eqtrd anbi1d anbi2d df-3an 3bitr4g df-br funcrcl isfunc biadan2
      sylbi simpl eqbrrdiv ) AUAUBBDUHPZCEUHPZBDUICEUIABUNQZDUNQZRZBUJSZDUJSZUA
      UKZULZUBUKZOUUEUUEUMZOUKZUOSZUUGSZUUKUPSZUUGSZDUQSZPZUUKBUQSZSZURPZUSZQZU
      CUKZBUTSZSZUVCUVCUUIPZSZUVCUUGSZDUTSZSZVAZUDUKZUEUKZUVCUFUKZVBZUUKBVCSZPP
      ZUVCUUKUUIPZSZUVLUVNUUKUUIPZSZUVMUVCUVNUUIPZSZUVHUVNUUGSZVBZUUKUUGSZDVCSZ
      PPZVAZUDUVNUUKUURPZVDZUEUVCUVNUURPZVDZOUUEVDZUFUUEVDZRZUCUUEVDZVEZRCUNQZE
      UNQZRZCUJSZEUJSZUUGULZUUIOUXBUXBUMZUUMUUOEUQSZPZUUKCUQSZSZURPZUSZQZUVCCUT
      SZSZUVFSZUVHEUTSZSZVAZUVLUVMUVOUUKCVCSZPPZUVRSZUWAUWCUWEUWFEVCSZPPZVAZUDU
      VNUUKUXHPZVDZUEUVCUVNUXHPZVDZOUXBVDZUFUXBVDZRZUCUXBVDZVEZRUUGUUIYTVHZUUGU
      UIUUAVHZAUUDUXAUWRUYMAUUBUWSUUCUWTABCFFGHKLVFADEFFIJMNVFVGAUUHUVBRZUWQRZU
      XDUXLRZUYLRZUWRUYMAUYQUYPUXRUYHOUUEVDZUFUUEVDZRZUCUUEVDZRUYSAUYPUWQVUCUYP
      AUUHUUIUGUUJUGUKZUOSZUUGSZVUDUPSZUUGSZUUPPZVUDUURSZURPZUSZQZRZUWQVUCVIUVB
      VUMUUHUVAVULUUIOUGUUJUUTVUKUUKVUDVAZUUQVUIUUSVUJURVUOUUMVUFUUOVUHUUPVUOUU
      LVUEUUGUUKVUDUOVJVKVUOUUNVUGUUGUUKVUDUPVJVKVLUUKVUDUURVJVLVMVNVOAVUNRZUWP
      VUBUCUUEVUPUVCUUEQZRZUVKUXRUWOVUAVURUVGUXOUVJUXQVURUVEUXNUVFVURUVCUVDUXMV
      URBCFFABVPSCVPSVAZVUNVUQGVQZABVSSCVSSVAZVUNVUQHVQABFQVUNVUQKVQACFQVUNVUQL
      VQVRVTVKVURUVHUVIUXPAUVIUXPVAVUNVUQADEFFIJMNVRVQVTWAVURUWNUYTUFUUEVURUVNU
      UEQZRZUWMUYHOUUEVVCUUKUUEQZRZUWMUYDUDUWJVDZUEUWLVDUYHVVEUWKVVFUEUWLVVEUVM
      UWLQZRZUWIUYDUDUWJVVHUVLUWJQZRZUVSUYAUWHUYCVVJUVQUXTUVRVVJUUEBCUXSUVPUVMU
      VLUURUVCUVNUUKUUETZUURTZUVPTZUXSTZAVUSVUNVUQVVBVVDVVGVVIGWBAVVAVUNVUQVVBV
      VDVVGVVIHWBVUPVUQVVBVVDVVGVVIWCZVURVVBVVDVVGVVIWDZVVCVVDVVGVVIWEZVVEVVGVV
      IWFZVVHVVIWGWIVKVVJUUFDEUYBUWGUWCUWAUUPUVHUWDUWFUUFTZUUPTZUWGTZUYBTZADVPS
      EVPSVAZVUNVUQVVBVVDVVGVVIIWBADVSSEVSSVAVUNVUQVVBVVDVVGVVIJWBVVJUUEUUFUVCU
      UGVUPUUHVUQVVBVVDVVGVVIAUUHVUMWJWHZVVOWSVVJUUEUUFUVNUUGVWDVVPWSVVJUUEUUFU
      UKUUGVWDVVQWSVVJUWLUVHUWDUUPPZUVMUWBVVHUWLVWEUWBULZVVIVVHUWBVWEUWLURPZQVW
      FVVHUWBUVOUUISZVWGUVCUVNUUIWKVVHVUMUVOUUJQZVWHVWGQVVEVUMVVGVUPVUMVUQVVBVV
      DAUUHVUMWLWMZWNVVHVUQVVBVWIVUPVUQVVBVVDVVGWDVURVVBVVDVVGWEUVCUVNUUEUUEWOW
      PUGUUJVUKUVOVWGUUIVUDUVOVAZVUIVWEVUJUWLURVWKVUFUVHVUHUWDUUPVWKVUEUVCUUGUV
      CUVNVUDUCWQZUFWQZWRVKVWKVUGUVNUUGUVCUVNVUDVWLVWMWTVKVLVWKVUJUVOUURSUWLVUD
      UVOUURVJUVCUVNUURWKXAVLXBWPXCUWBVWEUWLXDXHWNVVRWSVVHUWJUWDUWFUUPPZUVLUVTV
      VEUWJVWNUVTULZVVGVVEUVTVWNUWJURPZQVWOVVEUVTUVNUUKVBZUUISZVWPUVNUUKUUIWKVV
      EVUMVWQUUJQZVWRVWPQVWJVVBVVDVWSVURUVNUUKUUEUUEWOXEUGUUJVUKVWQVWPUUIVUDVWQ
      VAZVUIVWNVUJUWJURVWTVUFUWDVUHUWFUUPVWTVUEUVNUUGUVNUUKVUDVWMOWQZWRVKVWTVUG
      UUKUUGUVNUUKVUDVWMVXAWTVKVLVWTVUJVWQUURSUWJVUDVWQUURVJUVNUUKUURWKXAVLXBWP
      XCUVTVWNUWJXDXHWNXFWIWAXIXIVVEVVFUYFUEUWLUYGVVEUUEBCUURUXHUVCUVNVVKVVLUXH
      TZVURVUSVVBVVDVUTVQZVUPVUQVVBVVDWEVURVVBVVDWFZXGVVEUYDUDUWJUYEVVEUUEBCUUR
      UXHUVNUUKVVKVVLVXBVXCVXDVVCVVDWGXGXJXKXLXIXIVGXIXMXNAUYPUYRVUCUYLAUYPUUHU
      XLRUYRAUUHUVBUXLAUUHRZUVAUXKUUIVXEUVAOUUJUXJUSUXKVXEOUUJUUTUXJVXEUUKUUJQZ
      RZUUQUXGUUSUXIURVXGUUFDEUUPUXFUUMUUOVVSVVTUXFTZAVWCUUHVXFIVQVXGUUEUUFUULU
      UGAUUHVXFWFZVXFUULUUEQVXEUUKUUEUUEXOXRZWSVXGUUEUUFUUNUUGVXIVXFUUNUUEQVXEU
      UKUUEUUEXPXRZWSXGVXGUULUUNVBZUURSZVXLUXHSZUUSUXIVXGUULUUNUURPUULUUNUXHPVX
      MVXNVXGUUEBCUURUXHUULUUNVVKVVLVXBAVUSUUHVXFGVQVXJVXKXGUULUUNUURWKUULUUNUX
      HWKXQVXGUUKVXLUURVXFUUKVXLVAVXEUUKUUEUUEXSXRZVKVXGUUKVXLUXHVXOVKXTVLYAVXE
      OUUJUXEUXJAUUJUXEVAUUHAUUEUXBABCGYGZYBWNYCYHYDXNAUUHUXDUXLAUUEUUFUXBUXCUU
      GVXPADEIYGYEYIXLAVUBUYKUCUUEUXBVXPAVUQRZVUAUYJUXRVXQUYTUYIUFUUEUXBAUUEUXB
      VAVUQVXPWNZVXQUYHOUUEUXBVXRXJXKYJYFVGXLUUHUVBUWQYKUXDUXLUYLYKYLVGUYNUUDUW
      RUYNUUGUUIVBZYTQUUDUUGUUIYTYMBDVXSYNYQUUDUCUFOUUEUUFBUVPUVDUEUDDUUGUUIUUR
      UVIUUPUWGVVKVVSVVLVVTUVDTUVITVVMVWAUUBUUCYRUUBUUCWGYOYPUYOUXAUYMUYOVXSUUA
      QUXAUUGUUIUUAYMCEVXSYNYQUXAUCUFOUXBUXCCUXSUXMUEUDEUUGUUIUXHUXPUXFUYBUXBTU
      XCTVXBVXHUXMTUXPTVVNVWBUWSUWTYRUWSUWTWGYOYPYLYS $.
  $}

  ${
    $d x y A $.  $d x y C $.  $d x y D $.  $d x y E $.  $d x y ph $.
    $d x y F $.  $d x y G $.  $d x y S $.
    funcres2c.a $e |- A = ( Base ` C ) $.
    funcres2c.e $e |- E = ( D |`s S ) $.
    funcres2c.d $e |- ( ph -> D e. Cat ) $.
    funcres2c.r $e |- ( ph -> S e. V ) $.
    funcres2c.1 $e |- ( ph -> F : A --> S ) $.
    $( Condition for a functor to also be a functor into the restriction.
       (Contributed by Mario Carneiro, 30-Jan-2017.) $)
    funcres2c $p |- ( ph -> ( F ( C Func D ) G <-> F ( C Func E ) G ) ) $=
      ( co wa cfv eqid wcel wf vx vy cfunc wbr wo wi orc a1i olc wb cbs cin cxp
      chomf cres cresc chom cv csubc wss inss2 fullsubc adantr wfn homffn mp2an
      xpss12 fnssres crn ffn syl frn simpr funcf1 ressbasss syl6ss jaodan ssind
      sylanbrc simplrl simplrr funcf2 resshom ad2antrr oveqd feq3d mpbird an32s
      df-f wceq simprl ffvelrnd simprr ovresd homfval eqtrd funcres2b cvv eqidd
      sseldi ccomf cress ressinbas syl5eq fveq2d fullresc simpld ccat cop df-br
      simprd funcrcl sylbi jaoi elex adantl ovex eqeltri funcpropd breqd bitr4d
      ex pm5.21ndd ) AGHCDUCOZUDZGHCFUCOZUDZUEZYEYGYEYHUFAYEYGUGUHYGYHUFAYGYEUI
      UHAYHYEYGUJAYHPZYEGHCDDUNQZEDUKQZULZYLUMZUOZUPOZUCOZUDYGYIUAUBBCDYNYLGHCU
      QQZUAURZUBURZYQOZJYQRZAYNDUSQSYHAYKDYLYJYKRZYJRZLYLYKUTZAEYKVAZUHZVBVCYNY
      MVDZYIYJYKYKUMZVDYMUUHUTZUUGYKDYJUUCUUBVEUUDUUDUUIUUEUUEYLYKYLYKVGVFUUHYM
      YJVHVFUHYIGBVDZGVIZYLUTBYLGTZYIBEGTZUUJAUUMYHNVCZBEGVJVKYIUUKEYKYIUUMUUKE
      UTUUNBEGVLVKAYEUUKYKUTZYGAYEPZBYKGTUUOUUPBYKCDGHJUUBAYEVMVNBYKGVLVKAYGPZU
      UKFUKQZYKUUQBUURGTUUKUURUTUUQBUURCFGHJUURRAYGVMVNBUURGVLVKEYKFDKUUBVOVPVQ
      VRBYLGWIVSZYIYRBSZYSBSZPZPZYTYRGQZYSGQZYNOZYRYSHOZTYTUVDUVEDUQQZOZUVGTZAU
      VBYHUVJAUVBPZYEUVJYGUVKYEPBCDGHYQUVHYRYSJUUAUVHRZUVKYEVMAUUTUVAYEVTAUUTUV
      AYEWAWBUVKYGPZUVJYTUVDUVEFUQQZOZUVGTUVMBCFGHYQUVNYRYSJUUAUVNRUVKYGVMAUUTU
      VAYGVTAUUTUVAYGWAWBUVMUVIUVOUVGYTUVMUVHUVNUVDUVEAUVHUVNWJZUVBYGAEISZUVPME
      DFUVHIKUVLWCVKWDWEWFWGVQWHUVCUVFUVIUVGYTUVCUVFUVDUVEYJOUVIUVCUVDUVEYJYLUV
      CBYLYRGYIUULUVBUUSVCZYIUUTUVAWKWLZUVCBYLYSGUVRYIUUTUVAWMWLZWNUVCYKDYJUVHU
      VDUVEUUCUUBUVLUVCYLYKUVDUUEUVSWTUVCYLYKUVEUUEUVTWTWOWPWFWGWQYIYFYPGHYICCF
      YOWRYICUNQWSYICXAQWSAFUNQZYOUNQZWJYHAUWADYLXBOZUNQZUWBAFUWCUNAFDEXBOZUWCK
      AUVQUWEUWCWJMEYKDIUUBXCVKXDZXEAUWDUWBWJZUWCXAQZYOXAQZWJZAYKDUWCYLYOYJUUBU
      UCLUUFUWCRYORXFZXGWPVCAFXAQZUWIWJYHAUWLUWHUWIAFUWCXAUWFXEAUWGUWJUWKXKWPVC
      YHCWRSZAYHCXHSZUWMYEUWNYGYEUWNDXHSZYEGHXIZYDSUWNUWOPGHYDXJCDUWPXLXMXGYGUW
      NFXHSZYGUWPYFSUWNUWQPGHYFXJCFUWPXLXMXGXNCXHXOVKXPZUWRFWRSYIFUWEWRKDEXBXQX
      RUHYOWRSYIDYNUPXQUHXSXTYAYBYC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Full & faithful functors
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Full $.  $( The class of full functors. $)
  $c Faith $.  $( The class of faithful functors. $)

  $( Extend class notation with the class of all full functors. $)
  cful $a class Full $.

  $( Extend class notation with the class of all faithful functors. $)
  cfth $a class Faith $.

  ${
    $d c d f g x y $.  $d c d C $.  $d d D $.
    $( Function returning all the full functors from a category ` C ` to a
       category ` D ` .  A full functor is a functor in which all the morphism
       maps ` G ( X , Y ) ` between objects ` X , Y e. C ` are surjections.
       Definition 3.27(3) in [Adamek] p. 34.  (Contributed by Mario Carneiro,
       26-Jan-2017.) $)
    df-full $a |- Full = ( c e. Cat , d e. Cat |->
      { <. f , g >. | ( f ( c Func d ) g /\
        A. x e. ( Base ` c ) A. y e. ( Base ` c )
        ran ( x g y ) = ( ( f ` x ) ( Hom ` d ) ( f ` y ) ) ) } ) $.

    $( Function returning all the faithful functors from a category ` C ` to a
       category ` D ` .  A full functor is a functor in which all the morphism
       maps ` G ( X , Y ) ` between objects ` X , Y e. C ` are injections.
       Definition 3.27(2) in [Adamek] p. 34.  (Contributed by Mario Carneiro,
       26-Jan-2017.) $)
    df-fth $a |- Faith = ( c e. Cat , d e. Cat |->
      { <. f , g >. | ( f ( c Func d ) g /\
        A. x e. ( Base ` c ) A. y e. ( Base ` c ) Fun `' ( x g y ) ) } ) $.

    $( A full functor is a functor.  (Contributed by Mario Carneiro,
       26-Jan-2017.) $)
    fullfunc $p |- ( C Full D ) C_ ( C Func D ) $=
      ( vc vd vf vg vx vy ccat wcel wa cful co cfunc wss wceq oveq1 sseq12d cfv
      cv oveq2 wbr crn chom cbs wral copab cvv ovex simpl ssopab2i opabss sstri
      ssexi df-full ovmpt4g mp3an3 syl6eqss vtocl2ga wn c0 mpt2ndm0 0ss pm2.61i
      ) AIJBIJKZABLMZABNMZOZCTZDTZLMZVIVJNMZOAVJLMZAVJNMZOVHCDABIIVIAPVKVMVLVNV
      IAVJLQVIAVJNQRVJBPVMVFVNVGVJBALUAVJBANUARVIIJZVJIJZKVKETZFTZVLUBZGTZHTZVR
      MUCVTVQSWAVQSVJUDSMPHVIUESZUFGWBUFZKZEFUGZVLVOVPWEUHJVKWEPWEVLVIVJNUIWEVS
      EFUGVLWDVSEFVSWCUJUKEFVLULUMZUNCDIIWELUHGHEFCDUOZUPUQWFURUSVEUTVFVAVGCDWE
      LABIIWGVBVGVCURVD $.

    $( A faithful functor is a functor.  (Contributed by Mario Carneiro,
       26-Jan-2017.) $)
    fthfunc $p |- ( C Faith D ) C_ ( C Func D ) $=
      ( vc vd vf vg vx vy ccat wcel wa cfth co cfunc wss cv oveq1 sseq12d oveq2
      wceq wbr ccnv wfun cbs cfv wral copab cvv ovex simpl ssopab2i sstri ssexi
      opabss df-fth ovmpt4g mp3an3 syl6eqss vtocl2ga wn c0 mpt2ndm0 0ss pm2.61i
      ) AIJBIJKZABLMZABNMZOZCPZDPZLMZVIVJNMZOAVJLMZAVJNMZOVHCDABIIVIATVKVMVLVNV
      IAVJLQVIAVJNQRVJBTVMVFVNVGVJBALSVJBANSRVIIJZVJIJZKVKEPFPZVLUAZGPHPVQMUBUC
      HVIUDUEZUFGVSUFZKZEFUGZVLVOVPWBUHJVKWBTWBVLVIVJNUIWBVREFUGVLWAVREFVRVTUJU
      KEFVLUNULZUMCDIIWBLUHGHEFCDUOZUPUQWCURUSVEUTVFVAVGCDWBLABIIWDVBVGVCURVD
      $.
  $}

  $( The set of full functors is a relation.  (Contributed by Mario Carneiro,
     26-Jan-2017.) $)
  relfull $p |- Rel ( C Full D ) $=
    ( cful co cfunc wss wrel fullfunc relfunc relss mp2 ) ABCDZABEDZFMGLGABHABI
    LMJK $.

  $( The set of faithful functors is a relation.  (Contributed by Mario
     Carneiro, 26-Jan-2017.) $)
  relfth $p |- Rel ( C Faith D ) $=
    ( cfth co cfunc wss wrel fthfunc relfunc relss mp2 ) ABCDZABEDZFMGLGABHABIL
    MJK $.

  ${
    $d c d f g x y B $.  $d c d f g x y C $.  $d c d f g x y D $.  $d x y ph $.
    $d f x y H $.  $d c d f g x y J $.  $d f R $.  $d f x y X $.  $d f x y Y $.
    $d f g x y F $.  $d f g x y G $.
    isfull.b $e |- B = ( Base ` C ) $.
    isfull.j $e |- J = ( Hom ` D ) $.
    $( Value of the set of full functors between two categories.  (Contributed
       by Mario Carneiro, 27-Jan-2017.) $)
    isfull $p |- ( F ( C Full D ) G <-> ( F ( C Func D ) G /\
      A. x e. B A. y e. B ran ( x G y ) = ( ( F ` x ) J ( F ` y ) ) ) ) $=
      ( vf vg co wbr cv cfv wceq wral wa wcel vc cfunc crn fullfunc ssbri copab
      vd cful ccat cop df-br funcrcl sylbi chom cbs oveq12 breqd fveq2d syl6eqr
      simpl simpr oveqd eqeq2d raleqbidv anbi12d opabbidv df-full ovex ssopab2i
      opabss sstri ssexi ovmpt2a syl cvv wb wrel relfunc brrelex12 breq12 rneqd
      mpan fveq1d oveq12d eqeq12d 2ralbidv eqid brabga bitrd bianabs biadan2 )
      FGDEUHMZNZFGDEUBMZNZAOZBOZGMZUCZWPFPZWQFPZHMZQZBCRACRZWLWNFGDEUDUEWOWMXDW
      OWMFGKOZLOZWNNZWPWQXFMZUCZWPXEPZWQXEPZHMZQZBCRZACRZSZKLUFZNZWOXDSZWOWLXQF
      GWODUITEUITSZWLXQQWOFGUJZWNTXTFGWNUKDEYAULUMUAUGDEUIUIXEXFUAOZUGOZUBMZNZX
      IXJXKYCUNPZMZQZBYBUOPZRZAYIRZSZKLUFXQUHYBDQZYCEQZSZYLXPKLYOYEXGYKXOYOYDWN
      XEXFYBDYCEUBUPUQYOYJXNAYICYOYIDUOPCYOYBDUOYMYNUTURIUSZYOYHXMBYICYPYOYGXLX
      IYOYFHXJXKYOYFEUNPHYOYCEUNYMYNVAURJUSVBVCVDVDVEVFABKLUAUGVGXQWNDEUBVHXQXG
      KLUFWNXPXGKLXGXOUTVIKLWNVJVKVLVMVNUQWOFVOTGVOTSZXRXSVPWNVQWOYQDEVRFGWNVSW
      BXPXSKLFGXQVOVOXEFQZXFGQZSZXGWOXOXDXEFXFGWNVTYTXMXCABCCYTXIWSXLXBYTXHWRYT
      XFGWPWQYRYSVAVBWAYTXJWTXKXAHYTWPXEFYRYSUTZWCYTWQXEFUUAWCWDWEWFVEXQWGWHVNW
      IWJWK $.

    isfull.h $e |- H = ( Hom ` C ) $.
    $( Equivalent condition for a full functor.  (Contributed by Mario
       Carneiro, 27-Jan-2017.) $)
    isfull2 $p |- ( F ( C Full D ) G <-> ( F ( C Func D ) G /\
      A. x e. B A. y e. B
        ( x G y ) : ( x H y ) -onto-> ( ( F ` x ) J ( F ` y ) ) ) ) $=
      ( co wbr cv cfv wral wa wcel ralbidva cful cfunc crn wfo isfull wf wfn wb
      wceq simpll simplr simpr funcf2 ffn df-fo baib 3syl pm5.32i bitr4i ) FGDE
      UAMNFGDEUBMNZAOZBOZGMZUCVAFPVBFPIMZUIZBCQZACQZRUTVAVBHMZVDVCUDZBCQZACQZRA
      BCDEFGIJKUEUTVKVGUTVJVFACUTVACSZRZVIVEBCVMVBCSZRZVHVDVCUFVCVHUGZVIVEUHVOC
      DEFGHIVAVBJLKUTVLVNUJUTVLVNUKVMVNULUMVHVDVCUNVIVPVEVHVDVCUOUPUQTTURUS $.

    fullfo.f $e |- ( ph -> F ( C Full D ) G ) $.
    fullfo.x $e |- ( ph -> X e. B ) $.
    fullfo.y $e |- ( ph -> Y e. B ) $.
    $( The morphism map of a full functor is a surjection.  (Contributed by
       Mario Carneiro, 27-Jan-2017.) $)
    fullfo $p |- ( ph ->
      ( X G Y ) : ( X H Y ) -onto-> ( ( F ` X ) J ( F ` Y ) ) ) $=
      ( vx vy co cfv cv wfo wral cful wbr cfunc isfull2 simprbi syl wceq adantr
      wa wcel simplr simpr oveq12d fveq2d foeq123d rspcdv rspcimdv mpd ) AQUAZR
      UAZGSZVBETZVCETZHSZVBVCFSZUBZRBUCZQBUCZIJGSZIETZJETZHSZIJFSZUBZAEFCDUDSUE
      ZVKNVREFCDUFSUEVKQRBCDEFGHKLMUGUHUIAVJVQQIBOAVBIUJZULZVIVQRJBAJBUMVSPUKVT
      VCJUJZULZVDVLVGVOVHVPWBVBIVCJFAVSWAUNZVTWAUOZUPWBVBIVCJGWCWDUPWBVEVMVFVNH
      WBVBIEWCUQWBVCJEWDUQUPURUSUTVA $.

    fulli.r $e |- ( ph -> R e. ( ( F ` X ) J ( F ` Y ) ) ) $.
    $( The morphism map of a full functor is a surjection.  (Contributed by
       Mario Carneiro, 27-Jan-2017.) $)
    fulli $p |- ( ph -> E. f e. ( X H Y ) R = ( ( X G Y ) ` f ) ) $=
      ( co cfv wfo wcel cv wceq wrex fullfo foelrn syl2anc ) AKLITZKGUALGUAJTZK
      LHTZUBEUKUCEFUDULUAUEFUJUFABCDGHIJKLMNOPQRUGSFUJUKEULUHUI $.
  $}

  ${
    $d c d f g x y B $.  $d c d f g x y C $.  $d c d f g x y D $.  $d x y ph $.
    $d f g x y F $.  $d f g x y G $.  $d x y H $.  $d x y J $.  $d x y X $.
    $d x y Y $.
    isfth.b $e |- B = ( Base ` C ) $.
    $( Value of the set of faithful functors between two categories.
       (Contributed by Mario Carneiro, 27-Jan-2017.) $)
    isfth $p |- ( F ( C Faith D ) G <-> ( F ( C Func D ) G /\
      A. x e. B A. y e. B Fun `' ( x G y ) ) ) $=
      ( vf vg co wbr cfunc cv wral wa ccat wcel wceq cvv cfth ccnv wfun fthfunc
      vc ssbri copab cop df-br funcrcl sylbi cbs cfv oveq12 breqd simpl syl6eqr
      vd fveq2d raleqdv raleqbidv anbi12d opabbidv df-fth ssopab2i opabss sstri
      ovex ssexi ovmpt2a syl wb wrel relfunc brrelex12 mpan breq12 simpr cnveqd
      oveqd funeqd 2ralbidv eqid brabga bitrd bianabs biadan2 ) FGDEUAKZLZFGDEM
      KZLZANZBNZGKZUBZUCZBCOACOZWHWJFGDEUDUFWKWIWQWKWIFGINZJNZWJLZWLWMWSKZUBZUC
      ZBCOZACOZPZIJUGZLZWKWQPZWKWHXGFGWKDQREQRPZWHXGSWKFGUHZWJRXJFGWJUIDEXKUJUK
      UEURDEQQWRWSUENZURNZMKZLZXCBXLULUMZOZAXPOZPZIJUGXGUAXLDSZXMESZPZXSXFIJYBX
      OWTXRXEYBXNWJWRWSXLDXMEMUNUOYBXQXDAXPCYBXPDULUMCYBXLDULXTYAUPUSHUQZYBXCBX
      PCYCUTVAVBVCABIJUEURVDXGWJDEMVHXGWTIJUGWJXFWTIJWTXEUPVEIJWJVFVGVIVJVKUOWK
      FTRGTRPZXHXIVLWJVMWKYDDEVNFGWJVOVPXFXIIJFGXGTTWRFSZWSGSZPZWTWKXEWQWRFWSGW
      JVQYGXCWPABCCYGXBWOYGXAWNYGWSGWLWMYEYFVRVTVSWAWBVBXGWCWDVKWEWFWG $.

    isfth.h $e |- H = ( Hom ` C ) $.
    isfth.j $e |- J = ( Hom ` D ) $.
    $( Equivalent condition for a faithful functor.  (Contributed by Mario
       Carneiro, 27-Jan-2017.) $)
    isfth2 $p |- ( F ( C Faith D ) G <-> ( F ( C Func D ) G /\
      A. x e. B A. y e. B
        ( x G y ) : ( x H y ) -1-1-> ( ( F ` x ) J ( F ` y ) ) ) ) $=
      ( co wbr cv wral wa cfv wcel ralbidva cfth cfunc ccnv wf1 isfth wf simpll
      wfun wb simplr simpr funcf2 df-f1 baib syl pm5.32i bitr4i ) FGDEUAMNFGDEU
      BMNZAOZBOZGMZUCUHZBCPZACPZQURUSUTHMZUSFRUTFRIMZVAUDZBCPZACPZQABCDEFGJUEUR
      VIVDURVHVCACURUSCSZQZVGVBBCVKUTCSZQZVEVFVAUFZVGVBUIVMCDEFGHIUSUTJKLURVJVL
      UGURVJVLUJVKVLUKULVGVNVBVEVFVAUMUNUOTTUPUQ $.

    $( A fully faithful functor is a functor which is bijective on hom-sets.
       (Contributed by Mario Carneiro, 27-Jan-2017.) $)
    isffth2 $p |- ( F ( ( C Full D ) i^i ( C Faith D ) ) G <->
      ( F ( C Func D ) G /\ A. x e. B A. y e. B
        ( x G y ) : ( x H y ) -1-1-onto-> ( ( F ` x ) J ( F ` y ) ) ) ) $=
      ( cful co wbr wa cv cfv wral bitri cfth cfunc wfo wf1 wf1o isfull2 isfth2
      cin anbi12i brin df-f1o ancom 2ralbii r19.26-2 anbi2i anandi 3bitr4i ) FG
      DEMNZOZFGDEUANZOZPFGDEUBNOZAQZBQZHNZVCFRVDFRINZVCVDGNZUCZBCSACSZPZVBVEVFV
      GUDZBCSACSZPZPZFGURUTUHOVBVEVFVGUEZBCSACSZPZUSVJVAVMABCDEFGHIJLKUFABCDEFG
      HIJKLUGUIFGURUTUJVQVBVIVLPZPVNVPVRVBVPVHVKPZBCSACSVRVOVSABCCVOVKVHPVSVEVF
      VGUKVKVHULTUMVHVKABCCUNTUOVBVIVLUPTUQ $.

    ${
      fthf1.f $e |- ( ph -> F ( C Faith D ) G ) $.
      fthf1.x $e |- ( ph -> X e. B ) $.
      fthf1.y $e |- ( ph -> Y e. B ) $.
      $( The morphism map of a faithful functor is an injection.  (Contributed
         by Mario Carneiro, 27-Jan-2017.) $)
      fthf1 $p |- ( ph ->
        ( X G Y ) : ( X H Y ) -1-1-> ( ( F ` X ) J ( F ` Y ) ) ) $=
        ( vx vy co cfv cv wf1 wral cfth wbr cfunc isfth2 simprbi wceq wa adantr
        syl wcel simplr simpr oveq12d fveq2d f1eq123d rspcdv rspcimdv mpd ) AQU
        AZRUAZGSZVBETZVCETZHSZVBVCFSZUBZRBUCZQBUCZIJGSZIETZJETZHSZIJFSZUBZAEFCD
        UDSUEZVKNVREFCDUFSUEVKQRBCDEFGHKLMUGUHULAVJVQQIBOAVBIUIZUJZVIVQRJBAJBUM
        VSPUKVTVCJUIZUJZVDVLVGVOVHVPWBVBIVCJFAVSWAUNZVTWAUOZUPWBVBIVCJGWCWDUPWB
        VEVMVFVNHWBVBIEWCUQWBVCJEWDUQUPURUSUTVA $.

      fthi.r $e |- ( ph -> R e. ( X H Y ) ) $.
      fthi.s $e |- ( ph -> S e. ( X H Y ) ) $.
      $( The morphism map of a faithful functor is an injection.  (Contributed
         by Mario Carneiro, 27-Jan-2017.) $)
      fthi $p |- ( ph ->
        ( ( ( X G Y ) ` R ) = ( ( X G Y ) ` S ) <-> R = S ) ) $=
        ( co cfv wf1 wcel wceq wb fthf1 f1fveq syl12anc ) AKLIUAZKGUBLGUBJUAZKL
        HUAZUCEUJUDFUJUDEULUBFULUBUEEFUEUFABCDGHIJKLMNOPQRUGSTUJUKEFULUHUI $.
    $}

    ffthf1o.f $e |- ( ph -> F ( ( C Full D ) i^i ( C Faith D ) ) G ) $.
    ffthf1o.x $e |- ( ph -> X e. B ) $.
    ffthf1o.y $e |- ( ph -> Y e. B ) $.
    $( The morphism map of a fully faithful functor is a bijection.
       (Contributed by Mario Carneiro, 29-Jan-2017.) $)
    ffthf1o $p |- ( ph ->
      ( X G Y ) : ( X H Y ) -1-1-onto-> ( ( F ` X ) J ( F ` Y ) ) ) $=
      ( co cfv wf1 wbr wfo wf1o cful cfth cin wa brin sylib simprd fthf1 simpld
      fullfo df-f1o sylanbrc ) AIJGQZIERJERHQZIJFQZSUOUPUQUAUOUPUQUBABCDEFGHIJK
      LMAEFCDUCQZTZEFCDUDQZTZAEFURUTUETUSVAUFNEFURUTUGUHZUIOPUJABCDEFGHIJKMLAUS
      VAVBUKOPULUOUPUQUMUN $.
  $}

  ${
    $d f g x y A $.  $d f g x y B $.  $d f g x y C $.  $d f g x y ph $.
    $d f g x y D $.
    fullpropd.1 $e |- ( ph -> ( Homf ` A ) = ( Homf ` B ) ) $.
    fullpropd.2 $e |- ( ph -> ( comf ` A ) = ( comf ` B ) ) $.
    fullpropd.3 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    fullpropd.4 $e |- ( ph -> ( comf ` C ) = ( comf ` D ) ) $.
    fullpropd.a $e |- ( ph -> A e. V ) $.
    fullpropd.b $e |- ( ph -> B e. V ) $.
    fullpropd.c $e |- ( ph -> C e. V ) $.
    fullpropd.d $e |- ( ph -> D e. V ) $.
    $( If two categories have the same set of objects, morphisms, and
       compositions, then they have the same full functors.  (Contributed by
       Mario Carneiro, 27-Jan-2017.) $)
    fullpropd $p |- ( ph -> ( A Full C ) = ( B Full D ) ) $=
      ( vx vy co cfv wa eqid vf vg cful relfull cv cfunc wbr crn chom wceq wral
      cbs homfeqbas adantr chomf ad3antrrr simpllr funcf1 simplr ffvelrnd simpr
      homfeqval eqeq2d raleqbidva pm5.32da funcpropd breqd anbi1d bitrd 3bitr4g
      wcel isfull eqbrrdiv ) AUAUBBDUCQZCEUCQZBDUDCEUDAUAUEZUBUEZBDUFQZUGZOUEZP
      UEZVQQUHZVTVPRZWAVPRZDUIRZQZUJZPBULRZUKZOWHUKZSZVPVQCEUFQZUGZWBWCWDEUIRZQ
      ZUJZPCULRZUKZOWQUKZSZVPVQVNUGVPVQVOUGAWKVSWSSWTAVSWJWSAVSSZWIWROWHWQAWHWQ
      UJZVSABCGUMUNZXAVTWHVKZSZWGWPPWHWQXAXBXDXCUNXEWAWHVKZSZWFWOWBXGDULRZDEWEW
      NWCWDXHTZWETZWNTZADUOREUORUJVSXDXFIUPXGWHXHVTVPXGWHXHBDVPVQWHTZXIAVSXDXFU
      QURZXAXDXFUSUTXGWHXHWAVPXMXEXFVAUTVBVCVDVDVEAVSWMWSAVRWLVPVQABCDEFGHIJKLM
      NVFVGVHVIOPWHBDVPVQWEXLXJVLOPWQCEVPVQWNWQTXKVLVJVM $.

    $( If two categories have the same set of objects, morphisms, and
       compositions, then they have the same faithful functors.  (Contributed
       by Mario Carneiro, 27-Jan-2017.) $)
    fthpropd $p |- ( ph -> ( A Faith C ) = ( B Faith D ) ) $=
      ( vx vy co cv wbr wral vf vg cfth relfth cfunc ccnv wfun cbs wa funcpropd
      cfv breqd homfeqbas raleqdv raleqbidv anbi12d eqid isfth 3bitr4g eqbrrdiv
      ) AUAUBBDUCQZCEUCQZBDUDCEUDAUARZUBRZBDUEQZSZORPRVDQUFUGZPBUHUKZTZOVHTZUIV
      CVDCEUEQZSZVGPCUHUKZTZOVMTZUIVCVDVASVCVDVBSAVFVLVJVOAVEVKVCVDABCDEFGHIJKL
      MNUJULAVIVNOVHVMABCGUMZAVGPVHVMVPUNUOUPOPVHBDVCVDVHUQUROPVMCEVCVDVMUQURUS
      UT $.
  $}

  ${
    $d x y C $.  $d x y F $.  $d x y G $.  $d x y ph $.  $d x y O $.
    $d x y P $.
    fulloppc.o $e |- O = ( oppCat ` C ) $.
    fulloppc.p $e |- P = ( oppCat ` D ) $.
    ${
      fulloppc.f $e |- ( ph -> F ( C Full D ) G ) $.
      $( The opposite functor of a full functor is also full.  Proposition
         3.43(d) in [Adamek] p. 39.  (Contributed by Mario Carneiro,
         27-Jan-2017.) $)
      fulloppc $p |- ( ph -> F ( O Full P ) tpos G ) $=
        ( vx vy cfunc co wbr cv crn cfv chom eqid ctpos wceq wral cful fullfunc
        cbs ssbri syl funcoppc wcel wfo adantr simprr simprl fullfo forn ovtpos
        wa rneqi oppchom 3eqtr4g ralrimivva oppcbas isfull sylanbrc ) AEFUAZGDM
        NOKPZLPZVFNZQZVGERZVHERZDSRZNZUBZLBUFRZUCKVPUCEVFGDUDNOABCDEFGHIAEFBCUD
        NZOZEFBCMNZOJVQVSEFBCUEUGUHUIAVOKLVPVPAVGVPUJZVHVPUJZURZURZVHVGFNZQZVLV
        KCSRZNZVJVNWCVHVGBSRZNZWGWDUKWEWGUBWCVPBCEFWHWFVHVGVPTZWFTZWHTAVRWBJULA
        VTWAUMAVTWAUNUOWIWGWDUPUHVIWDVGVHFUQUSCWFDVKVLWKIUTVAVBKLVPGDEVFVMVPBGH
        WJVCVMTVDVE $.
    $}

    ${
      fthoppc.f $e |- ( ph -> F ( C Faith D ) G ) $.
      $( The opposite functor of a faithful functor is also faithful.
         Proposition 3.43(c) in [Adamek] p. 39.  (Contributed by Mario
         Carneiro, 27-Jan-2017.) $)
      fthoppc $p |- ( ph -> F ( O Faith P ) tpos G ) $=
        ( vx vy cfunc co wbr cv ccnv wfun cfv eqid ctpos cbs wral fthfunc ssbri
        cfth syl funcoppc wcel wa chom adantr simprr simprl fthf1 df-f1 simprbi
        wf1 wf ovtpos cnveqi funeqi sylibr ralrimivva oppcbas isfth sylanbrc )
        AEFUAZGDMNOKPZLPZVHNZQZRZLBUBSZUCKVNUCEVHGDUFNOABCDEFGHIAEFBCUFNZOZEFBC
        MNZOJVOVQEFBCUDUEUGUHAVMKLVNVNAVIVNUIZVJVNUIZUJZUJZVJVIFNZQZRZVMWAVJVIB
        UKSZNZVJESVIESCUKSZNZWBURZWDWAVNBCEFWEWGVJVIVNTZWETWGTAVPVTJULAVRVSUMAV
        RVSUNUOWIWFWHWBUSWDWFWHWBUPUQUGVLWCVKWBVIVJFUTVAVBVCVDKLVNGDEVHVNBGHWJV
        EVFVG $.
    $}

    ${
      ffthoppc.f $e |- ( ph -> F ( ( C Full D ) i^i ( C Faith D ) ) G ) $.
      $( The opposite functor of a fully faithful functor is also full and
         faithful.  (Contributed by Mario Carneiro, 27-Jan-2017.) $)
      ffthoppc $p |- ( ph -> F ( ( O Full P ) i^i ( O Faith P ) ) tpos G ) $=
        ( ctpos cful co wbr cfth cin wa brin sylib simpld fulloppc sylanbrc
        simprd fthoppc ) AEFKZGDLMZNEUEGDOMZNEUEUFUGPNABCDEFGHIAEFBCLMZNZEFBCOM
        ZNZAEFUHUJPNUIUKQJEFUHUJRSZTUAABCDEFGHIAUIUKULUCUDEUEUFUGRUB $.
    $}
  $}

  ${
    fthsect.b $e |- B = ( Base ` C ) $.
    fthsect.h $e |- H = ( Hom ` C ) $.
    fthsect.f $e |- ( ph -> F ( C Faith D ) G ) $.
    fthsect.x $e |- ( ph -> X e. B ) $.
    fthsect.y $e |- ( ph -> Y e. B ) $.
    fthsect.m $e |- ( ph -> M e. ( X H Y ) ) $.
    fthsect.n $e |- ( ph -> N e. ( Y H X ) ) $.
    ${
      fthsect.s $e |- S = ( Sect ` C ) $.
      fthsect.t $e |- T = ( Sect ` D ) $.
      $( A faithful functor reflects sections.  (Contributed by Mario Carneiro,
         27-Jan-2017.) $)
      fthsect $p |- ( ph -> ( M ( X S Y ) N <->
        ( ( X G Y ) ` M ) ( ( F ` X ) T ( F ` Y ) ) ( ( Y G X ) ` N ) ) ) $=
        ( cop cco cfv co ccid wceq chom eqid ccat wcel cfunc cfth fthfunc ssbri
        wbr wa df-br sylib funcrcl simpld catcocl catidcl funcco funcid eqeq12d
        syl fthi bitr3d issect2 cbs simprd funcf1 ffvelrnd funcf2 3bitr4d ) AKJ
        LMUCLCUDUEZUFUFZLCUGUEZUEZUHZKMLHUFZUEZJLMHUFZUEZLGUEZMGUEZUCWGDUDUEZUF
        UFZWGDUGUEZUEZUHZJKLMEUFUQWFWDWGWHFUFUQAVSLLHUFZUEZWAWNUEZUHWBWMABCDVSW
        AGHIDUIUEZLLNOWQUJZPQQABCVRJKILMLNOVRUJZACUKULZDUKULZAGHUCZCDUMUFZULZWT
        XAURAGHXCUQZXDAGHCDUNUFZUQXEPXFXCGHCDUOUPVHZGHXCUSUTCDXBVAVHZVBZQRQSTVC
        ABCVTILNOVTUJZXIQVDVIAWOWJWPWLABCVRDGHIJKWILMLNOWSWIUJZXGQRQSTVEABCVTDG
        HWKLNXJWKUJZXGQVFVGVJABCEVRVTJKILMNOWSXJUAXIQRSTVKADVLUEZDFWIWKWFWDWQWG
        WHXMUJZWRXKXLUBAWTXAXHVMABXMLGABXMCDGHNXNXGVNZQVOABXMMGXORVOALMIUFWGWHW
        QUFJWEABCDGHIWQLMNOWRXGQRVPSVOAMLIUFWHWGWQUFKWCABCDGHIWQMLNOWRXGRQVPTVO
        VKVQ $.
    $}

    ${
      fthinv.s $e |- I = ( Inv ` C ) $.
      fthinv.t $e |- J = ( Inv ` D ) $.
      $( A faithful functor reflects inverses.  (Contributed by Mario Carneiro,
         27-Jan-2017.) $)
      fthinv $p |- ( ph -> ( M ( X I Y ) N <->
        ( ( X G Y ) ` M ) ( ( F ` X ) J ( F ` Y ) ) ( ( Y G X ) ` N ) ) ) $=
        ( csect cfv co wbr wa eqid fthsect anbi12d ccat wcel cfunc cfth fthfunc
        cop ssbri syl df-br sylib funcrcl simpld simprd funcf1 ffvelrnd 3bitr4d
        isinv cbs ) AJKLMCUCUDZUEUFZKJMLVIUEUFZUGJLMFUEUDZKMLFUEUDZLEUDZMEUDZDU
        CUDZUEUFZVMVLVOVNVPUEUFZUGJKLMHUEUFVLVMVNVOIUEUFAVJVQVKVRABCDVIVPEFGJKL
        MNOPQRSTVIUHZVPUHZUIABCDVIVPEFGKJMLNOPRQTSVSVTUIUJABCVIJKHLMNUAACUKULZD
        UKULZAEFUPZCDUMUEZULZWAWBUGAEFWDUFZWEAEFCDUNUEZUFWFPWGWDEFCDUOUQURZEFWD
        USUTCDWCVAURZVBQRVSVGADVHUDZDVPVLVMIVNVOWJUHZUBAWAWBWIVCABWJLEABWJCDEFN
        WKWHVDZQVEABWJMEWLRVEVTVGVF $.
    $}
  $}

  ${
    $d f g z B $.  $d f g z C $.  $d f g z H $.  $d f g z ph $.  $d f g z R $.
    $d f D $.  $d f F $.  $d f G $.  $d f I $.  $d f g z X $.  $d f g z Y $.
    $d f J $.
    fthmon.b $e |- B = ( Base ` C ) $.
    fthmon.h $e |- H = ( Hom ` C ) $.
    fthmon.f $e |- ( ph -> F ( C Faith D ) G ) $.
    fthmon.x $e |- ( ph -> X e. B ) $.
    fthmon.y $e |- ( ph -> Y e. B ) $.
    fthmon.r $e |- ( ph -> R e. ( X H Y ) ) $.
    ${
      fthmon.m $e |- M = ( Mono ` C ) $.
      fthmon.n $e |- N = ( Mono ` D ) $.
      fthmon.1 $e |- ( ph ->
        ( ( X G Y ) ` R ) e. ( ( F ` X ) N ( F ` Y ) ) ) $.
      $( A faithful functor reflects monomorphisms.  (Contributed by Mario
         Carneiro, 27-Jan-2017.) $)
      fthmon $p |- ( ph -> R e. ( X M Y ) ) $=
        ( vf vz vg co wcel cv cop cco cfv wceq wi wral w3a chom eqid ccat cfunc
        cbs wbr cfth fthfunc ssbri syl df-br sylib funcrcl simprd adantr funcf1
        ffvelrnd simpr1 funcf2 simpr2 simpr3 moni funcco eqeq12d simpld catcocl
        wa fthi bitr3d 3bitr3d biimpd ralrimivvva ismon2 mpbir2and ) AEKLIUEUFE
        KLHUEUFZEUBUGZUCUGZKUHLCUIUJZUEZUEZEUDUGZWMUEZUKZWJWOUKZULZUDWKKHUEZUMU
        BWTUMUCBUMRAWSUCUBUDBWTWTAWKBUFZWJWTUFZWOWTUFZUNZWAZWQWRXEEKLGUEUJZWJWK
        KGUEZUJZWKFUJZKFUJZUHLFUJZDUIUJZUEZUEZXFWOXGUJZXMUEZUKZXHXOUKWQWRXEDUSU
        JZDXLXFXHDUOUJZXOJXJXKXIXRUPZXSUPZXLUPZTADUQUFZXDACUQUFZYCAFGUHZCDURUEZ
        UFZYDYCWAAFGYFUTZYGAFGCDVAUEZUTZYHOYIYFFGCDVBVCVDZFGYFVEVFCDYEVGVDZVHVI
        XEBXRKFXEBXRCDFGMXTAYHXDYKVIZVJZAKBUFXDPVIZVKXEBXRLFYNALBUFXDQVIZVKXEBX
        RWKFYNAXAXBXCVLZVKAXFXJXKJUEUFXDUAVIXEWTXIXJXSUEZWJXGXEBCDFGHXSWKKMNYAY
        MYQYOVMZAXAXBXCVNZVKXEWTYRWOXGYSAXAXBXCVOZVKVPXEWNWKLGUEZUJZWPUUBUJZUKX
        QWQXEUUCXNUUDXPXEBCWLDFGHWJEXLWKKLMNWLUPZYBYMYQYOYPYTAWIXDRVIZVQXEBCWLD
        FGHWOEXLWKKLMNUUEYBYMYQYOYPUUAUUFVQVRXEBCDWNWPFGHXSWKLMNYAAYJXDOVIZYQYP
        XEBCWLWJEHWKKLMNUUEAYDXDAYDYCYLVSZVIZYQYOYPYTUUFVTXEBCWLWOEHWKKLMNUUEUU
        IYQYOYPUUAUUFVTWBWCXEBCDWJWOFGHXSWKKMNYAUUGYQYOYTUUAWBWDWEWFAUCBCWLUBUD
        EHIKLMNUUESUUHPQWGWH $.
    $}

    ${
      fthepi.e $e |- E = ( Epi ` C ) $.
      fthepi.p $e |- P = ( Epi ` D ) $.
      fthepi.1 $e |- ( ph ->
        ( ( X G Y ) ` R ) e. ( ( F ` X ) P ( F ` Y ) ) ) $.
      $( A faithful functor reflects epimorphisms.  (Contributed by Mario
         Carneiro, 27-Jan-2017.) $)
      fthepi $p |- ( ph -> R e. ( X E Y ) ) $=
        ( coppc cfv cmon co ctpos chom oppcbas fthoppc oppchom syl6eleqr ovtpos
        eqid fveq1i syl5eqel ccat wcel cop cfunc wa wbr fthfunc ssbri syl df-br
        cfth sylib funcrcl simprd oppcmon eleqtrrd fthmon simpld eleqtrd ) AFLK
        CUBUCZUDUCZUEKLGUEABVODUBUCZFHIUFZVOUGUCZVPVQUDUCZLKBCVOVOUMZMUHVSUMACD
        VQHIVOWAVQUMZOUIQPAFKLJUELKVSUERCJVOLKNWAUJUKVPUMZVTUMZAFLKVRUEZUCZKHUC
        ZLHUCZEUEZWHWGVTUEAWFFKLIUEZUCWIFWEWJLKIULUNUAUOADEVTVQWHWGWBACUPUQZDUP
        UQZAHIURZCDUSUEZUQZWKWLUTAHIWNVAZWOAHICDVFUEZVAWPOWQWNHICDVBVCVDHIWNVEV
        GCDWMVHVDZVIWDTVJVKVLACGVPVOLKWAAWKWLWRVMWCSVJVN $.
    $}

    ${
      ffthiso.f $e |- ( ph -> F ( C Full D ) G ) $.
      ffthiso.s $e |- I = ( Iso ` C ) $.
      ffthiso.t $e |- J = ( Iso ` D ) $.
      $( A fully faithful functor reflects isomorphisms.  Corollary 3.32 of
         [Adamek] p. 35.  (Contributed by Mario Carneiro, 27-Jan-2017.) $)
      ffthiso $p |- ( ph -> ( R e. ( X I Y ) <->
        ( ( X G Y ) ` R ) e. ( ( F ` X ) J ( F ` Y ) ) ) ) $=
        ( vf co wcel cfv wa cfunc wbr cfth fthfunc ssbri syl simpr funciso cinv
        adantr cv wceq eqid cop df-br sylib funcrcl simpld ad3antrrr cdm simprd
        ccat funcf1 ffvelrnd isoval eleq2d biimpa wfun wb invfun funfvbrb mpbid
        cbs ad2antrr breqtrd simplr fthinv mpbird inviso1 chom cful isohom invf
        wss ffvelrnda sseldd fulli r19.29a impbida ) AEKLIUCUDZEKLGUCUEZKFUEZLF
        UEZJUCZUDZAWPUFBCDFGIJEKLMTUAAFGCDUGUCZUHZWPAFGCDUIUCZUHZXCOXDXBFGCDUJU
        KULZUPAKBUDZWPPUPALBUDZWPQUPAWPUMUNAXAUFZWQWRWSDUOUEZUCZUEZUBUQZLKGUCUE
        ZURZWPUBLKHUCZXIXMXPUDZUFZXOUFZBCEXMICUOUEZKLMXTUSZACVHUDZXAXQXOAYBDVHU
        DZAFGUTZXBUDZYBYCUFAXCYEXFFGXBVAVBCDYDVCULZVDVEAXGXAXQXOPVEZAXHXAXQXOQV
        EZTXSEXMKLXTUCUHWQXNXKUHXSWQXLXNXKXIWQXLXKUHZXQXOXIWQXKVFZUDZYIAXAYKAWT
        YJWQADVSUEZDJXJWRWSYLUSZXJUSZAYBYCYFVGZABYLKFABYLCDFGMYMXFVIZPVJZABYLLF
        YPQVJZUAVKVLVMXIXKVNZYKYIVOAYSXAAYLDXJWRWSYMYNYOYQYRVPUPWQXKVQULVRVTXRX
        OUMWAXSBCDFGHXTXJEXMKLMNAXEXAXQXOOVEYGYHAEKLHUCUDXAXQXORVEXIXQXOWBYAYNW
        CWDWEXIBCDXLUBFGHDWFUEZLKMYTUSZNAFGCDWGUCUHXASUPAXHXAQUPAXGXAPUPXIWSWRJ
        UCZWSWRYTUCZXLAUUBUUCWJXAAYLDYTJWSWRYMUUAUAYOYRYQWHUPAWTUUBWQXKAYLDJXJW
        RWSYMYNYOYQYRUAWIWKWLWMWNWO $.
    $}
  $}

  ${
    $d x y A $.  $d x y C $.  $d x y D $.  $d x y ph $.  $d x y F $.
    $d x y G $.  $d x y H $.  $d x y R $.
    fthres2b.a $e |- A = ( Base ` C ) $.
    fthres2b.h $e |- H = ( Hom ` C ) $.
    fthres2b.r $e |- ( ph -> R e. ( Subcat ` D ) ) $.
    fthres2b.s $e |- ( ph -> R Fn ( S X. S ) ) $.
    fthres2b.1 $e |- ( ph -> F : A --> S ) $.
    fthres2b.2 $e |- ( ( ph /\ ( x e. A /\ y e. A ) ) ->
      ( x G y ) : Y --> ( ( F ` x ) R ( F ` y ) ) ) $.
    $( Condition for a faithful functor to also be a faithful functor into the
       restriction.  (Contributed by Mario Carneiro, 27-Jan-2017.) $)
    fthres2b $p |- ( ph ->
      ( F ( C Faith D ) G <-> F ( C Faith ( D |`cat R ) ) G ) ) $=
      ( co wbr cfunc cv ccnv wfun wral wa cresc funcres2b anbi1d isfth 3bitr4g
      cfth ) AIJEFUASTZBUBCUBJSUCUDCDUEBDUEZUFIJEFGUGSZUASTZUNUFIJEFULSTIJEUOUL
      STAUMUPUNABCDEFGHIJKLMNOPQRUHUIBCDEFIJMUJBCDEUOIJMUJUK $.
  $}

  ${
    $d x y A $.  $d x y C $.  $d x y D $.  $d x y E $.  $d x y F $.
    $d x y G $.
    fthres2c.a $e |- A = ( Base ` C ) $.
    fthres2c.e $e |- E = ( D |`s S ) $.
    fthres2c.d $e |- ( ph -> D e. Cat ) $.
    fthres2c.r $e |- ( ph -> S e. V ) $.
    fthres2c.1 $e |- ( ph -> F : A --> S ) $.
    $( Condition for a faithful functor to also be a faithful functor into the
       restriction.  (Contributed by Mario Carneiro, 30-Jan-2017.) $)
    fthres2c $p |- ( ph -> ( F ( C Faith D ) G <-> F ( C Faith E ) G ) ) $=
      ( vx vy cfunc co wbr cv ccnv wfun wral wa funcres2c anbi1d isfth 3bitr4g
      cfth ) AGHCDQRSZOTPTHRUAUBPBUCOBUCZUDGHCFQRSZUKUDGHCDUIRSGHCFUIRSAUJULUKA
      BCDEFGHIJKLMNUEUFOPBCDGHJUGOPBCFGHJUGUH $.
  $}

  ${
    $d f g x y C $.  $d f g x y D $.  $d f g x y R $.
    $( A faithful functor into a restricted category is also a faithful functor
       into the whole category.  (Contributed by Mario Carneiro,
       27-Jan-2017.) $)
    fthres2 $p |- ( R e. ( Subcat ` D ) ->
      ( C Faith ( D |`cat R ) ) C_ ( C Faith D ) ) $=
      ( vf vg vx vy csubc cfv wcel cresc co cfth cv wbr cfunc wral isfth df-br
      wa wrel relfth a1i cop ccnv wfun cbs funcres2 anim1d eqid 3imtr4g 3imtr3g
      ssbrd relssdv ) CBHIJZDEABCKLZMLZABMLZUQUAUOAUPUBUCUODNZENZUQOZUSUTUROZUS
      UTUDZUQJVCURJUOUSUTAUPPLZOZFNGNUTLUEUFGAUGIZQFVFQZTUSUTABPLZOZVGTVAVBUOVE
      VIVGUOVDVHUSUTABCUHUMUIFGVFAUPUSUTVFUJZRFGVFABUSUTVJRUKUSUTUQSUSUTURSULUN
      $.
  $}

  ${
    $d x y C $.  $d x y I $.
    idffth.i $e |- I = ( idFunc ` C ) $.
    $( The identity functor is a fully faithful functor.  (Contributed by Mario
       Carneiro, 27-Jan-2017.) $)
    idffth $p |- ( C e. Cat -> I e. ( ( C Full C ) i^i ( C Faith C ) ) ) $=
      ( vx vy ccat wcel c1st cfv c2nd cop co wbr cv wf1o wral df-br eqid idfu1
      wa cful cfth cin cfunc wrel wceq relfunc idfucl sylancr chom cbs eqeltrrd
      1st2nd sylibr cid cres f1oi simpl simprl simprr idfu2nd oveq12d f1oeq123d
      eqidd mpbiri ralrimivva isffth2 sylanbrc sylib eqeltrd ) AFGZBBHIZBJIZKZA
      AUALAAUBLUCZVKAAUDLZUEBVPGBVNUFAAUGABCUHZBVPUMUIZVKVLVMVOMZVNVOGVKVLVMVPM
      ZDNZENZAUJIZLZWAVLIZWBVLIZWCLZWAWBVMLZOZEAUKIZPDWJPVSVKVNVPGVTVKBVNVPVRVQ
      ULVLVMVPQUNVKWIDEWJWJVKWAWJGZWBWJGZTZTZWIWDWDUOWDUPZOWDUQWNWDWDWGWDWHWOWN
      WJAWCBWAWBCWJRZVKWMURZWCRZVKWKWLUSZVKWKWLUTZVAWNWDVDWNWEWAWFWBWCWNWJABWAC
      WPWQWSSWNWJABWBCWPWQWTSVBVCVEVFDEWJAAVLVMWCWCWPWRWRVGVHVLVMVOQVIVJ $.
  $}

  ${
    $d x y C $.  $d x y E $.  $d x y F $.  $d x y G $.  $d x y ph $.
    cofull.f $e |- ( ph -> F e. ( C Full D ) ) $.
    cofull.g $e |- ( ph -> G e. ( D Full E ) ) $.
    $( The composition of two full functors is full.  Proposition 3.30(d) in
       [Adamek] p. 35.  (Contributed by Mario Carneiro, 28-Jan-2017.) $)
    cofull $p |- ( ph -> ( G o.func F ) e. ( C Full E ) ) $=
      ( vx vy co cfv wrel wcel sylancr wbr wfo 1st2ndbr eqid adantr ccofu cfunc
      c1st c2nd cop cful wceq relfunc fullfunc sseldi cofucl 1st2nd cv chom cbs
      wral wa ccom relfull funcf1 simprl ffvelrnd simprr fullfo syl2anc cofu2nd
      foco eqidd cofu1 oveq12d foeq123d ralrimivva isfull2 sylanbrc df-br sylib
      mpbird eqeltrd ) AFEUAKZVSUCLZVSUDLZUEZBDUFKZABDUBKZMZVSWDNZVSWBUGBDUHZAB
      CDEFABCUFKZBCUBKZEBCUIGUJZACDUFKZCDUBKZFCDUIHUJZUKZVSWDULOAVTWAWCPZWBWCNA
      VTWAWDPZIUMZJUMZBUNLZKZWQVTLZWRVTLZDUNLZKZWQWRWAKZQZJBUOLZUPIXGUPWOAWEWFW
      PWGWNVSWDROAXFIJXGXGAWQXGNZWRXGNZUQZUQZXFWTWQEUCLZLZFUCLZLZWRXLLZXNLZXCKZ
      XMXPFUDLZKZWQWREUDLZKZURZQZXKXMXPCUNLZKZXRXTQWTYFYBQYDXKCUOLZCDXNXSYEXCXM
      XPYGSZXCSZYESZXKWKMFWKNZXNXSWKPCDUSAYKXJHTFWKROXKXGYGWQXLXKXGYGBCXLYAXGSZ
      YHXKWIMEWINZXLYAWIPBCUHAYMXJWJTZEWIROUTZAXHXIVAZVBXKXGYGWRXLYOAXHXIVCZVBV
      DXKXGBCXLYAWSYEWQWRYLYJWSSZXKWHMEWHNZXLYAWHPBCUSAYSXJGTEWHROYPYQVDWTYFXRX
      TYBVGVEXKWTWTXDXRXEYCXKXGBCDEFWQWRYLYNAFWLNXJWMTZYPYQVFXKWTVHXKXAXOXBXQXC
      XKXGBCDEFWQYLYNYTYPVIXKXGBCDEFWRYLYNYTYQVIVJVKVQVLIJXGBDVTWAWSXCYLYIYRVMV
      NVTWAWCVOVPVR $.
  $}

  ${
    $d x y C $.  $d x y E $.  $d x y F $.  $d x y G $.  $d x y ph $.
    cofth.f $e |- ( ph -> F e. ( C Faith D ) ) $.
    cofth.g $e |- ( ph -> G e. ( D Faith E ) ) $.
    $( The composition of two faithful functors is faithful.  Proposition
       3.30(c) in [Adamek] p. 35.  (Contributed by Mario Carneiro,
       28-Jan-2017.) $)
    cofth $p |- ( ph -> ( G o.func F ) e. ( C Faith E ) ) $=
      ( vx vy co cfv wrel wcel sylancr wbr wf1 1st2ndbr eqid adantr ccofu cfunc
      c1st c2nd cop cfth wceq relfunc fthfunc sseldi cofucl 1st2nd cv chom wral
      cbs wa ccom relfth funcf1 simprl ffvelrnd simprr fthf1 f1co syl2anc eqidd
      cofu2nd cofu1 oveq12d f1eq123d mpbird isfth2 sylanbrc df-br sylib eqeltrd
      ralrimivva ) AFEUAKZVSUCLZVSUDLZUEZBDUFKZABDUBKZMZVSWDNZVSWBUGBDUHZABCDEF
      ABCUFKZBCUBKZEBCUIGUJZACDUFKZCDUBKZFCDUIHUJZUKZVSWDULOAVTWAWCPZWBWCNAVTWA
      WDPZIUMZJUMZBUNLZKZWQVTLZWRVTLZDUNLZKZWQWRWAKZQZJBUPLZUOIXGUOWOAWEWFWPWGW
      NVSWDROAXFIJXGXGAWQXGNZWRXGNZUQZUQZXFWTWQEUCLZLZFUCLZLZWRXLLZXNLZXCKZXMXP
      FUDLZKZWQWREUDLZKZURZQZXKXMXPCUNLZKZXRXTQWTYFYBQYDXKCUPLZCDXNXSYEXCXMXPYG
      SZYESZXCSZXKWKMFWKNZXNXSWKPCDUSAYKXJHTFWKROXKXGYGWQXLXKXGYGBCXLYAXGSZYHXK
      WIMEWINZXLYAWIPBCUHAYMXJWJTZEWIROUTZAXHXIVAZVBXKXGYGWRXLYOAXHXIVCZVBVDXKX
      GBCXLYAWSYEWQWRYLWSSZYIXKWHMEWHNZXLYAWHPBCUSAYSXJGTEWHROYPYQVDWTYFXRXTYBV
      EVFXKWTWTXDXRXEYCXKXGBCDEFWQWRYLYNAFWLNXJWMTZYPYQVHXKWTVGXKXAXOXBXQXCXKXG
      BCDEFWQYLYNYTYPVIXKXGBCDEFWRYLYNYTYQVIVJVKVLVRIJXGBDVTWAWSXCYLYRYJVMVNVTW
      AWCVOVPVQ $.
  $}

  ${
    coffth.f $e |- ( ph -> F e. ( ( C Full D ) i^i ( C Faith D ) ) ) $.
    coffth.g $e |- ( ph -> G e. ( ( D Full E ) i^i ( D Faith E ) ) ) $.
    $( The composition of two fully faithful functors is fully faithful.
       (Contributed by Mario Carneiro, 28-Jan-2017.) $)
    coffth $p |- ( ph ->
      ( G o.func F ) e. ( ( C Full E ) i^i ( C Faith E ) ) ) $=
      ( cful co cfth ccofu cin inss1 sseldi cofull inss2 cofth elind ) ABDIJBDK
      JFELJABCDEFABCIJZBCKJZMZTETUANGOACDIJZCDKJZMZUCFUCUDNHOPABCDEFAUBUAETUAQG
      OAUEUDFUCUDQHORS $.
  $}

  ${
    rescfth.d $e |- D = ( C |`cat J ) $.
    rescfth.i $e |- I = ( idFunc ` D ) $.
    $( The inclusion functor from a subcategory is a faithful functor.
       (Contributed by Mario Carneiro, 27-Jan-2017.) $)
    rescfth $p |- ( J e. ( Subcat ` C ) -> I e. ( D Faith C ) ) $=
      ( csubc cfv wcel cfth co cresc oveq2i fthres2 syl5eqss cful inss2 ccat id
      cin subccat idffth syl sseldi sseldd ) DAGHIZBBJKZBAJKZCUFUGBADLKZJKUHBUI
      BJEMBADNOUFBBPKZUGTZUGCUJUGQUFBRICUKIUFABDEUFSUABCFUBUCUDUE $.
  $}

  ${
    $d x y C $.  $d x y D $.  $d x y I $.  $d x y S $.  $d x y V $.
    ressffth.d $e |- D = ( C |`s S ) $.
    ressffth.i $e |- I = ( idFunc ` D ) $.
    $( The inclusion functor from a full subcategory is a full and faithful
       functor, see also remark 4.4(2) in [Adamek] p. 49.  (Contributed by
       Mario Carneiro, 27-Jan-2017.) $)
    ressffth $p |- ( ( C e. Cat /\ S e. V ) ->
      I e. ( ( D Full C ) i^i ( D Faith C ) ) ) $=
      ( vx vy ccat wcel wa cfv co cfunc wceq chomf cvv ccomf eqid c1st c2nd cop
      cful cfth cin wrel relfunc resscat syl5eqel idfucl syl 1st2nd sylancr wbr
      cress cv chom wf1o cbs wral cxp cres cresc ressinbas adantl syl5eq fveq2d
      eqidd simpl wss inss2 fullresc simpld eqtrd simprd ovex eqeltri funcpropd
      a1i csubc fullsubc funcres2 eqsstrd sseldd eqeltrrd df-br sylibr cid f1oi
      adantr simprl simprr idfu2nd ad2antlr idfu1 oveq123d f1oeq123d ralrimivva
      resshom mpbiri isffth2 sylanbrc sylib eqeltrd ) AJKZCEKZLZDDUAMZDUBMZUCZB
      AUDNBAUENUFZXHBBONZUGDXMKZDXKPBBUHXHBJKZXNXHBACUPNZJFACEUIUJZBDGUKULZDXMU
      MUNZXHXIXJXLUOZXKXLKXHXIXJBAONZUOZHUQZIUQZBURMZNZYCXIMZYDXIMZAURMZNZYCYDX
      JNZUSZIBUTMZVAHYMVAXTXHXKYAKYBXHDXKYAXSXHXMYADXHXMBAAQMZCAUTMZUFZYPVBVCZV
      DNZONZYAXHBBBYRRXHBQMZVIXHBSMZVIXHYTAYPUPNZQMZYRQMZXHBUUBQXHBXPUUBFXGXPUU
      BPXFCYOAEYOTZVEVFVGZVHXHUUCUUDPZUUBSMZYRSMZPZXHYOAUUBYPYRYNUUEYNTZXFXGVJZ
      YPYOVKXHCYOVLVTZUUBTYRTVMZVNVOXHUUAUUHUUIXHBUUBSUUFVHXHUUGUUJUUNVPVOBRKXH
      BXPRFACUPVQVRVTZUUOUUOYRRKXHAYQVDVQVTVSXHYQAWAMKYSYAVKXHYOAYPYNUUEUUKUULU
      UMWBBAYQWCULWDXRWEWFXIXJYAWGWHXHYLHIYMYMXHYCYMKZYDYMKZLZLZYLYFYFWIYFVCZUS
      YFWJUUSYFYFYJYFYKUUTUUSYMBYEDYCYDGYMTZXHXOUURXQWKZYETZXHUUPUUQWLZXHUUPUUQ
      WMZWNUUSYFVIUUSYGYCYHYDYIYEXGYIYEPXFUURCABYIEFYITZWTWOUUSYMBDYCGUVAUVBUVD
      WPUUSYMBDYDGUVAUVBUVEWPWQWRXAWSHIYMBAXIXJYEYIUVAUVCUVFXBXCXIXJXLWGXDXE $.
  $}

  ${
    $d x y A $.  $d x y C $.  $d x y D $.  $d x y E $.  $d x y ph $.
    $d x y F $.  $d x y G $.
    ffthres2c.a $e |- A = ( Base ` C ) $.
    ffthres2c.e $e |- E = ( D |`s S ) $.
    ffthres2c.d $e |- ( ph -> D e. Cat ) $.
    ffthres2c.r $e |- ( ph -> S e. V ) $.
    ffthres2c.1 $e |- ( ph -> F : A --> S ) $.
    $( Condition for a full functor to also be a full functor into the
       restriction.  (Contributed by Mario Carneiro, 30-Jan-2017.) $)
    fullres2c $p |- ( ph -> ( F ( C Full D ) G <-> F ( C Full E ) G ) ) $=
      ( vx vy co wbr cfv wral cfunc cv chom wceq wa cful funcres2c wcel resshom
      crn eqid syl oveqd eqeq2d 2ralbidv anbi12d isfull 3bitr4g ) AGHCDUAQRZOUB
      ZPUBZHQUJZUTGSZVAGSZDUCSZQZUDZPBTOBTZUEGHCFUAQRZVBVCVDFUCSZQZUDZPBTOBTZUE
      GHCDUFQRGHCFUFQRAUSVIVHVMABCDEFGHIJKLMNUGAVGVLOPBBAVFVKVBAVEVJVCVDAEIUHVE
      VJUDMEDFVEIKVEUKZUIULUMUNUOUPOPBCDGHVEJVNUQOPBCFGHVJJVJUKUQUR $.

    $( Condition for a fully faithful functor to also be a fully faithful
       functor into the restriction.  (Contributed by Mario Carneiro,
       27-Jan-2017.) $)
    ffthres2c $p |- ( ph -> ( F ( ( C Full D ) i^i ( C Faith D ) ) G <->
      F ( ( C Full E ) i^i ( C Faith E ) ) G ) ) $=
      ( cful co wbr cfth wa cin fullres2c fthres2c anbi12d brin 3bitr4g ) AGHCD
      OPZQZGHCDRPZQZSGHCFOPZQZGHCFRPZQZSGHUFUHTQGHUJULTQAUGUKUIUMABCDEFGHIJKLMN
      UAABCDEFGHIJKLMNUBUCGHUFUHUDGHUJULUDUE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Natural transformations and the functor category
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Nat $.
  $c FuncCat $.

  $( Extend class notation to include the collection of natural
     transformations. $)
  cnat $a class Nat $.

  $( Extend class notation to include the functor category. $)
  cfuc $a class FuncCat $.

  ${
    $d a b f g h r s t u v x y $.  $d a h x y A $.  $d a f g r s t u x y B $.
    $d a f g h r s t u x y C $.  $d a f g h r s x y F $.  $d a f g r s t u J $.
    $d a f g h r s x y G $.  $d a f g h r s t u H $.  $d a f g h r s x y ph $.
    $d a f g h r s x y K $.  $d a f g h r s x y L $.  $d a f g r s t u .x. $.
    $d a f g h r s t u x y D $.
    $( Definition of a natural transformation between two functors.  A natural
       transformation ` A : F --> G ` is a collection of arrows
       ` A ( x ) : F ( x ) --> G ( x ) ` , such that
       ` A ( y ) o. F ( h ) = G ( h ) o. A ( x ) ` for each morphism
       ` h : x --> y ` .  Definition 6.1 in [Adamek] p. 83, and definition in
       [Lang] p. 65.  (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    df-nat $a |- Nat = ( t e. Cat , u e. Cat |->
      ( f e. ( t Func u ) , g e. ( t Func u ) |->
        [_ ( 1st ` f ) / r ]_ [_ ( 1st ` g ) / s ]_
          { a e. X_ x e. ( Base ` t ) ( ( r ` x ) ( Hom ` u ) ( s ` x ) ) |
        A. x e. ( Base ` t ) A. y e. ( Base ` t ) A. h e. ( x ( Hom ` t ) y )
      ( ( a ` y ) ( <. ( r ` x ) , ( r ` y ) >.
          ( comp ` u ) ( s ` y ) ) ( ( x ( 2nd ` f ) y ) ` h ) ) =
      ( ( ( x ( 2nd ` g ) y ) ` h ) ( <. ( r ` x ) , ( s ` x ) >.
          ( comp ` u ) ( s ` y ) ) ( a ` x ) ) } ) ) $.

    $( Definition of the category of functors between two fixed categories,
       with the objects being functors and the morphisms being natural
       transformations.  Definition 6.15 in [Adamek] p. 87.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    df-fuc $a |- FuncCat = ( t e. Cat , u e. Cat |->
      { <. ( Base ` ndx ) , ( t Func u ) >. ,
        <. ( Hom ` ndx ) , ( t Nat u ) >. ,
        <. ( comp ` ndx ) ,
          ( v e. ( ( t Func u ) X. ( t Func u ) ) , h e. ( t Func u ) |->
            [_ ( 1st ` v ) / f ]_ [_ ( 2nd ` v ) / g ]_
          ( b e. ( g ( t Nat u ) h ) , a e. ( f ( t Nat u ) g ) |->
            ( x e. ( Base ` t ) |-> ( ( b ` x )
              ( <. ( ( 1st ` f ) ` x ) , ( ( 1st ` g ) ` x ) >. ( comp ` u )
                   ( ( 1st ` h ) ` x ) ) ( a ` x ) ) ) ) ) >. } ) $.

    $( The ` FuncCat ` operation is a well-defined function on categories.
       (Contributed by Mario Carneiro, 12-Jan-2017.) $)
    fnfuc $p |- FuncCat Fn ( Cat X. Cat ) $=
      ( vt vu vv vh vf vg vb va vx ccat cnx cbs cfv cv cop cco c1st cmpt2 csb
      co cfunc chom cnat cxp c2nd cmpt ctp cfuc df-fuc tpex fnmpt2i ) ABJJKLMAN
      ZBNZUATZOZKUBMULUMUCTZOZKPMCDUNUNUDUNECNZQMFURUEMGHFNZDNZUPTENZUSUPTIULLM
      INZGNMVBHNMVBVAQMMVBUSQMMOVBUTQMMUMPMTTUFRSSROZUGUHICBAEFDHGUIUOUQVCUJUK
      $.

    natfval.1 $e |- N = ( C Nat D ) $.
    natfval.b $e |- B = ( Base ` C ) $.
    natfval.h $e |- H = ( Hom ` C ) $.
    natfval.j $e |- J = ( Hom ` D ) $.
    natfval.o $e |- .x. = ( comp ` D ) $.
    $( Value of the function giving natural transformations between two
       categories.  (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    natfval $p |- N = ( f e. ( C Func D ) , g e. ( C Func D ) |->
        [_ ( 1st ` f ) / r ]_ [_ ( 1st ` g ) / s ]_
          { a e. X_ x e. B ( ( r ` x ) J ( s ` x ) ) |
        A. x e. B A. y e. B A. h e. ( x H y )
      ( ( a ` y ) ( <. ( r ` x ) , ( r ` y ) >.
          .x. ( s ` y ) ) ( ( x ( 2nd ` f ) y ) ` h ) ) =
      ( ( ( x ( 2nd ` g ) y ) ` h ) ( <. ( r ` x ) , ( s ` x ) >.
          .x. ( s ` y ) ) ( a ` x ) ) } ) $=
      ( vt vu cnat co cfunc cv c1st cfv c2nd cop wceq wral cixp crab cmpt2 ccat
      csb wcel wa cco chom cbs oveq12 simpl fveq2d syl6eqr simpr oveqd ixpeq2dv
      ixpeq1d eqtrd raleqbidv rabeqbidv csbeq2dv mpt2eq123dv df-nat ovex mpt2ex
      eqeq12d ovmpt2a wn c0 mpt2ndm0 funcrcl con3i eq0rdv mpt2eq12 mpt20 syl6eq
      syl2anc eqtr4d pm2.61i eqtri ) LDEUCUDZGHDEUEUDZWONGUFZUGUHZMHUFZUGUHZBUF
      ZOUFZUHZIUFZAUFZWTWPUIUHUDUHZXDNUFZUHZWTXFUHUJZWTMUFZUHZFUDZUDZXCXDWTWRUI
      UHUDUHZXDXAUHZXGXDXIUHZUJZXJFUDZUDZUKZIXDWTJUDZULZBCULZACULZOACXGXOKUDZUM
      ZUNZUQZUQZUOZPDUPUREUPURUSZWNYIUKUAUBDEUPUPGHUAUFZUBUFZUEUDZYMNWQMWSXBXEX
      HXJYLUTUHZUDZUDZXMXNXPXJYNUDZUDZUKZIXDWTYKVAUHZUDZULZBYKVBUHZULZAUUCULZOA
      UUCXGXOYLVAUHZUDZUMZUNZUQZUQZUOZYIUCYKDUKZYLEUKZUSZGHYMYMUUKWOWOYHYKDYLEU
      EVCZUUPUUONWQUUJYGUUOMWSUUIYFUUOUUEYCOUUHYEUUOUUHACUUGUMYEUUOAUUCCUUGUUOU
      UCDVBUHCUUOYKDVBUUMUUNVDZVEQVFZVJUUOACUUGYDUUOUUFKXGXOUUOUUFEVAUHKUUOYLEV
      AUUMUUNVGZVESVFVHVIVKUUOUUDYBAUUCCUURUUOUUBYABUUCCUURUUOYSXSIUUAXTUUOYTJX
      DWTUUOYTDVAUHJUUOYKDVAUUQVERVFVHUUOYPXLYRXRUUOYOXKXBXEUUOYNFXHXJUUOYNEUTU
      HFUUOYLEUTUUSVETVFZVHVHUUOYQXQXMXNUUOYNFXPXJUUTVHVHVSVLVLVLVMVNVNVOABUBUA
      GHIMNOVPZGHWOWOYHDEUEVQZUVBVRVTYJWAZWNWBYIUAUBUULUCDEUPUPUVAWCUVCYIGHWBWB
      YHUOZWBUVCWOWBUKZUVEYIUVDUKUVCGWOWPWOURYJDEWPWDWEWFZUVFGHWOWOWBWBYHWGWJGH
      WBYHWHWIWKWLWM $.

    ${
      isnat.f $e |- ( ph -> F ( C Func D ) G ) $.
      isnat.g $e |- ( ph -> K ( C Func D ) L ) $.
      $( Property of being a natural transformation.  (Contributed by Mario
         Carneiro, 6-Jan-2017.) $)
      isnat $p |- ( ph -> ( A e. ( <. F , G >. N <. K , L >. ) <->
            ( A e. X_ x e. B ( ( F ` x ) J ( K ` x ) ) /\
          A. x e. B A. y e. B A. h e. ( x H y )
        ( ( A ` y ) ( <. ( F ` x ) , ( F ` y ) >.
            .x. ( K ` y ) ) ( ( x G y ) ` h ) ) =
        ( ( ( x L y ) ` h ) ( <. ( F ` x ) , ( K ` x ) >.
            .x. ( K ` y ) ) ( A ` x ) ) ) ) ) $=
        ( va vf vg vr vs cop co wcel cv cfv wceq wral cixp crab cfunc c1st c2nd
        wa csb cvv cmpt2 natfval a1i fvexd simprl fveq2d wrel relfunc brrelex12
        wbr sylancr op1stg syl adantr eqtrd simplrr simplr fveq1d simpr oveq12d
        ad2antrr ixpeq2dv opeq12d eqidd op2ndg ad3antrrr oveqd oveq123d eqeq12d
        ralbidv 2ralbidv rabeqbidv csbied2 df-br sylib rgenw ixpexg ax-mp rabex
        ovex ovmpt2d eleq2d fveq1 oveq1d oveq2d elrab syl6bb ) ADJKUIZNOUIZPUJZ
        UKDCULZUDULZUMZIULZBULZXNKUJZUMZXRJUMZXNJUMZUIZXNNUMZHUJZUJZXQXRXNOUJZU
        MZXRXOUMZYAXRNUMZUIZYDHUJZUJZUNZIXRXNLUJZUOZCEUOBEUOZUDBEYAYJMUJZUPZUQZ
        UKDYSUKXNDUMZXTYEUJZYHXRDUMZYLUJZUNZIYOUOZCEUOBEUOZVAAXMYTDAUEUFXKXLFGU
        RUJZUUHUGUEULZUSUMZUHUFULZUSUMZXPXQXRXNUUIUTUMZUJZUMZXRUGULZUMZXNUUPUMZ
        UIZXNUHULZUMZHUJZUJZXQXRXNUUKUTUMZUJZUMZYIUUQXRUUTUMZUIZUVAHUJZUJZUNZIY
        OUOZCEUOBEUOZUDBEUUQUVGMUJZUPZUQZVBZVBZYTPVCPUEUFUUHUUHUVRVDUNABCEFGHUE
        UFILMPUHUGUDQRSTUAVEVFAUUIXKUNZUUKXLUNZVAZVAZUGUUJJUVQYTVCUWBUUIUSVGUWB
        UUJXKUSUMZJUWBUUIXKUSAUVSUVTVHZVIAUWCJUNZUWAAJVCUKKVCUKVAZUWEAUUHVJZJKU
        UHVMZUWFFGVKZUBJKUUHVLVNZJKVCVCVOVPVQVRUWBUUPJUNZVAZUHUULNUVPYTVCUWLUUK
        USVGUWLUULXLUSUMZNUWLUUKXLUSAUVSUVTUWKVSZVIAUWMNUNZUWAUWKANVCUKOVCUKVAZ
        UWOAUWGNOUUHVMZUWPUWIUCNOUUHVLVNZNOVCVCVOVPWDVRUWLUUTNUNZVAZUVMYQUDUVOY
        SUWTBEUVNYRUWTUUQYAUVGYJMUWTXRUUPJUWBUWKUWSVTZWAZUWTXRUUTNUWLUWSWBZWAZW
        CWEUWTUVLYPBCEEUWTUVKYNIYOUWTUVCYFUVJYMUWTXPXPUUOXTUVBYEUWTUUSYCUVAYDHU
        WTUUQYAUURYBUXBUWTXNUUPJUXAWAWFUWTXNUUTNUXCWAZWCUWTXPWGUWTXQUUNXSUWTUUM
        KXRXNUWTUUMXKUTUMZKUWTUUIXKUTUWBUVSUWKUWSUWDWDVIAUXFKUNZUWAUWKUWSAUWFUX
        GUWJJKVCVCWHVPWIVRWJWAWKUWTUVFYHYIYIUVIYLUWTUVHYKUVAYDHUWTUUQYAUVGYJUXB
        UXDWFUXEWCUWTXQUVEYGUWTUVDOXRXNUWTUVDXLUTUMZOUWTUUKXLUTUWLUVTUWSUWNVQVI
        AUXHOUNZUWAUWKUWSAUWPUXIUWRNOVCVCWHVPWIVRWJWAUWTYIWGWKWLWMWNWOWPWPAUWHX
        KUUHUKUBJKUUHWQWRAUWQXLUUHUKUCNOUUHWQWRYTVCUKAYQUDYSYRVCUKZBEUOYSVCUKUX
        JBEYAYJMXCWSBEYRVCWTXAXBVFXDXEYQUUGUDDYSXODUNZYPUUFBCEEUXKYNUUEIYOUXKYF
        UUBYMUUDUXKXPUUAXTYEXNXODXFXGUXKYIUUCYHYLXRXODXFXHWLWMWNXIXJ $.
    $}

    isnat2.f $e |- ( ph -> F e. ( C Func D ) ) $.
    isnat2.g $e |- ( ph -> G e. ( C Func D ) ) $.
    $( Property of being a natural transformation.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    isnat2 $p |- ( ph -> ( A e. ( F N G ) <->
          ( A e. X_ x e. B ( ( ( 1st ` F ) ` x ) J ( ( 1st ` G ) ` x ) ) /\
        A. x e. B A. y e. B A. h e. ( x H y )
      ( ( A ` y ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` F ) ` y ) >.
          .x. ( ( 1st ` G ) ` y ) ) ( ( x ( 2nd ` F ) y ) ` h ) ) =
      ( ( ( x ( 2nd ` G ) y ) ` h ) ( <. ( ( 1st ` F ) ` x ) ,
        ( ( 1st ` G ) ` x ) >. .x. ( ( 1st ` G ) ` y ) ) ( A ` x ) ) ) ) ) $=
      ( co wcel c1st cfv c2nd cv cixp wceq wral wa cfunc relfunc 1st2nd sylancr
      cop wrel oveq12d eleq2d wbr 1st2ndbr isnat bitrd ) ADJKNUBZUCDJUDUEZJUFUE
      ZUPZKUDUEZKUFUEZUPZNUBZUCDBEBUGZVEUEZVLVHUEZMUBUHUCCUGZDUEIUGZVLVOVFUBUEV
      MVOVEUEUPVOVHUEZHUBUBVPVLVOVIUBUEVLDUEVMVNUPVQHUBUBUIIVLVOLUBUJCEUJBEUJUK
      AVDVKDAJVGKVJNAFGULUBZUQZJVRUCZJVGUIFGUMZTJVRUNUOAVSKVRUCZKVJUIWAUAKVRUNU
      OURUSABCDEFGHIVEVFLMVHVINOPQRSAVSVTVEVFVRUTWATJVRVAUOAVSWBVHVIVRUTWAUAKVR
      VAUOVBVC $.
  $}

  ${
    $d f x y z A $.  $d f x y z F $.  $d f x y z G $.  $d f H $.  $d f x y R $.
    $d a f g h r s x y z C $.  $d f x y z K $.  $d f x y z ph $.  $d f x y X $.
    $d a f g h r s x y z D $.  $d f x y z L $.  $d f x y .x. $.  $d f x y Y $.
    $d x y B $.  $d x J $.
    natrcl.1 $e |- N = ( C Nat D ) $.
    $( The natural transformation set operation is a well-defined function.
       (Contributed by Mario Carneiro, 12-Jan-2017.) $)
    natffn $p |- N Fn ( ( C Func D ) X. ( C Func D ) ) $=
      ( vf vg vr vs vy va vh vx co cv c1st cfv c2nd wral eqid cvv cfunc cop cco
      wceq chom cbs cixp crab csb natfval wcel rgenw ixpexg ax-mp rabex fnmpt2i
      ovex csbex ) EFABUAMZUSGENZOPZHFNZOPZINZJNZPKNZLNZVDUTQPMPVGGNZPZVDVHPUBV
      DHNZPZBUCPZMMVFVGVDVBQPMPVGVEPVIVGVJPZUBVKVLMMUDKVGVDAUEPZMRIAUFPZRLVORZJ
      LVOVIVMBUEPZMZUGZUHZUIZUICLIVOABVLEFKVNVQCHGJDVOSVNSVQSVLSUJGVAWAHVCVTVPJ
      VSVRTUKZLVORVSTUKWBLVOVIVMVQUQULLVOVRTUMUNUOURURUP $.

    $( Reverse closure for a natural transformation.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    natrcl $p |- ( A e. ( F N G ) ->
      ( F e. ( C Func D ) /\ G e. ( C Func D ) ) ) $=
      ( vf vg vr vs vy va vh vx co cv cfv wral eqid c1st c2nd cop cco wceq chom
      cfunc cbs cixp crab csb natfval elmpt2cl ) HIBCUGPZUNJHQZUARKIQZUARLQZMQZ
      RNQZOQZUQUOUBRPRUTJQZRZUQVARUCUQKQZRZCUDRZPPUSUTUQUPUBRPRUTURRVBUTVCRZUCV
      DVEPPUENUTUQBUFRZPSLBUHRZSOVHSMOVHVBVFCUFRZPUIUJUKUKDEFAOLVHBCVEHINVGVIFK
      JMGVHTVGTVITVETULUM $.

    ${
      nat1st2nd.2 $e |- ( ph -> A e. ( F N G ) ) $.
      $( Rewrite the natural transformation predicate with separated functor
         parts.  (Contributed by Mario Carneiro, 6-Jan-2017.) $)
      nat1st2nd $p |- ( ph -> A e. ( <. ( 1st ` F ) , ( 2nd ` F ) >. N
          <. ( 1st ` G ) , ( 2nd ` G ) >. ) ) $=
        ( co c1st cfv c2nd cop cfunc wrel wcel wceq 1st2nd sylancr relfunc syl
        wa natrcl simpld simprd oveq12d eleqtrd ) ABEFGJZEKLEMLNZFKLFMLNZGJIAEU
        JFUKGACDOJZPZEULQZEUJRCDUAZAUNFULQZABUIQUNUPUCIBCDEFGHUDUBZUEEULSTAUMUP
        FUKRUOAUNUPUQUFFULSTUGUH $.
    $}

    natixp.2 $e |- ( ph -> A e. ( <. F , G >. N <. K , L >. ) ) $.
    natixp.b $e |- B = ( Base ` C ) $.
    ${
      natixp.j $e |- J = ( Hom ` D ) $.
      $( A natural transformation is a function from the objects of ` C ` to
         homomorphisms from ` F ( x ) ` to ` G ( x ) ` .  (Contributed by Mario
         Carneiro, 6-Jan-2017.) $)
      natixp $p |- ( ph -> A e. X_ x e. B ( ( F ` x ) J ( K ` x ) ) ) $=
        ( cfv co wcel cop vy vz cv cixp cco wceq chom wral wa eqid cfunc natrcl
        wbr syl simpld df-br sylibr simprd isnat mpbid ) ACBDBUCZGQZVAJQZIRUDSZ
        UAUCZCQUBUCZVAVEHRQVBVEGQTVEJQZFUEQZRRVFVAVEKRQVACQVBVCTVGVHRRUFUBVAVEE
        UGQZRUHUADUHBDUHZACGHTZJKTZLRSZVDVJUINABUACDEFVHUBGHVIIJKLMOVIUJPVHUJAV
        KEFUKRZSZGHVNUMAVOVLVNSZAVMVOVPUINCEFVKVLLMULUNZUOGHVNUPUQAVPJKVNUMAVOV
        PVQURJKVNUPUQUSUTUO $.

      natcl.1 $e |- ( ph -> X e. B ) $.
      $( A component of a natural transformation is a morphism.  (Contributed
         by Mario Carneiro, 6-Jan-2017.) $)
      natcl $p |- ( ph -> ( A ` X ) e. ( ( F ` X ) J ( K ` X ) ) ) $=
        ( vx cfv wcel cv co cixp natixp wceq fveq2 oveq12d fvixp syl2anc ) ABRC
        RUAZFSZUJISZHUBZUCTLCTLBSLFSZLISZHUBZTARBCDEFGHIJKMNOPUDQRCUMLUPBUJLUEU
        KUNULUOHUJLFUFUJLIUFUGUHUI $.
    $}

    $( A natural transformation is a function on the objects of ` C ` .
       (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    natfn $p |- ( ph -> A Fn B ) $=
      ( vx cv cfv chom co cixp wcel wfn eqid natixp ixpfn syl ) ABNCNOZFPUFHPEQ
      PZRZSTBCUAANBCDEFGUGHIJKLMUGUBUCNCUHBUDUE $.

    nati.h $e |- H = ( Hom ` C ) $.
    nati.o $e |- .x. = ( comp ` D ) $.
    nati.x $e |- ( ph -> X e. B ) $.
    nati.y $e |- ( ph -> Y e. B ) $.
    nati.r $e |- ( ph -> R e. ( X H Y ) ) $.
    $( Naturality property of a natural transformation.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    nati $p |- ( ph ->
        ( ( A ` Y ) ( <. ( F ` X ) , ( F ` Y ) >.
            .x. ( K ` Y ) ) ( ( X G Y ) ` R ) ) =
        ( ( ( X L Y ) ` R ) ( <. ( F ` X ) , ( K ` X ) >.
            .x. ( K ` Y ) ) ( A ` X ) ) ) $=
      ( vy vf vx cv cfv co cop wceq wral chom cixp wcel wa cfunc wbr natrcl syl
      eqid simpld df-br sylibr simprd isnat mpbid adantr ad2antrr simpr oveq12d
      simplr eleqtrrd simpllr fveq2d opeq12d fveq12d oveq123d eqeq12d rspcimdv
      rspcdv mpd ) AUDUGZBUHZUEUGZUFUGZWCIUIZUHZWFHUHZWCHUHZUJZWCKUHZGUIZUIZWEW
      FWCLUIZUHZWFBUHZWIWFKUHZUJZWLGUIZUIZUKZUEWFWCJUIZULZUDCULZUFCULZOBUHZFNOI
      UIZUHZNHUHZOHUHZUJZOKUHZGUIZUIZFNOLUIZUHZNBUHZXJNKUHZUJZXMGUIZUIZUKZABUFC
      WIWREUMUHZUIUNUOZXFABHIUJZKLUJZMUIUOZYEXFUPQAUFUDBCDEGUEHIJYDKLMPRSYDVATA
      YFDEUQUIZUOZHIYIURAYJYGYIUOZAYHYJYKUPQBDEYFYGMPUSUTZVBHIYIVCVDAYKKLYIURAY
      JYKYLVEKLYIVCVDVFVGVEAXEYCUFNCUAAWFNUKZUPZXDYCUDOCAOCUOYMUBVHYNWCOUKZUPZX
      BYCUEFXCYPFNOJUIZXCAFYQUOYMYOUCVIYPWFNWCOJAYMYOVLYNYOVJVKVMYPWEFUKZUPZWNX
      OXAYBYSWDXGWHXIWMXNYSWKXLWLXMGYSWIXJWJXKYSWFNHAYMYOYRVNZVOZYSWCOHYNYOYRVL
      ZVOVPYSWCOKUUBVOZVKYSWCOBUUBVOYSWEFWGXHYSWFNWCOIYTUUBVKYPYRVJZVQVRYSWPXQW
      QXRWTYAYSWSXTWLXMGYSWIXJWRXSUUAYSWFNKYTVOVPUUCVKYSWEFWOXPYSWFNWCOLYTUUBVK
      UUDVQYSWFNBYTVOVRVSWAVTVTWB $.
  $}

  ${
    $d a f g r s x y z C $.  $d a f g r s x y z D $.
    wunnat.1 $e |- ( ph -> U e. WUni ) $.
    wunnat.2 $e |- ( ph -> C e. U ) $.
    wunnat.3 $e |- ( ph -> D e. U ) $.
    $( A weak universe is closed under the natural transformation operation.
       (Contributed by Mario Carneiro, 12-Jan-2017.) $)
    wunnat $p |- ( ph -> ( C Nat D ) e. U ) $=
      ( vr vf vs vg va vx co cfv cv wral wcel cvv eqid vy vz cfunc cxp chom crn
      cuni cbs cmap cpw cnat wunfunc wunxp c1 c4 cdc df-hom wunstr wunrn wununi
      df-base wunmap wunpw wf c1st c2nd cop cco wceq cixp crab fvex wsbc ssrab2
      csb wss ovssunirn rgenw ss2ixp ax-mp rnex uniex ixpconst sstri ovex elpw2
      sseqtri mpbir sbcth sbcel1g mpbid rgen2w natfval fmpt2 mpbi a1i wunf ) AB
      CUCNZWRUDZCUEOZUFZUGZBUHOZUINZUJZDBCUKNZEAWRWRDEABCDEFGULZXGUMAXDDEAXBXCD
      EAXADEAWTDEACDUEUNUOUPUQEGURUSUTABDUHUNVAEFURVBVCWSXEXFVDZAHIPZVEOZJKPZVE
      OZUAPZLPZOUBPZMPZXMXIVFONOXPHPZOZXMXQOVGXMJPZOZCVHOZNNXOXPXMXKVFONOXPXNOX
      RXPXSOZVGXTYANNVIUBXPXMBUEOZNQUAXCQMXCQZLMXCXRYBWTNZVJZVKZVOZVOZXERZKWRQI
      WRQXHYJIKWRWRXJSRZYJXIVEVLYKYHXERZHXJVMYJYLHXJSXLSRZYLXKVEVLYMYGXERZJXLVM
      YLYNJXLSYNYGXDVPYGYFXDYDLYFVNYFMXCXBVJZXDYEXBVPZMXCQYFYOVPYPMXCWTXRYBVQVR
      MXCYEXBVSVTMXCXBBUHVLXAWTCUEVLWAWBWCWGWDYGXDXBXCUIWEWFWHWIJXLYGXESWJWKVTW
      IHXJYHXESWJWKVTWLIKWRWRYIXEXFMUAXCBCYAIKUBYCWTXFJHLXFTXCTYCTWTTYATWMWNWOW
      PWQ $.
  $}

  $( A category structure is a structure.  (Contributed by Mario Carneiro,
     3-Jan-2017.) $)
  catstr $p |- { <. ( Base ` ndx ) , U >. ,
                 <. ( Hom ` ndx ) , H >. , <. ( comp ` ndx ) , .x. >. }
                Struct <. 1 , ; 1 5 >. $=
    ( cnx cbs cfv chom cco c1 c4 cdc 1nn basendx 4nn0 1nn0 1lt10 declti decnncl
    c5 5nn 4nn homndx 4lt5 declt ccondx strle3 ) DEFDGFDHFIIJKISKBCALMIJILNOPQI
    JOUARUBIJSONTUCUDISOTRUEUF $.

  ${
    $d h t u v B $.  $d t u N $.  $d a b f g h t u v x ph $.  $d t u .xb $.
    $d a b f g h t u v x C $.  $d a b f g h t u v x D $.
    fucval.q $e |- Q = ( C FuncCat D ) $.
    fucval.b $e |- B = ( C Func D ) $.
    fucval.n $e |- N = ( C Nat D ) $.
    fucval.a $e |- A = ( Base ` C ) $.
    fucval.o $e |- .x. = ( comp ` D ) $.
    fucval.c $e |- ( ph -> C e. Cat ) $.
    fucval.d $e |- ( ph -> D e. Cat ) $.
    ${
      fucval.x $e |- ( ph -> .xb = ( v e. ( B X. B ) , h e. B |->
              [_ ( 1st ` v ) / f ]_ [_ ( 2nd ` v ) / g ]_
            ( b e. ( g N h ) , a e. ( f N g ) |->
              ( x e. A |-> ( ( b ` x )
                ( <. ( ( 1st ` f ) ` x ) , ( ( 1st ` g ) ` x ) >. .x.
                     ( ( 1st ` h ) ` x ) ) ( a ` x ) ) ) ) ) ) $.
      $( Value of the functor category.  (Contributed by Mario Carneiro,
         6-Jan-2017.) $)
      fucval $p |- ( ph -> Q = { <. ( Base ` ndx ) , B >. ,
        <. ( Hom ` ndx ) , N >. , <. ( comp ` ndx ) , .xb >. } ) $=
        ( vt vu cfuc co cnx cbs cfv cop chom cco ctp ccat cv cnat cxp c1st c2nd
        cfunc cmpt csb cvv wceq df-fuc a1i simprl simprr oveq12d syl6eqr opeq2d
        cmpt2 sqxpeqd oveqd fveq2d mpteq12dv mpt2eq123dv csbeq2dv adantr eqtr4d
        wa tpeq123d wcel tpex ovmpt2d syl5eq ) AHFGUGUHUIUJUKZEULZUIUMUKZNULZUI
        UNUKZIULZUOZQAUEUFFGUPUPWIUEUQZUFUQZVBUHZULZWKWPWQURUHZULZWMCMWRWRUSZWR
        KCUQZUTUKZLXCVAUKZPOLUQZMUQZWTUHZKUQZXFWTUHZBWPUJUKZBUQZPUQUKZXLOUQUKZX
        LXIUTUKUKXLXFUTUKUKULZXLXGUTUKUKZWQUNUKZUHZUHZVCZVNZVDZVDZVNZULZUOZWOUG
        VEUGUEUFUPUPYFVNVFABCUFUEKLMOPVGVHAWPFVFZWQGVFZWCZWCZWSWJXAWLYEWNYJWREW
        IYJWRFGVBUHEYJWPFWQGVBAYGYHVIZAYGYHVJZVKRVLZVMYJWTNWKYJWTFGURUHNYJWPFWQ
        GURYKYLVKSVLZVMYJYDIWMYJYDCMEEUSZEKXDLXEPOXFXGNUHZXIXFNUHZBDXMXNXOXPJUH
        ZUHZVCZVNZVDZVDZVNZIYJCMXBWRYCYOEUUCYJWREYMVOYMYJKXDYBUUBYJLXEYAUUAYJPO
        XHXJXTYPYQYTYJWTNXFXGYNVPYJWTNXIXFYNVPYJBXKXSDYSYJXKFUJUKDYJWPFUJYKVQTV
        LYJXRYRXMXNYJXQJXOXPYJXQGUNUKJYJWQGUNYLVQUAVLVPVPVRVSVTVTVSAIUUDVFYIUDW
        AWBVMWDUBUCWOVEWEAWJWLWNWFVHWGWH $.
    $}

    fuccofval.x $e |- .xb = ( comp ` Q ) $.
    $( Value of the functor category.  (Contributed by Mario Carneiro,
       6-Jan-2017.) $)
    fuccofval $p |- ( ph -> .xb = ( v e. ( B X. B ) , h e. B |->
            [_ ( 1st ` v ) / f ]_ [_ ( 2nd ` v ) / g ]_
          ( b e. ( g N h ) , a e. ( f N g ) |->
            ( x e. A |-> ( ( b ` x )
              ( <. ( ( 1st ` f ) ` x ) , ( ( 1st ` g ) ` x ) >. .x.
                   ( ( 1st ` h ) ` x ) ) ( a ` x ) ) ) ) ) ) $=
      ( cco cfv cnx cbs cop chom cxp cv c1st c2nd co cmpt2 csb ctp eqidd fucval
      cmpt fveq2d cvv wcel wceq cfunc ovex eqeltri xpex mpt2ex c1 c5 cdc catstr
      ccoid snsstp3 strfv ax-mp 3eqtr4g ) AHUEUFUGUHUFEUIZUGUJUFNUIZUGUEUFCMEEU
      KZEKCULZUMUFLWCUNUFPOLULZMULZNUOKULZWDNUOBDBULZPULUFWGOULUFWGWFUMUFUFWGWD
      UMUFUFUIWGWEUMUFUFJUOUOVAUPUQUQZUPZUIZURZUEUFZIWIAHWKUEABCDEFGHWIJKLMNOPQ
      RSTUAUBUCAWIUSUTVBUDWIVCVDWIWLVECMWBEWHEEEFGVFUOVCRFGVFVGVHZWMVIWMVJWIWKU
      EVCVKVKVLVMUIWIENVNVOVTWAWJVPVQVRVS $.
  $}

  ${
    $d a b f g h v x C $.  $d a b f g h v x D $.
    fucbas.q $e |- Q = ( C FuncCat D ) $.
    $( The objects of the functor category are functors from ` C ` to ` D ` .
       (Contributed by Mario Carneiro, 6-Jan-2017.)  (Revised by Mario
       Carneiro, 12-Jan-2017.) $)
    fucbas $p |- ( C Func D ) = ( Base ` Q ) $=
      ( vx vv vf vg vh ccat wcel co cbs cfv cnx cop cco eqid c0 cfuc va vb wceq
      wa cfunc chom cnat ctp cvv c1 c5 cdc simpl fuccofval fucval catstr baseid
      simpr snsstp1 ovexd strfv3 eqcomd wn base0 funcrcl con3i eq0rdv cxp fnfuc
      cv wfn cdm fndm ax-mp ndmov syl5eq fveq2d 3eqtr4a pm2.61i ) AJKZBJKZUDZAB
      UELZCMNZUCWBWDWCWBWDWCOMNWCPZOUFNABUGLZPZOQNCQNZPZUHCMUIUJUJUKULPWBEFAMNZ
      WCABCWHBQNZGHIWFUAUBDWCRZWFRZWJRZWKRZVTWAUMZVTWAURZWBEFWJWCABCWHWKGHIWFUA
      UBDWLWMWNWOWPWQWHRUNUOWHWCWFUPUQWEWGWIUSWBABUEUTWDRVAVBWBVCZSSMNWCWDVDWRG
      WCGVJZWCKWBABWSVEVFVGWRCSMWRCABTLSDABJTTJJVHZVKTVLWTUCVIWTTVMVNVOVPVQVRVS
      $.

    fuchom.n $e |- N = ( C Nat D ) $.
    $( The morphisms in the functor category are natural transformations.
       (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    fuchom $p |- N = ( Hom ` Q ) $=
      ( vf ccat wcel chom cfv wceq cnx co cop cco cvv eqid c0 cfuc vx vv vg cbs
      vh va vb wa cfunc ctp c1 c5 cdc simpl simpr fuccofval fucval catstr homid
      snsstp2 cnat ovex eqeltri a1i strfv3 eqcomd wn df-hom str0 wfn cxp natffn
      c4 cv funcrcl con3i eq0rdv xpeq2d xp0 syl6eq fneq2d mpbii fn0 sylib fnfuc
      cdm fndm ax-mp ndmov syl5eq fveq2d 3eqtr4a pm2.61i ) AHIZBHIZUHZDCJKZLWPW
      QDWPWQDMUDKABUINZOZMJKDOZMPKCPKZOZUJCJQUKUKULUMOWPUAUBAUDKZWRABCXABPKZGUC
      UEDUFUGEWRRZFXCRZXDRZWNWOUNZWNWOUOZWPUAUBXCWRABCXAXDGUCUEDUFUGEXEFXFXGXHX
      IXARUPUQXAWRDURUSWSWTXBUTDQIWPDABVANQFABVAVBVCVDWQRVEVFWPVGZSSJKDWQJUKVMU
      MVHVIXJDSVJZDSLXJDWRWRVKZVJXKABDFVLXJXLSDXJXLWRSVKSXJWRSWRXJGWRGVNZWRIWPA
      BXMVOVPVQVRWRVSVTWAWBDWCWDXJCSJXJCABTNSEABHTTHHVKZVJTWFXNLWEXNTWGWHWIWJWK
      WLWM $.
  $}

  ${
    $d a b f g h v x A $.  $d a b f g h v x ph $.  $d a b x R $.  $d a b x S $.
    $d a b f g h v x C $.  $d a b f g h v x D $.  $d a b f g h v x .x. $.
    $d a b f g h v x F $.  $d a b f g h v x G $.  $d a b f g h v x H $.
    $d a b f g h v N $.  $d x X $.
    fucco.q $e |- Q = ( C FuncCat D ) $.
    fucco.n $e |- N = ( C Nat D ) $.
    fucco.a $e |- A = ( Base ` C ) $.
    fucco.o $e |- .x. = ( comp ` D ) $.
    fucco.x $e |- .xb = ( comp ` Q ) $.
    fucco.f $e |- ( ph -> R e. ( F N G ) ) $.
    fucco.g $e |- ( ph -> S e. ( G N H ) ) $.
    $( Value of the composition of natural transformations.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    fucco $p |- ( ph -> ( S ( <. F , G >. .xb H ) R ) = ( x e. A |->
      ( ( S ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` G ) ` x ) >. .x.
        ( ( 1st ` H ) ` x ) ) ( R ` x ) ) ) ) $=
      ( vb va vv vh vf vg co cv cfv c1st cop cmpt cvv cfunc cxp c2nd cmpt2 eqid
      csb ccat wcel wa natrcl simpld funcrcl simprd fuccofval wceq fvexd simprl
      syl fveq2d op1stg adantr eqtrd op2ndg ad2antrr simpr simprr simplr fveq1d
      oveq12d opeq12d oveqd mpteq2dv mpt2eq123dv csbied2 opelxpi mpt2ex ovmpt2d
      ovex a1i cbs fvex eqeltri mptex ) AUBUCHGLMNUHZKLNUHZBCBUIZUBUIZUJZWTUCUI
      ZUJZWTKUKUJZUJZWTLUKUJZUJZULZWTMUKUJZUJZJUHZUHZUMZBCWTHUJZWTGUJZXLUHZUMZK
      LULZMIUHUNAUDUEXSMDEUOUHZXTUPZXTUFUDUIZUKUJZUGYBUQUJZUBUCUGUIZUEUIZNUHZUF
      UIZYENUHZBCXBXDWTYHUKUJZUJZWTYEUKUJZUJZULZWTYFUKUJZUJZJUHZUHZUMZURZUTZUTU
      BUCWRWSXNURZIUNABUDCXTDEFIJUFUGUENUCUBOXTUSPQRADVAVBZEVAVBZAKXTVBZUUCUUDV
      CAUUELXTVBZAGWSVBUUEUUFVCZTGDEKLNPVDVLZVEDEKVFVLZVEAUUCUUDUUIVGSVHAYBXSVI
      ZYFMVIZVCZVCZUFYCKUUAUUBUNUUMYBUKVJUUMYCXSUKUJZKUUMYBXSUKAUUJUUKVKZVMAUUN
      KVIZUULAUUGUUPUUHKLXTXTVNVLVOVPUUMYHKVIZVCZUGYDLYTUUBUNUURYBUQVJUURYDXSUQ
      UJZLUURYBXSUQUUMUUJUUQUUOVOVMAUUSLVIZUULUUQAUUGUUTUUHKLXTXTVQVLVRVPUURYEL
      VIZVCZUBUCYGYIYSWRWSXNUVBYELYFMNUURUVAVSZUUMUUKUUQUVAAUUJUUKVTVRZWCUVBYHK
      YELNUUMUUQUVAWAZUVCWCUVBBCYRXMUVBYQXLXBXDUVBYNXIYPXKJUVBYKXFYMXHUVBWTYJXE
      UVBYHKUKUVEVMWBUVBWTYLXGUVBYELUKUVCVMWBWDUVBWTYOXJUVBYFMUKUVDVMWBWCWEWFWG
      WHWHAUUGXSYAVBUUHKLXTXTWIVLAUUFMXTVBZAHWRVBUUFUVFVCUAHDELMNPVDVLVGUUBUNVB
      AUBUCWRWSXNLMNWLKLNWLWJWMWKAXAHVIZXCGVIZVCVCZBCXMXQUVIXBXOXDXPXLUVIWTXAHA
      UVGUVHVKWBUVIWTXCGAUVGUVHVTWBWCWFUATXRUNVBABCXQCDWNUJUNQDWNWOWPWQWMWK $.

    fuccoval.f $e |- ( ph -> X e. A ) $.
    $( Value of the functor category.  (Contributed by Mario Carneiro,
       6-Jan-2017.) $)
    fuccoval $p |- ( ph -> ( ( S ( <. F , G >. .xb H ) R ) ` X ) =
      ( ( S ` X ) ( <. ( ( 1st ` F ) ` X ) , ( ( 1st ` G ) ` X ) >. .x.
        ( ( 1st ` H ) ` X ) ) ( R ` X ) ) ) $=
      ( vx cv cfv c1st cop co cvv fucco wceq wa fveq2d opeq12d oveq12d oveq123d
      simpr ovexd fvmptd ) AUCNUCUDZGUEZUTFUEZUTJUFUEZUEZUTKUFUEZUEZUGZUTLUFUEZ
      UEZIUHZUHNGUEZNFUEZNVCUEZNVEUEZUGZNVHUEZIUHZUHBGFJKUGLHUHUHUIAUCBCDEFGHIJ
      KLMOPQRSTUAUJAUTNUKZULZVAVKVBVLVJVQVSVGVOVIVPIVSVDVMVFVNVSUTNVCAVRUQZUMVS
      UTNVEVTUMUNVSUTNVHVTUMUOVSUTNGVTUMVSUTNFVTUMUPUBAVKVLVQURUS $.
  $}

  ${
    $d f x y C $.  $d f x y D $.  $d f x y F $.  $d f x y G $.  $d f x y .xb $.
    $d f x y H $.  $d f x y ph $.  $d f x y R $.  $d f x y S $.
    fuccocl.q $e |- Q = ( C FuncCat D ) $.
    fuccocl.n $e |- N = ( C Nat D ) $.
    fuccocl.x $e |- .xb = ( comp ` Q ) $.
    fuccocl.r $e |- ( ph -> R e. ( F N G ) ) $.
    fuccocl.s $e |- ( ph -> S e. ( G N H ) ) $.
    $( The composition of two natural transformations is a natural
       transformation.  Remark 6.14(a) in [Adamek] p. 87.  (Contributed by
       Mario Carneiro, 6-Jan-2017.) $)
    fuccocl $p |- ( ph -> ( S ( <. F , G >. .xb H ) R ) e. ( F N H ) ) $=
      ( co wcel cfv adantr vx vy cop cbs c1st chom cixp c2nd cco wceq wral cmpt
      vf cv eqid fucco ccat cfunc natrcl syl simpld funcrcl simprd wrel relfunc
      wa wbr 1st2ndbr sylancr ffvelrnda nat1st2nd simpr natcl catcocl ralrimiva
      funcf1 cvv fvex mptelixpg ax-mp sylibr eqeltrd w3a simpr1 ffvelrnd simpr2
      wb wf funcf2 simpr3 catass nati oveq2d oveq1d 3eqtrd fuccoval ralrimivvva
      3eqtr2d 3eqtr4d isnat2 mpbir2and ) AFEHIUCJGQQZHJKQRXBUABUDSZUAUNZHUESZSZ
      XDJUESZSZCUFSZQZUGZRUBUNZXBSZUMUNZXDXLHUHSZQZSZXFXLXESZUCZXLXGSZCUISZQZQZ
      XNXDXLJUHSZQZSZXDXBSZXFXHUCXTYAQZQZUJZUMXDXLBUFSZQZUKUBXCUKUAXCUKAXBUAXCX
      DFSZXDESZXFXDIUESZSZUCZXHYAQQZULZXKAUAXCBCDEFGYAHIJKLMXCUOZYAUOZNOPUPAYRX
      JRZUAXCUKZYSXKRZAUUBUAXCAXDXCRZVFZCUDSZCYAYNYMXIXFYPXHUUGUOZXIUOZUUAACUQR
      ZUUEABUQRZUUJAHBCURQZRZUUKUUJVFAUUMIUULRZAEHIKQRZUUMUUNVFOEBCHIKMUSUTVAZB
      CHVBUTVCZTAXCUUGXDXEAXCUUGBCXEXOYTUUHAUULVDZUUMXEXOUULVGZBCVEZUUPHUULVHVI
      ZVPZVJAXCUUGXDYOAXCUUGBCYOIUHSZYTUUHAUURUUNYOUVCUULVGZUUTAUUNJUULRZAFIJKQ
      RZUUNUVEVFPFBCIJKMUSUTZVAIUULVHVIZVPZVJAXCUUGXDXGAXCUUGBCXGYDYTUUHAUURUVE
      XGYDUULVGZUUTAUUNUVEUVGVCZJUULVHVIZVPZVJUUFEXCBCXEXOXIYOUVCKXDMAEXEXOUCYO
      UVCUCZKQRZUUEAEBCHIKMOVKZTYTUUIAUUEVLZVMUUFFXCBCYOUVCXIXGYDKXDMAFUVNXGYDU
      CKQRZUUEAFBCIJKMPVKZTYTUUIUVQVMVNVOXCVQRUUDUUCWGBUDVRUAXCYRXJVQVSVTWAWBAY
      JUAUBUMXCXCYLAUUEXLXCRZXNYLRZWCZVFZXLFSZXLESZXRXLYOSZUCXTYAQQZXQYBQZYFYRY
      HQZYCYIUWCUWHUWDUWEXQXSUWFYAQQZXFUWFUCXTYAQZQZYFYMYPXHUCXTYAQQZYNYQXTYAQZ
      QZUWIUWCUUGCYAXQUWEXIUWDXTXFXRUWFUUHUUIUUAAUUJUWBUUQTZUWCXCUUGXDXEAXCUUGX
      EWHUWBUVBTZAUUEUVTUWAWDZWEZUWCXCUUGXLXEUWQAUUEUVTUWAWFZWEUWCXCUUGXLYOAXCU
      UGYOWHUWBUVITZUWTWEZUWCYLXFXRXIQXNXPUWCXCBCXEXOYKXIXDXLYTYKUOZUUIAUUSUWBU
      VATUWRUWTWIAUUEUVTUWAWJZWEUWCEXCBCXEXOXIYOUVCKXLMAUVOUWBUVPTZYTUUIUWTVMUW
      CXCUUGXLXGAXCUUGXGWHUWBUVMTZUWTWEZUWCFXCBCYOUVCXIXGYDKXLMAUVRUWBUVSTZYTUU
      IUWTVMZWKUWCUWLUWDXNXDXLUVCQZSZYNYQUWFYAQQZUWKQUWDUXKYPUWFUCXTYAQQZYNUWNQ
      UWOUWCUWJUXLUWDUWKUWCEXCBCXNYAXEXOYKYOUVCKXDXLMUXEYTUXCUUAUWRUWTUXDWLWMUW
      CUUGCYAYNUXKXIUWDXTXFYPUWFUUHUUIUUAUWPUWSUWCXCUUGXDYOUXAUWRWEZUXBUWCEXCBC
      XEXOXIYOUVCKXDMUXEYTUUIUWRVMZUWCYLYPUWFXIQXNUXJUWCXCBCYOUVCYKXIXDXLYTUXCU
      UIAUVDUWBUVHTUWRUWTWIUXDWEUXGUXIWKUWCUXMUWMYNUWNUWCFXCBCXNYAYOUVCYKXGYDKX
      DXLMUXHYTUXCUUAUWRUWTUXDWLWNWRUWCUUGCYAYNYMXIYFXTXFYPXHUUHUUIUUAUWPUWSUXN
      UWCXCUUGXDXGUXFUWRWEUXOUWCFXCBCYOUVCXIXGYDKXDMUXHYTUUIUWRVMUXGUWCYLXHXTXI
      QXNYEUWCXCBCXGYDYKXIXDXLYTUXCUUIAUVJUWBUVLTUWRUWTWIUXDWEWKWOUWCXMUWGXQYBU
      WCXCBCDEFGYAHIJKXLLMYTUUANAUUOUWBOTZAUVFUWBPTZUWTWPWNUWCYGYRYFYHUWCXCBCDE
      FGYAHIJKXDLMYTUUANUXPUXQUWRWPWMWSWQAUAUBXBXCBCYAUMHJYKXIKMYTUXCUUIUUAUUPU
      VKWTXA $.
  $}

  ${
    $d f x y .1. $.  $d f x y C $.  $d f x y D $.  $d f x y ph $.
    $d f x y F $.
    fucidcl.q $e |- Q = ( C FuncCat D ) $.
    fucidcl.n $e |- N = ( C Nat D ) $.
    fucidcl.x $e |- .1. = ( Id ` D ) $.
    fucidcl.f $e |- ( ph -> F e. ( C Func D ) ) $.
    $( The identity natural transformation.  (Contributed by Mario Carneiro,
       6-Jan-2017.) $)
    fucidcl $p |- ( ph -> ( .1. o. ( 1st ` F ) ) e. ( F N F ) ) $=
      ( vx vy vf cfv co wcel wceq wral eqid c1st ccom cbs cv chom cixp c2nd cop
      cco cmpt cvv wf wfn ccat cfunc wa funcrcl syl simprd cidfn dffn2 wrel wbr
      relfunc 1st2ndbr sylancr funcf1 fcompt syl2anc adantr ffvelrnda ralrimiva
      sylib catidcl wb fvex mptelixpg ax-mp sylibr eqeltrd simpr1 syldan simpr2
      w3a ffvelrnd funcf2 simpr3 catlid catrid eqtr4d oveq1d oveq2d ralrimivvva
      fvco3 3eqtr4d isnat2 mpbir2and ) AEFUAOZUBZFFGPQWSLBUCOZLUDZWROZXBCUEOZPZ
      UFZQMUDZWSOZNUDZXAXFFUGOZPZOZXBXFWROZUHXLCUIOZPZPZXKXAWSOZXBXBUHXLXMPZPZR
      ZNXAXFBUEOZPZSMWTSLWTSAWSLWTXBEOZUJZXEACUCOZUKEULZWTYDWRULZWSYCRAEYDUMZYE
      ACUNQZYGABUNQZYHAFBCUOPZQZYIYHUPKBCFUQURUSZYDCEYDTZJUTURYDEVAVMAWTYDBCWRX
      IWTTZYMAYJVBYKWRXIYJVCZBCVDKFYJVEVFZVGZLEWRWTYDUKVHVIAYBXDQZLWTSZYCXEQZAY
      RLWTAXAWTQZUPYDCEXCXBYMXCTZJAYHUUAYLVJAWTYDXAWRYQVKZVNVLWTUKQYTYSVOBUCVPL
      WTYBXDUKVQVRVSVTAXSLMNWTWTYAAUUAXFWTQZXHYAQZWDZUPZXLEOZXKXNPZXKYBXQPZXOXR
      UUGUUIXKUUJUUGYDCXMEXKXCXBXLYMUUBJAYHUUFYLVJZAUUFUUAXBYDQAUUAUUDUUEWAZUUC
      WBZXMTZUUGWTYDXFWRAYFUUFYQVJZAUUAUUDUUEWCZWEZUUGYAXBXLXCPXHXJUUGWTBCWRXIX
      TXCXAXFYNXTTZUUBAYOUUFYPVJUULUUPWFAUUAUUDUUEWGWEZWHUUGYDCXMEXKXCXBXLYMUUB
      JUUKUUMUUNUUQUUSWIWJUUGXGUUHXKXNUUGYFUUDXGUUHRUUOUUPWTYDXFEWRWNVIWKUUGXPY
      BXKXQUUGYFUUAXPYBRUUOUULWTYDXAEWRWNVIWLWOWMALMWSWTBCXMNFFXTXCGIYNUURUUBUU
      NKKWPWQ $.
  $}

  ${
    $d x .1. $.  $d x C $.  $d x D $.  $d x F $.  $d x G $.  $d x ph $.
    $d x R $.
    fuclid.q $e |- Q = ( C FuncCat D ) $.
    fuclid.n $e |- N = ( C Nat D ) $.
    fuclid.x $e |- .xb = ( comp ` Q ) $.
    fuclid.1 $e |- .1. = ( Id ` D ) $.
    fuclid.r $e |- ( ph -> R e. ( F N G ) ) $.
    $( Left identity of natural transformations.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    fuclid $p |- ( ph ->
      ( ( .1. o. ( 1st ` G ) ) ( <. F , G >. .xb G ) R ) = R ) $=
      ( vx cfv cop co wcel cbs cv c1st ccom cco cmpt wa wf wceq c2nd eqid cfunc
      wrel wbr relfunc natrcl simprd 1st2ndbr sylancr funcf1 fvco3 sylan oveq1d
      syl chom ccat simpld funcrcl adantr ffvelrnda nat1st2nd simpr natcl eqtrd
      catlid mpteq2dva fucidcl fucco wfn natfn dffn5 sylib 3eqtr4d ) APBUAQZPUB
      ZGIUCQZUDZQZWEEQZWEHUCQZQZWEWFQZRWLCUEQZSZSZUFPWDWIUFZWGEHIRIFSSEAPWDWOWI
      AWEWDTZUGZWOWLGQZWIWNSWIWRWHWSWIWNAWDCUAQZWFUHWQWHWSUIAWDWTBCWFIUJQZWDUKZ
      WTUKZABCULSZUMZIXDTZWFXAXDUNBCUOZAHXDTZXFAEHIJSTXHXFUGOEBCHIJLUPVDZUQZIXD
      URUSUTZWDWTWEGWFVAVBVCWRWTCWMGWICVEQZWKWLXCXLUKZNACVFTZWQABVFTZXNAXHXOXNU
      GAXHXFXIVGZBCHVHVDUQVIAWDWTWEWJAWDWTBCWJHUJQZXBXCAXEXHWJXQXDUNXGXPHXDURUS
      UTVJWMUKZAWDWTWEWFXKVJWREWDBCWJXQXLWFXAJWELAEWJXQRWFXARJSTWQAEBCHIJLOVKZV
      IXBXMAWQVLVMVOVNVPAPWDBCDEWGFWMHIIJKLXBXRMOABCDGIJKLNXJVQVRAEWDVSEWPUIAEW
      DBCWJXQWFXAJLXSXBVTPWDEWAWBWC $.

    $( Right identity of natural transformations.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    fucrid $p |- ( ph ->
      ( R ( <. F , F >. .xb G ) ( .1. o. ( 1st ` F ) ) ) = R ) $=
      ( vx cfv cop co wcel cbs cv c1st ccom cco cmpt wa wf wceq c2nd eqid cfunc
      wrel wbr relfunc natrcl simpld 1st2ndbr sylancr funcf1 fvco3 sylan oveq2d
      syl chom ccat funcrcl simprd adantr ffvelrnda nat1st2nd simpr natcl eqtrd
      catrid mpteq2dva fucidcl fucco wfn natfn dffn5 sylib 3eqtr4d ) APBUAQZPUB
      ZEQZWEGHUCQZUDZQZWEWGQZWJRWEIUCQZQZCUEQZSZSZUFPWDWFUFZEWHHHRIFSSEAPWDWOWF
      AWEWDTZUGZWOWFWJGQZWNSWFWRWIWSWFWNAWDCUAQZWGUHWQWIWSUIAWDWTBCWGHUJQZWDUKZ
      WTUKZABCULSZUMZHXDTZWGXAXDUNBCUOZAXFIXDTZAEHIJSTXFXHUGOEBCHIJLUPVDZUQZHXD
      URUSUTZWDWTWEGWGVAVBVCWRWTCWMGWFCVEQZWJWLXCXLUKZNACVFTZWQABVFTZXNAXFXOXNU
      GXJBCHVGVDVHVIAWDWTWEWGXKVJWMUKZAWDWTWEWKAWDWTBCWKIUJQZXBXCAXEXHWKXQXDUNX
      GAXFXHXIVHIXDURUSUTVJWREWDBCWGXAXLWKXQJWELAEWGXARWKXQRJSTWQAEBCHIJLOVKZVI
      XBXMAWQVLVMVOVNVPAPWDBCDWHEFWMHHIJKLXBXPMABCDGHJKLNXJVQOVRAEWDVSEWPUIAEWD
      BCWGXAWKXQJLXRXBVTPWDEWAWBWC $.
  $}

  ${
    $d x C $.  $d x D $.  $d x F $.  $d x G $.  $d x H $.  $d x K $.  $d x R $.
    $d x ph $.  $d x S $.  $d x T $.  $d x .xb $.
    fucass.q $e |- Q = ( C FuncCat D ) $.
    fucass.n $e |- N = ( C Nat D ) $.
    fucass.x $e |- .xb = ( comp ` Q ) $.
    fucass.r $e |- ( ph -> R e. ( F N G ) ) $.
    fucass.s $e |- ( ph -> S e. ( G N H ) ) $.
    fucass.t $e |- ( ph -> T e. ( H N K ) ) $.
    $( Associativity of natural transformation composition.  Remark 6.14(b) in
       [Adamek] p. 87.  (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    fucass $p |- ( ph ->
      ( ( T ( <. G , H >. .xb K ) S ) ( <. F , G >. .xb K ) R ) =
      ( T ( <. F , H >. .xb K ) ( S ( <. F , G >. .xb H ) R ) ) ) $=
      ( co vx cbs cfv cv cop c1st cco cmpt wcel chom eqid ccat cfunc natrcl syl
      wa simpld funcrcl simprd adantr c2nd wrel relfunc 1st2ndbr sylancr funcf1
      wbr ffvelrnda nat1st2nd simpr natcl catass fuccoval oveq1d oveq2d 3eqtr4d
      mpteq2dva fuccocl fucco ) AUABUBUCZUAUDZHFJKUELGTTZUCZWAEUCZWAIUFUCZUCZWA
      JUFUCZUCZUEZWALUFUCZUCZCUGUCZTZTZUHUAVTWAHUCZWAFEIJUEZKGTTZUCZWFWAKUFUCZU
      CZUEWKWLTZTZUHWBEWPLGTTHWQIKUELGTTAUAVTWNXBAWAVTUIZUPZWOWAFUCZWHWTUEWKWLT
      TZWDWMTWOXEWDWIWTWLTTZXATWNXBXDCUBUCZCWLWDXECUJUCZWOWKWFWHWTXHUKZXIUKZWLU
      KZACULUIZXCABULUIZXMAIBCUMTZUIZXNXMUPAXPJXOUIZAEIJMTUIZXPXQUPQEBCIJMOUNUO
      ZUQZBCIURUOUSUTAVTXHWAWEAVTXHBCWEIVAUCZVTUKZXJAXOVBZXPWEYAXOVGBCVCZXTIXOV
      DVEVFVHAVTXHWAWGAVTXHBCWGJVAUCZYBXJAYCXQWGYEXOVGYDAXPXQXSUSJXOVDVEVFVHAVT
      XHWAWSAVTXHBCWSKVAUCZYBXJAYCKXOUIZWSYFXOVGYDAYGLXOUIZAHKLMTUIZYGYHUPSHBCK
      LMOUNUOZUQKXOVDVEVFVHXDEVTBCWEYAXIWGYEMWAOAEWEYAUEWGYEUEZMTUIXCAEBCIJMOQV
      IUTYBXKAXCVJZVKXDFVTBCWGYEXIWSYFMWAOAFYKWSYFUEZMTUIXCAFBCJKMORVIUTYBXKYLV
      KAVTXHWAWJAVTXHBCWJLVAUCZYBXJAYCYHWJYNXOVGYDAYGYHYJUSLXOVDVEVFVHXDHVTBCWS
      YFXIWJYNMWAOAHYMWJYNUEMTUIXCAHBCKLMOSVIUTYBXKYLVKVLXDWCXFWDWMXDVTBCDFHGWL
      JKLMWANOYBXLPAFJKMTUIXCRUTZAYIXCSUTYLVMVNXDWRXGWOXAXDVTBCDEFGWLIJKMWANOYB
      XLPAXRXCQUTYOYLVMVOVPVQAUAVTBCDEWBGWLIJLMNOYBXLPQABCDFHGJKLMNOPRSVRVSAUAV
      TBCDWQHGWLIKLMNOYBXLPABCDEFGIJKMNOPQRVRSVSVP $.
  $}

  ${
    $d e g h r s t .1. $.  $d e f g h r s t C $.  $d e f g h r s t ph $.
    $d e f g h r s t D $.  $d e f g h r s t Q $.
    fuccat.q $e |- Q = ( C FuncCat D ) $.
    fuccat.r $e |- ( ph -> C e. Cat ) $.
    fuccat.s $e |- ( ph -> D e. Cat ) $.
    ${
      fuccatid.1 $e |- .1. = ( Id ` D ) $.
      $( The functor category is a category.  (Contributed by Mario Carneiro,
         6-Jan-2017.) $)
      fuccatid $p |- ( ph -> ( Q e. Cat /\ ( Id ` Q ) =
          ( f e. ( C Func D ) |-> ( .1. o. ( 1st ` f ) ) ) ) ) $=
        ( ve vg vh cv co wcel wa cfv cvv a1i vr vs cfunc cnat w3a cco c1st ccom
        vt cbs wceq fucbas chom eqid eqidd cfuc ovex eqeltri biid simpr fucidcl
        fuchom simpr31 fuclid simpr32 fucrid fuccocl simpr33 fucass iscatd2 ) A
        KNZBCUCOZPFNZVLPZQZLNZVLPMNZVLPQZUANZVKVMBCUDOZOPZUBNZVMVPVTOPZUINZVPVQ
        VTOPZUEUEZKFLMVLDDUFRZEVMUGRUHUAUBUIVTSVLDUJRUKABCDGULTVTDUMRUKABCDVTGV
        TUNZVBTAWGUODSPADBCUPOSGBCUPUQURTWFUSAVNQBCDEVMVTGWHJAVNUTVAAWFQZBCDVSW
        GEVKVMVTGWHWGUNZJWAWCWEVOVRAVCZVDWIBCDWBWGEVMVPVTGWHWJJWAWCWEVOVRAVEZVF
        WIBCDVSWBWGVKVMVPVTGWHWJWKWLVGWIBCDVSWBWGWDVKVMVPVQVTGWHWJWKWLWAWCWEVOV
        RAVHVIVJ $.
    $}

    $( The functor category is a category.  Remark 6.16 in [Adamek] p. 88.
       (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    fuccat $p |- ( ph -> Q e. Cat ) $=
      ( vf ccat wcel ccid cfv cfunc co cv c1st ccom cmpt wceq eqid fuccatid
      simpld ) ADIJDKLHBCMNCKLZHOPLQRSABCDUCHEFGUCTUAUB $.
  $}

  ${
    $d f .1. $.  $d f C $.  $d f D $.  $d f F $.  $d f ph $.  $d f Q $.
    fucid.q $e |- Q = ( C FuncCat D ) $.
    fucid.i $e |- I = ( Id ` Q ) $.
    fucid.1 $e |- .1. = ( Id ` D ) $.
    fucid.f $e |- ( ph -> F e. ( C Func D ) ) $.
    $( The identity morphism in the functor category.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    fucid $p |- ( ph -> ( I ` F ) = ( .1. o. ( 1st ` F ) ) ) $=
      ( vf c1st cfv ccom cvv ccid ccat wcel wceq cv cfunc co cmpt wa syl simpld
      funcrcl simprd fuccatid syl5eq fveq2d coeq2d fvex eqeltri coex a1i fvmptd
      simpr ) ALFELUAZMNZOZEFMNZOZBCUBUCZGPAGDQNZLVEVBUDZIADRSVFVGTABCDELHABRSZ
      CRSZAFVESVHVIUEKBCFUHUFZUGAVHVIVJUIJUJUIUKAUTFTZUEZVAVCEVLUTFMAVKUSULUMKV
      DPSAEVCECQNPJCQUNUOFMUNUPUQUR $.
  $}

  ${
    $d x y A $.  $d f x y z B $.  $d f x y z C $.  $d f x y z D $.  $d x y I $.
    $d f x y z F $.  $d f x y z G $.  $d x y J $.  $d x y N $.  $d f x y z V $.
    $d f x y z ph $.  $d x y Q $.  $d x y U $.  $d f y z X $.
    fuciso.q $e |- Q = ( C FuncCat D ) $.
    fuciso.b $e |- B = ( Base ` C ) $.
    fuciso.n $e |- N = ( C Nat D ) $.
    fuciso.f $e |- ( ph -> F e. ( C Func D ) ) $.
    fuciso.g $e |- ( ph -> G e. ( C Func D ) ) $.
    ${
      fucsect.s $e |- S = ( Sect ` Q ) $.
      fucsect.t $e |- T = ( Sect ` D ) $.
      $( Two natural transformations are in a section iff all the components
         are in a section relation.  (Contributed by Mario Carneiro,
         28-Jan-2017.) $)
      fucsect $p |- ( ph -> ( U ( F S G ) V <->
        ( U e. ( F N G ) /\ V e. ( G N F ) /\ A. x e. B
     ( U ` x ) ( ( ( 1st ` F ) ` x ) T ( ( 1st ` G ) ` x ) ) ( V ` x ) ) ) ) $=
        ( co wbr wcel cop cco cfv ccid wceq w3a cv c1st wral fucbas fuchom eqid
        cfunc ccat wa funcrcl syl simpld simprd fuccat issect cmpt cvv wb rgenw
        ovex mpteqb mp1i simprl simprr fucco ccom adantr fucid cbs wf wfn cidfn
        dffn2 sylib c2nd relfunc 1st2ndbr sylancr funcf1 fcompt syl2anc eqeq12d
        wrel eqtrd chom ffvelrnda simpr natcl issect2 ralbidva 3bitr4d pm5.32da
        nat1st2nd df-3an 3bitr4g bitrd ) AIMJKGUAUBIJKLUAUCZMKJLUAUCZMIJKUDJFUE
        UFZUAUAZJFUGUFZUFZUHZUIZXFXGBUJZIUFZXNMUFZXNJUKUFZUFZXNKUKUFZUFZHUAUBZB
        CULZUIZADEUPUAZFGXHXJIMLJKDEFNUMDEFLNPUNXHUOZXJUOZSADEFNADUQUCZEUQUCZAJ
        YDUCZYGYHURQDEJUSUTZVAAYGYHYJVBZVCQRVDAXFXGURZXLURYLYBURXMYCAYLXLYBAYLU
        RZBCXPXOXRXTUDXREUEUFZUAZUAZVEZBCXREUGUFZUFZVEZUHZYPYSUHZBCULZXLYBYPVFU
        CZBCULUUAUUCVGYMUUDBCXPXOYOVIVHBCYPYSVFVJVKYMXIYQXKYTYMBCDEFIMXHYNJKJLN
        POYNUOZYEAXFXGVLZAXFXGVMZVNYMXKYRXQVOZYTYMDEFYRJXJNYFYRUOZAYIYLQVPVQYME
        VRUFZVFYRVSZCUUJXQVSZUUHYTUHYMYRUUJVTZUUKYMYHUUMAYHYLYKVPZUUJEYRUUJUOZU
        UIWAUTUUJYRWBWCAUULYLACUUJDEXQJWDUFZOUUOAYDWLZYIXQUUPYDUBDEWEZQJYDWFWGW
        HVPZBYRXQCUUJVFWIWJWMWKYMYAUUBBCYMXNCUCZURZUUJEHYNYRXOXPEWNUFZXRXTUUOUV
        BUOZUUEUUITYMYHUUTUUNVPYMCUUJXNXQUUSWOYMCUUJXNXSACUUJXSVSYLACUUJDEXSKWD
        UFZOUUOAUUQKYDUCXSUVDYDUBUURRKYDWFWGWHVPWOUVAICDEXQUUPUVBXSUVDLXNPUVAID
        EJKLPYMXFUUTUUFVPXBOUVCYMUUTWPZWQUVAMCDEXSUVDUVBXQUUPLXNPUVAMDEKJLPYMXG
        UUTUUGVPXBOUVCUVEWQWRWSWTXAXFXGXLXCXFXGYBXCXDXE $.
    $}

    ${
      fucinv.i $e |- I = ( Inv ` Q ) $.
      fucinv.j $e |- J = ( Inv ` D ) $.
      $( Two natural transformations are inverses of each other iff all the
         components are inverse.  (Contributed by Mario Carneiro,
         28-Jan-2017.) $)
      fucinv $p |- ( ph -> ( U ( F I G ) V <->
        ( U e. ( F N G ) /\ V e. ( G N F ) /\ A. x e. B
     ( U ` x ) ( ( ( 1st ` F ) ` x ) J ( ( 1st ` G ) ` x ) ) ( V ` x ) ) ) ) $=
        ( csect cfv co wbr wa wcel cv c1st wral w3a eqid fucsect anbi12d fucbas
        cfunc ccat funcrcl syl simpld simprd fuccat isinv cbs c2nd wrel relfunc
        adantr 1st2ndbr sylancr funcf1 ffvelrnda ralbidva r19.26 syl6bb 3ancoma
        anbi2d df-3an bitri anbi12i anandi bitr4i 3bitr4g 3bitr4d ) AGMHIFUAUBZ
        UCUDZMGIHWDUCUDZUEGHILUCUFZMIHLUCUFZBUGZGUBZWIMUBZWIHUHUBZUBZWIIUHUBZUB
        ZEUAUBZUCUDZBCUIZUJZWHWGWKWJWOWMWPUCUDZBCUIZUJZUEZGMHIJUCUDWGWHWJWKWMWO
        KUCUDZBCUIZUJZAWEWSWFXBABCDEFWDWPGHILMNOPQRWDUKZWPUKZULABCDEFWDWPMIHLGN
        OPRQXGXHULUMADEUOUCZFWDGMJHIDEFNUNSADEFNADUPUFZEUPUFZAHXIUFZXJXKUEQDEHU
        QURZUSAXJXKXMUTZVAQRXGVBAWGWHUEZXEUEXOWRXAUEZUEZXFXCAXEXPXOAXEWQWTUEZBC
        UIXPAXDXRBCAWICUFZUEEVCUBZEWPWJWKKWMWOXTUKZTAXKXSXNVGACXTWIWLACXTDEWLHV
        DUBZOYAAXIVEZXLWLYBXIUDDEVFZQHXIVHVIVJVKACXTWIWNACXTDEWNIVDUBZOYAAYCIXI
        UFWNYEXIUDYDRIXIVHVIVJVKXHVBVLWQWTBCVMVNVPWGWHXEVQXCXOWRUEZXOXAUEZUEXQW
        SYFXBYGWGWHWRVQXBWGWHXAUJYGWHWGXAVOWGWHXAVQVRVSXOWRXAVTWAWBWC $.

      invfuc.u $e |- ( ph -> U e. ( F N G ) ) $.
      invfuc.v $e |- ( ( ph /\ x e. B ) ->
        ( U ` x ) ( ( ( 1st ` F ) ` x ) J ( ( 1st ` G ) ` x ) ) X ) $.
      $( If ` V ( x ) ` is an inverse to ` U ( x ) ` for each ` x ` , and ` U `
         is a natural transformation, then ` V ` is also a natural
         transformation, and they are inverse in the functor category.
         (Contributed by Mario Carneiro, 28-Jan-2017.) $)
      invfuc $p |- ( ph -> U ( F I G ) ( x e. B |-> X ) ) $=
        ( vy vz vf cmpt co wbr wcel cv cfv c1st wral chom cixp c2nd cop wceq wa
        cco cxp cbs eqid ccat cfunc funcrcl simprd adantr wrel relfunc 1st2ndbr
        syl sylancr funcf1 ffvelrnda invss ssbrd mpd brxp simprbi ralrimiva cvv
        wb fvex eqeltri mptelixpg ax-mp sylibr weq oveq12d cbvixpv syl6eleq w3a
        fveq2 ccid csect simpr2 simpr fvmpt2 syl2anc breqtrrd nffvmpt1 breq123d
        nfcv nfbr rspc sylc wf ffvelrnd isinv mpbid simpld issect simp3d oveq1d
        simpr1 funcf2 simpr3 catlid eqtr2d nat1st2nd natcl simp2d catass oveq2d
        nati 3eqtrd simp1d catcocl catrid 3eqtrrd ralrimivvva isnat2 nfv cbvral
        mpbir2and sylib fucinv mpbir3and ) AGBCMUFZHIJUGUHGHILUGUIZYTIHLUGUIZUC
        UJZGUKZUUCYTUKZUUCHULUKZUKZUUCIULUKZUKZKUGZUHZUCCUMZUAAUUBYTUCCUUIUUGEU
        NUKZUGZUOZUIUDUJZYTUKZUEUJZUUCUUPIUPUKZUGZUKZUUIUUPUUHUKZUQUUPUUFUKZEUT
        UKZUGZUGZUURUUCUUPHUPUKZUGZUKZUUEUUIUUGUQZUVCUVDUGZUGZURZUEUUCUUPDUNUKZ
        UGZUMUDCUMUCCUMAYTBCBUJZUUHUKZUVPUUFUKZUUMUGZUOZUUOAMUVSUIZBCUMZYTUVTUI
        ZAUWABCAUVPCUIZUSZUVPGUKZMUVRUVQUUMUGZUVSVAZUHZUWAUWEUWFMUVRUVQKUGZUHUW
        IUBUWEUWJUWHUWFMUWEEVBUKZEUUMKUVRUVQUWKVCZTAEVDUIZUWDADVDUIZUWMAHDEVEUG
        ZUIZUWNUWMUSQDEHVFVLVGZVHACUWKUVPUUFACUWKDEUUFUVGOUWLAUWOVIZUWPUUFUVGUW
        OUHZDEVJZQHUWOVKVMZVNZVOACUWKUVPUUHACUWKDEUUHUUSOUWLAUWRIUWOUIUUHUUSUWO
        UHZUWTRIUWOVKVMZVNZVOUUMVCZVPVQVRUWIUWFUWGUIUWAUWFMUWGUVSVSVTVLZWACWBUI
        UWCUWBWCCDVBUKWBODVBWDWEBCMUVSWBWFWGWHBUCCUVSUUNBUCWIZUVQUUIUVRUUGUUMUV
        PUUCUUHWNZUVPUUCUUFWNZWJWKWLAUVMUCUDUECCUVOAUUCCUIZUUPCUIZUURUVOUIZWMZU
        SZUVLUUQUVAUUDUUGUUIUQUVBUVDUGUGZUUGUVBUQUVCUVDUGZUGZUUEUVKUGUUQUXPUUEU
        VJUVBUVDUGUGZUVEUGUVFUXOUVIUXRUUEUVKUXOUVIUUQUUPGUKZUVCUVBUQUVCUVDUGUGZ
        UVIUUGUVCUQZUVCUVDUGZUGZUUQUXTUVIUYBUVBUVDUGUGZUXQUGUXRUXOUYDUVCEWOUKZU
        KZUVIUYCUGUVIUXOUYAUYGUVIUYCUXOUXTUVCUVBUUMUGUIZUUQUVBUVCUUMUGUIZUYAUYG
        URZUXOUXTUUQUVCUVBEWPUKZUGUHZUYHUYIUYJWMUXOUYLUUQUXTUVBUVCUYKUGUHZUXOUX
        TUUQUVCUVBKUGZUHZUYLUYMUSUXOUXLUWFUVPYTUKZUWJUHZBCUMZUYOAUXKUXLUXMWQZAU
        YRUXNAUYQBCUWEUWFMUYPUWJUBUWEUWDUWAUYPMURAUWDWRUXGBCMUVSYTYTVCWSWTXAWAZ
        VHZUYQUYOBUUPCBUXTUUQUYNBUXTXDBUYNXDBCMUUPXBXEBUDWIZUWFUXTUYPUUQUWJUYNU
        VPUUPGWNVUBUVRUVCUVQUVBKUVPUUPUUFWNUVPUUPUUHWNWJUVPUUPYTWNXCXFXGUXOUWKE
        UYKUXTUUQKUVCUVBUWLTAUWMUXNUWQVHZUXOCUWKUUPUUFACUWKUUFXHUXNUXBVHZUYSXIZ
        UXOCUWKUUPUUHACUWKUUHXHUXNUXEVHZUYSXIZUYKVCZXJXKXLUXOUWKEUYKUVDUYFUXTUU
        QUUMUVCUVBUWLUXFUVDVCZUYFVCZVUHVUCVUEVUGXMXKZXNXOUXOUWKEUVDUYFUVIUUMUUG
        UVCUWLUXFVUJVUCUXOCUWKUUCUUFVUDAUXKUXLUXMXPZXIZVUIVUEUXOUVOUUGUVCUUMUGU
        URUVHUXOCDEUUFUVGUVNUUMUUCUUPOUVNVCZUXFAUWSUXNUXAVHVULUYSXQAUXKUXLUXMXR
        ZXIZXSXTUXOUWKEUVDUVIUXTUUMUUQUVCUUGUVCUVBUWLUXFVUIVUCVUMVUEVUGVUPUXOGC
        DEUUFUVGUUMUUHUUSLUUPPUXOGDEHILPAUUAUXNUAVHYAZOUXFUYSYBVUEUXOUYHUYIUYJV
        UKYCZYDUXOUYEUXPUUQUXQUXOGCDEUURUVDUUFUVGUVNUUHUUSLUUCUUPPVUQOVUNVUIVUL
        UYSVUOYFYEYGXOUXOUWKEUVDUUEUXPUUMUUQUVCUUIUUGUVBUWLUXFVUIVUCUXOCUWKUUCU
        UHVUFVULXIZVUMVUGUXOUUEUUNUIZUUDUUGUUIUUMUGUIZUUDUUEUVJUUIUVDUGUGZUUIUY
        FUKZURZUXOUUEUUDUUIUUGUYKUGUHZVUTVVAVVDWMUXOUUDUUEUUGUUIUYKUGUHZVVEUXOU
        UKVVFVVEUSUXOUXKUYRUUKVULVUAUYQUUKBUUCCBUUDUUEUUJBUUDXDBUUJXDBCMUUCXBXE
        ZUXHUWFUUDUYPUUEUWJUUJUVPUUCGWNUXHUVRUUGUVQUUIKUXJUXIWJUVPUUCYTWNXCZXFX
        GUXOUWKEUYKUUDUUEKUUGUUIUWLTVUCVUMVUSVUHXJXKVGUXOUWKEUYKUVDUYFUUEUUDUUM
        UUIUUGUWLUXFVUIVUJVUHVUCVUSVUMXMXKZYHZUXOUWKEUVDUUDUVAUUMUUGUUIUVBUWLUX
        FVUIVUCVUMVUSVUGUXOVUTVVAVVDVVIYCUXOUVOUUIUVBUUMUGUURUUTUXOCDEUUHUUSUVN
        UUMUUCUUPOVUNUXFAUXCUXNUXDVHVULUYSXQVUOXIZYIVUEVURYDUXOUXSUVAUUQUVEUXOU
        XSUVAVVBUUIUUIUQUVBUVDUGZUGUVAVVCVVLUGUVAUXOUWKEUVDUUEUUDUUMUVAUVBUUIUU
        GUUIUWLUXFVUIVUCVUSVUMVUSVVJUXOGCDEUUFUVGUUMUUHUUSLUUCPVUQOUXFVULYBVUGV
        VKYDUXOVVBVVCUVAVVLUXOVUTVVAVVDVVIXNYEUXOUWKEUVDUYFUVAUUMUUIUVBUWLUXFVU
        JVUCVUSVUIVUGVVKYJYGYEYKYLAUCUDYTCDEUVDUEIHUVNUUMLPOVUNUXFVUIRQYMYPAUYR
        UULUYTUYQUUKBUCCUYQUCYNVVGVVHYOYQAUCCDEFGHIJKLYTNOPQRSTYRYS $.
    $}

    ${
      fuciso.i $e |- I = ( Iso ` Q ) $.
      fuciso.j $e |- J = ( Iso ` D ) $.
      $( A natural transformation is an isomorphism of functors iff all its
         components are isomorphisms.  (Contributed by Mario Carneiro,
         28-Jan-2017.) $)
      fuciso $p |- ( ph -> ( A e. ( F I G ) <-> ( A e. ( F N G ) /\
  A. x e. B ( A ` x ) e. ( ( ( 1st ` F ) ` x ) J ( ( 1st ` G ) ` x ) ) ) ) ) $=
        ( cfv vy co wcel cv c1st wral wa cfunc fucbas fuchom funcrcl syl simpld
        ccat simprd fuccat isohom sselda cbs cinv eqid ad2antrr wf c2nd relfunc
        wrel wbr 1st2ndbr sylancr funcf1 adantr ffvelrnda w3a cdm isoval eleq2d
        wfun invfun funfvbrb bitrd biimpa fucinv mpbid simp3d inviso1 ralrimiva
        r19.21bi jca cmpt simprl simprr weq fveq2 oveq12d eleq12d rspccva sylan
        wb eleqtrd invfuc impbida ) ACHIJUBZUCZCHILUBZUCZBUDZCTZXFHUETZTZXFIUET
        ZTZKUBZUCZBDUFZUGZAXCUGZXEXNAXBXDCAEFUHUBZGLJHIEFGMUIZEFGLMOUJRAEFGMAEU
        NUCZFUNUCZAHXQUCZXSXTUGPEFHUKULZUMAXSXTYBUOZUPZPQUQURXPXMBDXPXFDUCZUGFU
        STZFXGXFCHIGUTTZUBZTZTZKFUTTZXIXKYFVAZYKVAZAXTXCYEYCVBXPDYFXFXHADYFXHVC
        ZXCADYFEFXHHVDTZNYLAXQVFZYAXHYOXQVGEFVEZPHXQVHVIVJZVKVLXPDYFXFXJADYFXJV
        CZXCADYFEFXJIVDTZNYLAYPIXQUCZXJYTXQVGYQQIXQVHVIVJZVKVLSXPXGYJXIXKYKUBVG
        ZBDXPXEYIIHLUBUCZUUCBDUFZXPCYIYHVGZXEUUDUUEVMZAXCUUFAXCCYHVNZUCZUUFAXBU
        UHCAXQGJYGHIXRYGVAZYDPQRVOVPAYHVQUUIUUFWRAXQGYGHIXRUUJYDPQVRCYHVSULVTWA
        AUUFUUGWRXCABDEFGCHIYGYKLYIMNOPQUUJYMWBVKWCWDWGWEWFWHAXOUGZXQGCUADUAUDZ
        CTZUULXHTZUULXJTZYKUBZTZWIJYGHIXRUUJAGUNUCXOYDVKAYAXOPVKZAUUAXOQVKZRUUK
        UADEFGCHIYGYKLUUQMNOUURUUSUUJYMAXEXNWJUUKUULDUCZUGZUUMUUPVNZUCZUUMUUQUU
        PVGZUVAUUMUUNUUOKUBZUVBUUKXNUUTUUMUVEUCZAXEXNWKXMUVFBUULDBUAWLZXGUUMXLU
        VEXFUULCWMUVGXIUUNXKUUOKXFUULXHWMXFUULXJWMWNWOWPWQUVAYFFKYKUUNUUOYLYMAX
        TXOUUTYCVBZUUKDYFUULXHAYNXOYRVKVLZUUKDYFUULXJAYSXOUUBVKVLZSVOWSUVAUUPVQ
        UVCUVDWRUVAYFFYKUUNUUOYLYMUVHUVIUVJVRUUMUUPVSULWCWTWEXA $.
    $}
  $}

  ${
    $d a b f g h r s v x y z A $.  $d a b f g h r s v x y z C $.
    $d a b f g h r s v x y B $.  $d a b f g h r s v x y ph $.
    $d a b f g h r s v x y D $.
    fucpropd.1 $e |- ( ph -> ( Homf ` A ) = ( Homf ` B ) ) $.
    fucpropd.2 $e |- ( ph -> ( comf ` A ) = ( comf ` B ) ) $.
    fucpropd.3 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    fucpropd.4 $e |- ( ph -> ( comf ` C ) = ( comf ` D ) ) $.
    fucpropd.a $e |- ( ph -> A e. Cat ) $.
    fucpropd.b $e |- ( ph -> B e. Cat ) $.
    fucpropd.c $e |- ( ph -> C e. Cat ) $.
    fucpropd.d $e |- ( ph -> D e. Cat ) $.
    $( If two categories have the same set of objects, morphisms, and
       compositions, then they have the same natural transformations.
       (Contributed by Mario Carneiro, 26-Jan-2017.) $)
    natpropd $p |- ( ph -> ( A Nat C ) = ( B Nat D ) ) $=
      ( vr vx co cfv wceq wcel eqid vf vg vs vy va vh vz cfunc cv c1st c2nd cop
      cco chom wral cbs cixp crab csb cmpt2 cnat ccat funcpropd adantr cvv wnfc
      wa nfv nfcsb1v a1i fvexd chomf ad4antr simplr wrel relfunc simpllr simpld
      wbr 1st2ndbr sylancr funcf1 ffvelrnda simpr homfeqval ixpeq2dva homfeqbas
      eqbrtrd simprd ad3antrrr ixpeq1d eqtrd wb oveq12d cbvixpv ad6antr ad7antr
      fveq2 eleq2i ccomf adantlr ad2antrr wf funcf2 fvixp sylan adantll eqeq12d
      raleqbidva sylan2b rabeqbidva csbeq1a adantl csbiedf mpt2eq123dva natfval
      comfeqval 3eqtr4g ) AUAUBBDUHPZXSNUAUIZUJQZUCUBUIZUJQZUDUIZUEUIZQZUFUIZOU
      IZYDXTUKQZPZQZYHNUIZQZYDYLQZULZYDUCUIZQZDUMQZPPZYGYHYDYBUKQZPZQZYHYEQZYMY
      HYPQZULZYQYRPPZRZUFYHYDBUNQZPZUOZUDBUPQZUOZOUUKUOZUEOUUKYMUUDDUNQZPZUQZUR
      ZUSZUSZUTUAUBCEUHPZUUTNYAUCYCYFYKYOYQEUMQZPPZUUBUUCUUEYQUVAPPZRZUFYHYDCUN
      QZPZUOZUDCUPQZUOZOUVHUOZUEOUVHYMUUDEUNQZPZUQZURZUSZUSZUTBDVAPZCEVAPZAUAUB
      XSXSUUSUUTUUTUVPABCDEVBFGHIJKLMVCZAXSUUTRXTXSSZUVSVDAUVTYBXSSZVGZVGZNYAUU
      RUVPVEUWCNVHNUVPVFUWCNYAUVOVIVJUWCXTUJVKUWCYLYARZVGZUURUVOUVPUWEUCYCUUQUV
      OVEUWEUCVHUCUVOVFUWEUCYCUVNVIVJUWEYBUJVKUWEYPYCRZVGZUUQUVNUVOUWGUUMUVJUEU
      UPUVMUWGUUPOUUKUVLUQUVMUWGOUUKUUOUVLUWGYHUUKSZVGDUPQZDEUUNUVKYMUUDUWITZUU
      NTZUVKTZADVLQEVLQRZUWBUWDUWFUWHHVMUWGUUKUWIYHYLUWGUUKUWIBDYLYIUUKTZUWJUWG
      YLYAYIXSUWCUWDUWFVNUWGXSVOZUVTYAYIXSVSBDVPZUWGUVTUWAAUWBUWDUWFVQZVRXTXSVT
      WAWHZWBZWCZUWGUUKUWIYHYPUWGUUKUWIBDYPYTUWNUWJUWGYPYCYTXSUWEUWFWDUWGUWOUWA
      YCYTXSVSUWPUWGUVTUWAUWQWIYBXSVTWAWHZWBZWCZWEWFUWGOUUKUVHUVLAUUKUVHRZUWBUW
      DUWFABCFWGWJZWKWLYEUUPSUWGYEUGUUKUGUIZYLQZUXFYPQZUUNPZUQZSZUUMUVJWMUUPUXJ
      YEOUGUUKUUOUXIYHUXFRYMUXGUUDUXHUUNYHUXFYLWRYHUXFYPWRWNWOWSUWGUXKVGZUULUVI
      OUUKUVHUWGUXDUXKUXEVDZUXLUWHVGZUUJUVGUDUUKUVHUXLUXDUWHUXMVDUXNYDUUKSZVGZU
      UGUVDUFUUIUVFUXPUUKBCUUHUVEYHYDUWNUUHTZUVETZABVLQCVLQRUWBUWDUWFUXKUWHUXOF
      WPUXLUWHUXOVNZUXNUXOWDZWEUXPYGUUISZVGZYSUVBUUFUVCUYBUWIDEUVAYRYKYFUUNYMYN
      YQUWJUWKYRTZUVATZAUWMUWBUWDUWFUXKUWHUXOUYAHWQZADWTQEWTQRUWBUWDUWFUXKUWHUX
      OUYAIWQZUXNYMUWISZUXOUYAUWGUWHUYGUXKUWTXAXBZUXPYNUWISUYAUXNUUKUWIYDYLUWGU
      UKUWIYLXCUXKUWHUWSXBWCVDUXPYQUWISUYAUXNUUKUWIYDYPUWGUUKUWIYPXCUXKUWHUXBXB
      WCVDZUXPUUIYMYNUUNPYGYJUXPUUKBDYLYIUUHUUNYHYDUWNUXQUWKUWGYLYIXSVSUXKUWHUX
      OUWRWJUXSUXTXDWCUXPYFYNYQUUNPZSZUYAUXNUXKUXOUYKUWGUXKUWHVNUGUUKUXIYDUYJYE
      UXFYDRUXGYNUXHYQUUNUXFYDYLWRUXFYDYPWRWNXEXFVDXQUYBUWIDEUVAYRUUCUUBUUNYMUU
      DYQUWJUWKUYCUYDUYEUYFUYHUXNUUDUWISZUXOUYAUWGUWHUYLUXKUXCXAXBUYIUXNUUCUUOS
      ZUXOUYAUXKUWHUYMUWGUGUUKUXIYHUUOYEUXFYHRUXGYMUXHUUDUUNUXFYHYLWRUXFYHYPWRW
      NXEXGXBUXPUUIUUDYQUUNPYGUUAUXPUUKBDYPYTUUHUUNYHYDUWNUXQUWKUWGYPYTXSVSUXKU
      WHUXOUXAWJUXSUXTXDWCXQXHXIXIXIXJXKUWFUVNUVORUWEUCYCUVNXLXMWLXNUWDUVOUVPRU
      WCNYAUVOXLXMWLXNXOOUDUUKBDYRUAUBUFUUHUUNUVQUCNUEUVQTUWNUXQUWKUYCXPOUDUVHC
      EUVAUAUBUFUVEUVKUVRUCNUEUVRTUVHTUXRUWLUYDXPXR $.

    $( If two categories have the same set of objects, morphisms, and
       compositions, then they have the same functor categories.  (Contributed
       by Mario Carneiro, 26-Jan-2017.) $)
    fucpropd $p |- ( ph -> ( A FuncCat C ) = ( B FuncCat D ) ) $=
      ( vf vg cfv co wceq wcel eqid vv vh vb va cnx cbs cfunc cop chom cnat cco
      vx cxp cv c1st c2nd cmpt cmpt2 csb ctp cfuc ccat funcpropd opeq2d sqxpeqd
      natpropd adantr cvv nfv wnfc nfcsb1v a1i fvexd ad3antrrr oveqdr homfeqbas
      oveqd ad4antr chomf ad5antr ccomf wrel wbr relfunc simpllr simp-4r simpld
      xp1st syl eqeltrd 1st2ndbr sylancr funcf1 ffvelrnda simplr simprd simplrr
      wa xp2nd nat1st2nd simpr simplrl comfeqval mpteq12dva mpt2eq123dva adantl
      natcl csbeq1a eqtrd csbiedf tpeq123d eqidd fucval 3eqtr4d ) AUEUFPZBDUGQZ
      UHZUEUIPZBDUJQZUHZUEUKPZUAUBXPXPUMZXPNUAUNZUOPZOYCUPPZUCUDOUNZUBUNZXSQZNU
      NZYFXSQZULBUFPZULUNZUCUNZPZYLUDUNZPZYLYIUOPZPZYLYFUOPZPZUHZYLYGUOPZPZDUKP
      ZQQZUQZURZUSZUSZURZUHZUTXOCEUGQZUHZXRCEUJQZUHZYAUAUBUULUULUMZUULNYDOYEUCU
      DYFYGUUNQZYIYFUUNQZULCUFPZYNYPUUAUUCEUKPZQQZUQZURZUSZUSZURZUHZUTBDVAQZCEV
      AQZAXQUUMXTUUOUUKUVGAXPUULXOABCDEVBFGHIJKLMVCZVDAXSUUNXRABCDEFGHIJKLMVFZV
      DAUUJUVFYAAUAUBYBXPUUIUUPUULUVEAXPUULUVJVEAXPUULRYCYBSZUVJVGAUVLYGXPSZWRZ
      WRZNYDUUHUVEVHUVONVINUVEVJUVONYDUVDVKVLUVOYCUOVMUVOYIYDRZWRZUUHUVDUVEUVQO
      YEUUGUVDVHUVQOVIOUVDVJUVQOYEUVCVKVLUVQYCUPVMUVQYFYERZWRZUUGUVCUVDUVSUCUDY
      HYJUUFUUQUURUVBUVSXSUUNYFYGAXSUUNRUVNUVPUVRUVKVNZVQUVSYMYHSZNOXSUUNUVTVOU
      VSUWAYOYJSZWRZWRZULYKUUEUUSUVAAYKUUSRUVNUVPUVRUWCABCFVPVRUWDYLYKSZWRZDUFP
      ZDEUUTUUDYPYNDUIPZYRYTUUCUWGTZUWHTZUUDTZUUTTZADVSPEVSPRUVNUVPUVRUWCUWEHVT
      ADWAPEWAPRUVNUVPUVRUWCUWEIVTUWDYKUWGYLYQUWDYKUWGBDYQYIUPPZYKTZUWIUWDXPWBZ
      YIXPSYQUWMXPWCBDWDZUWDYIYDXPUVOUVPUVRUWCWEUWDUVLYDXPSUWDUVLUVMAUVNUVPUVRU
      WCWFZWGZYCXPXPWHWIWJYIXPWKWLWMWNUWDYKUWGYLYSUWDYKUWGBDYSYFUPPZUWNUWIUWDUW
      OYFXPSYSUWSXPWCUWPUWDYFYEXPUVQUVRUWCWOUWDUVLYEXPSUWRYCXPXPWSWIWJYFXPWKWLW
      MWNUWDYKUWGYLUUBUWDYKUWGBDUUBYGUPPZUWNUWIUWDUWOUVMUUBUWTXPWCUWPUWDUVLUVMU
      WQWPYGXPWKWLWMWNUWFYOYKBDYQUWMUWHYSUWSXSYLXSTZUWFYOBDYIYFXSUXAUVSUWAUWBUW
      EWQWTUWNUWJUWDUWEXAZXGUWFYMYKBDYSUWSUWHUUBUWTXSYLUXAUWFYMBDYFYGXSUXAUVSUW
      AUWBUWEXBWTUWNUWJUXBXGXCXDXEUVRUVCUVDRUVQOYEUVCXHXFXIXJUVPUVDUVERUVONYDUV
      DXHXFXIXJXEVDXKAULUAYKXPBDUVHUUJUUDNOUBXSUDUCUVHTXPTUXAUWNUWKJLAUUJXLXMAU
      LUAUUSUULCEUVIUVFUUTNOUBUUNUDUCUVITUULTUUNTUUSTUWLKMAUVFXLXMXN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Initial, terminal and zero objects of a category
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c InitO $. $( The initial objects of a category. $)
  $c TermO $. $( The terminal objects of a category. $)
  $c ZeroO $. $( The zero objects of a category. $)

  $( Extend class notation with the class of initial objects of a category. $)
  cinito $a class InitO $.

  $( Extend class notation with the class of terminal objects of a category. $)
  ctermo $a class TermO $.

  $( Extend class notation with the class of zero objects of a category. $)
  czeroo $a class ZeroO $.

  ${
    $d a b c h $.
    $( An object A is said to be an initial object provided that for each
       object B there is exactly one morphism from A to B. Definition 7.1 in
       [Adamek] p. 101, or definition in [Lang] p. 57 (called "a universally
       repelling object" there).  (Contributed by AV, 3-Apr-2020.) $)
    df-inito $a |- InitO = ( c e. Cat |-> { a e. ( Base ` c ) |
                      A. b e. ( Base ` c ) E! h h e. ( a ( Hom ` c ) b ) } ) $.

    $( An object A is called a terminal object provided that for each object B
       there is exactly one morphism from B to A. Definition 7.4 in [Adamek]
       p. 102, or definition in [Lang] p. 57 (called "a universally attracting
       object" there).  (Contributed by AV, 3-Apr-2020.) $)
    df-termo $a |- TermO = ( c e. Cat |-> { a e. ( Base ` c ) |
                      A. b e. ( Base ` c ) E! h h e. ( b ( Hom ` c ) a ) } ) $.

    $( An object A is called a zero object provided that it is both an initial
       object and a terminal object.  Definition 7.7 of [Adamek] p. 103.
       (Contributed by AV, 3-Apr-2020.) $)
    df-zeroo $a |- ZeroO = ( c e. Cat
                             |-> ( ( InitO ` c ) i^i ( TermO ` c ) ) ) $.

    $( Reverse closure for an initial object:  If a class has an initial
       object, the class is a category.  (Contributed by AV, 4-Apr-2020.) $)
    initorcl $p |- ( I e. ( InitO ` C ) -> C e. Cat ) $=
      ( vc vh va vb ccat chom cfv wcel weu cbs wral crab cinito df-inito mptrcl
      cv co ) CGDRERFRCRZHISJDKFTLIZMEUANOBADEFCPQ $.

    $( Reverse closure for a terminal object:  If a class has a terminal
       object, the class is a category.  (Contributed by AV, 4-Apr-2020.) $)
    termorcl $p |- ( T e. ( TermO ` C ) -> C e. Cat ) $=
      ( vc vh vb va ccat chom cfv wcel weu cbs wral crab ctermo df-termo mptrcl
      cv co ) CGDRERFRCRZHISJDKETLIZMFUANOBADFECPQ $.

    $( Reverse closure for a zero object:  If a class has a zero object, the
       class is a category.  (Contributed by AV, 4-Apr-2020.) $)
    zeroorcl $p |- ( Z e. ( ZeroO ` C ) -> C e. Cat ) $=
      ( vc ccat cv cinito cfv ctermo cin czeroo df-zeroo mptrcl ) CDCEZFGMHGIJB
      ACKL $.

    $d B a b c $.  $d C a b c h $.  $d H c $.  $d ph c $.
    initoval.c $e |- ( ph -> C e. Cat ) $.
    initoval.b $e |- B = ( Base ` C ) $.
    initoval.h $e |- H = ( Hom ` C ) $.
    $( The value of the initial object function, i.e. the set of all initial
       objects of a category.  (Contributed by AV, 3-Apr-2020.) $)
    initoval $p |- ( ph -> ( InitO ` C )
                           = { a e. B | A. b e. B E! h h e. ( a H b ) } ) $=
      ( vc cv chom cfv co wcel weu cbs cvv wceq wral crab cinito df-inito fveq2
      ccat cmpt a1i syl6eqr oveqd eleq2d eubidv raleqbidv rabeqbidv adantl fvex
      eqeltri rabex fvmptd ) AKCDLZFLZGLZKLZMNZOZPZDQZGVCRNZUAZFVHUBZUTVAVBEOZP
      ZDQZGBUAZFBUBZUFUCSUCKUFVJUGTADFGKUDUHVCCTZVJVOTAVPVIVNFVHBVPVHCRNZBVCCRU
      EIUIZVPVGVMGVHBVRVPVFVLDVPVEVKUTVPVDEVAVBVPVDCMNEVCCMUEJUIUJUKULUMUNUOHVO
      SPAVNFBBVQSICRUPUQURUHUS $.

    $( The value of the terminal object function, i.e. the set of all terminal
       objects of a category.  (Contributed by AV, 3-Apr-2020.) $)
    termoval $p |- ( ph -> ( TermO ` C )
                           = { a e. B | A. b e. B E! h h e. ( b H a ) } ) $=
      ( vc cv chom cfv co wcel weu cbs cvv wceq wral crab ctermo df-termo fveq2
      ccat cmpt a1i syl6eqr oveqd eleq2d eubidv raleqbidv rabeqbidv adantl fvex
      eqeltri rabex fvmptd ) AKCDLZGLZFLZKLZMNZOZPZDQZGVCRNZUAZFVHUBZUTVAVBEOZP
      ZDQZGBUAZFBUBZUFUCSUCKUFVJUGTADFGKUDUHVCCTZVJVOTAVPVIVNFVHBVPVHCRNZBVCCRU
      EIUIZVPVGVMGVHBVRVPVFVLDVPVEVKUTVPVDEVAVBVPVDCMNEVCCMUEJUIUJUKULUMUNUOHVO
      SPAVNFBBVQSICRUPUQURUHUS $.

    $( The value of the zero object function, i.e. the set of all zero objects
       of a category.  (Contributed by AV, 3-Apr-2020.) $)
    zerooval $p |- ( ph -> ( ZeroO ` C )
                           = ( ( InitO ` C ) i^i ( TermO ` C ) ) ) $=
      ( vc cv cinito cfv ctermo cin ccat czeroo cvv cmpt wceq a1i fveq2 ineq12d
      df-zeroo adantl wcel fvex inex1 fvmptd ) AHCHIZJKZUHLKZMZCJKZCLKZMZNOPOHN
      UKQRAHUBSUHCRZUKUNRAUOUIULUJUMUHCJTUHCLTUAUCEUNPUDAULUMCJUEUFSUG $.
  $}

  ${
    $d B b i $.  $d C b h i $.  $d H i $.  $d I b h i $.
    isinito.b $e |- B = ( Base ` C ) $.
    isinito.h $e |- H = ( Hom ` C ) $.
    isinito.c $e |- ( ph -> C e. Cat ) $.
    isinito.i $e |- ( ph -> I e. B ) $.
    $( The predicate "is an initial object" of a category.  (Contributed by AV,
       3-Apr-2020.) $)
    isinito $p |- ( ph -> ( I e. ( InitO ` C )
                            <-> A. b e. B E! h h e. ( I H b ) ) ) $=
      ( vi cinito cfv wcel cv co weu wral eleq2d crab initoval wb oveq1 ralbidv
      wceq eubidv elrab3 syl bitrd ) AFCMNZOFDPZLPZGPZEQZOZDRZGBSZLBUAZOZULFUNE
      QZOZDRZGBSZAUKUSFABCDELGJHIUBTAFBOUTVDUCKURVDLFBUMFUFZUQVCGBVEUPVBDVEUOVA
      ULUMFUNEUDTUGUEUHUIUJ $.

    $( The predicate "is a terminal object" of a category.  (Contributed by AV,
       3-Apr-2020.) $)
    istermo $p |- ( ph -> ( I e. ( TermO ` C )
                            <-> A. b e. B E! h h e. ( b H I ) ) ) $=
      ( vi ctermo cfv wcel cv co weu wral eleq2d crab termoval wb oveq2 ralbidv
      wceq eubidv elrab3 syl bitrd ) AFCMNZOFDPZGPZLPZEQZOZDRZGBSZLBUAZOZULUMFE
      QZOZDRZGBSZAUKUSFABCDELGJHIUBTAFBOUTVDUCKURVDLFBUNFUFZUQVCGBVEUPVBDVEUOVA
      ULUNFUMEUDTUGUEUHUIUJ $.

    $( The predicate "is a zero object" of a category.  (Contributed by AV,
       3-Apr-2020.) $)
    iszeroo $p |- ( ph -> ( I e. ( ZeroO ` C )
                        <-> ( I e. ( InitO ` C ) /\ I e. ( TermO ` C ) ) ) ) $=
      ( czeroo cfv wcel cinito ctermo cin wa zerooval eleq2d elin syl6bb ) AECJ
      KZLECMKZCNKZOZLEUBLEUCLPAUAUDEABCDHFGQREUBUCST $.
  $}

  ${
    $d B a b $.  $d C a b h $.  $d O a b h $.
    isinitoi.b $e |- B = ( Base ` C ) $.
    isinitoi.h $e |- H = ( Hom ` C ) $.
    isinitoi.c $e |- ( ph -> C e. Cat ) $.
    $( Implication of a class being an initial object.  (Contributed by AV,
       6-Apr-2020.) $)
    isinitoi $p |- ( ( ph /\ O e. ( InitO ` C ) )
                            -> ( O e. B /\ A. b e. B E! h h e. ( O H b ) ) ) $=
      ( va cinito cfv wcel wa cv co weu wral crab initoval eleq2d elrabi syl6bi
      imp ccat adantr simpr isinito biimpd impancom jcai ) AFCLMZNZOFBNZDPZFGPZ
      EQNDRGBSZAUNUOAUNFUPKPUQEQNDRGBSZKBTZNUOAUMUTFABCDEKGJHIUAUBUSKFBUCUDUEAU
      OUNURAUOOZUNURVABCDEFGHIACUFNUOJUGAUOUHUIUJUKUL $.

    $( Implication of a class being a terminal object.  (Contributed by AV,
       18-Apr-2020.) $)
    istermoi $p |- ( ( ph /\ O e. ( TermO ` C ) )
                            -> ( O e. B /\ A. b e. B E! h h e. ( b H O ) ) ) $=
      ( va ctermo cfv wcel wa cv co weu wral crab termoval eleq2d elrabi syl6bi
      imp ccat adantr simpr istermo biimpd impancom jcai ) AFCLMZNZOFBNZDPZGPZF
      EQNDRGBSZAUNUOAUNFUPUQKPEQNDRGBSZKBTZNUOAUMUTFABCDEKGJHIUAUBUSKFBUCUDUEAU
      OUNURAUOOZUNURVABCDEFGHIACUFNUOJUGAUOUHUIUJUKUL $.

    $d B h o $.  $d C o $.  $d H h o $.  $d O o $.  $d ph h $.
    $( For an initial object, the identity arrow is the one and only morphism
       of the object to the object itself.  (Contributed by AV, 6-Apr-2020.) $)
    initoid $p |- ( ( ph /\ O e. ( InitO ` C ) )
                            -> ( O H O ) = { ( ( Id ` C ) ` O ) } ) $=
      ( vh vo cfv wcel wa cv co weu csn wceq wi cvv cinito wral isinitoi eleq2d
      ccid oveq2 eubidv rspcv adantl eusn eqid ccat ad2antrr simpr catidcl fvex
      wex elsn eqcom wb vex sneqbg bicomd ax-mp 3bitri biimpi a1i eleq2 3imtr4d
      eqeq1 syl5 exlimiv com12 syl5bi syld expimpd mpd ) AECUAKLZMZEBLZINZEJNZD
      OZLZIPZJBUBZMEEDOZECUEKZKZQZRZABCIDEJFGHUCVSVTWFWKVSVTMZWFWAWGLZIPZWKVTWF
      WNSVSWEWNJEBWBERZWDWMIWOWCWGWAWBEEDUFUDUGUHUIWNWGWAQZRZIUQZWLWKIWGUJWRWLW
      KWQWLWKSIWLWIWGLZWQWKWLBCWHDEFGWHUKACULLVRVTHUMVSVTUNUOWQWIWPLZWPWJRZWSWK
      WTXASWQWTXAWTWIWARWAWIRZXAWIWAEWHUPURWIWAUSWATLZXBXAUTIVAXCXAXBWAWITVBVCV
      DVEVFVGWGWPWIVHWGWPWJVJVIVKVLVMVNVOVPVQ $.

    $( For a terminal object, the identity arrow is the one and only morphism
       of the object to the object itself.  (Contributed by AV,
       18-Apr-2020.) $)
    termoid $p |- ( ( ph /\ O e. ( TermO ` C ) )
                            -> ( O H O ) = { ( ( Id ` C ) ` O ) } ) $=
      ( vh vo cfv wcel wa cv co weu csn wceq wi cvv ctermo wral istermoi eleq2d
      ccid oveq1 eubidv rspcv adantl eusn eqid ccat ad2antrr simpr catidcl fvex
      wex elsn eqcom wb vex sneqbg bicomd ax-mp 3bitri biimpi a1i eleq2 3imtr4d
      eqeq1 syl5 exlimiv com12 syl5bi syld expimpd mpd ) AECUAKLZMZEBLZINZJNZED
      OZLZIPZJBUBZMEEDOZECUEKZKZQZRZABCIDEJFGHUCVSVTWFWKVSVTMZWFWAWGLZIPZWKVTWF
      WNSVSWEWNJEBWBERZWDWMIWOWCWGWAWBEEDUFUDUGUHUIWNWGWAQZRZIUQZWLWKIWGUJWRWLW
      KWQWLWKSIWLWIWGLZWQWKWLBCWHDEFGWHUKACULLVRVTHUMVSVTUNUOWQWIWPLZWPWJRZWSWK
      WTXASWQWTXAWTWIWARWAWIRZXAWIWAEWHUPURWIWAUSWATLZXBXAUTIVAXCXAXBWAWITVBVCV
      DVEVFVGWGWPWIVHWGWPWJVJVIVKVLVMVNVOVPVQ $.
  $}

  ${
    $d C b h $.  $d O b h $.
    $( An initial object is an object.  (Contributed by AV, 14-Apr-2020.) $)
    initoo $p |- ( C e. Cat -> ( O e. ( InitO ` C ) -> O e. ( Base ` C ) ) ) $=
      ( vh vb ccat wcel cinito cfv cbs wa cv chom weu wral eqid isinitoi simpld
      co id ex ) AEFZBAGHFZBAIHZFZUAUBJUDCKBDKALHZRFCMDUCNUAUCACUEBDUCOUEOUASPQ
      T $.

    $( A terminal object is an object.  (Contributed by AV, 18-Apr-2020.) $)
    termoo $p |- ( C e. Cat -> ( O e. ( TermO ` C ) -> O e. ( Base ` C ) ) ) $=
      ( vh vb ccat wcel ctermo cfv cbs wa cv chom weu wral eqid istermoi simpld
      co id ex ) AEFZBAGHFZBAIHZFZUAUBJUDCKDKBALHZRFCMDUCNUAUCACUEBDUCOUEOUASPQ
      T $.
  $}

  $( Implication of a class being a zero object.  (Contributed by AV,
     18-Apr-2020.) $)
  iszeroi $p |- ( ( C e. Cat /\ O e. ( ZeroO ` C ) ) -> ( O e. ( Base ` C )
                         /\ ( O e. ( InitO ` C ) /\ O e. ( TermO ` C ) ) ) ) $=
    ( ccat wcel czeroo cfv cbs cinito ctermo cin chom eqid zerooval eleq2d elin
    wa id initoo adantrd syl5bi sylbid simpl simpr iszeroo biimpd impancom jcai
    imp ) ACDZBAEFZDZPBAGFZDZBAHFZDZBAIFZDZPZUIUKUMUIUKBUNUPJZDZUMUIUJUSBUIULAA
    KFZUIQULLZVALZMNUTURUIUMBUNUPOUIUOUMUQABRSTUAUHUIUMUKURUIUMPZUKURVDULAVABVB
    VCUIUMUBUIUMUCUDUEUFUG $.

  ${
    $d A a g $.  $d A b f $.  $d B a g $.  $d B b f $.  $d C b f $.
    $d C a g $.  $d ph g f $.  $d a f $.
    initoeu1.c $e |- ( ph -> C e. Cat ) $.
    initoeu1.a $e |- ( ph -> A e. ( InitO ` C ) ) $.
    ${
      initoeu1.b $e |- ( ph -> B e. ( InitO ` C ) ) $.
      $( Morphisms between two initial objects are inverses.  (Contributed by
         AV, 14-Apr-2020.) $)
      2initoinv $p |- ( ( ph /\ G e. ( B ( Hom ` C ) A )
                             /\ F e. ( A ( Hom ` C ) B ) )
                        -> F ( A ( Inv ` C ) B ) G ) $=
        ( cfv co wcel wbr cop wceq eqid 3ad2ant1 initoo sylc catcocl chom csect
        w3a cinv cco ccid cbs cinito simp3 simp2 csn initoid mpdan eleq2d elsni
        ccat syl6bi mpd issect2 mpbird wa wb isinv mpbir2and ) AFCBDUAJZKLZEBCV
        EKLZUCZEFBCDUDJZKMZEFBCDUBJZKMZFECBVKKMZVHVLFEBCNBDUEJZKKZBDUFJZJZOZVHV
        OBBVEKZLZVRVHDUGJZDVNEFVEBCBWAPZVEPZVNPZAVFDUPLZVGGQZAVFBWALZVGAWEBDUHJ
        ZLZWGGHDBRSZQZAVFCWALZVGAWECWHLZWLGIDCRSZQZWKAVFVGUIZAVFVGUJZTVHVTVOVQU
        KZLVRVHVSWRVOAVFVSWROZVGAWIWSHAWADVEBWBWCGULUMQUNVOVQUOUQURVHWADVKVNVPE
        FVEBCWBWCWDVPPZVKPZWFWKWOWPWQUSUTVHVMEFCBNCVNKKZCVPJZOZVHXBCCVEKZLZXDVH
        WADVNFEVECBCWBWCWDWFWOWKWOWQWPTVHXFXBXCUKZLXDVHXEXGXBAVFXEXGOZVGAWMXHIA
        WADVECWBWCGULUMQUNXBXCUOUQURVHWADVKVNVPFEVECBWBWCWDWTXAWFWOWKWQWPUSUTAV
        FVJVLVMVAVBVGAWADVKEFVIBCWBVIPGWJWNXAVCQVD $.

      $( Initial objects are essentially unique (strong form), i.e. there is a
         _unique_ isomorphism between two initial objects, see statement in
         [Lang] p. 58 ("... if P, P' are two universal objects [[...] then
         there exists a unique isomorphism between them.".  (Proposed by BJ,
         14-Apr-2020.)  (Contributed by AV, 14-Apr-2020.) $)
      initoeu1 $p |- ( ph -> E! f f e. ( A ( Iso ` C ) B ) ) $=
        ( vb vg va cfv wcel cv co weu wa eqid wi wex cbs chom wral cinito mpdan
        ciso isinitoi oveq2 eleq2d eubidv rspcv wss adantr simprr simprl isohom
        wceq ccat euex a1i rspcva syl ad2antll cinv ad2antrr wbr 2initoinv 3exp
        ex imp31 inviso1 eximdv expcom exlimiv com3l syl2and imp euelss syl3anc
        impd exp42 com24 com14 expd syldc com15 mpd ) ABDUALZMZENZBINZDUBLZOZMZ
        EPZIWHUCZQZWJBCDUFLZOZMZEPZABDUDLZMWQGAWHDEWLBIWHRZWLRZFUGUEAWIWPXAACWH
        MZJNZCKNZWLOZMZJPZKWHUCZQZWIWPXASSZACXBMXLHAWHDJWLCKXCXDFUGUEAXEXKXMWPX
        EXKWIAXAXEWPWJBCWLOZMZEPZXKWIAXASSZSWOXPICWHWKCUQZWNXOEXRWMXNWJWKCBWLUH
        UIUJUKXEXPXKXQAXPXKQZWIXEXAAXEWIXSXAAXEWIXSXAAXEWIQZQZXSQWSXNULZWTETZXP
        XAYAYBXSYAWHDWLWRBCXCXDWRRZADURMZXTFUMZAXEWIUNZAXEWIUOZUPUMYAXSYCYAXPXO
        ETZXKXFCBWLOZMZJTZYCXPYISYAXOEUSUTWIXKYLSAXEWIXKYLWIXKQYKJPZYLXJYMKBWHX
        GBUQZXIYKJYNXHYJXFXGBCWLUHUIUJVAYKJUSVBVIVCYAYIYLYCYLYAYIYCYKYAYIYCSZSJ
        YAYKYOYAYKQZXOWTEYPXOWTYPXOQWHDWJXFWRDVDLZBCXCYQRYAYEYKXOYFVEYAWIYKXOYG
        VEYAXEYKXOYHVEYDYAYKXOWJXFBCYQOVFZAYKXOYRSSXTAYKXOYRABCDWJXFFGHVGVHUMVJ
        VKVIVLVMVNVOVTVPVQYAXPXKUOEWSXNVRVSWAWBWCWDWEWFVTWGVTWG $.

      $( Initial objects are essentially unique (weak form), i.e. if A and B
         are initial objects, then A and B are isomorphic.  Proposition 7.3 (1)
         of [Adamek] p. 102.  (Contributed by AV, 6-Apr-2020.) $)
      initoeu1w $p |- ( ph -> A ( ~=c ` C ) B ) $=
        ( vf ccic cfv wbr cv ciso co wcel wex weu eqid initoo sylc initoeu1 syl
        euex cbs ccat cinito cic mpbird ) ABCDIJKHLBCDMJZNOZHPZAUJHQUKABCDHEFGU
        AUJHUCUBADUDJZDHUIBCUIRULREADUEOZBDUFJZOBULOEFDBSTAUMCUNOCULOEGDCSTUGUH
        $.
    $}

    ${
      initoeu2lem.x $e |- X = ( Base ` C ) $.
      initoeu2lem.h $e |- H = ( Hom ` C ) $.
      initoeu2lem.i $e |- I = ( Iso ` C ) $.
      initoeu2lem.o $e |- .o. = ( comp ` C ) $.
      $( Lemma 0 for ~ initoeu2 .  (Contributed by AV, 9-Apr-2020.) $)
      initoeu2lem0 $p |- ( ( ( ph /\ ( A e. X /\ B e. X /\ D e. X ) )
                 /\ ( K e. ( B I A ) /\ F e. ( A H D ) /\ G e. ( B H D ) )
                 /\ ( ( F ( <. B , A >. .o. D ) K ) ( <. A , B >. .o. D )
                      ( ( B ( Inv ` C ) A ) ` K ) )
                    = ( G ( <. A , B >. .o. D ) ( ( B ( Inv ` C ) A ) ` K ) ) )
                           -> G = ( F ( <. B , A >. .o. D ) K ) ) $=
        ( wcel co w3a wa cop cinv cfv wceq 3simpa simp3 eqcomd eqid ccat adantr
        simpr1 simpr2 simplr3 ciso oveqi eleq2i biimpi 3ad2ant1 adantl 3ad2ant3
        chom wi isohom sseld com12 impcom 3ad2ant2 catcocl cco rcaninv sylc ) A
        BKSZCKSZEKSZUAZUBZJCBITZSZFBEHTZSZGCEHTZSZUAZFJCBUCELTTZJCBDUDUEZTUEZBC
        UCZELTZTZGWHWJTZUFZUAZVRWEUBZWLWKUFGWFUFVRWEWMUGWNWKWLVRWEWMUHUIWOKDWHJ
        GWFWGBCWJEOWGUJVRDUKSZWEAWPVQMULZULZVRVNWEAVNVOVPUMZULZVRVOWEAVNVOVPUNZ
        ULZVNVOVPAWEUOZWEJCBDUPUEZTZSZVRVTWBXFWDVTXFVSXEJIXDCBQUQURUSUTVAWEGCED
        VCUEZTZSZVRWDVTXIWBWDXIWCXHGHXGCEPUQURUSVBVAWOKDLJFXGCBEOXGUJZRWRXBWTXC
        WEVRJCBXGTZSZVTWBVRXLVDWDVRVTXLVRVSXKJVRKDXGICBOXJQWQXAWSVEVFVGUTVHWEFB
        EXGTZSZVRWBVTXNWDWBXNWAXMFHXGBEPUQURUSVIVAVJWHUJLDVKUEWIERUQVLVM $.

      $d D f $.  $d F f $.  $d G f $.  $d I f $.  $d K f $.  $d H f $.
      $d X f $.  $d .o. f $.
      $( Lemma 1 for ~ initoeu2 .  (Contributed by AV, 9-Apr-2020.) $)
      initoeu2lem1 $p |- ( ( ph /\ ( A e. X /\ B e. X /\ D e. X )
          /\ ( K e. ( B I A ) /\ ( F ( <. B , A >. .o. D ) K ) e. ( B H D ) ) )
               -> ( ( E! f f e. ( A H D ) /\ F e. ( A H D ) /\ G e. ( B H D ) )
                    -> G = ( F ( <. B , A >. .o. D ) K ) ) ) $=
        ( wi cv co wcel weu w3a cop wa wceq csn wex eusn cinv cfv eqid ad2antrr
        ccat simpr2 adantr simpr1 invf simpr ffvelrnd wss isohom sselda ad4antr
        simpr3 simplr catcocl exp31 imp eleq2 adantl cvv ovex elsng bitrd eqeq2
        mp1i eqcoms simp-4l simp-4r simprr simprl initoeu2lem0 syl131anc sylbid
        wb exp43 ex com23 com24 syld com25 mpd mpdan com15 impcom com13 expimpd
        3impia com12 exlimiv sylbi 3impib ) FUAZBEIUBZUCFUDZGXGUCZHCEIUBZUCZUEA
        BLUCZCLUCZELUCZUEZKCBJUBZUCZGKCBUFEMUBUBZXJUCZUGZUEZHXRUHZXHXIXKYAYBTZX
        HXGXFUIZUHZFUJXIXKUGZYCTZFXGUKYEYGFYEYFYCYAYEYFUGZYBAXOXTYHYBTZAXOUGZXQ
        XSYIYJXQUGZKCBDULUMZUBZUMZBCJUBZUCZXSYITYKXPYOKYMYKLDJYLCBPYLUNADUPUCZX
        OXQNUOYJXMXQAXLXMXNUQZURYJXLXQAXLXMXNUSZURRUTYJXQVAVBYHXSYKYPUGZYBYFYEX
        SYTYBTTZXIXKYEUUATYTXKYEXSXIYBYTYNBCIUBZUCZXKYEXSXIYBTZTTZTYKYOUUBYNYJY
        OUUBVCXQYJLDIJBCPQRAYQXONURZYSYRVDURVEYTUUCUGZXKUUEUUGXKUGZHYNBCUFEMUBZ
        UBZXGUCZUUEUUHLDMYNHIBCEPQSYJYQXQYPUUCXKUUFVFYJXLXQYPUUCXKYSVFYJXMXQYPU
        UCXKYRVFYJXNXQYPUUCXKAXLXMXNVGZVFYTUUCXKVHUUGXKVAVIUUGXKUUKUUETUUGXSUUK
        YEXKUUDUUGXSXRYNUUIUBZXGUCZUUKYEXKUUDTZTTZYTUUCXSUUNTZYJUUCUUQTXQYPYJUU
        CXSUUNYJUUCUGZXSUGLDMYNXRIBCEPQSYJYQUUCXSUUFUOYJXLUUCXSYSUOYJXMUUCXSYRU
        OYJXNUUCXSUULUOYJUUCXSVHUURXSVAVIVJUOVKYTUUNUUPTUUCYTYEUUKUUNUUOYTYEUUK
        UUNUUOTTYTYEUGZUUNUUKUUOUUSUUNUUMXFUHZUUKUUOTUUSUUNUUMYDUCZUUTYEUUNUVAW
        HYTXGYDUUMVLVMUUMVNUCUVAUUTWHUUSXRYNUUIVOUUMXFVNVPVSVQUUSUUKUUTUUOUUSUU
        KUUJXFUHZUUTUUOTZYEUUKUVBWHYTYEUUKUUJYDUCZUVBXGYDUUJVLUUJVNUCUVDUVBWHYE
        HYNUUIVOUUJXFVNVPVSVQVMYTUVBUVCTYEYTUVBUVCYTUVBUGUUTUUMUUJUHZUUOUVBUUTU
        VEWHZYTUVFXFUUJXFUUJUUMVRVTVMYTUVEUUOTUVBYTUVEXKXIYBYTUVEUGZXKXIUGZUGYJ
        XQXIXKUVEYBYJXQYPUVEUVHWAYJXQYPUVEUVHWBUVGXKXIWCUVGXKXIWDYTUVEUVHVHABCD
        EGHIJKLMNOPQRSWEWFWIURWGWJURWGWKWGWKWJWLURWMWNVKWOWJWPWQVKWRWSWPWTXAXBW
        JXCXDXEXB $.

      $d A f h $.  $d B h $.  $d D g h $.  $d F g h $.  $d H g h $.
      $d I g h $.  $d K g h $.  $d X g h $.  $d .o. g h $.  $d ph g h $.
      $( Lemma 2 for ~ initoeu2 .  (Contributed by AV, 10-Apr-2020.) $)
      initoeu2lem2 $p |- ( ( ph /\ ( A e. X /\ B e. X /\ D e. X )
                         /\ ( K e. ( B I A ) /\ F e. ( A H D )
                              /\ ( F ( <. B , A >. .o. D ) K ) e. ( B H D ) ) )
                         -> ( E! f f e. ( A H D ) -> E! g g e. ( B H D ) ) ) $=
        ( wcel vh w3a co cop cv weu wa wex wceq wal cvv ovex eleq1 spcegv com12
        wi mp1i 3ad2ant3 a1d adantr simpll1 simpll2 3simpb simplr simpl32 simpr
        3imp initoeu2lem1 imp syl33anc adantrr adantrl eqtr4d alrimivv sylanbrc
        ex eu4 ) ABLTCLTELTUBZKCBJUCTZHBEIUCZTZHKCBUDEMUCZUCZCEIUCZTZUBZUBZFUEV
        TTFUFZGUEZWDTZGUFZWGWHUGZWJGUHZWJUAUEZWDTZUGZWIWNUIZUPZUAUJGUJWKWGWMWHA
        VRWFWMAWFWMUPVRWFAWMWEVSAWMUPWAAWEWMWCUKTWEWMUPAHKWBULWJWEGWCUKWIWCWDUM
        UNUQUOURUOUSVGUTWLWRGUAWLWPWQWLWPUGWIWCWNWLWJWIWCUIZWOWLWJUGAVRVSWEUGZW
        HWAWJWSAVRWFWHWJVAAVRWFWHWJVBWLWTWJWGWTWHWFAWTVRVSWAWEVCURUTZUTWGWHWJVD
        WLWAWJVSWAWEAVRWHVEZUTWLWJVFAVRWTUBZWHWAWJUBWSABCDEFHWIIJKLMNOPQRSVHVIV
        JVKWLWOWNWCUIZWJWLWOUGAVRWTWHWAWOXDAVRWFWHWOVAAVRWFWHWOVBWLWTWOXAUTWGWH
        WOVDWLWAWOXBUTWLWOVFXCWHWAWOUBXDABCDEFHWNIJKLMNOPQRSVHVIVJVLVMVPVNWJWOG
        UAWIWNWDUMVQVOVP $.
    $}

    $d A f g h k $.  $d B f g h k $.  $d C h k $.  $d ph b f g h k $.
    $d a b $.
    initoeu2.i $e |- ( ph -> A ( ~=c ` C ) B ) $.
    $( Initial objects are essentially unique, if A is an initial object, then
       so is every object that is isomorphic to A. Proposition 7.3 (2) in
       [Adamek] p. 102.  (Contributed by AV, 10-Apr-2020.) $)
    initoeu2 $p |- ( ph -> B e. ( InitO ` C ) ) $=
      ( vg vb vf vh cfv wcel wa cv co wi adantr ad2antrr ex ccic wbr cinito cbs
      vk va ccat ciclcl cicrcl chom weu wral cicsym ciso wex eqid simprr simprl
      sylan cic isinitoi mpdan wceq oveq2 eleq2d eubidv rspcva eleq1 cbveu euex
      nfv simpr ad2antrl simpl isohom sselda cop cco catcocl w3a df-3an biimpri
      ad4antlr initoeu2lem2 syl113anc mpand com23 com15 com24 com12 exlimiv syl
      expd sylbi pm2.43i mpd adantld imp sylbid ralrimiva isinito mpbird mp2and
      an32s ) ABCDUALZUBZCDUCLZMZGAXFNZBDUDLZMZCXJMZXHADUGMZXFXKEDBCUHUSAXMXFXL
      EDBCUIUSXIXKXLNZXHXIXNNZXHHOCIOZDUJLZPZMHUKZIXJULXOXSIXJXOXPXJMZXSAXNXFXT
      XSQZAXNNZXFNCBXEUBZYAYBXMXFYCAXMXNERZDBCUMUSYBYCYAQXFYBYCUEOZCBDUNLZPZMZU
      EUOZYAYBXJDUEYFCBYFUPZXJUPZYDAXKXLUQAXKXLURUTYIYBYAYHYBYAQUEYBYHYAAXNYHYA
      QZAXKJOZBUFOZXQPZMZJUKZUFXJULZNZXNYLQZABXGMYSFAXJDJXQBUFYKXQUPZEVAVBAYRYT
      XKXTYRXNYHAXSXTYRXNYHAXSQQZQZXTYRNYMBXPXQPZMZJUKZUUCYQUUFUFXPXJYNXPVCZYPU
      UEJUUGYOUUDYMYNXPBXQVDVEVFVGXTUUFUUCQYRUUFXTUUCUUFXTUUCQZUUFKOZUUDMZKUKZU
      UFUUHQZUUEUUJJKUUEKVKUUJJVKYMUUIUUDVHVIUUKUUJKUOUULUUJKVJUUJUULKUUFUUJUUH
      UUFXNXTUUJUUBUUFXNXTUUJUUBQAXNXTNZUUJYHUUFXSAUUMUUJYHUUFXSQZQQAUUMNZYHUUJ
      UUNUUOYHUUJUUNQUUOYHNZYECBXQPZMZUUJUUNUUOYGUUQYEUUOXJDXQYFCBYKUUAYJAXMUUM
      ERZXNXLAXTXKXLVLVMZXNXKAXTXKXLVNVMZVOVPUUPUURUUJNZUUNUUPUVBNZUUIYECBVQXPD
      VRLZPPXRMZUUNUVCXJDUVDYEUUIXQCBXPYKUUAUVDUPZUUOXMYHUVBUUSSUUOXLYHUVBUUTSU
      UOXKYHUVBUVASUUOXTYHUVBAXNXTUQSUUPUURUUJURUUPUURUUJUQZVSUVCUVENAXKXLXTVTZ
      YHUUJUVEUUNUVCAUVEUUOAYHUVBAUUMVNSRUUMUVHAYHUVBUVEUVHUUMXKXLXTWAWBWCUUPYH
      UVBUVEUUOYHVLSUVCUUJUVEUVGRUVCUVEVLABCDXPJHUUIXQYFYEXJUVDEFYKUUAYJUVFWDWE
      VBTWFTWGTWHWMWIWJWKWLWNWOWJRWPTWHWQWPWRWJWKWJWSRWPXDWRWTXOXJDHXQCIYKUUAAX
      MXFXNESXIXKXLUQXAXBTXCVB $.
  $}

  ${
    $d A a g $.  $d A b f $.  $d B a g $.  $d B b f $.  $d C b f $.
    $d C a g $.  $d ph g f $.  $d a f $.  $d b g $.
    termoeu1.c $e |- ( ph -> C e. Cat ) $.
    termoeu1.a $e |- ( ph -> A e. ( TermO ` C ) ) $.
    ${
      termoeu1.b $e |- ( ph -> B e. ( TermO ` C ) ) $.
      $( Morphisms between two terminal objects are inverses.  (Contributed by
         AV, 18-Apr-2020.) $)
      2termoinv $p |- ( ( ph /\ G e. ( B ( Hom ` C ) A )
                             /\ F e. ( A ( Hom ` C ) B ) )
                        -> F ( A ( Inv ` C ) B ) G ) $=
        ( cfv co wcel wbr cop wceq eqid 3ad2ant1 termoo sylc catcocl chom csect
        w3a cinv cco ccid cbs ctermo simp3 simp2 csn termoid mpdan eleq2d elsni
        ccat syl6bi mpd issect2 mpbird wa wb isinv mpbir2and ) AFCBDUAJZKLZEBCV
        EKLZUCZEFBCDUDJZKMZEFBCDUBJZKMZFECBVKKMZVHVLFEBCNBDUEJZKKZBDUFJZJZOZVHV
        OBBVEKZLZVRVHDUGJZDVNEFVEBCBWAPZVEPZVNPZAVFDUPLZVGGQZAVFBWALZVGAWEBDUHJ
        ZLZWGGHDBRSZQZAVFCWALZVGAWECWHLZWLGIDCRSZQZWKAVFVGUIZAVFVGUJZTVHVTVOVQU
        KZLVRVHVSWRVOAVFVSWROZVGAWIWSHAWADVEBWBWCGULUMQUNVOVQUOUQURVHWADVKVNVPE
        FVEBCWBWCWDVPPZVKPZWFWKWOWPWQUSUTVHVMEFCBNCVNKKZCVPJZOZVHXBCCVEKZLZXDVH
        WADVNFEVECBCWBWCWDWFWOWKWOWQWPTVHXFXBXCUKZLXDVHXEXGXBAVFXEXGOZVGAWMXHIA
        WADVECWBWCGULUMQUNXBXCUOUQURVHWADVKVNVPFEVECBWBWCWDWTXAWFWOWKWQWPUSUTAV
        FVJVLVMVAVBVGAWADVKEFVIBCWBVIPGWJWNXAVCQVD $.

      $( Terminal objects are essentially unique (strong form), i.e. there is a
         _unique_ isomorphism between two terminal objects, see statement in
         [Lang] p. 58 ("... if P, P' are two universal objects [[...] then
         there exists a unique isomorphism between them.".  (Proposed by BJ,
         14-Apr-2020.)  (Contributed by AV, 18-Apr-2020.) $)
      termoeu1 $p |- ( ph -> E! f f e. ( A ( Iso ` C ) B ) ) $=
        ( va vg vb cfv wcel cv co weu wa eqid wi wex cbs chom wral ctermo mpdan
        ciso istermoi oveq1 eleq2d eubidv rspcv wss adantr simprl simprr isohom
        wceq ccat euex a1i rspcva syl ad2antll cinv ad2antrr wbr 2termoinv 3exp
        ex imp31 inviso1 eximdv expcom exlimiv com3l syl2and imp euelss syl3anc
        impd exp42 com24 com14 expd syldc com15 mpd ) ACDUALZMZENZINZCDUBLZOZMZ
        EPZIWHUCZQZWJBCDUFLZOZMZEPZACDUDLZMWQHAWHDEWLCIWHRZWLRZFUGUEAWIWPXAABWH
        MZJNZKNZBWLOZMZJPZKWHUCZQZWIWPXASSZABXBMXLGAWHDJWLBKXCXDFUGUEAXEXKXMWPX
        EXKWIAXAXEWPWJBCWLOZMZEPZXKWIAXASSZSWOXPIBWHWKBUQZWNXOEXRWMXNWJWKBCWLUH
        UIUJUKXEXPXKXQAXPXKQZWIXEXAAXEWIXSXAAXEWIXSXAAXEWIQZQZXSQWSXNULZWTETZXP
        XAYAYBXSYAWHDWLWRBCXCXDWRRZADURMZXTFUMZAXEWIUNZAXEWIUOZUPUMYAXSYCYAXPXO
        ETZXKXFCBWLOZMZJTZYCXPYISYAXOEUSUTWIXKYLSAXEWIXKYLWIXKQYKJPZYLXJYMKCWHX
        GCUQZXIYKJYNXHYJXFXGCBWLUHUIUJVAYKJUSVBVIVCYAYIYLYCYLYAYIYCYKYAYIYCSZSJ
        YAYKYOYAYKQZXOWTEYPXOWTYPXOQWHDWJXFWRDVDLZBCXCYQRYAYEYKXOYFVEYAXEYKXOYG
        VEYAWIYKXOYHVEYDYAYKXOWJXFBCYQOVFZAYKXOYRSSXTAYKXOYRABCDWJXFFGHVGVHUMVJ
        VKVIVLVMVNVOVTVPVQYAXPXKUNEWSXNVRVSWAWBWCWDWEWFVTWGVTWG $.

      $( Terminal objects are essentially unique (weak form), i.e. if A and B
         are terminal objects, then A and B are isomorphic.  Proposition 7.6 of
         [Adamek] p. 103.  (Contributed by AV, 18-Apr-2020.) $)
      termoeu1w $p |- ( ph -> A ( ~=c ` C ) B ) $=
        ( vf ccic cfv wbr cv ciso co wcel wex weu eqid termoo sylc termoeu1 syl
        euex cbs ccat ctermo cic mpbird ) ABCDIJKHLBCDMJZNOZHPZAUJHQUKABCDHEFGU
        AUJHUCUBADUDJZDHUIBCUIRULREADUEOZBDUFJZOBULOEFDBSTAUMCUNOCULOEGDCSTUGUH
        $.
    $}
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Arrows (disjointified hom-sets)
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  $c domA $.
  $c codA $.
  $c Arrow $.
  $c HomA $.

  $( Extend class notation to include the domain extractor for an arrow. $)
  cdoma $a class domA $.

  $( Extend class notation to include the codomain extractor for an arrow. $)
  ccoda $a class codA $.

  $( Extend class notation to include the collection of all arrows of a
     category. $)
  carw $a class Arrow $.

  $( Extend class notation to include the set of all arrows with a specific
     domain and codomain. $)
  choma $a class HomA $.

  ${
    $d c x z B $.  $d c x z C $.  $d c z J $.  $d x z ph $.  $d z X $.
    $d z Y $.
    $( Definition of the domain extractor for an arrow.  (Contributed by FL,
       24-Oct-2007.)  (Revised by Mario Carneiro, 11-Jan-2017.) $)
    df-doma $a |- domA = ( 1st o. 1st ) $.

    $( Definition of the codomain extractor for an arrow.  (Contributed by FL,
       26-Oct-2007.)  (Revised by Mario Carneiro, 11-Jan-2017.) $)
    df-coda $a |- codA = ( 2nd o. 1st ) $.

    $( Definition of the hom-set extractor for arrows, which tags the morphisms
       of the underlying hom-set with domain and codomain, which can then be
       extracted using ~ df-doma and ~ df-coda .  (Contributed by FL,
       6-May-2007.)  (Revised by Mario Carneiro, 11-Jan-2017.) $)
    df-homa $a |- HomA = ( c e. Cat |-> ( x e. ( ( Base ` c ) X. ( Base ` c ) )
      |-> ( { x } X. ( ( Hom ` c ) ` x ) ) ) ) $.

    $( Definition of the set of arrows of a category.  We will use the term
       "arrow" to denote a morphism tagged with its domain and codomain, as
       opposed to ` Hom ` , which allows hom-sets for distinct objects to
       overlap.  (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    df-arw $a |- Arrow = ( c e. Cat |-> U. ran ( HomA ` c ) ) $.

    homarcl.h $e |- H = ( HomA ` C ) $.
    $( Reverse closure for an arrow.  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    homarcl $p |- ( F e. ( X H Y ) -> C e. Cat ) $=
      ( vc vx co wcel c0 wceq ccat n0i wn choma cfv cv cbs cxp csn chom df-homa
      cmpt fvmptndm syl5eq oveqd 0ov syl6eq nsyl2 ) BDECIZJUKKLAMJZUKBNULOZUKDE
      KIKUMCKDEUMCAPQKFGMHGRZSQZUOTHRZUAUPUNUBQQTUDPAHGUCUEUFUGDEUHUIUJ $.

    homafval.b $e |- B = ( Base ` C ) $.
    homafval.c $e |- ( ph -> C e. Cat ) $.
    ${
      homafval.j $e |- J = ( Hom ` C ) $.
      $( Value of the disjointified hom-set function.  (Contributed by Mario
         Carneiro, 11-Jan-2017.) $)
      homafval $p |- ( ph -> H =
        ( x e. ( B X. B ) |-> ( { x } X. ( J ` x ) ) ) ) $=
        ( vc choma cfv cxp cv cmpt ccat wceq cbs chom csn fveq2 syl6eqr sqxpeqd
        wcel fveq1d xpeq2d mpteq12dv df-homa cvv fvex eqeltri xpex mptex syl5eq
        fvmpt syl ) AEDLMZBCCNZBOZUAZUTFMZNZPZGADQUEURVDRIKDBKOZSMZVFNZVAUTVETM
        ZMZNZPVDQLVEDRZBVGVJUSVCVKVFCVKVFDSMZCVEDSUBHUCUDVKVIVBVAVKUTVHFVKVHDTM
        FVEDTUBJUCUFUGUHBKUIBUSVCCCCVLUJHDSUKULZVMUMUNUPUQUO $.
    $}

    $( Functionality of the disjointified hom-set function.  (Contributed by
       Mario Carneiro, 11-Jan-2017.) $)
    homaf $p |- ( ph -> H : ( B X. B ) --> ~P ( ( B X. B ) X. _V ) ) $=
      ( vx cxp cvv cpw wf cv csn chom cfv cmpt wcel wss eqid adantl ssv sylancl
      wa snssi xpss12 snex fvex xpex elpw sylibr fmptd homafval feq1d mpbird )
      ABBIZUPJIZKZDLUPURHUPHMZNZUSCOPZPZIZQZLAHUPVCURVDAUSUPRZUDZVCUQSZVCURRVFU
      TUPSZVBJSVGVEVHAUSUPUEUAVBUBUTUPVBJUFUCVCUQUTVBUSUGUSVAUHUIUJUKVDTULAUPUR
      DVDAHBCDVAEFGVATUMUNUO $.

    homaval.j $e |- J = ( Hom ` C ) $.
    homaval.x $e |- ( ph -> X e. B ) $.
    homaval.y $e |- ( ph -> Y e. B ) $.
    $( Value of the disjointified hom-set function.  (Contributed by Mario
       Carneiro, 11-Jan-2017.) $)
    homaval $p |- ( ph -> ( X H Y ) = ( { <. X , Y >. } X. ( X J Y ) ) ) $=
      ( vz co cfv csn cxp df-ov wcel cop cv homafval wceq wa simpr sneqd fveq2d
      cvv syl6eqr xpeq12d opelxpi syl2anc snex ovex xpex a1i fvmptd syl5eq ) AF
      GDOFGUAZDPUTQZFGEOZRZFGDSANUTNUBZQZVDEPZRVCBBRZDUIANBCDEHIJKUCAVDUTUDZUEZ
      VEVAVFVBVIVDUTAVHUFZUGVIVFUTEPVBVIVDUTEVJUHFGESUJUKAFBTGBTUTVGTLMFGBBULUM
      VCUITAVAVBUTUNFGEUOUPUQURUS $.

    $( Value of the disjointified hom-set function.  (Contributed by Mario
       Carneiro, 11-Jan-2017.) $)
    elhoma $p |- ( ph -> ( Z ( X H Y ) F <->
      ( Z = <. X , Y >. /\ F e. ( X J Y ) ) ) ) $=
      ( co wbr cop wcel wa csn wceq homaval breqd brxp opex elsn2 anbi1i syl6bb
      cxp bitri ) AIDGHEPZQIDGHRZUAZGHFPZUJZQZIUMUBZDUOSZTZAULUPIDABCEFGHJKLMNO
      UCUDUQIUNSZUSTUTIDUNUOUEVAURUSIUMGHUFUGUHUKUI $.

    elhomai.f $e |- ( ph -> F e. ( X J Y ) ) $.
    $( Produce an arrow from a morphism.  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    elhomai $p |- ( ph -> <. X , Y >. ( X H Y ) F ) $=
      ( cop co wbr wceq wcel eqidd elhoma mpbir2and ) AGHPZDGHEQRUDUDSDGHFQTAUD
      UAOABCDEFGHUDIJKLMNUBUC $.

    $( Produce an arrow from a morphism.  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    elhomai2 $p |- ( ph -> <. X , Y , F >. e. ( X H Y ) ) $=
      ( cotp cop co df-ot wbr wcel elhomai df-br sylib syl5eqel ) AGHDPGHQZDQZG
      HERZGHDSAUFDUHTUGUHUAABCDEFGHIJKLMNOUBUFDUHUCUDUE $.
  $}

  ${
    $d f H $.  $d f X $.  $d f Y $.
    homahom.h $e |- H = ( HomA ` C ) $.
    ${
      homarcl2.b $e |- B = ( Base ` C ) $.
      $( Reverse closure for the domain and codomain of an arrow.  (Contributed
         by Mario Carneiro, 11-Jan-2017.) $)
      homarcl2 $p |- ( F e. ( X H Y ) -> ( X e. B /\ Y e. B ) ) $=
        ( co wcel cop cxp wa cdm cfv elfvdm df-ov eleq2s cvv cpw wf homarcl fdm
        wceq homaf syl eleqtrd opelxp sylib ) CEFDIZJZEFKZAALZJEAJFAJMUKULDNZUM
        ULUNJCULDOUJCULDPEFDQRUKUMUMSLTZDUAUNUMUDUKABDGHBCDEFGUBUEUMUODUCUFUGEF
        AAUHUI $.
    $}

    $( An arrow is an ordered pair.  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    homarel $p |- Rel ( X H Y ) $=
      ( vf co wrel cvv cxp wss cv wcel cbs cfv xpss cpw eqid homarcl homaf
      homarcl2 simpld simprd fovrnd elelpwi mpdan sseldi ssriv df-rel mpbir ) C
      DBGZHUKIIJZKFUKULFLZUKMZANOZUOJZIJZULUMUPIPUNUKUQQZMUMUQMUNCDURUOUOBUNUOA
      BEUORZAUMBCDESTUNCUOMZDUOMZUOAUMBCDEUSUAZUBUNUTVAVBUCUDUMUKUQUEUFUGUHUKUI
      UJ $.

    $( The first component of an arrow is the ordered pair of domain and
       codomain.  (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    homa1 $p |- ( Z ( X H Y ) F -> Z = <. X , Y >. ) $=
      ( co wbr cop wceq chom cfv wcel wa wb df-br cbs eqid simpld simprd elhoma
      homarcl homarcl2 sylbi ibi ) FBDECHZIZFDEJKZBDEALMZHNZUHUIUKOZUHFBJZUGNZU
      HULPFBUGQUNARMZABCUJDEFGUOSZAUMCDEGUCUJSUNDUONZEUONZUOAUMCDEGUPUDZTUNUQUR
      USUAUBUEUFT $.

    ${
      homahom.j $e |- J = ( Hom ` C ) $.
      $( The second component of an arrow is the corresponding morphism
         (without the domain/codomain tag).  (Contributed by Mario Carneiro,
         11-Jan-2017.) $)
      homahom2 $p |- ( Z ( X H Y ) F -> F e. ( X J Y ) ) $=
        ( co wbr cop wceq wcel wa wb df-br cbs cfv simprd eqid homarcl homarcl2
        simpld elhoma sylbi ibi ) GBEFCJZKZGEFLMZBEFDJNZUIUJUKOZUIGBLZUHNZUIULP
        GBUHQUNARSZABCDEFGHUOUAZAUMCEFHUBIUNEUONZFUONZUOAUMCEFHUPUCZUDUNUQURUST
        UEUFUGT $.

      $( The second component of an arrow is the corresponding morphism
         (without the domain/codomain tag).  (Contributed by Mario Carneiro,
         11-Jan-2017.) $)
      homahom $p |- ( F e. ( X H Y ) -> ( 2nd ` F ) e. ( X J Y ) ) $=
        ( co wcel c1st cfv c2nd wbr wrel homarel 1st2ndbr mpan homahom2 syl ) B
        EFCIZJZBKLZBMLZUANZUDEFDIJUAOUBUEACEFGPBUAQRAUDCDEFUCGHST $.
    $}

    $( The domain of an arrow with known domain and codomain.  (Contributed by
       Mario Carneiro, 11-Jan-2017.) $)
    homadm $p |- ( F e. ( X H Y ) -> ( domA ` F ) = X ) $=
      ( co wcel cdoma cfv c1st cop ccom df-doma fveq1i cvv wf wceq wfo syl elex
      fo1st fof ax-mp fvco3 sylancr syl5eq c2nd wbr wrel homarel 1st2ndbr homa1
      mpan fveq2d cbs wa eqid homarcl2 op1stg 3eqtrd ) BDECGZHZBIJZBKJZKJZDELZK
      JZDVCVDBKKMZJZVFBIVINOVCPPKQZBPHVJVFRPPKSVKUBPPKUCUDBVBUAPPBKKUEUFUGVCVEV
      GKVCVEBUHJZVBUIZVEVGRVBUJVCVMACDEFUKBVBULUNAVLCDEVEFUMTUOVCDAUPJZHEVNHUQV
      HDRVNABCDEFVNURUSDEVNVNUTTVA $.

    $( The codomain of an arrow with known domain and codomain.  (Contributed
       by Mario Carneiro, 11-Jan-2017.) $)
    homacd $p |- ( F e. ( X H Y ) -> ( codA ` F ) = Y ) $=
      ( co wcel ccoda cfv c1st c2nd cop ccom df-coda fveq1i cvv wf wceq syl wfo
      fo1st fof ax-mp elex fvco3 sylancr syl5eq wbr wrel homarel 1st2ndbr homa1
      mpan fveq2d cbs wa eqid homarcl2 op2ndg 3eqtrd ) BDECGZHZBIJZBKJZLJZDEMZL
      JZEVCVDBLKNZJZVFBIVIOPVCQQKRZBQHVJVFSQQKUAVKUBQQKUCUDBVBUEQQBLKUFUGUHVCVE
      VGLVCVEBLJZVBUIZVEVGSVBUJVCVMACDEFUKBVBULUNAVLCDEVEFUMTUOVCDAUPJZHEVNHUQV
      HESVNABCDEFVNURUSDEVNVNUTTVA $.

    $( Decompose an arrow into domain, codomain, and morphism.  (Contributed by
       Mario Carneiro, 11-Jan-2017.) $)
    homadmcd $p |- ( F e. ( X H Y ) -> F = <. X , Y , ( 2nd ` F ) >. ) $=
      ( wcel cop c2nd cfv cotp c1st wrel wceq homarel 1st2nd mpan wbr 1st2ndbr
      co homa1 syl opeq1d eqtrd df-ot syl6eqr ) BDECTZGZBDEHZBIJZHZDEUJKUHBBLJZ
      UJHZUKUGMZUHBUMNACDEFOZBUGPQUHULUIUJUHULUJUGRZULUINUNUHUPUOBUGSQAUJCDEULF
      UAUBUCUDDEUJUEUF $.
  $}

  ${
    $d c x $.  $d c C $.  $d c H $.
    arwval.a $e |- A = ( Arrow ` C ) $.
    arwval.h $e |- H = ( HomA ` C ) $.
    $( The set of arrows is the union of all the disjointified hom-sets.
       (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    arwval $p |- A = U. ran H $=
      ( vc vx carw cfv crn cuni ccat wcel wceq cv choma rneqd unieqd wn c0 fvex
      fveq2 syl6eqr df-arw cvv eqeltri rnex uniex fvmpt cdm dmmptss sseli con3i
      ndmfv syl cbs cxp csn chom cmpt df-homa syl5eq syl6eq uni0 eqtr4d pm2.61i
      rn0 eqtri ) ABHIZCJZKZDBLMZVIVKNFBFOZPIZJZKZVKLHVMBNZVOVJVQVNCVQVNBPIZCVM
      BPUBEUCQRFUDZVJCCVRUEEBPUAUFUGUHUIVLSZVITVKVTBHUJZMZSVITNWBVLWALBFLVPHVSU
      KULUMBHUNUOVTVKTKTVTVJTVTVJTJTVTCTVTCVRTEVTBPUJZMZSVRTNWDVLWCLBFLGVMUPIZW
      EUQGOZURWFVMUSIIUQUTPGFVAUKULUMBPUNUOVBQVGVCRVDVCVEVFVH $.
  $}

  ${
    $d x A $.  $d x B $.  $d x y z C $.  $d x y z F $.  $d x y z H $.
    arwrcl.a $e |- A = ( Arrow ` C ) $.
    $( The first component of an arrow is the ordered pair of domain and
       codomain.  (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    arwrcl $p |- ( F e. A -> C e. Cat ) $=
      ( vc wcel carw cdm ccat cv choma cfv crn cuni df-arw elfvdm eleq2s sseldi
      dmmptss ) CAFGHZIBEIEJKLMNGEOSBTFCBGLACBGPDQR $.

    ${
      arwhoma.h $e |- H = ( HomA ` C ) $.
      $( An arrow is contained in the hom-set corresponding to its domain and
         codomain.  (Contributed by Mario Carneiro, 11-Jan-2017.) $)
      arwhoma $p |- ( F e. A -> F e. ( ( domA ` F ) H ( codA ` F ) ) ) $=
        ( vx vy vz wcel cv co cbs cfv wrex cdoma ccoda cxp crn rexlimivw arwval
        cuni eleq2i biimpi cvv cpw wf wfn wb eqid arwrcl homaf ffn fnunirn 3syl
        mpbid cop wceq fveq2 df-ov syl6eqr eleq2d rexxp sylib id homadm oveq12d
        homacd eleqtrrd syl ) CAJZCGKZHKZDLZJZHBMNZOZGVPOZCCPNZCQNZDLZJZVKCIKZD
        NZJZIVPVPRZOZVRVKCDSUBZJZWGVKWIAWHCABDEFUAUCUDVKWFWFUERUFZDUGDWFUHWIWGU
        IVKVPBDFVPUJABCEUKULWFWJDUMICDWFUNUOUPWEVOIGHVPVPWCVLVMUQZURZWDVNCWLWDW
        KDNVNWCWKDUSVLVMDUTVAVBVCVDVQWBGVPVOWBHVPVOCVNWAVOVEVOVSVLVTVMDBCDVLVMF
        VFBCDVLVMFVHVGVITTVJ $.

      $( A hom-set is a subset of the collection of all arrows.  (Contributed
         by Mario Carneiro, 11-Jan-2017.) $)
      homarw $p |- ( X H Y ) C_ A $=
        ( co crn cuni ovssunirn arwval sseqtr4i ) DECHCIJACDEKABCFGLM $.
    $}

    ${
      arwdm.b $e |- B = ( Base ` C ) $.
      $( The domain of an arrow is an object.  (Contributed by Mario Carneiro,
         11-Jan-2017.) $)
      arwdm $p |- ( F e. A -> ( domA ` F ) e. B ) $=
        ( wcel cdoma cfv ccoda choma co wa eqid arwhoma homarcl2 syl simpld ) D
        AGZDHIZBGZDJIZBGZSDTUBCKIZLGUAUCMACDUDEUDNZOBCDUDTUBUEFPQR $.

      $( The codomain of an arrow is an object.  (Contributed by Mario
         Carneiro, 11-Jan-2017.) $)
      arwcd $p |- ( F e. A -> ( codA ` F ) e. B ) $=
        ( wcel cdoma cfv ccoda choma co wa eqid arwhoma homarcl2 syl simprd ) D
        AGZDHIZBGZDJIZBGZSDTUBCKIZLGUAUCMACDUDEUDNZOBCDUDTUBUEFPQR $.

      $( The domain function is a function from arrows to objects.
         (Contributed by Mario Carneiro, 11-Jan-2017.) $)
      dmaf $p |- ( domA |` A ) : A --> B $=
        ( vx cdoma cres wf wfn cv cfv wcel wral cvv wss c1st fo1st ax-mp mp2an
        ccom wfo fof fnfco df-doma fneq1i mpbir ssv fnssres fvres arwdm eqeltrd
        fofn rgen ffnfv mpbir2an ) ABGAHZIUQAJZFKZUQLZBMZFANGOJZAOPURVBQQUAZOJZ
        QOJZOOQIZVDOOQUBZVEROOQUMSVGVFROOQUCSOOQQUDTOGVCUEUFUGAUHOAGUITVAFAUSAM
        UTUSGLBUSAGUJABCUSDEUKULUNFABUQUOUP $.

      $( The codomain function is a function from arrows to objects.
         (Contributed by Mario Carneiro, 11-Jan-2017.) $)
      cdaf $p |- ( codA |` A ) : A --> B $=
        ( vx ccoda cres wf wfn cv cfv wcel wral cvv c2nd c1st wfo ax-mp mp2an
        wss ccom fo2nd fo1st fof fnfco df-coda fneq1i mpbir fnssres fvres arwcd
        fofn ssv eqeltrd rgen ffnfv mpbir2an ) ABGAHZIUSAJZFKZUSLZBMZFANGOJZAOU
        AUTVDPQUBZOJZPOJZOOQIZVFOOPRVGUCOOPUMSOOQRVHUDOOQUESOOPQUFTOGVEUGUHUIAU
        NOAGUJTVCFAVAAMVBVAGLBVAAGUKABCVADEULUOUPFABUSUQUR $.
    $}

    ${
      arwhom.j $e |- J = ( Hom ` C ) $.
      $( The second component of an arrow is the corresponding morphism
         (without the domain/codomain tag).  (Contributed by Mario Carneiro,
         11-Jan-2017.) $)
      arwhom $p |- ( F e. A ->
        ( 2nd ` F ) e. ( ( domA ` F ) J ( codA ` F ) ) ) $=
        ( wcel cdoma cfv ccoda choma co c2nd eqid arwhoma homahom syl ) CAGCCHI
        ZCJIZBKIZLGCMIRSDLGABCTETNZOBCTDRSUAFPQ $.
    $}

    $( Decompose an arrow into domain, codomain, and morphism.  (Contributed by
       Mario Carneiro, 11-Jan-2017.) $)
    arwdmcd $p |- ( F e. A -> F =
      <. ( domA ` F ) , ( codA ` F ) , ( 2nd ` F ) >. ) $=
      ( wcel cdoma cfv ccoda choma co c2nd cotp wceq eqid arwhoma homadmcd syl
      ) CAECCFGZCHGZBIGZJECRSCKGLMABCTDTNZOBCTRSUAPQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Identity and composition for arrows
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c IdA $.
  $c compA $.

  $( Extend class notation to include identity for arrows. $)
  cida $a class IdA $.

  $( Extend class notation to include composition for arrows. $)
  ccoa $a class compA $.

  ${
    $d c f g h x $.
    $( Definition of the identity arrow, which is just the identity morphism
       tagged with its domain and codomain.  (Contributed by FL, 26-Oct-2007.)
       (Revised by Mario Carneiro, 11-Jan-2017.) $)
    df-ida $a |- IdA = ( c e. Cat |-> ( x e. ( Base ` c ) |->
      <. x , x , ( ( Id ` c ) ` x ) >. ) ) $.

    $( Definition of the composition of arrows.  Since arrows are tagged with
       domain and codomain, this does not need to be a quinary operation like
       the regular composition in a category ` comp ` .  Instead, it is a
       partial binary operation on arrows, which is defined when the domain of
       the first arrow matches the codomain of the second.  (Contributed by
       Mario Carneiro, 11-Jan-2017.) $)
    df-coa $a |- compA = ( c e. Cat |-> ( g e. ( Arrow ` c ) , f e.
      { h e. ( Arrow ` c ) | ( codA ` h ) = ( domA ` g ) } |->
      <. ( domA ` f ) , ( codA ` g ) , ( ( 2nd ` g ) ( <. ( domA ` f ) ,
        ( domA ` g ) >. ( comp ` c ) ( codA ` g ) ) ( 2nd ` f ) ) >. ) ) $.
  $}

  ${
    $d c x .1. $.  $d x A $.  $d c x B $.  $d c x C $.  $d x I $.  $d x ph $.
    $d x X $.
    idafval.i $e |- I = ( IdA ` C ) $.
    idafval.b $e |- B = ( Base ` C ) $.
    idafval.c $e |- ( ph -> C e. Cat ) $.
    ${
      idafval.1 $e |- .1. = ( Id ` C ) $.
      $( Value of the identity arrow function.  (Contributed by Mario Carneiro,
         11-Jan-2017.) $)
      idafval $p |- ( ph -> I = ( x e. B |-> <. x , x , ( .1. ` x ) >. ) ) $=
        ( vc cida cfv cv cotp cmpt ccat wceq cbs ccid wcel fveq2 syl6eqr fveq1d
        oteq3d mpteq12dv df-ida cvv fvex eqeltri mptex fvmpt syl syl5eq ) AFDLM
        ZBCBNZUPUPEMZOZPZGADQUAUOUSRIKDBKNZSMZUPUPUPUTTMZMZOZPUSQLUTDRZBVAVDCUR
        VEVADSMZCUTDSUBHUCVEVCUQUPUPVEUPVBEVEVBDTMEUTDTUBJUCUDUEUFBKUGBCURCVFUH
        HDSUIUJUKULUMUN $.

      idaval.x $e |- ( ph -> X e. B ) $.
      $( Value of the identity arrow function.  (Contributed by Mario Carneiro,
         11-Jan-2017.) $)
      idaval $p |- ( ph -> ( I ` X ) = <. X , X , ( .1. ` X ) >. ) $=
        ( vx cv cfv cotp cvv idafval wceq wa simpr fveq2d oteq123d wcel fvmptd
        otex a1i ) ALFLMZUGUGDNZOFFFDNZOZBEPALBCDEGHIJQAUGFRZSZUGFUGFUHUIAUKTZU
        MULUGFDUMUAUBKUJPUCAFFUIUEUFUD $.

      $( Morphism part of the identity arrow.  (Contributed by Mario Carneiro,
         11-Jan-2017.) $)
      ida2 $p |- ( ph -> ( 2nd ` ( I ` X ) ) = ( .1. ` X ) ) $=
        ( cfv c2nd cotp idaval fveq2d cvv wcel wceq fvex ot3rdg ax-mp syl6eq )
        AFELZMLFFFDLZNZMLZUEAUDUFMABCDEFGHIJKOPUEQRUGUESFDTFFUEQUAUBUC $.
    $}

    ${
      idahom.x $e |- ( ph -> X e. B ) $.
      ${
        idahom.h $e |- H = ( HomA ` C ) $.
        $( Domain and codomain of the identity arrow.  (Contributed by Mario
           Carneiro, 11-Jan-2017.) $)
        idahom $p |- ( ph -> ( I ` X ) e. ( X H X ) ) $=
          ( cfv ccid cotp co eqid idaval chom catidcl elhomai2 eqeltrd ) AFELFF
          FCMLZLZNFFDOABCUBEFGHIUBPZJQABCUCDCRLZFFKHIUEPZJJABCUBUEFHUFUDIJSTUA
          $.
      $}

      $( Domain of the identity arrow.  (Contributed by Mario Carneiro,
         11-Jan-2017.) $)
      idadm $p |- ( ph -> ( domA ` ( I ` X ) ) = X ) $=
        ( cfv choma co wcel cdoma wceq eqid idahom homadm syl ) AEDJZEECKJZLMTN
        JEOABCUADEFGHIUAPZQCTUAEEUBRS $.

      $( Codomain of the identity arrow.  (Contributed by Mario Carneiro,
         11-Jan-2017.) $)
      idacd $p |- ( ph -> ( codA ` ( I ` X ) ) = X ) $=
        ( cfv choma co wcel ccoda wceq eqid idahom homacd syl ) AEDJZEECKJZLMTN
        JEOABCUADEFGHIUAPZQCTUAEEUBRS $.
    $}

    idaf.a $e |- A = ( Arrow ` C ) $.
    $( The identity arrow function is a function from objects to arrows.
       (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    idaf $p |- ( ph -> I : B --> A ) $=
      ( vx cv ccid cfv cotp cvv wcel wa otex a1i eqid idafval choma homarw ccat
      co adantr simpr idahom sseldi fmpt2d ) AJJCJKZUKUKDLMZMZNZBEOUNOPAUKCPZQZ
      UKUKUMRSAJCDULEFGHULTUAUPUKUKDUBMZUEBUKEMBDUQUKUKIUQTZUCUPCDUQEUKFGADUDPU
      OHUFAUOUGURUHUIUJ $.
  $}

  ${
    $d c f g h A $.  $d c f g h C $.  $d g h F $.  $d g h G $.  $d c .xb $.
    coafval.o $e |- .x. = ( compA ` C ) $.
    coafval.a $e |- A = ( Arrow ` C ) $.
    ${
      coafval.x $e |- .xb = ( comp ` C ) $.
      $( The value of the composition of arrows.  (Contributed by Mario
         Carneiro, 11-Jan-2017.) $)
      coafval $p |- .x. = ( g e. A , f e.
        { h e. A | ( codA ` h ) = ( domA ` g ) } |->
        <. ( domA ` f ) , ( codA ` g ) , ( ( 2nd ` g ) ( <. ( domA ` f ) ,
          ( domA ` g ) >. .xb ( codA ` g ) ) ( 2nd ` f ) ) >. ) $=
        ( vc ccoa cfv cv wceq co cmpt2 ccat carw c0 crab c2nd cop cotp wcel cco
        ccoda cdoma fveq2 syl6eqr rabeqdv oteq3d mpt2eq123dv df-coa cvv eqeltri
        oveqd rabex mpt2ex fvmpt wn cdm dmmptss sseli con3i ndmfv arwrcl eq0rdv
        fvex syl eqidd mpt20 syl6eq eqtr4d pm2.61i eqtri ) DBLMZFEAGNUGMFNZUHMZ
        OZGAUAZENZUHMZVRUGMZVRUBMZWBUBMZWCVSUCZWDCPZPZUDZQZHBRUEZVQWKOKBFEKNZSM
        ZVTGWNUAZWCWDWEWFWGWDWMUFMZPZPZUDZQZWKRLWMBOZFEWNWOWSAWAWJXAWNBSMZAWMBS
        UIIUJZXAVTGWNAXCUKXAWRWIWCWDXAWQWHWEWFXAWPCWGWDXAWPBUFMCWMBUFUIJUJUQUQU
        LUMEFGKUNZFEAWAWJAXBUOIBSVIUPZVTGAXEURUSUTWLVAZVQTWKXFBLVBZUEZVAVQTOXHW
        LXGRBKRWTLXDVCVDVEBLVFVJXFWKFETWAWJQTXFFEAWAWJTWAWJXFEAWBAUEWLABWBIVGVE
        VHXFWAVKXFWJVKUMFEWAWJVLVMVNVOVP $.
    $}

    $( A pair ` <. G , F >. ` is in the domain of the arrow composition, if the
       domain of ` G ` equals the codomain of ` F ` .  (In this case we say
       ` G ` and ` F ` are composable.)  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    eldmcoa $p |- ( G dom .x. F <->
      ( F e. A /\ G e. A /\ ( codA ` F ) = ( domA ` G ) ) ) $=
      ( vg vh vf cop wcel cv ccoda cfv cdoma wceq crab cvv wa cdm wbr csn df-br
      cxp ciun w3a c2nd cco cotp wral otex rgen2w eqid coafval fmpt2x mpbi fdmi
      co eleq2i fveq2 eqeq2d rabbidv opeliunxp2 eqeq1d elrab anbi2i an12 3anass
      wf bitr4i 3bitri ) EDCUAZUBEDKZVMLVNHAHMZUCIMZNOZVOPOZQZIARZUEUFZLZDALZEA
      LZDNOZEPOZQZUGZEDVMUDVMWAVNWASCJMZPOZVONOZVOUHOWIUHOWJVRKWKBUIOZUSUSZUJZS
      LZJVTUKHAUKWASCVJWOHJAVTWJWKWMULUMHJAVTWNSCABWLCJHIFGWLUNUOUPUQURUTWBWDDV
      QWFQZIARZLZTWDWCWGTZTZWHHAVTEDWQVOEQZVSWPIAXAVRWFVQVOEPVAVBVCVDWRWSWDWPWG
      IDAVPDQVQWEWFVPDNVAVEVFVGWTWCWDWGTTWHWDWCWGVHWCWDWGVIVKVLVL $.

    $( The domain of composition is a collection of pairs of arrows.
       (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    dmcoass $p |- dom .x. C_ ( A X. A ) $=
      ( vg vh vf cdm cv csn ccoda cfv cdoma wceq crab cxp c2nd co wss ciun cotp
      cop eqid coafval dmmpt2ssx iunss wcel snssi ssrab2 xpss12 sylancl mprgbir
      cco sstri ) CIFAFJZKZGJLMUPNMZOZGAPZQZUAZAAQZFHAUTHJZNMZUPLMZUPRMVDRMVEUR
      UCVFBUNMZSSUBCABVGCHFGDEVGUDUEUFVBVCTVAVCTZFAFAVAVCUGUPAUHUQATUTATVHUPAUI
      USGAUJUQAUTAUKULUMUO $.
  $}

  ${
    $d f g G $.  $d f g ph $.  $d f g X $.  $d f g Y $.  $d f g h C $.
    $d f g h F $.  $d f g .xb $.  $d f g Z $.
    homdmcoa.o $e |- .x. = ( compA ` C ) $.
    homdmcoa.h $e |- H = ( HomA ` C ) $.
    homdmcoa.f $e |- ( ph -> F e. ( X H Y ) ) $.
    homdmcoa.g $e |- ( ph -> G e. ( Y H Z ) ) $.
    $( If ` F : X --> Y ` and ` G : Y --> Z ` , then ` G ` and ` F ` are
       composable.  (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    homdmcoa $p |- ( ph -> G dom .x. F ) $=
      ( cfv wcel wceq co homarw sseldi syl carw ccoda cdoma cdm wbr eqid homacd
      homadm eqtr4d eldmcoa syl3anbrc ) ADBUANZOEULODUBNZEUCNZPEDCUDUEAGHFQZULD
      ULBFGHULUFZKRLSAHIFQZULEULBFHIUPKRMSAUMHUNADUOOUMHPLBDFGHKUGTAEUQOUNHPMBE
      FHIKUHTUIULBCDEJUPUJUK $.

    ${
      coaval.x $e |- .xb = ( comp ` C ) $.
      $( Value of composition for composable arrows.  (Contributed by Mario
         Carneiro, 11-Jan-2017.) $)
      coaval $p |- ( ph -> ( G .x. F ) =
        <. X , Z , ( ( 2nd ` G ) ( <. X , Y >. .xb Z ) ( 2nd ` F ) ) >. ) $=
        ( cfv ccoda cdoma wceq co vg vf vh carw cv crab c2nd cotp cmpt2 coafval
        cop eqid cvv homarw sseldi wa wcel adantr homacd syl simpr fveq2d eqtrd
        homadm eqtr4d fveq2 eqeq1d sylanbrc otex simprr adantrr opeq12d oveq12d
        elrab a1i simprl oveq123d oteq123d ovmpt2dv2 mpi ) ADUAUBBUDPZUCUEZQPZU
        AUEZRPZSZUCWAUFZUBUEZRPZWDQPZWDUGPZWHUGPZWIWEUKZWJCTZTZUHZUISFEDTHJFUGP
        ZEUGPZHIUKZJCTZTZUHZSWABCDUBUAUCKWAULZOUJAUAUBFEWAWGWPXBDUMAIJGTZWAFWAB
        GIJXCLUNNUOAWDFSZUPZEWAUQEQPZWESZEWGUQXFHIGTZWAEWABGHIXCLUNAEXIUQZXEMUR
        ZUOXFXGIWEXFXJXGISXKBEGHILUSUTXFWEFRPZIXFWDFRAXEVAZVBXFFXDUQZXLISAXNXEN
        URZBFGIJLVDUTVCZVEWFXHUCEWAWBESWCXGWEWBEQVFVGVNVHWPUMUQAXEWHESZUPUPZWIW
        JWOVIVOXRWIHWJJWOXAXRWIERPZHXRWHERAXEXQVJZVBAXEXSHSZXQXFXJYAXKBEGHILVDU
        TVKVCZAXEWJJSXQXFWJFQPZJXFWDFQXMVBXFXNYCJSXOBFGIJLUSUTVCVKZXRWKWQWLWRWN
        WTXRWMWSWJJCXRWIHWEIYBAXEWEISXQXPVKVLYDVMXRWDFUGAXEXQVPVBXRWHEUGXTVBVQV
        RVSVT $.

      $( The morphism part of arrow composition.  (Contributed by Mario
         Carneiro, 11-Jan-2017.) $)
      coa2 $p |- ( ph -> ( 2nd ` ( G .x. F ) ) =
        ( ( 2nd ` G ) ( <. X , Y >. .xb Z ) ( 2nd ` F ) ) ) $=
        ( co c2nd cfv cop cvv cotp coaval fveq2d wcel wceq ot3rdg ax-mp syl6eq
        ovex ) AFEDPZQRHJFQRZEQRZHISJCPZPZUAZQRZUNAUJUOQABCDEFGHIJKLMNOUBUCUNTU
        DUPUNUEUKULUMUIHJUNTUFUGUH $.
    $}

    $( The composition of two composable arrows is an arrow.  (Contributed by
       Mario Carneiro, 11-Jan-2017.) $)
    coahom $p |- ( ph -> ( G .x. F ) e. ( X H Z ) ) $=
      ( co c2nd cfv eqid wcel syl wa cop cco cotp coaval cbs chom ccat homarcl2
      homarcl simpld simprd homahom catcocl elhomai2 eqeltrd ) AEDCNGIEOPZDOPZG
      HUAIBUBPZNNZUCGIFNABURCDEFGHIJKLMURQZUDABUEPZBUSFBUFPZGIKVAQZADGHFNRZBUGR
      LBDFGHKUISZVBQZAGVARZHVARZAVDVGVHTLVABDFGHKVCUHSZUJZAVHIVARZAEHIFNRZVHVKT
      MVABEFHIKVCUHSUKZAVABURUQUPVBGHIVCVFUTVEVJAVGVHVIUKVMAVDUQGHVBNRLBDFVBGHK
      VFULSAVLUPHIVBNRMBEFVBHIKVFULSUMUNUO $.
  $}

  ${
    $d f g h z A $.  $d f g h C $.  $d z .x. $.
    coapm.o $e |- .x. = ( compA ` C ) $.
    coapm.a $e |- A = ( Arrow ` C ) $.
    $( Composition of arrows is a partial binary operation on arrows.
       (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    coapm $p |- .x. e. ( A ^pm ( A X. A ) ) $=
      ( vz vg vf vh co wcel cv cfv ccoda cdoma wceq c2nd cop eqid syl wral wfun
      cxp cpm cdm wss wfn crab cco cotp coafval mpt2fun funfn mpbi c1st dmcoass
      wf sseli 1st2nd2 fveq2d df-ov syl6eqr choma homarw wbr w3a eqeltrrd df-br
      id sylibr eldmcoa sylib simp1d arwhoma simp3d oveq2d simp2d coahom sseldi
      eleqtrd eqeltrd rgen ffnfv mpbir2an carw cvv fvex eqeltri xpex elpm2 ) CA
      AAUCZUDJKCUEZACUQZWLWKUFWMCWLUGZFLZCMZAKZFWLUACUBWNGHAILNMGLZOMZPIAUHHLZO
      MZWRNMZWRQMWTQMXAWSRXBBUIMZJJUJCABXCCHGIDEXCSUKULCUMUNWQFWLWOWLKZWPWOUOMZ
      WOQMZCJZAXDWPXEXFRZCMXGXDWOXHCXDWOWKKWOXHPWLWKWOABCDEUPZURWOAAUSTZUTXEXFC
      VAVBXDXFOMZXENMZBVCMZJAXGABXMXKXLEXMSZVDXDBCXFXEXMXKXEOMZXLDXNXDXFXKXFNMZ
      XMJZXKXOXMJXDXFAKZXFXQKXDXRXEAKZXPXOPZXDXEXFWLVEZXRXSXTVFXDXHWLKYAXDWOXHW
      LXJXDVIVGXEXFWLVHVJABCXFXEDEVKVLZVMABXFXMEXNVNTXDXPXOXKXMXDXRXSXTYBVOVPVT
      XDXSXEXOXLXMJKXDXRXSXTYBVQABXEXMEXNVNTVRVSWAWBFWLACWCWDXIAWKCABWEMWFEBWEW
      GWHZAAYCYCWIWJWD $.
  $}

  ${
    arwlid.h $e |- H = ( HomA ` C ) $.
    arwlid.o $e |- .x. = ( compA ` C ) $.
    arwlid.a $e |- .1. = ( IdA ` C ) $.
    arwlid.f $e |- ( ph -> F e. ( X H Y ) ) $.
    $( Left identity of a category using arrow notation.  (Contributed by Mario
       Carneiro, 11-Jan-2017.) $)
    arwlid $p |- ( ph -> ( ( .1. ` Y ) .x. F ) = F ) $=
      ( cfv c2nd cop co cotp eqid wcel syl cco ccid cbs homarcl homarcl2 simprd
      ccat wa ida2 oveq1d chom simpld homahom catlid eqtrd oteq3d idahom coaval
      wceq homadmcd 3eqtr4d ) AGHHDMZNMZENMZGHOHBUAMZPZPZQGHVDQZVBECPEAVGVDGHAV
      GHBUBMZMZVDVFPVDAVCVJVDVFABUCMZBVIDHKVKRZAEGHFPSZBUGSLBEFGHIUDTZVIRZAGVKS
      ZHVKSZAVMVPVQUHLVKBEFGHIVLUETZUFZUIUJAVKBVEVIVDBUKMZGHVLVTRZVOVNAVPVQVRUL
      VERZVSAVMVDGHVTPSLBEFVTGHIWAUMTUNUOUPABVECEVBFGHHJILAVKBFDHKVLVNVSIUQWBUR
      AVMEVHUSLBEFGHIUTTVA $.

    $( Right identity of a category using arrow notation.  (Contributed by
       Mario Carneiro, 11-Jan-2017.) $)
    arwrid $p |- ( ph -> ( F .x. ( .1. ` X ) ) = F ) $=
      ( c2nd cfv cop co cotp eqid wcel syl cco ccid cbs homarcl homarcl2 simpld
      ccat wa ida2 oveq2d chom simprd homahom catrid eqtrd oteq3d idahom coaval
      wceq homadmcd 3eqtr4d ) AGHEMNZGDNZMNZGGOHBUANZPZPZQGHVBQZEVCCPEAVGVBGHAV
      GVBGBUBNZNZVFPVBAVDVJVBVFABUCNZBVIDGKVKRZAEGHFPSZBUGSLBEFGHIUDTZVIRZAGVKS
      ZHVKSZAVMVPVQUHLVKBEFGHIVLUETZUFZUIUJAVKBVEVIVBBUKNZGHVLVTRZVOVNVSVERZAVP
      VQVRULAVMVBGHVTPSLBEFVTGHIWAUMTUNUOUPABVECVCEFGGHJIAVKBFDGKVLVNVSIUQLWBUR
      AVMEVHUSLBEFGHIUTTVA $.

    arwass.g $e |- ( ph -> G e. ( Y H Z ) ) $.
    arwass.k $e |- ( ph -> K e. ( Z H W ) ) $.
    $( Associativity of composition in a category using arrow notation.
       (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    arwass $p |- ( ph -> ( ( K .x. G ) .x. F ) = ( K .x. ( G .x. F ) ) ) $=
      ( co wcel c2nd cfv cop cco cotp cbs chom eqid homarcl syl homarcl2 simpld
      ccat wa simprd homahom catass oveq1d oveq2d 3eqtr4d oteq3d coahom coaval
      coa2 ) AJIHFCSZUAUBZEUAUBZJKUCZIBUDUBZSZSZUEJIHUAUBZFECSZUAUBZJLUCIVISZSZ
      UEVEECSHVMCSAVKVPJIAVLFUAUBZKLUCIVISSZVGVJSVLVQVGVHLVISSZVOSVKVPABUFUBZBV
      IVGVQBUGUBZVLIJKLVTUHZWAUHZVIUHZAEJKGSTZBUMTPBEGJKMUIUJAJVTTZKVTTZAWEWFWG
      UNPVTBEGJKMWBUKUJZULAWFWGWHUOALVTTZIVTTZAHLIGSTZWIWJUNRVTBHGLIMWBUKUJZULA
      WEVGJKWASTPBEGWAJKMWCUPUJAFKLGSTVQKLWASTQBFGWAKLMWCUPUJAWIWJWLUOAWKVLLIWA
      STRBHGWALIMWCUPUJUQAVFVRVGVJABVICFHGKLINMQRWDVDURAVNVSVLVOABVICEFGJKLNMPQ
      WDVDUSUTVAABVICEVEGJKINMPABCFHGKLINMQRVBWDVCABVICVMHGJLINMABCEFGJKLNMPQVB
      RWDVCUT $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Examples of categories
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The category of sets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c SetCat $.

  $( Extend class notation to include the category Set. $)
  csetc $a class SetCat $.

  ${
    $d f g u v x y z $.
    $( Definition of the category Set, relativized to a subset ` u ` .  Example
       3.3(1) of [Adamek] p. 22.  This is the category of all sets in ` u ` and
       functions between these sets.  Generally, we will take ` u ` to be a
       weak universe or Grothendieck universe, because these sets have closure
       properties as good as the real thing.  (Contributed by FL, 8-Nov-2013.)
       (Revised by Mario Carneiro, 3-Jan-2017.) $)
    df-setc $a |- SetCat = ( u e. _V |-> { <. ( Base ` ndx ) , u >. ,
     <. ( Hom ` ndx ) , ( x e. u , y e. u |-> ( y ^m x ) ) >. ,
     <. ( comp ` ndx ) , ( v e. ( u X. u ) , z e. u |->
      ( g e. ( z ^m ( 2nd ` v ) ) , f e. ( ( 2nd ` v ) ^m ( 1st ` v ) ) |->
        ( g o. f ) ) ) >. } ) $.
  $}

  ${
    $d f g u v x y z $.  $d u v x y z ph $.  $d u v x y z U $.  $d u .x. $.
    $d u H $.
    setcval.c $e |- C = ( SetCat ` U ) $.
    setcval.u $e |- ( ph -> U e. V ) $.
    setcval.h $e |- ( ph -> H = ( x e. U , y e. U |-> ( y ^m x ) ) ) $.
    setcval.o $e |- ( ph -> .x. = ( v e. ( U X. U ) , z e. U |->
      ( g e. ( z ^m ( 2nd ` v ) ) , f e. ( ( 2nd ` v ) ^m ( 1st ` v ) ) |->
        ( g o. f ) ) ) ) $.
    $( Value of the category of sets (in a universe).  (Contributed by Mario
       Carneiro, 3-Jan-2017.) $)
    setcval $p |- ( ph -> C = { <. ( Base ` ndx ) , U >. ,
      <. ( Hom ` ndx ) , H >. , <. ( comp ` ndx ) , .x. >. } ) $=
      ( cfv cop cv cmpt2 csetc cnx cbs chom cco ctp cmap cxp c2nd c1st ccom cvv
      vu co cmpt wceq df-setc a1i simpr opeq2d eqidd mpt2eq123dv adantr sqxpeqd
      wa eqtr4d tpeq123d wcel elex syl tpex fvmptd syl5eq ) AFHUAQUBUCQZHRZUBUD
      QZKRZUBUEQZGRZUFZMAUMHVNUMSZRZVPBCWAWACSBSUGUNZTZRZVREDWAWAUHZWAJIDSESZUI
      QZUGUNWHWGUJQUGUNJSISUKTZTZRZUFZVTULUAULUAUMULWLUOUPABCDEUMIJUQURAWAHUPZV
      EZWBVOWEVQWKVSWNWAHVNAWMUSZUTWNWDKVPWNWDBCHHWCTZKWNBCWAWAWCHHWCWOWOWNWCVA
      VBAKWPUPWMOVCVFUTWNWJGVRWNWJEDHHUHZHWITZGWNEDWFWAWIWQHWIWNWAHWOVDWOWNWIVA
      VBAGWRUPWMPVCVFUTVGAHLVHHULVHNHLVIVJVTULVHAVOVQVSVKURVLVM $.
  $}

  ${
    $d f g F $.  $d f g v x y z ph $.  $d f g v x y z X $.  $d f g v x y z Y $.
    $d f g G $.  $d v x y z U $.  $d f g v z Z $.
    setcbas.c $e |- C = ( SetCat ` U ) $.
    setcbas.u $e |- ( ph -> U e. V ) $.
    $( Set of objects of the category of sets (in a universe).  (Contributed by
       Mario Carneiro, 3-Jan-2017.) $)
    setcbas $p |- ( ph -> U = ( Base ` C ) ) $=
      ( vx vy vv vz vg vf cnx cbs cfv cop cv cmap co cmpt2 chom cco cxp c2nd c1
      c1st ccom ctp wcel wceq cdc catstr baseid snsstp1 strfv syl eqidd setcval
      c5 fveq2d eqtr4d ) ACMNOCPZMUAOGHCCHQGQRSTZPZMUBOIJCCUCCKLJQIQZUDOZRSVFVE
      UFORSKQLQUGTTZPZUHZNOZBNOACDUICVJUJFCVINDUEUEUSUKPVGCVCULUMVBVDVHUNUOUPAB
      VINAGHJIBVGCLKVCDEFAVCUQAVGUQURUTVA $.

    ${
      setchomfval.h $e |- H = ( Hom ` C ) $.
      $( Set of arrows of the category of sets (in a universe).  (Contributed
         by Mario Carneiro, 3-Jan-2017.) $)
      setchomfval $p |- ( ph -> H = ( x e. U , y e. U |-> ( y ^m x ) ) ) $=
        ( vv vz vg vf cv cmap co cmpt2 cfv cop cnx cbs chom cco cxp c2nd ctp c1
        c1st ccom cvv c5 cdc eqidd setcval catstr snsstp2 wcel mpt2exga syl2anc
        homid strfv3 ) AFBCEECOBOPQZRZUAUBSETZUAUCSVDTZUAUDSKLEEUEEMNLOKOZUFSZP
        QVHVGUISPQMONOUJRRZTZUGDUCUKUHUHULUMTABCLKDVIENMVDGHIAVDUNAVIUNUOVIEVDU
        PVAVEVFVJUQAEGURZVKVDUKURIIBCEEVCGGUSUTJVB $.

      setchom.x $e |- ( ph -> X e. U ) $.
      setchom.y $e |- ( ph -> Y e. U ) $.
      $( Set of arrows of the category of sets (in a universe).  (Contributed
         by Mario Carneiro, 3-Jan-2017.) $)
      setchom $p |- ( ph -> ( X H Y ) = ( Y ^m X ) ) $=
        ( vx vy cv cmap co cvv wceq wa setchomfval simprr oveq12d ovexd ovmpt2d
        simprl ) AMNFGCCNOZMOZPQGFPQDRAMNBCDEHIJUAAUHFSZUGGSZTTUGGUHFPAUIUJUBAU
        IUJUFUCKLAGFPUDUE $.

      $( A morphism of sets is a function.  (Contributed by Mario Carneiro,
         3-Jan-2017.) $)
      elsetchom $p |- ( ph -> ( F e. ( X H Y ) <-> F : X --> Y ) ) $=
        ( co wcel cmap wf setchom eleq2d elmapd bitrd ) ADGHENZODHGPNZOGHDQAUBU
        CDABCEFGHIJKLMRSAHGDCCMLTUA $.
    $}

    ${
      setcco.o $e |- .x. = ( comp ` C ) $.
      $( Composition in the category of sets.  (Contributed by Mario Carneiro,
         3-Jan-2017.) $)
      setccofval $p |- ( ph -> .x. = ( v e. ( U X. U ) , z e. U |->
      ( g e. ( z ^m ( 2nd ` v ) ) , f e. ( ( 2nd ` v ) ^m ( 1st ` v ) ) |->
        ( g o. f ) ) ) ) $=
        ( vx vy cv cfv cnx cop cvv wcel cxp c2nd cmap co c1st ccom cbs chom cco
        cmpt2 ctp c1 c5 cdc eqid setchomfval eqidd setcval catstr ccoid snsstp3
        xpexg syl2anc mpt2exga strfv3 ) AECBFFUAZFHGBOCOZUBPZUCUDVHVGUEPUCUDHOG
        OUFUJZUJZQUGPFRZQUHPDUHPZRZQUIPVJRZUKDUISULULUMUNRAMNBCDVJFGHVLIJKAMNDF
        VLIJKVLUOUPAVJUQURVJFVLUSUTVKVMVNVAAVFSTZFITZVJSTAVPVPVOKKFFIIVBVCKCBVF
        FVISIVDVCLVE $.

      setcco.x $e |- ( ph -> X e. U ) $.
      setcco.y $e |- ( ph -> Y e. U ) $.
      setcco.z $e |- ( ph -> Z e. U ) $.
      setcco.f $e |- ( ph -> F : X --> Y ) $.
      setcco.g $e |- ( ph -> G : Y --> Z ) $.
      $( Composition in the category of sets.  (Contributed by Mario Carneiro,
         3-Jan-2017.) $)
      setcco $p |- ( ph -> ( G ( <. X , Y >. .x. Z ) F ) = ( G o. F ) ) $=
        ( vg cmap vf vv vz co cv ccom cop cvv cxp c2nd cfv c1st setccofval wceq
        cmpt2 wa simprr simprl fveq2d wcel op2ndg syl2anc adantr oveq12d op1stg
        eqtrd mpt2eq123dv opelxpi ovex mpt2ex a1i ovmpt2d coeq12d elmapd mpbird
        eqidd wf coexg ) ASUAFEJITUDZIHTUDZSUEZUAUEZUFZFEUFZHIUGZJCUDUHAUBUCWEJ
        DDUIZDSUAUCUEZUBUEZUJUKZTUDZWIWHULUKZTUDZWCUOSUAVSVTWCUOZCUHAUCUBBCDUAS
        GKLMUMAWHWEUNZWGJUNZUPZUPZSUAWJWLWCVSVTWCWQWGJWIITAWNWOUQWQWIWEUJUKZIWQ
        WHWEUJAWNWOURZUSAWRIUNZWPAHDUTZIDUTZWTNOHIDDVAVBVCVFZVDWQWIIWKHTXCWQWKW
        EULUKZHWQWHWEULWSUSAXDHUNZWPAXAXBXENOHIDDVEVBVCVFVDWQWCVPVGAXAXBWEWFUTN
        OHIDDVHVBPWMUHUTASUAVSVTWCJITVIIHTVIVJVKVLAWAFUNZWBEUNZUPUPWAFWBEAXFXGU
        RAXFXGUQVMAFVSUTZIJFVQRAJIFDDPOVNVOZAEVTUTZHIEVQQAIHEDDONVNVOZAXHXJWDUH
        UTXIXKFEVSVTVRVBVL $.
    $}
  $}

  ${
    $d f g h w x y z C $.  $d f g h w x y z U $.  $d f g h w x y z V $.
    $d x ph $.  $d x X $.
    setccat.c $e |- C = ( SetCat ` U ) $.
    $( Lemma for ~ setccat .  (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    setccatid $p |- ( U e. V ->
      ( C e. Cat /\ ( Id ` C ) = ( x e. U |-> ( _I |` x ) ) ) ) $=
      ( vw vy vz wcel cv wa cfv co cvv wf elsetchom cop ccom mpbid setcco vf vg
      vh chom w3a cco cid cres id setcbas eqidd fvex eqeltri a1i biid wf1o f1oi
      csetc f1of mp1i simpl eqid simpr mpbird simpr1l simpr1r simpr31 fcoi2 syl
      eqtrd simpr2l simpr32 fcoi1 syl2anc eqeltrd coass simpr2r simpr33 3eqtr4a
      wceq fco oveq1d oveq2d 3eqtr4d iscatd2 ) CDIZFJZCIZAJZCIZKZGJZCIZHJZCIZKZ
      UAJZWGWIBUDLZMIZUBJZWIWLWRMIZUCJZWLWNWRMIZUEZUEZFAGHCBBUFLZUGWIUHZUAUBUCW
      RNWFBCDEWFUIUJWFWRUKWFXFUKBNIWFBCURLNECURULUMUNXEUOWFWJKZXGWIWIWRMIWIWIXG
      OZWIWIXGUPZXIXHWIUQZWIWIXGUSZUTXHBCXGWRDWIWIEWFWJVAWRVBZWFWJVCZXNPVDWFXEK
      ZXGWQWGWIQZWIXFMMXGWQRZWQXOBXFCWQXGDWGWIWIEWFXEVAZXFVBZWHWJWPXDWFVEZWHWJW
      PXDWFVFZYAXOWSWGWIWQOZWSXAXCWKWPWFVGXOBCWQWRDWGWIEXRXMXTYAPSZXJXIXOXKXLUT
      ZTXOYBXQWQVTYCWGWIWQVHVIVJXOWTXGWIWIQWLXFMMWTXGRZWTXOBXFCXGWTDWIWIWLEXRXS
      YAYAWMWOWKXDWFVKZYDXOXAWIWLWTOZWSXAXCWKWPWFVLXOBCWTWRDWIWLEXRXMYAYFPSZTXO
      YGYEWTVTYHWIWLWTVMVIVJXOWTWQXPWLXFMMZWTWQRZWGWLWRMZXOBXFCWQWTDWGWIWLEXRXS
      XTYAYFYCYHTZXOYJYKIWGWLYJOZXOYGYBYMYHYCWGWIWLWTWQWAVNZXOBCYJWRDWGWLEXRXMX
      TYFPVDVOXOXBWTRZWQXPWNXFMZMZXBYJWGWLQWNXFMZMZXBWTWIWLQWNXFMMZWQYPMXBYIYRM
      XOYOWQRXBYJRYQYSXBWTWQVPXOBXFCWQYODWGWIWNEXRXSXTYAWMWOWKXDWFVQZYCXOWLWNXB
      OZYGWIWNYOOXOXCUUBWSXAXCWKWPWFVRXOBCXBWRDWLWNEXRXMYFUUAPSZYHWIWLWNXBWTWAV
      NTXOBXFCYJXBDWGWLWNEXRXSXTYFUUAYNUUCTVSXOYTYOWQYPXOBXFCWTXBDWIWLWNEXRXSYA
      YFUUAYHUUCTWBXOYIYJXBYRYLWCWDWE $.

    $( The category of sets is a category.  (Contributed by Mario Carneiro,
       3-Jan-2017.) $)
    setccat $p |- ( U e. V -> C e. Cat ) $=
      ( vx wcel ccat ccid cfv cid cv cres cmpt wceq setccatid simpld ) BCFAGFAH
      IEBJEKLMNEABCDOP $.

    setcid.o $e |- .1. = ( Id ` C ) $.
    setcid.u $e |- ( ph -> U e. V ) $.
    setcid.x $e |- ( ph -> X e. U ) $.
    $( The identity arrow in the category of sets is the identity function.
       (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    setcid $p |- ( ph -> ( .1. ` X ) = ( _I |` X ) ) $=
      ( vx cid cv cres cvv ccid wcel wceq wa syl cfv cmpt ccat setccatid simprd
      syl5eq simpr reseq2d resiexg fvmptd ) AKFLKMZNZLFNZCDOADBPUAZKCULUBZHABUC
      QZUNUORZACEQUPUQSIKBCEGUDTUEUFAUKFRZSUKFLAURUGUHJAFCQUMOQJFCUITUJ $.
  $}

  ${
    $d x E $.  $d a g h x y z F $.  $d x y M $.  $d g h U $.  $d g h x y z X $.
    $d g h z C $.  $d g h x y z ph $.  $d a g h x y z Y $.
    setcmon.c $e |- C = ( SetCat ` U ) $.
    setcmon.u $e |- ( ph -> U e. V ) $.
    setcmon.x $e |- ( ph -> X e. U ) $.
    setcmon.y $e |- ( ph -> Y e. U ) $.
    ${
      setcmon.h $e |- M = ( Mono ` C ) $.
      $( A monomorphism of sets is an injection.  (Contributed by Mario
         Carneiro, 3-Jan-2017.) $)
      setcmon $p |- ( ph -> ( F e. ( X M Y ) <-> F : X -1-1-> Y ) ) $=
        ( co wcel wa cfv wceq syl ad2antrr vx vy vg vz vh wf1 wf cv wi wral cbs
        chom eqid setccat setcbas eleqtrd monhom sselda elsetchom biimpa syldan
        cco ccat csn cxp cop ccom simprr xpeq2d wfn adantr ffn simprll fcoconst
        sneqd syl2anc simprlr 3eqtr4d fconst6g setcco simplr mpbird moni fveq1d
        mpbid vex fvconst2 3eqtr3d ralrimivva dff13 sylanbrc f1f biimpar sylan2
        eleq2d simprl simprrl ad2antlr simprrr eqeq12d wb cocan1 syl3anc biimpd
        expr sylbid anassrs ex sylbird ralrimiv ismon2 mpbir2and impbida ) ADGH
        ENZOZGHDUFZAXOPZGHDUGZUAUHZDQZUBUHZDQZRZXSYARZUIZUBGUJUAGUJXPAXODGHBULQ
        ZNZOZXRAXNYGDABUKQZBBVBQZYFEGHYIUMZYFUMZYJUMZMACFOZBVCOZJBCFIUNSZAGCYIK
        ABCFIJUOZUPZAHCYILYQUPZUQURAYHXRABCDYFFGHIJYLKLUSZUTVAZXQYEUAUBGGXQXSGO
        ZYAGOZPZYCYDXQUUDYCPZPZXSGXSVDVEZQZXSGYAVDVEZQZXSYAUUFXSUUGUUIUUFDUUGGG
        VFHYJNZNZDUUIUUKNZRUUGUUIRUUFDUUGVGZDUUIVGZUULUUMUUFGXTVDZVEZGYBVDZVEZU
        UNUUOUUFUUPUURGUUFXTYBXQUUDYCVHVOVIUUFDGVJZUUBUUNUUQRUUFXRUUTXQXRUUEUUA
        VKZGHDVLSZXQUUBUUCYCVMZDGGXSVNVPUUFUUTUUCUUOUUSRUVBXQUUBUUCYCVQZDGGYAVN
        VPVRUUFBYJCUUGDFGGHIAYNXOUUEJTZYMAGCOZXOUUEKTZUVGAHCOZXOUUELTZUUFUUBGGU
        UGUGZUVCGXSGVSSZUVAVTUUFBYJCUUIDFGGHIUVEYMUVGUVGUVIUUFUUCGGUUIUGZUVDGYA
        GVSSZUVAVTVRUUFYIBYJDUUGYFUUIEGHGYKYLYMMAYOXOUUEYPTAGYIOXOUUEYRTZAHYIOX
        OUUEYSTUVNAXOUUEWAUUFUUGGGYFNZOUVJUVKUUFBCUUGYFFGGIUVEYLUVGUVGUSWBUUFUU
        IUVOOUVLUVMUUFBCUUIYFFGGIUVEYLUVGUVGUSWBWCWEWDUUFUUBUUHXSRUVCGXSXSUAWFW
        GSUUFUUBUUJYARUVCGYAXSUBWFWGSWHXEWIUAUBGHDWJWKAXPPZXOYHDUCUHZUDUHZGVFHY
        JNZNZDUEUHZUVSNZRZUVQUWARZUIZUEUVRGYFNZUJUCUWFUJZUDYIUJZXPAXRYHGHDWLZAY
        HXRYTWMWNUVPUWGUDYIUVPUVRYIOUVRCOZUWGUVPCYIUVRACYIRXPYQVKWOUVPUWJUWGUVP
        UWJPUWEUCUEUWFUWFUVPUWJUVQUWFOZUWAUWFOZPZUWEUVPUWJUWMPZPZUWCDUVQVGZDUWA
        VGZRZUWDUWOUVTUWPUWBUWQUWOBYJCUVQDFUVRGHIAYNXPUWNJTZYMUVPUWJUWMWPZAUVFX
        PUWNKTZAUVHXPUWNLTZUWOUWKUVRGUVQUGZUVPUWJUWKUWLWQUWOBCUVQYFFUVRGIUWSYLU
        WTUXAUSWEZXPXRAUWNUWIWRZVTUWOBYJCUWADFUVRGHIUWSYMUWTUXAUXBUWOUWLUVRGUWA
        UGZUVPUWJUWKUWLWSUWOBCUWAYFFUVRGIUWSYLUWTUXAUSWEZUXEVTWTUWOUWRUWDUWOXPU
        XCUXFUWRUWDXAAXPUWNWAUXDUXGUVRGHDUVQUWAXBXCXDXFXGWIXHXIXJAXOYHUWHPXAXPA
        UDYIBYJUCUEDYFEGHYKYLYMMYPYRYSXKVKXLXM $.
    $}

    ${
      setcepi.h $e |- E = ( Epi ` C ) $.
      setcepi.2 $e |- ( ph -> 2o e. U ) $.
      $( An epimorphism of sets is a surjection.  (Contributed by Mario
         Carneiro, 3-Jan-2017.) $)
      setcepi $p |- ( ph -> ( F e. ( X E Y ) <-> F : X -onto-> Y ) ) $=
        ( va wcel wceq c1o c0 c2o vx vg vz vh co wfo wa wf crn chom cfv cbs cco
        eqid ccat setccat setcbas eleqtrd epihom sselda elsetchom biimpa syldan
        syl wss frn cv wral cif cmpt csn cxp cop wfn ffn fnfvelrn sylan iftrued
        ccom mpteq2dva ffvelrnda feqmptd eqidd eleq1 ifbid fmptco fconstmpt a1i
        3eqtr4d adantr cpr com 1onn elexi prid2 df2o3 eleqtrri 0ex prid1 keepel
        fmpti setcco fconst6g mp1i simpr mpbird mpbid syl6eq rgenw mpteqb ax-mp
        epii wb sylib wn nesymi iffalse eqeq1d mtbiri con4i ralimi dfss3 sylibr
        1n0 eqssd sylanbrc wi fof adantl biimpar eleq2d ad2antrr simprl simprrl
        dffo2 simprrr eqeq12d simplr cocan2 syl3anc biimpd sylbid ralrimivva ex
        anassrs sylbird ralrimiv isepi2 mpbir2and impbida ) AEGHDUEZPZGHEUFZAUU
        LUGZGHEUHZEUIZHQUUMAUULEGHBUJUKZUEZPZUUOAUUKUUREABULUKZBBUMUKZDUUQGHUUT
        UNZUUQUNZUVAUNZMACFPZBUOPZJBCFIUPVDZAGCUUTKABCFIJUQZURZAHCUUTLUVHURZUSU
        TAUUSUUOABCEUUQFGHIJUVCKLVAZVBVCZUUNUUPHUUNUUOUUPHVEUVLGHEVFVDUUNOVGZUU
        PPZOHVHZHUUPVEUUNUVNRSVIZRQZOHVHZUVOUUNOHUVPVJZOHRVJZQZUVRUUNUVSHRVKVLZ
        UVTUUNUVSEGHVMZTUVAUEZUEZUWBEUWDUEZQUVSUWBQUUNUVSEVSZUWBEVSZUWEUWFUUNUA
        GUAVGZEUKZUUPPZRSVIZVJUAGRVJUWGUWHUUNUAGUWLRUUNUWIGPZUGUWKRSUUNEGVNZUWM
        UWKUUNUUOUWNUVLGHEVOVDGUWIEVPVQVRVTUUNUAOGHUWJUVPUWLEUVSUUNGHUWIEUVLWAZ
        UUNUAGHEUVLWBZUUNUVSWCUVMUWJQZUVNUWKRSUVMUWJUUPWDWEWFUUNUAOGHUWJRREUWBU
        WOUWPUWBUVTQUUNOHRWGZWHUWQRWCWFWIUUNBUVACEUVSFGHTIAUVEUULJWJZUVDAGCPZUU
        LKWJZAHCPZUULLWJZATCPUULNWJZUVLHTUVSUHZUUNOHTUVPUVSUVSUNUVPTPZUVMHPUVNR
        STRSRWKZTSRRWLWMWNWOWPWQZSUXGTSRWRWSWPWQWTZWHXAWHZXBUUNBUVACEUWBFGHTIUW
        SUVDUXAUXCUXDUVLRTPHTUWBUHZUUNUXHHRTXCXDZXBWIUUNUUTBUVADEUVSUUQUWBGHTUV
        BUVCUVDMAUVFUULUVGWJAGUUTPUULUVIWJAHUUTPUULUVJWJATUUTPUULATCUUTNUVHURWJ
        AUULXEUUNUVSHTUUQUEZPUXEUXJUUNBCUVSUUQFHTIUWSUVCUXCUXDVAXFUUNUWBUXMPUXK
        UXLUUNBCUWBUUQFHTIUWSUVCUXCUXDVAXFXLXGUWRXHUXFOHVHUWAUVRXMUXFOHUXIXIOHU
        VPRTXJXKXNUVQUVNOHUVNUVQUVNXOZUVQSRQRSYDXPUXNUVPSRUVNRSXQXRXSXTYAVDOHUU
        PYBYCYEGHEYOYFAUUMUGZUULUUSUBVGZEUWCUCVGZUVAUEZUEZUDVGZEUXRUEZQZUXPUXTQ
        ZYGZUDHUXQUUQUEZVHUBUYEVHZUCUUTVHZAUUMUUOUUSUUMUUOAGHEYHYIZAUUSUUOUVKYJ
        VCUXOUYFUCUUTUXOUXQUUTPUXQCPZUYFUXOCUUTUXQACUUTQUUMUVHWJYKUXOUYIUYFUXOU
        YIUGUYDUBUDUYEUYEUXOUYIUXPUYEPZUXTUYEPZUGZUYDUXOUYIUYLUGZUGZUYBUXPEVSZU
        XTEVSZQZUYCUYNUXSUYOUYAUYPUYNBUVACEUXPFGHUXQIAUVEUUMUYMJYLZUVDAUWTUUMUY
        MKYLZAUXBUUMUYMLYLZUXOUYIUYLYMZUXOUUOUYMUYHWJZUYNUYJHUXQUXPUHZUXOUYIUYJ
        UYKYNUYNBCUXPUUQFHUXQIUYRUVCUYTVUAVAXGZXBUYNBUVACEUXTFGHUXQIUYRUVDUYSUY
        TVUAVUBUYNUYKHUXQUXTUHZUXOUYIUYJUYKYPUYNBCUXTUUQFHUXQIUYRUVCUYTVUAVAXGZ
        XBYQUYNUYQUYCUYNUUMUXPHVNZUXTHVNZUYQUYCXMAUUMUYMYRUYNVUCVUGVUDHUXQUXPVO
        VDUYNVUEVUHVUFHUXQUXTVOVDGHEUXPUXTYSYTUUAUUBUUEUUCUUDUUFUUGAUULUUSUYGUG
        XMUUMAUCUUTBUVAUBUDDEUUQGHUVBUVCUVDMUVGUVIUVJUUHWJUUIUUJ $.
    $}

    ${
      setcsect.n $e |- S = ( Sect ` C ) $.
      $( A section in the category of sets, written out.  (Contributed by Mario
         Carneiro, 3-Jan-2017.) $)
      setcsect $p |- ( ph -> ( F ( X S Y ) G <->
        ( F : X --> Y /\ G : Y --> X /\ ( G o. F ) = ( _I |` X ) ) ) ) $=
        ( co cfv wcel eqid wa adantr wbr chom cop cco ccid wceq w3a wf ccom cid
        cres cbs setccat setcbas eleqtrd issect elsetchom anbi12d anbi1d simprl
        ccat syl simprr setcco setcid eqeq12d pm5.32da bitrd df-3an 3bitr4g ) A
        EFHICOUAEHIBUBPZOQZFIHVKOQZFEHIUCHBUDPZOOZHBUEPZPZUFZUGZHIEUHZIHFUHZFEU
        IZUJHUKZUFZUGZABULPZBCVNVPEFVKHIWFRVKRZVNRZVPRZNADGQZBVAQKBDGJUMVBAHDWF
        LABDGJKUNZUOAIDWFMWKUOUPAVLVMSZVRSZVTWASZWDSZVSWEAWMWNVRSWOAWLWNVRAVLVT
        VMWAABDEVKGHIJKWGLMUQABDFVKGIHJKWGMLUQURUSAWNVRWDAWNSZVOWBVQWCWPBVNDEFG
        HIHJAWJWNKTWHAHDQWNLTZAIDQWNMTWQAVTWAUTAVTWAVCVDAVQWCUFWNABDVPGHJWIKLVE
        TVFVGVHVLVMVRVIVTWAWDVIVJVH $.
    $}

    ${
      setcinv.n $e |- N = ( Inv ` C ) $.
      $( An inverse in the category of sets is the converse operation.
         (Contributed by Mario Carneiro, 3-Jan-2017.) $)
      setcinv $p |- ( ph ->
        ( F ( X N Y ) G <-> ( F : X -1-1-onto-> Y /\ G = `' F ) ) ) $=
        ( co wbr wa ccom wceq ad2antrl csect cfv wf cid cres wf1o ccnv cbs eqid
        wcel ccat setccat syl setcbas eleqtrd isinv w3a setcsect df-3an 3ancoma
        syl6bb bitri anbi12d anandi syl6bbr fcof1o anbi2i ancom2s adantl f1ocnv
        eqcom sylib f1oeq1 ad2antll mpbird simprr coeq1d f1ococnv1 eqtrd coeq2d
        f1of wb f1ococnv2 jca jca31 impbida 3bitrd ) ADEHIFOPDEHIBUAUBZOPZEDIHW
        HOPZQZHIDUCZIHEUCZQZEDRZUDHUEZSZDERZUDIUEZSZQZQZHIDUFZEDUGZSZQZABUHUBZB
        WHDEFHIXGUINACGUJBUKUJKBCGJULUMAHCXGLABCGJKUNZUOAICXGMXHUOWHUIZUPAWKWNW
        QQZWNWTQZQXBAWIXJWJXKAWIWLWMWQUQXJABWHCDEGHIJKLMXIURWLWMWQUSVAAWJWMWLWT
        UQZXKABWHCEDGIHJKMLXIURXLWLWMWTUQXKWMWLWTUTWLWMWTUSVBVAVCWNWQWTVDVEAXBX
        FXBXFAWNWTWQXFWNWTWQQQXCXDESZQXFHIDEVFXMXEXCXDEVKVGVLVHVIAXFQZWLWMXAXCW
        LAXEHIDWATXNIHEUFZWMXNXOIHXDUFZXCXPAXEHIDVJTXEXOXPWBAXCIHEXDVMVNVOIHEWA
        UMXNWQWTXNWOXDDRZWPXNEXDDAXCXEVPZVQXCXQWPSAXEHIDVRTVSXNWRDXDRZWSXNEXDDX
        RVTXCXSWSSAXEHIDWCTVSWDWEWFWG $.
    $}

    ${
      setciso.n $e |- I = ( Iso ` C ) $.
      $( An isomorphism in the category of sets is a bijection.  (Contributed
         by Mario Carneiro, 3-Jan-2017.) $)
      setciso $p |- ( ph -> ( F e. ( X I Y ) <-> F : X -1-1-onto-> Y ) ) $=
        ( co wcel cfv eqid syl eleqtrd wbr cinv cdm wf1o setccat setcbas isoval
        cbs ccat eleq2d wfun wb invfun funfvbrb ccnv wceq setcinv syl6bi sylbid
        wa simpl wrel wi funrel releldm ex sylbird mpan2i impbid bitrd ) ADGHEN
        ZODGHBUAPZNZUBZOZGHDUCZAVJVMDABUGPZBEVKGHVPQZVKQZACFOBUHOJBCFIUDRZAGCVP
        KABCFIJUEZSZAHCVPLVTSZMUFUIAVNVOAVNDDVLPZVLTZVOAVLUJZVNWDUKAVPBVKGHVQVR
        VSWAWBULZDVLUMRAWDVOWCDUNZUOZUSVOABCDWCVKFGHIJKLVRUPVOWHUTUQURAVOWGWGUO
        ZVNWGQAVOWIUSDWGVLTZVNABCDWGVKFGHIJKLVRUPAVLVAZWJVNVBAWEWKWFVLVCRWKWJVN
        DWGVLVDVERVFVGVHVI $.
    $}
  $}

  ${
    $d f g x y z C $.  $d f g x y z D $.  $d f g x y z ph $.  $d f g x y z V $.
    $d f E $.
    resssetc.c $e |- C = ( SetCat ` U ) $.
    resssetc.d $e |- D = ( SetCat ` V ) $.
    resssetc.1 $e |- ( ph -> U e. W ) $.
    resssetc.2 $e |- ( ph -> V C_ U ) $.
    $( The restriction of the category of sets to a subset is the category of
       sets in the subset.  Thus, the ` SetCat `` U ` categories for different
       ` U ` are full subcategories of each other.  (Contributed by Mario
       Carneiro, 6-Jan-2017.) $)
    resssetc $p |- ( ph -> ( ( Homf ` ( C |`s V ) ) = ( Homf ` D ) /\
                             ( comf ` ( C |`s V ) ) = ( comf ` D ) ) ) $=
      ( vx vy co cfv wceq cv wral wcel cvv eqid vg vf vz cress chomf ccomf chom
      wa cmap ssexd adantr simprl simprr setchom sseldd resshom oveqdr 3eqtr2rd
      wss syl ralrimivva cbs setcbas sseqtrd ressbas2 homfeq mpbird cop cco w3a
      ccom ad2antrr simplr1 simplr2 simplr3 elsetchom mpbid setcco ressco oveqd
      wf 3eqtr2d ralrimivvva eqcomd comfeq jca ) ABEUDMZUENZCUENZOZWGUFNZCUFNZO
      AWJKPZLPZWGUGNZMZWMWNCUGNZMZOZLEQKEQAWSKLEEAWMERZWNERZUHZUHZWRWNWMUIMWMWN
      BUGNZMWPXCCEWQSWMWNHAESRZXBAEDFIJUJZUKWQTZAWTXAULZAWTXAUMZUNXCBDXDFWMWNGA
      DFRZXBIUKXDTZXCEDWMAEDUSZXBJUKZXHUOXCEDWNXMXIUOUNAXBKLXDWOAXEXDWOOXFEBWGX
      DSWGTZXKUPUTUQURVAAKLEWGCWOWQWOTXGAEBVBNZUSEWGVBNOAEDXOJABDFGIVCVDEXOWGBX
      NXOTVEUTZACESHXFVCZVFVGZAWLWKAWLWKOUAPZUBPZWMWNVHZUCPZCVINZMMZXSXTYAYBWGV
      INZMZMZOZUAWNYBWQMZQUBWRQZUCEQLEQKEQAYJKLUCEEEAWTXAYBERZVJZUHZYHUBUAWRYIY
      MXTWRRZXSYIRZUHZUHZYDXSXTVKXSXTYAYBBVINZMZMYGYQCYCEXTXSSWMWNYBHAXEYLYPXFV
      LZYCTZWTXAYKAYPVMZWTXAYKAYPVNZWTXAYKAYPVOZYQYNWMWNXTWAYMYNYOULYQCEXTWQSWM
      WNHYTXGUUBUUCVPVQZYQYOWNYBXSWAYMYNYOUMYQCEXSWQSWNYBHYTXGUUCUUDVPVQZVRYQBY
      RDXTXSFWMWNYBGAXJYLYPIVLYRTZYQEDWMAXLYLYPJVLZUUBUOYQEDWNUUHUUCUOYQEDYBUUH
      UUDUOUUEUUFVRYQYSYFXSXTYQYRYEYAYBAYRYEOZYLYPAXEUUIXFEBWGYRSXNUUGVSUTVLVTV
      TWBVAWCAKLUCECWGYEYCUBUAWQUUAYETXGXQXPAWHWIXRWDWEVGWDWF $.

    $( A functor into a smaller category of sets is a functor into the larger
       category.  (Contributed by Mario Carneiro, 28-Jan-2017.) $)
    funcsetcres2 $p |- ( ph -> ( E Func D ) C_ ( E Func C ) ) $=
      ( cfunc co wcel chomf cfv ccat ccomf wceq eqid vf cv cxp cres cresc eqidd
      cress cbs setccat syl adantr wss setcbas sseqtrd fullresc simpld resssetc
      wa eqtr3d simprd funcrcl adantl fullsubc subccat funcpropd csubc funcres2
      eqsstr3d simpr sseldd ex ssrdv ) AUAECLMZEBLMZAUAUBZVMNZVOVNNAVPURZVMVNVO
      VQVMEBBOPZFFUCUDZUEMZLMZVNVQEEVTCQVQEOPUFVQERPUFVQBFUGMZOPZVTOPZCOPZVQWCW
      DSZWBRPZVTRPZSZVQBUHPZBWBFVTVRWJTZVRTZABQNZVPADGNWMJBDGHUIUJUKZAFWJULVPAF
      DWJKABDGHJUMUNUKZWBTVTTZUOZUPVQWCWESZWGCRPZSZAWRWTURVPABCDFGHIJKUQUKZUPUS
      VQWGWHWSVQWFWIWQUTVQWRWTXAUTUSVQEQNZCQNZVPXBXCURAECVOVAVBZUPZXEVQBVTVSWPV
      QWJBFVRWKWLWNWOVCZVDVQXBXCXDUTVEVQVSBVFPNWAVNULXFEBVSVGUJVHAVPVIVJVKVL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The category of categories
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CatCat $.

  $( Extend class notation to include the category Cat. $)
  ccatc $a class CatCat $.

  ${
    $d b f g u v x y z $.
    $( Definition of the category Cat, which consists of all categories in the
       universe ` u ` (i.e.  "small categories", see definition 3.44. of
       [Adamek] p. 39), with functors as the morphisms.  Definition 3.47 of
       [Adamek] p. 40.  (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    df-catc $a |- CatCat = ( u e. _V |-> [_ ( u i^i Cat ) / b ]_
      { <. ( Base ` ndx ) , b >. ,
        <. ( Hom ` ndx ) , ( x e. b , y e. b |-> ( x Func y ) ) >. ,
        <. ( comp ` ndx ) , ( v e. ( b X. b ) , z e. b |->
          ( g e. ( ( 2nd ` v ) Func z ) , f e. ( Func ` v ) |->
            ( g o.func f ) ) ) >. } ) $.
  $}

  ${
    $d b u v x y z B $.  $d b u H $.  $d b u v x y z ph $.  $d b u v x y z U $.
    $d b f g u v x y z $.  $d b u .x. $.
    catcval.c $e |- C = ( CatCat ` U ) $.
    catcval.u $e |- ( ph -> U e. V ) $.
    catcval.b $e |- ( ph -> B = ( U i^i Cat ) ) $.
    catcval.h $e |- ( ph -> H = ( x e. B , y e. B |-> ( x Func y ) ) ) $.
    catcval.o $e |- ( ph -> .x. = ( v e. ( B X. B ) , z e. B |->
      ( g e. ( ( 2nd ` v ) Func z ) , f e. ( Func ` v ) |->
            ( g o.func f ) ) ) ) $.
    $( Value of the category of categories (in a universe).  (Contributed by
       Mario Carneiro, 3-Jan-2017.) $)
    catcval $p |- ( ph -> C = { <. ( Base ` ndx ) , B >. ,
      <. ( Hom ` ndx ) , H >. , <. ( comp ` ndx ) , .x. >. } ) $=
      ( cv cvv vu vb ccatc cfv cnx cbs cop chom cco ctp ccat cin cfunc co cmpt2
      cxp c2nd ccofu csb cmpt wceq df-catc a1i wa vex inex1 simpr ineq1d adantr
      wcel eqtr4d opeq2d mpt2eq123dv ad2antrr sqxpeqd tpeq123d csbied2 elex syl
      eqidd tpex fvmptd syl5eq ) AGIUCUDUEUFUDZFUGZUEUHUDZLUGZUEUIUDZHUGZUJZNAU
      AIUBUASZUKULZWDUBSZUGZWFBCWMWMBSCSUMUNZUOZUGZWHEDWMWMUPZWMKJESZUQUDDSUMUN
      WSUMUDKSJSURUNUOZUOZUGZUJZUSZWJTUCTUCUATXDUTVAABCDEUAJKUBVBVCAWKIVAZVDZUB
      WLFXCWJTWLTVJXFWKUKUAVEVFVCXFWLIUKULZFXFWKIUKAXEVGVHAFXGVAXEPVIVKXFWMFVAZ
      VDZWNWEWQWGXBWIXIWMFWDXFXHVGZVLXIWPLWFXIWPBCFFWOUOZLXIBCWMWMWOFFWOXJXJXIW
      OVTVMALXKVAXEXHQVNVKVLXIXAHWHXIXAEDFFUPZFWTUOZHXIEDWRWMWTXLFWTXIWMFXJVOXJ
      XIWTVTVMAHXMVAXEXHRVNVKVLVPVQAIMVJITVJOIMVRVSWJTVJAWEWGWIWAVCWBWC $.
  $}

  ${
    $d v x y z B $.  $d f g v x y z ph $.  $d v x y z U $.  $d f g v x y z X $.
    $d f g F $.  $d f g G $.  $d f g v x y z Y $.  $d f g v z Z $.
    catcbas.c $e |- C = ( CatCat ` U ) $.
    catcbas.b $e |- B = ( Base ` C ) $.
    catcbas.u $e |- ( ph -> U e. V ) $.
    $( Set of objects of the category of categories.  (Contributed by Mario
       Carneiro, 3-Jan-2017.) $)
    catcbas $p |- ( ph -> B = ( U i^i Cat ) ) $=
      ( vx vy vv vz vg vf cnx cfv cop cv cfunc co ccat cin cbs chom cmpt2 ccofu
      cco cxp c2nd ctp cvv c1 c5 cdc eqidd catcval catstr baseid snsstp1 inex1g
      wcel syl strfv3 ) ABDUAUBZOUCPVDQZOUDPIJVDVDIRJRSTUEZQZOUGPKLVDVDUHVDMNKR
      ZUIPLRSTVHSPMRNRUFTUEUEZQZUJCUCUKULULUMUNQAIJLKVDCVIDNMVFEFHAVDUOAVFUOAVI
      UOUPVIVDVFUQURVEVGVJUSADEVAVDUKVAHDUAEUTVBGVC $.

    ${
      catchomfval.h $e |- H = ( Hom ` C ) $.
      $( Set of arrows of the category of categories (in a universe).
         (Contributed by Mario Carneiro, 3-Jan-2017.) $)
      catchomfval $p |- ( ph -> H = ( x e. B , y e. B |-> ( x Func y ) ) ) $=
        ( vv vz vg vf cfv cop chom cv cnx cbs cfunc co cmpt2 cco cxp c2nd ccofu
        ctp catcbas eqidd catcval fveq2d syl5eq cvv wcel wceq eqeltri mpt2ex c1
        fvex c5 cdc catstr homid snsstp2 strfv mp1i eqtr4d ) AGUAUBQDRZUASQBCDD
        BTCTUCUDZUEZRZUAUFQMNDDUGDOPMTZUHQNTUCUDVOUCQOTPTUIUDUEUEZRZUJZSQZVMAGE
        SQVSLAEVRSABCNMDEVPFPOVMHIKADEFHIJKUKAVMULAVPULUMUNUOVMUPUQVMVSURABCDDV
        LDEUBQUPJEUBVBUSZVTUTVMVRSUPVAVAVCVDRVPDVMVEVFVKVNVQVGVHVIVJ $.

      catchom.x $e |- ( ph -> X e. B ) $.
      catchom.y $e |- ( ph -> Y e. B ) $.
      $( Set of arrows of the category of categories (in a universe).
         (Contributed by Mario Carneiro, 3-Jan-2017.) $)
      catchom $p |- ( ph -> ( X H Y ) = ( X Func Y ) ) $=
        ( vx vy cv cfunc co wceq cvv catchomfval wa oveq12 adantl ovexd ovmpt2d
        ) AOPGHBBOQZPQZRSZGHRSZEUAAOPBCDEFIJKLUBUHGTUIHTUCUJUKTAUHGUIHRUDUEMNAG
        HRUFUG $.
    $}

    ${
      catcco.o $e |- .x. = ( comp ` C ) $.
      $( Composition in the category of categories.  (Contributed by Mario
         Carneiro, 3-Jan-2017.) $)
      catccofval $p |- ( ph -> .x. = ( v e. ( B X. B ) , z e. B |->
      ( g e. ( ( 2nd ` v ) Func z ) , f e. ( Func ` v ) |->
            ( g o.func f ) ) ) ) $=
        ( cco cfv cnx cbs cop cv vx vy chom cxp c2nd cfunc co ccofu ctp catcbas
        cmpt2 eqid catchomfval eqidd catcval fveq2d wcel wceq fvex eqeltri xpex
        cvv mpt2ex c1 c5 cdc catstr ccoid snsstp3 strfv ax-mp 3eqtr4g ) AEOPQRP
        DSZQUCPEUCPZSZQOPCBDDUDZDIHCTZUEPBTUFUGVQUFPITHTUHUGUKZUKZSZUIZOPZFVSAE
        WAOAUAUBBCDEVSGHIVNJKMADEGJKLMUJAUAUBDEGVNJKLMVNULUMAVSUNUOUPNVSVBUQVSW
        BURCBVPDVRDDDERPVBLERUSUTZWCVAWCVCVSWAOVBVDVDVEVFSVSDVNVGVHVMVOVTVIVJVK
        VL $.

      catcco.x $e |- ( ph -> X e. B ) $.
      catcco.y $e |- ( ph -> Y e. B ) $.
      catcco.z $e |- ( ph -> Z e. B ) $.
      catcco.f $e |- ( ph -> F e. ( X Func Y ) ) $.
      catcco.g $e |- ( ph -> G e. ( Y Func Z ) ) $.
      $( Composition in the category of categories.  (Contributed by Mario
         Carneiro, 3-Jan-2017.) $)
      catcco $p |- ( ph -> ( G ( <. X , Y >. .x. Z ) F ) = ( G o.func F ) ) $=
        ( vg vf vv vz cfunc co ccofu cop cvv cxp c2nd cfv cmpt2 catccofval wceq
        cv simprl fveq2d wcel op2ndg syl2anc adantr eqtrd oveq12d df-ov syl6eqr
        wa simprr eqidd mpt2eq123dv opelxpi ovex mpt2ex a1i oveq12 adantl ovexd
        ovmpt2d ) AUAUBGFJKUEUFZIJUEUFZUAUPZUBUPZUGUFZGFUGUFZIJUHZKDUFUIAUCUDWE
        KBBUJZBUAUBUCUPZUKULZUDUPZUEUFZWGUEULZWCUMUAUBVSVTWCUMZDUIAUDUCBCDEUBUA
        HLMNOUNAWGWEUOZWIKUOZVGZVGZUAUBWJWKWCVSVTWCWPWHJWIKUEWPWHWEUKULZJWPWGWE
        UKAWMWNUQZURAWQJUOZWOAIBUSZJBUSZWSPQIJBBUTVAVBVCAWMWNVHVDWPWKWEUEULVTWP
        WGWEUEWRURIJUEVEVFWPWCVIVJAWTXAWEWFUSPQIJBBVKVARWLUIUSAUAUBVSVTWCJKUEVL
        IJUEVLVMVNVRWAGUOWBFUOVGWCWDUOAWAGWBFUGVOVPTSAGFUGVQVR $.
    $}
  $}

  ${
    $d f g h w x y z B $.  $d f g h w x y z C $.  $d f g h w x y z U $.
    $d x ph $.  $d f g h w x y z V $.  $d x X $.
    catccatid.c $e |- C = ( CatCat ` U ) $.
    catccatid.b $e |- B = ( Base ` C ) $.
    $( Lemma for ~ catccat .  (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    catccatid $p |- ( U e. V ->
      ( C e. Cat /\ ( Id ` C ) = ( x e. B |-> ( idFunc ` x ) ) ) ) $=
      ( wcel cv wa cfv co cvv cfunc ccat eqid catchom cop ccofu catcco vw vy vz
      vf vg vh chom w3a cco cidfu cbs wceq a1i eqidd ccatc fvex eqeltri biid id
      cin catcbas inss2 syl6eqss sselda idfucl syl simpl simpr eleqtrrd simpr1l
      simpr1r simpr31 eleqtrd syldan cofulid eqtrd simpr2l cofucl oveq1d oveq2d
      simpr32 cofurid 3eltr4d simpr33 simpr2r cofuass 3eqtr4d iscatd2 ) DEHZUAI
      ZBHZAIZBHZJZUBIZBHZUCIZBHZJZUDIZWJWLCUGKZLZHZUEIZWLWOXALZHZUFIZWOWQXALZHZ
      UHZUHZUAAUBUCBCCUIKZWLUJKZUDUEUFXAMBCUKKULWIGUMWIXAUNWIXLUNCMHWICDUOKMFDU
      OUPUQUMXKURWIWMJZXMWLWLNLZWLWLXALXNWLOHXMXOHZWIBOWLWIBDOUTOWIBCDEFGWIUSVA
      DOVBVCVDWLXMXMPZVEVFZXNBCDXAEWLWLFGWIWMVGXAPZWIWMVHZXTQVIWIXKJZXMWTWJWLRZ
      WLXLLLXMWTSLWTYABCXLDWTXMEWJWLWLFGWIXKVGZXLPZWKWMWSXJWIVJZWKWMWSXJWIVKZYF
      YAWTXBWJWLNLXCXFXIWNWSWIVLYABCDXAEWJWLFGYCXSYEYFQVMZWIXKWMXPYFXRVNZTYAWJW
      LWTXMYGXQVOVPYAXDXMWLWLRWOXLLLXDXMSLXDYABCXLDXMXDEWLWLWOFGYCYDYFYFWPWRWNX
      JWIVQZYHYAXDXEWLWONLXCXFXIWNWSWIWAYABCDXAEWLWOFGYCXSYFYIQVMZTYAWLWOXDXMYJ
      XQWBVPYAXDWTSLZWJWONLXDWTYBWOXLLLZWJWOXALYAWJWLWOWTXDYGYJVRZYABCXLDWTXDEW
      JWLWOFGYCYDYEYFYIYGYJTZYABCDXAEWJWOFGYCXSYEYIQWCYAXGXDSLZWTYBWQXLLZLZXGYK
      WJWORWQXLLZLZXGXDWLWORWQXLLLZWTYPLXGYLYRLYAYOWTSLXGYKSLYQYSYAWJWLWOWQWTXD
      XGYGYJYAXGXHWOWQNLXCXFXIWNWSWIWDYABCDXAEWOWQFGYCXSYIWPWRWNXJWIWEZQVMZWFYA
      BCXLDWTYOEWJWLWQFGYCYDYEYFUUAYGYAWLWOWQXDXGYJUUBVRTYABCXLDYKXGEWJWOWQFGYC
      YDYEYIUUAYMUUBTWGYAYTYOWTYPYABCXLDXDXGEWLWOWQFGYCYDYFYIUUAYJUUBTVSYAYLYKX
      GYRYNVTWGWH $.

    catcid.o $e |- .1. = ( Id ` C ) $.
    catcid.i $e |- I = ( idFunc ` X ) $.
    catcid.u $e |- ( ph -> U e. V ) $.
    catcid.x $e |- ( ph -> X e. B ) $.
    $( The identity arrow in the category of categories is the identity
       functor.  (Contributed by Mario Carneiro, 3-Jan-2017.) $)
    catcid $p |- ( ph -> ( .1. ` X ) = I ) $=
      ( vx cfv cidfu wcel wceq wa cv cvv ccid cmpt ccat catccatid simprd syl5eq
      syl simpr fveq2d fvexd fvmptd syl6eqr ) AHEPHQPZFAOHOUAZQPZUOBEUBAECUCPZO
      BUQUDZKACUERZURUSSZADGRUTVATMOBCDGIJUFUIUGUHAUPHSZTUPHQAVBUJUKNAHQULUMLUN
      $.
  $}

  ${
    $d x C $.  $d x U $.  $d x V $.
    catccat.c $e |- C = ( CatCat ` U ) $.
    $( The category of categories is a category, see remark 3.48 in [Adamek]
       p. 40.  (Clearly it cannot be an element of itself, hence it is "large"
       with respect to ` U ` .)  (Contributed by Mario Carneiro,
       3-Jan-2017.) $)
    catccat $p |- ( U e. V -> C e. Cat ) $=
      ( vx wcel ccat ccid cfv cbs cv cidfu cmpt wceq eqid catccatid simpld ) BC
      FAGFAHIEAJIZEKLIMNERABCDROPQ $.
  $}

  ${
    $d f g x y z C $.  $d f g x y z D $.  $d f g x y z ph $.  $d f g x y z V $.
    resscatc.c $e |- C = ( CatCat ` U ) $.
    resscatc.d $e |- D = ( CatCat ` V ) $.
    resscatc.1 $e |- ( ph -> U e. W ) $.
    resscatc.2 $e |- ( ph -> V C_ U ) $.
    $( The restriction of the category of categories to a subset is the
       category of categories in the subset.  Thus, the ` CatCat `` U `
       categories for different ` U ` are full subcategories of each other.
       (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    resscatc $p |- ( ph -> ( ( Homf ` ( C |`s V ) ) = ( Homf ` D ) /\
                             ( comf ` ( C |`s V ) ) = ( comf ` D ) ) ) $=
      ( vx vy co cfv wceq cin wral wcel cvv eqid vg vf vz cress chomf chom ccat
      ccomf cv wa cfunc cbs ssexd adantr simprl catcbas eleqtrrd simprr catchom
      wss ineq2d inass syl6reqr df-ss sylib ineq1d ressbas syl 3eqtr3d syl6eqss
      ressbasss sseldd resshom oveqdr 3eqtr2rd ralrimivva eqcomd homfeq cop cco
      mpbird ccofu ad2antrr simplr1 simplr2 simplr3 eleqtrd catcco ressco oveqd
      w3a 3eqtr2d ralrimivvva comfeq jca ) ABEUDMZUENZCUENZOZWPUHNZCUHNZOAWSKUI
      ZLUIZWPUFNZMZXBXCCUFNZMZOZLEUGPZQKXIQAXHKLXIXIAXBXIRZXCXIRZUJZUJZXGXBXCUK
      MZXBXCBUFNZMXEXMCULNZCEXFSXBXCHXPTZAESRZXLAEDFIJUMZUNXFTZXMXBXIXPAXJXKUOZ
      AXPXIOZXLAXPCESHXQXSUPZUNZUQXMXCXIXPAXJXKURZYDUQUSXMBULNZBDXOFXBXCGYFTZAD
      FRZXLIUNXOTZXMXIYFXBAXIYFUTZXLAXIWPULNZYFAEDPZUGPZEYFPZXIYKAYNEDUGPZPYMAY
      FYOEAYFBDFGYGIUPVAEDUGVBVCAYLEUGAEDUTYLEOJEDVDVEVFAXRYNYKOXSEYFWPSBWPTZYG
      VGVHVIZEYFWPBYPYGVKVJZUNZYAVLXMXIYFXCYSYEVLUSAXLKLXOXDAXRXOXDOXSEBWPXOSYP
      YIVMVHVNVOVPAKLXIWPCXDXFXDTXTYQAXPXIYCVQZVRWAZAXAWTAXAWTOUAUIZUBUIZXBXCVS
      ZUCUIZCVTNZMMZUUBUUCUUDUUEWPVTNZMZMZOZUAXCUUEXFMZQUBXGQZUCXIQLXIQKXIQAUUM
      KLUCXIXIXIAXJXKUUEXIRZWKZUJZUUKUBUAXGUULUUPUUCXGRZUUBUULRZUJZUJZUUGUUBUUC
      WBMUUBUUCUUDUUEBVTNZMZMUUJUUTXPCUUFEUUCUUBSXBXCUUEHXQAXRUUOUUSXSWCZUUFTZU
      UTXBXIXPXJXKUUNAUUSWDZAYBUUOUUSYCWCZUQZUUTXCXIXPXJXKUUNAUUSWEZUVFUQZUUTUU
      EXIXPXJXKUUNAUUSWFZUVFUQZUUTUUCXGXNUUPUUQUURUOUUTXPCEXFSXBXCHXQUVCXTUVGUV
      IUSWGZUUTUUBUULXCUUEUKMUUPUUQUURURUUTXPCEXFSXCUUEHXQUVCXTUVIUVKUSWGZWHUUT
      YFBUVADUUCUUBFXBXCUUEGYGAYHUUOUUSIWCUVATZUUTXIYFXBAYJUUOUUSYRWCZUVEVLUUTX
      IYFXCUVOUVHVLUUTXIYFUUEUVOUVJVLUVLUVMWHUUTUVBUUIUUBUUCUUTUVAUUHUUDUUEAUVA
      UUHOZUUOUUSAXRUVPXSEBWPUVASYPUVNWIVHWCWJWJWLVPWMAKLUCXICWPUUHUUFUBUAXFUVD
      UUHTXTYTYQAWQWRUUAVQWNWAVQWO $.
  $}

  ${
    $d x y C $.  $d f g u v x y z F $.  $d u v x y G $.  $d f g u v x y z ph $.
    $d f g u v z H $.  $d x y I $.  $d u v x y z R $.  $d f g u v x y z S $.
    $d f g u v x y z X $.  $d f g u v x y z Y $.
    catciso.c $e |- C = ( CatCat ` U ) $.
    catciso.b $e |- B = ( Base ` C ) $.
    catciso.r $e |- R = ( Base ` X ) $.
    catciso.s $e |- S = ( Base ` Y ) $.
    catciso.u $e |- ( ph -> U e. V ) $.
    catciso.x $e |- ( ph -> X e. B ) $.
    catciso.y $e |- ( ph -> Y e. B ) $.
    ${
      catcisolem.i $e |- I = ( Inv ` C ) $.
      catcisolem.g $e |- H = ( x e. S , y e. S |->
        `' ( ( `' F ` x ) G ( `' F ` y ) ) ) $.
      catcisolem.1 $e |- ( ph -> F ( ( X Full Y ) i^i ( X Faith Y ) ) G ) $.
      catcisolem.2 $e |- ( ph -> F : R -1-1-onto-> S ) $.
      $( Lemma for ~ catciso .  (Contributed by Mario Carneiro,
         29-Jan-2017.) $)
      catcisolem $p |- ( ph -> <. F , G >. ( X I Y ) <. `' F , H >. ) $=
        ( vu vv vz vf vg cop ccnv co wbr csect cfv cco ccid wceq ccofu cidfu cv
        ccom cmpt2 cid cres cxp chom cmpt wf1o f1ococnv1 syl wcel 3ad2ant1 f1of
        wf simp2 ffvelrnd simp3 wa simpl fveq2d simpr oveq12d cnveqd ovex cnvex
        w3a ovmpt2a syl2anc f1ocnvfv1 eqtrd coeq1d eqid cful ffthf1o mpt2eq3dva
        cfth cin fveq2 df-ov syl6eqr reseq2d mpt2mpt cfunc inss1 fullfunc sstri
        opeq12d ssbri ccat catcbas inss2 sseldd f1ocnv 3syl ffvelrnda f1ocnvfv2
        adantr weq mpbird fveq1d wi f1ocnvfv wb f1oeq3 3eqtr4d cofuval2 idfuval
        mpd mpbid df-br sylib catcco catcid catchom eleqtrrd issect2 f1ococnv2
        syl6eqss wfn fnmpt2i adantrr adantrl adantl simprl simprr eqcomd feq12d
        funcid sylan catidcl simp21 simp22 simp23 simp3l simp3r funcco oveq123d
        a1i catcocl isfuncd catccat 3adant1 coeq2d 3adant3 3adant2 3impb isinv
        mpbir2and ) AIJULZIUMZKULZNOLUNUOUVLUVNNOEUPUQZUNUOZUVNUVLONUVOUNUOZAUV
[encoded data, 5520 characters]
        VHWVLWVOWVPUBUAWVRWVQYSYBADEUVOUVLUVNLNOQUCWVPUAUBWVOUVJUVK $.
    $}

    catciso.i $e |- I = ( Iso ` C ) $.
    $( A functor is an isomorphism of categories if and only if it is full and
       faithful, and is a bijection on the objects.  Remark 3.28(2) in [Adamek]
       p. 34.  (Contributed by Mario Carneiro, 29-Jan-2017.) $)
    catciso $p |- ( ph -> ( F e. ( X I Y ) <->
      ( F e. ( ( X Full Y ) i^i ( X Faith Y ) ) /\
        ( 1st ` F ) : R -1-1-onto-> S ) ) ) $=
      ( cfv vx vy co wcel cful cfth cin c1st wf1o wa c2nd cop wrel wceq relfunc
      cfunc chom cinv cco ccid csect wbr w3a cdm eqid catccat syl isoval eleq2d
      ccat biimpa wfun adantr invfun funfvbrb mpbid isinv simpld issect catchom
      wb simp1d eleqtrd 1st2nd sylancr cv wral 1st2ndbr simprl simprr funcf2 wf
      simp2d funcf1 ffvelrnd simp3d catcco catcid 3eqtr3d fveq2d fveq1d catcbas
      ccofu cidfu cofu1 inss2 syl6eqss sseldd ad2antrr idfu1 oveq12d feq3d ccom
      cid cres oveqd cofu2nd idfu2nd simprd coeq1d eqtrd wss fcof1od ralrimivva
      isffth2 sylanbrc df-br sylib eqeltrd cofu1st idfu1st jca ccnv cmpt2 inss1
      fullfunc sstri sseldi eqeltrrd sylibr catcisolem eqbrtrd inviso1 impbida
      ) AGJKHUCZUDZGJKUEUCZJKUFUCZUGZUDZDEGUHTZUIZUJZAUUFUJZUUJUULUUNGUUKGUKTZU
      LZUUIUUNJKUPUCZUMZGUUQUDZGUUPUNZJKUOZUUNGJKCUQTZUCZUUQUUNGUVCUDZGJKCURTZU
      CZTZKJUVBUCZUDZUVGGJKULJCUSTZUCUCZJCUTTZTZUNZUUNGUVGJKCVATZUCVBZUVDUVIUVN
      VCUUNUVPUVGGKJUVOUCVBZUUNGUVGUVFVBZUVPUVQUJUUNGUVFVDZUDZUVRAUUFUVTAUUEUVS
      GABCHUVEJKMUVEVEZAFIUDZCVJUDZPCFILVFVGZQRSVHVIVKUUNUVFVLUVTUVRWAUUNBCUVEJ
      KMUWAAUWCUUFUWDVMZAJBUDZUUFQVMZAKBUDZUUFRVMZVNGUVFVOVGVPUUNBCUVOGUVGUVEJK
      MUWAUWEUWGUWIUVOVEZVQVPZVRUUNBCUVOUVJUVLGUVGUVBJKMUVBVEZUVJVEZUVLVEZUWJUW
      EUWGUWIVSVPZWBAUVCUUQUNUUFABCFUVBIJKLMPUWLQRVTVMWCZGUUQWDZWEUUNUUKUUOUUIV
      BZUUPUUIUDZUUNUUKUUOUUQVBZUAWFZUBWFZJUQTZUCZUXAUUKTZUXBUUKTZKUQTZUCZUXAUX
      BUUOUCZUIZUBDWGUADWGUWRUUNUURUUSUWTUVAUWPGUUQWHWEZUUNUXJUAUBDDUUNUXADUDZU
      XBDUDZUJZUJZUXDUXHUXIUXEUXFUVGUKTZUCZUXODJKUUKUUOUXCUXGUXAUXBNUXCVEZUXGVE
      ZUUNUWTUXNUXKVMZUUNUXLUXMWIZUUNUXLUXMWJZWKUXOUXHUXEUVGUHTZTZUXFUYCTZUXCUC
      ZUXQWLUXHUXDUXQWLUXOEKJUYCUXPUXGUXCUXEUXFOUXSUXRUUNUYCUXPKJUPUCZVBZUXNUUN
      UYGUMUVGUYGUDZUYHKJUOUUNUVGUVHUYGUUNUVDUVIUVNUWOWMAUVHUYGUNUUFABCFUVBIKJL
      MPUWLRQVTVMWCZUVGUYGWHWEZVMUXODEUXAUUKUXODEJKUUKUUONOUXTWNZUYAWOZUXODEUXB
      UUKUYLUYBWOZWKUXOUYFUXDUXQUXHUXOUYDUXAUYEUXBUXCUXOUXAUVGGXCUCZUHTZTUXAJXD
      TZUHTZTUYDUXAUXOUXAUYPUYRUXOUYOUYQUHUUNUYOUYQUNUXNUUNUVKUVMUYOUYQUUNUVDUV
      IUVNUWOWPUUNBCUVJFGUVGIJKJLMAUWBUUFPVMZUWMUWGUWIUWGUWPUYJWQAUVMUYQUNUUFAB
      CFUVLUYQIJLMUWNUYQVEZPQWRVMWSZVMZWTZXAUXODJKJGUVGUXANUUNUUSUXNUWPVMZUUNUY
      IUXNUYJVMZUYAXEUXODJUYQUXAUYTNAJVJUDZUUFUXNABVJJABFVJUGVJABCFILMPXBFVJXFX
      GZQXHZXIZUYAXJWSZUXOUXBUYPTUXBUYRTUYEUXBUXOUXBUYPUYRVUCXAUXODJKJGUVGUXBNV
      UDVUEUYBXEUXODJUYQUXBUYTNVUIUYBXJWSZXKXLVPUXOUXAUXBUYOUKTZUCUXAUXBUYQUKTZ
      UCUXQUXIXMXNUXDXOUXOVULVUMUXAUXBUXOUYOUYQUKVUBWTXPUXODJKJGUVGUXAUXBNVUDVU
      EUYAUYBXQUXODJUXCUYQUXAUXBUYTNVUIUXRUYAUYBXRWSUXOUXEUXFGUVGXCUCZUKTZUCZUX
      EUXFKXDTZUKTZUCUXIUXQXMZXNUXHXOUXOVUOVURUXEUXFUXOVUNVUQUKUUNVUNVUQUNUXNUU
      NGUVGKJULKUVJUCUCZKUVLTZVUNVUQUUNUVIUVDVUTVVAUNZUUNUVQUVIUVDVVBVCUUNUVPUV
      QUWKXSUUNBCUVOUVJUVLUVGGUVBKJMUWLUWMUWNUWJUWEUWIUWGVSVPWPUUNBCUVJFUVGGIKJ
      KLMUYSUWMUWIUWGUWIUYJUWPWQAVVAVUQUNUUFABCFUVLVUQIKLMUWNVUQVEZPRWRVMWSZVMW
      TXPUXOVUPUYDUYEUUOUCZUXQXMVUSUXOEKJKUVGGUXEUXFOVUEVUDUYMUYNXQUXOVVEUXIUXQ
      UXOUYDUXAUYEUXBUUOVUJVUKXKXTYAUXOEKUXGVUQUXEUXFVVCOUXOBVJKABVJYBUUFUXNVUG
      XIAUWHUUFUXNRXIXHUXSUYMUYNXRWSYCYDUAUBDJKUUKUUOUXCUXGNUXRUXSYEYFUUKUUOUUI
      YGZYHYIUUNDEUUKUYCUUNDEJKUUKUUONOUXKWNUUNEDKJUYCUXPONUYKWNUUNUYPUYRUYCUUK
      XMXNDXOUUNUYOUYQUHVUAWTUUNDJKJGUVGNUWPUYJYJUUNDJUYQUYTNAVUFUUFVUHVMYKWSUU
      NVUNUHTVUQUHTUUKUYCXMXNEXOUUNVUNVUQUHVVDWTUUNEKJKUVGGOUYJUWPYJUUNEKVUQVVC
      OAKVJUDUUFABVJKVUGRXHVMYKWSYCYLAUUMUJZBCGUUKYMZUAUBEEUXAVVHTUXBVVHTUUOUCY
      MYNZULZHUVEJKMUWAAUWCUUMUWDVMAUWFUUMQVMZAUWHUUMRVMZSVVGGUUPVVJUVFVVGUURUU
      SUUTUVAVVGUUIUUQGUUIUUGUUQUUGUUHYOJKYPYQAUUJUULWIZYRUWQWEZVVGUAUBBCDEFUUK
      UUOVVIUVEIJKLMNOAUWBUUMPVMVVKVVLUWAVVIVEVVGUWSUWRVVGGUUPUUIVVNVVMYSVVFYTA
      UUJUULWJUUAUUBUUCUUD $.
  $}

  ${
    $d x y ph $.  $d x y X $.
    catcoppccl.c $e |- C = ( CatCat ` U ) $.
    catcoppccl.b $e |- B = ( Base ` C ) $.
    catcoppccl.o $e |- O = ( oppCat ` X ) $.
    catcoppccl.1 $e |- ( ph -> U e. WUni ) $.
    catcoppccl.2 $e |- ( ph -> _om e. U ) $.
    catcoppccl.3 $e |- ( ph -> X e. B ) $.
    $( The category of categories for a weak universe is closed under taking
       opposites.  (Contributed by Mario Carneiro, 12-Jan-2017.) $)
    catcoppccl $p |- ( ph -> O e. B ) $=
      ( vx vy ccat cnx cfv wcel wunstr wss cin chom ctpos cop co cco cbs cxp cv
      csts c2nd c1st cmpt2 wceq eqid oppcval syl cwun catcbas eleqtrd sseldi c1
      inss1 c4 cdc df-hom wunndx wuntpos wunop wunsets df-cco crn cuni cdm ccnv
      c5 c0 csn cun cpw df-base wunxp wunrn wununi wundm wun0 wunsn wunun wunpw
      wuncnv wral wf tposssxp ovssunirn dmss ax-mp cnvss unss1 mp2b rnss xpss12
      mp2an sstri wb elpw2g mpbiri fmpt2 sylib wunf eqeltrd inss2 oppccat elind
      ralrimivw eleqtrrd ) AEDOUAZBADOEAEFPUBQZFUBQZUCZUDZUJUEZPUFQZMNFUGQZYCUH
      ZYCNUIMUIZUKQUDZYEULQZFUFQZUEZUCZUMZUDZUJUEZDAFBREYMUNLNMYCFYHXREBYCUOXRU
      OYHUOIUPUQAYLYADJAXTFDJAXPDFDOVCAFBXPLABCDURGHJUSZUTZVAZAXQXSDJAPDUBVBVDV
      EZVFJADJKVGZSAXRDJAFDUBYQVFJYPSVHVIVJAYBYKDJAPDUFVBVPVEZVKJYRSAYDYCUHZYHV
      LZVMZVNZVOZVQVRZVSZUUBVLZUHZVTZDYKJAYDYCDJAYCYCDJAFDUGVBWAJYPSZUUJWBUUJWB
      AUUHDJAUUFUUGDJAUUDUUEDJAUUCDJAUUBDJAUUADJAYHDJAFDUFYSVKJYPSWCWDZWEWJAVQD
      JADJWFWGWHAUUBDJUUKWCWBZWIAYJUUIRZNYCWKZMYDWKYTUUIYKWLAUUNMYDAUUMNYCAUUMY
      JUUHTZYJYIVNZVOZUUEVSZYIVLZUHZUUHYIWMUURUUFTZUUSUUGTZUUTUUHTUUPUUCTZUUQUU
      DTUVAYIUUBTZUVCYHYFYGWNZYIUUBWOWPUUPUUCWQUUQUUDUUEWRWSUVDUVBUVEYIUUBWTWPU
      URUUFUUSUUGXAXBXCAUUHDRUUMUUOXDUULYJUUHDXEUQXFXNXNMNYDYCYJUUIYKYKUOXGXHXI
      VIVJXJAFOREORAXPOFDOXKYOVAFEIXLUQXMYNXO $.
  $}

  ${
    $d a b f g h v x ph $.  $d a b f g h v x X $.  $d a b f g h v x Y $.
    catcfuccl.c $e |- C = ( CatCat ` U ) $.
    catcfuccl.b $e |- B = ( Base ` C ) $.
    catcfuccl.o $e |- Q = ( X FuncCat Y ) $.
    catcfuccl.u $e |- ( ph -> U e. WUni ) $.
    catcfuccl.1 $e |- ( ph -> _om e. U ) $.
    catcfuccl.x $e |- ( ph -> X e. B ) $.
    catcfuccl.y $e |- ( ph -> Y e. B ) $.
    $( The category of categories for a weak universe is closed under the
       functor category operation.  (Contributed by Mario Carneiro,
       12-Jan-2017.) $)
    catcfuccl $p |- ( ph -> Q e. B ) $=
      ( cfv co cv eqid wcel cvv vv vh vf vg vb va vx ccat cin cnx cbs cfunc cop
      chom cnat cco cxp c1st c2nd cmpt cmpt2 csb ctp inss2 cwun catcbas eleqtrd
      sseldi eqidd fucval c1 df-base wunndx wunstr inss1 wunop c4 df-hom wunnat
      wunfunc cdc c5 df-cco crn cuni cmap wunxp wunrn wununi wunpw wunmap wunpm
      cpw cpm wral fvex wsbc wss ovex rnex uniex xpex ovssunirn rnss uniss mp2b
      wf sstri elpw mpbir a1i fmpti pwex elmap rgen2w fmpt2 xpss12 mp2an elpm2r
      mpbi mp4an sbcth sbcel1g mpbid ax-mp wuntp eqeltrd fuccat elind eleqtrrd
      wunf ) ADEUHUIZBAEUHDADUJUKOZFGULPZUMZUJUNOZFGUOPZUMZUJUPOZUAUBYNYNUQZYNU
      CUAQZUROZUDUUAUSOZUEUFUDQZUBQZYQPZUCQZUUDYQPZUGFUKOZUGQZUEQOZUUJUFQOZUUJU
      UGUROOUUJUUDUROOUMZUUJUUEUROOZGUPOZPZPZUTZVAZVBZVBZVAZUMZVCEAUGUAUUIYNFGD
      UVBUUOUCUDUBYQUFUEJYNRYQRUUIRUUORAYLUHFEUHVDZAFBYLMABCEVEHIKVFZVGZVHZAYLU
      HGUVDAGBYLNUVEVGZVHZAUVBVIVJAYOYRUVCEKAYMYNEKAUJEUKVKVLKAEKLVMZVNAFGEKAYL
      EFEUHVOZUVFVHZAYLEGUVKUVHVHZVTZVPAYPYQEKAUJEUNVKVQWAVRKUVJVNAFGEKUVLUVMVS
      ZVPAYSUVBEKAUJEUPVKWBWAZWCKUVJVNAYTYNUQZUUOWDZWEZWDZWEZWMZUUIWFPZYQWDZWEZ
      UWEUQZWNPZEUVBKAYTYNEKAYNYNEKUVNUVNWGUVNWGAUWCUWFEKAUWBUUIEKAUWAEKAUVTEKA
      UVSEKAUVREKAUUOEKAGEUPUVPWCKUVMVNWHWIWHWIWJAFEUKVKVLKUVLVNWKAUWEUWEEKAUWD
      EKAYQEKUVOWHWIZUWHWGWLUVQUWGUVBXGZAUVAUWGSZUBYNWOUAYTWOUWIUWJUAUBYTYNUUBT
      SZUWJUUAURWPUWKUUTUWGSZUCUUBWQUWJUWLUCUUBTUUCTSZUWLUUAUSWPUWMUUSUWGSZUDUU
      CWQUWLUWNUDUUCTUWCTSUWFTSUUFUUHUQZUWCUUSXGZUWOUWFWRZUWNUWBUUIWFWSUWEUWEUW
      DYQFGUOWSWTXAZUWRXBUURUWCSZUFUUHWOUEUUFWOUWPUWSUEUFUUFUUHUWSUUIUWBUURXGUG
      UUIUWBUUQUURUURRUUQUWBSZUUJUUISUWTUUQUWAWRUUQUUPWDZWEZUWAUUPUUKUULXCUUPUV
      SWRUXAUVTWRUXBUWAWRUUOUUMUUNXCUUPUVSXDUXAUVTXEXFXHUUQUWAUUKUULUUPWSXIXJXK
      XLUWBUUIUURUWAUVTUVSUVRUUOGUPWPWTXAWTXAXMFUKWPXNXJXOUEUFUUFUUHUURUWCUUSUU
      SRXPXTUUFUWEWRUUHUWEWRUWQYQUUDUUEXCYQUUGUUDXCUUFUWEUUHUWEXQXRUWCUWFUWOUUS
      TTXSYAYBUDUUCUUSUWGTYCYDYEYBUCUUBUUTUWGTYCYDYEXOUAUBYTYNUVAUWGUVBUVBRXPXT
      XKYKVPYFYGAFGDJUVGUVIYHYIUVEYJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The category of extensible structures
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The "category of extensible structures" ` ExtStrCat ` is the category of all
sets in a universe regarded as extensible structures and the functions between
their base sets, see ~ df-estrc .

Since we consider only "small categories" (i.e. categories whose objects and
morphisms are actually sets and not proper classes), the objects of the
category (i.e. the base set of the category regarded as extensible structure)
are all sets in a universe ` u `, which can be an arbitrary set, see
~ estrcbas .  Generally, we will take ` u ` to be a weak universe or
Grothendieck universe, because these sets have closure properties as good as
the real thing.  If a set is not a real extensible structure, it is regarded as
extensible structure with an empty base set.  Because of ~ bascnvimaeqv we do
not need to restrict the universe to sets which "have a base".  The morphisms
(or arrows) between two objects, i.e. sets from the universe, are the mappings
between their base sets, see ~ estrchomfval , whereas the composition
is the ordinary composition of functions, see ~ estrccofval and ~ estrcco .

It is shown that the category of extensible structures ` ExtStrCat ` is
actually a category, see ~ estrccat with the identity function as identity
arrow, see ~ estrcid .

In the following, some background information about the category of extensible
structures is given, taken from the discussion in Github issue #1507
(see ~ https://github.com/metamath/set.mm/issues/1507 ):

At the beginning, the categories of non-unital rings ` RngCat ` and unital
rings ` RingCat ` were defined separately (as unordered triples of ordereds
pairs, see ~ dfrngc2 and ~ dfringc2 , but with special compositions).  With
this definitions, however, theorem ~ rngcresringcat could not be proven,
because the compositions were not compatible.  Unfortunately, no precise
definition of the composition within the category of rings could be found in
the literature.  In section 3.3 EXAMPLES, paragraph (2) of [Adamek] p. 22,
however, a definition is given for "Grp", the category of groups:  "The
following constructs; i.e., categories of structured sets and
structure-preserving functions between them (o will always be the _composition
of functions_ and id_A will always be the identity function on A): ... (b) Grp
with objects all groups and morphisms all homomorphisms between them."
Therefore, the compositions should have been harmonized by using the
composition of the category of sets ` SetCat `, see ~ df-setc , which is the
ordinary composition of functions.  Analogously, categories of Rngs (and Rings)
could have been shown to be restrictions resp. subcategories of the category of
sets.

BJ and MC observed, however, that "... ` |``cat ` [cannot be used] to restrict
the category Set to Ring, because the homs are different.  Although Ring is a
concrete category, a hom between rings R and S is a function
(Base``R) --> (Base``S) with certain properties, unlike in Set where it is a
function R --> S.".  Therefore, MC suggested that "we could have an alternative
version of the Set category consisting of extensible structures (in U) together
with (A Hom B) := (Base``A) --> (Base``B).  This category is not isomorphic to
Set because different extensible structures can have the same base set, but it
is equivalent to Set; the relevant functors are (U``A) = (Base``A), the
forgetful functor, and (F``A) = { <. (Base``ndx), A >. }".  This led to the
current definition of ` ExtStrCat `, see ~ df-estrc .  The claimed equivalence
is proven by ~ equivestrcsetc .  Having a definition of a category of
extensible structures, the categories of non-unital and unital rings can be
defined as appropriate restrictions of the category of extensible structures,
see ~ df-rngc and ~ df-ringc .

In the same way, more subcategories could be provided, resulting in the
following "inclusion chain" by proving theorems like ~ rngcresringcat ,
although the morphisms of the shown categories are different ( "->" means "is
subcategory of"):

` RingCat ` -> ` RngCat ` -> GrpCat -> MndCat -> MgmCat -> ` ExtStrCat `

According to MC, "If we generalize from subcategories to embeddings, then we
can even fit ` SetCat ` into the chain, equivalent to ` ExtStrCat ` at the
end."  As mentioned before, the equivalence of ` SetCat ` and ` ExtStrCat ` is
proven by ~ equivestrcsetc .  Furthermore, it can be shown that ` SetCat ` is
_embedded_ into ` ExtStrCat `, see ~ embedsetcestrc .

Remark: ~ equivestrcsetc as well as ~ embedsetcestrc require that the index of
the base set extractor is contained within the considered universe.  This is
ensured by assuming that the natural numbers are contained within the
considered universe: ` _om e. U ` (see ~ wunndx ), but it would be currently
sufficient to assume that ` 1 e. U `, because the index value of the base set
extractor is hard-coded as ` 1 `, see ~ basendx .

Some people, however, feel uncomfortable to say that a ring "is a" group
(without mentioning the restriction to the addition, which is usually found in
the literature, e.g. the definition of a ring in [Herstein] p. 126: "... Note
that so far all we have said is that R is an abelian group under +.".  The main
argument against a ring being a group is the number of components/slots:
usually, a group consists of (exactly!) two components (a base set and an
operation), whereas a ring consists of (exactly!) three components (a base set
and two operations). According to this "definition", a ring cannot be a group.

This is also an (unfortunately informal) argument for the category of rings not
being a subcategory of the category of abelian groups in "Categories and
Functors", Bodo Pareigis, Academic Press, New York, London, 1970: "A category A
is called a subcategory of a category B if Ob(A) C_ Ob(B) and
Mor_A(X,Y) C_ Mor_B(X,Y) for all X,Y e. Ob(A), if the composition of morphisms
in A coincides with the composition of the same morphisms in B and if the
identity of an object in A is also the identity of the same object viewed as an
object in B. Then there is a forgetful functor from A to B.  We note that Ri
[the category of rings] _is not a subcategory_ of Ab [the category of abelian
groups]. In fact, Ob(Ri) C_ Ob(Ab) is not true, although every ring can also be
regarded as an abelian group.  The corresponding abelian groups of two rings
may coincide even if the rings do not coincide. The multiplication may be
defined differently.".

As long as we define Rings, Groups, etc. in a way that ` A e. Ring -> `
` A e. Grp ` is valid (see ~ ringgrp ) the corresponding categories are in a
subcategory relation. If we do not want Rings to be Groups (then the category
of rings would not be a subcategory of the category of groups, as observed by
Pareigis), we would have to change the definitions of Magmas, Monoids, Groups,
Rings etc. to restrict them to have exactly the required number of slots, so
that the following holds

` g e. Grp -> g Struct <. ( Base `` ndx ) , ( +g `` ndx ) >. `

` r e. Ring -> r Struct <. ( Base `` ndx ) , ( +g `` ndx ) , ( .r `` ndx ) >. `
$)

  ${
    $d F x y $.
    $( The inverse images of the universal class ` _V ` under functions on the
       universal class ` _V ` are the universal class ` _V ` itself.  (Proposed
       by Mario Carneiro, 7-Mar-2020.)  (Contributed by AV, 7-Mar-2020.) $)
    fncnvimaeqv $p |- ( F Fn _V -> ( `' F " _V ) = _V ) $=
      ( vy vx cvv wfn ccnv cima cv cfv wcel crab fncnvima2 fvexd biantrud fveq2
      wa weq eleq1d elrab syl6rbbr eqrdv eqtrd ) ADEZAFDGBHZAIZDJZBDKZDBDDALUCC
      UGDUCCHZDJZUIUHAIZDJZPUHUGJUCUKUIUCUHAMNUFUKBUHDBCQUEUJDUDUHAORSTUAUB $.
  $}

  $( The inverse image of the universal class ` _V ` under the base function is
     the universal class ` _V ` itself.  (Proposed by Mario Carneiro,
     7-Mar-2020.)  (Contributed by AV, 7-Mar-2020.) $)
  bascnvimaeqv $p |- ( `' Base " _V ) = _V $=
    ( cbs cvv wfn ccnv cima wceq c1 df-base slotfn fncnvimaeqv ax-mp ) ABCADBEB
    FAGHIAJK $.

  $c ExtStrCat $.

  $( Extend class notation to include the category ExtStr. $)
  cestrc $a class ExtStrCat $.

  ${
    $d f g u v x y z $.
    $( Definition of the category ExtStr of extensible structures.  This is the
       category whose objects are all sets in a universe ` u ` regarded as
       extensible structures and whose morphisms are the functions between
       their base sets.  If a set is not a real extensible structure, it is
       regarded as extensible structure with an empty base set.  Because of
       ~ bascnvimaeqv we do not need to restrict the universe to sets which
       "have a base".  Generally, we will take ` u ` to be a weak universe or
       Grothendieck universe, because these sets have closure properties as
       good as the real thing.  (Proposed by Mario Carneiro, 5-Mar-2020.)
       (Contributed by AV, 7-Mar-2020.) $)
    df-estrc $a |- ExtStrCat = ( u e. _V |->
         { <. ( Base ` ndx ) , u >. ,
           <. ( Hom ` ndx ) ,
              ( x e. u , y e. u |-> ( ( Base ` y ) ^m ( Base ` x ) ) ) >. ,
           <. ( comp ` ndx ) , ( v e. ( u X. u ) , z e. u
                |-> ( g e. ( ( Base ` z ) ^m ( Base ` ( 2nd ` v ) ) ) ,
                      f e. ( ( Base ` ( 2nd ` v ) ) ^m ( Base ` ( 1st ` v ) ) )
                      |-> ( g o. f ) ) ) >. } ) $.

    $d u v x y z ph $.  $d u v x y z U $.  $d u .x. $.  $d u H $.
    estrcval.c $e |- C = ( ExtStrCat ` U ) $.
    estrcval.u $e |- ( ph -> U e. V ) $.
    estrcval.h $e |- ( ph -> H = ( x e. U , y e. U
                                   |-> ( ( Base ` y ) ^m ( Base ` x ) ) ) ) $.
    estrcval.o $e |- ( ph -> .x. = ( v e. ( U X. U ) , z e. U |->
                    ( g e. ( ( Base ` z ) ^m ( Base ` ( 2nd ` v ) ) ) ,
                      f e. ( ( Base ` ( 2nd ` v ) ) ^m ( Base ` ( 1st ` v ) ) )
                      |-> ( g o. f ) ) ) ) $.
    $( Value of the category of extensible structures (in a universe).
       (Contributed by AV, 7-Mar-2020.) $)
    estrcval $p |- ( ph -> C = { <. ( Base ` ndx ) , U >. ,
                                 <. ( Hom ` ndx ) , H >. ,
                                 <. ( comp ` ndx ) , .x. >. } ) $=
      ( cfv cbs cop cv vu cestrc cnx chom cco ctp cmap cmpt2 cxp c2nd c1st ccom
      co cvv cmpt wceq df-estrc wa simpr opeq2d eqidd mpt2eq123dv adantr eqtr4d
      a1i sqxpeqd tpeq123d wcel elex syl tpex fvmptd syl5eq ) AFHUBQUCRQZHSZUCU
      DQZKSZUCUEQZGSZUFZMAUAHVNUATZSZVPBCWAWACTRQBTRQUGUMZUHZSZVREDWAWAUIZWAJID
      TRQETZUJQRQZUGUMWHWGUKQRQUGUMJTITULUHZUHZSZUFZVTUNUBUNUBUAUNWLUOUPABCDEUA
      IJUQVEAWAHUPZURZWBVOWEVQWKVSWNWAHVNAWMUSZUTWNWDKVPWNWDBCHHWCUHZKWNBCWAWAW
      CHHWCWOWOWNWCVAVBAKWPUPWMOVCVDUTWNWJGVRWNWJEDHHUIZHWIUHZGWNEDWFWAWIWQHWIW
      NWAHWOVFWOWNWIVAVBAGWRUPWMPVCVDUTVGAHLVHHUNVHNHLVIVJVTUNVHAVOVQVSVKVEVLVM
      $.
  $}

  ${
    $d f g v x y z $.  $d v x y z ph $.  $d v x y z U $.
    estrcbas.c $e |- C = ( ExtStrCat ` U ) $.
    estrcbas.u $e |- ( ph -> U e. V ) $.
    $( Set of objects of the category of extensible structures (in a universe).
       (Contributed by AV, 7-Mar-2020.) $)
    estrcbas $p |- ( ph -> U = ( Base ` C ) ) $=
      ( vx vy vv vz vg vf cnx cbs cfv cop cv cmap co cmpt2 chom cco cxp c2nd c1
      c1st ccom ctp wcel wceq c5 cdc catstr baseid snsstp1 strfv eqidd estrcval
      syl fveq2d eqtr4d ) ACMNOCPZMUAOGHCCHQNOGQNORSTZPZMUBOIJCCUCCKLJQNOIQZUDO
      NOZRSVFVEUFONORSKQLQUGTTZPZUHZNOZBNOACDUICVJUJFCVINDUEUEUKULPVGCVCUMUNVBV
      DVHUOUPUSABVINAGHJIBVGCLKVCDEFAVCUQAVGUQURUTVA $.

    ${
      estrchomfval.h $e |- H = ( Hom ` C ) $.
      $( Set of morphisms ("arrows") of the category of extensible structures
         (in a universe).  (Contributed by AV, 7-Mar-2020.) $)
      estrchomfval $p |- ( ph -> H = ( x e. U , y e. U
                                    |-> ( ( Base ` y ) ^m ( Base ` x ) ) ) ) $=
        ( vv vz vg vf cv cbs cfv cmap co cop cnx chom cco cxp c2nd c1st ctp cvv
        cmpt2 ccom c1 c5 cdc eqidd estrcval homid snsstp2 wcel mpt2exga syl2anc
        catstr strfv3 ) AFBCEECOPQBOPQRSZUIZUAPQETZUAUBQVDTZUAUCQKLEEUDEMNLOPQK
        OZUEQPQZRSVHVGUFQPQRSMONOUJUIUIZTZUGDUBUHUKUKULUMTABCLKDVIENMVDGHIAVDUN
        AVIUNUOVIEVDVAUPVEVFVJUQAEGURZVKVDUHURIIBCEEVCGGUSUTJVB $.

      $d x y A $.  $d x y B $.  $d x y X $.  $d x y Y $.
      estrchom.x $e |- ( ph -> X e. U ) $.
      estrchom.y $e |- ( ph -> Y e. U ) $.
      estrchom.a $e |- A = ( Base ` X ) $.
      estrchom.b $e |- B = ( Base ` Y ) $.
      $( The morphisms between extensible structures are mappings between their
         base sets.  (Contributed by AV, 7-Mar-2020.) $)
      estrchom $p |- ( ph -> ( X H Y ) = ( B ^m A ) ) $=
        ( vx cbs cfv cmap vy cv co cvv estrchomfval wa fveq2 oveqan12rd oveq12i
        wceq syl6eqr adantl ovexd ovmpt2d ) AQUAHIEEUAUBZRSZQUBZRSZTUCZCBTUCZFU
        DAQUADEFGJKLUEUQHUJZUOIUJZUFZUSUTUJAVCUSIRSZHRSZTUCUTVBVAUPVDURVETUOIRU
        GUQHRUGUHCVDBVETPOUIUKULMNACBTUMUN $.

      $( A morphism between extensible structures is a function between their
         base sets.  (Contributed by AV, 7-Mar-2020.) $)
      elestrchom $p |- ( ph -> ( F e. ( X H Y ) <-> F : A --> B ) ) $=
        ( wcel cvv cbs co cmap wf estrchom eleq2d wb cfv eqeltri elmapg syl2anc
        fvex a1i bitrd ) AFIJGUAZRFCBUBUAZRZBCFUCZAUNUOFABCDEGHIJKLMNOPQUDUEACS
        RZBSRZUPUQUFURACJTUGSQJTUKUHULUSABITUGSPITUKUHULCBFSSUIUJUM $.
    $}

    ${
      estrcco.o $e |- .x. = ( comp ` C ) $.
      $( Composition in the category of extensible structures.  (Contributed by
         AV, 7-Mar-2020.) $)
      estrccofval $p |- ( ph -> .x. = ( v e. ( U X. U ) , z e. U
          |-> ( g e. ( ( Base ` z ) ^m ( Base ` ( 2nd ` v ) ) ) ,
                f e. ( ( Base ` ( 2nd ` v ) ) ^m ( Base ` ( 1st ` v ) ) )
                |-> ( g o. f ) ) ) ) $=
        ( vx cv cbs cfv cnx cop cvv wcel vy cxp c2nd cmap co c1st ccom chom cco
        cmpt2 ctp c1 c5 eqid estrchomfval eqidd estrcval catstr snsstp3 sqxpexg
        cdc ccoid syl mpt2exga syl2anc strfv3 ) AECBFFUBZFHGBNOPCNZUCPOPZUDUEVI
        VHUFPOPUDUEHNGNUGUJZUJZQOPFRZQUHPDUHPZRZQUIPVKRZUKDUISULULUMVARAMUABCDV
        KFGHVMIJKAMUADFVMIJKVMUNUOAVKUPUQVKFVMURVBVLVNVOUSAVGSTZFITZVKSTAVQVPKF
        IUTVCKCBVGFVJSIVDVELVF $.

      $d f g F $.  $d f g G $.  $d f g v z X $.  $d f g v z Y $.
      $d f g v z Z $.  $d f g ph $.
      estrcco.x $e |- ( ph -> X e. U ) $.
      estrcco.y $e |- ( ph -> Y e. U ) $.
      estrcco.z $e |- ( ph -> Z e. U ) $.
      estrcco.a $e |- A = ( Base ` X ) $.
      estrcco.b $e |- B = ( Base ` Y ) $.
      estrcco.d $e |- D = ( Base ` Z ) $.
      estrcco.f $e |- ( ph -> F : A --> B ) $.
      estrcco.g $e |- ( ph -> G : B --> D ) $.
      $( Composition in the category of extensible structures.  (Contributed by
         AV, 7-Mar-2020.) $)
      estrcco $p |- ( ph -> ( G ( <. X , Y >. .x. Z ) F ) = ( G o. F ) ) $=
        ( vg vf vv vz cbs cfv cmap co cv ccom cop cvv cxp c2nd c1st estrccofval
        cmpt2 wceq fveq2 adantl simprl fveq2d wcel op2ndg syl2anc eqtrd oveq12d
        adantr op1stg eqidd mpt2eq123dv opelxpi ovex mpt2ex ovmpt2d simpl simpr
        wa a1i coeq12d wf eqcomd feq23d mpbird wb fvexd elmapg coexg ) AUEUFIHM
        UIUJZLUIUJZUKULZWNKUIUJZUKULZUEUMZUFUMZUNZIHUNZKLUOZMFULUPAUGUHXBMGGUQZ
        GUEUFUHUMZUIUJZUGUMZURUJZUIUJZUKULZXHXFUSUJZUIUJZUKULZWTVAUEUFWOWQWTVAZ
        FUPAUHUGDFGUFUEJNOPUTAXFXBVBZXDMVBZWBZWBZUEUFXIXLWTWOWQWTXQXEWMXHWNUKXP
        XEWMVBZAXOXRXNXDMUIVCVDVDXQXGLUIXQXGXBURUJZLXQXFXBURAXNXOVEZVFAXSLVBZXP
        AKGVGZLGVGZYAQRKLGGVHVIVLVJVFZVKXQXHWNXKWPUKYDXQXKXBUSUJZUIUJZWPXQXJYEU
        IXQXFXBUSXTVFVFAYFWPVBXPAYEKUIAYBYCYEKVBQRKLGGVMVIVFVLVJVKXQWTVNVOAYBYC
        XBXCVGQRKLGGVPVISXMUPVGAUEUFWOWQWTWMWNUKVQWNWPUKVQVRWCVSWRIVBZWSHVBZWBZ
        WTXAVBAYIWRIWSHYGYHVTYGYHWAWDVDAIWOVGZWNWMIWEZAYKCEIWEUDAWNWMCEIACWNCWN
        VBAUAWCWFZAEWMEWMVBAUBWCWFWGWHAWMUPVGWNUPVGZYJYKWIAMUIWJALUIWJZWMWNIUPU
        PWKVIWHZAHWQVGZWPWNHWEZAYQBCHWEUCAWPWNBCHABWPBWPVBATWCWFYLWGWHAYMWPUPVG
        YPYQWIYNAKUIWJWNWPHUPUPWKVIWHZAYJYPXAUPVGYOYRIHWOWQWLVIVS $.
    $}
  $}

  ${
    estrcbasbas.c $e |- C = ( ExtStrCat ` U ) $.
    estrcbasbas.b $e |- B = ( Base ` C ) $.
    estrcbasbas.u $e |- ( ph -> U e. WUni ) $.
    $( An element of the base set of the base set of the category of extensible
       structures (i.e. the base set of an extensible structure) belongs to the
       considered weak universe.  (Contributed by AV, 22-Mar-2020.) $)
    estrcbasbas $p |- ( ( ph /\ E e. B ) -> ( Base ` E ) e. U ) $=
      ( wcel cbs cfv cwun estrcbas syl6reqr eleq2d wi wa c1 df-base simpl simpr
      wunstr ex syl sylbid imp ) AEBIZEJKDIZAUGEDIZUHABDEADCJKBACDLFHMGNOADLIZU
      IUHPHUJUIUHUJUIQEDJRSUJUITUJUIUAUBUCUDUEUF $.
  $}

  ${
    $d f g h w x y z C $.  $d f g h w x y z U $.  $d f g h w x y z V $.
    estrccat.c $e |- C = ( ExtStrCat ` U ) $.
    $( Lemma for ~ estrccat .  (Contributed by AV, 8-Mar-2020.) $)
    estrccatid $p |- ( U e. V -> ( C e. Cat
                   /\ ( Id ` C ) = ( x e. U |-> ( _I |` ( Base ` x ) ) ) ) ) $=
      ( vw wcel cv wa cfv co cbs cvv wf eqid elestrchom cop ccom mpbid estrcco
      vy vz vf vg vh chom w3a cco cid cres id estrcbas eqidd cestrc eqeltri a1i
      fvex biid wf1o f1oi f1of simpl simpr mpbird simpr1l simpr1r simpr31 fcoi2
      mp1i wceq syl eqtrd simpr2l simpr32 fcoi1 syl2anc eqeltrd simpr2r simpr33
      fco coass 3eqtr4a oveq1d oveq2d 3eqtr4d iscatd2 ) CDGZFHZCGZAHZCGZIZUAHZC
      GZUBHZCGZIZUCHZWHWJBUFJZKGZUDHZWJWMWSKGZUEHZWMWOWSKGZUGZUGZFAUAUBCBBUHJZU
      IWJLJZUJZUCUDUEWSMWGBCDEWGUKULWGWSUMWGXGUMBMGWGBCUNJMECUNUQUOUPXFURWGWKIZ
      XIWJWJWSKGXHXHXINZXHXHXIUSZXKXJXHUTZXHXHXIVAZVIXJXHXHBCXIWSDWJWJEWGWKVBWS
      OZWGWKVCZXPXHOZXQPVDWGXFIZXIWRWHWJQZWJXGKKXIWRRZWRXRWHLJZXHBXHXGCWRXIDWHW
      JWJEWGXFVBZXGOZWIWKWQXEWGVEZWIWKWQXEWGVFZYEYAOZXQXQXRWTYAXHWRNZWTXBXDWLWQ
      WGVGXRYAXHBCWRWSDWHWJEYBXOYDYEYFXQPSZXLXKXRXMXNVIZTXRYGXTWRVJYHYAXHWRVHVK
      VLXRXAXIWJWJQWMXGKKXAXIRZXAXRXHXHBWMLJZXGCXIXADWJWJWMEYBYCYEYEWNWPWLXEWGV
      MZXQXQYKOZYIXRXBXHYKXANZWTXBXDWLWQWGVNXRXHYKBCXAWSDWJWMEYBXOYEYLXQYMPSZTX
      RYNYJXAVJYOXHYKXAVOVKVLXRXAWRXSWMXGKKZXAWRRZWHWMWSKZXRYAXHBYKXGCWRXADWHWJ
      WMEYBYCYDYEYLYFXQYMYHYOTZXRYQYRGYAYKYQNZXRYNYGYTYOYHYAXHYKXAWRVTVPZXRYAYK
      BCYQWSDWHWMEYBXOYDYLYFYMPVDVQXRXCXARZWRXSWOXGKZKZXCYQWHWMQWOXGKZKZXCXAWJW
      MQWOXGKKZWRUUCKXCYPUUEKXRUUBWRRXCYQRUUDUUFXCXAWRWAXRYAXHBWOLJZXGCWRUUBDWH
      WJWOEYBYCYDYEWNWPWLXEWGVRZYFXQUUHOZYHXRYKUUHXCNZYNXHUUHUUBNXRXDUUKWTXBXDW
      LWQWGVSXRYKUUHBCXCWSDWMWOEYBXOYLUUIYMUUJPSZYOXHYKUUHXCXAVTVPTXRYAYKBUUHXG
      CYQXCDWHWMWOEYBYCYDYLUUIYFYMUUJUUAUULTWBXRUUGUUBWRUUCXRXHYKBUUHXGCXAXCDWJ
      WMWOEYBYCYEYLUUIXQYMUUJYOUULTWCXRYPYQXCUUEYSWDWEWF $.

    $( The category of extensible structures is a category.  (Contributed by
       AV, 8-Mar-2020.) $)
    estrccat $p |- ( U e. V -> C e. Cat ) $=
      ( vx wcel ccat ccid cfv cid cv cbs cres cmpt wceq estrccatid simpld ) BCF
      AGFAHIEBJEKLIMNOEABCDPQ $.

    $d x X $.  $d x ph $.
    estrcid.o $e |- .1. = ( Id ` C ) $.
    estrcid.u $e |- ( ph -> U e. V ) $.
    estrcid.x $e |- ( ph -> X e. U ) $.
    $( The identity arrow in the category of extensible structures is the
       identity function of base sets.  (Contributed by AV, 8-Mar-2020.) $)
    estrcid $p |- ( ph -> ( .1. ` X ) = ( _I |` ( Base ` X ) ) ) $=
      ( vx cid cv cbs cfv cres cvv ccid wcel wceq cmpt wa estrccatid syl simprd
      ccat syl5eq fveq2 reseq2d adantl fvexd resiexd fvmptd ) AKFLKMZNOZPZLFNOZ
      PZCDQADBROZKCUPUAZHABUFSZUSUTTZACESVAVBUBIKBCEGUCUDUEUGUNFTZUPURTAVCUOUQL
      UNFNUHUIUJJAUQQAFNUKULUM $.
  $}

  ${
    $d U x y $.  $d ph x y $.
    estrchomfn.c $e |- C = ( ExtStrCat ` U ) $.
    estrchomfn.u $e |- ( ph -> U e. V ) $.
    estrchomfn.h $e |- H = ( Hom ` C ) $.
    $( The Hom-set operation in the category of extensible structures (in a
       universe) is a function.  (Contributed by AV, 8-Mar-2020.) $)
    estrchomfn $p |- ( ph -> H Fn ( U X. U ) ) $=
      ( vx vy cxp wfn cv cbs cfv cmap co cmpt2 eqid ovex fnmpt2i fneq1d mpbiri
      estrchomfval ) ADCCKZLIJCCJMNOZIMNOZPQZRZUELIJCCUHUIUISUFUGPTUAAUEDUIAIJB
      CDEFGHUDUBUC $.

    $( The functionalized Hom-set operation equals the Hom-set operation in the
       category of extensible structures (in a universe).  (Contributed by AV,
       8-Mar-2020.) $)
    estrchomfeqhom $p |- ( ph -> ( Homf ` C ) = H ) $=
      ( cbs cfv cxp chomf wceq estrchomfn estrcbas eqcomd sqxpeqd fneq2d eqid
      wfn mpbird fnhomeqhomf syl ) ADBIJZUDKZTZBLJZDMAUFDCCKZTABCDEFGHNAUEUHDAU
      DCACUDABCEFGOPQRUAUDBUGDUGSUDSHUBUC $.
  $}

  ${
    estrres.c $e |- ( ph -> C = { <. ( Base ` ndx ) , B >. ,
                                 <. ( Hom ` ndx ) , H >. ,
                                 <. ( comp ` ndx ) , .x. >. } ) $.
    estrres.b $e |- ( ph -> B e. V ) $.
    $( Lemma 1 for ~ estrres .  (Contributed by AV, 14-Mar-2020.) $)
    estrreslem1 $p |- ( ph -> B = ( Base ` C ) ) $=
      ( cbs cfv cnx cop chom cco ctp fveq2d c1 cvv wcel wne tpex a1i df-base wa
      1nn strndxid wceq fvexd slotsbhcdif 3simpa mp1i fvtp1g syl21anc 3eqtr2rd
      w3a ) ACIJKIJZBLZKMJZELZKNJZDLZOZIJUPVBJZBACVBIGPAVBIQRVBRSAUQUSVAUAUBUCU
      EUFAUPRSBFSUPURTZUPUTTZUDZVCBUGAKIUHHVDVEURUTTZUOVFAUIVDVEVGUJUKUPURUTBED
      RFULUMUN $.

    estrres.h $e |- ( ph -> H e. X ) $.
    estrres.x $e |- ( ph -> .x. e. Y ) $.
    $( Lemma 2 for ~ estrres .  (Contributed by AV, 14-Mar-2020.) $)
    estrreslem2 $p |- ( ph -> ( Base ` ndx ) e. dom C ) $=
      ( cnx cfv cdm wcel wceq cop cun a1i cbs chom cco ctp w3o eqidd 3mix1d cvv
      wb fvex eltpg mp1i mpbird cpr csn df-tp dmeqd dmpropg syl2anc dmsnopg syl
      dmun uneq12d 3eqtrd 3eqtr4d eleqtrrd ) AMUANZVGMUBNZMUCNZUDZCOZAVGVJPZVGV
      GQZVGVHQZVGVIQZUEZAVMVNVOAVGUFUGVGUHPVLVPUIAMUAUJVGVGVHVIUHUKULUMAVGBRZVH
      ERZVIDRZUDZOZVGVHUNZVIUOZSZVKVJAWAVQVRUNZVSUOZSZOZWEOZWFOZSZWDAVTWGVTWGQA
      VQVRVSUPTUQWHWKQAWEWFVBTAWIWBWJWCABFPEGPWIWBQJKVGBVHEFGURUSADHPWJWCQLVIDH
      UTVAVCVDACVTIUQVJWDQAVGVHVIUPTVEVF $.

    estrres.a $e |- ( ph -> A e. U ) $.
    estrres.g $e |- ( ph -> G e. W ) $.
    estrres.u $e |- ( ph -> A C_ B ) $.
    $( Any restriction of a category (as an extensible structure which is an
       unordered triple of ordered pairs) is an unordered triple of ordered
       pairs.  (Contributed by AV, 15-Mar-2020.) $)
    estrres $p |- ( ph -> ( ( C |`s A ) sSet <. ( Hom ` ndx ) , G >. )
                             = { <. ( Base ` ndx ) , A >. ,
                                 <. ( Hom ` ndx ) , G >. ,
                                 <. ( comp ` ndx ) , .x. >. } ) $=
      ( cvv cress cnx chom cfv cop csts csn cdif cres cun cbs cco ctp wcel wceq
      ovex setsval sylancr eqid tpex syl6eqel wfun w3a fvex 3pm3.2i slotsbhcdif
      co wne a1i funtpg syl131anc funeqd mpbird estrreslem2 estrreslem1 sseqtrd
      ressval3d reseq1d uneq1d syl2anc elex simp1 necomd mp1i simp2 tpres df-tp
      cpr syl syl6eqr ssexd simp3 eqtrd tprot eqtr3i ) ADBUAVGZUBUCUDZGUEZUFVGZ
      WPTWQUGUHZUIZWRUGZUJZUBUKUDZBUEZWRUBULUDZEUEZUMZAWPTUNGJUNWSXCUODBUAUPRWQ
      GWPTJUQURAXCDXEUFVGZWTUIZXBUJZXHAXAXJXBAWPXIWTABDUKUDZWPDXDTFWPUSXLUSXDUS
      ADXDCUEZWQHUEZXGUMZTMXMXNXGUTVAZADVBXOVBZAXDTUNZWQTUNZXFTUNZVCZCIUNHKUNZE
      LUNZXDWQVHZXDXFVHZWQXFVHZVCZXQYAAXRXSXTUBUKVDZUBUCVDZUBULVDZVEVINOPYGAVFV
      ICHETIKLTTXDWQXFVJVKADXOMVLVMACDEHIKLMNOPVNQABCXLSACDEHIMNVOVPVQVRVSAXKXG
      XEWHZXBUJZXHAXJYKXBAXJDTXDUGUHUIZXEUGZUJZWTUIYKAXIYOWTADTUNBFUNXIYOUOXPQX
      DBDTFUQVTVRAWQXFXDHYOEBTAYOXNXGWHZYNUJXNXGXEUMAYMYPYNAXDWQXFCDHETMXSAYIVI
      XTAYJVIZAYBHTUNOHKWAWIAYCETUNPELWAWIZYGWQXDVHAVFYGXDWQYDYEYFWBZWCWDYGXFXD
      VHAVFYGXDXFYDYEYFWEWCWDWFVSXNXGXEWGWJYQXRAYHVIYRABCINSWKYGXFWQVHAVFYGWQXF
      YDYEYFWLWCWDYGYDAVFYSWDWFWMVSYLXHUOAXGXEWRUMYLXHXGXEWRWGXGXEWRWNWOVIWMWMW
      M $.
  $}

  ${
    $d B x $.  $d X x $.  $d ph x $.
    funcestrcsetc.e $e |- E = ( ExtStrCat ` U ) $.
    funcestrcsetc.s $e |- S = ( SetCat ` U ) $.
    funcestrcsetc.b $e |- B = ( Base ` E ) $.
    funcestrcsetc.c $e |- C = ( Base ` S ) $.
    funcestrcsetc.u $e |- ( ph -> U e. WUni ) $.
    funcestrcsetc.f $e |- ( ph -> F = ( x e. B |-> ( Base ` x ) ) ) $.
    $( Lemma 1 for ~ funcestrcsetc .  (Contributed by AV, 22-Mar-2020.) $)
    funcestrcsetclem1 $p |- ( ( ph /\ X e. B ) -> ( F ` X ) = ( Base ` X ) ) $=
      ( wcel wa cbs cfv wceq cv cvv cmpt adantr fveq2 adantl simpr fvexd fvmptd
      ) AICPZQZBIBUAZRSZIRSZCHUBAHBCUMUCTUJOUDULITUMUNTUKULIRUEUFAUJUGUKIRUHUI
      $.

    $( Lemma 2 for ~ funcestrcsetc .  (Contributed by AV, 22-Mar-2020.) $)
    funcestrcsetclem2 $p |- ( ( ph /\ X e. B ) -> ( F ` X ) e. U ) $=
      ( wcel wa cfv cbs funcestrcsetclem1 estrcbasbas eqeltrd ) AICPQIHRISRFABC
      DEFGHIJKLMNOTACGFIJLNUAUB $.

    $d C x $.
    $( Lemma 3 for ~ funcestrcsetc .  (Contributed by AV, 22-Mar-2020.) $)
    funcestrcsetclem3 $p |- ( ph -> F : B --> C ) $=
      ( wf cv cbs cfv cmpt wcel wa estrcbasbas wceq cwun eqcomd adantr eleqtrrd
      setcbas syl6eleqr eqid fmptd feq1d mpbird ) ACDHOCDBCBPZQRZSZOABCUODUPAUN
      CTZUAZUOEQRZDURUOFUSACGFUNIKMUBAUSFUCUQAFUSAEFUDJMUHUEUFUGLUIUPUJUKACDHUP
      NULUM $.

    $d B x y $.
    funcestrcsetc.g $e |- ( ph -> G = ( x e. B , y e. B
                          |-> ( _I |` ( ( Base ` y ) ^m ( Base ` x ) ) ) ) ) $.
    $( Lemma 4 for ~ funcestrcsetc .  (Contributed by AV, 22-Mar-2020.) $)
    funcestrcsetclem4 $p |- ( ph -> G Fn ( B X. B ) ) $=
      ( wfn cv cvv cxp cid cbs cfv cmap co cres cmpt2 eqid wcel ovex id resiexd
      ax-mp fnmpt2i fneq1d mpbiri ) AJDDUAZRBCDDUBCSUCUDZBSUCUDZUEUFZUGZUHZURRB
      CDDVBVCVCUIVATUJZVBTUJUSUTUEUKVDVATVDULUMUNUOAURJVCQUPUQ $.

    $d X y $.  $d ph y $.
    ${
      $d M x y $.  $d N x y $.  $d Y x y $.
      funcestrcsetc.m $e |- M = ( Base ` X ) $.
      funcestrcsetc.n $e |- N = ( Base ` Y ) $.
      $( Lemma 5 for ~ funcestrcsetc .  (Contributed by AV, 23-Mar-2020.) $)
      funcestrcsetclem5 $p |- ( ( ph /\ ( X e. B /\ Y e. B ) )
                                -> ( X G Y ) = ( _I |` ( N ^m M ) ) ) $=
        ( wcel wa cid cv cbs cfv cmap co cres cvv cmpt2 adantr fveq2 oveqan12rd
        wceq oveq12i syl6eqr reseq2d adantl simprl simprr ovexd resiexd ovmpt2d
        ) AMDUDZNDUDZUEZUEZBCMNDDUFCUGZUHUIZBUGZUHUIZUJUKZULZUFLKUJUKZULZJUMAJB
        CDDVQUNURVJUAUOVNMURZVLNURZUEZVQVSURVKWBVPVRUFWBVPNUHUIZMUHUIZUJUKVRWAV
        TVMWCVOWDUJVLNUHUPVNMUHUPUQLWCKWDUJUCUBUSUTVAVBAVHVIVCAVHVIVDVKVRUMVKLK
        UJVEVFVG $.

      $( Lemma 6 for ~ funcestrcsetc .  (Contributed by AV, 23-Mar-2020.) $)
      funcestrcsetclem6 $p |- ( ( ph /\ ( X e. B /\ Y e. B )
                             /\ H e. ( N ^m M ) ) -> ( ( X G Y ) ` H ) = H ) $=
        ( wcel wa cmap co w3a cfv cid cres wceq funcestrcsetclem5 fveq1d fvresi
        3adant3 3ad2ant3 eqtrd ) ANDUEODUEUFZKMLUGUHZUEZUIZKNOJUHZUJKUKVAULZUJZ
        KVCKVDVEAUTVDVEUMVBABCDEFGHIJLMNOPQRSTUAUBUCUDUNUQUOVBAVFKUMUTVAKUPURUS
        $.
    $}

    $( Lemma 7 for ~ funcestrcsetc .  (Contributed by AV, 23-Mar-2020.) $)
    funcestrcsetclem7 $p |- ( ( ph /\ X e. B )
        -> ( ( X G X ) ` ( ( Id ` E ) ` X ) ) = ( ( Id ` S ) ` ( F ` X ) ) ) $=
      ( wcel cfv wa ccid cid cbs cres cmap wceq eqid funcestrcsetclem5 anabsan2
      co cwun adantr estrcbas syl6reqr eleq2d biimpa estrcid fveq12d cvv pm3.2i
      fvex a1i wf1o f1oi f1of ax-mp elmapg mpbiri fvresi 3syl funcestrcsetclem1
      wf fveq2d estrcbasbas setcid eqtr2d 3eqtrd ) AKDSZUAZKHUBTZTZKKJUKZTUCKUD
      TZUEZUCWDWDUFUKZUEZTZWEKITZFUBTZTZVTWBWEWCWGAVSWCWGUGABCDEFGHIJWDWDKKLMNO
      PQRWDUHZWLUIUJVTHGWAULKLWAUHAGULSVSPUMZAVSKGSADGKAGHUDTDAHGULLPUNNUOUPUQU
      RUSVTWDUTSZWNUAZWEWFSZWHWEUGWOVTWNWNKUDVBZWQVAVCWOWPWDWDWEVMZWDWDWEVDWRWD
      VEWDWDWEVFVGWDWDWEUTUTVHVIWFWEVJVKVTWKWDWJTWEVTWIWDWJABDEFGHIKLMNOPQVLVNV
      TFGWJULWDMWJUHWMADHGKLNPVOVPVQVR $.

    $d B f $.  $d F f $.  $d X f $.  $d Y f $.  $d Y x y $.  $d ph f $.
    $( Lemma 8 for ~ funcestrcsetc .  (Contributed by AV, 15-Feb-2020.) $)
    funcestrcsetclem8 $p |- ( ( ph /\ ( X e. B /\ Y e. B ) )
                    -> ( X G Y ) : ( X ( Hom ` E ) Y )
                                   --> ( ( F ` X ) ( Hom ` S ) ( F ` Y ) ) ) $=
      ( wcel vf wa chom cfv co cbs cmap cid cres wf1o f1oi f1of mp1i elmapi cvv
      wf cv wb fvex pm3.2i elmapg bicomd wceq funcestrcsetclem1 adantrl adantrr
      biimpa oveq12d eleqtrrd ex syl5 ssrdv fssd eqid funcestrcsetclem5 cwun wi
      adantr estrcbas syl6reqr eleq2d biimpcd impcom estrchom funcestrcsetclem2
      biimpd adantld imp setchom feq123d mpbird ) AKDTZLDTZUBZUBZKLHUCUDZUEZKIU
      DZLIUDZFUCUDZUEZKLJUEZUPLUFUDZKUFUDZUGUEZWSWRUGUEZUHXEUIZUPWOXEXEXFXGXEXE
      XGUJXEXEXGUPWOXEUKXEXEXGULUMWOUAXEXFUAUQZXETZXDXCXHUPZWOXHXFTZXHXCXDUNWOX
      JXKWOXJUBXHXEXFWOXJXIXCUOTZXDUOTZUBZXJXIURWOXLXMLUFUSKUFUSUTXNXIXJXCXDXHU
      OUOVAVBUMVGWOXFXEVCXJWOWSXCWRXDUGAWMWSXCVCWLABDEFGHILMNOPQRVDVEAWLWRXDVCW
      MABDEFGHIKMNOPQRVDVFVHVRVIVJVKVLVMWOWQXEXAXFXBXGABCDEFGHIJXDXCKLMNOPQRSXD
      VNZXCVNZVOWOXDXCHGWPVPKLMAGVPTWNQVRZWPVNWNAKGTZWLAXRVQWMAWLXRADGKAGHUFUDD
      AHGVPMQVSOVTZWAWBVRWCAWNLGTZAWMXTWLAWMXTADGLXSWAWFWGWHXOXPWDWOFGWTVPWRWSN
      XQWTVNAWLWRGTWMABDEFGHIKMNOPQRWEVFAWMWSGTWLABDEFGHILMNOPQRWEVEWIWJWK $.

    $d Z x y $.
    $( Lemma 9 for ~ funcestrcsetc .  (Contributed by AV, 23-Mar-2020.) $)
    funcestrcsetclem9 $p |- ( ( ph /\ ( X e. B /\ Y e. B /\ Z e. B )
                  /\ ( H e. ( X ( Hom ` E ) Y ) /\ K e. ( Y ( Hom ` E ) Z ) ) )
                  -> ( ( X G Z ) ` ( K ( <. X , Y >. ( comp ` E ) Z ) H ) )
                     = ( ( ( Y G Z ) ` K )
                         ( <. ( F ` X ) , ( F ` Y ) >. ( comp ` S ) ( F ` Z ) )
                         ( ( X G Y ) ` H ) ) ) $=
      ( wcel w3a chom cfv co wa cop cco wceq cbs cmap cwun adantr eqid estrcbas
      wi syl6reqr eleq2d biimpcd 3ad2ant1 impcom 3ad2ant2 estrchom anbi12d ccom
      3ad2ant3 cid cres wf elmapi syl2an fvex elmap sylibr ancoms adantl fvresi
      fco funcestrcsetclem5 3adantr2 ad2antrl estrcco fveq12d funcestrcsetclem2
      ad2antll 3ad2antr1 3ad2antr2 3ad2antr3 wb funcestrcsetclem1 feq23d mpbird
      syl simpll 3simpa ad2antlr simprl funcestrcsetclem6 syl3anc 3simpc simprr
      feq1d setcco coeq12d eqtrd 3eqtr4d ex sylbid 3impia ) AMDUCZNDUCZODUCZUDZ
      KMNHUEUFZUGZUCZLNOXPUGZUCZUHZLKMNUIOHUJUFZUGUGZMOJUGZUFZLNOJUGUFZKMNJUGUF
      ZMIUFZNIUFZUIOIUFZFUJUFZUGUGZUKZAXOUHZYAKNULUFZMULUFZUMUGZUCZLOULUFZYOUMU
      GZUCZUHZYMYNXRYRXTUUAYNXQYQKYNYPYOHGXPUNMNPAGUNUCZXOTUOZXPUPZXOAMGUCZXLXM
      AUUFURXNAXLUUFADGMAGHULUFDAHGUNPTUQRUSZUTVAVBVCZXOANGUCZXMXLAUUIURXNAXMUU
      IADGNUUGUTVAVDVCZYPUPZYOUPZVEUTYNXSYTLYNYOYSHGXPUNNOPUUDUUEUUJXOAOGUCZXNX
      LAUUMURXMAXNUUMADGOUUGUTVAVHVCZUULYSUPZVEUTVFYNUUBYMYNUUBUHZLKVGZVIYSYPUM
      UGZVJZUFZUUQYEYLUUPUUQUURUCZUUTUUQUKUUBUVAYNUUAYRUVAUUAYRUHYPYSUUQVKZUVAU
      UAYOYSLVKZYPYOKVKZUVBYRLYSYOVLZKYOYPVLZYPYOYSLKVTVMYSYPUUQOULVNMULVNVOVPV
      QVRUURUUQVSWOUUPYCUUQYDUUSYNYDUUSUKZUUBAXLXNUVGXMABCDEFGHIJYPYSMOPQRSTUAU
      BUUKUUOWAWBUOUUPYPYOHYSYBGKLUNMNOPYNUUCUUBUUDUOZYBUPYNUUFUUBUUHUOYNUUIUUB
      UUJUOYNUUMUUBUUNUOUUKUULUUOYRUVDYNUUAUVFWCZUUAUVCYNYRUVEWGZWDWEUUPYLYFYGV
      GUUQUUPFYKGYGYFUNYHYIYJQUVHYKUPYNYHGUCZUUBAXMXLUVKXNABDEFGHIMPQRSTUAWFWHU
      OYNYIGUCZUUBAXLXMUVLXNABDEFGHINPQRSTUAWFWIUOYNYJGUCZUUBAXLXNUVMXMABDEFGHI
      OPQRSTUAWFWJUOUUPYHYIYGVKYHYIKVKZUUPUVNUVDUVIYNUVNUVDWKUUBYNYHYIYPYOKAXMX
      LYHYPUKXNABDEFGHIMPQRSTUAWLWHAXLXMYIYOUKXNABDEFGHINPQRSTUAWLWIZWMUOWNUUPY
      HYIYGKUUPAXLXMUHZYRYGKUKAXOUUBWPZXOUVPAUUBXLXMXNWQWRYNYRUUAWSABCDEFGHIJKY
      PYOMNPQRSTUAUBUUKUULWTXAZXDWNUUPYIYJYFVKYIYJLVKZUUPUVSUVCUVJYNUVSUVCWKUUB
      YNYIYJYOYSLUVOAXLXNYJYSUKXMABDEFGHIOPQRSTUAWLWJWMUOWNUUPYIYJYFLUUPAXMXNUH
      ZUUAYFLUKUVQXOUVTAUUBXLXMXNXBWRYNYRUUAXCABCDEFGHIJLYOYSNOPQRSTUAUBUULUUOW
      TXAZXDWNXEUUPYFLYGKUWAUVRXFXGXHXIXJXK $.

    $d a b c x y $.  $d B a b c h k $.  $d F a b c h k $.  $d G a b c h k $.
    $d E a b c h k $.  $d S a b c h k $.  $d ph a b c h k $.
    $( The "natural forgetful functor" from the category of extensible
       structures into the category of sets which sends each extensible
       structure to its base set, preserving the morphisms as mappings between
       the corresponding base sets.  (Contributed by AV, 23-Mar-2020.) $)
    funcestrcsetc $p |- ( ph -> F ( E Func S ) G ) $=
      ( cfv eqid cv va vb vc vh vk cco ccid chom cwun wcel estrccat syl setccat
      funcestrcsetclem3 funcestrcsetclem4 funcestrcsetclem8 funcestrcsetclem7
      ccat funcestrcsetclem9 isfuncd ) AUAUBUCDEHHUFRZHUGRZUDUEFIJHUHRZFUGRZFUH
      RZFUFRZMNVCSVESVBSVDSVASVFSAGUIUJZHURUJOHGUIKUKULAVGFURUJOFGUILUMULABDEFG
      HIKLMNOPUNABCDEFGHIJKLMNOPQUOABCDEFGHIJUATZUBTZKLMNOPQUPABCDEFGHIJVHKLMNO
      PQUQABCDEFGHIJUDTUETVHVIUCTKLMNOPQUSUT $.

    $( The "natural forgetful functor" from the category of extensible
       structures into the category of sets which sends each extensible
       structure to its base set is faithful.  (Contributed by AV,
       2-Apr-2020.) $)
    fthestrcsetc $p |- ( ph -> F ( E Faith S ) G ) $=
      ( co cfv wcel va vb vh vk cfunc wbr cv chom wral cfth funcestrcsetc wa wf
      wf1 wceq weq wi funcestrcsetclem8 cmap cwun adantr eqid estrcbas syl6reqr
      cbs eleq2d biimpcd impcom adantl estrchom funcestrcsetclem6 3expia sylbid
      com12 eqeq12d biimpd ralrimivva dff13 sylanbrc isfth2 ) AIJHFUERUFUAUGZUB
      UGZHUHSZRZWAISWBISFUHSZRZWAWBJRZUNZUBDUIUADUIIJHFUJRUFABCDEFGHIJKLMNOPQUK
      AWHUAUBDDAWADTZWBDTZULZULZWDWFWGUMUCUGZWGSZUDUGZWGSZUOZUCUDUPZUQZUDWDUIUC
      WDUIWHABCDEFGHIJWAWBKLMNOPQURWLWSUCUDWDWDWLWMWDTZWOWDTZULZULZWQWRXCWNWMWP
      WOXBWLWNWMUOZWTWLXDUQXAWLWTXDWLWTWMWBVESZWAVESZUSRZTZXDWLWDXGWMWLXFXEHGWC
      UTWAWBKAGUTTWKOVAWCVBZWKAWAGTZWIAXJUQWJAWIXJADGWAAGHVESDAHGUTKOVCMVDZVFVG
      VAVHWKAWBGTZWJAXLUQWIAWJXLADGWBXKVFVGVIVHXFVBZXEVBZVJZVFAWKXHXDABCDEFGHIJ
      WMXFXEWAWBKLMNOPQXMXNVKVLVMVNVAVHXBWLWPWOUOZXAWLXPUQWTWLXAXPWLXAWOXGTZXPW
      LWDXGWOXOVFAWKXQXPABCDEFGHIJWOXFXEWAWBKLMNOPQXMXNVKVLVMVNVIVHVOVPVQUCUDWD
      WFWGVRVSVQUAUBDHFIJWCWEMXIWEVBVTVS $.

    $d F h k $.  $d S h k $.
    $( The "natural forgetful functor" from the category of extensible
       structures into the category of sets which sends each extensible
       structure to its base set is full.  (Contributed by AV, 2-Apr-2020.) $)
    fullestrcsetc $p |- ( ph -> F ( E Full S ) G ) $=
      ( vh vk wcel va vb cfunc co wbr cv chom cfv wral cful funcestrcsetc wa wf
      wfo wceq wrex funcestrcsetclem8 cbs cwun adantr funcestrcsetclem2 adantrr
      eqid adantrl elsetchom funcestrcsetclem1 feq23d bitrd cmap weq cvv pm3.2i
      wb fvex elmapg mp1i biimpar adantl eqidd rspcedvd funcestrcsetclem6 3expa
      equequ2 eqeq2d rexbidva mpbird wi estrcbas syl6reqr eleq2d biimpcd impcom
      estrchom rexeqdv ex sylbid ralrimiv dffo3 sylanbrc ralrimivva isfull2 ) A
      IJHFUCUDUEUAUFZUBUFZHUGUHZUDZXBIUHZXCIUHZFUGUHZUDZXBXCJUDZUNZUBDUIUADUIIJ
      HFUJUDUEABCDEFGHIJKLMNOPQUKAXKUAUBDDAXBDTZXCDTZULZULZXEXIXJUMRUFZSUFZXJUH
      ZUOZSXEUPZRXIUIXKABCDEFGHIJXBXCKLMNOPQUQXOXTRXIXOXPXITZXBURUHZXCURUHZXPUM
      ZXTXOYAXFXGXPUMYDXOFGXPXHUSXFXGLAGUSTXNOUTZXHVCZAXLXFGTXMABDEFGHIXBKLMNOP
      VAVBAXMXGGTXLABDEFGHIXCKLMNOPVAVDVEXOXFXGYBYCXPAXLXFYBUOXMABDEFGHIXBKLMNO
      PVFVBAXMXGYCUOXLABDEFGHIXCKLMNOPVFVDVGVHXOYDXTXOYDULZXTXSSYCYBVIUDZUPZYGY
      IRSVJZSYHUPZYGYJRRVJZSXPYHXOXPYHTZYDYCVKTZYBVKTZULYMYDVMXOYNYOXCURVNXBURV
      NVLYCYBXPVKVKVOVPVQSRVJYJYLVMYGSRRWCVRYGXPVSVTXOYIYKVMYDXOXSYJSYHXOXQYHTZ
      ULXRXQXPAXNYPXRXQUOABCDEFGHIJXQYBYCXBXCKLMNOPQYBVCZYCVCZWAWBWDWEUTWFXOXTY
      IVMYDXOXSSXEYHXOYBYCHGXDUSXBXCKYEXDVCZXNAXBGTZXLAYTWGXMAXLYTADGXBAGHURUHD
      AHGUSKOWHMWIZWJWKUTWLXNAXCGTZXMAUUBWGXLAXMUUBADGXCUUAWJWKVRWLYQYRWMWNUTWF
      WOWPWQSRXEXIXJWRWSWTUAUBDHFIJXDXHMYFYSXAWS $.

    $d C a $.  $d F a b i $.
    equivestrcsetc.i $e |- ( ph -> ( Base ` ndx ) e. U ) $.
    $( The "natural forgetful functor" from the category of extensible
       structures into the category of sets which sends each extensible
       structure to its base set is an equivalence.  According to definition
       3.33 (1) of [Adamek] p. 36, "A functor F :  A -> B is called an
       _equivalence_ provided that it is full, faithful, and isomorphism-dense
       in the sense that for any B-object B' there exists some A-object A' such
       that F(A') is isomorphic to B'.".  Therefore, the category of sets and
       the category of extensible structures are equivalent, according to
       definition 3.33 (2) of [Adamek] p. 36, "Categories A and B are called
       _equivalent_ provided that there is an equivalence from A to B.".
       (Contributed by AV, 2-Apr-2020.) $)
    equivestrcsetc $p |- ( ph -> ( F ( E Faith S ) G /\ F ( E Full S ) G
                /\ A. b e. C E. a e. B E. i i : b -1-1-onto-> ( F ` a ) ) ) $=
      ( cfth co wbr cful cfv wf1o wex wrex wral fthestrcsetc fullestrcsetc wcel
      cv wa cnx cbs cop cwun setcbas syl6reqr eleq2d eqid 1strwunbndx ex sylbid
      csn imp wceq estrcbas adantr eleqtrrd wb fveq2 f1oeq3d exbidv adantl cres
      cid f1oi funcestrcsetclem1 syldan 1strbas eqtr4d mpbiri cvv resiexg ax-mp
      vex f1oeq1 spcev syl rspcedvd ralrimiva 3jca ) AJKIFUBUCUDJKIFUEUCUDMUNZL
      UNZJUFZHUNZUGZHUHZLDUIZMEUJABCDEFGIJKNOPQRSTUKABCDEFGIJKNOPQRSTULAXBMEAWP
      EUMZUOZXAWPUPUQUFWPURVGZJUFZWSUGZHUHZLXEDXDXEGDAXCXEGUMZAXCWPGUMZXIAEGWPA
      GFUQUFEAFGUSORUTQVAVBAXJXIAWPGXEXEVCZRUAVDVEVFVHXDGIUQUFZDAGXLVIXCAIGUSNR
      VJVKPVAVLZWQXEVIZXAXHVMXDXNWTXGHXNWRXFWPWSWQXEJVNVOVPVQXDWPXFVSWPVRZUGZXH
      XDXPWPWPXOUGWPVTXDXFWPWPXOXDXFXEUQUFZWPAXCXEDUMXFXQVIXMABDEFGIJXENOPQRSWA
      WBXCWPXQVIAWPXEEXKWCVQWDVOWEXGXPHXOWPWFUMXOWFUMMWIWPWFWGWHWPXFWSXOWJWKWLW
      MWNWO $.
  $}

  ${
    setc1strwun.s $e |- S = ( SetCat ` U ) $.
    setc1strwun.c $e |- C = ( Base ` S ) $.
    setc1strwun.u $e |- ( ph -> U e. WUni ) $.
    setc1strwun.o $e |- ( ph -> _om e. U ) $.
    $( A constructed one-slot structure with the objects of the category of
       sets as base set in a weak universe.  (Contributed by AV,
       27-Mar-2020.) $)
    setc1strwun $p |- ( ( ph /\ X e. C )
                              -> { <. ( Base ` ndx ) , X >. } e. U ) $=
      ( wcel cnx cbs cfv cop csn cwun setcbas syl6reqr eleq2d biimpa 1strwun
      eqid syldan ) AEBJZEDJZKLMENOZDJAUDUEABDEADCLMBACDPFHQGRSTAEDUFUFUBHIUAUC
      $.
  $}

  ${
    $d C x $.  $d X x $.  $d ph x $.
    funcsetcestrc.s $e |- S = ( SetCat ` U ) $.
    funcsetcestrc.c $e |- C = ( Base ` S ) $.
    funcsetcestrc.f $e |- ( ph
                        -> F = ( x e. C |-> { <. ( Base ` ndx ) , x >. } ) ) $.
    $( Lemma 1 for ~ funcsetcestrc .  (Contributed by AV, 27-Mar-2020.) $)
    funcsetcestrclem1 $p |- ( ( ph /\ X e. C )
                              -> ( F ` X ) = { <. ( Base ` ndx ) , X >. } ) $=
      ( wcel wa cnx cbs cfv cv cop csn cvv wceq adantr opeq2 sneqd adantl simpr
      cmpt snex a1i fvmptd ) AGCKZLZBGMNOZBPZQZRZULGQZRZCFSAFBCUOUFTUJJUAUMGTZU
      OUQTUKURUNUPUMGULUBUCUDAUJUEUQSKUKUPUGUHUI $.

    funcsetcestrc.u $e |- ( ph -> U e. WUni ) $.
    funcsetcestrc.o $e |- ( ph -> _om e. U ) $.
    $( Lemma 2 for ~ funcsetcestrc .  (Contributed by AV, 27-Mar-2020.) $)
    funcsetcestrclem2 $p |- ( ( ph /\ X e. C ) -> ( F ` X ) e. U ) $=
      ( wcel wa cfv cnx cbs cop csn funcsetcestrclem1 setc1strwun eqeltrd ) AGC
      MNGFOPQOGRSEABCDEFGHIJTACDEGHIKLUAUB $.

    ${
      $d B x $.  $d C x $.
      funcsetcestrclem3.e $e |- E = ( ExtStrCat ` U ) $.
      funcsetcestrclem3.b $e |- B = ( Base ` E ) $.
      $( Lemma 3 for ~ funcsetcestrc .  (Contributed by AV, 27-Mar-2020.) $)
      funcsetcestrclem3 $p |- ( ph -> F : C --> B ) $=
        ( wf cnx cbs cfv cv cop csn cmpt wcel wa setc1strwun wceq cwun estrcbas
        eqcomd adantr eleqtrrd syl6eleqr eqid fmptd feq1d mpbird ) ADCHPDCBDQRS
        BTZUAUBZUCZPABDUSCUTAURDUDZUEZUSGRSZCVBUSFVCADEFURIJLMUFAVCFUGVAAFVCAGF
        UHNLUIUJUKULOUMUTUNUOADCHUTKUPUQ $.

      $d C y z $.  $d F y z $.  $d ph x y z $.
      $( Lemma for ~ embedsetcestrc .  (Contributed by AV, 31-Mar-2020.) $)
      embedsetcestrclem $p |- ( ph -> F : C -1-1-> B ) $=
        ( vy vz wceq wcel cvv wf cv cfv weq wi wf1 funcsetcestrclem3 wa cnx cbs
        wral cop csn funcsetcestrclem1 adantrr adantrl eqeq12d opex sneqbg mp1i
        fvexd simpl opthg syl2an simpr syl6bi sylbid ralrimivva dff13 sylanbrc
        wb ) ADCHUAPUBZHUCZQUBZHUCZRZPQUDZUEZQDUKPDUKDCHUFABCDEFGHIJKLMNOUGAVRP
        QDDAVLDSZVNDSZUHZUHZVPUIUJUCZVLULZUMZWCVNULZUMZRZVQWBVMWEVOWGAVSVMWERVT
        ABDEFHVLIJKUNUOAVTVOWGRVSABDEFHVNIJKUNUPUQWBWHWDWFRZVQWDTSWHWIVKWBWCVLU
        RWDWFTUSUTWBWIWCWCRZVQUHZVQAWCTSVSWIWKVKWAAUIUJVAVSVTVBWCVLWCVNTDVCVDWJ
        VQVEVFVGVGVHPQDCHVIVJ $.
    $}

    $d C x y $.
    funcsetcestrc.g $e |- ( ph -> G = ( x e. C , y e. C
                                        |-> ( _I |` ( y ^m x ) ) ) ) $.
    $( Lemma 4 for ~ funcsetcestrc .  (Contributed by AV, 27-Mar-2020.) $)
    funcsetcestrclem4 $p |- ( ph -> G Fn ( C X. C ) ) $=
      ( cxp wfn cv cmap cvv wcel cid co cres cmpt2 eqid ovex id resiexd fnmpt2i
      ax-mp fneq1d mpbiri ) AHDDOZPBCDDUACQZBQZRUBZUCZUDZUMPBCDDUQURURUEUPSTZUQ
      STUNUORUFUSUPSUSUGUHUJUIAUMHURNUKUL $.

    $d X y $.  $d Y x y $.  $d ph y $.
    $( Lemma 5 for ~ funcsetcestrc .  (Contributed by AV, 27-Mar-2020.) $)
    funcsetcestrclem5 $p |- ( ( ph /\ ( X e. C /\ Y e. C ) )
                              -> ( X G Y ) = ( _I |` ( Y ^m X ) ) ) $=
      ( wa cid cmap wceq wcel cv co cres cvv cmpt2 adantr oveq12 ancoms reseq2d
      adantl simprl simprr ovexd resiexd ovmpt2d ) AIDUAZJDUAZQZQZBCIJDDRCUBZBU
      BZSUCZUDZRJISUCZUDZHUEAHBCDDVDUFTUSPUGVBITZVAJTZQZVDVFTUTVIVCVERVHVGVCVET
      VAJVBISUHUIUJUKAUQURULAUQURUMUTVEUEUTJISUNUOUP $.

    $( Lemma 6 for ~ funcsetcestrc .  (Contributed by AV, 27-Mar-2020.) $)
    funcsetcestrclem6 $p |- ( ( ph /\ ( X e. C /\ Y e. C )
                             /\ H e. ( Y ^m X ) ) -> ( ( X G Y ) ` H ) = H ) $=
      ( wcel co cfv wa cmap w3a cid cres wceq funcsetcestrclem5 fveq1d 3ad2ant3
      3adant3 fvresi eqtrd ) AJDRKDRUAZIKJUBSZRZUCZIJKHSZTIUDUNUEZTZIUPIUQURAUM
      UQURUFUOABCDEFGHJKLMNOPQUGUJUHUOAUSIUFUMUNIUKUIUL $.

    funcsetcestrc.e $e |- E = ( ExtStrCat ` U ) $.
    $( Lemma 7 for ~ funcsetcestrc .  (Contributed by AV, 27-Mar-2020.) $)
    funcsetcestrclem7 $p |- ( ( ph /\ X e. C )
        -> ( ( X G X ) ` ( ( Id ` S ) ` X ) ) = ( ( Id ` E ) ` ( F ` X ) ) ) $=
      ( wcel cfv cid wa ccid co cres cnx cbs cop csn funcsetcestrclem5 anabsan2
      cmap wceq cwun eqid adantr setcbas syl6reqr eleq2d biimpa fveq12d wf wf1o
      setcid f1oi f1of ax-mp wb simpr elmapg sylancom mpbiri fvresi syl 1strbas
      reseq2d eqtrd funcsetcestrclem1 fveq2d setc1strwun estrcid eqtr2d 3eqtrd
      ) AJDRZUAZJEUBSZSZJJIUCZSTJUDZTJJUKUCZUDZSZTUEUFSJUGUHZUFSZUDZJHSZGUBSZSZ
      WDWFWHWGWJAWCWGWJULABCDEFHIJJKLMNOPUIUJWDEFWEUMJKWEUNAFUMRWCNUOZAWCJFRADF
      JAFEUFSDAEFUMKNUPLUQURUSVCUTWDWKWHWNWDWHWIRZWKWHULWDWSJJWHVAZJJWHVBWTJVDJ
      JWHVEVFAWCWCWSWTVGAWCVHZJJWHDDVIVJVKWIWHVLVMWDJWMTWDWCJWMULXAJWLDWLUNVNVM
      VOVPWDWQWLWPSWNWDWOWLWPABDEFHJKLMVQVRWDGFWPUMWLQWPUNWRADEFJKLNOVSVTWAWB
      $.

    $d C f $.  $d F f $.  $d X f $.  $d Y f $.  $d ph f $.
    $( Lemma 8 for ~ funcsetcestrc .  (Contributed by AV, 28-Mar-2020.) $)
    funcsetcestrclem8 $p |- ( ( ph /\ ( X e. C /\ Y e. C ) )
                    -> ( X G Y ) : ( X ( Hom ` S ) Y )
                                   --> ( ( F ` X ) ( Hom ` E ) ( F ` Y ) ) ) $=
      ( wcel cfv vf wa chom co wf cmap cbs cid cres wf1o f1oi f1of cv elmapi wb
      mp1i simpr ancomd elmapg syl biimpar cnx cop csn funcsetcestrclem1 fveq2d
      wceq 1strbas eqcomd adantl adantrl eqtr4d adantrr oveq12d adantr eleqtrrd
      eqid eqtrd syl5 ssrdv fssd funcsetcestrclem5 cwun setcbas syl6reqr eleq2d
      ex biimpd adantrd imp adantld setchom funcsetcestrclem2 estrchom feq123d
      mpbird ) AJDSZKDSZUBZUBZJKEUCTZUDZJHTZKHTZGUCTZUDZJKIUDZUEKJUFUDZXDUGTZXC
      UGTZUFUDZUHXHUIZUEWTXHXHXKXLXHXHXLUJXHXHXLUEWTXHUKXHXHXLULUPWTUAXHXKUAUMZ
      XHSZJKXMUEZWTXMXKSZXMKJUNWTXOXPWTXOUBXMXHXKWTXNXOWTWRWQUBXNXOUOWTWQWRAWSU
      QURKJXMDDUSUTVAWTXKXHVGXOWTXIKXJJUFAWRXIKVGWQAWRUBZXIVBUGTZKVCVDZUGTZKXQX
      DXSUGABDEFHKLMNVEVFWRXTKVGAWRKXTKXSDXSVQVHVIVJVRVKAWQXJJVGWRAWQUBZXJXRJVC
      VDZUGTZJYAXCYBUGABDEFHJLMNVEVFWQJYCVGAJYBDYBVQVHVJVLVMVNVOVPWGVSVTWAWTXBX
      HXFXKXGXLABCDEFHIJKLMNOPQWBWTEFXAWCJKLAFWCSWSOVOZXAVQAWSJFSZAWQYEWRAWQYEA
      DFJAFEUGTDAEFWCLOWDMWEZWFWHWIWJAWSKFSZAWRYGWQAWRYGADFKYFWFWHWKWJWLWTXJXIG
      FXEWCXCXDRYDXEVQAWQXCFSWRABDEFHJLMNOPWMVMAWRXDFSWQABDEFHKLMNOPWMVKXJVQXIV
      QWNWOWP $.

    $d Z x y $.
    $( Lemma 9 for ~ funcsetcestrc .  (Contributed by AV, 28-Mar-2020.) $)
    funcsetcestrclem9 $p |- ( ( ph /\ ( X e. C /\ Y e. C /\ Z e. C )
                  /\ ( H e. ( X ( Hom ` S ) Y ) /\ K e. ( Y ( Hom ` S ) Z ) ) )
                  -> ( ( X G Z ) ` ( K ( <. X , Y >. ( comp ` S ) Z ) H ) )
                     = ( ( ( Y G Z ) ` K )
                         ( <. ( F ` X ) , ( F ` Y ) >. ( comp ` E ) ( F ` Z ) )
                         ( ( X G Y ) ` H ) ) ) $=
      ( wcel w3a chom cfv co wa cop cco wceq cmap cwun adantr eqid cbs syl6reqr
      wi setcbas eleq2d biimpcd 3ad2ant1 3ad2ant2 setchom 3ad2ant3 anbi12d ccom
      impcom cid wf elmapi fco syl2anr adantl wb elmapg ancoms 3adant2 ad2antlr
      cres mpbird fvresi syl funcsetcestrclem5 3adantr2 ad2antrl setcco fveq12d
      funcsetcestrclem2 3ad2antr1 3ad2antr2 3ad2antr3 funcsetcestrclem6 syl3anc
      ad2antll simpll 3simpa simprl cnx funcsetcestrclem1 fveq2d 1strbas eqcomd
      csn eqtrd feq123d 3simpc simprr estrcco coeq12d 3eqtr4d ex sylbid 3impia
      ) ALDUBZMDUBZNDUBZUCZJLMEUDUEZUFZUBZKMNXRUFZUBZUGZKJLMUHNEUIUEZUFUFZLNIUF
      ZUEZKMNIUFUEZJLMIUFUEZLHUEZMHUEZUHNHUEZGUIUEZUFUFZUJZAXQUGZYCJMLUKUFZUBZK
      NMUKUFZUBZUGZYOYPXTYRYBYTYPXSYQJYPEFXRULLMOAFULUBZXQRUMZXRUNZXQALFUBZXNXO
      AUUEUQXPAXNUUEADFLAFEUOUEDAEFULORURPUPZUSUTVAVGZXQAMFUBZXOXNAUUHUQXPAXOUU
      HADFMUUFUSUTVBVGZVCUSYPYAYSKYPEFXRULMNOUUCUUDUUIXQANFUBZXPXNAUUJUQXOAXPUU
      JADFNUUFUSUTVDVGZVCUSVEYPUUAYOYPUUAUGZKJVFZVHNLUKUFZVSZUEZUUMYGYNUULUUMUU
      NUBZUUPUUMUJUULUUQLNUUMVIZUUAUURYPYTMNKVIZLMJVIZUURYRKNMVJZJMLVJZLMNKJVKV
      LVMXQUUQUURVNZAUUAXNXPUVCXOXPXNUVCNLUUMDDVOVPVQVRVTUUNUUMWAWBUULYEUUMYFUU
      OYPYFUUOUJZUUAAXNXPUVDXOABCDEFHILNOPQRSTWCWDUMUULEYDFJKULLMNOYPUUBUUAUUCU
      MZYDUNYPUUEUUAUUGUMYPUUHUUAUUIUMYPUUJUUAUUKUMYRUUTYPYTUVBWEZYTUUSYPYRUVAW
      NZWFWGUULYNYHYIVFUUMUULYJUOUEZYKUOUEZGYLUOUEZYMFYIYHULYJYKYLUAUVEYMUNYPYJ
      FUBZUUAAXOXNUVKXPABDEFHLOPQRSWHWIUMYPYKFUBZUUAAXNXOUVLXPABDEFHMOPQRSWHWJU
      MYPYLFUBZUUAAXNXPUVMXOABDEFHNOPQRSWHWKUMUVHUNUVIUNUVJUNUULUVHUVIYIVIUUTUV
      FUULUVHLUVIMYIJUULAXNXOUGZYRYIJUJAXQUUAWOZXQUVNAUUAXNXOXPWPVRYPYRYTWQABCD
      EFHIJLMOPQRSTWLWMZYPUVHLUJUUAYPUVHWRUOUEZLUHXCZUOUEZLYPYJUVRUOAXOXNYJUVRU
      JXPABDEFHLOPQWSWIWTXQUVSLUJZAXNXOUVTXPXNLUVSLUVRDUVRUNXAXBVAVMXDUMYPUVIMU
      JUUAYPUVIUVQMUHXCZUOUEZMYPYKUWAUOAXNXOYKUWAUJXPABDEFHMOPQWSWJWTXQUWBMUJZA
      XOXNUWCXPXOMUWBMUWADUWAUNXAXBVBVMXDUMZXEVTUULUVIUVJYHVIUUSUVGUULUVIMUVJNY
      HKUULAXOXPUGZYTYHKUJUVOXQUWEAUUAXNXOXPXFVRYPYRYTXGABCDEFHIKMNOPQRSTWLWMZU
      WDYPUVJNUJUUAYPUVJUVQNUHXCZUOUEZNYPYLUWGUOAXNXPYLUWGUJXOABDEFHNOPQWSWKWTX
      QUWHNUJZAXPXNUWIXOXPNUWHNUWGDUWGUNXAXBVDVMXDUMXEVTXHUULYHKYIJUWFUVPXIXDXJ
      XKXLXM $.

    $d a b c x y $.  $d C a b c h k $.  $d E a b c h k x $.  $d F a b c h k $.
    $d G a b c h k $.  $d S a b c h k $.  $d ph a b c h k $.
    $( The "embedding functor" from the category of sets into the category of
       extensible structures which sends each set to an extensible structure
       consisting of the base set slot only, preserving the morphisms as
       mappings between the corresponding base sets.  (Contributed by AV,
       28-Mar-2020.) $)
    funcsetcestrc $p |- ( ph -> F ( S Func E ) G ) $=
      ( cfv eqid cwun cv va vb vc vh vk cbs cco ccid chom wcel ccat setccat syl
      funcsetcestrclem3 funcsetcestrclem4 funcsetcestrclem8 funcsetcestrclem7
      estrccat funcsetcestrclem9 isfuncd ) AUAUBUCDGUFQZEEUGQZEUHQZUDUEGHIEUIQZ
      GUHQZGUIQZGUGQZKVARZVDRVFRVCRVERVBRVGRAFSUJZEUKUJMEFSJULUMAVIGUKUJMGFSPUR
      UMABVADEFGHJKLMNPVHUNABCDEFHIJKLMNOUOABCDEFGHIUATZUBTZJKLMNOPUPABCDEFGHIV
      JJKLMNOPUQABCDEFGHIUDTUETVJVKUCTJKLMNOPUSUT $.

    $( The "embedding functor" from the category of sets into the category of
       extensible structures which sends each set to an extensible structure
       consisting of the base set slot only is faithful.  (Contributed by AV,
       31-Mar-2020.) $)
    fthsetcestrc $p |- ( ph -> F ( S Faith E ) G ) $=
      ( vh co cfv wcel va vb vk cfunc wbr cv chom wral cfth funcsetcestrc wa wf
      wf1 wceq weq funcsetcestrclem8 cmap cwun adantr eqid cbs setcbas syl6reqr
      eleq2d biimpcd impcom adantl funcsetcestrclem6 3expia sylbid com12 biimpd
      wi setchom eqeq12d ralrimivva dff13 sylanbrc isfth2 ) AHIEGUDRUEUAUFZUBUF
      ZEUGSZRZVTHSWAHSGUGSZRZVTWAIRZUMZUBDUHUADUHHIEGUIRUEABCDEFGHIJKLMNOPUJAWG
      UAUBDDAVTDTZWADTZUKZUKZWCWEWFULQUFZWFSZUCUFZWFSZUNZQUCUOZVMZUCWCUHQWCUHWG
      ABCDEFGHIVTWAJKLMNOPUPWKWRQUCWCWCWKWLWCTZWNWCTZUKZUKZWPWQXBWMWLWOWNXAWKWM
      WLUNZWSWKXCVMWTWKWSXCWKWSWLWAVTUQRZTZXCWKWCXDWLWKEFWBURVTWAJAFURTWJMUSWBU
      TZWJAVTFTZWHAXGVMWIAWHXGADFVTAFEVASDAEFURJMVBKVCZVDVEUSVFWJAWAFTZWIAXIVMW
      HAWIXIADFWAXHVDVEVGVFVNZVDAWJXEXCABCDEFHIWLVTWAJKLMNOVHVIVJVKUSVFXAWKWOWN
      UNZWTWKXKVMWSWKWTXKWKWTWNXDTZXKWKWCXDWNXJVDAWJXLXKABCDEFHIWNVTWAJKLMNOVHV
      IVJVKVGVFVOVLVPQUCWCWEWFVQVRVPUAUBDEGHIWBWDKXFWDUTVSVR $.

    $( The "embedding functor" from the category of sets into the category of
       extensible structures which sends each set to an extensible structure
       consisting of the base set slot only is full.  (Contributed by AV,
       1-Apr-2020.) $)
    fullsetcestrc $p |- ( ph -> F ( S Full E ) G ) $=
      ( vh vk cfv wcel va vb cfunc co wbr cv chom wral cful funcsetcestrc wa wf
      wfo wceq wrex funcsetcestrclem8 cbs cwun adantr funcsetcestrclem2 adantrr
      eqid adantrl elestrchom cnx cop funcsetcestrclem1 fveq2d 1strbas ad2antrl
      csn eqtr4d ad2antll feq23d weq wb simpr ancomd elmapg syl biimpar equequ2
      cmap adantl eqidd rspcedvd funcsetcestrclem6 3expa eqeq2d rexbidva mpbird
      wi setcbas syl6reqr eleq2d biimpcd impcom setchom rexeqdv sylbid ralrimiv
      ex dffo3 sylanbrc ralrimivva isfull2 ) AHIEGUCUDUEUAUFZUBUFZEUGSZUDZXGHSZ
      XHHSZGUGSZUDZXGXHIUDZUMZUBDUHUADUHHIEGUIUDUEABCDEFGHIJKLMNOPUJAXPUAUBDDAX
      GDTZXHDTZUKZUKZXJXNXOULQUFZRUFZXOSZUNZRXJUOZQXNUHXPABCDEFGHIXGXHJKLMNOPUP
      XTYEQXNXTYAXNTXKUQSZXLUQSZYAULZYEXTYFYGGFYAXMURXKXLPAFURTXSMUSZXMVBZAXQXK
      FTXRABDEFHXGJKLMNUTVAAXRXLFTXQABDEFHXHJKLMNUTVCYFVBYGVBVDXTYHXGXHYAULZYEX
      TYFYGXGXHYAXTYFVEUQSZXGVFVKZUQSZXGXTXKYMUQAXQXKYMUNXRABDEFHXGJKLVGVAVHXQX
      GYNUNAXRXGYMDYMVBVIVJVLXTYGYLXHVFVKZUQSZXHXTXLYOUQAXRXLYOUNXQABDEFHXHJKLV
      GVCVHXRXHYPUNAXQXHYODYOVBVIVMVLVNXTYKYEXTYKUKZYEYDRXHXGWCUDZUOZYQYSQRVOZR
      YRUOZYQYTQQVOZRYAYRXTYAYRTZYKXTXRXQUKUUCYKVPXTXQXRAXSVQVRXHXGYADDVSVTWARQ
      VOYTUUBVPYQRQQWBWDYQYAWEWFXTYSUUAVPYKXTYDYTRYRXTYBYRTZUKYCYBYAAXSUUDYCYBU
      NABCDEFHIYBXGXHJKLMNOWGWHWIWJUSWKXTYEYSVPYKXTYDRXJYRXTEFXIURXGXHJYIXIVBZX
      SAXGFTZXQAUUFWLXRAXQUUFADFXGAFEUQSDAEFURJMWMKWNZWOWPUSWQXSAXHFTZXRAUUHWLX
      QAXRUUHADFXHUUGWOWPWDWQWRWSUSWKXBWTWTXARQXJXNXOXCXDXEUAUBDEGHIXIXMKYJUUEX
      FXD $.

    $d B x $.
    embedsetcestrc.b $e |- B = ( Base ` E ) $.
    $( The "embedding functor" from the category of sets into the category of
       extensible structures which sends each set to an extensible structure
       consisting of the base set slot only is an embedding.  According to
       definition 3.27 (1) of [Adamek] p. 34, a functor "F is called an
       _embedding_ provided that F is injective on morphisms", or according to
       remark 3.28 (1) in [Adamek] p. 34, "a functor is an embedding if and
       only if it is faithful and injective on objects".  (Contributed by AV,
       31-Mar-2020.) $)
    embedsetcestrc $p |- ( ph -> ( F ( S Faith E ) G /\ F : C -1-1-> B ) ) $=
      ( cfth co wbr wf1 fthsetcestrc embedsetcestrclem jca ) AIJFHSTUAEDIUBABCE
      FGHIJKLMNOPQUCABDEFGHIKLMNOQRUDUE $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Categorical constructions
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Product of categories
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Xc. $.
  $c 1stF $.
  $c 2ndF $.
  $c pairF $.

  $( Extend class notation with the product of two categories. $)
  cxpc $a class Xc. $.

  $( Extend class notation with the first projection functor. $)
  c1stf $a class 1stF $.

  $( Extend class notation with the second projection functor. $)
  c2ndf $a class 2ndF $.

  $( Extend class notation with the functor pairing operation. $)
  cprf $a class pairF $.

  ${
    $d b f g h r s u v x y $.
    $( Define the binary product of categories, which has objects for each pair
       of objects of the factors, and morphisms for each pair of morphisms of
       the factors.  Composition is componentwise.  (Contributed by Mario
       Carneiro, 10-Jan-2017.) $)
    df-xpc $a |- Xc. = ( r e. _V , s e. _V |->
    [_ ( ( Base ` r ) X. ( Base ` s ) ) / b ]_
    [_ ( u e. b , v e. b |-> ( ( ( 1st ` u ) ( Hom ` r ) ( 1st ` v ) ) X.
        ( ( 2nd ` u ) ( Hom ` s ) ( 2nd ` v ) ) ) ) / h ]_
    { <. ( Base ` ndx ) , b >. ,
      <. ( Hom ` ndx ) , h >. ,
      <. ( comp ` ndx ) , ( x e. ( b X. b ) , y e. b |->
        ( g e. ( ( 2nd ` x ) h y ) , f e. ( h ` x ) |->
        <. ( ( 1st ` g ) ( <. ( 1st ` ( 1st ` x ) ) ,
          ( 1st ` ( 2nd ` x ) ) >. ( comp ` r ) ( 1st ` y ) ) ( 1st ` f ) ) ,
           ( ( 2nd ` g ) ( <. ( 2nd ` ( 1st ` x ) ) ,
          ( 2nd ` ( 2nd ` x ) ) >. ( comp ` s ) ( 2nd ` y ) ) ( 2nd ` f ) ) >.
          ) ) >. } ) $.

    $( Define the first projection functor out of the product of categories.
       (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    df-1stf $a |- 1stF = ( r e. Cat , s e. Cat |->
    [_ ( ( Base ` r ) X. ( Base ` s ) ) / b ]_
      <. ( 1st |` b ) , ( x e. b , y e. b |->
        ( 1st |` ( x ( Hom ` ( r Xc. s ) ) y ) ) ) >. ) $.

    $( Define the second projection functor out of the product of categories.
       (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    df-2ndf $a |- 2ndF = ( r e. Cat , s e. Cat |->
    [_ ( ( Base ` r ) X. ( Base ` s ) ) / b ]_
      <. ( 2nd |` b ) , ( x e. b , y e. b |->
        ( 2nd |` ( x ( Hom ` ( r Xc. s ) ) y ) ) ) >. ) $.

    $( Define the pairing operation for functors (which takes two functors
       ` F : C --> D ` and ` G : C --> E ` and produces
       ` ( F pairF G ) : C --> ( D Xc. E ) ` ).  (Contributed by Mario
       Carneiro, 11-Jan-2017.) $)
    df-prf $a |- pairF = ( f e. _V , g e. _V |-> [_ dom ( 1st ` f ) / b ]_
      <. ( x e. b |-> <. ( ( 1st ` f ) ` x ) , ( ( 1st ` g ) ` x ) >. ) ,
         ( x e. b , y e. b |-> ( h e. dom ( x ( 2nd ` f ) y ) |->
    <. ( ( x ( 2nd ` f ) y ) ` h ) , ( ( x ( 2nd ` g ) y ) ` h ) >. ) ) >. ) $.

    $( The binary product of categories is a two-argument function.
       (Contributed by Mario Carneiro, 10-Jan-2017.) $)
    fnxpc $p |- Xc. Fn ( _V X. _V ) $=
      ( vr vs vb vh vu vv vx vy vg vf cv cbs cfv cxp c1st chom c2nd cmpt2 cop
      co cvv cnx cco ctp csb cxpc df-xpc tpex csbex fnmpt2i ) ABUAUACAKZLMBKZLM
      NZDEFCKZUNEKZOMFKZOMUKPMTUOQMUPQMULPMTNRZUBLMUNSZUBPMDKZSZUBUCMGHUNUNNUNI
      JGKZQMZHKZUSTVAUSMIKZOMJKZOMVAOMZOMVBOMSVCOMUKUCMTTVDQMVEQMVFQMVBQMSVCQMU
      LUCMTTSRRSZUDZUEZUEUFGHFEJIDBACUGCUMVIDUQVHURUTVGUHUIUIUJ $.
  $}

  ${
    $d b f g h r s u v x y B $.  $d b h r s O $.  $d b f g h r s u v x y ph $.
    $d b f g h r s u v x y C $.  $d b f g h r s u v x y D $.
    $d b f g h r s x y K $.
    xpcval.t $e |- T = ( C Xc. D ) $.
    xpcval.x $e |- X = ( Base ` C ) $.
    xpcval.y $e |- Y = ( Base ` D ) $.
    xpcval.h $e |- H = ( Hom ` C ) $.
    xpcval.j $e |- J = ( Hom ` D ) $.
    xpcval.o1 $e |- .x. = ( comp ` C ) $.
    xpcval.o2 $e |- .xb = ( comp ` D ) $.
    xpcval.c $e |- ( ph -> C e. V ) $.
    xpcval.d $e |- ( ph -> D e. W ) $.
    xpcval.b $e |- ( ph -> B = ( X X. Y ) ) $.
    xpcval.k $e |- ( ph -> K = ( u e. B , v e. B |->
      ( ( ( 1st ` u ) H ( 1st ` v ) ) X. ( ( 2nd ` u ) J ( 2nd ` v ) ) ) ) ) $.
    xpcval.o $e |- ( ph -> O =
      ( x e. ( B X. B ) , y e. B |->
        ( g e. ( ( 2nd ` x ) K y ) , f e. ( K ` x ) |->
        <. ( ( 1st ` g ) ( <. ( 1st ` ( 1st ` x ) ) ,
          ( 1st ` ( 2nd ` x ) ) >. .x. ( 1st ` y ) ) ( 1st ` f ) ) ,
           ( ( 2nd ` g ) ( <. ( 2nd ` ( 1st ` x ) ) ,
          ( 2nd ` ( 2nd ` x ) ) >. .xb ( 2nd ` y ) ) ( 2nd ` f ) ) >. ) ) ) $.
    $( Value of the binary product of categories.  (Contributed by Mario
       Carneiro, 10-Jan-2017.) $)
    xpcval $p |- ( ph -> T = { <. ( Base ` ndx ) , B >. ,
        <. ( Hom ` ndx ) , K >. , <. ( comp ` ndx ) , O >. } ) $=
      ( vr vs vb vh cxpc co cnx cbs cfv cop chom cco ctp cvv cv c1st c2nd cmpt2
      cxp csb wceq df-xpc a1i wa wcel fvex simprl fveq2d syl6eqr simprr xpeq12d
      adantr eqtr4d vex mpt2ex simpr simplrl oveqd simplrr mpt2eq123dv ad2antrr
      xpex simplr opeq2d fveq1d opeq12d ad3antrrr tpeq123d csbied2 elex ovmpt2d
      syl tpex syl5eq ) AJGHURUSUTVAVBZFVCZUTVDVBZPVCZUTVEVBZQVCZVFZUBAUNUOGHVG
      VGUPUNVHZVAVBZUOVHZVAVBZVLZUQEDUPVHZXTEVHZVIVBZDVHZVIVBZXOVDVBZUSZYAVJVBZ
      YCVJVBZXQVDVBZUSZVLZVKZXHXTVCZXJUQVHZVCZXLBCXTXTVLZXTMLBVHZVJVBZCVHZYNUSZ
      YQYNVBZMVHZVIVBZLVHZVIVBZYQVIVBZVIVBYRVIVBVCZYSVIVBZXOVEVBZUSZUSZUUBVJVBZ
      UUDVJVBZUUFVJVBYRVJVBVCZYSVJVBZXQVEVBZUSZUSZVCZVKZVKZVCZVFZVMZVMZXNURVGUR
      UNUOVGVGUVEVKVNABCDELMUQUOUNUPVOVPAXOGVNZXQHVNZVQZVQZUPXSFUVDXNVGXSVGVRUV
      IXPXRXOVAVSXQVAVSWOVPUVIXSTUAVLZFUVIXPTXRUAUVIXPGVAVBTUVIXOGVAAUVFUVGVTWA
      UCWBUVIXRHVAVBUAUVIXQHVAAUVFUVGWCWAUDWBWDAFUVJVNUVHUKWEWFUVIXTFVNZVQZUQYL
      PUVCXNVGYLVGVRUVLEDXTXTYKUPWGZUVMWHVPUVLYLEDFFYBYDNUSZYGYHOUSZVLZVKZPUVLE
      DXTXTYKFFUVPUVIUVKWIZUVRUVLYFUVNYJUVOUVLYENYBYDUVLYEGVDVBNUVLXOGVDAUVFUVG
      UVKWJZWAUEWBWKUVLYIOYGYHUVLYIHVDVBOUVLXQHVDAUVFUVGUVKWLZWAUFWBWKWDWMAPUVQ
      VNUVHUVKULWNWFUVLYNPVNZVQZYMXIYOXKUVBXMUWBXTFXHUVIUVKUWAWPZWQUWBYNPXJUVLU
      WAWIZWQUWBUVAQXLUWBUVABCFFVLZFMLYRYSPUSZYQPVBZUUCUUEUUGUUHKUSZUSZUULUUMUU
      NUUOIUSZUSZVCZVKZVKZQUWBBCYPXTUUTUWEFUWMUWBXTFXTFUWCUWCWDUWCUWBMLYTUUAUUS
      UWFUWGUWLUWBYNPYRYSUWDWKUWBYQYNPUWDWRUWBUUKUWIUURUWKUWBUUJUWHUUCUUEUWBUUI
      KUUGUUHUWBUUIGVEVBKUWBXOGVEUVLUVFUWAUVSWEWAUGWBWKWKUWBUUQUWJUULUUMUWBUUPI
      UUNUUOUWBUUPHVEVBIUWBXQHVEUVLUVGUWAUVTWEWAUHWBWKWKWSWMWMAQUWNVNUVHUVKUWAU
      MWTWFWQXAXBXBAGRVRGVGVRUIGRXCXEAHSVRHVGVRUJHSXCXEXNVGVRAXIXKXMXFVPXDXG $.
  $}

  ${
    $d f g u v x y C $.  $d f g u v x y D $.  $d f g u v x y X $.
    $d f g u v x y Y $.
    xpcbas.t $e |- T = ( C Xc. D ) $.
    xpcbas.x $e |- X = ( Base ` C ) $.
    xpcbas.y $e |- Y = ( Base ` D ) $.
    $( Set of objects of the binary product of categories.  (Contributed by
       Mario Carneiro, 10-Jan-2017.) $)
    xpcbas $p |- ( X X. Y ) = ( Base ` T ) $=
      ( cvv cbs cfv wceq cop cv c1st co c2nd eqid c0 cxpc vu vv vx vy vg vf cxp
      wcel wa cnx chom cmpt2 cco ctp c1 c5 cdc simpl simpr xpcval catstr baseid
      eqidd snsstp1 fvex eqeltri xpex a1i strfv3 eqcomd wn base0 syl5eq orim12i
      fvprc ianor xpeq0 3imtr4i wfn cdm fnxpc fndm ax-mp fveq2d 3eqtr4a pm2.61i
      wo ndmov ) AIUHZBIUHZUIZDEUGZCJKZLWKWMWLWKWMWLUJJKWLMZUJUKKUAUBWLWLUANZOK
      UBNZOKAUKKZPWOQKWPQKBUKKZPUGULZMZUJUMKUCUDWLWLUGWLUEUFUCNZQKZUDNZWSPXAWSK
      UENZOKUFNZOKXAOKZOKXBOKMXCOKAUMKZPPXDQKXEQKXFQKXBQKMXCQKBUMKZPPMULULZMZUN
      CJIUOUOUPUQMWKUCUDUBUAWLABXHCXGUFUEWQWRWSXIIIDEFGHWQRWRRXGRXHRWIWJURWIWJU
      SWKWLVCWKWSVCWKXIVCUTXIWLWSVAVBWNWTXJVDWLIUHWKDEDAJKZIGAJVEVFEBJKZIHBJVEV
      FVGVHWMRVIVJWKVKZSSJKWLWMVLWIVKZWJVKZWGDSLZESLZWGXMWLSLXNXPXOXQXNDXKSGAJV
      OVMXOEXLSHBJVOVMVNWIWJVPDEVQVRXMCSJXMCABTPSFABITTIIUGZVSTVTXRLWAXRTWBWCWH
      VMWDWEWF $.
  $}

  ${
    $d f g u v x y B $.  $d f g u v x y C $.  $d f g u v x y D $.  $d u v X $.
    $d f g u v x y H $.  $d f g u v x y J $.  $d u v Y $.
    xpchomfval.t $e |- T = ( C Xc. D ) $.
    xpchomfval.y $e |- B = ( Base ` T ) $.
    xpchomfval.h $e |- H = ( Hom ` C ) $.
    xpchomfval.j $e |- J = ( Hom ` D ) $.
    xpchomfval.k $e |- K = ( Hom ` T ) $.
    $( Set of morphisms of the binary product of categories.  (Contributed by
       Mario Carneiro, 11-Jan-2017.) $)
    xpchomfval $p |- K = ( u e. B , v e. B |->
      ( ( ( 1st ` u ) H ( 1st ` v ) ) X. ( ( 2nd ` u ) J ( 2nd ` v ) ) ) ) $=
      ( cvv c1st cfv co c2nd c0 vx vy vg vf wcel wa cxp cmpt2 wceq cnx cbs chom
      cv cop cco ctp c1 c5 cdc eqid simpl simpr xpcbas eqtr4i a1i xpcval catstr
      eqidd homid snsstp2 fvex eqeltri mpt2ex strfv3 wn mpt20 eqcomi cxpc fnxpc
      wfn fndm ax-mp ndmov syl5eq fveq2d str0 3eqtr4g base0 mpt2eq123dv 3eqtr4a
      cdm pm2.61i ) DOUEZEOUEZUFZIBACCBUMZPQAUMZPQGRWPSQWQSQHRUGZUHZUIWOIWSUJUK
      QCUNZUJULQZWSUNZUJUOQUAUBCCUGCUCUDUAUMZSQZUBUMZWSRXCWSQUCUMZPQUDUMZPQXCPQ
      ZPQXDPQUNXEPQDUOQZRRXFSQXGSQXHSQXDSQUNXESQEUOQZRRUNUHUHZUNZUPFULOUQUQURUS
      UNWOUAUBABCDEXJFXIUDUCGHWSXKOODUKQZEUKQZJXMUTZXNUTZLMXIUTXJUTWMWNVAWMWNVB
      CXMXNUGZUIWOCFUKQZXQKDEFXMXNJXOXPVCVDVEWOWSVHWOXKVHVFXKCWSVGVIWTXBXLVJWSO
      UEWOBACCWRCXROKFUKVKVLZXSVMVENVNWOVOZTBATTWRUHZIWSYATBATWRVPVQXTFULQTULQI
      TXTFTULXTFDEVRRTJDEOVRVROOUGZVTVRWKYBUIVSYBVRWAWBWCWDZWENULXAVIWFWGXTBACC
      WRTTWRXTXRTUKQCTXTFTUKYCWEKWHWGZYDXTWRVHWIWJWL $.

    xpchom.x $e |- ( ph -> X e. B ) $.
    xpchom.y $e |- ( ph -> Y e. B ) $.
    $( Set of morphisms of the binary product of categories.  (Contributed by
       Mario Carneiro, 11-Jan-2017.) $)
    xpchom $p |- ( ph -> ( X K Y ) =
      ( ( ( 1st ` X ) H ( 1st ` Y ) ) X. ( ( 2nd ` X ) J ( 2nd ` Y ) ) ) ) $=
      ( c1st cfv c2nd vu vv wcel co cxp wceq cv wa simpl fveq2d oveq12d xpeq12d
      simpr xpchomfval ovex xpex ovmpt2a syl2anc ) AIBUCJBUCIJHUDIRSZJRSZFUDZIT
      SZJTSZGUDZUEZUFPQUAUBIJBBUAUGZRSZUBUGZRSZFUDZVFTSZVHTSZGUDZUEVEHVFIUFZVHJ
      UFZUHZVJVAVMVDVPVGUSVIUTFVPVFIRVNVOUIZUJVPVHJRVNVOUMZUJUKVPVKVBVLVCGVPVFI
      TVQUJVPVHJTVRUJUKULUBUABCDEFGHKLMNOUNVAVDUSUTFUOVBVCGUOUPUQUR $.
  $}

  ${
    $d u v C $.  $d u v D $.  $d u v T $.
    relxpchom.t $e |- T = ( C Xc. D ) $.
    relxpchom.k $e |- K = ( Hom ` T ) $.
    $( A hom-set in the binary product of categories is a relation.
       (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    relxpchom $p |- Rel ( X K Y ) $=
      ( vu vv co cvv cxp wss cv c1st cfv chom c2nd eqid wrel cbs rgen2w ovmptss
      wral xpss xpchomfval ax-mp df-rel mpbir ) EFDKZUAUKLLMZNZIOZPQJOZPQARQZKZ
      UNSQUOSQBRQZKZMZULNZJCUBQZUEIVBUEUMVAIJVBVBUQUSUFUCIJVBVBUTEDFULJIVBABCUP
      URDGVBTUPTURTHUGUDUHUKUIUJ $.
  $}

  ${
    $d f g u v x y B $.  $d f g u v x y C $.  $d f g x y F $.  $d f g x y ph $.
    $d f g u v x y D $.  $d f g x y G $.  $d f g x y .x. $.  $d f g x y .xb $.
    $d f g x y K $.  $d f g x y X $.  $d f g x y Y $.  $d f g x y Z $.
    $d x y O $.
    xpccofval.t $e |- T = ( C Xc. D ) $.
    xpccofval.b $e |- B = ( Base ` T ) $.
    xpccofval.k $e |- K = ( Hom ` T ) $.
    xpccofval.o1 $e |- .x. = ( comp ` C ) $.
    xpccofval.o2 $e |- .xb = ( comp ` D ) $.
    xpccofval.o $e |- O = ( comp ` T ) $.
    $( Value of composition in the binary product of categories.  (Contributed
       by Mario Carneiro, 11-Jan-2017.) $)
    xpccofval $p |- O = ( x e. ( B X. B ) , y e. B |->
        ( g e. ( ( 2nd ` x ) K y ) , f e. ( K ` x ) |->
        <. ( ( 1st ` g ) ( <. ( 1st ` ( 1st ` x ) ) ,
          ( 1st ` ( 2nd ` x ) ) >. .x. ( 1st ` y ) ) ( 1st ` f ) ) ,
           ( ( 2nd ` g ) ( <. ( 2nd ` ( 1st ` x ) ) ,
          ( 2nd ` ( 2nd ` x ) ) >. .xb ( 2nd ` y ) ) ( 2nd ` f ) ) >. ) ) $=
      ( cfv c0 vv vu cvv wcel wa cxp cv c2nd co c1st cop cmpt2 wceq cnx cbs cco
      chom ctp c1 c5 cdc eqid simpl simpr xpcbas eqtr4i xpchomfval eqidd xpcval
      catstr ccoid snsstp3 fvex eqeltri xpex mpt2ex strfv3 wn mpt20 eqcomi cxpc
      a1i wfn cdm fnxpc fndm ax-mp ndmov syl5eq fveq2d 3eqtr4g base0 xpeq2d xp0
      str0 syl6eq mpt2eq123dv 3eqtr4a pm2.61i ) DUCUDZEUCUDZUEZLABCCUFZCJIAUGZU
      HSZBUGZKUIXDKSJUGZUJSIUGZUJSXDUJSZUJSXEUJSUKXFUJSHUIUIXGUHSXHUHSXIUHSXEUH
      SUKXFUHSFUIUIUKULZULZUMXBLXKUNUOSCUKZUNUQSKUKZUNUPSZXKUKZURGUPUCUSUSUTVAU
      KXBABUAUBCDEFGHIJDUQSZEUQSZKXKUCUCDUOSZEUOSZMXRVBZXSVBZXPVBZXQVBZPQWTXAVC
      WTXAVDCXRXSUFZUMXBCGUOSZYDNDEGXRXSMXTYAVEVFWBKUBUACCUBUGZUJSUAUGZUJSXPUIY
      FUHSYGUHSXQUIUFULUMXBUAUBCDEGXPXQKMNYBYCOVGWBXBXKVHVIXKCKVJVKXLXMXOVLXKUC
      UDXBABXCCXJCCCYEUCNGUOVMVNZYHVOYHVPWBRVQXBVRZTABTTXJULZLXKYJTABTXJVSVTYIG
      UPSTUPSLTYIGTUPYIGDEWAUITMDEUCWAWAUCUCUFZWCWAWDYKUMWEYKWAWFWGWHWIZWJRUPXN
      VKWOWKYIABXCCXJTTXJYIXCCTUFTYICTCYIYETUOSCTYIGTUOYLWJNWLWKZWMCWNWPYMYIXJV
      HWQWRWS $.

    xpcco.x $e |- ( ph -> X e. B ) $.
    xpcco.y $e |- ( ph -> Y e. B ) $.
    xpcco.z $e |- ( ph -> Z e. B ) $.
    xpcco.f $e |- ( ph -> F e. ( X K Y ) ) $.
    xpcco.g $e |- ( ph -> G e. ( Y K Z ) ) $.
    $( Value of composition in the binary product of categories.  (Contributed
       by Mario Carneiro, 11-Jan-2017.) $)
    xpcco $p |- ( ph -> ( G ( <. X , Y >. O Z ) F ) =
        <. ( ( 1st ` G ) ( <. ( 1st ` X ) ,
          ( 1st ` Y ) >. .x. ( 1st ` Z ) ) ( 1st ` F ) ) ,
           ( ( 2nd ` G ) ( <. ( 2nd ` X ) ,
          ( 2nd ` Y ) >. .xb ( 2nd ` Z ) ) ( 2nd ` F ) ) >. ) $=
      ( vx vy vg vf cxp cv c2nd cfv co c1st cop wceq xpccofval cvv wcel opelxpi
      cmpt2 syl2anc adantr wa ovex mpt2ex a1i simprl fveq2d op2ndg eqtrd simprr
      fvex oveq12d eleqtrrd df-ov syl6eqr opex op1stg opeq12d simplrr ovmpt2dv2
      oveq123d ovmpt2dv mpi ) AKUFUGBBUJZBUHUIUFUKZULUMZUGUKZJUNZWHJUMZUHUKZUOU
      MZUIUKZUOUMZWHUOUMZUOUMZWIUOUMZUPZWJUOUMZGUNZUNZWMULUMZWOULUMZWQULUMZWIUL
      UMZUPZWJULUMZEUNZUNZUPZVBZVBUQIHLMUPZNKUNZUNIUOUMZHUOUMZLUOUMZMUOUMZUPZNU
      OUMZGUNZUNZIULUMZHULUMZLULUMZMULUMZUPZNULUMZEUNZUNZUPZUQZUFUGBCDEFGUIUHJK
      OPQRSTURAYMUFUGXNNWGBXMKUSALBUTZMBUTZXNWGUTUAUBLMBBVAVCANBUTWHXNUQZUCVDXM
      USUTAYPWJNUQZVEZVEZUHUIWKWLXLWIWJJVFWHJVNVGVHYSUHUIIHWKWLXLYLXOUSYSIMNJUN
      ZWKAIYTUTYRUEVDYSWIMWJNJYSWIXNULUMZMYSWHXNULAYPYQVIZVJAUUAMUQZYRAYNYOUUCU
      AUBLMBBVKVCVDVLZAYPYQVMVOVPYSHWLUTWMIUQZYSHLMJUNZWLAHUUFUTYRUDVDYSWLXNJUM
      UUFYSWHXNJUUBVJLMJVQVRVPVDXLUSUTYSUUEWOHUQZVEZVEZXCXKVSVHUUIXCYCXKYKUUIWN
      XPWPXQXBYBUUIWTXTXAYAGUUIWRXRWSXSUUIWQLUOYSWQLUQUUHYSWQXNUOUMZLYSWHXNUOUU
      BVJAUUJLUQZYRAYNYOUUKUAUBLMBBVTVCVDVLVDZVJUUIWIMUOYSWIMUQUUHUUDVDZVJWAUUI
      WJNUOAYPYQUUHWBZVJVOUUIWMIUOYSUUEUUGVIZVJUUIWOHUOYSUUEUUGVMZVJWDUUIXDYDXE
      YEXJYJUUIXHYHXIYIEUUIXFYFXGYGUUIWQLULUULVJUUIWIMULUUMVJWAUUIWJNULUUNVJVOU
      UIWMIULUUOVJUUIWOHULUUPVJWDWAWCWEWF $.
  $}

  ${
    xpcco1st.t $e |- T = ( C Xc. D ) $.
    xpcco1st.b $e |- B = ( Base ` T ) $.
    xpcco1st.k $e |- K = ( Hom ` T ) $.
    xpcco1st.o $e |- O = ( comp ` T ) $.
    xpcco1st.x $e |- ( ph -> X e. B ) $.
    xpcco1st.y $e |- ( ph -> Y e. B ) $.
    xpcco1st.z $e |- ( ph -> Z e. B ) $.
    xpcco1st.f $e |- ( ph -> F e. ( X K Y ) ) $.
    xpcco1st.g $e |- ( ph -> G e. ( Y K Z ) ) $.
    ${
      xpcco1st.1 $e |- .x. = ( comp ` C ) $.
      $( Value of composition in the binary product of categories.
         (Contributed by Mario Carneiro, 11-Jan-2017.) $)
      xpcco1st $p |- ( ph -> ( 1st ` ( G ( <. X , Y >. O Z ) F ) ) =
        ( ( 1st ` G ) ( <. ( 1st ` X ) ,
          ( 1st ` Y ) >. .x. ( 1st ` Z ) ) ( 1st ` F ) ) ) $=
        ( cop co c1st cfv c2nd cco wceq eqid xpcco ovex op1std syl ) AHGKLUDMJU
        EUEZHUFUGZGUFUGZKUFUGLUFUGUDMUFUGFUEZUEZHUHUGZGUHUGZKUHUGLUHUGUDMUHUGDU
        IUGZUEZUEZUDUJUPUFUGUTUJABCDVCEFGHIJKLMNOPUCVCUKQRSTUAUBULUTVEUPUQURUSU
        MVAVBVDUMUNUO $.
    $}

    ${
      xpcco2nd.1 $e |- .x. = ( comp ` D ) $.
      $( Value of composition in the binary product of categories.
         (Contributed by Mario Carneiro, 11-Jan-2017.) $)
      xpcco2nd $p |- ( ph -> ( 2nd ` ( G ( <. X , Y >. O Z ) F ) ) =
        ( ( 2nd ` G ) ( <. ( 2nd ` X ) ,
          ( 2nd ` Y ) >. .x. ( 2nd ` Z ) ) ( 2nd ` F ) ) ) $=
        ( cop co c1st cfv cco c2nd wceq eqid xpcco ovex op2ndd syl ) AHGKLUDMJU
        EUEZHUFUGZGUFUGZKUFUGLUFUGUDMUFUGCUHUGZUEZUEZHUIUGZGUIUGZKUIUGLUIUGUDMU
        IUGFUEZUEZUDUJUPUIUGVEUJABCDFEUSGHIJKLMNOPUSUKUCQRSTUAUBULVAVEUPUQURUTU
        MVBVCVDUMUNUO $.
    $}
  $}

  ${
    xpcco2.t $e |- T = ( C Xc. D ) $.
    xpcco2.x $e |- X = ( Base ` C ) $.
    xpcco2.y $e |- Y = ( Base ` D ) $.
    xpcco2.h $e |- H = ( Hom ` C ) $.
    xpcco2.j $e |- J = ( Hom ` D ) $.
    xpcco2.m $e |- ( ph -> M e. X ) $.
    xpcco2.n $e |- ( ph -> N e. Y ) $.
    xpcco2.p $e |- ( ph -> P e. X ) $.
    xpcco2.q $e |- ( ph -> Q e. Y ) $.
    ${
      xpchom2.k $e |- K = ( Hom ` T ) $.
      $( Value of the set of morphisms in the binary product of categories.
         (Contributed by Mario Carneiro, 11-Jan-2017.) $)
      xpchom2 $p |- ( ph ->
        ( <. M , N >. K <. P , Q >. ) = ( ( M H P ) X. ( N J Q ) ) ) $=
        ( cop c1st cfv c2nd cxp xpcbas wcel opelxpi syl2anc xpchom wceq oveq12d
        co op1stg op2ndg xpeq12d eqtrd ) AJKUDZDEUDZIUPVAUEUFZVBUEUFZGUPZVAUGUF
        ZVBUGUFZHUPZUHJDGUPZKEHUPZUHALMUHZBCFGHIVAVBNBCFLMNOPUIQRUCAJLUJZKMUJZV
        AVKUJSTJKLMUKULADLUJZEMUJZVBVKUJUAUBDELMUKULUMAVEVIVHVJAVCJVDDGAVLVMVCJ
        UNSTJKLMUQULAVNVOVDDUNUAUBDELMUQULUOAVFKVGEHAVLVMVFKUNSTJKLMURULAVNVOVG
        EUNUAUBDELMURULUOUSUT $.
    $}

    xpcco2.o1 $e |- .x. = ( comp ` C ) $.
    xpcco2.o2 $e |- .xb = ( comp ` D ) $.
    xpcco2.o $e |- O = ( comp ` T ) $.
    xpcco2.r $e |- ( ph -> R e. X ) $.
    xpcco2.s $e |- ( ph -> S e. Y ) $.
    xpcco2.f $e |- ( ph -> F e. ( M H P ) ) $.
    xpcco2.g $e |- ( ph -> G e. ( N J Q ) ) $.
    xpcco2.k $e |- ( ph -> K e. ( P H R ) ) $.
    xpcco2.l $e |- ( ph -> L e. ( Q J S ) ) $.
    $( Value of composition in the binary product of categories.  (Contributed
       by Mario Carneiro, 11-Jan-2017.) $)
    xpcco2 $p |- ( ph -> ( <. K , L >. ( <. <. M , N >. ,
      <. P , Q >. >. O <. R , S >. ) <. F , G >. ) =
        <. ( K ( <. M , P >. .x. R ) F ) ,
           ( L ( <. N , Q >. .xb S ) G ) >. ) $=
      ( cop co c1st cfv c2nd cxp chom xpcbas eqid wcel opelxpi syl2anc eleqtrrd
      xpchom2 xpcco wceq op1stg opeq12d oveq12d oveq123d op2ndg eqtrd ) AOPUTZK
      LUTZQRUTZDEUTZUTFGUTZSVAVAWBVBVCZWCVBVCZWDVBVCZWEVBVCZUTZWFVBVCZJVAZVAZWB
      VDVCZWCVDVCZWDVDVCZWEVDVCZUTZWFVDVCZHVAZVAZUTOKQDUTZFJVAZVAZPLREUTZGHVAZV
      AZUTATUAVEZBCHIJWCWBIVFVCZSWDWEWFUBBCITUAUBUCUDVGXJVHZUKULUMAQTVIZRUAVIZW
      DXIVIUGUHQRTUAVJVKADTVIZEUAVIZWEXIVIUIUJDETUAVJVKAFTVIZGUAVIZWFXIVIUNUOFG
      TUAVJVKAWCQDMVAZRENVAZVEZWDWEXJVAAKXRVIZLXSVIZWCXTVIUPUQKLXRXSVJVKABCDEIM
      NXJQRTUAUBUCUDUEUFUGUHUIUJXKVMVLAWBDFMVAZEGNVAZVEZWEWFXJVAAOYCVIZPYDVIZWB
      YEVIURUSOPYCYDVJVKABCFGIMNXJDETUAUBUCUDUEUFUIUJUNUOXKVMVLVNAWNXEXBXHAWGOW
      HKWMXDAWKXCWLFJAWIQWJDAXLXMWIQVOUGUHQRTUAVPVKAXNXOWJDVOUIUJDETUAVPVKVQAXP
      XQWLFVOUNUOFGTUAVPVKVRAYFYGWGOVOURUSOPYCYDVPVKAYAYBWHKVOUPUQKLXRXSVPVKVSA
      WOPWPLXAXGAWSXFWTGHAWQRWREAXLXMWQRVOUGUHQRTUAVTVKAXNXOWREVOUIUJDETUAVTVKV
      QAXPXQWTGVOUNUOFGTUAVTVKVRAYFYGWOPVOURUSOPYCYDVTVKAYAYBWPLVOUPUQKLXRXSVTV
      KVSVQWA $.
  $}

  ${
    $d f g h s t u v x y I $.  $d f g h s t u v x y J $.  $d f g h s t u v T $.
    $d x y C $.  $d f g h s t u v x y ph $.  $d f g h s t u v x y X $.
    $d x y D $.  $d x y R $.  $d x y S $.  $d f g h s t u v x y Y $.
    xpccat.t $e |- T = ( C Xc. D ) $.
    xpccat.c $e |- ( ph -> C e. Cat ) $.
    xpccat.d $e |- ( ph -> D e. Cat ) $.
    ${
      xpccat.x $e |- X = ( Base ` C ) $.
      xpccat.y $e |- Y = ( Base ` D ) $.
      xpccat.i $e |- I = ( Id ` C ) $.
      xpccat.j $e |- J = ( Id ` D ) $.
      $( The product of two categories is a category.  (Contributed by Mario
         Carneiro, 11-Jan-2017.) $)
      xpccatid $p |- ( ph -> ( T e. Cat /\ ( Id ` T ) = ( x e. X , y e. Y |->
        <. ( I ` x ) , ( J ` y ) >. ) ) ) $=
        ( wcel cfv co vt vs vu vv vf vg vh ccat ccid cxp cv c1st c2nd cmpt wceq
        cop cmpt2 chom w3a cco cvv cbs xpcbas eqidd cxpc ovex eqeltri biid eqid
        wa a1i adantr xp1st adantl catidcl xp2nd opelxpi syl2anc simpr eleqtrrd
        xpchom op1st oveq1i simpr1l simpr1r simpr31 eleqtrd catlid syl5eq op2nd
        fvex opeq12d syldan xpcco 1st2nd2 3eqtr4d oveq2i simpr2l simpr32 catrid
        syl catcocl 3eltr4d simpr2r simpr33 catass fveq2d syl6eq oveq1d iscatd2
        oveq2d vex op1std op2ndd mpt2mpt eqeq2i anbi2i sylib ) AFUHRZFUISZUAIJU
        JZUAUKZULSZGSZYBUMSZHSZUPZUNZUOZVJXSXTBCIJBUKZGSZCUKZHSZUPZUQZUOZVJAUBU
        KZYARZYBYARZVJZUCUKZYARZUDUKZYARZVJZUEUKZYQYBFURSZTZRZUFUKZYBUUAUUGTZRZ
        UGUKZUUAUUCUUGTZRZUSZUSZUBUAUCUDYAFFUTSZYGUEUFUGUUGVAYAFVBSUOADEFIJKNOV
        CZVKAUUGVDAUURVDFVARAFDEVETVAKDEVEVFVGVKUUQVHAYSVJZYGYCYCDURSZTZYEYEEUR
        SZTZUJZYBYBUUGTZUUTYDUVBRYFUVDRYGUVERUUTIDGUVAYCNUVAVIZPADUHRZYSLVLYSYC
        IRZAYBIJVMZVNVOUUTJEHUVCYEOUVCVIZQAEUHRZYSMVLYSYEJRZAYBIJVPZVNVOYDYFUVB
        UVDVQVRUUTYADEFUVAUVCUUGYBYBKUUSUVGUVKUUGVIZAYSVSZUVPWAVTZAUUQVJZYGULSZ
        UUFULSZYQULSZYCUPZYCDUTSZTZTZYGUMSZUUFUMSZYQUMSZYEUPZYEEUTSZTZTZUPUVTUW
        GUPZYGUUFYQYBUPZYBUURTTUUFUVRUWEUVTUWLUWGUVRUWEYDUVTUWDTUVTUVSYDUVTUWDY
        DYFYCGWKZYEHWKZWBZWCUVRIDUWCGUVTUVAUWAYCNUVGPAUVHUUQLVLZUVRYRUWAIRYRYSU
        UEUUPAWDZYQIJVMXAZUWCVIZUVRYSUVIYRYSUUEUUPAWEZUVJXAZUVRUUFUWAYCUVATZUWH
        YEUVCTZUJZRZUVTUXDRUVRUUFUUHUXFUUIUULUUOYTUUEAWFZUVRYADEFUVAUVCUUGYQYBK
        UUSUVGUVKUVOUWSUXBWAWGZUUFUXDUXEVMXAZWHWIUVRUWLYFUWGUWKTUWGUWFYFUWGUWKY
        DYFUWOUWPWJZWCUVRJEUWJHUWGUVCUWHYEOUVKQAUVLUUQMVLZUVRYRUWHJRUWSYQIJVPXA
        ZUWJVIZUVRYSUVMUXBUVNXAZUVRUXGUWGUXERUXIUUFUXDUXEVPXAZWHWIWLUVRYADEUWJF
        UWCUUFYGUUGUURYQYBYBKUUSUVOUXAUXNUURVIZUWSUXBUXBUXHAUUQYSYGUVFRUXBUVQWM
        ZWNUVRUXGUUFUWMUOUXIUUFUXDUXEWOXAWPUVRUUJULSZUVSYCYCUPUUAULSZUWCTZTZUUJ
        UMSZUWFYEYEUPUUAUMSZUWJTZTZUPUXSUYCUPZUUJYGYBYBUPUUAUURTTUUJUVRUYBUXSUY
        FUYCUVRUYBUXSYDUYATUXSUVSYDUXSUYAUWQWQUVRIDUWCGUXSUVAYCUXTNUVGPUWRUXCUX
        AUVRUUBUXTIRUUBUUDYTUUPAWRZUUAIJVMXAZUVRUUJYCUXTUVATZYEUYDUVCTZUJZRZUXS
        UYJRUVRUUJUUKUYLUUIUULUUOYTUUEAWSZUVRYADEFUVAUVCUUGYBUUAKUUSUVGUVKUVOUX
        BUYHWAWGZUUJUYJUYKVMXAZWTWIUVRUYFUYCYFUYETUYCUWFYFUYCUYEUXKWQUVRJEUWJHU
        YCUVCYEUYDOUVKQUXLUXOUXNUVRUUBUYDJRUYHUUAIJVPXAZUVRUYMUYCUYKRUYOUUJUYJU
        YKVPXAZWTWIWLUVRYADEUWJFUWCYGUUJUUGUURYBYBUUAKUUSUVOUXAUXNUXQUXBUXBUYHU
        XRUYNWNUVRUYMUUJUYGUOUYOUUJUYJUYKWOXAWPUVRUXSUVTUWBUXTUWCTZTZUYCUWGUWIU
        YDUWJTZTZUPZUWAUXTUVATZUWHUYDUVCTZUJZUUJUUFUWNUUAUURTTZYQUUAUUGTUVRUYTV
        UDRVUBVUERVUCVUFRUVRIDUWCUVTUXSUVAUWAYCUXTNUVGUXAUWRUWTUXCUYIUXJUYPXBUV
        RJEUWJUWGUYCUVCUWHYEUYDOUVKUXNUXLUXMUXOUYQUXPUYRXBUYTVUBVUDVUEVQVRUVRYA
        DEUWJFUWCUUFUUJUUGUURYQYBUUAKUUSUVOUXAUXNUXQUWSUXBUYHUXHUYNWNZUVRYADEFU
        VAUVCUUGYQUUAKUUSUVGUVKUVOUWSUYHWAXCZUVRUUMUUJYBUUAUPUUCUURTTZULSZUVTUW
        BUUCULSZUWCTZTZVUJUMSZUWGUWIUUCUMSZUWJTZTZUPUUMULSZVUGULSZUWAUXTUPVULUW
        CTZTZUUMUMSZVUGUMSZUWHUYDUPVUPUWJTZTZUPVUJUUFUWNUUCUURTTUUMVUGYQUUAUPUU
        CUURTTUVRVUNVVBVURVVFUVRVUSUXSYCUXTUPVULUWCTZTZUVTVUMTVUSUYTVVATVUNVVBU
        VRIDUWCUVTUXSUVAVUSVULUWAYCUXTNUVGUXAUWRUWTUXCUYIUXJUYPUVRUUDVULIRUUBUU
        DYTUUPAXDZUUCIJVMXAZUVRUUMUXTVULUVATZUYDVUPUVCTZUJZRZVUSVVKRUVRUUMUUNVV
        MUUIUULUUOYTUUEAXEZUVRYADEFUVAUVCUUGUUAUUCKUUSUVGUVKUVOUYHVVIWAWGZUUMVV
        KVVLVMXAZXFUVRVUKVVHUVTVUMUVRVUKVVHVVCUYCYEUYDUPVUPUWJTZTZUPZULSVVHUVRV
        UJVVTULUVRYADEUWJFUWCUUJUUMUUGUURYBUUAUUCKUUSUVOUXAUXNUXQUXBUYHVVIUYNVV
        OWNZXGVVHVVSVUSUXSVVGVFZVVCUYCVVRVFZWBXHXIUVRVUTUYTVUSVVAUVRVUTVUCULSUY
        TUVRVUGVUCULVUHXGUYTVUBUXSUVTUYSVFZUYCUWGVUAVFZWBXHXKWPUVRVVSUWGVUQTVVC
        VUBVVETVURVVFUVRJEUWJUWGUYCUVCVVCVUPUWHYEUYDOUVKUXNUXLUXMUXOUYQUXPUYRUV
        RUUDVUPJRVVIUUCIJVPXAZUVRVVNVVCVVLRVVPUUMVVKVVLVPXAZXFUVRVUOVVSUWGVUQUV
        RVUOVVTUMSVVSUVRVUJVVTUMVWAXGVVHVVSVWBVWCWJXHXIUVRVVDVUBVVCVVEUVRVVDVUC
        UMSVUBUVRVUGVUCUMVUHXGUYTVUBVWDVWEWJXHXKWPWLUVRYADEUWJFUWCUUFVUJUUGUURY
        QYBUUCKUUSUVOUXAUXNUXQUWSUXBVVIUXHUVRVVTYCVULUVATZYEVUPUVCTZUJZVUJYBUUC
        UUGTUVRVVHVWHRVVSVWIRVVTVWJRUVRIDUWCUXSVUSUVAYCUXTVULNUVGUXAUWRUXCUYIVV
        JUYPVVQXBUVRJEUWJUYCVVCUVCYEUYDVUPOUVKUXNUXLUXOUYQVWFUYRVWGXBVVHVVSVWHV
        WIVQVRVWAUVRYADEFUVAUVCUUGYBUUCKUUSUVGUVKUVOUXBVVIWAXCWNUVRYADEUWJFUWCV
        UGUUMUUGUURYQUUAUUCKUUSUVOUXAUXNUXQUWSUYHVVIVUIVVOWNWPXJYIYPXSYHYOXTBCU
        AIJYGYNYBYJYLUPUOZYDYKYFYMVWKYCYJGYJYLYBBXLZCXLZXMXGVWKYEYLHYJYLYBVWLVW
        MXNXGWLXOXPXQXR $.

      xpcid.1 $e |- .1. = ( Id ` T ) $.
      xpcid.r $e |- ( ph -> R e. X ) $.
      xpcid.s $e |- ( ph -> S e. Y ) $.
      $( The identity morphism in the product of categories.  (Contributed by
         Mario Carneiro, 11-Jan-2017.) $)
      xpcid $p |- ( ph ->
        ( .1. ` <. R , S >. ) = <. ( I ` R ) , ( J ` S ) >. ) $=
        ( vx vy cop cfv co df-ov cv cvv ccid cmpt2 ccat wcel wceq simprd syl5eq
        xpccatid wa simprl fveq2d simprr opeq12d opex a1i ovmpt2d syl5eqr ) ADE
        UDGUEDEGUFDHUEZEIUEZUDZDEGUGAUBUCDEJKUBUHZHUEZUCUHZIUEZUDZVIGUIAGFUJUEZ
        UBUCJKVNUKZSAFULUMVOVPUNAUBUCBCFHIJKLMNOPQRUQUOUPAVJDUNZVLEUNZURURZVKVG
        VMVHVSVJDHAVQVRUSUTVSVLEIAVQVRVAUTVBTUAVIUIUMAVGVHVCVDVEVF $.
    $}

    $( The product of two categories is a category.  (Contributed by Mario
       Carneiro, 11-Jan-2017.) $)
    xpccat $p |- ( ph -> T e. Cat ) $=
      ( vx vy ccat wcel ccid cfv cbs cv cop cmpt2 wceq eqid xpccatid simpld ) A
      DJKDLMHIBNMZCNMZHOBLMZMIOCLMZMPQRAHIBCDUDUEUBUCEFGUBSUCSUDSUESTUA $.
  $}

  ${
    $d b c d x y B $.  $d b c d x y C $.  $d b c d x y D $.  $d b c d x y H $.
    $d x y ph $.  $d x y R $.  $d x y S $.
    1stfval.t $e |- T = ( C Xc. D ) $.
    1stfval.b $e |- B = ( Base ` T ) $.
    1stfval.h $e |- H = ( Hom ` T ) $.
    1stfval.c $e |- ( ph -> C e. Cat ) $.
    1stfval.d $e |- ( ph -> D e. Cat ) $.
    ${
      1stfval.p $e |- P = ( C 1stF D ) $.
      $( Value of the first projection functor.  (Contributed by Mario
         Carneiro, 11-Jan-2017.) $)
      1stfval $p |- ( ph -> P = <. ( 1st |` B ) ,
        ( x e. B , y e. B |-> ( 1st |` ( x H y ) ) ) >. ) $=
        ( co c1st cv cbs cfv vc vd c1stf cres cmpt2 cop ccat wcel wceq cxp cxpc
        vb chom csb wa cvv fvex xpex a1i simpl fveq2d simpr xpeq12d eqid xpcbas
        eqtr4i syl6eq reseq2d simpll simplr oveq12d syl6eqr mpt2eq123dv opeq12d
        oveqd csbied2 df-1stf opex ovmpt2a syl2anc syl5eq ) AGEFUCPZQDUDZBCDDQB
        RZCRZIPZUDZUEZUFZOAEUGUHFUGUHWBWIUIMNUAUBEFUGUGULUARZSTZUBRZSTZUJZQULRZ
        UDZBCWOWOQWDWEWJWLUKPZUMTZPZUDZUEZUFZUNWIUCWJEUIZWLFUIZUOZULWNDXBWIUPWN
        UPUHXEWKWMWJSUQWLSUQURUSXEWNESTZFSTZUJZDXEWKXFWMXGXEWJESXCXDUTVAXEWLFSX
        CXDVBVAVCXHHSTDEFHXFXGJXFVDXGVDVEKVFVGXEWODUIZUOZWPWCXAWHXJWODQXEXIVBZV
        HXJBCWOWOWTDDWGXKXKXJWSWFQXJWRIWDWEXJWRHUMTIXJWQHUMXJWQEFUKPHXJWJEWLFUK
        XCXDXIVIXCXDXIVJVKJVLVALVLVOVHVMVNVPBCUBUAULVQWCWHVRVSVTWA $.

      1stf1.p $e |- ( ph -> R e. B ) $.
      $( Value of the first projection on an object.  (Contributed by Mario
         Carneiro, 11-Jan-2017.) $)
      1stf1 $p |- ( ph -> ( ( 1st ` P ) ` R ) = ( 1st ` R ) ) $=
        ( vx vy c1st cfv cvv cres cv cmpt2 cop wceq 1stfval wfun wcel wfo fo1st
        co fofun ax-mp cbs fvex eqeltri resfunexg mp2an mpt2ex op1std syl fvres
        fveq1d eqtrd ) AFERSZSFRBUAZSZFRSZAFVEVFAEVFPQBBRPUBQUBHUKUAZUCZUDUEVEV
        FUEAPQBCDEGHIJKLMNUFVFVJERUGZBTUHVFTUHTTRUIVKUJTTRULUMBGUNSTJGUNUOUPZRB
        TUQURPQBBVIVLVLUSUTVAVCAFBUHVGVHUEOFBRVBVAVD $.

      1stf2.p $e |- ( ph -> S e. B ) $.
      $( Value of the first projection on a morphism.  (Contributed by Mario
         Carneiro, 11-Jan-2017.) $)
      1stf2 $p |- ( ph -> ( R ( 2nd ` P ) S ) = ( 1st |` ( R H S ) ) ) $=
        ( vx c1st cvv vy cv co cres c2nd cfv cmpt2 wceq 1stfval wfun wcel fo1st
        cop wfo fofun ax-mp cbs fvex eqeltri resfunexg mpt2ex op2ndd syl simprl
        mp2an wa simprr oveq12d reseq2d ovex a1i ovmpt2d ) ARUAFGBBSRUBZUAUBZIU
        CZUDZSFGIUCZUDZEUEUFZTAESBUDZRUABBVPUGZUMUHVSWAUHARUABCDEHIJKLMNOUIVTWA
        ESUJZBTUKVTTUKTTSUNWBULTTSUOUPZBHUQUFTKHUQURUSZSBTUTVERUABBVPWDWDVAVBVC
        AVMFUHZVNGUHZVFVFZVOVQSWGVMFVNGIAWEWFVDAWEWFVGVHVIPQVRTUKZAWBVQTUKWHWCF
        GIVJSVQTUTVEVKVL $.
    $}

    ${
      2ndfval.p $e |- Q = ( C 2ndF D ) $.
      $( Value of the first projection functor.  (Contributed by Mario
         Carneiro, 11-Jan-2017.) $)
      2ndfval $p |- ( ph -> Q = <. ( 2nd |` B ) ,
        ( x e. B , y e. B |-> ( 2nd |` ( x H y ) ) ) >. ) $=
        ( co c2nd cv cbs cfv vc vd c2ndf cres cmpt2 cop ccat wcel wceq cxp cxpc
        vb chom csb wa cvv fvex xpex a1i simpl fveq2d simpr xpeq12d eqid xpcbas
        eqtr4i syl6eq reseq2d simpll simplr oveq12d syl6eqr mpt2eq123dv opeq12d
        oveqd csbied2 df-2ndf opex ovmpt2a syl2anc syl5eq ) AGEFUCPZQDUDZBCDDQB
        RZCRZIPZUDZUEZUFZOAEUGUHFUGUHWBWIUIMNUAUBEFUGUGULUARZSTZUBRZSTZUJZQULRZ
        UDZBCWOWOQWDWEWJWLUKPZUMTZPZUDZUEZUFZUNWIUCWJEUIZWLFUIZUOZULWNDXBWIUPWN
        UPUHXEWKWMWJSUQWLSUQURUSXEWNESTZFSTZUJZDXEWKXFWMXGXEWJESXCXDUTVAXEWLFSX
        CXDVBVAVCXHHSTDEFHXFXGJXFVDXGVDVEKVFVGXEWODUIZUOZWPWCXAWHXJWODQXEXIVBZV
        HXJBCWOWOWTDDWGXKXKXJWSWFQXJWRIWDWEXJWRHUMTIXJWQHUMXJWQEFUKPHXJWJEWLFUK
        XCXDXIVIXCXDXIVJVKJVLVALVLVOVHVMVNVPBCUBUAULVQWCWHVRVSVTWA $.

      2ndf1.p $e |- ( ph -> R e. B ) $.
      $( Value of the first projection on an object.  (Contributed by Mario
         Carneiro, 11-Jan-2017.) $)
      2ndf1 $p |- ( ph -> ( ( 1st ` Q ) ` R ) = ( 2nd ` R ) ) $=
        ( vx vy cfv c2nd cvv c1st cres cv co cmpt2 wceq 2ndfval wfun wcel fo2nd
        cop wfo fofun ax-mp cbs fvex eqeltri resfunexg mpt2ex op1std syl fveq1d
        mp2an fvres eqtrd ) AFEUARZRFSBUBZRZFSRZAFVFVGAEVGPQBBSPUCQUCHUDUBZUEZU
        KUFVFVGUFAPQBCDEGHIJKLMNUGVGVKESUHZBTUIVGTUITTSULVLUJTTSUMUNBGUORTJGUOU
        PUQZSBTURVCPQBBVJVMVMUSUTVAVBAFBUIVHVIUFOFBSVDVAVE $.

      2ndf2.p $e |- ( ph -> S e. B ) $.
      $( Value of the first projection on a morphism.  (Contributed by Mario
         Carneiro, 11-Jan-2017.) $)
      2ndf2 $p |- ( ph -> ( R ( 2nd ` Q ) S ) = ( 2nd |` ( R H S ) ) ) $=
        ( vx c2nd cvv vy cv cres cfv cmpt2 cop wceq 2ndfval wfun wcel wfo fo2nd
        co fofun ax-mp cbs fvex eqeltri resfunexg mp2an mpt2ex op2ndd wa simprl
        syl simprr oveq12d reseq2d ovex a1i ovmpt2d ) ARUAFGBBSRUBZUAUBZIUMZUCZ
        SFGIUMZUCZESUDZTAESBUCZRUABBVOUEZUFUGVRVTUGARUABCDEHIJKLMNOUHVSVTESUIZB
        TUJVSTUJTTSUKWAULTTSUNUOZBHUPUDTKHUPUQURZSBTUSUTRUABBVOWCWCVAVBVEAVLFUG
        ZVMGUGZVCVCZVNVPSWFVLFVMGIAWDWEVDAWDWEVFVGVHPQVQTUJZAWAVPTUJWGWBFGIVISV
        PTUSUTVJVK $.
    $}
  $}

  ${
    $d f g x y z C $.  $d f g x y z D $.  $d f g x y z P $.  $d f g x y z ph $.
    $d f g x y z Q $.  $d f g x y z T $.
    1stfcl.t $e |- T = ( C Xc. D ) $.
    1stfcl.c $e |- ( ph -> C e. Cat ) $.
    1stfcl.d $e |- ( ph -> D e. Cat ) $.
    ${
      1stfcl.p $e |- P = ( C 1stF D ) $.
      $( The first projection functor is a functor onto the left argument.
         (Contributed by Mario Carneiro, 11-Jan-2017.) $)
      1stfcl $p |- ( ph -> P e. ( T Func C ) ) $=
        ( vx c1st cfv cop co eqid wceq cvv wcel syl fvres vy vz vf cbs cxp cres
        vg c2nd cfunc chom cmpt2 xpcbas 1stfval wfun wfo fo1st fofun ax-mp fvex
        cv xpex resfunexg mp2an mpt2ex op2ndd opeq2d eqtr4d wbr cco ccid xpccat
        wf f1stres a1i wfn ovex fnmpt2i fneq1d mpbiri ccat adantr simprl simprr
        1stf2 xpchom reseq2d eqtrd feq1d ad2antrl ad2antll oveq12d feq23d simpr
        wa mpbird catidcl 1st2nd2 adantl fveq2d xp1st xp2nd xpcid op1std fveq1d
        3eqtr4d w3a 3ad2ant1 simp21 simp22 simp23 simp3l simp3r catcocl opeq12d
        xpcco1st oveq123d isfuncd df-br sylib eqeltrd ) ADKBUDLZCUDLZUEZUFZDUHL
        ZMZEBUINZADYDJUAYCYCKJUTZUAUTZEUJLZNZUFZUKZMZYFAJUAYCBCDEYJFBCEYAYBFYAO
        ZYBOZULZYJOZGHIUMZAYEYMYDADYNPYEYMPYSYDYMDKUNZYCQRYDQRQQKUOYTUPQQKUQURZ
        YAYBBUDUSCUDUSVAZKYCQVBVCJUAYCYCYLUUBUUBVDVESZVFVGAYDYEYGVHYFYGRAJUAUBY
        CYAEEVILZEVJLZUCUGBYDYEYJBVJLZBUJLZBVILZYQYOYRUUGOZUUEOZUUFOZUUDOZUUHOZ
        ABCEFGHVKZGYCYAYDVLAYAYBVMVNAYEYCYCUEZVOYMUUOVOJUAYCYCYLYMYMOYTYKQRYLQR
        UUAYHYIYJVPKYKQVBVCVQAUUOYEYMUUCVRVSAYHYCRZYIYCRZWNZWNZYKYHYDLZYIYDLZUU
        GNZYHYIYENZVLYHKLZYIKLZUUGNZYHUHLZYIUHLCUJLZNZUEZUVFUVCVLZUUSUVKUVJUVFK
        UVJUFZVLUVFUVIVMUUSUVJUVFUVCUVLUUSUVCYLUVLUUSYCBCDYHYIEYJFYQYRABVTRZUUR
        GWAACVTRZUURHWAIAUUPUUQWBZAUUPUUQWCZWDUUSYKUVJKUUSYCBCEUUGUVHYJYHYIFYQU
        UIUVHOYRUVOUVPWEZWFWGWHVSUUSYKUVBUVJUVFUVCUVQUUSUUTUVDUVAUVEUUGUUPUUTUV
        DPZAUUQYHYCKTZWIUUQUVAUVEPZAUUPYIYCKTZWJWKWLWOAUUPWNZYHUUELZKYHYHYJNZUF
        ZLZUVDUUFLZUWCYHYHYENZLUUTUUFLUWBUWFUWCKLZUWGUWBUWCUWDRUWFUWIPUWBYCEUUE
        YJYHYQYRUUJAEVTRZUUPUUNWAAUUPWMZWPUWCUWDKTSUWBUWCUWGUVGCVJLZLZMZPUWIUWG
        PUWBUWCUVDUVGMZUUELUWNUWBYHUWOUUEUUPYHUWOPAYHYAYBWQWRWSUWBBCUVDUVGEUUEU
        UFUWLYAYBFAUVMUUPGWAZAUVNUUPHWAZYOYPUUKUWLOUUJUUPUVDYARAYHYAYBWTWRUUPUV
        GYBRAYHYAYBXAWRXBWGUWGUWMUWCUVDUUFUSUVGUWLUSXCSWGUWBUWCUWHUWEUWBYCBCDYH
        YHEYJFYQYRUWPUWQIUWKUWKWDXDUWBUUTUVDUUFUUPUVRAUVSWRWSXEAUUPUUQUBUTZYCRZ
        XFZUCUTZYKRZUGUTZYIUWRYJNZRZWNZXFZUXCUXAYHYIMUWRUUDNNZKYHUWRYJNZUFZLZUX
        CKLZUXAKLZUVDUVEMZUWRKLZUUHNZNZUXHYHUWRYENZLUXCYIUWRYENZLZUXAUVCLZUUTUV
        AMZUWRYDLZUUHNZNUXGUXKUXHKLZUXQUXGUXHUXIRUXKUYEPUXGYCEUUDUXAUXCYJYHYIUW
        RYQYRUULAUWTUWJUXFUUNXGAUUPUUQUWSUXFXHZAUUPUUQUWSUXFXIZAUUPUUQUWSUXFXJZ
        AUWTUXBUXEXKZAUWTUXBUXEXLZXMUXHUXIKTSUXGYCBCEUUHUXAUXCYJUUDYHYIUWRFYQYR
        UULUYFUYGUYHUYIUYJUUMXOWGUXGUXHUXRUXJUXGYCBCDYHUWREYJFYQYRAUWTUVMUXFGXG
        ZAUWTUVNUXFHXGZIUYFUYHWDXDUXGUXTUXLUYAUXMUYDUXPUXGUYBUXNUYCUXOUUHUXGUUT
        UVDUVAUVEUXGUUPUVRUYFUVSSUXGUUQUVTUYGUWASXNUXGUWSUYCUXOPUYHUWRYCKTSWKUX
        GUXTUXCKUXDUFZLZUXLUXGUXCUXSUYMUXGYCBCDYIUWREYJFYQYRUYKUYLIUYGUYHWDXDUX
        GUXEUYNUXLPUYJUXCUXDKTSWGUXGUYAUXAYLLZUXMUXGUXAUVCYLUXGYCBCDYHYIEYJFYQY
        RUYKUYLIUYFUYGWDXDUXGUXBUYOUXMPUYIUXAYKKTSWGXPXEXQYDYEYGXRXSXT $.
    $}

    ${
      2ndfcl.p $e |- Q = ( C 2ndF D ) $.
      $( The second projection functor is a functor onto the right argument.
         (Contributed by Mario Carneiro, 11-Jan-2017.) $)
      2ndfcl $p |- ( ph -> Q e. ( T Func D ) ) $=
        ( vx c2nd cfv cop co eqid wceq cvv wcel syl fvres vy vz vf cbs cxp cres
        vg cfunc chom cmpt2 xpcbas 2ndfval wfun wfo fo2nd fofun ax-mp fvex xpex
        resfunexg mp2an mpt2ex op2ndd opeq2d eqtr4d wbr cco ccid xpccat f2ndres
        cv wf a1i wfn ovex fnmpt2i fneq1d mpbiri c1st ccat adantr simprl simprr
        2ndf2 xpchom reseq2d eqtrd feq1d ad2antrl ad2antll oveq12d feq23d simpr
        mpbird catidcl 1st2nd2 adantl fveq2d xp1st xp2nd xpcid 3eqtr4d 3ad2ant1
        fveq1d w3a simp21 simp22 simp23 simp3l simp3r catcocl xpcco2nd oveq123d
        wa opeq12d isfuncd df-br sylib eqeltrd ) ADKBUDLZCUDLZUEZUFZDKLZMZECUHN
        ZADYCJUAYBYBKJVKZUAVKZEUILZNZUFZUJZMZYEAJUAYBBCDEYIFBCEXTYAFXTOZYAOZUKZ
        YIOZGHIULZAYDYLYCADYMPYDYLPYRYCYLDKUMZYBQRYCQRQQKUNYSUOQQKUPUQZXTYABUDU
        RCUDURUSZKYBQUTVAJUAYBYBYKUUAUUAVBVCSZVDVEAYCYDYFVFYEYFRAJUAUBYBYAEEVGL
        ZEVHLZUCUGCYCYDYICVHLZCUILZCVGLZYPYOYQUUFOZUUDOZUUEOZUUCOZUUGOZABCEFGHV
        IZHYBYAYCVLAXTYAVJVMAYDYBYBUEZVNYLUUNVNJUAYBYBYKYLYLOYSYJQRYKQRYTYGYHYI
        VOKYJQUTVAVPAUUNYDYLUUBVQVRAYGYBRZYHYBRZXNZXNZYJYGYCLZYHYCLZUUFNZYGYHYD
        NZVLYGVSLZYHVSLBUILZNZYGKLZYHKLZUUFNZUEZUVHUVBVLZUURUVJUVIUVHKUVIUFZVLU
        VEUVHVJUURUVIUVHUVBUVKUURUVBYKUVKUURYBBCDYGYHEYIFYPYQABVTRZUUQGWAACVTRZ
        UUQHWAIAUUOUUPWBZAUUOUUPWCZWDUURYJUVIKUURYBBCEUVDUUFYIYGYHFYPUVDOUUHYQU
        VNUVOWEZWFWGWHVRUURYJUVAUVIUVHUVBUVPUURUUSUVFUUTUVGUUFUUOUUSUVFPZAUUPYG
        YBKTZWIUUPUUTUVGPZAUUOYHYBKTZWJWKWLWNAUUOXNZYGUUDLZKYGYGYINZUFZLZUVFUUE
        LZUWBYGYGYDNZLUUSUUELUWAUWEUWBKLZUWFUWAUWBUWCRUWEUWHPUWAYBEUUDYIYGYPYQU
        UIAEVTRZUUOUUMWAAUUOWMZWOUWBUWCKTSUWAUWBUVCBVHLZLZUWFMZPUWHUWFPUWAUWBUV
        CUVFMZUUDLUWMUWAYGUWNUUDUUOYGUWNPAYGXTYAWPWQWRUWABCUVCUVFEUUDUWKUUEXTYA
        FAUVLUUOGWAZAUVMUUOHWAZYNYOUWKOUUJUUIUUOUVCXTRAYGXTYAWSWQUUOUVFYARAYGXT
        YAWTWQXAWGUWLUWFUWBUVCUWKURUVFUUEURVCSWGUWAUWBUWGUWDUWAYBBCDYGYGEYIFYPY
        QUWOUWPIUWJUWJWDXDUWAUUSUVFUUEUUOUVQAUVRWQWRXBAUUOUUPUBVKZYBRZXEZUCVKZY
        JRZUGVKZYHUWQYINZRZXNZXEZUXBUWTYGYHMUWQUUCNNZKYGUWQYINZUFZLZUXBKLZUWTKL
        ZUVFUVGMZUWQKLZUUGNZNZUXGYGUWQYDNZLUXBYHUWQYDNZLZUWTUVBLZUUSUUTMZUWQYCL
        ZUUGNZNUXFUXJUXGKLZUXPUXFUXGUXHRUXJUYDPUXFYBEUUCUWTUXBYIYGYHUWQYPYQUUKA
        UWSUWIUXEUUMXCAUUOUUPUWRUXEXFZAUUOUUPUWRUXEXGZAUUOUUPUWRUXEXHZAUWSUXAUX
        DXIZAUWSUXAUXDXJZXKUXGUXHKTSUXFYBBCEUUGUWTUXBYIUUCYGYHUWQFYPYQUUKUYEUYF
        UYGUYHUYIUULXLWGUXFUXGUXQUXIUXFYBBCDYGUWQEYIFYPYQAUWSUVLUXEGXCZAUWSUVMU
        XEHXCZIUYEUYGWDXDUXFUXSUXKUXTUXLUYCUXOUXFUYAUXMUYBUXNUUGUXFUUSUVFUUTUVG
        UXFUUOUVQUYEUVRSUXFUUPUVSUYFUVTSXOUXFUWRUYBUXNPUYGUWQYBKTSWKUXFUXSUXBKU
        XCUFZLZUXKUXFUXBUXRUYLUXFYBBCDYHUWQEYIFYPYQUYJUYKIUYFUYGWDXDUXFUXDUYMUX
        KPUYIUXBUXCKTSWGUXFUXTUWTYKLZUXLUXFUWTUVBYKUXFYBBCDYGYHEYIFYPYQUYJUYKIU
        YEUYFWDXDUXFUXAUYNUXLPUYHUWTYJKTSWGXMXBXPYCYDYFXQXRXS $.
    $}
  $}

  ${
    $d b f g h x y B $.  $d x y C $.  $d b f g h x y F $.  $d b f g h x y ph $.
    $d x y D $.  $d b f g h x y G $.  $d h K $.  $d h x y X $.  $d h x y Y $.
    $d b f g h x y H $.
    prfval.k $e |- P = ( F pairF G ) $.
    prfval.b $e |- B = ( Base ` C ) $.
    prfval.h $e |- H = ( Hom ` C ) $.
    prfval.c $e |- ( ph -> F e. ( C Func D ) ) $.
    prfval.d $e |- ( ph -> G e. ( C Func E ) ) $.
    $( Value of the pairing functor.  (Contributed by Mario Carneiro,
       12-Jan-2017.) $)
    prfval $p |- ( ph -> P = <. ( x e. B |->
      <. ( ( 1st ` F ) ` x ) , ( ( 1st ` G ) ` x ) >. ) ,
       ( x e. B , y e. B |-> ( h e. ( x H y ) |->
    <. ( ( x ( 2nd ` F ) y ) ` h ) , ( ( x ( 2nd ` G ) y ) ` h ) >. ) ) >. ) $=
      ( co cfv cvv vf vg vb cprf cv c1st cop cmpt c2nd cmpt2 cdm csb df-prf a1i
      wceq wa wcel fvex dmex simprl fveq2d dmeqd cbs wf eqid cfunc wrel relfunc
      wbr 1st2ndbr sylancr funcf1 fdm adantr eqtrd simpr simplrl fveq1d simplrr
      syl opeq12d mpteq12dv eqidd mpt2eq123dv ad2antrr oveqd chom simplr funcf2
      ad4antr 3impa mpt2eq3dva csbied2 elex opex ovmpt2d syl5eq ) AGJKUDRBDBUEZ
      JUFSZSZWRKUFSZSZUGZUHZBCDDHWRCUEZLRZHUEZWRXEJUISZRZSZXGWRXEKUISZRZSZUGZUH
      ZUJZUGZMAUAUBJKTTUCUAUEZUFSZUKZBUCUEZWRXSSZWRUBUEZUFSZSZUGZUHZBCYAYAHWRXE
      XRUISZRZUKZXGYISZXGWRXEYCUISZRZSZUGZUHZUJZUGZULZXQUDTUDUAUBTTYSUJUOABCUAU
      BHUCUMUNAXRJUOZYCKUOZUPZUPZUCXTDYRXQTXTTUQUUCXSXRUFURUSUNUUCXTWSUKZDUUCXS
      WSUUCXRJUFAYTUUAUTVAVBAUUDDUOZUUBADFVCSZWSVDUUEADUUFEFWSXHNUUFVEAEFVFRZVG
      JUUGUQZWSXHUUGVIZEFVHPJUUGVJVKZVLDUUFWSVMVTVNVOUUCYADUOZUPZYGXDYQXPUULBYA
      YFDXCUUCUUKVPZUULYBWTYEXBUULWRXSWSUULXRJUFAYTUUAUUKVQZVAVRUULWRYDXAUULYCK
      UFAYTUUAUUKVSZVAVRWAWBUULYQBCDDYPUJXPUULBCYAYAYPDDYPUUMUUMUULYPWCWDUULBCD
      DYPXOUULWRDUQZXEDUQZYPXOUOUULUUPUPZUUQUPZHYJYOXFXNUUSYJXIUKZXFUUSYIXIUUSY
      HXHWRXEUUSXRJUIUULYTUUPUUQUUNWEVAWFZVBUUSXFWTXEWSSFWGSZRZXIVDUUTXFUOUUSDE
      FWSXHLUVBWRXENOUVBVEAUUIUUBUUKUUPUUQUUJWJUULUUPUUQWHUURUUQVPWIXFUVCXIVMVT
      VOUUSYKXJYNXMUUSXGYIXIUVAVRUUSXGYMXLUUSYLXKWRXEUUSYCKUIUULUUAUUPUUQUUOWEV
      AWFVRWAWBWKWLVOWAWMAUUHJTUQPJUUGWNVTAKEIVFRZUQKTUQQKUVDWNVTXQTUQAXDXPWOUN
      WPWQ $.

    prf1.x $e |- ( ph -> X e. B ) $.
    $( Value of the pairing functor on objects.  (Contributed by Mario
       Carneiro, 12-Jan-2017.) $)
    prf1 $p |- ( ph -> ( ( 1st ` P ) ` X ) =
      <. ( ( 1st ` F ) ` X ) , ( ( 1st ` G ) ` X ) >. ) $=
      ( vx vy cfv cop vh cv c1st cvv cmpt co c2nd cmpt2 wceq prfval cbs eqeltri
      fvex mptex mpt2ex op1std syl wa simpr fveq2d opeq12d wcel opex a1i fvmptd
      ) AQJQUBZGUCSZSZVFHUCSZSZTZJVGSZJVISZTZBEUCSZUDAEQBVKUEZQRBBUAVFRUBZIUFUA
      UBZVFVQGUGSUFSVRVFVQHUGSUFSTUEZUHZTUIVOVPUIAQRBCDEUAFGHIKLMNOUJVPVTEQBVKB
      CUKSUDLCUKUMULZUNQRBBVSWAWAUOUPUQAVFJUIZURZVHVLVJVMWCVFJVGAWBUSZUTWCVFJVI
      WDUTVAPVNUDVBAVLVMVCVDVE $.

    prf2.y $e |- ( ph -> Y e. B ) $.
    $( Value of the pairing functor on morphisms.  (Contributed by Mario
       Carneiro, 12-Jan-2017.) $)
    prf2fval $p |- ( ph -> ( X ( 2nd ` P ) Y ) = ( h e. ( X H Y ) |->
    <. ( ( X ( 2nd ` F ) Y ) ` h ) , ( ( X ( 2nd ` G ) Y ) ` h ) >. ) ) $=
      ( cfv vx vy cv co c2nd cop cmpt cvv c1st cmpt2 wceq prfval cbs fvex mptex
      eqeltri mpt2ex op2ndd syl wa simprl simprr oveq12d opeq12d mpteq12dv wcel
      fveq1d ovex a1i ovmpt2d ) AUAUBKLBBFUAUCZUBUCZJUDZFUCZVKVLHUETZUDZTZVNVKV
      LIUETZUDZTZUFZUGZFKLJUDZVNKLVOUDZTZVNKLVRUDZTZUFZUGZEUETZUHAEUABVKHUITTVK
      IUITTUFZUGZUAUBBBWBUJZUFUKWJWMUKAUAUBBCDEFGHIJMNOPQULWLWMEUABWKBCUMTUHNCU
      MUNUPZUOUAUBBBWBWNWNUQURUSAVKKUKZVLLUKZUTUTZFVMWAWCWHWQVKKVLLJAWOWPVAZAWO
      WPVBZVCWQVQWEVTWGWQVNVPWDWQVKKVLLVOWRWSVCVGWQVNVSWFWQVKKVLLVRWRWSVCVGVDVE
      RSWIUHVFAFWCWHKLJVHUOVIVJ $.

    prf2.k $e |- ( ph -> K e. ( X H Y ) ) $.
    $( Value of the pairing functor on morphisms.  (Contributed by Mario
       Carneiro, 12-Jan-2017.) $)
    prf2 $p |- ( ph -> ( ( X ( 2nd ` P ) Y ) ` K ) =
      <. ( ( X ( 2nd ` F ) Y ) ` K ) , ( ( X ( 2nd ` G ) Y ) ` K ) >. ) $=
      ( vh cv c2nd cfv co cop cvv prf2fval wceq wa fveq2d opeq12d wcel opex a1i
      simpr fvmptd ) AUAJUAUBZKLGUCUDUEZUDZURKLHUCUDUEZUDZUFJUSUDZJVAUDZUFZKLIU
      EKLEUCUDUEUGABCDEUAFGHIKLMNOPQRSUHAURJUIZUJZUTVCVBVDVGURJUSAVFUPZUKVGURJV
      AVHUKULTVEUGUMAVCVDUNUOUQ $.
  $}

  ${
    $d f g h x y z C $.  $d x y D $.  $d f g h x y z P $.  $d f g h x y z ph $.
    $d x E $.  $d h x y F $.  $d h x y G $.  $d f g h x y z T $.
    prfcl.p $e |- P = ( F pairF G ) $.
    prfcl.t $e |- T = ( D Xc. E ) $.
    prfcl.c $e |- ( ph -> F e. ( C Func D ) ) $.
    prfcl.d $e |- ( ph -> G e. ( C Func E ) ) $.
    $( The pairing of functors ` F : C --> D ` and ` G : C --> D ` is a functor
       ` <. F , G >. : C --> ( D X. E ) ` .  (Contributed by Mario Carneiro,
       12-Jan-2017.) $)
    prfcl $p |- ( ph -> P e. ( C Func T ) ) $=
      ( vx cfv cop co eqid wcel adantr ffvelrnd vy vh vz vf c1st c2nd cfunc cbs
      vg cv cmpt chom cmpt2 prfval wceq fvex mptex mpt2ex op1std op2ndd opeq12d
      syl eqtr4d wbr cxp cco ccid xpcbas ccat funcrcl simpld simprd xpccat wrel
      wa relfunc 1st2ndbr sylancr funcf1 ffvelrnda opelxpi syl2anc fmptd mpbird
      wf feq1d wfn ovex fnmpt2i fneq1d mpbiri simprl simprr funcf2 prf1 oveq12d
      adantrr adantrl xpchom2 eqtrd eleqtrrd cvv ovmpt4g mp3an3 sylan9eq funcid
      oveqd simpr catidcl prf2 fveq2d 3eqtr4d w3a 3ad2ant1 simp21 simp22 simp23
      xpcid simp3l simp3r funcco catcocl oveq123d xpcco2 isfuncd df-br eqeltrd
      sylib ) ADDUENZDUFNZOZBEUGPZADMBUHNZMUJZGUENZNZYNHUENZNZOZUKZMUAYMYMUBYNU
      AUJZBULNZPZUBUJZYNUUAGUFNZPZNZUUDYNUUAHUFNZPZNZOZUKZUMZOZYKAMUAYMBCDUBFGH
      UUBIYMQZUUBQZKLUNZAYIYTYJUUMADUUNUOZYIYTUOUUQYTUUMDMYMYSBUHUPZUQZMUAYMYMU
      ULUUSUUSURZUSVBZAUURYJUUMUOUUQYTUUMDUUTUVAUTVBZVAVCAYIYJYLVDYKYLRAMUAUCYM
      CUHNZFUHNZVEZBBVFNZBVGNZUDUIEYIYJUUBEVGNZEULNZEVFNZUUOCFEUVDUVEJUVDQZUVEQ
      ZVHUUPUVJQZUVHQZUVIQZUVGQZUVKQZABVIRZCVIRZAGBCUGPZRZUVSUVTVOKBCGVJVBZVKZA
      CFEJAUVSUVTUWCVLZAUVSFVIRZAHBFUGPZRZUVSUWFVOLBFHVJVBVLZVMAYMUVFYIWEYMUVFY
      TWEAMYMYSUVFYTAYNYMRZVOZYPUVDRZYRUVERZYSUVFRAYMUVDYNYOAYMUVDBCYOUUEUUOUVL
      AUWAVNUWBYOUUEUWAVDZBCVPKGUWAVQVRZVSZVTZAYMUVEYNYQAYMUVEBFYQUUHUUOUVMAUWG
      VNZUWHYQUUHUWGVDZBFVPZLHUWGVQZVRZVSZVTZYPYRUVDUVEWAWBYTQWCAYMUVFYIYTUVBWF
      WDAYJYMYMVEZWGUUMUXEWGMUAYMYMUULUUMUUMQZUBUUCUUKYNUUAUUBWHUQZWIAUXEYJUUMU
      VCWJWKAUWJUUAYMRZVOZVOZUUCYNYINZUUAYINZUVJPZYNUUAYJPZWEUUCUXMUULWEUXJUBUU
      CUUKUXMUULUXJUUDUUCRZVOZUUKYPUUAYONZCULNZPZYRUUAYQNZFULNZPZVEZUXMUXPUUGUX
      SRUUJUYBRUUKUYCRUXJUUCUXSUUDUUFUXJYMBCYOUUEUUBUXRYNUUAUUOUUPUXRQZAUWNUXIU
      WOSAUWJUXHWLZAUWJUXHWMZWNVTUXJUUCUYBUUDUUIUXJYMBFYQUUHUUBUYAYNUUAUUOUUPUY
      AQZAUWSUXIUXBSUYEUYFWNVTUUGUUJUXSUYBWAWBUXJUXMUYCUOUXOUXJUXMYSUXQUXTOZUVJ
      PUYCUXJUXKYSUXLUYHUVJUXJYMBCDFGHUUBYNIUUOUUPAUWBUXIKSZAUWHUXILSZUYEWOUXJY
      MBCDFGHUUBUUAIUUOUUPUYIUYJUYFWOWPUXJCFUXQUXTEUXRUYAUVJYPYRUVDUVEJUVLUVMUY
      DUYGAUWJUWLUXHUWQWQAUWJUWMUXHUXDWQAUXHUXQUVDRUWJAYMUVDUUAYOUWPVTWRAUXHUXT
      UVERUWJAYMUVEUUAYQUXCVTWRUVNWSWTSXAUULQWCUXJUUCUXMUXNUULAUXIUXNYNUUAUUMPZ
      UULAYJUUMYNUUAUVCXGUWJUXHUULXBRUYKUULUOUXGMUAYMYMUULUUMXBUXFXCXDXEWFWDUWK
      YNUVHNZYNYNUUEPNZUYLYNYNUUHPNZOYPCVGNZNZYRFVGNZNZOZUYLYNYNYJPNUXKUVINZUWK
      UYMUYPUYNUYRUWKYMBUVHCYOUUEUYOYNUUOUVOUYOQZAUWNUWJUWOSAUWJXHZXFUWKYMBUVHF
      YQUUHUYQYNUUOUVOUYQQZAUWSUWJUXBSVUBXFVAUWKYMBCDFGHUUBUYLYNYNIUUOUUPAUWBUW
      JKSZAUWHUWJLSZVUBVUBUWKYMBUVHUUBYNUUOUUPUVOAUVSUWJUWDSVUBXIXJUWKUYTYSUVIN
      UYSUWKUXKYSUVIUWKYMBCDFGHUUBYNIUUOUUPVUDVUEVUBWOXKUWKCFYPYREUVIUYOUYQUVDU
      VEJAUVTUWJUWESAUWFUWJUWISUVLUVMVUAVUCUVPUWQUXDXRWTXLAUWJUXHUCUJZYMRZXMZUD
      UJZUUCRZUIUJZUUAVUFUUBPZRZVOZXMZVUKVUIYNUUAOVUFUVGPPZYNVUFUUEPNZVUPYNVUFU
      UHPNZOVUKUUAVUFUUEPZNZVUIUUFNZYPUXQOVUFYONZCVFNZPPZVUKUUAVUFUUHPZNZVUIUUI
      NZYRUXTOVUFYQNZFVFNZPPZOZVUPYNVUFYJPNVUKUUAVUFYJPNZVUIUXNNZUXKUXLOZVUFYIN
      ZUVKPZPZVUOVUQVVDVURVVJVUOYMBUVGCYOUUEUUBVUIVUKVVCYNUUAVUFUUOUUPUVQVVCQZA
      VUHUWNVUNUWOXNZAUWJUXHVUGVUNXOZAUWJUXHVUGVUNXPZAUWJUXHVUGVUNXQZAVUHVUJVUM
      XSZAVUHVUJVUMXTZYAVUOYMBUVGFYQUUHUUBVUIVUKVVIYNUUAVUFUUOUUPUVQVVIQZVUOUWR
      UWHUWSUWTAVUHUWHVUNLXNZUXAVRZVVTVWAVWBVWCVWDYAVAVUOYMBCDFGHUUBVUPYNVUFIUU
      OUUPAVUHUWBVUNKXNZVWFVVTVWBVUOYMBUVGVUIVUKUUBYNUUAVUFUUOUUPUVQAVUHUVSVUNU
      WDXNVVTVWAVWBVWCVWDYBXJVUOVVQVUTVVFOZVVAVVGOZYSUYHOZVVBVVHOZUVKPZPVVKVUOV
      VLVWIVVMVWJVVPVWMVUOVVNVWKVVOVWLUVKVUOUXKYSUXLUYHVUOYMBCDFGHUUBYNIUUOUUPV
      WHVWFVVTWOVUOYMBCDFGHUUBUUAIUUOUUPVWHVWFVWAWOVAVUOYMBCDFGHUUBVUFIUUOUUPVW
      HVWFVWBWOWPVUOYMBCDFGHUUBVUKUUAVUFIUUOUUPVWHVWFVWAVWBVWDXJVUOYMBCDFGHUUBV
      UIYNUUAIUUOUUPVWHVWFVVTVWAVWCXJYCVUOCFUXQUXTVVBVVHVVIEVVCVVAVVGUXRUYAVUTV
      VFYPYRUVKUVDUVEJUVLUVMUYDUYGVUOYMUVDYNYOAVUHYMUVDYOWEVUNUWPXNZVVTTVUOYMUV
      EYNYQAVUHYMUVEYQWEVUNUXCXNZVVTTVUOYMUVDUUAYOVWNVWATVUOYMUVEUUAYQVWOVWATVV
      RVWEUVRVUOYMUVDVUFYOVWNVWBTVUOYMUVEVUFYQVWOVWBTVUOUUCUXSVUIUUFVUOYMBCYOUU
      EUUBUXRYNUUAUUOUUPUYDVVSVVTVWAWNVWCTVUOUUCUYBVUIUUIVUOYMBFYQUUHUUBUYAYNUU
      AUUOUUPUYGVWGVVTVWAWNVWCTVUOVULUXQVVBUXRPVUKVUSVUOYMBCYOUUEUUBUXRUUAVUFUU
      OUUPUYDVVSVWAVWBWNVWDTVUOVULUXTVVHUYAPVUKVVEVUOYMBFYQUUHUUBUYAUUAVUFUUOUU
      PUYGVWGVWAVWBWNVWDTYDWTXLYEYIYJYLYFYHYG $.
  $}

  ${
    $d f h x y C $.  $d f h u x y F $.  $d f h u x y G $.  $d f h x y ph $.
    $d f u x y D $.  $d f u x y E $.  $d f x y P $.
    prf1st.p $e |- P = ( F pairF G ) $.
    prf1st.c $e |- ( ph -> F e. ( C Func D ) ) $.
    prf1st.d $e |- ( ph -> G e. ( C Func E ) ) $.
    $( Cancellation of pairing with first projection.  (Contributed by Mario
       Carneiro, 12-Jan-2017.) $)
    prf1st $p |- ( ph -> ( ( D 1stF E ) o.func P ) = F ) $=
      ( vx vy vf co c1st cfv wcel eqid adantr wceq vu vh c1stf ccom cbs cv c2nd
      cmpt2 cop ccofu cmpt wa cxp cxpc chom xpcbas ccat funcrcl syl simprd wrel
      cfunc wbr relfunc 1st2ndbr sylancr funcf1 ffvelrnda opelxpi syl2anc 1stf1
      fvex op1st syl6eq prfval mptex mpt2ex op1std 1stfcl feqmptd fveq2 3eqtr4d
      mpteq2dva fmptco cres ad2antrr prfcl adantrr adantrl fveq1d simprl simprr
      1stf2 funcf2 fvres simpr fveq2d 3eqtrd wf fcompt 3impb mpt2eq3dva funcfn2
      prf2 wfn fnov sylib eqtr4d opeq12d cofuval 1st2nd ) ACEUCNZOPZDOPZUDZKLBU
      EPZXPKUFZXNPZLUFZXNPZXLUGPZNZXQXSDUGPZNZUDZUHZUIFOPZFUGPZUIZXLDUJNFAXOYGY
      FYHAKXPXQYGPZXQGOPZPZUIZXMPZUKKXPYJUKXOYGAKXPYNYJAXQXPQZULZYNYMOPYJYPCUEP
      ZEUEPZUMZCEXLYMCEUNNZYTUOPZYTRZCEYTYQYRUUBYQRZYRRZUPZUUARZACUQQZYOABUQQZU
      UGAFBCVBNZQZUUHUUGULIBCFURUSUTZSAEUQQZYOAUUHUULAGBEVBNZQZUUHUULULJBEGURUS
      UTZSXLRZYPYJYQQYLYRQYMYSQAXPYQXQYGAXPYQBCYGYHXPRZUUCAUUIVAZUUJYGYHUUIVCZB
      CVDZIFUUIVEVFZVGZVHAXPYRXQYKAXPYRBEYKGUGPZUUQUUDAUUMVAUUNYKUVCUUMVCBEVDJG
      UUMVEVFVGVHYJYLYQYRVIVJZVKYJYLXQYGVLXQYKVLVMVNWCAKUAXPYSYMUAUFZXMPYNXNXMU
      VDADKXPYMUKZKLXPXPUBXQXSBUOPZNZUBUFZXQXSYHNZPUVIXQXSUVCNZPUIUKZUHZUITXNUV
      FTAKLXPBCDUBEFGUVGHUUQUVGRZIJVOUVFUVMDKXPYMBUEVLZVPKLXPXPUVLUVOUVOVQVRUSA
      UAYSYQXMAYSYQYTCXMYAUUEUUCAYTCVBNZVAXLUVPQXMYAUVPVCZYTCVDACEXLYTUUBUUKUUO
      UUPVSZXLUVPVEVFZVGVTUVEYMXMWAWDAKXPYQYGUVBVTWBAYFKLXPXPUVJUHZYHAKLXPXPYEU
      VJAYOXSXPQZYEUVJTAYOUWAULZULZMUVHMUFZYDPZYBPZUKZMUVHUWDUVJPZUKYEUVJUWCMUV
      HUWFUWHUWCUWDUVHQZULZUWFUWEOXRXTUUANZWEZPZUWEOPZUWHUWJUWEYBUWLUWJYSCEXLXR
      XTYTUUAUUBUUEUUFAUUGUWBUWIUUKWFAUULUWBUWIUUOWFUUPUWCXRYSQZUWIAYOUWOUWAAXP
      YSXQXNAXPYSBYTXNYCUUQUUEABYTVBNZVADUWPQXNYCUWPVCZBYTVDABCDYTEFGHUUBIJWGZD
      UWPVEVFZVGZVHWHZSUWCXTYSQZUWIAUWAUXBYOAXPYSXSXNUWTVHWIZSWMWJUWJUWEUWKQUWM
      UWNTUWCUVHUWKUWDYDUWCXPBYTXNYCUVGUUAXQXSUUQUVNUUFAUWQUWBUWSSAYOUWAWKZAYOU
      WAWLZWNZVHUWEUWKOWOUSUWJUWNUWHUWDUVKPZUIZOPUWHUWJUWEUXHOUWJXPBCDEFGUVGUWD
      XQXSHUUQUVNAUUJUWBUWIIWFAUUNUWBUWIJWFUWCYOUWIUXDSUWCUWAUWIUXESUWCUWIWPXDW
      QUWHUXGUWDUVJVLUWDUVKVLVMVNWRWCUWCUWKXRXMPXTXMPCUOPZNZYBWSUVHUWKYDWSYEUWG
      TUWCYSYTCXMYAUUAUXIXRXTUUEUUFUXIRZAUVQUWBUVSSUXAUXCWNUXFMYBYDUVHUWKUXJWTV
      JUWCMUVHYJXSYGPUXINUVJUWCXPBCYGYHUVGUXIXQXSUUQUVNUXKAUUSUWBUVASUXDUXEWNVT
      WBXAXBAYHXPXPUMXEYHUVTTAXPBCYGYHUUQUVAXCKLXPXPYHXFXGXHXIAKLXPBYTCDXLUUQUW
      RUVRXJAUURUUJFYITUUTIFUUIXKVFWB $.

    $( Cancellation of pairing with second projection.  (Contributed by Mario
       Carneiro, 12-Jan-2017.) $)
    prf2nd $p |- ( ph -> ( ( D 2ndF E ) o.func P ) = G ) $=
      ( vx vy vf co cfv c2nd wcel eqid adantr wceq vu vh c2ndf c1st ccom cbs cv
      cmpt2 cop ccofu cmpt wa cxp cxpc chom xpcbas ccat funcrcl syl simprd wrel
      cfunc wbr relfunc 1st2ndbr sylancr funcf1 ffvelrnda opelxpi syl2anc 2ndf1
      fvex op2nd syl6eq prfval mptex mpt2ex op1std 2ndfcl feqmptd fveq2 3eqtr4d
      mpteq2dva fmptco cres ad2antrr prfcl adantrr adantrl fveq1d simprl simprr
      2ndf2 funcf2 fvres simpr fveq2d 3eqtrd wf fcompt 3impb mpt2eq3dva funcfn2
      prf2 wfn fnov sylib eqtr4d opeq12d cofuval 1st2nd ) ACEUCNZUDOZDUDOZUEZKL
      BUFOZXPKUGZXNOZLUGZXNOZXLPOZNZXQXSDPOZNZUEZUHZUIGUDOZGPOZUIZXLDUJNGAXOYGY
      FYHAKXPXQFUDOZOZXQYGOZUIZXMOZUKKXPYLUKXOYGAKXPYNYLAXQXPQZULZYNYMPOYLYPCUF
      OZEUFOZUMZCEXLYMCEUNNZYTUOOZYTRZCEYTYQYRUUBYQRZYRRZUPZUUARZACUQQZYOABUQQZ
      UUGAFBCVBNZQZUUHUUGULIBCFURUSUTZSAEUQQZYOAUUHUULAGBEVBNZQZUUHUULULJBEGURU
      SUTZSXLRZYPYKYQQYLYRQYMYSQAXPYQXQYJAXPYQBCYJFPOZXPRZUUCAUUIVAUUJYJUUQUUIV
      CBCVDIFUUIVEVFVGVHAXPYRXQYGAXPYRBEYGYHUURUUDAUUMVAZUUNYGYHUUMVCZBEVDZJGUU
      MVEVFZVGZVHYKYLYQYRVIVJZVKYKYLXQYJVLXQYGVLVMVNWCAKUAXPYSYMUAUGZXMOYNXNXMU
      VDADKXPYMUKZKLXPXPUBXQXSBUOOZNZUBUGZXQXSUUQNZOUVIXQXSYHNZOUIUKZUHZUITXNUV
      FTAKLXPBCDUBEFGUVGHUURUVGRZIJVOUVFUVMDKXPYMBUFVLZVPKLXPXPUVLUVOUVOVQVRUSA
      UAYSYRXMAYSYRYTEXMYAUUEUUDAYTEVBNZVAXLUVPQXMYAUVPVCZYTEVDACEXLYTUUBUUKUUO
      UUPVSZXLUVPVEVFZVGVTUVEYMXMWAWDAKXPYRYGUVCVTWBAYFKLXPXPUVKUHZYHAKLXPXPYEU
      VKAYOXSXPQZYEUVKTAYOUWAULZULZMUVHMUGZYDOZYBOZUKZMUVHUWDUVKOZUKYEUVKUWCMUV
      HUWFUWHUWCUWDUVHQZULZUWFUWEPXRXTUUANZWEZOZUWEPOZUWHUWJUWEYBUWLUWJYSCEXLXR
      XTYTUUAUUBUUEUUFAUUGUWBUWIUUKWFAUULUWBUWIUUOWFUUPUWCXRYSQZUWIAYOUWOUWAAXP
      YSXQXNAXPYSBYTXNYCUURUUEABYTVBNZVADUWPQXNYCUWPVCZBYTVDABCDYTEFGHUUBIJWGZD
      UWPVEVFZVGZVHWHZSUWCXTYSQZUWIAUWAUXBYOAXPYSXSXNUWTVHWIZSWMWJUWJUWEUWKQUWM
      UWNTUWCUVHUWKUWDYDUWCXPBYTXNYCUVGUUAXQXSUURUVNUUFAUWQUWBUWSSAYOUWAWKZAYOU
      WAWLZWNZVHUWEUWKPWOUSUWJUWNUWDUVJOZUWHUIZPOUWHUWJUWEUXHPUWJXPBCDEFGUVGUWD
      XQXSHUURUVNAUUJUWBUWIIWFAUUNUWBUWIJWFUWCYOUWIUXDSUWCUWAUWIUXESUWCUWIWPXDW
      QUXGUWHUWDUVJVLUWDUVKVLVMVNWRWCUWCUWKXRXMOXTXMOEUOOZNZYBWSUVHUWKYDWSYEUWG
      TUWCYSYTEXMYAUUAUXIXRXTUUEUUFUXIRZAUVQUWBUVSSUXAUXCWNUXFMYBYDUVHUWKUXJWTV
      JUWCMUVHYLXSYGOUXINUVKUWCXPBEYGYHUVGUXIXQXSUURUVNUXKAUUTUWBUVBSUXDUXEWNVT
      WBXAXBAYHXPXPUMXEYHUVTTAXPBEYGYHUURUVBXCKLXPXPYHXFXGXHXIAKLXPBYTEDXLUURUW
      RUVRXJAUUSUUNGYITUVAJGUUMXKVFWB $.
  $}

  ${
    $d f x y C $.  $d f x y D $.  $d f x y E $.  $d f x y F $.  $d f x y ph $.
    1st2ndprf.t $e |- T = ( D Xc. E ) $.
    1st2ndprf.f $e |- ( ph -> F e. ( C Func T ) ) $.
    1st2ndprf.d $e |- ( ph -> D e. Cat ) $.
    1st2ndprf.e $e |- ( ph -> E e. Cat ) $.
    $( Break a functor into a product category into first and second
       projections.  (Contributed by Mario Carneiro, 12-Jan-2017.) $)
    1st2ndprf $p |- ( ph -> F =
      ( ( ( D 1stF E ) o.func F ) pairF ( ( D 2ndF E ) o.func F ) ) ) $=
      ( vx vy c1st cfv c2nd co eqid wcel wceq adantr vf cop cv c1stf ccofu cmpt
      cbs c2ndf chom cmpt2 cprf cxp xpcbas wrel relfunc 1st2ndbr sylancr funcf1
      cfunc wbr feqmptd wa ffvelrnda 1st2nd2 syl 1stfcl simpr cofu1 1stf1 eqtrd
      ccat 2ndfcl 2ndf1 opeq12d eqtr4d mpteq2dva wfn funcfn2 fnov simprl simprr
      sylib funcf2 relxpchom 1st2nd ad2antrr cofu2 adantrr adantrl 1stf2 fveq1d
      cres fvres 3eqtrd 2ndf2 3impb mpt2eq3dva cofucl prfval 3eqtr4d ) AFMNZFON
      ZUBZKBUGNZKUCZCEUDPZFUEPZMNNZXECEUHPZFUEPZMNNZUBZUFZKLXDXDUAXELUCZBUINZPZ
      UAUCZXEXNXGONPNZXQXEXNXJONPNZUBZUFZUJZUBFXGXJUKPZAXAXMXBYBAXAKXDXEXANZUFX
      MAKXDCUGNZEUGNZULZXAAXDYGBDXAXBXDQZCEDYEYFGYEQYFQUMZABDUSPZUNZFYJRZXAXBYJ
      UTZBDUOZHFYJUPUQZURZVAAKXDYDXLAXEXDRZVBZYDYDMNZYDONZUBZXLYRYDYGRZYDUUASAX
      DYGXEXAYPVCZYDYEYFVDVEYRXHYSXKYTYRXHYDXFMNNYSYRXDBDCFXFXEYHAYLYQHTZAXFDCU
      SPRZYQACEXFDGIJXFQZVFZTAYQVGZVHYRYGCEXFYDDDUINZGYIUUIQZACVKRZYQITZAEVKRZY
      QJTZUUFUUCVIVJYRXKYDXIMNNYTYRXDBDEFXIXEYHUUDAXIDEUSPRZYQACEXIDGIJXIQZVLZT
      UUHVHYRYGCEXIYDDUUIGYIUUJUULUUNUUPUUCVMVJVNVOVPVJAXBKLXDXDXEXNXBPZUJZYBAX
      BXDXDULVQXBUUSSAXDBDXAXBYHYOVRKLXDXDXBVSWBAKLXDXDUURYAAYQXNXDRZUURYASAYQU
      UTVBZVBZUURUAXPXQUURNZUFYAUVBUAXPYDXNXANZUUIPZUURUVBXDBDXAXBXOUUIXEXNYHXO
      QZUUJAYMUVAYOTAYQUUTVTZAYQUUTWAZWCZVAUVBUAXPUVCXTUVBXQXPRZVBZUVCUVCMNZUVC
      ONZUBZXTUVKUVEUNUVCUVERZUVCUVNSCEDUUIYDUVDGUUJWDUVBXPUVEXQUURUVIVCZUVCUVE
      WEUQUVKXRUVLXSUVMUVKXRUVCYDUVDXFONPZNUVCMUVEWLZNZUVLUVKXDBDXQCFXFXOXEXNYH
      AYLUVAUVJHWFZAUUEUVAUVJUUGWFUVBYQUVJUVGTZUVBUUTUVJUVHTZUVFUVBUVJVGZWGUVKU
      VCUVQUVRUVBUVQUVRSUVJUVBYGCEXFYDUVDDUUIGYIUUJAUUKUVAITZAUUMUVAJTZUUFAYQUU
      BUUTUUCWHZAUUTUVDYGRYQAXDYGXNXAYPVCWIZWJTWKUVKUVOUVSUVLSUVPUVCUVEMWMVEWNU
      VKXSUVCYDUVDXIONPZNUVCOUVEWLZNZUVMUVKXDBDXQEFXIXOXEXNYHUVTAUUOUVAUVJUUQWF
      UWAUWBUVFUWCWGUVKUVCUWHUWIUVBUWHUWISUVJUVBYGCEXIYDUVDDUUIGYIUUJUWDUWEUUPU
      WFUWGWOTWKUVKUVOUWJUVMSUVPUVCUVEOWMVEWNVNVOVPVJWPWQVJVNAYKYLFXCSYNHFYJWEU
      QAKLXDBCYCUAEXGXJXOYCQYHUVFABDCFXFHUUGWRABDEFXIHUUQWRWSWT $.
  $}

  ${
    $d f g u v x y ph $.  $d f g u v x y X $.  $d f g u v x y Y $.
    $d f g x y T $.
    catcxpccl.c $e |- C = ( CatCat ` U ) $.
    catcxpccl.b $e |- B = ( Base ` C ) $.
    catcxpccl.o $e |- T = ( X Xc. Y ) $.
    catcxpccl.u $e |- ( ph -> U e. WUni ) $.
    catcxpccl.1 $e |- ( ph -> _om e. U ) $.
    catcxpccl.x $e |- ( ph -> X e. B ) $.
    catcxpccl.y $e |- ( ph -> Y e. B ) $.
    $( The category of categories for a weak universe is closed under the
       product category operation.  (Contributed by Mario Carneiro,
       12-Jan-2017.) $)
    catcxpccl $p |- ( ph -> T e. B ) $=
      ( cfv eqid wunstr crn cuni wss vx vy vg vf vv vu ccat cin cnx cbs cxp cop
      chom cco cv c2nd co c1st cmpt2 ctp eqidd wceq xpcbas xpchomfval xpcval c1
      a1i df-base wunndx inss1 catcbas eleqtrd sseldi wunxp wunop c4 cdc df-hom
      cwun cpw wunrn wununi wunpw wf wcel wral ovssunirn xpss12 mp2an ovex xpex
      elpw mpbir rgen2w fmpt2 mpbi wunf syl5eqel df-cco cpm wunpm cvv fvex rnex
      c5 uniex pwex rnss uniss mp2b sstri opelxpi fvssunirn mp4an wuntp eqeltrd
      elpm2r inss2 xpccat elind eleqtrrd ) ADEUGUHZBAEUGDADUIUJOZFUJOZGUJOZUKZU
      LZUIUMOZDUMOZULZUIUNOZUAUBYFYFUKZYFUCUDUAUOZUPOZUBUOZYIUQZYMYIOZUCUOZUROZ
      UDUOZUROZYMUROZUROYNUROULZYOUROZFUNOZUQZUQZYRUPOZYTUPOZUUBUPOYNUPOULZYOUP
      OZGUNOZUQZUQZULZUSZUSZULZUTEAUAUBUEUFYFFGUULDUUEUDUCFUMOZGUMOZYIUUQBBYDYE
      JYDPZYEPZUUSPZUUTPZUUEPUULPMNAYFVAYIUFUEYFYFUFUOZUROZUEUOZUROZUUSUQZUVEUP
      OZUVGUPOZUUTUQZUKZUSZVBAUEUFYFFGDUUSUUTYIJFGDYDYEJUVAUVBVCUVCUVDYIPVDZVGA
      UUQVAVEAYGYJUUREKAYCYFEKAUIEUJVFVHKAEKLVIZQAYDYEEKAFEUJVFVHKAYBEFEUGVJZAF
      BYBMABCEVSHIKVKZVLZVMZQAGEUJVFVHKAYBEGUVQAGBYBNUVRVLZVMZQVNZVOAYHYIEKAUIE
      UMVFVPVQZVRKUVPQAYIUVNEUVOAYLUUSRZSZUUTRZSZUKZVTZEUVNKAYFYFEKUWCUWCVNZAUW
      IEKAUWFUWHEKAUWEEKAUUSEKAFEUMUWDVRKUVTQWAWBAUWGEKAUUTEKAGEUMUWDVRKUWBQWAW
      BVNWCYLUWJUVNWDZAUVMUWJWEZUEYFWFUFYFWFUWLUWMUFUEYFYFUWMUVMUWITZUVIUWFTUVL
      UWHTUWNUUSUVFUVHWGUUTUVJUVKWGUVIUWFUVLUWHWHWIUVMUWIUVIUVLUVFUVHUUSWJUVJUV
      KUUTWJWKWLWMWNUFUEYFYFUVMUWJUVNUVNPWOWPVGWQWRZVOAYKUUQEKAUIEUNVFXEVQZWSKU
      VPQAYLYFUKZUUERZSZRZSZVTZUULRZSZRZSZVTZUKZYIRZSZUXJUKZWTUQZEUUQKAYLYFEKUW
      KUWCVNAUXHUXKEKAUXBUXGEKAUXAEKAUWTEKAUWSEKAUWREKAUUEEKAFEUNUWPWSKUVTQWAWB
      WAWBWCAUXFEKAUXEEKAUXDEKAUXCEKAUULEKAGEUNUWPWSKUWBQWAWBWAWBWCVNAUXJUXJEKA
      UXIEKAYIEKUWOWAWBZUXMVNXAUWQUXLUUQWDZAUUPUXLWEZUBYFWFUAYLWFUXNUXOUAUBYLYF
      UXHXBWEUXKXBWEYPYQUKZUXHUUPWDZUXPUXKTZUXOUXBUXGUXAUWTUWSUWRUUEFUNXCXDXFXD
      XFXGUXFUXEUXDUXCUULGUNXCXDXFXDXFXGWKUXJUXJUXIYIDUMXCXDXFZUXSWKUUOUXHWEZUD
      YQWFUCYPWFUXQUXTUCUDYPYQUUGUXBWEZUUNUXGWEZUXTUYAUUGUXATUUGUUFRZSZUXAUUFYS
      UUAWGUUFUWSTUYCUWTTUYDUXATUUEUUCUUDWGUUFUWSXHUYCUWTXIXJXKUUGUXAYSUUAUUFWJ
      WLWMUYBUUNUXFTUUNUUMRZSZUXFUUMUUHUUIWGUUMUXDTUYEUXETUYFUXFTUULUUJUUKWGUUM
      UXDXHUYEUXEXIXJXKUUNUXFUUHUUIUUMWJWLWMUUGUUNUXBUXGXLWIWNUCUDYPYQUUOUXHUUP
      UUPPWOWPYPUXJTYQUXJTUXRYIYNYOWGYIYMXMYPUXJYQUXJWHWIUXHUXKUXPUUPXBXBXQXNWN
      UAUBYLYFUUPUXLUUQUUQPWOWPVGWQVOXOXPAFGDJAYBUGFEUGXRZUVSVMAYBUGGUYGUWAVMXS
      XTUVRYA $.
  $}

  ${
    $d f g u v x y A $.  $d f g u v x y B $.  $d f g u v x y ph $.
    $d f g u v x y C $.  $d f g u v x y D $.
    xpcpropd.1 $e |- ( ph -> ( Homf ` A ) = ( Homf ` B ) ) $.
    xpcpropd.2 $e |- ( ph -> ( comf ` A ) = ( comf ` B ) ) $.
    xpcpropd.3 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    xpcpropd.4 $e |- ( ph -> ( comf ` C ) = ( comf ` D ) ) $.
    xpcpropd.a $e |- ( ph -> A e. V ) $.
    xpcpropd.b $e |- ( ph -> B e. V ) $.
    xpcpropd.c $e |- ( ph -> C e. V ) $.
    xpcpropd.d $e |- ( ph -> D e. V ) $.
    $( If two categories have the same set of objects, morphisms, and
       compositions, then they have the same product category.  (Contributed by
       Mario Carneiro, 17-Jan-2017.) $)
    xpcpropd $p |- ( ph -> ( A Xc. C ) = ( B Xc. D ) ) $=
      ( co cfv cop eqid wcel syl vx vy vg vf vv vu cxpc cnx cbs cxp chom cco cv
      c2nd c1st cmpt2 ctp eqidd wceq xpcbas xpchomfval xpcval homfeqbas xpeq12d
      a1i w3a chomf 3ad2ant1 xp1st 3ad2ant2 3ad2ant3 homfeqval xp2nd mpt2eq3dva
      syl5eq wa ad4antr ccomf simp-4r simpllr simpr 1st2nd2 fveq2d df-ov xpchom
      syl6eqr eqtrd eleqtrd simplr comfeqval opeq12d 3impa eqtr4d ) ABDUGOZUHUI
      PBUIPZDUIPZUJZQUHUKPWNUKPZQUHULPUAUBWQWQUJZWQUCUDUAUMZUNPZUBUMZWROZWTWRPZ
      UCUMZUOPZUDUMZUOPZWTUOPZUOPZXAUOPZQZXBUOPZBULPZOOZXEUNPZXGUNPZXIUNPZXAUNP
      ZQZXBUNPZDULPZOOZQZUPZUPZQUQCEUGOZAUAUBUEUFWQBDYBWNXNUDUCBUKPZDUKPZWRYFFF
      WOWPWNRZWORZWPRZYHRZYIRZXNRZYBRZKMAWQURWRUFUEWQWQUFUMZUOPZUEUMZUOPZYHOZYQ
      UNPZYSUNPZYIOZUJZUPZUSAUEUFWQBDWNYHYIWRYJBDWNWOWPYJYKYLUTZYMYNWRRZVAZVEAY
      FURVBAUAUBUEUFWQCEEULPZYGCULPZUDUCCUKPZEUKPZWRYFFFCUIPZEUIPZYGRUUNRUUORUU
      LRZUUMRZUUKRZUUJRZLNAWOUUNWPUUOABCGVCADEIVCVDAWRUUFUFUEWQWQYRYTUULOZUUBUU
      CUUMOZUJZUPUUIAUFUEWQWQUUEUVBAYQWQSZYSWQSZVFZUUAUUTUUDUVAUVEWOBCYHUULYRYT
      YKYMUUPAUVCBVGPCVGPUSZUVDGVHUVCAYRWOSUVDYQWOWPVIVJUVDAYTWOSUVCYSWOWPVIVKV
      LUVEWPDEYIUUMUUBUUCYLYNUUQAUVCDVGPEVGPUSZUVDIVHUVCAUUBWPSUVDYQWOWPVMVJUVD
      AUUCWPSUVCYSWOWPVMVKVLVDVNVOAUAUBWSWQYEUCUDXCXDXFXHXLXMUUKOOZXPXQXTYAUUJO
      OZQZUPZAWTWSSZXBWQSZYEUVKUSAUVLVPZUVMVPZUCUDXCXDYDUVJUVOXEXCSZXGXDSZYDUVJ
      USUVOUVPVPZUVQVPZXOUVHYCUVIUVSWOBCUUKXNXHXFYHXJXKXMYKYMYOUURAUVFUVLUVMUVP
      UVQGVQABVRPCVRPUSUVLUVMUVPUVQHVQUVSXIWQSZXJWOSUVSUVLUVTAUVLUVMUVPUVQVSZWT
      WQWQVITZXIWOWPVITUVSXAWQSZXKWOSUVSUVLUWCUWAWTWQWQVMTZXAWOWPVITUVSUVMXMWOS
      UVNUVMUVPUVQVTZXBWOWPVITUVSXGXJXKYHOZXRXSYIOZUJZSZXHUWFSUVSXGXDUWHUVRUVQW
      AUVSXDXIXAWROZUWHUVSXDXIXAQZWRPUWJUVSWTUWKWRUVSUVLWTUWKUSUWAWTWQWQWBTWCXI
      XAWRWDWFUVSWQBDWNYHYIWRXIXAYJUUGYMYNUUHUWBUWDWEWGWHZXGUWFUWGVITUVSXEXKXMY
      HOZXSYAYIOZUJZSZXFUWMSUVSXEXCUWOUVOUVPUVQWIUVSWQBDWNYHYIWRXAXBYJUUGYMYNUU
      HUWDUWEWEWHZXEUWMUWNVITWJUVSWPDEUUJYBXQXPYIXRXSYAYLYNYPUUSAUVGUVLUVMUVPUV
      QIVQADVRPEVRPUSUVLUVMUVPUVQJVQUVSUVTXRWPSUWBXIWOWPVMTUVSUWCXSWPSUWDXAWOWP
      VMTUVSUVMYAWPSUWEXBWOWPVMTUVSUWIXQUWGSUWLXGUWFUWGVMTUVSUWPXPUWNSUWQXEUWMU
      WNVMTWJWKWLVNWLVNVBWM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Functor evaluation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c evalF $.
  $c curryF $.
  $c uncurryF $.
  $c DiagFunc $.

  $( Extend class notation with the evaluation functor. $)
  cevlf $a class evalF $.

  $( Extend class notation with the currying of a functor. $)
  ccurf $a class curryF $.

  $( Extend class notation with the uncurrying of a functor. $)
  cuncf $a class uncurryF $.

  $( Extend class notation to include the diagonal functor. $)
  cdiag $a class DiagFunc $.

  ${
    $d a c d f g m n x y C $.  $d a c d f g m n x y D $.  $d c d g m n x y H $.
    $d a c d e f g m n x y z $.  $d a g m n x y F $.  $d a c d g m n x y N $.
    $d a g m n x y G $.  $d a c d f g m n x y ph $.  $d a c d g m n x y .x. $.
    $d a g A $.  $d c d x y B $.  $d a g m n x y X $.  $d a g m n x y Y $.
    $d a g K $.
    $( Define the evaluation functor, which is the extension of the evaluation
       map ` f , x |-> ( f `` x ) ` of functors, to a functor
       ` ( C --> D ) X. C --> D ` .  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    df-evlf $a |- evalF = ( c e. Cat , d e. Cat |->
      <. ( f e. ( c Func d ) , x e. ( Base ` c ) |-> ( ( 1st ` f ) ` x ) ) ,
         ( x e. ( ( c Func d ) X. ( Base ` c ) ) ,
           y e. ( ( c Func d ) X. ( Base ` c ) ) |->
           [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_
           ( a e. ( m ( c Nat d ) n ) ,
             g e. ( ( 2nd ` x ) ( Hom ` c ) ( 2nd ` y ) ) |->
       ( ( a ` ( 2nd ` y ) )
          ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) ,
               ( ( 1st ` m ) ` ( 2nd ` y ) ) >. ( comp ` d )
               ( ( 1st ` n ) ` ( 2nd ` y ) ) )
         ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) ) >. ) $.

    $( Define the curry functor, which maps a functor ` F : C X. D --> E ` to
       ` curryF ( F ) : C --> ( D --> E ) ` .  (Contributed by Mario Carneiro,
       11-Jan-2017.) $)
    df-curf $a |- curryF = ( e e. _V , f e. _V |-> [_ ( 1st ` e ) / c ]_
      [_ ( 2nd ` e ) / d ]_ <. ( x e. ( Base ` c ) |->
        <. ( y e. ( Base ` d ) |-> ( x ( 1st ` f ) y ) ) ,
           ( y e. ( Base ` d ) , z e. ( Base ` d ) |->
             ( g e. ( y ( Hom ` d ) z ) |-> ( ( ( Id ` c ) ` x )
               ( <. x , y >. ( 2nd ` f ) <. x , z >. ) g ) ) ) >. ) ,
        ( x e. ( Base ` c ) , y e. ( Base ` c ) |->
          ( g e. ( x ( Hom ` c ) y ) |-> ( z e. ( Base ` d ) |->
            ( g ( <. x , z >. ( 2nd ` f ) <. y , z >. )
              ( ( Id ` d ) ` z ) ) ) ) ) >. ) $.

    $( Define the uncurry functor, which can be defined equationally using
       ` evalF ` .  Strictly speaking, the third category argument is not
       needed, since the resulting functor is extensionally equal regardless,
       but it is used in the equational definition and is too much work to
       remove.  (Contributed by Mario Carneiro, 13-Jan-2017.) $)
    df-uncf $a |- uncurryF = ( c e. _V , f e. _V |->
      ( ( ( c ` 1 ) evalF ( c ` 2 ) ) o.func
        ( ( f o.func ( ( c ` 0 ) 1stF ( c ` 1 ) ) )
          pairF ( ( c ` 0 ) 2ndF ( c ` 1 ) ) ) ) ) $.

    $( Define the diagonal functor, which is the functor ` C --> ( D Func C ) `
       whose object part is ` x e. C |-> ( y e. D |-> x ) ` .  The value of the
       functor at an object ` x ` is the constant functor which maps all
       objects in ` D ` to ` x ` and all morphisms to ` 1 ( x ) ` .  The
       morphism part is a natural transformation between these functors, which
       takes ` f : x --> y ` to the natural transformation with every component
       equal to ` f ` .  (Contributed by Mario Carneiro, 6-Jan-2017.) $)
    df-diag $a |- DiagFunc = ( c e. Cat , d e. Cat |->
      ( <. c , d >. curryF ( c 1stF d ) ) ) $.

    evlfval.e $e |- E = ( C evalF D ) $.
    evlfval.c $e |- ( ph -> C e. Cat ) $.
    evlfval.d $e |- ( ph -> D e. Cat ) $.
    evlfval.b $e |- B = ( Base ` C ) $.
    evlfval.h $e |- H = ( Hom ` C ) $.
    evlfval.o $e |- .x. = ( comp ` D ) $.
    evlfval.n $e |- N = ( C Nat D ) $.
    $( Value of the evaluation functor.  (Contributed by Mario Carneiro,
       12-Jan-2017.) $)
    evlfval $p |- ( ph -> E =
      <. ( f e. ( C Func D ) , x e. B |-> ( ( 1st ` f ) ` x ) ) ,
         ( x e. ( ( C Func D ) X. B ) , y e. ( ( C Func D ) X. B ) |->
           [_ ( 1st ` x ) / m ]_ [_ ( 1st ` y ) / n ]_
           ( a e. ( m N n ) , g e. ( ( 2nd ` x ) H ( 2nd ` y ) ) |->
       ( ( a ` ( 2nd ` y ) )
          ( <. ( ( 1st ` m ) ` ( 2nd ` x ) ) ,
               ( ( 1st ` m ) ` ( 2nd ` y ) ) >. .x.
               ( ( 1st ` n ) ` ( 2nd ` y ) ) )
         ( ( ( 2nd ` x ) ( 2nd ` m ) ( 2nd ` y ) ) ` g ) ) ) ) >. ) $=
      ( vc vd cevlf co cfunc c1st cfv cmpt2 cxp c2nd cop csb ccat cbs cnat chom
      cv cco cvv wceq df-evlf a1i wa simprl simprr oveq12d fveq2d syl6eqr eqidd
      mpt2eq123dv xpeq12d oveqd csbeq2dv opeq12d wcel opex ovmpt2d syl5eq ) ALE
      FUEUFHBEFUGUFZDBUSZHUSUHUIUIZUJZBCWADUKZWEJWBUHUIZKCUSZUHUIZOIJUSZKUSZNUF
      ZWBULUIZWGULUIZMUFZWMOUSUIZIUSWLWMWIULUIUFUIZWLWIUHUIZUIWMWQUIUMZWMWJUHUI
      UIZGUFZUFZUJZUNZUNZUJZUMZPAUCUDEFUOUOHBUCUSZUDUSZUGUFZXGUPUIZWCUJZBCXIXJU
      KZXLJWFKWHOIWIWJXGXHUQUFZUFZWLWMXGURUIZUFZWOWPWRWSXHUTUIZUFZUFZUJZUNZUNZU
      JZUMZXFUEVAUEUCUDUOUOYDUJVBABCHIJKOUCUDVCVDAXGEVBZXHFVBZVEVEZXKWDYCXEYGHB
      XIXJWCWADWCYGXGEXHFUGAYEYFVFZAYEYFVGZVHZYGXJEUPUIDYGXGEUPYHVISVJZYGWCVKVL
      YGBCXLXLYBWEWEXDYGXIWAXJDYJYKVMZYLYGJWFYAXCYGKWHXTXBYGOIXNXPXSWKWNXAYGXMN
      WIWJYGXMEFUQUFNYGXGEXHFUQYHYIVHUBVJVNYGXOMWLWMYGXOEURUIMYGXGEURYHVITVJVNY
      GXRWTWOWPYGXQGWRWSYGXQFUTUIGYGXHFUTYIVIUAVJVNVNVLVOVOVLVPQRXFVAVQAWDXEVRV
      DVSVT $.

    evlf2.f $e |- ( ph -> F e. ( C Func D ) ) $.
    evlf2.g $e |- ( ph -> G e. ( C Func D ) ) $.
    evlf2.x $e |- ( ph -> X e. B ) $.
    evlf2.y $e |- ( ph -> Y e. B ) $.
    evlf2.l $e |- L = ( <. F , X >. ( 2nd ` E ) <. G , Y >. ) $.
    $( Value of the evaluation functor at a morphism.  (Contributed by Mario
       Carneiro, 12-Jan-2017.) $)
    evlf2 $p |- ( ph -> L = ( a e. ( F N G ) , g e. ( X H Y ) |->
      ( ( a ` Y ) ( <. ( ( 1st ` F ) ` X ) , ( ( 1st ` F ) ` Y ) >. .x.
        ( ( 1st ` G ) ` Y ) ) ( ( X ( 2nd ` F ) Y ) ` g ) ) ) ) $=
      ( vx vy vm vn vf cop c2nd cfv co cv c1st cmpt2 cfunc cxp csb wceq evlfval
      cvv ovex cbs fvex eqeltri mpt2ex xpex op2ndd syl fvexd simprl fveq2d wcel
      wa op1stg syl2anc adantr simplrr ad2antrr simplr oveq12d op2ndg ad3antrrr
      eqtrd fveq12d opeq12d oveq123d fveq1d mpt2eq123dv csbied2 opelxpi ovmpt2d
      simpr a1i syl5eq ) AKHMUMZINUMZGUNUOZUPOFHILUPZMNJUPZNOUQZUOZFUQZMNHUNUOZ
      UPZUOZMHURUOZUOZNXKUOZUMZNIURUOZUOZEUPZUPZUSZUGAUHUIWTXACDUTUPZBVAZYAUJUH
      UQZURUOZUKUIUQZURUOZOFUJUQZUKUQZLUPZYBUNUOZYDUNUOZJUPZYJXEUOZXGYIYJYFUNUO
      ZUPZUOZYIYFURUOZUOZYJYPUOZUMZYJYGURUOZUOZEUPZUPZUSZVBZVBZXSXBVEAGULUHXTBY
      BULUQURUOUOZUSZUHUIYAYAUUFUSZUMVCXBUUIVCAUHUIBCDEULFUJUKGJLOPQRSTUAUBVDUU
      HUUIGULUHXTBUUGCDUTVFZBCVGUOVESCVGVHVIZVJUHUIYAYAUUFXTBUUJUUKVKZUULVJVLVM
      AYBWTVCZYDXAVCZVRZVRZUJYCHUUEXSVEUUPYBURVNUUPYCWTURUOZHUUPYBWTURAUUMUUNVO
      ZVPAUUQHVCZUUOAHXTVQZMBVQZUUSUCUEHMXTBVSVTWAWHUUPYFHVCZVRZUKYEIUUDXSVEUVC
      YDURVNUVCYEXAURUOZIUVCYDXAURAUUMUUNUVBWBZVPAUVDIVCZUUOUVBAIXTVQZNBVQZUVFU
      DUFINXTBVSVTWCWHUVCYGIVCZVRZOFYHYKUUCXCXDXRUVJYFHYGILUUPUVBUVIWDZUVCUVIWQ
      ZWEUVJYIMYJNJUVJYIWTUNUOZMUVJYBWTUNUUPUUMUVBUVIUURWCVPAUVMMVCZUUOUVBUVIAU
      UTUVAUVNUCUEHMXTBWFVTWGWHZUVJYJXAUNUOZNUVJYDXAUNUVCUUNUVIUVEWAVPAUVPNVCZU
      UOUVBUVIAUVGUVHUVQUDUFINXTBWFVTWGWHZWEUVJYLXFYOXJUUBXQUVJYSXNUUAXPEUVJYQX
      LYRXMUVJYIMYPXKUVJYFHURUVKVPZUVOWIUVJYJNYPXKUVSUVRWIWJUVJYJNYTXOUVJYGIURU
      VLVPUVRWIWEUVJYJNXEUVRVPUVJXGYNXIUVJYIMYJNYMXHUVJYFHUNUVKVPUVOUVRWKWLWKWM
      WNWNAUUTUVAWTYAVQUCUEHMXTBWOVTAUVGUVHXAYAVQUDUFINXTBWOVTXSVEVQAOFXCXDXRHI
      LVFMNJVFVJWRWPWS $.

    evlf2val.a $e |- ( ph -> A e. ( F N G ) ) $.
    evlf2val.k $e |- ( ph -> K e. ( X H Y ) ) $.
    $( Value of the evaluation natural transformation at an object.
       (Contributed by Mario Carneiro, 12-Jan-2017.) $)
    evlf2val $p |- ( ph -> ( A L K ) =
      ( ( A ` Y ) ( <. ( ( 1st ` F ) ` X ) , ( ( 1st ` F ) ` Y ) >. .x.
        ( ( 1st ` G ) ` Y ) ) ( ( X ( 2nd ` F ) Y ) ` K ) ) ) $=
      ( va vg co cv cfv c2nd c1st cop evlf2 wceq wa simprl fveq1d simprr fveq2d
      cvv oveq12d ovexd ovmpt2d ) AUJUKBKHIMULNOJULOUJUMZUNZUKUMZNOHUOUNULZUNZN
      HUPUNZUNOVNUNUQOIUPUNUNFULZULOBUNZKVLUNZVOULLVEACDEFUKGHIJLMNOUJPQRSTUAUB
      UCUDUEUFUGURAVIBUSZVKKUSZUTUTZVJVPVMVQVOVTOVIBAVRVSVAVBVTVKKVLAVRVSVCVDVF
      UHUIAVPVQVOVGVH $.
  $}

  ${
    $d x y B $.  $d a f g m n x y C $.  $d f x F $.  $d a f g m n x y ph $.
    $d a f g m n x y D $.  $d f x X $.
    evlf1.e $e |- E = ( C evalF D ) $.
    evlf1.c $e |- ( ph -> C e. Cat ) $.
    evlf1.d $e |- ( ph -> D e. Cat ) $.
    evlf1.b $e |- B = ( Base ` C ) $.
    evlf1.f $e |- ( ph -> F e. ( C Func D ) ) $.
    evlf1.x $e |- ( ph -> X e. B ) $.
    $( Value of the evaluation functor at an object.  (Contributed by Mario
       Carneiro, 12-Jan-2017.) $)
    evlf1 $p |- ( ph -> ( F ( 1st ` E ) X ) = ( ( 1st ` F ) ` X ) ) $=
      ( vf vx vy co cv c1st cfv vm vn va cfunc cvv cmpt2 cxp cnat c2nd chom cop
      vg cco csb wceq eqid evlfval ovex cbs fvex eqeltri mpt2ex xpex op1std syl
      wa simprl fveq2d simprr fveq12d fvexd ovmpt2d ) ANOFGCDUDQZBORZNRZSTZTZGF
      STZTESTZUEAENOVMBVQUFZOPVMBUGZWAUAVNSTUBPRZSTUCULUARZUBRZCDUHQZQVNUITZWBU
      ITZCUJTZQWGUCRTULRWFWGWCUITQTWFWCSTZTWGWITUKWGWDSTTDUMTZQQUFUNUNZUFZUKUOV
      SVTUOAOPBCDWJNULUAUBEWHWEUCHIJKWHUPWJUPWEUPUQVTWLENOVMBVQCDUDURZBCUSTUEKC
      USUTVAZVBOPWAWAWKVMBWMWNVCZWOVBVDVEAVOFUOZVNGUOZVFVFZVNGVPVRWRVOFSAWPWQVG
      VHAWPWQVIVJLMAGVRVKVL $.
  $}

  ${
    $d a f g h m n u v x y z C $.  $d f g u v x y z E $.  $d f g u v x y z Q $.
    $d a f g h m n u v x y z D $.  $d a f g h m n u v x y z ph $.
    evlfcl.e $e |- E = ( C evalF D ) $.
    evlfcl.q $e |- Q = ( C FuncCat D ) $.
    evlfcl.c $e |- ( ph -> C e. Cat ) $.
    evlfcl.d $e |- ( ph -> D e. Cat ) $.
    ${
      evlfcl.n $e |- N = ( C Nat D ) $.
      evlfcl.f $e |- ( ph -> ( F e. ( C Func D ) /\ X e. ( Base ` C ) ) ) $.
      evlfcl.g $e |- ( ph -> ( G e. ( C Func D ) /\ Y e. ( Base ` C ) ) ) $.
      evlfcl.h $e |- ( ph -> ( H e. ( C Func D ) /\ Z e. ( Base ` C ) ) ) $.
      evlfcl.a $e |- ( ph ->
        ( A e. ( F N G ) /\ K e. ( X ( Hom ` C ) Y ) ) ) $.
      evlfcl.b $e |- ( ph ->
        ( B e. ( G N H ) /\ L e. ( Y ( Hom ` C ) Z ) ) ) $.
      $( Lemma for ~ evlfcl .  (Contributed by Mario Carneiro, 12-Jan-2017.) $)
      evlfcllem $p |- ( ph ->
      ( ( <. F , X >. ( 2nd ` E ) <. H , Z >. ) `
        ( <. B , L >. ( <. <. F , X >. , <. G , Y >. >.
          ( comp ` ( Q Xc. C ) ) <. H , Z >. ) <. A , K >. ) ) =
      ( ( ( <. G , Y >. ( 2nd ` E ) <. H , Z >. ) ` <. B , L >. )
        ( <. ( ( 1st ` E ) ` <. F , X >. ) , ( ( 1st ` E ) ` <. G , Y >. ) >.
          ( comp ` D ) ( ( 1st ` E ) ` <. H , Z >. ) )
        ( ( <. F , X >. ( 2nd ` E ) <. G , Y >. ) ` <. A , K >. ) ) ) $=
        ( cop cco cfv co c2nd c1st cxpc cbs chom eqid cfunc wcel simpld fuccocl
        simprd catcocl evlf2val fuccoval oveq1d wrel wbr relfunc sylancr funcco
        1st2ndbr oveq2d nat1st2nd funcf1 ffvelrnd funcf2 catass 3eqtr4d 3eqtr3d
        nati natcl eqtrd 3eqtrd fucbas fuchom xpcco2 fveq2d df-ov syl6eqr evlf1
        syl5eqr opeq12d oveq12d oveq123d ) ACBHIUGJFUHUIZUJUJZLKNOUGPDUHUIZUJUJ
        ZHNUGZJPUGZGUKUIZUJZUJZPCUIZLOPIUKUIZUJZUIZOIULUIZUIZPXHUIZUGPJULUIZUIZ
        EUHUIZUJUJZOBUIZKNOHUKUIZUJZUIZNHULUIZUIZOXSUIZUGZXIXMUJUJZXTXIUGZXLXMU
        JZUJZCLUGZBKUGZWSIOUGZUGWTFDUMUJZUHUIZUJUJZXBUIZYGYIWTXAUJZUIZYHWSYIXAU
        JZUIZWSGULUIZUIZYIYRUIZUGZWTYRUIZXMUJZUJAXCPWPUIZWRNPXPUJUIZXTPXSUIZUGX
        LXMUJZUJXDPBUIZUUFXJUGXLXMUJUJZUUEUUGUJZYFAWPDUNUIZDEXMGHJDUOUIZWRXBMNP
        QSTUUKUPZUULUPZXMUPZUAAHDEUQUJZURZNUUKURZUBUSZAJUUPURZPUUKURZUDUSZAUUQU
        URUBVAZAUUTUVAUDVAZXBUPADEFBCWOHIJMRUAWOUPZABHIMUJURZKNOUULUJZURZUEUSZA
        CIJMUJURZLOPUULUJZURZUFUSZUTAUUKDWQKLUULNOPUUMUUNWQUPZSUVCAIUUPURZOUUKU
        RZUCVAZUVDAUVFUVHUEVAZAUVJUVLUFVAZVBVCAUUDUUIUUEUUGAUUKDEFBCWOXMHIJMPRU
        AUUMUUOUVEUVIUVMUVDVDVEAUUJUUILOPXPUJZUIZXRYBUUFXMUJUJZUUGUJZYFAUUEUWBU
        UIUUGAUUKDWQEXSXPUULKLXMNOPUUMUUNUVNUUOAUUPVFZUUQXSXPUUPVGDEVHZUUSHUUPV
        KVIZUVCUVQUVDUVRUVSVJVLAUUIUWAYAUUFUGZXLXMUJUJZXRYBXLXMUJZUJXNXOYAXIUGZ
        XLXMUJUJZXRUWIUJUWCYFAUWHUWKXRUWIAXDUUHUWAUWGXJXMUJUJZYAXJUGXLXMUJZUJXD
        XGXOUWJXJXMUJUJZUWMUJUWHUWKAUWLUWNXDUWMABUUKDELXMXSXPUULXHXEMOPUAABDEHI
        MUAUVIVMZUUMUUNUUOUVQUVDUVSVTVLAEUNUIZEXMUWAUUHEUOUIZXDXLYAUUFXJUWPUPZU
        WQUPZUUOTAUUKUWPOXSAUUKUWPDEXSXPUUMUWRUWFVNZUVQVOZAUUKUWPPXSUWTUVDVOZAU
        UKUWPPXHAUUKUWPDEXHXEUUMUWRAUWDUVOXHXEUUPVGUWEAUVOUVPUCUSZIUUPVKVIZVNZU
        VDVOZAUVKYAUUFUWQUJLUVTAUUKDEXSXPUULUWQOPUUMUUNUWSUWFUVQUVDVPUVSVOZABUU
        KDEXSXPUWQXHXEMPUAUWOUUMUWSUVDWAZAUUKUWPPXKAUUKUWPDEXKJUKUIZUUMUWRAUWDU
        UTXKUXIUUPVGUWEUVBJUUPVKVIVNUVDVOZACUUKDEXHXEUWQXKUXIMPUAACDEIJMUAUVMVM
        UUMUWSUVDWAZVQAUWPEXMXOXGUWQXDXLYAXIXJUWRUWSUUOTUXAAUUKUWPOXHUXEUVQVOZU
        XFABUUKDEXSXPUWQXHXEMOUAUWOUUMUWSUVQWAZAUVKXIXJUWQUJLXFAUUKDEXHXEUULUWQ
        OPUUMUUNUWSUXDUVQUVDVPUVSVOZUXJUXKVQVRVEAUWPEXMXRUWAUWQUUIXLXTYAUUFUWRU
        WSUUOTAUUKUWPNXSUWTUVCVOZUXAUXBAUVGXTYAUWQUJKXQAUUKDEXSXPUULUWQNOUUMUUN
        UWSUWFUVCUVQVPUVRVOZUXGUXJAUWPEXMUUHXDUWQUUFXJXLUWRUWSUUOTUXBUXFUXJUXHU
        XKVBVQAUWPEXMXRXOUWQXNXLXTYAXIUWRUWSUUOTUXOUXAUXLUXPUXMUXJAUWPEXMXGXDUW
        QXIXJXLUWRUWSUUOTUXLUXFUXJUXNUXKVBVQVSWBWCAYMWPWRUGZXBUIXCAYLUXQXBAFDIO
        JPWQYJWOBKMUULCLHNYKUUPUUKYJUPDEFRWDUUMDEFMRUAWEUUNUUSUVCUXCUVQUVEUVNYK
        UPUVBUVDUVIUVRUVMUVSWFWGWPWRXBWHWIAYOXNYQYCUUCYEAUUAYDUUBXLXMAYSXTYTXIA
        YSHNYRUJXTHNYRWHAUUKDEGHNQSTUUMUUSUVCWJWKAYTIOYRUJXIIOYRWHAUUKDEGIOQSTU
        UMUXCUVQWJWKWLAUUBJPYRUJXLJPYRWHAUUKDEGJPQSTUUMUVBUVDWJWKWMAYOCLYNUJXNC
        LYNWHACUUKDEXMGIJUULLYNMOPQSTUUMUUNUUOUAUXCUVBUVQUVDYNUPUVMUVSVCWKAYQBK
        YPUJYCBKYPWHABUUKDEXMGHIUULKYPMNOQSTUUMUUNUUOUAUUSUXCUVCUVQYPUPUVIUVRVC
        WKWNVR $.
    $}

    $( The evaluation functor is a bifunctor (a two-argument functor) with the
       first parameter taking values in the set of functors ` C --> D ` , and
       the second parameter in ` D ` .  (Contributed by Mario Carneiro,
       12-Jan-2017.) $)
    evlfcl $p |- ( ph -> E e. ( ( Q Xc. C ) Func D ) ) $=
      ( vf vx cfv cop co wcel wceq cv eqid wral wa vy vm vn va vg vz vu vv c1st
      vh c2nd cxpc cfunc cvv cxp cbs cnat chom cco csb evlfval ovex fvex mpt2ex
      cmpt2 xpex opelvv syl6eqel 1st2nd2 syl wbr fucbas xpcbas fuccat xpccat wf
      ccid wrel relfunc simpr 1st2ndbr sylancr funcf1 ffvelrnda ralrimiva fmpt2
      sylib op1std feq1d mpbird wfn csbex fnmpt2i op2ndd fneq1d mpbiri ad2antrr
      ccat adantr simplrl simplrr ffvelrnd simprl simprr funcf2 nat1st2nd natcl
      catcocl ralrimivva evlf2 fuchom xpchom2 evlf1 oveq12d oveq2 fveq2 syl6eqr
      feq23d df-ov oveq2d feq123d oveq1d 2ralbidv syl5bb sylibr r19.21bi fveq2d
      ralxp catidcl 3eqtr4d fveq12d w3a 3ad2ant1 eqeltrrd opelxp xpchom eleqtrd
      oveq1 opeq12d oveq123d anasss xpcid catlid ccom fucid fvco3 syl2anc eqtrd
      fveq1d funcid 3eqtrd eqeq12d simp21 simp22 simp23 simp3l simp3r evlfcllem
      evlf2val id isfuncd df-br eqeltrd ) AEEUILZEUKLZMZDBULNZCUMNZAEUNUNUOZOEU
[encoded data, 5280 characters]
      UGUVLWUJUVSWUKUVEWVSWWAXNWWGYKYTYJUVAUVDUVEUVHUVBWGUVC $.
  $}

  ${
    $d c d e f g x y z .1. $.  $d c d e f x y A $.  $d c d e f g h w x y z B $.
    $d c d e f g x y z C $.  $d c d e f g h w x y z D $.  $d c d e f g y z H $.
    $d c d e f I $.  $d c d e f g h w x y z ph $.  $d g y z Y $.  $d g y z Z $.
    $d g h w y z E $.  $d c d e f g x J $.  $d g h w y z K $.  $d g x y z X $.
    $d c d e f g x y z F $.
    curfval.g $e |- G = ( <. C , D >. curryF F ) $.
    curfval.a $e |- A = ( Base ` C ) $.
    curfval.c $e |- ( ph -> C e. Cat ) $.
    curfval.d $e |- ( ph -> D e. Cat ) $.
    curfval.f $e |- ( ph -> F e. ( ( C Xc. D ) Func E ) ) $.
    curfval.b $e |- B = ( Base ` D ) $.
    ${
      curfval.j $e |- J = ( Hom ` D ) $.
      curfval.1 $e |- .1. = ( Id ` C ) $.
      ${
        curfval.h $e |- H = ( Hom ` C ) $.
        curfval.i $e |- I = ( Id ` D ) $.
        $( Value of the curry functor.  (Contributed by Mario Carneiro,
           12-Jan-2017.) $)
        curfval $p |- ( ph -> G = <. ( x e. A |->
     <. ( y e. B |-> ( x ( 1st ` F ) y ) ) ,
        ( y e. B , z e. B |-> ( g e. ( y J z ) |->
          ( ( .1. ` x ) ( <. x , y >. ( 2nd ` F ) <. x , z >. ) g ) ) ) >. ) ,
        ( x e. A , y e. A |-> ( g e. ( x H y ) |-> ( z e. B |->
          ( g ( <. x , z >. ( 2nd ` F ) <. y , z >. ) ( I ` z ) ) ) ) ) >. ) $=
          ( ve vf vc vd cop ccurf co c1st cfv cmpt c2nd cmpt2 cvv cbs chom ccid
          cv csb wceq df-curf wa fvexd simprl fveq2d ccat op1stg syl2anc adantr
          a1i eqtrd op2ndg ad2antrr simplr syl6eqr simpr simprr oveqd mpteq12dv
          wcel fveq1d eqidd oveq123d mpt2eq123dv opeq12d csbied2 opex cxpc elex
          cfunc syl ovmpt2d syl5eq ) AMGHUKZLULUMBECFBVCZCVCZLUNUOZUMZUPZCDFFJX
          ADVCZPUMZWTIUOZJVCZWTXAUKZWTXEUKZLUQUOZUMZUMZUPZURZUKZUPZBCEEJWTXANUM
          ZDFXHXEOUOZXJXAXEUKZXKUMZUMZUPZUPZURZUKZQAUGUHWSLUSUSUIUGVCZUNUOZUJYG
          UQUOZBUIVCZUTUOZCUJVCZUTUOZWTXAUHVCZUNUOZUMZUPZCDYMYMJXAXEYLVAUOZUMZW
          TYJVBUOZUOZXHXIXJYNUQUOZUMZUMZUPZURZUKZUPZBCYKYKJWTXAYJVAUOZUMZDYMXHX
          EYLVBUOZUOZXJXTUUBUMZUMZUPZUPZURZUKZVDZVDZYFULUSULUGUHUSUSUUTURVEABCD
          UGUHJUIUJVFVOAYGWSVEZYNLVEZVGZVGZUIYHGUUSYFUSUVDYGUNVHUVDYHWSUNUOZGUV
          DYGWSUNAUVAUVBVIZVJAUVEGVEZUVCAGVKWEZHVKWEZUVGSTGHVKVKVLVMVNVPUVDYJGV
          EZVGZUJYIHUURYFUSUVKYGUQVHUVKYIWSUQUOZHUVKYGWSUQUVDUVAUVJUVFVNVJAUVLH
          VEZUVCUVJAUVHUVIUVMSTGHVKVKVQVMVRVPUVKYLHVEZVGZUUHXQUUQYEUVOBYKUUGEXP
          UVOYKGUTUOEUVOYJGUTUVDUVJUVNVSZVJRVTZUVOYQXDUUFXOUVOCYMYPFXCUVOYMHUTU
          OFUVOYLHUTUVKUVNWAZVJUBVTZUVOYOXBWTXAUVOYNLUNUVDUVBUVJUVNAUVAUVBWBVRZ
          VJWCWDUVOCDYMYMUUEFFXNUVSUVSUVOJYSUUDXFXMUVOYRPXAXEUVOYRHVAUOPUVOYLHV
          AUVRVJUCVTWCUVOUUAXGXHXHUUCXLUVOUUBXKXIXJUVOYNLUQUVTVJZWCUVOWTYTIUVOY
          TGVBUOIUVOYJGVBUVPVJUDVTWFUVOXHWGZWHWDWIWJWDUVOBCYKYKUUPEEYDUVQUVQUVO
          JUUJUUOXRYCUVOUUINWTXAUVOUUIGVAUONUVOYJGVAUVPVJUEVTWCUVODYMUUNFYBUVSU
          VOXHXHUULXSUUMYAUVOUUBXKXJXTUWAWCUWBUVOXEUUKOUVOUUKHVBUOOUVOYLHVBUVRV
          JUFVTWFWHWDWDWIWJWKWKWSUSWEAGHWLVOALGHWMUMKWOUMZWELUSWEUALUWCWNWPYFUS
          WEAXQYEWLVOWQWR $.
      $}

      $( Value of the object part of the curry functor.  (Contributed by Mario
         Carneiro, 12-Jan-2017.) $)
      curf1fval $p |- ( ph -> ( 1st ` G ) = ( x e. A |->
   <. ( y e. B |-> ( x ( 1st ` F ) y ) ) ,
      ( y e. B , z e. B |-> ( g e. ( y J z ) |->
        ( ( .1. ` x ) ( <. x , y >. ( 2nd ` F ) <. x , z >. ) g ) ) ) >. ) ) $=
        ( cv c1st cfv co cmpt cop c2nd chom ccid wceq eqid curfval cbs cvv fvex
        cmpt2 eqeltri mptex mpt2ex op1std syl ) AMBECFBUCZCUCZLUDUEUFUGCDFFJVED
        UCZNUFVDIUEJUCZVDVEUHVDVFUHZLUIUEZUFUFUGURUHZUGZBCEEJVDVEGUJUEZUFDFVGVF
        HUKUEZUEVHVEVFUHVIUFUFUGUGZURZUHULMUDUEVKULABCDEFGHIJKLMVLVMNOPQRSTUAUB
        VLUMVMUMUNVKVOMBEVJEGUOUEUPPGUOUQUSZUTBCEEVNVPVPVAVBVC $.
    $}

    curf1.x $e |- ( ph -> X e. A ) $.
    curf1.k $e |- K = ( ( 1st ` G ) ` X ) $.
    ${
      curf1.j $e |- J = ( Hom ` D ) $.
      curf1.1 $e |- .1. = ( Id ` C ) $.
      $( Value of the object part of the curry functor.  (Contributed by Mario
         Carneiro, 12-Jan-2017.) $)
      curf1 $p |- ( ph -> K = <. ( y e. B |-> ( X ( 1st ` F ) y ) ) ,
       ( y e. B , z e. B |-> ( g e. ( y J z ) |->
         ( ( .1. ` X ) ( <. X , y >. ( 2nd ` F ) <. X , z >. ) g ) ) ) >. ) $=
        ( vx c1st cfv cv co cmpt cop c2nd cmpt2 cvv curf1fval wceq simpr oveq1d
        wa mpteq2dv wcel simp1r opeq1d oveq12d fveq2d eqidd oveq123d mpt2eq3dva
        w3a opeq12d opex a1i fvmptd syl5eq ) ANOLUGUHZUHBEOBUIZKUGUHZUJZUKZBCEE
        IVQCUIZMUJZOHUHZIUIZOVQULZOWAULZKUMUHZUJZUJZUKZUNZULZUCAUFOBEUFUIZVQVRU
        JZUKZBCEEIWBWMHUHZWDWMVQULZWMWAULZWGUJZUJZUKZUNZULWLDVPUOAUFBCDEFGHIJKL
        MPQRSTUAUDUEUPAWMOUQZUTZWOVTXBWKXDBEWNVSXDWMOVQVRAXCURUSVAXDBCEEXAWJXDV
        QEVBZWAEVBZVJZIWBWTWIXGWPWCWDWDWSWHXGWQWEWRWFWGXGWMOVQAXCXEXFVCZVDXGWMO
        WAXHVDVEXGWMOHXHVFXGWDVGVHVAVIVKUBWLUOVBAVTWKVLVMVNVO $.
    $}

    ${
      curf11.y $e |- ( ph -> Y e. B ) $.
      $( Value of the double evaluated curry functor.  (Contributed by Mario
         Carneiro, 12-Jan-2017.) $)
      curf11 $p |- ( ph -> ( ( 1st ` K ) ` Y ) = ( X ( 1st ` F ) Y ) ) $=
        ( vy vz vg cv c1st cfv co cvv cmpt chom ccid c2nd cmpt2 wceq eqid curf1
        cop cbs fvex eqeltri mptex mpt2ex op1std syl simpr oveq2d ovexd fvmptd
        wa ) AUAKJUAUDZGUEUFZUGZJKVKUGCIUEUFZUHAIUACVLUIZUAUBCCUCVJUBUDZEUJUFZU
        GJDUKUFZUFUCUDJVJUQJVOUQGULUFUGUGUIZUMZUQUNVMVNUNAUAUBBCDEVQUCFGHVPIJLM
        NOPQRSVPUOVQUOUPVNVSIUACVLCEURUFUHQEURUSUTZVAUAUBCCVRVTVTVBVCVDAVJKUNZV
        IVJKJVKAWAVEVFTAJKVKVGVH $.

      curf12.j $e |- J = ( Hom ` D ) $.
      curf12.1 $e |- .1. = ( Id ` C ) $.
      curf12.y $e |- ( ph -> Z e. B ) $.
      curf12.g $e |- ( ph -> H e. ( Y J Z ) ) $.
      $( The partially evaluated curry functor at a morphism.  (Contributed by
         Mario Carneiro, 12-Jan-2017.) $)
      curf12 $p |- ( ph -> ( ( Y ( 2nd ` K ) Z ) ` H ) =
        ( ( .1. ` X ) ( <. X , Y >. ( 2nd ` F ) <. X , Z >. ) H ) ) $=
        ( vy vz vg c2nd cfv cv co cop cmpt cmpt2 wceq c1st cbs cvv fvex eqeltri
        curf1 mptex mpt2ex op2ndd syl wcel adantr wa ovex simprl simprr oveq12d
        a1i eleqtrrd ovexd simplrl opeq2d simplrr eqidd simpr oveq123d fvmptdv2
        ovmpt2dv mpd ) ALULUMZUIUJCCUKUIUNZUJUNZKUOZMFUMZUKUNZMWJUPZMWKUPZHULUM
        ZUOZUOZUQZURZUSZJNOWIUOZUMWMJMNUPZMOUPZWQUOZUOZUSZALUICMWJHUTUMUOZUQZXA
        UPUSXBAUIUJBCDEFUKGHIKLMPQRSTUAUBUCUEUFVEXJXALUICXICEVAUMVBUAEVAVCVDZVF
        UIUJCCWTXKXKVGVHVIAXHUIUJNOCCWTWIVBUDAOCVJWJNUSZUGVKWTVBVJAXLWKOUSZVLZV
        LZUKWLWSWJWKKVMVFVQXOUKJWSXGWLXCVBXOJNOKUOZWLAJXPVJXNUHVKXOWJNWKOKAXLXM
        VNAXLXMVOVPVRXOWNJUSZVLZWMWNWRVSXRWMWMWNJWRXFXRWOXDWPXEWQXRWJNMAXLXMXQV
        TWAXRWKOMAXLXMXQWBWAVPXRWMWCXOXQWDWEWFWGWH $.
    $}

    $( The partially evaluated curry functor is a functor.  (Contributed by
       Mario Carneiro, 13-Jan-2017.) $)
    curf1cl $p |- ( ph -> K e. ( D Func E ) ) $=
      ( cfv co vy vz vg vw vh c1st c2nd cop cfunc cv cmpt chom ccid cmpt2 curf1
      eqid wceq cbs cvv fvex eqeltri mptex mpt2ex op1std syl op2ndd opeq12d wbr
      eqtr4d wcel cco cxpc ccat funcrcl simprd cxp xpcbas wrel relfunc 1st2ndbr
      wa sylancr funcf1 adantr simpr fovrnd fmptd feq1d mpbird wfn ovex fnmpt2i
      fneq1d mpbiri ad2antrr simplrl opelxpi syl2anc funcf2 xpchom curf11 df-ov
      simplrr syl6req oveq12d feq23d mpbid catidcl op1stg eleqtrrd op2ndg oveqd
      wf ovmpt4g mp3an3 sylan9eq xpcid fveq2d sylan funcid eqtr3d curf12 syl6eq
      syl6eqr 3eqtr4d 3ad2ant1 simp21 simp22 simp23 simp3l simp3r xpcco2 catlid
      w3a opeq1d eqtrd xpchom2 funcco catcocl oveq123d isfuncd df-br eqeltrd
      sylib ) AIIUFSZIUGSZUHZEFUITZAIUACJUAUJZGUFSZTZUKZUAUBCCUCUUIUBUJZEULSZTZ
      JDUMSZSZUCUJZJUUIUHZJUUMUHZGUGSZTZTZUKZUNZUHZUUGAUAUBBCDEUUPUCFGHUUNIJKLM
      NOPQRUUNUPZUUPUPZUOZAUUEUULUUFUVEAIUVFUQZUUEUULUQUVIUULUVEIUACUUKCEURSUSP
      EURUTVAZVBZUAUBCCUVDUVKUVKVCZVDVEZAUVJUUFUVEUQUVIUULUVEIUVLUVMVFVEZVGVIAU
      UEUUFUUHVHUUGUUHVJAUAUBUDCFURSZEEVKSZEUMSZUCUEFUUEUUFUUNFUMSZFULSZFVKSZPU
      VPUPZUVGUVTUPZUVRUPZUVSUPZUVQUPZUWAUPZNADEVLTZVMVJZFVMVJZAGUWHFUITZVJZUWI
      UWJWAOUWHFGVNVEVOACUVPUUEXMCUVPUULXMAUACUUKUVPUULAUUICVJZWAZJUUIUVPBCUUJA
      BCVPZUVPUUJXMUWMAUWOUVPUWHFUUJUVADEUWHBCUWHUPZLPVQZUWBAUWKVRUWLUUJUVAUWKV
      HZUWHFVSOGUWKVTWBZWCWDAJBVJZUWMQWDZAUWMWEZWFUULUPWGACUVPUUEUULUVNWHWIAUUF
      CCVPZWJUVEUXCWJUAUBCCUVDUVEUVEUPZUCUUOUVCUUIUUMUUNWKVBZWLAUXCUUFUVEUVOWMW
      NAUWMUUMCVJZWAZWAZUUOUUIUUESZUUMUUESZUVTTZUUIUUMUUFTZXMUUOUXKUVDXMUXHUCUU
      OUVCUXKUVDUXHUURUUOVJZWAZUUQUURUXKUUSUFSZUUTUFSZDULSZTZUUSUGSZUUTUGSZUUNT
      ZUVBUXNUUSUUTUWHULSZTZUUSUUJSZUUTUUJSZUVTTZUVBXMUXRUYAVPZUXKUVBXMUXNUWOUW
      HFUUJUVAUYBUVTUUSUUTUWQUYBUPZUWCAUWRUXGUXMUWSWOUXNUWTUWMUUSUWOVJZAUWTUXGU
      XMQWOZAUWMUXFUXMWPZJUUIBCWQZWRZUXNUWTUXFUUTUWOVJZUYJAUWMUXFUXMXCZJUUMBCWQ
      ZWRZWSUXNUYCUYFUYGUXKUVBUXNUWODEUWHUXQUUNUYBUUSUUTUWPUWQUXQUPZUVGUYHUYMUY
      QWTUXNUYDUXIUYEUXJUVTUXNUXIUUKUYDUXNBCDEFGHIJUUIKLADVMVJZUXGUXMMWOZAEVMVJ
      ZUXGUXMNWOZAUWLUXGUXMOWOZPUYJRUYKXAJUUIUUJXBZXDUXNUXJJUUMUUJTZUYEUXNBCDEF
      GHIJUUMKLUYTVUBVUCPUYJRUYOXAJUUMUUJXBZXDXEXFXGUXNUUQJJUXQTZUXRUXNBDUUPUXQ
      JLUYRUVHUYTUYJXHUXNUXOJUXPJUXQUXNUWTUWMUXOJUQUYJUYKJUUIBCXIWRUXNUWTUXFUXP
      JUQUYJUYOJUUMBCXIWRXEXJUXNUURUUOUYAUXHUXMWEUXNUXSUUIUXTUUMUUNUXNUWTUWMUXS
      UUIUQUYJUYKJUUIBCXKWRUXNUWTUXFUXTUUMUQUYJUYOJUUMBCXKWRXEXJWFUVDUPWGUXHUUO
      UXKUXLUVDAUXGUXLUUIUUMUVETZUVDAUUFUVEUUIUUMUVOXLUWMUXFUVDUSVJVUHUVDUQUXEU
      AUBCCUVDUVEUSUXDXNXOXPWHWIUWNUUQUUIUVRSZUUSUUSUVATZTZUYDUVSSZVUIUUIUUIUUF
      TSUXIUVSSUWNUUSUWHUMSZSZVUJSZVUKVULUWNVUOUUQVUIUHZVUJSVUKUWNVUNVUPVUJUWND
      EJUUIUWHVUMUUPUVRBCUWPAUYSUWMMWDZAVUAUWMNWDZLPUVHUWDVUMUPZUXAUXBXQXRUUQVU
      IVUJXBYDUWNUWOUWHVUMFUUJUVAUVSUUSUWQVUSUWEAUWRUWMUWSWDAUWTUWMUYIQUYLXSXTY
      AUWNBCDEUUPFGHVUIUUNIJUUIUUIKLVUQVURAUWLUWMOWDZPUXARUXBUVGUVHUXBUWNCEUVRU
      UNUUIPUVGUWDVURUXBXHYBUWNUXIUYDUVSUWNUXIUUKUYDUWNBCDEFGHIJUUIKLVUQVURVUTP
      UXARUXBXAVUDYCXRYEAUWMUXFUDUJZCVJZYNZUXMUEUJZUUMVVAUUNTZVJZWAZYNZUUQVVDUU
      RUUIUUMUHVVAUVQTTZUUSJVVAUHZUVATZTZUUQVVDUHZUUTVVJUVATZSZUUQUURUHZUVBSZUY
      DUYEUHZVVJUUJSZUWATZTZVVIUUIVVAUUFTSVVDUUMVVAUUFTSZUURUXLSZUXIUXJUHZVVAUU
      ESZUWATZTVVHVVMVVPUUSUUTUHVVJUWHVKSZTTZVVKSZVVLVWAVVHVWIUUQVVIUHZVVKSVVLV
      VHVWHVWJVVKVVHVWHUUQUUQJJUHJDVKSZTTZVVIUHVWJVVHDEJUUMJVVAUVQUWHVWKUUQUURU
      XQUUNUUQVVDJUUIVWGBCUWPLPUYRUVGAVVCUWTVVGQYFZAUWMUXFVVBVVGYGZVWMAUWMUXFVV
      BVVGYHZVWKUPZUWFVWGUPZVWMAUWMUXFVVBVVGYIZVVHBDUUPUXQJLUYRUVHAVVCUYSVVGMYF
      ZVWMXHZAVVCUXMVVFYJZVWTAVVCUXMVVFYKZYLVVHVWLUUQVVIVVHBDVWKUUPUUQUXQJJLUYR
      UVHVWSVWMVWPVWMVWTYMYOYPXRUUQVVIVVKXBYDVVHUWOUWHVWGFUUJUVAUYBVVPVVMUWAUUS
      UUTVVJUWQUYHVWQUWGAVVCUWRVVGUWSYFVVHUWTUWMUYIVWMVWNUYLWRVVHUWTUXFUYNVWMVW
      OUYPWRVVHUWTVVBVVJUWOVJVWMVWRJVVABCWQWRVVHVVPVUGUUOVPZUYCVVHUUQVUGVJZUXMV
      VPVXCVJVWTVXAUUQUURVUGUUOWQWRVVHDEJUUMUWHUXQUUNUYBJUUIBCUWPLPUYRUVGVWMVWN
      VWMVWOUYHYQXJVVHVVMVUGVVEVPZUUTVVJUYBTVVHVXDVVFVVMVXEVJVWTVXBUUQVVDVUGVVE
      WQWRVVHDEJVVAUWHUXQUUNUYBJUUMBCUWPLPUYRUVGVWMVWOVWMVWRUYHYQXJYRYAVVHBCDEU
      UPFGHVVIUUNIJUUIVVAKLVWSAVVCVUAVVGNYFZAVVCUWLVVGOYFZPVWMRVWNUVGUVHVWRVVHC
      EUVQUURVVDUUNUUIUUMVVAPUVGUWFVXFVWNVWOVWRVXAVXBYSYBVVHVWBVVOVWCVVQVWFVVTV
      VHVWDVVRVWEVVSUWAVVHUXIUYDUXJUYEVVHUXIUUKUYDVVHBCDEFGHIJUUIKLVWSVXFVXGPVW
      MRVWNXAVUDYCVVHUXJVUEUYEVVHBCDEFGHIJUUMKLVWSVXFVXGPVWMRVWOXAVUFYCVGVVHVWE
      JVVAUUJTVVSVVHBCDEFGHIJVVAKLVWSVXFVXGPVWMRVWRXAJVVAUUJXBYCXEVVHVWBUUQVVDV
      VNTVVOVVHBCDEUUPFGHVVDUUNIJUUMVVAKLVWSVXFVXGPVWMRVWOUVGUVHVWRVXBYBUUQVVDV
      VNXBYCVVHVWCUVCVVQVVHBCDEUUPFGHUURUUNIJUUIUUMKLVWSVXFVXGPVWMRVWNUVGUVHVWO
      VXAYBUUQUURUVBXBYCYTYEUUAUUEUUFUUHUUBUUDUUC $.
  $}

  ${
    $d x y A $.  $d g x y z C $.  $d g x y z F $.  $d g y z H $.  $d f w z L $.
    $d f g w y z E $.  $d f w x y z G $.  $d g x y z I $.  $d f g w x y z ph $.
    $d f g w x y z B $.  $d f g w x y z D $.  $d f g w x y z X $.  $d z Z $.
    $d g x y z K $.  $d f g w x y z Y $.
    curf2.g $e |- G = ( <. C , D >. curryF F ) $.
    curf2.a $e |- A = ( Base ` C ) $.
    curf2.c $e |- ( ph -> C e. Cat ) $.
    curf2.d $e |- ( ph -> D e. Cat ) $.
    curf2.f $e |- ( ph -> F e. ( ( C Xc. D ) Func E ) ) $.
    curf2.b $e |- B = ( Base ` D ) $.
    curf2.h $e |- H = ( Hom ` C ) $.
    curf2.i $e |- I = ( Id ` D ) $.
    curf2.x $e |- ( ph -> X e. A ) $.
    curf2.y $e |- ( ph -> Y e. A ) $.
    curf2.k $e |- ( ph -> K e. ( X H Y ) ) $.
    curf2.l $e |- L = ( ( X ( 2nd ` G ) Y ) ` K ) $.
    $( Value of the curry functor at a morphism.  (Contributed by Mario
       Carneiro, 13-Jan-2017.) $)
    curf2 $p |- ( ph -> L = ( z e. B |->
      ( K ( <. X , z >. ( 2nd ` F ) <. Y , z >. ) ( I ` z ) ) ) ) $=
      ( vx vy vg c2nd cfv co cv cop cmpt cmpt2 wceq c1st chom ccid eqid curfval
      cbs cvv fvex eqeltri mptex mpt2ex op2ndd syl wcel adantr wa simprl simprr
      a1i oveq12d eleqtrrd simplrl opeq1d simplrr simpr eqidd oveq123d mpteq2dv
      ovex fvmptdv2 ovmpt2dv mpd syl5eq ) AMLNOIUKULZUMZULZBDLBUNZKULZNWOUOZOWO
      UOZHUKULZUMZUMZUPZUGAWLUHUICCUJUHUNZUIUNZJUMZBDUJUNZWPXCWOUOZXDWOUOZWSUMZ
      UMZUPZUPZUQZURZWNXBURZAIUHCUIDXCXDHUSULUMUPUIBDDUJXDWOFUTULZUMXCEVAULZULX
      FXCXDUOXGWSUMUMUPUQUOZUPZXMUOURXNAUHUIBCDEFXQUJGHIJKXPPQRSTUAXPVBXQVBUBUC
      VCXSXMIUHCXRCEVDULVEQEVDVFVGZVHUHUICCXLXTXTVIVJVKAXOUHUINOCCXLWLVEUDAOCVL
      XCNURZUEVMXLVEVLAYAXDOURZVNZVNZUJXEXKXCXDJWGVHVQYDUJLXKXBXEWMVEYDLNOJUMZX
      EALYEVLYCUFVMYDXCNXDOJAYAYBVOAYAYBVPVRVSXKVEVLYDXFLURZVNZBDXJDFVDULVEUAFV
      DVFVGVHVQYGBDXJXAYGXFLWPWPXIWTYGXGWQXHWRWSYGXCNWOAYAYBYFVTWAYGXDOWOAYAYBY
      FWBWAVRYDYFWCYGWPWDWEWFWHWIWJWK $.

    ${
      curf2.z $e |- ( ph -> Z e. B ) $.
      $( Value of a component of the curry functor natural transformation.
         (Contributed by Mario Carneiro, 13-Jan-2017.) $)
      curf2val $p |- ( ph -> ( L ` Z ) =
        ( K ( <. X , Z >. ( 2nd ` F ) <. Y , Z >. ) ( I ` Z ) ) ) $=
        ( vz cv cfv cop c2nd co curf2 wceq wa simpr opeq2d oveq12d eqidd fveq2d
        cvv oveq123d ovexd fvmptd ) AUIOKUIUJZJUKZMVGULZNVGULZGUMUKZUNZUNKOJUKZ
        MOULZNOULZVKUNZUNCLVCAUIBCDEFGHIJKLMNPQRSTUAUBUCUDUEUFUGUOAVGOUPZUQZKKV
        HVMVLVPVRVIVNVJVOVKVRVGOMAVQURZUSVRVGONVSUSUTVRKVAVRVGOJVSVBVDUHAKVMVPV
        EVF $.
    $}

    curf2.n $e |- N = ( D Nat E ) $.
    $( The curry functor at a morphism is a natural transformation.
       (Contributed by Mario Carneiro, 13-Jan-2017.) $)
    curf2cl $p |- ( ph ->
      L e. ( ( ( 1st ` G ) ` X ) N ( ( 1st ` G ) ` Y ) ) ) $=
      ( vz vw vf c1st cfv co wcel cv chom cixp c2nd cop wceq wral cmpt curf2 wa
      cco cxpc wf cxp eqid xpcbas cfunc wbr wrel relfunc sylancr adantr opelxpi
      1st2ndbr sylan funcf2 simpr xpchom2 feq2d mpbid ccat catidcl fovrnd df-ov
      curf11 syl6eq oveq12d eleqtrrd ralrimiva cvv fvex eqeltri mptelixpg ax-mp
      wb cbs sylibr eqeltrd w3a ccid catrid catlid eqtr4d simpr1 simpr2 opeq12d
      simpr3 xpcco2 3ad2antr1 3eqtr4d fveq2d syl2anc funcco 3eqtr3d ralrimivvva
      curf2val curf12 oveq123d curf1cl isnat2 mpbir2and ) ALNHULUMZUMZOYGUMZMUN
      UOLUICUIUPZYHULUMZUMZYJYIULUMZUMZFUQUMZUNZURZUOUJUPZLUMZUKUPZYJYRYHUSUMUN
      UMZYLYRYKUMZUTZYRYMUMZFVFUMZUNZUNZYTYJYRYIUSUMUNUMZYJLUMZYLYNUTZUUDUUEUNZ
      UNZVAZUKYJYREUQUMZUNZVBUJCVBUICVBALUICKYJJUMZNYJUTZOYJUTZGUSUMZUNZUNZVCZY
      QAUIBCDEFGHIJKLNOPQRSTUAUBUCUDUEUFUGVDAUVAYPUOZUICVBZUVBYQUOZAUVCUICAYJCU
      OZVEZUVAUUQGULUMZUMZUURUVHUMZYOUNZYPUVGKUUPUVKNOIUNZYJYJUUNUNZUUTUVGUUQUU
      RDEVGUNZUQUMZUNZUVKUUTVHUVLUVMVIZUVKUUTVHUVGBCVIZUVNFUVHUUSUVOYOUUQUURDEU
      VNBCUVNVJZQUAVKZUVOVJZYOVJZAUVHUUSUVNFVLUNZVMZUVFAUWCVNGUWCUOZUWDUVNFVOTG
      UWCVSVPZVQANBUOZUVFUUQUVRUOZUDNYJBCVRVTZAOBUOZUVFUURUVRUOZUEOYJBCVRVTZWAU
      VGUVPUVQUVKUUTUVGDEOYJUVNIUUNUVONYJBCUVSQUAUBUUNVJZAUWGUVFUDVQZAUVFWBZAUW
      JUVFUEVQZUWOUWAWCWDWEAKUVLUOZUVFUFVQUVGCEJUUNYJUAUWMUCAEWFUOZUVFSVQZUWOWG
      ZWHUVGYLUVIYNUVJYOUVGYLNYJUVHUNZUVIUVGBCDEFGHYHNYJPQADWFUOZUVFRVQZUWSAUWE
      UVFTVQZUAUWNYHVJZUWOWJNYJUVHWIZWKUVGYNOYJUVHUNZUVJUVGBCDEFGHYIOYJPQUXCUWS
      UXDUAUWPYIVJZUWOWJOYJUVHWIZWKWLWMWNCWOUOUVEUVDWTCEXAUMWOUAEXAWPWQUICUVAYP
      WOWRWSXBXCAUUMUIUJUKCCUUOAUVFYRCUOZYTUUOUOZXDZVEZKYRJUMZUTZNYRUTZOYRUTZUU
      SUNZUMZNDXEUMZUMZYTUTZUUQUXPUUSUNZUMZUVIUXPUVHUMZUTZUXQUVHUMZUUEUNZUNZOUX
      TUMZYTUTZUURUXQUUSUNZUMZKUUPUTZUUTUMZUVIUVJUTZUYGUUEUNZUNZUUGUULUXMUXOUYB
      UUQUXPUTUXQUVNVFUMZUNUNZUUQUXQUUSUNZUMUYKUYNUUQUURUTUXQUYSUNUNZVUAUMUYIUY
      RUXMUYTVUBVUAUXMKUYANNUTODVFUMZUNUNZUXNYTYJYRUTYREVFUMZUNUNZUTUYJKNOUTOVU
      CUNUNZYTUUPYJYJUTYRVUEUNUNZUTUYTVUBUXMVUDVUGVUFVUHUXMVUDKVUGUXMBDVUCUXTKI
      NOQUBUXTVJZAUXBUXLRVQZAUWGUXLUDVQZVUCVJZAUWJUXLUEVQZAUWQUXLUFVQZXFUXMBDVU
      CUXTKINOQUBVUIVUJVUKVULVUMVUNXGXHUXMVUFYTVUHUXMCEVUEJYTUUNYJYRUAUWMUCAUWR
      UXLSVQZAUVFUXJUXKXIZVUEVJZAUVFUXJUXKXJZAUVFUXJUXKXLZXGUXMCEVUEJYTUUNYJYRU
      AUWMUCVUOVUPVUQVURVUSXFXHXKUXMDENYROYRVUEUVNVUCUYAYTIUUNKUXNNYJUYSBCUVSQU
      AUBUWMVUKVUPVUKVURVULVUQUYSVJZVUMVURUXMBDUXTINQUBVUIVUJVUKWGZVUSVUNUXMCEJ
      UUNYRUAUWMUCVUOVURWGZXMUXMDEOYJOYRVUEUVNVUCKUUPIUUNUYJYTNYJUYSBCUVSQUAUBU
      WMVUKVUPVUMVUPVULVUQVUTVUMVURVUNAUXJUVFUUPUVMUOZUXKUWTXNZUXMBDUXTIOQUBVUI
      VUJVUMWGZVUSXMXOXPUXMUVRUVNUYSFUVHUUSUVOUYBUXOUUEUUQUXPUXQUVTUWAVUTUUEVJZ
      AUWDUXLUWFVQZAUXJUVFUWHUXKUWIXNZUXMUWGUXJUXPUVRUOVUKVURNYRBCVRXQUXMUWJUXJ
      UXQUVRUOVUMVUROYRBCVRXQZUXMUYBNNIUNZUUOVIZUUQUXPUVOUNUXMUYAVVJUOUXKUYBVVK
      UOVVAVUSUYAYTVVJUUOVRXQUXMDENYRUVNIUUNUVONYJBCUVSQUAUBUWMVUKVUPVUKVURUWAW
      CWMUXMUXOUVLYRYRUUNUNZVIZUXPUXQUVOUNUXMUWQUXNVVLUOUXOVVMUOVUNVVBKUXNUVLVV
      LVRXQUXMDEOYRUVNIUUNUVONYRBCUVSQUAUBUWMVUKVURVUMVURUWAWCWMXRUXMUVRUVNUYSF
      UVHUUSUVOUYNUYKUUEUUQUURUXQUVTUWAVUTVVFVVGVVHAUXJUVFUWKUXKUWLXNVVIUXMUYNU
      VQUVPUXMUWQVVCUYNUVQUOVUNVVDKUUPUVLUVMVRXQUXMDEOYJUVNIUUNUVONYJBCUVSQUAUB
      UWMVUKVUPVUMVUPUWAWCWMUXMUYKOOIUNZUUOVIZUURUXQUVOUNUXMUYJVVNUOUXKUYKVVOUO
      VVEVUSUYJYTVVNUUOVRXQUXMDEOYRUVNIUUNUVOOYJBCUVSQUAUBUWMVUMVUPVUMVURUWAWCW
      MXRXSUXMYSUXSUUAUYDUUFUYHUXMUUCUYFUUDUYGUUEUXMYLUVIUUBUYEUXMYLUXAUVIUXMBC
      DEFGHYHNYJPQVUJVUOAUWEUXLTVQZUAVUKUXEVUPWJUXFWKZUXMUUBNYRUVHUNUYEUXMBCDEF
      GHYHNYRPQVUJVUOVVPUAVUKUXEVURWJNYRUVHWIWKXKUXMUUDOYRUVHUNUYGUXMBCDEFGHYIO
      YRPQVUJVUOVVPUAVUMUXHVURWJOYRUVHWIWKZWLUXMYSKUXNUXRUNUXSUXMBCDEFGHIJKLNOY
      RPQVUJVUOVVPUAUBUCVUKVUMVUNUGVURYAKUXNUXRWIWKUXMUUAUYAYTUYCUNUYDUXMBCDEUX
      TFGHYTUUNYHNYJYRPQVUJVUOVVPUAVUKUXEVUPUWMVUIVURVUSYBUYAYTUYCWIWKYCUXMUUHU
      YMUUIUYOUUKUYQUXMUUJUYPUUDUYGUUEUXMYLUVIYNUVJVVQUXMYNUXGUVJUXMBCDEFGHYIOY
      JPQVUJVUOVVPUAVUMUXHVUPWJUXIWKXKVVRWLUXMUUHUYJYTUYLUNUYMUXMBCDEUXTFGHYTUU
      NYIOYJYRPQVUJVUOVVPUAVUMUXHVUPUWMVUIVURVUSYBUYJYTUYLWIWKUXMUUIUVAUYOUXMBC
      DEFGHIJKLNOYJPQVUJVUOVVPUAUBUCVUKVUMVUNUGVUPYAKUUPUUTWIWKYCXOXTAUIUJLCEFU
      UEUKYHYIUUNYOMUHUAUWMUWBVVFABCDEFGHYHNPQRSTUAUDUXEYDABCDEFGHYIOPQRSTUAUEU
      XHYDYEYF $.
  $}

  ${
    $d g w x y z D $.  $d g w x y z E $.  $d g w x y z F $.  $d f g x y z Q $.
    $d f g w x y z C $.  $d f g w x y z G $.  $d f g w x y z ph $.
    curfcl.g $e |- G = ( <. C , D >. curryF F ) $.
    curfcl.q $e |- Q = ( D FuncCat E ) $.
    curfcl.c $e |- ( ph -> C e. Cat ) $.
    curfcl.d $e |- ( ph -> D e. Cat ) $.
    curfcl.f $e |- ( ph -> F e. ( ( C Xc. D ) Func E ) ) $.
    $( The curry functor of a functor ` F : C X. D --> E ` is a functor
       ` curryF ( F ) : C --> ( D --> E ) ` .  (Contributed by Mario Carneiro,
       13-Jan-2017.) $)
    curfcl $p |- ( ph -> G e. ( C Func Q ) ) $=
      ( vx vy cfv cop co eqid wcel adantr vz vg vf vw c1st c2nd cfunc cmpt chom
      cbs cv ccid cmpt2 curfval wceq fvex mptex mpt2ex op1std syl op2ndd eqtr4d
      opeq12d wbr cco cnat fucbas fuchom cxpc ccat wa funcrcl simprd fuccat cvv
      opex a1i simpr curf1cl fmpt2d cxp wfn fnmpt2i fneq1d mpbiri oveqd ovmpt4g
      ovex mp3an3 sylan9eq ad2antrr simplrl simplrr curf2cl ccom xpcbas relfunc
      1st2ndbr sylancr opelxpi adantll funcid xpcid fveq2d df-ov syl6eqr curf11
      wrel syl6req 3eqtr3d mpteq2dva wf cidfn dffn2 sylib funcf1 fcompt syl2anc
      catidcl curf2 3eqtr4d 3ad2ant1 simp21 syl6eq simp22 simp23 oveq12d simp3r
      fucid curf2val simp3l oveq123d sylan eleqtrrd funcco xpcco2 catlid opeq2d
      w3a xpchom2 eqtrd 3eqtr2rd catcocl fucco isfuncd df-br eqeltrd ) AGGUEOZG
[encoded data, 4560 characters]
      UG $.
  $}

  ${
    $d g x y z A $.  $d g x y z B $.  $d g x y z C $.  $d g x y z ph $.
    $d g x y z D $.  $d g y z E $.  $d g x y z F $.
    curfpropd.1 $e |- ( ph -> ( Homf ` A ) = ( Homf ` B ) ) $.
    curfpropd.2 $e |- ( ph -> ( comf ` A ) = ( comf ` B ) ) $.
    curfpropd.3 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    curfpropd.4 $e |- ( ph -> ( comf ` C ) = ( comf ` D ) ) $.
    curfpropd.a $e |- ( ph -> A e. Cat ) $.
    curfpropd.b $e |- ( ph -> B e. Cat ) $.
    curfpropd.c $e |- ( ph -> C e. Cat ) $.
    curfpropd.d $e |- ( ph -> D e. Cat ) $.
    curfpropd.f $e |- ( ph -> F e. ( ( A Xc. C ) Func E ) ) $.
    $( If two categories have the same set of objects, morphisms, and
       compositions, then they curry the same functor to the same result.
       (Contributed by Mario Carneiro, 26-Jan-2017.) $)
    curfpropd $p |- ( ph ->
      ( <. A , C >. curryF F ) = ( <. B , D >. curryF F ) ) $=
      ( vy cfv co eqid vx vz vg cbs cv c1st cmpt chom ccid cop c2nd cmpt2 ccurf
      homfeqbas wcel wceq adantr mpteq1d chomf ad2antrr simprl simprr homfeqval
      wa ccat fveq1d oveq1d mpteq12dv mpt2eq123dva opeq12d mpteq12dva ad3antrrr
      cidpropd oveq2d curfval cxpc cfunc xpcpropd eleqtrd 3eqtr4d ) AUABUDRZQDU
      DRZUAUEZQUEZGUFRSZUGZQUBWBWBUCWDUBUEZDUHRZSZWCBUIRZRZUCUEZWCWDUJWCWGUJZGU
      KRZSZSZUGZULZUJZUGZUAQWAWAUCWCWDBUHRZSZUBWBWLWGDUIRZRZWMWDWGUJWNSZSZUGZUG
      ZULZUJUACUDRZQEUDRZWEUGZQUBXKXKUCWDWGEUHRZSZWCCUIRZRZWLWOSZUGZULZUJZUGZUA
      QXJXJUCWCWDCUHRZSZUBXKWLWGEUIRZRZXESZUGZUGZULZUJBDUJGUMSZCEUJGUMSZAWTYAXI
      YIAUAWAWSXJXTABCHUNZAWCWAUOZVDZWFXLWRXSYNQWBXKWEAWBXKUPZYMADEJUNZUQZURYNQ
      UBWBWBWQXKXKXRYQYNYOWDWBUOZYQUQYNYRWGWBUOZVDZVDZUCWIWPXNXQUUAWBDEWHXMWDWG
      WBTZWHTZXMTZADUSREUSRUPYMYTJUTYNYRYSVAYNYRYSVBVCUUAWKXPWLWOUUAWCWJXOAWJXO
      UPYMYTABCVEVEHILMVMUTVFVGVHVIVJVKAUAQWAWAXHXJXJYHYLAWAXJUPYMYLUQAYMWDWAUO
      ZVDZVDZUCXBXGYCYGUUGWABCXAYBWCWDWATZXATZYBTZABUSRCUSRUPUUFHUQAYMUUEVAAYMU
      UEVBVCUUGWLXBUOZVDZUBWBXFXKYFAYOUUFUUKYPUTUULYSVDZXDYEWLXEUUMWGXCYDAXCYDU
      PUUFUUKYSADEVEVEJKNOVMVLVFVNVKVKVIVJAUAQUBWAWBBDWJUCFGYJXAXCWHYJTUUHLNPUU
      BUUCWJTUUIXCTVOAUAQUBXJXKCEXOUCFGYKYBYDXMYKTXJTMOAGBDVPSZFVQSCEVPSZFVQSPA
      UUNUUOFVQABCDEVEHIJKLMNOVRVGVSXKTUUDXOTUUJYDTVOVT $.
  $}

  ${
    $d c f g x y z C $.  $d c f g x y z D $.  $d c f g x y z ph $.
    $d c f g y z E $.  $d g x y z F $.  $d c f g x y z G $.
    uncfval.g $e |- F = ( <" C D E "> uncurryF G ) $.
    uncfval.c $e |- ( ph -> D e. Cat ) $.
    uncfval.d $e |- ( ph -> E e. Cat ) $.
    uncfval.f $e |- ( ph -> G e. ( C Func ( D FuncCat E ) ) ) $.
    $( Value of the uncurry functor, which is the reverse of the curry functor,
       taking ` G : C --> ( D --> E ) ` to ` uncurryF ( G ) : C X. D --> E ` .
       (Contributed by Mario Carneiro, 13-Jan-2017.) $)
    uncfval $p |- ( ph -> F = ( ( D evalF E ) o.func
        ( ( G o.func ( C 1stF D ) ) pairF ( C 2ndF D ) ) ) ) $=
      ( vc co ccofu cvv cfv wceq ccat wcel syl oveq12d vf cs3 cuncf cevlf c1stf
      c2ndf cprf c1 cv c2 cc0 cmpt2 df-uncf wa simprl fveq1d s3fv1 adantr eqtrd
      a1i s3fv2 simprr cfuc cfunc funcrcl simpld s3fv0 cword s3cli elex ovmpt2d
      mp1i ovexd syl5eq ) AEBCDUBZFUCLCDUDLZFBCUELZMLZBCUFLZUGLZMLZGAKUAVOFNNUH
      KUIZOZUJWBOZUDLZUAUIZUKWBOZWCUELZMLZWGWCUFLZUGLZMLZWAUCNUCKUANNWLULPAUAKU
      MUTAWBVOPZWFFPZUNZUNZWEVPWKVTMWPWCCWDDUDWPWCUHVOOZCWPUHWBVOAWMWNUOZUPAWQC
      PZWOACQRWSHBCDQUQSURUSZWPWDUJVOOZDWPUJWBVOWRUPAXADPZWOADQRXBIBCDQVASURUST
      WPWIVRWJVSUGWPWFFWHVQMAWMWNVBWPWGBWCCUEWPWGUKVOOZBWPUKWBVOWRUPAXCBPZWOABQ
      RZXDAXECDVCLZQRZAFBXFVDLZRZXEXGUNJBXFFVESVFBCDQVGSURUSZWTTTWPWGBWCCUFXJWT
      TTTVONVHZRVONRABCDVIVOXKVJVLAXIFNRJFXHVJSAVPVTMVMVKVN $.

    $( The uncurry operation takes a functor ` F : C --> ( D --> E ) ` to a
       functor ` uncurryF ( F ) : C X. D --> E ` .  (Contributed by Mario
       Carneiro, 13-Jan-2017.) $)
    uncfcl $p |- ( ph -> F e. ( ( C Xc. D ) Func E ) ) $=
      ( cevlf co c1stf ccofu cxpc cfunc eqid ccat wcel cofucl cprf uncfval cfuc
      c2ndf wa funcrcl syl simpld 1stfcl 2ndfcl prfcl evlfcl eqeltrd ) AECDKLZF
      BCMLZNLZBCUDLZUALZNLBCOLZDPLABCDEFGHIJUBAUSCDUCLZCOLZDURUNAUSUTURVACUPUQU
      RQVAQAUSBUTUOFABCUOUSUSQZABRSZUTRSZAFBUTPLSVCVDUEJBUTFUFUGUHZHUOQUIJTABCU
      QUSVBVEHUQQUJUKACDUTUNUNQUTQHIULTUM $.

    ${
      uncf1.a $e |- A = ( Base ` C ) $.
      uncf1.b $e |- B = ( Base ` D ) $.
      uncf1.x $e |- ( ph -> X e. A ) $.
      uncf1.y $e |- ( ph -> Y e. B ) $.
      $( Value of the uncurry functor on an object.  (Contributed by Mario
         Carneiro, 13-Jan-2017.) $)
      uncf1 $p |- ( ph -> ( X ( 1st ` F ) Y ) =
        ( ( 1st ` ( ( 1st ` G ) ` X ) ) ` Y ) ) $=
        ( cfv co c1st cevlf c1stf ccofu c2ndf cprf cop uncfval fveq2d oveqd cxp
        df-ov cxpc cfuc eqid xpcbas ccat wcel cfunc wa syl simpld 1stfcl cofucl
        funcrcl 2ndfcl prfcl evlfcl opelxpi syl2anc cofu1 syl5eq chom prf1 wceq
        1stf1 op1stg eqtrd c2nd 2ndf1 op2ndg opeq12d syl6eqr fucbas wbr relfunc
        wrel 1st2ndbr sylancr funcf1 ffvelrnd evlf1 3eqtrd ) AIJGUASZTIJEFUBTZH
        DEUCTZUDTZDEUETZUFTZUDTZUASZTZIJUGZWSUASSZWOUASZSZJIHUASZSZUASSZAWNXAIJ
        AGWTUAADEFGHKLMNUHUIUJAXBXCXASXFIJXAULABCUKZDEUMTZEFUNTZEUMTZFWSWOXCDEX
        KBCXKUOZOPUPZAXKXLWSXMEWQWRWSUOZXMUOAXKDXLWPHADEWPXKXNADUQURZXLUQURZAHD
        XLUSTZURZXQXRUTNDXLHVEVAVBZLWPUOZVCZNVDZADEWRXKXNYALWRUOZVFZVGAEFXLWOWO
        UOZXLUOZLMVHAIBURZJCURZXCXJURQRIJBCVIVJZVKVLAXFXHJXETZXIAXFXHJUGZXESYLA
        XDYMXEAXDXCWQUASSZXCWRUASSZUGYMAXJXKXLWSEWQWRXKVMSZXCXPXOYPUOZYDYFYKVNA
        YNXHYOJAYNXCWPUASSZXGSXHAXJXKDXLWPHXCXOYCNYKVKAYRIXGAYRXCUASZIAXJDEWPXC
        XKYPXNXOYQYALYBYKVPAYIYJYSIVOQRIJBCVQVJVRUIVRAYOXCVSSZJAXJDEWRXCXKYPXNX
        OYQYALYEYKVTAYIYJYTJVOQRIJBCWAVJVRWBVRUIXHJXEULWCACEFWOXHJYGLMPABEFUSTZ
        IXGABUUADXLXGHVSSZOEFXLYHWDAXSWGXTXGUUBXSWEDXLWFNHXSWHWIWJQWKRWLVRWM $.

      uncf2.h $e |- H = ( Hom ` C ) $.
      uncf2.j $e |- J = ( Hom ` D ) $.
      uncf2.z $e |- ( ph -> Z e. A ) $.
      uncf2.w $e |- ( ph -> W e. B ) $.
      uncf2.r $e |- ( ph -> R e. ( X H Z ) ) $.
      uncf2.s $e |- ( ph -> S e. ( Y J W ) ) $.
      $( Value of the uncurry functor on a morphism.  (Contributed by Mario
         Carneiro, 13-Jan-2017.) $)
      uncf2 $p |- ( ph -> ( R ( <. X , Y >. ( 2nd ` F ) <. Z , W >. ) S ) =
        ( ( ( ( X ( 2nd ` G ) Z ) ` R ) ` W )
          ( <. ( ( 1st ` ( ( 1st ` G ) ` X ) ) ` Y ) ,
               ( ( 1st ` ( ( 1st ` G ) ` X ) ) ` W ) >. ( comp ` E )
               ( ( 1st ` ( ( 1st ` G ) ` Z ) ) ` W ) )
          ( ( Y ( 2nd ` ( ( 1st ` G ) ` X ) ) W ) ` S ) ) ) $=
        ( cop c2nd cfv co c1stf ccofu c2ndf cprf cevlf cco uncfval fveq2d oveqd
        c1st df-ov cxpc cfuc chom eqid xpcbas ccat wcel cfunc wa funcrcl simpld
        cxp syl 1stfcl cofucl 2ndfcl prfcl evlfcl opelxpi syl2anc xpchom2 cofu2
        eleqtrrd syl5eq eqtrd prf1 cofu1 1stf1 wceq op1stg 2ndf1 op2ndg opeq12d
        oveq12d prf2 cres 1stf2 fveq1d fvres 3eqtrd fveq12d syl6eqr cnat fucbas
        2ndf2 wrel wbr relfunc 1st2ndbr sylancr funcf1 ffvelrnd fuchom evlf2val
        funcf2 ) AFGNOUKZPMUKZIULUMZUNZUNZFGUKZYAYBJDEUOUNZUPUNZDEUQUNZURUNZULU
        MUNUMZYAYJVDUMZUMZYBYLUMZEHUSUNZULUMZUNZUMZFNPJULUMZUNZUMZGNJVDUMZUMZOU
        KZPUUBUMZMUKZYPUNZUNZMUUAUMGOMUUCULUMUNUMOUUCVDUMZUMMUUIUMUKMUUEVDUMUMH
        UTUMZUNUNAYEFGYAYBYOYJUPUNZULUMZUNZUNZYRAYDUUMFGAYCUULYAYBAIUUKULADEHIJ
        QRSTVAVBVCVCAUUNYFUUMUMYRFGUUMVEABCVQZDEVFUNZEHVGUNZEVFUNZYFHYJYOUUPVHU
        MZYAYBDEUUPBCUUPVIZUAUBVJZAUUPUUQYJUUREYHYIYJVIZUURVIAUUPDUUQYGJADEYGUU
        PUUTADVKVLZUUQVKVLZAJDUUQVMUNZVLZUVCUVDVNTDUUQJVOVRVPZRYGVIZVSZTVTZADEY
        IUUPUUTUVGRYIVIZWAZWBAEHUUQYOYOVIZUUQVIZRSWCANBVLZOCVLZYAUUOVLUCUDNOBCW
        DWEZAPBVLZMCVLZYBUUOVLUGUHPMBCWDWEZUUSVIZAYFNPKUNZOMLUNZVQZYAYBUUSUNZAF
        UWBVLZGUWCVLZYFUWDVLUIUJFGUWBUWCWDWEADEPMUUPKLUUSNOBCUUTUAUBUEUFUCUDUGU
        HUWAWFWHZWGWIWJAYRUUAGUKZUUGUMUUHAYKUWIYQUUGAYMUUDYNUUFYPAYMYAYHVDUMZUM
        ZYAYIVDUMZUMZUKUUDAUUOUUPUUQYJEYHYIUUSYAUVBUVAUWAUVJUVLUVQWKAUWKUUCUWMO
        AUWKYAYGVDUMZUMZUUBUMUUCAUUOUUPDUUQYGJYAUVAUVITUVQWLAUWONUUBAUWOYAVDUMZ
        NAUUODEYGYAUUPUUSUUTUVAUWAUVGRUVHUVQWMAUVOUVPUWPNWNUCUDNOBCWOWEWJZVBWJA
        UWMYAULUMZOAUUODEYIYAUUPUUSUUTUVAUWAUVGRUVKUVQWPAUVOUVPUWROWNUCUDNOBCWQ
        WEWJWRWJAYNYBUWJUMZYBUWLUMZUKUUFAUUOUUPUUQYJEYHYIUUSYBUVBUVAUWAUVJUVLUV
        TWKAUWSUUEUWTMAUWSYBUWNUMZUUBUMUUEAUUOUUPDUUQYGJYBUVAUVITUVTWLAUXAPUUBA
        UXAYBVDUMZPAUUODEYGYBUUPUUSUUTUVAUWAUVGRUVHUVTWMAUVRUVSUXBPWNUGUHPMBCWO
        WEWJZVBWJAUWTYBULUMZMAUUODEYIYBUUPUUSUUTUVAUWAUVGRUVKUVTWPAUVRUVSUXDMWN
        UGUHPMBCWQWEWJWRWJWSAYKYFYAYBYHULUMUNUMZYFYAYBYIULUMUNZUMZUKUWIAUUOUUPU
        UQYJEYHYIUUSYFYAYBUVBUVAUWAUVJUVLUVQUVTUWHWTAUXEUUAUXGGAUXEYFYAYBYGULUM
        UNZUMZUWOUXAYSUNZUMUUAAUUOUUPDYFUUQYGJUUSYAYBUVAUVITUVQUVTUWAUWHWGAUXIF
        UXJYTAUWONUXAPYSUWQUXCWSAUXIYFVDUWEXAZUMZYFVDUMZFAYFUXHUXKAUUODEYGYAYBU
        UPUUSUUTUVAUWAUVGRUVHUVQUVTXBXCAYFUWEVLZUXLUXMWNUWHYFUWEVDXDVRAUWFUWGUX
        MFWNUIUJFGUWBUWCWOWEXEXFWJAUXGYFULUWEXAZUMZYFULUMZGAYFUXFUXOAUUODEYIYAY
        BUUPUUSUUTUVAUWAUVGRUVKUVQUVTXJXCAUXNUXPUXQWNUWHYFUWEULXDVRAUWFUWGUXQGW
        NUIUJFGUWBUWCWQWEXEWRWJXFUUAGUUGVEXGAUUACEHUUJYOUUCUUELGUUGEHXHUNZOMUVM
        RSUBUFUUJVIUXRVIZABEHVMUNZNUUBABUXTDUUQUUBYSUAEHUUQUVNXIAUVEXKUVFUUBYSU
        VEXLDUUQXMTJUVEXNXOZXPZUCXQABUXTPUUBUYBUGXQUDUHUUGVIAUWBUUCUUEUXRUNFYTA
        BDUUQUUBYSKUXRNPUAUEEHUUQUXRUVNUXSXRUYAUCUGXTUIXQUJXSXE $.
    $}

    $( Cancellation of curry with uncurry.  (Contributed by Mario Carneiro,
       13-Jan-2017.) $)
    curfuncf $p |- ( ph -> ( <. C , D >. curryF F ) = G ) $=
      ( vx vy vz vg cfv co cmpt cop wcel eqid cbs cv c1st chom ccid cmpt2 ccurf
      c2nd wa ccat ad2antrr cfuc cfunc simplr simpr uncf1 mpteq2dva wbr relfunc
      wrel fucbas 1st2ndbr sylancr funcf1 ffvelrnda feqmptd eqtr4d wceq simpllr
      cco ad3antrrr simplrl simprr adantr funcrcl syl simpld catidcl uncf2 ccom
      funcid fucid eqtrd fveq1d wf syl2anc oveq1d ffvelrnd simprl funcf2 catlid
      fvco3 3eqtrd 3impb mpt2eq3dva cxp wfn funcfn2 fnov opeq12d 1st2nd adantrr
      sylib oveq2d adantrl cnat fuchom natcl catrid natfn dffn5 curfval 3eqtr4d
      nat1st2nd uncfcl ) AKBUAOZLCUAOZKUBZLUBZEUCOPZQZLMXQXQNXSMUBZCUDOZPZXRBUE
      OZOZNUBZXRXSRXRYBRZEUHOZPPZQZUFZRZQZKLXPXPNXRXSBUDOZPZMXQYGYBCUEOZOZYHXSY
      BRYIPPZQZQZUFZRFUCOZFUHOZRZBCREUGPZFAYNUUCUUBUUDAYNKXPXRUUCOZQUUCAKXPYMUU
      GAXRXPSZUIZYMUUGUCOZUUGUHOZRZUUGUUIYAUUJYLUUKUUIYALXQXSUUJOZQUUJUUILXQXTU
      UMUUIXSXQSZUIXPXQBCDEFXRXSGACUJSZUUHUUNHUKADUJSZUUHUUNIUKAFBCDULPZUMPZSZU
      UHUUNJUKXPTZXQTZAUUHUUNUNUUIUUNUOUPUQUUILXQDUAOZUUJUUIXQUVBCDUUJUUKUVAUVB
      TZUUICDUMPZUTZUUGUVDSZUUJUUKUVDURZCDUSZAXPUVDXRUUCAXPUVDBUUQUUCUUDUUTCDUU
      QUUQTZVAAUURUTZUUSUUCUUDUURURZBUUQUSZJFUURVBVCZVDZVEZUUGUVDVBZVCZVDZVFVGU
      UIYLLMXQXQXSYBUUKPZUFZUUKUUILMXQXQYKUVSUUIUUNYBXQSZYKUVSVHUUIUUNUWAUIZUIZ
      YKNYDYGUVSOZQUVSUWCNYDYJUWDUWCYGYDSZUIZYJYBYFXRXRUUDPOZOZUWDUUMYBUUJOZRUW
      IDVJOZPZPUWIDUEOZOZUWDUWKPUWDUWFXPXQBCYFYGDEFYOYCYBXRXSXRGAUUOUUHUWBUWEHV
      KAUUPUUHUWBUWEIVKZAUUSUUHUWBUWEJVKUUTUVAAUUHUWBUWEVIZUUIUUNUWAUWEVLZYOTZY
      CTZUWOUWCUWAUWEUUIUUNUWAVMZVNZUWFXPBYEYOXRUUTUWQYETZABUJSZUUHUWBUWEAUXBUU
      QUJSZAUUSUXBUXCUIJBUUQFVOVPVQZVKUWOVRUWCUWEUOVSUWFUWHUWMUWDUWKUWFUWHYBUWL
      UUJVTZOZUWMUWFYBUWGUXEUWFUWGUUGUUQUEOZOUXEUWFXPBYEUUQUUCUUDUXGXRUUTUXAUXG
      TZAUVKUUHUWBUWEUVMVKUWOWAUWFCDUUQUWLUUGUXGUVIUXHUWLTZUUIUVFUWBUWEUVOUKWBW
      CWDUWFXQUVBUUJWEZUWAUXFUWMVHUUIUXJUWBUWEUVRUKZUWTXQUVBYBUWLUUJWLWFWCWGUWF
      UVBDUWJUWLUWDDUDOZUUMUWIUVCUXLTZUXIUWNUWFXQUVBXSUUJUXKUWPWHUWJTZUWFXQUVBY
      BUUJUXKUWTWHUWCYDUUMUWIUXLPZYGUVSUWCXQCDUUJUUKYCUXLXSYBUVAUWRUXMUUIUVGUWB
      UVQVNUUIUUNUWAWIUWSWJZVEWKWMUQUWCNYDUXOUVSUXPVFVGWNWOUUIUUKXQXQWPWQUUKUVT
      VHUUIXQCDUUJUUKUVAUVQWRLMXQXQUUKWSXCVGWTUUIUVEUVFUUGUULVHUVHUVOUUGUVDXAVC
      VGUQAKXPUVDUUCUVNVFVGAUUBKLXPXPXRXSUUDPZUFZUUDAKLXPXPUUAUXQAUUHXSXPSZUUAU
      XQVHAUUHUXSUIZUIZUUANYPYGUXQOZQUXQUYANYPYTUYBUYAYGYPSZUIZYTMXQYBUYBOZQZUY
      BUYDMXQYSUYEUYDUWAUIZYSUYEYRYBYBUUKPOZUWIUWIRYBXSUUCOZUCOZOZUWJPZPUYEUWMU
      YLPUYEUYGXPXQBCYGYRDEFYOYCYBXRYBXSGAUUOUXTUYCUWAHVKZAUUPUXTUYCUWAIVKZAUUS
      UXTUYCUWAJVKUUTUVAUYAUUHUYCUWAAUUHUXSWIZUKZUYDUWAUOZUWQUWRUYAUXSUYCUWAAUU
      HUXSVMZUKZUYQUYAUYCUWAUNZUYGXQCYQYCYBUVAUWRYQTZUYMUYQVRVSUYGUYHUWMUYEUYLU
      YGXQCYQDUUJUUKUWLYBUVAVUAUXIUYDUVGUWAUYDUVEUVFUVGUVHUYAUVFUYCAUUHUVFUXSUV
      OXBVNUVPVCZVNUYQWAXDUYGUVBDUWJUWLUYEUXLUWIUYKUVCUXMUXIUYNUYDXQUVBYBUUJUYD
      XQUVBCDUUJUUKUVAUVCVUBVDVEUXNUYDXQUVBYBUYJUYDXQUVBCDUYJUYIUHOZUVAUVCUYDUV
      EUYIUVDSZUYJVUCUVDURUVHUYAVUDUYCAUXSVUDUUHAXPUVDXSUUCUVNVEXEVNUYIUVDVBVCV
      DVEUYGUYBXQCDUUJUUKUXLUYJVUCCDXFPZYBVUETZUYGUYBCDUUGUYIVUEVUFUYGYPUUGUYIV
      UEPZYGUXQUYGXPBUUQUUCUUDYOVUEXRXSUUTUWQCDUUQVUEUVIVUFXGZAUVKUXTUYCUWAUVMV
      KUYPUYSWJUYTWHXNUVAUXMUYQXHXIWMUQUYDUYBXQWQUYBUYFVHUYDUYBXQCDUUJUUKUYJVUC
      VUEVUFUYDUYBCDUUGUYIVUEVUFUYAYPVUGYGUXQUYAXPBUUQUUCUUDYOVUEXRXSUUTUWQVUHA
      UVKUXTUVMVNUYOUYRWJZVEXNUVAXJMXQUYBXKXCVGUQUYANYPVUGUXQVUIVFVGWNWOAUUDXPX
      PWPWQUUDUXRVHAXPBUUQUUCUUDUUTUVMWRKLXPXPUUDWSXCVGWTAKLMXPXQBCYENDEUUFYOYQ
      YCUUFTUUTUXDHABCDEFGHIJXOUVAUWRUXAUWQVUAXLAUVJUUSFUUEVHUVLJFUURXAVCXM $.
  $}

  ${
    $d f g u v w x y z C $.  $d f g u v w x y z D $.  $d f g u v w x y z E $.
    $d f g u v w x y z F $.  $d f g u v w x y z G $.  $d f g w x y z ph $.
    uncfcurf.g $e |- G = ( <. C , D >. curryF F ) $.
    uncfcurf.c $e |- ( ph -> C e. Cat ) $.
    uncfcurf.d $e |- ( ph -> D e. Cat ) $.
    uncfcurf.f $e |- ( ph -> F e. ( ( C Xc. D ) Func E ) ) $.
    $( Cancellation of uncurry with curry.  (Contributed by Mario Carneiro,
       13-Jan-2017.) $)
    uncfcurf $p |- ( ph -> ( <" C D E "> uncurryF G ) = F ) $=
      ( vx co cfv cop wceq cv wral wcel eqid adantr vy vu vv vz vw vf cs3 cuncf
      vg c1st c2nd cbs wa ccat cxpc cfunc funcrcl syl simprd cfuc curfcl simprl
      simprr uncf1 curf11 eqtrd ralrimivva cxp wfn wb wf xpcbas wrel wbr uncfcl
      relfunc 1st2ndbr sylancr funcf1 ffn eqfnov2 syl2anc mpbird chom ad3antrrr
      uncf2 ccid df-ov syl6eq opeq12d oveq12d curf2val curf12 oveq123d ad2antrr
      cco opelxpi ad2antlr adantl catidcl xpchom2 eleqtrrd funcco xpcco2 fveq2d
      syl6eqr catrid catlid 3eqtr2d funcf2 feq2d mpbid oveq2 ralxp oveq1 syl5bb
      eqeq12d 2ralbidv sylibr funcfn2 1st2nd 3eqtr4d ) ABCDUGFUHLZUJMZYCUKMZNZE
      UJMZEUKMZNZYCEAYDYGYEYHAYDYGOZKPZUAPZYDLZYKYLYGLZOZUACULMZQKBULMZQZAYOKUA
      YQYPAYKYQRZYLYPRZUMZUMZYMYLYKFUJMZMZUJMZMZYNUUBYQYPBCDYCFYKYLYCSZACUNRZUU
      AITZADUNRZUUAABCUOLZUNRZUUJAEUUKDUPLZRZUULUUJUMJUUKDEUQURUSZTAFBCDUTLZUPL
      RZUUAABCUUPDEFGUUPSHIJVAZTYQSZYPSZAYSYTVBZAYSYTVCZVDUUBYQYPBCDEFUUDYKYLGU
      USABUNRZUUAHTUUIAUUNUUAJTUUTUVAUUDSZUVBVEVFVGAYDYQYPVHZVIZYGUVEVIZYJYRVJA
      UVEDULMZYDVKUVFAUVEUVHUUKDYDYEBCUUKYQYPUUKSZUUSUUTVLZUVHSZAUUMVMZYCUUMRZY
      DYEUUMVNZUUKDVPZABCDYCFUUGIUUOUURVOZYCUUMVQVRZVSUVEUVHYDVTURAUVEUVHYGVKUV
      GAUVEUVHUUKDYGYHUVJUVKAUVLUUNYGYHUUMVNZUVOJEUUMVQVRZVSUVEUVHYGVTURKUAYQYP
      YDYGWAWBWCAYEYHOZUBPZUCPZYELZUWAUWBYHLZOZUCUVEQZUBUVEQZAYKYLNZUDPZUEPZNZY
      ELZUWHUWKYHLZOZUEYPQUDYQQZUAYPQKYQQUWGAUWOKUAYQYPUUBUWNUDUEYQYPUUBUWIYQRZ
      UWJYPRZUMZUMZUWNUFPZUIPZUWLLZUWTUXAUWMLZOZUIYLUWJCWDMZLZQUFYKUWIBWDMZLZQZ
      UWSUXDUFUIUXHUXFUWSUWTUXHRZUXAUXFRZUMZUMZUXBUWJUWTYKUWIFUKMLMZMZUXAYLUWJU
      UDUKMLMZUUFUWJUUEMZNZUWJUWIUUCMZUJMMZDWPMZLZLZUXCUXMYQYPBCUWTUXADYCFUXGUX
      EUWJYKYLUWIUUGAUUHUUAUWRUXLIWEZAUUJUUAUWRUXLUUOWEAUUQUUAUWRUXLUURWEUUSUUT
      UWSYSUXLUUBYSUWRUVATZTZUWSYTUXLUUBYTUWRUVBTZTZUXGSZUXESZUWSUWPUXLUUBUWPUW
      QVBZTZUWSUWQUXLUUBUWPUWQVCZTZUWSUXJUXKVBZUWSUXJUXKVCZWFUXMUYCUWTUWJCWGMZM
      ZNZYKUWJNZUWKYHLZMZYKBWGMZMZUXANZUWHUYTYHLZMZUWHYGMZUYTYGMZNZUWKYGMZUYALZ
      LUYSVUEUWHUYTNUWKUUKWPMZLLZUWMMZUXCUXMUXOVUBUXPVUGUYBVULUXMUXRVUJUXTVUKUY
      AUXMUUFVUHUXQVUIUXMUUFYNVUHUXMYQYPBCDEFUUDYKYLGUUSAUVCUUAUWRUXLHWEZUYDAUU
      NUUAUWRUXLJWEZUUTUYFUVDUYHVEYKYLYGWHWIUXMUXQYKUWJYGLVUIUXMYQYPBCDEFUUDYKU
      WJGUUSVUPUYDVUQUUTUYFUVDUYNVEYKUWJYGWHWIWJUXMUXTUWIUWJYGLVUKUXMYQYPBCDEFU
      XSUWIUWJGUUSVUPUYDVUQUUTUYLUXSSUYNVEUWIUWJYGWHWIWKUXMUXOUWTUYRVUALVUBUXMY
      QYPBCDEFUXGUYQUWTUXNYKUWIUWJGUUSVUPUYDVUQUUTUYIUYQSZUYFUYLUYOUXNSUYNWLUWT
      UYRVUAWHWIUXMUXPVUDUXAVUFLVUGUXMYQYPBCVUCDEFUXAUXEUUDYKYLUWJGUUSVUPUYDVUQ
      UUTUYFUVDUYHUYJVUCSZUYNUYPWMVUDUXAVUFWHWIWNUXMUVEUUKVUMDYGYHUUKWDMZVUEUYS
      UYAUWHUYTUWKUVJVUTSZVUMSZUYASUWSUVRUXLAUVRUUAUWRUVSWOZTUWSUWHUVERZUXLUUAV
      VDAUWRYKYLYQYPWQWRZTUXMYSUWQUYTUVERUYFUYNYKUWJYQYPWQWBUWSUWKUVERZUXLUWRVV
      FUUBUWIUWJYQYPWQWSZTUXMVUEYKYKUXGLZUXFVHZUWHUYTVUTLUXMVUDVVHRUXKVUEVVIRUX
      MYQBVUCUXGYKUUSUYIVUSVUPUYFWTZUYPVUDUXAVVHUXFWQWBUXMBCYKUWJUUKUXGUXEVUTYK
      YLYQYPUVIUUSUUTUYIUYJUYFUYHUYFUYNVVAXAXBUXMUYSUXHUWJUWJUXELZVHZUYTUWKVUTL
      UXMUXJUYRVVKRUYSVVLRUYOUXMYPCUYQUXEUWJUUTUYJVURUYDUYNWTZUWTUYRUXHVVKWQWBU
      XMBCUWIUWJUUKUXGUXEVUTYKUWJYQYPUVIUUSUUTUYIUYJUYFUYNUYLUYNVVAXAXBXCUXMVUO
      UWTVUDYKYKNUWIBWPMZLLZUYRUXAYLUWJNUWJCWPMZLLZUWMLZUXCUXMVUOVVOVVQNZUWMMVV
      RUXMVUNVVSUWMUXMBCYKUWJUWIUWJVVPUUKVVNVUDUXAUXGUXEUWTUYRYKYLVUMYQYPUVIUUS
      UUTUYIUYJUYFUYHUYFUYNVVNSZVVPSZVVBUYLUYNVVJUYPUYOVVMXDXEVVOVVQUWMWHXFUXMV
      VOUWTVVQUXAUWMUXMYQBVVNVUCUWTUXGYKUWIUUSUYIVUSVUPUYFVVTUYLUYOXGUXMYPCVVPU
      YQUXAUXEYLUWJUUTUYJVURUYDUYHVWAUYNUYPXHWKVFXIVFVGUWSUWLUXHUXFVHZVIZUWMVWB
      VIZUWNUXIVJUWSVWBUWHYDMUWKYDMDWDMZLZUWLVKZVWCUWSUWHUWKVUTLZVWFUWLVKVWGUWS
      UVEUUKDYDYEVUTVWEUWHUWKUVJVVAVWESZAUVNUUAUWRUVQWOVVEVVGXJUWSVWHVWBVWFUWLU
      WSBCUWIUWJUUKUXGUXEVUTYKYLYQYPUVIUUSUUTUYIUYJUYEUYGUYKUYMVVAXAZXKXLVWBVWF
      UWLVTURUWSVWBVUHVUKVWELZUWMVKZVWDUWSVWHVWKUWMVKVWLUWSUVEUUKDYGYHVUTVWEUWH
      UWKUVJVVAVWIVVCVVEVVGXJUWSVWHVWBVWKUWMVWJXKXLVWBVWKUWMVTURUFUIUXHUXFUWLUW
      MWAWBWCVGVGUWFUWOUBKUAYQYPUWFUWAUWKYELZUWAUWKYHLZOZUEYPQUDYQQUWAUWHOZUWOU
      WEVWOUCUDUEYQYPUWBUWKOUWCVWMUWDVWNUWBUWKUWAYEXMUWBUWKUWAYHXMXQXNVWPVWOUWN
      UDUEYQYPVWPVWMUWLVWNUWMUWAUWHUWKYEXOUWAUWHUWKYHXOXQXRXPXNXSAYEUVEUVEVHZVI
      YHVWQVIUVTUWGVJAUVEUUKDYDYEUVJUVQXTAUVEUUKDYGYHUVJUVSXTUBUCUVEUVEYEYHWAWB
      WCWJAUVLUVMYCYFOUVOUVPYCUUMYAVRAUVLUUNEYIOUVOJEUUMYAVRYB $.
  $}

  ${
    $d c d C $.  $d c d D $.  $d c d ph $.
    diagval.l $e |- L = ( C DiagFunc D ) $.
    diagval.c $e |- ( ph -> C e. Cat ) $.
    diagval.d $e |- ( ph -> D e. Cat ) $.
    $( Define the diagonal functor, which is the functor ` C --> ( D Func C ) `
       whose object part is ` x e. C |-> ( y e. D |-> x ) ` .  We can define
       this equationally as the currying of the first projection functor, and
       by expressing it this way we get a quick proof of functoriality.
       (Contributed by Mario Carneiro, 6-Jan-2017.)  (Revised by Mario
       Carneiro, 15-Jan-2017.) $)
    diagval $p |- ( ph -> L = ( <. C , D >. curryF ( C 1stF D ) ) ) $=
      ( vc vd cdiag co cop c1stf ccurf ccat cv cvv wceq wa oveq12d cmpt2 simprl
      df-diag a1i simprr opeq12d ovexd ovmpt2d syl5eq ) ADBCJKBCLZBCMKZNKZEAHIB
      COOHPZIPZLZUMUNMKZNKZULJQJHIOOUQUARAHIUCUDAUMBRZUNCRZSSZUOUJUPUKNUTUMBUNC
      AURUSUBZAURUSUEZUFUTUMBUNCMVAVBTTFGAUJUKNUGUHUI $.

    ${
      diagcl.q $e |- Q = ( D FuncCat C ) $.
      $( The diagonal functor is a functor from the base category to the
         functor category.  Another way of saying this is that the constant
         functor ` ( y e. D |-> X ) ` is a construction that is natural in
         ` X ` (and covariant).  (Contributed by Mario Carneiro, 7-Jan-2017.)
         (Revised by Mario Carneiro, 15-Jan-2017.) $)
      diagcl $p |- ( ph -> L e. ( C Func Q ) ) $=
        ( cop c1stf co ccurf cfunc diagval eqid cxpc 1stfcl curfcl eqeltrd ) AE
        BCJBCKLZMLZBDNLABCEFGHOABCDBUAUBUBPIGHABCUABCQLZUCPGHUAPRST $.
    $}

    diag11.a $e |- A = ( Base ` C ) $.
    diag11.c $e |- ( ph -> X e. A ) $.
    diag11.k $e |- K = ( ( 1st ` L ) ` X ) $.
    $( The constant functor of ` X ` is a functor.  (Contributed by Mario
       Carneiro, 6-Jan-2017.)  (Revised by Mario Carneiro, 15-Jan-2017.) $)
    diag1cl $p |- ( ph -> K e. ( D Func C ) ) $=
      ( c1st cfv cfunc co cfuc c2nd eqid fucbas wrel wbr relfunc diagcl sylancr
      wcel 1st2ndbr funcf1 ffvelrnd syl5eqel ) AEGFNOZODCPQZMABUMGULABUMCDCRQZU
      LFSOZKDCUNUNTZUAACUNPQZUBFUQUGULUOUQUCCUNUDACDUNFHIJUPUEFUQUHUFUILUJUK $.

    diag11.b $e |- B = ( Base ` D ) $.
    diag11.y $e |- ( ph -> Y e. B ) $.
    $( Value of the constant functor at an object.  (Contributed by Mario
       Carneiro, 7-Jan-2017.)  (Revised by Mario Carneiro, 15-Jan-2017.) $)
    diag11 $p |- ( ph -> ( ( 1st ` K ) ` Y ) = X ) $=
      ( c1st cfv eqid c1stf co ccurf diagval fveq2d fveq1d syl5eq 1stfcl curf11
      cop cxpc df-ov chom xpcbas wcel opelxpi syl2anc 1stf1 op1stg eqtrd 3eqtrd
      cxp wceq ) AIFRSZSIHDEUJDEUAUBZUCUBZRSZSZRSZSHIVERSZUBZHAIVDVIAFVHRAFHGRS
      ZSVHOAHVLVGAGVFRADEGJKLUDUEUFUGUEUFABCDEDVEVFVHHIVFTMKLADEVEDEUKUBZVMTZKL
      VETZUHPNVHTQUIAVKHIUJZRSZHAVKVPVJSVQHIVJULABCVBZDEVEVPVMVMUMSZVNDEVMBCVNM
      PUNVSTKLVOAHBUOZICUOZVPVRUONQHIBCUPUQURUGAVTWAVQHVCNQHIBCUSUQUTVA $.

    diag12.j $e |- J = ( Hom ` D ) $.
    diag12.i $e |- .1. = ( Id ` C ) $.
    diag12.z $e |- ( ph -> Z e. B ) $.
    diag12.f $e |- ( ph -> F e. ( Y J Z ) ) $.
    $( Value of the constant functor at a morphism.  (Contributed by Mario
       Carneiro, 6-Jan-2017.)  (Revised by Mario Carneiro, 15-Jan-2017.) $)
    diag12 $p |- ( ph -> ( ( Y ( 2nd ` K ) Z ) ` F ) = ( .1. ` X ) ) $=
      ( c2nd cfv co cop c1stf ccurf c1st diagval fveq2d fveq1d syl5eq eqid cxpc
      oveqd 1stfcl curf12 chom cres df-ov cxp xpcbas wcel opelxpi syl2anc 1stf2
      wceq catidcl xpchom2 eleqtrrd fvres syl op1stg 3eqtrd ) AGLMIUFUGZUHZUGGL
      MKDEUIDEUJUHZUKUHZULUGZUGZUFUGZUHZUGKFUGZGKLUIZKMUIZWAUFUGUHZUHZWGAGVTWFA
      VSWELMAIWDUFAIKJULUGZUGWDSAKWLWCAJWBULADEJNOPUMUNUOUPUNUSUOABCDEFDWAWBGHW
      DKLMWBUQQOPADEWADEURUHZWMUQZOPWAUQZUTTRWDUQUAUBUCUDUEVAAWKWGGUIZULWHWIWMV
      BUGZUHZVCZUGZWPULUGZWGAWKWPWJUGWTWGGWJVDAWPWJWSABCVEZDEWAWHWIWMWQWNDEWMBC
      WNQTVFWQUQZOPWOAKBVGZLCVGWHXBVGRUAKLBCVHVIAXDMCVGWIXBVGRUDKMBCVHVIVJUOUPA
      WPWRVGWTXAVKAWPKKDVBUGZUHZLMHUHZVEZWRAWGXFVGZGXGVGZWPXHVGABDFXEKQXEUQZUCO
      RVLZUEWGGXFXGVHVIADEKMWMXEHWQKLBCWNQTXKUBRUARUDXCVMVNWPWRULVOVPAXIXJXAWGV
      KXLUEWGGXFXGVQVIVRVR $.
  $}

  ${
    $d x B $.  $d x C $.  $d x D $.  $d x F $.  $d x H $.  $d x X $.  $d x Y $.
    $d x ph $.
    diag2.l $e |- L = ( C DiagFunc D ) $.
    diag2.a $e |- A = ( Base ` C ) $.
    diag2.b $e |- B = ( Base ` D ) $.
    diag2.h $e |- H = ( Hom ` C ) $.
    diag2.c $e |- ( ph -> C e. Cat ) $.
    diag2.d $e |- ( ph -> D e. Cat ) $.
    diag2.x $e |- ( ph -> X e. A ) $.
    diag2.y $e |- ( ph -> Y e. A ) $.
    diag2.f $e |- ( ph -> F e. ( X H Y ) ) $.
    $( Value of the diagonal functor at a morphism.  (Contributed by Mario
       Carneiro, 7-Jan-2017.) $)
    diag2 $p |- ( ph -> ( ( X ( 2nd ` L ) Y ) ` F ) = ( B X. { F } ) ) $=
      ( cfv vx c2nd co cop c1stf ccurf cv ccid cmpt csn cxp fveq2d oveqd fveq1d
      diagval eqid cxpc 1stfcl curf2 wcel wa c1st chom cres xpcbas ccat opelxpi
      adantr sylan 1stf2 df-ov simpr catidcl syl2anc xpchom2 eleqtrrd fvres syl
      wceq syl5eq op1stg 3eqtrd mpteq2dva fconstmpt syl6eqr ) AFIJHUBTZUCZTFIJD
      EUDDEUEUCZUFUCZUBTZUCZTZUACFUAUGZEUHTZTZIWMUDZJWMUDZWHUBTUCZUCZUIZCFUJUKZ
      AFWGWKAWFWJIJAHWIUBADEHKOPUOULUMUNAUABCDEDWHWIGWNFWLIJWIUPLOPADEWHDEUQUCZ
      XBUPZOPWHUPZURMNWNUPZQRSWLUPUSAWTUACFUIXAAUACWSFAWMCUTZVAZWSFWOVBWPWQXBVC
      TZUCZVDZUCZFWOUDZVBTZFXGWRXJFWOXGBCUKZDEWHWPWQXBXHXCDEXBBCXCLMVEXHUPZADVF
      UTXFOVHAEVFUTXFPVHZXDAIBUTZXFWPXNUTQIWMBCVGVIAJBUTZXFWQXNUTRJWMBCVGVIVJUM
      XGXKXLXJTZXMFWOXJVKXGXLXIUTXSXMVSXGXLIJGUCZWMWMEVCTZUCZUKZXIXGFXTUTZWOYBU
      TZXLYCUTAYDXFSVHZXGCEWNYAWMMYAUPZXEXPAXFVLZVMZFWOXTYBVGVNXGDEJWMXBGYAXHIW
      MBCXCLMNYGAXQXFQVHYHAXRXFRVHYHXOVOVPXLXIVBVQVRVTXGYDYEXMFVSYFYIFWOXTYBWAV
      NWBWCUACFWDWEWB $.

    diag2cl.h $e |- N = ( D Nat C ) $.
    $( The diagonal functor at a morphism is a natural transformation between
       constant functors.  (Contributed by Mario Carneiro, 7-Jan-2017.) $)
    diag2cl $p |- ( ph ->
      ( B X. { F } ) e. ( ( ( 1st ` L ) ` X ) N ( ( 1st ` L ) ` Y ) ) ) $=
      ( c2nd cfv co csn cxp c1st diag2 cfuc eqid fuchom cfunc wrel wcel relfunc
      wbr diagcl 1st2ndbr sylancr funcf2 ffvelrnd eqeltrrd ) AFJKHUBUCZUDZUCCFU
      EUFJHUGUCZUCKVEUCIUDZABCDEFGHJKLMNOPQRSTUHAJKGUDVFFVDABDEDUIUDZVEVCGIJKMO
      EDVGIVGUJZUAUKADVGULUDZUMHVIUNVEVCVIUPDVGUOADEVGHLPQVHUQHVIURUSRSUTTVAVB
      $.
  $}

  ${
    $d f u x y z C $.  $d f u x y z D $.  $d f u x y z ph $.  $d f x y Q $.
    curf2ndf.q $e |- Q = ( D FuncCat D ) $.
    curf2ndf.c $e |- ( ph -> C e. Cat ) $.
    curf2ndf.d $e |- ( ph -> D e. Cat ) $.
    $( As shown in ~ diagval , the currying of the first projection is the
       diagonal functor.  On the other hand, the currying of the second
       projection is ` x e. C |-> ( y e. D |-> y ) ` , which is a constant
       functor of the identity functor at ` D ` .  (Contributed by Mario
       Carneiro, 15-Jan-2017.) $)
    curf2ndf $p |- ( ph -> ( <. C , D >. curryF ( C 2ndF D ) ) =
      ( ( 1st ` ( Q DiagFunc C ) ) ` ( idFunc ` D ) ) ) $=
      ( vx vy vz vf cop co cfv c2nd cmpt wcel eqid ad2antrr adantr vu c2ndf cbs
      ccurf c1st cidfu cdiag cv wa chom ccid cmpt2 cid cres cxp df-ov cxpc ccat
      xpcbas opelxpi adantll 2ndf1 vex syl6eq syl5eq mpteq2dva mptresid simp-4r
      op2nd simplr syl2anc 2ndf2 fveq1d simpr catidcl ad3antrrr simpllr xpchom2
      wceq eleqtrrd fvres syl fvex eqtrd 3impa mpt2eq3dva fveq2 syl6eqr reseq2d
      mpt2mpt opeq12d 2ndfcl idfuval 3eqtr4d fuccat fucbas idfucl diag11 eqtr4d
      cfunc curf1 wrel wbr relfunc curfcl 1st2ndbr sylancr feqmptd diag1cl ccom
      funcf1 idfu1st coeq2d fucid cvv wfn cidfn dffn2 sylib fcoi1 simplrl sylan
      wf simplrr oveqd 3eqtr4rd diag12 cnat fuchom simprl simprr funcf2 funcfn2
      curf2 3impb fnov 1st2nd ) ABCLBCUBMZUDMZUENZYSONZLZCUFNZDBUGMZUENNZUENZUU
      EONZLZYSUUEAYTUUFUUAUUGAHBUCNZHUHZYTNZPHUUIUUJUUFNZPYTUUFAHUUIUUKUULAUUJU
      UIQZUIZUUKUUCUULUUNICUCNZUUJIUHZYRUENZMZPZIJUUOUUOKUUPJUHZCUJNZMZUUJBUKNZ
      NZKUHZUUJUUPLZUUJUUTLZYRONZMZMZPZULZLUMUUOUNZUAUUOUUOUOUMUAUHZUVANZUNZPZL
      UUKUUCUUNUUSUVMUVLUVQUUNUUSIUUOUUPPUVMUUNIUUOUURUUPUUNUUPUUOQZUIZUURUVFUU
      QNZUUPUUJUUPUUQUPUVSUVTUVFONUUPUVSUUIUUOUOZBCYRUVFBCUQMZUWBUJNZUWBRZBCUWB
      UUIUUOUWDUUIRZUUORZUSZUWCRZABURQZUUMUVRFSZACURQZUUMUVRGSZYRRZUUMUVRUVFUWA
      QZAUUJUUPUUIUUOUTVAZVBUUJUUPHVCIVCVIVDVEVFIUUOVGVDUUNUVLIJUUOUUOUMUVBUNZU
      LUVQUUNIJUUOUUOUVKUWPUUNUVRUUTUUOQZUVKUWPVSUVSUWQUIZUVKKUVBUVEPUWPUWRKUVB
      UVJUVEUWRUVEUVBQZUIZUVJUVDUVELZOUVFUVGUWCMZUNZNZUVEUWTUVJUXAUVINUXDUVDUVE
      UVIUPUWTUXAUVIUXCUWTUWABCYRUVFUVGUWBUWCUWDUWGUWHUVSUWIUWQUWSUWJSUVSUWKUWQ
      UWSUWLSUWMUVSUWNUWQUWSUWOSUWTUUMUWQUVGUWAQZAUUMUVRUWQUWSVHZUVSUWQUWSVJZUU
      JUUTUUIUUOUTZVKVLVMVEUWTUXDUXAONZUVEUWTUXAUXBQUXDUXIVSUWTUXAUUJUUJBUJNZMZ
      UVBUOZUXBUWTUVDUXKQZUWSUXAUXLQUUNUXMUVRUWQUWSUUNUUIBUVCUXJUUJUWEUXJRZUVCR
      ZAUWIUUMFTZAUUMVNZVOVPUWRUWSVNUVDUVEUXKUVBUTVKUWTBCUUJUUTUWBUXJUVAUWCUUJU
      UPUUIUUOUWDUWEUWFUXNUVARZUXFUUNUVRUWQUWSVQUXFUXGUWHVRVTUXAUXBOWAWBUVDUVEU
      UJUVCWCKVCZVIVDWDVFKUVBVGVDWEWFIJUAUUOUUOUVPUWPUVNUUPUUTLZVSZUVOUVBUMUYAU
      VOUXTUVANUVBUVNUXTUVAWGUUPUUTUVAUPWHWIWJWHWKUUNIJUUIUUOBCUVCKCYRYSUVAUUKU
      UJYSRZUWEUXPAUWKUUMGTZAYRUWBCWTMQZUUMABCYRUWBUWDFGUWMWLZTUWFUXQUUKRUXRUXO
      XAUUNUAUUOCUVAUUCUUCRZUWFUYCUXRWMWNUUNCCWTMZUUIDBUUEUUDUUCUUJUUDRZADURQZU
      UMACCDEGGWOZTUXPCCDEWPZAUUCUYGQZUUMAUWKUYLGCUUCUYFWQWBZTUUERZUWEUXQWRWSVF
      AHUUIUYGYTAUUIUYGBDYTUUAUWEUYKABDWTMZXBZYSUYOQZYTUUAUYOXCZBDXDZABCDCYRYSU
      YBEFGUYEXEZYSUYOXFXGZXKXHAHUUIUYGUUFAUUIUYGBDUUFUUGUWEUYKAUYPUUEUYOQZUUFU
      UGUYOXCZUYSAUYGDBUUEUUDUUCUYHUYJFUYKUYMUYNXIZUUEUYOXFXGZXKXHWNAHIUUIUUIUU
      JUUPUUAMZULZHIUUIUUIUUJUUPUUGMZULZUUAUUGAHIUUIUUIVUFVUHAUUMUUPUUIQZVUFVUH
      VSAUUMVUJUIZUIZKUUJUUPUXJMZUVEVUFNZPKVUMUVEVUHNZPVUFVUHVULKVUMVUNVUOVULUV
      EVUMQZUIZJUUOUVEUUTCUKNZNZUVGUXTUVHMZMZPZUUCDUKNZNZVUNVUOVUQVURUUCUENZXJV
      URUVMXJZVVDVVBVUQVVEUVMVURVUQUUOCUUCUYFUWFAUWKVUKVUPGSZXLXMVUQCCDVURUUCVV
      CEVVCRZVURRZAUYLVUKVUPUYMSZXNVUQVURJUUOVUSPVVFVVBVUQJUUOXOVURVUQVURUUOXPZ
      UUOXOVURYCZVUQUWKVVKVVGUUOCVURUWFVVIXQWBUUOVURXRXSZXHVUQVVLVVFVURVSVVMUUO
      XOVURXTWBVUQJUUOVVAVUSVUQUWQUIZVVAUVEVUSOUVGUXTUWCMZUNZMZVUSVVNVUTVVPUVEV
      USVVNUWABCYRUVGUXTUWBUWCUWDUWGUWHVUQUWIUWQAUWIVUKVUPFSZTVUQUWKUWQVVGTZUWM
      VUQUUMUWQUXEAUUMVUJVUPYAZUXHYBVUQVUJUWQUXTUWAQAUUMVUJVUPYDZUUPUUTUUIUUOUT
      YBVLYEVVNVVQUVEVUSLZONZVUSVVNVVQVWBVVPNZVWCUVEVUSVVPUPVVNVWBVVOQVWDVWCVSV
      VNVWBVUMUUTUUTUVAMZUOZVVOVVNVUPVUSVWEQVWBVWFQVULVUPUWQVJVVNUUOCVURUVAUUTU
      WFUXRVVIVVSVUQUWQVNZVOUVEVUSVUMVWEUTVKVVNBCUUPUUTUWBUXJUVAUWCUUJUUTUUIUUO
      UWDUWEUWFUXNUXRVUQUUMUWQVVTTVWGVUQVUJUWQVWATVWGUWHVRVTVWBVVOOWAWBVEUVEVUS
      UXSUUTVURWCVIVDWDVFYFYFVUQJUUIUUOBCCYRYSUXJVURUVEVUNUUJUUPUYBUWEVVRVVGAUY
      DVUKVUPUYESUWFUXNVVIVVTVWAVULVUPVNZVUNRYNVUQUYGUUIDBVVCUVEUXJUUEUUDUUCUUJ
      UUPUYHAUYIVUKVUPUYJSVVRUYKVVJUYNUWEVVTUXNVVHVWAVWHYGWNVFVULKVUMUUKUUPYTNC
      CYHMZMVUFVULUUIBDYTUUAUXJVWIUUJUUPUWEUXNCCDVWIEVWIRYIZAUYRVUKVUATAUUMVUJY
      JZAUUMVUJYKZYLXHVULKVUMUULUUPUUFNVWIMVUHVULUUIBDUUFUUGUXJVWIUUJUUPUWEUXNV
      WJAVUCVUKVUETVWKVWLYLXHWNYOWFAUUAUUIUUIUOZXPUUAVUGVSAUUIBDYTUUAUWEVUAYMHI
      UUIUUIUUAYPXSAUUGVWMXPUUGVUIVSAUUIBDUUFUUGUWEVUEYMHIUUIUUIUUGYPXSWNWKAUYP
      UYQYSUUBVSUYSUYTYSUYOYQXGAUYPVUBUUEUUHVSUYSVUDUUEUYOYQXGWN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Hom functor
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c HomF $.
  $c Yon $.

  $( Extend class notation with the Hom functor. $)
  chof $a class HomF $.

  $( Extend class notation with the Yoneda embedding. $)
  cyon $a class Yon $.

  ${
    $d b c f g h x y B $.  $d f g h F $.  $d f g h G $.  $d b c f g h x y ph $.
    $d b c f g h x y C $.  $d b c f g h x y H $.  $d h K $.  $d f g h x y W $.
    $d b c f g h x y .x. $.  $d f g h x y X $.  $d f g h x y Y $.
    $d f g h x y Z $.
    $( Define the Hom functor, which is a bifunctor (a functor of two
       arguments), contravariant in the first argument and covariant in the
       second, from ` ( oppCat `` C ) X. C ` to ` SetCat ` , whose object part
       is the hom-function ` Hom ` , and with morphism part given by pre- and
       post-composition.  (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    df-hof $a |- HomF = ( c e. Cat |-> <. ( Homf ` c ) , [_ ( Base ` c ) / b ]_
       ( x e. ( b X. b ) , y e. ( b X. b ) |->
         ( f e. ( ( 1st ` y ) ( Hom ` c ) ( 1st ` x ) ) ,
           g e. ( ( 2nd ` x ) ( Hom ` c ) ( 2nd ` y ) ) |->
           ( h e. ( ( Hom ` c ) ` x ) |->
             ( ( g ( x ( comp ` c ) ( 2nd ` y ) ) h ) ( <. ( 1st ` y ) ,
               ( 1st ` x ) >. ( comp ` c ) ( 2nd ` y ) ) f ) ) ) ) >. ) $.

    $( Define the Yoneda embedding, which is the currying of the (opposite) Hom
       functor.  (Contributed by Mario Carneiro, 11-Jan-2017.) $)
    df-yon $a |- Yon = ( c e. Cat |->
      ( <. c , ( oppCat ` c ) >. curryF ( HomF ` ( oppCat ` c ) ) ) ) $.

    hofval.m $e |- M = ( HomF ` C ) $.
    hofval.c $e |- ( ph -> C e. Cat ) $.
    ${
      hofval.b $e |- B = ( Base ` C ) $.
      hofval.h $e |- H = ( Hom ` C ) $.
      hofval.o $e |- .x. = ( comp ` C ) $.
      $( Value of the Hom functor, which is a bifunctor (a functor of two
         arguments), contravariant in the first argument and covariant in the
         second, from ` ( oppCat `` C ) X. C ` to ` SetCat ` , whose object
         part is the hom-function ` Hom ` , and with morphism part given by
         pre- and post-composition.  (Contributed by Mario Carneiro,
         15-Jan-2017.) $)
      hofval $p |- ( ph -> M = <. ( Homf ` C ) ,
         ( x e. ( B X. B ) , y e. ( B X. B ) |->
           ( f e. ( ( 1st ` y ) H ( 1st ` x ) ) ,
             g e. ( ( 2nd ` x ) H ( 2nd ` y ) ) |->
             ( h e. ( H ` x ) |->
               ( ( g ( x .x. ( 2nd ` y ) ) h ) ( <. ( 1st ` y ) ,
                 ( 1st ` x ) >. .x. ( 2nd ` y ) ) f ) ) ) ) >. ) $=
        ( cfv cv co oveqd vc vb chof chomf cxp c1st c2nd cop cmpt cmpt2 cbs cco
        chom csb ccat cvv wceq df-hof a1i wa simpr fveq2d fvexd syl6eqr sqxpeqd
        simplr fveq1d eqidd oveq123d mpteq12dv mpt2eq123dv csbied2 opeq12d wcel
        opex fvmptd syl5eq ) AKEUCQEUDQZBCDDUEZVSGHCRZUFQZBRZUFQZJSZWBUGQZVTUGQ
        ZJSZIWBJQZHRZIRZWBWFFSZSZGRZWAWCUHZWFFSZSZUIZUJZUJZUHZLAUAEUARZUDQZUBXA
        UKQZBCUBRZXDUEZXEGHWAWCXAUMQZSZWEWFXFSZIWBXFQZWIWJWBWFXAULQZSZSZWMWNWFX
        JSZSZUIZUJZUJZUNZUHZWTUOUCUPUCUAUOXSUIUQABCGHIUBUAURUSAXAEUQZUTZXBVRXRW
        SYAXAEUDAXTVAZVBYAUBXCDXQWSUPYAXAUKVCYAXCEUKQDYAXAEUKYBVBNVDYAXDDUQZUTZ
        BCXEXEXPVSVSWRYDXDDYAYCVAVEZYEYDGHXGXHXOWDWGWQYDXFJWAWCYDXFEUMQJYDXAEUM
        AXTYCVFZVBOVDZTYDXFJWEWFYGTYDIXIXNWHWPYDWBXFJYGVGYDXLWLWMWMXMWOYDXJFWNW
        FYDXJEULQFYDXAEULYFVBPVDZTYDXKWKWIWJYDXJFWBWFYHTTYDWMVHVIVJVKVKVLVMMWTU
        PVNAVRWSVOUSVPVQ $.
    $}

    $( The object part of the Hom functor is the ` Homf ` operation, which is
       just a functionalized version of ` Hom ` .  That is, it is a two
       argument function, which maps ` X , Y ` to the set of morphisms from
       ` X ` to ` Y ` .  (Contributed by Mario Carneiro, 15-Jan-2017.) $)
    hof1fval $p |- ( ph -> ( 1st ` M ) = ( Homf ` C ) ) $=
      ( vx vy vf vg vh chomf cfv cbs cv c1st co c2nd cop cmpt2 eqid chom hofval
      cxp cco cmpt wceq fvex xpex mpt2ex op1std syl ) ACBKLZFGBMLZUMUCZUNHIGNZO
      LZFNZOLZBUALZPUQQLUOQLZUSPJUQUSLINJNUQUTBUDLZPPHNUPURRUTVAPPUESZSZRUFCOLU
      LUFAFGUMBVAHIJUSCDEUMTUSTVATUBULVCCBKUGFGUNUNVBUMUMBMUGZVDUHZVEUIUJUK $.

    hof1.b $e |- B = ( Base ` C ) $.
    hof1.h $e |- H = ( Hom ` C ) $.
    hof1.x $e |- ( ph -> X e. B ) $.
    hof1.y $e |- ( ph -> Y e. B ) $.
    $( The object part of the Hom functor maps ` X , Y ` to the set of
       morphisms from ` X ` to ` Y ` .  (Contributed by Mario Carneiro,
       15-Jan-2017.) $)
    hof1 $p |- ( ph -> ( X ( 1st ` M ) Y ) = ( X H Y ) ) $=
      ( c1st cfv co chomf hof1fval oveqd eqid homfval eqtrd ) AFGENOZPFGCQOZPFG
      DPAUCUDFGACEHIRSABCUDDFGUDTJKLMUAUB $.

    hof2.z $e |- ( ph -> Z e. B ) $.
    hof2.w $e |- ( ph -> W e. B ) $.
    hof2.o $e |- .x. = ( comp ` C ) $.
    $( The morphism part of the Hom functor, for morphisms
       ` <. f , g >. : <. X , Y >. --> <. Z , W >. ` (which since the first
       argument is contravariant means morphisms ` f : Z --> X ` and
       ` g : Y --> W ` ), yields a function (a morphism of ` SetCat ` ) mapping
       ` h : X --> Y ` to ` g o. h o. f : Z --> W ` .  (Contributed by Mario
       Carneiro, 15-Jan-2017.) $)
    hof2fval $p |- ( ph -> ( <. X , Y >. ( 2nd ` M ) <. Z , W >. ) =
      ( f e. ( Z H X ) , g e. ( Y H W ) |-> ( h e. ( X H Y ) |->
        ( ( g ( <. X , Y >. .x. W ) h ) ( <. Z , X >. .x. W ) f ) ) ) ) $=
      ( vx vy cop cxp cv c1st cfv co c2nd cmpt cmpt2 cvv chomf wceq hofval fvex
      cbs eqeltri xpex mpt2ex op2ndd syl wa simprr fveq2d op1stg syl2anc adantr
      wcel eqtrd simprl oveq12d op2ndg df-ov syl6eqr opeq12d oveq123d mpteq12dv
      oveqd eqidd mpt2eq123dv opelxpi ovex a1i ovmpt2d ) AUCUDKLUEZMJUEZBBUFZWJ
      EFUDUGZUHUIZUCUGZUHUIZHUJZWMUKUIZWKUKUIZHUJZGWMHUIZFUGZGUGZWMWQDUJZUJZEUG
      ZWLWNUEZWQDUJZUJZULZUMZEFMKHUJZLJHUJZGKLHUJZWTXAWHJDUJZUJZXDMKUEZJDUJZUJZ
      ULZUMZIUKUIZUNAICUOUIZUCUDWJWJXIUMZUEUPXTYBUPAUCUDBCDEFGHINOPQUBUQYAYBICU
      OURUCUDWJWJXIBBBCUSUIUNPCUSURUTZYCVAZYDVBVCVDAWMWHUPZWKWIUPZVEZVEZEFWOWRX
      HXJXKXRYHWLMWNKHYHWLWIUHUIZMYHWKWIUHAYEYFVFZVGAYIMUPZYGAMBVKZJBVKZYKTUAMJ
      BBVHVIVJVLZYHWNWHUHUIZKYHWMWHUHAYEYFVMZVGAYOKUPZYGAKBVKZLBVKZYQRSKLBBVHVI
      VJVLZVNYHWPLWQJHYHWPWHUKUIZLYHWMWHUKYPVGAUUALUPZYGAYRYSUUBRSKLBBVOVIVJVLY
      HWQWIUKUIZJYHWKWIUKYJVGAUUCJUPZYGAYLYMUUDTUAMJBBVOVIVJVLZVNYHGWSXGXLXQYHW
      SWHHUIXLYHWMWHHYPVGKLHVPVQYHXCXNXDXDXFXPYHXEXOWQJDYHWLMWNKYNYTVRUUEVNYHXB
      XMWTXAYHWMWHWQJDYPUUEVNWAYHXDWBVSVTWCAYRYSWHWJVKRSKLBBWDVIAYLYMWIWJVKTUAM
      JBBWDVIXSUNVKAEFXJXKXRMKHWELJHWEVBWFWG $.

    hof2.f $e |- ( ph -> F e. ( Z H X ) ) $.
    hof2.g $e |- ( ph -> G e. ( Y H W ) ) $.
    $( The morphism part of the Hom functor, for morphisms
       ` <. f , g >. : <. X , Y >. --> <. Z , W >. ` (which since the first
       argument is contravariant means morphisms ` f : Z --> X ` and
       ` g : Y --> W ` ), yields a function (a morphism of ` SetCat ` ) mapping
       ` h : X --> Y ` to ` g o. h o. f : Z --> W ` .  (Contributed by Mario
       Carneiro, 15-Jan-2017.) $)
    hof2val $p |- ( ph -> ( F ( <. X , Y >. ( 2nd ` M ) <. Z , W >. ) G ) =
      ( h e. ( X H Y ) |->
        ( ( G ( <. X , Y >. .x. W ) h ) ( <. Z , X >. .x. W ) F ) ) ) $=
      ( vf vg co cv cop cmpt c2nd cfv cvv hof2fval wceq wa wcel simplrr simplrl
      oveq1d oveq12d mpteq2dva ovex mptex a1i ovmpt2d ) AUEUFFGMKHUGLJHUGEKLHUG
      ZUFUHZEUHZKLUIZJDUGZUGZUEUHZMKUIJDUGZUGZUJEVGGVIVKUGZFVNUGZUJZVJMJUIIUKUL
      UGUMABCDUEUFEHIJKLMNOPQRSTUAUBUNAVMFUOZVHGUOZUPUPZEVGVOVQWAVIVGUQZUPZVLVP
      VMFVNWCVHGVIVKAVSVTWBURUTAVSVTWBUSVAVBUCUDVRUMUQAEVGVQKLHVCVDVEVF $.

    hof2.k $e |- ( ph -> K e. ( X H Y ) ) $.
    $( The morphism part of the Hom functor, for morphisms
       ` <. f , g >. : <. X , Y >. --> <. Z , W >. ` (which since the first
       argument is contravariant means morphisms ` f : Z --> X ` and
       ` g : Y --> W ` ), yields a function (a morphism of ` SetCat ` ) mapping
       ` h : X --> Y ` to ` g o. h o. f : Z --> W ` .  (Contributed by Mario
       Carneiro, 15-Jan-2017.) $)
    hof2 $p |- ( ph ->
      ( ( F ( <. X , Y >. ( 2nd ` M ) <. Z , W >. ) G ) ` K ) =
        ( ( G ( <. X , Y >. .x. W ) K ) ( <. Z , X >. .x. W ) F ) ) $=
      ( vh cv cop co c2nd cfv cvv hof2val wceq simpr oveq2d oveq1d ovexd fvmptd
      wa ) AUFHFUFUGZKLUHZJDUIZUIZEMKUHJDUIZUIFHVCUIZEVEUIKLGUIEFVBMJUHIUJUKUIU
      IULABCDUFEFGIJKLMNOPQRSTUAUBUCUDUMAVAHUNZUTZVDVFEVEVHVAHFVCAVGUOUPUQUEAVF
      EVEURUS $.
  $}

  ${
    $d f g B $.  $d f g x y z D $.  $d f g H $.  $d f g K $.  $d f g x y z M $.
    $d f g h x y z C $.  $d f g L $.  $d f g x y z O $.  $d f g h x y z ph $.
    $d f g P $.  $d f g Q $.  $d f g S $.  $d f g T $.  $d f g W $.
    $d f g X $.  $d f g Y $.  $d f g Z $.
    hofcl.m $e |- M = ( HomF ` C ) $.
    hofcl.o $e |- O = ( oppCat ` C ) $.
    hofcl.d $e |- D = ( SetCat ` U ) $.
    hofcl.c $e |- ( ph -> C e. Cat ) $.
    hofcl.u $e |- ( ph -> U e. V ) $.
    hofcl.h $e |- ( ph -> ran ( Homf ` C ) C_ U ) $.
    ${
      hofcllem.b $e |- B = ( Base ` C ) $.
      hofcllem.h $e |- H = ( Hom ` C ) $.
      hofcllem.x $e |- ( ph -> X e. B ) $.
      hofcllem.y $e |- ( ph -> Y e. B ) $.
      hofcllem.z $e |- ( ph -> Z e. B ) $.
      hofcllem.w $e |- ( ph -> W e. B ) $.
      hofcllem.s $e |- ( ph -> S e. B ) $.
      hofcllem.t $e |- ( ph -> T e. B ) $.
      hofcllem.m $e |- ( ph -> K e. ( Z H X ) ) $.
      hofcllem.n $e |- ( ph -> L e. ( Y H W ) ) $.
      hofcllem.p $e |- ( ph -> P e. ( S H Z ) ) $.
      hofcllem.q $e |- ( ph -> Q e. ( W H T ) ) $.
      $( Lemma for ~ hofcl .  (Contributed by Mario Carneiro, 15-Jan-2017.) $)
      hofcllem $p |- ( ph ->
        ( ( K ( <. S , Z >. ( comp ` C ) X ) P )
          ( <. X , Y >. ( 2nd ` M ) <. S , T >. )
          ( Q ( <. Y , W >. ( comp ` C ) T ) L ) ) =
        ( ( P ( <. Z , W >. ( 2nd ` M ) <. S , T >. ) Q )
          ( <. ( X H Y ) , ( Z H W ) >. ( comp ` D ) ( S H T ) )
          ( K ( <. X , Y >. ( 2nd ` M ) <. Z , W >. ) L ) ) ) $=
        ( vf vg co cop cco cfv cv cmpt c2nd wcel eqid ccat adantr simpr catcocl
        catass oveq1d eqtrd eqtr3d mpteq2dva hof2val ccom oveq12d chomf homfval
        wa cxp wfn crn wss wf homffn df-f sylanbrc fovrnd eqeltrrd fmptd setcco
        a1i eqidd wceq oveq2 fmptco 3eqtrd 3eqtr4d ) AURQRJUTZFLRPVAHCVBVCZUTUT
        ZURVDZQRVAZHXDUTUTZKEGSVAZQXDUTUTZGQVAHXDUTUTZVEURXCFLXFXGPXDUTUTZKSQVA
        ZPXDUTUTZSPVAZHXDUTZUTZEXIHXDUTZUTZVEZXJXEXGGHVAZMVFVCZUTUTEFXOYAYBUTUT
        ZKLXGXOYBUTUTZXCSPJUTZVAGHJUTZDVBVCZUTZUTZAURXCXKXSAXFXCVGZWCZXHKXMHXDU
        TZUTZEXRUTXKXSYKBCXDEKJXHHGSQUFUGXDVHZACVIVGZYJUCVJZAGBVGZYJULVJASBVGZY
        JUJVJZAQBVGYJUHVJZAEGSJUTVGZYJUPVJAKSQJUTVGYJUNVJZAHBVGZYJUMVJZYKBCXDXF
        XEJQRHUFUGYNYPYTARBVGYJUIVJZUUDAYJVKZAXERHJUTVGYJABCXDLFJRPHUFUGYNUCUIU
        KUMUOUQVLZVJVLVMYKYMXQEXRYKYMFXLQPVAHXDUTUTZKYLUTXQYKXHUUHKYLYKBCXDXFLJ
        FHQRPUFUGYNYPYTUUEAPBVGZYJUKVJZUUFALRPJUTVGYJUOVJZUUDAFPHJUTVGZYJUQVJZV
        MVNYKBCXDKXLJFHSQPUFUGYNYPYSYTUUJUUBYKBCXDXFLJQRPUFUGYNYPYTUUEUUJUUFUUK
        VLZUUDUUMVMVOVNVPVQABCXDURXJXEJMHQRGTUCUFUGUHUIULUMYNABCXDEKJGSQUFUGYNU
        CULUJUHUPUNVLUUGVRAYIUSYEFUSVDZXPUTZEXRUTZVEZURXCXNVEZYHUTUURUUSVSXTAYC
        UURYDUUSYHABCXDUSEFJMHSPGTUCUFUGUJUKULUMYNUPUQVRABCXDURKLJMPQRSTUCUFUGU
        HUIUJUKYNUNUOVRVTADYGIUUSUUROXCYEYFUBUDYGVHAQRCWAVCZUTXCIABCUUTJQRUUTVH
        ZUFUGUHUIWBAQRIBBUUTAUUTBBWDZWEZUUTWFIWGUVBIUUTWHUVCABCUUTUVAUFWIWPUEUV
        BIUUTWJWKZUHUIWLWMASPUUTUTYEIABCUUTJSPUVAUFUGUJUKWBASPIBBUUTUVDUJUKWLWM
        AGHUUTUTYFIABCUUTJGHUVAUFUGULUMWBAGHIBBUUTUVDULUMWLWMAURXCXNYEUUSYKBCXD
        KXLJSQPUFUGYNYPYSYTUUJUUBUUNVLZUUSVHWNAUSYEUUQYFUURAUUOYEVGZWCZBCXDEUUP
        JGSHUFUGYNAYOUVFUCVJZAYQUVFULVJAYRUVFUJVJZAUUCUVFUMVJZAUUAUVFUPVJUVGBCX
        DUUOFJSPHUFUGYNUVHUVIAUUIUVFUKVJUVJAUVFVKAUULUVFUQVJVLVLUURVHWNWOAURUSX
        CYEXNUUQXSUUSUURUVEAUUSWQAUURWQUUOXNWRUUPXQEXRUUOXNFXPWSVNWTXAXB $.
    $}

    $( Closure of the Hom functor.  Note that the codomain is the category
       ` SetCat `` U ` for any universe ` U ` which contains each Hom-set.
       This corresponds to the assertion that ` C ` be locally small (with
       respect to ` U ` ).  (Contributed by Mario Carneiro, 15-Jan-2017.) $)
    hofcl $p |- ( ph -> M e. ( ( O Xc. C ) Func D ) ) $=
      ( vf cfv cop co eqid syl wcel vx vy vg vh vz chomf c2nd cxpc cfunc cbs cv
      cxp c1st chom cco cmpt cmpt2 hofval wceq fvex mpt2ex op2ndd opeq2d eqtr4d
      xpex wbr ccid oppcbas xpcbas oppccat xpccat setccat wf wfn crn wss homffn
      ccat df-f sylanbrc setcbas feq3d mpbid ovex fnmpt2i fneq1d mpbiri wa wral
      ad3antrrr simplrr xp1st adantr simplrl xp2nd 1st2nd2 oveq1d oveqd syl6eqr
      fveq2d df-ov eleq2d biimpa catcocl eqeltrd eleqtrrd fmptd homfval 3eqtr4d
      a1i ad2antrr ffvelrnd elsetchom mpbird oveq12d ralrimivva fmpt2 sylib cvv
      eqeltrrd ovmpt4g mp3an3 sylan9eq simprl xpchom oppchom cid adantl catidcl
      cres opeq1d 3eqtrd fveq12d w3a 3ad2ant1 eleqtrd syl6eleq opeq12d oveq123d
      eqtrd simprr xpeq1i syl6eq feq12d catlid catrid mpteq2dva hof2val syl5eqr
      simpr reseq2d mptresid xpcid oppcid fveq1d ffvelrnda setcid simp21 simp22
      simp23 simp3l simp3r hofcllem xpcco2 oppcco isfuncd df-br ) AEBUFOZEUGOZP
[encoded data, 5520 characters]
      GXRXE $.
  $}

  ${
    oppchofcl.o $e |- O = ( oppCat ` C ) $.
    oppchofcl.m $e |- M = ( HomF ` O ) $.
    oppchofcl.d $e |- D = ( SetCat ` U ) $.
    oppchofcl.c $e |- ( ph -> C e. Cat ) $.
    oppchofcl.u $e |- ( ph -> U e. V ) $.
    oppchofcl.h $e |- ( ph -> ran ( Homf ` C ) C_ U ) $.
    $( Closure of the opposite Hom functor.  (Contributed by Mario Carneiro,
       17-Jan-2017.) $)
    oppchofcl $p |- ( ph -> M e. ( ( C Xc. O ) Func D ) ) $=
      ( cfv co cfunc eqid ccat wcel wceq coppc cxpc oppccat syl chomf crn ctpos
      oppchomf rneqi cdm wrel cbs cxp relxp wfn homffn fndm ax-mp releqi rntpos
      mpbir eqtr3i syl5eqss hofcl 2oppchomf a1i ccomf 2oppccomf xpcpropd oveq1d
      eqidd eleqtrrd ) AEFUANZFUBOZCPOBFUBOZCPOAFCDEVMGIVMQZJABRSFRSZKBFHUCUDZL
      AFUENZUFZBUENZUFZDWAUGZUFZVTWBWCVSBWAFHWAQZUHUIWAUJZUKZWDWBTWGBULNZWHUMZU
      KWHWHUNWFWIWAWIUOWFWITWHBWAWEWHQUPWIWAUQURUSVAWAUTURVBMVCVDAVOVNCPABVMFFR
      WAVMUENTABFHVEVFBVGNVMVGNTABFHVHVFAVSVKAFVGNVKKAVQVMRSVRFVMVPUCUDVRVRVIVJ
      VL $.
  $}

  ${
    $d c C $.  $d c M $.  $d c O $.  $d c ph $.
    yonval.y $e |- Y = ( Yon ` C ) $.
    yonval.c $e |- ( ph -> C e. Cat ) $.
    yonval.o $e |- O = ( oppCat ` C ) $.
    ${
      yonval.m $e |- M = ( HomF ` O ) $.
      $( Value of the Yoneda embedding.  (Contributed by Mario Carneiro,
         17-Jan-2017.) $)
      yonval $p |- ( ph -> Y = ( <. C , O >. curryF M ) ) $=
        ( vc cyon cfv cop ccurf co coppc chof ccat wceq fveq2d cv cvv df-yon wa
        cmpt a1i simpr syl6eqr opeq12d oveq12d ovexd fvmptd syl5eq ) AEBKLBDMZC
        NOZFAJBJUAZUPPLZMZUQQLZNOZUORKUBKJRUTUESAJUCUFAUPBSZUDZURUNUSCNVBUPBUQD
        AVAUGZVBUQBPLDVBUPBPVCTHUHZUIVBUSDQLCVBUQDQVDTIUHUJGAUNCNUKULUM $.
    $}

    yoncl.s $e |- S = ( SetCat ` U ) $.
    yoncl.q $e |- Q = ( O FuncCat S ) $.
    yoncl.u $e |- ( ph -> U e. V ) $.
    yoncl.h $e |- ( ph -> ran ( Homf ` C ) C_ U ) $.
    $( The Yoneda embedding is a functor from the category to the category
       ` Q ` of presheaves on ` C ` .  (Contributed by Mario Carneiro,
       17-Jan-2017.) $)
    yoncl $p |- ( ph -> Y e. ( C Func Q ) ) $=
      ( cop co eqid ccat wcel chof cfv ccurf cfunc yonval oppccat syl oppchofcl
      curfcl eqeltrd ) AHBFPFUAUBZUCQZBCUDQABUKFHIJKUKRZUEABFCDUKULULRMJABSTFST
      JBFKUFUGABDEUKFGKUMLJNOUHUIUJ $.
  $}

  ${
    yon11.y $e |- Y = ( Yon ` C ) $.
    yon11.b $e |- B = ( Base ` C ) $.
    yon11.c $e |- ( ph -> C e. Cat ) $.
    yon11.p $e |- ( ph -> X e. B ) $.
    ${
      yon1cl.o $e |- O = ( oppCat ` C ) $.
      yon1cl.s $e |- S = ( SetCat ` U ) $.
      yon1cl.u $e |- ( ph -> U e. V ) $.
      yon1cl.h $e |- ( ph -> ran ( Homf ` C ) C_ U ) $.
      $( The Yoneda embedding at an object of ` C ` is a presheaf on ` C ` ,
         also known as the contravariant Hom functor.  (Contributed by Mario
         Carneiro, 17-Jan-2017.) $)
      yon1cl $p |- ( ph -> ( ( 1st ` Y ) ` X ) e. ( O Func S ) ) $=
        ( cfunc co cfv c1st cfuc c2nd eqid wrel wcel wbr relfunc yoncl 1st2ndbr
        fucbas sylancr funcf1 ffvelrnd ) ABFDRSZHIUATZABUOCFDUBSZUPIUCTZKFDUQUQ
        UDZUKACUQRSZUEIUTUFUPURUTUGCUQUHACUQDEFGIJLNOUSPQUIIUTUJULUMMUN $.
    $}

    yon11.h $e |- H = ( Hom ` C ) $.
    yon11.z $e |- ( ph -> Z e. B ) $.
    $( Value of the Yoneda embedding at an object.  The partially evaluated
       Yoneda embedding is also the contravariant Hom functor.  (Contributed by
       Mario Carneiro, 17-Jan-2017.) $)
    yon11 $p |- ( ph ->
      ( ( 1st ` ( ( 1st ` Y ) ` X ) ) ` Z ) = ( Z H X ) ) $=
      ( c1st cfv co eqid fveq2d fveq1d wcel coppc chof ccurf yonval chomf csetc
      cop crn ccat oppccat syl cvv fvex rnex a1i wss ssid oppchofcl curf11 chom
      oppcbas hof1 oppchom syl6eq 3eqtrd ) AGEFNOZOZNOZOGECCUAOZUGVIUBOZUCPZNOZ
      OZNOZOEGVJNOPZGEDPZAGVHVNAVGVMNAEVFVLAFVKNACVJVIFHJVIQZVJQZUDRSRSABBCVICU
      EOZUHZUFOZVJVKVMEGVKQIJACUITVIUITJCVIVQUJUKZACWAVTVJVIULVQVRWAQJVTULTAVSC
      UEUMUNUOVTVTUPAVTUQUOURBCVIVQIVAZKVMQMUSAVOEGVIUTOZPVPABVIWDVJEGVRWBWCWDQ
      KMVBCDVIEGLVQVCVDVE $.

    yon12.x $e |- .x. = ( comp ` C ) $.
    yon12.w $e |- ( ph -> W e. B ) $.
    ${
      yon12.f $e |- ( ph -> F e. ( W H Z ) ) $.
      yon12.g $e |- ( ph -> G e. ( Z H X ) ) $.
      $( Value of the Yoneda embedding at a morphism.  The partially evaluated
         Yoneda embedding is also the contravariant Hom functor.  (Contributed
         by Mario Carneiro, 17-Jan-2017.) $)
      yon12 $p |- ( ph -> ( ( ( Z ( 2nd ` ( ( 1st ` Y ) ` X ) ) W ) ` F ) ` G )
        = ( G ( <. W , Z >. .x. X ) F ) ) $=
        ( c1st cfv c2nd ccid cop coppc chof cco ccurf eqid yonval fveq2d fveq1d
        oveqd chomf crn csetc chom ccat wcel oppccat syl cvv fvex rnex a1i ssid
        co oppchofcl oppcbas oppchom syl6eleqr curf12 eqtrd catidcl hof2 oppcco
        wss oveq1d catcocl catlid 3eqtrd ) AFEKHIJUBUCZUCZUDUCZVIZUCZUCFICUEUCZ
        UCZEIKUFZIHUFCUGUCZUHUCZUDUCVIVIZUCEFWKHWLUIUCZVIVIZWJIIUFHWOVIZVIZFEHK
        UFIDVIVIZAFWHWNAWHEKHICWLUFWMUJVIZUBUCZUCZUDUCZVIZUCWNAEWGXDAWFXCKHAWEX
        BUDAIWDXAAJWTUBACWMWLJLNWLUKZWMUKZULUMUNUMUOUNABBCWLWICUPUCZUQZURUCZWMW
        TEWLUSUCZXBIKHWTUKMNACUTVAWLUTVANCWLXEVBVCZACXIXHWMWLVDXEXFXIUKNXHVDVAA
        XGCUPVEVFVGXHXHVSAXHVHVGVJBCWLXEMVKZOXBUKQXJUKZWIUKZSAEHKGVIKHXJVITCGWL
        KHPXEVLVMZVNVOUNABWLWOWJEXJFWMHIKIXFXKXLXMOQOSWOUKAWJIIGVIIIXJVIABCWIGI
        MPXNNOVPCGWLIIPXEVLVMXOAFKIGVIIKXJVIUACGWLIKPXEVLVMVQAWRWSWJWQVIWJWSHIU
        FIDVIVIWSAWPWSWJWQABCDFEWLIKHMRXEOQSVRVTABCDWJWSWLIIHMRXEOOSVRABCDWIWSG
        HIMPXNNSROABCDEFGHKIMPRNSQOTUAWAWBWCWC $.
    $}

    yon2.f $e |- ( ph -> F e. ( X H Z ) ) $.
    yon2.g $e |- ( ph -> G e. ( W H X ) ) $.
    $( Value of the Yoneda embedding at a morphism.  (Contributed by Mario
       Carneiro, 17-Jan-2017.) $)
    yon2 $p |- ( ph -> ( ( ( ( X ( 2nd ` Y ) Z ) ` F ) ` W ) ` G )
      = ( F ( <. W , X >. .x. Z ) G ) ) $=
      ( c2nd cfv coppc ccid cop chof cco ccurf yonval fveq2d oveqd fveq1d chomf
      eqid crn csetc ccat wcel oppccat syl cvv fvex rnex a1i wss ssid oppchofcl
      oppcbas curf2val chom oppchom syl6eleqr catidcl hof2 catlid oveq1d oppcco
      co eqtrd 3eqtrd ) AFHEIKJUBUCZVSZUCZUCZUCFEHCUDUCZUEUCZUCZIHUFZKHUFWFUGUC
      ZUBUCVSVSZUCWHFWIHWFUHUCZVSVSZEKIUFHWLVSZVSZEFHIUFKDVSVSZAFWEWKAWEHEIKCWF
      UFWJUIVSZUBUCZVSZUCZUCWKAHWDWTAEWCWSAWBWRIKAJWQUBACWJWFJLNWFUOZWJUOZUJUKU
      LUMUMABBCWFCUNUCZUPZUQUCZWJWQGWGEWTIKHWQUOMNACURUSWFURUSNCWFXAUTVAZACXEXD
      WJWFVBXAXBXEUONXDVBUSAXCCUNVCVDVEXDXDVFAXDVGVEVHBCWFXAMVIZPWGUOZOQTWTUOSV
      JVTUMABWFWLEWHWFVKUCZFWJHIHKXBXFXGXIUOZOSQSWLUOZAEIKGVSKIXIVSTCGWFKIPXAVL
      VMABWFWGXIHXGXJXHXFSVNAFHIGVSIHXIVSUACGWFIHPXAVLVMZVOAWOFEWNVSWPAWMFEWNAB
      WFWLWGFXIIHXGXJXHXFOXKSXLVPVQABCDEFWFKIHMRXAQOSVRVTWA $.
  $}

  ${
    $d f g h x y C $.  $d f g h x y D $.  $d f g h x y ph $.
    hofpropd.1 $e |- ( ph -> ( Homf ` C ) = ( Homf ` D ) ) $.
    hofpropd.2 $e |- ( ph -> ( comf ` C ) = ( comf ` D ) ) $.
    hofpropd.c $e |- ( ph -> C e. Cat ) $.
    hofpropd.d $e |- ( ph -> D e. Cat ) $.
    $( If two categories have the same set of objects, morphisms, and
       compositions, then they have the same Hom functor.  (Contributed by
       Mario Carneiro, 26-Jan-2017.) $)
    hofpropd $p |- ( ph -> ( HomF ` C ) = ( HomF ` D ) ) $=
      ( vx vy vf vg vh cfv cv co wceq wcel adantr eqid ad2antrr chomf c1st chom
      cbs cxp c2nd cco cop cmpt cmpt2 homfeqbas sqxpeqd xp1st ad2antll ad2antrl
      chof homfeqval xp2nd df-ov 3eqtr3g 1st2nd2 fveq2d 3eqtr4d ccomf ad3antrrr
      simplrl oveq1d oveqd ccat syl6eqr eleq2d biimpa simplrr catcocl comfeqval
      wa eqeltrd eqtrd mpteq12dva mpt2eq123dva opeq12d hofval ) ABUAMZHIBUDMZWD
      UEZWEJKINZUBMZHNZUBMZBUCMZOZWHUFMZWFUFMZWJOZLWHWJMZKNZLNZWHWMBUGMZOZOZJNZ
      WGWIUHZWMWROOZUIZUJZUJZUHCUAMZHICUDMZXHUEZXIJKWGWICUCMZOZWLWMXJOZLWHXJMZW
      PWQWHWMCUGMZOZOZXAXBWMXNOZOZUIZUJZUJZUHBUPMZCUPMZAWCXGXFYADAHIWEWEXEXIXIX
      TAWDXHABCDUKULZAWEXIPWHWEQZYDRAYEWFWEQZVPZVPZJKWKWNXDXKXLXSYHWDBCWJXJWGWI
      WDSZWJSZXJSZAWCXGPZYGDRZYFWGWDQZAYEWFWDWDUMUNZYEWIWDQZAYFWHWDWDUMUOZUQYHW
      NXLPXAWKQZYHWDBCWJXJWLWMYIYJYKYMYEWLWDQZAYFWHWDWDURUOZYFWMWDQZAYEWFWDWDUR
      UNZUQRYHYRWPWNQZVPZVPZLWOXCXMXRYHWOXMPUUDYHWIWLUHZWJMZUUFXJMZWOXMYHWIWLWJ
      OZWIWLXJOUUGUUHYHWDBCWJXJWIWLYIYJYKYMYQYTUQWIWLWJUSZWIWLXJUSUTYHWHUUFWJYE
      WHUUFPZAYFWHWDWDVAUOZVBZYHWHUUFXJUULVBVCRUUEWQWOQZVPZXCWTXAXQOXRUUOWDBCXN
      WRXAWTWJWGWIWMYIYJWRSZXNSZYHYLUUDUUNYMTZABVDMCVDMPYGUUDUUNEVEZYHYNUUDUUNY
      OTYHYPUUDUUNYQTZYHUUAUUDUUNUUBTZYHYRUUCUUNVFUUOWTWPWQUUFWMWROZOZWIWMWJOUU
      OWSUVBWPWQUUOWHUUFWMWRYHUUKUUDUUNUULTZVGVHZUUOWDBWRWQWPWJWIWLWMYIYJUUPABV
      IQYGUUDUUNFVEUUTYHYSUUDUUNYTTZUVAUUEUUNWQUUIQUUEWOUUIWQUUEWOUUGUUIYHWOUUG
      PUUDUUMRUUJVJVKVLZYHYRUUCUUNVMZVNVQVOUUOWTXPXAXQUUOUVCWPWQUUFWMXNOZOWTXPU
      UOWDBCXNWRWQWPWJWIWLWMYIYJUUPUUQUURUUSUUTUVFUVAUVGUVHVOUVEUUOXOUVIWPWQUUO
      WHUUFWMXNUVDVGVHVCVGVRVSVTVTWAAHIWDBWRJKLWJYBYBSFYIYJUUPWBAHIXHCXNJKLXJYC
      YCSGXHSYKUUQWBVC $.

    $( If two categories have the same set of objects, morphisms, and
       compositions, then they have the same Yoneda functor.  (Contributed by
       Mario Carneiro, 26-Jan-2017.) $)
    yonpropd $p |- ( ph -> ( Yon ` C ) = ( Yon ` D ) ) $=
      ( coppc cfv cop chof ccurf co cyon chomf ccat wcel eqid oppccat syl csetc
      crn oppchomfpropd oppccomfpropd cvv fvex rnex a1i wss oppchofcl curfpropd
      ssid hofpropd oveq2d eqtrd yonval 3eqtr4d ) ABBHIZJURKIZLMZCCHIZJZVAKIZLM
      ZBNIZCNIZAUTVBUSLMVDABCURVABOIZUBZUAIZUSDEABCDUCZABCDEUDZFGABPQURPQFBURUR
      RZSTZACPQVAPQGCVAVARZSTZABVIVHUSURUEVLUSRZVIRFVHUEQAVGBOUFUGUHVHVHUIAVHUL
      UHUJUKAUSVCVBLAURVAVJVKVMVOUMUNUOABUSURVEVERFVLVPUPACVCVAVFVFRGVNVCRUPUQ
      $.
  $}

  ${
    oppcyon.o $e |- O = ( oppCat ` C ) $.
    oppcyon.y $e |- Y = ( Yon ` O ) $.
    oppcyon.m $e |- M = ( HomF ` C ) $.
    oppcyon.c $e |- ( ph -> C e. Cat ) $.
    $( Value of the opposite Yoneda embedding.  (Contributed by Mario Carneiro,
       26-Jan-2017.) $)
    oppcyon $p |- ( ph -> Y = ( <. O , C >. curryF M ) ) $=
      ( cfv cop ccurf co chof chomf a1i ccomf ccat wcel eqid coppc wceq oppccat
      2oppchomf 2oppccomf syl hofpropd syl5eq crn csetc eqidd cvv fvex rnex wss
      oveq2d ssid hofcl curfpropd yonval 3eqtr4rd ) ADDUAJZKZCLMVCVBNJZLMDBKCLM
      EACVDVCLACBNJVDHABVBBOJZVBOJUBABDFUDPZBQJVBQJUBABDFUEPZIADRSZVBRSABRSVHIB
      DFUCUFZDVBVBTZUCUFZUGUHUPADDBVBVEUIZUJJZCADOJUKADQJUKVFVGVIVIIVKABVMVLCDU
      LHFVMTIVLULSAVEBOUMUNPVLVLUOAVLUQPURUSADVDVBEGVIVJVDTUTVA $.
  $}

  ${
    oyoncl.o $e |- O = ( oppCat ` C ) $.
    oyoncl.y $e |- Y = ( Yon ` O ) $.
    oyoncl.c $e |- ( ph -> C e. Cat ) $.
    oyoncl.s $e |- S = ( SetCat ` U ) $.
    oyoncl.u $e |- ( ph -> U e. V ) $.
    oyoncl.h $e |- ( ph -> ran ( Homf ` C ) C_ U ) $.
    ${
      oyoncl.q $e |- Q = ( C FuncCat S ) $.
      $( The opposite Yoneda embedding is a functor from ` oppCat `` C ` to the
         functor category ` C -> SetCat ` .  (Contributed by Mario Carneiro,
         26-Jan-2017.) $)
      oyoncl $p |- ( ph -> Y e. ( O Func Q ) ) $=
        ( cfv co ccat wcel eqid coppc cfuc cfunc oppccat syl chomf crn oppchomf
        ctpos rneqi cdm wrel wceq cbs cxp relxp homffn fndm ax-mp releqi rntpos
        wfn mpbir eqtr3i syl5eqss yoncl 2oppchomf ccomf 2oppccomf eqidd setccat
        a1i fucpropd syl5eq oveq2d eleqtrrd ) AHFFUAPZDUBQZUCQFCUCQAFVRDEVQGHJA
        BRSFRSZKBFIUDUEZVQTZLVRTMAFUFPZUGZBUFPZUGZEWDUIZUGZWCWEWFWBBWDFIWDTZUHU
        JWDUKZULZWGWEUMWJBUNPZWKUOZULWKWKUPWIWLWDWLVBWIWLUMWKBWDWHWKTUQWLWDURUS
        UTVCWDVAUSVDNVEVFACVRFUCACBDUBQVROABVQDDWDVQUFPUMABFIVGVLBVHPVQVHPUMABF
        IVIVLADUFPVJADVHPVJKAVSVQRSVTFVQWAUDUEAEGSDRSMDEGLVKUEZWMVMVNVOVP $.
    $}

    oyon1cl.b $e |- B = ( Base ` C ) $.
    oyon1cl.p $e |- ( ph -> X e. B ) $.
    $( The opposite Yoneda embedding at an object of ` C ` is a functor from
       ` C ` to Set, also known as the covariant Hom functor.  (Contributed by
       Mario Carneiro, 17-Jan-2017.) $)
    oyon1cl $p |- ( ph -> ( ( 1st ` Y ) ` X ) e. ( C Func S ) ) $=
      ( cfunc co cfv c1st cfuc c2nd oppcbas eqid fucbas wrel wbr relfunc oyoncl
      wcel 1st2ndbr sylancr funcf1 ffvelrnd ) ABCDRSZHIUATZABUPFCDUBSZUQIUCTZBC
      FJPUDCDURURUEZUFAFURRSZUGIVAUKUQUSVAUHFURUIACURDEFGIJKLMNOUTUJIVAULUMUNQU
      O $.
  $}

  ${
    $d a b f g x y .1. $.  $d a b g h k u w y z A $.  $d a f g h u w x y z C $.
    $d a b f g h k u v w y z E $.  $d a b f g h k u w x y z F $.  $d a b y K $.
    $d a b f g h k u v w x y z B $.  $d a b f g x y G $.  $d a b h k v w z N $.
    $d z I $.  $d a b f g h k u v w x y z O $.  $d a b f g h k u v w x y z S $.
    $d b g h k u w y z M $.  $d a b f g u v w x z Q $.  $d f g h u v w y z T $.
    $d a b f g x y P $.  $d a b f g h k u v w x y z ph $.  $d u v z R $.
    $d a b f g h k u v w x y z Y $.  $d a b f g h k u v w x y z Z $.
    $d a b f g h k u w x y z X $.
    yoneda.y $e |- Y = ( Yon ` C ) $.
    yoneda.b $e |- B = ( Base ` C ) $.
    yoneda.1 $e |- .1. = ( Id ` C ) $.
    yoneda.o $e |- O = ( oppCat ` C ) $.
    yoneda.s $e |- S = ( SetCat ` U ) $.
    yoneda.t $e |- T = ( SetCat ` V ) $.
    yoneda.q $e |- Q = ( O FuncCat S ) $.
    yoneda.h $e |- H = ( HomF ` Q ) $.
    yoneda.r $e |- R = ( ( Q Xc. O ) FuncCat T ) $.
    yoneda.e $e |- E = ( O evalF S ) $.
    yoneda.z $e |- Z = ( H o.func ( ( <. ( 1st ` Y ) , tpos ( 2nd ` Y ) >.
      o.func ( Q 2ndF O ) ) pairF ( Q 1stF O ) ) ) $.
    yoneda.c $e |- ( ph -> C e. Cat ) $.
    yoneda.w $e |- ( ph -> V e. W ) $.
    yoneda.u $e |- ( ph -> ran ( Homf ` C ) C_ U ) $.
    yoneda.v $e |- ( ph -> ( ran ( Homf ` Q ) u. U ) C_ V ) $.
    $( Lemma for ~ yoneda .  (Contributed by Mario Carneiro, 28-Jan-2017.) $)
    yonedalem1 $p |- ( ph ->
      ( Z e. ( ( Q Xc. O ) Func T ) /\ E e. ( ( Q Xc. O ) Func T ) ) ) $=
      ( cxpc co cfunc wcel c1st cfv c2nd ctpos cop c2ndf ccofu c1stf cprf coppc
      eqid ccat oppccat syl cvv chomf crn unssbd setccat fuccat 2ndfcl wbr wrel
      ssexd relfunc yoncl 1st2ndbr df-br sylib cofucl 1stfcl prfcl unssad hofcl
      sylancr funcoppc syl5eqel funcsetcres2 evlfcl sseldd jca ) APDLULUMZGUNUM
      ZUOJWRUOAPKOUPUQZOURUQZUSZUTZDLVAUMZVBUMZDLVCUMZVDUMZVBUMWRUGAWQDVEUQZDUL
      UMZGXFKAWQXGXFXHDXDXEXFVFXHVFAWQLXGXCXBADLXCWQWQVFZALFDUCACVGUOLVGUOUHCLT
      VHVIZAHVJUOFVGUOAHMNUIADVKUQVLZHMUKVMZVSZFHVJUAVNVIZVOZXJXCVFVPAWSXALXGUN
      UMZVQXBXPUOACDXGWSWTLTXGVFZACDUNUMZVROXRUOWSWTXRVQCDVTACDFHLVJOQUHTUAUCXM
      UJWAOXRWBWJWKWSXAXPWCWDWEADLXEWQXIXOXJXEVFWFWGADGMKXGNUDXQUBXOUIAXKHMUKWH
      WIWEWLAWQFUNUMWRJAGFMWQHNUBUAUIXLWMALFDJUFUCXJXNWNWOWP $.

    ${
      yonedalem21.f $e |- ( ph -> F e. ( O Func S ) ) $.
      yonedalem21.x $e |- ( ph -> X e. B ) $.
      $( Lemma for ~ yoneda .  (Contributed by Mario Carneiro, 28-Jan-2017.) $)
      yonedalem21 $p |- ( ph -> ( F ( 1st ` Z ) X ) =
        ( ( ( 1st ` Y ) ` X ) ( O Nat S ) F ) ) $=
        ( c1st cfv co c2nd ctpos c2ndf ccofu c1stf cprf cnat fveq2i oveqi df-ov
        cop eqtri cfunc cxpc coppc eqid fucbas oppcbas xpcbas ccat wcel oppccat
        cxp syl cvv chomf crn unssbd ssexd setccat fuccat 2ndfcl wbr wrel yoncl
        relfunc 1st2ndbr sylancr funcoppc df-br sylib cofucl 1stfcl prfcl hofcl
        unssad opelxpi syl2anc cofu1 syl5eq chom prf1 wceq fvex op1st a1i 2ndf1
        tposex op2ndg eqtrd fveq12d op1stg opeq12d fveq2d syl6eqr fuchom yon1cl
        1stf1 hof1 3eqtrd ) AKPRUPUQZURZKPVIZQUPUQZQUSUQZUTZVIZDMVAURZVBURZDMVC
        URZVDURZUPUQUQZLUPUQZUQZPYLUQZKUUAURZUUCKMFVEURZURAYJYKLYSVBURZUPUQZUQZ
        UUBYJKPUUGURUUHYIUUGKPRUUFUPUIVFVGKPUUGVHVJAMFVKURZBWAZDMVLURZDVMUQZDVL
        URZGYSLYKDMUUKUUIBUUKVNZMFDUEVOZBCMUBTVPVQZAUUKUULYSUUMDYQYRYSVNZUUMVNA
        UUKMUULYPYOADMYPUUKUUNAMFDUEACVRVSMVRVSUJCMUBVTWBZAHWCVSFVRVSAHNOUKADWD
        UQWEZHNUMWFWGZFHWCUCWHWBWIZUURYPVNZWJZAYLYNMUULVKURZWKYOUVDVSACDUULYLYM
        MUBUULVNZACDVKURZWLQUVFVSYLYMUVFWKCDWNACDFHMWCQSUJUBUCUEUUTULWMQUVFWOWP
        WQYLYNUVDWRWSZWTZADMYRUUKUUNUVAUURYRVNZXAZXBADGNLUULOUFUVEUDUVAUKAUUSHN
        UMXDXCAKUUIVSZPBVSZYKUUJVSUNUOKPUUIBXEXFZXGXHAUUBUUCKVIZUUAUQUUDAYTUVNU
        UAAYTYKYQUPUQUQZYKYRUPUQUQZVIUVNAUUJUUKUULYSDYQYRUUKXIUQZYKUUQUUPUVQVNZ
        UVHUVJUVMXJAUVOUUCUVPKAUVOYKYPUPUQUQZYOUPUQZUQUUCAUUJUUKMUULYPYOYKUUPUV
        CUVGUVMXGAUVSPUVTYLUVTYLXKAYLYNQUPXLYMQUSXLXPXMXNAUVSYKUSUQZPAUUJDMYPYK
        UUKUVQUUNUUPUVRUVAUURUVBUVMXOAUVKUVLUWAPXKUNUOKPUUIBXQXFXRXSXRAUVPYKUPU
        QZKAUUJDMYRYKUUKUVQUUNUUPUVRUVAUURUVIUVMYFAUVKUVLUWBKXKUNUOKPUUIBXTXFXR
        YAXRYBUUCKUUAVHYCAUUIDUUELUUCKUFUVAUUOMFDUUEUEUUEVNYDABCFHMWCPQSTUJUOUB
        UCUUTULYEUNYGYH $.

      ${
        yonedalem3a.m $e |- M = ( f e. ( O Func S ) , x e. B |->
          ( a e. ( ( ( 1st ` Y ) ` x ) ( O Nat S ) f ) |->
            ( ( a ` x ) ` ( .1. ` x ) ) ) ) $.
        $( Lemma for ~ yoneda .  (Contributed by Mario Carneiro,
           29-Jan-2017.) $)
        yonedalem3a $p |- ( ph -> ( ( F M X ) =
          ( a e. ( ( ( 1st ` Y ) ` X ) ( O Nat S ) F ) |->
            ( ( a ` X ) ` ( .1. ` X ) ) ) /\
            ( F M X ) : ( F ( 1st ` Z ) X ) --> ( F ( 1st ` E ) X ) ) ) $=
          ( co c1st cfv cnat cv cmpt wceq wf cfunc wcel wa simpr fveq2d oveq12d
          simpl fveq12d mpteq12dv ovex ovmpt2a syl2anc chom c2nd eqid nat1st2nd
          mptex oppcbas adantr natcl cvv chomf crn unssbd ssexd cbs wbr relfunc
          wrel yon1cl 1st2ndbr sylancr funcf1 ffvelrnd eleqtrrd elsetchom mpbid
          setcbas catidcl yon11 fmptd yonedalem21 oppccat setccat evlf1 feq123d
          ccat syl mpbird jca ) AMSOVAZUBSTVBVCZVCZMPGVDVAZVAZSJVCZSUBVEZVCZVCZ
          VFZVGZMSUAVBVCVAZMSLVBVCVAZXSVHZAMPGVIVAZVJZSCVJZYIURUSKBMSYMCUBBVEZX
          TVCZKVEZYBVAZYPJVCZYPYEVCZVCZVFYHOYRMVGZYPSVGZVKZUBYSUUBYCYGUUEYQYAYR
          MYBUUEYPSXTUUCUUDVLZVMUUCUUDVOVNUUEYTYDUUAYFUUEYPSYEUUFVMUUEYPSJUUFVM
          VPVQUTUBYCYGYAMYBVRWEVSVTZAYLYCSMVBVCZVCZYHVHAUBYCYGUUIYHAYEYCVJZVKZS
          YAVBVCZVCZUUIYDYFUUKYFUUMUUIGWAVCZVAVJUUMUUIYFVHUUKYECPGUULYAWBVCZUUN
          UUHMWBVCZYBSYBWCZUUKYEPGYAMYBUUQAUUJVLWDCDPUFUDWFZUUNWCZAYOUUJUSWGWHU
          UKGIYFUUNWIUUMUUIUGAIWIVJZUUJAIQRUOAEWJVCWKIQUQWLWMZWGUUSAUUMIVJUUJAU
          UMGWNVCZIACUVBSUULACUVBPGUULUUOUURUVBWCZAYMWQZYAYMVJUULUUOYMWOPGWPZAC
          DGIPWISTUCUDUNUSUFUGUVAUPWRYAYMWSWTXAUSXBAGIWIUGUVAXFZXCWGAUUIIVJUUJA
          UUIUVBIACUVBSUUHACUVBPGUUHUUPUURUVCAUVDYNUUHUUPYMWOUVEURMYMWSWTXAUSXB
          UVFXCWGXDXEAYDUUMVJUUJAYDSSDWAVCZVAUUMACDJUVGSUDUVGWCZUEUNUSXGACDUVGS
          TSUCUDUNUSUVHUSXHXCWGXBYHWCXIAYJYCYKUUIXSYHUUGACDEFGHIJLMNPQRSTUAUCUD
          UEUFUGUHUIUJUKULUMUNUOUPUQURUSXJACPGLMSULADXOVJPXOVJUNDPUFXKXPAUUTGXO
          VJUVAGIWIUGXLXPUURURUSXMXNXQXR $.
      $}

      ${
        yonedalem4.n $e |- N =
          ( f e. ( O Func S ) , x e. B |-> ( u e. ( ( 1st ` f ) ` x ) |->
            ( y e. B |-> ( g e. ( y ( Hom ` C ) x ) |->
              ( ( ( x ( 2nd ` f ) y ) ` g ) ` u ) ) ) ) ) $.
        yonedalem4.p $e |- ( ph -> A e. ( ( 1st ` F ) ` X ) ) $.
        $( Lemma for ~ yoneda .  (Contributed by Mario Carneiro,
           29-Jan-2017.) $)
        yonedalem4a $p |- ( ph -> ( ( F N X ) ` A ) =
          ( y e. B |-> ( g e. ( y ( Hom ` C ) X ) |->
              ( ( ( X ( 2nd ` F ) y ) ` g ) ` A ) ) ) ) $=
          ( cv chom cfv co c2nd cmpt c1st cvv cfunc cmpt2 wceq wa simprl fveq2d
          a1i simprr fveq12d wcel simplrr oveq2d simplrl eqidd fveq1d mpteq12dv
          oveq123d mpteq2dva fvex mptex ovmpt2d simpr mpteq2dv eqeltri fvmptd
          cbs ) ADECFOCVEZUCGVFVGZVHZDVEZOVEZUCWSQVIVGZVHZVGZVGZVJZVJZCFOXAEXFV
          GZVJZVJZUCQVKVGZVGZQUCSVHVLANBQUCTJVMVHZFDBVEZNVEZVKVGZVGZCFOWSXPWTVH
          ZXBXCXPWSXQVIVGZVHZVGZVGZVJZVJZVJZDXNXIVJZSVLSNBXOFYGVNVOAVCVSAXQQVOZ
          XPUCVOZVPVPZDXSYFXNXIYKXPUCXRXMYKXQQVKAYIYJVQVRAYIYJVTWAYKCFYEXHYKWSF
          WBZVPZOXTYDXAXGYMXPUCWSWTAYIYJYLWCZWDYMXBYCXFYMXCYBXEYMXPUCWSWSYAXDYM
          XQQVIAYIYJYLWEVRYNYMWSWFWIWGWGWHWJWHVAVBYHVLWBADXNXIUCXMWKWLVSWMAXBEV
          OZVPZCFXHXKYPOXAXGXJYPXBEXFAYOWNVRWOWOVDXLVLWBACFXKFGWRVGVLUGGWRWKWPW
          LVSWQ $.

        ${
          yonedalem4b.p $e |- ( ph -> P e. B ) $.
          yonedalem4b.g $e |- ( ph -> G e. ( P ( Hom ` C ) X ) ) $.
          $( Lemma for ~ yoneda .  (Contributed by Mario Carneiro,
             29-Jan-2017.) $)
          yonedalem4b $p |- ( ph -> ( ( ( ( F N X ) ` A ) ` P ) ` G ) =
            ( ( ( X ( 2nd ` F ) P ) ` G ) ` A ) ) $=
            ( co cfv chom c2nd cmpt yonedalem4a fveq1d wceq eqidd cvv wcel ovex
            cv wa mptex a1i adantr simpr oveq1d eleqtrrd simplr oveq2d fvmptdv2
            fvexd fveq12d nfmpt1 nffvmpt1 nfcv nffv nfeq1 fvmptdf mpd eqtrd ) A
            SHERUEUAVIVJZVJZVJSHCFPCWAZUEGVKVJZVIZEPWAZUEXDRVLVJZVIZVJZVJZVMZVM
            ZVJZVJZESUEHXHVIZVJZVJZASXCXNAHXBXMABCDEFGIJKLMNOPQRTUAUBUCUDUEUFUG
            UHUIUJUKULUMUNUOUPUQURUSUTVAVBVCVDVEVFVNVOVOAXMXMVPXOXRVPZAXMVQAXSC
            HXLFXMVRVGXLVRVSAXDHVPZWBZPXFXKXDUEXEVTWCWDYAPSXKXRXFXNVRYASHUEXEVI
            ZXFASYBVSXTVHWEYAXDHUEXEAXTWFWGWHYAXGSVPZWBZEXJWLYDEXJXQYDXGSXIXPYD
            XDHUEXHAXTYCWIWJYAYCWFWMVOWKCFXLWNCXOXRCSXNCFXLHWOCSWPWQWRWSWTXA $.
        $}

        $( Lemma for ~ yoneda .  (Contributed by Mario Carneiro,
           29-Jan-2017.) $)
        yonedalem4c $p |- ( ph ->
          ( ( F N X ) ` A ) e. ( ( ( 1st ` Y ) ` X ) ( O Nat S ) F ) ) $=
          ( vz vw vh vk co cfv c1st cnat wcel chom cixp c2nd cop wceq wral cmpt
          cv cco yonedalem4a weq oveq1 oveq2 fveq1d mpteq12dv cbvmptv syl6eq wa
          wf oppcbas eqid cfunc wbr wrel relfunc 1st2ndbr sylancr adantr funcf2
          simpr oppchom syl6eleqr cvv chomf crn unssbd ssexd cbs funcf1 setcbas
          ffvelrnd feq3d mpbird ad2antrr ffvelrnda mpbid fmptd ccat yon11 feq2d
          elsetchom yon1cl ralrimiva fvex eqeltri ccom fveq2d 3ad2antr1 syl2anc
          wb setcco eqtrd wss yonedalem4b 3eqtr4d fveq2 fcompt mptelixpg sylibr
          eqeltrd w3a simpr1 eleq2d biimpa simpr2 simplr3 funcco oppcco 3eqtr3d
          ax-mp simpr3 fvco3 syl6eleq yon12 catcocl syldan mpteq2dva ovex mptex
          cun fvmpt2 mpan2 sylan9eq feq1d feq123d rspcv sylc ralrimivvva isnat2
          mpbir2and ) AEQUCSVIVJZUCUDVKVJVJZQTJVLVIZVIVMUVNVEFVEWAZUVOVKVJZVJZU
[encoded data, 4240 characters]
          UYKUYLUYMVWRVVCVAUVLUVM $.
      $}

      yonedalem22.g $e |- ( ph -> G e. ( O Func S ) ) $.
      yonedalem22.p $e |- ( ph -> P e. B ) $.
      yonedalem22.a $e |- ( ph -> A e. ( F ( O Nat S ) G ) ) $.
      yonedalem22.k $e |- ( ph -> K e. ( P ( Hom ` C ) X ) ) $.
      $( Lemma for ~ yoneda .  (Contributed by Mario Carneiro, 29-Jan-2017.) $)
      yonedalem22 $p |- ( ph ->
        ( A ( <. F , X >. ( 2nd ` Z ) <. G , P >. ) K ) =
        ( ( ( P ( 2nd ` Y ) X ) ` K ) ( <. ( ( 1st ` Y ) ` X ) , F >.
          ( 2nd ` H ) <. ( ( 1st ` Y ) ` P ) , G >. ) A ) ) $=
        ( cop c2nd cfv co c1st ctpos c2ndf ccofu c1stf fveq2i oveqi df-ov eqtri
        cprf cfunc cxpc coppc chom eqid fucbas oppcbas xpcbas ccat wcel oppccat
        cxp syl cvv chomf crn unssbd ssexd setccat fuccat 2ndfcl wbr wrel yoncl
        relfunc 1st2ndbr sylancr funcoppc df-br sylib cofucl 1stfcl prfcl hofcl
        unssad opelxpi syl2anc oppchom syl6eleqr fuchom xpchom2 eleqtrrd syl5eq
        cnat cofu2 prf1 cofu1 wceq fvex tposex op1st 2ndf1 op2ndg eqtrd fveq12d
        1stf1 op1stg opeq12d oveq12d cres fveq1d fvres 3eqtrd prf2 op2nd ovtpos
        a1i 2ndf2 1stf2 syl6eqr ) ABPMTVDZNEVDZUBVEVFZVGZVGZBPVDZUUHUUIUAVHVFZU
        AVEVFZVIZVDZFQVJVGZVKVGZFQVLVGZVQVGZVEVFVGVFZUUHUVAVHVFZVFZUUIUVCVFZOVE
        VFZVGZVFZPETUUOVGZVFZBTUUNVFZMVDZEUUNVFZNVDZUVFVGZVGZAUULUUMUUHUUIOUVAV
        KVGZVEVFZVGZVFZUVHUULBPUVSVGUVTUUKUVSBPUUJUVRUUHUUIUBUVQVEUMVMVNVNBPUVS
        VOVPAQHVRVGZCWIZFQVSVGZFVTVFZFVSVGZUUMIUVAOUWCWAVFZUUHUUIFQUWCUWACUWCWB
        ZQHFUIWCZCDQUFUDWDZWEZAUWCUWDUVAUWEFUUSUUTUVAWBZUWEWBAUWCQUWDUURUUQAFQU
        URUWCUWGAQHFUIADWFWGQWFWGUNDQUFWHWJZAJWKWGHWFWGAJRSUOAFWLVFWMZJRUQWNWOZ
        HJWKUGWPWJWQZUWLUURWBZWRZAUUNUUPQUWDVRVGZWSUUQUWRWGADFUWDUUNUUOQUFUWDWB
        ZADFVRVGZWTUAUWTWGUUNUUOUWTWSDFXBADFHJQWKUAUCUNUFUGUIUWNUPXAUAUWTXCXDXE
        UUNUUPUWRXFXGZXHZAFQUUTUWCUWGUWOUWLUUTWBZXIZXJAFIROUWDSUJUWSUHUWOUOAUWM
        JRUQXLXKAMUWAWGZTCWGZUUHUWBWGURUSMTUWACXMXNZANUWAWGZECWGZUUIUWBWGUTVANE
        UWACXMXNZUWFWBZAUUMMNQHYAVGZVGZTEQWAVFZVGZWIZUUHUUIUWFVGZABUXMWGZPUXOWG
        UUMUXPWGVBAPETDWAVFZVGZUXOVCDUXSQTEUXSWBUFXOXPBPUXMUXOXMXNAFQNEUWCUXLUX
        NUWFMTUWACUWGUWHUWIQHFUXLUIUXLWBXQUXNWBURUSUTVAUXKXRXSZYBXTAUVHUVJBVDZU
        VOVFUVPAUVBUYBUVGUVOAUVDUVLUVEUVNUVFAUVDUUHUUSVHVFZVFZUUHUUTVHVFZVFZVDU
        VLAUWBUWCUWDUVAFUUSUUTUWFUUHUWKUWJUXKUXBUXDUXGYCAUYDUVKUYFMAUYDUUHUURVH
        VFZVFZUUQVHVFZVFUVKAUWBUWCQUWDUURUUQUUHUWJUWQUXAUXGYDAUYHTUYIUUNUYIUUNY
        EAUUNUUPUAVHYFZUUOUAVEYFYGZYHUUDZAUYHUUHVEVFZTAUWBFQUURUUHUWCUWFUWGUWJU
        XKUWOUWLUWPUXGYIAUXEUXFUYMTYEURUSMTUWACYJXNYKZYLYKAUYFUUHVHVFZMAUWBFQUU
        TUUHUWCUWFUWGUWJUXKUWOUWLUXCUXGYMAUXEUXFUYOMYEURUSMTUWACYNXNYKYOYKAUVEU
        UIUYCVFZUUIUYEVFZVDUVNAUWBUWCUWDUVAFUUSUUTUWFUUIUWKUWJUXKUXBUXDUXJYCAUY
        PUVMUYQNAUYPUUIUYGVFZUYIVFUVMAUWBUWCQUWDUURUUQUUIUWJUWQUXAUXJYDAUYREUYI
        UUNUYLAUYRUUIVEVFZEAUWBFQUURUUIUWCUWFUWGUWJUXKUWOUWLUWPUXJYIAUXHUXIUYSE
        YEUTVANEUWACYJXNYKZYLYKAUYQUUIVHVFZNAUWBFQUUTUUIUWCUWFUWGUWJUXKUWOUWLUX
        CUXJYMAUXHUXIVUANYEUTVANEUWACYNXNYKYOYKYPAUVBUUMUUHUUIUUSVEVFVGVFZUUMUU
        HUUIUUTVEVFVGZVFZVDUYBAUWBUWCUWDUVAFUUSUUTUWFUUMUUHUUIUWKUWJUXKUXBUXDUX
        GUXJUYAUUAAVUBUVJVUDBAVUBUUMUUHUUIUURVEVFVGZVFZUYHUYRUUQVEVFZVGZVFUVJAU
        WBUWCQUUMUWDUURUUQUWFUUHUUIUWJUWQUXAUXGUXJUXKUYAYBAVUFPVUHUVIAVUHUYRUYH
        UUOVGZUVIVUHUYHUYRUUPVGVUIVUGUUPUYHUYRUUNUUPUYJUYKUUBVNUYHUYRUUOUUCVPAU
        YREUYHTUUOUYTUYNYPXTAVUFUUMVEUXQYQZVFZUUMVEVFZPAUUMVUEVUJAUWBFQUURUUHUU
        IUWCUWFUWGUWJUXKUWOUWLUWPUXGUXJUUEYRAUUMUXQWGZVUKVULYEUYAUUMUXQVEYSWJAU
        XRPUXTWGZVULPYEVBVCBPUXMUXTYJXNYTYLYKAVUDUUMVHUXQYQZVFZUUMVHVFZBAUUMVUC
        VUOAUWBFQUUTUUHUUIUWCUWFUWGUWJUXKUWOUWLUXCUXGUXJUUFYRAVUMVUPVUQYEUYAUUM
        UXQVHYSWJAUXRVUNVUQBYEVBVCBPUXMUXTYNXNYTYOYKYLUVJBUVOVOUUGYK $.

      yonedalem3.m $e |- M = ( f e. ( O Func S ) , x e. B |->
        ( a e. ( ( ( 1st ` Y ) ` x ) ( O Nat S ) f ) |->
          ( ( a ` x ) ` ( .1. ` x ) ) ) ) $.
      $( Lemma for ~ yoneda .  (Contributed by Mario Carneiro, 29-Jan-2017.) $)
      yonedalem3b $p |- ( ph -> ( ( G M P )
         ( <. ( F ( 1st ` Z ) X ) , ( G ( 1st ` Z ) P ) >.
              ( comp ` T ) ( G ( 1st ` E ) P ) )
         ( A ( <. F , X >. ( 2nd ` Z ) <. G , P >. ) K ) ) =
       ( ( A ( <. F , X >. ( 2nd ` E ) <. G , P >. ) K )
          ( <. ( F ( 1st ` Z ) X ) , ( F ( 1st ` E ) X ) >.
              ( comp ` T ) ( G ( 1st ` E ) P ) ) ( F M X ) ) ) $=
        ( vb vy co cop c2nd cfv ccom c1st cnat cv cmpt wceq oveq2 oveq1d fveq1d
        cco cbvmptv wcel wa eqid chom cfunc wrel wbr relfunc cvv sylancr funcf2
        1st2ndbr ffvelrnd adantr fuccoval wf cbs funcf1 setcbas mpbird eleqtrrd
        feq3d nat1st2nd natcl elsetchom mpbid setcco eqtrd syl2anc 3eqtrd yon11
        catidcl fvco3 ccat fveq2d 3eqtr3d wral cxp simpld opelxpi df-ov oveq12i
        eqcomi a1i feq23d fovrnd yonedalem21 feq123d sylibr yonedalem3a fmptcof
        syl fmpt simprd 3eqtr4d oppcbas fuchom chomf unssbd ssexd yoncl fuccocl
        crn simpr fucbas fco yon2 catrid oppchom syl6eleqr yon12 catlid 3eqtr2d
        nati mpteq2dva syl5eq cxpc xpcbas yonedalem1 xpchom2 xpeq2i yonedalem22
        syl6eq oppccat setccat fuccat hof2val fveq1 evlf2val coeq1d evlf1 fveq2
        fcompt ) APFSVKZCROUCVLZPFVLZUEVMVNZVKZVKZVOZCRUVTUWANVMVNZVKZVKZOUCSVK
[encoded data, 6560 characters]
        AUWHWUSUBUWQUWOULUSWVLWXLWXKXJXKXLYT $.
    $}

    yoneda.m $e |- M = ( f e. ( O Func S ) , x e. B |->
      ( a e. ( ( ( 1st ` Y ) ` x ) ( O Nat S ) f ) |->
        ( ( a ` x ) ` ( .1. ` x ) ) ) ) $.
    $( Lemma for ~ yoneda .  (Contributed by Mario Carneiro, 28-Jan-2017.) $)
    yonedalem3 $p |- ( ph -> M e. ( Z ( ( Q Xc. O ) Nat T ) E ) ) $=
      ( vz vw vg vy cxpc co cnat wcel cfunc cxp c1st cfv chom cixp c2nd cop cco
      cv wceq wral wfn cmpt ovex mptex fnmpt2i a1i wa ccat adantr chomf crn wss
      wf cun simprl simprr yonedalem3a simprd cbs fucbas oppcbas xpcbas relfunc
      eqid wrel wbr yonedalem1 simpld 1st2ndbr sylancr fovrnda setcbas eleqtrrd
      funcf1 mpbird ralrimivva fveq2 df-ov syl6eqr oveq12d eleq12d ralxp sylibr
      elsetchom cmpt2 cvv fvex eqeltri mpt2ex elixp sylanbrc simpr1 xp1st xp2nd
      w3a syl simpr2 simpr3 fuchom 1st2nd2 fveq2d opeq12d fveq12d oveq123d
      xpchom oppchom xpeq2i syl6eq eleqtrd yonedalem3b 3eqtr4d isnat2 mpbir2and
      ralrimivvva ) ANSLEOVAVBZHVCVBZVBVDNUQOGVEVBZCVFZUQVNZSVGVHZVHZUUOLVGVHZV
      HZHVIVHZVBZVJVDZURVNZNVHZUSVNZUUOUVCSVKVHZVBZVHZUUQUVCUUPVHZVLZUVCUURVHZH
      VMVHZVBZVBZUVEUUOUVCLVKVHZVBZVHZUUONVHZUUQUUSVLZUVKUVLVBZVBZVOZUSUUOUVCUU
      KVIVHZVBZVPURUUNVPUQUUNVPANUUNVQZUVRUVAVDZUQUUNVPZUVBUWEAKBUUMCTBVNZRVGVH
      ZVHZKVNZOGVCVBZVBZUWHJVHUWHTVNZVHVHZVRZNUPTUWMUWOUWJUWKUWLVSVTWAWBAUVEUTV
      NZNVBZUVEUWQUUPVBZUVEUWQUURVBZUUTVBZVDZUTCVPUSUUMVPUWGAUXBUSUTUUMCAUVEUUM
      VDZUWQCVDZWCZWCZUXBUWSUWTUWRWIZUXFUWRTUWQUWIVHUVEUWLVBUWQJVHUWQUWNVHVHVRV
      OUXGUXFBCDEFGHIJKLUVEMNOPQUWQRSTUAUBUCUDUEUFUGUHUIUJUKADWDVDZUXEULWEAPQVD
      ZUXEUMWEZADWFVHWGIWHZUXEUNWEAEWFVHWGIWJPWHZUXEUOWEAUXCUXDWKAUXCUXDWLUPWMW
      NUXFHPUWRUUTQUWSUWTUFUXJUUTWTZUXFUWSHWOVHZPAUVEUWQUXNUUMCUUPAUUNUXNUUKHUU
      PUVFEOUUKUUMCUUKWTZOGEUGWPCDOUDUBWQWRZUXNWTZAUUKHVEVBZXAZSUXRVDZUUPUVFUXR
      XBUUKHWSZAUXTLUXRVDZACDEFGHIJLMOPQRSUAUBUCUDUEUFUGUHUIUJUKULUMUNUOXCZXDZS
      UXRXEXFXJXGUXFHPQUFUXJXHZXIUXFUWTUXNPAUVEUWQUXNUUMCUURAUUNUXNUUKHUURUVOUX
      PUXQAUXSUYBUURUVOUXRXBUYAAUXTUYBUYCWNZLUXRXEXFXJXGUYEXIXTXKXLUWFUXBUQUSUT
      UUMCUUOUVEUWQVLZVOZUVRUWRUVAUXAUYHUVRUYGNVHUWRUUOUYGNXMUVEUWQNXNXOUYHUUQU
      WSUUSUWTUUTUYHUUQUYGUUPVHUWSUUOUYGUUPXMUVEUWQUUPXNXOUYHUUSUYGUURVHUWTUUOU
      YGUURXMUVEUWQUURXNXOXPXQXRXSUQUUNUVANNKBUUMCUWPYAYBUPKBUUMCUWPOGVEVSCDWOV
      HYBUBDWOYCYDYEYDYFYGAUWBUQURUSUUNUUNUWDAUUOUUNVDZUVCUUNVDZUVEUWDVDZYKZWCZ
      UVCVGVHZUVCVKVHZNVBZUVEVGVHZUVEVKVHZUUOVGVHZUUOVKVHZVLZUYNUYOVLZUVFVBZVBZ
      UYSUYTUUPVBZUYNUYOUUPVBZVLZUYNUYOUURVBZUVLVBZVBUYQUYRVUAVUBUVOVBZVBZUYSUY
      TNVBZVUEUYSUYTUURVBZVLZVUHUVLVBZVBUVNUWAUYMBUYQCDUYOEFGHIJKLUYSUYNMUYRNOP
      QUYTRSTUAUBUCUDUEUFUGUHUIUJUKAUXHUYLULWEAUXIUYLUMWEAUXKUYLUNWEAUXLUYLUOWE
      UYMUYIUYSUUMVDAUYIUYJUYKYHZUUOUUMCYIYLUYMUYIUYTCVDVUPUUOUUMCYJYLUYMUYJUYN
      UUMVDAUYIUYJUYKYMZUVCUUMCYIYLUYMUYJUYOCVDVUQUVCUUMCYJYLUYMUVEUYSUYNUWLVBZ
      UYOUYTDVIVHZVBZVFZVDZUYQVURVDUYMUVEUWDVVAAUYIUYJUYKYNUYMUWDVURUYTUYOOVIVH
      ZVBZVFVVAUYMUUNEOUUKUWLVVCUWCUUOUVCUXOUXPOGEUWLUGUWLWTYOVVCWTUWCWTZVUPVUQ
      UUAVVDVUTVURDVUSOUYTUYOVUSWTUDUUBUUCUUDUUEZUVEVURVUTYIYLUYMVVBUYRVUTVDVVF
      UVEVURVUTYJYLUPUUFUYMUVDUYPUVHVUDUVMVUIUYMUVJVUGUVKVUHUVLUYMUUQVUEUVIVUFU
      YMUUQVUAUUPVHVUEUYMUUOVUAUUPUYMUYIUUOVUAVOVUPUUOUUMCYPYLZYQUYSUYTUUPXNXOZ
      UYMUVIVUBUUPVHVUFUYMUVCVUBUUPUYMUYJUVCVUBVOVUQUVCUUMCYPYLZYQUYNUYOUUPXNXO
      YRUYMUVKVUBUURVHVUHUYMUVCVUBUURVVIYQUYNUYOUURXNXOZXPUYMUVDVUBNVHUYPUYMUVC
      VUBNVVIYQUYNUYONXNXOUYMUVHUYQUYRVLZVUCVHVUDUYMUVEVVKUVGVUCUYMUUOVUAUVCVUB
      UVFVVGVVIXPUYMVVBUVEVVKVOVVFUVEVURVUTYPYLZYSUYQUYRVUCXNXOYTUYMUVQVUKUVRVU
      LUVTVUOUYMUVSVUNUVKVUHUVLUYMUUQVUEUUSVUMVVHUYMUUSVUAUURVHVUMUYMUUOVUAUURV
      VGYQUYSUYTUURXNXOYRVVJXPUYMUVQVVKVUJVHVUKUYMUVEVVKUVPVUJUYMUUOVUAUVCVUBUV
      OVVGVVIXPVVLYSUYQUYRVUJXNXOUYMUVRVUANVHVULUYMUUOVUANVVGYQUYSUYTNXNXOYTUUG
      UUJAUQURNUUNUUKHUVLUSSLUWCUUTUULUULWTUXPVVEUXMUVLWTUYDUYFUUHUUI $.

    ${
      yonedainv.i $e |- I = ( Inv ` R ) $.
      yonedainv.n $e |- N =
        ( f e. ( O Func S ) , x e. B |-> ( u e. ( ( 1st ` f ) ` x ) |->
          ( y e. B |-> ( g e. ( y ( Hom ` C ) x ) |->
            ( ( ( x ( 2nd ` f ) y ) ` g ) ` u ) ) ) ) ) $.
      $( The Yoneda Lemma with explicit inverse.  (Contributed by Mario
         Carneiro, 29-Jan-2017.) $)
      yonedainv $p |- ( ph -> M ( Z I E ) N ) $=
        ( vz vh vw vb vk cfunc co cv cfv cmpt cnat eqid wcel simpld simprd c1st
        wbr wral wa wceq wf ccom cid cres ccat adantr chomf crn wss yonedalem3a
        simplrl simplrr simpr yonedalem4c wfn chom c2nd cbs cvv fvex weq fveq2d
        mptex simplr fveq1d mpteq12dv mpteq2dva adantl dffn5 syl mpbird syl2anc
        sylib fcompt eleq2d biimpa fveq1 wrel relfunc 1st2ndbr sylancr ad2antrr
        ffvelrnda funcf1 setcbas feq3d 3eqtr3d 3eqtrd eqtrd mpbid cop elsetchom
        ffvelrnd natcl fveq2 df-ov syl6eqr cxp fucbas oppcbas xpcbas yonedalem1
        cxpc cinv yonedalem3 wf1o ccnv simprl simprr fmptd eqeltri fnmpti simpl
        cun fveq12d oveq2d simpll oveq123d ovmpt2a fneq1d mpbiri oppccat unssbd
        eqidd ssexd setccat evlf1 yonedalem21 feq123d fvexd catidcl yonedalem4b
        fmpt2d fvmpt ccid funcid oppcid setcid fvresi syldan mptresid nat1st2nd
        syl6eq natfn yon11 cco oppchom syl6eleqr nati yoncl funcf2 setcco fvco3
        yon12 catlid eqtr3d feqmptd 3eqtr4d eqfnfvd fcof1o eqcom anbi2i fovrnda
        eleqtrrd syl22anc setcinv oveq12d breq123d ralxp sylibr r19.21bi invfuc
        ralrimivva fnmpt2i mpbi syl6breqr ) ARVDTIVIVJZEUUAZVDVKZSVLZVMZSUDOQVJ
[encoded data, 7520 characters]
        XOVYBVXLVXNXCXFUXQVDUYASXLUXRUXS $.

      $( Lemma for ~ yonffth .  (Contributed by Mario Carneiro,
         29-Jan-2017.) $)
      yonffthlem $p |- ( ph -> Y e. ( ( C Full Q ) i^i ( C Faith Q ) ) ) $=
        ( vz vw vv vh c1st cfv c2nd cop cful co cfth cin wrel wcel wceq relfunc
        cfunc cvv chomf crn unssbd ssexd yoncl 1st2nd sylancr cv chom cnat wf1o
        wbr wral 1st2ndbr wa cxp wf fucbas funcf1 adantr simprr ffvelrnd simprl
        ciso opelxpi syl2anc cxpc ccat yonedalem1 simpld syl simprd fuccat eqid
        funcrcl yonedainv inviso2 oppcbas mpbid fveq2 df-ov syl6eqr oveq12d wss
        xpcbas yon11 eleqtrrd eqeltrrd sseldd wfn cmpt simpr ffvelrnda ad2antrr
        eqtr4d feqmptd mpteq2dva sylib 3eqtr4d eleq12d rspcv sylc oppccat evlf1
        fuciso setccat eqtrd cun yonedalem21 eleqtrd cbs setcbas fuchom homfval
        unssad homffn a1i fnovrn syl3anc setciso eqcomd ad3antrrr simpllr yon12
        cco yon2 mpteq12dva funcf2 nat1st2nd natcl elsetchom eleq2d yonedalem4a
        wb biimpar natfn dffn5 f1oeq1 ralrimivva isffth2 sylanbrc df-br eqeltrd
        f1of ) AUCUCVHVIZUCVJVIZVKZFGVLVMFGVNVMVOZAFGVTVMZVPZUCUWJVQZUCUWHVRFGV
        SZAFGIKTWAUCUFUQUIUJULAKUAUBURAGWBVIZWCZKUAUTWDZWEZUSWFZUCUWJWGWHAUWFUW
        GUWIWMZUWHUWIVQAUWFUWGUWJWMZVDWIZVEWIZFWJVIZVMZUXAUWFVIZUXBUWFVIZTIWKVM
        ZVMZUXAUXBUWGVMZWLZVEEWNVDEWNUWSAUWKUWLUWTUWMUWRUCUWJWOWHZAUXJVDVEEEAUX
        AEVQZUXBEVQZWPZWPZUXDUXHUXFUXASVMZWLZUXJUXOUXPUXDUXHJXEVIZVMZVQUXQUXOUX
        PUXFUXAOVHVIZVMZUXFUXAUDVHVIZVMZUXRVMZUXSUXOUXFUXAVKZTIVTVMZEWQZVQZVFWI
        ZSVIZUYIUXTVIZUYIUYBVIZUXRVMZVQZVFUYGWNZUXPUYDVQZUXOUXFUYFVQZUXLUYHUXOE
        UYFUXBUWFAEUYFUWFWRZUXNAEUYFFGUWFUWGUGTIGULWSZUXKWTZXAZAUXLUXMXBZXCZAUX
        LUXMXDZUXFUXAUYFEXFXGAUYOUXNASOUDGTXHVMZJWKVMZVMVQZUYOASOUDHXEVIZVMVQVU
        GUYOWPAVUEJVTVMZHRSVUHQUDOVUEJHUNWSVBAVUEJHUNAVUEXIVQZJXIVQZAUDVUIVQZVU
        JVUKWPAVULOVUIVQZAEFGHIJKLOPTUAUBUCUDUFUGUHUIUJUKULUMUNUOUPUQURUSUTXJZX
        KZVUEJUDXPXLZXKAVUJVUKVUPXMXNVUOAVULVUMVUNXMZVUHXOZABCDEFGHIJKLMNOPQRST
        UAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTVAVBVCXQXRAVFSUYGVUEJHOUDVUHUXR
        VUFUNGTVUEUYFEVUEXOUYSEFTUIUGXSZYFVUFXOVUQVUOVURUXRXOZUUFXTXMXAUYNUYPVF
        UYEUYGUYIUYEVRZUYJUXPUYMUYDVVAUYJUYESVIUXPUYIUYESYAUXFUXASYBYCVVAUYKUYA
        UYLUYCUXRVVAUYKUYEUXTVIUYAUYIUYEUXTYAUXFUXAUXTYBYCVVAUYLUYEUYBVIUYCUYIU
        YEUYBYAUXFUXAUYBYBYCYDUUAUUBUUCUXOUYAUXDUYCUXHUXRUXOUYAUXAUXFVHVIZVIZUX
        DUXOETIOUXFUXAUOATXIVQZUXNAFXIVQZVVDUQFTUIUUDXLXAAIXIVQZUXNAKWAVQZVVFUW
        QIKWAUJUUGXLXAVUSVUCVUDUUEUXOEFUXCUXBUCUXAUFUGAVVEUXNUQXAZVUBUXCXOZVUDY
        GZUUHUXOEFGHIJKLOUXFPTUAUBUXAUCUDUFUGUHUIUJUKULUMUNUOUPVVHAUAUBVQZUXNUR
        XAZAFWBVIWCKYEZUXNUSXAZAUWOKUUIUAYEZUXNUTXAZVUCVUDUUJYDUUKUXOJUAUXPUXRU
        BUXDUXHUKVVLUXOKUAUXDAKUAYEUXNUWPXAUXOVVCUXDKVVJUXOVVCIUULVIZKUXOEVVQUX
        AVVBUXOEVVQTIVVBUXFVJVIZVUSVVQXOZUXOUYFVPZUYQVVBVVRUYFWMTIVSZVUCUXFUYFW
        OWHWTZVUDXCAKVVQVRZUXNAIKWAUJUWQUUMXAZYHYIYJUXOUXEUXFUWNVMZUXHUAUXOUYFG
        UWNUXGUXEUXFUWNXOZUYSTIGUXGULUXGXOZUUNZUXOEUYFUXAUWFVUAVUDXCZVUCUUOUXOU
        WOUAVWEAUWOUAYEUXNAUWOKUAUTUUPXAUXOUWNUYFUYFWQYKZUXEUYFVQZUYQVWEUWOVQVW
        JUXOUYFGUWNVWFUYSUUQUURVWIVUCUYFUYFUXEUXFUWNUUSUUTYJYIVUTUVAXTZUXOUXPUX
        IVRUXQUXJUVOUXOVGUXDVGWIZUXPVIZYLVGUXDVWMUXIVIZYLUXPUXIUXOVGUXDVWNVWOUX
        OVWMUXDVQZWPZCENCWIZUXAUXCVMZVWMNWIZUXAVWRVVRVMVIVIZYLZYLCEVWRVWOVIZYLZ
        VWNVWOVWQCEVXBVXCVWQVWREVQZWPZVXBNVWRUXEVHVIZVIZVWTVXCVIZYLVXCVXFNVWSVX
        AVXHVXIVXFVXHVWSVXFEFUXCUXAUCVWRUFUGVWQVVEVXEUXOVVEVWPVVHXAZXAZVWQUXLVX
        EUXOUXLVWPVUDXAZXAZVVIVWQVXEYMZYGUVBVXFVWTVWSVQZWPZVXAVWMVWTVWRUXAVKUXB
        FUVFVIZVMVMVXIVXPEFVXQVWTVWMUXCVWRUXBUCUXAUFUGVXFVVEVXOVXKXAZUXOUXMVWPV
        XEVXOVUBUVCZVVIVXFUXLVXOVXMXAZVXQXOZVXFVXEVXOVXNXAZVXFVXOYMZUXOVWPVXEVX
        OUVDZUVEVXPEFVXQVWMVWTUXCVWRUXAUCUXBUFUGVXRVXTVVIVXSVYAVYBVYDVYCUVGYPUV
        HVXFNVXHVWRVVBVIZVXCVXFVXCVXHVYEIWJVIZVMVQVXHVYEVXCWRVXFVWOETIVXGUXEVJV
        IZVYFVVBVVRUXGVWRVWGVWQVWOVXGVYGVKVVBVVRVKUXGVMVQVXEVWQVWOTIUXEUXFUXGVW
        GUXOUXDUXHVWMUXIUXOEFGUWFUWGUXCUXGUXAUXBUGVVIVWHAUWTUXNUXKXAVUDVUBUVIZY
        NUVJZXAVUSVYFXOZVXNUVKVXFIKVXCVYFWAVXHVYEUJUXOVVGVWPVXEAVVGUXNUWQXAYOVY
        JVXFVXHVVQKVWQEVVQVWRVXGVWQEVVQTIVXGVYGVUSVVSVWQVVTVWKVXGVYGUYFWMVWAVWQ
        EUYFUXAUWFAUYRUXNVWPUYTYOVXLXCUXEUYFWOWHWTYNUXOVWCVWPVXEVWDYOZYHVXFVYEV
        VQKVWQEVVQVWRVVBUXOEVVQVVBWRVWPVWBXAYNVYKYHUVLXTYQYPYRVWQBCDVWMEFGHIJKL
        MNOUXFPSTUAUBUXAUCUDUFUGUHUIUJUKULUMUNUOUPVXJUXOVVKVWPVVLXAUXOVVMVWPVVN
        XAUXOVVOVWPVVPXAUXOUYQVWPVUCXAVXLVCUXOVWMVVCVQVWPUXOVVCUXDVWMVVJUVMUVPU
        VNVWQVWOEYKVWOVXDVRVWQVWOETIVXGVYGVVBVVRUXGVWGVYIVUSUVQCEVWOUVRYSYTYRUX
        OVGUXDUXHUXPUXOUXQUXDUXHUXPWRVWLUXDUXHUXPUWEXLYQUXOVGUXDUXHUXIVYHYQYTUX
        DUXHUXPUXIUVSXLXTUVTVDVEEFGUWFUWGUXCUXGUGVVIVWHUWAUWBUWFUWGUWIUWCYSUWD
        $.
    $}

    yoneda.i $e |- I = ( Iso ` R ) $.
    $( The Yoneda Lemma.  There is a natural isomorphism between the functors
       ` Z ` and ` E ` , where ` Z ( F , X ) ` is the natural transformations
       from ` Yon ( X ) = Hom ( - , X ) ` to ` F ` , and
       ` E ( F , X ) = F ( X ) ` is the evaluation functor.  Here we need two
       universes to state the claim: the smaller universe ` U ` is used for
       forming the functor category
       ` Q = C ` <HTML><sup>op</sup></HTML> ` -> SetCat ( U ) ` , which itself
       does not (necessarily) live in ` U ` but instead is an element of the
       larger universe ` V ` . (If ` U ` is a Grothendieck universe, then it
       will be closed under this "presheaf" operation, and so we can set
       ` U = V ` in this case.)
       (Contributed by Mario Carneiro, 29-Jan-2017.) $)
    yoneda $p |- ( ph -> M e. ( Z I E ) ) $=
      ( vu vy vg cxpc co cfunc cv c1st cfv chom c2nd cmpt cinv fucbas eqid ccat
      cmpt2 wcel yonedalem1 simpld funcrcl syl simprd fuccat yonedainv inviso1
      wa ) AEPVBVCZHVDVCZFOKBPGVDVCCUSBVEZKVEZVFVGVGUTCVAUTVEZWHDVHVGVCUSVEVAVE
      WHWJWIVIVGVCVGVGVJVJVJVOZNFVKVGZTLWFHFUJVLWLVMZAWFHFUJAWFVNVPZHVNVPZATWGV
      PZWNWOWEAWPLWGVPZACDEFGHIJLMPQRSTUBUCUDUEUFUGUHUIUJUKULUMUNUOUPVQZVRZWFHT
      VSVTZVRAWNWOWTWAWBWSAWPWQWRWAURABUTUSCDEFGHIJKVALMWLOWKPQRSTUAUBUCUDUEUFU
      GUHUIUJUKULUMUNUOUPUQWMWKVMWCWD $.
  $}

  ${
    $d a f g u x y C $.  $d a f g u x y O $.  $d a f g u x y ph $.
    $d a f g u x y Q $.  $d a f g u x y S $.  $d a f g u x y Y $.
    $d f g u y U $.
    yonffth.y $e |- Y = ( Yon ` C ) $.
    yonffth.o $e |- O = ( oppCat ` C ) $.
    yonffth.s $e |- S = ( SetCat ` U ) $.
    yonffth.q $e |- Q = ( O FuncCat S ) $.
    yonffth.c $e |- ( ph -> C e. Cat ) $.
    yonffth.u $e |- ( ph -> U e. V ) $.
    yonffth.h $e |- ( ph -> ran ( Homf ` C ) C_ U ) $.
    $( The Yoneda Lemma.  The Yoneda embedding, the curried Hom functor, is
       full and faithful, and hence is a representation of the category ` C `
       as a full subcategory of the category ` Q ` of presheaves on ` C ` .
       (Contributed by Mario Carneiro, 29-Jan-2017.) $)
    yonffth $p |- ( ph -> Y e. ( ( C Full Q ) i^i ( C Faith Q ) ) ) $=
      ( vx cfv co cv eqid vy vu vf vg va cbs cxpc chomf crn cun csetc cfuc ccid
      cevlf chof cinv cfunc c1st cnat cmpt cmpt2 chom cvv ctpos cop c2ndf ccofu
      c2nd c1stf cprf wcel fvex rnex unexg sylancr wss ssid a1i yonffthlem ) AP
      UAUBBUFQZBCCFUGRCUHQZUIZEUJZUKQZULRZDWDEBUMQZUCUDFDUNRZCUOQZWEUPQZUCPFDUQ
      RZVTUEPSZHURQZQUCSZFDUSRRWKWFQWKUESQQUTVAZUCPWJVTUBWKWMURQQUAVTUDUASZWKBV
      BQRUBSUDSWKWOWMVHQRQQUTUTUTVAZFWCVCHWHWLHVHQVDVECFVFRVGRCFVIRVJRVGRZUEIVT
      TWFTJKWDTLWHTWETWGTWQTMAWBVCVKEGVKWCVCVKWACUHVLVMNWBEVCGVNVOOWCWCVPAWCVQV
      RWNTWITWPTVS $.
  $}

  ${
    $d x y C $.  $d y F $.  $d x y ph $.  $d x y Y $.
    yoniso.y $e |- Y = ( Yon ` C ) $.
    yoniso.o $e |- O = ( oppCat ` C ) $.
    yoniso.s $e |- S = ( SetCat ` U ) $.
    yoniso.d $e |- D = ( CatCat ` V ) $.
    yoniso.b $e |- B = ( Base ` D ) $.
    yoniso.i $e |- I = ( Iso ` D ) $.
    yoniso.q $e |- Q = ( O FuncCat S ) $.
    yoniso.e $e |- E = ( Q |`s ran ( 1st ` Y ) ) $.
    yoniso.v $e |- ( ph -> V e. X ) $.
    yoniso.c $e |- ( ph -> C e. B ) $.
    yoniso.u $e |- ( ph -> U e. W ) $.
    yoniso.h $e |- ( ph -> ran ( Homf ` C ) C_ U ) $.
    yoniso.eb $e |- ( ph -> E e. B ) $.
    yoniso.1 $e |- ( ( ph /\ ( x e. ( Base ` C ) /\ y e. ( Base ` C ) ) ) ->
      ( F ` ( x ( Hom ` C ) y ) ) = y ) $.
    $( If the codomain is recoverable from a hom-set, then the Yoneda embedding
       is injective on objects, and hence is an isomorphism from ` C ` into a
       full subcategory of a presheaf category.  (Contributed by Mario
       Carneiro, 30-Jan-2017.) $)
    yoniso $p |- ( ph -> Y e. ( C I E ) ) $=
      ( co wcel cful cfth cin cbs cfv c1st wf1o c2nd cop wrel wceq relfunc ccat
      cfunc catcbas inss2 syl6eqss sseldd yoncl 1st2nd sylancr yonffth eqeltrrd
      wbr crn cvv eqid oppccat syl setccat fuccat fvex rnex a1i wfn wf 1st2ndbr
      fucbas funcf1 ffn dffn3 sylib ffthres2c df-br 3bitr3g mpbid eqeltrd cv wi
      wf1 weq wral wa fveq2 fveq1d fveq2d simpl eleq1 anbi2d id eqeq12d imbi12d
      jca chom adantr simprr simprl yon11 eqtrd chvarv sylan2 syl5ib ralrimivva
      dff13 sylanbrc f1f1orn wb wss frn ressbas2 f1oeq3 catciso mpbir2and ) AQE
      JLULUMQEJUNULEJUOULUPZUMEUQURZJUQURZQUSURZUTZAQYTQVAURZVBZYQAEGVGULZVCZQU
      UDUMZQUUCVDEGVEZAEGHIMOQRADVFEADNVFUPVFADFNPUAUBUFVHNVFVIVJUGVKZSTUDUHUIV
      LZQUUDVMVNZAUUCEGUNULEGUOULUPZUMZUUCYQUMZAQUUCUUKUUJAEGHIMOQRSTUDUUHUHUIV
      OVPAYTUUBUUKVQYTUUBYQVQUULUUMAYREGYTVRZJYTUUBVSYRVTZUEAMHGUDAEVFUMZMVFUMU
      UHEMSWAWBAIOUMHVFUMUHHIOTWCWBWDUUNVSUMAYTQUSWEWFWGAYTYRWHZYRUUNYTWIAYRMHV
      GULZYTWIZUUQAYRUUREGYTUUBUUOMHGUDWKZAUUEUUFYTUUBUUDVQUUGUUIQUUDWJVNWLZYRU
      URYTWMWBYRYTWNWOWPYTUUBUUKWQYTUUBYQWQWRWSWTAYRUUNYTUTZUUAAYRUURYTXCZUVBAU
      USBXAZYTURZCXAZYTURZVDZBCXDZXBZCYRXEBYRXEUVCUVAAUVJBCYRYRUVHUVDUVEUSURZUR
      ZKURZUVDUVGUSURZURZKURZVDAUVDYRUMZUVFYRUMZXFZXFZUVIUVHUVLUVOKUVHUVDUVKUVN
      UVEUVGUSXGXHXIUVTUVMUVDUVPUVFUVSAUVQUVQXFZUVMUVDVDZUVSUVQUVQUVQUVRXJZUWCX
      PUVTUVPUVFVDZXBAUWAXFZUWBXBCBCBXDZUVTUWEUWDUWBUWFUVSUWAAUWFUVRUVQUVQUVFUV
      DYRXKXLXLUWFUVPUVMUVFUVDUWFUVOUVLKUWFUVDUVNUVKUWFUVGUVEUSUVFUVDYTXGXIXHXI
      UWFXMXNXOUVTUVPUVDUVFEXQURZULZKURUVFUVTUVOUWHKUVTYREUWGUVFQUVDRUUOAUUPUVS
      UUHXRAUVQUVRXSUWGVTAUVQUVRXTYAXIUKYBZYCYDUWIXNYEYFBCYRUURYTYGYHYRUURYTYIW
      BAUUNYSVDZUVBUUAYJAUUNUURYKZUWJAUUSUWKUVAYRUURYTYLWBUUNUURJGUEUUTYMWBUUNY
      SYRYTYNWBWSADFYRYSNQLPEJUAUBUUOYSVTUFUGUJUCYOYP $.
  $}


$(
###############################################################################
  BASIC ORDER THEORY
###############################################################################
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Presets and directed sets using extensible structures
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  $c Preset Dirset $.

  $( Extend class notation with the class of all presets. $)
  cpreset $a class Preset $.

  $( Extend class notation with the class of all directed sets. $)
  cdrs $a class Dirset $.

  ${
    $d f b r x y z $.
    $( Define the class of preordered sets (presets).  A preset is a set
       equipped with a transitive and reflexive relation.

       Preorders are a natural generalization of order for sets where there is
       a well-defined ordering, but it in some sense "fails to capture the
       whole story", in that there may be pairs of elements which are
       indistinguishable under the order.  Two elements which are not equal but
       are less-or-equal to each other behave the same under all order
       operations and may be thought of as "tied".

       A preorder can naturally be strengthened by requiring that there are no
       ties, resulting in a partial order, or by stating that all comparable
       pairs of elements _are_ tied, resulting in an equivalence relation.
       Every preorder naturally factors into these two types; the tied relation
       on a preorder is an equivalence relation and the quotient under that
       relation is a partial order.  (Contributed by FL, 17-Nov-2014.)
       (Revised by Stefan O'Rear, 31-Jan-2015.) $)
    df-preset $a |- Preset = { f | [. ( Base ` f ) / b ].
          [. ( le ` f ) / r ].
                A. x e. b A. y e. b A. z e. b ( x r x
                 /\ ( ( x r y /\ y r z ) -> x r z ) ) } $.

    $( Define the class of directed sets.  A directed set is a nonempty
       preordered set where every pair of elements have some upper bound.  Note
       that it is not required that there exist a _least_ upper bound.

       There is no consensus in the literature over whether directed sets are
       allowed to be empty.  It is slightly more convenient for us if they are
       not.  (Contributed by Stefan O'Rear, 1-Feb-2015.) $)
    df-drs $a |- Dirset = { f e. Preset | [. ( Base ` f ) / b ].
        [. ( le ` f ) / r ]. ( b =/= (/) /\ A. x e. b A. y e. b E. z e. b
            ( x r z /\ y r z ) ) } $.
  $}

  ${
    $d K f b r x y z $.  $d B f b r x y z $.  $d .<_ f b r x y z $.
    $d X x y z $.  $d Y x y z $.  $d Z x y z $.
    isprs.b $e |- B = ( Base ` K ) $.
    isprs.l $e |- .<_ = ( le ` K ) $.
    $( Property of being a preordered set.  (Contributed by Stefan O'Rear,
       31-Jan-2015.) $)
    isprs $p |- ( K e. Preset <-> ( K e. _V /\ A. x e. B A. y e. B A. z e. B
          ( x .<_ x /\ ( ( x .<_ y /\ y .<_ z ) -> x .<_ z ) ) ) ) $=
      ( vr vb cv wbr wa wral cple cfv wsbc cbs wceq breq vf wi cpreset sbceqbid
      fveq2 sbceq1d wb eqtr3 mpan2 raleq raleqbi1dv syl anbi12d imbi12d ralbidv
      fvex 2ralbidv sylan9bb sbc2ie syl6bb df-preset elab4g ) AKZVCIKZLZVCBKZVD
      LZVFCKZVDLZMZVCVHVDLZUBZMZCJKZNZBVNNZAVNNZIUAKZOPZQZJVRRPZQZVCVCFLZVCVFFL
      ZVFVHFLZMZVCVHFLZUBZMZCDNZBDNADNZUAEUCVRESZWBVQIEOPZQZJERPZQWKWLVTWNJWAWO
      VRERUEWLVQIVSWMVREOUEUFUDVQWKJIWOWMERUPEOUPVNWOSZVQVMCDNZBDNZADNZVDWMSZWK
      WPVNDSZVQWSUGWPDWOSXAGVNDWOUHUIVPWRAVNDVOWQBVNDVMCVNDUJUKUKULWTVDFSZWSWKU
      GWTFWMSXBHVDFWMUHUIXBWQWJABDDXBVMWICDXBVEWCVLWHVCVCVDFTXBVJWFVKWGXBVGWDVI
      WEVCVFVDFTVFVHVDFTUMVCVHVDFTUNUMUOUQULURUSUTABCUAIJVAVB $.

    $( Lemma for ~ prsref and ~ prstr .  (Contributed by Mario Carneiro,
       1-Feb-2015.) $)
    prslem $p |- ( ( K e. Preset /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
        ( X .<_ X /\ ( ( X .<_ Y /\ Y .<_ Z ) -> X .<_ Z ) ) ) $=
      ( vx vy vz wcel cv wbr wa wi wral wceq breq1 breq2 cpreset w3a simprbi wb
      cvv isprs breq12 anidms anbi1d imbi12d anbi12d imbi1d anbi2d rspc3v mpan9
      ) BUALZIMZUQCNZUQJMZCNZUSKMZCNZOZUQVACNZPZOZKAQJAQIAQZDALEALFALUBDDCNZDEC
      NZEFCNZOZDFCNZPZOZUPBUELVGIJKABCGHUFUCVFVNVHDUSCNZVBOZDVACNZPZOVHVIEVACNZ
      OZVQPZOIJKDEFAAAUQDRZURVHVEVRWBURVHUDUQDUQDCUGUHWBVCVPVDVQWBUTVOVBUQDUSCS
      UIUQDVACSUJUKUSERZVRWAVHWCVPVTVQWCVOVIVBVSUSEDCTUSEVACSUKULUMVAFRZWAVMVHW
      DVTVKVQVLWDVSVJVIVAFECTUMVAFDCTUJUMUNUO $.

    $( Less-or-equal is reflexive in a preset.  (Contributed by Stefan O'Rear,
       1-Feb-2015.) $)
    prsref $p |- ( ( K e. Preset /\ X e. B ) -> X .<_ X ) $=
      ( cpreset wcel wa wbr wi w3a id 3jca prslem sylan2 simpld ) BGHZDAHZIDDCJ
      ZTTITKZSRSSSLTUAISSSSSMZUBUBNABCDDDEFOPQ $.

    $( Less-or-equal is transitive in a preset.  (Contributed by Stefan O'Rear,
       1-Feb-2015.) $)
    prstr $p |- ( ( K e. Preset /\ ( X e. B /\ Y e. B /\ Z e. B ) /\
          ( X .<_ Y /\ Y .<_ Z ) ) -> X .<_ Z ) $=
      ( cpreset wcel w3a wbr wa wi prslem simprd 3impia ) BIJZDAJEAJFAJKZDECLEF
      CLMZDFCLZRSMDDCLTUANABCDEFGHOPQ $.
  $}

  ${
    $d K f b r x y z $.  $d B f b r x y z $.  $d .<_ f b r x y z $.
    $d X x y z $.  $d Y x y z $.
    isdrs.b $e |- B = ( Base ` K ) $.
    isdrs.l $e |- .<_ = ( le ` K ) $.
    $( Property of being a directed set.  (Contributed by Stefan O'Rear,
       1-Feb-2015.) $)
    isdrs $p |- ( K e. Dirset <-> ( K e. Preset /\ B =/= (/) /\
          A. x e. B A. y e. B E. z e. B ( x .<_ z /\ y .<_ z ) ) ) $=
      ( vb vr vf c0 cv wbr wa wral cple cfv wsbc cbs cdrs wcel cpreset wne wrex
      w3a wceq fveq2 syl6eqr sbceq1d sbceqbid cvv eqeltri wb neeq1 adantr rexeq
      fvex raleqbi1dv breq anbi12d rexbidv 2ralbidv sbc2ie syl6bb df-drs elrab2
      sylan9bb 3anass bitr4i ) EUAUBEUCUBZDLUDZAMZCMZFNZBMZVNFNZOZCDUEZBDPADPZO
      ZOVKVLVTUFIMZLUDZVMVNJMZNZVPVNWDNZOZCWBUEZBWBPZAWBPZOZJKMZQRZSZIWLTRZSZWA
      KEUCUAWLEUGZWPWKJFSZIDSWAWQWNWRIWODWQWOETRZDWLETUHGUIWQWKJWMFWQWMEQRZFWLE
      QUHHUIUJUKWKWAIJDFDWSULGETURUMFWTULHEQURUMWBDUGZWDFUGZOWCVLWJVTXAWCVLUNXB
      WBDLUOUPXAWJWGCDUEZBDPZADPXBVTWIXDAWBDWHXCBWBDWGCWBDUQUSUSXBXCVSABDDXBWGV
      RCDXBWEVOWFVQVMVNWDFUTVPVNWDFUTVAVBVCVHVAVDVEABCKJIVFVGVKVLVTVIVJ $.

    $( Direction of a directed set.  (Contributed by Stefan O'Rear,
       1-Feb-2015.) $)
    drsdir $p |- ( ( K e. Dirset /\ X e. B /\ Y e. B ) ->
        E. z e. B ( X .<_ z /\ Y .<_ z ) ) $=
      ( vx vy cdrs wcel cv wbr wa wrex wral wceq breq1 rexbidv cpreset c0 isdrs
      wne simp3bi anbi1d anbi2d rspc2v syl5com 3impib ) CKLZEBLZFBLZEAMZDNZFUND
      NZOZABPZUKIMZUNDNZJMZUNDNZOZABPZJBQIBQZULUMOURUKCUALBUBUDVEIJABCDGHUCUEVD
      URUOVBOZABPIJEFBBUSERZVCVFABVGUTUOVBUSEUNDSUFTVAFRZVFUQABVHVBUPUOVAFUNDSU
      GTUHUIUJ $.
  $}

  ${
    $d K x y z $.  $d B x y z $.

    $( A directed set is a preset.  (Contributed by Stefan O'Rear,
       1-Feb-2015.) $)
    drsprs $p |- ( K e. Dirset -> K e. Preset ) $=
      ( vx vz vy cdrs wcel cpreset cbs cfv c0 wne cv cple wbr wa wrex wral eqid
      isdrs simp1bi ) AEFAGFAHIZJKBLCLZAMIZNDLUBUCNOCUAPDUAQBUAQBDCUAAUCUARUCRS
      T $.

    drsbn0.b $e |- B = ( Base ` K ) $.
    $( The base of a directed set is not empty.  (Contributed by Stefan O'Rear,
       1-Feb-2015.) $)
    drsbn0 $p |- ( K e. Dirset -> B =/= (/) ) $=
      ( vx vz vy cdrs wcel cpreset c0 wne cv cple cfv wbr wrex wral eqid isdrs
      wa simp2bi ) BGHBIHAJKDLELZBMNZOFLUBUCOTEAPFAQDAQDFEABUCCUCRSUA $.

    drsdirfi.l $e |- .<_ = ( le ` K ) $.
    $d K a b c x y z $.  $d .<_ a b c x y z $.  $d B a b c x y z $.
    $d X a b c x y z $.
    $( Any _finite_ number of elements in a directed set have a common upper
       bound.  Here is where the nonemptiness constraint in ~ df-drs first
       comes into play; without it we would need an additional constraint that
       ` X ` not be empty.  (Contributed by Stefan O'Rear, 1-Feb-2015.) $)
    drsdirfi $p |- ( ( K e. Dirset /\ X C_ B /\ X e. Fin ) ->
        E. y e. B A. z e. X z .<_ y ) $=
      ( va wcel wss cv wbr wral wrex wa wi c0 wceq sseq1 vb vc cdrs cfn csn cun
      anbi2d raleq rexbidv imbi12d wne drsbn0 ral0 jctr eximi n0 df-rex 3imtr4i
      wex adantr ssun1 sstr anim2i breq2 ralbidv cbvrexv simplrr cpreset drsprs
      syl mpan ad5antr ad2antlr sselda simp-4r ad2antrr simpr simprrl syl132anc
      simprl prstr ralimdva adantlrr mpd simprrr vex breq1 ralsn sylibr syl2anc
      ralun simpll ssun2 snss drsdir syl3anc reximddv rexlimdvaa syl5bi embantd
      ex com12 a1i findcard2 3impia ) DUCJZFCKZFUDJZBLZALZEMZBFNZACOZXHXFXGPZXM
      XFILZCKZPZXKBXONZACOZQXFRCKZPZXKBRNZACOZQXFUALZCKZPZXKBYDNZACOZQZXFYDUBLZ
      UEZUFZCKZPZXKBYLNZACOZQZXNXMQIUAUBFXORSZXQYAXSYCYRXPXTXFXORCTUGYRXRYBACXK
      BXORUHUIUJXOYDSZXQYFXSYHYSXPYEXFXOYDCTUGYSXRYGACXKBXOYDUHUIUJXOYLSZXQYNXS
      YPYTXPYMXFXOYLCTUGYTXRYOACXKBXOYLUHUIUJXOFSZXQXNXSXMUUAXPXGXFXOFCTUGUUAXR
      XLACXKBXOFUHUIUJXFYCXTXFCRUKZYCCDGULXJCJZAUSUUCYBPZAUSUUBYCUUCUUDAUUCYBXK
      BUMUNUOACUPYBACUQURVJUTYIYQQYDUDJYNYIYPYNYFYHYPYMYEXFYDYLKYMYEYDYKVAYDYLC
      VBVKZVCYHXIXOEMZBYDNZICOYNYPYGUUGAICXJXOSXKUUFBYDXJXOXIEVDVEVFYNUUGYPICYN
      XOCJZUUGPZPZXOXJEMZYJXJEMZPZYOACUUJUUCUUMPZPZYGXKBYKNZYOUUOUUGYGYNUUHUUGU
      UNVGYNUUHUUNUUGYGQUUGYNUUHPZUUNPZUUFXKBYDUURXIYDJZPZUUFXKUUTUUFPDVHJZXICJ
      ZUUHUUCUUFUUKXKXFUVAYMUUHUUNUUSUUFDVIVLUUTUVBUUFUURYDCXIUUQYEUUNYMYEXFUUH
      UUEVMUTVNUTYNUUHUUNUUSUUFVOUURUUCUUSUUFUUQUUCUUMVTVPUUTUUFVQUURUUKUUSUUFU
      UQUUCUUKUULVRVPCDEXIXOXJGHWAVSXAWBWCWDUUOUULUUPUUJUUCUUKUULWEXKUULBYJUBWF
      ZXIYJXJEWGWHWIXKBYDYKWKWJUUJXFUUHYJCJZUUMACOXFYMUUIWLYNUUHUUGVTYMUVDXFUUI
      YMYKCKZUVDYKYLKYMUVEYKYDWMYKYLCVBVKYJCUVCWNWIVMACDEXOYJGHWOWPWQWRWSWTXBXC
      XDXBXE $.

    $( Directed sets may be defined in terms of finite subsets.  Again, without
       nonemptiness we would need to restrict to nonempty subsets here.
       (Contributed by Stefan O'Rear, 1-Feb-2015.) $)
    isdrs2 $p |- ( K e. Dirset <-> ( K e. Preset /\
          A. x e. ( ~P B i^i Fin ) E. y e. B A. z e. x z .<_ y ) ) $=
      ( va vb wcel cv wbr wral wrex cfn wa simpl adantl c0 cdrs cpreset cpw cin
      drsprs wss inss1 sseli elpwid inss2 drsdirfi syl3anc ralrimiva jca wne wi
      0elpw 0fin elin mpbir2an wceq raleq rexbidv rspcv ax-mp rexn0 syl prelpwi
      cpr prfi a1i elind simplr rspcva syl2anc vex breq1 ralpr sylib ralrimivva
      rexbii isdrs syl3anbrc impbii ) EUAKZEUBKZCLZBLZFMZCALZNZBDOZADUCZPUDZNZQ
      ZWEWFWOEUEWEWLAWNWEWJWNKZQWEWJDUFZWJPKZWLWEWQRWQWRWEWQWJDWNWMWJWMPUGUHUIS
      WQWSWEWNPWJWMPUJUHSBCDEFWJGHUKULUMUNWPWFDTUOZILZWHFMZJLZWHFMZQZBDOZJDNIDN
      WEWFWORWOWTWFWOWICTNZBDOZWTTWNKZWOXHUPXITWMKTPKDUQURTWMPUSUTWLXHATWNWJTVA
      WKXGBDWICWJTVBVCVDVEXGBDVFVGSWPXFIJDDWPXADKXCDKQZQZWICXAXCVIZNZBDOZXFXKXL
      WNKZWOXNXJXOWPXJWMPXLXAXCDVHXLPKXJXAXCVJVKVLSWFWOXJVMWLXNAXLWNWJXLVAWKXMB
      DWICWJXLVBVCVNVOXMXEBDWIXBXDCXAXCIVPJVPWGXAWHFVQWGXCWHFVQVRWAVSVTIJBDEFGH
      WBWCWD $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Posets and lattices using extensible structures
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Posets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Poset $.
  $c lt $.
  $c lub $.
  $c glb $.
  $c join $.
  $c meet $.

  $( Extend class notation with the class of posets. $)
  cpo $a class Poset $.

  $( Extend class notation with less-than for posets. $)
  cplt $a class lt $.

  $( Extend class notation with poset least upper bound. $)
  club $a class lub $.

  $( Extend class notation with poset greatest lower bound. $)
  cglb $a class glb $.

  $( Extend class notation with poset join. $)
  cjn $a class join $.

  $( Extend class notation with poset meet. $)
  cmee $a class meet $.

  ${
    $d f b r x y z $.
    $( Define the class of partially ordered sets (posets).  A poset is a set
       equipped with a partial order, that is, a binary relation which is
       reflexive, antisymmetric, and transitive.  Unlike a total order, in a
       partial order there may be pairs of elements where neither precedes the
       other.  Definition of poset in [Crawley] p. 1.  Note that
       Crawley-Dilworth require that a poset base set be nonempty, but we
       follow the convention of most authors who don't make this a requirement.

       In our formalism of extensible structures, the base set of a poset ` f `
       is denoted by ` ( Base `` f ) ` and its partial order by ` ( le `` f ) `
       (for "less than or equal to").  The quantifiers ` E. b E. r ` provide a
       notational shorthand to allow us to refer to the base and ordering
       relation as ` b ` and ` r ` in the definition rather than having to
       repeat ` ( Base `` f ) ` and ` ( le `` f ) ` throughout.  These
       quantifiers can be eliminated with ~ ceqsex2v and related theorems.
       (Contributed by NM, 18-Oct-2012.) $)
    df-poset $a |- Poset = { f | E. b E. r
              ( b = ( Base ` f )
               /\ r = ( le ` f )
               /\ A. x e. b A. y e. b A. z e. b ( x r x
                 /\ ( ( x r y /\ y r x ) -> x = y )
                 /\ ( ( x r y /\ y r z ) -> x r z ) ) ) } $.
  $}

  ${
    $d b p r x y z B $.  $d b p r K $.  $d b p r x y z .<_ $.
    ispos.b $e |- B = ( Base ` K ) $.
    ispos.l $e |- .<_ = ( le ` K ) $.
    $( The predicate "is a poset."  (Contributed by NM, 18-Oct-2012.)  (Revised
       by Mario Carneiro, 4-Nov-2013.) $)
    ispos $p |- ( K e. Poset <-> ( K e. _V
            /\ A. x e. B A. y e. B A. z e. B ( x .<_ x
                 /\ ( ( x .<_ y /\ y .<_ x ) -> x = y )
                 /\ ( ( x .<_ y /\ y .<_ z ) -> x .<_ z ) ) ) ) $=
      ( vb vr cv wceq wbr wa wi w3a wral wex cbs breq vp cpo wcel cvv cfv fveq2
      cple syl6eqr eqeq2d 3anbi12d 2exbidv elab4g fvex eqeltri raleq raleqbi1dv
      df-poset anbi12d imbi1d imbi12d 3anbi123d ralbidv 2ralbidv ceqsex2v bitri
      anbi2i ) EUBUCEUDUCZIKZDLZJKZFLZAKZVLVJMZVLBKZVJMZVNVLVJMZNZVLVNLZOZVOVNC
      KZVJMZNZVLVTVJMZOZPZCVHQZBVHQZAVHQZPZJRIRZNVGVLVLFMZVLVNFMZVNVLFMZNZVROZW
      LVNVTFMZNZVLVTFMZOZPZCDQZBDQADQZNVHUAKZSUEZLZVJXCUGUEZLZWHPZJRIRWJUAEUBXC
      ELZXHWIIJXIXEVIXGVKWHXIXDDVHXIXDESUEZDXCESUFGUHUIXIXFFVJXIXFEUGUEZFXCEUGU
      FHUHUIUJUKABCUAJIUQULWJXBVGWHWECDQZBDQZADQXBIJDFDXJUDGESUMUNFXKUDHEUGUMUN
      WGXMAVHDWFXLBVHDWECVHDUOUPUPVKXLXAABDDVKWEWTCDVKVMWKVSWOWDWSVLVLVJFTVKVQW
      NVRVKVOWLVPWMVLVNVJFTZVNVLVJFTURUSVKWBWQWCWRVKVOWLWAWPXNVNVTVJFTURVLVTVJF
      TUTVAVBVCVDVFVE $.
  $}

  ${
    $d K x y z $.  $d B x y z $.  $d .<_ x y z $.
    ispos2.b $e |- B = ( Base ` K ) $.
    ispos2.l $e |- .<_ = ( le ` K ) $.
    $( A poset is an antisymmetric preset.

       _EDITORIAL_: could become the definition of poset.  (Contributed by
       Stefan O'Rear, 1-Feb-2015.) $)
    ispos2 $p |- ( K e. Poset <-> ( K e. Preset /\ A. x e. B A. y e. B
          ( ( x .<_ y /\ y .<_ x ) -> x = y ) ) ) $=
      ( vz cvv wcel cv wbr wa weq wi w3a wral ralbii bitri anbi2i cpreset ispos
      cpo 3anan32 r19.26 2ralbii r19.26-2 rr19.3v isprs anbi1i anass 3bitr4i )
      DIJZAKZUNELZUNBKZELZUPUNELMABNOZUQUPHKZELMUNUSELOZPZHCQZBCQACQZMUMUOUTMZH
      CQZBCQACQZURBCQZACQZMZMZDUCJDUAJZVHMZVCVIUMVCVEURHCQZMZBCQACQZVIVBVNABCCV
      BVDURMZHCQVNVAVPHCUOURUTUDRVDURHCUESUFVOVFVMBCQZACQZMVIVEVMABCCUGVRVHVFVQ
      VGACURBHCUHRTSSTABHCDEFGUBVLUMVFMZVHMVJVKVSVHABHCDEFGUIUJUMVFVHUKSUL $.
  $}

  ${
    $d K x y $.
    $( A poset is a preset.  (Contributed by Stefan O'Rear, 1-Feb-2015.) $)
    posprs $p |- ( K e. Poset -> K e. Preset ) $=
      ( vx vy cpo wcel cpreset cv cple cfv wbr weq cbs wral eqid ispos2 simplbi
      wa wi ) ADEAFEBGZCGZAHIZJTSUAJQBCKRCALIZMBUBMBCUBAUAUBNUANOP $.
  $}

  ${
    $d x y z B $.  $d x y z .<_ $.  $d x y z X $.  $d y z Y $.  $d z Z $.
    posi.b $e |- B = ( Base ` K ) $.
    posi.l $e |- .<_ = ( le ` K ) $.
    $( Lemma for poset properties.  (Contributed by NM, 11-Sep-2011.) $)
    posi $p |- ( ( K e. Poset /\ ( X e. B /\ Y e. B /\ Z e. B ) )
                -> ( X .<_ X
                 /\ ( ( X .<_ Y /\ Y .<_ X ) -> X = Y )
                 /\ ( ( X .<_ Y /\ Y .<_ Z ) -> X .<_ Z ) ) ) $=
      ( vx vy vz wcel wbr wa wceq wi w3a breq1 breq2 imbi12d cpo wral cvv ispos
      simprbi bitrd anbi12d eqeq1 anbi1d 3anbi123d eqeq2 imbi1d 3anbi23d anbi2d
      cv 3anbi3d rspc3v mpan9 ) BUALZIUOZUTCMZUTJUOZCMZVBUTCMZNZUTVBOZPZVCVBKUO
      ZCMZNZUTVHCMZPZQZKAUBJAUBIAUBZDALEALFALQDDCMZDECMZEDCMZNZDEOZPZVPEFCMZNZD
      FCMZPZQZUSBUCLVNIJKABCGHUDUEVMWEVODVBCMZVBDCMZNZDVBOZPZWFVINZDVHCMZPZQVOV
      TVPEVHCMZNZWLPZQIJKDEFAAAUTDOZVAVOVGWJVLWMWQVADUTCMVOUTDUTCRUTDDCSUFWQVEW
      HVFWIWQVCWFVDWGUTDVBCRZUTDVBCSUGUTDVBUHTWQVJWKVKWLWQVCWFVIWRUIUTDVHCRTUJV
      BEOZWJVTWMWPVOWSWHVRWIVSWSWFVPWGVQVBEDCSZVBEDCRUGVBEDUKTWSWKWOWLWSWFVPVIW
      NWTVBEVHCRUGULUMVHFOZWPWDVOVTXAWOWBWLWCXAWNWAVPVHFECSUNVHFDCSTUPUQUR $.

    $( A poset ordering is reflexive.  (Contributed by NM, 11-Sep-2011.)
       (Proof shortened by OpenAI, 25-Mar-2020.) $)
    posref $p |- ( ( K e. Poset /\ X e. B ) -> X .<_ X ) $=
      ( cpo wcel cpreset wbr posprs prsref sylan ) BGHBIHDAHDDCJBKABCDEFLM $.

    $( A poset ordering is asymmetric.  (Contributed by NM, 21-Oct-2011.) $)
    posasymb $p |- ( ( K e. Poset /\ X e. B /\ Y e. B )
                -> ( ( X .<_ Y /\ Y .<_ X ) <-> X = Y ) ) $=
      ( cpo wcel w3a wbr wa wceq wi simp1 simp2 simp3 posi syl13anc syl5ibcom
      simp2d posref breq2 breq1 jcad 3adant3 impbid ) BHIZDAIZEAIZJZDECKZEDCKZL
      ZDEMZUKDDCKZUNUONZULEECKLULNZUKUHUIUJUJUPUQURJUHUIUJOUHUIUJPUHUIUJQZUSABC
      DEEFGRSUAUHUIUOUNNUJUHUILZUOULUMUTUPUOULABCDFGUBZDEDCUCTUTUPUOUMVADEDCUDT
      UEUFUG $.

    $( A poset ordering is transitive.  (Contributed by NM, 11-Sep-2011.) $)
    postr $p |- ( ( K e. Poset /\ ( X e. B /\ Y e. B /\ Z e. B ) )
                -> ( ( X .<_ Y /\ Y .<_ Z ) -> X .<_ Z ) ) $=
      ( cpo wcel w3a wa wbr wceq wi posi simp3d ) BIJDAJEAJFAJKLDDCMDECMZEDCMLD
      ENOREFCMLDFCMOABCDEFGHPQ $.
  $}

  ${
    $d a b c $.
    $( Technical lemma to simplify the statement of ~ ipopos .  The empty set
       is (rather pathologically) a poset under our definitions, since it has
       an empty base set ( ~ str0 ) and any relation partially orders an empty
       set.  (Contributed by Stefan O'Rear, 30-Jan-2015.) $)
    0pos $p |- (/) e. Poset $=
      ( va vb vc c0 cpo wcel cvv cv wbr wa weq w3a wral 0ex ral0 base0 cple cc0
      wi c1 cdc df-ple str0 ispos mpbir2an ) DEFDGFAHZUFDIUFBHZDIZUGUFDIJABKSUH
      UGCHZDIJUFUIDISLCDMBDMZADMNUJAOABCDDDPQTRUAUBUCUDUE $.
  $}

  ${
    $d x y z B $.  $d x y z K $.  $d x y z ph $.
    isposd.k $e |- ( ph -> K e. _V ) $.
    isposd.b $e |- ( ph -> B = ( Base ` K ) ) $.
    isposd.l $e |- ( ph -> .<_ = ( le ` K ) ) $.
    isposd.1 $e |- ( ( ph /\ x e. B ) -> x .<_ x ) $.
    isposd.2 $e |- ( ( ph /\ x e. B /\ y e. B ) ->
                   ( ( x .<_ y /\ y .<_ x ) -> x = y ) ) $.
    isposd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B /\ z e. B ) ) ->
                   ( ( x .<_ y /\ y .<_ z ) -> x .<_ z ) ) $.
    $( Properties that determine a poset (implicit structure version).
       (Contributed by Mario Carneiro, 29-Apr-2014.) $)
    isposd $p |- ( ph -> K e. Poset ) $=
      ( wcel cv wbr wa wi wral breqd cvv cple cfv weq w3a cbs cpo adantrr 3expb
      adantr 3exp2 3jca ralrimiva ralrimivva anbi12d imbi1d 3anbi123d raleqbidv
      imp42 imbi12d anbi2d mpbi2and eqid ispos sylibr ) AFUANZBOZVGFUBUCZPZVGCO
      ZVHPZVJVGVHPZQZBCUDZRZVKVJDOZVHPZQZVGVPVHPZRZUEZDFUFUCZSZCWBSZBWBSZQZFUGN
      AVFVGVGGPZVGVJGPZVJVGGPZQZVNRZWHVJVPGPZQZVGVPGPZRZUEZDESZCESZBESZWFHAWQBC
      EEAVGENZVJENZQQZWPDEXBVPENZQWGWKWOXBWGXCAWTWGXAKUHUJXBWKXCAWTXAWKLUIUJAWT
      XAXCWOAWTXAXCWOMUKUSULUMUNAWSWEVFAWRWDBEWBIAWQWCCEWBIAWPWADEWBIAWGVIWKVOW
      OVTAGVHVGVGJTAWJVMVNAWHVKWIVLAGVHVGVJJTZAGVHVJVGJTUOUPAWMVRWNVSAWHVKWLVQX
      DAGVHVJVPJTUOAGVHVGVPJTUTUQURURURVAVBBCDWBFVHWBVCVHVCVDVE $.
  $}

  ${
    $d x y z B $.  $d x y z .<_ $.
    isposi.k $e |- K e. _V $.
    isposi.b $e |- B = ( Base ` K ) $.
    isposi.l $e |- .<_ = ( le ` K ) $.
    isposi.1 $e |- ( x e. B -> x .<_ x ) $.
    isposi.2 $e |- ( ( x e. B /\ y e. B ) ->
                   ( ( x .<_ y /\ y .<_ x ) -> x = y ) ) $.
    isposi.3 $e |- ( ( x e. B /\ y e. B /\ z e. B ) ->
                   ( ( x .<_ y /\ y .<_ z ) -> x .<_ z ) ) $.
    $( Properties that determine a poset (implicit structure version).
       (Contributed by NM, 11-Sep-2011.) $)
    isposi $p |- K e. Poset $=
      ( cpo wcel cv wbr wa wi w3a wral cvv 3ad2ant1 3adant3 3jca rgen3 mpbir2an
      weq ispos ) EMNEUANAOZUIFPZUIBOZFPZUKUIFPQABUGRZULUKCOZFPQUIUNFPRZSZCDTBD
      TADTGUPABCDDDUIDNZUKDNZUNDNZSUJUMUOUQURUJUSJUBUQURUMUSKUCLUDUEABCDEFHIUHU
      F $.
  $}

  ${
    $d x y z B $.  $d x y z .<_ $.
    isposix.a $e |- B e. _V $.
    isposix.b $e |- .<_ e. _V $.
    isposix.k $e |- K = { <. ( Base ` ndx ) , B >. ,
         <. ( le ` ndx ) , .<_ >. } $.
    isposix.1 $e |- ( x e. B -> x .<_ x ) $.
    isposix.2 $e |- ( ( x e. B /\ y e. B ) ->
                   ( ( x .<_ y /\ y .<_ x ) -> x = y ) ) $.
    isposix.3 $e |- ( ( x e. B /\ y e. B /\ z e. B ) ->
                   ( ( x .<_ y /\ y .<_ z ) -> x .<_ z ) ) $.
    $( Properties that determine a poset (explicit structure version).  Note
       that the numeric indices of the structure components are not mentioned
       explicitly in either the theorem or its proof.  (Contributed by NM,
       9-Nov-2012.) $)
    isposix $p |- K e. Poset $=
      ( cnx cbs cfv cop cple cvv wcel wceq cpr prex eqeltri c1 cc0 df-ple 1lt10
      cdc 10nn 2strbas ax-mp 2strop isposi ) ABCDEFEMNODPZMQOFPZUARIUNUOUBUCDRS
      DENOTGDFQEUDUEUHZRIUFUGUIUJUKFRSFEQOTHDFQEUPRIUFUGUIULUKJKLUM $.
  $}

  $( Define less-than ordering for posets and related structures.  Unlike
     ~ df-base and ~ df-ple , this is a derived component extractor and not an
     extensible structure component extractor that defines the poset.
     (Contributed by NM, 12-Oct-2011.)  (Revised by Mario Carneiro,
     8-Feb-2015.) $)
  df-plt $a |- lt = ( p e. _V |-> ( ( le ` p ) \ _I ) ) $.

  ${
    $d p K $.  $d p .<_ $.
    pltval.l $e |- .<_ = ( le ` K ) $.
    pltval.s $e |- .< = ( lt ` K ) $.
    $( Value of the less-than relation.  (Contributed by Mario Carneiro,
       8-Feb-2015.) $)
    pltfval $p |- ( K e. A -> .< = ( .<_ \ _I ) ) $=
      ( vp wcel cplt cfv cid cdif cvv wceq elex cv cple fveq2 syl6eqr difeq1d
      df-plt fvex eqeltri difexg ax-mp fvmpt syl syl5eq ) CAHZBCIJZDKLZFUICMHUJ
      UKNCAOGCGPZQJZKLUKMIULCNZUMDKUNUMCQJZDULCQRESTGUADMHUKMHDUOMECQUBUCDKMUDU
      EUFUGUH $.

    $( Less-than relation.  ( ~ df-pss analog.)  (Contributed by NM,
       12-Oct-2011.) $)
    pltval $p |- ( ( K e. A /\ X e. B /\ Y e. C )
        -> ( X .< Y <-> ( X .<_ Y /\ X =/= Y ) ) ) $=
      ( wcel wbr wne wa wb cid cdif pltfval breqd wn brdif adantl anbi2d syl5bb
      ideqg necon3bbid sylan9bb 3impb ) EAKZGBKZHCKZGHDLZGHFLZGHMZNZOUIULGHFPQZ
      LZUJUKNZUOUIDUPGHADEFIJRSUQUMGHPLZTZNURUOGHFPUAURUTUNUMUKUTUNOUJUKUSGHGHC
      UEUFUBUCUDUGUH $.

    $( Less-than implies less-than-or-equal.  ( ~ pssss analog.)  (Contributed
       by NM, 4-Dec-2011.) $)
    pltle $p |- ( ( K e. A /\ X e. B /\ Y e. C ) -> ( X .< Y -> X .<_ Y ) ) $=
      ( wcel w3a wbr wne pltval simprbda ex ) EAKGBKHCKLZGHDMZGHFMZRSTGHNABCDEF
      GHIJOPQ $.
  $}

  ${
    pltne.s $e |- .< = ( lt ` K ) $.
    $( Less-than relation.  ( ~ df-pss analog.)  (Contributed by NM,
       2-Dec-2011.) $)
    pltne $p |- ( ( K e. A /\ X e. B /\ Y e. C )
        -> ( X .< Y -> X =/= Y ) ) $=
      ( wcel w3a wbr wne cple cfv eqid pltval simplbda ex ) EAIFBIGCIJZFGDKZFGL
      ZSTFGEMNZKUAABCDEUBFGUBOHPQR $.

    $( The less-than relation is not reflexive.  ( ~ pssirr analog.)
       (Contributed by NM, 7-Feb-2012.) $)
    pltirr $p |- ( ( K e. A /\ X e. B ) -> -. X .< X ) $=
      ( wcel wa wceq wbr wn eqid wne wi pltne 3anidm23 necon2bd mpi ) DAGZEBGZH
      ZEEIEECJZKELUAUBEESTUBEEMNABBCDEEFOPQR $.
  $}

  ${
    pleval2.b $e |- B = ( Base ` K ) $.
    pleval2.l $e |- .<_ = ( le ` K ) $.
    pleval2.s $e |- .< = ( lt ` K ) $.
    $( One direction of ~ pleval2 .  (Contributed by Mario Carneiro,
       8-Feb-2015.) $)
    pleval2i $p |- ( ( X e. B /\ Y e. B ) ->
      ( X .<_ Y -> ( X .< Y \/ X = Y ) ) ) $=
      ( wcel wa wbr wceq wo wne cbs cdm wb cfv elfvdm eleq2s adantr pltval expr
      3expb mpancom biimpar necon1bd orrd ex ) EAJZFAJZKZEFDLZEFBLZEFMZNUMUNKZU
      OUPUQUOEFUMUNEFOZUOUMUOUNURKZCPQZJZUMUOUSRZUKVAULVAECPSAECPTGUAUBVAUKULVB
      UTAABCDEFHIUCUEUFUGUDUHUIUJ $.

    $( Less-than-or-equal in terms of less-than.  ( ~ sspss analog.)
       (Contributed by NM, 17-Oct-2011.)  (Revised by Mario Carneiro,
       8-Feb-2015.) $)
    pleval2 $p |- ( ( K e. Poset /\ X e. B /\ Y e. B )
        -> ( X .<_ Y <-> ( X .< Y \/ X = Y ) ) ) $=
      ( cpo wcel w3a wbr wceq wo wi pleval2i 3adant1 pltle posref 3adant3 breq2
      syl5ibcom jaod impbid ) CJKZEAKZFAKZLZEFDMZEFBMZEFNZOZUGUHUJUMPUFABCDEFGH
      IQRUIUKUJULJAABCDEFHISUIEEDMZULUJUFUGUNUHACDEGHTUAEFEDUBUCUDUE $.

    $( Less-than implies not inverse less-than-or-equal.  (Contributed by NM,
       18-Oct-2011.) $)
    pltnle $p |- ( ( ( K e. Poset /\ X e. B /\ Y e. B ) /\ X .< Y )
                    -> -. Y .<_ X ) $=
      ( cpo wcel w3a wbr wn wne wa pltval wceq posasymb biimpd expdimp necon3ad
      expimpd sylbid imp ) CJKEAKFAKLZEFBMZFEDMZNZUFUGEFDMZEFOZPUIJAABCDEFHIQUF
      UJUKUIUFUJPUHEFUFUJUHEFRZUFUJUHPULACDEFGHSTUAUBUCUDUE $.

    $( Alternate expression for less-than relation.  ( ~ dfpss3 analog.)
       (Contributed by NM, 4-Nov-2011.) $)
    pltval3 $p |- ( ( K e. Poset /\ X e. B /\ Y e. B )
        -> ( X .< Y <-> ( X .<_ Y /\ -. Y .<_ X ) ) ) $=
      ( cpo wcel w3a wbr wne wa wn pltval wceq wi posref breq1 syl5ibcom adantr
      3adant3 posasymb biimpd expdimp impbid necon3abid pm5.32da bitrd ) CJKZEA
      KZFAKZLZEFBMEFDMZEFNZOUPFEDMZPZOJAABCDEFHIQUOUPUQUSUOUPOZUREFUTEFRZURUOVA
      URSUPUOEEDMZVAURULUMVBUNACDEGHTUDEFEDUAUBUCUOUPURVAUOUPUROVAACDEFGHUEUFUG
      UHUIUJUK $.
  $}

  ${
    pltnlt.b $e |- B = ( Base ` K ) $.
    pltnlt.s $e |- .< = ( lt ` K ) $.
    $( The less-than relation implies the negation of its inverse.
       (Contributed by NM, 18-Oct-2011.) $)
    pltnlt $p |- ( ( ( K e. Poset /\ X e. B /\ Y e. B ) /\ X .< Y )
                  -> -. Y .< X ) $=
      ( cpo wcel w3a wbr wa cple cfv eqid pltnle wi pltle 3com23 adantr mtod )
      CHIZDAIZEAIZJZDEBKZLEDBKZEDCMNZKZABCUHDEFUHOZGPUEUGUIQZUFUBUDUCUKHAABCUHE
      DUJGRSTUA $.

    $( The less-than relation has no 2-cycle loops.  ( ~ pssn2lp analog.)
       (Contributed by NM, 2-Dec-2011.) $)
    pltn2lp $p |- ( ( K e. Poset /\ X e. B /\ Y e. B )
        -> -. ( X .< Y /\ Y .< X ) ) $=
      ( cpo wcel w3a wbr wn wi wa cple cfv eqid pltnle ex pltle 3com23 nsyld
      imnan sylib ) CHIZDAIZEAIZJZDEBKZEDBKZLMUIUJNLUHUIEDCOPZKZUJUHUIULLABCUKD
      EFUKQZGRSUEUGUFUJULMHAABCUKEDUMGTUAUBUIUJUCUD $.

    $( The less-than relation is transitive.  ( ~ psstr analog.)  (Contributed
       by NM, 2-Dec-2011.) $)
    plttr $p |- ( ( K e. Poset /\ ( X e. B /\ Y e. B /\ Z e. B ) )
        -> ( ( X .< Y /\ Y .< Z ) -> X .< Z ) ) $=
      ( cpo wcel w3a wa wbr cple cfv wne wi pltle 3adant3r3 wn eqid postr breq2
      3adant3r1 syl2and wceq pltn2lp anbi2d notbid syl5ibcom necon2ad wb pltval
      jcad 3adant3r2 sylibrd ) CIJZDAJZEAJZFAJZKLZDEBMZEFBMZLZDFCNOZMZDFPZLZDFB
      MZVAVDVFVGVAVBDEVEMZVCEFVEMZVFUQURUSVBVJQUTIAABCVEDEVEUAZHRSUQUSUTVCVKQUR
      IAABCVEEFVLHRUDACVEDEFGVLUBUEVAVDDFVAVBEDBMZLZTZDFUFZVDTUQURUSVOUTABCDEGH
      UGSVPVNVDVPVMVCVBDFEBUCUHUIUJUKUNUQURUTVIVHULUSIAABCVEDFVLHUMUOUP $.
  $}

  ${
    pltletr.b $e |- B = ( Base ` K ) $.
    pltletr.l $e |- .<_ = ( le ` K ) $.
    pltletr.s $e |- .< = ( lt ` K ) $.
    $( Transitive law for chained less-than and less-than-or-equal.
       ( ~ psssstr analog.)  (Contributed by NM, 2-Dec-2011.) $)
    pltletr $p |- ( ( K e. Poset /\ ( X e. B /\ Y e. B /\ Z e. B ) )
        -> ( ( X .< Y /\ Y .<_ Z ) -> X .< Z ) ) $=
      ( cpo wcel w3a wa wbr wceq wo wb pleval2 3adant3r1 plttr expdimp wi breq2
      adantr biimpcd adantl jaod sylbid expimpd ) CKLZEALZFALZGALZMNZEFBOZFGDOZ
      EGBOZUOUPNZUQFGBOZFGPZQZURUOUQVBRZUPUKUMUNVCULABCDFGHIJSTUEUSUTURVAUOUPUT
      URABCEFGHJUAUBUPVAURUCUOVAUPURFGEBUDUFUGUHUIUJ $.

    $( Transitive law for chained less-than-or-equal and less-than.
       ( ~ sspsstr analog.)  (Contributed by NM, 2-May-2012.) $)
    plelttr $p |- ( ( K e. Poset /\ ( X e. B /\ Y e. B /\ Z e. B ) )
        -> ( ( X .<_ Y /\ Y .< Z ) -> X .< Z ) ) $=
      ( cpo wcel w3a wa wbr wceq wo wi wb pleval2 3adant3r3 plttr breq1 biimprd
      expd a1i jaod sylbid impd ) CKLZEALZFALZGALZMNZEFDOZFGBOZEGBOZUNUOEFBOZEF
      PZQZUPUQRZUJUKULUOUTSUMABCDEFHIJTUAUNURVAUSUNURUPUQABCEFGHJUBUEUSVARUNUSU
      QUPEFGBUCUDUFUGUHUI $.
  $}

  ${
    $d x y z .< $.  $d x y z .<_ $.  $d x y z B $.  $d x y z K $.
    $d x y z V $.
    pospo.b $e |- B = ( Base ` K ) $.
    pospo.l $e |- .<_ = ( le ` K ) $.
    pospo.s $e |- .< = ( lt ` K ) $.
    $( Write a poset structure in terms of the proper-class poset predicate
       (strict less than version).  (Contributed by Mario Carneiro,
       8-Feb-2015.) $)
    pospo $p |- ( K e. V ->
      ( K e. Poset <-> ( .< Po B /\ ( _I |` B ) C_ .<_ ) ) ) $=
      ( vx vy vz wcel wa cv a1i wceq wbr syl2anc wo wi cpo wpo cid pltirr plttr
      cres wss ispod wrel relres cop copab opabresid eleq2i opabid bitr3i df-br
      posref breq2 syl5bbr syl5ibrcom expimpd syl5bi relssdv jca cvv adantr cbs
      elex cfv cple equid wb simpr resieq mpbiri simplrr ssbrd mpd w3a pleval2i
      3adant1 ancoms wn simprl po2nr 3impb syl3an1 pm2.21d simpl eqcomd syl2and
      ccased simpr1 simpr2 simpr3 potr sylan simpll pltle syl3anc breq1 biimpar
      syld syl5 biimpac syldan eqtr breq2d syl5ibcom isposd ex impbid2 ) CELZCU
      ALZABUBZUCAUFZDUGZMZXOXPXRXOIJKABUAABCINZHUDABCXTJNZKNZFHUEUHXOIJXQDXQUIX
      OUCAUJOXTYAUKZXQLZXTALZYAXTPZMZXOYCDLZYDYCYGIJULZLYGYIXQYCIJAUMUNYGIJUOUP
      XOYEYFYHXOYEMYHYFXTXTDQZACDXTFGURYHXTYADQZYFYJXTYADUQYAXTXTDUSUTVAVBVCVDV
      EXNXSXOXNXSMZIJKACDXNCVFLXSCEVIVGACVHVJPYLFODCVKVJPYLGOYLYEMZXTXTXQQZYJYM
      YNXTXTPZIVLYMYEYEYNYOVMYLYEVNZYPAXTXTVORVPYMXQDXTXTXNXPXRYEVQVRVSZYLYEYAA
      LZVTZYKXTYABQZXTYAPZSZYAXTDQZYAXTBQZYFSZUUAYEYRYKUUBTZYLABCDXTYAFGHWAZWBY
      EYRUUCUUETZYLYRYEUUHABCDYAXTFGHWAWCWBYSYTUUDUUAYFUUAYSYTUUDMZUUAYLXPYEYRU
      UIWDZXNXPXRWEZXPYEYRUUJAXTYABWFWGWHWIUUAUUDMUUATYSUUAUUDWJOYTYFMZUUATYSUU
      LYAXTYTYFVNWKOUUAYFMUUATYSUUAYFWJOWMWLYLYEYRYBALZVTZMZYKUUBYAYBDQZYAYBBQZ
      YAYBPZSZXTYBDQZUUOYEYRUUFYLYEYRUUMWNZYLYEYRUUMWOZUUGRUUOYRUUMUUPUUSTUVBYL
      YEYRUUMWPZABCDYAYBFGHWARUUOYTUUQUUAUURUUTUUOYTUUQMZXTYBBQZUUTYLXPUUNUVDUV
      ETUUKAXTYAYBBWQWRUUOXNYEUUMUVEUUTTXNXSUUNWSUVAUVCEAABCDXTYBGHWTXAZXDUUAUU
      QMUVEUUOUUTUUAUVEUUQXTYAYBBXBXCUVFXEYTUURMUVEUUOUUTUURYTUVEYAYBXTBUSXFUVF
      XEUUOYJUUAUURMZUUTYLUUNYEYJUVAYQXGUVGXTYBXTDXTYAYBXHXIXJWMWLXKXLXM $.
  $}

  ${
    $d p s x y z $.
    $( Define the least upper bound (LUB) of a set of (poset) elements.  The
       domain is restricted to exclude sets ` s ` for which the LUB doesn't
       exist uniquely.  (Contributed by NM, 12-Sep-2011.)  (Revised by NM,
       6-Sep-2018.) $)
    df-lub $a |- lub = ( p e. _V |-> ( ( s e. ~P ( Base ` p )
        |-> ( iota_ x e. ( Base ` p ) ( A. y e. s y ( le ` p ) x
                /\ A. z e. ( Base ` p )
                  ( A. y e. s y ( le ` p ) z -> x ( le ` p ) z ) ) ) )
        |` { s | E! x e. ( Base ` p ) ( A. y e. s y ( le ` p ) x
                /\ A. z e. ( Base ` p )
                  ( A. y e. s y ( le ` p ) z -> x ( le ` p ) z ) ) } ) ) $.

    $( Define the greatest lower bound (GLB) of a set of (poset) elements.  The
       domain is restricted to exclude sets ` s ` for which the GLB doesn't
       exist uniquely.  (Contributed by NM, 12-Sep-2011.)  (Revised by NM,
       6-Sep-2018.) $)
    df-glb $a |- glb = ( p e. _V |-> ( ( s e. ~P ( Base ` p )
        |-> ( iota_ x e. ( Base ` p ) ( A. y e. s x ( le ` p ) y
                /\ A. z e. ( Base ` p )
                  ( A. y e. s z ( le ` p ) y -> z ( le ` p ) x ) ) ) )
        |` { s | E! x e. ( Base ` p ) ( A. y e. s x ( le ` p ) y
                /\ A. z e. ( Base ` p )
                  ( A. y e. s z ( le ` p ) y -> z ( le ` p ) x ) ) } ) ) $.

    $( Define poset join.  (Contributed by NM, 12-Sep-2011.)  (Revised by Mario
       Carneiro, 3-Nov-2015.) $)
    df-join $a |- join = ( p e. _V
       |-> { <. <. x , y >. , z >. | { x , y } ( lub ` p ) z } ) $.

    $( Define poset join.  (Contributed by NM, 12-Sep-2011.)  (Revised by NM,
       8-Sep-2018.) $)
    df-meet $a |- meet = ( p e. _V
       |-> { <. <. x , y >. , z >. | { x , y } ( glb ` p ) z } ) $.
  $}

  ${
    $d p s x z B $.  $d p s x y z K $.  $d p .<_ $.
    lubfval.b $e |- B = ( Base ` K ) $.
    lubfval.l $e |- .<_ = ( le ` K ) $.
    lubfval.u $e |- U = ( lub ` K ) $.
    lubfval.p $e |- ( ps
   <-> ( A. y e. s y .<_ x /\ A. z e. B ( A. y e. s y .<_ z -> x .<_ z ) ) ) $.
    lubfval.k $e |- ( ph -> K e. V ) $.
    $( Value of the least upper bound function of a poset.  (Contributed by NM,
       12-Sep-2011.)  (Revised by NM, 6-Sep-2018.) $)
    lubfval $p |- ( ph -> U = ( ( s e. ~P B
        |-> ( iota_ x e. B ps ) ) |` { s | E! x e. B ps } ) ) $=
      ( cfv cv wbr wral vp wcel cvv cpw crio cmpt wreu cab cres wceq elex wi wa
      club cbs cple fveq2 syl6eqr pweqd breqd ralbidv imbi12d raleqbidv anbi12d
      riotaeqbidv mpteq12dv reubidv wb reueq1 bitrd abbidv reseq12d df-lub fvex
      syl eqeltri mptex resex fvmpt a1i riotabiia mpteq2i reubii abbii reseq12i
      pwex 3eqtr4g 3syl ) AHJUBHUCUBZGKFUDZBCFUEZUFZBCFUGZKUHZUIZUJPHJUKWIHUNQK
      WJDRZCRZISZDKRZTZWPERZISZDWSTZWQXAISZULZEFTZUMZCFUEZUFZXGCFUGZKUHZUIZGWOU
      AHKUARZUOQZUDZWPWQXMUPQZSZDWSTZWPXAXPSZDWSTZWQXAXPSZULZEXNTZUMZCXNUEZUFZY
      DCXNUGZKUHZUIXLUCUNXMHUJZYFXIYHXKYIKXOYEWJXHYIXNFYIXNHUOQZFXMHUOUQLURZUSY
      IYDXGCXNFYKYIXRWTYCXFYIXQWRDWSYIXPIWPWQYIXPHUPQIXMHUPUQMURZUTVAYIYBXEEXNF
      YKYIXTXCYAXDYIXSXBDWSYIXPIWPXAYLUTVAYIXPIWQXAYLUTVBVCVDZVEVFYIYGXJKYIYGXG
      CXNUGZXJYIYDXGCXNYMVGYIXNFUJYNXJVHYKXGCXNFVIVOVJVKVLCDEKUAVMXIXKKWJXHFFYJ
      UCLHUOVNVPWFVQVRVSNWLXIWNXKKWJWKXHBXGCFBXGVHWQFUBOVTWAWBWMXJKBXGCFOWCWDWE
      WGWH $.

    $( Domain of the least upper bound function of a poset.  (Contributed by
       NM, 6-Sep-2018.) $)
    lubdm $p |- ( ph -> dom U = { s e. ~P B | E! x e. B ps } ) $=
      ( cdm cpw crio cin cmpt wreu cab cres lubfval dmeqd riotaex dmmpti ineq2i
      crab eqid dmres dfrab2 3eqtr4i syl6eq ) AGQKFRZBCFSZUAZBCFUBZKUCZUDZQZUSK
      UPUJZAGVAABCDEFGHIJKLMNOPUEUFUTURQZTUTUPTVBVCVDUPUTKUPUQURBCFUGURUKUHUIUR
      UTULUSKUPUMUNUO $.
  $}

  ${
    $d s x y z K $.
    lubfun.u $e |- U = ( lub ` K ) $.
    $( The LUB is a function.  (Contributed by NM, 9-Sep-2018.) $)
    lubfun $p |- Fun U $=
      ( vs vy vx vz cvv wcel wfun cbs cfv cv wbr wral eqid funeqd mpbiri club
      c0 cpw cple wi wa crio cmpt wreu cres funmpt funres ax-mp biid id lubfval
      cab wn fun0 fvprc syl5eq pm2.61i ) BHIZAJZVAVBDBKLZUAZEMZFMZBUBLZNEDMZOVE
      GMZVGNEVHOVFVIVGNUCGVCOUDZFVCUEZUFZVJFVCUGDUOZUHZJZVLJVODVDVKUIVMVLUJUKVA
      AVNVAVJFEGVCABVGHDVCPVGPCVJULVAUMUNQRVAUPZVBTJUQVPATVPABSLTCBSURUSQRUT $.
  $}

  ${
    $d s x z B $.  $d s x y z K $.  $d s x y z S $.  $d s ps $.
    lubeldm.b $e |- B = ( Base ` K ) $.
    lubeldm.l $e |- .<_ = ( le ` K ) $.
    lubeldm.u $e |- U = ( lub ` K ) $.
    lubeldm.p $e |- ( ps
   <-> ( A. y e. S y .<_ x /\ A. z e. B ( A. y e. S y .<_ z -> x .<_ z ) ) ) $.
    lubeldm.k $e |- ( ph -> K e. V ) $.
    $( Member of the domain of the least upper bound function of a poset.
       (Contributed by NM, 7-Sep-2018.) $)
    lubeldm $p |- ( ph -> ( S e. dom U <-> ( S C_ B /\ E! x e. B ps ) ) ) $=
      ( vs cv wral wa cdm wcel wbr wi wreu cpw crab wss biid lubdm eleq2d raleq
      wceq imbi1d ralbidv anbi12d reubidv reubii syl6bbr elrab cbs cfv cvv fvex
      eqeltri elpw2 anbi1i bitri syl6bb ) AGHUAZUBGDRZCRZJUCZDQRZSZVKERZJUCZDVN
      SZVLVPJUCZUDZEFSZTZCFUEZQFUFZUGZUBZGFUHZBCFUEZTZAVJWEGAWBCDEFHIJKQLMNWBUI
      PUJUKWFGWDUBZWHTWIWCWHQGWDVNGUMZWCVMDGSZVQDGSZVSUDZEFSZTZCFUEWHWKWBWPCFWK
      VOWLWAWOVMDVNGULWKVTWNEFWKVRWMVSVQDVNGULUNUOUPUQBWPCFOURUSUTWJWGWHGFFIVAV
      BVCLIVAVDVEVFVGVHVI $.
  $}

  ${
    $d x z B $.  $d x y z K $.  $d x y z S $.
    lubs.b $e |- B = ( Base ` K ) $.
    lubs.l $e |- .<_ = ( le ` K ) $.
    lubs.u $e |- U = ( lub ` K ) $.
    lubs.k $e |- ( ph -> K e. V ) $.
    lubs.s $e |- ( ph -> S e. dom U ) $.
    $( A member of the domain of the least upper bound function is a subset of
       the base set.  (Contributed by NM, 7-Sep-2018.) $)
    lubelss $p |- ( ph -> S C_ B ) $=
      ( vy vx vz wss cv wbr wral wa wi wreu cdm wcel biid lubeldm mpbid simpld
      ) ACBPZMQZNQZFRMCSUJOQZFRMCSUKULFRUAOBSTZNBUBZACDUCUDUIUNTLAUMNMOBCDEFGHI
      JUMUEKUFUGUH $.
  $}

  ${
    $d s x z B $.  $d s x y z K $.  $d s x y z S $.  $d s ps $.
    lubval.b $e |- B = ( Base ` K ) $.
    lubval.l $e |- .<_ = ( le ` K ) $.
    lubval.u $e |- U = ( lub ` K ) $.
    lubval.p $e |- ( ps
   <-> ( A. y e. S y .<_ x /\ A. z e. B ( A. y e. S y .<_ z -> x .<_ z ) ) ) $.
    lubval.k $e |- ( ph -> K e. V ) $.

    ${
      lubeleu.s $e |- ( ph -> S e. dom U ) $.
      $( Unique existence proper of a member of the domain of the least upper
         bound function of a poset.  (Contributed by NM, 7-Sep-2018.) $)
      lubeu $p |- ( ph -> E! x e. B ps ) $=
        ( wss wreu cdm wcel wa lubeldm mpbid simprd ) AGFRZBCFSZAGHTUAUFUGUBQAB
        CDEFGHIJKLMNOPUCUDUE $.
    $}

    lubval.s $e |- ( ph -> S C_ B ) $.
    $( Value of the least upper bound function of a poset.  Out-of-domain
       arguments (those not satisfying ` S e. dom U ` ) are allowed for
       convenience, evaluating to the empty set.  (Contributed by NM,
       12-Sep-2011.)  (Revised by NM, 9-Sep-2018.) $)
    lubval $p |- ( ph -> ( U ` S ) = ( iota_ x e. B ps ) ) $=
      ( vs wceq wral cdm wcel cfv crio wa cpw cv wbr wi cmpt wreu cab cres biid
      adantr lubfval fveq1d simpr lubeu wb raleq imbi1d ralbidv anbi12d syl6bbr
      reubidv elabg adantl mpbird fvres syl wss cbs cvv eqeltri elpw2 riotabidv
      fvex sylibr eqid riotaex fvmpt wn c0 ndmfv lubeldm biimprd mpand con3dimp
      3eqtrd riotaund eqtr4d pm2.61dan ) AGHUAZUBZGHUCZBCFUDZSAWOUEZWPGRFUFZDUG
      ZCUGZJUHZDRUGZTZWTEUGZJUHZDXCTZXAXEJUHZUIZEFTZUEZCFUDZUJZXKCFUKZRULZUMZUC
      ZGXMUCZWQWRGHXPWRXKCDEFHIJKRLMNXKUNAIKUBWOPUOZUPUQWRGXOUBZXQXRSWRXTBCFUKZ
      WRBCDEFGHIJKLMNOXSAWOURUSWOXTYAUTAXNYARGWNXCGSZXKBCFYBXKXBDGTZXFDGTZXHUIZ
      EFTZUEBYBXDYCXJYFXBDXCGVAYBXIYEEFYBXGYDXHXFDXCGVAVBVCVDOVEZVFVGVHVIGXOXMV
      JVKWRGWSUBZXRWQSWRGFVLZYHAYIWOQUOGFFIVMUCVNLIVMVRVOVPVSRGXLWQWSXMYBXKBCFY
      GVQXMVTBCFWAWBVKWJAWOWCZUEZWPWDWQYJWPWDSAGHWEVHYKYAWCWQWDSAYAWOAYIYAWOQAW
      OYIYAUEABCDEFGHIJKLMNOPWFWGWHWIBCFWKVKWLWM $.
  $}

  ${
    $d x z B $.  $d x y z K $.  $d x y z S $.
    lubcl.b $e |- B = ( Base ` K ) $.
    lubcl.u $e |- U = ( lub ` K ) $.
    lubcl.k $e |- ( ph -> K e. V ) $.
    lubcl.s $e |- ( ph -> S e. dom U ) $.
    $( The least upper bound function value belongs to the base set.
       (Contributed by NM, 7-Sep-2018.) $)
    lubcl $p |- ( ph -> ( U ` S ) e. B ) $=
      ( vy vx vz cfv cv cple wbr wral wi wa crio eqid biid lubelss lubval lubeu
      wreu wcel riotacl syl eqeltrd ) ACDNKOZLOZEPNZQKCRULMOZUNQKCRUMUOUNQSMBRT
      ZLBUAZBAUPLKMBCDEUNFGUNUBZHUPUCZIABCDEUNFGURHIJUDUEAUPLBUGUQBUHAUPLKMBCDE
      UNFGURHUSIJUFUPLBUIUJUK $.
  $}

  ${
    $d x z B $.  $d x y z K $.  $d x y z S $.  $d x y .<_ $.  $d x y z U $.
    $d y X $.
    lubprop.b $e |- B = ( Base ` K ) $.
    lubprop.l $e |- .<_ = ( le ` K ) $.
    lubprop.u $e |- U = ( lub ` K ) $.
    lubprop.k $e |- ( ph -> K e. V ) $.
    lubprop.s $e |- ( ph -> S e. dom U ) $.
    $( Properties of greatest lower bound of a poset.  (Contributed by NM,
       22-Oct-2011.)  (Revised by NM, 7-Sep-2018.) $)
    lubprop $p |- ( ph -> ( A. y e. S y .<_ ( U ` S )
          /\ A. z e. B ( A. y e. S y .<_ z -> ( U ` S ) .<_ z ) ) ) $=
      ( vx cv wbr wral wi wa cfv crio wceq biid lubelss lubval eqcomd wcel wreu
      wb lubcl lubeu breq2 ralbidv breq1 imbi2d anbi12d riota2 syl2anc mpbird )
      ABPZEFUAZHQZBERZVACPZHQBERZVBVEHQZSZCDRZTZVAOPZHQZBERZVFVKVEHQZSZCDRZTZOD
      UBZVBUCZAVBVRAVQOBCDEFGHIJKLVQUDZMADEFGHIJKLMNUEUFUGAVBDUHVQODUIVJVSUJADE
      FGIJLMNUKAVQOBCDEFGHIJKLVTMNULVQVJODVBVKVBUCZVMVDVPVIWAVLVCBEVKVBVAHUMUNW
      AVOVHCDWAVNVGVFVKVBVEHUOUPUNUQURUSUT $.

    luble.x $e |- ( ph -> X e. S ) $.
    $( The greatest lower bound is the least element.  (Contributed by NM,
       22-Oct-2011.)  (Revised by NM, 7-Sep-2018.) $)
    luble $p |- ( ph -> X .<_ ( U ` S ) ) $=
      ( vy vz cv cfv wbr wral wcel wi lubprop simpld breq1 rspccva syl2anc ) AO
      QZCDRZFSZOCTZHCUAHUIFSZAUKUHPQZFSOCTUIUMFSUBPBTAOPBCDEFGIJKLMUCUDNUJULOHC
      UHHUIFUEUFUG $.
  $}

  ${
    $d w x y z .<_ $.  $d w x y z B $.  $d w x z K $.  $d w x y z X $.
    $d w x ph $.
    lublecl.b $e |- B = ( Base ` K ) $.
    lublecl.l $e |- .<_ = ( le ` K ) $.
    lublecl.u $e |- U = ( lub ` K ) $.
    lublecl.k $e |- ( ph -> K e. Poset ) $.
    lublecl.x $e |- ( ph -> X e. B ) $.
    $( Lemma for ~ lublecl and ~ lubid .  (Contributed by NM, 8-Sep-2018.) $)
    lublecllem $p |- ( ( ph /\ x e. B )
    -> ( ( A. z e. { y e. B | y .<_ X } z .<_ x
       /\ A. w e. B ( A. z e. { y e. B | y .<_ X } z .<_ w -> x .<_ w ) )
          <-> x = X ) ) $=
      ( wbr wral wi wa breq1 cv crab wcel wceq ralrab imbi1i ralbii anbi12i cpo
      posref syl2anc imbi12d rspcva syl5com mpand adantr idd rgen breq2 ralbidv
      imbi2d rspcv syl wb simpr posasymb syl3anc biimpd ancomsd syl2and biimprd
      mpii ralrimivw adantl bicomd sylan9bb syl5ib adantlr jca ex impbid syl5bb
      pm5.5 ) DUAZBUAZIPZDCUAZJIPZCFUBZQZWDEUAZIPZDWIQZWEWKIPZRZEFQZSWDJIPZWFRZ
      DFQZWQWLRZDFQZWNRZEFQZSZAWEFUCZSZWEJUDZWJWSWPXCWHWQWFDCFWGWDJITZUEWOXBEFW
      MXAWNWHWQWLDCFXHUEUFUGUHXFXDXGXFWSJWEIPZXCWEJIPZXGAWSXIRXEAJFUCZWSXIOAJJI
      PZXKWSSXIAHUIUCZXKXLNOFHIJKLUJUKZWRXLXIRDJFWDJUDZWQXLWFXIWDJJITZWDJWEITUL
      UMUNUOUPAXCXJRXEAXCWQWQRZDFQZXJXQDFWDFUCWQUQURAXKXCXRXJRZROXBXSEJFWKJUDZX
      AXRWNXJXTWTXQDFXTWLWQWQWKJWDIUSVAUTWKJWEIUSULVBVCVLUPXFXJXIXGXFXJXISZXGXF
      XMXEXKYAXGVDAXMXENUPAXEVEAXKXEOUPFHIWEJKLVFVGVHVIVJXFXGXDXFXGSWSXCXGWSXFX
      GWRDFXGWFWQWEJWDIUSVKVMVNAXGXCXEAXGSZXBEFYBXKXAWNAXKXGOUPXKXASXLJWKIPZRZY
      BWNWTYDDJFXOWQXLWLYCXPWDJWKITULUMAYDYCXGWNAXLYDYCVDXNXLYCWCVCXGWNYCWEJWKI
      TVOVPVQUOVMVRVSVTWAWB $.

    $( The set of all elements less than a given element has an LUB.
       (Contributed by NM, 8-Sep-2018.) $)
    lublecl $p |- ( ph -> { y e. B | y .<_ X } e. dom U ) $=
      ( vz vx vw cv wbr crab wcel wral cdm wss wi wa wreu ssrab2 a1i lublecllem
      wceq wb ralrimiva reu6i syl2anc cpo biid lubeldm mpbir2and ) ABPGFQZBCRZD
      UASUSCUBZMPZNPZFQMUSTVAOPZFQMUSTVBVCFQUCOCTUDZNCUEZUTAURBCUFUGAGCSVDVBGUI
      UJZNCTVELAVFNCANBMOCDEFGHIJKLUHUKVDNCGULUMAVDNMOCUSDEFUNHIJVDUOKUPUQ $.
  $}

  ${
    $d w x y z .<_ $.  $d w x y z B $.  $d w x z K $.  $d w x y z X $.
    $d w x ph $.
    lubid.b $e |- B = ( Base ` K ) $.
    lubid.l $e |- .<_ = ( le ` K ) $.
    lubid.u $e |- U = ( lub ` K ) $.
    lubid.k $e |- ( ph -> K e. Poset ) $.
    lubid.x $e |- ( ph -> X e. B ) $.
    $( The LUB of elements less than or equal to a fixed value equals that
       value.  (Contributed by NM, 19-Oct-2011.)  (Revised by NM,
       7-Sep-2018.) $)
    lubid $p |- ( ph -> ( U ` { y e. B | y .<_ X } ) = X ) $=
      ( vz vx vw cv wbr crab cfv wral wi wa crio cpo biid wss ssrab2 a1i lubval
      lublecllem riota5 eqtrd ) ABPGFQZBCRZDSMPZNPZFQMUNTUOOPZFQMUNTUPUQFQUAOCT
      UBZNCUCGAURNMOCUNDEFUDHIJURUEKUNCUFAUMBCUGUHUIAURNCGLANBMOCDEFGHIJKLUJUKU
      L $.
  $}

  ${
    $d p s x z B $.  $d p s x y z K $.  $d p .<_ $.
    glbfval.b $e |- B = ( Base ` K ) $.
    glbfval.l $e |- .<_ = ( le ` K ) $.
    glbfval.g $e |- G = ( glb ` K ) $.
    glbfval.p $e |- ( ps
   <-> ( A. y e. s x .<_ y /\ A. z e. B ( A. y e. s z .<_ y -> z .<_ x ) ) ) $.
    glbfval.k $e |- ( ph -> K e. V ) $.
    $( Value of the greatest lower function of a poset.  (Contributed by NM,
       12-Sep-2011.)  (Revised by NM, 6-Sep-2018.) $)
    glbfval $p |- ( ph -> G = ( ( s e. ~P B
        |-> ( iota_ x e. B ps ) ) |` { s | E! x e. B ps } ) ) $=
      ( cfv cv wbr wral vp wcel cvv cpw crio cmpt wreu cab cres wceq elex wi wa
      cglb cbs cple fveq2 syl6eqr pweqd breqd ralbidv imbi12d raleqbidv anbi12d
      riotaeqbidv mpteq12dv reubidv wb reueq1 bitrd abbidv reseq12d df-glb fvex
      syl eqeltri mptex resex fvmpt a1i riotabiia mpteq2i reubii abbii reseq12i
      pwex 3eqtr4g 3syl ) AHJUBHUCUBZGKFUDZBCFUEZUFZBCFUGZKUHZUIZUJPHJUKWIHUNQK
      WJCRZDRZISZDKRZTZERZWQISZDWSTZXAWPISZULZEFTZUMZCFUEZUFZXGCFUGZKUHZUIZGWOU
      AHKUARZUOQZUDZWPWQXMUPQZSZDWSTZXAWQXPSZDWSTZXAWPXPSZULZEXNTZUMZCXNUEZUFZY
      DCXNUGZKUHZUIXLUCUNXMHUJZYFXIYHXKYIKXOYEWJXHYIXNFYIXNHUOQZFXMHUOUQLURZUSY
      IYDXGCXNFYKYIXRWTYCXFYIXQWRDWSYIXPIWPWQYIXPHUPQIXMHUPUQMURZUTVAYIYBXEEXNF
      YKYIXTXCYAXDYIXSXBDWSYIXPIXAWQYLUTVAYIXPIXAWPYLUTVBVCVDZVEVFYIYGXJKYIYGXG
      CXNUGZXJYIYDXGCXNYMVGYIXNFUJYNXJVHYKXGCXNFVIVOVJVKVLCDEKUAVMXIXKKWJXHFFYJ
      UCLHUOVNVPWFVQVRVSNWLXIWNXKKWJWKXHBXGCFBXGVHWPFUBOVTWAWBWMXJKBXGCFOWCWDWE
      WGWH $.

    $( Domain of the greatest lower bound function of a poset.  (Contributed by
       NM, 6-Sep-2018.) $)
    glbdm $p |- ( ph -> dom G = { s e. ~P B | E! x e. B ps } ) $=
      ( cdm cpw crio cin cmpt wreu cab cres glbfval dmeqd riotaex dmmpti ineq2i
      crab eqid dmres dfrab2 3eqtr4i syl6eq ) AGQKFRZBCFSZUAZBCFUBZKUCZUDZQZUSK
      UPUJZAGVAABCDEFGHIJKLMNOPUEUFUTURQZTUTUPTVBVCVDUPUTKUPUQURBCFUGURUKUHUIUR
      UTULUSKUPUMUNUO $.
  $}

  ${
    $d s x y z K $.
    glbfun.g $e |- G = ( glb ` K ) $.
    $( The GLB is a function.  (Contributed by NM, 9-Sep-2018.) $)
    glbfun $p |- Fun G $=
      ( vs vx vy vz cvv wcel wfun cbs cfv cv wbr wral eqid funeqd mpbiri cglb
      c0 cpw cple wi wa crio cmpt wreu cres funmpt funres ax-mp biid id glbfval
      cab wn fun0 fvprc syl5eq pm2.61i ) BHIZAJZVAVBDBKLZUAZEMZFMZBUBLZNFDMZOGM
      ZVFVGNFVHOVIVEVGNUCGVCOUDZEVCUEZUFZVJEVCUGDUOZUHZJZVLJVODVDVKUIVMVLUJUKVA
      AVNVAVJEFGVCABVGHDVCPVGPCVJULVAUMUNQRVAUPZVBTJUQVPATVPABSLTCBSURUSQRUT $.
  $}

  ${
    $d s x z B $.  $d s x y z K $.  $d s x y z S $.  $d s ps $.
    glbeldm.b $e |- B = ( Base ` K ) $.
    glbeldm.l $e |- .<_ = ( le ` K ) $.
    glbeldm.g $e |- G = ( glb ` K ) $.
    glbeldm.p $e |- ( ps
   <-> ( A. y e. S x .<_ y /\ A. z e. B ( A. y e. S z .<_ y -> z .<_ x ) ) ) $.
    glbeldm.k $e |- ( ph -> K e. V ) $.
    $( Member of the domain of the greatest lower bound function of a poset.
       (Contributed by NM, 7-Sep-2018.) $)
    glbeldm $p |- ( ph -> ( S e. dom G <-> ( S C_ B /\ E! x e. B ps ) ) ) $=
      ( vs cv wral wa cdm wcel wbr wi wreu cpw crab wss biid glbdm eleq2d raleq
      wceq imbi1d ralbidv anbi12d reubidv reubii syl6bbr elrab cbs cfv cvv fvex
      eqeltri elpw2 anbi1i bitri syl6bb ) AGHUAZUBGCRZDRZJUCZDQRZSZERZVLJUCZDVN
      SZVPVKJUCZUDZEFSZTZCFUEZQFUFZUGZUBZGFUHZBCFUEZTZAVJWEGAWBCDEFHIJKQLMNWBUI
      PUJUKWFGWDUBZWHTWIWCWHQGWDVNGUMZWCVMDGSZVQDGSZVSUDZEFSZTZCFUEWHWKWBWPCFWK
      VOWLWAWOVMDVNGULWKVTWNEFWKVRWMVSVQDVNGULUNUOUPUQBWPCFOURUSUTWJWGWHGFFIVAV
      BVCLIVAVDVEVFVGVHVI $.
  $}

  ${
    $d x z B $.  $d x y z K $.  $d x y z S $.
    glbs.b $e |- B = ( Base ` K ) $.
    glbs.l $e |- .<_ = ( le ` K ) $.
    glbs.g $e |- G = ( glb ` K ) $.
    glbs.k $e |- ( ph -> K e. V ) $.
    glbs.s $e |- ( ph -> S e. dom G ) $.
    $( A member of the domain of the greatest lower bound function is a subset
       of the base set.  (Contributed by NM, 7-Sep-2018.) $)
    glbelss $p |- ( ph -> S C_ B ) $=
      ( vx vy vz wss cv wbr wral wa wi wreu cdm wcel biid glbeldm mpbid simpld
      ) ACBPZMQZNQZFRNCSOQZUKFRNCSULUJFRUAOBSTZMBUBZACDUCUDUIUNTLAUMMNOBCDEFGHI
      JUMUEKUFUGUH $.
  $}

  ${
    $d s x z B $.  $d s x y z K $.  $d s x y z S $.  $d s ps $.
    glbval.b $e |- B = ( Base ` K ) $.
    glbval.l $e |- .<_ = ( le ` K ) $.
    glbval.g $e |- G = ( glb ` K ) $.
    glbval.p $e |- ( ps
   <-> ( A. y e. S x .<_ y /\ A. z e. B ( A. y e. S z .<_ y -> z .<_ x ) ) ) $.
    glbva.k $e |- ( ph -> K e. V ) $.
    ${
      glbval.s $e |- ( ph -> S e. dom G ) $.
      $( Unique existence proper of a member of the domain of the greatest
         lower bound function of a poset.  (Contributed by NM, 7-Sep-2018.) $)
      glbeu $p |- ( ph -> E! x e. B ps ) $=
        ( wss wreu cdm wcel wa glbeldm mpbid simprd ) AGFRZBCFSZAGHTUAUFUGUBQAB
        CDEFGHIJKLMNOPUCUDUE $.
    $}

    glbval.ss $e |- ( ph -> S C_ B ) $.
    $( Value of the greatest lower bound function of a poset.  Out-of-domain
       arguments (those not satisfying ` S e. dom U ` ) are allowed for
       convenience, evaluating to the empty set on both sides of the equality.
       (Contributed by NM, 12-Sep-2011.)  (Revised by NM, 9-Sep-2018.) $)
    glbval $p |- ( ph -> ( G ` S ) = ( iota_ x e. B ps ) ) $=
      ( vs wceq wral cdm wcel cfv crio wa cpw cv wbr wi cmpt wreu cab cres biid
      adantr glbfval fveq1d simpr glbeu wb raleq imbi1d ralbidv anbi12d syl6bbr
      reubidv elabg adantl mpbird fvres syl wss cbs cvv eqeltri elpw2 riotabidv
      fvex sylibr eqid riotaex fvmpt wn c0 ndmfv glbeldm biimprd mpand con3dimp
      3eqtrd riotaund eqtr4d pm2.61dan ) AGHUAZUBZGHUCZBCFUDZSAWOUEZWPGRFUFZCUG
      ZDUGZJUHZDRUGZTZEUGZXAJUHZDXCTZXEWTJUHZUIZEFTZUEZCFUDZUJZXKCFUKZRULZUMZUC
      ZGXMUCZWQWRGHXPWRXKCDEFHIJKRLMNXKUNAIKUBWOPUOZUPUQWRGXOUBZXQXRSWRXTBCFUKZ
      WRBCDEFGHIJKLMNOXSAWOURUSWOXTYAUTAXNYARGWNXCGSZXKBCFYBXKXBDGTZXFDGTZXHUIZ
      EFTZUEBYBXDYCXJYFXBDXCGVAYBXIYEEFYBXGYDXHXFDXCGVAVBVCVDOVEZVFVGVHVIGXOXMV
      JVKWRGWSUBZXRWQSWRGFVLZYHAYIWOQUOGFFIVMUCVNLIVMVRVOVPVSRGXLWQWSXMYBXKBCFY
      GVQXMVTBCFWAWBVKWJAWOWCZUEZWPWDWQYJWPWDSAGHWEVHYKYAWCWQWDSAYAWOAYIYAWOQAW
      OYIYAUEABCDEFGHIJKLMNOPWFWGWHWIBCFWKVKWLWM $.
  $}

  ${
    $d x z B $.  $d x y z K $.  $d x y z S $.
    glbc.b $e |- B = ( Base ` K ) $.
    glbc.g $e |- G = ( glb ` K ) $.
    glbc.k $e |- ( ph -> K e. V ) $.
    glbc.s $e |- ( ph -> S e. dom G ) $.
    $( The least upper bound function value belongs to the base set.
       (Contributed by NM, 7-Sep-2018.) $)
    glbcl $p |- ( ph -> ( G ` S ) e. B ) $=
      ( vx vy vz cfv cv cple wbr wral wi wa crio eqid biid glbelss glbval glbeu
      wreu wcel riotacl syl eqeltrd ) ACDNKOZLOZEPNZQLCRMOZUMUNQLCRUOULUNQSMBRT
      ZKBUAZBAUPKLMBCDEUNFGUNUBZHUPUCZIABCDEUNFGURHIJUDUEAUPKBUGUQBUHAUPKLMBCDE
      UNFGURHUSIJUFUPKBUIUJUK $.
  $}

  ${
    $d x z B $.  $d x y z K $.  $d x y z S $.  $d x y .<_ $.  $d x y z U $.
    $d y X $.
    glbprop.b $e |- B = ( Base ` K ) $.
    glbprop.l $e |- .<_ = ( le ` K ) $.
    glbprop.u $e |- U = ( glb ` K ) $.
    glbprop.k $e |- ( ph -> K e. V ) $.
    glbprop.s $e |- ( ph -> S e. dom U ) $.
    $( Properties of greatest lower bound of a poset.  (Contributed by NM,
       7-Sep-2018.) $)
    glbprop $p |- ( ph -> ( A. y e. S ( U ` S ) .<_ y
          /\ A. z e. B ( A. y e. S z .<_ y -> z .<_ ( U ` S ) ) ) ) $=
      ( vx cv wbr wral wi wa cfv crio wceq biid glbelss glbval eqcomd wcel wreu
      wb glbcl glbeu breq1 ralbidv breq2 imbi2d anbi12d riota2 syl2anc mpbird )
      AEFUAZBPZHQZBERZCPZVBHQBERZVEVAHQZSZCDRZTZOPZVBHQZBERZVFVEVKHQZSZCDRZTZOD
      UBZVAUCZAVAVRAVQOBCDEFGHIJKLVQUDZMADEFGHIJKLMNUEUFUGAVADUHVQODUIVJVSUJADE
      FGIJLMNUKAVQOBCDEFGHIJKLVTMNULVQVJODVAVKVAUCZVMVDVPVIWAVLVCBEVKVAVBHUMUNW
      AVOVHCDWAVNVGVFVKVAVEHUOUPUNUQURUSUT $.

    glble.x $e |- ( ph -> X e. S ) $.
    $( The greatest lower bound is the least element.  (Contributed by NM,
       22-Oct-2011.)  (Revised by NM, 7-Sep-2018.) $)
    glble $p |- ( ph -> ( U ` S ) .<_ X ) $=
      ( vy vz cfv cv wbr wral wcel wi glbprop simpld breq2 rspccva syl2anc ) AC
      DQZORZFSZOCTZHCUAUHHFSZAUKPRZUIFSOCTUMUHFSUBPBTAOPBCDEFGIJKLMUCUDNUJULOHC
      UIHUHFUEUFUG $.
  $}

  ${
    $d p x y z K $.  $d p z U $.
    joinfval.u $e |- U = ( lub ` K ) $.
    joinfval.j $e |- .\/ = ( join ` K ) $.
    $( Value of join function for a poset.  (Contributed by NM, 12-Sep-2011.)
       (Revised by NM, 9-Sep-2018.)  TODO: prove ~ joinfval2 first to reduce
       net proof size (existence part)? $)
    joinfval $p |- ( K e. V
             -> .\/ = { <. <. x , y >. , z >. | { x , y } U z } ) $=
      ( vp wcel cvv cv coprab wceq cfv wa a1i eqid wal cpr wbr elex cjn cbs wmo
      fvex moeq oprabex wi wss cdm wfun lubfun funbrfv2b ax-mp cple simpl simpr
      wb lubelss ex vex prss syl6ibr biimpi anim12d syl5bi alrimiv ssoprab2 syl
      eqcom ssexd fveq2 syl6eqr breqd oprabbidv df-join fvmptg mpdan syl5eq
      club ) FGKFLKZEAMZBMZUAZCMZDUBZABCNZOFGUCWCEFUDPZWIIWCWILKWJWIOWCWIWDFUEP
      ZKWEWKKQZWGWFDPZOZQZABCNZLWPLKWCWNABCWKWKWPFUEUGZWQWNCUFWLCWMUHRWPSUIRWCW
      HWOUJZCTZBTZATWIWPUKWCWTAWCWSBWCWRCWHWFDULKZWMWGOZQZWCWODUMWHXCUTDFHUNWFW
      GDUOUPWCXAWLXBWNWCXAWFWKUKZWLWCXAXDWCXAQWKWFDFFUQPZLWKSXESHWCXAURWCXAUSVA
      VBWDWEWKAVCBVCVDVEXBWNUJWCXBWNWMWGVLVFRVGVHVIVIVIWHWOABCVJVKVMJFWFWGJMZWB
      PZUBZABCNWILLUDXFFOZXHWHABCXIXGDWFWGXIXGFWBPDXFFWBVNHVOVPVQABCJVRVSVTWAVK
      $.

    $( Value of join function for a poset-type structure.  (Contributed by NM,
       12-Sep-2011.)  (Revised by NM, 9-Sep-2018.) $)
    joinfval2 $p |- ( K e. V
           -> .\/ = { <. <. x , y >. , z >. | ( { x , y } e. dom U
               /\ z = ( U ` { x , y } ) ) } ) $=
      ( wcel cv cpr wbr coprab cdm cfv wceq wa joinfval wfun wb funbrfv2b ax-mp
      lubfun eqcom anbi2i bitri oprabbii syl6eq ) FGJEAKBKLZCKZDMZABCNUJDOJZUKU
      JDPZQZRZABCNABCDEFGHISULUPABCULUMUNUKQZRZUPDTULURUADFHUDUJUKDUBUCUQUOUMUN
      UKUEUFUGUHUI $.

    $( Domain of join function for a poset-type structure.  (Contributed by NM,
       16-Sep-2018.) $)
    joindm $p |- ( K e. V
            -> dom .\/ = { <. x , y >. | { x , y } e. dom U } ) $=
      ( vz wcel cdm cv cpr cfv wceq wa coprab copab joinfval2 wex dmeqd dmoprab
      fvex isseti 19.42v mpbiran2 opabbii eqtri syl6eq ) EFJZDKALBLMZCKJZILUKCN
      ZOZPZABIQZKZULABRZUJDUPABICDEFGHSUAUQUOITZABRURUOABIUBUSULABUSULUNITIUMUK
      CUCUDULUNIUEUFUGUHUI $.
  $}

  ${
    $d x y z K $.  $d x y z U $.  $d x y z X $.  $d x y z Y $.
    joindef.u $e |- U = ( lub ` K ) $.
    joindef.j $e |- .\/ = ( join ` K ) $.
    joindef.k $e |- ( ph -> K e. V ) $.
    joindef.x $e |- ( ph -> X e. W ) $.
    joindef.y $e |- ( ph -> Y e. Z ) $.
    $( Two ways to say that a join is defined.  (Contributed by NM,
       9-Sep-2018.) $)
    joindef $p |- ( ph
       -> ( <. X , Y >. e. dom .\/ <-> { X , Y } e. dom U ) ) $=
      ( vx vy cdm wcel cv cpr cop copab wb joindm eleq2d syl preq1 eleq1d preq2
      wceq opelopabg syl2anc bitrd ) AGHUAZCQZRZUNOSZPSZTZBQZRZOPUBZRZGHTZUTRZA
      DERZUPVCUCLVFUOVBUNOPBCDEJKUDUEUFAGFRHIRVCVEUCMNVAGURTZUTRVEOPGHFIUQGUJUS
      VGUTUQGURUGUHURHUJVGVDUTURHGUIUHUKULUM $.

    $( Join value.  Since both sides evaluate to ` (/) ` when they don't exist,
       for convenience we drop the ` { X , Y } e. dom U ` requirement.
       (Contributed by NM, 9-Sep-2018.) $)
    joinval $p |- ( ph -> ( X .\/ Y ) = ( U ` { X , Y } ) ) $=
      ( vx vy vz wcel wceq wa cpr cdm co cv coprab joinfval2 oveqd adantr simpr
      cfv syl eqidd wi cvv fvexd w3a preq12 eleq1d 3adant3 simp3 fveq2d eqeq12d
      wb anbi12d moeq moani ovigg syl3anc mp2and eqtrd wn c0 cop joindef notbid
      eqid df-ov ndmfv syl5eq syl6bir imp adantl eqtr4d pm2.61dan ) AGHUAZBUBZR
      ZGHCUCZWEBUJZSAWGTZWHGHOUDZPUDZUAZWFRZQUDZWMBUJZSZTZOPQUEZUCZWIAWHWTSWGAC
      WSGHADERCWSSLOPQBCDEJKUFUKUGUHWJWGWIWISZWTWISZAWGUIWJWIULAWGXATZXBUMZWGAG
      FRHIRWIUNRXDMNAWEBUOWRXCOPQGHWIWSFIUNWKGSZWLHSZWOWISZUPZWNWGWQXAXEXFWNWGV
      CXGXEXFTZWMWEWFWKWLGHUQZURUSXHWOWIWPWIXEXFXGUTXEXFWPWISXGXIWMWEBXJVAUSVBV
      DWQWNQQWPVEVFWSVPVGVHUHVIVJAWGVKZTWHVLWIAXKWHVLSZAXKGHVMZCUBRZVKZXLAXNWGA
      BCDEFGHIJKLMNVNVOXOWHXMCUJVLGHCVQXMCVRVSVTWAXKWIVLSAWEBVRWBWCWD $.
  $}

  ${
    joincl.b $e |- B = ( Base ` K ) $.
    joincl.j $e |- .\/ = ( join ` K ) $.
    joincl.k $e |- ( ph -> K e. V ) $.
    joincl.x $e |- ( ph -> X e. B ) $.
    joincl.y $e |- ( ph -> Y e. B ) $.
    joincl.e $e |- ( ph -> <. X , Y >. e. dom .\/ ) $.
    $( Closure of join of elements in the domain.  (Contributed by NM,
       12-Sep-2018.) $)
    joincl $p |- ( ph -> ( X .\/ Y ) e. B ) $=
      ( co cpr club cfv eqid cdm wcel joinval cop joindef mpbid lubcl eqeltrd )
      AFGCNFGOZDPQZQBAUHCDEBFGBUHRZIJKLUAABUGUHDEHUIJAFGUBCSTUGUHSTMAUHCDEBFGBU
      IIJKLUCUDUEUF $.
  $}

  ${
    $d x y .\/ $.  $d x y B $.  $d x y K $.  $d x y ph $.
    joindmss.b $e |- B = ( Base ` K ) $.
    joindmss.j $e |- .\/ = ( join ` K ) $.
    joindmss.k $e |- ( ph -> K e. V ) $.
    $( Subset property of domain of join.  (Contributed by NM, 12-Sep-2018.) $)
    joindmss $p |- ( ph -> dom .\/ C_ ( B X. B ) ) $=
      ( vx vy cdm wrel cv cfv wcel eqid cvv vex a1i wa cxp copab relopab joindm
      cpr club wceq syl releqd mpbiri cop joindef wss cple adantr simpr lubelss
      ex prss opelxpi sylbir syl6 sylbid relssdv ) AIJCKZBBUAZAVELIMZJMZUEZDUFN
      ZKOZIJUBZLVKIJUCAVEVLADEOZVEVLUGHIJVJCDEVJPZGUDUHUIUJAVGVHUKZVEOVKVOVFOZA
      VJCDEQVGVHQVNGHVGQOAIRZSVHQOAJRZSULAVKVIBUMZVPAVKVSAVKTBVIVJDDUNNZEFVTPVN
      AVMVKHUOAVKUPUQURVSVGBOVHBOTVPVGVHBVQVRUSVGVHBBUTVAVBVCVD $.
  $}

  ${
    $d x z B $.  $d x z .\/ $.  $d x y z K $.  $d y .<_ $.  $d x y z X $.
    $d x y z Y $.
    joinval2.b $e |- B = ( Base ` K ) $.
    joinval2.l $e |- .<_ = ( le ` K ) $.
    joinval2.j $e |- .\/ = ( join ` K ) $.
    joinval2.k $e |- ( ph -> K e. V ) $.
    joinval2.x $e |- ( ph -> X e. B ) $.
    joinval2.y $e |- ( ph -> Y e. B ) $.
    $( Lemma for ~ joinval2 and ~ joineu .  (Contributed by NM, 12-Sep-2018.)
       TODO: combine this through joineu into joinlem? $)
    joinval2lem $p |- ( ( X e. B /\ Y e. B )
  -> ( ( A. y e. { X , Y } y .<_ x
        /\ A. z e. B ( A. y e. { X , Y } y .<_ z -> x .<_ z ) )
  <-> ( ( X .<_ x /\ Y .<_ x )
        /\ A. z e. B ( ( X .<_ z /\ Y .<_ z ) -> x .<_ z ) ) ) ) $=
      ( wbr wral breq1 wcel wa cv cpr wi ralprg imbi1d ralbidv anbi12d ) JEUAKE
      UAUBZCUCZBUCZHRZCJKUDZSJULHRZKULHRZUBUKDUCZHRZCUNSZULUQHRZUEZDESJUQHRZKUQ
      HRZUBZUTUEZDESUMUOUPCJKEEUKJULHTUKKULHTUFUJVAVEDEUJUSVDUTURVBVCCJKEEUKJUQ
      HTUKKUQHTUFUGUHUI $.

    $( Value of join for a poset with LUB expanded.  (Contributed by NM,
       16-Sep-2011.)  (Revised by NM, 11-Sep-2018.) $)
    joinval2 $p |- ( ph ->
      ( X .\/ Y ) = ( iota_ x e. B ( ( X .<_ x /\ Y .<_ x )
              /\ A. z e. B ( ( X .<_ z /\ Y .<_ z ) -> x .<_ z ) ) ) ) $=
      ( vy wbr wral wa co cpr club cfv cv crio eqid joinval biid wcel wss prssi
      wi syl2anc lubval wceq joinval2lem riotabidv 3eqtrd ) AIJEUAIJUBZFUCUDZUD
      QUEZBUEZGRQUTSVBCUEZGRQUTSVCVDGRZUMCDSTZBDUFZIVCGRJVCGRTIVDGRJVDGRTVEUMCD
      STZBDUFZAVAEFHDIJDVAUGZMNOPUHAVFBQCDUTVAFGHKLVJVFUINAIDUJZJDUJZUTDUKOPIJD
      ULUNUOAVKVLVGVIUPOPVKVLTVFVHBDABQCDEFGHIJKLMNOPUQURUNUS $.

    $d x ph $.
    joinlem.e $e |- ( ph -> <. X , Y >. e. dom .\/ ) $.
    $( Uniqueness of join of elements in the domain.  (Contributed by NM,
       12-Sep-2018.) $)
    joineu $p |- ( ph -> E! x e. B ( ( X .<_ x /\ Y .<_ x )
              /\ A. z e. B ( ( X .<_ z /\ Y .<_ z ) -> x .<_ z ) ) ) $=
      ( vy wcel wbr cop cdm cv wa wi wral wreu cpr club cfv eqid joindef adantr
      biid simpr lubeu ex wb joinval2lem syl2anc reubidv sylibd sylbid mpd ) AI
      JUAEUBSZIBUCZGTJVFGTUDICUCZGTJVGGTUDVFVGGTZUECDUFUDZBDUGZQAVEIJUHZFUIUJZU
      BSZVJAVLEFHDIJDVLUKZMNOPULAVMRUCZVFGTRVKUFVOVGGTRVKUFVHUECDUFUDZBDUGZVJAV
      MVQAVMUDVPBRCDVKVLFGHKLVNVPUNAFHSVMNUMAVMUOUPUQAVPVIBDAIDSJDSVPVIUROPABRC
      DEFGHIJKLMNOPUSUTVAVBVCVD $.

    $d x .<_ $.
    $( Lemma for join properties.  (Contributed by NM, 16-Sep-2011.)  (Revised
       by NM, 12-Sep-2018.) $)
    joinlem $p |- ( ph -> ( ( X .<_ ( X .\/ Y ) /\ Y .<_ ( X .\/ Y ) )
            /\ A. z e. B ( ( X .<_ z /\ Y .<_ z ) -> ( X .\/ Y ) .<_ z ) ) ) $=
      ( vx cv wbr wa wi wral co wsbc crio wreu joineu riotasbc joinval2 sbceq1d
      syl mpbird ovex wceq breq2 anbi12d breq1 imbi2d ralbidv sbcie sylib ) AHQ
      RZFSZIVBFSZTZHBRZFSIVFFSTZVBVFFSZUAZBCUBZTZQHIDUCZUDZHVLFSZIVLFSZTZVGVLVF
      FSZUAZBCUBZTZAVMVKQVKQCUEZUDZAVKQCUFWBAQBCDEFGHIJKLMNOPUGVKQCUHUKAVKQVLWA
      AQBCDEFGHIJKLMNOUIUJULVKVTQVLHIDUMVBVLUNZVEVPVJVSWCVCVNVDVOVBVLHFUOVBVLIF
      UOUPWCVIVRBCWCVHVQVGVBVLVFFUQURUSUPUTVA $.

    $( A join's first argument is less than or equal to the join.  (Contributed
       by NM, 16-Sep-2011.) $)
    lejoin1 $p |- ( ph -> X .<_ ( X .\/ Y ) ) $=
      ( vz co wbr cv wa wi wral joinlem simplld ) AGGHCQZERHUEERGPSZERHUFERTUEU
      FERUAPBUBAPBCDEFGHIJKLMNOUCUD $.

    $( A join's second argument is less than or equal to the join.
       (Contributed by NM, 16-Sep-2011.) $)
    lejoin2 $p |- ( ph -> Y .<_ ( X .\/ Y ) ) $=
      ( vz co wbr wa cv wi wral joinlem simplr syl ) AGGHCQZERZHUFERZSGPTZERHUI
      ERSUFUIERUAPBUBZSUHAPBCDEFGHIJKLMNOUCUGUHUJUDUE $.
  $}

  ${
    $d z B $.  $d z .\/ $.  $d z K $.  $d z .<_ $.  $d z X $.  $d z Y $.
    $d z Z $.
    joinle.b $e |- B = ( Base ` K ) $.
    joinle.l $e |- .<_ = ( le ` K ) $.
    joinle.j $e |- .\/ = ( join ` K ) $.
    joinle.k $e |- ( ph -> K e. Poset ) $.
    joinle.x $e |- ( ph -> X e. B ) $.
    joinle.y $e |- ( ph -> Y e. B ) $.
    joinle.z $e |- ( ph -> Z e. B ) $.
    joinle.e $e |- ( ph -> <. X , Y >. e. dom .\/ ) $.
    $( A join is less than or equal to a third value iff each argument is less
       than or equal to the third value.  (Contributed by NM, 16-Sep-2011.) $)
    joinle $p |- ( ph -> ( ( X .<_ Z /\ Y .<_ Z ) <-> ( X .\/ Y ) .<_ Z ) ) $=
      ( wbr wa wcel cpo vz co cv wral joinlem simprd wceq breq2 anbi12d imbi12d
      wi rspcva syl2anc lejoin1 joincl postr syl13anc mpand lejoin2 jcad impbid
      ) AFHEQZGHEQZRZFGCUBZHEQZAHBSZFUAUCZEQZGVHEQZRZVEVHEQZUKZUABUDZVDVFUKZOAF
      VEEQZGVEEQZRVNAUABCDETFGIJKLMNPUEUFVMVOUAHBVHHUGZVKVDVLVFVRVIVBVJVCVHHFEU
      HVHHGEUHUIVHHVEEUHUJULUMAVFVBVCAVPVFVBABCDETFGIJKLMNPUNADTSZFBSVEBSZVGVPV
      FRVBUKLMABCDTFGIKLMNPUOZOBDEFVEHIJUPUQURAVQVFVCABCDETFGIJKLMNPUSAVSGBSVTV
      GVQVFRVCUKLNWAOBDEGVEHIJUPUQURUTVA $.
  $}

  ${
    $d p x y z K $.  $d p z G $.
    meetfval.u $e |- G = ( glb ` K ) $.
    meetfval.m $e |- ./\ = ( meet ` K ) $.
    $( Value of meet function for a poset.  (Contributed by NM, 12-Sep-2011.)
       (Revised by NM, 9-Sep-2018.)  TODO: prove ~ meetfval2 first to reduce
       net proof size (existence part)? $)
    meetfval $p |- ( K e. V
             -> ./\ = { <. <. x , y >. , z >. | { x , y } G z } ) $=
      ( vp wcel cvv cv coprab wceq cfv wa a1i eqid wal cpr wbr elex cbs oprabex
      cmee fvex wmo moeq wi wss wfun wb glbfun funbrfv2b ax-mp cple simpl simpr
      cdm glbelss vex prss syl6ibr eqcom biimpi anim12d syl5bi alrimiv ssoprab2
      syl ssexd cglb fveq2 syl6eqr breqd oprabbidv df-meet fvmptg mpdan syl5eq
      ex ) EGKELKZFAMZBMZUAZCMZDUBZABCNZOEGUCWCFEUFPZWIIWCWILKWJWIOWCWIWDEUDPZK
      WEWKKQZWGWFDPZOZQZABCNZLWPLKWCWNABCWKWKWPEUDUGZWQWNCUHWLCWMUIRWPSUERWCWHW
      OUJZCTZBTZATWIWPUKWCWTAWCWSBWCWRCWHWFDUTKZWMWGOZQZWCWODULWHXCUMDEHUNWFWGD
      UOUPWCXAWLXBWNWCXAWFWKUKZWLWCXAXDWCXAQWKWFDEEUQPZLWKSXESHWCXAURWCXAUSVAWB
      WDWEWKAVBBVBVCVDXBWNUJWCXBWNWMWGVEVFRVGVHVIVIVIWHWOABCVJVKVLJEWFWGJMZVMPZ
      UBZABCNWILLUFXFEOZXHWHABCXIXGDWFWGXIXGEVMPDXFEVMVNHVOVPVQABCJVRVSVTWAVK
      $.

    $( Value of meet function for a poset.  (Contributed by NM, 12-Sep-2011.)
       (Revised by NM, 9-Sep-2018.) $)
    meetfval2 $p |- ( K e. V
           -> ./\ = { <. <. x , y >. , z >. | ( { x , y } e. dom G
               /\ z = ( G ` { x , y } ) ) } ) $=
      ( wcel cv cpr wbr coprab cdm cfv wceq wa meetfval wfun wb funbrfv2b ax-mp
      glbfun eqcom anbi2i bitri oprabbii syl6eq ) EGJFAKBKLZCKZDMZABCNUJDOJZUKU
      JDPZQZRZABCNABCDEFGHISULUPABCULUMUNUKQZRZUPDTULURUADEHUDUJUKDUBUCUQUOUMUN
      UKUEUFUGUHUI $.

    $( Domain of meet function for a poset-type structure.  (Contributed by NM,
       16-Sep-2018.) $)
    meetdm $p |- ( K e. V
            -> dom ./\ = { <. x , y >. | { x , y } e. dom G } ) $=
      ( vz wcel cdm cv cpr cfv wceq wa coprab copab meetfval2 wex dmeqd dmoprab
      fvex isseti 19.42v mpbiran2 opabbii eqtri syl6eq ) DFJZEKALBLMZCKJZILUKCN
      ZOZPZABIQZKZULABRZUJEUPABICDEFGHSUAUQUOITZABRURUOABIUBUSULABUSULUNITIUMUK
      CUCUDULUNIUEUFUGUHUI $.
  $}

  ${
    $d x y z K $.  $d x y z G $.  $d x y z X $.  $d x y z Y $.
    meetdef.u $e |- G = ( glb ` K ) $.
    meetdef.m $e |- ./\ = ( meet ` K ) $.
    meetdef.k $e |- ( ph -> K e. V ) $.
    meetdef.x $e |- ( ph -> X e. W ) $.
    meetdef.y $e |- ( ph -> Y e. Z ) $.
    $( Two ways to say that a meet is defined.  (Contributed by NM,
       9-Sep-2018.) $)
    meetdef $p |- ( ph
       -> ( <. X , Y >. e. dom ./\ <-> { X , Y } e. dom G ) ) $=
      ( vx vy cdm wcel cv cpr cop copab wb meetdm eleq2d syl preq1 eleq1d preq2
      wceq opelopabg syl2anc bitrd ) AGHUAZDQZRZUNOSZPSZTZBQZRZOPUBZRZGHTZUTRZA
      CERZUPVCUCLVFUOVBUNOPBCDEJKUDUEUFAGFRHIRVCVEUCMNVAGURTZUTRVEOPGHFIUQGUJUS
      VGUTUQGURUGUHURHUJVGVDUTURHGUIUHUKULUM $.

    $( Meet value.  Since both sides evaluate to ` (/) ` when they don't exist,
       for convenience we drop the ` { X , Y } e. dom G ` requirement.
       (Contributed by NM, 9-Sep-2018.) $)
    meetval $p |- ( ph -> ( X ./\ Y ) = ( G ` { X , Y } ) ) $=
      ( vx vy vz wcel wceq wa cpr cdm co cv coprab meetfval2 oveqd adantr simpr
      cfv syl eqidd wi cvv fvexd w3a preq12 eleq1d 3adant3 simp3 fveq2d eqeq12d
      wb anbi12d moeq moani ovigg syl3anc mp2and eqtrd wn c0 cop meetdef notbid
      eqid df-ov ndmfv syl5eq syl6bir imp adantl eqtr4d pm2.61dan ) AGHUAZBUBZR
      ZGHDUCZWEBUJZSAWGTZWHGHOUDZPUDZUAZWFRZQUDZWMBUJZSZTZOPQUEZUCZWIAWHWTSWGAD
      WSGHACERDWSSLOPQBCDEJKUFUKUGUHWJWGWIWISZWTWISZAWGUIWJWIULAWGXATZXBUMZWGAG
      FRHIRWIUNRXDMNAWEBUOWRXCOPQGHWIWSFIUNWKGSZWLHSZWOWISZUPZWNWGWQXAXEXFWNWGV
      CXGXEXFTZWMWEWFWKWLGHUQZURUSXHWOWIWPWIXEXFXGUTXEXFWPWISXGXIWMWEBXJVAUSVBV
      DWQWNQQWPVEVFWSVPVGVHUHVIVJAWGVKZTWHVLWIAXKWHVLSZAXKGHVMZDUBRZVKZXLAXNWGA
      BCDEFGHIJKLMNVNVOXOWHXMDUJVLGHDVQXMDVRVSVTWAXKWIVLSAWEBVRWBWCWD $.
  $}

  ${
    meetcl.b $e |- B = ( Base ` K ) $.
    meetcl.m $e |- ./\ = ( meet ` K ) $.
    meetcl.k $e |- ( ph -> K e. V ) $.
    meetcl.x $e |- ( ph -> X e. B ) $.
    meetcl.y $e |- ( ph -> Y e. B ) $.
    meetcl.e $e |- ( ph -> <. X , Y >. e. dom ./\ ) $.
    $( Closure of meet of elements in the domain.  (Contributed by NM,
       12-Sep-2018.) $)
    meetcl $p |- ( ph -> ( X ./\ Y ) e. B ) $=
      ( co cpr cglb cfv eqid cdm wcel meetval cop meetdef mpbid glbcl eqeltrd )
      AFGDNFGOZCPQZQBAUHCDEBFGBUHRZIJKLUAABUGUHCEHUIJAFGUBDSTUGUHSTMAUHCDEBFGBU
      IIJKLUCUDUEUF $.
  $}

  ${
    $d x y ./\ $.  $d x y B $.  $d x y K $.  $d x y ph $.
    meetdmss.b $e |- B = ( Base ` K ) $.
    meetdmss.j $e |- ./\ = ( meet ` K ) $.
    meetdmss.k $e |- ( ph -> K e. V ) $.
    $( Subset property of domain of meet.  (Contributed by NM, 12-Sep-2018.) $)
    meetdmss $p |- ( ph -> dom ./\ C_ ( B X. B ) ) $=
      ( vx vy cdm wrel cv cfv wcel eqid cvv vex a1i wa cxp copab relopab meetdm
      cpr cglb wceq syl releqd mpbiri cop meetdef wss cple adantr simpr glbelss
      ex prss opelxpi sylbir syl6 sylbid relssdv ) AIJDKZBBUAZAVELIMZJMZUEZCUFN
      ZKOZIJUBZLVKIJUCAVEVLACEOZVEVLUGHIJVJCDEVJPZGUDUHUIUJAVGVHUKZVEOVKVOVFOZA
      VJCDEQVGVHQVNGHVGQOAIRZSVHQOAJRZSULAVKVIBUMZVPAVKVSAVKTBVIVJCCUNNZEFVTPVN
      AVMVKHUOAVKUPUQURVSVGBOVHBOTVPVGVHBVQVRUSVGVHBBUTVAVBVCVD $.
  $}

  ${
    $d x z B $.  $d x z ./\ $.  $d x y z K $.  $d y .<_ $.  $d x y z X $.
    $d x y z Y $.
    meetval2.b $e |- B = ( Base ` K ) $.
    meetval2.l $e |- .<_ = ( le ` K ) $.
    meetval2.m $e |- ./\ = ( meet ` K ) $.
    meetval2.k $e |- ( ph -> K e. V ) $.
    meetval2.x $e |- ( ph -> X e. B ) $.
    meetval2.y $e |- ( ph -> Y e. B ) $.
    $( Lemma for ~ meetval2 and ~ meeteu .  (Contributed by NM, 12-Sep-2018.)
       TODO: combine this through meeteu into meetlem? $)
    meetval2lem $p |- ( ( X e. B /\ Y e. B )
  -> ( ( A. y e. { X , Y } x .<_ y
        /\ A. z e. B ( A. y e. { X , Y } z .<_ y -> z .<_ x ) )
  <-> ( ( x .<_ X /\ x .<_ Y )
        /\ A. z e. B ( ( z .<_ X /\ z .<_ Y ) -> z .<_ x ) ) ) ) $=
      ( wbr wral breq2 wcel wa cv cpr wi ralprg imbi1d ralbidv anbi12d ) JEUAKE
      UAUBZBUCZCUCZGRZCJKUDZSUKJGRZUKKGRZUBDUCZULGRZCUNSZUQUKGRZUEZDESUQJGRZUQK
      GRZUBZUTUEZDESUMUOUPCJKEEULJUKGTULKUKGTUFUJVAVEDEUJUSVDUTURVBVCCJKEEULJUQ
      GTULKUQGTUFUGUHUI $.

    $( Value of meet for a poset with LUB expanded.  (Contributed by NM,
       16-Sep-2011.)  (Revised by NM, 11-Sep-2018.) $)
    meetval2 $p |- ( ph ->
      ( X ./\ Y ) = ( iota_ x e. B ( ( x .<_ X /\ x .<_ Y )
              /\ A. z e. B ( ( z .<_ X /\ z .<_ Y ) -> z .<_ x ) ) ) ) $=
      ( vy wbr wral wa co cpr cglb cfv cv crio eqid meetval biid wcel wss prssi
      wi syl2anc glbval wceq meetval2lem riotabidv 3eqtrd ) AIJGUAIJUBZEUCUDZUD
      BUEZQUEZFRQUTSCUEZVCFRQUTSVDVBFRZUMCDSTZBDUFZVBIFRVBJFRTVDIFRVDJFRTVEUMCD
      STZBDUFZAVAEGHDIJDVAUGZMNOPUHAVFBQCDUTVAEFHKLVJVFUINAIDUJZJDUJZUTDUKOPIJD
      ULUNUOAVKVLVGVIUPOPVKVLTVFVHBDABQCDEFGHIJKLMNOPUQURUNUS $.

    $d x ph $.
    meetlem.e $e |- ( ph -> <. X , Y >. e. dom ./\ ) $.
    $( Uniqueness of meet of elements in the domain.  (Contributed by NM,
       12-Sep-2018.) $)
    meeteu $p |- ( ph -> E! x e. B ( ( x .<_ X /\ x .<_ Y )
              /\ A. z e. B ( ( z .<_ X /\ z .<_ Y ) -> z .<_ x ) ) ) $=
      ( vy wcel wbr cop cdm cv wa wi wral wreu cpr cglb cfv eqid meetdef adantr
      biid simpr glbeu ex wb meetval2lem syl2anc reubidv sylibd sylbid mpd ) AI
      JUAGUBSZBUCZIFTVFJFTUDCUCZIFTVGJFTUDVGVFFTZUECDUFUDZBDUGZQAVEIJUHZEUIUJZU
      BSZVJAVLEGHDIJDVLUKZMNOPULAVMVFRUCZFTRVKUFVGVOFTRVKUFVHUECDUFUDZBDUGZVJAV
      MVQAVMUDVPBRCDVKVLEFHKLVNVPUNAEHSVMNUMAVMUOUPUQAVPVIBDAIDSJDSVPVIUROPABRC
      DEFGHIJKLMNOPUSUTVAVBVCVD $.

    $d x .<_ $.
    $( Lemma for meet properties.  (Contributed by NM, 16-Sep-2011.)  (Revised
       by NM, 12-Sep-2018.) $)
    meetlem $p |- ( ph -> ( ( ( X ./\ Y ) .<_ X /\ ( X ./\ Y ) .<_ Y )
            /\ A. z e. B ( ( z .<_ X /\ z .<_ Y ) -> z .<_ ( X ./\ Y ) ) ) ) $=
      ( vx cv wbr wa wi wral co wsbc crio wreu meeteu riotasbc meetval2 sbceq1d
      syl mpbird ovex wceq breq1 anbi12d breq2 imbi2d ralbidv sbcie sylib ) AQR
      ZHESZVBIESZTZBRZHESVFIESTZVFVBESZUAZBCUBZTZQHIFUCZUDZVLHESZVLIESZTZVGVFVL
      ESZUAZBCUBZTZAVMVKQVKQCUEZUDZAVKQCUFWBAQBCDEFGHIJKLMNOPUGVKQCUHUKAVKQVLWA
      AQBCDEFGHIJKLMNOUIUJULVKVTQVLHIFUMVBVLUNZVEVPVJVSWCVCVNVDVOVBVLHEUOVBVLIE
      UOUPWCVIVRBCWCVHVQVGVBVLVFEUQURUSUPUTVA $.

    $( A meet's first argument is less than or equal to the meet.  (Contributed
       by NM, 16-Sep-2011.)  (Revised by NM, 12-Sep-2018.) $)
    lemeet1 $p |- ( ph -> ( X ./\ Y ) .<_ X ) $=
      ( vz co wbr cv wa wi wral meetlem simplld ) AGHEQZGDRUEHDRPSZGDRUFHDRTUFU
      EDRUAPBUBAPBCDEFGHIJKLMNOUCUD $.

    $( A meet's second argument is less than or equal to the meet.
       (Contributed by NM, 16-Sep-2011.)  (Revised by NM, 12-Sep-2018.) $)
    lemeet2 $p |- ( ph -> ( X ./\ Y ) .<_ Y ) $=
      ( vz co wbr wa cv wi wral meetlem simplr syl ) AGHEQZGDRZUFHDRZSPTZGDRUIH
      DRSUIUFDRUAPBUBZSUHAPBCDEFGHIJKLMNOUCUGUHUJUDUE $.
  $}

  ${
    $d z B $.  $d z ./\ $.  $d z K $.  $d z .<_ $.  $d z X $.  $d z Y $.
    $d z Z $.
    meetle.b $e |- B = ( Base ` K ) $.
    meetle.l $e |- .<_ = ( le ` K ) $.
    meetle.m $e |- ./\ = ( meet ` K ) $.
    meetle.k $e |- ( ph -> K e. Poset ) $.
    meetle.x $e |- ( ph -> X e. B ) $.
    meetle.y $e |- ( ph -> Y e. B ) $.
    meetle.z $e |- ( ph -> Z e. B ) $.
    meetle.e $e |- ( ph -> <. X , Y >. e. dom ./\ ) $.
    $( A meet is less than or equal to a third value iff each argument is less
       than or equal to the third value.  (Contributed by NM, 16-Sep-2011.)
       (Revised by NM, 12-Sep-2018.) $)
    meetle $p |- ( ph -> ( ( Z .<_ X /\ Z .<_ Y ) <-> Z .<_ ( X ./\ Y ) ) ) $=
      ( wbr wa wcel cpo vz co cv wral meetlem simprd wceq breq1 anbi12d imbi12d
      rspcva syl2anc lemeet1 meetcl postr syl13anc mpan2d lemeet2 jcad impbid
      wi ) AHFDQZHGDQZRZHFGEUBZDQZAHBSZUAUCZFDQZVHGDQZRZVHVEDQZVAZUABUDZVDVFVAZ
      OAVEFDQZVEGDQZRVNAUABCDETFGIJKLMNPUEUFVMVOUAHBVHHUGZVKVDVLVFVRVIVBVJVCVHH
      FDUHVHHGDUHUIVHHVEDUHUJUKULAVFVBVCAVFVPVBABCDETFGIJKLMNPUMACTSZVGVEBSZFBS
      VFVPRVBVALOABCETFGIKLMNPUNZMBCDHVEFIJUOUPUQAVFVQVCABCDETFGIJKLMNPURAVSVGV
      TGBSVFVQRVCVALOWANBCDHVEGIJUOUPUQUSUT $.
  $}

  ${
    joincom.b $e |- B = ( Base ` K ) $.
    joincom.j $e |- .\/ = ( join ` K ) $.
    $( The join of a poset commutes.  (This may not be a theorem under other
       definitions of meet.)  (Contributed by NM, 16-Sep-2011.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    joincomALT $p |- ( ( K e. V /\ X e. B /\ Y e. B ) -> ( X .\/ Y ) =
              ( Y .\/ X ) ) $=
      ( wcel w3a cpr club cfv co wceq prcom fveq2i a1i eqid joinval simp1 simp3
      simp2 3eqtr4rd ) CDIZEAIZFAIZJZFEKZCLMZMZEFKZUJMZFEBNEFBNUKUMOUHUIULUJFEP
      QRUHUJBCDAFEAUJSZHUEUFUGUAZUEUFUGUBZUEUFUGUCZTUHUJBCDAEFAUNHUOUQUPTUD $.

    $( The join of a poset commutes.  (The antecedent
       ` <. X , Y >. e. dom .\/ /\ <. Y , X >. e. dom .\/ ` i.e.  "the joins
       exist" could be omitted as an artifact of our particular join
       definition, but other definitions may require it.)  (Contributed by NM,
       16-Sep-2011.)  (Revised by NM, 12-Sep-2018.) $)
    joincom $p |- ( ( ( K e. Poset /\ X e. B /\ Y e. B ) /\
   ( <. X , Y >. e. dom .\/ /\ <. Y , X >. e. dom .\/ ) )
           -> ( X .\/ Y ) = ( Y .\/ X ) ) $=
      ( cpo wcel w3a co wceq cop cdm wa joincomALT adantr ) CHIDAIEAIJDEBKEDBKL
      DEMBNZIEDMRIOABCHDEFGPQ $.
  $}

  ${
    meetcom.b $e |- B = ( Base ` K ) $.
    meetcom.m $e |- ./\ = ( meet ` K ) $.
    $( The meet of a poset commutes.  (This may not be a theorem under other
       definitions of meet.)  (Contributed by NM, 17-Sep-2011.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    meetcomALT $p |- ( ( K e. V /\ X e. B /\ Y e. B ) -> ( X ./\ Y ) =
              ( Y ./\ X ) ) $=
      ( wcel w3a cpr cglb cfv co wceq prcom fveq2i a1i eqid meetval simp1 simp3
      simp2 3eqtr4rd ) BDIZEAIZFAIZJZFEKZBLMZMZEFKZUJMZFECNEFCNUKUMOUHUIULUJFEP
      QRUHUJBCDAFEAUJSZHUEUFUGUAZUEUFUGUBZUEUFUGUCZTUHUJBCDAEFAUNHUOUQUPTUD $.

    $( The meet of a poset commutes.  (The antecedent
       ` <. X , Y >. e. dom ./\ /\ <. Y , X >. e. dom ./\ ` i.e.  "the meets
       exist" could be omitted as an artifact of our particular join
       definition, but other definitions may require it.)  (Contributed by NM,
       17-Sep-2011.)  (Revised by NM, 12-Sep-2018.) $)
    meetcom $p |- ( ( ( K e. Poset /\ X e. B /\ Y e. B ) /\
   ( <. X , Y >. e. dom ./\ /\ <. Y , X >. e. dom ./\ ) )
           -> ( X ./\ Y ) = ( Y ./\ X ) ) $=
      ( cpo wcel w3a co wceq cop cdm wa meetcomALT adantr ) BHIDAIEAIJDECKEDCKL
      DEMCNZIEDMRIOABCHDEFGPQ $.
  $}

  $c Toset $.

  $( Extend class notation with the class of all tosets. $)
  ctos $a class Toset $.

  ${
    $d f b r x y $.
    $( Define the class of totally ordered sets (tosets).  (Contributed by FL,
       17-Nov-2014.) $)
    df-toset $a |- Toset = { f e. Poset | [. ( Base ` f ) / b ].
      [. ( le ` f ) / r ]. A. x e. b A. y e. b ( x r y \/ y r x ) } $.
  $}

  ${
    $d b f r x y B $.  $d b f r K $.  $d b f r x y .<_ $.
    istos.b $e |- B = ( Base ` K ) $.
    istos.l $e |- .<_ = ( le ` K ) $.
    $( The predicate "is a toset."  (Contributed by FL, 17-Nov-2014.) $)
    istos $p |- ( K e. Toset <-> ( K e. Poset
               /\ A. x e. B A. y e. B ( x .<_ y \/ y .<_ x ) ) ) $=
      ( vr vb vf cv wbr wo wral cple cfv wsbc cbs wceq wi ctos sbceq1d sbceqbid
      cpo fveq2 fvex wb wa eqtr breq orbi12d 2ralbidv raleq raleqbi1dv sylan9bb
      ex syl expcom eqcoms ax-mp syl5com imp sbc2ie syl6bb df-toset elrab2 ) AK
      ZBKZHKZLZVHVGVILZMZBIKZNAVMNZHJKZOPZQZIVORPZQZVGVHELZVHVGELZMZBCNZACNZJDU
      DUAVODSZVSVNHDOPZQZIDRPZQWDWEVQWGIVRWHVODRUEWEVNHVPWFVODOUEUBUCVNWDIHWHWF
      DRUFDOUFVMWHSZVIWFSZVNWDUGZCWHSWIWJWKTZTZFWMWHCWIWHCSZWLWIWNUHVMCSZWJWKVM
      WHCUIEWFSWJWOWKTZTZGWQWFEWJWFESZWPWJWRUHVIESZWPVIWFEUIWSWOWKWSVNWBBVMNZAV
      MNWOWDWSVLWBABVMVMWSVJVTVKWAVGVHVIEUJVHVGVIEUJUKULWTWCAVMCWBBVMCUMUNUOUPU
      QURUSUTVAURUSUTVBVCVDABJHIVEVF $.
  $}

  ${
    $d x y B $.  $d x y K $.  $d x y .<_ $.  $d x y .< $.
    tosso.b $e |- B = ( Base ` K ) $.
    tosso.l $e |- .<_ = ( le ` K ) $.
    tosso.s $e |- .< = ( lt ` K ) $.
    $( Write the totally ordered set structure predicate in terms of the proper
       class strict order predicate.  (Contributed by Mario Carneiro,
       8-Feb-2015.) $)
    tosso $p |- ( K e. V ->
      ( K e. Toset <-> ( .< Or B /\ ( _I |` B ) C_ .<_ ) ) ) $=
      ( vx vy wcel cv wbr wo wral wa weq wb pleval2 bitri cpo wpo cid cres ctos
      wss w3o wor 3expb equcom orbi2i syl6bb 3com23 orbi12d df-3or or32 orordir
      w3a syl6bbr 2ralbidva pm5.32i pospo anbi1d syl5bb istos df-so anbi1i an32
      3bitr4g ) CEKZCUAKZILZJLZDMZVMVLDMZNZJAOIAOZPZABUBZUCAUDDUFZPZVLVMBMZIJQZ
      VMVLBMZUGZJAOIAOZPZCUEKABUHZVTPZVRVKWFPVJWGVKVQWFVKVPWEIJAAVKVLAKZVMAKZPP
      ZVPWBWCNZWDWCNZNZWEWLVNWMVOWNVKWJWKVNWMRABCDVLVMFGHSUIVKWJWKVOWNRZVKWKWJW
      PVKWKWJURVOWDJIQZNWNABCDVMVLFGHSWQWCWDJIUJUKULUMUIUNWEWMWDNZWOWBWCWDUOWRW
      BWDNWCNWOWBWCWDUPWBWDWCUQTTUSUTVAVJVKWAWFABCDEFGHVBVCVDIJACDFGVEWIVSWFPZV
      TPWGWHWSVTIJABVFVGVSWFVTVHTVI $.
  $}

  $c 1. $.
  $c 0. $.
  $c Lat $.

  $( Extend class notation with poset zero. $)
  cp0 $a class 0. $.

  $( Extend class notation with poset unit. $)
  cp1 $a class 1. $.

  $( Define poset zero.  (Contributed by NM, 12-Oct-2011.) $)
  df-p0 $a |- 0. = ( p e. _V |-> ( ( glb ` p ) ` ( Base ` p ) ) ) $.

  $( Define poset unit.  (Contributed by NM, 22-Oct-2011.) $)
  df-p1 $a |- 1. = ( p e. _V |-> ( ( lub ` p ) ` ( Base ` p ) ) ) $.

  ${
    $d p B $.  $d p G $.  $d p K $.
    p0val.b $e |- B = ( Base ` K ) $.
    p0val.g $e |- G = ( glb ` K ) $.
    p0val.z $e |- .0. = ( 0. ` K ) $.
    $( Value of poset zero.  (Contributed by NM, 12-Oct-2011.) $)
    p0val $p |- ( K e. V -> .0. = ( G ` B ) ) $=
      ( vp wcel cvv cfv wceq elex cp0 cv cbs cglb fveq2 syl6eqr df-p0 fvmpt syl
      fveq12d fvex syl5eq ) CDJCKJZEABLZMCDNUGECOLUHHICIPZQLZUIRLZLUHKOUICMZUJA
      UKBULUKCRLBUICRSGTULUJCQLAUICQSFTUDIUAABUEUBUFUC $.
  $}

  ${
    $d k B $.  $d k K $.  $d k U $.
    p1val.b $e |- B = ( Base ` K ) $.
    p1val.u $e |- U = ( lub ` K ) $.
    p1val.t $e |- .1. = ( 1. ` K ) $.
    $( Value of poset zero.  (Contributed by NM, 22-Oct-2011.) $)
    p1val $p |- ( K e. V -> .1. = ( U ` B ) ) $=
      ( vk wcel cvv cfv wceq elex cp1 cv cbs club fveq2 syl6eqr df-p1 fvmpt syl
      fveq12d fvex syl5eq ) DEJDKJZCABLZMDENUGCDOLUHHIDIPZQLZUIRLZLUHKOUIDMZUJA
      UKBULUKDRLBUIDRSGTULUJDQLAUIDQSFTUDIUAABUEUBUFUC $.
  $}

  ${
    p0le.b $e |- B = ( Base ` K ) $.
    p0le.g $e |- G = ( glb ` K ) $.
    p0le.l $e |- .<_ = ( le ` K ) $.
    p0le.0 $e |- .0. = ( 0. ` K ) $.
    p0le.k $e |- ( ph -> K e. V ) $.
    p0le.x $e |- ( ph -> X e. B ) $.
    p0le.d $e |- ( ph -> B e. dom G ) $.
    $( Any element is less than or equal to a poset's upper bound (if defined).
       (Contributed by NM, 22-Oct-2011.)  (Revised by NM, 13-Sep-2018.) $)
    p0le $p |- ( ph -> .0. .<_ X ) $=
      ( cfv wcel wceq p0val syl glble eqbrtrd ) AHBCPZGEADFQHUCRMBCDFHIJLSTABBC
      DEFGIKJMONUAUB $.
  $}

  ${
    ple1.b $e |- B = ( Base ` K ) $.
    ple1.u $e |- U = ( lub ` K ) $.
    ple1.l $e |- .<_ = ( le ` K ) $.
    ple1.1 $e |- .1. = ( 1. ` K ) $.
    ple1.k $e |- ( ph -> K e. V ) $.
    ple1.x $e |- ( ph -> X e. B ) $.
    ple1.d $e |- ( ph -> B e. dom U ) $.
    $( Any element is less than or equal to a poset's upper bound (if defined).
       (Contributed by NM, 22-Oct-2011.)  (Revised by NM, 13-Sep-2018.) $)
    ple1 $p |- ( ph -> X .<_ .1. ) $=
      ( cfv luble wcel wceq p1val syl breqtrrd ) AHBCPZDFABBCEFGHIKJMONQAEGRDUC
      SMBCDEGIJLTUAUB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Lattices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend class notation with the class of all lattices. $)
  clat $a class Lat $.

  ${
    $( Define the class of all lattices.  A lattice is a poset in which the
       join and meet of any two elements always exists.  (Contributed by NM,
       18-Oct-2012.)  (Revised by NM, 12-Sep-2018.) $)
    df-lat $a |- Lat = { p e. Poset |
         ( dom ( join ` p ) = ( ( Base ` p ) X. ( Base ` p ) )
        /\ dom ( meet ` p ) = ( ( Base ` p ) X. ( Base ` p ) ) ) } $.
  $}

  ${
    $d l B $.  $d l .\/ $.  $d l K $.  $d l ./\ $.
    islat.b $e |- B = ( Base ` K ) $.
    islat.j $e |- .\/ = ( join ` K ) $.
    islat.m $e |- ./\ = ( meet ` K ) $.
    $( The predicate "is a lattice."  (Contributed by NM, 18-Oct-2012.)
       (Revised by NM, 12-Sep-2018.) $)
    islat $p |- ( K e. Lat <-> ( K e. Poset /\
          ( dom .\/ = ( B X. B ) /\ dom ./\ = ( B X. B ) ) ) ) $=
      ( vl cjn cfv cdm cbs cxp wceq cmee wa fveq2 syl6eqr dmeqd eqeq12d cv clat
      cpo sqxpeqd anbi12d df-lat elrab2 ) HUAZIJZKZUHLJZUKMZNZUHOJZKZULNZPBKZAA
      MZNZDKZURNZPHCUCUBUHCNZUMUSUPVAVBUJUQULURVBUIBVBUICIJBUHCIQFRSVBUKAVBUKCL
      JAUHCLQERUDZTVBUOUTULURVBUNDVBUNCOJDUHCOQGRSVCTUEHUFUG $.
  $}

  ${
    latcl2.b $e |- B = ( Base ` K ) $.
    latcl2.j $e |- .\/ = ( join ` K ) $.
    latcl2.m $e |- ./\ = ( meet ` K ) $.
    latcl2.k $e |- ( ph -> K e. Lat ) $.
    latcl2.x $e |- ( ph -> X e. B ) $.
    latcl2.y $e |- ( ph -> Y e. B ) $.
    $( The join and meet of any two elements exist.  (Contributed by NM,
       14-Sep-2018.) $)
    latcl2 $p |- ( ph ->
        ( <. X , Y >. e. dom .\/ /\ <. X , Y >. e. dom ./\ ) ) $=
      ( cop cdm wcel cxp wceq wa eleqtrrd opelxpi syl2anc cpo clat islat simprl
      sylib syl simprrd jca ) AFGNZCOZPUKEOZPAUKBBQZULAFBPGBPUKUNPLMFGBBUAUBZAD
      UCPZULUNRZUMUNRZSSZUQADUDPUSKBCDEHIJUEUGZUPUQURUFUHTAUKUNUMUOAUPUQURUTUIT
      UJ $.
  $}

  ${
    latlem.b $e |- B = ( Base ` K ) $.
    latlem.j $e |- .\/ = ( join ` K ) $.
    latlem.m $e |- ./\ = ( meet ` K ) $.
    $( Lemma for lattice properties.  (Contributed by NM, 14-Sep-2011.) $)
    latlem $p |- ( ( K e. Lat /\ X e. B /\ Y e. B ) ->
           ( ( X .\/ Y ) e. B /\ ( X ./\ Y ) e. B ) ) $=
      ( clat wcel w3a co simp1 cdm wceq wa sylbi 3ad2ant1 eleqtrrd simp2 simprl
      simp3 cop cxp opelxpi 3adant1 cpo islat joincl simprr meetcl jca ) CJKZEA
      KZFAKZLZEFBMAKEFDMAKUQABCJEFGHUNUOUPNZUNUOUPUAZUNUOUPUCZUQEFUDZAAUEZBOZUO
      UPVAVBKUNEFAAUFUGZUNUOVCVBPZUPUNCUHKZVEDOZVBPZQQZVEABCDGHIUIZVFVEVHUBRSTU
      JUQACDJEFGIURUSUTUQVAVBVGVDUNUOVHUPUNVIVHVJVFVEVHUKRSTULUM $.
  $}

  $( A lattice is a poset.  (Contributed by NM, 17-Sep-2011.) $)
  latpos $p |- ( K e. Lat -> K e. Poset ) $=
    ( clat wcel cpo cjn cfv cdm cbs cxp wceq cmee wa eqid islat simplbi ) ABCAD
    CAEFZGAHFZQIZJAKFZGRJLQPASQMPMSMNO $.

  ${
    latjcl.b $e |- B = ( Base ` K ) $.
    latjcl.j $e |- .\/ = ( join ` K ) $.
    $( Closure of join operation in a lattice.  ( ~ chjcom analog.)
       (Contributed by NM, 14-Sep-2011.) $)
    latjcl $p |- ( ( K e. Lat /\ X e. B /\ Y e. B ) -> ( X .\/ Y ) e. B ) $=
      ( clat wcel w3a co cmee cfv eqid latlem simpld ) CHIDAIEAIJDEBKAIDECLMZKA
      IABCQDEFGQNOP $.
  $}

  ${
    latmcl.b $e |- B = ( Base ` K ) $.
    latmcl.m $e |- ./\ = ( meet ` K ) $.
    $( Closure of meet operation in a lattice.  ( ~ incom analog.)
       (Contributed by NM, 14-Sep-2011.) $)
    latmcl $p |- ( ( K e. Lat /\ X e. B /\ Y e. B ) -> ( X ./\ Y ) e. B ) $=
      ( clat wcel w3a cjn cfv co eqid latlem simprd ) BHIDAIEAIJDEBKLZMAIDECMAI
      AQBCDEFQNGOP $.
  $}

  ${
    latref.b $e |- B = ( Base ` K ) $.
    latref.l $e |- .<_ = ( le ` K ) $.
    $( A lattice ordering is reflexive.  ( ~ ssid analog.)  (Contributed by NM,
       8-Oct-2011.) $)
    latref $p |- ( ( K e. Lat /\ X e. B ) -> X .<_ X ) $=
      ( clat wcel cpo wbr latpos posref sylan ) BGHBIHDAHDDCJBKABCDEFLM $.

    $( A lattice ordering is asymmetric.  ( ~ eqss analog.)  (Contributed by
       NM, 22-Oct-2011.) $)
    latasymb $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
                -> ( ( X .<_ Y /\ Y .<_ X ) <-> X = Y ) ) $=
      ( clat wcel cpo wbr wa wceq wb latpos posasymb syl3an1 ) BHIBJIDAIEAIDECK
      EDCKLDEMNBOABCDEFGPQ $.

    $( A lattice ordering is asymmetric.  ( ~ eqss analog.)  (Contributed by
       NM, 8-Oct-2011.) $)
    latasym $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
                -> ( ( X .<_ Y /\ Y .<_ X ) -> X = Y ) ) $=
      ( clat wcel w3a wbr wa wceq latasymb biimpd ) BHIDAIEAIJDECKEDCKLDEMABCDE
      FGNO $.

    $( A lattice ordering is transitive.  ( ~ sstr analog.)  (Contributed by
       NM, 17-Nov-2011.) $)
    lattr $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) )
                -> ( ( X .<_ Y /\ Y .<_ Z ) -> X .<_ Z ) ) $=
      ( clat wcel cpo w3a wbr wa wi latpos postr sylan ) BIJBKJDAJEAJFAJLDECMEF
      CMNDFCMOBPABCDEFGHQR $.
  $}

  ${
    latasymd.b $e |- B = ( Base ` K ) $.
    latasymd.l $e |- .<_ = ( le ` K ) $.
    latasymd.3 $e |- ( ph -> K e. Lat ) $.
    latasymd.4 $e |- ( ph -> X e. B ) $.
    latasymd.5 $e |- ( ph -> Y e. B ) $.
    latasymd.6 $e |- ( ph -> X .<_ Y ) $.
    latasymd.7 $e |- ( ph -> Y .<_ X ) $.
    $( Deduce equality from lattice ordering.  ( ~ eqssd analog.)  (Contributed
       by NM, 18-Nov-2011.) $)
    latasymd $p |- ( ph -> X = Y ) $=
      ( wbr wceq clat wcel wa wb latasymb syl3anc mpbi2and ) AEFDNZFEDNZEFOZLMA
      CPQEBQFBQUCUDRUESIJKBCDEFGHTUAUB $.
  $}

  ${
    lattrd.b $e |- B = ( Base ` K ) $.
    lattrd.l $e |- .<_ = ( le ` K ) $.
    lattrd.1 $e |- ( ph -> K e. Lat ) $.
    lattrd.2 $e |- ( ph -> X e. B ) $.
    lattrd.3 $e |- ( ph -> Y e. B ) $.
    lattrd.4 $e |- ( ph -> Z e. B ) $.
    lattrd.5 $e |- ( ph -> X .<_ Y ) $.
    lattrd.6 $e |- ( ph -> Y .<_ Z ) $.
    $( A lattice ordering is transitive.  Deduction version of ~ lattr .
       (Contributed by NM, 3-Sep-2012.) $)
    lattrd $p |- ( ph -> X .<_ Z ) $=
      ( wbr clat wcel wa wi lattr syl13anc mp2and ) AEFDPZFGDPZEGDPZNOACQREBRFB
      RGBRUDUESUFTJKLMBCDEFGHIUAUBUC $.
  $}

  ${
    latjcom.b $e |- B = ( Base ` K ) $.
    latjcom.j $e |- .\/ = ( join ` K ) $.
    $( The join of a lattice commutes.  ( ~ chjcom analog.)  (Contributed by
       NM, 16-Sep-2011.) $)
    latjcom $p |- ( ( K e. Lat /\ X e. B /\ Y e. B ) -> ( X .\/ Y ) =
              ( Y .\/ X ) ) $=
      ( clat wcel w3a cop cdm wa co wceq cxp opelxpi 3adant1 cpo eleqtrrd islat
      cmee cfv eqid simprl sylbi 3ad2ant1 ancoms latpos joincom syl3anl1 mpdan
      jca ) CHIZDAIZEAIZJZDEKZBLZIZEDKZUSIZMZDEBNEDBNOZUQUTVBUQURAAPZUSUOUPURVE
      IUNDEAAQRUNUOUSVEOZUPUNCSIZVFCUBUCZLVEOZMMVFABCVHFGVHUDUAVGVFVIUEUFUGZTUQ
      VAVEUSUOUPVAVEIZUNUPUOVKEDAAQUHRVJTUMUNVGUOUPVCVDCUIABCDEFGUJUKUL $.
  $}

  ${
    latlej.b $e |- B = ( Base ` K ) $.
    latlej.l $e |- .<_ = ( le ` K ) $.
    latlej.j $e |- .\/ = ( join ` K ) $.
    $( A join's first argument is less than or equal to the join.  ( ~ chub1
       analog.)  (Contributed by NM, 17-Sep-2011.) $)
    latlej1 $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
            -> X .<_ ( X .\/ Y ) ) $=
      ( clat wcel w3a simp1 simp2 simp3 cop cdm cmee cfv eqid latcl2 lejoin1
      simpld ) CJKZEAKZFAKZLZABCDJEFGHIUDUEUFMZUDUEUFNZUDUEUFOZUGEFPZBQKUKCRSZQ
      KUGABCULEFGIULTUHUIUJUAUCUB $.

    $( A join's second argument is less than or equal to the join.  ( ~ chub2
       analog.)  (Contributed by NM, 17-Sep-2011.) $)
    latlej2 $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
            -> Y .<_ ( X .\/ Y ) ) $=
      ( clat wcel w3a simp1 simp2 simp3 cop cdm cmee cfv eqid latcl2 lejoin2
      simpld ) CJKZEAKZFAKZLZABCDJEFGHIUDUEUFMZUDUEUFNZUDUEUFOZUGEFPZBQKUKCRSZQ
      KUGABCULEFGIULTUHUIUJUAUCUB $.

    $( A join is less than or equal to a third value iff each argument is less
       than or equal to the third value.  ( ~ chlub analog.)  (Contributed by
       NM, 17-Sep-2011.) $)
    latjle12 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) )
                      -> ( ( X .<_ Z /\ Y .<_ Z ) <-> ( X .\/ Y ) .<_ Z ) ) $=
      ( clat wcel w3a wa cpo latpos adantr simpr1 simpr2 cdm cop cmee cfv simpl
      simpr3 eqid latcl2 simpld joinle ) CKLZEALZFALZGALZMZNZABCDEFGHIJUJCOLUNC
      PQUJUKULUMRZUJUKULUMSZUJUKULUMUEUOEFUAZBTLURCUBUCZTLUOABCUSEFHJUSUFUJUNUD
      UPUQUGUHUI $.

    $( Less-than-or-equal-to in terms of join.  ( ~ chlejb1 analog.)
       (Contributed by NM, 21-Oct-2011.) $)
    latleeqj1 $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
            -> ( X .<_ Y <-> ( X .\/ Y ) = Y ) ) $=
      ( clat wcel w3a wbr co wa wceq latref biantrud wb bitrd simp1 simp2 simp3
      3adant2 latjle12 syl13anc latlej2 latpos 3ad2ant1 latjcl posasymb syl3anc
      cpo ) CJKZEAKZFAKZLZEFDMZEFBNZFDMZFUSDMZOZUSFPZUQURUTVBUQURURFFDMZOZUTUQV
      DURUNUPVDUOACDFGHQUDRUQUNUOUPUPVEUTSUNUOUPUAUNUOUPUBUNUOUPUCZVFABCDEFFGHI
      UEUFTUQVAUTABCDEFGHIUGRTUQCUMKZUSAKUPVBVCSUNUOVGUPCUHUIABCEFGIUJVFACDUSFG
      HUKULT $.

    $( Less-than-or-equal-to in terms of join.  ( ~ chlejb2 analog.)
       (Contributed by NM, 14-Nov-2011.) $)
    latleeqj2 $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
            -> ( X .<_ Y <-> ( Y .\/ X ) = Y ) ) $=
      ( clat wcel w3a wbr co wceq latleeqj1 latjcom eqeq1d bitrd ) CJKEAKFAKLZE
      FDMEFBNZFOFEBNZFOABCDEFGHIPTUAUBFABCEFGIQRS $.

    $( Add join to both sides of a lattice ordering.  ( ~ chlej1i analog.)
       (Contributed by NM, 8-Nov-2011.) $)
    latjlej1 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) )
       -> ( X .<_ Y -> ( X .\/ Z ) .<_ ( Y .\/ Z ) ) ) $=
      ( clat wcel w3a wa wbr co latlej1 3adant3r1 wi simpl simpr1 simpr2 latjcl
      lattr syl13anc mpan2d latlej2 jctird simpr3 3jca latjle12 syldan sylibd
      wb ) CKLZEALZFALZGALZMZNZEFDOZEFGBPZDOZGVBDOZNZEGBPVBDOZUTVAVCVDUTVAFVBDO
      ZVCUOUQURVGUPABCDFGHIJQRUTUOUPUQVBALZVAVGNVCSUOUSTUOUPUQURUAZUOUPUQURUBUO
      UQURVHUPABCFGHJUCRZACDEFVBHIUDUEUFUOUQURVDUPABCDFGHIJUGRUHUOUSUPURVHMVEVF
      UNUTUPURVHVIUOUPUQURUIVJUJABCDEGVBHIJUKULUM $.

    $( Add join to both sides of a lattice ordering.  ( ~ chlej2i analog.)
       (Contributed by NM, 8-Nov-2011.) $)
    latjlej2 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) )
       -> ( X .<_ Y -> ( Z .\/ X ) .<_ ( Z .\/ Y ) ) ) $=
      ( clat wcel w3a wa wbr co latjlej1 wceq latjcom 3adant3r2 breq12d sylibd
      3adant3r1 ) CKLZEALZFALZGALZMNZEFDOEGBPZFGBPZDOGEBPZGFBPZDOABCDEFGHIJQUHU
      IUKUJULDUDUEUGUIUKRUFABCEGHJSTUDUFUGUJULRUEABCFGHJSUCUAUB $.

    $( Add join to both sides of a lattice ordering.  ( ~ chlej12i analog.)
       (Contributed by NM, 8-Nov-2011.) $)
    latjlej12 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B )
          /\ ( Z e. B /\ W e. B ) ) -> ( ( X .<_ Y /\ Z .<_ W )
             -> ( X .\/ Z ) .<_ ( Y .\/ W ) ) ) $=
      ( clat wcel wa wbr co wi syl13anc latjcl syl3anc w3a simp2l simp2r simp3l
      simp1 latjlej1 simp3r latjlej2 lattr syl2and ) CLMZFAMZGAMZNZHAMZEAMZNZUA
      ZFGDOZFHBPZGHBPZDOZHEDOZVAGEBPZDOZUTVDDOZURUKULUMUOUSVBQUKUNUQUEZUKULUMUQ
      UBZUKULUMUQUCZUKUNUOUPUDZABCDFGHIJKUFRURUKUOUPUMVCVEQVGVJUKUNUOUPUGZVIABC
      DHEGIJKUHRURUKUTAMZVAAMZVDAMZVBVENVFQVGURUKULUOVLVGVHVJABCFHIKSTURUKUMUOV
      MVGVIVJABCGHIKSTURUKUMUPVNVGVIVKABCGEIKSTACDUTVAVDIJUIRUJ $.

    $( An idiom to express that a lattice element differs from two others.
       (Contributed by NM, 28-May-2012.) $)
    latnlej $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B )
         /\ -. X .<_ ( Y .\/ Z ) ) -> ( X =/= Y /\ X =/= Z ) ) $=
      ( clat wcel wbr wne wa wceq 3adant3r1 breq1 syl5ibrcom necon3bd w3a co wn
      latlej1 latlej2 jcad 3impia ) CKLZEALZFALZGALZUAZEFGBUBZDMZUCZEFNZEGNZOUH
      ULOZUOUPUQURUNEFURUNEFPFUMDMZUHUJUKUSUIABCDFGHIJUDQEFUMDRSTURUNEGURUNEGPG
      UMDMZUHUJUKUTUIABCDFGHIJUEQEGUMDRSTUFUG $.

    $( An idiom to express that a lattice element differs from two others.
       (Contributed by NM, 19-Jul-2012.) $)
    latnlej1l $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B )
         /\ -. X .<_ ( Y .\/ Z ) ) -> X =/= Y ) $=
      ( clat wcel w3a co wbr wn wne latnlej simpld ) CKLEALFALGALMEFGBNDOPMEFQE
      GQABCDEFGHIJRS $.

    $( An idiom to express that a lattice element differs from two others.
       (Contributed by NM, 19-Jul-2012.) $)
    latnlej1r $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B )
         /\ -. X .<_ ( Y .\/ Z ) ) -> X =/= Z ) $=
      ( clat wcel w3a co wbr wn wne latnlej simprd ) CKLEALFALGALMEFGBNDOPMEFQE
      GQABCDEFGHIJRS $.

    $( An idiom to express that a lattice element differs from two others.
       (Contributed by NM, 10-Jul-2012.) $)
    latnlej2 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B )
         /\ -. X .<_ ( Y .\/ Z ) ) -> ( -. X .<_ Y /\ -. X .<_ Z ) ) $=
      ( wcel wbr wn wa 3adant3r1 wi lattr syl13anc mpan2d con3d clat co latlej1
      w3a simpl simpr1 simpr2 latjcl latlej2 simpr3 jcad 3impia ) CUAKZEAKZFAKZ
      GAKZUDZEFGBUBZDLZMZEFDLZMZEGDLZMZNUMUQNZUTVBVDVEVAUSVEVAFURDLZUSUMUOUPVFU
      NABCDFGHIJUCOVEUMUNUOURAKZVAVFNUSPUMUQUEZUMUNUOUPUFZUMUNUOUPUGUMUOUPVGUNA
      BCFGHJUHOZACDEFURHIQRSTVEVCUSVEVCGURDLZUSUMUOUPVKUNABCDFGHIJUIOVEUMUNUPVG
      VCVKNUSPVHVIUMUNUOUPUJVJACDEGURHIQRSTUKUL $.

    $( An idiom to express that a lattice element differs from two others.
       (Contributed by NM, 19-Jul-2012.) $)
    latnlej2l $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B )
         /\ -. X .<_ ( Y .\/ Z ) ) -> -. X .<_ Y ) $=
      ( clat wcel w3a co wbr wn latnlej2 simpld ) CKLEALFALGALMEFGBNDOPMEFDOPEG
      DOPABCDEFGHIJQR $.

    $( An idiom to express that a lattice element differs from two others.
       (Contributed by NM, 19-Jul-2012.) $)
    latnlej2r $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B )
         /\ -. X .<_ ( Y .\/ Z ) ) -> -. X .<_ Z ) $=
      ( clat wcel w3a co wbr wn latnlej2 simprd ) CKLEALFALGALMEFGBNDOPMEFDOPEG
      DOPABCDEFGHIJQR $.
  $}

  ${
    latidm.b $e |- B = ( Base ` K ) $.
    latidm.j $e |- .\/ = ( join ` K ) $.
    $( Lattice join is idempotent.  (Contributed by NM, 8-Oct-2011.) $)
    latjidm $p |- ( ( K e. Lat /\ X e. B ) -> ( X .\/ X ) = X ) $=
      ( clat wcel wa cple cfv co eqid simpl latjcl 3anidm23 simpr wbr latref wb
      latjle12 syl13anc mpbi2and latlej1 latasymd ) CGHZDAHZIZACCJKZDDBLZDEUIMZ
      UFUGNZUFUGUJAHABCDDEFOPUFUGQZUHDDUIRZUNUJDUIRZACUIDEUKSZUPUHUFUGUGUGUNUNI
      UOTULUMUMUMABCUIDDDEUKFUAUBUCUFUGDUJUIRABCUIDDEUKFUDPUE $.
  $}

  ${
    latmcom.b $e |- B = ( Base ` K ) $.
    latmcom.m $e |- ./\ = ( meet ` K ) $.
    $( The join of a lattice commutes.  (Contributed by NM, 6-Nov-2011.) $)
    latmcom $p |- ( ( K e. Lat /\ X e. B /\ Y e. B ) -> ( X ./\ Y ) =
              ( Y ./\ X ) ) $=
      ( clat wcel w3a cop cdm wa co wceq cxp opelxpi 3adant1 cpo eleqtrrd islat
      cjn cfv eqid simprr sylbi 3ad2ant1 ancoms latpos meetcom syl3anl1 mpdan
      jca ) BHIZDAIZEAIZJZDEKZCLZIZEDKZUSIZMZDECNEDCNOZUQUTVBUQURAAPZUSUOUPURVE
      IUNDEAAQRUNUOUSVEOZUPUNBSIZBUBUCZLVEOZVFMMVFAVHBCFVHUDGUAVGVIVFUEUFUGZTUQ
      VAVEUSUOUPVAVEIZUNUPUOVKEDAAQUHRVJTUMUNVGUOUPVCVDBUIABCDEFGUJUKUL $.
  $}

  ${
    latmle.b $e |- B = ( Base ` K ) $.
    latmle.l $e |- .<_ = ( le ` K ) $.
    latmle.m $e |- ./\ = ( meet ` K ) $.
    $( A meet is less than or equal to its first argument.  (Contributed by NM,
       21-Oct-2011.) $)
    latmle1 $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
            -> ( X ./\ Y ) .<_ X ) $=
      ( clat wcel w3a simp1 simp2 simp3 cop cjn cfv cdm eqid latcl2 lemeet1
      simprd ) BJKZEAKZFAKZLZABCDJEFGHIUDUEUFMZUDUEUFNZUDUEUFOZUGEFPZBQRZSKUKDS
      KUGAULBDEFGULTIUHUIUJUAUCUB $.

    $( A meet is less than or equal to its second argument.  (Contributed by
       NM, 21-Oct-2011.) $)
    latmle2 $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
            -> ( X ./\ Y ) .<_ Y ) $=
      ( clat wcel w3a simp1 simp2 simp3 cop cjn cfv cdm eqid latcl2 lemeet2
      simprd ) BJKZEAKZFAKZLZABCDJEFGHIUDUEUFMZUDUEUFNZUDUEUFOZUGEFPZBQRZSKUKDS
      KUGAULBDEFGULTIUHUIUJUAUCUB $.

    $( An element is less than or equal to a meet iff the element is less than
       or equal to each argument of the meet.  (Contributed by NM,
       21-Oct-2011.) $)
    latlem12 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) )
                      -> ( ( X .<_ Y /\ X .<_ Z ) <-> X .<_ ( Y ./\ Z ) ) ) $=
      ( clat wcel w3a wa cpo latpos adantr simpr2 simpr3 cdm simpr1 cop cjn cfv
      eqid simpl latcl2 simprd meetle ) BKLZEALZFALZGALZMZNZABCDFGEHIJUJBOLUNBP
      QUJUKULUMRZUJUKULUMSZUJUKULUMUAUOFGUBZBUCUDZTLURDTLUOAUSBDFGHUSUEJUJUNUFU
      PUQUGUHUI $.

    $( Less-than-or-equal-to in terms of meet.  (Contributed by NM,
       7-Nov-2011.) $)
    latleeqm1 $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
            -> ( X .<_ Y <-> ( X ./\ Y ) = X ) ) $=
      ( clat wcel w3a wbr co wa wceq latref biantrurd wb bitrd 3adant3 latlem12
      simp1 simp2 syl13anc latmle1 cpo latpos 3ad2ant1 latmcl posasymb syl3anc
      simp3 ) BJKZEAKZFAKZLZEFCMZEFDNZECMZEUSCMZOZUSEPZUQURVAVBUQUREECMZUROZVAU
      QVDURUNUOVDUPABCEGHQUARUQUNUOUOUPVEVASUNUOUPUCUNUOUPUDZVFUNUOUPUMABCDEEFG
      HIUBUETUQUTVAABCDEFGHIUFRTUQBUGKZUSAKUOVBVCSUNUOVGUPBUHUIABDEFGIUJVFABCUS
      EGHUKULT $.

    $( Less-than-or-equal-to in terms of meet.  (Contributed by NM,
       7-Nov-2011.) $)
    latleeqm2 $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
            -> ( X .<_ Y <-> ( Y ./\ X ) = X ) ) $=
      ( clat wcel w3a wbr co wceq latleeqm1 latmcom eqeq1d bitrd ) BJKEAKFAKLZE
      FCMEFDNZEOFEDNZEOABCDEFGHIPTUAUBEABDEFGIQRS $.

    $( Add meet to both sides of a lattice ordering.  (Contributed by NM,
       10-Nov-2011.) $)
    latmlem1 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) )
       -> ( X .<_ Y -> ( X ./\ Z ) .<_ ( Y ./\ Z ) ) ) $=
      ( clat wcel w3a wa wbr co latmle1 3adant3r2 wi simpl latmcl simpr1 simpr2
      lattr syl13anc mpand latmle2 jctird wb simpr3 3jca latlem12 syldan sylibd
      ) BKLZEALZFALZGALZMZNZEFCOZEGDPZFCOZVBGCOZNZVBFGDPCOZUTVAVCVDUTVBECOZVAVC
      UOUPURVGUQABCDEGHIJQRUTUOVBALZUPUQVGVANVCSUOUSTUOUPURVHUQABDEGHJUARZUOUPU
      QURUBUOUPUQURUCZABCVBEFHIUDUEUFUOUPURVDUQABCDEGHIJUGRUHUOUSVHUQURMVEVFUIU
      TVHUQURVIVJUOUPUQURUJUKABCDVBFGHIJULUMUN $.

    $( Add meet to both sides of a lattice ordering.  ( ~ sslin analog.)
       (Contributed by NM, 10-Nov-2011.) $)
    latmlem2 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) )
       -> ( X .<_ Y -> ( Z ./\ X ) .<_ ( Z ./\ Y ) ) ) $=
      ( clat wcel w3a wa wbr co latmlem1 wceq latmcom 3adant3r2 breq12d sylibd
      3adant3r1 ) BKLZEALZFALZGALZMNZEFCOEGDPZFGDPZCOGEDPZGFDPZCOABCDEFGHIJQUHU
      IUKUJULCUDUEUGUIUKRUFABDEGHJSTUDUFUGUJULRUEABDFGHJSUCUAUB $.

    $( Add join to both sides of a lattice ordering.  ( ~ ss2in analog.)
       (Contributed by NM, 10-Nov-2011.) $)
    latmlem12 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B )
          /\ ( Z e. B /\ W e. B ) ) -> ( ( X .<_ Y /\ Z .<_ W )
             -> ( X ./\ Z ) .<_ ( Y ./\ W ) ) ) $=
      ( clat wcel wa wbr co wi syl13anc latmcl syl3anc w3a simp2l simp2r simp3l
      simp1 latmlem1 simp3r latmlem2 lattr syl2and ) BLMZFAMZGAMZNZHAMZEAMZNZUA
      ZFGCOZFHDPZGHDPZCOZHECOZVAGEDPZCOZUTVDCOZURUKULUMUOUSVBQUKUNUQUEZUKULUMUQ
      UBZUKULUMUQUCZUKUNUOUPUDZABCDFGHIJKUFRURUKUOUPUMVCVEQVGVJUKUNUOUPUGZVIABC
      DHEGIJKUHRURUKUTAMZVAAMZVDAMZVBVENVFQVGURUKULUOVLVGVHVJABDFHIKSTURUKUMUOV
      MVGVIVJABDGHIKSTURUKUMUPVNVGVIVKABDGEIKSTABCUTVAVDIJUIRUJ $.
  $}

  ${
    latnlemlt.b $e |- B = ( Base ` K ) $.
    latnlemlt.l $e |- .<_ = ( le ` K ) $.
    latnlemlt.s $e |- .< = ( lt ` K ) $.
    latnlemlt.m $e |- ./\ = ( meet ` K ) $.
    $( Negation of less-than-or-equal-to expressed in terms of meet and
       less-than.  ( ~ nssinpss analog.)  (Contributed by NM, 5-Feb-2012.) $)
    latnlemlt $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
            -> ( -. X .<_ Y <-> ( X ./\ Y ) .< X ) ) $=
      ( clat wcel w3a co wne wbr wa wn latmle1 biantrurd latleeqm1 simp1 latmcl
      necon3bbid wb simp2 pltval syl3anc 3bitr4d ) CLMZFAMZGAMZNZFGEOZFPZUOFDQZ
      UPRZFGDQZSUOFBQZUNUQUPACDEFGHIKTUAUNUSUOFACDEFGHIKUBUEUNUKUOAMULUTURUFUKU
      LUMUCACEFGHKUDUKULUMUGLAABCDUOFIJUHUIUJ $.
  $}

  ${
    latnle.b $e |- B = ( Base ` K ) $.
    latnle.l $e |- .<_ = ( le ` K ) $.
    latnle.s $e |- .< = ( lt ` K ) $.
    latnle.j $e |- .\/ = ( join ` K ) $.
    $( Equivalent expressions for "not less than" in a lattice.  ( ~ chnle
       analog.)  (Contributed by NM, 16-Nov-2011.) $)
    latnle $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
       -> ( -. Y .<_ X <-> X .< ( X .\/ Y ) ) ) $=
      ( clat wcel w3a co wne wbr wa wceq wb wn biantrurd latleeqj1 3com23 eqcom
      latlej1 syl6bb latjcom eqeq2d bitr4d necon3bbid latjcl syld3an3 3bitr4d
      pltval ) DLMZFAMZGAMZNZFFGCOZPZFUTEQZVARZGFEQZUAFUTBQZUSVBVAACDEFGHIKUFUB
      USVDFUTUSVDFGFCOZSZFUTSUSVDVFFSZVGUPURUQVDVHTACDEGFHIKUCUDVFFUEUGUSUTVFFA
      CDFGHKUHUIUJUKUPUQURUTAMVEVCTACDFGHKULLAABDEFUTIJUOUMUN $.
  $}

  ${
    latmidm.b $e |- B = ( Base ` K ) $.
    latmidm.m $e |- ./\ = ( meet ` K ) $.
    $( Lattice join is idempotent.  ( ~ inidm analog.)  (Contributed by NM,
       8-Nov-2011.) $)
    latmidm $p |- ( ( K e. Lat /\ X e. B ) -> ( X ./\ X ) = X ) $=
      ( clat wcel wa cple cfv co simpl latmcl 3anidm23 simpr wbr latmle1 latref
      eqid wb latlem12 syl13anc mpbi2and latasymd ) BGHZDAHZIZABBJKZDDCLZDEUITZ
      UFUGMZUFUGUJAHABCDDEFNOUFUGPZUFUGUJDUIQABUICDDEUKFROUHDDUIQZUNDUJUIQZABUI
      DEUKSZUPUHUFUGUGUGUNUNIUOUAULUMUMUMABUICDDDEUKFUBUCUDUE $.
  $}

  ${
    latabs1.b $e |- B = ( Base ` K ) $.
    latabs1.j $e |- .\/ = ( join ` K ) $.
    latabs1.m $e |- ./\ = ( meet ` K ) $.
    $( Lattice absorption law.  From definition of lattice in [Kalmbach] p. 14.
       ( ~ chabs1 analog.)  (Contributed by NM, 8-Nov-2011.) $)
    latabs1 $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
              -> ( X .\/ ( X ./\ Y ) ) = X ) $=
      ( clat wcel w3a co cple cfv wbr wceq eqid latmle1 wb latmcl 3com23 mpbid
      latleeqj2 syld3an3 ) CJKZEAKZFAKZLEFDMZECNOZPZEUIBMEQZACUJDEFGUJRZISUFUGU
      HUIAKZUKULTZACDEFGIUAUFUNUGUOABCUJUIEGUMHUDUBUEUC $.

    $( Lattice absorption law.  From definition of lattice in [Kalmbach] p. 14.
       ( ~ chabs2 analog.)  (Contributed by NM, 8-Nov-2011.) $)
    latabs2 $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
              -> ( X ./\ ( X .\/ Y ) ) = X ) $=
      ( clat wcel w3a co cple cfv wbr wceq eqid latlej1 wb latleeqm1 syld3an3
      latjcl mpbid ) CJKZEAKZFAKZLEEFBMZCNOZPZEUHDMEQZABCUIEFGUIRZHSUEUFUGUHAKU
      JUKTABCEFGHUCACUIDEUHGULIUAUBUD $.
  $}

  ${
    latledi.b $e |- B = ( Base ` K ) $.
    latledi.l $e |- .<_ = ( le ` K ) $.
    latledi.j $e |- .\/ = ( join ` K ) $.
    latledi.m $e |- ./\ = ( meet ` K ) $.
    $( An ortholattice is distributive in one ordering direction.  ( ~ ledi
       analog.)  (Contributed by NM, 7-Nov-2011.) $)
    latledi $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
                 ( ( X ./\ Y ) .\/ ( X ./\ Z ) ) .<_ ( X ./\ ( Y .\/ Z ) ) ) $=
      ( wcel w3a wa co wbr latmle1 3adant3r3 3adant3r2 latmcl latjle12 mpbi2and
      clat wb simpr1 syldan latmle2 wi simpr2 simpr3 latjlej12 syl122anc mp2and
      3jca simpl latjcl syl3anc 3adant3r1 latlem12 syl13anc ) CUDMZFAMZGAMZHAMZ
      NZOZFGEPZFHEPZBPZFDQZVJGHBPZDQZVJFVLEPDQZVGVHFDQZVIFDQZVKVBVCVDVOVEACDEFG
      IJLRSVBVCVEVPVDACDEFHIJLRTVBVFVHAMZVIAMZVCNVOVPOVKUEVGVQVRVCVBVCVDVQVEACE
      FGILUASZVBVCVEVRVDACEFHILUATZVBVCVDVEUFZUOABCDVHVIFIJKUBUGUCVGVHGDQZVIHDQ
      ZVMVBVCVDWBVEACDEFGIJLUHSVBVCVEWCVDACDEFHIJLUHTVGVBVQVDVRVEWBWCOVMUIVBVFU
      PZVSVBVCVDVEUJVTVBVCVDVEUKABCDHVHGVIIJKULUMUNVGVBVJAMZVCVLAMZVKVMOVNUEWDV
      GVBVQVRWEWDVSVTABCVHVIIKUQURWAVBVDVEWFVCABCGHIKUQUSACDEVJFVLIJLUTVAUC $.

    $( Ordering of a meet and join with a common variable.  (Contributed by NM,
       4-Oct-2012.) $)
    latmlej11 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
      ( X ./\ Y ) .<_ ( X .\/ Z ) ) $=
      ( clat wcel w3a wa co 3adant3r3 3adant3r2 wbr simpl latmcl simpr1 latmle1
      latjcl latlej1 lattrd ) CMNZFANZGANZHANZOZPACDFGEQZFFHBQZIJUHULUAUHUIUJUM
      ANUKACEFGILUBRUHUIUJUKUCUHUIUKUNANUJABCFHIKUESUHUIUJUMFDTUKACDEFGIJLUDRUH
      UIUKFUNDTUJABCDFHIJKUFSUG $.

    $( Ordering of a meet and join with a common variable.  (Contributed by NM,
       4-Oct-2012.) $)
    latmlej12 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
      ( X ./\ Y ) .<_ ( Z .\/ X ) ) $=
      ( clat wcel w3a wa co latmlej11 wceq latjcom 3adant3r2 breqtrd ) CMNZFANZ
      GANZHANZOPFGEQFHBQZHFBQZDABCDEFGHIJKLRUCUDUFUGUHSUEABCFHIKTUAUB $.

    $( Ordering of a meet and join with a common variable.  (Contributed by NM,
       4-Oct-2012.) $)
    latmlej21 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
      ( Y ./\ X ) .<_ ( X .\/ Z ) ) $=
      ( clat wcel w3a wa co wceq latmcom 3adant3r3 latmlej11 eqbrtrrd ) CMNZFAN
      ZGANZHANZOPFGEQZGFEQZFHBQDUCUDUEUGUHRUFACEFGILSTABCDEFGHIJKLUAUB $.

    $( Ordering of a meet and join with a common variable.  (Contributed by NM,
       4-Oct-2012.) $)
    latmlej22 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
      ( Y ./\ X ) .<_ ( Z .\/ X ) ) $=
      ( clat wcel w3a wa co wceq latmcom 3adant3r3 latmlej12 eqbrtrrd ) CMNZFAN
      ZGANZHANZOPFGEQZGFEQZHFBQDUCUDUEUGUHRUFACEFGILSTABCDEFGHIJKLUAUB $.
  $}

  ${
    lubsn.b $e |- B = ( Base ` K ) $.
    lubsn.u $e |- U = ( lub ` K ) $.
    $( The least upper bound of a singleton.  ( ~ chsupsn analog.)
       (Contributed by NM, 20-Oct-2011.) $)
    lubsn $p |- ( ( K e. Lat /\ X e. B ) -> ( U ` { X } ) = X ) $=
      ( clat wcel wa csn cfv cjn co cpr eqid simpl simpr joinval dfsn2 fveq2i
      syl6reqr latjidm eqtrd ) CGHZDAHZIZDJZBKZDDCLKZMZDUFUJDDNZBKUHUFBUICGADDA
      FUIOZUDUEPUDUEQZUMRUGUKBDSTUAAUICDEULUBUC $.
  $}

  ${
    latjass.b $e |- B = ( Base ` K ) $.
    latjass.j $e |- .\/ = ( join ` K ) $.
    $( Lattice join is associative.  Lemma 2.2 in [MegPav2002] p. 362.
       ( ~ chjass analog.)  (Contributed by NM, 17-Sep-2011.) $)
    latjass $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( ( X .\/ Y ) .\/ Z ) = ( X .\/ ( Y .\/ Z ) ) ) $=
      ( wcel wa co latjcl syl3anc wbr latlej1 latlej2 lattrd latjle12 syl13anc
      wb clat cple eqid simpl 3adant3r3 simpr3 simpr1 3adant3r1 simpr2 mpbi2and
      w3a cfv latasymd ) CUAIZDAIZEAIZFAIZUKZJZACCUBULZDEBKZFBKZDEFBKZBKZGUTUCZ
      UNURUDZUSUNVAAIZUQVBAIZVFUNUOUPVGUQABCDEGHLUEZUNUOUPUQUFZABCVAFGHLMZUSUNU
      OVCAIZVDAIZVFUNUOUPUQUGZUNUPUQVLUOABCEFGHLUHZABCDVCGHLMZUSVAVDUTNZFVDUTNZ
      VBVDUTNZUSDVDUTNZEVDUTNZVQUSUNUOVLVTVFVNVOABCUTDVCGVEHOMUSACUTEVCVDGVEVFU
      NUOUPUQUIZVOVPUNUPUQEVCUTNUOABCUTEFGVEHOUHUSUNUOVLVCVDUTNVFVNVOABCUTDVCGV
      EHPMZQUSUNUOUPVMVTWAJVQTVFVNWBVPABCUTDEVDGVEHRSUJUSACUTFVCVDGVEVFVJVOVPUN
      UPUQFVCUTNUOABCUTEFGVEHPUHWCQUSUNVGUQVMVQVRJVSTVFVIVJVPABCUTVAFVDGVEHRSUJ
      USDVBUTNZVCVBUTNZVDVBUTNZUSACUTDVAVBGVEVFVNVIVKUNUOUPDVAUTNUQABCUTDEGVEHO
      UEUSUNVGUQVAVBUTNVFVIVJABCUTVAFGVEHOMZQUSEVBUTNZFVBUTNZWEUSACUTEVAVBGVEVF
      WBVIVKUNUOUPEVAUTNUQABCUTDEGVEHPUEWGQUSUNVGUQWIVFVIVJABCUTVAFGVEHPMUSUNUP
      UQVHWHWIJWETVFWBVJVKABCUTEFVBGVEHRSUJUSUNUOVLVHWDWEJWFTVFVNVOVKABCUTDVCVB
      GVEHRSUJUM $.

    $( Swap 1st and 2nd members of lattice join.  ( ~ chj12 analog.)
       (Contributed by NM, 4-Jun-2012.) $)
    latj12 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( X .\/ ( Y .\/ Z ) ) = ( Y .\/ ( X .\/ Z ) ) ) $=
      ( clat wcel w3a wa co wceq latjcom 3adant3r3 oveq1d latjass simpl simpr2
      simpr1 simpr3 syl13anc 3eqtr3d ) CIJZDAJZEAJZFAJZKZLZDEBMZFBMEDBMZFBMZDEF
      BMBMEDFBMBMZUJUKULFBUEUFUGUKULNUHABCDEGHOPQABCDEFGHRUJUEUGUFUHUMUNNUEUISU
      EUFUGUHTUEUFUGUHUAUEUFUGUHUBABCEDFGHRUCUD $.

    $( Swap 2nd and 3rd members of lattice join.  Lemma 2.2 in [MegPav2002]
       p. 362.  (Contributed by NM, 2-Dec-2011.) $)
    latj32 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( ( X .\/ Y ) .\/ Z ) = ( ( X .\/ Z ) .\/ Y ) ) $=
      ( clat wcel w3a wa co wceq latjcom 3adant3r1 oveq2d latjass simpr1 simpr3
      simpr2 3jca syldan 3eqtr4d ) CIJZDAJZEAJZFAJZKZLZDEFBMZBMDFEBMZBMZDEBMFBM
      DFBMEBMZUJUKULDBUEUGUHUKULNUFABCEFGHOPQABCDEFGHRUEUIUFUHUGKUNUMNUJUFUHUGU
      EUFUGUHSUEUFUGUHTUEUFUGUHUAUBABCDFEGHRUCUD $.

    $( Swap 1st and 3rd members of lattice join.  (Contributed by NM,
       4-Jun-2012.) $)
    latj13 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( X .\/ ( Y .\/ Z ) ) = ( Z .\/ ( Y .\/ X ) ) ) $=
      ( clat wcel w3a wa co wceq simpl simpr2 simpr3 latjcl latjcom syl3anc
      simpr1 latj32 syl13anc 3adant3r1 3eqtr4d ) CIJZDAJZEAJZFAJZKZLZEFBMZDBMZE
      DBMZFBMZDULBMZFUNBMZUKUFUHUIUGUMUONUFUJOZUFUGUHUIPZUFUGUHUIQZUFUGUHUIUAZA
      BCEFDGHUBUCUKUFUGULAJZUPUMNURVAUFUHUIVBUGABCEFGHRUDABCDULGHSTUKUFUIUNAJZU
      QUONURUTUKUFUHUGVCURUSVAABCEDGHRTABCFUNGHSTUE $.

    $( Swap 2nd and 3rd members of lattice join.  Lemma 2.2 in [MegPav2002]
       p. 362.  (Contributed by NM, 23-Jun-2012.) $)
    latj31 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( ( X .\/ Y ) .\/ Z ) = ( ( Z .\/ Y ) .\/ X ) ) $=
      ( clat wcel w3a wa co wceq simpl simpr3 simpr1 latjcl latjcom syl3anc
      simpr2 latj12 syl13anc 3adant3r3 3eqtr4d ) CIJZDAJZEAJZFAJZKZLZFDEBMZBMZD
      FEBMZBMZULFBMZUNDBMZUKUFUIUGUHUMUONUFUJOZUFUGUHUIPZUFUGUHUIQZUFUGUHUIUAZA
      BCFDEGHUBUCUKUFULAJZUIUPUMNURUFUGUHVBUIABCDEGHRUDUSABCULFGHSTUKUFUNAJZUGU
      QUONURUKUFUIUHVCURUSVAABCFEGHRTUTABCUNDGHSTUE $.

    $( Rotate lattice join of 3 classes.  (Contributed by NM, 23-Jul-2012.) $)
    latjrot $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( ( X .\/ Y ) .\/ Z ) = ( ( Z .\/ X ) .\/ Y ) ) $=
      ( clat wcel w3a wa co latj31 wceq simpl simpr3 simpr2 simpr1 latj32 eqtrd
      syl13anc ) CIJZDAJZEAJZFAJZKZLZDEBMFBMFEBMDBMZFDBMEBMZABCDEFGHNUHUCUFUEUD
      UIUJOUCUGPUCUDUEUFQUCUDUEUFRUCUDUEUFSABCFEDGHTUBUA $.

    $( Rearrangement of lattice join of 4 classes.  ( ~ chj4 analog.)
       (Contributed by NM, 14-Jun-2012.) $)
    latj4 $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B )
               /\ ( Z e. B /\ W e. B ) )
      -> ( ( X .\/ Y ) .\/ ( Z .\/ W ) ) = ( ( X .\/ Z ) .\/ ( Y .\/ W ) ) ) $=
      ( clat wcel wa w3a co wceq simp1 syl13anc latjcl syl3anc latjass 3eqtr4d
      simp2r simp3l simp3r latj12 oveq2d simp2l ) CJKZEAKZFAKZLZGAKZDAKZLZMZEFG
      DBNZBNZBNZEGFDBNZBNZBNZEFBNUPBNZEGBNUSBNZUOUQUTEBUOUHUJULUMUQUTOUHUKUNPZU
      HUIUJUNUBZUHUKULUMUCZUHUKULUMUDZABCFGDHIUEQUFUOUHUIUJUPAKZVBUROVDUHUIUJUN
      UGZVEUOUHULUMVHVDVFVGABCGDHIRSABCEFUPHITQUOUHUIULUSAKZVCVAOVDVIVFUOUHUJUM
      VJVDVEVGABCFDHIRSABCEGUSHITQUA $.

    $( Rotate lattice join of 4 classes.  (Contributed by NM, 11-Jul-2012.) $)
    latj4rot $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B )
               /\ ( Z e. B /\ W e. B ) )
      -> ( ( X .\/ Y ) .\/ ( Z .\/ W ) ) = ( ( W .\/ X ) .\/ ( Y .\/ Z ) ) ) $=
      ( clat wcel wa w3a co wceq simp1 simp3l simp3r latjcom syl3anc oveq2d jca
      latj4 syld3an3 simp2l oveq1d 3eqtrd ) CJKZEAKZFAKZLZGAKZDAKZLZMZEFBNZGDBN
      ZBNUPDGBNZBNZEDBNZFGBNZBNZDEBNZVABNUOUQURUPBUOUHULUMUQUROUHUKUNPZUHUKULUM
      QZUHUKULUMRZABCGDHISTUAUHUKUNUMULLUSVBOUOUMULVFVEUBABCGEFDHIUCUDUOUTVCVAB
      UOUHUIUMUTVCOVDUHUIUJUNUEVFABCEDHISTUFUG $.

    $( Lattice join distributes over itself.  (Contributed by NM,
       30-Jul-2012.) $)
    latjjdi $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( X .\/ ( Y .\/ Z ) ) = ( ( X .\/ Y ) .\/ ( X .\/ Z ) ) ) $=
      ( clat wcel w3a wa co wceq simpr1 latjidm syldan oveq1d simpl simpr2
      simpr3 latj4 syl122anc eqtr3d ) CIJZDAJZEAJZFAJZKZLZDDBMZEFBMZBMZDULBMDEB
      MDFBMBMZUJUKDULBUEUIUFUKDNUEUFUGUHOZABCDGHPQRUJUEUFUFUGUHUMUNNUEUISUOUOUE
      UFUGUHTUEUFUGUHUAABCFDDEGHUBUCUD $.

    $( Lattice join distributes over itself.  (Contributed by NM,
       2-Aug-2012.) $)
    latjjdir $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( ( X .\/ Y ) .\/ Z ) = ( ( X .\/ Z ) .\/ ( Y .\/ Z ) ) ) $=
      ( clat wcel w3a wa co wceq latjidm 3ad2antr3 oveq2d simpl simpr1 simpr2
      simpr3 latj4 syl122anc eqtr3d ) CIJZDAJZEAJZFAJZKZLZDEBMZFFBMZBMZUKFBMDFB
      MEFBMBMZUJULFUKBUEUFUHULFNUGABCFGHOPQUJUEUFUGUHUHUMUNNUEUIRUEUFUGUHSUEUFU
      GUHTUEUFUGUHUAZUOABCFDEFGHUBUCUD $.
  $}

  ${
    modle.b $e |- B = ( Base ` K ) $.
    modle.l $e |- .<_ = ( le ` K ) $.
    modle.j $e |- .\/ = ( join ` K ) $.
    modle.m $e |- ./\ = ( meet ` K ) $.
    $( The weak direction of the modular law (e.g., ~ pmod1i , ~ atmod1i1 )
       that holds in any lattice.  (Contributed by NM, 11-May-2012.) $)
    mod1ile $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
        ( X .<_ Z -> ( X .\/ ( Y ./\ Z ) ) .<_ ( ( X .\/ Y ) ./\ Z ) ) ) $=
      ( wcel wa wbr co syl3anc wb syl13anc mpbi2and clat simpll simplr1 simplr2
      w3a latlej1 latjcl simplr3 latlem12 latmlej12 latmle2 latmcl latjle12 ex
      simpr ) CUAMZFAMZGAMZHAMZUEZNZFHDOZFGHEPZBPFGBPZHEPZDOZVAVBNZFVEDOZVCVEDO
      ZVFVGFVDDOZVBVHVGUPUQURVJUPUTVBUBZUQURUSUPVBUCZUQURUSUPVBUDZABCDFGIJKUFQV
      AVBUOVGUPUQVDAMZUSVJVBNVHRVKVLVGUPUQURVNVKVLVMABCFGIKUGQZUQURUSUPVBUHZACD
      EFVDHIJLUISTVGVCVDDOZVCHDOZVIVGUPURUSUQVQVKVMVPVLABCDEGHFIJKLUJSVGUPURUSV
      RVKVMVPACDEGHIJLUKQVGUPVCAMZVNUSVQVRNVIRVKVGUPURUSVSVKVMVPACEGHILULQZVOVP
      ACDEVCVDHIJLUISTVGUPUQVSVEAMZVHVINVFRVKVLVTVGUPVNUSWAVKVOVPACEVDHILULQABC
      DFVCVEIJKUMSTUN $.

    $( The weak direction of the modular law (e.g., ~ pmod2iN ) that holds in
       any lattice.  (Contributed by NM, 11-May-2012.) $)
    mod2ile $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
        ( Z .<_ X -> ( ( X ./\ Y ) .\/ Z ) .<_ ( X ./\ ( Y .\/ Z ) ) ) ) $=
      ( wcel w3a wa wbr co wceq latmcom syl3anc clat simpll simplr3 simplr2 jca
      simplr1 3jca simpr mod1ile sylc oveq1d latmcl latjcom eqtrd oveq2d latjcl
      3brtr4d ex ) CUAMZFAMZGAMZHAMZNZOZHFDPZFGEQZHBQZFGHBQZEQZDPVDVEOZHGFEQZBQ
      ZHGBQZFEQZVGVIDVJUSVBVAUTNZOVEVLVNDPVJUSVOUSVCVEUBZVJVBVAUTUTVAVBUSVEUCZU
      TVAVBUSVEUDZUTVAVBUSVEUFZUGUEVDVEUHABCDEHGFIJKLUIUJVJVGVKHBQZVLVJVFVKHBVJ
      USUTVAVFVKRVPVSVRACEFGILSTUKVJUSVKAMZVBVTVLRVPVJUSVAUTWAVPVRVSACEGFILULTV
      QABCVKHIKUMTUNVJVIFVMEQZVNVJVHVMFEVJUSVAVBVHVMRVPVRVQABCGHIKUMTUOVJUSUTVM
      AMZWBVNRVPVSVJUSVBVAWCVPVQVRABCHGIKUPTACEFVMILSTUNUQUR $.
  $}

  $c CLat $.

  $( Extend class notation with complete lattices. $)
  ccla $a class CLat $.

  ${
    $( Define the class of all complete lattices, where every subset of the
       base set has an LUB and a GLB. (Contributed by NM, 18-Oct-2012.)
       (Revised by NM, 12-Sep-2018.) $)
    df-clat $a |- CLat = { p e. Poset | ( dom ( lub ` p ) = ~P ( Base ` p )
               /\ dom ( glb ` p ) = ~P ( Base ` p ) ) } $.
  $}

  ${
    $d l B $.  $d l G $.  $d l K $.  $d l U $.
    isclat.b $e |- B = ( Base ` K ) $.
    isclat.u $e |- U = ( lub ` K ) $.
    isclat.g $e |- G = ( glb ` K ) $.
    $( The predicate "is a complete lattice."  (Contributed by NM,
       18-Oct-2012.)  (Revised by NM, 12-Sep-2018.) $)
    isclat $p |- ( K e. CLat
             <-> ( K e. Poset /\ ( dom U = ~P B /\ dom G = ~P B ) ) ) $=
      ( vl club cfv cdm cbs cpw wceq cglb wa fveq2 syl6eqr dmeqd eqeq12d cv cpo
      ccla pweqd anbi12d df-clat elrab2 ) HUAZIJZKZUHLJZMZNZUHOJZKZULNZPBKZAMZN
      ZCKZURNZPHDUBUCUHDNZUMUSUPVAVBUJUQULURVBUIBVBUIDIJBUHDIQFRSVBUKAVBUKDLJAU
      HDLQERUDZTVBUOUTULURVBUNCVBUNDOJCUHDOQGRSVCTUEHUFUG $.
  $}

  $( A complete lattice is a poset.  (Contributed by NM, 8-Sep-2018.) $)
  clatpos $p |- ( K e. CLat -> K e. Poset ) $=
    ( ccla wcel cpo club cfv cdm cbs cpw wceq cglb wa eqid isclat simplbi ) ABC
    ADCAEFZGAHFZIZJAKFZGRJLQPSAQMPMSMNO $.

  ${
    clatlem.b $e |- B = ( Base ` K ) $.
    clatlem.u $e |- U = ( lub ` K ) $.
    clatlem.g $e |- G = ( glb ` K ) $.
    $( Lemma for properties of a complete lattice.  (Contributed by NM,
       14-Sep-2011.) $)
    clatlem $p |- ( ( K e. CLat /\ S C_ B ) ->
           ( ( U ` S ) e. B /\ ( G ` S ) e. B ) ) $=
      ( ccla wcel wss wa cfv simpl cpw cdm cbs adantl wceq eleqtrrd cvv eqeltri
      fvex elpw2 biimpri cpo isclat biimpi adantr syl lubcl simprrd glbcl jca )
      EIJZBAKZLZBCMAJBDMAJUQABCEIFGUOUPNZUQBAOZCPZUPBUSJZUOVAUPBAAEQMUAFEQUCUBU
      DUERZUQEUFJZUTUSSZDPZUSSZLZLZVDUOVHUPUOVHACDEFGHUGUHUIZVGVDVCVDVFNRUJTUKU
      QABDEIFHURUQBUSVEVBUQVCVDVFVIULTUMUN $.
  $}

  ${
    clatlubcl.b $e |- B = ( Base ` K ) $.
    clatlubcl.u $e |- U = ( lub ` K ) $.
    $( Any subset of the base set has an LUB in a complete lattice.
       (Contributed by NM, 14-Sep-2011.) $)
    clatlubcl $p |- ( ( K e. CLat /\ S C_ B ) -> ( U ` S ) e. B ) $=
      ( ccla wcel wss wa cfv cglb eqid clatlem simpld ) DGHBAIJBCKAHBDLKZKAHABC
      PDEFPMNO $.
    $( Any subset of the base set has an LUB in a complete lattice.
       (Contributed by NM, 13-Sep-2018.) $)
    clatlubcl2 $p |- ( ( K e. CLat /\ S C_ B ) -> S e. dom U ) $=
      ( ccla wcel wss wa cpw cdm cbs cfv cvv fvex eqeltri elpw2 biimpri wceq
      adantl cpo cglb eqid isclat simprl sylbi adantr eleqtrrd ) DGHZBAIZJBAKZC
      LZUKBULHZUJUNUKBAADMNOEDMPQRSUAUJUMULTZUKUJDUBHZUODUCNZLULTZJJUOACUQDEFUQ
      UDUEUPUOURUFUGUHUI $.
  $}

  ${
    clatglbcl.b $e |- B = ( Base ` K ) $.
    clatglbcl.g $e |- G = ( glb ` K ) $.
    $( Any subset of the base set has a GLB in a complete lattice.
       (Contributed by NM, 14-Sep-2011.) $)
    clatglbcl $p |- ( ( K e. CLat /\ S C_ B ) -> ( G ` S ) e. B ) $=
      ( ccla wcel wss wa club cfv eqid clatlem simprd ) DGHBAIJBDKLZLAHBCLAHABP
      CDEPMFNO $.
    $( Any subset of the base set has a GLB in a complete lattice.
       (Contributed by NM, 13-Sep-2018.) $)
    clatglbcl2 $p |- ( ( K e. CLat /\ S C_ B ) -> S e. dom G ) $=
      ( ccla wcel wss wa cpw cdm cbs cfv cvv fvex eqeltri elpw2 biimpri wceq
      adantl cpo club eqid isclat simprr sylbi adantr eleqtrrd ) DGHZBAIZJBAKZC
      LZUKBULHZUJUNUKBAADMNOEDMPQRSUAUJUMULTZUKUJDUBHZDUCNZLULTZUOJJUOAUQCDEUQU
      DFUEUPURUOUFUGUHUI $.
  $}

  ${
    $d x y K $.
    $( A complete lattice is a lattice.  (Contributed by NM, 18-Sep-2011.)
       TODO: use ~ eqrelrdv2 to shorten proof and eliminate ~ joindmss and
       ~ meetdmss ? $)
    clatl $p |- ( K e. CLat -> K e. Lat ) $=
      ( vx vy cpo wcel cfv cdm wceq wa simpl a1i cv wi vex eleq2 syl5ibr adantl
      eqid cvv sylibrd club cbs cpw cglb cjn cmee ccla clat joindmss wrel relxp
      cxp cop cpr wss opelxp prss sylbb prex elpw sylibr joindef eqssd meetdmss
      relssdv ex meetdef anim12d imdistani isclat islat 3imtr4i ) ADEZAUAFZGZAU
      BFZUCZHZAUDFZGZVQHZIZIVMAUEFZGZVPVPULZHZAUFFZGZWEHZIZIAUGEAUHEVMWBWJVMVRW
      FWAWIVMVRWFVMVRIZWDWEWKVPWCADVPRZWCRZVMVRJZUIWKBCWEWDWEUJZWKVPVPUKZKWKBLZ
      CLZUMZWEEZWQWRUNZVOEZWSWDEVRWTXBMVMWTXBVRXAVQEZWTXAVPUOZXCWTWQVPEWRVPEIXD
      WQWRVPVPUPWQWRVPBNZCNZUQURXAVPWQWRUSUTVAZVOVQXAOPQWKVNWCADSWQWRSVNRZWMWNW
      QSEZWKXEKWRSEZWKXFKVBTVEVCVFVMWAWIVMWAIZWHWEXKVPAWGDWLWGRZVMWAJZVDXKBCWEW
      HWOXKWPKXKWTXAVTEZWSWHEWAWTXNMVMWTXNWAXCXGVTVQXAOPQXKVSAWGDSWQWRSVSRZXLXM
      XIXKXEKXJXKXFKVGTVEVCVFVHVIVPVNVSAWLXHXOVJVPWCAWGWLWMXLVKVL $.
  $}

  ${
    $d h .<_ $.  $d h x B $.  $d h x y H $.  $d h x y K $.  $d x y ph $.
    $d h x y S $.
    isglbd.b $e |- B = ( Base ` K ) $.
    isglbd.l $e |- .<_ = ( le ` K ) $.
    isglbd.g $e |- G = ( glb ` K ) $.
    isglbd.1 $e |- ( ( ph /\ y e. S ) -> H .<_ y ) $.
    isglbd.2 $e |- ( ( ph /\ x e. B /\ A. y e. S x .<_ y ) -> x .<_ H ) $.
    isglbd.3 $e |- ( ph -> K e. CLat ) $.
    isglbd.4 $e |- ( ph -> S C_ B ) $.
    isglbd.5 $e |- ( ph -> H e. B ) $.
    $( Properties that determine the greatest lower bound of a complete
       lattice.  (Contributed by Mario Carneiro, 19-Mar-2014.) $)
    isglbd $p |- ( ph -> ( G ` S ) = H ) $=
      ( vh wbr wral cfv cv wi wa crio ccla biid glbval wceq ralrimiva wcel 3exp
      ralrimiv wreu wss cdm clatglbcl2 syl2anc glbeu breq1 ralbidv breq2 imbi2d
      wb anbi12d riota2 mpbi2and eqtrd ) AEFUARUBZCUBZISZCETZBUBZVJISCETZVMVIIS
      ZUCZBDTZUDZRDUEZGAVRRCBDEFHIUFJKLVRUGZOPUHAGVJISZCETZVNVMGISZUCZBDTZVSGUI
      ZAWACEMUJAWDBDAVMDUKVNWCNULUMAGDUKVRRDUNWBWEUDZWFVDQAVRRCBDEFHIUFJKLVTOAH
      UFUKEDUOEFUPUKOPDEFHJLUQURUSVRWGRDGVIGUIZVLWBVQWEWHVKWACEVIGVJIUTVAWHVPWD
      BDWHVOWCVNVIGVMIVBVCVAVEVFURVGVH $.
  $}

  ${
    $d z B $.  $d y z K $.  $d y z S $.  $d y z U $.  $d y z .<_ $.
    lublem.b $e |- B = ( Base ` K ) $.
    lublem.l $e |- .<_ = ( le ` K ) $.
    lublem.u $e |- U = ( lub ` K ) $.
    $( Lemma for the least upper bound properties in a complete lattice.
       (Contributed by NM, 19-Oct-2011.) $)
    lublem $p |- ( ( K e. CLat /\ S C_ B ) -> ( A. y e. S y .<_ ( U ` S )
                  /\ A. z e. B ( A. y e. S y .<_ z -> ( U ` S ) .<_ z ) ) ) $=
      ( ccla wcel wss wa simpl clatlubcl2 lubprop ) FKLZDCMZNABCDEFGKHIJRSOCDEF
      HJPQ $.

    $d y z X $.
    $( The LUB of a complete lattice subset is an upper bound.  (Contributed by
       NM, 19-Oct-2011.) $)
    lubub $p |- ( ( K e. CLat /\ S C_ B /\ X e. S ) -> X .<_ ( U ` S ) ) $=
      ( vy vz ccla wcel wss cv cfv wbr wral wa wi lublem simpld rspccva stoic3
      breq1 ) DLMZBANZJOZBCPZEQZJBRZFBMFUIEQZUFUGSUKUHKOZEQJBRUIUMEQTKARJKABCDE
      GHIUAUBUJULJFBUHFUIEUEUCUD $.

    $( The LUB of a complete lattice subset is the least bound.  (Contributed
       by NM, 19-Oct-2011.) $)
    lubl $p |- ( ( K e. CLat /\ S C_ B /\ X e. B )
          -> ( A. y e. S y .<_ X -> ( U ` S ) .<_ X ) ) $=
      ( vz ccla wcel wss cv wbr wral cfv wi breq2 wa lublem simprd wceq ralbidv
      imbi12d rspccva stoic3 ) ELMZCBNZAOZKOZFPZACQZCDRZULFPZSZKBQZGBMUKGFPZACQ
      ZUOGFPZSZUIUJUAUKUOFPACQURAKBCDEFHIJUBUCUQVBKGBULGUDZUNUTUPVAVCUMUSACULGU
      KFTUEULGUOFTUFUGUH $.

    $d y B $.  $d y T $.
    $( Subset law for least upper bounds.  ( ~ chsupss analog.)  (Contributed
       by NM, 20-Oct-2011.) $)
    lubss $p |- ( ( K e. CLat /\ T C_ B /\ S C_ T )
          -> ( U ` S ) .<_ ( U ` T ) ) $=
      ( vy ccla wcel wss w3a cfv cv wbr wral simp1 sstr2 impcom 3adant1 3adant3
      clatlubcl 3jca simpl1 simpl2 ssel2 3ad2antl3 lubub syl3anc ralrimiva lubl
      wa sylc ) EKLZCAMZBCMZNZUPBAMZCDOZALZNJPZVAFQZJBRBDOVAFQUSUPUTVBUPUQURSUQ
      URUTUPURUQUTBCATUAUBUPUQVBURACDEGIUDUCUEUSVDJBUSVCBLZUNUPUQVCCLZVDUPUQURV
      EUFUPUQURVEUGURUPVEVFUQBCVCUHUIACDEFVCGHIUJUKULJABDEFVAGHIUMUO $.

    $( An element of a set is less than or equal to the least upper bound of
       the set.  (Contributed by NM, 21-Oct-2011.) $)
    lubel $p |- ( ( K e. CLat /\ X e. S /\ S C_ B ) -> X .<_ ( U ` S ) ) $=
      ( ccla wcel wss w3a csn cfv wceq clat wa clatl ssel lubsn 3impb wbr snssi
      impcom syl2an lubss syl3an3 3com23 eqbrtrrd ) DJKZFBKZBALZMFNZCOZFBCOZEUK
      ULUMUOFPZUKDQKFAKZUQULUMRDSUMULURBAFTUEACDFGIUAUFUBUKUMULUOUPEUCZULUKUMUN
      BLUSFBUDAUNBCDEGHIUGUHUIUJ $.
  $}

  ${
    $d x y z B $.  $d x y z .\/ $.  $d x y z K $.  $d x y z S $.  $d x y z T $.
    $d x y z U $.
    lubun.b $e |- B = ( Base ` K ) $.
    lubun.j $e |- .\/ = ( join ` K ) $.
    lubun.u $e |- U = ( lub ` K ) $.
    $( The LUB of a union.  (Contributed by NM, 5-Mar-2012.) $)
    lubun $p |- ( ( K e. CLat /\ S C_ B /\ T C_ B )
                      -> ( U ` ( S u. T ) ) = ( ( U ` S ) .\/ ( U ` T ) ) ) $=
      ( vy vx vz wcel wbr wral wi wa syl3anc syl2anc adantr ccla wss w3a cun cv
      cfv cple crio co eqid biid simp1 unss biimpi 3adant1 lubval clat 3ad2ant1
      clatl clatlubcl 3adant3 latjcl wceq simpl1 syl simpl2 simpr sseldd simpl3
      3adant2 lubel latlej1 lattrd ralrimiva latlej2 ralunb breq2 ralbidv rspcv
      sylanbrc imbi12d mpid imp ad2ant2rl lubl anim12d latjle12 syl13anc sylibd
      wb syl5bi adantrr latasymb mpbi2and ex elun jaodan sylan2b imbi2d anbi12d
      wo breq1 biimprcd impbid riota5 eqtrd ) FUAMZBAUBZCAUBZUCZBCUDZDUFJUEZKUE
      ZFUGUFZNZJXKOZXLLUEZXNNZJXKOZXMXQXNNZPZLAOZQZKAUHBDUFZCDUFZEUIZXJYCKJLAXK
      DFXNUAGXNUJZIYCUKXGXHXIULXHXIXKAUBZXGXHXIQYHBCAUMUNUOUPXJYCKAYFXJFUQMZYDA
      MZYEAMZYFAMZXGXHYIXIFUSZURZXGXHYJXIABDFGIUTZVAZXGXIYKXHACDFGIUTZVJZAEFYDY
      EGHVBZRZXJXMAMZQZYCXMYFVCZUUBYCUUCUUBYCQXMYFXNNZYFXMXNNZUUCXJYBUUDUUAXPXJ
      YBUUDXJYBXLYFXNNZJXKOZUUDXJUUFJBOUUFJCOUUGXJUUFJBXJXLBMZQZAFXNXLYDYFGYGUU
      IXGYIXGXHXIUUHVDZYMVEZUUIBAXLXGXHXIUUHVFZXJUUHVGZVHUUIXGXHYJUUJUULYOSZUUI
      YIYJYKYLUUKUUNUUIXGXIYKUUJXGXHXIUUHVIYQSZYSRUUIXGUUHXHXLYDXNNUUJUUMUULABD
      FXNXLGYGIVKRUUIYIYJYKYDYFXNNUUKUUNUUOAEFXNYDYEGYGHVLRVMZVNXJUUFJCXJXLCMZQ
      ZAFXNXLYEYFGYGXJYIUUQYNTZUURCAXLXGXHXIUUQVIZXJUUQVGZVHUURXGXIYKXGXHXIUUQV
      DZUUTYQSZXJYLUUQYTTUURXGUUQXIXLYEXNNUVBUVAUUTACDFXNXLGYGIVKRUURYIYJYKYEYF
      XNNUUSUURXGXHYJUVBXGXHXIUUQVFYOSUVCAEFXNYDYEGYGHVORVMZVNUUFJBCVPVTXJYLYBU
      UGUUDPZPYTYAUVELYFAXQYFVCZXSUUGXTUUDUVFXRUUFJXKXQYFXLXNVQVRXQYFXMXNVQWAVS
      VEWBWCWDUUBXPUUEYBUUBXPUUEXPXOJBOZXOJCOZQZUUBUUEXOJBCVPUUBUVIYDXMXNNZYEXM
      XNNZQZUUEUUBUVGUVJUVHUVKUUBXGXHUUAUVGUVJPXGXHXIUUAVDZXGXHXIUUAVFXJUUAVGZJ
      ABDFXNXMGYGIWERUUBXGXIUUAUVHUVKPUVMXGXHXIUUAVIUVNJACDFXNXMGYGIWERWFUUBYIY
      JYKUUAUVLUUEWJUUBXGYIUVMYMVEZXJYJUUAYPTXJYKUUAYRTUVNAEFXNYDYEXMGYGHWGWHWI
      WKWCWLUUBUUDUUEQUUCWJZYCUUBYIUUAYLUVPUVOUVNXJYLUUAYTTAFXNXMYFGYGWMRTWNWOX
      JUUCYCPZUUAXJUUGXSYFXQXNNZPZLAOZUVQXJUUFJXKXLXKMXJUUHUUQXAUUFXLBCWPXJUUHU
      UFUUQUUPUVDWQWRVNXJUVSLAXJXQAMZQZXSYDXQXNNZYEXQXNNZQZUVRXSXRJBOZXRJCOZQUW
      BUWEXRJBCVPUWBUWFUWCUWGUWDUWBXGXHUWAUWFUWCPXGXHXIUWAVDZXGXHXIUWAVFZXJUWAV
      GZJABDFXNXQGYGIWERUWBXGXIUWAUWGUWDPUWHXGXHXIUWAVIZUWJJACDFXNXQGYGIWERWFWK
      UWBYIYJYKUWAUWEUVRWJUWBXGYIUWHYMVEUWBXGXHYJUWHUWIYOSUWBXGXIYKUWHUWKYQSUWJ
      AEFXNYDYEXQGYGHWGWHWIVNUUCYCUUGUVTQUUCXPUUGYBUVTUUCXOUUFJXKXMYFXLXNVQVRUU
      CYAUVSLAUUCXTUVRXSXMYFXQXNXBWSVRWTXCSTXDXEXF $.
  $}

  ${
    $d y z B $.  $d y z G $.  $d y z K $.  $d y z .<_ $.  $d y z S $.
    clatglb.b $e |- B = ( Base ` K ) $.
    clatglb.l $e |- .<_ = ( le ` K ) $.
    clatglb.g $e |- G = ( glb ` K ) $.
    $( Properties of greatest lower bound of a complete lattice.  (Contributed
       by NM, 5-Dec-2011.) $)
    clatglb $p |- ( ( K e. CLat /\ S C_ B ) -> ( A. y e. S ( G ` S ) .<_ y
               /\ A. z e. B ( A. y e. S z .<_ y -> z .<_ ( G ` S ) ) ) ) $=
      ( ccla wcel wss wa simpl clatglbcl2 glbprop ) FKLZDCMZNABCDEFGKHIJRSOCDEF
      HJPQ $.

    $d y z X $.
    $( The greatest lower bound is the least element.  (Contributed by NM,
       5-Dec-2011.) $)
    clatglble $p |- ( ( K e. CLat /\ S C_ B /\ X e. S )
          -> ( G ` S ) .<_ X ) $=
      ( ccla wcel wss w3a simp1 cdm clatglbcl2 3adant3 simp3 glble ) DJKZBALZFB
      KZMABCDEJFGHITUAUBNTUABCOKUBABCDGIPQTUAUBRS $.

    $( Two ways of expressing "less than or equal to the greatest lower bound."
       (Contributed by NM, 5-Dec-2011.) $)
    clatleglb $p |- ( ( K e. CLat /\ X e. B /\ S C_ B )
     -> ( X .<_ ( G ` S ) <-> A. y e. S X .<_ y ) ) $=
      ( vz ccla wcel wbr cv wral wa wi syl breq1 wss w3a cfv clatglble 3adantl2
      3expa clat simpl1 clatl simpl2 clatglbcl 3adant2 adantr ssel 3ad2ant3 imp
      lattr syl13anc mpan2d ralrimdva clatglb simprd wceq ralbidv imbi12d com23
      rspccv ex 3imp impbid ) ELMZGBMZCBUAZUBZGCDUCZFNZGAOZFNZACPZVNVPVRACVNVQC
      MZQZVPVOVQFNZVRVKVMVTWBVLVKVMVTWBBCDEFVQHIJUDUFUEWAEUGMZVLVOBMZVQBMZVPWBQ
      VRRWAVKWCVKVLVMVTUHEUISVKVLVMVTUJVNWDVTVKVMWDVLBCDEHJUKULUMVNVTWEVMVKVTWE
      RVLCBVQUNUOUPBEFGVOVQHIUQURUSUTVKVLVMVSVPRZVKVMVLWFVKVMVLWFRZVKVMQZKOZVQF
      NZACPZWIVOFNZRZKBPZWGWHWBACPWNAKBCDEFHIJVAVBWMWFKGBWIGVCZWKVSWLVPWOWJVRAC
      WIGVQFTVDWIGVOFTVEVGSVHVFVIVJ $.

    $d y T $.
    $( Subset law for greatest lower bound.  (Contributed by Mario Carneiro,
       16-Apr-2014.) $)
    clatglbss $p |- ( ( K e. CLat /\ T C_ B /\ S C_ T )
          -> ( G ` T ) .<_ ( G ` S ) ) $=
      ( vy ccla wcel wss w3a cfv wbr cv wral wa syl3anc simpl1 simpl2 clatglble
      simp3 sselda ralrimiva wb clatglbcl 3adant3 sstr ancoms 3adant1 clatleglb
      simp1 mpbird ) EKLZCAMZBCMZNZCDOZBDOFPZUTJQZFPZJBRZUSVCJBUSVBBLZSUPUQVBCL
      VCUPUQURVEUAUPUQURVEUBUSBCVBUPUQURUDUEACDEFVBGHIUCTUFUSUPUTALZBAMZVAVDUGU
      PUQURUNUPUQVFURACDEGIUHUIUQURVGUPURUQVGBCAUJUKULJABDEFUTGHIUMTUO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The dual of an ordered set
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ODual $.

  $( Class function defining dual orders. $)
  codu $a class ODual $.

  $( Define the dual of an ordered structure, which replaces the order
     component of the structure with its reverse.  See ~ odubas , ~ oduleval ,
     and ~ oduleg for its principal properties.

     _EDITORIAL_: likely usable to simplify many lattice proofs, as it allows
     for duality arguments to be formalized; for instance ~ latmass .
     (Contributed by Stefan O'Rear, 29-Jan-2015.) $)
  df-odu $a |- ODual = ( w e. _V |->
      ( w sSet <. ( le ` ndx ) , `' ( le ` w ) >. ) ) $.

  ${
    $d D a $.  $d .<_ a $.  $d O a $.  $d G a $.  $d A a $.  $d B a $.
    oduval.d $e |- D = ( ODual ` O ) $.

    ${
      oduval.l $e |- .<_ = ( le ` O ) $.
      $( Value of an order dual structure.  (Contributed by Stefan O'Rear,
         29-Jan-2015.) $)
      oduval $p |- D = ( O sSet <. ( le ` ndx ) , `' .<_ >. ) $=
        ( va codu cfv cnx cple ccnv cop csts co cvv wcel wceq cv id fveq2 fvmpt
        cnveqd opeq2d oveq12d df-odu ovex wn c0 reldmsets ovprc1 eqtr4d pm2.61i
        fvprc cnveqi opeq2i oveq2i 3eqtr4i ) CGHZCIJHZCJHZKZLZMNZACUSBKZLZMNCOP
        ZURVCQFCFRZUSVGJHZKZLZMNVCOGVGCQZVGCVJVBMVKSVKVIVAUSVKVHUTVGCJTUBUCUDFU
        ECVBMUFUAVFUGURUHVCCGUMCVBMUIUJUKULDVEVBCMVDVAUSBUTEUNUOUPUQ $.

      $( Value of the less-equal relation in an order dual structure.
         (Contributed by Stefan O'Rear, 29-Jan-2015.) $)
      oduleval $p |- `' .<_ = ( le ` D ) $=
        ( cple cfv ccnv cnx cop csts co cvv wcel wceq fvex cnvex pleid setsid
        c0 mpan2 str0 fvprc cnveqd cnv0 syl6eq reldmsets ovprc1 3eqtr4a pm2.61i
        wn fveq2d cnveqi eqid oduval fveq2i 3eqtr4i ) CFGZHZCIFGZUSJZKLZFGZBHAF
        GCMNZUSVCOZVDUSMNVEURCFPQMUSFMCRSUAVDUKZTTFGUSVCFUTRUBVFUSTHTVFURTCFUCU
        DUEUFVFVBTFCVAKUGUHULUIUJBUREUMAVBFAURCDURUNUOUPUQ $.

      oduleg.g $e |- G = ( le ` D ) $.
      $( Truth of the less-equal relation in an order dual structure.
         (Contributed by Stefan O'Rear, 29-Jan-2015.) $)
      oduleg $p |- ( ( A e. V /\ B e. W ) -> ( A G B <-> B .<_ A ) ) $=
        ( wbr ccnv wcel wa cple cfv oduleval eqtr4i breqi brcnvg syl5bb ) ABDLA
        BEMZLAGNBHNOBAELABDUCDCPQUCKCEFIJRSTABGHEUAUB $.
    $}

    odubas.b $e |- B = ( Base ` O ) $.
    $( Base set of an order dual structure.  (Contributed by Stefan O'Rear,
       29-Jan-2015.) $)
    odubas $p |- B = ( Base ` D ) $=
      ( cbs cfv cnx cple ccnv cop csts co baseid wne c1 cc0 cdc 1re 1lt10 mpbir
      ltneii basendx plendx neeq12i setsnid eqid oduval fveq2i 3eqtr4i ) CFGCHI
      GZCIGZJZKLMZFGABFGUMUKFCNHFGZUKOPPQRZOPUPSTUBUOPUKUPUCUDUEUAUFEBUNFBULCDU
      LUGUHUIUJ $.
  $}

  ${
    $d B x y a b c $.  $d ph x y a b c $.  $d K x y a b c $.  $d L x y a b c $.
    pospropd.kv $e |- ( ph -> K e. V ) $.
    pospropd.lv $e |- ( ph -> L e. W ) $.
    pospropd.kb $e |- ( ph -> B = ( Base ` K ) ) $.
    pospropd.lb $e |- ( ph -> B = ( Base ` L ) ) $.
    pospropd.xy $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( x ( le ` K ) y <-> x ( le ` L ) y ) ) $.
    $( Posethood is determined only by structure components and only by the
       value of the relation within the base set.  (Contributed by Stefan
       O'Rear, 29-Jan-2015.) $)
    pospropd $p |- ( ph -> ( K e. Poset <-> L e. Poset ) ) $=
      ( va vb vc wbr wa wral wb cvv wcel cv cple cfv weq w3a cbs cpo ralrimivva
      simp1 jca breq1 bibi12d breq2 rspc2va sylan 3adantl3 3simpb 3comr anbi12d
      wi imbi1d 3adantl1 3anbi123d sylan2 ancoms 3exp2 imp42 ralbidva 2ralbidva
      imbi12d wceq raleq raleqbi1dv 3bitr3d elexd biantrurd eqid ispos 3bitr4g
      syl ) AEUAUBZNUCZWDEUDUEZQZWDOUCZWEQZWGWDWEQZRZNOUFZVBZWHWGPUCZWEQZRZWDWM
      WEQZVBZUGZPEUHUEZSZOWSSZNWSSZRZFUAUBZWDWDFUDUEZQZWDWGXEQZWGWDXEQZRZWKVBZX
      GWGWMXEQZRZWDWMXEQZVBZUGZPFUHUEZSZOXPSZNXPSZRZEUIUBFUIUBAXBXSXCXTAWRPDSZO
      DSZNDSZXOPDSZODSZNDSZXBXSAYAYDNODDAWDDUBZWGDUBZRRWRXOPDAYGYHWMDUBZWRXOTZA
      YGYHYIYJYGYHYIUGZAYJAYKBUCZCUCZWEQZYLYMXEQZTZCDSBDSZYJAYPBCDDMUJYKYQRZWFX
      FWLXJWQXNYKYGYGRYQWFXFTZYKYGYGYGYHYIUKZYTULYPYSWDYMWEQZWDYMXEQZTZBCWDWDDD
      BNUFYNUUAYOUUBYLWDYMWEUMYLWDYMXEUMUNZCNUFZUUAWFUUBXFYMWDWDWEUOYMWDWDXEUOU
      NUPUQYRWJXIWKYRWHXGWIXHYGYHYQWHXGTZYIYPUUFUUCBCWDWGDDUUDCOUFUUAWHUUBXGYMW
      GWDWEUOYMWGWDXEUOUNUPURZYKYHYGRZYQWIXHTZYHYIYGUUHYHYIYGUSUTYPUUIWGYMWEQZW
      GYMXEQZTZBCWGWDDDBOUFYNUUJYOUUKYLWGYMWEUMYLWGYMXEUMUNZUUEUUJWIUUKXHYMWDWG
      WEUOYMWDWGXEUOUNUPUQVAVCYRWOXLWPXMYRWHXGWNXKUUGYHYIYQWNXKTZYGYPUUNUULBCWG
      WMDDUUMCPUFZUUJWNUUKXKYMWMWGWEUOYMWMWGXEUOUNUPVDVAYKYGYIRYQWPXMTZYGYHYIUS
      YPUUPUUCBCWDWMDDUUDUUOUUAWPUUBXMYMWMWDWEUOYMWMWDXEUOUNUPUQVLVEVFVGVHVIVJV
      KADWSVMYCXBTKYBXANDWSYAWTODWSWRPDWSVNVOVOWBADXPVMYFXSTLYEXRNDXPYDXQODXPXO
      PDXPVNVOVOWBVPAWCXBAEGIVQVRAXDXSAFHJVQVRVPNOPWSEWEWSVSWEVSVTNOPXPFXEXPVSX
      EVSVTWA $.
  $}

  ${
    $d D a b c $.  $d O a b c $.  $d V a b c $.
    odupos.d $e |- D = ( ODual ` O ) $.
    $( Being a poset is a self-dual property.  (Contributed by Stefan O'Rear,
       29-Jan-2015.) $)
    odupos $p |- ( O e. Poset -> D e. Poset ) $=
      ( va vb vc wcel cbs cfv cple cvv codu a1i wceq cv wa wbr vex brcnv w3a wi
      cpo ccnv fvex eqeltri odubas oduleval posref sylibr weq anbi12ci posasymb
      eqid biimpd syl5bi 3anrev postr sylan2b 3imtr4g isposd ) BUBGZDEFBHIZABJI
      ZUCZAKGVAABLIKCBLUDUEMVBAHINVAVBABCVBUMZUFMVDAJINVAAVCBCVCUMZUGMVADOZVBGZ
      PVGVGVCQVGVGVDQVBBVCVGVEVFUHVGVGVCDRZVISUIVGEOZVDQZVJVGVDQZPVGVJVCQZVJVGV
      CQZPZVAVHVJVBGZTZDEUJZVKVNVLVMVGVJVCVIERZSZVJVGVCVSVISUKVQVOVRVBBVCVGVJVE
      VFULUNUOVAVHVPFOZVBGZTZPWAVJVCQZVNPZWAVGVCQZVKVJWAVDQZPVGWAVDQWCVAWBVPVHT
      WEWFUAVHVPWBUPVBBVCWAVJVGVEVFUQURVKVNWGWDVTVJWAVCVSFRZSUKVGWAVCVIWHSUSUT
      $.

    $( Being a poset is a self-dual property.  (Contributed by Stefan O'Rear,
       29-Jan-2015.) $)
    oduposb $p |- ( O e. V -> ( O e. Poset <-> D e. Poset ) ) $=
      ( va vb wcel cpo odupos codu cfv eqid cbs odubas a1i cv cple wbr wa ccnv
      fvexd id wceq eqidd wb oduleval eqcomi breqi brcnv 3bitri pospropd syl5ib
      cvv vex impbid2 ) BCGZBHGZAHGZABDIURAJKZHGUPUQUSAUSLZIUPEFBMKZUSBUMCUPAJU
      AUPUBVAUSMKUCUPVAUSAUTVAABDVALNNOUPVAUDEPZFPZUSQKZRZVBVCBQKZRZUEUPVBVAGVC
      VAGSSVEVBVCVFTZTZRVCVBVHRVGVBVCVDVIVIVDUSVHAUTAVFBDVFLUFUFUGUHVBVCVHEUNZF
      UNZUIVCVBVFVKVJUIUJOUKULUO $.
  $}

  ${
    $d x y z w $.
    $( Lemma for ~ odujoin .  (Contributed by Stefan O'Rear, 29-Jan-2015.)
       TODO ( ~ df-riota update):  This proof increased from 152 bytes to 547
       bytes after the ~ df-riota change.  Any way to shorten it? ~ join0
       also. $)
    meet0 $p |- ( meet ` (/) ) = (/) $=
      ( vx vy vz vw c0 cfv cv wbr cvv wceq 0ex eqid ax-mp cop wa wex wral eqtri
      cab nex cmee cpr cglb coprab wcel meetfval df-oprab br0 cple wi crio cmpt
      cpw wreu cres base0 biid id glbfval wrex rex0 reurex mto abf reseq2i res0
      breqi mtbir intnan ) EUAFZAGZBGZUBZCGZEUCFZHZABCUDZEEIUEZVJVQJKABCVOEVJIV
      OLZVJLUFMVQDGZVKVLNVNNJZVPOZCPZBPZAPZDSEVPABCDUGWEDWDAWCBWBCVPWAVPVMVNEHV
      MVNUHVMVNVOEVOAEUMVLVNEUIFZHCVKQVTVNWFHCVKQVTVLWFHUJDEQOZBEUKULZWGBEUNZAS
      ZUOZEVRVOWKJKVRWGBCDEVOEWFIAUPWFLVSWGUQVRURUSMWKWHEUOEWJEWHWIAWIWGBEUTWGB
      VAWGBEVBVCVDVEWHVFRRVGVHVITTTVDRR $.

    $( Lemma for ~ odumeet .  (Contributed by Stefan O'Rear, 29-Jan-2015.) $)
    join0 $p |- ( join ` (/) ) = (/) $=
      ( vx vy vz vw c0 cfv cv wbr cvv wceq 0ex eqid ax-mp cop wa wex wral eqtri
      cab nex cjn cpr club coprab wcel joinfval df-oprab br0 cpw cple crio cmpt
      wi wreu cres base0 biid id lubfval wrex rex0 reurex mto abf reseq2i breqi
      res0 mtbir intnan ) EUAFZAGZBGZUBZCGZEUCFZHZABCUDZEEIUEZVJVQJKABCVOVJEIVO
      LZVJLUFMVQDGZVKVLNVNNJZVPOZCPZBPZAPZDSEVPABCDUGWEDWDAWCBWBCVPWAVPVMVNEHVM
      VNUHVMVNVOEVODEUIVKVNEUJFZHAVTQVKVLWFHAVTQVNVLWFHUMBEQOZCEUKULZWGCEUNZDSZ
      UOZEVRVOWKJKVRWGCABEVOEWFIDUPWFLVSWGUQVRURUSMWKWHEUOEWJEWHWIDWIWGCEUTWGCV
      AWGCEVBVCVDVEWHVGRRVFVHVITTTVDRR $.
  $}

  ${
    $d D a b c d $.  $d L a b c d $.  $d U a b c d $.  $d O a b c d $.
    $d V a b c d $.  $d .\/ a b $.  $d ./\ a b $.
    oduglb.d $e |- D = ( ODual ` O ) $.

    ${
      oduglb.l $e |- U = ( lub ` O ) $.
      $( Greatest lower bounds in a dual order are least upper bounds in the
         original order.  (Contributed by Stefan O'Rear, 29-Jan-2015.) $)
      oduglb $p |- ( O e. V -> U = ( glb ` D ) ) $=
        ( va vc vb vd wcel cfv cv wbr wral vex brcnv ralbii eqid cvv cbs cpw wi
        club cglb cple wa crio cmpt wreu cres ccnv wb imbi12i anbi12i riotabiia
        cab mpteq2i reubii abbii reseq12i eqcomi biid id lubfval wceq codu fvex
        a1i eqeltri odubas oduleval glbfval mp1i 3eqtr4a syl5eq ) CDKZBCUDLZAUE
        LZFVQGCUALZUBZHMZIMZCUFLZNZHGMZOZWBJMZWDNZHWFOZWCWHWDNZUCZJVTOZUGZIVTUH
        ZUIZWNIVTUJZGUQZUKZGWAWCWBWDULZNZHWFOZWHWBWTNZHWFOZWHWCWTNZUCZJVTOZUGZI
        VTUHZUIZXHIVTUJZGUQZUKZVRVSXMWSXJWPXLWRGWAXIWOXHWNIVTXHWNUMWCVTKXBWGXGW
        MXAWEHWFWCWBWDIPZHPZQRXFWLJVTXDWJXEWKXCWIHWFWHWBWDJPZXOQRWHWCWDXPXNQUNR
        UOZVIUPURXKWQGXHWNIVTXQUSUTVAVBVQWNIHJVTVRCWDDGVTSZWDSZVRSWNVCVQVDVEATK
        ZVSXMVFVQACVGLTECVGVHVJXTXHIHJVTVSAWTTGVTACEXRVKAWDCEXSVLVSSXHVCXTVDVMV
        NVOVP $.
    $}

    ${
      odumeet.j $e |- .\/ = ( join ` O ) $.
      $( Meets in a dual order are joins in the original.  (Contributed by
         Stefan O'Rear, 29-Jan-2015.) $)
      odumeet $p |- .\/ = ( meet ` D ) $=
        ( va vb vc cjn cfv cmee cvv wcel wceq cv wbr coprab eqid codu c0 oduglb
        cpr club cglb breqd oprabbidv joinfval fvex eqeltri meetfval 3eqtr4d wn
        mp1i fvprc syl5eq fveq2d meet0 syl6eq eqtr4d pm2.61i eqtri ) BCIJZAKJZE
        CLMZVBVCNVDFOGOUBZHOZCUCJZPZFGHQVEVFAUDJZPZFGHQZVBVCVDVHVJFGHVDVGVIVEVF
        AVGCLDVGRZUAUEUFFGHVGVBCLVLVBRUGALMVCVKNVDACSJZLDCSUHUIFGHVIAVCLVIRVCRU
        JUMUKVDULZVBTVCCIUNVNVCTKJTVNATKVNAVMTDCSUNUOUPUQURUSUTVA $.
    $}

    ${
      odulub.l $e |- L = ( glb ` O ) $.
      $( Least upper bounds in a dual order are greatest lower bounds in the
         original order.  (Contributed by Stefan O'Rear, 29-Jan-2015.) $)
      odulub $p |- ( O e. V -> L = ( lub ` D ) ) $=
        ( va vb vc vd wcel cfv cv wbr wral vex brcnv ralbii eqid cvv cbs cpw wi
        cglb club cple wa crio cmpt wreu cres ccnv wb imbi12i anbi12i riotabiia
        cab mpteq2i reubii abbii reseq12i eqcomi biid id glbfval wceq codu fvex
        a1i eqeltri odubas oduleval lubfval mp1i 3eqtr4a syl5eq ) CDKZBCUDLZAUE
        LZFVQGCUALZUBZHMZIMZCUFLZNZIGMZOZJMZWCWDNZIWFOZWHWBWDNZUCZJVTOZUGZHVTUH
        ZUIZWNHVTUJZGUQZUKZGWAWCWBWDULZNZIWFOZWCWHWTNZIWFOZWBWHWTNZUCZJVTOZUGZH
        VTUHZUIZXHHVTUJZGUQZUKZVRVSXMWSXJWPXLWRGWAXIWOXHWNHVTXHWNUMWBVTKXBWGXGW
        MXAWEIWFWCWBWDIPZHPZQRXFWLJVTXDWJXEWKXCWIIWFWCWHWDXNJPZQRWBWHWDXOXPQUNR
        UOZVIUPURXKWQGXHWNHVTXQUSUTVAVBVQWNHIJVTVRCWDDGVTSZWDSZVRSWNVCVQVDVEATK
        ZVSXMVFVQACVGLTECVGVHVJXTXHHIJVTVSAWTTGVTACEXRVKAWDCEXSVLVSSXHVCXTVDVMV
        NVOVP $.
    $}

    ${
      odujoin.m $e |- ./\ = ( meet ` O ) $.
      $( Joins in a dual order are meets in the original.  (Contributed by
         Stefan O'Rear, 29-Jan-2015.) $)
      odujoin $p |- ./\ = ( join ` D ) $=
        ( va vb vc cmee cfv cjn cvv wcel wceq cv wbr coprab eqid codu c0 odulub
        cpr cglb club breqd oprabbidv meetfval fvex eqeltri joinfval 3eqtr4d wn
        mp1i fvprc syl5eq fveq2d join0 syl6eq eqtr4d pm2.61i eqtri ) BCIJZAKJZE
        CLMZVBVCNVDFOGOUBZHOZCUCJZPZFGHQVEVFAUDJZPZFGHQZVBVCVDVHVJFGHVDVGVIVEVF
        AVGCLDVGRZUAUEUFFGHVGCVBLVLVBRUGALMVCVKNVDACSJZLDCSUHUIFGHVIVCALVIRVCRU
        JUMUKVDULZVBTVCCIUNVNVCTKJTVNATKVNAVMTDCSUNUOUPUQURUSUTVA $.
    $}

    $( Being a lattice is self-dual.  (Contributed by Stefan O'Rear,
       29-Jan-2015.) $)
    odulatb $p |- ( O e. V -> ( O e. Lat <-> D e. Lat ) ) $=
      ( wcel cpo cjn cfv cdm cbs cxp wceq cmee wa clat oduposb ancom eqid islat
      wb a1i anbi12d odubas odujoin odumeet 3bitr4g ) BCEZBFEZBGHZIBJHZUJKZLZBM
      HZIUKLZNZNAFEZUNULNZNBOEAOEUGUHUPUOUQABCDPUOUQTUGULUNQUAUBUJUIBUMUJRZUIRZ
      UMRZSUJUMAUIUJABDURUCAUMBDUTUDAUIBDUSUESUF $.

    $( Being a complete lattice is self-dual.  (Contributed by Stefan O'Rear,
       29-Jan-2015.) $)
    oduclatb $p |- ( O e. CLat <-> D e. CLat ) $=
      ( ccla wcel cvv c0 club cfv eqid codu cpo cdm wceq cglb wa eqeq1d anbi12d
      dmeqd isclat elex wn noel wss ssid base0 clatlubcl mpan2 mto fvprc syl5eq
      eleq1d mtbiri con4i cbs oduposb ancom odulub oduglb syl5bb odubas 3bitr4g
      cpw pm5.21nii ) BDEZBFEZADEZBDUAVFVGVFUBZVGGDEZVIGGHIZIZGEZVKUCVIGGUDVLGU
      EGGVJGUFVJJUGUHUIVHAGDVHABKIGCBKUJUKULUMUNVFBLEZBHIZMZBUOIZVCZNZBOIZMZVQN
      ZPZPALEZAHIZMZVQNZAOIZMZVQNZPZPVEVGVFVMWCWBWJABFCUPWBWAVRPVFWJVRWAUQVFWAW
      FVRWIVFVTWEVQVFVSWDAVSBFCVSJZURSQVFVOWHVQVFVNWGAVNBFCVNJZUSSQRUTRVPVNVSBV
      PJZWLWKTVPWDWGAVPABCWMVAWDJWGJTVBVD $.

    $( Being a lattice is self-dual.  (Contributed by Stefan O'Rear,
       29-Jan-2015.) $)
    odulat $p |- ( O e. Lat -> D e. Lat ) $=
      ( clat wcel odulatb ibi ) BDEADEABDCFG $.
  $}

  ${
    $d .<_ x y z w $.  $d B x y z w $.  $d K x y z w $.  $d S x y z w $.
    poslubmo.l $e |- .<_ = ( le ` K ) $.
    poslubmo.b $e |- B = ( Base ` K ) $.
    $( Least upper bounds in a poset are unique if they exist.  (Contributed by
       Stefan O'Rear, 31-Jan-2015.)  (Revised by NM, 16-Jun-2017.) $)
    poslubmo $p |- ( ( K e. Poset /\ S C_ B ) -> E* x e. B
  ( A. y e. S y .<_ x /\ A. z e. B ( A. y e. S y .<_ z -> x .<_ z ) ) ) $=
      ( vw wcel wa cv wbr wral wi weq breq2 ralbidv imbi12d cpo simplrr simprlr
      wss wrmo simprrl rspcv syl3c simplrl simprrr simprll wb posasymb ad4ant13
      3expb mpbi2and ex ralrimivva breq1 imbi2d anbi12d rmo4 sylibr ) FUAKZEDUD
      ZLZBMZAMZGNZBEOZVGCMZGNZBEOZVHVKGNZPZCDOZLZVGJMZGNZBEOZVMVRVKGNZPZCDOZLZL
      ZAJQZPZJDOADOVQADUEVFWGAJDDVFVHDKZVRDKZLZLZWEWFWKWELZVHVRGNZVRVHGNZWFWLWI
      VPVTWMVFWHWIWEUBWKVJVPWDUCWKVQVTWCUFVOVTWMPCVRDCJQZVMVTVNWMWOVLVSBEVKVRVG
      GRSVKVRVHGRTUGUHWLWHWCVJWNVFWHWIWEUIWKVQVTWCUJWKVJVPWDUKWBVJWNPCVHDCAQZVM
      VJWAWNWPVLVIBEVKVHVGGRSVKVHVRGRTUGUHVDWJWMWNLWFULZVEWEVDWHWIWQDFGVHVRIHUM
      UOUNUPUQURVQWDAJDWFVJVTVPWCWFVIVSBEVHVRVGGRSWFVOWBCDWFVNWAVMVHVRVKGUSUTSV
      AVBVC $.

    $( Greatest lower bounds in a poset are unique if they exist.  (Contributed
       by NM, 20-Sep-2018.) $)
    posglbmo $p |- ( ( K e. Poset /\ S C_ B ) -> E* x e. B
  ( A. y e. S x .<_ y /\ A. z e. B ( A. y e. S z .<_ y -> z .<_ x ) ) ) $=
      ( vw wcel wa cv wbr wral wi weq breq1 ralbidv imbi12d cpo simplrr simprlr
      wrmo simprrl rspcv syl3c simplrl simprrr simprll wb ancom posasymb syl5bb
      wss w3a 3expb ad4ant13 mpbi2and ex ralrimivva breq2 imbi2d anbi12d sylibr
      rmo4 ) FUAKZEDUOZLZAMZBMZGNZBEOZCMZVKGNZBEOZVNVJGNZPZCDOZLZJMZVKGNZBEOZVP
      VNWAGNZPZCDOZLZLZAJQZPZJDOADOVTADUDVIWJAJDDVIVJDKZWADKZLZLZWHWIWNWHLZWAVJ
      GNZVJWAGNZWIWOWLVSWCWPVIWKWLWHUBWNVMVSWGUCWNVTWCWFUEVRWCWPPCWADCJQZVPWCVQ
      WPWRVOWBBEVNWAVKGRSVNWAVJGRTUFUGWOWKWFVMWQVIWKWLWHUHWNVTWCWFUIWNVMVSWGUJW
      EVMWQPCVJDCAQZVPVMWDWQWSVOVLBEVNVJVKGRSVNVJWAGRTUFUGVGWMWPWQLZWIUKZVHWHVG
      WKWLXAWTWQWPLVGWKWLUPWIWPWQULDFGVJWAIHUMUNUQURUSUTVAVTWGAJDWIVMWCVSWFWIVL
      WBBEVJWAVKGRSWIVRWECDWIVQWDVPVJWAVNGVBVCSVDVFVE $.
  $}

  ${
    $d .<_ x y z $.  $d B x y z $.  $d K x y z $.  $d S x y z $.  $d U x y z $.
    $d T x y z $.  $d ph x y z $.
    poslubd.l $e |- .<_ = ( le ` K ) $.
    poslubd.b $e |- B = ( Base ` K ) $.
    poslubd.u $e |- U = ( lub ` K ) $.
    poslubd.k $e |- ( ph -> K e. Poset ) $.
    poslubd.s $e |- ( ph -> S C_ B ) $.
    poslubd.t $e |- ( ph -> T e. B ) $.
    poslubd.ub $e |- ( ( ph /\ x e. S ) -> x .<_ T ) $.
    poslubd.le $e |- ( ( ph /\ y e. B /\ A. x e. S x .<_ y ) -> T .<_ y ) $.
    $( Properties which determine the least upper bound in a poset.
       (Contributed by Stefan O'Rear, 31-Jan-2015.) $)
    poslubd $p |- ( ph -> ( U ` S ) = T ) $=
      ( vz wbr wral cfv cv wi wa crio cpo biid lubval wceq ralrimiva 3expia jca
      wcel wreu wrex wrmo breq2 ralbidv breq1 imbi2d anbi12d rspcev syl2anc wss
      wb poslubmo reu5 sylanbrc riota2 mpbid eqtrd ) AEGUABUBZRUBZISZBETZVLCUBZ
      ISBETZVMVPISZUCZCDTZUDZRDUEZFAWARBCDEGHIUFKJLWAUGMNUHAVLFISZBETZVQFVPISZU
      CZCDTZUDZWBFUIZAWDWGAWCBEPUJAWFCDAVPDUMVQWEQUKUJULZAFDUMZWARDUNZWHWIVEOAW
      ARDUOZWARDUPZWLAWKWHWMOWJWAWHRFDVMFUIZVOWDVTWGWOVNWCBEVMFVLIUQURWOVSWFCDW
      OVRWEVQVMFVPIUSUTURVAZVBVCAHUFUMEDVDWNMNRBCDEHIJKVFVCWARDVGVHWAWHRDFWPVIV
      CVJVK $.
  $}

  ${
    $d .<_ x y $.  $d B x y $.  $d K x y $.  $d S x y $.  $d U x y $.
    $d T x y $.  $d ph x y $.
    poslubdg.l $e |- .<_ = ( le ` K ) $.
    poslubdg.b $e |- ( ph -> B = ( Base ` K ) ) $.
    poslubdg.u $e |- ( ph -> U = ( lub ` K ) ) $.
    poslubdg.k $e |- ( ph -> K e. Poset ) $.
    poslubdg.s $e |- ( ph -> S C_ B ) $.
    poslubdg.t $e |- ( ph -> T e. B ) $.
    poslubdg.ub $e |- ( ( ph /\ x e. S ) -> x .<_ T ) $.
    poslubdg.le $e |- ( ( ph /\ y e. B /\ A. x e. S x .<_ y ) -> T .<_ y ) $.
    $( Properties which determine the least upper bound in a poset.
       (Contributed by Stefan O'Rear, 31-Jan-2015.) $)
    poslubdg $p |- ( ph -> ( U ` S ) = T ) $=
      ( cfv eqid cv club fveq1d cbs sseqtrd eleqtrd wcel eleq2d biimpar 3adant3
      wbr wral syld3an2 poslubd eqtrd ) AEGREHUARZRFAEGUOLUBABCHUCRZEFUOHIJUPSU
      OSMAEDUPNKUDAFDUPOKUEPACTZDUFZUQUPUFZBTUQIUJBEUKZFUQIUJAUSURUTAURUSADUPUQ
      KUGUHUIQULUMUN $.
  $}

  ${
    $d .<_ x y $.  $d B x y $.  $d K x y $.  $d S x y $.  $d G x y $.
    $d T x y $.  $d ph x y $.
    posglbd.l $e |- .<_ = ( le ` K ) $.
    posglbd.b $e |- ( ph -> B = ( Base ` K ) ) $.
    posglbd.g $e |- ( ph -> G = ( glb ` K ) ) $.
    posglbd.k $e |- ( ph -> K e. Poset ) $.
    posglbd.s $e |- ( ph -> S C_ B ) $.
    posglbd.t $e |- ( ph -> T e. B ) $.
    posglbd.lb $e |- ( ( ph /\ x e. S ) -> T .<_ x ) $.
    posglbd.gt $e |- ( ( ph /\ y e. B /\ A. x e. S y .<_ x ) -> y .<_ T ) $.
    $( Properties which determine the greatest lower bound in a poset.
       (Contributed by Stefan O'Rear, 31-Jan-2015.) $)
    posglbd $p |- ( ph -> ( G ` S ) = T ) $=
      ( cfv wcel wbr codu ccnv eqid oduleval cbs odubas syl6eq cglb club odulub
      cpo wceq syl eqtrd odupos cv wa cvv vex brcnvg sylancr adantr mpbird wral
      wb w3a brcnv ralbii syl3an3b sylancl 3ad2ant1 poslubdg ) ABCDEFGHUARZIUBZ
      VMIHVMUCZJUDADHUERZVMUERKVPVMHVOVPUCUFUGAGHUHRZVMUIRZLAHUKSZVQVRULMVMVQHU
      KVOVQUCUJUMUNAVSVMUKSMVMHVOUOUMNOABUPZESZUQVTFVNTZFVTITZPAWBWCVEZWAAVTURS
      FDSZWDBUSZOVTFURDIUTVAVBVCACUPZDSZVTWGVNTZBEVDZVFFWGVNTZWGFITZWJAWHWGVTIT
      ZBEVDWLWIWMBEVTWGIWFCUSZVGVHQVIAWHWKWLVEZWJAWEWGURSWOOWNFWGDURIUTVJVKVCVL
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subset order structures
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c toInc $.

  $( Class function defining inclusion posets. $)
  cipo $a class toInc $.

  ${
    $d f o x y $.
    $( For any family of sets, define the poset of that family ordered by
       inclusion.  See ~ ipobas , ~ ipolerval , and ~ ipole for its contract.

       _EDITORIAL_:  I'm not thrilled with the name.  Any suggestions?
       (Contributed by Stefan O'Rear, 30-Jan-2015.)
       (New usage is discouraged.) $)
    df-ipo $a |- toInc = ( f e. _V |-> [_ { <. x , y >. |
            ( { x , y } C_ f /\ x C_ y ) } / o ]_
    ( { <. ( Base ` ndx ) , f >. , <. ( TopSet ` ndx ) , ( ordTop ` o ) >. } u.
      { <. ( le ` ndx ) , o >. , <. ( oc ` ndx ) , ( x e. f |->
           U. { y e. f | ( y i^i x ) = (/) } ) >. } ) ) $.
  $}

  ${
    $( The structure of ~ df-ipo is a structure defining indexes up to 11.
       (Contributed by Mario Carneiro, 25-Oct-2015.) $)
    ipostr $p |- ( { <. ( Base ` ndx ) , B >. , <. ( TopSet ` ndx ) , J >. } u.
                   { <. ( le ` ndx ) , .<_ >. , <. ( oc ` ndx ) , ._|_ >. } )
                 Struct <. 1 , ; 1 1 >. $=
      ( c1 c9 cc0 cdc cnx cbs cfv cop cts cpr cple coc 1nn basendx strle2 1nn0
      1lt9 9nn tsetndx 10nn plendx 0nn0 0lt1 declt decnncl ocndx 9lt10 strleun
      ) EFEGHZEEHZIJKZALIMKZBLNIOKZCLIPKZDLNUOUPEFABQRUAUBUCSUQURUMUNCDUDUEEGET
      UFQUGUHEETQUIUJSUKUL $.
  $}

  ${
    $d f o x y F $.  $d x y I $.  $d f o .<_ $.  $d x y V $.  $d x y X $.
    $d x y Y $.
    ipoval.i $e |- I = ( toInc ` F ) $.
    ${
      ipoval.l $e |- .<_ = { <. x , y >. | ( { x , y } C_ F /\ x C_ y ) } $.
      $( Value of the inclusion poset.  (Contributed by Stefan O'Rear,
         30-Jan-2015.) $)
      ipoval $p |- ( F e. V -> I = ( { <. ( Base ` ndx ) , F >. ,
          <. ( TopSet ` ndx ) , ( ordTop ` .<_ ) >. } u.
        { <. ( le ` ndx ) , .<_ >. , <. ( oc ` ndx ) , ( x e. F |->
           U. { y e. F | ( y i^i x ) = (/) } ) >. } ) ) $=
        ( vf vo wcel cvv cnx cfv cop cpr cv wceq wa opeq2d cbs cts cple coc cin
        cordt c0 crab cuni cmpt cun elex cipo wss copab csb cxp xpex simpl prss
        vex sylibr ssopab2i df-xp sseqtr4i ssexi a1i sseq2 anbi1d syl6eqr simpr
        opabbidv fveq2d preq12d id rabeq unieqd mpteq12dv adantr uneq12d df-ipo
        csbied2 prex unex fvmpt syl5eq syl ) CFKCLKZDMUANZCOZMUBNZEUFNZOZPZMUCN
        ZEOZMUDNZACBQZAQZUEUGRZBCUHZUIZUJZOZPZUKZRCFULWHDCUMNXFGICJWSWRPZIQZUNZ
        WSWRUNZSZABUOZWIXHOZWKJQZUFNZOZPZWOXNOZWQAXHWTBXHUHZUIZUJZOZPZUKZUPXFLU
        MXHCRZJXLEYDXFLXLLKYEXLXHXHUQZXHXHIVAZYGURXLWSXHKWRXHKSZABUOYFXKYHABXKX
        IYHXIXJUSWSWRXHAVABVAUTVBVCABXHXHVDVEVFVGYEXLXGCUNZXJSZABUOEYEXKYJABYEX
        IYIXJXHCXGVHVIVLHVJYEXNERZSZXQWNYCXEYLXMWJXPWMYLXHCWIYEYKUSTYLXOWLWKYLX
        NEUFYEYKVKZVMTVNYLXRWPYBXDYLXNEWOYMTYLYAXCWQYEYAXCRYKYEAXHXTCXBYEVOYEXS
        XAWTBXHCVPVQVRVSTVNVTWBABIJWAWNXEWJWMWCWPXDWCWDWEWFWG $.
    $}

    $( Base set of the inclusion poset.  (Contributed by Stefan O'Rear,
       30-Jan-2015.)  (Revised by Mario Carneiro, 25-Oct-2015.) $)
    ipobas $p |- ( F e. V -> F = ( Base ` I ) ) $=
      ( vx vy wcel cnx cbs cfv cop cts cv cpr wss wa copab cordt cple c1 coc c0
      cin wceq crab cuni cmpt cun cdc ipostr csn snsspr1 ssun1 sstri strfv eqid
      baseid ipoval fveq2d eqtr4d ) ACGZAHIJAKZHLJEMZFMZNAOVCVDOPEFQZRJZKZNZHSJ
      VEKHUAJEAVDVCUCUBUDFAUEUFUGZKNZUHZIJBIJAVKICTTTUIKAVFVEVIUJUQVBUKVHVKVBVG
      ULVHVJUMUNUOVABVKIEFABVECDVEUPURUSUT $.

    $( Relation of the inclusion poset.  (Contributed by Stefan O'Rear,
       30-Jan-2015.) $)
    ipolerval $p |- ( F e. V ->
          { <. x , y >. | ( { x , y } C_ F /\ x C_ y ) } = ( le ` I ) ) $=
      ( wcel cv cpr wss wa copab cnx cfv cop cple wceq cvv vex c1 cbs cts cordt
      coc cin c0 crab cuni cmpt cun simpl prss sylibr ssopab2i sseqtr4i sqxpexg
      cxp df-xp ssexg sylancr cdc ipostr pleid csn snsspr1 ssun2 sstri syl eqid
      strfv ipoval fveq2d eqtr4d ) CEGZAHZBHZICJZVOVPJZKZABLZMUANCOMUBNVTUCNZOI
      ZMPNVTOZMUDNACVPVOUEUFQBCUGUHUIZOZIZUJZPNZDPNVNVTRGZVTWHQVNVTCCUQZJWJRGWI
      VTVOCGVPCGKZABLWJVSWKABVSVQWKVQVRUKVOVPCASBSULUMUNABCCURUOCEUPVTWJRUSUTVT
      WGPRTTTVAOCWAVTWDVBVCWCVDWFWGWCWEVEWFWBVFVGVJVHVNDWGPABCDVTEFVTVIVKVLVM
      $.

    ipole.l $e |- .<_ = ( le ` I ) $.
    $( Topology of the inclusion poset.  (Contributed by Mario Carneiro,
       24-Oct-2015.) $)
    ipotset $p |- ( F e. V -> ( ordTop ` .<_ ) = ( TopSet ` I ) ) $=
      ( vx vy wcel cv cpr wss cordt cfv cnx cop cts cple wceq c1 wa cbs coc cin
      copab c0 crab cuni cmpt cun cvv cdc ipostr tsetid csn snsspr2 ssun1 sstri
      fvex strfv ax-mp ipolerval syl6reqr fveq2d eqid ipoval 3eqtr4a ) ADIZGJZH
      JZKALVIVJLUAGHUEZMNZOUBNAPZOQNVLPZKZORNVKPOUCNGAVJVIUDUFSHAUGUHUIZPKZUJZQ
      NZCMNBQNVLUKIVLVSSVKMUSVLVRQUKTTTULPAVLVKVPUMUNVNUOVOVRVMVNUPVOVQUQURUTVA
      VHCVKMVHVKBRNCGHABDEVBFVCVDVHBVRQGHABVKDEVKVEVFVDVG $.

    $d .<_ x y $.  $d X x y $.  $d Y x y $.
    $( Weak order condition of the inclusion poset.  (Contributed by Stefan
       O'Rear, 30-Jan-2015.) $)
    ipole $p |- ( ( F e. V /\ X e. F /\ Y e. F ) -> ( X .<_ Y <-> X C_ Y ) ) $=
      ( vx vy wcel w3a cv cpr wss wa wbr wb wceq 3adant1 copab preq12 eqid cple
      sseq1d sseq12 anbi12d brabga cfv ipolerval syl6reqr breqd prssi biantrurd
      3ad2ant1 3bitr4d ) ADKZEAKZFAKZLZEFIMZJMZNZAOZVAVBOZPZIJUAZQZEFNZAOZEFOZP
      ZEFCQZVKURUSVHVLRUQVFVLIJEFVGAAVAESVBFSPZVDVJVEVKVNVCVIAVAVBEFUBUEVAEVBFU
      FUGVGUCUHTUQURVMVHRUSUQCVGEFUQVGBUDUICIJABDGUJHUKULUOUTVJVKURUSVJUQEFAUMT
      UNUP $.
  $}

  ${
    ipolt.i $e |- I = ( toInc ` F ) $.
    ipolt.l $e |- .< = ( lt ` I ) $.
    $( Strict order condition of the inclusion poset.  (Contributed by Stefan
       O'Rear, 30-Jan-2015.) $)
    ipolt $p |- ( ( F e. V /\ X e. F /\ Y e. F ) -> ( X .< Y <-> X C. Y ) ) $=
      ( wcel w3a cple cfv wbr wne wa wss wpss wb cvv cipo anbi1d eqeltri pltval
      eqid ipole fvex mp3an1 3adant1 df-pss a1i 3bitr4d ) BDIZEBIZFBIZJZEFCKLZM
      ZEFNZOZEFPZUROZEFAMZEFQZUOUQUTURBCUPDEFGUPUDZUEUAUMUNVBUSRZULCSIUMUNVECBT
      LSGBTUFUBSBBACUPEFVDHUCUGUHVCVARUOEFUIUJUK $.
  $}

  ${
    $d F a b c $.  $d I a b c $.
    ipopos.i $e |- I = ( toInc ` F ) $.
    $( The inclusion poset on a family of sets is actually a poset.
       (Contributed by Stefan O'Rear, 30-Jan-2015.) $)
    ipopos $p |- I e. Poset $=
      ( va vb vc cvv wcel cpo cfv cipo a1i cv wa wbr wss wb ipole w3a anbi12d
      cple fvex eqeltri ipobas eqidd ssid eqid 3anidm23 mpbiri weq 3com23 simpl
      simpr eqssd syl6bi wi sstr 3adant3r3 3adant3r1 3adant3r2 3imtr4d wn fvprc
      isposd c0 syl5eq 0pos syl6eqel pm2.61i ) AGHZBIHVJDEFABBUAJZBGHVJBAKJZGCA
      KUBUCLABGCUDVJVKUEVJDMZAHZNVMVMVKOZVMVMPZVMUFVJVNVOVPQABVKGVMVMCVKUGZRUHU
      IVJVNEMZAHZSZVMVRVKOZVRVMVKOZNVMVRPZVRVMPZNZDEUJVTWAWCWBWDABVKGVMVRCVQRZV
      JVSVNWBWDQABVKGVRVMCVQRUKTWEVMVRWCWDULWCWDUMUNUOVJVNVSFMZAHZSNZWCVRWGPZNZ
      VMWGPZWAVRWGVKOZNVMWGVKOZWKWLUPWIVMVRWGUQLWIWAWCWMWJVJVNVSWAWCQWHWFURVJVS
      WHWMWJQVNABVKGVRWGCVQRUSTVJVNWHWNWLQVSABVKGVMWGCVQRUTVAVDVJVBZBVEIWOBVLVE
      CAKVCVFVGVHVI $.
  $}

  ${
    $d A w z $.  $d A x y $.  $d X w z $.  $d x z $.  $d y z $.
    $( Condition for a family of sets to be directed by inclusion.
       (Contributed by Stefan O'Rear, 2-Apr-2015.) $)
    isipodrs $p |- ( ( toInc ` A ) e. Dirset <-> ( A e. _V /\ A =/= (/) /\
            A. x e. A A. y e. A E. z e. A ( x u. y ) C_ z ) ) $=
      ( cipo cfv wcel cvv c0 wne cv wss wrex wral w3a cbs eqid wa wb anbi12d wn
      cdrs cun wceq drsbn0 neneqd fvprc fveq2d base0 syl6eqr nsyl2 cpreset cple
      simp1 wbr isdrs cpo ipopos posprs mp1i 2thd ipobas neeq1 rexeq raleqbi1dv
      id syl simpll simplrl simpr ipole syl3anc simplrr unss rexbidva 2ralbidva
      syl6bb anbi2d bitr3d 3anass 3bitr4g syl5bb pm5.21nii ) DEFZUBGZDHGZWFDIJZ
      AKZBKZUCCKZLZCDMZBDNADNZOZWEWDPFZIUDWFWEWOIWOWDWOQZUEUFWFUAZWOIPFIWQWDIPD
      EUGUHUIUJUKWFWGWMUNWEWDULGZWOIJZWHWJWDUMFZUOZWIWJWTUOZRZCWOMZBWONZAWONZOZ
      WFWNABCWOWDWTWPWTQZUPWFWRWSXFRZRWFWGWMRZRXGWNWFWRWFXIXJWFWRWFWDUQGWRWFDWD
      WDQZURWDUSUTWFVFVAWFWGXCCDMZBDNZADNZRZXIXJWFDWOUDZXOXISDWDHXKVBXPWGWSXNXF
      DWOIVCXMXEADWOXLXDBDWOXCCDWOVDVEVETVGWFXNWMWGWFXLWLABDDWFWHDGZWIDGZRZRZXC
      WKCDXTWJDGZRZXCWHWJLZWIWJLZRWKYBXAYCXBYDYBWFXQYAXAYCSWFXSYAVHZWFXQXRYAVIX
      TYAVJZDWDWTHWHWJXKXHVKVLYBWFXRYAXBYDSYEWFXQXRYAVMYFDWDWTHWIWJXKXHVKVLTWHW
      IWJVNVQVOVPVRVSTWRWSXFVTWFWGWMVTWAWBWC $.

    $( Direction by inclusion as used here implies sethood.  (Contributed by
       Stefan O'Rear, 2-Apr-2015.) $)
    ipodrscl $p |- ( ( toInc ` A ) e. Dirset -> A e. _V ) $=
      ( vx vy vz cipo cfv cdrs wcel cvv c0 wne cv cun wss wrex isipodrs simp1bi
      wral ) AEFGHAIHAJKBLCLMDLNDAOCARBARBCDAPQ $.

    $( Finite upper bound property for directed collections of sets.
       (Contributed by Stefan O'Rear, 2-Apr-2015.) $)
    ipodrsfi $p |- ( ( ( toInc ` A ) e. Dirset /\ X C_ A /\ X e. Fin ) ->
        E. z e. A U. X C_ z ) $=
      ( vw cipo cfv cdrs wcel wss cfn w3a cv cple wbr wral wrex cvv 3ad2ant1 wa
      eqid cbs cuni simp2 ipodrscl ipobas syl sseqtrd drsdirfi syld3an2 rexeqdv
      wceq wb adantr sselda adantrl simprl ipole syl3anc anassrs unissb syl6bbr
      ralbidva rexbidva bitr3d mpbid ) BEFZGHZCBIZCJHZKZDLZALZVFMFZNZDCOZAVFUAF
      ZPZCUBVLIZABPZVGCVPIVHVIVQVJCBVPVGVHVIUCZVGVHBVPUKZVIVGBQHZWABUDZBVFQVFTZ
      UEUFRZUGADVPVFVMCVPTVMTZUHUIVJVOABPVQVSVJVOABVPWEUJVJVOVRABVJVLBHZSZVOVKV
      LIZDCOVRWHVNWIDCVJWGVKCHZVNWIULZVJWGWJSZSWBVKBHZWGWKVJWBWLVGVHWBVIWCRUMVJ
      WJWMWGVJCBVKVTUNUOVJWGWJUPBVFVMQVKVLWDWFUQURUSVBDCVLUTVAVCVDVE $.

    $( The finite subsets of any set are directed by inclusion.  (Contributed
       by Stefan O'Rear, 2-Apr-2015.) $)
    fpwipodrs $p |- ( A e. V -> ( toInc ` ( ~P A i^i Fin ) ) e. Dirset ) $=
      ( vx vy vz wcel cpw cfn cin cvv c0 wne cv cun wss wral elin wa elpwi vex
      wrex cipo cfv cdrs pwexg inex1g syl 0elpw 0fin mpbir2an ne0i mp1i anim12i
      unss unex elpw bitr4i sylib ad2ant2r unfi elind syl2anb ssid sseq2 rspcev
      ad2ant2l sylancl rgen2a a1i isipodrs syl3anbrc ) ABFZAGZHIZJFZVNKLZCMZDMZ
      NZEMZOZEVNUAZDVNPCVNPZVNUBUCUDFVLVMJFVOABUEVMHJUFUGKVNFZVPVLWDKVMFKHFAUHU
      IKVMHQUJVNKUKULWCVLWBCDVNVQVNFZVRVNFZRVSVNFZVSVSOZWBWEVQVMFZVQHFZRZVRVMFZ
      VRHFZRZWGWFVQVMHQVRVMHQWKWNRVMHVSWIWLVSVMFZWJWMWIWLRVQAOZVRAOZRZWOWIWPWLW
      QVQASVRASUMWRVSAOWOVQVRAUNVSAVQVRCTDTUOUPUQURUSWJWMVSHFWIWLVQVRUTVFVAVBVS
      VCWAWHEVSVNVTVSVSVDVEVGVHVICDEVNVJVK $.
  $}

  ${
    $d ph a b c u v $.  $d A a b c u v $.  $d A x y z $.  $d B a b c z $.
    $d B x y $.  $d F a b c u v $.  $d F x y z $.  $d a x y $.  $d b y $.
    ipodrsima.f $e |- ( ph -> F Fn ~P A ) $.
    ipodrsima.m $e |- ( ( ph /\ ( u C_ v /\ v C_ A ) ) ->
        ( F ` u ) C_ ( F ` v ) ) $.
    ipodrsima.d $e |- ( ph -> ( toInc ` B ) e. Dirset ) $.
    ipodrsima.s $e |- ( ph -> B C_ ~P A ) $.
    ipodrsima.a $e |- ( ph -> ( F " B ) e. V ) $.
    $( The monotone image of a directed set.  (Contributed by Stefan O'Rear,
       2-Apr-2015.) $)
    ipodrsima $p |- ( ph -> ( toInc ` ( F " B ) ) e. Dirset ) $=
      ( vz va vb vc wcel wss wral wa vx vy cima cvv c0 wne cv cun wrex cipo cfv
      cdrs elex syl w3a isipodrs sylib simp2d cpw wfn wceq wb syl2anc necon3bid
      fnimaeq0 mpbird simp3d simplll simpr ad2antrr simprr sseldd elpwid adantr
      wi vex weq sseq12 sseq1 adantl anbi12d anbi2d fveq2 syl2an imbi12d vtocl2
      syl12anc anim12d unss 3imtr3g anassrs reximdva ralimdva mpd uneq1 rexbidv
      ex sseq1d ralbidv ralima uneq2 sseq2 rexima bitrd syl3anbrc ) AFEUCZUDQZX
      FUEUFZUAUGZUBUGZUHZMUGZRZMXFUIZUBXFSZUAXFSZXFUJUKULQAXFGQXGLXFGUMUNAXHEUE
      UFZAEUDQZXQNUGZOUGZUHPUGZRZPEUIZOESZNESZAEUJUKULQXRXQYEUOJNOPEUPUQZURAXFU
      EEUEAFDUSZUTZEYGRZXFUEVAEUEVAVBHKYGEFVEVCVDVFAXPXSFUKZXTFUKZUHZYAFUKZRZPE
      UIZOESZNESZAYEYQAXRXQYEYFVGAYDYPNEAXSEQZTZYCYOOEYSXTEQZTYBYNPEYSYTYAEQZYB
      YNVOYSYTUUATZTZXSYARZXTYARZTYJYMRZYKYMRZTYBYNUUCUUDUUFUUEUUGUUCUUDUUFUUCU
      UDTAUUDYADRZUUFAYRUUBUUDVHUUCUUDVIUUCUUHUUDUUCYADUUCEYGYAAYIYRUUBKVJYSYTU
      UAVKVLVMZVNACUGZBUGZRZUUKDRZTZTZUUJFUKZUUKFUKZRZVOZAUUDUUHTZTZUUFVOCBXSYA
      NVPPVPZCNVQZBPVQZTZUUOUVAUURUUFUVEUUNUUTAUVEUULUUDUUMUUHUUJXSUUKYAVRUVDUU
      MUUHVBZUVCUUKYADVSZVTWAWBUVCUUPYJVAUUQYMVAZUURUUFVBUVDUUJXSFWCUUKYAFWCZUU
      PYJUUQYMVRWDWEIWFWGWQUUCUUEUUGUUCUUETAUUEUUHUUGAYRUUBUUEVHUUCUUEVIUUCUUHU
      UEUUIVNUUSAUUEUUHTZTZUUGVOCBXTYAOVPUVBCOVQZUVDTZUUOUVKUURUUGUVMUUNUVJAUVM
      UULUUEUUMUUHUUJXTUUKYAVRUVDUVFUVLUVGVTWAWBUVLUUPYKVAUVHUURUUGVBUVDUUJXTFW
      CUVIUUPYKUUQYMVRWDWEIWFWGWQWHXSXTYAWIYJYKYMWIWJWKWLWMWMWNAXPYJXJUHZXLRZMX
      FUIZUBXFSZNESZYQAYHYIXPUVRVBHKXOUVQUANYGEFXIYJVAZXNUVPUBXFUVSXMUVOMXFUVSX
      KUVNXLXIYJXJWOWRWPWSWTVCAUVQYPNEAUVQYLXLRZMXFUIZOESZYPAYHYIUVQUWBVBHKUVPU
      WAUBOYGEFXJYKVAZUVOUVTMXFUWCUVNYLXLXJYKYJXAWRWPWTVCAUWAYOOEAYHYIUWAYOVBHK
      UVTYNMPYGEFXLYMYLXBXCVCWSXDWSXDVFUAUBMXFUPXE $.
  $}

  ${
    $d C s t x y $.  $d F s t x y $.  $d X s t x y $.  $d Y s t $.  $d S s $.
    $( An algebraic closure system satisfies ~ isacs3 .  (Contributed by Stefan
       O'Rear, 2-Apr-2015.) $)
    isacs3lem $p |- ( C e. ( ACS ` X ) -> ( C e. ( Moore ` X ) /\
          A. s e. ~P C ( ( toInc ` s ) e. Dirset -> U. s e. C ) ) ) $=
      ( vx vy cfv wcel cv cuni cpw wral wss cfn cin elpwid sseli ad2antrr sstrd
      wa adantl cacs cmre cipo cdrs acsmre cmrc mresspw syl sspwb sylib sspwuni
      wi sselda adantr wrex inss1 inss2 fissuni syl2anc ad2antll ad3antrrr eqid
      simprr unissd ad2antrl mrcssd simpl ipodrsfi syl3anc elpwi simprl mrcsscl
      wel sseldd elssuni rexlimddv anassrs adantrr adantlrr ralrimiva mpbir2and
      wb acsfiel ex jca ) ABUAFGZABUBFGZCHZUCFUDGZWHIZAGZULZCAJZKABUEZWFWLCWMWF
      WHWMGZSZWIWKWPWISZWKWJBLZDHZAUFFZFZWJLZDWJJZMNZKZWPWRWIWPWHBJZLWRWPWHXFWF
      WMXFJZWHWFAXFLZWMXGLWFWGXHWNABUGUHAXFUIUJUMOWHBUKUJZUNWQXBDXDWPWIWSXDGZXB
      WPWIXJSZSZWSEHZIZLZXBEWHJZMNZXJXOEXQUOZWPWIXJWSWJLZWSMGXRXJWSWJXDXCWSXCMU
      PPOXDMWSXCMUQPWSWHEURUSUTXLXMXQGZXOSZSZXAXNWTFZWJYBAWSWTXNBWFWGWOXKYAWNVA
      WTVBZXLXTXOVCYBXNWJBXTXNWJLXLXOXTXMWHXTXMWHXQXPXMXPMUPPOZVDVEWPWRXKYAXIQR
      VFWPWIYAYCWJLZXJWQXTYFXOWPWIXTYFWPWIXTSZSZXNWSLZYFDWHYGYIDWHUOZWPYGWIXMWH
      LZXMMGZYJWIXTVGXTYKWIYETXTYLWIXQMXMXPMUQPTDWHXMVHVITYHDCVMZYISZSZYCWSWJYO
      WGYIWSAGYCWSLWFWGWOYGYNWNVAYHYMYIVCYOWHAWSWPWHALZYGYNWOYPWFWHAVJTQYHYMYIV
      KVNAXNWTWSBYDVLVIYMXSYHYIWSWHVOVERVPVQVRVSRVPVQVTWFWKWRXESWBWOWIDAWJWTBYD
      WCQWAWDVTWE $.

    $( An algebraic closure system contains all directed unions of closed sets.
       (Contributed by Stefan O'Rear, 2-Apr-2015.) $)
    acsdrsel $p |- ( ( C e. ( ACS ` X ) /\ Y C_ C /\
          ( toInc ` Y ) e. Dirset ) -> U. Y e. C ) $=
      ( vs cacs cfv wcel wss cipo cdrs cuni wa cv wi wral elpw2g biimpar eleq1d
      cpw cmre isacs3lem simprd adantr wceq fveq2 imbi12d rspcva syl2anc 3impia
      unieq ) ABEFZGZCAHZCIFZJGZCKZAGZULUMLCASZGZDMZIFZJGZUTKZAGZNZDUROZUOUQNZU
      LUSUMCAUKPQULVFUMULABTFGVFABDUAUBUCVEVGDCURUTCUDZVBUOVDUQVHVAUNJUTCIUERVH
      VCUPAUTCUJRUFUGUHUI $.

    acsdrscl.f $e |- F = ( mrCls ` C ) $.
    $( In a closure system in which directed unions of closed sets are closed,
       closure commutes with directed unions.  (Contributed by Stefan O'Rear,
       2-Apr-2015.) $)
    isacs4lem $p |- ( ( C e. ( Moore ` X ) /\
          A. s e. ~P C ( ( toInc ` s ) e. Dirset -> U. s e. C ) ) ->
        ( C e. ( Moore ` X ) /\ A. t e. ~P ~P X ( ( toInc ` t ) e. Dirset ->
              ( F ` U. t ) = U. ( F " t ) ) ) ) $=
      ( vy cfv wcel cv cipo cdrs cuni wi cpw wceq wa wss syl2anc cvv cmre elpwi
      vx wral cima simpll ad2antrl mrcuni mrcf ffnd adantr simprl simprr mrcssd
      wfn cmrc fvex eqeltri a1i ipodrsima adantlr crn imassrn wf frn syl syl5ss
      imaex elpw sylibr ad2antrr simplr fveq2 eleq1d unieq imbi12d rspcva mrcid
      mpd eqtrd exp32 ralrimiv ex imdistani ) BDUAHIZEJZKHZLIZWFMZBIZNZEBOZUDZA
      JZKHLIZWNMCHZCWNUEZMZPZNZADOZOZUDZWEWMXCWEWMQZWTAXBXDWNXBIZWOWSXDXEWOQZQZ
      WPWRCHZWRXGWEWNXARZWPXHPWEWMXFUFZXEXIXDWOWNXAUBZUGBWNCDFUHSXGWEWRBIZXHWRP
      XJXGWQKHZLIZXLWEXFXNWMWEXFQZGUCDWNCTWECXAUOXFWEXABCBCDFUIZUJUKXOUCJZGJZRZ
      XRDRZQZQBXQCXRDWEXFYAUFFXOXSXTULXOXSXTUMUNWEXEWOUMXEXIWEWOXKUGWQTIXOCWNCB
      UPHTFBUPUQURVHZUSUTVAXGWQWLIZWMXNXLNZWEYCWMXFWEWQBRYCWEWQCVBZBCWNVCWEXABC
      VDYEBRXPXABCVEVFVGWQBYBVIVJVKWEWMXFVLWKYDEWQWLWFWQPZWHXNWJXLYFWGXMLWFWQKV
      MVNYFWIWRBWFWQVOVNVPVQSVSBWRCDFVRSVTWAWBWCWD $.

    $( If closure commutes with directed unions, then the closure of a set is
       the closure of its finite subsets.  (Contributed by Stefan O'Rear,
       2-Apr-2015.) $)
    isacs5lem $p |- ( ( C e. ( Moore ` X ) /\
          A. t e. ~P ~P X ( ( toInc ` t ) e. Dirset ->
              ( F ` U. t ) = U. ( F " t ) ) ) -> ( C e. ( Moore ` X ) /\
          A. s e. ~P X ( F ` s ) = U. ( F " ( ~P s i^i Fin ) ) ) ) $=
      ( cfv wcel cv cipo cdrs cuni cima wceq wi cpw wral cfn wa wss cmre unifpw
      cin fveq2i cvv fpwipodrs mp1i inss1 elpwi sspwb sylib adantl syl5ss vpwex
      inex1 elpw sylibr adantlr simplr fveq2 eleq1d unieq fveq2d imaeq2 eqeq12d
      vex unieqd imbi12d rspcva syl2anc mpd syl5eqr ralrimiva ex imdistani ) BD
      UAGHZAIZJGZKHZVQLZCGZCVQMZLZNZOZADPZPZQZEIZCGZCWIPZRUCZMZLZNZEWFQZVPWHWPV
      PWHSZWOEWFWQWIWFHZSZWJWLLZCGZWNWTWICWIUBUDWSWLJGZKHZXAWNNZWIUEHXCWSEVFWIU
      EUFUGWSWLWGHZWHXCXDOZVPWRXEWHVPWRSZWLWFTXEXGWLWKWFWKRUHWRWKWFTZVPWRWIDTXH
      WIDUIWIDUJUKULUMWLWFWKREUNUOUPUQURVPWHWRUSWEXFAWLWGVQWLNZVSXCWDXDXIVRXBKV
      QWLJUTVAXIWAXAWCWNXIVTWTCVQWLVBVCXIWBWMVQWLCVDVGVEVHVIVJVKVLVMVNVO $.

    $( In an algebraic closure system, closure commutes with directed unions.
       (Contributed by Stefan O'Rear, 2-Apr-2015.) $)
    acsdrscl $p |- ( ( C e. ( ACS ` X ) /\ Y C_ ~P X /\
          ( toInc ` Y ) e. Dirset ) -> ( F ` U. Y ) = U. ( F " Y ) ) $=
      ( vt vs cacs cfv wcel cpw cipo cdrs cuni cima wceq wa cv wi wral wb pwexg
      wss cdm elfvdm elpw2g 3syl biimpar cmre isacs3lem isacs4lem simprd adantr
      cvv fveq2 eleq1d unieq fveq2d imaeq2 unieqd eqeq12d imbi12d rspcva 3impia
      syl syl2anc ) ACHIJZDCKZUCZDLIZMJZDNZBIZBDOZNZPZVGVIQDVHKZJZFRZLIZMJZVSNZ
      BIZBVSOZNZPZSZFVQTZVKVPSZVGVRVIVGCHUDZJVHUNJVRVIUAACHUECWJUBDVHUNUFUGUHVG
      WHVIVGACUIIJZWHVGWKGRZLIMJWLNAJSGAKTQWKWHQACGUJFABCGEUKVEULUMWGWIFDVQVSDP
      ZWAVKWFVPWMVTVJMVSDLUOUPWMWCVMWEVOWMWBVLBVSDUQURWMWDVNVSDBUSUTVAVBVCVFVD
      $.

    $( A closure in an algebraic closure system is the union of the closures of
       finite subsets.  (Contributed by Stefan O'Rear, 2-Apr-2015.) $)
    acsficl $p |- ( ( C e. ( ACS ` X ) /\ S C_ X ) ->
        ( F ` S ) = U. ( F " ( ~P S i^i Fin ) ) ) $=
      ( vs vt cacs cfv wcel wa cpw cv cfn cin cima cuni wceq wral cipo wss cmre
      cdm wb elfvdm elpw2g biimpar cdrs wi isacs3lem isacs4lem isacs5lem simprd
      syl 3syl adantr fveq2 pweq ineq1d imaeq2d unieqd eqeq12d rspcva syl2anc )
      ADHIJZBDUAZKBDLZJZFMZCIZCVILZNOZPZQZRZFVGSZBCIZCBLZNOZPZQZRZVEVHVFVEDHUCZ
      JVHVFUDADHUEBDWCUFUNUGVEVPVFVEADUBIJZVPVEWDVITIUHJVIQAJUIFALSKWDGMZTIUHJW
      EQCICWEPQRUIGVGLSKWDVPKADFUJGACDFEUKGACDFEULUOUMUPVOWBFBVGVIBRZVJVQVNWAVI
      BCUQWFVMVTWFVLVSCWFVKVRNVIBURUSUTVAVBVCVD $.

    $( A closure system is algebraic iff the closure of a generating set is the
       union of the closures of its finite subsets.  (Contributed by Stefan
       O'Rear, 2-Apr-2015.) $)
    isacs5 $p |- ( C e. ( ACS ` X ) <-> ( C e. ( Moore ` X ) /\
          A. s e. ~P X ( F ` s ) = U. ( F " ( ~P s i^i Fin ) ) ) ) $=
      ( vt cfv wcel cv cpw cima cuni wceq wral wa cipo cdrs wi 3syl wss cfn cin
      cacs cmre isacs3lem isacs4lem isacs5lem simpl elpwi mrcidb2 sylan2 adantr
      wb ciun simpr wfun mrcf ffun funiunfv ad2antrr eqtr4d sseq1d iunss syl6bb
      wf bitrd ex ralimdva imp isacs2 sylanbrc impbii ) ACUCGHZACUDGHZDIZBGZBVO
      JUAUBZKLZMZDCJZNZOZVMVNVOPGQHVOLAHRDAJNOVNFIZPGQHWCLBGBWCKLMRFVTJNOWBACDU
      EFABCDEUFFABCDEUGSWBVNVOAHZWCBGZVOTFVQNZUMZDVTNZVMVNWAUHVNWAWHVNVSWGDVTVN
      VOVTHZOZVSWGWJVSOZWDVPVOTZWFWJWDWLUMZVSWIVNVOCTWMVOCUIAVOBCEUJUKULWKWLFVQ
      WEUNZVOTWFWKVPWNVOWKVPVRWNWJVSUOVNWNVRMZWIVSVNVTABVEBUPWOABCEUQVTABURFVQB
      USSUTVAVBFVQWEVOVCVDVFVGVHVIFABCDEVJVKVL $.

    $( A closure system is algebraic iff closure commutes with directed unions.
       (Contributed by Stefan O'Rear, 2-Apr-2015.) $)
    isacs4 $p |- ( C e. ( ACS ` X ) <-> ( C e. ( Moore ` X ) /\
          A. s e. ~P ~P X ( ( toInc ` s ) e. Dirset ->
              ( F ` U. s ) = U. ( F " s ) ) ) ) $=
      ( vt cacs cfv wcel cmre cv cipo cdrs cuni cima wceq wi cpw wral wa isacs5
      isacs3lem isacs4lem syl cfn cin isacs5lem sylibr impbii ) ACGHIZACJHIZDKZ
      LHMIULNBHBULONPQDCRZRSTZUJUKFKZLHMIUONAIQFARSTUNACFUBDABCFEUCUDUNUKUOBHBU
      ORUEUFONPFUMSTUJDABCFEUGABCFEUAUHUI $.
  $}

  ${
    $d C s t $.  $d X s t $.
    $( A closure system is algebraic iff directed unions of closed sets are
       closed.  (Contributed by Stefan O'Rear, 2-Apr-2015.) $)
    isacs3 $p |- ( C e. ( ACS ` X ) <-> ( C e. ( Moore ` X ) /\
          A. s e. ~P C ( ( toInc ` s ) e. Dirset -> U. s e. C ) ) ) $=
      ( vt cacs cfv wcel cmre cv cipo cdrs cuni wi cpw wral isacs3lem cmrc cima
      wa wceq eqid isacs4lem isacs4 sylibr impbii ) ABEFGZABHFGZCIZJFKGUHLAGMCA
      NOSZABCPUIUGDIZJFKGUJLAQFZFUKUJRLTMDBNNOSUFDAUKBCUKUAZUBAUKBDULUCUDUE $.
  $}

  ${
    acsficld.1 $e |- ( ph -> A e. ( ACS ` X ) ) $.
    acsficld.2 $e |- N = ( mrCls ` A ) $.
    acsficld.3 $e |- ( ph -> S C_ X ) $.
    $( In an algebraic closure system, the closure of a set is the union of the
       closures of its finite subsets.  Deduction form of ~ acsficl .
       (Contributed by David Moews, 1-May-2017.) $)
    acsficld $p |- ( ph -> ( N ` S ) = U. ( N " ( ~P S i^i Fin ) ) ) $=
      ( cacs cfv wcel wss cpw cfn cin cima cuni wceq acsficl syl2anc ) ABEIJKCE
      LCDJDCMNOPQRFHBCDEGST $.

    $d S x $.  $d A w z $.  $d w X z $.  $d w z N $.  $d x Y $.  $d x N $.
    $( In an algebraic closure system, an element is in the closure of a set if
       and only if it is in the closure of a finite subset.  Alternate form of
       ~ acsficl .  Deduction form.  (Contributed by David Moews,
       1-May-2017.) $)
    acsficl2d $p |- ( ph -> ( Y e. ( N ` S ) <->
                              E. x e. ( ~P S i^i Fin ) Y e. ( N ` x ) ) ) $=
      ( vz vw cfv wcel cpw cfn cin cima cv wfun cuni wrex acsficld cmre acsmred
      eleq2d wb crab cint cmpt funmpt mrcfval funeqd mpbiri eluniima 3syl bitrd
      wss ) AGDEMZNGEDOPQZRUAZNZGBSEMNBUTUBZAUSVAGACDEFHIJUCUFACFUDMNZETZVBVCUG
      ACFHUEVDVEKFOZKSLSURLCUHUIZUJZTKVFVGUKVDEVHKCEFLIULUMUNBUTGEUOUPUQ $.
  $}

  ${
    $d A x $.  $d s S t x $.  $d s t x ph $.  $d s t x I $.  $d s t N $.
    acsfiindd.1 $e |- ( ph -> A e. ( ACS ` X ) ) $.
    acsfiindd.2 $e |- N = ( mrCls ` A ) $.
    acsfiindd.3 $e |- I = ( mrInd ` A ) $.
    acsfiindd.4 $e |- ( ph -> S C_ X ) $.
    $( In an algebraic closure system, a set is independent if and only if all
       its finite subsets are independent.  Part of Proposition 4.1.3 in
       [FaureFrolicher] p. 83.  (Contributed by David Moews, 1-May-2017.) $)
    acsfiindd $p |- ( ph -> ( S e. I <-> ( ~P S i^i Fin ) C_ I ) ) $=
      ( vs vt wcel cfn wss wa cfv simpr adantr wn vx cpw cin wral cmre ad2antrr
      cv acsmred simplr inss1 sseldi elpwid mrissmrid ralrimiva sylibr csn cdif
      dfss3 cun elfpw sylib simpld difss2d snssd unssd simprd snfi unfi sylancl
      sylanbrc wceq ad4antr simpllr snidg elun2 eleqtrrd ismri2dad wi ad3antrrr
      neldifsnd ssneldd difsnb ssun1 syl5sseqr ssdifd eqsstr3d eqsstrd ssdifssd
      3syl sstrd mrcssd sseld mtod ex rspcimdv syl5bi impancom ralrimiv wb wrex
      acsficl2d notbid ralnex syl6bbr mpbird an32s ismri2dd impbida ) ACDMZCUBZ
      NUCZDOZAXIPZKUGZDMZKXKUDZXLXMXOKXKXMXNXKMZPZBCXNDEFABFUEQMZXIXQABFGUHZUFH
      IAXIXQUIXRXNCXRXKXJXNXJNUJXMXQRUKULUMUNKXKDURZUOAXLPZUABCDEFHIAXSXLXTSACF
      OZXLJSYBUAUGZCYDUPZUQZEQMZTZUACAYDCMZXLYHAYIPZXLPZYHYDLUGZEQZMZTZLYFUBNUC
      ZUDZYKYOLYPYJYLYPMZXLYOXLXPYJYRPZYOYAYSXOYOKYLYEUSZXKYSYTCOZYTNMZYTXKMYSY
      LYECYSYLCYEYSYLYFOZYLNMZYSYRUUCUUDPYJYRRYLYFUTVAZVBZVCYSYDCAYIYRUIVDVEZYS
      UUDYENMUUBYSUUCUUDUUEVFYDVGYLYEVHVIYTCUTVJYSXNYTVKZPZXOYOUUIXOPZYNYDXNYEU
      QZEQZMZUUJBXNDEFYDHIAXSYIYRUUHXOXTVLUUIXORUUIYDXNMXOUUIYDYTXNUUIYIYDYEMYD
      YTMAYIYRUUHVMYDCVNYDYEYLVOWIYSUUHRZVPSVQUUIYNUUMVRXOUUIYMUULYDUUIBYLEUUKF
      AXSYIYRUUHXTVSHUUIYLYLYEUQZUUKUUIYDYLMTUUOYLVKUUIYLYFYDYSUUCUUHUUFSUUIYDC
      VTWAYDYLWBVAUUIYLXNYEUUIYTYLXNYLYEWCUUNWDWEWFUUIXNFYEUUIXNYTFUUNUUIYTCFYS
      UUAUUHUUGSAYCYIYRUUHJVSWJWGWHWKWLSWMWNWOWPWQWRAYHYQWSYIXLAYHYNLYPWTZTYQAY
      GUUPALBYFEFYDGHACFYEJWHXAXBYNLYPXCXDUFXEXFUNXGXH $.
  $}

  ${
    $d T f x $.  $d f x ph $.  $d S f x y $.  $d f x y N $.
    acsmapd.1 $e |- ( ph -> A e. ( ACS ` X ) ) $.
    acsmapd.2 $e |- N = ( mrCls ` A ) $.
    acsmapd.3 $e |- ( ph -> S C_ X ) $.
    acsmapd.4 $e |- ( ph -> T C_ ( N ` S ) ) $.
    $( In an algebraic closure system, if ` T ` is contained in the closure of
       ` S ` , there is a map ` f ` from ` T ` into the set of finite subsets
       of ` S ` such that the closure of ` U. ran f ` contains ` T ` .  This is
       proven by applying ~ acsficl2d to each element of ` T ` .  See Section
       II.5 in [Cohn] p. 81 to 82.  (Contributed by David Moews,
       1-May-2017.) $)
    acsmapd $p |- ( ph -> E. f
                   ( f : T --> ( ~P S i^i Fin ) /\ T C_ ( N ` U. ran f ) ) ) $=
      ( vx vy cv cfv wcel wa cuni wss syl cpw cfn cin wf wral wex crn wrex fvex
      cvv ssex sseld acsficl2d sylibd ralrimiv wceq fveq2 eleq2d sylc simprl wi
      ac6sg wal nfv nfan csn ad2antrr acsmred wfn simplrl ffn fnfvelrn sylancom
      nfra1 snssd unissd frn unifpw syl6sseq sstrd mrcssd simprr r19.21bi unisn
      cacs fveq2i syl6eleqr sseldd ex alrimi dfss2 sylibr jca eximdv mpd ) ADCU
      AUBUCZENZUDZLNZWSWQOZFOZPZLDUEZQZEUFZWRDWQUGZRZFOZSZQZEUFADUJPZWSMNZFOZPZ
      MWPUHZLDUEXEADCFOZSXKKDXPCFUIUKTAXOLDAWSDPZWSXPPXOADXPWSKULAMBCFGWSHIJUMU
      NUOXNXBLMDWPEUJXLWTUPXMXAWSXLWTFUQURVBUSAXDXJEAXDXJAXDQZWRXIAWRXCUTXRXQWS
      XHPZVAZLVCXIXRXTLAXDLALVDWRXCLWRLVDXBLDVNVEVEXRXQXSXRXQQZWTVFZRZFOZXHWSYA
      BYCFXGGYABGABGWEOPXDXQHVGVHIYAYBXFYAWTXFXRXQWQDVIZWTXFPYAWRYEAWRXCXQVJZDW
      PWQVKTDWSWQVLVMVOVPYAXGCGYAWRXGCSYFWRXGWPRCWRXFWPDWPWQVQVPCVRVSTACGSXDXQJ
      VGVTWAYAWSXAYDXRXBLDAWRXCWBWCYCWTFWTWSWQUIWDWFWGWHWIWJLDXHWKWLWMWIWNWO $.
  $}

  ${
    $d S f $.  $d T f $.  $d f ph $.  $d f N $.
    acsmap2d.1 $e |- ( ph -> A e. ( ACS ` X ) ) $.
    acsmap2d.2 $e |- N = ( mrCls ` A ) $.
    acsmap2d.3 $e |- I = ( mrInd ` A ) $.
    acsmap2d.4 $e |- ( ph -> S e. I ) $.
    acsmap2d.5 $e |- ( ph -> T C_ X ) $.
    acsmap2d.6 $e |- ( ph -> ( N ` S ) = ( N ` T ) ) $.
    $( In an algebraic closure system, if ` S ` and ` T ` have the same closure
       and ` S ` is independent, then there is a map ` f ` from ` T ` into the
       set of finite subsets of ` S ` such that ` S ` equals the union of
       ` ran f ` .  This is proven by taking the map ` f ` from ~ acsmapd and
       observing that, since ` S ` and ` T ` have the same closure, the closure
       of ` U. ran f ` must contain ` S ` .  Since ` S ` is independent, by
       ~ mrissmrcd , ` U. ran f ` must equal ` S ` .  See Section II.5 in
       [Cohn] p. 81 to 82.  (Contributed by David Moews, 1-May-2017.) $)
    acsmap2d $p |- ( ph -> E. f
                     ( f : T --> ( ~P S i^i Fin ) /\ S = U. ran f ) ) $=
      ( cuni cfv wss wa wex adantr cpw cfn cin crn wceq acsmred mrissd mrcssidd
      sseqtr4d acsmapd simprl cmre wcel simprr mrcssvd mrcssd frn unissd unifpw
      cv wf syl6sseq ad2antrl sstrd mrcidmd sseqtrd eqsstrd mrissmrcd ex eximdv
      jca mpd ) ADCUAUBUCZEUTZVAZDVNUDZOZGPZQZRZESVOCVQUEZRZESABCDEGHIJABCFHKAB
      HIUFZLUGADDGPZCGPZABDGHWCJMUHNUIUJAVTWBEAVTWBAVTRZVOWAAVOVSUKWFBCVQFGHABH
      ULPUMVTWCTZJKWFCWEVRWFBCGHWGJWFBCFHKWGACFUMVTLTZUGZUHWFWEWDVRAWEWDUEVTNTW
      FWDVRGPVRWFBDGVRHWGJAVOVSUNWFBVQGHWGJUOUPWFBVQGHWGJWFVQCHVOVQCQAVSVOVQVMO
      CVOVPVMDVMVNUQURCUSVBVCZWIVDVEVFVGVDWJWHVHVKVIVJVL $.

    acsinfd.7 $e |- ( ph -> -. S e. Fin ) $.
    $( In an algebraic closure system, if ` S ` and ` T ` have the same closure
       and ` S ` is infinite independent, then ` T ` is infinite.  This follows
       from applying ~ unirnffid to the map given in ~ acsmap2d .  See Section
       II.5 in [Cohn] p. 81 to 82.  (Contributed by David Moews,
       1-May-2017.) $)
    acsinfd $p |- ( ph -> -. T e. Fin ) $=
      ( vf cfn wf wa wcel wn cpw cin crn cuni wceq acsmap2d simplrr wss simplrl
      cv inss2 fss sylancl simpr unirnffid eqeltrd ad2antrr pm2.65da exlimddv )
      ADCUAZPUBZOUJZQZCVBUCUDZUEZRZDPSZTOABCDOEFGHIJKLMUFAVFRZVGCPSZVHVGRZCVDPA
      VCVEVGUGVJDVBVJVCVAPUHDPVBQAVCVEVGUIUTPUKDVAPVBULUMVHVGUNUOUPAVITVFVGNUQU
      RUS $.

    $( In an algebraic closure system, if ` S ` and ` T ` have the same closure
       and ` S ` is infinite independent, then ` T ` dominates ` S ` .  This
       follows from applying ~ acsinfd and then applying ~ unirnfdomd to the
       map given in ~ acsmap2d .  See Section II.5 in [Cohn] p. 81 to 82.
       (Contributed by David Moews, 1-May-2017.) $)
    acsdomd $p |- ( ph -> S ~<_ T ) $=
      ( vf cfn wf wa cdom adantr cpw cin cv crn cuni wbr acsmap2d simprr simprl
      wceq cvv wss inss2 fss sylancl wcel acsinfd cacs elfvexd ssexd unirnfdomd
      wn cfv eqbrtrd exlimddv ) ADCUAZPUBZOUCZQZCVHUDUEZUJZRZCDSUFOABCDOEFGHIJK
      LMUGAVLRZCVJDSAVIVKUHVMDVHUKVMVIVGPULDPVHQAVIVKUIVFPUMDVGPVHUNUOADPUPVBVL
      ABCDEFGHIJKLMNUQTVMDGUKVMBURGABGURVCUPVLHTUSADGULVLLTUTVAVDVE $.
  $}

  ${
    acsinfdimd.1 $e |- ( ph -> A e. ( ACS ` X ) ) $.
    acsinfdimd.2 $e |- N = ( mrCls ` A ) $.
    acsinfdimd.3 $e |- I = ( mrInd ` A ) $.
    acsinfdimd.4 $e |- ( ph -> S e. I ) $.
    acsinfdimd.5 $e |- ( ph -> T e. I ) $.
    acsinfdimd.6 $e |- ( ph -> ( N ` S ) = ( N ` T ) ) $.
    acsinfdimd.7 $e |- ( ph -> -. S e. Fin ) $.
    $( In an algebraic closure system, if two independent sets have equal
       closure and one is infinite, then they are equinumerous.  This is proven
       by using ~ acsdomd twice with ~ acsinfd .  See Section II.5 in [Cohn]
       p. 81 to 82.  (Contributed by David Moews, 1-May-2017.) $)
    acsinfdimd $p |- ( ph -> S ~~ T ) $=
      ( cdom wbr cen mrissd acsdomd cfv acsmred eqcomd acsinfd sbth syl2anc ) A
      CDOPDCOPCDQPABCDEFGHIJKABDEGJABGHUAZLRZMNSABDCEFGHIJLABCEGJUFKRACFTDFTMUB
      ABCDEFGHIJKUGMNUCSCDUDUE $.
  $}

  ${
    $d s S y z $.  $d s X y z $.  $d s ph y z $.  $d s y I z $.  $d s y z N $.
    acsexdimd.1 $e |- ( ph -> A e. ( ACS ` X ) ) $.
    acsexdimd.2 $e |- N = ( mrCls ` A ) $.
    acsexdimd.3 $e |- I = ( mrInd ` A ) $.
    acsexdimd.4 $e |- ( ph -> A. s e. ~P X A. y e. X
                        A. z e. ( ( N ` ( s u. { y } ) ) \ ( N ` s ) )
                        y e. ( N ` ( s u. { z } ) ) ) $.
    acsexdimd.5 $e |- ( ph -> S e. I ) $.
    acsexdimd.6 $e |- ( ph -> T e. I ) $.
    acsexdimd.7 $e |- ( ph -> ( N ` S ) = ( N ` T ) ) $.
    $( In an algebraic closure system whose closure operator has the exchange
       property, if two independent sets have equal closure, they are
       equinumerous.  See ~ mreexfidimd for the finite case and ~ acsinfdimd
       for the infinite case.  This is a special case of Theorem 4.2.2 in
       [FaureFrolicher] p. 87.  (Contributed by David Moews, 1-May-2017.) $)
    acsexdimd $p |- ( ph -> S ~~ T ) $=
      ( wcel cfv adantr cfn cen wbr wa cmre acsmred csn cun cdif wral cpw simpr
      cv wceq mreexfidimd wn cacs acsinfdimd pm2.61dan ) AEUARZEFUBUCAUTUDBCDEF
      GHIJADIUESRUTADIKUFTLMABUMZJUMZCUMUGUHHSRCVBVAUGUHHSVBHSUIUJBIUJJIUKUJUTN
      TAEGRZUTOTAFGRZUTPTAUTULAEHSFHSUNZUTQTUOAUTUPZUDDEFGHIADIUQSRVFKTLMAVCVFO
      TAVDVFPTAVEVFQTAVFULURUS $.
  $}

  ${
    $d I x y $.  $d C x y $.  $d G x y $.  $d L x y $.  $d U x y $.
    $d F x y $.  $d X x y $.
    mreclat.i $e |- I = ( toInc ` C ) $.

    ${
      mrelatglb.g $e |- G = ( glb ` I ) $.
      $( Greatest lower bounds in a Moore space are realized by intersections.
         (Contributed by Stefan O'Rear, 31-Jan-2015.) $)
      mrelatglb $p |- ( ( C e. ( Moore ` X ) /\ U C_ C /\ U =/= (/) ) ->
          ( G ` U ) = |^| U ) $=
        ( vx vy cfv wcel wss w3a wceq 3ad2ant1 wa wbr wb ipole syl3anc cmre wne
        c0 cint cple eqid cbs ipobas cglb a1i cpo ipopos mreintcl intss1 adantl
        simp2 cv simpl1 adantr sselda mpbird wral simplr simpl2 biimpd ralimdva
        simpll1 3impia ssint sylibr simp11 posglbd ) AEUAJZKZBALZBUCUBZMZHIABBU
        DZCDDUEJZVSUFZVNVOADUGJNVPADVMFUHOCDUIJNVQGUJDUKKVQADFULUJVNVOVPUPZABEU
        MZVQHUQZBKZPZVRWCVSQZVRWCLZWDWGVQWCBUNUOWEVNVRAKZWCAKZWFWGRVNVOVPWDURVQ
        WHWDWBUSVQBAWCWAUTADVSVMVRWCFVTSTVAVQIUQZAKZWJWCVSQZHBVBZMZWJVRVSQZWJVR
        LZWNWJWCLZHBVBZWPVQWKWMWRVQWKPZWLWQHBWSWDPZWLWQWTVNWKWIWLWQRVNVOVPWKWDV
        GVQWKWDVCWSBAWCVNVOVPWKVDUTADVSVMWJWCFVTSTVEVFVHHWJBVIVJWNVNWKWHWOWPRVN
        VOVPWKWMVKVQWKWMUPVQWKWHWMWBOADVSVMWJVRFVTSTVAVL $.

      $( The empty intersection in a Moore space is realized by the base set.
         (Contributed by Stefan O'Rear, 31-Jan-2015.) $)
      mrelatglb0 $p |- ( C e. ( Moore ` X ) -> ( G ` (/) ) = X ) $=
        ( vx vy cmre cfv wcel c0 cple eqid ipobas cglb a1i wss cv wbr wceq ral0
        cpo ipopos 0ss mre1cl rspec adantl wral wa mress wb adantr ipole mpbird
        mpd3an3 3adant3 posglbd ) ADIJZKZGHALDBCCMJZVANZACUSEOBCPJUAUTFQCUCKUTA
        CEUDQLARUTAUEQADUFZGSZLKDVDVATZUTVEGLVEGUBUGUHUTHSZAKZVFDVATZVFVDVATGLU
        IUTVGUJVHVFDRZAVFDUKUTVGDAKZVHVIULUTVJVGVCUMACVAUSVFDEVBUNUPUOUQUR $.
    $}

    ${
      mrelatlub.f $e |- F = ( mrCls ` C ) $.
      mrelatlub.l $e |- L = ( lub ` I ) $.
      $( Least upper bounds in a Moore space are realized by the closure of the
         union.  (Contributed by Stefan O'Rear, 31-Jan-2015.) $)
      mrelatlub $p |- ( ( C e. ( Moore ` X ) /\ U C_ C ) ->
          ( L ` U ) = ( F ` U. U ) ) $=
        ( vx cfv wcel wss wa wceq adantr wbr wb ipole syl3anc vy cmre cuni cple
        eqid cbs ipobas club a1i ipopos simpr uniss adantl mreuni sseqtrd mrccl
        cpo syldan cv elssuni mrcssid sylan9ssr simpll sselda mpbird w3a simp1l
        wral simplll simplr biimpd ralimdva 3impia unissb sylibr simp2 3ad2ant1
        mrcsscl poslubdg ) AFUBKZLZBAMZNZJUAABBUCZCKZEDDUDKZWFUEZWAADUFKOWBADVT
        GUGPEDUHKOWCIUIDUQLWCADGUJUIWAWBUKZWAWBWDFMZWEALZWCWDAUCZFWBWDWKMWABAUL
        UMWAWKFOWBAFUNPUOZAWDCFHUPURZWCJUSZBLZNZWNWEWFQZWNWEMZWOWCWNWDWEWNBUTWA
        WBWIWDWEMWLAWDCFHVAURVBWPWAWNALZWJWQWRRWAWBWOVCWCBAWNWHVDWCWJWOWMPADWFV
        TWNWEGWGSTVEWCUAUSZALZWNWTWFQZJBVHZVFZWEWTWFQZWEWTMZXDWAWDWTMZXAXFWAWBX
        AXCVGZXDWNWTMZJBVHZXGWCXAXCXJWCXANZXBXIJBXKWONZXBXIXLWAWSXAXBXIRWAWBXAW
        OVIXKBAWNWAWBXAVJVDWCXAWOVJADWFVTWNWTGWGSTVKVLVMJBWTVNVOWCXAXCVPZAWDCWT
        FHVRTXDWAWJXAXEXFRXHWCXAWJXCWMVQXMADWFVTWEWTGWGSTVEVS $.
    $}

    $( A Moore space is a complete lattice under inclusion.  (Contributed by
       Stefan O'Rear, 31-Jan-2015.)  TODO ( ~ df-riota update): Finish this
       proof using the new ~ isclat then use it to replace ~ mreclatBAD
       below. $)
$(
    mreclat $p |- ( C e. ( Moore ` X ) -> I e. CLat ) $=
      ( vy vx vs vz cfv wcel cpo cdm wceq wa cv wbr wral eqid jca sylibr ipopos
      cmre club cbs cpw cglb ccla a1i cple wi wreu crab biid lubdm wss vex elpw
      wrex wrmo adantr simpr poslubmo syl sylan2b ralrimiva rabid2 eqtr4d glbdm
      reu5 posglbmo isclat ) ACUBIJZBKJZBUCIZLZBUDIZUEZMZBUFIZLZVQMZNZNBUGJVLVM
      WBVMVLABDUAUHZVLVRWAVLVOEOZFOZBUIIZPEGOZQWDHOZWFPEWGQWEWHWFPUJHVPQNZFVPUK
      ZGVQULZVQVLWIFEHVPVNBWFKGVPRZWFRZVNRZWIUMWCUNVLWJGVQQVQWKMVLWJGVQWGVQJZVL
      WGVPUOZWJWGVPGUPUQZVLWPNZWIFVPURZWIFVPUSZNWJWRWSWT?WRVMWPNZWTWRVMWPVLVMWP
      WCUTVLWPVASZFEHVPWGBWFWMWLVBVCSWIFVPVITVDVEWJGVQVFTVGVLVTWEWDWFPEWGQWHWDW
      FPEWGQWHWEWFPUJHVPQNZFVPUKZGVQULZVQVLXCFEHVPVSBWFKGWLWMVSRZXCUMWCVHVLXDGV
      QQVQXEMVLXDGVQWOVLWPXDWQWRXCFVPURZXCFVPUSZNXDWRXGXH?WRXAXHXBFEHVPWGBWFWMW
      LVJVCSXCFVPVITVDVEXDGVQVFTVGSSVPVNVSBWLWNXFVKT $.
$)

    $( This hypothesis is the instance of the old ~ isclat that is needed.
       Remove it and ~ mreclatBAD when mreclat above is finished. $)
    isclatBAD. $e |- ( I e. CLat
       <-> ( I e. Poset /\ A. x ( x C_ ( Base ` I )
      -> ( ( ( lub ` I ) ` x ) e. ( Base ` I )
           /\ ( ( glb ` I ) ` x ) e. ( Base ` I ) ) ) ) ) $.
    $( A Moore space is a complete lattice under inclusion.  (Contributed by
       Stefan O'Rear, 31-Jan-2015.)  TODO ( ~ df-riota update):  Reprove using
       ~ isclat instead of the isclatBAD. hypothesis.  See commented-out
       mreclat above. $)
    mreclatBAD $p |- ( C e. ( Moore ` X ) -> I e. CLat ) $=
      ( cmre cfv wcel wss wa wi cuni eqid adantl wceq eqeltrd c0 ad2antrr eleq2
      cpo cbs club cglb wal ccla ipopos a1i cmrc mrelatlub uniss mreuni sseqtrd
      cv adantr mrccl syldan fveq2 mrelatglb0 mre1cl wne w3a mrelatglb mreintcl
      eqtrd cint 3expa pm2.61dane jca ex ipobas sseq2 anbi12d imbi12d syl mpbid
      wb alrimiv sylanbrc ) BDGHZIZCUAIZAUNZCUBHZJZWCCUCHZHZWDIZWCCUDHZHZWDIZKZ
      LZAUECUFIWBWABCEUGUHWAWMAWAWCBJZWGBIZWJBIZKZLZWMWAWNWQWAWNKZWOWPWSWGWCMZB
      UIHZHZBBWCXACWFDEXANZWFNUJWAWNWTDJXBBIWSWTBMZDWNWTXDJWAWCBUKOWAXDDPWNBDUL
      UOUMBWTXADXCUPUQQWSWPWCRWSWCRPZKZWJDBXFWJRWIHZDXEWJXGPWSWCRWIUROWAXGDPWNX
      EBWICDEWINZUSSVEWADBIWNXEBDUTSQWAWNWCRVAZWPWAWNXIVBWJWCVFBBWCWICDEXHVCBWC
      DVDQVGVHVIVJWABWDPZWRWMVQBCVTEVKXJWNWEWQWLBWDWCVLXJWOWHWPWKBWDWGTBWDWJTVM
      VNVOVPVRFVS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Distributive lattices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    latmass.b $e |- B = ( Base ` K ) $.
    latmass.m $e |- ./\ = ( meet ` K ) $.
    $( Lattice meet is associative.  (Contributed by Stefan O'Rear,
       30-Jan-2015.) $)
    latmass $p |- ( ( K e. Lat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
        ( ( X ./\ Y ) ./\ Z ) = ( X ./\ ( Y ./\ Z ) ) ) $=
      ( clat wcel codu cfv w3a co wceq eqid odulat odubas odujoin latjass sylan
      ) BIJBKLZIJDAJEAJFAJMDECNFCNDEFCNCNOUBBUBPZQACUBDEFAUBBUCGRUBCBUCHSTUA $.
  $}

  ${
    $d u v w x y z K $.  $d u v w x y z B $.  $d u v w x y z .\/ $.
    $d u v w x y z ./\ $.
    latdisd.b $e |- B = ( Base ` K ) $.
    latdisd.j $e |- .\/ = ( join ` K ) $.
    latdisd.m $e |- ./\ = ( meet ` K ) $.
    $( Lemma for ~ latdisd .  (Contributed by Stefan O'Rear, 30-Jan-2015.) $)
    latdisdlem $p |- ( K e. Lat ->
        ( A. u e. B A. v e. B A. w e. B ( u .\/ ( v ./\ w ) ) =
          ( ( u .\/ v ) ./\ ( u .\/ w ) ) ->
        A. x e. B A. y e. B A. z e. B ( x ./\ ( y .\/ z ) ) =
          ( ( x ./\ y ) .\/ ( x ./\ z ) ) ) ) $=
      ( wcel cv co wceq oveq1 oveq2d syl3anc clat wa wi latmcl 3adant3r3 simpr1
      wral w3a simpr3 oveq12d eqeq12d weq oveq2 oveq1d rspc3v imp simpl latjcom
      latabs1 eqtrd adantr simpr2 latjcl latmass syl13anc latabs2 3eqtrrd an32s
      eqtr3d ralrimivvva ex ) IUANZFOZEOZDOZJPZHPZVMVNHPZVMVOHPZJPZQZDGUGEGUGFG
      UGZAOZBOZCOZHPZJPZWCWDJPZWCWEJPZHPZQZCGUGBGUGAGUGVLWBUBWKABCGGGVLWCGNZWDG
      NZWEGNZUHZWBWKVLWOUBZWBUBZWJWHWCHPZWHWEHPZJPZWCWEWHHPZJPZWGWPWBWJWTQZWPWH
      GNZWLWNWBXCUCVLWLWMXDWNGIJWCWDKMUDUEZVLWLWMWNUFZVLWLWMWNUIZWAXCWHVPHPZWHV
      NHPZWHVOHPZJPZQWHWCVOJPZHPZWRXJJPZQFEDWHWCWEGGGVMWHQZVQXHVTXKVMWHVPHRXOVR
      XIVSXJJVMWHVNHRVMWHVOHRUJUKEAULZXHXMXKXNXPVPXLWHHVNWCVOJRZSXPXIWRXJJVNWCW
      HHUMUNUKDCULZXMWJXNWTXRXLWIWHHVOWEWCJUMSXRXJWSWRJVOWEWHHUMSUKUOTUPWPWTXBQ
      WBWPWRWCWSXAJWPWRWCWHHPZWCWPVLXDWLWRXSQVLWOUQZXEXFGHIWHWCKLURTVLWLWMXSWCQ
      WNGHIJWCWDKLMUSUEUTWPVLXDWNWSXAQXTXEXGGHIWHWEKLURTUJVAWQXBWCWEWCHPZWEWDHP
      ZJPZJPZWGWQXAYCWCJWPWBXAYCQZWPWNWLWMWBYEUCXGXFVLWLWMWNVBZWAYEWEVPHPZWEVNH
      PZWEVOHPZJPZQWEXLHPZYAYIJPZQFEDWEWCWDGGGFCULZVQYGVTYJVMWEVPHRYMVRYHVSYIJV
      MWEVNHRVMWEVOHRUJUKXPYGYKYJYLXPVPXLWEHXQSXPYHYAYIJVNWCWEHUMUNUKDBULZYKXAY
      LYCYNXLWHWEHVOWDWCJUMSYNYIYBYAJVOWDWEHUMSUKUOTUPSWPYDWGQWBWPWCYAJPZYBJPZY
      DWGWPVLWLYAGNZYBGNZYPYDQXTXFWPVLWNWLYQXTXGXFGHIWEWCKLVCTWPVLWNWMYRXTXGYFG
      HIWEWDKLVCTGIJWCYAYBKMVDVEWPYOWCYBWFJWPYOWCWCWEHPZJPZWCWPYAYSWCJWPVLWNWLY
      AYSQXTXGXFGHIWEWCKLURTSWPVLWLWNYTWCQXTXFXGGHIJWCWEKLMVFTUTWPVLWNWMYBWFQXT
      XGYFGHIWEWDKLURTUJVIVAUTVGVHVJVK $.

    $( In a lattice, joins distribute over meets if and only if meets
       distribute over joins; the distributive property is self-dual.
       (Contributed by Stefan O'Rear, 29-Jan-2015.) $)
    latdisd $p |- ( K e. Lat ->
        ( A. x e. B A. y e. B A. z e. B ( x .\/ ( y ./\ z ) ) =
          ( ( x .\/ y ) ./\ ( x .\/ z ) ) <->
        A. x e. B A. y e. B A. z e. B ( x ./\ ( y .\/ z ) ) =
          ( ( x ./\ y ) .\/ ( x ./\ z ) ) ) ) $=
      ( vu vv vw cv co wceq wral weq oveq1 eqeq12d clat wcel latdisdlem codu wi
      cfv eqid odulat odubas odujoin odumeet impbid oveq12d oveq2d oveq2 oveq1d
      syl cbvral3v syl6bb ) FUAUBZANZBNZCNZGOEOVAVBEOVAVCEOGOPCDQBDQADQZKNZLNZM
      NZEOZGOZVEVFGOZVEVGGOZEOZPZMDQLDQKDQZVAVBVCEOZGOZVAVBGOZVAVCGOZEOZPZCDQBD
      QADQUTVDVNKLMCBADEFGHIJUCUTFUDUFZUAUBVNVDUEWAFWAUGZUHABCMLKDGWAEDWAFWBHUI
      WAGFWBJUJWAEFWBIUKUCUQULVMVTVAVHGOZVAVFGOZVAVGGOZEOZPVAVBVGEOZGOZVQWEEOZP
      KLMABCDDDKARZVIWCVLWFVEVAVHGSWJVJWDVKWEEVEVAVFGSVEVAVGGSUMTLBRZWCWHWFWIWK
      VHWGVAGVFVBVGESUNWKWDVQWEEVFVBVAGUOUPTMCRZWHVPWIVSWLWGVOVAGVGVCVBEUOUNWLW
      EVRVQEVGVCVAGUOUNTURUS $.
  $}

  $c DLat $.

  $( The class of distributive lattices. $)
  cdlat $a class DLat $.

  ${
    $d k b j m x y z $.
    $( A _distributive lattice_ is a lattice in which meets distribute over
       joins, or equivalently ( ~ latdisd ) joins distribute over meets.
       (Contributed by Stefan O'Rear, 30-Jan-2015.) $)
    df-dlat $a |- DLat = { k e. Lat | [. ( Base ` k ) / b ].
        [. ( join ` k ) / j ]. [. ( meet ` k ) / m ]. A. x e. b A. y e. b
          A. z e. b ( x m ( y j z ) ) = ( ( x m y ) j ( x m z ) ) } $.
  $}

  ${
    $d k b j m x y z K $.  $d k b j m x y z B $.  $d k b j m x y z .\/ $.
    $d k b j m x y z ./\ $.
    isdlat.b $e |- B = ( Base ` K ) $.
    isdlat.j $e |- .\/ = ( join ` K ) $.
    isdlat.m $e |- ./\ = ( meet ` K ) $.
    $( Property of being a distributive lattice.  (Contributed by Stefan
       O'Rear, 30-Jan-2015.) $)
    isdlat $p |- ( K e. DLat <-> ( K e. Lat /\ A. x e. B A. y e. B A. z e. B
        ( x ./\ ( y .\/ z ) ) = ( ( x ./\ y ) .\/ ( x ./\ z ) ) ) ) $=
      ( vj vm vb cv co wceq wral cmee cfv wsbc cjn cbs clat cdlat fveq2 syl6eqr
      vk sbceq1d sbceqbid fvex eqeltri wb wa raleq raleqbi1dv simpr eqidd simpl
      cvv oveqd oveq123d eqeq12d ralbidv 2ralbidv sylan9bb 3impb sbc3ie df-dlat
      syl6bb elrab2 ) ANZBNZCNZKNZOZLNZOZVKVLVPOZVKVMVPOZVNOZPZCMNZQZBWBQZAWBQZ
      LUGNZRSZTZKWFUASZTZMWFUBSZTZVKVLVMEOZGOZVKVLGOZVKVMGOZEOZPZCDQZBDQADQZUGF
      UCUDWFFPZWLWELGTZKETZMDTWTXAWJXCMWKDXAWKFUBSZDWFFUBUEHUFXAWHXBKWIEXAWIFUA
      SZEWFFUAUEIUFXAWELWGGXAWGFRSZGWFFRUEJUFUHUIUIWEWTMKLDEGDXDUSHFUBUJUKEXEUS
      IFUAUJUKGXFUSJFRUJUKWBDPZVNEPZVPGPZWEWTULXGWEWACDQZBDQZADQXHXIUMZWTWDXKAW
      BDWCXJBWBDWACWBDUNUOUOXLXJWSABDDXLWAWRCDXLVQWNVTWQXLVKVKVOWMVPGXHXIUPZXLV
      KUQXLVNEVLVMXHXIURZUTVAXLVRWOVSWPVNEXNXLVPGVKVLXMUTXLVPGVKVMXMUTVAVBVCVDV
      EVFVGVIABCKUGLMVHVJ $.

    $d X x y z $.  $d Y x y z $.  $d Z x y z $.

    $( In a distributive lattice, meets distribute over joins.  (Contributed by
       Stefan O'Rear, 30-Jan-2015.) $)
    dlatmjdi $p |- ( ( K e. DLat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
        ( X ./\ ( Y .\/ Z ) ) = ( ( X ./\ Y ) .\/ ( X ./\ Z ) ) ) $=
      ( vx vy vz wcel cv co wceq wral oveq1 eqeq12d clat isdlat simprbi oveq12d
      cdlat w3a oveq2d oveq2 oveq1d rspc3v mpan9 ) CUENZKOZLOZMOZBPZDPZUMUNDPZU
      MUODPZBPZQZMARLARKARZEANFANGANUFEFGBPZDPZEFDPZEGDPZBPZQZULCUANVBKLMABCDHI
      JUBUCVAVHEUPDPZEUNDPZEUODPZBPZQEFUOBPZDPZVEVKBPZQKLMEFGAAAUMEQZUQVIUTVLUM
      EUPDSVPURVJUSVKBUMEUNDSUMEUODSUDTUNFQZVIVNVLVOVQUPVMEDUNFUOBSUGVQVJVEVKBU
      NFEDUHUITUOGQZVNVDVOVGVRVMVCEDUOGFBUHUGVRVKVFVEBUOGEDUHUGTUJUK $.
  $}

  ${
    $d K x y z $.
    $( A distributive lattice is a lattice.  (Contributed by Stefan O'Rear,
       30-Jan-2015.) $)
    dlatl $p |- ( K e. DLat -> K e. Lat ) $=
      ( vx vy vz cdlat wcel clat cjn cfv cmee wceq cbs wral eqid isdlat simplbi
      cv co ) AEFAGFBQZCQZDQZAHIZRAJIZRSTUCRSUAUCRUBRKDALIZMCUDMBUDMBCDUDUBAUCU
      DNUBNUCNOP $.
  $}

  ${
    $d K x y z $.  $d D x y z $.  $d V x y z $.
    odudlat.d $e |- D = ( ODual ` K ) $.
    $( The dual of a distributive lattice is a distributive lattice and
       conversely.  (Contributed by Stefan O'Rear, 30-Jan-2015.) $)
    odudlatb $p |- ( K e. V -> ( K e. DLat <-> D e. DLat ) ) $=
      ( vx vy vz wcel clat cv cjn cfv co cmee wceq wral wa cdlat eqid isdlat
      cbs latdisd bicomd pm5.32i odulatb anbi1d syl5bb odujoin odumeet 3bitr4g
      odubas ) BCHZBIHZEJZFJZGJZBKLZMBNLZMUNUOURMUNUPURMUQMOGBUALZPFUSPEUSPZQZA
      IHZUNUOUPURMUQMUNUOUQMUNUPUQMURMOGUSPFUSPEUSPZQZBRHARHVAUMVCQULVDUMUTVCUM
      VCUTEFGUSUQBURUSSZUQSZURSZUBUCUDULUMVBVCABCDUEUFUGEFGUSUQBURVEVFVGTEFGUSU
      RAUQUSABDVEUKAURBDVGUHAUQBDVFUITUJ $.
  $}

  ${
    dlatjmdi.b $e |- B = ( Base ` K ) $.
    dlatjmdi.j $e |- .\/ = ( join ` K ) $.
    dlatjmdi.m $e |- ./\ = ( meet ` K ) $.
    $( In a distributive lattice, joins distribute over meets.  (Contributed by
       Stefan O'Rear, 30-Jan-2015.) $)
    dlatjmdi $p |- ( ( K e. DLat /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
        ( X .\/ ( Y ./\ Z ) ) = ( ( X .\/ Y ) ./\ ( X .\/ Z ) ) ) $=
      ( cdlat wcel codu cfv w3a co wceq eqid odudlatb ibi odujoin odumeet sylan
      odubas dlatmjdi ) CKLZCMNZKLZEALFALGALOEFGDPBPEFBPEGBPDPQUFUHUGCKUGRZSTAD
      UGBEFGAUGCUIHUDUGDCUIJUAUGBCUIIUBUEUC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Posets and lattices as relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c PosetRel $.
  $c TosetRel $.

$(
  Obsolete as of 28-Aug-2018. (Delete this and uses after a year.) - TODO-NM
  @c supw @.
  @c infw @.
  @c LatRel @.
$)

  $( Extend class notation with the class of all posets. $)
  cps $a class PosetRel $.

  $( Extend class notation with the class of all totally ordered sets. $)
  ctsr $a class TosetRel $.

$(
  @( Extend class notation with the supremum of an ordered set. @)
  cspw @a class supw @.

  @( Extend class notation with the infimum of an ordered set. @)
  cinf @a class infw @.

  @( Extend class notation with the class of all lattices. @)
  cla @a class LatRel @.
$)

  $( Define the class of all posets (partially ordered sets) with weak ordering
     (e.g., "less than or equal to" instead of "less than").  A poset is a
     relation which is transitive, reflexive, and antisymmetric.  (Contributed
     by NM, 11-May-2008.) $)
  df-ps $a |- PosetRel = { r | ( Rel r /\ ( r o. r ) C_ r /\
              ( r i^i `' r ) = ( _I |` U. U. r ) ) } $.

  $( Define the class of all totally ordered sets.  (Contributed by FL,
     1-Nov-2009.) $)
  df-tsr $a |- TosetRel = { r e. PosetRel |
                ( dom r X. dom r ) C_ ( r u. `' r ) } $.

$(
  @{
    @d r x y z w @.
    @( Define suprema under weak orderings.  Unlike ~ df-sup for strong
       orderings, ` supw ` is evaluates to a member of the field of ` R ` iff
       the supremum exists.  Read ` R supw A ` as the ` R ` -supremum of set
       ` A ` .  (Contributed by NM, 13-May-2008.) @)
    df-spw @a |- supw = ( r e. PosetRel , x e. _V |-> ( iota_ y e. U. U. r
     ( A. z e. x z r y /\ A. z e. U. U. r ( A. w e. x w r z -> y r z ) ) ) ) @.

    @( Define the class of all infima of a weak ordering relation.
       (Contributed by FL, 6-Sep-2009.) @)
    df-nfw @a |- infw = ( r e. _V , x e. _V |-> ( `' r supw x ) ) @.

    @( Define the class of all lattices, which are posets in which every two
       elements have upper and lower bounds.  (Contributed by NM,
       12-Jun-2008.) @)
    df-lar @a |- LatRel = { r e. PosetRel | A. x e. dom r A. y e. dom r
        ( ( r supw { x , y } ) e. dom r /\ ( r infw { x , y } ) e. dom r ) } @.
  @}
$)

  ${
    $d r R $.
    $( The predicate "is a poset" i.e. a transitive, reflexive, antisymmetric
       relation.  (Contributed by NM, 11-May-2008.) $)
    isps $p |- ( R e. A -> ( R e. PosetRel <-> ( Rel R /\ ( R o. R ) C_ R /\
                ( R i^i `' R ) = ( _I |` U. U. R ) ) ) ) $=
      ( vr cv wrel ccom wss ccnv cin cid cuni cres wceq releq coeq1 coeq2 eqtrd
      w3a cps id sseq12d cnveq ineq12d unieqd reseq2d eqeq12d 3anbi123d elab2g
      unieq df-ps ) CDZEZUKUKFZUKGZUKUKHZIZJUKKZKZLZMZRBEZBBFZBGZBBHZIZJBKZKZLZ
      MZRCBSAUKBMZULVAUNVCUTVIUKBNVJUMVBUKBVJUMBUKFVBUKBUKOUKBBPQVJTZUAVJUPVEUS
      VHVJUKBUOVDVKUKBUBUCVJURVGJVJUQVFUKBUIUDUEUFUGCUJUH $.
  $}

  $( A poset is a relation.  (Contributed by NM, 12-May-2008.) $)
  psrel $p |- ( A e. PosetRel -> Rel A ) $=
    ( cps wcel wrel ccom wss ccnv cin cid cuni cres wceq w3a isps ibi simp1d )
    ABCZADZAAEAFZAAGHIAJJKLZQRSTMBANOP $.

  $( A poset is antisymmetric and reflexive.  (Contributed by FL,
     3-Aug-2009.) $)
  psref2 $p |- ( R e. PosetRel -> ( R i^i `' R ) = ( _I |` U. U. R ) ) $=
    ( cps wcel wrel ccom wss ccnv cin cid cuni cres wceq w3a isps ibi simp3d )
    ABCZADZAAEAFZAAGHIAJJKLZQRSTMBANOP $.

  $( A poset is transitive.  (Contributed by FL, 3-Aug-2009.) $)
  pstr2 $p |- ( R e. PosetRel -> ( R o. R ) C_ R ) $=
    ( cps wcel wrel ccom wss ccnv cin cid cuni cres wceq w3a isps ibi simp2d )
    ABCZADZAAEAFZAAGHIAJJKLZQRSTMBANOP $.

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z R $.
    $( Lemma for ~ psref and others.  (Contributed by NM, 12-May-2008.)
       (Revised by Mario Carneiro, 30-Apr-2015.) $)
    pslem $p |- ( R e. PosetRel -> ( ( ( A R B /\ B R C ) -> A R C ) /\
      ( A e. U. U. R -> A R A ) /\ ( ( A R B /\ B R A ) -> A = B ) ) ) $=
      ( vx vy vz wcel wbr wa wi cuni wceq cvv cv wal sylan adantr wb breq12 cps
      wrel psrel brrelex12 brrelex2 anim12dan ccom wss pstr2 cotr sylib 3adant3
      simpr w3a 3adant1 anbi12d 3adant2 imbi12d spc3gv 3expa syl3c ccnv cin cid
      ex cres wral psref2 asymref2 simplbi anidms rspccv adantrr simprbi ancoms
      3syl syl eqeq12 spc2gv 3jca ) DUAHZABDIZBCDIZJZACDIZKZADLLZHAADIZKZWBBADI
      ZJZABMZKZWAWDWEWAWDJANHZBNHZJZCNHZJEOZFOZDIZWSGOZDIZJZWRXADIZKZGPFPEPZWDW
      EWAWBWPWCWQWADUBZWBWPDUCZABDUDQZWAXGWCWQXHBCDUEQUFWAXFWDWADDUGDUHXFDUIEFG
      DUJUKRWAWDUMWNWOWQXFWFKXEWFEFGABCNNNWRAMZWSBMZXACMZUNZXCWDXDWEXMWTWBXBWCX
      JXKWTWBSXLWRAWSBDTZULXKXLXBWCSXJWSBXACDTUOUPXJXLXDWESXKWRAXACDTUQURUSUTVA
      VEWADDVBVCVDWGVFMZWRWRDIZEWGVGZWIDVHZXOXQWTWSWRDIZJZWRWSMZKZFPEPZEFDVIZVJ
      XPWHEAWGXJXPWHSWRAWRADTVKVLVPWAWKWLWAWKJWPYCWKWLWAWBWPWJXIVMWAYCWKWAXOYCX
      RXOXQYCYDVNVQRWAWKUMYBWMEFABNNXJXKJZXTWKYAWLYEWTWBXSWJXNXKXJXSWJSWSBWRADT
      VOUPWRAWSBVRURVSVAVEVT $.

    $( The domain and range of a poset equal its field.  (Contributed by NM,
       13-May-2008.) $)
    psdmrn $p |- ( R e. PosetRel -> ( dom R = U. U. R /\ ran R = U. U. R ) ) $=
      ( vx cps wcel cdm cuni wceq crn wss cun ssun1 dmrnssfld sstri a1i cv syl6
      wbr wi ssrdv eqssd wa pslem simp2d vex breldm ssun2 brelrn jca ) ACDZAEZA
      FFZGAHZUKGUIUJUKUJUKIUIUJUJULJZUKUJULKALZMNUIBUKUJUIBOZUKDZUOUOAQZUOUJDUI
      UQUQUAZUQRUPUQRURUOUOGRUOUOUOAUBUCZUOUOABUDZUTUEPSTUIULUKULUKIUIULUMUKULU
      JUFUNMNUIBUKULUIUPUQUOULDUSUOUOAUTUTUGPSTUH $.
  $}

  ${
    psref.1 $e |- X = dom R $.
    $( A poset is reflexive.  (Contributed by NM, 13-May-2008.) $)
    psref $p |- ( ( R e. PosetRel /\ A e. X ) -> A R A ) $=
      ( cps wcel wbr cuni cdm wceq crn psdmrn simpld syl5eq eleq2d wa wi simp2d
      pslem sylbid imp ) BEFZACFZAABGZUBUCABHHZFZUDUBCUEAUBCBIZUEDUBUGUEJBKUEJB
      LMNOUBUDUDPZUDQUFUDQUHAAJQAAABSRTUA $.

    $( The range of a poset equals it domain.  (Contributed by NM,
       7-Jul-2008.) $)
    psrn $p |- ( R e. PosetRel -> X = ran R ) $=
      ( cps wcel cdm crn cuni wceq wa psdmrn eqtr3 syl syl5eq ) ADEZBAFZAGZCOPA
      HHZIQRIJPQIAKPQRLMN $.
  $}

  $( A poset is antisymmetric.  (Contributed by NM, 12-May-2008.) $)
  psasym $p |- ( ( R e. PosetRel /\ A R B /\ B R A ) -> A = B ) $=
    ( cps wcel wbr wceq wa wi cuni pslem simp3d 3impib ) CDEZABCFZBACFZABGZNOPH
    ZAACFZIACJJESIRQIABACKLM $.

  $( A poset is transitive.  (Contributed by NM, 12-May-2008.)  (Revised by
     Mario Carneiro, 30-Apr-2015.) $)
  pstr $p |- ( ( R e. PosetRel /\ A R B /\ B R C ) -> A R C ) $=
    ( cps wcel wbr wa wi cuni wceq pslem simp1d 3impib ) DEFZABDGZBCDGZACDGZOPQ
    HRIADJJFAADGIPBADGHABKIABCDLMN $.

  $( The converse of a poset is a poset.  In the general case
     ` ( ``' R e. PosetRel -> R e. PosetRel ) ` is not true.  See ~ cnvpsb for
     a special case where the property holds.  (Contributed by FL, 5-Jan-2009.)
     (Proof shortened by Mario Carneiro, 3-Sep-2015.) $)
  cnvps $p |- ( R e. PosetRel -> `' R e. PosetRel ) $=
    ( cps wcel ccnv wrel ccom wss cin cid cuni cres wceq relcnv a1i cnvco pstr2
    cnvss syl syl5eqssr cvv psrel dfrel2 ineq2d syl6eq psref2 relcnvfld reseq2d
    sylib incom 3eqtrd w3a wb cnvexg isps mpbir3and ) ABCZADZBCZUQEZUQUQFZUQGZU
    QUQDZHZIUQJJZKZLZUSUPAMNUPUTAAFZDZUQAAOUPVGAGVHUQGAPVGAQRSUPVCAUQHZIAJJZKVE
    UPVCUQAHVIUPVBAUQUPAEZVBALAUAZAUBUHUCUQAUIUDAUEUPVJVDIUPVKVJVDLVLAUFRUGUJUP
    UQTCURUSVAVFUKULABUMTUQUNRUO $.

  $( The converse of a poset is a poset.  (Contributed by FL, 5-Jan-2009.) $)
  cnvpsb $p |- ( Rel R -> ( R e. PosetRel <-> `' R e. PosetRel ) ) $=
    ( wrel cps wcel ccnv cnvps wceq wi dfrel2 eleq1 biimpd sylbi syl5 impbid2 )
    ABZACDZAEZCDZAFRQEZCDZOPQFOSAGZTPHAIUATPSACJKLMN $.

  ${
    $d A x y $.  $d R x y $.
    $( Any subset of a partially ordered set is partially ordered.
       (Contributed by FL, 24-Jan-2010.) $)
    psss $p |- ( R e. PosetRel -> ( R i^i ( A X. A ) ) e. PosetRel ) $=
      ( vx vy cps wcel cin wrel ccom wss cuni wceq mpsyl syl cv wbr wral wa wal
      uniin cxp ccnv cid inss1 psrel relss pstr2 trinxp wi unissi sstri unixpid
      cres elin eleq2i simprr cdm crn psdmrn simpld eleq2d biimpar psref syldan
      eqid adantrr brinxp2 syl3anbrc expr syl5bi expimpd ralrimiv ssralv psasym
      ssbri 3expib syl2ani alrimivv asymref2 sylanbrc cvv w3a wb isps mpbir3and
      inex1g ) BEFZBAAUAZGZEFZWIHZWIWIIWIJZWIWIUBGUCWIKZKZUMLZWIBJWGBHWKBWHUDZB
      UEWIBUFMWGBBIBJWLBUGABUHNWGCOZWQWIPZCWNQZWQDOZWIPZWTWQWIPZRWQWTLZUIZDSCSW
      OWNBKZKZWHKZKZGZJWGWRCXIQWSWNXEXGGZKXIWMXJBWHTUJXEXGTUKWGWRCXIWQXIFWQXFFZ
      WQXHFZRWGWRWQXFXHUNWGXKXLWRXLWQAFZWGXKRWRXHAWQAULUOWGXKXMWRWGXKXMRRXMXMWQ
      WQBPZWRWGXKXMUPZXOWGXKXNXMWGXKWQBUQZFZXNWGXQXKWGXPXFWQWGXPXFLBURXFLBUSUTV
      AVBWQBXPXPVEVCVDVFWQWQAABVGVHVIVJVKVJVLWRCWNXIVMMWGXDCDXAWGWQWTBPZWTWQBPZ
      XCXBWIBWQWTWPVOWIBWTWQWPVOWGXRXSXCWQWTBVNVPVQVRCDWIVSVTWGWIWAFWJWKWLWOWBW
      CBWHEWFWAWIWDNWE $.
  $}

  ${
    $d A x $.  $d R x $.  $d X x $.
    psssdm.1 $e |- X = dom R $.
    $( Field of a subposet.  (Contributed by Mario Carneiro, 9-Sep-2015.) $)
    psssdm2 $p |- ( R e. PosetRel ->
      dom ( R i^i ( A X. A ) ) = ( X i^i A ) ) $=
      ( vx cps wcel cxp cin cdm wss eqcomi dmxpid ineq12i sseqtri a1i cv wa wbr
      dmin inss2 simpr sseldi inss1 sseli psref sylan2 brinxp2 syl3anbrc breldm
      vex syl ex ssrdv eqssd ) BFGZBAAHZIZJZCAIZUSUTKUPUSBJZUQJZIUTBUQTVACVBACV
      ADLAMNOPUPEUTUSUPEQZUTGZVCUSGZUPVDRZVCVCURSZVEVFVCAGZVHVCVCBSZVGVFUTAVCCA
      UAUPVDUBUCZVJVDUPVCCGVIUTCVCCAUDUEVCBCDUFUGVCVCAABUHUIVCVCUREUKZVKUJULUMU
      NUO $.

    $( Field of a subposet.  (Contributed by FL, 19-Sep-2011.)  (Revised by
       Mario Carneiro, 9-Sep-2015.) $)
    psssdm $p |- ( ( R e. PosetRel /\ A C_ X )
      -> dom ( R i^i ( A X. A ) ) = A ) $=
      ( cps wcel wss cxp cin cdm psssdm2 wceq sseqin2 biimpi sylan9eq ) BEFACGZ
      BAAHIJCAIZAABCDKPQALACMNO $.
  $}

  ${
    $d x y A $.  $d y B $.  $d r x y R $.  $d r x y X $.
    istsr.1 $e |- X = dom R $.
    $( The predicate is a toset.  (Contributed by FL, 1-Nov-2009.)  (Revised by
       Mario Carneiro, 22-Nov-2013.) $)
    istsr $p |- ( R e. TosetRel <->
        ( R e. PosetRel /\ ( X X. X ) C_ ( R u. `' R ) ) ) $=
      ( vr cv cdm cxp ccnv cun wss ctsr wceq dmeq syl6eqr sqxpeqd cnveq uneq12d
      cps id sseq12d df-tsr elrab2 ) DEZFZUDGZUCUCHZIZJBBGZAAHZIZJDARKUCALZUEUH
      UGUJUKUDBUKUDAFBUCAMCNOUKUCAUFUIUKSUCAPQTDUAUB $.

    $( The predicate is a toset.  (Contributed by FL, 1-Nov-2009.)  (Revised by
       Mario Carneiro, 22-Nov-2013.) $)
    istsr2 $p |- ( R e. TosetRel <->
        ( R e. PosetRel /\ A. x e. X A. y e. X ( x R y \/ y R x ) ) ) $=
      ( ctsr wcel cps cxp ccnv cun wss wa cv wbr wo wral istsr qfto anbi2i
      bitri ) CFGCHGZDDICCJKLZMUBANZBNZCOUEUDCOPBDQADQZMCDERUCUFUBABDDCSTUA $.

    $( A toset is a linear order.  (Contributed by Mario Carneiro,
       9-Sep-2015.) $)
    tsrlin $p |- ( ( R e. TosetRel /\ A e. X /\ B e. X ) ->
      ( A R B \/ B R A ) ) $=
      ( vx vy ctsr wcel wbr wo cv wral wa cps istsr2 wceq breq1 breq2 orbi12d
      simprbi rspc2v syl5com 3impib ) CHIZADIZBDIZABCJZBACJZKZUEFLZGLZCJZULUKCJ
      ZKZGDMFDMZUFUGNUJUECOIUPFGCDEPUAUOUJAULCJZULACJZKFGABDDUKAQUMUQUNURUKAULC
      RUKAULCSTULBQUQUHURUIULBACSULBACRTUBUCUD $.

    $( Two ways of saying a number is less than or equal to the maximum of two
       others.  (Contributed by Mario Carneiro, 9-Sep-2015.) $)
    tsrlemax $p |- ( ( R e. TosetRel /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
        ( A R if ( B R C , C , B ) <-> ( A R B \/ A R C ) ) ) $=
      ( wbr wo wb wcel wa wceq breq2 bibi1d wi pstr 3expib syl adantr expdimp
      cif ctsr w3a olc cps cdm cxp ccnv cun wss eqid istsr simplbi impancom idd
      jaod impbid2 wn orc tsrlin 3adant3r1 orcanai syldan ifbothda ) BCDGZACDGZ
      ABDGZVFHZIVGVHIAVECBUAZDGZVHIDUBJZAEJZBEJZCEJZUCZKZCBCVILVFVJVHCVIADMNBVI
      LVGVJVHBVIADMNVPVEKZVFVHVFVGUDVQVGVFVFVPVGVEVFVPVGVEVFVKVGVEKVFOZVOVKDUEJ
      ZVRVKVSDUFZVTUGDDUHUIUJDVTVTUKULUMZVSVGVEVFABCDPQRSTUNVQVFUOUPUQVPVEURZKZ
      VGVHVGVFUSWCVGVGVFWCVGUOVPWBCBDGZVFVGOVPVEWDVKVMVNVEWDHVLBCDEFUTVAVBVPVFW
      DVGVPVFWDVGVKVFWDKVGOZVOVKVSWEWAVSVFWDVGACBDPQRSTUNVCUPUQVD $.
  $}

  $( A toset is a poset.  (Contributed by Mario Carneiro, 9-Sep-2015.) $)
  tsrps $p |- ( R e. TosetRel -> R e. PosetRel ) $=
    ( ctsr wcel cps cdm cxp ccnv cun wss eqid istsr simplbi ) ABCADCAEZMFAAGHIA
    MMJKL $.

  $( The converse of a toset is a toset.  (Contributed by Mario Carneiro,
     3-Sep-2015.) $)
  cnvtsr $p |- ( R e. TosetRel -> `' R e. TosetRel ) $=
    ( ctsr wcel ccnv cps crn cxp cun wss tsrps cnvps syl cdm eqid istsr simprbi
    wceq psrn sqxpeqd wrel psrel dfrel2 sylib uneq2d syl6req 3sstr3d sylanbrc
    uncom df-rn ) ABCZADZECZAFZUMGZUKUKDZHZIUKBCUJAECZULAJZAKLUJAMZUSGZAUKHZUNU
    PUJUQUTVAIAUSUSNZOPUJUSUMUJUQUSUMQURAUSVBRLSUJUPUKAHVAUJUOAUKUJATZUOAQUJUQV
    CURAUALAUBUCUDUKAUHUEUFUKUMAUIOUG $.

  ${
    $d A x y $.  $d R x y $.
    $( Any subset of a totally ordered set is totally ordered.  (Contributed by
       FL, 24-Jan-2010.)  (Proof shortened by Mario Carneiro, 21-Nov-2013.) $)
    tsrss $p |- ( R e. TosetRel -> ( R i^i ( A X. A ) ) e. TosetRel ) $=
      ( vx vy cps wcel cv wbr wo cdm wral wa ctsr wss wi dmss ssralv mp2b sseli
      wb cxp cin psss inss1 ralimi syl inss2 ax-mp dmxpid sseqtri brinxp ancoms
      orbi12d syl2an ralbidva ralbiia sylib anim12i eqid istsr2 3imtr4i ) BEFZC
      GZDGZBHZVDVCBHZIZDBJZKZCVHKZLBAAUAZUBZEFZVCVDVLHZVDVCVLHZIZDVLJZKZCVQKZLB
      MFVLMFVBVMVJVSABUCVJVGDVQKZCVQKZVSVJVICVQKZWAVLBNZVQVHNZVJWBOBVKUDZVLBPZV
      ICVQVHQRVIVTCVQWCWDVIVTOWEWFVGDVQVHQRUEUFVTVRCVQVCVQFZVGVPDVQWGVCAFZVDAFZ
      VGVPTVDVQFVQAVCVQVKJZAVLVKNVQWJNBVKUGVLVKPUHAUIUJZSVQAVDWKSWHWILVEVNVFVOV
      CVDAABUKWIWHVFVOTVDVCAABUKULUMUNUOUPUQURCDBVHVHUSUTCDVLVQVQUSUTVA $.
  $}

$(
  @{
    @d r w x y z R @.  @d r w x y z X @.  @d r w x y z A @.
    spwval2.1 @e |- X = U. U. R @.
    @( Value of supremum under a weak ordering.  Read ` R supw A ` as "the
       ` R ` -supremum of ` A ` ." ` U. U. R ` is the field of a relation ` R `
       by ~ relfld .  Unlike ~ df-sup for strong orderings, the supremum exists
       iff ` R supw A ` belongs to the field.  (Contributed by NM,
       13-May-2008.)  (Revised by Mario Carneiro, 20-Nov-2013.) @)
    spwval2 @p |- ( ( R e. PosetRel /\ A e. V ) -> ( R supw A ) =
                    ( iota_ x e. X ( A. y e. A y R x /\
                      A. y e. X ( A. z e. A z R y -> x R y ) ) ) ) @=
      ( vr vw wcel cv wbr wral wi wa crio wceq cuni breq cps cspw co elex unieq
      unieqd syl6eqr ralbidv imbi12d raleqbidv anbi12d riotaeqbidv raleq imbi1d
      cvv riotabidv df-spw riotaex ovmpt2 sylan2 ) DFKEUAKDUOKEDUBUCBLZALZEMZBD
      NZCLZVAEMZCDNZVBVAEMZOZBGNZPZAGQZRDFUDIJEDUAUOVAVBILZMZBJLZNZVEVAVMMZCVON
      ZVBVAVMMZOZBVMSZSZNZPZAWBQVLUBVCBVONZVFCVONZVHOZBGNZPZAGQVMERZWDWIAWBGWJW
      BESZSGWJWAWKVMEUEUFHUGZWJVPWEWCWHWJVNVCBVOVAVBVMETUHWJVTWGBWBGWLWJVRWFVSV
      HWJVQVFCVOVEVAVMETUHVBVAVMETUIUJUKULVODRZWIVKAGWMWEVDWHVJVCBVODUMWMWGVIBG
      WMWFVGVHVFCVODUMUNUHUKUPJABCIUQVKAGURUSUT @.
  @}

  @{
    @d r w x y z R @.  @d r w x y X @.  @d w x y z A @.
    spwval.1 @e |- X = dom R @.
    @( Value of supremum under a weak ordering.  Read ` R supw A ` as "the
       ` R ` -supremum of ` A ` ." ` U. U. R ` is the field of a relation ` R `
       by ~ relfld .  Unlike ~ df-sup for strong orderings, the supremum exists
       iff ` R supw A ` belongs to the field.  (Contributed by NM,
       13-May-2008.)  (Revised by Mario Carneiro, 20-Nov-2013.) @)
    spwval @p |- ( ( R e. PosetRel /\ A e. V ) -> ( R supw A ) =
                    ( iota_ x e. X ( A. y e. A y R x /\
                      A. y e. X ( A. z e. A z R y -> x R y ) ) ) ) @=
      ( cps wcel wa cspw co cv wbr wral wi cuni crio wceq spwval2 psdmrn simpld
      eqid cdm crn syl5eq raleqdv anbi2d riotaeqbidv adantr eqtr4d ) EIJZDFJZKE
      DLMBNZANZEOBDPZCNUOEOCDPUPUOEOQZBERRZPZKZAUSSZUQURBGPZKZAGSZABCDEFUSUSUDU
      AUMVEVBTUNUMVDVAAGUSUMGEUEZUSHUMVFUSTEUFUSTEUBUCUGZUMVCUTUQUMURBGUSVGUHUI
      UJUKUL @.
  @}

  @{
    @d w x y z A @.  @d y z B @.  @d y z C @.  @d w x y z R @.  @d w x y X @.
    @d y U @.  @d y W @.
    spwmo.1 @e |- ( ph
         <-> ( A. y e. A y R x /\ A. y e. X ( A. z e. A z R y -> x R y ) ) ) @.
    @( A poset has at most one supremum.  (Contributed by NM, 13-May-2008.)
       (Revised by NM, 16-Jun-2017.) @)
    spwmo @p |- ( R e. PosetRel -> E* x e. X ph ) @=
      ( vw wcel cv wa wmo wbr wral wi weq breq1 breq2 ralbidv cps cbvralv rspcv
      wrmo wal impd im2anan9r psasym 3expib syl9 com13 exp43 com4r sylbi imp43
      imbi12d com3r imp com12 alrimivv anbi2i mobii eleq1 syl6bb imbi2d anbi12d
      an4s mo4 bitri sylibr df-rmo ) FUAJZBKZGJZALZBMZABGUDVLVNCKZVMFNZCEOZDKZV
      QFNZDEOZVMVQFNZPZCGOZLZLZIKZGJZVTWHFNZDEOZWBWHVQFNZPZCGOZLZLZLZBIQZPZIUEB
      UEZVPVLWSBIWQVLWRVNWIWFWOVLWRPZVNWILZWFWOLZXAXCVLXBWRVSWEWKWNVLXBWRPPZVSV
      TVMFNZDEOZWEWKWNXDPPPVRXECDEVQVTVMFRUBWEWKWNXFXDWEWKWNXFXDXBVLWEWKLZWNXFL
      ZLZWRXBXIVMWHFNZWHVMFNZLVLWRWIXGXJVNXHXKWIWEWKXJWDWKXJPCWHGCIQZWBWKWCXJXL
      WAWJDEVQWHVTFSTVQWHVMFSUPUCUFVNWNXFXKWMXFXKPCVMGCBQZWBXFWLXKXMWAXEDEVQVMV
      TFSTVQVMWHFSUPUCUFUGVLXJXKWRVMWHFUHUIUJUKULUMUNUOUQURVGUSUTVPWGBMWTVOWGBA
      WFVNHVAVBWGWPBIWRVNWIWFWOVMWHGVCWRVSWKWEWNWRVSVQWHFNZCEOWKWRVRXNCEVMWHVQF
      STXNWJCDEVQVTWHFRUBVDWRWDWMCGWRWCWLWBVMWHVQFRVETVFVFVHVIVJABGVKVJ @.

    @( A supremum is unique.  (Contributed by NM, 15-May-2008.) @)
    spweu @p |- ( ( R e. PosetRel /\ E. x e. X ph ) -> E! x e. X ph ) @=
      ( wrex cps wcel wreu wa wrmo spwmo anim2i reu5 sylibr ancoms ) ABGIZFJKZA
      BGLZTUAMTABGNZMUBUAUCTABCDEFGHOPABGQRS @.

    @( Property of supremum defining condition for an unordered pair.
       (Contributed by NM, 24-Jun-2008.) @)
    spwpr2 @p |- ( ( ( R e. T /\ A = { B , C } ) /\ ( B e. U /\ C e. W ) )
       -> ( ph <->
     ( ( B R x /\ C R x ) /\ A. y e. X ( ( B R y /\ C R y ) -> x R y ) ) ) ) @=
      ( cv wbr wral wi wa wcel breq1 cpr wceq wb ralprg sylan9bb imbi1d ralbidv
      raleq anbi12d adantll syl5bb ) ACNZBNZHOZCEPZDNZULHOZDEPZUMULHOZQZCLPZRZH
      ISZEFGUAZUBZRFJSGKSRZRFUMHOZGUMHOZRZFULHOZGULHOZRZUSQZCLPZRZMVEVFVBVOUCVC
      VEVFRZUOVIVAVNVEUOUNCVDPVFVIUNCEVDUHUNVGVHCFGJKULFUMHTULGUMHTUDUEVPUTVMCL
      VPURVLUSVEURUQDVDPVFVLUQDEVDUHUQVJVKDFGJKUPFULHTUPGULHTUDUEUFUGUIUJUK @.
  @}

  @{
    @d x y z A @.  @d x y z R @.  @d x y X @.
    spwex.1 @e |- X = dom R @.
    spwex.2 @e |- ( ph <->
         ( A. y e. A y R x /\ A. y e. X ( A. z e. A z R y -> x R y ) ) ) @.
    @( A supremum exists iff ` R supw A ` belongs to the domain of ` R ` .
       (Contributed by NM, 15-May-2008.)  (Revised by Mario Carneiro,
       20-Nov-2013.) @)
    spwex @p |- ( ( R e. PosetRel /\ A e. V )
               -> ( E. x e. X ph <-> ( R supw A ) e. X ) ) @=
      ( cps wcel wa wreu cv wbr wral wb cvv adantr wi crio wrex cspw reubii cdm
      co dmexg syl5eqel riotaclbgBAD syl syl5bb spweu reurex impbid1 spwval
      eleq1d
      ex 3bitr4d ) FKLZEGLZMZABHNZCOZBOZFPCEQDOVDFPDEQVEVDFPUACHQMZBHUBZHLZABHU
      CZFEUDUGZHLUTVCVHRVAVCVFBHNZUTVHAVFBHJUEUTHSLVKVHRUTHFUFSIFKUHUIVFBHSUJUK
      ULTUTVIVCRVAUTVIVCUTVIVCABCDEFHJUMURABHUNUOTVBVJVGHBCDEFGHIUPUQUS @.

    @( Closure of a supremum.  (Contributed by NM, 15-May-2008.)  (Revised by
       Mario Carneiro, 20-Nov-2013.) @)
    spwcl @p |- ( ( R e. PosetRel /\ A e. V /\ E. x e. X ph )
           -> ( R supw A ) e. X ) @=
      ( cps wcel wrex cspw co spwex biimp3a ) FKLEGLABHMFENOHLABCDEFGHIJPQ @.
  @}

  @{
    @d x y z A @.  @d x y z B @.  @d x y z C @.  @d x y z R @.  @d x y z X @.
    spwpr4.1 @e |- X = dom R @.
    @( Supremum of an unordered pair.  (Contributed by NM, 7-Jul-2008.)
       (Revised by Mario Carneiro, 20-Nov-2013.) @)
    spwpr4 @p |- ( ( R e. PosetRel /\ ( A R C /\ B R C ) /\
   A. x e. X ( ( A R x /\ B R x ) -> C R x ) ) -> ( R supw { A , B } ) = C ) @=
      ( vy vz wcel wa wbr cv wi wral wceq 3adant3 cvv wb syl2anc cps cspw simpl
      cpr co crn wrel psrel relelrn sylan psrn adantr eleqtrrd adantrr jca crio
      w3a simp1l prex spwval sylancl simpll brrelex ex anim12d syl adantlr eqid
      biid spwpr2 mpanl2 riotabidv 3simpc wreu simp1r wrex breq2 anbi12d imbi2d
      imp breq1 ralbidv rspcev 3impb 3adant1l rexbidv mpbird spweu mpbid riota2
      reubidv 3eqtrd syld3an1 ) EUAJZDFJZKZBDELZCDELZKZWNBAMZELCWTELKZDWTELZNZA
      FOZEBCUDZUBUEZDPWNWSWPXDWNWSKWNWOWNWSUCWNWQWOWRWNWQKDEUFZFWNEUGZWQDXGJEUH
      ZBDEUIUJWNFXGPWQEFGUKULUMUNUOQWPWSXDUQZXFWTHMZELAXEOIMWTELIXEOXKWTELZNAFO
      KZHFUPZBXKELZCXKELZKZXAXLNZAFOZKZHFUPZDXJWNXERJXFXNPWNWOWSXDURZBCUSHAIXEE
      RFGUTVAWPWSXNYAPXDWPWSKZXMXTHFYCWNBRJZCRJZKZXMXTSZWNWOWSVBWNWSYFWOWNWSYFW
      NXHWSYFNXIXHWQYDWRYEXHWQYDBDEVCVDXHWRYECDEVCVDVEVFVTVGWNXEXEPYFYGXEVHXMHA
      IXEBCEUARRFXMVIZVJVKTZVLQXJWSXDKZYADPZWPWSXDVMXJWOXTHFVNZYJYKSWNWOWSXDVOX
      JXMHFVNZYLXJWNXMHFVPZYMYBXJYNXTHFVPZWOWSXDYOWNWOWSXDYOXTYJHDFXKDPZXQWSXSX
      DYPXOWQXPWRXKDBEVQXKDCEVQVRYPXRXCAFYPXLXBXAXKDWTEWAVSWBVRZWCWDWEWPWSYNYOS
      XDYCXMXTHFYIWFQWGXMHAIXEEFYHWHTWPWSYMYLSXDYCXMXTHFYIWKQWIXTYJHFDYQWJTWIWL
      WM @.
  @}

  @{
    @d x A @.  @d x B @.  @d x R @.
    @( Supremum of an unordered pair of comparable elements.  (Contributed by
       NM, 7-Jul-2008.) @)
    spwpr4c @p |- ( ( R e. PosetRel /\ A R B ) -> ( R supw { A , B } ) = B ) @=
      ( vx cps wcel wbr wa cv wi cdm wral cpr cspw co wceq simpl simpr crn wrel
      psrel relelrn sylan eqid adantr eleqtrrd psref syldan rgenw a1i syl121anc
      psrn spwpr4 ) CEFZABCGZHZUNUOBBCGZADIZCGZBURCGZHUTJZDCKZLZCABMNOBPUNUOQUN
      UORUNUOBVBFUQUPBCSZVBUNCTUOBVDFCUAABCUBUCUNVBVDPUOCVBVBUDZULUEUFBCVBVEUGU
      HVCUPVADVBUSUTRUIUJDABBCVBVEUMUK @.
  @}

  @{
    @d x y A @.  @d y B @.  @d r x y R @.  @d r x y X @.
    isla.1 @e |- X = dom R @.
    @( The predicate "is a lattice" i.e. a poset in which any two elements have
       upper and lower bounds.  (Contributed by NM, 12-Jun-2008.) @)
    isla @p |- ( R e. LatRel <-> ( R e. PosetRel /\ A. x e. X A. y e. X
      ( ( R supw { x , y } ) e. X /\ ( R infw { x , y } ) e. X ) ) ) @=
      ( vr cv cpr cspw co cdm wcel cinf wa wral cps cla oveq1 eleq12d raleqbidv
      wceq dmeq syl6eqr anbi12d df-lar elrab2 ) FGZAGBGHZIJZUGKZLZUGUHMJZUJLZNZ
      BUJOZAUJOCUHIJZDLZCUHMJZDLZNZBDOZADOFCPQUGCUAZUOVAAUJDVBUJCKDUGCUBEUCZVBU
      NUTBUJDVCVBUKUQUMUSVBUIUPUJDUGCUHIRVCSVBULURUJDUGCUHMRVCSUDTTABFUEUF @.

    @( Closure of the supremum (join) of two lattice elements.  (Contributed by
       NM, 12-Jun-2008.) @)
    laspwcl @p |- ( ( R e. LatRel /\ A e. X /\ B e. X )
                -> ( R supw { A , B } ) e. X ) @=
      ( vx vy cla wcel cpr cspw co cv wral wa cps ralimi wceq oveq2d eleq1d
      cinf isla simpl adantl sylbi preq1 preq2 rspc2v mpan9 3impb ) CHIZADIZBDI
      ZCABJZKLZDIZUKCFMZGMZJZKLZDIZGDNZFDNZULUMOUPUKCPIZVACUSUALDIZOZGDNZFDNZOV
      CFGCDEUBVHVCVDVGVBFDVFVAGDVAVEUCQQUDUEVAUPCAURJZKLZDIFGABDDUQARZUTVJDVKUS
      VICKUQAURUFSTURBRZVJUODVLVIUNCKURBAUGSTUHUIUJ @.

    @( Closure of the infimum (meet) of two lattice elements.  (Contributed by
       NM, 20-Jun-2008.) @)
    lanfwcl @p |- ( ( R e. LatRel /\ A e. X /\ B e. X )
                -> ( R infw { A , B } ) e. X ) @=
      ( vx vy cla wcel cpr cinf co cv wral wa cps ralimi wceq oveq2d eleq1d
      cspw isla simpr adantl sylbi preq1 preq2 rspc2v mpan9 3impb ) CHIZADIZBDI
      ZCABJZKLZDIZUKCFMZGMZJZKLZDIZGDNZFDNZULUMOUPUKCPIZCUSUALDIZVAOZGDNZFDNZOV
      CFGCDEUBVHVCVDVGVBFDVFVAGDVEVAUCQQUDUEVAUPCAURJZKLZDIFGABDDUQARZUTVJDVKUS
      VICKUQAURUFSTURBRZVJUODVLVIUNCKURBAUGSTUHUIUJ @.
  @}

  @{
    @d x y R @.
    @( A lattice is a poset.  (Contributed by NM, 12-Jun-2008.) @)
    laps @p |- ( R e. LatRel -> R e. PosetRel ) @=
      ( vx vy cla wcel cps cv cpr cspw co cdm cinf wa wral eqid isla simplbi )
      ADEAFEABGCGHZIJAKZEARLJSEMCSNBSNBCASSOPQ @.
  @}
$)

  $( domain of ` <_ ` is ` RR* ` .  (Contributed by FL, 2-Aug-2009.)  (Revised
     by Mario Carneiro, 4-May-2015.) $)
  ledm $p |- RR* = dom <_ $=
    ( vx cxr cle cdm cv wcel wbr xrleid lerel releldmi syl cxp wss lerelxr dmss
    ssriv ax-mp dmxpss sstri eqssi ) BCDZABUAAEZBFUBUBCGUBUAFUBHUBUBCIJKPUABBLZ
    DZBCUCMUAUDMNCUCOQBBRST $.

  $( The range of ` <_ ` is ` RR* ` .  (Contributed by FL, 2-Aug-2009.)
     (Revised by Mario Carneiro, 3-Sep-2015.) $)
  lern $p |- RR* = ran <_ $=
    ( vx cxr cle crn cv wcel wbr xrleid lerel relelrni syl cxp wss lerelxr rnss
    ssriv ax-mp rnxpss sstri eqssi ) BCDZABUAAEZBFUBUBCGUBUAFUBHUBUBCIJKPUABBLZ
    DZBCUCMUAUDMNCUCOQBBRST $.

  $( The field of the 'less or equal to' relationship on the extended real.
     (Contributed by FL, 2-Aug-2009.)  (Revised by Mario Carneiro,
     4-May-2015.) $)
  lefld $p |- RR* = U. U. <_ $=
    ( cle cuni cdm crn cun wrel wceq lerel relfld ax-mp ledm lern uneq12i unidm
    cxr 3eqtr2ri ) ABBZACZADZEZOOEOAFQTGHAIJOROSKLMONP $.

  ${
    $d x y z $.
    $( The "less than or equal to" relationship on the extended reals is a
       toset.  (Contributed by FL, 2-Aug-2009.)  (Revised by Mario Carneiro,
       3-Sep-2015.) $)
    letsr $p |- <_ e. TosetRel $=
      ( vx vy vz cle wcel cxr wss cuni wceq cv wbr wa wal lerelxr simpld simprd
      w3a brel adantl wb ctsr cps cxp ccnv cun wrel ccom cin cid cres wi adantr
      lerel 3jca xrletr mpcom ax-gen mpbir asymref simpr xrletri3 sylan2 mpbird
      gen2 cotr ex xrleid jca breq2 breq1 anbi12d syl5ibcom impbid lefld eqcomi
      alrimiv eleq2s mprgbir cvv xrex xpex ssexi isps ax-mp mpbir3an wo xrletri
      wral rgen2a qfto ledm istsr mpbir2an ) DUAEDUBEZFFUCZDDUDZUEGZWNDUFZDDUGD
      GZDWPUHUIDHHZUJIZUMWSAJZBJZDKZXCCJZDKZLZXBXEDKZUKZCMZBMAMXJABXICXBFEZXCFE
      ZXEFEZQXGXHXGXKXLXMXGXKXLXDXKXLLXFXBXCFFDNRULZOXGXKXLXNPXFXMXDXFXLXMXCXEF
      FDNRPSUNXBXCXEUOUPUQVDABCDVEURXAXDXCXBDKZLZXBXCIZTZBMZAWTABDUSXSXBFWTXKXR
      BXKXPXQXKXPXQXKXPLXQXPXKXPUTXPXKXLXQXPTXOXLXDXOXLXKXCXBFFDNROSXBXCVAVBVCV
      FXKXBXBDKZXTLXQXPXKXTXTXBVGZYAVHXQXTXDXTXOXBXCXBDVIXBXCXBDVJVKVLVMVPFWTVN
      VOVQVRDVSEWNWRWSXAQTDWOFFVTVTWANWBVSDWCWDWEWQXDXOWFZBFWHAFWHYBABFXBXCWGWI
      ABFFDWJURDFWKWLWM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Directed sets, nets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c DirRel $.
  $( Extend class notation with the class of all directed sets. $)
  cdir $a class DirRel $.

  $c tail $.
  $( Extend class notation with the tail function. $)
  ctail $a class tail $.

  $( Define the class of all directed sets/directions.  (Contributed by Jeff
     Hankins, 25-Nov-2009.) $)
  df-dir $a |- DirRel = { r | ( ( Rel r /\ ( _I |` U. U. r ) C_ r ) /\
     ( ( r o. r ) C_ r /\ ( U. U. r X. U. U. r ) C_ ( `' r o. r ) ) ) } $.

  ${
    $d r x $.
    $( Define the tail function for directed sets.  (Contributed by Jeff
       Hankins, 25-Nov-2009.) $)
    df-tail $a |- tail = ( r e. DirRel |->
                  ( x e. U. U. r |-> ( r " { x } ) ) ) $.
  $}

  ${
    $d r A $.  $d r R $.
    isdir.1 $e |- A = U. U. R $.
    $( A condition for a relation to be a direction.  (Contributed by Jeff
       Hankins, 25-Nov-2009.)  (Revised by Mario Carneiro, 22-Nov-2013.) $)
    isdir $p |- ( R e. V -> ( R e. DirRel <-> ( ( Rel R /\ ( _I |` A ) C_ R )
                 /\ ( ( R o. R ) C_ R /\ ( A X. A ) C_ ( `' R o. R ) ) ) ) ) $=
      ( vr cv wrel cid cuni cres wss wa ccom cxp ccnv cdir wceq sseq12d anbi12d
      coeq12d releq unieq unieqd syl6eqr reseq2d id sqxpeqd cnveq df-dir elab2g
      ) EFZGZHUKIZIZJZUKKZLZUKUKMZUKKZUNUNNZUKOZUKMZKZLZLBGZHAJZBKZLZBBMZBKZAAN
      ZBOZBMZKZLZLEBPCUKBQZUQVHVDVOVPULVEUPVGUKBUAVPUOVFUKBVPUNAHVPUNBIZIAVPUMV
      QUKBUBUCDUDZUEVPUFZRSVPUSVJVCVNVPURVIUKBVPUKBUKBVSVSTVSRVPUTVKVBVMVPUNAVR
      UGVPVAVLUKBUKBUHVSTRSSEUIUJ $.
  $}

  $( A direction is a relation.  (Contributed by Jeff Hankins, 25-Nov-2009.)
     (Revised by Mario Carneiro, 22-Nov-2013.) $)
  reldir $p |- ( R e. DirRel -> Rel R ) $=
    ( cdir wcel wrel cid cuni cres wss ccom cxp ccnv wa eqid isdir ibi simplld
    ) ABCZADZEAFFZGAHZAAIAHSSJAKAIHLZQRTLUALSABSMNOP $.

  $( A direction's domain is equal to its field.  (Contributed by Jeff Hankins,
     25-Nov-2009.)  (Revised by Mario Carneiro, 22-Nov-2013.) $)
  dirdm $p |- ( R e. DirRel -> dom R = U. U. R ) $=
    ( cdir wcel cdm cuni wss crn cun ssun1 dmrnssfld sstri a1i cres dmresi wrel
    cid wa ccom cxp ccnv eqid isdir ibi simpld simprd dmss syl syl5eqssr eqssd
    ) ABCZADZAEEZUKULFUJUKUKAGZHULUKUMIAJKLUJULPULMZDZUKULNUJUNAFZUOUKFUJAOZUPU
    JUQUPQZAARAFULULSATARFQZUJURUSQULABULUAUBUCUDUEUNAUFUGUHUI $.

  ${
    dirref.1 $e |- X = dom R $.
    $( A direction is reflexive.  (Contributed by Jeff Hankins, 25-Nov-2009.)
       (Revised by Mario Carneiro, 22-Nov-2013.) $)
    dirref $p |- ( ( R e. DirRel /\ A e. X ) -> A R A ) $=
      ( cdir wcel wbr cid cres wceq eqid resieq anidms mpbiri cuni cdm wss ccom
      wb wa dirdm syl5eq reseq2d wrel cxp isdir ibi simpld simprd eqsstrd ssbrd
      ccnv syl5 imp ) BEFZACFZAABGZUPAAHCIZGZUOUQUPUSAAJZAKUPUSUTSCAALMNUOURBAA
      UOURHBOOZIZBUOCVAHUOCBPVADBUAUBUCUOBUDZVBBQZUOVCVDTZBBRBQVAVAUEBULBRQTZUO
      VEVFTVABEVAKUFUGUHUIUJUKUMUN $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z R $.
    $( A direction is transitive.  (Contributed by Jeff Hankins, 25-Nov-2009.)
       (Revised by Mario Carneiro, 22-Nov-2013.) $)
    dirtr $p |- ( ( ( R e. DirRel /\ C e. V ) /\ ( A R B /\ B R C ) )
               -> A R C ) $=
      ( vx vy vz cdir wcel wbr wa cvv wi cv wal wss wceq wb breq12 wrel brrelex
      reldir ex anim12d syl w3a ccom cuni cxp ccnv cid cres isdir simprd simpld
      eqid ibi cotr sylib 3adant3 3adant1 anbi12d 3adant2 imbi12d spc3gv 3expia
      syl5 com4t mpdd imp31 an32s ) DIJZABDKZBCDKZLZCEJZACDKZVMVPVQVRVMVPAMJZBM
      JZLZVQVRNVMDUAZVPWANDUCWBVNVSVOVTWBVNVSABDUBUDWBVOVTBCDUBUDUEUFWAVQVMVPVR
      VSVTVQVMVPVRNZNVMFOZGOZDKZWEHOZDKZLZWDWGDKZNZHPGPFPZVSVTVQUGWCVMDDUHDQZWL
      VMWMDUIUIZWNUJDUKDUHQZVMWBULWNUMDQLZWMWOLZVMWPWQLWNDIWNUQUNURUOUPFGHDUSUT
      WKWCFGHABCMMEWDARZWEBRZWGCRZUGZWIVPWJVRXAWFVNWHVOWRWSWFVNSWTWDAWEBDTVAWSW
      TWHVOSWRWEBWGCDTVBVCWRWTWJVRSWSWDAWGCDTVDVEVFVHVGVIVJVKVL $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z R $.  $d x y z X $.
    dirge.1 $e |- X = dom R $.
    $( For any two elements of a directed set, there exists a third element
       greater than or equal to both.  (Note that this does not say that the
       two elements have a _least_ upper bound.)  (Contributed by Jeff Hankins,
       25-Nov-2009.)  (Revised by Mario Carneiro, 22-Nov-2013.) $)
    dirge $p |- ( ( R e. DirRel /\ A e. X /\ B e. X )
              -> E. x e. X ( A R x /\ B R x ) ) $=
      ( vy vz cdir wcel cv wbr wa wex cuni eleq2d wral ccom wss wceq wrex dirdm
      cdm syl5eq anbi12d cxp ccnv wrel cid cres isdir simprrd codir sylib breq1
      eqid ibi anbi1d exbidv anbi2d rspc2v syl5com sylbid crn reldir relelrn ex
      sylan cun ssun2 dmrnssfld sstri syl5sseqr sseld syld adantrd ancrd eximdv
      df-rex syl6ibr 3impib ) DIJZBEJZCEJZBAKZDLZCWEDLZMZAEUAZWBWCWDMZWHANZWIWB
      WJBDOOZJZCWLJZMZWKWBWCWMWDWNWBEWLBWBEDUCZWLFDUBUDZPWBEWLCWQPUEWBGKZWEDLZH
      KZWEDLZMZANZHWLQGWLQZWOWKWBWLWLUFDUGDRSZXDWBDUHZUIWLUJDSMZDDRDSZXEWBXGXHX
      EMMWLDIWLUPUKUQULGHAWLWLDUMUNXCWKWFXAMZANGHBCWLWLWRBTZXBXIAXJWSWFXAWRBWED
      UOURUSWTCTZXIWHAXKXAWGWFWTCWEDUOUTUSVAVBVCWBWKWEEJZWHMZANWIWBWHXMAWBWHXLW
      BWFXLWGWBWFWEDVDZJZXLWBWFXOWBXFWFXODVEBWEDVFVHVGWBXNEWEWBWLXNEXNWPXNVIWLX
      NWPVJDVKVLWQVMVNVOVPVQVRWHAEVSVTVOWA $.
  $}

  $( A totally ordered set is a directed set.  (Contributed by Jeff Hankins,
     25-Nov-2009.)  (Revised by Mario Carneiro, 22-Nov-2013.) $)
  tsrdir $p |- ( A e. TosetRel -> A e. DirRel ) $=
    ( ctsr wcel cdir wrel cid cuni cres wss ccom cxp ccnv cps syl jca wceq eqid
    wa syl5eqssr eqsstr3d tsrps psrel cin psref2 inss1 syl6eqssr cdm crn psdmrn
    pstr2 simpld sqxpeqd cun istsr simprbi relcoi2 cnvresid cnvss coss1 relcoi1
    relcnv ax-mp relcnvfld reseq2d coss2 unssd sstrd isdir mpbir2and ) ABCZADCA
    EZFAGGZHZAIZRAAJAIZVLVLKZALZAJZIZRVJVKVNVJAMCZVKAUAZAUBNZVJVTVNWAVTVMAVQUCA
    AUDAVQUEUFNZOVJVOVSVJVTVOWAAUJNVJVPAUGZWDKZVRVJWDVLVJWDVLPZAUHVLPZVJVTWFWGR
    WAAUINUKULVJWEAVQUMZVRVJVTWEWHIAWDWDQUNUOVJAVQVRVJAVMAJZVRVJVKWIAPWBAUPNVJV
    MVQIWIVRIVJVMVMLZVQVLUQVJVNWJVQIWCVMAURNSVMVQAUSNTVJVQVQFVQGGZHZJZVRVQEWMVQ
    PAVAVQUTVBVJWLAIWMVRIVJWLVMAVJVLWKFVJVKVLWKPWBAVCNVDWCTWLAVQVENSVFVGTOVLABV
    LQVHVI $.


$(
###############################################################################
  BASIC ALGEBRAIC STRUCTURES
###############################################################################
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Monoids
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Magmas
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  According to Wikipedia ("Magma (algebra)", 08-Jan-2020,
  ~ https://en.wikipedia.org/wiki/magma_(algebra) ) "In abstract algebra, a
  _magma_ [[...] is a basic kind of algebraic structure.  Specifically, a magma
  consists of a set equipped with a single binary operation.  The binary
  operation must be closed by definition but no other properties are imposed.".

  Since the concept of a "binary operation" is used in different variants,
  these differences are explained in more detail in the following:

  With ~ df-mpt2 , binary operations are defined by a rule, and with ~ df-ov ,
  the value of a binary operation applied to two operands can be expressed.
  In both cases, the two operands can belong to different sets, and the result
  can be an element of a third set.  However, according to Wikipedia "Binary
  operation", see https://en.wikipedia.org/wiki/Binary_operation (19-Jan-2020),
  "... a binary operation on a set ` S ` is a mapping of the elements of the
  Cartesian product ` S X. S ` to S: ` f : S X. S --> S `.  Because the result
  of performing the operation on a pair of elements of S is again an element of
  S, the operation is called a _closed_ binary operation on S (or sometimes
  expressed as having the property of closure).".  To distinguish this more
  restrictive definition (in Wikipedia and most of the literature) from the
  general case, binary operations mapping the elements of the Cartesian product
  ` S X. S ` are more precisely called _internal binary operations_.  If, in
  addition, the result is also contained in the set ` S `, the operation should
  be called _closed internal binary operation_.  Therefore, a "binary operation
  on a set ` S `" according to Wikipedia is a "closed internal binary
  operation" in a more precise terminology.  If the sets are different, the
  operation is explicitly called _external binary operation_ (see Wikipedia
  https://en.wikipedia.org/wiki/Binary_operation#External_binary_operations ).

  The definition of magmas (` Mgm `, see ~ df-mgm ) concentrates on the closure
  property of the associated operation, and poses no additional restrictions on
  it.  In this way, it is most general and flexible.

$)

  $c +f $.
  $c Mgm $.

  $( Extend class notation with group addition as a function. $)
  cplusf $a class +f $.

  $( Extend class notation with class of all magmas. $)
  cmgm $a class Mgm $.

  ${
    $d g x y $.
    $( Define group addition function.  Usually we will use ` +g ` directly
       instead of ` +f ` , and they have the same behavior in most cases.  The
       main advantage of ` +f ` for any magma is that it is a guaranteed
       function ( ~ mgmplusf ), while ` +g ` only has closure ( ~ mgmcl ).
       (Contributed by Mario Carneiro, 14-Aug-2015.) $)
    df-plusf $a |- +f = ( g e. _V |->
      ( x e. ( Base ` g ) , y e. ( Base ` g ) |-> ( x ( +g ` g ) y ) ) ) $.
  $}

  ${
    $d b g o x y $.
    $( A _magma_ is a set equipped with an everywhere defined internal
       operation.  Definition 1 in [BourbakiAlg1] p. 1, or definition of a
       groupoid in section I.1 of [Bruck] p. 1.  Note:  The term "groupoid" is
       now widely used to refer to other objects:  (small) categories all of
       whose morphisms are invertible, or groups with a partial function
       replacing the binary operation.  Therefore, we will only use the term
       "magma" for the present notion in set.mm.  (Contributed by FL,
       2-Nov-2009.)  (Revised by AV, 6-Jan-2020.) $)
    df-mgm $a |- Mgm = { g | [. ( Base ` g ) / b ]. [. ( +g ` g ) / o ].
                                A. x e. b A. y e. b ( x o y ) e. b } $.
  $}

  ${
    $d B b m o x y $.  $d M b m o x y $.  $d .o. b m o x y $.
    ismgm.b $e |- B = ( Base ` M ) $.
    ismgm.o $e |- .o. = ( +g ` M ) $.
    $( The predicate "is a magma".  (Contributed by FL, 2-Nov-2009.)  (Revised
       by AV, 6-Jan-2020.) $)
    ismgm $p |- ( M e. V -> ( M e. Mgm
                                <-> A. x e. B A. y e. B ( x .o. y ) e. B ) ) $=
      ( vo vb vm cv co wcel wral cplusg cfv wsbc cbs wceq cmgm fvexd syl6eqr wa
      fveq2 adantr simplr oveq adantl eleq12d raleqbidv sbcied2 df-mgm elab2g
      cvv ) ALZBLZILZMZJLZNZBUTOZAUTOZIKLZPQZRZJVDSQZRUPUQFMZCNZBCOZACOZKDUAEVD
      DTZVFVKJVGCUOVLVDSUBVLVGDSQCVDDSUEGUCVLUTCTZUDZVCVKIVEFUOVNVDPUBVNVEDPQZF
      VLVEVOTVMVDDPUEUFHUCVNURFTZUDZVBVJAUTCVLVMVPUGZVQVAVIBUTCVRVQUSVHUTCVPUSV
      HTVNUPUQURFUHUIVRUJUKUKULULABKIJUMUN $.
  $}

  ${
    $d B x y $.  $d M x y $.  $d .o. x y $.
    ismgmn0.b $e |- B = ( Base ` M ) $.
    ismgmn0.o $e |- .o. = ( +g ` M ) $.
    $( The predicate "is a magma" for a structure with a nonempty base set.
       (Contributed by AV, 29-Jan-2020.) $)
    ismgmn0 $p |- ( A e. B -> ( M e. Mgm
                                <-> A. x e. B A. y e. B ( x .o. y ) e. B ) ) $=
      ( wcel cvv cmgm cv co wral wb cbs cfv eleq2i biimpi elfvexd ismgm syl ) C
      DIZEJIEKIALBLFMDIBDNADNOUCCPEUCCEPQZIDUDCGRSTABDEJFGHUAUB $.
  $}

  ${
    $d B x y $.  $d M x y $.  $d .o. x y $.  $d X x y $.  $d Y y $.
    mgmcl.b $e |- B = ( Base ` M ) $.
    mgmcl.o $e |- .o. = ( +g ` M ) $.
    $( Closure of the operation of a magma.  (Contributed by FL, 14-Sep-2010.)
       (Revised by AV, 13-Jan-2020.) $)
    mgmcl $p |- ( ( M e. Mgm /\ X e. B /\ Y e. B ) -> ( X .o. Y ) e. B ) $=
      ( vx vy cmgm wcel co cv wral wa wi ismgm ibi ovrspc2v expcom syl 3impib )
      BJKZCAKZDAKZCDELAKZUCHMIMELAKIANHANZUDUEOZUFPUCUGHIABJEFGQRUHUGUFHIAAAECD
      STUAUB $.

    $( A condition for a structure not to be a magma.  (Contributed by AV,
       30-Jan-2020.)  (Proof shortened by NM, 5-Feb-2020.) $)
    isnmgm $p |- ( ( X e. B /\ Y e. B /\ ( X .o. Y ) e/ B ) -> M e/ Mgm ) $=
      ( wcel co wnel cmgm wa mgmcl 3expib com12 nelcon3d 3impia ) CAHZDAHZCDEIZ
      AJBKJRSLZBKTABKHZUATAHZUBRSUCABCDEFGMNOPQ $.
  $}

  ${
    $d g x y B $.  $d g x y G $.  $d g x y .+ $.  $d x y X $.  $d x y Y $.
    plusffval.1 $e |- B = ( Base ` G ) $.
    plusffval.2 $e |- .+ = ( +g ` G ) $.
    plusffval.3 $e |- .+^ = ( +f ` G ) $.
    $( The group addition operation as a function.  (Contributed by Mario
       Carneiro, 14-Aug-2015.) $)
    plusffval $p |- .+^ = ( x e. B , y e. B |-> ( x .+ y ) ) $=
      ( vg cplusf cfv cv cmpt2 cvv wcel wceq cbs cplusg c0 co fveq2 mpt2eq123dv
      syl6eqr oveqd df-plusf cxp crn csn cun wf wral df-ov fvrn0 eqeltri rgen2w
      cop eqid fmpt2 mpbi fvex xpex rnex p0ex unex fex2 mp3an fvmpt fvprc mpt20
      wn syl5eq mpt2eq12 syl2anc eqtr4d pm2.61i eqtri ) EFKLZABCCAMZBMZDUAZNZIF
      OPZVRWBQJFABJMZRLZWEVSVTWDSLZUAZNWBOKWDFQZABWEWEWGCCWAWHWEFRLZCWDFRUBGUDZ
      WJWHWFDVSVTWHWFFSLZDWDFSUBHUDUEUCABJUFCCUGZDUHZTUIZUJZWBUKZWLOPWOOPWBOPWA
      WOPZBCULACULWPWQABCCWAVSVTUQZDLWOVSVTDUMDWRUNUOUPABCCWAWOWBWBURUSUTCCCWIO
      GFRVAUOZWSVBWMWNDDWKOHFSVAUOVCVDVEWLWOWBOOVFVGVHWCVKZVRABTTWANZWBWTVRTXAF
      KVIABTWAVJUDWTCTQZXBWBXAQWTCWITGFRVIVLZXCABCCTTWAVMVNVOVPVQ $.

    $( The group addition operation as a function.  (Contributed by Mario
       Carneiro, 14-Aug-2015.) $)
    plusfval $p |- ( ( X e. B /\ Y e. B ) -> ( X .+^ Y ) = ( X .+ Y ) ) $=
      ( vx vy cv co oveq12 plusffval ovex ovmpt2a ) JKEFAAJLZKLZBMEFBMCRESFBNJK
      ABCDGHIOEFBPQ $.

    $( If the addition operation is already a function, the functionalization
       of it is equal to the original operation.  (Contributed by Mario
       Carneiro, 14-Aug-2015.) $)
    plusfeq $p |- ( .+ Fn ( B X. B ) -> .+^ = .+ ) $=
      ( vx vy cxp wfn cv co cmpt2 wceq fnov biimpi plusffval syl6reqr ) BAAJKZB
      HIAAHLILBMNZCTBUAOHIAABPQHIABCDEFGRS $.
  $}

  ${
    $d x y B $.  $d x y G $.
    plusffn.1 $e |- B = ( Base ` G ) $.
    plusffn.2 $e |- .+^ = ( +f ` G ) $.
    $( The group addition operation is a function.  (Contributed by Mario
       Carneiro, 20-Sep-2015.) $)
    plusffn $p |- .+^ Fn ( B X. B ) $=
      ( vx vy cv cplusg cfv co eqid plusffval ovex fnmpt2i ) FGAAFHZGHZCIJZKBFG
      ARBCDRLEMPQRNO $.
  $}

  ${
    $d B x y $.  $d M x y $.
    mgmplusf.1 $e |- B = ( Base ` M ) $.
    mgmplusf.2 $e |- .+^ = ( +f ` M ) $.
    $( The group addition function of a magma is a function into its base set.
       (Contributed by Mario Carneiro, 14-Aug-2015.)  (Revisd by AV,
       28-Jan-2020.) $)
    mgmplusf $p |- ( M e. Mgm -> .+^ : ( B X. B ) --> B ) $=
      ( vx vy cmgm wcel cv cplusg cfv co wral cxp eqid mgmcl 3expb ralrimivva
      wf plusffval fmpt2 sylib ) CHIZFJZGJZCKLZMZAIZGANFANAAOABTUDUIFGAAUDUEAIU
      FAIUIACUEUFUGDUGPZQRSFGAAUHABFGAUGBCDUJEUAUBUC $.
  $}

  ${
    $d B x y $.  $d H x y $.  $d S x y $.  $d V x y $.
    issstrmgm.b $e |- B = ( Base ` G ) $.
    issstrmgm.p $e |- .+ = ( +g ` G ) $.
    issstrmgm.h $e |- H = ( G |`s S ) $.
    $( Characterize a substructure as submagma by closure properties.
       (Contributed by AV, 30-Aug-2021.) $)
    issstrmgm $p |- ( ( H e. V /\ S C_ B ) -> ( H e. Mgm
                                 <-> A. x e. S A. y e. S ( x .+ y ) e. S ) ) $=
      ( wcel wa cv wral cfv cbs adantr adantl cvv cmgm co cplusg simplr wi wceq
      wss ressbas2 syl eleq2d biimpcd eqid mgmcl syl3anc fvex eqeltri ressplusg
      impcom ssex oveqdr 3eltr4d ralrimivva oveqd eleq12d raleqbidv wb ad2antrr
      biimpa ismgm mpbird impbida ) GHLZECUGZMZGUALZANZBNZDUBZELZBEOZAEOZVNVOMZ
      VSABEEWBVPELZVQELZMZMZVPVQGUCPZUBZGQPZVREWFVOVPWILZVQWILZWHWILZVNVOWEUDWE
      WBWJWCWBWJUEWDWBWCWJWBEWIVPWBVMEWIUFZVLVMVOUDECGFKIUHZUIZUJUKRURWEWBWKWDW
      BWKUEWCWBWDWKWBEWIVQWOUJUKSURWIGVPVQWGWIULZWGULZUMUNWBWEABDWGVNDWGUFZVOVN
      ETLZWRVMWSVLECCFQPTIFQUOUPUSSEDFGTKJUQUIZRUTWBWMWEWORVAVBVNWAMVOWLBWIOZAW
      IOZVNWAXBVNVTXAAEWIVMWMVLWNSZVNVSWLBEWIXCVNVRWHEWIVNDWGVPVQWTVCXCVDVEVEVH
      VLVOXBVFVMWAABWIGHWGWPWQVIVGVJVK $.
  $}

  $( The internal operation for a set is the trivial operation iff the set is a
     singleton.  Formerly part of proof of ~ ring1zr .  (Contributed by FL,
     13-Feb-2010.)  (Revised by AV, 23-Jan-2020.) $)
  intopsn $p |- ( ( .o. : ( B X. B ) --> B /\ Z e. B )
                  -> ( B = { Z } <-> .o. = { <. <. Z , Z >. , Z >. } ) ) $=
    ( cxp wf wcel wa csn wceq cop simpl sqxpeqd feq23d syl5ibcom cdm fdm eqcomd
    id adantr cvv eqeq2d xpid11 syl6ib impbid simpr xpsng sylancom wb opex fsng
    feq2d mpan adantl 3bitrd ) AADZABEZCAFZGZACHZIZUSUSDZUSBEZCCJZHZUSBEZBVCCJH
    IZURUTVBURUPUTVBUPUQKUTUOAVAUSBUTAUSUTRZLVGMNURVBUOVAIZUTURUOBOZIZVBVHUPVJU
    QUPVIUOUOABPQSVBVIVAUOVAUSBPUANAUSUBUCUDURVAVDUSBUPUQUQVAVDIUPUQUECCAAUFUGU
    KUQVEVFUHZUPVCTFUQVKCCUIVCCTABUJULUMUN $.

  ${
    mgmb1mgm1.b $e |- B = ( Base ` M ) $.
    mgmb1mgm1.p $e |- .+ = ( +g ` M ) $.
    $( The only magma with a base set consisting of one element is the trivial
       magma (at least if its operation is an internal binary operation).
       (Contributed by AV, 23-Jan-2020.)  (Revised by AV, 7-Feb-2020.) $)
    mgmb1mgm1 $p |- ( ( M e. Mgm /\ Z e. B /\ .+ Fn ( B X. B ) )
                      -> ( B = { Z } <-> .+ = { <. <. Z , Z >. , Z >. } ) ) $=
      ( cmgm wcel cxp wfn w3a wf csn wceq cop wb cplusf cfv wi eqid feq1 syl5ib
      plusfeq mgmplusf syl impcom 3adant2 simp2 intopsn syl2anc ) CGHZDAHZBAAIZ
      JZKUMABLZULADMNBDDODOMNPUKUNUOULUNUKUOUNCQRZBNZUKUOSABUPCEFUPTZUCUKUMAUPL
      UQUOAUPCEURUDUMAUPBUAUBUEUFUGUKULUNUHABDUIUJ $.
  $}

  ${
    $d M x y $.
    $( Any set with an empty base set and any group operation is a magma.
       (Contributed by AV, 28-Aug-2021.) $)
    mgm0 $p |- ( ( M e. V /\ ( Base ` M ) = (/) ) -> M e. Mgm ) $=
      ( vx vy wcel cbs c0 wceq wa cmgm cv cplusg co wral rzal adantl eqid ismgm
      cfv wb adantr mpbird ) ABEZAFSZGHZIAJEZCKDKALSZMUDEDUDNZCUDNZUEUIUCUHCUDO
      PUCUFUITUECDUDABUGUDQUGQRUAUB $.
  $}

  $( The structure with an empty base set and any group operation is a magma.
     (Contributed by AV, 28-Aug-2021.) $)
  mgm0b $p |- { <. ( Base ` ndx ) , (/) >. , <. ( +g ` ndx ) , O >. } e. Mgm $=
    ( cnx cbs cfv c0 cop cplusg cpr cvv wcel wceq cmgm prex eqid grpbase eqcomd
    0ex ax-mp mgm0 mp2an ) BCDEFZBGDAFZHZIJUCCDZEKZUCLJUAUBMEIJZUEQUFEUDEAUCIUC
    NOPRUCIST $.

  ${
    $d I x y $.  $d M x y $.
    mgm1.m $e |- M = { <. ( Base ` ndx ) , { I } >. ,
                       <. ( +g ` ndx ) , { <. <. I , I >. , I >. } >. } $.
    $( The structure with one element and the only closed internal operation
       for a singleton is a magma.  (Contributed by AV, 10-Feb-2020.) $)
    mgm1 $p |- ( I e. V -> M e. Mgm ) $=
      ( vx vy wcel cv cop csn wral cfv cvv wceq eleq1d ralsng mpbird snex ax-mp
      co cmgm df-ov opex fvsng mpan syl5eq snidg eqeltrd oveq1 ralbidv oveq2 wb
      bitrd cbs grpbase cplusg grpplusg ismgmn0 syl ) ACGZBUAGZEHZFHZAAIZAIZJZT
      ZAJZGZFVHKZEVHKZUTVKAAVFTZVHGZUTVLAVHUTVLVDVFLZAAAVFUBVDMGUTVNANAAUCVDAMC
      UDUEUFACUGZUHUTVKAVCVFTZVHGZFVHKZVMVJVREACVBANZVIVQFVHVSVGVPVHVBAVCVFUIOU
      JPVQVMFACVCANVPVLVHVCAAVFUKOPUMQUTAVHGVAVKULVOEFAVHBVFVHMGVHBUNLNARVHVFBM
      DUOSVFMGVFBUPLNVERVHVFBMDUQSURUSQ $.
  $}

  ${
    $d B x y $.  $d B a b $.  $d M x a b $.  $d ph a b $.  $d ph x y $.
    opifismgm.b $e |- B = ( Base ` M ) $.
    opifismgm.p $e |- ( +g ` M ) = ( x e. B , y e. B
                                     |-> if ( ps , C , D ) ) $.
    opifismgm.n $e |- ( ph -> B =/= (/) ) $.
    opifismgm.c $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) -> C e. B ) $.
    opifismgm.d $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) -> D e. B ) $.
    $( A structure with a group addition operation expressed by a conditional
       operator is a magma if both values of the conditional operator are
       contained in the base set.  (Contributed by AV, 9-Feb-2020.) $)
    opifismgm $p |- ( ph -> M e. Mgm ) $=
      ( va vb wcel cv wral wa ralrimivva cmgm cplusg cfv co ifcld adantr simprl
      cif simprr ovmpt2elrn syl3anc c0 wne wb wex n0 eqid ismgmn0 exlimiv sylbi
      syl mpbird ) AHUAPZNQZOQZHUBUCZUDEPZOERNERZAVGNOEEAVDEPZVEEPZSZSBFGUHZEPZ
      DERCERZVIVJVGAVNVKAVMCDEEACQZEPZDQEPSSBFGELMUETUFAVIVJUGAVIVJUICDEEVLEVFV
      DVEJUJUKTAEULUMZVCVHUNZKVQVPCUOVRCEUPVPVRCNOVOEHVFIVFUQURUSUTVAVB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Identity elements
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  According to Wikipedia ("Identity element", 7-Feb-2020,
  ~ https://en.wikipedia.org/wiki/Identity_element ): "In mathematics, an
  _identity element_, or _neutral element_, is a special type of element of a
  set with respect to a binary operation on that set, which leaves any element
  of the set unchanged when combined with it.". Or in more detail "... an
  element e of S is called a _left identity_ if e * a = a for all a in S, and a
  _right identity_ if a * e = a for all a in S.  If e is both a left identity
  and a right identity, then it is called a _two-sided identity_, or simply an
  _identity_."  We concentrate on two-sided identities in the following.  The
  existence of an identity (an identity is unique if it exists, see ~ mgmidmo )
  is an important property of monoids (see ~ mndid ), and therefore also for
  groups (see ~ grpid ), but also for magmas not required to be associative.
  Magmas with an identity element are called "unital magmas" (see Definition 2
  in [BourbakiAlg1] p. 12) or, if the magmas are cancellative, "loops" (see
  definition in [Bruck] p. 15).

  In the context of extensible structures, the identity element (of any magma
  ` M `) is defined as "group identity element" ` ( 0g `` M ) `, see ~ df-0g .
  Related theorems which are already valid for magmas are provided in the
  following.

$)

  ${
    $d u w x B $.  $d u w x .+ $.
    $( A two-sided identity element is unique (if it exists) in any magma.
       (Contributed by Mario Carneiro, 7-Dec-2014.)  (Revised by NM,
       17-Jun-2017.) $)
    mgmidmo $p |- E* u e. B A. x e. B ( ( u .+ x ) = x /\ ( x .+ u ) = x ) $=
      ( vw cv co wceq wa wral wrmo weq wcel ralimi oveq1 id rspcva oveq2 eqeq1d
      eqeq12d wi simpl simpr sylan9req an42s syl2ani anbi12d ralbidv rmo4 mpbir
      ex rgen2a ) BFZAFZDGZUNHZUNUMDGZUNHZIZACJZBCKUTEFZUNDGZUNHZUNVADGZUNHZIZA
      CJZIBELZUAZECJBCJVIBECUTUMCMZVACMZIZUPACJZVEACJZVHVGUSUPACUPURUBNVFVEACVC
      VEUCNVLVMVNIVHVJVNVKVMVHVJVNIVKVMIUMUMVADGZVAVEVOUMHAUMCABLZVDVOUNUMUNUMV
      ADOVPPTQUPVOVAHAVACAELZUOVOUNVAUNVAUMDRVQPTQUDUEUKUFULUTVGBECVHUSVFACVHUP
      VCURVEVHUOVBUNUMVAUNDOSVHUQVDUNUMVAUNDRSUGUHUIUJ $.
  $}

  ${
    $d e g x B $.  $d e g x G $.  $d g .+ $.
    grpidval.b $e |- B = ( Base ` G ) $.
    grpidval.p $e |- .+ = ( +g ` G ) $.
    grpidval.o $e |- .0. = ( 0g ` G ) $.
    $( The value of the identity element of a group.  (Contributed by NM,
       20-Aug-2011.)  (Revised by Mario Carneiro, 2-Oct-2015.) $)
    grpidval $p |- .0. =
     ( iota e ( e e. B /\ A. x e. B ( ( e .+ x ) = x /\ ( x .+ e ) = x ) ) ) $=
      ( vg c0g cfv cv wcel co wceq wa cbs cplusg c0 wral cio cvv syl6eqr eleq2d
      fveq2 oveqd eqeq1d anbi12d raleqbidv iotabidv df-0g iotaex fvmpt wn fvprc
      weu wex euex n0i syl5eq nsyl2 adantr exlimiv con3i iotanul eqtr4d pm2.61i
      syl eqtri ) FEKLZDMZBNZVLAMZCOZVNPZVNVLCOZVNPZQZABUAZQZDUBZIEUCNZVKWBPJEV
      LJMZRLZNZVLVNWDSLZOZVNPZVNVLWGOZVNPZQZAWEUAZQZDUBWBUCKWDEPZWNWADWOWFVMWMV
      TWOWEBVLWOWEERLZBWDERUFGUDZUEWOWLVSAWEBWQWOWIVPWKVRWOWHVOVNWOWGCVLVNWOWGE
      SLCWDESUFHUDZUGUHWOWJVQVNWOWGCVNVLWRUGUHUIUJUIUKADJULWADUMUNWCUOZVKTWBEKU
      PWSWADUQZUOWBTPWTWCWTWADURWCWADUSWAWCDVMWCVTVMBTPWCBVLUTWSBWPTGERUPVAVBVC
      VDVIVEWADVFVIVGVHVJ $.
  $}

  ${
    $d w x y z B $.  $d w x y z K $.  $d w x y z ph $.  $d w x y z L $.
    grpidpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    grpidpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    grpidpropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    $( If two structures have the same base set, and the values of their group
       (addition) operations are equal for all pairs of elements of the base
       set, they have the same identity element.  (Contributed by Mario
       Carneiro, 27-Nov-2014.) $)
    grpidpropd $p |- ( ph -> ( 0g ` K ) = ( 0g ` L ) ) $=
      ( vz vw cv cfv wcel co wceq wa wral anbi12d eqid cbs cplusg cio wb eqeq1d
      c0g oveqrspc2v ancom2s anassrs ralbidva pm5.32da raleqdv 3bitr3d iotabidv
      eleq2d grpidval 3eqtr4g ) ABLZEUAMZNZURCLZEUBMZOZVAPZVAURVBOZVAPZQZCUSRZQ
      ZBUCURFUAMZNZURVAFUBMZOZVAPZVAURVLOZVAPZQZCVJRZQZBUCEUFMZFUFMZAVIVSBAURDN
      ZVGCDRZQWBVQCDRZQVIVSAWBWCWDAWBQVGVQCDAWBVADNZVGVQUDAWBWEQQZVDVNVFVPWFVCV
      MVAIUEWFVEVOVAAWEWBVEVOPAJKDDVBVLVAURABCDDVBVLJLKLIUGUGUHUESUIUJUKAWBUTWC
      VHADUSURGUOAVGCDUSGULSAWBVKWDVRADVJURHUOAVQCDVJHULSUMUNCUSVBBEVTUSTVBTVTT
      UPCVJVLBFWAVJTVLTWATUPUQ $.
  $}

  ${
    $d e g x $.
    $( The group zero extractor is a function.  (Contributed by Stefan O'Rear,
       10-Jan-2015.) $)
    fn0g $p |- 0g Fn _V $=
      ( vg ve vx cvv cv cbs cfv wcel cplusg co wceq wa wral iotaex df-0g fnmpti
      cio c0g ) ADBEZAEZFGZHSCEZTIGZJUBKUBSUCJUBKLCUAMLZBQRUDBNCBAOP $.

    $( The identity element function evaluates to the empty set on an empty
       structure.  (Contributed by Stefan O'Rear, 2-Oct-2015.) $)
    0g0 $p |- (/) = ( 0g ` (/) ) $=
      ( ve vx c0 c0g cfv cv wcel cplusg co wceq wa wral cio base0 eqid grpidval
      weu wn wex noel intnanr nex euex mto iotanul ax-mp eqtr2i ) CDEZAFZCGZUIB
      FZCHEZIUKJUKUIULIUKJKBCLZKZAMZCBCULACUHNULOUHOPUNAQZRUOCJUPUNASUNAUJUMUIT
      UAUBUNAUCUDUNAUEUFUG $.
  $}

  ${
    $d e x .+ $.  $d e x .0. $.  $d e x B $.  $d e x G $.  $d x X $.
    $d e x U $.
    ismgmid.b $e |- B = ( Base ` G ) $.
    ismgmid.o $e |- .0. = ( 0g ` G ) $.
    ismgmid.p $e |- .+ = ( +g ` G ) $.
    ${
      mgmidcl.e $e |- ( ph ->
        E. e e. B A. x e. B ( ( e .+ x ) = x /\ ( x .+ e ) = x ) ) $.
      $( The identity element of a magma, if it exists, belongs to the base
         set.  (Contributed by Mario Carneiro, 27-Dec-2014.) $)
      ismgmid $p |- ( ph -> ( ( U e. B /\
        A. x e. B ( ( U .+ x ) = x /\ ( x .+ U ) = x ) ) <-> .0. = U ) ) $=
        ( wcel cv co wceq wa wral wb a1i crio wreu wrex wrmo mgmidmo reu5 oveq1
        id sylanbrc eqeq1d oveq2 anbi12d ralbidv syl2anr pm5.32da riotacl eleq1
        riota2 syl syl5ibcom pm4.71rd df-riota grpidval eqtr4i eqeq1i 3bitr2d
        cio ) AECMZEBNZDOZVIPZVIEDOZVIPZQZBCRZQVHFNZVIDOZVIPZVIVPDOZVIPZQZBCRZF
        CUAZEPZQWDHEPZAVHVOWDVHVHWBFCUBZVOWDSAVHUHAWBFCUCWBFCUDZWFLWGABFCDUETWB
        FCUFUIZWBVOFCEVPEPZWAVNBCWIVRVKVTVMWIVQVJVIVPEVIDUGUJWIVSVLVIVPEVIDUKUJ
        ULUMURUNUOAWDVHAWCCMZWDVHAWFWJWHWBFCUPUSWCECUQUTVAWDWESAWCHEWCVPCMWBQFV
        GHWBFCVBBCDFGHIKJVCVDVETVF $.

      $( The identity element of a magma, if it exists, belongs to the base
         set.  (Contributed by Mario Carneiro, 27-Dec-2014.) $)
      mgmidcl $p |- ( ph -> .0. e. B ) $=
        ( wcel cv co wceq wa wral eqid ismgmid mpbiri simpld ) AGCLZGBMZDNUCOUC
        GDNUCOPBCQZAUBUDPGGOGRABCDGEFGHIJKSTUA $.

      $( The identity element of a magma, if it exists, is a left and right
         identity.  (Contributed by Mario Carneiro, 27-Dec-2014.) $)
      mgmlrid $p |- ( ( ph /\ X e. B ) ->
        ( ( .0. .+ X ) = X /\ ( X .+ .0. ) = X ) ) $=
        ( cv co wceq wa wral wcel eqid eqeq12d ismgmid mpbiri simprd id anbi12d
        oveq2 oveq1 rspccva sylan ) AHBMZDNZUJOZUJHDNZUJOZPZBCQZGCRHGDNZGOZGHDN
        ZGOZPZAHCRZUPAVBUPPHHOHSABCDHEFHIJKLUAUBUCUOVABGCUJGOZULURUNUTVCUKUQUJG
        UJGHDUFVCUDZTVCUMUSUJGUJGHDUGVDTUEUHUI $.
    $}

    $d x ph $.
    ismgmid2.u $e |- ( ph -> U e. B ) $.
    ismgmid2.l $e |- ( ( ph /\ x e. B ) -> ( U .+ x ) = x ) $.
    ismgmid2.r $e |- ( ( ph /\ x e. B ) -> ( x .+ U ) = x ) $.
    $( Show that a given element is the identity element of a magma.
       (Contributed by Mario Carneiro, 27-Dec-2014.) $)
    ismgmid2 $p |- ( ph -> U = .0. ) $=
      ( ve wcel cv co wceq wa wral ralrimiva oveq1 eqeq1d oveq2 anbi12d ralbidv
      jca wrex rspcev syl2anc ismgmid mpbi2and eqcomd ) AGEAECOZEBPZDQZUORZUOED
      QZUORZSZBCTZGERKAUTBCAUOCOSUQUSLMUGUAZABCDENFGHIJAUNVANPZUODQZUORZUOVCDQZ
      UORZSZBCTZNCUHKVBVIVANECVCERZVHUTBCVJVEUQVGUSVJVDUPUOVCEUODUBUCVJVFURUOVC
      EUODUDUCUEUFUIUJUKULUM $.
  $}

  ${
    $d x G $.  $d x ph $.  $d x .0. $.
    grpidd.b $e |- ( ph -> B = ( Base ` G ) ) $.
    grpidd.p $e |- ( ph -> .+ = ( +g ` G ) ) $.
    grpidd.z $e |- ( ph -> .0. e. B ) $.
    grpidd.i $e |- ( ( ph /\ x e. B ) -> ( .0. .+ x ) = x ) $.
    grpidd.j $e |- ( ( ph /\ x e. B ) -> ( x .+ .0. ) = x ) $.
    $( Deduce the identity element of a magma from its properties.
       (Contributed by Mario Carneiro, 6-Jan-2015.) $)
    grpidd $p |- ( ph -> .0. = ( 0g ` G ) ) $=
      ( cbs cfv eqid wcel co wceq oveqd eqtr3d syldan cplusg c0g eleqtrd eleq2d
      cv biimpar wa adantr ismgmid2 ) ABELMZEUAMZFEEUBMZUJNULNUKNAFCUJIGUCABUEZ
      UJOZUMCOZFUMUKPZUMQAUOUNACUJUMGUDUFZAUOUGZFUMDPUPUMURDUKFUMADUKQUOHUHZRJS
      TAUNUOUMFUKPZUMQUQURUMFDPUTUMURDUKUMFUSRKSTUI $.
  $}

  ${
    $d x y z B $.  $d x y z G $.  $d x y z .+ $.  $d x V $.  $d x y z .0. $.
    mgmidsssn0.b $e |- B = ( Base ` G ) $.
    mgmidsssn0.z $e |- .0. = ( 0g ` G ) $.
    mgmidsssn0.p $e |- .+ = ( +g ` G ) $.
    mgmidsssn0.o $e |- O = { x e. B |
      A. y e. B ( ( x .+ y ) = y /\ ( y .+ x ) = y ) } $.
    $( Property of the set of identities of ` G ` .  Either ` G ` has no
       identities, and ` O = (/) ` , or it has one and this identity is unique
       and identified by the ` 0g ` function.  (Contributed by Mario Carneiro,
       7-Dec-2014.) $)
    mgmidsssn0 $p |- ( G e. V -> O C_ { .0. } ) $=
      ( vz wcel cv co wceq wa wral eqeq1d crab csn wss simpr wrex oveq1 anbi12d
      wi oveq2 ralbidv rspcev adantl ismgmid mpbid eqcomd sylibr expr ralrimiva
      velsn rabss syl5eqss ) EGNZFAOZBOZDPZVDQZVDVCDPZVDQZRZBCSZACUAZHUBZLVBVJV
      CVLNZUHZACSVKVLUCVBVNACVBVCCNZVJVMVBVOVJRZRZVCHQVMVQHVCVQVPHVCQVBVPUDVQBC
      DVCMEHIJKVPMOZVDDPZVDQZVDVRDPZVDQZRZBCSZMCUEVBWDVJMVCCVRVCQZWCVIBCWEVTVFW
      BVHWEVSVEVDVRVCVDDUFTWEWAVGVDVRVCVDDUITUGUJUKULUMUNUOAHUSUPUQURVJACVLUTUP
      VA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordered sums in a magma
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The symbol ` gsum ` is mostly used in the context of abelian groups.
  Therefore, it is called "group sum".  It can be defined, however, in
  arbitrary magmas.  If the magma is not required to be commutative or
  associative, then the order of the summands and the order in which summations
  are done become important.  If the magma is not unital, then one cannot
  define a meaningful empty sum.  See Remark 2. in the comment for ~ df-gsum .

$)

  ${
    $d g o w .0. $.  $d s t x y B $.  $d f g m n o w x y ph $.
    $d f g m n o w x y F $.  $d f g m n o w x y G $.  $d g o w y W $.
    $d g o s t w x y .+ $.  $d g o w A $.  $d f g m n o w x y O $.
    gsumval.b $e |- B = ( Base ` G ) $.
    gsumval.z $e |- .0. = ( 0g ` G ) $.
    gsumval.p $e |- .+ = ( +g ` G ) $.
    gsumval.o $e |- O = { s e. B |
      A. t e. B ( ( s .+ t ) = t /\ ( t .+ s ) = t ) } $.
    gsumval.w $e |- ( ph -> W = ( `' F " ( _V \ O ) ) ) $.
    gsumval.g $e |- ( ph -> G e. V ) $.
    ${
      gsumvalx.f $e |- ( ph -> F e. X ) $.
      gsumvalx.a $e |- ( ph -> dom F = A ) $.
      $( Expand out the substitutions in ~ df-gsum .  (Contributed by Mario
         Carneiro, 18-Sep-2015.) $)
      gsumvalx $p |- ( ph -> ( G gsum F ) = if ( ran F C_ O , .0. ,
        if ( A e. ran ... , ( iota x E. m E. n e. ( ZZ>= ` m )
          ( A = ( m ... n ) /\ x = ( seq m ( .+ , F ) ` n ) ) ) ,
        ( iota x E. f ( f : ( 1 ... ( # ` W ) ) -1-1-onto-> W /\
            x = ( seq 1 ( .+ , ( F o. f ) ) ` ( # ` W ) ) ) ) ) ) ) $=
        ( vw vg vo vy cvv cv cplusg cfv co wceq wa cbs wral crn wss c0g cdm cfz
        crab wcel cseq cuz wrex wex cio chash wf1o ccom ccnv cdif cima wsbc cif
        csb cgsu cmpt2 df-gsum a1i simprl fveq2d syl6eqr oveqd eqeq1d raleqbidv
        c1 anbi12d rabeqbidv weq oveq2 id eqeq12d oveq1 cbvralv ralbidv cbvrabv
        syl5bb eqtri csbeq1d fvex eqeltri rabex2 simplrr rneqd sseq12d ad2antrr
        simpr adantr dmeqd eqtrd eleq1d seqeq2d seqeq3d fveq1d rexbidv iotabidv
        eqeq2d exbidv difeq2d imaeq2d cnveqd imaeq1d 3eqtr4d cnvexg imaexg 3syl
        sbceq1d eqeltrd wb fveq2 adantl bitrd ifbieq12d elexd iotaex ifex syl
        oveq2d f1oeq2 f1oeq3 coeq1d fveq12d sbcied csbied ovmpt2d ) AUFUGKJUJUJ
        UHBUKZUIUKZUFUKZULUMZUNZUUKUOZUUKUUJUUMUNZUUKUOZUPZUIUULUQUMZURZBUUSVDZ
        UGUKZUSZUHUKZUTZUULVAUMZUVBVBZVCUSZVEZUVGHUKZIUKZVCUNZUOZUUJUVKUUMUVBUV
        JVFZUMZUOZUPZIUVJVGUMZVHZHVIZBVJZWJUUKVKUMZVCUNZUUKGUKZVLZUUJUWBUUMUVBU
        WDVMZWJVFZUMZUOZUPZUIUVBVNZUJUVDVOZVPZVQZGVIZBVJZVRZVRZVSZJUSZLUTZPDUVH
        VEZDUVLUOZUUJUVKFJUVJVFZUMZUOZUPZIUVRVHZHVIZBVJZWJNVKUMZVCUNZNUWDVLZUUJ
        UXKFJUWDVMZWJVFZUMZUOZUPZGVIZBVJZVRZVRZVTUJVTUFUGUJUJUWSWAUOABUIUFUGGHI
        UHWBWCAUULKUOZUVBJUOZUPZUPZUWSUHLUWRVSUYBUYFUHUVALUWRUYFUVAUUJUUKFUNZUU
        KUOZUUKUUJFUNZUUKUOZUPZUIEURZBEVDZLUYFUUTUYLBUUSEUYFUUSKUQUMZEUYFUULKUQ
        AUYCUYDWDZWERWFZUYFUURUYKUIUUSEUYPUYFUUOUYHUUQUYJUYFUUNUYGUUKUYFUUMFUUJ
        UUKUYFUUMKULUMFUYFUULKULUYOWETWFZWGWHUYFUUPUYIUUKUYFUUMFUUKUUJUYQWGWHWK
        WIWLLQUKZCUKZFUNZUYSUOZUYSUYRFUNZUYSUOZUPZCEURZQEVDUYMUAVUEUYLQBEVUEUYR
        UUKFUNZUUKUOZUUKUYRFUNZUUKUOZUPZUIEURQBWMZUYLVUDVUJCUIECUIWMZVUAVUGVUCV
        UIVULUYTVUFUYSUUKUYSUUKUYRFWNVULWOZWPVULVUBVUHUYSUUKUYSUUKUYRFWQVUMWPWK
        WRVUKVUJUYKUIEVUKVUGUYHVUIUYJVUKVUFUYGUUKUYRUUJUUKFWQWHVUKVUHUYIUUKUYRU
        UJUUKFWNWHWKWSXAWTXBWFXCUYFUHLUWRUYBUJLUJVEUYFVUEQELUAEUYNUJRKUQXDXEXFW
        CUYFUVDLUOZUPZUVEUXAUVFUWQPUYAVUOUVCUWTUVDLVUOUVBJAUYCUYDVUNXGZXHUYFVUN
        XKZXIVUOUVFKVAUMZPVUOUULKVAUYFUYCVUNUYOXLWESWFVUOUVIUXBUWAUWPUXJUXTVUOU
        VGDUVHVUOUVGJVBZDVUOUVBJVUPXMAVUSDUOUYEVUNUEXJXNZXOVUOUVTUXIBVUOUVSUXHH
        VUOUVQUXGIUVRVUOUVMUXCUVPUXFVUOUVGDUVLVUTWHVUOUVOUXEUUJVUOUVKUVNUXDVUOU
        VNFUVBUVJVFUXDVUOUUMFUVBUVJUYFUUMFUOVUNUYQXLZXPVUOUVBJFUVJVUPXQXNXRYAWK
        XSYBXTVUOUWOUXSBVUOUWNUXRGVUOUWNUWJUINVQUXRVUOUWJUIUWMNVUOJVNZUWLVPVVBU
        JLVOZVPZUWMNVUOUWLVVCVVBVUOUVDLUJVUQYCYDVUOUWKVVBUWLVUOUVBJVUPYEYFANVVD
        UOUYEVUNUBXJYGYKVUOUWJUXRUINUJANUJVEUYEVUNANVVDUJUBAJOVEVVBUJVEVVDUJVEU
        DJOYHVVBVVCUJYIYJYLXJVUOUUKNUOZUPZUWEUXMUWIUXQVVFUWEUXLUUKUWDVLZUXMVVFU
        WCUXLUOUWEVVGYMVVFUWBUXKWJVCVVEUWBUXKUOVUOUUKNVKYNYOZUUBUWCUXLUUKUWDUUC
        UUAVVEVVGUXMYMVUOUUKNUXLUWDUUDYOYPVVFUWHUXPUUJVVFUWBUXKUWGUXOVUOUWGUXOU
        OVVEVUOUWGFUWFWJVFUXOVUOUUMFUWFWJVVAXPVUOUWFUXNFWJVUOUVBJUWDVUPUUEXQXNX
        LVVHUUFYAWKUUGYPYBXTYQYQUUHXNAKMUCYRAJOUDYRUYBUJVEAUXAPUYAPVURUJSKVAXDX
        EUXBUXJUXTUXIBYSUXSBYSYTYTWCUUI $.
    $}

    gsumval.a $e |- ( ph -> A e. X ) $.
    gsumval.f $e |- ( ph -> F : A --> B ) $.
    $( Expand out the substitutions in ~ df-gsum .  (Contributed by Mario
       Carneiro, 7-Dec-2014.) $)
    gsumval $p |- ( ph -> ( G gsum F ) = if ( ran F C_ O , .0. ,
      if ( A e. ran ... , ( iota x E. m E. n e. ( ZZ>= ` m )
        ( A = ( m ... n ) /\ x = ( seq m ( .+ , F ) ` n ) ) ) ,
      ( iota x E. f ( f : ( 1 ... ( # ` W ) ) -1-1-onto-> W /\
          x = ( seq 1 ( .+ , ( F o. f ) ) ` ( # ` W ) ) ) ) ) ) ) $=
      ( cvv wf wcel cbs cfv fvex eqeltri a1i fex2 syl3anc cdm wceq fdm gsumvalx
      syl ) ABCDEFGHIJKLMNUFPQRSTUAUBUCADEJUGZDOUHEUFUHZJUFUHUEUDVBAEKUIUJUFRKU
      IUKULUMDEJOUFUNUOAVAJUPDUQUEDEJURUTUS $.
  $}

  ${
    $d a b f m n s t x G $.  $d a b f m n s t x H $.  $d a b f m n s t x ph $.
    $d f m n x F $.
    gsumpropd.f $e |- ( ph -> F e. V ) $.
    gsumpropd.g $e |- ( ph -> G e. W ) $.
    gsumpropd.h $e |- ( ph -> H e. X ) $.
    gsumpropd.b $e |- ( ph -> ( Base ` G ) = ( Base ` H ) ) $.
    gsumpropd.p $e |- ( ph -> ( +g ` G ) = ( +g ` H ) ) $.
    $( The group sum depends only on the base set and additive operation.  Note
       that for entirely unrestricted functions, there can be dependency on
       out-of-domain values of the operation, so this is somewhat weaker than
       ~ mndpropd etc.  (Contributed by Stefan O'Rear, 1-Feb-2015.)  (Proof
       shortened by Mario Carneiro, 18-Sep-2015.) $)
    gsumpropd $p |- ( ph -> ( G gsum F ) = ( H gsum F ) ) $=
      ( vs vx cv cfv co wceq wa eqid vt vm vn vf va vb crn cplusg cbs wral crab
      wss c0g cdm cfz wcel cseq cuz wrex wex cio ccnv cdif cima chash wf1o ccom
      cvv cif cgsu oveqd eqeq1d anbi12d raleqbidv rabeqbidv sseq2d eqidd oveqdr
      c1 grpidpropd seqeq2d fveq1d eqeq2d anbi2d rexbidv exbidv difeq2d imaeq2d
      iotabidv fveq2d oveq2d f1oeq2 syl f1oeq3 bitrd fveq12d ifbieq12d gsumvalx
      wb ifeq12d 3eqtr4d ) ABUGZMOZUAOZCUHPZQZXDRZXDXCXEQZXDRZSZUACUIPZUJZMXKUK
      ZULZCUMPZBUNZUOUGUPZXPUBOZUCOZUOQRZNOZXSXEBXRUQZPZRZSZUCXRURPZUSZUBUTZNVA
      ZVSBVBZVHXMVCZVDZVEPZUOQZYLUDOZVFZYAYMXEBYOVGZVSUQZPZRZSZUDUTZNVAZVIZVIXB
      XCXDDUHPZQZXDRZXDXCUUEQZXDRZSZUADUIPZUJZMUUKUKZULZDUMPZXQXTYAXSUUEBXRUQZP
      ZRZSZUCYFUSZUBUTZNVAZVSYJVHUUMVCZVDZVEPZUOQZUVDYOVFZYAUVEUUEYQVSUQZPZRZSZ
      UDUTZNVAZVIZVICBVJQDBVJQAXNUUNXOUUDUUOUVNAXMUUMXBAXLUULMXKUUKKAXJUUJUAXKU
      UKKAXGUUGXIUUIAXFUUFXDAXEUUEXCXDLVKVLAXHUUHXDAXEUUEXDXCLVKVLVMVNVOZVPAUEU
      FXKCDAXKVQKAUEOXKUPUFOXKUPSUEUFXEUUELVRVTAXQYIUVBUUCUVMAYHUVANAYGUUTUBAYE
      UUSUCYFAYDUURXTAYCUUQYAAXSYBUUPAXEUUEBXRLWAWBWCWDWEWFWIAUUBUVLNAUUAUVKUDA
      YPUVGYTUVJAYPUVFYLYOVFZUVGAYNUVFRYPUVPWSAYMUVEVSUOAYLUVDVEAYKUVCYJAXMUUMV
      HUVOWGWHZWJZWKYNUVFYLYOWLWMAYLUVDRUVPUVGWSUVQYLUVDUVFYOWNWMWOAYSUVIYAAYMU
      VEYRUVHAXEUUEYQVSLWAUVRWPWCVMWFWIWTWQANUAXPXKXEUDUBUCBCXMFYLEXOMXKTXOTXET
      XMTAYLVQIHAXPVQZWRANUAXPUUKUUEUDUBUCBDUUMGUVDEUUOMUUKTUUOTUUETUUMTAUVDVQJ
      HUVSWRXA $.
  $}

  ${
    $d a b A $.  $d a b B $.  $d a b f m n s t x F $.  $d a b f m n s t x G $.
    $d a b f m n s t x H $.  $d a b f m n s t x ph $.
    gsumpropd2.f $e |- ( ph -> F e. V ) $.
    gsumpropd2.g $e |- ( ph -> G e. W ) $.
    gsumpropd2.h $e |- ( ph -> H e. X ) $.
    gsumpropd2.b $e |- ( ph -> ( Base ` G ) = ( Base ` H ) ) $.
    gsumpropd2.c $e |- ( ( ph /\ ( s e. ( Base ` G ) /\ t e. ( Base ` G ) ) )
                                -> ( s ( +g ` G ) t ) e. ( Base ` G ) ) $.
    gsumpropd2.e $e |- ( ( ph /\ ( s e. ( Base ` G ) /\ t e. ( Base ` G ) ) )
                                -> ( s ( +g ` G ) t ) = ( s ( +g ` H ) t ) ) $.
    gsumpropd2.n $e |- ( ph -> Fun F ) $.
    gsumpropd2.r $e |- ( ph -> ran F C_ ( Base ` G ) ) $.
    ${
      gsumprop2dlem.1 $e |- A = ( `' F " ( _V \ { s e. ( Base ` G ) | A. t e. (
       Base ` G ) ( ( s ( +g ` G ) t ) = t /\ ( t ( +g ` G ) s ) = t ) } ) ) $.
      gsumprop2dlem.2 $e |- B = ( `' F " ( _V \ { s e. ( Base ` H ) | A. t e. (
       Base ` H ) ( ( s ( +g ` H ) t ) = t /\ ( t ( +g ` H ) s ) = t ) } ) ) $.
      $( Lemma for ~ gsumpropd2 .  (Contributed by Thierry Arnoux,
         28-Jun-2017.) $)
      gsumpropd2lem $p |- ( ph -> ( G gsum F ) = ( H gsum F ) ) $=
        ( vm vn vx vf va vb crn cv cplusg cfv co wceq cbs wral crab wss c0g cdm
        wa cfz wcel cseq cuz wrex wex cio c1 chash wf1o ccom cif cgsu adantr wb
        eqeq1d oveqrspc2v ancom2s raleqbidva rabeqbidva sseq2d eqidd grpidpropd
        anbi12d anassrs simprl ad2antrr simplrr eleqtrrd fvelrn syl2anc adantlr
        wfun simpr sseldd seqfeq4 eqeq2d pm5.32da rexbidva exbidv iotabidv ccnv
        cvv cdif difeq2d imaeq2d 3eqtr4g fveq2d ad3antrrr f1ofun ad3antlr f1odm
        cima oveq2d eqtrd difpreima syl syl5eq difss syl6eqss dfdm4 dfrn4 eqtri
        fvco syl6sseqr sylan wn c0 wfn 1z seqfn fndm eleq2i sylnibr ndmfv bitrd
        mp2b eqid a1i gsumvalx wf f1of ffvelrnd eqeltrd simpll eqtr4d pm2.61dan
        caovclg cz f1oeq2 f1oeq3 anbi1d ifeq12d ifbieq12d 3eqtr4d ) AEUHZKUIZBU
        IZFUJUKZULZUURUMZUURUUQUUSULZUURUMZUTZBFUNUKZUOZKUVEUPZUQZFURUKZEUSZVAU
        HVBZUVJUBUIZUCUIZVAULZUMZUDUIZUVMUUSEUVLVCUKZUMZUTZUCUVLVDUKZVEZUBVFZUD
        VGZVHCVIUKZVAULZCUEUIZVJZUVPUWDUUSEUWFVKZVHVCZUKZUMZUTZUEVFZUDVGZVLZVLU
        UPUUQUURGUJUKZULZUURUMZUURUUQUWPULZUURUMZUTZBGUNUKZUOZKUXBUPZUQZGURUKZU
        VKUVOUVPUVMUWPEUVLVCUKZUMZUTZUCUVTVEZUBVFZUDVGZVHDVIUKZVAULZDUWFVJZUVPU
        XMUWPUWHVHVCZUKZUMZUTZUEVFZUDVGZVLZVLFEVMULGEVMULAUVHUXEUVIUWOUXFUYBAUV
        GUXDUUPAUVFUXCKUVEUXBOAUUQUVEVBZUTUVDUXABUVEUXBAUVEUXBUMUYCOVNAUYCUURUV
        EVBZUVDUXAVOAUYCUYDUTZUTZUVAUWRUVCUWTUYFUUTUWQUURQVPUYFUVBUWSUURAUYDUYC
        UVBUWSUMAUFUGUVEUVEUUSUWPUURUUQAKBUVEUVEUUSUWPUFUIZUGUIZQVQZVQVRVPWDWEV
        SVTZWAAKBUVEFGAUVEWBOQWCAUVKUWCUXLUWNUYAAUWBUXKUDAUWAUXJUBAUVSUXIUCUVTA
        UVMUVTVBZUTUVOUVRUXHAUYKUVOUVRUXHVOAUYKUVOUTZUTZUVQUXGUVPUYMKBUUSUWPUVE
        EUVLUVMAUYKUVOWFUYMUUQUVNVBZUTZUUPUVEUUQEUKZAUUPUVEUQZUYLUYNSWGUYOEWMZU
        UQUVJVBUYPUUPVBAUYRUYLUYNRWGUYOUUQUVNUVJUYMUYNWNAUYKUVOUYNWHWIUUQEWJWKW
        OAUYEUUTUVEVBUYLPWLAUYEUUTUWQUMUYLQWLWPWQWEWRWSWTXAAUWMUXTUDAUWLUXSUEAU
        WLUWGUXRUTUXSAUWGUWKUXRAUWGUTZUWJUXQUVPUYSUWJUXMUWIUKZUXQAUWJUYTUMUWGAU
        WDUXMUWIACDVIAEXBZXCUVGXDZXMZVUAXCUXDXDZXMZCDAVUBVUDVUAAUVGUXDXCUYJXEXF
        TUAXGZXHZXHVNUYSUXMVHVDUKZVBZUYTUXQUMZUYSVUIUTZUFUGUUSUWPUVEUWHVHUXMUYS
        VUIWNVUKUYGUXNVBZUTZUUPUVEUYGUWHUKZAUYQUWGVUIVULSXIVUMVUNUYGUWFUKZEUKZU
        UPVUMUWFWMZUYGUWFUSZVBVUNVUPUMUWGVUQAVUIVULUWECUWFXJXKVUMUYGUXNVURVUKVU
        LWNZVUMVURUWEUXNUWGVURUWEUMAVUIVULUWECUWFXLXKAUWEUXNUMZUWGVUIVULAUWDUXM
        VHVAVUGXNZXIZXOWIUYGEUWFYDWKVUMUYRVUOUVJVBVUPUUPVBAUYRUWGVUIVULRXIVUMCU
        VJVUOACUVJUQUWGVUIVULACVUAXCXMZUVJACVVCVUAUVGXMZXDZVVCACVUCVVETAUYRVUCV
        VEUMRXCUVGEXPXQXRVVCVVDXSXTUVJVUAUHVVCEYAVUAYBYCYEXIVUMUWECUYGUWFUWGUWE
        CUWFUUAAVUIVULUWECUWFUUBXKVUMUYGUXNUWEVUSVVBWIUUCWOVUOEWJWKUUDWOVUKAUYG
        UVEVBUYHUVEVBUTZUYGUYHUUSULZUVEVBAUWGVUIUUEZAKBUYGUYHUVEUVEUVEUUSPUUHYF
        VUKAVVFVVGUYGUYHUWPULUMVVHUYIYFWPAVUIYGZVUJUWGAVVIUTZUYTYHUXQVVJUXMUWIU
        SZVBZYGUYTYHUMVVJVUIVVLAVVIWNZVVKVUHUXMVHUUIVBZUWIVUHYIVVKVUHUMYJUUSUWH
        VHYKVUHUWIYLYQYMYNUXMUWIYOXQVVJUXMUXPUSZVBZYGUXQYHUMVVJVUIVVPVVMVVOVUHU
        XMVVNUXPVUHYIVVOVUHUMYJUWPUWHVHYKVUHUXPYLYQYMYNUXMUXPYOXQUUFWLUUGXOWQWR
        AUWGUXOUXRAUWGUXNCUWFVJZUXOAVUTUWGVVQVOVVAUWEUXNCUWFUUJXQACDUMVVQUXOVOV
        UFCDUXNUWFUUKXQYPUULYPWTXAUUMUUNAUDBUVJUVEUUSUEUBUCEFUVGICHUVIKUVEYRUVI
        YRUUSYRUVGYRCVUCUMATYSMLAUVJWBZYTAUDBUVJUXBUWPUEUBUCEGUXDJDHUXFKUXBYRUX
        FYRUWPYRUXDYRDVUEUMAUAYSNLVVRYTUUO $.
    $}

    $( A stronger version of ~ gsumpropd , working for magma, where only the
       closure of the addition operation on a common base is required, see
       ~ gsummgmpropd .  (Contributed by Thierry Arnoux, 28-Jun-2017.) $)
    gsumpropd2 $p |- ( ph -> ( G gsum F ) = ( H gsum F ) ) $=
      ( cfv co wceq ccnv cvv cv cplusg wa cbs wral crab cdif cima gsumpropd2lem
      eqid ) ABCUAZUBIUCZBUCZDUDRZSUOTUOUNUPSUOTUEBDUFRZUGIUQUHUIUJZUMUBUNUOEUD
      RZSUOTUOUNUSSUOTUEBEUFRZUGIUTUHUIUJZCDEFGHIJKLMNOPQURULVAULUK $.
  $}

  ${
    $d F s t $.  $d G s t $.  $d H s t $.  $d ph s t $.
    gsummgmpropd.f $e |- ( ph -> F e. V ) $.
    gsummgmpropd.g $e |- ( ph -> G e. W ) $.
    gsummgmpropd.h $e |- ( ph -> H e. X ) $.
    gsummgmpropd.b $e |- ( ph -> ( Base ` G ) = ( Base ` H ) ) $.
    gsummgmpropd.m $e |- ( ph -> G e. Mgm ) $.
    gsummgmpropd.e $e |- ( ( ph /\ ( s e. ( Base ` G ) /\ t e. ( Base ` G ) ) )
                                -> ( s ( +g ` G ) t ) = ( s ( +g ` H ) t ) ) $.
    gsummgmpropd.n $e |- ( ph -> Fun F ) $.
    gsummgmpropd.r $e |- ( ph -> ran F C_ ( Base ` G ) ) $.
    $( A stronger version of ~ gsumpropd if at least one of the involved
       structures is a magma, see ~ gsumpropd2 .  (Contributed by AV,
       31-Jan-2020.) $)
    gsummgmpropd $p |- ( ph -> ( G gsum F ) = ( H gsum F ) ) $=
      ( cv cfv wcel cbs wa cplusg co cmgm eqid mgmcl 3expib syl imp gsumpropd2
      wi ) ABCDEFGHIJKLMAIRZDUASZTZBRZUNTZUBZUMUPDUCSZUDUNTZADUETZURUTULNVAUOUQ
      UTUNDUMUPUSUNUFUSUFUGUHUIUJOPQUK $.
  $}

  ${
    $d f m n x y z B $.  $d f m n x y z G $.  $d f m n x y z ph $.  $d x y S $.
    $d f m n z F $.  $d f m n x y z H $.  $d f m n x y z .+ $.  $d x y .0. $.
    $d y V $.
    gsumress.b $e |- B = ( Base ` G ) $.
    gsumress.o $e |- .+ = ( +g ` G ) $.
    gsumress.h $e |- H = ( G |`s S ) $.
    gsumress.g $e |- ( ph -> G e. V ) $.
    gsumress.a $e |- ( ph -> A e. X ) $.
    gsumress.s $e |- ( ph -> S C_ B ) $.
    gsumress.f $e |- ( ph -> F : A --> S ) $.
    gsumress.z $e |- ( ph -> .0. e. S ) $.
    gsumress.c $e |- ( ( ph /\ x e. B ) ->
      ( ( .0. .+ x ) = x /\ ( x .+ .0. ) = x ) ) $.
    $( The group sum in a substructure is the same as the group sum in the
       original structure.  The only requirement on the substructure is that it
       contain the identity element; neither ` G ` nor ` H ` need be groups.
       (Contributed by Mario Carneiro, 19-Dec-2014.)  (Revised by Mario
       Carneiro, 30-Apr-2015.) $)
    gsumress $p |- ( ph -> ( G gsum F ) = ( H gsum F ) ) $=
      ( vy vm vn vz vf crn cv wceq wral crab wss c0g cfv cfz wcel cseq cuz wrex
      co wa wex cio c1 ccnv cvv csn cdif cima chash wf1o ccom cif cplusg sseldd
      cbs cgsu ralrimiva oveq1 eqeq1d oveq2 anbi12d ralbidv elrab sylanbrc eqid
      snssd mgmidsssn0 syl elsni sneqd sseqtr4d sselda syldan ressbas2 syl6eqel
      eqssd fvex ressplusg oveqd raleqbidv rabeqbidv eleqtrd cress ovex eqeltri
      a1i eqtr3d sseq2d seqeq2d fveq1d eqeq2d anbi2d rexbidv iotabidv ifbieq12d
      exbidv ifeq12d difeq2d imaeq2d fssd gsumval wf feq3d mpbid 3eqtr4d ) AGUG
      ZUBUHZBUHZEUTZYIUIZYIYHEUTZYIUIZVAZBDUJZUBDUKZULZHUMUNZCUOUGUPZCUCUHZUDUH
      ZUOUTUIZUEUHZUUAEGYTUQZUNZUIZVAZUDYTURUNZUSZUCVBZUEVCZVDGVEZVFLVGZVHZVIZV
      JUNZUOUTUUOUFUHZVKZUUCUUPEGUUQVLZVDUQZUNZUIZVAZUFVBZUEVCZVMZVMYGYHYIIVNUN
      ZUTZYIUIZYIYHUVGUTZYIUIZVAZBIVPUNZUJZUBUVMUKZULZIUMUNZYSUUBUUCUUAUVGGYTUQ
      ZUNZUIZVAZUDUUHUSZUCVBZUEVCZUURUUCUUPUVGUUSVDUQZUNZUIZVAZUFVBZUEVCZVMZVMH
      GVQUTIGVQUTAYQUVPYRUVFUVQUWKAYPUVOYGAUUMYPUVOAUUMYPALYPALDUPLYIEUTZYIUIZY
      ILEUTZYIUIZVAZBDUJZLYPUPAFDLRTVOAUWPBDUAVRYOUWQUBLDYHLUIZYNUWPBDUWRYKUWMY
      MUWOUWRYJUWLYIYHLYIEVSVTUWRYLUWNYIYHLYIEWAVTWBZWCWDWEZWGAYPYRVGZUUMAHJUPY
      PUXAULPUBBDEHYPJYRMYRWFZNYPWFZWHWIZALYRALUXAUPLYRUIAYPUXALUXDUWTVOLYRWJWI
      ZWKWLWQZAUUMUVOALUVOALYNBFUJZUBFUKZUVOALFUPUWPBFUJZLUXHUPTAUWPBFAYIFUPYID
      UPUWPAFDYIRWMUAWNVRUXGUXIUBLFUWRYNUWPBFUWSWCWDWEAUXGUVNUBFUVMAFDULFUVMUIR
      FDIHOMWOWIZAYNUVLBFUVMUXJAYKUVIYMUVKAYJUVHYIAEUVGYHYIAFVFUPEUVGUIAFUVMVFU
      XJIVPWRWPFEHIVFONWSWIZWTVTAYLUVJYIAEUVGYIYHUXKWTVTWBXAXBXCZWGAUVOUVQVGZUU
      MAIVFUPZUVOUXMULUXNAIHFXDUTVFOHFXDXEXFXGZUBBUVMUVGIUVOVFUVQUVMWFZUVQWFZUV
      GWFZUVOWFZWHWIZALUVQALUXMUPLUVQUIAUVOUXMLUXTUXLVOLUVQWJWIZWKWLWQZXHXIALYR
      UVQUXEUYAXHAYSUUKUWDUVEUWJAUUJUWCUEAUUIUWBUCAUUGUWAUDUUHAUUFUVTUUBAUUEUVS
      UUCAUUAUUDUVRAEUVGGYTUXKXJXKXLXMXNXQXOAUVDUWIUEAUVCUWHUFAUVBUWGUURAUVAUWF
      UUCAUUPUUTUWEAEUVGUUSVDUXKXJXKXLXMXQXOXRXPAUEBCDEUFUCUDGHYPJUUOKYRUBMUXBN
      UXCAUUNVFYPVHUULAUUMYPVFUXFXSXTPQACFDGSRYAYBAUEBCUVMUVGUFUCUDGIUVOVFUUOKU
      VQUBUXPUXQUXRUXSAUUNVFUVOVHUULAUUMUVOVFUYBXSXTUXOQACFGYCCUVMGYCSAFUVMGCUX
      JYDYEYBYF $.
  $}

  ${
    $d f m n z F $.  $d f m n z G $.  $d f m n z O $.  $d f m n z ph $.
    $d x y z B $.  $d x y z .+ $.
    gsumval1.b $e |- B = ( Base ` G ) $.
    gsumval1.z $e |- .0. = ( 0g ` G ) $.
    gsumval1.p $e |- .+ = ( +g ` G ) $.
    gsumval1.o $e |- O = { x e. B |
      A. y e. B ( ( x .+ y ) = y /\ ( y .+ x ) = y ) } $.
    gsumval1.g $e |- ( ph -> G e. V ) $.
    gsumval1.a $e |- ( ph -> A e. W ) $.
    gsumval1.f $e |- ( ph -> F : A --> O ) $.
    $( Value of the group sum operation when every element being summed is an
       identity of ` G ` .  (Contributed by Mario Carneiro, 7-Dec-2014.) $)
    gsumval1 $p |- ( ph -> ( G gsum F ) = .0. ) $=
      ( cv vm vn vz vf cgsu co crn wss cfz wcel wceq cseq cfv wa cuz wex cio c1
      wrex ccnv cvv cdif cima chash wf1o ccom eqidd wf wral crab ssrab2 eqsstri
      cif fss sylancl gsumval frn iftrue 3syl eqtrd ) AHGUEUFGUGIUHZLDUIUGUJDUA
      TZUBTZUIUFUKUCTZWCFGWBULUMUKUNUBWBUOUMUSUAUPUCUQURGUTVAIVBVCZVDUMZUIUFWEU
      DTZVEWDWFFGWGVFURULUMUKUNUDUPUCUQVMZVMZLAUCCDEFUDUAUBGHIJWEKLBMNOPAWEVGQR
      ADIGVHZIEUHDEGVHSIBTZCTZFUFWLUKWLWKFUFWLUKUNCEVIZBEVJEPWMBEVKVLDIEGVNVOVP
      AWJWAWILUKSDIGVQWALWHVRVSVT $.
  $}

  ${
    $d f g m n o w x y $.  $d x y G $.  $d x y .0. $.
    gsum0.z $e |- .0. = ( 0g ` G ) $.
    $( Value of the empty group sum.  (Contributed by Mario Carneiro,
       7-Dec-2014.) $)
    gsum0 $p |- ( G gsum (/) ) = .0. $=
      ( vx vy vw vf vo vm vn vg cvv wcel c0 cgsu co wceq cfv cv wa wral crab id
      cbs cplusg eqid 0ex a1i wf gsumval1 crn wss c0g cdm cfz cseq cuz wrex wex
      f0 wn cio c1 chash wf1o ccom ccnv cdif cima wsbc cif csb reldmmpt2 ovprc1
      df-gsum fvprc syl5eq eqtr4d pm2.61i ) ALMZANOPZBQVTDENAUDRZAUERZNADSZESZW
      CPWEQWEWDWCPWEQTEWBUADWBUBZLLBWBUFCWCUFWFUFVTUCNLMVTUGUHNWFNUIVTWFUTUHUJV
      TVAZWANBANOFGLLHWDWEFSZUERZPWEQWEWDWIPWEQTEWHUDRZUADWJUBGSZUKHSZULWHUMRWK
      UNZUOUKMWMISZJSZUOPQWDWOWIWKWNUPRQTJWNUQRURIUSDVBVCWEVDRZUOPWEKSZVEWDWPWI
      WKWQVFVCUPRQTEWKVGLWLVHVIVJKUSDVBVKVKVLODEFGKIJHVOVMVNWGBAUMRNCAUMVPVQVRV
      S $.
  $}

  ${
    $d x y z B $.  $d f m n x y z G $.  $d m n z M $.  $d m n z N $.  $d x V $.
    $d f m n z F $.  $d f m n z O $.  $d m n x y z .+ $.  $d f m n z ph $.
    gsumval2.b $e |- B = ( Base ` G ) $.
    gsumval2.p $e |- .+ = ( +g ` G ) $.
    gsumval2.g $e |- ( ph -> G e. V ) $.
    gsumval2.n $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    gsumval2.f $e |- ( ph -> F : ( M ... N ) --> B ) $.
    ${
      gsumval2a.o $e |- O = { x e. B |
        A. y e. B ( ( x .+ y ) = y /\ ( y .+ x ) = y ) } $.
      gsumval2a.f $e |- ( ph -> -. ran F C_ O ) $.
      $( Value of the group sum operation over a finite set of sequential
         integers.  (Contributed by Mario Carneiro, 7-Dec-2014.) $)
      gsumval2a $p |- ( ph -> ( G gsum F ) = ( seq M ( .+ , F ) ` N ) ) $=
        ( cfz wceq vm vn vz vf cgsu co cv cseq cfv cuz wrex wex cio crn wss c0g
        wa wcel ccnv cvv cdif cima chash wf1o ccom cif eqid eqidd ovexd gsumval
        c1 iffalsed cz eluzel2 syl eluzelz cxp wfn cpw wf fzf ffn fnovrn mp3an1
        ax-mp syl2anc iftrued eqtrd fvex wb fzopth simpl seqeq1d fveq12d eqcomd
        wi simpr eqeq1 syl5ibrcom syl6bi impd rexlimdvw exlimdv oveq2 biantrurd
        adantr fveq2 eqeq2d bitr3d rspcev sylan seqeq1 fveq1d anbi12d rexeqbidv
        oveq1 spcegv sylc ex impbid iota5 mpan2 ) AGFUEUFZHISUFZUAUGZUBUGZSUFZT
        ZUCUGZYFEFYEUHZUIZTZUQZUBYEUJUIZUKZUAULZUCUMZIEFHUHZUIZAYCFUNJUOZGUPUIZ
        YDSUNURZYQVKFUSUTJVAVBZVCUIZSUFUUCUDUGZVDYIUUDEFUUEVEVKUHUITUQUDULUCUMZ
        VFZVFZYQAUCCYDDEUDUAUBFGJKUUCUTUUABLUUAVGMQAUUCVHNAHISVIPVJAUUHUUGYQAYT
        UUAUUGRVLAUUBYQUUFAHVMURZIVMURZUUBAIHUJUIZURZUUIOHIVNVOZAUULUUJOHIVPVOS
        VMVMVQZVRZUUIUUJUUBUUNVMVSZSVTUUOWAUUNUUPSWBWEVMVMHISWCWDWFWGWHWHAYSUTU
        RZYQYSTIYRWIAYPUCYSUTAYPYIYSTZWJUUQAYPUURAYOUURUAAYMUURUBYNAYHYLUURAYHH
        YETZIYFTZUQZYLUURWPAUULYHUVAWJOYEYFHIWKVOUVAUURYLYKYSTUVAYSYKUVAIYFYRYJ
        UVAHYEEFUUSUUTWLWMUUSUUTWQWNWOYIYKYSWRWSWTXAXBXCAUURYPAUURUQUUIYDHYFSUF
        ZTZYIYFYRUIZTZUQZUBUUKUKZYPAUUIUURUUMXFAUULUURUVGOUVFUURUBIUUKYFITZUVEU
        VFUURUVHUVCUVEUVHUVBYDYFIHSXDWOXEUVHUVDYSYIYFIYRXGXHXIXJXKYOUVGUAHVMYEH
        TZYMUVFUBYNUUKYEHUJXGUVIYHUVCYLUVEUVIYGUVBYDYEHYFSXPXHUVIYKUVDYIUVIYFYJ
        YREFYEHXLXMXHXNXOXQXRXSXTXFYAYBWH $.
    $}

    $( Value of the group sum operation over a finite set of sequential
       integers.  (Contributed by Mario Carneiro, 7-Dec-2014.) $)
    gsumval2 $p |- ( ph -> ( G gsum F ) = ( seq M ( .+ , F ) ` N ) ) $=
      ( vx vy co wceq wcel adantr c0 vz crn wral crab wss cgsu cseq cfv c0g cfz
      cv wa cvv eqid ovexd wfn wf ffn syl simpr df-f sylanbrc gsumval1 wi simpl
      ralimi a1i ss2rabi csn fvex snid wn wne cdm fdm eluzfz1 ne0i 3syl eqnetrd
      cuz dm0rn0 necon3bii sylib ssn0 syl2anc neneqd wo mgmidsssn0 sssn orcanai
      syldan syl5eleqr sseldi oveq1 eqeq1d ralbidv elrab oveq2 id eqeq12d sylbi
      rspcva ad2antrr ffvelrnda sseldd elsni seqid3 eqtr4d gsumval2a pm2.61dan
      ) ADUBZNUKZOUKZCPZXMQZXMXLCPXMQZULZOBUCZNBUDZUEZEDUFPZGCDFUGUHZQAXTULZYAE
      UIUHZYBYCNOFGUJPZBCDEXSHUMYDIYDUNZJXSUNZAEHRZXTKSYCFGUJUOYCDYEUPZXTYEXSDU
      QAYIXTAYEBDUQZYIMYEBDURUSSAXTUTZYEXSDVAVBZVCYCUACDFGYDYCYDXOOBUCZNBUDZRZY
      DYDCPZYDQZYCXSYNYDXRYMNBXRYMVDXLBRXQXOOBXOXPVEVFVGVHYCYDYDVIZXSYDEUIVJVKA
      XTXSTQZVLXSYRQZYCXSTYCXTXKTVMZXSTVMYKAUUAXTADVNZTVMUUAAUUBYETAYJUUBYEQMYE
      BDVOUSAGFVTUHRZFYERYETVMLFGVPYEFVQVRVSUUBTXKTDWAWBWCSXKXSWDWEWFAYSYTAXSYR
      UEZYSYTWGAYHUUDKNOBCEXSHYDIYFJYGWHUSZXSYDWIWCWJWKWLWMYOYDBRYDXMCPZXMQZOBU
      CZULYQYMUUHNYDBXLYDQZXOUUGOBUUIXNUUFXMXLYDXMCWNWOWPWQUUGYQOYDBXMYDQZUUFYP
      XMYDXMYDYDCWRUUJWSWTXBXAUSAUUCXTLSYCUAUKZYERZULZUUKDUHZYRRUUNYDQUUMXSYRUU
      NAUUDXTUULUUEXCYCYEXSUUKDYLXDXEUUNYDXFUSXGXHAXTVLZULNOBCDEFGXSHIJAYHUUOKS
      AUUCUUOLSAYJUUOMSYGAUUOUTXIXJ $.
  $}

  ${
    gsumprval.b $e |- B = ( Base ` G ) $.
    gsumprval.p $e |- .+ = ( +g ` G ) $.
    gsumprval.g $e |- ( ph -> G e. V ) $.
    gsumprval.m $e |- ( ph -> M e. ZZ ) $.
    gsumprval.n $e |- ( ph -> N = ( M + 1 ) ) $.
    gsumprval.f $e |- ( ph -> F : { M , N } --> B ) $.
    $( Value of the group sum operation over a pair of sequential integers.
       (Contributed by AV, 14-Dec-2018.) $)
    gsumprval $p |- ( ph -> ( G gsum F ) = ( ( F ` M ) .+ ( F ` N ) ) ) $=
      ( co cfv wcel syl wf wceq cgsu c1 caddc cseq cuz cz uzid peano2uz cfz cpr
      fzpr eqcomd preq2d eqtrd feq2d mpbird gsumval2 seq1 fveq2d oveq12d 3eqtrd
      seqp1 ) AEDUAOFUBUCOZCDFUDZPZFVDPZVCDPZCOZFDPZGDPZCOABCDEFVCHIJKAFFUEPZQZ
      VCVKQAFUFQZVLLFUGRZFFUHRAFVCUIOZBDSFGUJZBDSNAVOVPBDAVOFVCUJZVPAVMVOVQTLFU
      KRAVCGFAGVCMULZUMUNUOUPUQAVLVEVHTVNCDFFVBRAVFVIVGVJCAVMVFVITLCDFURRAVCGDV
      RUSUTVA $.
  $}

  ${
    gsumpr12val.b $e |- B = ( Base ` G ) $.
    gsumpr12val.p $e |- .+ = ( +g ` G ) $.
    gsumpr12val.g $e |- ( ph -> G e. V ) $.
    gsumpr12val.f $e |- ( ph -> F : { 1 , 2 } --> B ) $.
    $( Value of the group sum operation over the pair ` { 1 , 2 } ` .
       (Contributed by AV, 14-Dec-2018.) $)
    gsumpr12val $p |- ( ph -> ( G gsum F ) = ( ( F ` 1 ) .+ ( F ` 2 ) ) ) $=
      ( c1 c2 1zzd caddc co wceq df-2 a1i gsumprval ) ABCDEKLFGHIAMLKKNOPAQRJS
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Semigroups
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  A semigroup (` SGrp `, see ~ df-sgrp ) is a set together with an associative
  binary operation (see Wikipedia, Semigroup, 8-Jan-2020,
  ~ https://en.wikipedia.org/wiki/Semigroup ).  In other words, a semigroup is
  an associative magma.  The notion of semigroup is a generalization of that of
  group where the existence of an identity or inverses is not required.

$)

  $c SGrp $.

  $( Extend class notation with class of all semigroups. $)
  csgrp $a class SGrp $.

  ${
    $d b g o x y z $.
    $( A _semigroup_ is a set equipped with an everywhere defined internal
       operation (so, a magma, see ~ df-mgm ), whose operation is associative.
       Definition in section II.1 of [Bruck] p. 23, or of an "associative
       magma" in definition 5 of [BourbakiAlg1] p. 4 .  (Contributed by FL,
       2-Nov-2009.)  (Revised by AV, 6-Jan-2020.) $)
    df-sgrp $a |- SGrp = { g e. Mgm |
                           [. ( Base ` g ) / b ]. [. ( +g ` g ) / o ].
                           A. x e. b A. y e. b A. z e. b
                           ( ( x o y ) o z ) = ( x o ( y o z ) ) } $.
  $}

  ${
    $d B b g o x y z $.  $d M b g o x y z $.  $d .o. b g o x y z $.
    issgrp.b $e |- B = ( Base ` M ) $.
    issgrp.o $e |- .o. = ( +g ` M ) $.
    $( The predicate "is a semigroup".  (Contributed by FL, 2-Nov-2009.)
       (Revised by by AV, 6-Jan-2020.) $)
    issgrp $p |- ( M e. SGrp <-> ( M e. Mgm /\ A. x e. B A. y e. B A. z e. B
                           ( ( x .o. y ) .o. z ) = ( x .o. ( y .o. z ) ) ) ) $=
      ( vo vb vg cv co wceq wral cplusg cfv wsbc cbs raleqbidv cmgm csgrp fvexd
      cvv fveq2 syl6eqr wa adantr simplr wb oveq eqidd oveq123d eqeq12d sbcied2
      id adantl df-sgrp elrab2 ) ALZBLZILZMZCLZVBMZUTVAVDVBMZVBMZNZCJLZOZBVIOZA
      VIOZIKLZPQZRZJVMSQZRUTVAFMZVDFMZUTVAVDFMZFMZNZCDOZBDOZADOZKEUAUBVMENZVOWD
      JVPDUDWEVMSUCWEVPESQDVMESUEGUFWEVIDNZUGZVLWDIVNFUDWGVMPUCWGVNEPQZFWEVNWHN
      WFVMEPUEUHHUFWGVBFNZUGZVKWCAVIDWEWFWIUIZWJVJWBBVIDWKWJVHWACVIDWKWIVHWAUJW
      GWIVEVRVGVTWIVCVQVDVDVBFWIUPZUTVAVBFUKWIVDULUMWIUTUTVFVSVBFWLWIUTULVAVDVB
      FUKUMUNUQTTTUOUOABCKIJURUS $.
  $}

  ${
    $d B x y z $.  $d M x y z $.  $d .o. x y z $.
    issgrpn0.b $e |- B = ( Base ` M ) $.
    issgrpn0.o $e |- .o. = ( +g ` M ) $.
    $( The predicate "is a semigroup" for a structure which is a set.
       (Contributed by AV, 1-Feb-2020.) $)
    issgrpv $p |- ( M e. V -> ( M e. SGrp
                                <-> A. x e. B A. y e. B ( ( x .o. y ) e. B
                                    /\ A. z e. B ( ( x .o. y ) .o. z )
                                               = ( x .o. ( y .o. z ) ) ) ) ) $=
      ( wcel cmgm cv co wceq wral wa csgrp ismgm anbi1d issgrp r19.26-2 3bitr4g
      ) EFJZEKJZALZBLZGMZCLZGMUEUFUHGMGMNCDOZBDOADOZPUGDJZBDOADOZUJPEQJUKUIPBDO
      ADOUCUDULUJABDEFGHIRSABCDEGHITUKUIABDDUAUB $.

    $( The predicate "is a semigroup" for a structure with a nonempty base set.
       (Contributed by AV, 1-Feb-2020.) $)
    issgrpn0 $p |- ( A e. B -> ( M e. SGrp
                                <-> A. x e. B A. y e. B ( ( x .o. y ) e. B
                                    /\ A. z e. B ( ( x .o. y ) .o. z )
                                               = ( x .o. ( y .o. z ) ) ) ) ) $=
      ( wcel cmgm cv co wceq wral wa csgrp ismgmn0 anbi1d issgrp r19.26-2
      3bitr4g ) DEJZFKJZALZBLZGMZCLZGMUEUFUHGMGMNCEOZBEOAEOZPUGEJZBEOAEOZUJPFQJ
      UKUIPBEOAEOUCUDULUJABDEFGHIRSABCEFGHITUKUIABEEUAUB $.

    $d X x y z $.  $d Y x y z $.  $d Z x y z $.
    $( A condition for a structure not to be a semigroup.  (Contributed by AV,
       30-Jan-2020.) $)
    isnsgrp $p |- ( ( X e. B /\ Y e. B /\ Z e. B )
                    -> ( ( ( X .o. Y ) .o. Z ) =/= ( X .o. ( Y .o. Z ) )
                         -> M e/ SGrp ) ) $=
      ( vx vy vz wcel co csgrp wa wn cv wceq wrex adantl w3a wne wnel cmgm wral
      simpl1 wb oveq1 oveq1d eqeq12d notbid simpl2 oveq2 oveq2d simpl3 rspcedvd
      rexbidv neneq rexnal 2rexbii rexnal2 bitr2i sylibr intnand issgrp sylnibr
      df-nel ex ) CALZDALZFALZUAZCDEMZFEMZCDFEMZEMZUBZBNUCZVLVQOZBNLZPVRVSBUDLZ
      IQZJQZEMZKQZEMZWBWCWEEMZEMZRZKAUEZJAUEIAUEZOVTVSWKWAVSWIPZKASZJASZIASZWKP
      ZVSWNCWCEMZWEEMZCWGEMZRZPZKASZJASZICAVIVJVKVQUFWBCRZWNXCUGVSXDWMXBJAXDWLX
      AKAXDWIWTXDWFWRWHWSXDWDWQWEEWBCWCEUHUIWBCWGEUHUJUKUQUQTVSXBVMWEEMZCDWEEMZ
      EMZRZPZKASJDAVIVJVKVQULVSWCDRZOXAXIKAXJXAXIUGVSXJWTXHXJWRXEWSXGXJWQVMWEEW
      CDCEUMUIXJWGXFCEWCDWEEUHUNUJUKTUQVSXIVNVPRZPZKFAVIVJVKVQUOWEFRZXIXLUGVSXM
      XHXKXMXEVNXGVPWEFVMEUMXMXFVOCEWEFDEUMUNUJUKTVQXLVLVNVPURTUPUPUPWOWJPZJASI
      ASWPWMXNIJAAWIKAUSUTWJIJAAVAVBVCVDIJKABEGHVEVFBNVGVCVH $.
  $}

  ${
    $d M x y z $.
    $( A semigroup is a magma.  (Contributed by FL, 2-Nov-2009.)  (Revised by
       AV, 6-Jan-2020.) $)
    sgrpmgm $p |- ( M e. SGrp -> M e. Mgm ) $=
      ( vx vy vz csgrp wcel cmgm cv cplusg cfv co wceq wral eqid issgrp simplbi
      cbs ) AEFAGFBHZCHZAIJZKDHZTKRSUATKTKLDAQJZMCUBMBUBMBCDUBATUBNTNOP $.
  $}

  ${
    $d B x y z $.  $d G x y z $.  $d X x y z $.  $d Y x y z $.  $d Z x y z $.
    $d .o. x y z $.
    sgrpass.b $e |- B = ( Base ` G ) $.
    sgrpass.o $e |- .o. = ( +g ` G ) $.
    $( A semigroup operation is associative.  (Contributed by FL, 2-Nov-2009.)
       (Revised by AV, 30-Jan-2020.) $)
    sgrpass $p |- ( ( G e. SGrp /\ ( X e. B /\ Y e. B /\ Z e. B ) )
                    -> ( ( X .o. Y ) .o. Z ) = ( X .o. ( Y .o. Z ) ) ) $=
      ( vx vy vz wcel co wceq cv wral oveq1 oveq1d eqeq12d oveq2 csgrp w3a cmgm
      wi issgrp oveq2d rspc3v com12 simplbiim imp ) BUALZCALDALFALUBZCDEMZFEMZC
      DFEMZEMZNZUKBUCLIOZJOZEMZKOZEMZURUSVAEMZEMZNZKAPJAPIAPZULUQUDIJKABEGHUEUL
      VFUQVEUQCUSEMZVAEMZCVCEMZNUMVAEMZCDVAEMZEMZNIJKCDFAAAURCNZVBVHVDVIVMUTVGV
      AEURCUSEQRURCVCEQSUSDNZVHVJVIVLVNVGUMVAEUSDCETRVNVCVKCEUSDVAEQUFSVAFNZVJU
      NVLUPVAFUMETVOVKUOCEVAFDETUFSUGUHUIUJ $.
  $}

  ${
    $d M x y z $.
    $( Any set with an empty base set and any group operation is a semigroup.
       (Contributed by AV, 28-Aug-2021.) $)
    sgrp0 $p |- ( ( M e. V /\ ( Base ` M ) = (/) ) -> M e. SGrp ) $=
      ( vx vy vz wcel cbs cfv c0 wceq wa cmgm cv cplusg co wral csgrp mgm0 rzal
      eqid adantl issgrp sylanbrc ) ABFZAGHZIJZKALFCMZDMZANHZOEMZUIOUGUHUJUIOUI
      OJEUEPDUEPZCUEPZAQFABRUFULUDUKCUESUACDEUEAUIUETUITUBUC $.
  $}

  ${
    $d O x y z $.
    $( The structure with an empty base set and any group operation is a
       semigroup.  (Contributed by AV, 28-Aug-2021.) $)
    sgrp0b $p |- { <. ( Base ` ndx ) , (/) >. ,
                     <. ( +g ` ndx ) , O >. } e. SGrp $=
      ( vx vy vz cnx cbs cfv c0 cop cplusg cpr csgrp wcel cmgm cv wceq wral cvv
      co eqid mgm0b ral0 0ex grpbase ax-mp issgrp mpbir2an ) EFGHIEJGAIKZLMUHNM
      BOZCOZUHJGZSDOZUKSUIUJULUKSUKSPDHQCHQZBHQAUAUMBUBBCDHUHUKHRMHUHFGPUCHAUHR
      UHTUDUEUKTUFUG $.
  $}

  ${
    $d I x y z $.  $d M x y z $.
    sgrp1.m $e |- M = { <. ( Base ` ndx ) , { I } >. ,
                        <. ( +g ` ndx ) , { <. <. I , I >. , I >. } >. } $.
    $( The structure with one element and the only closed internal operation
       for a singleton is a semigroup.  (Contributed by AV, 10-Feb-2020.) $)
    sgrp1 $p |- ( I e. V -> M e. SGrp ) $=
      ( vx vy vz wcel cv co wceq wral cfv cvv oveq1d oveq2d oveq1 eqeq12d oveq2
      ralsng cmgm cop csn csgrp mgm1 df-ov fvsng syl5eq eqtr4d 2ralbidv ralbidv
      opex mpan 3bitrd mpbird cbs grpbase ax-mp cplusg grpplusg issgrp sylanbrc
      snex ) ACHZBUAHEIZFIZAAUBZAUBZUCZJZGIZVIJZVEVFVKVIJZVIJZKZGAUCZLFVPLZEVPL
      ZBUDHABCDUEVDVRAAVIJZAVIJZAVSVIJZKZVDVTVSWAVDVSAAVIVDVSVGVIMZAAAVIUFVGNHV
      DWCAKAAULVGANCUGUMUHZOVDVSAAVIWDPUIVDVRAVFVIJZVKVIJZAVMVIJZKZGVPLZFVPLZVS
      VKVIJZAAVKVIJZVIJZKZGVPLZWBVQWJEACVEAKZVOWHFGVPVPWPVLWFVNWGWPVJWEVKVIVEAV
      FVIQOVEAVMVIQRUJTWIWOFACVFAKZWHWNGVPWQWFWKWGWMWQWEVSVKVIVFAAVISOWQVMWLAVI
      VFAVKVIQPRUKTWNWBGACVKAKZWKVTWMWAVKAVSVISWRWLVSAVIVKAAVISPRTUNUOEFGVPBVIV
      PNHVPBUPMKAVCVPVIBNDUQURVINHVIBUSMKVHVCVPVIBNDUTURVAVB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties of monoids
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  According to Wikipedia ("Monoid", ~ https://en.wikipedia.org/wiki/Monoid ,
  6-Feb-2020,) "In abstract algebra [[...] a _monoid_ is an algebraic structure
  with a single associative binary operation and an identity element.  Monoids
  are semigroups with identity.".  In the following, monoids are defined in the
  second way (as semigroups with identity), see ~ df-mnd , whereas many authors
  define magmas in the first way (as algebraic structure with a single
  associative binary operation and an identity element, i.e. without the need
  of a definition for/knowledge about semigroups), see ~ ismnd .  See, for
  example, the definition in [Lang] p. 3: "A _monoid_ is a set G, with a law of
  composition which is associative, and having a unit element".

$)

  $c Mnd $.

  $( Extend class notation with class of all monoids. $)
  cmnd $a class Mnd $.

  ${
    $d b e g p x $.
    $( A _monoid_ is a semigroup, which has a two-sided neutral element.
       Definition 2 in [BourbakiAlg1] p. 12.  In other words (according to the
       definition in [Lang] p. 3), a monoid is a set equipped with an
       everywhere defined internal operation (see ~ mndcl ), whose operation is
       associative (see ~ mndass ) and has a two-sided neutral element (see
       ~ mndid ), see also ~ ismnd .  (Contributed by Mario Carneiro,
       6-Jan-2015.)  (Revised by AV, 1-Feb-2020.) $)
    df-mnd $a |- Mnd = { g e. SGrp |
                    [. ( Base ` g ) / b ]. [. ( +g ` g ) / p ].
                    E. e e. b A. x e. b ( ( e p x ) = x /\ ( x p e ) = x ) } $.
  $}

  ${
    $d B a b e g p $.  $d G b g p $.  $d .+ a b e g p $.
    ismnddef.b $e |- B = ( Base ` G ) $.
    ismnddef.p $e |- .+ = ( +g ` G ) $.
    $( The predicate "is a monoid", corresponding 1-to-1 to the definition.
       (Contributed by FL, 2-Nov-2009.)  (Revised by AV, 1-Feb-2020.) $)
    ismnddef $p |- ( G e. Mnd <-> ( G e. SGrp /\ E. e e. B A. a e. B
                                    ( ( e .+ a ) = a /\ ( a .+ e ) = a ) ) ) $=
      ( vp vb vg cv co wceq wa wral wrex cplusg cfv wsbc cbs csgrp cmnd fvex wb
      fveq2 syl6eqr eqeq2d anbi12d simpl oveq eqeq1d adantl raleqbidv rexeqbidv
      syl6bi sbc2iedv df-mnd elrab2 ) CKZEKZHKZLZUTMZUTUSVALZUTMZNZEIKZOZCVGPZH
      JKZQRZSIVJTRZSUSUTBLZUTMZUTUSBLZUTMZNZEAOZCAPZJDUAUBVJDMZVIVSIHVLVKVJTUCV
      JQUCVTVGVLMZVAVKMZNVGAMZVABMZNZVIVSUDVTWAWCWBWDVTVLAVGVTVLDTRAVJDTUEFUFUG
      VTVKBVAVTVKDQRBVJDQUEGUFUGUHWEVHVRCVGAWCWDUIZWEVFVQEVGAWFWDVFVQUDWCWDVCVN
      VEVPWDVBVMUTUSUTVABUJUKWDVDVOUTUTUSVABUJUKUHULUMUNUOUPECJHIUQUR $.
  $}

  ${
    $d B a b c $.  $d B a e $.  $d G a b c $.  $d .+ a e $.  $d .+ b c $.
    ismnd.b $e |- B = ( Base ` G ) $.
    ismnd.p $e |- .+ = ( +g ` G ) $.
    $( The predicate "is a monoid".  This is the definig theorem of a monoid by
       showing that a set is a monoid if and only if it is a set equipped with
       a closed, everywhere defined internal operation (so, a magma, see
       ~ mndcl ), whose operation is associative (so, a semigroup, see also
       ~ mndass ) and has a two-sided neutral element (see ~ mndid ).
       (Contributed by Mario Carneiro, 6-Jan-2015.)  (Revised by AV,
       1-Feb-2020.) $)
    ismnd $p |- ( G e. Mnd <-> ( A. a e. B A. b e. B ( ( a .+ b ) e. B
                       /\ A. c e. B ( ( a .+ b ) .+ c ) = ( a .+ ( b .+ c ) ) )
             /\ E. e e. B A. a e. B ( ( e .+ a ) = a /\ ( a .+ e ) = a ) ) ) $=
      ( cmnd wcel csgrp cv co wceq wa wral c0 cvv cbs wrex ismnddef wb rexn0 wn
      wne cfv fvprc syl5eq necon1ai issgrpv 3syl pm5.32ri bitri ) DJKDLKZCMZEMZ
      BNUQOUQUPBNUQOPEAQZCAUAZPUQFMZBNZAKVAGMZBNUQUTVBBNBNOGAQPFAQEAQZUSPABCDEH
      IUBUSUOVCUSARUFDSKZUOVCUCURCAUDVDARVDUEADTUGRHDTUHUIUJEFGADSBHIUKULUMUN
      $.
  $}

  ${
    $d B x z $.  $d M x z $.  $d .o. x z $.
    isnmnd.b $e |- B = ( Base ` M ) $.
    isnmnd.o $e |- .o. = ( +g ` M ) $.
    $( A condition for a structure not to be a monoid: every element of the
       base set is not a left identity for at least one element of the base
       set.  (Contributed by AV, 4-Feb-2020.) $)
    isnmnd $p |- ( A. z e. B E. x e. B ( z .o. x ) =/= x -> M e/ Mnd ) $=
      ( cv co wne wrex wral cmnd wcel wn wnel csgrp wceq wa neneq reximi ralimi
      intnanrd rexnal ralbii ralnex bitri sylib intnand ismnddef sylnibr df-nel
      sylibr ) BHZAHZEIZUOJZACKZBCLZDMNZODMPUSDQNZUPUORZUOUNEIUORZSZACLZBCKZSUT
      USVFVAUSVDOZACKZBCLZVFOZURVHBCUQVGACUQVBVCUPUOTUCUAUBVIVEOZBCLVJVHVKBCVDA
      CUDUEVEBCUFUGUHUICEBDAFGUJUKDMULUM $.
  $}

  ${
    $d G e x $.
    $( A monoid is a semigroup.  (Contributed by FL, 2-Nov-2009.)  (Revised by
       AV, 6-Jan-2020.)  (Proof shortened by AV, 6-Feb-2020.) $)
    mndsgrp $p |- ( G e. Mnd -> G e. SGrp ) $=
      ( ve vx cmnd wcel csgrp cv cplusg cfv co wceq cbs wral wrex eqid ismnddef
      wa simplbi ) ADEAFEBGZCGZAHIZJTKTSUAJTKQCALIZMBUBNUBUABACUBOUAOPR $.
  $}

  $( A monoid is a magma.  (Contributed by FL, 2-Nov-2009.)  (Revised by AV,
     6-Jan-2020.)  (Proof shortened by AV, 6-Feb-2020.) $)
  mndmgm $p |- ( M e. Mnd -> M e. Mgm ) $=
    ( cmnd wcel csgrp cmgm mndsgrp sgrpmgm syl ) ABCADCAECAFAGH $.

  ${
    $d x y z B $.  $d x y z G $.  $d x y z X $.  $d y z Y $.  $d z Z $.
    $d x y z .+ $.
    mndcl.b $e |- B = ( Base ` G ) $.
    mndcl.p $e |- .+ = ( +g ` G ) $.
    $( Closure of the operation of a monoid.  (Contributed by NM, 14-Aug-2011.)
       (Revised by Mario Carneiro, 6-Jan-2015.)  (Proof shortened by AV,
       8-Feb-2020.) $)
    mndcl $p |- ( ( G e. Mnd /\ X e. B /\ Y e. B ) -> ( X .+ Y ) e. B ) $=
      ( cmnd wcel cmgm co mndmgm mgmcl syl3an1 ) CHICJIDAIEAIDEBKAICLACDEBFGMN
      $.

    $( A monoid operation is associative.  (Contributed by NM, 14-Aug-2011.)
       (Proof shortened by AV, 8-Feb-2020.) $)
    mndass $p |- ( ( G e. Mnd /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
              ( ( X .+ Y ) .+ Z ) = ( X .+ ( Y .+ Z ) ) ) $=
      ( cmnd wcel csgrp w3a co wceq mndsgrp sgrpass sylan ) CIJCKJDAJEAJFAJLDEB
      MFBMDEFBMBMNCOACDEBFGHPQ $.

    $d u x y z B $.  $d u G $.  $d u .+ $.
    $( A monoid has a two-sided identity element.  (Contributed by NM,
       16-Aug-2011.) $)
    mndid $p |- ( G e. Mnd ->
         E. u e. B A. x e. B ( ( u .+ x ) = x /\ ( x .+ u ) = x ) ) $=
      ( vy vz cmnd wcel cv co wceq wral wa wrex ismnd simprbi ) EJKALZHLZDMZCKU
      BILZDMTUAUCDMDMNICOPHCOACOBLZTDMTNTUDDMTNPACOBCQCDBEAHIFGRS $.

    $( The two-sided identity element of a monoid is unique.  Lemma 2.2.1(a) of
       [Herstein] p. 55.  (Contributed by Mario Carneiro, 8-Dec-2014.) $)
    mndideu $p |- ( G e. Mnd ->
      E! u e. B A. x e. B ( ( u .+ x ) = x /\ ( x .+ u ) = x ) ) $=
      ( cmnd wcel cv co wceq wa wral wrex wrmo wreu mndid mgmidmo a1i sylanbrc
      reu5 ) EHIZBJZAJZDKUELUEUDDKUELMACNZBCOUFBCPZUFBCQABCDEFGRUGUCABCDSTUFBCU
      BUA $.

    mnd4g.1 $e |- ( ph -> G e. Mnd ) $.
    mnd4g.2 $e |- ( ph -> X e. B ) $.
    mnd4g.3 $e |- ( ph -> Y e. B ) $.
    mnd4g.4 $e |- ( ph -> Z e. B ) $.
    ${
      mnd32g.5 $e |- ( ph -> ( Y .+ Z ) = ( Z .+ Y ) ) $.
      $( Commutative/associative law for monoids, with an explicit
         commutativity hypothesis.  (Contributed by Mario Carneiro,
         21-Apr-2016.) $)
      mnd32g $p |- ( ph -> ( ( X .+ Y ) .+ Z ) = ( ( X .+ Z ) .+ Y ) ) $=
        ( co oveq2d wcel wceq mndass syl13anc cmnd 3eqtr4d ) AEFGCOZCOZEGFCOZCO
        ZEFCOGCOZEGCOFCOZAUCUEECNPADUAQZEBQZFBQZGBQZUGUDRJKLMBCDEFGHISTAUIUJULU
        KUHUFRJKMLBCDEGFHISTUB $.
    $}

    ${
      mnd12g.5 $e |- ( ph -> ( X .+ Y ) = ( Y .+ X ) ) $.
      $( Commutative/associative law for monoids, with an explicit
         commutativity hypothesis.  (Contributed by Mario Carneiro,
         21-Apr-2016.) $)
      mnd12g $p |- ( ph -> ( X .+ ( Y .+ Z ) ) = ( Y .+ ( X .+ Z ) ) ) $=
        ( co oveq1d wcel wceq mndass syl13anc cmnd 3eqtr3d ) AEFCOZGCOZFECOZGCO
        ZEFGCOCOZFEGCOCOZAUCUEGCNPADUAQZEBQZFBQZGBQZUDUGRJKLMBCDEFGHISTAUIUKUJU
        LUFUHRJLKMBCDFEGHISTUB $.
    $}

    mnd4g.5 $e |- ( ph -> W e. B ) $.
    mnd4g.6 $e |- ( ph -> ( Y .+ Z ) = ( Z .+ Y ) ) $.
    $( Commutative/associative law for commutative monoids, with an explicit
       commutativity hypothesis.  (Contributed by Mario Carneiro,
       21-Apr-2016.) $)
    mnd4g $p |- ( ph ->
      ( ( X .+ Y ) .+ ( Z .+ W ) ) = ( ( X .+ Z ) .+ ( Y .+ W ) ) ) $=
      ( co wcel wceq mndcl mnd12g oveq2d cmnd syl3anc mndass syl13anc 3eqtr4d )
      AFGHECQZCQZCQZFHGECQZCQZCQZFGCQUHCQZFHCQUKCQZAUIULFCABCDGHEIJKMNOPUAUBADU
      CRZFBRZGBRZUHBRZUNUJSKLMAUPHBRZEBRZUSKNOBCDHEIJTUDBCDFGUHIJUEUFAUPUQUTUKB
      RZUOUMSKLNAUPURVAVBKMOBCDGEIJTUDBCDFHUKIJUEUFUG $.
  $}

  ${
    $d x y B $.  $d x y G $.  $d x y .0. $.
    mndidcl.b $e |- B = ( Base ` G ) $.
    mndidcl.o $e |- .0. = ( 0g ` G ) $.
    $( The identity element of a monoid belongs to the monoid.  (Contributed by
       NM, 27-Aug-2011.)  (Revised by Mario Carneiro, 27-Dec-2014.) $)
    mndidcl $p |- ( G e. Mnd -> .0. e. B ) $=
      ( vy vx cmnd wcel cplusg cfv eqid mndid mgmidcl ) BHIFABJKZGBCDEOLZFGAOBD
      PMN $.
  $}

  ${
    mndplusf.1 $e |- B = ( Base ` G ) $.
    mndplusf.2 $e |- .+^ = ( +f ` G ) $.
    $( The group addition operation is a function.  (Contributed by Mario
       Carneiro, 14-Aug-2015.)  (Proof shortened by AV, 3-Feb-2020.) $)
    mndplusf $p |- ( G e. Mnd -> .+^ : ( B X. B ) --> B ) $=
      ( cmnd wcel cmgm cxp wf mndmgm mgmplusf syl ) CFGCHGAAIABJCKABCDELM $.
  $}

  ${
    $d x y B $.  $d x y G $.  $d x y .0. $.  $d x y .+ $.  $d x X $.
    mndlrid.b $e |- B = ( Base ` G ) $.
    mndlrid.p $e |- .+ = ( +g ` G ) $.
    mndlrid.o $e |- .0. = ( 0g ` G ) $.
    $( A monoid's identity element is a two-sided identity.  (Contributed by
       NM, 18-Aug-2011.) $)
    mndlrid $p |- ( ( G e. Mnd /\ X e. B ) -> ( ( .0. .+ X ) = X /\
         ( X .+ .0. ) = X ) ) $=
      ( vx vy cmnd wcel mndid mgmlrid ) CKLIABJCDEFHGIJABCFGMN $.

    $( The identity element of a monoid is a left identity.  (Contributed by
       NM, 18-Aug-2011.) $)
    mndlid $p |- ( ( G e. Mnd /\ X e. B ) -> ( .0. .+ X ) = X ) $=
      ( cmnd wcel wa co wceq mndlrid simpld ) CIJDAJKEDBLDMDEBLDMABCDEFGHNO $.

    $( The identity element of a monoid is a right identity.  (Contributed by
       NM, 18-Aug-2011.) $)
    mndrid $p |- ( ( G e. Mnd /\ X e. B ) -> ( X .+ .0. ) = X ) $=
      ( cmnd wcel wa co wceq mndlrid simprd ) CIJDAJKEDBLDMDEBLDMABCDEFGHNO $.
  $}

  ${
    $d x y z B $.  $d u x y z G $.  $d x y z ph $.  $d u x .0. $.
    ismndd.b $e |- ( ph -> B = ( Base ` G ) ) $.
    ismndd.p $e |- ( ph -> .+ = ( +g ` G ) ) $.
    ismndd.c $e |- ( ( ph /\ x e. B /\ y e. B ) -> ( x .+ y ) e. B ) $.
    ismndd.a $e |- ( ( ph /\ ( x e. B /\ y e. B /\ z e. B ) ) ->
                   ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) ) $.
    ismndd.z $e |- ( ph -> .0. e. B ) $.
    ismndd.i $e |- ( ( ph /\ x e. B ) -> ( .0. .+ x ) = x ) $.
    ismndd.j $e |- ( ( ph /\ x e. B ) -> ( x .+ .0. ) = x ) $.
    $( Deduce a monoid from its properties.  (Contributed by Mario Carneiro,
       6-Jan-2015.) $)
    ismndd $p |- ( ph -> G e. Mnd ) $=
      ( co wcel wceq wral wa vu cplusg cfv cbs wrex cmnd simpll simplrl simplrr
      cv 3expb simpr syl13anc ralrimiva ralrimivva oveqd eleq12d eqidd oveq123d
      jca eqeq12d raleqbidv anbi12d eleqtrd eleq2d biimpar adantr eqtr3d syldan
      mpbid oveq1 eqeq1d oveq2 ralbidv rspcev syl2anc eqid ismnd sylanbrc ) ABU
      JZCUJZGUBUCZPZGUDUCZQZWCDUJZWBPZVTWAWFWBPZWBPZRZDWDSZTZCWDSZBWDSZUAUJZVTW
      BPZVTRZVTWOWBPZVTRZTZBWDSZUAWDUEZGUFQAVTWAFPZEQZXCWFFPZVTWAWFFPZFPZRZDESZ
      TZCESZBESWNAXJBCEEAVTEQZWAEQZTZTZXDXIAXLXMXDKUKXOXHDEXOWFEQZTAXLXMXPXHAXN
      XPUGAXLXMXPUHAXLXMXPUIXOXPULLUMUNUTUOAXKWMBEWDIAXJWLCEWDIAXDWEXIWKAXCWCEW
      DAFWBVTWAJUPZIUQAXHWJDEWDIAXEWGXGWIAXCWCWFWFFWBJXQAWFURUSAVTVTXFWHFWBJAVT
      URAFWBWAWFJUPUSVAVBVCVBVBVJAHWDQHVTWBPZVTRZVTHWBPZVTRZTZBWDSZXBAHEWDMIVDA
      YBBWDAVTWDQZXLYBAXLYDAEWDVTIVEVFAXLTZXSYAYEHVTFPXRVTYEFWBHVTAFWBRXLJVGZUP
      NVHYEVTHFPXTVTYEFWBVTHYFUPOVHUTVIUNXAYCUAHWDWOHRZWTYBBWDYGWQXSWSYAYGWPXRV
      TWOHVTWBVKVLYGWRXTVTWOHVTWBVMVLVCVNVOVPWDWBUAGBCDWDVQWBVQVRVS $.
  $}

  ${
    $d x y z B $.  $d x y z G $.  $d x y z .+^ $.
    mndpf.b $e |- B = ( Base ` G ) $.
    mndpf.p $e |- .+^ = ( +f ` G ) $.
    $( The addition operation of a monoid as a function is an onto function.
       (Contributed by FL, 2-Nov-2009.)  (Revised by Mario Carneiro,
       11-Oct-2013.)  (Revised by AV, 23-Jan-2020.) $)
    mndpfo $p |- ( G e. Mnd -> .+^ : ( B X. B ) -onto-> B ) $=
      ( vx vy vz cmnd wcel cxp wf cv co wceq wrex wral wa cfv eqid wfo mndplusf
      cplusg simpr mndidcl adantr mndrid eqcomd rspceov syl3anc plusfval eqeq2d
      c0g 2rexbiia sylibr ralrimiva foov sylanbrc ) CIJZAAKZABLFMZGMZHMZBNZOZHA
      PGAPZFAQUTABUAABCDEUBUSVFFAUSVAAJZRZVAVBVCCUCSZNZOZHAPGAPZVFVHVGCUMSZAJZV
      AVAVMVINZOVLUSVGUDUSVNVGACVMDVMTZUEUFVHVOVAAVICVAVMDVITZVPUGUHGHAAVAVMVAV
      IUIUJVEVKGHAAVBAJVCAJRVDVJVAAVIBCVBVCDVQEUKULUNUOUPGHFAAABUQUR $.
  $}

  ${
    mndfo.b $e |- B = ( Base ` G ) $.
    mndfo.p $e |- .+ = ( +g ` G ) $.
    $( The addition operation of a monoid is an onto function (assuming it is a
       function).  (Contributed by Mario Carneiro, 11-Oct-2013.)  (Proof
       shortened by AV, 23-Jan-2020.) $)
    mndfo $p |- ( ( G e. Mnd /\ .+ Fn ( B X. B ) ) ->
      .+ : ( B X. B ) -onto-> B ) $=
      ( cmnd wcel cxp wfn wfo cplusf cfv eqid mndpfo adantr wceq plusfeq eqcomd
      wa wb adantl foeq1 syl mpbird ) CFGZBAAHZIZSZUFABJZUFACKLZJZUEUKUGAUJCDUJ
      MZNOUHBUJPZUIUKTUGUMUEUGUJBABUJCDEULQRUAUFABUJUBUCUD $.
  $}

  ${
    $d s u v w x y B $.  $d s u v w x y K $.  $d s u v w x y ph $.
    $d s u v w x y L $.
    mndpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    mndpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    mndpropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    $( If two structures have the same base set, and the values of their group
       (addition) operations are equal for all pairs of elements of the base
       set, one is a monoid iff the other one is.  (Contributed by Mario
       Carneiro, 6-Jan-2015.) $)
    mndpropd $p |- ( ph -> ( K e. Mnd <-> L e. Mnd ) ) $=
      ( vu vv vw vs cv co wcel wral wa wceq oveqrspc2v cplusg cfv simplr simprl
      cmnd cbs ad2antrr eleqtrd simprr eqid syl3anc eleqtrrd ralrimivva adantlr
      mndcl ex 3eltr4d wb wrex eleq1d simplll simplrl simplrr ovrspc2v syl21anc
      simpllr simpr syl12anc oveq1d eqtrd oveq2d eqeq12d ralbidva adantr eleq2d
      anbi12d 2ralbidva raleqdv raleqbidv 3bitr3d eqeq1d rexbidva ismnd 3bitr4g
      rexeqbidv pm5.21ndd ) ABNZCNZEUAUBZOZDPZCDQBDQZEUEPZFUEPZAWMWLAWMRZWKBCDD
      WOWGDPZWHDPZRZRZWJEUFUBZDWSWMWGWTPWHWTPWJWTPAWMWRUCWSWGDWTWOWPWQUDADWTSZW
      MWRGUGZUHWSWHDWTWOWPWQUIXBUHWTWIEWGWHWTUJZWIUJZUOUKXBULUMUPAWNWLAWNRZWKBC
      DDXEWRRZWGWHFUAUBZOZFUFUBZWJDXFWNWGXIPWHXIPXHXIPAWNWRUCXFWGDXIXEWPWQUDADX
      ISZWNWRHUGZUHXFWHDXIXEWPWQUIXKUHXIXGFWGWHXIUJZXGUJZUOUKAWRWJXHSWNIUNXKUQU
      MUPAWLWMWNURAWLRZJNZKNZWIOZWTPZXQLNZWIOZXOXPXSWIOZWIOZSZLWTQZRZKWTQZJWTQZ
      MNZXOWIOZXOSZXOYHWIOZXOSZRZJWTQZMWTUSZRXOXPXGOZXIPZYPXSXGOZXOXPXSXGOZXGOZ
      SZLXIQZRZKXIQZJXIQZYHXOXGOZXOSZXOYHXGOZXOSZRZJXIQZMXIUSZRWMWNXNYGUUEYOUUL
      XNXQDPZYCLDQZRZKDQZJDQYPDPZUUALDQZRZKDQZJDQYGUUEXNUUOUUSJKDDXNXODPZXPDPZR
      ZRZUUMUUQUUNUURUVDXQYPDAUVCXQYPSZWLABCDDWIXGXOXPITZUNUTUVDYCUUALDUVDXSDPZ
      RZXTYRYBYTUVHXTXQXSXGOZYRUVHAUUMUVGXTUVISAWLUVCUVGVAZUVHUVAUVBWLUUMXNUVAU
      VBUVGVBZXNUVAUVBUVGVCZAWLUVCUVGVFZBCDDDWIXOXPVDVEUVDUVGVGZABCDDWIXGXQXSIT
      VHUVHXQYPXSXGUVHAUVAUVBUVEUVJUVKUVLUVFVHVIVJUVHYBXOYAXGOZYTUVHAUVAYADPZYB
      UVOSUVJUVKUVHUVBUVGWLUVPUVLUVNUVMBCDDDWIXPXSVDVEABCDDWIXGXOYAITVHUVHYAYSX
      OXGUVHAUVBUVGYAYSSUVJUVLUVNABCDDWIXGXPXSITVHVKVJVLVMVPVQXNUUPYFJDWTAXAWLG
      VNZXNUUOYEKDWTUVQXNUUMXRUUNYDXNDWTXQUVQVOXNYCLDWTUVQVRVPVSVSXNUUTUUDJDXIA
      XJWLHVNZXNUUSUUCKDXIUVRXNUUQYQUURUUBXNDXIYPUVRVOXNUUALDXIUVRVRVPVSVSVTXNY
      MJDQZMDUSUUJJDQZMDUSYOUULXNUVSUVTMDXNYHDPZRZYMUUJJDUWBUVARZYJUUGYLUUIUWCY
      IUUFXOUWCAUWAUVAYIUUFSAWLUWAUVAVAZXNUWAUVAUCZUWBUVAVGZABCDDWIXGYHXOITVHWA
      UWCYKUUHXOUWCAUVAUWAYKUUHSUWDUWFUWEABCDDWIXGXOYHITVHWAVPVMWBXNUVSYNMDWTUV
      QXNYMJDWTUVQVRWEXNUVTUUKMDXIUVRXNUUJJDXIUVRVRWEVTVPWTWIMEJKLXCXDWCXIXGMFJ
      KLXLXMWCWDUPWF $.
  $}

  ${
    $d x y K $.  $d x y L $.
    mndprop.b $e |- ( Base ` K ) = ( Base ` L ) $.
    mndprop.p $e |- ( +g ` K ) = ( +g ` L ) $.
    $( If two structures have the same group components (properties), one is a
       monoid iff the other one is.  (Contributed by Mario Carneiro,
       11-Oct-2013.) $)
    mndprop $p |- ( K e. Mnd <-> L e. Mnd ) $=
      ( vx vy cmnd wcel wb wtru cbs cfv eqidd wceq a1i cv cplusg co wa oveqi
      mndpropd trud ) AGHBGHIJEFAKLZABJUCMUCBKLNJCOEPZFPZAQLZRUDUEBQLZRNJUDUCHU
      EUCHSSUFUGUDUEDTOUAUB $.
  $}

  ${
    $d u v w x y B $.  $d u v w x y G $.  $d u v w x y H $.  $d u v w x y .+ $.
    $d u v w x y S $.  $d u v w x y .0. $.
    issubmnd.b $e |- B = ( Base ` G ) $.
    issubmnd.p $e |- .+ = ( +g ` G ) $.
    issubmnd.z $e |- .0. = ( 0g ` G ) $.
    issubmnd.h $e |- H = ( G |`s S ) $.
    $( Characterize a submonoid by closure properties.  (Contributed by Mario
       Carneiro, 10-Jan-2015.) $)
    issubmnd $p |- ( ( G e. Mnd /\ S C_ B /\ .0. e. S ) ->
      ( H e. Mnd <-> A. x e. S A. y e. S ( x .+ y ) e. S ) ) $=
      ( wcel w3a cv co wa cfv cbs wceq vu vv cmnd wss wral cplusg simplr simprl
      vw simpll2 ressbas2 syl eleqtrd simprr eqid syl3anc cvv fvex eqeltri ssex
      mndcl 3ad2ant2 ressplusg ad2antrr oveqd ralrimivva simpl2 adantr ovrspc2v
      3eltr4d ancoms 3impb 3adant1l sseld 3anim123d simpl1 mndass syldan simpl3
      imp sylan sselda mndlid mndrid ismndd impbida ) FUCMZECUDZHEMZNZGUCMZAOZB
      OZDPZEMZBEUEAEUEZWJWKQZWOABEEWQWLEMZWMEMZQZQZWLWMGUFRZPZGSRZWNEXAWKWLXDMW
      MXDMXCXDMWJWKWTUGXAWLEXDWQWRWSUHXAWHEXDTZWGWHWIWKWTUJECGFLIUKZULZUMXAWMEX
      DWQWRWSUNXGUMXDXBGWLWMXDUOXBUOVAUPXADXBWLWMWJDXBTZWKWTWJEUQMZXHWHWGXIWIEC
      CFSRUQIFSURUSUTVBEDFGUQLJVCULZVDVEXGVJVFWJWPQZUAUBUIEDGHXKWHXEWGWHWIWPVGZ
      XFULWJXHWPXJVHWPUAOZEMZUBOZEMZXMXODPZEMZWJWPXNXPXRXNXPQWPXRABEEEDXMXOVIVK
      VLVMXKXNXPUIOZEMZNZXMCMZXOCMZXSCMZNZXQXSDPXMXOXSDPDPTZXKYAYEXKXNYBXPYCXTY
      DXKECXMXLVNXKECXOXLVNXKECXSXLVNVOVTXKWGYEYFWGWHWIWPVPZCDFXMXOXSIJVQWAVRWG
      WHWIWPVSXKXNYBHXMDPXMTZXKECXMXLWBZXKWGYBYHYGCDFXMHIJKWCWAVRXKXNYBXMHDPXMT
      ZYIXKWGYBYJYGCDFXMHIJKWDWAVRWEWF $.
  $}

  ${
    $d x .0. $.  $d x A $.  $d x B $.  $d x R $.  $d x S $.
    ress0g.s $e |- S = ( R |`s A ) $.
    ress0g.b $e |- B = ( Base ` R ) $.
    ress0g.0 $e |- .0. = ( 0g ` R ) $.
    $( ` 0g ` is unaffected by restriction.  This is a bit more generic than
       ~ submnd0 .  (Contributed by Thierry Arnoux, 23-Oct-2017.) $)
    ress0g $p |- ( ( R e. Mnd /\ .0. e. A /\ A C_ B ) -> .0. = ( 0g ` S ) ) $=
      ( vx cmnd wcel wss w3a cplusg cfv cbs wceq cvv co syl2anc eqeltri sylancl
      ressbas2 3ad2ant3 simp3 fvex ssexg eqid ressplusg syl simp2 simpl1 sselda
      cv wa mndlid mndrid grpidd ) CJKZEAKZABLZMZIACNOZDEVAUSADPOQUTABDCFGUCUDV
      BARKZVCDNOQVBVABRKVDUSUTVAUEZBCPORGCPUFUAABRUGUBAVCCDRFVCUHZUIUJUSUTVAUKV
      BIUNZAKZUOZUSVGBKZEVGVCSVGQUSUTVAVHULZVBABVGVEUMZBVCCVGEGVFHUPTVIUSVJVGEV
      CSVGQVKVLBVCCVGEGVFHUQTUR $.
  $}

  ${
    $d x B $.  $d x G $.  $d x H $.  $d x S $.  $d x .0. $.
    submnd0.b $e |- B = ( Base ` G ) $.
    submnd0.z $e |- .0. = ( 0g ` G ) $.
    submnd0.h $e |- H = ( G |`s S ) $.
    $( The zero of a submonoid is the same as the zero in the parent monoid.
       (Note that we must add the condition that the zero of the parent monoid
       is actually contained in the submonoid, because it is possible to have
       "subsets that are monoids" which are not submonoids because they have a
       different identity element.)  (Contributed by Mario Carneiro,
       10-Jan-2015.) $)
    submnd0 $p |- ( ( ( G e. Mnd /\ H e. Mnd ) /\ ( S C_ B /\ .0. e. S ) ) ->
      .0. = ( 0g ` H ) ) $=
      ( vx cmnd wcel wa cbs cfv cplusg eqid wceq co cvv oveqd ressbas2 ad2antrl
      wss c0g simprr eleqtrd cv fvex syl6eqel adantr ressplusg simpll ressbasss
      syl sseli mndlid syl2an eqtr3d mndrid ismgmid2 ) CJKZDJKZLZBAUCZEBKZLZLZI
      DMNZDONZEDDUDNZVHPVJPVIPVGEBVHVCVDVEUEVDBVHQVCVEBADCHFUAUBZUFVGIUGZVHKZLZ
      EVLCONZRZEVLVIRVLVNVOVIEVLVNBSKZVOVIQVGVQVMVGBVHSVKDMUHUIUJBVOCDSHVOPZUKU
      NZTVGVAVLAKZVPVLQVMVAVBVFULZVHAVLBADCHFUMUOZAVOCVLEFVRGUPUQURVNVLEVORZVLE
      VIRVLVNVOVIVLEVSTVGVAVTWCVLQVMWAWBAVOCVLEFVRGUSUQURUT $.
  $}

  ${
    $d x y .+ $.  $d y .0. $.  $d x y B $.  $d x F $.  $d x y I $.  $d x y R $.
    $d x G $.  $d x y ph $.  $d x y S $.  $d x y V $.  $d x y W $.  $d x y Y $.
    prdsplusgcl.y $e |- Y = ( S Xs_ R ) $.
    prdsplusgcl.b $e |- B = ( Base ` Y ) $.
    prdsplusgcl.p $e |- .+ = ( +g ` Y ) $.
    prdsplusgcl.s $e |- ( ph -> S e. V ) $.
    prdsplusgcl.i $e |- ( ph -> I e. W ) $.
    prdsplusgcl.r $e |- ( ph -> R : I --> Mnd ) $.
    ${
      prdsplusgcl.f $e |- ( ph -> F e. B ) $.
      prdsplusgcl.g $e |- ( ph -> G e. B ) $.
      $( Structure product pointwise sums are closed when the factors are
         monoids.  (Contributed by Stefan O'Rear, 10-Jan-2015.) $)
      prdsplusgcl $p |- ( ph -> ( F .+ G ) e. B ) $=
        ( wcel vx co cv cfv cplusg cmpt cmnd wf wfn ffn syl prdsplusgval cbs wa
        wral ffvelrnda simpr prdsbasprj eqid mndcl syl3anc ralrimiva prdsbasmpt
        adantr mpbird eqeltrd ) AFGCUBUAHUAUCZFUDZVGGUDZVGDUDZUEUDZUBZUFZBAUABC
        DEFGHIJKLMOPAHUGDUHDHUIZQHUGDUJUKZRSNULAVMBTVLVJUMUDZTZUAHUOAVQUAHAVGHT
        ZUNZVJUGTVHVPTVIVPTVQAHUGVGDQUPVSBDEFHVGIJKLMAEITVROVDZAHJTVRPVDZAVNVRV
        OVDZAFBTVRRVDAVRUQZURVSBDEGHVGIJKLMVTWAWBAGBTVRSVDWCURVPVKVJVHVIVPUSVKU
        SUTVAVBAUABDEVLHIJKLMOPVOVCVEVF $.
    $}

    prdsidlem.z $e |- .0. = ( 0g o. R ) $.
    $( Characterization of identity in a structure product.  (Contributed by
       Mario Carneiro, 10-Jan-2015.) $)
    prdsidlem $p |- ( ph -> ( .0. e. B /\ A. x e. B ( ( .0. .+ x ) = x /\
        ( x .+ .0. ) = x ) ) ) $=
      ( vy wcel cv co wceq wa wral cfv c0g cmpt ccom cvv fvexd cmnd feqmptd wfn
      fn0g a1i dffn5 sylib fveq2 fmptco syl5eq ffvelrnda eqid mndidcl ralrimiva
      cbs syl wf ffn prdsbasmpt mpbird eqeltrd cplusg fveq1i fvco2 sylan oveq1d
      adantlr adantr ad2antrr simplr simpr prdsbasprj mndlid eqtrd prdsplusgval
      syl2anc mpteq2dva prdsbasfn 3eqtr4d oveq2d mndrid jca ) AKCTZKBUAZDUBZWOU
      CZWOKDUBZWOUCZUDZBCUEAKSGSUAZEUFZUGUFZUHZCAKUGEUIZXDRASBGUJXBWOUGUFZXCEUG
      AXAGTZUDZXAEUKASGULEQUMAUGUJUNZUGBUJXFUHUCXIAUOUPBUJUGUQURWOXBUGUSUTVAAXD
      CTXCXBVFUFZTZSGUEAXKSGXHXBULTZXKAGULXAEQVBXJXBXCXJVCZXCVCZVDVGVEASCEFXCGH
      IJLMOPAGULEVHZEGUNZQGULEVIVGZVJVKVLZAWTBCAWOCTZUDZWQWSXTSGXAKUFZXAWOUFZXB
      VMUFZUBZUHSGYBUHZWPWOXTSGYDYBXTXGUDZYDXCYBYCUBZYBYFYAXCYBYCAXGYAXCUCXSXHY
      AXAXEUFZXCXAKXERVNAXPXGYHXCUCXQGUGEXAVOVPVAVRZVQYFXLYBXJTZYGYBUCXTGULXAEA
      XOXSQVSVBZYFCEFWOGXAHIJLMAFHTZXSXGOVTAGITZXSXGPVTAXPXSXGXQVTAXSXGWAXTXGWB
      WCZXJYCXBYBXCXMYCVCZXNWDWGWEWHXTSCDEFKWOGHIJLMAYLXSOVSZAYMXSPVSZAXPXSXQVS
      ZAWNXSXRVSZAXSWBZNWFXTWOGUNWOYEUCXTCEFWOGHIJLMYPYQYRYTWISGWOUQURZWJXTSGYB
      YAYCUBZUHYEWRWOXTSGUUBYBYFUUBYBXCYCUBZYBYFYAXCYBYCYIWKYFXLYJUUCYBUCYKYNXJ
      YCXBYBXCXMYOXNWLWGWEWHXTSCDEFWOKGHIJLMYPYQYRYTYSNWFUUAWJWMVEWM $.
  $}

  ${
    $d a b y I $.  $d a b c y ph $.  $d a b y R $.  $d a b c y Y $.
    $d a b y S $.
    prdsmndd.y $e |- Y = ( S Xs_ R ) $.
    prdsmndd.i $e |- ( ph -> I e. W ) $.
    prdsmndd.s $e |- ( ph -> S e. V ) $.
    prdsmndd.r $e |- ( ph -> R : I --> Mnd ) $.
    $( The product of a family of monoids is a monoid.  (Contributed by Stefan
       O'Rear, 10-Jan-2015.) $)
    prdsmndd $p |- ( ph -> Y e. Mnd ) $=
      ( va vy cfv wcel co wa cvv eqid adantr vb vc cbs cplusg c0g ccom eqidd cv
      elex syl cmnd simprl simprr prdsplusgcl 3impb cmpt wceq ffvelrnda adantlr
      wf w3a ad2antrr wfn ffn simplr1 simpr prdsbasprj simplr2 simplr3 syl13anc
      mndass prdsplusgfval oveq1d oveq2d mpteq2dva 3adantr3 simpr3 prdsplusgval
      3eqtr4d simpr1 simpr2 wral prdsidlem simpld simprd r19.21bi ismndd ) ALUA
      UBGUCNZGUDNZGUEBUFZAWHUGAWIUGALUHZWHOZUAUHZWHOZWKWMWIPZWHOZAWLWNQZQWHWIBC
      WKWMDRRGHWHSZWISZACROZWQACEOWTJCEUIUJZTADROZWQADFOXBIDFUIUJZTADUKBUTZWQKT
      AWLWNULAWLWNUMUNZUOAWLWNUBUHZWHOZVAZQZMDMUHZWONZXJXFNZXJBNZUDNZPZUPMDXJWK
      NZXJWMXFWIPZNZXNPZUPWOXFWIPWKXQWIPXIMDXOXSXIXJDOZQZXPXJWMNZXNPZXLXNPZXPYB
      XLXNPZXNPZXOXSYAXMUKOZXPXMUCNZOYBYHOXLYHOYDYFUQAXTYGXHADUKXJBKURUSYAWHBCW
      KDXJRRGHWRAWTXHXTXAVBZAXBXHXTXCVBZABDVCZXHXTAXDYKKDUKBVDUJZVBZWLWNXGAXTVE
      ZXIXTVFZVGYAWHBCWMDXJRRGHWRYIYJYMWLWNXGAXTVHZYOVGYAWHBCXFDXJRRGHWRYIYJYMW
      LWNXGAXTVIZYOVGYHXNXMXPYBXLYHSXNSVKVJYAXKYCXLXNYAWHWIBCWKWMDXJRRGHWRYIYJY
      MYNYPWSYOVLVMYAXRYEXPXNYAWHWIBCWMXFDXJRRGHWRYIYJYMYPYQWSYOVLVNVSVOXIMWHWI
      BCWOXFDRRGHWRAWTXHXATZAXBXHXCTZAYKXHYLTZAWLWNWPXGXEVPAWLWNXGVQZWSVRXIMWHW
      IBCWKXQDRRGHWRYRYSYTAWLWNXGVTXIWHWIBCWMXFDRRGHWRWSYRYSAXDXHKTAWLWNXGWAUUA
      UNWSVRVSAWJWHOZWJWKWIPWKUQZWKWJWIPWKUQZQZLWHWBZALWHWIBCDRRGWJHWRWSXAXCKWJ
      SWCZWDAWLQZUUCUUDAUUELWHAUUBUUFUUGWEWFZWDUUHUUCUUDUUIWEWG $.

    $( Zero in a product of monoids.  (Contributed by Stefan O'Rear,
       10-Jan-2015.) $)
    prds0g $p |- ( ph -> ( 0g o. R ) = ( 0g ` Y ) ) $=
      ( vb va cfv wcel co wceq wa cvv eqid c0g ccom cbs cv cplusg wral elex syl
      prdsidlem cmnd wrex prdsmndd mndid ismgmid mpbid eqcomd ) AGUANZUABUBZAUR
      GUCNZOURLUDZGUENZPUTQUTURVAPUTQRLUSUFRUQURQALUSVABCDSSGURHUSTZVATZACEOCSO
      JCEUGUHADFODSOIDFUGUHKURTUIALUSVAURMGUQVBUQTVCAGUJOMUDZUTVAPUTQUTVDVAPUTQ
      RLUSUFMUSUKABCDEFGHIJKULLMUSVAGVBVCUMUHUNUOUP $.
  $}

  ${
    $d x I $.  $d r x R $.  $d x V $.  $d r x .0. $.
    pwsmnd.y $e |- Y = ( R ^s I ) $.
    $( The structure power of a monoid is a monoid.  (Contributed by Mario
       Carneiro, 11-Jan-2015.) $)
    pwsmnd $p |- ( ( R e. Mnd /\ I e. V ) -> Y e. Mnd ) $=
      ( cmnd wcel wa csca cfv csn cxp cprds co eqid pwsval cvv simpr fvexd wf
      fconst6g adantr prdsmndd eqeltrd ) AFGZBCGZHZDAIJZBAKLZMNZFAUHBFCDEUHOPUG
      UIUHBQCUJUJOUEUFRUGAISUEBFUITUFBAFUAUBUCUD $.

    pws0g.z $e |- .0. = ( 0g ` R ) $.
    $( Zero in a product of monoids.  (Contributed by Mario Carneiro,
       11-Jan-2015.) $)
    pws0g $p |- ( ( R e. Mnd /\ I e. V ) -> ( I X. { .0. } ) = ( 0g ` Y ) ) $=
      ( vx vr cmnd wcel c0g csn cxp csca cfv cvv eqid cmpt wceq wa cprds adantr
      ccom co simpr fvexd wf fconst6g prds0g cv elex ad2antrr fconstmpt a1i wfn
      fn0g dffn5 sylib fveq2 syl6eqr fmptco syl6reqr pwsval fveq2d 3eqtr4d ) AJ
      KZBCKZUAZLBAMNZUDZAOPZVJUBUEZLPBEMNZDLPVIVJVLBQCVMVMRVGVHUFVIAOUGVGBJVJUH
      VHBAJUIUCUJVIVKHBESVNVIHIBQAIUKZLPZEVJLVGAQKVHHUKBKAJULUMVJHBASTVIHBAUNUO
      VILQUPZLIQVPSTVQVIUQUOIQLURUSVOATVPALPEVOALUTGVAVBHBEUNVCVIDVMLAVLBJCDFVL
      RVDVEVF $.
  $}

  ${
    $d p q x y .+ $.  $d a b p q u v w x y z ph $.  $d a b p q u v w x y z U $.
    $d p q u x .0. $.  $d p q u v w B $.  $d a b p q u x y z F $.  $d p q R $.
    $d a b p q x y z V $.
    imasmnd.u $e |- ( ph -> U = ( F "s R ) ) $.
    imasmnd.v $e |- ( ph -> V = ( Base ` R ) ) $.
    imasmnd.p $e |- .+ = ( +g ` R ) $.
    imasmnd.f $e |- ( ph -> F : V -onto-> B ) $.
    imasmnd.e $e |- ( ( ph /\ ( a e. V /\ b e. V ) /\ ( p e. V /\ q e. V ) )
      -> ( ( ( F ` a ) = ( F ` p ) /\ ( F ` b ) = ( F ` q ) )
        -> ( F ` ( a .+ b ) ) = ( F ` ( p .+ q ) ) ) ) $.
    ${
      imasmnd2.r $e |- ( ph -> R e. W ) $.
      imasmnd2.1 $e |- ( ( ph /\ x e. V /\ y e. V ) -> ( x .+ y ) e. V ) $.
      imasmnd2.2 $e |- ( ( ph /\ ( x e. V /\ y e. V /\ z e. V ) ) ->
        ( F ` ( ( x .+ y ) .+ z ) ) = ( F ` ( x .+ ( y .+ z ) ) ) ) $.
      imasmnd2.3 $e |- ( ph -> .0. e. V ) $.
      imasmnd2.4 $e |- ( ( ph /\ x e. V ) ->
        ( F ` ( .0. .+ x ) ) = ( F ` x ) ) $.
      imasmnd2.5 $e |- ( ( ph /\ x e. V ) ->
        ( F ` ( x .+ .0. ) ) = ( F ` x ) ) $.
      $( The image structure of a monoid is a monoid.  (Contributed by Mario
         Carneiro, 24-Feb-2015.) $)
      imasmnd2 $p |- ( ph -> ( U e. Mnd /\ ( F ` .0. ) = ( 0g ` U ) ) ) $=
        ( vu vv vw cmnd wcel cfv c0g wceq cplusg imasbas eqidd wf cv eqid 3expb
        cxp co caovclg imasaddf fovrn syl3an1 w3a wrex crn wfo eleq2d 3anbi123d
        forn syl wfn wb fofn fvelrnb bitr3d 3reeanv syl6bbr wa 3adant3r3 simpr3
        simpl imasaddval syl3anc simpr1 3adantr1 3eqtr4d oveq1d 3adant3r1 simp1
        wi oveq2d simp2 oveq12d simp3 syl5ibcom 3exp2 imp32 rexlimdv rexlimdvva
        eqeq12d sylbid imp fof ffvelrnd adantr simpr eqtrd id rexlimdva mpd3an3
        oveq2 oveq1 ismndd grpidd jca ) AHUKULLIUMZHUNUMUOAUHUIUJEHUPUMZHYBAEGH
        IJKQRTUBUQZAYCURZAEEVCEYCUSUHUTZEULZUIUTZEULZYFYHYCVDZEULAEGYCFHIJKMNOP
        TUAQRUBSYCVAZABCNUTMUTJJJFABUTZJULZCUTZJULZYLYNFVDZJULZUCVBVEZVFYFYHEEE
        YCVGVHAYGYIUJUTZEULZVIZYJYSYCVDZYFYHYSYCVDZYCVDZUOZAUUAYLIUMZYFUOZYNIUM
        ZYHUOZDUTZIUMZYSUOZVIZDJVJZCJVJBJVJZUUEAUUAUUGBJVJZUUICJVJZUULDJVJZVIZU
        UOAYFIVKZULZYHUUTULZYSUUTULZVIZUUAUUSAUVAYGUVBYIUVCYTAUUTEYFAJEIVLZUUTE
        UOTJEIVOVPZVMZAUUTEYHUVFVMAUUTEYSUVFVMVNAIJVQZUVDUUSVRAUVEUVHTJEIVSVPZU
        VHUVAUUPUVBUUQUVCUURBJYFIVTZCJYHIVTDJYSIVTVNVPWAUUGUUIUULBCDJJJWBWCAUUN
        UUEBCJJAYMYOWDWDUUMUUEDJAYMYOUUJJULZUUMUUEWPZWPAYMYOUVKUVLAYMYOUVKVIZWD
        ZUUFUUHYCVDZUUKYCVDZUUFUUHUUKYCVDZYCVDZUOUUMUUEUVNYPIUMZUUKYCVDZUUFYNUU
        JFVDZIUMZYCVDZUVPUVRUVNYPUUJFVDIUMZYLUWAFVDIUMZUVTUWCUDUVNAYQUVKUVTUWDU
        OAUVMWGZAYMYOYQUVKUCWEAYMYOUVKWFAEGYCFHIJYPUUJKMNOPTUAQRUBSYKWHWIUVNAYM
        UWAJULZUWCUWEUOUWFAYMYOUVKWJAYOUVKUWGYMANMYNUUJJJJFYRVEWKAEGYCFHIJYLUWA
        KMNOPTUAQRUBSYKWHWIWLUVNUVOUVSUUKYCAYMYOUVOUVSUOUVKAEGYCFHIJYLYNKMNOPTU
        AQRUBSYKWHWEWMUVNUVQUWBUUFYCAYOUVKUVQUWBUOYMAEGYCFHIJYNUUJKMNOPTUAQRUBS
        YKWHWNWQWLUUMUVPUUBUVRUUDUUMUVOYJUUKYSYCUUMUUFYFUUHYHYCUUGUUIUULWOZUUGU
        UIUULWRZWSUUGUUIUULWTZWSUUMUUFYFUVQUUCYCUWHUUMUUHYHUUKYSYCUWIUWJWSWSXFX
        AXBXCXDXEXGXHAJELIAUVEJEIUSTJEIXIVPUEXJZAYGYBYFYCVDZYFUOZAYGUUPUWMAUVAY
        GUUPUVGAUVHUVAUUPVRUVIUVJVPWAZAUUGUWMBJAYMWDZYBUUFYCVDZUUFUOUUGUWMUWOUW
        PLYLFVDIUMZUUFUWOALJULZYMUWPUWQUOAYMWGAUWRYMUEXKZAYMXLAEGYCFHIJLYLKMNOP
        TUAQRUBSYKWHWIUFXMUUGUWPUWLUUFYFUUFYFYBYCXQUUGXNZXFXAXOXGXHZAYGYFYBYCVD
        ZYFUOZAYGUUPUXCUWNAUUGUXCBJUWOUUFYBYCVDZUUFUOUUGUXCUWOUXDYLLFVDIUMZUUFA
        YMUWRUXDUXEUOUWSAEGYCFHIJYLLKMNOPTUAQRUBSYKWHXPUGXMUUGUXDUXBUUFYFUUFYFY
        BYCXRUWTXFXAXOXGXHZXSAUHEYCHYBYDYEUWKUXAUXFXTYA $.
    $}

    ${
      imasmnd.r $e |- ( ph -> R e. Mnd ) $.
      imasmnd.z $e |- .0. = ( 0g ` R ) $.
      $( The image structure of a monoid is a monoid.  (Contributed by Mario
         Carneiro, 24-Feb-2015.) $)
      imasmnd $p |- ( ph -> ( U e. Mnd /\ ( F ` .0. ) = ( 0g ` U ) ) ) $=
        ( wcel vx vy vz cmnd cv w3a co cbs cfv 3ad2ant1 simp2 wceq eleqtrd eqid
        simp3 mndcl syl3anc eleqtrrd wa adantr 3adant3r3 simpr3 mndass syl13anc
        fveq2d mndidcl syl eleq2d biimpa mndlid syl2anc mndrid imasmnd2 ) AUAUB
        UCBCDEFGUDHIJKLMNOPQRAUAUEZGTZUBUEZGTZUFZVNVPCUGZDUHUIZGVRDUDTZVNVTTZVP
        VTTZVSVTTAVOWAVQRUJVRVNGVTAVOVQUKAVOGVTULZVQNUJZUMZVRVPGVTAVOVQUOWEUMZV
        TCDVNVPVTUNZOUPUQWEURAVOVQUCUEZGTZUFZUSZVSWICUGZVNVPWICUGCUGZFWLWAWBWCW
        IVTTWMWNULAWAWKRUTAVOVQWBWJWFVAAVOVQWCWJWGVAWLWIGVTAVOVQWJVBAWDWKNUTUMV
        TCDVNVPWIWHOVCVDVEAHVTGAWAHVTTRVTDHWHSVFVGNURAVOUSZHVNCUGZVNFWOWAWBWPVN
        ULAWAVORUTZAVOWBAGVTVNNVHVIZVTCDVNHWHOSVJVKVEWOVNHCUGZVNFWOWAWBWSVNULWQ
        WRVTCDVNHWHOSVLVKVEVM $.
    $}
  $}

  ${
    $d a b p q B $.  $d a b p q F $.  $d a b p q R $.  $d a b p q U $.
    $d a b p q V $.
    imasmndf1.u $e |- U = ( F "s R ) $.
    imasmndf1.v $e |- V = ( Base ` R ) $.
    $( The image of a monoid under an injection is a monoid.  (Contributed by
       Mario Carneiro, 24-Feb-2015.) $)
    imasmndf1 $p |- ( ( F : V -1-1-> B /\ R e. Mnd ) -> U e. Mnd ) $=
      ( vq vp va vb wf1 cmnd wcel c0g cfv wceq a1i eqid cv crn cplusg cimas cbs
      wa co wf1o wfo f1f1orn adantr f1ofo syl f1ocpbl simpr imasmnd simpld ) EA
      DLZBMNZUEZCMNBOPZDPCOPQUSDUAZBUBPZBCDEUTHIJKCDBUCUFQUSFREBUDPQUSGRVBSUSEV
      ADUGZEVADUHUQVCUREADUIUJZEVADUKULUSJTKTITHTVBDEVAVDUMUQURUNUTSUOUP $.
  $}

  ${
    $d x y R $.  $d x y S $.
    xpsmnd.t $e |- T = ( R Xs. S ) $.
    $( The binary product of monoids is a monoid.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    xpsmnd $p |- ( ( R e. Mnd /\ S e. Mnd ) -> T e. Mnd ) $=
      ( vx vy cmnd wcel cbs cfv cv csn ccda co ccnv csca eqid wf1o c2o con0 cxp
      wa cmpt2 cprds cimas simpl simpr xpsval wf1 crn xpsff1o2 wb xpslem f1oeq3
      wceq syl mpbii f1ocnv f1of1 3syl cvv 2on a1i fvexd xpscf biimpri prdsmndd
      wf imasmndf1 syl2anc eqeltrd ) AGHZBGHZUBZCEFAIJZBIJZEKLFKLMNOUCZOZAPJZAL
      BLMNOZUDNZUENZGVNEFABCWAVQVSGGVOVPDVOQZVPQZVLVMUFZVLVMUGZVQQZVSQZWAQZUHVN
      WAIJZVOVPUAZVRUIZWAGHWBGHVNWKWJVQRZWJWKVRRWLVNWKVQUJZVQRZWMEFVOVPVQWGUKVN
      WNWJUOWOWMULVNEFABCWAVQVSGGVOVPDWCWDWEWFWGWHWIUMWNWJWKVQUNUPUQWKWJVQURWJW
      KVRUSUTVNVTVSSVATWAWISTHVNVBVCVNAPVDSGVTVHVNGABVEVFVGWKWAWBVRWJWBQWJQVIVJ
      VK $.
  $}

  ${
    $d I x y $.
    mnd1.m $e |- M = { <. ( Base ` ndx ) , { I } >. ,
                       <. ( +g ` ndx ) , { <. <. I , I >. , I >. } >. } $.
    $( The (smallest) structure representing a _trivial monoid_ consists of one
       element.  (Contributed by AV, 28-Apr-2019.)  (Proof shortened by AV,
       11-Feb-2020.) $)
    mnd1 $p |- ( I e. V -> M e. Mnd ) $=
      ( vx vy wcel cv cop csn co wceq wral cfv cvv oveq2 eqeq12d oveq1 anbi12d
      wa csgrp wrex cmnd sgrp1 df-ov opex fvsng mpan syl5eq id ralsng mpbir2and
      eqeq1d ralbidv rexsng mpbird cbs grpbase ax-mp grpplusg ismnddef sylanbrc
      snex cplusg ) ACGZBUAGEHZFHZAAIZAIZJZKZVGLZVGVFVJKZVGLZTZFAJZMZEVPUBZBUCG
      ABCDUDVEVRAVGVJKZVGLZVGAVJKZVGLZTZFVPMZVEWDAAVJKZALZWFVEWEVHVJNZAAAVJUEVH
      OGVEWGALAAUFVHAOCUGUHUIZWHWCWFWFTFACVGALZVTWFWBWFWIVSWEVGAVGAAVJPWIUJZQWI
      WAWEVGAVGAAVJRWJQSUKULVQWDEACVFALZVOWCFVPWKVLVTVNWBWKVKVSVGVFAVGVJRUMWKVM
      WAVGVFAVGVJPUMSUNUOUPVPVJEBFVPOGVPBUQNLAVCVPVJBODURUSVJOGVJBVDNLVIVCVPVJB
      ODUTUSVAVB $.

    $d I a $.  $d M a $.  $d V a $.
    $( The singleton element of a _trivial monoid_ is its identity element.
       (Contributed by AV, 23-Jan-2020.) $)
    mnd1id $p |- ( I e. V -> ( 0g ` M ) = I ) $=
      ( va wcel c0g cfv csn cop cvv cbs wceq ax-mp co eqeq12d syl5ibrcom syl5bi
      snex imp grpbase eqid cplusg grpplusg snidg velsn df-ov opex fvsng syl5eq
      cv mpan oveq2 id oveq1 ismgmid2 eqcomd ) ACFZABGHZUREAIZAAJZAJZIZABUSUTKF
      UTBLHMASUTVCBKDUANUSUBVCKFVCBUCHMVBSUTVCBKDUDNACUEUREUKZUTFZAVDVCOZVDMZVE
      VDAMZURVGEAUFZURVGVHAAVCOZAMZURVJVAVCHZAAAVCUGVAKFURVLAMAAUHVAAKCUIULUJZV
      HVFVJVDAVDAAVCUMVHUNZPQRTURVEVDAVCOZVDMZVEVHURVPVIURVPVHVKVMVHVOVJVDAVDAA
      VCUOVNPQRTUPUQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Monoid homomorphisms and submonoids
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c MndHom $.
  $c SubMnd $.

  $( Hom-set generator class for monoids. $)
  cmhm $a class MndHom $.

  $( Class function taking a monoid to its lattice of submonoids. $)
  csubmnd $a class SubMnd $.

  ${
    $d s t f x y $.
    $( A monoid homomorphism is a function on the base sets which preserves the
       binary operation and the identity.  (Contributed by Mario Carneiro,
       7-Mar-2015.) $)
    df-mhm $a |- MndHom = ( s e. Mnd , t e. Mnd |->
          { f e. ( ( Base ` t ) ^m ( Base ` s ) ) |
            ( A. x e. ( Base ` s ) A. y e. ( Base ` s )
                  ( f ` ( x ( +g ` s ) y ) ) =
                    ( ( f ` x ) ( +g ` t ) ( f ` y ) ) /\
              ( f ` ( 0g ` s ) ) = ( 0g ` t ) ) } ) $.

    $( A submonoid is a subset of a monoid which contains the identity and is
       closed under the operation.  Such subsets are themselves monoids with
       the same identity.  (Contributed by Mario Carneiro, 7-Mar-2015.) $)
    df-submnd $a |- SubMnd = ( s e. Mnd |-> { t e. ~P ( Base ` s ) |
            ( ( 0g ` s ) e. t /\
              A. x e. t A. y e. t ( x ( +g ` s ) y ) e. t ) } ) $.
  $}

  ${
    $d f s t .+^ $.  $d f s t x y B $.  $d f s t x y S $.  $d f s t x y T $.
    $d f s t .+ $.  $d f s t .0. $.  $d f s t C $.  $d f x y F $.
    $d f s t Y $.
    ismhm.b $e |- B = ( Base ` S ) $.
    ismhm.c $e |- C = ( Base ` T ) $.
    ismhm.p $e |- .+ = ( +g ` S ) $.
    ismhm.q $e |- .+^ = ( +g ` T ) $.
    ismhm.z $e |- .0. = ( 0g ` S ) $.
    ismhm.y $e |- Y = ( 0g ` T ) $.
    $( Property of a monoid homomorphism.  (Contributed by Mario Carneiro,
       7-Mar-2015.) $)
    ismhm $p |- ( F e. ( S MndHom T ) <-> ( ( S e. Mnd /\ T e. Mnd ) /\
          ( F : B --> C /\ A. x e. B A. y e. B ( F ` ( x .+ y ) ) =
                  ( ( F ` x ) .+^ ( F ` y ) ) /\ ( F ` .0. ) = Y ) ) ) $=
      ( co cfv wceq vs vt vf cmhm wcel cmnd wa wf wral w3a cplusg cbs cmap crab
      cv df-mhm elmpt2cl fveq2 syl6eqr oveqan12rd adantr oveqd fveq2d eqeqan12d
      c0g raleqbidv anbi12d rabeqbidv ovex rabex ovmpt2a cvv fvex eqeltri elmap
      eleq2d anbi1i fveq1 oveq12d eqeq12d 2ralbidv eqeq1d 3anass 3bitr4i syl6bb
      elrab biadan2 ) IGHUDRZUEZGUFUEHUFUEUGZCDIUHZAUOZBUOZERZISZWLISZWMISZFRZT
      ZBCUIACUIZKISZJTZUJZUAUBUFUFWLWMUAUOZUKSZRZUCUOZSZWLXGSZWMXGSZUBUOZUKSZRZ
      TZBXDULSZUIZAXOUIZXDVESZXGSZXKVESZTZUGZUCXKULSZXOUMRZUNZGHUDIABUBUCUAUPZU
      QWJWIIWNXGSZXIXJFRZTZBCUIZACUIZKXGSZJTZUGZUCDCUMRZUNZUEZXCWJWHYPIUAUBGHUF
      UFYEYPUDXDGTZXKHTZUGZYBYNUCYDYOYSYRYCDXOCUMYSYCHULSZDXKHULURMUSYRXOGULSZC
      XDGULURLUSZUTYTXQYKYAYMYTXPYJAXOCYRXOCTYSUUCVAZYTXNYIBXOCUUDYRYSXHYGXMYHY
      RXFWNXGYRXEEWLWMYRXEGUKSEXDGUKURNUSVBVCYSXLFXIXJYSXLHUKSFXKHUKUROUSVBVDVF
      VFYRYSXSYLXTJYRXRKXGYRXRGVESKXDGVEURPUSVCYSXTHVESJXKHVEURQUSVDVGVHYFYNUCY
      ODCUMVIVJVKVPIYOUEZWTXBUGZUGWKUUFUGYQXCUUEWKUUFDCIDUUAVLMHULVMVNCUUBVLLGU
      LVMVNVOVQYNUUFUCIYOXGITZYKWTYMXBUUGYIWSABCCUUGYGWOYHWRWNXGIVRUUGXIWPXJWQF
      WLXGIVRWMXGIVRVSVTWAUUGYLXAJKXGIVRWBVGWFWKWTXBWCWDWEWG $.
  $}

  ${
    $d f s t x y B $.  $d x y F $.  $d x y S $.  $d x y T $.
    $( Reverse closure of a monoid homomorphism.  (Contributed by Mario
       Carneiro, 7-Mar-2015.) $)
    mhmrcl1 $p |- ( F e. ( S MndHom T ) -> S e. Mnd ) $=
      ( vs vt vx vy vf cmnd cv cplusg cfv co wceq cbs wral c0g wa cmap crab
      cmhm df-mhm elmpt2cl1 ) DEIIFJZGJZDJZKLMHJZLUDUGLUEUGLEJZKLMNGUFOLZPFUIPU
      FQLUGLUHQLNRHUHOLUISMTABUACFGEHDUBUC $.

    $( Reverse closure of a monoid homomorphism.  (Contributed by Mario
       Carneiro, 7-Mar-2015.) $)
    mhmrcl2 $p |- ( F e. ( S MndHom T ) -> T e. Mnd ) $=
      ( vs vt vx vy vf cmnd cv cplusg cfv co wceq cbs wral c0g wa cmap crab
      cmhm df-mhm elmpt2cl2 ) DEIIFJZGJZDJZKLMHJZLUDUGLUEUGLEJZKLMNGUFOLZPFUIPU
      FQLUGLUHQLNRHUHOLUISMTABUACFGEHDUBUC $.

    mhmf.b $e |- B = ( Base ` S ) $.
    mhmf.c $e |- C = ( Base ` T ) $.
    $( A monoid homomorphism is a function.  (Contributed by Mario Carneiro,
       7-Mar-2015.) $)
    mhmf $p |- ( F e. ( S MndHom T ) -> F : B --> C ) $=
      ( vx vy cmhm co wcel cv cplusg cfv wceq wral c0g cmnd eqid wf w3a simprbi
      wa ismhm simp1d ) ECDJKLZABEUAZHMZIMZCNOZKEOUIEOUJEODNOZKPIAQHAQZCROZEODR
      OZPZUGCSLDSLUDUHUMUPUBHIABUKULCDEUOUNFGUKTULTUNTUOTUEUCUF $.
  $}

  ${
    $d x y B $.  $d w x y z C $.  $d f x y J $.  $d f x y L $.  $d f x y ph $.
    $d f w x y z K $.  $d f w x y z M $.
    mhmpropd.a $e |- ( ph -> B = ( Base ` J ) ) $.
    mhmpropd.b $e |- ( ph -> C = ( Base ` K ) ) $.
    mhmpropd.c $e |- ( ph -> B = ( Base ` L ) ) $.
    mhmpropd.d $e |- ( ph -> C = ( Base ` M ) ) $.
    mhmpropd.e $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( x ( +g ` J ) y ) = ( x ( +g ` L ) y ) ) $.
    mhmpropd.f $e |- ( ( ph /\ ( x e. C /\ y e. C ) ) ->
        ( x ( +g ` K ) y ) = ( x ( +g ` M ) y ) ) $.
    $( Monoid homomorphism depends only on the monoidal attributes of
       structures.  (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by
       Mario Carneiro, 7-Nov-2015.) $)
    mhmpropd $p |- ( ph -> ( J MndHom K ) = ( L MndHom M ) ) $=
      ( co wcel wa cfv wceq vf vw vz cmhm cmnd cbs cv wf cplusg wral c0g w3a wb
      adantlr ffvelrn anim12dan ralrimivva oveq1 eqeq12d oveq2 cbvral2v rspc2va
      fveq2d sylib syl2anr anassrs 2ralbidva raleq raleqbi1dv adantr grpidpropd
      adantrl syl 3bitr3d anbi12d pm5.32da feq23d anbi1d 3bitr4g mndpropd bitrd
      3anass eqid ismhm eqrdv ) AUAFGUDPZHIUDPZAFUEQZGUEQZRZFUFSZGUFSZUAUGZUHZB
      UGZCUGZFUISZPZWMSZWOWMSZWPWMSZGUISZPZTZCWKUJZBWKUJZFUKSZWMSZGUKSZTZULZRZH
      UEQZIUEQZRZHUFSZIUFSZWMUHZWOWPHUISZPZWMSZWTXAIUISZPZTZCXPUJZBXPUJZHUKSZWM
      SZIUKSZTZULZRZWMWFQWMWGQAXLWJYKRYLAWJXKYKAWJRZWNXFXJRZRZXRYFYJRZRZXKYKYMD
      EWMUHZYNRYRYPRYOYQYMYRYNYPAWJYRYNYPUMAWJYRRZRZXFYFXJYJYTXDCDUJZBDUJZYDCDU
      JZBDUJZXFYFAYRUUBUUDUMWJAYRRZXDYDBCDDUUEWODQZWPDQZRZRWSYAXCYCAUUHWSYATYRA
      UUHRWRXTWMNVCUNAYRUUHXCYCTZYRUUHRWTEQZXAEQZRUBUGZUCUGZXBPZUULUUMYBPZTZUCE
      UJUBEUJZUUIAYRUUFUUJUUGUUKDEWOWMUODEWPWMUOUPAWOWPXBPZWOWPYBPZTZCEUJBEUJUU
      QAUUTBCEEOUQUUTUUPUULWPXBPZUULWPYBPZTBCUBUCEEWOUULTUURUVAUUSUVBWOUULWPXBU
      RWOUULWPYBURUSWPUUMTUVAUUNUVBUUOWPUUMUULXBUTWPUUMUULYBUTUSVAVDUUPUUIWTUUM
      XBPZWTUUMYBPZTUBUCWTXAEEUULWTTUUNUVCUUOUVDUULWTUUMXBURUULWTUUMYBURUSUUMXA
      TUVCXCUVDYCUUMXAWTXBUTUUMXAWTYBUTUSVBVEVFUSVGVLAUUBXFUMZYSADWKTZUVEJUUAXE
      BDWKXDCDWKVHVIVMVJAUUDYFUMZYSADXPTZUVGLUUCYEBDXPYDCDXPVHVIVMVJVNYTXHYHXIY
      IYTXGYGWMYTBCDFHAUVFYSJVJAUVHYSLVJAUUHWRXTTYSNUNVKVCYTBCEGIAEWLTYSKVJAEXQ
      TYSMVJAWOEQWPEQRUUTYSOUNVKUSVOVFVPYMYRWNYNAYRWNUMWJADEWKWLWMJKVQVJVRYMYRX
      RYPAYRXRUMWJADEXPXQWMLMVQVJVRVNWNXFXJWBXRYFYJWBVSVPAWJXOYKAWHXMWIXNABCDFH
      JLNVTABCEGIKMOVTVOVRWABCWKWLWQXBFGWMXIXGWKWCWLWCWQWCXBWCXGWCXIWCWDBCXPXQX
      SYBHIWMYIYGXPWCXQWCXSWCYBWCYGWCYIWCWDVSWE $.
  $}

  ${
    $d B x y $.  $d F x y $.  $d .+ x y $.  $d .+^ x y $.  $d S x y $.
    $d T x y $.  $d X x y $.  $d Y x y $.
    mhmlin.b $e |- B = ( Base ` S ) $.
    mhmlin.p $e |- .+ = ( +g ` S ) $.
    mhmlin.q $e |- .+^ = ( +g ` T ) $.
    $( A monoid homomorphism commutes with composition.  (Contributed by Mario
       Carneiro, 7-Mar-2015.) $)
    mhmlin $p |- ( ( F e. ( S MndHom T ) /\ X e. B /\ Y e. B ) ->
        ( F ` ( X .+ Y ) ) = ( ( F ` X ) .+^ ( F ` Y ) ) ) $=
      ( vx vy co wcel cfv wceq cv wral eqid cmhm wa cbs wf c0g cmnd w3a simprbi
      ismhm simp2d oveq1 fveq2d fveq2 oveq1d eqeq12d oveq2 oveq2d rspc2v 3impib
      syl5com ) FDEUANOZGAOZHAOZGHBNZFPZGFPZHFPZCNZQZVALRZMRZBNZFPZVJFPZVKFPZCN
      ZQZMASLASZVBVCUBVIVAAEUCPZFUDZVRDUEPZFPEUEPZQZVADUFOEUFOUBVTVRWCUGLMAVSBC
      DEFWBWAIVSTJKWATWBTUIUHUJVQVIGVKBNZFPZVFVOCNZQLMGHAAVJGQZVMWEVPWFWGVLWDFV
      JGVKBUKULWGVNVFVOCVJGFUMUNUOVKHQZWEVEWFVHWHWDVDFVKHGBUPULWHVOVGVFCVKHFUMU
      QUOURUTUS $.
  $}

  ${
    $d F x y $.  $d S x y $.  $d T x y $.
    mhm0.z $e |- .0. = ( 0g ` S ) $.
    mhm0.y $e |- Y = ( 0g ` T ) $.
    $( A monoid homomorphism preserves zero.  (Contributed by Mario Carneiro,
       7-Mar-2015.) $)
    mhm0 $p |- ( F e. ( S MndHom T ) -> ( F ` .0. ) = Y ) $=
      ( vx vy cmhm co wcel cbs cfv cv cplusg wceq wral cmnd eqid wf w3a simprbi
      wa ismhm simp3d ) CABJKLZAMNZBMNZCUAZHOZIOZAPNZKCNUKCNULCNBPNZKQIUHRHUHRZ
      ECNDQZUGASLBSLUDUJUOUPUBHIUHUIUMUNABCDEUHTUITUMTUNTFGUEUCUF $.
  $}

  ${
    $d B a b $.  $d M a b $.
    idmhm.b $e |- B = ( Base ` M ) $.
    $( The identity homomorphism on a monoid.  (Contributed by AV,
       14-Feb-2020.) $)
    idmhm $p |- ( M e. Mnd -> ( _I |` B ) e. ( M MndHom M ) ) $=
      ( va vb cmnd wcel wa cid cres wf cv cplusg cfv wceq wral eqid fvresi syl
      co c0g w3a cmhm id ancri wf1o f1oi f1of mp1i mndcl 3expb oveqan12d adantl
      eqtr4d ralrimivva mndidcl 3jca ismhm sylanbrc ) BFGZUTUTHAAIAJZKZDLZELZBM
      NZTZVANZVCVANZVDVANZVETZOZEAPDAPZBUANZVANVMOZUBVABBUCTGUTUTUTUDUEUTVBVLVN
      AAVAUFVBUTAUGAAVAUHUIUTVKDEAAUTVCAGZVDAGZHZHZVGVFVJVRVFAGZVGVFOUTVOVPVSAV
      EBVCVDCVEQZUJUKAVFRSVQVJVFOUTVOVPVHVCVIVDVEAVCRAVDRULUMUNUOUTVMAGVNABVMCV
      MQZUPAVMRSUQDEAAVEVEBBVAVMVMCCVTVTWAWAURUS $.
  $}

  ${
    $d B x y $.  $d C x y $.  $d F x y $.  $d R x y $.  $d S x y $.
    mhmf1o.b $e |- B = ( Base ` R ) $.
    mhmf1o.c $e |- C = ( Base ` S ) $.
    $( A monoid homomorphism is bijective iff its converse is also a monoid
       homomorphism.  (Contributed by AV, 22-Oct-2019.) $)
    mhmf1o $p |- ( F e. ( R MndHom S )
                   -> ( F : B -1-1-onto-> C <-> `' F e. ( S MndHom R ) ) ) $=
      ( vx vy cmhm co wcel wf1o wa cfv wceq adantr syl eqid syl2anc ccnv cplusg
      cmnd wf wral c0g w3a mhmrcl2 mhmrcl1 jca f1ocnv adantl f1of simpll simprl
      cv ffvelrnd simprr mhmlin syl3anc simpr f1ocnvfv2 eqtrd wi mndcl f1ocnvfv
      oveq12d mpd ralrimivva mhm0 eqcomd fveq2d mndidcl f1ocnvfv1 3jca sylanbrc
      ismhm wfn mhmf ffn dff1o4 impbida ) ECDJKLZABEMZEUAZDCJKLZWCWDNZDUCLZCUCL
      ZNZBAWEUDZHUPZIUPZDUBOZKZWEOWLWEOZWMWEOZCUBOZKZPZIBUEHBUEZDUFOZWEOZCUFOZP
      ZUGWFWCWJWDWCWHWICDEUHCDEUIZUJQWGWKXAXEWGBAWEMZWKWDXGWCABEUKULBAWEUMRZWGW
      THIBBWGWLBLZWMBLZNZNZWSEOZWOPZWTXLXMWPEOZWQEOZWNKZWOXLWCWPALZWQALZXMXQPWC
      WDXKUNXLBAWLWEWGWKXKXHQZWGXIXJUOZUQZXLBAWMWEXTWGXIXJURZUQZAWRWNCDEWPWQFWR
      SZWNSZUSUTXLXOWLXPWMWNXLWDXIXOWLPWGWDXKWCWDVAZQZYAABWLEVBTXLWDXJXPWMPYHYC
      ABWMEVBTVGVCXLWDWSALZXNWTVDYHXLWIXRXSYIWGWIXKWCWIWDXFQQYBYDAWRCWPWQFYEVEU
      TABWSWOEVFTVHVIWGXCXDEOZWEOZXDWGXBYJWEWGYJXBWCYJXBPWDCDEXBXDXDSZXBSZVJQVK
      VLWGWDXDALZYKXDPYGWCYNWDWCWIYNXFACXDFYLVMRQABXDEVNTVCVOHIBAWNWRDCWEXDXBGF
      YFYEYMYLVQVPWCWFNZEAVRZWEBVRZWDYOABEUDZYPWCYRWFABCDEFGVSQABEVTRYOWKYQWFWK
      WCBADCWEGFVSULBAWEVTRABEWAVPWB $.
  $}

  ${
    $d M m t x y $.  $d S t x y $.  $d s t x y $.
    $( Reverse closure for submonoids.  (Contributed by Mario Carneiro,
       7-Mar-2015.) $)
    submrcl $p |- ( S e. ( SubMnd ` M ) -> M e. Mnd ) $=
      ( vs vt vx vy csubmnd cfv wcel cdm cmnd cv c0g cplusg co wral wa cbs crab
      cpw df-submnd dmmptss elfvdm sseldi ) ABGHIGJKBCKCLZMHDLZIELFLUENHOUFIFUF
      PEUFPQDUERHTSGEFDCUAUBABGUCUD $.

    issubm.b $e |- B = ( Base ` M ) $.
    issubm.z $e |- .0. = ( 0g ` M ) $.
    issubm.p $e |- .+ = ( +g ` M ) $.
    $( Expand definition of a submonoid.  (Contributed by Mario Carneiro,
       7-Mar-2015.) $)
    issubm $p |- ( M e. Mnd -> ( S e. ( SubMnd ` M ) <->
          ( S C_ B /\ .0. e. S /\ A. x e. S A. y e. S ( x .+ y ) e. S ) ) ) $=
      ( vt vm wcel cfv c0g cv cplusg wral wa cbs cmnd csubmnd cpw crab wss wceq
      co w3a fveq2 pweqd eleq1d oveqd 2ralbidv anbi12d rabeqbidv df-submnd fvex
      pwex rabex fvmpt eleq2d eleq2 raleqbi1dv elrab sseq2i eleq1i oveqi 3anass
      2ralbii anbi12i elpw2 anbi1i 3bitr4ri bitri syl6bb ) FUAMZEFUBNZMEFONZKPZ
      MZAPZBPZFQNZUGZVSMZBVSRZAVSRZSZKFTNZUCZUDZMZECUEZGEMZWAWBDUGZEMZBERAERZUH
      ZVPVQWKELFLPZONZVSMZWAWBWSQNZUGZVSMZBVSRAVSRZSZKWSTNZUCZUDWKUAUBWSFUFZXFW
      HKXHWJXIXGWIWSFTUIUJXIXAVTXEWGXIWTVRVSWSFOUIUKXIXDWEABVSVSXIXCWDVSXIXBWCW
      AWBWSFQUIULUKUMUNUOABKLUPWHKWJWIFTUQZURUSUTVAWLEWJMZVREMZWDEMZBERZAERZSZS
      ZWRWHXPKEWJVSEUFVTXLWGXOVSEVRVBWFXNAVSEWEXMBVSEVSEWDVBVCVCUNVDWMWNWQSZSEW
      IUEZXPSWRXQWMXSXRXPCWIEHVEWNXLWQXOGVREIVFWPXMABEEWOWDEDWCWAWBJVGVFVIVJVJW
      MWNWQVHXKXSXPEWIXJVKVLVMVNVO $.
  $}

  ${
    $d B x y $.  $d H x y $.  $d M x y $.  $d S x y $.  $d .0. x y $.
    issubm2.b $e |- B = ( Base ` M ) $.
    issubm2.z $e |- .0. = ( 0g ` M ) $.
    issubm2.h $e |- H = ( M |`s S ) $.
    $( Submonoids are subsets that are also monoids with the same zero.
       (Contributed by Mario Carneiro, 7-Mar-2015.) $)
    issubm2 $p |- ( M e. Mnd -> ( S e. ( SubMnd ` M ) <->
          ( S C_ B /\ .0. e. S /\ H e. Mnd ) ) ) $=
      ( vx vy cmnd wcel csubmnd cfv wss cv wral w3a wa df-3an cplusg co eqid wb
      issubm issubmnd bicomd 3expb pm5.32da 3bitr4g bitrd ) DKLZBDMNLBAOZEBLZIP
      JPDUANZUBBLJBQIBQZRZUMUNCKLZRZIJAUOBDEFGUOUCZUEULUMUNSZUPSVAURSUQUSULVAUP
      URULUMUNUPURUDULUMUNRURUPIJAUOBDCEFUTGHUFUGUHUIUMUNUPTUMUNURTUJUK $.
  $}

  ${
    $d x y z B $.  $d x y M $.  $d x y ph $.  $d x y ps $.  $d z .+ $.
    $d z .0. $.  $d z ch $.  $d z et $.  $d z ta $.  $d z th $.
    issubmd.b $e |- B = ( Base ` M ) $.
    issubmd.p $e |- .+ = ( +g ` M ) $.
    issubmd.z $e |- .0. = ( 0g ` M ) $.
    issubmd.m $e |- ( ph -> M e. Mnd ) $.
    issubmd.cz $e |- ( ph -> ch ) $.
    issubmd.cp $e |- ( ( ph /\ ( ( x e. B /\ y e. B ) /\
          ( th /\ ta ) ) ) -> et ) $.
    issubmd.ch $e |- ( z = .0. -> ( ps <-> ch ) ) $.
    issubmd.th $e |- ( z = x -> ( ps <-> th ) ) $.
    issubmd.ta $e |- ( z = y -> ( ps <-> ta ) ) $.
    issubmd.et $e |- ( z = ( x .+ y ) -> ( ps <-> et ) ) $.
    $( Deduction for proving a submonoid.  (Contributed by Stefan O'Rear,
       23-Aug-2015.)  (Revised by Stefan O'Rear, 5-Sep-2015.) $)
    issubmd $p |- ( ph -> { z e. B | ps } e. ( SubMnd ` M ) ) $=
      ( crab csubmnd cfv wcel wss cv co wral ssrab2 cmnd mndidcl elrab sylanbrc
      a1i syl anbi12i adantr simprll simprrl syl3anc an4 sylan2b ralrimivva w3a
      wa mndcl wb issubm mpbir3and ) ABIJUDZLUEUFUGZVMJUHZMVMUGZGUIZHUIZKUJZVMU
      GZHVMUKGVMUKZVOABIJULUQAMJUGZCVPALUMUGZWBQJLMNPUNURRBCIMJTUOUPAVTGHVMVMVQ
      VMUGZVRVMUGZVHAVQJUGZDVHZVRJUGZEVHZVHZVTWDWGWEWIBDIVQJUAUOBEIVRJUBUOUSAWJ
      VHZVSJUGZFVTWKWCWFWHWLAWCWJQUTAWFDWIVAAWGWHEVBJKLVQVRNOVIVCWJAWFWHVHDEVHV
      HFWFDWHEVDSVEBFIVSJUCUOUPVEVFAWCVNVOVPWAVGVJQGHJKVMLMNPOVKURVL $.
  $}

  ${
    submss.b $e |- B = ( Base ` M ) $.
    $( Submonoids are subsets of the base set.  (Contributed by Mario Carneiro,
       7-Mar-2015.) $)
    submss $p |- ( S e. ( SubMnd ` M ) -> S C_ B ) $=
      ( csubmnd cfv wcel wss c0g cress co cmnd w3a submrcl eqid issubm2 syl ibi
      wb simp1d ) BCEFGZBAHZCIFZBGZCBJKZLGZUAUBUDUFMZUACLGUAUGSBCNABUECUCDUCOUE
      OPQRT $.

    $( Every monoid is trivially a submonoid of itself.  (Contributed by Stefan
       O'Rear, 15-Aug-2015.) $)
    submid $p |- ( M e. Mnd -> B e. ( SubMnd ` M ) ) $=
      ( cmnd wcel csubmnd cfv wss c0g cress co ssid eqid mndidcl ressid eqeltrd
      a1i id issubm2 mpbir3and ) BDEZABFGEAAHZBIGZAEBAJKZDEUBUAALQABUCCUCMZNUAU
      DBDABDCOUARPAAUDBUCCUEUDMST $.
  $}

  ${
    subm0cl.z $e |- .0. = ( 0g ` M ) $.
    $( Submonoids contain zero.  (Contributed by Mario Carneiro,
       7-Mar-2015.) $)
    subm0cl $p |- ( S e. ( SubMnd ` M ) -> .0. e. S ) $=
      ( csubmnd cfv wcel cbs wss cress co cmnd w3a submrcl eqid issubm2 syl ibi
      wb simp2d ) ABEFGZABHFZIZCAGZBAJKZLGZUAUCUDUFMZUABLGUAUGSABNUBAUEBCUBODUE
      OPQRT $.
  $}

  ${
    $d M x y $.  $d .+ x y $.  $d S x y $.  $d X x y $.  $d Y y $.
    submcl.p $e |- .+ = ( +g ` M ) $.
    $( Submonoids are closed under the monoid operation.  (Contributed by Mario
       Carneiro, 10-Mar-2015.) $)
    submcl $p |- ( ( S e. ( SubMnd ` M ) /\ X e. S /\ Y e. S ) ->
        ( X .+ Y ) e. S ) $=
      ( vx vy csubmnd cfv wcel co wa cv wral cbs wss c0g w3a eqid wb issubm syl
      cmnd submrcl ibi simp3d ovrspc2v sylan2 ancoms 3impb ) BCIJKZDBKZEBKZDEAL
      BKZUMUNMZULUOULUPGNHNALBKHBOGBOZUOULBCPJZQZCRJZBKZUQULUSVAUQSZULCUDKULVBU
      ABCUEGHURABCUTURTUTTFUBUCUFUGGHBBBADEUHUIUJUK $.
  $}

  ${
    submmnd.h $e |- H = ( M |`s S ) $.
    $( Submonoids are themselves monoids under the given operation.
       (Contributed by Mario Carneiro, 7-Mar-2015.) $)
    submmnd $p |- ( S e. ( SubMnd ` M ) -> H e. Mnd ) $=
      ( csubmnd cfv wcel cbs wss c0g cmnd w3a wb submrcl issubm2 syl ibi simp3d
      eqid ) ACEFGZACHFZIZCJFZAGZBKGZTUBUDUELZTCKGTUFMACNUAABCUCUASUCSDOPQR $.

    $( The base set of a submonoid.  (Contributed by Stefan O'Rear,
       15-Jun-2015.) $)
    submbas $p |- ( S e. ( SubMnd ` M ) -> S = ( Base ` H ) ) $=
      ( csubmnd cfv wcel cbs wss wceq eqid submss ressbas2 syl ) ACEFGACHFZIABH
      FJOACOKZLAOBCDPMN $.

    subm0.z $e |- .0. = ( 0g ` M ) $.
    $( Submonoids have the same identity.  (Contributed by Mario Carneiro,
       7-Mar-2015.) $)
    subm0 $p |- ( S e. ( SubMnd ` M ) -> .0. = ( 0g ` H ) ) $=
      ( csubmnd cfv wcel cmnd cbs wss wceq submrcl submmnd eqid subm0cl submnd0
      c0g submss syl22anc ) ACGHICJIBJIACKHZLDAIDBSHMACNABCEOUBACUBPZTACDFQUBAC
      BDUCFERUA $.
  $}

  ${
    subsubm.h $e |- H = ( G |`s S ) $.
    $( A submonoid of a submonoid is a submonoid.  (Contributed by Mario
       Carneiro, 21-Jun-2015.) $)
    subsubm $p |- ( S e. ( SubMnd ` G ) -> ( A e. ( SubMnd ` H ) <->
      ( A e. ( SubMnd ` G ) /\ A C_ S ) ) ) $=
      ( csubmnd cfv wcel wss cbs c0g cress cmnd eqid adantl wceq adantr submmnd
      wa co submss submbas sseqtr4d sstrd subm0cl eqeltrd oveq1i ressabs syl5eq
      subm0 syldan eqeltrrd w3a wb submrcl issubm2 syl mpbir3and simprr sseqtrd
      jca ad2antrl adantrl impbida ) BCFGZHZADFGHZAVEHZABIZSZVFVGSZVHVIVKVHACJG
      ZIZCKGZAHZCALTZMHZVKABVLVKADJGZBVGAVRIZVFVRADVRNZUAOVFBVRPZVGBDCEUBZQUCZV
      FBVLIVGVLBCVLNZUAQUDVKVNDKGZAVFVNWEPZVGBDCVNEVNNZUJZQVGWEAHZVFADWEWENZUEO
      UFVKDALTZVPMVFVGVIWKVPPZWCVFVISWKCBLTZALTVPDWMALEUGBACVEUHUIZUKVGWKMHZVFA
      WKDWKNZROULVKCMHZVHVMVOVQUMUNVFWQVGBCUOQVLAVPCVNWDWGVPNZUPUQURWCVAVFVJSZV
      GVSWIWOWSABVRVFVHVIUSVFWAVJWBQUTWSVNWEAVFWFVJWHQVHVOVFVIACVNWGUEVBULWSWKV
      PMVFVIWLVHWNVCVHVQVFVIAVPCWRRVBUFWSDMHZVGVSWIWOUMUNVFWTVJBDCERQVRAWKDWEVT
      WJWPUPUQURVD $.
  $}

  ${
    $d x y B $.  $d x y M $.  $d x y N $.  $d x y .0. $.
    0mhm.z $e |- .0. = ( 0g ` N ) $.
    0mhm.b $e |- B = ( Base ` M ) $.
    $( The constant zero linear function between two monoids.  (Contributed by
       Stefan O'Rear, 5-Sep-2015.) $)
    0mhm $p |- ( ( M e. Mnd /\ N e. Mnd ) ->
        ( B X. { .0. } ) e. ( M MndHom N ) ) $=
      ( vx vy cmnd wcel wa cfv cv cplusg co wceq c0g eqid syl fvconst2 cbs wral
      csn cxp wf w3a cmhm id mndidcl adantl fconst6g simpr mndlid eqcomd adantr
      syl2anc mndcl 3expb adantlr cvv fvex eqeltri oveqan12d 3eqtr4d ralrimivva
      3jca ismhm sylanbrc ) BIJZCIJZKZVKACUALZADUCUDZUEZGMZHMZBNLZOZVMLZVOVMLZV
      PVMLZCNLZOZPZHAUBGAUBZBQLZVMLDPZUFVMBCUGOJVKUHVKVNWEWGVKDVLJZVNVJWHVIVLCD
      VLRZEUIUJZADVLUKSVKWDGHAAVKVOAJZVPAJZKZKZDDDWBOZVSWCVKDWOPZWMVKVJWHWPVIVJ
      ULWJVJWHKWODVLWBCDDWIWBRZEUMUNUPUOWNVRAJZVSDPVIWMWRVJVIWKWLWRAVQBVOVPFVQR
      ZUQURUSADVRDCQLUTECQVAVBZTSWMWCWOPVKWKWLVTDWADWBADVOWTTADVPWTTVCUJVDVEVKW
      FAJZWGVIXAVJABWFFWFRZUIUOADWFWTTSVFGHAVLVQWBBCVMDWFFWIWSWQXBEVGVH $.
  $}

  ${
    $d F x y $.  $d S x y $.  $d T x y $.  $d U x y $.  $d X x y $.
    resmhm.u $e |- U = ( S |`s X ) $.
    $( Restriction of a monoid homomorphism to a submonoid is a homomorphism.
       (Contributed by Mario Carneiro, 12-Mar-2015.) $)
    resmhm $p |- ( ( F e. ( S MndHom T ) /\ X e. ( SubMnd ` S ) ) ->
        ( F |` X ) e. ( U MndHom T ) ) $=
      ( vx vy co wcel cfv wa cbs wf cplusg wceq wral eqid adantl fvres cmhm c0g
      csubmnd cmnd cres w3a mhmrcl2 submmnd anim12ci wss submss fssres ressbas2
      cv mhmf syl2an syl feq2d mpbid simpll simprl sseldd simprr mhmlin syl3anc
      ad2antlr submcl 3expb adantll oveqan12d ralrimivva ressplusg oveqd fveq2d
      3eqtr4d eqeq1d raleqbidv subm0cl subm0 mhm0 adantr 3eqtr3d ismhm sylanbrc
      3jca ) DABUAIJZEAUCKZJZLZCUDJZBUDJZLCMKZBMKZDEUEZNZGUNZHUNZCOKZIZWNKZWPWN
      KZWQWNKZBOKZIZPZHWLQZGWLQZCUBKZWNKZBUBKZPZUFWNCBUAIJWFWKWHWJABDUGECAFUHUI
      WIWOXGXKWIEWMWNNZWOWFAMKZWMDNEXMUJZXLWHXMWMABDXMRZWMRZUOXMEAXOUKZXMWMEDUL
      UPWIEWLWMWNWIXNEWLPWHXNWFXQSEXMCAFXOUMUQZURUSWIWPWQAOKZIZWNKZXDPZHEQZGEQX
      GWIYBGHEEWIWPEJZWQEJZLZLZXTDKZWPDKZWQDKZXCIZYAXDYGWFWPXMJWQXMJYHYKPWFWHYF
      UTYGEXMWPWHXNWFYFXQVFZWIYDYEVAVBYGEXMWQYLWIYDYEVCVBXMXSXCABDWPWQXOXSRZXCR
      ZVDVEYGXTEJZYAYHPWHYFYOWFWHYDYEYOXSEAWPWQYMVGVHVIXTEDTUQYFXDYKPWIYDYEXAYI
      XBYJXCWPEDTWQEDTVJSVOVKWIYCXFGEWLXRWIYBXEHEWLXRWIYAWTXDWIXTWSWNWIXSWRWPWQ
      WHXSWRPWFEXSACWGFYMVLSVMVNVPVQVQUSWIAUBKZWNKZYPDKZXIXJWIYPEJZYQYRPWHYSWFE
      AYPYPRZVRSYPEDTUQWIYPXHWNWHYPXHPWFECAYPFYTVSSVNWFYRXJPWHABDXJYPYTXJRZVTWA
      WBWEGHWLWMWRXCCBWNXJXHWLRXPWRRYNXHRUUAWCWD $.
  $}

  ${
    $d x y F $.  $d x y S $.  $d x y T $.  $d x y U $.  $d x y X $.
    resmhm2.u $e |- U = ( T |`s X ) $.
    $( One direction of ~ resmhm2b .  (Contributed by Mario Carneiro,
       18-Jun-2015.) $)
    resmhm2 $p |- ( ( F e. ( S MndHom U ) /\ X e. ( SubMnd ` T ) ) ->
      F e. ( S MndHom T ) ) $=
      ( vx vy cmhm co wcel cfv wa cmnd cbs wf cplusg wceq c0g eqid csubmnd wral
      cv w3a mhmrcl1 submrcl anim12i mhmf submbas submss eqsstr3d syl2an mhmlin
      wss 3expb adantlr ressplusg ad2antlr oveqd eqtr4d ralrimivva adantr subm0
      fss mhm0 adantl 3jca ismhm sylanbrc ) DACIJKZEBUALZKZMZANKZBNKZMAOLZBOLZD
      PZGUCZHUCZAQLZJDLZVSDLZVTDLZBQLZJZRZHVPUBGVPUBZASLZDLZBSLZRZUDDABIJKVJVNV
      LVOACDUEEBUFUGVMVRWHWLVJVPCOLZDPWMVQUNVRVLVPWMACDVPTZWMTUHVLWMEVQECBFUIVQ
      EBVQTZUJUKVPWMVQDVDULVMWGGHVPVPVMVSVPKZVTVPKZMZMZWBWCWDCQLZJZWFVJWRWBXARZ
      VLVJWPWQXBVPWAWTACDVSVTWNWATZWTTUMUOUPWSWEWTWCWDVLWEWTRVJWREWEBCVKFWETZUQ
      URUSUTVAVMWJCSLZWKVJWJXERVLACDXEWIWITZXETVEVBVLWKXERVJECBWKFWKTZVCVFUTVGG
      HVPVQWAWEABDWKWIWNWOXCXDXFXGVHVI $.

    $( Restriction of the codomain of a homomorphism.  (Contributed by Mario
       Carneiro, 18-Jun-2015.) $)
    resmhm2b $p |- ( ( X e. ( SubMnd ` T ) /\ ran F C_ X ) ->
      ( F e. ( S MndHom T ) <-> F e. ( S MndHom U ) ) ) $=
      ( vx vy cfv wcel wa co cbs wf cplusg wceq c0g adantl ad2antrr eqid crn cv
      csubmnd wss cmhm cmnd w3a mhmrcl1 submmnd jca wfn ffn syl simplr sylanbrc
      wral mhmf df-f submbas feq3d mpbid mhmlin 3expb ressplusg ad3antrrr oveqd
      adantll eqtrd ralrimivva mhm0 subm0 ismhm resmhm2 ancoms adantlr impbida
      3jca ) EBUCIZJZDUAEUDZKZDABUELJZDACUELJZWAWBKZAUFJZCUFJZKAMIZCMIZDNZGUBZH
      UBZAOIZLDIZWJDIZWKDIZCOIZLZPZHWGUPGWGUPZAQIZDIZCQIZPZUGWCWDWEWFWBWEWAABDU
      HRVSWFVTWBECBFUISUJWDWIWSXCWDWGEDNZWIWDDWGUKZVTXDWDWGBMIZDNZXEWBXGWAWGXFA
      BDWGTZXFTUQRWGXFDULUMVSVTWBUNWGEDURUOWDEWHDWGVSEWHPVTWBECBFUSSUTVAWDWRGHW
      GWGWDWJWGJZWKWGJZKZKZWMWNWOBOIZLZWQWBXKWMXNPZWAWBXIXJXOWGWLXMABDWJWKXHWLT
      ZXMTZVBVCVGXLXMWPWNWOVSXMWPPVTWBXKEXMBCVRFXQVDVEVFVHVIWDXABQIZXBWBXAXRPWA
      ABDXRWTWTTZXRTZVJRVSXRXBPVTWBECBXRFXTVKSVHVQGHWGWHWLWPACDXBWTXHWHTXPWPTXS
      XBTVLUOVSWCWBVTWCVSWBABCDEFVMVNVOVP $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x y S $.  $d x y T $.  $d x y U $.
    $( The composition of monoid homomorphisms is a homomorphism.  (Contributed
       by Mario Carneiro, 12-Jun-2015.) $)
    mhmco $p |- ( ( F e. ( T MndHom U ) /\ G e. ( S MndHom T ) ) ->
        ( F o. G ) e. ( S MndHom U ) ) $=
      ( vx vy cmhm co wcel wa cbs cfv wf cplusg wceq c0g eqid fvco3 syl2anc w3a
      cmnd ccom cv wral mhmrcl2 mhmrcl1 anim12ci mhmf fco syl2an mhmlin adantll
      3expb fveq2d simpll ad2antlr simprl ffvelrnd simprr syl3anc eqtrd oveq12d
      adantl mndcl sylan 3eqtr4d ralrimivva mndidcl syl mhm0 adantr 3eqtrd 3jca
      ismhm sylanbrc ) DBCHIJZEABHIJZKZAUBJZCUBJZKALMZCLMZDEUCZNZFUDZGUDZAOMZIZ
      WDMZWFWDMZWGWDMZCOMZIZPZGWBUEFWBUEZAQMZWDMZCQMZPZUAWDACHIJVQWAVRVTBCDUFAB
      EUGZUHVSWEWPWTVQBLMZWCDNWBXBENZWEVRXBWCBCDXBRZWCRZUIWBXBABEWBRZXDUIZWBXBW
      CDEUJUKVSWOFGWBWBVSWFWBJZWGWBJZKZKZWIEMZDMZWFEMZDMZWGEMZDMZWMIZWJWNXKXMXN
      XPBOMZIZDMZXRXKXLXTDVRXJXLXTPZVQVRXHXIYBWBWHXSABEWFWGXFWHRZXSRZULUNUMUOXK
      VQXNXBJXPXBJYAXRPVQVRXJUPXKWBXBWFEVRXCVQXJXGUQZVSXHXIURZUSXKWBXBWGEYEVSXH
      XIUTZUSXBXSWMBCDXNXPXDYDWMRZULVAVBXKXCWIWBJZWJXMPYEVSVTXJYIVRVTVQXAVDZVTX
      HXIYIWBWHAWFWGXFYCVEUNVFWBXBWIDESTXKWKXOWLXQWMXKXCXHWKXOPYEYFWBXBWFDESTXK
      XCXIWLXQPYEYGWBXBWGDESTVCVGVHVSWRWQEMZDMZBQMZDMZWSVSXCWQWBJZWRYLPVRXCVQXG
      VDVSVTYOYJWBAWQXFWQRZVIVJWBXBWQDESTVSYKYMDVRYKYMPVQABEYMWQYPYMRZVKVDUOVQY
      NWSPVRBCDWSYMYQWSRZVKVLVMVNFGWBWCWHWMACWDWSWQXFXEYCYHYPYRVOVP $.
  $}

  ${
    $d F x y z $.  $d M x y z $.  $d N x y z $.  $d X x y z $.
    $( The homomorphic image of a submonoid is a submonoid.  (Contributed by
       Mario Carneiro, 10-Mar-2015.) $)
    mhmima $p |- ( ( F e. ( M MndHom N ) /\ X e. ( SubMnd ` M ) ) ->
      ( F " X ) e. ( SubMnd ` N ) ) $=
      ( vx vy vz co wcel cfv wa wss cv wral eqid adantr syl wceq syl3anc wb cbs
      cmhm csubmnd cima c0g cplusg crn imassrn wf mhmf frn syl5ss submss adantl
      wfn ffn subm0cl fnfvima eqeltrrd simpll simprl sseldd simprr mhmlin 3expb
      submcl adantll anassrs ralrimiva oveq2 eleq1d ralima syl2anc mpbird oveq1
      mhm0 ralbidv cmnd w3a mhmrcl2 issubm mpbir3and ) ABCUBHIZDBUCJIZKZADUDZCU
      CJIZWFCUAJZLZCUEJZWFIZEMZFMZCUFJZHZWFIZFWFNZEWFNZWEWFAUGZWHADUHWEBUAJZWHA
      UIZWSWHLWCXAWDWTWHBCAWTOZWHOZUJPZWTWHAUKQULWEBUEJZAJZWJWFWCXFWJRWDBCAWJXE
      XEOZWJOZVPPWEAWTUOZDWTLZXEDIZXFWFIWEXAXIXDWTWHAUPQZWDXJWCWTDBXBUMUNZWDXKW
      CDBXEXGUQUNWTDAXEURSUSWEWRGMZAJZWMWNHZWFIZFWFNZGDNZWEXRGDWEXNDIZKZXRXOWLA
      JZWNHZWFIZEDNZYAYDEDWEXTWLDIZYDWEXTYFKZKZXNWLBUFJZHZAJZYCWFYHWCXNWTIWLWTI
      YKYCRWCWDYGUTYHDWTXNWEXJYGXMPZWEXTYFVAVBYHDWTWLYLWEXTYFVCVBWTYIWNBCAXNWLX
      BYIOZWNOZVDSYHXIXJYJDIZYKWFIWEXIYGXLPYLWDYGYOWCWDXTYFYOYIDBXNWLYMVFVEVGWT
      DAYJURSUSVHVIWEXRYETZXTWEXIXJYPXLXMXQYDFEWTDAWMYBRXPYCWFWMYBXOWNVJVKVLVMP
      VNVIWEXIXJWRXSTXLXMWQXREGWTDAWLXORZWPXQFWFYQWOXPWFWLXOWMWNVOVKVQVLVMVNWEC
      VRIZWGWIWKWRVSTWCYRWDBCAVTPEFWHWNWFCWJXCXHYNWAQWB $.
  $}

  ${
    $d F x y z $.  $d G x y z $.  $d S x y z $.  $d T x y $.
    $( The equalizer of two monoid homomorphisms is a submonoid.  (Contributed
       by Stefan O'Rear, 7-Mar-2015.)  (Revised by Mario Carneiro,
       6-May-2015.) $)
    mhmeql $p |- ( ( F e. ( S MndHom T ) /\ G e. ( S MndHom T ) ) ->
        dom ( F i^i G ) e. ( SubMnd ` S ) ) $=
      ( vz vx vy co wcel wa cfv wceq eqid adantr syl wral eqtr4d fveq2 eqeq12d
      cv cmhm cin cdm cbs crab csubmnd wfn wf ffn adantl fndmin syl2anc wss c0g
      mhmf cplusg a1i cmnd mhmrcl1 mndidcl mhm0 elrab sylanbrc ad2antrr simplrl
      ssrab2 simprl mndcl syl3anc simplll mhmlin simpllr simplrr simprr oveq12d
      wi expr ralrimiva ralrab sylibr w3a wb issubm mpbir3and eqeltrd ) CABUAHZ
      IZDWFIZJZCDUBUCZETZCKZWKDKZLZEAUDKZUEZAUFKZWICWOUGZDWOUGZWJWPLWIWOBUDKZCU
      HZWRWGXAWHWOWTABCWOMZWTMZUONWOWTCUIOWIWOWTDUHZWSWHXDWGWOWTABDXBXCUOUJWOWT
      DUIOEWOCDUKULWIWPWQIZWPWOUMZAUNKZWPIZFTZGTZAUPKZHZWPIZGWPPZFWPPZXFWIWNEWO
      VFUQWIXGWOIZXGCKZXGDKZLZXHWIAURIZXPWGXTWHABCUSNZWOAXGXBXGMZUTOWIXQBUNKZXR
      WGXQYCLWHABCYCXGYBYCMZVANWHXRYCLWGABDYCXGYBYDVAUJQWNXSEXGWOWKXGLWLXQWMXRW
      KXGCRWKXGDRSVBVCWIXICKZXIDKZLZXNVPZFWOPXOWIYHFWOWIXIWOIZYGXNWIYIYGJZJZXJC
      KZXJDKZLZXMVPZGWOPXNYKYOGWOYKXJWOIZYNXMYKYPYNJZJZXLWOIZXLCKZXLDKZLZXMYRXT
      YIYPYSWIXTYJYQYAVDWIYIYGYQVEZYKYPYNVGZWOXKAXIXJXBXKMZVHVIYRYTYEYLBUPKZHZU
      UAYRWGYIYPYTUUGLWGWHYJYQVJUUCUUDWOXKUUFABCXIXJXBUUEUUFMZVKVIYRUUAYFYMUUFH
      ZUUGYRWHYIYPUUAUUILWGWHYJYQVLUUCUUDWOXKUUFABDXIXJXBUUEUUHVKVIYRYEYFYLYMUU
      FWIYIYGYQVMYKYPYNVNVOQQWNUUBEXLWOWKXLLWLYTWMUUAWKXLCRWKXLDRSVBVCVQVRWNYNX
      MGEWOWKXJLWLYLWMYMWKXJCRWKXJDRSVSVTVQVRWNYGXNFEWOWKXILWLYEWMYFWKXICRWKXID
      RSVSVTWIXTXEXFXHXOWAWBYAFGWOXKWPAXGXBYBUUEWCOWDWE $.
  $}

  ${
    $d B s x y $.  $d G s x y $.
    submacs.b $e |- B = ( Base ` G ) $.
    $( Submonoids are an algebraic closure system.  (Contributed by Stefan
       O'Rear, 22-Aug-2015.) $)
    submacs $p |- ( G e. Mnd -> ( SubMnd ` G ) e. ( ACS ` B ) ) $=
      ( vs vx vy cmnd wcel csubmnd cfv c0g cv cplusg wral crab eqid cvv sylancr
      wa cbs co cpw cacs cab wss w3a issubm selpw anbi1i 3anass syl6bbr abbi2dv
      bitr4i df-rab syl6eqr inrab cmre fvex eqeltri mreacs mndidcl acsfn0 mndcl
      cin mp1i 3expb ralrimivva acsfn2 mreincl syl3anc syl5eqelr eqeltrd ) BGHZ
      BIJZBKJZDLZHZELZFLZBMJZUAZVPHFVPNEVPNZSZDAUBZOZAUCJZVMVNVPWDHZWCSZDUDWEVM
      WHDVNVMVPVNHVPAUEZVQWBUFZWHEFAVTVPBVOCVOPZVTPZUGWHWIWCSWJWGWIWCDAUHUIWIVQ
      WBUJUMUKULWCDWDUNUOVMWEVQDWDOZWBDWDOZVDZWFVQWBDWDUPVMWFWDUQJHZWMWFHZWNWFH
      ZWOWFHAQHZWPVMABTJQCBTURUSZQAUTVEVMWSVOAHWQWTABVOCWKVAVOQADVBRVMWSWAAHZFA
      NEANWRWTVMXAEFAAVMVRAHVSAHXAAVTBVRVSCWLVCVFVGWAQADEFVHRWMWNWFWDVIVJVKVL
      $.
  $}

  ${
    $d ph x y z a b c d $.  $d ps a b c d y z $.  $d ch x z $.  $d th x $.
    $d .0. a b x $.  $d A a b x $.  $d ta x $.  $d et x $.  $d G a b y z $.
    $d B a b c d y z $.  $d .+ a b c d x y z $.  $d M c d $.
    mrcmndind.ch $e |- ( x = y -> ( ps <-> ch ) ) $.
    mrcmndind.th $e |- ( x = ( y .+ z ) -> ( ps <-> th ) ) $.
    mrcmndind.ta $e |- ( x = .0. -> ( ps <-> ta ) ) $.
    mrcmndind.et $e |- ( x = A -> ( ps <-> et ) ) $.
    mrcmndind.0g $e |- .0. = ( 0g ` M ) $.
    mrcmndind.pg $e |- .+ = ( +g ` M ) $.
    mrcmndind.b $e |- B = ( Base ` M ) $.
    mrcmndind.m $e |- ( ph -> M e. Mnd ) $.
    mrcmndind.g $e |- ( ph -> G C_ B ) $.
    mrcmndind.k $e |- ( ph -> B = ( ( mrCls ` ( SubMnd ` M ) ) ` G ) ) $.
    mrcmndind.i1 $e |- ( ph -> ta ) $.
    mrcmndind.i2 $e |- ( ( ( ph /\ y e. B /\ z e. G ) /\ ch ) -> th ) $.
    mrcmndind.a $e |- ( ph -> A e. B ) $.
    $( (( From SO's determinants branch )).  TODO:  Appropriate description to
       be added!  (Contributed by SO, 14-Jul-2018.) $)
    mrcmndind $p |- ( ph -> et ) $=
      ( va vb vc vd co wsbc wcel wb cmnd mndidcl syl sbcieg mpbird cv wral crab
      wi csubmnd cfv cmrc cmre wss cacs submacs acsmred wa weq eleq1 anbi2d vex
      sbcie dfsbcq syl5bbr oveq1 sbceq1d imbi12d anbi1d ovex oveq2 imbi2d 3expa
      w3a ex an32s chvarv ralrimiva ssrabdv wceq sylan biimprd simprrl ad2antrr
      mndrid simplrl syl3anc simplrr mndass syl13anc sylan9eqr rspcdv ralrimdva
      simpr mndcl impr cbvralv sylib adantrrl ral2imi sylc ralbidv issubmd eqid
      imim1 mrcsscl eqsstrd sseldd elrab simprbi rspcva syl2anc mpd bitrd mpbid
      mndlid ) ABGOJLUMZUNZFABGOUNZYNAYOEUFAOKUOZYOEUPANUQUOZYPUCKNOUBTURUSZBEG
      OKRUTUSVAAYPBGUIVBZUNZBGYSJLUMZUNZVEZUIKVCZYOYNVEZYRAJYTBGYSUJVBZLUMZUNZV
      EZUIKVCZUJKVDZUOZUUDAKUUKJAKMNVFVGZVHVGZVGZUUKUEAUUMKVIVGUOMUUKVJUUKUUMUO
      UUOUUKVJAUUMKAYQUUMKVKVGUOUCKNUBVLUSVMAUUJUJKMUDAUUFMUOZVNZUUIUIKUUQHVBZK
      UOZVNZCBGUURUUFLUMZUNZVEZVEZUUQYSKUOZVNZUUIVEHUIHUIVOZUUTUVFUVCUUIUVGUUSU
      VEUUQUURYSKVPVQUVGCYTUVBUUHCBGUURUNUVGYTBCGUURHVRPVSBGUURYSVTWAUVGBGUVAUU
      GUURYSUUFLWBWCWDWDAIVBZMUOZVNZUUSVNZCDVEZVEUVDIUJIUJVOZUVKUUTUVLUVCUVMUVJ
      UUQUUSUVMUVIUUPAUVHUUFMVPVQWEUVMDUVBCDBGUURUVHLUMZUNUVMUVBBDGUVNUURUVHLWF
      QVSUVMBGUVNUVAUVHUUFUURLWGWCWAWHWDAUUSUVIUVLAUUSUVIUVLAUUSUVIWJCDUGWKWIWL
      WMWMWNWOAUUJYTBGYSOLUMZUNZVEZUIKVCYTBGYSUKVBZLUMZUNZVEZUIKVCZYTBGYSULVBZL
      UMZUNZVEZUIKVCZYTBGYSUVRUWCLUMZLUMZUNZVEZUIKVCZUKULUJKLNOUBUATUCAUVQUIKAU
      VEVNZUVPYTUWMBGUVOYSAYQUVEUVOYSWPUCKLNYSOUBUATXAWQWCWRWNAUVRKUOZUWCKUOZVN
      ZUWBUWGVNVNVNUWBUVTUWJVEZUIKVCZUWLAUWPUWBUWGWSAUWPUWGUWRUWBAUWPUWGVNVNBGU
      UFUVRLUMZUNZBGUUFUWHLUMZUNZVEZUJKVCZUWRAUWPUWGUXDAUWPVNZUWGUXCUJKUXEUUFKU
      OZVNZUWFUXCUIUWSKUXGYQUXFUWNUWSKUOAYQUWPUXFUCWTZUXEUXFXJZAUWNUWOUXFXBZKLN
      UUFUVRUBUAXKXCUXGYSUWSWPZVNZYTUWTUWEUXBUXLBGYSUWSUXGUXKXJWCUXLBGUWDUXAUXK
      UXGUWDUWSUWCLUMZUXAYSUWSUWCLWBUXGYQUXFUWNUWOUXMUXAWPUXHUXIUXJAUWNUWOUXFXD
      KLNUUFUVRUWCUBUAXEXFXGWCWDXHXIXLUXCUWQUJUIKUJUIVOZUWTUVTUXBUWJUXNBGUWSUVS
      UUFYSUVRLWBWCUXNBGUXAUWIUUFYSUWHLWBWCWDXMXNXOUWAUWQUWKUIKYTUVTUWJYAXPXQUU
      FOWPZUUIUVQUIKUXOUUHUVPYTUXOBGUUGUVOUUFOYSLWGWCWHXRUJUKVOZUUIUWAUIKUXPUUH
      UVTYTUXPBGUUGUVSUUFUVRYSLWGWCWHXRUJULVOZUUIUWFUIKUXQUUHUWEYTUXQBGUUGUWDUU
      FUWCYSLWGWCWHXRUUFUWHWPZUUIUWKUIKUXRUUHUWJYTUXRBGUUGUWIUUFUWHYSLWGWCWHXRX
      SUUMMUUNUUKKUUNXTYBXCYCUHYDUULJKUOZUUDUUJUUDUJJKUUFJWPZUUIUUCUIKUXTUUHUUB
      YTUXTBGUUGUUAUUFJYSLWGWCWHXRYEYFUSUUCUUEUIOKYSOWPZYTYOUUBYNBGYSOVTUYABGUU
      AYMYSOJLWBWCWDYGYHYIAYNBGJUNZFABGYMJAYQUXSYMJWPUCUHKLNJOUBUATYLYHWCAUXSUY
      BFUPUHBFGJKSUTUSYJYK $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z ph $.  $d x y z R $.  $d x y z Y $.
    prdspjmhm.y $e |- Y = ( S Xs_ R ) $.
    prdspjmhm.b $e |- B = ( Base ` Y ) $.
    prdspjmhm.i $e |- ( ph -> I e. V ) $.
    prdspjmhm.s $e |- ( ph -> S e. X ) $.
    prdspjmhm.r $e |- ( ph -> R : I --> Mnd ) $.
    prdspjmhm.a $e |- ( ph -> A e. I ) $.
    $( A projection from a product of monoids to one of the factors is a monoid
       homomorphism.  (Contributed by Mario Carneiro, 6-May-2015.) $)
    prdspjmhm $p |- ( ph ->
      ( x e. B |-> ( x ` A ) ) e. ( Y MndHom ( R ` A ) ) ) $=
      ( cmnd wcel cfv adantr vy vz wa cbs cv cmpt cplusg wceq wral c0g w3a cmhm
      wf prdsmndd ffvelrnd jca wfn ffn syl simpr prdsbasprj fmptd simprl simprr
      co eqid prdsplusgfval mndcl 3expb sylan fveq1 fvex fvmpt oveqan12d adantl
      3eqtr4d ralrimivva ccom mndidcl prds0g fveq1d fvco3 syl2anc 3eqtr2d ismhm
      3syl 3jca sylanbrc ) AJQRZCESZQRZUCDWJUDSZBDCBUEZSZUFZUMZUAUEZUBUEZJUGSZV
      EZWOSZWQWOSZWRWOSZWJUGSZVEZUHZUBDUIUADUIZJUJSZWOSZWJUJSZUHZUKWOJWJULVERAW
      IWKAEFGIHJKMNOUNZAGQCEOPUOUPAWPXGXKABDWNWLWOAWMDRZUCDEFWMGCIHJKLAFIRZXMNT
      AGHRZXMMTAEGUQZXMAGQEUMZXPOGQEURUSZTAXMUTACGRZXMPTVAWOVFZVBAXFUAUBDDAWQDR
      ZWRDRZUCZUCZCWTSZCWQSZCWRSZXDVEZXAXEYDDWSEFWQWRGCIHJKLAXNYCNTAXOYCMTAXPYC
      XRTAYAYBVCAYAYBVDWSVFZAXSYCPTVGYDWTDRZXAYEUHAWIYCYJXLWIYAYBYJDWSJWQWRLYIV
      HVIVJBWTWNYEDWOCWMWTVKXTCWTVLVMUSYCXEYHUHAYAYBXBYFXCYGXDBWQWNYFDWOCWMWQVK
      XTCWQVLVMBWRWNYGDWOCWMWRVKXTCWRVLVMVNVOVPVQAXICXHSZCUJEVRZSZXJAWIXHDRXIYK
      UHXLDJXHLXHVFZVSBXHWNYKDWOCWMXHVKXTCXHVLVMWFACYLXHAEFGIHJKMNOVTWAAXQXSYMX
      JUHOPGQCUJEWBWCWDWGUAUBDWLWSXDJWJWOXJXHLWLVFYIXDVFYNXJVFWEWH $.
  $}

  ${
    $d x A $.  $d x B $.  $d x I $.  $d x R $.  $d x V $.
    pwspjmhm.y $e |- Y = ( R ^s I ) $.
    pwspjmhm.b $e |- B = ( Base ` Y ) $.
    $( A projection from a product of monoids to one of the factors is a monoid
       homomorphism.  (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    pwspjmhm $p |- ( ( R e. Mnd /\ I e. V /\ A e. I ) ->
        ( x e. B |-> ( x ` A ) ) e. ( Y MndHom R ) ) $=
      ( cmnd wcel w3a csca cfv co cbs cmpt cmhm eqid wceq csn cprds simp2 fvexd
      cxp cv cvv fconst6g 3ad2ant1 simp3 prdspjmhm pwsval 3adant3 fveq2d syl5eq
      wf mpteq1d fvconst2g 3adant2 eqcomd oveq12d 3eltr4d ) DJKZEFKZBEKZLZADMNZ
      EDUAUEZUBOZPNZBAUFNZQVIBVHNZROACVKQGDROVFABVJVHVGEFUGVIVISVJSVCVDVEUCVFDM
      UDVCVDEJVHUPVEEDJUHUIVCVDVEUJUKVFACVJVKVFCGPNVJIVFGVIPVCVDGVITVEDVGEJFGHV
      GSULUMZUNUOUQVFGVIDVLRVMVFVLDVCVEVLDTVDEDBJURUSUTVAVB $.
  $}

  ${
    $d Y x a b $.  $d R x a b $.  $d I x a b $.  $d B x a b $.  $d F a b $.
    $d W x a b $.
    pwsdiagmhm.y $e |- Y = ( R ^s I ) $.
    pwsdiagmhm.b $e |- B = ( Base ` R ) $.
    pwsdiagmhm.f $e |- F = ( x e. B |-> ( I X. { x } ) ) $.
    $( Diagonal monoid homomorphism into a structure power.  (Contributed by
       Stefan O'Rear, 12-Mar-2015.) $)
    pwsdiagmhm $p |- ( ( R e. Mnd /\ I e. W ) -> F e. ( R MndHom Y ) ) $=
      ( va vb cmnd wcel wa cfv co wceq cvv eqid cbs wf cplusg wral c0g w3a cmhm
      simpl pwsmnd jca cmap fvex eqeltri fdiagfn mpan adantl pwsbas feq3d mpbid
      csn cxp simplr mndcl 3expb adantlr fvdiagfn syl2anc cof oveqan12d anandis
      cv adantll simpll pwsdiagel adantrr adantrl pwsplusgval id ofc12 ad2antlr
      vex a1i 3eqtrd eqtr4d ralrimivva simpr mndidcl adantr pws0g 3jca sylanbrc
      eqtrd ismhm ) CMNZEFNZOZWNGMNZOBGUAPZDUBZKVKZLVKZCUCPZQZDPZWTDPZXADPZGUCP
      ZQZRZLBUDKBUDZCUEPZDPZGUEPZRZUFDCGUGQNWPWNWQWNWOUHCEFGHUIUJWPWSXJXNWPBBEU
      KQZDUBZWSWOXPWNBSNWOXPBCUAPSICUAULUMABDESFJUNUOUPWPXOWRDBBCEMFGHIUQURUSWP
      XIKLBBWPWTBNZXABNZOZOZXDEXCUTVAZXHXTWOXCBNZXDYARWNWOXSVBZWNXSYBWOWNXQXRYB
      BXBCWTXAIXBTZVCVDVEABDEFXCJVFVGXTXHEWTUTVAZEXAUTVAZXGQZYEYFXBVHQZYAWOXSXH
      YGRZWNWOXQXRYIWOXQOWOXROXEYEXFYFXGABDEFWTJVFABDEFXAJVFVIVJVLXTWRXBXGCYEYF
      EMFGHWRTZWNWOXSVMYCWPXQYEWRNXRWTBWRCEMFGHIYJVNVOWPXRYFWRNXQXABWRCEMFGHIYJ
      VNVPYDXGTZVQWOYHYARWNXSWOEWTXAXBFSSWOVRWTSNWOKWAWBXASNWOLWAWBVSVTWCWDWEWP
      XLEXKUTVAZXMWPWOXKBNZXLYLRWNWOWFWNYMWOBCXKIXKTZWGWHABDEFXKJVFVGCEFGXKHYNW
      IWLWJKLBWRXBXGCGDXMXKIYJYDYKYNXMTWMWK $.
  $}

  ${
    $d x z A $.  $d g w x y z C $.  $d w x z R $.  $d g x y Y $.  $d g x y Z $.
    $d w z B $.  $d g w x y z F $.  $d g w x y z ph $.
    pwsco1mhm.y $e |- Y = ( R ^s A ) $.
    pwsco1mhm.z $e |- Z = ( R ^s B ) $.
    pwsco1mhm.c $e |- C = ( Base ` Z ) $.
    pwsco1mhm.r $e |- ( ph -> R e. Mnd ) $.
    pwsco1mhm.a $e |- ( ph -> A e. V ) $.
    pwsco1mhm.b $e |- ( ph -> B e. W ) $.
    pwsco1mhm.f $e |- ( ph -> F : A --> B ) $.
    $( Right composition with a function on the index sets yields a monoid
       homomorphism of structure powers.  (Contributed by Mario Carneiro,
       12-Jun-2015.) $)
    pwsco1mhm $p |- ( ph -> ( g e. C |-> ( g o. F ) ) e. ( Z MndHom Y ) ) $=
      ( wcel cvv vx vy vz vw cmnd wa cbs cfv cv ccom cmpt wf cplusg co wceq c0g
      wral w3a cmhm pwsmnd syl2anc wb eqid pwselbasb biimpa adantr mpbird fmptd
      jca fco cof fvexd ffvelrnda feqmptd simprl pwselbas fmptco simprr offval2
      fveq2 pwsplusgval eqtrd oveq12d 3eqtr4rd mndcl 3expb sylan ovex fex coexg
      sylancr coeq1 fvmptg 3eqtr4d ralrimivva csn cxp mndidcl syl wfn ffn pws0g
      fnconstg fveq1d fvex fvconst2g eqtr3d fvco3 eqfnfvd 3eqtrd ismhm sylanbrc
      3jca ) AKUESZJUESZUFDJUGUHZFDFUIZGUJZUKZULZUAUIZUBUIZKUMUHZUNZXSUHZYAXSUH
      ZYBXSUHZJUMUHZUNZUOZUBDUQUADUQZKUPUHZXSUHZJUPUHZUOZURXSKJUSUNSAXNXOAEUESZ
      CISZXNOQECIKMUTVAZAYPBHSZXOOPEBHJLUTVAVIAXTYKYOAFDXRXPXSAXQDSZUFZXRXPSZBE
      UGUHZXRULZUUACUUCXQULZBCGULZUUDAYTUUEAYPYQYTUUEVBOQUUCECDUEXQKIMUUCVCZNVD
      VAVEAUUFYTRVFBCUUCXQGVJVAAUUBUUDVBZYTAYPYSUUHOPUUCEBXPUEXRJHLUUGXPVCZVDVA
      VFVGXSVCZVHAYJUAUBDDAYADSZYBDSZUFZUFZYDGUJZYAGUJZYBGUJZYHUNZYEYIUUNUUPUUQ
      EUMUHZVKZUNUCBUCUIZGUHZYAUHZUVBYBUHZUUSUNZUKUURUUOUUNUCBUVCUVDUUSUUPUUQHT
      TAYSUUMPVFZUUNUVABSUFZUVBYAVLUVGUVBYBVLUUNUCUDBCUVBUDUIZYAUHZUVCGYAUUNBCU
      VAGAUUFUUMRVFZVMZUUNUCBCGUVJVNZUUNUDCUUCYAUUNUUCECDUEYAKIMUUGNAYPUUMOVFZA
      YQUUMQVFZAUUKUULVOZVPZVNZUVHUVBYAVTZVQUUNUCUDBCUVBUVHYBUHZUVDGYBUVKUVLUUN
      UDCUUCYBUUNUUCECDUEYBKIMUUGNUVMUVNAUUKUULVRZVPZVNZUVHUVBYBVTZVQVSUUNXPUUS
      YHEUUPUUQBUEHJLUUIUVMUVFUUNUUPXPSZBUUCUUPULZUUNCUUCYAULUUFUWEUVPUVJBCUUCY
      AGVJVAUUNYPYSUWDUWEVBUVMUVFUUCEBXPUEUUPJHLUUGUUIVDVAVGUUNUUQXPSZBUUCUUQUL
      ZUUNCUUCYBULUUFUWGUWAUVJBCUUCYBGVJVAUUNYPYSUWFUWGVBUVMUVFUUCEBXPUEUUQJHLU
      UGUUIVDVAVGUUSVCZYHVCZWAUUNUCUDBCUVBUVIUVSUUSUNZUVEGYDUVKUVLUUNYDYAYBUUTU
      NUDCUWJUKUUNDUUSYCEYAYBCUEIKMNUVMUVNUVOUVTUWHYCVCZWAUUNUDCUVIUVSUUSYAYBIT
      TUVNUUNUVHCSUFZUVHYAVLUWLUVHYBVLUVQUWBVSWBUVHUVBUOUVIUVCUVSUVDUUSUVRUWCWC
      VQWDUUNYDDSZUUOTSZYEUUOUOAXNUUMUWMYRXNUUKUULUWMDYCKYAYBNUWKWEWFWGUUNYDTSG
      TSZUWNYAYBYCWHAUWOUUMAUUFYSUWORPBCHGWIVAZVFZYDGTTWJWKFYDXRUUODTXSXQYDGWLU
      UJWMVAUUNYFUUPYGUUQYHUUNUUKUUPTSZYFUUPUOUVOUUNUUKUWOUWRUVOUWQYAGDTWJVAFYA
      XRUUPDTXSXQYAGWLUUJWMVAUUNUULUUQTSZYGUUQUOUVTUUNUULUWOUWSUVTUWQYBGDTWJVAF
      YBXRUUQDTXSXQYBGWLUUJWMVAWCWNWOAYMYLGUJZBEUPUHZWPZWQZYNAYLDSZUWTTSZYMUWTU
      OAXNUXDYRDKYLNYLVCZWRWSZAUXDUWOUXEUXGUWPYLGDTWJVAFYLXRUWTDTXSXQYLGWLUUJWM
      VAAUABUWTUXCABUUCUWTULZUWTBWTACUUCYLULUUFUXHAUUCECDUEYLKIMUUGNOQUXGVPRBCU
      UCYLGVJVABUUCUWTXAWSAUXATSZUXCBWTAEUPVLZBUXATXCWSAYABSZUFZYAGUHZYLUHZUXAY
      AUWTUHZYAUXCUHZUXLUXMCUXBWQZUHZUXNUXAAUXRUXNUOUXKAUXMUXQYLAYPYQUXQYLUOOQE
      CIKUXAMUXAVCZXBVAXDVFUXLUXIUXMCSUXRUXAUOEUPXEABCYAGRVMCUXAUXMTXFWKXGAUUFU
      XKUXOUXNUORBCYAYLGXHWGAUXIUXKUXPUXAUOUXJBUXAYATXFWGWNXIAYPYSUXCYNUOOPEBHJ
      UXALUXSXBVAXJXMUAUBDXPYCYHKJXSYNYLNUUIUWKUWIUXFYNVCXKXL $.
  $}

  ${
    $d w A $.  $d g w x y B $.  $d g w x y z F $.  $d g x y Y $.  $d g x y Z $.
    $d g w x y ph $.  $d w z R $.  $d w S $.
    pwsco2mhm.y $e |- Y = ( R ^s A ) $.
    pwsco2mhm.z $e |- Z = ( S ^s A ) $.
    pwsco2mhm.b $e |- B = ( Base ` Y ) $.
    pwsco2mhm.a $e |- ( ph -> A e. V ) $.
    pwsco2mhm.f $e |- ( ph -> F e. ( R MndHom S ) ) $.
    $( Left composition with a monoid homomorphism yields a monoid homomorphism
       of structure powers.  (Contributed by Mario Carneiro, 12-Jun-2015.) $)
    pwsco2mhm $p |- ( ph -> ( g e. B |-> ( F o. g ) ) e. ( Y MndHom Z ) ) $=
      ( vw cmnd wcel cfv syl2anc vx vy vz wa cbs cv ccom cmpt wf cplusg co wceq
      wral c0g w3a cmhm mhmrcl1 syl pwsmnd mhmrcl2 jca eqid mhmf simpr pwselbas
      adantr fco wb pwselbasb mpbird cof simprl ffvelrnda simprr mhmlin syl3anc
      fmptd mpteq2dva cvv fvexd feqmptd fveq2 fmptco offval2 eqtr4d pwsplusgval
      mndcl eqtrd 3eqtr4d 3expb sylan coexg coeq2 fvmptg oveq12d ralrimivva csn
      cxp mndidcl wfn ffn fcoconst pws0g coeq2d mhm0 xpeq2d 3eqtr3d 3eqtrd 3jca
      sneqd ismhm sylanbrc ) AIQRZJQRZUDCJUESZFCGFUFZUGZUHZUIZUAUFZUBUFZIUJSZUK
      ZXRSZXTXRSZYAXRSZJUJSZUKZULZUBCUMUACUMZIUNSZXRSZJUNSZULZUOXRIJUPUKRAXMXNA
      DQRZBHRZXMAGDEUPUKZRZYOODEGUQZURZNDBHIKUSTZAEQRZYPXNAYRUUBODEGUTZURZNEBHJ
      LUSTVAAXSYJYNAFCXQXOXRAXPCRZUDZXQXORZBEUESZXQUIZUUFDUESZUUHGUIZBUUJXPUIUU
      IAUUKUUEAYRUUKOUUJUUHDEGUUJVBZUUHVBZVCZURZVFUUFUUJDBCQXPIHKUULMAYOUUEYTVF
      AYPUUENVFZAUUEVDVEBUUJUUHGXPVGTUUFUUBYPUUGUUIVHAUUBUUEUUDVFUUPUUHEBXOQXQJ
      HLUUMXOVBZVITVJXRVBZVQAYIUAUBCCAXTCRZYACRZUDZUDZGYCUGZGXTUGZGYAUGZYGUKZYD
      YHUVBPBPUFZXTSZUVGYASZDUJSZUKZGSZUHZUVDUVEEUJSZVKUKZUVCUVFUVBUVMPBUVHGSZU
      VIGSZUVNUKZUHUVOUVBPBUVLUVRUVBUVGBRZUDZYRUVHUUJRZUVIUUJRZUVLUVRULUVBYRUVS
      AYRUVAOVFZVFUVBBUUJUVGXTUVBUUJDBCQXTIHKUULMUVBYRYOUWCYSURZAYPUVANVFZAUUSU
      UTVLZVEZVMZUVBBUUJUVGYAUVBUUJDBCQYAIHKUULMUWDUWEAUUSUUTVNZVEZVMZUUJUVJUVN
      DEGUVHUVIUULUVJVBZUVNVBZVOVPVRUVBPBUVPUVQUVNUVDUVEHVSVSUWEUVTUVHGVTUVTUVI
      GVTUVBPUCBUUJUVHUCUFZGSZUVPXTGUWHUVBPBUUJXTUWGWAZUVBUCUUJUUHGUVBYRUUKUWCU
      UNURZWAZUWNUVHGWBWCUVBPUCBUUJUVIUWOUVQYAGUWKUVBPBUUJYAUWJWAZUWRUWNUVIGWBW
      CWDWEUVBPUCBUUJUVKUWOUVLYCGUVTYOUWAUWBUVKUUJRUVBYOUVSUWDVFUWHUWKUUJUVJDUV
      HUVIUULUWLWGVPUVBYCXTYAUVJVKUKPBUVKUHUVBCUVJYBDXTYABQHIKMUWDUWEUWFUWIUWLY
      BVBZWFUVBPBUVHUVIUVJXTYAHVSVSUWEUVTUVGXTVTUVTUVGYAVTUWPUWSWDWHUWRUWNUVKGW
      BWCUVBXOUVNYGEUVDUVEBQHJLUUQUVBYRUUBUWCUUCURZUWEUVBUVDXORZBUUHUVDUIZUVBUU
      KBUUJXTUIUXCUWQUWGBUUJUUHGXTVGTUVBUUBYPUXBUXCVHUXAUWEUUHEBXOQUVDJHLUUMUUQ
      VITVJZUVBUVEXORZBUUHUVEUIZUVBUUKBUUJYAUIUXFUWQUWJBUUJUUHGYAVGTUVBUUBYPUXE
      UXFVHUXAUWEUUHEBXOQUVEJHLUUMUUQVITVJZUWMYGVBZWFWIUVBYCCRZUVCVSRZYDUVCULAX
      MUVAUXIUUAXMUUSUUTUXICYBIXTYAMUWTWGWJWKZUVBYRUXIUXJUWCUXKGYCYQCWLTFYCXQUV
      CCVSXRXPYCGWMUURWNTUVBYEUVDYFUVEYGUVBUUSUXBYEUVDULUWFUXDFXTXQUVDCXOXRXPXT
      GWMUURWNTUVBUUTUXEYFUVEULUWIUXGFYAXQUVECXOXRXPYAGWMUURWNTWOWIWPAYLGYKUGZB
      EUNSZWQZWRZYMAYKCRZUXLVSRZYLUXLULAXMUXPUUACIYKMYKVBZWSURZAYRUXPUXQOUXSGYK
      YQCWLTFYKXQUXLCVSXRXPYKGWMUURWNTAGBDUNSZWQWRZUGZBUXTGSZWQZWRZUXLUXOAGUUJW
      TZUXTUUJRZUYBUYEULAUUKUYFUUOUUJUUHGXAURAYOUYGYTUUJDUXTUULUXTVBZWSURGBUUJU
      XTXBTAUYAYKGAYOYPUYAYKULYTNDBHIUXTKUYHXCTXDAUYDUXNBAUYCUXMAYRUYCUXMULODEG
      UXMUXTUYHUXMVBZXEURXJXFXGAUUBYPUXOYMULUUDNEBHJUXMLUYIXCTXHXIUAUBCXOYBYGIJ
      XRYMYKMUUQUWTUXHUXRYMVBXKXL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordered sums in a monoid
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  One important use of words is as formal composites in cases where order is
  significant, using the general sum operator ~ df-gsum .  If order is not
  significant, it is simpler to use families instead.

$)

  ${
    $d x y B $.  $d x y G $.  $d x y .+ $.  $d x y .0. $.
    gsumvallem2.b $e |- B = ( Base ` G ) $.
    gsumvallem2.z $e |- .0. = ( 0g ` G ) $.
    gsumvallem2.p $e |- .+ = ( +g ` G ) $.
    gsumvallem2.o $e |- O = { x e. B |
      A. y e. B ( ( x .+ y ) = y /\ ( y .+ x ) = y ) } $.
    $( Lemma for properties of the set of identities of ` G ` .  The set of
       identities of a monoid is exactly the unique identity element.
       (Contributed by Mario Carneiro, 7-Dec-2014.) $)
    gsumvallem2 $p |- ( G e. Mnd -> O = { .0. } ) $=
      ( cmnd wcel csn cv co wceq wa wral eqeq1d mndidcl mndlrid ralrimiva oveq1
      mgmidsssn0 oveq2 anbi12d ralbidv elrab2 sylanbrc snssd eqssd ) ELMZFGNABC
      DEFLGHIJKUEUMGFUMGCMGBOZDPZUNQZUNGDPZUNQZRZBCSZGFMCEGHIUAUMUSBCCDEUNGHJIU
      BUCAOZUNDPZUNQZUNVADPZUNQZRZBCSUTAGCFVAGQZVFUSBCVGVCUPVEURVGVBUOUNVAGUNDU
      DTVGVDUQUNVAGUNDUFTUGUHKUIUJUKUL $.
  $}

  ${
    $d x G $.  $d x H $.  $d x ph $.  $d x S $.
    gsumsubm.a $e |- ( ph -> A e. V ) $.
    gsumsubm.s $e |- ( ph -> S e. ( SubMnd ` G ) ) $.
    gsumsubm.f $e |- ( ph -> F : A --> S ) $.
    gsumsubm.h $e |- H = ( G |`s S ) $.
    $( Evaluate a group sum in a submonoid.  (Contributed by Mario Carneiro,
       19-Dec-2014.) $)
    gsumsubm $p |- ( ph -> ( G gsum F ) = ( H gsum F ) ) $=
      ( vx cbs cfv cmnd eqid wcel syl co wceq cplusg c0g csubmnd submrcl submss
      wss subm0cl cv wa mndlrid sylan gsumress ) ALBEMNZEUANZCDEFOGEUBNZUMPZUNP
      ZKACEUCNQZEOQZICEUDRZHAURCUMUFIUMCEUPUERJAURUOCQICEUOUOPZUGRAUSLUHZUMQUOV
      BUNSVBTVBUOUNSVBTUIUTUMUNEVBUOUPUQVAUJUKUL $.
  $}

  ${
    $d k A $.  $d k x y G $.  $d k V $.  $d x y .0. $.
    gsumz.z $e |- .0. = ( 0g ` G ) $.
    $( Value of a group sum over the zero element.  (Contributed by Mario
       Carneiro, 7-Dec-2014.) $)
    gsumz $p |- ( ( G e. Mnd /\ A e. V ) ->
      ( G gsum ( k e. A |-> .0. ) ) = .0. ) $=
      ( vx vy cmnd wcel wa cbs cfv cplusg cmpt cv co wceq eqid c0g wral csn cvv
      crab simpl simpr fvex snid gsumvallem2 syl5eleqr ad2antrr fmptd gsumval1
      eqeltri ) CIJZADJZKZGHACLMZCNMZBAEOZCGPZHPZUSQVBRVBVAUSQVBRKHURUAGURUDZID
      EURSZFUSSZVCSZUOUPUEUOUPUFUQBAEVCUTUOEVCJUPBPAJUOEEUBVCEECTMUCFCTUGUNUHGH
      URUSCVCEVDFVEVFUIUJUKUTSULUM $.
  $}

  ${
    $d x y S $.  $d x y G $.  $d x y W $.
    $( Closure of the composite in any submonoid.  (Contributed by Stefan
       O'Rear, 15-Aug-2015.)  (Revised by Mario Carneiro, 1-Oct-2015.) $)
    gsumwsubmcl $p |- ( ( S e. ( SubMnd ` G ) /\ W e. Word S ) ->
        ( G gsum W ) e. S ) $=
      ( vx vy cfv wcel wa cgsu co c0 wceq eqid cc0 cmnd ad2antrr cn0 syl wf cv
      csubmnd cword c0g oveq2 gsum0 syl6eq eleq1d wne chash c1 cmin cplusg cseq
      cbs submrcl cuz lennncl adantll nnm1nn0 nn0uz syl6eleq cfzo wrdf ad2antlr
      cn cfz cz nnzd fzoval feq2d mpbid wss submss fssd ffvelrnda simpll submcl
      gsumval2 3expb sylan seqcl eqeltrd subm0cl adantr pm2.61ne ) ABUAFGZCAUBG
      ZHZBCIJZAGBUCFZAGZCKCKLZWIWJAWLWIBKIJWJCKBIUDBWJWJMZUEUFUGWHCKUHZHZWICUIF
      ZUJUKJZBULFZCNUMFAWOBUNFZWRCBNWQOWSMZWRMZWFBOGWGWNABUOPWOWQQNUPFWOWPVEGZW
      QQGWGWNXBWFACUQURZWPUSRUTVAZWONWQVFJZAWSCWONWPVBJZACSZXEACSWGXGWFWNACVCVD
      WOXFXEACWOWPVGGXFXELWOWPXCVHNWPVIRVJVKZWFAWSVLWGWNWSABWTVMPVNVRWODEWRACNW
      QXDWOXEADTZCXHVOWOWFXIAGZETZAGZHXIXKWRJAGZWFWGWNVPWFXJXLXMWRABXIXKXAVQVSV
      TWAWBWFWKWGABWJWMWCWDWE $.
  $}

  ${
    $d x y z B $.  $d x y z G $.  $d x y z .+ $.  $d x y z W $.  $d x y z X $.
    gsumwcl.b $e |- B = ( Base ` G ) $.
    $( A singleton composite recovers the initial symbol.  (Contributed by
       Stefan O'Rear, 16-Aug-2015.) $)
    gsumws1 $p |- ( S e. B -> ( G gsum <" S "> ) = S ) $=
      ( wcel cs1 cgsu co cc0 cop csn cplusg cfv cseq cbs wf cz 0z mpan wceq cdm
      s1val oveq2d eqid elfvdm eleq2s cuz cn0 0nn0 nn0uz eleqtri a1i cfz f1osng
      wf1o f1of snssi fssd fzsn ax-mp feq2i sylibr gsumval2 fvsng seq1i 3eqtrd
      syl ) BAEZCBFZGHCIBJKZGHICLMZVJINMBVHVIVJCGBAUBUCVHAVKVJCIIOUAZDVKUDCVLEB
      COMABCOUEDUFIIUGMZEVHIUHVMUIUJUKULVHIKZAVJPIIUMHZAVJPVHVNBKZAVJVHVNVPVJUO
      ZVNVPVJPIQEZVHVQRIBQAUNSVNVPVJUPVGBAUQURVOVNAVJVRVOVNTRIUSUTVAVBVCVHBVKVJ
      IRVRVHIVJMBTRIBQAVDSVEVF $.

    $( Closure of the composite of a word in a structure ` G ` .  (Contributed
       by Stefan O'Rear, 15-Aug-2015.) $)
    gsumwcl $p |- ( ( G e. Mnd /\ W e. Word B ) -> ( G gsum W ) e. B ) $=
      ( cmnd wcel csubmnd cfv cword cgsu co submid gsumwsubmcl sylan ) BEFABGHF
      CAIFBCJKAFABDLABCMN $.

    gsumccat.p $e |- .+ = ( +g ` G ) $.
    $( Homomorphic property of composites.  (Contributed by Stefan O'Rear,
       16-Aug-2015.)  (Revised by Mario Carneiro, 1-Oct-2015.) $)
    gsumccat $p |- ( ( G e. Mnd /\ W e. Word B /\ X e. Word B ) ->
        ( G gsum ( W ++ X ) ) = ( ( G gsum W ) .+ ( G gsum X ) ) ) $=
      ( wcel co cgsu wceq c0 cfv oveq2d wa caddc c1 cc0 cn0 syl vx vy cword w3a
      vz cmnd cconcat c0g oveq1 oveq2 eqid gsum0 syl6eq oveq1d eqeq12d wne cmin
      chash cseq simpl1 cn lennncl 3ad2antl2 adantrr 3ad2antl3 adantrl nnaddcld
      cuz nnm1nn0 nn0uz syl6eleq cfzo wf cfz simpl2 simpl3 syl2anc wrdf ccatlen
      ccatcl cz nnzd zaddcld fzoval eqtrd feq2d mpbid gsumval2 oveq12d cv mndcl
      3expb sylan mndass uzid uzaddcl nncnd 1cnd addsubassd ax-1cn npcan fveq2d
      sylancl 3eltr4d ffvelrnda seqsplit simpll2 simpll3 eleq2d biimpar syl3anc
      cc ccatval1 seqfveq addid2d eqtr4d seqeq1d addcomd addsubd fveq12d eqcomd
      ccatval3 seqshft2 anassrs ccatrid gsumwcl 3adant3 adantr pm2.61ne ccatlid
      mndrid 3ad2ant3 simp1 3adant2 mndlid ) CUFHZDAUCZHZEYQHZUDZCDEUGIZJIZCDJI
      ZCEJIZBIZKZCLEUGIZJIZCUHMZUUDBIZKDLDLKZUUBUUHUUEUUJUUKUUAUUGCJDLEUGUINUUK
      UUCUUIUUDBUUKUUCCLJIZUUIDLCJUJCUUIUUIUKZULZUMUNUOYTDLUPZOZUUFCDLUGIZJIZUU
      CUUIBIZKELELKZUUBUURUUEUUSUUTUUAUUQCJELDUGUJNUUTUUDUUIUUCBUUTUUDUULUUIELC
      JUJUUNUMNUOYTUUOELUPZUUFYTUUOUVAOZOZUUBDURMZEURMZPIZQUQIZBUUARUSZMZUUEUVC
      ABUUACRUVGUFFGYPYRYSUVBUTZUVCUVGSRVHMZUVCUVFVAHUVGSHUVCUVDUVEYTUUOUVDVAHZ
      UVAYRYPUUOUVLYSADVBVCVDZYTUVAUVEVAHZUUOYSYPUVAUVNYRAEVBVEVFZVGUVFVITVJVKU
      VCRUUAURMZVLIZAUUAVMZRUVGVNIZAUUAVMUVCUUAYQHZUVRUVCYRYSUVTYPYRYSUVBVOZYPY
      RYSUVBVPZADEVTVQAUUAVRTUVCUVQUVSAUUAUVCUVQRUVFVLIZUVSUVCUVPUVFRVLUVCYRYSU
      VPUVFKUWAUWBADEVSVQNUVCUVFWAHUWCUVSKUVCUVDUVEUVCUVDUVMWBZUVCUVEUVOWBZWCRU
      VFWDTWEWFWGZWHUVCUUEUVDQUQIZBDRUSMZUVEQUQIZBERUSMZBIZUVIUVCUUCUWHUUDUWJBU
      VCABDCRUWGUFFGUVJUVCUWGSUVKUVCUVLUWGSHUVMUVDVITVJVKZUVCRUVDVLIZADVMZRUWGV
      NIZADVMUVCYRUWNUWAADVRTUVCUWMUWOADUVCUVDWAHZUWMUWOKUWDRUVDWDTZWFWGWHUVCAB
      ECRUWIUFFGUVJUVCUWISUVKUVCUVNUWISHZUVOUVEVITZVJVKZUVCRUVEVLIZAEVMZRUWIVNI
      ZAEVMUVCYSUXBUWBAEVRTUVCUXAUXCAEUVCUVEWAHUXAUXCKUWERUVEWDTZWFWGWHWIUVCUVI
      UWGUVHMZUVGBUUAUWGQPIZUSZMZBIUWKUVCUAUBUEBAUUARUWGUVGUVCYPUAWJZAHZUBWJZAH
      ZOUXIUXKBIZAHZUVJYPUXJUXLUXNABCUXIUXKFGWKWLWMUVCYPUXJUXLUEWJZAHUDUXMUXOBI
      UXIUXKUXOBIBIKUVJABCUXIUXKUXOFGWNWMUVCUVDUWIPIZUVDVHMZUVGUXFVHMUVCUVDUXQH
      ZUWRUXPUXQHUVCUWPUXRUWDUVDWOTUWSUWIUVDUVDWPVQUVCUVDUVEQUVCUVDUVMWQZUVCUVE
      UVOWQZUVCWRZWSUVCUXFUVDVHUVCUVDXLHQXLHUXFUVDKUXSWTUVDQXAXCZXBXDUWLUVCUVSA
      UXIUUAUWFXEXFUVCUXEUWHUXHUWJBUVCBUAUUADRUWGUWLUVCUXIUWOHZOYRYSUXIUWMHZUXI
      UUAMUXIDMKYPYRYSUVBUYCXGYPYRYSUVBUYCXHUVCUYDUYCUVCUWMUWOUXIUWQXIXJADEUXIX
      MXKXNUVCUXHUWIUVDPIZBUUARUVDPIZUSZMUWJUVCUVGUYEUXGUYGUVCUXFUYFBUUAUVCUXFU
      VDUYFUYBUVCUVDUXSXOXPXQUVCUVGUVEUVDPIZQUQIUYEUVCUVFUYHQUQUVCUVDUVEUXSUXTX
      RUNUVCUVEUVDQUXTUXSUYAXSWEXTUVCBUAEUUAUVDRUWIUWTUWDUVCUXIUXCHZOZUXIUVDPIU
      UAMZUXIEMZUYJYRYSUXIUXAHZUYKUYLKYPYRYSUVBUYIXGYPYRYSUVBUYIXHUVCUYMUYIUVCU
      XAUXCUXIUXDXIXJADEUXIYBXKYAYCXPWIWEXPXPYDUUPUURUUCUUSUUPUUQDCJUUPYRUUQDKY
      PYRYSUUOVOADYETNUUPYPUUCAHZUUSUUCKYPYRYSUUOUTYTUYNUUOYPYRUYNYSACDFYFYGYHA
      BCUUCUUIFGUUMYKVQXPYIYTUUHUUDUUJYTUUGECJYSYPUUGEKYRAEYJYLNYTYPUUDAHZUUJUU
      DKYPYRYSYMYPYSUYOYRACEFYFYNABCUUDUUIFGUUMYOVQXPYI $.

    $( Valuation of a pair in a monoid.  (Contributed by Stefan O'Rear,
       23-Aug-2015.)  (Revised by Mario Carneiro, 27-Feb-2016.) $)
    gsumws2 $p |- ( ( G e. Mnd /\ S e. B /\ T e. B ) ->
        ( G gsum <" S T "> ) = ( S .+ T ) ) $=
      ( cmnd wcel w3a cs2 cgsu co cs1 cconcat wceq df-s2 a1i s1cl gsumws1 cword
      oveq2d id gsumccat syl3an oveqan12d 3adant1 3eqtrd ) EHIZCAIZDAIZJZECDKZL
      MECNZDNZOMZLMZEUNLMZEUOLMZBMZCDBMZULUMUPELUMUPPULCDQRUBUIUIUJUNAUAZIUKUOV
      BIUQUTPUIUCCASDASABEUNUOFGUDUEUJUKUTVAPUIUJUKURCUSDBACEFTADEFTUFUGUH $.

    $( Homomorphic property of composites with a singleton.  (Contributed by
       AV, 20-Jan-2019.) $)
    gsumccatsn $p |- ( ( G e. Mnd /\ W e. Word B /\ Z e. B ) ->
        ( G gsum ( W ++ <" Z "> ) ) = ( ( G gsum W ) .+ Z ) ) $=
      ( cmnd wcel cword w3a cs1 cconcat cgsu wceq s1cl gsumccat syl3an3 gsumws1
      co 3ad2ant3 oveq2d eqtrd ) CHIZDAJZIZEAIZKZCDELZMTNTZCDNTZCUINTZBTZUKEBTU
      GUDUFUIUEIUJUMOEAPABCDUIFGQRUHULEUKBUGUDULEOUFAECFSUAUBUC $.
  $}

  ${
    gsumspl.b $e |- B = ( Base ` M ) $.
    gsumspl.m $e |- ( ph -> M e. Mnd ) $.
    gsumspl.s $e |- ( ph -> S e. Word B ) $.
    gsumspl.f $e |- ( ph -> F e. ( 0 ... T ) ) $.
    gsumspl.t $e |- ( ph -> T e. ( 0 ... ( # ` S ) ) ) $.
    gsumspl.x $e |- ( ph -> X e. Word B ) $.
    gsumspl.y $e |- ( ph -> Y e. Word B ) $.
    gsumspl.eq $e |- ( ph -> ( M gsum X ) = ( M gsum Y ) ) $.
    $( The primary purpose of the splice construction is to enable local
       rewrites.  Thus, in any monoidal valuation, if a splice does not cause a
       local change it does not cause a global change.  (Contributed by Stefan
       O'Rear, 23-Aug-2015.) $)
    gsumspl $p |- ( ph -> ( M gsum ( S splice <. F , T , X >. ) ) =
          ( M gsum ( S splice <. F , T , Y >. ) ) ) $=
      ( co cgsu wcel wceq cc0 cop csubstr cplusg cfv cotp csplice oveq2d oveq1d
      chash cconcat cfz splval syl13anc cmnd swrdcl syl ccatcl syl2anc gsumccat
      cword eqid syl3anc 3eqtrd 3eqtr4d ) AFCUAEUBUCQZRQZFGRQZFUDUEZQZFCDCUJUEZ
      UBUCQZRQZVIQZVGFHRQZVIQZVMVIQZFCEDGUFUGQZRQZFCEDHUFUGQZRQZAVJVPVMVIAVHVOV
      GVIPUHUIAVSFVFGUKQZVLUKQZRQZFWBRQZVMVIQZVNAVRWCFRACBVAZSZEUADULQZSZDUAVKU
      LQZSZGWGSZVRWCTKLMNGCDEWGWIWKWGUMUNUHAFUOSZWBWGSZVLWGSZWDWFTJAVFWGSZWMWOA
      WHWQKBCUAEUPUQZNBVFGURUSAWHWPKBCDVKUPUQZBVIFWBVLIVIVBZUTVCAWEVJVMVIAWNWQW
      MWEVJTJWRNBVIFVFGIWTUTVCUIVDAWAFVFHUKQZVLUKQZRQZFXARQZVMVIQZVQAVTXBFRAWHW
      JWLHWGSZVTXBTKLMOHCDEWGWIWKWGUMUNUHAWNXAWGSZWPXCXETJAWQXFXGWROBVFHURUSWSB
      VIFXAVLIWTUTVCAXDVPVMVIAWNWQXFXDVPTJWROBVIFVFHIWTUTVCUIVDVE $.
  $}

  ${
    $d x y B $.  $d x y H $.  $d x y M $.  $d x y N $.  $d x y W $.
    gsumwmhm.b $e |- B = ( Base ` M ) $.
    $( Behavior of homomorphisms on finite monoidal sums.  (Contributed by
       Stefan O'Rear, 27-Aug-2015.) $)
    gsumwmhm $p |- ( ( H e. ( M MndHom N ) /\ W e. Word B ) ->
        ( H ` ( M gsum W ) ) = ( N gsum ( H o. W ) ) ) $=
      ( co wcel wa cgsu cfv wceq c0 eqid syl6eq cc0 cmnd ad2antrr wf syl vx c0g
      vy cmhm cword ccom oveq2 gsum0 fveq2d coeq2 co02 oveq2d eqeq12d wne chash
      c1 cmin cplusg cseq cv mhmrcl1 mndcl 3expb sylan cfzo wrdf ad2antlr cz cn
      cfz cfn wb wrdfin adantl hashnncl biimpar nnzd fzoval feq2d ffvelrnda cn0
      mpbid cuz nnm1nn0 nn0uz syl6eleq simpll mhmlin wfn fvco2 seqhomo gsumval2
      ffn eqcomd cbs mhmrcl2 mhmf fco syl2anc 3eqtr4d mhm0 adantr pm2.61ne ) BC
      DUDGHZEAUEHZIZCEJGZBKZDBEUFZJGZLCUBKZBKZDUBKZLZEMEMLZXHXLXJXMXOXGXKBXOXGC
      MJGXKEMCJUGCXKXKNZUHOUIXOXJDMJGXMXOXIMDJXOXIBMUFMEMBUJBUKOULDXMXMNZUHOUMX
      FEMUNZIZEUOKZUPUQGZCURKZEPUSKZBKYADURKZXIPUSKXHXJXSUAUCYBYDAEXIBPYAXSCQHZ
      UAUTZAHZUCUTZAHZIZYFYHYBGZAHZXDYEXEXRCDBVARZYEYGYIYLAYBCYFYHFYBNZVBVCVDXS
      PYAVJGZAYFEXSPXTVEGZAESZYOAESZXEYQXDXRAEVFVGXSYPYOAEXSXTVHHYPYOLXSXTXFXTV
      IHZXRXFEVKHZYSXRVLXEYTXDAEVMVNEVOTVPZVQPXTVRTVSWBZVTXSYAWAPWCKXSYSYAWAHUU
      AXTWDTWEWFZXSXDYJYKBKYFBKYHBKYDGLZXDXEXRWGXDYGYIUUDAYBYDCDBYFYHFYNYDNZWHV
      CVDXSYFYOHZIYFXIKZYFEKBKZXSEYOWIZUUFUUGUUHLXSYRUUIUUBYOAEWMTYOBEYFWJVDWNW
      KXSXGYCBXSAYBECPYAQFYNYMUUCUUBWLUIXSDWOKZYDXIDPYAQUUJNZUUEXDDQHXEXRCDBWPR
      UUCXSAUUJBSZYRYOUUJXISXDUULXEXRAUUJCDBFUUKWQRUUBYOAUUJBEWRWSWLWTXDXNXECDB
      XMXKXPXQXAXBXC $.
  $}

  ${
    $d v w x y G $.  $d v w x z B $.  $d v w x y M $.  $d w K $.  $d z G $.
    $d z M $.
    gsumwspan.b $e |- B = ( Base ` M ) $.
    gsumwspan.k $e |- K = ( mrCls ` ( SubMnd ` M ) ) $.
    $( The submonoid generated by a set of elements is precisely the set of
       elements which can be expressed as finite products of the generator.
       (Contributed by Stefan O'Rear, 22-Aug-2015.) $)
    gsumwspan $p |- ( ( M e. Mnd /\ G C_ B ) -> ( K ` G ) =
          ran ( w e. Word G |-> ( M gsum w ) ) ) $=
      ( vx vy vz vv wcel wss cgsu co wceq oveq2 cvv wb wral cmnd cfv cword cmpt
      wa crn csubmnd cmre submacs acsmred adantr wrex simpr s1cld ssel2 adantll
      cv cs1 gsumws1 syl eqcomd eqeq2d rspcev syl2anc eqid elrnmpt ax-mp sylibr
      vex ex ssrdv cplusg wf mrccl sylan mrcssid sswrd sselda gsumwsubmcl fmptd
      c0g frn mrcssvd sstrd c0 wrd0 gsum0 eqcomi a1i sylancr fvex ccatcl adantl
      cconcat simpll ad2antlr simprl sseldd gsumccat syl3anc ralrimivva cbvmptv
      simprr ovex rneqi raleqi eleq1d ralrnmpt ovexd bitri ralbii oveq1 ralbidv
      mprg 3bitri w3a issubm mpbir3and mrcsscl eqssd ) EUALZCBMZUEZCDUBZACUCZEA
      UQZNOZUDZUFZYCEUGUBZBUHUBLZCYIMYIYJLZYDYIMYAYKYBYAYJBBEFUIUJZUKYCHCYIYCHU
      QZCLZYNYILZYCYOUEZYNYGPZAYEULZYPYQYNURZYELYNEYTNOZPZYSYQYNCYCYOUMUNYQUUAY
      NYQYNBLZUUAYNPYBYOUUCYACBYNUOUPBYNEFUSUTVAYRUUBAYTYEYFYTPYGUUAYNYFYTENQVB
      VCVDYNRLYPYSSHVIAYEYGYNYHRYHVEZVFVGVHVJVKYCYLYIBMZEWAUBZYILZYNIUQZEVLUBZO
      ZYILZIYITZHYITZYCYIYDBYCYEYDYHVMYIYDMYCAYEYGYDYHYCYFYELZUEYDYJLZYFYDUCZLY
      GYDLYCUUOUUNYAYKYBUUOYMYJCDBGVNVOUKYCYEUUPYFYCCYDMZYEUUPMYAYKYBUUQYMYJCDB
      GVPVOCYDVQUTVRYDEYFVSVDUUDVTYEYDYHWBUTZYAYDBMYBYAYJCDBYMGWCUKWDYCUUFYGPZA
      YEULZUUGYCWEYELUUFEWENOZPZUUTCWFUVBYCUVAUUFEUUFUUFVEZWGWHWIUUSUVBAWEYEYFW
      EPYGUVAUUFYFWEENQVBVCWJUUFRLUUGUUTSEWAWKAYEYGUUFYHRUUDVFVGVHYCEJUQZNOZEKU
      QZNOZUUIOZYILZKYETZJYETZUUMYCUVIJKYEYEYCUVDYELZUVFYELZUEZUEZUVHYGPZAYEULZ
      UVIUVOUVDUVFWNOZYELZUVHEUVRNOZPZUVQUVNUVSYCCUVDUVFWLWMUVOUVTUVHUVOYAUVDBU
      CZLUVFUWBLUVTUVHPYAYBUVNWOUVOYEUWBUVDYBYEUWBMYAUVNCBVQWPZYCUVLUVMWQWRUVOY
      EUWBUVFUWCYCUVLUVMXCWRBUUIEUVDUVFFUUIVEZWSWTVAUVPUWAAUVRYEYFUVRPYGUVTUVHY
      FUVRENQVBVCVDUVHRLUVIUVQSUVEUVGUUIXDAYEYGUVHYHRUUDVFVGVHXAUUMUULHJYEUVEUD
      ZUFZTYNUVGUUIOZYILZKYETZHUWFTZUVKUULHYIUWFYHUWEAJYEYGUVEYFUVDENQXBXEXFUUL
      UWIHUWFUULUUKIKYEUVGUDZUFZTZUWIUUKIYIUWLYHUWKAKYEYGUVGYFUVFENQXBXEXFUVGRL
      UWMUWISKYEUUKUWHKIYEUVGUWKRUWKVEUUHUVGPUUJUWGYIUUHUVGYNUUIQXGXHUVMEUVFNXI
      XNXJXKUVERLUWJUVKSJYEUWIUVJJHYEUVEUWERUWEVEYNUVEPZUWHUVIKYEUWNUWGUVHYIYNU
      VEUVGUUIXLXGXMXHUVLEUVDNXIXNXOVHYAYLUUEUUGUUMXPSYBHIBUUIYIEUUFFUVCUWDXQUK
      XRYJCDYIBGXSWTUURXT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Free monoids
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c freeMnd $.
  $c varFMnd $.

  $( Extend class definition with the free monoid construction. $)
  cfrmd $a class freeMnd $.

  $( Extend class notation with free monoid injection. $)
  cvrmd $a class varFMnd $.

  $( Define a free monoid over a set ` i ` of generators, defined as the set of
     finite strings on ` I ` with the operation of concatenation.  (Contributed
     by Mario Carneiro, 27-Sep-2015.) $)
  df-frmd $a |- freeMnd = ( i e. _V |->
   { <. ( Base ` ndx ) , Word i >. ,
     <. ( +g ` ndx ) , ( ++ |` ( Word i X. Word i ) ) >. } ) $.
  ${
    $d i j $.
    $( Define a free monoid over a set ` i ` of generators, defined as the set
       of finite strings on ` I ` with the operation of concatenation.
       (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    df-vrmd $a |- varFMnd = ( i e. _V |-> ( j e. i |-> <" j "> ) ) $.
  $}

  ${
    $d i B $.  $d i I $.  $d i .+ $.  $d i V $.
    frmdval.m $e |- M = ( freeMnd ` I ) $.
    frmdval.b $e |- ( I e. V -> B = Word I ) $.
    frmdval.p $e |- .+ = ( ++ |` ( B X. B ) ) $.
    $( Value of the free monoid construction.  (Contributed by Mario Carneiro,
       27-Sep-2015.) $)
    frmdval $p |- ( I e. V ->
      M = { <. ( Base ` ndx ) , B >. , <. ( +g ` ndx ) , .+ >. } ) $=
      ( vi wcel cfrmd cfv cnx cop cpr cword cconcat cxp cres cvv cplusg cv cmpt
      cbs wceq df-frmd wa wrdeq eqcomd sylan9eqr opeq2d sqxpeqd reseq2d syl6eqr
      a1i preq12d elex prex fvmptd syl5eq ) CEJZDCKLMUDLZANZMUALZBNZOZFVAICVBIU
      BZPZNZVDQVHVHRZSZNZOZVFTKTKITVMUCUEVAIUFUOVAVGCUEZUGZVIVCVLVEVOVHAVBVNVAV
      HCPZAVGCUHVAAVPGUIUJZUKVOVKBVDVOVKQAARZSBVOVJVRQVOVHAVQULUMHUNUKUPCEUQVFT
      JVAVCVEURUOUSUT $.
  $}

  ${
    $d x y B $.  $d x y I $.
    frmdbas.m $e |- M = ( freeMnd ` I ) $.
    frmdbas.b $e |- B = ( Base ` M ) $.
    $( The base set of a free monoid.  (Contributed by Mario Carneiro,
       27-Sep-2015.)  (Revised by Mario Carneiro, 27-Feb-2016.) $)
    frmdbas $p |- ( I e. V -> B = Word I ) $=
      ( wcel cbs cfv cword cnx cop cplusg cconcat cxp cres cpr eqidd eqid cvv
      frmdval fveq2d wceq wrdexg grpbase syl eqtr4d syl5eq ) BDGZACHIZBJZFUIUJK
      HIUKLKMINUKUKOPZLQZHIZUKUICUMHUKULBCDEUIUKRULSUAUBUIUKTGUKUNUCBDUDUKULUMT
      UMSUEUFUGUH $.

    $( An element of the base set of a free monoid is a string on the
       generators.  (Contributed by Mario Carneiro, 27-Feb-2016.) $)
    frmdelbas $p |- ( X e. B -> X e. Word I ) $=
      ( wcel cword id cvv wceq cfrmd elbasfv frmdbas syl eleqtrd ) DAGZDABHZQIQ
      BJGARKACLDBEFMABCJEFNOP $.

    frmdplusg.p $e |- .+ = ( +g ` M ) $.
    $( The monoid operation of a free monoid.  (Contributed by Mario Carneiro,
       27-Sep-2015.)  (Revised by Mario Carneiro, 27-Feb-2016.) $)
    frmdplusg $p |- .+ = ( ++ |` ( B X. B ) ) $=
      ( vx vy cvv wcel cconcat cxp cres cbs cfv cplusg fveq2d syl5eq c0 cnx cop
      wceq cpr frmdbas eqid frmdval cword wrdexg wf wfn cv wral wss ccatfn xpss
      co fnssres mp2an wa ovres frmdelbas ccatcl syl2an eqeltrd rgen2a mpbir2an
      ffnov fvex eqeltri xpex fex2 mp3an12 grpplusg 3syl wn cfrmd fvprc res0 c2
      eqtr4d df-plusg str0 eqtr2i syl6eq base0 3eqtr4g xpeq2d reseq2d pm2.61i
      xp0 ) CJKZBLAAMZNZUCWLBUAOPAUBUAQPWNUBUDZQPZWNWLBDQPZWPGWLDWOQAWNCDJEACDJ
      EFUEWNUFUGRSWLCUHZJKZWNJKZWNWPUCCJUIWMWRWNUJZWMJKWSWTXAWNWMUKZHULZIULZWNU
      QZWRKZIAUMHAUMLJJMZUKWMXGUNXBUOAAUPXGWMLURUSXFHIAXCAKZXDAKZUTXEXCXDLUQZWR
      XCXDAALVAXHXCWRKXDWRKXJWRKXIACDXCEFVBACDXDEFVBCXCXDVCVDVEVFHIAAWRWNVHVGAA
      ADOPZJFDOVIVJZXLVKWMWRWNJJVLVMAWNWOJWOUFVNVOWAWLVPZBLTNZWNXMBTQPZXNXMBWQX
      OGXMDTQXMDCVQPTECVQVRSZRSXNTXOLVSQVTWBWCWDWEXMWMTLXMWMATMTXMATAXMXKTOPATX
      MDTOXPRFWFWGWHAWKWEWIWAWJ $.

    $( Value of the monoid operation of the free monoid construction.
       (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    frmdadd $p |- ( ( X e. B /\ Y e. B ) -> ( X .+ Y ) = ( X ++ Y ) ) $=
      ( wcel wa co cconcat cxp cres frmdplusg oveqi ovres syl5eq ) EAJFAJKEFBLE
      FMAANOZLEFMLBTEFABCDGHIPQEFAAMRS $.
  $}

  ${
    $d j A $.  $d i j I $.  $d j V $.
    vrmdfval.u $e |- U = ( varFMnd ` I ) $.
    $( The canonical injection from the generating set ` I ` to the base set of
       the free monoid.  (Contributed by Mario Carneiro, 27-Feb-2016.) $)
    vrmdfval $p |- ( I e. V -> U = ( j e. I |-> <" j "> ) ) $=
      ( vi wcel cvrmd cfv cv cs1 cmpt cvv wceq elex cword wf s1cl adantl eqid
      fmptd wrdexg fex2 syl3anc mpteq1 df-vrmd fvmptg syl2anc syl5eq ) CDGZACHI
      ZBCBJZKZLZEUJCMGZUNMGZUKUNNCDOZUJCCPZUNQUOURMGUPUJBCUMURUNULCGUMURGUJULCR
      SUNTUAUQCDUBCURUNMMUCUDFCBFJZUMLUNMMHBUSCUMUEFBUFUGUHUI $.

    $( The value of the generating elements of a free monoid.  (Contributed by
       Mario Carneiro, 27-Feb-2016.) $)
    vrmdval $p |- ( ( I e. V /\ A e. I ) -> ( U ` A ) = <" A "> ) $=
      ( vj wcel wa cs1 cword cmpt wceq vrmdfval adantr s1eq adantl simpr fvmptd
      cv s1cl ) CDGZACGZHZFAFSZIZAIZCBCJZUABFCUEKLUBBFCDEMNUDALUEUFLUCUDAOPUAUB
      QUBUFUGGUAACTPR $.

    $( The mapping from the index set to the generators is a function into the
       free monoid.  (Contributed by Mario Carneiro, 27-Feb-2016.) $)
    vrmdf $p |- ( I e. V -> U : I --> Word I ) $=
      ( vj wcel cword wf cs1 cmpt s1cl adantl eqid fmptd vrmdfval feq1d mpbird
      cv ) BCFZBBGZAHBTEBERZIZJZHSEBUBTUCUABFUBTFSUABKLUCMNSBTAUCAEBCDOPQ $.
  $}

  ${
    $d x A $.  $d x y z I $.  $d x y J $.  $d x y z M $.  $d x y z U $.
    $d x y z V $.  $d x W $.
    frmdmnd.m $e |- M = ( freeMnd ` I ) $.
    $( A free monoid is a monoid.  (Contributed by Mario Carneiro,
       27-Sep-2015.)  (Revised by Mario Carneiro, 27-Feb-2016.) $)
    frmdmnd $p |- ( I e. V -> M e. Mnd ) $=
      ( vx vy vz wcel cfv c0 cv cconcat frmdadd frmdelbas wceq eleqtrrd syl2anc
      co wa syl cbs cplusg eqidd w3a eqid ccatcl syl2an eqeltrd 3adant1 frmdbas
      cword 3ad2ant1 simpr1 simpr2 simpr3 ccatass syl3anc adantr 3eqtr4d oveq1d
      oveq2d wrd0 syl5eleqr sylan adantl ccatlid eqtrd ancoms ccatrid ismndd )
      ACHZEFGBUAIZBUBIZBJVKVLUCVKVMUCVKEKZVLHZFKZVLHZUDVNVPVMRZAUKZVLVOVQVRVSHV
      KVOVQSVRVNVPLRZVSVLVMABVNVPDVLUEZVMUEZMZVOVNVSHZVPVSHZVTVSHZVQVLABVNDWANZ
      VLABVPDWANZAVNVPUFUGZUHUIVKVOVLVSOZVQVLABCDWAUJZULPVKVOVQGKZVLHZUDZSZVTWL
      VMRZVNVPWLLRZVMRZVRWLVMRVNVPWLVMRZVMRWOVTWLLRZVNWQLRZWPWRWOWDWEWLVSHZWTXA
      OWOVOWDVKVOVQWMUMZWGTWOVQWEVKVOVQWMUNZWHTZWOWMXBVKVOVQWMUOZVLABWLDWANTZAV
      NVPWLUPUQWOVTVLHWMWPWTOWOVTVSVLWOVOVQWFXCXDWIQVKWJWNWKURZPXFVLVMABVTWLDWA
      WBMQWOVOWQVLHWRXAOXCWOWQVSVLWOWEXBWQVSHXEXGAVPWLUFQXHPVLVMABVNWQDWAWBMQUS
      WOVRVTWLVMWOVOVQVRVTOXCXDWCQUTWOWSWQVNVMWOVQWMWSWQOXDXFVLVMABVPWLDWAWBMQV
      AUSVKJVSVLAVBWKVCZVKVOSZJVNVMRZJVNLRZVNVKJVLHZVOXKXLOXIVLVMABJVNDWAWBMVDX
      JWDXLVNOVOWDVKWGVEZAVNVFTVGXJVNJVMRZVNJLRZVNVKXMVOXOXPOZXIVOXMXQVLVMABVNJ
      DWAWBMVHVDXJWDXPVNOXNAVNVITVGVJ $.

    $( The identity of the free monoid is the empty word.  (Contributed by
       Mario Carneiro, 27-Sep-2015.) $)
    frmd0 $p |- (/) = ( 0g ` M ) $=
      ( vx cvv wcel c0 c0g cfv wceq cbs cplusg eqid cconcat frmdadd sylan eqtrd
      co syl cfrmd cword wrd0 frmdbas syl5eleqr frmdelbas adantl ccatlid ancoms
      cv wa ccatrid ismgmid2 wn fvprc syl5eq fveq2d 0g0 syl6reqr pm2.61i ) AEFZ
      GBHIZJUTDBKIZBLIZGBVAVBMZVAMVCMZUTGAUAZVBAUBVBABECVDUCUDZUTDUIZVBFZUJZGVH
      VCRZGVHNRZVHUTGVBFZVIVKVLJVGVBVCABGVHCVDVEOPVJVHVFFZVLVHJVIVNUTVBABVHCVDU
      EUFZAVHUGSQVJVHGVCRZVHGNRZVHUTVMVIVPVQJZVGVIVMVRVBVCABVHGCVDVEOUHPVJVNVQV
      HJVOAVHUKSQULUTUMZVAGHIGVSBGHVSBATIGCATUNUOUPUQURUS $.

    $( The set of words taking values in a subset is a (free) submonoid of the
       free monoid.  (Contributed by Mario Carneiro, 27-Sep-2015.)  (Revised by
       Mario Carneiro, 27-Feb-2016.) $)
    frmdsssubm $p |- ( ( I e. V /\ J C_ I ) ->
        Word J e. ( SubMnd ` M ) ) $=
      ( vx vy wcel wss wa cword cfv c0 cv co wral adantl wceq eqid adantr sswrd
      csubmnd cbs cplusg frmdbas sseqtr4d wrd0 cconcat sselda anim12dan frmdadd
      a1i syl ccatcl eqeltrd ralrimivva cmnd w3a frmdmnd frmd0 issubm mpbir3and
      wb ) ADHZBAIZJZBKZCUBLHZVGCUCLZIZMVGHZFNZGNZCUDLZOZVGHZGVGPFVGPZVFVGAKZVI
      VEVGVRIVDBAUAQVDVIVRRVEVIACDEVISZUETUFZVKVFBUGULVFVPFGVGVGVFVLVGHZVMVGHZJ
      ZJZVOVLVMUHOZVGWDVLVIHZVMVIHZJVOWERVFWAWFWBWGVFVGVIVLVTUIVFVGVIVMVTUIUJVI
      VNACVLVMEVSVNSZUKUMWCWEVGHVFBVLVMUNQUOUPVFCUQHZVHVJVKVQURVCVDWIVEACDEUSTF
      GVIVNVGCMVSACEUTWHVAUMVB $.

    frmdgsum.u $e |- U = ( varFMnd ` I ) $.
    $( Any word in a free monoid can be expressed as the sum of the singletons
       composing it.  (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    frmdgsum $p |- ( ( I e. V /\ W e. Word I ) ->
      ( M gsum ( U o. W ) ) = W ) $=
      ( wcel ccom cgsu co wceq wi c0 cconcat coeq2 oveq2d id eqeq12d eqtrd co02
      vx vy vz cword cv cs1 syl6eq imbi2d frmd0 gsum0 wa oveq1 wf simprl simprr
      a1i s1cld vrmdf adantr ccatco syl3anc s1co syl2anc vrmdval adantrl cplusg
      cfv s1eqd cmnd cbs frmdmnd wrdco eqid frmdbas wrdeq syl eleqtrrd gsumccat
      gsumws1 gsumwcl frmdadd eqeq1d syl5ibr expcom a2d wrdind impcom ) EBUEZHB
      DHZCAEIZJKZELZWJCAUBUFZIZJKZWNLZMWJCNJKZNLZMWJCAUCUFZIZJKZWTLZMWJCAWTUDUF
      ZUGZOKZIZJKZXFLZMWJWMMUBUCUDEBWNNLZWQWSWJXJWPWRWNNXJWONCJXJWOANINWNNAPAUA
      UHQXJRSUIWNWTLZWQXCWJXKWPXBWNWTXKWOXACJWNWTAPQXKRSUIWNXFLZWQXIWJXLWPXHWNX
      FXLWOXGCJWNXFAPQXLRSUIWNELZWQWMWJXMWPWLWNEXMWOWKCJWNEAPQXMRSUIWSWJCNBCFUJ
      UKUQWTWIHZXDBHZULZWJXCXIWJXPXCXIMXCXIWJXPULZXBXEOKZXFLXBWTXEOUMXQXHXRXFXQ
      XHCXAXEUGZOKZJKZXRXQXGXTCJXQXGXAAXEIZOKZXTXQXNXEWIHBWIAUNZXGYCLWJXNXOUOZX
      QXDBWJXNXOUPZURZWJYDXPABDGUSUTZBWIWTXEAVAVBXQYBXSXAOXQYBXDAVHZUGZXSXQXOYD
      YBYJLYFYHBWIXDAVCVDXQYIXEWJXOYIXELXNXDABDGVEVFVITQTQXQYAXBCXSJKZCVGVHZKZX
      RXQCVJHZXACVKVHZUEZHZXSYPHYAYMLWJYNXPBCDFVLUTZXQXAWIUEZYPXQXNYDXAYSHYEYHB
      WIAWTVMVDXQYOWILZYPYSLWJYTXPYOBCDFYOVNZVOUTZYOWIVPVQVRZXQXEYOXQXEWIYOYGUU
      BVRZURYOYLCXAXSUUAYLVNZVSVBXQYMXBXEYLKZXRXQYKXEXBYLXQXEYOHZYKXELUUDYOXECU
      UAVTVQQXQXBYOHZUUGUUFXRLXQYNYQUUHYRUUCYOCXAUUAWAVDUUDYOYLBCXBXEFUUAUUEWBV
      DTTTWCWDWEWFWGWH $.

    $( A subset of generators is contained in a submonoid iff the set of words
       on the generators is in the submonoid.  This can be viewed as an
       elementary way of saying "the monoidal closure of ` J ` is ` Word J ` ".
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    frmdss2 $p |- ( ( I e. V /\ J C_ I /\ A e. ( SubMnd ` M ) ) ->
      ( ( U " J ) C_ A <-> Word J C_ A ) ) $=
      ( vx wcel wss cfv cword wa ccom co wceq syl syl2anc wf csubmnd w3a simpl1
      cima cv cgsu simpl2 sswrd simprr sseldd frmdgsum simpl3 cres crn cc0 cfzo
      chash wrdf ad2antll frn cores wfn vrmdf 3ad2ant1 ffn adantr df-ima simprl
      fnssres syl5eqssr df-f sylanbrc wrdco eqeltrrd gsumwsubmcl expr ssrdv cs1
      ex wi wral simp2 sselda vrmdval simpr s1cld eqeltrd ralrimiva wfun cdm wb
      fnfun fndm sseqtr4d funimass4 mpbird sstr2 impbid ) CFJZDCKZAEUALJZUBZBDU
      DZAKZDMZAKZXBXDXFXBXDNIXEAXBXDIUEZXEJZXGAJXBXDXHNZNZEBXGOZUFPZXGAXJWSXGCM
      ZJXLXGQWSWTXAXIUCXJXEXMXGXJWTXEXMKWSWTXAXIUGZDCUHRXBXDXHUIZUJBCEFXGGHUKSX
      JXAXKAMZJXLAJWSWTXAXIULXJBDUMZXGOZXKXPXJXGUNDKZXRXKQXJUOXGUQLUPPZDXGTZXSX
      HYAXBXDDXGURUSXTDXGUTRBXGDVARXJXHDAXQTZXRXPJXOXJXQDVBZXQUNZAKYBXJBCVBZWTY
      CXBYEXIXBCXMBTZYEWSWTYFXABCFHVCVDCXMBVERZVFXNCDBVISXJYDXCABDVGXBXDXHVHVJD
      AXQVKVLDAXQXGVMSVNAEXKVOSVNVPVQVSXBXCXEKZXFXDVTXBYHXGBLZXEJZIDWAZXBYJIDXB
      XGDJZNZYIXGVRZXEYMWSXGCJYIYNQWSWTXAYLUCXBDCXGWSWTXAWBZWCXGBCFHWDSYMXGDXBY
      LWEWFWGWHXBBWIZDBWJZKYHYKWKXBYEYPYGCBWLRXBDCYQYOXBYEYQCQYGCBWMRWNIDXEBWOS
      WPXCXEAWQRWR $.
  $}

  ${
    $d x A $.  $d x B $.  $d y z E $.  $d x y z G $.  $d x y z ph $.  $d x Y $.
    $d x y z I $.  $d y z M $.
    frmdup.m $e |- M = ( freeMnd ` I ) $.
    frmdup.b $e |- B = ( Base ` G ) $.
    frmdup.e $e |- E = ( x e. Word I |-> ( G gsum ( A o. x ) ) ) $.
    frmdup.g $e |- ( ph -> G e. Mnd ) $.
    frmdup.i $e |- ( ph -> I e. X ) $.
    frmdup.a $e |- ( ph -> A : I --> B ) $.
    $( Any assignment of the generators to target elements can be extended
       (uniquely) to a homomorphism from a free monoid to an arbitrary other
       monoid.  (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    frmdup1 $p |- ( ph -> E e. ( M MndHom G ) ) $=
      ( wcel co wceq c0 cgsu vy vz cmnd wa cbs cfv wf cv cplusg c0g w3a frmdmnd
      wral cmhm syl cword ccom adantr simpr wrdco syl2anc gsumwcl fmptd frmdbas
      jca eqid mpbird cconcat frmdelbas ad2antrl ad2antll ccatco syl3anc oveq2d
      feq2d gsumccat eqtrd frmdadd adantl fveq2d ccatcl coeq2 fvmpt3i oveqan12d
      ovex 3eqtr4d ralrimivva wrd0 co02 syl6eq gsum0 mp1i frmd0 ismhm sylanbrc
      3jca ) AHUCPZFUCPZUDHUEUFZDEUGZUAUHZUBUHZHUIUFZQZEUFZXAEUFZXBEUFZFUIUFZQZ
      RZUBWSUMUAWSUMZSEUFFUJUFZRZUKEHFUNQPAWQWRAGIPZWQNGHIJULUOMVEAWTXKXMAWTGUP
      ZDEUGABXOFCBUHZUQZTQZDEAXPXOPZUDZWRXQDUPZPZXRDPAWRXSMURXTXSGDCUGZYBAXSUSA
      YCXSOURGDCXPUTVADFXQKVBVALVCAWSXODEAXNWSXORNWSGHIJWSVFZVDUOVOVGAXJUAUBWSW
      SAXAWSPZXBWSPZUDZUDZFCXAXBVHQZUQZTQZFCXAUQZTQZFCXBUQZTQZXHQZXEXIYHYKFYLYN
      VHQZTQZYPYHYJYQFTYHXAXOPZXBXOPZYCYJYQRYEYSAYFWSGHXAJYDVIVJZYFYTAYEWSGHXBJ
      YDVIVKZAYCYGOURZGDXAXBCVLVMVNYHWRYLYAPZYNYAPZYRYPRAWRYGMURYHYSYCUUDUUAUUC
      GDCXAUTVAYHYTYCUUEUUBUUCGDCXBUTVADXHFYLYNKXHVFZVPVMVQYHXEYIEUFZYKYHXDYIEY
      GXDYIRAWSXCGHXAXBJYDXCVFZVRVSVTYHYIXOPZUUGYKRYHYSYTUUIUUAUUBGXAXBWAVABYIX
      RYKXOEXPYIRXQYJFTXPYICWBVNLFXQTWEZWCUOVQYHYSYTXIYPRUUAUUBYSYTXFYMXGYOXHBX
      AXRYMXOEXPXARXQYLFTXPXACWBVNLUUJWCBXBXRYOXOEXPXBRXQYNFTXPXBCWBVNLUUJWCWDV
      AWFWGSXOPXMAGWHBSXRXLXOEXPSRZXRFSTQXLUUKXQSFTUUKXQCSUQSXPSCWBCWIWJVNFXLXL
      VFZWKWJLUUJWCWLWPUAUBWSDXCXHHFEXLSYDKUUHUUFGHJWMUULWNWO $.

    frmdup2.u $e |- U = ( varFMnd ` I ) $.
    frmdup2.y $e |- ( ph -> Y e. I ) $.
    $( The evaluation map has the intended behavior on the generators.
       (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    frmdup2 $p |- ( ph -> ( E ` ( U ` Y ) ) = ( A ` Y ) ) $=
      ( cgsu cfv cs1 wcel wceq vrmdval syl2anc fveq2d ccom co cword s1cld coeq2
      cv oveq2d ovex fvmpt3i syl wf s1co ffvelrnd gsumws1 3eqtrd eqtrd ) AKEUAZ
      FUAKUBZFUAZKCUAZAVDVEFAHJUCKHUCZVDVEUDPSKEHJRUEUFUGAVFGCVEUHZTUIZGVGUBZTU
      IZVGAVEHUJZUCVFVJUDAKHSUKBVEGCBUMZUHZTUIVJVMFVNVEUDVOVIGTVNVECULUNNGVOTUO
      UPUQAVIVKGTAVHHDCURVIVKUDSQHDKCUSUFUNAVGDUCVLVGUDAHDKCQSUTDVGGMVAUQVBVC
      $.
  $}

  ${
    $d m x y A $.  $d m x y B $.  $d m x y G $.  $d m x y I $.  $d m x y M $.
    $d x F $.  $d m x y U $.  $d m x y V $.
    frmdup3.m $e |- M = ( freeMnd ` I ) $.
    frmdup3.b $e |- B = ( Base ` G ) $.
    frmdup3.u $e |- U = ( varFMnd ` I ) $.
    $( Lemma for ~ frmdup3 .  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    frmdup3lem $p |- ( ( ( G e. Mnd /\ I e. V /\ A : I --> B ) /\
                         ( F e. ( M MndHom G ) /\ ( F o. U ) = A ) ) ->
                       F = ( x e. Word I |-> ( G gsum ( A o. x ) ) ) ) $=
      ( wcel wf co ccom wceq wa cfv cgsu cmnd w3a cmhm cword cmpt cbs eqid mhmf
      cv ad2antrl frmdbas 3ad2ant2 adantr feq2d mpbid feqmptd simpr vrmdf feq3d
      simplrl mpbird ad2antrr wrdco syl2anc simpll2 fveq2d coass simplrr coeq1d
      gsumwmhm frmdgsum syl5eqr oveq2d 3eqtr3d mpteq2dva eqtrd ) FUAMZGIMZGCBNZ
      UBZEHFUCOMZEDPZBQZRZRZEAGUDZAUIZESZUEAWFFBWGPZTOZUEWEAWFCEWEHUFSZCENZWFCE
      NWAWLVTWCWKCHFEWKUGZKUHUJWEWKWFCEVTWKWFQZWDVRVQWNVSWKGHIJWMUKULZUMUNUOUPW
      EAWFWHWJWEWGWFMZRZHDWGPZTOZESZFEWRPZTOZWHWJWQWAWRWKUDMZWTXBQVTWAWCWPUTWQW
      PGWKDNZXCWEWPUQZVTXDWDWPVTXDGWFDNZVRVQXFVSDGILURULVTWKWFDGWOUSVAVBGWKDWGV
      CVDWKEHFWRWMVJVDWQWSWGEWQVRWPWSWGQVQVRVSWDWPVEXEDGHIWGJLVKVDVFWQXAWIFTWQX
      AWBWGPWIEDWGVGWQWBBWGVTWAWCWPVHVIVLVMVNVOVP $.

    $( Universal property of the free monoid by existential uniqueness.
       (Contributed by Mario Carneiro, 2-Oct-2015.)  (Revised by Mario
       Carneiro, 18-Jul-2016.) $)
    frmdup3 $p |- ( ( G e. Mnd /\ I e. V /\ A : I --> B ) ->
      E! m e. ( M MndHom G ) ( m o. U ) = A ) $=
      ( vx vy wcel wf cv ccom cmpt wceq cfv cmnd w3a cword cgsu co cmhm wi wral
      wreu eqid simp1 simp2 simp3 frmdup1 wa adantr simpr frmdup2 mpteq2dva cbs
      syl vrmdf 3ad2ant2 frmdbas feq3d mpbird fcompt syl2anc feqmptd frmdup3lem
      mhmf 3eqtr4d expr ralrimiva coeq1 eqeq1d eqreu syl3anc ) EUANZFHNZFBAOZUB
      ZLFUCZEALPQUDUERZGEUFUEZNZWDCQZASZDPZCQZASZWIWDSZUGZDWEUHWKDWEUIWBLABWDEF
      GHIJWDUJZVSVTWAUKZVSVTWAULZVSVTWAUMZUNZWBMFMPZCTWDTZRZMFWSATZRWGAWBMFWTXB
      WBWSFNZUOLABCWDEFGHWSIJWNWBVSXCWOUPWBVTXCWPUPWBWAXCWQUPKWBXCUQURUSWBGUTTZ
      BWDOZFXDCOZWGXASWBWFXEWRXDBGEWDXDUJZJVKVAWBXFFWCCOZVTVSXHWACFHKVBVCWBXDWC
      CFVTVSXDWCSWAXDFGHIXGVDVCVEVFMWDCFXDBVGVHWBMFBAWQVIVLWBWMDWEWBWIWENWKWLLA
      BCWIEFGHIJKVJVMVNWKWHDWEWDWLWJWGAWIWDCVOVPVQVR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Examples and counterexamples for magmas, semigroups and monoids
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d M a b $.  $d S a b x y $.
    mgm2nsgrp.s $e |- S = { A , B } $.
    mgm2nsgrp.b $e |- ( Base ` M ) = S $.

    ${
      $d A x y $.  $d B x y $.  $d M x $.
      mgm2nsgrp.o $e |- ( +g ` M ) = ( x e. S , y e. S
                                     |-> if ( ( x = A /\ y = A ) , B , A ) ) $.
      $( Lemma 1 for ~ mgm2nsgrp : ` M ` is a magma, even if ` A = B ` ( ` M `
         is the trivial magma in this case, see ~ mgmb1mgm1 ).  (Contributed by
         AV, 27-Jan-2020.) $)
      mgm2nsgrplem1 $p |- ( ( A e. V /\ B e. W ) -> M e. Mgm ) $=
        ( wcel cmgm cpr prid1g syl6eleqr prid2g wa cv wceq cbs eqcomi c0 adantr
        cfv wne ne0i simplr simpll opifismgm syl2an ) CGLZCELZDELZFMLDHLZULCCDN
        ZECDGOIPUODUPECDHQIPUMUNRASZCTBSZCTRABEDCFFUAUEEJUBKUMEUCUFUNECUGUDUMUN
        UQELURELRZUHUMUNUSUIUJUK $.

      ${
        $d .o. x y $.
        mgm2nsgrp.p $e |- .o. = ( +g ` M ) $.
        $( Lemma 2 for ~ mgm2nsgrp .  (Contributed by AV, 27-Jan-2020.) $)
        mgm2nsgrplem2 $p |- ( ( A e. V /\ B e. W )
                              -> ( ( A .o. A ) .o. B ) = A ) $=
          ( wcel co wceq syl6eleqr wa cv cif cpr prid1g prid2g cmpt2 cplusg cfv
          eqtri a1i wi ifeq1 ifid syl6eq wn eqeq1 bicomd notbid biimpac intnand
          iffalsed ex pm2.61i ad2antll iftrue adantl simpl simpr ovmpt2d syl2an
          a1d eqeltrd ) CGNZCENZDENZCCIOZDIOCPDHNZVKCCDUAZECDGUBJQVODVPECDHUCJQ
          VLVMRZABVNDEEASZCPZBSZCPZRZDCTZCIEIABEEWCUDZPVQIFUEUFWDMLUGUHZVTDPZWC
          CPZVQVRVNPDCPZWFWGUIWHWGWFWHWCWBCCTCWBDCCUJWBCUKULVIWHUMZWFWGWIWFRZWB
          DCWJWAVSWFWIWAUMWFWHWAWFWAWHVTDCUNUOUPUQURUSUTVAVBVQVNDEVQABCCEEWCDIE
          WEWBWCDPVQWBDCVCVDVLVMVEZWKVLVMVFZVGWLVJWLWKVGVH $.

        $( Lemma 3 for ~ mgm2nsgrp .  (Contributed by AV, 28-Jan-2020.) $)
        mgm2nsgrplem3 $p |- ( ( A e. V /\ B e. W )
                              -> ( A .o. ( A .o. B ) ) = B ) $=
          ( wcel co wceq syl6eleqr wa wi adantl cpr prid1g prid2g cv cif cplusg
          cmpt2 cfv eqtri a1i simprl simpr ifeq1 ifid syl6eq a1d wn eqeq1 com12
          biimpcd con3d impcom iffalsed pm2.61i simpl ovmpt2d sylan9eqr iftrued
          ex jca eqeltrd syl2an ) CGNZCENZDENZCCDIOZIODPDHNZVMCCDUAZECDGUBJQVQD
          VRECDHUCJQVNVORZABCVPEEAUDCPZBUDZCPZRZDCUEZDIEIABEEWDUGZPVSIFUFUHWEML
          UIUJZVSVTWAVPPZRZRZWCDCWIVTWBVSVTWGUKWHVSWAVPCVTWGULVSABCDEEWDCIEWFVT
          WADPZRZWDCPZVSDCPZWKWLSWMWLWKWMWDWCCCUECWCDCCUMWCCUNUOUPWMUQZWKWLWNWK
          RWCDCWKWNWCUQWKWCWMWJWCWMSVTWCWJWMWBWJWMSVTWJWBWMWADCURUTTUSTVAVBVCVI
          VDTVNVOVEZVNVOULZWOVFZVGVJVHWOVSVPCEWQWOVKWPVFVL $.
      $}

      $d M x y $.
      $( Lemma 4 for ~ mgm2nsgrp :  M is not a semigroup.  (Contributed by AV,
         28-Jan-2020.)  (Proof shortened by AV, 31-Jan-2020.) $)
      mgm2nsgrplem4 $p |- ( ( # ` S ) = 2 -> M e/ SGrp ) $=
        ( chash cfv c2 wceq wcel w3a cplusg co wne syl 3adant3 wnel hashprdifel
        csgrp simp1 simp2 3jca simp3 mgm2nsgrplem2 mgm2nsgrplem3 3netr4d eqcomi
        eqid cbs isnsgrp sylc ) EJKLMZCENZUQDENZOZCCFPKZQDUTQZCCDUTQUTQZRZFUCUA
        UPUQURCDRZOZUSCDEGUBZVEUQUQURUQURVDUDZVGUQURVDUEUFSUPVEVCVFVECDVAVBUQUR
        VDUGUQURVACMVDABCDEFEEUTGHIUTULZUHTUQURVBDMVDABCDEFEEUTGHIVHUITUJSEFCCU
        TDFUMKEHUKVHUNUO $.

      $( A small magma (with two elements) which is not a semigroup.
         (Contributed by AV, 28-Jan-2020.) $)
      mgm2nsgrp $p |- ( ( # ` S ) = 2 -> ( M e. Mgm /\ M e/ SGrp ) ) $=
        ( chash cfv c2 wceq cmgm wcel csgrp wnel wne w3a hashprdifel 3adant3
        mgm2nsgrplem1 syl mgm2nsgrplem4 jca ) EJKLMZFNOZFPQUFCEOZDEOZCDRZSUGCDE
        GTUHUIUGUJABCDEFEEGHIUBUAUCABCDEFGHIUDUE $.
    $}

    $d A x y $.  $d B x y $.  $d M x $.
    sgrp2nmnd.o $e |- ( +g ` M ) = ( x e. S , y e. S
                                     |-> if ( x = A , A , B ) ) $.
    $( Lemma 1 for ~ sgrp2nmnd : ` M ` is a magma, even if ` A = B ` ( ` M ` is
       the trivial magma in this case, see ~ mgmb1mgm1 ).  (Contributed by AV,
       29-Jan-2020.) $)
    sgrp2nmndlem1 $p |- ( ( A e. V /\ B e. W ) -> M e. Mgm ) $=
      ( wcel cmgm cpr prid1g syl6eleqr prid2g wa cv wceq cbs cfv eqcomi c0 ne0i
      wne adantr simpll simplr opifismgm syl2an ) CGLZCELZDELZFMLDHLZULCCDNZECD
      GOIPUODUPECDHQIPUMUNRASZCTABECDFFUAUBEJUCKUMEUDUFUNECUEUGUMUNUQELBSELRZUH
      UMUNURUIUJUK $.

    ${
      $d C x y $.
      sgrp2nmnd.p $e |- .o. = ( +g ` M ) $.
      $( Lemma 2 for ~ sgrp2nmnd .  (Contributed by AV, 29-Jan-2020.) $)
      sgrp2nmndlem2 $p |- ( ( A e. S /\ C e. S ) -> ( A .o. C ) = A ) $=
        ( wcel wa cv wceq cif cmpt2 cplusg cfv eqtri a1i ad2antrl simpl ovmpt2d
        iftrue simpr ) CFMZEFMZNZABCEFFAOCPZCDQZCHFHABFFULRZPUJHGSTUMLKUAUBUKUL
        CPUJBOEPUKCDUFUCUHUIUDZUHUIUGUNUE $.

      $( Lemma 3 for ~ sgrp2nmnd .  (Contributed by AV, 29-Jan-2020.) $)
      sgrp2nmndlem3 $p |- ( ( C e. S /\ B e. S /\ A =/= B )
                            -> ( B .o. C ) = B ) $=
        ( wcel wne w3a cv wceq cif wa wn cmpt2 cplusg cfv eqtri a1i df-ne eqcom
        wi wb eqeq2 adantr syl5rbbr biimpcd sylbi 3ad2ant3 iffalsed simp2 simp1
        notbid imp ovmpt2d ) EFMZDFMZCDNZOZABDEFFAPZCQZCDRZDHFHABFFVHUAZQVEHGUB
        UCVILKUDUEVEVFDQZBPEQZSZSVGCDVEVLVGTZVDVBVLVMUHZVCVDCDQZTZVNCDUFVLVPVMV
        LVOVGVGCVFQZVLVOCVFUGVJVQVOUIVKVFDCUJUKULUSUMUNUOUTUPVBVCVDUQZVBVCVDURV
        RVA $.

      $d V x $.  $d W x $.  $d .o. x y $.
      $( A small semigroup (with two elements) with two right identities which
         are different if ` A =/= B ` .  (Contributed by AV, 10-Feb-2020.) $)
      sgrp2rid2 $p |- ( ( A e. V /\ B e. W )
                        -> A. x e. S A. y e. S ( y .o. x ) = y ) $=
        ( wcel wa co wceq wral eqeq12d oveq2 cpr prid1g syl6eleqr sgrp2nmndlem2
        cv prid2g simpl syldan wi oveq1 id syl5ib wn simprl simprr df-ne adantr
        wne biimpri sgrp2nmndlem3 syl3anc ex pm2.61i jca31 syl2an raleqi ralprg
        oveq12d jca syl5bb ralbidv eqeq1d anbi12d bitrd mpbird ) CGNZDHNZOZBUEZ
        AUEZIPZVSQZBERZAERZCCIPZCQZDCIPZDQZOZCDIPZCQZDDIPZDQZOZOZVPCENZDENZWOVQ
        VPCCDUAZECDGUBJUCVQDWRECDHUFJUCWPWQOZWFWHWNWPWQWPWFWPWQUGABCDCEFIJKLMUD
        UHZCDQZWSWHUIWSWFXAWHWTXAWEWGCDCDCIUJXAUKZSULXAUMZWSWHXCWSOZWPWQCDURZWH
        XCWPWQUNXCWPWQUOZXCXEWSXEXCCDUPUSUQZABCDCEFIJKLMUTVAVBVCWSWKWMABCDDEFIJ
        KLMUDXAWSWMUIWSWFXAWMWTXAWEWLCDXACDCDIXBXBVHXBSULXCWSWMXDWQWQXEWMXFXFXG
        ABCDDEFIJKLMUTVAVBVCVIVDVEVRWDCVTIPZCQZDVTIPZDQZOZAERZWOVRWCXLAEWCWBBWR
        RVRXLWBBEWRJVFWBXIXKBCDGHVSCQZWAXHVSCVSCVTIUJXNUKSVSDQZWAXJVSDVSDVTIUJX
        OUKSVGVJVKXMXLAWRRVRWOXLAEWRJVFXLWIWNACDGHVTCQZXIWFXKWHXPXHWECVTCCITVLX
        PXJWGDVTCDITVLVMVTDQZXIWKXKWMXQXHWJCVTDCITVLXQXJWLDVTDDITVLVMVGVJVNVO
        $.

      $d A z $.  $d B z $.  $d S z $.  $d .o. x y z $.
      $( A small semigroup (with two elements) with two right identities which
         are different.  (Contributed by AV, 10-Feb-2020.) $)
      sgrp2rid2ex $p |- ( ( # ` S ) = 2 -> E. x e. S E. z e. S A. y e. S
                         ( x =/= z /\ ( y .o. x ) = y /\ ( y .o. z ) = y ) ) $=
        ( wceq wcel wne w3a cv co wral ralbidv chash cfv wrex hashprdifel simp1
        c2 simp2 simpl3 ralrimiva wa sgrp2rid2 wi oveq2 eqeq1d rspcv adantr mpd
        3adant3 adantl r19.26-3 syl3anbrc 3jca neeq1 biidd 3anbi123d neeq2 3syl
        rspc2ev ) FUAUBUFMDFNZEFNZDEOZPZVIVJVKBQZDHRZVMMZVMEHRZVMMZPZBFSZPAQZCQ
        ZOZVMVTHRZVMMZVMWAHRZVMMZPZBFSZCFUCAFUCDEFIUDVLVIVJVSVIVJVKUEVIVJVKUGVL
        VKBFSVOBFSZVQBFSZVSVLVKBFVIVJVKVMFNUHUIVIVJWIVKVIVJUJZWDBFSZAFSZWIABDEF
        GFFHIJKLUKZVIWMWIULVJWLWIADFVTDMZWDVOBFWOWCVNVMVTDVMHUMUNZTUOUPUQURVIVJ
        WJVKWKWMWJWNVJWMWJULVIWLWJAEFVTEMZWDVQBFWQWCVPVMVTEVMHUMUNTUOUSUQURVKVO
        VQBFUTVAVBWHVSDWAOZVOWFPZBFSACDEFFWOWGWSBFWOWBWRWDVOWFWFVTDWAVCWPWOWFVD
        VETWAEMZWSVRBFWTWRVKVOVOWFVQWAEDVFWTVOVDWTWEVPVMWAEVMHUMUNVETVHVG $.
    $}

    $d A a b c $.  $d B a b c $.  $d M c $.
    $( Lemma 4 for ~ sgrp2nmnd :  M is a semigroup.  (Contributed by AV,
       29-Jan-2020.) $)
    sgrp2nmndlem4 $p |- ( ( # ` S ) = 2 -> M e. SGrp ) $=
      ( vb vc wceq co wral wa oveq1d oveq2d eqeq12d ralprg oveq2 chash cfv cmgm
      va c2 wcel cplusg cpr csgrp wne w3a hashprdifel 3simpa sgrp2nmndlem1 3syl
      cv sgrp2nmndlem2 eqtr4d anidms 3ad2ant1 adantr 3eqtr4rd eqtrd 3adant3 jca
      eqid sgrp2nmndlem3 simp2 syld3an1 jca32 wb oveq1 2ralbidv ralbidv anbi12d
      3bitrd mpbir2and syl cbs eqtr2i issgrp sylanbrc ) EUAUBUELZFUCUFZUDUPZJUP
      ZFUGUBZMZKUPZWGMZWEWFWIWGMZWGMZLZKCDUHZNJWNNZUDWNNZFUIUFWCCEUFZDEUFZCDUJZ
      UKZWQWROZWDCDEGULZWQWRWSUMABCDEFEEGHIUNUOWCWTWPXBWTWPCCWGMZCWGMZCXCWGMZLZ
      XCDWGMZCCDWGMZWGMZLZOZXHCWGMZCDCWGMZWGMZLZXHDWGMZCDDWGMZWGMZLZOZOZXMCWGMZ
      DXCWGMZLZXMDWGMZDXHWGMZLZOZXQCWGMZDXMWGMZLZXQDWGMZDXQWGMZLZOZOZWTXKXOXSWT
      XFXJWQWRXFWSWQXFWQWQOZXDXCXEYQXCCCWGABCDCEFWGGHIWGVFZUQZPYQXCCCWGYSQURUSU
      TWQWRXJWSXAXGXHXIXAXCCDWGWQXCCLZWRWQYTYSUSZVAZPXAXCCXIXHUUBXAXHCCWGABCDDE
      FWGGHIYRUQZQUUCVBVCVDVEWTXHCXNXLWQWRXHCLWSUUCVDZWTXMDCWGABCDCEFWGGHIYRVGZ
      QWTXLXCCWTXHCCWGUUDPWQWRYTWSUUAUTZVCVBWTXHCXRXPUUDWTXQDCWGWRWRWQWSXQDLWQW
      RWSVHZABCDDEFWGGHIYRVGZVIZQWQWRXPCLWSXAXPXHCXAXHCDWGUUCPUUCVCVDVBVJWTYHYK
      YNWTYDYGWTYBXMYCWTXMDCWGUUEPWTXCCDWGUUFQURWTXMDYFYEUUEWTXHCDWGUUDQWTYEXQD
      WTXMDDWGUUEPUUIVCVBVEWTXQDYJYIUUIWTXMDDWGUUEQWTYIXMDWTXQDCWGUUIPUUEVCVBWR
      WRWQWSYNUUGWRWRWSUKZYLXQYMUUJXQDDWGUUHPUUJXQDDWGUUHQURVIVJWQWRWPYAYPOZVKW
      SXAWPCWFWGMZWIWGMZCWKWGMZLZKWNNZJWNNZDWFWGMZWIWGMZDWKWGMZLZKWNNZJWNNZOXCW
      IWGMZCCWIWGMZWGMZLZKWNNZXHWIWGMZCDWIWGMZWGMZLZKWNNZOZXMWIWGMZDUVEWGMZLZKW
      NNZXQWIWGMZDUVJWGMZLZKWNNZOZOUUKWOUUQUVCUDCDEEWECLZWMUUOJKWNWNUWDWJUUMWLU
      UNUWDWHUULWIWGWECWFWGVLPWECWKWGVLRVMWEDLZWMUVAJKWNWNUWEWJUUSWLUUTUWEWHUUR
      WIWGWEDWFWGVLPWEDWKWGVLRVMSXAUUQUVNUVCUWCUUPUVHUVMJCDEEWFCLZUUOUVGKWNUWFU
      UMUVDUUNUVFUWFUULXCWIWGWFCCWGTPUWFWKUVECWGWFCWIWGVLZQRVNWFDLZUUOUVLKWNUWH
      UUMUVIUUNUVKUWHUULXHWIWGWFDCWGTPUWHWKUVJCWGWFDWIWGVLZQRVNSUVBUVRUWBJCDEEU
      WFUVAUVQKWNUWFUUSUVOUUTUVPUWFUURXMWIWGWFCDWGTPUWFWKUVEDWGUWGQRVNUWHUVAUWA
      KWNUWHUUSUVSUUTUVTUWHUURXQWIWGWFDDWGTPUWHWKUVJDWGUWIQRVNSVOXAUVNYAUWCYPXA
      UVHXKUVMXTUVGXFXJKCDEEWICLZUVDXDUVFXEWICXCWGTUWJUVEXCCWGWICCWGTZQRWIDLZUV
      DXGUVFXIWIDXCWGTUWLUVEXHCWGWIDCWGTZQRSUVLXOXSKCDEEUWJUVIXLUVKXNWICXHWGTUW
      JUVJXMCWGWICDWGTZQRUWLUVIXPUVKXRWIDXHWGTUWLUVJXQCWGWIDDWGTZQRSVOXAUVRYHUW
      BYOUVQYDYGKCDEEUWJUVOYBUVPYCWICXMWGTUWJUVEXCDWGUWKQRUWLUVOYEUVPYFWIDXMWGT
      UWLUVEXHDWGUWMQRSUWAYKYNKCDEEUWJUVSYIUVTYJWICXQWGTUWJUVJXMDWGUWNQRUWLUVSY
      LUVTYMWIDXQWGTUWLUVJXQDWGUWOQRSVOVOVPVDVQVRUDJKWNFWGFVSUBEWNHGVTYRWAWB $.

    $d M x y $.
    $( Lemma 5 for ~ sgrp2nmnd :  M is not a monoid.  (Contributed by AV,
       29-Jan-2020.) $)
    sgrp2nmndlem5 $p |- ( ( # ` S ) = 2 -> M e/ Mnd ) $=
      ( cfv wceq wcel wne cv co wrex 3adant3 wb oveq2 neeq12d c2 w3a cplusg cpr
      chash wral cmnd wnel hashprdifel wo eqid sgrp2nmndlem2 simp3 eqnetrd olcd
      id rexprg mpbird wn sgrp2nmndlem3 necom df-ne sylbb 3ad2ant3 adantr eqeq1
      adantl mtbird mpdan neqned orcd oveq1 neeq1d rexbidv ralprg mpbir2and cbs
      wa eqtr2i isnmnd 3syl ) EUEJUAKCELZDELZCDMZUBZANZBNZFUCJZOZWGMZBCDUDZPZAW
      KUFZFUGUHCDEGUIWEWMCWGWHOZWGMZBWKPZDWGWHOZWGMZBWKPZWEWPCCWHOZCMZCDWHOZDMZ
      UJZWEXCXAWEXBCDWBWCXBCKWDABCDDEFWHGHIWHUKZULQWBWCWDUMUNUOWBWCWPXDRWDWOXAX
      CBCDEEWGCKZWNWTWGCWGCCWHSXFUPZTWGDKZWNXBWGDWGDCWHSXHUPZTUQQURWEWSDCWHOZCM
      ZDDWHOZDMZUJZWEXKXMWEXJCWEXJDKZXJCKZUSABCDCEFWHGHIXEUTWEXOVRXPDCKZWEXQUSZ
      XOWDWBXRWCWDDCMXRCDVADCVBVCVDVEXOXPXQRWEXJDCVFVGVHVIVJVKWBWCWSXNRWDWRXKXM
      BCDEEXFWQXJWGCWGCDWHSXGTXHWQXLWGDWGDDWHSXITUQQURWBWCWMWPWSVRRWDWLWPWSACDE
      EWFCKZWJWOBWKXSWIWNWGWFCWGWHVLVMVNWFDKZWJWRBWKXTWIWQWGWFDWGWHVLVMVNVOQVPB
      AWKFWHFVQJEWKHGVSXEVTWA $.

    $( A small semigroup (with two elements) which is not a monoid.
       (Contributed by AV, 26-Jan-2020.) $)
    sgrp2nmnd $p |- ( ( # ` S ) = 2 -> ( M e. SGrp /\ M e/ Mnd ) ) $=
      ( chash cfv c2 wceq csgrp wcel cmnd wnel sgrp2nmndlem4 sgrp2nmndlem5 jca
      ) EJKLMFNOFPQABCDEFGHIRABCDEFGHIST $.
  $}

  ${
    $d m x y $.  $d u v x y $.
    $( There is a magma which is not a semigroup.  (Contributed by AV,
       29-Jan-2020.) $)
    mgmnsgrpex $p |- E. m e. Mgm m e/ SGrp $=
      ( vx vy vu vv cc0 c1 cpr cfv wceq cv csgrp wnel cmgm cop wa cif cvv ax-mp
      wcel chash wrex prhash2ex cnx cbs cplusg cmpt2 c0ex 1ex pm3.2i eqid eqeq1
      c2 prex anbi1d ifbid anbi2d cbvmpt2v opeq2i preq2i eqcomi mpt2ex grpplusg
      grpbase mgm2nsgrplem1 mp1i wb neleq1 adantl mgm2nsgrplem4 rspcedvd ) FGHZ
      UAIUMJZAKZLMZANUBUCVMVOUDUEIVLOZUDUFIZBCVLVLBKZFJZCKZFJZPZGFQZUGZOZHZLMZA
      WFNFRTZGRTZPWFNTVMWHWIUHUIUJDEFGVLWFRRVLUKZVLWFUEIZVLRTVLWKJFGUNZVLDEVLVL
      DKZFJZEKZFJZPZGFQZUGZWFRWEVQWSOVPWDWSVQBCDEVLVLWCWRWNWAPZGFQVRWMJZWBWTGFX
      AVSWNWAVRWMFULUOUPVTWOJZWTWQGFXBWAWPWNVTWOFULUQUPURUSUTZVDSVAZWSWFUFIZWSR
      TWSXEJDEVLVLWRWLWLVBVLWSWFRXCVCSVAZVEVFVNWFJVOWGVGVMVNWFLVHVIDEFGVLWFWJXD
      XFVJVKS $.

    $( There is a semigroup which is not a monoid.  (Contributed by AV,
       29-Jan-2020.) $)
    sgrpnmndex $p |- E. m e. SGrp m e/ Mnd $=
      ( vx vy vu vv cc0 c1 cpr cfv wceq cv cmnd wnel csgrp cnx cbs cplusg ax-mp
      cop cvv chash c2 wrex prhash2ex cmpt2 eqid wcel prex eqeq1 ifbid cbvmpt2v
      cif eqidd opeq2i preq2i grpbase eqcomi mpt2ex sgrp2nmndlem4 neleq1 adantl
      grpplusg wb sgrp2nmndlem5 rspcedvd ) FGHZUAIUBJZAKZLMZANUCUDVGVIOPIVFSZOQ
      IZBCVFVFBKZFJZFGULZUEZSZHZLMZAVQNDEFGVFVQVFUFZVFVQPIZVFTUGVFVTJFGUHZVFDEV
      FVFDKZFJZFGULZUEZVQTVPVKWESVJVOWEVKBCDEVFVFVNWDWDVLWBJVMWCFGVLWBFUIUJCKEK
      JWDUMUKUNUOZUPRUQZWEVQQIZWETUGWEWHJDEVFVFWDWAWAURVFWEVQTWFVBRUQZUSVHVQJVI
      VRVCVGVHVQLUTVADEFGVFVQVSWGWIVDVER $.
  $}

  $( The class of all semigroups is a proper subclass of the class of all
     magmas.  (Contributed by AV, 29-Jan-2020.) $)
  sgrpssmgm $p |- SGrp C. Mgm $=
    ( vx csgrp cmgm cv wnel wrex wpss sgrpmgm ssriv mgmnsgrpex ssexnelpss mp2an
    wss ) BCMADZBEACFBCGABCNHIAJABCKL $.

  $( The class of all monoids is a proper subclass of the class of all
     semigroups.  (Contributed by AV, 29-Jan-2020.) $)
  mndsssgrp $p |- Mnd C. SGrp $=
    ( vx cmnd csgrp cv wnel wrex wpss mndsgrp ssriv sgrpnmndex ssexnelpss mp2an
    wss ) BCMADZBEACFBCGABCNHIAJABCKL $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Groups
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Grp $.
  $c invg $.
  $c -g $.

  $( Extend class notation with class of all groups. $)
  cgrp $a class Grp $.

  $( Extend class notation with inverse of group element. $)
  cminusg $a class invg $.

  $( Extend class notation with group subtraction (or division) operation. $)
  csg $a class -g $.

  ${
    $d a g m w x y $.
    $( Define class of all groups.  A group is a monoid ( ~ df-mnd ) whose
       internal operation is such that every element admits a left inverse
       (which can be proven to be a two-sided inverse).  Thus, a group ` G ` is
       an algebraic structure formed from a base set of elements (notated
       ` ( Base `` G ) ` per ~ df-base ) and an internal group operation
       (notated ` ( +g `` G ) ` per ~ df-plusg ).  The operation combines any
       two elements of the group base set and must satisfy the 4 group axioms:
       closure (the result of the group operation must always be a member of
       the base set, see ~ grpcl ), associativity (so
       ` ( ( a +g b ) +g c ) = ( a +g ( b +g c ) ) ` for any a, b, c, see
       ~ grpass ), identity (there must be an element ` e = ( 0g `` G ) ` such
       that ` e +g a = a +g e = a ` for any a), and inverse (for each element a
       in the base set, there must be an element ` b = invg a ` in the base set
       such that ` a +g b = b +g a = e ` ).  It can be proven that the identity
       element is unique ( ~ grpideu ).  Groups need not be commutative; a
       commutative group is an Abelian group (see ~ df-abl ).  Subgroups can
       often be formed from groups, see ~ df-subg .  An example of an (Abelian)
       group is the set of complex numbers ` CC ` over the group operation
       ` + ` (addition), as proven in ~ cnaddablx ; an Abelian group is a group
       as proven in ~ ablgrp .  Other structures include groups, including
       unital rings ( ~ df-ring ) and fields ( ~ df-field ).  (Contributed by
       NM, 17-Oct-2012.)  (Revised by Mario Carneiro, 6-Jan-2015.) $)
    df-grp $a |- Grp = { g e. Mnd | A. a e. ( Base ` g ) E. m e. ( Base ` g )
      ( m ( +g ` g ) a ) = ( 0g ` g ) } $.

    $( Define inverse of group element.  (Contributed by NM, 24-Aug-2011.) $)
    df-minusg $a |- invg = ( g e. _V |-> ( x e. ( Base ` g )
  |-> ( iota_ w e. ( Base ` g ) ( w ( +g ` g ) x ) = ( 0g ` g ) ) ) ) $.

    $( Define group subtraction (also called division for multiplicative
       groups).  (Contributed by NM, 31-Mar-2014.) $)
    df-sbg $a |- -g = ( g e. _V |-> ( x e. ( Base ` g ) , y e. ( Base ` g )
  |-> ( x ( +g ` g ) ( ( invg ` g ) ` y ) ) ) ) $.
  $}

  ${
    $d a g m B $.  $d a g m G $.  $d g .+ $.  $d g .0. $.
    isgrp.b $e |- B = ( Base ` G ) $.
    isgrp.p $e |- .+ = ( +g ` G ) $.
    isgrp.z $e |- .0. = ( 0g ` G ) $.
    $( The predicate "is a group."  (This theorem demonstrates the use of
       symbols as variable names, first proposed by FL in 2010.)  (Contributed
       by NM, 17-Oct-2012.)  (Revised by Mario Carneiro, 6-Jan-2015.) $)
    isgrp $p |- ( G e. Grp <->
      ( G e. Mnd /\ A. a e. B E. m e. B ( m .+ a ) = .0. ) ) $=
      ( vg cv cplusg cfv co c0g wceq cbs wrex fveq2 syl6eqr wral cmnd rexeqbidv
      cgrp oveqd eqeq12d raleqbidv df-grp elrab2 ) CKZFKZJKZLMZNZULOMZPZCULQMZR
      ZFUQUAUJUKBNZEPZCARZFAUAJDUBUDULDPZURVAFUQAVBUQDQMAULDQSGTZVBUPUTCUQAVCVB
      UNUSUOEVBUMBUJUKVBUMDLMBULDLSHTUEVBUODOMEULDOSITUFUCUGJCFUHUI $.
  $}

  ${
    $d u x y B $.  $d a m u x y G $.  $d u x .+ $.  $d x y X $.  $d x .0. $.
    $( A group is a monoid.  (Contributed by Mario Carneiro, 6-Jan-2015.) $)
    grpmnd $p |- ( G e. Grp -> G e. Mnd ) $=
      ( vm va cgrp wcel cmnd cv cplusg cfv co c0g wceq cbs wrex wral eqid isgrp
      simplbi ) ADEAFEBGCGAHIZJAKIZLBAMIZNCUAOUASBATCUAPSPTPQR $.

    grpcl.b $e |- B = ( Base ` G ) $.
    grpcl.p $e |- .+ = ( +g ` G ) $.
    $( Closure of the operation of a group.  (Contributed by NM,
       14-Aug-2011.) $)
    grpcl $p |- ( ( G e. Grp /\ X e. B /\ Y e. B ) -> ( X .+ Y ) e. B ) $=
      ( cgrp wcel cmnd co grpmnd mndcl syl3an1 ) CHICJIDAIEAIDEBKAICLABCDEFGMN
      $.

    $( A group operation is associative.  (Contributed by NM, 14-Aug-2011.) $)
    grpass $p |- ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
              ( ( X .+ Y ) .+ Z ) = ( X .+ ( Y .+ Z ) ) ) $=
      ( cgrp wcel cmnd w3a co wceq grpmnd mndass sylan ) CIJCKJDAJEAJFAJLDEBMFB
      MDEFBMBMNCOABCDEFGHPQ $.

    grpinvex.p $e |- .0. = ( 0g ` G ) $.
    $( Every member of a group has a left inverse.  (Contributed by NM,
       16-Aug-2011.)  (Revised by Mario Carneiro, 6-Jan-2015.) $)
    grpinvex $p |- ( ( G e. Grp /\ X e. B ) -> E. y e. B ( y .+ X ) = .0. ) $=
      ( vx cgrp wcel cv co wceq wrex wral cmnd isgrp simprbi oveq2 eqeq1d sylan
      rexbidv rspccva ) DKLZAMZJMZCNZFOZABPZJBQZEBLUGECNZFOZABPZUFDRLULBCADFJGH
      ISTUKUOJEBUHEOZUJUNABUPUIUMFUHEUGCUAUBUDUEUC $.

    $( The two-sided identity element of a group is unique.  Lemma 2.2.1(a) of
       [Herstein] p. 55.  (Contributed by NM, 16-Aug-2011.)  (Revised by Mario
       Carneiro, 8-Dec-2014.) $)
    grpideu $p |- ( G e. Grp ->
      E! u e. B A. x e. B ( ( u .+ x ) = x /\ ( x .+ u ) = x ) ) $=
      ( cgrp wcel cmnd cv co wceq wa wral wreu grpmnd mndideu syl ) EJKELKBMZAM
      ZDNUCOUCUBDNUCOPACQBCRESABCDEGHTUA $.
  $}

  ${
    grpplusf.1 $e |- B = ( Base ` G ) $.
    grpplusf.2 $e |- F = ( +f ` G ) $.
    $( The group addition operation is a function.  (Contributed by Mario
       Carneiro, 14-Aug-2015.) $)
    grpplusf $p |- ( G e. Grp -> F : ( B X. B ) --> B ) $=
      ( cgrp wcel cmnd cxp wf grpmnd mndplusf syl ) CFGCHGAAIABJCKABCDELM $.

    $( The group addition operation is a function onto the base set/set of
       group elements.  (Contributed by NM, 30-Oct-2006.)  (Revised by AV,
       30-Aug-2021.) $)
    grpplusfo $p |- ( G e. Grp -> F : ( B X. B ) -onto-> B ) $=
      ( cgrp wcel cmnd cxp wfo grpmnd mndpfo syl ) CFGCHGAAIABJCKABCDELM $.
  $}

  ${
    resgrpplusfrn.b $e |- B = ( Base ` G ) $.
    resgrpplusfrn.h $e |- H = ( G |`s S ) $.
    resgrpplusfrn.o $e |- F = ( +f ` H ) $.
    $( The underlying set of a group operation which is a restriction of a
       structure.  (Contributed by Paul Chapman, 25-Mar-2008.)  (Revised by AV,
       30-Aug-2021.) $)
    resgrpplusfrn $p |- ( ( H e. Grp /\ S C_ B ) -> S = ran F ) $=
      ( cgrp wcel wss wa cxp wfo crn wceq cbs cfv eqid grpplusfo eqidd ressbas2
      adantr adantl sqxpeqd foeq123d mpbird forn eqcomd syl ) EIJZBAKZLZBBMZBCN
      ZBCOZPUMUOEQRZUQMZUQCNZUKUSULUQCEUQSHTUCUMUNURBUQCCUMCUAUMBUQULBUQPUKBAED
      GFUBUDZUEUTUFUGUOUPBUNBCUHUIUJ $.
  $}

  ${
    $d x y B $.  $d x y K $.  $d x y L $.  $d x y ph $.
    grppropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    grppropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    grppropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    $( If two structures have the same group components (properties), one is a
       group iff the other one is.  (Contributed by Stefan O'Rear,
       27-Nov-2014.)  (Revised by Mario Carneiro, 2-Oct-2015.) $)
    grppropd $p |- ( ph -> ( K e. Grp <-> L e. Grp ) ) $=
      ( cmnd wcel cv cplusg cfv co wceq wrex wral wa eqid c0g cbs cgrp mndpropd
      wb grpidpropd adantr eqeq12d anass1rs rexbidva ralbidva rexeqdv raleqbidv
      3bitr3d anbi12d isgrp 3bitr4g ) AEJKZBLZCLZEMNZOZEUANZPZBEUBNZQZCVERZSFJK
      ZUSUTFMNZOZFUANZPZBFUBNZQZCVMRZSEUCKFUCKAURVHVGVOABCDEFGHIUDAVDBDQZCDRVLB
      DQZCDRVGVOAVPVQCDAUTDKZSVDVLBDAUSDKZVRVDVLUEAVSVRSZSVBVJVCVKIAVCVKPVTABCD
      EFGHIUFUGUHUIUJUKAVPVFCDVEGAVDBDVEGULUMAVQVNCDVMHAVLBDVMHULUMUNUOVEVABEVC
      CVETVATVCTUPVMVIBFVKCVMTVITVKTUPUQ $.
  $}

  ${
    $d x y K $.  $d x y L $.
    grpprop.b $e |- ( Base ` K ) = ( Base ` L ) $.
    grpprop.p $e |- ( +g ` K ) = ( +g ` L ) $.
    $( If two structures have the same group components (properties), one is a
       group iff the other one is.  (Contributed by NM, 11-Oct-2013.) $)
    grpprop $p |- ( K e. Grp <-> L e. Grp ) $=
      ( vx vy cgrp wcel wb wtru cbs cfv eqidd wceq a1i cv cplusg co wa oveqi
      grppropd trud ) AGHBGHIJEFAKLZABJUCMUCBKLNJCOEPZFPZAQLZRUDUEBQLZRNJUDUCHU
      EUCHSSUFUGUDUEDTOUAUB $.
  $}

  ${
    grppropstr.b $e |- ( Base ` K ) = B $.
    grppropstr.p $e |- ( +g ` K ) = .+ $.
    grppropstr.l $e |- L
          = { <. ( Base ` ndx ) , B >. , <. ( +g ` ndx ) , .+ >. } $.
    $( Generalize a specific 2-element group ` L ` to show that any set ` K `
       with the same (relevant) properties is also a group.  (Contributed by
       NM, 28-Oct-2012.)  (Revised by Mario Carneiro, 6-Jan-2015.) $)
    grppropstr $p |- ( K e. Grp <-> L e. Grp ) $=
      ( cbs cfv cvv wcel wceq fvex eqeltrri grpbase ax-mp eqtri cplusg grpplusg
      grpprop ) CDCHIZADHIZEAJKAUBLUAAJECHMNABDJGOPQCRIZBDRIZFBJKBUDLUCBJFCRMNA
      BDJGSPQT $.
  $}

  ${
    grpss.g $e |- G = { <. ( Base ` ndx ) , B >. , <. ( +g ` ndx ) , .+ >. } $.
    grpss.r $e |- R e. _V $.
    grpss.s $e |- G C_ R $.
    grpss.f $e |- Fun R $.
    $( Show that a structure extending a constructed group (e.g., a ring) is
       also a group.  This allows us to prove that a constructed potential ring
       ` R ` is a group before we know that it is also a ring.  (Theorem
       ~ ringgrp , on the other hand, requires that we know in advance that
       ` R ` is a ring.)  (Contributed by NM, 11-Oct-2013.) $)
    grpss $p |- ( G e. Grp <-> R e. Grp ) $=
      ( cgrp wcel cbs baseid cnx cfv cop cplusg cpr opex eleqtrri strss plusgid
      prid1 prid2 grpprop bicomi ) CIJDIJCDADCKFHGLMKNZAOZUGMPNZBOZQZDUGUIUFARU
      BESTBDCPFHGUAUIUJDUGUIUHBRUCESTUDUE $.
  $}

  ${
    $d x y .+ $.  $d y .0. $.  $d x y B $.  $d x y G $.  $d x y ph $.
    $d y N $.
    isgrpd2.b $e |- ( ph -> B = ( Base ` G ) ) $.
    isgrpd2.p $e |- ( ph -> .+ = ( +g ` G ) ) $.
    isgrpd2.z $e |- ( ph -> .0. = ( 0g ` G ) ) $.
    isgrpd2.g $e |- ( ph -> G e. Mnd ) $.
    ${
      isgrpd2e.n $e |- ( ( ph /\ x e. B ) -> E. y e. B ( y .+ x ) = .0. ) $.
      $( Deduce a group from its properties.  In this version of ~ isgrpd2 , we
         don't assume there is an expression for the inverse of ` x ` .
         (Contributed by NM, 10-Aug-2013.) $)
      isgrpd2e $p |- ( ph -> G e. Grp ) $=
        ( wcel cv cfv co wceq wrex wral eqid cmnd cplusg c0g cbs cgrp ralrimiva
        oveqd eqeq12d rexeqbidv raleqbidv mpbid isgrp sylanbrc ) AFUAMCNZBNZFUB
        OZPZFUCOZQZCFUDOZRZBUTSZFUEMKAUNUOEPZGQZCDRZBDSVBAVEBDLUFAVEVABDUTHAVDU
        SCDUTHAVCUQGURAEUPUNUOIUGJUHUIUJUKUTUPCFURBUTTUPTURTULUM $.
    $}

    isgrpd2.n $e |- ( ( ph /\ x e. B ) -> N e. B ) $.
    isgrpd2.j $e |- ( ( ph /\ x e. B ) -> ( N .+ x ) = .0. ) $.
    $( Deduce a group from its properties. ` N ` (negative) is normally
       dependent on ` x ` i.e. read it as ` N ( x ) ` .  Note: normally we
       don't use a ` ph ` antecedent on hypotheses that name structure
       components, since they can be eliminated with ~ eqid , but we make an
       exception for theorems such as ~ isgrpd2 , ~ ismndd , and ~ islmodd
       since theorems using them often rewrite the structure components.
       (Contributed by NM, 10-Aug-2013.) $)
    isgrpd2 $p |- ( ph -> G e. Grp ) $=
      ( vy cv wcel wa co wceq wrex oveq1 eqeq1d rspcev syl2anc isgrpd2e ) ABNCD
      EGHIJKABOZCPQFCPFUFDRZGSZNOZUFDRZGSZNCTLMUKUHNFCUIFSUJUGGUIFUFDUAUBUCUDUE
      $.
  $}

  ${
    $d x y z .+ $.  $d x y z .0. $.  $d x y z B $.  $d y N $.  $d x y z ph $.
    $d x y z G $.
    isgrpd.b $e |- ( ph -> B = ( Base ` G ) ) $.
    isgrpd.p $e |- ( ph -> .+ = ( +g ` G ) ) $.
    isgrpd.c $e |- ( ( ph /\ x e. B /\ y e. B ) -> ( x .+ y ) e. B ) $.
    isgrpd.a $e |- ( ( ph /\ ( x e. B /\ y e. B /\ z e. B ) ) ->
                   ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) ) $.
    isgrpd.z $e |- ( ph -> .0. e. B ) $.
    isgrpd.i $e |- ( ( ph /\ x e. B ) -> ( .0. .+ x ) = x ) $.
    ${
      isgrpde.n $e |- ( ( ph /\ x e. B ) -> E. y e. B ( y .+ x ) = .0. ) $.
      $( Deduce a group from its properties.  In this version of ~ isgrpd , we
         don't assume there is an expression for the inverse of ` x ` .
         (Contributed by NM, 6-Jan-2015.) $)
      isgrpde $p |- ( ph -> G e. Grp ) $=
        ( grpridd grpidd ismndd isgrpd2e ) ABCEFGHIJABEFGHIJMNABCDEFHKMNLOPZQAB
        CDEFGHIJKLMNTROS $.
    $}

    isgrpd.n $e |- ( ( ph /\ x e. B ) -> N e. B ) $.
    isgrpd.j $e |- ( ( ph /\ x e. B ) -> ( N .+ x ) = .0. ) $.
    $( Deduce a group from its properties.  Unlike ~ isgrpd2 , this one goes
       straight from the base properties rather than going through ` Mnd ` .
       ` N ` (negative) is normally dependent on ` x ` i.e. read it as
       ` N ( x ) ` .  (Contributed by NM, 6-Jun-2013.)  (Revised by Mario
       Carneiro, 6-Jan-2015.) $)
    isgrpd $p |- ( ph -> G e. Grp ) $=
      ( cv wcel wceq wa co wrex oveq1 eqeq1d rspcev syl2anc isgrpde ) ABCDEFGIJ
      KLMNOABRZESUAHESHUIFUBZITZCRZUIFUBZITZCEUCPQUNUKCHEULHTUMUJIULHUIFUDUEUFU
      GUH $.
  $}

  ${
    $d x y z B $.  $d x y z G $.  $d y N $.  $d x y z .+ $.  $d x y z .0. $.
    isgrpi.b $e |- B = ( Base ` G ) $.
    isgrpi.p $e |- .+ = ( +g ` G ) $.
    isgrpi.c $e |- ( ( x e. B /\ y e. B ) -> ( x .+ y ) e. B ) $.
    isgrpi.a $e |- ( ( x e. B /\ y e. B /\ z e. B ) ->
                   ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) ) $.
    isgrpi.z $e |- .0. e. B $.
    isgrpi.i $e |- ( x e. B -> ( .0. .+ x ) = x ) $.
    isgrpi.n $e |- ( x e. B -> N e. B ) $.
    isgrpi.j $e |- ( x e. B -> ( N .+ x ) = .0. ) $.
    $( Properties that determine a group. ` N ` (negative) is normally
       dependent on ` x ` i.e. read it as ` N ( x ) ` .  (Contributed by NM,
       3-Sep-2011.) $)
    isgrpi $p |- G e. Grp $=
      ( wcel wtru wceq co cgrp cbs cfv a1i cplusg cv 3adant1 adantl isgrpd trud
      w3a ) FUAQRABCDEFGHDFUBUCSRIUDEFUEUCSRJUDAUFZDQZBUFZDQZULUNETZDQRKUGUMUOC
      UFZDQUKUPUQETULUNUQETETSRLUHHDQRMUDUMHULETULSRNUHUMGDQROUHUMGULETHSRPUHUI
      UJ $.
  $}

  $( A group is a semigroup.  (Contributed by AV, 28-Aug-2021.) $)
  grpsgrp $p |- ( G e. Grp -> G e. SGrp ) $=
    ( cgrp wcel cmnd csgrp grpmnd mndsgrp syl ) ABCADCAECAFAGH $.

  ${
    $d B a b c i n x $.  $d G a b c i n x $.  $d .+ a b c i n x $.
    dfgrp2.b $e |- B = ( Base ` G ) $.
    dfgrp2.p $e |- .+ = ( +g ` G ) $.
    $( Alternate definition of a group as semigroup with a left identity and a
       left inverse for each element.  This "definition" is weaker than
       ~ df-grp , based on the definition of a monoid which provides a left and
       a right identity.  (Contributed by AV, 28-Aug-2021.) $)
    dfgrp2 $p |- ( G e. Grp <-> ( G e. SGrp /\ E. n e. B A. x e. B
                          ( ( n .+ x ) = x /\ E. i e. B ( i .+ x ) = n ) ) ) $=
      ( va vb wcel cv co wceq wrex wa cfv eqeq1d adantl wi vc cgrp wral grpsgrp
      csgrp c0g cmnd grpmnd eqid mndidcl wb oveq1 eqeq2 rexbidv anbi12d ralbidv
      syl mndlid sylan grpinvex jca ralrimiva rspcedvd cbs cplusg sgrpmgm mgmcl
      a1i cmgm syl3an1 sgrpass adantll simpll oveq2 eqeq12d rspcv simpl syl6com
      w3a id ad2antlr imp cbvrexv biimpi isgrpde ex rexlimiva impcom impbii ) F
      UBKZFUEKZELZALZCMZWMNZDLZWMCMZWLNZDBOZPZABUCZEBOZPWJWKXBFUDWJXAFUFQZWMCMZ
      WMNZWQXCNZDBOZPZABUCZEXCBWJFUGKZXCBKFUHZBFXCGXCUIZUJUQWLXCNZXAXIUKWJXMWTX
      HABXMWOXEWSXGXMWNXDWMWLXCWMCULRXMWRXFDBWLXCWQUMUNUOUPSWJXHABWJWMBKZPXEXGW
      JXJXNXEXKBCFWMXCGHXLURUSDBCFWMXCGHXLUTVAVBVCVAXBWKWJXAWKWJTEBWLBKZXAPZWKW
      JXPWKPZIJUABCFWLBFVDQNXQGVHCFVEQNXQHVHXQFVIKZILZBKZJLZBKZXSYACMZBKWKXRXPF
      VFSBFXSYACGHVGVJWKXTYBUALZBKVSYCYDCMXSYAYDCMCMNXPBFXSYACYDGHVKVLXOXAWKVMX
      QXTWLXSCMZXSNZXAXTYFTXOWKXTXAYFWPXSCMZWLNZDBOZPZYFWTYJAXSBWMXSNZWOYFWSYIY
      KWNYEWMXSWMXSWLCVNYKVTVOYKWRYHDBYKWQYGWLWMXSWPCVNRUNUOVPZYFYIVQVRWAWBXQXT
      YAXSCMZWLNZJBOZXAXTYOTXOWKXTXAYJYOYLYIYOYFYIYOYHYNDJBWPYANYGYMWLWPYAXSCUL
      RWCWDSVRWAWBWEWFWGWHWI $.

    $d B x y z $.  $d G y z $.  $d .+ y z $.
    $( Alternate definition of a group as a set with a closed, associative
       operation, a left identity and a left inverse for each element.
       Alternate definition in [Lang] p. 7.  (Contributed by NM, 10-Oct-2006.)
       (Revised by AV, 28-Aug-2021.) $)
    dfgrp2e $p |- ( G e. Grp <-> ( A. x e. B A. y e. B ( ( x .+ y ) e. B
                /\ A. z e. B ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) )
                       /\ E. n e. B A. x e. B
                          ( ( n .+ x ) = x /\ E. i e. B ( i .+ x ) = n ) ) ) $=
      ( wcel cv co wceq wrex wa wral cvv cbs c0 cgrp csgrp dfgrp2 wb wi ax-1 wn
      cfv fvprc eleq2i eleq2 noel pm2.21i syl6bi syl5bi syl pm2.61i a1d issgrpv
      rexlimiv pm5.32ri bitri ) HUAKHUBKZGLZALZEMVENFLVEEMVDNFDOPADQZGDOZPVEBLZ
      EMZDKVICLZEMVEVHVJEMEMNCDQPBDQADQZVGPADEFGHIJUCVGVCVKVGHRKZVCVKUDVFVLGDVD
      DKZVLVFVLVMVLUEZVLVMUFVLUGHSUHZTNZVNHSUIVMVDVOKZVPVLDVOVDIUJVPVQVDTKZVLVO
      TVDUKVRVLVDULUMUNUOUPUQURUTABCDHREIJUSUPVAVB $.
  $}

  ${
    $d x y z B $.  $d x y z G $.  $d y N $.  $d x y z .+ $.  $d x y z .0. $.
    isgrpix.a $e |- B e. _V $.
    isgrpix.b $e |- .+ e. _V $.
    isgrpix.g $e |- G = { <. 1 , B >. , <. 2 , .+ >. } $.
    isgrpix.2 $e |- ( ( x e. B /\ y e. B ) -> ( x .+ y ) e. B ) $.
    isgrpix.3 $e |- ( ( x e. B /\ y e. B /\ z e. B ) ->
                   ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) ) $.
    isgrpix.z $e |- .0. e. B $.
    isgrpix.5 $e |- ( x e. B -> ( .0. .+ x ) = x ) $.
    isgrpix.6 $e |- ( x e. B -> N e. B ) $.
    isgrpix.7 $e |- ( x e. B -> ( N .+ x ) = .0. ) $.
    $( Properties that determine a group.  Read ` N ` as ` N ( x ) ` .  Note:
       This theorem has hard-coded structure indices for demonstration
       purposes.  It is not intended for general use.
       (New usage is discouraged.)  (Contributed by NM, 4-Sep-2011.) $)
    isgrpix $p |- G e. Grp $=
      ( grpbasex grpplusgx isgrpi ) ABCDEFGHDEFIJKRDEFIJKSLMNOPQT $.
  $}

  ${
    grpidcl.b $e |- B = ( Base ` G ) $.
    grpidcl.o $e |- .0. = ( 0g ` G ) $.
    $( The identity element of a group belongs to the group.  (Contributed by
       NM, 27-Aug-2011.)  (Revised by Mario Carneiro, 27-Dec-2014.) $)
    grpidcl $p |- ( G e. Grp -> .0. e. B ) $=
      ( cgrp wcel cmnd grpmnd mndidcl syl ) BFGBHGCAGBIABCDEJK $.
  $}

  ${
    grpbn0.b $e |- B = ( Base ` G ) $.
    $( The base set of a group is not empty.  (Contributed by Szymon
       Jaroszewicz, 3-Apr-2007.) $)
    grpbn0 $p |- ( G e. Grp -> B =/= (/) ) $=
      ( cgrp wcel c0g cfv c0 wne eqid grpidcl ne0i syl ) BDEBFGZAEAHIABNCNJKANL
      M $.

    grplid.p $e |- .+ = ( +g ` G ) $.
    grplid.o $e |- .0. = ( 0g ` G ) $.
    $( The identity element of a group is a left identity.  (Contributed by NM,
       18-Aug-2011.) $)
    grplid $p |- ( ( G e. Grp /\ X e. B ) -> ( .0. .+ X ) = X ) $=
      ( cgrp wcel cmnd co wceq grpmnd mndlid sylan ) CIJCKJDAJEDBLDMCNABCDEFGHO
      P $.

    $( The identity element of a group is a right identity.  (Contributed by
       NM, 18-Aug-2011.) $)
    grprid $p |- ( ( G e. Grp /\ X e. B ) -> ( X .+ .0. ) = X ) $=
      ( cgrp wcel cmnd co wceq grpmnd mndrid sylan ) CIJCKJDAJDEBLDMCNABCDEFGHO
      P $.
  $}

  $( A group is not empty.  (Contributed by Szymon Jaroszewicz, 3-Apr-2007.)
     (Revised by Mario Carneiro, 2-Dec-2014.) $)
  grpn0 $p |- ( G e. Grp -> G =/= (/) ) $=
    ( cgrp wcel cbs cfv c0 wne eqid grpbn0 wceq fveq2 base0 syl6eqr necon3i syl
    ) ABCADEZFGAFGPAPHIAFPFAFJPFDEFAFDKLMNO $.

  ${
    $d u v w y B $.  $d u v w y G $.  $d u v w y .+ $.  $d u v w y X $.
    $d u v w y Y $.  $d u v w y Z $.
    grprcan.b $e |- B = ( Base ` G ) $.
    grprcan.p $e |- .+ = ( +g ` G ) $.
    $( Right cancellation law for groups.  (Contributed by NM, 24-Aug-2011.)
       (Proof shortened by Mario Carneiro, 6-Jan-2015.) $)
    grprcan $p |- ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
                  ( ( X .+ Z ) = ( Y .+ Z ) <-> X = Y ) ) $=
      ( vy vu vv vw wcel w3a wa co wceq cv sylan 3eqtr3d cgrp c0g cfv wrex eqid
      wi grpinvex 3ad2antr3 simprr oveq1d simpll grpass simplr1 simplr3 simprll
      caovassd simplr2 grpcl syl3an1 grpidcl syl grplid adantr simprlr grprinvd
      simpr mpdan oveq2d grprid syl2anc expr rexlimddv oveq1 impbid1 ) CUAMZDAM
      ZEAMZFAMZNZOZDFBPZEFBPZQZDEQZVTIRZFBPCUBUCZQZWCWDUFIAVOVPVRWGIAUDVQIABCFW
      FGHWFUEZUGUHVTWEAMZWGOZWCWDVTWJWCOZOZDWFBPZEWFBPZDEWLDFWEBPZBPZEWOBPZWMWN
      WLWAWEBPWBWEBPWPWQWLWAWBWEBVTWJWCUIUJWLJKLDFWEABWLVOJRZAMZKRZAMZLRZAMNWRW
      TBPZXBBPWRWTXBBPBPQVOVSWKUKZABCWRWTXBGHULSZVPVQVRVOWKUMZVPVQVRVOWKUNZVTWI
      WGWCUOZUPWLJKLEFWEABXEVPVQVRVOWKUQZXGXHUPTWLWOWFDBWLVRWOWFQXGWLVRJKLABWEW
      FFWLVOWSXAXCAMXDABCWRWTGHURUSWLVOWFAMXDACWFGWHUTVAWLVOWSWFWRBPWRQXDABCWRW
      FGHWHVBSXEWLVOWSWTWRBPWFQKAUDXDKABCWRWFGHWHUGSWLVRVFWLWIVRXHVCWLWGVRVTWIW
      GWCVDVCVEVGZVHWLWOWFEBXJVHTWLVOVPWMDQXDXFABCDWFGHWHVIVJWLVOVQWNEQXDXIABCE
      WFGHWHVIVJTVKVLDEFBVMVN $.
  $}

  ${
    $d y z B $.  $d y z G $.  $d y z .+ $.  $d y z .0. $.  $d y z X $.
    grpinveu.b $e |- B = ( Base ` G ) $.
    grpinveu.p $e |- .+ = ( +g ` G ) $.
    grpinveu.o $e |- .0. = ( 0g ` G ) $.
    $( The left inverse element of a group is unique.  Lemma 2.2.1(b) of
       [Herstein] p. 55.  (Contributed by NM, 24-Aug-2011.) $)
    grpinveu $p |- ( ( G e. Grp /\ X e. B )
           -> E! y e. B ( y .+ X ) = .0. ) $=
      ( vz cgrp wcel wa cv co wceq wi wral wrex wreu grpinvex w3a eqtr3 grprcan
      syl5ib 3exp2 com24 imp41 an32s expd ralrimdva ancld reximdva oveq1 eqeq1d
      mpd reu8 sylibr ) DKLZEBLZMZANZECOZFPZJNZECOZFPZVBVEPZQZJBRZMZABSZVDABTVA
      VDABSVLABCDEFGHIUAVAVDVKABVAVBBLZMZVDVJVNVDVIJBVNVEBLZMVDVGVHVAVOVMVDVGMZ
      VHQZUSUTVOVMVQUSVMVOUTVQUSVMVOUTVQVPVCVFPUSVMVOUTUBMVHVCVFFUCBCDVBVEEGHUD
      UEUFUGUHUIUJUKULUMUPVDVGAJBVHVCVFFVBVEECUNUOUQUR $.

    $( Two ways of saying that an element of a group is the identity element.
       Provides a convenient way to compute the value of the identity element.
       (Contributed by NM, 24-Aug-2011.) $)
    grpid $p |- ( ( G e. Grp /\ X e. B ) ->
                  ( ( X .+ X ) = X <-> .0. = X ) ) $=
      ( wceq cgrp wcel wa co eqcom wb wi grpidcl grprcan 3exp2 mpid pm2.43d imp
      grplid eqeq2d bitr3d syl5rbb ) EDIDEIZCJKZDAKZLZDDBMZDIZEDNUJUKEDBMZIZUGU
      LUHUIUNUGOZUHUIUOUHUIEAKZUIUOPACEFHQUHUIUPUIUOABCDEDFGRSTUAUBUJUMDUKABCDE
      FGHUCUDUEUF $.

    $( Properties showing that an element ` Z ` is the identity element of a
       group.  (Contributed by NM, 7-Aug-2013.) $)
    isgrpid2 $p |- ( G e. Grp
  -> ( ( Z e. B /\ ( Z .+ Z ) = Z ) <-> .0. = Z ) ) $=
      ( cgrp wcel co wceq wa grpid biimpd expimpd grpidcl grplid mpdan jca id
      eleq1 oveq12d eqeq12d anbi12d syl5ibcom impbid ) CIJZEAJZEEBKZELZMZDELZUH
      UIUKUMUHUIMUKUMABCEDFGHNOPUHDAJZDDBKZDLZMUMULUHUNUPACDFHQZUHUNUPUQABCDDFG
      HRSTUMUNUIUPUKDEAUBUMUOUJDEUMDEDEBUMUAZURUCURUDUEUFUG $.
  $}

  ${
    $d x B $.  $d x .+ $.  $d x ph $.  $d x .0. $.
    grpidd2.b $e |- ( ph -> B = ( Base ` G ) ) $.
    grpidd2.p $e |- ( ph -> .+ = ( +g ` G ) ) $.
    grpidd2.z $e |- ( ph -> .0. e. B ) $.
    grpidd2.i $e |- ( ( ph /\ x e. B ) -> ( .0. .+ x ) = x ) $.
    grpidd2.j $e |- ( ph -> G e. Grp ) $.
    $( Deduce the identity element of a group from its properties.  Useful in
       conjunction with ~ isgrpd .  (Contributed by Mario Carneiro,
       14-Jun-2015.) $)
    grpidd2 $p |- ( ph -> .0. = ( 0g ` G ) ) $=
      ( c0g cfv cplusg co wceq oveqd wcel cv eqid wral ralrimiva oveq2 id rspcv
      eqeq12d sylc eqtr3d cgrp cbs wb eleqtrd grpid syl2anc mpbid eqcomd ) AELM
      ZFAFFENMZOZFPZUQFPZAFFDOZUSFADURFFHQAFCRFBSZDOZVCPZBCUAVBFPZIAVEBCJUBVEVF
      BFCVCFPZVDVBVCFVCFFDUCVGUDUFUEUGUHAEUIRFEUJMZRUTVAUKKAFCVHIGULVHUREFUQVHT
      URTUQTUMUNUOUP $.
  $}

  ${
    $d g x y B $.  $d g x y G $.  $d g x .0. $.  $d g x .+ $.  $d x y X $.
    grpinvval.b $e |- B = ( Base ` G ) $.
    grpinvval.p $e |- .+ = ( +g ` G ) $.
    grpinvval.o $e |- .0. = ( 0g ` G ) $.
    grpinvval.n $e |- N = ( invg ` G ) $.
    $( The inverse function of a group.  (Contributed by NM, 24-Aug-2011.)
       (Revised by Mario Carneiro, 7-Aug-2013.) $)
    grpinvfval $p |- N = ( x e. B |-> ( iota_ y e. B ( y .+ x ) = .0. ) ) $=
      ( vg cminusg cfv cv wceq cmpt cbs syl6eqr c0 co crio cvv cplusg c0g fveq2
      wcel oveqd eqeq12d riotaeqbidv mpteq12dv df-minusg eqeltri mptex fvmpt wn
      fvex fvprc mpt0 syl5eq mpteq1d eqtr4d pm2.61i eqtri ) FEMNZACBOZAOZDUAZGP
      ZBCUBZQZKEUCUGZVEVKPLEALOZRNZVFVGVMUDNZUAZVMUENZPZBVNUBZQVKUCMVMEPZAVNVSC
      VJVTVNERNZCVMERUFHSZVTVRVIBVNCWBVTVPVHVQGVTVODVFVGVTVOEUDNDVMEUDUFISUHVTV
      QEUENGVMEUEUFJSUIUJUKABLULACVJCWAUCHERUQUMUNUOVLUPZVEATVJQZVKWCVETWDEMURA
      VJUSSWCACTVJWCCWATHERURUTVAVBVCVD $.

    $( The inverse of a group element.  (Contributed by NM, 24-Aug-2011.)
       (Revised by Mario Carneiro, 7-Aug-2013.) $)
    grpinvval $p |- ( X e. B ->
                    ( N ` X ) = ( iota_ y e. B ( y .+ X ) = .0. ) ) $=
      ( vx cv co wceq crio oveq2 eqeq1d riotabidv grpinvfval riotaex fvmpt ) LF
      AMZLMZCNZGOZABPUCFCNZGOZABPBEUDFOZUFUHABUIUEUGGUDFUCCQRSLABCDEGHIJKTUHABU
      AUB $.
  $}

  ${
    $d B x y $.  $d G x y $.
    grpinvfn.b $e |- B = ( Base ` G ) $.
    grpinvfn.n $e |- N = ( invg ` G ) $.
    $( Functionality of the group inverse function.  (Contributed by Stefan
       O'Rear, 21-Mar-2015.) $)
    grpinvfn $p |- N Fn B $=
      ( vx vy cv cplusg cfv co c0g wceq crio riotaex eqid grpinvfval fnmpti ) F
      AGHFHBIJZKBLJZMZGANCUAGAOFGASBCTDSPTPEQR $.
  $}

  ${
    grpinvfvi.t $e |- N = ( invg ` G ) $.
    $( The group inverse function is compatible with identity-function
       protection.  (Contributed by Stefan O'Rear, 21-Mar-2015.) $)
    grpinvfvi $p |- N = ( invg ` ( _I ` G ) ) $=
      ( cminusg cfv cid cvv wcel wceq fvi fveq2d wn wfn base0 eqid grpinvfn fn0
      c0 mpbi fvprc 3eqtr4a pm2.61i eqtr4i ) BADEZAFEZDEZCAGHZUFUDIUGUEADAGJKUG
      LZRDEZRUFUDUIRMUIRIRRUINUIOPUIQSUHUERDAFTKADTUAUBUC $.
  $}

  ${
    $d g x y B $.  $d g x y G $.  $d g x y I $.  $d g x y .+ $.  $d x y X $.
    $d x y Y $.
    grpsubval.b $e |- B = ( Base ` G ) $.
    grpsubval.p $e |- .+ = ( +g ` G ) $.
    grpsubval.i $e |- I = ( invg ` G ) $.
    grpsubval.m $e |- .- = ( -g ` G ) $.
    $( Group subtraction (division) operation.  (Contributed by NM,
       31-Mar-2014.)  (Revised by Stefan O'Rear, 27-Mar-2015.) $)
    grpsubfval $p |- .- = ( x e. B , y e. B |-> ( x .+ ( I ` y ) ) ) $=
      ( vg cvv cv cfv cmpt2 wceq csg cbs c0 wcel co cminusg fveq2 syl6eqr eqidd
      cplusg fveq1d oveq123d mpt2eq123dv df-sbg fvex eqeltri mpt2ex fvmpt fvprc
      syl5eq wn mpt2eq12 syl2anc mpt20 syl6eq eqtr4d pm2.61i ) EMUAZGABCCANZBNZ
      FOZDUBZPZQVEGEROZVJKLEABLNZSOZVMVFVGVLUCOZOZVLUGOZUBZPVJMRVLEQZABVMVMVQCC
      VIVRVMESOZCVLESUDHUEZVTVRVFVFVOVHVPDVRVPEUGODVLEUGUDIUEVRVFUFVRVGVNFVRVNE
      UCOFVLEUCUDJUEUHUIUJABLUKABCCVICVSMHESULUMZWAUNUOUQVEURZGTVJWBGVKTKERUPUQ
      WBVJABTTVIPZTWBCTQZWDVJWCQWBCVSTHESUPUQZWEABCCTTVIUSUTABTVIVAVBVCVD $.

    $( Group subtraction (division) operation.  (Contributed by NM,
       31-Mar-2014.)  (Revised by Mario Carneiro, 13-Dec-2014.) $)
    grpsubval $p |- ( ( X e. B /\ Y e. B ) ->
                    ( X .- Y ) = ( X .+ ( I ` Y ) ) ) $=
      ( vx vy cv cfv co oveq1 wceq fveq2 oveq2d grpsubfval ovex ovmpt2 ) LMFGAA
      LNZMNZDOZBPFGDOZBPEFUFBPUDFUFBQUEGRUFUGFBUEGDSTLMABCDEHIJKUAFUGBUBUC $.
  $}

  ${
    $d x y B $.  $d x y G $.
    grpinvcl.b $e |- B = ( Base ` G ) $.
    grpinvcl.n $e |- N = ( invg ` G ) $.
    $( The group inversion operation is a function on the base set.
       (Contributed by Mario Carneiro, 4-May-2015.) $)
    grpinvf $p |- ( G e. Grp -> N : B --> B ) $=
      ( vx vy cgrp wcel cv cplusg cfv co c0g wceq crio wa wreu eqid grpinveu
      riotacl syl grpinvfval fmptd ) BHIZFAGJFJZBKLZMBNLZOZGAPZACUEUFAIQUIGARUJ
      AIGAUGBUFUHDUGSZUHSZTUIGAUAUBFGAUGBCUHDUKULEUCUD $.

    $( A group element's inverse is a group element.  (Contributed by NM,
       24-Aug-2011.)  (Revised by Mario Carneiro, 4-May-2015.) $)
    grpinvcl $p |- ( ( G e. Grp /\ X e. B ) -> ( N ` X ) e. B ) $=
      ( cgrp wcel grpinvf ffvelrnda ) BGHAADCABCEFIJ $.
  $}

  ${
    $d e x y z B $.  $d e x y z G $.  $d e x y z .0. $.  $d e x y z .+ $.
    $d e x M $.  $d x y z N $.  $d y z X $.
    grpinv.b $e |- B = ( Base ` G ) $.
    grpinv.p $e |- .+ = ( +g ` G ) $.
    grpinv.u $e |- .0. = ( 0g ` G ) $.
    grpinv.n $e |- N = ( invg ` G ) $.
    $( The left inverse of a group element.  (Contributed by NM, 24-Aug-2011.)
       (Revised by Mario Carneiro, 6-Jan-2015.) $)
    grplinv $p |- ( ( G e. Grp /\ X e. B ) -> ( ( N ` X ) .+ X ) = .0. ) $=
      ( vy cgrp wcel wa cfv cv co wceq crab syl crio grpinvval grpinveu eqeltrd
      adantl wreu riotacl2 oveq1 eqeq1d elrab simprbi ) CLMZEAMZNZEDOZKPZEBQZFR
      ZKASZMZUOEBQZFRZUNUOURKAUAZUSUMUOVCRULKABCDEFGHIJUBUEUNURKAUFVCUSMKABCEFG
      HIUCURKAUGTUDUTUOAMVBURVBKUOAUPUORUQVAFUPUOEBUHUIUJUKT $.

    $( The right inverse of a group element.  (Contributed by NM, 24-Aug-2011.)
       (Revised by Mario Carneiro, 6-Jan-2015.) $)
    grprinv $p |- ( ( G e. Grp /\ X e. B ) -> ( X .+ ( N ` X ) ) = .0. ) $=
      ( vx vy vz cgrp wcel cfv cv grpcl grpidcl grplid grpass grpinvex grpinvcl
      simpr grplinv grprinvd ) CNOZEAOZKLMABEDPFEABCKQZLQZGHRACFGISABCUIFGHITAB
      CUIUJMQGHUALABCUIFGHIUBUGUHUDACDEGJUCABCDEFGHIJUEUF $.

    $( The inverse of a group element expressed in terms of the identity
       element.  (Contributed by NM, 24-Aug-2011.) $)
    grpinvid1 $p |- ( ( G e. Grp /\ X e. B /\ Y e. B ) ->
                    ( ( N ` X ) = Y <-> ( X .+ Y ) = .0. ) ) $=
      ( wcel w3a wceq co wa oveq2 3adant3 adantr eqtr3d cgrp cfv adantl grprinv
      grplinv oveq1d grpinvcl adantrr simprl simprr grpass syldan 3impb 3adant2
      3jca grplid grprid 3eqtr3rd impbida ) CUALZEALZFALZMZEDUBZFNZEFBOZGNZVCVE
      PEVDBOZVFGVEVHVFNVCVDFEBQUCVCVHGNZVEUTVAVIVBABCDEGHIJKUDRSTVCVGPVDVFBOZVD
      GBOZFVDVGVJVKNVCVFGVDBQUCVCVJFNVGVCGFBOZVJFVCVDEBOZFBOZVLVJUTVAVNVLNVBUTV
      APVMGFBABCDEGHIJKUEUFRUTVAVBVNVJNZUTVAVBPZVDALZVAVBMVOUTVPPVQVAVBUTVAVQVB
      ACDEHKUGZUHUTVAVBUIUTVAVBUJUOABCVDEFHIUKULUMTUTVBVLFNVAABCFGHIJUPUNTSVCVK
      VDNZVGUTVAVSVBUTVAVQVSVRABCVDGHIJUQULRSURUS $.

    $( The inverse of a group element expressed in terms of the identity
       element.  (Contributed by NM, 24-Aug-2011.) $)
    grpinvid2 $p |- ( ( G e. Grp /\ X e. B /\ Y e. B ) ->
                    ( ( N ` X ) = Y <-> ( Y .+ X ) = .0. ) ) $=
      ( wcel w3a wceq co wa oveq1 adantl 3adant3 adantr cgrp cfv grplinv eqtr3d
      grpinvcl grplid syldan eqcomd simprr simprl adantrr grpass grprinv oveq2d
      3jca 3impb grprid 3adant2 3eqtrd 3eqtr2d impbida ) CUALZEALZFALZMZEDUBZFN
      ZFEBOZGNZVEVGPVFEBOZVHGVGVJVHNVEVFFEBQRVEVJGNZVGVBVCVKVDABCDEGHIJKUCSTUDV
      EVIPVFGVFBOZVHVFBOZFVEVFVLNVIVEVLVFVBVCVLVFNZVDVBVCVFALZVNACDEHKUEZABCVFG
      HIJUFUGSUHTVIVMVLNVEVHGVFBQRVEVMFNVIVEVMFEVFBOZBOZFGBOZFVBVCVDVMVRNZVBVCV
      DPZVDVCVOMVTVBWAPVDVCVOVBVCVDUIVBVCVDUJVBVCVOVDVPUKUOABCFEVFHIULUGUPVBVCV
      RVSNVDVBVCPVQGFBABCDEGHIJKUMUNSVBVDVSFNVCABCFGHIJUQURUSTUTVA $.

    $( Properties showing that a function ` M ` is the inverse function of a
       group.  (Contributed by NM, 7-Aug-2013.)  (Revised by Mario Carneiro,
       2-Oct-2015.) $)
    isgrpinv $p |- ( G e. Grp
  -> ( ( M : B --> B /\ A. x e. B ( ( M ` x ) .+ x ) = .0. ) <-> N = M ) ) $=
      ( ve wcel wf cv cfv co wceq wral wa cgrp crio grpinvval ad2antlr simpr wb
      wreu simpllr simplr ffvelrnd simplll grpinveu syl2anc oveq1 eqeq1d riota2
      mpbid eqtrd ralimdva impr wfn grpinvfn ffn ad2antrl eqfnfv sylancr mpbird
      grpinvf grplinv ralrimiva jca feq1 fveq1 oveq1d ralbidv anbi12d syl5ibcom
      ex impbid ) DUAMZBBENZAOZEPZWBCQZGRZABSZTZFERZVTWGWHVTWGTZWHWBFPZWCRZABSZ
      VTWAWFWLVTWATZWEWKABWMWBBMZTZWEWKWOWETZWJLOZWBCQZGRZLBUBZWCWNWJWTRWMWELBC
      DFWBGHIJKUCUDWPWEWTWCRZWOWEUEWPWCBMWSLBUGZWEXAUFWPBBWBEVTWAWNWEUHWMWNWEUI
      ZUJWPVTWNXBVTWAWNWEUKXCLBCDWBGHIJULUMWSWELBWCWQWCRWRWDGWQWCWBCUNUOUPUMUQU
      RVRUSUTWIFBVAEBVAZWHWLUFBDFHKVBWAXDVTWFBBEVCVDABFEVEVFVGVRVTBBFNZWJWBCQZG
      RZABSZTWHWGVTXEXHBDFHKVHVTXGABBCDFWBGHIJKVIVJVKWHXEWAXHWFBBFEVLWHXGWEABWH
      XFWDGWHWJWCWBCWBFEVMVNUOVOVPVQVS $.
  $}

  ${
    $d B y $.  $d G x y $.  $d .+ y $.  $d .0. y $.
    grplrinv.b $e |- B = ( Base ` G ) $.
    grplrinv.p $e |- .+ = ( +g ` G ) $.
    grplrinv.i $e |- .0. = ( 0g ` G ) $.
    $( In a group, every member has a left and right inverse.  (Contributed by
       AV, 1-Sep-2021.) $)
    grplrinv $p |- ( G e. Grp
           -> A. x e. B E. y e. B ( ( y .+ x ) = .0. /\ ( x .+ y ) = .0. ) ) $=
      ( cgrp wcel cv co wceq wa wrex cminusg cfv eqid eqeq1d grpinvcl wb adantl
      oveq1 oveq2 anbi12d grplinv grprinv jca rspcedvd ralrimiva ) EJKZBLZALZDM
      ZFNZUNUMDMZFNZOZBCPACULUNCKOZUSUNEQRZRZUNDMZFNZUNVBDMZFNZOZBVBCCEVAUNGVAS
      ZUAUMVBNZUSVGUBUTVIUPVDURVFVIUOVCFUMVBUNDUDTVIUQVEFUMVBUNDUETUFUCUTVDVFCD
      EVAUNFGHIVHUGCDEVAUNFGHIVHUHUIUJUK $.

    $d A y z $.  $d B z $.  $d G z $.  $d .+ z $.  $d .0. z $.
    $( A group's properties using the explicit identity element.  (Contributed
       by NM, 5-Feb-2010.)  (Revised by AV, 1-Sep-2021.) $)
    grpidinv2 $p |- ( ( G e. Grp /\ A e. B )
              -> ( ( ( .0. .+ A ) = A /\ ( A .+ .0. ) = A )
                   /\ E. y e. B ( ( y .+ A ) = .0. /\ ( A .+ y ) = .0. ) ) ) $=
      ( vz cgrp wcel wa co wceq cv wrex grplid grprid eqeq1d wral oveq2 anbi12d
      grplrinv oveq1 rexbidv rspcv mpan9 jca31 ) EKLZBCLZMFBDNBOBFDNBOAPZBDNZFO
      ZBULDNZFOZMZACQZCDEBFGHIRCDEBFGHISUJULJPZDNZFOZUSULDNZFOZMZACQZJCUAUKURJA
      CDEFGHIUDVEURJBCUSBOZVDUQACVFVAUNVCUPVFUTUMFUSBULDUBTVFVBUOFUSBULDUETUCUF
      UGUHUI $.
  $}

  ${
    $d G u x y $.  $d B u y $.  $d .+ u y $.
    grpidinv.b $e |- B = ( Base ` G ) $.
    grpidinv.p $e |- .+ = ( +g ` G ) $.
    $( A group has a left and right identity element, and every member has a
       left and right inverse.  (Contributed by NM, 14-Oct-2006.)  (Revised by
       AV, 1-Sep-2021.) $)
    grpidinv $p |- ( G e. Grp -> E. u e. B A. x e. B
                     ( ( ( u .+ x ) = x /\ ( x .+ u ) = x )
                       /\ E. y e. B ( ( y .+ x ) = u /\ ( x .+ y ) = u ) ) ) $=
      ( cgrp wcel cv co wceq wa wrex wral c0g eqeq1d anbi12d eqeq2 eqid grpidcl
      cfv wb oveq1 oveq2 rexbidv ralbidv adantl grpidinv2 ralrimiva rspcedvd )
      FIJZCKZAKZELZUOMZUOUNELZUOMZNZBKZUOELZUNMZUOVAELZUNMZNZBDOZNZADPZFQUCZUOE
      LZUOMZUOVJELZUOMZNZVBVJMZVDVJMZNZBDOZNZADPZCVJDDFVJGVJUAZUBUNVJMZVIWAUDUM
      WCVHVTADWCUTVOVGVSWCUQVLUSVNWCUPVKUOUNVJUOEUERWCURVMUOUNVJUOEUFRSWCVFVRBD
      WCVCVPVEVQUNVJVBTUNVJVDTSUGSUHUIUMVTADBUODEFVJGHWBUJUKUL $.
  $}

  ${
    grpinvid.u $e |- .0. = ( 0g ` G ) $.
    grpinvid.n $e |- N = ( invg ` G ) $.
    $( The inverse of the identity element of a group.  (Contributed by NM,
       24-Aug-2011.) $)
    grpinvid $p |- ( G e. Grp -> ( N ` .0. ) = .0. ) $=
      ( cgrp wcel cfv wceq cplusg co cbs eqid grpidcl grplid mpdan wb grpinvid1
      mpd3an23 mpbird ) AFGZCBHCIZCCAJHZKCIZUACALHZGZUDUEACUEMZDNZUEUCACCUGUCMZ
      DOPUAUFUFUBUDQUHUHUEUCABCCCUGUIDERST $.
  $}

  ${
    grplcan.b $e |- B = ( Base ` G ) $.
    grplcan.p $e |- .+ = ( +g ` G ) $.
    $( Left cancellation law for groups.  (Contributed by NM, 25-Aug-2011.) $)
    grplcan $p |- ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
                  ( ( Z .+ X ) = ( Z .+ Y ) <-> X = Y ) ) $=
      ( wcel w3a wa co wceq cfv oveq2 eqid adantlr adantrl adantr 3eqtr3d exp53
      cgrp cminusg adantl c0g grplinv oveq1d grpinvcl simprr simprl 3jca grpass
      wi syldan anassrs grplid adantrr 3imp2 impbid1 ) CUBIZDAIZEAIZFAIZJKFDBLZ
      FEBLZMZDEMZUTVAVBVCVFVGUMUTVAVBVCVFVGUTVAKZVBVCKZKZVFKFCUCNZNZVDBLZVLVEBL
      ZDEVFVMVNMVJVDVEVLBOUDVJVMDMZVFVHVCVOVBVHVCKZVLFBLZDBLZCUENZDBLZVMDVPVQVS
      DBUTVCVQVSMZVAABCVKFVSGHVSPZVKPZUFZQUGUTVAVCVRVMMZUTVAVCKZVLAIZVCVAJWEUTW
      FKWGVCVAUTVCWGVAACVKFGWCUHZRUTVAVCUIUTVAVCUJUKABCVLFDGHULUNUOVHVTDMVCABCD
      VSGHWBUPSTRSVJVNEMZVFUTVIWIVAUTVIKZVQEBLZVSEBLZVNEWJVQVSEBUTVCWAVBWDRUGUT
      VIWGVCVBJWKVNMWJWGVCVBUTVCWGVBWHRUTVBVCUIUTVBVCUJUKABCVLFEGHULUNUTVBWLEMV
      CABCEVSGHWBUPUQTQSTUAURDEFBOUS $.

    grpasscan1.n $e |- N = ( invg ` G ) $.
    $( An associative cancellation law for groups.  (Contributed by Paul
       Chapman, 25-Feb-2008.)  (Revised by AV, 30-Aug-2021.) $)
    grpasscan1 $p |- ( ( G e. Grp /\ X e. B /\ Y e. B ) ->
                          ( X .+ ( ( N ` X ) .+ Y ) ) = Y ) $=
      ( cgrp wcel w3a cfv co c0g wceq eqid grprinv 3adant3 wi wa grpinvcl 3exp2
      oveq1d grpass imp mpd 3impia grplid 3adant2 3eqtr3d ) CJKZEAKZFAKZLZEEDMZ
      BNZFBNZCOMZFBNZEUPFBNBNZFUOUQUSFBULUMUQUSPUNABCDEUSGHUSQZIRSUDULUMUNURVAP
      ZULUMUAUPAKZUNVCTZACDEGIUBULUMVDVETULUMVDUNVCABCEUPFGHUEUCUFUGUHULUNUTFPU
      MABCFUSGHVBUIUJUK $.

    $( An associative cancellation law for groups.  (Contributed by Paul
       Chapman, 17-Apr-2009.)  (Revised by AV, 30-Aug-2021.) $)
    grpasscan2 $p |- ( ( G e. Grp /\ X e. B /\ Y e. B ) ->
                       ( ( X .+ ( N ` Y ) ) .+ Y ) = X ) $=
      ( cgrp wcel w3a cfv co c0g wceq simp1 simp2 grpinvcl 3adant2 simp3 grpass
      syl13anc eqid grplinv oveq2d grprid 3adant3 3eqtrd ) CJKZEAKZFAKZLZEFDMZB
      NFBNZEUNFBNZBNZECOMZBNZEUMUJUKUNAKZULUOUQPUJUKULQUJUKULRUJULUTUKACDFGISTU
      JUKULUAABCEUNFGHUBUCUMUPUREBUJULUPURPUKABCDFURGHURUDZIUETUFUJUKUSEPULABCE
      URGHVAUGUHUI $.
  $}

  ${
    grpidrcan.b $e |- B = ( Base ` G ) $.
    grpidrcan.p $e |- .+ = ( +g ` G ) $.
    grpidrcan.o $e |- .0. = ( 0g ` G ) $.
    $( If right adding an element of a group to an arbitrary element of the
       group results in this element, the added element is the identity element
       and vice versa.  (Contributed by AV, 15-Mar-2019.) $)
    grpidrcan $p |- ( ( G e. Grp /\ X e. B /\ Z e. B ) ->
                  ( ( X .+ Z ) = X <-> Z = .0. ) ) $=
      ( cgrp wcel w3a co wceq grprid 3adant3 eqeq2d wb simp1 simp3 simp2 bitr3d
      grpidcl 3ad2ant1 grplcan syl13anc ) CJKZDAKZFAKZLZDFBMZDEBMZNZUKDNFENZUJU
      LDUKUGUHULDNUIABCDEGHIOPQUJUGUIEAKZUHUMUNRUGUHUISUGUHUITUGUHUOUIACEGIUCUD
      UGUHUIUAABCFEDGHUEUFUB $.

    $( If left adding an element of a group to an arbitrary element of the
       group results in this element, the added element is the identity element
       and vice versa.  (Contributed by AV, 15-Mar-2019.) $)
    grpidlcan $p |- ( ( G e. Grp /\ X e. B /\ Z e. B ) ->
                  ( ( Z .+ X ) = X <-> Z = .0. ) ) $=
      ( cgrp wcel w3a co wceq grplid 3adant3 eqeq2d wb simp1 simp3 simp2 bitr3d
      grpidcl 3ad2ant1 grprcan syl13anc ) CJKZDAKZFAKZLZFDBMZEDBMZNZUKDNFENZUJU
      LDUKUGUHULDNUIABCDEGHIOPQUJUGUIEAKZUHUMUNRUGUHUISUGUHUITUGUHUOUIACEGIUCUD
      UGUHUIUAABCFEDGHUEUFUB $.
  $}

  ${
    $d x y B $.  $d x y G $.  $d x y N $.
    grpinvinv.b $e |- B = ( Base ` G ) $.
    grpinvinv.n $e |- N = ( invg ` G ) $.
    $( Double inverse law for groups.  Lemma 2.2.1(c) of [Herstein] p. 55.
       (Contributed by NM, 31-Mar-2014.) $)
    grpinvinv $p |- ( ( G e. Grp /\ X e. B ) -> ( N ` ( N ` X ) ) = X ) $=
      ( cgrp wcel wa cfv cplusg co wceq c0g grpinvcl eqid grprinv syldan eqtr4d
      grplinv wb simpl simpr grplcan syl13anc mpbid ) BGHZDAHZIZDCJZUJCJZBKJZLZ
      UJDULLZMZUKDMZUIUMBNJZUNUGUHUJAHZUMUQMABCDEFOZAULBCUJUQEULPZUQPZFQRAULBCD
      UQEUTVAFTSUIUGUKAHZUHURUOUPUAUGUHUBUGUHURVBUSABCUJEFORUGUHUCUSAULBUKDUJEU
      TUDUEUF $.

    $( The group inverse is its own inverse function.  (Contributed by Mario
       Carneiro, 14-Aug-2015.) $)
    grpinvcnv $p |- ( G e. Grp -> `' N = N ) $=
      ( vx vy cgrp wcel cv cfv cmpt ccnv wceq eqid grpinvcl wa wb eqcom feqmptd
      wf1o w3a cplusg co c0g grpinvid1 3com23 grpinvid2 bitr4d 3bitr4g f1ocnv2d
      3expb simprd grpinvf cnveqd 3eqtr4d ) BHIZFAFJZCKZLZMZGAGJZCKZLZCMCUQAAUT
      UAVAVDNUQFGAAUSVCUTUTOABCURDEPABCVBDEPUQURAIZVBAIZQQVCURNZUSVBNZURVCNVBUS
      NUQVEVFVGVHRUQVEVFUBVGVBURBUCKZUDBUEKZNZVHUQVFVEVGVKRAVIBCVBURVJDVIOZVJOZ
      EUFUGAVIBCURVBVJDVLVMEUHUIULURVCSVBUSSUJUKUMUQCUTUQFAACABCDEUNZTUOUQGAACV
      NTUP $.

    grpinv11.g $e |- ( ph -> G e. Grp ) $.
    ${
      grpinv11.x $e |- ( ph -> X e. B ) $.
      grpinv11.y $e |- ( ph -> Y e. B ) $.
      $( The group inverse is one-to-one.  (Contributed by NM, 22-Mar-2015.) $)
      grpinv11 $p |- ( ph -> ( ( N ` X ) = ( N ` Y ) <-> X = Y ) ) $=
        ( cfv wceq wa fveq2 adantl wcel grpinvinv syl2anc adantr cgrp 3eqtr3d
        ex impbid1 ) AEDLZFDLZMZEFMZAUGUHAUGNUEDLZUFDLZEFUGUIUJMAUEUFDOPAUIEMZU
        GACUAQZEBQUKIJBCDEGHRSTAUJFMZUGAULFBQUMIKBCDFGHRSTUBUCEFDOUD $.
    $}

    $( The group inverse is a one-to-one onto function.  (Contributed by NM,
       22-Oct-2014.)  (Proof shortened by Mario Carneiro, 14-Aug-2015.) $)
    grpinvf1o $p |- ( ph -> N : B -1-1-onto-> B ) $=
      ( wfn ccnv wf1o wf cgrp wcel grpinvf syl ffn wceq grpinvcnv fneq1d mpbird
      dff1o4 sylanbrc ) ADBHZDIZBHZBBDJABBDKZUCACLMZUFGBCDEFNOBBDPOZAUEUCUHABUD
      DAUGUDDQGBCDEFROSTBBDUAUB $.
  $}

  ${
    grpinvnzcl.b $e |- B = ( Base ` G ) $.
    grpinvnzcl.z $e |- .0. = ( 0g ` G ) $.
    grpinvnzcl.n $e |- N = ( invg ` G ) $.
    $( The inverse of a nonzero group element is not zero.  (Contributed by
       Stefan O'Rear, 27-Feb-2015.) $)
    grpinvnz $p |- ( ( G e. Grp /\ X e. B /\ X =/= .0. ) ->
        ( N ` X ) =/= .0. ) $=
      ( cgrp wcel wne cfv wceq fveq2 adantl grpinvinv adantr grpinvid ad2antrr
      wa 3eqtr3d ex necon3d 3impia ) BIJZDAJZDEKDCLZEKUEUFTZUGEDEUHUGEMZDEMUHUI
      TUGCLZECLZDEUIUJUKMUHUGECNOUHUJDMUIABCDFHPQUEUKEMUFUIBCEGHRSUAUBUCUD $.

    $( The inverse of a nonzero group element is a nonzero group element.
       (Contributed by Stefan O'Rear, 27-Feb-2015.) $)
    grpinvnzcl $p |- ( ( G e. Grp /\ X e. ( B \ { .0. } ) ) ->
        ( N ` X ) e. ( B \ { .0. } ) ) $=
      ( cgrp wcel csn cdif wa cfv wne eldifi grpinvcl sylan2 eldifsn grpinvnz
      3expb sylan2b sylanbrc ) BIJZDAEKZLZJZMDCNZAJZUHEOZUHUFJUGUDDAJZUIDAUEPAB
      CDFHQRUGUDUKDEOZMUJDAESUDUKULUJABCDEFGHTUAUBUHAESUC $.
  $}

  ${
    grpsubinv.b $e |- B = ( Base ` G ) $.
    grpsubinv.p $e |- .+ = ( +g ` G ) $.
    grpsubinv.m $e |- .- = ( -g ` G ) $.
    grpsubinv.n $e |- N = ( invg ` G ) $.
    grpsubinv.g $e |- ( ph -> G e. Grp ) $.
    grpsubinv.x $e |- ( ph -> X e. B ) $.
    grpsubinv.y $e |- ( ph -> Y e. B ) $.
    $( Subtraction of an inverse.  (Contributed by NM, 7-Apr-2015.) $)
    grpsubinv $p |- ( ph -> ( X .- ( N ` Y ) ) = ( X .+ Y ) ) $=
      ( cfv co wcel wceq syl2anc cgrp grpinvcl grpsubval grpinvinv oveq2d eqtrd
      ) AGHFPZEQZGUGFPZCQZGHCQAGBRUGBRZUHUJSNADUARZHBRZUKMOBDFHILUBTBCDFEGUGIJL
      KUCTAUIHGCAULUMUIHSMOBDFHILUDTUEUF $.
  $}

  ${
    $d x y B $.  $d x y G $.  $d x y .+ $.  $d x y X $.
    grplmulf1o.b $e |- B = ( Base ` G ) $.
    grplmulf1o.p $e |- .+ = ( +g ` G ) $.
    grplmulf1o.n $e |- F = ( x e. B |-> ( X .+ x ) ) $.
    $( Left multiplication by a group element is a bijection on any group.
       (Contributed by Mario Carneiro, 17-Jan-2015.) $)
    grplmulf1o $p |- ( ( G e. Grp /\ X e. B ) -> F : B -1-1-onto-> B ) $=
      ( vy wcel wa cv co cfv grpcl 3expa eqid wceq adantr cgrp cminusg grpinvcl
      simpl jca sylan eqcom wb adantrl simprl simplr grplcan c0g grprinv oveq1d
      syl13anc simprr grpass grplid ad2ant2rl 3eqtr3d eqeq1d bitr3d syl5bb
      f1o2d ) EUAKZFBKZLZAJBBFAMZCNZFEUBOZOZJMZCNZDIVFVGVIBKZVJBKBCEFVIGHPQVHVF
      VLBKZLVMBKZVNBKZVHVFVPVFVGUDZBEVKFGVKRZUCZUEVFVPVQVRBCEVLVMGHPQUFZVIVNSVN
      VISZVHVOVQLZLZVMVJSZVIVNUGWEFVNCNZVJSZWCWFWEVFVRVOVGWHWCUHVHVFWDVSTZVHVQV
      RVOWBUIVHVOVQUJVFVGWDUKZBCEVNVIFGHULUPWEWGVMVJWEFVLCNZVMCNZEUMOZVMCNZWGVM
      WEWKWMVMCVHWKWMSWDBCEVKFWMGHWMRZVTUNTUOWEVFVGVPVQWLWGSWIWJVHVPWDWATVHVOVQ
      UQBCEFVLVMGHURUPVFVQWNVMSVGVOBCEVMWMGHWOUSUTVAVBVCVDVE $.
  $}

  ${
    $d x y B $.  $d x y K $.  $d x y L $.  $d x y ph $.
    grpinvpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    grpinvpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    grpinvpropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    $( If two structures have the same group components (properties), they have
       the same group inversion function.  (Contributed by Mario Carneiro,
       27-Nov-2014.)  (Revised by Stefan O'Rear, 21-Mar-2015.) $)
    grpinvpropd $p |- ( ph -> ( invg ` K ) = ( invg ` L ) ) $=
      ( cbs cfv cv cplusg co c0g wceq crio cmpt wa eqid cminusg wcel grpidpropd
      adantr eqeq12d anass1rs riotabidva mpteq2dva riotaeqdv 3eqtr3d grpinvfval
      wb mpteq12dv 3eqtr4g ) ACEJKZBLZCLZEMKZNZEOKZPZBUOQZRZCFJKZUPUQFMKZNZFOKZ
      PZBVDQZRZEUAKZFUAKZACDVABDQZRCDVHBDQZRVCVJACDVMVNAUQDUBZSVAVHBDAUPDUBZVOV
      AVHULAVPVOSZSUSVFUTVGIAUTVGPVQABCDEFGHIUCUDUEUFUGUHACDVMUOVBGAVABDUOGUIUM
      ACDVNVDVIHAVHBDVDHUIUMUJCBUOUREVKUTUOTURTUTTVKTUKCBVDVEFVLVGVDTVETVGTVLTU
      KUN $.
  $}

  ${
    $d B x y $.  $d M x y $.  $d S x y $.
    grpidssd.m $e |- ( ph -> M e. Grp ) $.
    grpidssd.s $e |- ( ph -> S e. Grp ) $.
    grpidssd.b $e |- B = ( Base ` S ) $.
    grpidssd.c $e |- ( ph -> B C_ ( Base ` M ) ) $.
    grpidssd.o $e |- ( ph -> A. x e. B A. y e. B
                             ( x ( +g ` M ) y ) = ( x ( +g ` S ) y ) ) $.
    $( If the base set of a group is contained in the base set of another
       group, and the group operation of the group is the restriction of the
       group operation of the other group to its base set, then both groups
       have the same identity element.  (Contributed by AV, 15-Mar-2019.) $)
    grpidssd $p |- ( ph -> ( 0g ` M ) = ( 0g ` S ) ) $=
      ( c0g cfv cplusg co wceq wcel cv wral eqid cgrp grpidcl syl oveq1 eqeq12d
      oveq2 rspc2va syl21anc grplid syl2anc eqtrd cbs wb sseldd grpidlcan mpbid
      syl3anc eqcomd ) AELMZFLMZAUSUSFNMZOZUSPZUSUTPZAVBUSUSENMZOZUSAUSDQZVGBRZ
      CRZVAOZVHVIVEOZPZCDSBDSVBVFPZAEUAQZVGHDEUSIUSTZUBUCZVPKVLVMUSVIVAOZUSVIVE
      OZPBCUSUSDDVHUSPVJVQVKVRVHUSVIVAUDVHUSVIVEUDUEVIUSPVQVBVRVFVIUSUSVAUFVIUS
      USVEUFUEUGUHAVNVGVFUSPHVPDVEEUSUSIVETVOUIUJUKAFUAQUSFULMZQZVTVCVDUMGADVSU
      SJVPUNZWAVSVAFUSUTUSVSTVATUTTUOUQUPUR $.

    $d X x y $.
    $( If the base set of a group is contained in the base set of another
       group, and the group operation of the group is the restriction of the
       group operation of the other group to its base set, then the elements of
       the first group have the same inverses in both groups.  (Contributed by
       AV, 15-Mar-2019.) $)
    grpinvssd $p |- ( ph -> ( X e. B
                     -> ( ( invg ` S ) ` X ) = ( ( invg ` M ) ` X ) ) ) $=
      ( wcel cminusg cfv wceq cplusg co eqid adantr wa wral cgrp grpinvcl sylan
      c0g simpr oveq1 eqeq12d oveq2 rspc2va syl21anc grplinv cbs sselda syl2anc
      cv grpidssd eqtr2d 3eqtrd wb wss sseldd grprcan syl13anc mpbid ex ) AGDMZ
      GENOZOZGFNOZOZPZAVHUAZVJGFQOZRZVLGVORZPZVMVNVPVJGEQOZRZEUFOZVQVNVJDMZVHBU
      QZCUQZVORZWCWDVSRZPZCDUBBDUBZVPVTPZAEUCMZVHWBIDEVIGJVISZUDUEZAVHUGAWHVHLT
      WGWIVJWDVORZVJWDVSRZPBCVJGDDWCVJPWEWMWFWNWCVJWDVOUHWCVJWDVSUHUIWDGPWMVPWN
      VTWDGVJVOUJWDGVJVSUJUIUKULAWJVHVTWAPIDVSEVIGWAJVSSWASWKUMUEVNVQFUFOZWAVNF
      UCMZGFUNOZMZVQWOPAWPVHHTZADWQGKUOZWQVOFVKGWOWQSZVOSZWOSVKSZUMUPAWOWAPVHAB
      CDEFHIJKLURTUSUTVNWPVJWQMVLWQMZWRVRVMVAWSVNDWQVJADWQVBVHKTWLVCVNWPWRXDWSW
      TWQFVKGXAXCUDUPWTWQVOFVJVLGXAXBVDVEVFVG $.
  $}

  ${
    grpinvadd.b $e |- B = ( Base ` G ) $.
    grpinvadd.p $e |- .+ = ( +g ` G ) $.
    grpinvadd.n $e |- N = ( invg ` G ) $.
    $( The inverse of the group operation reverses the arguments.  Lemma
       2.2.1(d) of [Herstein] p. 55.  (Contributed by NM, 27-Oct-2006.) $)
    grpinvadd $p |- ( ( G e. Grp /\ X e. B /\ Y e. B ) ->
                   ( N ` ( X .+ Y ) ) = ( ( N ` Y ) .+ ( N ` X ) ) ) $=
      ( wcel co cfv wceq grpinvcl 3adant2 3adant3 grpcl syl3anc grpass syl13anc
      cgrp w3a c0g simp1 simp2 simp3 eqid grprinv oveq1d grplid syl2anc 3eqtr3d
      oveq2d 3eqtrd wb grpinvid1 mpbird ) CUAJZEAJZFAJZUBZEFBKZDLFDLZEDLZBKZMZV
      BVEBKZCUCLZMZVAVGEFVEBKZBKZEVDBKZVHVAURUSUTVEAJZVGVKMURUSUTUDZURUSUTUEURU
      SUTUFZVAURVCAJZVDAJZVMVNURUTVPUSACDFGINOZURUSVQUTACDEGINPZABCVCVDGHQRZABC
      EFVEGHSTVAVJVDEBVAFVCBKZVDBKZVHVDBKZVJVDVAWAVHVDBURUTWAVHMUSABCDFVHGHVHUG
      ZIUHOUIVAURUTVPVQWBVJMVNVOVRVSABCFVCVDGHSTVAURVQWCVDMVNVSABCVDVHGHWDUJUKU
      LUMURUSVLVHMUTABCDEVHGHWDIUHPUNVAURVBAJVMVFVIUOVNABCEFGHQVTABCDVBVEVHGHWD
      IUPRUQ $.
  $}

  ${
    $d x y B $.  $d x y G $.
    grpsubcl.b $e |- B = ( Base ` G ) $.
    grpsubcl.m $e |- .- = ( -g ` G ) $.
    $( Functionality of group subtraction.  (Contributed by Mario Carneiro,
       9-Sep-2014.) $)
    grpsubf $p |- ( G e. Grp -> .- : ( B X. B ) --> B ) $=
      ( vx vy cgrp wcel cv cminusg cfv cplusg co wral cxp eqid grpinvcl 3adant2
      wf grpcl syld3an3 3expb ralrimivva grpsubfval fmpt2 sylib ) BHIZFJZGJZBKL
      ZLZBMLZNZAIZGAOFAOAAPACTUHUOFGAAUHUIAIZUJAIZUOUHUPUQULAIZUOUHUQURUPABUKUJ
      DUKQZRSAUMBUIULDUMQZUAUBUCUDFGAAUNACFGAUMBUKCDUTUSEUEUFUG $.

    $( Closure of group subtraction.  (Contributed by NM, 31-Mar-2014.) $)
    grpsubcl $p |- ( ( G e. Grp /\ X e. B /\ Y e. B ) -> ( X .- Y ) e. B ) $=
      ( cgrp wcel cxp wf co grpsubf fovrn syl3an1 ) BHIAAJACKDAIEAIDECLAIABCFGM
      DEAAACNO $.

    $( Right cancellation law for group subtraction.  (Contributed by NM,
       31-Mar-2014.) $)
    grpsubrcan $p |- ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
                  ( ( X .- Z ) = ( Y .- Z ) <-> X = Y ) ) $=
      ( cgrp wcel w3a wa co wceq cminusg cfv cplusg wb eqid grpsubval 3ad2antr3
      3adant2 3adant1 eqeq12d adantl simpl simpr1 simpr2 grpinvcl grprcan bitrd
      syl13anc ) BIJZDAJZEAJZFAJZKZLZDFCMZEFCMZNZDFBOPZPZBQPZMZEVCVDMZNZDENZUQV
      AVGRUMUQUSVEUTVFUNUPUSVENUOAVDBVBCDFGVDSZVBSZHTUBUOUPUTVFNUNAVDBVBCEFGVIV
      JHTUCUDUEURUMUNUOVCAJZVGVHRUMUQUFUMUNUOUPUGUMUNUOUPUHUMUNUPVKUOABVBFGVJUI
      UAAVDBDEVCGVIUJULUK $.

    grpinvsub.n $e |- N = ( invg ` G ) $.
    $( Inverse of a group subtraction.  (Contributed by NM, 9-Sep-2014.) $)
    grpinvsub $p |- ( ( G e. Grp /\ X e. B /\ Y e. B ) ->
                      ( N ` ( X .- Y ) ) = ( Y .- X ) ) $=
      ( cgrp wcel w3a cfv cplusg co wceq grpinvcl 3adant2 grpsubval 3adant1
      eqid grpinvadd syld3an3 grpinvinv oveq1d eqtrd fveq2d ancoms 3eqtr4d ) BJ
      KZEAKZFAKZLZEFDMZBNMZOZDMZFEDMZUOOZEFCOZDMFECOZUMUQUNDMZURUOOZUSUJUKULUNA
      KZUQVCPUJULVDUKABDFGIQRAUOBDEUNGUOUAZIUBUCUMVBFURUOUJULVBFPUKABDFGIUDRUEU
      FUMUTUPDUKULUTUPPUJAUOBDCEFGVEIHSTUGUKULVAUSPZUJULUKVFAUOBDCFEGVEIHSUHTUI
      $.

    grpinvval2.z $e |- .0. = ( 0g ` G ) $.
    $( A ~ df-neg -like equation for inverse in terms of group subtraction.
       (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    grpinvval2 $p |- ( ( G e. Grp /\ X e. B ) ->
                      ( N ` X ) = ( .0. .- X ) ) $=
      ( cgrp wcel wa co cfv cplusg wceq grpidcl eqid grpsubval grpinvcl grplid
      sylan syldan eqtr2d ) BKLZEALZMFECNZFEDOZBPOZNZUIUFFALUGUHUKQABFGJRAUJBDC
      FEGUJSZIHTUCUFUGUIALUKUIQABDEGIUAAUJBUIFGULJUBUDUE $.
  $}

  ${
    grpsubid.b $e |- B = ( Base ` G ) $.
    grpsubid.o $e |- .0. = ( 0g ` G ) $.
    grpsubid.m $e |- .- = ( -g ` G ) $.
    $( Subtraction of a group element from itself.  (Contributed by NM,
       31-Mar-2014.) $)
    grpsubid $p |- ( ( G e. Grp /\ X e. B ) -> ( X .- X ) = .0. ) $=
      ( cgrp wcel wa co cminusg cfv cplusg wceq eqid grpsubval anidms adantl
      grprinv eqtrd ) BIJZDAJZKDDCLZDDBMNZNBONZLZEUDUEUHPZUCUDUIAUGBUFCDDFUGQZU
      FQZHRSTAUGBUFDEFUJGUKUAUB $.

    $( Subtraction of the identity from a group element.  (Contributed by Mario
       Carneiro, 14-Jan-2015.) $)
    grpsubid1 $p |- ( ( G e. Grp /\ X e. B ) -> ( X .- .0. ) = X ) $=
      ( cgrp wcel wa co cminusg cfv cplusg wceq id grpidcl eqid grpsubval
      syl2anr grpinvid adantr oveq2d grprid 3eqtrd ) BIJZDAJZKZDECLZDEBMNZNZBON
      ZLZDEUMLDUHUHEAJUJUNPUGUHQABEFGRAUMBUKCDEFUMSZUKSZHTUAUIULEDUMUGULEPUHBUK
      EGUPUBUCUDAUMBDEFUOGUEUF $.

    $( If the difference between two group elements is zero, they are equal.
       ( ~ subeq0 analog.)  (Contributed by NM, 31-Mar-2014.) $)
    grpsubeq0 $p |- ( ( G e. Grp /\ X e. B /\ Y e. B )
                  -> ( ( X .- Y ) = .0. <-> X = Y ) ) $=
      ( cgrp wcel w3a co wceq cminusg cfv cplusg eqid eqeq1d 3adant2 3adant1 wb
      grpsubval simp1 grpinvcl simp2 grpinvid2 syl3anc grpinvinv syl6bb 3bitr2d
      eqcom ) BJKZDAKZEAKZLZDECMZFNDEBOPZPZBQPZMZFNZUSURPZDNZDENZUPUQVAFUNUOUQV
      ANUMAUTBURCDEGUTRZURRZIUCUASUPUMUSAKZUNVDVBUBUMUNUOUDUMUOVHUNABUREGVGUETU
      MUNUOUFAUTBURUSDFGVFHVGUGUHUPVDEDNVEUPVCEDUMUOVCENUNABUREGVGUITSEDULUJUK
      $.

    grpsubadd0sub.p $e |- .+ = ( +g ` G ) $.
    $( Subtraction expressed as addition of the difference of the identity
       element and the subtrahend.  (Contributed by AV, 9-Nov-2019.) $)
    grpsubadd0sub $p |- ( ( G e. Grp /\ X e. B /\ Y e. B )
                          -> ( X .- Y ) = ( X .+ ( .0. .- Y ) ) ) $=
      ( cgrp wcel w3a co cminusg cfv wceq eqid grpsubval 3adant1 3adant2 oveq2d
      grpinvval2 eqtrd ) CLMZEAMZFAMZNZEFDOZEFCPQZQZBOZEGFDOZBOUGUHUJUMRUFABCUK
      DEFHKUKSZJTUAUIULUNEBUFUHULUNRUGACDUKFGHJUOIUDUBUCUE $.
  $}

  ${
    grpsubadd.b $e |- B = ( Base ` G ) $.
    grpsubadd.p $e |- .+ = ( +g ` G ) $.
    grpsubadd.m $e |- .- = ( -g ` G ) $.
    $( Relationship between group subtraction and addition.  (Contributed by
       NM, 31-Mar-2014.) $)
    grpsubadd $p |- ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) )
          -> ( ( X .- Y ) = Z <-> ( Z .+ Y ) = X ) ) $=
      ( cgrp wcel w3a co wceq cfv eqid eqeq1d 3ad2antr2 syl13anc cminusg adantl
      wa grpsubval 3adant3 wb simpl simpr1 grpinvcl grpcl syl3anc simpr3 simpr2
      grprcan c0g grpass grplinv oveq2d grprid 3ad2antr1 3eqtrd 3bitr2d syl6bb
      eqcom ) CKLZEALZFALZGALZMZUCZEFDNZGOZEGFBNZOZVMEOVJVLEFCUAPZPZBNZGOZVQFBN
      ZVMOZVNVJVKVQGVIVKVQOZVEVFVGWAVHABCVODEFHIVOQZJUDUEUBRVJVEVQALZVHVGVTVRUF
      VEVIUGZVJVEVFVPALZWCWDVEVFVGVHUHZVEVFVGWEVHACVOFHWBUISZABCEVPHIUJUKVEVFVG
      VHULVEVFVGVHUMZABCVQGFHIUNTVJVSEVMVJVSEVPFBNZBNZECUOPZBNZEVJVEVFWEVGVSWJO
      WDWFWGWHABCEVPFHIUPTVJWIWKEBVEVFVGWIWKOVHABCVOFWKHIWKQZWBUQSURVEVGVFWLEOV
      HABCEWKHIWMUSUTVARVBEVMVDVC $.

    $( Double group subtraction.  (Contributed by NM, 24-Feb-2008.)  (Revised
       by Mario Carneiro, 2-Dec-2014.) $)
    grpsubsub $p |- ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
         ( X .- ( Y .- Z ) ) = ( X .+ ( Z .- Y ) ) ) $=
      ( cgrp wcel w3a wa co cminusg cfv wceq simpr1 3adant3r1 grpsubval syl2anc
      grpsubcl eqid grpinvsub oveq2d eqtrd ) CKLZEALZFALZGALZMNZEFGDOZDOZEUMCPQ
      ZQZBOZEGFDOZBOULUIUMALZUNUQRUHUIUJUKSUHUJUKUSUIACDFGHJUCTABCUODEUMHIUOUDZ
      JUAUBULUPUREBUHUJUKUPURRUIACDUOFGHJUTUETUFUG $.

    $( Associative-type law for group subtraction and addition.  (Contributed
       by NM, 16-Apr-2014.) $)
    grpaddsubass $p |- ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
         ( ( X .+ Y ) .- Z ) = ( X .+ ( Y .- Z ) ) ) $=
      ( cgrp wcel w3a wa co cminusg cfv wceq grpsubval syl2anc simpr1 3ad2antr3
      simpl simpr2 eqid grpinvcl grpass syl13anc grpcl 3adant3r3 simpr3 3eqtr4d
      oveq2d ) CKLZEALZFALZGALZMZNZEFBOZGCPQZQZBOZEFVBBOZBOZUTGDOZEFGDOZBOUSUNU
      OUPVBALZVCVERUNURUCUNUOUPUQUAUNUOUPUQUDZUNUOUQVHUPACVAGHVAUEZUFUBABCEFVBH
      IUGUHUSUTALZUQVFVCRUNUOUPVKUQABCEFHIUIUJUNUOUPUQUKZABCVADUTGHIVJJSTUSVGVD
      EBUSUPUQVGVDRVIVLABCVADFGHIVJJSTUMUL $.

    $( Cancellation law for subtraction ( ~ pncan analog).  (Contributed by NM,
       16-Apr-2014.) $)
    grppncan $p |- ( ( G e. Grp /\ X e. B /\ Y e. B ) ->
        ( ( X .+ Y ) .- Y ) = X ) $=
      ( cgrp wcel w3a co c0g cfv wceq simp1 simp2 simp3 grpaddsubass wa 3adant2
      syl13anc eqid grpsubid oveq2d grprid 3adant3 3eqtrd ) CJKZEAKZFAKZLZEFBMF
      DMZEFFDMZBMZECNOZBMZEUMUJUKULULUNUPPUJUKULQUJUKULRUJUKULSZUSABCDEFFGHITUC
      UJULUPURPUKUJULUAUOUQEBACDFUQGUQUDZIUEUFUBUJUKUREPULABCEUQGHUTUGUHUI $.

    $( Cancellation law for subtraction ( ~ npcan analog).  (Contributed by NM,
       19-Apr-2014.) $)
    grpnpcan $p |- ( ( G e. Grp /\ X e. B /\ Y e. B ) ->
        ( ( X .- Y ) .+ Y ) = X ) $=
      ( cgrp wcel w3a cminusg cfv co wceq eqid 3adant2 syld3an3 grpsubval grpcl
      grpinvcl syl2anc grppncan 3adant1 eqcomd grpinvinv oveq12d 3eqtr3rd ) CJK
      ZEAKZFAKZLZEFCMNZNZBOZUODOZUPUOUNNZBOZEEFDOZFBOUMUPAKZUOAKZUQUSPUJUKULVBV
      AUJULVBUKACUNFGUNQZUBRZABCEUOGHUASVDABCUNDUPUOGHVCITUCUJUKULVBUQEPVDABCDE
      UOGHIUDSUMUPUTURFBUMUTUPUKULUTUPPUJABCUNDEFGHVCITUEUFUJULURFPUKACUNFGVCUG
      RUHUI $.

    $( Double group subtraction ( ~ subsub4 analog).  (Contributed by Mario
       Carneiro, 2-Dec-2014.) $)
    grpsubsub4 $p |- ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
         ( ( X .- Y ) .- Z ) = ( X .- ( Z .+ Y ) ) ) $=
      ( cgrp wcel w3a co wceq grpsubcl 3adant3r3 grpnpcan syl3anc syl13anc wa
      simpl simpr3 oveq1d simpr2 grpass wb simpr1 grpcl grpsubadd mpbird eqcomd
      3eqtr3d ) CKLZEALZFALZGALZMZUAZEGFBNZDNZEFDNZGDNZUSVAVCOZVCUTBNZEOZUSVCGB
      NZFBNZVBFBNZVEEUSVGVBFBUSUNVBALZUQVGVBOUNURUBZUNUOUPVJUQACDEFHJPQZUNUOUPU
      QUCZABCDVBGHIJRSUDUSUNVCALZUQUPVHVEOVKUSUNVJUQVNVKVLVMACDVBGHJPSZVMUNUOUP
      UQUEZABCVCGFHIUFTUNUOUPVIEOUQABCDEFHIJRQUMUSUNUOUTALZVNVDVFUGVKUNUOUPUQUH
      USUNUQUPVQVKVMVPABCGFHIUISVOABCDEUTVCHIJUJTUKUL $.

    $( Cancellation law for mixed addition and subtraction.  ( ~ pnpcan2
       analog.)  (Contributed by NM, 15-Feb-2008.)  (Revised by Mario Carneiro,
       2-Dec-2014.) $)
    grppnpcan2 $p |- ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
         ( ( X .+ Z ) .- ( Y .+ Z ) ) = ( X .- Y ) ) $=
      ( cgrp wcel w3a wa co wceq simpl grpcl 3adant3r2 simpr3 simpr2 grpsubsub4
      syl13anc grppncan oveq1d eqtr3d ) CKLZEALZFALZGALZMZNZEGBOZGDOZFDOZUMFGBO
      DOZEFDOULUGUMALZUJUIUOUPPUGUKQUGUHUJUQUIABCEGHIRSUGUHUIUJTUGUHUIUJUAABCDU
      MGFHIJUBUCULUNEFDUGUHUJUNEPUIABCDEGHIJUDSUEUF $.

    $( Cancellation law for group subtraction.  ( ~ npncan analog.)
       (Contributed by NM, 15-Feb-2008.)  (Revised by Mario Carneiro,
       2-Dec-2014.) $)
    grpnpncan $p |- ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
         ( ( X .- Y ) .+ ( Y .- Z ) ) = ( X .- Z ) ) $=
      ( cgrp wcel w3a wa co wceq simpl grpsubcl 3adant3r3 simpr2 simpr3 oveq1d
      grpaddsubass syl13anc grpnpcan eqtr3d ) CKLZEALZFALZGALZMZNZEFDOZFBOZGDOZ
      UMFGDOBOZEGDOULUGUMALZUIUJUOUPPUGUKQUGUHUIUQUJACDEFHJRSUGUHUIUJTUGUHUIUJU
      AABCDUMFGHIJUCUDULUNEGDUGUHUIUNEPUJABCDEFHIJUESUBUF $.

    grpnpncan0.0 $e |- .0. = ( 0g ` G ) $.
    $( Cancellation law for group subtraction ( ~ npncan2 analog).
       (Contributed by AV, 24-Nov-2019.) $)
    grpnpncan0 $p |- ( ( G e. Grp /\ ( X e. B /\ Y e. B ) )
                       -> ( ( X .- Y ) .+ ( Y .- X ) ) = .0. ) $=
      ( cgrp wcel wa co wceq simpl simprl simprr grpnpncan syl13anc grpsubid
      adantrr eqtrd ) CLMZEAMZFAMZNZNZEFDOFEDOBOZEEDOZGUIUEUFUGUFUJUKPUEUHQUEUF
      UGRZUEUFUGSULABCDEFEHIJTUAUEUFUKGPUGACDEGHKJUBUCUD $.
  $}

  ${
    grpnnncan2.b $e |- B = ( Base ` G ) $.
    grpnnncan2.m $e |- .- = ( -g ` G ) $.
    $( Cancellation law for group subtraction.  ( ~ nnncan2 analog.)
       (Contributed by NM, 15-Feb-2008.)  (Revised by Mario Carneiro,
       2-Dec-2014.) $)
    grpnnncan2 $p |- ( ( G e. Grp /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
         ( ( X .- Z ) .- ( Y .- Z ) ) = ( X .- Y ) ) $=
      ( cgrp wcel w3a wa co cplusg cfv wceq simpl simpr1 simpr3 3adant3r1 eqtrd
      grpsubcl eqid grpsubsub4 syl13anc grpnpcan oveq2d ) BIJZDAJZEAJZFAJZKZLZD
      FCMEFCMZCMZDUNFBNOZMZCMZDECMUMUHUIUKUNAJZUOURPUHULQUHUIUJUKRUHUIUJUKSUHUJ
      UKUSUIABCEFGHUBTAUPBCDFUNGUPUCZHUDUEUMUQEDCUHUJUKUQEPUIAUPBCEFGUTHUFTUGUA
      $.
  $}

  ${
    $d B a i l r u w x y z $.  $d G a i l r u w x y z $.
    $d .+ a i l r u w x y z $.
    dfgrp3.b $e |- B = ( Base ` G ) $.
    dfgrp3.p $e |- .+ = ( +g ` G ) $.
    $( Lemma for ~ dfgrp3 .  (Contributed by AV, 28-Aug-2021.) $)
    dfgrp3lem $p |- ( ( G e. SGrp /\ B =/= (/) /\ A. x e. B A. y e. B
                                     ( E. l e. B ( l .+ x ) = y
                                    /\ E. r e. B ( x .+ r ) = y ) )
                     -> E. u e. B A. a e. B ( ( u .+ a ) = a
                                             /\ E. i e. B ( i .+ a ) = u ) ) $=
      ( cv co wceq wrex wa weq eqeq1d rexbidv vw vz csgrp wcel wne wral w3a wex
      c0 simp2 n0 sylib oveq2 oveq1 anbi12d ralbidv rspcv rspcva cbvrexv biimpi
      wi eqeq2 adantr syl ex syldc 3ad2ant3 rspc2va simprd expcom impl ad2ant2r
      imp simpll1 simplr simpllr simprr sgrpass simprl oveq1d eqtr3d anassrs id
      syl13anc eqeq12d syl5ibcom rexlimdva syl5bi adantrl simpld com12 adantllr
      mpd ancoms adantrr jca expr ralrimdva reximdva exlimddv ) GUCUDZDUIUEZJMZ
      AMZENZBMZOZJDPZXDHMZENZXFOZHDPZQZBDUFZADUFZUGZUAMZDUDZCMZIMZENZXTOZFMZXTE
      NZXSOZFDPZQZIDUFZCDPZUAXPXBXRUAUHXAXBXOUJUADUKULXPXRQZXSXQENZXQOZCDPZYIXP
      XRYMXOXAXRYMVAXBXRXOXCXQENZXFOZJDPZXQXIENZXFOZHDPZQZBDUFZYMXNUUAAXQDAUARZ
      XMYTBDUUBXHYPXLYSUUBXGYOJDUUBXEYNXFXDXQXCEUMSTUUBXKYRHDUUBXJYQXFXDXQXIEUN
      STUOZUPUQXRUUAYMXRUUAQYNXQOZJDPZYQXQOZHDPZQZYMYTUUHBXQDBUARZYPUUEYSUUGUUI
      YOUUDJDXFXQYNVBTUUIYRUUFHDXFXQYQVBTUOURUUEYMUUGUUEYMUUDYLJCDJCRYNYKXQXCXS
      XQEUNSUSUTVCVDVEVFVGVMYJYLYHCDYJXSDUDZQZYLYGIDUUKXTDUDZYLYGUUKUULYLQQZYBY
      FUUMYQXTOZHDPZYBYJUULUUOUUJYLXPXRUULUUOXOXAXRUULQZUUOVAXBUUPXOUUOUUPXOQYN
      XTOZJDPZUUOXMUURUUOQYTABXQXTDDUUCBIRZYPUURYSUUOUUSYOUUQJDXFXTYNVBTUUSYRUU
      NHDXFXTYQVBTUOVHVIVJVGVKVLUUKYLUUOYBVAUULUUOXQUBMZENZXTOZUBDPUUKYLQZYBUUN
      UVBHUBDHUBRYQUVAXTXIUUTXQEUMSUSUVCUVBYBUBDUVCUUTDUDZQXSUVAENZUVAOZUVBYBUU
      KYLUVDUVFUUKYLUVDQZQZYKUUTENZUVEUVAUVHXAUUJXRUVDUVIUVEOUUKXAUVGXAXBXOXRUU
      JVNVCYJUUJUVGVOXPXRUUJUVGVPUUKYLUVDVQDGXSXQEUUTKLVRWDUVHYKXQUUTEUUKYLUVDV
      SVTWAWBUVBUVEYAUVAXTUVAXTXSEUMUVBWCWEWFWGWHWIWMUUKUULYFYLXPUUJUULYFXRXPUU
      JQUULQXCXTENZXSOZJDPZYFXPUUJUULUVLXOXAUUJUULQZUVLVAXBUVMXOUVLUULUUJXOUVLV
      AUULUUJQZXOUVLUVNXOQUVLXTXIENZXSOZHDPZXMUVLUVQQUVJXFOZJDPZUVOXFOZHDPZQABX
      TXSDDAIRZXHUVSXLUWAUWBXGUVRJDUWBXEUVJXFXDXTXCEUMSTUWBXKUVTHDUWBXJUVOXFXDX
      TXIEUNSTUOBCRZUVSUVLUWAUVQUWCUVRUVKJDXFXSUVJVBTUWCUVTUVPHDXFXSUVOVBTUOVHW
      JVEWNWKVGVKUVKYEJFDJFRUVJYDXSXCYCXTEUNSUSULWLWOWPWQWRWSWMWT $.

    $( Alternate definition of a group as semigroup (with at least one element)
       which is also a quasigroup, i.e. a magma in which solutions ` x ` and
       ` y ` of the equations ` ( a .+ x ) = b ` and ` ( x .+ a ) = b ` exist.
       Theorem 3.2 of [Bruck] p. 28.  (Contributed by AV, 28-Aug-2021.) $)
    dfgrp3 $p |- ( G e. Grp <-> ( G e. SGrp /\ B =/= (/) /\ A. x e. B A. y e. B
                ( E. l e. B ( l .+ x ) = y /\ E. r e. B ( x .+ r ) = y ) ) ) $=
      ( vu va vi wcel cv co wceq wrex wa cfv adantl cgrp csgrp wne wral grpsgrp
      c0 w3a grpbn0 csg simpl simpr eqid grpsubcl syl3anc oveq1 eqeq1d grpnpcan
      rspcedvd cminusg grpinvcl adantrr grpcl oveq2 c0g grprinv oveq1d syl13anc
      wb grpass cmnd grpmnd mndlid syl2an 3eqtr3d jca ralrimivva 3jca dfgrp3lem
      simp1 dfgrp2 sylanbrc impbii ) EUAMZEUBMZCUFUCZGNZANZDOZBNZPZGCQZWGFNZDOZ
      WIPZFCQZRZBCUDACUDZUGZWCWDWEWQEUECEHUHWCWPABCCWCWGCMZWICMZRZRZWKWOXBWJWIW
      GEUISZOZWGDOZWIPZGXDCXBWCWTWSXDCMWCXAUJZXAWTWCWSWTUKZTZXAWSWCWSWTUJTZCEXC
      WIWGHXCULZUMUNWFXDPZWJXFVHXBXLWHXEWIWFXDWGDUOUPTXBWCWTWSXFXGXIXJCDEXCWIWG
      HIXKUQUNURXBWNWGWGEUSSZSZWIDOZDOZWIPZFXOCXBWCXNCMZWTXOCMXGWCWSXRWTCEXMWGH
      XMULZUTVAZXICDEXNWIHIVBUNWLXOPZWNXQVHXBYAWMXPWIWLXOWGDVCUPTXBWGXNDOZWIDOZ
      EVDSZWIDOZXPWIXBYBYDWIDWCWSYBYDPWTCDEXMWGYDHIYDULZXSVEVAVFXBWCWSXRWTYCXPP
      XGXJXTXICDEWGXNWIHIVIVGWCEVJMWTYEWIPXAEVKXHCDEWIYDHIYFVLVMVNURVOVPVQWRWDJ
      NZKNZDOYHPLNYHDOYGPLCQRKCUDJCQWCWDWEWQVSABJCDLEFKGHIVRKCDLJEHIVTWAWB $.

    $( Alternate definition of a group as a set with a closed, associative
       operation, for which solutions ` x ` and ` y ` of the equations
       ` ( a .+ x ) = b ` and ` ( x .+ a ) = b ` exist.  Exercise 1 of
       [Herstein] p. 57.  (Contributed by NM, 5-Dec-2006.)  (Revised by AV,
       28-Aug-2021.) $)
    dfgrp3e $p |- ( G e. Grp <-> ( B =/= (/)
                      /\ A. x e. B A. y e. B ( ( x .+ y ) e. B
                         /\ A. z e. B ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) )
                         /\ ( E. l e. B ( l .+ x ) = y
                              /\ E. r e. B ( x .+ r ) = y ) ) ) ) $=
      ( va wcel cv co wceq wrex wa wral adantr simpr cgrp csgrp c0 dfgrp3 simp2
      wne w3a wi cmgm sgrpmgm mgmcl syl3anc sgrpass 3anassrs ralrimiva ralimdva
      3jca ex a1d 3imp jca wex n0 3simpa 2ralimi issgrpn0 syl5ibr exlimiv sylbi
      imp simpl simp3 adantl impbii bitri ) FUALFUBLZDUCUFZHMAMZENBMZOHDPVRGMEN
      VSOGDPQZBDRZADRZUGZVQVRVSENZDLZWDCMZENVRVSWFENENOZCDRZVTUGZBDRZADRZQZABDE
      FGHIJUDWCWLWCVQWKVPVQWBUEVPVQWBWKVPWBWKUHVQVPWAWJADVPVRDLZQZVTWIBDWNVSDLZ
      QZVTWIWPVTQWEWHVTWPWEVTWPFUILZWMWOWEWNWQWOVPWQWMFUJSSWNWMWOVPWMTSWNWOTDFV
      RVSEIJUKULSWPWHVTWPWGCDVPWMWOWFDLWGDFVRVSEWFIJUMUNUOSWPVTTUQURUPUPUSUTVAW
      LVPVQWBVQWKVPVQKMZDLZKVBWKVPUHZKDVCWSWTKWKVPWSWEWHQZBDRADRWIXAABDDWEWHVTV
      DVEABCWRDFEIJVFVGVHVIVJVQWKVKWKWBVQWIVTABDDWEWHVTVLVEVMUQVNVO $.
  $}

  ${
    $d a b g A $.  $d a b g G $.  $d a b g I $.  $d a b g .+ $.  $d a b g X $.
    $d a B $.
    grplact.1 $e |- F = ( g e. X |-> ( a e. X |-> ( g .+ a ) ) ) $.
    grplact.2 $e |- X = ( Base ` G ) $.
    $( The left group action of element ` A ` of group ` G ` .  (Contributed by
       Paul Chapman, 18-Mar-2008.) $)
    grplactfval $p |- ( A e. X ->
                ( F ` A ) = ( a e. X |-> ( A .+ a ) ) ) $=
      ( cv co cmpt wceq oveq1 mpteq2dv cbs cfv cvv fvex eqeltri mptex fvmpt ) C
      AGFCJZGJZBKZLGFAUDBKZLFDUCAMGFUEUFUCAUDBNOHGFUFFEPQRIEPSTUAUB $.

    $( The value of the left group action of element ` A ` of group ` G ` at
       ` B ` .  (Contributed by Paul Chapman, 18-Mar-2008.) $)
    grplactval $p |- ( ( A e. X /\ B e. X ) ->
                       ( ( F ` A ) ` B ) = ( A .+ B ) ) $=
      ( wcel cfv cv co cmpt grplactfval fveq1d oveq2 eqid ovex fvmpt sylan9eq )
      AGKZBGKBAELZLBHGAHMZCNZOZLABCNZUCBUDUGACDEFGHIJPQHBUFUHGUGUEBACRUGSABCTUA
      UB $.

    grplact.3 $e |- .+ = ( +g ` G ) $.
    ${
      grplactcnv.4 $e |- I = ( invg ` G ) $.
      $( The left group action of element ` A ` of group ` G ` maps the
         underlying set ` X ` of ` G ` one-to-one onto itself.  (Contributed by
         Paul Chapman, 18-Mar-2008.)  (Proof shortened by Mario Carneiro,
         14-Aug-2015.) $)
      grplactcnv $p |- ( ( G e. Grp /\ A e. X ) ->
       ( ( F ` A ) : X -1-1-onto-> X /\ `' ( F ` A ) = ( F ` ( I ` A ) ) ) ) $=
        ( vb wcel wa cfv wf1o wceq co cmpt cgrp ccnv grpcl 3expa simpl grpinvcl
        cv eqid jca sylan c0g grplinv adantr oveq1d simpll simplr simprl grpass
        eqcom syl13anc grplid ad2ant2r 3eqtr3rd eqeq2d syl5bb wb simprr adantrr
        grplcan bitrd grplactfval adantl f1oeq1 syl cnveqd oveq2 cbvmptv syl6eq
        f1ocnv2d eqeq12d anbi12d mpbird ) EUANZAGNZOZGGADPZQZWFUBZAFPZDPZRZOGGH
        GAHUGZBSZTZQZWNUBZMGWIMUGZBSZTZRZOWEHMGGWMWRWNWNUHWCWDWLGNZWMGNZGBEAWLJ
        KUCUDZWEWCWIGNZOWQGNZWRGNZWEWCXDWCWDUEGEFAJLUFZUIWCXDXEXFGBEWIWQJKUCUDU
        JWEXAXEOZOZWLWRRZWRWIWMBSZRZWQWMRZXJWRWLRXIXLWLWRUSXIWLXKWRXIWIABSZWLBS
        ZEUKPZWLBSZXKWLXIXNXPWLBWEXNXPRXHGBEFAXPJKXPUHZLULUMUNXIWCXDWDXAXOXKRWC
        WDXHUOZWEXDXHXGUMZWCWDXHUPWEXAXEUQGBEWIAWLJKURUTWCXAXQWLRWDXEGBEWLXPJKX
        RVAVBVCVDVEXIWCXEXBXDXLXMVFXSWEXAXEVGWEXAXBXEXCVHXTGBEWQWMWIJKVIUTVJVSW
        EWGWOWKWTWEWFWNRZWGWOVFWDYAWCABCDEGHIJVKVLZGGWFWNVMVNWEWHWPWJWSWEWFWNYB
        VOWEXDWJWSRXGXDWJHGWIWLBSZTWSWIBCDEGHIJVKHMGYCWRWLWQWIBVPVQVRVNVTWAWB
        $.
    $}

    $( The left group action of element ` A ` of group ` G ` maps the
       underlying set ` X ` of ` G ` one-to-one onto itself.  (Contributed by
       Paul Chapman, 18-Mar-2008.)  (Proof shortened by Mario Carneiro,
       14-Aug-2015.) $)
    grplactf1o $p |- ( ( G e. Grp /\ A e. X ) ->
                       ( F ` A ) : X -1-1-onto-> X ) $=
      ( cgrp wcel wa cfv wf1o ccnv cminusg wceq eqid grplactcnv simpld ) EKLAFL
      MFFADNZOUBPAEQNZNDNRABCDEUCFGHIJUCSTUA $.
  $}

  ${
    $d ph a b $.  $d ph x y $.  $d G a b $.  $d G x y $.  $d H a b $.
    $d H x y $.
    grpsubpropd.b $e |- ( ph -> ( Base ` G ) = ( Base ` H ) ) $.
    grpsubpropd.p $e |- ( ph -> ( +g ` G ) = ( +g ` H ) ) $.
    $( Weak property deduction for the group subtraction operation.
       (Contributed by Mario Carneiro, 27-Mar-2015.) $)
    grpsubpropd $p |- ( ph -> ( -g ` G ) = ( -g ` H ) ) $=
      ( va vb vx vy cbs cfv cv cminusg cplusg co cmpt2 csg eqidd wcel eqid wa
      oveqdr grpinvpropd fveq1d oveq123d mpt2eq123dv grpsubfval 3eqtr4g ) AFGBJ
      KZUIFLZGLZBMKZKZBNKZOZPFGCJKZUPUJUKCMKZKZCNKZOZPBQKZCQKZAFGUIUIUOUPUPUTDD
      AUJUJUMURUNUSEAUJRAUKULUQAHIUIBCAUIRDAHLUISILUISUAHIUNUSEUBUCUDUEUFFGUIUN
      BULVAUITUNTULTVATUGFGUPUSCUQVBUPTUSTUQTVBTUGUH $.
  $}

  ${
    $d x y B $.  $d a b x y G $.  $d a b x y H $.  $d a b x y ph $.
    grpsubpropd2.1 $e |- ( ph -> B = ( Base ` G ) ) $.
    grpsubpropd2.2 $e |- ( ph -> B = ( Base ` H ) ) $.
    grpsubpropd2.3 $e |- ( ph -> G e. Grp ) $.
    grpsubpropd2.4 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` G ) y ) = ( x ( +g ` H ) y ) ) $.
    $( Strong property deduction for the group subtraction operation.
       (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    grpsubpropd2 $p |- ( ph -> ( -g ` G ) = ( -g ` H ) ) $=
      ( va vb cbs cfv co cmpt2 wcel wceq 3ad2ant1 eqid cminusg cplusg csg simp1
      cv w3a simp2 eleqtrrd cgrp simp3 grpinvcl oveqrspc2v syl12anc grpinvpropd
      syl2anc fveq1d oveq2d eqtrd mpt2eq3dva eqtr3d mpt2eq12 grpsubfval 3eqtr4g
      ) AKLEMNZVDKUEZLUEZEUANZNZEUBNZOZPZKLFMNZVLVEVFFUANZNZFUBNZOZPZEUCNZFUCNZ
      AVKKLVDVDVPPZVQAKLVDVDVJVPAVEVDQZVFVDQZUFZVJVEVHVOOZVPWCAVEDQVHDQVJWDRAWA
      WBUDWCVEVDDAWAWBUGAWADVDRWBGSZUHWCVHVDDWCEUIQZWBVHVDQAWAWFWBISAWAWBUJVDEV
      GVFVDTZVGTZUKUOWEUHABCDDVIVOVEVHJULUMAWAWDVPRWBAVHVNVEVOAVFVGVMABCDEFGHJU
      NUPUQSURUSAVDVLRZWIVTVQRADVDVLGHUTZWJKLVDVDVLVLVPVAUOURKLVDVIEVGVRWGVITWH
      VRTVBKLVLVOFVMVSVLTVOTVMTVSTVBVC $.
  $}

  ${
    $d I e i $.  $d M e i $.
    grp1.m $e |- M = { <. ( Base ` ndx ) , { I } >. ,
                       <. ( +g ` ndx ) , { <. <. I , I >. , I >. } >. } $.
    $( The (smallest) structure representing a _trivial group_.  According to
       Wikipedia ("Trivial group", 28-Apr-2019,
       ~ https://en.wikipedia.org/wiki/Trivial_group ) "In mathematics, a
       _trivial group_ is a group consisting of a single element.  All such
       groups are isomorphic, so one often speaks of _the_ trivial group.  The
       single element of the trivial group is the identity element".
       (Contributed by AV, 28-Apr-2019.) $)
    grp1 $p |- ( I e. V -> M e. Grp ) $=
      ( ve vi wcel cmnd cv cop csn co c0g cfv wceq wrex cvv eqeq1d snex ax-mp
      wral cgrp mnd1 df-ov opex fvsng syl5eq mnd1id eqtr4d oveq2 rexbidv ralsng
      mpan oveq1 rexsng bitrd mpbird cbs grpbase cplusg grpplusg isgrp sylanbrc
      eqid ) ACGZBHGEIZFIZAAJZAJZKZLZBMNZOZEAKZPZFVNUAZBUBGABCDUCVEVPAAVJLZVLOZ
      VEVQAVLVEVQVHVJNZAAAVJUDVHQGVEVSAOAAUEVHAQCUFUMUGABCDUHUIVEVPVFAVJLZVLOZE
      VNPZVRVOWBFACVGAOZVMWAEVNWCVKVTVLVGAVFVJUJRUKULWAVREACVFAOVTVQVLVFAAVJUNR
      UOUPUQVNVJEBVLFVNQGVNBURNOASVNVJBQDUSTVJQGVJBUTNOVISVNVJBQDVATVLVDVBVC $.

    $( The inverse function of the trivial group.  (Contributed by FL,
       21-Jun-2010.)  (Revised by AV, 26-Aug-2021.) $)
    grp1inv $p |- ( I e. V -> ( invg ` M ) = ( _I |` { I } ) ) $=
      ( wcel csn cminusg cfv wf cid cres wceq cgrp grp1 cvv cbs snex cop anidms
      grpbase ax-mp eqid grpinvf syl wb fsng simpr cxp restidsing xpsng syl5req
      wa adantr eqtrd ex sylbid mpd ) ACEZAFZUSBGHZIZUTJUSKZLZURBMEVAABCDNUSBUT
      USOEUSBPHLAQUSAARZARFBODTUAUTUBUCUDURVAUTVDFZLZVCURVAVFUEAACCUTUFSURVFVCU
      RVFULUTVEVBURVFUGURVEVBLVFURVBUSUSUHZVEAUIURVGVELAACCUJSUKUMUNUOUPUQ $.
  $}

  ${
    $d x y B $.  $d x y F $.  $d x y I $.  $d x N $.  $d x y ph $.  $d x y R $.
    $d x .+ $.  $d x y S $.  $d x y V $.  $d x y W $.  $d x y Y $.  $d x .0. $.
    prdsinvlem.y $e |- Y = ( S Xs_ R ) $.
    prdsinvlem.b $e |- B = ( Base ` Y ) $.
    prdsinvlem.p $e |- .+ = ( +g ` Y ) $.
    prdsinvlem.s $e |- ( ph -> S e. V ) $.
    prdsinvlem.i $e |- ( ph -> I e. W ) $.
    prdsinvlem.r $e |- ( ph -> R : I --> Grp ) $.
    prdsinvlem.f $e |- ( ph -> F e. B ) $.
    prdsinvlem.z $e |- .0. = ( 0g o. R ) $.
    prdsinvlem.n $e |- N = ( y e. I |->
        ( ( invg ` ( R ` y ) ) ` ( F ` y ) ) ) $.
    $( Characterization of inverses in a structure product.  (Contributed by
       Mario Carneiro, 10-Jan-2015.) $)
    prdsinvlem $p |- ( ph -> ( N e. B /\ ( N .+ F ) = .0. ) ) $=
      ( vx wcel co wceq cv cfv cminusg cmpt cbs wral wa ffvelrnda adantr wfn wf
      cgrp ffn syl prdsbasprj eqid grpinvcl syl2anc ralrimiva prdsbasmpt mpbird
      simpr syl5eqel cplusg c0g grplinv fveq2 fveq2d fveq12d fvex adantl oveq1d
      weq fvmpt ccom fveq1i fvco2 syl5eq 3eqtr4d mpteq2dva prdsplusgval cvv crn
      sylan wss fn0g a1i ssv fnco syl3anc fneq1i sylibr dffn5 sylib jca ) AICUD
      IGDUEZMUFAIBHBUGZGUHZXCEUHZUIUHZUHZUJZCUBAXHCUDXGXEUKUHZUDZBHULAXJBHAXCHU
      DZUMZXEURUDXDXIUDXJAHURXCESUNXLCEFGHXCJKLNOAFJUDZXKQUOAHKUDZXKRUOAEHUPZXK
      AHUREUQXOSHUREUSUTZUOAGCUDZXKTUOAXKVHVAXIXEXFXDXIVBXFVBVCVDVEABCEFXGHJKLN
      OQRXPVFVGVIZAUCHUCUGZIUHZXSGUHZXSEUHZVJUHZUEZUJUCHXSMUHZUJZXBMAUCHYDYEAXS
      HUDZUMZYAYBUIUHZUHZYAYCUEZYBVKUHZYDYEYHYBURUDYAYBUKUHZUDYKYLUFAHURXSESUNY
      HCEFGHXSJKLNOAXMYGQUOAXNYGRUOAXOYGXPUOAXQYGTUOAYGVHVAYMYCYBYIYAYLYMVBYCVB
      YLVBYIVBVLVDYHXTYJYAYCYGXTYJUFABXSXGYJHIBUCVSZXDYAXFYIYNXEYBUIXCXSEVMVNXC
      XSGVMVOUBYAYIVPVTVQVRYHYEXSVKEWAZUHZYLXSMYOUAWBAXOYGYPYLUFXPHVKEXSWCWJWDW
      EWFAUCCDEFIGHJKLNOQRXPXRTPWGAMHUPZMYFUFAYOHUPZYQAVKWHUPZXOEWIZWHWKZYRYSAW
      LWMXPUUAAYTWNWMWHHVKEWOWPHMYOUAWQWRUCHMWSWTWEXA $.
  $}

  ${
    $d x B $.  $d b x I $.  $d a b x ph $.  $d b x R $.  $d b x S $.  $d x X $.
    $d a b x Y $.
    prdsgrpd.y $e |- Y = ( S Xs_ R ) $.
    prdsgrpd.i $e |- ( ph -> I e. W ) $.
    prdsgrpd.s $e |- ( ph -> S e. V ) $.
    prdsgrpd.r $e |- ( ph -> R : I --> Grp ) $.
    $( The product of a family of groups is a group.  (Contributed by Stefan
       O'Rear, 10-Jan-2015.) $)
    prdsgrpd $p |- ( ph -> Y e. Grp ) $=
      ( va vb cfv cgrp cmnd wcel cvv eqid adantr cbs cplusg cv cminusg cmpt c0g
      ccom eqidd wf wss grpmnd ssriv fss sylancl prds0g prdsmndd wa co wceq syl
      elex simpr prdsinvlem simpld simprd isgrpd2 ) ALGUANZGUBNZGMDMUCZLUCZNVIB
      NUDNNUEZUFBUGZAVGUHAVHUHABCDEFGHIJADOBUIZOPUJDPBUIKLOPVJUKULDOPBUMUNZUOAB
      CDEFGHIJVNUPAVJVGQZUQZVKVGQZVKVJVHURVLUSZVPMVGVHBCVJDVKRRGVLHVGSVHSACRQZV
      OACEQVSJCEVAUTTADRQZVOADFQVTIDFVAUTTAVMVOKTAVOVBVLSVKSVCZVDVPVQVRWAVEVF
      $.

    prdsinvgd.b $e |- B = ( Base ` Y ) $.
    prdsinvgd.n $e |- N = ( invg ` Y ) $.
    prdsinvgd.x $e |- ( ph -> X e. B ) $.
    $( Negation in a product of groups.  (Contributed by Stefan O'Rear,
       10-Jan-2015.) $)
    prdsinvgd $p |- ( ph -> ( N ` X ) = ( x e. I |->
        ( ( invg ` ( R ` x ) ) ` ( X ` x ) ) ) ) $=
      ( cfv wcel va cv cminusg cmpt wceq cplusg co c0g ccom cvv eqid prdsinvlem
      elex syl simprd cgrp wf cmnd wss grpmnd ssriv fss sylancl prds0g eqtrd wb
      prdsgrpd simpld grpinvid2 syl3anc mpbird ) AJGSBFBUBZJSVLDSUCSSUDZUEZVMJK
      UFSZUGZKUHSZUEZAVPUHDUIZVQAVMCTZVPVSUEZABCVODEJFVMUJUJKVSLPVOUKZAEHTEUJTN
      EHUMUNAFITFUJTMFIUMUNORVSUKVMUKULZUOADEFHIKLMNAFUPDUQUPURUSFURDUQOUAUPURU
      AUBUTVAFUPURDVBVCVDVEAKUPTJCTVTVNVRVFADEFHIKLMNOVGRAVTWAWCVHCVOKGJVMVQPWB
      VQUKQVIVJVK $.
  $}

  ${
    $d x y G $.  $d x y M $.  $d x y R $.  $d x y X $.  $d x B $.  $d x F $.
    $d x I $.  $d x N $.  $d x V $.
    pwsgrp.y $e |- Y = ( R ^s I ) $.
    $( The product of a family of groups is a group.  (Contributed by Mario
       Carneiro, 11-Jan-2015.) $)
    pwsgrp $p |- ( ( R e. Grp /\ I e. V ) -> Y e. Grp ) $=
      ( cgrp wcel wa csca cfv csn cxp cprds co eqid pwsval cvv simpr fvexd wf
      fconst6g adantr prdsgrpd eqeltrd ) AFGZBCGZHZDAIJZBAKLZMNZFAUHBFCDEUHOPUG
      UIUHBQCUJUJOUEUFRUGAISUEBFUITUFBAFUAUBUCUD $.

    pwsinvg.b $e |- B = ( Base ` Y ) $.
    ${
      pwsinvg.m $e |- M = ( invg ` R ) $.
      pwsinvg.n $e |- N = ( invg ` Y ) $.
      $( Negation in a group power.  (Contributed by Mario Carneiro,
         11-Jan-2015.) $)
      pwsinvg $p |- ( ( R e. Grp /\ I e. V /\ X e. B ) ->
        ( N ` X ) = ( M o. X ) ) $=
        ( vx vy cgrp wcel cfv cminusg cbs eqid w3a csca csn cxp cprds cmpt ccom
        co cv cvv simp2 fvexd wf simp1 fconst6g syl simp3 pwsval 3adant3 fveq2d
        wceq syl5eq eleqtrd prdsinvgd wa fvconst2g sylan fveq1d mpteq2dva eqtrd
        syl6eqr pwselbas ffvelrnda feqmptd grpinvf fveq2 fmptco 3eqtr4d ) BOPZC
        FPZGAPZUAZGBUBQZCBUCUDZUEUHZRQZQZMCMUIZGQZDQZUFZGEQDGUGWBWGMCWIWHWDQZRQ
        ZQZUFWKWBMWESQZWDWCCWFUJFGWEWETVSVTWAUKZWBBUBULWBVSCOWDUMVSVTWAUNZCBOUO
        UPWOTWFTWBGAWOVSVTWAUQZWBAHSQWOJWBHWESVSVTHWEVAWABWCCOFHIWCTURUSZUTVBVC
        VDWBMCWNWJWBWHCPZVEZWIWMDXAWMBRQDXAWLBRWBVSWTWLBVAWQCBWHOVFVGUTKVKVHVIV
        JWBGEWFWBEHRQWFLWBHWERWSUTVBVHWBMNCBSQZWINUIZDQWJGDWBCXBWHGWBXBBCAOGHFI
        XBTZJWQWPWRVLZVMWBMCXBGXEVNWBNXBXBDWBVSXBXBDUMWQXBBDXDKVOUPVNXCWIDVPVQV
        R $.
    $}

    pwssub.m $e |- M = ( -g ` R ) $.
    pwssub.n $e |- .- = ( -g ` Y ) $.
    $( Subtraction in a group power.  (Contributed by Mario Carneiro,
       12-Jan-2015.) $)
    pwssub $p |- ( ( ( R e. Grp /\ I e. V ) /\ ( F e. B /\ G e. B ) ) ->
        ( F .- G ) = ( F oF M G ) ) $=
      ( vx cgrp wcel wa cfv co eqid vy cminusg cplusg cv cmpt cof simplr simpll
      cbs cvv simprl pwselbas ffvelrnda fvexd feqmptd ccom wceq pwsinvg syl3anc
      simprr grpinvf ad2antrr fveq2 fmptco eqtrd offval2 pwsgrp adantr grpinvcl
      wf syl2anc pwsplusgval grpsubval mpteq2dva 3eqtr4d adantl ) BOPZEHPZQZCAP
      ZDAPZQZQZCDIUBRZRZIUCRZSZNENUDZCRZWHDRZFSZUEZCDGSZCDFUFSWCCWEBUCRZUFSNEWI
      WJBUBRZRZWNSZUEWGWLWCNEWIWPWNCWEHBUIRZUJVQVRWBUGZWCEWRWHCWCWRBEAOCIHJWRTZ
      KVQVRWBUHZWSVSVTWAUKZULZUMZWCWHEPQZWJWOUNWCNEWRCXCUOZWCWEWODUPZNEWPUEWCVQ
      VRWAWEXGUQXAWSVSVTWAUTZABEWOWDHDIJKWOTZWDTZURUSWCNUAEWRWJUAUDZWORWPDWOWCE
      WRWHDWCWRBEAODIHJWTKXAWSXHULZUMZWCNEWRDXLUOZWCUAWRWRWOVQWRWRWOVJVRWBWRBWO
      WTXIVAVBUOXKWJWOVCVDVEVFWCAWNWFBCWEEOHIJKXAWSXBWCIOPZWAWEAPVSXOWBBEHIJVGV
      HXHAIWDDKXJVIVKWNTZWFTZVLWCNEWKWQXEWIWRPWJWRPWKWQUQXDXMWRWNBWOFWIWJWTXPXI
      LVMVKVNVOWBWMWGUQVSAWFIWDGCDKXQXJMVMVPWCNEWIWJFCDHWRWRWSXDXMXFXNVFVO $.
  $}

  ${
    $d p q u v w x B $.  $d p v N $.  $d a b p q u v w x y z ph $.  $d p q R $.
    $d a b p q u v w x y z F $.  $d p q x y .+ $.  $d a b p q u v w x y z U $.
    $d a b p q x y z V $.  $d p q u v w x .0. $.
    imasgrp.u $e |- ( ph -> U = ( F "s R ) ) $.
    imasgrp.v $e |- ( ph -> V = ( Base ` R ) ) $.
    imasgrp.p $e |- ( ph -> .+ = ( +g ` R ) ) $.
    imasgrp.f $e |- ( ph -> F : V -onto-> B ) $.
    imasgrp.e $e |- ( ( ph /\ ( a e. V /\ b e. V ) /\ ( p e. V /\ q e. V ) )
      -> ( ( ( F ` a ) = ( F ` p ) /\ ( F ` b ) = ( F ` q ) )
        -> ( F ` ( a .+ b ) ) = ( F ` ( p .+ q ) ) ) ) $.
    ${
      imasgrp2.r $e |- ( ph -> R e. W ) $.
      imasgrp2.1 $e |- ( ( ph /\ x e. V /\ y e. V ) -> ( x .+ y ) e. V ) $.
      imasgrp2.2 $e |- ( ( ph /\ ( x e. V /\ y e. V /\ z e. V ) ) ->
        ( F ` ( ( x .+ y ) .+ z ) ) = ( F ` ( x .+ ( y .+ z ) ) ) ) $.
      imasgrp2.3 $e |- ( ph -> .0. e. V ) $.
      imasgrp2.4 $e |- ( ( ph /\ x e. V ) ->
        ( F ` ( .0. .+ x ) ) = ( F ` x ) ) $.
      imasgrp2.5 $e |- ( ( ph /\ x e. V ) -> N e. V ) $.
      imasgrp2.6 $e |- ( ( ph /\ x e. V ) ->
        ( F ` ( N .+ x ) ) = ( F ` .0. ) ) $.
      $( The image structure of a group is a group.  (Contributed by Mario
         Carneiro, 24-Feb-2015.)  (Revised by Mario Carneiro, 5-Sep-2015.) $)
      imasgrp2 $p |- ( ph -> ( U e. Grp /\ ( F ` .0. ) = ( 0g ` U ) ) ) $=
        ( vu vv vw cgrp wcel cfv c0g wceq cplusg imasbas eqidd cxp wf cv co w3a
        wa wb oveqd fveq2d eqeq12d 3ad2ant1 sylibd eqid adantr caovclg eqeltrrd
        3expb imasaddf fovrn syl3an1 wrex crn wfo forn syl eleq2d 3anbi123d wfn
        fofn fvelrnb bitr3d 3reeanv syl6bbr 3eqtr3d 3adant3r3 simpr3 imasaddval
        wi simpl syl3anc simpr1 3adantr1 3eqtr4d eqtr4d oveq1d 3adant3r1 oveq2d
        simp1 simp2 oveq12d simp3 syl5ibcom 3exp2 imp32 rexlimdv rexlimdvva imp
        sylbid fof ffvelrnd simpr 3eqtr2d oveq2 rexlimdva eqeq1d rspcev syl2anc
        id oveq1 rexbidv isgrpde grpidd2 jca ) AHUMUNMIUOZHUPUOUQAUJUKULEHURUOZ
        HYNAEGHIKLRSUAUCUSZAYOUTZAEEVAEYOVBUJVCZEUNZUKVCZEUNZYRYTYOVDZEUNAEGYOG
        URUOZHIKLNOPQUAAPVCZKUNQVCZKUNVFZOVCZKUNNVCZKUNVFZVEUUDIUOUUGIUOUQUUEIU
        OUUHIUOUQVFUUDUUEFVDZIUOZUUGUUHFVDZIUOZUQZUUDUUEUUCVDZIUOZUUGUUHUUCVDZI
        UOZUQZUBAUUFUUNUUSVGUUIAUUKUUPUUMUURAUUJUUOIAFUUCUUDUUETVHVIAUULUUQIAFU
        UCUUGUUHTVHZVIVJVKVLZRSUCUUCVMZYOVMZAUUIVFUULUUQKAUULUUQUQUUIUUTVNABCUU
        GUUHKKKFABVCZKUNZCVCZKUNZUVDUVFFVDZKUNZUDVQVOZVPVRYRYTEEEYOVSVTAYSUUAUL
        VCZEUNZVEZUUBUVKYOVDZYRYTUVKYOVDZYOVDZUQZAUVMUVDIUOZYRUQZUVFIUOZYTUQZDV
        CZIUOZUVKUQZVEZDKWAZCKWABKWAZUVQAUVMUVSBKWAZUWACKWAZUWDDKWAZVEZUWGAYRIW
        BZUNZYTUWLUNZUVKUWLUNZVEZUVMUWKAUWMYSUWNUUAUWOUVLAUWLEYRAKEIWCZUWLEUQUA
        KEIWDWEZWFZAUWLEYTUWRWFAUWLEUVKUWRWFWGAIKWHZUWPUWKVGAUWQUWTUAKEIWIWEZUW
        TUWMUWHUWNUWIUWOUWJBKYRIWJZCKYTIWJDKUVKIWJWGWEWKUVSUWAUWDBCDKKKWLWMAUWF
        UVQBCKKAUVEUVGVFVFUWEUVQDKAUVEUVGUWBKUNZUWEUVQWRZWRAUVEUVGUXCUXDAUVEUVG
        UXCVEZVFZUVRUVTYOVDZUWCYOVDZUVRUVTUWCYOVDZYOVDZUQUWEUVQUXFUVHIUOZUWCYOV
        DZUVRUVFUWBFVDZIUOZYOVDZUXHUXJUXFUVHUWBUUCVDZIUOZUVDUXMUUCVDZIUOZUXLUXO
        UXFUVHUWBFVDZIUOUVDUXMFVDZIUOUXQUXSUEUXFUXTUXPIUXFFUUCUVHUWBAFUUCUQZUXE
        TVNZVHVIUXFUYAUXRIUXFFUUCUVDUXMUYCVHVIWNUXFAUVIUXCUXLUXQUQAUXEWSZAUVEUV
        GUVIUXCUDWOAUVEUVGUXCWPAEGYOUUCHIKUVHUWBLNOPQUAUVARSUCUVBUVCWQWTUXFAUVE
        UXMKUNZUXOUXSUQUYDAUVEUVGUXCXAAUVGUXCUYEUVEAONUVFUWBKKKFUVJVOXBAEGYOUUC
        HIKUVDUXMLNOPQUAUVARSUCUVBUVCWQWTXCUXFUXGUXKUWCYOUXFUXGUVDUVFUUCVDZIUOZ
        UXKAUVEUVGUXGUYGUQUXCAEGYOUUCHIKUVDUVFLNOPQUAUVARSUCUVBUVCWQWOUXFUVHUYF
        IUXFFUUCUVDUVFUYCVHVIXDXEUXFUXIUXNUVRYOUXFUXIUVFUWBUUCVDZIUOZUXNAUVGUXC
        UXIUYIUQUVEAEGYOUUCHIKUVFUWBLNOPQUAUVARSUCUVBUVCWQXFUXFUXMUYHIUXFFUUCUV
        FUWBUYCVHVIXDXGXCUWEUXHUVNUXJUVPUWEUXGUUBUWCUVKYOUWEUVRYRUVTYTYOUVSUWAU
        WDXHZUVSUWAUWDXIZXJUVSUWAUWDXKZXJUWEUVRYRUXIUVOYOUYJUWEUVTYTUWCUVKYOUYK
        UYLXJXJVJXLXMXNXOXPXRXQAKEMIAUWQKEIVBZUAKEIXSWEZUFXTZAYSYNYRYOVDZYRUQZA
        YSUWHUYQAUWMYSUWHUWSAUWTUWMUWHVGUXAUXBWEWKZAUVSUYQBKAUVEVFZYNUVRYOVDZUV
        RUQUVSUYQUYSUYTMUVDUUCVDZIUOZMUVDFVDZIUOUVRUYSAMKUNZUVEUYTVUBUQAUVEWSZA
        VUDUVEUFVNAUVEYAZAEGYOUUCHIKMUVDLNOPQUAUVARSUCUVBUVCWQWTUYSVUCVUAIUYSFU
        UCMUVDAUYBUVETVNZVHVIUGYBUVSUYTUYPUVRYRUVRYRYNYOYCUVSYHVJXLYDXRXQZAYSYT
        YRYOVDZYNUQZUKEWAZAYSUWHVUKUYRAUVSVUKBKUYSYTUVRYOVDZYNUQZUKEWAZUVSVUKUY
        SJIUOZEUNVUOUVRYOVDZYNUQZVUNUYSKEJIAUYMUVEUYNVNUHXTUYSVUPJUVDUUCVDZIUOZ
        JUVDFVDZIUOYNUYSAJKUNUVEVUPVUSUQVUEUHVUFAEGYOUUCHIKJUVDLNOPQUAUVARSUCUV
        BUVCWQWTUYSVUTVURIUYSFUUCJUVDVUGVHVIUIYBVUMVUQUKVUOEYTVUOUQVULVUPYNYTVU
        OUVRYOYIYEYFYGUVSVUMVUJUKEUVSVULVUIYNUVRYRYTYOYCYEYJXLYDXRXQYKZAUJEYOHY
        NYPYQUYOVUHVVAYLYM $.
    $}

    ${
      imasgrp.r $e |- ( ph -> R e. Grp ) $.
      imasgrp.z $e |- .0. = ( 0g ` R ) $.
      $( The image structure of a group is a group.  (Contributed by Mario
         Carneiro, 24-Feb-2015.)  (Revised by Mario Carneiro, 5-Sep-2015.) $)
      imasgrp $p |- ( ph -> ( U e. Grp /\ ( F ` .0. ) = ( 0g ` U ) ) ) $=
        ( co vx vy vz cv cminusg cfv cgrp w3a cplusg cbs 3ad2ant1 simp2 eleqtrd
        wcel wceq simp3 eqid grpcl syl3anc oveqd adantr 3adant3r3 simpr3 grpass
        3eltr4d wa syl13anc oveq123d 3eqtr4d fveq2d grpidcl syl eleqtrrd eleq2d
        eqidd biimpa grplid syl2anc eqtrd grpinvcl grplinv imasgrp2 ) AUAUBUCBC
        DEFUAUDZDUEUFZUFZGUGHIJKLMNOPQRAWCGUNZUBUDZGUNZUHZWCWGDUIUFZTZDUJUFZWCW
        GCTZGWIDUGUNZWCWLUNZWGWLUNZWKWLUNAWFWNWHRUKWIWCGWLAWFWHULAWFGWLUOZWHNUK
        ZUMZWIWGGWLAWFWHUPWRUMZWLWJDWCWGWLUQZWJUQZURUSWICWJWCWGAWFCWJUOZWHOUKUT
        ZWRVEAWFWHUCUDZGUNZUHZVFZWMXECTZWCWGXECTZCTZFXHWKXEWJTZWCWGXEWJTZWJTZXI
        XKXHWNWOWPXEWLUNXLXNUOAWNXGRVAAWFWHWOXFWSVBAWFWHWPXFWTVBXHXEGWLAWFWHXFV
        CAWQXGNVAUMWLWJDWCWGXEXAXBVDVGXHWMWKXEXECWJAXCXGOVAZAWFWHWMWKUOXFXDVBXH
        XEVOVHXHWCWCXJXMCWJXOXHWCVOXHCWJWGXEXOUTVHVIVJAHWLGAWNHWLUNRWLDHXASVKVL
        NVMAWFVFZHWCCTZWCFXPXQHWCWJTZWCXPCWJHWCAXCWFOVAZUTXPWNWOXRWCUOAWNWFRVAZ
        AWFWOAGWLWCNVNVPZWLWJDWCHXAXBSVQVRVSVJXPWEWLGXPWNWOWEWLUNXTYAWLDWDWCXAW
        DUQZVTVRAWQWFNVAVMXPWEWCCTZHFXPYCWEWCWJTZHXPCWJWEWCXSUTXPWNWOYDHUOXTYAW
        LWJDWDWCHXAXBSYBWAVRVSVJWB $.
    $}
  $}

  ${
    $d a b p q B $.  $d a b p q F $.  $d a b p q R $.  $d a b p q U $.
    $d a b p q V $.
    imasgrpf1.u $e |- U = ( F "s R ) $.
    imasgrpf1.v $e |- V = ( Base ` R ) $.
    $( The image of a group under an injection is a group.  (Contributed by
       Mario Carneiro, 20-Aug-2015.) $)
    imasgrpf1 $p |- ( ( F : V -1-1-> B /\ R e. Grp ) -> U e. Grp ) $=
      ( vq vp va vb wf1 cgrp wcel wa c0g cfv wceq a1i cv crn cplusg cimas eqidd
      cbs wf1o wfo f1f1orn adantr f1ofo syl f1ocpbl simpr eqid imasgrp simpld
      co ) EADLZBMNZOZCMNBPQZDQCPQRUTDUAZBUBQZBCDEVAHIJKCDBUCUQRUTFSEBUEQRUTGSU
      TVCUDUTEVBDUFZEVBDUGURVDUSEADUHUIZEVBDUJUKUTJTKTITHTVCDEVBVEULURUSUMVAUNU
      OUP $.
  $}

  ${
    $d a b p q u x y z .~ $.  $d a b p q u x .0. $.  $d p u N $.  $d p q u R $.
    $d a b p q u x y .+ $.  $d a b p q u x y z ph $.  $d a b p q u x y z V $.
    $d a b p q x y z U $.
    qusgrp2.u $e |- ( ph -> U = ( R /s .~ ) ) $.
    qusgrp2.v $e |- ( ph -> V = ( Base ` R ) ) $.
    qusgrp2.p $e |- ( ph -> .+ = ( +g ` R ) ) $.
    qusgrp2.r $e |- ( ph -> .~ Er V ) $.
    qusgrp2.x $e |- ( ph -> R e. X ) $.
    qusgrp2.e $e |- ( ph ->
      ( ( a .~ p /\ b .~ q ) -> ( a .+ b ) .~ ( p .+ q ) ) ) $.
    qusgrp2.1 $e |- ( ( ph /\ x e. V /\ y e. V ) -> ( x .+ y ) e. V ) $.
    qusgrp2.2 $e |- ( ( ph /\ ( x e. V /\ y e. V /\ z e. V ) ) ->
      ( ( x .+ y ) .+ z ) .~ ( x .+ ( y .+ z ) ) ) $.
    qusgrp2.3 $e |- ( ph -> .0. e. V ) $.
    qusgrp2.4 $e |- ( ( ph /\ x e. V ) -> ( .0. .+ x ) .~ x ) $.
    qusgrp2.5 $e |- ( ( ph /\ x e. V ) -> N e. V ) $.
    qusgrp2.6 $e |- ( ( ph /\ x e. V ) -> ( N .+ x ) .~ .0. ) $.
    $( Prove that a quotient structure is a group.  (Contributed by Mario
       Carneiro, 14-Jun-2015.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    qusgrp2 $p |- ( ph -> ( U e. Grp /\ [ .0. ] .~ = ( 0g ` U ) ) ) $=
      ( vu cgrp wcel cec c0g cfv wceq wa cv cmpt cqs cvv eqid wer fvex syl6eqel
      cbs erex sylc qusval quslem co 3expb ercpbl adantr erthi divsfval 3eqtr4d
      w3a ersym 3eqtr4rd imasgrp2 eqcomd eqeq1d anbi2d mpbird ) AHUJUKZLFULZHUM
      UNZUOZUPWELUIJUIUQFULURZUNZWGUOZUPABCDJFUSEGHWIIJKLMNOPAUIFGHWIJUTKQRWIVA
      ZAJFVBZJUTUKZFUTUKTAJGVEUNUTRGVEVCVDZJFUTVFVGZUAVHRSAUIFGHWIJUTKQRWLWPUAV
      IAUIOUQPUQNUQMUQEFWIJBCTWOWLABUQZJUKZCUQZJUKZWQWSEVJZJUKUCVKUBVLUAUCAWRWT
      DUQZJUKVQZUPZXAXBEVJZFULWQWSXBEVJEVJZFULXEWIUNXFWIUNXDXEXFFJAWMXCTVMZUDVN
      XDUIXEFWIJXGAWNXCWOVMZWLVOXDUIXFFWIJXGXHWLVOVPUEAWRUPZLWQEVJZFULWQFULXJWI
      UNWQWIUNXIXJWQFJAWMWRTVMZUFVNXIUIXJFWIJXKAWNWRWOVMZWLVOXIUIWQFWIJXKXLWLVO
      VPUGXIWFIWQEVJZFULWJXMWIUNXILXMFJXKXIXMLFJXKUHVRVNXIUILFWIJXKXLWLVOXIUIXM
      FWIJXKXLWLVOVSVTAWHWKWEAWFWJWGAWJWFAUILFWIJTWOWLVOWAWBWCWD $.
  $}

  ${
    $d x y R $.  $d x y S $.
    xpsgrp.t $e |- T = ( R Xs. S ) $.
    $( The binary product of groups is a group.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    xpsgrp $p |- ( ( R e. Grp /\ S e. Grp ) -> T e. Grp ) $=
      ( vx vy cgrp wcel cbs cfv cv csn ccda co ccnv csca eqid wf1o c2o con0 cxp
      wa cmpt2 cprds cimas simpl simpr xpsval wf1 crn xpsff1o2 wb xpslem f1oeq3
      wceq syl mpbii f1ocnv f1of1 3syl cvv 2on a1i fvexd xpscf biimpri prdsgrpd
      wf imasgrpf1 syl2anc eqeltrd ) AGHZBGHZUBZCEFAIJZBIJZEKLFKLMNOUCZOZAPJZAL
      BLMNOZUDNZUENZGVNEFABCWAVQVSGGVOVPDVOQZVPQZVLVMUFZVLVMUGZVQQZVSQZWAQZUHVN
      WAIJZVOVPUAZVRUIZWAGHWBGHVNWKWJVQRZWJWKVRRWLVNWKVQUJZVQRZWMEFVOVPVQWGUKVN
      WNWJUOWOWMULVNEFABCWAVQVSGGVOVPDWCWDWEWFWGWHWIUMWNWJWKVQUNUPUQWKWJVQURWJW
      KVRUSUTVNVTVSSVATWAWISTHVNVBVCVNAPVDSGVTVHVNGABVEVFVGWKWAWBVRWJWBQWJQVIVJ
      VK $.
  $}

  ${
    $d F a d f i j k x y $.  $d G a d f i j k x y $.  $d .+ i j k x y $.
    $d H a b c d f i x y $.  $d X i j k x y $.  $d Y a b c d f i j k x y $.
    $d .+^ a b c d f i j k x y $.  $d a b c i j k x y ph $.
    ghmgrp.f $e |- ( ( ph /\ x e. X /\ y e. X )
      -> ( F ` ( x .+ y ) ) = ( ( F ` x ) .+^ ( F ` y ) ) ) $.
    ${
      $d A x y $.  $d B y $.
      mhmlem.a $e |- ( ph -> A e. X ) $.
      mhmlem.b $e |- ( ph -> B e. X ) $.
      $( Lemma for ~ mhmmnd and ~ ghmgrp .  (Contributed by Paul Chapman,
         25-Apr-2008.)  (Revised by Mario Carneiro, 12-May-2014.)  (Revised by
         Thierry Arnoux, 25-Jan-2020.) $)
      mhmlem $p |- ( ph -> ( F ` ( A .+ B ) ) = ( ( F ` A ) .+^ ( F ` B ) ) )
        $=
        ( wcel co cfv wceq w3a wi cv eleq1 id 3anbi2d oveq1 fveq2d fveq2 oveq1d
        eqeq12d imbi12d 3anbi3d oveq2 oveq2d vtocl2g syl2anc mp3and ) AADIMZEIM
        ZDEFNZHOZDHOZEHOZGNZPZAUAKLAUOUPAUOUPQZVBRZKLABSZIMZCSZIMZQZVEVGFNZHOZV
        EHOZVGHOZGNZPZRAUOVHQZDVGFNZHOZUSVMGNZPZRVDBCDEIIVEDPZVIVPVOVTWAVFUOAVH
        VEDITUBWAVKVRVNVSWAVJVQHVEDVGFUCUDWAVLUSVMGVEDHUEUFUGUHVGEPZVPVCVTVBWBV
        HUPAUOVGEITUIWBVRURVSVAWBVQUQHVGEDFUJUDWBVMUTUSGVGEHUEUKUGUHJULUMUN $.
    $}

    ghmgrp.x $e |- X = ( Base ` G ) $.
    ghmgrp.y $e |- Y = ( Base ` H ) $.
    ghmgrp.p $e |- .+ = ( +g ` G ) $.
    ghmgrp.q $e |- .+^ = ( +g ` H ) $.
    ghmgrp.1 $e |- ( ph -> F : X -onto-> Y ) $.
    ${
      mhmmnd.3 $e |- ( ph -> G e. Mnd ) $.
      ${
        $d .0. a i x y $.
        mhmid.0 $e |- .0. = ( 0g ` G ) $.
        $( A surjective monoid morphism preserves identity element.
           (Contributed by Thierry Arnoux, 25-Jan-2020.) $)
        mhmid $p |- ( ph -> ( F ` .0. ) = ( 0g ` H ) ) $=
          ( cfv va vi c0g eqid wfo wf fof cmnd wcel mndidcl ffvelrnd cv wa wceq
          co simplll syl3an1 ad3antrrr simplr mhmlem mndlid fveq2d eqtr3d simpr
          syl syl2anc oveq2d 3eqtr3d wrex foelrni sylan r19.29a mndrid ismgmid2
          oveq1d ) AUAJEKFTZHHUCTZNVQUDPAIJKFAIJFUEZIJFUFQIJFUGVEAGUHUIZKIUIZRI
          GKMSUJZVEUKAUAULZJUIZUMZUBULZFTZWBUNZVPWBEUOZWBUNUBIWDWEIUIZUMZWGUMZV
          PWFEUOZWFWHWBWKKWEDUOZFTWLWFWKBCKWEDEFIWKABULZIUICULZIUIWNWODUOFTWNFT
          WOFTEUOUNAWCWIWGUPLUQZWKVSVTAVSWCWIWGRURZWAVEZWDWIWGUSZUTWKWMWEFWKVSW
          IWMWEUNWQWSIDGWEKMOSVAVFVBVCWKWFWBVPEWJWGVDZVGWTVHAVRWCWGUBIVIQUBIJFW
          BVJVKZVLWDWGWBVPEUOZWBUNUBIWKWFVPEUOZWFXBWBWKWEKDUOZFTXCWFWKBCWEKDEFI
          WPWSWRUTWKXDWEFWKVSWIXDWEUNWQWSIDGWEKMOSVMVFVBVCWKWFWBVPEWTVOWTVHXAVL
          VN $.
      $}

      $( The image of a monoid ` G ` under a monoid homomorphism ` F ` is a
         monoid.  (Contributed by Thierry Arnoux, 25-Jan-2020.) $)
      mhmmnd $p |- ( ph -> H e. Mnd ) $=
        ( co wcel wa va vb vc vd vi vj vk wceq wral wrex cmnd cfv simpllr simpr
        cv oveq12d simp-5l syl3an1 simp-4r simplr mhmlem wf wfo fof syl ad5antr
        mndcl syl3anc ffvelrnd eqeltrrd foelrni syl2an ad2antrr r19.29a simplrl
        simpl simpll simplrr w3a simp-6r mndass syl13anc fveq2d simp-7l 3eqtr3d
        simp1 simp2 simp3 oveq1d oveq2d simp-5r 3ad2antr3 ad4antr ralrimiva jca
        sylan 3adantr3 ralrimivva eqid mndidcl simplll ad3antrrr mndlid syl2anc
        eqtr3d mndrid oveq1 eqeq1d oveq2 anbi12d ralbidv rspcev ismnd sylanbrc
        c0g ) AUAUOZUBUOZERZJSZXRUCUOZERZXPXQXTERZERZUHZUCJUIZTZUBJUIUAJUIUDUOZ
        XPERZXPUHZXPYGERZXPUHZTZUAJUIZUDJUJZHUKSAYFUAUBJJAXPJSZXQJSZTZTZXSYEYRU
        EUOZFULZXPUHZXSUEIYRYSISZTZUUATZUFUOZFULZXQUHZXSUFIUUDUUEISZTZUUGTZYTUU
        FERZXRJUUJYTXPUUFXQEUUCUUAUUHUUGUMUUIUUGUNUPUUJYSUUEDRZFULZUUKJUUJBCYSU
        UEDEFIUUJABUOZISZCUOZISZUUNUUPDRFULUUNFULUUPFULERUHZAYQUUBUUAUUHUUGUQKU
        RYRUUBUUAUUHUUGUSZUUDUUHUUGUTZVAUUJIJUULFAIJFVBZYQUUBUUAUUHUUGAIJFVCZUV
        APIJFVDVEZVFUUJGUKSZUUBUUHUULISZAUVDYQUUBUUAUUHUUGQVFUUSUUTIDGYSUUELNVG
        ZVHVIVJVJYRUUGUFIUJZUUBUUAAUVBYPUVGYQPYOYPUNUFIJFXQVKVLZVMVNAUVBYOUUAUE
        IUJZYQPYOYPVPUEIJFXPVKZVLZVNYRYDUCJYRXTJSZTAYOYPUVLYDAYQUVLVQAYOYPUVLVO
        AYOYPUVLVRYRUVLUNAYOYPUVLVSZTZUUAYDUEIUVNUUBTZUUATZUUGYDUFIUVPUUHTZUUGT
        ZUGUOZFULZXTUHZYDUGIUVRUVSISZTZUWATZUUKUVTERZYTUUFUVTERZERZYAYCUWDUUMUV
        TERZYTUUEUVSDRZFULZERZUWEUWGUWDUULUVSDRZFULYSUWIDRZFULUWHUWKUWDUWLUWMFU
        WDUVDUUBUUHUWBUWLUWMUHUVOUVDUUAUUHUUGUWBUWAAUVDUVMUUBQVMVFZUVNUUBUUAUUH
        UUGUWBUWAVTZUVPUUHUUGUWBUWAUSZUVRUWBUWAUTZIDGYSUUEUVSLNWAWBWCUWDBCUULUV
        SDEFIUWDAUUOUUQUURAUVMUUBUUAUUHUUGUWBUWAWDZKURZUWDUVDUUBUUHUVEUWNUWOUWP
        UVFVHUWQVAUWDBCYSUWIDEFIUWSUWOUWDUVDUUHUWBUWIISUWNUWPUWQIDGUUEUVSLNVGVH
        VAWEUWDUUMUUKUVTEUWDAUUBUUHUUMUUKUHUWRUWOUWPAUUBUUHVSZBCYSUUEDEFIUWTAUU
        OUUQUURAUUBUUHWFKURAUUBUUHWGAUUBUUHWHVAVHWIUWDUWJUWFYTEUWDBCUUEUVSDEFIU
        WSUWPUWQVAWJWEUWDUUKXRUVTXTEUWDYTXPUUFXQEUVOUUAUUHUUGUWBUWAWKZUVQUUGUWB
        UWAUMZUPUWCUWAUNZUPUWDYTXPUWFYBEUXAUWDUUFXQUVTXTEUXBUXCUPUPWEUVNUWAUGIU
        JZUUBUUAUUHUUGAYOUVLUXDYPAUVBUVLUXDPUGIJFXTVKWPWLWMVNUVNUVGUUBUUAAYOYPU
        VGUVLUVHWQVMVNAYOYPUVIUVLUVKWQVNWBWNWOWRAGXOULZFULZJSUXFXPERZXPUHZXPUXF
        ERZXPUHZTZUAJUIZYNAIJUXEFUVCAUVDUXEISZQIGUXELUXEWSZWTZVEVIAUXKUAJAYOTZU
        UAUXKUEIUXPUUBTZUUATZUXHUXJUXRUXFYTERZYTUXGXPUXRUXEYSDRZFULUXSYTUXRBCUX
        EYSDEFIUXRAUUOUUQUURAYOUUBUUAXAKURZUXRUVDUXMAUVDYOUUBUUAQXBZUXOVEZUXPUU
        BUUAUTZVAUXRUXTYSFUXRUVDUUBUXTYSUHUYBUYDIDGYSUXELNUXNXCXDWCXEUXRYTXPUXF
        EUXQUUAUNZWJUYEWEUXRYTUXFERZYTUXIXPUXRYSUXEDRZFULUYFYTUXRBCYSUXEDEFIUYA
        UYDUYCVAUXRUYGYSFUXRUVDUUBUYGYSUHUYBUYDIDGYSUXELNUXNXFXDWCXEUXRYTXPUXFE
        UYEWIUYEWEWOAUVBYOUVIPUVJWPVNWNYMUXLUDUXFJYGUXFUHZYLUXKUAJUYHYIUXHYKUXJ
        UYHYHUXGXPYGUXFXPEXGXHUYHYJUXIXPYGUXFXPEXIXHXJXKXLXDJEUDHUAUBUCMOXMXN
        $.

      $( The function fulfilling the conditions of ~ mhmmnd is a monoid
         homomorphism.  (Contributed by Thierry Arnoux, 26-Jan-2020.) $)
      mhmfmhm $p |- ( ph -> F e. ( G MndHom H ) ) $=
        ( wcel co cfv cmnd wa wf cv wceq wral c0g w3a cmhm mhmmnd wfo fof 3expb
        syl ralrimivva eqid mhmid 3jca jca31 ismhm sylibr ) AGUARZHUARZUBIJFUCZ
        BUDZCUDZDSFTVEFTVFFTESUEZCIUFBIUFZGUGTZFTHUGTZUEZUHZUBFGHUISRAVBVCVLQAB
        CDEFGHIJKLMNOPQUJAVDVHVKAIJFUKVDPIJFULUNAVGBCIIAVEIRVFIRVGKUMUOABCDEFGH
        IJVIKLMNOPQVIUPZUQURUSBCIJDEGHFVJVILMNOVMVJUPUTVA $.
    $}

    ghmgrp.3 $e |- ( ph -> G e. Grp ) $.
    $( The image of a group ` G ` under a group homomorphism ` F ` is a group.
       This is a stronger result than that usually found in the literature,
       since the target of the homomorphism (operator ` O ` in our model) need
       not have any of the properties of a group as a prerequisite.
       (Contributed by Paul Chapman, 25-Apr-2008.)  (Revised by Mario Carneiro,
       12-May-2014.)  (Revised by Thierry Arnoux, 25-Jan-2020.) $)
    ghmgrp $p |- ( ph -> H e. Grp ) $=
      ( wcel cfv wceq vf va vi cmnd cv co c0g wrex wral cgrp grpmnd syl cminusg
      mhmmnd wa wf wfo ad3antrrr simplr eqid grpinvcl syl2anc ffvelrnd 3adant1r
      fof sylan simpr mhmlem adantlr adantr grplinv fveq2d mhmid eqtrd 3eqtr3rd
      oveq2d oveq1 eqeq1d rspcev foelrni r19.29a ralrimiva isgrp sylanbrc ) AHU
      DRUAUEZUBUEZEUFZHUGSZTZUAJUHZUBJUIHUJRABCDEFGHIJKLMNOPAGUJRZGUDRQGUKULZUN
      AWJUBJAWFJRZUOZUCUEZFSZWFTZWJUCIWNWOIRZUOZWQUOZWOGUMSZSZFSZJRXCWFEUFZWHTZ
      WJWTIJXBFAIJFUPZWMWRWQAIJFUQZXFPIJFVEULURWTWKWRXBIRZAWKWMWRWQQURZWNWRWQUS
      ZIGXAWOLXAUTZVAZVBVCWTXBWODUFZFSZXCWPEUFZWHXDWSXNXOTZWQAWRXPWMAWRUOBCXBWO
      DEFIABUEZIRCUEZIRXQXRDUFFSXQFSXRFSEUFTWRKVDAWKWRXHQXLVFAWRVGVHVIVJWTXNGUG
      SZFSZWHWTWKWRXNXTTXIXJWKWRUOXMXSFIDGXAWOXSLNXSUTZXKVKVLVBAXTWHTWMWRWQABCD
      EFGHIJXSKLMNOPWLYAVMURVNWTWPWFXCEWSWQVGVPVOWIXEUAXCJWEXCTWGXDWHWEXCWFEVQV
      RVSVBAXGWMWQUCIUHPUCIJFWFVTVFWAWBJEUAHWHUBMOWHUTWCWD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Group multiple operation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The "group multiple" operation (if the group is multiplicative, also called
"group power" or "group exponentiation" operation), can be defined for
arbitrary magmas, if the multiplier/exponent is a nonnegative integer.  See
also the definition in [Lang] p. 6, where an element ` x `(of a monoid) to the
power of a nonnegative integer ` n ` is defined and denoted by ` x ^ n `.
~ df-mulg , however, defines the group multiple for arbitrary (i.e. also
negative) integers.  This is meaningful for groups only, and requires the
definition ~ df-minusg of the inverse operation ` invg `.
$)

  $c .g $.

  $( Extend class notation with a function mapping a group operation to the
     multiple/power operation for the magma/group. $)
  cmg $a class .g $.

  ${
    $d g n s x $.
    $( Define the group multiple function, also known as group exponentiation
       when viewed multiplicatively.  (Contributed by Mario Carneiro,
       11-Dec-2014.) $)
    df-mulg $a |- .g = ( g e. _V |-> ( n e. ZZ , x e. ( Base ` g ) |->
    if ( n = 0 , ( 0g ` g ) , [_ seq 1 ( ( +g ` g ) , ( NN X. { x } ) ) / s ]_
      if ( 0 < n , ( s ` n ) , ( ( invg ` g ) ` ( s ` -u n ) ) ) ) ) ) $.
  $}

  ${
    $d n w x .0. $.  $d n s w x G $.  $d n s w x I $.  $d n x N $.  $d n x S $.
    $d s w .+ $.  $d n w x B $.  $d n x X $.
    mulgval.b $e |- B = ( Base ` G ) $.
    mulgval.p $e |- .+ = ( +g ` G ) $.
    mulgval.o $e |- .0. = ( 0g ` G ) $.
    mulgval.i $e |- I = ( invg ` G ) $.
    mulgval.t $e |- .x. = ( .g ` G ) $.
    $( Group multiple (exponentiation) operation.  (Contributed by Mario
       Carneiro, 11-Dec-2014.) $)
    mulgfval $p |- .x. = ( n e. ZZ , x e. B |->
      if ( n = 0 , .0. , if ( 0 < n ,
        ( seq 1 ( .+ , ( NN X. { x } ) ) ` n ) ,
        ( I ` ( seq 1 ( .+ , ( NN X. { x } ) ) ` -u n ) ) ) ) ) $=
      ( vs cfv cz wceq cvv cbs c0 vw cmg cv cc0 clt wbr cn csn cxp c1 cseq cneg
      cif cmpt2 wcel c0g cplusg cminusg csb eqidd fveq2 syl6eqr seqex a1i wa id
      seqeq2d sylan9eqr fveq1d simpl fveq2d fveq12d ifeq12d mpt2eq123dv df-mulg
      csbied zex fvex eqeltri mpt2ex fvmpt wn fvprc wfn eqid ifex syl5eq xpeq2d
      fnmpt2i xp0 syl6eq fneq2d mpbii fn0 sylib eqtr4d pm2.61i eqtri ) DFUBOZEA
      PBEUCZUDQZHUDWTUEUFZWTCUGAUCUHUIZUJUKZOZWTULZXDOZGOZUMZUMZUNZMFRUOZWSXKQU
      AFEAPUAUCZSOZXAXMUPOZNXMUQOZXCUJUKZXBWTNUCZOZXFXROZXMUROZOZUMZUSZUMZUNXKR
      UBXMFQZEAPXNYEPBXJYFPUTYFXNFSOZBXMFSVAIVBYFXAXOHYDXIYFXOFUPOZHXMFUPVAKVBY
      FNXQYCXIRXQRUOYFXPXCUJVCVDYFXRXQQZVEZXBXSXEYBXHYJWTXRXDYIYFXRXQXDYIVFYFXP
      CXCUJYFXPFUQOCXMFUQVAJVBVGVHZVIYJXTXGYAGYJYAFUROGYJXMFURYFYIVJVKLVBYJXFXR
      XDYKVIVLVMVPVMVNAUAENVOEAPBXJVQBYGRIFSVRVSVTWAXLWBZWSTXKFUBWCYLXKTWDZXKTQ
      YLXKPBUIZWDYMEAPBXJXKXKWEXAHXIHYHRKFUPVRVSXBXEXHWTXDVRXGGVRWFWFWIYLYNTXKY
      LYNPTUITYLBTPYLBYGTIFSWCWGWHPWJWKWLWMXKWNWOWPWQWR $.

    mulgval.s $e |- S = seq 1 ( .+ , ( NN X. { X } ) ) $.
    $( Value of the group multiple (exponentiation) operation.  (Contributed by
       Mario Carneiro, 11-Dec-2014.) $)
    mulgval $p |- ( ( N e. ZZ /\ X e. B ) -> ( N .x. X ) =
      if ( N = 0 , .0. , if ( 0 < N , ( S ` N ) , ( I ` ( S ` -u N ) ) ) ) ) $=
      ( vn cc0 wceq cfv cif vx cz cv clt wbr cn csn cxp c1 cseq wa simpl eqeq1d
      breq2d simpr sneqd xpeq2d seqeq3d syl6eqr fveq12d negeqd fveq2d ifbieq12d
      cneg ifbieq2d mulgfval c0g cvv fvex eqeltri ifex ovmpt2a ) PUAGHUBAPUCZQR
      ZIQVMUDUEZVMBUFUAUCZUGZUHZUIUJZSZVMVDZVSSZFSZTZTGQRZIQGUDUEZGCSZGVDZCSZFS
      ZTZTDVMGRZVPHRZUKZVNWEWDWKIWNVMGQWLWMULZUMWNVOWFVTWCWGWJWNVMGQUDWOUNWNVMG
      VSCWNVSBUFHUGZUHZUIUJCWNVRWQBUIWNVQWPUFWNVPHWLWMUOUPUQUROUSZWOUTWNWBWIFWN
      WAWHVSCWRWNVMGWOVAUTVBVCVEUAABDPEFIJKLMNVFWEIWKIEVGSVHLEVGVIVJWFWGWJGCVIW
      IFVIVKVKVL $.
  $}

  ${
    $d B n x $.  $d G n x $.
    mulgfn.b $e |- B = ( Base ` G ) $.
    mulgfn.t $e |- .x. = ( .g ` G ) $.
    $( Functionality of the group multiple operation.  (Contributed by Mario
       Carneiro, 21-Mar-2015.)  (Revised by Mario Carneiro, 2-Oct-2015.) $)
    mulgfn $p |- .x. Fn ( ZZ X. B ) $=
      ( vn vx cz cv cc0 wceq c0g cfv clt wbr cplusg cif eqid fvex ifex csn cseq
      cn cxp c1 cneg cminusg mulgfval fnmpt2i ) FGHAFIZJKZCLMZJUJNOZUJCPMZUCGIU
      AUDUEUBZMZUJUFUOMZCUGMZMZQZQBGAUNBFCURULDUNRULRURREUHUKULUTCLSUMUPUSUJUOS
      UQURSTTUI $.
  $}

  ${
    mulgfvi.t $e |- .x. = ( .g ` G ) $.
    $( The group multiple operation is compatible with identity-function
       protection.  (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    mulgfvi $p |- .x. = ( .g ` ( _I ` G ) ) $=
      ( cmg cfv cid cvv wcel wceq fvi eqcomd fveq2d wn c0 fvprc wfn cz cxp mpbi
      base0 eqid mulgfn xp0 fneq2i fn0 syl6eq eqtr4d pm2.61i eqtri ) ABDEZBFEZD
      EZCBGHZUJULIUMBUKDUMUKBBGJKLUMMZUJNULBDOUNULNDEZNUNUKNDBFOLUONPZUONIUOQNR
      ZPUPNUONTUOUAUBUQNUOQUCUDSUOUESUFUGUHUI $.
  $}

  ${
    mulg0.b $e |- B = ( Base ` G ) $.
    mulg0.o $e |- .0. = ( 0g ` G ) $.
    mulg0.t $e |- .x. = ( .g ` G ) $.
    $( Group multiple (exponentiation) operation at zero.  (Contributed by
       Mario Carneiro, 11-Dec-2014.) $)
    mulg0 $p |- ( X e. B -> ( 0 .x. X ) = .0. ) $=
      ( cc0 cz wcel co wceq 0z wa clt wbr cfv cif eqid cplusg csn cxp cseq cneg
      cn c1 cminusg mulgval iftruei syl6eq mpan ) IJKZDAKZIDBLZEMNUMUNOUOIIMZEI
      IPQICUARZUFDUBUCUGUDZRIUEURRCUHRZRSZSEAUQURBCUSIDEFUQTGUSTHURTUIUPEUTITUJ
      UKUL $.
  $}

  ${
    mulgnn.b $e |- B = ( Base ` G ) $.
    mulgnn.p $e |- .+ = ( +g ` G ) $.
    mulgnn.t $e |- .x. = ( .g ` G ) $.
    mulgnn.s $e |- S = seq 1 ( .+ , ( NN X. { X } ) ) $.
    $( Group multiple (exponentiation) operation at a positive integer.
       (Contributed by Mario Carneiro, 11-Dec-2014.) $)
    mulgnn $p |- ( ( N e. NN /\ X e. B ) -> ( N .x. X ) = ( S ` N ) ) $=
      ( cn wcel wa cc0 wceq cfv cif eqid eqtrd c0g clt wbr cneg cminusg mulgval
      co cz nnz sylan nnne0 neneqd iffalsed nngt0 iftrued adantr ) FLMZGAMZNFGD
      UGZFOPZEUAQZOFUBUCZFCQZFUDCQEUEQZQZRZRZVCUQFUHMURUSVGPFUIABCDEVDFGVAHIVAS
      VDSJKUFUJUQVGVCPURUQVGVFVCUQUTVAVFUQFOFUKULUMUQVBVCVEFUNUOTUPT $.
  $}

  ${
    mulg1.b $e |- B = ( Base ` G ) $.
    mulg1.m $e |- .x. = ( .g ` G ) $.
    $( Group multiple (exponentiation) operation at one.  (Contributed by Mario
       Carneiro, 11-Dec-2014.) $)
    mulg1 $p |- ( X e. B -> ( 1 .x. X ) = X ) $=
      ( wcel c1 co cplusg cfv cn csn cxp cseq wceq 1nn eqid mulgnn mpan mpan2
      1z fvconst2g seq1i eqtrd ) DAGZHDBIZHCJKZLDMNZHOZKZDHLGZUFUGUKPQAUHUJBCHD
      EUHRFUJRSTUFDUHUIHUBUFULHUIKDPQLDHAUCUAUDUE $.

    ${
      mulgnnp1.p $e |- .+ = ( +g ` G ) $.
      $( Group multiple (exponentiation) operation at a successor.
         (Contributed by Mario Carneiro, 11-Dec-2014.) $)
      mulgnnp1 $p |- ( ( N e. NN /\ X e. B ) ->
        ( ( N + 1 ) .x. X ) = ( ( N .x. X ) .+ X ) ) $=
        ( cn wcel wa c1 caddc co csn cxp cfv wceq mulgnn cseq cuz nnuz syl6eleq
        simpl seqp1 syl id peano2nn fvconst2g syl2anr oveq2d eqtrd sylan oveq1d
        eqid 3eqtr4d ) EJKZFAKZLZEMNOZBJFPQZMUAZRZEVCRZFBOZVAFCOZEFCOZFBOUTVDVE
        VAVBRZBOZVFUTEMUBRZKVDVJSUTEJVKURUSUEUCUDBVBMEUFUGUTVIFVEBUSUSVAJKZVIFS
        URUSUHEUIZJFVAAUJUKULUMURVLUSVGVDSVMABVCCDVAFGIHVCUPZTUNUTVHVEFBABVCCDE
        FGIHVNTUOUQ $.

      $( Group multiple (exponentiation) operation at two.  (Contributed by
         Mario Carneiro, 15-Oct-2015.) $)
      mulg2 $p |- ( X e. B -> ( 2 .x. X ) = ( X .+ X ) ) $=
        ( wcel c2 co c1 caddc df-2 oveq1i cn wceq 1nn mulgnnp1 mpan mulg1 eqtrd
        syl5eq oveq1d ) EAIZJECKZLECKZEBKZEEBKUEUFLLMKZECKZUHJUIECNOLPIUEUJUHQR
        ABCDLEFGHSTUCUEUGEEBACDEFGUAUDUB $.
    $}

    mulgnegnn.i $e |- I = ( invg ` G ) $.
    $( Group multiple (exponentiation) operation at a negative integer.
       (Contributed by Mario Carneiro, 11-Dec-2014.) $)
    mulgnegnn $p |- ( ( N e. NN /\ X e. B ) ->
      ( -u N .x. X ) = ( I ` ( N .x. X ) ) ) $=
      ( cn wcel cneg cfv co wceq fveq2d cc0 clt wbr eqid wa cplusg csn cxp cseq
      c1 nncn negnegd adantr c0g cif cz nnnegz mulgval sylan wne wn nnne0 cc wb
      negeq0 necon3abid syl mpbid iffalsed cr renegcld nngt0 lt0neg2d wi ltnsym
      nnre 0re mpan2 sylc eqtrd mulgnn 3eqtr4d ) EJKZFAKZUAZELZLZCUBMZJFUCUDUFU
      EZMZDMZEWEMZDMWBFBNZEFBNZDMWAWFWHDWAWCEWEVSWCEOVTVSEEUGZUHUIPPWAWIWBQOZCU
      JMZQWBRSZWBWEMZWGUKZUKZWGVSWBULKVTWIWQOEUMAWDWEBCDWBFWMGWDTZWMTIHWETZUNUO
      VSWQWGOVTVSWQWPWGVSWLWMWPVSEQUPZWLUQZEURVSEUSKZWTXAUTWKXBWLEQEVAVBVCVDVEV
      SWNWOWGVSWBVFKZWBQRSZWNUQZVSEEVLZVGVSQERSXDEVHVSEXFVIVDXCQVFKXDXEVJVMWBQV
      KVNVOVEVPUIVPWAWJWHDAWDWEBCEFGWRHWSVQPVR $.
  $}

  ${
    mulgnn0p1.b $e |- B = ( Base ` G ) $.
    mulgnn0p1.t $e |- .x. = ( .g ` G ) $.
    mulgnn0p1.p $e |- .+ = ( +g ` G ) $.
    $( Group multiple (exponentiation) operation at a successor, extended to
       ` NN0 ` .  (Contributed by Mario Carneiro, 11-Dec-2014.) $)
    mulgnn0p1 $p |- ( ( G e. Mnd /\ N e. NN0 /\ X e. B ) ->
      ( ( N + 1 ) .x. X ) = ( ( N .x. X ) .+ X ) ) $=
      ( cmnd wcel c1 caddc co wceq cc0 wa adantl oveq1d oveq1 cn0 w3a cn simpl3
      simpr mulgnnp1 syl2anc c0g eqid mndlid mulg0 mulg1 3eqtr4rd 3adant2 1e0p1
      cfv syl6eqr eqeq12d syl5ibrcom imp wo simp2 elnn0 sylib mpjaodan ) DJKZEU
      AKZFAKZUBZEUCKZELMNZFCNZEFCNZFBNZOZEPOZVIVJQVJVHVOVIVJUEVFVGVHVJUDABCDEFG
      HIUFUGVIVPVOVIVOVPLFCNZPFCNZFBNZOZVFVHVTVGVFVHQZDUHUPZFBNFVSVQABDFWBGIWBU
      IZUJWAVRWBFBVHVRWBOVFACDFWBGWCHUKRSVHVQFOVFACDFGHULRUMUNVPVLVQVNVSVPVKLFC
      VPVKPLMNLEPLMTUOUQSVPVMVRFBEPFCTSURUSUTVIVGVJVPVAVFVGVHVBEVCVDVE $.
  $}

  ${
    $d x y .+ $.  $d x y B $.  $d x y G $.  $d x I $.  $d x y N $.  $d x y S $.
    $d x y ph $.  $d x .x. $.  $d x y X $.
    mulgnnsubcl.b $e |- B = ( Base ` G ) $.
    mulgnnsubcl.t $e |- .x. = ( .g ` G ) $.
    mulgnnsubcl.p $e |- .+ = ( +g ` G ) $.
    mulgnnsubcl.g $e |- ( ph -> G e. V ) $.
    mulgnnsubcl.s $e |- ( ph -> S C_ B ) $.
    mulgnnsubcl.c $e |- ( ( ph /\ x e. S /\ y e. S ) -> ( x .+ y ) e. S ) $.
    $( Closure of the group multiple (exponentiation) operation in a
       subsemigroup.  (Contributed by Mario Carneiro, 10-Jan-2015.) $)
    mulgnnsubcl $p |- ( ( ph /\ N e. NN /\ X e. S ) -> ( N .x. X ) e. S ) $=
      ( cn wcel c1 w3a co csn cxp cseq cfv wceq simp2 wss 3ad2ant1 simp3 sseldd
      eqid mulgnn syl2anc cuz syl6eleq cv cfz wa elfznn fvconst2g syl2an simpl3
      nnuz eqeltrd 3expb 3ad2antl1 seqcl ) AIRSZKFSZUAZIKGUBZIERKUCUDZTUEZUFZFV
      LVJKDSVMVPUGAVJVKUHZVLFDKAVJFDUIVKPUJAVJVKUKZULDEVOGHIKLNMVOUMUNUOVLBCEFV
      NTIVLIRTUPUFVQVEUQVLBURZTIUSUBSZUTVSVNUFZKFVLVKVSRSWAKUGVTVRVSIVARKVSFVBV
      CAVJVKVTVDVFAVJVSFSZCURZFSZUTVSWCEUBFSZVKAWBWDWEQVGVHVIVF $.

    mulgnn0subcl.z $e |- .0. = ( 0g ` G ) $.
    mulgnn0subcl.c $e |- ( ph -> .0. e. S ) $.
    $( Closure of the group multiple (exponentiation) operation in a submonoid.
       (Contributed by Mario Carneiro, 10-Jan-2015.) $)
    mulgnn0subcl $p |- ( ( ph /\ N e. NN0 /\ X e. S ) -> ( N .x. X ) e. S ) $=
      ( cn0 wcel w3a cn co wceq mulgnnsubcl 3expa an32s 3adantl2 oveq1 3ad2ant1
      cc0 wa wss simp3 sseldd mulg0 syl sylan9eqr adantr eqeltrd wo simp2 elnn0
      sylib mpjaodan ) AIUAUBZKFUBZUCZIUDUBZIKGUEZFUBZIUMUFZAVIVKVMVHAVKVIVMAVK
      VIVMABCDEFGHIJKMNOPQRUGUHUIUJVJVNUNVLLFVNVJVLUMKGUEZLIUMKGUKVJKDUBVOLUFVJ
      FDKAVHFDUOVIQULAVHVIUPUQDGHKLMSNURUSUTVJLFUBZVNAVHVPVITULVAVBVJVHVKVNVCAV
      HVIVDIVEVFVG $.

    mulgsubcl.i $e |- I = ( invg ` G ) $.
    mulgsubcl.c $e |- ( ( ph /\ x e. S ) -> ( I ` x ) e. S ) $.
    $( Closure of the group multiple (exponentiation) operation in a subgroup.
       (Contributed by Mario Carneiro, 10-Jan-2015.) $)
    mulgsubcl $p |- ( ( ph /\ N e. ZZ /\ X e. S ) -> ( N .x. X ) e. S ) $=
      ( cz wcel w3a cn0 co cr cn wa mulgnn0subcl 3expa an32s 3adantl2 cfv simp2
      cneg adantr zcnd negnegd oveq1d wceq id wss 3ad2ant1 simp3 sseldd syl2anr
      mulgnegnn eqtr3d cv wral mulgnnsubcl ralrimiva fveq2 eleq1d rspcv eqeltrd
      sylc adantrl wo elznn0nn sylib mpjaodan ) AJUDUEZLFUEZUFZJUGUEZJLGUHZFUEZ
      JUIUEZJURZUJUEZUKZAWGWIWKWFAWIWGWKAWIWGWKABCDEFGHJKLMNOPQRSTUAULUMUNUOWHW
      NWKWLWHWNUKZWJWMLGUHZIUPZFWPWMURZLGUHZWJWRWPWSJLGWPJWPJWHWFWNAWFWGUQZUSUT
      VAVBWNWNLDUEWTWRVCWHWNVDWHFDLAWFFDVEWGRVFAWFWGVGVHDGHIWMLNOUBVJVIVKWPWQFU
      EZBVLZIUPZFUEZBFVMZWRFUEZAWGWNXBWFAWNWGXBAWNWGXBABCDEFGHWMKLNOPQRSVNUMUNU
      OWHXFWNAWFXFWGAXEBFUCVOVFUSXEXGBWQFXCWQVCXDWRFXCWQIVPVQVRVTVSWAWHWFWIWOWB
      XAJWCWDWE $.
  $}

  ${
    $d x y B $.  $d x y G $.  $d x y N $.  $d x .x. $.  $d x y X $.
    mulgnncl.b $e |- B = ( Base ` G ) $.
    mulgnncl.t $e |- .x. = ( .g ` G ) $.
    $( Closure of the group multiple (exponentiation) operation for a positive
       multiplier in a magma.  (Contributed by Mario Carneiro, 11-Dec-2014.)
       (Revised by AV, 29-Aug-2021.) $)
    mulgnncl $p |- ( ( G e. Mgm /\ N e. NN /\ X e. B ) -> ( N .x. X ) e. B ) $=
      ( vx vy cmgm wcel cplusg cfv eqid id wss ssid a1i cv mgmcl mulgnnsubcl )
      CJKZHIACLMZABCDJEFGUCNZUBOAAPUBAQRACHSISUCFUDTUA $.

    $( Obsolete proof of ~ mulgnncl as of 29-Aug-2021.  Closure of the group
       multiple (exponentiation) operation.  TODO:  This can be generalized to
       a magma if/when we introduce them.  (Contributed by Mario Carneiro,
       11-Dec-2014.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    mulgnnclOLD $p |- ( ( G e. Mnd /\ N e. NN /\ X e. B )
                        -> ( N .x. X ) e. B ) $=
      ( vx vy cmnd wcel cplusg cfv eqid id wss ssid a1i cv mndcl mulgnnsubcl )
      CJKZHIACLMZABCDJEFGUCNZUBOAAPUBAQRAUCCHSISFUDTUA $.

    $( Closure of the group multiple (exponentiation) operation for a
       nonnegative multiplier in a monoid.  (Contributed by Mario Carneiro,
       11-Dec-2014.) $)
    mulgnn0cl $p |- ( ( G e. Mnd /\ N e. NN0 /\ X e. B ) ->
      ( N .x. X ) e. B ) $=
      ( vx vy cmnd wcel cplusg cfv c0g eqid id wss ssid a1i cv mndcl mndidcl
      mulgnn0subcl ) CJKZHIACLMZABCDJECNMZFGUEOZUDPAAQUDARSAUECHTITFUGUAUFOZACU
      FFUHUBUC $.

    $( Closure of the group multiple (exponentiation) operation.  (Contributed
       by Mario Carneiro, 11-Dec-2014.) $)
    mulgcl $p |- ( ( G e. Grp /\ N e. ZZ /\ X e. B ) -> ( N .x. X ) e. B ) $=
      ( vx vy cgrp wcel cplusg cfv cminusg c0g eqid id wss ssid cv a1i grpinvcl
      grpcl grpidcl mulgsubcl ) CJKZHIACLMZABCCNMZDJECOMZFGUGPZUFQAARUFASUAAUGC
      HTZITFUJUCUIPZACUIFULUDUHPZACUHUKFUMUBUE $.

    mulgneg.i $e |- I = ( invg ` G ) $.
    $( Group multiple (exponentiation) operation at a negative integer.
       (Contributed by Paul Chapman, 17-Apr-2009.)  (Revised by Mario Carneiro,
       11-Dec-2014.) $)
    mulgneg $p |- ( ( G e. Grp /\ N e. ZZ /\ X e. B ) ->
      ( -u N .x. X ) = ( I ` ( N .x. X ) ) ) $=
      ( wcel cz cneg co cfv wceq wa cc0 simpl3 syl2anc oveq1d cgrp w3a cr cn wo
      cn0 elnn0 simpr mulgnegnn c0g simpl1 eqid grpinvid syl mulg0 eqtrd fveq2d
      negeqd neg0 syl6eq 3eqtr4rd jaodan sylan2b simprr mulgcl grpinvinv simprl
      nnzd syl3anc recnd negnegd eqtr3d simp2 elznn0nn sylib mpjaodan ) CUAJZEK
      JZFAJZUBZEUFJZELZFBMZEFBMZDNZOZEUCJZWBUDJZPZWAVTEUDJZEQOZUEWFEUGVTWJWFWKV
      TWJPWJVSWFVTWJUHVQVRVSWJRABCDEFGHIUISVTWKPZCUJNZDNZWMWEWCWLVQWNWMOVQVRVSW
      KUKCDWMWMULZIUMUNWLWDWMDWLWDQFBMZWMWLEQFBVTWKUHZTWLVSWPWMOVQVRVSWKRABCFWM
      GWOHUOUNZUPUQWLWCWPWMWLWBQFBWLWBQLQWLEQWQURUSUTTWRUPVAVBVCVTWIPZWCDNZDNZW
      CWEWSVQWCAJZXAWCOVQVRVSWIUKZWSVQWBKJVSXBXCWSWBVTWGWHVDZVHVQVRVSWIRZABCWBF
      GHVEVIACDWCGIVFSWSWTWDDWSWBLZFBMZWTWDWSWHVSXGWTOXDXEABCDWBFGHIUISWSXFEFBW
      SEWSEVTWGWHVGVJVKTVLUQVLVTVRWAWIUEVQVRVSVMEVNVOVP $.

    $( The inverse of a negative group multiple is the positive group multiple.
       (Contributed by Paul Chapman, 17-Apr-2009.)  (Revised by AV,
       30-Aug-2021.) $)
    mulgnegneg $p |- ( ( G e. Grp /\ N e. ZZ /\ X e. B )
                       -> ( I ` ( -u N .x. X ) ) = ( N .x. X ) ) $=
      ( cgrp wcel cz w3a cneg co cfv mulgneg fveq2d wceq simp1 mulgcl grpinvinv
      syl2anc eqtrd ) CJKZELKZFAKZMZENFBOZDPEFBOZDPZDPZUJUHUIUKDABCDEFGHIQRUHUE
      UJAKULUJSUEUFUGTABCEFGHUAACDUJGIUBUCUD $.

    $( Group multiple (exponentiation) operation at negative one.  (Contributed
       by Paul Chapman, 17-Apr-2009.)  (Revised by Mario Carneiro,
       20-Dec-2014.) $)
    mulgm1 $p |- ( ( G e. Grp /\ X e. B ) -> ( -u 1 .x. X ) = ( I ` X ) ) $=
      ( cgrp wcel wa c1 cneg co cfv cz wceq 1z mulgneg mp3an2 adantl fveq2d
      mulg1 eqtrd ) CIJZEAJZKZLMEBNZLEBNZDOZEDOUELPJUFUHUJQRABCDLEFGHSTUGUIEDUF
      UIEQUEABCEFGUCUAUBUD $.
  $}

  ${
    mulgaddcom.b $e |- B = ( Base ` G ) $.
    mulgaddcom.t $e |- .x. = ( .g ` G ) $.
    mulgaddcom.p $e |- .+ = ( +g ` G ) $.
    $( Lemma for ~ mulgaddcom .  (Contributed by Paul Chapman, 17-Apr-2009.)
       (Revised by AV, 31-Aug-2021.) $)
    mulgaddcomlem $p |- ( ( ( G e. Grp /\ y e. ZZ /\ X e. B )
                            /\ ( ( y .x. X ) .+ X ) = ( X .+ ( y .x. X ) ) )
                      -> ( ( -u y .x. X ) .+ X ) = ( X .+ ( -u y .x. X ) ) ) $=
      ( wcel cz co wceq cfv adantr mulgcl oveq1d grpinvadd syl3anc oveq2d cv wa
      cgrp cneg cminusg simp1 simp3 znegcl syl3an2 eqid grpinvcl 3adant2 grpass
      w3a syl13anc mulgneg adantl 3eqtr2rd 3eqtr2d grpasscan1 3eqtrd grpasscan2
      fveq2 grpcl eqtr3d ) EUCJZAUAZKJZFBJZUNZVGFDLZFCLZFVKCLZMZUBZFVGUDZFDLZCL
      ZFEUENZNZCLZFCLZVQFCLVRVOWAVQFCVOWAFVQVTCLZCLZFVTVQCLZCLZVQVOVFVIVQBJZVTB
      JZWAWDMVJVFVNVFVHVIUFZOZVJVIVNVFVHVIUGZOZVJWGVNVHVFVPKJVIWGVGUHBDEVPFGHPU
      IZOZVJWHVNVFVIWHVHBEVSFGVSUJZUKULOBCEFVQVTGIUMUOVOWCWEFCVOWCVKVSNZVTCLZVM
      VSNZWEVOVQWPVTCVJVQWPMVNBDEVSVGFGHWOUPOZQVOVFVIVKBJZWRWQMWJWLVJWTVNBDEVGF
      GHPOZBCEVSFVKGIWORSVOWEVTWPCLZVLVSNZWRVOVQWPVTCWSTVOVFWTVIXCXBMWJXAWLBCEV
      SVKFGIWORSVNXCWRMVJVLVMVSVCUQURUSTVOVFVIWGWFVQMWJWLWNBCEVSFVQGIWOUTSVAQVO
      VFVRBJZVIWBVRMWJVJXDVNVJVFVIWGXDWIWKWMBCEFVQGIVDSOWLBCEVSVRFGIWOVBSVE $.

    $d B x y $.  $d G x y $.  $d N x $.  $d X x y $.  $d .x. x y $.
    $d .+ x y $.
    $( The group multiple operator commutes with the group operation.
       (Contributed by Paul Chapman, 17-Apr-2009.)  (Revised by AV,
       31-Aug-2021.) $)
    mulgaddcom $p |- ( ( G e. Grp /\ N e. ZZ /\ X e. B )
                       -> ( ( N .x. X ) .+ X ) = ( X .+ ( N .x. X ) ) ) $=
      ( vx vy wcel co wceq wi oveq1 oveq1d oveq2d eqeq12d w3a cgrp cz cv cc0 c1
      cneg caddc weq c0g cfv eqid grplid mulg0 adantl grprid eqtrd 3eqtr4d nn0z
      cn0 simp1 simp2 simp3 3jca mulgcl syl grpass syl13anc syl3an3 adantr cmnd
      wa grpmnd 3ad2ant1 mulgnn0p1 eqeq1d biimpar 3expia nnz mulgaddcomlem 3exp
      ex cn com23 imp syl5 zindd 3imp ) DUALZEUBLZFALZEFCMZFBMZFWKBMZNZWHWJWIWN
      WHWJWIWNOJUCZFCMZFBMZFWPBMZNUDFCMZFBMZFWSBMZNKUCZFCMZFBMZFXCBMZNZXBUFZFCM
      ZFBMZFXHBMZNZXBUEUGMZFCMZFBMZFXMBMZNZWNWHWJVKZJKEWOUDNZWQWTWRXAXRWPWSFBWO
      UDFCPZQXRWPWSFBXSRSJKUHZWQXDWRXEXTWPXCFBWOXBFCPZQXTWPXCFBYARSWOXLNZWQXNWR
      XOYBWPXMFBWOXLFCPZQYBWPXMFBYCRSWOXGNZWQXIWRXJYDWPXHFBWOXGFCPZQYDWPXHFBYER
      SWOENZWQWLWRWMYFWPWKFBWOEFCPZQYFWPWKFBYGRSXQDUIUJZFBMFWTXAABDFYHGIYHUKZUL
      XQWSYHFBWJWSYHNWHACDFYHGYIHUMUNZQXQXAFYHBMFXQWSYHFBYJRABDFYHGIYIUOUPUQWHW
      JXBUSLZXFXPOWHWJYKTZXFXPYLXFVKZXEFBMZFXDBMZXNXOYLYNYONZXFYKWHWJXBUBLZYPXB
      URWHWJYQTZWHWJXCALZWJYPWHWJYQUTZWHWJYQVAZYRWHYQWJTZYSYRWHYQWJYTWHWJYQVBUU
      AVCACDXBFGHVDVEUUAABDFXCFGIVFVGVHVIYMXMXEFBYLXMXENXFYLXMXDXEYLDVJLZYKWJTX
      MXDNYLUUCYKWJWHWJUUCYKDVLVMWHWJYKVBWHWJYKVAVCABCDXBFGHIVNVEZVOVPQYLXOYONX
      FYLXMXDFBUUDRVIUQWAVQXBWBLYQXQXFXKOZXBVRWHWJYQUUEOWHYQWJUUEWHYQWJUUEUUBXF
      XKKABCDFGHIVSWAVTWCWDWEWFWAWCWG $.
  $}

  ${
    $d B x y $.  $d G x y $.  $d I x y $.  $d N x $.  $d X x y $.
    $d .x. x y $.
    mulginvcom.b $e |- B = ( Base ` G ) $.
    mulginvcom.t $e |- .x. = ( .g ` G ) $.
    mulginvcom.i $e |- I = ( invg ` G ) $.
    $( The group multiple operator commutes with the group inverse function.
       (Contributed by Paul Chapman, 17-Apr-2009.)  (Revised by AV,
       31-Aug-2021.) $)
    mulginvcom $p |- ( ( G e. Grp /\ N e. ZZ /\ X e. B )
                       -> ( N .x. ( I ` X ) ) = ( I ` ( N .x. X ) ) ) $=
      ( vx wcel cfv co wceq wi cc0 oveq1 fveq2d eqeq12d adantr vy cgrp cz cv c1
      cneg caddc weq c0g eqid grpinvid eqcomd grpinvcl mulg0 syl adantl 3eqtr4d
      cn0 w3a cplusg oveq2 cmnd grpmnd 3ad2ant1 simp2 3adant2 mulgnn0p1 syl3anc
      wa simp1 nn0z 3ad2ant2 mulgaddcom eqtrd syl3an1 mulgcl grpinvadd syld3an2
      syl3an2 3exp1 com23 imp nnz mulgneg syld3an3 simpr eqtr4d syl5 zindd 3imp
      cn ex ) CUBKZEUCKZFAKZEFDLZBMZEFBMZDLZNZWMWOWNWTWMWOWNWTOJUDZWPBMZXAFBMZD
      LZNPWPBMZPFBMZDLZNUAUDZWPBMZXHFBMZDLZNZXHUFZWPBMZXMFBMZDLZNZXHUEUGMZWPBMZ
      XRFBMZDLZNZWTWMWOVIZJUAEXAPNZXBXEXDXGXAPWPBQYDXCXFDXAPFBQRSJUAUHZXBXIXDXK
      XAXHWPBQYEXCXJDXAXHFBQRSXAXRNZXBXSXDYAXAXRWPBQYFXCXTDXAXRFBQRSXAXMNZXBXNX
      DXPXAXMWPBQYGXCXODXAXMFBQRSXAENZXBWQXDWSXAEWPBQYHXCWRDXAEFBQRSYCCUILZYIDL
      ZXEXGWMYIYJNWOWMYJYICDYIYIUJZIUKULTYCWPAKZXEYINACDFGIUMZABCWPYIGYKHUNUOYC
      XFYIDWOXFYINWMABCFYIGYKHUNUPRUQWMWOXHURKZXLYBOZOWMYNWOYOWMYNWOXLYBWMYNWOU
      SZXLVIWPXICUTLZMZWPXKYQMZXSYAXLYRYSNYPXIXKWPYQVAUPYPXSYRNXLYPXSXIWPYQMZYR
      YPCVBKZYNYLXSYTNWMYNUUAWOCVCZVDWMYNWOVEWMWOYLYNYMVFZAYQBCXHWPGHYQUJZVGVHY
      PWMXHUCKZYLYTYRNWMYNWOVJYNWMUUEWOXHVKZVLUUCAYQBCXHWPGHUUDVMVHVNTYPYAYSNXL
      YPYAXJFYQMZDLZYSYPXTUUGDWMUUAYNWOXTUUGNUUBAYQBCXHFGHUUDVGVORWMXJAKZYNWOUU
      HYSNYNWMUUEWOUUIUUFABCXHFGHVPVSAYQCDXJFGUUDIVQVRVNTUQVTWAWBXHWKKUUEYCXLXQ
      OZXHWCWMWOUUEUUJOWMUUEWOUUJWMUUEWOXLXQWMUUEWOUSZXLVIZXNXIDLZXPUUKXNUUMNZX
      LWMUUEWOYLUUNWMWOYLUUEYMVFABCDXHWPGHIWDWETUULXOXIDUULXOXKXIUUKXOXKNXLABCD
      XHFGHIWDTUUKXLWFWGRWGVTWAWBWHWIWLWAWJ $.

    $( The group multiple operator commutes with the group inverse function.
       (Contributed by Paul Chapman, 17-Apr-2009.)  (Revised by AV,
       31-Aug-2021.) $)
    mulginvinv $p |- ( ( G e. Grp /\ N e. ZZ /\ X e. B )
                   -> ( I ` ( N .x. ( I ` X ) ) ) = ( N .x. X ) ) $=
      ( cgrp wcel cz w3a cfv co wceq grpinvcl 3adant2 mulginvcom syld3an3
      grpinvinv oveq2d eqtr3d ) CJKZELKZFAKZMZEFDNZDNZBOZEUHBODNZEFBOUDUEUFUHAK
      ZUJUKPUDUFULUEACDFGIQRABCDEUHGHISTUGUIFEBUDUFUIFPUEACDFGIUARUBUC $.
  $}

  ${
    $d x G $.  $d x N $.  $d x .0. $.
    mulgnn0z.b $e |- B = ( Base ` G ) $.
    mulgnn0z.t $e |- .x. = ( .g ` G ) $.
    mulgnn0z.o $e |- .0. = ( 0g ` G ) $.
    $( A group multiple of the identity, for nonnegative multiple.
       (Contributed by Mario Carneiro, 13-Dec-2014.) $)
    mulgnn0z $p |- ( ( G e. Mnd /\ N e. NN0 ) -> ( N .x. .0. ) = .0. ) $=
      ( vx cn0 wcel cmnd cn cc0 wceq co cfv c1 eqid adantr elnn0 cplusg csn cxp
      wo wa cseq id mndidcl mulgnn syl2anr mndlid mpdan cuz simpr nnuz syl6eleq
      cfz elfznn fvconst2g syl2an seqid3 eqtrd oveq1 mulg0 syl sylan9eqr jaodan
      cv sylan2b ) DJKCLKZDMKZDNOZUEDEBPZEOZDUAVKVLVOVMVKVLUFZVNDCUBQZMEUCUDZRU
      GZQZEVLVLEAKZVNVTOVKVLUHACEFHUIZAVQVSBCDEFVQSZGVSSUJUKVPIVQVRRDEVKEEVQPEO
      ZVLVKWAWDWBAVQCEEFWCHULUMTVPDMRUNQVKVLUOUPUQVPWAIVIZMKWEVRQEOWERDURPKVKWA
      VLWBTWEDUSMEWEAUTVAVBVCVMVKVNNEBPZEDNEBVDVKWAWFEOWBABCEEFHGVEVFVGVHVJ $.

    $( A group multiple of the identity, for integer multiple.  (Contributed by
       Mario Carneiro, 13-Dec-2014.) $)
    mulgz $p |- ( ( G e. Grp /\ N e. ZZ ) -> ( N .x. .0. ) = .0. ) $=
      ( wcel cz wa cn0 co wceq cneg mulgnn0z sylan cfv adantl ad2antrr cgrp zcn
      cmnd grpmnd adantr cminusg simpll nn0z grpidcl mulgneg syl3anc cc negnegd
      eqid ad2antlr oveq1d fveq2d grpinvid eqtrd 3eqtr3d wo cr simprbi mpjaodan
      elznn0 ) CUAIZDJIZKZDLIZDEBMZENZDOZLIZVHCUCIZVIVKVFVNVGCUDUEZABCDEFGHPQVH
      VMKZVLOZEBMZVLEBMZCUFRZRZVJEVPVFVLJIZEAIZVRWANVFVGVMUGVMWBVHVLUHSVFWCVGVM
      ACEFHUITABCVTVLEFGVTUNZUJUKVPVQDEBVPDVGDULIVFVMDUBUOUMUPVPWAEVTRZEVPVSEVT
      VHVNVMVSENVOABCVLEFGHPQUQVFWEENVGVMCVTEHWDURTUSUTVGVIVMVAZVFVGDVBIWFDVEVC
      SVD $.
  $}

  ${
    $d x y z B $.  $d x y z G $.  $d x y z M $.  $d x y z N $.  $d x y z .+ $.
    $d x y z X $.
    mulgnndir.b $e |- B = ( Base ` G ) $.
    mulgnndir.t $e |- .x. = ( .g ` G ) $.
    mulgnndir.p $e |- .+ = ( +g ` G ) $.
    $( Sum of group multiples, for positive multiples.  (Contributed by Mario
       Carneiro, 11-Dec-2014.)  (Revised by AV, 29-Aug-2021.) $)
    mulgnndir $p |- ( ( G e. SGrp /\ ( M e. NN /\ N e. NN /\ X e. B ) ) ->
      ( ( M + N ) .x. X ) = ( ( M .x. X ) .+ ( N .x. X ) ) ) $=
      ( wcel cn w3a wa caddc co c1 cfv wceq syl2anc vx vy vz csgrp csn cxp cseq
      cv sgrpmgm 3anim1i mgmcl syl 3expb adantlr sgrpass cuz cz simpr2 syl6eleq
      cmgm nnuz simpr1 nnzd eluzadd nncnd addcomd ax-1cn addcom sylancl 3eltr4d
      fveq2d cfz simpr3 elfznn fvconst2g syl2an adantr eqeltrd seqsplit nnaddcl
      cc eqid mulgnn syl2anr eqtr4d seqshft2 seqeq1d fveq12d 3eqtr4d oveq12d )
      DUDKZELKZFLKZGAKZMZNZEFOPZBLGUEUFZQUGZRZEWSRZWQBWREQOPZUGZRZBPWQGCPZEGCPZ
      FGCPZBPWPUAUBUCBAWRQEWQWKUAUHZAKZUBUHZAKZNXHXJBPZAKZWOWKXIXKXMWKXIXKMDUTK
      ZXIXKMXMWKXNXIXKDUIUJADXHXJBHJUKULUMUNWKXIXKUCUHZAKMXLXOBPXHXJXOBPBPSWOAD
      XHXJBXOHJUOUNWPFEOPZQEOPZUPRZWQXBUPRWPFQUPRZKEUQKXPXRKWPFLXSWKWLWMWNURZVA
      USZWPEWKWLWMWNVBZVCZEQFVDTWPEFWPEYBVEZWPFXTVEVFZWPXBXQUPWPEWAKQWAKXBXQSYD
      VGEQVHVIZVKVJWPELXSYBVAUSWPXHQWQVLPKZNXHWRRZGAWPWNXHLKZYHGSZYGWKWLWMWNVMZ
      XHWQVNLGXHAVOZVPWPWNYGYKVQVRVSWPWQLKZWNXEWTSWPWLWMYMYBXTEFVTTYKABWSCDWQGH
      JIWSWBZWCTWPXFXAXGXDBWPWLWNXFXASYBYKABWSCDEGHJIYNWCTWPFWSRZXPBWRXQUGZRXGX
      DWPBUAWRWREQFYAYCWPXHQFVLPKZNZYHGXHEOPZWRRZWPWNYIYJYQYKXHFVNZYLVPYRWNYSLK
      ZYTGSWPWNYQYKVQYQYIWLUUBWPUUAYBXHEVTWDLGYSAVOTWEWFWPWMWNXGYOSXTYKABWSCDFG
      HJIYNWCTWPWQXPXCYPWPXBXQBWRYFWGYEWHWIWJWI $.

    $( Obsolete proof of ~ mulgnndir as of 29-Aug-2021.  Sum of group
       multiples, for positive multiples.  TODO:  This can be generalized to a
       semigroup if/when we introduce them.  (Contributed by Mario Carneiro,
       11-Dec-2014.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    mulgnndirOLD $p |- ( ( G e. Mnd /\ ( M e. NN /\ N e. NN /\ X e. B ) ) ->
      ( ( M + N ) .x. X ) = ( ( M .x. X ) .+ ( N .x. X ) ) ) $=
      ( wcel cn wa caddc co c1 cfv wceq cuz syl2anc vx vy cmnd w3a csn cxp cseq
      vz cv mndcl 3expb adantlr mndass simpr2 nnuz syl6eleq simpr1 nnzd eluzadd
      cz nncnd addcomd cc ax-1cn addcom sylancl fveq2d 3eltr4d simpr3 fvconst2g
      cfz elfznn syl2an adantr eqeltrd seqsplit nnaddcl mulgnn syl2anr seqshft2
      eqid eqtr4d seqeq1d fveq12d 3eqtr4d oveq12d ) DUCKZELKZFLKZGAKZUDZMZEFNOZ
      BLGUEUFZPUGZQZEWOQZWMBWNEPNOZUGZQZBOWMGCOZEGCOZFGCOZBOWLUAUBUHBAWNPEWMWGU
      AUIZAKZUBUIZAKZMXDXFBOZAKZWKWGXEXGXIABDXDXFHJUJUKULWGXEXGUHUIZAKUDXHXJBOX
      DXFXJBOBORWKABDXDXFXJHJUMULWLFENOZPENOZSQZWMWRSQWLFPSQZKEUTKXKXMKWLFLXNWG
      WHWIWJUNZUOUPZWLEWGWHWIWJUQZURZEPFUSTWLEFWLEXQVAZWLFXOVAVBZWLWRXLSWLEVCKP
      VCKWRXLRXSVDEPVEVFZVGVHWLELXNXQUOUPWLXDPWMVKOKZMXDWNQZGAWLWJXDLKZYCGRZYBW
      GWHWIWJVIZXDWMVLLGXDAVJZVMWLWJYBYFVNVOVPWLWMLKZWJXAWPRWLWHWIYHXQXOEFVQTYF
      ABWOCDWMGHJIWOWAZVRTWLXBWQXCWTBWLWHWJXBWQRXQYFABWOCDEGHJIYIVRTWLFWOQZXKBW
      NXLUGZQXCWTWLBUAWNWNEPFXPXRWLXDPFVKOKZMZYCGXDENOZWNQZWLWJYDYEYLYFXDFVLZYG
      VMYMWJYNLKZYOGRWLWJYLYFVNYLYDWHYQWLYPXQXDEVQVSLGYNAVJTWBVTWLWIWJXCYJRXOYF
      ABWOCDFGHJIYIVRTWLWMXKWSYKWLWRXLBWNYAWCXTWDWEWFWE $.

    $( Sum of group multiples, generalized to ` NN0 ` .  (Contributed by Mario
       Carneiro, 11-Dec-2014.) $)
    mulgnn0dir $p |- ( ( G e. Mnd /\ ( M e. NN0 /\ N e. NN0 /\ X e. B ) ) ->
      ( ( M + N ) .x. X ) = ( ( M .x. X ) .+ ( N .x. X ) ) ) $=
      ( wcel wa caddc co wceq cc0 adantr simpr oveq1d eqtrd cmnd cn0 cn mndsgrp
      w3a csgrp simplr simpr3 ad2antrr mulgnndir syl13anc c0g cfv simpll simpr1
      simplr3 mulgnn0cl syl3anc eqid mndrid syl2anc mulg0 oveq2d nn0cnd addid1d
      syl 3eqtr4rd adantlr simpr2 elnn0 sylib mpjaodan simplr2 mndlid addid2d
      wo ) DUAKZEUBKZFUBKZGAKZUEZLZEUCKZEFMNZGCNZEGCNZFGCNZBNZOZEPOZWBWCLZFUCKZ
      WIFPOZWKWLLDUFKZWCWLVTWIWKWNWLWBWNWCVQWNWADUDQQQWBWCWLUGWKWLRWBVTWCWLVQVR
      VSVTUHUIABCDEFGHIJUJUKWBWMWIWCWBWMLZWFDULUMZBNZWFWHWEWOVQWFAKZWQWFOVQWAWM
      UNZWOVQVRVTWRWSWBVRWMVQVRVSVTUOZQZVRVSVTVQWMUPZACDEGHIUQURABDWFWPHJWPUSZU
      TVAWOWGWPWFBWOWGPGCNZWPWOFPGCWBWMRZSWOVTXDWPOZXBACDGWPHXCIVBZVFTVCWOWDEGC
      WOWDEPMNEWOFPEMXEVCWOEWOEXAVDVETSVGVHWBWLWMVPZWCWBVSXHVQVRVSVTVIFVJVKQVLW
      BWJLZWPWGBNZWGWHWEXIVQWGAKZXJWGOVQWAWJUNZXIVQVSVTXKXLVRVSVTVQWJVMZVRVSVTV
      QWJUPZACDFGHIUQURABDWGWPHJXCVNVAXIWFWPWGBXIWFXDWPXIEPGCWBWJRZSXIVTXFXNXGV
      FTSXIWDFGCXIWDPFMNFXIEPFMXOSXIFXIFXMVDVOTSVGWBVRWCWJVPWTEVJVKVL $.

    $( Lemma for ~ mulgdir .  (Contributed by Mario Carneiro, 13-Dec-2014.) $)
    mulgdirlem $p |- ( ( G e. Grp /\
        ( M e. ZZ /\ N e. ZZ /\ X e. B ) /\ ( M + N ) e. NN0 ) ->
      ( ( M + N ) .x. X ) = ( ( M .x. X ) .+ ( N .x. X ) ) ) $=
      ( wcel cz co cn0 wceq wa syl syl13anc adantr syl3anc cgrp caddc cneg cmnd
      w3a simpl1 grpmnd simprl simprr simpl23 mulgnn0dir anassrs c0g cfv simp22
      cminusg eqid mulgneg oveq1d mulgcl grplinv syl2anc oveq2d simpl3 ad2antll
      eqtrd nn0z grprid grpass cmin cc simp21 zcnd addcld negsubd pncand eqtr3d
      wo elznn0 simprbi mpjaodan znegcld 3ad2ant3 grprinv grplid negcld addcomd
      cr simpr pncan2d 3eqtrd 3eqtr3d ) DUAKZELKZFLKZGAKZUEZEFUBMZNKZUEZENKZWRG
      CMZEGCMZFGCMZBMZOZEUCZNKZWTXAPFNKZXFFUCZNKZWTXAXIXFWTXAXIPZPZDUDKZXAXIWPX
      FXMWMXNWMWQWSXLUFDUGZQWTXAXIUHWTXAXIUIWNWOWPWMWSXLUJABCDEFGHIJUKRULWTXAXK
      XFWTXAXKPZPZXBXJGCMZXDBMZBMZXBXEXQXTXBDUMUNZBMZXBXQXSYAXBBXQXSXDDUPUNZUNZ
      XDBMZYAXQXRYDXDBXQWMWOWPXRYDOWMWQWSXPUFZWTWOXPWMWNWOWPWSUOZSZWNWOWPWMWSXP
      UJZACDYCFGHIYCUQZURTUSXQWMXDAKZYEYAOYFXQWMWOWPYKYFYHYIACDFGHIUTTZABDYCXDY
      AHJYAUQZYJVAVBVFVCXQWMXBAKZYBXBOYFXQWMWRLKZWPYNYFXQWSYOWMWQWSXPVDZWRVGZQY
      IACDWRGHIUTZTZABDXBYAHJYMVHVBVFXQXBXRBMZXDBMZXTXEXQWMYNXRAKZYKUUAXTOYFYSX
      QWMXJLKZWPUUBYFXKUUCWTXAXJVGVEYIACDXJGHIUTTYLABDXBXRXDHJVIRXQYTXCXDBXQWRX
      JUBMZGCMZYTXCXQXNWSXKWPUUEYTOXQWMXNYFXOQYPWTXAXKUIYIABCDWRXJGHIJUKRXQUUDE
      GCXQUUDWRFVJMEXQWRFWTWRVKKZXPWTEFWTEWMWNWOWPWSVLZVMZWTFYGVMZVNZSWTFVKKZXP
      UUISZVOXQEFWTEVKKZXPUUHSUULVPVFUSVQUSVQVQULWTXIXKVRZXAWTWOUUNYGWOFWHKUUNF
      VSVTQSWAWTXHPZXCXGGCMZBMZXBBMZXCUUPXBBMZBMZXBXEUUOWMXCAKZUUPAKZYNUURUUTOW
      MWQWSXHUFZUUOWMWNWPUVAUVCWTWNXHUUGSZWNWOWPWMWSXHUJZACDEGHIUTTZUUOWMXGLKWP
      UVBUVCUUOEUVDWBUVEACDXGGHIUTTUUOWMYOWPYNUVCWTYOXHWSWMYOWQYQWCSUVEYRTZABDX
      CUUPXBHJVIRUUOUURYAXBBMZXBUUOUUQYAXBBUUOUUQXCXCYCUNZBMZYAUUOUUPUVIXCBUUOW
      MWNWPUUPUVIOUVCUVDUVEACDYCEGHIYJURTVCUUOWMUVAUVJYAOUVCUVFABDYCXCYAHJYMYJW
      DVBVFUSUUOWMYNUVHXBOUVCUVGABDXBYAHJYMWEVBVFUUOUUSXDXCBUUOXGWRUBMZGCMZUUSX
      DUUOXNXHWSWPUVLUUSOUUOWMXNUVCXOQWTXHWIWMWQWSXHVDUVEABCDXGWRGHIJUKRUUOUVKF
      GCUUOUVKWRXGUBMWREVJMFUUOXGWRUUOEWTUUMXHUUHSZWFWTUUFXHUUJSZWGUUOWREUVNUVM
      VOUUOEFUVMWTUUKXHUUISWJWKUSVQVCWLWTWNXAXHVRZUUGWNEWHKUVOEVSVTQWA $.

    $( Sum of group multiples, generalized to ` ZZ ` .  (Contributed by Mario
       Carneiro, 13-Dec-2014.) $)
    mulgdir $p |- ( ( G e. Grp /\ ( M e. ZZ /\ N e. ZZ /\ X e. B ) ) ->
      ( ( M + N ) .x. X ) = ( ( M .x. X ) .+ ( N .x. X ) ) ) $=
      ( wcel cz caddc co cn0 wceq cneg cfv adantr syl3anc cgrp mulgdirlem 3expa
      w3a wa cminusg simpll simpr2 znegcld simpr1 simplr3 negdid negcld addcomd
      zcnd eqtrd simpr eqeltrrd syl131anc oveq1d zaddcld mulgneg eqtr3d oveq12d
      eqid mulgcl grpinvadd eqtr4d 3eqtr3d fveq2d grpinvinv syl2anc grpcl wo cr
      elznn0 simprbi syl mpjaodan ) DUAKZELKZFLKZGAKZUDZUEZEFMNZOKZWFGCNZEGCNZF
      GCNZBNZPZWFQZOKZVTWDWGWLABCDEFGHIJUBUCWEWNUEZWHDUFRZRZWPRZWKWPRZWPRZWHWKW
      OWQWSWPWOFQZEQZMNZGCNZXAGCNZXBGCNZBNZWQWSWOVTXALKXBLKWCXCOKXDXGPVTWDWNUGZ
      WOFWEWBWNVTWAWBWCUHZSZUIWOEWEWAWNVTWAWBWCUJZSZUIWAWBWCVTWNUKZWOWMXCOWOWMX
      BXAMNXCWOEFWOEXLUOZWOFXJUOZULWOXBXAWOEXNUMWOFXOUMUNUPZWEWNUQURABCDXAXBGHI
      JUBUSWOWMGCNZXDWQWOWMXCGCXPUTWOVTWFLKZWCXQWQPXHWEXRWNWEEFXKXIVAZSZXMACDWP
      WFGHIWPVEZVBTVCWOXGWJWPRZWIWPRZBNZWSWOXEYBXFYCBWOVTWBWCXEYBPXHXJXMACDWPFG
      HIYAVBTWOVTWAWCXFYCPXHXLXMACDWPEGHIYAVBTVDWOVTWIAKZWJAKZWSYDPXHWOVTWAWCYE
      XHXLXMACDEGHIVFTZWOVTWBWCYFXHXJXMACDFGHIVFTZABDWPWIWJHJYAVGTVHVIVJWOVTWHA
      KZWRWHPXHWOVTXRWCYIXHXTXMACDWFGHIVFTADWPWHHYAVKVLWOVTWKAKZWTWKPXHWOVTYEYF
      YJXHYGYHABDWIWJHJVMTADWPWKHYAVKVLVIWEXRWGWNVNZXSXRWFVOKYKWFVPVQVRVS $.

    $( Group multiple (exponentiation) operation at a successor, extended to
       ` ZZ ` .  (Contributed by Mario Carneiro, 11-Dec-2014.) $)
    mulgp1 $p |- ( ( G e. Grp /\ N e. ZZ /\ X e. B ) ->
      ( ( N + 1 ) .x. X ) = ( ( N .x. X ) .+ X ) ) $=
      ( cgrp wcel cz w3a c1 caddc co wceq 1z mulgdir mp3anr2 3impb mulg1 oveq2d
      3ad2ant3 eqtrd ) DJKZELKZFAKZMZENOPFCPZEFCPZNFCPZBPZUKFBPUFUGUHUJUMQZUFUG
      NLKUHUNRABCDENFGHISTUAUIULFUKBUHUFULFQUGACDFGHUBUDUCUE $.
  $}

  ${
    $d n x B $.  $d n x G $.  $d n x I $.  $d n x .x. $.  $d n x X $.
    $d x N $.
    mulgneg2.b $e |- B = ( Base ` G ) $.
    mulgneg2.m $e |- .x. = ( .g ` G ) $.
    mulgneg2.i $e |- I = ( invg ` G ) $.
    $( Group multiple (exponentiation) operation at a negative integer.
       (Contributed by Mario Carneiro, 13-Dec-2014.) $)
    mulgneg2 $p |- ( ( G e. Grp /\ N e. ZZ /\ X e. B ) ->
      ( -u N .x. X ) = ( N .x. ( I ` X ) ) ) $=
      ( wcel cneg co cfv wceq cc0 c1 negeq oveq1d oveq1 eqeq12d vx vn cgrp neg0
      cz cv caddc wa syl6eq c0g eqid mulg0 adantl grpinvcl syl eqtr4d wi cplusg
      cn0 cc nn0cn ax-1cn negdi sylancl simpll nn0negz 1z znegcl simplr mulgdir
      mp1i syl13anc mulgm1 adantr oveq2d 3eqtrd grpmnd ad2antrr simpr mulgnn0p1
      cmnd syl3anc syl5ibr ex cn fveq2 nnnegz mulgneg id mulgnegnn zindd 3impia
      syl2anr 3com23 ) CUCJZFAJZEUEJZEKZFBLZEFDMZBLZNZWOWPWQXBUAUFZKZFBLZXCWTBL
      ZNOFBLZOWTBLZNUBUFZKZFBLZXIWTBLZNZXJKZFBLZXJWTBLZNZXIPUGLZKZFBLZXRWTBLZNZ
      XBWOWPUHZUAUBEXCONZXEXGXFXHYDXDOFBYDXDOKOXCOQUDUIRXCOWTBSTXCXINZXEXKXFXLY
      EXDXJFBXCXIQRXCXIWTBSTXCXRNZXEXTXFYAYFXDXSFBXCXRQRXCXRWTBSTXCXJNZXEXOXFXP
      YGXDXNFBXCXJQRXCXJWTBSTXCENZXEWSXFXAYHXDWRFBXCEQRXCEWTBSTYCXGCUJMZXHWPXGY
      INWOABCFYIGYIUKZHULUMYCWTAJZXHYINACDFGIUNZABCWTYIGYJHULUOUPYCXIUSJZXMYBUQ
      XMYBYCYMUHZXKWTCURMZLZXLWTYOLZNXKXLWTYOSYNXTYPYAYQYNXTXJPKZUGLZFBLZXKYRFB
      LZYOLZYPYNXSYSFBYNXIUTJZPUTJXSYSNYMUUCYCXIVAUMVBXIPVCVDRYNWOXJUEJZYRUEJZW
      PYTUUBNWOWPYMVEYMUUDYCXIVFUMPUEJUUEYNVGPVHVKWOWPYMVIAYOBCXJYRFGHYOUKZVJVL
      YNUUAWTXKYOYCUUAWTNYMABCDFGHIVMVNVOVPYNCWAJZYMYKYAYQNWOUUGWPYMCVQVRYCYMVS
      YCYKYMYLVNAYOBCXIWTGHUUFVTWBTWCWDYCXIWEJZXMXQUQXMXQYCUUHUHZXKDMZXLDMZNXKX
      LDWFUUIXOUUJXPUUKUUIWOUUDWPXOUUJNWOWPUUHVEUUHUUDYCXIWGUMWOWPUUHVIABCDXJFG
      HIWHWBUUHUUHYKXPUUKNYCUUHWIYLABCDXIWTGHIWJWMTWCWDWKWLWN $.
  $}

  ${
    $d m n B $.  $d m n G $.  $d m n N $.  $d m n .x. $.  $d m n X $.
    $d n M $.
    mulgass.b $e |- B = ( Base ` G ) $.
    mulgass.t $e |- .x. = ( .g ` G ) $.
    $( Product of group multiples, for positive multiples in a semigroup.
       (Contributed by Mario Carneiro, 13-Dec-2014.)  (Revised by AV,
       29-Aug-2021.) $)
    mulgnnass $p |- ( ( G e. SGrp /\ ( M e. NN /\ N e. NN /\ X e. B ) ) ->
      ( ( M x. N ) .x. X ) = ( M .x. ( N .x. X ) ) ) $=
      ( wcel cn cmul co wceq wi c1 caddc oveq1 oveq1d eqeq12d imbi2d vn vm nncn
      csgrp w3a mulid2d 3ad2ant1 cmgm sgrpmgm 3anim1i mulgnncl syl 3coml eqtr4d
      cv mulg1 wa cplusg cfv cc adantr simpr1 nncnd adddird adantl oveq2d eqtrd
      1cnd simpr3 nnmulcl 3ad2antr1 eqid mulgnndir syl13anc mulgnnp1 syl5ibr ex
      simpr2 sylan2 a2d nnind 3expd com4r 3imp2 ) CUDIZDJIZEJIZFAIZDEKLZFBLZDEF
      BLZBLZMZWFWGWHWEWMWFWGWHWEWMWGWHWEUEZUAUOZEKLZFBLZWOWKBLZMZNWNOEKLZFBLZOW
      KBLZMZNWNUBUOZEKLZFBLZXDWKBLZMZNWNXDOPLZEKLZFBLZXIWKBLZMZNWNWMNUAUBDWOOMZ
      WSXCWNXNWQXAWRXBXNWPWTFBWOOEKQRWOOWKBQSTWOXDMZWSXHWNXOWQXFWRXGXOWPXEFBWOX
      DEKQRWOXDWKBQSTWOXIMZWSXMWNXPWQXKWRXLXPWPXJFBWOXIEKQRWOXIWKBQSTWODMZWSWMW
      NXQWQWJWRWLXQWPWIFBWODEKQRWODWKBQSTWNXAWKXBWNWTEFBWGWHWTEMZWEWGEEUCUFUGZR
      WNWKAIZXBWKMWEWGWHXTWEWGWHUECUHIZWGWHUEXTWEYAWGWHCUIUJABCEFGHUKULUMZABCWK
      GHUPULUNXDJIZWNXHXMYCWNXHXMNXHXMYCWNUQZXFWKCURUSZLZXGWKYELZMXFXGWKYEQYDXK
      YFXLYGYDXKXEEPLZFBLZYFYDXJYHFBYDXJXEWTPLYHYDXDOEYCXDUTIWNXDUCVAYDVHYDEYCW
      GWHWEVBZVCVDYDWTEXEPWNXRYCXSVEVFVGRYDWEXEJIZWGWHYIYFMYCWGWHWEVIYCWHWGYKWE
      XDEVJVKYJYCWGWHWEVRAYEBCXEEFGHYEVLZVMVNVGWNYCXTXLYGMYBAYEBCXDWKGHYLVOVSSV
      PVQVTWAWBWCWD $.

    $( Obsolete proof of ~ mulgnnass as of 29-Aug-2021.  Product of group
       multiples, for positive multiples.  TODO:  This can be generalized to a
       semigroup if/when we introduce them.  (Contributed by Mario Carneiro,
       13-Dec-2014.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    mulgnnassOLD $p |- ( ( G e. Mnd /\ ( M e. NN /\ N e. NN /\ X e. B ) ) ->
      ( ( M x. N ) .x. X ) = ( M .x. ( N .x. X ) ) ) $=
      ( wcel cn cmul co wceq wi c1 caddc oveq1 oveq1d eqeq12d imbi2d vn vm cmnd
      w3a cv nncn mulid2d 3ad2ant1 mulgnnclOLD 3coml mulg1 syl eqtr4d wa cplusg
      cfv adantr 1cnd simpr1 nncnd adddird adantl oveq2d eqtrd simpr3 3ad2antr1
      cc nnmulcl simpr2 mulgnndirOLD syl13anc mulgnnp1 sylan2 syl5ibr a2d nnind
      eqid ex 3expd com4r 3imp2 ) CUCIZDJIZEJIZFAIZDEKLZFBLZDEFBLZBLZMZWCWDWEWB
      WJWCWDWEWBWJWDWEWBUDZUAUEZEKLZFBLZWLWHBLZMZNWKOEKLZFBLZOWHBLZMZNWKUBUEZEK
      LZFBLZXAWHBLZMZNWKXAOPLZEKLZFBLZXFWHBLZMZNWKWJNUAUBDWLOMZWPWTWKXKWNWRWOWS
      XKWMWQFBWLOEKQRWLOWHBQSTWLXAMZWPXEWKXLWNXCWOXDXLWMXBFBWLXAEKQRWLXAWHBQSTW
      LXFMZWPXJWKXMWNXHWOXIXMWMXGFBWLXFEKQRWLXFWHBQSTWLDMZWPWJWKXNWNWGWOWIXNWMW
      FFBWLDEKQRWLDWHBQSTWKWRWHWSWKWQEFBWDWEWQEMZWBWDEEUFUGUHZRWKWHAIZWSWHMWBWD
      WEXQABCEFGHUIUJZABCWHGHUKULUMXAJIZWKXEXJXSWKXEXJNXEXJXSWKUNZXCWHCUOUPZLZX
      DWHYALZMXCXDWHYAQXTXHYBXIYCXTXHXBEPLZFBLZYBXTXGYDFBXTXGXBWQPLYDXTXAOEXSXA
      VGIWKXAUFUQXTURXTEXSWDWEWBUSZUTVAXTWQEXBPWKXOXSXPVBVCVDRXTWBXBJIZWDWEYEYB
      MXSWDWEWBVEXSWEWDYGWBXAEVHVFYFXSWDWEWBVIAYABCXBEFGHYAVQZVJVKVDWKXSXQXIYCM
      XRAYABCXAWHGHYHVLVMSVNVRVOVPVSVTWA $.

    $( Product of group multiples, generalized to ` NN0 ` .  (Contributed by
       Mario Carneiro, 13-Dec-2014.) $)
    mulgnn0ass $p |- ( ( G e. Mnd /\ ( M e. NN0 /\ N e. NN0 /\ X e. B ) ) ->
      ( ( M x. N ) .x. X ) = ( M .x. ( N .x. X ) ) ) $=
      ( wcel cn0 wa cn cmul co wceq cc0 adantr mulg0 oveq1d oveq1 csgrp mndsgrp
      cmnd w3a simprl simprr simpr3 mulgnnass syl13anc expr c0g cfv eqid simpr1
      syl nn0cnd mul01d oveq2d 3ad2antr1 eqtrd 3eqtr4d oveq2 eqeq12d syl5ibrcom
      mulgnn0z wo simpr2 elnn0 sylib mpjaod ex mul02d mulgnn0cl 3adant3r1 ) CUC
      IZDJIZEJIZFAIZUDZKZDLIZDEMNZFBNZDEFBNZBNZOZDPOZVTWAWFVTWAKZELIZWFEPOZVTWA
      WIWFVTWAWIKZKCUAIZWAWIVRWFVTWLWKVOWLVSCUBQQVTWAWIUEVTWAWIUFVTVRWKVOVPVQVR
      UGZQABCDEFGHUHUIUJWHWFWJDPMNZFBNZDPFBNZBNZOZVTWRWAVTWPCUKULZWOWQVTVRWPWSO
      WMABCFWSGWSUMZHRUOZVTWNPFBVTDVTDVOVPVQVRUNZUPUQSVTWQDWSBNZWSVTWPWSDBXAURV
      OVQVPXCWSOVRABCDWSGHWTVEUSUTVAQWJWCWOWEWQWJWBWNFBEPDMVBSWJWDWPDBEPFBTURVC
      VDVTWIWJVFZWAVTVQXDVOVPVQVRVGZEVHVIQVJVKVTWFWGPEMNZFBNZPWDBNZOVTWPWSXGXHX
      AVTXFPFBVTEVTEXEUPVLSVTWDAIZXHWSOVOVQVRXIVPABCEFGHVMVNABCWDWSGWTHRUOVAWGW
      CXGWEXHWGWBXFFBDPEMTSDPWDBTVCVDVTVPWAWGVFXBDVHVIVJ $.

    $( Product of group multiples, generalized to ` ZZ ` .  (Contributed by
       Mario Carneiro, 13-Dec-2014.) $)
    mulgass $p |- ( ( G e. Grp /\ ( M e. ZZ /\ N e. ZZ /\ X e. B ) ) ->
      ( ( M x. N ) .x. X ) = ( M .x. ( N .x. X ) ) ) $=
      ( wcel cz wa cn0 cneg cmul co wceq ad2antrr adantr cfv syl3anc w3a simpr1
      cgrp wo cr elznn0 simprbi syl simpr2 cmnd grpmnd simprl simprr mulgnn0ass
      simplr3 syl13anc zcnd mulneg1d oveq1d simpr3 eqtr3d cminusg fveq2 zmulcld
      ex simpl eqid mulgneg fveq2d mulgcl grpinvinv syldan eqtrd eqeq12d syl5ib
      imp mulneg2d oveq2d mulgneg2 eqtr4d 3eqtr3d mul2negd nn0z ad2antll ccased
      negnegd mp2and ) CUCIZDJIZEJIZFAIZUAZKZDLIZDMZLIZUDZELIZEMZLIZUDZDENOZFBO
      ZDEFBOZBOZPZWMWIWQWHWIWJWKUBZWIDUEIWQDUFUGUHWMWJXAWHWIWJWKUIZWJEUEIXAEUFU
      GUHWMWNWRWPWTXFWMWNWRKZXFWMXIKCUJIZWNWRWKXFWHXJWLXICUKZQWMWNWRULWMWNWRUMW
      IWJWKWHXIUOABCDEFGHUNUPVEWMWPWRKZXFWMXLXBMZFBOZWOXDBOZPZXFWMXLKZWOENOZFBO
      ZXNXOXQXRXMFBWMXRXMPXLWMDEWMDXGUQZWMEXHUQZURRUSXQXJWPWRWKXSXOPWHXJWLXLXKQ
      WMWPWRULWMWPWRUMWMWKXLWHWIWJWKUTZRABCWOEFGHUNUPVAWMXPXFXPXNCVBSZSZXOYCSZP
      WMXFXNXOYCVCWMYDXCYEXEWMYDXCYCSZYCSZXCWMXNYFYCWMWHXBJIZWKXNYFPWHWLVFZWMDE
      XGXHVDZYBABCYCXBFGHYCVGZVHTVIWHWLXCAIZYGXCPWMWHYHWKYLYIYJYBABCXBFGHVJTACY
      CXCGYKVKVLVMWMYEXEYCSZYCSZXEWMXOYMYCWMWHWIXDAIZXOYMPYIXGWMWHWJWKYOYIXHYBA
      BCEFGHVJTZABCYCDXDGHYKVHTVIWHWLXEAIZYNXEPWMWHWIYOYQYIXGYPABCDXDGHVJTACYCX
      EGYKVKVLVMVNVOVPZVLVEWMWNWTKZXFWMYSXPXFWMYSKZDWSNOZFBOZDWSFBOZBOZXNXOYTXJ
      WNWTWKUUBUUDPWHXJWLYSXKQWMWNWTULWMWNWTUMWMWKYSYBRABCDWSFGHUNUPYTUUAXMFBWM
      UUAXMPYSWMDEXTYAVQRUSWMUUDXOPYSWMUUDDXDYCSZBOZXOWMUUCUUEDBWMWHWJWKUUCUUEP
      YIXHYBABCYCEFGHYKVHTVRWMWHWIYOXOUUFPYIXGYPABCYCDXDGHYKVSTVTRWAYRVLVEWMWPW
      TKZXFWMUUGKZWOWSNOZFBOZWOUUCBOZXCXEUUHXJWPWTWKUUJUUKPWHXJWLUUGXKQWMWPWTUL
      WMWPWTUMWMWKUUGYBRZABCWOWSFGHUNUPWMUUJXCPUUGWMUUIXBFBWMDEXTYAWBUSRUUHUUKD
      UUCYCSZBOZXEUUHWHWIUUCAIZUUKUUNPWMWHUUGYIRZWMWIUUGXGRUUHWHWSJIZWKUUOUUPWT
      UUQWMWPWSWCWDZUULABCWSFGHVJTABCYCDUUCGHYKVSTUUHUUMXDDBUUHWSMZFBOZUUMXDUUH
      WHUUQWKUUTUUMPUUPUURUULABCYCWSFGHYKVHTUUHUUSEFBWMUUSEPUUGWMEYAWFRUSVAVRVM
      WAVEWEWG $.

    $( Reversed product of group multiples.  (Contributed by Paul Chapman,
       17-Apr-2009.)  (Revised by AV, 30-Aug-2021.) $)
    mulgassr $p |- ( ( G e. Grp /\ ( M e. ZZ /\ N e. ZZ /\ X e. B ) ) ->
      ( ( N x. M ) .x. X ) = ( M .x. ( N .x. X ) ) ) $=
      ( cgrp wcel cz w3a wa cmul co wceq cc zcn 3ad2ant2 3ad2ant1 adantl oveq1d
      mulcomd mulgass eqtrd ) CIJZDKJZEKJZFAJZLZMZEDNOZFBODENOZFBODEFBOBOUKULUM
      FBUJULUMPUFUJEDUHUGEQJUIERSUGUHDQJUIDRTUCUAUBABCDEFGHUDUE $.
  $}

  ${
    mulgmodid.b $e |- B = ( Base ` G ) $.
    mulgmodid.o $e |- .0. = ( 0g ` G ) $.
    mulgmodid.t $e |- .x. = ( .g ` G ) $.
    $( Casting out multiples of the identity element leaves the group multiple
       unchanged.  (Contributed by Paul Chapman, 17-Apr-2009.)  (Revised by AV,
       30-Aug-2021.) $)
    mulgmodid $p |- ( ( G e. Grp /\ ( N e. ZZ /\ M e. NN )
                        /\ ( X e. B /\ ( M .x. X ) = .0. ) )
                      -> ( ( N mod M ) .x. X ) = ( N .x. X ) ) $=
      ( wcel cz wa co wceq cfv cr 3ad2ant2 oveq1d adantl cgrp w3a cmo cdiv cmul
      cn cfl cneg cplusg cmin caddc crp zre modval syl2an cc zcn adantr nnz cc0
      nnrp nnre nnne0 redivcl syl3an 3anidm23 flcld zmulcld negsubd simp1 simpl
      wne zcnd znegcld 3ad2ant3 eqid mulgdir syl13anc 3eqtr2d mulneg2d mulgassr
      nncn oveq2 mulgz syl2anc 3eqtrd eqtr3d oveq2d id mulgcl grprid ) CUAKZELK
      ZDUFKZMZFAKZDFBNZGOZMZUBZEDUCNZFBNZEFBNZDEDUDNZUGPZUENZUHZFBNZCUIPZNZXCGX
      INZXCWTXBEXFUJNZFBNEXGUKNZFBNZXJWTXAXLFBWOWLXAXLOZWSWMEQKZDULKXOWNEUMZDVA
      EDUNUORSWTXMXLFBWOWLXMXLOWSWOEXFWMEUPKWNEUQURWOXFWODXEWNDLKZWMDUSTZWOXDWM
      WNXDQKZWMXPWNDQKWNDUTVLXTXQDVBDVCEDVDVEVFZVGZVHVMVIRSWTWLWMXGLKWPXNXJOWLW
      OWSVJZWOWLWMWSWMWNVKZRWTXFWTDXEWOWLXRWSXSRZWOWLXELKWSYBRVHVNWSWLWPWOWPWRV
      KZVOZAXIBCEXGFHJXIVPZVQVRVSWTXHGXCXIWTDXEUHZUENZFBNZXHGWTYJXGFBWOWLYJXGOW
      SWODXEWNDUPKWMDWBTWOXEYBVMVTRSWTYKYIWQBNZYIGBNZGWTWLYILKZXRWPYKYLOYCWTXEW
      TXDWOWLXTWSYARVGVNZYEYGABCYIDFHJWAVRWSWLYLYMOZWOWRYPWPWQGYIBWCTVOWTWLYNYM
      GOYCYOABCYIGHJIWDWEWFWGWHWTWLXCAKZXKXCOYCWLWLWOWMWSWPYQWLWIYDYFABCEFHJWJV
      EAXICXCGHYHIWKWEWF $.
  $}

  ${
    mulgsubdir.b $e |- B = ( Base ` G ) $.
    mulgsubdir.t $e |- .x. = ( .g ` G ) $.
    mulgsubdir.d $e |- .- = ( -g ` G ) $.
    $( Subtraction of a group element from itself.  (Contributed by Mario
       Carneiro, 13-Dec-2014.) $)
    mulgsubdir $p |- ( ( G e. Grp /\ ( M e. ZZ /\ N e. ZZ /\ X e. B ) ) ->
      ( ( M - N ) .x. X ) = ( ( M .x. X ) .- ( N .x. X ) ) ) $=
      ( cgrp wcel cz co cfv wceq eqid zcnd 3adant3r1 mulgcl w3a wa caddc cplusg
      cneg znegcl mulgdir syl3anr2 simpr1 simpr2 negsubd oveq1d cminusg mulgneg
      cmin oveq2d 3adant3r2 grpsubval syl2anc eqtr4d 3eqtr3d ) CKLZDMLZFMLZGALZ
      UAUBZDFUEZUCNZGBNZDGBNZVGGBNZCUDOZNZDFUONZGBNVJFGBNZENZVDVCVBVGMLVEVIVMPF
      UFAVLBCDVGGHIVLQZUGUHVFVHVNGBVFDFVFDVBVCVDVEUIRVFFVBVCVDVEUJRUKULVFVMVJVO
      CUMOZOZVLNZVPVFVKVSVJVLVBVDVEVKVSPVCABCVRFGHIVRQZUNSUPVFVJALZVOALZVPVTPVB
      VCVEWBVDABCDGHITUQVBVDVEWCVCABCFGHITSAVLCVREVJVOHVQWAJURUSUTVA $.
  $}

  ${
    $d m n B $.  $d m n F $.  $d m n G $.  $d m n H $.  $d n N $.  $d m n X $.
    $d m n .x. $.  $d m n .X. $.
    mhmmulg.b $e |- B = ( Base ` G ) $.
    mhmmulg.s $e |- .x. = ( .g ` G ) $.
    mhmmulg.t $e |- .X. = ( .g ` H ) $.
    $( A homomorphism of monoids preserves group multiples.  (Contributed by
       Mario Carneiro, 14-Jun-2015.) $)
    mhmmulg $p |- ( ( F e. ( G MndHom H ) /\ N e. NN0 /\ X e. B ) ->
        ( F ` ( N .x. X ) ) = ( N .X. ( F ` X ) ) ) $=
      ( wcel co cfv wceq wi cc0 oveq1 fveq2d eqeq12d vn vm cn0 cmhm wa cv caddc
      c1 imbi2d c0g eqid mhm0 adantr mulg0 adantl cbs mhmf ffvelrnda syl cplusg
      3eqtr4d cmnd mhmrcl1 ad2antrr simpr simplr mulgnn0p1 syl3anc simpll an32s
      mulgnn0cl mhmlin eqtrd mhmrcl2 syl5ibr expcom a2d nn0ind 3impib 3com12 )
      GUCLZDEFUDMLZHALZGHBMZDNZGHDNZCMZOZWAWBWCWHWBWCUEZUAUFZHBMZDNZWJWFCMZOZPW
      IQHBMZDNZQWFCMZOZPWIUBUFZHBMZDNZWSWFCMZOZPWIWSUHUGMZHBMZDNZXDWFCMZOZPWIWH
      PUAUBGWJQOZWNWRWIXIWLWPWMWQXIWKWODWJQHBRSWJQWFCRTUIWJWSOZWNXCWIXJWLXAWMXB
      XJWKWTDWJWSHBRSWJWSWFCRTUIWJXDOZWNXHWIXKWLXFWMXGXKWKXEDWJXDHBRSWJXDWFCRTU
      IWJGOZWNWHWIXLWLWEWMWGXLWKWDDWJGHBRSWJGWFCRTUIWIEUJNZDNZFUJNZWPWQWBXNXOOW
      CEFDXOXMXMUKZXOUKZULUMWIWOXMDWCWOXMOWBABEHXMIXPJUNUOSWIWFFUPNZLZWQXOOWBAX
      RHDAXREFDIXRUKZUQURZXRCFWFXOXTXQKUNUSVAWSUCLZWIXCXHWIYBXCXHPXCXHWIYBUEZXA
      WFFUTNZMZXBWFYDMZOXAXBWFYDRYCXFYEXGYFYCXFWTHEUTNZMZDNZYEYCXEYHDYCEVBLZYBW
      CXEYHOWBYJWCYBEFDVCZVDWIYBVEZWBWCYBVFZAYGBEWSHIJYGUKZVGVHSYCWBWTALZWCYIYE
      OWBWCYBVIWBYBWCYOWBYBUEZWCUEYJYBWCYOWBYJYBWCYKVDWBYBWCVFYPWCVEABEWSHIJVKV
      HVJYMAYGYDEFDWTHIYNYDUKZVLVHVMYCFVBLZYBXSXGYFOWBYRWCYBEFDVNVDYLWIXSYBYAUM
      XRYDCFWSWFXTKYQVGVHTVOVPVQVRVSVT $.
  $}

  ${
    $d ph a b x y $.  $d B x y $.  $d G a b x y $.  $d H a b x y $.
    $d K x y $.
    mulgpropd.m $e |- .x. = ( .g ` G ) $.
    mulgpropd.n $e |- .X. = ( .g ` H ) $.
    mulgpropd.b1 $e |- ( ph -> B = ( Base ` G ) ) $.
    mulgpropd.b2 $e |- ( ph -> B = ( Base ` H ) ) $.
    mulgpropd.i $e |- ( ph -> B C_ K ) $.
    mulgpropd.k $e |- ( ( ph /\ ( x e. K /\ y e. K ) ) ->
        ( x ( +g ` G ) y ) e. K ) $.
    mulgpropd.e $e |- ( ( ph /\ ( x e. K /\ y e. K ) ) ->
        ( x ( +g ` G ) y ) = ( x ( +g ` H ) y ) ) $.
    $( Two structures with the same group-nature have the same group multiple
       function. ` K ` is expected to either be ` _V ` (when strong equality is
       available) or ` B ` (when closure is available).  (Contributed by Stefan
       O'Rear, 21-Mar-2015.)  (Revised by Mario Carneiro, 2-Oct-2015.) $)
    mulgpropd $p |- ( ph -> .x. = .X. ) $=
      ( va vb cz cfv cbs cv cc0 wceq c0g clt wbr cplusg cn csn cxp c1 cseq cneg
      cminusg cif cmpt2 wcel w3a wa co wss wi anim12d syl imp syldan grpidpropd
      ssel 3ad2ant1 1zzd fvconst2 nnuz eqcomi eleq2s adantl simp3 sseldd adantr
      cuz eqeltrd 3ad2antl1 seqfeq3 fveq1d grpinvpropd fveq12d mpt2eq3dva eqidd
      vex ifeq12d mpt2eq123dv 3eqtr3d eqid mulgfval 3eqtr4g ) AQRSGUATZQUBZUCUD
      ZGUETZUCWQUFUGZWQGUHTZUIRUBZUJUKZULUMZTZWQUNZXDTZGUOTZTZUPZUPZUQZQRSHUATZ
      WRHUETZWTWQHUHTZXCULUMZTZXFXPTZHUOTZTZUPZUPZUQZEFAQRSDXKUQQRSDYBUQXLYCAQR
      SDXKYBAWQSURZXBDURZUSZWRWSXNXJYAAYDWSXNUDYEABCDGHLMABUBZDURZCUBZDURZUTZYG
      IURZYIIURZUTZYGYIXAVAZYGYIXOVAUDZAYKYNADIVBZYKYNVCNYQYHYLYJYMDIYGVIDIYIVI
      VDVEVFPVGZVHVJYFWTXEXQXIXTYFWQXDXPYFBCXAXOIXCULYFVKYFYGULVTTZURZUTYGXCTZX
      BIYTUUAXBUDZYFUUBYGUIYSUIXBYGRWIVLUIYSVMVNVOVPYFXBIURYTYFDIXBAYDYQYENVJAY
      DYEVQVRVSWAAYDYNYOIURYEOWBAYDYNYPYEPWBWCZWDYFXGXRXHXSAYDXHXSUDYEABCDGHLMY
      RWEVJYFXFXDXPUUCWDWFWJWJWGAQRSDXKSWPXKASWHZLAXKWHWKAQRSDYBSXMYBUUDMAYBWHW
      KWLRWPXAEQGXHWSWPWMXAWMWSWMXHWMJWNRXMXOFQHXSXNXMWMXOWMXNWMXSWMKWNWO $.
  $}

  ${
    $d x y G $.  $d x y N $.  $d x y S $.  $d x .xb $.  $d x y X $.
    submmulgcl.t $e |- .xb = ( .g ` G ) $.
    $( Closure of the group multiple (exponentiation) operation in a submonoid.
       (Contributed by Mario Carneiro, 13-Jan-2015.) $)
    submmulgcl $p |- ( ( S e. ( SubMnd ` G ) /\ N e. NN0 /\ X e. S ) ->
      ( N .xb X ) e. S ) $=
      ( vx vy csubmnd cfv wcel cbs cplusg cmnd c0g eqid submrcl submss submcl
      cv subm0cl mulgnn0subcl ) ACIJKGHCLJZCMJZABCDNECOJZUCPZFUDPZACQUCACUFRUDA
      CGTHTUGSUEPZACUEUHUAUB $.

    submmulg.h $e |- H = ( G |`s S ) $.
    submmulg.t $e |- .x. = ( .g ` H ) $.
    $( A group multiple is the same if evaluated in a submonoid.  (Contributed
       by Mario Carneiro, 15-Jun-2015.) $)
    submmulg $p |- ( ( S e. ( SubMnd ` G ) /\ N e. NN0 /\ X e. S ) ->
      ( N .xb X ) = ( N .x. X ) ) $=
      ( cfv wcel co wceq cc0 c1 eqid syl adantr 3eqtr4d csubmnd cn0 w3a csn cxp
      cn wa cplusg cseq simpl1 ressplusg seqeq2d fveq1d cbs wss submss 3ad2ant1
      simpr simp3 sseldd mulgnn syl2anc submbas c0g subm0 mulg0 oveq1d wo simp2
      eleqtrd elnn0 sylib mpjaodan ) ADUAKZLZFUBLZGALZUCZFUFLZFGBMZFGCMZNFONZVR
      VSUGZFDUHKZUFGUDUEZPUIZKZFEUHKZWEPUIZKZVTWAWCFWFWIWCWDWHWEPWCVOWDWHNVOVPV
      QVSUJAWDDEVNIWDQZUKRULUMWCVSGDUNKZLZVTWGNVRVSURZVRWMVSVRAWLGVOVPAWLUOVQWL
      ADWLQZUPUQVOVPVQUSZUTZSWLWDWFBDFGWOWKHWFQVAVBWCVSGEUNKZLZWAWJNWNVRWSVSVRG
      AWRWPVOVPAWRNVQAEDIVCUQVJZSWRWHWICEFGWRQZWHQJWIQVAVBTVRWBUGZOGBMZOGCMZVTW
      AXBDVDKZEVDKZXCXDXBVOXEXFNVOVPVQWBUJAEDXEIXEQZVERXBWMXCXENVRWMWBWQSWLBDGX
      EWOXGHVFRXBWSXDXFNVRWSWBWTSWRCEGXFXAXFQJVFRTXBFOGBVRWBURZVGXBFOGCXHVGTVRV
      PVSWBVHVOVPVQVIFVKVLVM $.
  $}

  ${
    $d x A $.  $d x R $.  $d x X $.  $d x .xb $.  $d x B $.  $d x I $.
    $d x N $.  $d x V $.
    pwsmulg.y $e |- Y = ( R ^s I ) $.
    pwsmulg.b $e |- B = ( Base ` Y ) $.
    pwsmulg.s $e |- .xb = ( .g ` Y ) $.
    pwsmulg.t $e |- .x. = ( .g ` R ) $.
    $( Value of a group multiple in a structure power.  (Contributed by Mario
       Carneiro, 15-Jun-2015.) $)
    pwsmulg $p |- ( ( ( R e. Mnd /\ I e. V ) /\
      ( N e. NN0 /\ X e. B /\ A e. I ) ) ->
        ( ( N .xb X ) ` A ) = ( N .x. ( X ` A ) ) ) $=
      ( vx wcel co cfv wceq syl3anc cmnd cn0 w3a cmpt cmhm simpll simplr simpr3
      wa pwspjmhm simpr1 simpr2 mhmmulg pwsmnd adantr mulgnn0cl fveq1 eqid fvex
      cv fvmpt syl oveq2d 3eqtr3d ) CUAPZFHPZUIZGUBPZIBPZAFPZUCZUIZGIDQZOBAOUTZ
      RZUDZRZGIVPRZEQZAVMRZGAIRZEQVLVPJCUEQPZVHVIVQVSSVLVEVFVJWBVEVFVKUFVEVFVKU
      GVGVHVIVJUHOABCFHJKLUJTVGVHVIVJUKZVGVHVIVJULZBDEVPJCGILMNUMTVLVMBPZVQVTSV
      LJUAPZVHVIWEVGWFVKCFHJKUNUOWCWDBDJGILMUPTOVMVOVTBVPAVNVMUQVPURZAVMUSVAVBV
      LVRWAGEVLVIVRWASWDOIVOWABVPAVNIUQWGAIUSVAVBVCVD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subgroups and Quotient groups
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ~QG $.
  $c SubGrp $.
  $c NrmSGrp $.

  $( Extend class notation with all subgroups of a group. $)
  csubg $a class SubGrp $.

  $( Extend class notation with all normal subgroups of a group. $)
  cnsg $a class NrmSGrp $.

  $( Quotient group equivalence class. $)
  cqg $a class ~QG $.

  ${
    $d b i p r s w x y $.
    $( Define a subgroup of a group as a set of elements that is a group in its
       own right.  Equivalently ( ~ issubg2 ), a subgroup is a subset of the
       group that is closed for the group internal operation (see ~ subgcl ),
       contains the neutral element of the group (see ~ subg0 ) and contains
       the inverses for all of its elements (see ~ subginvcl ).  (Contributed
       by Mario Carneiro, 2-Dec-2014.) $)
    df-subg $a |- SubGrp = ( w e. Grp |->
        { s e. ~P ( Base ` w ) | ( w |`s s ) e. Grp } ) $.

    $( Define the equivalence relation in a quotient ring or quotient group
       (where ` i ` is a two-sided ideal or a normal subgroup).  For non-normal
       subgroups this generates the left cosets.  (Contributed by Mario
       Carneiro, 15-Jun-2015.) $)
    df-nsg $a |- NrmSGrp = ( w e. Grp |-> { s e. ( SubGrp ` w ) |
       [. ( Base ` w ) / b ]. [. ( +g ` w ) / p ]. A. x e. b A. y e. b
        ( ( x p y ) e. s <-> ( y p x ) e. s ) } ) $.

    $( Define the equivalence relation in a quotient ring or quotient group
       (where ` i ` is a two-sided ideal or a normal subgroup).  For non-normal
       subgroups this generates the left cosets.  (Contributed by Mario
       Carneiro, 15-Jun-2015.) $)
    df-eqg $a |- ~QG = ( r e. _V , i e. _V |-> { <. x , y >. |
      ( { x , y } C_ ( Base ` r ) /\
        ( ( ( invg ` r ) ` x ) ( +g ` r ) y ) e. i ) } ) $.
  $}

  ${
    $d s w B $.  $d s w G $.  $d s S $.
    issubg.b $e |- B = ( Base ` G ) $.
    $( The subgroup predicate.  (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    issubg $p |- ( S e. ( SubGrp ` G ) <->
      ( G e. Grp /\ S C_ B /\ ( G |`s S ) e. Grp ) ) $=
      ( vw vs csubg cfv wcel cgrp wss cress co cv cbs cpw crab wa wceq eleq1d
      w3a cdm df-subg dmmptss elfvdm sseldi simp1 fveq2 syl6eqr pweqd rabeqbidv
      oveq1 fvex eqeltri pwex rabex fvmpt eleq2d oveq2 elrab elpw2 anbi1i bitri
      cvv syl6bb ibar bitrd 3anass syl6bbr pm5.21nii ) BCGHZIZCJIZVMBAKZCBLMZJI
      ZUAZVLGUBJCEJENZFNZLMZJIZFVROHZPZQZGEFUCZUDBCGUEUFVMVNVPUGVMVLVMVNVPRZRZV
      QVMVLWFWGVMVLBCVSLMZJIZFAPZQZIZWFVMVKWKBECWDWKJGVRCSZWAWIFWCWJWMWBAWMWBCO
      HZAVRCOUHDUIUJWMVTWHJVRCVSLULTUKWEWIFWJAAWNVDDCOUMUNZUOUPUQURWLBWJIZVPRWF
      WIVPFBWJVSBSWHVOJVSBCLUSTUTWPVNVPBAWOVAVBVCVEVMWFVFVGVMVNVPVHVIVJ $.

    $( A subgroup is a subset.  (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    subgss $p |- ( S e. ( SubGrp ` G ) -> S C_ B ) $=
      ( csubg cfv wcel cgrp wss cress co issubg simp2bi ) BCEFGCHGBAICBJKHGABCD
      LM $.

    $( A group is a subgroup of itself.  (Contributed by Mario Carneiro,
       7-Dec-2014.) $)
    subgid $p |- ( G e. Grp -> B e. ( SubGrp ` G ) ) $=
      ( cgrp wcel wss cress co csubg cfv id a1i ressid eqeltrd issubg syl3anbrc
      ssid ) BDEZRAAFZBAGHZDEABIJERKZSRAQLRTBDABDCMUANAABCOP $.
  $}

  ${
    subggrp.h $e |- H = ( G |`s S ) $.
    $( A subgroup is a group.  (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    subggrp $p |- ( S e. ( SubGrp ` G ) -> H e. Grp ) $=
      ( csubg cfv wcel cress co cgrp cbs wss eqid issubg simp3bi syl5eqel ) ABE
      FGZCBAHIZJDQBJGABKFZLRJGSABSMNOP $.

    $( The base of the restricted group in a subgroup.  (Contributed by Mario
       Carneiro, 2-Dec-2014.) $)
    subgbas $p |- ( S e. ( SubGrp ` G ) -> S = ( Base ` H ) ) $=
      ( csubg cfv wcel cbs wss wceq eqid subgss ressbas2 syl ) ABEFGABHFZIACHFJ
      OABOKZLAOCBDPMN $.
  $}

  $( Reverse closure for the subgroup predicate.  (Contributed by Mario
     Carneiro, 2-Dec-2014.) $)
  subgrcl $p |- ( S e. ( SubGrp ` G ) -> G e. Grp ) $=
    ( csubg cfv wcel cgrp cbs wss cress co eqid issubg simp1bi ) ABCDEBFEABGDZH
    BAIJFENABNKLM $.

  ${
    subg0.h $e |- H = ( G |`s S ) $.
    ${
      subg0.i $e |- .0. = ( 0g ` G ) $.
      $( A subgroup of a group must have the same identity as the group.
         (Contributed by Stefan O'Rear, 27-Nov-2014.)  (Revised by Mario
         Carneiro, 30-Apr-2015.) $)
      subg0 $p |- ( S e. ( SubGrp ` G ) -> .0. = ( 0g ` H ) ) $=
        ( csubg cfv wcel c0g cplusg co wceq eqid ressplusg cgrp subggrp syl2anc
        oveqd cbs grpidcl grplid eqtrd wb subgrcl subgss subgbas eleqtrrd grpid
        syl sseldd mpbid ) ABGHZIZCJHZUOBKHZLZUOMZDUOMZUNUQUOUOCKHZLZUOUNUPUTUO
        UOAUPBCUMEUPNZOSUNCPIZUOCTHZIZVAUOMABCEQZUNVCVEVFVDCUOVDNZUONZUAUJZVDUT
        CUOUOVGUTNVHUBRUCUNBPIUOBTHZIURUSUDABUEUNAVJUOVJABVJNZUFUNUOVDAVIABCEUG
        UHUKVJUPBUODVKVBFUIRUL $.
    $}

    subginv.i $e |- I = ( invg ` G ) $.
    subginv.j $e |- J = ( invg ` H ) $.
    $( The inverse of an element in a subgroup is the same as the inverse in
       the larger group.  (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    subginv $p |- ( ( S e. ( SubGrp ` G ) /\ X e. S ) ->
      ( I ` X ) = ( J ` X ) ) $=
      ( cfv wcel wceq cplusg co c0g cgrp cbs adantr eleq2d eqid subggrp subgbas
      csubg biimpa grprinv syl2anc ressplusg oveqd subg0 3eqtr4d subgrcl subgss
      wa wb sselda wi grpinvcl syl 3imtr4d imp syldan grpinvid1 syl3anc mpbird
      ex ) ABUCJZKZFAKZUMZFDJFEJZLZFVJBMJZNZBOJZLZVIFVJCMJZNZCOJZVMVNVICPKZFCQJ
      ZKZVQVRLVGVSVHABCGUAZRVGVHWAVGAVTFABCGUBZSZUDVTVPCEFVRVTTZVPTVRTIUEUFVIVL
      VPFVJVGVLVPLVHAVLBCVFGVLTZUGRUHVGVNVRLVHABCVNGVNTZUIRUJVIBPKZFBQJZKVJWIKZ
      VKVOUNVGWHVHABUKRVGAWIFWIABWITZULZUOVGVHVJAKZWJVGVHWMVGWAVJVTKZVHWMVGVSWA
      WNUPWBVSWAWNVTCEFWEIUQVEURWDVGAVTVJWCSUSUTVGAWIVJWLUOVAWIVLBDFVJVNWKWFWGH
      VBVCVD $.
  $}

  ${
    subg0cl.i $e |- .0. = ( 0g ` G ) $.
    $( The group identity is an element of any subgroup.  (Contributed by Mario
       Carneiro, 2-Dec-2014.) $)
    subg0cl $p |- ( S e. ( SubGrp ` G ) -> .0. e. S ) $=
      ( csubg cfv wcel cress co c0g cbs cgrp eqid subggrp grpidcl subg0 subgbas
      syl 3eltr4d ) ABEFGZBAHIZJFZUAKFZCATUALGUBUCGABUAUAMZNUCUAUBUCMUBMORABUAC
      UDDPABUAUDQS $.
  $}

  ${
    subginvcl.i $e |- I = ( invg ` G ) $.
    $( The inverse of an element is closed in a subgroup.  (Contributed by
       Mario Carneiro, 2-Dec-2014.) $)
    subginvcl $p |- ( ( S e. ( SubGrp ` G ) /\ X e. S ) -> ( I ` X ) e. S ) $=
      ( csubg cfv wcel wa cress cminusg cbs cgrp eqid subggrp adantr simpr wceq
      co subgbas eleqtrd grpinvcl syl2anc subginv 3eltr4d ) ABFGHZDAHZIZDBAJSZK
      GZGZUILGZDCGAUHUIMHZDULHUKULHUFUMUGABUIUINZOPUHDAULUFUGQUFAULRUGABUIUNTPZ
      UAULUIUJDULNUJNZUBUCABUICUJDUNEUPUDUOUE $.
  $}

  ${
    subgcl.p $e |- .+ = ( +g ` G ) $.
    $( A subgroup is closed under group operation.  (Contributed by Mario
       Carneiro, 2-Dec-2014.) $)
    subgcl $p |- ( ( S e. ( SubGrp ` G ) /\ X e. S /\ Y e. S ) ->
      ( X .+ Y ) e. S ) $=
      ( csubg cfv wcel w3a cress cplusg cgrp eqid subggrp 3ad2ant1 wceq eleqtrd
      co cbs simp2 subgbas simp3 grpcl syl3anc ressplusg oveqd 3eltr4d ) BCGHZI
      ZDBIZEBIZJZDECBKSZLHZSZUNTHZDEASBUMUNMIZDUQIEUQIUPUQIUJUKURULBCUNUNNZOPUM
      DBUQUJUKULUAUJUKBUQQULBCUNUSUBPZRUMEBUQUJUKULUCUTRUQUOUNDEUQNUONUDUEUMAUO
      DEUJUKAUOQULBACUNUIUSFUFPUGUTUH $.
  $}

  ${
    subgsubcl.p $e |- .- = ( -g ` G ) $.
    $( A subgroup is closed under group subtraction.  (Contributed by Mario
       Carneiro, 18-Jan-2015.) $)
    subgsubcl $p |- ( ( S e. ( SubGrp ` G ) /\ X e. S /\ Y e. S ) ->
      ( X .- Y ) e. S ) $=
      ( cfv wcel w3a co cminusg cplusg cbs wceq wss eqid subgss 3ad2ant1 sseldd
      csubg simp2 grpsubval syl2anc subginvcl 3adant2 subgcl syld3an3 eqeltrd
      simp3 ) ABTGHZDAHZEAHZIZDECJZDEBKGZGZBLGZJZAUMDBMGZHEUSHUNURNUMAUSDUJUKAU
      SOULUSABUSPZQRZUJUKULUASUMAUSEVAUJUKULUISUSUQBUOCDEUTUQPZUOPZFUBUCUJUKULU
      PAHZURAHUJULVDUKABUOEVCUDUEUQABDUPVBUFUGUH $.

    subgsub.h $e |- H = ( G |`s S ) $.
    subgsub.n $e |- N = ( -g ` H ) $.
    $( The subtraction of elements in a subgroup is the same as subtraction in
       the group.  (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    subgsub $p |- ( ( S e. ( SubGrp ` G ) /\ X e. S /\ Y e. S ) ->
      ( X .- Y ) = ( X N Y ) ) $=
      ( cfv wcel cminusg cplusg co wceq eqid 3ad2ant1 cbs sseldd csubg oveq123d
      w3a ressplusg eqidd subginv 3adant2 simp2 simp3 grpsubval syl2anc subgbas
      wss subgss eleqtrd 3eqtr4d ) ABUAKZLZFALZGALZUCZFGBMKZKZBNKZOZFGCMKZKZCNK
      ZOZFGDOZFGEOZVAFFVCVGVDVHURUSVDVHPUTAVDBCUQIVDQZUDRVAFUEURUTVCVGPUSABCVBV
      FGIVBQZVFQZUFUGUBVAFBSKZLGVOLVJVEPVAAVOFURUSAVOUMUTVOABVOQZUNRZURUSUTUHZT
      VAAVOGVQURUSUTUIZTVOVDBVBDFGVPVLVMHUJUKVAFCSKZLGVTLVKVIPVAFAVTVRURUSAVTPU
      TABCIULRZUOVAGAVTVSWAUOVTVHCVFEFGVTQVHQVNJUJUKUP $.
  $}

  ${
    $d x y G $.  $d x y N $.  $d x y S $.  $d x .x. $.  $d x y X $.
    subgmulgcl.t $e |- .x. = ( .g ` G ) $.
    $( Closure of the group multiple (exponentiation) operation in a subgroup.
       (Contributed by Mario Carneiro, 13-Jan-2015.) $)
    subgmulgcl $p |- ( ( S e. ( SubGrp ` G ) /\ N e. ZZ /\ X e. S ) ->
      ( N .x. X ) e. S ) $=
      ( vx vy csubg cfv wcel cbs cplusg cminusg cgrp c0g eqid subgrcl subgss cv
      subgcl subg0cl subginvcl mulgsubcl ) ACIJKGHCLJZCMJZABCCNJZDOECPJZUEQZFUF
      QZACRUEACUISUFACGTZHTUJUAUHQZACUHULUBUGQZACUGUKUMUCUD $.

    subgmulg.h $e |- H = ( G |`s S ) $.
    subgmulg.t $e |- .xb = ( .g ` H ) $.
    $( A group multiple is the same if evaluated in a subgroup.  (Contributed
       by Mario Carneiro, 15-Jan-2015.) $)
    subgmulg $p |- ( ( S e. ( SubGrp ` G ) /\ N e. ZZ /\ X e. S ) ->
      ( N .x. X ) = ( N .xb X ) ) $=
      ( cfv wcel cc0 wceq cif eqid 3ad2ant1 wa adantr syl2anc csubg w3a c0g clt
      cz wbr cplusg cn csn cxp c1 cseq cneg cminusg co ifeq1d ressplusg seqeq2d
      subg0 wn fveq1d wo cr simp2 zred 0re axlttri sylancl ioran syl6bb biimpar
      simpl1 cbs znegcld lt0neg1d biimpa elnnz sylanbrc wss subgss simp3 sseldd
      wb mulgnn subgmulgcl syl3anc eqeltrrd subginv syldan fveq2d eqtrd anassrs
      ifeq2da mulgval subgbas eleqtrd 3eqtr4d ) ADUAKZLZFUELZGALZUBZFMNZDUCKZMF
      UDUFZFDUGKZUHGUIUJZUKULZKZFUMZXHKZDUNKZKZOZOZXCEUCKZXEFEUGKZXGUKULZKZXJXR
      KZEUNKZKZOZOZFGCUOZFGBUOZXBXOXCXPXNOYDXBXCXDXPXNWSWTXDXPNXAADEXDIXDPZUSQU
      PXBXCXNYCXPXBXCUTZRZXNXEXSXMOYCYIXEXIXSXMYIFXHXRXBXHXRNZYHXBXFXQXGUKWSWTX
      FXQNXAAXFDEWRIXFPZUQQURZSVAUPYIXEXMYBXSXBYHXEUTZXMYBNXBYHYMRZRZXMXKYAKZYB
      XBYNFMUDUFZXMYPNZXBYQYNXBYQXCXEVBUTZYNXBFVCLMVCLYQYSWCXBFWSWTXAVDZVEZVFFM
      VGVHXCXEVIVJVKXBYQRZWSXKALYRWSWTXAYQVLZUUBXJGCUOZXKAUUBXJUHLZGDVMKZLZUUDX
      KNUUBXJUELZMXJUDUFZUUEUUBFXBWTYQYTSVNZXBYQUUIXBFUUAVOVPXJVQVRXBUUGYQXBAUU
      FGWSWTAUUFVSXAUUFADUUFPZVTQWSWTXAWAZWBZSUUFXFXHCDXJGUUKYKHXHPZWDTUUBWSUUH
      XAUUDALUUCUUJXBXAYQUULSACDXJGHWEWFWGADEXLYAXKIXLPZYAPZWHTWIYOXKXTYAYOXJXH
      XRXBYJYNYLSVAWJWKWLWMWKWMWKXBWTUUGYEXONYTUUMUUFXFXHCDXLFGXDUUKYKYGUUOHUUN
      WNTXBWTGEVMKZLYFYDNYTXBGAUUQUULWSWTAUUQNXAADEIWOQWPUUQXQXRBEYAFGXPUUQPXQP
      XPPUUPJXRPWNTWQ $.
  $}

  ${
    $d u v w x y G $.  $d u v w x y I $.  $d u v w x y .+ $.  $d u v w x y S $.
    $d u v w B $.
    issubg2.b $e |- B = ( Base ` G ) $.
    issubg2.p $e |- .+ = ( +g ` G ) $.
    issubg2.i $e |- I = ( invg ` G ) $.
    $( Characterize the subgroups of a group by closure properties.
       (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    issubg2 $p |- ( G e. Grp -> ( S e. ( SubGrp ` G ) <-> ( S C_ B /\ S =/= (/)
      /\ A. x e. S ( A. y e. S ( x .+ y ) e. S /\ ( I ` x ) e. S ) ) ) ) $=
      ( vu wcel cfv c0 cv co wral wa syl wceq vv vw cgrp csubg wss subgss cress
      wne w3a cbs eqid subgbas subggrp grpbn0 eqnetrd 3expa ralrimiva subginvcl
      subgcl jca 3jca simpl simpr1 c0g ressbas2 cvv cplusg fvex syl6eqel simpr3
      ressplusg ralimi oveq1 eleq1d oveq2 rspc2v syl5com 3impib sseld 3anim123d
      imp grpass adantlr syldan wex simpr2 n0 sylib grplinv simpr fveq2 rspccva
      sselda adantr ovrspc2v syl21anc eqeltrrd exlimddv grplid isgrpd syl3anbrc
      sylan issubg ex impbid2 ) FUCLZEFUDMLZECUEZENUHZAOZBOZDPZELZBEQZXJGMZELZR
      ZAEQZUIZXGXHXIXRCEFHUFXGEFEUGPZUJMZNEFXTXTUKZULXGXTUCLZYANUHEFXTYBUMYAXTY
      AUKUNSUOXGXQAEXGXJELZRZXNXPYEXMBEXGYDXKELXMDEFXJXKIUSUPUQEFGXJJURUTUQVAXF
      XSXGXFXSRZXFXHYCXGXFXSVBXFXHXIXRVCZYFKUAUBEDXTKOZGMZFVDMZYFXHEYATYGECXTFY
      BHVESZYFEVFLDXTVGMTYFEYAVFYKXTUJVHVIEDFXTVFYBIVKSYFYHELZUAOZELZYHYMDPZELZ
      YFXNAEQZYLYNRYPYFXRYQXFXHXIXRVJZXQXNAEXNXPVBVLSZXMYPYHXKDPZELABYHYMEEXJYH
      TZXLYTEXJYHXKDVMVNXKYMTYTYOEXKYMYHDVOVNVPVQVRYFYLYNUBOZELZUIZYHCLZYMCLZUU
      BCLZUIZYOUUBDPYHYMUUBDPDPTZYFUUDUUHYFYLUUEYNUUFUUCUUGYFECYHYGVSYFECYMYGVS
      YFECUUBYGVSVTWAXFUUHUUIXSCDFYHYMUUBHIWBWCWDYFYLYJELKYFXIYLKWEXFXHXIXRWFKE
      WGWHYFYLRZYIYHDPZYJEYFYLUUEUUKYJTZYFECYHYGWMZXFUUEUULXSCDFGYHYJHIYJUKZJWI
      WCWDZUUJYIELZYLYQUUKELYFXPAEQZYLUUPYFXRUUQYRXQXPAEXNXPWJVLSXPUUPAYHEUUAXO
      YIEXJYHGWKVNWLXBZYFYLWJYFYQYLYSWNABEEEDYIYHWOWPWQWRYFYLUUEYJYHDPYHTZUUMXF
      UUEUUSXSCDFYHYJHIUUNWSWCWDUURUUOWTCEFHXCXAXDXE $.
  $}

  ${
    $d x y .0. $.  $d x y D $.  $d x y I $.  $d x y .+ $.  $d x y ph $.
    $d x y S $.
    issubgrpd.s $e |- ( ph -> S = ( I |`s D ) ) $.
    issubgrpd.z $e |- ( ph -> .0. = ( 0g ` I ) ) $.
    issubgrpd.p $e |- ( ph -> .+ = ( +g ` I ) ) $.
    issubgrpd.ss $e |- ( ph -> D C_ ( Base ` I ) ) $.
    issubgrpd.zcl $e |- ( ph -> .0. e. D ) $.
    issubgrpd.acl $e |- ( ( ph /\ x e. D /\ y e. D ) -> ( x .+ y ) e. D ) $.
    issubgrpd.ncl $e |- ( ( ph /\ x e. D ) -> ( ( invg ` I ) ` x ) e. D ) $.
    issubgrpd.g $e |- ( ph -> I e. Grp ) $.
    $( Prove a subgroup by closure (definition version).  (Contributed by
       Stefan O'Rear, 7-Dec-2014.) $)
    issubgrpd2 $p |- ( ph -> D e. ( SubGrp ` I ) ) $=
      ( cfv wcel wa eqid csubg cbs wss c0 wne cplusg wral cminusg ne0i syl wceq
      cv oveqd ad2antrr 3expa eqeltrrd ralrimiva jca cgrp w3a issubg2 mpbir3and
      co wb ) ADGUAQRZDGUBQZUCZDUDUEZBULZCULZGUFQZVCZDRZCDUGZVIGUHQZQDRZSZBDUGZ
      LAHDRVHMDHUIUJAVQBDAVIDRZSZVNVPVTVMCDVTVJDRZSVIVJEVCZVLDAWBVLUKVSWAAEVKVI
      VJKUMUNAVSWAWBDRNUOUPUQOURUQAGUSRVEVGVHVRUTVDPBCVFVKDGVOVFTVKTVOTVAUJVB
      $.

    $( Prove a subgroup by closure.  (Contributed by Stefan O'Rear,
       7-Dec-2014.) $)
    issubgrpd $p |- ( ph -> S e. Grp ) $=
      ( cress co cgrp wcel csubg cfv issubgrpd2 eqid subggrp syl eqeltrd ) AFGD
      QRZSIADGUAUBTUHSTABCDEFGHIJKLMNOPUCDGUHUHUDUEUFUG $.
  $}

  ${
    $d G x y $.  $d I x y $.  $d S x y $.
    issubg3.i $e |- I = ( invg ` G ) $.
    $( A subgroup is a symmetric submonoid.  (Contributed by Mario Carneiro,
       7-Mar-2015.) $)
    issubg3 $p |- ( G e. Grp -> ( S e. ( SubGrp ` G ) <->
        ( S e. ( SubMnd ` G ) /\ A. x e. S ( I ` x ) e. S ) ) ) $=
      ( vy cgrp wcel c0g cfv cv wral wa wi eqid a1i adantr wb w3a df-3an cbs c0
      csubg csubmnd subg0cl subm0cl wss wne cplusg co ne0i 2thd adantl 3anbi23d
      r19.26 anass anbi1i 3bitr4ri syl6bb issubg2 cmnd grpmnd issubm syl anbi1d
      id 3bitr4d ex pm5.21ndd ) CGHZCIJZBHZBCUCJHZBCUDJHZAKZDJBHZABLZMZVMVLNVJB
      CVKVKOZUEPVRVLNVJVNVLVQBCVKVSUFQPVJVLVMVRRVJVLMZBCUAJZUGZBUBUHZVOFKCUIJZU
      JBHFBLZVPMABLZSZWBVLWEABLZSZVQMZVMVRVTWGWBVLWHVQMZSZWJVTWCVLWFWKWBVLWCVLR
      VJVLWCVLBVKUKVLVFULUMWFWKRVTWEVPABUOPUNWBVLMZWHMZVQMWMWKMWJWLWMWHVQUPWIWN
      VQWBVLWHTUQWBVLWKTURUSVJVMWGRVLAFWAWDBCDWAOZWDOZEUTQVJVRWJRVLVJVNWIVQVJCV
      AHVNWIRCVBAFWAWDBCVKWOVSWPVCVDVEQVGVHVI $.
  $}

  ${
    $d x y z B $.  $d x y z G $.  $d x y z .- $.  $d x y z S $.
    issubg4.b $e |- B = ( Base ` G ) $.
    issubg4.p $e |- .- = ( -g ` G ) $.
    $( A subgroup is a nonempty subset of the group closed under subtraction.
       (Contributed by Mario Carneiro, 17-Sep-2015.) $)
    issubg4 $p |- ( G e. Grp -> ( S e. ( SubGrp ` G ) <-> ( S C_ B /\ S =/= (/)
      /\ A. x e. S A. y e. S ( x .- y ) e. S ) ) ) $=
      ( vz wcel cfv cv co wral eqid wa wi wceq eleq1d rspcv cgrp wss c0 wne w3a
      csubg subgss c0g subg0cl ne0i syl subgsubcl 3expb ralrimivva 3jca cminusg
      cplusg simplrl simplrr simprr r19.2z sylan adantl simprl grpsubid adantlr
      wrex oveq2 sselda syldan sylibd rexlimdva imp simpr oveq1 ralbidv sylc wb
      grpidcl ad2antrr grpsubval syl2anc simpll grpinvcl grplid ralbidva adantr
      eqtrd mpbid rspccva ad2ant2l simplll grpsubinv anassrs ralrimdva ralimdva
      fveq2 sseldd impancom cbvralv sylib r19.26 sylanbrc exp42 issubg2 sylibrd
      mpd 3impd impbid2 ) EUAJZDEUFKJZDCUBZDUCUDZALZBLZFMZDJZBDNZADNZUEZXKXLXMX
      SCDEGUGXKEUHKZDJZXMDEYAYAOZUIDYAUJUKXKXQABDDXKXNDJZXODJZXQDEFXNXOHULUMUNU
      OXJXTXLXMXOILZEUQKZMZDJZIDNZXOEUPKZKZDJZPBDNZUEZXKXJXLXMXSYOXJXLXMXSYOXJX
      LXMPZPZXSPZXLXMYNXJXLXMXSURXJXLXMXSUSYRYJBDNZYMBDNZYNYRXNYFYGMZDJZIDNZADN
      ZYSYRYTUUDYRYAXOFMZDJZBDNZYTYRYBXSUUGYQXSXRADVGZYBYQXMXSUUHXJXLXMUTXRADVA
      VBYQUUHYBYQXRYBADYQYDPZXRXNXNFMZDJZYBYDXRUUKQYQXQUUKBXNDXOXNRXPUUJDXOXNXN
      FVHSTVCUUIUUJYADYQYDXNCJZUUJYARZYQDCXNXJXLXMVDZVIXJUULUUMYPCEFXNYAGYCHVEV
      FVJSVKVLVMVJYQXSVNXRUUGAYADXNYARZXQUUFBDUUOXPUUEDXNYAXOFVOSVPTVQYQUUGYTVR
      XSYQUUFYMBDYQYEPZUUEYLDUUPUUEYAYLYGMZYLUUPYACJZXOCJZUUEUUQRXJUURYPYECEYAG
      YCVSVTYQDCXOUUNVIZCYGEYKFYAXOGYGOZYKOZHWAWBUUPXJYLCJZUUQYLRXJYPYEWCZUUPXJ
      UUSUVCUVDUUTCEYKXOGUVBWDWBCYGEYLYAGUVAYCWEWBWHSWFWGWIZYQYTXSUUDYQYTPZXRUU
      CADUVFYDPXRUUBIDUVFYDYFDJZXRUUBQUVFYDUVGPZPZXRXNYFYKKZFMZDJZUUBUVIUVJDJZX
      RUVLQYTUVGUVMYQYDYMUVMBYFDXOYFRYLUVJDXOYFYKWQSWJWKXQUVLBUVJDXOUVJRXPUVKDX
      OUVJXNFVHSTUKUVIUVKUUADUVICYGEFYKXNYFGUVAHUVBXJYPYTUVHWLUVIDCXNUVFXLUVHXJ
      XLXMYTURWGZUVFYDUVGVDWRUVIDCYFUVNUVFYDUVGUTWRWMSVKWNWOWPWSXGUUCYJABDXNXOR
      ZUUBYIIDUVOUUAYHDXNXOYFYGVOSVPWTXAUVEYJYMBDXBXCUOXDXHBICYGDEYKGUVAUVBXEXF
      XI $.
  $}

  ${
    $d B a b x y $.  $d G a b x y $.  $d H a b x y $.  $d S a b x y $.
    grpissubg.b $e |- B = ( Base ` G ) $.
    grpissubg.s $e |- S = ( Base ` H ) $.
    $( If the base set of a group is contained in the base set of another
       group, and the group operation of the group is the restriction of the
       group operation of the other group to its base set, then the (base set
       of the) group is subgroup of the other group.  (Contributed by AV,
       14-Mar-2019.) $)
    grpissubg $p |- ( ( G e. Grp /\ H e. Grp )
                   -> ( ( S C_ B /\ ( +g ` H ) = ( ( +g ` G ) |` ( S X. S ) ) )
                                                  -> S e. ( SubGrp ` G ) ) ) $=
      ( va vb vx vy wcel wa cfv wceq cv co adantl ad2antlr ad2antrr eqid cplusg
      cgrp wss cxp cres csubg c0 wral cminusg simpl grpbn0 ovres adantll simplr
      wne simpr grpcl syl3anc wb eqcomd eleq1d mpbird eqeltrrd ralrimiva adantr
      oveq cbs sseq2i biimpi eqtr3d ralrimivva grpinvssd imp wi grpinvcl ex jca
      w3a issubg2 mpbir3and ) CUBKZDUBKZLZBAUCZDUAMZCUAMZBBUDUEZNZLZBCUFMKZWCWI
      LZWJWDBUGUOZGOZHOZWFPZBKZHBUHZWMCUIMZMZBKZLZGBUHZWIWDWCWDWHUJQWBWLWAWIBDF
      UKRWKXAGBWKWMBKZLZWQWTXDWPHBXDWNBKZLZWMWNWGPZWOBXCXEXGWONWKWMWNBBWFULUMXF
      XGBKZWMWNWEPZBKZXFWBXCXEXJWKWBXCXEWAWBWIUNZSWKXCXEUNXDXEUPBWEDWMWNFWETUQU
      RWKXHXJUSZXCXEWIXLWCWHXLWDWHXGXIBWHXIXGWMWNWEWGVFUTVAQQSVBVCVDXDWMDUIMZMZ
      WSBWKXCXNWSNWKIJBDCWMWCWAWIWAWBUJVEXKFWIBCVGMZUCZWCWDXPWHWDXPAXOBEVHVIVEQ
      WKIOZJOZWFPZXQXRWEPZNIJBBWKXQBKXRBKLZLXQXRWGPZXSXTYAYBXSNWKXQXRBBWFULQWIY
      BXTNWCYAWIXTYBWHXTYBNWDXQXRWEWGVFQUTRVJVKVLVMWKXCXNBKZWBXCYCVNWAWIWBXCYCB
      DXMWMFXMTVOVPRVMVCVQVDWAWJWDWLXBVRUSWBWIGHAWFBCWREWFTWRTVSSVTVP $.

    $( If the base set of a group is contained in the base set of another
       group, and the group operation of the group is the restriction of the
       group operation of the other group to its base set, then the other group
       restricted to the base set of the group is a group.  (Contributed by AV,
       14-Mar-2019.) $)
    resgrpisgrp $p |- ( ( G e. Grp /\ H e. Grp )
                   -> ( ( S C_ B /\ ( +g ` H ) = ( ( +g ` G ) |` ( S X. S ) ) )
                                                   -> ( G |`s S ) e. Grp ) ) $=
      ( cgrp wcel wa wss cplusg cfv cxp cres wceq cress csubg grpissubg syl6bbr
      co imp w3a wb ibar ad2ant2r df-3an issubg mpbird ex ) CGHZDGHZIZBAJZDKLCK
      LBBMNOZIZCBPTGHZULUOIZUPBCQLHZULUOURABCDEFRUAUQUPUJUMUPUBZURUQUPUJUMIZUPI
      ZUSUJUMUPVAUCUKUNUTUPUDUEUJUMUPUFSABCEUGSUHUI $.
  $}

  ${
    $d x G $.  $d x S $.
    $( A subgroup is a submonoid.  (Contributed by Mario Carneiro,
       18-Jun-2015.) $)
    subgsubm $p |- ( S e. ( SubGrp ` G ) -> S e. ( SubMnd ` G ) ) $=
      ( vx csubg cfv wcel csubmnd cv cminusg wral cgrp subgrcl eqid issubg3 syl
      wa wb ibi simpld ) ABDEFZABGEFZCHBIEZEAFCAJZTUAUCPZTBKFTUDQABLCABUBUBMNOR
      S $.
  $}

  ${
    subsubg.h $e |- H = ( G |`s S ) $.
    $( A subgroup of a subgroup is a subgroup.  (Contributed by Mario Carneiro,
       19-Jan-2015.) $)
    subsubg $p |- ( S e. ( SubGrp ` G ) -> ( A e. ( SubGrp ` H ) <->
      ( A e. ( SubGrp ` G ) /\ A C_ S ) ) ) $=
      ( csubg cfv wcel wss wa cgrp cbs cress co adantr eqid subgss wceq subggrp
      adantl subgrcl subgbas sseqtr4d sstrd oveq1i ressabs syl5eq syldan issubg
      eqeltrrd syl3anbrc jca simprr sseqtrd adantrl ad2antrl eqeltrd impbida )
      BCFGZHZADFGHZAUSHZABIZJZUTVAJZVBVCVECKHZACLGZICAMNZKHZVBUTVFVABCUAOVEABVG
      VEADLGZBVAAVJIZUTVJADVJPZQTUTBVJRZVABCDEUBZOUCZUTBVGIVAVGBCVGPZQOUDVEDAMN
      ZVHKUTVAVCVQVHRZVOUTVCJVQCBMNZAMNVHDVSAMEUEBACUSUFUGZUHVAVQKHZUTADVQVQPST
      UJVGACVPUIUKVOULUTVDJZDKHZVKWAVAUTWCVDBCDESOWBABVJUTVBVCUMUTVMVDVNOUNWBVQ
      VHKUTVCVRVBVTUOVBVIUTVCACVHVHPSUPUQVJADVLUIUKUR $.
  $}

  ${
    $d g x y G $.  $d g x y S $.
    $( The intersection of a nonempty collection of subgroups is a subgroup.
       (Contributed by Mario Carneiro, 7-Dec-2014.) $)
    subgint $p |- ( ( S C_ ( SubGrp ` G ) /\ S =/= (/) ) ->
      |^| S e. ( SubGrp ` G ) ) $=
      ( vx vy vg cfv wss c0 wne wcel wral adantlr eqid syl ralrimiva sylibr c0g
      wa cv elint2 csubg cint cbs cplusg co cminusg cuni intssuni adantl subgss
      ssel2 unissb sstrd subg0cl fvex simprl elinti sylan simprr subgcl syl3anc
      ne0i imp ovex anassrs adantll subginvcl syl2anc jca cgrp w3a ssn0 subgrcl
      wb wex n0 exlimiv sylbi issubg2 3syl mpbir3and ) ABUAFZGZAHIZRZAUBZWBJZWF
      BUCFZGZWFHIZCSZDSZBUDFZUEZWFJZDWFKZWKBUFFZFZWFJZRZCWFKZWEWFAUGZWHWDWFXBGW
      CAUHUIWEESZWHGZEAKXBWHGWEXDEAWEXCAJZRZXCWBJZXDWCXEXGWDAWBXCUKLZWHXCBWHMZU
      JNOEAWHULPUMWEBQFZWFJZWJWEXJXCJZEAKXKWEXLEAXFXGXLXHXCBXJXJMUNNOEXJABQUOTP
      WFXJVBNWEWTCWFWEWKWFJZRZWPWSXNWODWFWEXMWLWFJZWOWEXMXORZRZWNXCJZEAKWOXQXRE
      AXQXERXGWKXCJZWLXCJZXRWEXEXGXPXHLXQXMXEXSWEXMXOUPXMXEXSWKAXCUQVCZURXQXOXE
      XTWEXMXOUSXOXEXTWLAXCUQVCURWMXCBWKWLWMMZUTVAOEWNAWKWLWMVDTPVEOXNWRXCJZEAK
      WSXNYCEAXNXERXGXSYCWEXEXGXMXHLXMXEXSWEYAVFXCBWQWKWQMZVGVHOEWRAWKWQUOTPVIO
      WEWBHIZBVJJZWGWIWJXAVKVNAWBVLYEXGEVOYFEWBVPXGYFEXCBVMVQVRCDWHWMWFBWQXIYBY
      DVSVTWA $.
  $}

  ${
    $d G a b $.  $d .0. a b $.
    0subg.z $e |- .0. = ( 0g ` G ) $.
    $( The zero subgroup of an arbitrary group.  (Contributed by Stefan O'Rear,
       10-Dec-2014.) $)
    0subg $p |- ( G e. Grp -> { .0. } e. ( SubGrp ` G ) ) $=
      ( va vb cgrp wcel cfv cv co wral wa eqid c0g fvex wceq elsn sylibr eleq1d
      ralsn csn csubg cbs wss wne cplusg cminusg grpidcl snssd cvv eqeltri snnz
      c0 grplid mpdan ovex grpinvid oveq1 ralbidv oveq2 syl6bb anbi12d sylanbrc
      a1i fveq2 issubg2 mpbir3and ) AFGZBUAZAUBHGVIAUCHZUDVIUMUEZDIZEIZAUFHZJZV
      IGZEVIKZVLAUGHZHZVIGZLZDVIKZVHBVJVJABVJMZCUHZUIVKVHBBANHUJCANOUKZULVDVHBB
      VNJZVIGZBVRHZVIGZWBVHWFBPZWGVHBVJGWJWDVJVNABBWCVNMZCUNUOWFBBBVNUPQRVHWHBP
      WIAVRBCVRMZUQWHBBVROQRWAWGWILDBWEVLBPZVQWGVTWIWMVQBVMVNJZVIGZEVIKWGWMVPWO
      EVIWMVOWNVIVLBVMVNURSUSWOWGEBWEVMBPWNWFVIVMBBVNUTSTVAWMVSWHVIVLBVRVESVBTV
      CDEVJVNVIAVRWCWKWLVFVG $.
  $}

  ${
    $d m n s x A $.  $d m n s u v x G $.  $d x S $.  $d x .x. $.  $d m n x X $.
    $d m n s u v F $.
    cycsubg.x $e |- X = ( Base ` G ) $.
    cycsubg.t $e |- .x. = ( .g ` G ) $.
    cycsubg.f $e |- F = ( x e. ZZ |-> ( x .x. A ) ) $.
    $( The set of integer powers of an element ` A ` of a group forms a
       subgroup containing ` A ` , called the cyclic group generated by the
       element ` A ` .  (Contributed by Mario Carneiro, 13-Jan-2015.) $)
    cycsubgcl $p |- ( ( G e. Grp /\ A e. X ) ->
      ( ran F e. ( SubGrp ` G ) /\ A e. ran F ) ) $=
      ( vv wcel wa cfv cv co cz syl c1 wceq oveq1 vu vm vn crn csubg wss c0 wne
      cgrp cplusg wral cminusg wf mulgcl 3expa an32s fmptd frn ovex fvmpt ax-mp
      1z mulg1 adantl syl5eq wfn ffn fnfvelrn sylancl eqeltrrd caddc w3a df-3an
      mulgdir sylan2br anass1rs zaddcl ad2antrl ad2antll oveq12d 3eqtr4d syl2an
      ne0i eqid anassrs ralrimiva oveq2 eleq1d ralrn adantr mpbird cneg mulgneg
      wb znegcl fveq2d jca ralbidv fveq2 anbi12d issubg2 mpbir3and ) EUIKZBFKZL
      ZDUDZEUEMKZBXFKZXEXGXFFUFZXFUGUHZUANZJNZEUJMZOZXFKZJXFUKZXKEULMZMZXFKZLZU
      AXFUKZXEPFDUMZXIXEAPANZBCOZFDXCYCPKZXDYDFKZXCYEXDYFFCEYCBGHUNUOUPIUQZPFDU
      RQXEXHXJXERDMZBXFXEYHRBCOZBRPKZYHYISVBARYDYIPDYCRBCTIRBCUSUTVAXDYIBSXCFCE
      BGHVCVDVEXEDPVFZYJYHXFKXEYBYKYGPFDVGQZVBPRDVHVIVJZXFBWCQXEYAUBNZDMZXLXMOZ
      XFKZJXFUKZYOXQMZXFKZLZUBPUKZXEUUAUBPXEYNPKZLZYRYTUUDYRYOUCNZDMZXMOZXFKZUC
      PUKZUUDUUHUCPXEUUCUUEPKZUUHXEUUCUUJLZLZYNUUEVKOZDMZUUGXFUULUUMBCOZYNBCOZU
      UEBCOZXMOZUUNUUGXCUUKXDUUOUURSZUUKXDLXCUUCUUJXDVLUUSUUCUUJXDVMFXMCEYNUUEB
      GHXMWDZVNVOVPUULUUMPKZUUNUUOSUUKUVAXEYNUUEVQZVDAUUMYDUUOPDYCUUMBCTIUUMBCU
      SUTQUULYOUUPUUFUUQXMUUCYOUUPSZXEUUJAYNYDUUPPDYCYNBCTIYNBCUSUTZVRUUJUUFUUQ
      SXEUUCAUUEYDUUQPDYCUUEBCTIUUEBCUSUTVSVTWAXEYKUVAUUNXFKUUKYLUVBPUUMDVHWBVJ
      WEWFXEYRUUIWNZUUCXEYKUVEYLYQUUHJUCPDXLUUFSYPUUGXFXLUUFYOXMWGWHWIQWJWKUUDY
      NWLZDMZYSXFUUDUVFBCOZUUPXQMZUVGYSXCUUCXDUVHUVISZXCUUCXDUVJFCEXQYNBGHXQWDZ
      WMUOUPUUDUVFPKZUVGUVHSUUCUVLXEYNWOZVDAUVFYDUVHPDYCUVFBCTIUVFBCUSUTQUUDYOU
      UPXQUUCUVCXEUVDVDWPWAXEYKUVLUVGXFKUUCYLUVMPUVFDVHWBVJWQWFXEYKYAUUBWNYLXTU
      UAUAUBPDXKYOSZXPYRXSYTUVNXOYQJXFUVNXNYPXFXKYOXLXMTWHWRUVNXRYSXFXKYOXQWSWH
      WTWIQWKXCXGXIXJYAVLWNXDUAJFXMXFEXQGUUTUVKXAWJXBYMWQ $.

    $( The cyclic subgroup generated by an element ` A ` is a subset of any
       subgroup containing ` A ` .  (Contributed by Mario Carneiro,
       13-Jan-2015.) $)
    cycsubgss $p |- ( ( S e. ( SubGrp ` G ) /\ A e. S ) -> ran F C_ S ) $=
      ( csubg cfv wcel wa cz wf crn wss cv co subgmulgcl 3expa an32s fmptd frn
      syl ) CFKLMZBCMZNZOCEPEQCRUIAOASZBDTZCEUGUJOMZUHUKCMZUGULUHUMCDFUJBIUAUBU
      CJUDOCEUEUF $.

    $( The cyclic group generated by ` A ` is the smallest subgroup containing
       ` A ` .  (Contributed by Mario Carneiro, 13-Jan-2015.) $)
    cycsubg $p |- ( ( G e. Grp /\ A e. X ) ->
      ran F = |^| { s e. ( SubGrp ` G ) | A e. s } ) $=
      ( cgrp wcel wa crn cv csubg cfv crab cint wss wi ssintab cycsubgss mpgbir
      cab df-rab inteqi sseqtr4i a1i cycsubgcl eleq2 elrab sylibr intss1 eqssd
      syl ) EKLBFLMZDNZBGOZLZGEPQZRZSZURVCTUQURUSVALUTMZGUEZSZVCURVFTVDURUSTUAG
      VDGURUBABUSCDEFHIJUCUDVBVEUTGVAUFUGUHUIUQURVBLZVCURTUQURVALBURLZMVGABCDEF
      HIJUJUTVHGURVAUSURBUKULUMURVBUNUPUO $.
  $}

  ${
    $d x y A $.  $d b g p s x y z G $.  $d b g p s x y z .+ $.  $d s x y z S $.
    $d y B $.  $d b g p s x y z X $.
    isnsg.1 $e |- X = ( Base ` G ) $.
    isnsg.2 $e |- .+ = ( +g ` G ) $.
    $( Property of being a normal subgroup.  (Contributed by Mario Carneiro,
       18-Jan-2015.) $)
    isnsg $p |- ( S e. ( NrmSGrp ` G ) <-> ( S e. ( SubGrp ` G ) /\
      A. x e. X A. y e. X ( ( x .+ y ) e. S <-> ( y .+ x ) e. S ) ) ) $=
      ( vg vp vs vb cnsg cfv wcel cgrp csubg cv co wral wb cdm cplusg wsbc crab
      wa cbs df-nsg dmmptss elfvdm sseldi subgrcl adantr wceq fveq2 cvv syl6eqr
      fvexd simpl fveq2d simplr simpr oveqd bibi12d raleqbidv sbcied2 rabeqbidv
      eleq1d fvex rabex fvmpt eleq2d eleq2 2ralbidv elrab syl6bb pm5.21nii ) DE
      MNZOZEPOZDEQNZOZARZBRZCSZDOZWDWCCSZDOZUAZBFTAFTZUFZVSMUBPEIPWCWDJRZSZKRZO
      ZWDWCWLSZWNOZUAZBLRZTZAWSTZJIRZUCNZUDZLXBUGNZUDZKXBQNZUEZMABIKJLUHZUIDEMU
      JUKWBVTWJDEULUMVTVSDWEWNOZWGWNOZUAZBFTZAFTZKWAUEZOWKVTVRXODIEXHXOPMXBEUNZ
      XFXNKXGWAXBEQUOXPXDXNLXEFUPXPXBUGURXPXEEUGNFXBEUGUOGUQXPWSFUNZUFZXAXNJXCC
      UPXRXBUCURXRXCEUCNCXRXBEUCXPXQUSUTHUQXRWLCUNZUFZWTXMAWSFXPXQXSVAZXTWRXLBW
      SFYAXTWOXJWQXKXTWMWEWNXTWLCWCWDXRXSVBZVCVHXTWPWGWNXTWLCWDWCYBVCVHVDVEVEVF
      VFVGXIXNKWAEQVIVJVKVLXNWJKDWAWNDUNZXLWIABFFYCXJWFXKWHWNDWEVMWNDWGVMVDVNVO
      VPVQ $.

    $( Weaken the condition of ~ isnsg to only one side of the implication.
       (Contributed by Mario Carneiro, 18-Jan-2015.) $)
    isnsg2 $p |- ( S e. ( NrmSGrp ` G ) <-> ( S e. ( SubGrp ` G ) /\
      A. x e. X A. y e. X ( ( x .+ y ) e. S -> ( y .+ x ) e. S ) ) ) $=
      ( vz wcel cv co wral wa wi ralbii weq oveq2 eleq1d oveq1 cnsg csubg isnsg
      cfv wb dfbi2 r19.26-2 bitri imbi12d cbvralv ralcom ralbidv 3bitri anbi12i
      anidm anbi2i ) DEUAUDJDEUBUDJZAKZIKZCLZDJZUSURCLZDJZUEZIFMZAFMZNUQURBKZCL
      ZDJZVGURCLZDJZOZBFMZAFMZNAICDEFGHUCVFVNUQVFVAVCOZIFMZAFMZVCVAOZIFMAFMZNZV
      NVNNVNVFVOVRNZIFMZAFMVTVEWBAFVDWAIFVAVCUFPPVOVRAIFFUGUHVQVNVSVNVPVMAFVOVL
      IBFIBQZVAVIVCVKWCUTVHDUSVGURCRSWCVBVJDUSVGURCTSUIUJPVSVRAFMZIFMUSVGCLZDJZ
      VGUSCLZDJZOZBFMZIFMVNVRAIFFUKWDWJIFVRWIABFABQZVCWFVAWHWKVBWEDURVGUSCRSWKU
      TWGDURVGUSCTSUIUJPWJVMIAFIAQZWIVLBFWLWFVIWHVKWLWEVHDUSURVGCTSWLWGVJDUSURV
      GCRSUIULUJUMUNVNUOUMUPUH $.

    $( Defining property of a normal subgroup.  (Contributed by Mario Carneiro,
       18-Jan-2015.) $)
    nsgbi $p |- ( ( S e. ( NrmSGrp ` G ) /\ A e. X /\ B e. X ) ->
                  ( ( A .+ B ) e. S <-> ( B .+ A ) e. S ) ) $=
      ( vx vy cfv wcel co wb cv wral wceq oveq1 eleq1d oveq2 cnsg csubg simprbi
      wa isnsg bibi12d rspc2v syl5com 3impib ) DEUAKLZAFLZBFLZABCMZDLZBACMZDLZN
      ZUJIOZJOZCMZDLZUSURCMZDLZNZJFPIFPZUKULUDUQUJDEUBKLVEIJCDEFGHUEUCVDUQAUSCM
      ZDLZUSACMZDLZNIJABFFURAQZVAVGVCVIVJUTVFDURAUSCRSVJVBVHDURAUSCTSUFUSBQZVGU
      NVIUPVKVFUMDUSBACTSVKVHUODUSBACRSUFUGUHUI $.
  $}

  ${
    $d w x y z .- $.  $d w x y z G $.  $d w x y z .+ $.  $d w x y z S $.
    $d w x y z X $.
    $( A normal subgroup is a subgroup.  (Contributed by Mario Carneiro,
       18-Jan-2015.) $)
    nsgsubg $p |- ( S e. ( NrmSGrp ` G ) -> S e. ( SubGrp ` G ) ) $=
      ( vx vy cnsg cfv wcel csubg cv cplusg co wb cbs wral eqid isnsg simplbi )
      ABEFGABHFGCIZDIZBJFZKAGSRTKAGLDBMFZNCUANCDTABUAUAOTOPQ $.

    isnsg3.1 $e |- X = ( Base ` G ) $.
    isnsg3.2 $e |- .+ = ( +g ` G ) $.
    isnsg3.3 $e |- .- = ( -g ` G ) $.
    $( The conjugation of an element of a normal subgroup is in the subgroup.
       (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    nsgconj $p |- ( ( S e. ( NrmSGrp ` G ) /\ A e. X /\ B e. S ) ->
      ( ( A .+ B ) .- A ) e. S ) $=
      ( cnsg cfv wcel w3a co cgrp wceq syl syl3anc eqeltrd csubg 3ad2ant1 simp2
      nsgsubg subgrcl wss subgss simp3 sseldd grpaddsubass syl13anc grpnpcan wb
      simp1 grpsubcl nsgbi mpbid ) DEKLMZAGMZBDMZNZABCOAFOZABAFOZCOZDVAEPMZUSBG
      MZUSVBVDQVADEUALMZVEURUSVGUTDEUDUBZDEUERZURUSUTUCZVADGBVAVGDGUFVHGDEHUGRU
      RUSUTUHZUIZVJGCEFABAHIJUJUKVAVCACOZDMZVDDMZVAVMBDVAVEVFUSVMBQVIVLVJGCEFBA
      HIJULSVKTVAURVCGMZUSVNVOUMURUSUTUNVAVEVFUSVPVIVLVJGEFBAHJUOSVJVCACDEGHIUP
      SUQT $.

    $( A subgroup is normal iff the conjugation of all the elements of the
       subgroup is in the subgroup.  (Contributed by Mario Carneiro,
       18-Jan-2015.) $)
    isnsg3 $p |- ( S e. ( NrmSGrp ` G ) <-> ( S e. ( SubGrp ` G ) /\
      A. x e. X A. y e. S ( ( x .+ y ) .- x ) e. S ) ) $=
      ( vz vw cfv wcel cv co wral wa wceq syl2anc cnsg csubg nsgsubg ralrimivva
      nsgconj 3expb jca wi simpl cminusg c0g cgrp subgrcl ad2antrr simprll eqid
      grplinv oveq1d grpinvcl simprlr grpass grplid 3eqtr3d eqtrd simprr simplr
      syl13anc grpsubinv oveq1 id oveq12d eleq1d rspc2va syl21anc eqeltrrd expr
      oveq2 isnsg2 sylanbrc impbii ) DEUAMNZDEUBMNZAOZBOZCPZWCFPZDNZBDQAGQZRZWA
      WBWHDEUCWAWGABGDWAWCGNWDDNWGWCWDCDEFGHIJUEUFUDUGWIWBKOZLOZCPZDNZWKWJCPZDN
      ZUHZLGQKGQWAWBWHUIWIWPKLGGWIWJGNZWKGNZRZWMWOWIWSWMRZRZWJEUJMZMZWLCPZXCFPZ
      WNDXAXEWKXCFPWNXAXDWKXCFXAXCWJCPZWKCPZEUKMZWKCPZXDWKXAXFXHWKCXAEULNZWQXFX
      HSWBXJWHWTDEUMUNZWIWQWRWMUOZGCEXBWJXHHIXHUPZXBUPZUQTURXAXJXCGNZWQWRXGXDSX
      KXAXJWQXOXKXLGEXBWJHXNUSTZXLWIWQWRWMUTZGCEXCWJWKHIVAVGXAXJWRXIWKSXKXQGCEW
      KXHHIXMVBTVCURXAGCEFXBWKWJHIJXNXKXQXLVHVDXAXOWMWHXEDNZXPWIWSWMVEWBWHWTVFW
      GXRXCWDCPZXCFPZDNABXCWLGDWCXCSZWFXTDYAWEXSWCXCFWCXCWDCVIYAVJVKVLWDWLSZXTX
      EDYBXSXDXCFWDWLXCCVQURVLVMVNVOVPUDKLCDEGHIVRVSVT $.
  $}

  ${
    $d B s x y z $.  $d G s x y z $.
    subgacs.b $e |- B = ( Base ` G ) $.
    $( Subgroups are an algebraic closure system.  (Contributed by Stefan
       O'Rear, 4-Apr-2015.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
    subgacs $p |- ( G e. Grp -> ( SubGrp ` G ) e. ( ACS ` B ) ) $=
      ( vx vy vs cgrp wcel csubg cfv csubmnd cv cminusg wral cpw wa syl cvv cbs
      crab cin cacs eqid issubg3 wb submss adantl selpw sylibr eleq2 raleqbi1dv
      wss elrab3 pm5.32da bitr4d elin syl6bbr eqrdv cmre fvex eqeltri mp1i cmnd
      mreacs grpmnd submacs grpinvcl ralrimiva sylancr mreincl syl3anc eqeltrd
      acsfn1 ) BGHZBIJZBKJZDLZBMJZJZELZHZDVTNZEAOZTZUAZAUBJZVNFVOWEVNFLZVOHZWGV
      PHZWGWDHZPZWGWEHVNWHWIVSWGHZDWGNZPWKDWGBVRVRUCZUDVNWIWJWMVNWIPZWGWCHZWJWM
      UEWOWGAULZWPWIWQVNAWGBCUFUGFAUHUIWBWMEWGWCWAWLDVTWGVTWGVSUJUKUMQUNUOWGVPW
      DUPUQURVNWFWCUSJHZVPWFHZWDWFHZWEWFHARHZWRVNABSJRCBSUTVAZRAVDVBVNBVCHWSBVE
      ABCVFQVNXAVSAHZDANWTXBVNXCDAABVRVQCWNVGVHVSRAEDVMVIVPWDWFWCVJVKVL $.

    $( Normal subgroups form an algebraic closure system.  (Contributed by
       Stefan O'Rear, 4-Sep-2015.) $)
    nsgacs $p |- ( G e. Grp -> ( NrmSGrp ` G ) e. ( ACS ` B ) ) $=
      ( vx vy vz vs cgrp wcel cnsg cfv csubg cv co wral wa eqid cvv cbs syl3anc
      cplusg csg cpw crab cin cacs wss subgss selpw sylibr weq eleq2 raleqbi1dv
      wb ralbidv elrab3 syl bicomd pm5.32i elin 3bitr4i eqriv cmre fvex eqeltri
      isnsg3 mreacs mp1i subgacs simpl grpcl simprl grpsubcl ralrimivva acsfn1c
      3expb sylancr mreincl syl5eqel ) BHIZBJKZBLKZDMZEMZBUAKZNZWCBUBKZNZFMZIZE
      WIOZDAOZFAUCZUDZUEZAUFKZGWAWOGMZWBIZWHWQIZEWQOZDAOZPWRWQWNIZPWQWAIWQWOIWR
      XAXBWRXBXAWRWQWMIZXBXAUNWRWQAUGXCAWQBCUHGAUIUJWLXAFWQWMFGUKWKWTDAWJWSEWIW
      QWIWQWHULUMUOUPUQURUSDEWEWQBWGACWEQZWGQZVFWQWBWNUTVAVBVTWPWMVCKIZWBWPIWNW
      PIZWOWPIARIZXFVTABSKRCBSVDVEZRAVGVHABCVIVTXHWHAIZEAODAOXGXIVTXJDEAAVTWCAI
      ZWDAIZPZPVTWFAIZXKXJVTXMVJVTXKXLXNAWEBWCWDCXDVKVPVTXKXLVLABWGWFWCCXEVMTVN
      WHARAFDEVOVQWBWNWPWMVRTVS $.
  $}

  ${
    $d x y A $.  $d x y G $.  $d x .x. $.  $d x y X $.  $d y F $.  $d y K $.
    cycsubg2.x $e |- X = ( Base ` G ) $.
    cycsubg2.t $e |- .x. = ( .g ` G ) $.
    cycsubg2.f $e |- F = ( x e. ZZ |-> ( x .x. A ) ) $.
    cycsubg2.k $e |- K = ( mrCls ` ( SubGrp ` G ) ) $.
    $( The subgroup generated by an element is exhausted by its multiples.
       (Contributed by Stefan O'Rear, 6-Sep-2015.) $)
    cycsubg2 $p |- ( ( G e. Grp /\ A e. X ) -> ( K ` { A } ) = ran F ) $=
      ( vy cgrp wcel wa csn wss cfv crab cint cv csubg crn snssg bicomd rabbidv
      wb adantl inteqd cmre subgacs acsmred snssi mrcval syl2an cycsubg 3eqtr4d
      wceq ) EMNZBGNZOZBPZLUAZQZLEUBRZSZTZBVCNZLVESZTVBFRZDUCVAVFVIVAVDVHLVEUTV
      DVHUGUSUTVHVDBVCGUDUEUHUFUIUSVEGUJRNVBGQVJVGURUTUSVEGGEHUKULBGUMVEVBFGLKU
      NUOABCDEGLHIJUPUQ $.
  $}

  ${
    cycsubg2cl.x $e |- X = ( Base ` G ) $.
    cycsubg2cl.t $e |- .x. = ( .g ` G ) $.
    cycsubg2cl.k $e |- K = ( mrCls ` ( SubGrp ` G ) ) $.
    $( Any multiple of an element is contained in the generated cyclic
       subgroup.  (Contributed by Stefan O'Rear, 12-Sep-2015.) $)
    cycsubg2cl $p |- ( ( G e. Grp /\ A e. X /\ N e. ZZ ) ->
        ( N .x. A ) e. ( K ` { A } ) ) $=
      ( cgrp wcel cz w3a csn cfv csubg co cmre wss subgacs 3ad2ant1 simp2 snssd
      acsmred mrccl syl2anc simp3 mrcssidd wb snssg 3ad2ant2 subgmulgcl syl3anc
      mpbird ) CJKZAFKZELKZMZANZDOZCPOZKZUQAUTKZEABQUTKURVAFROKZUSFSVBUOUPVDUQU
      OVAFFCGTUDUAZURAFUOUPUQUBUCZVAUSDFIUEUFUOUPUQUGURVCUSUTSZURVAUSDFVEIVFUHU
      PUOVCVGUIUQAUTFUJUKUNUTBCEAHULUM $.
  $}

  ${
    $d x z A $.  $d z B $.  $d u w x y z G $.  $d u w z N $.  $d u w x y z S $.
    $d u w x y z .+ $.  $d w z H $.  $d u w x y z X $.
    elnmz.1 $e |- N = { x e. X |
      A. y e. X ( ( x .+ y ) e. S <-> ( y .+ x ) e. S ) } $.
    $( Elementhood in the normalizer.  (Contributed by Mario Carneiro,
       18-Jan-2015.) $)
    elnmz $p |- ( A e. N <-> ( A e. X /\
      A. z e. X ( ( A .+ z ) e. S <-> ( z .+ A ) e. S ) ) ) $=
      ( cv co wcel wb wral wceq oveq2 eleq1d oveq1 bibi12d cbvralv ralbidv
      syl5bb elrab2 ) AJZBJZEKZFLZUEUDEKZFLZMZBHNZDCJZEKZFLZULDEKZFLZMZCHNZADHG
      UKUDULEKZFLZULUDEKZFLZMZCHNUDDOZURUJVCBCHUEULOZUGUTUIVBVEUFUSFUEULUDEPQVE
      UHVAFUEULUDERQSTVDVCUQCHVDUTUNVBUPVDUSUMFUDDULERQVDVAUOFUDDULEPQSUAUBIUC
      $.

    $( Defining property of the normalizer.  (Contributed by Mario Carneiro,
       18-Jan-2015.) $)
    nmzbi $p |- ( ( A e. N /\ B e. X ) ->
      ( ( A .+ B ) e. S <-> ( B .+ A ) e. S ) ) $=
      ( vz wcel cv co wb wral elnmz simprbi wceq oveq2 eleq1d bibi12d rspccva
      oveq1 sylan ) CGKZCJLZEMZFKZUFCEMZFKZNZJHOZDHKCDEMZFKZDCEMZFKZNZUECHKULAB
      JCEFGHIPQUKUQJDHUFDRZUHUNUJUPURUGUMFUFDCESTURUIUOFUFDCEUCTUAUBUD $.

    nmzsubg.2 $e |- X = ( Base ` G ) $.
    nmzsubg.3 $e |- .+ = ( +g ` G ) $.
    $( The normalizer N_G(S) of a subset ` S ` of the group is a subgroup.
       (Contributed by Mario Carneiro, 18-Jan-2015.) $)
    nmzsubg $p |- ( G e. Grp -> N e. ( SubGrp ` G ) ) $=
      ( vz vu wcel co wral wb eleq1d wceq grpass syl2anc cgrp csubg cfv wss wne
      vw c0 cv cminusg wa crab ssrab2 eqsstri a1i c0g eqid grplid grprid eqtr4d
      grpidcl ralrimiva elnmz sylanbrc syl w3a sseli grpcl syl3an simpl1 simpl2
      ne0i id sseldi simpl3 simpr syl13anc syl3anc nmzbi 3bitrd grpinvcl sylan2
      3expa simplr simpll adantr grprinv oveq1d 3eqtr3d grplinv oveq2d 3bitr3rd
      3eqtrd eqtrd jca issubg2 mpbir3and ) EUAMZFEUBUCMFGUDZFUGUEZKUHZUFUHZCNZF
      MZUFFOZWTEUIUCZUCZFMZUJZKFOWRWQFAUHZBUHZCNDMXJXICNDMPBGOZAGUKGHXKAGULUMZU
      NWQEUOUCZFMZWSWQXMGMXMWTCNZDMWTXMCNZDMPZKGOXNGEXMIXMUPZUTWQXQKGWQWTGMZUJZ
      XOXPDXTXOWTXPGCEWTXMIJXRUQGCEWTXMIJXRURUSQVAABKXMCDFGHVBVCFXMVKVDWQXHKFWQ
      WTFMZUJZXDXGYBXCUFFWQYAXAFMZXCWQYAYCVEZXBGMZXBLUHZCNZDMZYFXBCNZDMZPZLGOXC
      WQWQYAXSYCXAGMZYEWQVLFGWTXLVFZFGXAXLVFGCEWTXAIJVGVHYDYKLGYDYFGMZUJZYHWTXA
      YFCNZCNZDMZYFWTCNZXACNZDMZYJYOYGYQDYOWQXSYLYNYGYQRWQYAYCYNVIZYOFGWTXLWQYA
      YCYNVJZVMZYOFGXAXLWQYAYCYNVNZVMZYDYNVOZGCEWTXAYFIJSVPQYOYRYPWTCNZDMZXAYSC
      NZDMZUUAYOYAYPGMZYRUUIPUUCYOWQYLYNUULUUBUUFUUGGCEXAYFIJVGVQABWTYPCDFGHVRT
      YOUUHUUJDYOWQYLYNXSUUHUUJRUUBUUFUUGUUDGCEXAYFWTIJSVPQYOYCYSGMZUUKUUAPUUEY
      OWQYNXSUUMUUBUUGUUDGCEYFWTIJVGVQABXAYSCDFGHVRTVSYOYTYIDYOWQYNXSYLYTYIRUUB
      UUGUUDUUFGCEYFWTXAIJSVPQVSVAABLXBCDFGHVBVCWBVAYBXFGMZXFYFCNZDMZYFXFCNZDMZ
      PZLGOXGYAWQXSUUNYMGEXEWTIXEUPZVTWAZYBUUSLGYBYNUJZWTXFUUQCNZCNZDMZUVCWTCNZ
      DMZUURUUPUVBYAUVCGMZUVEUVGPWQYAYNWCZUVBWQUUNUUQGMZUVHWQYAYNWDZYBUUNYNUVAW
      EZUVBWQYNUUNUVJUVKYBYNVOZUVLGCEYFXFIJVGVQZGCEXFUUQIJVGVQABWTUVCCDFGHVRTUV
      BUVDUUQDUVBWTXFCNZUUQCNZXMUUQCNZUVDUUQUVBUVOXMUUQCUVBWQXSUVOXMRUVKUVBFGWT
      XLUVIVMZGCEXEWTXMIJXRUUTWFTWGUVBWQXSUUNUVJUVPUVDRUVKUVRUVLUVNGCEWTXFUUQIJ
      SVPUVBWQUVJUVQUUQRUVKUVNGCEUUQXMIJXRUQTWHQUVBUVFUUODUVBUVFXFUUQWTCNZCNZUU
      OUVBWQUUNUVJXSUVFUVTRUVKUVLUVNUVRGCEXFUUQWTIJSVPUVBUVSYFXFCUVBUVSYFXFWTCN
      ZCNZYFXMCNZYFUVBWQYNUUNXSUVSUWBRUVKUVMUVLUVRGCEYFXFWTIJSVPUVBUWAXMYFCUVBW
      QXSUWAXMRUVKUVRGCEXEWTXMIJXRUUTWITWJUVBWQYNUWCYFRUVKUVMGCEYFXMIJXRURTWLWJ
      WMQWKVAABLXFCDFGHVBVCWNVAKUFGCFEXEIJUUTWOWP $.

    $( A subgroup is a subset of its normalizer.  (Contributed by Mario
       Carneiro, 18-Jan-2015.) $)
    ssnmz $p |- ( S e. ( SubGrp ` G ) -> S C_ N ) $=
      ( vw cfv wcel wa co wceq syl eqid syl2anc syl3anc vz csubg cv wral subgss
      wb sselda simpll cminusg c0g subgrcl wss simplrl sseldd grplinv subginvcl
      cgrp oveq1d simplrr grpass syl13anc grplid simpr subgcl eqeltrrd grppncan
      3eqtr3d csg subgsubcl impbida anassrs ralrimiva elnmz sylanbrc ex ssrdv )
      DEUBLMZUADFVQUAUCZDMZVRFMZVQVSNZVRGMZVRKUCZCOZDMZWCVRCOZDMZUFZKGUDVTVQDGV
      RGDEIUEZUGZWAWHKGVQVSWCGMZWHVQVSWKNZNZWEWGWMWENZVQWCDMZVSWGVQWLWEUHZWNVRE
      UILZLZWDCOZWCDWNWRVRCOZWCCOZEUJLZWCCOZWSWCWNWTXBWCCWNEUQMZWBWTXBPWNVQXDWP
      DEUKZQZWNDGVRWNVQDGULWPWIQZVQVSWKWEUMZUNZGCEWQVRXBIJXBRZWQRZUOSURWNXDWRGM
      WBWKXAWSPXFWNDGWRXGWNVQVSWRDMZWPXHDEWQVRXKUPSZUNXIVQVSWKWEUSZGCEWRVRWCIJU
      TVAWNXDWKXCWCPXFXNGCEWCXBIJXJVBSVGWNVQXLWEWSDMWPXMWMWEVCCDEWRWDJVDTVEXHCD
      EWCVRJVDTWMWGNZVQVSWOWEVQWLWGUHZVQVSWKWGUMZXOWFVREVHLZOZWCDXOXDWKWBXSWCPX
      OVQXDXPXEQVQVSWKWGUSXOVQVSWBXPXQWJSGCEXRWCVRIJXRRZVFTXOVQWGVSXSDMXPWMWGVC
      XQDEXRWFVRXTVITVECDEVRWCJVDTVJVKVLABKVRCDFGHVMVNVOVP $.

    $( A subgroup is normal iff its normalizer is the entire group.
       (Contributed by Mario Carneiro, 18-Jan-2015.) $)
    isnsg4 $p |- ( S e. ( NrmSGrp ` G ) <->
                   ( S e. ( SubGrp ` G ) /\ N = X ) ) $=
      ( cnsg cfv wcel csubg cv co wb wral wa wceq eqeq2i rabid2 3bitri anbi2i
      isnsg crab eqcom bitr4i ) DEKLMDENLMZAOZBOZCPDMUKUJCPDMQBGRZAGRZSUIFGTZSA
      BCDEGIJUEUNUMUIUNGFTGULAGUFZTUMFGUGFUOGHUAULAGUBUCUDUH $.

    nmznsg.4 $e |- H = ( G |`s N ) $.
    $( Any subgroup is a normal subgroup of its normalizer.  (Contributed by
       Mario Carneiro, 19-Jan-2015.) $)
    nmznsg $p |- ( S e. ( SubGrp ` G ) -> S e. ( NrmSGrp ` H ) ) $=
      ( vz vw cfv wcel cv co wb wral csubg cbs cnsg id ssnmz wa subgrcl nmzsubg
      wss cgrp syl subsubg mpbir2and crab ssrab2 sseli nmzbi sylan2 rgen2a wceq
      eqsstri subgbas raleqdv raleqbidv mpbii eqid cvv cplusg eqeltri ressplusg
      fvex ssexi ax-mp isnsg sylanbrc ) DEUAOZPZDFUAOPZMQZNQZCRDPVTVSCRDPSZNFUB
      OZTZMWBTZDFUCOPVQVRVQDGUIZVQUDABCDEGHIJKUEVQGVPPZVRVQWEUFSVQEUJPWFDEUGABC
      DEGHIJKUHUKZDGEFLULUKUMVQWANGTZMGTWDWAMNGVTGPVSGPVTHPWAGHVTGAQZBQZCRDPWJW
      ICRDPSBHTZAHUNHIWKAHUOVAZUPABVSVTCDGHIUQURUSVQWHWCMGWBVQWFGWBUTWGGEFLVBUK
      ZVQWANGWBWMVCVDVEMNCDFWBWBVFGVGPCFVHOUTGHHEUBOVGJEUBVKVIWLVLGCEFVGLKVJVMV
      NVO $.
  $}

  ${
    $d G x y $.  $d .0. x y $.
    0nsg.z $e |- .0. = ( 0g ` G ) $.
    $( The zero subgroup is normal.  (Contributed by Mario Carneiro,
       4-Feb-2015.) $)
    0nsg $p |- ( G e. Grp -> { .0. } e. ( NrmSGrp ` G ) ) $=
      ( vx vy cgrp wcel csn csubg cfv cv cplusg co wral wceq eqid adantrr eqtrd
      csg wa cbs cnsg 0subg elsni ad2antll oveq2d grprid oveq1d grpsubid sylibr
      ovex elsn ralrimivva isnsg3 sylanbrc ) AFGZBHZAIJGDKZEKZALJZMZURASJZMZUQG
      ZEUQNDAUAJZNUQAUBJGABCUCUPVDDEVEUQUPURVEGZUSUQGZTTZVCBOVDVHVCURURVBMZBVHV
      AURURVBVHVAURBUTMZURVHUSBURUTVGUSBOUPVFUSBUDUEUFUPVFVJUROVGVEUTAURBVEPZUT
      PZCUGQRUHUPVFVIBOVGVEAVBURBVKCVBPZUIQRVCBVAURVBUKULUJUMDEUTUQAVBVEVKVLVMU
      NUO $.
  $}

  ${
    $d G x y $.  $d B x y $.
    nsgid.z $e |- B = ( Base ` G ) $.
    $( The whole group is a normal subgroup of itself.  (Contributed by Mario
       Carneiro, 4-Feb-2015.) $)
    nsgid $p |- ( G e. Grp -> B e. ( NrmSGrp ` G ) ) $=
      ( vx vy cgrp wcel csubg cfv cv cplusg csg wral cnsg subgid w3a simp1 eqid
      co grpcl simp2 grpsubcl syl3anc 3expb ralrimivva isnsg3 sylanbrc ) BFGZAB
      HIGDJZEJZBKIZSZUIBLIZSAGZEAMDAMABNIGABCOUHUNDEAAUHUIAGZUJAGZUNUHUOUPPUHUL
      AGUOUNUHUOUPQAUKBUIUJCUKRZTUHUOUPUAABUMULUICUMRZUBUCUDUEDEUKABUMACUQURUFU
      G $.
  $}

  ${
    $d g s x y $.
    releqg.r $e |- R = ( G ~QG S ) $.
    $( The left coset equivalence relation is a relation.  (Contributed by
       Mario Carneiro, 14-Jun-2015.) $)
    releqg $p |- Rel R $=
      ( vx vy vg vs wrel cqg co cv cpr cbs cfv wss cminusg cplusg wcel cvv wa
      df-eqg relmpt2opab releqi mpbir ) AICBJKZIELZFLZMGLZNOPUGUIQOOUHUIROKHLSU
      AGHEFTTCBJEFHGUBUCAUFDUDUE $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d g s x y G $.  $d g s x y N $.  $d g s x y S $.
    $d g s x y .+ $.  $d g s x y X $.
    eqgval.x $e |- X = ( Base ` G ) $.
    eqgval.n $e |- N = ( invg ` G ) $.
    eqgval.p $e |- .+ = ( +g ` G ) $.
    eqgval.r $e |- R = ( G ~QG S ) $.
    $( Value of the subgroup left coset equivalence relation.  (Contributed by
       Mario Carneiro, 15-Jan-2015.) $)
    eqgfval $p |- ( ( G e. V /\ S C_ X ) -> R = { <. x , y >. |
      ( { x , y } C_ X /\ ( ( N ` x ) .+ y ) e. S ) } ) $=
      ( vg wcel cvv cv cfv wa cbs vs cpr wss co wceq elex fvex eqeltri ssex cqg
      copab cminusg cplusg simpl fveq2d syl6eqr sseq2d oveq123d eleq12d anbi12d
      fveq1d eqidd simpr opabbidv df-eqg cxp xpex prss sylibr ssopab2i sseqtr4i
      vex df-xp ssexi ovmpt2a syl5eq syl2an ) FHOFPOZEPOZDAQZBQZUBZIUCZVTGRZWAC
      UDZEOZSZABUKZUEEIUCFHUFEIIFTRZPJFTUGUHZUIVRVSSDFEUJUDWHMNUAFEPPWBNQZTRZUC
      ZVTWKULRZRZWAWKUMRZUDZUAQZOZSZABUKWHUJWKFUEZWREUEZSZWTWGABXCWMWCWSWFXCWLI
      WBXCWLWIIXCWKFTXAXBUNZUOJUPUQXCWQWEWREXCWOWDWAWAWPCXCWPFUMRCXCWKFUMXDUOLU
      PXCVTWNGXCWNFULRGXCWKFULXDUOKUPVAXCWAVBURXAXBVCUSUTVDABUANVEWHIIVFZIIWJWJ
      VGWHVTIOWAIOSZABUKXEWGXFABWGWCXFWCWFUNVTWAIAVLBVLVHVIVJABIIVMVKVNVOVPVQ
      $.

    $( Value of the subgroup left coset equivalence relation.  (Contributed by
       Mario Carneiro, 15-Jan-2015.)  (Revised by Mario Carneiro,
       14-Jun-2015.) $)
    eqgval $p |- ( ( G e. V /\ S C_ X ) -> ( A R B <->
      ( A e. X /\ B e. X /\ ( ( N ` A ) .+ B ) e. S ) ) ) $=
      ( vx vy wcel wss wa wbr cvv cv cpr cfv co copab w3a eqgfval adantl simpr1
      breqd brabv elex syl simpr2 jca wceq prss eleq1 bi2anan9 syl5bbr fveq2 id
      vex oveqan12d eleq1d anbi12d df-3an syl6bbr eqid brabga pm5.21nd bitrd )
      FHPEIQRZABDSABNUAZOUAZUBIQZVNGUCZVOCUDZEPZRZNOUEZSZAIPZBIPZAGUCZBCUDZEPZU
      FZVMDWAABNOCDEFGHIJKLMUGUJVMWBWHATPZBTPZRZWBWKVMVTNOABUKUHVMWHRZWIWJWLWCW
      IVMWCWDWGUIAIULUMWLWDWJVMWCWDWGUNBIULUMUOVTWHNOABWATTVNAUPZVOBUPZRZVTWCWD
      RZWGRWHWOVPWPVSWGVPVNIPZVOIPZRWOWPVNVOINVCOVCUQWMWQWCWNWRWDVNAIURVOBIURUS
      UTWOVRWFEWMWNVQWEVOBCVNAGVAWNVBVDVEVFWCWDWGVGVHWAVIVJVKVL $.
  $}

  ${
    $d g x .+ $.  $d x y z .~ $.  $d x .0. $.  $d g x y z G $.  $d g x y z X $.
    $d g x A $.  $d x y z Y $.
    eqger.x $e |- X = ( Base ` G ) $.
    eqger.r $e |- .~ = ( G ~QG Y ) $.
    $( The subgroup coset equivalence relation is an equivalence relation.
       (Contributed by Mario Carneiro, 13-Jan-2015.) $)
    eqger $p |- ( Y e. ( SubGrp ` G ) -> .~ Er X ) $=
      ( cfv wcel cv wbr wa co w3a cgrp wb eqid eqgval syl2anc wceq adantr vx vy
      vz wrel releqg a1i cminusg cplusg wss subgrcl subgss biimpa simp2d simp1d
      csubg grpinvcl grpinvadd syl3anc grpinvinv oveq2d simp3d subginvcl syldan
      eqtrd eqeltrrd mpbir3and adantrr adantrl grpcl grpass syl13anc c0g oveq1d
      grprinv grplid 3eqtr3d simpl subgcl grplinv sylan subg0cl pm4.71rd df-3an
      eqeltrd ex anidm anbi2ci bitri syl6bb bitr4d iserd ) DBUOGHZUAUBUCCAAUDWL
      ADBFUEUFWLUAIZUBIZAJZKZWNWMAJZWNCHZWMCHZWNBUGGZGZWMBUHGZLZDHZWPWSWRWMWTGZ
      WNXBLZDHZWLWOWSWRXGMZWLBNHZDCUIZWOXHODBUJZCDBEUKZWMWNXBADBWTNCEWTPZXBPZFQ
      RULZUMZWPWSWRXGXOUNZWPXFWTGZXCDWPXRXAXEWTGZXBLZXCWPXIXECHZWRXRXTSWLXIWOXK
      TZWPXIWSYAYBXQCBWTWMEXMUPZRXPCXBBWTXEWNEXNXMUQURWPXSWMXAXBWPXIWSXSWMSYBXQ
      CBWTWMEXMUSRUTVDWLWOXGXRDHWPWSWRXGXOVAZDBWTXFXMVBVCVEWPXIXJWQWRWSXDMOYBWL
      XJWOXLTWNWMXBADBWTNCEXMXNFQRVFWLWOWNUCIZAJZKZKZWMYEAJZWSYECHZXEYEXBLZDHZW
      LWOWSYFXQVGZYHWRYJXAYEXBLZDHZWLYFWRYJYOMZWOWLYFYPWLXIXJYFYPOXKXLWNYEXBADB
      WTNCEXMXNFQRULVHZUMZYHXFYNXBLZYKDYHYSXEWNYNXBLZXBLZYKYHXIYAWRYNCHZYSUUASW
      LXIYGXKTZYHXIWSYAUUCYMYCRWLWOWRYFXPVGZYHXIXACHZYJUUBUUCYHXIWRUUEUUCUUDCBW
      TWNEXMUPRZYRCXBBXAYEEXNVIURCXBBXEWNYNEXNVJVKYHYTYEXEXBYHWNXAXBLZYEXBLZBVL
      GZYEXBLZYTYEYHUUGUUIYEXBYHXIWRUUGUUISUUCUUDCXBBWTWNUUIEXNUUIPZXMVNRVMYHXI
      WRUUEYJUUHYTSUUCUUDUUFYRCXBBWNXAYEEXNVJVKYHXIYJUUJYESUUCYRCXBBYEUUIEXNUUK
      VORVPUTVDYHWLXGYOYSDHWLYGVQWLWOXGYFYDVGYHWRYJYOYQVAXBDBXFYNXNVRURVEYHXIXJ
      YIWSYJYLMOUUCWLXJYGXLTWMYEXBADBWTNCEXMXNFQRVFWLWSXEWMXBLZDHZWSKZWMWMAJZWL
      WSUUMWLWSUUMWLWSKUULUUIDWLXIWSUULUUISXKCXBBWTWMUUIEXNUUKXMVSVTWLUUIDHWSDB
      UUIUUKWATWDWEWBWLUUOWSWSUUMMZUUNWLXIXJUUOUUPOXKXLWMWMXBADBWTNCEXMXNFQRUUP
      WSWSKZUUMKUUNWSWSUUMWCUUQWSUUMWSWFWGWHWIWJWK $.

    ${
      eqglact.3 $e |- .+ = ( +g ` G ) $.
      $( A left coset can be expressed as the image of a left action.
         (Contributed by Mario Carneiro, 20-Sep-2015.) $)
      eqglact $p |- ( ( G e. Grp /\ Y C_ X /\ A e. X ) ->
        [ A ] .~ = ( ( x e. X |-> ( A .+ x ) ) " Y ) ) $=
        ( vg wcel cfv co wa cmpt cima eqid wceq ccnv wss w3a cv wbr cab cminusg
        cgrp cec wb eqgval 3anass syl6bb baibd 3impa abbidv dfec2 3ad2ant3 wf1o
        grplactcnv simprd grplactfval adantl cnveqd syl 3eqtr3d 3adant2 imaeq1d
        grpinvcl imacnvcnv crab mptpreima df-rab eqtri 3eqtr3g 3eqtr4d ) EUGLZG
        FUAZBFLZUBZBAUCZDUDZAUEZVTFLZBEUFMZMZVTCNZGLZOZAUEZBDUHZAFBVTCNPZGQZVSW
        AWHAVPVQVRWAWHUIVPVQOZWAVRWHWMWAVRWCWGUBVRWHOBVTCDGEWDUGFHWDRZJIUJVRWCW
        GUKULUMUNUOVRVPWJWBSVQABDFUPUQVSWKTZTZGQAFWFPZTZGQZWLWIVSWPWRGVPVRWPWRS
        VQVPVROZWOWQWTBKFAFKUCVTCNPPZMZTZWEXAMZWOWQWTFFXBURXCXDSBCKXAEWDFAXARZH
        JWNUSUTWTXBWKVRXBWKSVPBCKXAEFAXEHVAVBVCWTWEFLXDWQSFEWDBHWNVHWECKXAEFAXE
        HVAVDVEVCVFVGWKGVIWSWGAFVJWIAFWFGWQWQRVKWGAFVLVMVNVO $.
    $}

    ${
      eqgid.3 $e |- .0. = ( 0g ` G ) $.
      $( The left coset containing the identity is the original subgroup.
         (Contributed by Mario Carneiro, 20-Sep-2015.) $)
      eqgid $p |- ( Y e. ( SubGrp ` G ) -> [ .0. ] .~ = Y ) $=
        ( vx csubg cfv wcel cec wb co wa cgrp wceq eqid syl cv wbr wrel relelec
        releqg ax-mp cminusg cplusg subgrcl adantr grpinvid oveq1d grplid sylan
        eqtrd eleq1d pm5.32da wss subgss grpidcl w3a eqgval 3anass syl6bb baibd
        syl21anc sseld pm4.71rd 3bitr4d syl5bb eqrdv ) DBJKLZIEAMZDIUAZVMLZEVNA
        UBZVLVNDLZAUCVOVPNADBGUEVNEAUDUFVLVNCLZEBUGKZKZVNBUHKZOZDLZPZVRVQPVPVQV
        LVRWCVQVLVRPZWBVNDWEWBEVNWAOZVNWEVTEVNWAWEBQLZVTERVLWGVRDBUIZUJBVSEHVSS
        ZUKTULVLWGVRWFVNRWHCWABVNEFWASZHUMUNUOUPUQVLWGDCURZECLZVPWDNWHCDBFUSZVL
        WGWLWHCBEFHUTTWGWKPZVPWLWDWNVPWLVRWCVAWLWDPEVNWAADBVSQCFWIWJGVBWLVRWCVC
        VDVEVFVLVQVRVLDCVNWMVGVHVIVJVK $.
    $}

    $( Each coset is equipotent to the subgroup itself (which is also the coset
       containing the identity).  (Contributed by Mario Carneiro,
       20-Sep-2015.) $)
    eqgen $p |- ( ( Y e. ( SubGrp ` G ) /\ A e. ( X /. .~ ) ) -> Y ~~ A ) $=
      ( vz vy cv cen wbr cfv wcel eqid wa co cmpt cvv wf1o cec csubg cqs cplusg
      vx breq2 cima cres simpl cgrp wss wceq subgrcl subgss eqglact 3expa sylan
      jca cqg ovex eqeltri ecexg syl6eqelr wf1 grplactf1o wb grplactfval adantl
      ax-mp f1oeq1 mpbid adantr f1ores syl2anc f1oen2g syl3anc breqtrrd ectocld
      syl f1of1 ) EUEJZBUAZKLEAKLECUBMZNZUEADBDBUCZWEOWBAEKUFWDWADNZPZEHDWAHJZC
      UDMZQRZEUGZWBKWGWDWKSNEWKWJEUHZTZEWKKLWDWFUIWGWKWBSWDCUJNZEDUKZPWFWBWKULZ
      WDWNWOECUMZDECFUNZURWNWOWFWPHWAWIBCDEFGWIOZUOUPUQZBSNWBSNBCEUSQSGCEUSUTVA
      WASBVBVIVCWGDDWJVDZWOWMWGDDWJTZXAWDWNWFXBWQWNWFPZDDWAIDHDIJWHWIQRRZMZTZXB
      WAWIIXDCDHXDOZFWSVEXCXEWJULZXFXBVFWFXHWNWAWIIXDCDHXGFVGVHDDXEWJVJVSVKUQDD
      WJVTVSWDWOWFWRVLDDEWJVMVNEWKWLWCSVOVPWTVQVR $.

    eqgcpbl.p $e |- .+ = ( +g ` G ) $.
    $( The subgroup coset equivalence relation is compatible with addition when
       the subgroup is normal.  (Contributed by Mario Carneiro,
       14-Jun-2015.) $)
    eqgcpbl $p |- ( Y e. ( NrmSGrp ` G ) ->
        ( ( A .~ C /\ B .~ D ) -> ( A .+ B ) .~ ( C .+ D ) ) ) $=
      ( cfv wcel co cgrp wb syl2anc mpbid syl3anc cnsg wa cminusg csubg nsgsubg
      wbr adantr subgrcl syl w3a simprl subgss eqid eqgval simp1d simprr simp2d
      wss grpcl wceq grpinvadd oveq1d grpinvcl grpass eqtrd eqtr3d simp3d simpl
      syl13anc nsgbi subgcl eqeltrd mpbir3and ex ) IGUAMNZACFUFZBDFUFZUBZABEOZC
      DEOZFUFZVOVRUBZWAVSHNZVTHNZVSGUCMZMZVTEOZINZWBGPNZAHNZBHNZWCWBIGUDMNZWIVO
      WLVRIGUEUGZIGUHUIZWBWJCHNZAWEMZCEOZINZWBVPWJWOWRUJZVOVPVQUKWBWIIHURZVPWSQ
      WNWBWLWTWMHIGJULUIZACEFIGWEPHJWEUMZLKUNRSZUOZWBWKDHNZBWEMZDEOINZWBVQWKXEX
      GUJZVOVPVQUPWBWIWTVQXHQWNXABDEFIGWEPHJXBLKUNRSZUOZHEGABJLUSTWBWIWOXEWDWNW
      BWJWOWRXCUQZWBWKXEXGXIUQZHEGCDJLUSTZWBWGXFWPVTEOZEOZIWBWGXFWPEOZVTEOZXOWB
      WFXPVTEWBWIWJWKWFXPUTWNXDXJHEGWEABJLXBVATVBWBWIXFHNZWPHNZWDXQXOUTWNWBWIWK
      XRWNXJHGWEBJXBVCRZWBWIWJXSWNXDHGWEAJXBVCRZXMHEGXFWPVTJLVDVIVEWBXNXFEOZINZ
      XOINZWBYBWQDXFEOZEOZIWBWQDEOZXFEOZYBYFWBYGXNXFEWBWIXSWOXEYGXNUTWNYAXKXLHE
      GWPCDJLVDVIVBWBWIWQHNZXEXRYHYFUTWNWBWIXSWOYIWNYAXKHEGWPCJLUSTXLXTHEGWQDXF
      JLVDVIVFWBWLWRYEINZYFINWMWBWJWOWRXCVGWBXGYJWBWKXEXGXIVGWBVOXRXEXGYJQVOVRV
      HZXTXLXFDEIGHJLVJTSEIGWQYELVKTVLWBVOXNHNZXRYCYDQYKWBWIXSWDYLWNYAXMHEGWPVT
      JLUSTXTXNXFEIGHJLVJTSVLWBWIWTWAWCWDWHUJQWNXAVSVTEFIGWEPHJXBLKUNRVMVN $.
  $}

  ${
    $d a b c d p q u v w G $.  $d a b c d u v w H $.  $d a b c d p q u v w S $.
    $d a b p q .+b $.  $d p q .+ $.  $d a b p q V $.  $d p q X $.  $d p q Y $.
    qusgrp.h $e |- H = ( G /s ( G ~QG S ) ) $.
    $( If ` Y ` is a normal subgroup of ` G ` , then ` H = G / Y ` is a group,
       called the quotient of ` G ` by ` Y ` .  (Contributed by Mario Carneiro,
       14-Jun-2015.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    qusgrp $p |- ( S e. ( NrmSGrp ` G ) -> H e. Grp ) $=
      ( vu vv vw vd vc cfv wcel cgrp co wceq cv eqid syl adantr erref sylan c0g
      va cnsg cqg cec cplusg cminusg cbs cqus a1i eqidd csubg wer nsgsubg eqger
      vb subgrcl eqgcpbl grpcl syl3an1 w3a simpr1 simpr2 syl3anc simpr3 breqtrd
      wa grpass grpidcl grplid simpr eqbrtrd grpinvcl grplinv qusgrp2 simpld )
      ABUCJKZCLKBUAJZBAUDMZUECUAJNVQEFGBUFJZVSBCEOZBUGJZJZBUHJZLVRHIUBUPCBVSUIM
      NVQDUJVQWDUKVQVTUKVQABULJKZWDVSUMZABUNZVSBWDAWDPZVSPZUOQZVQWEBLKZWGABUQQZ
      UBOUPOIOHOVTVSBWDAWHWIVTPZURVQWKWAWDKZFOZWDKZWAWOVTMZWDKZWLWDVTBWAWOWHWMU
      SZUTVQWNWPGOZWDKZVAZVGZWQWTVTMZXDWAWOWTVTMVTMZVSXCXDVSWDVQWFXBWJRXCWKWRXA
      XDWDKVQWKXBWLRZXCWKWNWPWRXFVQWNWPXAVBVQWNWPXAVCWSVDVQWNWPXAVEWDVTBWQWTWHW
      MUSVDSVQWKXBXDXENWLWDVTBWAWOWTWHWMVHTVFVQWKVRWDKZWLWDBVRWHVRPZVIQZVQWNVGZ
      VRWAVTMZWAWAVSVQWKWNXKWANWLWDVTBWAVRWHWMXHVJTXJWAVSWDVQWFWNWJRZVQWNVKSVLV
      QWKWNWCWDKWLWDBWBWAWHWBPZVMTXJWCWAVTMZVRVRVSVQWKWNXNVRNWLWDVTBWBWAVRWHWMX
      HXMVNTXJVRVSWDXLVQXGWNXIRSVLVOVP $.

    ${
      qusadd.v $e |- V = ( Base ` G ) $.
      ${
        quseccl.b $e |- B = ( Base ` H ) $.
        $( Closure of the quotient map for a quotient group.  (Contributed by
           Mario Carneiro, 18-Sep-2015.) $)
        quseccl $p |- ( ( S e. ( NrmSGrp ` G ) /\ X e. V ) ->
          [ X ] ( G ~QG S ) e. B ) $=
          ( cnsg cfv wcel wa cqg co cbs cvv cgrp wceq a1i cec ovex ecelqsi cqus
          cqs adantl csubg nsgsubg subgrcl syl adantr qusbas syl6eqr eleqtrd )
          BCJKLZFELZMZFCBNOZUAZEURUEZAUPUSUTLUOEFURCBNUBZUCUFUQUTDPKAUQURCDEQRD
          CURUDOSUQGTECPKSUQHTURQLUQVATUOCRLZUPUOBCUGKLVBBCUHBCUIUJUKULIUMUN $.
      $}

      qusadd.p $e |- .+ = ( +g ` G ) $.
      qusadd.a $e |- .+b = ( +g ` H ) $.
      $( Value of the group operation in a quotient group.  (Contributed by
         Mario Carneiro, 18-Sep-2015.) $)
      qusadd $p |- ( ( S e. ( NrmSGrp ` G ) /\ X e. V /\ Y e. V ) ->
  ( [ X ] ( G ~QG S ) .+b [ Y ] ( G ~QG S ) ) = [ ( X .+ Y ) ] ( G ~QG S ) ) $=
        ( vq vp va vb cfv wcel co cv cnsg cqg cgrp cqus wceq a1i cbs csubg eqid
        wer nsgsubg eqger syl subgrcl eqgcpbl wa grpcl 3expb sylan qusaddval )
        CDUAQRZDCUBSZDBAEFGHUCMNOPEDVBUDSUEVAIUFFDUGQUEVAJUFVACDUHQRZFVBUJCDUKZ
        VBDFCJVBUIZULUMVAVCDUCRZVDCDUNUMZOTPTNTZMTZAVBDFCJVEKUOVAVFVHFRZVIFRZUP
        VHVIASFRZVGVFVJVKVLFADVHVIJKUQURUSKLUT $.
    $}

    ${
      qus0.p $e |- .0. = ( 0g ` G ) $.
      $( Value of the group identity operation in a quotient group.
         (Contributed by Mario Carneiro, 18-Sep-2015.) $)
      qus0 $p |- ( S e. ( NrmSGrp ` G ) ->
        [ .0. ] ( G ~QG S ) = ( 0g ` H ) ) $=
        ( cnsg cfv wcel c0g cqg co cec cplusg wceq cbs cgrp syl eqid syl2anc wb
        csubg nsgsubg subgrcl grpidcl qusadd grplid eceq1d eqtrd qusgrp quseccl
        mpd3an23 mpdan grpid mpbid eqcomd ) ABGHIZCJHZDBAKLZMZUQUTUTCNHZLZUTOZU
        RUTOZUQVBDDBNHZLZUSMZUTUQDBPHZIZVIVBVGOUQBQIZVIUQABUBHIVJABUCABUDRZVHBD
        VHSZFUERZVMVEVAABCVHDDEVLVESZVASZUFULUQVFDUSUQVJVIVFDOVKVMVHVEBDDVLVNFU
        GTUHUIUQCQIUTCPHZIZVCVDUAABCEUJUQVIVQVMVPABCVHDEVLVPSZUKUMVPVACUTURVRVO
        URSUNTUOUP $.
    $}

    qusinv.v $e |- V = ( Base ` G ) $.
    ${
      qusinv.i $e |- I = ( invg ` G ) $.
      qusinv.n $e |- N = ( invg ` H ) $.
      $( Value of the group inverse operation in a quotient group.
         (Contributed by Mario Carneiro, 18-Sep-2015.) $)
      qusinv $p |- ( ( S e. ( NrmSGrp ` G ) /\ X e. V ) ->
        ( N ` [ X ] ( G ~QG S ) ) = [ ( I ` X ) ] ( G ~QG S ) ) $=
        ( cfv wcel co cec wceq cplusg c0g cgrp eqid cnsg wa cqg nsgsubg subgrcl
        csubg syl grpinvcl qusadd mpd3an3 grprinv eceq1d qus0 adantr 3eqtrd cbs
        sylan wb qusgrp quseccl syldan grpinvid1 syl3anc mpbird ) ABUALMZGFMZUB
        ZGBAUCNZOZELGDLZVHOZPZVIVKCQLZNZCRLZPZVGVNGVJBQLZNZVHOZBRLZVHOZVOVEVFVJ
        FMZVNVSPVEBSMZVFWBVEABUFLMWCABUDABUEUGZFBDGIJUHUQZVQVMABCFGVJHIVQTZVMTZ
        UIUJVGVRVTVHVEWCVFVRVTPWDFVQBDGVTIWFVTTZJUKUQULVEWAVOPVFABCVTHWHUMUNUOV
        GCSMZVICUPLZMVKWJMZVLVPURVEWIVFABCHUSUNWJABCFGHIWJTZUTVEVFWBWKWEWJABCFV
        JHIWLUTVAWJVMCEVIVKVOWLWGVOTKVBVCVD $.
    $}

    ${
      qussub.p $e |- .- = ( -g ` G ) $.
      qussub.a $e |- N = ( -g ` H ) $.
      $( Value of the group subtraction operation in a quotient group.
         (Contributed by Mario Carneiro, 18-Sep-2015.) $)
      qussub $p |- ( ( S e. ( NrmSGrp ` G ) /\ X e. V /\ Y e. V ) ->
    ( [ X ] ( G ~QG S ) N [ Y ] ( G ~QG S ) ) = [ ( X .- Y ) ] ( G ~QG S ) ) $=
        ( cfv wcel co cec cminusg wceq eqid 3adant2 cnsg w3a cqg cplusg quseccl
        cbs 3adant3 grpsubval syl2anc qusinv oveq2d cgrp csubg nsgsubg grpinvcl
        subgrcl syl sylan qusadd syld3an3 3adant1 eceq1d eqtr4d 3eqtrd ) ABUAMN
        ZGFNZHFNZUBZGBAUCOZPZHVIPZEOZVJVKCQMZMZCUDMZOZVJHBQMZMZVIPZVOOZGHDOZVIP
        ZVHVJCUFMZNZVKWCNZVLVPRVEVFWDVGWCABCFGIJWCSZUEUGVEVGWEVFWCABCFHIJWFUETW
        CVOCVMEVJVKWFVOSZVMSZLUHUIVHVNVSVJVOVEVGVNVSRVFABCVQVMFHIJVQSZWHUJTUKVH
        VTGVRBUDMZOZVIPZWBVEVFVGVRFNZVTWLRVEVGWMVFVEBULNZVGWMVEABUMMNWNABUNABUP
        UQFBVQHJWIUOURTWJVOABCFGVRIJWJSZWGUSUTVHWAWKVIVFVGWAWKRVEFWJBVQDGHJWOWI
        KUHVAVBVCVD $.
    $}
  $}

  ${
    $d x ph $.  $d x .~ $.  $d x X $.  $d x Y $.
    lagsubg.1 $e |- X = ( Base ` G ) $.
    ${
      lagsubg.2 $e |- .~ = ( G ~QG Y ) $.
      lagsubg.3 $e |- ( ph -> Y e. ( SubGrp ` G ) ) $.
      lagsubg.4 $e |- ( ph -> X e. Fin ) $.
      $( Lagrange's theorem for finite groups.  Call the "order" of a group the
         cardinal number of the basic set of the group, and "index of a
         subgroup" the cardinal number of the set of left (or right, this is
         the same) cosets of this subgroup.  Then the order of the group is the
         (cardinal) product of the order of any of its subgroups by the index
         of this subgroup.  (Contributed by Mario Carneiro, 11-Jul-2014.)
         (Revised by Mario Carneiro, 12-Aug-2015.) $)
      lagsubg2 $p |- ( ph -> ( # ` X ) =
        ( ( # ` ( X /. .~ ) ) x. ( # ` Y ) ) ) $=
        ( vx chash cfv csu wcel syl wceq cfn wss ssfi syl2anc cqs cv cmul csubg
        co wer eqger qshash wa cen wbr eqgen sylan wb subgss adantr qsss sselda
        cpw elpwid hashen mpbird sumeq2dv cc pwfi sylib hashcl nn0cnd fsumconst
        cn0 3eqtr2d ) ADKLDBUAZJUBZKLZJMVLEKLZJMZVLKLVOUCUEZAJDBAECUDLNZDBUFHBC
        DEFGUGOZIUHAVLVOVNJAVMVLNZUIZVOVNPZEVMUJUKZAVRVTWCHVMBCDEFGULUMWAEQNZVM
        QNZWBWCUNAWDVTADQNZEDRZWDIAVRWGHDECFUOODESTZUPWAWFVMDRWEAWFVTIUPWAVMDAV
        LDUSZVMADBVSUQZURUTDVMSTEVMVATVBVCAVLQNZVOVDNVPVQPAWIQNZVLWIRWKAWFWLIDV
        EVFWJWIVLSTAVOAWDVOVJNWHEVGOVHVLVOJVITVK $.
    $}

    $( Lagrange theorem for Groups: the order of any subgroup of a finite group
       is a divisor of the order of the group.  This is Metamath 100 proof #71.
       (Contributed by Mario Carneiro, 11-Jul-2014.)  (Revised by Mario
       Carneiro, 12-Aug-2015.) $)
    lagsubg $p |- ( ( Y e. ( SubGrp ` G ) /\ X e. Fin ) ->
                    ( # ` Y ) || ( # ` X ) ) $=
      ( csubg cfv wcel cfn wa chash co cdvds cz cn0 wss ssfi syl2anc hashcl syl
      nn0zd cqg cqs cmul wbr cpw simpr pwfi sylib wer eqid eqger adantr qsss id
      subgss syl2anr dvdsmul2 simpl lagsubg2 breqtrrd ) CAEFGZBHGZIZCJFZBACUAKZ
      UBZJFZVDUCKZBJFLVCVGMGVDMGVDVHLUDVCVGVCVFHGZVGNGVCBUEZHGZVFVJOVIVCVBVKVAV
      BUFZBUGUHVCBVEVABVEUIVBVEABCDVEUJZUKULUMVJVFPQVFRSTVCVDVCCHGZVDNGVBVBCBOV
      NVAVBUNBCADUOBCPUPCRSTVGVDUQQVCVEABCDVMVAVBURVLUSUT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Elementary theory of group homomorphisms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c GrpHom $.

  $( Extend class notation with the generator of group hom-sets. $)
  cghm $a class GrpHom $.

  ${
    $d g s t w x y $.
    $( A homomorphism of groups is a map between two structures which preserves
       the group operation.  Requiring both sides to be groups simplifies most
       theorems at the cost of complicating the theorem which pushes forward a
       group structure.  (Contributed by Stefan O'Rear, 31-Dec-2014.) $)
    df-ghm $a |- GrpHom = ( s e. Grp , t e. Grp |-> { g |
        [. ( Base ` s ) / w ]. ( g : w --> ( Base ` t ) /\
            A. x e. w A. y e. w ( g ` ( x ( +g ` s ) y ) ) =
                ( ( g ` x ) ( +g ` t ) ( g ` y ) ) ) } ) $.

    $( Lemma for group homomorphisms.  (Contributed by Stefan O'Rear,
       31-Dec-2014.) $)
    reldmghm $p |- Rel dom GrpHom $=
      ( vs vt vw vg vx vy cgrp cv cbs cfv wf cplusg co wceq wral wa wsbc df-ghm
      cab cghm reldmmpt2 ) ABGGCHZBHZIJDHZKEHZFHZAHZLJMUDJUEUDJUFUDJUCLJMNFUBOE
      UBOPCUGIJQDSTEFCBDARUA $.
  $}

  ${
    $d s t w u v f S $.  $d s t w u v f T $.  $d u v f t s X $.
    $d u v f s t .+ $.  $d u v f s t Y $.  $d u v f s t .+^ $.  $d F f u v $.
    isghm.w $e |- X = ( Base ` S ) $.
    isghm.x $e |- Y = ( Base ` T ) $.
    isghm.a $e |- .+ = ( +g ` S ) $.
    isghm.b $e |- .+^ = ( +g ` T ) $.
    $( Property of being a homomorphism of groups.  (Contributed by Stefan
       O'Rear, 31-Dec-2014.) $)
    isghm $p |- ( F e. ( S GrpHom T ) <->
        ( ( S e. Grp /\ T e. Grp ) /\ ( F : X --> Y /\ A. u e. X A. v e. X
              ( F ` ( u .+ v ) ) = ( ( F ` u ) .+^ ( F ` v ) ) ) ) ) $=
      ( vf wcel cfv wceq wral cbs cvv vs vt vw cghm co cgrp wa wf cv cplusg cab
      wsbc df-ghm elmpt2cl fvex feq2 raleq raleqbi1dv anbi12d sbcie fveq2 feq2d
      syl6eqr oveqd fveq2d eqeq1d raleqbidv syl5bb abbidv feq3d eqeq2d 2ralbidv
      eqeltri mapex mp2an simpl ss2abi ssexi ovmpt2 eleq2d fex mpan2 feq1 fveq1
      adantr oveq12d eqeq12d elab3 syl6bb biadan2 ) GEFUDUEZOZEUFOFUFOUGZHIGUHZ
      BUIZAUIZCUEZGPZWOGPZWPGPZDUEZQZAHRBHRZUGZUAUBUFUFUCUIZUBUIZSPZNUIZUHZWOWP
      UAUIZUJPZUEZXHPZWOXHPZWPXHPZXFUJPZUEZQZAXERZBXERZUGZUCXJSPZULZNUKZEFUDGBA
      UCUBNUAUMZUNWMWLGHIXHUHZWQXHPZXNXODUEZQZAHRBHRZUGZNUKZOXDWMWKYLGUAUBEFUFU
      FYDYLUDHXGXHUHZYGXQQZAHRZBHRZUGZNUKXJEQZYCYQNYCYBXGXHUHZXRAYBRZBYBRZUGZYR
      YQYAUUBUCYBXJSUOXEYBQXIYSXTUUAXEYBXGXHUPXSYTBXEYBXRAXEYBUQURUSUTYRYSYMUUA
      YPYRYBHXGXHYRYBESPZHXJESVAJVCZVBYRYTYOBYBHUUDYRXRYNAYBHUUDYRXMYGXQYRXLWQX
      HYRXKCWOWPYRXKEUJPCXJEUJVALVCVDVEVFVGVGUSVHVIXFFQZYQYKNUUEYMYFYPYJUUEXGIX
      HHUUEXGFSPZIXFFSVAKVCVJUUEYNYIBAHHUUEXQYHYGUUEXPDXNXOUUEXPFUJPDXFFUJVAMVC
      VDVKVLUSVIYEYLYFNUKZHTOZITOUUGTOHUUCTJESUOVMZIUUFTKFSUOVMHITTNVNVOYKYFNYF
      YJVPVQVRVSVTYKXDNGWNGTOZXCWNUUHUUJUUIHITGWAWBWEXHGQZYFWNYJXCHIXHGWCUUKYIX
      BBAHHUUKYGWRYHXAWQXHGWDUUKXNWSXOWTDWOXHGWDWPXHGWDWFWGVLUSWHWIWJ $.

    $( Property of a group homomorphism, similar to ~ ismhm .  (Contributed by
       Mario Carneiro, 7-Mar-2015.) $)
    isghm3 $p |- ( ( S e. Grp /\ T e. Grp ) -> ( F e. ( S GrpHom T ) <->
          ( F : X --> Y /\ A. u e. X A. v e. X
              ( F ` ( u .+ v ) ) = ( ( F ` u ) .+^ ( F ` v ) ) ) ) ) $=
      ( co wcel cgrp wa cv cfv wral cghm wf wceq isghm baib ) GEFUANOEPOFPOQHIG
      UBBRZARZCNGSUFGSUGGSDNUCAHTBHTQABCDEFGHIJKLMUDUE $.
  $}

  ${
    $d x y F $.  $d x y S $.  $d x y T $.  $d x y X $.  $d x y Y $.
    $( A group homomorphism is only defined when the domain is a group.
       (Contributed by Stefan O'Rear, 31-Dec-2014.) $)
    ghmgrp1 $p |- ( F e. ( S GrpHom T ) -> S e. Grp ) $=
      ( vy vx cghm co wcel cgrp wa cbs cfv wf cv cplusg wceq wral isghm simplbi
      eqid simpld ) CABFGHZAIHZBIHZUBUCUDJAKLZBKLZCMDNZENZAOLZGCLUGCLUHCLBOLZGP
      EUEQDUEQJEDUIUJABCUEUFUETUFTUITUJTRSUA $.

    $( A group homomorphism is only defined when the codomain is a group.
       (Contributed by Stefan O'Rear, 31-Dec-2014.) $)
    ghmgrp2 $p |- ( F e. ( S GrpHom T ) -> T e. Grp ) $=
      ( vy vx cghm co wcel cgrp wa cbs cfv wf cv cplusg wceq wral isghm simplbi
      eqid simprd ) CABFGHZAIHZBIHZUBUCUDJAKLZBKLZCMDNZENZAOLZGCLUGCLUHCLBOLZGP
      EUEQDUEQJEDUIUJABCUEUFUETUFTUITUJTRSUA $.

    ghmf.x $e |- X = ( Base ` S ) $.
    ghmf.y $e |- Y = ( Base ` T ) $.
    $( A group homomorphism is a function.  (Contributed by Stefan O'Rear,
       31-Dec-2014.) $)
    ghmf $p |- ( F e. ( S GrpHom T ) -> F : X --> Y ) $=
      ( vy vx cghm co wcel wf cv cplusg cfv wral cgrp wa eqid wceq isghm simpld
      simprbi ) CABJKLZDECMZHNZINZAOPZKCPUGCPUHCPBOPZKUAIDQHDQZUEARLBRLSUFUKSIH
      UIUJABCDEFGUITUJTUBUDUC $.
  $}

  ${
    $d U a b $.  $d V a b $.  $d F a b $.  $d S a b $.  $d T a b $.
    $d .+ a b $.  $d .+^ a b $.  $d X a b $.
    ghmlin.x $e |- X = ( Base ` S ) $.
    ghmlin.a $e |- .+ = ( +g ` S ) $.
    ghmlin.b $e |- .+^ = ( +g ` T ) $.
    $( A homomorphism of groups is linear.  (Contributed by Stefan O'Rear,
       31-Dec-2014.) $)
    ghmlin $p |- ( ( F e. ( S GrpHom T ) /\ U e. X /\ V e. X ) ->
      ( F ` ( U .+ V ) ) = ( ( F ` U ) .+^ ( F ` V ) ) ) $=
      ( va vb co wcel cfv wceq cv wral wa cghm cbs wf cgrp isghm simprbi simprd
      eqid oveq1 fveq2d fveq2 oveq1d eqeq12d oveq2 oveq2d rspc2v mpan9 3impb )
      FCDUANOZEHOZGHOZEGANZFPZEFPZGFPZBNZQZUSLRZMRZANZFPZVHFPZVIFPZBNZQZMHSLHSZ
      UTVATVGUSHDUBPZFUCZVPUSCUDODUDOTVRVPTMLABCDFHVQIVQUHJKUEUFUGVOVGEVIANZFPZ
      VDVMBNZQLMEGHHVHEQZVKVTVNWAWBVJVSFVHEVIAUIUJWBVLVDVMBVHEFUKULUMVIGQZVTVCW
      AVFWCVSVBFVIGEAUNUJWCVMVEVDBVIGFUKUOUMUPUQUR $.
  $}

  ${
    ghmid.y $e |- Y = ( 0g ` S ) $.
    ghmid.z $e |- .0. = ( 0g ` T ) $.
    $( A homomorphism of groups preserves the identity.  (Contributed by Stefan
       O'Rear, 31-Dec-2014.) $)
    ghmid $p |- ( F e. ( S GrpHom T ) -> ( F ` Y ) = .0. ) $=
      ( cghm co wcel cfv cplusg wceq cbs cgrp ghmgrp1 eqid grpidcl syl syl2anc
      ghmlin mpd3an23 grplid fveq2d eqtr3d wb ghmgrp2 ghmf ffvelrnd grpid mpbid
      eqcomd ) CABHIJZEDCKZUMUNUNBLKZIZUNMZEUNMZUMDDALKZIZCKZUPUNUMDANKZJZVCVAU
      PMUMAOJZVCABCPZVBADVBQZFRSZVGUSUOABDCDVBVFUSQZUOQZUAUBUMUTDCUMVDVCUTDMVEV
      GVBUSADDVFVHFUCTUDUEUMBOJUNBNKZJUQURUFABCUGUMVBVJDCABCVBVJVFVJQZUHVGUIVJU
      OBUNEVKVIGUJTUKUL $.
  $}

  ${
    ghminv.b $e |- B = ( Base ` S ) $.
    ghminv.y $e |- M = ( invg ` S ) $.
    ghminv.z $e |- N = ( invg ` T ) $.
    $( A homomorphism of groups preserves inverses.  (Contributed by Stefan
       O'Rear, 31-Dec-2014.) $)
    ghminv $p |- ( ( F e. ( S GrpHom T ) /\ X e. B ) ->
        ( F ` ( M ` X ) ) = ( N ` ( F ` X ) ) ) $=
      ( co wcel cfv wceq cplusg c0g cgrp eqid sylan adantr cghm ghmgrp1 grprinv
      wa fveq2d grpinvcl ghmlin mpd3an3 ghmid 3eqtr3d wb ghmgrp2 ghmf ffvelrnda
      cbs wf ffvelrnd grpinvid1 syl3anc mpbird eqcomd ) DBCUAKLZGALZUDZGDMZFMZG
      EMZDMZVDVFVHNZVEVHCOMZKZCPMZNZVDGVGBOMZKZDMZBPMZDMZVKVLVDVOVQDVBBQLZVCVOV
      QNBCDUBZAVNBEGVQHVNRZVQRZIUCSUEVBVCVGALZVPVKNVBVSVCWCVTABEGHIUFSZVNVJBCGD
      VGAHWAVJRZUGUHVBVRVLNVCBCDVQVLWBVLRZUITUJVDCQLZVECUOMZLVHWHLVIVMUKVBWGVCB
      CDULTVBAWHGDBCDAWHHWHRZUMZUNVDAWHVGDVBAWHDUPVCWJTWDUQWHVJCFVEVHVLWIWEWFJU
      RUSUTVA $.
  $}

  ${
    ghmsub.b $e |- B = ( Base ` S ) $.
    ghmsub.m $e |- .- = ( -g ` S ) $.
    ghmsub.n $e |- N = ( -g ` T ) $.
    $( Linearity of subtraction through a group homomorphism.  (Contributed by
       Stefan O'Rear, 31-Dec-2014.) $)
    ghmsub $p |- ( ( F e. ( S GrpHom T ) /\ U e. B /\ V e. B ) ->
      ( F ` ( U .- V ) ) = ( ( F ` U ) N ( F ` V ) ) ) $=
      ( co wcel cminusg cfv cplusg wceq eqid wa grpsubval cghm w3a cgrp ghmgrp1
      3ad2ant1 simp3 grpinvcl syl2anc ghmlin ghminv 3adant2 oveq2d eqtrd fveq2d
      syld3an3 3adant1 cbs wf ghmf ffvelrn anim12dan sylan 3impb syl 3eqtr4d )
      EBCUALMZDAMZHAMZUBZDHBNOZOZBPOZLZEOZDEOZHEOZCNOZOZCPOZLZDHFLZEOZVOVPGLZVI
      VNVOVKEOZVSLZVTVFVGVHVKAMZVNWEQVIBUCMZVHWFVFVGWGVHBCEUDUEVFVGVHUFABVJHIVJ
      RZUGUHVLVSBCDEVKAIVLRZVSRZUIUOVIWDVRVOVSVFVHWDVRQVGABCEVJVQHIWHVQRZUJUKUL
      UMVGVHWBVNQVFVGVHSZWAVMEAVLBVJFDHIWIWHJTUNUPVIVOCUQOZMZVPWMMZSZWCVTQVFVGV
      HWPVFAWMEURZWLWPBCEAWMIWMRZUSWQVGWNVHWOAWMDEUTAWMHEUTVAVBVCWMVSCVQGVOVPWR
      WJWKKTVDVE $.
  $}

  ${
    $d ph x y $.  $d F x y $.  $d S x y $.  $d T x y $.  $d .+ x y $.
    $d .+^ x y $.  $d X x y $.  $d Y x y $.
    isghmd.x $e |- X = ( Base ` S ) $.
    isghmd.y $e |- Y = ( Base ` T ) $.
    isghmd.a $e |- .+ = ( +g ` S ) $.
    isghmd.b $e |- .+^ = ( +g ` T ) $.
    isghmd.s $e |- ( ph -> S e. Grp ) $.
    isghmd.t $e |- ( ph -> T e. Grp ) $.
    isghmd.f $e |- ( ph -> F : X --> Y ) $.
    isghmd.l $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) -> ( F ` ( x .+ y ) ) =
          ( ( F ` x ) .+^ ( F ` y ) ) ) $.
    $( Deduction for a group homomorphism.  (Contributed by Stefan O'Rear,
       4-Feb-2015.) $)
    isghmd $p |- ( ph -> F e. ( S GrpHom T ) ) $=
      ( wcel co cgrp wa wf cv cfv wceq wral cghm jca ralrimivva isghm sylanbrc
      ) AFUASZGUASZUBIJHUCZBUDZCUDZDTHUEUPHUEUQHUEETUFZCIUGBIUGZUBHFGUHTSAUMUNO
      PUIAUOUSQAURBCIIRUJUICBDEFGHIJKLMNUKUL $.
  $}

  ${
    $d F x y $.  $d S f x y $.  $d T f x y $.
    $( A group homomorphism is a monoid homomorphism.  (Contributed by Stefan
       O'Rear, 7-Mar-2015.) $)
    ghmmhm $p |- ( F e. ( S GrpHom T ) -> F e. ( S MndHom T ) ) $=
      ( vx vy cghm co wcel cmnd cbs cfv cv cplusg wceq wral c0g cgrp grpmnd syl
      eqid wa wf w3a cmhm ghmgrp1 ghmgrp2 jca ghmf ghmlin 3expb ralrimivva 3jca
      ghmid ismhm sylanbrc ) CABFGHZAIHZBIHZUAAJKZBJKZCUBZDLZELZAMKZGCKVBCKVCCK
      BMKZGNZEUSODUSOZAPKZCKBPKZNZUCCABUDGHUPUQURUPAQHUQABCUEARSUPBQHURABCUFBRS
      UGUPVAVGVJABCUSUTUSTZUTTZUHUPVFDEUSUSUPVBUSHVCUSHVFVDVEABVBCVCUSVKVDTZVET
      ZUIUJUKABCVHVIVHTZVITZUMULDEUSUTVDVEABCVIVHVKVLVMVNVOVPUNUO $.

    $( Group homomorphisms and monoid homomorphisms coincide.  (Thus,
       ` GrpHom ` is somewhat redundant, although its stronger reverse closure
       properties are sometimes useful.)  (Contributed by Stefan O'Rear,
       7-Mar-2015.) $)
    ghmmhmb $p |- ( ( S e. Grp /\ T e. Grp ) ->
        ( S GrpHom T ) = ( S MndHom T ) ) $=
      ( vf vx vy cgrp wcel wa cghm co cmhm cv ghmmhm cplusg cfv cbs eqid simpll
      simplr wf mhmf adantl wceq mhmlin 3expb adantll isghmd ex impbid2 eqrdv )
      AFGZBFGZHZCABIJZABKJZUMCLZUNGZUPUOGZABUPMUMURUQUMURHDEANOZBNOZABUPAPOZBPO
      ZVAQZVBQZUSQZUTQZUKULURRUKULURSURVAVBUPTUMVAVBABUPVCVDUAUBURDLZVAGZELZVAG
      ZHVGVIUSJUPOVGUPOVIUPOUTJUCZUMURVHVJVKVAUSUTABUPVGVIVCVEVFUDUEUFUGUHUIUJ
      $.
  $}

  ${
    ghmmulg.b $e |- B = ( Base ` G ) $.
    ghmmulg.s $e |- .x. = ( .g ` G ) $.
    ghmmulg.t $e |- .X. = ( .g ` H ) $.
    $( A homomorphism of monoids preserves group multiples.  (Contributed by
       Mario Carneiro, 14-Jun-2015.) $)
    ghmmulg $p |- ( ( F e. ( G GrpHom H ) /\ N e. ZZ /\ X e. B ) ->
        ( F ` ( N .x. X ) ) = ( N .X. ( F ` X ) ) ) $=
      ( co wcel cz cfv wceq syl syl3anc eqid eqtr3d cghm w3a cr cneg cn wa cmhm
      ghmmhm mhmmulg syl3an1 3expa an32s 3adantl2 cminusg simpl1 nnnn0 ad2antll
      cn0 simpl3 fveq2d cgrp ghmgrp1 nnz mulgcl ghminv syl2anc cbs ghmgrp2 ghmf
      wf ffvelrnd mulgneg 3eqtr4d simprl recnd negnegd oveq1d wo simp2 elznn0nn
      sylib mpjaodan ) DEFUALMZGNMZHAMZUBZGURMZGHBLZDOZGHDOZCLZPZGUCMZGUDZUEMZU
      FZWCWEWGWLWDWCWGWEWLWCWGWEWLWCDEFUGLMZWGWEWLEFDUHZABCDEFGHIJKUIUJUKULUMWF
      WPUFZWNUDZWJCLZWIWKWSWNHBLZEUNOZOZDOZXAWIWSXBDOZFUNOZOZWNWJCLZXGOZXEXAWSX
      FXIXGWSWQWNURMZWEXFXIPWSWCWQWCWDWEWPUOZWRQWOXKWFWMWNUPUQWCWDWEWPUSZABCDEF
      WNHIJKUIRUTWSWCXBAMZXEXHPXLWSEVAMZWNNMZWEXNWSWCXOXLEFDVBQZWOXPWFWMWNVCUQZ
      XMABEWNHIJVDRAEFDXCXGXBIXCSZXGSZVEVFWSFVAMZXPWJFVGOZMXAXJPWSWCYAXLEFDVHQX
      RWSAYBHDWSWCAYBDVJXLEFDAYBIYBSZVIQXMVKYBCFXGWNWJYCKXTVLRVMWSXDWHDWSWTHBLZ
      XDWHWSXOXPWEYDXDPXQXRXMABEXCWNHIJXSVLRWSWTGHBWSGWSGWFWMWOVNVOVPZVQTUTTWSW
      TGWJCYEVQTWFWDWGWPVRWCWDWEVSGVTWAWB $.
  $}

  ${
    $d F a b c $.  $d S a b c $.  $d T a b c $.
    $( The range of a homomorphism is a subgroup.  (Contributed by Stefan
       O'Rear, 31-Dec-2014.) $)
    ghmrn $p |- ( F e. ( S GrpHom T ) -> ran F e. ( SubGrp ` T ) ) $=
      ( va vb vc co wcel cfv cbs c0 wne cv wral wa eqid syl wceq wb eleq1d cghm
      crn csubg wss cplusg cminusg ghmf frn cdm fdm cgrp ghmgrp1 grpbn0 eqnetrd
      dm0rn0 necon3bii sylib w3a ghmlin wfn ffn 3ad2ant1 grpcl syl3an1 fnfvelrn
      syl2anc eqeltrrd 3expia ralrimiv oveq2 ralrn adantr mpbird grpinvcl sylan
      wf ghminv ralrimiva oveq1 ralbidv fveq2 anbi12d ghmgrp2 issubg2 mpbir3and
      jca ) CABUAGHZCUBZBUCIHZWHBJIZUDZWHKLZDMZEMZBUEIZGZWHHZEWHNZWMBUFIZIZWHHZ
      OZDWHNZWGAJIZWJCVPZWKABCXDWJXDPZWJPZUGZXDWJCUHQWGCUIZKLWLWGXIXDKWGXEXIXDR
      XHXDWJCUJQWGAUKHZXDKLABCULZXDAXFUMQUNXIKWHKCUOUPUQWGXCFMZCIZWNWOGZWHHZEWH
      NZXMWSIZWHHZOZFXDNZWGXSFXDWGXLXDHZOZXPXRYBXPXMWMCIZWOGZWHHZDXDNZYBYEDXDWG
      YAWMXDHZYEWGYAYGURZXLWMAUEIZGZCIZYDWHYIWOABXLCWMXDXFYIPZWOPZUSYHCXDUTZYJX
      DHZYKWHHWGYAYNYGWGXEYNXHXDWJCVAQZVBWGXJYAYGYOXKXDYIAXLWMXFYLVCVDXDYJCVEVF
      VGVHVIWGXPYFSZYAWGYNYQYPXOYEEDXDCWNYCRXNYDWHWNYCXMWOVJTVKQVLVMYBXLAUFIZIZ
      CIZXQWHXDABCYRWSXLXFYRPZWSPZVQYBYNYSXDHZYTWHHWGYNYAYPVLWGXJYAUUCXKXDAYRXL
      XFUUAVNVOXDYSCVEVFVGWFVRWGYNXCXTSYPXBXSDFXDCWMXMRZWRXPXAXRUUDWQXOEWHUUDWP
      XNWHWMXMWNWOVSTVTUUDWTXQWHWMXMWSWATWBVKQVMWGBUKHWIWKWLXCURSABCWCDEWJWOWHB
      WSXGYMUUBWDQWE $.
  $}

  ${
    0ghm.z $e |- .0. = ( 0g ` N ) $.
    0ghm.b $e |- B = ( Base ` M ) $.
    $( The constant zero linear function between two groups.  (Contributed by
       Stefan O'Rear, 5-Sep-2015.) $)
    0ghm $p |- ( ( M e. Grp /\ N e. Grp ) ->
        ( B X. { .0. } ) e. ( M GrpHom N ) ) $=
      ( cgrp wcel wa csn cxp cmhm cghm cmnd grpmnd 0mhm syl2an ghmmhmb eleqtrrd
      co ) BGHZCGHZIADJKZBCLTZBCMTUABNHCNHUCUDHUBBOCOABCDEFPQBCRS $.
  $}

  ${
    $d B a b $.  $d G a b $.
    idghm.b $e |- B = ( Base ` G ) $.
    $( The identity homomorphism on a group.  (Contributed by Stefan O'Rear,
       31-Dec-2014.) $)
    idghm $p |- ( G e. Grp -> ( _I |` B ) e. ( G GrpHom G ) ) $=
      ( va vb cgrp wcel wa cid cres wf cv cplusg cfv co wceq wral cghm fvresi
      id ancli eqid grpcl syl oveqan12d adantl eqtr4d ralrimivva wf1o f1oi f1of
      3expb ax-mp jctil isghm sylanbrc ) BFGZUQUQHAAIAJZKZDLZELZBMNZOZURNZUTURN
      ZVAURNZVBOZPZEAQDAQZHURBBROGUQUQUQTUAUQVIUSUQVHDEAAUQUTAGZVAAGZHZHZVDVCVG
      VMVCAGZVDVCPUQVJVKVNAVBBUTVACVBUBZUCULAVCSUDVLVGVCPUQVJVKVEUTVFVAVBAUTSAV
      ASUEUFUGUHAAURUIUSAUJAAURUKUMUNEDVBVBBBURAACCVOVOUOUP $.
  $}

  ${
    $d S a b $.  $d X a b $.  $d F a b $.  $d T a b $.  $d U a b $.
    resghm.u $e |- U = ( S |`s X ) $.
    $( Restriction of a homomorphism to a subgroup.  (Contributed by Stefan
       O'Rear, 31-Dec-2014.) $)
    resghm $p |- ( ( F e. ( S GrpHom T ) /\ X e. ( SubGrp ` S ) ) ->
        ( F |` X ) e. ( U GrpHom T ) ) $=
      ( va vb co wcel cfv wa cplusg cbs eqid adantl wf wceq syl fvres cghm cres
      csubg cgrp subggrp ghmgrp2 adantr wss subgss fssres syl2an ressbas2 feq2d
      ghmf mpbid cv eleq2 anbi12d biimpar simpll sselda adantrr adantrl syl3anc
      wb ghmlin ressplusg ad2antlr oveqd fveq2d subgcl adantll eqtr3d oveqan12d
      3expb 3eqtr4d syldan isghmd ) DABUAIJZEAUCKZJZLZGHCMKZBMKZCBDEUBZCNKZBNKZ
      WFOWGOZWCOWDOZWACUDJVSEACFUEPVSBUDJWAABDUFUGWBEWGWEQZWFWGWEQVSANKZWGDQEWK
      UHZWJWAABDWKWGWKOZWHUNWKEAWMUIZWKWGEDUJUKWBEWFWGWEWBWLEWFRZWAWLVSWNPZEWKC
      AFWMULSZUMUOWBGUPZWFJZHUPZWFJZLZWREJZWTEJZLZWRWTWCIZWEKZWRWEKZWTWEKZWDIZR
      WBXEXBWBWOXEXBVEWQWOXCWSXDXAEWFWRUQEWFWTUQURSUSWBXELZWRWTAMKZIZDKZWRDKZWT
      DKZWDIZXGXJXKVSWRWKJZWTWKJZXNXQRVSWAXEUTWBXCXRXDWBEWKWRWPVAVBWBXDXSXCWBEW
      KWTWPVAVCXLWDABWRDWTWKWMXLOZWIVFVDXKXMWEKZXGXNXKXMXFWEXKXLWCWRWTWAXLWCRVS
      XEEXLACVTFXTVGVHVIVJXKXMEJZYAXNRWAXEYBVSWAXCXDYBXLEAWRWTXTVKVOVLXMEDTSVMX
      EXJXQRWBXCXDXHXOXIXPWDWREDTWTEDTVNPVPVQVR $.
  $}

  ${
    resghm2.u $e |- U = ( T |`s X ) $.
    $( One direction of ~ resghm2b .  (Contributed by Mario Carneiro,
       13-Jan-2015.)  (Revised by Mario Carneiro, 18-Jun-2015.) $)
    resghm2 $p |- ( ( F e. ( S GrpHom U ) /\ X e. ( SubGrp ` T ) ) ->
      F e. ( S GrpHom T ) ) $=
      ( cghm co wcel csubg cfv cmhm csubmnd ghmmhm subgsubm resmhm2 syl2an cgrp
      wa wceq ghmgrp1 subgrcl ghmmhmb eleqtrrd ) DACGHIZEBJKIZSDABLHZABGHZUEDAC
      LHIEBMKIDUGIUFACDNEBOABCDEFPQUEARIBRIUHUGTUFACDUAEBUBABUCQUD $.

    $( Restriction of the codomain of a homomorphism.  (Contributed by Mario
       Carneiro, 13-Jan-2015.)  (Revised by Mario Carneiro, 18-Jun-2015.) $)
    resghm2b $p |- ( ( X e. ( SubGrp ` T ) /\ ran F C_ X ) ->
      ( F e. ( S GrpHom T ) <-> F e. ( S GrpHom U ) ) ) $=
      ( cfv wcel wa cgrp cghm co wi ghmgrp1 a1i wb cmhm wceq adantr ghmmhmb crn
      csubg wss csubmnd subgsubm resmhm2b adantl subgrcl sylan2 subggrp 3bitr4d
      sylan eleq2d expcom pm5.21ndd ) EBUBGHZDUAEUCZIZAJHZDABKLZHZDACKLZHZVAUSM
      URABDNOVCUSMURACDNOUSURVAVCPUSURIZDABQLZHZDACQLZHZVAVCURVFVHPZUSUPEBUDGHU
      QVIEBUEABCDEFUFULUGVDUTVEDURUSBJHZUTVERUPVJUQEBUHSABTUIUMVDVBVGDURUSCJHZV
      BVGRUPVKUQEBCFUJSACTUIUMUKUNUO $.
  $}

  ${
    ghmghmrn.u $e |- U = ( T |`s ran F ) $.
    $( A group homomorphism from ` G ` to ` H ` is also a group homomorphism
       from ` G ` to its image in ` H ` .  (Contributed by Paul Chapman,
       3-Mar-2008.)  (Revised by AV, 26-Aug-2021.) $)
    ghmghmrn $p |- ( F e. ( S GrpHom T ) -> F e. ( S GrpHom U ) ) $=
      ( crn csubg cfv wcel cghm co ghmrn wss ssid resghm2b mpan2 biimpd mpcom
      wb ) DFZBGHIZDABJKIZDACJKIZABDLUAUBUCUATTMUBUCSTNABCDTEOPQR $.
  $}

  $( The composition of group homomorphisms is a homomorphism.  (Contributed by
     Mario Carneiro, 12-Jun-2015.) $)
  ghmco $p |- ( ( F e. ( T GrpHom U ) /\ G e. ( S GrpHom T ) ) ->
      ( F o. G ) e. ( S GrpHom U ) ) $=
    ( cghm co wcel wa ccom cmhm ghmmhm syl2an cgrp wceq ghmgrp1 ghmgrp2 ghmmhmb
    mhmco syl2anr eleqtrrd ) DBCFGHZEABFGHZIDEJZACKGZACFGZUBDBCKGHEABKGHUDUEHUC
    BCDLABELABCDESMUCANHCNHUFUEOUBABEPBCDQACRTUA $.

  $( The image of a subgroup under a homomorphism.  (Contributed by Stefan
     O'Rear, 31-Dec-2014.) $)
  ghmima $p |- ( ( F e. ( S GrpHom T ) /\ U e. ( SubGrp ` S ) ) ->
      ( F " U ) e. ( SubGrp ` T ) ) $=
    ( cghm co wcel csubg cfv wa cima cres crn df-ima cress eqid resghm syl5eqel
    ghmrn syl ) DABEFGCAHIGJZDCKDCLZMZBHIZDCNUAUBACOFZBEFGUCUDGABUEDCUEPQUEBUBS
    TR $.

  ${
    $d F a b $.  $d V a b $.  $d T a b $.  $d S a b $.
    $( The inverse image of a subgroup under a homomorphism.  (Contributed by
       Stefan O'Rear, 31-Dec-2014.) $)
    ghmpreima $p |- ( ( F e. ( S GrpHom T ) /\ V e. ( SubGrp ` T ) ) ->
        ( `' F " V ) e. ( SubGrp ` S ) ) $=
      ( va vb co wcel csubg cfv wceq eqid adantr syl eqeltrd elpreima mpbir2and
      wa wb syl3anc cghm ccnv cima cbs wss wne cplusg wral cminusg cdm cnvimass
      c0 cv ghmf fdm syl5sseq c0g cgrp ghmgrp1 grpidcl ghmid subg0cl adantl wfn
      wf ffn ne0i ad2antrr simprll simprrl simpll ghmlin simplr simprlr simprrr
      grpcl subgcl expr sylbid ralrimiv simprl grpinvcl syl2anc ghminv ad2ant2r
      subginvcl ad2ant2l jca ex w3a issubg2 mpbir3and ) CABUAGHZDBIJHZRZCUBDUCZ
      AIJHZWPAUDJZUEZWPULUFZEUMZFUMZAUGJZGZWPHZFWPUHZXAAUIJZJZWPHZRZEWPUHZWOCUJ
      ZWPWRCDUKWOWRBUDJZCVEZXLWRKWMXNWNABCWRXMWRLZXMLUNMZWRXMCUONUPWOAUQJZWPHZW
      TWOXRXQWRHZXQCJZDHZWOAURHZXSWMYBWNABCUSZMZWRAXQXOXQLZUTNWOXTBUQJZDWMXTYFK
      WNABCXQYFYEYFLZVAMWNYFDHWMDBYFYGVBVCOWOCWRVDZXRXSYARSWOXNYHXPWRXMCVFNZWRX
      QDCPNQWPXQVGNWOXJEWPWOXAWPHZXAWRHZXACJZDHZRZXJWOYHYJYNSYIWRXADCPNWOYNXJWO
      YNRZXFXIYOXEFWPYOXBWPHZXBWRHZXBCJZDHZRZXEWOYPYTSZYNWOYHUUAYIWRXBDCPNMWOYN
      YTXEWOYNYTRZRZXEXDWRHZXDCJZDHZUUCYBYKYQUUDWMYBWNUUBYCVHWOYKYMYTVIZWOYNYQY
      SVJZWRXCAXAXBXOXCLZVPTUUCUUEYLYRBUGJZGZDUUCWMYKYQUUEUUKKWMWNUUBVKUUGUUHXC
      UUJABXACXBWRXOUUIUUJLZVLTUUCWNYMYSUUKDHWMWNUUBVMWOYKYMYTVNWOYNYQYSVOUUJDB
      YLYRUULVQTOWOXEUUDUUFRSZUUBWOYHUUMYIWRXDDCPNMQVRVSVTYOXIXHWRHZXHCJZDHZYOY
      BYKUUNWOYBYNYDMWOYKYMWAWRAXGXAXOXGLZWBWCYOUUOYLBUIJZJZDWMYKUUOUUSKWNYMWRA
      BCXGUURXAXOUUQUURLZWDWEWNYMUUSDHWMYKDBUURYLUUTWFWGOWOXIUUNUUPRSZYNWOYHUVA
      YIWRXHDCPNMQWHWIVSVTWOYBWQWSWTXKWJSYDEFWRXCWPAXGXOUUIUUQWKNWL $.
  $}

  ${
    $d F x y $.  $d G x y $.  $d S x y $.  $d T x $.
    $( The equalizer of two group homomorphisms is a subgroup.  (Contributed by
       Stefan O'Rear, 7-Mar-2015.)  (Revised by Mario Carneiro, 6-May-2015.) $)
    ghmeql $p |- ( ( F e. ( S GrpHom T ) /\ G e. ( S GrpHom T ) ) ->
        dom ( F i^i G ) e. ( SubGrp ` S ) ) $=
      ( vx vy co wcel wa cfv cminusg wral ghmmhm wceq cbs adantr eqid fveq2 syl
      cv cghm cin cdm csubg csubmnd cmhm mhmeql syl2an crab cgrp ghmgrp1 simprl
      wi grpinvcl syl2anc simprr fveq2d ghminv ad2ant2r ad2ant2lr 3eqtr4d elrab
      eqeq12d sylanbrc expr ralrimiva ralrab sylibr wb wfn wf ffn adantl fndmin
      ghmf eleq2 raleqbi1dv mpbird issubg3 mpbir2and ) CABUAGZHZDWAHZIZCDUBUCZA
      UDJHZWEAUEJHZETZAKJZJZWEHZEWELZWBCABUFGZHDWMHWGWCABCMABDMABCDUGUHWDWLWJFT
      ZCJZWNDJZNZFAOJZUIZHZEWSLZWDWHCJZWHDJZNZWTUMZEWRLXAWDXEEWRWDWHWRHZXDWTWDX
      FXDIZIZWJWRHZWJCJZWJDJZNZWTXHAUJHZXFXIWDXMXGWBXMWCABCUKPZPWDXFXDULWRAWIWH
      WRQZWIQZUNUOXHXBBKJZJZXCXQJZXJXKXHXBXCXQWDXFXDUPUQWBXFXJXRNWCXDWRABCWIXQW
      HXOXPXQQZURUSWCXFXKXSNWBXDWRABDWIXQWHXOXPXTURUTVAWQXLFWJWRWNWJNWOXJWPXKWN
      WJCRWNWJDRVCVBVDVEVFWQXDWTEFWRWNWHNWOXBWPXCWNWHCRWNWHDRVCVGVHWDWEWSNZWLXA
      VIWDCWRVJZDWRVJZYAWDWRBOJZCVKZYBWBYEWCABCWRYDXOYDQZVOPWRYDCVLSWDWRYDDVKZY
      CWCYGWBABDWRYDXOYFVOVMWRYDDVLSFWRCDVNUOWKWTEWEWSWEWSWJVPVQSVRWDXMWFWGWLIV
      IXNEWEAWIXPVSSVT $.
  $}

  ${
    $d x y z F $.  $d x y z S $.  $d x y z T $.  $d x y z U $.  $d x y z Y $.
    ghmnsgima.1 $e |- Y = ( Base ` T ) $.
    $( The image of a normal subgroup under a surjective homomorphism is
       normal.  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    ghmnsgima $p |- ( ( F e. ( S GrpHom T ) /\ U e. ( NrmSGrp ` S ) /\
      ran F = Y ) -> ( F " U ) e. ( NrmSGrp ` T ) ) $=
      ( vx vy vz co wcel cnsg cfv wceq cv wral adantr syl eqid syl3anc cghm crn
      w3a csubg cplusg csg simp1 nsgsubg 3ad2ant2 ghmima syl2anc cbs wa ghmgrp1
      cima simprl wss subgss simprr sseldd grpcl ghmsub ghmlin oveq1d eqtrd wfn
      cgrp wf ghmf ffn simpl2 nsgconj fnfvima eqeltrrd ralrimivva oveq1 oveq12d
      wb eleq1d ralbidv ralrn simp3 raleqdv oveq2 ralima mpbird isnsg3 sylanbrc
      id 3bitr3d ) DABUAJKZCALMKZDUBZENZUCZDCUOZBUDMKZGOZHOZBUEMZJZWRBUFMZJZWPK
      ZHWPPZGEPZWPBLMKWOWKCAUDMKZWQWKWLWNUGZWLWKXGWNCAUHUIZABCDUJUKWOXFIOZDMZWR
      DMZWTJZXKXBJZWPKZGCPZIAULMZPZWOXOIGXQCWOXJXQKZWRCKZUMZUMZXJWRAUEMZJZXJAUF
      MZJZDMZXNWPYBYGYDDMZXKXBJZXNYBWKYDXQKZXSYGYINWOWKYAXHQZYBAVGKZXSWRXQKZYJY
      BWKYLYKABDUNRWOXSXTUPZYBCXQWRWOCXQUQZYAWOXGYOXIXQCAXQSZURRZQZWOXSXTUSZUTZ
      XQYCAXJWRYPYCSZVATYNXQABYDDYEXBXJYPYESZXBSZVBTYBYHXMXKXBYBWKXSYMYHXMNYKYN
      YTYCWTABXJDWRXQYPUUAWTSZVCTVDVEYBDXQVFZYOYFCKZYGWPKYBXQEDVHZUUEWOUUGYAWOW
      KUUGXHABDXQEYPFVIRZQXQEDVJZRYRYBWLXSXTUUFWKWLWNYAVKYNYSXJWRYCCAYEXQYPUUAU
      UBVLTXQCDYFVMTVNVOWOXEGWMPZXKWSWTJZXKXBJZWPKZHWPPZIXQPZXFXRWOUUEUUJUUOVRW
      OUUGUUEUUHUUIRZXEUUNGIXQDWRXKNZXDUUMHWPUUQXCUULWPUUQXAUUKWRXKXBWRXKWSWTVP
      UUQWIVQVSVTWARWOXEGWMEWKWLWNWBWCWOUUNXPIXQWOUUEYOUUNXPVRUUPYQUUMXOHGXQCDW
      SXLNZUULXNWPUURUUKXMXKXBWSXLXKWTWDVDVSWEUKVTWJWFGHWTWPBXBEFUUDUUCWGWH $.
  $}

  ${
    $d x y F $.  $d x y S $.  $d x y T $.  $d x y V $.
    $( The inverse image of a normal subgroup under a homomorphism is normal.
       (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    ghmnsgpreima $p |- ( ( F e. ( S GrpHom T ) /\ V e. ( NrmSGrp ` T ) ) ->
        ( `' F " V ) e. ( NrmSGrp ` S ) ) $=
      ( vx vy co wcel cnsg cfv wa csubg cv cplusg csg wral cbs eqid syl syl3anc
      cghm ccnv cima nsgsubg ghmpreima sylan2 ghmgrp1 ad2antrr simprl simprr wb
      cgrp wfn simpll ghmf ffn elpreima mpbid simpld grpcl grpsubcl wceq ghmsub
      wf ghmlin oveq1d eqtrd simplr simprd nsgconj eqeltrd mpbir2and ralrimivva
      ffvelrnd isnsg3 sylanbrc ) CABUAGHZDBIJHZKZCUBDUCZALJHZEMZFMZANJZGZWBAOJZ
      GZVTHZFVTPEAQJZPVTAIJHVRVQDBLJHWADBUDABCDUEUFVSWHEFWIVTVSWBWIHZWCVTHZKZKZ
      WHWGWIHZWGCJZDHZWMAULHZWEWIHZWJWNVQWQVRWLABCUGUHZWMWQWJWCWIHZWRWSVSWJWKUI
      ZWMWTWCCJZDHZWMWKWTXCKZVSWJWKUJWMCWIUMZWKXDUKWMWIBQJZCVDZXEWMVQXGVQVRWLUN
      ZABCWIXFWIRZXFRZUOSZWIXFCUPSZWIWCDCUQSURZUSZWIWDAWBWCXIWDRZUTTZXAWIAWFWEW
      BXIWFRZVATWMWOWBCJZXBBNJZGZXRBOJZGZDWMWOWECJZXRYAGZYBWMVQWRWJWOYDVBXHXPXA
      WIABWECWFYAWBXIXQYARZVCTWMYCXTXRYAWMVQWJWTYCXTVBXHXAXNWDXSABWBCWCWIXIXOXS
      RZVETVFVGWMVRXRXFHXCYBDHVQVRWLVHWMWIXFWBCXKXAVNWMWTXCXMVIXRXBXSDBYAXFXJYF
      YEVJTVKWMXEWHWNWPKUKXLWIWGDCUQSVLVMEFWDVTAWFWIXIXOXQVOVP $.
  $}

  ${
    ghmker.1 $e |- .0. = ( 0g ` T ) $.
    $( The kernel of a homomorphism is a normal subgroup.  (Contributed by
       Mario Carneiro, 4-Feb-2015.) $)
    ghmker $p |- ( F e. ( S GrpHom T ) ->
        ( `' F " { .0. } ) e. ( NrmSGrp ` S ) ) $=
      ( cghm co wcel csn cnsg cfv ccnv cima cgrp ghmgrp2 syl ghmnsgpreima mpdan
      0nsg ) CABFGHZDIZBJKHZCLUAMAJKHTBNHUBABCOBDESPABCUAQR $.
  $}

  ${
    ghmeqker.b $e |- B = ( Base ` S ) $.
    ghmeqker.z $e |- .0. = ( 0g ` T ) $.
    ghmeqker.k $e |- K = ( `' F " { .0. } ) $.
    ghmeqker.m $e |- .- = ( -g ` S ) $.
    $( Two source points map to the same destination point under a group
       homomorphism iff their difference belongs to the kernel.  (Contributed
       by Stefan O'Rear, 31-Dec-2014.) $)
    ghmeqker $p |- ( ( F e. ( S GrpHom T ) /\ U e. B /\ V e. B ) ->
      ( ( F ` U ) = ( F ` V ) <-> ( U .- V ) e. K ) ) $=
      ( co wcel cfv wceq csn eqid 3ad2ant1 cghm w3a c0g ccnv cima sneqi imaeq2i
      wa csg eqtri eleq2i wfn wb cbs ghmf ffn syl fniniseg syl5bb cgrp grpsubcl
      wf ghmgrp1 syl3an1 biantrurd ghmsub eqeq1d bitr3d ghmgrp2 simp2 grpsubeq0
      ffvelrnd simp3 syl3anc 3bitrrd ) EBCUANOZDAOZHAOZUBZDHGNZFOZVTAOZVTEPZCUC
      PZQZUHZDEPZHEPZCUIPZNZWDQZWGWHQZWAVTEUDZWDRZUEZOZVSWFFWOVTFWMIRZUEWOLWQWN
      WMIWDKUFUGUJUKVSEAULZWPWFUMVPVQWRVRVPACUNPZEVBZWRBCEAWSJWSSZUOZAWSEUPUQTA
      WDVTEURUQUSVSWEWFWKVSWBWEVPBUTOVQVRWBBCEVCABGDHJMVAVDVEVSWCWJWDABCDEGWIHJ
      MWISZVFVGVHVSCUTOZWGWSOWHWSOWKWLUMVPVQXDVRBCEVITVSAWSDEVPVQWTVRXBTZVPVQVR
      VJVLVSAWSHEXEVPVQVRVMVLWSCWIWGWHWDXAWDSXCVKVNVO $.
  $}

  ${
    $d Y x $.  $d R x $.  $d I x $.  $d B x $.  $d W x $.
    pwsdiagghm.y $e |- Y = ( R ^s I ) $.
    pwsdiagghm.b $e |- B = ( Base ` R ) $.
    pwsdiagghm.f $e |- F = ( x e. B |-> ( I X. { x } ) ) $.
    $( Diagonal homomorphism into a structure power.  (Contributed by Stefan
       O'Rear, 24-Jan-2015.) $)
    pwsdiagghm $p |- ( ( R e. Grp /\ I e. W ) -> F e. ( R GrpHom Y ) ) $=
      ( cgrp wcel wa cmhm co cghm cmnd grpmnd pwsdiagmhm sylan ghmmhmb eleqtrrd
      wceq pwsgrp syldan ) CKLZEFLZMDCGNOZCGPOZUFCQLUGDUHLCRABCDEFGHIJSTUFUGGKL
      UIUHUCCEFGHUDCGUAUEUB $.
  $}

  ${
    $d x y z F $.  $d x y z S $.  $d x y z T $.  $d x y z U $.  $d x y z X $.
    $d x Y $.  $d x y z .0. $.
    ghmf1.x $e |- X = ( Base ` S ) $.
    ghmf1.y $e |- Y = ( Base ` T ) $.
    ghmf1.z $e |- .0. = ( 0g ` S ) $.
    ghmf1.u $e |- U = ( 0g ` T ) $.
    $( Two ways of saying a group homomorphism is 1-1 into its codomain.
       (Contributed by Paul Chapman, 3-Mar-2008.)  (Revised by Mario Carneiro,
       13-Jan-2015.) $)
    ghmf1 $p |- ( F e. ( S GrpHom T ) -> ( F : X -1-1-> Y <->
          A. x e. X ( ( F ` x ) = U -> x = .0. ) ) ) $=
      ( vy vz co wcel cfv wceq wa ad2antrr cghm wf1 cv wral ghmid eqeq2d simplr
      wi simpr cgrp ghmgrp1 grpidcl syl f1fveq syl12anc bitr3d biimpd ralrimiva
      wb wf ghmf adantr csg eqid ghmsub 3expb eqeq1d grpsubcl sylan fveq2 eqeq1
      adantlr imbi12d rspcv sylc sylbird ghmgrp2 simprl ffvelrnd simprr syl3anc
      grpsubeq0 3imtr3d ralrimivva dff13 sylanbrc impbida ) EBCUAOPZFGEUBZAUCZE
      QZDRZWJHRZUHZAFUDZWHWISZWNAFWPWJFPZSZWLWMWRWKHEQZRZWLWMWRWSDWKWHWSDRWIWQB
      CEHDKLUETUFWRWIWQHFPZWTWMUSWHWIWQUGWPWQUIWRBUJPZXAWHXBWIWQBCEUKZTFBHIKULU
      MFGWJHEUNUOUPUQURWHWOSZFGEUTZMUCZEQZNUCZEQZRZXFXHRZUHZNFUDMFUDWIWHXEWOBCE
      FGIJVAZVBXDXLMNFFXDXFFPZXHFPZSZSZXGXICVCQZOZDRZXFXHBVCQZOZHRZXJXKXQXTYBEQ
      ZDRZYCXQYDXSDWHXPYDXSRZWOWHXNXOYFFBCXFEYAXRXHIYAVDZXRVDZVEVFVLVGXQYBFPZWO
      YEYCUHZXDXBXPYIWHXBWOXCVBXBXNXOYIFBYAXFXHIYGVHVFVIWHWOXPUGWNYJAYBFWJYBRZW
      LYEWMYCYKWKYDDWJYBEVJVGWJYBHVKVMVNVOVPXQCUJPZXGGPXIGPXTXJUSWHYLWOXPBCEVQT
      XQFGXFEWHXEWOXPXMTZXDXNXOVRZVSXQFGXHEYMXDXNXOVTZVSGCXRXGXIDJLYHWBWAXQXBXN
      XOYCXKUSWHXBWOXPXCTYNYOFBYAXFXHHIKYGWBWAWCWDMNFGEWEWFWG $.
  $}

  ${
    $d x y F $.  $d x y S $.  $d x y T $.  $d x y X $.  $d x y Y $.
    ghmf1o.x $e |- X = ( Base ` S ) $.
    ghmf1o.y $e |- Y = ( Base ` T ) $.
    $( A bijective group homomorphism is an isomorphism.  (Contributed by Mario
       Carneiro, 13-Jan-2015.) $)
    ghmf1o $p |- ( F e. ( S GrpHom T ) ->
      ( F : X -1-1-onto-> Y <-> `' F e. ( T GrpHom S ) ) ) $=
      ( vx vy cghm co wcel wf1o wa cgrp cfv wceq adantr syl syl2anc ccnv cplusg
      wral ghmgrp2 ghmgrp1 jca f1ocnv adantl f1of simpll simprl ffvelrnd simprr
      wf cv ghmlin syl3anc simplr f1ocnvfv2 oveq12d eqtrd wi grpcl f1ocnvfv mpd
      eqid ralrimivva isghm sylanbrc wfn ghmf ffn dff1o4 impbida ) CABJKLZDECMZ
      CUAZBAJKLZVOVPNZBOLZAOLZNZEDVQUNZHUOZIUOZBUBPZKZVQPWDVQPZWEVQPZAUBPZKZQZI
      EUCHEUCZNVRVOWBVPVOVTWAABCUDABCUEZUFRVSWCWMVSEDVQMZWCVPWOVODECUGUHEDVQUIS
      ZVSWLHIEEVSWDELZWEELZNZNZWKCPZWGQZWLWTXAWHCPZWICPZWFKZWGWTVOWHDLZWIDLZXAX
      EQVOVPWSUJZWTEDWDVQVSWCWSWPRZVSWQWRUKZULZWTEDWEVQXIVSWQWRUMZULZWJWFABWHCW
      IDFWJVFZWFVFZUPUQWTXCWDXDWEWFWTVPWQXCWDQVOVPWSURZXJDEWDCUSTWTVPWRXDWEQXPX
      LDEWECUSTUTVAWTVPWKDLZXBWLVBXPWTWAXFXGXQWTVOWAXHWNSXKXMDWJAWHWIFXNVCUQDEW
      KWGCVDTVEVGUFIHWFWJBAVQEDGFXOXNVHVIVOVRNZCDVJZVQEVJZVPXRDECUNZXSVOYAVRABC
      DEFGVKRDECVLSXRWCXTVRWCVOBAVQEDGFVKUHEDVQVLSDECVMVIVN $.
  $}

  ${
    $d x y .- $.  $d w x y z .+ $.  $d w x y z A $.  $d w y z F $.  $d w x N $.
    $d w x y z G $.  $d w x y z S $.  $d w x y z X $.
    conjghm.x $e |- X = ( Base ` G ) $.
    conjghm.p $e |- .+ = ( +g ` G ) $.
    conjghm.m $e |- .- = ( -g ` G ) $.
    ${
      conjghm.f $e |- F = ( x e. X |-> ( ( A .+ x ) .- A ) ) $.
      $( Conjugation is an automorphism of the group.  (Contributed by Mario
         Carneiro, 13-Jan-2015.) $)
      conjghm $p |- ( ( G e. Grp /\ A e. X ) ->
        ( F e. ( G GrpHom G ) /\ F : X -1-1-onto-> X ) ) $=
        ( wcel wa co adantr syl3anc cfv wceq syl13anc oveq1d vy cgrp cghm simpl
        vz wf1o grpcl 3expa simplr grpsubcl fmptd simprl simprr grpass grpnpcan
        grpaddsubass 3eqtr2rd oveq2d 3eqtr4d oveq2 ovex fvmpt ad2antrl ad2antll
        cv syl oveq12d isghmd cminusg grpinvcl simpr wb adantrl adantrr grplcan
        eqid c0g grplinv grplid ad2ant2r eqeq2d grpsubadd 3bitr4d eqcom 3bitr4g
        3eqtr3rd f1o2d jca ) EUBLZBGLZMZDEEUCNLGGDUFWKUAUECCEEDGGHHIIWIWJUDZWLW
        KAGBAVEZCNZBFNZGDWKWMGLZMWIWNGLZWJWOGLWKWIWPWLOWIWJWPWQGCEBWMHIUGUHZWIW
        JWPUIGEFWNBHJUJPZKUKWKUAVEZGLZUEVEZGLZMZMZBWTXBCNZCNZBFNZBWTCNZBFNZBXBC
        NZBFNZCNZXFDQZWTDQZXBDQZCNXEXJBCNZXBBFNZCNZXJBXRCNZCNZXHXMXEWIXJGLZWJXR
        GLZXSYARWKWIXDWLOZXEWIXIGLZWJYBYDXEWIWJXAYEYDWIWJXDUIZWKXAXCULZGCEBWTHI
        UGPZYFGEFXIBHJUJPYFXEWIXCWJYCYDWKXAXCUMZYFGEFXBBHJUJPGCEXJBXRHIUNSXEXSX
        IXRCNZXIXBCNZBFNZXHXEXQXIXRCXEWIYEWJXQXIRYDYHYFGCEFXIBHIJUOPTXEWIYEXCWJ
        YLYJRYDYHYIYFGCEFXIXBBHIJUPSXEYKXGBFXEWIWJXAXCYKXGRYDYFYGYIGCEBWTXBHIUN
        STUQXEXLXTXJCXEWIWJXCWJXLXTRYDYFYIYFGCEFBXBBHIJUPSURUSXEXFGLZXNXHRXEWIX
        AXCYMYDYGYIGCEWTXBHIUGPAXFWOXHGDWMXFRWNXGBFWMXFBCUTTKXGBFVAVBVFXEXOXJXP
        XLCXAXOXJRWKXCAWTWOXJGDWMWTRWNXIBFWMWTBCUTTKXIBFVAVBVCXCXPXLRWKXAAXBWOX
        LGDWMXBRWNXKBFWMXBBCUTTKXKBFVAVBVDVGUSVHWKAUAGGWOBEVIQZQZWTBCNZCNZDKWSW
        KXAMZWIYOGLZYPGLZYQGLWKWIXAWLOZWKYSXAGEYNBHYNVPZVJZOYRWIXAWJYTUUAWKXAVK
        WIWJXAUIGCEWTBHIUGPZGCEYOYPHIUGPWKWPXAMZMZYQWMRZWOWTRZWMYQRWTWORUUFYQYO
        WNCNZRZYPWNRZUUGUUHUUFWIYTWQYSUUJUUKVLWKWIUUEWLOZWKXAYTWPUUDVMWKWPWQXAW
        RVNZWKYSUUEUUCOZGCEYPWNYOHIVOSUUFWMUUIYQUUFYOBCNZWMCNZEVQQZWMCNZUUIWMUU
        FUUOUUQWMCWKUUOUUQRUUEGCEYNBUUQHIUUQVPZUUBVROTUUFWIYSWJWPUUPUUIRUULUUNW
        IWJUUEUIZWKWPXAULGCEYOBWMHIUNSWIWPUURWMRWJXAGCEWMUUQHIUUSVSVTWFWAUUFWIW
        QWJXAUUHUUKVLUULUUMUUTWKWPXAUMGCEFWNBWTHIJWBSWCWMYQWDWTWOWDWEWGWH $.
    $}

    conjsubg.f $e |- F = ( x e. S |-> ( ( A .+ x ) .- A ) ) $.
    $( A conjugated subgroup is also a subgroup.  (Contributed by Mario
       Carneiro, 13-Jan-2015.) $)
    conjsubg $p |- ( ( S e. ( SubGrp ` G ) /\ A e. X ) ->
      ran F e. ( SubGrp ` G ) ) $=
      ( csubg cfv wcel wa cv co cmpt crn cima wceq subgss adantr df-ima syl6eqr
      wss cres resmpt rneqd syl5eq syl cghm wf1o cgrp subgrcl eqid sylan simpld
      conjghm simpl ghmima syl2anc eqeltrrd ) DFMNZOZBHOZPZAHBAQCRBGRZSZDUAZETZ
      VEVHDHUGZVKVLUBVFVMVGHDFIUCUDVMVKVJDUHZTVLVJDUEVMVNEVMVNADVISEAHDVIUILUFU
      JUKULVHVJFFUMROZVFVKVEOVHVOHHVJUNZVFFUOOVGVOVPPDFUPABCVJFGHIJKVJUQUTURUSV
      FVGVAFFDVJVBVCVD $.

    $( A conjugated subgroup is equinumerous to the original subgroup.
       (Contributed by Mario Carneiro, 18-Jan-2015.) $)
    conjsubgen $p |- ( ( S e. ( SubGrp ` G ) /\ A e. X ) ->
      S ~~ ran F ) $=
      ( csubg wcel wf1o wa wf1 co cmpt syl cfv crn cen wbr cv cres cghm subgrcl
      wss cgrp eqid conjghm sylan simprd f1of1 subgss adantr f1ssres syl2anc wb
      wceq resmptd syl6eqr f1eq1 mpbid f1f1orn f1oeng syldan ) DFMUAZNZBHNZDEUB
      ZEOZDVLUCUDVJVKPZDHEQZVMVNDHAHBAUECRBGRZSZDUFZQZVOVNHHVQQZDHUIZVSVNHHVQOZ
      VTVNVQFFUGRNZWBVJFUJNVKWCWBPDFUHABCVQFGHIJKVQUKULUMUNHHVQUOTVJWAVKHDFIUPU
      QZHHDVQURUSVNVREVAVSVOUTVNVRADVPSEVNAHDVPWDVBLVCDHVREVDTVEDHEVFTDVLVIEVGV
      H $.

    ${
      conjnmz.1 $e |- N = { y e. X |
        A. z e. X ( ( y .+ z ) e. S <-> ( z .+ y ) e. S ) } $.
      $( A subgroup is unchanged under conjugation by an element of its
         normalizer.  (Contributed by Mario Carneiro, 18-Jan-2015.) $)
      conjnmz $p |- ( ( S e. ( SubGrp ` G ) /\ A e. N ) -> S = ran F ) $=
        ( wcel co wceq syl2anc vw csubg cfv wa cv cminusg cgrp subgrcl ad2antrr
        crn wb wral crab ssrab2 eqsstri simplr sseldi eqid subgss adantr sselda
        grpinvcl wss grpass syl13anc grprinv oveq1d 3eqtr3d simpr eqeltrd grpcl
        c0g grplid syl3anc nmzbi mpbid eqeltrrd oveq2 fvmpt syl grppncan 3eqtrd
        ovex fnmpti fnfvelrn sylancr ex ssrdv wf grpaddsubass grpnpcan grpsubcl
        wfn mpbird fmptd frn eqssd ) FHUBUCQZDJQZUDZFGUJZWTUAFXAWTUAUEZFQZXBXAQ
        WTXCUDZDHUFUCZUCZXBDERZERZGUCZXBXAXDXIDXHERZDIRZXGDIRZXBXDXHFQZXIXKSXDX
        FXBERZDERZXHFXDHUGQZXFKQZXBKQZDKQZXOXHSWRXPWSXCFHUHZUIZXDXPXSXQYAXDJKDJ
        BUEZCUEZERFQYCYBERFQUKCKULZBKUMKPYDBKUNUOZWRWSXCUPZUQZKHXEDLXEURZVBTZWT
        FKXBWRFKVCWSKFHLUSUTZVAZYGKEHXFXBDLMVDVEXDDXNERZFQZXOFQZXDYLXBFXDDXFERZ
        XBERZHVLUCZXBERZYLXBXDYOYQXBEXDXPXSYOYQSYAYGKEHXEDYQLMYQURZYHVFTZVGXDXP
        XSXQXRYPYLSYAYGYIYKKEHDXFXBLMVDVEXDXPXRYRXBSYAYKKEHXBYQLMYSVMTVHWTXCVIV
        JXDWSXNKQZYMYNUKYFXDXPXQXRUUAYAYIYKKEHXFXBLMVKVNBCDXNEFJKPVOTVPVQZAXHDA
        UEZERZDIRZXKFGUUCXHSUUDXJDIUUCXHDEVRVGOXJDIWCVSVTXDXJXGDIXDYOXGERZYQXGE
        RZXJXGXDYOYQXGEYTVGXDXPXSXQXGKQZUUFXJSYAYGYIXDXPXRXSUUHYAYKYGKEHXBDLMVK
        VNZKEHDXFXGLMVDVEXDXPUUHUUGXGSYAUUIKEHXGYQLMYSVMTVHVGXDXPXRXSXLXBSYAYKY
        GKEHIXBDLMNWAVNWBXDGFWMXMXIXAQAFUUEGUUDDIWCOWDUUBFXHGWEWFVQWGWHWTFFGWIX
        AFVCWTAFUUEFGWTUUCFQZUDZUUEDUUCDIRZERZFUUKXPXSUUCKQZXSUUEUUMSWRXPWSUUJX
        TUIZUUKJKDYEWRWSUUJUPZUQZWTFKUUCYJVAZUUQKEHIDUUCDLMNWJVEUUKUUMFQZUULDER
        ZFQZUUKUUTUUCFUUKXPUUNXSUUTUUCSUUOUURUUQKEHIUUCDLMNWKVNWTUUJVIVJUUKWSUU
        LKQZUUSUVAUKUUPUUKXPUUNXSUVBUUOUURUUQKHIUUCDLNWLVNBCDUULEFJKPVOTWNVJOWO
        FFGWPVTWQ $.

      $( Alternative condition for elementhood in the normalizer.  (Contributed
         by Mario Carneiro, 18-Jan-2015.) $)
      conjnmzb $p |- ( S e. ( SubGrp ` G ) ->
        ( A e. N <-> ( A e. X /\ S = ran F ) ) ) $=
        ( wcel wceq wa co vw csubg cfv crn cv wb wral crab ssrab2 eqsstri simpr
        sseldi conjnmz jca simprl simplrr eleq2d wrex subgrcl ad3antrrr simpllr
        wss subgss ad2antrr sselda grpaddsubass syl13anc eqeq1d grpsubcl simplr
        cgrp syl3anc grplcan grpsubadd 3bitrd eqcom 3bitr4g rexbidva ovex eqeq1
        adantlrr rexbidv rnmpt elab2 risset bitrd ralrimiva sylanbrc impbida
        elnmz ) FHUBUCQZDJQZDKQZFGUDZRZSZWKWLSZWMWOWQJKDJBUEZCUEZETFQWSWRETFQUF
        CKUGZBKUHKPWTBKUIUJWKWLUKULABCDEFGHIJKLMNOPUMUNWKWPSZWMDUAUEZETZFQZXBDE
        TZFQZUFZUAKUGWLWKWMWOUOXAXGUAKXAXBKQZSZXDXCWNQZXFXIFWNXCWKWMWOXHUPUQXIX
        CDAUEZETDITZRZAFURZXKXERZAFURZXJXFWKWMXHXNXPUFWOWKWMSZXHSZXMXOAFXRXKFQZ
        SZXLXCRZXEXKRZXMXOXTYADXKDITZETZXCRZYCXBRZYBXTXLYDXCXTHVKQZWMXKKQZWMXLY
        DRWKYGWMXHXSFHUSUTZWKWMXHXSVAZXRFKXKWKFKVBWMXHKFHLVCVDVEZYJKEHIDXKDLMNV
        FVGVHXTYGYCKQZXHWMYEYFUFYIXTYGYHWMYLYIYKYJKHIXKDLNVIVLXQXHXSVJZYJKEHYCX
        BDLMVMVGXTYGYHWMXHYFYBUFYIYKYJYMKEHIXKDXBLMNVNVGVOXCXLVPXKXEVPVQVRWAWRX
        LRZAFURXNBXCWNDXBEVSWRXCRYNXMAFWRXCXLVTWBABFXLGOWCWDAXEFWEVQWFWGBCUADEF
        JKPWJWHWI $.
    $}

    $( A normal subgroup is unchanged under conjugation.  (Contributed by Mario
       Carneiro, 18-Jan-2015.) $)
    conjnsg $p |- ( ( S e. ( NrmSGrp ` G ) /\ A e. X ) -> S = ran F ) $=
      ( vy vz cnsg cfv wcel cv co wceq wb wral crab csubg isnsg4 simprbi eleq2d
      crn eqid biimpar nsgsubg conjnmz sylan syldan ) DFOPQZBHQZBMRZNRZCSDQURUQ
      CSDQUANHUBMHUCZQZDEUHTZUOUTUPUOUSHBUODFUDPQZUSHTMNCDFUSHUSUIZIJUEUFUGUJUO
      VBUTVADFUKAMNBCDEFGUSHIJKLVCULUMUN $.
  $}

  ${
    $d y z F $.  $d x y z G $.  $d x y z H $.  $d x y z X $.  $d x y z Y $.
    qusghm.x $e |- X = ( Base ` G ) $.
    qusghm.h $e |- H = ( G /s ( G ~QG Y ) ) $.
    qusghm.f $e |- F = ( x e. X |-> [ x ] ( G ~QG Y ) ) $.
    $( If ` Y ` is a normal subgroup of ` G ` , then the "natural map" from
       elements to their cosets is a group homomorphism from ` G ` to
       ` G / Y ` .  (Contributed by Mario Carneiro, 14-Jun-2015.)  (Revised by
       Mario Carneiro, 18-Sep-2015.) $)
    qusghm $p |- ( Y e. ( NrmSGrp ` G ) -> F e. ( G GrpHom H ) ) $=
      ( vy cfv wcel eqid cv co cec wceq eceq1 cvv fvmpt3i cnsg cplusg cbs csubg
      vz cgrp nsgsubg subgrcl syl qusgrp cqg quseccl fmptd wa qusadd 3expb ovex
      ecexg ax-mp ad2antrl ad2antll oveq12d grpcl sylan 3eqtr4rd isghmd ) FCUAK
      LZJUECUBKZDUBKZCDBEDUCKZGVJMZVHMZVIMZVGFCUDKLCUFLZFCUGFCUHUIZFCDHUJVGAEAN
      ZCFUKOZPZVJBVJFCDEVPHGVKULIUMVGJNZELZUENZELZUNZUNZVSVQPZWAVQPZVIOZVSWAVHO
      ZVQPZVSBKZWABKZVIOWHBKZVGVTWBWGWIQVHVIFCDEVSWAHGVLVMUOUPWDWJWEWKWFVIVTWJW
      EQVGWBAVSVRWEEBVPVSVQRIVQSLVRSLCFUKUQVPSVQURUSZTUTWBWKWFQVGVTAWAVRWFEBVPW
      AVQRIWMTVAVBWDWHELZWLWIQVGVNWCWNVOVNVTWBWNEVHCVSWAGVLVCUPVDAWHVRWIEBVPWHV
      QRIWMTUIVEVF $.
  $}

  ${
    $d f x y J $.  $d f x y K $.  $d f x y L $.  $d f x y M $.  $d f x y ph $.
    $d x y B $.  $d x y C $.
    ghmpropd.a $e |- ( ph -> B = ( Base ` J ) ) $.
    ghmpropd.b $e |- ( ph -> C = ( Base ` K ) ) $.
    ghmpropd.c $e |- ( ph -> B = ( Base ` L ) ) $.
    ghmpropd.d $e |- ( ph -> C = ( Base ` M ) ) $.
    ghmpropd.e $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( x ( +g ` J ) y ) = ( x ( +g ` L ) y ) ) $.
    ghmpropd.f $e |- ( ( ph /\ ( x e. C /\ y e. C ) ) ->
        ( x ( +g ` K ) y ) = ( x ( +g ` M ) y ) ) $.
    $( Group homomorphism depends only on the group attributes of structures.
       (Contributed by Mario Carneiro, 12-Jun-2015.) $)
    ghmpropd $p |- ( ph -> ( J GrpHom K ) = ( L GrpHom M ) ) $=
      ( co cgrp wcel wa eleq2d vf cghm cv cmhm grppropd anbi12d ghmgrp1 ghmgrp2
      mhmpropd jca ghmmhmb biadan2 3bitr4g eqrdv ) AUAFGUBPZHIUBPZAFQRZGQRZSZUA
      UCZFGUDPZRZSHQRZIQRZSZUTHIUDPZRZSUTUORZUTUPRZAUSVEVBVGAUQVCURVDABCDFHJLNU
      EABCEGIKMOUEUFAVAVFUTABCDEFGHIJKLMNOUITUFVHUSVBVHUQURFGUTUGFGUTUHUJUSUOVA
      UTFGUKTULVIVEVGVIVCVDHIUTUGHIUTUHUJVEUPVFUTHIUKTULUMUN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Isomorphisms of groups
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c GrpIso $.
  $c ~=g $.

  $( The class of group isomorphism sets. $)
  cgim $a class GrpIso $.

  $( The class of the group isomorphism relation. $)
  cgic $a class ~=g $.

  ${
    $d g s t $.

    $( An isomorphism of groups is a homomorphism which is also a bijection,
       i.e. it preserves equality as well as the group operation.  (Contributed
       by Stefan O'Rear, 21-Jan-2015.) $)
    df-gim $a |- GrpIso = ( s e. Grp , t e. Grp |-> { g e. ( s GrpHom t ) |
        g : ( Base ` s ) -1-1-onto-> ( Base ` t ) } ) $.

    $( Two groups are said to be isomorphic iff they are connected by at least
       one isomorphism.  Isomorphic groups share all global group properties,
       but to relate local properties requires knowledge of a specific
       isomorphism.  (Contributed by Stefan O'Rear, 25-Jan-2015.) $)
    df-gic $a |- ~=g = ( `' GrpIso " ( _V \ 1o ) ) $.

    $( The group isomorphism function is a well-defined function.  (Contributed
       by Mario Carneiro, 23-Aug-2015.) $)
    gimfn $p |- GrpIso Fn ( Grp X. Grp ) $=
      ( vs vt vg cgrp cv cbs cfv wf1o cghm crab cgim df-gim ovex rabex fnmpt2i
      co ) ABDDAEZFGBEZFGCEHZCQRIPZJKBCALSCTQRIMNO $.
  $}

  ${
    $d F a b c $.  $d R a b c $.  $d S a b c $.  $d B a b c $.  $d C a b c $.
    isgim.b $e |- B = ( Base ` R ) $.
    isgim.c $e |- C = ( Base ` S ) $.
    $( An isomorphism of groups is a bijective homomorphism.  (Contributed by
       Stefan O'Rear, 21-Jan-2015.) $)
    isgim $p |- ( F e. ( R GrpIso S ) <-> ( F e. ( R GrpHom S ) /\
          F : B -1-1-onto-> C ) ) $=
      ( vc va vb cgrp wcel cv wf1o cghm co wa cbs cfv wceq crab w3a cgim df-3an
      df-gim ovex rabex oveq12 wb fveq2 syl6eqr f1oeq23 syl2an elovmpt2 ghmgrp1
      rabeqbidv ghmgrp2 jca adantr pm4.71ri f1oeq1 elrab anbi2i bitr4i 3bitr4i
      ) CKLZDKLZEABHMZNZHCDOPZUAZLZUBVFVGQZVLQZECDUCPLEVJLZABENZQZVFVGVLUDKKIMZ
      RSZJMZRSZVHNZHVRVTOPZUAUCVKECDIJJHIUEWBHWCVRVTOUFUGVRCTZVTDTZQWBVIHWCVJVR
      CVTDOUHWDVSATWABTWBVIUIWEWDVSCRSAVRCRUJFUKWEWADRSBVTDRUJGUKVSAWABVHULUMUP
      UNVQVMVQQVNVQVMVOVMVPVOVFVGCDEUOCDEUQURUSUTVLVQVMVIVPHEVJABVHEVAVBVCVDVE
      $.

    $( An isomorphism of groups is a bijection.  (Contributed by Stefan O'Rear,
       21-Jan-2015.)  (Revised by Mario Carneiro, 6-May-2015.) $)
    gimf1o $p |- ( F e. ( R GrpIso S ) -> F : B -1-1-onto-> C ) $=
      ( cgim co wcel cghm wf1o isgim simprbi ) ECDHIJECDKIJABELABCDEFGMN $.
  $}

  $( An isomorphism of groups is a homomorphism.  (Contributed by Stefan
     O'Rear, 21-Jan-2015.)  (Revised by Mario Carneiro, 6-May-2015.) $)
  gimghm $p |- ( F e. ( R GrpIso S ) -> F e. ( R GrpHom S ) ) $=
    ( cgim co wcel cghm cbs cfv wf1o eqid isgim simplbi ) CABDEFCABGEFAHIZBHIZC
    JNOABCNKOKLM $.

  $( A group isomorphism is a homomorphism whose converse is also a
     homomorphism.  Characterization of isomorphisms similar to ~ ishmeo .
     (Contributed by Mario Carneiro, 6-May-2015.) $)
  isgim2 $p |- ( F e. ( R GrpIso S ) <-> ( F e. ( R GrpHom S ) /\
          `' F e. ( S GrpHom R ) ) ) $=
    ( cgim co wcel cghm cbs cfv wf1o wa ccnv eqid isgim ghmf1o pm5.32i bitri )
    CABDEFCABGEFZAHIZBHIZCJZKRCLBAGEFZKSTABCSMZTMZNRUAUBABCSTUCUDOPQ $.

  ${
    subgim.b $e |- B = ( Base ` R ) $.
    $( Behavior of subgroups under isomorphism.  (Contributed by Stefan O'Rear,
       21-Jan-2015.) $)
    subggim $p |- ( ( F e. ( R GrpIso S ) /\ A C_ B ) ->
        ( A e. ( SubGrp ` R ) <-> ( F " A ) e. ( SubGrp ` S ) ) ) $=
      ( cgim co wcel wss wa csubg cfv cima cghm gimghm adantr ghmima sylan ccnv
      wceq cbs wf1 wf1o eqid gimf1o f1of1 f1imacnv ghmpreima eqeltrrd impbida
      syl ) ECDGHIZABJZKZACLMZIZEANZDLMIZUOECDOHIZUQUSUMUTUNCDEPQZCDAERSUOUSKET
      URNZAUPUOVBAUAZUSUMBDUBMZEUCZUNVCUMBVDEUDVEBVDCDEFVDUEUFBVDEUGULBVDAEUHSQ
      UOUTUSVBUPIVACDEURUISUJUK $.
  $}

  $( The converse of a bijective group homomorphism is a bijective group
     homomorphism.  (Contributed by Stefan O'Rear, 25-Jan-2015.)  (Revised by
     Mario Carneiro, 6-May-2015.) $)
  gimcnv $p |- ( F e. ( S GrpIso T ) -> `' F e. ( T GrpIso S ) ) $=
    ( cghm co wcel ccnv wa cgim cbs cfv wceq eqid ghmf wrel dfrel2 sylib isgim2
    wf frel syl id eqeltrd anim2i ancoms 3imtr4i ) CABDEZFZCGZBADEFZHUJUIGZUGFZ
    HZCABIEFUIBAIEFUJUHUMUHULUJUHUKCUGUHAJKZBJKZCSZUKCLZABCUNUOUNMUOMNUPCOUQUNU
    OCTCPQUAUHUBUCUDUEABCRBAUIRUF $.

  $( The composition of group isomorphisms is a group isomorphism.
     (Contributed by Mario Carneiro, 21-Apr-2016.) $)
  gimco $p |- ( ( F e. ( T GrpIso U ) /\ G e. ( S GrpIso T ) ) ->
      ( F o. G ) e. ( S GrpIso U ) ) $=
    ( cgim co wcel wa ccom cghm ccnv isgim2 ghmco cnvco ancoms syl5eqel anim12i
    an4s syl2anb sylibr ) DBCFGHZEABFGHZIDEJZACKGHZUDLZCAKGZHZIZUDACFGHUBDBCKGH
    ZDLZCBKGHZIEABKGHZELZBAKGHZIUIUCBCDMABEMUJUMULUOUIUJUMIUEULUOIZUHABCDENUPUF
    UNUKJZUGDEOUOULUQUGHCBAUNUKNPQRSTACUDMUA $.

  $( The relation "is isomorphic to" for groups.  (Contributed by Stefan
     O'Rear, 25-Jan-2015.) $)
  brgic $p |- ( R ~=g S <-> ( R GrpIso S ) =/= (/) ) $=
    ( cgic cgim cgrp cxp df-gic gimfn brwitnlem ) ABCDEEFGHI $.

  $( Prove isomorphic by an explicit isomorphism.  (Contributed by Stefan
     O'Rear, 25-Jan-2015.) $)
  brgici $p |- ( F e. ( R GrpIso S ) -> R ~=g S ) $=
    ( cgim co wcel c0 wne cgic wbr ne0i brgic sylibr ) CABDEZFNGHABIJNCKABLM $.

  $( Isomorphism is reflexive.  (Contributed by Mario Carneiro,
     21-Apr-2016.) $)
  gicref $p |- ( R e. Grp -> R ~=g R ) $=
    ( cgrp wcel cid cbs cfv cres cgim co cgic wbr cghm ccnv eqid idghm cnvresid
    syl5eqel isgim2 sylanbrc brgici syl ) ABCZDAEFZGZAAHICZAAJKUBUDAALIZCUDMZUF
    CUEUCAUCNOZUBUGUDUFUCPUHQAAUDRSAAUDTUA $.

  ${
    $d x y z $.  $d f B $.  $d f C $.  $d f g R $.  $d f g S $.  $d f g T $.
    $( Isomorphism implies the left side is a group.  (Contributed by Stefan
       O'Rear, 25-Jan-2015.) $)
    giclcl $p |- ( R ~=g S -> R e. Grp ) $=
      ( vf cgic wbr cv cgim co wcel wex cgrp c0 wne brgic n0 bitri cghm ghmgrp1
      gimghm syl exlimiv sylbi ) ABDEZCFZABGHZIZCJZAKIZUCUELMUGABNCUEOPUFUHCUFU
      DABQHIUHABUDSABUDRTUAUB $.

    $( Isomorphism implies the right side is a group.  (Contributed by Mario
       Carneiro, 6-May-2015.) $)
    gicrcl $p |- ( R ~=g S -> S e. Grp ) $=
      ( vf cgic wbr cv cgim co wcel wex cgrp c0 wne brgic n0 bitri cghm ghmgrp2
      gimghm syl exlimiv sylbi ) ABDEZCFZABGHZIZCJZBKIZUCUELMUGABNCUEOPUFUHCUFU
      DABQHIUHABUDSABUDRTUAUB $.

    $( Isomorphism is symmetric.  (Contributed by Mario Carneiro,
       21-Apr-2016.) $)
    gicsym $p |- ( R ~=g S -> S ~=g R ) $=
      ( vf cgic wbr cgim co c0 wne brgic cv wcel wex ccnv gimcnv brgici exlimiv
      n0 syl sylbi ) ABDEABFGZHIZBADEZABJUBCKZUALZCMUCCUARUEUCCUEUDNZBAFGLUCABU
      DOBAUFPSQTT $.

    $( Isomorphism is transitive.  (Contributed by Mario Carneiro,
       21-Apr-2016.) $)
    gictr $p |- ( ( R ~=g S /\ S ~=g T ) -> R ~=g T ) $=
      ( vf vg cgic wbr cgim co c0 wne brgic cv wcel wex n0 eeanv ccom syl2anb
      wa gimco brgici syl ancoms exlimivv sylbir ) ABFGABHIZJKZBCHIZJKZACFGZBCF
      GABLBCLUHDMZUGNZDOZEMZUINZEOZUKUJDUGPEUIPUNUQTUMUPTZEODOUKUMUPDEQURUKDEUP
      UMUKUPUMTUOULRZACHINUKABCUOULUAACUSUBUCUDUEUFSS $.

    $( Isomorphism is an equivalence relation on groups.  (Contributed by Mario
       Carneiro, 21-Apr-2016.)  (Proof shortened by AV, 1-May-2021.) $)
    gicer $p |- ~=g Er Grp $=
      ( vx vy vz cgrp cgic cxp wss wrel cgim ccnv cvv cdif cima df-gic cnvimass
      c1o cdm wfn wceq cv gimfn fndm ax-mp sseqtri relxp relss mp2 gicsym gictr
      eqsstri wcel wbr gicref giclcl impbii iseri ) ABCDEEDDFZGUQHEHEIJKPLZMZUQ
      NUSIQZUQIUROIUQRUTUQSUAUQIUBUCUDUJDDUEEUQUFUGATZBTZUHVAVBCTUIVADUKVAVAEUL
      VAUMVAVAUNUOUP $.

    $( Obsolete proof of ~ gicer as of 1-May-2021.  Isomorphism is an
       equivalence relation on groups.  (Contributed by Mario Carneiro,
       21-Apr-2016.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    gicerOLD $p |- ~=g Er Grp $=
      ( vx vy vz cgrp cgic wer wtru wrel cxp wss cgim ccnv cvv c1o cdif cima cv
      a1i wbr adantl df-gic cdm cnvimass wceq gimfn ax-mp sseqtri eqsstri relxp
      wfn fndm relss mp2 gicsym wa gictr wcel gicref giclcl impbii iserd trud
      wb ) DEFGABCDEEHZGEDDIZJVEHVDEKLMNOZPZVEUAVGKUBZVEKVFUCKVEUJVHVEUDUEVEKUK
      UFUGUHDDUIEVEULUMRAQZBQZESZVJVIESGVIVJUNTVKVJCQZESUOVIVLESGVIVJVLUPTVIDUQ
      ZVIVIESZVCGVMVNVIURVIVIUSUTRVAVB $.

    gicen.b $e |- B = ( Base ` R ) $.
    gicen.c $e |- C = ( Base ` S ) $.
    $( Isomorphic groups have equinumerous base sets.  (Contributed by Stefan
       O'Rear, 25-Jan-2015.) $)
    gicen $p |- ( R ~=g S -> B ~~ C ) $=
      ( vf cgic wbr cgim co c0 wne cen brgic cv wcel wex cbs sylbi wf1o cfv cvv
      n0 gimf1o fvex eqeltri f1oen syl exlimiv ) CDHICDJKZLMZABNIZCDOULGPZUKQZG
      RUMGUKUDUOUMGUOABUNUAUMABCDUNEFUEABUNACSUBUCECSUFUGUHUIUJTT $.
  $}

  ${
    $d R a b c $.  $d S a b c $.
    $( A less trivial example of a group invariant: cardinality of the subgroup
       lattice.  (Contributed by Stefan O'Rear, 25-Jan-2015.) $)
    gicsubgen $p |- ( R ~=g S -> ( SubGrp ` R ) ~~ ( SubGrp ` S ) ) $=
      ( va vb vc wbr cv co wcel csubg cfv cima fvexd cvv imaex 2a1i wceq wa cbs
      sylan cgic cgim wex cen c0 wne brgic n0 bitri ccnv vex cghm gimghm ghmima
      cnvex wf1 wss wf1o eqid gimf1o f1of1 syl subgss f1imacnv syl2an jca eleq1
      eqcomd imaeq2 eqeq2d anbi12d syl5ibrcom impr ghmpreima wfo f1ofo foimacnv
      impbida en2d exlimiv sylbi ) ABUAFZCGZABUBHZIZCUCZAJKZBJKZUDFZWBWDUEUFWFA
      BUGCWDUHUIWEWICWEDEWGWHWCDGZLZWCUJZEGZLZWEAJMWEBJMWKNIWEWJWGIZWCWJCUKZOPW
      NNIWEWMWHIZWLWMWCWPUOOPWEWOWMWKQZRZWQWJWNQZRZWEWOWRXAWEWORZXAWRWKWHIZWJWL
      WKLZQZRXBXCXEWEWCABULHIZWOXCABWCUMZABWJWCUNTXBXDWJWEASKZBSKZWCUPZWJXHUQXD
      WJQWOWEXHXIWCURZXJXHXIABWCXHUSZXIUSZUTZXHXIWCVAVBXHWJAXLVCXHXIWJWCVDVEVHV
      FWRWQXCWTXEWMWKWHVGWRWNXDWJWMWKWLVIVJVKVLVMWEWQWTWSWEWQRZWSWTWNWGIZWMWCWN
      LZQZRXOXPXRWEXFWQXPXGABWCWMVNTXOXQWMWEXHXIWCVOZWMXIUQXQWMQWQWEXKXSXNXHXIW
      CVPVBXIWMBXMVCXHXIWMWCVQVEVHVFWTWOXPWRXRWJWNWGVGWTWKXQWMWJWNWCVIVJVKVLVMV
      RVSVTWA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Group actions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c GrpAct $.
  $( Extend class definition to include the class of group actions. $)
  cga $a class GrpAct $.

  ${
    $d b g m s x y z G $.  $d b g m s y z X $.  $d b g m s x y z Y $.
    $d b g m s .+ $.  $d m x y z .(+) $.  $d b g m s .0. $.
    $( Define the class of all group actions.  A group ` G ` acts on a set
       ` S ` if a permutation on ` S ` is associated with every element of
       ` G ` in such a way that the identity permutation on ` S ` is associated
       with the neutral element of ` G ` , and the composition of the
       permutations associated with two elements of ` G ` is identical with the
       permutation associated with the composition of these two elements (in
       the same order) in the group ` G ` .  (Contributed by Jeff Hankins,
       10-Aug-2009.) $)
    df-ga $a |- GrpAct = ( g e. Grp , s e. _V |-> [_ ( Base ` g ) / b ]_
      { m e. ( s ^m ( b X. s ) ) | A. x e. s ( ( ( 0g ` g ) m x ) = x /\
    A. y e. b A. z e. b ( ( y ( +g ` g ) z ) m x ) = ( y m ( z m x ) ) ) } ) $.

    isga.1 $e |- X = ( Base ` G ) $.
    isga.2 $e |- .+ = ( +g ` G ) $.
    isga.3 $e |- .0. = ( 0g ` G ) $.
    $( The predicate "is a (left) group action."  The group ` G ` is said to
       act on the base set ` Y ` of the action, which is not assumed to have
       any special properties.  There is a related notion of right group
       action, but as the Wikipedia article explains, it is not mathematically
       interesting.  The way actions are usually thought of is that each
       element ` g ` of ` G ` is a permutation of the elements of ` Y ` (see
       ~ gapm ).  Since group theory was classically about symmetry groups, it
       is therefore likely that the notion of group action was useful even in
       early group theory.  (Contributed by Jeff Hankins, 10-Aug-2009.)
       (Revised by Mario Carneiro, 13-Jan-2015.) $)
    isga $p |- ( .(+) e. ( G GrpAct Y ) <-> ( ( G e. Grp /\ Y e. _V ) /\
                 ( .(+) : ( X X. Y ) --> Y /\ A. x e. Y ( ( .0. .(+) x ) = x /\
 A. y e. X A. z e. X ( ( y .+ z ) .(+) x ) = ( y .(+) ( z .(+) x ) ) ) ) ) ) $=
      ( vm co wcel cvv wa cv wceq wral vg vs vb cga cgrp cxp cbs cfv c0g cplusg
      wf cmap csb df-ga elmpt2cl fvexd simplr id simpl fveq2d syl6eqr sylan9eqr
      crab xpeq12d oveq12d simpll oveq1d oveqd raleqbidv anbi12d rabeqbidv ovex
      eqeq1d csbied rabex ovmpt2a eleq2d oveq2d eqeq12d 2ralbidv ralbidv syl6bb
      oveq eqtrd elrab simpr eqeltri xpexg sylancr elmapd anbi1d bitrd biadan2
      fvex ) EFHUDNZOZFUEOZHPOZQZGHUFZHEUKZIARZENZXBSZBRZCRZDNZXBENZXEXFXBENZEN
      ZSZCGTBGTZQZAHTZQZUAUBUEPUCUARZUGUHZXPUIUHZXBMRZNZXBSZXEXFXPUJUHZNZXBXSNZ
      XEXFXBXSNZXSNZSZCUCRZTZBYHTZQZAUBRZTZMYLYHYLUFZULNZVCZUMZFHUDEABCUAMUBUCU
      NZUOWSWPEHWTULNZOZXNQZXOWSWPEIXBXSNZXBSZXGXBXSNZYFSZCGTZBGTZQZAHTZMYSVCZO
      UUAWSWOUUJEUAUBFHUEPYQUUJUDXPFSZYLHSZQZUCXQYPUUJPUUMXPUGUPUUMYHXQSZQZYMUU
      IMYOYSUUOYLHYNWTULUUKUULUUNUQZUUOYHGYLHUUNUUMYHXQGUUNURUUMXQFUGUHZGUUMXPF
      UGUUKUULUSUTJVAVBZUUPVDVEUUOYKUUHAYLHUUPUUOYAUUCYJUUGUUOXTUUBXBUUOXRIXBXS
      UUOXRFUIUHIUUOXPFUIUUKUULUUNVFZUTLVAVGVMUUOYIUUFBYHGUURUUOYGUUECYHGUURUUO
      YDUUDYFUUOYCXGXBXSUUOYBDXEXFUUOYBFUJUHDUUOXPFUJUUSUTKVAVHVGVMVIVIVJVIVKVN
      YRUUIMYSHWTULVLVOVPVQUUIXNMEYSXSESZUUHXMAHUUTUUCXDUUGXLUUTUUBXCXBIXBXSEWC
      VMUUTUUEXKBCGGUUTUUDXHYFXJXGXBXSEWCUUTYFXEYEENXJXEYEXSEWCUUTYEXIXEEXFXBXS
      EWCVRWDVSVTVJWAWEWBWSYTXAXNWSHWTEPPWQWRWFZWSGPOWRWTPOGUUQPJFUGWNWGUVAGHPP
      WHWIWJWKWLWM $.
  $}

  ${
    $d x y z G $.  $d x y z .(+) $.  $d x y z Y $.
    $( The left argument of a group action is a group.  (Contributed by Jeff
       Hankins, 11-Aug-2009.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    gagrp $p |- ( .(+) e. ( G GrpAct Y ) -> G e. Grp ) $=
      ( vx vy vz cga co wcel cgrp cvv wa cbs cfv cxp wf cv wceq wral eqid isga
      c0g cplusg simplbi simpld ) ABCGHIZBJIZCKIZUFUGUHLBMNZCOCAPBUBNZDQZAHUKRE
      QZFQZBUCNZHUKAHULUMUKAHAHRFUISEUISLDCSLDEFUNABUICUJUITUNTUJTUAUDUE $.

    $( The right argument of a group action is a set.  (Contributed by Mario
       Carneiro, 30-Apr-2015.) $)
    gaset $p |- ( .(+) e. ( G GrpAct Y ) -> Y e. _V ) $=
      ( vx vy vz cga co wcel cgrp cvv wa cbs cfv cxp wf cv wceq wral eqid isga
      c0g cplusg simplbi simprd ) ABCGHIZBJIZCKIZUFUGUHLBMNZCOCAPBUBNZDQZAHUKRE
      QZFQZBUCNZHUKAHULUMUKAHAHRFUISEUISLDCSLDEFUNABUICUJUITUNTUJTUAUDUE $.
  $}

  ${
    $d x A $.  $d x y z G $.  $d x y z .(+) $.  $d x .0. $.  $d x y z Y $.
    gagrpid.1 $e |- .0. = ( 0g ` G ) $.
    $( The identity of the group does not alter the base set.  (Contributed by
       Jeff Hankins, 11-Aug-2009.)  (Revised by Mario Carneiro,
       13-Jan-2015.) $)
    gagrpid $p |- ( ( .(+) e. ( G GrpAct Y ) /\ A e. Y ) ->
      ( .0. .(+) A ) = A ) $=
      ( vx vy vz cga co wcel cv wceq wral cplusg cfv cbs wa eqid cxp wf simprbi
      cgrp cvv isga simprd simpl ralimi syl oveq2 id eqeq12d rspccva sylan ) BC
      DJKLZEGMZBKZUQNZGDOZADLEABKZANZUPUSHMZIMZCPQZKUQBKVCVDUQBKBKNICRQZOHVFOZS
      ZGDOZUTUPVFDUADBUBZVIUPCUDLDUELSVJVISGHIVEBCVFDEVFTVETFUFUCUGVHUSGDUSVGUH
      UIUJUSVBGADUQANZURVAUQAUQAEBUKVKULUMUNUO $.
  $}

  ${
    $d x y z G $.  $d x y z .(+) $.  $d x y z X $.  $d x y z Y $.
    gaf.1 $e |- X = ( Base ` G ) $.
    $( The mapping of the group action operation.  (Contributed by Jeff
       Hankins, 11-Aug-2009.)  (Revised by Mario Carneiro, 13-Jan-2015.) $)
    gaf $p |- ( .(+) e. ( G GrpAct Y ) -> .(+) : ( X X. Y ) --> Y ) $=
      ( vx vy vz cga co wcel cxp wf c0g cfv cv wceq wral wa eqid cplusg simprbi
      cgrp cvv isga simpld ) ABDIJKZCDLDAMZBNOZFPZAJUJQGPZHPZBUAOZJUJAJUKULUJAJ
      AJQHCRGCRSFDRZUGBUCKDUDKSUHUNSFGHUMABCDUIEUMTUITUEUBUF $.

    $( A group action is onto its base set.  (Contributed by Jeff Hankins,
       10-Aug-2009.)  (Revised by Mario Carneiro, 13-Jan-2015.) $)
    gafo $p |- ( .(+) e. ( G GrpAct Y ) -> .(+) : ( X X. Y ) -onto-> Y ) $=
      ( vx vy vz cga co wcel cxp wf cv wceq wrex wral wfo gaf wa c0g cgrp gagrp
      cfv adantr eqid grpidcl syl gagrpid eqcomd rspceov syl3anc ralrimiva foov
      simpr sylanbrc ) ABDIJKZCDLZDAMFNZGNHNAJOHDPGCPZFDQURDARABCDESUQUTFDUQUSD
      KZTZBUAUDZCKZVAUSVCUSAJZOUTVBBUBKZVDUQVFVAABDUCUECBVCEVCUFZUGUHUQVAUOVBVE
      USUSABDVCVGUIUJGHCDVCUSUSAUKULUMGHFCDDAUNUP $.
  $}

  ${
    $d x y z .+ $.  $d x y z .(+) $.  $d y z A $.  $d x y z C $.  $d x y z G $.
    $d z B $.  $d x y z X $.  $d x y z Y $.
    gaass.1 $e |- X = ( Base ` G ) $.
    gaass.2 $e |- .+ = ( +g ` G ) $.
    $( An "associative" property for group actions.  (Contributed by Jeff
       Hankins, 11-Aug-2009.)  (Revised by Mario Carneiro, 13-Jan-2015.) $)
    gaass $p |- ( ( .(+) e. ( G GrpAct Y ) /\ ( A e. X /\ B e. X /\ C e. Y ) )
      -> ( ( A .+ B ) .(+) C ) = ( A .(+) ( B .(+) C ) ) ) $=
      ( vy vz vx wcel co wceq cv wral wa oveq2 w3a cga wi c0g cfv cxp cgrp eqid
      wf cvv simprbi simprd simpr ralimi syl oveq2d eqeq12d oveq1 oveq1d rspc3v
      isga syl5 3coml impcom ) AGNZBGNZCHNZUAEFHUBONZABDOZCEOZABCEOZEOZPZVGVEVF
      VHVMUCVHKQZLQZDOZMQZEOZVNVOVQEOZEOZPZLGRKGRZMHRZVGVEVFUAVMVHFUDUEZVQEOVQP
      ZWBSZMHRZWCVHGHUFHEUIZWGVHFUGNHUJNSWHWGSMKLDEFGHWDIJWDUHVAUKULWFWBMHWEWBU
      MUNUOWAVMVPCEOZVNVOCEOZEOZPAVODOZCEOZAWJEOZPMKLCABHGGVQCPZVRWIVTWKVQCVPET
      WOVSWJVNEVQCVOETUPUQVNAPZWIWMWKWNWPVPWLCEVNAVODURUSVNAWJEURUQVOBPZWMVJWNV
      LWQWLVICEVOBADTUSWQWJVKAEVOBCEURUPUQUTVBVCVD $.
  $}

  ${
    $d x y z G $.
    $( The action of a group on the empty set.  (Contributed by Jeff Hankins,
       11-Aug-2009.)  (Revised by Mario Carneiro, 13-Jan-2015.) $)
    ga0 $p |- ( G e. Grp -> (/) e. ( G GrpAct (/) ) ) $=
      ( vx vy vz cgrp wcel c0 cvv wa cbs cfv cxp wf cv co wceq cplusg wral eqid
      c0g cga 0ex jctr f0 xp0 feq2i mpbir ral0 pm3.2i a1i isga sylanbrc ) AEFZU
      MGHFZIAJKZGLZGGMZATKZBNZGOUSPCNZDNZAQKZOUSGOUTVAUSGOGOPDUORCUORIZBGRZIZGA
      GUAOFUMUNUBUCVEUMUQVDUQGGGMGUDUPGGGUOUEUFUGVCBUHUIUJBCDVBGAUOGURUOSVBSURS
      UKUL $.
  $}

  ${
    $d x y z G $.  $d x y z S $.  $d x y z V $.  $d x y z X $.
    gaid.1 $e |- X = ( Base ` G ) $.
    $( The trivial action of a group on any set.  Each group element
       corresponds to the identity permutation.  (Contributed by Jeff Hankins,
       11-Aug-2009.)  (Proof shortened by Mario Carneiro, 13-Jan-2015.) $)
    gaid $p |- ( ( G e. Grp /\ S e. V ) ->
      ( 2nd |` ( X X. S ) ) e. ( G GrpAct S ) ) $=
      ( vx vy vz wcel wa c2nd cfv co wceq ovres cop df-ov op2nd eqtri syl6eq wf
      cgrp cvv cxp cres c0g cv cplusg wral elex anim2i eqid grpidcl adantr fvex
      cga vex sylan simprl simplr syl2anc simprr oveq2d simpll grpcl 3expb ovex
      3eqtr4rd ralrimivva jca ralrimiva f2ndres jctil isga sylanbrc ) BUBIZACIZ
      JZVPAUCIZJDAUDZAKVTUEZUAZBUFLZFUGZWAMZWDNZGUGZHUGZBUHLZMZWDWAMZWGWHWDWAMZ
      WAMZNZHDUIGDUIZJZFAUIZJWABAUPMIVQVSVPACUJUKVRWQWBVRWPFAVRWDAIZJZWFWOVRWCD
      IZWRWFVPWTVQDBWCEWCULZUMUNWTWRJWEWCWDKMZWDWCWDDAKOXBWCWDPKLWDWCWDKQWCWDBU
      FUOFUQZRSTURWSWNGHDDWSWGDIZWHDIZJZJZWGWDWAMZWDWMWKXGXDWRXHWDNWSXDXEUSVRWR
      XFUTZXDWRJXHWGWDKMZWDWGWDDAKOXJWGWDPKLWDWGWDKQWGWDGUQXCRSTVAXGWLWDWGWAXGX
      EWRWLWDNWSXDXEVBXIXEWRJWLWHWDKMZWDWHWDDAKOXKWHWDPKLWDWHWDKQWHWDHUQXCRSTVA
      VCXGWJDIZWRWKWDNWSVPXFXLVPVQWRVDVPXDXEXLDWIBWGWHEWIULZVEVFURXIXLWRJWKWJWD
      KMZWDWJWDDAKOXNWJWDPKLWDWJWDKQWJWDWGWHWIVGXCRSTVAVHVIVJVKDAVLVMFGHWIWABDA
      WCEXMXAVNVO $.
  $}

  ${
    $d u v w F $.  $d u v w x y G $.  $d u v w x y X $.  $d u v w x y Y $.
    $d u v w H $.  $d x y .+ $.
    subgga.1 $e |- X = ( Base ` G ) $.
    subgga.2 $e |- .+ = ( +g ` G ) $.
    subgga.3 $e |- H = ( G |`s Y ) $.
    subgga.4 $e |- F = ( x e. Y , y e. X |-> ( x .+ y ) ) $.
    $( A subgroup acts on its parent group.  (Contributed by Jeff Hankins,
       13-Aug-2009.)  (Proof shortened by Mario Carneiro, 13-Jan-2015.) $)
    subgga $p |- ( Y e. ( SubGrp ` G ) -> F e. ( H GrpAct X ) ) $=
      ( vv vw cfv wcel wa co wceq wral vu csubg cgrp cvv cbs cxp c0g cplusg cga
      wf subggrp fvex eqeltri jctir subgrcl adantr subgss sselda adantrr simprr
      cv grpcl syl3anc ralrimivva fmpt2 sylib subgbas xpeq1d feq2d eqid subg0cl
      mpbid oveq12 ovex ovmpt2a sylan oveq1d grplid 3eqtr3d ad2antrr wss simprl
      subg0 sseldd simplr grpass syl13anc syl2anc eqtr4d subgcl adantlr 3eqtr4d
      3expb oveq2d ressplusg oveqd eqeq1d raleqbidv biimpa syldan jca ralrimiva
      isga sylanbrc ) HEUBOZPZFUCPZGUDPZQFUEOZGUFZGDUJZFUGOZUAVAZDRZXMSZMVAZNVA
      ZFUHOZRZXMDRZXPXQXMDRZDRZSZNXITZMXITZQZUAGTZQDFGUIRPXFXGXHHEFKUKGEUEOUDIE
      UEULUMUNXFXKYGXFHGUFZGDUJZXKXFAVAZBVAZCRZGPZBGTAHTYIXFYMABHGXFYJHPZYKGPZQ
      ZQEUCPZYJGPZYOYMXFYQYPHEUOZUPXFYNYRYOXFHGYJGHEIUQZURUSXFYNYOUTGCEYJYKIJVB
      VCVDABHGYLGDLVEVFXFYHXJGDXFHXIGHEFKVGZVHVIVLXFYFUAGXFXMGPZQZXOYEUUCEUGOZX
      MDRZUUDXMCRZXNXMXFUUDHPUUBUUEUUFSHEUUDUUDVJZVKABUUDXMHGYLUUFDYJUUDYKXMCVM
      LUUDXMCVNVOVPXFUUEXNSUUBXFUUDXLXMDHEFUUDKUUGWCVQUPXFYQUUBUUFXMSYSGCEXMUUD
      IJUUGVRVPVSXFUUBXPXQCRZXMDRZYBSZNHTZMHTZYEUUCUUJMNHHUUCXPHPZXQHPZQZQZUUHX
      MCRZXPXQXMCRZDRZUUIYBUUPUUQXPUURCRZUUSUUPYQXPGPXQGPZUUBUUQUUTSXFYQUUBUUOY
      SVTZUUPHGXPXFHGWAUUBUUOYTVTZUUCUUMUUNWBZWDUUPHGXQUVCUUCUUMUUNUTZWDZXFUUBU
      UOWEZGCEXPXQXMIJWFWGUUPUUMUURGPZUUSUUTSUVDUUPYQUVAUUBUVHUVBUVFUVGGCEXQXMI
      JVBVCABXPUURHGYLUUTDYJXPYKUURCVMLXPUURCVNVOWHWIUUPUUHHPZUUBUUIUUQSXFUUOUV
      IUUBXFUUMUUNUVICHEXPXQJWJWMWKUVGABUUHXMHGYLUUQDYJUUHYKXMCVMLUUHXMCVNVOWHU
      UPYAUURXPDUUPUUNUUBYAUURSUVEUVGABXQXMHGYLUURDYJXQYKXMCVMLXQXMCVNVOWHWNWLV
      DXFUULYEXFUUKYDMHXIUUAXFUUJYCNHXIUUAXFUUIXTYBXFUUHXSXMDXFCXRXPXQHCEFXEKJW
      OWPVQWQWRWRWSWTXAXBXAUAMNXRDFXIGXLXIVJXRVJXLVJXCXD $.
  $}

  ${
    $d u v x y z G $.  $d u v x y z X $.  $d u v x y z Y $.  $d u v x y z Z $.
    $d u v x y z .(+) $.
    gass.1 $e |- X = ( Base ` G ) $.
    $( A subset of a group action is a group action iff it is closed under the
       group action operation.  (Contributed by Mario Carneiro,
       17-Jan-2015.) $)
    gass $p |- ( ( .(+) e. ( G GrpAct Y ) /\ Z C_ Y ) ->
      ( ( .(+) |` ( X X. Z ) ) e. ( G GrpAct Z ) <->
        A. x e. X A. y e. Z ( x .(+) y ) e. Z ) ) $=
      ( vz vu vv co wcel wa cv wral wceq ovres ad2antrr syl2anc cga cres adantl
      wss cxp wf gaf fovrnda eqeltrrd ralrimivva cvv c0g cfv cplusg gagrp gaset
      cgrp adantr simpr ssexd jca wfn ffn simplr xpss2 fnssres ralbidva ralbiia
      syl eleq1d sylibr ffnov sylanbrc eqid grpidcl sylan sselda simpll gagrpid
      syldan eqtrd simprl simprr gaass syl13anc simpllr ovrspc2v syl21anc grpcl
      eqtr4d syl3anc oveq2d 3eqtr4d ralrimiva isga impbida ) CDFUALMZGFUDZNZCEG
      UEZUBZDGUALMZAOZBOZCLZGMZBGPZAEPZWSXBNZXFABEGXIXCEMZXDGMNZNXCXDXALZXEGXKX
      LXEQXIXCXDEGCRZUCXIXCXDGEGXAXBWTGXAUFZWSXADEGHUGUCUHUIUJWSXHNZDUQMZGUKMZN
      XNDULUMZIOZXALZXSQZJOZKOZDUNUMZLZXSXALZYBYCXSXALZXALZQZKEPJEPZNZIGPZNXBXO
      XPXQWQXPWRXHCDFUOSZWSXQXHWSGFUKWQFUKMWRCDFUPURWQWRUSUTURVAXOXNYLXOXAWTVBZ
      XLGMZBGPZAEPZXNXOCEFUEZVBZWTYRUDZYNXOYRFCUFZYSWQUUAWRXHCDEFHUGSYRFCVCVIXO
      WRYTWQWRXHVDZGFEVEVIYRWTCVFTXOXHYQWSXHUSYPXGAEXJYOXFBGXKXLXEGXMVJVGVHVKAB
      EGGXAVLVMXOYKIGXOXSGMZNZYAYJUUDXTXRXSCLZXSXOXREMZUUCXTUUEQXOXPUUFYMEDXRHX
      RVNZVOVIXRXSEGCRVPXOUUCXSFMZUUEXSQZXOGFXSUUBVQZXOWQUUHUUIWQWRXHVRZXSCDFXR
      UUGVSVPVTWAUUDYIJKEEUUDYBEMZYCEMZNZNZYEXSCLZYBYCXSCLZXALZYFYHUUOUUPYBUUQC
      LZUURUUOWQUULUUMUUHUUPUUSQXOWQUUCUUNUUKSUUDUULUUMWBZUUDUULUUMWCZUUDUUHUUN
      UUJURYBYCXSYDCDEFHYDVNZWDWEUUOUULUUQGMZUURUUSQUUTUUOUUMUUCXHUVCUVAXOUUCUU
      NVDZWSXHUUCUUNWFABEGGCYCXSWGWHYBUUQEGCRTWJUUOYEEMZUUCYFUUPQUUOXPUULUUMUVE
      XOXPUUCUUNYMSUUTUVAEYDDYBYCHUVBWIWKUVDYEXSEGCRTUUOYGUUQYBXAUUOUUMUUCYGUUQ
      QUVAUVDYCXSEGCRTWLWMUJVAWNVAIJKYDXADEGXRHUVBUUGWOVMWP $.
  $}

  ${
    $d x y z G $.  $d x y z H $.  $d x y z S $.  $d x y z Y $.
    $d x y z .(+) $.
    gasubg.1 $e |- H = ( G |`s S ) $.
    $( The restriction of a group action to a subgroup is a group action.
       (Contributed by Mario Carneiro, 17-Jan-2015.) $)
    gasubg $p |- ( ( .(+) e. ( G GrpAct Y ) /\ S e. ( SubGrp ` G ) ) ->
      ( .(+) |` ( S X. Y ) ) e. ( H GrpAct Y ) ) $=
      ( vx vy vz co wcel cfv wa cxp wceq eqid adantr syl ovres syl2anc cga cgrp
      csubg cvv cbs cres wf c0g cv cplusg wral gaset subggrp anim12ci gaf simpr
      wss subgss xpss1 fssresd subgbas xpeq1d feq2d mpbid subg0cl subg0 gagrpid
      oveq1d adantlr 3eqtr3d sselda simprl ad2antrr simprr sseldd fovrnd oveq2d
      eqimss2 anim12dan ad3antlr simplll gaass syl13anc 3eqtr4d 3expb ressplusg
      subgcl sylan oveqd 3eqtr2rd syldan ralrimivva jca ralrimiva isga sylanbrc
      ) ACEUAJKZBCUCLZKZMZDUBKZEUDKZMDUELZENZEABENZUFZUGZDUHLZGUIZXFJZXIOZHUIZI
      UIZDUJLZJZXIXFJZXLXMXIXFJZXFJZOZIXCUKHXCUKZMZGEUKZMXFDEUAJKWQXBWSXAACEULB
      CDFUMUNWTXGYBWTXEEXFUGXGWTCUELZENZEXEAWQYDEAUGZWSACYCEYCPZUOQZWTBYCUQZXEY
      DUQWTWSYHWQWSUPZYCBCYFURZRBYCEUSRUTWTXEXDEXFWTBXCEWTWSBXCOZYIBCDFVARZVBVC
      VDWTYAGEWTXIEKZMZXKXTYNCUHLZXIXFJZYOXIAJZXJXIYNYOBKZYMYPYQOYNWSYRWTWSYMYI
      QZBCYOYOPZVERWTYMUPZYOXIBEASTYNYOXHXIXFYNWSYOXHOYSBCDYOFYTVFRVHWQYMYQXIOW
      SXIACEYOYTVGVIVJYNXSHIXCXCYNXLXCKZXMXCKZMXLBKZXMBKZMZXSYNUUBUUDUUCUUEYNXC
      BXLWTXCBUQZYMWTYKUUGYLXCBVRRQZVKYNXCBXMUUHVKVSYNUUFMZXRXLXMCUJLZJZXIAJZUU
      KXIXFJZXPUUIXLXMXIAJZXFJZXLUUNAJZXRUULUUIUUDUUNEKUUOUUPOYNUUDUUEVLZUUIXMX
      IEYCEAWTYEYMUUFYGVMUUIBYCXMWSYHWQYMUUFYJVTZYNUUDUUEVNZVOZYNYMUUFUUAQZVPXL
      UUNBEASTUUIXQUUNXLXFUUIUUEYMXQUUNOUUSUVAXMXIBEASTVQUUIWQXLYCKXMYCKYMUULUU
      POWQWSYMUUFWAUUIBYCXLUURUUQVOUUTUVAXLXMXIUUJACYCEYFUUJPZWBWCWDUUIUUKBKZYM
      UUMUULOYNWSUUFUVCYSWSUUDUUEUVCUUJBCXLXMUVBWGWEWHUVAUUKXIBEASTUUIUUKXOXIXF
      UUIUUJXNXLXMWSUUJXNOWQYMUUFBUUJCDWRFUVBWFVTWIVHWJWKWLWMWNWMGHIXNXFDXCEXHX
      CPXNPXHPWOWP $.
  $}

  ${
    $d x y G $.  $d x y .+ $.  $d x y X $.
    gaid2.1 $e |- X = ( Base ` G ) $.
    gaid2.2 $e |- .+ = ( +g ` G ) $.
    gaid2.3 $e |- F = ( x e. X , y e. X |-> ( x .+ y ) ) $.
    $( A group operation is a left group action of the group on itself.
       (Contributed by FL, 17-May-2010.)  (Revised by Mario Carneiro,
       13-Jan-2015.) $)
    gaid2 $p |- ( G e. Grp -> F e. ( G GrpAct X ) ) $=
      ( cgrp wcel cress co cga csubg cfv subgid eqid subgga syl ressid eleqtrd
      oveq1d ) EJKZDEFLMZFNMZEFNMUDFEOPKDUFKFEGQABCDEUEFFGHUERISTUDUEEFNFEJGUAU
      CUB $.
  $}

  ${
    galcan.1 $e |- X = ( Base ` G ) $.
    $( The action of a particular group element is left-cancelable.
       (Contributed by FL, 17-May-2010.)  (Revised by Mario Carneiro,
       13-Jan-2015.) $)
    galcan $p |- ( ( .(+) e. ( G GrpAct Y ) /\
        ( A e. X /\ B e. Y /\ C e. Y ) ) ->
      ( ( A .(+) B ) = ( A .(+) C ) <-> B = C ) ) $=
      ( wcel wceq cfv oveq2 eqid syl2anc oveq1d gaass syl13anc gagrpid 3eqtr3d
      co cga w3a wa cminusg cplusg c0g cgrp simpl gagrp simpr1 grplinv grpinvcl
      syl simpr2 simpr3 eqeq12d syl5ib impbid1 ) DEGUATIZAFIZBGIZCGIZUBZUCZABDT
      ZACDTZJZBCJZVGAEUDKZKZVEDTZVJVFDTZJVDVHVEVFVJDLVDVKBVLCVDVJAEUEKZTZBDTZEU
      FKZBDTZVKBVDVNVPBDVDEUGIZUTVNVPJVDUSVRUSVCUHZDEGUIUMZUSUTVAVBUJZFVMEVIAVP
      HVMMZVPMZVIMZUKNZOVDUSVJFIZUTVAVOVKJVSVDVRUTWFVTWAFEVIAHWDULNZWAUSUTVAVBU
      NZVJABVMDEFGHWBPQVDUSVAVQBJVSWHBDEGVPWCRNSVDVNCDTZVPCDTZVLCVDVNVPCDWEOVDU
      SWFUTVBWIVLJVSWGWAUSUTVAVBUOZVJACVMDEFGHWBPQVDUSVBWJCJVSWKCDEGVPWCRNSUPUQ
      BCADLUR $.

    gacan.2 $e |- N = ( invg ` G ) $.
    $( Group inverses cancel in a group action.  (Contributed by Jeff Hankins,
       11-Aug-2009.)  (Revised by Mario Carneiro, 13-Jan-2015.) $)
    gacan $p |- ( ( .(+) e. ( G GrpAct Y ) /\ ( A e. X /\ B e. Y /\ C e. Y ) )
      -> ( ( A .(+) B ) = C <-> ( ( N ` A ) .(+) C ) = B ) ) $=
      ( cga co wcel w3a wceq cfv adantr eqid syl2anc syl13anc cplusg cgrp gagrp
      wa c0g simpr1 grprinv oveq1d simpl grpinvcl simpr3 gagrpid 3eqtr3d eqeq2d
      gaass wb simpr2 cxp wf gaf fovrnd galcan bitr3d eqcom syl6bb ) DEHKLMZAGM
      ZBHMZCHMZNZUDZABDLZCOZBAFPZCDLZOZVOBOVKVLAVODLZOZVMVPVKVQCVLVKAVNEUAPZLZC
      DLZEUEPZCDLZVQCVKVTWBCDVKEUBMZVGVTWBOVFWDVJDEHUCQZVFVGVHVIUFZGVSEFAWBIVSR
      ZWBRZJUGSUHVKVFVGVNGMZVIWAVQOVFVJUIZWFVKWDVGWIWEWFGEFAIJUJSZVFVGVHVIUKZAV
      NCVSDEGHIWGUOTVKVFVIWCCOWJWLCDEHWBWHULSUMUNVKVFVGVHVOHMVRVPUPWJWFVFVGVHVI
      UQVKVNCHGHDVFGHURHDUSVJDEGHIUTQWKWLVAABVODEGHIVBTVCBVOVDVE $.
  $}

  ${
    $d x y A $.  $d x y G $.  $d x y .(+) $.  $d x y X $.  $d x y Y $.
    gapm.1 $e |- X = ( Base ` G ) $.
    gapm.2 $e |- F = ( x e. Y |-> ( A .(+) x ) ) $.
    $( The action of a particular group element is a permutation of the base
       set.  (Contributed by Jeff Hankins, 11-Aug-2009.)  (Proof shortened by
       Mario Carneiro, 13-Jan-2015.) $)
    gapm $p |- ( ( .(+) e. ( G GrpAct Y ) /\ A e. X ) ->
      F : Y -1-1-onto-> Y ) $=
      ( vy co wcel wa cv cfv ad2antrr simplr simpr fovrnd wceq cga cminusg cgrp
      cxp wf gagrp eqid grpinvcl syl2anc wb simpll simprl simprr gacan syl13anc
      gaf bicomd eqcom 3bitr4g f1o2d ) CEGUAKLZBFLZMZAJGGBANZCKZBEUBOZOZJNZCKZD
      IVCVDGLZMBVDGFGCVAFGUDGCUEZVBVJCEFGHUPZPVAVBVJQVCVJRSVCVHGLZMZVGVHGFGCVAV
      KVBVMVLPVNEUCLZVBVGFLVAVOVBVMCEGUFPVAVBVMQFEVFBHVFUGZUHUIVCVMRSVCVJVMMZMZ
      VIVDTZVEVHTZVDVITVHVETVRVTVSVRVAVBVJVMVTVSUJVAVBVQUKVAVBVQQVCVJVMULVCVJVM
      UMBVDVHCEVFFGHVPUNUOUQVDVIURVHVEURUSUT $.
  $}

  ${
    $d g h x y A $.  $d g h x y B $.  $d f h k u v w G $.  $d f h k u v w .~ $.
    $d f g h k u v w x y .(+) $.  $d f g h k x y X $.  $d f h k u v w x y Y $.
    gaorb.1 $e |- .~ = { <. x , y >. |
      ( { x , y } C_ Y /\ E. g e. X ( g .(+) x ) = y ) } $.
    $( The orbit equivalence relation puts two points in the group action in
       the same equivalence class iff there is a group element that takes one
       element to the other.  (Contributed by Mario Carneiro, 14-Jan-2015.) $)
    gaorb $p |- ( A .~ B <->
      ( A e. Y /\ B e. Y /\ E. h e. X ( h .(+) A ) = B ) ) $=
      ( wbr wcel wa cv co wceq wrex copab vex w3a wb oveq2 eqeq12 sylan rexbidv
      eqeq1d cbvrexv syl6bb cpr prss anbi1i opabbii eqtr4i brab2a df-3an bitr4i
      oveq1 wss ) CDFLCJMZDJMZNHOZCEPZDQZHIRZNUTVAVEUAGOZAOZEPZBOZQZGIRZVEABCDJ
      JFVGCQZVIDQZNZVKVFCEPZDQZGIRVEVNVJVPGIVLVHVOQVMVJVPUBVGCVFEUCVHVOVIDUDUEU
      FVPVDGHIVFVBQVOVCDVFVBCEURUGUHUIFVGVIUJJUSZVKNZABSVGJMVIJMNZVKNZABSKVTVRA
      BVSVQVKVGVIJATBTUKULUMUNUOUTVAVEUPUQ $.

    gaorber.2 $e |- X = ( Base ` G ) $.
    $( The orbit equivalence relation is an equivalence relation on the target
       set of the group action.  (Contributed by NM, 11-Aug-2009.)  (Revised by
       Mario Carneiro, 13-Jan-2015.) $)
    gaorber $p |- ( .(+) e. ( G GrpAct Y ) -> .~ Er Y ) $=
      ( vk vh co wcel cv wceq wrex wa wbr gaorb vu vv cga wrel cpr wss relopabi
      vw vf a1i w3a simpr sylib simp2d simp1d simp3d cminusg cfv wb simpll eqid
      adantr gacan syl13anc wi cgrp gagrp grpinvcl sylan oveq1 eqeq1d rspcev ex
      syl sylbid rexlimdva mpd syl3anbrc adantrr simprr reeanv ad2antrr simprlr
      cplusg simprll grpcl syl3anc gaass simprrl oveq2d simprrr expr rexlimdvva
      3eqtrd syl2anc syl5bir mp2and c0g grpidcl gagrpid pm4.71rd df-3an anbi2ci
      anidm bitri syl6bbr iserd ) CFHUCMNZUAUBUHHDDUDXHAOZBOZUEHUFEOXICMXJPEGQR
      ABDIUGUJXHUAOZUBOZDSZRZXLHNZXKHNZKOZXLCMZXKPZKGQZXLXKDSXNXPXOLOZXKCMZXLPZ
      LGQZXNXMXPXOYDUKXHXMULABXKXLCDELGHITUMZUNZXNXPXOYDYEUOZXNYDXTXNXPXOYDYEUP
      ZXNYCXTLGXNYAGNZRZYCYAFUQURZURZXLCMZXKPZXTYJXHYIXPXOYCYNUSXHXMYIUTXNYIULX
      NXPYIYGVBXNXOYIYFVBYAXKXLCFYKGHJYKVAZVCVDYJYLGNZYNXTVEXNFVFNZYIYPXHYQXMCF
      HVGZVBGFYKYAJYOVHVIYPYNXTXSYNKYLGXQYLPXRYMXKXQYLXLCVJVKVLVMVNVOVPVQABXLXK
      CDEKGHITVRXHXMXLUHOZDSZRZRZXPYSHNZUIOZXKCMZYSPZUIGQZXKYSDSXHXMXPYTYGVSZUU
      BXOUUCXRYSPZKGQZUUBYTXOUUCUUJUKXHXMYTVTABXLYSCDEKGHITUMZUNUUBYDUUJUUGXHXM
      YDYTYHVSUUBXOUUCUUJUUKUPYDUUJRYCUUIRZKGQLGQUUBUUGYCUUILKGGWAUUBUULUUGLKGG
      UUBYIXQGNZRZUULUUGUUBUUNUULRZRZXQYAFWDURZMZGNZUURXKCMZYSPZUUGUUPYQUUMYIUU
      SXHYQUUAUUOYRWBUUBYIUUMUULWCZUUBYIUUMUULWEZGUUQFXQYAJUUQVAZWFWGUUPUUTXQYB
      CMZXRYSUUPXHUUMYIXPUUTUVEPXHUUAUUOUTUVBUVCUUBXPUUOUUHVBXQYAXKUUQCFGHJUVDW
      HVDUUPYBXLXQCUUBUUNYCUUIWIWJUUBUUNYCUUIWKWNUUFUVAUIUURGUUDUURPUUEUUTYSUUD
      UURXKCVJVKVLWOWLWMWPWQABXKYSCDEUIGHITVRXHXPXPXPYBXKPZLGQZUKZXKXKDSXHXPUVG
      XPRZUVHXHXPUVGXHXPUVGXHXPRZFWRURZGNZUVKXKCMZXKPZUVGUVJYQUVLXHYQXPYRVBGFUV
      KJUVKVAZWSVNXKCFHUVKUVOWTUVFUVNLUVKGYAUVKPYBUVMXKYAUVKXKCVJVKVLWOVMXAUVHX
      PXPRZUVGRUVIXPXPUVGXBUVPXPUVGXPXDXCXEXFABXKXKCDELGHITXFXG $.
  $}

  ${
    $d a b g h k w x y z .~ $.  $d a b g h k u w x y z .(+) $.  $d x y H $.
    $d a b g h k u w x y z A $.  $d a b g h k u w x y z G $.  $d g k u x B $.
    $d a b g h k u w x y z X $.  $d a b h w z F $.  $d a h k w z O $.
    $d a b g h k w x y z Y $.  $d u C $.
    gasta.1 $e |- X = ( Base ` G ) $.
    gasta.2 $e |- H = { u e. X | ( u .(+) A ) = A } $.
    $( The stabilizer subgroup in a group action.  (Contributed by Mario
       Carneiro, 15-Jan-2015.) $)
    gastacl $p |- ( ( .(+) e. ( G GrpAct Y ) /\ A e. Y ) ->
      H e. ( SubGrp ` G ) ) $=
      ( vx vy co wcel wa cfv wceq syl oveq1 eqeq1d elrab2 cga wss c0 wne cplusg
      csubg cv wral cminusg crab ssrab2 eqsstri a1i c0g cgrp gagrp eqid grpidcl
      adantr gagrpid ne0i simpll simpr sylib simpld adantrr simprr grpcl simplr
      sylanbrc syl3anc syl13anc simprd oveq2d 3eqtrd anassrs ralrimiva grpinvcl
      gaass syl2anc wb gacan mpbid jca w3a issubg2 mpbir3and ) CDGUALMZBGMZNZED
      UFOMZEFUBZEUCUDZJUGZKUGZDUEOZLZEMZKEUHZWNDUIOZOZEMZNZJEUHZWLWJEAUGZBCLZBP
      ZAFUJFIXGAFUKULUMWJDUNOZEMZWMWJXHFMZXHBCLZBPZXIWJDUOMZXJWHXMWICDGUPZUSZFD
      XHHXHUQZURQBCDGXHXPUTXGXLAXHFEXEXHPXFXKBXEXHBCRSITVJEXHVAQWJXCJEWJWNEMZNZ
      WSXBXRWRKEWJXQWOEMZWRWJXQXSNZNZWQFMZWQBCLZBPZWRYAXMWNFMZWOFMZYBYAWHXMWHWI
      XTVBZXNQWJXQYEXSXRYEWNBCLZBPZXRXQYEYINWJXQVCXGYIAWNFEXEWNPXFYHBXEWNBCRSIT
      VDZVEZVFZYAYFWOBCLZBPZYAXSYFYNNWJXQXSVGXGYNAWOFEXEWOPXFYMBXEWOBCRSITVDZVE
      ZFWPDWNWOHWPUQZVHVKYAYCWNYMCLZYHBYAWHYEYFWIYCYRPYGYLYPWHWIXTVIWNWOBWPCDFG
      HYQVSVLYAYMBWNCYAYFYNYOVMVNWJXQYIXSXRYEYIYJVMZVFVOXGYDAWQFEXEWQPXFYCBXEWQ
      BCRSITVJVPVQXRXAFMZXABCLZBPZXBXRXMYEYTXRWHXMWHWIXQVBZXNQYKFDWTWNHWTUQZVRV
      TXRYIUUBYSXRWHYEWIWIYIUUBWAUUCYKWHWIXQVIZUUEWNBBCDWTFGHUUDWBVLWCXGUUBAXAF
      EXEXAPXFUUABXEXABCRSITVJWDVQWJXMWKWLWMXDWEWAXOJKFWPEDWTHYQUUDWFQWG $.

    orbsta.r $e |- .~ = ( G ~QG H ) $.
    $( Write the coset relation for the stabilizer subgroup.  (Contributed by
       Mario Carneiro, 15-Jan-2015.) $)
    gastacos $p |- ( ( ( .(+) e. ( G GrpAct Y ) /\ A e. Y ) /\
      ( B e. X /\ C e. X ) ) -> ( B .~ C <-> ( B .(+) A ) = ( C .(+) A ) ) ) $=
      ( co wcel wa cfv wceq wb syl cga wbr cminusg cplusg w3a wss csubg gastacl
      cgrp adantr subgrcl subgss eqid eqgval syl2anc df-3an syl6bb simpr simpll
      biantrurd simprl grpinvcl simprr simplr gaass syl13anc eqeq1d grpcl oveq1
      syl3anc cv elrab2 baib cxp wf gaf fovrnd gacan 3bitr4d 3bitr2d ) EGJUANOZ
      BJOZPZCIOZDIOZPZPZCDFUBZWFCGUCQZQZDGUDQZNZHOZPZWMCBENDBENZRZWGWHWDWEWMUEZ
      WNWGGUIOZHIUFZWHWQSWGHGUGQOZWRWCWTWFABEGHIJKLUHUJZHGUKTZWGWTWSXAIHGKULTCD
      WKFHGWIUIIKWIUMZWKUMZMUNUOWDWEWMUPUQWGWFWMWCWFURUTWGWLBENZBRZWJWOENZBRZWM
      WPWGXEXGBWGWAWJIOZWEWBXEXGRWAWBWFUSZWGWRWDXIXBWCWDWEVAZIGWICKXCVBUOZWCWDW
      EVCZWAWBWFVDZWJDBWKEGIJKXDVEVFVGWGWLIOZWMXFSWGWRXIWEXOXBXLXMIWKGWJDKXDVHV
      JWMXOXFAVKZBENZBRXFAWLIHXPWLRXQXEBXPWLBEVIVGLVLVMTWGWAWDWBWOJOWPXHSXJXKXN
      WGDBJIJEWGWAIJVNJEVOXJEGIJKVPTXMXNVQCBWOEGWIIJKXCVRVFVSVT $.

    orbsta.f $e |- F = ran ( k e. X |-> <. [ k ] .~ , ( k .(+) A ) >. ) $.
    $( Existence and uniqueness for the function of ~ orbsta .  (Contributed by
       Mario Carneiro, 15-Jan-2015.)  (Proof shortened by Mario Carneiro,
       23-Dec-2016.) $)
    orbstafun $p |- ( ( .(+) e. ( G GrpAct Y ) /\ A e. Y ) -> Fun F ) $=
      ( vh co wcel wa cvv cfv cga cv ovexd csubg wer gastacl eqger syl cbs fvex
      eqeltri a1i oveq1 wbr wceq simpr wb cminusg cplusg w3a wss subgrcl subgss
      cgrp eqid eqgval biimpa simp1d simp2d jca gastacos syldan mpbid qliftfund
      syl2anc ) CGJUAPQBJQRZEOEUBZBCPZOUBZBCPZDFISNVPVQIQZRVQBCUCVPHGUDTQZIDUEA
      BCGHIJKLUFZDGIHKMUGUHISQVPIGUITSKGUIUJUKULVQVSBCUMVPVQVSDUNZRZWDVRVTUOZVP
      WDUPVPWDWAVSIQZRWDWFUQWEWAWGWEWAWGVQGURTZTVSGUSTZPHQZVPWDWAWGWJUTZVPWBWDW
      KUQZWCWBGVDQHIVAWLHGVBIHGKVCVQVSWIDHGWHVDIKWHVEWIVEMVFVOUHVGZVHWEWAWGWJWM
      VIVJABVQVSCDGHIJKLMVKVLVMVN $.

    $( Value of the function at a given equivalence class element.
       (Contributed by Mario Carneiro, 15-Jan-2015.)  (Proof shortened by Mario
       Carneiro, 23-Dec-2016.) $)
    orbstaval $p |- ( ( ( .(+) e. ( G GrpAct Y ) /\ A e. Y ) /\
      B e. X ) -> ( F ` [ B ] .~ ) = ( B .(+) A ) ) $=
      ( co wcel wa cvv cfv cga cv ovexd csubg wer gastacl eqger syl cbs eqeltri
      fvex a1i oveq1 orbstafun qliftval ) DHKUAPQBKQRZFFUBZBDPCBDPCEGJSOUPUQJQR
      UQBDUCUPIHUDTQJEUEABDHIJKLMUFEHJILNUGUHJSQUPJHUITSLHUIUKUJULUQCBDUMABDEFG
      HIJKLMNOUNUO $.

    orbsta.o $e |- O = { <. x , y >. |
      ( { x , y } C_ Y /\ E. g e. X ( g .(+) x ) = y ) } $.
    $( The Orbit-Stabilizer theorem.  The mapping ` F ` is a bijection from the
       cosets of the stabilizer subgroup of ` A ` to the orbit of ` A ` .
       (Contributed by Mario Carneiro, 15-Jan-2015.) $)
    orbsta $p |- ( ( .(+) e. ( G GrpAct Y ) /\ A e. Y ) ->
      F : ( X /. .~ ) -1-1-onto-> [ A ] O ) $=
      ( wceq va vb vh vz vw cga co wcel wa cqs cec wf1 wfo wf1o wf cv wral wfun
      cfv wi orbstafun wbr wrex simpr adantr cxp gaf fovrnd oveq1 eqeq1d rspcev
      eqid sylancl gaorb syl3anbrc cvv wb ovex elecg sylancr mpbird wer gastacl
      csubg eqger syl cbs fvex eqeltri qliftf mpbid fveq2 eqeq1 imbi12d ralbidv
      a1i eqeq2d orbstaval adantrr adantrl eqeq12d gastacos simprl erth 3bitr2d
      eqeq2 biimpd anassrs ectocld ralrimiva dff13 w3a vex syl6bb biimpa simp3d
      sylanbrc ecelqsi adantl eqcomd syl2anc rexbidv syl5ibcom rexlimdva syldan
      cqg imp dffo3 df-f1o ) EJNUFUGUHZDNUHZUIZMFUJZDLUKZIULZYMYNIUMZYMYNIUNYLY
      MYNIUOZUAUPZIUSZUBUPZIUSZTZYRYTTZUTZUBYMUQZUAYMUQYOYLIURYQCDEFHIJKMNOPQRV
      AYLHHUPZDEUGZFIMYNRYLUUFMUHZUIZUUGYNUHZDUUGLVBZUUIYKUUGNUHUCUPZDEUGZUUGTZ
      UCMVCZUUKYLYKUUHYJYKVDZVEZUUIUUFDNMNEYLMNVFNEUOZUUHYJUURYKEJMNOVGVEVEYLUU
      HVDZUUQVHUUIUUHUUGUUGTZUUOUUSUUGVLUUNUUTUCUUFMUULUUFTUUMUUGUUGUULUUFDEVIV
      JVKVMABDUUGELGUCMNSVNVOUUIUUGVPUHYKUUJUUKVQUUFDEVRUUQUUGDLVPNVSVTWAYLKJWD
      USUHMFWBZCDEJKMNOPWCFJMKOQWEWFZMVPUHYLMJWGUSVPOJWGWHWIWPWJWKZYLUUEUAYMUDU
      PZFUKZIUSZUUATZUVEYTTZUTZUBYMUQUUEYLUDYRMFYMYMVLZUVEYRTZUVIUUDUBYMUVKUVGU
      UBUVHUUCUVKUVFYSUUAUVEYRIWLVJUVEYRYTWMWNWOYLUVDMUHZUIZUVIUBYMUVFUEUPZFUKZ
      IUSZTZUVEUVOTZUTZUVIUVMUEYTMFYMUVJUVOYTTZUVQUVGUVRUVHUVTUVPUUAUVFUVOYTIWL
      WQUVOYTUVEXFWNYLUVLUVNMUHZUVSYLUVLUWAUIZUIZUVQUVRUWCUVQUVDDEUGZUVNDEUGZTU
      VDUVNFVBUVRUWCUVFUWDUVPUWEYLUVLUVFUWDTUWACDUVDEFHIJKMNOPQRWRWSYLUWAUVPUWE
      TUVLCDUVNEFHIJKMNOPQRWRZWTXACDUVDUVNEFJKMNOPQXBUWCUVDUVNFMYLUVAUWBUVBVEYL
      UVLUWAXCXDXEXGXHXIXJXIXJUAUBYMYNIXKXQYLYQUULUVDIUSZTZUDYMVCZUCYNUQYPUVCYL
      UWIUCYNYLUULYNUHZUWEUULTZUEMVCZUWIYLUWJUIYKUULNUHZUWLYLUWJYKUWMUWLXLZYLUW
      JDUULLVBZUWNYLUULVPUHYKUWJUWOVQUCXMUUPUULDLVPNVSVTABDUULELGUEMNSVNXNXOXPY
      LUWLUWIYLUWKUWIUEMYLUWAUIZUWEUWGTZUDYMVCZUWKUWIUWPUVOYMUHZUWEUVPTZUWRUWAU
      WSYLMUVNFFJKYFUGVPQJKYFVRWIXRXSUWPUVPUWEUWFXTUWQUWTUDUVOYMUVDUVOTUWGUVPUW
      EUVDUVOIWLWQVKYAUWKUWQUWHUDYMUWEUULUWGWMYBYCYDYGYEXJUDUCYMYNIYHXQYMYNIYIX
      Q $.
  $}

  ${
    $d g k u x y .(+) $.  $d g k u x y A $.  $d g k u x y G $.  $d g k x y Y $.
    $d g k x y .~ $.  $d x y H $.  $d k O $.  $d g k u x y X $.
    orbsta2.x $e |- X = ( Base ` G ) $.
    orbsta2.h $e |- H = { u e. X | ( u .(+) A ) = A } $.
    orbsta2.r $e |- .~ = ( G ~QG H ) $.
    orbsta2.o $e |- O = { <. x , y >. |
      ( { x , y } C_ Y /\ E. g e. X ( g .(+) x ) = y ) } $.
    $( Relation between the size of the orbit and the size of the stabilizer of
       a point in a finite group action.  (Contributed by Mario Carneiro,
       16-Jan-2015.) $)
    orbsta2 $p |- ( ( ( .(+) e. ( G GrpAct Y ) /\ A e. Y ) /\
      X e. Fin ) -> ( # ` X ) = ( ( # ` [ A ] O ) x. ( # ` H ) ) ) $=
      ( co wcel cfn cfv vk cga wa chash cqs cmul cec csubg gastacl adantr simpr
      lagsubg2 wceq cen wbr cop cmpt crn wf1o eqid orbsta cbs fvex eqeltri qsex
      cv cvv f1oen syl wb cpw wss pwfi sylib wer eqger qsss ssfi syl2anc ensymd
      enfii hashen mpbird oveq1d eqtrd ) EHLUBQRDLRUCZKSRZUCZKUDTKFUEZUDTZIUDTZ
      UFQDJUGZUDTZWKUFQWHFHKIMOWFIHUHTRZWGCDEHIKLMNUIUJZWFWGUKZULWHWJWMWKUFWHWJ
      WMUMZWIWLUNUOZWHWIWLUAKUAVFZFUGWSDEQUPUQURZUSZWRWFXAWGABCDEFGUAWTHIJKLMNO
      WTUTPVAUJWIWLWTKFKHVBTVGMHVBVCVDVEVHVIZWHWISRZWLSRZWQWRVJWHKVKZSRZWIXEVLX
      CWHWGXFWPKVMVNWHKFWHWNKFVOWOFHKIMOVPVIVQXEWIVRVSZWHXCWLWIUNUOXDXGWHWIWLXB
      VTWLWIWAVSWIWLWBVSWCWDWE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Centralizers and centers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Cntr $.
  $c Cntz $.

  $( Syntax for the centralizer of a set in a monoid. $)
  ccntz $a class Cntz $.

  $( Syntax for the centralizer of a monoid. $)
  ccntr $a class Cntr $.

  ${
    $d m s x y $.
    $( Define the _centralizer_ of a subset of a magma, which is the set of
       elements each of which commutes with each element of the given subset.
       (Contributed by Stefan O'Rear, 5-Sep-2015.) $)
    df-cntz $a |- Cntz = ( m e. _V |-> ( s e. ~P ( Base ` m ) |-> { x e.
      ( Base ` m ) | A. y e. s ( x ( +g ` m ) y ) = ( y ( +g ` m ) x ) } ) ) $.

    $( Define the _center_ of a magma, which is the elements that commute with
       all others.  (Contributed by Stefan O'Rear, 5-Sep-2015.) $)
    df-cntr $a |- Cntr = ( m e. _V |-> ( ( Cntz ` m ) ` ( Base ` m ) ) ) $.
  $}

  ${
    $d m B $.  $d m M $.  $d m Z $.
    cntrval.b $e |- B = ( Base ` M ) $.
    cntrval.z $e |- Z = ( Cntz ` M ) $.
    $( Substitute definition of the center.  (Contributed by Stefan O'Rear,
       5-Sep-2015.) $)
    cntrval $p |- ( Z ` B ) = ( Cntr ` M ) $=
      ( vm cvv wcel cfv ccntr wceq cv ccntz fveq2 syl6eqr fveq12d df-cntr fvprc
      cbs c0 fvex fvmpt eqcomd wn 0fv syl5eq fveq1d 3eqtr4a pm2.61i ) BGHZACIZB
      JIZKUJULUKFBFLZSIZUMMIZIUKGJUMBKZUNAUOCUPUOBMIZCUMBMNEOUPUNBSIAUMBSNDOPFQ
      ACUAUBUCUJUDZATITUKULAUEURACTURCUQTEBMRUFUGBJRUHUI $.
  $}

  ${
    $d m s x y .+ $.  $d x y A $.  $d m s x B $.  $d m s x y M $.  $d x y T $.
    $d s x y S $.  $d x y X $.  $d x y Y $.
    cntzfval.b $e |- B = ( Base ` M ) $.
    cntzfval.p $e |- .+ = ( +g ` M ) $.
    cntzfval.z $e |- Z = ( Cntz ` M ) $.
    $( First level substitution for a centralizer.  (Contributed by Stefan
       O'Rear, 5-Sep-2015.) $)
    cntzfval $p |- ( M e. V -> Z = ( s e. ~P B |->
            { x e. B | A. y e. s ( x .+ y ) = ( y .+ x ) } ) ) $=
      ( vm wcel cfv cv co wceq cvv cbs cplusg ccntz wral crab cmpt elex syl6eqr
      cpw fveq2 pweqd oveqd eqeq12d ralbidv rabeqbidv mpteq12dv df-cntz eqeltri
      fvex pwex mptex fvmpt syl syl5eq ) EFMZGEUANZHCUGZAOZBOZDPZVGVFDPZQZBHOZU
      BZACUCZUDZKVCERMVDVNQEFUELEHLOZSNZUGZVFVGVOTNZPZVGVFVRPZQZBVKUBZAVPUCZUDV
      NRUAVOEQZHVQWCVEVMWDVPCWDVPESNZCVOESUHIUFZUIWDWBVLAVPCWFWDWAVJBVKWDVSVHVT
      VIWDVRDVFVGWDVRETNDVOETUHJUFZUJWDVRDVGVFWGUJUKULUMUNABLHUOHVEVMCCWERIESUQ
      UPURUSUTVAVB $.

    $( Definition substitution for a centralizer.  (Contributed by Stefan
       O'Rear, 5-Sep-2015.) $)
    cntzval $p |- ( S C_ B -> ( Z ` S ) = { x e. B |
            A. y e. S ( x .+ y ) = ( y .+ x ) } ) $=
      ( vs cvv wcel wss cfv cv co wceq cbs c0 wral crab cpw cmpt fveq1d eqeltri
      cntzfval fvex elpw2 raleq rabbidv eqid rabex fvmpt sylbir sylan9eq wn 0fv
      ccntz fvprc syl5eq ssrab2 syl5sseq ss0 syl 3eqtr4a adantr pm2.61ian ) FLM
      ZECNZEGOZAPZBPZDQVMVLDQRZBEUAZACUBZRZVIVJVKEKCUCZVNBKPZUAZACUBZUDZOZVPVIE
      GWBABCDFLGKHIJUGUEVJEVRMWCVPRECCFSOZLHFSUHUFZUIKEWAVPVRWBVSERVTVOACVNBVSE
      UJUKWBULVOACWEUMUNUOUPVIUQZVQVJWFETOTVKVPEURWFEGTWFGFUSOTJFUSUTVAUEWFVPTN
      VPTRWFCVPTVOACVBWFCWDTHFSUTVAVCVPVDVEVFVGVH $.

    $( Elementhood in the centralizer.  (Contributed by Mario Carneiro,
       22-Sep-2015.) $)
    elcntz $p |- ( S C_ B -> ( A e. ( Z ` S ) <-> ( A e. B /\
            A. y e. S ( A .+ y ) = ( y .+ A ) ) ) ) $=
      ( vx wss cfv wcel cv co wceq wral crab wa eleq2d oveq1 oveq2 elrab syl6bb
      cntzval eqeq12d ralbidv ) ECLZBEGMZNBKOZAOZDPZULUKDPZQZAERZKCSZNBCNBULDPZ
      ULBDPZQZAERZTUIUJUQBKACDEFGHIJUFUAUPVAKBCUKBQZUOUTAEVBUMURUNUSUKBULDUBUKB
      ULDUCUGUHUDUE $.

    $( Membership in a centralizer.  (Contributed by Stefan O'Rear,
       6-Sep-2015.) $)
    cntzel $p |- ( ( S C_ B /\ X e. B ) -> ( X e. ( Z ` S ) <->
          A. y e. S ( X .+ y ) = ( y .+ X ) ) ) $=
      ( wss cfv wcel cv co wceq wral elcntz baibd ) DBKFDGLMFBMFANZCOTFCOPADQAF
      BCDEGHIJRS $.

    $( Special substitution for the centralizer of a singleton.  (Contributed
       by Stefan O'Rear, 5-Sep-2015.) $)
    cntzsnval $p |- ( Y e. B -> ( Z ` { Y } ) =
          { x e. B | ( x .+ Y ) = ( Y .+ x ) } ) $=
      ( vy wcel csn cfv cv co wceq wral crab wss snssi cntzval syl oveq2 ralsng
      oveq1 eqeq12d rabbidv eqtrd ) EBKZELZFMZANZJNZCOZUMULCOZPZJUJQZABRZULECOZ
      EULCOZPZABRUIUJBSUKURPEBTAJBCUJDFGHIUAUBUIUQVAABUPVAJEBUMEPUNUSUOUTUMEULC
      UCUMEULCUEUFUDUGUH $.

    $( Value of the centralizer of a singleton.  (Contributed by Mario
       Carneiro, 25-Apr-2016.) $)
    elcntzsn $p |- ( Y e. B -> ( X e. ( Z ` { Y } ) <->
      ( X e. B /\ ( X .+ Y ) = ( Y .+ X ) ) ) ) $=
      ( vx wcel csn cfv cv co wceq crab wa cntzsnval eleq2d oveq1 oveq2 eqeq12d
      elrab syl6bb ) EAKZDELFMZKDJNZEBOZEUHBOZPZJAQZKDAKDEBOZEDBOZPZRUFUGULDJAB
      CEFGHISTUKUOJDAUHDPUIUMUJUNUHDEBUAUHDEBUBUCUDUE $.

    $( A centralizer expression for two sets elementwise commuting.
       (Contributed by Stefan O'Rear, 5-Sep-2015.) $)
    sscntz $p |- ( ( S C_ B /\ T C_ B ) -> ( S C_ ( Z ` T ) <->
          A. x e. S A. y e. T ( x .+ y ) = ( y .+ x ) ) ) $=
      ( wss cfv cv co wceq wral wa crab cntzval sseq2d ssrab syl6bb ibar bicomd
      sylan9bbr ) FCLZEFHMZLZECLZANZBNZDOULUKDOPBFQZAEQZRZUJUNUGUIEUMACSZLUOUGU
      HUPEABCDFGHIJKTUAUMACEUBUCUJUNUOUJUNUDUEUF $.
  $}

  ${
    $d x y z M $.  $d x y B $.  $d x y S $.  $d x Z $.  $d y X $.
    cntzrcl.b $e |- B = ( Base ` M ) $.
    cntzrcl.z $e |- Z = ( Cntz ` M ) $.
    $( Reverse closure for elements of the centralizer.  (Contributed by Stefan
       O'Rear, 6-Sep-2015.) $)
    cntzrcl $p |- ( X e. ( Z ` S ) -> ( M e. _V /\ S C_ B ) ) $=
      ( vx vy vz cfv wcel cvv c0 ccntz cdm cv co wceq eqid wn noel fvprc syl5eq
      wss fveq1d 0fv syl6eq eleq2d mtbiri con4i cpw wral crab cmpt cntzfval syl
      cplusg dmeqd dmmptss syl6eqss elfvdm sseldd elpwid jca ) DBEKZLZCMLZBAUEV
      HVGVHUAZVGDNLDUBVIVFNDVIVFBNKNVIBENVIECOKNGCOUCUDUFBUGUHUIUJUKZVGBAVGEPZA
      ULZBVGVKHVLIQZJQZCURKZRVNVMVORSJHQUMIAUNZUOZPVLVGEVQVGVHEVQSVJIJAVOCMEHFV
      OTGUPUQUSHVLVPVQVQTUTVADBEVBVCVDVE $.

    $( The centralizer is unconditionally a subset.  (Contributed by Stefan
       O'Rear, 6-Sep-2015.) $)
    cntzssv $p |- ( Z ` S ) C_ B $=
      ( vx vy cfv wss c0 wceq 0ss sseq1 mpbiri wne cv wcel wex co n0 cplusg cvv
      wral crab cntzrcl simprd eqid cntzval syl ssrab2 syl6eqss sylbi pm2.61ine
      exlimiv ) BDIZAJZUPKUPKLUQKAJAMUPKANOUPKPGQZUPRZGSUQGUPUAUSUQGUSUPURHQZCU
      BIZTUTURVATLHBUDZGAUEZAUSBAJZUPVCLUSCUCRVDABCURDEFUFUGGHAVABCDEVAUHFUIUJV
      BGAUKULUOUMUN $.
  $}

  ${
    $d y M $.  $d y .+ $.  $d y S $.  $d y X $.  $d y Y $.
    cntzi.p $e |- .+ = ( +g ` M ) $.
    cntzi.z $e |- Z = ( Cntz ` M ) $.
    $( Membership in a centralizer (inference).  (Contributed by Stefan O'Rear,
       6-Sep-2015.)  (Revised by Mario Carneiro, 22-Sep-2015.) $)
    cntzi $p |- ( ( X e. ( Z ` S ) /\ Y e. S ) -> ( X .+ Y ) = ( Y .+ X ) ) $=
      ( vy cfv wcel cv co wceq wral cbs wss wa wb cvv cntzrcl simprd elcntz syl
      eqid simplbda anidms oveq2 oveq1 eqeq12d rspccva sylan ) DBFJKZDILZAMZUND
      AMZNZIBOZEBKDEAMZEDAMZNZUMURUMUMDCPJZKZURUMBVBQZUMVCURRSUMCTKVDVBBCDFVBUE
      ZHUAUBIDVBABCFVEGHUCUDUFUGUQVAIEBUNENUOUSUPUTUNEDAUHUNEDAUIUJUKUL $.
  $}

  ${
    cntri.b $e |- B = ( Base ` M ) $.
    cntri.p $e |- .+ = ( +g ` M ) $.
    cntri.z $e |- Z = ( Cntr ` M ) $.
    $( Defining property of the center of a group.  (Contributed by Mario
       Carneiro, 22-Sep-2015.) $)
    cntri $p |- ( ( X e. Z /\ Y e. B ) -> ( X .+ Y ) = ( Y .+ X ) ) $=
      ( wcel ccntz cfv co wceq ccntr eqid cntrval eqtr4i eleq2i cntzi sylanb )
      DFJDACKLZLZJEAJDEBMEDBMNFUCDFCOLUCIACUBGUBPZQRSBACDEUBHUDTUA $.
  $}

  ${
    $d x y A $.  $d y G $.  $d y H $.  $d x y S $.  $d x y V $.  $d x Y $.
    $d x Z $.
    resscntz.p $e |- H = ( G |`s A ) $.
    resscntz.z $e |- Z = ( Cntz ` G ) $.
    resscntz.y $e |- Y = ( Cntz ` H ) $.
    $( Centralizer in a substructure.  (Contributed by Mario Carneiro,
       3-Oct-2015.) $)
    resscntz $p |- ( ( A e. V /\ S C_ A ) ->
      ( Y ` S ) = ( ( Z ` S ) i^i A ) ) $=
      ( vx vy wcel wss wa cfv cin eqid wb co cbs cv wi cntzrcl simprd ressbasss
      cvv syl6ss a1i inss1 sseli syl cplusg wceq wral anass elin ressbas eleq2d
      syl5bbr ressplusg eqeq12d ralbidv anbi12d ad2antrr syl5rbbr sseq2d syl5bb
      oveqd ssin biimpd impl elcntz ancom bitri adantl anbi2d 3bitr4d pm5.21ndd
      ex eqrdv ) AEMZBANZOZKBFPZBGPZAQZWDBCUAPZNZKUBZWEMZWJWGMZWKWIUCWDWKBDUAPZ
      WHWKDUGMBWMNZWMBDWJFWMRZJUDUEAWHDCHWHRZUFUHUIWLWIUCWDWLWJWFMZWIWGWFWJWFAU
      JUKWQCUGMWIWHBCWJGWPIUDUEULUIWDWIWKWLSWDWIOZWJWMMZWJLUBZDUMPZTZWTWJXATZUN
      ZLBUOZOZWJAMZWJWHMZWJWTCUMPZTZWTWJXITZUNZLBUOZOZOZWKWLXOXGXHOZXMOZWRXFXGX
      HXMUPWBXQXFSWCWIWBXPWSXMXEXPWJAWHQZMWBWSWJAWHUQWBXRWMWJAWHDECHWPURZUSUTWB
      XLXDLBWBXJXBXKXCWBXIXAWJWTAXICDEHXIRZVAZVIWBXIXAWTWJYAVIVBVCVDVEVFWRWNWKX
      FSWBWCWIWNWBWCWIOZWNYBBXRNWBWNBAWHVJWBXRWMBXSVGVHVKVLLWJWMXABDFWOXARJVMUL
      WLXGWQOZWRXOWLWQXGOYCWJWFAUQWQXGVNVOWRWQXNXGWIWQXNSWDLWJWHXIBCGWPXTIVMVPV
      QVHVRVTVSWA $.
  $}

  ${
    $d x y z B $.  $d x y z M $.  $d x y z S $.  $d x y T $.  $d x y z Z $.
    cntzrec.b $e |- B = ( Base ` M ) $.
    cntzrec.z $e |- Z = ( Cntz ` M ) $.
    $( Centralizers reverse the subset relation.  (Contributed by Mario
       Carneiro, 3-Oct-2015.) $)
    cntz2ss $p |- ( ( S C_ B /\ T C_ S ) -> ( Z ` S ) C_ ( Z ` T ) ) $=
      ( vx vy wss wa cfv cv cplusg co wceq wral wcel eqid cntzi ssralv ralrimiv
      ralrimiva wi adantl syl5 wb cntzssv sstr ancoms sscntz sylancr mpbird ) B
      AJZCBJZKZBELZCELJZHMZIMZDNLZOUTUSVAOPZICQZHUQQZUPVCHUQUSUQRZVBIBQZUPVCVEV
      BIBVABDUSUTEVASZGTUCUOVFVCUDUNVBICBUAUEUFUBUPUQAJCAJZURVDUGABDEFGUHUOUNVH
      CBAUIUJHIAVAUQCDEFVGGUKULUM $.

    $( Reciprocity relationship for centralizers.  (Contributed by Stefan
       O'Rear, 5-Sep-2015.) $)
    cntzrec $p |- ( ( S C_ B /\ T C_ B ) ->
        ( S C_ ( Z ` T ) <-> T C_ ( Z ` S ) ) ) $=
      ( vx vy wss wa cv cplusg cfv co wceq wral wb ralcom sscntz eqcom a1i eqid
      2ralbii bitri ancoms 3bitr4d ) BAJZCAJZKZHLZILZDMNZOZULUKUMOZPZICQHBQZUOU
      NPZHBQICQZBCENJCBENJZUQUSRUJUQUPHBQICQUSUPHIBCSUPURIHCBUNUOUAUDUEUBHIAUMB
      CDEFUMUCZGTUIUHUTUSRIHAUMCBDEFVAGTUFUG $.

    $( Express any centralizer as an intersection of singleton centralizers.
       (Contributed by Stefan O'Rear, 5-Sep-2015.) $)
    cntziinsn $p |- ( S C_ B -> ( Z ` S ) =
          ( B i^i |^|_ x e. S ( Z ` { x } ) ) ) $=
      ( vy wss cfv cv cplusg co wceq wral crab csn ciin cin wcel eqid cntzsnval
      cntzval wa ssel2 syl iineq2dv ineq2d riinrab syl6eq eqtr4d ) CBIZCEJHKZAK
      ZDLJZMUNUMUOMNZACOHBPZBACUNQEJZRZSZHABUOCDEFUOUAZGUCULUTBACUPHBPZRZSUQULU
      SVCBULACURVBULUNCTUDUNBTURVBNCBUNUEHBUODUNEFVAGUBUFUGUHUPAHBCUIUJUK $.

    $( Centralizers in a monoid are submonoids.  (Contributed by Stefan O'Rear,
       6-Sep-2015.)  (Revised by Mario Carneiro, 19-Apr-2016.) $)
    cntzsubm $p |- ( ( M e. Mnd /\ S C_ B ) -> ( Z ` S ) e. ( SubMnd ` M ) ) $=
      ( vy vz vx wcel wa cfv cv co wral wceq adantr wb mndass syl13anc cmnd wss
      csubmnd c0g cplusg cntzssv a1i mndidcl simpll simpr sselda mndlid syl2anc
      eqid mndrid eqtr4d ralrimiva elcntz adantl mpbir2and simprl sseldi simprr
      mndcl syl3anc adantlr cntzi sylan oveq2d oveq1d 3eqtr2d 3eqtrd ralrimivva
      ad2antlr w3a issubm mpbir3and ) CUAJZBAUBZKZBDLZCUCLJZWAAUBZCUDLZWAJZGMZH
      MZCUELZNZWAJZHWAOGWAOZWCVTABCDEFUFZUGVTWEWDAJZWDIMZWHNZWNWDWHNZPZIBOZVRWM
      VSACWDEWDUNZUHQVTWQIBVTWNBJZKZWOWNWPXAVRWNAJZWOWNPVRVSWTUIZVTBAWNVRVSUJUK
      ZAWHCWNWDEWHUNZWSULUMXAVRXBWPWNPXCXDAWHCWNWDEXEWSUOUMUPUQVSWEWMWRKRVRIWDA
      WHBCDEXEFURUSUTVTWJGHWAWAVTWFWAJZWGWAJZKZKZWJWIAJZWIWNWHNZWNWIWHNZPZIBOZX
      IVRWFAJZWGAJZXJVRVSXHUIZXIWAAWFWLVTXFXGVAZVBZXIWAAWGWLVTXFXGVCZVBZAWHCWFW
      GEXEVDVEXIXMIBXIWTKZXKWFWGWNWHNZWHNZWNWFWHNZWGWHNZXLYBVRXOXPXBXKYDPXIVRWT
      XQQZXIXOWTXSQZXIXPWTYAQZVTWTXBXHXDVFZAWHCWFWGWNEXESTYBYDWFWNWGWHNZWHNZWFW
      NWHNZWGWHNZYFYBYCYKWFWHXIXGWTYCYKPXTWHBCWGWNDXEFVGVHVIYBVRXOXBXPYNYLPYGYH
      YJYIAWHCWFWNWGEXESTYBYMYEWGWHXIXFWTYMYEPXRWHBCWFWNDXEFVGVHVJVKYBVRXBXOXPY
      FXLPYGYJYHYIAWHCWNWFWGEXESTVLUQVSWJXJXNKRVRXHIWIAWHBCDEXEFURVNUTVMVRWBWCW
      EWKVORVSGHAWHWACWDEWSXEVPQVQ $.

    $( Centralizers in a group are subgroups.  (Contributed by Stefan O'Rear,
       6-Sep-2015.) $)
    cntzsubg $p |- ( ( M e. Grp /\ S C_ B ) -> ( Z ` S ) e. ( SubGrp ` M ) ) $=
      ( vx vy wcel wa cfv wceq eqid syl2anc grpcl grpass syl13anc oveq2d eqtr4d
      co cgrp wss csubg csubmnd cminusg wral cmnd grpmnd cntzsubm cplusg simpll
      sylan cntzssv simprl sseldi grpinvcl ssel2 ad2ant2l syl3anc adantl oveq1d
      cv cntzi grprinv grprid eqtrd grplinv grplid 3eqtr3d anassrs ralrimiva wb
      c0g simplr simpr cntzel mpbird issubg3 adantr mpbir2and ) CUAIZBAUBZJZBDK
      ZCUCKIZWDCUDKIZGVBZCUEKZKZWDIZGWDUFZWACUGIWBWFCUHABCDEFUIULWCWJGWDWCWGWDI
      ZJZWJWIHVBZCUJKZTZWNWIWOTZLZHBUFZWMWRHBWCWLWNBIZWRWCWLWTJZJZWPWGWIWOTZWOT
      ZWIWGWOTZWQWOTZWPWQXBXDWIWGWNWOTZWIWOTZWOTZXFXBXDWIWNWGWOTZWIWOTZWOTZXIXB
      XDWIWNXCWOTZWOTZXLXBWAWIAIZWNAIZXCAIZXDXNLWAWBXAUKZXBWAWGAIZXOXRXBWDAWGAB
      CDEFUMZWCWLWTUNUOZACWHWGEWHMZUPZNZWBWTXPWAWLBAWNUQURZXBWAXSXOXQXRYAYDAWOC
      WGWIEWOMZOUSAWOCWIWNXCEYFPQXBXKXMWIWOXBWAXPXSXOXKXMLXRYEYAYDAWOCWNWGWIEYF
      PQRSXBXHXKWIWOXBXGXJWIWOXAXGXJLWCWOBCWGWNDYFFVCUTVARSXBXFWIWGWQWOTZWOTZXI
      XBWAXOXSWQAIZXFYHLXRYDYAXBWAXPXOYIXRYEYDAWOCWNWIEYFOUSZAWOCWIWGWQEYFPQXBX
      HYGWIWOXBWAXSXPXOXHYGLXRYAYEYDAWOCWGWNWIEYFPQRSSXBXDWPCVMKZWOTZWPXBXCYKWP
      WOXBWAXSXCYKLXRYAAWOCWHWGYKEYFYKMZYBVDNRXBWAWPAIZYLWPLXRXBWAXOXPYNXRYDYEA
      WOCWIWNEYFOUSAWOCWPYKEYFYMVENVFXBXFYKWQWOTZWQXBXEYKWQWOXBWAXSXEYKLXRYAAWO
      CWHWGYKEYFYMYBVGNVAXBWAYIYOWQLXRYJAWOCWQYKEYFYMVHNVFVIVJVKWMWBXOWJWSVLWAW
      BWLVNWMWAXSXOWAWBWLUKWMWDAWGXTWCWLVOUOYCNHAWOBCWIDEYFFVPNVQVKWAWEWFWKJVLW
      BGWDCWHYBVRVSVT $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y G $.  $d x y H $.  $d x y S $.  $d x T $.
    $d x Y $.  $d x Z $.
    cntzmhm.z $e |- Z = ( Cntz ` G ) $.
    $( If the elements of ` S ` commute, the elements of a subset ` T ` also
       commute.  (Contributed by Mario Carneiro, 25-Apr-2016.) $)
    cntzidss $p |- ( ( S C_ ( Z ` S ) /\ T C_ S ) -> T C_ ( Z ` T ) ) $=
      ( cfv wss wa simpr simpl cbs eqid cntzssv syl6ss cntz2ss sylancom sstrd )
      AADFZGZBAGZHZBABDFZSTIUAARUBSTJZSTACKFZGRUBGUAARUDUCUDACDUDLZEMNUDABCDUEE
      OPQQ $.

    cntzmhm.y $e |- Y = ( Cntz ` H ) $.
    $( Centralizers in a monoid are preserved by monoid homomorphisms.
       (Contributed by Mario Carneiro, 24-Apr-2016.) $)
    cntzmhm $p |- ( ( F e. ( G MndHom H ) /\ A e. ( Z ` S ) ) ->
      ( F ` A ) e. ( Y ` ( F " S ) ) ) $=
      ( vy vx co wcel cfv wa cbs wceq eqid wss syl cmhm cima cv wral wf cntzssv
      cplusg mhmf sseli ffvelrn syl2an cntzi adantll fveq2d simpll ad2antlr cvv
      cntzrcl adantl simprd sselda mhmlin syl3anc ralrimiva wfn wb adantr oveq2
      3eqtr3d ffn oveq1 eqeq12d ralima syl2anc mpbird crn imassrn syl5ss elcntz
      frn mpbir2and ) CDEUALMZABGNZMZOZACNZCBUBZFNMZWFEPNZMZWFJUCZEUGNZLZWKWFWL
      LZQZJWGUDZWBDPNZWICUEZAWQMZWJWDWQWIDECWQRZWIRZUHZWCWQAWQBDGWTHUFUIZWQWIAC
      UJUKWEWPWFKUCZCNZWLLZXEWFWLLZQZKBUDZWEXHKBWEXDBMZOZAXDDUGNZLZCNZXDAXLLZCN
      ZXFXGXKXMXOCWDXJXMXOQWBXLBDAXDGXLRZHULUMUNXKWBWSXDWQMZXNXFQWBWDXJUOZWDWSW
      BXJXCUPZWEBWQXDWEDUQMZBWQSZWDYAYBOWBWQBDAGWTHURUSUTZVAZWQXLWLDECAXDWTXQWL
      RZVBVCXKWBXRWSXPXGQXSYDXTWQXLWLDECXDAWTXQYEVBVCVIVDWECWQVEZYBWPXIVFWEWRYF
      WBWRWDXBVGZWQWICVJTYCWOXHJKWQBCWKXEQWMXFWNXGWKXEWFWLVHWKXEWFWLVKVLVMVNVOW
      EWGWISWHWJWPOVFWEWGCVPZWICBVQWEWRYHWISYGWQWICVTTVRJWFWIWLWGEFXAYEIVSTWA
      $.

    $( Centralizers in a monoid are preserved by monoid homomorphisms.
       (Contributed by Mario Carneiro, 24-Apr-2016.) $)
    cntzmhm2 $p |- ( ( F e. ( G MndHom H ) /\ S C_ ( Z ` T ) ) ->
      ( F " S ) C_ ( Y ` ( F " T ) ) ) $=
      ( vx cmhm co wcel cfv wss cima wral cbs eqid syl cntzmhm ralrimiva ssralv
      wa cv mpan9 wfun cdm wb wf mhmf adantr ffun simpr cntzssv syl6ss wceq fdm
      sseqtr4d funimass4 syl2anc mpbird ) CDEKLMZABGNZOZUDZCAPCBPFNZOZJUEZCNVGM
      ZJAQZVCVJJVDQVEVKVCVJJVDVIBCDEFGHIUAUBVJJAVDUCUFVFCUGZACUHZOVHVKUIVFDRNZE
      RNZCUJZVLVCVPVEVNVODECVNSZVOSUKULZVNVOCUMTVFAVNVMVFAVDVNVCVEUNVNBDGVQHUOU
      PVFVPVMVNUQVRVNVOCURTUSJAVGCUTVAVB $.
  $}

  ${
    $d x y M $.  $d x y X $.  $d x y Z $.
    cntrnsg.z $e |- Z = ( Cntr ` M ) $.
    $( A central subgroup is normal.  (Contributed by Stefan O'Rear,
       6-Sep-2015.) $)
    cntrsubgnsg $p |- ( ( X e. ( SubGrp ` M ) /\ X C_ Z ) ->
        X e. ( NrmSGrp ` M ) ) $=
      ( vx vy csubg cfv wcel wss wa cv cplusg co wral wceq sseldd eqid ad2antrr
      csg simpl ccntz simplr simprr ccntr cntrval eqtr4i syl6eleqr simprl cntzi
      cbs cnsg syl2anc oveq1d subgrcl subgss grppncan syl3anc eqtr3d ralrimivva
      cgrp eqeltrd isnsg3 sylanbrc ) BAGHIZBCJZKZVEELZFLZAMHZNZVHATHZNZBIZFBOEA
      UKHZOBAULHIVEVFUAVGVNEFVOBVGVHVOIZVIBIZKZKZVMVIBVSVIVHVJNZVHVLNZVMVIVSVTV
      KVHVLVSVIVOAUBHZHZIVPVTVKPVSVICWCVSBCVIVEVFVRUCVGVPVQUDZQWCAUEHCVOAWBVORZ
      WBRZUFDUGUHVGVPVQUIZVJVOAVIVHWBVJRZWFUJUMUNVSAVAIZVIVOIVPWAVIPVEWIVFVRBAU
      OSVSBVOVIVEBVOJVFVRVOBAWEUPSWDQWGVOVJAVLVIVHWEWHVLRZUQURUSWDVBUTEFVJBAVLV
      OWEWHWJVCVD $.

    $( The center of a group is a normal subgroup.  (Contributed by Stefan
       O'Rear, 6-Sep-2015.) $)
    cntrnsg $p |- ( M e. Grp -> Z e. ( NrmSGrp ` M ) ) $=
      ( cgrp wcel csubg cfv wss cnsg cbs ccntz ccntr eqid cntrval ssid cntzsubg
      eqtr4i mpan2 syl5eqel cntrsubgnsg sylancl ) ADEZBAFGZEBBHBAIGEUBBAJGZAKGZ
      GZUCBALGUFCUDAUEUDMZUEMZNQUBUDUDHUFUCEUDOUDUDAUEUGUHPRSBOABBCTUA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The opposite group
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c oppG $. $( Opposite group $)

  $( The opposite group operation. $)
  coppg $a class oppG $.

  $( Define an opposite group, which is the same as the original group but with
     addition written the other way around. ~ df-oppr does the same thing for
     multiplication.  (Contributed by Stefan O'Rear, 25-Aug-2015.) $)
  df-oppg $a |- oppG = ( w e. _V |-> ( w sSet
    <. ( +g ` ndx ) , tpos ( +g ` w ) >. ) ) $.

  ${
    $d x R $.  $d x .+ $.  $d x X $.  $d x Y $.
    oppgval.2 $e |- .+ = ( +g ` R ) $.
    oppgval.3 $e |- O = ( oppG ` R ) $.
    $( Value of the opposite group.  (Contributed by Stefan O'Rear,
       25-Aug-2015.)  (Revised by Mario Carneiro, 16-Sep-2015.)  (Revised by
       Fan Zheng, 26-Jun-2016.) $)
    oppgval $p |- O = ( R sSet <. ( +g ` ndx ) , tpos .+ >. ) $=
      ( vx coppg cfv cnx cplusg ctpos cop csts co cvv wcel wceq cv id fveq2 wn
      syl6eqr tposeqd opeq2d oveq12d df-oppg ovex fvmpt reldmsets ovprc1 eqtr4d
      c0 fvprc pm2.61i eqtri ) CBGHZBIJHZAKZLZMNZEBOPZUPUTQFBFRZUQVBJHZKZLZMNUT
      OGVBBQZVBBVEUSMVFSVFVDURUQVFVCAVFVCBJHAVBBJTDUBUCUDUEFUFBUSMUGUHVAUAUPULU
      TBGUMBUSMUIUJUKUNUO $.

    oppgplusfval.4 $e |- .+b = ( +g ` O ) $.
    $( Value of the addition operation of an opposite group.  (Contributed by
       Stefan O'Rear, 26-Aug-2015.)  (Revised by Fan Zheng, 26-Jun-2016.) $)
    oppgplusfval $p |- .+b = tpos .+ $=
      ( cplusg cfv ctpos cvv wcel wceq cnx cop csts co plusgid c0 syl5eq tposex
      fvex eqeltri setsid mpan2 oppgval fveq2i syl6reqr wn tpos0 str0 reldmsets
      eqtr2i ovprc1 fveq2d fvprc tposeqd 3eqtr4a pm2.61i eqtri ) BDHIZAJZGCKLZV
      AVBMVCVBCNHIZVBOZPQZHIZVAVCVBKLVBVGMAACHIZKECHUBUCUAKVBHKCRUDUEDVFHACDEFU
      FZUGUHVCUIZSHIZSJZVAVBVLSVKUJHVDRUKUMVJDSHVJDVFSVICVEPULUNTUOVJASVJAVHSEC
      HUPTUQURUSUT $.

    $( Value of the addition operation of an opposite ring.  (Contributed by
       Stefan O'Rear, 26-Aug-2015.)  (Revised by Fan Zheng, 26-Jun-2016.) $)
    oppgplus $p |- ( X .+b Y ) = ( Y .+ X ) $=
      ( co ctpos oppgplusfval oveqi ovtpos eqtri ) EFBJEFAKZJFEAJBPEFABCDGHILME
      FANO $.
  $}

  ${
    $d x y z R $.  $d x y z O $.
    oppgbas.1 $e |- O = ( oppG ` R ) $.
    ${
      oppglem.2 $e |- E = Slot N $.
      oppglem.3 $e |- N e. NN $.
      oppglem.4 $e |- N =/= 2 $.
      $( Lemma for ~ oppgbas .  (Contributed by Stefan O'Rear, 26-Aug-2015.) $)
      oppglem $p |- ( E ` R ) = ( E ` O ) $=
        ( cfv cnx cplusg ctpos cop csts co ndxid wne c2 ndxarg plusgndx neeq12i
        mpbir setsnid eqid oppgval fveq2i eqtr4i ) ABIAJKIZAKIZLZMNOZBIDBIUJUHB
        ABCFGPJBIZUHQCRQHULCUHRBCFGSTUAUBUCDUKBUIADUIUDEUEUFUG $.
    $}

    ${
      oppgbas.2 $e |- B = ( Base ` R ) $.
      $( Base set of an opposite group.  (Contributed by Stefan O'Rear,
         26-Aug-2015.) $)
      oppgbas $p |- B = ( Base ` O ) $=
        ( cbs cfv c1 df-base 1nn 1ne2 oppglem eqtri ) ABFGCFGEBFHCDIJKLM $.
    $}

    ${
      oppgtset.2 $e |- J = ( TopSet ` R ) $.
      $( Topology of an opposite group.  (Contributed by Mario Carneiro,
         17-Sep-2015.) $)
      oppgtset $p |- J = ( TopSet ` O ) $=
        ( cts cfv c9 df-tset 9nn c2 2re 2lt9 gtneii oppglem eqtri ) BAFGCFGEAFH
        CDIJKHLMNOP $.
    $}

    ${
      oppgtopn.2 $e |- J = ( TopOpen ` R ) $.
      $( Topology of an opposite group.  (Contributed by Mario Carneiro,
         17-Sep-2015.) $)
      oppgtopn $p |- J = ( TopOpen ` O ) $=
        ( ctopn cfv cts cbs crest co eqid topnval oppgbas oppgtset 3eqtr2i ) BA
        FGAHGZAIGZJKCFGERQARLZQLZMRQCRACDSNAQCDTOMP $.
    $}

    $( The opposite of a monoid is a monoid.  (Contributed by Stefan O'Rear,
       26-Aug-2015.)  (Revised by Mario Carneiro, 16-Sep-2015.) $)
    oppgmnd $p |- ( R e. Mnd -> O e. Mnd ) $=
      ( vx vy vz cmnd wcel cbs cfv cplusg wceq eqid cv w3a co oppgplus wa eqtri
      syl5eq c0g oppgbas eqidd mndcl 3com23 syl5eqel simpl simpr3 simpr2 simpr1
      mndass syl13anc eqcomd oveq1i oveq2i 3eqtr4g mndidcl mndrid mndlid ismndd
      a1i ) AGHZDEFAIJZBKJZBAUAJZVCBIJLVBVCABCVCMZUBVAVBVDUCVBDNZVCHZENZVCHZOVG
      VIVDPZVIVGAKJZPZVCVLVDABVGVIVLMZCVDMZQZVBVJVHVMVCHVCVLAVIVGVFVNUDUEUFVBVH
      VJFNZVCHZOZRZVQVMVLPZVQVIVLPZVGVLPZVKVQVDPZVGVIVQVDPZVDPZVTWCWAVTVBVRVJVH
      WCWALVBVSUGVBVHVJVRUHVBVHVJVRUIVBVHVJVRUJVCVLAVQVIVGVFVNUKULUMWDVMVQVDPWA
      VKVMVQVDVPUNVLVDABVMVQVNCVOQSWFVGWBVDPWCWEWBVGVDVLVDABVIVQVNCVOQUOVLVDABV
      GWBVNCVOQSUPVCAVEVFVEMZUQVBVHRZVEVGVDPVGVEVLPVGVLVDABVEVGVNCVOQVCVLAVGVEV
      FVNWGURTWHVGVEVDPVEVGVLPVGVLVDABVGVEVNCVOQVCVLAVGVEVFVNWGUSTUT $.

    $( Bidirectional form of ~ oppgmnd .  (Contributed by Stefan O'Rear,
       26-Aug-2015.) $)
    oppgmndb $p |- ( R e. Mnd <-> O e. Mnd ) $=
      ( vx vy cmnd wcel oppgmnd cfv eqid wtru cbs wceq oppgbas a1i cv cplusg co
      wa oppgplus coppg wb eqidd eqtri mndpropd trud sylib impbii ) AFGZBFGZABC
      HUJBUAIZFGZUIBUKUKJZHULUIUBKDEALIZUKAUNUKLIMKUNBUKUMUNABCUNJNNOKUNUCDPZEP
      ZUKQIZRZUOUPAQIZRZMKUOUNGUPUNGSSURUPUOBQIZRUTVAUQBUKUOUPVAJZUMUQJTUSVAABU
      PUOUSJCVBTUDOUEUFUGUH $.

    $d x O $.  $d x R $.  $d x .0. $.  $d x I $.
    ${
      oppgid.2 $e |- .0. = ( 0g ` R ) $.
      $( Zero in a monoid is a symmetric notion.  (Contributed by Stefan
         O'Rear, 26-Aug-2015.)  (Revised by Mario Carneiro, 16-Sep-2015.) $)
      oppgid $p |- .0. = ( 0g ` O ) $=
        ( vx vy cv cbs cfv cplusg co wceq wa wral eqid oppgplus eqeq1i grpidval
        cio wcel c0g ancom anbi12i bitr4i ralbii anbi2i iotabii oppgbas 3eqtr4i
        ) FHZAIJZUAZUKGHZAKJZLZUNMZUNUKUOLZUNMZNZGULOZNZFTUMUKUNBKJZLZUNMZUNUKV
        CLZUNMZNZGULOZNZFTCBUBJZVBVJFVAVIUMUTVHGULUTUSUQNVHUQUSUCVEUSVGUQVDURUN
        UOVCABUKUNUOPZDVCPZQRVFUPUNUOVCABUNUKVLDVMQRUDUEUFUGUHGULUOFACULPZVLESG
        ULVCFBVKULABDVNUIVMVKPSUJ $.
    $}

    $( The opposite of a group is a group.  (Contributed by Stefan O'Rear,
       26-Aug-2015.) $)
    oppggrp $p |- ( R e. Grp -> O e. Grp ) $=
      ( vx cgrp wcel cbs cfv cplusg cv cminusg c0g wceq eqid oppgbas a1i oppgid
      eqidd cmnd co grpmnd oppgmnd syl grpinvcl oppgplus grprinv syl5eq isgrpd2
      wa ) AEFZDAGHZBIHZBDJZAKHZHZALHZUKBGHMUJUKABCUKNZOPUJULRUPBLHMUJABUPCUPNZ
      QPUJASFBSFAUAABCUBUCUKAUNUMUQUNNZUDUJUMUKFUIUOUMULTUMUOAIHZTUPUTULABUOUMU
      TNZCULNUEUKUTAUNUMUPUQVAURUSUFUGUH $.

    $( Bidirectional form of ~ oppggrp .  (Contributed by Stefan O'Rear,
       26-Aug-2015.) $)
    oppggrpb $p |- ( R e. Grp <-> O e. Grp ) $=
      ( vx vy cgrp wcel oppggrp cfv eqid wtru cbs wceq oppgbas a1i cv cplusg co
      wa oppgplus coppg wb eqidd eqtri grppropd trud sylib impbii ) AFGZBFGZABC
      HUJBUAIZFGZUIBUKUKJZHULUIUBKDEALIZUKAUNUKLIMKUNBUKUMUNABCUNJNNOKUNUCDPZEP
      ZUKQIZRZUOUPAQIZRZMKUOUNGUPUNGSSURUPUOBQIZRUTVAUQBUKUOUPVAJZUMUQJTUSVAABU
      PUOUSJCVBTUDOUEUFUGUH $.

    ${
      oppginv.2 $e |- I = ( invg ` R ) $.
      $( Inverses in a group are a symmetric notion.  (Contributed by Stefan
         O'Rear, 26-Aug-2015.) $)
      oppginv $p |- ( R e. Grp -> I = ( invg ` O ) ) $=
        ( vx cgrp wcel cminusg cfv cbs wf cv cplusg co c0g wceq wral eqid wa wb
        grpinvf oppgplus grprinv syl5eq ralrimiva oppggrp isgrpinv syl mpbi2and
        oppgbas oppgid eqcomd ) AGHZCIJZBUNAKJZUPBLZFMZBJZURCNJZOZAPJZQZFUPRZUO
        BQZUPABUPSZEUBUNVCFUPUNURUPHTVAURUSANJZOVBVGUTACUSURVGSZDUTSZUCUPVGABUR
        VBVFVHVBSZEUDUEUFUNCGHUQVDTVEUAACDUGFUPUTCBUOVBUPACDVFUKVIACVBDVJULUOSU
        HUIUJUM $.
    $}
  $}

  ${
    $d x y G $.  $d x y I $.  $d x y O $.
    invoppggim.o $e |- O = ( oppG ` G ) $.
    invoppggim.i $e |- I = ( invg ` G ) $.
    $( The inverse is an antiautomorphism on any group.  (Contributed by Stefan
       O'Rear, 26-Aug-2015.) $)
    invoppggim $p |- ( G e. Grp -> I e. ( G GrpIso O ) ) $=
      ( vx vy cgrp wcel cghm co cbs cfv wf1o cgim cplusg eqid oppgbas cv wa id
      oppggrp grpinvf wceq grpinvadd oppgplus syl6eqr isghmd grpinvf1o sylanbrc
      3expb isgim ) AHIZBACJKIALMZUNBNBACOKIUMFGAPMZCPMZACBUNUNUNQZUNACDUQRZUOQ
      ZUPQZUMUAZACDUBUNABUQEUCUMFSZUNIZGSZUNIZTTVBVDUOKBMZVDBMZVBBMZUOKZVHVGUPK
      UMVCVEVFVIUDUNUOABVBVDUQUSEUEUKUOUPACVHVGUSDUTUFUGUHUMUNABUQEVAUIUNUNACBU
      QURULUJ $.
  $}

  ${
    $d x y A $.  $d x y z G $.  $d x y z O $.  $d x Z $.
    oppggic.o $e |- O = ( oppG ` G ) $.
    $( Every group is (naturally) isomorphic to its opposite.  (Contributed by
       Stefan O'Rear, 26-Aug-2015.) $)
    oppggic $p |- ( G e. Grp -> G ~=g O ) $=
      ( cgrp wcel cminusg cfv cgim co cgic wbr eqid invoppggim brgici syl ) ADE
      AFGZABHIEABJKAPBCPLMABPNO $.

    $( Being a submonoid is a symmetric property.  (Contributed by Mario
       Carneiro, 17-Sep-2015.) $)
    oppgsubm $p |- ( SubMnd ` G ) = ( SubMnd ` O ) $=
      ( vx vy vz csubmnd cfv cv wcel cmnd submrcl oppgmndb cplusg wral w3a eqid
      co wb issubm sylibr cbs wss ralcom oppgplus eleq1i 2ralbii bitr4i 3anbi3i
      c0g a1i oppgbas oppgid sylbi 3bitr4d pm5.21nii eqriv ) DAGHZBGHZDIZURJZAK
      JZUTUSJZUTALVCBKJZVBUTBLABCMZUAVBUTAUBHZUCZAUJHZUTJZEIZFIZANHZRZUTJZFUTOE
      UTOZPZVGVIVKVJBNHZRZUTJZEUTOFUTOZPZVAVCVPWASVBVOVTVGVIVOVNEUTOFUTOVTVNEFU
      TUTUDVSVNFEUTUTVRVMUTVLVQABVKVJVLQZCVQQZUEUFUGUHUIUKEFVFVLUTAVHVFQZVHQZWB
      TVBVDVCWASVEFEVFVQUTBVHVFABCWDULABVHCWEUMWCTUNUOUPUQ $.

    $( Being a subgroup is a symmetric property.  (Contributed by Mario
       Carneiro, 17-Sep-2015.) $)
    oppgsubg $p |- ( SubGrp ` G ) = ( SubGrp ` O ) $=
      ( vx vy csubg cfv cv wcel cgrp subgrcl oppggrpb sylibr csubmnd cminusg wa
      wral wb eqid issubg3 oppgsubm eleq2i oppginv fveq1d ralbidv anbi12d sylbi
      a1i eleq1d 3bitr4d pm5.21nii eqriv ) DAFGZBFGZDHZUMIZAJIZUOUNIZUOAKURBJIZ
      UQUOBKABCLZMUQUOANGZIZEHZAOGZGZUOIZEUOQZPUOBNGZIZVCBOGZGZUOIZEUOQZPZUPURU
      QVBVIVGVMVBVIRUQVAVHUOABCUAUBUHUQVFVLEUOUQVEVKUOUQVCVDVJAVDBCVDSZUCUDUIUE
      UFEUOAVDVOTUQUSURVNRUTEUOBVJVJSTUGUJUKUL $.

    ${
      oppgcntz.z $e |- Z = ( Cntz ` G ) $.
      $( A centralizer in a group is the same as the centralizer in the
         opposite group.  (Contributed by Mario Carneiro, 21-Apr-2016.) $)
      oppgcntz $p |- ( Z ` A ) = ( ( Cntz ` O ) ` A ) $=
        ( vx vy cfv cv wcel cplusg co wceq wral wa eqid oppgplus anbi2i cvv cbs
        ccntz eqcom eqeq12i bitr4i ralbii cntzrcl simprd elcntz biadan2 oppgbas
        wss 3bitr4i eqriv ) GADIZACUBIZIZABUAIZULZGJZURKZUTHJZBLIZMZVBUTVCMZNZH
        AOZPZPUSVAUTVBCLIZMZVBUTVIMZNZHAOZPZPUTUOKZUTUQKZVHVNUSVGVMVAVFVLHAVFVE
        VDNVLVDVEUCVJVEVKVDVCVIBCUTVBVCQZEVIQZRVCVIBCVBUTVQEVRRUDUEUFSSVOUSVHVO
        BTKUSURABUTDURQZFUGUHHUTURVCABDVSVQFUIUJVPUSVNVPCTKUSURACUTUPURBCEVSUKZ
        UPQZUGUHHUTURVIACUPVTVRWAUIUJUMUN $.
    $}

    ${
      oppgcntr.z $e |- Z = ( Cntr ` G ) $.
      $( The center of a group is the same as the center of the opposite group.
         (Contributed by Mario Carneiro, 21-Apr-2016.) $)
      oppgcntr $p |- Z = ( Cntr ` O ) $=
        ( cbs cfv ccntz ccntr eqid oppgcntz cntrval eqtr4i oppgbas 3eqtr3i ) AF
        GZAHGZGZPBHGZGCBIGPABQDQJZKRAIGCPAQPJZTLEMPBSPABDUANSJLO $.
    $}
  $}

  ${
    $d x y z B $.  $d x y z M $.  $d x y z O $.  $d x W $.
    gsumwrev.b $e |- B = ( Base ` M ) $.
    gsumwrev.o $e |- O = ( oppG ` M ) $.
    $( A sum in an opposite monoid is the regular sum of a reversed word.
       (Contributed by Stefan O'Rear, 27-Aug-2015.)  (Proof shortened by Mario
       Carneiro, 28-Feb-2016.) $)
    gsumwrev $p |- ( ( M e. Mnd /\ W e. Word B ) ->
        ( O gsum W ) = ( M gsum ( reverse ` W ) ) ) $=
      ( wcel cgsu co creverse cfv wceq wi c0 cconcat oveq2 fveq2 oveq2d eqeq12d
      imbi2d vx vy vz cword cmnd cv cs1 rev0 syl6eq c0g oppgid gsum0 eqtr4i a1i
      eqid wa cplusg oppgmnd adantr simprl simprr s1cld oppgbas syl3anc gsumws1
      gsumccat ad2antll oppgplus eqtrd revccat syl2anc revs1 oveq1i simpl revcl
      ad2antrl oveq1d 3eqtrd syl5ibr expcom a2d wrdind impcom ) DAUDZGBUEGZCDHI
      ZBDJKZHIZLZWECUAUFZHIZBWJJKZHIZLZMWECNHIZBNHIZLZMWECUBUFZHIZBWRJKZHIZLZMW
      ECWRUCUFZUGZOIZHIZBXEJKZHIZLZMWEWIMUAUBUCDAWJNLZWNWQWEXJWKWOWMWPWJNCHPXJW
      LNBHXJWLNJKNWJNJQUHUIRSTWJWRLZWNXBWEXKWKWSWMXAWJWRCHPXKWLWTBHWJWRJQRSTWJX
      ELZWNXIWEXLWKXFWMXHWJXECHPXLWLXGBHWJXEJQRSTWJDLZWNWIWEXMWKWFWMWHWJDCHPXMW
      LWGBHWJDJQRSTWQWEWOBUJKZWPCXNBCXNFXNUOZUKULBXNXOULUMUNWRWDGZXCAGZUPZWEXBX
      IWEXRXBXIMXBXIWEXRUPZXCWSBUQKZIZXCXAXTIZLWSXAXCXTPXSXFYAXHYBXSXFWSCXDHIZC
      UQKZIZYAXSCUEGZXPXDWDGZXFYELWEYFXRBCFURUSWEXPXQUTZXSXCAWEXPXQVAVBZAYDCWRX
      DABCFEVCZYDUOZVFVDXSYEWSXCYDIYAXSYCXCWSYDXQYCXCLWEXPAXCCYJVEVGRXTYDBCWSXC
      XTUOZFYKVHUIVIXSXHBXDWTOIZHIZBXDHIZXAXTIZYBXSXGYMBHXSXGXDJKZWTOIZYMXSXPYG
      XGYRLYHYIAWRXDVJVKYQXDWTOXCVLVMUIRXSWEYGWTWDGZYNYPLWEXRVNYIXPYSWEXQAWRVOV
      PAXTBXDWTEYLVFVDXSYOXCXAXTXQYOXCLWEXPAXCBEVEVGVQVRSVSVTWAWBWC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Symmetric groups
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Definition and basic properties
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  <HTML>
  According to Wikipedia ("Symmetric group", 09-Mar-2019,
~ https://en.wikipedia.org/wiki/symmetric_group ) "In abstract algebra, the
symmetric group defined over any set is the group whose elements are all the
bijections from the set to itself, and whose group operation is the composition
of functions." and according to Encyclopedia of Mathematics ("Symmetric group",
09-Mar-2019, ~ https://www.encyclopediaofmath.org/index.php/Symmetric_group )
"The group of all permutations (self-bijections) of a set with the operation of
composition (see Permutation group).". In [Rotman] p. 27 "If X is a nonempty
set, a permutation of X is a function a : X -> X that is a one-to-one
correspondence." and "If X is a nonempty set, the symmetric group on X, denoted
S<sub>X</sub>, is the group whose elements are the permutations of X and whose
binary operation is composition of functions.". Therefore, we define the
<b>symmetric group</b> on a set ` A ` as the set of one-to-one onto functions
from ` A ` to itself under function composition, see ~ df-symg . However, the
set is allowed to be empty, see ~ symgbas0 . <i>Hint: The symmetric groups
should not be confused with "symmetry groups" which is a different topic in
group theory.</i>
<br><br>
In this context, the one-to-one onto functions are called <b>permutations</b>
for short. Since the base set of symmetric groups on a set ` A ` is the set of
all permutations of ` A ` (see ~ symgbas ), we can formally say
` P e. ( SymGrp `` A ) ` expressing "` P ` is a permutation of ` A `" if we are
not interested in the group (or topology) structure.
<br><br>
In general, a <b>permutation group</b> "... is a group G whose elements are
permutations of a given set M and whose group operation is the composition of
permutations in G (which are thought of as bijective functions from the set M
to itself)." (see Wikipedia "Permutation group", 17-Mar-2019,
~ https://en.wikipedia.org/wiki/Permutation_group ). This means that a
symmetric group is a permutation group, and each permutation group is a
subgroup of a symmetric group (see ~ pgrpsubgsymgbi and ~ pgrpsubgsymg ). For
example, the structure with the singleton containing only the identity function
restricted to a set as base set and the function composition as group
operation is a permutation group (group consisting of permutations), see
~ idrespermg , which is a (proper) subgroup of a symmetric group, see
~ idressubgsymg .
<br><br>
As in [Rotman] p. 28 "Let ` x e. X ` and ` p e. SymGrp ( X ) ` ; we say ` p `
<b>fixes</b> ` x ` if ` ( p `` x ) = x `; otherwise ` p ` <b>moves</b> ` x `.".
The theorems starting with ~ symgfix2 are about fixed/moved elements.
</HTML>

$)

  $c SymGrp $.

  $( Extend class notation to include the class of symmetric groups. $)
  csymg $a class SymGrp $.

  ${
    $d b f g h x $.
    $( Define the symmetric group on set ` x ` .  We represent the group as the
       set of one-to-one onto functions from ` x ` to itself under function
       composition, and topologize it as a function space assuming the set is
       discrete.  (Contributed by Paul Chapman, 25-Feb-2008.) $)
    df-symg $a |- SymGrp = ( x e. _V |-> [_ { h | h : x -1-1-onto-> x } / b ]_
      { <. ( Base ` ndx ) , b >. ,
        <. ( +g ` ndx ) , ( f e. b , g e. b |-> ( f o. g ) ) >. ,
        <. ( TopSet ` ndx ) , ( Xt_ ` ( x X. { ~P x } ) ) >. } ) $.
  $}

  ${
    $d a b f g x A $.  $d a b B $.  $d a b J $.  $d a b .+ $.
    symgval.1 $e |- G = ( SymGrp ` A ) $.
    symgval.2 $e |- B = { x | x : A -1-1-onto-> A } $.
    symgval.3 $e |- .+ = ( f e. B , g e. B |-> ( f o. g ) ) $.
    symgval.4 $e |- J = ( Xt_ ` ( A X. { ~P A } ) ) $.
    $( The value of the symmetric group function at ` A ` .  (Contributed by
       Paul Chapman, 25-Feb-2008.)  (Revised by Mario Carneiro,
       12-Jan-2015.) $)
    symgval $p |- ( A e. V -> G = { <. ( Base ` ndx ) , B >. ,
        <. ( +g ` ndx ) , .+ >. , <. ( TopSet ` ndx ) , J >. } ) $=
      ( va vb wcel cfv cop cvv cv csymg cnx cbs cts ctp wceq elex wf1o cab ccom
      cplusg cmpt2 cpw csn cxp cpt csb cmap co ovex f1of vex elmap sylibr abssi
      wf ssexi a1i wa id wb f1oeq23 anidms abbidv syl6eqr sylan9eqr mpt2eq123dv
      opeq2d eqidd simpl pweqd sneqd xpeq12d fveq2d tpeq123d df-symg tpex fvmpt
      csbied syl syl5eq ) BIPZGBUAQZUBUCQZCRZUBUKQZDRZUBUDQZHRZUEZJWLBSPWMWTUFB
      IUGNBONTZXAATZUHZAUIZWNOTZRZWPEFXEXEETFTUJZULZRZWRXAXAUMZUNZUOZUPQZRZUEZU
      QWTSUAXABUFZOXDXOWTSXDSPXPXDXAXAURUSZXAXAURUTXCAXQXCXAXAXBVFXBXQPXAXAXBVA
      XAXAXBNVBZXRVCVDVEVGVHXPXEXDUFZVIZXFWOXIWQXNWSXTXECWNXSXPXEXDCXSVJXPXDBBX
      BUHZAUICXPXCYAAXPXCYAVKXABXABXBVLVMVNKVOVPZVRXTXHDWPXTXHEFCCXGULDXTEFXEXE
      XGCCXGYBYBXTXGVSVQLVOVRXTXMHWRXTXMBBUMZUNZUOZUPQHXTXLYEUPXTXABXKYDXPXSVTZ
      XTXJYCXTXABYFWAWBWCWDMVOVRWEWINEFAOWFWOWQWSWGWHWJWK $.
  $}

  ${
    $d f g x A $.  $d x F $.  $d x V $.
    symgbas.1 $e |- G = ( SymGrp ` A ) $.
    symgbas.2 $e |- B = ( Base ` G ) $.
    $( The base set of the symmetric group.  (Contributed by Mario Carneiro,
       12-Jan-2015.) $)
    symgbas $p |- B = { x | x : A -1-1-onto-> A } $=
      ( vf vg cbs cfv cv cvv wcel wceq cnx cop cmap wss eqid c0 wf1o cab cplusg
      ccom cmpt2 cts cpw csn cxp cpt co wf f1of wb elmapg anidms syl5ibr abssdv
      ctp ovex ssexg sylancl topgrpbas syl symgval fveq2d eqtr4d wn base0 f1odm
      cdm vex syl6eqelr con3i pm2.21d csymg fvprc syl5eq 3eqtr4a pm2.61i eqtr4i
      dmex ss0 ) CDIJZBBAKZUAZAUBZFBLMZWGWDNWHWGOIJWGPOUCJGHWGWGGKHKUDUEZPOUFJB
      BUGUHUIUJJZPUSZIJZWDWHWGLMZWGWLNWHWGBBQUKZRWNLMWMWHWFAWNWFWEWNMZWHBBWEULZ
      BBWEUMWHWOWPUNBBWELLUOUPUQURBBQUTWGWNLVAVBWGWIWJWKLWKSVCVDWHDWKIABWGWIGHD
      WJLEWGSWISWJSVEVFVGWHVHZTTIJWGWDVIWQWGTRWGTNWQWFATWQWFWETMWFWHWFBWEVKLBBW
      EVJWEAVLWBVMVNVOURWGWCVDWQDTIWQDBVPJTEBVPVQVRVFVSVTWA $.

    $( Two ways of saying a function is a 1-1-onto mapping of A to itself.
       (Contributed by Mario Carneiro, 28-Jan-2015.) $)
    elsymgbas2 $p |- ( F e. V -> ( F e. B <-> F : A -1-1-onto-> A ) ) $=
      ( vx cv wf1o f1oeq1 symgbas elab2g ) AAHIZJAACJHCBEAANCKHABDFGLM $.

    $( Two ways of saying a function is a 1-1-onto mapping of A to itself.
       (Contributed by Paul Chapman, 25-Feb-2008.)  (Revised by Mario Carneiro,
       28-Jan-2015.) $)
    elsymgbas $p |- ( A e. V -> ( F e. B <-> F : A -1-1-onto-> A ) ) $=
      ( wcel cvv wf1o wi elex a1i wf f1of fex expcom syl5 wb elsymgbas2
      pm5.21ndd ) AEHZCIHZCBHZAACJZUDUCKUBCBLMUEAACNZUBUCAACOUFUBUCAAECPQRUCUDU
      ESKUBABCDIFGTMUA $.

    $( Elements in the symmetric group are 1-1 onto functions.  (Contributed by
       SO, 9-Jul-2018.) $)
    symgbasf1o $p |- ( F e. B -> F : A -1-1-onto-> A ) $=
      ( wcel wf1o elsymgbas2 ibi ) CBGAACHABCDBEFIJ $.

    $( A permutation (element of the symmetric group) is a function of a set
       into itself.  (Contributed by AV, 1-Jan-2019.) $)
    symgbasf $p |- ( F e. B -> F : A --> A ) $=
      ( wcel wf1o wf symgbasf1o f1of syl ) CBGAACHAACIABCDEFJAACKL $.

    $( The symmetric group on ` n ` objects has cardinality ` n ! ` .
       (Contributed by Mario Carneiro, 22-Jan-2015.) $)
    symghash $p |- ( A e. Fin -> ( # ` B ) = ( ! ` ( # ` A ) ) ) $=
      ( vf cfn wcel chash cfv cv wf1o cab cfa symgbas fveq2i hashfac syl5eq ) A
      GHBIJAAFKLFMZIJAIJNJBSIFABCDEOPAFQR $.

    $( The symmetric group on a finite index set is finite.  (Contributed by
       SO, 9-Jul-2018.) $)
    symgbasfi $p |- ( A e. Fin -> B e. Fin ) $=
      ( vf cfn wcel cmap co wss mapfi anidms cv wf cab wf1o symgbas f1of ss2abi
      eqsstri wceq mapvalg syl5sseqr ssfi syl2anc ) AGHZAAIJZGHZBUHKBGHUGUIAALM
      UGAAFNZOZFPZBUHBAAUJQZFPULFABCDERUMUKFAAUJSTUAUGUHULUBAAGGFUCMUDUHBUEUF
      $.

    $( The function value of a permutation.  (Contributed by AV,
       1-Jan-2019.) $)
    symgfv $p |- ( ( F e. B /\ X e. A ) -> ( F ` X ) e. A ) $=
      ( wcel symgbasf ffvelrnda ) CBHAAECABCDFGIJ $.

    $( The function values of a permutation for different arguments are
       different.  (Contributed by AV, 8-Jan-2019.) $)
    symgfvne $p |- ( ( F e. B /\ X e. A /\ Y e. A ) -> ( ( F ` X ) = Z
                   -> ( Y =/= X -> ( F ` Y ) =/= Z ) ) ) $=
      ( wcel cfv wceq wne wi wf1o wf1 symgbasf1o f1of1 w3a wa eqeq2 simp1 simp3
      wb eqcoms adantl simp2 f1veqaeq syl12anc adantr sylbid necon3d 3exp1 3syl
      3imp ) CBJZEAJZFAJZECKZGLZFEMFCKZGMNZNZUPAACOAACPZUQURVCNNABCDHIQAACRVDUQ
      URUTVBVDUQURSZUTTZVAGFEVFVAGLZVAUSLZFELZUTVGVHUDZVEVJGUSGUSVAUAUEUFVEVHVI
      NZUTVEVDURUQVKVDUQURUBVDUQURUCVDUQURUGAAFECUHUIUJUKULUMUNUO $.
  $}

  ${
    $d f g x A $.  $d f g B $.  $d f g X $.  $d f g Y $.
    symgplusg.1 $e |- G = ( SymGrp ` A ) $.
    symgplusg.2 $e |- B = ( Base ` G ) $.
    symgplusg.3 $e |- .+ = ( +g ` G ) $.
    $( The group operation of a symmetric group is the function composition.
       (Contributed by Paul Chapman, 25-Feb-2008.)  (Revised by Mario Carneiro,
       28-Jan-2015.) $)
    symgplusg $p |- .+ = ( f e. B , g e. B |-> ( f o. g ) ) $=
      ( cvv wceq cplusg cfv cnx cbs cop cxp eqid fveq2d c0 vx wcel cv cmpt2 cts
      ccom cpw csn cpt symgbas symgval eqeltri mpt2ex topgrpplusg ax-mp 3eqtr4g
      ctp fvex wn csymg fvprc syl5eq plusgid str0 wfn coex fnmpt2i base0 xpeq2d
      vex xp0 syl6eq fneq2d mpbii fn0 sylib eqtr4d pm2.61i ) AJUBZCDEBBDUCZEUCZ
      UFZUDZKVSFLMZNOMBPNLMZWCPNUEMAAUGUHQUIMZPUQZLMZCWCVSFWGLUAABWCDEFWFJGUAAB
      FGHUJWCRZWFRUKSIWCJUBWCWHKDEBBWBBFOMZJHFOURULZWKUMBWCWFWGJWGRUNUOUPVSUSZC
      TWCWLWDTLMCTWLFTLWLFAUTMTGAUTVAVBZSILWEVCVDUPWLWCTVEZWCTKWLWCBBQZVEWNDEBB
      WBWCWIVTWADVJEVJVFVGWLWOTWCWLWOBTQTWLBTBWLWJTOMBTWLFTOWMSHVHUPVIBVKVLVMVN
      WCVOVPVQVR $.

    $( The value of the group operation of the symmetric group on ` A ` .
       (Contributed by Paul Chapman, 25-Feb-2008.)  (Revised by Mario Carneiro,
       28-Jan-2015.) $)
    symgov $p |- ( ( X e. B /\ Y e. B ) ->
      ( X .+ Y ) = ( X o. Y ) ) $=
      ( vf vg wcel ccom cvv co wceq coexg cv coeq1 coeq2 symgplusg ovmpt2g
      mpd3an3 ) EBLFBLEFMZNLEFCOUDPEFBBQJKEFBBJRZKRZMUDCEUFMNUEEUFSUFFETABCJKDG
      HIUAUBUC $.

    $( The group operation of the symmetric group on ` A ` is closed, i.e. a
       magma.  (Contributed by Mario Carneiro, 12-Jan-2015.)  (Revised by Mario
       Carneiro, 28-Jan-2015.) $)
    symgcl $p |- ( ( X e. B /\ Y e. B ) -> ( X .+ Y ) e. B ) $=
      ( wcel wa co ccom symgov wf1o symgbasf1o f1oco syl2an cvv wb coexg mpbird
      elsymgbas2 syl eqeltrd ) EBJZFBJZKZEFCLEFMZBABCDEFGHINUHUIBJZAAUIOZUFAAEO
      AAFOUKUGABEDGHPABFDGHPAAAEFQRUHUISJUJUKTEFBBUAABUIDSGHUCUDUBUE $.
  $}

  ${
    $d N k n $.  $d P n $.  $d Q k n $.
    symgmov1.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    $( For a permutation of a set, each element of the set replaces an(other)
       element of the set.  (Contributed by AV, 2-Jan-2019.) $)
    symgmov1 $p |- ( Q e. P -> A. n e. N E. k e. N ( Q ` n ) = k ) $=
      ( wcel cv cfv wceq wrex csymg eqid symgfv risset eqcom rexbii bitri sylib
      wa ralrimiva ) BAGZDHZBIZCHZJZCEKZDEUBUCEGTUDEGZUGEABELIZUCUIMFNUHUEUDJZC
      EKUGCUDEOUJUFCEUEUDPQRSUA $.

    $( For a permutation of a set, each element of the set is replaced by
       an(other) element of the set.  (Contributed by AV, 2-Jan-2019.) $)
    symgmov2 $p |- ( Q e. P -> A. n e. N E. k e. N ( Q ` k ) = n ) $=
      ( wcel wf1o wfo cv cfv wceq wrex wral csymg eqid symgbasf1o f1ofo foelrni
      ralrimiva 3syl ) BAGEEBHEEBIZCJBKDJZLCEMZDENEABEOKZUEPFQEEBRUBUDDECEEBUCS
      TUA $.
  $}

  $( The base set of the symmetric group on the empty set is the singleton
     containing the empty set.  (Contributed by AV, 27-Feb-2019.) $)
  symgbas0 $p |- ( Base ` ( SymGrp ` (/) ) ) = { (/) } $=
    ( vf c0 wf1o cab wceq csymg cfv cbs eqid f1o00 mpbiran2 abbii symgbas df-sn
    cv csn 3eqtr4i ) BBAOZCZADRBEZADBFGZHGZBPSTASTBBEBIBRJKLABUBUAUAIUBIMABNQ
    $.

  ${
    symg1bas.1 $e |- G = ( SymGrp ` A ) $.
    symg1bas.2 $e |- B = ( Base ` G ) $.
    ${
      symg1bas.0 $e |- A = { I } $.
      $( The symmetric group on a singleton has cardinality ` 1 ` .
         (Contributed by AV, 9-Dec-2018.) $)
      symg1hash $p |- ( I e. V -> ( # ` B ) = 1 ) $=
        ( wcel chash cfv cfa c1 cfn wceq csn snfi eqeltri symghash syl5eq ax-mp
        fveq2i hashsng fveq2d fac1 syl6eq ) DEIZBJKZAJKZLKZMANIUHUJOADPZNHDQRAB
        CFGSUAUGUJMLKMUGUIMLUGUIUKJKMAUKJHUBDEUCTUDUEUFT $.

      $d A f p $.  $d I p $.  $d V p $.
      $( The symmetric group on a singleton is the symmetric group S_1
         consisting of the identity only.  (Contributed by AV, 9-Dec-2018.) $)
      symg1bas $p |- ( I e. V -> B = { { <. I , I >. } } ) $=
        ( vf vp wcel cv wf1o cab cop csn wceq wb anidms f1oeq1 symgbas eqidd id
        f1oeq123d ax-mp wf f1of fsng syl5ib f1osng syl5ibrcom impbid syl5bb vex
        elab velsn 3bitr4g eqrdv syl5eq ) DEKZBAAILZMZINZDDOPZPZIABCFGUAUTJVCVE
        UTAAJLZMZVFVDQZVFVCKVFVEKVGDPZVIVFMZUTVHAVIQZVGVJRHVKAVIAVIVFVFVKVFUBVK
        UCZVLUDUEUTVJVHVJVIVIVFUFZUTVHVIVIVFUGUTVMVHRDDEEVFUHSUIUTVJVHVIVIVDMZU
        TVNDDEEUJSVIVIVFVDTUKULUMVBVGIVFJUNAAVAVFTUOJVDUPUQURUS $.
    $}

    ${
      symg2bas.0 $e |- A = { I , J } $.
      $( The symmetric group on a (proper) pair has cardinality ` 2 ` .
         (Contributed by AV, 9-Dec-2018.) $)
      symg2hash $p |- ( ( I e. V /\ J e. W /\ I =/= J ) -> ( # ` B ) = 2 ) $=
        ( wcel w3a chash cfv cfa c2 cfn wceq cvv elex wne prfi eqeltri symghash
        cpr ax-mp fveq2i id 3anim123i hashprb sylib syl5eq fveq2d fac2 syl6eq )
        DFKZEGKZDEUAZLZBMNZAMNZONZPAQKUTVBRADEUEZQJDEUBUCABCHIUDUFUSVBPONPUSVAP
        OUSVAVCMNZPAVCMJUGUSDSKZESKZURLVDPRUPVEUQVFURURDFTEGTURUHUIDEUJUKULUMUN
        UOUL $.

      $( The symmetric group on a pair is the symmetric group S_2 consisting of
         the identity and the transposition.  This theorem is also valid if the
         elements are identical: then it collapses to theorem ~ symg1bas .
         (Contributed by AV, 9-Dec-2018.) $)
      symg2bas $p |- ( ( I e. V /\ J e. W )
                       -> B = { { <. I , I >. , <. J , J >. } ,
                                { <. I , J >. , <. J , I >. } } ) $=
        ( wceq wcel wa cpr cfv eqid id cvv wne sylibr cop csn symg1bas ad2antll
        csymg cbs df-pr uneq1d adantr unidm syl6eq syl5eq fveq2d opeq12d preq1d
        cun sneq opex preqsn mpbir2an opeq1 opeq2 preq12d snex 3eqtr4d wn chash
        c2 fvex eqeltri a1i w3a biimpri anim2i df-3an ancoms symg2hash syl wf1o
        df-ne ancri anim12i sylbir f1oprg syl2anr wb eqidd f1oeq123d ax-mp prex
        imp elsymgbas2 f1oprswap adantl wo pm3.2i wi opthg2 eqtr syl6bi necon3d
        com12 opthg simpl jca orcd prneimg mpsyl hash2prd syl23anc pm2.61ian )
        DEKZDFLZEGLZMZBDDUAZEEUAZNZDEUAZEDUAZNZNZKZXLXOMZEUBZUEOZUFOZXQUBZUBZBY
        BXNYGYIKXLXMYEYGYFEGYFPYGPYEPUCUDYDBCUFOZYGIYDCYFUFYDCAUEOYFHYDAYEUEYDA
        DENZYEJYDYKDUBZYEUPZYEDEUGYDYMYEYEUPZYEXLYMYNKXOXLYLYEYEDEUQUHUIYEUJUKU
        LULUMULUMULYDYBYHYHNZYIYDXRYHYAYHYDXRXQXQNZYHYDXPXQXQXLXPXQKXOXLDEDEXLQ
        ZYQUNUIUOYPYHKXQXQKZYRXQPZYSXQXQXQEEURZYTYTUSUTZUKXLYAYHKXOXLYAYPYHXLXS
        XQXTXQDEEVADEEVBVCUUAUKUIVCYOYIKYHYHKZUUBYHPZUUCYHYHYHXQVDZUUDUUDUSUTUK
        VEXLVFZXOMZBRLZBVGOVHKZXRBLZYABLZXRYASZYCUUGUUFBYJRICUFVIVJVKUUFXMXNDES
        ZVLZUUHXOUUEUUMXOUUEMXOUULMUUMUUEUULXOUULUUEDEVTZVMVNXMXNUULVOTVPABCDEF
        GHIJVQVRUUFAAXRVSZUUIUUFYKYKXRVSZUUOXOXMXMMZXNXNMZMZUULUULMZUUPUUEXMUUQ
        XNUURXMXMXMQWAZXNXNXNQWAWBUUEUULUUTUUNUULUULUULQWAWCUUSUUTUUPDDEEFFGGWD
        WKWEAYKKZUUOUUPWFJUVBAYKAYKXRXRUVBXRWGUVBQZUVCWHWITXRRLUUIUUOWFXPXQWJAB
        XRCRHIWLWITUUFAAYAVSZUUJXOUVDUUEXOYKYKYAVSZUVDDEFGWMUVBUVDUVEWFJUVBAYKA
        YKYAYAUVBYAWGUVCUVCWHWITWNYARLUUJUVDWFXSXTWJABYACRHIWLWITXPRLZXQRLZMZXS
        RLZXTRLZMZMUUFXPXSSZXPXTSZMZXQXSSXQXTSMZWOUUKUVHUVKUVFUVGDDURYTWPUVIUVJ
        DEUREDURWPWPUUFUVNUVOUUFUVLUVMUUEXOUVLUUEUULXOUVLWQUUNXOUULUVLXOXPXSDEX
        OXPXSKDDKZXLMXLDDDEFGWRDDEWSWTXAXBWCWKUUEXOUVMUUEUULXOUVMWQUUNXOUULUVMX
        OXPXTDEXOXPXTKZXLUVPMZXLXOUUQUVQUVRWFXMUUQXNUVAUIDDEDFFXCVRXLUVPXDWTXAX
        BWCWKXEXFXPXQXSXTRRRRXGXHUUGUUHMUUIUUJUUKVLYCBRXRYAXIWKXJXK $.
    $}
  $}

  ${
    $d f g x y z A $.  $d f g x y z G $.  $d x y z V $.
    symggrp.1 $e |- G = ( SymGrp ` A ) $.
    $( The topology of the symmetric group on ` A ` .  This component is
       defined on a larger set than the true base - the product topology is
       defined on the set of all functions, not just bijections - but the
       definition of ` TopOpen ` ensures that it is trimmed down before it gets
       use.  (Contributed by Mario Carneiro, 29-Aug-2015.) $)
    symgtset $p |- ( A e. V ->
      ( Xt_ ` ( A X. { ~P A } ) ) = ( TopSet ` G ) ) $=
      ( vx vf vg wcel cts cfv cnx cbs cop cplusg cpw csn cxp cpt eqid cvv ax-mp
      ctp symgbas symgplusg symgval fveq2d wceq fvex topgrptset syl6reqr ) ACHZ
      BIJKLJBLJZMKNJBNJZMKIJAAOPQZRJZMUBZIJZUOUKBUPIEAULUMFGBUOCDEAULBDULSZUCAU
      LUMFGBDURUMSUDUOSUEUFUOTHUOUQUGUNRUHULUMUOUPTUPSUIUAUJ $.

    $( The symmetric group on a set ` A ` is a group.  (Contributed by Paul
       Chapman, 25-Feb-2008.)  (Revised by Mario Carneiro, 13-Jan-2015.) $)
    symggrp $p |- ( A e. V -> G e. Grp ) $=
      ( vx vy vz wcel cfv cv eqidd co eqid symgcl ccom wceq symgov syl2anc wf1o
      elsymgbas cbs cplusg ccnv cid cres 3adant1 w3a coass simpr1 simpr2 coeq1d
      wa simpr3 coeq2d 3eqtr4a 3eqtr4d f1oi mpbiri sylan biimpa f1of fcoi2 3syl
      wf eqtrd wi f1ocnv a1i 3imtr4d imp sylancom f1ococnv1 syl isgrpd ) ACHZEF
      GBUAIZBUBIZBEJZUCZUDAUEZVOVPKVOVQKVRVPHZFJZVPHZVRWBVQLZVPHZVOAVPVQBVRWBDV
      PMZVQMZNZUFVOWAWCGJZVPHZUGULZWDWIOZVRWBWIVQLZOZWDWIVQLZVRWMVQLZWKVRWBOZWI
      OVRWBWIOZOWLWNVRWBWIUHWKWDWQWIWKWAWCWDWQPVOWAWCWJUIZVOWAWCWJUJZAVPVQBVRWB
      DWFWGQRUKWKWMWRVRWKWCWJWMWRPWTVOWAWCWJUMZAVPVQBWBWIDWFWGQRUNUOWKWEWJWOWLP
      WKWAWCWEWSWTWHRXAAVPVQBWDWIDWFWGQRWKWAWMVPHZWPWNPWSWKWCWJXBWTXAAVPVQBWBWI
      DWFWGNRAVPVQBVRWMDWFWGQRUPVOVTVPHZAAVTSAUQAVPVTBCDWFTURZVOWAULZVTVRVQLZVT
      VROZVRVOXCWAXFXGPXDAVPVQBVTVRDWFWGQUSXEAAVRSZAAVRVDXGVRPVOWAXHAVPVRBCDWFT
      ZUTZAAVRVAAAVRVBVCVEVOWAVSVPHZVOXHAAVSSZWAXKXHXLVFVOAAVRVGVHXIAVPVSBCDWFT
      VIVJZXEVSVRVQLZVSVROZVTVOWAXKXNXOPXMAVPVQBVSVRDWFWGQVKXEXHXOVTPXJAAVRVLVM
      VEVN $.

    $( The group identity element of the symmetric group on a set ` A ` .
       (Contributed by Paul Chapman, 25-Jul-2008.)  (Revised by Mario Carneiro,
       13-Jan-2015.) $)
    symgid $p |- ( A e. V -> ( _I |` A ) = ( 0g ` G ) ) $=
      ( wcel c0g cfv cid cres cplusg wceq ccom wf1o f1oi eqid elsymgbas syl2anc
      co cbs mpbiri symgov wf f1of fcoi1 mp2b syl6eq cgrp wb grpid mpbid eqcomd
      symggrp ) ACEZBFGZHAIZUMUOUOBJGZRZUOKZUNUOKZUMUQUOUOLZUOUMUOBSGZEZVBUQUTK
      UMVBAAUOMZANZAVAUOBCDVAOZPTZVFAVAUPBUOUODVEUPOZUAQVCAAUOUBUTUOKVDAAUOUCAA
      UOUDUEUFUMBUGEVBURUSUHABCDULVFVAUPBUOUNVEVGUNOUIQUJUK $.

    symginv.2 $e |- B = ( Base ` G ) $.
    symginv.3 $e |- N = ( invg ` G ) $.
    $( The group inverse in the symmetric group corresponds to the functional
       inverse.  (Contributed by Stefan O'Rear, 24-Aug-2015.)  (Revised by
       Mario Carneiro, 2-Sep-2015.) $)
    symginv $p |- ( F e. B -> ( N ` F ) = `' F ) $=
      ( wcel cfv ccnv wceq cplusg wf1o elsymgbas2 syl cvv wb mpbird eqid co c0g
      ccom cid f1ocnv cnvexg symgov mpdan f1ococnv2 csymg elbasfv symgid 3eqtrd
      cres ibi cgrp symggrp id grpinvid1 syl3anc ) CBIZCEJCKZLZCVBDMJZUAZDUBJZL
      ZVAVECVBUCZUDAUNZVFVAVBBIZVEVHLVAVJAAVBNZVAAACNZVKVAVLABCDBFGOUOZAACUEPVA
      VBQIVJVKRCBUFABVBDQFGOPSZABVDDCVBFGVDTZUGUHVAVLVHVILVMAACUIPVAAQIZVIVFLBD
      UJCAFGUKZADQFULPUMVADUPIZVAVJVCVGRVAVPVRVQADQFUQPVAURVNBVDDECVBVFGVOVFTHU
      SUTS $.
  $}

  ${
    $d w x y z G $.  $d w x y z .(+) $.  $d w x y z X $.  $d w z F $.
    $d w x z H $.  $d w x y z Y $.
    galactghm.x $e |- X = ( Base ` G ) $.
    galactghm.h $e |- H = ( SymGrp ` Y ) $.
    galactghm.f $e |- F = ( x e. X |-> ( y e. Y |-> ( x .(+) y ) ) ) $.
    $( The currying of a group action is a group homomorphism between the group
       ` G ` and the symmetric group ` ( SymGrp `` Y ) ` .  (Contributed by FL,
       17-May-2010.)  (Proof shortened by Mario Carneiro, 13-Jan-2015.) $)
    galactghm $p |- ( .(+) e. ( G GrpAct Y ) -> F e. ( G GrpHom H ) ) $=
      ( co wcel cfv cvv syl cmpt wa adantr wceq vz vw cga cplusg cbs eqid gagrp
      cgrp gaset symggrp cv wf1o gapm wb elsymgbas mpbird fmptd df-3an sylan2br
      gaass anassrs mpteq2dva simprl simprr grpcl syl3anc mptexg oveq1 mpteq2dv
      w3a fvmptg syl2anc wf ffvelrnd symgov cxp gaf ad2antrr simpr fovrnd oveq2
      ccom cbvmptv syl6eq fmptco eqtrd 3eqtr4d isghmd ) CEHUCLMZUAUBEUDNZFUDNZE
      FDGFUENZIWLUFZWJUFZWKUFZCEHUGZWIHOMZFUHMCEHUIZHFOJUJPWIAGBHAUKZBUKZCLZQZW
      LDWIWSGMZRZXBWLMZHHXBULZBWSCXBEGHIXBUFUMXDWQXEXFUNWIWQXCWRSHWLXBFOJWMUOPU
      PKUQZWIUAUKZGMZUBUKZGMZRZRZBHXHXJWJLZWTCLZQZBHXHXJWTCLZCLZQZXNDNZXHDNZXJD
      NZWKLZXMBHXOXRWIXLWTHMZXOXRTZXLYDRWIXIXKYDVJYEXIXKYDURXHXJWTWJCEGHIWNUTUS
      VAVBXMXNGMZXPOMZXTXPTXMEUHMZXIXKYFWIYHXLWPSWIXIXKVCZWIXIXKVDZGWJEXHXJIWNV
      EVFXMWQYGWIWQXLWRSZBHXOOVGPAXNXBXPGODWSXNTBHXAXOWSXNWTCVHVIKVKVLXMYCYAYBW
      BZXSXMYAWLMYBWLMYCYLTXMGWLXHDWIGWLDVMXLXGSZYIVNXMGWLXJDYMYJVNHWLWKFYAYBJW
      MWOVOVLXMBAHHXQXHWSCLZXRYBYAXMYDRXJWTHGHCWIGHVPHCVMXLYDCEGHIVQVRXMXKYDYJS
      XMYDVSVTXMXKBHXQQZOMZYBYOTYJXMWQYPYKBHXQOVGPAXJXBYOGODWSXJTBHXAXQWSXJWTCV
      HVIKVKVLXMYABHXHWTCLZQZAHYNQXMXIYROMZYAYRTYIXMWQYSYKBHYQOVGPAXHXBYRGODWSX
      HTBHXAYQWSXHWTCVHVIKVKVLBAHYQYNWTWSXHCWAWCWDWSXQXHCWAWEWFWGWH $.
  $}

  ${
    $d u v x y z F $.  $d u v x y z G $.  $d u v x y z H $.  $d u v z .(+) $.
    $d u v x y X $.  $d u v x y z Y $.
    lactghmga.x $e |- X = ( Base ` G ) $.
    lactghmga.h $e |- H = ( SymGrp ` Y ) $.
    lactghmga.f $e |- .(+) = ( x e. X , y e. Y |-> ( ( F ` x ) ` y ) ) $.
    $( The converse of ~ galactghm .  The uncurrying of a homomorphism into
       ` ( SymGrp `` Y ) ` is a group action.  Thus, group actions and group
       homomorphisms into a symmetric group are essentially equivalent notions.
       (Contributed by Mario Carneiro, 15-Jan-2015.) $)
    lactghmga $p |- ( F e. ( G GrpHom H ) -> .(+) e. ( G GrpAct Y ) ) $=
      ( co wcel wa cfv cv wceq syl fveq2 fveq1d vz vu vv cghm cvv cxp wf cplusg
      cgrp c0g wral cga ghmgrp1 c0 ghmgrp2 grpn0 wn csymg fvprc syl5eq necon1ai
      wne 3syl jca wf1o eqid ghmf ffvelrnda wb adantr elsymgbas mpbid ralrimiva
      cbs f1of fmpt2 sylib cres grpidcl ovmpt2 sylan ghmid symgid eqtr4d fvresi
      cid fvex adantl 3eqtrd ccom ad2antrr simprr ffvelrnd simplr fvco3 syl2anc
      simpll simprl ghmlin syl3anc symgov eqtrd 3eqtr4d grpcl oveq2d ralrimivva
      isga sylanbrc ) DEFUDLMZEUIMZHUEMZNGHUFHCUGZEUJOZUAPZCLZXNQZUBPZUCPZEUHOZ
      LZXNCLZXQXRXNCLZCLZQZUCGUKUBGUKZNZUAHUKZNCEHULLMXIXJXKEFDUMZXIFUIMFUNVBXK
      EFDUOFUPXKFUNXKUQFHUROUNJHURUSUTVAVCZVDXIXLYGXIBPZAPZDOZOZHMZBHUKZAGUKXLX
      IYOAGXIYKGMZNZYNBHYQHHYJYLYQHHYLVEZHHYLUGYQYLFVNOZMZYRXIGYSYKDEFDGYSIYSVF
      ZVGZVHYQXKYTYRVIXIXKYPYIVJHYSYLFUEJUUAVKRVLHHYLVORVHVMVMABGHYMHCKVPVQXIYF
      UAHXIXNHMZNZXPYEUUDXOXNXMDOZOZXNWFHVRZOZXNXIXMGMZUUCXOUUFQXIXJUUIYHGEXMIX
      MVFZVSRABXMXNGHYMUUFCYJUUEOYKXMQYJYLUUEYKXMDSTYJXNUUESKXNUUEWGVTWAUUDXNUU
      EUUGUUDUUEFUJOZUUGXIUUEUUKQUUCEFDXMUUKUUJUUKVFWBVJUUDXKUUGUUKQXIXKUUCYIVJ
      HFUEJWCRWDTUUCUUHXNQXIHXNWEWHWIUUDYDUBUCGGUUDXQGMZXRGMZNZNZXNXTDOZOZXQXNX
      RDOZOZCLZYAYCUUOXNXQDOZUURWJZOZUUSUVAOZUUQUUTUUOHHUURUGZUUCUVCUVDQUUOHHUU
      RVEZUVEUUOUURYSMZUVFUUOGYSXRDXIGYSDUGUUCUUNUUBWKZUUDUULUUMWLZWMZUUOXKUVGU
      VFVIXIXKUUCUUNYIWKHYSUURFUEJUUAVKRVLHHUURVORZXIUUCUUNWNZHHXNUVAUURWOWPUUO
      XNUUPUVBUUOUUPUVAUURFUHOZLZUVBUUOXIUULUUMUUPUVNQXIUUCUUNWQUUDUULUUMWRZUVI
      XSUVMEFXQDXRGIXSVFZUVMVFZWSWTUUOUVAYSMUVGUVNUVBQUUOGYSXQDUVHUVOWMUVJHYSUV
      MFUVAUURJUUAUVQXAWPXBTUUOUULUUSHMUUTUVDQUVOUUOHHXNUURUVKUVLWMABXQUUSGHYMU
      VDCYJUVAOYKXQQYJYLUVAYKXQDSTYJUUSUVASKUUSUVAWGVTWPXCUUOXTGMZUUCYAUUQQUUOX
      JUULUUMUVRXIXJUUCUUNYHWKUVOUVIGXSEXQXRIUVPXDWTUVLABXTXNGHYMUUQCYJUUPOYKXT
      QYJYLUUPYKXTDSTYJXNUUPSKXNUUPWGVTWPUUOYBUUSXQCUUOUUMUUCYBUUSQUVIUVLABXRXN
      GHYMUUSCYJUUROYKXRQYJYLUURYKXRDSTYJXNUURSKXNUURWGVTWPXEXCXFVDVMVDUAUBUCXS
      CEGHXMIUVPUUJXGXH $.
  $}

  ${
    $d f x B $.  $d f x G $.  $d f x V $.  $d f x X $.
    symgga.g $e |- G = ( SymGrp ` X ) $.
    symgga.b $e |- B = ( Base ` G ) $.
    $( The topology of the symmetric group on ` A ` .  (Contributed by Mario
       Carneiro, 29-Aug-2015.) $)
    symgtopn $p |- ( X e. V ->
      ( ( Xt_ ` ( X X. { ~P X } ) ) |`t B ) = ( TopOpen ` G ) ) $=
      ( wcel cpw csn cxp cpt cfv crest cts ctopn symgtset oveq1d eqid topnval
      co syl6eq ) DCGZDDHIJKLZAMTBNLZAMTBOLUBUCUDAMDBCEPQAUDBFUDRSUA $.

    symgga.f $e |- F = ( f e. B , x e. X |-> ( f ` x ) ) $.
    $( The symmetric group induces a group action on its base set.
       (Contributed by Mario Carneiro, 24-Jan-2015.) $)
    symgga $p |- ( X e. V -> F e. ( G GrpAct X ) ) $=
      ( wcel cgrp cid cres cghm co cga cv cfv cmpt2 symggrp idghm fvresi adantr
      wa wceq fveq1d mpt2eq3ia eqtr4i lactghmga 3syl ) GFKELKMBNZEEOPKDEGQPKGEF
      HUABEIUBCADULEEBGIHDCABGARZCRZSZTCABGUMUNULSZSZTJCABGUQUOUNBKZUMGKZUEUMUP
      UNURUPUNUFUSBUNUCUDUGUHUIUJUK $.
  $}

  ${
    pgrpsubgsymgbi.g $e |- G = ( SymGrp ` A ) $.
    pgrpsubgsymgbi.b $e |- B = ( Base ` G ) $.
    $( Every permutation group is a subgroup of the corresponding symmetric
       group.  (Contributed by AV, 14-Mar-2019.) $)
    pgrpsubgsymgbi $p |- ( A e. V -> ( P e. ( SubGrp ` G )
                                    <-> ( P C_ B /\ ( G |`s P ) e. Grp ) ) ) $=
      ( csubg cfv wcel cgrp wss cress co wa w3a issubg 3anass bitri wb ibar syl
      symggrp bicomd syl5bb ) CDHIJZDKJZCBLZDCMNKJZOZOZAEJZUJUFUGUHUIPUKBCDGQUG
      UHUIRSULUGUKUJTADEFUCUGUJUKUGUJUAUDUBUE $.

    $d A f g $.  $d B f g $.  $d F f g $.
    pgrpsubgsymg.c $e |- F = ( Base ` P ) $.
    $( Every permutation group is a subgroup of the corresponding symmetric
       group.  (Contributed by AV, 14-Mar-2019.) $)
    pgrpsubgsymg $p |- ( A e. V -> ( ( P e. Grp /\ F C_ B
                           /\ ( +g ` P ) = ( f e. F , g e. F |-> ( f o. g ) ) )
                                                  -> F e. ( SubGrp ` G ) ) ) $=
      ( wcel cgrp cplusg cfv cv cmpt2 wceq wa cres wss ccom w3a csubg cxp simp1
      symggrp anim12i simp2 simp3 eqid symgplusg eqcomi reseq1i anidms syl5reqr
      resmpt2 3ad2ant2 eqtrd jca adantl grpissubg sylc ex ) AHLZCMLZFBUAZCNOZDE
      FFDPEPUBZQZRZUCZFGUDOLZVEVLSGMLZVFSVGVHGNOZFFUEZTZRZSZVMVEVNVLVFAGHIUGVFV
      GVKUFUHVLVSVEVLVGVRVFVGVKUIVLVHVJVQVFVGVKUJVGVFVJVQRVKVGVQDEBBVIQZVPTZVJV
      TVOVPVOVTABVODEGIJVOUKULUMUNVGWAVJRDEBBFFVIUQUOUPURUSUTVABFGCJKVBVCVD $.
  $}

  ${
    idresperm.g $e |- G = ( SymGrp ` A ) $.
    $( The identity function restricted to a set is a permutation of this set.
       (Contributed by AV, 17-Mar-2019.) $)
    idresperm $p |- ( A e. V -> ( _I |` A ) e. ( Base ` G ) ) $=
      ( wcel cid cres cbs cfv wf1o f1oi eqid elsymgbas mpbiri ) ACEFAGZBHIZEAAO
      JAKAPOBCDPLMN $.

    $( The singleton containing only the identity function restricted to a set
       is a subgroup of the symmetric group of this set.  (Contributed by AV,
       17-Mar-2019.) $)
    idressubgsymg $p |- ( A e. V -> { ( _I |` A ) } e. ( SubGrp ` G ) ) $=
      ( wcel cid cres csn c0g cfv csubg symgid sneqd cgrp symggrp 0subg eqeltrd
      eqid syl ) ACEZFAGZHBIJZHZBKJZTUAUBABCDLMTBNEUCUDEABCDOBUBUBRPSQ $.

    idrespermg.e $e |- E = ( G |`s { ( _I |` A ) } ) $.
    $( The structure with the singleton containing only the identity function
       restricted to a set as base set and the function composition as group
       operation (constructed by (structure) restricting the symmetric group to
       that singleton) is a permutation group (group consisting of
       permutations).  (Contributed by AV, 17-Mar-2019.) $)
    idrespermg $p |- ( A e. V
                           -> ( E e. Grp /\ ( Base ` E ) C_ ( Base ` G ) ) ) $=
      ( wcel cid cres csn csubg cfv cgrp cbs wss wa idressubgsymg cress co cvv
      eqid pgrpsubgsymgbi cin wceq snex ressbas mp1i inss2 eqcomi eleq1i biimpi
      syl6eqssr adantl anim12ci ex sylbid mpd ) ADGZHAIZJZCKLGZBMGZBNLZCNLZOZPZ
      ACDEQURVAUTVDOZCUTRSZMGZPZVFAVDUTCDEVDUAZUBURVJVFURVEVJVBURVCUTVDUCZVDUTT
      GVLVCUDURUSUEUTVDBTCFVKUFUGUTVDUHULVIVBVGVIVBVHBMBVHFUIUJUKUMUNUOUPUQ $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Cayley's theorem
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d a g x y .+ $.  $d x F $.  $d a g x y G $.  $d g x H $.  $d a g x y X $.
    $d a x .0. $.  $d x S $.
    cayleylem1.x $e |- X = ( Base ` G ) $.
    cayleylem1.p $e |- .+ = ( +g ` G ) $.
    cayleylem1.u $e |- .0. = ( 0g ` G ) $.
    cayleylem1.h $e |- H = ( SymGrp ` X ) $.
    cayleylem1.s $e |- S = ( Base ` H ) $.
    cayleylem1.f $e |- F = ( g e. X |-> ( a e. X |-> ( g .+ a ) ) ) $.
    $( Lemma for ~ cayley .  (Contributed by Paul Chapman, 3-Mar-2008.)
       (Revised by Mario Carneiro, 13-Jan-2015.) $)
    cayleylem1 $p |- ( G e. Grp -> F e. ( G GrpHom H ) ) $=
      ( vx vy wcel cv co cgrp cmpt2 cga cghm eqid cmpt oveq12 ovmpt2a mpteq2dva
      gaid2 ovex mpteq2ia eqtr4i galactghm syl ) EUARPQGGPSZQSZATZUBZEGUCTRDEFU
      DTRPQAUSEGJKUSUEZUJCIUSDEFGGJMDCGIGCSZISZATZUFZUFCGIGVAVBUSTZUFZUFOCGVFVD
      VAGRIGVEVCPQVAVBGGURVCUSUPVAUQVBAUGUTVAVBAUKUHUIULUMUNUO $.

    $( Lemma for ~ cayley .  (Contributed by Paul Chapman, 3-Mar-2008.)
       (Revised by Mario Carneiro, 13-Jan-2015.) $)
    cayleylem2 $p |- ( G e. Grp -> F : X -1-1-> S ) $=
      ( vx wcel cfv wceq cvv cgrp wf1 cv c0g wi wral wa fveq1 co grpidcl adantr
      simpr grplactval syl2anc grprid eqtrd cid cres fvex eqeltri symgid fveq1i
      cbs ax-mp fvresi syl5eqr eqeq12d syl5ib ralrimiva cghm wb cayleylem1 eqid
      syl ghmf1 mpbird ) EUAQZGBDUBZPUCZDRZFUDRZSZVSHSZUEZPGUFZVQWDPGWBHVTRZHWA
      RZSVQVSGQZUGZWCHVTWAUHWIWFVSWGHWIWFVSHAUIZVSWIWHHGQZWFWJSVQWHULVQWKWHGEHJ
      LUJUKZVSHACDEGIOJUMUNGAEVSHJKLUOUPWIWGHUQGURZRZHHWMWAGTQWMWASGEVCRTJEVCUS
      UTGFTMVAVDVBWIWKWNHSWLGHVEVNVFVGVHVIVQDEFVJUIQVRWEVKABCDEFGHIJKLMNOVLPEFW
      ADGBHJNLWAVMVOVNVP $.
  $}

  ${
    $d a f g s G $.  $d f g s H $.  $d a g .+ $.  $d a f g s X $.
    cayley.x $e |- X = ( Base ` G ) $.
    cayley.h $e |- H = ( SymGrp ` X ) $.
    ${
      cayley.p $e |- .+ = ( +g ` G ) $.
      cayley.f $e |- F = ( g e. X |-> ( a e. X |-> ( g .+ a ) ) ) $.
      cayley.s $e |- S = ran F $.
      $( Cayley's Theorem (constructive version): given group ` G ` , ` F ` is
         an isomorphism between ` G ` and the subgroup ` S ` of the symmetric
         group ` H ` on the underlying set ` X ` of ` G ` .  See also Theorem
         3.15 in [Rotman] p. 42.  (Contributed by Paul Chapman, 3-Mar-2008.)
         (Proof shortened by Mario Carneiro, 13-Jan-2015.) $)
      cayley $p |- ( G e. Grp -> ( S e. ( SubGrp ` H ) /\
        F e. ( G GrpHom ( H |`s S ) ) /\ F : X -1-1-onto-> S ) ) $=
        ( wcel cfv co cghm wf1o eqid syl cgrp csubg crn cbs cayleylem1 syl5eqel
        cress c0g ghmrn wss wb eqimss2i resghm2b sylancl wf1 cayleylem2 f1f1orn
        mpbid wceq f1oeq3 ax-mp sylibr 3jca ) EUANZBFUBOZNZDEFBUGPZQPNZGBDRZVDB
        DUCZVEMVDDEFQPNZVJVENAFUDOZCDEFGEUHOZHIKVMSZJVLSZLUEZEFDUITUFZVDVKVHVPV
        DVFVJBUJVKVHUKVQBVJMULEFVGDBVGSUMUNURVDGVJDRZVIVDGVLDUOVRAVLCDEFGVMHIKV
        NJVOLUPGVLDUQTBVJUSVIVRUKMBVJGDUTVAVBVC $.
    $}

    $( Cayley's Theorem (existence version): every group ` G ` is isomorphic to
       a subgroup of the symmetric group on the underlying set of ` G ` .  (For
       any group ` G ` there exists an isomorphism ` f ` between ` G ` and a
       subgroup ` h ` of the symmetric group on the underlying set of ` G ` .)
       See also Theorem 3.15 in [Rotman] p. 42.  (Contributed by Paul Chapman,
       3-Mar-2008.)  (Revised by Mario Carneiro, 13-Jan-2015.) $)
    cayleyth $p |- ( G e. Grp -> E. s e. ( SubGrp ` H )
      E. f e. ( G GrpHom ( H |`s s ) ) f : X -1-1-onto-> s ) $=
      ( vg va wcel cv cfv co cmpt wf1o cress cghm wrex eqid rspcev cplusg csubg
      cgrp crn cayley simp1d simp2d simp3d f1oeq1 syl2anc wceq oveq2d rexeqbidv
      oveq2 f1oeq3 ) BUCJZHDIDHKIKBUALZMNNZUDZCUBLZJZDUSAKZOZABCUSPMZQMZRZDEKZV
      BOZABCVGPMZQMZRZEUTRUPVAURVEJZDUSUROZUQUSHURBCDIFGUQSURSUSSUEZUFUPVLVMVFU
      PVAVLVMVNUGUPVAVLVMVNUHVCVMAURVEDUSVBURUITUJVKVFEUSUTVGUSUKZVHVCAVJVEVOVI
      VDBQVGUSCPUNULVGUSDVBUOUMTUJ $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Permutations fixing one element
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d N k $.  $d Q k $.
    symgfix2.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    $d K k l q $.  $d L k l q $.  $d N k l $.  $d P l q $.  $d Q k l q $.
    $( If a permutation does not move a certain element of a set to a second
       element, there is a third element which is moved to the second element.
       (Contributed by AV, 2-Jan-2019.) $)
    symgfix2 $p |- ( L e. N -> ( Q e. ( P \ { q e. P | ( q ` K ) = L } )
                                 -> E. k e. ( N \ { K } ) ( Q ` k ) = L ) ) $=
      ( vl cv cfv wceq cdif wcel wn wa wrex wi eqeq2 rexbidv wo csn eldif ianor
      crab fveq1 eqeq1d elrab xchnxbir anbi2i bitri pm2.21 wral symgmov2 rspcva
      wne eqcoms notbid fveq2 necon3bi syl6bi com12 pm4.71rd rexdifsn syl5ibcom
      wb syl6bbr ex com13 syl5 jaoi impd syl5bi ) BADGJZKZELZGAUEZMNZBANZVSOZDB
      KZELZOZUAZPZEFNZCJZBKZELZCFDUBMQZVRVSBVQNZOZPWEBAVQUCWLWDVSVSWBPWDWKVSWBU
      DVPWBGBAVNBLVOWAEDVNBUFUGUHUIUJUKWFVSWDWJWDVSWFWJVTVSWFWJRZRWCVSWMULVSWHI
      JZLZCFQZIFUMZWCWMABCIFHUNWFWQWCWJWFWQWCWJRWFWQPWICFQZWCWJWPWRIEFWNELWOWIC
      FWNEWHSTUOWCWRWGDUPZWIPZCFQWJWCWIWTCFWCWIWSWIWCWSWIWCWAWHLZOWSWIWBXAWBXAV
      FEWHEWHWASUQURXAWGDXADWGDWGBUSUQUTVAVBVCTWICFDVDVGVEVHVIVJVKVIVLVM $.
  $}

  ${
    $d K x $.  $d N x $.  $d S x $.  $d Z x $.
    symgext.s $e |- S = ( Base ` ( SymGrp ` ( N \ { K } ) ) ) $.
    symgext.e $e |- E = ( x e. N |-> if ( x = K , K , ( Z ` x ) ) ) $.
    $( The extension of a permutation, fixing the additional element, is a
       function.  (Contributed by AV, 6-Jan-2019.) $)
    symgextf $p |- ( ( K e. N /\ Z e. S ) -> E : N --> N ) $=
      ( wcel wa cv wceq cfv cif simplll wn csn cdif simpllr wne biimpri anim12i
      simpr df-ne eldifsn sylibr csymg eqid symgfv syl2anc eldifad ifclda fmptd
      ) DEIZFBIZJZAEAKZDLZDUQFMZNECUPUQEIZJZURDUSEUNUOUTUROVAURPZJZUSEDQZVCUOUQ
      EVDRZIZUSVEIUNUOUTVBSVCUTUQDTZJVFVAUTVBVGUPUTUCVGVBUQDUDUAUBUQEDUEUFVEBFV
      EUGMZUQVHUHGUIUJUKULHUM $.

    $d X x $.
    $( The function value of the extension of a permutation, fixing the
       additional element, for elements in the original domain.  (Contributed
       by AV, 6-Jan-2019.) $)
    symgextfv $p |- ( ( K e. N /\ Z e. S ) -> ( X e. ( N \ { K } )
                      -> ( E ` X ) = ( Z ` X ) ) ) $=
      ( wcel wa csn cdif cfv wceq cif cvv eldifi fvexd adantl ifexg eqeq1 fveq2
      syldan cv ifbieq2d fvmptg syl2anr wne eldifsn df-ne biimpi sylbi iffalsed
      wn eqtrd ex ) DEJZGBJZKZFEDLZMJZFCNZFGNZOUTVBKZVCFDOZDVDPZVDVBFEJZVGQJZVC
      VGOUTFEVARURUSVDQJVIUTFGSVFDVDEQUAUDAFAUEZDOZDVJGNZPVGEQCVJFOVKVFVLVDDVJF
      DUBVJFGUCUFIUGUHVEVFDVDVBVFUOZUTVBVHFDUIZKVMFEDUJVNVMVHVNVMFDUKULTUMTUNUP
      UQ $.

    $( The function value of the extension of a permutation, fixing the
       additional element, for the additional element.  (Contributed by AV,
       6-Jan-2019.) $)
    symgextfve $p |- ( K e. N -> ( X = K -> ( E ` X ) = K ) ) $=
      ( wcel wceq cfv fveq2 cv cif iftrue fvmptg anidms sylan9eqr ex ) DEJZFDKZ
      FCLZDKUBUAUCDCLZDFDCMUAUDDKADANZDKZDUEGLZODEECUFDUGPIQRST $.

    $d Y x $.
    $( Lemma for ~ symgextf1 .  (Contributed by AV, 6-Jan-2019.) $)
    symgextf1lem $p |- ( ( K e. N /\ Z e. S )
                         -> ( ( X e. ( N \ { K } ) /\ Y e. { K } )
                              -> ( E ` X ) =/= ( E ` Y ) ) ) $=
      ( wcel wa csn cdif cfv wne csymg eqid wceq wi symgfv adantll eldifsni imp
      symgextfv neeq1d syl5ibr adantrr elsni symgextfve adantr syl5com neeqtrrd
      mpd adantl impcom ex ) DEKZHBKZLZFEDMZNZKZGVAKZLZFCOZGCOZPUTVELVFDVGUTVCV
      FDPZVDUTVCLZFHOZVBKZVHUSVCVKURVBBHVBQOZFVLRIUAUBVKVHVIVJDPVJEDUCVIVFVJDUT
      VCVFVJSABCDEFHIJUEUDUFUGUNUHVEUTVGDSZVDUTVMTVCVDGDSZUTVMGDUIURVNVMTUSABCD
      EGHIJUJUKULUOUPUMUQ $.

    $d E y z $.  $d K i j y $.  $d K z $.  $d N i j y $.  $d N z $.
    $d S y z $.  $d Z i j y $.  $d Z z $.  $d x y z $.  $d j z $.
    $( The extension of a permutation, fixing the additional element, is a 1-1
       function.  (Contributed by AV, 6-Jan-2019.) $)
    symgextf1 $p |- ( ( K e. N /\ Z e. S )
                            -> E : N -1-1-> N ) $=
      ( vy vz vi vj wcel wa cv cfv wceq weq wi com12 wral wf1 symgextf csn cdif
      wf cun wb difsnid eqcomd eleq2d anbi12d adantr elun symgextfv imp eqeq12d
      adantl wf1o csymg eqid symgbasf1o f1of1 dff13 fveq2 eqeq1d equequ1 eqeq2d
      wo imbi12d equequ2 rspc2va expcom a1d sylbi impcom sylbid ex symgextf1lem
      3syl eqneqall eqcoms syl6com ancoms elsni eqtr3 2a1d syl2an ccase syl2anb
      wne ralrimivv sylanbrc ) DEMZFBMZNZEECUFIOZCPZJOZCPZQZIJRZSZJEUAIEUAEECUB
      ABCDEFGHUCWPXCIJEEWPWQEMZWSEMZNZWQEDUDZUEZXGUGZMZWSXIMZNZXCWNXFXLUHWOWNXD
      XJXEXKWNEXIWQWNXIEEDUIUJZUKWNEXIWSXMUKULUMXLWPXCXJWQXHMZWQXGMZVIWSXHMZWSX
      GMZVIWPXCSZXKWQXHXGUNWSXHXGUNXNXPXOXQXRXNXPNZWPXCXSWPNZXAWQFPZWSFPZQZXBXT
      WRYAWTYBXSWPWRYAQZXNWPYDSXPWPXNYDABCDEWQFGHUOTUMUPXSWPWTYBQZXPWPYESXNWPXP
      YEABCDEWSFGHUOTURUPUQWPXSYCXBSZWOWNXSYFSZWOXHXHFUSXHXHFUBZWNYGSZXHBFXHUTP
      ZYJVAGVBXHXHFVCYHXHXHFUFZKOZFPZLOZFPZQZKLRZSZLXHUAKXHUAZNYIKLXHXHFVDYSYIY
      KYSYGWNXSYSYFYRYFYAYOQZILRZSKLWQWSXHXHKIRZYPYTYQUUAUUBYMYAYOYLWQFVEVFKILV
      GVJLJRZYTYCUUAXBUUCYOYBYAYNWSFVEVHLJIVKVJVLVMVNURVOVTVPVPVQVRXPXOXRWPXPXO
      NWTWRWKZXCABCDEWSWQFGHVSXAUUDXBUUDXBSWTWRXBWTWRWAWBTWCWDWPXNXQNWRWTWKZXCA
      BCDEWQWSFGHVSXAUUEXBXBWRWTWATWCXOWQDQZWSDQZXRXQWQDWEWSDWEUUFUUGNXBWPXAWQW
      SDWFWGWHWIWJTVQWLIJEECVDWM $.

    $d E i k $.  $d K k $.  $d N k $.  $d S i k $.  $d Z k $.  $d i x $.
    $( The extension of a permutation, fixing the additional element, is an
       onto function.  (Contributed by AV, 7-Jan-2019.) $)
    symgextfo $p |- ( ( K e. N /\ Z e. S ) -> E : N -onto-> N ) $=
      ( vk vi wcel wa wf cv cfv wceq wrex wral syl adantr wfo symgextf csn cdif
      cun wf1o csymg eqid symgbasf1o f1ofo adantl dffo3 simprd symgextfv eqeq2d
      sylib imp rexbidva ralbidv mpbird wss wi difssd ssrexv ralimia symgextfve
      simpl eqcomd rspcedeq2vd eqeq1 rexbidv ralunsn mpbir2and difsnid sylanbrc
      wb raleqdv ) DEKZFBKZLZEECMINZJNZCOZPZJEQZIERZEECUAABCDEFGHUBVTWFWEIEDUCZ
      UDZWGUEZRZVTWJWEIWHRZDWCPZJEQZVTWDJWHQZIWHRZWKVTWOWAWBFOZPZJWHQZIWHRZVTWH
      WHFMZWSVTWHWHFUAZWTWSLVSXAVRVSWHWHFUFXAWHBFWHUGOZXBUHGUIWHWHFUJSUKJIWHWHF
      ULUPUMVTWNWRIWHVTWDWQJWHVTWBWHKZLWCWPWAVTXCWCWPPABCDEWBFGHUNUQUOURUSUTWNW
      EIWHWAWHKZWHEVAWNWEVBXDEWGVCWDJWHEVDSVESVTJDEDWCVRVSVGVTWBDPZLWCDVTXEWCDP
      ZVRXEXFVBVSABCDEWBFGHVFTUQVHVIVRWJWKWMLVPVSWEWMIWHDEWADPWDWLJEWADWCVJVKVL
      TVMVRWFWJVPVSVRWEIEWIVRWIEEDVNVHVQTUTJIEECULVO $.

    $( The extension of a permutation, fixing the additional element, is a
       bijection.  (Contributed by AV, 7-Jan-2019.) $)
    symgextf1o $p |- ( ( K e. N /\ Z e. S ) -> E : N -1-1-onto-> N ) $=
      ( wcel wa wf1 wfo wf1o symgextf1 symgextfo df-f1o sylanbrc ) DEIFBIJEECKE
      ECLEECMABCDEFGHNABCDEFGHOEECPQ $.

    $( The extension of a permutation is an element of the extended symmetric
       group.  (Contributed by AV, 9-Mar-2019.) $)
    symgextsymg $p |- ( ( N e. V /\ K e. N /\ Z e. S )
                        -> E e. ( Base ` ( SymGrp ` N ) ) ) $=
      ( wcel w3a csymg cfv cbs wf1o symgextf1o 3adant1 wb eqid elsymgbas mpbird
      3ad2ant1 ) EFJZDEJZGBJZKCELMZNMZJZEECOZUDUEUIUCABCDEGHIPQUCUDUHUIRUEEUGCU
      FFUFSUGSTUBUA $.

    $d i x $.  $d E i $.  $d K i $.  $d N i $.  $d S i $.  $d Z i $.
    $( The restriction of the extension of a permutation, fixing the additional
       element, to the original domain.  (Contributed by AV, 6-Jan-2019.) $)
    symgextres $p |- ( ( K e. N /\ Z e. S ) -> ( E |` ( N \ { K } ) ) = Z ) $=
      ( vi wcel wa csn cdif cres wceq cfv wfn wf ffn syl symgextfv ralrimiv wss
      cv wral wb symgextf csymg symgbasf adantl difssd fvreseq1 syl21anc mpbird
      eqid ) DEJZFBJZKZCEDLZMZNFOZIUDZCPVBFPOZIUTUEZURVCIUTABCDEVBFGHUAUBURCEQZ
      FUTQZUTEUCVAVDUFUREECRVEABCDEFGHUGEECSTUQVFUPUQUTUTFRVFUTBFUTUHPZVGUOGUIU
      TUTFSTUJUREUSUKIEUTCFULUMUN $.
  $}

  ${
    gsumccatsymgsn.g $e |- G = ( SymGrp ` A ) $.
    gsumccatsymgsn.b $e |- B = ( Base ` G ) $.
    $( Homomorphic property of composites of permutations with a singleton.
       (Contributed by AV, 20-Jan-2019.) $)
    gsumccatsymgsn $p |- ( ( A e. V /\ W e. Word B /\ Z e. B ) ->
        ( G gsum ( W ++ <" Z "> ) ) = ( ( G gsum W ) o. Z ) ) $=
      ( wcel cword w3a cs1 cconcat co cgsu cplusg cfv ccom wceq syl2anc symggrp
      cmnd cgrp grpmnd syl eqid gsumccatsn syl3an1 3ad2ant1 simp2 gsumwcl simp3
      symgov eqtrd ) ADIZEBJIZFBIZKZCEFLMNONZCEONZFCPQZNZUTFRZUOCUBIZUPUQUSVBSU
      OCUCIVDACDGUACUDUEZBVACEFHVAUFZUGUHURUTBIZUQVBVCSURVDUPVGUOUPVDUQVEUIUOUP
      UQUJBCEHUKTUOUPUQULABVACUTFGHVFUMTUN $.
  $}

  ${
    $d B i $.  $d K i $.  $d N i $.  $d P i $.  $d W i $.
    gsmsymgrfix.s $e |- S = ( SymGrp ` N ) $.
    gsmsymgrfix.b $e |- B = ( Base ` S ) $.
    $( Lemma 1 for ~ gsmsymgrfix .  (Contributed by AV, 20-Jan-2019.) $)
    gsmsymgrfixlem1 $p |- ( ( ( W e. Word B /\ P e. B )
                       /\ ( N e. Fin /\ K e. N )
                       /\ ( A. i e. ( 0 ..^ ( # ` W ) ) ( ( W ` i ) ` K ) = K
                            -> ( ( S gsum W ) ` K ) = K ) )
              -> ( A. i e. ( 0 ..^ ( ( # ` W ) + 1 ) )
                   ( ( ( W ++ <" P "> ) ` i ) ` K ) = K
                   -> ( ( S gsum ( W ++ <" P "> ) ) ` K ) = K ) ) $=
      ( wcel wa cfv wceq cc0 co wral adantr syl fveq1d 3adant3 cword chash cfzo
      cfn cv wi w3a cs1 cconcat c1 caddc csn cun cuz cn0 lencl elnn0uz 3ad2ant1
      cgsu sylib fzosplitsn raleqdv fveq2 eqeq1d ralunsn bitrd simpl simpr 3jca
      wb eqidd ccats1val2 ccom adantl gsumccatsymgsn wfn symgbasf anim12i fvco2
      wf ffn ccats1val1 syl3anc ralbidva biimpd adantld simp3 syld eqtrd 3eqtrd
      imp exp32 sylbid com23 impd ) GAUAJZBAJZKZFUDJZEFJZKZEDUEZGLZLZEMZDNGUBLZ
      UCOZPZECGUSOZLZEMZUFZUGZEXBGBUHUIOZLZLZEMZDNXFUJUKOUCOZPZXQDXGPZEXFXNLZLZ
      EMZKZECXNUSOZLZEMZXMXSXQDXGXFULUMZPZYDXMXQDXRYHXMXFNUNLJZXRYHMWRXAYJXLWPY
      JWQWPXFUOJZYJAGUPZXFUQUTQURNXFVARVBXMYKYIYDVJWRXAYKXLWPYKWQYLQURXQYCDXGXF
      UOXBXFMZXPYBEYMEXOYAXBXFXNVCSVDVERVFXMXTYCYGXMYCXTYGXMYCEBLZEMZXTYGUFWRXA
      YCYOVJZXLWRXAKZWPWQXFXFMZUGZYPWRYSXAWRWPWQYRWPWQVGZWPWQVHZWRXFVKVIQYSYBYN
      EYSEYABBXFAGVLSVDRTXMYOXTYGXMYOXTKZKZYFEXIBVMZLZYNXILZEUUCWSWPWQUGZYFUUEM
      XMUUGUUBWRXAUUGXLYQWSWPWQXAWSWRWSWTVGVNWRWPXAYTQZWRWQXAUUAQZVITQUUGEYEUUD
      FACUDGBHIVOSRUUCBFVPZWTKZUUEUUFMXMUUKUUBWRXAUUKXLWRUUJXAWTWQUUJWPWQFFBVTU
      UJFABCHIVQFFBWARVNWSWTVHVRTQFXIBEVSRUUCUUFXJEUUBUUFXJMZXMYOUULXTYNEXIVCQV
      NXMUUBXKXMUUBXHXKWRXAUUBXHUFXLYQXTXHYOYQXTXHYQXQXEDXGYQXBXGJZKZXPXDEUUNEX
      OXCUUNWPWQUUMXOXCMYQWPUUMUUHQYQWQUUMUUIQYQUUMVHBXBAGWBWCSVDWDWEWFTWRXAXLW
      GWHWKWIWJWLWMWNWOWM $.

    $d B i w y z $.  $d K w y z $.  $d N w y z $.  $d S w y z $.  $d W w $.
    $( The composition of permutations fixing one element also fixes this
       element.  (Contributed by AV, 20-Jan-2019.) $)
    gsmsymgrfix $p |- ( ( N e. Fin /\ K e. N /\ W e. Word B )
                         -> ( A. i e. ( 0 ..^ ( # ` W ) ) ( ( W ` i ) ` K ) = K
                             -> ( ( S gsum W ) ` K ) = K ) ) $=
      ( wcel cfv wceq cc0 chash cfzo co cgsu wi c0 fveq1d eqeq1d vw vy vz cword
      cfn cv wral wa cs1 cconcat cvv wb vex hasheq0 ax-mp biimpri oveq2d syl6eq
      fzo0 fveq1 raleqbidv oveq2 imbi12d imbi2d weq fveq2 cid c0g symgid adantr
      cres eqid gsum0 syl6reqr fvresi adantl eqtrd a1d caddc ccatws1len raleqdv
      c1 gsmsymgrfixlem1 3expb sylbid exp32 a2d wrdind com12 3impia ) EUEIZDEIZ
      FAUDZIZDCUFZFJZJZDKZCLFMJZNOZUGZDBFPOZJZDKZQZWNWKWLUHZXEXFDWOUAUFZJZJZDKZ
      CLXGMJZNOZUGZDBXGPOZJZDKZQZQXFDWORJZJZDKZCRUGZDBRPOZJZDKZQZQXFDWOUBUFZJZJ
      ZDKZCLYFMJZNOZUGZDBYFPOZJZDKZQZQXFDWOYFUCUFZUIUJOZJZJZDKZCLYRMJZNOZUGZDBY
      RPOZJZDKZQZQXFXEQUAUBUCFAXGRKZXQYEXFUUIXMYAXPYDUUIXJXTCXLRUUIXLLLNORUUIXK
      LLNXKLKZUUIXGUKIUUJUUIULUAUMXGUKUNUOUPUQLUSURUUIXIXSDUUIDXHXRWOXGRUTSTVAU
      UIXOYCDUUIDXNYBXGRBPVBSTVCVDUAUBVEZXQYPXFUUKXMYLXPYOUUKXJYICXLYKUUKXKYJLN
      XGYFMVFUQUUKXIYHDUUKDXHYGWOXGYFUTSTVAUUKXOYNDUUKDXNYMXGYFBPVBSTVCVDXGYRKZ
      XQUUHXFUULXMUUDXPUUGUULXJUUACXLUUCUULXKUUBLNXGYRMVFUQUULXIYTDUULDXHYSWOXG
      YRUTSTVAUULXOUUFDUULDXNUUEXGYRBPVBSTVCVDXGFKZXQXEXFUUMXMXAXPXDUUMXJWRCXLW
      TUUMXKWSLNXGFMVFUQUUMXIWQDUUMDXHWPWOXGFUTSTVAUUMXOXCDUUMDXNXBXGFBPVBSTVCV
      DXFYDYAXFYCDVGEVKZJZDXFDYBUUNXFUUNBVHJZYBWKUUNUUPKWLEBUEGVIVJBUUPUUPVLVMV
      NSWLUUODKWKEDVOVPVQVRYFWMIYQAIUHZXFYPUUHUUQXFYPUUHUUQXFYPUHZUHUUDUUACLYJW
      BVSOZNOZUGZUUGUUQUUDUVAULUURUUQUUACUUCUUTUUQUUBUUSLNAYFYQVTUQWAVJUUQXFYPU
      VAUUGQAYQBCDEYFGHWCWDWEWFWGWHWIWJ $.

    $d F n $.  $d G n $.  $d H n $.  $d I n $.  $d K n $.  $d X n $.
    gsmsymgreq.z $e |- Z = ( SymGrp ` M ) $.
    gsmsymgreq.p $e |- P = ( Base ` Z ) $.
    gsmsymgreq.i $e |- I = ( N i^i M ) $.
    $( The values of two compositions of permutations are equal if the values
       of the composed permutations are pairwise equal.  (Contributed by AV,
       26-Jan-2019.) $)
    fvcosymgeq $p |- ( ( G e. B /\ K e. P )
                       -> ( ( X e. I /\ ( G ` X ) = ( K ` X )
                              /\ A. n e. I ( F ` n ) = ( H ` n ) )
                            -> ( ( F o. G ) ` X ) = ( ( H o. K ) ` X ) ) ) $=
      ( cfv wceq wcel wa cv wral w3a wfn cin crn wf symgbasf ffn anim12i adantr
      ccom eleq2i biimpi 3ad2ant1 adantl simpr2 wi wf1o symgbasf1o dff1o5 eqcom
      syl wf1 sylbi ineqan12d syl5eq raleqdv 3ad2ant3 impcom 3jca fvcofneq sylc
      biimpcd ex ) FAUAZIBUAZUBZLHUAZLFSLISTZDUCZESWCGSTZDHUDZUEZLEFUNSLGIUNSTZ
      VTWFUBZFKUFZIJUFZUBZLKJUGZUAZWBWDDFUHZIUHZUGZUDZUEWGVTWKWFVRWIVSWJVRKKFUI
      WIKAFCNOUJKKFUKVEVSJJIUIWJJBIMPQUJJJIUKVEULUMWHWMWBWQWFWMVTWAWBWMWEWAWMHW
      LLRUOUPUQURVTWAWBWEUSWFVTWQWEWAVTWQUTWBVTWEWQVTWDDHWPVTHWLWPRVRVSKWNJWOVR
      KKFVAZKWNTZKAFCNOVBWRKKFVFZWNKTZUBWSKKFVCXAWSWTXAWSWNKVDUPURVGVEVSJJIVAZJ
      WOTZJBIMPQVBXBJJIVFZWOJTZUBXCJJIVCXEXCXDXEXCWOJVDUPURVGVEVHVIVJVPVKVLVMDK
      JEFGILVNVOVQ $.

    $d C n $.  $d J n $.  $d R n $.  $d S n $.  $d Y n $.  $d Z n $.
    $( Lemma 1 for ~ gsmsymgreq .  (Contributed by AV, 26-Jan-2019.) $)
    gsmsymgreqlem1 $p |- ( ( ( N e. Fin /\ M e. Fin /\ J e. I )
                    /\ ( ( X e. Word B /\ C e. B ) /\ ( Y e. Word P /\ R e. P )
                         /\ ( # ` X ) = ( # ` Y ) ) )
                   -> ( ( A. n e. I ( ( S gsum X ) ` n ) = ( ( Z gsum Y ) ` n )
                          /\ ( C ` J ) = ( R ` J ) )
                        -> ( ( S gsum ( X ++ <" C "> ) ) ` J )
                            = ( ( Z gsum ( Y ++ <" R "> ) ) ` J ) ) ) $=
      ( wcel cfv cfn w3a cword wa chash wceq cv cgsu co wral cconcat ccom simpr
      anim12i 3adant3 adantl adantr simpll3 simprl 3jca fvcosymgeq sylc simpr1l
      cs1 simpl1 simpr1r gsumccatsymgsn fveq1d simpl2 simpr2l simpr2r 3eqtr4d
      syl ex ) JUASZIUASZHGSZUBZKAUCSZBASZUDZLCUCSZDCSZUDZKUETLUETUFZUBZUDZFUGZ
      EKUHUIZTWHMLUHUIZTUFFGUJZHBTHDTUFZUDZHEKBVDUKUIUHUIZTZHMLDVDUKUIUHUIZTZUF
      WGWMUDZHWIBULZTZHWJDULZTZWOWQWRVTWCUDZVQWLWKUBWTXBUFWGXCWMWFXCVRWAWDXCWEW
      AVTWDWCVSVTUMWBWCUMUNUOUPUQWRVQWLWKVOVPVQWFWMURWMWLWGWKWLUMUPWGWKWLUSUTAC
      EFWIBWJGDIJHMNOPQRVAVBWRHWNWSWRVOVSVTUBZWNWSUFWGXDWMWGVOVSVTVOVPVQWFVEVSV
      TWDWEVRVCVSVTWDWEVRVFUTUQJAEUAKBNOVGVMVHWRHWPXAWRVPWBWCUBZWPXAUFWGXEWMWGV
      PWBWCVOVPVQWFVIWBWCWAWEVRVJWBWCWAWEVRVKUTUQICMUALDPQVGVMVHVLVN $.

    $d B n $.  $d C i j n $.  $d I i j $.  $d M n $.  $d N n $.  $d P n $.
    $d R i j $.  $d S j $.  $d X i j $.  $d Y i j $.  $d Z j $.
    $( Lemma 2 for ~ gsmsymgreq .  (Contributed by AV, 26-Jan-2019.) $)
    gsmsymgreqlem2 $p |- ( ( ( N e. Fin /\ M e. Fin )
                    /\ ( ( X e. Word B /\ C e. B ) /\ ( Y e. Word P /\ R e. P )
                    /\ ( # ` X ) = ( # ` Y ) ) )
       -> ( ( A. i e. ( 0 ..^ ( # ` X ) ) A. n e. I
                                    ( ( X ` i ) ` n ) = ( ( Y ` i ) ` n )
                    -> A. n e. I ( ( S gsum X ) ` n ) = ( ( Z gsum Y ) ` n ) )
            -> ( A. i e. ( 0 ..^ ( # ` ( X ++ <" C "> ) ) ) A. n e. I
                                  ( ( ( X ++ <" C "> ) ` i ) ` n )
                                  = ( ( ( Y ++ <" R "> ) ` i ) ` n )
                -> A. n e. I ( ( S gsum ( X ++ <" C "> ) ) ` n )
                             = ( ( Z gsum ( Y ++ <" R "> ) ) ` n ) ) ) ) $=
      ( cfv wceq vj cfn wcel wa cword chash w3a cv wral cc0 cfzo co cgsu wi cs1
      cconcat wb csn cun caddc ccatws1len 3ad2ant1 oveq2d cuz cn0 lencl elnn0uz
      c1 sylib adantr fzosplitsn syl eqtrd raleqdv fveq2 fveq1d eqeq12d ralbidv
      ralunsn simpl simpr ccats1val1 syl3anc simpl2l simpl2r oveq2 3ad2ant3 imp
      eleq2d biimpd eqidd 3jca ccats1val2 df-3an biimpri 3adant1 anbi12d 3bitrd
      ralbidva ad2antlr pm3.35 cbvralv simp-4l simp-4r anim1i gsmsymgreqlem1 ex
      weq syl21anc ralimdva expcom sylbi com23 impancom com13 sylbid ) JUBUCZIU
      BUCZUDZKAUEUCZBAUCZUDZLCUEUCZDCUCZUDZKUFSZLUFSZTZUGZUDZGUHZFUHZKSZSZYKYLL
      SZSZTZGHUIZFUJYFUKULZUIZYKEKUMULZSZYKMLUMULZSZTZGHUIZUNZYKYLKBUOUPULZSZSZ
      YKYLLDUOUPULZSZSZTZGHUIZFUJUUHUFSZUKULZUIZYKEUUHUMULSYKMUUKUMULSTZGHUIZUN
      YJUUGUDUURYTYKBSZYKDSZTZGHUIZUDZUUTYIUURUVEUQXSUUGYIUURUUOFYSYFURUSZUIZUU
      OFYSUIZYKYFUUHSZSZYKYFUUKSZSZTZGHUIZUDZUVEYIUUOFUUQUVFYIUUQUJYFVHUTULZUKU
      LZUVFYIUUPUVPUJUKYBYEUUPUVPTYHAKBVAVBVCYBYEUVQUVFTZYHYBYFUJVDSUCZUVRXTUVS
      YAXTYFVEUCZUVSAKVFZYFVGVIVJUJYFVKVLVBVMVNYIUVTUVGUVOUQYBYEUVTYHXTUVTYAUWA
      VJVBUUOUVNFYSYFVEYLYFTZUUNUVMGHUWBUUJUVJUUMUVLUWBYKUUIUVIYLYFUUHVOVPUWBYK
      UULUVKYLYFUUKVOVPVQVRVSVLYIUVHYTUVNUVDYIUUOYRFYSYIYLYSUCZUDZUUNYQGHUWDUUJ
      YNUUMYPUWDYKUUIYMUWDXTYAUWCUUIYMTYIXTUWCYBYEXTYHXTYAVTZVBVJYIYAUWCYBYEYAY
      HXTYAWAZVBVJYIUWCWABYLAKWBWCVPUWDYKUULYOUWDYCYDYLUJYGUKULZUCZUULYOTYCYDYB
      YHUWCWDYCYDYBYHUWCWEYIUWCUWHYHYBUWCUWHUNYEYHUWCUWHYHYSUWGYLYFYGUJUKWFWIWJ
      WGWHDYLCLWBWCVPVQVRWSYIUVMUVCGHYIUVJUVAUVLUVBYIYKUVIBYIXTYAYFYFTZUGZUVIBT
      YBYEUWJYHYBXTYAUWIUWEUWFYBYFWKWLVBBYFAKWMVLVPYIYCYDYHUGZUVLUVBTYEYHUWKYBU
      WKYEYHUDYCYDYHWNWOWPUWKYKUVKDDYFCLWMVPVLVQVRWQWRWTYJUUGUVEUUTUNUVEUUGYJUU
      TYTUUGUVDYJUUTUNZYTUUGUDUUFUVDUWLUNYTUUFXAUUFYJUVDUUTUUFUAUHZUUASZUWMUUCS
      ZTZUAHUIZYJUVDUUTUNZUNUUEUWPGUAHGUAXHUUBUWNUUDUWOYKUWMUUAVOYKUWMUUCVOVQXB
      YJUWQUWRYJUWQUDZUVCUUSGHUWSYKHUCZUDZUVCUUSUXAUVCUDXQXRUWTUGZYIUWQUVCUDZUU
      SUXAUXBUVCUXAXQXRUWTXQXRYIUWQUWTXCXQXRYIUWQUWTXDUWSUWTWAWLVJXSYIUWQUWTUVC
      XDUXAUWQUVCUWSUWQUWTYJUWQWAVJXEUXBYIUDUXCUUSABCDEUAHYKIJKLMNOPQRXFWHXIXGX
      JXKXLXMVLXNXOWHXPXG $.

    $d i p x $.  $d B b p u x $.  $d I b p u w x y $.  $d M b n p u w x y $.
    $d N b n p u x $.  $d P b p u w x y $.  $d S b p u x $.  $d U b i u $.
    $d U n w x $.  $d W n u $.  $d Z b p u w x y $.
    $( Two combination of permutations moves an element of the intersection of
       the base sets of the permutations to the same element if each pair of
       corresponding permutations moves such an element to the same element.
       (Contributed by AV, 20-Jan-2019.) $)
    gsmsymgreq $p |- ( ( ( N e. Fin /\ M e. Fin )
                          /\ ( W e. Word B /\ U e. Word P
                               /\ ( # ` W ) = ( # ` U ) ) )
                        -> ( A. i e. ( 0 ..^ ( # ` W ) ) A. n e. I
                                      ( ( W ` i ) ` n ) = ( ( U ` i ) ` n )
                -> A. n e. I ( ( S gsum W ) ` n ) = ( ( Z gsum U ) ` n ) ) ) $=
      ( cfv wceq wral cgsu vw vu vx vy vb vp cword wcel chash w3a cfn wa cv cc0
      cfzo co wi cs1 cconcat fveq2 oveq2d adantr fveq1 fveq1d eqeqan12d ralbidv
      c0 raleqbidv oveq2 imbi12d imbi2d weq eqeq1d eqeq2d cid cres eleq2 syl6bb
      cin elin simpl syl6bi ax-mp adantl fvresi syl eqtr4d ralrimiva c0g symgid
      simpr gsum0 syl6reqr eqeq12d mpbird a1d gsmsymgreqlem2 expcom a2d wrd2ind
      eqid impcom ) JAUGZUHDBUGZUHJUIQZDUIQRUJIUKUHZHUKUHZULZFUMZEUMZJQZQZXIXJD
      QZQZRZFGSZEUNXEUOUPZSZXICJTUPZQZXIKDTUPZQZRZFGSZUQZXHXIXJUAUMZQZQZXIXJUBU
      MZQZQZRZFGSZEUNYFUIQZUOUPZSZXICYFTUPZQZXIKYITUPZQZRZFGSZUQZUQXHXIXJVGQZQZ
      UUERZFGSZEUNVGUIQZUOUPZSZXICVGTUPZQZXIKVGTUPZQZRZFGSZUQZUQXHXIXJUCUMZQZQZ
      XIXJUDUMZQZQZRZFGSZEUNUURUIQZUOUPZSZXICUURTUPZQZXIKUVATUPZQZRZFGSZUQZUQXH
      XIXJUURUEUMZURUSUPZQZQZXIXJUVAUFUMZURUSUPZQZQZRZFGSZEUNUVQUIQZUOUPZSZXICU
      VQTUPZQZXIKUWATUPZQZRZFGSZUQZUQXHYEUQXHYHXNRZFGSZEYOSZYRYBRZFGSZUQZUQUAUC
      UEUBUDJDABUFYFVGRZYIVGRZULZUUCUUQXHUXDYPUUJUUBUUPUXDYMUUGEYOUUIUXBYOUUIRU
      XCUXBYNUUHUNUOYFVGUIUTVAVBUXDYLUUFFGUXBUXCYHUUEYKUUEUXBXIYGUUDXJYFVGVCVDU
      XCXIYJUUDXJYIVGVCVDVEVFVHUXDUUAUUOFGUXBUXCYRUULYTUUNUXBXIYQUUKYFVGCTVIVDU
      XCXIYSUUMYIVGKTVIVDVEVFVJVKUAUCVLZUBUDVLZULZUUCUVOXHUXGYPUVHUUBUVNUXGYMUV
      EEYOUVGUXEYOUVGRUXFUXEYNUVFUNUOYFUURUIUTVAVBUXGYLUVDFGUXEUXFYHUUTYKUVCUXE
      XIYGUUSXJYFUURVCVDUXFXIYJUVBXJYIUVAVCVDVEVFVHUXGUUAUVMFGUXEUXFYRUVJYTUVLU
      XEXIYQUVIYFUURCTVIVDUXFXIYSUVKYIUVAKTVIVDVEVFVJVKYFUVQRZYIUWARZULZUUCUWOX
      HUXJYPUWHUUBUWNUXJYMUWEEYOUWGUXHYOUWGRUXIUXHYNUWFUNUOYFUVQUIUTVAVBUXJYLUW
      DFGUXHUXIYHUVSYKUWCUXHXIYGUVRXJYFUVQVCVDUXIXIYJUWBXJYIUWAVCVDVEVFVHUXJUUA
      UWMFGUXHUXIYRUWJYTUWLUXHXIYQUWIYFUVQCTVIVDUXIXIYSUWKYIUWAKTVIVDVEVFVJVKYF
      JRZUXAYEXHUXKUWRXRUWTYDUXKUWQXPEYOXQUXKYNXEUNUOYFJUIUTVAUXKUWPXOFGUXKYHXL
      XNUXKXIYGXKXJYFJVCVDVMVFVHUXKUWSYCFGUXKYRXTYBUXKXIYQXSYFJCTVIVDVMVFVJVKYI
      DRZUUCUXAXHUXLYPUWRUUBUWTUXLYMUWQEYOUXLYLUWPFGUXLYKXNYHUXLXIYJXMXJYIDVCVD
      VNVFVFUXLUUAUWSFGUXLYTYBYRUXLXIYSYAYIDKTVIVDVNVFVJVKXHUUPUUJXHUUPXIVOIVPZ
      QZXIVOHVPZQZRZFGSXHUXQFGXHXIGUHZULZUXNXIUXPUXSXIIUHZUXNXIRUXRUXTXHGIHVSZR
      ZUXRUXTUQPUYBUXRUXTXIHUHZULZUXTUYBUXRXIUYAUHUYDGUYAXIVQXIIHVTVRZUXTUYCWAW
      BWCWDIXIWEWFUXSUYCUXPXIRUXRUYCXHUYBUXRUYCUQPUYBUXRUYDUYCUYEUXTUYCWKWBWCWD
      HXIWEWFWGWHXHUUOUXQFGXHUULUXNUUNUXPXHXIUUKUXMXHUXMCWIQZUUKXFUXMUYFRXGICUK
      LWJVBCUYFUYFXAWLWMVDXHXIUUMUXOXHUXOKWIQZUUMXGUXOUYGRXFHKUKNWJWDKUYGUYGXAW
      LWMVDWNVFWOWPUURXCUHUVPAUHULUVAXDUHUVTBUHULUVFUVAUIQRUJZXHUVOUWOXHUYHUVOU
      WOUQAUVPBUVTCEFGHIUURUVAKLMNOPWQWRWSWTXB $.
  $}

  ${
    $d K q $.  $d P q $.
    symgfixf.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    symgfixf.q $e |- Q = { q e. P | ( q ` K ) = K } $.
    ${
      $d f q $.  $d F f $.  $d K f $.  $d P f $.
      $( A permutation of a set fixing an element of the set.  (Contributed by
         AV, 4-Jan-2019.) $)
      symgfixelq $p |- ( F e. V
                -> ( F e. Q <-> ( F : N -1-1-onto-> N /\ ( F ` K ) = K ) ) ) $=
        ( vf wcel cfv wceq wa wf1o cv fveq1 eqeq1d crab weq cbvrabv eqtri csymg
        elrab2 eqid elsymgbas2 anbi1d syl5bb ) CBKCAKZDCLZDMZNCFKZEECOZUKNDJPZL
        ZDMZUKJCABUNCMUOUJDDUNCQRBDGPZLZDMZGASUPJASIUSUPGJAGJTURUODDUQUNQRUAUBU
        DULUIUMUKEACEUCLZFUTUEHUFUGUH $.
    $}

    symgfixf.s $e |- S = ( Base ` ( SymGrp ` ( N \ { K } ) ) ) $.
    ${
      symgfixf.d $e |- D = ( N \ { K } ) $.
      $( The restriction of a permutation to a set with one element removed is
         an element of the restricted symmetric group if the restriction is a
         1-1 onto function.  (Contributed by AV, 4-Jan-2019.) $)
      symgfixels $p |- ( F e. V
                  -> ( ( F |` D ) e. S <-> ( F |` D ) : D -1-1-onto-> D ) ) $=
        ( wcel cfv wf1o wb a1i cvv eqid cres csn csymg eleq2i resexg elsymgbas2
        cdif cbs syl eqidd wceq eqcomd f1oeq123d 3bitrd ) EHNZEAUAZDNZUPGFUBUGZ
        UCOZUHOZNZURURUPPZAAUPPUQVAQUODUTUPLUDRUOUPSNVAVBQEAHUEURUTUPUSSUSTUTTU
        FUIUOURAURAUPUPUOUPUJUOAURAURUKUOMRULZVCUMUN $.

      $( The restriction of a permutation fixing an element to the set with
         this element removed is an element of the restricted symmetric group.
         (Contributed by AV, 4-Jan-2019.) $)
      symgfixelsi $p |- ( ( K e. N /\ F e. Q ) -> ( F |` D ) e. S ) $=
        ( wcel cres wf1o wceq wa csn cima ad2antrl wi cfv symgfixelq cdif f1of1
        wf1 wss difssd f1ores syl2anc reseq2i a1i wfo f1ofo foima eqcomd eqcoms
        syl sneq ad2antll wfn f1ofn simpl fnsnfv eqtrd difeq12d ccnv crn dff1o2
        wfun simp2bi imadif 3eqtr4d f1oeq123d mpbird ancoms syl5ibr expd sylbid
        symgfixels pm2.43i impcom ) ECMZFGMZEANZDMZWCWDWFUAZWCWCGGEOZFEUBZFPZQZ
        WGBCEFGCHIJUCWCWKWDWFWKWDQWFWCAAWEOZWDWKWLWDWKQZWLGFRZUDZEWOSZEWONZOZWM
        GGEUFZWOGUGWRWHWSWDWJGGEUETWMGWNUHGGWOEUIUJWMAWOAWPWEWQWEWQPWMAWOELUKUL
        AWOPWMLULZWMWOEGSZEWNSZUDZAWPWMGXAWNXBWHGXAPZWDWJWHGGEUMZXDGGEUNXEXAGGG
        EUOUPURTWMWNWIRZXBWJWNXFPZWDWHXGFWIFWIUSUQUTWMEGVAZWDXFXBPWHXHWDWJGGEVB
        TWDWKVCGFEVDUJVEVFWTWMEVGVJZWPXCPWHXIWDWJWHXHXIEVHGPGGEVIVKTGWNEVLURVMV
        NVOVPABCDEFGCHIJKLVTVQVRVSWAWB $.
    $}

    $d N q $.  $d Q q $.  $d S q $.
    symgfixf.h $e |- H = ( q e. Q |-> ( q |` ( N \ { K } ) ) ) $.
    $( The mapping of a permutation of a set fixing an element to a permutation
       of the set without the fixed element is a function.  (Contributed by AV,
       4-Jan-2019.) $)
    symgfixf $p |- ( K e. N -> H : Q --> S ) $=
      ( wcel cv csn cdif cres eqid symgfixelsi fmptd ) EFLGBGMZFENOZPCDUAABCTEF
      GHIJUAQRKS $.

    $d H g p $.  $d K g i p $.  $d N g i p q $.  $d Q g p $.
    $( The mapping of a permutation of a set fixing an element to a permutation
       of the set without the fixed element is a 1-1 function.  (Contributed by
       AV, 4-Jan-2019.) $)
    symgfixf1 $p |- ( K e. N -> H : Q -1-1-> S ) $=
      ( vg vp vi wcel cfv wceq wa wb adantr wf cv weq wi wral wf1 symgfixf cdif
      csn cres fvtresfn eqeqan12d wf1o cvv vex symgfixelq ax-mp anbi12i wfn wss
      adantl f1ofn anim12i difss jctir fvreseq syl cdm f1of fdm syl2an ad2antlr
      eqtr3 simpr ad2ant2l fveq2 eqeq12d ralunsn mpbir2and f1odm difsnid eqcomd
      sylan9eqr raleqdv mpbird wfun f1ofun eqfunfv ex sylbid sylan2b ralrimivva
      cun dff13 sylanbrc ) EFOZBCDUALUBZDPZMUBZDPZQZLMUCZUDZMBUELBUEBCDUFABCDEF
      GHIJKUGWPXCLMBBWPWQBOZWSBOZRZRXAWQFEUIZUHZUJZWSXHUJZQZXBXFXAXKSWPXDXEWRXI
      WTXJGBDXHWQKUKGBDXHWSKUKULVAXFWPFFWQUMZEWQPZEQZRZFFWSUMZEWSPZEQZRZRZXKXBU
      DXDXOXEXSWQUNOXDXOSLUOABWQEFUNGHIUPUQWSUNOXEXSSMUOABWSEFUNGHIUPUQURWPXTRZ
      XKNUBZWQPZYBWSPZQZNXHUEZXBYAWQFUSZWSFUSZRZXHFUTZRZXKYFSXTYKWPXTYIYJXOYGXS
      YHXLYGXNFFWQVBTXPYHXRFFWSVBTVCFXGVDVEVANFXHWQWSVFVGYAYFXBYAYFRZXBWQVHZWSV
      HZQZYENYMUEZXTYOWPYFXTYMFQZYNFQZRZYOXOFFWQUAZFFWSUAZYSXSXLYTXNFFWQVITXPUU
      AXRFFWSVITYTYQUUAYRFFWQVJFFWSVJVCVKYMYNFVMVGVLYLYPYENXHXGWMZUEZYLUUCYFXMX
      QQZYAYFVNXTUUDWPYFXNXRUUDXLXPXMXQEVMVOVLYAUUCYFUUDRSZYFWPUUEXTYEUUDNXHEFY
      BEQYCXMYDXQYBEWQVPYBEWSVPVQVRTTVSYLYENYMUUBYAYMUUBQYFXTWPYMFUUBXOYQXSXLYQ
      XNFFWQVTTTWPUUBFFEWAWBWCTWDWEYLWQWFZWSWFZRZXBYOYPRSXTUUHWPYFXOUUFXSUUGXLU
      UFXNFFWQWGTXPUUGXRFFWSWGTVCVLNWQWSWHVGVSWIWJWKWJWLLMBCDWNWO $.

    ${
      $d E x $.  $d K x $.  $d N x $.  $d S x $.  $d V x $.  $d Z x $.
      symgfixfo.e $e |- E = ( x e. N |-> if ( x = K , K , ( Z ` x ) ) ) $.
      $( Lemma 1 for ~ symgfixfo .  (Contributed by AV, 7-Jan-2019.) $)
      symgfixfolem1 $p |- ( ( N e. V /\ K e. N /\ Z e. S ) -> E e. Q ) $=
        ( wcel cfv wceq cvv w3a wf1o symgextf1o 3adant1 simp2 cif iftrue fvmptg
        cv syl2anc wa wb cmpt mptexg 3ad2ant1 syl5eqel symgfixelq syl mpbir2and
        ) HIQZGHQZJDQZUAZECQZHHEUBZGERGSZVAVBVEUTADEGHJNPUCUDVCVAVAVFUTVAVBUEZV
        GAGAUIZGSZGVHJRZUFZGHHEVIGVJUGPUHUJVCETQVDVEVFUKULVCEAHVKUMZTPUTVAVLTQV
        BAHVKIUNUOUPBCEGHTKLMUQURUS $.
    $}

    $d H s $.  $d K s $.  $d N s $.  $d Q s $.  $d S p s $.  $d S i j s $.
    $d V p $.  $d V j s $.  $d K j $.  $d N j $.
    $( The mapping of a permutation of a set fixing an element to a permutation
       of the set without the fixed element is an onto function.  (Contributed
       by AV, 7-Jan-2019.) $)
    symgfixfo $p |- ( ( N e. V /\ K e. N ) -> H : Q -onto-> S ) $=
      ( vs vp vi vj wcel wa cv wceq cfv wrex wral wfo symgfixf adantl cdif cres
      wf csn cif cmpt eqeq1 fveq2 ifbieq2d cbvmptv symgfixfolem1 3expa wi simpr
      weq anim1i symgextres syl eqcomd wb reseq1 eqeq2d adantr mpbird rspcimedv
      eqid ex pm2.43i fvtresfn rexbidva ralrimiva dffo3 sylanbrc ) FGQZEFQZRZBC
      DUIZMSZNSZDUAZTZNBUBZMCUCBCDUDWAWCVTABCDEFHIJKLUEUFWBWHMCWBWDCQZRZWHWDWEF
      EUJUGZUHZTZNBUBZWJWNWJWMWJNOFOSZETZEWOWDUAZUKZULZBVTWAWIWSBQPABCWSDEFGWDH
      IJKLOPFWRPSZETZEWTWDUAZUKOPVAWPXAWQXBEWOWTEUMWOWTWDUNUOUPUQURWEWSTZWJWMUS
      WJXCWJWMXCWJRZWMWDWSWKUHZTZXDXEWDXDWAWIRZXEWDTWJXGXCWBWAWIVTWAUTVBUFOCWSE
      FWDKWSVLVCVDVEXCWMXFVFWJXCWLXEWDWEWSWKVGVHVIVJVMUFVKVNWJWGWMNBWEBQZWGWMVF
      WJXHWFWLWDHBDWKWELVOVHUFVPVJVQNMBCDVRVS $.

    $( The mapping of a permutation of a set fixing an element to a permutation
       of the set without the fixed element is a bijection.  (Contributed by
       AV, 7-Jan-2019.) $)
    symgfixf1o $p |- ( ( N e. V /\ K e. N ) -> H : Q -1-1-onto-> S ) $=
      ( wcel wa wf1 wfo wf1o symgfixf1 adantl symgfixfo df-f1o sylanbrc ) FGMZE
      FMZNBCDOZBCDPBCDQUDUEUCABCDEFHIJKLRSABCDEFGHIJKLTBCDUAUB $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Transpositions in the symmetric group
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
<HTML>
Transpositions are special cases of "cycles" as defined in [Rotman] p. 28: "Let
i<sub>1</sub> , i<sub>2</sub> , ... , i<sub>r</sub> be distinct integers
between 1 and n. If &alpha; in S<sub>n</sub> fixes the other integers and
&alpha;(i<sub>1</sub>) = i<sub>2</sub>, &alpha;(i<sub>2</sub>) = i<sub>3</sub>,
..., &alpha;(i<sub>r-1</sub> ) = i<sub>r</sub>, &alpha;(i<sub>r</sub>) =
i<sub>1</sub>, then &alpha; is an <b>r-cycle</b>. We also say that &alpha; is a
cycle of <b>length</b> r." and in [Rotman] p. 31: "A 2-cycle is also called
<b>transposition</b>.".
<br><br>
We (currently) do not have/need a definition for cycles, so transpositions are
explicitly defined in ~ df-pmtr .
</HTML>
$)

  $c pmTrsp $.
  $( Syntax for the transposition generator function. $)
  cpmtr $a class pmTrsp $.

  ${
    $d d p y z $.
    $( Define a function that generates the transpositions on a set.
       (Contributed by Stefan O'Rear, 16-Aug-2015.) $)
    df-pmtr $a |- pmTrsp = ( d e. _V |->
        ( p e. { y e. ~P d | y ~~ 2o } |-> ( z e. d |->
            if ( z e. p , U. ( p \ { z } ) , z ) ) ) ) $.
  $}

  ${
    $d x y F $.  $d x y A $.  $d x y G $.
    $( A permutation of any class moves a point which is moved to a different
       point which is moved.  (Contributed by Stefan O'Rear, 22-Aug-2015.) $)
    f1omvdmvd $p |- ( ( F : A -1-1-onto-> A /\ X e. dom ( F \ _I ) ) ->
        ( F ` X ) e. ( dom ( F \ _I ) \ { X } ) ) $=
      ( wf1o cid cdif cdm wcel wa cfv wne csn simpr adantr fnelnfp syl2anc wceq
      wb wss mpbird wfn f1ofn difss ax-mp f1odm syl5sseq sselda mpbid wf1 f1of1
      dmss wf f1of ffvelrnd f1fveq syl12anc necon3bid eldifsn sylanbrc ) AABDZC
      BEFZGZHZIZCBJZVBHZVECKZVEVBCLFHVDVFVEBJZVEKZVDVIVGVDVCVGUTVCMVDBAUAZCAHZV
      CVGRUTVJVCAABUBNZUTVBACUTBGZVBAVABSVBVMSBEUCVABUKUDAABUEUFUGZABCOPUHZVDVH
      VEVECVDAABUIZVEAHZVKVHVEQVECQRUTVPVCAABUJNVDAACBUTAABULVCAABUMNVNUNZVNAAV
      ECBUOUPUQTVDVJVQVFVIRVLVRABVEOPTVOVEVBCURUS $.

    $( A permutation and its inverse move the same points.  (Contributed by
       Stefan O'Rear, 22-Aug-2015.) $)
    f1omvdcnv $p |- ( F : A -1-1-onto-> A
        -> dom ( `' F \ _I ) = dom ( F \ _I ) ) $=
      ( vx wf1o cv ccnv cfv wne crab cid cdif cdm wcel wa wceq wb f1ocnvfvb wfn
      f1ofn fndifnfp 3anidm23 bicomd necon3bid rabbidva f1ocnv 3syl syl 3eqtr4d
      ) AABDZCEZBFZGZUJHZCAIZUJBGZUJHZCAIZUKJKLZBJKLZUIUMUPCAUIUJAMZNZULUJUOUJV
      AUOUJOZULUJOZUIUTVBVCPAAUJUJBQUAUBUCUDUIAAUKDUKARURUNOAABUEAAUKSCAUKTUFUI
      BARUSUQOAABSCABTUGUH $.

    $( Composing two permutations moves at most the union of the points.
       (Contributed by Stefan O'Rear, 22-Aug-2015.) $)
    mvdco $p |- dom ( ( F o. G ) \ _I )
        C_ ( dom ( F \ _I ) u. dom ( G \ _I ) ) $=
      ( ccom cid cdif cdm cin cun inundif coeq2i coundi difeq1i eqtri wss ax-mp
      eqtr3i ccnv eqsstri sstri dmss dmeqi dmun inss2 coss2 cocnvcnv1 wrel wceq
      difundir relcnv coi1 cnvcnvss ssdif mp2b difss dmcoss unss12 mp2an ) ABCZ
      DEZFZABDGZCZDEZFZABDEZCZDEZFZHZADEZFZVEFZHZUTVCVGHZFVIUSVNUSVBVFHZDEVNURV
      ODAVAVEHZCURVOVPBABDIJAVAVEKPLVBVFDUHMUAVCVGUBMVDVKNZVHVLNVIVMNVBANVCVJNV
      QVBADCZAVADNVBVRNBDUCVADAUDOVRAQZQZAVTDCZVRVTADUEVTUFWAVTUGVSUIVTUJOPAUKR
      SVBADULVCVJTUMVHVFFZVLVGVFNVHWBNVFDUNVGVFTOAVEUOSVDVKVHVLUPUQR $.

    $( Conjugation of a permutation takes the image of the moved subclass.
       (Contributed by Stefan O'Rear, 22-Aug-2015.) $)
    f1omvdconj $p |- ( ( F : A --> A /\ G : A -1-1-onto-> A )
        -> dom ( ( ( G o. F ) o. `' G ) \ _I ) = ( G " dom ( F \ _I ) ) ) $=
      ( vx wf wf1o wa ccom cid cdm wss wceq syl wcel cfv wne wfn syl2anc sylan
      wb ccnv cdif cima cv difss dmss ax-mp dmcoss sstri f1ocnv adantl syl5sseq
      f1odm sselda crn imassrn f1of frn syl5ss simpl fco fnelnfp f1ofn ad2antrr
      fvco2 ffvelrn eqtrd eqeq1d simplr simpr f1ocnvfvb syl3anc bitrd necon3bid
      ffn simpll necom wf1 f1of1 ad2antlr fdm f1elima f1ocnvfv2 eleq1d 3bitr3rd
      adantll syl5bb 3bitrd eqrdav ) AABEZAACFZGZDCBHZCUAZHZIUBZJZCBIUBZJZUCZAW
      LWQADUDZWLWNJZWQAWQWOJZXBWPWOKWQXCKWOIUEWPWOUFUGWMWNUHUIWLAAWNFZXBALWKXDW
      JAACUJUKZAAWNUMMULUNWLWTAXAWLWTCUOZACWSUPWLAACEZXFAKWKXGWJAACUQUKZAACURMU
      SUNWLXAANZGZXAWQNZXAWOOZXAPZXAWNOZXNBOZPZXAWTNZWLWOAQZXIXKXMTWLAAWOEZXRWL
      AAWMEZAAWNEZXSWLXGWJXTXHWJWKUTAAACBVARWLXDYAXEAAWNUQMZAAAWMWNVARAAWOVOMAW
      OXAVBSXJXLXAXNXOXJXLXALXOCOZXALZXNXOLZXJXLYCXAXJXLXNWMOZYCWLWNAQZXIXLYFLW
      LXDYGXEAAWNVCMAWMWNXAVESXJBAQZXNANZYFYCLWJYHWKXIAABVOVDZWLYAXIYIYBAAXAWNV
      FSZACBXNVERVGVHXJWKXOANZXIYDYETWJWKXIVIXJWJYIYLWJWKXIVPYKAAXNBVFRWLXIVJAA
      XOXACVKVLVMVNXPXOXNPZXJXQXNXOVQXJXNCOZWTNZXNWSNZXQYMXJAACVRZYIWSAKZYOYPTW
      KYQWJXIAACVSVTYKWJYRWKXIWJBJZWSAWRBKWSYSKBIUEWRBUFUGAABWAULVDAACXNWSWBVLX
      JYNXAWTWKXIYNXALWJAAXACWCWFWDXJYHYIYPYMTYJYKABXNVBRWEWGWHWI $.

    $( A transposition is characterized by the points it moves.  (Contributed
       by Stefan O'Rear, 22-Aug-2015.) $)
    f1otrspeq $p |- ( ( ( F : A -1-1-onto-> A /\ G : A -1-1-onto-> A ) /\
          ( dom ( F \ _I ) ~~ 2o /\ dom ( G \ _I ) = dom ( F \ _I ) ) ) ->
        F = G ) $=
      ( vx vy wf1o wa cid cdif cdm c2o cen wbr wceq wfn wcel c1o wb sylan cvv
      f1ofn ad2antrr ad2antlr cv cfv csn wmo com csuc a1i simplrr simplrl df-2o
      1onn syl6breq eqbrtrd simpr dif1en syl3anc weu euen1b sylbi syl f1omvdmvd
      eumo wi eleq2 ad2antll difeq1 eleq2d 3imtr4d imp simplr fvex pm3.2i eleq1
      ex moi mp3an1 syl12anc adantlr wn fnelnfp bitrd necon2bbid biimpar eqtr4d
      wne pm2.61dan eqfnfvd ) AABFZAACFZGZBHIJZKLMZCHIJZWNNZGZGZDABCWKBAOZWLWRA
      ABUAUBZWLCAOZWKWRAACUAUCZWSDUDZAPZGZXDWPPZXDBUEZXDCUEZNZWSXGXJXEWSXGGZEUD
      ZWPXDUFZIZPZEUGZXHXNPZXIXNPZXJXKXNQLMZXPXKQUHPZWPQUIZLMXGXSXTXKUNUJXKWPWN
      YALWMWOWQXGUKXKWNKYALWMWOWQXGULUMUOUPWSXGUQWPQXDURUSXSXOEUTXPEXNVAXOEVEVB
      VCWSXGXQWSXDWNPZXHWNXMIZPZXGXQWKYBYDVFWLWRWKYBYDABXDVDVQUBWQXGYBRWMWOWPWN
      XDVGVHWQXQYDRWMWOWQXNYCXHWPWNXMVIVJVHVKVLWSWLXGXRWKWLWRVMACXDVDSXHTPZXITP
      ZGXPXQXRGXJYEYFXDBVNXDCVNVOXOXQXREXHXITTXLXHXNVPXLXIXNVPVRVSVTWAXFXGWBZGX
      HXDXIXFXHXDNYGXFXGXHXDXFXGYBXHXDWHZXFWPWNXDWMWOWQXEUKVJWSWTXEYBYHRXAABXDW
      CSWDWEWFXFXIXDNYGXFXGXIXDWSXBXEXGXIXDWHRXCACXDWCSWEWFWGWIWJ $.

    $( If exactly one of two permutations is limited to a set of points, then
       the composition will not be.  (Contributed by Stefan O'Rear,
       23-Aug-2015.) $)
    f1omvdco2 $p |- ( ( F : A -1-1-onto-> A /\ G : A -1-1-onto-> A /\
          ( dom ( F \ _I ) C_ X \/_ dom ( G \ _I ) C_ X ) ) ->
        -. dom ( ( F o. G ) \ _I ) C_ X ) $=
      ( wf1o cid cdif cdm wss ccom wn wa ccnv wceq coass f1of syl difeq1d dmeqd
      wf wxo wo excxor f1ococnv1 coeq1d fcoi2 sylan9eq syl5eqr adantr cun mvdco
      cres f1omvdcnv ad2antrr simprl eqsstrd simprr unssd syl5ss eqsstr3d con3d
      expr expimpd f1ococnv2 coeq2d fcoi1 sylan9eqr syl5eq ad2antlr jaod syl5bi
      ancomsd 3impia ) AABEZAACEZBFGZHZDIZCFGZHZDIZUAZBCJZFGHZDIZKZWBVRWAKZLZVR
      KZWALZUBVNVOLZWFVRWAUCWKWHWFWJWKVRWGWFWKVRLWEWAWKVRWEWAWKVRWELZLZVTBMZWCJ
      ZFGZHZDWKWQVTNWLWKWPVSWKWOCFWKWOWNBJZCJZCWNBCOVNVOWSFAULZCJZCVNWRWTCAABUD
      UEVOAACTXACNAACPAACUFQUGUHRSUIWMWQWNFGHZWDUJDWNWCUKWMXBWDDWMXBVQDVNXBVQNV
      OWLABUMUNWKVRWEUOUPWKVRWEUQURUSUTVBVAVCWKWAWIWFWKWAWIWFWKWALWEVRWKWAWEVRW
      KWAWELZLZVQWCCMZJZFGZHZDWKXHVQNXCWKXGVPWKXFBFWKXFBCXEJZJZBBCXEOVOVNXJBWTJ
      ZBVOXIWTBAACVDVEVNAABTXKBNAABPAABVFQVGVHRSUIXDXHWDXEFGHZUJDWCXEUKXDWDXLDW
      KWAWEUQXDXLVTDVOXLVTNVNXCACUMVIWKWAWEUOUPURUSUTVBVAVCVLVJVKVM $.

    $( If a point is moved by exactly one of two permutations, then it will be
       moved by their composite.  (Contributed by Stefan O'Rear,
       23-Aug-2015.) $)
    f1omvdco3 $p |- ( ( F : A -1-1-onto-> A /\ G : A -1-1-onto-> A /\
          ( X e. dom ( F \ _I ) \/_ X e. dom ( G \ _I ) ) ) ->
        X e. dom ( ( F o. G ) \ _I ) ) $=
      ( cid cdif cdm wcel wxo wf1o wss wb wn c0 wceq disjsn disj2 bitr3i df-xor
      cin cvv csn ccom notbi bibi12i bitri notbii 3bitr4i w3a f1omvdco2 con2bii
      sylibr syl3an3b ) DBEFGZHZDCEFGZHZIZAABJZAACJZUNUADUBZFZKZUPVBKZIZDBCUCEF
      GZHZUOUQLZMVCVDLZMURVEVHVIVHUOMZUQMZLVIUOUQUDVJVCVKVDVJUNVATNOVCUNDPUNVAQ
      RVKUPVATNOVDUPDPUPVAQRUEUFUGUOUQSVCVDSUHUSUTVEUIVFVBKZMVGABCVBUJVLVGVLVFV
      ATNOVGMVFVAQVFDPRUKULUM $.
  $}

  ${
    $d d p y z D $.  $d d p y z T $.  $d p y z P $.  $d z Z $.  $d z V $.
    pmtrfval.t $e |- T = ( pmTrsp ` D ) $.
    $( The function generating transpositions on a set.  (Contributed by Stefan
       O'Rear, 16-Aug-2015.) $)
    pmtrfval $p |- ( D e. V -> T = ( p e. { y e. ~P D | y ~~ 2o } |->
            ( z e. D |-> if ( z e. p , U. ( p \ { z } ) , z ) ) ) ) $=
      ( vd wcel cpmtr cfv cv c2o cen wbr cpw crab cmpt cvv wceq csn cif rabeqdv
      cdif cuni elex mpteq1 mpteq12dv df-pmtr vpwex mptrabex fvmpt3i syl syl5eq
      pweq ) CEIZDCJKZFALMNOZACPZQZBCBLZFLZIVBVAUAUDUEVAUBZRZRZGUPCSIUQVETCEUFH
      CFURAHLZPZQZBVFVCRZRVESJVFCTZFVHVIUTVDVJURAVGUSVFCUOUCBVFCVCUGUHABFHUIURF
      AVGVIHUJUKULUMUN $.

    $( A generated transposition, expressed in a symmetric form.  (Contributed
       by Stefan O'Rear, 16-Aug-2015.) $)
    pmtrval $p |- ( ( D e. V /\ P C_ D /\ P ~~ 2o ) -> ( T ` P ) =
        ( z e. D |-> if ( z e. P , U. ( P \ { z } ) , z ) ) ) $=
      ( vp vy wcel c2o cen wbr cfv cv cdif cuni cif cmpt wceq 3ad2ant1 wss crab
      w3a cpw csn pmtrfval fveq1d cvv elpw2g biimpar simp3 breq1 elrab sylanbrc
      3adant3 mptexg eleq2 difeq1 unieqd ifbieq1d mpteq2dv fvmptg syl2anc eqtrd
      eqid ) BEIZCBUAZCJKLZUCZCDMZCGHNZJKLZHBUDZUBZABANZGNZIZVPVOUEZOZPZVOQZRZR
      ZMZABVOCIZCVROZPZVOQZRZVFVGVJWDSVHVFCDWCHABDEGFUFUGTVICVNIZWIUHIZWDWISVIC
      VMIZVHWJVFVGWLVHVFWLVGCBEUIUJUOVFVGVHUKVLVHHCVMVKCJKULUMUNVFVGWKVHABWHEUP
      TGCWBWIVNUHWCVPCSZABWAWHWMVQWEVTWGVOVPCVOUQWMVSWFVPCVRURUSUTVAWCVEVBVCVD
      $.

    $( General value of mapping a point under a transposition.  (Contributed by
       Stefan O'Rear, 16-Aug-2015.) $)
    pmtrfv $p |- ( ( ( D e. V /\ P C_ D /\ P ~~ 2o ) /\ Z e. D ) ->
        ( ( T ` P ) ` Z ) = if ( Z e. P , U. ( P \ { Z } ) , Z ) ) $=
      ( vz wcel wss c2o cen wbr cfv csn cdif cuni cif wceq cvv syl2anc w3a cmpt
      wa cv pmtrval fveq1d adantr simpr simpl3 relen brrelexi difexg 4syl ifexg
      uniexg eleq1 sneq difeq2d unieqd id ifbieq12d eqid fvmptg eqtrd ) ADHZBAI
      ZBJKLZUAZEAHZUCZEBCMZMZEGAGUDZBHZBVMNZOZPZVMQZUBZMZEBHZBENZOZPZEQZVHVLVTR
      VIVHEVKVSGABCDFUEUFUGVJVIWESHZVTWERVHVIUHZVJWDSHZVIWFVJVGBSHWCSHWHVEVFVGV
      IUIBJKUJUKBWBSULWCSUOUMWGWAWDESAUNTGEVRWEASVSVMERZVNWAVQVMWDEVMEBUPWIVPWC
      WIVOWBBVMEUQURUSWIUTVAVSVBVCTVD $.

    $( In a transposition of two given points, each maps to the other.
       (Contributed by Stefan O'Rear, 25-Aug-2015.) $)
    pmtrprfv $p |- ( ( D e. V /\ ( X e. D /\ Y e. D /\ X =/= Y ) ) ->
        ( ( T ` { X , Y } ) ` X ) = Y ) $=
      ( wcel wne w3a wa cpr cfv csn cdif cuni cif wss wceq syl eqtrd c2o simpr1
      cen wbr simpl simpr2 prssi syl2anc pr2nelem adantl pmtrfv syl31anc prid1g
      iftrued difprsnss a1i prid2g simpr3 necomd eldifsn sylanbrc unieqd unisng
      snssd eqssd ) ACGZDAGZEAGZDEHZIZJZDDEKZBLLZDVLGZVLDMNZOZDPZEVKVFVLAQZVLUA
      UCUDZVGVMVQRVFVJUEVKVGVHVRVFVGVHVIUBZVFVGVHVIUFZDEAUGUHVJVSVFDEAAUIUJVTAV
      LBCDFUKULVKVQVPEVKVNVPDVKVGVNVTDEAUMSUNVKVPEMZOZEVKVOWBVKVOWBVOWBQVKDEUOU
      PVKEVOVKEVLGZEDHEVOGVKVHWDWADEAUQSVKDEVFVGVHVIURUSEVLDUTVAVDVEVBVKVHWCERW
      AEAVCSTTT $.

    $( In a transposition of two given points, all other points are mapped to
       themselves.  (Contributed by AV, 17-Mar-2019.) $)
    pmtrprfv3 $p |- ( ( D e. V /\ ( X e. D /\ Y e. D /\ Z e. D )
                        /\ ( X =/= Y /\ X =/= Z /\ Y =/= Z ) )
                      -> ( ( T ` { X , Y } ) ` Z ) = Z ) $=
      ( wcel w3a wne cpr cfv csn cdif simp1 3ad2ant2 wi necom biimpi 3ad2ant3
      cuni cif wss c2o cen wbr wceq simp22 prssi syl2anc pr2nelem 3adant3 com12
      3expia 3ad2ant1 impcom 3adant1 simp23 pmtrfv syl31anc nelprd iffalsed
      eqtrd ) ACHZDAHZEAHZFAHZIZDEJZDFJZEFJZIZIZFDEKZBLLZFVNHZVNFMNUAZFUBZFVMVD
      VNAUCZVNUDUEUFZVGVOVRUGVDVHVLOVMVEVFVSVHVDVEVLVEVFVGOPVDVEVFVGVLUHDEAUIUJ
      VHVLVTVDVLVHVTVIVJVHVTQVKVHVIVTVEVFVIVTQVGVEVFVIVTDEAAUKUNULUMUOUPUQVDVEV
      FVGVLURAVNBCFGUSUTVMVPVQFVMFDEVLVDFDJZVHVJVIWAVKVJWADFRSPTVLVDFEJZVHVKVIW
      BVJVKWBEFRSTTVAVBVC $.

    $( Functionality of a transposition.  (Contributed by Stefan O'Rear,
       16-Aug-2015.) $)
    pmtrf $p |- ( ( D e. V /\ P C_ D /\ P ~~ 2o ) -> ( T ` P ) : D --> D ) $=
      ( vz wcel wss c2o cen wbr w3a cfv wf cv csn cdif cuni wa c1o cmpt simpll2
      cif com csuc 1onn a1i simpll3 df-2o syl6breq simpr dif1en en1uniel eldifi
      syl3anc 3syl sseldd wn simplr ifclda eqid fmptd pmtrval feq1d mpbird ) AD
      GZBAHZBIJKZLZAABCMZNAAFAFOZBGZBVKPZQZRZVKUCZUAZNVIFAVPAVQVIVKAGZSZVLVOVKA
      VSVLSZBAVOVFVGVHVRVLUBVTVNTJKZVOVNGVOBGVTTUDGZBTUEZJKVLWAWBVTUFUGVTBIWCJV
      FVGVHVRVLUHUIUJVSVLUKBTVKULUOVNUMVOBVMUNUPUQVIVRVLURUSUTVQVAVBVIAAVJVQFAB
      CDEVCVDVE $.

    $( A transposition moves precisely the transposed points.  (Contributed by
       Stefan O'Rear, 16-Aug-2015.) $)
    pmtrmvd $p |- ( ( D e. V /\ P C_ D /\ P ~~ 2o ) ->
        dom ( ( T ` P ) \ _I ) = P ) $=
      ( vz wcel wss c2o cen wbr cfv cdif wne crab cin wceq 3syl wa c1o cv pmtrf
      w3a cid cdm wf wfn ffn fndifnfp csn cif pmtrfv neeq1d wb iffalse necon1ai
      cuni iftrue adantl com csuc 1onn a1i simpl3 df-2o syl6breq dif1en syl3anc
      simpr en1uniel eldifsni eqnetrd impbid2 adantr bitrd rabbidva incom dfin5
      ex eqtri syl6eqr simp2 df-ss sylib 3eqtrd ) ADGZBAHZBIJKZUCZBCLZUDMUEZFUA
      ZWJLZWLNZFAOZBAPZBWIAAWJUFWJAUGWKWOQABCDEUBAAWJUHFAWJUIRWIWOWLBGZFAOZWPWI
      WNWQFAWIWLAGZSZWNWQBWLUJMZUQZWLUKZWLNZWQWTWMXCWLABCDWLEULUMWIXDWQUNWSWIXD
      WQWQXCWLWQXBWLUOUPWIWQXDWIWQSZXCXBWLWQXCXBQWIWQXBWLURUSXEXATJKZXBXAGXBWLN
      XETUTGZBTVAZJKWQXFXGXEVBVCXEBIXHJWFWGWHWQVDVEVFWIWQVIBTWLVGVHXAVJXBBWLVKR
      VLVSVMVNVOVPWPABPWRBAVQFABVRVTWAWIWGWPBQWFWGWHWBBAWCWDWE $.
  $}

  ${
    $d w x y z D $.  $d x y P $.  $d w x y z T $.  $d y z V $.  $d x y F $.
    $d x y R $.
    pmtrrn.t $e |- T = ( pmTrsp ` D ) $.
    pmtrrn.r $e |- R = ran T $.
    $( Transposing two points gives a transposition function.  (Contributed by
       Stefan O'Rear, 22-Aug-2015.) $)
    pmtrrn $p |- ( ( D e. V /\ P C_ D /\ P ~~ 2o ) -> ( T ` P ) e. R ) $=
      ( vx vz vy wcel wss c2o cen wbr cv wfn cmpt cvv 3ad2ant1 w3a cfv crn crab
      cpw csn cdif cuni cif wral mptexg ralrimivw eqid syl wceq pmtrfval fneq1d
      fnmpt mpbird elpw2g biimpar 3adant3 simp3 breq1 sylanbrc fnfvelrn syl2anc
      elrab syl6eleqr ) AEKZBALZBMNOZUAZBDUBZDUCZCVMDHPZMNOZHAUEZUDZQZBVSKZVNVO
      KVMVTIVSJAJPZIPZKWCWBUFUGUHWBUIZRZRZVSQZVMWESKZIVSUJZWGVJVKWIVLVJWHIVSJAW
      DEUKULTIVSWEWFSWFUMURUNVMVSDWFVJVKDWFUOVLHJADEIFUPTUQUSVMBVRKZVLWAVJVKWJV
      LVJWJVKBAEUTVAVBVJVKVLVCVQVLHBVRVPBMNVDVHVEVSBDVFVGGVI $.

    ${
      pmtrfrn.p $e |- P = dom ( F \ _I ) $.
      $( A transposition (as a kind of function) is the function transposing
         the two points it moves.  (Contributed by Stefan O'Rear,
         22-Aug-2015.) $)
      pmtrfrn $p |- ( F e. R -> ( ( D e. _V /\ P C_ D /\ P ~~ 2o ) /\
            F = ( T ` P ) ) ) $=
        ( vy vx vw vz cvv wcel c2o cen wbr cfv wceq c0 wss w3a wa wn noel cpmtr
        crn fvprc syl5eq rneqd rn0 syl6eq eleq2d mtbiri con4i cpw wrex crab wfn
        cv csn cdif cuni cif cmpt wral mptexg ralrimivw eqid fnmpt syl pmtrfval
        wb fneq1d mpbird fvelrnb eleq2i breq1 rexrab bicomi 3bitr4g elpwi simp1
        wi cid cdm pmtrmvd simp2 eqsstrd simp3 eqbrtrd eqcomd fveq2d jca difeq1
        3jca dmeqd syl6eqr sseq1 3anbi23d simpl fveq2 eqeq12d anbi12d syl5ibcom
        adantl mpdan 3exp imp4a syl5 rexlimdv sylbid mpcom ) AMNZECNZXNBAUAZBOP
        QZUBZEBDRZSZUCZXNXOXNUDZXOETNEUEYBCTEYBCDUGZTGYBYCTUGTYBDTYBDAUFRTFAUFU
        HUIUJUKULUIUMUNUOXNXOIUTZOPQZYDDRZESZUCZIAUPZUQZYAXNEYCNZYGIJUTZOPQZJYI
        URZUQZXOYJXNDYNUSZYKYOVMXNYPKYNLALUTZKUTZNYRYQVAVBVCYQVDZVEZVEZYNUSZXNY
        TMNZKYNVFUUBXNUUCKYNLAYSMVGVHKYNYTUUAMUUAVIVJVKXNYNDUUAJLADMKFVLVNVOIYN
        EDVPVKCYCEGVQYOYJYMYEYGIJYIYLYDOPVRVSVTWAXNYHYAIYIYDYINYDAUAZXNYHYAWDYD
        AWBXNUUDYEYGYAXNUUDYEYGYAWDXNUUDYEUBZXNYFWEVBZWFZAUAZUUGOPQZUBZYFUUGDRZ
        SZUCZYGYAUUEUUJUULUUEXNUUHUUIXNUUDYEWCUUEUUGYDAAYDDMFWGZXNUUDYEWHWIUUEU
        UGYDOPUUNXNUUDYEWJWKWPUUEYDUUGDUUEUUGYDUUNWLWMWNYGUUGBSZUUMYAVMYGUUGEWE
        VBZWFBYGUUFUUPYFEWEWOWQHWRYGUUOUCZUUJXRUULXTUUOUUJXRVMYGUUOUUHXPUUIXQXN
        UUGBAWSUUGBOPVRWTXFUUQYFEUUKXSYGUUOXAUUOUUKXSSYGUUGBDXBXFXCXDXGXEXHXIXJ
        XKXLXM $.

      $( Mapping of a point under a transposition function.  (Contributed by
         Stefan O'Rear, 22-Aug-2015.) $)
      pmtrffv $p |- ( ( F e. R /\ Z e. D ) -> ( F ` Z ) =
          if ( Z e. P , U. ( P \ { Z } ) , Z ) ) $=
        ( wcel wa cfv csn cdif cuni cif wceq cvv wss c2o cen wbr pmtrfrn simprd
        w3a fveq1d adantr simpld pmtrfv sylan eqtrd ) ECJZFAJZKFELZFBDLZLZFBJBF
        MNOFPZULUNUPQUMULFEUOULARJBASBTUAUBUEZEUOQZABCDEGHIUCZUDUFUGULURUMUPUQQ
        ULURUSUTUHABDRFGUIUJUK $.
    $}

    $( For any transposition there are two points it is transposing.
       (Contributed by SO, 15-Jul-2018.) $)
    pmtrrn2 $p |- ( F e. R -> E. x e. D E. y e. D ( x =/= y /\
          F = ( T ` { x , y } ) ) ) $=
      ( wcel cv wa cfv wceq wex wrex c2o cen wbr cvv wss wne cpr cid cdm simpld
      cdif w3a eqid pmtrfrn simp3d simp2d simprd jca32 sseq1 breq1 fveq2 eqeq2d
      en2 syl anbi12d syl5ibcom vex bicomi wb pr2ne mp2an anbi1i anbi12i syl6ib
      prss 2eximdv mpd r2ex sylibr ) FDIZAJZCIBJZCIKZVPVQUAZFVPVQUBZELZMZKZKZBN
      ANZWCBCOACOVOFUCUFUDZVTMZBNANZWEVOWFPQRZWHVOCSIZWFCTZWIVOWJWKWIUGZFWFELZM
      ZCWFDEFGHWFUHUIZUEZUJZABWFURUSVOWGWDABVOWGVTCTZVTPQRZWBKZKZWDVOWKWIWNKZKW
      GXAVOWKWIWNVOWJWKWIWPUKWQVOWLWNWOULUMWGWKWRXBWTWFVTCUNWGWIWSWNWBWFVTPQUOW
      GWMWAFWFVTEUPUQUTUTVAWRVRWTWCVRWRVPVQCAVBZBVBZVJVCWSVSWBVPSIVQSIWSVSVDXCX
      DVPVQSSVEVFVGVHVIVKVLWCABCCVMVN $.

    $( A transposition function is an involution.  (Contributed by Stefan
       O'Rear, 22-Aug-2015.) $)
    pmtrfinv $p |- ( F e. R -> ( F o. F ) = ( _I |` D ) ) $=
      ( vx wcel wf wfn cdif cfv cen wbr wceq syl wa c1o sylan eqtrd cid cdm cvv
      ccom cres wss c2o w3a pmtrfrn simpld pmtrf simprd feq1d mpbird fco anidms
      eqid ffn 3syl fnresi a1i cv csn cif pmtrffv iftrue sylan9eq fveq2d simpll
      cuni simp2d ad2antrr csuc 1onn simp3d df-2o syl6breq simpr dif1en syl3anc
      com en1uniel eldifad sseldd syl2anc adantr en2other2 ancoms wn wb fnelnfp
      necon2bbid biimpar fveq2 id pm2.61dan fvco2 fvresi adantl 3eqtr4d eqfnfvd
      wne ) DBHZGADDUDZUAAUEZXCAADIZAAXDIZXDAJXCXFAADUAKUBZCLZIZXCAUCHZXHAUFZXH
      UGMNZUHZXJXCXNDXIOZAXHBCDEFXHUQZUIZUJZAXHCUCEUKPXCAADXIXCXNXOXQULUMUNZXFX
      GAAADDUOUPAAXDURUSXEAJXCAUTVAXCGVBZAHZQZXTDLZDLZXTXTXDLZXTXELZYBXTXHHZYDX
      TOZYBYGQZYDXHXTVCZKZVJZDLZXTYIYCYLDYBYGYCYGYLXTVDYLAXHBCDXTEFXPVEYGYLXTVF
      VGVHYIYMYLXHHZXHYLVCKVJZYLVDZXTYIXCYLAHYMYPOXCYAYGVIYIXHAYLXCXLYAYGXCXKXL
      XMXRVKVLYIYLXHYJYIYKRMNZYLYKHYIRWAHZXHRVMZMNZYGYQYRYIVNVAXCYTYAYGXCXHUGYS
      MXCXKXLXMXRVOZVPVQVLYBYGVRXHRXTVSVTYKWBPWCZWDAXHBCDYLEFXPVEWEYIYPYOXTYIYN
      YPYOOUUBYNYOYLVFPYBXMYGYOXTOZXCXMYAUUAWFYGXMUUCXHXTWGWHSTTTYBYGWIZQYCXTOZ
      YHYBUUEUUDYBYGYCXTXCDAJZYAYGYCXTXBWJXCXFUUFXSAADURPZADXTWKSWLWMUUEYDYCXTY
      CXTDWNUUEWOTPWPXCUUFYAYEYDOUUGADDXTWQSYAYFXTOXCAXTWRWSWTXA $.

    $( A transposition moves at least one point.  (Contributed by Stefan
       O'Rear, 23-Aug-2015.) $)
    pmtrfmvdn0 $p |- ( F e. R -> dom ( F \ _I ) =/= (/) ) $=
      ( wcel cid cdif cdm c0 wne c2o 2on0 cen wbr wceq wb cvv en0 simpld simp3d
      wss w3a cfv eqid pmtrfrn enen1 syl 3bitr3g necon3bid mpbiri ) DBGZDHIJZKL
      MKLNUMUNKMKUMUNKOPZMKOPZUNKQMKQUMUNMOPZUOUPRUMASGZUNAUCZUQUMURUSUQUDDUNCU
      EQAUNBCDEFUNUFUGUAUBUNMKUHUIUNTMTUJUKUL $.

    $( A transposition function is a permutation.  (Contributed by Stefan
       O'Rear, 22-Aug-2015.) $)
    pmtrff1o $p |- ( F e. R -> F : D -1-1-onto-> D ) $=
      ( wcel wf cid cdif cdm cfv cvv wss c2o cen wbr w3a wceq eqid simpld pmtrf
      pmtrfrn syl simprd feq1d mpbird pmtrfinv fcof1od ) DBGZAADDUJAADHAADIJKZC
      LZHZUJAMGUKANUKOPQRZUMUJUNDULSZAUKBCDEFUKTUCZUAAUKCMEUBUDUJAADULUJUNUOUPU
      EUFUGZUQABCDEFUHZURUI $.

    $( A transposition function is its own inverse.  (Contributed by Stefan
       O'Rear, 22-Aug-2015.) $)
    pmtrfcnv $p |- ( F e. R -> `' F = F ) $=
      ( wcel wf cid cdif cdm cfv cvv wss c2o cen wbr w3a wceq eqid simpld pmtrf
      pmtrfrn syl simprd feq1d mpbird pmtrfinv 2fcoidinvd ) DBGZAADDUJAADHAADIJ
      KZCLZHZUJAMGUKANUKOPQRZUMUJUNDULSZAUKBCDEFUKTUCZUAAUKCMEUBUDUJAADULUJUNUO
      UPUEUFUGZUQABCDEFUHZURUI $.

    $( An intrinsic characterization of the transposition permutations.
       (Contributed by Stefan O'Rear, 22-Aug-2015.) $)
    pmtrfb $p |- ( F e. R <-> ( D e. _V /\ F : D -1-1-onto-> D /\
          dom ( F \ _I ) ~~ 2o ) ) $=
      ( wcel cvv wf1o cid cdif cdm c2o cen w3a wss wceq syl pmtrff1o syl3an2 wa
      wbr eqid pmtrfrn simpl1 simpl3 3jca simp2 difss dmss ax-mp f1odm syl5sseq
      cfv pmtrrn simp3 pmtrmvd f1otrspeq syl22anc eqeltrd impbii ) DBGZAHGZAADI
      ZDJKZLZMNUBZOZVBVCVDVGVBVCVFAPZVGODVFCUNZQZUAZVCAVFBCDEFVFUCUDZVCVIVGVKUE
      RABCDEFSVBVLVGVMVCVIVGVKUFRUGVHDVJBVHVDAAVJIZVGVJJKLVFQZVKVCVDVGUHVHVJBGZ
      VNVDVCVIVGVPVDDLZVFAVEDPVFVQPDJUIVEDUJUKAADULUMZAVFBCHEFUOTZABCVJEFSRVCVD
      VGUPVDVCVIVGVOVRAVFCHEUQTADVJURUSVSUTVA $.

    $( Any conjugate of a transposition is a transposition.  (Contributed by
       Stefan O'Rear, 22-Aug-2015.) $)
    pmtrfconj $p |- ( ( F e. R /\ G : D -1-1-onto-> D ) ->
        ( ( G o. F ) o. `' G ) e. R ) $=
      ( wcel wf1o cvv ccom cid cdif cdm c2o cen wbr adantr syl2anc wss wa simpr
      ccnv pmtrfb simp1bi pmtrff1o f1oco f1ocnv adantl cima wceq syl f1omvdconj
      wf f1of wf1 f1of1 difss ax-mp fdm syl5sseq ssexd f1imaeng syl3anc eqbrtrd
      dmss simp3bi entr syl3anbrc ) DBHZAAEIZUAZAJHZAAEDKZEUCZKZIZVPLMNZOPQZVPB
      HVJVMVKVJVMAADIZDLMZNZOPQZABCDFGUDZUERZVLAAVNIZAAVOIZVQVLVKVTWFVJVKUBZVJV
      TVKABCDFGUFZRAAAEDUGSVKWGVJAAEUHUIAAAVNVOUGSVLVRWBPQWCVSVLVREWBUJZWBPVLAA
      DUNZVKVRWJUKVJWKVKVJVTWKWIAADUOULRZWHADEUMSVLAAEUPZWBATZWBJHWJWBPQVKWMVJA
      AEUQUIVLWKWNWLWKDNZWBAWADTWBWOTDLURWADVFUSAADUTVAULZVLWBAJWEWPVBAAWBEJVCV
      DVEVJWCVKVJVMVTWCWDVGRVRWBOVHSABCVPFGUDVI $.
  $}

  ${
    $d x y z B $.  $d x y z G $.  $d x y z X $.  $d y z D $.  $d y z V $.
    symgsssg.g $e |- G = ( SymGrp ` D ) $.
    symgsssg.b $e |- B = ( Base ` G ) $.
    $( The symmetric group has subgroups restricting the set of non-fixed
       points.  (Contributed by Stefan O'Rear, 24-Aug-2015.) $)
    symgsssg $p |- ( D e. V ->
        { x e. B | dom ( x \ _I ) C_ X } e. ( SubGrp ` G ) ) $=
      ( wcel cid cdif cdm wss cfv dmeqd c0 wceq difeq1 sseq1d elrab crab cplusg
      vy vz cv cress c0g eqidd cbs ssrab2 sseqtri a1i cgrp symggrp eqid grpidcl
      co syl cres symgid difeq1d resss ssdif0 dmeqi dm0 eqtri eqsstri syl6eqssr
      mpbi 0ss sylanbrc wa biid w3a 3ad2ant1 simp2l simp3l grpcl syl3anc symgov
      ccom syl2anc cun mvdco simp2r simp3r unssd syl5ss eqsstrd syl3anb cminusg
      adantr simprl grpinvcl ccnv symginv ad2antrl wf1o symgbasf1o eqtrd simprr
      f1omvdcnv sylan2b issubgrpd2 ) CEIZUCUDAUEZJKZLZFMZABUAZDUBNZDXJUFUQZDDUG
      NZXEXLUHXEXMUHXEXKUHXJDUINZMXEXJBXNXIABUJHUKULXEXMBIZXMJKZLZFMZXMXJIXEDUM
      IZXOCDEGUNZBDXMHXMUOUPURXEXQJCUSZJKZLZFXEYBXPXEYAXMJCDEGUTVAOYCPFYCPLPYBP
      YAJMYBPQJCVBYAJVCVIVDVEVFFVJVGVHXIXRAXMBXFXMQZXHXQFYDXGXPXFXMJROSTVKXEXEU
      CUEZXJIZYEBIZYEJKZLZFMZVLZUDUEZXJIYLBIZYLJKZLZFMZVLZYEYLXKUQZXJIZXEVMXIYJ
      AYEBXFYEQZXHYIFYTXGYHXFYEJROSTZXIYPAYLBXFYLQZXHYOFUUBXGYNXFYLJROSTXEYKYQV
      NZYRBIZYRJKZLZFMZYSUUCXSYGYMUUDXEYKXSYQXTVOXEYGYJYQVPZXEYKYMYPVQZBXKDYEYL
      HXKUOZVRVSUUCUUFYEYLWAZJKZLZFUUCUUEUULUUCYRUUKJUUCYGYMYRUUKQUUHUUICBXKDYE
      YLGHUUJVTWBVAOUUCUUMYIYOWCFYEYLWDUUCYIYOFXEYGYJYQWEXEYKYMYPWFWGWHWIXIUUGA
      YRBXFYRQZXHUUFFUUNXGUUEXFYRJROSTVKWJYFXEYKYEDWKNZNZXJIZUUAXEYKVLZUUPBIZUU
      PJKZLZFMZUUQUURXSYGUUSXEXSYKXTWLXEYGYJWMBDUUOYEHUUOUOZWNWBUURUVAYIFUURUVA
      YEWOZJKZLZYIUURUUTUVEUURUUPUVDJYGUUPUVDQXEYJCBYEDUUOGHUVCWPWQVAOUURCCYEWR
      ZUVFYIQYGUVGXEYJCBYEDGHWSWQCYEXBURWTXEYGYJXAWIXIUVBAUUPBXFUUPQZXHUVAFUVHX
      GUUTXFUUPJROSTVKXCXTXD $.

    $( The symmetric group has a subgroup of permutations that move finitely
       many points.  (Contributed by Stefan O'Rear, 24-Aug-2015.) $)
    symgfisg $p |- ( D e. V ->
        { x e. B | dom ( x \ _I ) e. Fin } e. ( SubGrp ` G ) ) $=
      ( wcel cv cid cdif cdm cfn cfv dmeqd c0 wceq difeq1 eleq1d elrab vy cress
      vz crab cplusg c0g eqidd cbs wss ssrab2 sseqtri cgrp symggrp eqid grpidcl
      co a1i syl cres symgid difeq1d resss ssdif0 mpbi dmeqi eqtri 0fin eqeltri
      dm0 syl6eqelr sylanbrc biid w3a 3ad2ant1 simp2l simp3l grpcl syl3anc ccom
      wa symgov syl2anc cun simp2r simp3r mvdco sylancl eqeltrd syl3anb cminusg
      unfi ssfi adantr grpinvcl ccnv symginv ad2antrl wf1o symgbasf1o f1omvdcnv
      simprl eqtrd simprr sylan2b issubgrpd2 ) CEHZUAUCAIZJKZLZMHZABUDZDUENZDXK
      UBUPZDDUFNZXFXMUGXFXNUGXFXLUGXKDUHNZUIXFXKBXOXJABUJGUKUQXFXNBHZXNJKZLZMHZ
      XNXKHXFDULHZXPCDEFUMZBDXNGXNUNUOURXFXRJCUSZJKZLZMXFYCXQXFYBXNJCDEFUTVAOYD
      PMYDPLPYCPYBJUIYCPQJCVBYBJVCVDVEVIVFVGVHVJXJXSAXNBXGXNQZXIXRMYEXHXQXGXNJR
      OSTVKXFXFUAIZXKHZYFBHZYFJKZLZMHZVTZUCIZXKHYMBHZYMJKZLZMHZVTZYFYMXLUPZXKHZ
      XFVLXJYKAYFBXGYFQZXIYJMUUAXHYIXGYFJROSTZXJYQAYMBXGYMQZXIYPMUUCXHYOXGYMJRO
      STXFYLYRVMZYSBHZYSJKZLZMHZYTUUDXTYHYNUUEXFYLXTYRYAVNXFYHYKYRVOZXFYLYNYQVP
      ZBXLDYFYMGXLUNZVQVRUUDUUGYFYMVSZJKZLZMUUDUUFUUMUUDYSUULJUUDYHYNYSUULQUUIU
      UJCBXLDYFYMFGUUKWAWBVAOUUDYJYPWCZMHZUUNUUOUIUUNMHUUDYKYQUUPXFYHYKYRWDXFYL
      YNYQWEYJYPWKWBYFYMWFUUOUUNWLWGWHXJUUHAYSBXGYSQZXIUUGMUUQXHUUFXGYSJROSTVKW
      IYGXFYLYFDWJNZNZXKHZUUBXFYLVTZUUSBHZUUSJKZLZMHZUUTUVAXTYHUVBXFXTYLYAWMXFY
      HYKXABDUURYFGUURUNZWNWBUVAUVDYJMUVAUVDYFWOZJKZLZYJUVAUVCUVHUVAUUSUVGJYHUU
      SUVGQXFYKCBYFDUURFGUVFWPWQVAOUVACCYFWRZUVIYJQYHUVJXFYKCBYFDFGWSWQCYFWTURX
      BXFYHYKXCWHXJUVEAUUSBXGUUSQZXIUVDMUVKXHUVCXGUUSJROSTVKXDYAXE $.
  $}

  ${
    $d x B $.  $d x T $.
    symgtrf.t $e |- T = ran ( pmTrsp ` D ) $.
    symgtrf.g $e |- G = ( SymGrp ` D ) $.
    symgtrf.b $e |- B = ( Base ` G ) $.
    $( Transpositions are elements of the symmetric group.  (Contributed by
       Stefan O'Rear, 23-Aug-2015.) $)
    symgtrf $p |- T C_ B $=
      ( vx cv wcel wf1o cpmtr cfv eqid pmtrff1o elsymgbas2 mpbird ssriv ) HCAHI
      ZCJSAJBBSKBCBLMZSTNEOBASDCFGPQR $.

    $d u x y z B $.  $d u x y z K $.  $d u x y z T $.  $d x z D $.  $d x z G $.
    $d x V $.
    symggen.k $e |- K = ( mrCls ` ( SubMnd ` G ) ) $.
    $( The span of the transpositions is the subgroup that moves finitely many
       points.  (Contributed by Stefan O'Rear, 28-Aug-2015.) $)
    symggen $p |- ( D e. V -> ( K ` T ) =
        { x e. B | dom ( x \ _I ) e. Fin } ) $=
      ( wcel cfv cid cdif wss cvv syl wi wceq vy vz vu cv cdm crab csubmnd cmre
      cfn elex cmnd cacs cgrp symggrp grpmnd submacs acsmre 3syl symgtrf a1i wa
      c2o com 2onn nnfi ax-mp wb cen wf1o cpmtr eqid pmtrfb simp3bi enfi adantl
      wbr mpbiri ssrabdv symgfisg subgsubm mrcsscl syl3anc vex finnum cdom csdm
      csubg wal domfi c0 wfn symgbasf1o f1ofn fnnfpeq0 c0g csymg elbasfv symgid
      cres mrccl sylancl subm0cl eqeltrd eleq1a sylbid adantr wne wex n0 cplusg
      cpr ccom simpr csn f1omvdmvd sylan eldifad prssi syl2anc difss dmss f1odm
      syl5sseq sstrd sselda fnelnfp mpbid necomd pr2nelem symgov eqeltrrd eqtrd
      co fvex adantlr sseldd dmeqd difeq1 eleq1 imbi12d mp3an12 pmtrrn pmtrfinv
      sseldi simplr oveq2d grpcl coass coeq1d f1of fcoi2 syl5eqr 3eqtrd mrcssid
      wf ad2antrr difeq1d wpss simpll cun mvdco pmtrmvd eqsstrd unssd syl5ss wn
      ssid fvco2 prcom fveq2i fveq1i pmtrprfv syl13anc syl5eq ssnelpssd eqbrtrd
      necon2bbid php3 ovex breq1d spcv ad2antlr mp2d submcl ex syl5bi pm2.61dne
      exlimdv exp31 com23 3impia indcardi impcom 3adant1 rabssdv eqssd ) CGLZDF
      MZAUDZNOZUEZUILZABUFZUWQEUGMZBUHMLZDUXCPUXCUXDLZUWRUXCPUWQCQLZUXECGUJUXGE
      UKLZUXDBULMLUXEUXGEUMLZUXHCEQIUNZEUORBEJUPUXDBUQURZRUWQUXBABDDBPZUWQBCDEH
      IJUSZUTUWQUWSDLZVAUXBVBUILZVBVCLUXOVDVBVEVFUXNUXBUXOVGZUWQUXNUXAVBVHVPZUX
      PUXNUXGCCUWSVIUXQCDCVJMZUWSUXRVKZHVLVMUXAVBVNRVOVQVRUWQUXCEWGMLUXFABCEGIJ
      VSUXCEVTRUXDDFUXCBKWAWBUWQUXBABUWRUWSBLZUXBUWSUWRLZUWQUXBUXTUYAUXBUAUDZBL
      ZUYBUWRLZSZUBUDZBLZUYFUWRLZSZUXTUYASUAUBUWSUYBNOZUEZUYFNOZUEZUXAQUWSQLUXB
      AWCUTUXAWDUXBUYKUXAWEVPZUYMUYKWFVPZUYISZUBWHZUYEUXBUYNVAUYKUILZUYQUYESUXA
      UYKWIUYRUYCUYQUYDUYRUYCUYQUYDUYRUYCVAZUYQVAZUYDUYKWJUYSUYKWJTZUYDSUYQUYSV
      UAUYBNCWSZTZUYDUYSCCUYBVIZUYBCWKZVUAVUCVGUYCVUDUYRCBUYBEIJWLVOZCCUYBWMZCU
      YBWNURUYSVUBUWRLVUCUYDSUYSVUBEWOMZUWRUYSUXGVUBVUHTUYCUXGUYRBEWPUYBCIJWQVO
      ZCEQIWRRUYSUWRUXDLZVUHUWRLUYSUXEUXLVUJUYSUXGUXEVUIUXKRZUXMUXDDFBKWTXAZUWR
      EVUHVUHVKXBRXCVUBUWRUYBXDRXEXFUYKWJXGUCUDZUYKLZUCXHUYTUYDUCUYKXIUYTVUNUYD
      UCUYTVUNUYDUYTVUNVAZVUMVUMUYBMZXKZUXRMZVURUYBEXJMZYMZVUSYMZUYBUWRUYSVUNVV
      AUYBTUYQUYSVUNVAZVVAVURVURUYBXLZVUSYMZVURVVCXLZUYBVVBVUTVVCVURVUSVVBVURBL
      ZUYCVUTVVCTVVBDBVURUXMVVBUXGVUQCPZVUQVBVHVPZVURDLZUYSUXGVUNVUIXFZVVBVUQUY
      KCVVBVUNVUPUYKLVUQUYKPUYSVUNXMZVVBVUPUYKVUMXNZUYSVUDVUNVUPUYKVVLOLVUFCUYB
      VUMXOXPXQZVUMVUPUYKXRXSZUYSUYKCPVUNUYSUYBUEZUYKCUYJUYBPUYKVVOPUYBNXTUYJUY
      BYAVFUYSVUDVVOCTVUFCCUYBYBRYCZXFZYDZVVBVUMVUPXGZVVHVVBVUPVUMVVBVUNVUPVUMX
      GZVVKVVBVUEVUMCLZVUNVVTVGVVBVUDVUEUYSVUDVUNVUFXFZVUGRZUYSUYKCVUMVVPYEZCUY
      BVUMYFXSYGZYHVUMQLVUPQLVVSVVHUCWCVUMUYBYNVUMVUPQQYIUUARZCVUQDUXRQUXSHUUBW
      BZUUDZUYRUYCVUNUUEZCBVUSEVURUYBIJVUSVKZYJXSZUUFVVBVVFVVCBLZVVDVVETVWHVVBV
      UTVVCBVWKVVBUXIVVFUYCVUTBLZUYSUXIVUNUYSUXGUXIVUIUXJRXFVWHVWIBVUSEVURUYBJV
      WJUUGWBZYKZCBVUSEVURVVCIJVWJYJXSVVBVVEVURVURXLZUYBXLZUYBVURVURUYBUUHVVBVW
      QVUBUYBXLZUYBVVBVWPVUBUYBVVBVVIVWPVUBTVWGCDUXRVURUXSHUUCRUUIVVBVUDCCUYBUU
      OVWRUYBTVWBCCUYBUUJCCUYBUUKURYLUULUUMYOVUOVUJVURUWRLZVUTUWRLZVVAUWRLUYSVU
      JUYQVUNVULUUPUYSVUNVWSUYQVVBDUWRVURUYSDUWRPZVUNUYSUXEUXLVXAVUKUXMUXDDFBKU
      UNXAXFVWGYPYOVUOVUTNOZUEZUYKWFVPZVWMVWTUYSVUNVXDUYQVVBVXCVVCNOZUEZUYKWFVV
      BVXBVXEVVBVUTVVCNVWKUUQYQVVBUYRVXFUYKUURVXFUYKWFVPUYRUYCVUNUUSVVBVXFUYKVU
      MVVBVXFVURNOUEZUYKUUTUYKVURUYBUVAVVBVXGUYKUYKVVBVXGVUQUYKVVBUXGVVGVVHVXGV
      UQTVVJVVRVWFCVUQUXRQUXSUVBWBVVNUVCUYKUYKPVVBUYKUVGUTUVDUVEVVKVVBVUMVVCMZV
      UMTZVUMVXFLZUVFZVVBVXHVUPVURMZVUMVVBVUEVWAVXHVXLTVWCVWDCVURUYBVUMUVHXSVVB
      VXLVUPVUPVUMXKZUXRMZMZVUMVUPVURVXNVUQVXMUXRVUMVUPUVIUVJUVKVVBUXGVUPCLVWAV
      VTVXOVUMTVVJVVBUYKCVUPVVQVVMYPVWDVWECUXRQVUPVUMUXSUVLUVMUVNYLVVBVVCCWKZVW
      AVXIVXKVGVVBVWLCCVVCVIVXPVWOCBVVCEIJWLCCVVCWMURVWDVXPVWAVAVXJVXHVUMCVVCVU
      MYFUVQXSYGUVOUYKVXFUVRXSUVPYOUYSVUNVWMUYQVWNYOUYQVXDVWMVWTSZSZUYSVUNUYPVX
      RUBVUTVURUYBVUSUVSUYFVUTTZUYOVXDUYIVXQVXSUYMVXCUYKWFVXSUYLVXBUYFVUTNYRYQU
      VTVXSUYGVWMUYHVWTUYFVUTBYSUYFVUTUWRYSYTYTUWAUWBUWCVUSUWREVURVUTVWJUWDWBYK
      UWEUWHUWFUWGUWIUWJRUWKUYBUYFTZUYCUYGUYDUYHUYBUYFBYSUYBUYFUWRYSYTUYBUWSTZU
      YCUXTUYDUYAUYBUWSBYSUYBUWSUWRYSYTVXTUYJUYLUYBUYFNYRYQVYAUYJUWTUYBUWSNYRYQ
      UWLUWMUWNUWOUWP $.

    $( A finite permutation group is generated by the transpositions, see also
       Theorem 3.4 in [Rotman] p. 31.  (Contributed by Stefan O'Rear,
       28-Aug-2015.) $)
    symggen2 $p |- ( D e. Fin -> ( K ` T ) = B ) $=
      ( vx cfn wcel cfv cv cid cdif cdm crab wceq wss wral dmss wf1o symgbasf1o
      difss ax-mp f1odm syl syl5sseq ssfi sylan2 ralrimiva rabid2 sylibr eqtr4d
      symggen ) BKLZCEMJNZOPZQZKLZJARZAJABCDEKFGHIUPUQVAJAUAAVBSUQVAJAURALZUQUT
      BTVAVCURQZUTBUSURTUTVDTUROUEUSURUBUFVCBBURUCVDBSBAURDGHUDBBURUGUHUIBUTUJU
      KULVAJAUMUNUO $.
  $}

  ${
    $d x D $.  $d x I $.  $d x T $.  $d x V $.  $d x W $.
    symgtrinv.t $e |- T = ran ( pmTrsp ` D ) $.
    symgtrinv.g $e |- G = ( SymGrp ` D ) $.
    symgtrinv.i $e |- I = ( invg ` G ) $.
    $( To invert a permutation represented as a sequence of transpositions,
       reverse the sequence.  (Contributed by Stefan O'Rear, 27-Aug-2015.) $)
    symgtrinv $p |- ( ( D e. V /\ W e. Word T ) -> ( I ` ( G gsum W ) ) =
        ( G gsum ( reverse ` W ) ) ) $=
      ( vx wcel cword wa cgsu co cfv wceq eqid wf syl coppg ccom cmhm cgrp cgim
      creverse cbs cghm symggrp invoppggim gimghm ghmmhm 4syl wss symgtrf sswrd
      ax-mp sseli gsumwmhm syl2an cc0 chash cfzo wfn grpinvf adantr wrdf adantl
      fss sylancl fco syl2anc ffn cv fvco2 sylan ffvelrnda sseldi symginv cpmtr
      ccnv pmtrfcnv 3eqtrd eqfnfvd oveq2d cmnd grpmnd gsumwrev ) AEKZFBLZKZMZCF
      NODPZCUAPZDFUBZNOZWNFNOZCFUFPNOZWIDCWNUCOKZFCUGPZLZKZWMWPQWKWICUDKZDCWNUE
      OKDCWNUHOKWSACEHUIZCDWNWNRZIUJCWNDUKCWNDULUMWJXAFBWTUNZWJXAUNWTABCGHWTRZU
      OZBWTUPUQURZWTDCWNFXGUSUTWLWOFWNNWLJVAFVBPVCOZWOFWLXJWTWOSZWOXJVDWLWTWTDS
      ZXJWTFSZXKWIXLWKWIXCXLXDWTCDXGIVETVFWLXJBFSZXFXMWKXNWIBFVGVHZXHXJBWTFVIVJ
      XJWTWTDFVKVLXJWTWOVMTWLXNFXJVDZXOXJBFVMTZWLJVNZXJKZMZXRWOPZXRFPZDPZYBWAZY
      BWLXPXSYAYCQXQXJDFXRVOVPXTYBWTKYCYDQXTBWTYBXHWLXJBXRFXOVQZVRAWTYBCDHXGIVS
      TXTYBBKYDYBQYEABAVTPZYBYFRGWBTWCWDWEWICWFKZXBWQWRQWKWIXCYGXDCWGTXIWTCWNFX
      GXEWHUTWC $.
  $}

  ${
    pmtr3ncom.t $e |- T = ( pmTrsp ` D ) $.
    ${
      pmtr3ncom.f $e |- F = ( T ` { X , Y } ) $.
      pmtr3ncom.g $e |- G = ( T ` { Y , Z } ) $.
      $( Lemma 1 for ~ pmtr3ncom .  (Contributed by AV, 17-Mar-2018.) $)
      pmtr3ncomlem1 $p |- ( ( D e. V /\ ( X e. D /\ Y e. D /\ Z e. D )
                          /\ ( X =/= Y /\ X =/= Z /\ Y =/= Z ) )
                        -> ( ( G o. F ) ` X ) =/= ( ( F o. G ) ` X ) ) $=
        ( wcel w3a wne cfv 3ad2ant3 wceq wf syl2anc syl ccom biimpi wfn cpr wss
        necom c2o cen wbr simp1 3ad2ant2 simp2 prssi 3jca pr2nelem pmtrf sylibr
        feq1i ffn fvco2 fveq1i pmtrprfv syl5eq fveq2d simp3 3eqtrd id 3anbi123i
        3anrot biid sylbbr pmtrprfv3 syl3an 3netr4d ) AELZFALZGALZHALZMZFGNZFHN
        ZGHNZMZMZHGFDCUAOZFCDUAOZWCVOHGNZVSWBVTWGWAWBWGGHUFUBPPWDWEFCOZDOZGDOZH
        WDCAUCZVPWEWIQWDAACRZWKWDAAFGUDZBOZRZWLWDVOWMAUEZWMUGUHUIZMWOWDVOWPWQVO
        VSWCUJZWDVPVQWPVSVOVPWCVPVQVRUJUKZVSVOVQWCVPVQVRULZUKZFGAUMSWDVPVQVTMZW
        QWDVPVQVTWSXAWCVOVTVSVTWAWBUJPUNZFGAAUOTUNAWMBEIUPTAACWNJURUQAACUSTWSAD
        CFUTSWDWHGDWDWHFWNOZGFCWNJVAWDVOXBXDGQWRXCABEFGIVBSVCZVDWDWJGGHUDZBOZOZ
        HGDXGKVAWDVOVQVRWBMZXHHQWRWDVQVRWBXAVSVOVRWCVPVQVRVEZUKWCVOWBVSVTWAWBVE
        PUNZABEGHIVBSVCVFWDWFFDOZCOZWHGWDDAUCZVPWFXMQWDAADRZXNWDVOXFAUEZXFUGUHU
        IZMZXOWDVOXPXQWRVSVOXPWCVSVQVRXPWTXJGHAUMSUKWDXIXQXKGHAAUOTUNXRAAXGRXOA
        XFBEIUPAADXGKURUQTAADUSTWSACDFUTSWDXLFCWDXLFXGOZFFDXGKVAVOVOVSVQVRVPMZW
        CWBGFNZHFNZMZXSFQVOVGVSXTVPVQVRVIUBYCYAYBWBMWCWBYAYBVIYAVTYBWAWBWBGFUFH
        FUFWBVJVHVKABEGHFIVLVMVCVDXEVFVN $.

      $( Lemma 2 for ~ pmtr3ncom .  (Contributed by AV, 17-Mar-2018.) $)
      pmtr3ncomlem2 $p |- ( ( D e. V /\ ( X e. D /\ Y e. D /\ Z e. D )
                        /\ ( X =/= Y /\ X =/= Z /\ Y =/= Z ) )
                      -> ( G o. F ) =/= ( F o. G ) ) $=
        ( wcel w3a wne ccom cfv pmtr3ncomlem1 fveq1 necon3i syl ) AELFALGALHALM
        FGNFHNGHNMMFDCOZPZFCDOZPZNUAUCNABCDEFGHIJKQUAUCUBUDFUAUCRST $.
    $}

    $d D f g x y z $.  $d T f g x y z $.  $d V x y z $.
    $( Transpositions over sets with at least 3 elements are not commutative,
       see also the remark in [Rotman] p. 28.  (Contributed by AV,
       21-Mar-2019.) $)
    pmtr3ncom $p |- ( ( D e. V /\ 3 <_ ( # ` D ) )
                  -> E. f e. ran T E. g e. ran T ( g o. f ) =/= ( f o. g ) ) $=
      ( vx vy vz cv wne wrex wcel cfv wbr wa ccom adantr ad2antrr syl3anc chash
      w3a c3 cle crn hashge3el3dif cpr wss c2o cen simprl simplll simplr simpr1
      wi prssi pr2nelem eqid pmtrrn adantll simpr3 df-3an biimpri pmtr3ncomlem2
      wceq coeq2 coeq1 neeq12d rspc2ev exp31 rexlimdva rexlimivv mpcom ) GJZHJZ
      KZVNIJZKZVOVQKZUBZIALZHALGALAEMZUCAUANUDOZPZDJZCJZQZWFWEQZKZDBUEZLCWJLZGH
      IAEUFWAWDWKUOZGHAAVNAMZVOAMZPZVTWLIAWOVQAMZPZVTWDWKWQVTPZWDPZVNVOUGZBNZWJ
      MZVOVQUGZBNZWJMZXDXAQZXAXDQZKZWKWSWBWTAUHZWTUIUJOZXBWRWBWCUKZWQXIVTWDWOXI
      WPVNVOAUPRSWRXJWDWRWMWNVPXJWMWNWPVTULWQWNVTWMWNWPUMRZWQVPVRVSUNVNVOAAUQTR
      AWTWJBEFWJURZUSTWSWBXCAUHZXCUIUJOZXEXKWQXNVTWDWNWPXNWMVOVQAUPUTSWRXOWDWRW
      NWPVSXOXLWOWPVTUMWQVPVRVSVAVOVQAAUQTRAXCWJBEFXMUSTWSWBWMWNWPUBZVTXHXKWQXP
      VTWDXPWQWMWNWPVBVCSWQVTWDUMABXAXDEVNVOVQFXAURXDURVDTWIXHWEXAQZXAWEQZKCDXA
      XDWJWJWFXAVEWGXQWHXRWFXAWEVFWFXAWEVGVHWEXDVEXQXFXRXGWEXDXAVGWEXDXAVFVHVIT
      VJVKVLVM $.
  $}

  ${
    pmtrdifel.t $e |- T = ran ( pmTrsp ` ( N \ { K } ) ) $.
    pmtrdifel.r $e |- R = ran ( pmTrsp ` N ) $.
    ${
      pmtrdifel.0 $e |- S = ( ( pmTrsp ` N ) ` dom ( Q \ _I ) ) $.
      $( Lemma 1 for ~ pmtrdifel .  (Contributed by AV, 15-Jan-2019.) $)
      pmtrdifellem1 $p |- ( Q e. T -> S e. R ) $=
        ( wcel cdif cvv cid cdm w3a cpmtr cfv eqid wss difssd csn wf1o difsnexi
        c2o cen wbr pmtrfb wf wceq f1of fdm dmss syl sseq1 mpbird sstrd 3syl id
        pmtrrn syl5eqel syl3an sylbi ) ADJFEUAZKZLJZVDVDAUBZAMKZNZUDUEUFZOCBJZV
        DDVDPQZAVKRGUGVEFLJZVFVHFSZVIVIVJEFUCVFVDVDAUHANZVDUIZVMVDVDAUJVDVDAUKV
        OVHVNFVOVGASVHVNSVOAMTVGAULUMVOVNFSVDFSVOFVCTVNVDFUNUOUPUQVIURVLVMVIOCV
        HFPQZQBIFVHBVPLVPRHUSUTVAVB $.

      $( Lemma 2 for ~ pmtrdifel .  (Contributed by AV, 15-Jan-2019.) $)
      pmtrdifellem2 $p |- ( Q e. T -> dom ( S \ _I ) = dom ( Q \ _I ) ) $=
        ( wcel cid cdif cdm cpmtr cfv cvv wss w3a wceq eqid difeq1i c2o cen wbr
        dmeqi csn wf1o pmtrfb difsnexi wf f1of fdm difssd dmss syl sseq1 mpbird
        sstrd 3syl id 3anim123i sylbi pmtrmvd syl5eq ) ADJZCKLZMAKLZMZFNOZOZKLZ
        MZVHVFVKCVJKIUAUEVEFPJZVHFQZVHUBUCUDZRZVLVHSVEFEUFZLZPJZVRVRAUGZVORVPVR
        DVRNOZAWATGUHVSVMVTVNVOVOEFUIVTVRVRAUJAMZVRSZVNVRVRAUKVRVRAULWCVHWBFWCV
        GAQVHWBQWCAKUMVGAUNUOWCWBFQVRFQWCFVQUMWBVRFUPUQURUSVOUTVAVBFVHVIPVITVCU
        OVD $.

      $d Q x $.  $d T x $.
      $( Lemma 3 for ~ pmtrdifel .  (Contributed by AV, 15-Jan-2019.) $)
      pmtrdifellem3 $p |- ( Q e. T -> A. x e. ( N \ { K } )
                                       ( Q ` x ) = ( S ` x ) ) $=
        ( wcel cfv wceq csn cdif cid cdm cuni cif eqid cv pmtrdifellem2 difeq1d
        adantr eleq2d unieqd ifbieq1d pmtrdifellem1 eldifi cpmtr pmtrffv syl2an
        wa 3eqtr4rd ralrimiva ) BEKZAUAZBLZUQDLZMAGFNZOZUPUQVAKZUMZUQDPOQZKZVDU
        QNZOZRZUQSZUQBPOQZKZVJVFOZRZUQSUSURVCVEVKVHVMUQVCVDVJUQUPVDVJMVBBCDEFGH
        IJUBZUDUEUPVHVMMVBUPVGVLUPVDVJVFVNUCUFUDUGUPDCKUQGKUSVIMVBBCDEFGHIJUHUQ
        GUTUIGVDCGUJLZDUQVOTIVDTUKULVAVJEVAUJLZBUQVPTHVJTUKUNUO $.

      $d K x $.  $d N x $.
      $( Lemma 4 for ~ pmtrdifel .  (Contributed by AV, 28-Jan-2019.) $)
      pmtrdifellem4 $p |- ( ( Q e. T /\ K e. N ) -> ( S ` K ) = K ) $=
        ( vx wcel wa cfv cid cdif cdm wceq eqid wn notbid csn cif pmtrdifellem1
        cuni cpmtr pmtrffv sylan csymg cbs wf wi symgtrf sseli symgbasf wfn wne
        crab ffn fndifnfp wss ssrab2 ssel2 eldif elsng pm2.24i syl6bi imp sylbi
        cv syl mpan con2i eleq2 syl5ibr 3syl pmtrdifellem2 eleq2d adantr mtbird
        wb iffalsed eqtrd ) ADKZEFKZLZECMZECNOPZKZWGEUAZOUDZEUBZEWCCBKWDWFWKQAB
        CDEFGHIUCFWGBFUEMZCEWLRHWGRUFUGWEWHWJEWEWHEANOPZKZWCWDWNSZWCAFWIOZUHMZU
        IMZKWPWPAUJZWDWOUKZDWRAWRWPDWQGWQRZWRRZULUMWPWRAWQXAXBUNWSAWPUOWMJVIZAM
        XCUPZJWPUQZQZWTWPWPAURJWPAUSWDWOXFEXEKZSXGWDXEWPUTZXGWDSZXDJWPVAXHXGLEW
        PKZXIXEWPEVBXJWDEWIKZSZLXIEFWIVCWDXLXIWDXLEEQZSXIWDXKXMEEFVDTXMXIERVEVF
        VGVHVJVKVLXFWNXGWMXEEVMTVNVOVOVGWCWHWNVTWDWCWGWMEABCDEFGHIVPVQVRVSWAWB
        $.
    $}

    $d r t x $.  $d K r $.  $d N r x $.  $d R r $.  $d T x $.
    $( A transposition of elements of a set without a special element
       corresponds to a transposition of elements of the set.  (Contributed by
       AV, 15-Jan-2019.) $)
    pmtrdifel $p |- A. t e. T E. r e. R
                     A. x e. ( N \ { K } ) ( t ` x ) = ( r ` x ) $=
      ( cv cfv wceq csn cdif wral wrex wcel cid cdm cpmtr pmtrdifellem1 ralbidv
      eqid pmtrdifellem3 fveq1 eqeq2d rspcev syl2anc rgen ) AJZBJZKZUJGJZKZLZAF
      EMNZOZGCPZBDUKDQUKRNSFTKKZCQULUJUSKZLZAUPOZURUKCUSDEFHIUSUCZUAAUKCUSDEFHI
      VCUDUQVBGUSCUMUSLZUOVAAUPVDUNUTULUJUMUSUEUFUBUGUHUI $.

    ${
      $d R x $.  $d W x $.
      pmtrdifwrdel.0 $e |- U = ( x e. ( 0 ..^ ( # ` W ) )
                           |-> ( ( pmTrsp ` N ) ` dom ( ( W ` x ) \ _I ) ) ) $.
      $( Lemma 1 for ~ pmtrdifwrdel .  (Contributed by AV, 15-Jan-2019.) $)
      pmtrdifwrdellem1 $p |- ( W e. Word T -> U e. Word R ) $=
        ( cword wcel cc0 chash cfv cfzo co wf cv syl cid cdm cpmtr wa wrdsymbcl
        cdif eqid pmtrdifellem1 fmptd iswrdi ) GCKLZMGNOZPQZBDRDBKLUKAUMASZGOZU
        AUFUBFUCOOZBDUKUNUMLUDUOCLUPBLUNCGUEUOBUPCEFHIUPUGUHTJUIBULDUJT $.

      $( Lemma 2 for ~ pmtrdifwrdel .  (Contributed by AV, 15-Jan-2019.) $)
      pmtrdifwrdellem2 $p |- ( W e. Word T -> ( # ` W ) = ( # ` U ) ) $=
        ( cword wcel chash cfv cc0 cfzo co cv wceq syl cid cdif cdm wral wfn wa
        cpmtr wrdsymbcl eqid pmtrdifellem1 ralrimiva fnmpt hashfn 3syl hashfzo0
        cn0 lencl eqtr2d ) GCKLZDMNZOGMNZPQZMNZVAUSARZGNZUAUBUCFUGNNZBLZAVBUDDV
        BUEUTVCSUSVGAVBUSVDVBLUFVECLVGVDCGUHVEBVFCEFHIVFUIUJTUKAVBVFDBJULVBDUMU
        NUSVAUPLVCVASCGUQVAUOTUR $.

      $d T i n $.  $d W i n $.  $d i x $.
      $( Lemma 3 for ~ pmtrdifwrdel .  (Contributed by AV, 15-Jan-2019.) $)
      pmtrdifwrdellem3 $p |- ( W e. Word T -> A. i e. ( 0 ..^ ( # ` W ) )
               A. n e. ( N \ { K } ) ( ( W ` i ) ` n ) = ( ( U ` i ) ` n ) ) $=
        ( wcel cv cfv wceq cdif wral cid cdm cword csn cc0 chash cfzo wrdsymbcl
        co wa cpmtr eqid pmtrdifellem3 syl cvv cmpt a1i weq fveq2 difeq1d dmeqd
        fveq2d adantl simpr fvexd fvmptd fveq1d eqeq2d ralbidv mpbird ralrimiva
        ) ICUAMZFNZENZIOZOZVKVLDOZOZPZFHGUBQZRZEUCIUDOUEUGZVJVLVTMZUHZVSVNVKVMS
        QZTZHUIOZOZOZPZFVRRZWBVMCMWIVLCIUFFVMBWFCGHJKWFUJUKULWBVQWHFVRWBVPWGVNW
        BVKVOWFWBAVLANZIOZSQZTZWEOZWFVTDUMDAVTWNUNPWBLUOAEUPZWNWFPWBWOWMWDWEWOW
        LWCWOWKVMSWJVLIUQURUSUTVAVJWAVBWBWDWEVCVDVEVFVGVHVI $.

      $d K i $.  $d N i $.
      $( Lemma 1 for ~ pmtrdifwrdel2 .  (Contributed by AV, 31-Jan-2019.) $)
      pmtrdifwrdel2lem1 $p |- ( ( W e. Word T /\ K e. N )
                      -> A. i e. ( 0 ..^ ( # ` W ) ) ( ( U ` i ) ` K ) = K ) $=
        ( wcel wa cv cfv wceq cid cdif cdm cvv cword cc0 chash cfzo cpmtr simpr
        co fvex weq fveq2 difeq1d dmeqd fveq2d fvmptg sylancl wrdsymbcl adantlr
        fveq1d simplr eqid pmtrdifellem4 syl2anc eqtrd ralrimiva ) HCUALZFGLZMZ
        FENZDOZOZFPEUBHUCOUDUGZVGVHVKLZMZVJFVHHOZQRZSZGUEOZOZOZFVMFVIVRVMVLVRTL
        VIVRPVGVLUFVPVQUHAVHANZHOZQRZSZVQOVRVKTDAEUIZWCVPVQWDWBVOWDWAVNQVTVHHUJ
        UKULUMKUNUOURVMVNCLZVFVSFPVEVLWEVFVHCHUPUQVEVFVLUSVNBVRCFGIJVRUTVAVBVCV
        D $.
    $}

    $d K u $.  $d N i j n u $.  $d T i n $.  $d R i n u $.  $d i j n u w x $.
    $( A sequence of transpositions of elements of a set without a special
       element corresponds to a sequence of transpositions of elements of the
       set.  (Contributed by AV, 15-Jan-2019.) $)
    pmtrdifwrdel $p |- A. w e. Word T E. u e. Word R ( ( # ` w ) = ( # ` u )
                        /\ A. i e. ( 0 ..^ ( # ` w ) ) A. x e. ( N \ { K } )
                           ( ( w ` i ) ` x ) = ( ( u ` i ) ` x ) ) $=
      ( vj vn cv chash cfv wceq cdif wral wa cid csn cc0 cfzo co cword wrex cdm
      wcel cpmtr cmpt weq fveq2 difeq1d dmeqd pmtrdifwrdellem1 pmtrdifwrdellem2
      fveq2d cbvmptv pmtrdifwrdellem3 eqeq2d fveq1 fveq1d 2ralbidv anbi12d rgen
      rspcev syl12anc ) BMZNOZCMZNOZPZAMZFMZVHOOZVMVNVJOZOZPZAHGUAQZRFUBVIUCUDZ
      RZSZCDUEZUFZBEUEZVHWEUHKVTKMZVHOZTQZUGZHUIOZOZUJZWCUHVIWLNOZPZVOVMVNWLOZO
      ZPZAVSRFVTRZWDLDEWLGHVHIJKLVTWKLMZVHOZTQZUGZWJOKLUKZWIXBWJXCWHXAXCWGWTTWF
      WSVHULUMUNUQURZUOLDEWLGHVHIJXDUPLDEWLFAGHVHIJXDUSWBWNWRSCWLWCVJWLPZVLWNWA
      WRXEVKWMVIVJWLNULUTXEVRWQFAVTVSXEVQWPVOXEVMVPWOVNVJWLVAVBUTVCVDVFVGVE $.

    $d K i w $.  $d N w $.
    $( A sequence of transpositions of elements of a set without a special
       element corresponds to a sequence of transpositions of elements of the
       set not moving the special element.  (Contributed by AV,
       31-Jan-2019.) $)
    pmtrdifwrdel2 $p |- ( K e. N -> A. w e. Word T E. u e. Word R
      ( ( # ` w ) = ( # ` u )
        /\ A. i e. ( 0 ..^ ( # ` w ) ) ( ( ( u ` i ) ` K ) = K
        /\ A. x e. ( N \ { K } ) ( ( w ` i ) ` x ) = ( ( u ` i ) ` x ) ) ) ) $=
      ( vj vn wcel cv chash cfv wceq cdif wral wa csn cc0 cfzo co cword cid cdm
      wrex cpmtr weq fveq2 difeq1d dmeqd fveq2d cbvmptv pmtrdifwrdellem1 adantl
      pmtrdifwrdellem2 pmtrdifwrdel2lem1 ancoms pmtrdifwrdellem3 sylanbrc fveq1
      r19.26 eqeq2d fveq1d eqeq1d ralbidv anbi12d rspcev syl12anc ralrimiva
      cmpt ) GHMZBNZOPZCNZOPZQZGFNZVQPZPZGQZANZVTVOPPZWDWAPZQZAHGUARZSZTZFUBVPU
      CUDZSZTZCDUEZUHZBEUEZVNVOWPMZTZKWKKNZVOPZUFRZUGZHUIPZPZVMZWNMZVPXEOPZQZGV
      TXEPZPZGQZWEWDXIPZQZAWHSZTZFWKSZWOWQXFVNLDEXEGHVOIJKLWKXDLNZVOPZUFRZUGZXC
      PKLUJZXBXTXCYAXAXSYAWTXRUFWSXQVOUKULUMUNUOZUPUQWQXHVNLDEXEGHVOIJYBURUQWRX
      KFWKSZXNFWKSZXPWQVNYCLDEXEFGHVOIJYBUSUTWQYDVNLDEXEFAGHVOIJYBVAUQXKXNFWKVD
      VBWMXHXPTCXEWNVQXEQZVSXHWLXPYEVRXGVPVQXEOUKVEYEWJXOFWKYEWCXKWIXNYEWBXJGYE
      GWAXIVTVQXEVCZVFVGYEWGXMAWHYEWFXLWEYEWDWAXIYFVFVEVHVIVHVIVJVKVL $.
  $}

  ${
    $d p t z $.
    $( The transpositions on a pair.  (Contributed by AV, 9-Dec-2018.) $)
    pmtrprfval $p |- ( pmTrsp ` { 1 , 2 } ) = ( p e. { { 1 , 2 } }
                       |-> ( z e. { 1 , 2 } |-> if ( z = 1 , 2 , 1 ) ) ) $=
      ( vt c1 c2 cv csn cdif cuni cif cmpt wceq cvv wcel eqid ax-mp cn0 1ne2 wa
      adantr cpr cpmtr cfv c2o cen wbr cpw crab wel prex pmtrfval wne 1ex mp3an
      2nn0 pr2pwpr mpteq12i elsni eleq2 biimpar iftrued wo wi elpri unisn simpr
      2ex sneq difeq12d difprsn1 syl6eq unieqd iftrue 3eqtr4a ex difprsn2 eqeq1
      nesymi mtbiri iffalsed jaoi impcom eqtrd sylan mpteq2dva mpteq2ia eqtri
      syl ) DEUAZUBUCZBCFUDUEUFCWIUGUHZAWIABUIZBFZAFZGZHZIZWNJZKZKZBWIGZAWIWNDL
      ZEDJZKZKZWIMNWJWTLDEUJCAWIWJMBWJOUKPWTBXAWSKXEBWKWSXAWSDMNEQNDEULZWKXALUM
      UORDEMQCUPUNWSOUQBXAWSXDWMXANZAWIWRXCXGWMWILZWNWINZWRXCLWMWIURXHXISZWRWQX
      CXJWLWQWNXHWLXIWMWIWNUSUTVAXIXHWQXCLZXIXBWNELZVBXHXKVCZWNDEVDXBXMXLXBXHXK
      XBXHSZEGZIEWQXCEVGVEXNWPXOXNWPWIDGZHZXOXNWMWIWOXPXBXHVFXBWOXPLXHWNDVHTVIX
      FXQXOLRDEVJPVKVLXBXCELXHXBEDVMTVNVOXLXHXKXLXHSZXPIDWQXCDUMVEXRWPXPXRWPWIX
      OHZXPXRWMWIWOXOXLXHVFXLWOXOLXHWNEVHTVIXFXSXPLRDEVPPVKVLXLXCDLXHXLXBEDXLXB
      EDLDERVRWNEDVQVSVTTVNVOWAWHWBWCWDWEWFWGWG $.

    $d p s t $.
    $( The range of the transpositions on a pair is actually a singleton: the
       transposition of the two elements of the pair.  (Contributed by AV,
       9-Dec-2018.) $)
    pmtrprfvalrn $p |- ran ( pmTrsp ` { 1 , 2 } )
                       = { { <. 1 , 2 >. , <. 2 , 1 >. } } $=
      ( vp vz vt vs c1 c2 cpr crn csn cv wceq cmpt cop wrex cab cvv wb cn eqtri
      wcel cpmtr cfv cif pmtrprfval rneqi eqid rnmpt 1ex id 2nn a1i iftrue 1ne2
      adantl nesymi eqeq1 mtbiri iffalsed fmptpr eqeq2d ax-mp bicomi rexbii wne
      abbii prex snnz r19.9rzv bicomd vex weq rexbidv elab velsn 3bitr4i eqriv
      c0 ) EFGZUAUBZHAVRIZBVRBJZEKZFEUCZLZLZHZEFMFEMGZIZVSWEBAUDUEWFCJZWDKZAVTN
      ZCOZWHACVTWDWEWEUFUGWLWIWGKZAVTNZCOZWHWKWNCWJWMAVTWMWJEPTZWMWJQUHWPWGWDWI
      WPBEFFEWCPRRPWPUIZFRTWPUJUKZWRWQWBWCFKWPWBFEULUNWAFKZWCEKWPWSWBFEWSWBFEKE
      FUMUOWAFEUPUQURUNUSUTVAVBVCVEDWOWHDJZWGKZAVTNZXAWTWOTWTWHTVTVQVDZXBXAQVRE
      FVFVGXCXAXBXAAVTVHVIVAWNXBCWTDVJCDVKWMXAAVTWIWTWGUPVLVMDWGVNVOVPSSS $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The sign of a permutation
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c pmSgn pmEven $.

  $( Syntax for the sign of a permutation. $)
  cpsgn $a class pmSgn $.
  $( Syntax for even permutations. $)
  cevpm $a class pmEven $.

  ${
    $d x s w d p $.
    $( Define a function which takes the value ` 1 ` for even permutations and
       ` -u 1 ` for odd.  (Contributed by Stefan O'Rear, 28-Aug-2015.) $)
    df-psgn $a |- pmSgn = ( d e. _V |->
        ( x e. { p e. ( Base ` ( SymGrp ` d ) ) | dom ( p \ _I ) e. Fin } |->
          ( iota s E. w e. Word ran ( pmTrsp ` d )
        ( x = ( ( SymGrp ` d ) gsum w ) /\ s = ( -u 1 ^ ( # ` w ) ) ) ) ) ) $.

    $( Define the set of even permutations on a given set.  (Contributed by
       Stefan O'Rear, 9-Jul-2018.) $)
    df-evpm $a |- pmEven = ( d e. _V |-> ( `' ( pmSgn ` d ) " { 1 } ) ) $.
  $}

  ${
    $d r s A $.  $d r s P $.  $d r s Q $.  $d r s T $.
    psgnunilem1.t $e |- T = ran ( pmTrsp ` D ) $.
    psgnunilem1.d $e |- ( ph -> D e. V ) $.
    psgnunilem1.p $e |- ( ph -> P e. T ) $.
    psgnunilem1.q $e |- ( ph -> Q e. T ) $.
    psgnunilem1.a $e |- ( ph -> A e. dom ( P \ _I ) ) $.
    $( Lemma for ~ psgnuni .  Given two consequtive transpositions in a
       representation of a permutation, either they are equal and therefore
       equivalent to the identity, or they are not and it is possible to
       commute them such that a chosen point in the left transposition is
       preserved in the right.  By repeating this process, a point can be
       removed from a representation of the identity.  (Contributed by Stefan
       O'Rear, 22-Aug-2015.) $)
    psgnunilem1 $p |- ( ph -> ( ( P o. Q ) = ( _I |` D ) \/
          E. r e. T E. s e. T ( ( P o. Q ) = ( r o. s ) /\
                A e. dom ( s \ _I ) /\ -. A e. dom ( r \ _I ) ) ) ) $=
      ( cid wcel ccom wceq syl adantr cdif cdm cres cv wn w3a wrex wo wa wi cfv
      cpmtr eqid pmtrfinv coeq1 eqeq1d syl5ibrcom imp orcd ccnv pmtrfcnv eqcomd
      wne coeq2d wf1o pmtrff1o pmtrfconj syl2anc eqeltrd ad2antrr coass wf f1of
      fco fcoi1 eqtrd syl5req cima c2o cen wbr cvv pmtrfb simp3bi cfn 2onn nnfi
      wss com ax-mp wb enfi mpbiri csn cpr en2eleq simprl wfn f1ofn crn imassrn
      cuni frn syl5ss simprr fnfvima syl3anc difss dmss syl5sseq sseldd pmtrffv
      cif f1odm iftrued imaco imaeq1d resiima syl5eqr 3eltr3d prssi ensymd entr
      eqsstrd fisseneq f1otrspeq syl22anc dmeqd f1omvdconj eleq2d eqeq2d difeq1
      difeq1d notbid 3anbi13d coeq2 3anbi12d rspc2ev syl113anc olcd expr mtbird
      necon3ad pm2.61dane coeq1d fcoi2 eqtr2d syl6eq fnelnfp necon2bbid biimpar
      eqeltrrd eleqtrrd simpr pm2.61dan ) ABEOUAZUBZPZDEQZOCUCZRZUUSIUDZHUDZQZR
      ZBUVCOUAZUBZPZBUVBOUAZUBZPZUEZUFZHFUGIFUGZUHZAUURUIZUVODEUVPDERZUIUVAUVNU
      VPUVQUVAAUVQUVAUJUURAUVAUVQEEQZUUTRZAEFPZUVSMCFCULUKZEUWAUMZJUNSZUVQUUSUV
      RUUTDEEUOUPUQTURUSUVPDEVCZUIZUVNUVAUWEUUSDQZFPZDFPZUUSUWFDQZRZBDOUAZUBZPZ
      BUWFOUAZUBZPZUEZUVNAUWGUURUWDAUWFUUSDUTZQZFADUWRUUSAUWRDAUWHUWRDRLCFUWADU
      WBJVASVBVDZAUVTCCDVEZUWSFPMAUWHUXALCFUWADUWBJVFSZCFUWAEDUWBJVGVHVIVJAUWHU
      URUWDLVJAUWJUURUWDAUWIUUSDDQZQZUUSUUSDDVKAUXDUUSUUTQZUUSAUXCUUTUUSAUWHUXC
      UUTRLCFUWADUWBJUNSZVDACCUUSVLZUXEUUSRACCDVLZCCEVLZUXGAUXAUXHUXBCCDVMSZACC
      EVEZUXIAUVTUXKMCFUWAEUWBJVFSZCCEVMSZCCCDEVNVHZCCUUSVOSVPVQVJAUWMUURUWDNVJ
      UWEUWPBDUUQVRZPZUVPUWDUXPUEUVPUXPDEAUURUXPUVQAUURUXPUIZUIZUXAUXKUWLVSVTWA
      ZUUQUWLRUVQAUXAUXQUXBTAUXKUXQUXLTAUXSUXQAUWHUXSLUWHCWBPZUXAUXSCFUWADUWBJW
      CWDSZTZUXRUWLUUQUXRUUQWEPZUWLUUQWHUWLUUQVTWAZUWLUUQRAUYCUXQAUYCVSWEPZVSWI
      PUYEWFVSWGWJAUUQVSVTWAZUYCUYEWKAUVTUYFMUVTUXTUXKUYFCFUWAEUWBJWCWDSZUUQVSW
      LSWMTUXRUWLBUWLBWNUAXBZWOZUUQUXRUWMUXSUWLUYIRAUWMUXQNTUYBUWLBWPVHUXRUURUY
      HUUQPUYIUUQWHAUURUXPWQUXRBDUKZDUXOVRZUYHUUQUXRDCWRZUXOCWHZUXPUYJUYKPAUYLU
      XQAUXAUYLUXBCCDWSSTAUYMUXQAUXHUYMUXJUXHUXODWTCDUUQXACCDXCXDSTAUURUXPXECUX
      ODBXFXGAUYJUYHRUXQAUYJUWMUYHBXMZUYHAUWHBCPZUYJUYNRLAUWLCBADUBZUWLCUWKDWHU
      WLUYPWHDOXHUWKDXIWJAUXAUYPCRUXBCCDXNSXJZNXKZCUWLFUWADBUWBJUWLUMXLVHAUWMUY
      HBNXOVPTAUYKUUQRUXQAUYKUXCUUQVRZUUQDDUUQXPAUYSUUTUUQVRZUUQAUXCUUTUUQUXFXQ
      AUUQCWHZUYTUUQRAUXKVUAUXLUXKEUBZUUQCUUPEWHUUQVUBWHEOXHUUPEXIWJCCEXNXJSCUU
      QXRSVPXSTXTBUYHUUQYAVHYDAUYDUXQAUXSVSUUQVTWAUYDUYAAUUQVSUYGYBUWLVSUUQYCVH
      TUWLUUQYEXGVBCDEYFYGUUAUUCURAUWPUXPWKUURUWDAUWOUXOBAUWOUWSOUAZUBZUXOAUWNV
      UCAUWFUWSOUWTYMYHAUXIUXAVUDUXORUXMUXBCEDYIVHVPYJVJUUBUVMUWJUWMUWQUFUUSUWF
      UVCQZRZUVHUWQUFIHUWFDFFUVBUWFRZUVEVUFUVLUWQUVHVUGUVDVUEUUSUVBUWFUVCUOYKVU
      GUVKUWPVUGUVJUWOBVUGUVIUWNUVBUWFOYLYHYJYNYOUVCDRZVUFUWJUVHUWMUWQVUHVUEUWI
      UUSUVCDUWFYPYKVUHUVGUWLBVUHUVFUWKUVCDOYLYHYJYQYRYSYTUUDAUURUEZUIZUVNUVAVU
      JUVTEUUSQZFPZUUSEVUKQZRZBVUKOUAZUBZPZVUIUVNAUVTVUIMTAVULVUIAVUKEDQZEUTZQZ
      FAVUKVUREQVUTEDEVKAEVUSVURAVUSEAUVTVUSERMCFUWAEUWBJVASVBVDXSZAUWHUXKVUTFP
      LUXLCFUWADEUWBJVGVHVITAVUNVUIAUUSUVRUUSQZVUMAVVBUUTUUSQZUUSAUVRUUTUUSUWCU
      UEAUXGVVCUUSRUXNCCUUSUUFSUUGEEUUSVKUUHTVUJBEUWLVRZVUPVUJBEUKZBVVDAVVEBRVU
      IAUURVVEBAECWRZUYOUURVVEBVCWKAUXKVVFUXLCCEWSSZUYRCEBUUIVHUUJUUKAVVEVVDPZV
      UIAVVFUWLCWHUWMVVHVVGUYQNCUWLEBXFXGTUULAVUPVVDRVUIAVUPVUTOUAZUBZVVDAVUOVV
      IAVUKVUTOVVAYMYHAUXHUXKVVJVVDRUXJUXLCDEYIVHVPTUUMAVUIUUNUVMVUNVUQVUIUFUUS
      EUVCQZRZUVHVUIUFIHEVUKFFUVBERZUVEVVLUVLVUIUVHVVMUVDVVKUUSUVBEUVCUOYKVVMUV
      KUURVVMUVJUUQBVVMUVIUUPUVBEOYLYHYJYNYOUVCVUKRZVVLVUNUVHVUQVUIVVNVVKVUMUUS
      UVCVUKEYPYKVVNUVGVUPBVVNUVFVUOUVCVUKOYLYHYJYQYRYSYTUUO $.
  $}

  ${
    $d j k r s w A $.  $d j r s w x D $.  $d j r s ph $.  $d j k r s w x G $.
    $d j k r s w x I $.  $d j r s w x T $.  $d j k r s w x W $.
    $d r s w x L $.
    psgnunilem2.g $e |- G = ( SymGrp ` D ) $.
    psgnunilem2.t $e |- T = ran ( pmTrsp ` D ) $.
    psgnunilem2.d $e |- ( ph -> D e. V ) $.
    psgnunilem2.w $e |- ( ph -> W e. Word T ) $.
    psgnunilem2.id $e |- ( ph -> ( G gsum W ) = ( _I |` D ) ) $.
    psgnunilem2.l $e |- ( ph -> ( # ` W ) = L ) $.
    psgnunilem2.ix $e |- ( ph -> I e. ( 0 ..^ L ) ) $.
    psgnunilem2.a $e |- ( ph -> A e. dom ( ( W ` I ) \ _I ) ) $.
    psgnunilem2.al $e |- ( ph -> A. k e. ( 0 ..^ I )
          -. A e. dom ( ( W ` k ) \ _I ) ) $.
    $( Lemma for ~ psgnuni .  It is impossible to shift a transposition off the
       end because if the active transposition is at the right end, it is the
       only transposition moving ` A ` in contradiction to this being a
       representation of the identity.  (Contributed by Stefan O'Rear,
       25-Aug-2015.)  (Revised by Mario Carneiro, 28-Feb-2016.) $)
    psgnunilem5 $p |- ( ph -> ( I + 1 ) e. ( 0 ..^ L ) ) $=
      ( wcel vj vs c1 caddc co cc0 cfzo wceq cgsu cid cdif c0 noel cres difeq1d
      cdm dmeqd wss resss ssdif0 mpbi dmeqi dm0 syl6eq eleq2d mtbiri wa csubstr
      eqtri cop cfv ccom wf1o wxo cbs cmnd cword cgrp symggrp 3syl eqid symgtrf
      grpmnd sswrd sseldd swrdcl syl gsumwcl syl2anc symgbasf1o adantr chash wf
      mp1i wrdf oveq2d eleqtrrd ffvelrnd sseldi wn wo cv cvv crab csubmnd csubg
      csn symgsssg subgsubm cuz fzossfz elfzuz3 eqeltrd fzoss2 sselda ffvelrnda
      cmpt cfz syldan wral fveq2 notbid cbvralv sylib r19.21bi difeq1 cin disj2
      sseq1d disjsn bitr3i syl6bb elrab 3eqtrd syl3anc cs1 cconcat cmin eqtrd
      cn sylanbrc fmptd swrd0val feqmptd resmpt feq1d mpbird iswrdi gsumwsubmcl
      reseq1d simprbi jca excxor sylibr f1omvdco3 cplusg wne cn0 clt wbr elfzo0
      olcd simp2bi cfn wb wrdfin hashnncl mpbid swrdccatwrd eqcomd oveq1d nncnd
      clsw 1cnd cz elfzoelz zcnd subadd2d biimpar opeq2 adantl sylan9eq oveq12d
      lsw s1eqd s1cld gsumccat gsumws1 symgov mtand fzostep1 ord mt3d ) AGUCUDU
      EZUFHUGUEZTZUWNHUHZAUWQBFJUIUEZUJUKZUPZTZAUXABULTBUMAUWTULBAUWTUJCUNZUJUK
      ZUPZULAUWSUXCAUWRUXBUJOUOUQUXDULUPULUXCULUXBUJURUXCULUHUJCUSUXBUJUTVAVBVC
      VIVDVEVFAUWQVGZBFJUFGVJZVHUEZUIUEZGJVKZVLZUJUKZUPZUWTUXECCUXHVMZCCUXIVMZB
      UXHUJUKZUPZTZBUXIUJUKUPTZVNZBUXLTAUXMUWQAUXHFVOVKZTZUXMAFVPTZUXGUXTVQZTZU
      YAACITZFVRTUYBMCFIKVSFWCVTZAJUYCTUYDADVQZUYCJDUXTURUYGUYCURAUXTCDFLKUXTWA
      ZWBZDUXTWDWNNWEUXTJUFGWFWGZUXTFUXGUYHWHWIZCUXTUXHFKUYHWJWGWKAUXNUWQAUXIUX
      TTZUXNADUXTUXIUYIAUFJWLVKZUGUEZDGJAJUYGTZUYNDJWMNDJWOWGZAGUWOUYNQAUYMHUFU
      GPWPWQWRWSZCUXTUXIFKUYHWJWGWKUXEUXQUXRWTVGZUXQWTZUXRVGZXAUXSUXEUYTUYRUXEU
      YSUXRUXEUXHUAXBZUJUKZUPZXCBXGZUKZURZUAUXTXDZTZUYSUXEVUGFXEVKTZUXGVUGVQTZV
      UHAVUIUWQAUYEVUGFXFVKTVUIMUAUXTCFIVUEKUYHXHVUGFXIVTWKUXEUFGUGUEZVUGUXGWMZ
      VUJAVULUWQAVULVUKVUGUBVUKUBXBZJVKZXQZWMAUBVUKVUNVUGVUOAVUMVUKTZVGVUNUXTTZ
      BVUNUJUKZUPZTZWTZVUNVUGTAVUPVUMUYNTZVUQAVUKUYNVUMAUYMGXJVKZTZVUKUYNURZAUY
      MHVVCPAGUFHXRUEZTHVVCTAUWOVVFGUFHXKQWSZGUFHXLWGXMZGUFUYMXNZWGXOAVVBVGDUXT
      VUNUYIAUYNDVUMJUYPXPWSXSAVVAUBVUKABEXBZJVKZUJUKZUPZTZWTZEVUKXTVVAUBVUKXTS
      VVOVVAEUBVUKVVJVUMUHZVVNVUTVVPVVMVUSBVVPVVLVURVVPVVKVUNUJVVJVUMJYAUOUQVEY
      BYCYDYEVUFVVAUAVUNUXTVUAVUNUHZVUFVUSVUEURZVVAVVQVUCVUSVUEVVQVUBVURVUAVUNU
      JYFUQYIVVRVUSVUDYGULUHVVAVUSVUDYHVUSBYJYKYLYMUUAVUOWAUUBAVUKVUGUXGVUOAUXG
      JVUKUNZUBUYNVUNXQZVUKUNZVUOAUYOGUFUYMXRUEZTUXGVVSUHNAGVVFVWBVVGAUYMHUFXRP
      WPWQDJGUUCWIAJVVTVUKAUBUYNDJUYPUUDUUJAVVDVVEVWAVUOUHVVHVVIUBUYNVUKVUNUUEV
      TYNUUFUUGWKVUGGUXGUUHWGVUGFUXGUUIWIVUHUXPVUEURZUYSVUHUYAVWCVUFVWCUAUXHUXT
      VUAUXHUHZVUCUXPVUEVWDVUBUXOVUAUXHUJYFUQYIYMUUKVWCUXPVUDYGULUHUYSUXPVUDYHU
      XPBYJYKYDWGAUXRUWQRWKUULUVBUXQUXRUUMUUNCUXHUXIBUUOYOUXEUWSUXKUXEUWRUXJUJU
      XEUWRFUXGUXIYPZYQUEZUIUEZUXHFVWEUIUEZFUUPVKZUEZUXJUXEJVWFFUIUXEJJUFUYMUCY
      RUEZVJZVHUEZJUVMVKZYPZYQUEZVWFUXEUYOJULUUQZJVWPUHAUYOUWQNWKAVWQUWQAUYMYTT
      ZVWQAUYMHYTPAGUWOTZHYTTZQVWSGUURTVWTGHUUSUUTGHUVAUVCWGZXMAUYOJUVDTVWRVWQU
      VENDJUVFJUVGVTUVHWKUYOVWQVGVWPJDJUVIUVJWIAUWQVWKGUHZVWPVWFUHUXEVWKHUCYRUE
      ZGAVWKVXCUHUWQAUYMHUCYRPUVKWKAVXCGUHUWQAHUCGAHVXAUVLAUVNAGAVWSGUVOTQGUFHU
      VPWGUVQUVRUVSYSAVXBVGZVWMUXGVWOVWEYQVXBVWMUXGUHAVXBVWLUXFJVHVWKGUFUVTWPUW
      AVXDVWNUXIAVXBVWNVWKJVKZUXIAUYOVWNVXEUHNJUYGUWDWGVWKGJYAUWBUWEUWCXSYSWPAV
      WGVWJUHZUWQAUYBUYDVWEUYCTVXFUYFUYJAUXIUXTUYQUWFUXTVWIFUXGVWEUYHVWIWAZUWGY
      OWKAVWJUXJUHUWQAVWJUXHUXIVWIUEZUXJAVWHUXIUXHVWIAUYLVWHUXIUHUYQUXTUXIFUYHU
      WHWGWPAUYAUYLVXHUXJUHUYKUYQCUXTVWIFUXHUXIKUYHVXGUWIWIYSWKYNUOUQWQUWJAUWPU
      WQAVWSUWPUWQXAQGUFHUWKWGUWLUWM $.

    psgnunilem2.in $e |- ( ph -> -. E. x e. Word T
            ( ( # ` x ) = ( L - 2 ) /\ ( G gsum x ) = ( _I |` D ) ) ) $.
    $( Lemma for ~ psgnuni .  Induction step for moving a transposition as far
       to the right as possible.  (Contributed by Stefan O'Rear, 24-Aug-2015.)
       (Revised by Mario Carneiro, 28-Feb-2016.) $)
    psgnunilem2 $p |- ( ph -> E. w e. Word T
          ( ( ( G gsum w ) = ( _I |` D ) /\ ( # ` w ) = L ) /\
          ( ( I + 1 ) e. ( 0 ..^ L ) /\ A e. dom ( ( w ` ( I + 1 ) ) \ _I ) /\
          A. j e. ( 0 ..^ ( I + 1 ) ) -. A e. dom ( ( w ` j ) \ _I ) ) ) ) $=
      ( vr vs cfv c1 caddc co ccom cid cres wceq cv cgsu chash wa cc0 cfzo wcel
      cdif cdm wn wral w3a cword wrex c2 cmin c0 cotp csplice wrd0 splcl adantr
      sylancl cneg cn0 cle wbr cfz fzossfz sseldi elfznn0 syl 2nn0 cr nn0addge1
      nn0addcl nn0red syl3anbrc psgnunilem5 fzofzp1 oveq2i oveq2d spllen oveq1i
      elfz2nn0 a1i cc 2cn syl5eq 3eqtrd syl12anc eqid wss cs2 eleqtrrd ffvelrnd
      syl3anc gsumws2 symgov syl2anc simpr gsumspl 3eqtr3d fveq2 eqeq1d anbi12d
      wf oveq2 rspcev ex adantrr sselda eqtrd addid1d clt 2nn mpbir3an eleqtrri
      elfzo0 splfv2a difeq1d dmeqd wb eleq2d notbid ad2antrr fveq1 1cnd addassd
      nn0cnd df-2 syl6reqr 3eltr4d hash0 df-neg eqtr4i pncan2 negeqd oveq12d cz
      elfzel2 zcnd negsub cop csubstr splid cbs cmnd cgrp symggrp symgtrf sswrd
      grpmnd ax-mp swrdcl cplusg swrds2 feq2d mpbid c0g symgid syl6eqr pm2.21dd
      wrdf gsum0 simprl simprr s2cld simprr1 adantrl 3eqtr4rd subidi syl6eq jca
      s2len eqeltrd simprr2 cn 1nn0 s2fv1 ad2antll cuz fzosplitsni nn0uz eleq2s
      1lt2 wo wi rspccva sylan adantlr splfv1 neleqtrrd simprr3 0nn0 2pos s2fv0
      fveq2d ad2antrl mtbird syl5ibrcom jaod sylbid ralrimiv 3jca 3anbi23d expr
      ralbidv rexlimdvva psgnunilem1 mpjaod ) AJMUFZJUGUHUIZMUFZUJZUKEULZUMZICU
[encoded data, 4400 characters]
      UKVUCUYKWVBYTYNYOYQYRUYAUXSXSYBXDUXTUYBADEUYEUYGFLUEUDOPWUGWUIUAUYCUYD $.
  $}

  ${
    $d a b c d e w x y D $.  $d a b c d w x G $.  $d a b c e w x y L $.
    $d a b c w x y T $.  $d a b c e w x W $.  $d a b c e x ph $.
    $d b c d w x y G $.
    psgnunilem3.g $e |- G = ( SymGrp ` D ) $.
    psgnunilem3.t $e |- T = ran ( pmTrsp ` D ) $.
    psgnunilem3.d $e |- ( ph -> D e. V ) $.
    psgnunilem3.w1 $e |- ( ph -> W e. Word T ) $.
    psgnunilem3.l $e |- ( ph -> ( # ` W ) = L ) $.
    psgnunilem3.w2 $e |- ( ph -> ( # ` W ) e. NN ) $.
    psgnunilem3.w3 $e |- ( ph -> ( G gsum W ) = ( _I |` D ) ) $.
    psgnunilem3.in $e |- ( ph -> -. E. x e. Word T
            ( ( # ` x ) = ( L - 2 ) /\ ( G gsum x ) = ( _I |` D ) ) ) $.
    $( Lemma for ~ psgnuni .  Any nonempty representation of the identity can
       be incrementally transformed into a representation two shorter.
       (Contributed by Stefan O'Rear, 25-Aug-2015.) $)
    psgnunilem3 $p |- -. ph $=
      ( vc wcel cc0 cid ve vw va vb vd vy cn0 chash cfv cn eqeltrrd nnnn0d cdif
      cv cdm wn c0 wne wex cfzo co cword wf wrdf syl clt wbr 0nn0 nngt0d elfzo0
      syl3anbrc oveq2d eleqtrrd ffvelrnd cpmtr eqid pmtrfmvdn0 n0 sylib wa cgsu
      a1i cres wceq wral w3a wrex fzonel simpr1 mto nrex wi caddc eleq1 difeq1d
      c1 fveq2 dmeqd eleq2d raleqdv 3anbi123d anbi2d rexbidv imbi2d weq anbi12d
      oveq2 eqeq1d fveq1 notbid ralbidv cbvralv syl6bb cbvrexv adantr jca simpr
      3anbi23d ral0 fzo0 raleqi rspcev syl12anc ad2antrr simprl simpll ad2antll
      mpbir 3jca simplr simpr2 simpr3 c2 cmin sylnib psgnunilem2 rexlimdvaa a2i
      nn0ind mtoi con2i exlimddv pm2.65i ) AFUGRZAFAHUHUIZFUJMNUKZULAUAUNZSHUIZ
      TUMZUOZRZUUDUPUAAUUJUQURZUUKUAUSAUUHDRUULASUUEUTVAZDSHAHDVBZRZUUMDHVCLDHV
      DVEASSFUTVAZUUMASUGRZFUJRSFVFVGSUUPRZUUQAVHWBUUFAFUUFVISFVJVKZAUUEFSUTMVL
      VMVNCDCVOUIZUUHUUTVPJVQVEUAUUJVRVSUUDAUUKVTZUUDUVAEUBUNZWAVAZTCWCZWDZUVBU
      HUIZFWDZVTZFUUPRZUUGFUVBUIZTUMZUOZRZUUGQUNZUVBUIZTUMZUOZRZUPZQUUPWEZWFZVT
      ZUBUUNWGZUWBUBUUNUWBUPUVBUUNRUWBUVISFWHUVHUVIUVMUVTWIWJWBWKUVAUVHUCUNZUUP
      RZUUGUWDUVBUIZTUMZUOZRZUVSQSUWDUTVAZWEZWFZVTZUBUUNWGZWLUVAUVHUURUUGSUVBUI
      ZTUMZUOZRZUVSQSSUTVAZWEZWFZVTZUBUUNWGZWLUVAEBUNZWAVAZUVDWDZUXDUHUIZFWDZVT
      ZUDUNZUUPRZUUGUXJUXDUIZTUMZUOZRZUUGUEUNZUXDUIZTUMZUOZRZUPZUESUXJUTVAZWEZW
      FZVTZBUUNWGZWLZUVAUVHUXJWPWMVAZUUPRZUUGUYHUVBUIZTUMZUOZRZUVSQSUYHUTVAZWEZ
      WFZVTZUBUUNWGZWLZUVAUWCWLUCUDFUWDSWDZUWNUXCUVAUYTUWMUXBUBUUNUYTUWLUXAUVHU
      YTUWEUURUWIUWRUWKUWTUWDSUUPWNUYTUWHUWQUUGUYTUWGUWPUYTUWFUWOTUWDSUVBWQWOWR
      WSUYTUVSQUWJUWSUWDSSUTXGWTXAXBXCXDUCUDXEZUWNUYFUVAVUAUWNUVHUXKUUGUXJUVBUI
      ZTUMZUOZRZUVSQUYBWEZWFZVTZUBUUNWGUYFVUAUWMVUHUBUUNVUAUWLVUGUVHVUAUWEUXKUW
      IVUEUWKVUFUWDUXJUUPWNVUAUWHVUDUUGVUAUWGVUCVUAUWFVUBTUWDUXJUVBWQWOWRWSVUAU
      VSQUWJUYBUWDUXJSUTXGWTXAXBXCVUHUYEUBBUUNUBBXEZUVHUXIVUGUYDVUIUVEUXFUVGUXH
      VUIUVCUXEUVDUVBUXDEWAXGXHVUIUVFUXGFUVBUXDUHWQXHXFVUIVUEUXOVUFUYCUXKVUIVUD
      UXNUUGVUIVUCUXMVUIVUBUXLTUXJUVBUXDXIWOWRWSVUIVUFUUGUVNUXDUIZTUMZUOZRZUPZQ
      UYBWEUYCVUIUVSVUNQUYBVUIUVRVUMVUIUVQVULUUGVUIUVPVUKVUIUVOVUJTUVNUVBUXDXIW
      OWRWSXJXKVUNUYAQUEUYBQUEXEZVUMUXTVUOVULUXSUUGVUOVUKUXRVUOVUJUXQTUVNUXPUXD
      WQWOWRWSXJXLXMXRXFXNXMXDUWDUYHWDZUWNUYRUVAVUPUWMUYQUBUUNVUPUWLUYPUVHVUPUW
      EUYIUWIUYMUWKUYOUWDUYHUUPWNVUPUWHUYLUUGVUPUWGUYKVUPUWFUYJTUWDUYHUVBWQWOWR
      WSVUPUVSQUWJUYNUWDUYHSUTXGWTXAXBXCXDUWDFWDZUWNUWCUVAVUQUWMUWBUBUUNVUQUWLU
      WAUVHVUQUWEUVIUWIUVMUWKUVTUWDFUUPWNVUQUWHUVLUUGVUQUWGUVKVUQUWFUVJTUWDFUVB
      WQWOWRWSVUQUVSQUWJUUPUWDFSUTXGWTXAXBXCXDUVAUUOEHWAVAZUVDWDZUUEFWDZVTZUURU
      UKUUGUVNHUIZTUMZUOZRZUPZQUWSWEZWFZUXCAUUOUUKLXOAVVAUUKAVUSVUTOMXPXOUVAUUR
      UUKVVGAUURUUKUUSXOAUUKXQVVGUVAVVGVVFQUQWEVVFQXSVVFQUWSUQSXTYAYHWBYIUXBVVA
      VVHVTUBHUUNUVBHWDZUVHVVAUXAVVHVVIUVEVUSUVGVUTVVIUVCVURUVDUVBHEWAXGXHVVIUV
      FUUEFUVBHUHWQXHXFVVIUWRUUKUWTVVGUURVVIUWQUUJUUGVVIUWPUUIVVIUWOUUHTSUVBHXI
      WOWRWSVVIUVSVVFQUWSVVIUVRVVEVVIUVQVVDUUGVVIUVPVVCVVIUVOVVBTUVNUVBHXIWOWRW
      SXJXKXRXFYBYCUYGUYSWLUXJUGRUVAUYFUYRUVAUYEUYRBUUNUVAUXDUUNRZUYEVTZVTUFUBU
      UGCDQUEEUXJFGUXDIJACGRUUKVVKKYDUVAVVJUYEYEUYEUXFUVAVVJUXFUXHUYDYFYGUYEUXH
      UVAVVJUXFUXHUYDYJYGUYEUXKUVAVVJUXIUXKUXOUYCWIYGUYEUXOUVAVVJUXIUXKUXOUYCYK
      YGUYEUYCUVAVVJUXIUXKUXOUYCYLYGAUFUNZUHUIZFYMYNVAZWDZEVVLWAVAZUVDWDZVTZUFU
      UNWGZUPUUKVVKAUXGVVNWDZUXFVTZBUUNWGVVSPVWAVVRBUFUUNBUFXEZVVTVVOUXFVVQVWBU
      XGVVMVVNUXDVVLUHWQXHVWBUXEVVPUVDUXDVVLEWAXGXHXFXNYOYDYPYQYRWBYSYTUUAUUBUU
      C $.
  $}

  ${
    $d w x y D $.  $d w x y G $.  $d w x y T $.  $d w x W $.  $d w x y ph $.
    psgnunilem4.g $e |- G = ( SymGrp ` D ) $.
    psgnunilem4.t $e |- T = ran ( pmTrsp ` D ) $.
    psgnunilem4.d $e |- ( ph -> D e. V ) $.
    psgnunilem4.w1 $e |- ( ph -> W e. Word T ) $.
    psgnunilem4.w2 $e |- ( ph -> ( G gsum W ) = ( _I |` D ) ) $.
    $( Lemma for ~ psgnuni .  An odd-length representation of the identity is
       impossible, as it could be repeatedly shortened to a length of 1, but a
       length 1 permutation must be a transposition.  (Contributed by Stefan
       O'Rear, 25-Aug-2015.) $)
    psgnunilem4 $p |- ( ph -> ( -u 1 ^ ( # ` W ) ) = 1 ) $=
      ( vx wcel co wceq c1 chash cexp wa wi vw cword cgsu cid cres cneg cfv cc0
      vy cv cn0 cuz cfn wrdfin hashcl 3syl nn0uz syl6eleq cfzo wal cfz c0 fveq2
      hash0 syl6eq oveq2d cc neg1cn exp0 ax-mp 2a1d wne w3a c2 cmin wex wrex wn
      simpl1 syl simpl3l eqidd cn simpl2 hashnncl biimpar syl2anc simpl3r oveq2
      eqeq1d anbi12d cbvrexv notbii biimpi adantl psgnunilem3 iman mpbir df-rex
      sylib simprl simprrr jca clt wbr simp3l simp2 adantr simprrl cr crp nnred
      2rp ltsubrp sylancl eqbrtrd elfzo0 syl3anbrc id com13 sylc a1i neg1ne0 cz
      cdiv nnzd expsubd neg1sqe1 oveq2i m1expcl zcnd div1d syl5eq 3eqtrd sylibd
      2z ex com23 eleq1 imbi12d alimdv 19.23v syl6ib mpid 3exp com34 com12 impd
      pm2.61ine 3adant2 uzindi mp2and ) AFCUBZMZDFUCNZUDBUEZOZPUFZFQUGZRNZPOZJK
      AUAUJZUUMMZDUVBUCNZUUPOZSZUURUVBQUGZRNZPOZTZLUJZUUMMZDUVKUCNZUUPOZSZUURUV
      KQUGZRNZPOZTZUUNUUQSZUVATUALFUVGUVPUUSUHUUMJAUUSUKUHULUGAUUNFUMMUUSUKMJCF
      UNFUOUPUQURAUVPUHUVGUSNMZUVSTZLUTZUVJUVGUHUUSVANMAUWCSZUVJTUVBVBUVBVBOZUV
      IUWDUVFUWEUVHUURUHRNZPUWEUVGUHUURRUWEUVGVBQUGUHUVBVBQVCVDVEVFUURVGMZUWFPO
      VHUURVIVJVEVKUVBVBVLZAUWCUVJAUWHUWCUVJTAUWHUVFUWCUVIAUWHUVFUWCUVITAUWHUVF
      VMZUWCUVLUVPUVGVNVONZOZUVNSZSZLVPZUVIUWIUWLLUUMVQZUWNUWIUWOTUWIUWOVRZSZVR
      UWQUIBCDUVGEUVBGHUWQABEMAUWHUVFUWPVSIVTUVCUVEAUWHUWPWAZUWQUVGWBUWQUVBUMMZ
      UWHUVGWCMZUWQUVCUWSUWRCUVBUNZVTAUWHUVFUWPWDUWSUWTUWHUVBWEWFZWGUVCUVEAUWHU
      WPWHUWPUIUJZQUGZUWJOZDUXCUCNZUUPOZSZUIUUMVQZVRZUWIUWPUXJUWOUXIUWLUXHLUIUU
      MUVKUXCOZUWKUXEUVNUXGUXKUVPUXDUWJUVKUXCQVCWJUXKUVMUXFUUPUVKUXCDUCWIWJWKWL
      WMWNWOWPUWIUWOWQWRUWLLUUMWSWTUWIUWCUWMUVITZLUTUWNUVITUWIUWBUXLLUWIUWMUWBU
      VIUWIUWMUWBUVITUWIUWMSZUWBUVRUVIUXMUVOUWAUWBUVRTUXMUVLUVNUWIUVLUWLXAZUWIU
      VLUWKUVNXBXCUXMUVPUKMZUWTUVPUVGXDXEUWAUXMUVLUVKUMMUXOUXNCUVKUNUVKUOUPUWIU
      WTUWMUWIUWSUWHUWTUWIUVCUWSAUWHUVCUVEXFUXAVTAUWHUVFXGUXBWGXHZUXMUVPUWJUVGX
      DUWIUVLUWKUVNXIZUXMUVGXJMVNXKMUWJUVGXDXEUXMUVGUXPXLXMUVGVNXNXOXPUVPUVGXQX
      RUWBUWAUVOUVRUWBXSXTYAUXMUVQUVHPUXMUVQUURUWJRNUVHUURVNRNZYENZUVHUXMUVPUWJ
      UURRUXQVFUXMUURUVGVNUWGUXMVHYBUURUHVLUXMYCYBVNYDMUXMYPYBUXMUVGUXPYFZYGUXM
      UXSUVHPYENUVHUXRPUVHYEYHYIUXMUVHUXMUVGYDMZUVHVGMUXTUYAUVHUVGYJYKVTYLYMYNW
      JYOYQYRUUAUWMUVILUUBUUCUUDUUEUUFUUGUUHUUIUUJUVBUVKOZUVFUVOUVIUVRUYBUVCUVL
      UVEUVNUVBUVKUUMYSUYBUVDUVMUUPUVBUVKDUCWIWJWKUYBUVHUVQPUYBUVGUVPUURRUVBUVK
      QVCZVFWJYTUVBFOZUVFUVTUVIUVAUYDUVCUUNUVEUUQUVBFUUMYSUYDUVDUUOUUPUVBFDUCWI
      WJWKUYDUVHUUTPUYDUVGUUSUURRUVBFQVCZVFWJYTUYCUYEUUKUUL $.
  $}

  $( Addition and subtraction of parities are the same.  (Contributed by Stefan
     O'Rear, 27-Aug-2015.) $)
  m1expaddsub $p |- ( ( X e. ZZ /\ Y e. ZZ ) ->
      ( -u 1 ^ ( X - Y ) ) = ( -u 1 ^ ( X + Y ) ) ) $=
    ( cz wcel c1 cneg cexp cdiv cmul m1expcl zcnd adantl cc0 wne neg1cn neg1ne0
    co cc wceq ax-1cn wa cmin caddc adantr expne0i mp3an12 divrecd cpr m1expcl2
    elpri ax-1ne0 divneg2 mp3an 1div1e1 negeqi eqtr3i oveq2 3eqtr4a jaoi oveq2d
    wo id 3syl eqtrd expsub mpanl12 expaddz 3eqtr4d ) ACDZBCDZUAZEFZAGQZVLBGQZH
    QZVMVNIQZVLABUBQGQZVLABUCQGQZVKVOVMEVNHQZIQVPVKVMVNVIVMRDVJVIVMAJKUDVJVNRDV
    IVJVNBJKLVJVNMNZVIVLRDZVLMNZVJVTOPVLBUEUFLUGVKVSVNVMIVJVSVNSZVIVJVNVLEUHDVN
    VLSZVNESZVAWCBUIVNVLEUJWDWCWEWDEVLHQZVLVSVNEEHQZFZWFVLERDZWIEMNWHWFSTTUKEEU
    LUMWGEUNUOUPVNVLEHUQWDVBURWEWGEVSVNUNVNEEHUQWEVBURUSVCLUTVDWAWBVKVQVOSOPVLA
    BVEVFWAWBVKVRVPSOPVLABVGVFVH $.

  ${
    psgnuni.g $e |- G = ( SymGrp ` D ) $.
    psgnuni.t $e |- T = ran ( pmTrsp ` D ) $.
    psgnuni.d $e |- ( ph -> D e. V ) $.
    psgnuni.w $e |- ( ph -> W e. Word T ) $.
    psgnuni.x $e |- ( ph -> X e. Word T ) $.
    psgnuni.e $e |- ( ph -> ( G gsum W ) = ( G gsum X ) ) $.
    $( If the same permutation can be written in more than one way as a product
       of transpositions, the parity of those products must agree; otherwise
       the product of one with the inverse of the other would be an odd
       representation of the identity.  (Contributed by Stefan O'Rear,
       27-Aug-2015.) $)
    psgnuni $p |- ( ph -> ( -u 1 ^ ( # ` W ) ) = ( -u 1 ^ ( # ` X ) ) ) $=
      ( cfv cexp co wcel syl wceq syl2anc c1 cneg chash cword cn0 lencl m1expcl
      cz nn0zd zcnd cc0 wne cc neg1cn neg1ne0 expne0i mp3an12 caddc m1expaddsub
      cdiv cmin wa expsub mpanl12 eqtr3d creverse cconcat ccatlen revlen oveq2d
      revcl eqtrd ccatcl cgsu cplusg c0g cid cres cminusg fveq2d eqid symgtrinv
      eqtr2d cgrp cbs symggrp grpmnd symgtrf sswrd ax-mp sseldi gsumwcl grprinv
      cmnd wss gsumccat syl3anc symgid 3eqtr4d psgnunilem4 diveq1d ) AUAUBZFUCN
      ZOPZXBGUCNZOPZAXDAXCUHQZXDUHQAXCAFCUDZQZXCUEQKCFUFRUIZXCUGRUJAXFAXEUHQZXF
      UHQAXEAGXHQZXEUEQLCGUFRUIZXEUGRUJAXKXFUKULZXMXBUMQZXBUKULZXKXNUNUOXBXEUPU
      QRAXBXCXEURPZOPZXDXFUTPZUAAXBXCXEVAPOPZXRXSAXGXKXTXRSXJXMXCXEUSTAXGXKXTXS
      SZXJXMXOXPXGXKVBYAUNUOXBXCXEVCVDTVEAXBFGVFNZVGPZUCNZOPXRUAAYDXQXBOAYDXCYB
      UCNZURPZXQAXIYBXHQZYDYFSKAXLYGLCGVKRZCFYBVHTAYEXEXCURAXLYEXESLCGVIRVJVLVJ
      ABCDEYCHIJAXIYGYCXHQKYHCFYBVMTADFVNPZDYBVNPZDVONZPZDVPNZDYCVNPZVQBVRZAYLY
      IYIDVSNZNZYKPZYMAYJYQYIYKAYQDGVNPZYPNZYJAYIYSYPMVTABEQZXLYTYJSJLBCDYPEGIH
      YPWAZWBTWCVJADWDQZYIDWENZQZYRYMSAUUAUUCJBDEHWFRZADWNQZFUUDUDZQZUUEAUUCUUG
      UUFDWGRZAXHUUHFCUUDWOXHUUHWOUUDBCDIHUUDWAZWHCUUDWIWJZKWKZUUDDFUUKWLTUUDYK
      DYPYIYMUUKYKWAZYMWAUUBWMTVLAUUGUUIYBUUHQYNYLSUUJUUMAXHUUHYBUULYHWKUUDYKDF
      YBUUKUUNWPWQAUUAYOYMSJBDEHWRRWSWTVEVEXA $.
  $}

  ${
    $d d p s w x $.  $d d s w x D $.  $d d x F $.  $d d G $.  $d d w T $.
    $d p B $.
    psgnfval.g $e |- G = ( SymGrp ` D ) $.
    psgnfval.b $e |- B = ( Base ` G ) $.
    psgnfval.f $e |- F = { p e. B | dom ( p \ _I ) e. Fin } $.
    psgnfval.t $e |- T = ran ( pmTrsp ` D ) $.
    psgnfval.n $e |- N = ( pmSgn ` D ) $.
    $( Function definition of the permutation sign function.  (Contributed by
       Stefan O'Rear, 28-Aug-2015.) $)
    psgnfval $p |- N = ( x e. F |-> ( iota s E. w e. Word T
        ( x = ( G gsum w ) /\ s = ( -u 1 ^ ( # ` w ) ) ) ) ) $=
      ( cfv cv wceq cbs c0 vd cpsgn cgsu co c1 cneg chash cexp wa wrex cio cmpt
      cword cvv wcel cid cdif cdm cfn csymg crab cpmtr crn fveq2 syl6eqr fveq2d
      rabeq syl rneqd oveq1d eqeq2d anbi1d rexeqbidv iotabidv mpteq12dv df-psgn
      wrdeq fvex eqeltri rabex2 mptex fvmpt wn fvprc syl5eq rab0 syl6eq mpteq1d
      base0 mpt0 eqtr4d pm2.61i eqtri ) HDUBPZAFAQZGBQZUCUDZRZIQUEUFWPUGPUHUDRZ
      UIZBEUMZUJZIUKZULZODUNUOZWNXDRUADAJQUPUQURUSUOZJUAQZUTPZSPZVAZWOXHWPUCUDZ
      RZWSUIZBXGVBPZVCZUMZUJZIUKZULXDUNUBXGDRZAXJXRFXCXSXJXFJCVAZFXSXICRXJXTRXS
      XIGSPZCXSXHGSXSXHDUTPZGXGDUTVDKVEZVFLVEXFJXICVGVHMVEXSXQXBIXSXMWTBXPXAXSX
      OERXPXARXSXODVBPZVCEXSXNYDXGDVBVDVINVEXOEVQVHXSXLWRWSXSXKWQWOXSXHGWPUCYCV
      JVKVLVMVNVOABIJUAVPAFXCXFJCFMCYAUNLGSVRVSVTWAWBXEWCZWNTXDDUBWDYEXDATXCULT
      YEAFTXCYEFXTTMYEXTXFJTVAZTYECTRXTYFRYECYATLYEYATSPTYEGTSYEGYBTKDUTWDWEVFW
      IVEWEXFJCTVGVHXFJWFWGWEWHAXCWJWGWKWLWM $.
  $}

  ${
    $d p s w x $.  $d p B $.  $d s w x D $.  $d x F $.
    psgnfn.g $e |- G = ( SymGrp ` D ) $.
    psgnfn.b $e |- B = ( Base ` G ) $.
    psgnfn.f $e |- F = { p e. B | dom ( p \ _I ) e. Fin } $.
    psgnfn.n $e |- N = ( pmSgn ` D ) $.
    $( Functionality and domain of the permutation sign function.  (Contributed
       by Stefan O'Rear, 28-Aug-2015.) $)
    psgnfn $p |- N Fn F $=
      ( vx vw vs cv cgsu co wceq c1 cneg cfv chash cexp wa cpmtr crn cword wrex
      cio iotaex eqid psgnfval fnmpti ) KCKNDLNZOPQMNRSUMUATUBPQUCLBUDTUEZUFUGZ
      MUHEUOMUIKLABUNCDEMFGHIUNUJJUKUL $.
  $}

  ${
    $d p B $.  $d p P $.  $d p G $.
    psgneldm.g $e |- G = ( SymGrp ` D ) $.
    psgneldm.n $e |- N = ( pmSgn ` D ) $.
    $( The finitary permutations are a subgroup.  (Contributed by Stefan
       O'Rear, 28-Aug-2015.) $)
    psgndmsubg $p |- ( D e. V -> dom N e. ( SubGrp ` G ) ) $=
      ( vp wcel cdm cv cid cdif cfn cbs cfv crab csubg wfn wceq eqid fndm ax-mp
      psgnfn symgfisg syl5eqel ) ADHCIZGJKLIMHGBNOZPZBQOCUHRUFUHSUGAUHBCGEUGTZU
      HTFUCUHCUAUBGUGABDEUIUDUE $.

    psgneldm.b $e |- B = ( Base ` G ) $.
    $( Property of being a finitary permutation.  (Contributed by Stefan
       O'Rear, 28-Aug-2015.) $)
    psgneldm $p |- ( P e. dom N <-> ( P e. B /\ dom ( P \ _I ) e. Fin ) ) $=
      ( vp cv cid cdif cdm cfn wcel wceq difeq1 dmeqd eleq1d crab wfn eqid fndm
      psgnfn ax-mp elrab2 ) IJZKLZMZNOZCKLZMZNOICAEMZUGCPZUIULNUNUHUKUGCKQRSEUJ
      IATZUAUMUOPABUODEIFHUOUBGUDUOEUCUEUF $.
  $}

  ${
    $d s t w x G $.  $d s t w x N $.  $d s t w x P $.  $d s t w x T $.
    $d s t w p D $.  $d p G $.  $d p T $.  $d s p V $.  $d s w W $.
    psgnval.g $e |- G = ( SymGrp ` D ) $.
    psgnval.t $e |- T = ran ( pmTrsp ` D ) $.
    psgnval.n $e |- N = ( pmSgn ` D ) $.
    $( The finitary permutations are the span of the transpositions.
       (Contributed by Stefan O'Rear, 28-Aug-2015.) $)
    psgneldm2 $p |- ( D e. V -> ( P e. dom N <->
          E. w e. Word T P = ( G gsum w ) ) ) $=
      ( vp wcel cdm cword cv cgsu co wceq cfv eqid cmpt crn wrex cid cfn psgnfn
      cdif cbs crab wfn fndm ax-mp csubmnd cmrc symggen cmnd wss symggrp grpmnd
      cgrp symgtrf gsumwspan sylancl eqtr3d syl5eq eleq2d ovex elrnmpti syl6bb
      syl ) BGLZCFMZLCADNZEAOZPQZUAZUBZLCVORAVMUCVKVLVQCVKVLKOUDUGMUELKEUHSZUIZ
      VQFVSUJVLVSRVRBVSEFKHVRTZVSTJUFVSFUKULVKDEUMSUNSZSZVSVQKVRBDEWAGIHVTWATZU
      OVKEUPLZDVRUQWBVQRVKEUTLWDBEGHUREUSVJVRBDEIHVTVAAVRDWAEVTWCVBVCVDVEVFAVMV
      OCVPVPTEVNPVGVHVI $.

    $( A sequence of transpositions describes a finitary permutation.
       (Contributed by Stefan O'Rear, 28-Aug-2015.) $)
    psgneldm2i $p |- ( ( D e. V /\ W e. Word T ) ->
        ( G gsum W ) e. dom N ) $=
      ( vw cword wcel cgsu co cv wceq wrex cdm eqid oveq2 eqeq2d rspcev biimpar
      mpan2 psgneldm2 sylan2 ) FBKZLZAELZCFMNZCJOZMNZPZJUGQZUJDRLZUHUJUJPZUNUJS
      UMUPJFUGUKFPULUJUJUKFCMTUAUBUDUIUOUNJAUJBCDEGHIUEUCUF $.

    $( A finitary permutation has exactly one parity.  (Contributed by Stefan
       O'Rear, 28-Aug-2015.) $)
    psgneu $p |- ( P e. dom N -> E! s E. w e. Word T
            ( P = ( G gsum w ) /\ s = ( -u 1 ^ ( # ` w ) ) ) ) $=
      ( vx vt wcel cv cgsu co wceq cexp wa wrex cdm c1 cneg chash cfv cword wex
      wi wal weu cvv cbs cid cdif eqid psgneldm simplbi csymg elbasfv psgneldm2
      wb cfn syl ibi simpr ovex eqeq1 anbi2d spcev sylancl reximdva mpd rexcom4
      ex reeanv ad2antrr simplrl simplrr simprll simprrl eqtr3d psgnuni simprlr
      sylib simprrr 3eqtr4d syl5bir alrimivv rexbidv oveq2 eqeq2d fveq2 anbi12d
      rexlimdvva oveq2d cbvrexv syl6bb eu4 sylanbrc ) CFUAMZCEANZOPZQZGNZUBUCZX
      AUDUEZRPZQZSZADUFZTZGUGZXKCEKNZOPZQZLNZXEXMUDUEZRPZQZSZKXJTZSZXDXPQZUHZLU
      IGUIXKGUJWTXIGUGZAXJTZXLWTXCAXJTZYFWTYGWTBUKMZWTYGVAWTCEULUEZMZYHWTYJCUMU
      NUAVBMYIBCEFHJYIUOZUPUQYIEURCBHYKUSVCZABCDEFUKHIJUTVCVDWTXCYEAXJWTXAXJMZS
      ZXCYEYNXCSXCXGXGQZYEYNXCVEXGUOXIXCYOSGXGXEXFRVFXHXHYOXCXDXGXGVGVHVIVJVNVK
      VLXIAGXJVMWDWTYDGLYBXIXTSZKXJTAXJTWTYCXIXTAKXJXJVOWTYPYCAKXJXJWTYMXMXJMZS
      ZSZYPYCYSYPSZXGXRXDXPYTBDEUKXAXMHIWTYHYRYPYLVPWTYMYQYPVQWTYMYQYPVRYTCXBXN
      YSXCXHXTVSYSXIXOXSVTWAWBYSXCXHXTWCYSXIXOXSWEWFVNWNWGWHXKYAGLYCXKXCXPXGQZS
      ZAXJTYAYCXIUUBAXJYCXHUUAXCXDXPXGVGVHWIUUBXTAKXJXAXMQZXCXOUUAXSUUCXBXNCXAX
      MEOWJWKUUCXGXRXPUUCXFXQXERXAXMUDWLWOWKWMWPWQWRWS $.

    $( Value of the permutation sign function.  (Contributed by Stefan O'Rear,
       28-Aug-2015.) $)
    psgnval $p |- ( P e. dom N -> ( N ` P ) = ( iota s E. w e. Word T
        ( P = ( G gsum w ) /\ s = ( -u 1 ^ ( # ` w ) ) ) ) ) $=
      ( vt vx cv co wceq cfv wa wrex cio cdm cgsu cneg chash cword eqeq1 anbi1d
      c1 cexp rexbidv iotabidv cbs eqid cid cdif cfn wcel crab wfn psgnfn ax-mp
      fndm psgnfval iotaex fvmpt ) KCKMZEAMZUANZOZGMUGUBVFUCPUHNOZQZADUDZRZGSCV
      GOZVIQZAVKRZGSFTZFVECOZVLVOGVQVJVNAVKVQVHVMVIVECVGUEUFUIUJKAEUKPZBDVPEFGL
      HVRULZFLMUMUNTUOUPLVRUQZURVPVTOVRBVTEFLHVSVTULJUSVTFVAUTIJVBVOGVCVD $.

    $( A finitary permutation has at least one representation for its parity.
       (Contributed by Stefan O'Rear, 28-Aug-2015.) $)
    psgnvali $p |- ( P e. dom N -> E. w e. Word T ( P = ( G gsum w ) /\
            ( N ` P ) = ( -u 1 ^ ( # ` w ) ) ) ) $=
      ( vs cdm wcel cfv cv cgsu co wceq c1 wa wrex cneg chash cword cab psgnval
      cexp cio weu psgneu iotacl eqeltrd fvex eqeq1 anbi2d rexbidv elab sylib
      syl ) CFKLZCFMZCEANZOPQZJNZRUAVAUBMUFPZQZSZADUCZTZJUDZLVBUTVDQZSZAVGTZUSU
      TVHJUGZVIABCDEFJGHIUEUSVHJUHVMVILABCDEFJGHIUIVHJUJURUKVHVLJUTCFULVCUTQZVF
      VKAVGVNVEVJVBVCUTVDUMUNUOUPUQ $.

    $( Any representation of a permutation is length matching the permutation
       sign.  (Contributed by Stefan O'Rear, 28-Aug-2015.) $)
    psgnvalii $p |- ( ( D e. V /\ W e. Word T ) ->
        ( N ` ( G gsum W ) ) = ( -u 1 ^ ( # ` W ) ) ) $=
      ( vw vs wcel wa cgsu co cfv cv wceq chash cexp cword c1 cneg wrex cio cdm
      psgneldm2i psgnval simpr eqidd oveq2 eqeq2d fveq2 oveq2d anbi12d syl12anc
      syl rspcev cvv ovexd weu psgneu wb eqeq1 anbi2d adantl iota2d mpbid eqtrd
      rexbidv ) AELZFBUAZLZMZCFNOZDPZVOCJQZNOZRZKQZUBUCZVQSPZTOZRZMZJVLUDZKUEZW
      AFSPZTOZVNVODUFLZVPWGRABCDEFGHIUGZJAVOBCDKGHIUHUQVNVSWIWCRZMZJVLUDZWGWIRV
      NVMVOVORZWIWIRZWNVKVMUIVNVOUJVNWIUJWMWOWPMJFVLVQFRZVSWOWLWPWQVRVOVOVQFCNU
      KULWQWCWIWIWQWBWHWATVQFSUMUNULUOURUPVNWFWNKWIUSVNWAWHTUTVNWJWFKVAWKJAVOBC
      DKGHIVBUQVTWIRZWFWNVCVNWRWEWMJVLWRWDWLVSVTWIWCVDVEVJVFVGVHVI $.

    $( All transpositions are odd.  (Contributed by Stefan O'Rear,
       29-Aug-2015.) $)
    psgnpmtr $p |- ( P e. T -> ( N ` P ) = -u 1 ) $=
      ( wcel cs1 cgsu co cfv c1 cneg cbs wceq syl cexp cvv eqid symgtrf gsumws1
      sseli fveq2d chash cword csymg elbasfv s1cl psgnvalii s1len oveq2i neg1cn
      syl2anc cc exp1 ax-mp eqtri syl6eq eqtr3d ) BCIZDBJZKLZEMZBEMNOZVBVDBEVBB
      DPMZIZVDBQCVGBVGACDGFVGUAZUBUDZVGBDVIUCRUEVBVEVFVCUFMZSLZVFVBATIZVCCUGIVE
      VLQVBVHVMVJVGDUHBAFVIUIRBCUJACDETVCFGHUKUOVLVFNSLZVFVKNVFSBULUMVFUPIVNVFQ
      UNVFUQURUSUTVA $.
  $}

  $( The permutation sign function for an empty set at an empty set is 1.
     (Contributed by AV, 27-Feb-2019.) $)
  psgn0fv0 $p |- ( ( pmSgn ` (/) ) ` (/) ) = 1 $=
    ( c0 cvv wcel cpmtr cfv crn cword cpsgn c1 wceq 0ex wrd0 wa cexp eqid ax-mp
    co cid a1i cc0 csymg cgsu cneg chash c0g gsum0 symgid eqtr3i syl5req fveq2d
    cres res0 psgnvalii hash0 oveq2i cc neg1cn exp0 eqtri 3eqtrd mp2an ) ABCZAA
    DEFZGCZAAHEZEZIJKVCLVBVDMZVFAUAEZAUBQZVEEIUCZAUDEZNQZIVGAVIVEVGVIVHUEEZAVHV
    MVMOUFVMAJVGRAUKZVMAVBVNVMJKAVHBVHOZUGPRULUHSUIUJAVCVHVEBAVOVCOVEOUMVLIJVGV
    LVJTNQZIVKTVJNUNUOVJUPCVPIJUQVJURPUSSUTVA $.

  ${
    $d D x $.  $d P x $.
    psgnfvalfi.g $e |- G = ( SymGrp ` D ) $.
    psgnfvalfi.b $e |- B = ( Base ` G ) $.
    $( The class of non-fixed points of a permutation of a finite set is
       finite.  (Contributed by AV, 13-Jan-2019.) $)
    sygbasnfpfi $p |- ( ( D e. Fin /\ P e. B ) -> dom ( P \ _I ) e. Fin ) $=
      ( vx cfn wcel wa cid cdif cdm cv cfv wne crab wfn wceq syl symgbasf rabfi
      wf ffn adantl fndifnfp adantr eqeltrd ) BHIZCAIZJZCKLMZGNZCOUMPZGBQZHUKCB
      RZULUOSUJUPUIUJBBCUCUPBACDEFUABBCUDTUEGBCUFTUIUOHIUJUNGBUBUGUH $.

    $d x s w $.  $d B p x $.  $d D p s w $.  $d T w $.
    psgnfvalfi.t $e |- T = ran ( pmTrsp ` D ) $.
    psgnfvalfi.n $e |- N = ( pmSgn ` D ) $.
    $( Function definition of the permutation sign function for permutations of
       finite sets.  (Contributed by AV, 13-Jan-2019.) $)
    psgnfvalfi $p |- ( D e. Fin -> N = ( x e. B |-> ( iota s E. w e. Word T
        ( x = ( G gsum w ) /\ s = ( -u 1 ^ ( # ` w ) ) ) ) ) ) $=
      ( vp cfn wcel cv cid co wceq cmpt cdif cdm crab cgsu c1 cneg chash cfv wa
      cexp cword wrex eqid psgnfval sygbasnfpfi ralrimiva rabid2 sylibr mpteq1d
      cio wral eqcomd syl5eq ) DNOZGAMPZQUAUBNOZMCUCZAPFBPZUDRSHPUEUFVHUGUHUJRS
      UIBEUKULHUTZTACVITABCDEVGFGHMIJVGUMKLUNVDAVGCVIVDCVGVDVFMCVACVGSVDVFMCCDV
      EFIJUOUPVFMCUQURVBUSVC $.

    $d G s w $.  $d N s w $.  $d P s w $.  $d T s $.
    $( Value of the permutation sign function for permutations of finite sets.
       (Contributed by AV, 13-Jan-2019.) $)
    psgnvalfi $p |- ( ( D e. Fin /\ P e. B )
                      -> ( N ` P ) = ( iota s E. w e. Word T
                        ( P = ( G gsum w ) /\ s = ( -u 1 ^ ( # ` w ) ) ) ) ) $=
      ( cfn wcel wa cdm cfv cv co wceq cgsu cneg chash cexp cword wrex cio cdif
      c1 cid simpr sygbasnfpfi psgneldm sylanbrc psgnval syl ) CMNZDBNZOZDGPNZD
      GQDFARZUASTHRUIUBVAUCQUDSTOAEUEUFHUGTUSURDUJUHPMNUTUQURUKBCDFIJULBCDFGILJ
      UMUNACDEFGHIKLUOUP $.
  $}

  ${
    $d N w $.  $d S w $.  $d Q w $.
    psgnran.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    psgnran.s $e |- S = ( pmSgn ` N ) $.
    $( The range of the permutation sign function for finite permutations.
       (Contributed by AV, 1-Jan-2019.) $)
    psgnran $p |- ( ( N e. Fin /\ Q e. P ) -> ( S ` Q ) e. { 1 , -u 1 } ) $=
      ( vw cfn wcel cfv c1 cneg cpr cdm cid wa eqid co wceq syl cdif ex pm4.71d
      csymg sygbasnfpfi psgneldm syl6bbr cv cgsu chash cpmtr crn cword psgnvali
      cexp wrex wi cz lencl nn0zd m1expcl2 prcom syl6eleq adantl eleq1a adantld
      rexlimdva syl5 sylbid imp ) DHIZBAIZBCJZKKLZMZIZVKVLBCNIZVPVKVLVLBOUANHIZ
      PVQVKVLVRVKVLVRADBDUDJZVSQZEUEUBUCADBVSCVTFEUFUGVQBVSGUHZUIRSZVMVNWAUJJZU
      ORZSZPZGDUKJULZUMZUPVKVPGDBWGVSCVTWGQFUNVKWFVPGWHVKWAWHIZPZWEVPWBWJWDVOIZ
      WEVPUQWIWKVKWIWCURIZWKWIWCWGWAUSUTWLWDVNKMVOWCVAVNKVBVCTVDWDVOVMVETVFVGVH
      VIVJ $.
  $}

  ${
    gsmtrcl.s $e |- S = ( SymGrp ` N ) $.
    gsmtrcl.b $e |- B = ( Base ` S ) $.
    gsmtrcl.t $e |- T = ran ( pmTrsp ` N ) $.
    $( The group sum of transpositions of a finite set is a permutation, see
       also ~ psgneldm2i .  (Contributed by AV, 19-Jan-2019.) $)
    gsmtrcl $p |- ( ( N e. Fin /\ W e. Word T ) -> ( S gsum W ) e. B ) $=
      ( cgsu co cpsgn cfv cdm wcel cfn cword wa eqid psgneldm2i cid wi psgneldm
      cdif ax-1 adantr sylbi mpcom ) BEIJZDKLZMNZDONECPNQZUHANZDCBUIOEFHUIRZSUJ
      ULUHTUCMONZQUKULUAZADUHBUIFUMGUBULUOUNULUKUDUEUFUG $.
  $}

  ${
    $d G w $.  $d Q w $.  $d T w $.
    psgnfitr.g $e |- G = ( SymGrp ` N ) $.
    psgnfitr.p $e |- B = ( Base ` G ) $.
    psgnfitr.t $e |- T = ran ( pmTrsp ` N ) $.
    $( A permutation of a finite set is generated by transpositions.
       (Contributed by AV, 13-Jan-2019.) $)
    psgnfitr $p |- ( N e. Fin
                     -> ( Q e. B <-> E. w e. Word T Q = ( G gsum w ) ) ) $=
      ( cfn wcel cword cv cgsu co cmpt crn wceq cfv eqid wrex csubmnd cmrc cmnd
      symggen2 cbs wss cgrp symggrp grpmnd syl symgtrf gsumwspan sylancl eqtr3d
      eleq2d ovex elrnmpti syl6bb ) FJKZCBKCADLZEAMZNOZPZQZKCVCRAVAUAUTBVECUTDE
      UBSUCSZSZBVEBFDEVFIGHVFTZUEUTEUDKZDEUFSZUGVGVERUTEUHKVIFEJGUIEUJUKVJFDEIG
      VJTZULAVJDVFEVKVHUMUNUOUPAVAVCCVDVDTEVBNUQURUS $.

    $d G s $.  $d N s w $.  $d Q s $.  $d T s $.
    $( A permutation of a finite set has exactly one parity.  (Contributed by
       AV, 13-Jan-2019.) $)
    psgnfieu $p |- ( ( N e. Fin /\ Q e. B ) -> E! s E. w e. Word T
            ( Q = ( G gsum w ) /\ s = ( -u 1 ^ ( # ` w ) ) ) ) $=
      ( cfn wcel wa cpsgn cfv cdm cv cgsu co wceq c1 cneg chash cexp cword wrex
      weu cid cdif simpr sygbasnfpfi eqid psgneldm sylanbrc psgneu syl ) FKLZCB
      LZMZCFNOZPLZCEAQZRSTGQUAUBVBUCOUDSTMADUEUFGUGUSURCUHUIPKLVAUQURUJBFCEHIUK
      BFCEUTHUTULZIUMUNAFCDEUTGHJVCUOUP $.
  $}

  ${
    $d A p y z $.
    $( The value of the transposition generator function for a singleton is
       empty, i.e. there is no transposition for a singleton.  This also holds
       for ` A e/ _V ` , i.e. for the empty set ` { A } = (/) ` resulting in
       ` ( pmTrsp `` (/) ) = (/) ` .  (Contributed by AV, 6-Aug-2019.) $)
    pmtrsn $p |- ( pmTrsp ` { A } ) = (/) $=
      ( vp vy vz csn cv c2o cen wbr crab cmpt c0 cvv wcel wceq eqid ax-mp mpbir
      wn wral cpmtr cfv cpw wel cdif cuni cif snex pmtrfval cdm cpr 2on0 ensymb
      dmmpt en0 bitri nemtbir snnen2o breq1 notbid ralpr mpbir2an raleqi rabeq0
      0ex pwsn rabeq rab0 3eqtri wrel wb wfun funmpt funrel reldm0 eqtri ) AEZU
      AUBZBCFZGHIZCVQUCZJZDVQDBUDBFDFZEUEUFWCUGKZKZLVQMNVRWEOAUHZCDVQVRMBVRPUIQ
      WELOZWEUJZLOZWHWDMNZBWBJZWJBLJZLBWBWDWEWEPUNWBLOZWKWLOWMVTSZCWATZWOWNCLVQ
      UKZTZWQLGHIZSZVQGHIZSZWRGLULWRGLHIGLOLGUMGUOUPUQAURWNWSXACLVQVEWFVSLOVTWR
      VSLGHUSUTVSVQOVTWTVSVQGHUSUTVAVBWNCWAWPAVFVCRVTCWAVDRWJBWBLVGQWJBVHVIWEVJ
      ZWGWIVKWEVLXBBWBWDVMWEVNQWEVOQRVP $.
  $}

  ${
    psgnsn.0 $e |- D = { A } $.
    psgnsn.g $e |- G = ( SymGrp ` D ) $.
    psgnsn.b $e |- B = ( Base ` G ) $.
    psgnsn.n $e |- N = ( pmSgn ` D ) $.
    $( The permutation sign function for a singleton.  (Contributed by AV,
       6-Aug-2019.) $)
    psgnsn $p |- ( ( A e. V /\ X e. B ) -> ( N ` X ) = 1 ) $=
      ( wcel cfv c0 co c1 cexp csn wceq cid cgsu cneg chash eqid gsum0 symg1bas
      wa c0g cop eleq2d biimpa elsni cres reseq2i snex snid eqeltri symgid mp1i
      wi cxp restidsing xpsng anidms syl5eq 3eqtr3a adantr eqcoms sylan9eqr syl
      id ex mpcom syl5req fveq2d cvv cword pm3.2i cpmtr crn fveq2i pmtrsn eqtri
      wrd0 rneqi rn0 eqtr2i psgnvalii cc0 hash0 oveq2i cc neg1cn exp0 ax-mp a1i
      3eqtrd ) AFLZGBLZUGZGEMDNUAOZEMZPUBZNUCMZQOZPWTGXAEWTXADUHMZGDXFXFUDUEGAA
      UIRZRZLZWTXFGSZWRWSXIWRBXHGCBDAFIJHUFUJUKXIGXGSZWTXJUTGXGULXKWTXJWTXKXFXG
      GWRXFXGSWSWRTCUMZTARZUMZXFXGCXMTHUNCXMRZLXLXFSWRCXMXOHXMAUOZUPUQCDXOIURUS
      WRXNXMXMVAZXGAVBWRXQXGSAAFFVCVDVEVFVGXGGSZXGGXRVKVHVIVLVJVMVNVOCVPLZNNVQL
      ZUGXBXESWTXSXTCXMVPHXPUQNWDVRCNDEVPNICVSMZVTNVTNYANYAXMVSMNCXMVSHWAAWBWCW
      EWFWGKWHUSXEPSWTXEXCWIQOZPXDWIXCQWJWKXCWLLYBPSWMXCWNWOWCWPWQ $.
  $}

  ${
    $d D s w $.  $d G s w $.  $d N s w $.  $d T s w $.  $d X s w $.
    psgnprfval.0 $e |- D = { 1 , 2 } $.
    psgnprfval.g $e |- G = ( SymGrp ` D ) $.
    psgnprfval.b $e |- B = ( Base ` G ) $.
    psgnprfval.t $e |- T = ran ( pmTrsp ` D ) $.
    psgnprfval.n $e |- N = ( pmSgn ` D ) $.
    $( The permutation sign function for a pair.  (Contributed by AV,
       10-Dec-2018.) $)
    psgnprfval $p |- ( X e. B -> ( N ` X ) = ( iota s E. w e. Word T
                        ( X = ( G gsum w ) /\ s = ( -u 1 ^ ( # ` w ) ) ) ) ) $=
      ( wcel wceq c1 cfn cop c2 cpr cfv cv cgsu co cneg chash cexp wa cword cio
      wrex id cdm cid cdif elpri prfi eleq1 mpbiri jaoi diffi syl dmfi 3syl cvv
      wo cn 1ex 2nn symg2bas mp2an eleq2s psgneldm sylanbrc psgnval ) GBNZVPGFU
      AGEAUBZUCUDOHUBPUEVQUFUAUGUDOUHADUIUKHUJOZVPULZVPGFUMNZVRVPVPGUNUOZUMQNZV
      TVSWBGPPRZSSRZTZPSRZSPRZTZTZBGWINGWEOZGWHOZVFZWAQNZWBGWEWHUPWLGQNZWMWJWNW
      KWJWNWEQNWCWDUQGWEQURUSWKWNWHQNWFWGUQGWHQURUSUTGUNVAVBWAVCVDPVENSVGNBWIOV
      HVICBEPSVEVGJKIVJVKVLBCGEFJMKVMVNACGDEFHJLMVOVBVB $.

    $( The permutation sign of the identity for a pair.  (Contributed by AV,
       11-Dec-2018.) $)
    psgnprfval1 $p |- ( N ` { <. 1 , 1 >. , <. 2 , 2 >. } ) = 1 $=
      ( c1 c2 cfv c0 co cexp cid cvv wcel wceq cop cpr cgsu cneg chash cres c0g
      prex eqeltri symgid ax-mp gsum0 reseq2 cn 1ex residpr mp2an syl6eq eqtr2i
      2nn fveq2i cword wrd0 psgnvalii cc0 hash0 oveq2i neg1cn exp0 eqtri 3eqtri
      cc ) KKUALLUAUBZEMDNUCOZEMZKUDZNUEMZPOZKVMVNEVNQBUFZVMDVSBRSZVSDUGMTBKLUB
      ZRFKLUHUIZBDRGUJUKULBWATZVSVMTFWCVSQWAUFZVMBWAQUMKRSLUNSWDVMTUOUTKLRUNUPU
      QURUKUSVAVTNCVBSVOVRTWBCVCBCDERNGIJVDUQVRVPVEPOZKVQVEVPPVFVGVPVLSWEKTVHVP
      VIUKVJVK $.

    $( The permutation sign of the transposition for a pair.  (Contributed by
       AV, 10-Dec-2018.) $)
    psgnprfval2 $p |- ( N ` { <. 1 , 2 >. , <. 2 , 1 >. } ) = -u 1 $=
      ( c1 c2 cop cpr wcel cfv cneg cpmtr crn eleqtrri wceq csn prex snid rneqi
      fveq2i pmtrprfvalrn eqtri psgnpmtr ax-mp ) KLMZLKMZNZCOUMEPKQUAUMBRPZSZCU
      MUMUBZUOUMUKULUCUDUOKLNZRPZSUPUNURBUQRFUFUEUGUHTITBUMCDEGIJUIUJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  p-Groups and Sylow groups; Sylow's theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c od $.
  $c gEx $.
  $c pGrp $.
  $c pSyl $.

  $( Extend class notation to include the order function on the elements of a
     group. $)
  cod $a class od $.

  $( Extend class notation to include the order function on the elements of a
     group. $)
  cgex $a class gEx $.

  $( Extend class notation to include the class of all p-groups. $)
  cpgp $a class pGrp $.

  $( Extend class notation to include the class of all Sylow p-subgroups of a
     group. $)
  cslw $a class pSyl $.

  ${
    $d g h i k n p x $.
    $( Define the order of an element in a group.  (Contributed by Mario
       Carneiro, 13-Jul-2014.)  (Revised by Stefan O'Rear, 4-Sep-2015.)
       (Revised by AV, 5-Oct-2020.) $)
    df-od $a |- od = ( g e. _V |-> ( x e. ( Base ` g ) |->
                     [_ { n e. NN | ( n ( .g ` g ) x ) = ( 0g ` g ) } / i ]_
                        if ( i = (/) , 0 , inf ( i , RR , < ) ) ) ) $.

    $( Define the exponent of a group.  (Contributed by Mario Carneiro,
       13-Jul-2014.)  (Revised by Stefan O'Rear, 4-Sep-2015.)  (Revised by AV,
       26-Sep-2020.) $)
    df-gex $a |- gEx = ( g e. _V |-> [_ { n e. NN |
            A. x e. ( Base ` g ) ( n ( .g ` g ) x ) = ( 0g ` g ) } / i ]_
              if ( i = (/) , 0 , inf ( i , RR , < ) ) ) $.

    $( Define the set of p-groups, which are groups such that every element has
       a power of ` p ` as its order.  (Contributed by Mario Carneiro,
       15-Jan-2015.)  (Revised by AV, 5-Oct-2020.) $)
    df-pgp $a |- pGrp = { <. p , g >. | ( ( p e. Prime /\ g e. Grp ) /\
      A. x e. ( Base ` g ) E. n e. NN0 ( ( od ` g ) ` x ) = ( p ^ n ) ) } $.

    $( Define the set of Sylow p-subgroups of a group ` g ` .  A Sylow
       p-subgroup is a p-group that is not a subgroup of any other p-groups in
       ` g ` .  (Contributed by Mario Carneiro, 16-Jan-2015.) $)
    df-slw $a |- pSyl = ( p e. Prime , g e. Grp |-> { h e. ( SubGrp ` g ) |
   A. k e. ( SubGrp ` g ) ( ( h C_ k /\ p pGrp ( g |`s k ) ) <-> h = k ) } ) $.
  $}

  ${
    $d g i y $.  $d x y A $.  $d g x y G $.  $d g x y .x. $.  $d g x y .0. $.
    $d i x I $.  $d g x X $.
    odval.1 $e |- X = ( Base ` G ) $.
    odval.2 $e |- .x. = ( .g ` G ) $.
    odval.3 $e |- .0. = ( 0g ` G ) $.
    odval.4 $e |- O = ( od ` G ) $.
    $( Value of the order function.  (Contributed by Mario Carneiro,
       13-Jul-2014.)  (Revised by AV, 5-Oct-2020.) $)
    odfval $p |- O = ( x e. X |-> [_ { y e. NN | ( y .x. x ) = .0. } / i ]_
                       if ( i = (/) , 0 , inf ( i , RR , < ) ) ) $=
      ( vg cod cfv cv wceq cn c0 cbs co crab cc0 clt cinf cif csb cmpt cvv wcel
      cr cmg fveq2 syl6eqr oveqd eqeq12d rabbidv csbeq1d mpteq12dv fvex eqeltri
      c0g df-od mptex fvmpt wn fvprc syl5eq mpteq1d syl6eq eqtr4d pm2.61i eqtri
      mpt0 ) FENOZAGDBPZAPZCUAZHQZBRUBZDPZSQUCWAUKUDUEUFZUGZUHZLEUIUJZVOWDQMEAM
      PZTOZDVPVQWFULOZUAZWFVBOZQZBRUBZWBUGZUHWDUINWFEQZAWGWMGWCWNWGETOZGWFETUMI
      UNWNDWLVTWBWNWKVSBRWNWIVRWJHWNWHCVPVQWNWHEULOCWFEULUMJUNUOWNWJEVBOHWFEVBU
      MKUNUPUQURUSAMDBVCAGWCGWOUIIETUTVAVDVEWEVFZVOSWDENVGWPWDASWCUHSWPAGSWCWPG
      WOSIETVGVHVIAWCVNVJVKVLVM $.

    odval.i $e |- I = { y e. NN | ( y .x. A ) = .0. } $.
    $( Second substitution for the group order definition.  (Contributed by
       Mario Carneiro, 13-Jul-2014.)  (Revised by Stefan O'Rear, 5-Sep-2015.)
       (Revised by AV, 5-Oct-2020.) $)
    odval $p |- ( A e. X
                  -> ( O ` A ) = if ( I = (/) , 0 , inf ( I , RR , < ) ) ) $=
      ( vx vi wceq cn cc0 cr clt cv co crab cinf cif csb eqeq1d rabbidv syl6eqr
      c0 oveq2 csbeq1d nnex rabex2 eqeq1 infeq1 ifbieq2d csbie syl6eq c0ex ltso
      odfval infex ifex fvmpt ) NBOAUAZNUAZCUBZHPZAQUCZOUAZUJPZRVKSTUDZUEZUFZEU
      JPZRESTUDZUEZGFVGBPZVOOEVNUFVRVSOVJEVNVSVJVFBCUBZHPZAQUCEVSVIWAAQVSVHVTHV
      GBVFCUKUGUHMUIULOEVNVRWAAQEMUMUNVKEPVLVPVMVQRVKEUJUOSVKETUPUQURUSNACODFGH
      IJKLVBVPRVQUTSETVAVCVDVE $.

    $( The group element order is either zero or a nonzero multiplier that
       annihilates the element.  (Contributed by Mario Carneiro, 14-Jan-2015.)
       (Revised by Stefan O'Rear, 5-Sep-2015.)  (Revised by AV, 5-Oct-2020.) $)
    odlem1 $p |- ( A e. X -> ( ( ( O ` A ) = 0 /\ I = (/) ) \/
            ( O ` A ) e. I ) ) $=
      ( wcel cfv c0 wceq cc0 wi cn cr clt cinf cif wa wo odval eqeq2 imbi1d orc
      expcom adantl wn c1 cuz wss cv co crab ssrab2 nnuz eqcomi 3sstr4i biimpri
      wne df-ne infssuzcl sylancr eleq1a syl olc syl6 ifbothda mpd ) BGNZBFOZEP
      QZREUAUBUCZUDZQZVPRQZVQUEZVPENZUFZABCDEFGHIJKLMUGVQWAWDSZVPVRQZWDSVTWDSVO
      RVRRVSQWAVTWDRVSVPUHUIVRVSQWFVTWDVRVSVPUHUIVQWEVOWAVQWDWBWCUJUKULVOVQUMZU
      EZWFWCWDWHVRENZWFWCSWHEUNUOOZUPEPVEZWIAUQBCURHQZATUSTEWJWLATUTMTWJVAVBVCW
      GWKVOWKWGEPVFVDULEUNVGVHVREVPVIVJWCWBVKVLVMVN $.
  $}

  ${
    $d w y z $.  $d y .0. $.  $d x y A $.  $d y N $.  $d x y O $.  $d y .x. $.
    $d x y z G $.  $d x y X $.
    odcl.1 $e |- X = ( Base ` G ) $.
    odcl.2 $e |- O = ( od ` G ) $.
    $( The order of a group element is always a nonnegative integer.
       (Contributed by Mario Carneiro, 14-Jan-2015.)  (Revised by Stefan
       O'Rear, 5-Sep-2015.) $)
    odcl $p |- ( A e. X -> ( O ` A ) e. NN0 ) $=
      ( vy wcel cfv cn cc0 wceq wo cn0 cv cmg co c0g crab eqid c0 odlem1 elrabi
      wa simpl orim12i syl orcomd elnn0 sylibr ) ADHZACIZJHZULKLZMULNHUKUNUMUKU
      NGOABPIZQBRIZLZGJSZUALZUDZULURHZMUNUMMGAUOBURCDUPEUOTUPTFURTUBUTUNVAUMUNU
      SUEUQGULJUCUFUGUHULUIUJ $.

    $( Functionality of the group element order.  (Contributed by Stefan
       O'Rear, 5-Sep-2015.)  (Proof shortened by AV, 5-Oct-2020.) $)
    odf $p |- O : X --> NN0 $=
      ( vx vy vw vz cn0 wf wfn cv cfv wcel wceq cc0 cr clt eqid wral cmg co c0g
      cn crab c0 cinf cif csb c0ex ltso infex ifex csbex odfval odcl rgen ffnfv
      fnmpti mpbir2an ) CJBKBCLFMZBNJOZFCUAGCHIMGMAUBNZUCAUDNZPIUEUFZHMZUGPZQVG
      RSUHZUIZUJBHVFVJVHQVIUKRVGSULUMUNUOGIVDHABCVEDVDTVETEUPUTVCFCVBABCDEUQURF
      CJBUSVA $.

    odid.3 $e |- .x. = ( .g ` G ) $.
    odid.4 $e |- .0. = ( 0g ` G ) $.
    $( Any element to the power of its order is the identity.  (Contributed by
       Mario Carneiro, 14-Jan-2015.)  (Revised by Stefan O'Rear,
       5-Sep-2015.) $)
    odid $p |- ( A e. X -> ( ( O ` A ) .x. A ) = .0. ) $=
      ( vy wcel cfv cc0 wceq cv co cn crab oveq1 c0 wa sylan9eqr adantrr eqeq1d
      mulg0 elrab simprbi adantl eqid odlem1 mpjaodan ) AELZADMZNOZKPZABQZFOZKR
      SZUAOZUBUNABQZFOZUNUSLZUMUOVBUTUOUMVANABQFUNNABTEBCAFGJIUFUCUDVCVBUMVCUNR
      LVBURVBKUNRUPUNOUQVAFUPUNABTUEUGUHUIKABCUSDEFGIJHUSUJUKUL $.

    $( Any positive annihilator of a group element is an upper bound on the
       (positive) order of the element.  (Contributed by Mario Carneiro,
       14-Jan-2015.)  (Revised by Stefan O'Rear, 5-Sep-2015.)  (Proof shortened
       by AV, 5-Oct-2020.) $)
    odlem2 $p |- ( ( A e. X /\ N e. NN /\ ( N .x. A ) = .0. ) ->
        ( O ` A ) e. ( 1 ... N ) ) $=
      ( vy wcel cn co wceq cfv c1 wa adantl cfz cv crab oveq1 eqeq1d elrab cinf
      cr clt c0 cc0 cif eqid odval n0i iffalsed sylan9eq cle wbr ssrab2 cuz wss
      wne nnuz sseqtri ne0i infssuzcl sylancr sseldi infssuzle mpan elrabi nnzd
      wb cz fznn syl mpbir2and eqeltrd sylan2br 3impb ) AFMZDNMZDABOZGPZAEQZRDU
      AOZMZWCWESWBDLUBZABOZGPZLNUCZMZWHWKWELDNWIDPWJWDGWIDABUDUEUFWBWMSZWFWLUHU
      IUGZWGWBWMWFWLUJPZUKWOULWOLABCWLEFGHJKIWLUMUNWMWPUKWOWLDUOUPUQWNWOWGMZWON
      MZWODURUSZWNWLNWOWKLNUTZWNWLRVAQZVBZWLUJVCZWOWLMWLNXAWTVDVEZWMXCWBWLDVFTW
      LRVGVHVIWMWSWBXBWMWSXDDWLRVJVKTWMWQWRWSSVNZWBWMDVOMXEWMDWKLDNVLVMWODVPVQT
      VRVSVTWA $.

    $( Reduce the argument of a group multiple by modding out the order of the
       element.  (Contributed by Mario Carneiro, 23-Sep-2015.) $)
    odmodnn0 $p |- ( ( ( G e. Mnd /\ A e. X /\ N e. NN0 ) /\
      ( O ` A ) e. NN ) -> ( ( N mod ( O ` A ) ) .x. A ) = ( N .x. A ) ) $=
      ( wcel cn0 cfv co caddc wceq adantl syl2anc eqtrd cmnd w3a cn wa cdiv cfl
      cmul cmo cplusg simpl1 nnnn0 cr cc0 cle wbr simpl3 nn0red nnrp rerpdivcld
      crp nn0ge0d nnre nngt0 divge0 syl22anc flge0nn0 nn0mulcld cz nn0zd zmodcl
      sylancom simpl2 eqid mulgnn0dir syl13anc nn0cnd mulcomd oveq1d mulgnn0ass
      clt odid syl oveq2d mulgnn0z cmin modval pncan3d mulgnn0cl syl3anc mndlid
      recnd 3eqtr3rd ) CUALZAFLZDMLZUBZAENZUCLZUDZWQDWQUEOZUFNZUGOZDWQUHOZPOZAB
      OZGXCABOZCUINZOZDABOXFWSXEXBABOZXFXGOZXHWSWMXBMLXCMLZWNXEXJQWMWNWOWRUJZWS
      WQXAWRWQMLZWPWQUKRZWSWTULLUMWTUNUOZXAMLZWSDWQWSDWMWNWOWRUPZUQZWRWQUTLZWPW
      QURRZUSWSDULLZUMDUNUOWQULLZUMWQVTUOZXOXRWSDXQVAWRYBWPWQVBRZWRYCWPWQVCRDWQ
      VDVEWTVFSZVGZWPWRDVHLXKWSDXQVIDWQVJVKZWMWNWOWRVLZFXGBCXBXCAHJXGVMZVNVOWSX
      IGXFXGWSXIXAWQUGOZABOZGWSXBYJABWSWQXAWSWQYDWKWSXAYEVPVQVRWSYKXAWQABOZBOZG
      WSWMXPXMWNYKYMQXLYEXNYHFBCXAWQAHJVSVOWSYMXAGBOZGWSYLGXABWSWNYLGQYHABCEFGH
      IJKWAWBWCWSWMXPYNGQXLYEFBCXAGHJKWDSTTTVRTWSXDDABWSXDXBDXBWEOZPODWSXCYOXBP
      WSYAXSXCYOQXRXTDWQWFSWCWSXBDWSXBYFVPWSDXQVPWGTVRWSWMXFFLZXHXFQXLWSWMXKWNY
      PXLYGYHFBCXCAHJWHWIFXGCXFGHYIKWJSWL $.

    ${
      mndodconglem.1 $e |- ( ph -> G e. Mnd ) $.
      mndodconglem.2 $e |- ( ph -> A e. X ) $.
      mndodconglem.3 $e |- ( ph -> ( O ` A ) e. NN ) $.
      mndodconglem.4 $e |- ( ph -> M e. NN0 ) $.
      mndodconglem.5 $e |- ( ph -> N e. NN0 ) $.
      mndodconglem.6 $e |- ( ph -> M < ( O ` A ) ) $.
      mndodconglem.7 $e |- ( ph -> N < ( O ` A ) ) $.
      mndodconglem.8 $e |- ( ph -> ( M .x. A ) = ( N .x. A ) ) $.
      $( Lemma for ~ mndodcong .  (Contributed by Mario Carneiro,
         23-Sep-2015.) $)
      mndodconglem $p |- ( ( ph /\ M <_ N ) -> M = N ) $=
        ( cle wbr wceq cc0 cmin co cfv caddc c1 cfz wcel nnred recnd addsubassd
        cn nn0red clt nnzd nn0zd zaddcld cr cn0 nn0addge1 syl2anc ltletrd cz wb
        zred znnsub mpbid eqeltrrd addsub12d oveq1d cplusg cmnd eqid mulgnn0dir
        nnnn0d syl13anc 3eqtr4d pncan3d odid syl odlem2 syl3anc elfzle2 zsubcld
        eqtrd addge01d mpbird subge0d wa letri3d biimprd mpan2d imp ) AEFUBUCZE
        FUDZAWRFEUBUCZWSAUEEFUFUGZUBUCZWTAXBBGUHZXCXAUIUGZUBUCZAXCUJXDUKUGULZXE
        ABHULZXDUPULXDBCUGZIUDXFOAXCEUIUGZFUFUGZXDUPAXCEFAXCAXCPUMZUNZAEAEQUQZU
        NZAFAFRUQZUNZUOAFXIURUCZXJUPULZAFXCXIXOXKAXIAXCEAXCPUSZAEQUTZVAZVITAXCV
        BULEVCULZXCXIUBUCXKQXCEVDVEVFAFVGULZXIVGULXQXRVHAFRUTZYAFXIVJVEVKVLAXHE
        XCFUFUGZUIUGZBCUGZIAXDYFBCAXCEFXLXNXPVMVNAYGFYEUIUGZBCUGZIAEBCUGZYEBCUG
        ZDVOUHZUGZFBCUGZYKYLUGZYGYIAYJYNYKYLUAVNADVPULZYBYEVCULZXGYGYMUDNQAYEAF
        XCURUCZYEUPULZTAYCXCVGULYRYSVHYDXSFXCVJVEVKVSZOHYLCDEYEBJLYLVQZVRVTAYPF
        VCULYQXGYIYOUDNRYTOHYLCDFYEBJLUUAVRVTWAAYIXCBCUGZIAYHXCBCAFXCXPXLWBVNAX
        GUUBIUDOBCDGHIJKLMWCWDWIWIWIBCDXDGHIJKLMWEWFXCUJXDWGWDAXCXAXKAXAAEFXTYD
        WHVIWJWKAEFXMXOWLVKAWSWRWTWMAEFXMXOWNWOWPWQ $.
    $}

    $( If two multipliers are congruent relative to the base point's order, the
       corresponding multiples are the same.  (Contributed by Mario Carneiro,
       23-Sep-2015.) $)
    mndodcong $p |- ( ( ( G e. Mnd /\ A e. X ) /\
      ( M e. NN0 /\ N e. NN0 ) /\ ( O ` A ) e. NN ) ->
        ( ( O ` A ) || ( M - N ) <-> ( M .x. A ) = ( N .x. A ) ) ) $=
      ( wcel wa cn0 co wceq wbr adantr nn0red cmnd cfv w3a cmo cmin cdvds oveq1
      cn simp2l nn0zd simp3 zmodcld simp2r simp1l simp1r clt cr crp nnrpd modlt
      syl2anc simpr mndodconglem cle eqcomd lecasei ex impbid2 moddvds odmodnn0
      cz wb syl3anc syl31anc eqeq12d 3bitr3d ) CUAMZAGMZNZDOMZEOMZNZAFUBZUHMZUC
      ZDWCUDPZEWCUDPZQZWFABPZWGABPZQZWCDEUEPUFRZDABPZEABPZQWEWHWKWFWGABUGWEWKWH
      WEWKNZWHWFWGWOWFWEWFOMWKWEDWCWEDVSVTWAWDUIZUJZVSWBWDUKZULSZTWOWGWEWGOMWKW
      EEWCWEEVSVTWAWDUMZUJZWRULSZTWOABCWFWGFGHIJKLWEVQWKVQVRWBWDUNZSZWEVRWKVQVR
      WBWDUOZSZWEWDWKWRSZWSXBWEWFWCUPRZWKWEDUQMWCURMZXHWEDWPTWEWCWRUSZDWCUTVASZ
      WEWGWCUPRZWKWEEUQMXIXLWEEWTTXJEWCUTVASZWEWKVBZVCWOWGWFVDRNWGWFWOABCWGWFFG
      HIJKLXDXFXGXBWSXMXKWOWIWJXNVEVCVEVFVGVHWEWDDVKMEVKMWHWLVLWRWQXADEWCVIVMWE
      WIWMWJWNWEVQVRVTWDWIWMQXCXEWPWRABCDFGHIJKLVJVNWEVQVRWAWDWJWNQXCXEWTWRABCE
      FGHIJKLVJVNVOVP $.

    $( If two multipliers are congruent relative to the base point's order, the
       corresponding multiples are the same.  For monoids, the reverse
       implication is false for elements with infinite order.  For example, the
       powers of ` 2 mod 1 0 ` are 1,2,4,8,6,2,4,8,6,... so that the identity 1
       never repeats, which is infinite order by our definition, yet other
       numbers like 6 appear many times in the sequence.  (Contributed by Mario
       Carneiro, 23-Sep-2015.) $)
    mndodcongi $p |- ( ( G e. Mnd /\ A e. X /\ ( M e. NN0 /\ N e. NN0 ) ) ->
        ( ( O ` A ) || ( M - N ) -> ( M .x. A ) = ( N .x. A ) ) ) $=
      ( wcel cn0 co cdvds wceq wi cc0 cz cmnd w3a cfv cmin wbr mndodcong biimpd
      wa cn 3expia 3impa wb zsubcl syl2an 3ad2ant3 0dvds syl nn0cn subeq0 oveq1
      nn0z cc syl6bi sylbid breq1 imbi1d syl5ibrcom 3ad2ant2 elnn0 sylib mpjaod
      wo odcl ) CUAMZAGMZDNMZENMZUHZUBZAFUCZUIMZVTDEUDOZPUEZDABOEABOQZRZVTSQZVN
      VOVRWAWERVNVOUHZVRWAWEWGVRWAUBWCWDABCDEFGHIJKLUFUGUJUKVSWEWFSWBPUEZWDRVSW
      HWBSQZWDVSWBTMZWHWIULVRVNWJVOVPDTMETMWJVQDVAEVADEUMUNUOWBUPUQVSWIDEQZWDVR
      VNWIWKULZVOVPDVBMEVBMWLVQDUREURDEUSUNUODEABUTVCVDWFWCWHWDVTSWBPVEVFVGVSVT
      NMZWAWFVLVOVNWMVRACFGIJVMVHVTVIVJVK $.

    $( The only multiples of ` A ` that are equal to the identity are the
       multiples of the order of ` A ` .  (Contributed by Mario Carneiro,
       23-Sep-2015.) $)
    oddvdsnn0 $p |- ( ( G e. Mnd /\ A e. X /\ N e. NN0 ) ->
      ( ( O ` A ) || N <-> ( N .x. A ) = .0. ) ) $=
      ( wcel cn0 cdvds wbr co wceq wb cc0 wa cmnd w3a cn cmin wi 0nn0 mndodcong
      cfv 3expia mpanr2 3impa cc nn0cn 3ad2ant3 subid1d breq2d 3ad2ant2 bibi12d
      mulg0 eqeq2d sylibd simpr breq1d cz simpl3 nn0z 0dvds adantr oveq1 eqeq1d
      syl5ibrcom wn wne c1 cfz odlem2 3com23 elfznn nnne0 3ad2antl2 necon2bd wo
      3syl elnn0 sylib ord syld impancom impbid 3bitrd ex odcl mpjaod ) CUALZAF
      LZDMLZUBZAEUHZUCLZWRDNOZDABPZGQZRZWRSQZWQWSWRDSUDPZNOZXASABPZQZRZXCWNWOWP
      WSXIUEZWNWOTZWPSMLZXJUFXKWPXLTWSXIABCDSEFGHIJKUGUIUJUKWQXFWTXHXBWQXEDWRNW
      QDWPWNDULLWODUMUNUOUPWQXGGXAWOWNXGGQZWPFBCAGHKJUSUQZUTURVAWQXDXCWQXDTZWTS
      DNOZDSQZXBXOWRSDNWQXDVBVCXOWPDVDLXPXQRWNWOWPXDVEDVFDVGWCXOXQXBXOXBXQXMWQX
      MXDXNVHXQXAXGGDSABVIVJVKWQXBXDXQWQXBTZXDDUCLZVLXQXRXSWRSWOWNXBXSWRSVMZUEW
      PWOXBXSXTWOXBXSUBWRVNDVOPLZWSXTWOXSXBYAABCDEFGHIJKVPVQWRDVRWRVSWCUIVTWAXR
      XSXQXRWPXSXQWBWNWOWPXBVEDWDWEWFWGWHWIWJWKWQWRMLZWSXDWBWOWNYBWPACEFHIWLUQW
      RWDWEWM $.

    $( If a nonzero multiple of an element is zero, the element has positive
       order.  (Contributed by Stefan O'Rear, 5-Sep-2015.)  (Revised by Mario
       Carneiro, 22-Sep-2015.) $)
    odnncl $p |- ( ( ( G e. Grp /\ A e. X /\ N e. ZZ ) /\
      ( N =/= 0 /\ ( N .x. A ) = .0. ) ) -> ( O ` A ) e. NN ) $=
      ( wcel cc0 co wceq wa cfv cn syl oveq1 cgrp cz w3a wne c1 cabs cfz simpl2
      wn simprl cc wb simpl3 zcnd abs00 necon3bbid mpbird cn0 wo nn0abscl elnn0
      sylib ord mt3d cneg simprr eqeq1d syl5ibrcom cminusg eqid mulgneg syl3anc
      simpl1 fveq2d grpinvid 3eqtrd zred absord mpjaod odlem2 elfznn ) CUALZAFL
      ZDUBLZUCZDMUDZDABNZGOZPZPZAEQZUEDUFQZUGNLZWKRLWJWCWLRLZWLABNZGOZWMWBWCWDW
      IUHZWJWNWLMOZWJWRUIZWFWEWFWHUJWJDUKLZWSWFULWJDWBWCWDWIUMZUNWTWRDMDUOUPSUQ
      WJWNWRWJWLURLZWNWRUSWJWDXBXADUTSWLVAVBVCVDWJWLDOZWPWLDVEZOZWJWPXCWHWEWFWH
      VFZXCWOWGGWLDABTVGVHWJWPXEXDABNZGOWJXGWGCVIQZQZGXHQZGWJWBWDWCXGXIOWBWCWDW
      IVMZXAWQFBCXHDAHJXHVJZVKVLWJWGGXHXFVNWJWBXJGOXKCXHGKXLVOSVPXEWOXGGWLXDABT
      VGVHWJDWJDXAVQVRVSABCWLEFGHIJKVTVLWKWLWAS $.

    $( Reduce the argument of a group multiple by modding out the order of the
       element.  (Contributed by Mario Carneiro, 14-Jan-2015.)  (Revised by
       Mario Carneiro, 6-Sep-2015.) $)
    odmod $p |- ( ( ( G e. Grp /\ A e. X /\ N e. ZZ ) /\ ( O ` A ) e. NN ) ->
      ( ( N mod ( O ` A ) ) .x. A ) = ( N .x. A ) ) $=
      ( wcel cz cfv co cmul wceq syl2anc oveq1d syl13anc cgrp w3a cn wa cmo cfl
      cdiv cmin csg cr crp simpl3 zred simpr nnrpd modval simpl1 nndivred flcld
      nnzd zmulcld simpl2 eqid mulgsubdir cc nncn zcn mulcom syl2an mulgass syl
      odid oveq2d mulgz eqtrd 3eqtrd mulgcl syl3anc grpsubid1 ) CUALZAFLZDMLZUB
      ZAENZUCLZUDZDWDUEOZABODWDDWDUGOZUFNZPOZUHOZABOZDABOZWJABOZCUINZOZWMWFWGWK
      ABWFDUJLWDUKLWGWKQWFDVTWAWBWEULZUMZWFWDWCWEUNZUODWDUPRSWFVTWBWJMLWAWLWPQV
      TWAWBWEUQZWQWFWDWIWFWDWSUTZWFWHWFDWDWRWSURUSZVAVTWAWBWEVBZFBCDWOWJAHJWOVC
      ZVDTWFWPWMGWOOZWMWFWNGWMWOWFWNWIWDPOZABOZWIWDABOZBOZGWFWJXFABWFWEWIMLZWJX
      FQZWSXBWEWDVELWIVELXKXJWDVFWIVGWDWIVHVIRSWFVTXJWDMLWAXGXIQWTXBXAXCFBCWIWD
      AHJVJTWFXIWIGBOZGWFXHGWIBWFWAXHGQXCABCEFGHIJKVLVKVMWFVTXJXLGQWTXBFBCWIGHJ
      KVNRVOVPVMWFVTWMFLZXEWMQWTWFVTWBWAXMWTWQXCFBCDAHJVQVRFCWOWMGHKXDVSRVOVP
      $.

    $( The only multiples of ` A ` that are equal to the identity are the
       multiples of the order of ` A ` .  (Contributed by Mario Carneiro,
       14-Jan-2015.)  (Revised by Mario Carneiro, 23-Sep-2015.) $)
    oddvds $p |- ( ( G e. Grp /\ A e. X /\ N e. ZZ ) ->
      ( ( O ` A ) || N <-> ( N .x. A ) = .0. ) ) $=
      ( wcel cdvds wbr co wceq wb cc0 wa syl cgrp cz w3a cfv cmo simpr dvdsval3
      cn simpl3 syl2anc simpl2 mulg0 oveq1 eqeq1d syl5ibrcom wn cle wi clt zred
      cr crp nnrpd modlt zmodcld nn0red nnred ltnled mpbid c1 cfz odlem2 3com23
      elfzle2 3expia con3d impancom cn0 wo elnn0 sylib syld impbid odmod 3bitrd
      ord breq1d 0dvds wne odnncl nnne0d expr necon4d odcl 3ad2ant2 mpjaodan )
      CUALZAFLZDUBLZUCZAEUDZUHLZXADMNZDABOZGPZQXARPZWTXBSZXCDXAUEOZRPZXHABOZGPZ
      XEXGXBWSXCXIQWTXBUFZWQWRWSXBUIZXADUGUJXGXIXKXGXKXIRABOZGPZXGWRXOWQWRWSXBU
      KZFBCAGHKJULZTXIXJXNGXHRABUMUNUOXGXKXHUHLZUPZXIXGWRXAXHUQNZUPZXKXSURXPXGX
      HXAUSNZYAXGDVALXAVBLYBXGDXMUTXGXAXLVCDXAVDUJXGXHXAXGXHXGDXAXMXLVEZVFXGXAX
      LVGVHVIWRXKYAXSWRXKSXRXTWRXKXRXTWRXRXKXTWRXRXKUCXAVJXHVKOLXTABCXHEFGHIJKV
      LXAVJXHVNTVMVOVPVQUJXGXRXIXGXHVRLXRXIVSYCXHVTWAWFWBWCXGXJXDGABCDEFGHIJKWD
      UNWEWTXFSZXCRDMNZDRPZXEYDXARDMWTXFUFWGYDWSYEYFQWQWRWSXFUIDWHTYDYFXEYDXEYF
      XOYDWRXOWQWRWSXFUKXQTYFXDXNGDRABUMUNUOWTXEXFYFWTXESDRXARWTDRWIZXEXARWIZWT
      YGXEYHWTYGXESSXAABCDEFGHIJKWJWKWLVQWMVQWCWEWTXAVRLZXBXFVSWRWQYIWSACEFHIWN
      WOXAVTWAWP $.

    $( Any group element is annihilated by any multiple of its order.
       (Contributed by Stefan O'Rear, 5-Sep-2015.)  (Revised by Mario Carneiro,
       23-Sep-2015.) $)
    oddvdsi $p |- ( ( G e. Grp /\ A e. X /\ ( O ` A ) || N ) ->
      ( N .x. A ) = .0. ) $=
      ( cgrp wcel cfv cdvds wbr w3a co wceq cz simp3 wb dvdszrcl simprd syl3an3
      oddvds mpbid ) CLMZAFMZAENZDOPZQUKDABRGSZUHUIUKUAUKUHUIDTMZUKULUBUKUJTMUM
      UJDUCUDABCDEFGHIJKUFUEUG $.

    $( If two multipliers are congruent relative to the base point's order, the
       corresponding multiples are the same.  (Contributed by Stefan O'Rear,
       5-Sep-2015.) $)
    odcong $p |- ( ( G e. Grp /\ A e. X /\ ( M e. ZZ /\ N e. ZZ ) ) ->
        ( ( O ` A ) || ( M - N ) <-> ( M .x. A ) = ( N .x. A ) ) ) $=
      ( wcel cz cfv co wceq wb mulgcl syl3anc cgrp wa w3a cmin cdvds wbr zsubcl
      csg oddvds syl3an3 simp1 simp3l simp3r eqid mulgsubdir syl13anc grpsubeq0
      simp2 eqeq1d 3bitrd ) CUAMZAGMZDNMZENMZUBZUCZAFODEUDPZUEUFZVGABPZHQZDABPZ
      EABPZCUHOZPZHQZVKVLQZVEVAVBVGNMVHVJRDEUGABCVGFGHIJKLUIUJVFVIVNHVFVAVCVDVB
      VIVNQVAVBVEUKZVAVBVCVDULZVAVBVCVDUMZVAVBVEURZGBCDVMEAIKVMUNZUOUPUSVFVAVKG
      MZVLGMZVOVPRVQVFVAVCVBWBVQVRVTGBCDAIKSTVFVAVDVBWCVQVSVTGBCEAIKSTGCVMVKVLH
      ILWAUQTUT $.

    $( The ~ oddvds property uniquely defines the group order.  (Contributed by
       Stefan O'Rear, 6-Sep-2015.) $)
    odeq $p |- ( ( G e. Grp /\ A e. X /\ N e. NN0 ) -> ( N = ( O ` A ) <->
          A. y e. NN0 ( N || y <-> ( y .x. A ) = .0. ) ) ) $=
      ( wcel cn0 wceq cdvds wbr co wb wral cgrp w3a cfv cv wi wa cz nn0z oddvds
      syl3an3 3expa ralrimiva breq1 bibi1d ralbidv syl5ibrcom simpl3 simpl2 syl
      3adant3 odcl odid 3ad2ant2 breq2 oveq1 eqeq1d bibi12d rspcva sylan mpbird
      iddvds 3syl 3ad2antl3 mpbid adantr dvdseq syl22anc ex impbid ) DUAMZBGMZE
      NMZUBZEBFUCZOZEAUDZPQZWFBCRZHOZSZANTZVTWAWEWKUEWBVTWAUFZWKWEWDWFPQZWISZAN
      TWLWNANVTWAWFNMZWNWOVTWAWFUGMWNWFUHBCDWFFGHIJKLUIUJUKULWEWJWNANWEWGWMWIEW
      DWFPUMUNUOUPUTWCWKWEWCWKUFZWBWDNMZEWDPQZWDEPQZWEVTWAWBWKUQZWPWAWQVTWAWBWK
      URZBDFGIJVAZUSWPWRWDBCRZHOZWPWAXDXABCDFGHIJKLVBUSWCWQWKWRXDSZWAVTWQWBXBVC
      WJXEAWDNWFWDOZWGWRWIXDWFWDEPVDXFWHXCHWFWDBCVEVFVGVHVIVJWPWSEBCRZHOZWPEEPQ
      ZXHWPWBEUGMZXIWTEUHZEVKVLWBVTWKXIXHSZWAWJXLAENWFEOZWGXIWIXHWFEEPVDXMWHXGH
      WFEBCVEVFVGVHVMVNWCWSXHSZWKWBVTWAXJXNXKBCDEFGHIJKLUIUJVOVJEWDVPVQVRVS $.

    $( A non-conditional definition of the group order.  (Contributed by Stefan
       O'Rear, 6-Sep-2015.) $)
    odval2 $p |- ( ( G e. Grp /\ A e. X ) -> ( O ` A ) = ( iota_ x e. NN0
            A. y e. NN0 ( x || y <-> ( y .x. A ) = .0. ) ) ) $=
      ( cgrp wcel wa cv cdvds wceq wb cn0 wbr co wral crio cfv odcl adantl odeq
      3expa bicomd riota5 eqcomd ) EMNZCGNZOZAPZBPZQUAUQCDUBHRSBTUCZATUDCFUEZUO
      URATUSUNUSTNUMCEFGIJUFUGUOUPTNZOUPUSRZURUMUNUTVAURSBCDEUPFGHIJKLUHUIUJUKU
      L $.
  $}

  ${
    $d x y A $.  $d x y G $.  $d x y N $.  $d x y O $.  $d x y .x. $.
    $d x y X $.
    odmulgid.1 $e |- X = ( Base ` G ) $.
    odmulgid.2 $e |- O = ( od ` G ) $.
    odmulgid.3 $e |- .x. = ( .g ` G ) $.
    $( A relationship between the order of a multiple and the order of the
       basepoint.  (Contributed by Stefan O'Rear, 6-Sep-2015.) $)
    odmulgid $p |- ( ( ( G e. Grp /\ A e. X /\ N e. ZZ ) /\ K e. ZZ ) ->
          ( ( O ` ( N .x. A ) ) || K <-> ( O ` A ) || ( K x. N ) ) ) $=
      ( wcel cz co cfv wceq cdvds wbr wb oddvds syl3anc cgrp w3a wa cmul simpl1
      simpr simpl3 simpl2 mulgass syl13anc eqeq1d zmulcld eqid mulgcl 3bitr4rd
      c0g ) CUAKZAGKZELKZUBZDLKZUCZDEUDMZABMZCUPNZOZDEABMZBMZVEOZAFNVCPQZVGFNDP
      QZVBVDVHVEVBUQVAUSURVDVHOUQURUSVAUEZUTVAUFZUQURUSVAUGZUQURUSVAUHZGBCDEAHJ
      UIUJUKVBUQURVCLKVJVFRVLVOVBDEVMVNULABCVCFGVEHIJVEUMZSTVBUQVGGKZVAVKVIRVLV
      BUQUSURVQVLVNVOGBCEAHJUNTVMVGBCDFGVEHIJVPSTUO $.

    $( The order of a multiple divides the order of the base point.
       (Contributed by Stefan O'Rear, 6-Sep-2015.) $)
    odmulg2 $p |- ( ( G e. Grp /\ A e. X /\ N e. ZZ ) ->
        ( O ` ( N .x. A ) ) || ( O ` A ) ) $=
      ( cgrp wcel cz w3a co cfv cdvds wbr cmul odcl nn0zd 3ad2ant2 simp3 mpbird
      dvdsmul1 syl2anc wb odmulgid mpdan ) CJKZAFKZDLKZMZDABNEOAEOZPQZUMUMDRNPQ
      ZULUMLKZUKUOUJUIUPUKUJUMACEFGHSTUAZUIUJUKUBUMDUDUEULUPUNUOUFUQABCUMDEFGHI
      UGUHUC $.

    $( Relationship between the order of an element and that of a multiple.
       (Contributed by Stefan O'Rear, 6-Sep-2015.) $)
    odmulg $p |- ( ( G e. Grp /\ A e. X /\ N e. ZZ ) ->
        ( O ` A ) = ( ( N gcd ( O ` A ) ) x. ( O ` ( N .x. A ) ) ) ) $=
      ( wcel cz co cmul cc0 wa cn0 adantr wb cdvds wbr vx vy cgrp w3a cgcd wceq
      cfv cc mulgcl 3com23 odcl nn0cnd mul02d simpr oveq1d simp3 3ad2ant2 nn0zd
      syl gcdeq0 syl2anc simplbda 3eqtr4rd wne cv wral simpll3 ad2antrr gcddvds
      simprd wi gcdcld nn0z adantl syl3anc mpand muldvds1 wrex dvdszrcl divides
      dvdstr ibi simprr adantrr dvdscmulr syl112anc odmulgid adantrl dvdsmulgcd
      simprl simpl3 3bitrrd zcnd mulcomd breq2d bitrd anassrs bibi12d syl5ibcom
      breq2 rexlimdva pm5.21ndd ralrimiva nn0mulcld dvdsext mpbird pm2.61dane
      syl5 ) CUCJZAFJZDKJZUDZAEUGZDXMUELZDABLZEUGZMLZUFZXNNXLXNNUFZOZNXPMLNXQXM
      XTXPXLXPUHJXSXLXPXLXOFJZXPPJZXIXKXJYAFBCDAGIUIUJXOCEFGHUKUSZULQUMXTXNNXPM
      XLXSUNUOXLXSDNUFZXMNUFZXLXKXMKJZXSYDYEORXIXJXKUPZXLXMXJXIXMPJZXKACEFGHUKU
      QZURZDXMUTVAVBVCXLXNNVDZOZXRXMUAVEZSTZXQYMSTZRZUAPVFZYLYPUAPYLYMPJZOZXNYM
      STZYNYOYSXNXMSTZYNYTYSXNDSTZUUAYSXKYFUUBUUAOXIXJXKYKYRVGXLYFYKYRYJVHZDXMV
      IVAVJYSXNKJZYFYMKJZUUAYNOYTVKYLUUDYRYLXNXLXNPJYKXLDXMYGYJVLQZURZQZUUCYRUU
      EYLYMVMVNZXNXMYMWAVOVPYSUUDXPKJZUUEYOYTVKUUHXLUUJYKYRXLXPYCURZVHUUIXNXPYM
      VQVOYLYTYPVKYRYTUBVEZXNMLZYMUFZUBKVRZYLYPYTUUOYTUUDUUEOYTUUORXNYMVSUBXNYM
      VTUSWBYLUUNYPUBKYLUULKJZOXMUUMSTZXQUUMSTZRZUUNYPXLYKUUPUUSXLYKUUPOZOZUUQX
      QXNUULMLZSTZUURUVAUVCXPUULSTZXMUULDMLSTZUUQUVAUUJUUPUUDYKUVCUVDRXLUUJUUTU
      UKQXLYKUUPWCZXLYKUUDUUPUUGWDZXLYKUUPWJXNXPUULWEWFXLUUPUVDUVERYKABCUULDEFG
      HIWGWHUVAUUPXKUVEUUQRUVFXIXJXKUUTWKXMUULDWIVAWLUVAUVBUUMXQSUVAXNUULUVAXNU
      VGWMUVAUULUVFWMWNWOWPWQUUNUUQYNUURYOUUMYMXMSWTUUMYMXQSWTWRWSXAXHQXBXCYLYH
      XQPJXRYQRXLYHYKYIQYLXNXPUUFXLYBYKYCQXDUAXMXQXEVAXFXG $.

    $( A multiple of a point of finite order only has the same order if the
       multiplier is relatively prime.  (Contributed by Stefan O'Rear,
       12-Sep-2015.) $)
    odmulgeq $p |- ( ( ( G e. Grp /\ A e. X /\ N e. ZZ ) /\ ( O ` A ) e. NN )
      -> ( ( O ` ( N .x. A ) ) = ( O ` A ) <-> ( N gcd ( O ` A ) ) = 1 ) ) $=
      ( co cfv wceq wcel cz c1 cn0 syl nn0cnd cc0 cdvds cgrp cn cgcd eqcom cdiv
      w3a simpl2 odcl simpl1 simpl3 mulgcl syl3anc wne nnne0 adantl wbr odmulg2
      wa adantr breq1 syl5ibcom wb nn0zd 0dvds sylibd necon3d mpd diveq1ad cmul
      gcdcld mulcomd odmulg eqtr4d divmuld mpbird eqeq1d bitr3d syl5bb ) DABJZE
      KZAEKZLWAVTLZCUAMZAFMZDNMZUFZWAUBMZURZDWAUCJZOLZVTWAUDWHWAVTUEJZOLWBWJWHW
      AVTWHWAWHWDWAPMWCWDWEWGUGZACEFGHUHQZRZWHVTWHVSFMZVTPMWHWCWEWDWOWCWDWEWGUI
      WCWDWEWGUJZWLFBCDAGIUKULVSCEFGHUHQRZWHWASUMZVTSUMWGWRWFWAUNUOWHVTSWASWHVT
      SLZSWATUPZWASLZWHVTWATUPZWSWTWFXBWGABCDEFGHIUQUSVTSWATUTVAWHWANMWTXAVBWHW
      AWMVCZWAVDQVEVFVGZVHWHWKWIOWHWKWILVTWIVIJZWALWHXEWIVTVIJZWAWHVTWIWQWHWIWH
      DWAWPXCVJRZVKWFWAXFLWGABCDEFGHIVLUSVMWHWAVTWIWNWQXGXDVNVOVPVQVR $.

    $( If ` N ` is coprime to the order of ` A ` , there is a modular inverse
       ` x ` to cancel multiplication by ` N ` .  (Contributed by Mario
       Carneiro, 27-Apr-2016.) $)
    odbezout $p |- ( ( ( G e. Grp /\ A e. X /\ N e. ZZ ) /\
      ( N gcd ( O ` A ) ) = 1 ) -> E. x e. ZZ ( x .x. ( N .x. A ) ) = A ) $=
      ( vy wcel cz cfv co c1 wceq wa cmul eqtrd cgrp w3a cgcd caddc wrex simpl3
      cv cn0 simpl2 odcl syl nn0zd bezout syl2anc wi oveq1 eqcoms cplusg adantr
      simpll1 simprl zmulcld simprr mulgdir syl13anc c0g mulcomd oveq1d mulgass
      eqid zcnd cdvds wbr dvdsmul1 wb oddvds syl3anc mpbid mulgcl grprid simplr
      oveq12d mulg1 eqeq12d syl5ib anassrs rexlimdva reximdva mpd ) DUALZBGLZEM
      LZUBZEBFNZUCOZPQZRZWOEAUGZSOZWNKUGZSOZUDOZQZKMUEZAMUEZWREBCOZCOZBQZAMUEWQ
      WLWNMLZXEWJWKWLWPUFZWQWNWQWKWNUHLZWJWKWLWPUIZBDFGHIUJZUKULAKEWNUMUNWQXDXH
      AMWQWRMLZRXCXHKMWQXNWTMLZXCXHUOXCXBBCOZWOBCOZQZWQXNXORZRZXHXRXBWOXBWOBCUP
      UQXTXPXGXQBXTXPWSBCOZXABCOZDURNZOZXGXTWJWSMLXAMLZWKXPYDQWJWKWLWPXSUTZXTEW
      RWQWLXSXJUSZWQXNXOVAZVBXTWNWTXTWNXTWKXKWQWKXSXLUSZXMUKULZWQXNXOVCZVBZYIGY
      CCDWSXABHJYCVJZVDVEXTYDXGDVFNZYCOZXGXTYAXGYBYNYCXTYAWRESOZBCOZXGXTWSYPBCX
      TEWRXTEYGVKXTWRYHVKVGVHXTWJXNWLWKYQXGQYFYHYGYIGCDWREBHJVIVETXTWNXAVLVMZYB
      YNQZXTXIXOYRYJYKWNWTVNUNXTWJWKYEYRYSVOYFYIYLBCDXAFGYNHIJYNVJZVPVQVRWBXTWJ
      XGGLZYOXGQYFXTWJXNXFGLZUUAYFYHXTWJWLWKUUBYFYGYIGCDEBHJVSVQGCDWRXFHJVSVQGY
      CDXGYNHYMYTVTUNTTXTXQPBCOZBXTWOPBCWMWPXSWAVHXTWKUUCBQYIGCDBHJWCUKTWDWEWFW
      GWHWI $.
  $}

  ${
    od1.1 $e |- O = ( od ` G ) $.
    od1.2 $e |- .0. = ( 0g ` G ) $.
    $( The order of the group identity is one.  (Contributed by Mario Carneiro,
       14-Jan-2015.)  (Revised by Mario Carneiro, 23-Sep-2015.) $)
    od1 $p |- ( G e. Grp -> ( O ` .0. ) = 1 ) $=
      ( cgrp wcel cfv c1 cfz co wceq cbs cn cmg eqid grpidcl 1nn a1i syl odlem2
      mulg1 syl3anc elfz1eq ) AFGZCBHZIIJKGZUFILUECAMHZGZINGZICAOHZKCLZUGUHACUH
      PZEQZUJUERSUEUIULUNUHUKACUMUKPZUBTCUKAIBUHCUMDUOEUAUCUFIUDT $.

    odeq1.3 $e |- X = ( Base ` G ) $.
    $( The group identity is the unique element of a group with order one.
       (Contributed by Mario Carneiro, 14-Jan-2015.)  (Revised by Mario
       Carneiro, 23-Sep-2015.) $)
    odeq1 $p |- ( ( G e. Grp /\ A e. X ) -> ( ( O ` A ) = 1 <-> A = .0. ) ) $=
      ( cgrp wcel wa cfv c1 wceq cmg co oveq1 eqcomd wb eqid mulg1 odid eqeq12d
      adantl syl5ib od1 adantr fveq2 eqeq1d syl5ibrcom impbid ) BIJZADJZKZACLZM
      NZAENZUPMABOLZPZUOAURPZNZUNUQUPUTUSUOMAURQRUMVAUQSULUMUSAUTEDURBAHURTZUAA
      URBCDEHFVBGUBUCUDUEUNUPUQECLZMNZULVDUMBCEFGUFUGUQUOVCMAECUHUIUJUK $.
  $}

  ${
    odinv.1 $e |- O = ( od ` G ) $.
    odinv.2 $e |- I = ( invg ` G ) $.
    odinv.3 $e |- X = ( Base ` G ) $.
    $( The order of the inverse of a group element.  (Contributed by Mario
       Carneiro, 20-Oct-2015.) $)
    odinv $p |- ( ( G e. Grp /\ A e. X ) -> ( O ` ( I ` A ) ) = ( O ` A ) ) $=
      ( wcel cfv c1 cgcd co cmul cz wceq neg1z cn0 odcl syl cgrp wa cneg odmulg
      cmg eqid mp3an3 adantl nn0zd gcdcom sylancr 1z gcdneg sylancl gcd1 3eqtrd
      mulgm1 fveq2d oveq12d grpinvcl nn0cnd mulid2d 3eqtrrd ) BUAIZAEIZUBZADJZK
      UCZVGLMZVHABUEJZMZDJZNMZKACJZDJZNMVOVDVEVHOIZVGVMPQAVJBVHDEHFVJUFZUDUGVFV
      IKVLVONVFVIVGVHLMZVGKLMZKVFVPVGOIZVIVRPQVFVGVEVGRIVDABDEHFSUHUIZVHVGUJUKV
      FVTKOIVRVSPWAULVGKUMUNVFVTVSKPWAVGUOTUPVFVKVNDEVJBCAHVQGUQURUSVFVOVFVOVFV
      NEIVORIEBCAHGUTVNBDEHFSTVAVBVC $.
  $}

  ${
    $d x y z A $.  $d x y z G $.  $d x y z O $.  $d x y z .x. $.  $d x y z X $.
    $d y z F $.
    odf1.1 $e |- X = ( Base ` G ) $.
    odf1.2 $e |- O = ( od ` G ) $.
    odf1.3 $e |- .x. = ( .g ` G ) $.
    odf1.4 $e |- F = ( x e. ZZ |-> ( x .x. A ) ) $.
    $( The multiples of an element with infinite order form an infinite cyclic
       subgroup of ` G ` .  (Contributed by Mario Carneiro, 14-Jan-2015.)
       (Revised by Mario Carneiro, 23-Sep-2015.) $)
    odf1 $p |- ( ( G e. Grp /\ A e. X ) ->
      ( ( O ` A ) = 0 <-> F : ZZ -1-1-> X ) ) $=
      ( vy wcel wa cfv cc0 wceq cz co wb vz cgrp wf1 wf cv wi wral mulgcl 3expa
      an32s fmptd adantr cmin oveq1 ovex fvmpt3i eqeqan12d adantl simplr breq1d
      cdvds wbr c0g eqid odcong adantlr zsubcl syl 3bitr3d cc zcn subeq0 syl2an
      0dvds 3bitrd biimpd ralrimivva dff13 sylanbrc mulg0 eqtr4d ad2antlr nn0zd
      odid cn0 odcl 0zd 3eqtr4d simpr f1fveq syl12anc mpbid impbida ) EUBMZBGMZ
      NZBFOZPQZRGDUCZWPWRNZRGDUDZLUEZDOZUAUEZDOZQZXBXDQZUFZUARUGLRUGWSWPXAWRWPA
      RAUEZBCSZGDWNXIRMZWOXJGMZWNXKWOXLGCEXIBHJUHUIUJKUKULWTXHLUARRWTXBRMZXDRMZ
      NZNZXFXGXPXFXBBCSZXDBCSZQZXBXDUMSZPQZXGXOXFXSTWTXMXNXCXQXEXRAXBXJXQRDXIXB
      BCUNKXIBCUOZUPAXDXJXRRDXIXDBCUNKYBUPUQURXPWQXTVAVBZPXTVAVBZXSYAXPWQPXTVAW
      PWRXOUSUTWPXOYCXSTZWRWNWOXOYEBCEXBXDFGEVCOZHIJYFVDZVEUIVFXPXTRMZYDYATXOYH
      WTXBXDVGURXTVNVHVIXOYAXGTZWTXMXBVJMXDVJMYIXNXBVKXDVKXBXDVLVMURVOVPVQLUARG
      DVRVSWPWSNZWQDOZPDOZQZWRYJWQBCSZPBCSZYKYLWOYNYOQWNWSWOYNYFYOBCEFGYFHIJYGW
      DGCEBYFHYGJVTWAWBYJWQRMZYKYNQYJWQWOWQWEMWNWSBEFGHIWFWBWCZAWQXJYNRDXIWQBCU
      NKYBUPVHYJPRMZYLYOQYJWGZAPXJYORDXIPBCUNKYBUPVHWHYJWSYPYRYMWRTWPWSWIYQYSRG
      WQPDWJWKWLWM $.

    $( The multiples of an element with infinite order form an infinite cyclic
       subgroup of ` G ` .  (Contributed by Mario Carneiro, 14-Jan-2015.) $)
    odinf $p |- ( ( G e. Grp /\ A e. X /\ ( O ` A ) = 0 ) ->
      -. ran F e. Fin ) $=
      ( wcel cfv com wbr cen cz cvv cbs 3syl cgrp cc0 wceq w3a crn csdm cdom wn
      cfn cn znnen nnenom entr2i wf1o wf1 wf odf1 biimp3a f1f fvex eqeltri fex2
      zex mp3an23 f1f1orn f1oen3g syl2anc entr sylancr domnsym isfinite sylnibr
      syl endom ) EUALZBGLZBFMUBUCZUDZDUEZNUFOZVSUILVRNVSPOZNVSUGOVTUHVRNQPOQVS
      POZWAQUJNUKULUMVRDRLZQVSDUNZWBVRQGDUOZQGDUPZWCVOVPVQWEABCDEFGHIJKUQURZQGD
      USWFQRLGRLWCVCGESMRHESUTVAQGDRRVBVDTVRWEWDWGQGDVEVMQVSDRVFVGNQVSVHVINVSVN
      NVSVJTVSVKVL $.

    $( An alternative definition of the order of a group element is as the
       cardinality of the cyclic subgroup generated by the element.
       (Contributed by Mario Carneiro, 14-Jan-2015.)  (Revised by Mario
       Carneiro, 2-Oct-2015.) $)
    dfod2 $p |- ( ( G e. Grp /\ A e. X ) ->
      ( O ` A ) = if ( ran F e. Fin , ( # ` ran F ) , 0 ) ) $=
      ( vy wcel cc0 wceq co wbr wb cvv cz vz wa cfv cn crn cfn chash cif c1 cfz
      cgrp cmin fzfid cen cv cmpt wf1o wss mulgcl 3expa an32s adantlr fmptd frn
      wf cbs fvex eqeltri ssex 3syl wral wreu elfzelz adantl ovex oveq1 sylancl
      elrnmpt1s ralrimiva zmodfz ancoms adantll cdvds simpllr simplr moddvds cr
      cmo syl3anc crp cle clt nnrpd w3a 0z adantr elfzm11 sylancr biimpa simp2d
      zred nnz simp3d modid syl22anc eqeq2d eqcom syl6bb simp-4l simp-4r odcong
      eqid syl112anc 3bitr3rd reu6i syl2anc rgenw eqeq1 reubidv ralrnmpt sylibr
      c0g ax-mp f1ompt sylanbrc f1oen2g enfi syl mpbid fz01en ensym entr hashen
      iftrued mpbird cn0 nnnn0 hashfz1 3eqtr2rd simp3 odinf iffalsed odcl elnn0
      eqtr4d wo sylib mpjaodan ) EUKMZBGMZUBZBFUCZUDMZUULDUEZUFMZUUNUGUCZNUHZOZ
      UULNOZUUKUUMUBZUUQUUPUIUULUJPZUGUCZUULUUTUUOUUPNUUTNUULUIULPZUJPZUFMZUUOU
      UTNUVCUMZUUTUVDUUNUNQZUVEUUORUUTUVEUUNSMZUVDUUNLUVDLUOZBCPZUPZUQZUVGUVFUU
      TTGDVEUUNGURUVHUUTATAUOZBCPZGDUUKUVMTMZUVNGMZUUMUUIUVOUUJUVPUUIUVOUUJUVPG
      CEUVMBHJUSUTVAVBKVCTGDVDUUNGGEVFUCSHEVFVGVHVIVJUUTUVJUUNMZLUVDVKUAUOZUVJO
      ZLUVDVLZUAUUNVKZUVLUUTUVQLUVDUUTUVIUVDMZUBUVITMZUVJSMUVQUWBUWCUUTUVINUVCV
      MZVNUVIBCVOATUVNUVJUVIDSKUVMUVIBCVPVRVQVSUUTUVNUVJOZLUVDVLZATVKZUWAUUTUWF
      ATUUTUVOUBZUVMUULWHPZUVDMZUWEUVIUWIOZRZLUVDVKUWFUUMUVOUWJUUKUVOUUMUWJUVMU
      ULVTWAWBUWHUWLLUVDUWHUWBUBZUWIUVIUULWHPZOZUULUVMUVIULPWCQZUWKUWEUWMUUMUVO
      UWCUWOUWPRUUKUUMUVOUWBWDZUUTUVOUWBWEZUWBUWCUWHUWDVNZUVMUVIUULWFWIUWMUWOUW
      IUVIOUWKUWMUWNUVIUWIUWMUVIWGMUULWJMNUVIWKQZUVIUULWLQZUWNUVIOUWMUVIUWSXAUW
      MUULUWQWMUWMUWCUWTUXAUWHUWBUWCUWTUXAWNZUWHNTMUULTMZUWBUXBRWOUUTUXCUVOUUMU
      XCUUKUULXBVNZWPUVINUULWQWRWSZWTUWMUWCUWTUXAUXEXCUVIUULXDXEXFUWIUVIXGXHUWM
      UUIUUJUVOUWCUWPUWERUUIUUJUUMUVOUWBXIUUIUUJUUMUVOUWBXJUWRUWSBCEUVMUVIFGEYB
      UCZHIJUXFXLXKXMXNVSUWELUVDUWIXOXPVSUVNSMZATVKUWAUWGRUXGATUVMBCVOXQUVTUWFA
      UATUVNDSKUVRUVNOUVSUWELUVDUVRUVNUVJXRXSXTYCYALUAUVDUUNUVJUVKUVKXLYDYEUVDU
      UNUVKUFSYFWIZUVDUUNYGYHYIZYNUUTUVBUUPOZUVAUUNUNQZUUTUVAUVDUNQZUVGUXKUUTUX
      CUVDUVAUNQUXLUXDUULYJUVDUVAYKVJUXHUVAUVDUUNYLXPUUTUVAUFMUUOUXJUXKRUUTUIUU
      LUMUXIUVAUUNYMXPYOUUTUULYPMZUVBUULOUUMUXMUUKUULYQVNUULYRYHYSUUIUUJUUSUURU
      UIUUJUUSWNZUULNUUQUUIUUJUUSYTUXNUUOUUPNABCDEFGHIJKUUAUUBUUEUTUUKUXMUUMUUS
      UUFUUJUXMUUIBEFGHIUUCVNUULUUDUUGUUH $.
  $}

  ${
    $d x A $.  $d x G $.  $d x O $.  $d x X $.
    odcl2.1 $e |- X = ( Base ` G ) $.
    odcl2.2 $e |- O = ( od ` G ) $.
    $( The order of an element of a finite group is finite.  (Contributed by
       Mario Carneiro, 14-Jan-2015.) $)
    odcl2 $p |- ( ( G e. Grp /\ X e. Fin /\ A e. X ) -> ( O ` A ) e. NN ) $=
      ( vx cgrp wcel cfn cfv cn wa wn cc0 wceq cn0 wo cz eqid odcl adantl elnn0
      sylib ord w3a cv cmg co cmpt crn odinf wf1 wf wss wi odf1 biimp3a f1f frn
      ssfi expcom 4syl mtod 3expia syld con4d 3impia 3com23 ) BHIZADIZDJIZACKZL
      IZVJVKVLVNVJVKMZVNVLVOVNNVMOPZVLNZVOVNVPVOVMQIZVNVPRVKVRVJABCDEFUAUBVMUCU
      DUEVJVKVPVQVJVKVPUFZVLGSGUGABUHKZUIUJZUKZJIZGAVTWABCDEFVTTZWATZULVSSDWAUM
      ZSDWAUNWBDUOZVLWCUPVJVKVPWFGAVTWABCDEFWDWEUQURSDWAUSSDWAUTVLWGWCDWBVAVBVC
      VDVEVFVGVHVI $.

    $( The order of an element of a finite group divides the order
       (cardinality) of the group.  Corollary of Lagrange's theorem for the
       order of a subgroup.  (Contributed by Mario Carneiro, 14-Jan-2015.) $)
    oddvds2 $p |- ( ( G e. Grp /\ X e. Fin /\ A e. X ) ->
      ( O ` A ) || ( # ` X ) ) $=
      ( vx cgrp wcel cfn w3a cfv cz cv chash cdvds cc0 eqid 3adant2 syl2anc cmg
      co cmpt crn cif wceq dfod2 wss simp2 csubg wa cycsubgcl simpld subgss syl
      ssfi iftrued eqtrd wbr lagsubg eqbrtrd ) BHIZDJIZADIZKZACLZGMGNABUALZUBUC
      ZUDZOLZDOLZPVEVFVIJIZVJQUEZVJVBVDVFVMUFVCGAVGVHBCDEFVGRZVHRZUGSVEVLVJQVEV
      CVIDUHZVLVBVCVDUIZVEVIBUJLIZVPVEVRAVIIZVBVDVRVSUKVCGAVGVHBDEVNVOULSUMZDVI
      BEUNUODVIUPTUQURVEVRVCVJVKPUSVTVQBDVIEUTTVA $.
  $}

  ${
    $d x A $.  $d x G $.  $d x H $.  $d x Y $.
    submod.h $e |- H = ( G |`s Y ) $.
    submod.o $e |- O = ( od ` G ) $.
    submod.p $e |- P = ( od ` H ) $.
    $( The order of an element is the same in a subgroup.  (Contributed by
       Stefan O'Rear, 12-Sep-2015.)  (Proof shortened by AV, 5-Oct-2020.) $)
    submod $p |- ( ( Y e. ( SubMnd ` G ) /\ A e. Y ) ->
        ( O ` A ) = ( P ` A ) ) $=
      ( vx cfv wcel wceq cn c0 cc0 cr clt eqid syl csubmnd wa cmg c0g crab cinf
      cv co cif cn0 simpll nnnn0 adantl submmulg syl3anc subm0 ad2antrr eqeq12d
      simplr rabbidva eqeq1 infeq1 ifbieq2d cbs submss odval simpr wss ressbas2
      sselda adantr eleqtrd 3eqtr4d ) FCUAKLZAFLZUBZJUGZACUCKZUHZCUDKZMZJNUEZOM
      ZPWBQRUFZUIZVQADUCKZUHZDUDKZMZJNUEZOMZPWJQRUFZUIZAEKZABKZVPWBWJMZWEWMMVPW
      AWIJNVPVQNLZUBZVSWGVTWHWRVNVQUJLZVOVSWGMVNVOWQUKWQWSVPVQULUMVNVOWQUSFVRWF
      CDVQAVRSZGWFSZUNUOVNVTWHMVOWQFDCVTGVTSZUPUQURUTWPWCWKWDWLPWBWJOVAQWBWJRVB
      VCTVPACVDKZLWNWEMVNFXCAXCFCXCSZVEZVJJAVRCWBEXCVTXDWTXBHWBSVFTVPADVDKZLWOW
      MMVPAFXFVNVOVGVPFXCVHZFXFMVNXGVOXEVKFXCDCGXDVITVLJAWFDWJBXFWHXFSXAWHSIWJS
      VFTVM $.

    $( The order of an element is the same in a subgroup.  (Contributed by
       Mario Carneiro, 14-Jan-2015.)  (Proof shortened by Stefan O'Rear,
       12-Sep-2015.) $)
    subgod $p |- ( ( Y e. ( SubGrp ` G ) /\ A e. Y ) ->
      ( O ` A ) = ( P ` A ) ) $=
      ( csubg cfv wcel csubmnd wceq subgsubm submod sylan ) FCJKLFCMKLAFLAEKABK
      NFCOABCDEFGHIPQ $.
  $}

  ${
    odsubdvds.1 $e |- O = ( od ` G ) $.
    $( The order of an element of a subgroup divides the order of the subgroup.
       (Contributed by Mario Carneiro, 16-Jan-2015.) $)
    odsubdvds $p |- ( ( S e. ( SubGrp ` G ) /\ S e. Fin /\ A e. S ) ->
      ( O ` A ) || ( # ` S ) ) $=
      ( csubg cfv wcel cfn w3a cress co cod chash cdvds cgrp eqid 3ad2ant1 wceq
      cbs subggrp subgbas simp2 eqeltrrd eleqtrd oddvds2 syl3anc subgod 3adant2
      wbr simp3 fveq2d 3brtr4d ) BCFGHZBIHZABHZJZACBKLZMGZGZURTGZNGZADGZBNGOUQU
      RPHZVAIHAVAHUTVBOUJUNUOVDUPBCURURQZUARUQBVAIUNUOBVASUPBCURVEUBRZUNUOUPUCU
      DUQABVAUNUOUPUKVFUEAURUSVAVAQUSQZUFUGUNUPVCUTSUOAUSCURDBVEEVGUHUIUQBVANVF
      ULUM $.
  $}

  ${
    $d x y A $.  $d x y G $.  $d x y K $.  $d x y O $.  $d x y .x. $.
    $d x y X $.
    odf1o1.x $e |- X = ( Base ` G ) $.
    odf1o1.t $e |- .x. = ( .g ` G ) $.
    odf1o1.o $e |- O = ( od ` G ) $.
    odf1o1.k $e |- K = ( mrCls ` ( SubGrp ` G ) ) $.
    $( An element with zero order has infinitely many multiples.  (Contributed
       by Stefan O'Rear, 6-Sep-2015.) $)
    odf1o1 $p |- ( ( G e. Grp /\ A e. X /\ ( O ` A ) = 0 ) ->
        ( x e. ZZ |-> ( x .x. A ) ) : ZZ -1-1-onto-> ( K ` { A } ) ) $=
      ( wcel cfv cc0 wceq cz co wa syl wb vy cgrp w3a csn cv cmpt wf1 wfo csubg
      wf1o cmre wss cacs simpl1 subgacs acsmre simpl2 snssd mrccl syl2anc simpr
      3syl mrcssidd snidg sseldd subgmulgcl syl3anc ex cmin cdvds simpl3 breq1d
      wbr zsubcl adantl 0dvds bitrd simprl simprr c0g eqid odcong syl112anc zcn
      cc subeq0 syl2an 3bitr3d dom2lem wf crn f1f cycsubg2 3adant3 eqcomd dffo2
      sylanbrc df-f1o ) DUBLZBGLZBFMZNOZUCZPBUDZEMZAPAUEZBCQZUFZUGZPXEXHUHZPXEX
      HUJXCAUAPXEXGUAUEZBCQZXCXFPLZXGXELZXCXMRZXEDUIMZLZXMBXELXNXOXPGUKMLZXDGUL
      XQXOWSXPGUMMLXRWSWTXBXMUNGDHUOXPGUPVBZXOBGWSWTXBXMUQZURZXPXDEGKUSUTXCXMVA
      XOXDXEBXOXPXDEGXSKYAVCXOWTBXDLXTBGVDSVEXECDXFBIVFVGVHXCXMXKPLZRZXGXLOZXFX
      KOZTXCYCRZXAXFXKVIQZVJVMZYGNOZYDYEYFYHNYGVJVMZYIYFXANYGVJWSWTXBYCVKVLYFYG
      PLZYJYITYCYKXCXFXKVNVOYGVPSVQYFWSWTXMYBYHYDTWSWTXBYCUNWSWTXBYCUQXCXMYBVRX
      CXMYBVSBCDXFXKFGDVTMZHJIYLWAWBWCYCYIYETZXCXMXFWELXKWELYMYBXFWDXKWDXFXKWFW
      GVOWHVHWIZXCPXEXHWJZXHWKZXEOXJXCXIYOYNPXEXHWLSXCXEYPWSWTXEYPOXBABCXHDEGHI
      XHWAKWMWNWOPXEXHWPWQPXEXHWRWQ $.

    $( An element with nonzero order has as many multiples as its order.
       (Contributed by Stefan O'Rear, 6-Sep-2015.) $)
    odf1o2 $p |- ( ( G e. Grp /\ A e. X /\ ( O ` A ) e. NN ) ->
        ( x e. ( 0 ..^ ( O ` A ) ) |-> ( x .x. A ) ) :
          ( 0 ..^ ( O ` A ) ) -1-1-onto-> ( K ` { A } ) ) $=
      ( vy wcel cc0 co wceq wa cz wb wss cgrp cfv cn w3a cfzo csn cmpt wfo ccnv
      cv wfun wf1o wfn crn simpl1 elfzoelz adantl simpl2 mulgcl syl3anc ex cmin
      wf1 cdvds wbr simpl3 nncnd subid1d breq1d fzocongeq ad2antrl ad2antll c0g
      eqid odcong syl112anc 3bitr3rd dom2lem f1fn cres resss ssriv resmpt ax-mp
      syl oveq1 cbvmptv 3sstr3i rnss mp1i wrex cmo simpr zmodfzo syl2anc 3an1rs
      wf odmod eqcomd eqeq2d rspcev cvv elrnmpt sylibr fmptd frn eqssd cycsubg2
      ovex 3adant3 eqtr4d df-fo sylanbrc df-f1 simprbi dff1o3 ) DUAMZBGMZBFUBZU
      CMZUDZNXSUEOZBUFEUBZAYBAUJZBCOZUGZUHZYFUIUKZYBYCYFULYAYFYBUMZYFUNZYCPYGYA
      YBGYFVCZYIYAALYBGYELUJZBCOZYAYDYBMZYEGMZYAYNQXQYDRMZXRYOXQXRXTYNUOYNYPYAY
      DNXSUPZUQXQXRXTYNURGCDYDBHIUSUTVAYAYNYLYBMZQZYEYMPZYDYLPZSYAYSQZXSNVBOZYD
      YLVBOZVDVEZXSUUDVDVEZUUAYTUUBUUCXSUUDVDUUBXSUUBXSXQXRXTYSVFVGVHVIYSUUEUUA
      SYAYDYLNXSVJUQUUBXQXRYPYLRMZUUFYTSXQXRXTYSUOXQXRXTYSURYNYPYAYRYQVKYRUUGYA
      YNYLNXSUPVLBCDYDYLFGDVMUBZHJIUUHVNZVOVPVQVAVRZYBGYFVSWEYAYJLRYMUGZUNZYCYA
      YJUULYFUUKTYJUULTYAARYEUGZYBVTZUUMYFUUKUUMYBWAYBRTUUNYFPAYBRYQWBARYBYEWCW
      DALRYEYMYDYLBCWFWGWHYFUUKWIWJYARYJUUKWQUULYJTYALRYMYJUUKYAUUGQZYMYEPZAYBW
      KZYMYJMZUUOYLXSWLOZYBMZYMUUSBCOZPZUUQUUOUUGXTUUTYAUUGWMXQXRXTUUGVFYLXSWNW
      OUUOUVAYMXQXRUUGXTUVAYMPBCDYLFGUUHHJIUUIWRWPWSUUPUVBAUUSYBYDUUSPYEUVAYMYD
      UUSBCWFWTXAWOYMXBMUURUUQSYLBCXIAYBYEYMYFXBYFVNXCWDXDUUKVNZXERYJUUKXFWEXGX
      QXRYCUULPXTLBCUUKDEGHIUVCKXHXJXKYBYCYFXLXMYAYKYHUUJYKYBGYFWQYHYBGYFXNXOWE
      YBYCYFXPXM $.
  $}

  ${
    $d x A $.  $d x G $.  $d x K $.  $d x O $.  $d x X $.
    odhash.x $e |- X = ( Base ` G ) $.
    odhash.o $e |- O = ( od ` G ) $.
    odhash.k $e |- K = ( mrCls ` ( SubGrp ` G ) ) $.
    $( An element of zero order generates an infinite subgroup.  (Contributed
       by Stefan O'Rear, 12-Sep-2015.) $)
    odhash $p |- ( ( G e. Grp /\ A e. X /\ ( O ` A ) = 0 ) ->
        ( # ` ( K ` { A } ) ) = +oo ) $=
      ( vx wcel cfv wceq cpnf cz chash cvv cfn zex com cen cc0 w3a csn wn ominf
      cgrp wbr wb cn znnen nnenom entri enfi ax-mp mtbir hashinf mp2an cmg cmpt
      cv co wf1o eqid odf1o1 f1oen hasheni 3syl syl5reqr ) BUFJAEJADKUALUBZMNOK
      ZAUCCKZOKZNPJNQJZUDVJMLRVMSQJZUENSTUGVMVNUHNUISUJUKULNSUMUNUONPUPUQVINVKI
      NIUTABURKZVAUSZVBNVKTUGVJVLLIAVOBCDEFVOVCGHVDNVKVPRVENVKVFVGVH $.

    $( If an element has nonzero order, it generates a subgroup with size equal
       to the order.  (Contributed by Stefan O'Rear, 12-Sep-2015.) $)
    odhash2 $p |- ( ( G e. Grp /\ A e. X /\ ( O ` A ) e. NN ) ->
        ( # ` ( K ` { A } ) ) = ( O ` A ) ) $=
      ( vx cgrp wcel cfv cn w3a cc0 cfzo co chash csn wceq cv cmg cmpt wf1o cen
      wbr eqid odf1o2 ovex f1oen hasheni 3syl cn0 odcl 3ad2ant2 hashfzo0 eqtr3d
      syl ) BJKZAEKZADLZMKZNZOVAPQZRLZASCLZRLZVAVCVDVFIVDIUAABUBLZQUCZUDVDVFUEU
      FVEVGTIAVHBCDEFVHUGGHUHVDVFVIOVAPUIUJVDVFUKULVCVAUMKZVEVATUTUSVJVBABDEFGU
      NUOVAUPURUQ $.

    $( An element which generates a finite subgroup has order the size of that
       subgroup.  (Contributed by Stefan O'Rear, 12-Sep-2015.) $)
    odhash3 $p |- ( ( G e. Grp /\ A e. X /\ ( K ` { A } ) e. Fin ) ->
        ( O ` A ) = ( # ` ( K ` { A } ) ) ) $=
      ( cgrp wcel csn cfv cfn w3a chash cn wceq cc0 cr cpnf cn0 wne 3ad2ant2 wa
      odcl hashcl nn0red wn pnfnre neli odhash eleq1d mtbiri 3expia syl5 3impia
      necon2ad elnnne0 sylanbrc odhash2 syld3an3 eqcomd ) BIJZAEJZAKCLZMJZNZVEO
      LZADLZVCVDVFVIPJZVHVIQVGVIUAJZVIRUBZVJVDVCVKVFABDEFGUEUCVCVDVFVLVFVHSJZVC
      VDUDZVLVFVHVEUFUGVNVMVIRVCVDVIRQZVMUHVCVDVONZVMTSJTSUIUJVPVHTSABCDEFGHUKU
      LUMUNUQUOUPVIURUSABCDEFGHUTVAVB $.

    $d x y A $.  $d x y G $.  $d x y K $.  $d x y O $.  $d x y X $.
    $( A cyclic subgroup of size ` ( O `` A ) ` has ` ( phi `` ( O `` A ) ) `
       generators.  (Contributed by Stefan O'Rear, 12-Sep-2015.) $)
    odngen $p |- ( ( G e. Grp /\ A e. X /\ ( O ` A ) e. NN ) ->
        ( # ` { x e. ( K ` { A } ) | ( O ` x ) = ( O ` A ) } ) =
          ( phi ` ( O ` A ) ) ) $=
      ( vy wcel cfv cc0 co cv wceq crab chash eqid wf1o cgrp w3a cfzo cmpt ccnv
      cn cmg csn cima cphi mptpreima fveq2i wf1 odf1o2 f1ocnv f1of1 3syl ssrab2
      wss wa cen wbr fvex rabex f1imaen hasheni syl sylancl c1 wb simpl1 simpl2
      cz elfzoelz adantl cycsubg2cl syl3anc fveq2 eqeq1d elrab3 simpl3 odmulgeq
      cgcd syl31anc bitrd rabbidva fveq2d dfphi2 3ad2ant3 eqtr4d 3eqtr3a ) CUAK
      ZBFKZBELZUFKZUBZJMWNUCNZJOZBCUGLZNZUDZUEZAOZELZWNPZABUHZDLZQZUIZRLZWTXHKZ
      JWQQZRLZXHRLZWNUJLZXIXLRJWQWTXHXAXASUKULWPXGWQXBUMZXHXGUSZXJXNPZWPWQXGXAT
      XGWQXBTXPJBWSCDEFGWSSZHIUNWQXGXAUOXGWQXBUPUQXEAXGURXPXQUTXIXHVAVBXRXGWQXH
      XBXEAXGXFDVCVDVEXIXHVFVGVHWPXMWRWNWCNVIPZJWQQZRLZXOWPXLYARWPXKXTJWQWPWRWQ
      KZUTZXKWTELZWNPZXTYDWTXGKZXKYFVJYDWLWMWRVMKZYGWLWMWOYCVKZWLWMWOYCVLZYCYHW
      PWRMWNVNVOZBWSCDWRFGXSIVPVQXEYFAWTXGXCWTPXDYEWNXCWTEVRVSVTVGYDWLWMYHWOYFX
      TVJYIYJYKWLWMWOYCWABWSCWREFGHXSWBWDWEWFWGWOWLXOYBPWMJWNWHWIWJWK $.
  $}

  ${
    $d x y .0. $.  $d g i x y G $.  $d g i I $.  $d g i x y V $.  $d x y .x. $.
    $d x X $.
    gexval.1 $e |- X = ( Base ` G ) $.
    gexval.2 $e |- .x. = ( .g ` G ) $.
    gexval.3 $e |- .0. = ( 0g ` G ) $.
    gexval.4 $e |- E = ( gEx ` G ) $.
    gexval.i $e |- I = { y e. NN | A. x e. X ( y .x. x ) = .0. } $.
    $( Value of the exponent of a group.  (Contributed by Mario Carneiro,
       23-Apr-2016.)  (Revised by AV, 26-Sep-2020.) $)
    gexval $p |- ( G e. V -> E = if ( I = (/) , 0 , inf ( I , RR , < ) ) ) $=
      ( vg vi cfv wceq cc0 cvv wcel cgex c0 cr clt cinf cif cv cmg c0g cbs wral
      co cn crab csb cmpt df-gex a1i wa nnex rabex simpr fveq2d syl6eqr eqeq12d
      oveqd raleqbidv rabbidv eqeq2d biimpa eqeq1d infeq1d ifbieq2d csbied elex
      c0ex ltso infex ifex fvmptd syl5eq ) EGUAZDEUBQFUCRZSFUDUEUFZUGZMWCOEPBUH
      ZAUHZOUHZUIQZUMZWIUJQZRZAWIUKQZULZBUNUOZPUHZUCRZSWQUDUEUFZUGZUPZWFTUBTUBO
      TXAUQRWCAOPBURUSWCWIERZUTZPWPWTWFTWPTUAXCWOBUNVAVBUSXCWQWPRZUTZWRWDWSWESX
      EWQFUCXCXDWQFRXCWPFWQXCWPWGWHCUMZIRZAHULZBUNUOFXCWOXHBUNXCWMXGAWNHXCWNEUK
      QHXCWIEUKWCXBVCZVDJVEXCWKXFWLIXCWJCWGWHXCWJEUIQCXCWIEUIXIVDKVEVGXCWLEUJQI
      XCWIEUJXIVDLVEVFVHVINVEVJVKZVLXEUDWQFUEXJVMVNVOEGVPWFTUAWCWDSWEVQUDFUEVRV
      SVTUSWAWB $.

    $( The group element order is either zero or a nonzero multiplier that
       annihilates the element.  (Contributed by Mario Carneiro, 23-Apr-2016.)
       (Proof shortened by AV, 26-Sep-2020.) $)
    gexlem1 $p |- ( G e. V -> ( ( E = 0 /\ I = (/) ) \/ E e. I ) ) $=
      ( wcel c0 wceq cc0 wi cn cr clt cinf cif wa wo gexval eqeq2 imbi1d expcom
      orc adantl wn c1 cuz cfv wss wne cv co wral crab ssrab2 nnuz eqcomi df-ne
      3sstr4i biimpri infssuzcl sylancr eleq1a syl olc syl6 ifbothda mpd ) EGOZ
      DFPQZRFUAUBUCZUDZQZDRQZVRUEZDFOZUFZABCDEFGHIJKLMNUGVRWBWESZDVSQZWESWAWESV
      QRVSRVTQWBWAWERVTDUHUIVSVTQWGWAWEVSVTDUHUIVRWFVQWBVRWEWCWDUKUJULVQVRUMZUE
      ZWGWDWEWIVSFOZWGWDSWIFUNUOUPZUQFPURZWJBUSAUSCUTIQAHVAZBTVBTFWKWMBTVCNTWKV
      DVEVGWHWLVQWLWHFPVFVHULFUNVIVJVSFDVKVLWDWCVMVNVOVP $.
  $}

  ${
    $d x A $.  $d x y E $.  $d x y G $.  $d x y N $.  $d x y V $.  $d x y X $.
    $d x y .0. $.  $d x y .x. $.
    gexcl.1 $e |- X = ( Base ` G ) $.
    gexcl.2 $e |- E = ( gEx ` G ) $.
    $( The exponent of a group is a nonnegative integer.  (Contributed by Mario
       Carneiro, 23-Apr-2016.) $)
    gexcl $p |- ( G e. V -> E e. NN0 ) $=
      ( vy vx wcel cn cc0 wceq wo cn0 cv cmg cfv co c0g eqid wral c0 wa gexlem1
      crab simpl elrabi orim12i syl orcomd elnn0 sylibr ) BCIZAJIZAKLZMANIUMUOU
      NUMUOGOHOBPQZRBSQZLHDUAZGJUEZUBLZUCZAUSIZMUOUNMHGUPABUSCDUQEUPTUQTFUSTUDV
      AUOVBUNUOUTUFURGAJUGUHUIUJAUKUL $.

    gexid.3 $e |- .x. = ( .g ` G ) $.
    gexid.4 $e |- .0. = ( 0g ` G ) $.
    $( Any element to the power of the group exponent.  (Contributed by Mario
       Carneiro, 24-Apr-2016.) $)
    gexid $p |- ( A e. X -> ( E .x. A ) = .0. ) $=
      ( vy vx wcel cc0 wceq cv co wral cn oveq1 crab c0 mulg0 sylan9eqr adantrr
      wa eqeq1d ralbidv elrab simprbi oveq2 rspcva sylan2 cvv wo cbs cfv elfvex
      eleq2s eqid gexlem1 syl mpjaodan ) AEMZCNOZKPZLPZBQZFOZLERZKSUAZUBOZUFZCA
      BQZFOZCVKMZVDVEVOVLVEVDVNNABQFCNABTEBDAFGJIUCUDUEVPVDCVGBQZFOZLERZVOVPCSM
      VSVJVSKCSVFCOZVIVRLEVTVHVQFVFCVGBTUGUHUIUJVRVOLAEVGAOVQVNFVGACBUKUGULUMVD
      DUNMZVMVPUOWAADUPUQEADUPURGUSLKBCDVKUNEFGIJHVKUTVAVBVC $.

    $( Any positive annihilator of all the group elements is an upper bound on
       the group exponent.  (Contributed by Mario Carneiro, 24-Apr-2016.)
       (Proof shortened by AV, 26-Sep-2020.) $)
    gexlem2 $p |- ( ( G e. V /\ N e. NN /\ A. x e. X ( N .x. x ) = .0. ) ->
        E e. ( 1 ... N ) ) $=
      ( vy wcel cn co wceq c1 wa c0 cv wral cfz crab oveq1 eqeq1d ralbidv elrab
      cr clt cinf cc0 cif eqid gexval wne ifnefalse syl sylan9eq cle wbr ssrab2
      ne0i cuz cfv nnuz sseqtri adantl infssuzcl sylancr sseldi infssuzle wb cz
      wss mpan elrabi nnzd fznn mpbir2and eqeltrd sylan2br 3impb ) DFNZEONZEAUA
      ZBPZHQZAGUBZCREUCPZNZWEWISWDEMUAZWFBPZHQZAGUBZMOUDZNZWKWOWIMEOWLEQZWNWHAG
      WRWMWGHWLEWFBUEUFUGUHWDWQSZCWPUIUJUKZWJWDWQCWPTQULWTUMZWTAMBCDWPFGHIKLJWP
      UNUOWQWPTUPZXAWTQWPEVCZWPTULWTUQURUSWSWTWJNZWTONZWTEUTVAZWSWPOWTWOMOVBZWS
      WPRVDVEZVOZXBWTWPNWPOXHXGVFVGZWQXBWDXCVHWPRVIVJVKWQXFWDXIWQXFXJEWPRVLVPVH
      WQXDXEXFSVMZWDWQEVNNXKWQEWOMEOVQVRWTEVSURVHVTWAWBWC $.

    $( Any group element is annihilated by any multiple of the group exponent.
       (Contributed by Mario Carneiro, 24-Apr-2016.) $)
    gexdvdsi $p |- ( ( G e. Grp /\ A e. X /\ E || N ) ->
      ( N .x. A ) = .0. ) $=
      ( vx cgrp wcel cdvds wbr co wceq cz wa w3a cv cmul simp3 dvdszrcl divides
      wrex biadan2 sylib simprd simpl1 simpr simplld adantr simpl2 syl13anc syl
      mulgass gexid oveq2d mulgz 3ad2antl1 3eqtrd oveq1 syl5ibcom rexlimdva mpd
      eqeq1d ) DMNZAFNZCEOPZUAZLUBZCUCQZERZLSUGZEABQZGRZVLCSNZESNZTZVPVLVKWAVPT
      VIVJVKUDVKWAVPCEUELCEUFUHUIZUJVLVOVRLSVLVMSNZTZVNABQZGRVOVRWDWEVMCABQZBQZ
      VMGBQZGWDVIWCVSVJWEWGRVIVJVKWCUKVLWCULVLVSWCVLVSVTVPWBUMUNVIVJVKWCUOZFBDV
      MCAHJURUPWDWFGVMBWDVJWFGRWIABCDFGHIJKUSUQUTVIVJWCWHGRVKFBDVMGHJKVAVBVCVOW
      EVQGVNEABVDVHVEVFVG $.

    $( The only ` N ` that annihilate all the elements of the group are the
       multiples of the group exponent.  (Contributed by Mario Carneiro,
       24-Apr-2016.) $)
    gexdvds $p |- ( ( G e. Grp /\ N e. ZZ ) ->
      ( E || N <-> A. x e. X ( N .x. x ) = .0. ) ) $=
      ( vy wcel wa co wceq adantr cc0 cn cfv cgrp cz cdvds wbr cv wral gexdvdsi
      wi 3expia ralrimdva crab c0 cabs wn noel oveq1 eqeq1d elrab simprr eleq2d
      ralbidv syl5rbbr rbaibd mtbii ex cn0 wo nn0abscl ad2antlr elnn0 sylib ord
      syld wb cneg simpr oveq1d cminusg mulgneg 3expa grpinvid ad2antrr eqeq12d
      eqcomd simpll mulgcl grpidcl grpinv11 bitrd sylan9bbr zre absord mpjaodan
      eqid ralbidva 0dvds simprl breq1d zcn abs00ad 3bitr4rd 3imtr3d elrabi cmo
      cr cc cdiv cfl cmul cmin csg crp adantl modval syl2an simplll simpllr nnz
      nnrp rerpdivcl flcld zmulcld mulgsubdir syl13anc dvdsmul1 syl2anc syl3anc
      oveq12d grpsubid eqtrd 3eqtrd expr ralimdva cle clt zmodcl adantll nn0red
      modlt c1 nnre mpbid w3a cfz gexlem2 elfzle2 syl impancom con3d mpid 3syld
      ltnled simplr dvdsval3 sylibrd sylan2 gexlem1 impbid ) DUAMZEUBMZNZCEUCUD
      ZEAUEZBOZGPZAFUFZUUSUVBUVFUHUUTUUSUVBUVEAFUUSUVCFMZUVBUVEUVCBCDEFGHIJKUGU
      IUJQUVACRPZLUEZUVCBOZGPZAFUFZLSUKZULPZNZUVFUVBUHZCUVMMZUVAUVONZEUMTZUVCBO
      ZGPZAFUFZUVSRPZUVFUVBUVRUWBUVSSMZUNZUWCUVRUWBUWEUVRUWBNUVSULMZUWDUVSUOUVR
      UWFUWDUWBUWDUWBNUVSUVMMUVRUWFUVLUWBLUVSSUVIUVSPZUVKUWAAFUWGUVJUVTGUVIUVSU
      VCBUPUQVAURUVRUVMULUVSUVAUVHUVNUSUTVBVCVDVEUVRUWDUWCUVRUVSVFMZUWDUWCVGUUT
      UWHUUSUVOEVHVIUVSVJVKVLVMUVAUWBUVFVNUVOUVAUWAUVEAFUVAUVGNZUVSEPZUWAUVEVNU
      VSEVOZPZUWIUWJNZUVTUVDGUWMUVSEUVCBUWIUWJVPVQUQUWLUWAUWKUVCBOZGPZUWIUVEUWL
      UVTUWNGUVSUWKUVCBUPUQUWIUWOUVDDVRTZTZGUWPTZPUVEUWIUWNUWQGUWRUUSUUTUVGUWNU
      WQPFBDUWPEUVCHJUWPWNZVSVTUWIUWRGUUSUWRGPUUTUVGDUWPGKUWSWAWBWDWCUWIFDUWPUV
      DGHUWSUUSUUTUVGWEUUSUUTUVGUVDFMFBDEUVCHJWFVTUUSGFMZUUTUVGFDGHKWGZWBWHWIWJ
      UWIEUUTEXEMZUUSUVGEWKZVIWLWMWOQUVRREUCUDZERPZUVBUWCUUTUXDUXEVNUUSUVOEWPVI
      UVRCREUCUVAUVHUVNWQWRUVREUUTEXFMUUSUVOEWSVIWTXAXBUVQUVACSMZUVPUVLLCSXCUVA
      UXFNZUVFECXDOZRPZUVBUXGUVFUXHUVCBOZGPZAFUFZUXHSMZUNZUXIUXGUVEUXKAFUXGUVGU
      VEUXKUXGUVGUVENZNZUXJECECXGOZXHTZXIOZXJOZUVCBOZUVDUXSUVCBOZDXKTZOZGUXPUXH
      UXTUVCBUXGUXHUXTPZUXOUVAUXBCXLMZUYEUXFUUTUXBUUSUXCXMZCXSZECXNXOQVQUXPUUSU
      UTUXSUBMUVGUYAUYDPUUSUUTUXFUXOXPZUUSUUTUXFUXOXQUXPCUXRUXFCUBMZUVAUXOCXRVI
      ZUXGUXRUBMZUXOUXGUXQUVAUXBUYFUXQXEMUXFUYGUYHECXTXOYAQZYBUXGUVGUVEWQZFBDEU
      YCUXSUVCHJUYCWNZYCYDUXPUYDGGUYCOZGUXPUVDGUYBGUYCUXGUVGUVEUSUXPUUSUVGCUXSU
      CUDZUYBGPUYIUYNUXPUYJUYLUYQUYKUYMCUXRYEYFUVCBCDUXSFGHIJKUGYGYHUXGUYPGPZUX
      OUXGUUSUWTUYRUUSUUTUXFWEUUSUWTUUTUXFUXAWBFDUYCGGHKUYOYIYFQYJYKYLYMUXGUXLC
      UXHYNUDZUNZUXNUXGUXHCYOUDZUYTUVAUXBUYFVUAUXFUYGUYHECYSXOUXGUXHCUXGUXHUUTU
      XFUXHVFMZUUSECYPYQZYRUXFCXEMUVACUUAXMUULUUBUUSUXLUYTUXNUHZUHUUTUXFUUSUXLV
      UDUUSUXLNUXMUYSUUSUXMUXLUYSUUSUXMUXLUYSUUSUXMUXLUUCCYTUXHUUDOMUYSABCDUXHU
      AFGHIJKUUECYTUXHUUFUUGUIUUHUUIVEWBUUJUXGUXMUXIUXGVUBUXMUXIVGVUCUXHVJVKVLU
      UKUXGUXFUUTUVBUXIVNUVAUXFVPUUSUUTUXFUUMCEUUNYFUUOUUPUUSUVOUVQVGUUTALBCDUV
      MUAFGHJKIUVMWNUUQQWMUUR $.
  $}

  ${
    $d x E $.  $d x G $.  $d x N $.  $d x X $.
    gexod.1 $e |- X = ( Base ` G ) $.
    gexod.2 $e |- E = ( gEx ` G ) $.
    gexod.3 $e |- O = ( od ` G ) $.
    $( An integer divides the group exponent iff it divides all the group
       orders.  In other words, the group exponent is the LCM of the orders of
       all the elements.  (Contributed by Mario Carneiro, 24-Apr-2016.) $)
    gexdvds2 $p |- ( ( G e. Grp /\ N e. ZZ ) ->
      ( E || N <-> A. x e. X ( O ` x ) || N ) ) $=
      ( cgrp wcel cz wa cdvds wbr cv cmg cfv wral eqid co c0g gexdvds wb oddvds
      wceq 3expa an32s ralbidva bitr4d ) CJKZDLKZMZBDNODAPZCQRZUACUBRZUFZAFSUNE
      RDNOZAFSAUOBCDFUPGHUOTZUPTZUCUMURUQAFUKUNFKZULURUQUDZUKVAULVBUNUOCDEFUPGI
      USUTUEUGUHUIUJ $.

    $( Any group element is annihilated by any multiple of the group exponent.
       (Contributed by Mario Carneiro, 24-Apr-2016.) $)
    gexod $p |- ( ( G e. Grp /\ A e. X ) -> ( O ` A ) || E ) $=
      ( cgrp wcel wa cfv cdvds wbr cmg co c0g wceq eqid gexid adantl cn0 adantr
      cz wb gexcl nn0zd oddvds mpd3an3 mpbird ) CIJZAEJZKZADLBMNZBACOLZPCQLZRZU
      LUQUKAUOBCEUPFGUOSZUPSZTUAUKULBUDJUNUQUEUMBUKBUBJULBCIEFGUFUCUGAUOCBDEUPF
      HURUSUHUIUJ $.

    $( If the order of every group element is bounded by ` N ` , the group has
       finite exponent.  (Contributed by Mario Carneiro, 24-Apr-2016.) $)
    gexcl3 $p |- ( ( G e. Grp /\
      A. x e. X ( O ` x ) e. ( 1 ... N ) ) -> E e. NN ) $=
      ( cgrp wcel cfv c1 cfz co wral wa cn cuz syl cv cfa cmg c0g wceq cn0 wrex
      simpl c0 wne grpbn0 r19.2z sylan elfzuz2 syl6eleqr rexlimivw nnnn0d faccl
      cdvds wbr elfzuzb elnnuz dvdsfac sylanbr sylbi adantl cz wb simpll simplr
      nnuz nnzd eqid oddvds syl3anc mpbid ex ralimdva imp gexlem2 elfznn ) CJKZ
      AUAZELZMDNOKZAFPZQZBMDUBLZNOKZBRKWGWBWHRKZWHWCCUCLZOCUDLZUEZAFPZWIWBWFUHW
      GDUFKZWJWGDWGWEAFUGZDRKZWBFUIUJWFWPFCGUKWEAFULUMWEWQAFWEDMSLZRWDMDUNVKUOZ
      UPTUQDURZTWBWFWNWBWEWMAFWBWCFKZQZWEWMXBWEQZWDWHUSUTZWMWEXDXBWEWDWRKZDWDSL
      KZQXDWDMDVAXEWDRKXFXDWDVBWDDVCVDVEVFXCWBXAWHVGKXDWMVHWBXAWEVIWBXAWEVJXCWH
      XCWOWJXCDWEWQXBWSVFUQWTTVLWCWKCWHEFWLGIWKVMZWLVMZVNVOVPVQVRVSAWKBCWHJFWLG
      HXGXHVTVOBWHWAT $.

    $( Every group element has finite order if the exponent is finite.
       (Contributed by Mario Carneiro, 24-Apr-2016.) $)
    gexnnod $p |- ( ( G e. Grp /\ E e. NN /\ A e. X ) -> ( O ` A ) e. NN ) $=
      ( cgrp wcel cn w3a cfv cc0 wceq cdvds wbr wn wne 3ad2ant2 nnne0 cz wb nnz
      0dvds syl necon3bbid mpbird gexod 3adant2 breq1 syl5ibcom cn0 wo 3ad2ant3
      mtod odcl elnn0 sylib ord mt3d ) CIJZBKJZAEJZLZADMZKJZVFNOZVEVHNBPQZVEVIR
      BNSZVCVBVJVDBUATVEVIBNVEBUBJZVIBNOUCVCVBVKVDBUDTBUEUFUGUHVEVFBPQZVHVIVBVD
      VLVCABCDEFGHUIUJVFNBPUKULUPVEVGVHVEVFUMJZVGVHUNVDVBVMVCACDEFHUQUOVFURUSUT
      VA $.
  $}

  ${
    $d x E $.  $d x G $.  $d x X $.
    gexcl2.1 $e |- X = ( Base ` G ) $.
    gexcl2.2 $e |- E = ( gEx ` G ) $.
    $( The exponent of a finite group is finite.  (Contributed by Mario
       Carneiro, 24-Apr-2016.) $)
    gexcl2 $p |- ( ( G e. Grp /\ X e. Fin ) -> E e. NN ) $=
      ( vx cgrp wcel cfn cv cod cfv c1 chash cn wa wbr cz nnzd wb cfz wral eqid
      co w3a odcl2 cdvds oddvds2 wi c0 grpbn0 3ad2ant1 hashnncl 3ad2ant2 mpbird
      cle wne dvdsle syl2anc mpd fznn mpbir2and 3expa ralrimiva gexcl3 syldan
      syl ) BGHZCIHZFJZBKLZLZMCNLZUAUDHZFCUBAOHVHVIPVNFCVHVIVJCHZVNVHVIVOUEZVNV
      LOHZVLVMUPQZVJBVKCDVKUCZUFZVPVLVMUGQZVRVJBVKCDVSUHVPVLRHVMOHZWAVRUIVPVLVT
      SVPWBCUJUQZVHVIWCVOCBDUKULVIVHWBWCTVOCUMUNUOZVLVMURUSUTVPVMRHVNVQVRPTVPVM
      WDSVLVMVAVGVBVCVDFABVMVKCDEVSVEVF $.

    $( The exponent of a finite group divides the order (cardinality) of the
       group.  Corollary of Lagrange's theorem for the order of a subgroup.
       (Contributed by Mario Carneiro, 24-Apr-2016.) $)
    gexdvds3 $p |- ( ( G e. Grp /\ X e. Fin ) -> E || ( # ` X ) ) $=
      ( vx cgrp wcel cfn wa chash cfv cdvds wbr cv cod wral eqid oddvds2 3expa
      ralrimiva cz wb cn0 hashcl adantl nn0zd gexdvds2 syldan mpbird ) BGHZCIHZ
      JZACKLZMNZFOZBPLZLUNMNZFCQZUMURFCUKULUPCHURUPBUQCDUQRZSTUAUKULUNUBHUOUSUC
      UMUNULUNUDHUKCUEUFUGFABUNUQCDEUTUHUIUJ $.

    $( A group or monoid has exponent 1 iff it is trivial.  (Contributed by
       Mario Carneiro, 24-Apr-2016.) $)
    gex1 $p |- ( G e. Mnd -> ( E = 1 <-> X ~~ 1o ) ) $=
      ( vx cmnd wcel c1 wceq c1o cen wbr wa c0g cfv csn co eqid adantl cv gexid
      cmg simplr oveq1d mulg1 3eqtr3rd velsn sylibr ex ssrdv adantr snssd eqssd
      mndidcl fvex ensn1 syl6eqbr cfz cn wral simpl 1nn a1i sylan eleq2d biimpa
      en1eqsn sylib eqtrd ralrimiva gexlem2 syl3anc elfz1eq syl impbida ) BGHZA
      IJZCKLMZVQVRNZCBOPZQZKLVTCWBVTFCWBVTFUAZCHZWCWBHZVTWDNZWCWAJZWEWFAWCBUCPZ
      RZIWCWHRZWAWCWFAIWCWHVQVRWDUDUEWDWIWAJVTWCWHABCWADEWHSZWASZUBTWDWJWCJZVTC
      WHBWCDWKUFZTUGFWAUHZUIUJUKVTWACVQWACHZVRCBWADWLUOZULUMUNWABOUPUQURVQVSNZA
      IIUSRHZVRWRVQIUTHZWJWAJZFCVAWSVQVSVBWTWRVCVDWRXAFCWRWDNZWJWCWAWDWMWRWNTXB
      WEWGWRWDWEWRCWBWCVQWPVSCWBJWQWACVHVEVFVGWOVIVJVKFWHABIGCWADEWKWLVLVMAIVNV
      OVP $.
  $}

  ${
    $d g n p x G $.  $d g p O $.  $d g n p x P $.  $d g p x X $.
    ispgp.1 $e |- X = ( Base ` G ) $.
    ispgp.2 $e |- O = ( od ` G ) $.
    $( A group is a ` P ` -group if every element has some power of ` P ` as
       its order.  (Contributed by Mario Carneiro, 15-Jan-2015.) $)
    ispgp $p |- ( P pGrp G <-> ( P e. Prime /\ G e. Grp /\
      A. x e. X E. n e. NN0 ( O ` x ) = ( P ^ n ) ) ) $=
      ( vg vp cpgp cprime wa cv cfv cexp wceq cn0 cod cbs wbr wcel cgrp co wrex
      simpr fveq2d syl6eqr fveq1d simpl oveq1d eqeq12d rexbidv raleqbidv df-pgp
      wral w3a brab2a df-3an bitr4i ) BDKUABLUBZDUCUBZMANZEOZBCNZPUDZQZCRUEZAFU
      PZMVAVBVIUQVCINZSOZOZJNZVEPUDZQZCRUEZAVJTOZUPVIJIBDLUCKVMBQZVJDQZMZVPVHAV
      QFVTVQDTOFVTVJDTVRVSUFZUGGUHVTVOVGCRVTVLVDVNVFVTVCVKEVTVKDSOEVTVJDSWAUGHU
      HUIVTVMBVEPVRVSUJUKULUMUNAICJUOURVAVBVIUSUT $.
  $}

  ${
    $d n x G $.  $d n x N $.  $d n x P $.  $d x X $.
    $( Reverse closure for the first argument of ` pGrp ` .  (Contributed by
       Mario Carneiro, 15-Jan-2015.) $)
    pgpprm $p |- ( P pGrp G -> P e. Prime ) $=
      ( vx vn cpgp wbr cprime wcel cgrp cv cod cfv cexp wceq cn0 wrex wral eqid
      co cbs ispgp simp1bi ) ABEFAGHBIHCJBKLZLADJMSNDOPCBTLZQCADBUCUDUDRUCRUAUB
      $.

    $( Reverse closure for the second argument of ` pGrp ` .  (Contributed by
       Mario Carneiro, 15-Jan-2015.) $)
    pgpgrp $p |- ( P pGrp G -> G e. Grp ) $=
      ( vx vn cpgp wbr cprime wcel cgrp cv cod cfv cexp wceq cn0 wrex wral eqid
      co cbs ispgp simp2bi ) ABEFAGHBIHCJBKLZLADJMSNDOPCBTLZQCADBUCUDUDRUCRUAUB
      $.

    pgpfi1.1 $e |- X = ( Base ` G ) $.
    $( A finite group with order a power of a prime ` P ` is a ` P ` -group.
       (Contributed by Mario Carneiro, 16-Jan-2015.) $)
    pgpfi1 $p |- ( ( G e. Grp /\ P e. Prime /\ N e. NN0 ) ->
      ( ( # ` X ) = ( P ^ N ) -> P pGrp G ) ) $=
      ( vx vn wcel cn0 cfv cexp co wceq wbr wa cv wrex cdvds adantr cvv w3a cod
      cgrp cprime chash cpgp wral simpl2 simpl1 simpll3 cfn simplr cn prmnn syl
      nnexpcld nnnn0d eqeltrd wb cbs eqeltri hashclb ax-mp sylibr simpr oddvds2
      fvex eqid syl3anc breqtrd oveq2 breq2d syl2anc odcl2 cpc pcprmpw2 pcprmpw
      rspcev bitr4d mpbid ralrimiva ispgp syl3anbrc ex ) BUCHZAUDHZCIHZUAZDUEJZ
      ACKLZMZABUFNZWHWKOZWFWEFPZBUBJZJZAGPZKLZMGIQZFDUGWLWEWFWGWKUHZWEWFWGWKUIZ
      WMWSFDWMWNDHZOZWPWRRNZGIQZWSXCWGWPWJRNZXEWEWFWGWKXBUJZXCWPWIWJRXCWEDUKHZX
      BWPWIRNWMWEXBXASZXCWIIHZXHXCWIWJIWHWKXBULZXCWJXCACXCWFAUMHWMWFXBWTSZAUNUO
      XGUPUQURDTHXHXJUSDBUTJTEBUTVGVADTVBVCVDZWMXBVEZWNBWODEWOVHZVFVIXKVJXDXFGC
      IWQCMWRWJWPRWQCAKVKVLVRVMXCWFWPUMHZXEWSUSXLXCWEXHXBXPXIXMXNWNBWODEXOVNVIW
      FXPOXEWPAAWPVOLKLMWSWPAGVPWPAGVQVSVMVTWAFAGBWODEXOWBWCWD $.
  $}

  ${
    pgp0.1 $e |- .0. = ( 0g ` G ) $.
    $( The identity subgroup is a ` P ` -group for every prime ` P ` .
       (Contributed by Mario Carneiro, 19-Jan-2015.) $)
    pgp0 $p |- ( ( G e. Grp /\ P e. Prime ) -> P pGrp ( G |`s { .0. } ) ) $=
      ( cgrp wcel cprime wa csn cress co cfv chash cc0 wceq c1 cvv c0g eqid syl
      cbs cexp cpgp wbr cn prmnn adantl nncnd exp0d eqeltri hashsng ax-mp csubg
      fvex 0subg adantr subgbas fveq2d syl5eqr eqtr2d cn0 wi subggrp simpr 0nn0
      a1i pgpfi1 syl3anc mpd ) BEFZAGFZHZBCIZJKZUALZMLZANUBKZOZAVNUCUDZVLVQPVPV
      LAVLAVKAUEFVJAUFUGUHUIVLPVMMLZVPCQFVTPOCBRLQDBRUNUJCQUKULVLVMVOMVLVMBUMLF
      ZVMVOOVJWAVKBCDUOUPZVMBVNVNSZUQTURUSUTVLVNEFZVKNVAFZVRVSVBVLWAWDWBVMBVNWC
      VCTVJVKVDWEVLVEVFAVNNVOVOSVGVHVI $.
  $}

  ${
    $d n x G $.  $d n x P $.  $d n x S $.
    $( A subgroup of a p-group is a p-group.  (Contributed by Mario Carneiro,
       27-Apr-2016.) $)
    subgpgp $p |- ( ( P pGrp G /\ S e. ( SubGrp ` G ) ) ->
      P pGrp ( G |`s S ) ) $=
      ( vx vn cpgp wbr cfv wcel wa co cgrp cod wceq cn0 wrex wral eqid adantl
      cv csubg cprime cress cexp cbs pgpprm adantr subggrp ispgp simp3bi wss wi
      subgss ssralv syl subgod adantll eqeq1d rexbidv ralbidva sylibd mpd mpbid
      subgbas raleqdv syl3anbrc ) ACFGZBCUAHIZJZAUBIZCBUCKZLIZDTZVKMHZHZAETUDKZ
      NZEOPZDVKUEHZQZAVKFGVGVJVHACUFUGVHVLVGBCVKVKRZUHSVIVRDBQZVTVIVMCMHZHZVPNZ
      EOPZDCUEHZQZWBVGWHVHVGVJCLIWHDAECWCWGWGRZWCRZUIUJUGVIWHWFDBQZWBVIBWGUKZWH
      WKULVHWLVGWGBCWIUMSWFDBWGUNUOVIWFVRDBVIVMBIZJZWEVQEOWNWDVOVPVHWMWDVONVGVM
      VNCVKWCBWAWJVNRZUPUQURUSUTVAVBVIVRDBVSVHBVSNVGBCVKWAVDSVEVCDAEVKVNVSVSRWO
      UIVF $.
  $}

  ${
    $d a b c g s u x y z B $.  $d a b c g h x y H $.  $d a b c g u w x y z S $.
    $d a b g h k n s t u v w x y z N $.  $d a b c g h k n s t u v w x y z X $.
    $d b c s u v w x y z .+ $.  $d a w z .~ $.  $d a b c g u w x y z .(+) $.
    $d a b c g h k s t u v x y z G $.  $d a b g h k n s t u v w x y z P $.
    $d a b c n t u x y z ph $.
    sylow1.x $e |- X = ( Base ` G ) $.
    sylow1.g $e |- ( ph -> G e. Grp ) $.
    sylow1.f $e |- ( ph -> X e. Fin ) $.
    sylow1.p $e |- ( ph -> P e. Prime ) $.
    sylow1.n $e |- ( ph -> N e. NN0 ) $.
    sylow1.d $e |- ( ph -> ( P ^ N ) || ( # ` X ) ) $.
    ${
      sylow1lem.a $e |- .+ = ( +g ` G ) $.
      sylow1lem.s $e |- S = { s e. ~P X | ( # ` s ) = ( P ^ N ) } $.
      $( Lemma for ~ sylow1 .  The p-adic valuation of the size of ` S ` is
         equal to the number of excess powers of ` P ` in
         ` ( # `` X ) / ( P ^ N ) ` .  (Contributed by Mario Carneiro,
         15-Jan-2015.) $)
      sylow1lem1 $p |- ( ph -> ( ( # ` S ) e. NN /\
        ( P pCnt ( # ` S ) ) = ( ( P pCnt ( # ` X ) ) - N ) ) ) $=
        ( wcel cpc co cc0 vx vn chash cfv cn cmin wceq cexp cbc cv cpw crab cfn
        cz cprime prmnn syl nnexpcld nnzd hashbc syl2anc fveq2i syl6eqr cfz cle
        wbr cdvds wi wn c0 wne cgrp grpbn0 hasheq0 necon3bbid mpbird cn0 hashcl
        wb elnn0 sylib ord mt3d dvdsle mpd cuz nn0uz syl6eleq nn0zd elfz5 bccl2
        wo c1 cdiv cmul caddc mpbid bcp1nk cc nn0cnd ax-1cn npcan sylancl nncnd
        oveq12d oveq2d 3eqtr3d nnne0d syl3anc syl122anc 1cnd oveq1d nnred breq1
        clt bcxmaslem1 eqeq1d imbi12d imbi2d eqtrd ad2antrl nn0p1nn adantr expr
        wa cr eqtr3d nnq crp nnrp pcdiv syl121anc simpr ad2antrr nn0red pcdvdsb
        cq pccld lenltd a2d nnnn0d eqeltrrd nnuz 1zzd fzsubel syl22anc dvdsval2
        1m1e0 oveq1i divne0d pcmul npncand ltm1d nnm1nn0 0nn0 nn0addcl bcn0 pc1
        znn0sub nn0re ltp1d simprr lttrd imim1d oveq1 nn0cn nn0addge2 nn0addcld
        a1d addassd simprl peano2zd rpdivcl syl2an rpne0d pcqmul addcomd eqtr2d
        znq addid1d zq neneqd sylbid 3imtr3d dvdssubr ltletrd pcadd2 pm2.61dane
        mt4d eqtr4d eqeltrd subeq0bd 00id syl6req eqeq12d syl5ibr expcom nn0ind
        syld mpcom pcid zsubcld zcnd addid2d 3eqtrd jca ) ADUCUDZUEQBUXGRSZBGUC
[encoded data, 4480 characters]
        IWWAUXBUXCUXDUXEXGUXF $.

      sylow1lem.m $e |- .(+) = ( x e. X , y e. S |->
        ran ( z e. y |-> ( x .+ z ) ) ) $.
      $( Lemma for ~ sylow1 .  The function ` .(+) ` is a group action on
         ` S ` .  (Contributed by Mario Carneiro, 15-Jan-2015.) $)
      sylow1lem2 $p |- ( ph -> .(+) e. ( G GrpAct S ) ) $=
        ( va vb vc vw vu vv cgrp wcel cvv wa cxp wf c0g cfv cv co wceq wral cga
        chash cexp cpw cbs fvex eqeltri pwex rabex2 jctir cmpt crn wss wf1 cres
        wf1o simprl eqid grplmulf1o syl2an2r f1of1 syl simprr weq eqeq1d elrab2
        fveq2 sylib simpld elpwid f1ssres syl2anc wb resmpt f1eq1 mpbid f1f frn
        3syl elpw2 sylibr cen wbr f1f1orn vex f1oen hashen mpbird simprd eqtr3d
        cfn ssfi sylanbrc ralrimivva fmpt2 adantr grpidcl simpr simpl mpteq12dv
        oveq1d rneqd mptex rnex ovmpt2a cid ssrab2 eqsstri sseldi sselda grplid
        crab syl6eq wrex cab ovex oveq2 rnmpt abbidv ad2antrr jca eqtrd abrexco
        mptresid rnresi rexeqdv adantlr grpass syl13anc eqeq2d rexbidva 3eqtr4a
        mpteq2dva 3eqtr4g fovrnd cbvmptv grpcl syl3anc 3eqtr4rd ralrimiva isga
        ) AIUHUIZHUJUIZUKKHULHGUMZIUNUOZUBUPZGUQZUVEURZUCUPZUDUPZFUQZUVEGUQZUVH
        UVIUVEGUQZGUQZURZUDKUSUCKUSZUKZUBHUSZUKGIHUTUQUIAUVAUVBNLUPZVAUOZEJVBUQ
        ZURZLKVCZHTKKIVDUOUJMIVDVEVFZVGVHVIAUVCUVQADCUPZBUPZDUPZFUQZVJZVKZHUIZC
        HUSBKUSUVCAUWJBCKHAUWEKUIZUWDHUIZUKZUKZUWIUWBUIZUWIVAUOZUVTURZUWJUWNUWI
        KVLZUWOUWNUWDKUWHVMZUWDKUWHUMUWRUWNUWDKDKUWGVJZUWDVNZVMZUWSUWNKKUWTVMZU
        WDKVLZUXBUWNKKUWTVOZUXCAUVAUWMUWKUXENAUWKUWLVPDKFUWTIUWEMSUWTVQVRVSKKUW
        TVTWAUWNUWDKUWNUWDUWBUIZUWDVAUOZUVTURZUWNUWLUXFUXHUKAUWKUWLWBUWAUXHLUWD
        UWBHLCWCUVSUXGUVTUVRUWDVAWFWDTWEWGZWHWIZKKUWDUWTWJWKUWNUXDUXAUWHURUXBUW
        SWLUXJDKUWDUWGWMUWDKUXAUWHWNWRWOZUWDKUWHWPUWDKUWHWQWRZUWIKUWCWSWTUWNUXG
        UWPUVTUWNUXGUWPURZUWDUWIXAXBZUWNUWSUWDUWIUWHVOUXNUXKUWDKUWHXCUWDUWIUWHC
        XDXEWRUWNUWDXJUIZUWIXJUIZUXMUXNWLAKXJUIZUWMUXDUXOOUXJKUWDXKVSAUXQUWMUWR
        UXPOUXLKUWIXKVSUWDUWIXFWKXGUWNUXFUXHUXIXHXIUWAUWQLUWIUWBHUVRUWIURUVSUWP
        UVTUVRUWIVAWFWDTWEXLXMBCKHUWIHGUAXNWGZAUVPUBHAUVEHUIZUKZUVGUVOUXTUVFDUV
        EUVDUWFFUQZVJZVKZUVEUXTUVDKUIZUXSUVFUYCURUXTUVAUYDAUVAUXSNXOZKIUVDMUVDV
        QZXPWAAUXSXQZBCUVDUVEKHUWIUYCGUWEUVDURZCUBWCZUKZUWHUYBUYJDUWDUWGUVEUYAU
        YHUYIXQUYJUWEUVDUWFFUYHUYIXRXTXSYAUAUYBDUVEUYAUBXDZYBYCYDWKUXTUYCYEUVEV
        NZVKUVEUXTUYBUYLUXTUYBDUVEUWFVJUYLUXTDUVEUYAUWFUXTUVAUWFUVEUIZUWFKUIZUY
        AUWFURUYEUXTUVEKUWFUXTUVEKUXTHUWBUVEHUWALUWBYKUWBTUWALUWBYFYGUYGYHWIYIZ
        KFIUWFUVDMSUYFYJVSUULDUVEUUCYLYAUVEUUDYLUUAUXTUVNUCUDKKUXTUVHKUIZUVIKUI
        ZUKZUKZUEUVLUVHUEUPZFUQZVJZVKZDUVEUVJUWFFUQZVJZVKZUVMUVKUYSUFUPZVUAURZU
        EUVLYMZUFYNZVUGVUDURZDUVEYMZUFYNZVUCVUFUYSVUHUEUGUPUVIUWFFUQZURDUVEYMUG
        YNZYMZUFYNVUGUVHVUNFUQZURZDUVEYMZUFYNVUJVUMUFUEUGDUVEVUNVUAVUQUVIUWFFYO
        UYTVUNUVHFYPUUBUYSVUIVUPUFUYSVUHUEUVLVUOUYSUVLDUVEVUNVJZVKZVUOUYSUYQUXS
        UVLVVAURUXTUYPUYQWBZUXTUXSUYRUYGXOZBCUVIUVEKHUWIVVAGBUDWCZUYIUKZUWHVUTV
        VEDUWDUWGUVEVUNVVDUYIXQVVEUWEUVIUWFFVVDUYIXRXTXSYAUAVUTDUVEVUNUYKYBYCYD
        WKDUGUVEVUNVUTVUTVQYQYLUUEYRUYSVULVUSUFUYSVUKVURDUVEUYSUYMUKZVUDVUQVUGV
        VFUVAUYPUYQUYNVUDVUQURUXTUVAUYRUYMUYEYSUYSUYPUYMUXTUYPUYQVPZXOUYSUYQUYM
        VVBXOUXTUYMUYNUYRUYOUUFKFIUVHUVIUWFMSUUGUUHUUIUUJYRUUKUEUFUVLVUAVUBVUBV
        QYQDUFUVEVUDVUEVUEVQYQUUMUYSUYPUVLHUIUVMVUCURVVGUYSUVIUVEHKHGAUVCUXSUYR
        UXRYSVVBVVCUUNBCUVHUVLKHUWIVUCGBUCWCZUWDUVLURZUKZUWHVUBVVJUWHDUVLUVHUWF
        FUQZVJVUBVVJDUWDUWGUVLVVKVVHVVIXQVVJUWEUVHUWFFVVHVVIXRXTXSDUEUVLVVKVUAU
        WFUYTUVHFYPUUOYLYAUAVUBUEUVLVUAUVIUVEGYOYBYCYDWKUYSUVJKUIZUXSUVKVUFURUY
        SUVAUYPUYQVVLAUVAUXSUYRNYSVVGVVBKFIUVHUVIMSUUPUUQVVCBCUVJUVEKHUWIVUFGUW
        EUVJURZUYIUKZUWHVUEVVNDUWDUWGUVEVUDVVMUYIXQVVNUWEUVJUWFFVVMUYIXRXTXSYAU
        AVUEDUVEVUDUYKYBYCYDWKUURXMYTUUSYTUBUCUDFGIKHUVDMSUYFUUTXL $.

      sylow1lem3.1 $e |- .~ = { <. x , y >. |
        ( { x , y } C_ S /\ E. g e. X ( g .(+) x ) = y ) } $.
      $( Lemma for ~ sylow1 .  One of the orbits of the group action has p-adic
         valuation less than the prime count of the set ` S ` .  (Contributed
         by Mario Carneiro, 15-Jan-2015.) $)
      sylow1lem3 $p |- ( ph -> E. w e. S
        ( P pCnt ( # ` [ w ] .~ ) ) <_ ( ( P pCnt ( # ` X ) ) - N ) ) $=
        ( va cv chash cfv cpc co cmin cle wbr cqs wrex cec wn wral c1 caddc csu
        cexp cdvds cprime wcel cn wceq sylow1lem1 simpld pcndvds syl2anc simprd
        oveq1d oveq2d cga wer sylow1lem2 gaorber syl cpw pwfi sylib crab ssrab2
        cfn wss eqsstri ssfi sylancl qshash breq12d mtbid wa qsss adantr cz cn0
        prmnn pccld eqeltrrd peano2nn0 nnexpcld nnzd c0 wne cdm elqsn0 sylan wb
        erdm sselda elpwid hashnncl mpbird adantlr clt weq fveq2 breq1d rspccva
        notbid adantll cgrp grpbn0 zsubcld ad2antrr zred ltnled zltp1le pcdvdsb
        nn0zd mpbid syl3anc fsumdvds mtand dfrex2 sylibr wi eqid imbi1d ectocld
        eceq1 fveq2d rspcev ex adantl rexlimdva mpd ) AFUFUGZUHUIZUJUKZFNUHUIZU
        JUKZMULUKZUMUNZUFJIUOZUPZFEUGZIUQZUHUIZUJUKZUUOUMUNZEJUPZAUUPURZUFUUQUS
        ZURUURAUVFFUUOUTVAUKZVCUKZUUQDUGZUHUIZDVBZVDUNZAFFJUHUIZUJUKZUTVAUKZVCU
        KZUVMVDUNZUVLAFVEVFZUVMVGVFZUVQURSAUVSUVNUUOVHZAFGJLMNOPQRSTUAUBUCVIZVJ
        ZFUVMVKVLAUVPUVHUVMUVKVDAUVOUVGFVCAUVNUUOUTVAAUVSUVTUWAVMZVNVOADJIAHLJV
        PUKVFJIVQZABCDFGHJLMNOPQRSTUAUBUCUDVRBCHIKLNJUEPVSVTZANWAZWFVFZJUWFWGJW
        FVFZANWFVFZUWGRNWBWCJOUGUHUIFMVCUKVHZOUWFWDUWFUCUWJOUWFWEWHUWFJWIWJZWKW
        LWMAUVFWNZUUQUVJDUVHAUUQWFVFZUVFAJWAZWFVFZUUQUWNWGUWMAUWHUWOUWKJWBWCAJI
        UWEWOZUWNUUQWIVLWPAUVHWQVFUVFAUVHAFUVGAUVRFVGVFSFWSVTAUUOWRVFUVGWRVFZAU
        VNUUOWRUWCAFUVMSUWBWTXAUUOXBVTZXCXDWPUWLUVIUUQVFZWNZUVJAUWSUVJVGVFZUVFA
        UWSWNZUXAUVIXEXFZAIXGJVHZUWSUXCAUWDUXDUWEJIXKVTJUVIIXHXIUXBUVIWFVFZUXAU
        XCXJUXBUWHUVIJWGUXEAUWHUWSUWKWPUXBUVIJAUUQUWNUVIUWPXLXMJUVIWIVLUVIXNVTX
        OXPZXDZUWTUVGFUVJUJUKZUMUNZUVHUVJVDUNZUWTUUOUXHXQUNZUXIUWTUXKUXHUUOUMUN
        ZURZUVFUWSUXMAUVEUXMUFUVIUUQUFDXRZUUPUXLUXNUULUXHUUOUMUXNUUKUVJFUJUUJUV
        IUHXSVOXTYBYAYCUWTUUOUXHUWTUUOAUUOWQVFZUVFUWSAUUNMAUUNAFUUMSAUUMVGVFZNX
        EXFZALYDVFUXQQNLPYEVTAUWIUXPUXQXJRNXNVTXOWTYLAMTYLYFYGZYHUWTUXHUWTUXHUW
        TFUVJAUVRUVFUWSSYGZUXFWTYLZYHYIXOUWTUXOUXHWQVFUXKUXIXJUXRUXTUUOUXHYJVLY
        MUWTUVRUVJWQVFUWQUXIUXJXJUXSUXGAUWQUVFUWSUWRYGUVGFUVJYKYNYMYOYPUUPUFUUQ
        YQYRAUUPUVDUFUUQFUVIIUQZUHUIZUJUKZUUOUMUNZUVDYSZUUPUVDYSADUUJJIUUQUUQYT
        UYAUUJVHZUYDUUPUVDUYFUYCUULUUOUMUYFUYBUUKFUJUYAUUJUHXSVOXTUUAUVIJVFZUYE
        AUYGUYDUVDUVCUYDEUVIJEDXRZUVBUYCUUOUMUYHUVAUYBFUJUYHUUTUYAUHUUSUVIIUUCU
        UDVOXTUUEUUFUUGUUBUUHUUI $.

      sylow1lem4.b $e |- ( ph -> B e. S ) $.
      sylow1lem4.h $e |- H = { u e. X | ( u .(+) B ) = B } $.
      $( Lemma for ~ sylow1 .  The stabilizer subgroup of any element of ` S `
         is at most ` P ^ N ` in size.  (Contributed by Mario Carneiro,
         15-Jan-2015.) $)
      sylow1lem4 $p |- ( ph -> ( # ` H ) <_ ( P ^ N ) ) $=
        ( va vb vc chash cfv cexp co cle wbr cdom cv wcel c0 wne wex cc0 cn cpw
        wceq fveq2 eqeq1d elrab2 sylib simprd cprime prmnn syl nnexpcld eqeltrd
        wa nnne0d wb hasheq0 necon3bid mpbid n0 adantr cmpt crn oveq2 eqid ovex
        simplr fvmpt wfn fnmpti fnfvelrn sylancr eqeltrrd cvv crab ssrab2 simpr
        eqsstri sseldi ad2antrr mptexg rnexg 3syl weq oveq1d mpteq12dv ovmpt2ga
        simpl rneqd syl3anc eleqtrrd oveq1 simprbi adantl eleqtrd simprl simprr
        ex cgrp simpld elpwid sselda grprcan syl13anc mpd exlimddv cfn wss ssfi
        dom2d sylancl syl2anc hashdom mpbird breqtrd ) ANUMUNZFUMUNZGOUOUPZUQAU
        UAUUBUQURZNFUSURZAUJUTZFVAZUUEUJAFVBVCZUUGUJVDAUUBVEVCZUUHAUUBAUUBUUCVF
        AFPVGZVAZUUBUUCVHZAFKVAZUUKUULVSUHQUTZUMUNZUUCVHUULQFUUJKUUNFVHUUOUUBUU
        CUUNFUMVIVJUEVKVLZVMZAGOAGVNVAGVFVAUAGVOVPUBVQVRVTAUUMUUIUUHWAUHUUMUUBV
        EFVBFKWBWCVPWDUJFWEVLAUUGVSZUUMUUEAUUMUUGUHWFUURUKULNFUKUTZUUFHUPZULUTZ
        UUFHUPZKUURUUSNVAZUUTFVAUURUVCVSZUUTUUSFIUPZFUVDUUTDFUUSDUTZHUPZWGZWHZU
        VEUVDUUFUVHUNZUUTUVIUVDUUGUVJUUTVHAUUGUVCWLZDUUFUVGUUTFUVHUVFUUFUUSHWIU
        VHWJZUUSUUFHWKWMVPUVDUVHFWNUUGUVJUVIVADFUVGUVHUUSUVFHWKUVLWOUVKFUUFUVHW
        PWQWRUVDUUSPVAZUUMUVIWSVAZUVEUVIVHUVDNPUUSNEUTZFIUPZFVHZEPWTPUIUVQEPXAX
        CZUURUVCXBXDAUUMUUGUVCUHXEZUVDUUMUVHWSVAUVNUVSDFUVGKXFUVHWSXGXHBCUUSFPK
        DCUTZBUTZUVFHUPZWGZWHUVIIWSBUKXIZUVTFVHZVSZUWCUVHUWFDUVTUWBFUVGUWDUWEXB
        UWFUWAUUSUVFHUWDUWEXMXJXKXNUFXLXOXPUVCUVEFVHZUURUVCUVMUWGUVQUWGEUUSPNEU
        KXIUVPUVEFUVOUUSFIXQVJUIVKXRXSXTYCUURUVCUVANVAZVSZUUTUVBVHUKULXIWAZUURU
        WIVSZMYDVAZUVMUVAPVAUUFPVAZUWJAUWLUUGUWISXEUWKNPUUSUVRUURUVCUWHYAXDUWKN
        PUVAUVRUURUVCUWHYBXDUURUWMUWIAFPUUFAFPAUUKUULUUPYEYFZYGWFPHMUUSUVAUUFRU
        DYHYIYCYOYJYKANYLVAZFYLVAZUUDUUEWAAPYLVAZNPYMUWOTUVRPNYNYPAUWQFPYMUWPTU
        WNPFYNYQNFYLYRYQYSUUQYT $.

      sylow1lem5.l $e |- ( ph ->
        ( P pCnt ( # ` [ B ] .~ ) ) <_ ( ( P pCnt ( # ` X ) ) - N ) ) $.
      $( Lemma for ~ sylow1 .  Using Lagrange's theorem and the
         orbit-stabilizer theorem, show that there is a subgroup with size
         exactly ` P ^ N ` .  (Contributed by Mario Carneiro, 16-Jan-2015.) $)
      sylow1lem5 $p |- ( ph ->
        E. h e. ( SubGrp ` G ) ( # ` h ) = ( P ^ N ) ) $=
        ( csubg cfv wcel chash cexp co wceq wrex cga sylow1lem2 gastacl syl2anc
        cv cle wbr sylow1lem4 cdvds cpc cec caddc cmin cr wb cn wne cdm gaorber
        wer syl erdm eleqtrrd ecdmn0 sylib cfn wss cpw pwfi crab ssrab2 eqsstri
        c0 ssfi sylancl ecss hashnncl mpbird pccld nn0red cgrp leaddsub syl3anc
        grpbn0 cmul cqg eqid orbsta2 syl21anc oveq2d cprime cc0 nnzd nnne0d c0g
        cz subg0cl ne0i pcmul syl122anc eqtrd breqtrd leadd2d cn0 pcdvdsb mpbid
        wi prmnn nnexpcld dvdsle mpd hashcl nnred mpbir2and fveq2 eqeq1d rspcev
        letri3d ) AONULUMZUNZOUOUMZGPUPUQZURZMVDZUOUMZUUAURZMYRUSAINKUTUQUNZFKU
        NZYSABCDGHIKNPQRSTUAUBUCUDUEUFUGVAZUIEFINOQKSUJVBVCZAUUBYTUUAVEVFUUAYTV
        EVFZABCDEFGHIJKLNOPQRSTUAUBUCUDUEUFUGUHUIUJVGAUUAYTVHVFZUUJAPGYTVIUQZVE
        VFZUUKAUUMGFJVJZUOUMZVIUQZPVKUQZUUPUULVKUQZVEVFAUUQGQUOUMZVIUQZUURVEAUU
        QUUTVEVFZUUPUUTPVLUQVEVFZUKAUUPVMUNPVMUNUUTVMUNUVAUVBVNAUUPAGUUOUBAUUOV
        OUNZUUNWLVPZAFJVQZUNUVDAFKUVEUIAKJVSZUVEKURAUUFUVFUUHBCIJLNQKUHSVRVTZKJ
        WAVTWBFJWCWDAUUNWEUNZUVCUVDVNAKWEUNZUUNKWFUVHAQWGZWEUNZKUVJWFUVIAQWEUNZ
        UVKUAQWHWDKRVDUOUMUUAURZRUVJWIUVJUFUVMRUVJWJWKUVJKWMWNAFJKUVGWOKUUNWMVC
        UUNWPVTWQZWRWSZAPUCWSZAUUTAGUUSUBAUUSVOUNZQWLVPZANWTUNUVRTQNSXCVTAUVLUV
        QUVRVNUAQWPVTWQWRWSUUPPUUTXAXBWQAUUTGUUOYTXDUQZVIUQZUURAUUSUVSGVIAUUFUU
        GUVLUUSUVSURUUHUIUABCEFINOXEUQZLNOJQKSUJUWAXFUHXGXHXIAGXJUNZUUOXOUNUUOX
        KVPYTXOUNZYTXKVPUVTUURURUBAUUOUVNXLAUUOUVNXMAYTAYTVOUNZOWLVPZANXNUMZOUN
        ZUWEAYSUWGUUIONUWFUWFXFXPVTOUWFXQVTAOWEUNZUWDUWEVNAUVLOQWFUWHUAOEVDFIUQ
        FURZEQWIQUJUWIEQWJWKQOWMWNZOWPVTWQZXLZAYTUWKXMUUOYTGXRXSXTYAAPUULUUPUVP
        AUULAGYTUBUWKWRWSUVOYBWQAUWBUWCPYCUNUUMUUKVNUBUWLUCPGYTYDXBYEAUUAXOUNUW
        DUUKUUJYFAUUAAGPAUWBGVOUNUBGYGVTUCYHZXLUWKUUAYTYIVCYJAYTUUAAYTAUWHYTYCU
        NUWJOYKVTWSAUUAUWMYLYQYMUUEUUBMOYRUUCOURUUDYTUUAUUCOUOYNYOYPVC $.
    $}

    $d g h ph $.
    $( Sylow's first theorem.  If ` P ^ N ` is a prime power that divides the
       cardinality of ` G ` , then ` G ` has a supgroup with size ` P ^ N ` .
       This is part of Metamath 100 proof #72.  (Contributed by Mario Carneiro,
       16-Jan-2015.) $)
    sylow1 $p |- ( ph -> E. g e. ( SubGrp ` G ) ( # ` g ) = ( P ^ N ) ) $=
      ( vs vk vx vz cv cfv co wceq vh va vb vu vv vy vt cpr chash cexp cpw crab
      wss cplusg cmpt crn cmpt2 wrex wa copab cec cpc cmin cle csubg eqid oveq2
      wbr cbvmptv oveq1 mpteq2dv syl5eq mpteq1 cbvmpt2v preq12 sseq1d eqeqan12d
      rneqd rexbidv anbi12d cbvopabv sylow1lem3 wcel cgrp adantr cfn cprime cn0
      id cdvds simprl simprr sylow1lem5 rexlimddv ) ABUAQZUBQZUCQZUHZMQZUIRBEUJ
      SZTMFUKULZUMZNQZWPUDUEFXAMUEQZUDQZWSDUNRZSZUOZUPZUQZSZWQTZNFURZUSZUBUCUTZ
      VAUIRVBSBFUIRZVBSEVCSVDVHZCQUIRWTTCDVERURUAXAAOUFPUABXFXJXOXANDEFMGHIJKLX
      FVFZXAVFZUDUEOUFFXAXIPUFQZOQZPQZXFSZUOZUPPXDYCUOZUPXEYATZXHYEYFXHPXDXEYBX
      FSZUOYEMPXDXGYGWSYBXEXFVGVIYFPXDYGYCXEYAYBXFVJVKVLVRXDXTTYEYDPXDXTYCVMVRV
      NZXNYAXTUHZXAUMZXCYAXJSZXTTZNFURZUSUBUCOUFWPYATZWQXTTZUSZXBYJXMYMYPWRYIXA
      WPWQYAXTVOVPYPXLYLNFYNYOXKYKWQXTWPYAXCXJVGYOWIVQVSVTWAZWBAWOXAWCZXQUSZUSO
      UFPUGWOBXFXJXOXANCDUGQWOXJSWOTUGFULZEFMGADWDWCYSHWEAFWFWCYSIWEABWGWCYSJWE
      AEWHWCYSKWEAWTXPWJVHYSLWEXRXSYHYQAYRXQWKYTVFAYRXQWLWMWN $.
  $}

  ${
    $d g s G $.  $d s O $.  $d g s P $.  $d g s X $.
    odcau.x $e |- X = ( Base ` G ) $.
    odcau.o $e |- O = ( od ` G ) $.
    $( Cauchy's theorem for the order of an element in a group.  A finite group
       whose order divides a prime ` P ` contains an element of order ` P ` .
       (Contributed by Mario Carneiro, 16-Jan-2015.) $)
    odcau $p |- ( ( ( G e. Grp /\ X e. Fin /\ P e. Prime ) /\ P || ( # ` X ) )
      -> E. g e. X ( O ` g ) = P ) $=
      ( vs wcel cfn chash cfv cdvds wbr wa c1 wceq syl wb adantr cgrp cprime cv
      w3a cexp co csubg wrex simpl1 simpl2 simpl3 cn0 1nn0 cn prmnn nncnd exp1d
      a1i simpr eqbrtrd sylow1 eqeq2d wex c0g csn cdif c0 wne csdm clt cvv fvex
      hashsng ax-mp cuz simprr prmuz2 eqeltrd eluz2b2 simprbi syl5eqbr snfi wss
      c2 subgss ad2antrl ssfi syl2anc hashsdom sylancr mpbid sdomdif n0 eldifsn
      sylib adantrr simprrl sseldd simprrr wn simprll odsubdvds syl3anc simprlr
      wo breqtrd odcl2 dvdsprime ord eqid odeq1 sylibd necon1ad mpd expr syl5bi
      jca eximdv df-rex sylibr sylbid rexlimdva ) CUAIZEJIZAUBIZUDZAEKLZMNZOZHU
      CZKLZAPUEUFZQZHCUGLZUHBUCZDLZAQZBEUHZYIAHCPEFYCYDYEYHUIZYCYDYEYHUJZYCYDYE
      YHUKZPULIYIUMURYIYLAYGMYIAYIAYIYEAUNIUUAAUORUPUQZYFYHUSUTVAYIYMYRHYNYIYJY
      NIZOYMYKAQZYRYIYMUUDSUUCYIYLAYKUUBVBTYIUUCUUDYRYIUUCUUDOZOZYOEIZYQOZBVCZY
      RUUFYOYJCVDLZVEZVFZIZBVCZUUIUUFUULVGVHZUUNUUFUUKYJVINZUUOUUFUUKKLZYKVJNZU
      UPUUFUUQPYKVJUUJVKIUUQPQCVDVLUUJVKVMVNUUFYKWDVOLZIZPYKVJNZUUFYKAUUSYIUUCU
      UDVPUUFYEAUUSIYIYEUUEUUATAVQRVRUUTYKUNIUVAYKVSVTRWAUUFUUKJIYJJIZUURUUPSUU
      JWBUUFYDYJEWCZUVBYIYDUUEYTTUUCUVCYIUUDEYJCFWEWFZEYJWGWHZUUKYJWIWJWKUUKYJW
      LRBUULWMWOUUFUUMUUHBUUMYOYJIZYOUUJVHZOZUUFUUHYOYJUUJWNYIUUEUVHUUHYIUUEUVH
      OZOZUUGYQUVJYJEYOYIUUEUVCUVHUVDWPYIUUEUVFUVGWQZWRZUVJUVGYQYIUUEUVFUVGWSUV
      JYQYOUUJUVJYQWTYPPQZYOUUJQZUVJYQUVMUVJYPAMNZYQUVMXEZUVJYPYKAMUVJUUCUVBUVF
      YPYKMNYIUUCUUDUVHXAYIUUEUVBUVHUVEWPUVKYOYJCDGXBXCYIUUCUUDUVHXDXFUVJYEYPUN
      IZUVOUVPSYIYEUVIUUATUVJYCYDUUGUVQYIYCUVIYSTZYIYDUVIYTTUVLYOCDEFGXGXCAYPXH
      WHWKXIUVJYCUUGUVMUVNSUVRUVLYOCDEUUJGUUJXJFXKWHXLXMXNXQXOXPXRXNYQBEXSXTXOY
      AYBXN $.
  $}

  ${
    $d g m n p x G $.  $d g m n p x P $.  $d g n p x X $.
    pgpfi.1 $e |- X = ( Base ` G ) $.
    $( The converse to ~ pgpfi1 .  A finite group is a ` P ` -group iff it has
       size some power of ` P ` .  (Contributed by Mario Carneiro,
       16-Jan-2015.) $)
    pgpfi $p |- ( ( G e. Grp /\ X e. Fin ) ->
      ( P pGrp G <-> ( P e. Prime /\ E. n e. NN0 ( # ` X ) = ( P ^ n ) ) ) ) $=
      ( vm wcel wa wbr cv cexp co wceq cn0 wrex cdvds cpc cn ad2antrr syl2anc
      vx vp vg cgrp cfn cpgp cprime chash cfv cod wral w3a eqid ispgp simprl c0
      wne grpbn0 wb hashnncl ad2antlr mpbird pccld cle nn0red leidd cz breqtrrd
      nn0zd pcid simpr oveq1d 3brtr4d cc0 wn simp-4l simplr odcau syl31anc prmz
      adantr iddvds simprr simplrr fveq2 eqeq1d rexbidv rspccva sylan ad3antrrr
      3syl ad2ant2r prmnn syl eqeltrd pcprmpw mpbid breqtrd prmdvdsexpr syl3anc
      wi mpd rexlimddv ex necon3ad ad2antrl nnexpcld nn0ge0d eqbrtrd pm2.61dane
      imp pceq0 ralrimiva hashcl nnzd pc2dvds breq2d rspcev pcprmpw2 bitr4d jca
      oveq2 3adantr2 syl5bi pgpfi1 3expia rexlimdv expimpd impbid ) CUDGZDUEGZH
      ZACUFIZAUGGZDUHUIZABJZKLZMZBNOZHZYMYNYJUAJZCUJUIZUIZAFJKLZMZFNOZUADUKZULZ
      YLYTUAAFCUUBDEUUBUMZUNYLUUHYTYLYNUUGYTYJYLYNUUGHZHZYNYSYLYNUUGUOZUUKYOYQP
      IZBNOZYSUUKAYOQLZNGYOAUUOKLZPIZUUNUUKAYOUULUUKYORGZDUPUQZYJUUSYKUUJDCEURS
      YKUURUUSUSYJUUJDUTVAVBZVCZUUKUUQUBJZYOQLZUVBUUPQLZVDIZUBUGUKZUUKUVEUBUGUU
      KUVBUGGZHZUVEUVBAUVHUVBAMZHZUUOAUUPQLZUVCUVDVDUUKUUOUVKVDIUVGUVIUUKUUOUUO
      UVKVDUUKUUOUUKUUOUVAVEVFUUKYNUUOVGGUVKUUOMUULUUKUUOUVAVIUUOAVJTVHSUVJUVBA
      YOQUVHUVIVKZVLUVJUVBAUUPQUVLVLVMUVHUVBAUQZHZUVCVNUVDVDUVNUVCVNMZUVBYOPIZV
      OZUVHUVMUVQUVHUVPUVBAUVHUVPUVIUVHUVPHZUCJZUUBUIZUVBMZUVIUCDUVRYJYKUVGUVPU
      WAUCDOYJYKUUJUVGUVPVPUUKYKUVGUVPYJYKUUJVQSUUKUVGUVPVQZUVHUVPVKUVBUCCUUBDE
      UUIVRVSUVRUVSDGZUWAHZHZUVBAAUVTQLZKLZPIZUVIUWEUVBUVTUWGPUWEUVBUVBUVTPUWEU
      VGUVBVGGUVBUVBPIUVRUVGUWDUWBWAZUVBVTUVBWBWKUVRUWCUWAWCZVHUWEUVTUUDMZFNOZU
      VTUWGMZUVHUWCUWLUVPUWAUVHUUGUWCUWLYLYNUUGUVGWDUUFUWLUAUVSDUUAUVSMZUUEUWKF
      NUWNUUCUVTUUDUUAUVSUUBWEWFWGWHWIWLUWEYNUVTRGUWLUWMUSUUKYNUVGUVPUWDUULWJZU
      WEUVTUVBRUWJUWEUVGUVBRGUWIUVBWMWNWOZUVTAFWPTWQWRUWEUVGYNUWFNGUWHUVIXAUWIU
      WOUWEAUVTUWOUWPVCUVBAUWFWSWTXBXCXDXEXKUVNUVGUURUVOUVQUSUUKUVGUVMVQZUUKUUR
      UVGUVMUUTSUVBYOXLTVBUVNUVDUVNUVBUUPUWQUUKUUPRGUVGUVMUUKAUUOYNARGYLUUGAWMX
      FUVAXGZSVCXHXIXJXMUUKYOVGGUUPVGGUUQUVFUSUUKYOYKYONGYJUUJDXNVAVIUUKUUPUWRX
      OYOUUPUBXPTVBUUMUUQBUUONYPUUOMYQUUPYOPYPUUOAKYBXQXRTUUKYNUURUUNYSUSUULUUT
      YNUURHUUNYOUUPMYSYOABXSYOABWPXTTWQYAYCXDYDYJYTYMXAYKYJYNYSYMYJYNHYRYMBNYJ
      YNYPNGYRYMXAACYPDEYEYFYGYHWAYI $.

    $( Alternate version of ~ pgpfi .  (Contributed by Mario Carneiro,
       27-Apr-2016.) $)
    pgpfi2 $p |- ( ( G e. Grp /\ X e. Fin ) -> ( P pGrp G <->
      ( P e. Prime /\ ( # ` X ) = ( P ^ ( P pCnt ( # ` X ) ) ) ) ) ) $=
      ( vn cgrp wcel cfn wa cpgp wbr cprime chash cfv cv cexp co wceq cn0 wrex
      cpc pgpfi cn wb id c0 wne grpbn0 hashnncl syl5ibrcom imp pcprmpw pm5.32da
      syl2anr bitrd ) BFGZCHGZIZABJKALGZCMNZAEOPQRESTZIUSUTAAUTUAQPQRZIAEBCDUBU
      RUSVAVBUSUSUTUCGZVAVBUDURUSUEUPUQVCUPVCUQCUFUGCBDUHCUIUJUKUTAEULUNUMUO $.

    $( The order of a p-group.  (Contributed by Mario Carneiro,
       27-Apr-2016.) $)
    pgphash $p |- ( ( P pGrp G /\ X e. Fin ) ->
      ( # ` X ) = ( P ^ ( P pCnt ( # ` X ) ) ) ) $=
      ( cpgp wbr cfn wcel wa cprime chash cfv co cexp wceq simpl cgrp wb pgpgrp
      cpc pgpfi2 sylan mpbid simprd ) ABEFZCGHZIZAJHZCKLZAAUITMNMOZUGUEUHUJIZUE
      UFPUEBQHUFUEUKRABSABCDUAUBUCUD $.
  $}

  ${
    $d g h k p G $.  $d h k H $.  $d k K $.  $d g h k p P $.  $d k S $.
    $( The property of being a Sylow subgroup.  A Sylow ` P ` -subgroup is a
       ` P ` -group which has no proper supersets that are also ` P ` -groups.
       (Contributed by Mario Carneiro, 16-Jan-2015.) $)
    isslw $p |- ( H e. ( P pSyl G ) <->
      ( P e. Prime /\ H e. ( SubGrp ` G ) /\ A. k e. ( SubGrp ` G )
        ( ( H C_ k /\ P pGrp ( G |`s k ) ) <-> H = k ) ) ) $=
      ( vp vg vh cslw co wcel cprime cgrp wa csubg cv cress cpgp wceq wb wral
      cfv wss wbr w3a df-slw elmpt2cl simp1 subgrcl 3ad2ant2 simpr fveq2d simpl
      crab oveq1d breq12d anbi2d bibi1d raleqbidv rabeqbidv fvex ovmpt2a eleq2d
      jca rabex sseq1 anbi1d eqeq1 bibi12d ralbidv elrab syl6bb biantrurd bitrd
      3anass syl6bbr pm5.21nii ) DACHIZJZAKJZCLJZMZVSDCNUAZJZDBOZUBZACWDPIZQUCZ
      MZDWDRZSZBWBTZUDZEFKLGOZWDUBZEOZFOZWDPIZQUCZMZWMWDRZSZBWPNUAZTZGXBUMZACHD
      FGBEUEZUFWLVSVTVSWCWKUGWCVSVTWKDCUHUIVCWAVRVSWCWKMZMZWLWAVRXFXGWAVRDWNWGM
      ZWTSZBWBTZGWBUMZJXFWAVQXKDEFACKLXDXKHWOARZWPCRZMZXCXJGXBWBXNWPCNXLXMUJZUK
      ZXNXAXIBXBWBXPXNWSXHWTXNWRWGWNXNWOAWQWFQXLXMULXNWPCWDPXOUNUOUPUQURUSXEXJG
      WBCNUTVDVAVBXJWKGDWBWMDRZXIWJBWBXQXHWHWTWIXQWNWEWGWMDWDVEVFWMDWDVGVHVIVJV
      KWAVSXFVSVTULVLVMVSWCWKVNVOVP $.

    $( Reverse closure for the first argument of a Sylow ` P ` -subgroup.
       (Contributed by Mario Carneiro, 16-Jan-2015.)  (Revised by Mario
       Carneiro, 2-May-2015.) $)
    slwprm $p |- ( H e. ( P pSyl G ) -> P e. Prime ) $=
      ( vk cslw co wcel cprime csubg cfv cv wss cress cpgp wbr wa wceq wb isslw
      wral simp1bi ) CABEFGAHGCBIJZGCDKZLABUCMFNOPCUCQRDUBTADBCSUA $.

    $( A Sylow ` P ` -subgroup is a subgroup.  (Contributed by Mario Carneiro,
       16-Jan-2015.) $)
    slwsubg $p |- ( H e. ( P pSyl G ) -> H e. ( SubGrp ` G ) ) $=
      ( vk cslw co wcel cprime csubg cfv cv wss cress cpgp wbr wa wceq wb isslw
      wral simp2bi ) CABEFGAHGCBIJZGCDKZLABUCMFNOPCUCQRDUBTADBCSUA $.

    slwispgp.1 $e |- S = ( G |`s K ) $.
    $( Defining property of a Sylow ` P ` -subgroup.  (Contributed by Mario
       Carneiro, 16-Jan-2015.) $)
    slwispgp $p |- ( ( H e. ( P pSyl G ) /\ K e. ( SubGrp ` G ) ) ->
      ( ( H C_ K /\ P pGrp S ) <-> H = K ) ) $=
      ( vk cslw co wcel cv wss cress cpgp wbr wa wceq wb csubg cfv cprime isslw
      simp3bi sseq2 oveq2 syl6eqr breq2d anbi12d eqeq2 bibi12d rspccva sylan
      wral ) DACHIJZDGKZLZACUOMIZNOZPZDUOQZRZGCSTZUMZEVBJDELZABNOZPZDEQZRZUNAUA
      JDVBJVCAGCDUBUCVAVHGEVBUOEQZUSVFUTVGVIUPVDURVEUOEDUDVIUQBANVIUQCEMIBUOECM
      UEFUFUGUHUOEDUIUJUKUL $.

    $( A proper superset of a Sylow subgroup is not a ` P ` -group.
       (Contributed by Mario Carneiro, 16-Jan-2015.) $)
    slwpss $p |- ( ( H e. ( P pSyl G ) /\ K e. ( SubGrp ` G ) /\
      H C. K ) -> -. P pGrp S ) $=
      ( cslw co wcel csubg cfv wpss w3a cpgp wbr wn wne simp3 pssned wss pssssd
      wa wceq biantrurd wb slwispgp 3adant3 bitrd necon3bbid mpbird ) DACGHIZEC
      JKIZDELZMZABNOZPDEQUNDEUKULUMRZSUNUODEUNUODETZUOUBZDEUCZUNUQUOUNDEUPUAUDU
      KULURUSUEUMABCDEFUFUGUHUIUJ $.
  $}

  ${
    slwpgp.1 $e |- S = ( G |`s H ) $.
    $( A Sylow ` P ` -subgroup is a ` P ` -group.  (Contributed by Mario
       Carneiro, 16-Jan-2015.) $)
    slwpgp $p |- ( H e. ( P pSyl G ) -> P pGrp S ) $=
      ( cslw co wcel wss cpgp wbr wa wceq eqid csubg cfv slwsubg slwispgp mpdan
      wb mpbiri simprd ) DACFGHZDDIZABJKZUCUDUELZDDMZDNUCDCOPHUFUGTACDQABCDDERS
      UAUB $.
  $}

  ${
    $d k m w x y G $.  $d k m w x y H $.  $d k m w x y P $.  $d k m w x z X $.
    $d k m w z F $.  $d k m x y S $.
    pgpssslw.1 $e |- X = ( Base ` G ) $.
    pgpssslw.2 $e |- S = ( G |`s H ) $.
    pgpssslw.3 $e |- F = ( x e. { y e. ( SubGrp ` G ) |
      ( P pGrp ( G |`s y ) /\ H C_ y ) } |-> ( # ` x ) ) $.
    $( Every ` P ` -subgroup is contained in a Sylow ` P ` -subgroup.
       (Contributed by Mario Carneiro, 16-Jan-2015.) $)
    pgpssslw $p |- ( ( H e. ( SubGrp ` G ) /\ X e. Fin /\ P pGrp S ) ->
      E. k e. ( P pSyl G ) H C_ k ) $=
      ( vm cfv wcel wbr wa cle chash syl vw vz csubg cfn cpgp w3a cress wss crn
      cv co cr clt csup wceq wrex cslw crab cz c0 wne wral wf cn0 elrabi subgss
      simp2 ssfi syl2an hashcl nn0zd fmptd frn fvex fnmpti simp1 simp3 biantrud
      eqimss2 oveq2 syl6eqr breq2d bitr3d sylanbrc fnfvelrn sylancr ne0i nn0red
      wfn elrab fveq2 fvmpt adantl weq anbi12d cdom adantr ad2antrl ssdomg sylc
      sseq2 syl2anc hashdom mpbird sylan2b eqbrtrd ralrimiva breq1 ralrn sylibr
      wb ax-mp breq2 ralbidv rspcev suprzcl syl3anc fvelrnb sylib rexrab cprime
      simpl3 pgpprm simprl wpss wn zssre syl6ss ad2antrr simprrr simprrl simprd
      sstrd jca eqeltrrd suprub syl31anc nn0re ex mpd eqtr3d breqtrd lenlt csdm
      simpll2 mpbid wi php3 hashsdom sylibrd mtod wo sspss ord simpld biantrurd
      expr eqimss bitrd syl5ibcom impbid isslw syl3anbrc reximdv2 ) HGUCNZOZIUD
      OZCDUEPZUFZCGEUJZUGUKZUEPZHUVJUHZQZUVJFNZFUIZULUMUNZUOZQZEUVEUPZUVMECGUQU
      KZUPUVIUVRECGBUJZUGUKZUEPZHUWBUHZQZBUVEURZUPZUVTUVIUVQUVPOZUWHUVIUVPUSUHZ
      UVPUTVAZUAUJZUBUJZRPZUAUVPVBZUBULUPZUWIUVIUWGUSFVCUWJUVIAUWGAUJZSNZUSFUVI
      UWQUWGOZQZUWRUWTUWQUDOZUWRVDOUVIUVGUWQIUHZUXAUWSUVFUVGUVHVGZUWSUWQUVEOUXB
      UWFBUWQUVEVEIUWQGJVFTIUWQVHVIUWQVJTVKLVLUWGUSFVMTZUVIHFNZUVPOZUWKUVIFUWGW
      IZHUWGOZUXFAUWGUWRFUWQSVNLVOZUVIUVFUVHUXHUVFUVGUVHVPUVFUVGUVHVQUWFUVHBHUV
      EUWBHUOZUWDUWFUVHUXJUWEUWDHUWBVSVRUXJUWCDCUEUXJUWCGHUGUKDUWBHGUGVTKWAWBWC
      WJWDUWGHFWEWFUVPUXEWGTZUVIISNZULOUWLUXLRPZUAUVPVBZUWPUVIUXLUVIUVGUXLVDOUX
      CIVJTWHUVIMUJZFNZUXLRPZMUWGVBZUXNUVIUXQMUWGUVIUXOUWGOZQUXPUXOSNZUXLRUXSUX
      PUXTUOZUVIAUXOUWRUXTUWGFUWQUXOSWKLUXOSVNWLZWMUXSUVIUXOUVEOZCGUXOUGUKZUEPZ
      HUXOUHZQZQZUXTUXLRPZUWFUYGBUXOUVEBMWNZUWDUYEUWEUYFUYJUWCUYDCUEUWBUXOGUGVT
      WBUWBUXOHXAWOWJZUVIUYHQZUYIUXOIWPPZUYLUVGUXOIUHZUYMUVIUVGUYHUXCWQZUYCUYNU
      VIUYGIUXOGJVFZWRZUXOIUDWSWTUYLUXOUDOZUVGUYIUYMXKUYLUVGUYNUYRUYOUYQIUXOVHZ
      XBUYOUXOIUDXCXBXDXEXFXGUXGUXNUXRXKUXIUXMUXQUAMUWGFUWLUXPUXLRXHXIXLXJUWOUX
      NUBUXLULUWMUXLUOUWNUXMUAUVPUWMUXLUWLRXMXNXOXBZUBUAUVPXPXQUXGUWIUWHXKUXIEU
      WGUVQFXRXLXSUWFUVNUVREBUVEBEWNZUWDUVLUWEUVMVUAUWCUVKCUEUWBUVJGUGVTWBUWBUV
      JHXAWOZXTXSUVIUVSUVMEUVEUWAUVIUVJUVEOZUVSQZUVJUWAOZUVMQUVIVUDQZVUEUVMVUFC
      YAOZVUCUVJUXOUHZUYEQZEMWNZXKZMUVEVBVUEVUFUVHVUGUVFUVGUVHVUDYBCDYCTUVIVUCU
      VSYDZVUFVUKMUVEVUFUYCQZVUIVUJVUFUYCVUIVUJVUFUYCVUIQZQZUVJUXOYEZYFVUJVUOVU
      PUVJSNZUXTUMPZVUOUXTVUQRPZVURYFZVUOUXTUVQVUQRVUOUVPULUHZUWKUWPUXTUVPOUXTU
      VQRPUVIVVAVUDVUNUVIUVPUSULUXDYGYHYIUVIUWKVUDVUNUXKYIUVIUWPVUDVUNUYTYIVUOU
      XPUXTUVPVUOUXSUYAVUOUYCUYGUXSVUFUYCVUIYDVUOUYEUYFVUFUYCVUHUYEYJVUOHUVJUXO
      VUOUVLUVMVUFUVNVUNUVIVUCUVNUVRYKZWQZYLVUFUYCVUHUYEYKZYMYNUYKWDZUYBTVUOUXG
      UXSUXPUVPOUXIVVEUWGUXOFWEWFYOUBUAUVPUXTYPYQVUOUVOUVQVUQVUFUVRVUNUVIVUCUVN
      UVRYJWQVUOUVJUWGOZUVOVUQUOVUOVUCUVNVVFVUFVUCVUNVULWQVVCUWFUVNBUVJUVEVUBWJ
      WDAUVJUWRVUQUWGFUWQUVJSWKLUVJSVNWLTUUAUUBVUOUYRUVJUDOZVUSVUTXKZVUOUVGUYNU
      YRUVFUVGUVHVUDVUNUUEUYCUYNVUFVUIUYPWRUYSXBZVUOUYRVUHVVGVVIVVDUXOUVJVHXBZU
      YRUXTVDOZVUQVDOZVVHVVGUXOVJUVJVJVVKUXTULOVUQULOVVHVVLUXTYRVUQYRUXTVUQUUCV
      IVIXBUUFVUOVUPUVJUXOUUDPZVURVUOUYRVUPVVMUUGVVIUYRVUPVVMUXOUVJUUHYSTVUOVVG
      UYRVURVVMXKVVJVVIUVJUXOUUIXBUUJUUKVUOVUPVUJVUOVUHVUPVUJUULVVDUVJUXOUUMXSU
      UNYTUUQVUMUVLVUJVUIVUFUVLUYCVUFUVLUVMVVBUUOWQVUJUVLUYEVUIVUJUVKUYDCUEUVJU
      XOGUGVTWBVUJVUHUYEUVJUXOUURUUPUUSUUTUVAXGCMGUVJUVBUVCVUFUVLUVMVVBYLYNYSUV
      DYT $.
  $}

  ${
    $d x y z G $.  $d x y z P $.  $d x z X $.
    slwn0.1 $e |- X = ( Base ` G ) $.
    $( Every finite group contains a Sylow ` P ` -subgroup.  (Contributed by
       Mario Carneiro, 16-Jan-2015.) $)
    slwn0 $p |- ( ( G e. Grp /\ X e. Fin /\ P e. Prime ) ->
      ( P pSyl G ) =/= (/) ) $=
      ( vz vx vy cgrp wcel cfn cprime w3a cfv cv wss co cress cpgp wbr eqid c0g
      csn cslw wrex c0 wne csubg 0subg 3ad2ant1 simp2 pgp0 3adant2 wa crab cmpt
      chash pgpssslw syl3anc rexn0 syl ) BHIZCJIZAKIZLZBUAMZUBZENOZEABUCPZUDZVH
      UEUFVDVFBUGMZIZVBABVFQPZRSZVIVAVBVKVCBVEVETZUHUIVAVBVCUJVAVCVMVBABVEVNUKU
      LFGAVLEFABGNZQPRSVFVOOUMGVJUNFNUPMUOZBVFCDVLTVPTUQURVGEVHUSUT $.
  $}

  ${
    $d x G $.  $d x H $.  $d x K $.  $d x P $.  $d x S $.
    subgslw.1 $e |- H = ( G |`s S ) $.
    $( A Sylow subgroup that is contained in a larger subgroup is also Sylow
       with respect to the subgroup.  (The converse need not be true.)
       (Contributed by Mario Carneiro, 19-Jan-2015.) $)
    subgslw $p |- ( ( S e. ( SubGrp ` G ) /\ K e. ( P pSyl G ) /\ K C_ S ) ->
      K e. ( P pSyl H ) ) $=
      ( vx csubg cfv wcel cslw co wss cress cpgp wbr wa wceq wb 3ad2ant2 cprime
      w3a cv wral slwprm slwsubg simp3 subsubg 3ad2ant1 mpbir2and oveq1i simpl1
      simplbda ressabs syl5eq breq2d anbi2d simpl2 simprbda eqid slwispgp bitrd
      syl2anc ralrimiva isslw syl3anbrc ) BCHIZJZEACKLJZEBMZUBZAUAJZEDHIZJZEGUC
      ZMZADVONLZOPZQZEVORZSZGVMUDEADKLJVIVHVLVJACEUETVKVNEVGJZVJVIVHWBVJACEUFTV
      HVIVJUGVHVIVNWBVJQSVJEBCDFUHUIUJVKWAGVMVKVOVMJZQZVSVPACVONLZOPZQZVTWDVRWF
      VPWDVQWEAOWDVQCBNLZVONLZWEDWHVONFUKWDVHVOBMZWIWERVHVIVJWCULVKWCVOVGJZWJVH
      VIWCWKWJQSVJVOBCDFUHUIZUMBVOCVGUNVCUOUPUQWDVIWKWGVTSVHVIVJWCURVKWCWKWJWLU
      SAWECEVOWEUTVAVCVBVDAGDEVEVF $.
  $}

  ${
    $d h k n w z .~ $.  $d g h k u w x y A $.  $d g n v x y G $.  $d n w z P $.
    $d v w $.  $d g h k u v x y .(+) $.  $d g h k n u v x y X $.  $d k w z Z $.
    $d h k w z ph $.  $d g h k u w x y z Y $.
    sylow2a.x $e |- X = ( Base ` G ) $.
    sylow2a.m $e |- ( ph -> .(+) e. ( G GrpAct Y ) ) $.
    sylow2a.p $e |- ( ph -> P pGrp G ) $.
    sylow2a.f $e |- ( ph -> X e. Fin ) $.
    sylow2a.y $e |- ( ph -> Y e. Fin ) $.
    sylow2a.z $e |- Z = { u e. Y | A. h e. X ( h .(+) u ) = u } $.
    sylow2a.r $e |- .~ =
      { <. x , y >. | ( { x , y } C_ Y /\ E. g e. X ( g .(+) x ) = y ) } $.
    $( Lemma for ~ sylow2a .  An equivalence class of fixed points is a
       singleton.  (Contributed by Mario Carneiro, 17-Jan-2015.) $)
    sylow2alem1 $p |- ( ( ph /\ A e. Z ) -> [ A ] .~ = { A } ) $=
      ( vw vk wcel wa cec csn cv wceq wbr cvv wb simpr elecg sylancr wrex gaorb
      co simp3bi wral oveq2 id eqeq12d ralbidv elrab2 sylib simprd oveq1 eqeq1d
      vex rspccva sylan eqeq1 syl5ibcom rexlimdva syl5 sylbid velsn syl6ibr wer
      ssrdv cga gaorber syl adantr simpld erref sylancom mpbird snssd eqssd ) A
      ENUDZUEZEHUFZEUGZWMUBWNWOWMUBUHZWNUDZWPEUIZWPWOUDWMWQEWPHUJZWRWMWPUKUDWLW
      QWSULUBVJAWLUMZWPEHUKNUNUOWSUCUHZEGURZWPUIZUCLUPZWMWRWSEMUDZWPMUDXDBCEWPG
      HIUCLMUAUQUSWMXCWRUCLWMXALUDZUEXBEUIZXCWRWMJUHZEGURZEUIZJLUTZXFXGWMXEXKWM
      WLXEXKUEWTXHDUHZGURZXLUIZJLUTXKDEMNXLEUIZXNXJJLXOXMXIXLEXLEXHGVAXOVBVCVDT
      VEVFZVGXJXGJXALXHXAUIXIXBEXHXAEGVHVIVKVLXBWPEVMVNVOVPVQUBEVRVSWAWMEWNWMEW
      NUDZEEHUJZWMEHMAMHVTZWLAGKMWBURUDXSPBCGHIKLMUAOWCWDWEWMXEXKXPWFWGAWLWLXQX
      RULWTEEHNNUNWHWIWJWK $.

    $( Lemma for ~ sylow2a .  All the orbits which are not for fixed points
       have size ` | G | / | G x | ` (where ` G x ` is the stabilizer subgroup)
       and thus are powers of ` P ` .  And since they are all nontrivial
       (because any orbit which is a singleton is a fixed point), they all
       divide ` P ` , and so does the sum of all of them.  (Contributed by
       Mario Carneiro, 17-Jan-2015.) $)
    sylow2alem2 $p |- ( ph ->
      P || sum_ z e. ( ( Y /. .~ ) \ ~P Z ) ( # ` z ) ) $=
      ( vn vw vv vk cqs cpw cdif cv chash cfv cfn wcel wss sylib cga co gaorber
      pwfi wer syl qsss ssfi syl2anc diffi cprime cz cexp wceq cn0 wrex cpgp wa
      wbr cgrp gagrp pgpfi mpbid simpld prmz eldifi adantr sselda elpwid sylan2
      wb hashcl nn0zd wn cdvds eldif cec eqid sseq1 selpw syl6bbr notbid breq2d
      wi fveq2 imbi12d wral cpc cc0 cn c0 wne simpr erref elec sylibr ne0i ecss
      vex hashnncl mpbird pceq0 oveq2 cuni csn c1o cen crab cmul ssrab2 sylancl
      dvdsmul1 cqg orbsta2 syl21anc breqtrrd breq2 biimpcd reximdv sylc eqeq12d
      simprd weq eleqtrd elsn pcprmpw2 eqcomd c1 zcnd exp0d hash1 syl6eqr df1o2
      snfi eqeltri hashen bitrd en1b syl6bb cxp wf ad2antrr simprl fovrnd oveq1
      gaf eqeq1d rspcev syl3anbrc ovex simprr eqtr4d expr ralrimdva sylbid syl5
      gaorb sylbird id ralbidv elrab2 baib sylibrd sylow2alem1 snssd eqsstrd ex
      adantl syld con1d ectocld impr sylan2b fsumdvds ) AMHUFZNUGZUHZDUIZUJUKZD
      FAUWJULUMZUWLULUMAMUGZULUMZUWJUWPUNUWOAMULUMZUWQSMUSUOAMHAGKMUPUQUMZMHUTZ
      PBCGHIKLMUAOURVAZVBZUWPUWJVCVDUWJUWKVEVAAFVFUMZFVGUMZAUXCLUJUKZFUBUIVHUQZ
      VIZUBVJVKZAFKVLVNZUXCUXHVMZQAKVOUMZLULUMZUXIUXJWFAUWSUXKPGKMVPVARFUBKLOVQ
      VDVRZVSZFVTVAZAUWMUWLUMZVMZUWNUXQUWMULUMZUWNVJUMUXPAUWMUWJUMZUXRUWMUWJUWK
      WAAUXSVMZUWRUWMMUNUXRAUWRUXSSWBUXTUWMMAUWJUWPUWMUXBWCWDMUWMVCVDWEUWMWGVAW
      HUXPAUXSUWMUWKUMZWIZVMFUWNWJVNZUWMUWJUWKWKAUXSUYBUYCUCUIZHWLZNUNZWIZFUYEU
      JUKZWJVNZWSUYBUYCWSAUCUWMMHUWJUWJWMUYEUWMVIZUYGUYBUYIUYCUYJUYFUYAUYJUYFUW
      MNUNUYAUYEUWMNWNDNWOWPWQUYJUYHUWNFWJUYEUWMUJWTWRXAAUYDMUMZVMZUYIUYFUYLUYI
      WIZUYDNUMZUYFUYLUYMJUIZUYDGUQZUYDVIZJLXBZUYNUYLUYMFUYHXCUQZXDVIZUYRUYLUXC
      UYHXEUMZUYTUYMWFAUXCUYKUXNWBZUYLVUAUYEXFXGZUYLUYDUYEUMZVUCUYLUYDUYDHVNVUD
      UYLUYDHMAUWTUYKUXAWBAUYKXHZXIUYDUYDHUCXNZVUFXJXKZUYEUYDXLVAUYLUYEULUMZVUA
      VUCWFAVUHUYKAUWRUYEMUNVUHSAUYDHMUXAXMMUYEVCVDZWBZUYEXOVAXPZFUYHXQVDUYTFUY
      SVHUQZFXDVHUQZVIZUYLUYRUYSXDFVHXRUYLVUNUYEUYEXSZXTZVIZUYRUYLVUNUYEYAYBVNZ
      VUQUYLVUNUYHYAUJUKZVIZVURUYLVULUYHVUMVUSUYLUYHVULUYLUYHUXFWJVNZUBVJVKZUYH
      VULVIZUYLUYHUXEWJVNZUXHVVBUYLUYHUYHUDUIUYDGUQUYDVIZUDLYCZUJUKZYDUQZUXEWJA
      UYHVVHWJVNZUYKAUYHVGUMVVGVGUMVVIAUYHAVUHUYHVJUMVUIUYEWGVAWHAVVGAVVFULUMZV
      VGVJUMAUXLVVFLUNVVJRVVEUDLYELVVFVCYFVVFWGVAWHUYHVVGYGVDWBUYLUWSUYKUXLUXEV
      VHVIAUWSUYKPWBVUEAUXLUYKRWBBCUDUYDGKVVFYHUQZIKVVFHLMOVVFWMVVKWMUAYIYJYKAU
      XHUYKAUXCUXHUXMYQWBVVDUXGVVAUBVJUXGVVDVVAUXEUXFUYHWJYLYMYNYOUYLUXCVUAVVBV
      VCWFVUBVUKUYHFUBUUAVDVRUUBUYLVUMUUCVUSUYLFUYLFAUXDUYKUXOWBUUDUUEUUFUUGYPU
      YLVUHYAULUMVUTVURWFVUJYAXFXTULUUHXFUUIUUJUYEYAUUKYFUULUYEUUMUUNUYLVUQUYQJ
      LUYLUYOLUMZVUQUYQUYLVVLVUQVMZVMZUYPVUOUYDVVNUYPVUPUMUYPVUOVIVVNUYPUYEVUPV
      VNUYDUYPHVNZUYPUYEUMVVNUYKUYPMUMUEUIZUYDGUQZUYPVIZUELVKZVVOUYLUYKVVMVUEWB
      ZVVNUYOUYDMLMGVVNUWSLMUUOMGUUPAUWSUYKVVMPUUQGKLMOUVAVAUYLVVLVUQUURZVVTUUS
      VVNVVLUYPUYPVIZVVSVWAUYPWMVVRVWBUEUYOLUEJYRVVQUYPUYPVVPUYOUYDGUUTUVBUVCYF
      BCUYDUYPGHIUELMUAUVLUVDUYPUYDHUYOUYDGUVEZVUFXJXKUYLVVLVUQUVFZYSUYPVUOVWCY
      TUOVVNUYDVUPUMUYDVUOVIVVNUYDUYEVUPUYLVUDVVMVUGWBVWDYSUYDVUOVUFYTUOUVGUVHU
      VIUVJUVKUVMUYKUYNUYRWFAUYNUYKUYRUYOEUIZGUQZVWEVIZJLXBUYREUYDMNEUCYRZVWGUY
      QJLVWHVWFUYPVWEUYDVWEUYDUYOGXRVWHUVNYPUVOTUVPUVQUWCUVRAUYNUYFWSUYKAUYNUYF
      AUYNVMZUYEUYDXTNABCEUYDFGHIJKLMNOPQRSTUAUVSVWIUYDNAUYNXHUVTUWAUWBWBUWDUWE
      UWFUWGUWHUWI $.

    $( A named lemma of Sylow's second and third theorems.  If ` G ` is a
       finite ` P ` -group that acts on the finite set ` Y ` , then the set
       ` Z ` of all points of ` Y ` fixed by every element of ` G ` has
       cardinality equivalent to the cardinality of ` Y ` , ` mod P ` .
       (Contributed by Mario Carneiro, 17-Jan-2015.) $)
    sylow2a $p |- ( ph -> P || ( ( # ` Y ) - ( # ` Z ) ) ) $=
      ( vz vw cqs cpw cdif cv chash cfv csu cmin co cdvds sylow2alem2 caddc cin
      wceq inass disjdif ineq2i in0 3eqtri a1i cun inundif eqcomi cfn wcel pwfi
      c0 sylib cga wer gaorber qsss ssfid wa adantr sselda elpwid hashcl nn0cnd
      syl cn0 fsumsplit qshash c1 cmul cc wss inss1 ssfi sylancl fsumconst cuni
      ax-1cn csn c1o cen wbr elin cec wi eqid sseq1 selpw syl6bbr breq1 imbi12d
      simpr erref vex elec sylibr syl5com sylow2alem1 ensn1 syl6eqbr ex ectocld
      ssel syld impr sylan2b en1b fveq2d cvv vuniex ax-mp syl6eq sumeq2dv ssexg
      hashsng sylancr eqeltrd syl2anc sseldi wb mpbird oveq1d 3eqtr4rd wral cdm
      crab ssrab2 eqsstri mulid1d rabexd inss2 pwexg crn cxp wrel wrex relopabi
      cpr relssdmrn erdm errn xpexg ecelqsg eqeltrrd adantl elind eqsstr3d snss
      snelpwi sneq eqeq2d syl5ibrcom adantrl unieq unisn syl6req impbid1 hashen
      en3d eqtr3d diffi eldifi sylan2 fsumcl subaddd breqtrrd ) AELGUCZMUDZUEZU
      AUFZUGUHZUAUIZLUGUHZMUGUHZUJUKZULABCUADEFGHIJKLMNOPQRSTUMAUWLUWIUPUWKUWIU
      NUKZUWJUPAUWDUWHUAUIUWDUWEUOZUWHUAUIZUWIUNUKUWJUWMAUWNUWFUWHUWDUAUWNUWFUO
      ZVIUPAUWPUWDUWEUWFUOZUOUWDVIUOVIUWDUWEUWFUQUWQVIUWDUWEUWDURUSUWDUTVAVBUWD
      UWNUWFVCZUPAUWRUWDUWDUWEVDVEVBALUDZUWDALVFVGZUWSVFVGRLVHVJALGAFJLVKUKVGLG
      VLZOBCFGHJKLTNVMWBZVNZVOZAUWGUWDVGZVPZUWHUXFUWGVFVGUWHWCVGUXFLUWGAUWTUXER
      VQUXFUWGLAUWDUWSUWGUXCVRVSVOUWGVTWBWAZWDAUALGUXBRWEAUWKUWOUWIUNAUWNWFUAUI
      ZUWNUGUHZWFWGUKZUWOUWKAUWNVFVGZWFWHVGUXHUXJUPAUWDVFVGZUWNUWDWIUXKUXDUWDUW
      EWJUWDUWNWKWLZWOUWNWFUAWMWLAUWNUWHWFUAAUWGUWNVGZVPZUWHUWGWNZWPZUGUHZWFUXO
      UWGUXQUGUXOUWGWQWRWSZUWGUXQUPZUXNAUXEUWGUWEVGZVPUXSUWGUWDUWEWTAUXEUYAUXSU
      BUFZGXAZMWIZUYCWQWRWSZXBUYAUXSXBAUBUWGLGUWDUWDXCUYCUWGUPZUYDUYAUYEUXSUYFU
      YDUWGMWIUYAUYCUWGMXDUAMXEXFUYCUWGWQWRXGXHAUYBLVGZVPZUYDUYBMVGZUYEUYHUYBUY
      CVGZUYDUYIUYHUYBUYBGWSUYJUYHUYBGLAUXAUYGUXBVQAUYGXIXJUYBUYBGUBXKZUYKXLXMU
      YCMUYBXTXNAUYIUYEXBUYGAUYIUYEAUYIVPZUYCUYBWPZWQWRABCDUYBEFGHIJKLMNOPQRSTX
      OZUYBUYKXPXQXRVQYAXSYBYCUWGYDVJZYEUXPYFVGUXRWFUPUAYGZUXPYFYLYHYIYJAUWKWFW
      GUKUWKUXJAUWKAUWKAMVFVGZUWKWCVGAUWTMLWIUYQRMIUFDUFZFUKUYRUPIKUUAZDLUUCLSU
      YSDLUUDUUEZLMWKWLZMVTWBWAZUUFAUWKUXIWFWGAUWKUXIUPZMUWNWRWSZAUBUAMUWNUYMUX
      PAUYSDLMVFSRUUGAUWNUWEWIUWEYFVGZUWNYFVGUWDUWEUUHZAUYQVUEVUAMVFUUIWBUWNUWE
      YFYKYMAUYIUYMUWNVGUYLUWDUWEUYMUYLUYCUYMUWDUYNUYLGYFVGZUYGUYCUWDVGAVUGUYIA
      GGUUBZGUUJZUUKZWIZVUJYFVGZVUGGUULVUKBUFZCUFZUUOLWIHUFVUMFUKVUNUPHKUUMVPBC
      GTUUNGUUPYHAVUHVFVGVUIVFVGVULAVUHLVFAUXAVUHLUPUXBLGUUQWBRYNAVUILVFAUXAVUI
      LUPUXBLGUURWBRYNVUHVUIVFVFUUSYOGVUJYFYKYMVQUYLMLUYBUYTAUYIXIYPLUYBGYFUUTY
      OUVAUYIUYMUWEVGAUYBMUVFUVBUVCXRAUXNUXPMVGZUXOUXQMWIVUOUXOUXQUWGMUYOUXOUWG
      MUXOUWNUWEUWGVUFAUXNXIYPVSUVDUXPMUYPUVEXMXRAUYIUXNVPZUYBUXPUPZUWGUYMUPZYQ
      AVUPVPVUQVURAUXNVUQVURXBUYIUXOVURVUQUXTUYOVUQUYMUXQUWGUYBUXPUVGUVHUVIUVJV
      URUXPUYMWNUYBUWGUYMUVKUYBUYKUVLUVMUVNXRUVPAUYQUXKVUCVUDYQVUAUXMMUWNUVOYOY
      RYSUVQYTYSYTAUWJUWKUWIAUWJAUWTUWJWCVGRLVTWBWAVUBAUWFUWHUAAUXLUWFVFVGUXDUW
      DUWEUVRWBUWGUWFVGAUXEUWHWHVGUWGUWDUWEUVSUXGUVTUWAUWBYRUWC $.
  $}

  ${
    $d a b g s u v x y z G $.  $d g u v x y z K $.  $d a b g s u v x y z .x. $.
    $d g s u v x y z .+ $.  $d a b g s u v x y z .~ $.  $d a b g s u v z ph $.
    $d u x z .- $.  $d x y z B $.  $d x y z C $.  $d a b g s u v x y z H $.
    $d a b g s u v x y z X $.
    sylow2b.x $e |- X = ( Base ` G ) $.
    sylow2b.xf $e |- ( ph -> X e. Fin ) $.
    sylow2b.h $e |- ( ph -> H e. ( SubGrp ` G ) ) $.
    sylow2b.k $e |- ( ph -> K e. ( SubGrp ` G ) ) $.
    sylow2b.a $e |- .+ = ( +g ` G ) $.
    ${
      sylow2b.r $e |- .~ = ( G ~QG K ) $.
      sylow2b.m $e |- .x. = ( x e. H , y e. ( X /. .~ ) |->
        ran ( z e. y |-> ( x .+ z ) ) ) $.
      $( Lemma for ~ sylow2b .  Evaluate the group action on a left coset.
         (Contributed by Mario Carneiro, 17-Jan-2015.) $)
      sylow2blem1 $p |- ( ( ph /\ B e. H /\ C e. X ) ->
        ( B .x. [ C ] .~ ) = [ ( B .+ C ) ] .~ ) $=
        ( wcel w3a cec co cv cmpt crn cqs wceq simp2 cvv cqg ovex eqeltri simp3
        ecelqsg sylancr wa simpr simpl oveq1d mpteq12dv rneqd ecexg ax-mp mptex
        rnex ovmpt2a syl2anc cfn wss cen wbr csubg cfv eqger ecss ssfi 3ad2ant1
        wer syl wf wb vex elecg biimpa cminusg cgrp subgrcl subgss sseldd grpcl
        syl3anc adantr eqid eqgval simp2d grpinvcl syl13anc grpinvadd grpsubval
        grpass csg eqtr4d grpnpcan eqtrd eqtr3d simp3d eqeltrd mpbir3and sylibr
        elec syldan fmptd frn wf1o wf1 cres grplmulf1o f1of1 f1ssres f1eq1 3syl
        resmpt mpbid f1f1orn f1oen ensym eqgen entr fisseneq ) AEKUAZFMUAZUBZEF
        HUCZIUDZDYOEDUEZGUDZUFZUGZEFGUDZHUCZYNYLYOMHUHZUAZYPYTUIAYLYMUJZYNHUKUA
        ZYMUUDHJLULUDUKSJLULUMUNZAYLYMUOZMFHUKUPUQZBCEYOKUUCDCUEZBUEZYQGUDZUFZU
        GYTIUUKEUIZUUJYOUIZURZUUMYSUUPDUUJUULYOYRUUNUUOUSUUPUUKEYQGUUNUUOUTVAVB
        VCTYSDYOYRUUFYOUKUAUUGFUKHVDVEZVFVGVHVIYNUUBVJUAZYTUUBVKZYTUUBVLVMZYTUU
        BUIAYLUURYMAMVJUAUUBMVKUUROAUUAHMALJVNVOZUAZMHVTQHJMLNSVPWAZVQMUUBVRVIV
        SYNYOUUBYSWBUUSYNDYOYRUUBYSYNYQYOUAZFYQHVMZYRUUBUAZYNUVDUVEYNYQUKUAYMUV
        DUVEWCDWDUUHYQFHUKMWEUQWFYNUVEURZUUAYRHVMZUVFUVGUVHUUAMUAZYRMUAZUUAJWGV
        OZVOZYRGUDZLUAZYNUVIUVEYNJWHUAZEMUAZYMUVIAYLUVOYMAKUVAUAZUVOPKJWIWAZVSZ
        YNKMEAYLKMVKZYMAUVQUVTPMKJNWJWAVSUUEWKZUUHMGJEFNRWLWMZWNUVGUVOUVPYQMUAZ
        UVJYNUVOUVEUVSWNZYNUVPUVEUWAWNZUVGYMUWCFUVKVOZYQGUDZLUAZYNUVEYMUWCUWHUB
        ZAYLUVEUWIWCZYMAUVOLMVKZUWJUVRAUVBUWKQMLJNWJWAZFYQGHLJUVKWHMNUVKWOZRSWP
        VIVSWFZWQZMGJEYQNRWLWMUVGUVMUWGLUVGUVLEGUDZYQGUDZUVMUWGUVGUVOUVLMUAZUVP
        UWCUWQUVMUIUWDYNUWRUVEYNUVOUVIUWRUVSUWBMJUVKUUANUWMWRVIWNUWEUWOMGJUVLEY
        QNRXBWSYNUWQUWGUIUVEYNUWPUWFYQGYNUWPUWFEJXCVOZUDZEGUDZUWFYNUVLUWTEGYNUV
        LUWFEUVKVOGUDZUWTYNUVOUVPYMUVLUXBUIUVSUWAUUHMGJUVKEFNRUWMWTWMYNUWFMUAZU
        VPUWTUXBUIYNUVOYMUXCUVSUUHMJUVKFNUWMWRVIZUWAMGJUVKUWSUWFENRUWMUWSWOZXAV
        IXDVAYNUVOUXCUVPUXAUWFUIUVSUXDUWAMGJUWSUWFENRUXEXEWMXFVAWNXGUVGYMUWCUWH
        UWNXHXIYNUVHUVIUVJUVNUBWCZUVEAYLUXFYMAUVOUWKUXFUVRUWLUUAYRGHLJUVKWHMNUW
        MRSWPVIVSWNXJYRUUAHEYQGUMEFGUMXLXKXMYSWOXNYOUUBYSXOWAYNYTYOVLVMZYOUUBVL
        VMZUUTYNYOYTYSXPZYOYTVLVMUXGYNYOMYSXQZUXIYNYOMDMYRUFZYOXRZXQZUXJYNMMUXK
        XQZYOMVKZUXMYNMMUXKXPZUXNYNUVOUVPUXPUVSUWADMGUXKJENRUXKWOXSVIMMUXKXTWAA
        YLUXOYMAFHMUVCVQVSZMMYOUXKYAVIYNUXOUXLYSUIUXMUXJWCUXQDMYOYRYDYOMUXLYSYB
        YCYEYOMYSYFWAYOYTYSUUQYGYOYTYHYCYNYOLVLVMZLUUBVLVMZUXHYNLYOVLVMZUXRYNUV
        BUUDUXTAYLUVBYMQVSZUUIYOHJMLNSYIVILYOYHWAYNUVBUUBUUCUAZUXSUYAYNUUFUVIUY
        BUUGUWBMUUAHUKUPUQUUBHJMLNSYIVIYOLUUBYJVIYTYOUUBYJVIYTUUBYKWMXF $.

      $( Lemma for ~ sylow2b .  Left multiplication in a subgroup ` H ` is a
         group action on the set of all left cosets of ` K ` .  (Contributed by
         Mario Carneiro, 17-Jan-2015.) $)
      sylow2blem2 $p |- ( ph -> .x. e. ( ( G |`s H ) GrpAct ( X /. .~ ) ) ) $=
        ( co wcel vu va vb vv vs cress cgrp cqs cvv wa cbs cfv cxp wf cv cplusg
        c0g wceq wral cga csubg eqid subggrp syl cpw cfn pwfi sylib eqger ssexd
        wer qsss jca wfn cmpt crn vex mptex rnex fnmpt2i a1i eleq1d sylow2blem1
        cec oveq2 w3a cqg ovex eqeltri subgrcl 3ad2ant1 wss subgss sselda simp3
        3adant3 grpcl syl3anc ecelqsg sylancr eqeltrd ectocld ralrimiva subgbas
        3expa ffnov sylanbrc xpeq1d feq2d mpbid eqeq12d oveq2d 2ralbidv anbi12d
        id simpl adantr subg0cl simpr subg0 oveq1d grplid eceq1d 3eqtr3d simprl
        sylan sseldd simprr grpass syl13anc eqtr4d 3eqtr4d ralrimivva ressplusg
        subgcl oveqdr eqeq1d raleqbidv isga ) AHIUFSZUGTZKFUHZUITZUJYTUKULZUUBU
        MZUUBGUNZYTUQULZUAUOZGSZUUHURZUBUOZUCUOZYTUPULZSZUUHGSZUUKUULUUHGSZGSZU
        RZUCUUDUSUBUUDUSZUJZUAUUBUSZUJGYTUUBUTSTAUUAUUCAIHVAULZTZUUANIHYTYTVBZV
        CVDAUUBKVEZVFAKVFTUVEVFTMKVGVHAKFAJUVBTKFVKOFHKJLQVIVDVLVJVMAUUFUVAAIUU
        BUMZUUBGUNZUUFAGUVFVNZUUHUDUOZGSZUUBTZUDUUBUSZUAIUSUVGUVHABCIUUBDCUOZBU
        ODUOESZVOZVPGRUVODUVMUVNCVQVRVSVTWAAUVLUAIAUUHITZUJZUVKUDUUBUUHUEUOZFWD
        ZGSZUUBTZUVKUVQUEUVIKFUUBUUBVBZUVSUVIURUVTUVJUUBUVSUVIUUHGWEWBAUVPUVRKT
        ZUWAAUVPUWCWFZUVTUUHUVRESZFWDZUUBABCDUUHUVREFGHIJKLMNOPQRWCUWDFUITUWEKT
        ZUWFUUBTFHJWGSUIQHJWGWHWIUWDHUGTZUUHKTZUWCUWGAUVPUWHUWCAUVCUWHNIHWJZVDZ
        WKAUVPUWIUWCAIKUUHAUVCIKWLZNKIHLWMZVDWNWPAUVPUWCWOKEHUUHUVRLPWQWRKUWEFU
        IWSWTXAXEXBXCXCUAUDIUUBUUBGXFXGAUVFUUEUUBGAIUUDUUBAUVCIUUDURZNIHYTUVDXD
        ZVDXHXIXJAUUTUAUUBUUGUVSGSZUVSURZUUNUVSGSZUUKUULUVSGSZGSZURZUCUUDUSZUBU
        UDUSZUJUUTAUEUUHKFUUBUWBUVSUUHURZUWQUUJUXCUUSUXDUWPUUIUVSUUHUVSUUHUUGGW
        EUXDXOXKUXDUXAUURUBUCUUDUUDUXDUWRUUOUWTUUQUVSUUHUUNGWEUXDUWSUUPUUKGUVSU
        UHUULGWEXLXKXMXNAUWCUJZUWQUXCUXEHUQULZUVSGSZUXFUVRESZFWDZUWPUVSUXEAUXFI
        TZUWCUXGUXIURAUWCXPZUXEUVCUXJAUVCUWCNXQZIHUXFUXFVBZXRVDAUWCXSZABCDUXFUV
        REFGHIJKLMNOPQRWCWRUXEUXFUUGUVSGUXEUVCUXFUUGURUXLIHYTUXFUVDUXMXTVDYAUXE
        UXHUVRFAUWHUWCUXHUVRURUWKKEHUVRUXFLPUXMYBYFYCYDUXEUUKUULESZUVSGSZUWTURZ
        UCIUSZUBIUSUXCUXEUXQUBUCIIUXEUUKITZUULITZUJZUJZUXOUVRESZFWDZUUKUULUVRES
        ZFWDZGSZUXPUWTUYBUYDUUKUYEESZFWDZUYGUYBUYCUYHFUYBUWHUUKKTUULKTZUWCUYCUY
        HURUYBUVCUWHUXEUVCUYAUXLXQZUWJVDZUYBIKUUKUYBUVCUWLUYKUWMVDZUXEUXSUXTYEZ
        YGUYBIKUULUYMUXEUXSUXTYHZYGZUXEUWCUYAUXNXQZKEHUUKUULUVRLPYIYJYCUYBAUXSU
        YEKTZUYGUYIURUXEAUYAUXKXQZUYNUYBUWHUYJUWCUYRUYLUYPUYQKEHUULUVRLPWQWRABC
        DUUKUYEEFGHIJKLMNOPQRWCWRYKUYBAUXOITZUWCUXPUYDURUYSUYBUVCUXSUXTUYTUYKUY
        NUYOEIHUUKUULPYOWRUYQABCDUXOUVREFGHIJKLMNOPQRWCWRUYBUWSUYFUUKGUYBAUXTUW
        CUWSUYFURUYSUYOUYQABCDUULUVREFGHIJKLMNOPQRWCWRXLYLYMUXEUXRUXBUBIUUDUXEU
        VCUWNUXLUWOVDZUXEUXQUXAUCIUUDVUAUXEUXPUWRUWTUXEUXOUUNUVSGAUWCUBUCEUUMAU
        VCEUUMURNIEHYTUVBUVDPYNVDYPYAYQYRYRXJVMXBXCVMUAUBUCUUMGYTUUDUUBUUGUUDVB
        UUMVBUUGVBYSXG $.

      sylow2blem3.hp $e |- ( ph -> P pGrp ( G |`s H ) ) $.
      sylow2blem3.kn $e |- ( ph -> ( # ` K ) = ( P ^ ( P pCnt ( # ` X ) ) ) )
          $.
      sylow2blem3.d $e |- .- = ( -g ` G ) $.
      $( Sylow's second theorem.  Putting together the results of ~ sylow2a and
         the orbit-stabilizer theorem to show that ` P ` does not divide the
         set of all fixed points under the group action, we get that there is a
         fixed point of the group action, so that there is some ` g e. X ` with
         ` h g K = g K ` for all ` h e. H ` .  This implies that
         ` invg ( g ) h g e. K ` , so ` h ` is in the conjugated subgroup
         ` g K invg ( g ) ` .  (Contributed by Mario Carneiro, 18-Jan-2015.) $)
      sylow2blem3 $p |- ( ph ->
        E. g e. X H C_ ran ( x e. K |-> ( ( g .+ x ) .- g ) ) ) $=
        ( vu cv co wceq wral cqs wrex cmpt crn wss cress cbs cfv crab wne chash
        c0 cdvds wbr wn cpc cexp cdiv cprime wcel cn cpgp pgpprm syl cgrp csubg
        subgrcl grpbn0 wb hashnncl mpbird pcndvds2 syl2anc cmul lagsubg2 oveq1d
        cfn oveq2d cn0 cpw pwfi sylib wer eqger qsss ssfi hashcl nn0cnd subg0cl
        c0g eqid ne0i subgss nncnd nnne0d divcan4d 3eqtr3d breq2d mtbid cz cmin
        prmz nn0zd ssrab2 sylancl wa copab sylow2blem2 subgbas eqeltrrd sylow2a
        cpr dvdssub2 syl31anc cc0 hasheq0 dvds0 syl5ibrcom sylbird necon3bd mpd
        breq2 rabn0 raleqdv rexbidv cec wi syl3anc ad2antrr ovex expr elqs erth
        vex cminusg w3a simplrr simprr simpll simprl simplrl sylow2blem1 eqtr3d
        eqgval mpbid simp3d oveq2 fvmpt grprinv grpinvcl sseldd grpass syl13anc
        grpcl grplid grppncan 3eqtrd wfn fnmpti fnfvelrn sylancr ralimdva an32s
        imp dfss3 sylibr reximdva ex com23 syl5bi rexlimdv ) AUEUFZDUFZHUGZUWBU
        HZUEKUIZDNGUJZUKZKBLIUFZBUFZFUGZUWHMUGZULZUMZUNZINUKZAUWGUWDUEJKUOUGZUP
        UQZUIZDUWFUKZAUWRDUWFURZVAUSZUWSAEUWTUTUQZVBVCZVDUXAAEUWFUTUQZVBVCZUXCA
        ENUTUQZEEUXFVEUGVFUGZVGUGZVBVCZUXEAEVHVIZUXFVJVIZUXIVDAEUWPVKVCUXJUBEUW
        PVLVMZAUXKNVAUSZAJVNVIZUXMAKJVOUQZVIZUXNQKJVPVMZNJOVQVMANWFVIZUXKUXMVRP
        NVSVMVTEUXFWAWBAUXHUXDEVBAUXFLUTUQZVGUGUXDUXSWCUGZUXSVGUGUXHUXDAUXFUXTU
        XSVGAGJNLOTRPWDWEAUXSUXGUXFVGUCWGAUXDUXSAUXDAUWFWFVIZUXDWHVIANWIZWFVIZU
        WFUYBUNUYAAUXRUYCPNWJWKANGALUXOVIZNGWLZRGJNLOTWMVMZWNUYBUWFWOWBZUWFWPVM
        ZWQAUXSAUXSVJVIZLVAUSZAJWSUQZLVIZUYJAUYDUYLRLJUYKUYKWTZWRVMLUYKXAVMALWF
        VIZUYIUYJVRAUXRLNUNZUYNPAUYDUYORNLJOXBVMZNLWOWBLVSVMVTZXCAUXSUYQXDXEXFX
        GXHAEXIVIZUXDXIVIUXBXIVIEUXDUXBXJUGVBVCUXEUXCVRAUXJUYRUXLEXKVMZAUXDUYHX
        LAUXBAUWTWFVIZUXBWHVIAUYAUWTUWFUNUYTUYGUWRDUWFXMUWFUWTWOXNZUWTWPVMXLABC
        DEHUWICUFZYAUWFUNUWHUWIHUGVUBUHIUWQUKXOBCXPZIUEUWPUWQUWFUWTUWQWTABCDFGH
        JKLNOPQRSTUAXQUBAKUWQWFAUXPKUWQUHQKJUWPUWPWTXRVMZAUXRKNUNZKWFVIPAUXPVUE
        QNKJOXBVMZNKWOWBXSUYGUWTWTVUCWTXTEUXDUXBYBYCXHAUXCUWTVAAUWTVAUHZUXBYDUH
        ZUXCAUYTVUHVUGVRVUAUWTWFYEVMAUXCVUHEYDVBVCZAUYRVUIUYSEYFVMUXBYDEVBYKYGY
        HYIYJUWRDUWFYLWKAUWEUWRDUWFAUWDUEKUWQVUDYMYNVTAUWEUWODUWFUWBUWFVIUWBUWH
        GYOZUHZINUKZAUWEUWOYPINUWBGDUUCUUAAUWEVULUWOAUWEVULUWOYPAUWEXOZVUKUWNIN
        VUMUWHNVIZVUKUWNVUMVUNVUKXOZXOUWAUWMVIZUEKUIZUWNAVUOUWEVUQAVUOXOZUWEVUQ
        VURUWDVUPUEKVURUWAKVIZUWDVUPVURVUSUWDXOZXOZUWHJUUDUQZUQZUWAUWHFUGZFUGZU
        WLUQZUWAUWMVVAVVFUWHVVEFUGZUWHMUGZVVDUWHMUGZUWAVVAVVELVIZVVFVVHUHVVAVUN
        VVDNVIZVVJVVAUWHVVDGVCZVUNVVKVVJUUEZVVAVVLVUJVVDGYOZUHVVAUWBVUJVVNAVUNV
        UKVUTUUFZVVAUWCUWAVUJHUGZUWBVVNVVAUWBVUJUWAHVVOWGVURVUSUWDUUGVVAAVUSVUN
        VVPVVNUHAVUOVUTUUHVURVUSUWDUUIZAVUNVUKVUTUUJZABCDUWAUWHFGHJKLNOPQRSTUAU
        UKYQXFUULVVAUWHVVDGNAUYEVUOVUTUYFYRVVRUUBVTVVAUXNUYOVVLVVMVRAUXNVUOVUTU
        XQYRZAUYOVUOVUTUYPYRUWHVVDFGLJVVBVNNOVVBWTZSTUUMWBUUNUUOZBVVEUWKVVHLUWL
        UWIVVEUHUWJVVGUWHMUWIVVEUWHFUUPWEUWLWTZVVGUWHMYSUUQVMVVAVVGVVDUWHMVVAUW
        HVVCFUGZVVDFUGZUYKVVDFUGZVVGVVDVVAVWCUYKVVDFVVAUXNVUNVWCUYKUHVVSVVRNFJV
        VBUWHUYKOSUYMVVTUURWBWEVVAUXNVUNVVCNVIZVVKVWDVVGUHVVSVVRVVAUXNVUNVWFVVS
        VVRNJVVBUWHOVVTUUSWBVVAUXNUWANVIZVUNVVKVVSVVAKNUWAAVUEVUOVUTVUFYRVVQUUT
        ZVVRNFJUWAUWHOSUVCYQZNFJUWHVVCVVDOSUVAUVBVVAUXNVVKVWEVVDUHVVSVWINFJVVDU
        YKOSUYMUVDWBXFWEVVAUXNVWGVUNVVIUWAUHVVSVWHVVRNFJMUWAUWHOSUDUVEYQUVFVVAU
        WLLUVGVVJVVFUWMVIBLUWKUWLUWJUWHMYSVWBUVHVWALVVEUWLUVIUVJXSYTUVKUVMUVLUE
        KUWMUVNUVOYTUVPUVQUVRUVSUVTYJ $.
    $}

    sylow2b.hp $e |- ( ph -> P pGrp ( G |`s H ) ) $.
    sylow2b.kn $e |- ( ph -> ( # ` K ) = ( P ^ ( P pCnt ( # ` X ) ) ) ) $.
    sylow2b.d $e |- .- = ( -g ` G ) $.
    $( Sylow's second theorem.  Any ` P ` -group ` H ` is a subgroup of a
       conjugated ` P ` -group ` K ` of order ` P ^ n || ( # `` X ) ` with
       ` n ` maximal.  This is usually stated under the assumption that ` K `
       is a Sylow subgroup, but we use a slightly different definition, whose
       equivalence to this one requires this theorem.  This is part of Metamath
       100 proof #72.  (Contributed by Mario Carneiro, 18-Jan-2015.) $)
    sylow2b $p |- ( ph ->
      E. g e. X H C_ ran ( x e. K |-> ( ( g .+ x ) .- g ) ) ) $=
      ( vz cv vy vu vv vs cqg co cqs cmpt crn cmpt2 eqid oveq2 cbvmptv mpteq2dv
      weq oveq1 syl5eq rneqd mpteq1 cbvmpt2v sylow2blem3 ) ABUASCDFHUEUFZUBUCGJ
      VBUGZUDUCTZUBTZUDTZDUFZUHZUIZUJEFGHIJKLMNOVBUKUBUCBUAGVCVISUATZBTZSTZDUFZ
      UHZUISVDVMUHZUIUBBUOZVHVOVPVHSVDVEVLDUFZUHVOUDSVDVGVQVFVLVEDULUMVPSVDVQVM
      VEVKVLDUPUNUQURUCUAUOVOVNSVDVJVMUSURUTPQRVA $.
  $}

  ${
    $d g k n x G $.  $d g k n x H $.  $d g k n p P $.  $d g k n p x X $.
    $d g k ph $.
    fislw.1 $e |- X = ( Base ` G ) $.
    ${
      slwhash.3 $e |- ( ph -> X e. Fin ) $.
      slwhash.4 $e |- ( ph -> H e. ( P pSyl G ) ) $.
      $( A sylow subgroup has cardinality equal to the maximum power of ` P `
         dividing the group.  (Contributed by Mario Carneiro, 18-Jan-2015.) $)
      slwhash $p |- ( ph -> ( # ` H ) = ( P ^ ( P pCnt ( # ` X ) ) ) ) $=
        ( vx vn chash cfv co wceq wcel syl cfn syl2anc wa eqid vk vg cexp csubg
        cv cpc cgrp cslw slwsubg subgrcl cprime slwprm cn c0 grpbn0 wb hashnncl
        wne mpbird pccld cdvds wbr pcdvds sylow1 cplusg csg cmpt crn wss adantr
        simprl cress cpgp slwpgp sylow2b cbs cn0 wrex ad2antrr conjsubg subgbas
        simprr fveq2d conjsubgen subgss ssfi hashen simplrr eqtr3d oveq2 eqeq2d
        cen rspcev subggrp eqeltrrd pgpfi mpbir2and slwispgp mpbi2and rexlimddv
        eqtrd ) AUAUEZKLZBBEKLZUFMZUCMZNZDKLZXFNZUACUDLZABUACXEEFADXJOZCUGOZADB
        CUHMOZXKHBCDUIPZDCUJPZGAXMBUKOZHBCDULZPZABXDXRAXDUMOZEUNURZAXLXTXOECFUO
        PAEQOZXSXTUPGEUQPUSZUTZAXPXSXFXDVAVBXRYBBXDVCRVDAXBXJOZXGSZSZDIXBUBUEZI
        UECVELZMYGCVFLZMVGZVHZVIZXIUBEYFIBYHUBCDXBYIEFAYAYEGVJAXKYEXNVJAYDXGVKZ
        YHTZABCDVLMZVMVBZYEAXMYPHBYOCDYOTVNPVJAYDXGWBYITZVOYFYGEOZYLSZSZXHYKKLZ
        XFYTDYKKYTYLBCYKVLMZVMVBZDYKNZYFYRYLWBYTUUCXPUUBVPLZKLZBJUEZUCMZNZJVQVR
        ZYTXMXPAXMYEYSHVSZXQPYTXEVQOZUUFXFNZUUJAUULYEYSYCVSYTUUAUUFXFYTYKUUEKYT
        YKXJOZYKUUENYTYDYRUUNYFYDYSYMVJZYFYRYLVKZIYGYHXBYJCYIEFYNYQYJTZVTRZYKCU
        UBUUBTZWAPZWCYTXCUUAXFYTXCUUANZXBYKWLVBZYTYDYRUVBUUOUUPIYGYHXBYJCYIEFYN
        YQUUQWDRYTXBQOZYKQOZUVAUVBUPYTYAXBEVIZUVCAYAYEYSGVSZYTYDUVEUUOEXBCFWEPE
        XBWFRYTYAYKEVIZUVDUVFYTUUNUVGUUREYKCFWEPEYKWFRZXBYKWGRUSAYDXGYSWHWIZWIU
        UIUUMJXEVQUUGXENUUHXFUUFUUGXEBUCWJWKWMRYTUUBUGOZUUEQOUUCXPUUJSUPYTUUNUV
        JUURYKCUUBUUSWNPYTYKUUEQUUTUVHWOBJUUBUUEUUETWPRWQYTXMUUNYLUUCSUUDUPUUKU
        URBUUBCDYKUUSWRRWSWCUVIXAWTWT $.
    $}

    $( The sylow subgroups of a finite group are exactly the groups which have
       cardinality equal to the maximum power of ` P ` dividing the group.
       (Contributed by Mario Carneiro, 16-Jan-2015.) $)
    fislw $p |- ( ( G e. Grp /\ X e. Fin /\ P e. Prime ) ->
      ( H e. ( P pSyl G ) <-> ( H e. ( SubGrp ` G ) /\
        ( # ` H ) = ( P ^ ( P pCnt ( # ` X ) ) ) ) ) ) $=
      ( vn wcel cfn co cfv chash cpc wceq wa syl wbr wb adantr syl2anc cn0 cgrp
      vk vp cprime w3a cslw csubg simpr slwsubg simpl2 slwhash jca cv wss cress
      cexp cpgp wral simpl3 simprl cen subgss ssfi simprrl cdom ssdomg sylc cle
      cn cbs wrex simprrr eqid subggrp subgbas eqeltrrd pgpfi mpbid prmnn nnred
      simpld nnge1d cz cuz c0 wne c0g subg0cl ne0i hashnncl mpbird pccld simpl1
      nn0zd grpbn0 cdvds lagsubg pc2dvds oveq1 breq12d rspcv syl3anbrc leexp2ad
      nnzd eluz2 simprd fveq2d rexbidv pcprmpw simplrr 3brtr4d ad2antrl hashdom
      eqeq1d sbth fisseneq syl3anc simprr eqtr3d eqeq2d rspcev mpbir2and breq2d
      oveq2 eqimss biantrurd bitrd syl5ibcom impbid ralrimiva isslw impbida
      expr ) BUAGZDHGZAUDGZUEZCABUFIGZCBUGJZGZCKJZAADKJZLIZUPIZMZNZYQYRNZYTUUEU
      UGYRYTYQYRUHZABCUIOUUGABCDEYNYOYPYRUJUUHUKULYQUUFNZYPYTCUBUMZUNZABUUJUOIZ
      UQPZNZCUUJMZQZUBYSURYRYNYOYPUUFUSZYQYTUUEUTUUIUUPUBYSUUIUUJYSGZNZUUNUUOUU
      IUURUUNUUOUUIUURUUNNZNZUUJHGZUUKCUUJVAPZUUOUVAYOUUJDUNZUVBUUIYOUUTYNYOYPU
      UFUJZRZUVAUURUVDUUIUURUUNUTZDUUJBEVBODUUJVCSZUUIUURUUKUUMVDZUVACUUJVEPZUU
      JCVEPZUVCUVAUVBUUKUVJUVHUVICUUJHVFVGUVAUUJKJZUUAVHPZUVKUVAAAUVLLIZUPIZUUD
      UVLUUAVHUVAAUVNUUCUVAAUVAYPAVIGUVAYPUULVJJZKJZAFUMZUPIZMZFTVKZUVAUUMYPUWA
      NZUUIUURUUKUUMVLUVAUULUAGZUVPHGUUMUWBQUVAUURUWCUVGUUJBUULUULVMZVNOUVAUUJU
      VPHUVAUURUUJUVPMUVGUUJBUULUWDVOOZUVHVPAFUULUVPUVPVMVQSVRZWAZAVSOZVTUVAAUW
      HWBUVAUVNWCGUUCWCGUVNUUCVHPZUUCUVNWDJGUVAUVNUVAAUVLUWGUVAUVLVIGZUUJWEWFZU
      VABWGJZUUJGZUWKUVAUURUWMUVGUUJBUWLUWLVMWHOUUJUWLWIOUVAUVBUWJUWKQUVHUUJWJO
      WKZWLWNUVAUUCUUIUUCTGZUUTUUIAUUBUUQUUIUUBVIGZDWEWFZUUIYNUWQYNYOYPUUFWMDBE
      WOOUUIYOUWPUWQQUVEDWJOWKZWLZRWNUVAYPUCUMZUVLLIZUWTUUBLIZVHPZUCUDURZUWIUWG
      UVAUVLUUBWPPZUXDUVAUURYOUXEUVGUVFBDUUJEWQSUVAUVLWCGUUBWCGUXEUXDQUVAUVLUWN
      XDUVAUUBUUIUWPUUTUWRRXDUVLUUBUCWRSVRUXCUWIUCAUDUWTAMUXAUVNUXBUUCVHUWTAUVL
      LWSUWTAUUBLWSWTXAVGUVNUUCXEXBXCUVAUVLUVSMZFTVKZUVLUVOMZUVAUXGUWAUVAYPUWAU
      WFXFUVAUXFUVTFTUVAUVLUVQUVSUVAUUJUVPKUWEXGXNXHWKUVAYPUWJUXGUXHQUWGUWNUVLA
      FXISVRYQYTUUEUUTXJXKUVAUVBCHGZUVMUVKQUVHUUIUXIUUTUUIYOCDUNZUXIUVEYTUXJYQU
      UEDCBEVBXLDCVCSZRUUJCHXMSVRCUUJXOSCUUJXPXQYMUUSABCUOIZUQPZUUOUUNUUIUXMUUR
      UUIUXMYPUXLVJJZKJZUVSMZFTVKZUUQUUIUWOUXOUUDMZUXQUWSUUIUUAUXOUUDUUICUXNKYT
      CUXNMYQUUECBUXLUXLVMZVOXLZXGYQYTUUEXRXSUXPUXRFUUCTUVRUUCMUVSUUDUXOUVRUUCA
      UPYDXTYASUUIUXLUAGZUXNHGUXMYPUXQNQYTUYAYQUUECBUXLUXSVNXLUUICUXNHUXTUXKVPA
      FUXLUXNUXNVMVQSYBRUUOUXMUUMUUNUUOUXLUULAUQCUUJBUOYDYCUUOUUKUUMCUUJYEYFYGY
      HYIYJAUBBCYKXBYL $.
  $}

  ${
    $d x .- $.  $d g x .+ $.  $d g x G $.  $d g x H $.  $d g x K $.  $d g ph $.
    $d g x X $.
    sylow2.x $e |- X = ( Base ` G ) $.
    sylow2.f $e |- ( ph -> X e. Fin ) $.
    sylow2.h $e |- ( ph -> H e. ( P pSyl G ) ) $.
    sylow2.k $e |- ( ph -> K e. ( P pSyl G ) ) $.
    sylow2.a $e |- .+ = ( +g ` G ) $.
    sylow2.d $e |- .- = ( -g ` G ) $.
    $( Sylow's second theorem.  See also ~ sylow2b for the "hard" part of the
       proof.  Any two Sylow ` P ` -subgroups are conjugate to one another, and
       hence the same size, namely ` P ^ ( P pCnt | X | ) ` (see ~ fislw ).
       This is part of Metamath 100 proof #72.  (Contributed by Mario Carneiro,
       18-Jan-2015.) $)
    sylow2 $p |- ( ph ->
      E. g e. X H = ran ( x e. K |-> ( ( g .+ x ) .- g ) ) ) $=
      ( co wcel syl syl2anc cv cmpt crn wss wceq wa cfn cen wbr adantr cfv cslw
      csubg slwsubg simprl eqid conjsubg subgss simprr chash cpc slwhash eqtr4d
      ssfi cexp hashen mpbid conjsubgen entr fisseneq syl3anc cress cpgp slwpgp
      wb sylow2b reximddv ) AGBHEUAZBUADQVRIQUBZUCZUDZGVTUEZEJAVRJRZWAUFZUFZVTU
      GRZWAGVTUHUIZWBWEJUGRZVTJUDZWFAWHWDLUJWEVTFUMUKZRZWIWEHWJRZWCWKAWLWDAHCFU
      LQZRWLNCFHUNSZUJZAWCWAUOZBVRDHVSFIJKOPVSUPZUQTJVTFKURSJVTVDTAWCWAUSWEGHUH
      UIZHVTUHUIZWGAWRWDAGUTUKZHUTUKZUEZWRAWTCCJUTUKVAQVEQXAACFGJKLMVBACFHJKLNV
      BZVCAGUGRZHUGRZXBWRVOAWHGJUDZXDLAGWJRZXFAGWMRZXGMCFGUNSZJGFKURSJGVDTAWHHJ
      UDZXELAWLXJWNJHFKURSJHVDTGHVFTVGUJWEWLWCWSWOWPBVRDHVSFIJKOPWQVHTGHVTVITGV
      TVJVKABCDEFGHIJKLXIWNOAXHCFGVLQZVMUIMCXKFGXKUPVNSXCPVPVQ $.
  $}

  ${
    $d a b c u v w x y z .- $.  $d a b c g h s u w x y z .(+) $.  $d g x y H $.
    $d g h s u v w x y z K $.  $d g k u w z N $.  $d a b c g h k u w x y z X $.
    $d a b c g h k s u w x y z G $.  $d a b c g h k s u w x y z ph $.
    $d a b c g u v w x y z .+ $.  $d a b c g h k s u w x y z P $.
    sylow3.x $e |- X = ( Base ` G ) $.
    sylow3.g $e |- ( ph -> G e. Grp ) $.
    sylow3.xf $e |- ( ph -> X e. Fin ) $.
    sylow3.p $e |- ( ph -> P e. Prime ) $.
    ${
      sylow3lem1.a $e |- .+ = ( +g ` G ) $.
      sylow3lem1.d $e |- .- = ( -g ` G ) $.
      sylow3lem1.m $e |- .(+) = ( x e. X , y e. ( P pSyl G ) |->
        ran ( z e. y |-> ( ( x .+ z ) .- x ) ) ) $.
      $( Lemma for ~ sylow3 , first part.  (Contributed by Mario Carneiro,
         19-Jan-2015.) $)
      sylow3lem1 $p |- ( ph -> .(+) e. ( G GrpAct ( P pSyl G ) ) ) $=
        ( wcel co wceq va vb vc vw vu vv cgrp cslw cvv wa cxp wf c0g cfv cv cga
        wral ovex jctir cmpt crn csubg chash cpc cexp cfn cprime syl3anc biimpa
        wb fislw adantrl simpld simprl eqid conjsubg syl2anc cen wbr conjsubgen
        wss adantr subgss ssfi hashen mpbird simprd eqtr3d mpbir2and ralrimivva
        syl fmpt2 sylib grpidcl simpr simpl oveq1d oveq12d mpteq12dv rneqd rnex
        weq vex mptex ovmpt2a cid cres ad2antrr slwsubg adantl sselda grpsubid1
        grplid eqtrd mpteq2dva mptresid syl6eq rnresi wrex oveq2 abrexco simprr
        cab simplr rnmpt rexeqdv grpcl adantlr grpsubsub4 syl13anc grpaddsubass
        abbidv grpass eqeq2d rexbidva 3eqtr4a 3eqtr4g fovrnd cbvmptv jca isga
        3eqtr4rd ralrimiva sylanbrc ) AHUGRZEHUHSZUIRZUJJUUFUKUUFGULZHUMUNZUAUO
        ZGSZUUJTZUBUOZUCUOZFSZUUJGSZUUMUUNUUJGSZGSZTZUCJUQUBJUQZUJZUAUUFUQZUJGH
        UUFUPSRAUUEUUGLEHUHURUSAUUHUVBADCUOZBUOZDUOZFSZUVDISZUTZVAZUUFRZCUUFUQB
        JUQUUHAUVJBCJUUFAUVDJRZUVCUUFRZUJZUJZUVJUVIHVBUNZRZUVIVCUNZEEJVCUNVDSVE
        SZTZUVNUVCUVORZUVKUVPUVNUVTUVCVCUNZUVRTZAUVLUVTUWBUJZUVKAUVLUWCAUUEJVFR
        ZEVGRZUVLUWCVJLMNEHUVCJKVKVHVIVLZVMZAUVKUVLVNZDUVDFUVCUVHHIJKOPUVHVOZVP
        VQZUVNUWAUVQUVRUVNUWAUVQTZUVCUVIVRVSZUVNUVTUVKUWLUWGUWHDUVDFUVCUVHHIJKO
        PUWIVTVQUVNUVCVFRZUVIVFRZUWKUWLVJUVNUWDUVCJWAZUWMAUWDUVMMWBZUVNUVTUWOUW
        GJUVCHKWCWKJUVCWDVQUVNUWDUVIJWAZUWNUWPUVNUVPUWQUWJJUVIHKWCWKJUVIWDVQUVC
        UVIWEVQWFUVNUVTUWBUWFWGWHAUVJUVPUVSUJVJZUVMAUUEUWDUWEUWRLMNEHUVIJKVKVHW
        BWIWJBCJUUFUVIUUFGQWLWMZAUVAUAUUFAUUJUUFRZUJZUULUUTUXAUUKDUUJUUIUVEFSZU
        UIISZUTZVAZUUJUXAUUIJRZUWTUUKUXETUXAUUEUXFAUUEUWTLWBZJHUUIKUUIVOZWNWKAU
        WTWOBCUUIUUJJUUFUVIUXEGUVDUUITZCUAXBZUJZUVHUXDUXKDUVCUVGUUJUXCUXIUXJWOU
        XKUVFUXBUVDUUIIUXKUVDUUIUVEFUXIUXJWPZWQUXLWRWSWTQUXDDUUJUXCUAXCZXDXAXEV
        QUXAUXEXFUUJXGZVAUUJUXAUXDUXNUXAUXDDUUJUVEUTUXNUXADUUJUXCUVEUXAUVEUUJRZ
        UJZUXCUVEUUIISZUVEUXPUXBUVEUUIIUXPUUEUVEJRZUXBUVETAUUEUWTUXOLXHZUXAUUJJ
        UVEUXAUUJUVORZUUJJWAUWTUXTAEHUUJXIXJJUUJHKWCWKXKZJFHUVEUUIKOUXHXMVQWQUX
        PUUEUXRUXQUVETUXSUYAJHIUVEUUIKUXHPXLVQXNXODUUJXPXQWTUUJXRXQXNUXAUUSUBUC
        JJUXAUUMJRZUUNJRZUJZUJZUDUUQUUMUDUOZFSZUUMISZUTZVAZDUUJUUOUVEFSZUUOISZU
        TZVAZUURUUPUYEUEUOZUYHTZUDUUQXSZUEYCZUYOUYLTZDUUJXSZUEYCZUYJUYNUYEUYPUD
        UFUOUUNUVEFSZUUNISZTDUUJXSUFYCZXSZUEYCUYOUUMVUCFSZUUMISZTZDUUJXSZUEYCUY
        RVUAUEUDUFDUUJVUCUYHVUGVUBUUNIURUYFVUCTUYGVUFUUMIUYFVUCUUMFXTWQYAUYEUYQ
        VUEUEUYEUYPUDUUQVUDUYEUUQDUUJVUCUTZVAZVUDUYEUYCUWTUUQVUKTUXAUYBUYCYBZAU
        WTUYDYDZBCUUNUUJJUUFUVIVUKGBUCXBZUXJUJZUVHVUJVUODUVCUVGUUJVUCVUNUXJWOVU
        OUVFVUBUVDUUNIVUOUVDUUNUVEFVUNUXJWPZWQVUPWRWSWTQVUJDUUJVUCUXMXDXAXEVQDU
        FUUJVUCVUJVUJVOYEXQYFYLUYEUYTVUIUEUYEUYSVUHDUUJUYEUXOUJZUYLVUGUYOVUQUYK
        UUNISZUUMISZUYLVUGVUQUUEUYKJRZUYCUYBVUSUYLTUYEUUEUXOUXAUUEUYDUXGWBZWBZV
        UQUUEUUOJRZUXRVUTVVBUYEVVCUXOUYEUUEUYBUYCVVCVVAUXAUYBUYCVNZVULJFHUUMUUN
        KOYGVHZWBUXAUXOUXRUYDUYAYHZJFHUUOUVEKOYGVHUYEUYCUXOVULWBZUYEUYBUXOVVDWB
        ZJFHIUYKUUNUUMKOPYIYJVUQVURVUFUUMIVUQVURUUMVUBFSZUUNISZVUFVUQUYKVVIUUNI
        VUQUUEUYBUYCUXRUYKVVITVVBVVHVVGVVFJFHUUMUUNUVEKOYMYJWQVUQUUEUYBVUBJRZUY
        CVVJVUFTVVBVVHVUQUUEUYCUXRVVKVVBVVGVVFJFHUUNUVEKOYGVHVVGJFHIUUMVUBUUNKO
        PYKYJXNWQWHYNYOYLYPUDUEUUQUYHUYIUYIVOYEDUEUUJUYLUYMUYMVOYEYQUYEUYBUUQUU
        FRUURUYJTVVDUYEUUNUUJUUFJUUFGAUUHUWTUYDUWSXHVULVUMYRBCUUMUUQJUUFUVIUYJG
        BUBXBZUVCUUQTZUJZUVHUYIVVNUVHDUUQUUMUVEFSZUUMISZUTUYIVVNDUVCUVGUUQVVPVV
        LVVMWOVVNUVFVVOUVDUUMIVVNUVDUUMUVEFVVLVVMWPZWQVVQWRWSDUDUUQVVPUYHDUDXBV
        VOUYGUUMIUVEUYFUUMFXTWQYSXQWTQUYIUDUUQUYHUUNUUJGURXDXAXEVQUYEVVCUWTUUPU
        YNTVVEVUMBCUUOUUJJUUFUVIUYNGUVDUUOTZUXJUJZUVHUYMVVSDUVCUVGUUJUYLVVRUXJW
        OVVSUVFUYKUVDUUOIVVSUVDUUOUVEFVVRUXJWPZWQVVTWRWSWTQUYMDUUJUYLUXMXDXAXEV
        QUUBWJYTUUCYTUAUBUCFGHJUUFUUIKOUXHUUAUUD $.

      sylow3lem2.k $e |- ( ph -> K e. ( P pSyl G ) ) $.
      sylow3lem2.h $e |- H = { u e. X | ( u .(+) K ) = K } $.
      sylow3lem2.n $e |- N = { x e. X |
        A. y e. X ( ( x .+ y ) e. K <-> ( y .+ x ) e. K ) } $.
      $( Lemma for ~ sylow3 , first part.  The stabilizer of a given Sylow
         subgroup ` K ` in the group action ` .(+) ` acting on all of ` G ` is
         the normalizer N_G(K).  (Contributed by Mario Carneiro,
         19-Jan-2015.) $)
      sylow3lem2 $p |- ( ph -> H = N ) $=
        ( vw vv cv co wceq crab cin wcel wb wral ssrab2 eqsstri sseqin2 mpbi wa
        wss cmpt crn cslw simpr adantr mptexg rnexg 3syl simpl oveq1d mpteq12dv
        cvv oveq12d rneqd ovmpt2ga syl3anc csubg cfv slwsubg eqid conjnmz sylan
        eqtr4d simplr simprl eqtr3d eleq2d wrex ovex eqeq1 rexbidv rnmpt simprr
        elab2 cgrp ad3antrrr simpllr subgss sseldd grpaddsubass syl13anc eqtr2d
        grpsubcl simplrr grplcan mpbid grpsubadd eqeltrd rexlimdvaa oveq2 fvmpt
        syl syl5bi grpass grppncan 3eqtr2d wfn fnmpti fnfvelrn sylancr eqeltrrd
        grpcl ex impbid bitrd anassrs ralrimiva elnmz impbida rabbi2dva syl5eqr
        sylanbrc syl6reqr ) AMEUGZKHUHZKUIZENUJZJAMNMUKZYQMNUTYRMUIMBUGZCUGZGUH
        KULYTYSGUHKULUMCNUNZBNUJNUDUUABNUOUPMNUQURAYPENMAYNNULZUSZYNMULZYPUUCUU
        DUSYODKYNDUGZGUHZYNLUHZVAZVBZKUUCYOUUIUIZUUDUUCUUBKFIVCUHZULZUUIVLULZUU
        JAUUBVDAUULUUBUBVEZUUCUULUUHVLULUUMUUNDKUUGUUKVFUUHVLVGVHBCYNKNUUKDYTYS
        UUEGUHZYSLUHZVAZVBUUIHVLYSYNUIZYTKUIZUSZUUQUUHUUTDYTUUPKUUGUURUUSVDUUTU
        UOUUFYSYNLUUTYSYNUUEGUURUUSVIZVJUVAVMVKVNUAVOVPZVEUUCKIVQVRULZUUDKUUIUI
        AUVCUUBAUULUVCUBFIKVSXLZVEDBCYNGKUUHILMNOSTUUHVTZUDWAWBWCUUCYPUSZUUBYNU
        EUGZGUHZKULZUVGYNGUHZKULZUMZUENUNUUDAUUBYPWDUVFUVLUENUUCYPUVGNULZUVLUUC
        YPUVMUSZUSZUVIUVHUUIULZUVKUVOKUUIUVHUVOYOKUUIUUCYPUVMWEUUCUUJUVNUVBVEWF
        WGUVOUVPUVKUVPUVHUUGUIZDKWHZUVOUVKUFUGZUUGUIZDKWHUVRUFUVHUUIYNUVGGWIUVS
        UVHUIUVTUVQDKUVSUVHUUGWJWKDUFKUUGUUHUVEWLWNUVOUVQUVKDKUVOUUEKULZUVQUSZU
        SZUVJUUEKUWCUUEYNLUHZUVGUIZUVJUUEUIZUWCYNUWDGUHZUVHUIZUWEUWCUVHUUGUWGUV
        OUWAUVQWMUWCIWOULZUUBUUENULZUUBUUGUWGUIAUWIUUBUVNUWBPWPZAUUBUVNUWBWQZUW
        CKNUUEAKNUTZUUBUVNUWBAUVCUWMUVDNKIOWRXLWPUVOUWAUVQWEZWSZUWLNGILYNUUEYNO
        STWTXAXBUWCUWIUWDNULZUVMUUBUWHUWEUMUWKUWCUWIUWJUUBUWPUWKUWOUWLNILUUEYNO
        TXCVPUUCYPUVMUWBXDZUWLNGIUWDUVGYNOSXEXAXFUWCUWIUWJUUBUVMUWEUWFUMUWKUWOU
        WLUWQNGILUUEYNUVGOSTXGXAXFUWNXHXIXMUVOUVKUVPUVOUVKUSZUVJUUHVRZUVHUUIUWR
        UWSYNUVJGUHZYNLUHZUVHYNGUHZYNLUHZUVHUWRUVKUWSUXAUIUVOUVKVDZDUVJUUGUXAKU
        UHUUEUVJUIUUFUWTYNLUUEUVJYNGXJVJUVEUWTYNLWIXKXLUWRUXBUWTYNLUWRUWIUUBUVM
        UUBUXBUWTUIAUWIUUBUVNUVKPWPZAUUBUVNUVKWQZUUCYPUVMUVKXDZUXFNGIYNUVGYNOSX
        NXAVJUWRUWIUVHNULZUUBUXCUVHUIUXEUWRUWIUUBUVMUXHUXEUXFUXGNGIYNUVGOSYBVPU
        XFNGILUVHYNOSTXOVPXPUWRUUHKXQUVKUWSUUIULDKUUGUUHUUFYNLWIUVEXRUXDKUVJUUH
        XSXTYAYCYDYEYFYGBCUEYNGKMNUDYHYLYIYJYKUCYM $.

      $( Lemma for ~ sylow3 , first part.  The number of Sylow subgroups is the
         same as the index (number of cosets) of the normalizer of the Sylow
         subgroup ` K ` .  (Contributed by Mario Carneiro, 19-Jan-2015.) $)
      sylow3lem3 $p |- ( ph ->
        ( # ` ( P pSyl G ) ) = ( # ` ( X /. ( G ~QG N ) ) ) ) $=
        ( vg vh cslw co chash cfv cqg cqs cfn wcel cn0 cpw wss pwfi sylib csubg
        cv slwsubg subgss syl selpw sylibr ssriv ssfi sylancl hashcl nn0cnd wer
        cgrp nmzsubg eqid eqger 3syl qsss syl2anc cn c0 wne c0g subg0cl ne0i wb
        hashnncl mpbird nncnd nnne0d cpr wceq wrex wa copab cec cmul sylow3lem1
        cga orbsta2 syl21anc lagsubg2 gaorber ecss wbr adantr simpr cmpt sylow2
        crn eqcom cvv mptexg rnexg simpl oveq1d oveq12d mpteq12dv rneqd syl3anc
        ovmpt2ga eqeq2d syl5bb rexbidva gaorb syl3anbrc elecg fveq2d sylow3lem2
        ex ssrdv eqssd 3eqtr3rd mulcan2ad ) AFIUGUHZUIUJZNIMUKUHZULZUIUJZMUIUJZ
        AYPAYOUMUNZYPUOUNANUPZUMUNZYOUUBUQUUAANUMUNZUUCQNURUSZBYOUUBBVAZYOUNZUU
        FNUQZUUFUUBUNUUGUUFIUTUJZUNUUHFIUUFVBNUUFIOVCVDBNVEVFVGUUBYOVHVIYOVJVDV
        KAYSAYRUMUNZYSUOUNAUUCYRUUBUQUUJUUEANYQAIVMUNZMUUIUNZNYQVLPBCGKIMNUDOSV
        NZYQINMOYQVOZVPVQVRUUBYRVHVSYRVJVDVKAYTAYTVTUNZMWAWBZAUULIWCUJZMUNUUPAU
        UKUULPUUMVDZMIUUQUUQVOWDMUUQWEVQAMUMUNZUUOUUPWFAUUDMNUQZUUSQAUUKUULUUTP
        UUMNMIOVCVQNMVHVSMWGVDWHZWIAYTUVAWJANUIUJZKUUFCVAZWKYOUQUEVAUUFHUHUVCWL
        UENWMWNBCWOZWPZUIUJZJUIUJZWQUHZYSYTWQUHYPYTWQUHAHIYOWSUHUNZKYOUNZUUDUVB
        UVHWLABCDFGHILNOPQRSTUAWRZUBQBCEKHIJUKUHZUEIJUVDNYOOUCUVLVOUVDVOZWTXAAY
        QINMOUUNUURQXBAUVFYPUVGYTWQAUVEYOUIAUVEYOAKUVDYOAUVIYOUVDVLUVKBCHUVDUEI
        NYOUVMOXCVDXDAUFYOUVEAUFVAZYOUNZUVNUVEUNZAUVOWNZUVPKUVNUVDXEZUVQUVJUVOE
        VAZKHUHZUVNWLZENWMZUVRAUVJUVOUBXFZAUVOXGZUVQUWBUVNDKUVSDVAZGUHZUVSLUHZX
        HZXJZWLZENWMUVQDFGEIUVNKLNOAUUDUVOQXFUWDUWCSTXIUVQUWAUWJENUWAUVNUVTWLUV
        QUVSNUNZWNZUWJUVTUVNXKUWLUVTUWIUVNUWLUWKUVJUWIXLUNZUVTUWIWLUVQUWKXGUVQU
        VJUWKUWCXFZUWLUVJUWHXLUNUWMUWNDKUWGYOXMUWHXLXNVQBCUVSKNYODUVCUUFUWEGUHZ
        UUFLUHZXHZXJUWIHXLUUFUVSWLZUVCKWLZWNZUWQUWHUWTDUVCUWPKUWGUWRUWSXGUWTUWO
        UWFUUFUVSLUWTUUFUVSUWEGUWRUWSXOZXPUXAXQXRXSUAYAXTYBYCYDWHBCKUVNHUVDUEEN
        YOUVMYEYFUVQUVOUVJUVPUVRWFUWDUWCUVNKUVDYOYOYGVSWHYJYKYLYHAJMUIABCDEFGHI
        JKLMNOPQRSTUAUBUCUDYIYHXQYMYN $.

      $( Lemma for ~ sylow3 , first part.  The number of Sylow subgroups is a
         divisor of the size of ` G ` reduced by the size of a Sylow subgroup
         of ` G ` .  (Contributed by Mario Carneiro, 19-Jan-2015.) $)
      sylow3lem4 $p |- ( ph -> ( # ` ( P pSyl G ) ) ||
        ( ( # ` X ) / ( P ^ ( P pCnt ( # ` X ) ) ) ) ) $=
        ( cslw co chash cfv cqg cqs cpc cexp cdiv cdvds sylow3lem3 cmul wbr cbs
        cress csubg wcel cfn slwsubg cnsg eqid nmznsg nsgsubg wceq cgrp nmzsubg
        syl subgbas wss subgss ssfi syl2anc eqeltrrd lagsubg fveq2d breqtrrd cz
        wi cn c0 wne c0g subg0cl ne0i hashnncl mpbird nnzd cn0 hashcl nn0zd cpw
        wb pwfi sylib wer eqger qsss dvdscmul syl3anc mpd nn0cnd nncnd divcan1d
        nnne0d lagsubg2 eqtrd dvdsval2 mpbid dvdsmulcr syl112anc slwhash oveq2d
        cc0 breqtrd eqbrtrd ) AFIUEUFZUGUHNIMUIUFZUJZUGUHZNUGUHZFFYDUKUFULUFZUM
        UFZUNABCDEFGHIJKLMNOPQRSTUAUBUCUDUOAYCYDKUGUHZUMUFZYFUNAYCYGUPUFZYHYGUP
        UFZUNUQZYCYHUNUQZAYIYCMUGUHZUPUFZYJUNAYGYMUNUQZYIYNUNUQZAYGIMUSUFZURUHZ
        UGUHZYMUNAKYQUTUHVAZYRVBVAYGYSUNUQAKIUTUHZVAZYTAKXTVAUUBUBFIKVCVKZUUBKY
        QVDUHVAYTBCGKIYQMNUDOSYQVEZVFKYQVGVKVKAMYRVBAMUUAVAZMYRVHAIVIVAUUEPBCGK
        IMNUDOSVJVKZMIYQUUDVLVKZANVBVAZMNVMZMVBVAZQAUUEUUIUUFNMIOVNVKNMVOVPZVQY
        QYRKYRVEVRVPAMYRUGUUGVSVTAYGWAVAZYMWAVAYCWAVAZYOYPWBAYGAYGWCVAZKWDWEZAI
        WFUHZKVAZUUOAUUBUUQUUCKIUUPUUPVEWGVKKUUPWHVKAKVBVAZUUNUUOWPAUUHKNVMZUUR
        QAUUBUUSUUCNKIOVNVKNKVOVPKWIVKWJZWKZAYMAUUJYMWLVAUUKMWMVKWNAYCAYBVBVAZY
        CWLVAANWOZVBVAZYBUVCVMUVBAUUHUVDQNWQWRANYAAUUENYAWSUUFYAINMOYAVEZWTVKXA
        UVCYBVOVPYBWMVKWNZYCYGYMXBXCXDAYJYDYNAYDYGAYDAUUHYDWLVAQNWMVKZXEAYGUUTX
        FAYGUUTXHZXGAYAINMOUVEUUFQXIXJVTAUUMYHWAVAZUULYGXQWEZYKYLWPUVFAYGYDUNUQ
        ZUVIAUUBUUHUVKUUCQINKOVRVPAUULUVJYDWAVAUVKUVIWPUVAUVHAYDUVGWNYGYDXKXCXL
        UVAUVHYGYCYHXMXNXLAYGYEYDUMAFIKNOQUBXOXPXRXS $.
    $}

    ${
      sylow3lem5.a $e |- .+ = ( +g ` G ) $.
      sylow3lem5.d $e |- .- = ( -g ` G ) $.
      sylow3lem5.k $e |- ( ph -> K e. ( P pSyl G ) ) $.
      sylow3lem5.m $e |- .(+) = ( x e. K , y e. ( P pSyl G ) |->
        ran ( z e. y |-> ( ( x .+ z ) .- x ) ) ) $.
      $( Lemma for ~ sylow3 , second part.  Reduce the group action of
         ~ sylow3lem1 to a given Sylow subgroup.  (Contributed by Mario
         Carneiro, 19-Jan-2015.) $)
      sylow3lem5 $p |- ( ph -> .(+) e. ( ( G |`s K ) GrpAct ( P pSyl G ) ) ) $=
        ( co va vb vc cslw cmpt crn cmpt2 cxp cres cress cga wss wceq csubg cfv
        cv wcel slwsubg syl subgss resmpt2 sylancl syl6eqr oveq2 oveq1d cbvmptv
        ssid oveq1 id oveq12d mpteq2dv syl5eq mpteq1 cbvmpt2v sylow3lem1 gasubg
        rneqd eqid syl2anc eqeltrrd ) ABCKEHUDTZDCUPZBUPZDUPZFTZWCJTZUEZUFZUGZI
        WAUHUIZGHIUJTZWAUKTZAWJBCIWAWHUGZGAIKULZWAWAULWJWMUMAIHUNUOUQZWNAIWAUQW
        OREHIURUSZKIHLUTUSWAVGBCKWAIWAWHVAVBSVCAWIHWAUKTUQWOWJWLUQAUAUBUCEFWIHJ
        KLMNOPQBCUAUBKWAWHUCUBUPZUAUPZUCUPZFTZWRJTZUEZUFUCWBXAUEZUFWCWRUMZWGXCX
        DWGUCWBWCWSFTZWCJTZUEXCDUCWBWFXFWDWSUMWEXEWCJWDWSWCFVDVEVFXDUCWBXFXAXDX
        EWTWCWRJWCWRWSFVHXDVIVJVKVLVQWBWQUMXCXBUCWBWQXAVMVQVNVOWPWIIHWKWAWKVRVP
        VSVT $.

      sylow3lem6.n $e |- N = { x e. X |
        A. y e. X ( ( x .+ y ) e. s <-> ( y .+ x ) e. s ) } $.
      $( Lemma for ~ sylow3 , second part.  Using the lemma ~ sylow2a , show
         that the number of sylow subgroups is equivalent ` mod P ` to the
         number of fixed points under the group action.  But ` K ` is the
         unique element of the set of Sylow subgroups that is fixed under the
         group action, so there is exactly one fixed point and so
         ` ( ( # `` ( P pSyl G ) ) mod P ) = 1 ` .  (Contributed by Mario
         Carneiro, 19-Jan-2015.) $)
      sylow3lem6 $p |- ( ph -> ( ( # ` ( P pSyl G ) ) mod P ) = 1 ) $=
        ( vg vw vh cslw co chash cfv cmo c1 wceq cmin cdvds wbr cress wral crab
        cv cbs cpr wss wrex wa copab eqid sylow3lem5 wcel cpgp slwpgp syl csubg
        cfn slwsubg subgbas subgss ssfi syl2anc eqeltrrd cpw sylib selpw sylibr
        pwfi ssriv sylancl sylow2a csn crn eqcom adantr sselda biantrurd syl5bb
        simpr simplr weq simpl oveq1d oveq12d mpteq12dv rneqd vex mptex ovmpt2a
        cmpt eqeq1d wb ad2antlr conjnmzb 3bitr4d ralbidva dfss3 syl6bbr raleqdv
        rnex csg cgrp ad2antrr nmzsubg subgslw syl3anc ssnmz cvv cplusg eqeltri
        fvex rabex2 ressplusg ax-mp sylow2 cnsg nmznsg conjnsg sylan syl5ibrcom
        eqeq2 rexlimdva eqtrd cz eqeltrd eqsstr3d impbida rabbidva rabsn fveq2d
        mpd 3bitr3d hashsng oveq2d breqtrd cn cprime prmnn hashcl nn0zd moddvds
        cn0 1zzd mpbird c2 cuz prmuz2 clt eluz2b2 cr nnre 1mod sylbi 3syl ) AEH
        UFUGZUHUIZEUJUGZUKEUJUGZUKAUVMUVNULZEUVLUKUMUGZUNUOZAEUVLUCUSZMUSZGUGZU
        VSULZUCHIUPUGZUTUIZUQZMUVKURZUHUIZUMUGUVPUNADUDMEGDUSZUDUSZVAUVKVBUEUSU
        WGGUGUWHULUEUWCVCVDDUDVEZUEUCUWBUWCUVKUWEUWCVFABCDEFGHIJLNOPQRSTUAVGAIU
        VKVHZEUWBVIUOTEUWBHIUWBVFZVJVKAIUWCVMAIHVLUIZVHZIUWCULZAUWJUWMTEHIVNVKZ
        IHUWBUWKVOVKZALVMVHZILVBZIVMVHPAUWMUWRUWOLIHNVPVKZLIVQVRVSALVTZVMVHZUVK
        UWTVBUVKVMVHZAUWQUXAPLWDWABUVKUWTBUSZUVKVHZUXCLVBZUXCUWTVHUXDUXCUWLVHUX
        EEHUXCVNLUXCHNVPVKBLWBWCWEUWTUVKVQWFZUWEVFUWIVFWGAUWFUKUVLUMAUWFIWHZUHU
        IZUKAUWEUXGUHAUWEUVSIULZMUVKURZUXGAUWDUXIMUVKAUVSUVKVHZVDZUWAUCIUQZIKVB
        ZUWDUXIUXLUXMUVRKVHZUCIUQUXNUXLUWAUXOUCIUXLUVRIVHZVDZDUVSUVRUWGFUGZUVRJ
        UGZXFZWIZUVSULZUVRLVHZUVSUYAULZVDZUWAUXOUYBUYDUXQUYEUYAUVSWJUXQUYCUYDUX
        LILUVRAUWRUXKUWSWKWLWMWNUXQUVTUYAUVSUXQUXPUXKUVTUYAULUXLUXPWOAUXKUXPWPB
        CUVRUVSIUVKDCUSZUXCUWGFUGZUXCJUGZXFZWIUYAGBUCWQZCMWQZVDZUYIUXTUYLDUYFUY
        HUVSUXSUYJUYKWOUYLUYGUXRUXCUVRJUYLUXCUVRUWGFUYJUYKWRZWSUYMWTXAXBUAUXTDU
        VSUXSMXCXDXPXEVRXGUXQUVSUWLVHZUXOUYEXHUXKUYNAUXPEHUVSVNZXIDBCUVRFUVSUXT
        HJKLNRSUXTVFUBXJVKXKXLUCIKXMXNUXLUWAUCIUWCAUWNUXKUWPWKXOUXLUXNUXIUXLUXN
        VDZIDUVSUXRUVRHKUPUGZXQUIZUGXFZWIZULZUCUYQUTUIZVCUXIUYPDEFUCUYQIUVSUYRV
        UBVUBVFZUYPKVUBVMUYPKUWLVHZKVUBULUYPHXRVHZVUDAVUEUXKUXNOXSBCFUVSHKLUBNR
        XTVKZKHUYQUYQVFZVOVKUYPUWQKLVBZKVMVHAUWQUXKUXNPXSUYPVUDVUHVUFLKHNVPVKLK
        VQVRVSUYPVUDUWJUXNIEUYQUFUGZVHVUFAUWJUXKUXNTXSUXLUXNWOEKHUYQIVUGYAYBUYP
        VUDUXKUVSKVBZUVSVUIVHVUFAUXKUXNWPUYPUYNVUJUXKUYNAUXNUYOXIZBCFUVSHKLUBNR
        YCZVKEKHUYQUVSVUGYAYBKYDVHFUYQYEUIULUXCUYFFUGUVSVHUYFUXCFUGUVSVHXHCLUQB
        LKUBLHUTUIYDNHUTYGYFYHKFHUYQYDVUGRYIYJZUYRVFZYKUYPVUAUXIUCVUBUYPUVRVUBV
        HZVDUXIVUAUVSUYTULZUYPUVSUYQYLUIVHZVUOVUPUYPUYNVUQVUKBCFUVSHUYQKLUBNRVU
        GYMVKDUVRFUVSUYSUYQUYRVUBVUCVUMVUNUYSVFYNYOIUYTUVSYQYPYRUUGUXLUXIVDZIUV
        SKUXLUXIWOZVURUYNVUJVURUVSIUWLVUSAUWMUXKUXIUWOXSUUAVULVKUUBUUCUUHUUDAUW
        JUXJUXGULTMUVKIUUEVKYSUUFAUWJUXHUKULTIUVKUUIVKYSUUJUUKAEUULVHZUVLYTVHUK
        YTVHUVOUVQXHAEUUMVHZVUTQEUUNVKAUVLAUXBUVLUURVHUXFUVKUUOVKUUPAUUSUVLUKEU
        UQYBUUTAVVAEUVAUVBUIVHZUVNUKULZQEUVCVVBVUTUKEUVDUOZVDVVCEUVEVUTEUVFVHVV
        DVVCEUVGEUVHYOUVIUVJYS $.
    $}

    sylow3.n $e |- N = ( # ` ( P pSyl G ) ) $.
    $( Sylow's third theorem.  The number of Sylow subgroups is a divisor of
       ` | G | / d ` , where ` d ` is the common order of a Sylow subgroup, and
       is equivalent to ` 1 mod P ` .  This is part of Metamath 100 proof #72.
       (Contributed by Mario Carneiro, 19-Jan-2015.) $)
    sylow3 $p |- ( ph -> ( N || ( ( # ` X ) / ( P ^ ( P pCnt ( # ` X ) ) ) ) /\
                   ( N mod P ) = 1 ) ) $=
      ( vx vy vz va vb cv co wcel wceq eqid vk vu vc vs cslw chash cfv cpc cexp
      cdiv cdvds wbr cmo c1 wa c0 wne wex cfn cprime slwn0 syl3anc sylib cplusg
      cgrp n0 csg cmpt crn cmpt2 crab wb wral adantr oveq2 oveq1d cbvmptv oveq1
      id mpteq2dv syl5eq rneqd mpteq1 cbvmpt2v simpr sylow3lem4 syl5eqbr oveq1i
      oveq12d sylow3lem6 jca exlimddv ) AUAPZBCUEQZRZDEUFUGZBBWPUHQUIQUJQZUKULZ
      DBUMQZUNSZUOUAAWNUPUQZWOUAURACVERZEUSRZBUTRZXAGHIBCEFVAVBUAWNVFVCAWOUOZWR
      WTXEDWNUFUGZWQUKJXEKLMUBBCVDUGZNOEWNUCOPZNPZUCPZXGQZXICVGUGZQZVHZVIZVJZCU
      BPWMXPQWMSUBEVKZWMXLKPZLPZXGQZWMRXSXRXGQZWMRVLLEVMKEVKZEFAXBWOGVNZAXCWOHV
      NZAXDWOIVNZXGTZXLTZNOKLEWNXOMXSXRMPZXGQZXRXLQZVHZVIZMXHYJVHZVIZXIXRSZXNYM
      YOXNMXHXIYHXGQZXIXLQZVHYMUCMXHXMYQXJYHSXKYPXIXLXJYHXIXGVOVPVQYOMXHYQYJYOY
      PYIXIXRXLXIXRYHXGVRYOVSWIVTWAWBZXHXSSYMYKMXHXSYJWCWBZWDAWOWEZXQTYBTWFWGXE
      WSXFBUMQUNDXFBUMJWHXEKLMBXGNOWMWNXOVJCWMXLXTUDPZRYAUUARVLLEVMKEVKZEUDFYCY
      DYEYFYGYTNOKLWMWNXOYLYNYRYSWDUUBTWJWAWKWL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Direct products
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c LSSum $.
  $c proj1 $.

  $( Extend class notation with subgroup sum. $)
  clsm $a class LSSum $.

  $( Extend class notation with left projection. $)
  cpj1 $a class proj1 $.

  ${
    $d w t u x y z $.
    $( Define subgroup sum (inner direct product of subgroups).  (Contributed
       by NM, 28-Jan-2014.) $)
    df-lsm $a |- LSSum = ( w e. _V |->
       ( t e. ~P ( Base ` w ) , u e. ~P ( Base ` w ) |->
           ran ( x e. t , y e. u |-> ( x ( +g ` w ) y ) ) ) ) $.

    $( Define the left projection function, which takes two subgroups ` t , u `
       with trivial intersection and returns a function mapping the elements of
       the subgroup sum ` t + u ` to their projections onto ` t ` .  (The other
       projection function can be obtained by swapping the roles of ` t ` and
       ` u ` .)  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    df-pj1 $a |- proj1 = ( w e. _V |->
       ( t e. ~P ( Base ` w ) , u e. ~P ( Base ` w ) |->
         ( z e. ( t ( LSSum ` w ) u ) |->
           ( iota_ x e. t E. y e. u z = ( x ( +g ` w ) y ) ) ) ) ) $.
  $}

  ${
    $d t u w x y z .+ $.  $d t u w x y z B $.  $d t u x y z T $.  $d x y z X $.
    $d t u w x y z G $.  $d t u x y z U $.  $d x y Y $.
    lsmfval.v $e |- B = ( Base ` G ) $.
    lsmfval.a $e |- .+ = ( +g ` G ) $.
    lsmfval.s $e |- .(+) = ( LSSum ` G ) $.
    $( The subgroup sum function (for a group or vector space).  (Contributed
       by NM, 28-Jan-2014.)  (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsmfval $p |- ( G e. V -> .(+) = ( t e. ~P B , u e. ~P B |->
                    ran ( x e. t , y e. u |-> ( x .+ y ) ) ) ) $=
      ( vw wcel cfv cv cmpt2 cvv cbs cplusg clsm cpw co wceq elex fveq2 syl6eqr
      crn pweqd oveqd mpt2eq3dv rneqd mpt2eq123dv df-lsm fvex pwex mpt2ex fvmpt
      eqeltri syl syl5eq ) HINZGHUAOZDCEUBZVDABDPZCPZAPZBPZFUCZQZUHZQZLVBHRNVCV
      LUDHIUEMHDCMPZSOZUBZVOABVEVFVGVHVMTOZUCZQZUHZQVLRUAVMHUDZDCVOVOVSVDVDVKVT
      VNEVTVNHSOZEVMHSUFJUGUIZWBVTVRVJVTABVEVFVQVIVTVPFVGVHVTVPHTOFVMHTUFKUGUJU
      KULUMABMCDUNDCVDVDVKEEWARJHSUOUSUPZWCUQURUTVA $.

    $( Subspace sum value (for a group or vector space).  Extended domain
       version of ~ lsmval .  (Contributed by NM, 28-Jan-2014.)  (Revised by
       Mario Carneiro, 19-Apr-2016.) $)
    lsmvalx $p |- ( ( G e. V /\ T C_ B /\ U C_ B )
       -> ( T .(+) U ) = ran ( x e. T , y e. U |-> ( x .+ y ) ) ) $=
      ( vt vu wcel co cv cmpt2 wceq cvv wss crn wa cpw lsmfval cbs fvex eqeltri
      oveqd elpw2 mpt2exga rnexg mpt2eq12 rneqd eqid ovmpt2ga syl2anbr sylan9eq
      cfv syl mpd3an3 3impb ) HIOZFCUAZGCUAZFGEPZABFGAQBQDPZRZUBZSVCVDVEUCVFFGM
      NCUDZVJABMQZNQZVGRZUBZRZPZVIVCEVOFGABNMCDEHIJKLUEUIVDFVJOZGVJOZVPVISZVEFC
      CHUFUSTJHUFUGUHZUJGCVTUJVQVRVITOZVSVQVRUCVHTOWAABFGVGVJVJUKVHTULUTMNFGVJV
      JVNVIVOTVKFSVLGSUCVMVHABVKVLFGVGUMUNVOUOUPVAUQURVB $.

    $( Subspace sum membership (for a group or vector space).  Extended domain
       version of ~ lsmelval .  (Contributed by NM, 28-Jan-2014.)  (Revised by
       Mario Carneiro, 19-Apr-2016.) $)
    lsmelvalx $p |- ( ( G e. V /\ T C_ B /\ U C_ B )
       -> ( X e. ( T .(+) U ) <-> E. y e. T E. z e. U X = ( y .+ z ) ) ) $=
      ( wcel wss w3a co cv cmpt2 wrex crn wceq eleq2d eqid ovex elrnmpt2 syl6bb
      lsmvalx ) HINFCOGCOPZJFGEQZNJABFGARZBRZDQZSZUAZNJUMUBBGTAFTUIUJUOJABCDEFG
      HIKLMUHUCABFGUMJUNUNUDUKULDUEUFUG $.

    $( Subspace sum membership (for a group or vector space).  (Contributed by
       NM, 4-Feb-2014.)  (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsmelvalix $p |- ( ( ( G e. V /\ T C_ B /\ U C_ B ) /\
               ( X e. T /\ Y e. U ) ) -> ( X .+ Y ) e. ( T .(+) U ) ) $=
      ( vx vy wcel wss co cv wceq wrex wa eqid rspceov mp3an3 lsmelvalx biimpar
      w3a sylan2 ) HDOZIEOZUAFGODAPEAPUGZHIBQZMRNRBQSNETMDTZULDECQOZUIUJULULSUM
      ULUBMNDEHIULBUCUDUKUNUMMNABCDEFGULJKLUEUFUH $.
  $}

  ${
    $d t u x y G $.  $d t u x y O $.  $d t u x T $.  $d t u x U $.
    oppglsm.o $e |- O = ( oppG ` G ) $.
    oppglsm.p $e |- .(+) = ( LSSum ` G ) $.
    $( The subspace sum operation in the opposite group.  (Contributed by Mario
       Carneiro, 19-Apr-2016.) $)
    oppglsm $p |- ( T ( LSSum ` O ) U ) = ( U .(+) T ) $=
      ( vt vu vx vy cvv wcel cfv co wceq cmpt2 eqid syl6eq c0 clsm ctpos cbs cv
      cpw cplusg crn lsmfval tposeqd wa cdm ccnv wrel reldmmpt2 mpt2fun funforn
      wfo wfun mpbi tposfo2 forn ax-mp oppgplus eqcomi mpt2eq3ia tposmpt2 rneqi
      mp2 a1i eqtr3i coppg fvex eqeltri oppgbas syl6reqr oveqd ovtpos wss eqidd
      wn 0ex elovmpt2 simp3bi ssriv ss0 w3a elpwi 3ad2ant2 3ad2ant1 sseqtrd syl
      fvprc mpt2eq12 sylancl mpt20 rneqd rn0 mpt2eq3dva syl5eq 3eqtr4a pm2.61i
      0ov ) DLMZBCEUANZOZCBAOZPXCXEBCAUBZOXFXCXDXGBCXCXGHIDUCNZUEZXIJKHUDZIUDZJ
      UDZKUDZEUFNZOZQZUGZQZXDXCXGIHXIXIKJXKXJXMXLDUFNZOZQZUGZQZUBXRXCAYCKJHIXHX
      SADLXHRZXSRZGUHUIIHXIXIXQYCIHXIXIYBXQYBXQPXKXIMZXJXIMZUJYAUBZUGZYBXQYAUKZ
      ULZYBYHUQZYIYBPYJUMYJYBYAUQZYLKJXKXJXTYAYARZUNYAURYMKJXKXJXTYAYNUOYAUPUSY
      JYBYAUTVHYKYBYHVAVBYHXPKJXKXJXOYAKJXKXJXTXOXTXOPXMXKMXLXJMUJXOXTXSXNDEXLX
      MYEFXNRZVCVDVIVEVFVGVJVIVEVFSELMXDXRPEDVKNLFDVKVLVMJKIHXHXNXDELXHDEFYDVNY
      OXDRUHVBZVOVPBCAVQSXCVTZBCHIXIXITQZOZTXEXFYSTVRYSTPJYSTXLYSMBXIMCXIMXLTMX
      IXITYRTXLBCHIYRRWAXJBPXKCPUJTVSWBWCWDYSWEVBYQXDYRBCYQXDXRYRYPYQHIXIXIXQTY
      QYGYFWFZXQTUGTYTXPTYTXPJKTXKXOQZTYTXJTPZXKXKPXPUUAPYTXJTVRUUBYTXJXHTYGYQX
      JXHVRYFXJXHWGWHYQYGXHTPYFDUCWLWIWJXJWEWKXKRJKXJXKTXKXOWMWNJKXKXOWOSWPWQSW
      RWSVPYQXFCBTOTYQATCBYQADUANTGDUAWLWSVPCBXBSWTXA $.
  $}

  ${
    $d x y z B $.  $d x y z G $.  $d x y z R $.  $d x y z T $.  $d x y z U $.
    $d x .(+) $.  $d x V $.
    lsmless2.v $e |- B = ( Base ` G ) $.
    lsmless2.s $e |- .(+) = ( LSSum ` G ) $.
    $( Subgroup sum is a subset of the base.  (Contributed by Mario Carneiro,
       19-Apr-2016.) $)
    lsmssv $p |- ( ( G e. Mnd /\ T C_ B /\ U C_ B ) -> ( T .(+) U ) C_ B ) $=
      ( vx vy cmnd wcel wss w3a co cv cplusg eqid wral wa sselda cfv lsmvalx wf
      cmpt2 crn cxp simpl1 simp2 adantrr simp3 adantrl mndcl syl3anc ralrimivva
      fmpt2 sylib frn syl eqsstrd ) EJKZCALZDALZMZCDBNHICDHOZIOZEPUAZNZUDZUEZAH
      IAVFBCDEJFVFQZGUBVCCDUFZAVHUCZVIALVCVGAKZIDRHCRVLVCVMHICDVCVDCKZVEDKZSZSU
      TVDAKZVEAKZVMUTVAVBVPUGVCVNVQVOVCCAVDUTVAVBUHTUIVCVOVRVNVCDAVEUTVAVBUJTUK
      AVFEVDVEFVJULUMUNHICDVGAVHVHQUOUPVKAVHUQURUS $.

    $( Subset implies subgroup sum subset (extended domain version).
       (Contributed by NM, 22-Feb-2014.)  (Revised by Mario Carneiro,
       19-Apr-2016.) $)
    lsmless1x $p |- ( ( ( G e. V /\ T C_ B /\ U C_ B ) /\ R C_ T )
       -> ( R .(+) U ) C_ ( T .(+) U ) ) $=
      ( vx vy vz wcel wss w3a co cv wrex wb lsmelvalx wa cplusg cfv wceq ssrexv
      adantl simpl1 simpr simpl2 sstrd simpl3 eqid syl3anc adantr 3imtr4d ssrdv
      wi ) FGMZDANZEANZOZCDNZUAZJCEBPZDEBPZVCJQZKQLQFUBUCZPUDLERZKCRZVHKDRZVFVD
      MZVFVEMZVBVIVJUQVAVHKCDUEUFVCURCANUTVKVISURUSUTVBUGVCCDAVAVBUHURUSUTVBUIU
      JURUSUTVBUKKLAVGBCEFGVFHVGULZITUMVAVLVJSVBKLAVGBDEFGVFHVMITUNUOUP $.

    $( Subset implies subgroup sum subset (extended domain version).
       (Contributed by NM, 25-Feb-2014.)  (Revised by Mario Carneiro,
       19-Apr-2016.) $)
    lsmless2x $p |- ( ( ( G e. V /\ R C_ B /\ U C_ B ) /\ T C_ U )
       -> ( R .(+) T ) C_ ( R .(+) U ) ) $=
      ( vx vy vz wcel wss w3a co cv wrex wb lsmelvalx wa cplusg cfv wceq ssrexv
      wi reximdv adantl simpl1 simpl2 simpr simpl3 sstrd syl3anc adantr 3imtr4d
      eqid ssrdv ) FGMZCANZEANZOZDENZUAZJCDBPZCEBPZVDJQZKQLQFUBUCZPUDZLDRZKCRZV
      ILERZKCRZVGVEMZVGVFMZVCVKVMUFVBVCVJVLKCVILDEUEUGUHVDUSUTDANVNVKSUSUTVAVCU
      IUSUTVAVCUJVDDEAVBVCUKUSUTVAVCULUMKLAVHBCDFGVGHVHUQZITUNVBVOVMSVCKLAVHBCE
      FGVGHVPITUOUPUR $.

    $( Subgroup sum is an upper bound of its arguments.  (Contributed by Mario
       Carneiro, 19-Apr-2016.) $)
    lsmub1x $p |- ( ( T C_ B /\ U e. ( SubMnd ` G ) ) -> T C_ ( T .(+) U ) ) $=
      ( vx wss csubmnd cfv wcel wa co cv c0g cplusg cmnd ad2antlr eqid syl32anc
      wceq submrcl simpll simpr sseldd mndrid syl2anc submss subm0cl lsmelvalix
      eqeltrrd ex ssrdv ) CAIZDEJKLZMZHCCDBNZUQHOZCLZUSURLUQUTMZUSEPKZEQKZNZUSU
      RVAERLZUSALVDUSUBUPVEUOUTDEUCSZVACAUSUOUPUTUDZUQUTUEZUFAVCEUSVBFVCTZVBTZU
      GUHVAVEUODAIZUTVBDLZVDURLVFVGUPVKUOUTADEFUISVHUPVLUOUTDEVBVJUJSAVCBCDERUS
      VBFVIGUKUAULUMUN $.

    $( Subgroup sum is an upper bound of its arguments.  (Contributed by NM,
       6-Feb-2014.)  (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsmub2x $p |- ( ( T e. ( SubMnd ` G ) /\ U C_ B ) -> U C_ ( T .(+) U ) ) $=
      ( vx csubmnd cfv wcel wss wa co cv c0g cmnd ad2antrr simpr eqid cplusg ex
      submrcl sselda mndlid syl2anc submss subm0cl lsmelvalix syl32anc eqeltrrd
      wceq simplr ssrdv ) CEIJKZDALZMZHDCDBNZUQHOZDKZUSURKUQUTMZEPJZUSEUAJZNZUS
      URVAEQKZUSAKVDUSULUOVEUPUTCEUCRZUQDAUSUOUPSUDAVCEUSVBFVCTZVBTZUEUFVAVECAL
      ZUPVBCKZUTVDURKVFUOVIUPUTACEFUGRUOUPUTUMUOVJUPUTCEVBVHUHRUQUTSAVCBCDEQVBU
      SFVGGUIUJUKUBUN $.
  $}

  ${
    $d x y .+ $.  $d x y T $.  $d x y U $.  $d x y B $.  $d x y G $.
    lsmval.v $e |- B = ( Base ` G ) $.
    lsmval.a $e |- .+ = ( +g ` G ) $.
    lsmval.p $e |- .(+) = ( LSSum ` G ) $.
    $( Subgroup sum value (for a left module or left vector space).
       (Contributed by NM, 4-Feb-2014.)  (Revised by Mario Carneiro,
       19-Apr-2016.) $)
    lsmval $p |- ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) )
       -> ( T .(+) U ) = ran ( x e. T , y e. U |-> ( x .+ y ) ) ) $=
      ( csubg cfv wcel cgrp wss co cv adantr subgss wa cmpt2 crn subgrcl adantl
      wceq lsmvalx syl3anc ) FHLMZNZGUINZUAHONZFCPZGCPZFGEQABFGARBRDQUBUCUFUJUL
      UKFHUDSUJUMUKCFHITSUKUNUJCGHITUEABCDEFGHOIJKUGUH $.
  $}

  ${
    $d y z .+ $.  $d y z T $.  $d y z U $.  $d y z G $.  $d y z X $.
    lsmelval.a $e |- .+ = ( +g ` G ) $.
    lsmelval.p $e |- .(+) = ( LSSum ` G ) $.
    $( Subgroup sum membership (for a left module or left vector space).
       (Contributed by NM, 4-Feb-2014.)  (Revised by Mario Carneiro,
       19-Apr-2016.) $)
    lsmelval $p |- ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) )
       -> ( X e. ( T .(+) U ) <-> E. y e. T E. z e. U X = ( y .+ z ) ) ) $=
      ( csubg cfv wcel cgrp wss co cv wrex adantr subgss wa cbs wceq wb subgrcl
      eqid adantl lsmelvalx syl3anc ) EGKLZMZFUJMZUAGNMZEGUBLZOZFUNOZHEFDPMHAQB
      QCPUCBFRAERUDUKUMULEGUESUKUOULUNEGUNUFZTSULUPUKUNFGUQTUGABUNCDEFGNHUQIJUH
      UI $.

    $( Subgroup sum membership (for a left module or left vector space).
       (Contributed by NM, 4-Feb-2014.)  (Revised by Mario Carneiro,
       19-Apr-2016.) $)
    lsmelvali $p |- ( ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) ) /\
               ( X e. T /\ Y e. U ) ) -> ( X .+ Y ) e. ( T .(+) U ) ) $=
      ( csubg cfv wcel wa cgrp cbs wss w3a co adantr subgss subgrcl eqid adantl
      3jca lsmelvalix sylan ) CEJKZLZDUGLZMZENLZCEOKZPZDULPZQFCLGDLMFGARCDBRLUJ
      UKUMUNUHUKUICEUASUHUMUIULCEULUBZTSUIUNUHULDEUOTUCUDULABCDENFGUOHIUEUF $.
  $}

  ${
    $d x y z .- $.  $d x y z G $.  $d x y z ph $.  $d x y z T $.  $d x y z U $.
    $d x y z X $.  $d x y Y $.
    lsmelvalm.m $e |- .- = ( -g ` G ) $.
    lsmelvalm.p $e |- .(+) = ( LSSum ` G ) $.
    lsmelvalm.t $e |- ( ph -> T e. ( SubGrp ` G ) ) $.
    lsmelvalm.u $e |- ( ph -> U e. ( SubGrp ` G ) ) $.
    $( Subgroup sum membership analogue of ~ lsmelval using vector subtraction.
       TODO: any way to shorten proof?  (Contributed by NM, 16-Mar-2015.)
       (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsmelvalm $p |- ( ph
       -> ( X e. ( T .(+) U ) <-> E. y e. T E. z e. U X = ( y .- z ) ) ) $=
      ( vx co wcel cfv wceq wrex syl2anc cv cplusg csubg wb lsmelval wa cminusg
      eqid adantr subginvcl sylan cbs subgrcl syl ad2antrr wss subgss grpsubinv
      cgrp sselda eqcomd oveq2 eqeq2d rspcev eqeq1 rexbidv syl5ibrcom rexlimdva
      grpsubval impbid rexbidva bitrd ) AIEFDOPZIBUAZNUAZGUBQZOZRZNFSZBESZIVNCU
      AZHOZRZCFSZBESAEGUCQZPZFWEPZVMVTUDLMBNVPDEFGIVPUHZKUETAVSWDBEAVNEPZUFZVSW
      DWJVRWDNFWJVOFPZUFZWDVRVQWBRZCFSZWLVOGUGQZQZFPZVQVNWPHOZRZWNWJWGWKWQAWGWI
      MUIZFGWOVOWOUHZUJUKWLWRVQWLGULQZVPGHWOVNVOXBUHZWHJXAAGUSPZWIWKAWFXDLEGUMU
      NUOWJVNXBPZWKAEXBVNAWFEXBUPLXBEGXCUQUNUTZUIWJFXBVOWJWGFXBUPWTXBFGXCUQUNZU
      TURVAWMWSCWPFWAWPRWBWRVQWAWPVNHVBVCVDTVRWCWMCFIVQWBVEVFVGVHWJWCVSCFWJWAFP
      ZUFZVSWCWBVQRZNFSZXIWAWOQZFPZWBVNXLVPOZRZXKWJWGXHXMWTFGWOWAXAUJUKXIXEWAXB
      PXOWJXEXHXFUIWJFXBWAXGUTXBVPGWOHVNWAXCWHXAJVITXJXONXLFVOXLRVQXNWBVOXLVNVP
      VBVCVDTWCVRXJNFIWBVQVEVFVGVHVJVKVL $.

    lsmelvalmi.x $e |- ( ph -> X e. T ) $.
    lsmelvalmi.y $e |- ( ph -> Y e. U ) $.
    $( Membership of vector subtraction in subgroup sum.  (Contributed by NM,
       27-Apr-2015.)  (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsmelvalmi $p |- ( ph -> ( X .- Y ) e. ( T .(+) U ) ) $=
      ( vx vy co wcel cv wceq wrex eqidd rspceov syl3anc lsmelvalm mpbird ) AGH
      FQZCDBQRUGOSPSFQTPDUAOCUAZAGCRHDRUGUGTUHMNAUGUBOPCDGHUGFUCUDAOPBCDEFUGIJK
      LUEUF $.
  $}

  ${
    $d a b c d x y .(+) $.  $d a b c d x y G $.  $d a b c d x y T $.
    $d a b c d x y U $.  $d a b c d x y Z $.
    lsmsubg.p $e |- .(+) = ( LSSum ` G ) $.
    lsmsubg.z $e |- Z = ( Cntz ` G ) $.
    $( The sum of two commuting submonoids is a submonoid.  (Contributed by
       Mario Carneiro, 19-Apr-2016.) $)
    lsmsubm $p |- ( ( T e. ( SubMnd ` G ) /\ U e. ( SubMnd ` G ) /\
        T C_ ( Z ` U ) ) -> ( T .(+) U ) e. ( SubMnd ` G ) ) $=
      ( va vc vb vd cfv wcel wss co cv syl3anc sseldd wa wrex vx vy csubmnd w3a
      cbs cplusg wral cmnd submrcl 3ad2ant1 eqid submss 3ad2ant2 lsmssv lsmub1x
      c0g simp2 syl2anc subm0cl wceq wb lsmelvalx anbi12d reeanv adantr simprll
      wi simprlr simprrl simprrr simpl3 cntzi simpl1 submcl lsmelvalix syl32anc
      mnd4g simpl2 eqeltrrd oveq12 eleq1d syl5ibrcom anassrs rexlimdvva syl5bir
      sylbid ralrimivv issubm syl mpbir3and ) BDUCLZMZCWKMZBCELZNZUDZBCAOZWKMZW
      QDUELZNZDUPLZWQMZUAPZUBPZDUFLZOZWQMZUBWQUGUAWQUGZWPDUHMZBWSNZCWSNZWTWLWMX
      IWOBDUIUJZWLWMXJWOWSBDWSUKZULUJZWMWLXKWOWSCDXMULUMZWSABCDXMFUNQWPBWQXAWPX
      JWMBWQNXNWLWMWOUQWSABCDXMFUOURWLWMXABMWOBDXAXAUKZUSUJRWPXGUAUBWQWQWPXCWQM
      ZXDWQMZSXCHPZIPZXEOZUTZICTZHBTZXDJPZKPZXEOZUTZKCTZJBTZSZXGWPXQYDXRYJWPXIX
      JXKXQYDVAXLXNXOHIWSXEABCDUHXCXMXEUKZFVBQWPXIXJXKXRYJVAXLXNXOJKWSXEABCDUHX
      DXMYLFVBQVCYKYCYISZJBTHBTWPXGYCYIHJBBVDWPYMXGHJBBYMYBYHSZKCTICTWPXSBMZYEB
      MZSZSZXGYBYHIKCCVDYRYNXGIKCCWPYQXTCMZYFCMZSZYNXGVGWPYQUUASZSZXGYNYAYGXEOZ
      WQMUUCXSYEXEOZXTYFXEOZXEOZUUDWQUUCWSXEDYFXSYEXTXMYLWPXIUUBXLVEZUUCBWSXSWP
      XJUUBXNVEZWPYOYPUUAVFZRUUCBWSYEUUIWPYOYPUUAVHZRUUCCWSXTWPXKUUBXOVEZWPYQYS
      YTVIZRUUCCWSYFUULWPYQYSYTVJZRUUCYEWNMYSYEXTXEOXTYEXEOUTUUCBWNYEWLWMWOUUBV
      KUUKRUUMXECDYEXTEYLGVLURVQUUCXIXJXKUUEBMZUUFCMZUUGWQMUUHUUIUULUUCWLYOYPUU
      OWLWMWOUUBVMUUJUUKXEBDXSYEYLVNQUUCWMYSYTUUPWLWMWOUUBVRUUMUUNXECDXTYFYLVNQ
      WSXEABCDUHUUEUUFXMYLFVOVPVSYNXFUUDWQXCYAXDYGXEVTWAWBWCWDWEWDWEWFWGWPXIWRW
      TXBXHUDVAXLUAUBWSXEWQDXAXMXPYLWHWIWJ $.

    $( The sum of two commuting subgroups is a subgroup.  (Contributed by Mario
       Carneiro, 19-Apr-2016.) $)
    lsmsubg $p |- ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) /\
        T C_ ( Z ` U ) ) -> ( T .(+) U ) e. ( SubGrp ` G ) ) $=
      ( vx va vb cfv wcel wss co cv syl wceq eqid wa adantr w3a csubmnd cminusg
      csubg wral simp1 subgsubm simp2 simp3 lsmsubm syl3anc cplusg wrex 3adant3
      lsmelval cgrp cbs subgrcl subgss simprl sseldd simprr grpinvadd subginvcl
      wb syl2anc eqtr4d lsmelvali syl22anc eqeltrd eleq1d syl5ibrcom rexlimdvva
      cntzi fveq2 sylbid ralrimiv issubg3 mpbir2and ) BDUDKZLZCVTLZBCEKZMZUAZBC
      ANZVTLZWFDUBKZLZHOZDUCKZKZWFLZHWFUEZWEBWHLZCWHLZWDWIWEWAWOWAWBWDUFZBDUGPW
      EWBWPWAWBWDUHZCDUGPWAWBWDUIZABCDEFGUJUKWEWMHWFWEWJWFLZWJIOZJOZDULKZNZQZJC
      UMIBUMZWMWAWBWTXFVEWDIJXCABCDWJXCRZFUOUNWEXEWMIJBCWEXABLZXBCLZSZSZWMXEXDW
      KKZWFLXKXLXAWKKZXBWKKZXCNZWFXKXLXNXMXCNZXOXKDUPLZXADUQKZLXBXRLXLXPQXKWAXQ
      WEWAXJWQTZBDURZPXKBXRXAXKWABXRMXSXRBDXRRZUSPWEXHXIUTZVAXKCXRXBXKWBCXRMWEW
      BXJWRTZXRCDYAUSPWEXHXIVBZVAXRXCDWKXAXBYAXGWKRZVCUKXKXMWCLXNCLZXOXPQXKBWCX
      MWEWDXJWSTXKWAXHXMBLZXSYBBDWKXAYEVDVFZVAXKWBXIYFYCYDCDWKXBYEVDVFZXCCDXMXN
      EXGGVNVFVGXKWAWBYGYFXOWFLXSYCYHYIXCABCDXMXNXGFVHVIVJXEWLXLWFWJXDWKVOVKVLV
      MVPVQWEXQWGWIWNSVEWEWAXQWQXTPHWFDWKYEVRPVS $.

    $( Subgroup sum commutes.  (Contributed by Mario Carneiro, 22-Apr-2016.) $)
    lsmcom2 $p |- ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) /\
        T C_ ( Z ` U ) ) -> ( T .(+) U ) = ( U .(+) T ) ) $=
      ( vx va vb cfv wcel co cv wceq wrex wa wb lsmelval 3adant3 wss w3a cplusg
      csubg simp3 sselda adantrr simprr eqid cntzi syl2anc eqeq2d rexcom syl6bb
      2rexbidva ancoms 3bitr4d eqrdv ) BDUDKZLZCUSLZBCEKZUAZUBZHBCAMZCBAMZVDHNZ
      INZJNZDUCKZMZOZJCPIBPZVGVIVHVJMZOZIBPJCPZVGVELZVGVFLZVDVMVOJCPIBPVPVDVLVO
      IJBCVDVHBLZVICLZQQZVKVNVGWAVHVBLZVTVKVNOVDVSWBVTVDBVBVHUTVAVCUEUFUGVDVSVT
      UHVJCDVHVIEVJUIZGUJUKULUOVOIJBCUMUNUTVAVQVMRVCIJVJABCDVGWCFSTUTVAVRVPRZVC
      VAUTWDJIVJACBDVGWCFSUPTUQUR $.
  $}

  ${
    $d a c x y z .(+) $.  $d a b c x y z G $.  $d a b c x y z R $.
    $d a b c x y z T $.  $d a b c x y z U $.
    lsmub1.p $e |- .(+) = ( LSSum ` G ) $.
    $( Subgroup sum is an upper bound of its arguments.  (Contributed by NM,
       6-Feb-2014.)  (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsmub1 $p |- ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) ) ->
        T C_ ( T .(+) U ) ) $=
      ( csubg cfv wcel cbs wss csubmnd co eqid subgss subgsubm lsmub1x syl2an )
      BDFGZHBDIGZJCDKGHBBCALJCRHSBDSMZNCDOSABCDTEPQ $.

    $( Subgroup sum is an upper bound of its arguments.  (Contributed by NM,
       6-Feb-2014.)  (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsmub2 $p |- ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) ) ->
        U C_ ( T .(+) U ) ) $=
      ( csubg cfv wcel csubmnd cbs wss co subgsubm eqid subgss lsmub2x syl2an )
      BDFGZHBDIGHCDJGZKCBCALKCRHBDMSCDSNZOSABCDTEPQ $.

    $( Union of subgroups is a subset of subgroup sum.  (Contributed by NM,
       6-Feb-2014.)  (Proof shortened by Mario Carneiro, 21-Jun-2014.) $)
    lsmunss $p |- ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) )
       -> ( T u. U ) C_ ( T .(+) U ) ) $=
      ( csubg cfv wcel wa co lsmub1 lsmub2 unssd ) BDFGZHCNHIBCBCAJABCDEKABCDEL
      M $.

    $( Subset implies subgroup sum subset.  (Contributed by NM, 6-Feb-2014.)
       (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsmless1 $p |- ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) /\ S C_ T )
        -> ( S .(+) U ) C_ ( T .(+) U ) ) $=
      ( csubg cfv wcel wss w3a cgrp cbs co subgrcl 3ad2ant1 eqid 3ad2ant2 simp3
      subgss lsmless1x syl31anc ) CEGHZIZDUCIZBCJZKELIZCEMHZJZDUHJZUFBDANCDANJU
      DUEUGUFCEOPUDUEUIUFUHCEUHQZTPUEUDUJUFUHDEUKTRUDUEUFSUHABCDELUKFUAUB $.

    $( Subset implies subgroup sum subset.  (Contributed by NM, 25-Feb-2014.)
       (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsmless2 $p |- ( ( S e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) /\ T C_ U )
        -> ( S .(+) T ) C_ ( S .(+) U ) ) $=
      ( csubg cfv wcel wss w3a cgrp cbs co subgrcl 3ad2ant1 eqid 3ad2ant2 simp3
      subgss lsmless2x syl31anc ) BEGHZIZDUCIZCDJZKELIZBEMHZJZDUHJZUFBCANBDANJU
      DUEUGUFBEOPUDUEUIUFUHBEUHQZTPUEUDUJUFUHDEUKTRUDUEUFSUHABCDELUKFUAUB $.

    $( Subset implies subgroup sum subset.  (Contributed by NM, 14-Jan-2015.)
       (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsmless12 $p |- ( ( ( S e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) )
             /\ ( R C_ S /\ T C_ U ) ) -> ( R .(+) T ) C_ ( S .(+) U ) ) $=
      ( csubg cfv wcel wa wss co cgrp cbs subgrcl ad2antrr eqid subgss sstrd
      simprr ad2antlr simprl lsmless1x syl31anc simpll simplr lsmless2 syl3anc
      ) CFHIZJZEUJJZKZBCLZDELZKZKZBDAMZCDAMZCEAMZUQFNJZCFOIZLZDVBLUNURUSLUKVAUL
      UPCFPQUKVCULUPVBCFVBRZSQUQDEVBUMUNUOUAZULEVBLUKUPVBEFVDSUBTUMUNUOUCVBABCD
      FNVDGUDUEUQUKULUOUSUTLUKULUPUFUKULUPUGVEACDEFGUHUIT $.

    $( Subgroup sum is idempotent.  (Contributed by NM, 6-Feb-2014.)  (Revised
       by Mario Carneiro, 21-Jun-2014.) $)
    lsmidm $p |- ( U e. ( SubGrp ` G ) -> ( U .(+) U ) = U ) $=
      ( vx vy csubg cfv wcel co cplusg cmpt2 crn wceq cbs eqid anidms wss wral
      cv lsmval cxp wf subgcl 3expb ralrimivva fmpt2 sylib frn syl lsmub1 eqssd
      eqsstrd ) BCGHIZBBAJZBUNUOEFBBETZFTZCKHZJZLZMZBUNUOVANEFCOHZURABBCVBPURPZ
      DUAQUNBBUBZBUTUCZVABRUNUSBIZFBSEBSVEUNVFEFBBUNUPBIUQBIVFURBCUPUQVCUDUEUFE
      FBBUSBUTUTPUGUHVDBUTUIUJUMUNBUORABBCDUKQUL $.

    $( The least upper bound property of subgroup sum.  (Contributed by NM,
       6-Feb-2014.)  (Revised by Mario Carneiro, 21-Jun-2014.) $)
    lsmlub $p |- ( ( S e. ( SubGrp ` G ) /\ T e. ( SubGrp ` G ) /\
                     U e. ( SubGrp ` G ) ) ->
      ( ( S C_ U /\ T C_ U ) <-> ( S .(+) T ) C_ U ) ) $=
      ( csubg cfv wcel w3a wss wa co wi simp3 lsmless12 ex 3adant3 sstr2 syl
      syl2anc wceq lsmidm 3ad2ant3 sseq2d sylibd lsmub1 lsmub2 jcad impbid ) BE
      GHZIZCUKIZDUKIZJZBDKZCDKZLZBCAMZDKZUOURUSDDAMZKZUTUOUNUNURVBNULUMUNOZVCUN
      UNLURVBABDCDEFPQUAUOVADUSUNULVADUBUMADEFUCUDUEUFUOUTUPUQUOBUSKZUTUPNULUMV
      DUNABCEFUGRBUSDSTUOCUSKZUTUQNULUMVEUNABCEFUHRCUSDSTUIUJ $.

    $( Subgroup sum with a subset.  (Contributed by NM, 27-Mar-2014.)  (Revised
       by Mario Carneiro, 19-Apr-2016.) $)
    lsmss1 $p |- ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) /\ T C_ U )
            -> ( T .(+) U ) = U ) $=
      ( csubg cfv wcel wss w3a co wa ssid wb lsmlub biimpd mpan2i 3impia lsmub2
      3anidm23 3adant3 eqssd ) BDFGZHZCUCHZBCIZJBCAKZCUDUEUFUGCIZUDUELZUFCCIZUH
      CMUIUFUJLZUHUDUEUKUHNABCCDEOTPQRUDUECUGIUFABCDESUAUB $.

    $( Subgroup sum with a subset.  (Contributed by NM, 10-Jan-2015.)  (Revised
       by Mario Carneiro, 19-Apr-2016.) $)
    lsmss1b $p |- ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) )
         -> ( T C_ U <-> ( T .(+) U ) = U ) ) $=
      ( csubg cfv wcel wa wss wceq lsmss1 3expia lsmub1 sseq2 syl5ibcom impbid
      co ) BDFGZHZCSHZIZBCJZBCARZCKZTUAUCUEABCDELMUBBUDJUEUCABCDENUDCBOPQ $.

    $( Subgroup sum with a subset.  (Contributed by NM, 27-Mar-2014.)  (Revised
       by Mario Carneiro, 19-Apr-2016.) $)
    lsmss2 $p |- ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) /\ U C_ T )
          -> ( T .(+) U ) = T ) $=
      ( csubg cfv wcel wss w3a co wa lsmlub 3anidm13 biimpd mpani 3impia lsmub1
      ssid wb 3adant3 eqssd ) BDFGZHZCUCHZCBIZJBCAKZBUDUEUFUGBIZUDUELZBBIZUFUHB
      SUIUJUFLZUHUDUEUKUHTABCBDEMNOPQUDUEBUGIUFABCDERUAUB $.

    $( Subgroup sum with a subset.  (Contributed by NM, 10-Jan-2015.)  (Revised
       by Mario Carneiro, 19-Apr-2016.) $)
    lsmss2b $p |- ( ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) )
         -> ( U C_ T <-> ( T .(+) U ) = T ) ) $=
      ( csubg cfv wcel wa wss wceq lsmss2 3expia lsmub2 sseq2 syl5ibcom impbid
      co ) BDFGZHZCSHZIZCBJZBCARZBKZTUAUCUEABCDELMUBCUDJUEUCABCDENUDBCOPQ $.

    $( Subgroup sum is associative.  (Contributed by NM, 2-Mar-2014.)  (Revised
       by Mario Carneiro, 19-Apr-2016.) $)
    lsmass $p |- ( ( R e. ( SubGrp ` G ) /\ T e. ( SubGrp ` G ) /\
                     U e. ( SubGrp ` G ) ) ->
                   ( ( R .(+) T ) .(+) U ) = ( R .(+) ( T .(+) U ) ) ) $=
      ( vy vc va vz vb wcel co cv wceq wrex eqid cvv wb wss vx csubg cfv cplusg
      w3a cmpt2 crn cbs lsmval 3adant3 rexeqdv wral rgen2w oveq1 eqeq2d rexbidv
      ovex rexrnmpt2 ax-mp syl6bb wa 3adant1 oveq2 adantr cgrp subgrcl 3ad2ant1
      ad2antrr subgss simplr sseldd 3ad2ant2 simprl 3ad2ant3 syl13anc 2rexbidva
      simprr grpass bitr4d rexbidva grpmnd syl lsmssv syl3anc lsmelvalx 3bitr4d
      cmnd eqrdv ) BEUBUCZLZCWILZDWILZUEZUABCAMZDAMZBCDAMZAMZWMUANZGNZHNZEUDUCZ
      MZOZHDPZGWNPZWRINZJNZXAMZOZJWPPZIBPZWRWOLZWRWQLZWMXEWRXFKNZXAMZWTXAMZOZHD
      PZKCPZIBPZXKWMXEXDGIKBCXOUFZUGZPZXTWMXDGWNYBWJWKWNYBOWLIKEUHUCZXAABCEYDQZ
      XAQZFUIUJUKXORLZKCULIBULYCXTSYGIKBCXFXNXAUQUMXDXRIKGBCXOYARYAQWSXOOZXCXQH
      DYHXBXPWRWSXOWTXAUNUOUPURUSUTWMXJXSIBWMXFBLZVAZXJWRXFXNWTXAMZXAMZOZHDPKCP
      ZXSWMXJYNSYIWMXJXIJKHCDYKUFZUGZPZYNWMXIJWPYPWKWLWPYPOWJKHYDXAACDEYEYFFUIV
      BUKYKRLZHDULKCULYQYNSYRKHCDXNWTXAUQUMXIYMKHJCDYKYORYOQXGYKOXHYLWRXGYKXFXA
      VCUOURUSUTVDYJXQYMKHCDYJXNCLZWTDLZVAZVAZXPYLWRUUBEVELZXFYDLXNYDLWTYDLXPYL
      OWMUUCYIUUAWJWKUUCWLBEVFVGZVHUUBBYDXFWMBYDTZYIUUAWJWKUUEWLYDBEYEVIVGZVHWM
      YIUUAVJVKUUBCYDXNWMCYDTZYIUUAWKWJUUGWLYDCEYEVIVLZVHYJYSYTVMVKUUBDYDWTWMDY
      DTZYIUUAWLWJUUIWKYDDEYEVIVNZVHYJYSYTVQVKYDXAEXFXNWTYEYFVRVOUOVPVSVTVSWMUU
      CWNYDTZUUIXLXESUUDWMEWGLZUUEUUGUUKWMUUCUULUUDEWAWBZUUFUUHYDABCEYEFWCWDUUJ
      GHYDXAAWNDEVEWRYEYFFWEWDWMUUCUUEWPYDTZXMXKSUUDUUFWMUULUUGUUIUUNUUMUUHUUJY
      DACDEYEFWCWDIJYDXAABWPEVEWRYEYFFWEWDWFWH $.
  $}

  ${
    lsm01.z $e |- .0. = ( 0g ` G ) $.
    lsm01.p $e |- .(+) = ( LSSum ` G ) $.
    $( Subgroup sum with the zero subgroup.  (Contributed by NM, 27-Mar-2014.)
       (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsm01 $p |- ( X e. ( SubGrp ` G ) -> ( X .(+) { .0. } ) = X ) $=
      ( csubg cfv wcel csn wss wceq cgrp subgrcl 0subg syl subg0cl snssd lsmss2
      co mpd3an23 ) CBGHZIZDJZUBIZUDCKCUDATCLUCBMIUECBNBDEOPUCDCCBDEQRACUDBFSUA
      $.

    $( Subgroup sum with the zero subgroup.  (Contributed by NM, 27-Mar-2014.)
       (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsm02 $p |- ( X e. ( SubGrp ` G ) -> ( { .0. } .(+) X ) = X ) $=
      ( csubg cfv wcel csn wss co wceq cgrp subgrcl 0subg syl id subg0cl snssd
      lsmss1 syl3anc ) CBGHZIZDJZUCIZUDUECKUECALCMUDBNIUFCBOBDEPQUDRUDDCCBDESTA
      UECBFUAUB $.
  $}

  ${
    $d x y G $.  $d x y H $.  $d x y S $.  $d x y T $.  $d x y U $.
    subglsm.h $e |- H = ( G |`s S ) $.
    subglsm.s $e |- .(+) = ( LSSum ` G ) $.
    subglsm.a $e |- A = ( LSSum ` H ) $.
    $( The subgroup sum evaluated within a subgroup.  (Contributed by Mario
       Carneiro, 27-Apr-2016.) $)
    subglsm $p |- ( ( S e. ( SubGrp ` G ) /\ T C_ S /\ U C_ S ) ->
        ( T .(+) U ) = ( T A U ) ) $=
      ( vx vy cfv wcel wss co wceq eqid cgrp 3ad2ant1 csubg w3a cv cplusg cmpt2
      crn simp11 ressplusg syl oveqd mpt2eq3dva rneqd subgrcl simp2 sstrd simp3
      cbs subgss lsmvalx syl3anc subggrp subgbas sseqtrd 3eqtr4d ) CFUAMZNZDCOZ
      ECOZUBZKLDEKUCZLUCZFUDMZPZUEZUFZKLDEVJVKGUDMZPZUEZUFZDEBPZDEAPZVIVNVRVIKL
      DEVMVQVIVJDNZVKENZUBZVLVPVJVKWDVFVLVPQVFVGVHWBWCUGCVLFGVEHVLRZUHUIUJUKULV
      IFSNZDFUQMZOEWGOVTVOQVFVGWFVHCFUMTVIDCWGVFVGVHUNZVFVGCWGOVHWGCFWGRZURTZUO
      VIECWGVFVGVHUPZWJUOKLWGVLBDEFSWIWEIUSUTVIGSNZDGUQMZOEWMOWAVSQVFVGWLVHCFGH
      VATVIDCWMWHVFVGCWMQVHCFGHVBTZVCVIECWMWKWNVCKLWMVPADEGSWMRVPRJUSUTVD $.
  $}

  ${
    lssnle.p $e |- .(+) = ( LSSum ` G ) $.
    lssnle.t $e |- ( ph -> T e. ( SubGrp ` G ) ) $.
    lssnle.u $e |- ( ph -> U e. ( SubGrp ` G ) ) $.
    $( Equivalent expressions for "not less than".  ( ~ chnlei analog.)
       (Contributed by NM, 10-Jan-2015.)  (Revised by Mario Carneiro,
       19-Apr-2016.) $)
    lssnle $p |- ( ph -> ( -. U C_ T <-> T C. ( T .(+) U ) ) ) $=
      ( wss wn co wne wpss wceq csubg cfv wcel wb lsmss2b syl2anc syl6bb lsmub1
      eqcom necon3bbid df-pss baib syl bitr4d ) ADCIZJCCDBKZLZCUJMZAUICUJAUIUJC
      NZCUJNACEOPZQZDUNQZUIUMRGHBCDEFSTUJCUCUAUDACUJIZULUKRAUOUPUQGHBCDEFUBTULU
      QUKCUJUEUFUGUH $.
  $}

  ${
    $d x y z .(+) $.  $d x y z G $.  $d x y z S $.  $d x y z T $.
    $d x y z U $.
    lsmmod.p $e |- .(+) = ( LSSum ` G ) $.
    $( The modular law holds for subgroup sum.  Similar to part of Theorem 16.9
       of [MaedaMaeda] p. 70.  (Contributed by NM, 2-Apr-2014.)  (Revised by
       Mario Carneiro, 19-Apr-2016.) $)
    lsmmod $p |- ( ( ( S e. ( SubGrp ` G ) /\ T e. ( SubGrp ` G ) /\
                       U e. ( SubGrp ` G ) ) /\ S C_ U ) ->
      ( S .(+) ( T i^i U ) ) = ( ( S .(+) T ) i^i U ) ) $=
      ( vy vz cfv wcel wss wa co syl3anc eqid cv wceq syl2anc adantr sseldd w3a
      csubg cin simpl1 simpl2 inss1 a1i lsmless2 simpr inss2 cbs cmre cgrp cacs
      vx subgrcl subgacs acsmre 4syl simpl3 mreincl lsmlub mpbi2and elin cplusg
      ssind wrex lsmelval simprll simprlr cminusg c0g syl subgss grplinv oveq1d
      wb subginvcl simpll2 grpass syl13anc grplid 3eqtr3d simprr eqeltrrd elind
      subgcl lsmelvali syl22anc expr eleq1 imbi12d syl5ibrcom rexlimdvva sylbid
      wi impd syl5bi ssrdv eqssd ) BEUBIZJZCXAJZDXAJZUAZBDKZLZBCDUCZAMZBCAMZDUC
      ZXGXIXJDXGXBXCXHCKZXIXJKXBXCXDXFUDZXBXCXDXFUEZXLXGCDUFUGABXHCEFUHNXGXFXHD
      KZXIDKZXEXFUIZXOXGCDUJUGXGXBXHXAJZXDXFXOLXPVQXMXGXAEUKIZULIJZXCXDXRXGXBEU
      MJZXAXSUNIJXTXMBEUPZXSEXSOZUQXAXSURUSXNXBXCXDXFUTZCDXAXSVANZYDABXHDEFVBNV
      CVFXGUOXKXIUOPZXKJYFXJJZYFDJZLXGYFXIJZYFXJDVDXGYGYHYIXGYGYFGPZHPZEVEIZMZQ
      ZHCVGGBVGZYHYIWPZXGXBXCYGYOVQXMXNGHYLABCEYFYLOZFVHRXGYNYPGHBCXGYJBJZYKCJZ
      LZLYPYNYMDJZYMXIJZWPXGYTUUAUUBXGYTUUALZLZXBXRYRYKXHJUUBXGXBUUCXMSZXGXRUUC
      YESXGYRYSUUAVIZUUDCDYKXGYRYSUUAVJZUUDYJEVKIZIZYMYLMZYKDUUDUUIYJYLMZYKYLMZ
      EVLIZYKYLMZUUJYKUUDUUKUUMYKYLUUDYAYJXSJZUUKUUMQUUDXBYAUUEYBVMZUUDDXSYJUUD
      XDDXSKXGXDUUCYDSZXSDEYCVNVMZUUDBDYJXGXFUUCXQSUUFTZTZXSYLEUUHYJUUMYCYQUUMO
      ZUUHOZVORVPUUDYAUUIXSJUUOYKXSJZUULUUJQUUPUUDDXSUUIUURUUDXDYJDJUUIDJZUUQUU
      SDEUUHYJUVBVRRZTUUTUUDCXSYKUUDXCCXSKXBXCXDXFUUCVSXSCEYCVNVMUUGTZXSYLEUUIY
      JYKYCYQVTWAUUDYAUVCUUNYKQUUPUVFXSYLEYKUUMYCYQUVAWBRWCUUDXDUVDUUAUUJDJUUQU
      VEXGYTUUAWDYLDEUUIYMYQWGNWEWFYLABXHEYJYKYQFWHWIWJYNYHUUAYIUUBYFYMDWKYFYMX
      IWKWLWMWNWOWQWRWSWT $.

    $( Modular law dual for subgroup sum.  Similar to part of Theorem 16.9 of
       [MaedaMaeda] p. 70.  (Contributed by NM, 8-Jan-2015.)  (Revised by Mario
       Carneiro, 21-Apr-2016.) $)
    lsmmod2 $p |- ( ( ( S e. ( SubGrp ` G ) /\ T e. ( SubGrp ` G ) /\
                        U e. ( SubGrp ` G ) ) /\ U C_ S ) ->
                    ( S i^i ( T .(+) U ) ) = ( ( S i^i T ) .(+) U ) ) $=
      ( csubg cfv wcel w3a wss wa coppg cin eqid syl6eleq incom 3eqtr3g oppglsm
      co clsm simpl3 oppgsubg simpl2 simpl1 simpr lsmmod syl31anc eqcomd oveq2i
      wceq ineq2i ) BEGHZIZCUMIZDUMIZJZDBKZLZBDCEMHZUAHZTZNZDBCNZVATZBCDATZNVDD
      ATUSVBBNZDCBNZVATZVCVEUSVIVGUSDUTGHZICVJIBVJIURVIVGUKUSDUMVJUNUOUPURUBEUT
      UTOZUCZPUSCUMVJUNUOUPURUDVLPUSBUMVJUNUOUPURUEVLPUQURUFVADCBUTVAOUGUHUIVBB
      QVHVDDVACBQUJRVBVFBADCEUTVKFSULADVDEUTVKFSR $.
  $}

  ${
    $d t u x y B $.  $d t u x y K $.  $d t u x y L $.  $d t u x y ph $.
    lsmpropd.b1 $e |- ( ph -> B = ( Base ` K ) ) $.
    lsmpropd.b2 $e |- ( ph -> B = ( Base ` L ) ) $.
    lsmpropd.p $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    lsmpropd.v1 $e |- ( ph -> K e. _V ) $.
    lsmpropd.v2 $e |- ( ph -> L e. _V ) $.
    $( If two structures have the same components (properties), they have the
       same subspace structure.  (Contributed by Mario Carneiro,
       29-Jun-2015.) $)
    lsmpropd $p |- ( ph -> ( LSSum ` K ) = ( LSSum ` L ) ) $=
      ( vt vu cfv cv cmpt2 wcel wceq cvv eqid cbs cpw cplusg co crn clsm simp11
      w3a simp12 elpwid simp2 sseldd simp13 simp3 syl12anc rneqd pweqd mpt2eq12
      mpt2eq3dva syl2anc 3eqtr3d lsmfval syl 3eqtr4d ) ALMEUANZUBZVFBCLOZMOZBOZ
      COZEUCNZUDZPZUEZPZLMFUANZUBZVQBCVGVHVIVJFUCNZUDZPZUEZPZEUFNZFUFNZALMDUBZW
      EVNPZLMWEWEWAPZVOWBALMWEWEVNWAAVGWEQZVHWEQZUHZVMVTWJBCVGVHVLVSWJVIVGQZVJV
      HQZUHZAVIDQVJDQVLVSRAWHWIWKWLUGWMVGDVIWMVGDAWHWIWKWLUIUJWJWKWLUKULWMVHDVJ
      WMVHDAWHWIWKWLUMUJWJWKWLUNULIUOUSUPUSAWEVFRZWNWFVORADVEGUQZWOLMWEWEVFVFVN
      URUTAWEVQRZWPWGWBRADVPHUQZWQLMWEWEVQVQWAURUTVAAESQWCVORJBCMLVEVKWCESVETVK
      TWCTVBVCAFSQWDWBRKBCMLVPVRWDFSVPTVRTWDTVBVCVD $.
  $}

  ${
    cntzrecd.z $e |- Z = ( Cntz ` G ) $.
    cntzrecd.t $e |- ( ph -> T e. ( SubGrp ` G ) ) $.
    cntzrecd.u $e |- ( ph -> U e. ( SubGrp ` G ) ) $.
    cntzrecd.s $e |- ( ph -> T C_ ( Z ` U ) ) $.
    $( Commute the "subgroups commute" predicate.  (Contributed by Mario
       Carneiro, 21-Apr-2016.) $)
    cntzrecd $p |- ( ph -> U C_ ( Z ` T ) ) $=
      ( cfv wss csubg wcel wb cbs eqid subgss cntzrec syl2an syl2anc mpbid ) AB
      CEJKZCBEJKZIABDLJZMZCUDMZUBUCNZGHUEBDOJZKCUHKUGUFUHBDUHPZQUHCDUIQUHBCDEUI
      FRSTUA $.
  $}

  ${
    $d x .(+) $.  $d s u x .0. $.  $d s u x ph $.  $d s u x S $.  $d s u x T $.
    $d s u G $.  $d s u x U $.
    lsmcntz.p $e |- .(+) = ( LSSum ` G ) $.
    lsmcntz.s $e |- ( ph -> S e. ( SubGrp ` G ) ) $.
    lsmcntz.t $e |- ( ph -> T e. ( SubGrp ` G ) ) $.
    lsmcntz.u $e |- ( ph -> U e. ( SubGrp ` G ) ) $.
    ${
      lsmcntz.z $e |- Z = ( Cntz ` G ) $.
      $( The "subgroups commute" predicate applied to a subgroup sum.
         (Contributed by Mario Carneiro, 21-Apr-2016.) $)
      lsmcntz $p |- ( ph -> ( ( S .(+) T ) C_ ( Z ` U ) <->
        ( S C_ ( Z ` U ) /\ T C_ ( Z ` U ) ) ) ) $=
        ( cfv wss wa co csubg wcel wb cgrp subgrcl eqid subgss cntzsubg syl2anc
        cbs syl lsmlub syl3anc bicomd ) ACEGMZNDUKNOZCDBPUKNZACFQMZRDUNRUKUNRZU
        LUMSIJAEUNRZUOKUPFTREFUFMZNUOEFUAUQEFUQUBZUCUQEFGURLUDUEUGBCDUKFHUHUIUJ
        $.

      $( The "subgroups commute" predicate applied to a subgroup sum.
         (Contributed by Mario Carneiro, 21-Apr-2016.) $)
      lsmcntzr $p |- ( ph -> ( S C_ ( Z ` ( T .(+) U ) ) <->
        ( S C_ ( Z ` T ) /\ S C_ ( Z ` U ) ) ) ) $=
        ( cfv wss wb wcel subgss syl cntzrec syl2anc co lsmcntz cmnd csubg cgrp
        wa cbs subgrcl grpmnd 3syl eqid lsmssv syl3anc anbi12d 3bitr3d ) ADEBUA
        ZCGMZNZDUQNZEUQNZUFCUPGMNZCDGMNZCEGMNZUFABDECFGHJKILUBAUPFUGMZNZCVDNZUR
        VAOAFUCPZDVDNZEVDNZVEACFUDMZPZFUEPVGICFUHFUIUJADVJPVHJVDDFVDUKZQRZAEVJP
        VIKVDEFVLQRZVDBDEFVLHULUMAVKVFIVDCFVLQRZVDUPCFGVLLSTAUSVBUTVCAVHVFUSVBO
        VMVOVDDCFGVLLSTAVIVFUTVCOVNVOVDECFGVLLSTUNUO $.
    $}

    lsmdisj.o $e |- .0. = ( 0g ` G ) $.
    ${
      lsmdisj.i $e |- ( ph -> ( ( S .(+) T ) i^i U ) = { .0. } ) $.
      $( Disjointness from a subgroup sum.  (Contributed by Mario Carneiro,
         21-Apr-2016.) $)
      lsmdisj $p |- ( ph ->
        ( ( S i^i U ) = { .0. } /\ ( T i^i U ) = { .0. } ) ) $=
        ( cin wceq wss wcel syl2anc syl subg0cl csn co csubg cfv lsmub1 sseqtrd
        ssrin elind snssd eqssd lsmub2 jca ) ACENZGUAZODENZUNOAUMUNAUMCDBUBZENZ
        UNACUPPZUMUQPACFUCUDZQZDUSQZURIJBCDFHUERCUPEUGSMUFAGUMACEGAUTGCQICFGLTS
        AEUSQGEQKEFGLTSZUHUIUJAUOUNAUOUQUNADUPPZUOUQPAUTVAVCIJBCDFHUKRDUPEUGSMU
        FAGUOADEGAVAGDQJDFGLTSVBUHUIUJUL $.

      lsmdisj2.i $e |- ( ph -> ( S i^i T ) = { .0. } ) $.
      $( Association of the disjointness constraint in a subgroup sum.
         (Contributed by Mario Carneiro, 22-Apr-2016.) $)
      lsmdisj2 $p |- ( ph -> ( T i^i ( S .(+) U ) ) = { .0. } ) $=
        ( co wcel wceq syl2anc syl ad2antrr vx vs vu cin csn cv cplusg cfv wrex
        wa wi csubg wb eqid lsmelval simplrl cminusg cgrp subgrcl subgss sseldd
        cbs wss grplinv oveq1d subginvcl simplrr grpass syl13anc grplid 3eqtr3d
        simpr syl22anc eqeltrrd elind eleqtrd elsni oveq2d grprid eqtrd oveq12d
        lsmelvali grpidcl eleq1 eqeq1 imbi12d syl5ibrcom rexlimdvva sylbid impd
        ex com23 elin velsn 3imtr4g ssrdv subg0cl lsmub1 snssd eqssd ) ADCEBOZU
        DZGUEZAUAXBXCAUAUFZDPZXDXAPZUJXDGQZXDXBPXDXCPAXEXFXGAXFXEXGAXFXDUBUFZUC
        UFZFUGUHZOZQZUCEUIUBCUIZXEXGUKZACFULUHZPZEXOPZXFXMUMIKUBUCXJBCEFXDXJUNZ
        HUORAXLXNUBUCCEAXHCPZXIEPZUJZUJZXNXLXKDPZXKGQZUKYBYCYDYBYCUJZXKGGXJOZGY
        EXHGXIGXJYEXHXCPXHGQYEXHCDUDZXCYECDXHAXSXTYCUPZYEXKXHDYEXKXHGXJOZXHYEXI
        GXHXJYEXIXCPXIGQYEXICDBOZEUDZXCYEYJEXIYEXHFUQUHZUHZXKXJOZXIYJYEYMXHXJOZ
        XIXJOZGXIXJOZYNXIYEYOGXIXJYEFURPZXHFVBUHZPZYOGQAYRYAYCAXPYRICFUSSZTZYEC
        YSXHYEXPCYSVCAXPYAYCITZYSCFYSUNZUTSZYHVAZYSXJFYLXHGUUDXRLYLUNZVDRVEYEYR
        YMYSPYTXIYSPZYPYNQUUBYECYSYMUUEYEXPXSYMCPZUUCYHCFYLXHUUGVFRZVAUUFYEEYSX
        IYEXQEYSVCAXQYAYCKTYSEFUUDUTSAXSXTYCVGZVAZYSXJFYMXHXIUUDXRVHVIYEYRUUHYQ
        XIQUUBUULYSXJFXIGUUDXRLVJRVKYEXPDXOPZUUIYCYNYJPUUCAUUMYAYCJTUUJYBYCVLZX
        JBCDFYMXKXRHWBVMVNUUKVOAYKXCQYAYCMTVPXIGVQSZVRYEYRYTYIXHQUUBUUFYSXJFXHG
        UUDXRLVSRVTUUNVNVOAYGXCQYAYCNTVPXHGVQSUUOWAAYFGQZYAYCAYRGYSPZUUPUUAAYRU
        UQUUAYSFGUUDLWCSYSXJFGGUUDXRLVJRTVTWKXLXEYCXGYDXDXKDWDXDXKGWEWFWGWHWIWL
        WJXDDXAWMUAGWNWOWPAGXBADXAGAUUMGDPJDFGLWQSACXAGAXPXQCXAVCIKBCEFHWRRAXPG
        CPICFGLWQSVAVOWSWT $.

      lsmdisj3.z $e |- Z = ( Cntz ` G ) $.
      lsmdisj3.s $e |- ( ph -> S C_ ( Z ` T ) ) $.
      $( Association of the disjointness constraint in a subgroup sum.
         (Contributed by Mario Carneiro, 21-Apr-2016.) $)
      lsmdisj3 $p |- ( ph -> ( S i^i ( T .(+) U ) ) = { .0. } ) $=
        ( co cin cfv csn csubg wcel wss wceq lsmcom2 ineq1d eqtr3d incom syl5eq
        syl3anc lsmdisj2 ) ABDCEFGIKJLMACDBRZESDCBRZESGUAZAUMUNEACFUBTZUCDUPUCC
        DHTUDUMUNUEJKQBCDFHIPUFUKUGNUHADCSCDSUODCUIOUJUL $.
    $}

    ${
      lsmdisjr.i $e |- ( ph -> ( S i^i ( T .(+) U ) ) = { .0. } ) $.
      $( Disjointness from a subgroup sum.  (Contributed by Mario Carneiro,
         21-Apr-2016.) $)
      lsmdisjr $p |- ( ph ->
        ( ( S i^i T ) = { .0. } /\ ( S i^i U ) = { .0. } ) ) $=
        ( cin csn wceq wa co incom eqeq1i syl5eqr lsmdisj anbi12i sylib ) ADCNZ
        GOZPZECNZUFPZQCDNZUFPZCENZUFPZQABDECFGHJKILADEBRZCNCUNNUFCUNSMUAUBUGUKU
        IUMUEUJUFDCSTUHULUFECSTUCUD $.

      lsmdisj2r.i $e |- ( ph -> ( T i^i U ) = { .0. } ) $.
      $( Association of the disjointness constraint in a subgroup sum.
         (Contributed by Mario Carneiro, 22-Apr-2016.) $)
      lsmdisj2r $p |- ( ph -> ( ( S .(+) U ) i^i T ) = { .0. } ) $=
        ( co cin cfv eqid incom syl6eleq coppg clsm csn oppglsm ineq2i oppgsubg
        eqtri csubg oppgid ineq1i syl5eq syl5eqr lsmdisj2 ) ACEBOZDPZDECFUAQZUB
        QZOZPZGUCZUSDUNPUOURUNDBECFUPUPRZHUDUEDUNSUGAUQEDCUPGUQRAEFUHQZUPUHQZKF
        UPVAUFZTADVBVCJVDTACVBVCIVDTFUPGVALUIAEDUQOZCPZCDEBOZPZUTVFVGCPVHVEVGCB
        EDFUPVAHUDUJVGCSUGMUKAEDPDEPUTDESNULUMUL $.

      lsmdisj3r.z $e |- Z = ( Cntz ` G ) $.
      lsmdisj3r.s $e |- ( ph -> T C_ ( Z ` U ) ) $.
      $( Association of the disjointness constraint in a subgroup sum.
         (Contributed by Mario Carneiro, 22-Apr-2016.) $)
      lsmdisj3r $p |- ( ph -> ( ( S .(+) T ) i^i U ) = { .0. } ) $=
        ( co cin cfv csn csubg wcel wss wceq lsmcom2 ineq2d eqtr3d incom syl5eq
        syl3anc lsmdisj2r ) ABCEDFGIJLKMACDEBRZSCEDBRZSGUAZAUMUNCADFUBTZUCEUPUC
        DEHTUDUMUNUEKLQBDEFHIPUFUKUGNUHAEDSDESUOEDUIOUJUL $.
    $}

    $( Association of the disjointness constraint in a subgroup sum.
       (Contributed by Mario Carneiro, 21-Apr-2016.) $)
    lsmdisj2a $p |- ( ph ->
      ( ( ( ( S .(+) T ) i^i U ) = { .0. } /\ ( S i^i T ) = { .0. } ) <->
        ( ( T i^i ( S .(+) U ) ) = { .0. } /\ ( S i^i U ) = { .0. } ) ) ) $=
      ( co cin wceq wa wcel adantr incom syl5eq csn csubg simprl simprr lsmdisj
      cfv lsmdisj2 simpld jca lsmdisjr impbida ) ACDBMZENZGUAZOZCDNZUNOZPZDCEBM
      ZNZUNOZCENUNOZPZAURPZVAVBVDBCDEFGHACFUBUFZQZURIRZADVEQZURJRZAEVEQZURKRZLA
      UOUQUCZAUOUQUDUGVDVBDENUNOZVDBCDEFGHVGVIVKLVLUEUHUIAVCPZUOUQVNUMEULNUNULE
      SVNBCEDFGHAVFVCIRZAVJVCKRZAVHVCJRZLVNUSDNUTUNUSDSAVAVBUCZTAVAVBUDUGTVNUPD
      CNZUNCDSVNVSUNOVMVNBDCEFGHVQVOVPLVRUJUHTUIUK $.

    $( Association of the disjointness constraint in a subgroup sum.
       (Contributed by Mario Carneiro, 21-Apr-2016.) $)
    lsmdisj2b $p |- ( ph ->
      ( ( ( ( S .(+) U ) i^i T ) = { .0. } /\ ( S i^i U ) = { .0. } ) <->
        ( ( S i^i ( T .(+) U ) ) = { .0. } /\ ( T i^i U ) = { .0. } ) ) ) $=
      ( co cin wceq wa incom wcel adantr syl5eq csn cfv simprl simprr lsmdisj2r
      csubg lsmdisj simprd jca lsmdisjr impbida ) ACEBMZDNZGUAZOZCENUNOZPZCDEBM
      ZNZUNOZDENZUNOZPZAUQPZUTVBVDUSURCNUNCURQVDBDCEFGHADFUFUBZRZUQJSZACVERZUQI
      SZAEVERZUQKSZLVDDULNUMUNDULQAUOUPUCZTAUOUPUDUETVDVAEDNZUNDEQVDCDNUNOZVMUN
      OVDBCEDFGHVIVKVGLVLUGUHTUIAVCPZUOUPVOBCDEFGHAVHVCISZAVFVCJSZAVJVCKSZLAUTV
      BUCZAUTVBUDUEVOVNUPVOBCDEFGHVPVQVRLVSUJUHUIUK $.

    lsmdisj3b.z $e |- Z = ( Cntz ` G ) $.
    ${
      lsmdisj3a.2 $e |- ( ph -> S C_ ( Z ` T ) ) $.
      $( Association of the disjointness constraint in a subgroup sum.
         (Contributed by Mario Carneiro, 21-Apr-2016.) $)
      lsmdisj3a $p |- ( ph ->
        ( ( ( ( S .(+) T ) i^i U ) = { .0. } /\ ( S i^i T ) = { .0. } ) <->
          ( ( S i^i ( T .(+) U ) ) = { .0. } /\ ( T i^i U ) = { .0. } ) ) ) $=
        ( co cin wceq wa cfv csn csubg wcel lsmcom2 syl3anc ineq1d eqeq1d incom
        wss a1i anbi12d lsmdisj2a bitrd ) ACDBPZEQZGUAZRZCDQZUPRZSDCBPZEQZUPRZD
        CQZUPRZSCDEBPQUPRDEQUPRSAUQVBUSVDAUOVAUPAUNUTEACFUBTZUCDVEUCCDHTUIUNUTR
        JKOBCDFHINUDUEUFUGAURVCUPURVCRACDUHUJUGUKABDCEFGIKJLMULUM $.
    $}

    ${
      lsmdisj3b.2 $e |- ( ph -> T C_ ( Z ` U ) ) $.
      $( Association of the disjointness constraint in a subgroup sum.
         (Contributed by Mario Carneiro, 21-Apr-2016.) $)
      lsmdisj3b $p |- ( ph ->
        ( ( ( ( S .(+) T ) i^i U ) = { .0. } /\ ( S i^i T ) = { .0. } ) <->
          ( ( S i^i ( T .(+) U ) ) = { .0. } /\ ( T i^i U ) = { .0. } ) ) ) $=
        ( co cin wceq wa cfv csn lsmdisj2b csubg wcel wss lsmcom2 ineq2d eqeq1d
        syl3anc incom a1i anbi12d bitr4d ) ACDBPEQGUAZRCDQUNRSCEDBPZQZUNRZEDQZU
        NRZSCDEBPZQZUNRZDEQZUNRZSABCEDFGIJLKMUBAVBUQVDUSAVAUPUNAUTUOCADFUCTZUDE
        VEUDDEHTUEUTUORKLOBDEFHINUFUIUGUHAVCURUNVCURRADEUJUKUHULUM $.
    $}
  $}

  ${
    subgdisj.p $e |- .+ = ( +g ` G ) $.
    subgdisj.o $e |- .0. = ( 0g ` G ) $.
    subgdisj.z $e |- Z = ( Cntz ` G ) $.
    subgdisj.t $e |- ( ph -> T e. ( SubGrp ` G ) ) $.
    subgdisj.u $e |- ( ph -> U e. ( SubGrp ` G ) ) $.
    subgdisj.i $e |- ( ph -> ( T i^i U ) = { .0. } ) $.
    subgdisj.s $e |- ( ph -> T C_ ( Z ` U ) ) $.
    subgdisj.a $e |- ( ph -> A e. T ) $.
    subgdisj.c $e |- ( ph -> C e. T ) $.
    subgdisj.b $e |- ( ph -> B e. U ) $.
    subgdisj.d $e |- ( ph -> D e. U ) $.
    ${
      subgdisj.j $e |- ( ph -> ( A .+ B ) = ( C .+ D ) ) $.
      $( Vectors belonging to disjoint commuting subgroups are uniquely
         determined by their sum.  (Contributed by NM, 2-Apr-2014.)  (Revised
         by Mario Carneiro, 19-Apr-2016.) $)
      subgdisj1 $p |- ( ph -> A = C ) $=
        ( csg cfv wceq csn wcel cin csubg eqid subgsubcl syl3anc sseldd syl2anc
        cntzi oveq12d cgrp cbs subgrcl syl wss subgss grpcl grpsubsub4 syl13anc
        co eqeltrrd 3eqtr4d grppncan oveq1d eqtrd 3eqtr3d eqeltrd elind eleqtrd
        elsni wb grpsubeq0 mpbid ) ABDIUDUEZVGZJUFZBDUFZAWBJUGZUHWCAWBGHUIWEAGH
        WBAGIUJUEZUHZBGUHDGUHWBGUHOSTGIWABDWAUKZULUMAWBECWAVGZHABCFVGZCWAVGZDWA
        VGZDEFVGZDWAVGZCWAVGZWBWIAWJDCFVGZWAVGZWMCDFVGZWAVGZWLWOAWJWMWPWRWAUCAD
        HKUEZUHZCHUHZWPWRUFAGWTDRTUNZUAFHIDCKLNUPUOUQAIURUHZWJIUSUEZUHZCXEUHZDX
        EUHZWLWQUFAWGXDOGIUTVAZAXDBXEUHZXGXFXIAGXEBAWGGXEVBOXEGIXEUKZVCVAZSUNZA
        HXECAHWFUHZHXEVBPXEHIXKVCVAZUAUNZXEFIBCXKLVDUMZXPAGXEDXLTUNZXEFIWAWJCDX
        KLWHVEVFAXDWMXEUHXHXGWOWSUFXIAWJWMXEUCXQVHXRXPXEFIWAWMDCXKLWHVEVFVIAWKB
        DWAAXDXJXGWKBUFXIXMXPXEFIWABCXKLWHVJUMVKAWNECWAAWNEDFVGZDWAVGZEAWMXSDWA
        AXAEHUHZWMXSUFXCUBFHIDEKLNUPUOVKAXDEXEUHXHXTEUFXIAHXEEXOUBUNXRXEFIWAEDX
        KLWHVJUMVLVKVMAXNYAXBWIHUHPUBUAHIWAECWHULUMVNVOQVPWBJVQVAAXDXJXHWCWDVRX
        IXMXRXEIWABDJXKMWHVSUMVT $.

      $( Vectors belonging to disjoint commuting subgroups are uniquely
         determined by their sum.  (Contributed by NM, 12-Jul-2014.)  (Revised
         by Mario Carneiro, 19-Apr-2016.) $)
      subgdisj2 $p |- ( ph -> B = D ) $=
        ( cin csn incom syl5eqr cntzrecd co cfv wcel wceq cntzi syl2anc 3eqtr3d
        sseldd subgdisj1 ) ACBEDFHGIJKLMNPOAHGUDGHUDJUEGHUFQUGAGHIKNOPRUHUAUBST
        ABCFUIZDEFUIZCBFUIZEDFUIZUCABHKUJZUKCHUKURUTULAGVBBRSUPUAFHIBCKLNUMUNAD
        VBUKEHUKUSVAULAGVBDRTUPUBFHIDEKLNUMUNUOUQ $.
    $}

    $( Vectors belonging to disjoint commuting subgroups are uniquely
       determined by their sum.  Analogous to ~ opth , this theorem shows a way
       of representing a pair of vectors.  (Contributed by NM, 5-Jul-2014.)
       (Revised by Mario Carneiro, 19-Apr-2016.) $)
    subgdisjb $p |- ( ph ->
        ( ( A .+ B ) = ( C .+ D ) <-> ( A = C /\ B = D ) ) ) $=
      ( co wceq csubg cfv wcel adantr cin csn wss simpr subgdisj1 subgdisj2 jca
      wa ex oveq12 impbid1 ) ABCFUCDEFUCUDZBDUDZCEUDZUPZAUTVCAUTUPZVAVBVDBCDEFG
      HIJKLMNAGIUEUFZUGUTOUHZAHVEUGUTPUHZAGHUIJUJUDUTQUHZAGHKUFUKUTRUHZABGUGUTS
      UHZADGUGUTTUHZACHUGUTUAUHZAEHUGUTUBUHZAUTULZUMVDBCDEFGHIJKLMNVFVGVHVIVJVK
      VLVMVNUNUOUQBDCEFURUS $.
  $}

  ${
    $d g t u z .+ $.  $d g t u x y z B $.  $d t u x y z T $.  $d t u x y z U $.
    $d g t u x y z .(+) $.  $d g t u x y z G $.  $d t u x y z V $.
    $d x y z X $.
    pj1fval.v $e |- B = ( Base ` G ) $.
    pj1fval.a $e |- .+ = ( +g ` G ) $.
    pj1fval.s $e |- .(+) = ( LSSum ` G ) $.
    pj1fval.p $e |- P = ( proj1 ` G ) $.
    $( The left projection function (for a direct product of group subspaces).
       (Contributed by Mario Carneiro, 15-Oct-2015.)  (Revised by Mario
       Carneiro, 21-Apr-2016.) $)
    pj1fval $p |- ( ( G e. V /\ T C_ B /\ U C_ B ) -> ( T P U ) =
      ( z e. ( T .(+) U ) |-> ( iota_ x e. T E. y e. U z = ( x .+ y ) ) ) ) $=
      ( vt vu cv wceq cfv vg wcel wss w3a cpw co wrex crio cmpt cpj1 cmpt2 elex
      cvv 3ad2ant1 cbs clsm cplusg fveq2 syl6eqr pweqd eqeq2d rexbidv riotabidv
      oveqd mpteq12dv mpt2eq123dv df-pj1 fvex eqeltri pwex mpt2ex syl syl5eq wa
      fvmpt oveq12 adantl simprl simprr riotaeqbidv simp2 elpw2 sylibr ovex a1i
      rexeqdv simp3 mptex ovmpt2d ) JKUBZHDUCZIDUCZUDZPQHIDUEZWNCPRZQRZGUFZCRZA
      RZBRZFUFZSZBWPUGZAWOUHZUIZCHIGUFZXBBIUGZAHUHZUIZEUMWMEJUJTZPQWNWNXEUKZOWM
      JUMUBZXJXKSWJWKXLWLJKULUNUAJPQUARZUOTZUEZXOCWOWPXMUPTZUFZWRWSWTXMUQTZUFZS
      ZBWPUGZAWOUHZUIZUKXKUMUJXMJSZPQXOXOYCWNWNXEYDXNDYDXNJUOTZDXMJUOURLUSUTZYF
      YDCXQYBWQXDYDXPGWOWPYDXPJUPTGXMJUPURNUSVDYDYAXCAWOYDXTXBBWPYDXSXAWRYDXRFW
      SWTYDXRJUQTFXMJUQURMUSVDVAVBVCVEVFABCUAQPVGPQWNWNXEDDYEUMLJUOVHVIZVJZYHVK
      VOVLVMWMWOHSZWPISZVNZVNZCWQXDXFXHYKWQXFSWMWOHWPIGVPVQYLXCXGAWOHWMYIYJVRYL
      XBBWPIWMYIYJVSWFVTVEWMWKHWNUBWJWKWLWAHDYGWBWCWMWLIWNUBWJWKWLWGIDYGWBWCXIU
      MUBWMCXFXHHIGWDWHWEWI $.

    $( The left projection function (for a direct product of group subspaces).
       (Contributed by Mario Carneiro, 15-Oct-2015.)  (Revised by Mario
       Carneiro, 21-Apr-2016.) $)
    pj1val $p |- ( ( ( G e. V /\ T C_ B /\ U C_ B ) /\ X e. ( T .(+) U ) ) ->
      ( ( T P U ) ` X ) = ( iota_ x e. T E. y e. U X = ( x .+ y ) ) ) $=
      ( vz wcel co cv wceq wss w3a wa wrex crio cvv pj1fval adantr simpr eqeq1d
      cmpt rexbidv riotabidv riotaex a1i fvmptd ) IJQGCUAHCUAUBZKGHFRZQZUCZPKPS
      ZASBSERZTZBHUDZAGUEZKVBTZBHUDZAGUEZURGHDRZUFUQVIPURVEUKTUSABPCDEFGHIJLMNO
      UGUHUTVAKTZUCZVDVGAGVKVCVFBHVKVAKVBUTVJUIUJULUMUQUSUIVHUFQUTVGAGUNUOUP $.
  $}

  ${
    $d u v x y z .+ $.  $d u v x y z .(+) $.  $d v x y P $.  $d u v x y z ph $.
    $d u v x y z G $.  $d u v x y z T $.  $d u v x y z U $.  $d u v x y X $.
    pj1eu.a $e |- .+ = ( +g ` G ) $.
    pj1eu.s $e |- .(+) = ( LSSum ` G ) $.
    pj1eu.o $e |- .0. = ( 0g ` G ) $.
    pj1eu.z $e |- Z = ( Cntz ` G ) $.
    pj1eu.2 $e |- ( ph -> T e. ( SubGrp ` G ) ) $.
    pj1eu.3 $e |- ( ph -> U e. ( SubGrp ` G ) ) $.
    pj1eu.4 $e |- ( ph -> ( T i^i U ) = { .0. } ) $.
    pj1eu.5 $e |- ( ph -> T C_ ( Z ` U ) ) $.
    $( Uniqueness of a left projection.  (Contributed by Mario Carneiro,
       15-Oct-2015.) $)
    pj1eu $p |- ( ( ph /\ X e. ( T .(+) U ) ) ->
      E! x e. T E. y e. U X = ( x .+ y ) ) $=
      ( wa vu vv co wcel cv wceq wrex wi wral wreu csubg cfv wb lsmelval biimpa
      syl2anc reeanv eqtr2 ad2antrr cin csn wss simplrl simprl simprr subgdisjb
      simplrr simpl syl6bi syl5 rexlimdvva ralrimivva adantr oveq1 eqeq2d oveq2
      syl5bir rexbidv cbvrexv syl6bb reu4 sylanbrc ) AIFGEUCUDZTIBUEZCUEZDUCZUF
      ZCGUGZBFUGZWHIUAUEZUBUEZDUCZUFZUBGUGZTZWDWJUFZUHZUAFUIBFUIZWHBFUJAWCWIAFH
      UKULZUDZGWSUDZWCWIUMPQBCDEFGHILMUNUPUOAWRWCAWQBUAFFWOWGWMTZUBGUGCGUGAWDFU
      DZWJFUDZTZTZWPWGWMCUBGGUQXFXBWPCUBGGXBWFWLUFZXFWEGUDZWKGUDZTZTZWPIWFWLURX
      KXGWPWEWKUFZTWPXKWDWEWJWKDFGHJKLNOAWTXEXJPUSAXAXEXJQUSAFGUTJVAUFXEXJRUSAF
      GKULVBXEXJSUSAXCXDXJVCAXCXDXJVGXFXHXIVDXFXHXIVEVFWPXLVHVIVJVKVQVLVMWHWNBU
      AFWPWHIWJWEDUCZUFZCGUGWNWPWGXNCGWPWFXMIWDWJWEDVNVOVRXNWMCUBGXLXMWLIWEWKWJ
      DVPVOVSVTWAWB $.

    pj1f.p $e |- P = ( proj1 ` G ) $.
    $( The left projection function maps a direct subspace sum onto the left
       factor.  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    pj1f $p |- ( ph -> ( T P U ) : ( T .(+) U ) --> T ) $=
      ( vx wcel vz vy co wf cv wceq wrex crio cmpt wreu pj1eu riotacl syl fmptd
      eqid cgrp cbs cfv wss csubg subgrcl subgss pj1fval syl3anc feq1d mpbird
      wa ) AEFDUCZEEFBUCZUDVHEUAVHUAUEZSUEUBUECUCUFUBFUGZSEUHZUIZUDAUAVHVLEVMAV
      JVHTVGVKSEUJVLETASUBCDEFGVJHIJKLMNOPQUKVKSEULUMVMUOUNAVHEVIVMAGUPTZEGUQUR
      ZUSZFVOUSZVIVMUFAEGUTURZTZVNNEGVAUMAVSVPNVOEGVOUOZVBUMAFVRTVQOVOFGVTVBUMS
      UBUAVOBCDEFGUPVTJKRVCVDVEVF $.

    $( The right projection function maps a direct subspace sum onto the right
       factor.  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    pj2f $p |- ( ph -> ( U P T ) : ( T .(+) U ) --> U ) $=
      ( co wf cin csn incom syl5eq cntzrecd pj1f csubg cfv wcel lsmcom2 syl3anc
      wss wceq feq2d mpbird ) AEFDSZFFEBSZTFEDSZFUQTABCDFEGHIJKLMONAFEUAEFUAHUB
      FEUCPUDAEFGIMNOQUERUFAUPURFUQAEGUGUHZUIFUSUIEFIUHULUPURUMNOQDEFGIKMUJUKUN
      UO $.

    $( Any element of a direct subspace sum can be decomposed into projections
       onto the left and right factors.  (Contributed by Mario Carneiro,
       15-Oct-2015.)  (Revised by Mario Carneiro, 21-Apr-2016.) $)
    pj1id $p |- ( ( ph /\ X e. ( T .(+) U ) ) ->
      X = ( ( ( T P U ) ` X ) .+ ( ( U P T ) ` X ) ) ) $=
      ( wceq vy vx vu vv co wcel wa cfv wrex crab crio cgrp cbs wss w3a subgrcl
      csubg syl eqid subgss 3jca pj1val sylan wreu pj1eu riotacl2 eqeltrd oveq1
      cv eqeq2d rexbidv simprbi simprr ad2antrr simplr lsmcom2 syl3anc syl31anc
      elrab eleqtrd wf pj1f ffvelrnd sseldd simprl cntzi syl2anc eqtrd oveq2 wb
      rspcev simpll cin csn incom syl5eq cntzrecd riota2 mpbid oveq2d rexlimddv
      eqtr4d ) AHEFDUEZUFZUGZHHEFBUEZUHZUAVIZCUEZTZHXGHFEBUEUHZCUEZTUAFXEXGHUBV
      IZXHCUEZTZUAFUIZUBEUJZUFZXJUAFUIZXEXGXPUBEUKZXQAGULUFZEGUMUHZUNZFYBUNZUOX
      DXGXTTAYAYCYDAEGUQUHZUFZYAOEGUPURZAYFYCOYBEGYBUSZUTURZAFYEUFZYDPYBFGYHUTU
      RZVAUBUAYBBCDEFGULHYHKLSVBVCXEXPUBEVDXTXQUFAUBUACDEFGHIJKLMNOPQRVEXPUBEVF
      URVGXRXGEUFZXSXPXSUBXGEXMXGTZXOXJUAFYMXNXIHXMXGXHCVHVJVKVSVLURXEXHFUFZXJU
      GZUGZHXIXLXEYNXJVMZYPXKXHXGCYPXKHUCVIZUDVIZCUEZTZUDEUIZUCFUKZXHYPYAYDYCHF
      EDUEZUFZXKUUCTAYAXDYOYGVNAYDXDYOYKVNAYCXDYOYIVNYPHXCUUDAXDYOVOZAXCUUDTZXD
      YOAYFYJEFJUHZUNZUUGOPRDEFGJLNVPVQVNVTZUCUDYBBCDFEGULHYHKLSVBVRYPHXHYSCUEZ
      TZUDEUIZUUCXHTZYPYLHXHXGCUEZTZUUMYPXCEHXFAXCEXFWAXDYOABCDEFGIJKLMNOPQRSWB
      VNUUFWCZYPHXIUUOYQYPXGUUHUFYNXIUUOTYPEUUHXGAUUIXDYORVNUUQWDXEYNXJWEZCFGXG
      XHJKNWFWGWHUULUUPUDXGEYSXGTUUKUUOHYSXGXHCWIVJWKWGYPYNUUBUCFVDZUUMUUNWJUUR
      YPAUUEUUSAXDYOWLUUJAUCUDCDFEGHIJKLMNPOAFEWMEFWMIWNFEWOQWPAEFGJNOPRWQVEWGU
      UBUUMUCFXHYRXHTZUUAUULUDEUUTYTUUKHYRXHYSCVHVJVKWRWGWSWHWTXBXA $.

    ${
      pj1eq.5 $e |- ( ph -> X e. ( T .(+) U ) ) $.
      pj1eq.6 $e |- ( ph -> B e. T ) $.
      pj1eq.7 $e |- ( ph -> C e. U ) $.
      $( Any element of a direct subspace sum can be decomposed uniquely into
         projections onto the left and right factors.  (Contributed by Mario
         Carneiro, 16-Oct-2015.) $)
      pj1eq $p |- ( ph -> ( X = ( B .+ C ) <->
        ( ( ( T P U ) ` X ) = B /\ ( ( U P T ) ` X ) = C ) ) ) $=
        ( co wceq wa wcel pj1id mpdan eqeq1d pj1f ffvelrnd pj2f subgdisjb bitrd
        cfv ) AJBCEUEZUFJGHDUEZUQZJHGDUEZUQZEUEZURUFUTBUFVBCUFUGAJVCURAJGHFUEZU
        HJVCUFUBADEFGHIJKLMNOPQRSTUAUIUJUKAUTVBBCEGHIKLMOPQRSTAVDGJUSADEFGHIKLM
        NOPQRSTUAULUBUMUCAVDHJVAADEFGHIKLMNOPQRSTUAUNUBUMUDUOUP $.
    $}

    $( The left projection function is the identity on the left subspace.
       (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    pj1lid $p |- ( ( ph /\ X e. T ) -> ( ( T P U ) ` X ) = X ) $=
      ( wcel wa co cfv wceq cgrp cbs csubg adantr subgrcl syl wss subgss sselda
      eqid grprid syl2anc eqcomd cin lsmub1 simpr subg0cl pj1eq mpbid simpld
      csn ) AHETZUAZHEFBUBUCHUDZHFEBUBUCIUDZVGHHICUBZUDVHVIUAVGVJHVGGUETZHGUFUC
      ZTVJHUDVGEGUGUCZTZVKAVNVFOUHZEGUIUJAEVLHAVNEVLUKOVLEGVLUNZULUJUMVLCGHIVPK
      MUOUPUQVGHIBCDEFGHIJKLMNVOAFVMTZVFPUHZAEFURIVEUDVFQUHAEFJUCUKVFRUHSAEEFDU
      BZHAVNVQEVSUKOPDEFGLUSUPUMAVFUTVGVQIFTVRFGIMVAUJVBVCVD $.

    $( The left projection function is the zero operator on the right subspace.
       (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    pj1rid $p |- ( ( ph /\ X e. U ) -> ( ( T P U ) ` X ) = .0. ) $=
      ( wcel wa co cfv wceq cgrp cbs csubg adantr subgrcl syl wss subgss sselda
      eqid grplid syl2anc eqcomd cin lsmub2 subg0cl simpr pj1eq mpbid simpld
      csn ) AHFTZUAZHEFBUBUCIUDZHFEBUBUCHUDZVGHIHCUBZUDVHVIUAVGVJHVGGUETZHGUFUC
      ZTVJHUDVGEGUGUCZTZVKAVNVFOUHZEGUIUJAFVLHAFVMTZFVLUKPVLFGVLUNZULUJUMVLCGHI
      VQKMUOUPUQVGIHBCDEFGHIJKLMNVOAVPVFPUHAEFURIVEUDVFQUHAEFJUCUKVFRUHSAFEFDUB
      ZHAVNVPFVRUKOPDEFGLUSUPUMVGVNIETVOEGIMUTUJAVFVAVBVCVD $.

    $( The left projection function is a group homomorphism.  (Contributed by
       Mario Carneiro, 21-Apr-2016.) $)
    pj1ghm $p |- ( ph -> ( T P U ) e. ( ( G |`s ( T .(+) U ) ) GrpHom G ) ) $=
      ( co wcel vx vy cress cbs cfv eqid cplusg wceq ovex ressplusg ax-mp csubg
      cvv cgrp wss lsmsubg syl3anc subggrp syl subgrcl pj1f subgss fssd subgbas
      wf feq2d mpbid cv wa eleq2d anbi12d biimpar pj1id adantrr adantrl oveq12d
      cmnd adantr grpmnd simpl ffvelrn syl2an sseldd simpr cntzi syl2anc eqtr4d
      3syl pj2f mnd4g cin csn subgcl 3expb sylan pj1eq simpld syldan isghmd ) A
      UAUBCCGEFDSZUCSZGEFBSZXAUDUEZGUDUEZXCUFXDUFZWTUMTCXAUGUEUHEFDUIWTCGXAUMXA
      UFZJUJUKJAWTGULUEZTZXAUNTAEXGTZFXGTZEFIUEZUOZXHNOQDEFGIKMUPUQZWTGXAXFURUS
      AXIGUNTZNEGUTZUSAWTXDXBVEXCXDXBVEAWTEXDXBABCDEFGHIJKLMNOPQRVAZAXIEXDUOZNX
      DEGXEVBZUSVCAWTXCXDXBAXHWTXCUHXMWTGXAXFVDUSZVFVGAUAVHZXCTZUBVHZXCTZVIZXTW
      TTZYBWTTZVIZXTYBCSZXBUEXTXBUEZYBXBUEZCSZUHZAYGYDAYEYAYFYCAWTXCXTXSVJAWTXC
      YBXSVJVKVLAYGVIZYLYHFEBSZUEXTYNUEZYBYNUEZCSZUHZYMYHYKYQCSZUHYLYRVIYMYHYIY
      OCSZYJYPCSZCSYSYMXTYTYBUUACAYEXTYTUHYFABCDEFGXTHIJKLMNOPQRVMVNAYFYBUUAUHY
      EABCDEFGYBHIJKLMNOPQRVMVOVPYMXDCGYPYIYJYOXEJYMXIXNGVQTAXIYGNVRZXOGVSWHYME
      XDYIYMXIXQUUBXRUSZAWTEXBVEZYEYIETZYGXPYEYFVTZWTEXTXBWAWBZWCYMEXDYJUUCAUUD
      YFYJETZYGXPYEYFWDZWTEYBXBWAWBZWCYMFXDYOYMXJFXDUOAXJYGOVRZXDFGXEVBUSZAWTFY
      NVEZYEYOFTZYGABCDEFGHIJKLMNOPQRWIZUUFWTFXTYNWAWBZWCYMFXDYPUULAUUMYFYPFTZY
      GUUOUUIWTFYBYNWAWBZWCYMYJXKTUUNYJYOCSYOYJCSUHYMEXKYJAXLYGQVRZUUJWCUUPCFGY
      JYOIJMWEWFWJWGYMYKYQBCDEFGYHHIJKLMUUBUUKAEFWKHWLUHYGPVRUUSRAXHYGYHWTTZXMX
      HYEYFUUTCWTGXTYBJWMWNWOYMXIUUEUUHYKETUUBUUGUUJCEGYIYJJWMUQYMXJUUNUUQYQFTU
      UKUUPUURCFGYOYPJWMUQWPVGWQWRWS $.

    $( The left projection function is a group homomorphism.  (Contributed by
       Mario Carneiro, 21-Apr-2016.) $)
    pj1ghm2 $p |- ( ph ->
      ( T P U ) e. ( ( G |`s ( T .(+) U ) ) GrpHom ( G |`s T ) ) ) $=
      ( co wcel cress cghm pj1ghm csubg cfv crn wss wb wf pj1f frn syl resghm2b
      eqid syl2anc mpbid ) AEFBSZGEFDSZUASZGUBSTZUQUSGEUASZUBSTZABCDEFGHIJKLMNO
      PQRUCAEGUDUETUQUFEUGZUTVBUHNAUREUQUIVCABCDEFGHIJKLMNOPQRUJUREUQUKULUSGVAU
      QEVAUNUMUOUP $.
  $}

  ${
    $d x y .(+) $.  $d x y G $.  $d x y ph $.  $d x y T $.  $d x y U $.
    lsmhash.p $e |- .(+) = ( LSSum ` G ) $.
    lsmhash.o $e |- .0. = ( 0g ` G ) $.
    lsmhash.z $e |- Z = ( Cntz ` G ) $.
    lsmhash.t $e |- ( ph -> T e. ( SubGrp ` G ) ) $.
    lsmhash.u $e |- ( ph -> U e. ( SubGrp ` G ) ) $.
    lsmhash.i $e |- ( ph -> ( T i^i U ) = { .0. } ) $.
    lsmhash.s $e |- ( ph -> T C_ ( Z ` U ) ) $.
    lsmhash.1 $e |- ( ph -> T e. Fin ) $.
    lsmhash.2 $e |- ( ph -> U e. Fin ) $.
    $( The order of the direct product of groups.  (Contributed by Mario
       Carneiro, 21-Apr-2016.) $)
    lsmhash $p |- ( ph ->
      ( # ` ( T .(+) U ) ) = ( ( # ` T ) x. ( # ` U ) ) ) $=
      ( cfv wceq wcel wa vx vy chash cxp cmul cen wbr cpj1 cop c1st c2nd cplusg
      co cv ovexd csubg xpexg syl2anc eqid pj1f ffvelrnda pj2f opelxpi ex xp1st
      cvv jca xp2nd lsmelvali syl2an wb adantr cin csn wss ad2antll pj1eq eqcom
      simprl anbi12i syl6bb eqop bitr4d en3d hasheni syl cfn hashxp eqtrd ) ACD
      BUMZUCQZCDUDZUCQZCUCQDUCQUEUMZAWJWLUFUGWKWMRAUAUBWJWLUAUNZCDEUHQZUMZQZWOD
      CWPUMZQZUIZUBUNZUJQZXBUKQZEULQZUMZACDBUOACEUPQZSZDXGSZWLVFSKLCDXGXGUQURAW
      OWJSZXAWLSZAXJTWRCSWTDSXKAWJCWOWQAWPXEBCDEFGXEUSZHIJKLMNWPUSZUTVAAWJDWOWS
      AWPXEBCDEFGXLHIJKLMNXMVBVAWRWTCDVCURVDAXBWLSZXFWJSZAXHXITXCCSZXDDSZTXOXNA
      XHXIKLVGXNXPXQXBCDVEZXBCDVHZVGXEBCDEXCXDXLHVIVJVDAXJXNTZWOXFRZXBXARZVKAXT
      TZYAXCWRRZXDWTRZTZYBYCYAWRXCRZWTXDRZTYFYCXCXDWPXEBCDEWOFGXLHIJAXHXTKVLAXI
      XTLVLACDVMFVNRXTMVLACDGQVOXTNVLXMAXJXNVSXNXPAXJXRVPXNXQAXJXSVPVQYGYDYHYEW
      RXCVRWTXDVRVTWAXNYBYFVKAXJXBWRWTCDWBVPWCVDWDWJWLWEWFACWGSDWGSWMWNROPCDWHU
      RWI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Free groups
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ~FG $.
  $c freeGrp $.
  $c varFGrp $.

  $( Extend class notation with the free group equivalence relation. $)
  cefg $a class ~FG $.

  $( Extend class notation with the free group construction. $)
  cfrgp $a class freeGrp $.

  $( Extend class notation with free group injection. $)
  cvrgp $a class varFGrp $.

  ${
    $d i j n r x y z $.
    $( Define the free group equivalence relation, which is the smallest
       equivalence relation ` ~~ ` such that for any words ` A , B ` and formal
       symbol ` x ` with inverse ` invg x ` , ` A B ~~ A x ( invg x ) B ` .
       (Contributed by Mario Carneiro, 1-Oct-2015.) $)
    df-efg $a |- ~FG = ( i e. _V |-> |^| { r | ( r Er Word ( i X. 2o ) /\
      A. x e. Word ( i X. 2o ) A. n e. ( 0 ... ( # ` x ) )
        A. y e. i A. z e. 2o x r ( x splice <. n , n ,
          <" <. y , z >. <. y , ( 1o \ z ) >. "> >. ) ) } ) $.

    $( Define the free group on a set ` I ` of generators, defined as the
       quotient of the free monoid on ` I X. 2o ` (representing the generator
       elements and their formal inverses) by the free group equivalence
       relation ~ df-efg .  (Contributed by Mario Carneiro, 1-Oct-2015.) $)
    df-frgp $a |- freeGrp = ( i e. _V |->
      ( ( freeMnd ` ( i X. 2o ) ) /s ( ~FG ` i ) ) ) $.

    $( Define the canonical injection from the generating set ` I ` into the
       base set of the free group.  (Contributed by Mario Carneiro,
       2-Oct-2015.) $)
    df-vrgp $a |- varFGrp = ( i e. _V |-> ( j e. i |->
      [ <" <. j , (/) >. "> ] ( ~FG ` i ) ) ) $.
  $}

  ${
    $d a b A $.  $d a b B $.  $d a b y z I $.  $d a b M $.
    efgmval.m $e |- M = ( y e. I , z e. 2o |-> <. y , ( 1o \ z ) >. ) $.
    $( Value of the formal inverse operation for the generating set of a free
       group.  (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    efgmval $p |- ( ( A e. I /\ B e. 2o )
        -> ( A M B ) = <. A , ( 1o \ B ) >. ) $=
      ( va vb c2o cv c1o cdif cop opeq1 wceq difeq2 opeq2d cmpt2 cbvmpt2v eqtri
      opex ovmpt2 ) HICDEJHKZLIKZMZNZCLDMZNFCUFNUDCUFOUEDPUFUHCUEDLQRFABEJAKZLB
      KZMZNZSHIEJUGSGABHIEJULUGUDUKNUIUDUKOUJUEPUKUFUDUJUELQRTUACUHUBUC $.

    $( The formal inverse operation is an endofunction on the generating set.
       (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    efgmf $p |- M : ( I X. 2o ) --> ( I X. 2o ) $=
      ( cv c1o cdif cop c2o cxp wcel wral wf 2oconcl opelxpi sylan2 rgen2 fmpt2
      mpbi ) AFZGBFZHZIZCJKZLZBJMACMUEUEDNUFABCJUBJLUACLUCJLUFUBOUAUCCJPQRABCJU
      DUEDEST $.

    $( The inversion function on the generators is an involution.  (Contributed
       by Mario Carneiro, 1-Oct-2015.) $)
    efgmnvl $p |- ( A e. ( I X. 2o ) -> ( M ` ( M ` A ) ) = A ) $=
      ( va vb c2o wcel cv cop wceq wrex cfv co c1o cdif efgmval fveq2d elxp2 wa
      cxp df-ov syl6eqr 2oconcl sylan2 wss csuc wtr wi 1on onordi ordtr trsucss
      word mp2b df-2o eleq2s adantl dfss4 sylib opeq2d fveq2 eqeq12d syl5ibrcom
      3eqtrd id rexlimivv sylbi ) CDIUCJCGKZHKZLZMZHINGDNCEOZEOZCMZGHCDIUAVNVQG
      HDIVKDJZVLIJZUBZVQVNVKVLEPZEOZVMMVTWBVKQVLRZEPZVKQWCRZLZVMVTWBVKWCLZEOWDV
      TWAWGEABVKVLDEFSTVKWCEUDUEVSVRWCIJWDWFMVLUFABVKWCDEFSUGVTWEVLVKVTVLQUHZWE
      VLMVSWHVRWHVLQUIZIQUPQUJVLWIJWHUKQULUMQUNQVLUOUQURUSUTVLQVAVBVCVGVNVPWBCV
      MVNVOWAEVNVOVMEOWACVMEVDVKVLEUDUETVNVHVEVFVIVJ $.
  $}

  ${
    $d a b c d f g h i j r s u A $.  $d a b r y z J $.  $d a b f g h r s u L $.
    $d a b f i F $.  $d a b c r K $.  $d c n t v w y z P $.  $d c i j r s ph $.
    $d a b c f g i j m n r s t u v w x M $.  $d a b i r N $.  $d n v w y z U $.
    $d a b c f g i j k m o r s t u x T $.  $d n v w y z V $.  $d a b i j u X $.
    $d c n t v w y z Q $.  $d a b c d f g h i j k m n o r s t u v w x y z W $.
    $d a b c d f g i j m r s t u x y z .~ $.  $d a b c d f g h i j r s u B $.
    $d a b i k m n t v w x y z C $.  $d a b c d i j o r s u S $.  $d i j Y $.
    $d a b c f g i j m n r s t u v w x y z I $.
    $d a b c d f i j m r s t u D $.
    efgval.w $e |- W = ( _I ` Word ( I X. 2o ) ) $.
    $( Lemma for ~ efgval .  (Contributed by Mario Carneiro, 1-Oct-2015.)
       (Revised by Mario Carneiro, 27-Feb-2016.) $)
    efgrcl $p |- ( A e. W -> ( I e. _V /\ W = Word ( I X. 2o ) ) ) $=
      ( wcel cvv c2o cxp cword wceq cdm wne 2on0 dmxp ax-mp cid cfv elfvex syl
      c0 eleq2s wrdexb sylibr dmexg syl5eqelr fvi syl5eq jca ) ACEZBFECBGHZIZJU
      IBUJKZFGTLULBJMBGNOUIUJFEZULFEUIUKFEZUMUNAUKPQZCAUKPRDUAZUJUBUCUJFUDSUEUI
      CUOUKDUIUNUOUKJUPUKFUFSUGUH $.

    $( Lemma for ~ efgval .  (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    efglem $p |- E. r ( r Er W /\ A. x e. W
    A. n e. ( 0 ... ( # ` x ) ) A. y e. I A. z e. 2o x r ( x splice <. n , n ,
        <" <. y , z >. <. y , ( 1o \ z ) >. "> >. ) ) $=
      ( cxp wer cv cop co wbr c2o wral cfv wa wcel cid c1o cdif cs2 csplice cc0
      chash cfz xpider simpll cword fviss eqsstri sseldi opelxpi adantl 2oconcl
      cotp sylan2 s2cld splcl syl2anc wceq efgrcl simprd ad2antrr eleqtrrd brxp
      wex cvv sylanbrc ralrimivva rgen2 fvex eqeltri xpex breq 2ralbidv anbi12d
      ereq1 spcev mp2an ) FFFIZJZAKZWDDKZWEBKZCKZLZWFUAWGUBZLZUCZUQUDMZWBNZCOPB
      EPZDUEWDUFQUGMZPAFPZFGKZJZWDWLWQNZCOPBEPZDWOPAFPZRZGVHFUHWNADFWOWDFSZWEWO
      SZRZWMBCEOXEWFESZWGOSZRZRZXCWLFSWMXCXDXHUIZXIWLEOIZUJZFXIWDXLSWKXLSWLXLSX
      IFXLWDFXLTQZXLHXLUKULXJUMXIWHWJXKXHWHXKSXEWFWGEOUNUOXHWJXKSZXEXGXFWIOSXNW
      GUPWFWIEOUNURUOUSXKWKWDWEWEUTVAXCFXLVBZXDXHXCEVISXOWDEFHVCVDVEVFWDWLFFVGV
      JVKVLXBWCWPRGWBFFFXMVIHXLTVMVNZXPVOWQWBVBZWRWCXAWPFWQWBVSXQWTWNADFWOXQWSW
      MBCEOWDWLWQWBVPVQVQVRVTWA $.

    efgval.r $e |- .~ = ( ~FG ` I ) $.
    $( Value of the free group construction.  (Contributed by Mario Carneiro,
       1-Oct-2015.) $)
    efgval $p |- .~ = |^| { r | ( r Er W /\ A. x e. W
     A. n e. ( 0 ... ( # ` x ) ) A. y e. I A. z e. 2o x r ( x splice <. n , n ,
       <" <. y , z >. <. y , ( 1o \ z ) >. "> >. ) ) } $=
      ( vi vw cv c2o wral cvv wcel wceq c0 wss cefg cfv wer cop c1o cs2 csplice
      cdif cotp co wbr cc0 chash cfz wa cab cint cxp cword wb cid vex 2on elexi
      con0 xpex wrdexg fvi xpeq1 wrdeq syl fveq2d syl5eqr syl6eqr ereq2 ralbidv
      mp2b raleq raleqbidv anbi12d abbidv inteqd df-efg wex efglem intexab mpbi
      fvmpt wn fvprc cuni wne abn0 mpbir intssuni ax-mp wi erssxp efgrcl simpld
      wal con3i eq0rdv xpeq2d xp0 syl6eq ss0b sylibr sylan9ssr ex adantrd sseq1
      alrimiv ralab2 unissb syl5ss ss0 eqtr4d pm2.61i eqtri ) DFUAUBZGHMZUCZAMZ
      YDEMZYEBMZCMZUDYFUEYGUHUDUFUIUGUJYBUKCNOZBFOZEULYDUMUBUNUJZOZAGOZUOZHUPZU
      QZJFPQZYAYORKFKMZNURZUSZYBUCZYHBYQOZEYJOZAYSOZUOZHUPZUQYOPUAYQFRZUUEYNUUF
      UUDYMHUUFYTYCUUCYLUUFYSGRYTYCUTUUFYSFNURZUSZVAUBZGUUFYSYSVAUBZUUIYRPQYSPQ
      UUJYSRYQNKVBNVEVCVDVFYRPVGYSPVHVQUUFYSUUHVAUUFYRUUGRYSUUHRYQFNVIYRUUGVJVK
      VLVMIVNZYSGYBVOVKUUFUUBYKAYSGUUKUUFUUAYIEYJYHBYQFVRVPVSVTWAWBABCKEHWCYMHW
      DZYOPQABCEFGHIWEZYMHWFWGWHYPWIZYASYOFUAWJUUNYOSTYOSRUUNYOYNWKZSYNSWLZYOUU
      OTUUPUULUUMYMHWMWNYNWOWPUUNLMZSTZLYNOZUUOSTUUNYMYBSTZWQZHXAUUSUUNUVAHUUNY
      CUUTYLUUNYCUUTYCUUNYBGGURZSGYBWRUUNUVBSRUVBSTUUNUVBGSURSUUNGSGUUNAGYDGQZY
      PUVCYPGUUHRYDFGIWSWTXBXCXDGXEXFUVBXGXHXIXJXKXMYMUURUUTLHUUQYBSXLXNXHLYNSX
      OXHXPYOXQVKXRXSXT $.

    $( Value of the free group construction.  (Contributed by Mario Carneiro,
       27-Sep-2015.)  (Revised by Mario Carneiro, 27-Feb-2016.) $)
    efger $p |- .~ Er W $=
      ( vw vr vx vn vy vz wer cv cop c1o cdif co wral mpbir ereq1 csplice chash
      cs2 cotp wbr c2o cc0 cfv cfz wa cab ciin c0 wne wex efglem abn0 wi ralab2
      simpl mpgbir iiner mp2an wceq wb cint efgval intiin eqtri ax-mp ) CALZCFC
      GMZLZHMZVNIMZVOJMZKMZNVPOVQPNUCUDUAQVLUEKUFRJBRIUGVNUBUHUIQRHCRZUJZGUKZFM
      ZULZLZVTUMUNZCWALZFVTRZWCWDVSGUOHJKIBCGDUPVSGUQSWFVSVMURGVSWEVMFGCWAVLTUS
      VMVRUTVAFVTCWAVBVCAWBVDVKWCVEAVTVFWBHJKAIBCGDEVGFVTVHVICAWBTVJS $.

    $( Value of the free group construction.  (Contributed by Mario Carneiro,
       27-Sep-2015.)  (Revised by Mario Carneiro, 27-Feb-2016.) $)
    efgi $p |- ( ( ( A e. W /\ N e. ( 0 ... ( # ` A ) ) ) /\
        ( J e. I /\ K e. 2o ) ) -> A .~ ( A splice
         <. N , N , <" <. J , K >. <. J , ( 1o \ K ) >. "> >. ) ) $=
      ( vr vi va vb wcel co c2o cop csplice wbr wral cc0 chash cfv cfz c1o cdif
      vu wa cs2 cotp cv wer cab cint wi wal wceq fveq2 oveq2d id oveq1 2ralbidv
      breq12d raleqbidv rspcv oteq1 oteq2 eqtrd breq2d sylan9 opeq1 s2eqd opeq2
      oteq3d difeq2 opeq2d syl6bb rspc2v adantld alrimiv opex elintab syl6eleqr
      df-br sylibr efgval ) AGNZFUAAUBUCZUDOZNZUHZDCNEPNUHZUHZAAFFDEQZDUEEUFZQZ
      UIZUJZROZQZBNAWSBSWMWTGJUKZULZUGUKZXCKUKZXDLUKZMUKZQZXEUEXFUFZQZUIZUJZROZ
      XASZMPTLCTZKUAXCUBUCZUDOZTZUGGTZUHZJUMUNZBWMXSWTXANZUOZJUPWTXTNWMYBJWMXRY
      AXBWKXRAAFFXJUJZROZXASZMPTLCTZWLYAWGXRAAXKROZXASZMPTLCTZKWITZWJYFXQYJUGAG
      XCAUQZXNYIKXPWIYKXOWHUAUDXCAUBURUSYKXMYHLMCPYKXCAXLYGXAYKUTXCAXKRVAVCVBVD
      VEYIYFKFWIXDFUQZYHYELMCPYLYGYDAXAYLXKYCARYLXKFXDXJUJYCXDFXDXJVFXDFFXJVGVH
      USVIVBVEVJYEYAAAFFDXFQZDXHQZUIZUJZROZXASZLMDECPXEDUQZYDYQAXAYSYCYPARYSXJY
      OFFYSXGXIYMYNXEDXFVKXEDXHVKVLVNUSVIXFEUQZYRAWSXASYAYTYQWSAXAYTYPWRARYTYOW
      QFFYTYMYNWNWPXFEDVMYTXHWODXFEUEVOVPVLVNUSVIAWSXAWDVQVRVJVSVTXSJWTAWSWAWBW
      EUGLMBKCGJHIWFWCAWSBWDWE $.

    $( Value of the free group construction.  (Contributed by Mario Carneiro,
       27-Sep-2015.)  (Revised by Mario Carneiro, 27-Feb-2016.) $)
    efgi0 $p |- ( ( A e. W /\ N e. ( 0 ... ( # ` A ) ) /\ J e. I ) -> A .~
    ( A splice <. N , N , <" <. J , (/) >. <. J , 1o >. "> >. ) ) $=
      ( wcel cc0 co c0 cop c1o cs2 cotp csplice c2o wtru wceq chash cfv cfz w3a
      cdif wbr wa cpr 0ex prid1 df2o3 eleqtrri efgi mpanr2 3impa tru eqidd dif0
      opeq2i a1i s2eqd oteq3 mp2b oveq2i syl6breq ) AFIZEJAUAUBUCKIZDCIZUDAAEED
      LMZDNLUEZMZOZPZQKZAEEVIDNMZOZPZQKBVFVGVHAVNBUFZVFVGUGVHLRIVRLLNUHRLNUIUJU
      KULABCDLEFGHUMUNUOVMVQAQSVLVPTVMVQTUPSVIVKVIVOSVIUQVKVOTSVJNDNURUSUTVAVLV
      PEEVBVCVDVE $.

    $( Value of the free group construction.  (Contributed by Mario Carneiro,
       27-Sep-2015.)  (Revised by Mario Carneiro, 27-Feb-2016.) $)
    efgi1 $p |- ( ( A e. W /\ N e. ( 0 ... ( # ` A ) ) /\ J e. I ) -> A .~
    ( A splice <. N , N , <" <. J , 1o >. <. J , (/) >. "> >. ) ) $=
      ( wcel cc0 co c1o cop cs2 cotp csplice c0 c2o wtru wceq chash cfv cfz w3a
      cdif wbr wa cpr con0 1on elexi prid2 df2o3 eleqtrri efgi mpanr2 3impa tru
      eqidd difid opeq2i a1i s2eqd oteq3 mp2b oveq2i syl6breq ) AFIZEJAUAUBUCKI
      ZDCIZUDAAEEDLMZDLLUEZMZNZOZPKZAEEVKDQMZNZOZPKBVHVIVJAVPBUFZVHVIUGVJLRIVTL
      QLUHRQLLUIUJUKULUMUNABCDLEFGHUOUPUQVOVSAPSVNVRTVOVSTURSVKVMVKVQSVKUSVMVQT
      SVLQDLUTVAVBVCVNVREEVDVEVFVG $.

    efgval2.m $e |- M = ( y e. I , z e. 2o |-> <. y , ( 1o \ z ) >. ) $.
    efgval2.t $e |- T = ( v e. W |->
        ( n e. ( 0 ... ( # ` v ) ) , w e. ( I X. 2o ) |-> ( v splice
      <. n , n , <" w ( M ` w ) "> >. ) ) ) $.
    $( Value of the free group construction.  (Contributed by Mario Carneiro,
       27-Sep-2015.) $)
    efgtf $p |- ( X e. W -> ( ( T ` X ) = ( a e. ( 0 ... ( # ` X ) ) ,
        b e. ( I X. 2o ) |-> ( X splice <. a , a , <" b ( M ` b ) "> >. ) ) /\
      ( T ` X ) : ( ( 0 ... ( # ` X ) ) X. ( I X. 2o ) ) --> W ) ) $=
      ( wcel csplice cvv vu cfv cc0 chash cfz co c2o cxp cv cs2 cotp cmpt2 wceq
      wf wa cword cid fviss eqsstri simpl sseldi simprr efgmf ffvelrni ad2antll
      wral s2cld splcl syl2anc efgrcl simprd adantr ralrimivva eqid fmpt2 sylib
      eleqtrrd ovex con0 simpld 2on xpexg sylancl sylancr fvex eqeltri a1i fex2
      syl3anc fveq2 oveq2d eqidd oveq1 mpt2eq123dv cmpt oteq1 oteq2 eqtrd s2eqd
      weq id oteq3d cbvmpt2v syl5eq cbvmptv eqtri fvmptg mpdan feq1d mpbird jca
      ) KJRZKFUBZLMUCKUDUBZUEUFZHUGUHZKLUIZXQMUIZXRIUBZUJZUKZSUFZULZUMZXOXPUHZJ
      XMUNZXLYCTRZYDXLYEJYCUNZYETRZJTRZYGXLYBJRZMXPVFLXOVFYHXLYKLMXOXPXLXQXORZX
      RXPRZUOZUOZYBXPUPZJYOKYPRXTYPRYBYPRYOJYPKJYPUQUBZYPNYPURUSXLYNUTVAYOXRXSX
      PXLYLYMVBYMXSXPRXLYLXPXPXRIABHIPVCVDVEVGXPXTKXQXQVHVIXLJYPUMZYNXLHTRZYRKH
      JNVJZVKVLVQVMLMXOXPYBJYCYCVNVOVPZXLXOTRXPTRZYIUCXNUEVRXLYSUGVSRUUBXLYSYRY
      TVTWAHUGTVSWBWCXOXPTTWBWDYJXLJYQTNYPUQWEWFWGYEJYCTTWHWIUAKLMUCUAUIZUDUBZU
      EUFZXPUUCYASUFZULZYCJTFUUCKUMZLMUUEXPUUFXOXPYBUUHUUDXNUCUEUUCKUDWJWKUUHXP
      WLUUCKYASWMWNFDJGCUCDUIZUDUBZUEUFZXPUUIGUIZUULCUIZUUMIUBZUJZUKZSUFZULZWOU
      AJUUGWOQDUAJUURUUGDUAWTZUURLMUUKXPUUIYASUFZULUUGGCLMUUKXPUUQUUTUUIXQXQUUO
      UKZSUFGLWTZUUPUVAUUISUVBUUPXQUULUUOUKUVAUULXQUULUUOWPUULXQXQUUOWQWRWKCMWT
      ZUVAYAUUISUVCUUOXTXQXQUVCUUMUUNXRXSUVCXAUUMXRIWJWSXBWKXCUUSLMUUKXPUUTUUEX
      PUUFUUSUUJUUDUCUEUUIUUCUDWJWKUUSXPWLUUIUUCYASWMWNXDXEXFXGXHZXLYFYHUUAXLYE
      JXMYCUVDXIXJXK $.

    $( Value of the extension function, which maps a word (a representation of
       the group element as a sequence of elements and their inverses) to its
       direct extensions, defined as the original representation with an
       element and its inverse inserted somewhere in the string.  (Contributed
       by Mario Carneiro, 29-Sep-2015.) $)
    efgtval $p |- ( ( X e. W /\ N e. ( 0 ... ( # ` X ) ) /\ A e. ( I X. 2o ) )
       -> ( N ( T ` X ) A ) = ( X splice <. N , N , <" A ( M ` A ) "> >. ) ) $=
      ( va co csplice vb wcel cc0 chash cfv cfz c2o cxp cs2 cotp wa cv cmpt2 wf
      wceq efgtf simpld oveqd oteq1 oteq2 eqtrd oveq2d id fveq2 s2eqd eqid ovex
      oteq3d ovmpt2 sylan9eq 3impb ) MLUBZKUCMUDUEUFSZUBZEIUGUHZUBZKEMGUEZSZMKK
      EEJUEZUIZUJZTSZUOVLVNVPUKVRKERUAVMVOMRULZWCUAULZWDJUEZUIZUJZTSZUMZSWBVLVQ
      WIKEVLVQWIUOVMVOUHLVQUNABCDFGHIJLMRUANOPQUPUQURRUAKEVMVOWHWBWIMKKWFUJZTSW
      CKUOZWGWJMTWKWGKWCWFUJWJWCKWCWFUSWCKKWFUTVAVBWDEUOZWJWAMTWLWFVTKKWLWDWEEV
      SWLVCWDEJVDVEVHVBWIVFMWATVGVIVJVK $.

    $( Value of the free group construction.  (Contributed by Mario Carneiro,
       27-Sep-2015.) $)
    efgval2 $p |- .~ =
      |^| { r | ( r Er W /\ A. x e. W ran ( T ` x ) C_ [ x ] r ) } $=
      ( vm va vu wral vb cv wer cop c1o cdif cs2 cotp csplice wbr c2o cc0 chash
      co cfv cfz wa cab cint crn cec wss efgval wcel cmpt2 wceq wf efgtf simpld
      cxp rneqd sseq1d dfss3 cvv wb ovex rgen2w eqid vex breq2 syl5bb ralrnmpt2
      elec ax-mp id fveq2 df-ov syl6eqr s2eqd oteq3d oveq2d ralxp eqidd efgmval
      breq2d ralbidva ralbiia bitri ralbii syl6bb anbi2i abbii inteqi eqtr4i )
      FKLUBZUCZAUBZXGQUBZXHRUBZUAUBZUDZXIUEXJUFUDZUGZUHZUIUNZXEUJZUAUKTZRITZQUL
      XGUMUOUPUNZTZAKTZUQZLURZUSXFXGGUOZUTZXGXEVAZVBZAKTZUQZLURZUSARUAFQIKLMNVC
      YJYCYIYBLYHYAXFYGXTAKXGKVDZYGQSXSIUKVJZXGXHXHSUBZYMJUOZUGZUHZUIUNZVEZUTZY
      FVBZXTYKYEYSYFYKYDYRYKYDYRVFXSYLVJKYDVGBCDEFGHIJKXGQSMNOPVHVIVKVLYTXIYFVD
      ZRYSTZXTRYSYFVMUUBXGYQXEUJZSYLTZQXSTZXTYQVNVDZSYLTQXSTUUBUUEVOUUFQSXSYLXG
      YPUIVPVQUUAUUCQSRXSYLYQYRVNYRVRUUAXGXIXEUJXIYQVFUUCXIXGXERVSAVSWCXIYQXGXE
      VTWAWBWDUUDXRQXSUUDXGXGXHXHXKXIXJJUNZUGZUHZUIUNZXEUJZUAUKTZRITXRUUCUUKSRU
      AIUKYMXKVFZYQUUJXGXEUUMYPUUIXGUIUUMYOUUHXHXHUUMYMYNXKUUGUUMWEUUMYNXKJUOUU
      GYMXKJWFXIXJJWGWHWIWJWKWOWLUULXQRIXIIVDZUUKXPUAUKUUNXJUKVDUQZUUJXOXGXEUUO
      UUIXNXGUIUUOUUHXMXHXHUUOXKUUGXKXLUUOXKWMBCXIXJIJOWNWIWJWKWOWPWQWRWSWRWRWT
      WQXAXBXCXD $.

    $( Value of the free group construction.  (Contributed by Mario Carneiro,
       1-Oct-2015.) $)
    efgi2 $p |- ( ( A e. W /\ B e. ran ( T ` A ) ) -> A .~ B ) $=
      ( vr va wcel wa cfv crn cop wbr cv wer cec wss wral cab cint wi wal fveq2
      wceq rneqd eceq1 sseq12d rspcv adantr com12 simpl elecg mpbid df-br sylib
      ssel expcom sylan9r syld adantld alrimiv elintab sylibr efgval2 syl6eleqr
      opex ) ELSZFEHUAZUBZSZTZEFUCZGSEFGUDWBWCLQUEZUFZRUEZHUAZUBZWFWDUGZUHZRLUI
      ZTZQUJUKZGWBWLWCWDSZULZQUMWCWMSWBWOQWBWKWNWEWBWKVTEWDUGZUHZWNVRWKWQULWAWJ
      WQRELWFEUOZWHVTWIWPWRWGVSWFEHUNUPWFEWDUQURUSUTWAWQFWPSZVRWNWQWAWSVTWPFVGV
      AWSVRWNWSVRTZEFWDUDZWNWTWSXAWSVRVBFEWDWPLVCVDEFWDVEVFVHVIVJVKVLWLQWCEFVQV
      MVNRABCDGHIJKLQMNOPVOVPEFGVEVN $.

    $( Value of the free group construction.  (Contributed by Mario Carneiro,
       27-Sep-2015.) $)
    efgtlen $p |- ( ( X e. W /\ A e. ran ( T ` X ) ) ->
      ( # ` A ) = ( ( # ` X ) + 2 ) ) $=
      ( wcel cfv co cc0 va vb crn chash c2 caddc wceq cs2 cotp csplice c2o wrex
      cv cxp cfz cmpt2 efgtf simpld rneqd eleq2d eqid ovex elrnmpt2 syl6bb cmin
      wf wa cword cid fviss eqsstri simpl sseldi elfzuz ad2antrl eluzfz2b sylib
      cuz simprl simprr efgmf ffvelrni syl s2cld spllen a1i cc eluzelcn oveq12d
      s2len subidd 2cn subid1i syl6eq oveq2d eqtrd eqeq1d syl5ibrcom rexlimdvva
      fveq2 sylbid imp ) LKQZELGRZUCZQZEUDRZLUDRZUEUFSZUGZXCXFELUAUMZXKUBUMZXLJ
      RZUHZUIZUJSZUGZUBIUKUNZULUATXHUOSZULZXJXCXFEUAUBXSXRXPUPZUCZQXTXCXEYBEXCX
      DYAXCXDYAUGXSXRUNKXDVFABCDFGHIJKLUAUBMNOPUQURUSUTUAUBXSXRXPEYAYAVALXOUJVB
      VCVDXCXQXJUAUBXSXRXCXKXSQZXLXRQZVGZVGZXJXQXPUDRZXIUGYFYGXHXNUDRZXKXKVESZV
      ESZUFSXIYFXRXNLXKXKYFKXRVHZLKYKVIRYKMYKVJVKXCYEVLVMYFXKTVRRQZXKTXKUOSQYCY
      LXCYDXKTXHVNVOZTXKVPVQXCYCYDVSYFXLXMXRXCYCYDVTZYFYDXMXRQYNXRXRXLJABIJOWAW
      BWCWDWEYFYJUEXHUFYFYJUETVESUEYFYHUEYITVEYHUEUGYFXLXMWJWFYFXKYFYLXKWGQYMTX
      KWHWCWKWIUEWLWMWNWOWPXQXGYGXIEXPUDWTWQWRWSXAXB $.

    $( The inverse of the reverse of a word composed with the word relates to
       the identity.  (This provides an explicit expression for the
       representation of the group inverse, given a representative of the free
       group equivalence class.)  (Contributed by Mario Carneiro,
       1-Oct-2015.) $)
    efginvrel2 $p |- ( A e. W ->
      ( A ++ ( M o. ( reverse ` A ) ) ) .~ (/) ) $=
      ( wcel cfv cconcat co c0 vc va vb vm vu c2o cxp cword creverse ccom fviss
      wbr cid eqsstri sseli cv wi wceq id fveq2 rev0 syl6eq coeq2d co02 oveq12d
      cs1 breq1d imbi2d ccatlid ax-mp wer efger a1i cvv efgrcl simprd syl5eleqr
      erref syl5eqbr wa crn simprl wf revcl ad2antrl efgmf wrdco sylancl ccatcl
      wrd0 syl2anc adantr eleqtrrd chash cs2 cotp csplice cc0 cfz cuz cn0 lencl
      nn0uz syl6eleq caddc ccatlen cz uzid syl uzaddcl eqeltrd elfzuzb sylanbrc
      nn0zd simprr efgtval syl3anc ffvelrni ccatrid eqcomd oveq1d oveq2i nn0cnd
      s2cld eqidd hash0 addid1d syl5req splval2 s1cld revccat revs1 oveq1i s1co
      ccatco 3eqtrd oveq2d ccatass df-s2 syl6eqr 3eqtr2rd wfn cmpt2 3syl fnovrn
      efgtf ffn eqeltrrd efgi2 ersym ertr mpand expcom a2d wrdind mpcom ) EIUFU
      GZUHZPEKPZEJEUIQZUJZRSZTFULZKUUREKUURUMQUURLUURUKUNUOUUSUAUPZJUVDUIQZUJZR
      SZTFULZUQUUSTTRSZTFULZUQUUSUBUPZJUVKUIQZUJZRSZTFULZUQUUSUVKUCUPZVFZRSZJUV
      RUIQZUJZRSZTFULZUQUUSUVCUQUAUBUCEUUQUVDTURZUVHUVJUUSUWCUVGUVITFUWCUVDTUVF
      TRUWCUSUWCUVFJTUJTUWCUVETJUWCUVETUIQTUVDTUIUTVAVBVCJVDVBVEVGVHUVDUVKURZUV
      HUVOUUSUWDUVGUVNTFUWDUVDUVKUVFUVMRUWDUSUWDUVEUVLJUVDUVKUIUTVCVEVGVHUVDUVR
      URZUVHUWBUUSUWEUVGUWATFUWEUVDUVRUVFUVTRUWEUSUWEUVEUVSJUVDUVRUIUTVCVEVGVHU
      VDEURZUVHUVCUUSUWFUVGUVBTFUWFUVDEUVFUVARUWFUSUWFUVEUUTJUVDEUIUTVCVEVGVHUU
      SUVITTFTUURPZUVITURUUQWJZUUQTVIVJUUSTFKKFVKZUUSFIKLMVLZVMUUSTUURKUWHUUSIV
      NPKUURURZEIKLVOVPZVQVRVSUVKUURPZUVPUUQPZVTZUUSUVOUWBUUSUWOUVOUWBUQUUSUWOV
      TZUWAUVNFULUVOUWBUWPUVNUWAFKUWIUWPUWJVMZUWPUVNKPZUWAUVNGQZWAZPUVNUWAFULUW
      PUVNUURKUWPUWMUVMUURPZUVNUURPUUSUWMUWNWBZUWPUVLUURPZUUQUUQJWCZUXAUWMUXCUU
      SUWNUUQUVKWDWEZABIJNWFZUUQUUQJUVLWGWHZUUQUVKUVMWIWKUUSUWKUWOUWLWLWMZUWPUV
      KWNQZUVPUWSSZUWAUWTUWPUXJUVNUXIUXIUVPUVPJQZWOZWPWQSZUVKUXLRSZUVMRSZUWAUWP
      UWRUXIWRUVNWNQZWSSZPZUWNUXJUXMURUXHUWPUXIWRWTQZPUXPUXIWTQZPUXRUWPUXIXAUXS
      UWMUXIXAPUUSUWNUUQUVKXBWEZXCXDUWPUXPUXIUVMWNQZXESZUXTUWPUWMUXAUXPUYCURUXB
      UXGUUQUVKUVMXFWKUWPUXIUXTPZUYBXAPZUYCUXTPUWPUXIXGPUYDUWPUXIUYAXNUXIXHXIUW
      PUXAUYEUXGUUQUVMXBXIUYBUXIUXIXJWKXKUXIWRUXPXLXMZUUSUWMUWNXOZABCDUVPFGHIJU
      XIKUVNLMNOXPXQUWPUVKTUVMUXLUVNUXIUXIUUQUXBUWGUWPUWHVMUXGUWPUVPUXKUUQUYGUW
      PUWNUXKUUQPUYGUUQUUQUVPJUXFXRXIZYDUWPUVKUVKTRSZUVMRUWPUYIUVKUWMUYIUVKURUU
      SUWNUUQUVKXSWEXTYAUWPUXIYEUWPUXITWNQZXESUXIWRXESUXIUYJWRUXIXEYFYBUWPUXIUW
      PUXIUYAYCYGYHYIUWPUWAUVRUXKVFZUVMRSZRSZUVRUYKRSZUVMRSZUXOUWPUVTUYLUVRRUWP
      UVTJUVQUVLRSZUJZJUVQUJZUVMRSZUYLUWPUVSUYPJUWPUVSUVQUIQZUVLRSZUYPUWPUWMUVQ
      UURPZUVSVUAURUXBUWPUVPUUQUYGYJZUUQUVKUVQYKWKUYTUVQUVLRUVPYLYMVBVCUWPVUBUX
      CUXDUYQUYSURVUCUXEUXDUWPUXFVMUUQUUQUVQUVLJYOXQUWPUYRUYKUVMRUWPUWNUXDUYRUY
      KURUYGUXFUUQUUQUVPJYNWHYAYPYQUWPUVRUURPZUYKUURPZUXAUYOUYMURUWPUWMVUBVUDUX
      BVUCUUQUVKUVQWIWKUWPUXKUUQUYHYJZUXGUUQUVRUYKUVMYRXQUWPUYNUXNUVMRUWPUYNUVK
      UVQUYKRSZRSZUXNUWPUWMVUBVUEUYNVUHURUXBVUCVUFUUQUVKUVQUYKYRXQUXLVUGUVKRUVP
      UXKYSYBYTYAUUAYPUWPUWSUXQUUQUGZUUBZUXRUWNUXJUWTPUWPUWRVUIKUWSWCZVUJUXHUWR
      UWSUDUEUXQUUQUVNUDUPZVULUEUPZVUMJQWOWPWQSUUCURVUKABCDFGHIJKUVNUDUELMNOUUF
      VPVUIKUWSUUGUUDUYFUYGUXQUUQUXIUVPUWSUUEXQUUHABCDUVNUWAFGHIJKLMNOUUIWKUUJU
      WPUWAUVNTFKUWQUUKUULUUMUUNUUOUUP $.

    $( The inverse of the reverse of a word composed with the word relates to
       the identity.  (This provides an explicit expression for the
       representation of the group inverse, given a representative of the free
       group equivalence class.)  (Contributed by Mario Carneiro,
       1-Oct-2015.) $)
    efginvrel1 $p |- ( A e. W ->
      ( ( M o. ( reverse ` A ) ) ++ A ) .~ (/) ) $=
      ( vc wcel cfv ccom syl va creverse cconcat co c0 c2o cxp cword wceq fviss
      wf cid eqsstri sseli revcl efgmf revco sylancl revrev coeq2d eqtr3d chash
      cc0 cfzo cv cmpt wrdf ffvelrnda efgmnvl mpteq2dva ffvelrni fcompt sylancr
      a1i feqmptd fveq2 fmptco 3eqtr4d eqtrd oveq2d wbr wrdco cvv efgrcl simprd
      wa eleqtrrd efginvrel2 eqbrtrrd ) EKQZJEUBRZSZJWLUBRZSZUCUDZWLEUCUDUEFWJW
      NEWLUCWJWNJJESZSZEWJWMWPJWJJWKUBRZSZWMWPWJWKIUFUGZUHZQZWTWTJUKZWSWMUIWJEX
      AQZXBKXAEKXAULRXALXAUJUMUNZWTEUOTZABIJNUPZWTWTJWKUQURWJWREJWJXDWREUIXEWTE
      USTUTVAUTWJPVCEVBRVDUDZPVEZERZJRZJRZVFPXHXJVFWQEWJPXHXLXJWJXIXHQWFZXJWTQZ
      XLXJUIWJXHWTXIEWJXDXHWTEUKZXEWTEVGTZVHZABXJIJNVITVJWJPUAXHWTXKUAVEZJRXLWP
      JXMXNXKWTQXQWTWTXJJXGVKTWJXCXOWPPXHXKVFUIXGXPPJEXHWTWTVLVMWJUAWTWTJXCWJXG
      VNVOXRXKJVPVQWJPXHWTEXPVOVRVSVTWJWLKQWOUEFWAWJWLXAKWJXBXCWLXAQXFXGWTWTJWK
      WBURWJIWCQKXAUIEIKLWDWEWGABCDWLFGHIJKLMNOWHTWI $.

    efgred.d $e |- D = ( W \ U_ x e. W ran ( T ` x ) ) $.
    efgred.s $e |- S = ( m e. { t e. ( Word W \ { (/) } ) |
      ( ( t ` 0 ) e. D /\ A. k e. ( 1 ..^ ( # ` t ) ) ( t ` k ) e.
        ran ( T ` ( t ` ( k - 1 ) ) ) ) } |-> ( m ` ( ( # ` m ) - 1 ) ) ) $.
    $( Value of the auxiliary function ` S ` defining a sequence of extensions
       starting at some irreducible word.  (Contributed by Mario Carneiro,
       1-Oct-2015.) $)
    efgsf $p |- S : { t e. ( Word W \ { (/) } ) |
      ( ( t ` 0 ) e. D /\ A. k e. ( 1 ..^ ( # ` t ) )
        ( t ` k ) e. ran ( T ` ( t ` ( k - 1 ) ) ) ) } --> W $=
      ( cv chash cfv c1 cmin co wcel cc0 crn cfzo wral wa cword c0 cdif crab wf
      csn wi weq id fveq2 oveq1d fveq12d eleq1d ralrab2 eldifi wrdf syl eldifsn
      cn wne lennncl sylbi fzo0end ffvelrnd a1d mprgbir fmpt mpbi ) LUCZUDUEZUF
      UGUHZWCUEZPUIZLUJFUCZUEGUIKUCZWHUEWIUFUGUHWHUEJUEUKUIKUFWHUDUEZULUHUMUNZF
      PUOZUPUTZUQZURZUMZWOPIUSWPWKWJUFUGUHZWHUEZPUIZVAFWNWKWGWSLFWNLFVBZWFWRPWT
      WEWQWCWHWTVCWTWDWJUFUGWCWHUDVDVEVFVGVHWHWNUIZWSWKXAUJWJULUHZPWQWHXAWHWLUI
      ZXBPWHUSWHWLWMVIPWHVJVKXAWJVMUIZWQXBUIXAXCWHUPVNUNXDWHWLUPVLPWHVOVPWJVQVK
      VRVSVTLWOPWFIUBWAWB $.

    $( Elementhood in the domain of ` S ` , the set of sequences of extensions
       starting at an irreducible word.  (Contributed by Mario Carneiro,
       27-Sep-2015.) $)
    efgsdm $p |- ( F e. dom S <-> ( F e. ( Word W \ { (/) } ) /\
          ( F ` 0 ) e. D /\ A. i e. ( 1 ..^ ( # ` F ) )
        ( F ` i ) e. ran ( T ` ( F ` ( i - 1 ) ) ) ) ) $=
      ( vf cdm wcel cword c0 csn cdif cc0 cfv cv c1 cmin co crn chash cfzo wral
      w3a wceq fveq1 eleq1d fveq2 oveq2d fveq2d rneqd eleq12d raleqbidv anbi12d
      crab efgsf fdmi oveq1 cbvralv syl5bb cbvrabv eqtri elrab2 3anass bitr4i
      wa ) OIUFZUGORUHUIUJUKZUGZULOUMZGUGZKUNZOUMZWJUOUPUQZOUMZJUMZURZUGZKUOOUS
      UMZUTUQZVAZWDZWDWGWIWSVBULUEUNZUMZGUGZWJXAUMZWLXAUMZJUMZURZUGZKUOXAUSUMZU
      TUQZVAZWDZWTUEOWFWEXAOVCZXCWIXKWSXMXBWHGULXAOVDVEXMXHWPKXJWRXMXIWQUOUTXAO
      USVFVGXMXDWKXGWOWJXAOVDXMXFWNXMXEWMJWLXAOVDVHVIVJVKVLWEULFUNZUMZGUGZLUNZX
      NUMZXQUOUPUQZXNUMZJUMZURZUGZLUOXNUSUMZUTUQZVAZWDZFWFVMZXLUEWFVMYHRIABCDEF
      GHIJLMNPQRSTUAUBUCUDVNVOYGXLFUEWFXNXAVCZXPXCYFXKYIXOXBGULXNXAVDVEYFWJXNUM
      ZWLXNUMZJUMZURZUGZKYEVAYIXKYCYNLKYEXQWJVCZXRYJYBYMXQWJXNVFYOYAYLYOXTYKJYO
      XSWLXNXQWJUOUPVPVHVHVIVJVQYIYNXHKYEXJYIYDXIUOUTXNXAUSVFVGYIYJXDYMXGWJXNXA
      VDYIYLXFYIYKXEJWLXNXAVDVHVIVJVKVRVLVSVTWAWGWIWSWBWC $.

    $( Value of the auxiliary function ` S ` defining a sequence of extensions.
       (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    efgsval $p |- ( F e. dom S -> ( S ` F ) = ( F ` ( ( # ` F ) - 1 ) ) ) $=
      ( vf cfv chash c1 cmin co wceq cc0 cv wcel crn cfzo wral wa cword c0 cdif
      csn crab id fveq2 oveq1d fveq12d cmpt cbvmptv eqtri fvex fvmpt efgsf fdmi
      cdm eleq2s ) NIUENUFUEZUGUHUIZNUEZUJNUKFULZUEGUMKULZVSUEVTUGUHUIVSUEJUEUN
      UMKUGVSUFUEUOUIUPUQFQURUSVAUTVBZIVNUDNUDULZUFUEZUGUHUIZWBUEZVRWAIWBNUJZWD
      VQWBNWFVCWFWCVPUGUHWBNUFVDVEVFILWALULZUFUEZUGUHUIZWGUEZVGUDWAWEVGUCLUDWAW
      JWEWGWBUJZWIWDWGWBWKVCWKWHWCUGUHWGWBUFVDVEVFVHVIVQNVJVKWAQIABCDEFGHIJKLMO
      PQRSTUAUBUCVLVMVO $.

    $( Property of the last link in the chain of extensions.  (Contributed by
       Mario Carneiro, 29-Sep-2015.) $)
    efgsdmi $p |- ( ( F e. dom S /\ ( ( # ` F ) - 1 ) e. NN ) ->
      ( S ` F ) e. ran ( T ` ( F ` ( ( ( # ` F ) - 1 ) - 1 ) ) ) ) $=
      ( vi cdm wcel chash cfv c1 cmin co cn wa wceq efgsval adantr cfzo cv wral
      crn cfz cuz simpr nnuz syl6eleq eluzfz1 syl cword cn0 csn cdif cc0 efgsdm
      cz c0 simp1bi eldifad lencl nn0z fzoval 4syl eleqtrrd simp3bi fveq2 oveq1
      fzoend fveq2d rneqd eleq12d rspcv sylc eqeltrd ) NIUEUFZNUGUHZUIUJUKZULUF
      ZUMZNIUHZWONUHZWOUIUJUKZNUHZJUHZUTZWMWRWSUNWPABCDEFGHIJKLMNOPQRSTUAUBUCUO
      UPWQWOUIWNUQUKZUFZUDURZNUHZXFUIUJUKZNUHZJUHZUTZUFZUDXDUSZWSXCUFZWQUIXDUFX
      EWQUIUIWOVAUKZXDWQWOUIVBUHZUFUIXOUFWQWOULXPWMWPVCVDVEUIWOVFVGWQNQVHZUFWNV
      IUFWNVNUFXDXOUNWQNXQVOVJZWMNXQXRVKUFZWPWMXSVLNUHGUFZXMABCDEFGHIJUDKLMNOPQ
      RSTUAUBUCVMZVPUPVQQNVRWNVSUIWNVTWAWBUIWNWFVGWMXMWPWMXSXTXMYAWCUPXLXNUDWOX
      DXFWOUNZXGWSXKXCXFWONWDYBXJXBYBXIXAJYBXHWTNXFWOUIUJWEWGWGWHWIWJWKWL $.

    $( Value of the auxiliary function ` S ` defining a sequence of extensions.
       (Contributed by Mario Carneiro, 1-Oct-2015.) $)
    efgsval2 $p |- ( ( A e. Word W /\ B e. W /\ ( A ++ <" B "> ) e. dom S )
                   -> ( S ` ( A ++ <" B "> ) ) = B ) $=
      ( cword wcel cs1 cconcat co cdm w3a cfv chash cmin cc0 caddc wceq efgsval
      c1 3ad2ant3 cc cn0 lencl 3ad2ant1 nn0cnd ax-1cn pncan sylancl simp1 simp2
      s1cld ccatlen syl2anc oveq2i syl6eq oveq1d addid2d 3eqtr4d fveq2d cfzo cn
      s1len 1nn eqeltri a1i lbfzo0 sylibr ccatval3 syl3anc s1fv 3ad2ant2 3eqtrd
      eqtrd ) GRUEZUFZHRUFZGHUGZUHUIZKUJUFZUKZWRKULZWRUMULZUSUNUIZWRULZUOGUMULZ
      UPUIZWRULZHWSWOXAXDUQWPABCDEFIJKLMNOWRPQRSTUAUBUCUDURUTWTXCXFWRWTXEUSUPUI
      ZUSUNUIZXEXCXFWTXEVAUFUSVAUFXIXEUQWTXEWOWPXEVBUFWSRGVCVDVEZVFXEUSVGVHWTXB
      XHUSUNWTXBXEWQUMULZUPUIZXHWTWOWQWNUFZXBXLUQWOWPWSVIZWTHRWOWPWSVJVKZRGWQVL
      VMXKUSXEUPHWBZVNVOVPWTXEXJVQVRVSWTXGUOWQULZHWTWOXMUOUOXKVTUIUFZXGXQUQXNXO
      WTXKWAUFZXRXSWTXKUSWAXPWCWDWEXKWFWGRGWQUOWHWIWPWOXQHUQWSHRWJWKWMWL $.

    $( The start and end of any extension sequence are related (i.e. evaluate
       to the same element of the quotient group to be created).  (Contributed
       by Mario Carneiro, 1-Oct-2015.) $)
    efgsrel $p |- ( F e. dom S -> ( F ` 0 ) .~ ( S ` F ) ) $=
      ( va vi cdm wcel cc0 cfv chash c1 cmin co cfzo wbr cword c0 csn cn cv crn
      cdif wral efgsdm simp1bi wne wa eldifsn lennncl sylbi fzo0end 3syl cn0 wi
      nnm1nn0 caddc wceq eleq1 fveq2 breq2d imbi12d imbi2d wer efger a1i eldifi
      wf ffvelrnda erref ex cuz elnn0uz peano2fzor sylanb 3adant1 3expia imim1d
      wrdf w3a 3ad2ant1 ffvelrnd nn0p1nn 3ad2ant2 nnuz syl6eleq 3ad2ant3 elfzo3
      elfzolt2b sylanbrc simp3bi oveq1 fveq2d rneqd eleq12d rspcv sylc cc nn0cn
      ax-1cn pncan sylancl eleqtrd efgi2 syl2anc ertr mpan2d syld expcom nn0ind
      a2d mpcom mpd efgsval breqtrrd ) NIUFUGZUHNUIZNUJUIZUKULUMZNUIZNIUIHYOYRU
      HYQUNUMZUGZYPYSHUOZYONQUPZUQURZVBUGZYQUSUGZUUAYOUUEYPGUGZUDUTZNUIZUUHUKUL
      UMZNUIZJUIZVAZUGZUDUKYQUNUMZVCZABCDEFGHIJUDKLMNOPQRSTUAUBUCVDZVEZUUENUUCU
      GZNUQVFVGUUFNUUCUQVHQNVIVJZYQVKVLYRVMUGZYOUUAUUBVNZYOUUEUUFUVAUURUUTYQVOV
      LYOUUHYTUGZYPUUIHUOZVNZVNYOUHYTUGZYPYPHUOZVNZVNYOUEUTZYTUGZYPUVINUIZHUOZV
      NZVNYOUVIUKVPUMZYTUGZYPUVNNUIZHUOZVNZVNYOUVBVNUDUEYRUUHUHVQZUVEUVHYOUVSUV
      CUVFUVDUVGUUHUHYTVRUVSUUIYPYPHUUHUHNVSVTWAWBUUHUVIVQZUVEUVMYOUVTUVCUVJUVD
      UVLUUHUVIYTVRUVTUUIUVKYPHUUHUVINVSVTWAWBUUHUVNVQZUVEUVRYOUWAUVCUVOUVDUVQU
      UHUVNYTVRUWAUUIUVPYPHUUHUVNNVSZVTWAWBUUHYRVQZUVEUVBYOUWCUVCUUAUVDUUBUUHYR
      YTVRUWCUUIYSYPHUUHYRNVSVTWAWBYOUVFUVGYOUVFVGZYPHQQHWCZUWDHOQRSWDZWEYOYTQU
      HNYOUUEUUSYTQNWGZUURNUUCUUDWFQNWRVLZWHWIWJUVIVMUGZYOUVMUVRYOUWIUVMUVRVNYO
      UWIVGZUVMUVOUVLVNUVRUWJUVOUVJUVLYOUWIUVOUVJUWIUVOUVJYOUWIUVIUHWKUIUGUVOUV
      JUVIWLUVIUHYQWMWNWOZWPWQUWJUVOUVLUVQYOUWIUVOUVLUVQVNYOUWIUVOWSZUVLUVKUVPH
      UOZUVQUWLUVKQUGUVPUVKJUIZVAZUGUWMUWLYTQUVINYOUWIUWGUVOUWHWTUWKXAUWLUVPUVN
      UKULUMZNUIZJUIZVAZUWOUWLUVNUUOUGZUUPUVPUWSUGZUWLUVNUKWKUIZUGUVNUVNYQUNUMU
      GZUWTUWLUVNUSUXBUWIYOUVNUSUGUVOUVIXBXCXDXEUVOYOUXCUWIUVNUHYQXHXFUVNUKYQXG
      XIYOUWIUUPUVOYOUUEUUGUUPUUQXJWTUUNUXAUDUVNUUOUWAUUIUVPUUMUWSUWBUWAUULUWRU
      WAUUKUWQJUWAUUJUWPNUUHUVNUKULXKXLXLXMXNXOXPUWLUWRUWNUWLUWQUVKJUWLUWPUVINU
      WLUVIXQUGZUKXQUGUWPUVIVQUWIYOUXDUVOUVIXRXCXSUVIUKXTYAXLXLXMYBBCDEUVKUVPHJ
      MOPQRSTUAYCYDUWLYPUVKUVPHQUWEUWLUWFWEYEYFWPYJYGYHYJYIYKYLABCDEFGHIJKLMNOP
      QRSTUAUBUCYMYN $.

    $( A singleton of an irreducible word is an extension sequence.
       (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    efgs1 $p |- ( A e. D -> <" A "> e. dom S ) $=
      ( vi wcel cs1 cword c0 csn cdif cc0 cfv cv c1 cmin co crn chash cfzo wral
      cdm ciun eldifi eleq2s s1cld s1nz eldifsn mpbiran2 sylibr s1fv id eqeltrd
      wne wceq s1len a1i oveq2d fzo0 syl6eq rzal syl efgsdm syl3anbrc ) GHUEZGU
      FZQUGZUHUIUJUEZUKWEULZHUEUDUMZWEULWIUNUOUPWEULKULUQUEZUDUNWEURULZUSUPZUTZ
      WEJVAUEWDWEWFUEZWGWDGQGQUEGQAQAUMKULUQVBZUJHGQWOVCUBVDVEWGWNWEUHVMGVFWEWF
      UHVGVHVIWDWHGHGHVJWDVKVLWDWLUHVNWMWDWLUNUNUSUPUHWDWKUNUNUSWKUNVNWDGVOVPVQ
      UNVRVSWJUDWLVTWAABCDEFHIJKUDLMNWEOPQRSTUAUBUCWBWC $.

    $( Every extension sequence ending in an irreducible word is trivial.
       (Contributed by Mario Carneiro, 1-Oct-2015.) $)
    efgs1b $p |- ( A e. dom S -> ( ( S ` A ) e. D <-> ( # ` A ) = 1 ) ) $=
      ( va cdm wcel cfv chash c1 wceq cv crn ciun wn eldifn eleq2s c2 cuz cn wo
      cdif cword c0 csn cc0 cmin co cfzo wral efgsdm simp1bi wa eldifsn lennncl
      wne sylbi syl elnn1uz2 sylib ord wf eldifad adantr wrdf cz caddc 1z simpr
      df-2 fveq2i syl6eleq eluzp1m1 sylancr nnuz syl6eleqr lbfzo0 sylibr fzoend
      cfz elfzofz eluzelz adantl fzoval eleqtrrd ffvelrnd uz2m1nn efgsdmi fveq2
      3syl sylan2 rneqd eliuni syl2anc cbviunv ex syld con1d syl5 simp2bi oveq1
      weq 1m1e0 syl6eq fveq2d eleq1d syl5ibrcom efgsval sylibrd impbid ) GJUEUF
      ZGJUGZHUFZGUHUGZUIUJZYLYKAQAUKZKUGZULZUMZUFZUNZYJYNYTYKQYRVAHYKQYRUOUBUPY
      JYNYSYJYNUNYMUQURUGZUFZYSYJYNUUBYJYMUSUFZYNUUBUTYJGQVBZVCVDZVAUFZUUCYJUUF
      VEGUGZHUFZUDUKZGUGUUIUIVFVGGUGKUGULUFUDUIYMVHVGVIZABCDEFHIJKUDLMNGOPQRSTU
      AUBUCVJZVKZUUFGUUDUFZGVCVOVLUUCGUUDVCVMQGVNVPVQYMVRVSVTYJUUBYSYJUUBVLZYKU
      DQUUIKUGZULZUMZYRUUNYMUIVFVGZUIVFVGZGUGZQUFYKUUTKUGZULZUFZYKUUQUFUUNVEYMV
      HVGZQUUSGUUNUUMUVDQGWAYJUUMUUBYJGUUDUUEUULWBWCQGWDVQUUNUUSVEUURWSVGZUVDUU
      NVEVEUURVHVGZUFZUUSUVFUFUUSUVEUFUUNUURUSUFZUVGUUNUURUIURUGZUSUUNUIWEUFYMU
      IUIWFVGZURUGZUFUURUVIUFWGUUNYMUUAUVKYJUUBWHUQUVJURWIWJWKUIYMWLWMWNWOUURWP
      WQVEUURWRUUSVEUURWTXIUUNYMWEUFZUVDUVEUJUUBUVLYJUQYMXAXBVEYMXCVQXDXEUUBYJU
      VHUVCYMXFABCDEFHIJKLMNGOPQRSTUAUBUCXGXJUDUUTUUPUVBQYKUUIUUTUJUUOUVAUUIUUT
      KXHXKXLXMUDAQUUPYQUDAYAUUOYPUUIYOKXHXKXNWKXOXPXQXRYJYNUURGUGZHUFZYLYJUVNY
      NUUHYJUUFUUHUUJUUKXSYNUVMUUGHYNUURVEGYNUURUIUIVFVGVEYMUIUIVFXTYBYCYDYEYFY
      JYKUVMHABCDEFHIJKLMNGOPQRSTUAUBUCYGYEYHYI $.

    $( If ` F ` is an extension sequence and ` A ` is an extension of the last
       element of ` F ` , then ` F + <" A "> ` is an extension sequence.
       (Contributed by Mario Carneiro, 1-Oct-2015.) $)
    efgsp1 $p |- ( ( F e. dom S /\ A e. ran ( T ` ( S ` F ) ) ) ->
      ( F ++ <" A "> ) e. dom S ) $=
      ( vi va cdm wcel cfv crn wa cs1 cconcat co cword c0 csn cdif cc0 cv chash
      cmin cfzo wral wne efgsdm simp1bi adantr eldifad cfz c2o cxp wss cs2 cotp
      c1 wf csplice cmpt2 wceq crab efgsf feq2i mpbir ffvelrni efgtf syl simprd
      fdmi frn simpr sseldd s1cld ccatcl syl2anc cn caddc ccatlen oveq2i syl6eq
      s1len cn0 lencl nn0p1nn 3syl eqeltrd cfn wb wrdfin hashnncl mpbid eldifsn
      sylanbrc eldifsni mpbird ccatval1 syl3anc simp2bi cun simp3bi w3a fzo0ss1
      lbfzo0 sylibr sseli syl3an3 cuz cz cle elfzoel2 peano2zm zred lem1d eluz2
      wbr syl3anbrc fzoss2 fveq2d rneqd eleq12d elfzoelz elfzom1b 3expa addid2d
      ibi ralbidva nn0cnd 1nn eqeltri a1i ccatval3 eqtr3d adantl fzo0end eqtr4d
      s1fv efgsval 3eltr4d fvex fveq2 oveq1 ralsn ralunb oveq2d nnuz fzosplitsn
      syl6eleq eqtrd raleqdv ) OJUGZUHZGOJUIZKUIZUJZUHZUKZOGULZUMUNZRUOZUPUQZUR
      ZUHZUSUVRUIZHUHUEUTZUVRUIZUWDVPVBUNZUVRUIZKUIZUJZUHZUEVPUVRVAUIZVCUNZVDZU
      VRUVJUHUVPUVRUVSUHZUVRUPVEZUWBUVPOUVSUHZUVQUVSUHZUWNUVPOUVSUVTUVKOUWAUHZU
      VOUVKUWRUSOUIZHUHZUWDOUIZUWFOUIZKUIZUJZUHZUEVPOVAUIZVCUNZVDZABCDEFHIJKUEL
      MNOPQRSTUAUBUCUDVFZVGVHZVIZUVPGRUVPUVNRGUVPUSUVLVAUIVJUNZPVKVLZVLZRUVMVQZ
      UVNRVMUVPUVMUFUEUXLUXMUVLUFUTZUXPUWDUWDQUIVNVOVRUNVSVTZUXOUVPUVLRUHZUXQUX
      OUKUVKUXRUVOUVJROJUVJRJVQUSFUTZUIHUHLUTZUXSUIUXTVPVBUNUXSUIKUIUJUHLVPUXSV
      AUIVCUNVDUKFUWAWAZRJVQABCDEFHIJKLMNPQRSTUAUBUCUDWBZUVJUYARJUYARJUYBWIWCWD
      WEVHBCDEIKNPQRUVLUFUESTUAUBWFWGWHUXNRUVMWJWGUVKUVOWKZWLWMZROUVQWNWOZUVPUW
      KWPUHZUWOUVPUWKUXFVPWQUNZWPUVPUWKUXFUVQVAUIZWQUNZUYGUVPUWPUWQUWKUYIVTUXKU
      YDROUVQWRWOUYHVPUXFWQGXAZWSWTZUVPUWPUXFXBUHZUYGWPUHUXKROXCZUXFXDXEXFUVPUW
      NUVRXGUHUYFUWOXHUYERUVRXIUVRXJXEXKUVRUVSUPXLXMUVPUWCUWSHUVPUWPUWQUSUSUXFV
      CUNZUHZUWCUWSVTUXKUYDUVPUXFWPUHZUYOUVPUYPOUPVEZUVPUWRUYQUXJOUVSUPXNWGUVPU
      WPOXGUHUYPUYQXHUXKROXIOXJXEXOZUXFYCYDROUVQUSXPXQUVKUWTUVOUVKUWRUWTUXHUXIX
      RVHXFUVPUWMUWJUEUXGUXFUQZXSZVDZUVPUWJUEUXGVDZUWJUEUYSVDZVUAUVPVUBUXHUVKUX
      HUVOUVKUWRUWTUXHUXIXTVHUVPUWPUWQVUBUXHXHUXKUYDUWPUWQUKUWJUXEUEUXGUWPUWQUW
      DUXGUHZUWJUXEXHUWPUWQVUDYAZUWEUXAUWIUXDVUDUWPUWQUWDUYNUHUWEUXAVTUXGUYNUWD
      UXFYBYEROUVQUWDXPYFVUEUWHUXCVUEUWGUXBKVUDUWPUWQUWFUYNUHUWGUXBVTVUDUSUXFVP
      VBUNZVCUNZUYNUWFVUDUXFVUFYGUIUHZVUGUYNVMVUDVUFYHUHZUXFYHUHZVUFUXFYIYOVUHV
      UDVUJVUIUWDVPUXFYJZUXFYKWGVUKVUDUXFVUDUXFVUKYLYMVUFUXFYNYPVUFUSUXFYQWGVUD
      UWFVUGUHZVUDUWDYHUHVUJVUDVULXHUWDVPUXFUUAVUKUWDUXFUUBWOUUEWLROUVQUWFXPYFY
      RYSYTUUCUUFWOXOUVPUXFUVRUIZVUFUVRUIZKUIZUJZUHZVUCUVPVUMUSUVQUIZVUPUVPUSUX
      FWQUNZUVRUIZVUMVURUVPVUSUXFUVRUVPUXFUVPUXFUVPUWPUYLUXKUYMWGUUGUUDYRUVPUWP
      UWQUSUSUYHVCUNUHZVUTVURVTUXKUYDUVPUYHWPUHZVVAVVBUVPUYHVPWPUYJUUHUUIUUJUYH
      YCYDROUVQUSUUKXQUULUVPGUVNVURVUPUYCUVOVURGVTUVKGUVNUUPUUMUVPVUOUVMUVPVUNU
      VLKUVPVUNVUFOUIZUVLUVPUWPUWQVUFUYNUHZVUNVVCVTUXKUYDUVPUYPVVDUYRUXFUUNWGRO
      UVQVUFXPXQUVKUVLVVCVTUVOABCDEFHIJKLMNOPQRSTUAUBUCUDUUQVHUUOYRYSUURXFUWJVU
      QUEUXFOVAUUSUWDUXFVTZUWEVUMUWIVUPUWDUXFUVRUUTVVEUWHVUOVVEUWGVUNKVVEUWFVUF
      UVRUWDUXFVPVBUVAYRYRYSYTUVBYDUWJUEUXGUYSUVCXMUVPUWJUEUWLUYTUVPUWLVPUYGVCU
      NZUYTUVPUWKUYGVPVCUYKUVDUVPUXFVPYGUIZUHVVFUYTVTUVPUXFWPVVGUYRUVEUVGVPUXFU
      VFWGUVHUVIXOABCDEFHIJKUELMNUVRPQRSTUAUBUCUDVFYP $.

    $( An initial segment of an extension sequence is an extension sequence.
       (Contributed by Mario Carneiro, 1-Oct-2015.) $)
    efgsres $p |- ( ( F e. dom S /\ N e. ( 1 ... ( # ` F ) ) ) ->
      ( F |` ( 0 ..^ N ) ) e. dom S ) $=
      ( vi cdm wcel c1 chash cfv cfz co wa cc0 cfzo cres cword c0 csn cdif cmin
      crn wral wne cop csubstr wceq efgsdm simp1bi adantr eldifad cuz wss fzss1
      1eluzge0 ax-mp simpr sseldi swrd0val syl2anc swrdcl syl eqeltrrd swrd0len
      cv cn elfznn adantl eqeltrd cfn wb wrdfin hashnncl mpbid eqnetrrd eldifsn
      3syl sylanbrc lbfzo0 sylibr simp2bi elfzuz3 fzoss2 simp3bi ssralv fzo0ss1
      fvres sylc sseli cz caddc elfzoel2 peano2zm uzid zcnd ax-1cn npcan fveq2d
      cc sylancl eleqtrrd peano2uzr elfzoelz elfzom1b ibi rneqd eleq12d ralbiia
      sseldd eqtr3d oveq2d raleqdv mpbird syl3anbrc ) NIUFZUGZQUHNUIUJZUKULZUGZ
      UMZNUNQUOULZUPZRUQZURUSZUTZUGZUNUUBUJZGUGUEWEZUUBUJZUUHUHVAULZUUBUJZJUJZV
      BZUGZUEUHUUBUIUJZUOULZVCZUUBYOUGYTUUBUUCUGUUBURVDUUFYTNUNQVEVFULZUUBUUCYT
      NUUCUGZQUNYQUKULZUGZUURUUBVGYTNUUCUUDYPNUUEUGZYSYPUVBUNNUJZGUGZUUHNUJZUUJ
      NUJZJUJZVBZUGZUEUHYQUOULZVCZABCDEFGHIJUEKLMNOPRSTUAUBUCUDVHZVIVJVKZYTYRUU
      TQUHUNVLUJUGYRUUTVMVOUHUNYQVNVPYPYSVQVRZRNQVSVTZYTUUSUURUUCUGZUVMRNUNQWAW
      BZWCYTUURUUBURUVOYTUURUIUJZWFUGZUURURVDZYTUVRQWFYTUUSUVAUVRQVGUVMUVNRNQWD
      VTZYSQWFUGZYPQYQWGWHZWIYTUVPUURWJUGUVSUVTWKUVQRUURWLUURWMWQWNWOUUBUUCURWP
      WRYTUUGUVCGYTUNUUAUGZUUGUVCVGYTUWBUWDUWCQWSWTUNUUANXGWBYPUVDYSYPUVBUVDUVK
      UVLXAVJWIYTUUQUUNUEUHQUOULZVCZYTUVIUEUWEVCZUWFYTUWEUVJVMZUVKUWGYTYQQVLUJZ
      UGZUWHYSUWJYPQUHYQXBWHQUHYQXCWBYPUVKYSYPUVBUVDUVKUVLXDVJUVIUEUWEUVJXEXHUU
      NUVIUEUWEUUHUWEUGZUUIUVEUUMUVHUWKUUHUUAUGUUIUVEVGUWEUUAUUHQXFXIUUHUUANXGW
      BUWKUULUVGUWKUUKUVFJUWKUUJUUAUGUUKUVFVGUWKUNQUHVAULZUOULZUUAUUJUWKQUWLVLU
      JUGZUWMUUAVMUWKUWLXJUGZQUWLUHXKULZVLUJZUGUWNUWKQXJUGZUWOUUHUHQXLZQXMWBUWK
      QUWIUWQUWKUWRQUWIUGUWSQXNWBUWKUWPQVLUWKQXSUGUHXSUGUWPQVGUWKQUWSXOXPQUHXQX
      TXRYAUWLQYBVTUWLUNQXCWBUWKUUJUWMUGZUWKUUHXJUGUWRUWKUWTWKUUHUHQYCUWSUUHQYD
      VTYEYIUUJUUANXGWBXRYFYGYHWTYTUUNUEUUPUWEYTUUOQUHUOYTUVRUUOQYTUURUUBUIUVOX
      RUWAYJYKYLYMABCDEFGHIJUEKLMUUBOPRSTUAUBUCUDVHYN $.

    $( For any word, there is a sequence of extensions starting at a reduced
       word and ending at the target word, such that each word in the chain is
       an extension of the previous (inserting an element and its inverse at
       adjacent indexes somewhere in the sequence).  (Contributed by Mario
       Carneiro, 27-Sep-2015.) $)
    efgsfo $p |- S : dom S -onto-> W $=
      ( vc va vb vd vo vi cdm wfo wf crn wceq cc0 cv wcel c1 cmin co chash cfzo
      cfv wral wa cword c0 csn cdif crab efgsf fdmi feq2i mpbir wss ax-mp caddc
      frn clt wbr cn0 c2o cxp cid fviss eqsstri sseli lencl syl peano2nn0 breq2
      nn0nlt0 notbid syl5ibr syl5 ralrimiv rabeq0 sylibr sseq1d weq rabbidv 0ss
      wn cun simpr fveq2 eqeq1d cbvrabv w3a ciun wrex eliun rneqd cbvrexv bitri
      eleq2d simpl1r simprl c2 cr crp sseldi nn0red 2rp ltaddrp sylancl efgtlen
      adantl breq1d elrab sylanbrc sseldd 3syl fnfvelrn sylancr eqeltrrd sylbir
      wb ex id syl2anr simpl3 breqtrd wfn ffn fvelrnb sylib cs1 cconcat simprrl
      eqtr3d efgsdm simp1bi eldifi simpl2 simprlr simprrr fveq2d efgsp1 syl2anc
      eleqtrrd efgsval2 syl3anc anassrs rexlimddv rexlimdvaa syl5bi eldif efgs1
      eleq2i efgsval s1len oveq1i 1m1e0 eqtri fveq2i a1i adantr 3eqtrd 3ad2ant2
      wi s1fv pm2.61d rabssdv syl5eqss unssd cle nn0leltp1 nn0re leloe rabbidva
      wo bitr3d unrab syl6eqr sylibrd nn0ind ltp1d ssriv eqssi dffo2 mpbir2an )
      IUIZPIUJUXBPIUKZIULZPUMUXCUNFUOZVBGUPKUOZUXEVBUXFUQURUSUXEVBJVBULUPKUQUXE
      UTVBVAUSVCVDFPVEZVFVGZVHZVIZPIUKABCDEFGHIJKLMNOPQRSTUAUBVJZUXBUXJPIUXJPIU
      XKVKVLVMZUXDPUXCUXDPVNUXLUXBPIVQVOUCPUXDUCUOZPUPZUDUOZUTVBZUXMUTVBZUQVPUS
      ZVRVSZUDPVIZUXDUXMUXNUXQVTUPZUXRVTUPUXTUXDVNZUXNUXMNWAWBZVEZUPUYAPUYDUXMP
      UYDWCVBUYDQUYDWDWEZWFUYCUXMWGWHZUXQWIUXPUEUOZVRVSZUDPVIZUXDVNVFUXDVNUXPUF
      UOZVRVSZUDPVIZUXDVNZUXPUYJUQVPUSZVRVSZUDPVIZUXDVNZUYBUEUFUXRUYGUNUMZUYIVF
      UXDUYRUYHXBZUDPVCUYIVFUMUYRUYSUDPUXOPUPZUXPVTUPZUYRUYSUYTUXOUYDUPVUAPUYDU
      XOUYEWFUYCUXOWGWHZVUAUYSUYRUXPUNVRVSZXBUXPWKUYRUYHVUCUYGUNUXPVRWJWLWMWNWO
      UYHUDPWPWQWRUEUFWSZUYIUYLUXDVUDUYHUYKUDPUYGUYJUXPVRWJWTWRUYGUYNUMZUYIUYPU
      XDVUEUYHUYOUDPUYGUYNUXPVRWJWTWRUYGUXRUMZUYIUXTUXDVUFUYHUXSUDPUYGUXRUXPVRW
      JWTWRUXDXAUYJVTUPZUYMUYLUXPUYJUMZUDPVIZXCZUXDVNZUYQVUGUYMVUKVUGUYMVDZUYLV
      UIUXDVUGUYMXDVULVUIUXQUYJUMZUCPVIUXDVUHVUMUDUCPUDUCWSZUXPUXQUYJUXOUXMUTXE
      ZXFXGVULVUMUCPUXDVULUXNVUMXHZUXMAPAUOZJVBZULZXIZUPZUXMUXDUPZVVAUXMUYGJVBZ
      ULZUPZUEPXJZVUPVVBVVAUXMVUSUPZAPXJVVFAUXMPVUSXKVVGVVEAUEPAUEWSZVUSVVDUXMV
      VHVURVVCVUQUYGJXEXLXOXMXNVUPVVEVVBUEPVUPUYGPUPZVVEVDZVDZUGUOZIVBZUYGUMZVV
      BUGUXBVVKUYGUXDUPZVVNUGUXBXJZVVKUYLUXDUYGVUGUYMUXNVUMVVJXPVVKVVIUYGUTVBZU
      YJVRVSZUYGUYLUPVUPVVIVVEXQZVVKVVQVVQXRVPUSZUYJVRVVKVVQXSUPXRXTUPVVQVVTVRV
      SVVKVVQVVKUYGUYDUPVVQVTUPVVKPUYDUYGUYEVVSYAUYCUYGWGWHYBYCVVQXRYDYEVVKUXQV
      VTUYJVVJUXQVVTUMVUPBCDEUXMHJMNOPUYGQRSTYFYGVULUXNVUMVVJUUAUUJUUBUYKVVRUDU
      YGPUDUEWSUXPVVQUYJVRUXOUYGUTXEYHYIYJYKIUXBUUCZVVOVVPYQUXCVWAUXLUXBPIUUDVO
      ZUGUXBUYGIUUEVOUUFVUPVVJVVLUXBUPZVVNVDZVVBVUPVVJVWDVDZVDZVVLUXMUUGZUUHUSZ
      IVBZUXMUXDVWFVVLUXGUPZUXNVWHUXBUPZVWIUXMUMVWFVWCVVLUXIUPZVWJVUPVVJVWCVVNU
      UIZVWCVWLUNVVLVBGUPUHUOZVVLVBVWNUQURUSVVLVBJVBULUPUHUQVVLUTVBVAUSVCABCDEF
      GHIJUHKLMVVLNOPQRSTUAUBUUKUULVVLUXGUXHUUMYLVULUXNVUMVWEUUNVWFVWCUXMVVMJVB
      ZULZUPVWKVWMVWFUXMVVDVWPVUPVVIVVEVWDUUOVWFVWOVVCVWFVVMUYGJVUPVVJVWCVVNUUP
      UUQXLUUTABCDEFUXMGHIJKLMVVLNOPQRSTUAUBUURUUSZABCDEFVVLUXMGHIJKLMNOPQRSTUA
      UBUVAUVBVWFVWAVWKVWIUXDUPVWBVWQUXBVWHIYMYNYOUVCUVDUVEUVFUXNVULVVAXBZVVBUV
      TVUMUXNVWRVVBUXNVWRVDZVWGIVBZUXMUXDVWSVWTVWGUTVBZUQURUSZVWGVBZUNVWGVBZUXM
      VWSVWGUXBUPZVWTVXCUMVWSUXMPVUTVHZUPZVXEUXMPVUTUVGVXGUXMGUPVXEGVXFUXMUAUVI
      ABCDEFUXMGHIJKLMNOPQRSTUAUBUVHYPYPZABCDEFGHIJKLMVWGNOPQRSTUAUBUVJWHVXCVXD
      UMVWSVXBUNVWGVXBUQUQURUSUNVXAUQUQURUXMUVKUVLUVMUVNUVOUVPUXNVXDUXMUMVWRUXM
      PUWAUVQUVRVWSVWAVXEVWTUXDUPVWBVXHUXBVWGIYMYNYOYRUVSUWBUWCUWDUWEYRVUGUYPVU
      JUXDVUGUYPUYKVUHUWKZUDPVIVUJVUGUYOVXIUDPVUGUYTVDUXPUYJUWFVSZUYOVXIUYTVUAV
      UGVXJUYOYQVUGVUBVUGYSUXPUYJUWGYTUYTUXPXSUPUYJXSUPVXJVXIYQVUGUYTUXPVUBYBUY
      JUWHUXPUYJUWIYTUWLUWJUYKVUHUDPUWMUWNWRUWOUWPYLUXNUXNUXQUXRVRVSZUXMUXTUPUX
      NYSUXNUXQUXNUXQUYFYBUWQUXSVXKUDUXMPVUNUXPUXQUXRVRVUOYHYIYJYKUWRUWSUXBPIUW
      TUXA $.

    ${
      efgredlem.1 $e |- ( ph -> A. a e. dom S A. b e. dom S
        ( ( # ` ( S ` a ) ) < ( # ` ( S ` A ) ) ->
          ( ( S ` a ) = ( S ` b ) -> ( a ` 0 ) = ( b ` 0 ) ) ) ) $.
      efgredlem.2 $e |- ( ph -> A e. dom S ) $.
      efgredlem.3 $e |- ( ph -> B e. dom S ) $.
      efgredlem.4 $e |- ( ph -> ( S ` A ) = ( S ` B ) ) $.
      efgredlem.5 $e |- ( ph -> -. ( A ` 0 ) = ( B ` 0 ) ) $.
      $( The reduced word that forms the base of the sequence in ~ efgsval is
         uniquely determined, given the ending representation.  (Contributed by
         Mario Carneiro, 1-Oct-2015.) $)
      efgredlema $p |- ( ph ->
        ( ( ( # ` A ) - 1 ) e. NN /\ ( ( # ` B ) - 1 ) e. NN ) ) $=
        ( vu chash cfv c1 cmin co cn wcel c2 cuz wceq wn cc0 wa cdm efgsval syl
        eqtr3d oveq1 1m1e0 syl6eq fveq2d sylan9eq eleq1d wb efgs1b biimpa mtand
        3bitr3d wo cword c0 csn cdif cv crn cfzo efgsdm simp1bi eldifsn lennncl
        wral wne sylbi 3syl elnn1uz2 sylib ord mpd uz2m1nn mtbid jca ) AHUNUOZU
        PUQURZUSUTZIUNUOZUPUQURZUSUTZAXEVAVBUOZUTZXGAXEUPVCZVDXLAXMVEHUOZVEIUOZ
        VCULAXMVFZXIIUOZXNXOAXMXQXFHUOZXNAILUOZXQXRAILVGZUTZXSXQVCUJBCDEFGJKLMN
        OPIQRSUBUCUDUEUFUGVHVIAHLUOZXSXRUKAHXTUTZYBXRVCUIBCDEFGJKLMNOPHQRSUBUCU
        DUEUFUGVHVIVJVJXMXFVEHXMXFUPUPUQURZVEXEUPUPUQVKVLVMVNVOXPXHUPVCZXQXOVCA
        XMYEAYBJUTZXSJUTZXMYEAYBXSJUKVPAYCYFXMVQUIBCDEFGHJKLMNOPQRSUBUCUDUEUFUG
        VRVIAYAYGYEVQUJBCDEFGIJKLMNOPQRSUBUCUDUEUFUGVRVIWAZVSYEXIVEIYEXIYDVEXHU
        PUPUQVKVLVMVNVIVJVTZAXMXLAXEUSUTZXMXLWBAYCHSWCZWDWEWFZUTZYJUIYCYMXNJUTU
        MWGZHUOYNUPUQURZHUOMUOWHUTUMUPXEWIURWNBCDEFGJKLMUMNOPHQRSUBUCUDUEUFUGWJ
        WKYMHYKUTHWDWOVFYJHYKWDWLSHWMWPWQXEWRWSWTXAXEXBVIAXHXKUTZXJAYEVDYPAXMYE
        YIYHXCAYEYPAXHUSUTZYEYPWBAYAIYLUTZYQUJYAYRXOJUTYNIUOYOIUOMUOWHUTUMUPXHW
        IURWNBCDEFGJKLMUMNOPIQRSUBUCUDUEUFUGWJWKYRIYKUTIWDWOVFYQIYKWDWLSIWMWPWQ
        XHWRWSWTXAXHXBVIXD $.

      ${
        efgredlemb.k $e |- K = ( ( ( # ` A ) - 1 ) - 1 ) $.
        efgredlemb.l $e |- L = ( ( ( # ` B ) - 1 ) - 1 ) $.
        $( Lemma for ~ efgredleme .  (Contributed by Mario Carneiro,
           4-Jun-2016.) $)
        efgredlemf $p |- ( ph -> ( ( A ` K ) e. W /\ ( B ` L ) e. W ) ) $=
          ( vi cfv wcel cc0 chash cfzo co cword wf c0 csn cdm cdif cv cmin wral
          c1 crn efgsdm simp1bi syl eldifad wrdf cfz fzossfz cz cn0 lencl nn0zd
          fzoval syl5sseqr cn efgredlema simpld syl5eqel sseldd ffvelrnd simprd
          wceq fzo0end jca ) ARHURUAUSSIURUAUSAUTHVAURZVBVCZUARHAHUAVDZUSZWSUAH
          VEAHWTVFVGZAHLVHZUSZHWTXBVIZUSZUKXDXFUTHURJUSUQVJZHURXGVMVKVCZHURMURV
          NUSUQVMWRVBVCVLBCDEFGJKLMUQNOPHQTUAUDUEUFUGUHUIVOVPVQVRZUAHVSVQAUTWRV
          MVKVCZVBVCZWSRAUTXJVTVCZXKWSUTXJWAAWRWBUSWSXLWOAWRAXAWRWCUSXIUAHWDVQW
          EUTWRWFVQWGARXJVMVKVCZXKUOAXJWHUSZXMXKUSAXNIVAURZVMVKVCZWHUSZABCDEFGH
          IJKLMNOPQTUAUBUCUDUEUFUGUHUIUJUKULUMUNWIZWJXJWPVQWKWLWMAUTXOVBVCZUASI
          AIWTUSZXSUAIVEAIWTXBAIXCUSZIXEUSZULYAYBUTIURJUSXGIURXHIURMURVNUSUQVMX
          OVBVCVLBCDEFGJKLMUQNOPIQTUAUDUEUFUGUHUIVOVPVQVRZUAIVSVQAUTXPVBVCZXSSA
          UTXPVTVCZYDXSUTXPWAAXOWBUSXSYEWOAXOAXTXOWCUSYCUAIWDVQWEUTXOWFVQWGASXP
          VMVKVCZYDUPAXQYFYDUSAXNXQXRWNXPWPVQWKWLWMWQ $.

        efgredlemb.p $e |- ( ph -> P e. ( 0 ... ( # ` ( A ` K ) ) ) ) $.
        efgredlemb.q $e |- ( ph -> Q e. ( 0 ... ( # ` ( B ` L ) ) ) ) $.
        efgredlemb.u $e |- ( ph -> U e. ( I X. 2o ) ) $.
        efgredlemb.v $e |- ( ph -> V e. ( I X. 2o ) ) $.
        efgredlemb.6 $e |- ( ph -> ( S ` A ) = ( P ( T ` ( A ` K ) ) U ) ) $.
        efgredlemb.7 $e |- ( ph -> ( S ` B ) = ( Q ( T ` ( B ` L ) ) V ) ) $.
        $( Lemma for ~ efgred .  (Contributed by Mario Carneiro,
           4-Jun-2016.) $)
        efgredlemg $p |- ( ph -> ( # ` ( A ` K ) ) = ( # ` ( B ` L ) ) ) $=
          ( cfv chash c2 c2o cxp cword wcel cn0 fviss eqsstri efgredlemf simpld
          cid sseldi lencl syl nn0cnd simprd 2cnd caddc co crn wceq c1 cmin cdm
          cn efgredlema efgsdmi syl2anc fveq2i syl6eleqr efgtlen eqeltrd eqtr3d
          rneqi addcan2ad ) AUAHVGZVHVGZUBIVGZVHVGZVIAXEAXDTVJVKZVLZVMXEVNVMAUE
          XIXDUEXIVSVGXIUHXIVOVPZAXDUEVMZXFUEVMZABCDEFGHIJMNOQRSTUAUBUCUEUFUGUH
          UIUJUKULUMUNUOUPUQURUSUTVQZVRZVTXHXDWAWBWCAXGAXFXIVMXGVNVMAUEXIXFXJAX
          KXLXMWDZVTXHXFWAWBWCAWEAHNVGZVHVGZXEVIWFWGZXGVIWFWGZAXKXPXDOVGZWHZVMX
          QXRWIXNAXPHVHVGWJWKWGZWJWKWGZHVGZOVGZWHZYAAHNWLZVMYBWMVMZXPYFVMUOAYHI
          VHVGWJWKWGZWMVMZABCDEFGHIJMNOQRSTUCUEUFUGUHUIUJUKULUMUNUOUPUQURWNZVRB
          CDEFGJMNOQRSHTUCUEUHUIUJUKULUMWOWPXTYEXDYDOUAYCHUSWQWQXBWRCDEFXPMOSTU
          CUEXDUHUIUJUKWSWPAXLXPXFOVGZWHZVMXQXSWIXOAXPYIWJWKWGZIVGZOVGZWHZYMAXP
          INVGZYQUQAIYGVMYJYRYQVMUPAYHYJYKWDBCDEFGJMNOQRSITUCUEUHUIUJUKULUMWOWP
          WTYLYPXFYOOUBYNIUTWQWQXBWRCDEFXPMOSTUCUEXFUHUIUJUKWSWPXAXC $.

        efgredlemb.8 $e |- ( ph -> -. ( A ` K ) = ( B ` L ) ) $.
        ${
          efgredlemd.9 $e |- ( ph -> P e. ( ZZ>= ` ( Q + 2 ) ) ) $.
          efgredlemd.c $e |- ( ph -> C e. dom S ) $.
          efgredlemd.sc $e |- ( ph -> ( S ` C ) =
            ( ( ( B ` L ) substr <. 0 , Q >. ) ++
              ( ( A ` K ) substr <. ( Q + 2 ) , ( # ` ( A ` K ) ) >. ) ) ) $.
          $( Lemma for ~ efgred .  (Contributed by Mario Carneiro,
             1-Oct-2015.) $)
          efgredleme $p |- ( ph -> ( ( A ` K ) e. ran ( T ` ( S ` C ) ) /\
                                     ( B ` L ) e. ran ( T ` ( S ` C ) ) ) ) $=
            ( vi cfv crn wcel co cs2 cotp csplice cc0 cop csubstr cconcat caddc
            c2 chash cfz cxp wceq wf cv c1 cmin wa cword c0 ffvelrni syl elfzuz
            cuz fveq2d simprd sseldi swrdcl simpld syl2anc swrd0len cn0 sylancl
            uztrn elfzuzb sylanbrc swrdlen syl3anc cz zcnd 2z cc 2cn a1i 3eqtrd
            3eqtr2d efgtval eluzfz1 cle wbr cr ccatswrd syl13anc oveq1d ccatass
            3eqtr3d ccatcl wb eqtr4d ccatopth syl221anc mpbid oveq2d eqeltrrd
            c2o cdm cfzo wral csn cdif crab efgsf feq2i mpbir cid fviss eqsstri
            fdmi efgredlemf ccatlen 2nn0 uzaddcl elfzuz3 lencl syl6eleq eluzfz2
            nn0uz oveq12d elfzelz nn0cnd zaddcl addsubassd pnpcand zsubcl npcan
            eleqtrrd eluzsub eqeltrd wrd0 efgmf s2cld nn0addge1 eluz2 syl3anbrc
            splval ccatrid 3eqtr4rd eqcomd hash0 oveq2i addid1d syl5req splval2
            pncan2 eqtrd s2len syl6eqr eqtr3d swrdid wfn cmpt2 efgtf ffn fnovrn
            zred efgredlemg 2re subge02 sub32d subsub4d nncan eqtr2d syl5eq jca
            0le2 ) AUBHVMZJOVMZPVMZVNZVOUCIVMZUXOVOAMUEUXNVPZUXLUXOAUXQUXMMMUEU
[encoded data, 7440 characters]
            WRYAYAAWXGWXSWUMWXMUXOVOWXLWYBVDUYKUYMVUIQUXNUWTXNYTUXJ $.

          $( The reduced word that forms the base of the sequence in ~ efgsval
             is uniquely determined, given the ending representation.
             (Contributed by Mario Carneiro, 1-Oct-2015.) $)
          efgredlemd $p |- ( ph -> ( A ` 0 ) = ( B ` 0 ) ) $=
            ( vi cc0 chash cfv c1 cmin co cfzo cres cs1 cconcat cword wcel wceq
            c0 cv crn wral efgsdm simp1bi syl eldifad wf wrdf cfz fzossfz lencl
            cz nn0zd fzoval syl5sseqr cn simpld fzo0end syl5eqel ffvelrnd s1cld
            cn0 sseldd wa lbfzo0 sylibr ccatval1 syl3anc simprd eqtr4d c2 caddc
            clt wbr cr sseldi nn0red 2rp ltaddrp sylancl lem1d wb syl2anc fvres
            cle fveq2d fveq2i wi fveq2 eqeq1d fveq1 imbi12d eqeq2d csn cdm cdif
            efgredlema wne eldifsn lennncl sylbi crp c2o cxp fviss eqsstri fznn
            cid mpbir2and efgsres efgsval cop csubstr cuz wss 1eluzge0 swrd0val
            fzss1 ax-mp swrd0len eqtr3d oveq1d syl6eqr 3eqtrd efgsdmi syl6eleqr
            rneqi efgtlen 3brtr4d efgredleme efgsp1 efgsval2 breq1d imbi2d mp2d
            rspc2va syl21anc eqeltrd 3eqtr4d 3eqtr3d ) AVMHVMHVNVOZVPVQVRZVSVRZ
[encoded data, 4640 characters]
            YMWUSVUJUWNXLXMVMUWOIYKWLUWG $.
        $}

        $d c L $.
        $( The reduced word that forms the base of the sequence in ~ efgsval is
           uniquely determined, given the ending representation.  (Contributed
           by Mario Carneiro, 1-Oct-2015.) $)
        efgredlemc $p |- ( ph ->
          ( P e. ( ZZ>= ` Q ) -> ( A ` 0 ) = ( B ` 0 ) ) ) $=
          ( vi vc cuz cfv wcel wceq c1 caddc co wo cc0 uzp1 cop csubstr cconcat
          chash cword cfz cfzo wf cv cmin crn wral efgsdm simp1bi syl wrdf 3syl
          eldifi fzossfz cn simpld fzo0end syl5eqel sseldi lencl nn0zd eleqtrrd
          cz cn0 fzoval ffvelrnd elfzuz eluzfz1 syl13anc simprd eqeq12d syl3anc
          eqtrd 3eqtrd adantr swrdcl ccatcl syl2anc a1i oveq12d ccatlen 3eqtr4d
          wa wb c2 ccatopth syl221anc mpbid s1cld ccatass oveq2i syl6eqr oveq1d
          cs1 s1len ad2antrr c2o cxp cid fviss eqsstri c0 cdif efgredlema nn0uz
          csn cdm syl6eleq eluzfz2 ccatswrd swrdid mtbird csplice efgtval efgmf
          cs2 ffvelrni s2cld splval 3eqtr3d swrd0len biimpar s2len eqtr4i mtand
          cotp pm2.21d df-s2 eqtr3d s111 fveq2d efgmnvl s1eqd elfzelz zcnd 1cnd
          oveq2d addassd df-2 eleq2d wrex wfo efgsfo cvv efgrcl sylancr clt wbr
          foelrn wi wn simplr simprl simprr eqcomd efgredlemd rexlimddv ex jaod
          sylbid syl5 ) KLVJVKVLKLVMZKLVNVOVPZVJVKVLZVQAVRHVKZVRIVKZVMZLKVSAUXF
[encoded data, 5760 characters]
          XCUXEUXCUXE $.

        $( The reduced word that forms the base of the sequence in ~ efgsval is
           uniquely determined, given the ending representation.  (Contributed
           by Mario Carneiro, 30-Sep-2015.) $)
        efgredlemb $p |- -. ph $=
          ( cc0 cfv wceq cuz wcel cv chash clt wbr wi cdm wral wb breq2d imbi1d
          fveq2 2ralbidv syl mpbid eqcomd eqcom sylnib efgredlemc syl6ibr cz wo
          cfz co elfzelz uztric syl2anc mpjaod pm2.65i ) AVHHVIZVHIVIZVJZALKVKV
          IVLZXCKLVKVIVLZAXDXBXAVJZXCABCDEFGIHJLKMNOUDQRSTUBUAUCPUEUFUGUHUIUJUK
          ULUMAUFVMZNVIZVNVIZHNVIZVNVIZVOVPZXHUGVMZNVIVJVHXGVIVHXMVIVJVQZVQZUGN
          VRZVSUFXPVSZXIINVIZVNVIZVOVPZXNVQZUGXPVSUFXPVSZUNAXJXRVJZXQYBVTUQYCXO
          YAUFUGXPXPYCXLXTXNYCXKXSXIVOXJXRVNWCWAWBWDWEWFUPUOAXJXRUQWGAXCXFURXAX
          BWHZWIUTUSVBVAVDVCVFVEAUAHVIZUBIVIZVJYFYEVJVGYEYFWHWIWJYDWKABCDEFGHIJ
          KLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTVAVBVCVDVEVFVGWJAKW
          LVLZLWLVLZXDXEWMAKVHYEVNVIZWNWOVLYGVAKVHYIWPWEALVHYFVNVIZWNWOVLYHVBLV
          HYJWPWEKLWQWRWSURWT $.
      $}

      $( The reduced word that forms the base of the sequence in ~ efgsval is
         uniquely determined, given the ending representation.  (Contributed by
         Mario Carneiro, 30-Sep-2015.) $)
      efgredlem $p |- -. ph $=
        ( vi vr vj vs cc0 cfv wceq chash c1 cmin co cfzo cres clt c2 wcel cword
        wbr cxp cn0 wf c0 cv crn wral efgsdm simp1bi syl eldifad cfz cle simpld
        wrdf cn nnm1nn0 lem1d wa wb mpbir2and cz lencl fzoval eleqtrrd ffvelrnd
        3syl nn0zd sseldi fznn efgsres syl2anc efgsval cop csubstr wss 1eluzge0
        nn0red fzss1 ax-mp swrd0val fveq2d swrd0len eqtr3d oveq1d fzo0end fvres
        efgsdmi wrex wfn csplice cmpt2 efgtf simprd ffn ovelrn reeanv ad3antrrr
        mpbid wi wn eqid rexlimdvva syl5bir 3eqtr4d fveq2 eqeq1d imbi12d eqeq2d
        fveq1 caddc crp c2o cid fviss eqsstri csn cdm cdif efgredlema nnred wne
        cr eldifsni cfn wrdfin hashnncl mpbird fznn0 2rp ltaddrp sylancl 3eqtrd
        cuz efgtlen 3brtr4d cs2 cotp elfzofz simpllr simplrl simplrr efgredlemb
        simpr iman mpbir expr mp2and breq1d imbi2d rspc2va syl21anc mp2d lbfzo0
        sylibr 3eqtr3d pm2.65i ) AUQHURZUQIURZUSZAUQHUQHUTURZVAVBVCZVDVCZVEZURZ
        UQIUQIUTURZVAVBVCZVDVCZVEZURZUWHUWIAUWNLURZUTURZHLURZUTURZVFVJZUXAUWSLU
        RZUSZUWOUWTUSZAUWLVAVBVCZHURZUTURZUXKVGUUAVCZUXBUXDVFAUXKUUMVHVGUUBVHUX
        KUXLVFVJAUXKAUXJQUUCVKZVIZVHUXKVLVHASUXNUXJSUXNUUDURUXNUBUXNUUEUUFAUQUW
        KVDVCZSUXIHAHSVIZVHZUXOSHVMAHUXPVNUUGZAHLUUHZVHZHUXPUXRUUIZVHZUIUXTUYBU
        WHJVHUMVOZHURUYCVAVBVCZHURMURVPVHUMVAUWKVDVCVQBCDEFGJKLMUMNOPHQRSUBUCUD
        UEUFUGVRVSZVTWAZSHWEVTAUXIUQUWLWBVCZUXOAUXIUYGVHZUXIVLVHZUXIUWLWCVJZAUW
        LWFVHZUYIAUYKUWQWFVHZABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUUJZWD
        ZUWLWGVTAUWLAUWLUYNUUKWHAUWKWFVHZUWLVLVHUYHUYIUYJWIWJAUYOHVNUULZAUXTUYB
        UYPUIUYEHUXPVNUUNWQAUXQHUUOVHUYOUYPWJUYFSHUUPHUUQWQUURUWKWGUXIUWLUUSWQW
        KAUWKWLVHZUXOUYGUSAUWKAUXQUWKVLVHUYFSHWMVTZWRZUQUWKWNVTWOWPZWSUXMUXJWMV
        TXHUUTUXKVGUVAUVBAUXAUXJUTAUXAUWNUTURZVAVBVCZUWNURZUXIUWNURZUXJAUWNUXSV
        HZUXAVUCUSAUXTUWLVAUWKWBVCZVHZVUEUIAVUGUYKUWLUWKWCVJZUYNAUWKAUWKUYRXHWH
        AUYQVUGUYKVUHWIWJUYSUWLUWKWTVTWKZBCDEFGJKLMNOPHQRUWLSUBUCUDUEUFUGXAXBZB
        CDEFGJKLMNOPUWNQRSUBUCUDUEUFUGXCVTZAVUBUXIUWNAVUAUWLVAVBAHUQUWLXDXEVCZU
        TURZVUAUWLAVULUWNUTAUXQUWLUQUWKWBVCZVHZVULUWNUSUYFAVUFVUNUWLVAUQUVDURVH
        ZVUFVUNXFXGVAUQUWKXIXJVUIWSZSHUWLXKXBXLAUXQVUOVUMUWLUSUYFVUQSHUWLXMXBXN
        XOXLZAUYKUXIUWMVHVUDUXJUSUYNUWLXPUXIUWMHXQWQZUVCXLAUXJSVHZUXCUXJMURZVPV
        HZUXDUXLUSUYTAUXTUYKVVBUIUYNBCDEFGJKLMNOPHQRSUBUCUDUEUFUGXRXBZCDEFUXCKM
        PQRSUXJUBUCUDUEUVEXBUVFAVUCUWSUTURZVAVBVCZUWSURZUXAUXFAVUDUWQVAVBVCZUWS
        URZVUCVVFAUXJVVGIURZVUDVVHAUXCUYCUNVOZVVAVCUSZUNUXMXSZUMUQUXKWBVCZXSZIL
        URZUOVOZUPVOZVVIMURZVCUSZUPUXMXSZUOUQVVIUTURWBVCZXSZUXJVVIUSZAVVBVVNVVC
        AVVMUXMVKZSVVAVMZVVAVWDXTVVBVVNWJAVVATUAVVMUXMUXJTVOZVWFUAVOZVWGRURUVGU
        VHZYAVCYBUSZVWEAVUTVWIVWEWIUYTCDEFKMPQRSUXJTUAUBUCUDUEYCVTYDVWDSVVAYEUM
        UNVVMUXMUXCVVAYFWQYIAVVOVVRVPVHZVWBAIUXSVHZUYLVWJUJAUYKUYLUYMYDZBCDEFGJ
        KLMNOPIQRSUBUCUDUEUFUGXRXBAVWAUXMVKZSVVRVMZVVRVWMXTVWJVWBWJAVVRTUAVWAUX
        MVVIVWHYAVCYBUSZVWNAVVISVHVWOVWNWIAUQUWPVDVCZSVVGIAIUXPVHZVWPSIVMAIUXPU
        XRAVWKIUYAVHZUJVWKVWRUWIJVHUYCIURUYDIURMURVPVHUMVAUWPVDVCVQBCDEFGJKLMUM
        NOPIQRSUBUCUDUEUFUGVRVSVTWAZSIWEVTAVVGUQUWQWBVCZVWPAUYLVVGUWRVHZVVGVWTV
        HVWLUWQXPZVVGUQUWQUVIWQAUWPWLVHZVWPVWTUSAUWPAVWQUWPVLVHVWSSIWMVTZWRZUQU
        WPWNVTWOWPCDEFKMPQRSVVITUAUBUCUDUEYCVTYDVWMSVVRYEUOUPVWAUXMVVOVVRYFWQYI
        VVNVWBWIVVLVVTWIZUOVWAXSUMVVMXSAVWCVVLVVTUMUOVVMVWAYGAVXFVWCUMUOVVMVWAV
        XFVVKVVSWIZUPUXMXSUNUXMXSAUYCVVMVHZVVPVWAVHZWIZWIZVWCVVKVVSUNUPUXMUXMYG
        VXKVXGVWCUNUPUXMUXMVXKVVJUXMVHZVVQUXMVHZWIZVXGVWCVXKVXNVXGWIZWIZVWCYJVX
        PVWCYKZWIZYKVXRBCDEFGHIJUYCVVPKLMVVJNOPQUXIVVGRVVQSTUAUBUCUDUEUFUGAVWFL
        URZUTURZUXDVFVJZVXSVWGLURZUSZUQVWFURZUQVWGURZUSZYJZYJZUAUXSVQTUXSVQZVXJ
        VXOVXQUHYHAUXTVXJVXOVXQUIYHAVWKVXJVXOVXQUJYHAUXCVVOUSVXJVXOVXQUKYHAUWJY
        KVXJVXOVXQULYHUXIYLVVGYLVXRVXHVXIAVXJVXOVXQUVJZWDVXRVXHVXIVYJYDVXRVXLVX
        MVXKVXNVXGVXQUVKZWDVXRVXLVXMVYKYDVXRVVKVVSVXKVXNVXGVXQUVLZWDVXRVVKVVSVY
        LYDVXPVXQUVNUVMVXPVWCUVOUVPUVQYMYNYMYNUVRVUSAUYLVXAVVHVVIUSVWLVXBVVGUWR
        IXQWQYOVURAVVEVVGUWSAVVDUWQVAVBAIUQUWQXDXEVCZUTURZVVDUWQAVYMUWSUTAVWQUW
        QUQUWPWBVCZVHZVYMUWSUSVWSAVAUWPWBVCZVYOUWQVUPVYQVYOXFXGVAUQUWPXIXJAUWQV
        YQVHZUYLUWQUWPWCVJZVWLAUWPAUWPVXDXHWHAVXCVYRUYLVYSWIWJVXEUWQUWPWTVTWKZW
        SZSIUWQXKXBXLAVWQVYPVYNUWQUSVWSWUASIUWQXMXBXNXOXLYOVUKAUWSUXSVHZUXFVVFU
        SAVWKVYRWUBUJVYTBCDEFGJKLMNOPIQRUWQSUBUCUDUEUFUGXAXBZBCDEFGJKLMNOPUWSQR
        SUBUCUDUEUFUGXCVTYOAVUEWUBVYIUXEUXGUXHYJZYJZVUJWUCUHVYHWUEUXEUXAVYBUSZU
        WOVYEUSZYJZYJTUAUWNUWSUXSUXSVWFUWNUSZVYAUXEVYGWUHWUIVXTUXBUXDVFWUIVXSUX
        AUTVWFUWNLYPZXLUVSWUIVYCWUFVYFWUGWUIVXSUXAVYBWUJYQWUIVYDUWOVYEUQVWFUWNY
        TYQYRYRVWGUWSUSZWUHWUDUXEWUKWUFUXGWUGUXHWUKVYBUXFUXAVWGUWSLYPYSWUKVYEUW
        TUWOUQVWGUWSYTYSYRUVTUWAUWBUWCAUQUWMVHZUWOUWHUSAUYKWULUYNUWLUWDUWEUQUWM
        HXQVTAUQUWRVHZUWTUWIUSAUYLWUMVWLUWQUWDUWEUQUWRIXQVTUWFULUWG $.
    $}

    $( The reduced word that forms the base of the sequence in ~ efgsval is
       uniquely determined, given the terminal point.  (Contributed by Mario
       Carneiro, 28-Sep-2015.) $)
    efgred $p |- ( ( A e. dom S /\ B e. dom S /\ ( S ` A ) = ( S ` B ) ) ->
        ( A ` 0 ) = ( B ` 0 ) ) $=
      ( va vb vc vi vd cdm wcel cfv wceq cc0 wa cv chash c1 caddc co clt wbr wi
      wral cn0 c2o cxp cword cid fviss eqsstri wf cmin crn cfzo cdif crab efgsf
      c0 csn fdmi feq2i mpbir ffvelrni adantr sseldi lencl syl peano2nn0 imbi1d
      breq2 2ralbidv weq wn nn0nlt0 pm2.21d rgen2a w3a simpl1 wb simpl3l mpbird
      simpl2l simpl2r simpl3r simpr efgredlem iman 3expia expd ralrimivva fveq2
      fveq2d eqeq1d fveq1 imbi12d eqeq2d imbi2d cbvral2v sylib wo cle nn0leltp1
      ancli cr nn0re syl2an bitr3d ancoms sylan2 jaob syl6bb 2ralbidva r19.26-2
      leloe syl5ibr nn0ind nn0red ltp1d breq1d rspc2v mp2d 3impia ) GKUJZUKZHUU
      DUKZGKULZHKULZUMZUNGULZUNHULZUMZUUEUUFUOZUEUPZKULZUQULZUUGUQULZURUSUTZVAV
      BZUUOUFUPZKULZUMZUNUUNULZUNUUTULZUMZVCZVCZUFUUDVDUEUUDVDZUUQUURVAVBZUUIUU
      LVCZUUMUURVEUKZUVHUUMUUQVEUKZUVKUUMUUGPVFVGZVHZUKUVLUUMRUVNUUGRUVNVIULUVN
      SUVNVJVKZUUEUUGRUKUUFUUDRGKUUDRKVLUNFUPZULIUKMUPZUVPULUVQURVMUTUVPULLULVN
      UKMURUVPUQULVOUTVDUOFRVHVSVTVPVQZRKVLABCDEFIJKLMNOPQRSTUAUBUCUDVRZUUDUVRR
      KUVRRKUVSWAWBWCZWDWEWFUVMUUGWGWHZUUQWIWHUUPUGUPZVAVBZUVFVCZUFUUDVDUEUUDVD
      UUPUNVAVBZUVFVCZUFUUDVDUEUUDVDUUPUHUPZVAVBZUVFVCZUFUUDVDUEUUDVDZUUPUWGURU
      SUTZVAVBZUVFVCZUFUUDVDUEUUDVDZUVHUGUHUURUWBUNUMZUWDUWFUEUFUUDUUDUWOUWCUWE
      UVFUWBUNUUPVAWKWJWLUGUHWMZUWDUWIUEUFUUDUUDUWPUWCUWHUVFUWBUWGUUPVAWKWJWLUW
      BUWKUMZUWDUWMUEUFUUDUUDUWQUWCUWLUVFUWBUWKUUPVAWKWJWLUWBUURUMZUWDUVGUEUFUU
      DUUDUWRUWCUUSUVFUWBUURUUPVAWKWJWLUWFUEUFUUDUUNUUDUKZUWFUUTUUDUKZUWSUWEUVF
      UWSUUPVEUKZUWEWNUWSUUOUVNUKUXAUWSRUVNUUOUVOUUDRUUNKUVTWDWFUVMUUOWGWHZUUPW
      OWHWPWEWQUWJUWNUWGVEUKZUWJUUPUWGUMZUVFVCZUFUUDVDUEUUDVDZUOZUWJUXFUWJUWBKU
      LZUQULZUWGUMZUXHUIUPZKULZUMZUNUWBULZUNUXKULZUMZVCZVCZUIUUDVDUGUUDVDUXFUWJ
      UXRUGUIUUDUUDUWJUWBUUDUKZUXKUUDUKZUOZUOUXJUXMUXPUWJUYAUXJUXMUOZUXPUWJUYAU
      YBWRZUXPVCUYCUXPWNZUOZWNUYEABCDEFUWBUXKIJKLMNOPQRUEUFSTUAUBUCUDUYEUUPUXIV
      AVBZUVFVCZUFUUDVDUEUUDVDZUWJUWJUYAUYBUYDWSUYEUXJUYHUWJWTUXJUXMUWJUYAUYDXA
      UXJUYGUWIUEUFUUDUUDUXJUYFUWHUVFUXIUWGUUPVAWKWJWLWHXBUXSUXTUWJUYBUYDXCUXSU
      XTUWJUYBUYDXDUXJUXMUWJUYAUYDXEUYCUYDXFXGUYCUXPXHWCXIXJXKUXRUXEUXDUUOUXLUM
      ZUVCUXOUMZVCZVCUGUIUEUFUUDUUDUGUEWMZUXJUXDUXQUYKUYLUXIUUPUWGUYLUXHUUOUQUW
      BUUNKXLZXMXNUYLUXMUYIUXPUYJUYLUXHUUOUXLUYMXNUYLUXNUVCUXOUNUWBUUNXOXNXPXPU
      IUFWMZUYKUVFUXDUYNUYIUVBUYJUVEUYNUXLUVAUUOUXKUUTKXLXQUYNUXOUVDUVCUNUXKUUT
      XOXQXPXRXSXTYDUXCUWNUWIUXEUOZUFUUDVDUEUUDVDUXGUXCUWMUYOUEUFUUDUUDUXCUWSUW
      TUOZUOZUWMUWHUXDYAZUVFVCUYOUYQUWLUYRUVFUYPUXCUXAUWLUYRWTZUWSUXAUWTUXBWEUX
      AUXCUYSUXAUXCUOUUPUWGYBVBZUWLUYRUUPUWGYCUXAUUPYEUKUWGYEUKUYTUYRWTUXCUUPYF
      UWGYFUUPUWGYOYGYHYIYJWJUWHUVFUXDYKYLYMUWIUXEUEUFUUDUUDYNYLYPYQWHUUMUUQUUM
      UUQUWAYRYSUVGUVIUVJVCUVIUUGUVAUMZUUJUVDUMZVCZVCUEUFGHUUDUUDUUNGUMZUUSUVIU
      VFVUCVUDUUPUUQUURVAVUDUUOUUGUQUUNGKXLZXMYTVUDUVBVUAUVEVUBVUDUUOUUGUVAVUEX
      NVUDUVCUUJUVDUNUUNGXOXNXPXPUUTHUMZVUCUVJUVIVUFVUAUUIVUBUULVUFUVAUUHUUGUUT
      HKXLXQVUFUVDUUKUUJUNUUTHXOXQXPXRUUAUUBUUC $.

    ${
      efgrelexlem.1 $e |- L = { <. i , j >. | E. c e. ( `' S " { i } )
        E. d e. ( `' S " { j } ) ( c ` 0 ) = ( d ` 0 ) } $.
      $( If two words ` A , B ` are related under the free group equivalence,
         then there exist two extension sequences ` a , b ` such that ` a `
         ends at ` A ` , ` b ` ends at ` B ` , and ` a ` and ` B ` have the
         same starting point.  (Contributed by Mario Carneiro, 1-Oct-2015.) $)
      efgrelexlema $p |- ( A L B <-> E. a e. ( `' S " { A } )
        E. b e. ( `' S " { B } ) ( a ` 0 ) = ( b ` 0 ) ) $=
        ( wbr cvv wcel wa cc0 cv cfv wceq ccnv csn cima wrex bropaex12 c0 snprc
        wn imaeq2 sylbi ima0 syl6eq nsyl2 anim12i rexlimivv fveq1 eqeq1d eqeq2d
        n0i a1d cbvrex2v sneq imaeq2d rexeqdv syl5bb rexbidv brabg pm5.21nii )
        GHSUMGUNUOZHUNUOZUPZUQUBURZUSZUQUCURZUSZUTZUCKVAZHVBZVCZVDZUBWQGVBZVCZV
        DZUQUDURZUSZUQUEURZUSZUTZUEWQNURZVBZVCZVDUDWQMURZVBZVCZVDZMNGHSULVEWPWK
        UBUCXBWSWLXBUOZWNWSUOZUPWKWPXPWIXQWJXPXBVFUTWIXBWLVSWIVHZXBWQVFVCZVFXRX
        AVFUTXBXSUTGVGXAVFWQVIVJWQVKZVLVMXQWSVFUTWJWSWNVSWJVHZWSXSVFYAWRVFUTWSX
        SUTHVGWRVFWQVIVJXTVLVMVNVTVOXOWPUCXKVDZUBXBVDZXCMNGHUNUNSXOYBUBXNVDXLGU
        TZYCXHWPWMXGUTUDUEUBUCXNXKXDWLUTXEWMXGUQXDWLVPVQXFWNUTXGWOWMUQXFWNVPVRW
        AYDYBUBXNXBYDXMXAWQXLGWBWCWDWEXIHUTZYBWTUBXBYEWPUCXKWSYEXJWRWQXIHWBWCWD
        WFULWGWH $.

      $( If two words ` A , B ` are related under the free group equivalence,
         then there exist two extension sequences ` a , b ` such that ` a `
         ends at ` A ` , ` b ` ends at ` B ` , and ` a ` and ` B ` have the
         same starting point.  (Contributed by Mario Carneiro, 1-Oct-2015.) $)
      efgrelexlemb $p |- .~ C_ L $=
        ( vr va vf vg vh vb vs cv wer cfv crn cec wss wral wa cint efgval2 wcel
        cab wtru wrel cc0 wceq ccnv csn cima wrex relopabi a1i wbr simpr rexcom
        eqcom 2rexbii bitri efgrelexlema 3bitr4i sylib reeanv wi cdm wfn wb wfo
        efgsfo fofn ax-mp fniniseg eqtr3 w3a efgred eqcomd 3expa sylan2 syl2anb
        an4s eqeq2 syl5ibcom reximdv eqeq1 imbi2d syl5ibrcom rexlimdva rexlimiv
        rexbidv impd reximi sylbir sylibr adantl eqid fveq1 eqeq2d rspcev mpan2
        pm4.71i bitr3i sylanbrc co syl2anc cword c0 c1 chash cxp syl syl3anc ex
        cfzo vex cvv cid rexbii2 forn eleq2i fvelrnb 3bitr4ri iserd trud foelrn
        simpl sylancr simprl simprr cs1 cconcat simplr fveq2d rneqd efgsp1 cdif
        eleqtrd cmin efgsdm simp1bi ad2antrl eldifad cfz c2o cotp csplice cmpt2
        wf cs2 efgtf simprd frn sselda adantr efgsval2 s1cld cn eldifsn lennncl
        wne sylbi lbfzo0 ccatval1 jca reximdv2 mpd elec ssrdv rgen fvex eqeltri
        erex ereq1 eceq2 sseq2d ralbidv anbi12d elab mpbir2an intss1 eqsstri
        mp2 ) HSUIUPZUQZUJUPZJURZUSZUXHUXFUTZVAZUJSVBZVCZUIVGZVDZQUJBCDEHJOPRSU
        IUBUCUDUEVEQUXOVFZUXPQVAUXQSQUQZUXJUXHQUTZVAZUJSVBZUXRVHUKULUMSQQVIVHVJ
        TUPURVJUAUPURVKUAIVLZLUPVMVNVOTUYBKUPZVMVNVOKLQUHVPVQVHUKUPZULUPZQVRZVC
        UYFUYEUYDQVRZVHUYFVSVJUXHURZVJUNUPZURZVKZUNUYBUYEVMVNZVOZUJUYBUYDVMVNZV
        OZUYJUYHVKZUJUYNVOUNUYLVOZUYFUYGUYOUYPUNUYLVOUJUYNVOUYQUYKUYPUJUNUYNUYL
        UYHUYJWAWBUYPUJUNUYNUYLVTWCABCDEFUYDUYEGHIJKLMNOPQRSUJUNTUAUBUCUDUEUFUG
        UHWDZABCDEFUYEUYDGHIJKLMNOPQRSUNUJTUAUBUCUDUEUFUGUHWDWEWFUYFUYEUMUPZQVR
        ZVCZUYDUYSQVRZVHVUAUYHVJUOUPZURZVKZUOUYBUYSVMVNZVOZUJUYNVOZVUBUYFUYOVJU
        XFURZVUDVKZUOVUFVOZUIUYLVOZVUHUYTUYRABCDEFUYEUYSGHIJKLMNOPQRSUIUOTUAUBU
        CUDUEUFUGUHWDUYOVULVCUYMVUKVCZUIUYLVOZUJUYNVOVUHUYMVUKUJUIUYNUYLWGVUNVU
        GUJUYNVUMVUGUIUYLUXFUYLVFZUYMVUKVUGVUOUYKVUKVUGWHZUNUYLVUOUYIUYLVFZVCZV
        UPUYKVUKUYJVUDVKZUOVUFVOZWHVURVUJVUSUOVUFVURUYJVUIVKZVUJVUSVUOUXFIWIZVF
        ZUXFIURZUYEVKZVCZUYIVVBVFZUYIIURZUYEVKZVCZVVAVUQIVVBWJZVUOVVFWKVVBSIWLZ
        VVKABCDEFGHIJMNOPRSUBUCUDUEUFUGWMZVVBSIWNWOZVVBUYEUXFIWPWOVVKVUQVVJWKVV
        NVVBUYEUYIIWPWOVVCVVGVVEVVIVVAVVEVVIVCVVCVVGVCVVDVVHVKZVVAVVDVVHUYEWQVV
        CVVGVVOVVAVVCVVGVVOWRVUIUYJABCDEFUXFUYIGHIJMNOPRSUBUCUDUEUFUGWSWTXAXBXD
        XCVUIVUDUYJXEXFXGUYKVUGVUTVUKUYKVUEVUSUOVUFUYHUYJVUDXHXMXIXJXKXNXLXOXPX
        CABCDEFUYDUYSGHIJKLMNOPQRSUJUOTUAUBUCUDUEUFUGUHWDXQXRUYDSVFZUYDUYDQVRZW
        KVHUYKUNUYNVOZUJUYNVOUXHIURUYDVKZUJVVBVOZVVQVVPVVRVVSUJUYNVVBUXHUYNVFZV
        VRVCVWAUXHVVBVFVVSVCZVWAVVRVWAUYHUYHVKZVVRUYHXSUYKVWCUNUXHUYNUYIUXHVKUY
        JUYHUYHVJUYIUXHXTYAYBYCYDVVKVWAVWBWKVVNVVBUYDUXHIWPWOYEUUAABCDEFUYDUYDG
        HIJKLMNOPQRSUJUNTUAUBUCUDUEUFUGUHWDVVPUYDIUSZVFZVVTVWDSUYDVVLVWDSVKVVMV
        VBSIUUBWOUUCVVKVWEVVTWKVVNUJVVBUYDIUUDWOYEUUEVQUUFUUGZUXTUJSUXHSVFZUNUX
        JUXSVWGUYIUXJVFZUYIUXSVFZVWGVWHVCZUXHUYIQVRZVWIVWJVUJUOUYBUYIVMVNZVOZUI
        UYBUXHVMVNZVOZVWKVWJUXHVVDVKZUIVVBVOZVWOVWJVVLVWGVWQVVMVWGVWHUUIUIVVBSU
        XHIUUHUUJVWJVWPVWMUIVVBVWNVWJVVCVWPVCZUXFVWNVFZVWMVCVWJVWRVCZVWSVWMVWTV
        VCVVDUXHVKZVWSVWJVVCVWPUUKZVWTUXHVVDVWJVVCVWPUULZWTVVKVWSVVCVXAVCWKVVNV
        VBUXHUXFIWPWOYFVWTUXFUYIUUMZUUNYGZVWLVFZVUIVJVXEURZVKZVWMVWTVXEVVBVFZVX
        EIURUYIVKZVXFVWTVVCUYIVVDJURZUSZVFVXIVXBVWTUYIUXJVXLVWGVWHVWRUUOVWTUXIV
        XKVWTUXHVVDJVXCUUPUUQUUTABCDEFUYIGHIJMNOUXFPRSUBUCUDUEUFUGUURYHZVWTUXFS
        YIZVFZUYISVFZVXIVXJVWTUXFVXNYJVMZVVCUXFVXNVXQUUSVFZVWJVWPVVCVXRVUIGVFUY
        CUXFURUYCYKUVAYGUXFURJURUSVFKYKUXFYLURZYQYGVBABCDEFGHIJKMNOUXFPRSUBUCUD
        UEUFUGUVBUVCUVDZUVEZVWJVXPVWRVWGUXJSUYIVWGVJUXHYLURUVFYGZPUVGYMZYMZSUXI
        UVKZUXJSVAVWGUXIUKULVYBVYCUXHUYDUYDUYEUYERURUVLUVHUVIYGUVJVKVYEBCDEHJOP
        RSUXHUKULUBUCUDUEUVMUVNVYDSUXIUVOYNUVPUVQZVXMABCDEFUXFUYIGHIJMNOPRSUBUC
        UDUEUFUGUVRYOVVKVXFVXIVXJVCWKVVNVVBUYIVXEIWPWOYFVWTVXGVUIVWTVXOVXDVXNVF
        VJVJVXSYQYGVFZVXGVUIVKVYAVWTUYISVYFUVSVWTVXSUVTVFZVYGVWTVXRVYHVXTVXRVXO
        UXFYJUWCVCVYHUXFVXNYJUWASUXFUWBUWDYNVXSUWEXQSUXFVXDVJUWFYOWTVUJVXHUOVXE
        VWLVUCVXEVKVUDVXGVUIVJVUCVXEXTYAYBYHUWGYPUWHUWIABCDEFUXHUYIGHIJKLMNOPQR
        SUIUOTUAUBUCUDUEUFUGUHWDXQUYIUXHQUNYRUJYRUWJXQYPUWKUWLUXNUXRUYAVCUIQUXR
        SYSVFQYSVFVWFSVYCYIZYTURYSUBVYIYTUWMUWNSQYSUWOUXEUXFQVKZUXGUXRUXMUYASUX
        FQUWPVYJUXLUXTUJSVYJUXKUXSUXJUXFQUXHUWQUWRUWSUWTUXAUXBQUXOUXCWOUXD $.
    $}

    $( If two words ` A , B ` are related under the free group equivalence,
       then there exist two extension sequences ` a , b ` such that ` a ` ends
       at ` A ` , ` b ` ends at ` B ` , and ` a ` and ` B ` have the same
       starting point.  (Contributed by Mario Carneiro, 1-Oct-2015.) $)
    efgrelex $p |- ( A .~ B -> E. a e. ( `' S " { A } )
        E. b e. ( `' S " { B } ) ( a ` 0 ) = ( b ` 0 ) ) $=
      ( vc vd vj vi wbr cc0 cfv wceq ccnv csn cima wrex copab eqid efgrelexlemb
      cv ssbri efgrelexlema sylib ) GHJUKGHULUGVBUMULUHVBUMUNUHKUOZUIVBUPUQURUG
      VFUJVBUPUQURUJUIUSZUKULSVBUMULTVBUMUNTVFHUPUQURSVFGUPUQURJVGGHABCDEFIJKLU
      JUIMNOPVGQRUGUHUAUBUCUDUEUFVGUTZVAVCABCDEFGHIJKLUJUIMNOPVGQRSTUGUHUAUBUCU
      DUEUFVHVDVE $.

    $( There is a unique reduced word equivalent to a given word.  (Contributed
       by Mario Carneiro, 1-Oct-2015.) $)
    efgredeu $p |- ( A e. W -> E! d e. D d .~ A ) $=
      ( vc va vi vb wcel cv wbr wrex wa wceq wi wral wreu cfv cdm efgsfo foelrn
      wfo mpan cc0 cword c0 csn cdif c1 cmin co crn chash efgsdm simp2bi adantl
      efgsrel breq1 rspcev syl2anc breq2 rexbidv syl5ibrcom rexlimdva mpd efger
      cfzo wer a1i simprl simprr ertr4d ccnv cima efgrelex wfn wb fofn fniniseg
      mp2b simplbi ad2antrl efgsval simprbi simpllr simpld eqeltrd efgs1b mpbid
      syl oveq1d 1m1e0 syl6eq fveq2d 3eqtr3rd ad2antll simprd biimpd rexlimdvva
      eqeq12d syl5 ex ralrimivva reu4 sylanbrc ) GQUIZRUJZGIUKZRHULZYHUEUJZGIUK
      ZUMZYGYJUNZUOZUEHUPRHUPYHRHUQYFGUFUJZJURZUNZUFJUSZULZYIYRQJVBZYFYSABCDEFH
      IJKLMNOPQSTUAUBUCUDUTZUFYRQGJVAVCYFYQYIUFYRYFYOYRUIZUMZYIYQYGYPIUKZRHULZU
      UCVDYOURZHUIZUUFYPIUKZUUEUUBUUGYFUUBYOQVEVFVGVHUIUUGUGUJZYOURUUIVIVJVKYOU
      RKURVLUIUGVIYOVMURZWGVKUPABCDEFHIJKUGLMNYOOPQSTUAUBUCUDVNVOVPUUBUUHYFABCD
      EFHIJKLMNYOOPQSTUAUBUCUDVQVPUUDUUHRUUFHYGUUFYPIVRVSVTYQYHUUDRHGYPYGIWAWBW
      CWDWEYFYNRUEHHYFYGHUIZYJHUIZUMZUMZYLYMUUNYLUMZYGYJIUKZYMUUOYGGYJIQQIWHUUO
      IOQSTWFWIUUNYHYKWJUUNYHYKWKWLUUPUUFVDUHUJZURZUNZUHJWMZYJVGWNZULUFUUTYGVGW
      NZULUUOYMABCDEFYGYJHIJKLMNOPQUFUHSTUAUBUCUDWOUUOUUSYMUFUHUVBUVAUUOYOUVBUI
      ZUUQUVAUIZUMZUMZUUSYMUVFUUFYGUURYJUVFYPUUJVIVJVKZYOURZYGUUFUVFUUBYPUVHUNU
      VCUUBUUOUVDUVCUUBYPYGUNZYTJYRWPZUVCUUBUVIUMWQUUAYRQJWRZYRYGYOJWSWTZXAXBZA
      BCDEFHIJKLMNYOOPQSTUAUBUCUDXCXJUVCUVIUUOUVDUVCUUBUVIUVLXDXBZUVFUVGVDYOUVF
      UVGVIVIVJVKZVDUVFUUJVIVIVJUVFYPHUIZUUJVIUNZUVFYPYGHUVNUVFUUKUULYFUUMYLUVE
      XEZXFXGUVFUUBUVPUVQWQUVMABCDEFYOHIJKLMNOPQSTUAUBUCUDXHXJXIXKXLXMXNXOUVFUU
      QJURZUUQVMURZVIVJVKZUUQURZYJUURUVFUUQYRUIZUVSUWBUNUVDUWCUUOUVCUVDUWCUVSYJ
      UNZYTUVJUVDUWCUWDUMWQUUAUVKYRYJUUQJWSWTZXAXPZABCDEFHIJKLMNUUQOPQSTUAUBUCU
      DXCXJUVDUWDUUOUVCUVDUWCUWDUWEXDXPZUVFUWAVDUUQUVFUWAUVOVDUVFUVTVIVIVJUVFUV
      SHUIZUVTVIUNZUVFUVSYJHUWGUVFUUKUULUVRXQXGUVFUWCUWHUWIWQUWFABCDEFUUQHIJKLM
      NOPQSTUAUBUCUDXHXJXIXKXLXMXNXOXTXRXSYAWEYBYCYHYKRUEHYGYJGIVRYDYE $.

    $( Two extension sequences have related endpoints iff they have the same
       base.  (Contributed by Mario Carneiro, 1-Oct-2015.) $)
    efgred2 $p |- ( ( A e. dom S /\ B e. dom S ) ->
      ( ( S ` A ) .~ ( S ` B ) <-> ( A ` 0 ) = ( B ` 0 ) ) ) $=
      ( vd vi cdm wcel wa cfv wbr cc0 wceq cv wrmo wreu wfo wf efgsfo fof ax-mp
      ffvelrni ad2antlr efgredeu reurmo 3syl cword c0 csn cdif c1 cmin co chash
      crn cfzo wral efgsdm simp2bi ad2antrr wer efger efgsrel simpr ertrd breq1
      a1i rmoi syl122anc eqbrtrd ertr3d impbida ) GKUGZUHZHWMUHZUIZGKUJZHKUJZJU
      KZULGUJZULHUJZUMZWPWSUIZUEUNZWRJUKZUEIUOZWTIUHZWTWRJUKZXAIUHZXAWRJUKZXBXC
      WRRUHZXEUEIUPXFWOXKWNWSWMRHKWMRKUQWMRKURABCDEFIJKLMNOPQRSTUAUBUCUDUSWMRKU
      TVAVBVCABCDEFWRIJKLMNOPQRUESTUAUBUCUDVDXEUEIVEVFWNXGWOWSWNGRVGVHVIVJZUHXG
      UFUNZGUJXMVKVLVMZGUJLUJVOUHUFVKGVNUJVPVMVQABCDEFIJKLUFMNOGPQRSTUAUBUCUDVR
      VSVTXCWTWQWRJRRJWAZXCJPRSTWBZWGWNWTWQJUKZWOWSABCDEFIJKLMNOGPQRSTUAUBUCUDW
      CZVTWPWSWDWEWOXIWNWSWOHXLUHXIXMHUJXNHUJLUJVOUHUFVKHVNUJVPVMVQABCDEFIJKLUF
      MNOHPQRSTUAUBUCUDVRVSVCWOXJWNWSABCDEFIJKLMNOHPQRSTUAUBUCUDWCZVCXEXHXJUEIW
      TXAXDWTWRJWFXDXAWRJWFWHWIWPXBUIZWQWTWRJRXOXTXPWGWNXQWOXBXRVTXTWTXAWRJWPXB
      WDWOXJWNXBXSVCWJWKWL $.

    ${
      $d c L $.
      efgcpbllem.1 $e |- L = { <. i , j >. | ( { i , j } C_ W /\
        ( ( A ++ i ) ++ B ) .~ ( ( A ++ j ) ++ B ) ) } $.
      $( Lemma for ~ efgrelex .  Define an auxiliary equivalence relation ` L `
         such that ` A L B ` if there are sequences from ` A ` to ` B ` passing
         through the same reduced word.  (Contributed by Mario Carneiro,
         1-Oct-2015.) $)
      efgcpbllema $p |- ( X L Y <-> ( X e. W /\ Y e. W /\
        ( ( A ++ X ) ++ B ) .~ ( ( A ++ Y ) ++ B ) ) ) $=
        ( wbr wcel wa cconcat co w3a cv wceq oveq2 oveq1d breqan12d cpr wss vex
        copab prss anbi1i opabbii eqtr4i brab2a df-3an bitr4i ) UBUCSUKUBUAULZU
        CUAULZUMGUBUNUOZHUNUOZGUCUNUOZHUNUOZJUKZUMVMVNVSUPGMUQZUNUOZHUNUOZGNUQZ
        UNUOZHUNUOZJUKZVSMNUBUCUAUASVTUBURZWCUCURZWBVPWEVRJWGWAVOHUNVTUBGUNUSUT
        WHWDVQHUNWCUCGUNUSUTVASVTWCVBUAVCZWFUMZMNVEVTUAULWCUAULUMZWFUMZMNVEUJWL
        WJMNWKWIWFVTWCUAMVDNVDVFVGVHVIVJVMVNVSVKVL $.

      $( Lemma for ~ efgrelex .  Show that ` L ` is an equivalence relation
         containing all direct extensions of a word, so is closed under
         ` .~ ` .  (Contributed by Mario Carneiro, 1-Oct-2015.) $)
      efgcpbllemb $p |- ( ( A e. W /\ B e. W ) -> .~ C_ L ) $=
        ( vr vf vg vh va vc vu vb wcel wa wer cfv crn cec wss wral cint efgval2
        cv cab wrel cpr cconcat co wbr relopabi a1i efgcpbllema simp2bi simp1bi
        efger simp3bi ersym syl3anbrc ad2antrl ad2antll ertrd c2o cxp cword cid
        adantl fviss eqsstri simpll sseldi simpr ccatcl syl2anc simplr wceq cvv
        simprd wrex cc0 chash cfz wf wfn wb cs2 cotp csplice cmpt2 efgtf adantr
        ffn 3syl cop csubstr swrdcl syl ccatass syl3anc oveq1d efgtval syl13anc
        caddc eqtrd oveq2d cuz cn0 lencl nn0uz syl6eleq uzaddcl ccatlen addcomd
        nn0cnd eqeltrd c0 vex efgrcl ad2antrr eleqtrrd erref pm4.71d w3a df-3an
        ex anidm anbi1i 3bitri iserd ovelrn ad2antlr simprl simprr fovrnd efgmf
        syl6bbr ffvelrni s2cld splval 3eqtr4rd elfznn0 cz elfzuz3 nn0zd eluzadd
        fveq2d 3eltr3d elfzuzb sylanbrc ccatrid eluzfz1 eluzfz2 ccatswrd swrdid
        3eqtr2rd swrd0len eqtr2d hash0 oveq2i nn0addcld addid1d syl5req splval2
        wrd0 3eqtr4d fnovrn efgi2 elec breq2 syl5bb syl5ibrcom rexlimdvva ssrdv
        sylbid ralrimiva fvex eqeltri mpisyl ereq1 eceq2 sseq2d ralbidv anbi12d
        erex elabg mpbir2and intss1 syl5eqss ) GUAUQZHUAUQZURZJUAUIVGZUSZUJVGZL
[encoded data, 4800 characters]
        UYAUYIUJUAWVPUXTUYHUXSUXOSUXQUXCUXDUXEUXFUXHXTUXISUYDUXJXTUXK $.
    $}

    $( Two extension sequences have related endpoints iff they have the same
       base.  (Contributed by Mario Carneiro, 1-Oct-2015.) $)
    efgcpbl $p |- ( ( A e. W /\ B e. W /\ X .~ Y ) ->
      ( ( A ++ X ) ++ B ) .~ ( ( A ++ Y ) ++ B ) ) $=
      ( vi vj wcel wbr w3a cv cpr wss cconcat co copab efgcpbllemb ssbrd 3impia
      wa eqid efgcpbllema simp3bi syl ) GRUIZHRUIZSTJUJZUKSTUGULZUHULZUMRUNGVIU
      OUPHUOUPGVJUOUPHUOUPJUJVAUGUHUQZUJZGSUOUPHUOUPGTUOUPHUOUPJUJZVFVGVHVLVFVG
      VAJVKSTABCDEFGHIJKLUGUHMNOPVKQRUAUBUCUDUEUFVKVBZURUSUTVLSRUITRUIVMABCDEFG
      HIJKLUGUHMNOPVKQRSTUAUBUCUDUEUFVNVCVDVE $.

    $( Two extension sequences have related endpoints iff they have the same
       base.  (Contributed by Mario Carneiro, 1-Oct-2015.) $)
    efgcpbl2 $p |- ( ( A .~ X /\ B .~ Y ) ->
                     ( A ++ B ) .~ ( X ++ Y ) ) $=
      ( wbr wa cconcat co wer efger a1i wcel simpl ercl c2o cxp cword wrd0 wceq
      c0 cvv efgrcl syl simprd syl5eleqr efgcpbl syl3anc eleqtrd ccatcl syl2anc
      simpr ccatrid ercl2 3brtr3d ccatlid oveq1d ertrd ) GSJUGZHTJUGZUHZGHUIUJZ
      GTUIUJZSTUIUJZJRRJUKWBJPRUAUBULUMZWBWCVBUIUJZWDVBUIUJZWCWDJWBGRUNZVBRUNZW
      AWGWHJUGWBGSJRWFVTWAUOZUPZWBVBPUQURZUSZRWMUTWBPVCUNZRWNVAZWBWIWOWPUHWLGPR
      UAVDVEVFZVGZVTWAVMZABCDEFGVBIJKLMNOPQRHTUAUBUCUDUEUFVHVIWBWCWNUNZWGWCVAWB
      GWNUNZHWNUNWTWBGRWNWLWQVJZWBHRWNWBHTJRWFWSUPWQVJWMGHVKVLWMWCVNVEWBWDWNUNZ
      WHWDVAWBXATWNUNXCXBWBTRWNWBHTJRWFWSVOZWQVJWMGTVKVLWMWDVNVEVPWBVBGUIUJZTUI
      UJZVBSUIUJZTUIUJZWDWEJWBWJTRUNVTXFXHJUGWRXDWKABCDEFVBTIJKLMNOPQRGSUAUBUCU
      DUEUFVHVIWBXEGTUIWBXAXEGVAXBWMGVQVEVRWBXGSTUIWBSWNUNXGSVAWBSRWNWBGSJRWFWK
      VOWQVJWMSVQVEVRVPVS $.
  $}

  ${
    $d i k m n t v w x y z I $.  $d i M $.  $d i m t x y z .~ $.
    frgpval.m $e |- G = ( freeGrp ` I ) $.
    frgpval.b $e |- M = ( freeMnd ` ( I X. 2o ) ) $.
    frgpval.r $e |- .~ = ( ~FG ` I ) $.
    $( Value of the free group construction.  (Contributed by Mario Carneiro,
       1-Oct-2015.) $)
    frgpval $p |- ( I e. V -> G = ( M /s .~ ) ) $=
      ( vi wcel cfrgp cfv cqus co cvv wceq c2o cxp cfrmd cefg elex xpeq1 fveq2d
      cv syl6eqr fveq2 oveq12d df-frgp ovex fvmpt syl syl5eq ) CEJZBCKLZDAMNZFU
      MCOJUNUOPCEUAICIUDZQRZSLZUPTLZMNUOOKUPCPZURDUSAMUTURCQRZSLDUTUQVASUPCQUBU
      CGUEUTUSCTLAUPCTUFHUEUGIUHDAMUIUJUKUL $.

    frgpcpbl.p $e |- .+ = ( +g ` M ) $.
    $( Compatibility of the group operation with the free group equivalence
       relation.  (Contributed by Mario Carneiro, 1-Oct-2015.)  (Revised by
       Mario Carneiro, 27-Feb-2016.) $)
    frgpcpbl $p |- ( ( A .~ C /\ B .~ D ) -> ( A .+ B ) .~ ( C .+ D ) ) $=
      ( co c2o cfv cv wcel eqid wceq vx vy vz vw vv vt vn vm vk wbr cconcat cxp
      cword cid cc0 chash cfz c1o cdif cop cmpt2 cs2 cotp csplice cmpt crn ciun
      wa c1 cmin cfzo wral c0 csn crab efgcpbl2 cbs wer efger simpl ercl efgrcl
      a1i cvv syl simprd con0 simpld xpexg sylancl frmdbas eqtr4d eleqtrd simpr
      2on frmdadd syl2anc ercl2 3brtr4d ) ACFUJZBDFUJZVHZABUKNZCDUKNZABENZCDENZ
      FUAUBUCUDUEUFABHOULZUMZUNPZUAXIUAQUEXIUGUDUOUEQZUPPUQNXGXJUGQZXKUDQZXLUBU
      CHOUBQURUCQUSUTVAZPVBVCVDNVAVEZPVFVGUSZFUHUOUFQZPXORUIQZXPPXQVIVJNXPPXNPV
      FRUIVIXPUPPVKNVLVHUFXIUMVMVNUSVOUHQZUPPVIVJNXRPVEZXNUIUHUGHXMXICDXISZLXMS
      XNSXOSXSSVPXBAIVQPZRBYARXEXCTXBAXIYAXBACFXIXIFVRXBFHXIXTLVSWCZWTXAVTZWAZX
      BXIXHYAXBHWDRZXIXHTZXBAXIRYEYFVHYDAHXIXTWBWEZWFXBXGWDRZYAXHTXBYEOWGRYHXBY
      EYFYGWHWOHOWDWGWIWJYAXGIWDKYASZWKWEWLZWMXBBXIYAXBBDFXIYBWTXAWNZWAYJWMYAEX
      GIABKYIMWPWQXBCYARDYARXFXDTXBCXIYAXBACFXIYBYCWRYJWMXBDXIYAXBBDFXIYBYKWRYJ
      WMYAEXGICDKYIMWPWQWS $.
  $}

  ${
    $d a b c d x y z G $.  $d a b c d n v w x y z I $.  $d a b c d x y z .~ $.
    $d a b c d x y z V $.
    frgp0.m $e |- G = ( freeGrp ` I ) $.
    frgp0.r $e |- .~ = ( ~FG ` I ) $.
    $( The free group is a group.  (Contributed by Mario Carneiro, 1-Oct-2015.)
       (Revised by Mario Carneiro, 27-Feb-2016.) $)
    frgp0 $p |- ( I e. V -> ( G e. Grp /\ [ (/) ] .~ = ( 0g ` G ) ) ) $=
      ( vy vz wcel c2o cfv cv cvv c0 eqid wceq syl wbr co adantr vx vd vb va vc
      vw vv cxp cfrmd cplusg c1o cdif cop cmpt2 creverse ccom cword frgpval cbs
      vn con0 2on xpexg mpan2 frmdbas eqcomd eqidd cid wer efger wb wrdexg 3syl
      fvi ereq2 mpbii fvexd wa frgpcpbl a1i cmnd frmdmnd 3ad2ant1 simp2 eleqtrd
      wi w3a simp3 mndcl syl3anc eleqtrrd 3adant3r3 simpr3 erref mndass breqtrd
      syl13anc wrd0 cconcat syl5eleq eleq2d biimpa frmdadd syl2anc adantl eqtrd
      ccatlid simpr eqbrtrd wf revcl efgmf wrdco biimpar cc0 chash cfz cs2 cotp
      csplice cmpt efginvrel1 qusgrp2 ) CDIZUAGHCJUHZUIKZUJKZAYFBGHCJGLZUKHLZUL
      UMUNZUALZUOKZUPZYEUQZMNUBUCUDUEABCYFDEYFOZFURYDYFUSKZYNYDYEMIZYPYNPYDJVAI
      YQVBCJDVAVCVDZYPYEYFMYOYPOZVEQVFZYDYGVGYDYNVHKZAVIZYNAVIZACUUAUUAOZFVJYDU
      UAYNPZUUBUUCVKYDYQYNMIUUEYRYEMVLYNMVNVMZUUAYNAVOQVPZYDYEUIVQUDLZUCLZARUEL
      ZUBLZARVRUUHUUJYGSUUIUUKYGSARWFYDUUHUUJUUIUUKYGABCYFEYOFYGOZVSVTYDYKYNIZY
      HYNIZWGZYKYHYGSZYPYNUUOYFWAIZYKYPIZYHYPIZUUPYPIZYDUUMUUQUUNYDYQUUQYRYEYFM
      YOWBQZWCUUOYKYNYPYDUUMUUNWDYDUUMYNYPPZUUNYTWCZWEZUUOYHYNYPYDUUMUUNWHUVCWE
      ZYPYGYFYKYHYSUULWIWJZUVCWKYDUUMUUNYIYNIZWGZVRZUUPYIYGSZUVJYKYHYIYGSYGSZAU
      VIUVJAYNYDUUCUVHUUGTUVIUVJYPYNUVIUUQUUTYIYPIZUVJYPIYDUUQUVHUVATZYDUUMUUNU
      UTUVGUVFWLUVIYIYNYPYDUUMUUNUVGWMYDUVBUVHYTTZWEZYPYGYFUUPYIYSUULWIWJUVNWKW
      NUVIUUQUURUUSUVLUVJUVKPUVMYDUUMUUNUURUVGUVDWLYDUUMUUNUUSUVGUVEWLUVOYPYGYF
      YKYHYIYSUULWOWQWPNYNIYDYEWRZVTYDUUMVRZNYKYGSZYKYKAUVQUVRNYKWSSZYKUVQNYPIZ
      UURUVRUVSPYDUVTUUMYDNYNYPUVPYTWTTYDUUMUURYDYNYPYKYTXAXBZYPYGYEYFNYKYOYSUU
      LXCXDUUMUVSYKPYDYEYKXGXEXFUVQYKAYNYDUUCUUMUUGTYDUUMXHWNXIUVQYLYNIZYEYEYJX
      JZYMYNIUUMUWBYDYEYKXKXEUWCUVQGHCYJYJOZXLVTYEYEYJYLXMXDZUVQYMYKYGSZYMYKWSS
      ZNAUVQYMYPIUURUWFUWGPUVQYMYNYPUWEYDUVBUUMYTTWEUWAYPYGYEYFYMYKYOYSUULXCXDU
      VQYKUUAIZUWGNARYDUWHUUMYDUUAYNYKUUFXAXNGHUFUGYKAUGUUAUTUFXOUGLZXPKXQSYEUW
      IUTLZUWJUFLZUWKYJKXRXSXTSUNYAZUTCYJUUAUUDFUWDUWLOYBQXIYC $.

    frgpeccl.w $e |- W = ( _I ` Word ( I X. 2o ) ) $.
    frgpeccl.b $e |- B = ( Base ` G ) $.
    $( Closure of the quotient map in a free group.  (Contributed by Mario
       Carneiro, 1-Oct-2015.) $)
    frgpeccl $p |- ( X e. W -> [ X ] .~ e. B ) $=
      ( wcel cefg cfv cvv cbs c2o cfrmd wceq eqid syl cec cqs fvex eqeltri cqus
      ecelqsi cxp cword efgrcl simpld frgpval simprd con0 xpexg sylancl frmdbas
      co 2on eqtr4d a1i fvexd qusbas syl6eqr eleqtrd ) FEKZFBUAEBUBZAEFBBDLMNHD
      LUCUDZUFVEVFCOMAVEBDPUGZQMZCENNVEDNKZCVIBUEUQRVEVJEVHUHZRZFDEIUIZUJZBCDVI
      NGVISZHUKTVEEVKVIOMZVEVJVLVMULVEVHNKZVPVKRVEVJPUMKVQVNURDPNUMUNUOVPVHVINV
      OVPSUPTUSBNKVEVGUTVEVHQVAVBJVCVD $.
  $}

  ${
    frgpgrp.g $e |- G = ( freeGrp ` I ) $.
    $( The free group is a group.  (Contributed by Mario Carneiro,
       1-Oct-2015.) $)
    frgpgrp $p |- ( I e. V -> G e. Grp ) $=
      ( wcel cgrp c0 cefg cfv cec c0g wceq eqid frgp0 simpld ) BCEAFEGBHIZJAKIL
      PABCDPMNO $.
  $}

  ${
    $d a b c d A $.  $d b d n v w y z I $.  $d n v w M $.  $d a b c d y z .~ $.
    $d a b c d B $.  $d a b c d .+ $.  $d a b c d n v w y z W $.
    frgpadd.w $e |- W = ( _I ` Word ( I X. 2o ) ) $.
    frgpadd.g $e |- G = ( freeGrp ` I ) $.
    frgpadd.r $e |- .~ = ( ~FG ` I ) $.
    ${
      frgpadd.n $e |- .+ = ( +g ` G ) $.
      $( Addition in the free group is given by concatenation.  (Contributed by
         Mario Carneiro, 1-Oct-2015.) $)
      frgpadd $p |- ( ( A e. W /\ B e. W ) ->
        ( [ A ] .~ .+ [ B ] .~ ) = [ ( A ++ B ) ] .~ ) $=
        ( wcel wa cec co c2o wceq cvv cv eleqtrd vd vb va cxp cfrmd cfv cconcat
        vc cplusg simpl simpr cmnd cqus cword efgrcl adantr simpld eqid frgpval
        syl cbs simprd con0 2on xpexg sylancl frmdbas wer efger a1i frmdmnd wbr
        eqtr4d frgpcpbl simprl simprr mndcl syl3anc eleqtrrd qusaddval mpd3an23
        wi frmdadd syl2anc eceq1d eqtrd ) AGLZBGLZMZADNBDNCOZABFPUDZUEUFZUIUFZO
        ZDNZABUGOZDNWIWGWHWJWOQWGWHUJZWGWHUKZWIDWLCWMEGABULUAUBUCUHWIFRLZEWLDUM
        OQWIWSGWKUNZQZWGWSXAMWHAFGHUOUPZUQZDEFWLRIWLURZJUSUTWIGWTWLVAUFZWIWSXAX
        BVBWIWKRLZXEWTQWIWSPVCLXFXCVDFPRVCVEVFZXEWKWLRXDXEURZVGUTVMZGDVHWIDFGHJ
        VIVJWIXFWLULLZXGWKWLRXDVKUTZUCSZUBSZDVLUHSZUASZDVLMXLXNWMOXMXOWMOZDVLWB
        WIXLXNXMXOWMDEFWLIXDJWMURZVNVJWIXMGLZXOGLZMZMZXPXEGYAXJXMXELXOXELXPXELW
        IXJXTXKUPYAXMGXEWIXRXSVOWIGXEQXTXIUPZTYAXOGXEWIXRXSVPYBTXEWMWLXMXOXHXQV
        QVRYBVSXQKVTWAWIWNWPDWIAXELBXELWNWPQWIAGXEWQXITWIBGXEWRXITXEWMWKWLABXDX
        HXQWCWDWEWF $.
    $}

    frgpinv.n $e |- N = ( invg ` G ) $.
    frgpinv.m $e |- M = ( y e. I , z e. 2o |-> <. y , ( 1o \ z ) >. ) $.
    $( The inverse of an element of the free group.  (Contributed by Mario
       Carneiro, 2-Oct-2015.) $)
    frgpinv $p |- ( A e. W ->
      ( N ` [ A ] .~ ) = [ ( M o. ( reverse ` A ) ) ] .~ ) $=
      ( wcel cec cfv wceq co eqid vw vv vn creverse ccom cplusg c0g cconcat c2o
      c0 cxp cword wf cid fviss eqsstri sseli revcl syl efgmf wrdco sylancl cvv
      efgrcl simprd eleqtrrd frgpadd mpdan wer efger a1i cc0 chash cfz cs2 cotp
      cv csplice cmpt2 cmpt efginvrel2 erthi cgrp wa frgp0 adantr 3eqtrd cbs wb
      simpld frgpeccl grpinvid1 syl3anc mpbird ) CIOZCDPZHQGCUDQZUEZDPZRZWPWSEU
      FQZSZEUGQZRZWOXBCWRUHSZDPZUJDPZXCWOWRIOZXBXFRWOWRFUIUKZULZIWOWQXJOZXIXIGU
      MWRXJOWOCXJOXKIXJCIXJUNQXJJXJUOUPUQXICURUSABFGNUTXIXIGWQVAVBWOFVCOZIXJRZC
      FIJVDZVEVFZCWRXADEFIJKLXATZVGVHWOXEUJDIIDVIWODFIJLVJVKABUAUBCDUBIUCUAVLUB
      VQZVMQVNSXIXQUCVQZXRUAVQZXSGQVOVPVRSVSVTZUCFGIJLNXTTWAWBWOEWCOZXGXCRZWOXL
      XMWDYAYBWDZXNXLYCXMDEFVCKLWEWFUSZVEWGWOYAWPEWHQZOWSYEOZWTXDWIWOYAYBYDWJYE
      DEFICKLJYETZWKWOXHYFXOYEDEFIWRKLJYGWKUSYEXAEHWPWSXCYGXPXCTMWLWMWN $.
  $}

  ${
    $d a b F $.  $d a b x G $.  $d a b x I $.  $d a b x V $.  $d a b x W $.
    $d a b M $.  $d x .~ $.
    frgpmhm.m $e |- M = ( freeMnd ` ( I X. 2o ) ) $.
    frgpmhm.w $e |- W = ( Base ` M ) $.
    frgpmhm.g $e |- G = ( freeGrp ` I ) $.
    frgpmhm.r $e |- .~ = ( ~FG ` I ) $.
    frgpmhm.f $e |- F = ( x e. W |-> [ x ] .~ ) $.
    $( The "natural map" from words of the free monoid to their cosets in the
       free group is a surjective monoid homomorphism.  (Contributed by Mario
       Carneiro, 2-Oct-2015.) $)
    frgpmhm $p |- ( I e. V -> F e. ( M MndHom G ) ) $=
      ( wcel wa cfv co wceq cvv syl va vb cmnd cbs wf cv cplusg wral c0 c0g w3a
      cmhm c2o cxp con0 2on xpexg mpan2 frmdmnd cgrp frgpgrp grpmnd jca cec cid
      cword frmdbas wrdexg fvi eqtr4d eleq2d biimpa eqid frgpeccl fmptd cconcat
      wer efger wb ereq2 mpbiri adantr fvex eqeltri a1i divsfval frmdadd adantl
      fveq2d oveq12d anbi12d frgpadd eqtrd 3eqtr4d ralrimivva frgp0 simprd 3jca
      frmd0 ismhm sylanbrc ) EGNZFUCNZDUCNZOHDUDPZCUEZUAUFZUBUFZFUGPZQZCPZXGCPZ
      XHCPZDUGPZQZRZUBHUHUAHUHZUICPZDUJPZRZUKCFDULQNXBXCXDXBEUMUNZSNZXCXBUMUONY
      BUPEUMGUOUQURZYAFSIUSTXBDUTNZXDDEGKVADVBTVCXBXFXQXTXBAHAUFZBVDZXECXBYEHNZ
      OYEYAVFZVEPZNZYFXENXBYGYJXBHYIYEXBYBHYIRZYCYBHYHYIHYAFSIJVGYBYHSNYIYHRYAS
      VHYHSVITVJTZVKVLXEBDEYIYEKLYIVMZXEVMZVNTMVOXBXPUAUBHHXBXGHNZXHHNZOZOZXGXH
      VPQZCPYSBVDZXKXOYRAYSBCHXBHBVQZYQXBUUAYIBVQZBEYIYMLVRXBYKUUAUUBVSYLHYIBVT
      TWAZWBZHSNZYRHFUDPSJFUDWCWDZWEZMWFYRXJYSCYQXJYSRXBHXIYAFXGXHIJXIVMZWGWHWI
      YRXOXGBVDZXHBVDZXNQZYTYRXLUUIXMUUJXNYRAXGBCHUUDUUGMWFYRAXHBCHUUDUUGMWFWJY
      RXGYINZXHYINZOZUUKYTRXBYQUUNXBYOUULYPUUMXBHYIXGYLVKXBHYIXHYLVKWKVLXGXHXNB
      DEYIYMKLXNVMZWLTWMWNWOXBXRUIBVDZXSXBAUIBCHUUCUUEXBUUFWEMWFXBYDUUPXSRBDEGK
      LWPWQWMWRUAUBHXEXIXNFDCXSUIJYNUUHUUOYAFIWSXSVMWTXA $.
  $}

  ${
    $d j A $.  $d i j x y I $.  $d i j x y .~ $.  $d j V $.  $d j X $.
    vrgpfval.r $e |- .~ = ( ~FG ` I ) $.
    vrgpfval.u $e |- U = ( varFGrp ` I ) $.
    $( The canonical injection from the generating set ` I ` to the base set of
       the free group.  (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    vrgpfval $p |- ( I e. V ->
      U = ( j e. I |-> [ <" <. j , (/) >. "> ] .~ ) ) $=
      ( vi wcel cvrgp cfv cv c0 cop cec cmpt cvv wceq cefg syl cs1 elex syl6eqr
      id fveq2 eceq2 mpteq12dv df-vrgp vex mptex fvmpt3i syl5eq ) DEIZBDJKZCDCL
      MNUAZAOZPZGUMDQIUNUQRDEUBHDCHLZUOURSKZOZPUQQJURDRZCURUTDUPVAUDVAUSARUTUPR
      VAUSDSKAURDSUEFUCUSAUOUFTUGHCUHCURUTHUIUJUKTUL $.

    $( The value of the generating elements of a free group.  (Contributed by
       Mario Carneiro, 2-Oct-2015.) $)
    vrgpval $p |- ( ( I e. V /\ A e. I ) ->
      ( U ` A ) = [ <" <. A , (/) >. "> ] .~ ) $=
      ( vj wcel cfv cv c0 cop cs1 cec cmpt vrgpfval fveq1d cvv cefg opeq1 s1eqd
      wceq eceq1d eqid fvex eqeltri ecexg ax-mp fvmpt sylan9eq ) DEIZADIACJAHDH
      KZLMZNZBOZPZJALMZNZBOZULACUQBCHDEFGQRHAUPUTDUQUMAUCZUOUSBVAUNURUMALUAUBUD
      UQUEBSIUTSIBDTJSFDTUFUGUSSBUHUIUJUK $.

    vrgpf.m $e |- G = ( freeGrp ` I ) $.
    ${
      vrgpf.x $e |- X = ( Base ` G ) $.
      $( The mapping from the index set to the generators is a function into
         the free group.  (Contributed by Mario Carneiro, 2-Oct-2015.) $)
      vrgpf $p |- ( I e. V -> U : I --> X ) $=
        ( vj wcel wf c0 c2o c1o mpan2 cvv con0 eqid cv cop cs1 cec wa cxp cword
        cmpt cid cfv cpr 0ex prid1 df2o3 eleqtrri opelxpi adantl s1cld wceq 2on
        xpexg adantr wrdexg fvi 3syl eleqtrrd frgpeccl syl fmptd vrgpfval feq1d
        mpbird ) DELZDFBMDFKDKUAZNUBZUCZAUDZUHZMVMKDVQFVRVMVNDLZUEZVPDOUFZUGZUI
        UJZLVQFLVTVPWBWCVTVOWAVSVOWALZVMVSNOLWDNNPUKONPULUMUNUOVNNDOUPQUQURVTWA
        RLZWBRLWCWBUSVMWEVSVMOSLWEUTDOESVAQVBWARVCWBRVDVEVFFACDWCVPIGWCTJVGVHVR
        TVIVMDFBVRABKDEGHVJVKVL $.
    $}

    vrgpinv.n $e |- N = ( invg ` G ) $.
    $( The inverse of a generating element is represented by ` <. A , 1 >. `
       instead of ` <. A , 0 >. ` .  (Contributed by Mario Carneiro,
       2-Oct-2015.) $)
    vrgpinv $p |- ( ( I e. V /\ A e. I ) ->
      ( N ` ( U ` A ) ) = [ <" <. A , 1o >. "> ] .~ ) $=
      ( vx vy wcel cfv c0 cop c2o c1o wceq wa cs1 cec cv cmpt2 creverse vrgpval
      cdif ccom fveq2d cxp cword cid simpr cpr 0ex prid1 df2o3 eleqtrri opelxpi
      sylancl s1cld cvv con0 simpl 2on xpexg fvi 3syl eleqtrrd eqid frgpinv syl
      wrdexg revs1 a1i coeq2d wf efgmf s1co co efgmval df-ov dif0 3eqtr3g s1eqd
      opeq2i 3eqtrd eceq1d ) EGNZAENZUAZACOZFOAPQZUBZBUCZFOZLMERLUDSMUDUHQUEZWO
      UFOZUIZBUCZASQZUBZBUCWLWMWPFABCEGHIUGUJWLWOERUKZULZUMOZNWQXATWLWOXEXFWLWN
      XDWLWKPRNZWNXDNZWJWKUNZPPSUORPSUPUQURUSZAPERUTVAZVBWLXDVCNZXEVCNXFXETWLWJ
      RVDNXLWJWKVEVFERGVDVGVAXDVCVNXEVCVHVIVJLMWOBDEWRFXFXFVKJHKWRVKZVLVMWLWTXC
      BWLWTWRWOUIZWNWROZUBZXCWLWSWOWRWSWOTWLWNVOVPVQWLXHXDXDWRVRXNXPTXKLMEWRXMV
      SXDXDWNWRVTVAWLXOXBWLAPWRWAZASPUHZQZXOXBWLWKXGXQXSTXIXJLMAPEWRXMWBVAAPWRW
      CXRSASWDWGWEWFWHWIWH $.
  $}

  ${
    $d a b g u v y z A $.  $d a c h t u E $.  $d a b c g h n r t u v x H $.
    $d u v C $.  $d y z F $.  $d a i j n t w K $.  $d a b M $.  $d a b y z N $.
    $d a c g h n t y z B $.  $d a c t u w G $.  $d a b g h i j n r u v x T $.
    $d a b g h i j n r t u w x .~ $.  $d a b c g h i j n t u w x y z ph $.
    $d a b i j n r w x y z I $.  $d w V $.  $d a b g h n r t u v w x W $.
    $d a b c n u w X $.
    frgpup.b $e |- B = ( Base ` H ) $.
    frgpup.n $e |- N = ( invg ` H ) $.
    frgpup.t $e |- T = ( y e. I , z e. 2o |->
      if ( z = (/) , ( F ` y ) , ( N ` ( F ` y ) ) ) ) $.
    frgpup.h $e |- ( ph -> H e. Grp ) $.
    frgpup.i $e |- ( ph -> I e. V ) $.
    frgpup.a $e |- ( ph -> F : I --> B ) $.
    $( Any assignment of the generators to target elements can be extended
       (uniquely) to a homomorphism from a free monoid to an arbitrary other
       monoid.  (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    frgpuptf $p |- ( ph -> T : ( I X. 2o ) --> B ) $=
      ( cv cfv wcel c2o c0 wceq cif wral cxp wf ffvelrnda adantrr cgrp grpinvcl
      wa adantr syl2anc ifcld ralrimivva fmpt2 sylib ) ACQZUAUBZBQZFRZVAIRZUCZD
      SZCTUDBHUDHTUEDEUFAVDBCHTAUTHSZURTSZUKZUKZUSVAVBDAVEVADSZVFAHDUTFPUGUHZVH
      GUISZVIVBDSAVKVGNULVJDGIVAKLUJUMUNUOBCHTVCDEMUPUQ $.

    ${
      frgpuptinv.m $e |- M = ( y e. I , z e. 2o |-> <. y , ( 1o \ z ) >. ) $.
      $( Any assignment of the generators to target elements can be extended
         (uniquely) to a homomorphism from a free monoid to an arbitrary other
         monoid.  (Contributed by Mario Carneiro, 2-Oct-2015.) $)
      frgpuptinv $p |- ( ( ph /\ A e. ( I X. 2o ) ) ->
        ( T ` ( M ` A ) ) = ( N ` ( T ` A ) ) ) $=
        ( c1o va vb c2o cxp wcel cfv wceq cv cop wrex elxp2 cdif efgmval adantl
        wa co fveq2d df-ov syl6eqr c0 wo cpr elpri df2o3 eleq2s simpr 1on elexi
        con0 prid2 eleqtrri cif wne neeq1 mpbiri ifnefalse fveq2 sylan9eqr fvex
        1n0 ovmpt2a sylancl prid1 iftrue eqtr4d difeq2 dif0 syl6eq oveq2d oveq2
        syl 0ex eqeq12d syl5ibrcom cgrp adantr ffvelrnda eqeltrd syl2anc eqtr2d
        grpinvinv difid jaod syl5 impr eqtrd rexlimdvva syl5bi imp ) ADIUCUDUEZ
        DJUFZFUFZDFUFZKUFZUGZXJDUAUHZUBUHZUIZUGZUBUCUJUAIUJAXOUAUBDIUCUKAXSXOUA
        UBIUCAXPIUEZXQUCUEZUOZUOZXOXSXPXQJUPZFUFZXPXQFUPZKUFZUGYCYEXPTXQULZFUPZ
        YGYCYEXPYHUIZFUFYIYCYDYJFYBYDYJUGABCXPXQIJSUMUNUQXPYHFURUSAXTYAYIYGUGZY
        AXQUTUGZXQTUGZVAZAXTUOZYKYNXQUTTVBZUCXQUTTVCVDVEYOYLYKYMYOYKYLXPTFUPZXP
        UTFUPZKUFZUGYOYQXPGUFZKUFZYSYOXTTUCUEYQUUAUGAXTVFZTYPUCUTTTVIVGVHVJVDVK
        BCXPTIUCCUHZUTUGZBUHZGUFZUUFKUFZVLZUUAFUUCTUGZUUEXPUGZUUHUUGUUAUUIUUCUT
        VMZUUHUUGUGUUIUUKTUTVMVTUUCTUTVNVOUUCUTUUFUUGVPWKUUJUUFYTKUUEXPGVQZUQVR
        OYTKVSWAWBYOYRYTKYOXTUTUCUEYRYTUGUUBUTYPUCUTTWLWCVDVKBCXPUTIUCUUHYTFUUD
        UUJUUHUUFYTUUDUUFUUGWDUULVROXPGVSWAWBZUQWEZYLYIYQYGYSYLYHTXPFYLYHTUTULT
        XQUTTWFTWGWHWIYLYFYRKXQUTXPFWJUQWMWNYOYKYMYRYQKUFZUGYOUUOYSKUFZYRYOYQYS
        KUUNUQYOHWOUEZYREUEUUPYRUGAUUQXTPWPYOYRYTEUUMAIEXPGRWQWREHKYRMNXAWSWTYM
        YIYRYGUUOYMYHUTXPFYMYHTTULUTXQTTWFTXBWHWIYMYFYQKXQTXPFWJUQWMWNXCXDXEXFX
        SXLYEXNYGXSXKYDFXSXKXRJUFYDDXRJVQXPXQJURUSUQXSXMYFKXSXMXRFUFYFDXRFVQXPX
        QFURUSUQWMWNXGXHXI $.
    $}

    frgpup.w $e |- W = ( _I ` Word ( I X. 2o ) ) $.
    frgpup.r $e |- .~ = ( ~FG ` I ) $.
    $( Any assignment of the generators to target elements can be extended
       (uniquely) to a homomorphism from a free monoid to an arbitrary other
       monoid.  (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    frgpuplem $p |- ( ( ph /\ A .~ C ) ->
      ( H gsum ( T o. A ) ) = ( H gsum ( T o. C ) ) ) $=
      ( vu vv vr vx vn va vb wbr wa cpr wss ccom cgsu co wceq copab wer cop c1o
      cdif cs2 cotp csplice c2o wral cc0 chash cfv cfz cab cint efgval wcel cxp
      cv cin cvv coeq2 oveq2d eqid eqer a1i erinxp wb df-xp ineq1i incom inopab
      ssv 3eqtr3i vex prss anbi1i opabbii eqtri ereq1 ax-mp sylib simplrl cword
      fviss eqsstri sseldi opelxpi adantl simprl 2oconcl ad2antll syl2anc s2cld
      cid efgrcl syl simprd eleqtrrd jca csubstr cconcat cplusg swrdcl ad2antrr
      splcl ccatco syl3anc wrdco gsumccat df-ov eqtr3d eqtrd 3eqtr4d cn0 coeq2d
      syl13anc eleq1 eqeqan12d anbi12d ralrimivva 2ralbidv frgpuptf cmnd grpmnd
      wf cgrp c0g cmpt2 efgmval syl5eqr fveq2d frgpuptinv sylan2 adantlr fveq2i
      s2co syl6reqr s2eqd eqtr4d simprr fovrnd grpinvcl gsumws2 grprinv gsumwcl
      3eqtrd grprid 3eqtrrd oveq1d ccatcl cuz simplrr elfzuz eluzfz1 3syl lencl
      nn0uz syl6eleq eluzfz2 ccatswrd swrdid splval ovex bi2anan9 syl5bbr braba
      sylanbrc fvex eqeltri erex mpisyl breq elabg mpbir2and syl5eqss ssbrd imp
      intss1 wrel efger errel mp1i brrelex12 sylan preq12 sseq1d brabga mpbid )
      ADFGUJZUKZDFULZNUMZJHDUNZUOUPZJHFUNZUOUPZUQZUXIDFUCVQZUDVQZULZNUMZJHUXQUN
      ZUOUPZJHUXRUNZUOUPZUQZUKZUCUDURZUJZUXKUXPUKZAUXHUYHAGUYGDFAGNUEVQZUSZUFVQ
      ZUYLUGVQZUYMUHVQZUIVQZUTZUYNVAUYOVBZUTZVCZVDZVEUPZUYJUJZUIVFVGUHKVGZUGVHU
      YLVIVJZVKUPZVGUFNVGZUKZUEVLZVMZUYGUFUHUIGUGKNUEUAUBVNAUYGVUHVOZVUIUYGUMAV
      UJNUYGUSZUYLVUAUYGUJZUIVFVGUHKVGZUGVUEVGUFNVGZANUYEUCUDURZNNVPZVRZUSZVUKA
      VSNVUOVSVUOUSAUCUDUYBUYDVUOUXQUXRUQUYAUYCJUOUXQUXRHVTWAVUOWBWCWDNVSUMANWK
      WDWEVUQUYGUQVURVUKWFVUQUXQNVOZUXRNVOZUKZUYEUKZUCUDURZUYGVUPVUOVRVVAUCUDUR
      ZVUOVRVUQVVCVUPVVDVUOUCUDNNWGWHVUPVUOWIVVAUYEUCUDWJWLVVBUYFUCUDVVAUXTUYEU
      XQUXRNUCWMUDWMWNZWOWPWQNVUQUYGWRWSWTZAVUMUFUGNVUEAUYLNVOZUYMVUEVOZUKZUKZV
      ULUHUIKVFVVJUYNKVOZUYOVFVOZUKZUKZVVGVUANVOZUKZJHUYLUNZUOUPZJHVUAUNZUOUPZU
      QZVULVVNVVGVVOAVVGVVHVVMXAZVVNVUAKVFVPZXBZNVVNUYLVWDVOZUYSVWDVOZVUAVWDVOV
      VNNVWDUYLNVWDXMVJZVWDUAVWDXCXDVWBXEZVVNUYPUYRVWCVVMUYPVWCVOZVVJUYNUYOKVFX
      FZXGZVVNVVKUYQVFVOZUYRVWCVOVVJVVKVVLXHZVVLVWLVVJVVKUYOXIXJUYNUYQKVFXFXKZX
      LZVWCUYSUYLUYMUYMYDXKVVNKVSVOZNVWDUQZVVNVVGVWPVWQUKVWBUYLKNUAXNXOXPXQXRVV
      NJHUYLVHUYMUTXSUPZUNZHUYLUYMVUDUTXSUPZUNZXTUPZUOUPZJHVWRUYSXTUPZUNZVXAXTU
      PZUOUPZVVRVVTVVNJVWSUOUPZJVXAUOUPZJYAVJZUPZJVXEUOUPZVXIVXJUPZVXCVXGVVNVXH
      VXLVXIVXJVVNVXLJVWSHUYSUNZXTUPZUOUPZVXHJVXNUOUPZVXJUPZVXHVVNVXEVXOJUOVVNV
      WRVWDVOZVWFVWCEHUUDZVXEVXOUQVVNVWEVXSVWHVWCUYLVHUYMYBXOZVWOAVXTVVIVVMABCE
      HIJKLMOPQRSTUUAYCZVWCEVWRUYSHYEYFWAVVNJUUBVOZVWSEXBZVOZVXNVYDVOZVXPVXRUQV
      VNJUUEVOZVYCAVYGVVIVVMRYCZJUUCXOZVVNVXSVXTVYEVYAVYBVWCEHVWRYGXKZVVNVWFVXT
      VYFVWOVYBVWCEHUYSYGXKEVXJJVWSVXNOVXJWBZYHYFVVNVXRVXHJUUFVJZVXJUPZVXHVVNVX
      QVYLVXHVXJVVNVXQJUYNUYOHUPZVYNLVJZVCZUOUPZVYNVYOVXJUPZVYLVVNVXNVYPJUOVVNV
      XNUYPHVJZUYRHVJZVCVYPVVNUYPUYRHVWCEVYBVWKVWNUUOVVNVYNVYOVYSVYTVYNVYSUQVVN
      UYNUYOHYIZWDVVNVYTVYSLVJZVYOVVNUYPBCKVFBVQVACVQVBUTUUGZVJZHVJZVYTWUBVVNWU
      DUYRHVVMWUDUYRUQVVJVVMWUDUYNUYOWUCUPUYRUYNUYOWUCYIBCUYNUYOKWUCWUCWBZUUHUU
      IXGUUJAVVMWUEWUBUQZVVIVVMAVWIWUGVWJABCUYPEHIJKWUCLMOPQRSTWUFUUKUULUUMYJVY
      NVYSLWUAUUNUUPUUQUURWAVVNVYCVYNEVOZVYOEVOZVYQVYRUQVYIVVNUYNUYOEKVFHVYBVWM
      VVJVVKVVLUUSUUTZVVNVYGWUHWUIVYHWUJEJLVYNOPUVAXKEVXJVYNVYOJOVYKUVBYFVVNVYG
      WUHVYRVYLUQVYHWUJEVXJJLVYNVYLOVYKVYLWBZPUVCXKUVEWAVVNVYGVXHEVOZVYMVXHUQVY
      HVVNVYCVYEWULVYIVYJEJVWSOUVDXKEVXJJVXHVYLOVYKWUKUVFXKYKUVGUVHVVNVYCVYEVXA
      VYDVOZVXCVXKUQVYIVYJVVNVWTVWDVOZVXTWUMVVNVWEWUNVWHVWCUYLUYMVUDYBXOZVYBVWC
      EHVWTYGXKZEVXJJVWSVXAOVYKYHYFVVNVYCVXEVYDVOZWUMVXGVXMUQVYIVVNVXDVWDVOZVXT
      WUQVVNVXSVWFWURVYAVWOVWCVWRUYSUVIXKZVYBVWCEHVXDYGXKWUPEVXJJVXEVXAOVYKYHYF
      YLVVNVVQVXBJUOVVNHVWRVWTXTUPZUNZVVQVXBVVNWUTUYLHVVNWUTUYLVHVUDUTXSUPZUYLV
      VNVWEVHVHUYMVKUPVOZVVHVUDVUEVOZWUTWVBUQVWHVVNVVHUYMVHUVJVJZVOWVCAVVGVVHVV
      MUVKZUYMVHVUDUVLVHUYMUVMUVNWVFVVNVUDWVEVOWVDVVNVUDYMWVEVVNVWEVUDYMVOVWHVW
      CUYLUVOXOUVPUVQVHVUDUVRXOVWCUYLVHUYMVUDUVSYOVVNVWEWVBUYLUQVWHVWCUYLUVTXOY
      KYNVVNVXSWUNVXTWVAVXBUQVYAWUOVYBVWCEVWRVWTHYEYFYJWAVVNVVSVXFJUOVVNVVSHVXD
      VWTXTUPZUNZVXFVVNVUAWVGHVVNVVGVVHVVHVWFVUAWVGUQVWBWVFWVFVWOUYSUYLUYMUYMNV
      UEVUEVWDUWAYOYNVVNWURWUNVXTWVHVXFUQWUSWUOVYBVWCEVXDVWTHYEYFYKWAYLUYFVVPVW
      AUKUCUDUYLVUAUYGUFWMUYLUYTVEUWBUXQUYLUQZUXRVUAUQZUKZUXTVVPUYEVWAUXTVVAWVK
      VVPVVEWVIVUSVVGWVJVUTVVOUXQUYLNYPUXRVUANYPUWCUWDWVIWVJUYBVVRUYDVVTWVIUYAV
      VQJUOUXQUYLHVTWAWVJUYCVVSJUOUXRVUAHVTWAYQYRUYGWBZUWEUWFYSYSAUYGVSVOZVUJVU
      KVUNUKZWFAVUKNVSVOWVMVVFNVWGVSUAVWDXMUWGUWHNUYGVSUWIUWJVUGWVNUEUYGVSUYJUY
      GUQZUYKVUKVUFVUNNUYJUYGWRWVOVUCVUMUFUGNVUEWVOVUBVULUHUIKVFUYLVUAUYJUYGUWK
      YTYTYRUWLXOUWMUYGVUHUWQXOUWNUWOUWPUXIDVSVOFVSVOUKZUYHUYIWFAGUWRZUXHWVPNGU
      SWVQAGKNUAUBUWSNGUWTUXADFGUXBUXCUYFUYIUCUDDFUYGVSVSUXQDUQZUXRFUQZUKZUXTUX
      KUYEUXPWVTUXSUXJNUXQUXRDFUXDUXEWVRWVSUYBUXMUYDUXOWVRUYAUXLJUOUXQDHVTWAWVS
      UYCUXNJUOUXRFHVTWAYQYRWVLUXFXOUXGXP $.

    frgpup.g $e |- G = ( freeGrp ` I ) $.
    frgpup.x $e |- X = ( Base ` G ) $.
    frgpup.e $e |- E = ran ( g e. W |->
      <. [ g ] .~ , ( H gsum ( T o. g ) ) >. ) $.
    $( Any assignment of the generators to target elements can be extended
       (uniquely) to a homomorphism from a free monoid to an arbitrary other
       monoid.  (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    frgpupf $p |- ( ph -> E : X --> B ) $=
      ( vh wf cqs wfun cv ccom cgsu co wcel wa cmnd cword grpmnd syl adantr c2o
      cgrp cxp cid cfv fviss eqsstri sseli frgpuptf syl2anr gsumwcl syl2anc wer
      wrdco efger a1i fvex eqeltri wceq coeq2 oveq2d frgpuplem qliftfund qliftf
      cvv mpbid cbs cfrmd cqus eqid frgpval 2on xpexg sylancl wrdexg fvi syl5eq
      con0 3syl frmdbas eqtr4d cefg fvexd qusbas syl6reqr feq2d mpbird ) APDHUI
      OEUJZDHUIZAHUKXKAGUHKFGULZUMZUNUOZKFUHULZUMZUNUOEHODUGAXLOUPZUQKURUPZXMDU
      SUPZXNDUPAXRXQAKVDUPXRTKUTVAVBXQXLLVCVEZUSZUPXTDFUIXSAOYAXLOYAVFVGZYAUCYA
      VHVIVJABCDFIKLMNQRSTUAUBVKXTDFXLVPVLDKXMQVMVNZOEVOAELOUCUDVQVRZOWGUPAOYBW
      GUCYAVFVSVTVRZXLXOWAXMXPKUNXLXOFWBWCABCXLDXOEFIKLMNOQRSTUAUBUCUDWDWEAGXNE
      HODUGYCYDYEWFWHAPXJDHAXJJWIVGPAEXTWJVGZJOWGWGALNUPZJYFEWKUOWAUAEJLYFNUEYF
      WLZUDWMVAAOYAYFWIVGZAOYBYAUCAXTWGUPZYAWGUPYBYAWAAYGVCWTUPYJUAWNLVCNWTWOWP
      ZXTWGWQYAWGWRXAWSAYJYIYAWAYKYIXTYFWGYHYIWLXBVAXCEWGUPAELXDVGWGUDLXDVSVTVR
      AXTWJXEXFUFXGXHXI $.

    $( Any assignment of the generators to target elements can be extended
       (uniquely) to a homomorphism from a free monoid to an arbitrary other
       monoid.  (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    frgpupval $p |- ( ( ph /\ A e. W ) ->
      ( E ` [ A ] .~ ) = ( H gsum ( T o. A ) ) ) $=
      ( cv ccom cgsu co cvv wcel ovexd wer efger a1i c2o cxp cword cid cfv fvex
      wa eqeltri wceq coeq2 oveq2d wf wfun frgpupf ffun syl qliftval ) AHLGHUIZ
      UJZUKULLGDUJZUKULDFIPUMUHAVPPUNVELVQUKUOPFUPAFMPUDUEUQURPUMUNAPMUSUTVAZVB
      VCUMUDVSVBVDVFURVPDVGVQVRLUKVPDGVHVIAQEIVJIVKABCEFGHIJKLMNOPQRSTUAUBUCUDU
      EUFUGUHVLQEIVMVNVO $.

    $( Any assignment of the generators to target elements can be extended
       (uniquely) to a homomorphism from a free monoid to an arbitrary other
       monoid.  (Contributed by Mario Carneiro, 2-Oct-2015.)  (Revised by Mario
       Carneiro, 28-Feb-2016.) $)
    frgpup1 $p |- ( ph -> E e. ( G GrpHom H ) ) $=
      ( va vc vu vt cplusg cfv eqid wcel cgrp frgpgrp syl frgpupf cv co wceq wa
      cqs wss cbs c2o cxp cfrmd cvv cqus frgpval cword cid xpexg sylancl wrdexg
      con0 2on fvi 3syl syl5eq frmdbas eqtr4d cefg fvex eqeltri qusbas syl6reqr
      a1i fvexd eqimss adantr sselda oveq2 fveq2d oveq2d eqeq12d adantlr oveq1d
      cec fveq2 oveq1 cconcat ccom cgsu fviss sseli ccatcl syl2an efgrcl simprd
      eqsstri eleqtrrd frgpupval sylan2 ad2antrl ad2antll frgpuptf syl3anc cmnd
      ccatco grpmnd wrdco syl2anr adantrr syl2anc 3eqtrd frgpadd adantl adantrl
      wf gsumccat oveq12d 3eqtr4d anass1rs ectocld syldan an32s anasss isghmd )
      AUHUIJULUMZKULUMZJKHPDUFQUUBUNZUUCUNZALNUOZJUPUOUAJLNUEUQURTABCDEFGHIJKLM
      NOPQRSTUAUBUCUDUEUFUGUSAUHUTZPUOZUIUTZPUOZUUGUUIUUBVAZHUMZUUGHUMZUUIHUMZU
      UCVAZVBZAUUHVCZUUJUUIOEVDZUOUUPUUQPUURUUIAPUURVEZUUHAPUURVBUUSAUURJVFUMPA
      ELVGVHZVIUMZJOVJVJAUUFJUVAEVKVAVBUAEJLUVANUEUVAUNZUDVLURAOUUTVMZUVAVFUMZA
      OUVCVNUMZUVCUCAUUTVJUOZUVCVJUOUVEUVCVBAUUFVGVRUOUVFUAVSLVGNVRVOVPZUUTVJVQ
      UVCVJVTWAWBAUVFUVDUVCVBUVGUVDUUTUVAVJUVBUVDUNWCURWDEVJUOAELWEUMVJUDLWEWFW
      GWJAUUTVIWKWHUFWIPUURWLURZWMWNUUGUJUTZEXAZUUBVAZHUMZUUMUVJHUMZUUCVAZVBZUU
      PUUQUJUUIOEUURUURUNZUVJUUIVBZUVLUULUVNUUOUVQUVKUUKHUVJUUIUUGUUBWOWPUVQUVM
      UUNUUMUUCUVJUUIHXBWQWRAUVIOUOZUUHUVOAUVRVCZUUHUUGUURUOZUVOAUUHUVTUVRAPUUR
      UUGUVHWNWSUKUTZEXAZUVJUUBVAZHUMZUWBHUMZUVMUUCVAZVBZUVOUVSUKUUGOEUURUVPUWB
      UUGVBZUWDUVLUWFUVNUWHUWCUVKHUWBUUGUVJUUBXCWPUWHUWEUUMUVMUUCUWBUUGHXBWTWRA
      UWAOUOZUVRUWGAUWIUVRVCZVCZUWAUVIXDVAZEXAZHUMZKFUWAXEZXFVAZKFUVIXEZXFVAZUU
      CVAZUWDUWFUWKUWNKFUWLXEZXFVAZKUWOUWQXDVAZXFVAZUWSUWJAUWLOUOUWNUXAVBUWJUWL
      UVCOUWIUWAUVCUOZUVIUVCUOZUWLUVCUOUVROUVCUWAOUVEUVCUCUVCXGXMZXHZOUVCUVIUXF
      XHZUUTUWAUVIXIXJUWJLVJUOZOUVCVBZUWIUXIUXJVCUVRUWALOUCXKWMXLXNABCUWLDEFGHI
      JKLMNOPQRSTUAUBUCUDUEUFUGXOXPUWKUWTUXBKXFUWKUXDUXEUUTDFYLZUWTUXBVBUWIUXDA
      UVRUXGXQUVRUXEAUWIUXHXRZAUXKUWJABCDFIKLMNQRSTUAUBXSZWMZUUTDUWAUVIFYBXTWQU
      WKKYAUOZUWODVMZUOZUWQUXPUOZUXCUWSVBAUXOUWJAKUPUOUXOTKYCURWMAUWIUXQUVRUWIU
      XDUXKUXQAUXGUXMUUTDFUWAYDYEYFUWKUXEUXKUXRUXLUXNUUTDFUVIYDYGDUUCKUWOUWQQUU
      EYMXTYHUWKUWCUWMHUWJUWCUWMVBAUWAUVIUUBEJLOUCUEUDUUDYIYJWPUWKUWEUWPUVMUWRU
      UCAUWIUWEUWPVBUVRABCUWADEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGXOYFAUVRUVMUWRVBUWI
      ABCUVIDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGXOYKYNYOYPYQYRYSYQYRYTUUA $.

    frgpup.u $e |- U = ( varFGrp ` I ) $.
    ${
      frgpup.y $e |- ( ph -> A e. I ) $.
      $( The evaluation map has the intended behavior on the generators.
         (Contributed by Mario Carneiro, 2-Oct-2015.)  (Revised by Mario
         Carneiro, 28-Feb-2016.) $)
      frgpup2 $p |- ( ph -> ( E ` ( U ` A ) ) = ( F ` A ) ) $=
        ( cfv c0 cop cs1 cec ccom cgsu wcel wceq vrgpval syl2anc fveq2d c2o cxp
        co cword c1o cpr 0ex prid1 df2o3 eleqtrri opelxpi sylancl s1cld cid cvv
        con0 2on xpexg wrdexg fvi 3syl syl5eq eleqtrrd frgpupval mpdan frgpuptf
        wf s1co df-ov cv cif iftrue fveq2 sylan9eqr ovmpt2a syl5eqr s1eqd eqtrd
        fvex oveq2d ffvelrnd gsumws1 syl 3eqtrd ) ADHULZJULDUMUNZUOZFUPZJULZMGX
        JUQZURVFZDKULZAXHXKJANPUSZDNUSZXHXKUTUCUKDFHNPUFUJVAVBVCAXJQUSXLXNUTAXJ
        NVDVEZVGZQAXIXRAXQUMVDUSZXIXRUSZUKUMUMVHVIVDUMVHVJVKVLVMZDUMNVDVNVOZVPA
        QXSVQULZXSUEAXRVRUSZXSVRUSYDXSUTAXPVDVSUSYEUCVTNVDPVSWAVOXRVRWBXSVRWCWD
        WEWFABCXJEFGIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIWGWHAXNMXOUOZURVFZXOAXMYFMURA
        XMXIGULZUOZYFAYAXREGWJXMYIUTYCABCEGKMNOPSTUAUBUCUDWIXREXIGWKVBAYHXOAYHD
        UMGVFZXODUMGWLAXQXTYJXOUTUKYBBCDUMNVDCWMUMUTZBWMZKULZYMOULZWNZXOGYKYLDU
        TYOYMXOYKYMYNWOYLDKWPWQUADKXBWRVOWSWTXAXCAXOEUSYGXOUTANEDKUDUKXDEXOMSXE
        XFXAXG $.
    $}

    frgpup3.k $e |- ( ph -> K e. ( G GrpHom H ) ) $.
    frgpup3.e $e |- ( ph -> ( K o. U ) = F ) $.
    $( The evaluation map has the intended behavior on the generators.
       (Contributed by Mario Carneiro, 2-Oct-2015.)  (Revised by Mario
       Carneiro, 28-Feb-2016.) $)
    frgpup3lem $p |- ( ph -> K = E ) $=
      ( va vt vw vn vi vj cghm co wcel wf wfn ghmf ffn 3syl frgpup1 cv cqs wceq
      cfv wss cbs c2o cxp cfrmd cvv cqus eqid frgpval syl cword cid 2on sylancl
      con0 xpexg wrdexg fvi syl5eq frmdbas eqtr4d cefg eqeltri a1i fvexd qusbas
      fvex syl6reqr eqimss sselda cec fveq2 eqeq12d wa cmpt cvrmd ccom cgsu cc0
      chash cfzo cs1 cop wrex simpr adantr ffvelrnda c0 cif fveq2d adantl sylan
      weq c1o opeq2d s1eqd eceq1d 3eqtr4d syl2anc wne ad2antrr eleqtrrd feqmptd
      s1eq fmptco cmhm mpbird wrdco gsumwmhm eleqtrd elxp2 sylib wi eqeq1 ifbid
      wrdf ifeq12d ifex ovmpt2 cpr elpri df2o3 eleq2s fveq1d vrgpf fvco3 eqtr3d
      wo iftrue vrgpval ghminv 1n0 neeq1d mpbiri ifnefalse jaodan sylan2 anasss
      cminusg vrgpinv eqtrd df-ov syl6eqr syl5ibrcom rexlimdvva frgpuptf fcompt
      mpd mpteq2dva s1cld frgpeccl vrmdfval eqidd eceq1 oveq2d frgpupval ghmmhm
      vrmdf feq3d mpteq1d frgpmhm eqeltrd mhmf feq2d frmdgsum wrdeq wer 3eqtr3d
      efger divsfval eqtr2d ectocld syldan eqfnfvd ) AUMRNIANKLUSUTZVAZRDNVBZNR
      VCUKKLNRDUHSVDZRDNVEVFAIUXFVARDIVBIRVCABCDEFHIJKLMOPQRSTUAUBUCUDUEUFUGUHU
      IVGKLIRDUHSVDRDIVEVFAUMVHZRVAUXJQEVIZVAUXJNVKZUXJIVKZVJZARUXKUXJARUXKVJRU
      XKVLAUXKKVMVKRAEMVNVOZVPVKZKQVQVQAMPVAZKUXPEVRUTVJUCEKMUXPPUGUXPVSZUFVTWA
      AQUXOWBZUXPVMVKZAQUXSWCVKZUXSUEAUXOVQVAZUXSVQVAUYAUXSVJAUXQVNWFVAZUYBUCWD
      MVNPWFWGZWEZUXOVQWHUXSVQWIVFWJZAUYBUXTUXSVJZUYEUXTUXOUXPVQUXRUXTVSZWKWAZW
      LZEVQVAAEMWMVKVQUFMWMWRWNWOAUXOVPWPWQUHWSRUXKWTWAXAUNVHZEXBZNVKZUYLIVKZVJ
      UXNAUNUXJQEUXKUXKVSUYLUXJVJUYMUXLUYNUXMUYLUXJNXCUYLUXJIXCXDAUYKQVAZXEZUYN
      KUOQUOVHZEXBZXFZUXOXGVKZUYKXHZXHZXIUTZNVKZUYMUYPLFUYKXHZXIUTLNVUBXHZXIUTZ
      UYNVUDUYPVUEVUFLXIUYPUPXJUYKXKVKXLUTZUPVHZUYKVKZFVKZXFZUPVUHVUJXMZEXBZNVK
      ZXFVUEVUFUYPUPVUHVUKVUOUYPVUIVUHVAZXEZVUJUQVHZURVHZXNZVJZURVNXOUQMXOZVUKV
      UOVJZVUQVUJUXOVAVVBUYPVUHUXOVUIUYKUYPUYKUXSVAZVUHUXOUYKVBZUYPUYKQUXSAUYOX
      PAQUXSVJZUYOUYFXQZUUAZUXOUYKUUGWAZXRZUQURVUJMVNUUBUUCAVVBVVCUUDUYOVUPAVVA
      VVCUQURMVNAVURMVAZVUSVNVAZXEZXEZVVCVVAVURVUSFUTZVUTXMZEXBZNVKZVJVVNVVOVUS
      XSVJZVURJVKZVVTOVKZXTZVVRVVMVVOVWBVJABCVURVUSMVNCVHZXSVJZBVHZJVKZVWFOVKZX
      TVWBFVWDVVTVWAXTBUQYDZVWDVWFVVTVWGVWAVWEVURJXCZVWHVWFVVTOVWIYAUUHCURYDVWD
      VVSVVTVWAVWCVUSXSUUEUUFUAVVSVVTVWAVURJWRVVTOWRUUIUUJYBAVVKVVLVWBVVRVJZVVL
      AVVKXEZVVSVUSYEVJZUUSZVWJVWMVUSXSYEUUKVNVUSXSYEUULUUMUUNVWKVVSVWJVWLVWKVV
      SXEZVVTVURGVKZNVKZVWBVVRVWKVVTVWPVJVVSVWKVURNGXHZVKZVVTVWPVWKVURVWQJAVWQJ
      VJVVKULXQUUOAMRGVBZVVKVWRVWPVJAUXQVWSUCEGKMPRUFUJUGUHUUPWAZMRVURNGUUQYCUU
      RZXQVVSVWBVVTVJVWKVVSVVTVWAUUTYBVWNVVQVWONVWNVVQVURXSXNZXMZEXBZVWOVWNVVPV
      XCEVWNVUTVXBVWNVUSXSVURVWKVVSXPYFYGYHVWKVWOVXDVJZVVSAUXQVVKVXEUCVUREGMPUF
      UJUVAYCXQWLYAYIVWKVWLXEZVWAVWOKUVJVKZVKZNVKZVWBVVRVWKVWAVXIVJVWLVWKVWAVWP
      OVKZVXIVWKVVTVWPOVXAYAVWKUXGVWORVAVXIVXJVJAUXGVVKUKXQAMRVURGVWTXRRKLNVXGO
      VWOUHVXGVSZTUVBYJWLXQVXFVUSXSYKZVWBVWAVJVXFVXLYEXSYKUVCVXFVUSYEXSVWKVWLXP
      ZUVDUVEVUSXSVVTVWAUVFWAVXFVVQVXHNVXFVVQVURYEXNZXMZEXBZVXHVXFVVPVXOEVXFVUT
      VXNVXFVUSYEVURVXMYFYGYHVWKVXHVXPVJZVWLAUXQVVKVXQUCVUREGKMVXGPUFUJUGVXKUVK
      YCXQWLYAYIUVGUVHUVIUVLVVAVUKVVOVUOVVRVVAVUKVUTFVKVVOVUJVUTFXCVURVUSFUVMUV
      NVVAVUNVVQNVVAVUMVVPEVUJVUTYOYHYAXDUVOUVPYLUVSUVTUYPUXODFVBZVVEVUEVULVJAV
      XRUYOABCDFJLMOPSTUAUBUCUDUVQXQVVIUPFUYKVUHUXODUVRYJUYPUPUOVUHRVUNUYQNVKVU
      OVUBNVUQVUMQVAVUNRVAVUQVUMUXSQVUQVUJUXOVVJUWAAVVFUYOVUPUYFYLYMZREKMQVUMUG
      UFUEUHUWBWAUYPUPUOVUHQVUMUYRVUNVUAUYSVXSUYPUPUOVUHUXOVUJUYQXMZVUMUYKUYTVV
      JUYPUPVUHUXOUYKVVIYNUYPUYBUYTUOUXOVXTXFVJUYPUXQUYCUYBAUXQUYOUCXQZWDUYDWEZ
      UYTUOUXOVQUYTVSZUWCWAUYQVUJYOYPUYPUYSUWDUYQVUMEUWEYPUYPUORDNUYPUXGUXHAUXG
      UYOUKXQZUXIWAYNUYQVUNNXCYPYIUWFABCUYKDEFHIJKLMOPQRSTUAUBUCUDUEUFUGUHUIUWG
      UYPNKLYQUTVAZVUBRWBVAZVUDVUGVJUYPUXGVYEVYDKLNUWHWAUYPVUAQWBVAZQRUYSVBZVYF
      UYPVVDUXOQUYTVBZVYGVVHUYPVYIUXOUXSUYTVBZUYPUYBVYJVYBUYTUXOVQVYCUWIWAZUYPQ
      UXSUYTUXOVVGUWJYRUXOQUYTUYKYSYJUYPVYHUXTRUYSVBZUYPUYSUXPKYQUTZVAZVYLUYPUY
      SUOUXTUYRXFZVYMUYPUOQUXTUYRAQUXTVJUYOUYJXQZUWKUYPUXQVYOVYMVAVYAUOEVYOKMUX
      PPUXTUXRUYHUGUFVYOVSUWLWAUWMZUXTRUXPKUYSUYHUHUWNWAUYPQUXTRUYSVYPUWOYRQRUY
      SVUAYSYJRNKLVUBUHYTYJYIUYPVUCUYLNUYPUXPVUAXIUTZUYSVKZUYKUYSVKVUCUYLUYPVYR
      UYKUYSUYPUYBVVDVYRUYKVJVYBVVHUYTUXOUXPVQUYKUXRVYCUWPYJYAUYPVYNVUAUXTWBZVA
      VYSVUCVJVYQUYPVUAUXSWBZVYTUYPVVDVYJVUAWUAVAVVHVYKUXOUXSUYTUYKYSYJUYPUYGVY
      TWUAVJAUYGUYOUYIXQUXTUXSUWQWAYMUXTUYSUXPKVUAUYHYTYJUYPUOUYKEUYSQQEUWRUYPE
      MQUEUFUWTWOQVQVAUYPQUYAVQUEUXSWCWRWNWOUYSVSUXAUWSYAUXBUXCUXDUXE $.
  $}

  ${
    $d g k m y z B $.  $d g k m y z F $.  $d g k m y z G $.  $d g k m y z H $.
    $d g k m y z I $.  $d g k m y z U $.  $d g k m y z V $.
    frgpup3.g $e |- G = ( freeGrp ` I ) $.
    frgpup3.b $e |- B = ( Base ` H ) $.
    frgpup3.u $e |- U = ( varFGrp ` I ) $.
    $( Universal property of the free monoid by existential uniqueness.
       (Contributed by Mario Carneiro, 2-Oct-2015.)  (Revised by Mario
       Carneiro, 28-Feb-2016.) $)
    frgpup3 $p |- ( ( H e. Grp /\ I e. V /\ F : I --> B ) ->
      E! m e. ( G GrpHom H ) ( m o. U ) = F ) $=
      ( vg vy vz vk wcel cfv cv eqid adantr cgrp w3a c2o cxp cword cid cefg cec
      wf c0 wceq cminusg cif cmpt2 ccom cgsu co cop cmpt crn cghm wral wreu cbs
      wi simp1 simp2 simp3 frgpup1 wa simpr frgpup2 mpteq2dva ghmf vrgpf fcompt
      syl syl2anc feqmptd 3eqtr4d simprl simprr frgpup3lem expr ralrimiva coeq1
      eqeq1d eqreu syl3anc ) FUAPZGHPZGADUIZUBZLGUCUDUEUFQZLRZGUGQZUHFMNGUCNRUJ
      UKMRDQZWQFULQZQUMUNZWOUOUPUQURUSUTZEFVAUQZPZWTBUOZDUKZCRZBUOZDUKZXEWTUKZV
      EZCXAVBXGCXAVCWMMNAWPWSLWTDEFGWRHWNEVDQZJWRSZWSSZWJWKWLVFZWJWKWLVGZWJWKWL
      VHZWNSZWPSZIXJSZWTSZVIZWMOGORZBQWTQZUSZOGYADQZUSXCDWMOGYBYDWMYAGPZVJMNYAA
      WPWSBLWTDEFGWRHWNXJJXKXLWMWJYEXMTWMWKYEXNTWMWLYEXOTXPXQIXRXSKWMYEVKVLVMWM
      XJAWTUIZGXJBUIZXCYCUKWMXBYFXTEFWTXJAXRJVNVQWMWKYGXNWPBEGHXJXQKIXRVOVQOWTB
      GXJAVPVRWMOGADXOVSVTWMXICXAWMXEXAPZXGXHWMYHXGVJZVJMNAWPWSBLWTDEFGXEWRHWNX
      JJXKXLWMWJYIXMTWMWKYIXNTWMWLYIXOTXPXQIXRXSKWMYHXGWAWMYHXGWBWCWDWEXGXDCXAW
      TXHXFXCDXEWTBWFWGWHWI $.
  $}

  ${
    $d f x B $.  $d f x G $.
    0frgp.g $e |- G = ( freeGrp ` (/) ) $.
    0frgp.b $e |- B = ( Base ` G ) $.
    $( The free group on zero generators is trivial.  (Contributed by Mario
       Carneiro, 21-Apr-2016.) $)
    0frgp $p |- B ~~ 1o $=
      ( vx vf c0g cfv cv wcel wceq cmpt c0 wtru wa cvv wf 0ex ax-mp eqid csn co
      c1o cen wral cid cres cxp mptresid ccom cghm wrmo wreu cgrp frgpgrp cvrgp
      f0 wfn cefg vrgpf ffn mp2b fn0 mpbi eqcomi frgpup3 mp3an reurmo idghm tru
      pm3.2i 0ghm mp2an wb co02 bitru a1i rmoi fconstmpt 3eqtri mpteqb id rspec
      mprg velsn sylibr ssriv wss grpidcl snssi eqssi fvex ensn1 eqbrtri ) ABGH
      ZUAZUCUDAWPEAWPEIZAJZWQWOKZWQWPJWSEAEAWQLZEAWOLZKZWSEAUEZWTUFAUGZAWPUHZXA
      EAUIFIZMUJMKZFBBUKUBZULZXDXHJZNOXEXHJZNOXDXEKXGFXHUMZXIBUNJZMPJZMAMQXLXNX
      MRBMPCUOSZRAUQAMFMBBMPCDMUPHZMXPMURZXPMKXNMAXPQXQRMUSHZXPBMPAXRTXPTCDUTMA
      XPVAVBXPVCVDVEVFVGXGFXHVHSXJNXMXJXOABDVISVJVKXKNXMXMXKXOXOABBWOWOTZDVLVMV
      JVKXGNNFXHXDXEXGNVNZXFXDKXGXFVOVPZVQXTXFXEKYAVQVRVGEAWOVSVTWRXBXCVNEAEAWQ
      WOAWAWRWBWDVDWCEWOWEWFWGWOAJZWPAWHXMYBXOABWODXSWISWOAWJSWKWOBGWLWMWN $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Abelian groups
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CMnd $.
  $c Abel $.

  $( Extend class notation with class of all commutative monoids. $)
  ccmn $a class CMnd $.

  $( Extend class notation with class of all Abelian groups. $)
  cabl $a class Abel $.

  ${
    $d a b g $.
    $( Define class of all commutative monoids.  (Contributed by Mario
       Carneiro, 6-Jan-2015.) $)
    df-cmn $a |- CMnd = { g e. Mnd | A. a e. ( Base ` g )
      A. b e. ( Base ` g ) ( a ( +g ` g ) b ) = ( b ( +g ` g ) a ) } $.
  $}

  $( Define class of all Abelian groups.  (Contributed by NM, 17-Oct-2011.)
     (Revised by Mario Carneiro, 6-Jan-2015.) $)
  df-abl $a |- Abel = ( Grp i^i CMnd ) $.

  $( The predicate "is an Abelian (commutative) group."  (Contributed by NM,
     17-Oct-2011.) $)
  isabl $p |- ( G e. Abel <-> ( G e. Grp /\ G e. CMnd ) ) $=
    ( cgrp ccmn cabl df-abl elin2 ) ABCDEF $.

  $( An Abelian group is a group.  (Contributed by NM, 26-Aug-2011.) $)
  ablgrp $p |- ( G e. Abel -> G e. Grp ) $=
    ( cabl wcel cgrp ccmn isabl simplbi ) ABCADCAECAFG $.

  $( An Abelian group is a commutative monoid.  (Contributed by Mario Carneiro,
     6-Jan-2015.) $)
  ablcmn $p |- ( G e. Abel -> G e. CMnd ) $=
    ( cabl wcel cgrp ccmn isabl simprbi ) ABCADCAECAFG $.

  ${
    $d g x y B $.  $d g x y G $.  $d g .+ $.
    iscmn.b $e |- B = ( Base ` G ) $.
    iscmn.p $e |- .+ = ( +g ` G ) $.
    $( The predicate "is a commutative monoid."  (Contributed by Mario
       Carneiro, 6-Jan-2015.) $)
    iscmn $p |- ( G e. CMnd <-> ( G e. Mnd /\
             A. x e. B A. y e. B ( x .+ y ) = ( y .+ x ) ) ) $=
      ( vg cv cplusg cfv co wceq cbs wral cmnd ccmn fveq2 syl6eqr oveqd eqeq12d
      wb raleq raleqbi1dv syl 2ralbidv bitrd df-cmn elrab2 ) AIZBIZHIZJKZLZUKUJ
      UMLZMZBULNKZOZAUQOZUJUKDLZUKUJDLZMZBCOACOZHEPQULEMZUSUPBCOZACOZVCVDUQCMUS
      VFUBVDUQENKCULENRFSURVEAUQCUPBUQCUCUDUEVDUPVBABCCVDUNUTUOVAVDUMDUJUKVDUME
      JKDULEJRGSZTVDUMDUKUJVGTUAUFUGHABUHUI $.

    $( The predicate "is an Abelian (commutative) group."  (Contributed by NM,
       17-Oct-2011.)  (Revised by Mario Carneiro, 6-Jan-2015.) $)
    isabl2 $p |- ( G e. Abel <-> ( G e. Grp /\
             A. x e. B A. y e. B ( x .+ y ) = ( y .+ x ) ) ) $=
      ( cabl wcel cgrp ccmn wa cv co wceq wral isabl cmnd wb grpmnd syl pm5.32i
      iscmn baib bitri ) EHIEJIZEKIZLUFAMZBMZDNUIUHDNOBCPACPZLEQUFUGUJUFERIZUGU
      JSETUGUKUJABCDEFGUCUDUAUBUE $.
  $}

  ${
    $d u v x y B $.  $d u v x y K $.  $d u v x y L $.  $d u v x y ph $.
    ablpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    ablpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    ablpropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    $( If two structures have the same group components (properties), one is a
       commutative monoid iff the other one is.  (Contributed by Mario
       Carneiro, 6-Jan-2015.) $)
    cmnpropd $p |- ( ph -> ( K e. CMnd <-> L e. CMnd ) ) $=
      ( vu vv cmnd wcel cv cfv co wceq wral wa eqid cplusg cbs mndpropd ancom2s
      ccmn oveqrspc2v eqeq12d 2ralbidva raleqdv raleqbidv 3bitr3d anbi12d iscmn
      3bitr4g ) AELMZJNZKNZEUAOZPZUQUPURPZQZKEUBOZRZJVBRZSFLMZUPUQFUAOZPZUQUPVF
      PZQZKFUBOZRZJVJRZSEUEMFUEMAUOVEVDVLABCDEFGHIUCAVAKDRZJDRVIKDRZJDRVDVLAVAV
      IJKDDAUPDMZUQDMZSSUSVGUTVHABCDDURVFUPUQIUFAVPVOUTVHQABCDDURVFUQUPIUFUDUGU
      HAVMVCJDVBGAVAKDVBGUIUJAVNVKJDVJHAVIKDVJHUIUJUKULJKVBUREVBTURTUMJKVJVFFVJ
      TVFTUMUN $.

    $( If two structures have the same group components (properties), one is an
       Abelian group iff the other one is.  (Contributed by NM, 6-Dec-2014.) $)
    ablpropd $p |- ( ph -> ( K e. Abel <-> L e. Abel ) ) $=
      ( cgrp wcel ccmn wa cabl grppropd cmnpropd anbi12d isabl 3bitr4g ) AEJKZE
      LKZMFJKZFLKZMENKFNKATUBUAUCABCDEFGHIOABCDEFGHIPQERFRS $.
  $}

  ${
    $d x y K $.  $d x y L $.
    ablprop.b $e |- ( Base ` K ) = ( Base ` L ) $.
    ablprop.p $e |- ( +g ` K ) = ( +g ` L ) $.
    $( If two structures have the same group components (properties), one is an
       Abelian group iff the other one is.  (Contributed by NM,
       11-Oct-2013.) $)
    ablprop $p |- ( K e. Abel <-> L e. Abel ) $=
      ( vx vy cabl wcel wb wtru cbs cfv eqidd wceq a1i cv cplusg co wa oveqi
      ablpropd trud ) AGHBGHIJEFAKLZABJUCMUCBKLNJCOEPZFPZAQLZRUDUEBQLZRNJUDUCHU
      EUCHSSUFUGUDUEDTOUAUB $.
  $}

  ${
    $d x y B $.  $d x y G $.  $d x y ph $.
    iscmnd.b $e |- ( ph -> B = ( Base ` G ) ) $.
    iscmnd.p $e |- ( ph -> .+ = ( +g ` G ) ) $.
    iscmnd.g $e |- ( ph -> G e. Mnd ) $.
    iscmnd.c $e |- ( ( ph /\ x e. B /\ y e. B ) -> ( x .+ y ) = ( y .+ x ) ) $.
    $( Properties that determine a commutative monoid.  (Contributed by Mario
       Carneiro, 7-Jan-2015.) $)
    iscmnd $p |- ( ph -> G e. CMnd ) $=
      ( cmnd wcel cv cfv co wceq wral oveqd raleqbidv eqid cplusg cbs wa 3expib
      ccmn ralrimivv eqeq12d anbi2d mpbi2and iscmn sylibr ) AFKLZBMZCMZFUANZOZU
      NUMUOOZPZCFUBNZQZBUSQZUCZFUELAULUMUNEOZUNUMEOZPZCDQZBDQZVBIAVEBCDDAUMDLUN
      DLVEJUDUFAVGVAULAVFUTBDUSGAVEURCDUSGAVCUPVDUQAEUOUMUNHRAEUOUNUMHRUGSSUHUI
      BCUSUOFUSTUOTUJUK $.
  $}

  ${
    $d x y B $.  $d x y G $.  $d x y ph $.
    isabld.b $e |- ( ph -> B = ( Base ` G ) ) $.
    isabld.p $e |- ( ph -> .+ = ( +g ` G ) ) $.
    isabld.g $e |- ( ph -> G e. Grp ) $.
    isabld.c $e |- ( ( ph /\ x e. B /\ y e. B ) -> ( x .+ y ) = ( y .+ x ) ) $.
    $( Properties that determine an Abelian group.  (Contributed by NM,
       6-Aug-2013.) $)
    isabld $p |- ( ph -> G e. Abel ) $=
      ( cgrp wcel ccmn cabl cmnd grpmnd syl iscmnd isabl sylanbrc ) AFKLZFMLFNL
      IABCDEFGHAUAFOLIFPQJRFST $.
  $}

  ${
    $d x y B $.  $d x y G $.
    isabli.g $e |- G e. Grp $.
    isabli.b $e |- B = ( Base ` G ) $.
    isabli.p $e |- .+ = ( +g ` G ) $.
    isabli.c $e |- ( ( x e. B /\ y e. B ) -> ( x .+ y ) = ( y .+ x ) ) $.
    $( Properties that determine an Abelian group.  (Contributed by NM,
       4-Sep-2011.) $)
    isabli $p |- G e. Abel $=
      ( cabl wcel cgrp cv co wceq wral rgen2a isabl2 mpbir2an ) EJKELKAMZBMZDNU
      ATDNOZBCPACPFUBABCIQABCDEGHRS $.
  $}

  ${
    $d x y B $.  $d x y G $.  $d x y .+ $.  $d x y W $.  $d x y X $.
    $d x y Y $.  $d x y Z $.
    $( A commutative monoid is a monoid.  (Contributed by Mario Carneiro,
       6-Jan-2015.) $)
    cmnmnd $p |- ( G e. CMnd -> G e. Mnd ) $=
      ( vx vy ccmn wcel cmnd cv cplusg cfv co wceq cbs wral eqid iscmn simplbi
      ) ADEAFEBGZCGZAHIZJRQSJKCALIZMBTMBCTSATNSNOP $.

    ablcom.b $e |- B = ( Base ` G ) $.
    ablcom.p $e |- .+ = ( +g ` G ) $.
    $( A commutative monoid is commutative.  (Contributed by Mario Carneiro,
       6-Jan-2015.) $)
    cmncom $p |- ( ( G e. CMnd /\ X e. B /\ Y e. B ) ->
                 ( X .+ Y ) = ( Y .+ X ) ) $=
      ( vx vy ccmn wcel co wceq cv wral wa cmnd iscmn simprbi rsp2 imp caovcomg
      sylan 3impb ) CJKZDAKEAKDEBLEDBLMUEHIDEABUEHNZINZBLUGUFBLMZIAOHAOZUFAKUGA
      KPZUHUECQKUIHIABCFGRSUIUJUHUHHIAATUAUCUBUD $.

    $( An Abelian group operation is commutative.  (Contributed by NM,
       26-Aug-2011.) $)
    ablcom $p |- ( ( G e. Abel /\ X e. B /\ Y e. B ) ->
                 ( X .+ Y ) = ( Y .+ X ) ) $=
      ( cabl wcel ccmn co wceq ablcmn cmncom syl3an1 ) CHICJIDAIEAIDEBKEDBKLCMA
      BCDEFGNO $.

    $( Commutative/associative law for Abelian groups.  (Contributed by NM,
       4-Feb-2014.)  (Revised by Mario Carneiro, 21-Apr-2016.) $)
    cmn32 $p |- ( ( G e. CMnd /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
                 ( ( X .+ Y ) .+ Z ) = ( ( X .+ Z ) .+ Y ) ) $=
      ( ccmn wcel w3a wa cmnd cmnmnd adantr simpr1 simpr2 simpr3 co wceq cmncom
      3adant3r1 mnd32g ) CIJZDAJZEAJZFAJZKZLABCDEFGHUDCMJUHCNOUDUEUFUGPUDUEUFUG
      QUDUEUFUGRUDUFUGEFBSFEBSTUEABCEFGHUAUBUC $.

    $( Commutative/associative law for Abelian groups.  (Contributed by NM,
       4-Feb-2014.)  (Revised by Mario Carneiro, 21-Apr-2016.) $)
    cmn4 $p |- ( ( G e. CMnd /\ ( X e. B /\ Y e. B ) /\ ( Z e. B /\ W e. B ) )
       -> ( ( X .+ Y ) .+ ( Z .+ W ) ) = ( ( X .+ Z ) .+ ( Y .+ W ) ) ) $=
      ( ccmn wcel wa w3a cmnd simp1 cmnmnd syl simp2l simp2r co simp3l syl3anc
      simp3r wceq cmncom mnd4g ) CJKZEAKZFAKZLZGAKZDAKZLZMZABCDEFGHIUNUGCNKUGUJ
      UMOZCPQUGUHUIUMRUGUHUIUMSZUGUJUKULUAZUGUJUKULUCUNUGUIUKFGBTGFBTUDUOUPUQAB
      CFGHIUEUBUF $.

    $( Commutative/associative law for Abelian monoids.  (Contributed by Stefan
       O'Rear, 5-Sep-2015.)  (Revised by Mario Carneiro, 21-Apr-2016.) $)
    cmn12 $p |- ( ( G e. CMnd /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
        ( X .+ ( Y .+ Z ) ) = ( Y .+ ( X .+ Z ) ) ) $=
      ( ccmn wcel w3a wa cmnd cmnmnd adantr simpr1 simpr2 simpr3 co wceq cmncom
      3adant3r3 mnd12g ) CIJZDAJZEAJZFAJZKZLABCDEFGHUDCMJUHCNOUDUEUFUGPUDUEUFUG
      QUDUEUFUGRUDUEUFDEBSEDBSTUGABCDEGHUAUBUC $.

    abl32.g $e |- ( ph -> G e. Abel ) $.
    abl32.x $e |- ( ph -> X e. B ) $.
    abl32.y $e |- ( ph -> Y e. B ) $.
    abl32.z $e |- ( ph -> Z e. B ) $.
    $( Commutative/associative law for Abelian groups.  (Contributed by Stefan
       O'Rear, 10-Apr-2015.)  (Revised by Mario Carneiro, 21-Apr-2016.) $)
    abl32 $p |- ( ph -> ( ( X .+ Y ) .+ Z ) = ( ( X .+ Z ) .+ Y ) ) $=
      ( ccmn wcel co wceq cabl ablcmn syl cmn32 syl13anc ) ADNOZEBOFBOGBOEFCPGC
      PEGCPFCPQADROUCJDSTKLMBCDEFGHIUAUB $.
  $}

  ${
    ablinvadd.b $e |- B = ( Base ` G ) $.
    ablinvadd.p $e |- .+ = ( +g ` G ) $.
    ablinvadd.n $e |- N = ( invg ` G ) $.
    $( The inverse of an Abelian group operation.  (Contributed by NM,
       31-Mar-2014.) $)
    ablinvadd $p |- ( ( G e. Abel /\ X e. B /\ Y e. B ) ->
                   ( N ` ( X .+ Y ) ) = ( ( N ` X ) .+ ( N ` Y ) ) ) $=
      ( cabl wcel w3a co cfv cgrp wceq ablgrp grpinvadd grpinvcl syl2anc ablcom
      syl3an1 simp1 3ad2ant1 simp2 simp3 syl3anc eqtr4d ) CJKZEAKZFAKZLZEFBMDNZ
      FDNZEDNZBMZUOUNBMZUICOKZUJUKUMUPPCQZABCDEFGHIRUBULUIUOAKZUNAKZUQUPPUIUJUK
      UCULURUJUTUIUJURUKUSUDZUIUJUKUEACDEGISTULURUKVAVBUIUJUKUFACDFGISTABCUOUNG
      HUAUGUH $.
  $}

  ${
    ablsub2inv.b $e |- B = ( Base ` G ) $.
    ablsub2inv.m $e |- .- = ( -g ` G ) $.
    ablsub2inv.n $e |- N = ( invg ` G ) $.
    ablsub2inv.g $e |- ( ph -> G e. Abel ) $.
    ablsub2inv.x $e |- ( ph -> X e. B ) $.
    ablsub2inv.y $e |- ( ph -> Y e. B ) $.
    $( Abelian group subtraction of two inverses.  (Contributed by Stefan
       O'Rear, 24-May-2015.) $)
    ablsub2inv $p |- ( ph -> ( ( N ` X ) .- ( N ` Y ) ) = ( Y .- X ) ) $=
      ( cfv co wcel syl2anc wceq syl3anc eqtr4d cplusg eqid ablgrp syl grpinvcl
      cabl cgrp grpsubinv ablcom grpinvinv oveq1d grpinvadd grpsubval grpinvsub
      fveq2d 3eqtrd ) AFENZGENZDOUQGCUANZOZFGDOZENZGFDOZABUSCDEUQGHUSUBZIJACUFP
      ZCUGPZKCUCUDZAVFFBPZUQBPZVGLBCEFHJUEQZMUHAUTFURUSOZENZVBAUTURENZUQUSOZVLA
      UTGUQUSOZVNAVEVIGBPZUTVORKVJMBUSCUQGHVDUISAVMGUQUSAVFVPVMGRVGMBCEGHJUJQUK
      TAVFVHURBPZVLVNRVGLAVFVPVQVGMBCEGHJUEQBUSCEFURHVDJULSTAVAVKEAVHVPVAVKRLMB
      USCEDFGHVDJIUMQUOTAVFVHVPVBVCRVGLMBCDEFGHIJUNSUP $.
  $}

  ${
    ablsubadd.b $e |- B = ( Base ` G ) $.
    ablsubadd.p $e |- .+ = ( +g ` G ) $.
    ablsubadd.m $e |- .- = ( -g ` G ) $.
    $( Relationship between Abelian group subtraction and addition.
       (Contributed by NM, 31-Mar-2014.) $)
    ablsubadd $p |- ( ( G e. Abel /\ ( X e. B /\ Y e. B /\ Z e. B ) )
          -> ( ( X .- Y ) = Z <-> ( Y .+ Z ) = X ) ) $=
      ( cabl wcel w3a wa co wceq cgrp wb ablgrp grpsubadd ablcom eqeq1d bitr4d
      sylan 3adant3r1 ) CKLZEALZFALZGALZMZNZEFDOGPZGFBOZEPZFGBOZEPUFCQLUJULUNRC
      SABCDEFGHIJTUDUKUOUMEUFUHUIUOUMPUGABCFGHIUAUEUBUC $.

    $( Commutative/associative subtraction law for Abelian groups.
       (Contributed by NM, 31-Mar-2014.) $)
    ablsub4 $p |- ( ( G e. Abel /\ ( X e. B /\ Y e. B ) /\ ( Z e. B /\ W e. B )
        ) -> ( ( X .+ Y ) .- ( Z .+ W ) ) = ( ( X .- Z ) .+ ( Y .- W ) ) ) $=
      ( wcel wa co cfv wceq 3ad2ant1 syl3anc grpsubval syl2anc cabl w3a cminusg
      cgrp ablgrp simp2l simp2r grpcl simp3l simp3r eqid ccmn ablcmn simp2 cmn4
      grpinvcl syl112anc simp1 ablinvadd oveq2d oveq12d 3eqtr4d eqtrd ) CUALZFA
      LZGALZMZHALZEALZMZUBZFGBNZHEBNZDNZVLVMCUCOZOZBNZFHDNZGEDNZBNZVKVLALZVMALZ
      VNVQPVKCUDLZVEVFWAVDVGWCVJCUEQZVDVEVFVJUFZVDVEVFVJUGZABCFGIJUHRVKWCVHVIWB
      WDVDVGVHVIUIZVDVGVHVIUJZABCHEIJUHRABCVODVLVMIJVOUKZKSTVKVLHVOOZEVOOZBNZBN
      ZFWJBNZGWKBNZBNZVQVTVKCULLZVGWJALZWKALZWMWPPVDVGWQVJCUMQVDVGVJUNVKWCVHWRW
      DWGACVOHIWIUPTVKWCVIWSWDWHACVOEIWIUPTABCWKFGWJIJUOUQVKVPWLVLBVKVDVHVIVPWL
      PVDVGVJURWGWHABCVOHEIJWIUSRUTVKVRWNVSWOBVKVEVHVRWNPWEWGABCVODFHIJWIKSTVKV
      FVIVSWOPWFWHABCVODGEIJWIKSTVAVBVC $.

    $( Abelian group addition/subtraction law.  (Contributed by NM,
       31-Mar-2014.) $)
    abladdsub4 $p |- ( ( G e. Abel
       /\ ( X e. B /\ Y e. B ) /\ ( Z e. B /\ W e. B ) )
   -> ( ( X .+ Y ) = ( Z .+ W ) <-> ( X .- Z ) = ( W .- Y ) ) ) $=
      ( wcel wa co wceq grpcl syl3anc ablsub4 syl122anc syl2anc cabl w3a ablgrp
      wb 3ad2ant1 simp2l simp2r simp3l simp3r grpsubrcan syl13anc c0g cfv simp1
      cgrp grpsubid oveq2d grpsubcl grprid 3eqtrd oveq1d grplid eqeq12d bitr3d
      eqid ) CUALZFALZGALZMZHALZEALZMZUBZFGBNZHGBNZDNZHEBNZVODNZOZVNVQOZFHDNZEG
      DNZOVMCUOLZVNALZVQALZVOALZVSVTUDVFVIWCVLCUCUEZVMWCVGVHWDWGVFVGVHVLUFZVFVG
      VHVLUGZABCFGIJPQVMWCVJVKWEWGVFVIVJVKUHZVFVIVJVKUIZABCHEIJPQVMWCVJVHWFWGWJ
      WIABCHGIJPQACDVNVQVOIKUJUKVMVPWAVRWBVMVPWAGGDNZBNZWACULUMZBNZWAVMVFVGVHVJ
      VHVPWMOVFVIVLUNZWHWIWJWIABCDGFGHIJKRSVMWLWNWABVMWCVHWLWNOWGWIACDGWNIWNVEZ
      KUPTUQVMWCWAALZWOWAOWGVMWCVGVJWRWGWHWJACDFHIKURQABCWAWNIJWQUSTUTVMVRHHDNZ
      WBBNZWNWBBNZWBVMVFVJVKVJVHVRWTOWPWJWKWJWIABCDGHEHIJKRSVMWSWNWBBVMWCVJWSWN
      OWGWJACDHWNIWQKUPTVAVMWCWBALZXAWBOWGVMWCVKVHXBWGWKWIACDEGIKURQABCWBWNIJWQ
      VBTUTVCVD $.

    $( Associative-type law for group subtraction and addition.  (Contributed
       by NM, 19-Apr-2014.) $)
    abladdsub $p |- ( ( G e. Abel /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
         ( ( X .+ Y ) .- Z ) = ( ( X .- Z ) .+ Y ) ) $=
      ( cabl wcel w3a wa co wceq ablcom 3adant3r3 oveq1d syl3anc syl13anc simpl
      cgrp ablgrp adantr simpr2 simpr1 simpr3 grpaddsubass grpsubcl 3eqtrd ) CK
      LZEALZFALZGALZMZNZEFBOZGDOFEBOZGDOZFEGDOZBOZVAFBOZUQURUSGDULUMUNURUSPUOAB
      CEFHIQRSUQCUCLZUNUMUOUTVBPULVDUPCUDUEZULUMUNUOUFZULUMUNUOUGZULUMUNUOUHZAB
      CDFEGHIJUIUAUQULUNVAALZVBVCPULUPUBVFUQVDUMUOVIVEVGVHACDEGHJUJTABCFVAHIQTU
      K $.

    $( Cancellation law for subtraction.  (Contributed by NM, 2-Oct-2014.) $)
    ablpncan2 $p |- ( ( G e. Abel /\ X e. B /\ Y e. B )
       -> ( ( X .+ Y ) .- X ) = Y ) $=
      ( cabl wcel w3a co c0g cfv wceq simp1 simp2 simp3 syl2anc syl13anc ablgrp
      abladdsub cgrp syl eqid grpsubid oveq1d grplid 3eqtrd ) CJKZEAKZFAKZLZEFB
      MEDMZEEDMZFBMZCNOZFBMZFUNUKULUMULUOUQPUKULUMQZUKULUMRZUKULUMSZVAABCDEFEGH
      IUCUAUNUPURFBUNCUDKZULUPURPUNUKVCUTCUBUEZVAACDEURGURUFZIUGTUHUNVCUMUSFPVD
      VBABCFURGHVEUITUJ $.

    $( A cancellation law for commutative groups.  (Contributed by NM,
       23-Mar-2015.) $)
    ablpncan3 $p |- ( ( G e. Abel /\ ( X e. B /\ Y e. B ) ) ->
        ( X .+ ( Y .- X ) ) = Y ) $=
      ( cabl wcel wa co wceq simpl simprl cgrp ablgrp adantr syl3anc grpsubcl
      simprr ablcom grpnpcan eqtrd ) CJKZEAKZFAKZLZLZEFEDMZBMZUKEBMZFUJUFUGUKAK
      ZULUMNUFUIOUFUGUHPZUJCQKZUHUGUNUFUPUICRSZUFUGUHUBZUOACDFEGIUATABCEUKGHUCT
      UJUPUHUGUMFNUQURUOABCDFEGHIUDTUE $.

    ablsubsub.g $e |- ( ph -> G e. Abel ) $.
    ablsubsub.x $e |- ( ph -> X e. B ) $.
    ablsubsub.y $e |- ( ph -> Y e. B ) $.
    ablsubsub.z $e |- ( ph -> Z e. B ) $.
    $( Law for double subtraction.  (Contributed by NM, 7-Apr-2015.) $)
    ablsubsub $p |- ( ph -> ( X .- ( Y .- Z ) ) = ( ( X .- Y ) .+ Z ) ) $=
      ( co cgrp wcel wceq syl13anc cabl ablgrp grpsubsub grpaddsubass abladdsub
      syl 3eqtr2d ) AFGHEPEPZFHGEPCPZFHCPGEPZFGEPHCPZADQRZFBRZGBRZHBRZUHUISADUA
      RZULLDUBUFZMNOBCDEFGHIJKUCTAULUMUOUNUJUISUQMONBCDEFHGIJKUDTAUPUMUOUNUJUKS
      LMONBCDEFHGIJKUETUG $.

    $( Law for double subtraction.  (Contributed by NM, 7-Apr-2015.) $)
    ablsubsub4 $p |- ( ph -> ( ( X .- Y ) .- Z ) = ( X .- ( Y .+ Z ) ) ) $=
      ( co cminusg cfv wcel syl2anc wceq cgrp cabl ablgrp grpsubcl syl3anc eqid
      syl grpsubval grpinvcl ablsubsub grpsubinv oveq2d 3eqtr2d ) AFGEPZHEPZUOH
      DQRZRZCPZFGUREPZEPFGHCPZEPAUOBSZHBSZUPUSUAADUBSZFBSGBSVBADUCSVDLDUDUHZMNB
      DEFGIKUEUFOBCDUQEUOHIJUQUGZKUITABCDEFGURIJKLMNAVDVCURBSVEOBDUQHIVFUJTUKAU
      TVAFEABCDEUQGHIJKVFVENOULUMUN $.

    ablpnpcan.g $e |- ( ph -> G e. Abel ) $.
    ablpnpcan.x $e |- ( ph -> X e. B ) $.
    ablpnpcan.y $e |- ( ph -> Y e. B ) $.
    ablpnpcan.z $e |- ( ph -> Z e. B ) $.
    $( Cancellation law for mixed addition and subtraction.  ( ~ pnpcan
       analog.)  (Contributed by NM, 29-May-2015.) $)
    ablpnpcan $p |- ( ph -> ( ( X .+ Y ) .- ( X .+ Z ) ) = ( Y .- Z ) ) $=
      ( co c0g cfv cabl wcel wceq ablsub4 syl122anc ablgrp syl grpsubid syl2anc
      cgrp eqid oveq1d grpsubcl syl3anc grplid 3eqtrd ) AFGCTFHCTETZFFETZGHETZC
      TZDUAUBZVACTZVAADUCUDZFBUDZGBUDZVFHBUDZUSVBUELMNMOBCDEHFGFIJKUFUGAUTVCVAC
      ADULUDZVFUTVCUEAVEVILDUHUIZMBDEFVCIVCUMZKUJUKUNAVIVABUDZVDVAUEVJAVIVGVHVL
      VJNOBDEGHIKUOUPBCDVAVCIJVKUQUKUR $.
  $}

  ${
    ablnncan.b $e |- B = ( Base ` G ) $.
    ablnncan.m $e |- .- = ( -g ` G ) $.
    ablnncan.g $e |- ( ph -> G e. Abel ) $.
    ablnncan.x $e |- ( ph -> X e. B ) $.
    ablnncan.y $e |- ( ph -> Y e. B ) $.
    $( Cancellation law for group subtraction.  ( ~ nncan analog.)
       (Contributed by NM, 7-Apr-2015.) $)
    ablnncan $p |- ( ph ->
             ( X .- ( X .- Y ) ) = Y ) $=
      ( co cplusg cfv c0g eqid ablsubsub wcel wceq syl2anc cgrp cabl ablgrp syl
      grpsubid oveq1d grplid 3eqtrd ) AEEFDLDLEEDLZFCMNZLCONZFUJLZFABUJCDEEFGUJ
      PZHIJJKQAUIUKFUJACUARZEBRUIUKSACUBRUNICUCUDZJBCDEUKGUKPZHUETUFAUNFBRULFSU
      OKBUJCFUKGUMUPUGTUH $.

    ablsub32.z $e |- ( ph -> Z e. B ) $.
    $( Swap the second and third terms in a double group subtraction.
       (Contributed by NM, 7-Apr-2015.) $)
    ablsub32 $p |- ( ph -> ( ( X .- Y ) .- Z ) = ( ( X .- Z ) .- Y ) ) $=
      ( cplusg cfv co cabl wcel wceq ablsubsub4 ablcom syl3anc oveq2d 3eqtr4d
      eqid ) AEFGCNOZPZDPEGFUFPZDPEFDPGDPEGDPFDPAUGUHEDACQRFBRGBRUGUHSJLMBUFCFG
      HUFUEZUAUBUCABUFCDEFGHUIIJKLMTABUFCDEGFHUIIJKMLTUD $.

    $( Cancellation law for group subtraction.  ( ~ nnncan analog.)
       (Contributed by NM, 29-Feb-2008.)  (Revised by AV, 27-Aug-2021.) $)
    ablnnncan $p |- ( ph -> ( ( X .- ( Y .- Z ) ) .- Z ) = ( X .- Y ) ) $=
      ( co cplusg cfv wcel syl3anc wceq eqtrd eqid cgrp syl grpsubcl ablsubsub4
      cabl ablgrp ablcom ablpncan3 syl12anc oveq2d ) AEFGDNZDNGDNEULGCOPZNZDNEF
      DNABUMCDEULGHUMUAZIJKACUBQZFBQZGBQZULBQZACUFQZUPJCUGUCLMBCDFGHIUDRZMUEAUN
      FEDAUNGULUMNZFAUTUSURUNVBSJVAMBUMCULGHUOUHRAUTURUQVBFSJMLBUMCDGFHUOIUIUJT
      UKT $.

    $( Cancellation law for group subtraction.  ( ~ nnncan1 analog.)
       (Contributed by NM, 7-Apr-2015.) $)
    ablnnncan1 $p |- ( ph -> ( ( X .- Y ) .- ( X .- Z ) ) = ( Z .- Y ) ) $=
      ( co cgrp wcel cabl ablgrp syl grpsubcl syl3anc ablsub32 ablnncan oveq1d
      eqtrd ) AEFDNEGDNZDNEUFDNZFDNGFDNABCDEFUFHIJKLACOPZEBPGBPUFBPACQPUHJCRSKM
      BCDEGHITUAUBAUGGFDABCDEGHIJKMUCUDUE $.
  $}

  ${
    ablsubsub23.v $e |- V = ( Base ` G ) $.
    ablsubsub23.m $e |- .- = ( -g ` G ) $.
    $( Swap subtrahend and result of group subtraction.  (Contributed by NM,
       14-Dec-2007.)  (Revised by AV, 7-Oct-2021.) $)
    ablsubsub23 $p |- ( ( G e. Abel /\ ( A e. V /\ B e. V /\ C e. V ) ) ->
                ( ( A .- B ) = C <-> ( A .- C ) = B ) ) $=
      ( cabl wcel w3a wa cplusg cfv co wceq simpl simpr3 wb grpsubadd eqid cgrp
      simpr2 ablcom syl3anc eqeq1d ablgrp sylan 3ancomb biimpi syl2an 3bitr4d )
      DIJZAFJZBFJZCFJZKZLZCBDMNZOZAPZBCUSOZAPZABEOCPZACEOBPZURUTVBAURUMUPUOUTVB
      PUMUQQUMUNUOUPRUMUNUOUPUCFUSDCBGUSUAZUDUEUFUMDUBJZUQVDVASDUGZFUSDEABCGVFH
      TUHUMVGUNUPUOKZVEVCSUQVHUQVIUNUOUPUIUJFUSDEACBGVFHTUKUL $.
  $}

  ${
    $d k x y z B $.  $d k x y z G $.  $d k x y z M $.  $d k x y z .+ $.
    $d k x y z X $.  $d k x y z Y $.
    mulgdi.b $e |- B = ( Base ` G ) $.
    mulgdi.m $e |- .x. = ( .g ` G ) $.
    mulgdi.p $e |- .+ = ( +g ` G ) $.
    $( Group multiple of a sum, for nonnegative multiples.  (Contributed by
       Mario Carneiro, 13-Dec-2014.) $)
    mulgnn0di $p |- ( ( G e. CMnd /\ ( M e. NN0 /\ X e. B /\ Y e. B ) ) ->
      ( M .x. ( X .+ Y ) ) = ( ( M .x. X ) .+ ( M .x. Y ) ) ) $=
      ( wcel wa cn co wceq cc0 c1 cfv cv eqid vx vy vz vk ccmn cn0 w3a csn cseq
      cxp cmnd cmnmnd ad2antrr mndcl 3expb sylan simpll cmncom mndass cuz simpr
      nnuz syl6eleq cfz simplr2 elfznn fvconst2g syl2an eqeltrd simplr3 syl3anc
      adantr oveq12d eqtr4d seqcaopr mulgnn syl2anc 3eqtr4d c0g syl cbs mndidcl
      mulg0 mndlid mpdan oveq1d eqtrd wo simpr1 elnn0 sylib mpjaodan ) DUEKZEUF
      KZFAKZGAKZUGZLZEMKZEFGBNZCNZEFCNZEGCNZBNZOEPOZWRWSLZEBMWTUHUJZQUIZRZEBMFU
      HUJZQUIZRZEBMGUHUJZQUIZRZBNXAXDXFUAUBUCBAUDXJXMXGQEXFDUKKZUASZAKZUBSZAKZL
      ZXQXSBNZAKZWMXPWQWSDULZUMZXPXRXTYCABDXQXSHJUNUOUPXFWMYAYBXSXQBNOZWMWQWSUQ
      WMXRXTYFABDXQXSHJURUOUPXFXPXRXTUCSZAKUGYBYGBNXQXSYGBNBNOYEABDXQXSYGHJUSUP
      XFEMQUTRWRWSVAZVBVCXFUDSZQEVDNKZLZYIXJRZFAXFWOYIMKZYLFOYJWNWOWPWMWSVEZYIE
      VFZMFYIAVGVHZXFWOYJYNVLVIYKYIXMRZGAXFWPYMYQGOYJWNWOWPWMWSVJZYOMGYIAVGVHZX
      FWPYJYRVLVIYKYIXGRZWTYLYQBNXFWTAKZYMYTWTOYJXFXPWOWPUUAYEYNYRABDFGHJUNZVKZ
      YOMWTYIAVGVHYKYLFYQGBYPYSVMVNVOXFWSUUAXAXIOYHUUCABXHCDEWTHJIXHTVPVQXFXBXL
      XCXOBXFWSWOXBXLOYHYNABXKCDEFHJIXKTVPVQXFWSWPXCXOOYHYRABXNCDEGHJIXNTVPVQVM
      VRWRXELZPWTCNZDVSRZUUFBNZXAXDUUDUUEUUFUUGUUDUUAUUEUUFOUUDXPWOWPUUAWMXPWQX
      EYDUMWNWOWPWMXEVEZWNWOWPWMXEVJZUUBVKACDWTUUFHUUFTZIWCVTWMUUGUUFOZWQXEWMXP
      UUKYDXPUUFDWARZKUUKUULDUUFUULTZUUJWBUULBDUUFUUFUUMJUUJWDWEVTUMVNUUDEPWTCW
      RXEVAZWFUUDXBUUFXCUUFBUUDXBPFCNZUUFUUDEPFCUUNWFUUDWOUUOUUFOUUHACDFUUFHUUJ
      IWCVTWGUUDXCPGCNZUUFUUDEPGCUUNWFUUDWPUUPUUFOUUIACDGUUFHUUJIWCVTWGVMVRWRWN
      WSXEWHWMWNWOWPWIEWJWKWL $.

    $( Group multiple of a sum.  (Contributed by Mario Carneiro,
       13-Dec-2014.) $)
    mulgdi $p |- ( ( G e. Abel /\ ( M e. ZZ /\ X e. B /\ Y e. B ) ) ->
      ( M .x. ( X .+ Y ) ) = ( ( M .x. X ) .+ ( M .x. Y ) ) ) $=
      ( wcel wa co wceq ad2antrr cfv adantr syl3anc mulgneg mulgcl cabl w3a cn0
      cz cneg ccmn ablcmn simpr simplr2 simplr3 mulgnn0di cminusg simpr2 simpr3
      syl13anc cgrp ablgrp simpr1 grpcl oveq12d 3eqtr3d ablinvadd eqtr4d fveq2d
      eqid simpl grpinvinv syl2anc wo cr elznn0 simprbi syl mpjaodan ) DUAKZEUD
      KZFAKZGAKZUBZLZEUCKZEFGBMZCMZEFCMZEGCMZBMZNZEUEZUCKZVTWALDUFKZWAVQVRWGVOW
      JVSWADUGZOVTWAUHVPVQVRVOWAUIVPVQVRVOWAUJABCDEFGHIJUKUOVTWILZWCDULPZPZWMPZ
      WFWMPZWMPZWCWFWLWNWPWMWLWNWDWMPZWEWMPZBMZWPWLWHWBCMZWHFCMZWHGCMZBMZWNWTWL
      WJWIVQVRXAXDNVOWJVSWIWKOVTWIUHVTVQWIVOVPVQVRUMZQVTVRWIVOVPVQVRUNZQABCDWHF
      GHIJUKUOVTXAWNNZWIVTDUPKZVPWBAKZXGVOXHVSDUQZQZVOVPVQVRURZVTXHVQVRXIXKXEXF
      ABDFGHJUSRZACDWMEWBHIWMVEZSRQVTXDWTNWIVTXBWRXCWSBVTXHVPVQXBWRNXKXLXEACDWM
      EFHIXNSRVTXHVPVRXCWSNXKXLXFACDWMEGHIXNSRUTQVAVTWPWTNZWIVTVOWDAKZWEAKZXOVO
      VSVFVTXHVPVQXPXKXLXEACDEFHITRZVTXHVPVRXQXKXLXFACDEGHITRZABDWMWDWEHJXNVBRQ
      VCVDWLXHWCAKZWOWCNVOXHVSWIXJOZVTXTWIVTXHVPXIXTXKXLXMACDEWBHITRQADWMWCHXNV
      GVHWLXHWFAKZWQWFNYAVTYBWIVTXHXPXQYBXKXRXSABDWDWEHJUSRQADWMWFHXNVGVHVAVTVP
      WAWIVIZXLVPEVJKYCEVKVLVMVN $.
  $}

  ${
    $d x y z B $.  $d x y z G $.  $d x y z M $.  $d x y z .x. $.
    mulgmhm.b $e |- B = ( Base ` G ) $.
    mulgmhm.m $e |- .x. = ( .g ` G ) $.
    $( The map from ` x ` to ` n x ` for a fixed positive integer ` n ` is a
       monoid homomorphism if the monoid is commutative.  (Contributed by Mario
       Carneiro, 4-May-2015.) $)
    mulgmhm $p |- ( ( G e. CMnd /\ M e. NN0 ) ->
      ( x e. B |-> ( M .x. x ) ) e. ( G MndHom G ) ) $=
      ( vy vz wcel wa cv co cfv wceq wral eqid oveq2 ovex fvmpt ccmn cn0 cplusg
      cmnd cmpt wf c0g w3a cmhm cmnmnd adantr jca mulgnn0cl syl3an1 3expa fmptd
      3anass mulgnn0di sylan2br anassrs mndcl 3expb sylan syl oveqan12d 3eqtr4d
      adantl ralrimivva mndidcl 3syl mulgnn0z eqtrd 3jca ismhm sylanbrc ) DUAJZ
      EUBJZKZDUDJZVSKBBABEALZCMZUEZUFZHLZILZDUCNZMZWBNZWDWBNZWEWBNZWFMZOZIBPHBP
      ZDUGNZWBNZWNOZUHWBDDUIMJVRVSVSVPVSVQDUJZUKZWRULVRWCWMWPVRABWABWBVPVQVTBJZ
      WABJZVPVSVQWSWTWQBCDEVTFGUMUNUOWBQZUPVRWLHIBBVRWDBJZWEBJZKZKZEWGCMZEWDCMZ
      EWECMZWFMZWHWKVPVQXDXFXIOZVQXDKVPVQXBXCUHXJVQXBXCUQBWFCDEWDWEFGWFQZURUSUT
      XEWGBJZWHXFOVRVSXDXLWRVSXBXCXLBWFDWDWEFXKVAVBVCAWGWAXFBWBVTWGECRXAEWGCSTV
      DXDWKXIOVRXBXCWIXGWJXHWFAWDWAXGBWBVTWDECRXAEWDCSTAWEWAXHBWBVTWEECRXAEWECS
      TVEVGVFVHVRWOEWNCMZWNVRVSWNBJWOXMOWRBDWNFWNQZVIAWNWAXMBWBVTWNECRXAEWNCSTV
      JVPVSVQXMWNOWQBCDEWNFGXNVKVCVLVMHIBBWFWFDDWBWNWNFFXKXKXNXNVNVO $.

    $( The map from ` x ` to ` n x ` for a fixed integer ` n ` is a group
       homomorphism if the group is commutative.  (Contributed by Mario
       Carneiro, 4-May-2015.) $)
    mulgghm $p |- ( ( G e. Abel /\ M e. ZZ ) ->
      ( x e. B |-> ( M .x. x ) ) e. ( G GrpHom G ) ) $=
      ( vy vz cabl wcel wa cfv cv co eqid wceq oveq2 ovex fvmpt cz cmpt syl3an1
      cplusg cgrp ablgrp adantr mulgcl 3expa w3a 3anass mulgdi sylan2br anassrs
      fmptd grpcl 3expb sylan syl oveqan12d adantl 3eqtr4d isghmd ) DJKZEUAKZLZ
      HIDUDMZVGDDABEANZCOZUBZBBFFVGPZVKVDDUEKZVEDUFZUGZVNVFABVIBVJVDVEVHBKZVIBK
      ZVDVLVEVOVPVMBCDEVHFGUHUCUIVJPZUOVFHNZBKZINZBKZLZLZEVRVTVGOZCOZEVRCOZEVTC
      OZVGOZWDVJMZVRVJMZVTVJMZVGOZVDVEWBWEWHQZVEWBLVDVEVSWAUJWMVEVSWAUKBVGCDEVR
      VTFGVKULUMUNWCWDBKZWIWEQVFVLWBWNVNVLVSWAWNBVGDVRVTFVKUPUQURAWDVIWEBVJVHWD
      ECRVQEWDCSTUSWBWLWHQVFVSWAWJWFWKWGVGAVRVIWFBVJVHVRECRVQEVRCSTAVTVIWGBVJVH
      VTECRVQEVTCSTUTVAVBVC $.
  $}

  ${
    mulgsubdi.b $e |- B = ( Base ` G ) $.
    mulgsubdi.t $e |- .x. = ( .g ` G ) $.
    mulgsubdi.d $e |- .- = ( -g ` G ) $.
    $( Group multiple of a difference.  (Contributed by Mario Carneiro,
       13-Dec-2014.) $)
    mulgsubdi $p |- ( ( G e. Abel /\ ( M e. ZZ /\ X e. B /\ Y e. B ) ) ->
      ( M .x. ( X .- Y ) ) = ( ( M .x. X ) .- ( M .x. Y ) ) ) $=
      ( wcel w3a cfv co wceq eqid syl2anc syl3anc oveq2d grpsubval cabl cminusg
      cz cplusg simpl simpr1 simpr2 cgrp ablgrp adantr simpr3 grpinvcl syl13anc
      wa mulgdi cneg mulgneg2 mulgneg eqtr3d eqtrd mulgcl 3eqtr4d ) CUAKZDUCKZF
      AKZGAKZLZUNZDFGCUBMZMZCUDMZNZBNZDFBNZDGBNZVIMZVKNZDFGENZBNVNVOENZVHVMVNDV
      JBNZVKNZVQVHVCVDVEVJAKZVMWAOVCVGUEVCVDVEVFUFZVCVDVEVFUGZVHCUHKZVFWBVCWEVG
      CUIUJZVCVDVEVFUKZACVIGHVIPZULQAVKBCDFVJHIVKPZUOUMVHVTVPVNVKVHWEVDVFVTVPOW
      FWCWGWEVDVFLDUPGBNVTVPABCVIDGHIWHUQABCVIDGHIWHURUSRSUTVHVRVLDBVHVEVFVRVLO
      WDWGAVKCVIEFGHWIWHJTQSVHVNAKZVOAKZVSVQOVHWEVDVEWJWFWCWDABCDFHIVARVHWEVDVF
      WKWFWCWGABCDGHIVARAVKCVIEVNVOHWIWHJTQVB $.
  $}

  ${
    $d .+ x y $.  $d .+^ a b x y $.  $d F a b x y $.  $d G x y $.
    $d H i j x y $.  $d X a b x y $.  $d Y a b i j x y $.  $d a b i j x y ph $.
    ghmabl.x $e |- X = ( Base ` G ) $.
    ghmabl.y $e |- Y = ( Base ` H ) $.
    ghmabl.p $e |- .+ = ( +g ` G ) $.
    ghmabl.q $e |- .+^ = ( +g ` H ) $.
    ghmabl.f $e |- ( ( ph /\ x e. X /\ y e. X )
      -> ( F ` ( x .+ y ) ) = ( ( F ` x ) .+^ ( F ` y ) ) ) $.
    ghmabl.1 $e |- ( ph -> F : X -onto-> Y ) $.

    ${
      ghmfghm.3 $e |- ( ph -> G e. Grp ) $.
      $( The function fulfilling the conditions of ~ ghmgrp is a group
         homomorphism.  (Contributed by Thierry Arnoux, 26-Jan-2020.) $)
      ghmfghm $p |- ( ph -> F e. ( G GrpHom H ) ) $=
        ( cv wcel cfv ghmgrp wfo wf fof syl co wceq 3expb isghmd ) ABCDEGHFIJKL
        MNQABCDEFGHIJOKLMNPQUAAIJFUBIJFUCPIJFUDUEABRZISCRZISUJUKDUFFTUJFTUKFTEU
        FUGOUHUI $.
    $}

    ${
      ghmcmn.3 $e |- ( ph -> G e. CMnd ) $.
      $( The image of a commutative monoid ` G ` under a group homomorphism
         ` F ` is a commutative monoid.  (Contributed by Thierry Arnoux,
         26-Jan-2020.) $)
      ghmcmn $p |- ( ph -> H e. CMnd ) $=
        ( wcel co cfv vi vj va vb cmnd wceq wral ccmn cmnmnd syl mhmmnd simp-6l
        cv wa simp-4r simplr cmncom syl3anc fveq2d syl3an1 mhmlem 3eqtr3d simpr
        simpllr oveq12d wrex wfo foelrni adantlr ad2antrr r19.29a adantr anasss
        sylan ralrimivva iscmn sylanbrc ) AHUERUAUMZUBUMZESZVSVRESZUFZUBJUGUAJU
        GHUHRABCDEFGHIJOKLMNPAGUHRZGUERQGUIUJUKAWBUAUBJJAVRJRZVSJRZWBAWDUNZWEUN
        ZUCUMZFTZVRUFZWBUCIWGWHIRZUNZWJUNZUDUMZFTZVSUFZWBUDIWMWNIRZUNZWPUNZWIWO
        ESZWOWIESZVTWAWSWHWNDSZFTWNWHDSZFTWTXAWSXBXCFWSWCWKWQXBXCUFWSAWCAWDWEWK
        WJWQWPULZQUJWGWKWJWQWPUOZWMWQWPUPZIDGWHWNKMUQURUSWSBCWHWNDEFIWSABUMZIRC
        UMZIRXGXHDSFTXGFTXHFTESUFXDOUTZXEXFVAWSBCWNWHDEFIXIXFXEVAVBWSWIVRWOVSEW
        LWJWQWPVDZWRWPVCZVEWSWOVSWIVREXKXJVEVBWGWPUDIVFZWKWJAWEXLWDAIJFVGZWEXLP
        UDIJFVSVHVNVIVJVKWFWJUCIVFZWEAXMWDXNPUCIJFVRVHVNVLVKVMVOUAUBJEHLNVPVQ
        $.
    $}

    ghmabl.3 $e |- ( ph -> G e. Abel ) $.
    $( The image of an abelian group ` G ` under a group homomorphism ` F ` is
       an abelian group.  (Contributed by Mario Carneiro, 12-May-2014.)
       (Revised by Thierry Arnoux, 26-Jan-2020.) $)
    ghmabl $p |- ( ph -> H e. Abel ) $=
      ( cgrp wcel ccmn cabl ablgrp syl ghmgrp ablcmn ghmcmn isabl sylanbrc ) AH
      RSHTSHUASABCDEFGHIJOKLMNPAGUASZGRSQGUBUCUDABCDEFGHIJKLMNOPAUIGTSQGUEUCUFH
      UGUH $.
  $}

  ${
    $d x y B $.  $d x y G $.  $d x y I $.
    invghm.b $e |- B = ( Base ` G ) $.
    invghm.m $e |- I = ( invg ` G ) $.
    $( The inversion map is a group automorphism if and only if the group is
       abelian.  (In general it is only a group homomorphism into the opposite
       group, but in an abelian group the opposite group coincides with the
       group itself.)  (Contributed by Mario Carneiro, 4-May-2015.) $)
    invghm $p |- ( G e. Abel <-> I e. ( G GrpHom G ) ) $=
      ( vx vy cabl wcel cghm co cv wceq wral syl3anc grpinvcl syl2anc grpinvinv
      cfv wa cplusg eqid ablgrp cgrp grpinvf syl ablinvadd 3expb isghmd ghmgrp1
      wf adantr simprr simprl grpinvadd fveq2d simpl ghmlin 3eqtrd grpcl eqtr3d
      oveq12d ralrimivva isabl2 sylanbrc impbii ) BHIZCBBJKIZVGFGBUASZVIBBCAADD
      VIUBZVJBUCZVKVGBUDIZAACUKVKABCDEUEUFVGFLZAIZGLZAIZVMVOVIKZCSVMCSZVOCSZVIK
      ZMAVIBCVMVODVJEUGUHUIVHVLVQVOVMVIKZMZGANFANVGBBCUJZVHWBFGAAVHVNVPTZTZWACS
      ZCSZVQWAWEWGVTCSZVRCSZVSCSZVIKZVQWEWFVTCWEVLVPVNWFVTMVHVLWDWCULZVHVNVPUMZ
      VHVNVPUNZAVIBCVOVMDVJEUOOUPWEVHVRAIZVSAIZWHWKMVHWDUQWEVLVNWOWLWNABCVMDEPQ
      WEVLVPWPWLWMABCVODEPQVIVIBBVRCVSADVJVJUROWEWIVMWJVOVIWEVLVNWIVMMWLWNABCVM
      DERQWEVLVPWJVOMWLWMABCVODERQVBUSWEVLWAAIZWGWAMWLWEVLVPVNWQWLWMWNAVIBVOVMD
      VJUTOABCWADERQVAVCFGAVIBDVJVDVEVF $.
  $}

  ${
    eqgabl.x $e |- X = ( Base ` G ) $.
    eqgabl.n $e |- .- = ( -g ` G ) $.
    eqgabl.r $e |- .~ = ( G ~QG S ) $.
    $( Value of the subgroup coset equivalence relation on an abelian group.
       (Contributed by Mario Carneiro, 14-Jun-2015.) $)
    eqgabl $p |- ( ( G e. Abel /\ S C_ X ) -> ( A .~ B <->
      ( A e. X /\ B e. X /\ ( B .- A ) e. S ) ) ) $=
      ( cabl wcel wa cfv co w3a eqid wceq syl2anc df-3an wss wbr cminusg cplusg
      eqgval simpll cgrp ablgrp ad2antrr simprl simprr ablcom syl3anc grpsubval
      grpinvcl eqtr4d eleq1d pm5.32da 3bitr4g bitrd ) EKLZDGUAZMZABCUBAGLZBGLZA
      EUCNZNZBEUDNZOZDLZPZVDVEBAFOZDLZPZABVHCDEVFKGHVFQZVHQZJUEVCVDVEMZVJMVQVMM
      VKVNVCVQVJVMVCVQMZVIVLDVRVIBVGVHOZVLVRVAVGGLZVEVIVSRVAVBVQUFVREUGLZVDVTVA
      WAVBVQEUHUIVCVDVEUJZGEVFAHVOUOSVCVDVEUKZGVHEVGBHVPULUMVRVEVDVLVSRWCWBGVHE
      VFFBAHVPVOIUNSUPUQURVDVEVJTVDVEVMTUSUT $.
  $}

  ${
    $d x y G $.  $d x y H $.  $d x y S $.
    subgabl.h $e |- H = ( G |`s S ) $.
    $( A subgroup of an abelian group is also abelian.  (Contributed by Mario
       Carneiro, 3-Dec-2014.) $)
    subgabl $p |- ( ( G e. Abel /\ S e. ( SubGrp ` G ) ) -> H e. Abel ) $=
      ( vx vy cabl wcel csubg cfv wa cplusg cbs wceq subgbas adantl eqid sseldd
      cv co ressplusg cgrp subggrp w3a simp1l wss simp1r subgss syl simp2 simp3
      ablcom syl3anc isabld ) BGHZABIJZHZKZEFABLJZCUQACMJNUOABCDOPUQUSCLJNUOAUS
      BCUPDUSQZUAPUQCUBHUOABCDUCPURESZAHZFSZAHZUDZUOVABMJZHVCVFHVAVCUSTVCVAUSTN
      UOUQVBVDUEVEAVFVAVEUQAVFUFUOUQVBVDUGVFABVFQZUHUIZURVBVDUJRVEAVFVCVHURVBVD
      UKRVFUSBVAVCVGUTULUMUN $.

    $( A submonoid of a commutative monoid is also commutative.  (Contributed
       by Mario Carneiro, 10-Jan-2015.) $)
    subcmn $p |- ( ( G e. CMnd /\ H e. Mnd ) -> H e. CMnd ) $=
      ( vx vy wcel cbs cfv cplusg cvv wceq c0 wn eqid syl cress co cv sseli c0g
      ccmn cmnd wa eqidd mndidcl n0i reldmress ovprc2 syl5eq fveq2d base0 nsyl2
      syl6eqr adantl ressplusg simpr simpl ressbasss cmncom syl3an iscmnd ) BUB
      GZCUCGZUDZEFCHIZBJIZCVEVFUEVEAKGZVGCJILVDVHVCVDVFMLZVHVDCUAIZVFGVINVFCVJV
      FOVJOUFVFVJUGPVHNZVFMHIMVKCMHVKCBAQRMDBAQUHUIUJUKULUNUMUOAVGBCKDVGOZUPPVC
      VDUQVEVCESZVFGVMBHIZGFSZVFGVOVNGVMVOVGRVOVMVGRLVCVDURVFVNVMAVNCBDVNOZUSZT
      VFVNVOVQTVNVGBVMVOVPVLUTVAVB $.

    $( A submonoid of a commutative monoid is also commutative.  (Contributed
       by Mario Carneiro, 24-Apr-2016.) $)
    submcmn $p |- ( ( G e. CMnd /\ S e. ( SubMnd ` G ) ) -> H e. CMnd ) $=
      ( csubmnd cfv wcel ccmn cmnd submmnd subcmn sylan2 ) ABEFGBHGCIGCHGACBDJA
      BCDKL $.

    submcmn2.z $e |- Z = ( Cntz ` G ) $.
    $( A submonoid is commutative iff it is a subset of its own centralizer.
       (Contributed by Mario Carneiro, 24-Apr-2016.) $)
    submcmn2 $p |- ( S e. ( SubMnd ` G ) ->
      ( H e. CMnd <-> S C_ ( Z ` S ) ) ) $=
      ( vx vy cfv wcel cv cplusg co wceq wral cbs wss eqid oveqd raleqbidv ccmn
      csubmnd submbas ressplusg eqeq12d submss sscntz syl2anc cmnd submmnd baib
      wb iscmn syl 3bitr4rd ) ABUBIZJZGKZHKZBLIZMZUSURUTMZNZHAOZGAOZURUSCLIZMZU
      SURVFMZNZHCPIZOZGVJOZAADIQZCUAJZUQVDVKGAVJACBEUCZUQVCVIHAVJVOUQVAVGVBVHUQ
      UTVFURUSAUTBCUPEUTRZUDZSUQUTVFUSURVQSUETTUQABPIZQZVSVMVEULVRABVRRZUFZWAGH
      VRUTAABDVTVPFUGUHUQCUIJZVNVLULACBEUJVNWBVLGHVJVFCVJRVFRUMUKUNUO $.
  $}

  ${
    $d x y B $.  $d x y G $.  $d x y S $.  $d x Z $.
    cntzcmn.b $e |- B = ( Base ` G ) $.
    cntzcmn.z $e |- Z = ( Cntz ` G ) $.
    $( The centralizer of any subset in a commutative monoid is the whole
       monoid.  (Contributed by Mario Carneiro, 3-Oct-2015.) $)
    cntzcmn $p |- ( ( G e. CMnd /\ S C_ B ) -> ( Z ` S ) = B ) $=
      ( vx vy ccmn wcel wss wa cfv cntzssv a1i cv w3a cplusg co wceq wral simp2
      simpl1 simpl3 sselda eqid cmncom syl3anc ralrimiva wb cntzel mpbird ssrdv
      3adant1 3expia eqssd ) CIJZBAKZLZBDMZAUTAKUSABCDEFNOUSGAUTUQURGPZAJZVAUTJ
      ZUQURVBQZVCVAHPZCRMZSVEVAVFSTZHBUAZVDVGHBVDVEBJZLUQVBVEAJVGUQURVBVIUCUQUR
      VBVIUDVDBAVEUQURVBUBUEAVFCVAVEEVFUFZUGUHUIURVBVCVHUJUQHAVFBCVADEVJFUKUNUL
      UOUMUP $.
  $}

  ${
    cntzcmnss.b $e |- B = ( Base ` G ) $.
    cntzcmnss.z $e |- Z = ( Cntz ` G ) $.
    $( Any subset in a commutative monoid is a subset of its centralizer.
       (Contributed by AV, 12-Jan-2019.) $)
    cntzcmnss $p |- ( ( G e. CMnd /\ S C_ B ) -> S C_ ( Z ` S ) ) $=
      ( cfv wceq ccmn wcel wss wa cntzcmn wb sseq2 eqcoms biimpd adantld mpcom
      ) BDGZAHZCIJZBAKZLBTKZABCDEFMUAUCUDUBUAUCUDUCUDNATATBOPQRS $.
  $}

  ${
    cntzspan.z $e |- Z = ( Cntz ` G ) $.
    cntzspan.k $e |- K = ( mrCls ` ( SubMnd ` G ) ) $.
    cntzspan.h $e |- H = ( G |`s ( K ` S ) ) $.
    $( If the generators commute, the generated monoid is commutative.
       (Contributed by Mario Carneiro, 25-Apr-2016.) $)
    cntzspan $p |- ( ( G e. Mnd /\ S C_ ( Z ` S ) ) -> H e. CMnd ) $=
      ( cmnd wcel cfv wss wa ccmn cntzsubm syldan mrcsscl syl3anc wb syl2anc
      csubmnd cbs cmre cacs submacs adantr acsmred simpr cntzssv syl6ss mrcssvd
      eqid cntzrec mpbid mrccl submcmn2 syl mpbird ) BIJZAAEKZLZMZCNJZADKZVDEKZ
      LZVBBUAKZBUBKZUCKJZAVELZVEVGJZVFVBVGVHUSVGVHUDKJVAVHBVHULZUEUFUGZVBVDUTLZ
      VJVBVIVAUTVGJZVNVMUSVAUHZUSVAAVHLZVOVBAUTVHVPVHABEVLFUIUJZVHABEVLFOPVGADU
      TVHGQRVBVDVHLZVQVNVJSVBVGADVHVMGUKZVRVHVDABEVLFUMTUNUSVAVSVKVTVHVDBEVLFOP
      VGADVEVHGQRVBVDVGJZVCVFSVBVIVQWAVMVRVGADVHGUOTVDBCEHFUPUQUR $.
  $}

  ${
    cntzcmnf.b $e |- B = ( Base ` G ) $.
    cntzcmnf.z $e |- Z = ( Cntz ` G ) $.
    cntzcmnf.g $e |- ( ph -> G e. CMnd ) $.
    cntzcmnf.f $e |- ( ph -> F : A --> B ) $.
    $( Discharge the centralizer assumption in a commutative monoid.
       (Contributed by Mario Carneiro, 24-Apr-2016.) $)
    cntzcmnf $p |- ( ph -> ran F C_ ( Z ` ran F ) ) $=
      ( crn cfv wf wss frn syl ccmn wcel wceq cntzcmn syl2anc sseqtr4d ) ADKZCU
      CFLZABCDMUCCNZJBCDOPZAEQRUEUDCSIUFCUCEFGHTUAUB $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x y M $.  $d x y N $.  $d x y .+ $.
    ghmplusg.p $e |- .+ = ( +g ` N ) $.
    $( The pointwise sum of two linear functions is linear.  (Contributed by
       Stefan O'Rear, 5-Sep-2015.) $)
    ghmplusg $p |- ( ( N e. Abel /\ F e. ( M GrpHom N ) /\
          G e. ( M GrpHom N ) ) -> ( F oF .+ G ) e. ( M GrpHom N ) ) $=
      ( vx vy wcel co cfv cbs eqid 3ad2ant3 cvv wa 3expb wceq syl ffvelrnda w3a
      cabl cghm cplusg cof cgrp ghmgrp1 ghmgrp2 cv grpcl sylan wf ghmf 3ad2ant2
      fvexd inidm ghmlin 3ad2antl2 3ad2antl3 oveq12d ccmn simpl1 ablcmn adantrr
      off adantrl cmn4 syl122anc eqtrd wfn adantr fnfvof syl22anc simprl simprr
      ffn 3eqtr4d isghmd ) EUBIZBDEUCJZIZCVTIZUAZGHDUDKZADEBCAUEJZDLKZELKZWFMZW
      GMZWDMZFWBVSDUFIZWADECUGNZWBVSEUFIZWADECUHNZWCGHWFWFWFAWGWGWGBCOOWCWMGUIZ
      WGIZHUIZWGIZPWOWQAJWGIZWNWMWPWRWSWGAEWOWQWIFUJQUKWAVSWFWGBULZWBDEBWFWGWHW
      IUMUNZWBVSWFWGCULZWADECWFWGWHWIUMNZWCDLUOZXDWFUPVEWCWOWFIZWQWFIZPZPZWOWQW
      DJZBKZXICKZAJZWOBKZWOCKZAJZWQBKZWQCKZAJZAJZXIWEKZWOWEKZWQWEKZAJXHXLXMXPAJ
      ZXNXQAJZAJZXSXHXJYCXKYDAWAVSXGXJYCRZWBWAXEXFYFWDADEWOBWQWFWHWJFUQQURWBVSX
      GXKYDRZWAWBXEXFYGWDADEWOCWQWFWHWJFUQQUSUTXHEVAIZXMWGIZXPWGIZXNWGIZXQWGIZY
      EXSRXHVSYHVSWAWBXGVBEVCSWCXEYIXFWCWFWGWOBXATVDWCXFYJXEWCWFWGWQBXATVFWCXEY
      KXFWCWFWGWOCXCTVDWCXFYLXEWCWFWGWQCXCTVFWGAEXQXMXPXNWIFVGVHVIXHBWFVJZCWFVJ
      ZWFOIZXIWFIZXTXLRWCYMXGWCWTYMXAWFWGBVPSVKZWCYNXGWCXBYNXCWFWGCVPSVKZXHDLUO
      ZWCWKXGYPWLWKXEXFYPWFWDDWOWQWHWJUJQUKWFABCOXIVLVMXHYAXOYBXRAXHYMYNYOXEYAX
      ORYQYRYSWCXEXFVNWFABCOWOVLVMXHYMYNYOXFYBXRRYQYRYSWCXEXFVOWFABCOWQVLVMUTVQ
      VR $.
  $}

  ${
    $d x y z G $.
    $( Every subgroup of an abelian group is normal.  (Contributed by Mario
       Carneiro, 14-Jun-2015.) $)
    ablnsg $p |- ( G e. Abel -> ( NrmSGrp ` G ) = ( SubGrp ` G ) ) $=
      ( vx vy vz cabl wcel cnsg cfv csubg cv cplusg co wb cbs wral wa wceq eqid
      ablcom 3expb eleq1d ralrimivva isnsg rbaib syl eqrdv ) AEFZBAGHZAIHZUGCJZ
      DJZAKHZLZBJZFUKUJULLZUNFMZDANHZOCUQOZUNUHFZUNUIFZMUGUPCDUQUQUGUJUQFZUKUQF
      ZPPUMUOUNUGVAVBUMUOQUQULAUJUKUQRZULRZSTUAUBUSUTURCDULUNAUQVCVDUCUDUEUF $.
  $}

  ${
    odadd1.1 $e |- O = ( od ` G ) $.
    odadd1.2 $e |- X = ( Base ` G ) $.
    odadd1.3 $e |- .+ = ( +g ` G ) $.
    $( The order of a product in an abelian group divides the LCM of the orders
       of the factors.  (Contributed by Mario Carneiro, 20-Oct-2015.) $)
    odadd1 $p |- ( ( G e. Abel /\ A e. X /\ B e. X ) ->
      ( ( O ` ( A .+ B ) ) x. ( ( O ` A ) gcd ( O ` B ) ) ) ||
        ( ( O ` A ) x. ( O ` B ) ) ) $=
      ( wcel co cmul cdvds wbr cc0 wceq cz adantr wb syl3anc cabl w3a cgcd cgrp
      cfv wa cn0 ablgrp grpcl syl3an1 odcl syl 3ad2ant2 3ad2ant3 gcdcld zmulcld
      nn0zd dvds0 gcdeq0 syl2anc biimpa oveq12 0cn mul01i breqtrrd wne cdiv cmg
      syl6eq c0g simpl1 gcddvds simpld wi dvdsmultr1 mpd dvdsval2 simpl2 simpl3
      simpr mpbid mulgdi syl13anc simprd dvdsmul1 divassd oddvds mulcomd oveq1d
      eqid zcnd eqtrd oveq12d grpidcl grplid mpbird dvdsmulcr syl112anc breqtrd
      divcan1d pm2.61dane ) DUAJZAFJZBFJZUBZABCKZEUEZAEUEZBEUEZUCKZLKZXHXILKZMN
      XJOXEXJOPZUFZXKOXLMXNXKQJZXKOMNXEXOXMXEXGXJXEXGXEXFFJZXGUGJXBDUDJZXCXDXPD
      UHZFCDABHIUIUJZXFDEFHGUKULUQZXEXJXEXHXIXEXHXCXBXHUGJXDADEFHGUKUMUQZXEXIXD
      XBXIUGJXCBDEFHGUKUNUQZUOUQZUPRXKURULXNXHOPXIOPUFZXLOPXEXMYDXEXHQJZXIQJZXM
      YDSYAYBXHXIUSUTVAYDXLOOLKOXHOXIOLVBOVCVDVIULVEXEXJOVFZUFZXKXLXJVGKZXJLKZX
      LMYHXKYJMNZXGYIMNZYHYLYIXFDVHUEZKZDVJUEZPZYHYNYIAYMKZYIBYMKZCKZYOYHXBYIQJ
      ZXCXDYNYSPXBXCXDYGVKZYHXJXLMNZYTYHXJXHMNZUUBYHUUCXJXIMNZYHYEYFUUCUUDUFXEY
      EYGYARZXEYFYGYBRZXHXIVLUTZVMZYHXJQJZYEYFUUCUUBVNXEUUIYGYCRZUUEUUFXJXHXIVO
      TVPYHUUIYGXLQJUUBYTSUUJXEYGVTZYHXHXIUUEUUFUPZXJXLVQTWAZXBXCXDYGVRZXBXCXDY
      GVSZFCYMDYIABHYMWJZIWBWCYHYSYOYOCKZYOYHYQYOYRYOCYHXHYIMNZYQYOPZYHXHXHXIXJ
      VGKZLKZYIMYHYEUUTQJZXHUVAMNUUEYHUUDUVBYHUUCUUDUUGWDYHUUIYGYFUUDUVBSUUJUUK
      UUFXJXIVQTWAXHUUTWEUTYHXHXIXJYHXHUUEWKZYHXIUUFWKZYHXJUUJWKZUUKWFVEYHXQXCY
      TUURUUSSYHXBXQUUAXRULZUUNUUMAYMDYIEFYOHGUUPYOWJZWGTWAYHXIYIMNZYRYOPZYHXIX
      IXHXJVGKZLKZYIMYHYFUVJQJZXIUVKMNUUFYHUUCUVLUUHYHUUIYGYEUUCUVLSUUJUUKUUEXJ
      XHVQTWAXIUVJWEUTYHYIXIXHLKZXJVGKUVKYHXLUVMXJVGYHXHXIUVCUVDWHWIYHXIXHXJUVD
      UVCUVEUUKWFWLVEYHXQXDYTUVHUVISUVFUUOUUMBYMDYIEFYOHGUUPUVGWGTWAWMYHXQYOFJZ
      UUQYOPUVFYHXQUVNUVFFDYOHUVGWNULFCDYOYOHIUVGWOUTWLWLYHXQXPYTYLYPSUVFXEXPYG
      XSRUUMXFYMDYIEFYOHGUUPUVGWGTWPYHXGQJZYTUUIYGYKYLSXEUVOYGXTRUUMUUJUUKXJXGY
      IWQWRWPYHXLXJYHXLUULWKUVEUUKWTWSXA $.

    $( The order of a product in an abelian group is divisible by the LCM of
       the orders of the factors divided by the GCD. (Contributed by Mario
       Carneiro, 20-Oct-2015.) $)
    odadd2 $p |- ( ( G e. Abel /\ A e. X /\ B e. X ) ->
      ( ( O ` A ) x. ( O ` B ) ) ||
        ( ( O ` ( A .+ B ) ) x. ( ( ( O ` A ) gcd ( O ` B ) ) ^ 2 ) ) ) $=
      ( wcel cmul co cdvds wbr cc0 wceq cz wb syl3anc mpbid cabl w3a cgcd c2 wa
      cfv cexp cn0 3ad2ant2 nn0zd 3ad2ant3 zmulcld adantr dvds0 syl simpr sq0id
      odcl oveq2d cgrp ablgrp grpcl syl3an1 zcnd mul01d eqtrd breqtrrd wne cdiv
      gcdcld nn0cnd sqvald gcddvds syl2anc simpld dvdsval2 simprd mul4d oveq12d
      divcan1d 3eqtr2d dvdsmul2 cmg c0g simpl1 simpl2 simpl3 eqid mulgdi oddvds
      syl13anc dvdsmul1 mulgcl grprid 3eqtr3rd mpbird wi dvdsgcd mp2and breqtrd
      mulgcd eqbrtrd dvdsmulcr syl112anc oveq1d grplid c1 1cnd mulid2d 3eqtr2rd
      mulgcdr mulcan2ad coprmdvds2 syl31anc zsqcl dvdsmulc eqbrtrrd pm2.61dane
      mpd ) DUAJZAFJZBFJZUBZAEUFZBEUFZKLZABCLZEUFZYDYEUCLZUDUGLZKLZMNYIOYCYIOPZ
      UEZYFOYKMYMYFQJZYFOMNYCYNYLYCYDYEYCYDYAXTYDUHJYBADEFHGURUIUJZYCYEYBXTYEUH
      JYABDEFHGURUKUJZULUMYFUNUOYMYKYHOKLOYMYJOYHKYMYIYCYLUPUQUSYMYHYMYHYCYHQJZ
      YLYCYHYCYGFJZYHUHJZXTDUTJZYAYBYRDVAZFCDABHIVBVCZYGDEFHGURUOZUJZUMVDVEVFVG
      YCYIOVHZUEZYDYIVILZYEYIVILZKLZYJKLZYFYKMUUFUUJUUIYIYIKLZKLUUGYIKLZUUHYIKL
      ZKLYFUUFYJUUKUUIKUUFYIUUFYIUUFYDYEYCYDQJZUUEYOUMZYCYEQJZUUEYPUMZVJZVKZVLU
      SUUFUUGYIUUHYIUUFUUGUUFYIYDMNZUUGQJZUUFUUTYIYEMNZUUFUUNUUPUUTUVBUEUUOUUQY
      DYEVMVNZVOUUFYIQJZUUEUUNUUTUVARUUFYIUURUJZYCUUEUPZUUOYIYDVPSTZVDUUSUUFUUH
      UUFUVBUUHQJZUUFUUTUVBUVCVQUUFUVDUUEUUPUVBUVHRUVEUVFUUQYIYEVPSTZVDUUSVRUUF
      UULYDUUMYEKUUFYDYIUUFYDUUOVDUUSUVFVTZUUFYEYIUUFYEUUQVDUUSUVFVTZVSWAUUFUUI
      YHMNZUUJYKMNZUUFUUGYHMNZUUHYHMNZUVLUUFUULYHYIKLZMNZUVNUUFUULYDUVPMUVJUUFY
      DYHYDKLZYHYEKLZUCLZUVPMUUFYDUVRMNZYDUVSMNZYDUVTMNZUUFYQUUNUWAYCYQUUEUUDUM
      ZUUOYHYDWBVNZUUFUWBUVSADWCUFZLZDWDUFZPZUUFUVSYGUWFLZUWGUWHCLZUWHUWGUUFUWJ
      UWGUVSBUWFLZCLZUWKUUFXTUVSQJZYAYBUWJUWMPXTYAYBUUEWEZUUFYHYEUWDUUQULZXTYAY
      BUUEWFZXTYAYBUUEWGZFCUWFDUVSABHUWFWHZIWIWKUUFUWLUWHUWGCUUFYEUVSMNZUWLUWHP
      ZUUFYQUUPUWTUWDUUQYHYEWBVNZUUFYTYBUWNUWTUXARUUFXTYTUWOUUAUOZUWRUWPBUWFDUV
      SEFUWHHGUWSUWHWHZWJSTUSVFUUFYHUVSMNZUWJUWHPZUUFYQUUPUXEUWDUUQYHYEWLVNUUFY
      TYRUWNUXEUXFRUXCYCYRUUEUUBUMZUWPYGUWFDUVSEFUWHHGUWSUXDWJSTUUFYTUWGFJZUWKU
      WGPUXCUUFYTUWNYAUXHUXCUWPUWQFUWFDUVSAHUWSWMSFCDUWGUWHHIUXDWNVNWOUUFYTYAUW
      NUWBUWIRUXCUWQUWPAUWFDUVSEFUWHHGUWSUXDWJSWPUUFUUNUVRQJZUWNUWAUWBUEUWCWQUU
      OUUFYHYDUWDUUOULZUWPYDUVRUVSWRSWSUUFYSUUNUUPUVTUVPPYCYSUUEUUCUMUUOUUQYHYD
      YEXASZWTXBUUFUVAYQUVDUUEUVQUVNRUVGUWDUVEUVFYIUUGYHXCXDTUUFUUMUVPMNZUVOUUF
      UUMYEUVPMUVKUUFYEUVTUVPMUUFYEUVRMNZUWTYEUVTMNZUUFUXMUVRBUWFLZUWHPZUUFUVRY
      GUWFLZUWHUXOCLZUWHUXOUUFUXQUVRAUWFLZUXOCLZUXRUUFXTUXIYAYBUXQUXTPUWOUXJUWQ
      UWRFCUWFDUVRABHUWSIWIWKUUFUXSUWHUXOCUUFUWAUXSUWHPZUWEUUFYTYAUXIUWAUYARUXC
      UWQUXJAUWFDUVREFUWHHGUWSUXDWJSTXEVFUUFYHUVRMNZUXQUWHPZUUFYQUUNUYBUWDUUOYH
      YDWLVNUUFYTYRUXIUYBUYCRUXCUXGUXJYGUWFDUVREFUWHHGUWSUXDWJSTUUFYTUXOFJZUXRU
      XOPUXCUUFYTUXIYBUYDUXCUXJUWRFUWFDUVRBHUWSWMSFCDUXOUWHHIUXDXFVNWOUUFYTYBUX
      IUXMUXPRUXCUWRUXJBUWFDUVREFUWHHGUWSUXDWJSWPUXBUUFUUPUXIUWNUXMUWTUEUXNWQUU
      QUXJUWPYEUVRUVSWRSWSUXKWTXBUUFUVHYQUVDUUEUXLUVORUVIUWDUVEUVFYIUUHYHXCXDTU
      UFUVAUVHYQUUGUUHUCLZXGPUVNUVOUEUVLWQUVGUVIUWDUUFUYEXGYIUUFUYEUUFUUGUUHUVG
      UVIVJVKUUFXHUUSUVFUUFXGYIKLYIUULUUMUCLZUYEYIKLZUUFYIUUSXIUUFUULYDUUMYEUCU
      VJUVKVSUUFUVAUVHYIUHJUYFUYGPUVGUVIUURUUGUUHYIXKSXJXLYHUUGUUHXMXNWSUUFUUIQ
      JYQYJQJZUVLUVMWQUUFUUGUUHUVGUVIULUWDUUFUVDUYHUVEYIXOUOYJUUIYHXPSXSXQXR $.

    $( The order of a product is the product of the orders, if the factors have
       coprime order.  (Contributed by Mario Carneiro, 20-Oct-2015.) $)
    odadd $p |- ( ( ( G e. Abel /\ A e. X /\ B e. X ) /\
      ( ( O ` A ) gcd ( O ` B ) ) = 1 ) ->
        ( O ` ( A .+ B ) ) = ( ( O ` A ) x. ( O ` B ) ) ) $=
      ( wcel cfv co c1 cn0 cmul cdvds wbr syl odcl c2 cabl w3a cgcd wceq simpl1
      wa cgrp ablgrp simpl2 simpl3 grpcl syl3anc nn0mulcld simpr oveq2d mulid1d
      nn0cnd eqtrd odadd1 adantr eqbrtrrd cexp odadd2 oveq1d sq1 syl6eq breqtrd
      dvdseq syl22anc ) DUAJZAFJZBFJZUBZAEKZBEKZUCLZMUDZUFZABCLZEKZNJZVNVOOLZNJ
      VTWBPQWBVTPQVTWBUDVRVSFJZWAVRDUGJZVKVLWCVRVJWDVJVKVLVQUEDUHRVJVKVLVQUIZVJ
      VKVLVQUJZFCDABHIUKULVSDEFHGSRZVRVNVOVRVKVNNJWEADEFHGSRVRVLVONJWFBDEFHGSRU
      MVRVTVPOLZVTWBPVRWHVTMOLZVTVRVPMVTOVMVQUNZUOVRVTVRVTWGUQUPZURVMWHWBPQVQAB
      CDEFGHIUSUTVAVRWBVTVPTVBLZOLZVTPVMWBWMPQVQABCDEFGHIVCUTVRWMWIVTVRWLMVTOVR
      WLMTVBLMVRVPMTVBWJVDVEVFUOWKURVGVTWBVHVI $.
  $}

  ${
    $d p x y A $.  $d n x y E $.  $d x y G $.  $d n p x y O $.  $d p x y ph $.
    $d p x y X $.
    gexex.1 $e |- X = ( Base ` G ) $.
    gexex.2 $e |- E = ( gEx ` G ) $.
    $( A group with exponent 2 (or 1) is abelian.  (Contributed by Mario
       Carneiro, 24-Apr-2016.) $)
    gex2abl $p |- ( ( G e. Grp /\ E || 2 ) -> G e. Abel ) $=
      ( vx vy wcel c2 cfv wceq cv co grpass syl13anc mulg2 syl gexdvdsi syl3anc
      eqid cgrp cdvds wbr wa cplusg cbs a1i eqidd simpl w3a c0g cmg simp2 simp3
      simp1l simp1r eqtr3d oveq2d grprid syl2anc 3eqtrd oveq1d 3eqtr2d grpcl wb
      grplcan mpbid isabld ) BUAHZAIUBUCZUDZFGCBUEJZBCBUFJKVKDUGVKVLUHVIVJUIVKF
      LZCHZGLZCHZUJZVMVOVLMZVRVLMZVRVOVMVLMZVLMZKZVRVTKZVQVRVOVLMZVMVLMZVSWAVQW
      EBUKJZIVRBULJZMZVSVQWEVMVMVLMZIVMWGMZWFVQWDVMVMVLVQWDVMVOVOVLMZVLMZVMWFVL
      MZVMVQVIVNVPVPWDWLKVIVJVNVPUOZVKVNVPUMZVKVNVPUNZWPCVLBVMVOVODVLTZNOVQWKWF
      VMVLVQIVOWGMZWKWFVQVPWRWKKWPCVLWGBVODWGTZWQPQVQVIVPVJWRWFKWNWPVIVJVNVPUPZ
      VOWGABICWFDEWSWFTZRSUQURVQVIVNWMVMKWNWOCVLBVMWFDWQXAUSUTVAVBVQVNWJWIKWOCV
      LWGBVMDWSWQPQVQVIVNVJWJWFKWNWOWTVMWGABICWFDEWSXARSVCVQVIVRCHZVJWHWFKWNVQV
      IVNVPXBWNWOWPCVLBVMVODWQVDSZWTVRWGABICWFDEWSXARSVQXBWHVSKXCCVLWGBVRDWSWQP
      QVCVQVIXBVPVNWEWAKWNXCWPWOCVLBVRVOVMDWQNOUQVQVIXBVTCHZXBWBWCVEWNXCVQVIVPV
      NXDWNWPWOCVLBVOVMDWQVDSXCCVLBVRVTVRDWQVFOVGVH $.

    gexex.3 $e |- O = ( od ` G ) $.
    ${
      gexexlem.1 $e |- ( ph -> G e. Abel ) $.
      gexexlem.2 $e |- ( ph -> E e. NN ) $.
      gexexlem.3 $e |- ( ph -> A e. X ) $.
      gexexlem.4 $e |- ( ( ph /\ y e. X ) -> ( O ` y ) <_ ( O ` A ) ) $.
      $( Lemma for ~ gexex .  (Contributed by Mario Carneiro, 24-Apr-2016.) $)
      gexexlem $p |- ( ph -> ( O ` A ) = E ) $=
        ( wcel wbr wceq syl2anc co syl3anc vx vp cfv cn0 cdvds odcl nnnn0d cgrp
        syl cabl ablgrp gexod cv wral wa cpc cle cprime cexp cdiv cmul cmg cgcd
        cplusg c1 ad2antrr cz cn prmnn adantl simpr gexnnod pccld nnexpcld nnzd
        eqid mulgcl simplr pcdvds wb nndivdvds mpbid odmulg gcdeq mpbird oveq1d
        eqtrd nnne0d divcan3d eqtr2d divcan1d dvdsmul1 breqtrd 3eqtrrd mulcanad
        nncnd oveq12d gcdcom wn pcndvds2 coprm wi prmz rpexp1i mpd 3eqtrd odadd
        syl31anc grpcl ralrimiva fveq2 breq1d rspcv sylc eqbrtrrd lemuldivd crp
        nnred nnrpd nnrp cc0 clt rpregt0 lediv2 syl3an nn0zd cuz prmuz2 eluz2b2
        cr c2 simprbi leexp2d adantr pc2dvds gexdvds2 dvdseq syl22anc ) ACFUCZU
        DOZDUDOYSDUEPZDYSUEPZYSDQACGOZYTMCEFGHJUFUIZADLUGAEUHOZUUCUUAAEUJOZUUEK
        EUKUIZMCDEFGHIJULRAUUBUAUMZFUCZYSUEPZUAGUNZAUUJUAGAUUHGOZUOZUUJUBUMZUUI
        UPSZUUNYSUPSZUQPZUBURUNZUUMUUQUBURUUMUUNUROZUOZUUQUUNUUOUSSZUUNUUPUSSZU
        QPZUUTUVCYSUVBUTSZYSUVAUTSUQPZUUTUVDUVAVASZYSUQPUVEUUTUVBCEVBUCZSZUUIUV
        AUTSZUUHUVGSZEVDUCZSZFUCZUVFYSUQUUTUVMUVHFUCZUVJFUCZVASZUVFUUTUUFUVHGOZ
        UVJGOZUVNUVOVCSZVEQUVMUVPQAUUFUULUUSKVFUUTUUEUVBVGOZUUCUVQAUUEUULUUSUUG
        VFZUUTUVBUUTUUNUUPUUSUUNVHOZUUMUUNVIVJZUUTUUNYSUUMUUSVKZUUTUUEDVHOZUUCY
        SVHOZUWAAUWEUULUUSLVFZAUUCUULUUSMVFZCDEFGHIJVLTZVMZVNZVOZUWHGUVGEUVBCHU
        VGVPZVQTZUUTUUEUVIVGOZUULUVRUWAUUTUVIUUTUVAUUIUEPZUVIVHOZUUTUUSUUIVHOZU
        WPUWDUUTUUEUWEUULUWRUWAUWGAUULUUSVRZUUHDEFGHIJVLTZUUNUUIVSRUUTUWRUVAVHO
        ZUWPUWQVTUWTUUTUUNUUOUWCUUTUUNUUIUWDUWTVMZVNZUUIUVAWARWBZVOZUWSGUVGEUVI
        UUHHUWMVQTZUUTUVSUVDUVAVCSZUVAUVDVCSZVEUUTUVNUVDUVOUVAVCUUTUVDUVBUVNVAS
        ZUVBUTSUVNUUTYSUXIUVBUTUUTYSUVBYSVCSZUVNVASZUXIUUTUUEUUCUVTYSUXKQUWAUWH
        UWLCUVGEUVBFGHJUWMWCTUUTUXJUVBUVNVAUUTUXJUVBQZUVBYSUEPZUUTUUSUWFUXMUWDU
        WIUUNYSVSRZUUTUVBVHOZUWFUXLUXMVTUWKUWIUVBYSWDRWEWFWGWFUUTUVNUVBUUTUVNUU
        TUUEUWEUVQUVNVHOUWAUWGUWNUVHDEFGHIJVLTWPUUTUVBUWKWPUUTUVBUWKWHWIWJZUUTU
        VOUVAUVIUUTUVOUUTUUEUWEUVRUVOVHOUWAUWGUXFUVJDEFGHIJVLTWPUUTUVAUXCWPZUUT
        UVIUXDWPUUTUVIUXDWHUUTUVIUVAVASZUUIUVIUUIVCSZUVOVASZUVIUVOVASUUTUUIUVAU
        UTUUIUWTWPUXQUUTUVAUXCWHWKZUUTUUEUULUWOUUIUXTQUWAUWSUXEUUHUVGEUVIFGHJUW
        MWCTUUTUXSUVIUVOVAUUTUXSUVIQZUVIUUIUEPZUUTUVIUXRUUIUEUUTUWOUVAVGOZUVIUX
        RUEPUXEUUTUVAUXCVOZUVIUVAWLRUYAWMUUTUWQUWRUYBUYCVTUXDUWTUVIUUIWDRWEWFWN
        WOZWQUUTUVDVGOZUYDUXGUXHQUUTUVDUUTUXMUVDVHOZUXNUUTUWFUXOUXMUYHVTUWIUWKY
        SUVBWARWBZVOZUYEUVDUVAWRRUUTUUNUVDVCSVEQZUXHVEQZUUTUUNUVDUEPWSZUYKUUTUU
        SUWFUYMUWDUWIUUNYSWTRUUTUUSUYGUYMUYKVTUWDUYJUUNUVDXARWBUUTUUNVGOZUYGUUO
        UDOUYKUYLXBUUSUYNUUMUUNXCVJUYJUXBUUNUVDUUOXDTXEXFUVHUVJUVKEFGJHUVKVPZXG
        XHUUTUVNUVDUVOUVAVAUXPUYFWQWGUUTUVLGOZBUMZFUCZYSUQPZBGUNZUVMYSUQPZUUTUU
        EUVQUVRUYPUWAUWNUXFGUVKEUVHUVJHUYOXITAUYTUULUUSAUYSBGNXJVFUYSVUABUVLGUY
        QUVLQUYRUVMYSUQUYQUVLFXKXLXMXNXOUUTUVDYSUVAUUTUVDUYIXRUUTYSUWIXRUUTUVAU
        XCXSXPWBUUTUXAUXOUWFUVCUVEVTZUXCUWKUWIUXAUVAXQOZUXOUVBXQOZUWFYSXQOZVUBU
        VAXTUVBXTYSXTVUCUVAYJOYAUVAYBPUOVUDUVBYJOYAUVBYBPUOVUEYSYJOYAYSYBPUOVUB
        UVAYCUVBYCYSYCUVAUVBYSYDYEYETWEUUTUUNUUOUUPUUTUUNUWCXRUUTUUOUXBYFUUTUUP
        UWJYFUUTUUNYKYGUCOZVEUUNYBPZUUSVUFUUMUUNYHVJVUFUWBVUGUUNYIYLUIYMWEXJUUM
        UUIVGOYSVGOZUUJUURVTUUMUUIUULUUIUDOAUUHEFGHJUFVJYFAVUHUULAYSUUDYFZYNUUI
        YSUBYORWEXJAUUEVUHUUBUUKVTUUGVUIUADEYSFGHIJYPRWEYSDYQYR $.
    $}

    $( In an abelian group with finite exponent, there is an element in the
       group with order equal to the exponent.  In other words, all orders of
       elements divide the largest order of an element of the group.  This
       fails if ` E = 0 ` , for example in an infinite p-group, where there are
       elements of arbitrarily large orders (so ` E ` is zero) but no elements
       of infinite order.  (Contributed by Mario Carneiro, 24-Apr-2016.) $)
    gexex $p |- ( ( G e. Abel /\ E e. NN ) -> E. x e. X ( O ` x ) = E ) $=
      ( vy vn wcel wa cv wceq cle cz wbr cn0 ax-mp c0 cabl cn cfv crn cr simpll
      clt csup simplr simprl wss wral wrex wf odf frn nn0ssz sstri adantl cdvds
      a1i cgrp ablgrp adantr gexod sylan wi odcl nn0zd dvdsle syl2anc ralrimiva
      nnz mpd wfn ffn breq1 ralrn sylibr breq2 ralbidv rspcev ad2antrr fnfvelrn
      wb suprzub syl3anc simplrr breqtrrd gexexlem wne grpbn0 syl eqeq1i dm0rn0
      cdm fdmi bitr3i necon3bii sylib suprzcl2 fvelrnb reximddv ) CUAKZBUBKZLZA
      MZDUCZDUDZUEUGUHZNZXHBNAEXFXGEKZXKLZLZIXGBCDEFGHXDXEXMUFXDXEXMUIXFXLXKUJX
      NIMZEKZLZXODUCZXJXHOXQXIPUKZXOJMZOQZIXIULZJPUMZXRXIKZXRXJOQXSXQXIRPERDUNZ
      XIRUKCDEFHUOZERDUPSUQURZVAXFYCXMXPXFBPKZXOBOQZIXIULZYCXEYHXDBVMUSXFXHBOQZ
      AEULZYJXFYKAEXFXLLZXHBUTQZYKXFCVBKZXLYNXDYOXECVCVDZXGBCDEFGHVEVFYMXHPKXEY
      NYKVGYMXHXLXHRKXFXGCDEFHVHUSVIXDXEXLUIXHBVJVKVNVLDEVOZYJYLWEYEYQYFERDVPSZ
      YIYKIAEDXOXHBOVQVRSVSYBYJJBPXTBNYAYIIXIXTBXOOVTWAWBVKZWCXNYQXPYDYQXNYRVAE
      XODWDVFJIXIXRWFWGXFXLXKXPWHWIWJXFXJXIKZXKAEUMZXFXSXITWKZYCYTXSXFYGVAXFETW
      KZUUBXFYOUUCYPECFWLWMETXITETNDWPZTNXITNUUDETERDYFWQWNDWOWRWSWTYSJIXIXAWGY
      QYTUUAWEYRAEXJDXBSWTXC $.
  $}

  ${
    $d x y z B $.  $d x y z G $.  $d x y z N $.  $d x y z O $.
    torsubg.1 $e |- O = ( od ` G ) $.
    $( The set of all elements of finite order forms a subgroup of any abelian
       group, called the torsion subgroup.  (Contributed by Mario Carneiro,
       20-Oct-2015.) $)
    torsubg $p |- ( G e. Abel -> ( `' O " NN ) e. ( SubGrp ` G ) ) $=
      ( vx vy wcel cn cfv co wa cn0 eqid syl wceq ax-mp elpreima cc0 cmul cdvds
      wb cabl ccnv cima csubg cbs wss c0 wne cv cplusg cminusg cdm cnvimass odf
      wral fdmi sseqtri a1i c0g cgrp ablgrp grpidcl c1 od1 1nn syl6eqel wfn ffn
      sylanbrc ne0i ad2antrr sseli ad2antlr adantl grpcl syl3anc cgcd 0nnn odcl
      wf nn0zd gcdcld nn0cnd mul02d breq1d zmulcld 0dvds bitrd simprbi nnmulcld
      wbr cz eleq1 syl5ibcom sylbid mtoi simpll odadd1 oveq1 wo elnn0 sylib ord
      mtod mt3d ralrimiva grpinvcl syl2an odinv eqeltrd jca issubg2 mpbir3and
      w3a ) AUAFZBUBGUCZAUDHFZXPAUEHZUFZXPUGUHZDUIZEUIZAUJHZIZXPFZEXPUOZYAAUKHZ
      HZXPFZJZDXPUOZXSXOXPBULXRBGUMXRKBABXRXRLZCUNZUPUQZURXOAUSHZXPFZXTXOYOXRFZ
      YOBHZGFZYPXOAUTFZYQAVAZXRAYOYLYOLZVBMXOYRVCGXOYTYRVCNUUAABYOCUUBVDMVEVFBX
      RVGZYPYQYSJTXRKBVTUUCYMXRKBVHOZXRYOGBPOVIXPYOVJMXOYJDXPXOYAXPFZJZYFYIUUFY
      EEXPUUFYBXPFZJZYDXRFZYDBHZGFZYEUUHYTYAXRFZYBXRFZUUIXOYTUUEUUGUUAVKUUEUULX
      OUUGXPXRYAYNVLZVMZUUGUUMUUFXPXRYBYNVLVNZXRYCAYAYBYLYCLZVOVPZUUHUUKUUJQNZU
      UHUUSQYABHZYBBHZVQIZRIZUUTUVARIZSWKZUUHUVEQGFZVRUUHUVEUVDQNZUVFUUHUVEQUVD
      SWKZUVGUUHUVCQUVDSUUHUVBUUHUVBUUHUUTUVAUUHUUTUUHUULUUTKFUUOYAABXRYLCVSMWA
      ZUUHUVAUUHUUMUVAKFUUPYBABXRYLCVSMWAZWBWCWDWEUUHUVDWLFUVHUVGTUUHUUTUVAUVIU
      VJWFUVDWGMWHUUHUVDGFUVGUVFUUHUUTUVAUUEUUTGFZXOUUGUUEUULUVKUUCUUEUULUVKJTU
      UDXRYAGBPOWIZVMUUGUVAGFZUUFUUGUUMUVMUUCUUGUUMUVMJTUUDXRYBGBPOWIVNWJUVDQGW
      MWNWOWPUUHUUJUVBRIZUVDSWKZUUSUVEUUHXOUULUUMUVOXOUUEUUGWQUUOUUPYAYBYCABXRC
      YLUUQWRVPUUSUVNUVCUVDSUUJQUVBRWSWEWNXDUUHUUKUUSUUHUUJKFZUUKUUSWTUUHUUIUVP
      UURYDABXRYLCVSMUUJXAXBXCXEUUCYEUUIUUKJTUUDXRYDGBPOVIXFUUFYHXRFZYHBHZGFZYI
      XOYTUULUVQUUEUUAUUNXRAYGYAYLYGLZXGXHUUFUVRUUTGXOYTUULUVRUUTNUUEUUAUUNYAAY
      GBXRCUVTYLXIXHUUEUVKXOUVLVNXJUUCYIUVQUVSJTUUDXRYHGBPOVIXKXFXOYTXQXSXTYKXN
      TUUADEXRYCXPAYGYLUUQUVTXLMXM $.

    oddvdssubg.1 $e |- B = ( Base ` G ) $.
    $( The set of all elements whose order divides a fixed integer is a
       subgroup of any abelian group.  (Contributed by Mario Carneiro,
       19-Apr-2016.) $)
    oddvdssubg $p |- ( ( G e. Abel /\ N e. ZZ ) ->
      { x e. B | ( O ` x ) || N } e. ( SubGrp ` G ) ) $=
      ( vy wcel wa cfv cdvds wbr co adantr syl wceq fveq2 breq1d elrab vz cz cv
      cabl crab csubg wss c0 wne cplusg wral cminusg ssrab2 a1i c0g cgrp ablgrp
      eqid grpidcl c1 od1 1dvds adantl eqbrtrd sylanbrc ne0i simprl syl3anc cmg
      grpcl simplll simpllr mulgdi syl13anc simprr oddvds mpbid oveq12d syl2anc
      grplid 3eqtrd mpbird sylan2b ralrimiva grpinvcl jca w3a issubg2 mpbir3and
      wb odinv ) CUDIZDUBIZJZAUCZEKZDLMZABUEZCUFKIZWRBUGZWRUHUIZHUCZUAUCZCUJKZN
      ZWRIZUAWRUKZXBCULKZKZWRIZJZHWRUKZWTWNWQABUMUNWNCUOKZWRIZXAWNXMBIZXMEKZDLM
      ZXNWNCUPIZXOWLXRWMCUQOZBCXMGXMURZUSZPWNXPUTDLWNXRXPUTQXSCEXMFXTVAPWMUTDLM
      WLDVBVCVDWQXQAXMBWOXMQWPXPDLWOXMERSTVEWRXMVFPWNXKHWRXBWRIWNXBBIZXBEKZDLMZ
      JZXKWQYDAXBBWOXBQWPYCDLWOXBERSTWNYEJZXGXJYFXFUAWRXCWRIYFXCBIZXCEKZDLMZJZX
      FWQYIAXCBWOXCQWPYHDLWOXCERSTYFYJJZXEBIZXEEKZDLMZXFYKXRYBYGYLYFXRYJWNXRYEX
      SOZOZYFYBYJWNYBYDVGZOZYFYGYIVGZBXDCXBXCGXDURZVJVHZYKYNDXECVIKZNZXMQZYKUUC
      DXBUUBNZDXCUUBNZXDNZXMXMXDNZXMYKWLWMYBYGUUCUUGQWLWMYEYJVKWLWMYEYJVLZYRYSB
      XDUUBCDXBXCGUUBURZYTVMVNYKUUEXMUUFXMXDYKYDUUEXMQZYFYDYJWNYBYDVOZOYKXRYBWM
      YDUUKWJYPYRUUIXBUUBCDEBXMGFUUJXTVPVHVQYKYIUUFXMQZYFYGYIVOYKXRYGWMYIUUMWJY
      PYSUUIXCUUBCDEBXMGFUUJXTVPVHVQVRYKXRXOUUHXMQYPYKXRXOYPYAPBXDCXMXMGYTXTVTV
      SWAYKXRYLWMYNUUDWJYPUUAUUIXEUUBCDEBXMGFUUJXTVPVHWBWQYNAXEBWOXEQWPYMDLWOXE
      ERSTVEWCWDYFXIBIZXIEKZDLMZXJYFXRYBUUNYOYQBCXHXBGXHURZWEVSYFUUOYCDLYFXRYBU
      UOYCQYOYQXBCXHEBFUUQGWKVSUULVDWQUUPAXIBWOXIQWPUUODLWOXIERSTVEWFWCWDWNXRWS
      WTXAXLWGWJXSHUABXDWRCXHGYTUUQWHPWI $.
  $}

  ${
    $d x y z T $.  $d x y z U $.  $d x y z B $.  $d x y z G $.  $d x .(+) $.
    lsmcomx.v $e |- B = ( Base ` G ) $.
    lsmcomx.s $e |- .(+) = ( LSSum ` G ) $.
    $( Subgroup sum commutes (extended domain version).  (Contributed by NM,
       25-Feb-2014.)  (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsmcomx $p |- ( ( G e. Abel /\ T C_ B /\ U C_ B )
       -> ( T .(+) U ) = ( U .(+) T ) ) $=
      ( vx vy vz cabl wcel wss co cv wceq wrex wa sseldd lsmelvalx w3a cfv eqid
      cplusg simpl1 simpl2 simprl simpl3 simprr ablcom syl3anc eqeq2d 2rexbidva
      rexcom syl6bb wb 3com23 3bitr4d eqrdv ) EKLZCAMZDAMZUAZHCDBNZDCBNZVCHOZIO
      ZJOZEUDUBZNZPZJDQICQZVFVHVGVINZPZICQJDQZVFVDLVFVELZVCVLVNJDQICQVOVCVKVNIJ
      CDVCVGCLZVHDLZRZRZVJVMVFVTUTVGALVHALVJVMPUTVAVBVSUEVTCAVGUTVAVBVSUFVCVQVR
      UGSVTDAVHUTVAVBVSUHVCVQVRUISAVIEVGVHFVIUCZUJUKULUMVNIJCDUNUOIJAVIBCDEKVFF
      WAGTUTVBVAVPVOUPJIAVIBDCEKVFFWAGTUQURUS $.
  $}

  ${
    ablcntzd.z $e |- Z = ( Cntz ` G ) $.
    ablcntzd.a $e |- ( ph -> G e. Abel ) $.
    ablcntzd.t $e |- ( ph -> T e. ( SubGrp ` G ) ) $.
    ablcntzd.u $e |- ( ph -> U e. ( SubGrp ` G ) ) $.
    $( All subgroups in an abelian group commute.  (Contributed by Mario
       Carneiro, 19-Apr-2016.) $)
    ablcntzd $p |- ( ph -> T C_ ( Z ` U ) ) $=
      ( cbs cfv csubg wcel wss eqid subgss syl ccmn wceq cabl cntzcmn sseqtr4d
      ablcmn syl2anc ) ABDJKZCEKZABDLKZMBUENHUEBDUEOZPQADRMZCUENZUFUESADTMUIGDU
      CQACUGMUJIUECDUHPQUECDEUHFUAUDUB $.
  $}

  ${
    lsmcom.s $e |- .(+) = ( LSSum ` G ) $.
    $( Subgroup sum commutes.  (Contributed by NM, 6-Feb-2014.)  (Revised by
       Mario Carneiro, 21-Jun-2014.) $)
    lsmcom $p |- ( ( G e. Abel /\ T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) )
       -> ( T .(+) U ) = ( U .(+) T ) ) $=
      ( cabl wcel csubg cfv cbs wss co wceq id eqid subgss lsmcomx syl3an ) DFG
      ZSBDHIZGBDJIZKCTGCUAKBCALCBALMSNUABDUAOZPUACDUBPUAABCDUBEQR $.

    $( The sum of two subgroups is a subgroup.  (Contributed by NM,
       4-Feb-2014.)  (Proof shortened by Mario Carneiro, 19-Apr-2016.) $)
    lsmsubg2 $p |- ( ( G e. Abel /\ T e. ( SubGrp ` G ) /\
      U e. ( SubGrp ` G ) ) -> ( T .(+) U ) e. ( SubGrp ` G ) ) $=
      ( cabl wcel csubg cfv w3a ccntz wss co simp2 simp3 simp1 ablcntzd lsmsubg
      eqid syl3anc ) DFGZBDHIZGZCUBGZJZUCUDBCDKIZILBCAMUBGUAUCUDNZUAUCUDOZUEBCD
      UFUFSZUAUCUDPUGUHQABCDUFEUIRT $.

    $( Commutative/associative law for subgroup sum.  (Contributed by NM,
       26-Sep-2014.)  (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsm4 $p |- ( ( G e. Abel /\ ( Q e. ( SubGrp ` G ) /\ R e. ( SubGrp ` G ) )
                /\ ( T e. ( SubGrp ` G ) /\ U e. ( SubGrp ` G ) ) ) ->
   ( ( Q .(+) R ) .(+) ( T .(+) U ) ) = ( ( Q .(+) T ) .(+) ( R .(+) U ) ) ) $=
      ( cabl wcel csubg cfv wa w3a co wceq simp1 simp2r syl3anc lsmass lsmsubg2
      simp3l lsmcom oveq2d simp2l 3eqtr4d oveq1d simp3r 3eqtr3d ) FHIZBFJKZIZCU
      JIZLZDUJIZEUJIZLZMZBCANZDANZEANZBDANZCANZEANZURDEANANZVACEANANZUQUSVBEAUQ
      BCDANZANZBDCANZANZUSVBUQVFVHBAUQUIULUNVFVHOUIUMUPPZUIUKULUPQZUIUMUNUOUAZA
      CDFGUBRUCUQUKULUNUSVGOUIUKULUPUDZVKVLABCDFGSRUQUKUNULVBVIOVMVLVKABDCFGSRU
      EUFUQURUJIZUNUOUTVDOUQUIUKULVNVJVMVKABCFGTRVLUIUMUNUOUGZAURDEFGSRUQVAUJIZ
      ULUOVCVEOUQUIUKUNVPVJVMVLABDFGTRVKVOAVACEFGSRUH $.
  $}

  ${
    $d c I $.  $d a b c ph $.  $d c R $.  $d c S $.  $d a b c Y $.
    prdscmnd.y $e |- Y = ( S Xs_ R ) $.
    prdscmnd.i $e |- ( ph -> I e. W ) $.
    prdscmnd.s $e |- ( ph -> S e. V ) $.
    ${
      prdscmnd.r $e |- ( ph -> R : I --> CMnd ) $.
      $( The product of a family of commutative monoids is commutative.
         (Contributed by Stefan O'Rear, 10-Jan-2015.) $)
      prdscmnd $p |- ( ph -> Y e. CMnd ) $=
        ( vc cfv ccmn cmnd wcel co 3ad2ant1 cvv eqid va vb cbs cplusg eqidd wss
        wf cv cmnmnd ssriv fss sylancl prdsmndd w3a cmpt wa wceq ffvelrnda elex
        syl adantr wfn ffn simpl2 simpr prdsbasprj simpl3 mpteq2dva simp2 simp3
        cmncom syl3anc prdsplusgval 3eqtr4d iscmnd ) AUAUBGUCMZGUDMZGAVPUEAVQUE
        ABCDEFGHIJADNBUGZNOUFDOBUGKUANOUAUHZUIUJDNOBUKULUMAVSVPPZUBUHZVPPZUNZLD
        LUHZVSMZWDWAMZWDBMZUDMZQZUOLDWFWEWHQZUOVSWAVQQWAVSVQQWCLDWIWJWCWDDPZUPZ
        WGNPWEWGUCMZPWFWMPWIWJUQWCDNWDBAVTVRWBKRURWLVPBCVSDWDSSGHVPTZWCCSPZWKAV
        TWOWBACEPWOJCEUSUTRZVAZWCDSPZWKAVTWRWBADFPWRIDFUSUTRZVAZWCBDVBZWKAVTXAW
        BAVRXAKDNBVCUTRZVAZAVTWBWKVDWCWKVEZVFWLVPBCWADWDSSGHWNWQWTXCAVTWBWKVGXD
        VFWMWHWGWEWFWMTWHTVKVLVHWCLVPVQBCVSWADSSGHWNWPWSXBAVTWBVIZAVTWBVJZVQTZV
        MWCLVPVQBCWAVSDSSGHWNWPWSXBXFXEXGVMVNVO $.
    $}

    prdsgabld.r $e |- ( ph -> R : I --> Abel ) $.
    $( The product of a family of Abelian groups is an Abelian group.
       (Contributed by Stefan O'Rear, 10-Jan-2015.) $)
    prdsabld $p |- ( ph -> Y e. Abel ) $=
      ( va cgrp wcel ccmn cabl wf wss ssriv fss ablgrp prdsgrpd ablcmn prdscmnd
      cv sylancl isabl sylanbrc ) AGMNGONGPNABCDEFGHIJADPBQZPMRDMBQKLPMLUEZUASD
      PMBTUFUBABCDEFGHIJAUIPORDOBQKLPOUJUCSDPOBTUFUDGUGUH $.
  $}

  ${
    pwscmn.y $e |- Y = ( R ^s I ) $.
    $( The structure power on a commutative monoid is commutative.
       (Contributed by Mario Carneiro, 11-Jan-2015.) $)
    pwscmn $p |- ( ( R e. CMnd /\ I e. V ) -> Y e. CMnd ) $=
      ( ccmn wcel wa csca cfv csn cxp cprds co eqid pwsval cvv simpr fvexd wf
      fconst6g adantr prdscmnd eqeltrd ) AFGZBCGZHZDAIJZBAKLZMNZFAUHBFCDEUHOPUG
      UIUHBQCUJUJOUEUFRUGAISUEBFUITUFBAFUAUBUCUD $.

    $( The structure power on an Abelian group is Abelian.  (Contributed by
       Mario Carneiro, 21-Jan-2015.) $)
    pwsabl $p |- ( ( R e. Abel /\ I e. V ) -> Y e. Abel ) $=
      ( cabl wcel wa csca cfv csn cxp cprds co eqid pwsval cvv simpr fvexd wf
      fconst6g adantr prdsabld eqeltrd ) AFGZBCGZHZDAIJZBAKLZMNZFAUHBFCDEUHOPUG
      UIUHBQCUJUJOUEUFRUGAISUEBFUITUFBAFUAUBUCUD $.
  $}

  ${
    $d a b x y G $.  $d a b x y H $.  $d a b x y S $.
    qusabl.h $e |- H = ( G /s ( G ~QG S ) ) $.
    $( If ` Y ` is a subgroup of the abelian group ` G ` , then ` H = G / Y `
       is an abelian group.  (Contributed by Mario Carneiro, 26-Apr-2016.) $)
    qusabl $p |- ( ( G e. Abel /\ S e. ( SubGrp ` G ) ) -> H e. Abel ) $=
      ( vx vy va vb cabl wcel cfv wa cv cplusg co wceq eleq2d cec wrex eqid cbs
      csubg cgrp wral cnsg ablnsg biimpar qusgrp syl cqg cqs vex elqs cvv eqidd
      a1i ovexd simpl qusbas syl5bbr anbi12d reeanv ablcom 3expb adantlr eceq1d
      cqus adantr simprl simprr qusadd syl3anc 3eqtr4d oveq12 ancoms syl5ibrcom
      eqeq12d rexlimdvva syl5bir sylbird ralrimivv isabl2 sylanbrc ) BIJZABUBKZ
      JZLZCUCJZEMZFMZCNKZOZWJWIWKOZPZFCUAKZUDEWOUDCIJWGABUEKZJZWHWDWQWFWDWPWEAB
      UFQUGZABCDUHUIWGWNEFWOWOWGWIWOJZWJWOJZLWIGMZBAUJOZRZPZGBUAKZSZWJHMZXBRZPZ
      HXESZLZWNWGXFWSXJWTXFWIXEXBUKZJWGWSGXEWIXBEULUMWGXLWOWIWGXBBCXEUNICBXBVGO
      PWGDUPWGXEUOWGBAUJUQWDWFURUSZQUTXJWJXLJWGWTHXEWJXBFULUMWGXLWOWJXMQUTVAXKX
      DXILZHXESGXESWGWNXDXIGHXEXEVBWGXNWNGHXEXEWGXAXEJZXGXEJZLZLZWNXNXCXHWKOZXH
      XCWKOZPXRXAXGBNKZOZXBRZXGXAYAOZXBRZXSXTXRYBYDXBWDXQYBYDPZWFWDXOXPYFXEYABX
      AXGXETZYATZVCVDVEVFXRWQXOXPXSYCPWGWQXQWRVHZWGXOXPVIZWGXOXPVJZYAWKABCXEXAX
      GDYGYHWKTZVKVLXRWQXPXOXTYEPYIYKYJYAWKABCXEXGXADYGYHYLVKVLVMXNWLXSWMXTWIXC
      WJXHWKVNXIXDWMXTPWJXHWIXCWKVNVOVQVPVRVSVTWAEFWOWKCWOTYLWBWC $.
  $}

  ${
    $d I a b $.  $d M a b $.
    abl1.m $e |- M = { <. ( Base ` ndx ) , { I } >. ,
                       <. ( +g ` ndx ) , { <. <. I , I >. , I >. } >. } $.
    $( The (smallest) structure representing a _trivial abelian group_.
       (Contributed by AV, 28-Apr-2019.) $)
    abl1 $p |- ( I e. V -> M e. Abel ) $=
      ( va vb wcel cv cop csn wceq wral oveq1 oveq2 eqeq12d ralsng cvv cfv snex
      co cgrp cabl eqidd ralbidv bitrd mpbird cbs grpbase ax-mp cplusg grpplusg
      grp1 isabl2 sylanbrc ) ACGZBUAGEHZFHZAAIAIZJZTZUQUPUSTZKZFAJZLZEVCLZBUBGA
      BCDULUOVEAAUSTZVFKZUOVFUCUOVEAUQUSTZUQAUSTZKZFVCLZVGVDVKEACUPAKZVBVJFVCVL
      UTVHVAVIUPAUQUSMUPAUQUSNOUDPVJVGFACUQAKVHVFVIVFUQAAUSNUQAAUSMOPUEUFEFVCUS
      BVCQGVCBUGRKASVCUSBQDUHUIUSQGUSBUJRKURSVCUSBQDUKUIUMUN $.
  $}

  $( Abelian groups (and therefore also groups and monoids) exist.
     (Contributed by AV, 29-Apr-2019.) $)
  abln0 $p |- Abel =/= (/) $=
    ( vi cv cvv wcel cnx cbs cfv csn cop cplusg cpr cabl wne vex eqid abl1 ne0i
    c0 mp2b ) ABZCDEFGTHIEJGTTITIHIKZLDLRMANTUACUAOPLUAQS $.

  ${
    $d x y z G $.
    cnaddablx.g $e |- G = { <. 1 , CC >. , <. 2 , + >. } $.
    $( The complex numbers are an Abelian group under addition.  This version
       of ~ cnaddabl shows the explicit structure "scaffold" we chose for the
       definition for Abelian groups.  Note:  This theorem has hard-coded
       structure indices for demonstration purposes.  It is not intended for
       general use; use ~ cnaddabl instead.  (New usage is discouraged.)
       (Contributed by NM, 18-Oct-2012.) $)
    cnaddablx $p |- G e. Abel $=
      ( vx vy vz cc caddc cv cneg cc0 cnex addex addcl addass addid2 negcl wcel
      0cn co addcom wceq mpdan negid eqtr3d isgrpix grpbasex grpplusgx isabli )
      CDFGACDEFGACHZIZJKLBUIDHZMUIUKEHNRUIOUIPZUIFQZUIUJGSZUJUIGSZJUMUJFQUNUOUA
      ULUIUJTUBUIUCUDUEFGAKLBUFFGAKLBUGUIUKTUH $.
  $}

  ${
    $d x y z G $.
    cnaddabl.g $e |- G
               = { <. ( Base ` ndx ) , CC >. , <. ( +g ` ndx ) , + >. } $.
    $( The complex numbers are an Abelian group under addition.  This version
       of ~ cnaddablx hides the explicit structure indices i.e. is
       "scaffold-independent".  Note that the proof also does not reference
       explicit structure indices.  The actual structure is dependent on how
       ` Base ` and ` +g ` is defined.  This theorem should not be referenced
       in any proof.  For the group/ring properties of the complex numbers, see
       ~ cnring .  (Contributed by NM, 20-Oct-2012.)
       (New usage is discouraged.) $)
    cnaddabl $p |- G e. Abel $=
      ( vx vy vz cc caddc cv cneg cc0 cvv wcel cbs cfv wceq cnex grpbase addcom
      ax-mp co cplusg addex grpplusg addcl addass 0cn addid2 negcl mpdan eqtr3d
      negid isgrpi isabli ) CDFGACDEFGACHZIZJFKLFAMNOPFGAKBQSZGKLGAUANOUBFGAKBU
      CSZUNDHZUDUNUREHUEUFUNUGUNUHZUNFLZUNUOGTZUOUNGTZJUTUOFLVAVBOUSUNUORUIUNUK
      UJULUPUQUNURRUM $.

    $( The group identity element of complex number addition is zero.  See also
       ~ cnfld0 .  (Contributed by Steve Rodriguez, 3-Dec-2006.)  (Revised by
       AV, 26-Aug-2021.)  (New usage is discouraged.) $)
    cnaddid $p |- ( 0g ` G ) = 0 $=
      ( vx cc0 c0g cfv cc wcel wceq 0cn caddc cvv cbs cnex grpbase ax-mp cplusg
      eqid co adantl addex grpplusg id cv addid2 addid1 ismgmid2 eqcomi ) DAEFZ
      DGHZDUIIJUJCGKDAUIGLHGAMFINGKALBOPUIRKLHKAQFIUAGKALBUBPUJUCCUDZGHZDUKKSUK
      IUJUKUETULUKDKSUKIUJUKUFTUGPUH $.

    $( Value of the group inverse of complex number addition.  See also
       ~ cnfldneg .  (Contributed by Steve Rodriguez, 3-Dec-2006.)  (Revised by
       AV, 26-Aug-2021.)  (New usage is discouraged.) $)
    cnaddinv $p |- ( A e. CC -> ( ( invg ` G ) ` A ) = -u A ) $=
      ( cc wcel cminusg cfv cneg wceq caddc cc0 negid cgrp cabl cnaddabl ablgrp
      co wb ax-mp cvv id negcl cbs grpbase cplusg addex grpplusg cnaddid eqcomi
      cnex c0g eqid grpinvid1 mp3an2i mpbird ) ADEZABFGZGAHZIZAURJQKIZALBMEZUPU
      PURDEUSUTRBNEVABCOBPSUPUAAUBDJBUQAURKDTEDBUCGIUJDJBTCUDSJTEJBUEGIUFDJBTCU
      GSBUKGKBCUHUIUQULUMUNUO $.
  $}

  ${
    $d x y z G $.
    zaddablx.g $e |- G = { <. 1 , ZZ >. , <. 2 , + >. } $.
    $( The integers are an Abelian group under addition.  Note:  This theorem
       has hard-coded structure indices for demonstration purposes.  It is not
       intended for general use.  Use ~ zsubrg instead.
       (New usage is discouraged.)  (Contributed by NM, 4-Sep-2011.) $)
    zaddablx $p |- G e. Abel $=
      ( vx vy vz cz caddc cv cneg cc0 zex addex zaddcl wcel cc co addcom syl2an
      wceq zcn addass syl3an 0z addid2d znegcl negidd eqtr3d grpbasex grpplusgx
      mpdan isgrpix isabli ) CDFGACDEFGACHZIZJKLBUMDHZMUMFNZUMONZUOFNZUOONZEHZF
      NUTONUMUOGPZUTGPUMUOUTGPGPSUMTZUOTZUTTUMUOUTUAUBUCUPUMVBUDUMUEZUPUMUNGPZU
      NUMGPZJUPUNFNZVEVFSZVDUPUQUNONVHVGVBUNTUMUNQRUJUPUMVBUFUGUKFGAKLBUHFGAKLB
      UIUPUQUSVAUOUMGPSURVBVCUMUOQRUL $.
  $}

  ${
    $d a b d x A $.  $d d m t D $.  $d a b m n t v w x y z I $.  $d a b x ph $.
    $d a b d m t x y z .~ $.  $d a b d x B $.  $d a b d k m n t v w x y z W $.
    $d a b x G $.  $d a b m n t v w x M $.  $d a b d k m t x T $.
    frgpnabl.g $e |- G = ( freeGrp ` I ) $.
    ${
      frgpnabl.w $e |- W = ( _I ` Word ( I X. 2o ) ) $.
      frgpnabl.r $e |- .~ = ( ~FG ` I ) $.
      frgpnabl.p $e |- .+ = ( +g ` G ) $.
      frgpnabl.m $e |- M = ( y e. I , z e. 2o |-> <. y , ( 1o \ z ) >. ) $.
      frgpnabl.t $e |- T = ( v e. W |->
        ( n e. ( 0 ... ( # ` v ) ) , w e. ( I X. 2o ) |->
          ( v splice <. n , n , <" w ( M ` w ) "> >. ) ) ) $.
      frgpnabl.d $e |- D = ( W \ U_ x e. W ran ( T ` x ) ) $.
      frgpnabl.u $e |- U = ( varFGrp ` I ) $.
      frgpnabl.i $e |- ( ph -> I e. _V ) $.
      frgpnabl.a $e |- ( ph -> A e. I ) $.
      frgpnabl.b $e |- ( ph -> B e. I ) $.
      $( Lemma for ~ frgpnabl .  (Contributed by Mario Carneiro,
         21-Apr-2016.) $)
      frgpnabllem1 $p |- ( ph -> <" <. A , (/) >. <. B , (/) >. "> e.
        ( D i^i ( ( U ` A ) .+ ( U ` B ) ) ) ) $=
        ( va vb cfv co c0 cop cs2 cv crn ciun cdif c2o cxp cword wcel c1o prid1
        cpr 0ex df2o3 eleqtrri opelxpi sylancl s2cld cid wceq con0 xpexg wrdexg
        cvv 2on fvi 3syl syl5eq eleqtrrd wrex wa wne wn 1n0 cc0 chash caddc 2cn
        c2 addid2i s2len eqtr4i efgtlen adantll ex 0cnd cn0 simpr efgrcl simprd
        adantl eleqtrd lencl syl nn0cnd 2cnd addcan2d sylibd cfz csplice eleq2d
        wi rneqd ovex cconcat a1i ccatlid ax-mp hash0 oveq2i eqtrd fveq1d s2fv1
        c1 opex 3eqtr3g s2fv0 vex sylbid wb cs1 cec vrgpval syl2anc s1cld cmpt2
        cotp wf efgtf simpld eqid elrnmpt2 simprr ffvelrni oveq1i eqtr2i simprl
        wrd0 efgmf syl6eleq elfz1eq syl6eqr cc syl6eqel addid1d syl5req splval2
        0cn oveq1d ccatrid eqeq2d ad3antrrr 1on fvex fveq2d efgmval dif0 opeq2i
        df-ov 3eqtr2rd opthg simplbda syl21anc rexlimdvva expimpd hasheq0 eleq1
        syl5bi fveq2 anbi12d sylbi eqcoms imbi1d syl5ibrcom com23 mpdd necon3ad
        expdimp mpi nrexdv eliun sylnibr eldifd syl6eleqr wbr df-s2 efger erref
        wer syl5eqbrr eqeltri elec sylibr oveq12d frgpadd elind ) AIGMULZHMULZJ
        UMZGUNUOZHUNUOZUPZAUXQRBRBUQZLULZURZUSZUTIAUXQRUYAAUXQPVAVBZVCZRAUXOUXP
        UYBAGPVDZUNVAVDZUXOUYBVDUHUNUNVEVGVAUNVEVHVFVIVJZGUNPVAVKVLZAHPVDZUYEUX
        PUYBVDUIUYFHUNPVAVKVLZVMARUYCVNULZUYCTAUYBVSVDZUYCVSVDUYJUYCVOAPVSVDZVA
        VPVDUYKUGVTPVAVSVPVQVLUYBVSVRUYCVSWAWBWCZWDZAUXQUXTVDZBRWEUXQUYAVDAUYOB
        RAUXRRVDZWFZVEUNWGUYOWHWIUYQUYOVEUNUYQUYOWJUXRWKULZVOZVEUNVOZUYQUYOWJWN
        WLUMZUYRWNWLUMZVOZUYSUYQUYOVUCUYQUYOWFVUAUXQWKULZVUBVUAWNVUDWNWMWOUXOUX
        PWPWQUYPUYOVUDVUBVOACDEFUXQKLNPQRUXRTUAUCUDWRWSWCWTUYQWJUYRWNUYQXAUYQUY
        RUYQUXRUYCVDUYRXBVDUYQUXRRUYCAUYPXCUYPRUYCVOZAUYPUYLVUEUXRPRTXDXEXFXGUY
        BUXRXHXIXJUYQXKXLXMAUYPUYOUYSUYTXQAUYSUYPUYOWFZUYTAVUFUYTXQUYSUNRVDZUXQ
        UNLULZURZVDZWFZUYTXQAVUGVUJUYTAVUGWFZVUJUXQUJUKWJUNWKULZXNUMZUYBUNUJUQZ
        VUOUKUQZVUPQULZUPZUUBZXOUMZUUAZURZVDZUYTVULVUIVVBUXQVULVUHVVAVULVUHVVAV
        OZVUNUYBVBRVUHUUCZVUGVVDVVEWFACDEFKLNPQRUNUJUKTUAUCUDUUDXFUUEXRXPVVCUXQ
        VUTVOZUKUYBWEUJVUNWEVULUYTUJUKVUNUYBVUTUXQVVAVVAUUFUNVUSXOXSUUGVULVVFUY
        TUJUKVUNUYBVULVUOVUNVDZVUPUYBVDZWFZWFZVVFUXQVURVOZUYTVVJVUTVURUXQVVJVUT
        UNVURXTUMZUNXTUMZVURVVJUNUNUNVURUNVUOVUOUYBUNUYCVDZVVJUYBUUMZYAZVVPVVPV
        VJVUPVUQUYBVULVVGVVHUUHZVVJVVHVUQUYBVDVVQUYBUYBVUPQCDPQUCUUNUUIXIVMZUNU
        NUNXTUMZUNXTUMZVOVVJVVTVVSUNVVSUNUNXTVVNVVSUNVOVVOUYBUNYBYCZUUJVWAUUKYA
        VVJVUOWJVUMVVJVUOWJWJXNUMZVDVUOWJVOVVJVUOVUNVWBVULVVGVVHUULVUMWJWJXNYDY
        EUUOVUOWJUUPXIZYDUUQVVJVUOVUMWLUMVUOWJWLUMVUOVUMWJVUOWLYDYEVVJVUOVVJVUO
        WJUURVWCUVCUUSUUTUVAUVBVVJVURUYCVDZVVMVURVOVVRVWDVVMVURUNXTUMVURVWDVVLV
        URUNXTUYBVURYBUVDUYBVURUVEYFXIYFUVFVVJVVKUYTVVJVVKWFZUYDVEVPVDZGVEUOZUX
        PVOZUYTAUYDVUGVVIVVKUHUVGZVWFVWEUVHYAVWEUXPVUQUXOQULZVWGVWEYIUXQULZYIVU
        RULZUXPVUQVWEYIUXQVURVVJVVKXCZYGUXPVSVDVWKUXPVOHUNYJUXOUXPVSYHYCVUQVSVD
        VWLVUQVOVUPQUVIVUPVUQVSYHYCYKVWEUXOVUPQVWEWJUXQULZWJVURULZUXOVUPVWEWJUX
        QVURVWMYGUXOVSVDVWNUXOVOGUNYJUXOUXPVSYLYCVUPVSVDVWOVUPVOUKYMVUPVUQVSYLY
        CYKUVJVWEGUNQUMZGVEUNUTZUOZVWJVWGVWEUYDUYEVWPVWRVOVWIUYFCDGUNPQUCUVKVLG
        UNQUVNVWQVEGVEUVLUVMYKUVOUYDVWFWFVWHGHVOUYTGVEHUNPVPUVPUVQUVRWTYNUVSUWC
        YNUVTUYSVUFVUKUYTVUFVUKYOZUYRWJUYRWJVOZUXRUNVOZVWSUXRVSVDVWTVXAYOBYMUXR
        VSUWAYCVXAUYPVUGUYOVUJUXRUNRUWBVXAUXTVUIUXQVXAUXSVUHUXRUNLUWDXRXPUWEUWF
        UWGUWHUWIUWJUWMUWKUWLUWNUWOBUXQRUXTUWPUWQUWRUEUWSAUXQUXOYPZUXPYPZXTUMZK
        YQZUXNAVXDUXQKUWTUXQVXEVDAVXDUXQUXQKUXOUXPUXAZAUXQKRRKUXDAKPRTUAUXBYAUY
        NUXCUXEUXQVXDKUXQVXDVSVXFVXBVXCXTXSZUXFVXGUXGUXHAUXNVXBKYQZVXCKYQZJUMZV
        XEAUXLVXHUXMVXIJAUYLUYDUXLVXHVOUGUHGKMPVSUAUFYRYSAUYLUYHUXMVXIVOUGUIHKM
        PVSUAUFYRYSUXIAVXBRVDVXCRVDVXJVXEVOAVXBUYCRAUXOUYBUYGYTUYMWDAVXCUYCRAUX
        PUYBUYIYTUYMWDVXBVXCJKOPRTSUAUBUXJYSYFWDUXK $.

      frgpnabl.n $e |- ( ph ->
        ( ( U ` A ) .+ ( U ` B ) ) = ( ( U ` B ) .+ ( U ` A ) ) ) $.
      $( Lemma for ~ frgpnabl .  (Contributed by Mario Carneiro,
         21-Apr-2016.) $)
      frgpnabllem2 $p |- ( ph -> A = B ) $=
        ( vd vt vm vk wcel c0 cvv cop wceq 0ex a1i cc0 cs2 cfv cv wbr wrmo wreu
        crn ciun cdif difss eqsstri co cin inss1 frgpnabllem1 sseldi cmin chash
        c1 cfzo wral wa cword csn crab cmpt eqid efgredeu reurmo 3syl cec efger
        wer cqs cbs cgrp frgpgrp syl vrgpf ffvelrnd grpcl syl3anc c2o cxp cfrmd
        wf cqus frgpval cid con0 2on xpexg sylancl wrdexg syl5eq frmdbas eqtr4d
        fvi cefg fvex fvexd qusbas eleqtrrd inss2 qsel eqtr3d erth mpbird erref
        eqeltri breq1 rmoi syl122anc fveq1d opex s2fv0 ax-mp 3eqtr3g simprbda
        opthg syl21anc ) AGPUOZUPUQUOZGUPURZHUPURZUSZGHUSZUHUUEAUTVAAVBUUFUUGVC
        ZVDZVBUUGUUFVCZVDZUUFUUGAVBUUJUULAUKVEZUULKVFZUKIVGZUUJIUOUUJUULKVFZUUL
        IUOUULUULKVFZUUJUULUSAUULRUOUUOUKIVHUUPAIRUULIRBRBVELVDVIVJZVKRUERUUSVL
        VMZAIHMVDZGMVDZJVNZVOZIUULIUVCVPABCDEFHGIJKLMNOPQRSTUAUBUCUDUEUFUGUIUHV
        QZVRZVRZBCDEFULUULIKUMVBULVEZVDIUOUNVEZUVHVDUVIWAVSVNUVHVDLVDVIUOUNWAUV
        HVTVDWBVNWCWDULRWEUPWFVKWGUMVEZVTVDWAVSVNUVJVDWHZLUNUMNPQRUKTUAUCUDUEUV
        KWIWJUUOUKIWKWLAIUVBUVAJVNZVOZIUUJIUVLVPABCDEFGHIJKLMNOPQRSTUAUBUCUDUEU
        FUGUHUIVQZVRZAUUQUUJKWMZUULKWMZUSAUVLUVPUVQARKWOZUVLRKWPZUOZUUJUVLUOUVL
        UVPUSUVRAKPRTUAWNVAZAUVLOWQVDZUVSAOWRUOZUVBUWBUOUVAUWBUOUVLUWBUOAPUQUOZ
        UWCUGOPUQSWSWTAPUWBGMAUWDPUWBMXHUGKMOPUQUWBUAUFSUWBWIZXAWTZUHXBAPUWBHMU
        WFUIXBUWBJOUVBUVAUWEUBXCXDAKPXEXFZXGVDZORUQUQAUWDOUWHKXIVNUSUGKOPUWHUQS
        UWHWIZUAXJWTARUWGWEZUWHWQVDZARUWJXKVDZUWJTAUWGUQUOZUWJUQUOUWLUWJUSAUWDX
        EXLUOUWMUGXMPXEUQXLXNXOZUWGUQXPUWJUQXTWLXQAUWMUWKUWJUSUWNUWKUWGUWHUQUWI
        UWKWIXRWTXSKUQUOAKPYAVDUQUAPYAYBYLVAAUWGXGYCYDYEZAUVMUVLUUJIUVLYFUVNVRR
        UVLUUJKRYGXDAUVRUVTUULUVLUOUVLUVQUSUWAUWOAUULUVCUVLAUVDUVCUULIUVCYFUVEV
        RUJYERUVLUULKRYGXDYHAUUJUULKRUWAAIRUUJUUTUVOVRYIYJUVFAUULKRUWAUVGYKUUOU
        UQUURUKIUUJUULUUNUUJUULKYMUUNUULUULKYMYNYOYPUUFUQUOUUKUUFUSGUPYQUUFUUGU
        QYRYSUUGUQUOUUMUUGUSHUPYQUUGUUFUQYRYSYTUUDUUEWDUUHUUIUPUPUSGUPHUPPUQUUB
        UUAUUC $.
    $}

    $( The free group on two or more generators is not abelian.  (Contributed
       by Mario Carneiro, 21-Apr-2016.) $)
    frgpnabl $p |- ( 1o ~< I -> -. G e. Abel ) $=
      ( va vb vx vy vz vw vv vn c1o csdm cv wcel cvv wa cfv co eqid wbr wceq wn
      wrex cabl relsdom brrelex2i 1sdom syl ibi c2o cxp cword cid cc0 chash cfz
      wb cdif cop cmpt2 cs2 cotp csplice cmpt ciun cplusg cefg ad2antrr simplrl
      crn cvrgp simplrr cbs simpr wf vrgpf ffvelrnd ablcom syl3anc frgpnabllem2
      ex con3d rexlimdvva mpd ) LBMUAZDNZENZUBZUCZEBUDDBUDZAUEOZUCZWFWKWFBPOZWF
      WKURLBMUFUGZDEBPUHUIUJWFWJWMDEBBWFWGBOZWHBOZQZQZWLWIWSWLWIWSWLQZFGHIJWGWH
      BUKULZUMUNRZFXBFNJXBKIUOJNZUPRUQSXAXCKNZXDINZXEGHBUKGNLHNUSUTVAZRVBVCVDSV
      AVEZRVKVFUSZAVGRZBVHRZXGBVLRZKABXFXBCXBTXJTZXITZXFTXGTXHTXKTZWFWNWRWLWOVI
      ZWFWPWQWLVJZWFWPWQWLVMZWTWLWGXKRZAVNRZOWHXKRZXSOXRXTXISXTXRXISUBWSWLVOWTB
      XSWGXKWTWNBXSXKVPXOXJXKABPXSXLXNCXSTZVQUIZXPVRWTBXSWHXKYBXQVRXSXIAXRXTYAX
      MVSVTWAWBWCWDWE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cyclic groups
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CycGrp $. $( Cyclic group $)

  $( Cyclic group. $)
  ccyg $a class CycGrp $.

  ${
    $d g m n x y B $.  $d m y E $.  $d m n x y N $.  $d n O $.  $d m n x y X $.
    $d g m n x y G $.  $d y ph $.  $d g m n x y .x. $.
    $( Define a cyclic group, which is a group with an element ` x ` , called
       the generator of the group, such that all elements in the group are
       multiples of ` x ` .  A generator is usually not unique.  (Contributed
       by Mario Carneiro, 21-Apr-2016.) $)
    df-cyg $a |- CycGrp = { g e. Grp | E. x e. ( Base ` g )
      ran ( n e. ZZ |-> ( n ( .g ` g ) x ) ) = ( Base ` g ) } $.

    iscyg.1 $e |- B = ( Base ` G ) $.
    iscyg.2 $e |- .x. = ( .g ` G ) $.
    $( Definition of a cyclic group.  (Contributed by Mario Carneiro,
       21-Apr-2016.) $)
    iscyg $p |- ( G e. CycGrp <-> ( G e. Grp /\
      E. x e. B ran ( n e. ZZ |-> ( n .x. x ) ) = B ) ) $=
      ( vg cz cv cmg cfv co cmpt crn cbs wceq wrex fveq2 syl6eqr oveqd mpteq2dv
      cgrp ccyg rneqd eqeq12d rexeqbidv df-cyg elrab2 ) DIDJZAJZHJZKLZMZNZOZULP
      LZQZAUQRDIUJUKCMZNZOZBQZABRHEUCUDULEQZURVBAUQBVCUQEPLBULEPSFTZVCUPVAUQBVC
      UOUTVCDIUNUSVCUMCUJUKVCUMEKLCULEKSGTUAUBUEVDUFUGAHDUHUI $.

    ${
      iscyg3.e $e |- E = { x e. B | ran ( n e. ZZ |-> ( n .x. x ) ) = B } $.
      $( The property of being a cyclic generator for a group.  (Contributed by
         Mario Carneiro, 21-Apr-2016.) $)
      iscyggen $p |- ( X e. E <-> ( X e. B /\
        ran ( n e. ZZ |-> ( n .x. X ) ) = B ) ) $=
        ( cz cv co cmpt crn wceq wcel wa simpl oveq2d mpteq2dva eqeq1d elrab2
        rneqd ) DKDLZALZCMZNZOZBPDKUEGCMZNZOZBPAGBEUFGPZUIULBUMUHUKUMDKUGUJUMUE
        KQZRUFGUECUMUNSTUAUDUBJUC $.

      $( The property of being a cyclic generator for a group.  (Contributed by
         Mario Carneiro, 21-Apr-2016.) $)
      iscyggen2 $p |- ( G e. Grp -> ( X e. E <-> ( X e. B /\
        A. y e. B E. n e. ZZ y = ( n .x. X ) ) ) ) $=
        ( wcel cz cv co cmpt wceq wa wral wss crn cgrp iscyggen wf mulgcl 3expa
        wrex wb an32s eqid fmptd frn eqss baib 3syl dfss3 elrnmpti ralbii bitri
        ovex syl6bb pm5.32da syl5bb ) HFLHCLZEMENZHDOZPZUAZCQZRGUBLZVDBNZVFQEMU
        GZBCSZRACDEFGHIJKUCVJVDVIVMVJVDRZVICVHTZVMVNMCVGUDVHCTZVIVOUHVNEMVFCVGV
        JVEMLZVDVFCLZVJVQVDVRCDGVEHIJUEUFUIVGUJZUKMCVGULVIVPVOVHCUMUNUOVOVKVHLZ
        BCSVMBCVHUPVTVLBCEMVFVKVGVSVEHDUTUQURUSVAVBVC $.

      $( A cyclic group is a group which contains a generator.  (Contributed by
         Mario Carneiro, 21-Apr-2016.) $)
      iscyg2 $p |- ( G e. CycGrp <-> ( G e. Grp /\ E =/= (/) ) ) $=
        ( ccyg wcel cgrp cz cv co cmpt crn wa c0 wne wceq wrex iscyg crab rabn0
        neeq1i bitri anbi2i bitr4i ) FJKFLKZDMDNANCOPQBUAZABUBZRUJESTZRABCDFGHU
        CUMULUJUMUKABUDZSTULEUNSIUFUKABUEUGUHUI $.

      ${
        cyggeninv.n $e |- N = ( invg ` G ) $.
        $( The inverse of a cyclic generator is a generator.  (Contributed by
           Mario Carneiro, 21-Apr-2016.) $)
        cyggeninv $p |- ( ( G e. Grp /\ X e. E ) -> ( N ` X ) e. E ) $=
          ( vy vm wcel wa co wceq cz wrex cgrp wral iscyggen2 simprbda grpinvcl
          cv syldan simplbda oveq1 eqeq2d cbvrexv cneg znegcl adantl simpr zcnd
          negnegd oveq1d simplll ad2antrr mulgneg2 syl3anc eqtr3d syl2anc eqeq1
          cfv rspcev rexbidv syl5ibrcom rexlimdva syl5bi ralimdva mpd wb adantr
          mpbir2and ) FUAOZHEOZPZHGVFZEOZVTBOZMUFZDUFZVTCQZRZDSTZMBUBZVQVRHBOZW
          BVQVRWIWCWDHCQZRZDSTZMBUBZAMBCDEFHIJKUCZUDZBFGHILUEUGVSWMWHVQVRWIWMWN
          UHVSWLWGMBWLWCNUFZHCQZRZNSTVSWCBOZPZWGWKWRDNSWDWPRWJWQWCWDWPHCUIUJUKW
          TWRWGNSWTWPSOZPZWGWRWQWERZDSTZXBWPULZSOZWQXEVTCQZRZXDXAXFWTWPUMUNZXBX
          EULZHCQZWQXGXBXJWPHCXBWPXBWPWTXAUOUPUQURXBVQXFWIXKXGRVQVRWSXAUSXIVSWI
          WSXAWOUTBCFGXEHIJLVAVBVCXCXHDXESWDXERWEXGWQWDXEVTCUIUJVGVDWRWFXCDSWCW
          QWEVEVHVIVJVKVLVMVQWAWBWHPVNVRAMBCDEFVTIJKUCVOVP $.
      $}

      ${
        cyggenod.o $e |- O = ( od ` G ) $.
        $( An element is the generator of a finite group iff the order of the
           generator equals the order of the group.  (Contributed by Mario
           Carneiro, 21-Apr-2016.) $)
        cyggenod $p |- ( ( G e. Grp /\ B e. Fin ) ->
          ( X e. E <-> ( X e. B /\ ( O ` X ) = ( # ` B ) ) ) ) $=
          ( wcel cz wceq wa cfn cfv cen syl2anc cv cmpt crn cgrp chash iscyggen
          co wbr wb wss simplr simplll simpr mulgcl syl3anc eqid fmptd frn ssfi
          wf syl hashen cc0 dfod2 adantlr iftrued eqtr2d eqeq1d fisseneq 3expia
          cif enrefg adantr breq1 syl5ibrcom impbid 3bitr3rd pm5.32da syl5bb )
          HEMHBMZDNDUAZHCUGZUBZUCZBOZPFUDMZBQMZPZVTHGRZBUERZOZPABCDEFHIJKUFWHVT
          WEWKWHVTPZWDUERZWJOZWDBSUHZWKWEWLWDQMZWGWNWOUIWLWGWDBUJZWPWFWGVTUKZWL
          NBWCUTWQWLDNWBBWCWLWANMZPWFWSVTWBBMWFWGVTWSULWLWSUMWHVTWSUKBCFWAHIJUN
          UOWCUPZUQNBWCURVAZBWDUSTZWRWDBVBTWLWMWIWJWLWIWPWMVCVKZWMWFVTWIXCOWGDH
          CWCFGBILJWTVDVEWLWPWMVCXBVFVGVHWLWGWQWOWEUIWRXAWGWQPZWOWEWGWQWOWEWDBV
          IVJXDWOWEBBSUHZWGXEWQBQVLVMWDBBSVNVOVPTVQVRVS $.

        $( In an infinite cyclic group, the generator must have infinite order,
           but this property no longer characterizes the generators.
           (Contributed by Mario Carneiro, 21-Apr-2016.) $)
        cyggenod2 $p |- ( ( G e. Grp /\ X e. E ) ->
          ( O ` X ) = if ( B e. Fin , ( # ` B ) , 0 ) ) $=
          ( cgrp wcel cfv cfn chash cc0 cif wceq wa cz cv cmpt iscyggen simplbi
          co crn eqid dfod2 sylan2 simprbi adantl eleq1d fveq2d ifbieq1d eqtrd
          ) FMNZHENZUAZHGOZDUBDUCHCUGUDZUHZPNZVCQOZRSZBPNZBQOZRSUSURHBNZVAVFTUS
          VIVCBTZABCDEFHIJKUEZUFDHCVBFGBILJVBUIUJUKUTVDVGVEVHRUTVCBPUSVJURUSVIV
          JVKULUMZUNUTVCBQVLUOUPUQ $.
      $}
    $}

    $( Definition of a cyclic group.  (Contributed by Mario Carneiro,
       21-Apr-2016.) $)
    iscyg3 $p |- ( G e. CycGrp <-> ( G e. Grp /\
      E. x e. B A. y e. B E. n e. ZZ y = ( n .x. x ) ) ) $=
      ( ccyg wcel cgrp cz cv co wceq wrex wa wral wss bitri crn iscyg wf mulgcl
      cmpt 3expa an32s eqid fmptd frn eqss baib 3syl dfss3 ovex elrnmpti ralbii
      wb syl6bb rexbidva pm5.32i ) FIJFKJZELEMZAMZDNZUEZUAZCOZACPZQVBBMZVEOELPZ
      BCRZACPZQACDEFGHUBVBVIVMVBVHVLACVBVDCJZQZVHCVGSZVLVOLCVFUCVGCSZVHVPURVOEL
      VECVFVBVCLJZVNVECJZVBVRVNVSCDFVCVDGHUDUFUGVFUHZUILCVFUJVHVQVPVGCUKULUMVPV
      JVGJZBCRVLBCVGUNWAVKBCELVEVJVFVTVCVDDUOUPUQTUSUTVAT $.

    iscygd.3 $e |- ( ph -> G e. Grp ) $.
    iscygd.4 $e |- ( ph -> X e. B ) $.
    iscygd.5 $e |- ( ( ph /\ y e. B ) -> E. n e. ZZ y = ( n .x. X ) ) $.
    $( Definition of a cyclic group.  (Contributed by Mario Carneiro,
       21-Apr-2016.) $)
    iscygd $p |- ( ph -> G e. CycGrp ) $=
      ( vx cgrp wcel cz cv co wceq syl cmpt crn crab c0 wne ccyg wrex ralrimiva
      wral wa wb eqid iscyggen2 mpbir2and ne0i iscyg2 sylanbrc ) AFNOZEPEQZMQDR
      UAUBCSMCUCZUDUEZFUFOJAGUTOZVAAVBGCOZBQUSGDRSEPUGZBCUIZKAVDBCLUHAURVBVCVEU
      JUKJMBCDEUTFGHIUTULZUMTUNUTGUOTMCDEUTFHIVFUPUQ $.
  $}

  ${
    $d n x B $.  $d n x G $.  $d n O $.  $d n x X $.
    iscygodd.1 $e |- B = ( Base ` G ) $.
    iscygodd.o $e |- O = ( od ` G ) $.
    iscygodd.3 $e |- ( ph -> G e. Grp ) $.
    iscygodd.4 $e |- ( ph -> X e. B ) $.
    iscygodd.5 $e |- ( ph -> ( O ` X ) = ( # ` B ) ) $.
    $( Show that a group with an element the same order as the group is cyclic.
       (Contributed by Mario Carneiro, 27-Apr-2016.) $)
    iscygodd $p |- ( ph -> G e. CycGrp ) $=
      ( vn vx wcel cv cfv wceq wb cn0 syl cvv cgrp cz cmg co cmpt crn crab ccyg
      c0 wne chash cfn odcl eqeltrrd cbs fvex eqeltri hashclb ax-mp sylibr eqid
      wa cyggenod syl2anc mpbir2and ne0i iscyg2 sylanbrc ) ACUAMZKUBKNLNCUCOZUD
      UEUFBPLBUGZUIUJZCUHMHAEVKMZVLAVMEBMZEDOZBUKOZPZIJAVIBULMZVMVNVQVBQHAVPRMZ
      VRAVOVPRJAVNVORMIECDBFGUMSUNBTMVRVSQBCUOOTFCUOUPUQBTURUSUTLBVJKVKCDEFVJVA
      ZVKVAZGVCVDVEVKEVFSLBVJKVKCFVTWAVGVH $.
  $}

  ${
    $d m n x y B $.  $d m x y z C $.  $d m x y z F $.  $d a b m n x y z G $.
    $d x y E $.  $d m x y H $.
    $( A cyclic group is a group.  (Contributed by Mario Carneiro,
       21-Apr-2016.) $)
    cyggrp $p |- ( G e. CycGrp -> G e. Grp ) $=
      ( vn vx ccyg wcel cgrp cz cv cmg cfv co cmpt crn cbs wceq wrex eqid iscyg
      simplbi ) ADEAFEBGBHCHAIJZKLMANJZOCUAPCUATBAUAQTQRS $.

    $( A cyclic group is abelian.  (Contributed by Mario Carneiro,
       21-Apr-2016.) $)
    cygabl $p |- ( G e. CycGrp -> G e. Abel ) $=
      ( vy vn vx va vb vm wcel cv cfv co wceq cz wrex wa eqid eqidd simpll weq
      wi ccyg cgrp cmg cbs wral cabl iscyg3 cplusg eqeq1 rexbidv eqeq2d cbvrexv
      oveq1 syl6bb rspccv adantl reeanv cc zcn ad2antrl ad2antll addcomd oveq1d
      caddc simprl simprr simplr mulgdir syl13anc 3eqtr3d oveq12 ancoms eqeq12d
      syl5ibrcom rexlimdvva syl5bir adantr syl2and 3impib isabld r19.29an sylbi
      ) AUAHAUBHZBIZCIZDIZAUCJZKZLZCMNZBAUDJZUEZDWKNOAUFHZDBWKWGCAWKPZWGPZUGWCW
      LWMDWKWCWFWKHZOZWLOZEFWKAUHJZAWRWKQWRWSQWCWPWLRWREIZWKHZFIZWKHZWTXBWSKZXB
      WTWSKZLZWRXAWTGIZWFWGKZLZGMNZXCXBWHLZCMNZXFWLXAXJTWQWJXJBWTWKBESZWJWTWHLZ
      CMNXJXMWIXNCMWDWTWHUIUJXNXICGMCGSWHXHWTWEXGWFWGUMUKULUNUOUPWLXCXLTWQWJXLB
      XBWKBFSWIXKCMWDXBWHUIUJUOUPWQXJXLOZXFTWLXOXIXKOZCMNGMNWQXFXIXKGCMMUQWQXPX
      FGCMMWQXGMHZWEMHZOZOZXFXPXHWHWSKZWHXHWSKZLXTXGWEVDKZWFWGKZWEXGVDKZWFWGKZY
      AYBXTYCYEWFWGXTXGWEXQXGURHWQXRXGUSUTXRWEURHWQXQWEUSVAVBVCXTWCXQXRWPYDYALW
      CWPXSRZWQXQXRVEZWQXQXRVFZWCWPXSVGZWKWSWGAXGWEWFWNWOWSPZVHVIXTWCXRXQWPYFYB
      LYGYIYHYJWKWSWGAWEXGWFWNWOYKVHVIVJXPXDYAXEYBWTXHXBWHWSVKXKXIXEYBLXBWHWTXH
      WSVKVLVMVNVOVPVQVRVSVTWAWB $.

    cygctb.1 $e |- B = ( Base ` G ) $.
    $( A cyclic group is countable.  (Contributed by Mario Carneiro,
       21-Apr-2016.) $)
    cygctb $p |- ( G e. CycGrp -> B ~<_ _om ) $=
      ( vn vx ccyg wcel cz cv cmg cfv co cmpt crn wceq com cdom wbr eqid ax-mp
      wrex cgrp iscyg simprbi wfo wa wfn ovex fnmpti df-fo mpbiran ccrd wi con0
      cdm omelon onenon cen wb cn znnen entri ennum mpbir fodomnum mp1i domentr
      nnenom mpan2 syl6 syl5bir rexlimdva mpd ) BFGZDHDIZEIZBJKZLZMZNAOZEAUAZAP
      QRZVNBUBGWAEAVQDBCVQSUCUDVNVTWBEAVTHAVSUEZVNVPAGUFZWBWCVSHUGVTDHVRVSVOVPV
      QUHVSSUIHAVSUJUKWDWCAHQRZWBHULUOZGZWCWEUMWDWGPWFGZPUNGWHUPPUQTHPURRZWGWHU
      SHUTPVAVHVBZHPVCTVDHAVSVEVFWEWIWBWJAHPVGVIVJVKVLVM $.

    $( The trivial group is cyclic.  (Contributed by Mario Carneiro,
       21-Apr-2016.) $)
    0cyg $p |- ( ( G e. Grp /\ B ~~ 1o ) -> G e. CycGrp ) $=
      ( vx vn cgrp wcel c1o cen wbr wa cmg cfv eqid adantr cv cc0 cz co wceq 0z
      c0g simpl grpidcl wrex csn en1eqsn sylan eleq2d biimpa velsn sylib eqtr4d
      mulg0 syl oveq1 eqeq2d rspcev sylancr iscygd ) BFGZAHIJZKZDABLMZEBBUBMZCV
      DNZVAVBUCVAVEAGZVBABVECVENZUDZOZVCDPZAGZKZQRGVKQVEVDSZTZVKEPZVEVDSZTZERUE
      UAVMVKVEVNVMVKVEUFZGZVKVETVCVLVTVCAVSVKVAVGVBAVSTVIVEAUGUHUIUJDVEUKULVCVN
      VETZVLVCVGWAVJAVDBVEVECVHVFUNUOOUMVRVOEQRVPQTVQVNVKVPQVEVDUPUQURUSUT $.

    $( A group with prime order is cyclic.  (Contributed by Mario Carneiro,
       27-Apr-2016.) $)
    prmcyg $p |- ( ( G e. Grp /\ ( # ` B ) e. Prime ) -> G e. CycGrp ) $=
      ( vx wcel chash cfv cprime wa c0g wn wss c1 eqid cvv wceq ax-mp simplr wb
      fvex cgrp cv csn ccyg wex 1nprm simpr grpidcl snssd ad2antrr eqssd fveq2d
      hashsng syl6eq eqeltrrd ex mtoi nss sylib cod simpll simprl odeq1 syl2anc
      simprr velsn syl6bbr mtbird cdvds wbr wo cfn cn0 cn prmnn ad2antlr nnnn0d
      cbs eqeltri hashclb sylibr oddvds2 syl3anc odcl2 dvdsprime mpbid ord mt3d
      iscygodd exlimddv ) BUAEZAFGZHEZIZDUBZAEZWOBJGZUCZEZKZIZBUDEDWNAWRLZKXADU
      EWNXBMHEZUFWNXBXCWNXBIZWLMHXDWLWRFGZMXDAWRFXDAWRWNXBUGWKWRALWMXBWKWQAABWQ
      CWQNZUHUIUJUKULWQOEXEMPBJTWQOUMQUNWKWMXBRUOUPUQDAWRURUSWNXAIZABBUTGZWOCXH
      NZWKWMXAVAZWNWPWTVBZXGWOXHGZWLPZXLMPZXGXNWSWNWPWTVEXGXNWOWQPZWSXGWKWPXNXO
      SXJXKWOBXHAWQXIXFCVCVDDWQVFVGVHXGXMXNXGXLWLVIVJZXMXNVKZXGWKAVLEZWPXPXJXGW
      LVMEZXRXGWLWMWLVNEWKXAWLVOVPVQAOEXRXSSABVRGOCBVRTVSAOVTQWAZXKWOBXHACXIWBW
      CXGWMXLVNEZXPXQSWKWMXARXGWKXRWPYAXJXTXKWOBXHACXIWDWCWLXLWEVDWFWGWHWIWJ $.

    $( A group with fewer than ` 6 ` elements is abelian.  (Contributed by
       Mario Carneiro, 27-Apr-2016.) $)
    lt6abl $p |- ( ( G e. Grp /\ ( # ` B ) < 6 ) -> G e. Abel ) $=
      ( wcel cfv c6 wbr c1 cfzo co wa wb wceq c5 ax-mp c4 c3 c2 cn0 cdvds vx vn
      cgrp chash clt cabl cuz cz cn c0 wne grpbn0 adantr cfn cpnf cr cxr wn 6re
      rexr pnfnlt mp2b cvv cbs eqeltri a1i hashinf sylan breq1d biimpd impancom
      fvex mt3i hashnncl syl mpbird nnuz syl6eleq 6nn simpr elfzo2 syl3anbrc wo
      nnzi caddc df-6 oveq2i eleq2i 5nn eleqtri fzosplitsni bitri df-5 4nn df-4
      3nn df-3 2eluzge1 c1o cen csn elsni fzo12sn eleq2s hash1 syl6eqr syl6eqel
      adantl 1nn0 hashclb sylibr com 1onn nnfi hashen sylancl mpbid ccyg syldan
      0cyg ex cprime id 2prm syl5 jaod syl5bi cv 2z eqid wrex 4nn0 syl3anc cexp
      wi sq2 2nn0 cle sylancr dvdsexp cygabl prmcyg 3prm cod wral cgex gexdvds2
      simpl gex2abl sylbird rexnal odcl ad2antrl oddvds2 breqtrd cpc odcl2 pccl
      simprl nn0zd df-2 simprr 3expia 1z eluz oveq2 syl6eq breq2d rspcev eqcomd
      pcprmpw2 cc 2cn exp1 breq12d 3imtr3d mtod nn0red ltnle nn0ltp1le syl5eqbr
      1re syl5eqbrr breqtrrd dvdseq syl22anc eqtr4d iscygodd rexlimdvaa syl5bir
      eluz2 pm2.61d 5prm imp ) BUCDZAUDEZFUEGZUWPHFIJZDZBUFDZUWOUWQKZUWPHUGEZDF
      UHDZUWQUWSUXAUWPUIUXBUXAUWPUIDZAUJUKZUWOUXEUWQABCULUMUXAAUNDZUXDUXELUXAUX
      FUOFUEGZFUPDFUQDUXGURUSFUTFVAVBUWOUXFURZUWQUXGUWOUXHKZUWQUXGUXIUWPUOFUEUW
      OAVCDZUXHUWPUOMUXJUWOABVDEVCCBVDVLVEZVFAVCVGVHVIVJVKVMAVNVOVPVQVRUXCUXAFV
      SWDVFUWOUWQVTUWPHFWAWBUWOUWSUWTUWSUWPHNIJZDZUWPNMZWCZUWOUWTUWSUWPHNHWEJZI
      JZDZUXOUWRUXQUWPFUXPHIWFWGWHNUXBDUXRUXOLNUIUXBWIVQWJHNUWPWKOWLUWOUXMUWTUX
      NUXMUWPHPIJZDZUWPPMZWCZUWOUWTUXMUWPHPHWEJZIJZDZUYBUXLUYDUWPNUYCHIWMWGWHPU
      XBDUYEUYBLPUIUXBWNVQWJHPUWPWKOWLUWOUXTUWTUYAUXTUWPHQIJZDZUWPQMZWCZUWOUWTU
      XTUWPHQHWEJZIJZDZUYIUXSUYKUWPPUYJHIWOWGWHQUXBDUYLUYILQUIUXBWPVQWJHQUWPWKO
      WLUWOUYGUWTUYHUYGUWPHRIJZDZUWPRMZWCZUWOUWTUYGUWPHRHWEJZIJZDZUYPUYFUYRUWPQ
      UYQHIWQWGWHRUXBDUYSUYPLWRHRUWPWKOWLUWOUYNUWTUYOUWOUYNUWTUWOUYNAWSWTGZUWTU
      WOUYNKZUWPWSUDEZMZUYTVUAUWPHVUBUYNUWPHMZUWOVUDUWPHXAUYMUWPHXBXCXDXHZXEXFV
      UAUXFWSUNDZVUCUYTLVUAUWPSDZUXFVUAUWPHSVUEXIXGUXJUXFVUGLUXKAVCXJOZXKWSXLDV
      UFXMWSXNOAWSXOXPXQUWOUYTKBXRDZUWTABCXTBUUAZVOXSYAUYOUWPYBDZUWOUWTUYOUWPRY
      BUYOYCYDXGUWOVUKUWTUWOVUKKVUIUWTABCUUBVUJVOYAZYEYFYGUYHVUKUWOUWTUYHUWPQYB
      UYHYCUUCXGVULYEYFYGUWOUYAUWTUWOUYAKZUAYHZBUUDEZEZRTGZUAAUUEZUWTVUMVURBUUF
      EZRTGZUWTVUMUWORUHDZVUTVURLUWOUYAUUHZYIUAVUSBRVUOACVUSYJZVUOYJZUUGXPUWOVU
      TUWTYOUYAUWOVUTUWTVUSBACVVCUUIYAUMUUJVURURVUQURZUAAYKVUMUWTVUQUAAUUKVUMVV
      EUWTUAAVUMVUNADZVVEKZKZVUIUWTVVHABVUOVUNCVVDVUMUWOVVGVVBUMZVUMVVFVVEUUSZV
      VHVUPPUWPVVHVUPSDZPSDZVUPPTGZPVUPTGVUPPMVVFVVKVUMVVEVUNBVUOACVVDUULUUMVVL
      VVHYLVFVVHVUPUWPPTVVHUWOUXFVVFVUPUWPTGVVIVUMUXFVVGVUMVUGUXFVUMUWPPSUWOUYA
      VTZYLXGVUHXKUMZVVJVUNBVUOACVVDUUNYMVUMUYAVVGVVNUMZUUOZVVHPRRVUPUUPJZYNJZV
      UPTVVHPRRYNJZVVSTYPVVHVVARSDZVVRRUGEDZVVTVVSTGVVAVVHYIVFZVWAVVHYQVFVVHVVA
      VVRUHDZRVVRYRGVWBVWCVVHVVRVVHRYBDZVUPUIDZVVRSDZYDVVHUWOUXFVVFVWFVVIVVOVVJ
      VUNBVUOACVVDUUQYMZRVUPUURYSZUUTZVVHRHHWEJZVVRYRUVAVVHHVVRUEGZVWKVVRYRGZVV
      HVWLVVRHYRGZURZVVHVWNVUQVUMVVFVVEUVBVVHHVVRUGEDZVVSRHYNJZTGZVWNVUQVVHVVAV
      WGVWPVWRYOYIVWIVVAVWGVWPVWRRVVRHYTUVCYSVVHVWDHUHDVWPVWNLVWJUVDVVRHUVEXPVV
      HVVSVUPVWQRTVVHVUPVVSVVHVUPRUBYHZYNJZTGZUBSYKZVUPVVSMZVVHVWAVVMVXBYQVVQVX
      AVVMUBRSVWSRMZVWTPVUPTVXDVWTVVTPVWSRRYNUVFYPUVGUVHUVIYSVVHVWEVWFVXBVXCLYD
      VWHVUPRUBUVKYSXQZUVJVWQRMZVVHRUVLDVXFUVMRUVNOVFUVOUVPUVQVVHHUPDVVRUPDVWLV
      WOLUWBVVHVVRVWIUVRHVVRUVSYSVPVVHHSDVWGVWLVWMLXIVWIHVVRUVTYSXQUWARVVRUWKWB
      RRVVRYTYMUWCVXEUWDVUPPUWEUWFVVPUWGUWHVUJVOUWIUWJUWLYAYFYGUXNVUKUWOUWTUXNU
      WPNYBUXNYCUWMXGVULYEYFYGUWNXS $.

    ${
      ghmcyg.1 $e |- C = ( Base ` H ) $.
      $( The image of a cyclic group under a surjective group homomorphism is
         cyclic.  (Contributed by Mario Carneiro, 21-Apr-2016.) $)
      ghmcyg $p |- ( ( F e. ( G GrpHom H ) /\ F : B -onto-> C ) ->
        ( G e. CycGrp -> H e. CycGrp ) ) $=
        ( vn vx vy vm vz wcel cz cv cfv co wceq wrex wa ccyg cmg cmpt cghm cgrp
        crn wfo eqid iscyg simprbi ghmgrp2 ad2antrr wf ad2antlr simprl ffvelrnd
        fof simplr foeq2 ad2antll mpbird foelrn sylan cvv wral ovex rgenw oveq1
        cbvmptv fveq2 eqeq2d rexrnmpt ax-mp sylib simp-4l simpr ghmmulg syl3anc
        wb rexbidva mpbid iscygd rexlimdvaa syl5 ) DUAMZHNHOZIOZDUBPZQZUCZUFZAR
        ZIASZCDEUDQMZABCUGZTZEUAMZWEDUEMWMIAWHHDFWHUHZUIUJWPWLWQIAWPWGAMZWLTZTZ
        JBEUBPZKEWGCPZGXBUHZWNEUEMWOWTDECUKULXAABWGCWOABCUMWNWTABCUQUNWPWSWLUOZ
        UPXAJOZBMZTZXFKOZWGWHQZCPZRZKNSZXFXIXCXBQZRZKNSXHXFLOZCPZRZLWKSZXMXAWKB
        CUGZXGXSXAXTWOWNWOWTURWLXTWOVSWPWSWKABCUSUTVALWKBXFCVBVCXJVDMZKNVEXSXMV
        SYAKNXIWGWHVFVGXRXLKLNXJWJVDHKNWIXJWFXIWGWHVHVIXPXJRXQXKXFXPXJCVJVKVLVM
        VNXHXLXOKNXHXINMZTZXKXNXFYCWNYBWSXKXNRWNWOWTXGYBVOXHYBVPXAWSXGYBXEULAWH
        XBCDEXIWGFWRXDVQVRVKVTWAWBWCWD $.
    $}

    cyggex.o $e |- E = ( gEx ` G ) $.
    $( The exponent of a cyclic group is ` 0 ` if the group is infinite,
       otherwise it equals the order of the group.  (Contributed by Mario
       Carneiro, 24-Apr-2016.) $)
    cyggex2 $p |- ( G e. CycGrp ->
      E = if ( B e. Fin , ( # ` B ) , 0 ) ) $=
      ( vn vx vy wcel cgrp cz cv cfv wceq wa cc0 eqid cn0 cdvds wbr ccyg cmg co
      cmpt crn crab c0 wne cfn chash cif iscyg2 wex cod ssrab2 sseldi cyggenod2
      n0 simpr jca ex gexcl adantr hashcl adantl 0nn0 a1i ifclda breq2 gexdvds3
      wn adantlr nn0z dvds0 3syl ifbothda simprr gexod eqbrtrrd dvdseq syl22anc
      adantrr syld exlimdv syl5bi imp sylbi ) CUAICJIZFKFLGLCUBMZUCUDUEANZGAUFZ
      UGUHZOBAUIIZAUJMZPUKZNZGAWIFWKCDWIQZWKQZULWHWLWPWLHLZWKIZHUMWHWPHWKURWHWT
      WPHWHWTWSAIZWSCUNMZMZWONZOZWPWHWTXEWHWTOZXAXDXFWKAWSWJGAUOWHWTUSUPGAWIFWK
      CXBWSDWQWRXBQZUQUTVAWHXEWPWHXEOZBRIZWORIBWOSTZWOBSTWPWHXIXEBCJADEVBVCZXHW
      MWNPRWMWNRIXHAVDVEPRIXHWMVKZOZVFVGVHWMBWNSTZBPSTZXJXHWNPWNWOBSVIPWOBSVIWH
      WMXNXEBCADEVJVLXMXIBKIXOXHXIXLXKVCBVMBVNVOVPXHXCWOBSWHXAXDVQWHXAXCBSTXDWS
      BCXBADEXGVRWBVSBWOVTWAVAWCWDWEWFWG $.

    $( The exponent of a finite cyclic group is the order of the group.
       (Contributed by Mario Carneiro, 24-Apr-2016.) $)
    cyggex $p |- ( ( G e. CycGrp /\ B e. Fin ) -> E = ( # ` B ) ) $=
      ( ccyg wcel cfn chash cfv cc0 cif cyggex2 iftrue sylan9eq ) CFGAHGZBPAIJZ
      KLQABCDEMPQKNO $.

    $( A finite abelian group is cyclic iff the exponent equals the order of
       the group.  (Contributed by Mario Carneiro, 21-Apr-2016.) $)
    cyggexb $p |- ( ( G e. Abel /\ B e. Fin ) ->
      ( G e. CycGrp <-> E = ( # ` B ) ) ) $=
      ( vx vn vy cabl wcel cfn wa ccyg cfv wceq cv simplr syl2anc eqid wb chash
      wi cyggex expcom adantl cod wrex simpll cgrp ablgrp ad2antrr gexcl2 gexex
      cn eqeq2d cz cmg co cmpt crn crab cyggenod c0 wne ne0i iscyg2 syl syl5ibr
      baib sylbird expdimp sylbid rexlimdva mpd ex impbid ) CIJZAKJZLZCMJZBAUAN
      ZOZVRVTWBUBVQVTVRWBABCDEUCUDUEVSWBVTVSWBLZFPZCUFNZNZBOZFAUGZVTWCVQBUNJZWH
      VQVRWBUHWCCUIJZVRWIVQWJVRWBCUJUKZVQVRWBQZBCADEULRFBCWEADEWESZUMRWCWGVTFAW
      CWDAJZLZWGWFWAOZVTWOBWAWFVSWBWNQUOWCWNWPVTWCWNWPLZWDGUPGPHPCUQNZURUSUTAOH
      AVAZJZVTWCWJVRWTWQTWKWLHAWRGWSCWEWDDWRSZWSSZWMVBRWTVTWCWSVCVDZWSWDVEWCWJV
      TXCTWKVTWJXCHAWRGWSCDXAXBVFVIVGVHVJVKVLVMVNVOVP $.
  $}

  ${
    $d n x y A $.  $d f n x y G $.  $d n y S $.  $d n x .x. $.  $d n x y X $.
    $d f H $.
    $( Cyclicity is a group property, i.e. it is preserved under isomorphism.
       (Contributed by Mario Carneiro, 21-Apr-2016.) $)
    giccyg $p |- ( G ~=g H -> ( G e. CycGrp -> H e. CycGrp ) ) $=
      ( vf cgic wbr cgim co c0 wne ccyg wcel wi brgic cv wex cbs cfv eqid sylbi
      n0 cghm wfo gimghm wf1o gimf1o f1ofo syl ghmcyg syl2anc exlimiv ) ABDEABF
      GZHIZAJKBJKLZABMULCNZUKKZCOUMCUKTUOUMCUOUNABUAGKAPQZBPQZUNUBZUMABUNUCUOUP
      UQUNUDURUPUQABUNUPRZUQRZUEUPUQUNUFUGUPUQUNABUSUTUHUIUJSS $.

    cycsubgcyg.x $e |- X = ( Base ` G ) $.
    cycsubgcyg.t $e |- .x. = ( .g ` G ) $.
    cycsubgcyg.s $e |- S = ran ( x e. ZZ |-> ( x .x. A ) ) $.
    $( The cyclic subgroup generated by ` A ` is a cyclic group.  (Contributed
       by Mario Carneiro, 24-Apr-2016.) $)
    cycsubgcyg $p |- ( ( G e. Grp /\ A e. X ) ->
      ( G |`s S ) e. CycGrp ) $=
      ( vy vn cgrp wcel wa co cfv eqid cz cv wceq cress cbs cmg csubg cycsubgcl
      cmpt crn simpld syl5eqel subggrp syl simprd syl6eleqr subgbas wrex eleq2d
      eleqtrd biimpar simpr syl6eleq oveq1 cbvmptv ovex elrnmpti sylib ad2antrr
      subgmulg syl3anc eqeq2d rexbidva mpbid syldan iscygd ) ELMBFMNZJECUAOZUBP
      ZVOUCPZKVOBVPQVQQZVNCEUDPZMZVOLMVNCARASZBDOZUFZUGZVSIVNWDVSMZBWDMZABDWCEF
      GHWCQUEZUHUIZCEVOVOQZUJUKVNBCVPVNBWDCVNWEWFWGULIUMZVNVTCVPTWHCEVOWIUNUKZU
      QVNJSZVPMZWLCMZWLKSZBVQOZTZKRUOZVNWNWMVNCVPWLWKUPURVNWNNZWLWOBDOZTZKRUOZW
      RWSWLWDMXBWSWLCWDVNWNUSIUTKRWTWLWCAKRWBWTWAWOBDVAVBWOBDVCVDVEWSXAWQKRWSWO
      RMZNZWTWPWLXDVTXCBCMZWTWPTVNVTWNXCWHVFWSXCUSVNXEWNXCWJVFCVQDEVOWOBHWIVRVG
      VHVIVJVKVLVM $.
  $}

  ${
    $d n A $.  $d n B $.  $d n G $.
    cycsubgcyg2.b $e |- B = ( Base ` G ) $.
    cycsubgcyg2.k $e |- K = ( mrCls ` ( SubGrp ` G ) ) $.
    $( The cyclic subgroup generated by ` A ` is a cyclic group.  (Contributed
       by Mario Carneiro, 27-Apr-2016.) $)
    cycsubgcyg2 $p |- ( ( G e. Grp /\ A e. B ) ->
      ( G |`s ( K ` { A } ) ) e. CycGrp ) $=
      ( vn cgrp wcel wa csn cfv cress co cz cv cmg cmpt crn eqid oveq2d eqeltrd
      ccyg cycsubg2 cycsubgcyg ) CHIABIJZCAKDLZMNCGOGPACQLZNRZSZMNUCUFUGUJCMGAU
      HUICDBEUHTZUITFUDUAGAUJUHCBEUKUJTUEUB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Group sum operation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d f g k m n x y z .+ $.  $d f g k m n x y z A $.  $d f g k m n x y z ph $.
    $d g x y z .0. $.  $d f g m n x y z G $.  $d f k m n x y z M $.  $d x V $.
    $d f g k m n x y z B $.  $d f g k m n x y z F $.  $d f g k m n x y z H $.
    $d f g k m n x y z W $.
    gsumval3.b $e |- B = ( Base ` G ) $.
    gsumval3.0 $e |- .0. = ( 0g ` G ) $.
    gsumval3.p $e |- .+ = ( +g ` G ) $.
    gsumval3.z $e |- Z = ( Cntz ` G ) $.
    gsumval3.g $e |- ( ph -> G e. Mnd ) $.
    gsumval3.a $e |- ( ph -> A e. V ) $.
    gsumval3.f $e |- ( ph -> F : A --> B ) $.
    gsumval3.c $e |- ( ph -> ran F C_ ( Z ` ran F ) ) $.
    ${
      gsumval3a.t $e |- ( ph -> W e. Fin ) $.
      gsumval3a.n $e |- ( ph -> W =/= (/) ) $.
      ${
        gsumval3a.w $e |- W = ( F supp .0. ) $.
        gsumval3a.i $e |- ( ph -> -. A e. ran ... ) $.
        $( Value of the group sum operation over an index set with finite
           support.  (Contributed by Mario Carneiro, 7-Dec-2014.)  (Revised by
           AV, 29-May-2019.) $)
        gsumval3a $p |- ( ph -> ( G gsum F ) = ( iota x E. f
          ( f : ( 1 ... ( # ` W ) ) -1-1-onto-> W /\
            x = ( seq 1 ( .+ , ( F o. f ) ) ` ( # ` W ) ) ) ) ) $=
          ( vz vy vm vn cgsu co crn cv wceq wral crab wss cfz wcel cseq cfv cuz
          wa wrex wex cio chash wf1o ccom cif cmnd eqid csupp ccnv cvv csn cdif
          c1 cima a1i wf jca fex syl c0g eqeltri suppimacnv sylancl gsumvallem2
          eqcomd difeq2d imaeq2d 3eqtrd gsumval c0 wne wn sseq2d adantr cin wfn
          fvex ffn simpr df-f sylanbrc disjdif fimacnvdisj ex necon3ad iffalsed
          sylbid mpd ) AHGUIUJGUKZUEULZUFULZEUJXOUMXOXNEUJXOUMVBUFDUNUEDUOZUPZK
          CUQUKURZCUGULZUHULZUQUJUMBULZXTEGXSUSUTUMVBUHXSVAUTVCUGVDBVEZVQJVFUTZ
          UQUJJFULZVGYAYCEGYDVHVQUSUTUMVBFVDBVEZVIZVIYFYEABUFCDEFUGUHGHXPVJJIKU
          EMNOXPVKZAJGKVLUJZGVMZVNKVOZVPZVRZYIVNXPVPZVRJYHUMZAUCVSAGVNURZKVNURZ
          YHYLUMZACDGVTZCIURZVBZYOAYRYSSRWAZCDIGWBZWCKHWDUTVNNHWDXAWEZGVNVNKWFZ
          WGAYKYMYIAYJXPVNAXPYJAHVJURXPYJUMQUEUFDEHXPKMNOYGWHWCZWIWJWKWLQRSWMAX
          QKYFAJWNWOXQWPUBAXQJWNAXQXMYJUPZJWNUMZAXPYJXMUUEWQAUUFUUGAUUFVBZJYHYL
          WNYNUUHUCVSUUHYOYPYQUUHYTYOAYTUUFUUAWRUUBWCUUCUUDWGUUHCYJGVTZYJYKWSWN
          UMYLWNUMUUHGCWTZUUFUUIAUUJUUFAYRUUJSCDGXBWCWRAUUFXCCYJGXDXEYJVNXFCYJY
          KGXGWGWLXHXKXIXLXJAXRYBYEUDXJWL $.
      $}

      gsumval3a.s $e |- ( ph -> W C_ A ) $.
      $( The group sum as defined in ~ gsumval3a is uniquely defined.
         (Contributed by Mario Carneiro, 8-Dec-2014.) $)
      gsumval3eu $p |- ( ph -> E! x E. f
        ( f : ( 1 ... ( # ` W ) ) -1-1-onto-> W /\
          x = ( seq 1 ( .+ , ( F o. f ) ) ` ( # ` W ) ) ) ) $=
        ( vg vy vz vk c1 chash cfv cfz co cv wf1o ccom cseq wceq wa wex weq wal
        wi weu cn wcel c0 wn neneqd cfn fz1f1o syl ord mpd simprd excom exancom
        wo fvex biidd ceqsexv bitri exbii sylibr eeanv an4 crn ccnv cmnd adantr
        mndcl 3expb sylan wss sselda adantrr simprr cntzi syl2anc mndass simpld
        w3a cuz nnuz syl6eleq wf frn f1ocnv simprl f1oco f1of wfn ffn ffvelrnda
        fvco3 fssd eqeltrd fveq2d f1ocnvfv2 eqtr2d syldan 3eqtr4d seqf1o eqeq12
        fnfvelrn syl5ibrcom expimpd syl5bir exlimdvv eqeq1 anbi2d exbidv f1oeq1
        alrimivv coeq2 seqeq3d fveq1d eqeq2d anbi12d cbvexv syl6bb eu4 sylanbrc
        ) AUHJUIUJZUKULZJFUMZUNZBUMZUUCEGUUEUOZUHUPZUJZUQZURZFUSZBUSZUUMUUDJUDU
        MZUNZUEUMZUUCEGUUOUOZUHUPZUJZUQZURZUDUSZURZBUEUTZVBZUEVABVAUUMBVCAUUFFU
        SZUUNAUUCVDVEZUVGAJVFUQZVGUVHUVGURZAJVFUBVHAUVIUVJAJVIVEUVIUVJVQUAJFVJV
        KVLVMZVNUUNUULBUSZFUSUVGUULBFVOUVLUUFFUVLUUKUUFURBUSUUFUUFUUKBVPUUFUUFB
        UUJUUCUUIVRUUKUUFVSVTWAWBWAWCAUVFBUEUVDUULUVBURZUDUSFUSAUVEUULUVBFUDWDA
        UVMUVEFUDUVMUUFUUPURZUUKUVAURZURAUVEUUFUUPUUKUVAWEAUVNUVOUVEAUVNURZUVEU
        VOUUJUUTUQUVPBUEUFGWFZEDUGUUOWGZUUEUOZUURUUHUHUUCUVPHWHVEZUUGDVEZUUQDVE
        ZURUUGUUQEULZDVEZAUVTUVNQWIZUVTUWAUWBUWDDEHUUGUUQMOWJWKWLUVPUUGUVQVEZUU
        QUVQVEZURURUUGUVQLUJZVEZUWGUWCUUQUUGEULUQUVPUWFUWIUWGUVPUVQUWHUUGAUVQUW
        HWMUVNTWIWNWOUVPUWFUWGWPEUVQHUUGUUQLOPWQWRUVPUVTUWAUWBUFUMZDVEXAUWCUWJE
        ULUUGUUQUWJEULEULUQUWEDEHUUGUUQUWJMOWSWLUVPUUCVDUHXBUJAUVHUVNAUVHUVGUVK
        WTWIXCXDUVPCDGXEZUVQDWMAUWKUVNSWIZCDGXFVKUVPJUUDUVRUNZUUFUUDUUDUVSUNZUV
        PUUPUWMAUUFUUPWPZUUDJUUOXGVKAUUFUUPXHZUUDJUUDUVRUUEXIWRZUVPUUGUUDVEZURZ
        UUGUURUJZUUGUUOUJZGUJZUVQUVPUUDJUUOXEZUWRUWTUXBUQUVPUUPUXCUWOUUDJUUOXJV
        KZUUDJUUGGUUOXNWLUWSGCXKZUXACVEUXBUVQVEUVPUXEUWRUVPUWKUXEUWLCDGXLVKWIUV
        PUUDCUUGUUOUVPUUDJCUUOUXDAJCWMUVNUCWIXOZXMCUXAGYDWRXPUVPUGUMZUUDVEZURZU
        XGUUEUJZGUJZUXGUVSUJZUUOUJZGUJZUXGUUHUJZUXLUURUJZUXIUXJUXMGUXIUXMUXJUVR
        UJZUUOUJZUXJUXIUXLUXQUUOUVPUUDJUUEXEZUXHUXLUXQUQUVPUUFUXSUWPUUDJUUEXJVK
        ZUUDJUXGUVRUUEXNWLXQUXIUUPUXJJVEUXRUXJUQUVPUUPUXHUWOWIUVPUUDJUXGUUEUXTX
        MUUDJUXJUUOXRWRXSXQUVPUXSUXHUXOUXKUQUXTUUDJUXGGUUEXNWLUVPUXHUXLUUDVEZUX
        PUXNUQZUVPUUDUUDUXGUVSUVPUWNUUDUUDUVSXEUWQUUDUUDUVSXJVKXMUVPUUDCUUOXEUY
        AUYBUXFUUDCUXLGUUOXNWLXTYAYBUUGUUJUUQUUTYCYEYFYGYHYGYMUUMUVCBUEUVEUUMUU
        FUUQUUJUQZURZFUSUVCUVEUULUYDFUVEUUKUYCUUFUUGUUQUUJYIYJYKUYDUVBFUDFUDUTZ
        UUFUUPUYCUVAUUDJUUEUUOYLUYEUUJUUTUUQUYEUUCUUIUUSUYEUUHUUREUHUUEUUOGYNYO
        YPYQYRYSYTUUAUUB $.
    $}

    gsumval3.m $e |- ( ph -> M e. NN ) $.
    gsumval3.h $e |- ( ph -> H : ( 1 ... M ) -1-1-> A ) $.
    gsumval3.n $e |- ( ph -> ( F supp .0. ) C_ ran H ) $.
    gsumval3.w $e |- W = ( ( F o. H ) supp .0. ) $.
    $( Lemma 1 for ~ gsumval3 .  (Contributed by AV, 31-May-2019.) $)
    gsumval3lem1 $p |- ( ( ( ph /\ W =/= (/) )
           /\ ( -. A e. ran ... /\ f Isom < , < ( ( 1 ... ( # ` W ) ) , W ) ) )
                          -> ( H o. f ) : ( 1 ... ( # ` ( F supp .0. ) ) )
                                          -1-1-onto-> ( F supp .0. ) ) $=
      ( c0 wne wa cfz crn wcel wn c1 chash cfv co clt wiso csupp ccom wf1o cres
      cv cima wf1 wss ad2antrr cdm suppssdm eqsstri wf wceq f1f syl fco syl2anc
      fdm syl5sseq f1ores imaeq2i cvv wfun fex ovex sylancl f1fun jca imacosupp
      jca31 imp syl5eq f1oeq3 mpbid isof1o ad2antll f1oco f1of frn cores f1oeq1
      wb 3syl cen wbr cfn fzfi a1i syl3anc resexg imaeq2d eqtrd f1oen3g sylancr
      fex2 ssfi f1f1orn enfi mpbii hashen mpbird oveq2d f1oeq2 ) AKUFUGZUHZBUIU
      JUKULZUMKUNUOZUIUPZKUQUQEVCZURZUHZUHZYGFLUSUPZHYHUTZVAZUMYLUNUOZUIUPZYLYM
      VAZYKYGYLHKVBZYHUTZVAZYNYKKYLYRVAZYGKYHVAZYTYKKHKVDZYRVAZUUAYKUMIUIUPZBHV
      EZKUUEVFZUUDAUUFYCYJUCVGAUUGYCYJAFHUTZVHZKUUEKUUHLUSUPZUUIUEUUHLVIVJAUUEC
      UUHVKZUUIUUEVLABCFVKZUUEBHVKZUUKTAUUFUUMUCUUEBHVMZVNZUUEBCFHVOVPUUECUUHVQ
      VNVRZVGUUEBKHVSVPZYKUUCYLVLZUUDUUAXAZYKUUCHUUJVDZYLKUUJHUEVTYKFWAUKZHWAUK
      ZUHZHWBZYLHUJZVFZUHZUHZUUTYLVLZAUVHYCYJAUVAUVBUVGAUULBJUKZUVATSBCJFWCVPZA
      UUFUVBUCUUFUUMUUEWAUKUVBUUNUMIUIWDUUEBWAHWCWEVNAUVDUVFAUUFUVDUCUUEBHWFVNU
      DWGZWIVGUVCUVGUVIFHWAWALWHWJZVNWKUUCYLKYRWLZVNWMYIUUBYDYEYGKUQUQYHWNWOZYG
      KYLYRYHWPVPYKYHUJKVFZYSYMVLYTYNXAYKUUBYGKYHVKUVPUVOYGKYHWQYGKYHWRXBHYHKWS
      YGYLYSYMWTXBWMYKYGYPVLYNYQXAYKYFYOUMUIYKYFYOVLZKYLXCXDZYKYRWAUKZUUAUVRAUV
      SYCYJAUVBUVSAUUMUUEXEUKZUVJUVBUUOUVTAUMIXFZXGSUUEBHXEJXNXHZHKWAXIVNVGYKUU
      DUUAUUQYKUURUUSYKUUCUUTYLYKKUUJHKUUJVLYKUEXGXJYKUVHUVIAUVHYCYJAUVAUVBUVGU
      VKUWBUVLWIVGUVMVNXKUVNVNWMKYLYRWAXLVPYKKXEUKZYLXEUKZUVQUVRXAAUWCYCYJAUVTU
      UGUWCUWAUUPUUEKXOXMVGAUWDYCYJAUVEXEUKZUVFUWDAUVTUWEUWAAUUEUVEXCXDZUVTUWEX
      AAUVBUUEUVEHVAZUWFUWBAUUFUWGUCUUEBHXPVNUUEUVEHWAXLVPUUEUVEXQVNXRUDUVEYLXO
      VPVGKYLXSVPXTYAYGYPYLYMYBVNWM $.

    $( Lemma 2 for ~ gsumval3 .  (Contributed by AV, 31-May-2019.) $)
    gsumval3lem2 $p |- ( ( ( ph /\ W =/= (/) )
           /\ ( -. A e. ran ... /\ f Isom < , < ( ( 1 ... ( # ` W ) ) , W ) ) )
      -> ( G gsum F ) = ( seq 1 ( .+ , ( F o. ( H o. f ) ) ) ` ( # ` W ) ) ) $=
      ( vg vx c0 wne wa cfz crn wcel wn c1 chash cfv co cv wiso csupp wf1o ccom
      clt cseq wceq wex cgsu cvv cfn wf1 f1f syl fzfid fex2 syl3anc vex sylancl
      coexg ad2antrr gsumval3lem1 cen wbr cres resexg cima wss suppssdm eqsstri
      wf cdm fco syl2anc fdm syl5sseq f1ores wb imaeq2i wfun fex ovex jca f1fun
      imacosupp sylc adantr syl5eq mpbid f1oen3g fzfi ssfi sylancr f1f1orn enfi
      f1oeq3 mpbii hashen mpbird fveq2d f1oeq1 coeq2 seqeq3d fveq1d anbi12d wal
      eqeq2d spcegv cio weu neeq1i wi supp0cosupp0 necon3d syl5bi imp frn sstrd
      cmnd gsumval3eu iota1 simprl gsumval3a eqeq1d bitr4d alrimiv eqeq1 anbi2d
      eqid fvex exbidv eqeq2 bibi12d spcv ) AKUHUIZUJZBUKULUMUNZUOKUPUQZUKURKVD
      VDEUSZUTZUJZUJZUOFLVAURZUPUQZUKURZUVBUFUSZVBZUUQDFHUURVCZVCZUOVEZUQZUVCDF
      UVEVCZUOVEZUQZVFZUJZUFVGZGFVHURZUVJVFZUVAUVGVIUMZUVDUVBUVGVBZUVJUVCUVIUQZ
      VFZUJZUVPAUVSUUNUUTAHVIUMZUURVIUMUVSAUOIUKURZBHWJZUWEVJUMZBJUMZUWDAUWEBHV
      KZUWFUCUWEBHVLVMZAUOIVNSUWEBHVJJVOVPZEVQHUURVIVIVSVRVTUVAUVTUWBABCDEFGHIJ
      KLMNOPQRSTUAUBUCUDUEWAUVAUUQUVCUVIUVAUUQUVCVFZKUVBWBWCZUVAHKWDZVIUMZKUVBU
      WNVBZUWMAUWOUUNUUTAUWDUWOUWKHKVIWEVMVTUVAKHKWFZUWNVBZUWPUVAUWIKUWEWGZUWRA
      UWIUUNUUTUCVTAUWSUUNUUTAFHVCZWKZKUWEKUWTLVAURZUXAUEUWTLWHWIAUWECUWTWJZUXA
      UWEVFABCFWJZUWFUXCTUWJUWEBCFHWLWMUWECUWTWNVMWOZVTUWEBKHWPWMUVAUWQUVBVFZUW
      RUWPWQUUOUXFUUTUUOUWQHUXBWFZUVBKUXBHUEWRAUXGUVBVFZUUNAFVIUMZUWDUJZHWSZUVB
      HULZWGZUJUXHAUXIUWDAUXDUWHUXITSBCJFWTWMZAUWFUWEVIUMUWDUWJUOIUKXAUWEBVIHWT
      VRZXBAUXKUXMAUWIUXKUCUWEBHXCVMUDXBFHVIVILXDXEXFXGXFUWQUVBKUWNXOVMXHKUVBUW
      NVIXIWMUVAKVJUMZUVBVJUMZUWLUWMWQAUXPUUNUUTAUWGUWSUXPUOIXJZUXEUWEKXKXLVTAU
      XQUUNUUTAUXLVJUMZUXMUXQAUWGUXSUXRAUWEUXLWBWCZUWGUXSWQAUWDUWEUXLHVBZUXTUWK
      AUWIUYAUCUWEBHXMVMUWEUXLHVIXIWMUWEUXLXNVMXPUDUXLUVBXKWMVTZKUVBXQWMXRXSXBU
      VOUWCUFUVGVIUVEUVGVFZUVFUVTUVNUWBUVDUVBUVEUVGXTUYCUVMUWAUVJUYCUVCUVLUVIUY
      CUVKUVHDUOUVEUVGFYAYBYCYFYDYGXEUVAUVFUGUSZUVMVFZUJZUFVGZUVQUYDVFZWQZUGYEU
      VPUVRWQZUVAUYIUGUVAUYGUYGUGYHZUYDVFZUYHUVAUYGUGYIUYGUYLWQUVAUGBCDUFFGJUVB
      LMNOPQAGYRUMUUNUUTRVTZAUWHUUNUUTSVTZAUXDUUNUUTTVTZAFULZUYPMUQWGUUNUUTUAVT
      ZUYBUUOUVBUHUIZUUTAUUNUYRUUNUXBUHUIZAUYRKUXBUHUEYJAUXIUWDUYSUYRYKUXNUXOUX
      JUVBUHUXBUHFHVIVILYLYMWMYNYOXFZUVAUVBUXLBAUXMUUNUUTUDVTAUXLBWGZUUNUUTAUWF
      VUAUWJUWEBHYPVMVTYQYSUYGUGYTVMUVAUVQUYKUYDUVAUGBCDUFFGJUVBLMNOPQUYMUYNUYO
      UYQUYBUYTUVBUUHUUOUUPUUSUUAUUBUUCUUDUUEUYIUYJUGUVJUUQUVIUUIUYDUVJVFZUYGUV
      PUYHUVRVUBUYFUVOUFVUBUYEUVNUVFUYDUVJUVMUUFUUGUUJUYDUVJUVQUUKUULUUMVMXH $.

    $( Value of the group sum operation over an arbitrary finite set.
       (Contributed by Mario Carneiro, 15-Dec-2014.)  (Revised by AV,
       31-May-2019.) $)
    gsumval3 $p |- ( ph -> ( G gsum F )
                           = ( seq 1 ( .+ , ( F o. H ) ) ` M ) ) $=
      ( vx vm vn vf vy vz vk cgsu co ccom c1 cseq cfv wceq c0 wa cmpt cmnd wcel
      syl2anc adantr cv crn ccnv cfz wf syl ad2antrr wf1o f1ocnv f1of ffvelrnda
      3syl fvco3 cdif simpr syl6eq cvv fco csupp wss a1i ovexd c0g fvex suppssr
      syldan sylan fveq2d sylibr adantlr wn sylib eqtrd oveq2d mndlid cn eleq2d
      cuz nnuz biimpar 3eqtr4d wne cz wrex wfn wb ffn cdm fdm chash clt wex wor
      wiso cfn cr frn fzssuz sstri syl6ss ltso soss mpisyl fz1iso mpbird simprr
      sylancr isof1o coass seqcoll2 expr exlimdv mpd eqtr4d ex feqmptd csn dif0
      wf1 f1f f1f1orn difeq2d eleqtrrd eqimss2i eqeltri f1ocnvfv2 3eqtr3rd elsn
      gsumz eldif sylan2br anassrs pm2.61dan mpteq2dva mndidcl syl6eleq cxp cpw
      seqid3 ovelrn mp2b wrel frel reldm0 eqeq1d bitrd coeq1 oveq1d supp0 ax-mp
      fzf co01 syl5eq syl6bir necon3d imp eqnetrrd feq2d mpbid gsumval2 sseqtrd
      fzn0 uzssz zssre fzfi cen wbr fex2 syl3anc f1oen3g enfi mpbii cn0 hashfz1
      nnnn0d hashen eqtr3d mndcl 3expb sselda cntzi anasss w3a mndass f1oco wfo
      f1oeq2 dffn4 fof fssd f1ococnv2 coeq1d fcoi2 eqtr2d coeq2d syl6eqr fveq1d
      cid cres seqf1o mndrid eluzfz1 ne0i eqnetrd dm0rn0 adantrr simprl difeq1d
      necon3bii simpll rexlimdvw syl5bi suppssdm eqsstri syl5sseq sseqtr4i ssfi
      nnssre gsumval3lem2 simplr fveq1i syl5eqr pm2.61d pm2.61dane ) AFEULUMZHD
[encoded data, 5040 characters]
      JVYPVOVQWXQJWVCVUKVYPVRWLVUGYOYSYPYQYRYTVUHVUI $.
  $}

  ${
    $d k A $.  $d k F $.  $d k ph $.  $d k W $.
    gsumcllem.f $e |- ( ph -> F : A --> B ) $.
    gsumcllem.a $e |- ( ph -> A e. V ) $.
    gsumcllem.z $e |- ( ph -> Z e. U ) $.
    gsumcllem.s $e |- ( ph -> ( F supp Z ) C_ W ) $.
    $( Lemma for ~ gsumcl and related theorems.  (Contributed by Mario
       Carneiro, 15-Dec-2014.)  (Revised by Mario Carneiro, 24-Apr-2016.)
       (Revised by AV, 31-May-2019.) $)
    gsumcllem $p |- ( ( ph /\ W = (/) ) -> F = ( k e. A |-> Z ) ) $=
      ( c0 wceq wa cv cmpt wcel cdif feqmptd adantr difeq2 dif0 biimpar suppssr
      cfv syl6eq eleq2d sylan2 anassrs mpteq2dva eqtrd ) AHNOZPZFEBEQZFUGZRZEBI
      RAFUROUNAEBCFJUAUBUOEBUQIAUNUPBSZUQIOZUNUSPAUPBHTZSZUTUNVBUSUNVABUPUNVABN
      TBHNBUCBUDUHUIUEABCDFGHUPIJMKLUFUJUKULUM $.
  $}

  ${
    $d f k x .0. $.  $d f k x B $.  $d f k x F $.  $d f k x G $.  $d f k x H $.
    $d k x A $.  $d x C $.  $d f k x ph $.  $d k V $.  $d f k W $.
    gsumzcl.b $e |- B = ( Base ` G ) $.
    gsumzcl.0 $e |- .0. = ( 0g ` G ) $.
    gsumzcl.z $e |- Z = ( Cntz ` G ) $.
    gsumzcl.g $e |- ( ph -> G e. Mnd ) $.
    gsumzcl.a $e |- ( ph -> A e. V ) $.
    gsumzcl.f $e |- ( ph -> F : A --> B ) $.
    gsumzcl.c $e |- ( ph -> ran F C_ ( Z ` ran F ) ) $.
    ${
      gsumzres.s $e |- ( ph -> ( F supp .0. ) C_ W ) $.
      gsumzres.w $e |- ( ph -> F finSupp .0. ) $.
      $( Extend a finite group sum by padding outside with zeroes.
         (Contributed by Mario Carneiro, 24-Apr-2016.)  (Revised by AV,
         31-May-2019.) $)
      gsumzres $p |- ( ph -> ( G gsum ( F |` W ) ) = ( G gsum F ) ) $=
        ( wceq wss vf vk csupp co c0 cres cgsu chash cfv cn wcel c1 cfz cv wf1o
        wex cin cmpt cmnd cvv inex1g syl gsumz syl2anc eqtr4d adantr resres wfn
        wa ffn fnresdm 3syl reseq1d syl5eqr c0g fvex eqeltri a1i ssid gsumcllem
        wf inss1 resmpt ax-mp syl6eq eqtr3d oveq2d 3eqtr4d cplusg ccom cseq crn
        ex f1ofo forn ad2antll eqsstrd cores seqeq3d fveq1d eqid fssres sylancl
        wfo feq1d biimpa syldan resss rnss cntzidss simprl wf1 cdm suppssdm fdm
        f1of1 syl5sseq ssind f1ss wi fex ressuppss sseq2 adantl impcom gsumval3
        syl5ibr syl5sseqr expr exlimdv expimpd cfsupp wbr wo wfun simprd fz1f1o
        cfn fsuppimp mpjaod ) ADHUCUDZUESZEDGUFZUGUDZEDUGUDZSZUUAUHUIZUJUKZULUU
        GUMUDZUUAUAUNZUOZUAUPZVIZAUUBUUFAUUBVIZEUBBGUQZHURZUGUDZEUBBHURZUGUDZUU
        DUUEAUUQUUSSUUBAUUQHUUSAEUSUKZUUOUTUKZUUQHSMABFUKZUVANBGFVAVBZUUOUBEUTH
        KVCVDAUUTUVBUUSHSMNBUBEFHKVCVDVEVFUUNUUCUUPEUGUUNDUUOUFZUUCUUPAUVDUUCSU
        UBAUVDDBUFZGUFUUCDBGVGAUVEDGABCDWAZDBVHUVEDSOBCDVJBDVKVLVMVNZVFUUNUVDUU
        RUUOUFZUUPUUNDUURUUOABCUTUBDFUUAHONHUTUKZAHEVOUIUTKEVOVPVQZVRUUAUUATAUU
        AVSZVRVTZVMUUOBTZUVHUUPSBGWBZUBBUUOHWCWDWEWFWGUUNDUUREUGUVLWGWHWMAUUHUU
        LUUFAUUHVIUUKUUFUAAUUHUUKUUFAUUHUUKVIZVIZUUGEWIUIZUUCUUJWJZULWKZUIUUGUV
        QDUUJWJZULWKZUIUUDUUEUVPUUGUVSUWAUVPUVRUVTUVQULUVPUUJWLZGTUVRUVTSUVPUWB
        UUAGUUKUWBUUASZAUUHUUKUUIUUAUUJXDZUWCUUIUUAUUJWNZUUIUUAUUJWOZVBWPZAUUAG
        TUVOQVFWQDUUJGWRVBWSWTUVPUUOCUVQUUCEUUJUUGUTUVRHUCUDZHIJKUVQXAZLAUUTUVO
        MVFZAUVAUVOUVCVFAUVOUUOCUVDWAZUUOCUUCWAZUVPUVFUVMUWKAUVFUVOOVFZUVNBCUUO
        DXBXCAUWKUWLAUUOCUVDUUCUVGXEXFXGAUUCWLZUWNIUITZUVOADWLZUWPIUITZUWNUWPTZ
        UWOPUUCDTUWRDGXHUUCDXIWDUWPUWNEILXJXCVFAUUHUUKXKZUVPUUIUUAUUJXLZUUAUUOT
        ZUUIUUOUUJXLUUKUWTAUUHUUIUUAUUJXPWPZAUXAUVOAUUABGADXMZUUABDHXNAUVFUXCBS
        OBCDXOVBXQZQXRVFUUIUUAUUOUUJXSVDUVOAUUCHUCUDZUWBTZUUKAUXFXTZUUHUUKUWDUW
        CUXGUWEUWFAUXFUWCUXEUUATZADUTUKZUVIUXHAUVFUVBUXIONBCFDYAVDUVJGDUTUTHYBX
        CUWBUUAUXEYCYGVLYDYEUWHXAYFUVPBCUVQDEUUJUUGFUVTHUCUDZHIJKUWILUWJAUVBUVO
        NVFUWMAUWQUVOPVFUWSUVPUWTUUABTZUUIBUUJXLUXBAUXKUVOUXDVFUUIUUABUUJXSVDUV
        PUUAUUAUWBUVKUWGYHUXJXAYFWHYIYJYKADHYLYMZUUAYRUKZUUBUUMYNRUXLDYOUXMDHYS
        YPUUAUAYQVLYT $.
    $}

    ${
      gsumzcl2.w $e |- ( ph -> ( F supp .0. ) e. Fin ) $.
      $( Closure of a finite group sum.  This theorem has a weaker hypothesis
         than ~ gsumzcl , because it is not required that ` F ` is a function
         (actually, the hypothesis always holds for any proper class ` F ` ).
         (Contributed by Mario Carneiro, 24-Apr-2016.)  (Revised by AV,
         1-Jun-2019.) $)
      gsumzcl2 $p |- ( ph -> ( G gsum F ) e. B ) $=
        ( co wcel cfv adantr vf vk vx csupp c0 wceq cgsu chash cn c1 cfz cv wex
        wf1o cmpt cvv c0g fvex eqeltri a1i wss ssid gsumcllem oveq2d cmnd gsumz
        wa syl2anc eqtrd mndidcl syl eqeltrd ex cplusg ccom cseq eqid wf simprl
        crn wf1 f1of1 ad2antll cdm suppssdm fdm syl5sseq f1ss wfo forn gsumval3
        f1ofo syl5sseqr cuz nnuz syl6eleq f1f ffvelrnda mndcl 3expb sylan seqcl
        fco expr exlimdv expimpd cfn wo fz1f1o mpjaod ) ADGUDQZUEUFZEDUGQZCRZXK
        UHSZUIRZUJXOUKQZXKUAULZUNZUAUMZVGZAXLXNAXLVGZXMGCYBXMEUBBGUOZUGQZGYBDYC
        EUGABCUPUBDFXKGNMGUPRAGEUQSUPJEUQURUSUTXKXKVAAXKVBZUTVCVDAYDGUFZXLAEVER
        ZBFRZYFLMBUBEFGJVFVHTVIAGCRZXLAYGYILCEGIJVJVKTVLVMAXPXTXNAXPVGXSXNUAAXP
        XSXNAXPXSVGZVGZXMXOEVNSZDXRVOZUJVPSCYKBCYLDEXRXOFYMGUDQZGHIJYLVQZKAYGYJ
        LTZAYHYJMTABCDVRZYJNTZADVTZYSHSVAYJOTAXPXSVSZYKXQXKXRWAZXKBVAZXQBXRWAZX
        SUUAAXPXQXKXRWBWCAUUBYJADWDZXKBDGWEAYQUUDBUFNBCDWFVKWGTXQXKBXRWHVHZYKXK
        XKXRVTZYEXSUUFXKUFZAXPXSXQXKXRWIUUGXQXKXRWLXQXKXRWJVKWCWMYNVQWKYKUBUCYL
        CYMUJXOYKXOUIUJWNSYTWOWPYKXQCUBULZYMYKYQXQBXRVRZXQCYMVRYRYKUUCUUIUUEXQB
        XRWQVKXQBCDXRXCVHWRYKYGUUHCRZUCULZCRZVGUUHUUKYLQCRZYPYGUUJUULUUMCYLEUUH
        UUKIYOWSWTXAXBVLXDXEXFAXKXGRXLYAXHPXKUAXIVKXJ $.
    $}

    gsumzcl.w $e |- ( ph -> F finSupp .0. ) $.
    $( Closure of a finite group sum.  (Contributed by Mario Carneiro,
       24-Apr-2016.)  (Revised by AV, 1-Jun-2019.) $)
    gsumzcl $p |- ( ph -> ( G gsum F ) e. B ) $=
      ( fsuppimpd gsumzcl2 ) ABCDEFGHIJKLMNOADGPQR $.

    gsumzf1o.h $e |- ( ph -> H : C -1-1-onto-> A ) $.
    $( Re-index a finite group sum using a bijection.  (Contributed by Mario
       Carneiro, 24-Apr-2016.)  (Revised by AV, 2-Jun-2019.) $)
    gsumzf1o $p |- ( ph -> ( G gsum F ) = ( G gsum ( F o. H ) ) ) $=
      ( cvv vf vk vx csupp co c0 wceq cgsu ccom chash cfv cn wcel c1 cfz cv wex
      wf1o wa cmpt gsumz syl2anc wf1 f1of1 syl f1dmex eqtr4d adantr c0g eqeltri
      cmnd fvex a1i wss ssid gsumcllem oveq2d wf ffvelrnda feqmptd eqidd fmptco
      f1of 3eqtr4d ex cplusg cseq ccnv coass cid cres f1ococnv2 coeq1d ad2antll
      cdm suppssdm fdm syl5sseq f1ss fcoi2 3syl syl5reqr coeq2d syl6eqr seqeq3d
      f1f eqtrd fveq1d eqid crn simprl wfo f1ofo forn syl5sseqr gsumval3 rncoss
      fco cntzidss sylancl f1ocnv f1co csn fex suppimacnv eqcomd 3sstr4d imass2
      cdif cima cnvco imaeq1i imaco eqtri rnco2 3sstr4g f1oexrnex coexg sseq1d
      wb mpbird expr exlimdv expimpd cfsupp wbr cfn wfun fsuppimp simprd fz1f1o
      wo mpjaod ) AEIUDUEZUFUGZFEUHUEZFEGUIZUHUEZUGZUUNUJUKZULUMZUNUUTUOUEZUUNU
      AUPZURZUAUQZUSZAUUOUUSAUUOUSZFUBBIUTZUHUEZFUCDIUTZUHUEZUUPUURAUVIUVKUGUUO
      AUVIIUVKAFVKUMZBHUMZUVIIUGNOBUBFHILVAVBAUVLDTUMZUVKIUGNADBGVCZUVMUVNADBGU
      RZUVOSDBGVDVEODBHGVFVBZDUCFTILVAVBVGVHUVGEUVHFUHABCTUBEHUUNIPOITUMZAIFVIU
      KTLFVIVLVJZVMUUNUUNVNZAUUNVOZVMVPZVQUVGUUQUVJFUHUVGUCUBDBUCUPZGUKZIIGEUVG
      DBUWCGADBGVRZUUOAUVPUWESDBGWCVEZVHZVSUVGUCDBGUWGVTUWBUBUPUWDUGIWAWBVQWDWE
      AUVAUVEUUSAUVAUSUVDUUSUAAUVAUVDUUSAUVAUVDUSZUSZUUTFWFUKZEUVCUIZUNWGZUKUUT
      UWJUUQGWHZUVCUIZUIZUNWGZUKUUPUURUWIUUTUWLUWPUWIUWKUWOUWJUNUWIUWKEGUWNUIZU
      IUWOUWIUVCUWQEUWIUWQGUWMUIZUVCUIZUVCGUWMUVCWIUWIUWSWJBWKZUVCUIZUVCUWIUWRU
      WTUVCUWIUVPUWRUWTUGAUVPUWHSVHDBGWLVEWMUWIUVBBUVCVCZUVBBUVCVRUXAUVCUGUWIUV
      BUUNUVCVCZUUNBVNZUXBUVDUXCAUVAUVBUUNUVCVDWNAUXDUWHAEWOZUUNBEIWPABCEVRZUXE
      BUGPBCEWQVEWRVHUVBUUNBUVCWSVBZUVBBUVCXFUVBBUVCWTXAXGXBXCEGUWNWIXDXEXHUWIB
      CUWJEFUVCUUTHUWKIUDUEZIJKLUWJXIZMAUVLUWHNVHZAUVMUWHOVHAUXFUWHPVHAEXJZUXKJ
      UKVNZUWHQVHAUVAUVDXKZUXGUWIUUNUUNUVCXJZUWAUVDUXNUUNUGZAUVAUVDUVBUUNUVCXLU
      XOUVBUUNUVCXMUVBUUNUVCXNVEWNZXOUXHXIXPUWIDCUWJUUQFUWNUUTTUWOIUDUEZIJKLUXI
      MUXJAUVNUWHUVQVHADCUUQVRZUWHAUXFUWEUXRPUWFDBCEGXRVBVHAUUQXJZUXSJUKVNZUWHA
      UXLUXSUXKVNUXTQEGXQUXKUXSFJMXSXTVHUXMUWIBDUWMVCZUXBUVBDUWNVCAUYAUWHAUVPBD
      UWMURUYASDBGYABDUWMVDXAVHUXGUVBBDUWMUVCYBVBUWIUUQIUDUEZUWNXJZVNZUUQWHZTIY
      CYIZYJZUYCVNZUWIUWMEWHZUYFYJZYJZUWMUXNYJZUYGUYCUWIUYJUXNVNUYKUYLVNUWIUUNU
      UNUYJUXNUVTUWIUWAVMAUYJUUNUGUWHAUUNUYJAETUMZUVRUUNUYJUGAUXFUVMUYMPOBCHEYD
      VBZUVSETTIYEXTYFVHUXPYGUYJUXNUWMYHVEUYGUWMUYIUIZUYFYJUYKUYEUYOUYFEGYKYLUW
      MUYIUYFYMYNUWMUVCYOYPAUYDUYHYTUWHAUYBUYGUYCAUUQTUMZUVRUYBUYGUGAUYMGTUMZUY
      PUYNAUVPUVMUYQSODBGHYQVBEGTTYRVBUVSUUQTTIYEXTYSVHUUAUXQXIXPWDUUBUUCUUDAEI
      UUEUUFZUUNUUGUMZUUOUVFUULRUYREUUHUYSEIUUIUUJUUNUAUUKXAUUM $.
  $}

  ${
    gsumcl.b $e |- B = ( Base ` G ) $.
    gsumcl.z $e |- .0. = ( 0g ` G ) $.
    gsumcl.g $e |- ( ph -> G e. CMnd ) $.
    gsumcl.a $e |- ( ph -> A e. V ) $.
    gsumcl.f $e |- ( ph -> F : A --> B ) $.

    ${
      gsumres.s $e |- ( ph -> ( F supp .0. ) C_ W ) $.
      gsumres.w $e |- ( ph -> F finSupp .0. ) $.
      $( Extend a finite group sum by padding outside with zeroes.
         (Contributed by Mario Carneiro, 15-Dec-2014.)  (Revised by Mario
         Carneiro, 24-Apr-2016.)  (Revised by AV, 3-Jun-2019.) $)
      gsumres $p |- ( ph -> ( G gsum ( F |` W ) ) = ( G gsum F ) ) $=
        ( ccntz cfv eqid ccmn wcel cmnd cmnmnd syl cntzcmnf gsumzres ) ABCDEFGH
        EPQZIJUFRZAESTEUATKEUBUCLMABCDEUFIUGKMUDNOUE $.
    $}

    ${
      gsumcl2.w $e |- ( ph -> ( F supp .0. ) e. Fin ) $.
      $( Closure of a finite group sum.  This theorem has a weaker hypothesis
         than ~ gsumcl , because it is not required that ` F ` is a function
         (actually, the hypothesis always holds for any proper class ` F ` ).
         (Contributed by Mario Carneiro, 15-Dec-2014.)  (Revised by Mario
         Carneiro, 24-Apr-2016.)  (Revised by AV, 3-Jun-2019.) $)
      gsumcl2 $p |- ( ph -> ( G gsum F ) e. B ) $=
        ( ccntz cfv eqid ccmn wcel cmnd cmnmnd syl cntzcmnf gsumzcl2 ) ABCDEFGE
        NOZHIUDPZAEQRESRJETUAKLABCDEUDHUEJLUBMUC $.
    $}

    gsumcl.w $e |- ( ph -> F finSupp .0. ) $.
    $( Closure of a finite group sum.  (Contributed by Mario Carneiro,
       15-Dec-2014.)  (Revised by Mario Carneiro, 24-Apr-2016.)  (Revised by
       AV, 3-Jun-2019.) $)
    gsumcl $p |- ( ph -> ( G gsum F ) e. B ) $=
      ( fsuppimpd gsumcl2 ) ABCDEFGHIJKLADGMNO $.

    gsumf1o.h $e |- ( ph -> H : C -1-1-onto-> A ) $.
    $( Re-index a finite group sum using a bijection.  (Contributed by Mario
       Carneiro, 15-Dec-2014.)  (Revised by Mario Carneiro, 24-Apr-2016.)
       (Revised by AV, 3-Jun-2019.) $)
    gsumf1o $p |- ( ph -> ( G gsum F ) = ( G gsum ( F o. H ) ) ) $=
      ( ccntz cfv eqid wcel ccmn cmnd cmnmnd syl cntzcmnf gsumzf1o ) ABCDEFGHIF
      QRZJKUGSZAFUATFUBTLFUCUDMNABCEFUGJUHLNUEOPUF $.
  $}

  ${
    gsumzsubmcl.0 $e |- .0. = ( 0g ` G ) $.
    gsumzsubmcl.z $e |- Z = ( Cntz ` G ) $.
    gsumzsubmcl.g $e |- ( ph -> G e. Mnd ) $.
    gsumzsubmcl.a $e |- ( ph -> A e. V ) $.
    gsumzsubmcl.s $e |- ( ph -> S e. ( SubMnd ` G ) ) $.
    gsumzsubmcl.f $e |- ( ph -> F : A --> S ) $.
    gsumzsubmcl.c $e |- ( ph -> ran F C_ ( Z ` ran F ) ) $.
    gsumzsubmcl.w $e |- ( ph -> F finSupp .0. ) $.
    $( Closure of a group sum in a submonoid.  (Contributed by Mario Carneiro,
       24-Apr-2016.)  (Revised by AV, 3-Jun-2019.) $)
    gsumzsubmcl $p |- ( ph -> ( G gsum F ) e. S ) $=
      ( co cfv eqid syl cress cgsu cbs c0g ccntz csubmnd wcel cmnd submmnd wceq
      wf submbas feq3d mpbid crn cin wss ssind resscntz syl2anc sseqtr4d cfsupp
      frn subm0 breqtrd gsumzcl gsumsubm 3eltr4d ) AECUAQZDUBQVIUCRZEDUBQCABVJD
      VIFVIUDRZVIUERZVJSVKSVLSZACEUFRZUGZVIUHUGMCVIEVISZUITLABCDUKZBVJDUKNACVJD
      BAVOCVJUJMCVIEVPULTZUMUNADUOZVSHRZCUPZVSVLRZAVSVTCOAVQVSCUQZNBCDVCTZURAVO
      WCWBWAUJMWDCVSEVIVNVLHVPJVMUSUTVAADGVKVBPAVOGVKUJMCVIEGVPIVDTVEVFABCDEVIF
      LMNVPVGVRVH $.
  $}

  ${
    gsumsubmcl.z $e |- .0. = ( 0g ` G ) $.
    gsumsubmcl.g $e |- ( ph -> G e. CMnd ) $.
    gsumsubmcl.a $e |- ( ph -> A e. V ) $.
    gsumsubmcl.s $e |- ( ph -> S e. ( SubMnd ` G ) ) $.
    gsumsubmcl.f $e |- ( ph -> F : A --> S ) $.
    gsumsubmcl.w $e |- ( ph -> F finSupp .0. ) $.
    $( Closure of a group sum in a submonoid.  (Contributed by Mario Carneiro,
       10-Jan-2015.)  (Revised by Mario Carneiro, 24-Apr-2016.)  (Revised by
       AV, 3-Jun-2019.) $)
    gsumsubmcl $p |- ( ph -> ( G gsum F ) e. S ) $=
      ( ccntz cfv eqid ccmn wcel cmnd syl cmnmnd cbs csubmnd submss gsumzsubmcl
      wss fssd cntzcmnf ) ABCDEFGENOZHUIPZAEQRESRIEUATJKLABEUBOZDEUIUKPZUJIABCU
      KDLACEUCORCUKUFKUKCEULUDTUGUHMUE $.
  $}

  ${
    gsumsubgcl.z $e |- .0. = ( 0g ` G ) $.
    gsumsubgcl.g $e |- ( ph -> G e. Abel ) $.
    gsumsubgcl.a $e |- ( ph -> A e. V ) $.
    gsumsubgcl.s $e |- ( ph -> S e. ( SubGrp ` G ) ) $.
    gsumsubgcl.f $e |- ( ph -> F : A --> S ) $.
    gsumsubgcl.w $e |- ( ph -> F finSupp .0. ) $.
    $( Closure of a group sum in a subgroup.  (Contributed by Mario Carneiro,
       15-Dec-2014.)  (Revised by AV, 3-Jun-2019.) $)
    gsumsubgcl $p |- ( ph -> ( G gsum F ) e. S ) $=
      ( cabl wcel ccmn ablcmn syl csubg cfv csubmnd subgsubm gsumsubmcl ) ABCDE
      FGHAENOEPOIEQRJACESTOCEUATOKCEUBRLMUC $.
  $}

  ${
    $d f k n w x y z .+ $.  $d k x .0. $.  $d f k n w x y z F $.  $d f k x G $.
    $d k x A $.  $d k w x y z B $.  $d f k n w x y H $.  $d f k n w x y z ph $.
    $d x y S $.  $d x V $.  $d f k n w x y z W $.  $d k x Z $.
    gsumzadd.b $e |- B = ( Base ` G ) $.
    gsumzadd.0 $e |- .0. = ( 0g ` G ) $.
    gsumzadd.p $e |- .+ = ( +g ` G ) $.
    gsumzadd.z $e |- Z = ( Cntz ` G ) $.
    gsumzadd.g $e |- ( ph -> G e. Mnd ) $.
    gsumzadd.a $e |- ( ph -> A e. V ) $.
    gsumzadd.fn $e |- ( ph -> F finSupp .0. ) $.
    gsumzadd.hn $e |- ( ph -> H finSupp .0. ) $.
    ${
      gsumzaddlem.w $e |- W = ( ( F u. H ) supp .0. ) $.
      gsumzaddlem.f $e |- ( ph -> F : A --> B ) $.
      gsumzaddlem.h $e |- ( ph -> H : A --> B ) $.
      gsumzaddlem.1 $e |- ( ph -> ran F C_ ( Z ` ran F ) ) $.
      gsumzaddlem.2 $e |- ( ph -> ran H C_ ( Z ` ran H ) ) $.
      gsumzaddlem.3 $e |- ( ph ->
        ran ( F oF .+ H ) C_ ( Z ` ran ( F oF .+ H ) ) ) $.
      gsumzaddlem.4 $e |- ( ( ph /\ ( x C_ A /\ k e. ( A \ x ) ) ) ->
        ( F ` k ) e. ( Z ` { ( G gsum ( H |` x ) ) } ) ) $.
      $( The sum of two group sums.  (Contributed by Mario Carneiro,
         25-Apr-2016.)  (Revised by AV, 5-Jun-2019.) $)
      gsumzaddlem $p |- ( ph ->
        ( G gsum ( F oF .+ H ) ) = ( ( G gsum F ) .+ ( G gsum H ) ) ) $=
        ( vf vy vn vz vw c0 wceq cof co cgsu chash cfv cn wcel c1 cfz cv wex wa
        wf1o cmnd mndidcl syl mndlid syl2anc adantr cmpt cvv fvex eqeltri csupp
        c0g a1i cun wf suppun syl6sseqr gsumcllem oveq2d eqtrd oveq12d ad2antrr
        fex ex ccom cseq mndcl 3expb sylan cuz nnuz wf1 f1of1 ad2antll suppssdm
        wss cdm fdm syl6eq fco ffvelrnda inidm fnfco eqidd ofval adantl adantlr
        ffnd wfn syldan seqcl ffvelrn syl2an cima cres csn cdif wral wi expr wb
        crn ax-mp syl5sseq eqid gsumval3 eqcomd off sseq2d mpbird suppssr cfn
        gsumz uncom oveq1i offval2 mpteq2dv 3eqtr4rd simprl syl6eleq dmun unidm
        caovclg uneq12d syl5req 3sstr4d f1ss f1f ovexd ofco fveq1d cfzo elfzouz
        caddc elfzouz2 fzss2 sselda fzofzp1 fvco3 fveq2 eleq1d ralrimiv alrimiv
        wal imassrn frn syl5ss imaex sseq1 difeq2 reseq2 sneqd fveq2d raleqbidv
        eleq2d imbi12d spcv sylc fzp1nel f1elima syl3anc mtbiri rspcdva eqeltrd
        eldifd fssresd resss rnss cntzidss sylancl syl6eleqr f1ores dmres inss1
        vex df-ima sstrd eqimss2i cores resco eqtr4i fveq1i fvres syl5eq eqtr2d
        seqfveq elsn sylibr cntzi mnd4g seqcaopr3 ccnv eldifi sylan2 f1ofo forn
        cin 3eqtrd suppss ovex coex suppimacnv mp2an 3eqtr4d exlimdv expimpd wo
        wfo fsuppun syl5eqel fz1f1o mpjaod ) AKUNUOZHGIEUPZUQZURUQZHGURUQZHIURU
[encoded data, 4800 characters]
        KYTVBVUAVUOUYOAKVVKYTUBAGILTUAUYQUYRKUIUYSVKUYT $.
    $}

    gsumzadd.s $e |- ( ph -> S e. ( SubMnd ` G ) ) $.
    gsumzadd.c $e |- ( ph -> S C_ ( Z ` S ) ) $.
    gsumzadd.f $e |- ( ph -> F : A --> S ) $.
    gsumzadd.h $e |- ( ph -> H : A --> S ) $.
    $( The sum of two group sums.  (Contributed by Mario Carneiro,
       25-Apr-2016.)  (Revised by AV, 5-Jun-2019.) $)
    gsumzadd $p |- ( ph ->
      ( G gsum ( F oF .+ H ) ) = ( ( G gsum F ) .+ ( G gsum H ) ) ) $=
      ( vx vk vy cun csupp co eqid csubmnd cfv wcel wss submss syl fssd crn frn
      wf cntzidss syl2anc cof cv wa submcl 3expb sylan inidm off cdif cres cgsu
      csn adantr cvv cmnd vex a1i simpl fssres syl2an resss rnss sylancl cfsupp
      wbr wfun cfn ffun funres fsuppimpd fex c0g fvex eqeltri ressuppss ssfi wb
      ax-mp resfunexg isfsupp mpbir2and gsumzsubmcl snssd cntz2ss eldifi adantl
      sstrd ffvelrn sseldd gsumzaddlem ) AUDBCDUEFGHIFHUGJUHUIZJKLMNOPQRSXMUJAB
      ECFUBAEGUKULUMZECUNZTCEGLUOUPZUQABECHUCXPUQAEEKULZUNZFURZEUNZXSXSKULUNUAA
      BEFUTZXTUBBEFUSUPEXSGKOVAVBAXRHURZEUNZYBYBKULUNZUAABEHUTZYCUCBEHUSUPEYBGK
      OVAVBZAXRFHDVCUIZURZEUNZYHYHKULUNUAABEYGUTYIAUDUFBBBDEEEFHIIAXNUDVDZEUMZU
      FVDZEUMZVEYJYLDUIEUMZTXNYKYMYNDEGYJYLNVFVGVHUBUCQQBVIVJBEYGUSUPEYHGKOVAVB
      AYJBUNZUEVDZBYJVKUMZVEZVEZEGHYJVLZVMUIZVNZKULZYPFULZYSEXQUUCAXRYRUAVOYSXO
      UUBEUNXQUUCUNAXOYRXPVOYSUUAEYSYJEYTGVPJKMOAGVQUMYRPVOYJVPUMZYSUDVRZVSAXNY
      RTVOAYEYOYJEYTUTYRUCYOYQVTBEYJHWAWBYSYDYTURZYBUNZUUGUUGKULUNAYDYRYFVOYTHU
      NUUHHYJWCYTHWDWTYBUUGGKOVAWEYSYTJWFWGZYTWHZYTJUHUIZWIUMZAUUJYRAHWHZUUJAYE
      UUMUCBEHWJUPZYJHWKUPVOYSHJUHUIZWIUMZUUKUUOUNZUULAUUPYRAHJSWLVOAUUQYRAHVPU
      MZJVPUMZUUQAYEBIUMUURUCQBEIHWMVBJGWNULVPMGWNWOWPZYJHVPVPJWQWEVOUUOUUKWRVB
      AUUIUUJUULVEWSZYRAYTVPUMZUUSUVAAUUMUUEUVBUUNUUFHYJVPXAWEUUTYTVPVPJXBWEVOX
      CXDXECEUUBGKLOXFVBXIAYAYPBUMZUUDEUMYRUBYQUVCYOYPBYJXGXHBEYPFXJWBXKXL $.
  $}

  ${
    gsumadd.b $e |- B = ( Base ` G ) $.
    gsumadd.z $e |- .0. = ( 0g ` G ) $.
    gsumadd.p $e |- .+ = ( +g ` G ) $.
    gsumadd.g $e |- ( ph -> G e. CMnd ) $.
    gsumadd.a $e |- ( ph -> A e. V ) $.
    gsumadd.f $e |- ( ph -> F : A --> B ) $.
    gsumadd.h $e |- ( ph -> H : A --> B ) $.
    gsumadd.fn $e |- ( ph -> F finSupp .0. ) $.
    gsumadd.hn $e |- ( ph -> H finSupp .0. ) $.
    $( The sum of two group sums.  (Contributed by Mario Carneiro,
       19-Dec-2014.)  (Revised by Mario Carneiro, 25-Apr-2016.)  (Revised by
       AV, 5-Jun-2019.) $)
    gsumadd $p |- ( ph ->
      ( G gsum ( F oF .+ H ) ) = ( ( G gsum F ) .+ ( G gsum H ) ) ) $=
      ( cfv wcel eqid ccmn cmnd cmnmnd syl csubmnd submid ssid wss wceq cntzcmn
      ccntz sylancl syl5sseqr gsumzadd ) ABCDCEFGHIFULSZJKLUPUAZAFUBTZFUCTZMFUD
      UEZNQRAUSCFUFSTUTCFJUGUEACCCUPSZCUHZAURCCUIVACUJMVBCCFUPJUQUKUMUNOPUO $.
  $}

  ${
    $d A x $.  $d B x $.  $d ph x $.  $d .+ x $.
    gsummptfsadd.b $e |- B = ( Base ` G ) $.
    gsummptfsadd.z $e |- .0. = ( 0g ` G ) $.
    gsummptfsadd.p $e |- .+ = ( +g ` G ) $.
    gsummptfsadd.g $e |- ( ph -> G e. CMnd ) $.
    gsummptfsadd.a $e |- ( ph -> A e. V ) $.
    gsummptfsadd.c $e |- ( ( ph /\ x e. A ) -> C e. B ) $.
    gsummptfsadd.d $e |- ( ( ph /\ x e. A ) -> D e. B ) $.
    gsummptfsadd.f $e |- ( ph -> F = ( x e. A |-> C ) ) $.
    gsummptfsadd.h $e |- ( ph -> H = ( x e. A |-> D ) ) $.
    gsummptfsadd.w $e |- ( ph -> F finSupp .0. ) $.
    gsummptfsadd.v $e |- ( ph -> H finSupp .0. ) $.
    $( The sum of two group sums expressed as mappings.  (Contributed by AV,
       4-Apr-2019.)  (Revised by AV, 9-Jul-2019.) $)
    gsummptfsadd $p |- ( ph -> ( G gsum ( x e. A |-> ( C .+ D ) ) )
                             = ( ( G gsum F ) .+ ( G gsum H ) ) ) $=
      ( co cmpt cgsu cof offval2 eqcomd oveq2d wf eqid fmptd feq1d mpbird eqtrd
      gsumadd ) AIBCEFGUDUEZUFUDIHJGUGUDZUFUDIHUFUDIJUFUDGUDAURUSIUFAUSURABCEFG
      HJKDDQRSTUAUHUIUJACDGHIJKLMNOPQACDHUKCDBCEUEZUKABCEDUTRUTULUMACDHUTTUNUOA
      CDJUKCDBCFUEZUKABCFDVASVAULUMACDJVAUAUNUOUBUCUQUP $.
  $}

  ${
    $d A x $.  $d B x $.  $d ph x $.  $d .+ x $.
    gsummptfidmadd.b $e |- B = ( Base ` G ) $.
    gsummptfidmadd.p $e |- .+ = ( +g ` G ) $.
    gsummptfidmadd.g $e |- ( ph -> G e. CMnd ) $.
    gsummptfidmadd.a $e |- ( ph -> A e. Fin ) $.
    gsummptfidmadd.c $e |- ( ( ph /\ x e. A ) -> C e. B ) $.
    gsummptfidmadd.d $e |- ( ( ph /\ x e. A ) -> D e. B ) $.
    gsummptfidmadd.f $e |- F = ( x e. A |-> C ) $.
    gsummptfidmadd.h $e |- H = ( x e. A |-> D ) $.
    $( The sum of two group sums expressed as mappings with finite domain.
       (Contributed by AV, 23-Jul-2019.) $)
    gsummptfidmadd $p |- ( ph -> ( G gsum ( x e. A |-> ( C .+ D ) ) )
                             = ( ( G gsum F ) .+ ( G gsum H ) ) ) $=
      ( c0g cmpt cfn cfv eqid wceq a1i cvv fvexd fsuppmptdm gsummptfsadd ) ABCD
      EFGHIJUAISUBZKUJUCLMNOPHBCETUDAQUEJBCFTUDARUEABCHDUFEUJQNOAISUGZUHABCJDUF
      FUJRNPUKUHUI $.

    $( The sum of two group sums expressed as mappings with finite domain,
       using a function operation.  (Contributed by AV, 23-Jul-2019.) $)
    gsummptfidmadd2 $p |- ( ph ->
      ( G gsum ( F oF .+ H ) ) = ( ( G gsum F ) .+ ( G gsum H ) ) ) $=
      ( co cgsu cof cmpt cfn wceq a1i offval2 oveq2d gsummptfidmadd eqtrd ) AIH
      JGUASZTSIBCEFGSUBZTSIHTSIJTSGSAUJUKITABCEFGHJUCDDNOPHBCEUBUDAQUEJBCFUBUDA
      RUEUFUGABCDEFGHIJKLMNOPQRUHUI $.
  $}

  ${
    $d k .+ $.  $d k .0. $.  $d k A $.  $d k B $.  $d k C $.  $d k ph $.
    $d k D $.  $d k F $.  $d k G $.
    gsumzsplit.b $e |- B = ( Base ` G ) $.
    gsumzsplit.0 $e |- .0. = ( 0g ` G ) $.
    gsumzsplit.p $e |- .+ = ( +g ` G ) $.
    gsumzsplit.z $e |- Z = ( Cntz ` G ) $.
    gsumzsplit.g $e |- ( ph -> G e. Mnd ) $.
    gsumzsplit.a $e |- ( ph -> A e. V ) $.
    gsumzsplit.f $e |- ( ph -> F : A --> B ) $.
    gsumzsplit.c $e |- ( ph -> ran F C_ ( Z ` ran F ) ) $.
    gsumzsplit.w $e |- ( ph -> F finSupp .0. ) $.
    gsumzsplit.i $e |- ( ph -> ( C i^i D ) = (/) ) $.
    gsumzsplit.u $e |- ( ph -> A = ( C u. D ) ) $.
    $( Split a group sum into two parts.  (Contributed by Mario Carneiro,
       25-Apr-2016.)  (Revised by AV, 5-Jun-2019.) $)
    gsumzsplit $p |- ( ph -> ( G gsum F ) =
      ( ( G gsum ( F |` C ) ) .+ ( G gsum ( F |` D ) ) ) ) $=
      ( vk cv wcel cfv cif cmpt cof cgsu cres crn csubmnd cmrc cvv fvex eqeltri
      co c0g a1i fsuppmptif cmre wss cmnd cacs submacs acsmre 3syl frn syl eqid
      wf mrccl syl2anc cress ccmn cntzspan wb submcmn2 mpbid wa mrcssidd adantr
      wfn ffn fnfvelrn sylan sseldd subm0cl ifcld fmptd gsumzadd feqmptd iftrue
      wceq adantl wn wi cin noel eleq2 mtbiri elin sylnib imnan sylibr iffalsed
      c0 imp oveq12d ffvelrnda mndrid syldan eqtrd con2d mndlid cun eleq2d elun
      wo syl6bb biimpa mpjaodan mpteq2dva eqtr4d mndidcl offval2 oveq2d reseq1d
      eqidd ssun1 mpteq2ia resmpt 3eqtr4a cntzidss cdif eldifn suppss2 gsumzres
      syl5sseqr ssun2 3eqtr4d ) AHUCBUCUDZDUEZUUCGUFZJUGZUHZUCBUUCEUEZUUEJUGZUH
      ZFUIURZUJURHUUGUJURZHUUJUJURZFURHGUJURHGDUKZUJURZHGEUKZUJURZFURABCFGULZHU
      MUFZUNUFZUFZUUGHUUJIJKLMNOPQABCDUCGIUOJRQJUOUEAJHUSUFUOMHUSUPUQUTZTVAZABC
      EUCGIUOJRQUVBTVAZAUUSCVBUFUEZUURCVCZUVAUUSUEZAHVDUEZUUSCVEUFUEUVEPCHLVFUU
      SCVGVHZABCGVLZUVFRBCGVIVJZUUSUURUUTCUUTVKZVMVNZAHUVAVOURZVPUEZUVAUVAKUFVC
      ZAUVHUURUURKUFVCUVOPSUURHUVNUUTKOUVLUVNVKZVQVNAUVGUVOUVPVRUVMUVAHUVNKUVQO
      VSVJVTZAUCBUUFUVAUUGAUUCBUEZWAZUUDUUEJUVAUVTUURUVAUUEAUURUVAVCUVSAUUSUURU
      UTCUVIUVLUVKWBWCAGBWDZUVSUUEUURUEAUVJUWARBCGWEVJBUUCGWFWGWHZAJUVAUEZUVSAU
      VGUWCUVMUVAHJMWIVJWCZWJUUGVKZWKZAUCBUUIUVAUUJUVTUUHUUEJUVAUWBUWDWJUUJVKZW
      KZWLAGUUKHUJAGUCBUUFUUIFURZUHZUUKAGUCBUUEUHZUWJAUCBCGRWMZAUCBUWIUUEUVTUUD
      UWIUUEWOUUHUVTUUDWAZUWIUUEJFURZUUEUWMUUFUUEUUIJFUUDUUFUUEWOUVTUUDUUEJWNZW
      PUWMUUHUUEJUVTUUDUUHWQZUVTUUDUUHWAZWQUUDUWPWRUVTUUCDEWSZUEZUWQAUWSWQZUVSA
      UWRXHWOZUWTUAUXAUWSUUCXHUEUUCWTUWRXHUUCXAXBVJWCUUCDEXCXDUUDUUHXEXFZXIXGXJ
      UVTUWNUUEWOZUUDAUVSUUECUEZUXCABCUUCGRXKZAUVHUXDUXCPCFHUUEJLNMXLWGXMWCXNUV
      TUUHWAZUWIJUUEFURZUUEUXFUUFJUUIUUEFUXFUUDUUEJUVTUUHUUDWQZUVTUUDUUHUXBXOXI
      XGUUHUUIUUEWOUVTUUHUUEJWNZWPXJUVTUXGUUEWOZUUHAUVSUXDUXJUXEAUVHUXDUXJPCFHU
      UEJLNMXPWGXMWCXNAUVSUUDUUHXTZAUVSUUCDEXQZUEUXKABUXLUUCUBXRUUCDEXSYAYBYCYD
      YEAUCBUUFUUIFUUGUUJICCQUVTUUDUUEJCUXEAJCUEZUVSAUVHUXMPCHJLMYFVJWCZWJZUVTU
      UHUUEJCUXEUXNWJZAUUGYJAUUJYJYGYEYHAUUOUULUUQUUMFAUUOHUUGDUKZUJURUULAUUNUX
      QHUJAUUNUWKDUKZUXQAGUWKDUWLYIADBVCZUXQUXRWOAUXLDBDEYKUBYTUXSUCDUUFUHUCDUU
      EUHUXQUXRUCDUUFUUEUWOYLUCBDUUFYMUCBDUUEYMYNVJYEYHABCUUGHIDJKLMOPQAUCBUUFC
      UUGUXOUWEWKAUVPUUGULZUVAVCZUXTUXTKUFVCUVRABUVAUUGVLUYAUWFBUVAUUGVIVJUVAUX
      THKOYOVNABUUFUCIDJAUUCBDYPUEZWAUUDUUEJUYBUXHAUUCBDYQWPXGQYRUVCYSXNAUUQHUU
      JEUKZUJURUUMAUUPUYCHUJAUUPUWKEUKZUYCAGUWKEUWLYIAEBVCZUYCUYDWOAUXLEBEDUUAU
      BYTUYEUCEUUIUHUCEUUEUHUYCUYDUCEUUIUUEUXIYLUCBEUUIYMUCBEUUEYMYNVJYEYHABCUU
      JHIEJKLMOPQAUCBUUICUUJUXPUWGWKAUVPUUJULZUVAVCZUYFUYFKUFVCUVRABUVAUUJVLUYG
      UWHBUVAUUJVIVJUVAUYFHKOYOVNABUUIUCIEJAUUCBEYPUEZWAUUHUUEJUYHUWPAUUCBEYQWP
      XGQYRUVDYSXNXJUUB $.
  $}

  ${
    gsumsplit.b $e |- B = ( Base ` G ) $.
    gsumsplit.z $e |- .0. = ( 0g ` G ) $.
    gsumsplit.p $e |- .+ = ( +g ` G ) $.
    gsumsplit.g $e |- ( ph -> G e. CMnd ) $.
    gsumsplit.a $e |- ( ph -> A e. V ) $.
    gsumsplit.f $e |- ( ph -> F : A --> B ) $.
    gsumsplit.w $e |- ( ph -> F finSupp .0. ) $.
    gsumsplit.i $e |- ( ph -> ( C i^i D ) = (/) ) $.
    gsumsplit.u $e |- ( ph -> A = ( C u. D ) ) $.
    $( Split a group sum into two parts.  (Contributed by Mario Carneiro,
       19-Dec-2014.)  (Revised by AV, 5-Jun-2019.) $)
    gsumsplit $p |- ( ph -> ( G gsum F ) =
      ( ( G gsum ( F |` C ) ) .+ ( G gsum ( F |` D ) ) ) ) $=
      ( wcel ccntz cfv eqid ccmn cmnd cmnmnd syl cntzcmnf gsumzsplit ) ABCDEFGH
      IJHUAUBZKLMUJUCZAHUDTHUETNHUFUGOPABCGHUJKUKNPUHQRSUI $.
  $}

  ${
    $d k A $.  $d k B $.  $d k C $.  $d k D $.  $d k ph $.
    gsumsplit2.b $e |- B = ( Base ` G ) $.
    gsumsplit2.z $e |- .0. = ( 0g ` G ) $.
    gsumsplit2.p $e |- .+ = ( +g ` G ) $.
    gsumsplit2.g $e |- ( ph -> G e. CMnd ) $.
    gsumsplit2.a $e |- ( ph -> A e. V ) $.
    gsumsplit2.f $e |- ( ( ph /\ k e. A ) -> X e. B ) $.
    gsumsplit2.w $e |- ( ph -> ( k e. A |-> X ) finSupp .0. ) $.
    gsumsplit2.i $e |- ( ph -> ( C i^i D ) = (/) ) $.
    gsumsplit2.u $e |- ( ph -> A = ( C u. D ) ) $.
    $( Split a group sum into two parts.  (Contributed by Mario Carneiro,
       19-Dec-2014.)  (Revised by AV, 5-Jun-2019.) $)
    gsumsplit2 $p |- ( ph -> ( G gsum ( k e. A |-> X ) ) =
      ( ( G gsum ( k e. C |-> X ) ) .+ ( G gsum ( k e. D |-> X ) ) ) ) $=
      ( cmpt cgsu co cres eqid fmptd gsumsplit cun ssun1 syl5sseqr oveq2d ssun2
      resmptd oveq12d eqtrd ) AHGBJUAZUBUCHUPDUDZUBUCZHUPEUDZUBUCZFUCHGDJUAZUBU
      CZHGEJUAZUBUCZFUCABCDEFUPHIKLMNOPAGBJCUPQUPUEUFRSTUGAURVBUTVDFAUQVAHUBAGB
      DJADEUHZDBDEUITUJUMUKAUSVCHUBAGBEJAVEEBEDULTUJUMUKUNUO $.
  $}

  ${
    $d k A $.  $d k B $.  $d k C $.  $d k D $.  $d k ph $.
    gsummptfidmsplit.b $e |- B = ( Base ` G ) $.
    gsummptfidmsplit.p $e |- .+ = ( +g ` G ) $.
    gsummptfidmsplit.g $e |- ( ph -> G e. CMnd ) $.
    gsummptfidmsplit.a $e |- ( ph -> A e. Fin ) $.
    gsummptfidmsplit.y $e |- ( ( ph /\ k e. A ) -> Y e. B ) $.
    gsummptfidmsplit.i $e |- ( ph -> ( C i^i D ) = (/) ) $.
    gsummptfidmsplit.u $e |- ( ph -> A = ( C u. D ) ) $.
    $( Split a group sum expressed as mapping with a finite domain into two
       parts.  (Contributed by AV, 23-Jul-2019.) $)
    gsummptfidmsplit $p |- ( ph -> ( G gsum ( k e. A |-> Y ) )
                                    = ( ( G gsum ( k e. C |-> Y ) )
                                        .+ ( G gsum ( k e. D |-> Y ) ) ) ) $=
      ( cfn c0g cfv eqid cmpt cvv fvexd fsuppmptdm gsumsplit2 ) ABCDEFGHQIHRSZJ
      UFTKLMNAGBGBIUAZCUBIUFUGTMNAHRUCUDOPUE $.

    gsummptfidmsplitres.f $e |- F = ( k e. A |-> Y ) $.
    $( Split a group sum expressed as mapping with a finite domain into two
       parts using restrictions.  (Contributed by AV, 23-Jul-2019.) $)
    gsummptfidmsplitres $p |- ( ph -> ( G gsum F )
                                      = ( ( G gsum ( F |` C ) )
                                          .+ ( G gsum ( F |` D ) ) ) ) $=
      ( cfn c0g cfv eqid fmptd cvv fvexd fsuppmptdm gsumsplit ) ABCDEFHISITUAZK
      UHUBLMNAGBJCHORUCAGBHCUDJUHRNOAITUEUFPQUG $.
  $}

  ${
    $d B k $.  $d N k $.  $d ph k $.
    gsummptfzsplit.b $e |- B = ( Base ` G ) $.
    gsummptfzsplit.p $e |- .+ = ( +g ` G ) $.
    gsummptfzsplit.g $e |- ( ph -> G e. CMnd ) $.
    gsummptfzsplit.n $e |- ( ph -> N e. NN0 ) $.
    ${
      gsummptfzsplit.y $e |- ( ( ph /\ k e. ( 0 ... ( N + 1 ) ) )
                               -> Y e. B ) $.
      $( Split a group sum expressed as mapping with a finite set of sequential
         integers as domain into two parts, extracting a singleton from the
         right.  (Contributed by AV, 25-Oct-2019.) $)
      gsummptfzsplit $p |- ( ph
                         -> ( G gsum ( k e. ( 0 ... ( N + 1 ) ) |-> Y ) )
                            = ( ( G gsum ( k e. ( 0 ... N ) |-> Y ) )
                              .+ ( G gsum ( k e. { ( N + 1 ) } |-> Y ) ) ) ) $=
        ( cc0 c1 caddc co cfz csn wceq wcel cin c0 fzp1disj a1i cuz cfv cun cn0
        fzfid elnn0uz sylib fzsuc syl gsummptfidmsplit ) AMFNOPZQPZBMFQPZUORZCD
        EGHIJAMUOUILUQURUAUBSAMFUCUDAFMUEUFTZUPUQURUGSAFUHTUSKFUJUKMFULUMUN $.
    $}

    gsummptfzsplitl.y $e |- ( ( ph /\ k e. ( 0 ... N ) ) -> Y e. B ) $.
    $( Split a group sum expressed as mapping with a finite set of sequential
       integers as domain into two parts, , extracting a singleton from the
       left.  (Contributed by AV, 7-Nov-2019.) $)
    gsummptfzsplitl $p |- ( ph -> ( G gsum ( k e. ( 0 ... N ) |-> Y ) )
                            = ( ( G gsum ( k e. ( 1 ... N ) |-> Y ) )
                              .+ ( G gsum ( k e. { 0 } |-> Y ) ) ) ) $=
      ( cc0 cfz co c1 cin c0 wceq cun csn fzfid caddc incom 1e0p1 oveq1i ineq2d
      a1i cn0 wcel cuz elnn0uz biimpi fzpreddisj 3syl 3eqtrd fzpred uncom 0p1e1
      cfv uneq1i eqtri syl6eq gsummptfidmsplit ) AMFNOZBPFNOZMUAZCDEGHIJAMFUBLA
      VFVGQZVGVFQZVGMPUCOZFNOZQZRVHVISAVFVGUDUHAVFVKVGVFVKSAPVJFNUEUFUHUGAFUIUJ
      ZFMUKUTUJZVLRSKVMVNFULUMZMFUNUOUPAVEVGVKTZVFVGTZAVMVNVEVPSKVOMFUQUOVPVKVG
      TVQVGVKURVKVFVGVJPFNUSUFVAVBVCVD $.
  $}

  ${
    $d f k x A $.  $d f k x B $.  $d f k x G $.  $d f .x. $.  $d f k x X $.
    gsumconst.b $e |- B = ( Base ` G ) $.
    gsumconst.m $e |- .x. = ( .g ` G ) $.
    $( Sum of a constant series.  (Contributed by Mario Carneiro, 19-Dec-2014.)
       (Revised by Mario Carneiro, 24-Apr-2016.) $)
    gsumconst $p |- ( ( G e. Mnd /\ A e. Fin /\ X e. B ) ->
      ( G gsum ( k e. A |-> X ) ) = ( ( # ` A ) .x. X ) ) $=
      ( vf vx wcel c0 wceq co cfv cn c1 wa eqid syl cmnd cfn w3a cmpt chash cfz
      cgsu cv wf1o wex cc0 simpl3 mulg0 fveq2 adantl hash0 syl6eq oveq1d mpteq1
      c0g mpt0 oveq2d gsum0 3eqtr4rd ex cplusg ccom csn cxp cuz simprl syl6eleq
      cseq nnuz simpr adantr fvmpt2 syl2anc wf ad2antll ffvelrnda feqmptd eqidd
      fmptco fveq1d elfznn fvconst2g syl2an 3eqtr4d seqfveq csupp simpl1 simpl2
      f1of ccntz fmptd wss crn wb elcntzsn mpbir2and snssd snidg cntzidss f1of1
      frn wf1 cdm suppssdm dmmptss a1i syl5ss wfo forn sseqtr4d gsumval3 mulgnn
      f1ofo expr exlimdv expimpd wo fz1f1o 3ad2ant2 mpjaod ) EUAKZAUBKZFBKZUCZA
      LMZEDAFUDZUGNZAUEOZFCNZMZYMPKZQYMUFNZAIUHZUIZIUJZRZYIYJYOYIYJRZUKFCNZEUTO
      ZYNYLUUBYHUUCUUDMYFYGYHYJULBCEFUUDGUUDSZHUMTUUBYMUKFCUUBYMLUEOZUKYJYMUUFM
      YIALUEUNUOUPUQURUUBYLELUGNUUDUUBYKLEUGUUBYKDLFUDZLYJYKUUGMYIDALFUSUODFVAU
      QVBEUUDUUEVCUQVDVEYIYPYTYOYIYPRYSYOIYIYPYSYOYIYPYSRZRZYMEVFOZYKYRVGZQVMOY
      MUUJPFVHZVIZQVMZOZYLYNUUIUUJJUUKUUMQYMUUIYMPQVJOYIYPYSVKZVNVLUUIJUHZYQKZR
      ZUUQJYQFUDZOZFUUQUUKOZUUQUUMOZUUSUURYHUVAFMUUIUURVOUUIYHUURYFYGYHUUHULZVP
      JYQFBUUTUUTSVQVRUUIUVBUVAMUURUUIUUQUUKUUTUUIJDYQAUUQYROZFFYRYKUUIYQAUUQYR
      YSYQAYRVSYIYPYQAYRWNVTZWAUUIJYQAYRUVFWBUUIYKWCDUHZUVEMFWCWDWEVPUUIYHUUQPK
      UVCFMUURUVDUUQYMWFPFUUQBWGWHWIWJUUIABUUJYKEYRYMUBUUKUUDWKNZUUDEWOOZGUUEUU
      JSZUVISZYFYGYHUUHWLYFYGYHUUHWMUUIDAFBYKUUIYHUVGAKZUVDVPYKSZWPUUIUULUULUVI
      OZWQYKWRZUULWQZUVOUVOUVIOWQUUIFUVNUUIFUVNKZYHFFUUJNZUVRMZUVDUUIUVRWCUUIYH
      UVQYHUVSRWSUVDBUUJEFFUVIGUVJUVKWTTXAXBUUIAUULYKVSUVPUUIDAFUULYKUUIFUULKZU
      VLUUIYHUVTUVDFBXCTVPUVMWPAUULYKXFTUULUVOEUVIUVKXDVRUUPYSYQAYRXGYIYPYQAYRX
      EVTUUIYKUUDWKNZAYRWRZUUIUWAYKXHZAYKUUDXIUWCAWQUUIDAFYKUVMXJXKXLYSUWBAMZYI
      YPYSYQAYRXMUWDYQAYRXRYQAYRXNTVTXOUVHSXPUUIYPYHYNUUOMUUPUVDBUUJUUNCEYMFGUV
      JHUUNSXQVRWIXSXTYAYGYFYJUUAYBYHAIYCYDYE $.
  $}

  ${
    $d k l A $.  $d l B $.  $d l G $.  $d l X $.
    gsumconstf.k $e |- F/_ k X $.
    gsumconstf.b $e |- B = ( Base ` G ) $.
    gsumconstf.m $e |- .x. = ( .g ` G ) $.
    $( Sum of a constant series.  (Contributed by Thierry Arnoux,
       5-Jul-2017.) $)
    gsumconstf $p |- ( ( G e. Mnd /\ A e. Fin /\ X e. B ) ->
      ( G gsum ( k e. A |-> X ) ) = ( ( # ` A ) .x. X ) ) $=
      ( vl cmnd wcel cfn w3a cmpt cgsu co chash cfv nfcv eqidd cbvmpt gsumconst
      weq oveq2i syl5eq ) EKLAMLFBLNEDAFOZPQEJAFOZPQARSFCQUGUHEPDJAFFJFTGDJUDFU
      AUBUEABCJEFHIUCUF $.
  $}

  ${
    $d k A $.  $d j B $.  $d j C $.  $d j k K $.  $d j k M $.  $d j k N $.
    $d j k ph $.
    gsummptshft.b $e |- B = ( Base ` G ) $.
    gsummptshft.z $e |- .0. = ( 0g ` G ) $.
    gsummptshft.g $e |- ( ph -> G e. CMnd ) $.
    gsummptshft.k $e |- ( ph -> K e. ZZ ) $.
    gsummptshft.m $e |- ( ph -> M e. ZZ ) $.
    gsummptshft.n $e |- ( ph -> N e. ZZ ) $.
    gsummptshft.a $e |- ( ( ph /\ j e. ( M ... N ) ) -> A e. B ) $.
    gsummptshft.c $e |- ( j = ( k - K ) -> A = C ) $.
    $( Index shift of a finite group sum over a finite set of sequential
       integers.  (Contributed by AV, 24-Aug-2019.) $)
    gsummptshft $p |- ( ph -> ( G gsum ( j e. ( M ... N ) |-> A ) )
                   = ( G gsum ( k e. ( ( M + K ) ... ( N + K ) ) |-> C ) ) ) $=
      ( wcel cfz co cmpt cgsu caddc cv cmin ccom cvv ovexd eqid fmptd fzfid c0g
      cfv fvex eqeltri a1i fsuppmptdm mptfzshft gsumf1o wa cc wceq elfzelz zcnd
      npcan syl2anr simpr eqeltrd cz jca adantr adantl zsubcld fzaddel syl12anc
      wb mpbird eqidd fmptco oveq2d eqtrd ) AGEIJUAUBZBUCZUDUBGWEFIHUEUBZJHUEUB
      ZUAUBZFUFZHUGUBZUCZUHZUDUBGFWHDUCZUDUBAWDCWHWEGWKUIKLMNAIJUAUJAEWDBCWERWE
      UKZULAEWDWECUIBKWNAIJUMRKUITAKGUNUOUIMGUNUPUQURUSAFHIJOPQUTVAAWLWMGUDAFEW
      HWDWJBDWKWEAWIWHTZVBZWJWDTZWJHUEUBZWHTZWPWRWIWHWOWIVCTHVCTWRWIVDAWOWIWIWF
      WGVEZVFAHOVFWIHVGVHAWOVIVJWPIVKTZJVKTZVBZWJVKTHVKTZWQWSVRAXCWOAXAXBPQVLVM
      WPWIHWOWIVKTAWTVNAXDWOOVMZVOXEWJHIJVPVQVSAWKVTAWEVTSWAWBWC $.
  $}

  ${
    $d k A $.  $d k x y B $.  $d f k x y F $.  $d f k x y G $.  $d f k x y H $.
    $d f k x y .0. $.  $d f k x y K $.  $d f k x y ph $.  $d k V $.
    gsumzmhm.b $e |- B = ( Base ` G ) $.
    gsumzmhm.z $e |- Z = ( Cntz ` G ) $.
    gsumzmhm.g $e |- ( ph -> G e. Mnd ) $.
    gsumzmhm.h $e |- ( ph -> H e. Mnd ) $.
    gsumzmhm.a $e |- ( ph -> A e. V ) $.
    gsumzmhm.k $e |- ( ph -> K e. ( G MndHom H ) ) $.
    gsumzmhm.f $e |- ( ph -> F : A --> B ) $.
    gsumzmhm.c $e |- ( ph -> ran F C_ ( Z ` ran F ) ) $.
    gsumzmhm.0 $e |- .0. = ( 0g ` G ) $.
    gsumzmhm.w $e |- ( ph -> F finSupp .0. ) $.
    $( Apply a group homomorphism to a group sum.  (Contributed by Mario
       Carneiro, 24-Apr-2016.)  (Revised by AV, 6-Jun-2019.) $)
    gsumzmhm $p |- ( ph -> ( H gsum ( K o. F ) ) = ( K ` ( G gsum F ) ) ) $=
      ( vf vk vx vy ccnv cvv csn cdif cima c0 wceq ccom cgsu co cfv chash cn c1
      wcel cfz cv wf1o wex wa c0g cmpt cmnd eqid gsumz syl2anc adantr cmhm mhm0
      syl eqtr4d mndidcl ad2antrr fvex eqeltri a1i csupp wf fex suppimacnv ssid
      syl6eqss gsumcllem mhmf feqmptd fveq2 fmptco mpteq2dv eqtrd oveq2d fveq2d
      cbs 3eqtr4d cplusg cseq mndcl 3expb sylan wf1 wss f1of1 ad2antll cnvimass
      ex cdm fdm syl5sseq f1ss f1f fco ffvelrnda cuz simprl nnuz syl6eleq coass
      mhmlin fveq1i fvco3 syl5req seqhomo crn wfo f1ofo sseqtr4d gsumval3 ccntz
      forn cntzmhm2 rnco2 fveq2i 3sstr4g eldifi syl2an suppssr cfn expr exlimdv
      3eqtrd suppss 3eqtr4rd expimpd wo fsuppimpd eqeltrrd fz1f1o mpjaod ) ADUE
      UFIUGUHZUIZUJUKZFGDULZUMUNZEDUMUNZGUOZUKZUUMUPUOZUQUSZURUUTUTUNZUUMUAVAZV
      BZUAVCZVDZAUUNUUSAUUNVDZFUBBFVEUOZVFZUMUNZIGUOZUUPUURUVGUVJUVHUVKAUVJUVHU
      KZUUNAFVGUSZBHUSZUVLNOBUBFHUVHUVHVHZVIVJVKAUVKUVHUKZUUNAGEFVLUNUSZUVPPEFG
      UVHISUVOVMVNZVKVOUVGUUOUVIFUMUVGUUOUBBUVKVFZUVIUVGUBUCBCIUCVAZGUOZUVKDGAI
      CUSZUUNUBVABUSAEVGUSZUWBMCEIKSVPVNVQABCUFUBDHUUMIQOIUFUSZAIEVEUOUFSEVEVRV
      SZVTZADIWAUNZUUMUUMADUFUSZUWDUWGUUMUKABCDWBZUVNUWHQOBCHDWCVJUWFDUFUFIWDVJ
      ZUUMWEWFZWGZAGUCCUWAVFUKUUNAUCCFWPUOZGAUVQCUWMGWBZPCUWMEFGKUWMVHZWHVNZWIV
      KUVTIGWJWKAUVSUVIUKUUNAUBBUVKUVHUVRWLVKWMWNUVGUUQIGUVGUUQEUBBIVFZUMUNZIUV
      GDUWQEUMUWLWNAUWRIUKZUUNAUWCUVNUWSMOBUBEHISVIVJVKWMWOWQXHAUVAUVEUUSAUVAVD
      UVDUUSUAAUVAUVDUUSAUVAUVDVDZVDZUUTEWRUOZDUVCULZURWSUOZGUOUUTFWRUOZUUOUVCU
      LZURWSUOUURUUPUXAUCUDUXBUXECUXCUXFGURUUTUXAUWCUVTCUSZUDVAZCUSZVDZUVTUXHUX
      BUNZCUSZAUWCUWTMVKZUWCUXGUXIUXLCUXBEUVTUXHKUXBVHZWTXAXBUXAUVBCUVTUXCUXAUW
      IUVBBUVCWBZUVBCUXCWBZAUWIUWTQVKZUXAUVBBUVCXCZUXOUXAUVBUUMUVCXCZUUMBXDUXRU
      VDUXSAUVAUVBUUMUVCXEXFUXADXIZUUMBDUULXGUXAUWIUXTBUKUXQBCDXJVNXKUVBUUMBUVC
      XLVJZUVBBUVCXMVNUVBBCDUVCXNVJZXOUXAUUTUQURXPUOAUVAUVDXQZXRXSUXAUVQUXJUXKG
      UOUWAUXHGUOUXEUNUKZAUVQUWTPVKZUVQUXGUXIUYDCUXBUXEEFGUVTUXHKUXNUXEVHZYAXAX
      BUXAUVTUVBUSZVDUVTUXFUOUVTGUXCULZUOZUVTUXCUOGUOZUVTUXFUYHGDUVCXTYBUXAUXPU
      YGUYIUYJUKUYBUVBCUVTGUXCYCXBYDYEUXAUUQUXDGUXABCUXBDEUVCUUTHUXCIWAUNZIJKSU
      XNLUXMAUVNUWTOVKZUXQADYFZUYMJUOXDZUWTRVKZUYCUYAUXAUWGUUMUVCYFZAUWGUUMXDUW
      TUWKVKZUVDUYPUUMUKZAUVAUVDUVBUUMUVCYGUYRUVBUUMUVCYHUVBUUMUVCYLVNXFZYIUYKV
      HYJWOUXABUWMUXEUUOFUVCUUTHUXFUVHWAUNZUVHFYKUOZUWOUVOUYFVUAVHZAUVMUWTNVKUY
      LUXAUWNUWIBUWMUUOWBAUWNUWTUWPVKUXQBCUWMGDXNVJZUXAGUYMUIZVUDVUAUOZUUOYFZVU
      FVUAUOUXAUVQUYNVUDVUEXDUYEUYOUYMUYMGEFVUAJLVUBYMVJGDYNZVUFVUDVUAVUGYOYPUY
      CUYAUXAUUOUVHWAUNUUMUYPUXABUWMUCUUOUUMUVHVUCUXAUVTBUUMUHUSZVDZUVTUUOUOZUV
      TDUOZGUOZUVKUVHUXAUWIUVTBUSVUJVULUKVUHUXQUVTBUUMYQBCUVTGDYCYRVUIVUKIGUXAB
      CUFDHUUMUVTIUXQUYQUYLUWDUXAUWEVTYSWOAUVPUWTVUHUVRVQUUCUUDUYSYIUYTVHYJUUEU
      UAUUBUUFAUUMYTUSUUNUVFUUGAUWGUUMYTUWJADITUUHUUIUUMUAUUJVNUUK $.
  $}

  ${
    gsummhm.b $e |- B = ( Base ` G ) $.
    gsummhm.z $e |- .0. = ( 0g ` G ) $.
    gsummhm.g $e |- ( ph -> G e. CMnd ) $.
    gsummhm.h $e |- ( ph -> H e. Mnd ) $.
    gsummhm.a $e |- ( ph -> A e. V ) $.
    gsummhm.k $e |- ( ph -> K e. ( G MndHom H ) ) $.
    gsummhm.f $e |- ( ph -> F : A --> B ) $.
    gsummhm.w $e |- ( ph -> F finSupp .0. ) $.
    $( Apply a group homomorphism to a group sum.  (Contributed by Mario
       Carneiro, 15-Dec-2014.)  (Revised by Mario Carneiro, 24-Apr-2016.)
       (Revised by AV, 6-Jun-2019.) $)
    gsummhm $p |- ( ph -> ( H gsum ( K o. F ) ) = ( K ` ( G gsum F ) ) ) $=
      ( ccntz cfv wcel eqid ccmn cmnd cmnmnd syl cntzcmnf gsumzmhm ) ABCDEFGHIE
      RSZJUHUAZAEUBTEUCTLEUDUEMNOPABCDEUHJUILPUFKQUG $.
  $}

  ${
    $d k x A $.  $d k x B $.  $d k C $.  $d x D $.  $d x E $.  $d k ph $.
    $d x G $.  $d x H $.  $d x X $.
    gsummhm2.b $e |- B = ( Base ` G ) $.
    gsummhm2.z $e |- .0. = ( 0g ` G ) $.
    gsummhm2.g $e |- ( ph -> G e. CMnd ) $.
    gsummhm2.h $e |- ( ph -> H e. Mnd ) $.
    gsummhm2.a $e |- ( ph -> A e. V ) $.
    gsummhm2.k $e |- ( ph -> ( x e. B |-> C ) e. ( G MndHom H ) ) $.
    gsummhm2.f $e |- ( ( ph /\ k e. A ) -> X e. B ) $.
    gsummhm2.w $e |- ( ph -> ( k e. A |-> X ) finSupp .0. ) $.
    gsummhm2.1 $e |- ( x = X -> C = D ) $.
    gsummhm2.2 $e |- ( x = ( G gsum ( k e. A |-> X ) ) -> C = E ) $.
    $( Apply a group homomorphism to a group sum, mapping version with implicit
       substitution.  (Contributed by Mario Carneiro, 5-May-2015.)  (Revised by
       AV, 6-Jun-2019.) $)
    gsummhm2 $p |- ( ph -> ( H gsum ( k e. A |-> D ) ) = E ) $=
      ( cmpt ccom cgsu cfv eqid fmptd gsummhm eqidd fmptco oveq2d wcel cbs wceq
      co gsumcl wral wf cmhm mhmf syl fmpt sylibr cv eleq1d sylc fvmptg syl2anc
      rspcv 3eqtr3d ) AJBDEUDZGCLUDZUEZUFUQIVNUFUQZVMUGZJGCFUDZUFUQHACDVNIJVMKM
      NOPQRSAGCLDVNTVNUHUIZUAUJAVOVRJUFAGBCDLEFVNVMTAVNUKAVMUKUBULUMAVPDUNZHJUO
      UGZUNZVQHUPACDVNIKMNOPRVSUAURZAVTEWAUNZBDUSZWBWCADWAVMUTZWEAVMIJVAUQUNWFS
      DWAIJVMNWAUHVBVCBDWAEVMVMUHZVDVEWDWBBVPDBVFVPUPEHWAUCVGVKVHBVPEHDWAVMUCWG
      VIVJVL $.
  $}

  ${
    $d x A $.  $d x y B $.  $d y C $.  $d x y K $.  $d x ph $.
    gsummptmhm.b $e |- B = ( Base ` G ) $.
    gsummptmhm.z $e |- .0. = ( 0g ` G ) $.
    gsummptmhm.g $e |- ( ph -> G e. CMnd ) $.
    gsummptmhm.h $e |- ( ph -> H e. Mnd ) $.
    gsummptmhm.a $e |- ( ph -> A e. V ) $.
    gsummptmhm.k $e |- ( ph -> K e. ( G MndHom H ) ) $.
    gsummptmhm.c $e |- ( ( ph /\ x e. A ) -> C e. B ) $.
    gsummptmhm.w $e |- ( ph -> ( x e. A |-> C ) finSupp .0. ) $.
    $( Apply a group homomorphism to a group sum expressed with a mapping.
       (Contributed by Thierry Arnoux, 7-Sep-2018.)  (Revised by AV,
       8-Sep-2019.) $)
    gsummptmhm $p |- ( ph -> ( H gsum ( x e. A |-> ( K ` C ) ) )
                                = ( K ` ( G gsum ( x e. A |-> C ) ) ) ) $=
      ( vy cgsu cmpt ccom co cfv cv eqidd wfn wceq cmhm wcel cbs eqid mhmf 3syl
      wf ffn dffn5 sylib fveq2 fmptco oveq2d fmptd gsummhm eqtr3d ) AGHBCEUAZUB
      ZTUCGBCEHUDZUAZTUCFVETUCHUDAVFVHGTABSCDESUEZHUDZVGVEHQAVEUFAHDUGZHSDVJUAU
      HAHFGUIUCUJDGUKUDZHUOVKPDVLFGHKVLULUMDVLHUPUNSDHUQURVIEHUSUTVAACDVEFGHIJK
      LMNOPABCEDVEQVEULVBRVCVD $.
  $}

  ${
    $d k x A $.  $d k x B $.  $d x G $.  $d k x N $.  $d k ph $.  $d k x .x. $.
    $d x X $.
    gsummulg.b $e |- B = ( Base ` G ) $.
    gsummulg.z $e |- .0. = ( 0g ` G ) $.
    gsummulg.t $e |- .x. = ( .g ` G ) $.
    gsummulg.a $e |- ( ph -> A e. V ) $.
    gsummulg.f $e |- ( ( ph /\ k e. A ) -> X e. B ) $.
    gsummulg.w $e |- ( ph -> ( k e. A |-> X ) finSupp .0. ) $.
    ${
      gsummulglem.g $e |- ( ph -> G e. CMnd ) $.
      gsummulglem.n $e |- ( ph -> N e. ZZ ) $.
      gsummulglem.o $e |- ( ph -> ( G e. Abel \/ N e. NN0 ) ) $.
      $( Lemma for ~ gsummulg and ~ gsummulgz .  (Contributed by Mario
         Carneiro, 7-Jan-2015.)  (Revised by AV, 6-Jun-2019.) $)
      gsummulglem $p |- ( ph -> ( G gsum ( k e. A |-> ( N .x. X ) ) ) =
                             ( N .x. ( G gsum ( k e. A |-> X ) ) ) ) $=
        ( wcel vx cv co cmpt cgsu ccmn cmnd cmnmnd syl cabl cmhm cn0 cz wi cghm
        wa mulgghm ghmmhm expcom mulgmhm ex mpjaod oveq2 gsummhm2 ) AUABCGUAUBZ
        DUCZGIDUCEGFEBIUDUEUCZDUCFFHIJKLQAFUFTZFUGTQFUHUINAFUJTZUACVFUDZFFUKUCT
        ZGULTZAGUMTZVIVKUNRVIVMVKVIVMUPVJFFUOUCTVKUACDFGKMUQFFVJURUIUSUIAVHVLVK
        UNQVHVLVKUACDFGKMUTVAUISVBOPVEIGDVCVEVGGDVCVD $.
    $}

    ${
      gsummulg.g $e |- ( ph -> G e. CMnd ) $.
      gsummulg.n $e |- ( ph -> N e. NN0 ) $.
      $( Nonnegative multiple of a group sum.  (Contributed by Mario Carneiro,
         15-Dec-2014.)  (Revised by Mario Carneiro, 7-Jan-2015.)  (Revised by
         AV, 6-Jun-2019.) $)
      gsummulg $p |- ( ph -> ( G gsum ( k e. A |-> ( N .x. X ) ) ) =
                             ( N .x. ( G gsum ( k e. A |-> X ) ) ) ) $=
        ( nn0zd wcel cn0 cabl olcd gsummulglem ) ABCDEFGHIJKLMNOPQAGRSAGUATFUBT
        RUCUD $.
    $}

    ${
      gsummulgz.g $e |- ( ph -> G e. Abel ) $.
      gsummulgz.n $e |- ( ph -> N e. ZZ ) $.
      $( Integer multiple of a group sum.  (Contributed by Mario Carneiro,
         7-Jan-2015.)  (Revised by AV, 6-Jun-2019.) $)
      gsummulgz $p |- ( ph -> ( G gsum ( k e. A |-> ( N .x. X ) ) ) =
                             ( N .x. ( G gsum ( k e. A |-> X ) ) ) ) $=
        ( cabl wcel ccmn ablcmn syl cn0 orcd gsummulglem ) ABCDEFGHIJKLMNOPAFST
        ZFUATQFUBUCRAUGGUDTQUEUF $.
    $}
  $}

  ${
    $d f k x y .0. $.  $d k A $.  $d f k x y F $.  $d f k x y ph $.  $d k V $.
    $d f k x y G $.  $d f k x y O $.
    gsumzoppg.b $e |- B = ( Base ` G ) $.
    gsumzoppg.0 $e |- .0. = ( 0g ` G ) $.
    gsumzoppg.z $e |- Z = ( Cntz ` G ) $.
    gsumzoppg.o $e |- O = ( oppG ` G ) $.
    gsumzoppg.g $e |- ( ph -> G e. Mnd ) $.
    gsumzoppg.a $e |- ( ph -> A e. V ) $.
    gsumzoppg.f $e |- ( ph -> F : A --> B ) $.
    gsumzoppg.c $e |- ( ph -> ran F C_ ( Z ` ran F ) ) $.
    gsumzoppg.n $e |- ( ph -> F finSupp .0. ) $.
    $( The opposite of a group sum is the same as the original.  (Contributed
       by Mario Carneiro, 25-Apr-2016.)  (Revised by AV, 6-Jun-2019.) $)
    gsumzoppg $p |- ( ph -> ( O gsum F ) = ( G gsum F ) ) $=
      ( cfv wcel vf vk vx vy ccnv cvv csn cdif cima c0 wceq cgsu co chash cn c1
      cfz cv wf1o wex wa cmpt cmnd oppgmnd syl oppgid syl2anc eqtr4d adantr c0g
      gsumz fvex eqeltri a1i csupp wss ssid wf suppimacnv sylancl sseq1d mpbiri
      fex gsumcllem oveq2d 3eqtr4d cplusg ccom cseq crn csubmnd cmrc cuz simprl
      ex nnuz syl6eleq wfo wfn ffn dffn4 fof 3syl cacs cmre submacs acsmre eqid
      sylib frn mrcssidd fssd wf1 f1of1 ad2antll cdm cnvimass fdm syl5sseq f1ss
      f1f fco ffvelrnda mrccl oppgsubm 3expb sylan cress ccmn cntzspan submcmn2
      submcl wb mpbid sselda cntzi oppgplus mpbird gsumval3 cfn syl6reqr anasss
      seqfeq4 ccntz oppgcntz syl6sseq wi suppssdm syl6eqssr adantl eqcom biimpi
      oppgbas sseqtr4d mpcom f1ofo forn sseq2d expr exlimdv expimpd wo eqeltrrd
      fsuppimpd fz1f1o mpjaod ) ADUEUFHUGUHZUIZUJUKZFDULUMZEDULUMZUKZUVHUNSZUOT
      ZUPUVMUQUMZUVHUAURZUSZUAUTZVAZAUVIUVLAUVIVAZFUBBHVBZULUMZEUWAULUMZUVJUVKA
      UWBUWCUKUVIAUWBHUWCAFVCTZBGTZUWBHUKAEVCTZUWDNEFMVDZVEOBUBFGHEFHMKVFZVKVGA
      UWFUWEUWCHUKNOBUBEGHKVKVGVHVIUVTDUWAFULABCUFUBDGUVHHPOHUFTZAHEVJSUFKEVJVL
      VMZVNADHVOUMZUVHVPZUVHUVHVPZUVHVQZAUWKUVHUVHADUFTZUWIUWKUVHUKABCDVRZUWEUW
      OPOBCGDWCVGUWJDUFUFHVSVTZWAZWBZWDZWEUVTDUWAEULUWTWEWFWOAUVNUVRUVLAUVNVAUV
      QUVLUAAUVNUVQUVLAUVNUVQVAZVAZUVMFWGSZDUVPWHZUPWISUVMEWGSZUXDUPWISUVJUVKUX
      BUCUDUXCUXEDWJZEWKSZWLSZSZUXDUPUVMUXBUVMUOUPWMSAUVNUVQWNZWPWQUXBUVOUXIUCU
      RZUXDUXBBUXIDVRUVOBUVPVRZUVOUXIUXDVRUXBBUXFUXIDUXBUWPBUXFDWRZBUXFDVRAUWPU
      XAPVIZUWPDBWSUXMBCDWTBDXAXIBUXFDXBXCUXBUXGUXFUXHCUXBUWFUXGCXDSTUXGCXESTZA
      UWFUXANVIZCEJXFUXGCXGXCZUXHXHZUXBUWPUXFCVPZUXNBCDXJVEZXKXLUXBUVOBUVPXMZUX
      LUXBUVOUVHUVPXMZUVHBVPZUYAUVQUYBAUVNUVOUVHUVPXNXOZUXBDXPZUVHBDUVGXQUXBUWP
      UYEBUKZUXNBCDXRZVEXSUVOUVHBUVPXTZVGUVOBUVPYAVEUVOBUXIDUVPYBVGYCUXBUXIFWKS
      ZTZUXKUXITZUDURZUXITZVAUXKUYLUXCUMZUXITZUXBUXIUXGUYIUXBUXOUXSUXIUXGTZUXQU
      XTUXGUXFUXHCUXRYDVGZEFMYEWQUYJUYKUYMUYOUXCUXIFUXKUYLUXCXHZYLYFYGUXBUYKUYM
      UYNUXKUYLUXEUMZUKUXBUYKVAZUYMVAUYSUYLUXKUXEUMZUYNUYTUXKUXIISZTUYMUYSVUAUK
      UXBUXIVUBUXKUXBEUXIYHUMZYITZUXIVUBVPZUXBUWFUXFUXFISZVPZVUDUXPAVUGUXAQVIZU
      XFEVUCUXHILUXRVUCXHZYJVGUXBUYPVUDVUEYMUYQUXIEVUCIVUILYKVEYNYOUXEUXIEUXKUY
      LIUXEXHZLYPYGUXEUXCEFUXKUYLVUJMUYRYQUUAUUBUUCUXBBCUXCDFUVPUVMGUXDHVOUMZHF
      UUDSZCEFMJUUMUWHUYRVULXHUXBUWFUWDUXPUWGVEAUWEUXAOVIZUXNUXBUXFVUFUXFVULSVU
      HUXFEFIMLUUEUUFUXJUXBUYBUYCUYAUYDAUYCUXAUWPAUYCPUWPUYFAUYCUUGUYGUYFAUYCUY
      FAVAUVHUYEBAUVHUYEVPUYFAUVHUWKUYEUWQDHUUHUUIUUJUYFBUYEUKZAUYFVUNUYEBUUKUU
      LVIUUNWOVEUUOVIUYHVGZUXBUWKUVPWJZVPZUWLUXBUWLUWMUWNAUWLUWMYMUXAUWRVIWBUVQ
      VUQUWLYMAUVNUVQVUPUVHUWKUVQUVOUVHUVPWRVUPUVHUKUVOUVHUVPUUPUVOUVHUVPUUQVEU
      URXOZYRVUKXHZYSUXBBCUXEDEUVPUVMGVUKHIJKVUJLUXPVUMUXNVUHUXJVUOUXBVUQUWLAUW
      LUXAUWSVIVURYRVUSYSWFUUSUUTUVAAUVHYTTUVIUVSUVBAUWKUVHYTUWQADHRUVDUVCUVHUA
      UVEVEUVF $.
  $}

  ${
    gsumzinv.b $e |- B = ( Base ` G ) $.
    gsumzinv.0 $e |- .0. = ( 0g ` G ) $.
    gsumzinv.z $e |- Z = ( Cntz ` G ) $.
    gsumzinv.i $e |- I = ( invg ` G ) $.
    gsumzinv.g $e |- ( ph -> G e. Grp ) $.
    gsumzinv.a $e |- ( ph -> A e. V ) $.
    gsumzinv.f $e |- ( ph -> F : A --> B ) $.
    gsumzinv.c $e |- ( ph -> ran F C_ ( Z ` ran F ) ) $.
    gsumzinv.n $e |- ( ph -> F finSupp .0. ) $.
    $( Inverse of a group sum.  (Contributed by Mario Carneiro, 25-Apr-2016.)
       (Revised by AV, 6-Jun-2019.) $)
    gsumzinv $p |- ( ph -> ( G gsum ( I o. F ) ) = ( I ` ( G gsum F ) ) ) $=
      ( cfv wcel coppg ccom cgsu co eqid cgrp grpmnd syl wf grpinvf fco syl2anc
      cmnd crn cima ccntz cmhm cgim cghm invoppggim gimghm ghmmhm 4syl cntzmhm2
      wss rnco2 fveq2i oppgcntz eqtri 3sstr4g cvv c0g fvex eqeltri a1i cbs wceq
      grpinvid fsuppco2 gsumzoppg oppgmnd gsumzmhm eqtr3d ) AEUASZFDUBZUCUDEWEU
      CUDEDUCUDFSABCWEEWDGHIJKLWDUEZAEUFTZEUMTZNEUGUHZOACCFUIZBCDUIBCWEUIAWGWJN
      CEFJMUJUHZPBCCFDUKULAFDUNZUOZWMWDUPSZSZWEUNZWPISZAFEWDUQUDTZWLWLISVEWMWOV
      EAWGFEWDURUDTFEWDUSUDTWRNEFWDWFMUTEWDFVAEWDFVBVCZQWLWLFEWDWNILWNUEVDULFDV
      FZWQWMISWOWPWMIWTVGWMEWDIWFLVHVIVJABCGDFVKVKHHVKTAHEVLSVKKEVLVMVNVOPWKOCV
      KTACEVPSVKJEVPVMVNVORAWGHFSHVQNEFHKMVRUHVSVTABCDEWDFGHIJLWIAWHWDUMTWIEWDW
      FWAUHOWSPQKRWBWC $.
  $}

  ${
    gsuminv.b $e |- B = ( Base ` G ) $.
    gsuminv.z $e |- .0. = ( 0g ` G ) $.
    gsuminv.p $e |- I = ( invg ` G ) $.
    gsuminv.g $e |- ( ph -> G e. Abel ) $.
    ${
      gsuminv.a $e |- ( ph -> A e. V ) $.
      gsuminv.f $e |- ( ph -> F : A --> B ) $.
      gsuminv.n $e |- ( ph -> F finSupp .0. ) $.
      $( Inverse of a group sum.  (Contributed by Mario Carneiro, 15-Dec-2014.)
         (Revised by Mario Carneiro, 4-May-2015.)  (Revised by AV,
         6-Jun-2019.) $)
      gsuminv $p |- ( ph -> ( G gsum ( I o. F ) ) = ( I ` ( G gsum F ) ) ) $=
        ( cabl wcel ccmn syl co ablcmn cmnd cmnmnd invghm sylib ghmmhm gsummhm
        cghm cmhm ) ABCDEEFGHIJAEPQZERQZLEUASZAUKEUBQULEUCSMAFEEUHTQZFEEUITQAUJ
        UMLCEFIKUDUEEEFUFSNOUG $.
    $}

    $d A x $.  $d B x $.  $d ph x $.
    gsummptfidminv.a $e |- ( ph -> A e. Fin ) $.
    gsummptfidminv.c $e |- ( ( ph /\ x e. A ) -> C e. B ) $.
    gsummptfidminv.f $e |- F = ( x e. A |-> C ) $.
    $( Inverse of a group sum expressed as mapping with a finite domain.
       (Contributed by AV, 23-Jul-2019.) $)
    gsummptfidminv $p |- ( ph
                           -> ( G gsum ( I o. F ) ) = ( I ` ( G gsum F ) ) ) $=
      ( cfn fmptd cvv c0g wcel cfv fvex eqeltri a1i fsuppmptdm gsuminv ) ACDFGH
      QIJKLMNABCEDFOPRABCFDSEIPNOISUAAIGTUBSKGTUCUDUEUFUG $.
  $}

  ${
    $d k .- $.  $d k .0. $.  $d k x B $.  $d k x G $.  $d k x H $.  $d k ph $.
    $d k A $.  $d k F $.
    gsumsub.b $e |- B = ( Base ` G ) $.
    gsumsub.z $e |- .0. = ( 0g ` G ) $.
    gsumsub.m $e |- .- = ( -g ` G ) $.
    gsumsub.g $e |- ( ph -> G e. Abel ) $.
    gsumsub.a $e |- ( ph -> A e. V ) $.
    gsumsub.f $e |- ( ph -> F : A --> B ) $.
    gsumsub.h $e |- ( ph -> H : A --> B ) $.
    gsumsub.fn $e |- ( ph -> F finSupp .0. ) $.
    gsumsub.hn $e |- ( ph -> H finSupp .0. ) $.
    $( The difference of two group sums.  (Contributed by Mario Carneiro,
       28-Dec-2014.)  (Revised by AV, 6-Jun-2019.) $)
    gsumsub $p |- ( ph ->
      ( G gsum ( F oF .- H ) ) = ( ( G gsum F ) .- ( G gsum H ) ) ) $=
      ( cfv co vk vx cminusg ccom cplusg cof cgsu eqid cabl wcel ccmn ablcmn wf
      syl wf1o cgrp ablgrp grpinvf1o f1of fco syl2anc cvv c0g fvex eqeltri wceq
      a1i grpinvid fsuppco2 gsumadd gsuminv oveq2d eqtrd cv ffvelrnda grpsubval
      cbs cmpt wa mpteq2dva feqmptd offval2 fvexd fveq2 fmptco 3eqtr4d gsumcl )
      AEDEUCSZFUDZEUESZUFTZUGTZEDUGTZEFUGTZWHSZWJTZEDFGUFTZUGTWMWNGTZAWLWMEWIUG
      TZWJTWPABCWJDEWIHIJKWJUHZAEUIUJZEUKUJMEULUNZNOACCWHUMZBCFUMBCWIUMACCWHUOX
      CACEWHJWHUHZAXAEUPUJZMEUQUNZURCCWHUSUNZPBCCWHFUTVAQABCHFWHVBVBIIVBUJAIEVC
      SVBKEVCVDVEVGPXGNCVBUJACEVQSVBJEVQVDVEVGRAXEIWHSIVFXFEWHIKXDVHUNVIVJAWSWO
      WMWJABCFEWHHIJKXDMNPRVKVLVMAWQWKEUGAUABUAVNZDSZXHFSZGTZVRUABXIXJWHSZWJTZV
      RWQWKAUABXKXMAXHBUJVSZXICUJXJCUJXKXMVFABCXHDOVOZABCXHFPVOZCWJEWHGXIXJJWTX
      DLVPVAVTAUABXIXJGDFHCCNXOXPAUABCDOWAZAUABCFPWAZWBAUABXIXLWJDWIHCVBNXOXNXJ
      WHWCXQAUAUBBCXJUBVNZWHSXLFWHXPXRAUBCCWHXGWAXSXJWHWDWEWBWFVLAWMCUJWNCUJWRW
      PVFABCDEHIJKXBNOQWGABCFEHIJKXBNPRWGCWJEWHGWMWNJWTXDLVPVAWF $.
  $}

  ${
    $d A x $.  $d B x $.  $d ph x $.  $d .- x $.
    gsummptfssub.b $e |- B = ( Base ` G ) $.
    gsummptfssub.z $e |- .0. = ( 0g ` G ) $.
    gsummptfssub.s $e |- .- = ( -g ` G ) $.
    gsummptfssub.g $e |- ( ph -> G e. Abel ) $.
    gsummptfssub.a $e |- ( ph -> A e. V ) $.
    gsummptfssub.c $e |- ( ( ph /\ x e. A ) -> C e. B ) $.
    gsummptfssub.d $e |- ( ( ph /\ x e. A ) -> D e. B ) $.
    gsummptfssub.f $e |- ( ph -> F = ( x e. A |-> C ) ) $.
    gsummptfssub.h $e |- ( ph -> H = ( x e. A |-> D ) ) $.
    gsummptfssub.w $e |- ( ph -> F finSupp .0. ) $.
    gsummptfssub.v $e |- ( ph -> H finSupp .0. ) $.
    $( The difference of two group sums expressed as mappings.  (Contributed by
       AV, 7-Nov-2019.) $)
    gsummptfssub $p |- ( ph -> ( G gsum ( x e. A |-> ( C .- D ) ) )
                             = ( ( G gsum F ) .- ( G gsum H ) ) ) $=
      ( co cmpt cgsu cof offval2 eqcomd oveq2d wf eqid fmptd feq1d mpbird eqtrd
      gsumsub ) AHBCEFJUDUEZUFUDHGIJUGUDZUFUDHGUFUDHIUFUDJUDAURUSHUFAUSURABCEFJ
      GIKDDQRSTUAUHUIUJACDGHIJKLMNOPQACDGUKCDBCEUEZUKABCEDUTRUTULUMACDGUTTUNUOA
      CDIUKCDBCFUEZUKABCFDVASVAULUMACDIVAUAUNUOUBUCUQUP $.
  $}

  ${
    $d A x $.  $d B x $.  $d ph x $.  $d .- x $.
    gsummptfidmsub.b $e |- B = ( Base ` G ) $.
    gsummptfidmsub.s $e |- .- = ( -g ` G ) $.
    gsummptfidmsub.g $e |- ( ph -> G e. Abel ) $.
    gsummptfidmsub.a $e |- ( ph -> A e. Fin ) $.
    gsummptfidmsub.c $e |- ( ( ph /\ x e. A ) -> C e. B ) $.
    gsummptfidmsub.d $e |- ( ( ph /\ x e. A ) -> D e. B ) $.
    gsummptfidmsub.f $e |- F = ( x e. A |-> C ) $.
    gsummptfidmsub.h $e |- H = ( x e. A |-> D ) $.
    $( The difference of two group sums expressed as mappings with finite
       domain.  (Contributed by AV, 7-Nov-2019.) $)
    gsummptfidmsub $p |- ( ph -> ( G gsum ( x e. A |-> ( C .- D ) ) )
                             = ( ( G gsum F ) .- ( G gsum H ) ) ) $=
      ( c0g cmpt cfn cfv eqid wceq a1i cvv fvexd fsuppmptdm gsummptfssub ) ABCD
      EFGHIJUAHSUBZKUJUCLMNOPGBCETUDAQUEIBCFTUDARUEABCGDUFEUJQNOAHSUGZUHABCIDUF
      FUJRNPUKUHUI $.
  $}

  ${
    $d k M $.
    gsumsnd.b $e |- B = ( Base ` G ) $.
    gsumsnd.g $e |- ( ph -> G e. Mnd ) $.
    gsumsnd.m $e |- ( ph -> M e. V ) $.
    gsumsnd.c $e |- ( ph -> C e. B ) $.
    gsumsnd.s $e |- ( ( ph /\ k = M ) -> A = C ) $.
    ${
      gsumsnfd.p $e |- F/ k ph $.
      gsumsnfd.c $e |- F/_ k C $.
      $( Group sum of a singleton, deduction form, using bound-variable
         hypotheses instead of distinct variable conditions.  (Contributed by
         Mario Carneiro, 19-Dec-2014.)  (Revised by Thierry Arnoux,
         28-Mar-2018.)  (Revised by AV, 11-Dec-2019.) $)
      gsumsnfd $p |- ( ph -> ( G gsum ( k e. { M } |-> A ) ) = C ) $=
        ( cgsu co c1 wcel wceq csn cmpt chash cfv cmg cv sylan2 mpteq2da oveq2d
        elsni cmnd cfn snfi a1i eqid gsumconstf syl3anc eqtrd hashsng syl mulg1
        oveq1d 3eqtrd ) AFEGUAZBUBZPQZVDUCUDZDFUEUDZQZRDVHQZDAVFFEVDDUBZPQZVIAV
        EVKFPAEVDBDNEUFZVDSAVMGTBDTVMGUJMUGUHUIAFUKSVDULSZDCSZVLVITJVNAGUMUNLVD
        CVHEFDOIVHUOZUPUQURAVGRDVHAGHSVGRTKGHUSUTVBAVOVJDTLCVHFDIVPVAUTVC $.
    $}

    $d k C $.  $d k ph $.
    $( Group sum of a singleton, deduction form.  (Contributed by Thierry
       Arnoux, 30-Jan-2017.)  (Proof shortened by AV, 11-Dec-2019.) $)
    gsumsnd $p |- ( ph -> ( G gsum ( k e. { M } |-> A ) ) = C ) $=
      ( nfv nfcv gsumsnfd ) ABCDEFGHIJKLMAENEDOP $.
  $}

  ${
    $d k B $.  $d k G $.  $d k M $.  $d k V $.
    gsumsnf.c $e |- F/_ k C $.
    gsumsnf.b $e |- B = ( Base ` G ) $.
    gsumsnf.s $e |- ( k = M -> A = C ) $.
    $( Group sum of a singleton, using bound-variable hypotheses instead of
       distinct variable conditions.  (Contributed by Mario Carneiro,
       19-Dec-2014.)  (Revised by Thierry Arnoux, 28-Mar-2018.)  (Proof
       shortened by AV, 11-Dec-2019.) $)
    gsumsnf $p |- ( ( G e. Mnd /\ M e. V /\ C e. B ) ->
      ( G gsum ( k e. { M } |-> A ) ) = C ) $=
      ( cmnd wcel w3a simp1 simp2 simp3 cv wceq adantl nfv nfel1 nf3an gsumsnfd
      ) EKLZFGLZCBLZMZABCDEFGIUDUEUFNUDUEUFOUDUEUFPDQFRACRUGJSUDUEUFDUDDTUEDTDC
      BHUAUBHUC $.
  $}

  ${
    $d k B $.  $d k C $.  $d k G $.  $d k M $.  $d k V $.
    gsumsn.b $e |- B = ( Base ` G ) $.
    gsumsn.s $e |- ( k = M -> A = C ) $.
    $( Group sum of a singleton.  (Contributed by Mario Carneiro, 19-Dec-2014.)
       (Revised by Mario Carneiro, 24-Apr-2016.)  (Proof shortened by AV,
       11-Dec-2019.) $)
    gsumsn $p |- ( ( G e. Mnd /\ M e. V /\ C e. B ) ->
      ( G gsum ( k e. { M } |-> A ) ) = C ) $=
      ( nfcv gsumsnf ) ABCDEFGDCJHIK $.
  $}

  ${
    $d k A $.  $d k B $.  $d k G $.  $d k M $.  $d k ph $.  $d k Y $.
    gsumzunsnd.b $e |- B = ( Base ` G ) $.
    gsumzunsnd.p $e |- .+ = ( +g ` G ) $.
    gsumzunsnd.z $e |- Z = ( Cntz ` G ) $.
    gsumzunsnd.f $e |- F = ( k e. ( A u. { M } ) |-> X ) $.
    gsumzunsnd.g $e |- ( ph -> G e. Mnd ) $.
    gsumzunsnd.a $e |- ( ph -> A e. Fin ) $.
    gsumzunsnd.c $e |- ( ph -> ran F C_ ( Z ` ran F ) ) $.
    gsumzunsnd.x $e |- ( ( ph /\ k e. A ) -> X e. B ) $.
    gsumzunsnd.m $e |- ( ph -> M e. V ) $.
    gsumzunsnd.d $e |- ( ph -> -. M e. A ) $.
    gsumzunsnd.y $e |- ( ph -> Y e. B ) $.
    gsumzunsnd.s $e |- ( ( ph /\ k = M ) -> X = Y ) $.
    $( Append an element to a finite group sum, more general version of
       ~ gsumunsnd .  (Contributed by AV, 7-Oct-2019.) $)
    gsumzunsnd $p |- ( ph -> ( G gsum F )
                             = ( ( G gsum ( k e. A |-> X ) ) .+ Y ) ) $=
      ( cgsu co cres csn cmpt cun cfn c0g cfv eqid wcel snfi unfi sylancl cv wo
      elun wceq elsni sylan2 adantr eqeltrd jaodan sylan2b fmptd cvv expcom syl
      wa wi sylbi impcom fvexd fsuppmptdm wn cin disjsn sylibr eqidd gsumzsplit
      jaoi c0 reseq1i wss ssun1 resmpt mp1i syl5eq oveq2d ssun2 oveq12d gsumsnd
      3eqtrd ) AGFUEUFGFBUGZUEUFZGFHUHZUGZUEUFZDUFGEBJUIZUEUFZGEWTJUIZUEUFZDUFX
      DKDUFABWTUJZCBWTDFGUKGULUMZLMXHUNNOQABUKUOWTUKUOXGUKUORHUPBWTUQURZAEXGJCF
      EUSZXGUOZAXJBUOZXJWTUOZUTZJCUOZXJBWTVAZAXLXOXMTAXMVMJKCXMAXJHVBZJKVBXJHVC
      ZUDVDAKCUOZXMUCVEVFVGVHPVISAEXGFCVJJXHPXIXKAXOXKXNAXOVNZXPXLXTXMAXLXOTVKX
      MXQXTXRAXQXOAXQVMJKCUDAXSXQUCVEVFVKVLWEVOVPAGULVQVRAHBUOVSBWTVTWFVBUBBHWA
      WBAXGWCWDAWSXDXBXFDAWRXCGUEAWREXGJUIZBUGZXCFYABPWGBXGWHYBXCVBABWTWIEXGBJW
      JWKWLWMAXAXEGUEAXAYAWTUGZXEFYAWTPWGWTXGWHYCXEVBAWTBWNEXGWTJWJWKWLWMWOAXFK
      XDDAJCKEGHIMQUAUCUDWPWMWQ $.
  $}

  ${
    $d k A $.  $d k B $.  $d k G $.  $d k M $.  $d k ph $.
    gsumunsnd.b $e |- B = ( Base ` G ) $.
    gsumunsnd.p $e |- .+ = ( +g ` G ) $.
    gsumunsnd.g $e |- ( ph -> G e. CMnd ) $.
    gsumunsnd.a $e |- ( ph -> A e. Fin ) $.
    gsumunsnd.f $e |- ( ( ph /\ k e. A ) -> X e. B ) $.
    gsumunsnd.m $e |- ( ph -> M e. V ) $.
    gsumunsnd.d $e |- ( ph -> -. M e. A ) $.
    gsumunsnd.y $e |- ( ph -> Y e. B ) $.
    gsumunsnd.s $e |- ( ( ph /\ k = M ) -> X = Y ) $.
    ${
      gsumunsnfd.0 $e |- F/_ k Y $.
      $( Append an element to a finite group sum, using bound-variable
         hypotheses instead of distinct variable conditions.  (Contributed by
         Mario Carneiro, 19-Dec-2014.)  (Revised by AV, 11-Dec-2019.) $)
      gsumunsnfd $p |- ( ph -> ( G gsum ( k e. ( A u. { M } ) |-> X ) ) =
        ( ( G gsum ( k e. A |-> X ) ) .+ Y ) ) $=
        ( csn cun cmpt cgsu co cfn wcel snfi unfi sylancl cv wo elun wceq elsni
        sylan2 adantr eqeltrd jaodan sylan2b cin disjsn sylibr gsummptfidmsplit
        wa wn c0 eqidd ccmn cmnd cmnmnd syl nfv gsumsnfd oveq2d eqtrd ) AFEBGUA
        ZUBZIUCUDUEFEBIUCUDUEZFEVQIUCUDUEZDUEVSJDUEAVRCBVQDEFIKLMABUFUGVQUFUGVR
        UFUGNGUHBVQUIUJEUKZVRUGAWABUGZWAVQUGZULICUGZWABVQUMAWBWDWCOAWCVEIJCWCAW
        AGUNIJUNWAGUOSUPAJCUGWCRUQURUSUTAGBUGVFBVQVAVGUNQBGVBVCAVRVHVDAVTJVSDAI
        CJEFGHKAFVIUGFVJUGMFVKVLPRSAEVMTVNVOVP $.
    $}

    $d k Y $.
    $( Append an element to a finite group sum.  (Contributed by Mario
       Carneiro, 19-Dec-2014.)  (Revised by AV, 2-Jan-2019.)  (Proof shortened
       by AV, 11-Dec-2019.) $)
    gsumunsnd $p |- ( ph -> ( G gsum ( k e. ( A u. { M } ) |-> X ) ) =
      ( ( G gsum ( k e. A |-> X ) ) .+ Y ) ) $=
      ( nfcv gsumunsnfd ) ABCDEFGHIJKLMNOPQRSEJTUA $.
  $}

  ${
    $d k A $.  $d k B $.  $d k G $.  $d k M $.  $d k V $.  $d k ph $.
    gsumunsnf.0 $e |- F/_ k Y $.
    gsumunsnf.b $e |- B = ( Base ` G ) $.
    gsumunsnf.p $e |- .+ = ( +g ` G ) $.
    gsumunsnf.g $e |- ( ph -> G e. CMnd ) $.
    gsumunsnf.a $e |- ( ph -> A e. Fin ) $.
    gsumunsnf.f $e |- ( ( ph /\ k e. A ) -> X e. B ) $.
    gsumunsnf.m $e |- ( ph -> M e. V ) $.
    gsumunsnf.d $e |- ( ph -> -. M e. A ) $.
    gsumunsnf.y $e |- ( ph -> Y e. B ) $.
    gsumunsnf.s $e |- ( k = M -> X = Y ) $.
    $( Append an element to a finite group sum, using bound-variable hypotheses
       instead of distinct variable conditions.  (Contributed by Mario
       Carneiro, 19-Dec-2014.)  (Revised by Thierry Arnoux, 28-Mar-2018.)
       (Proof shortened by AV, 11-Dec-2019.) $)
    gsumunsnf $p |- ( ph -> ( G gsum ( k e. ( A u. { M } ) |-> X ) ) =
      ( ( G gsum ( k e. A |-> X ) ) .+ Y ) ) $=
      ( cv wceq adantl gsumunsnfd ) ABCDEFGHIJLMNOPQRSEUAGUBIJUBATUCKUD $.
  $}

  ${
    $d k A $.  $d k B $.  $d k G $.  $d k M $.  $d k ph $.  $d k Y $.
    gsumunsn.b $e |- B = ( Base ` G ) $.
    gsumunsn.p $e |- .+ = ( +g ` G ) $.
    gsumunsn.g $e |- ( ph -> G e. CMnd ) $.
    gsumunsn.a $e |- ( ph -> A e. Fin ) $.
    gsumunsn.f $e |- ( ( ph /\ k e. A ) -> X e. B ) $.
    gsumunsn.m $e |- ( ph -> M e. V ) $.
    gsumunsn.d $e |- ( ph -> -. M e. A ) $.
    gsumunsn.y $e |- ( ph -> Y e. B ) $.
    gsumunsn.s $e |- ( k = M -> X = Y ) $.
    $( Append an element to a finite group sum.  (Contributed by Mario
       Carneiro, 19-Dec-2014.)  (Proof shortened by AV, 8-Mar-2019.) $)
    gsumunsn $p |- ( ph -> ( G gsum ( k e. ( A u. { M } ) |-> X ) ) =
      ( ( G gsum ( k e. A |-> X ) ) .+ Y ) ) $=
      ( wceq cv adantl gsumunsnd ) ABCDEFGHIJKLMNOPQREUAGTIJTASUBUC $.
  $}

  ${
    $d k A $.  $d k B $.  $d k G $.  $d k M $.  $d k ph $.  $d k Y $.
    gsumdifsnd.b $e |- B = ( Base ` G ) $.
    gsumdifsnd.p $e |- .+ = ( +g ` G ) $.
    gsumdifsnd.g $e |- ( ph -> G e. CMnd ) $.
    gsumdifsnd.a $e |- ( ph -> A e. W ) $.
    gsumdifsnd.f $e |- ( ph -> ( k e. A |-> X ) finSupp ( 0g ` G ) ) $.
    gsumdifsnd.e $e |- ( ( ph /\ k e. A ) -> X e. B ) $.
    gsumdifsnd.m $e |- ( ph -> M e. A ) $.
    gsumdifsnd.y $e |- ( ph -> Y e. B ) $.
    gsumdifsnd.s $e |- ( ( ph /\ k = M ) -> X = Y ) $.
    $( Extract a summand from a finitely supported group sum.  (Contributed by
       AV, 21-Apr-2019.)  (Revised by AV, 28-Jul-2019.) $)
    gsumdifsnd $p |- ( ph -> ( G gsum ( k e. A |-> X ) )
                        = ( ( G gsum ( k e. ( A \ { M } ) |-> X ) ) .+ Y ) ) $=
      ( co cmpt cgsu csn cdif c0g cfv eqid c0 cin difid wss wceq snssd syl5reqr
      difin2 syl wcel difsnid eqcomd gsumsplit2 ccmn cmnd cmnmnd gsumsnd oveq2d
      cun eqtrd ) AFEBIUAUBTFEBGUCZUDZIUAUBTZFEVHIUAUBTZDTVJJDTABCVIVHDEFHIFUEU
      FZKVLUGLMNPOAUHVHVHUDZVIVHUIZVHUJAVHBUKVMVNULAGBQUMVHVHBUOUPUNAVIVHVFZBAG
      BUQVOBULQBGURUPUSUTAVKJVJDAICJEFGBKAFVAUQFVBUQMFVCUPQRSVDVEVG $.
  $}

  ${
    $d a A $.  $d a B $.  $d a F $.  $d a G $.  $d a ph $.  $d a X $.
    gsumpt.b $e |- B = ( Base ` G ) $.
    gsumpt.z $e |- .0. = ( 0g ` G ) $.
    gsumpt.g $e |- ( ph -> G e. Mnd ) $.
    gsumpt.a $e |- ( ph -> A e. V ) $.
    gsumpt.x $e |- ( ph -> X e. A ) $.
    gsumpt.f $e |- ( ph -> F : A --> B ) $.
    gsumpt.s $e |- ( ph -> ( F supp .0. ) C_ { X } ) $.
    $( Sum of a family that is nonzero at at most one point.  (Contributed by
       Stefan O'Rear, 7-Feb-2015.)  (Revised by Mario Carneiro, 25-Apr-2016.)
       (Revised by AV, 6-Jun-2019.) $)
    gsumpt $p |- ( ph -> ( G gsum F ) = ( F ` X ) ) $=
      ( va co cfv wss wcel csn cres cgsu cmpt snssd feqresmpt oveq2d ccntz eqid
      cv csubmnd cmrc cress ccmn cmnd cplusg wceq ffvelrnd eqidd wa wb elcntzsn
      crn syl mpbir2and cntzspan syl2anc cmre cacs submacs acsmre 3syl submcmn2
      mrccl mpbid wfn wral ffn simpr fveq2d mrcssidd fvex snss ad2antrr eqeltrd
      wf sylibr wne eldifsn cvv c0g eqeltri a1i suppssr sylan2br subm0cl adantr
      cdif anassrs pm2.61dane ralrimiva ffnfv sylanbrc frn cntzidss cfsupp wfun
      wbr csupp cfn ffun snfi sylancr fex isfsupp gsumzres fveq2 gsumsn syl3anc
      ssfi 3eqtr3d ) AEDGUAZUBZUCQEPYBPUJZDRZUDZUCQZEDUCQGDRZAYCYFEUCAPBCYBDNAG
      BMUEUFUGABCDEFYBHEUHRZIJYIUIZKLNAYHUAZEUKRZULRZRZYNYIRSZDVCZYNSZYPYPYIRSA
      EYNUMQZUNTZYOAEUOTZYKYKYIRZSYSKAYHUUAAYHUUATZYHCTZYHYHEUPRZQZUUEUQZABCGDN
      MURZAUUEUSAUUCUUBUUCUUFUTVAUUGCUUDEYHYHYIIUUDUIYJVBVDVEUEYKEYRYMYIYJYMUIZ
      YRUIZVFVGAYNYLTZYSYOVAAYLCVHRTZYKCSUUJAYTYLCVIRTUUKKCEIVJYLCVKVLZAYHCUUGU
      EZYLYKYMCUUHVNVGZYNEYRYIUUIYJVMVDVOABYNDWFZYQADBVPZYEYNTZPBVQUUOABCDWFZUU
      PNBCDVRVDAUUQPBAYDBTZUTZUUQYDGUUTYDGUQZUTZYEYHYNUVBYDGDUUTUVAVSVTAYHYNTZU
      USUVAAYKYNSUVCAYLYKYMCUULUUHUUMWAYHYNGDWBWCWGWDWEAUUSYDGWHZUUQAUUSUVDUTZU
      TYEHYNUVEAYDBYBWRTYEHUQYDBGWIABCWJDFYBYDHNOLHWJTZAHEWKRWJJEWKWBWLWMZWNWOA
      HYNTZUVEAUUJUVHUUNYNEHJWPVDWQWEWSWTXAPBYNDXBXCBYNDXDVDYNYPEYIYJXEVGOADHXF
      XHZDXGZDHXIQZXJTZAUURUVJNBCDXKVDAYBXJTUVKYBSUVLGXLOYBUVKXTXMADWJTZUVFUVIU
      VJUVLUTVAAUURBFTUVMNLBCFDXNVGUVGDWJWJHXOVGVEXPAYTGBTUUCYGYHUQKMUUGYECYHPE
      GBIYDGDXQXRXSYA $.
  $}

  ${
    $d x y A $.  $d x B $.  $d y C $.  $d x y D $.  $d x E $.  $d x y ph $.
    gsummptf1o.x $e |- F/_ x H $.
    gsummptf1o.b $e |- B = ( Base ` G ) $.
    gsummptf1o.z $e |- .0. = ( 0g ` G ) $.
    gsummptf1o.i $e |- ( x = E -> C = H ) $.
    gsummptf1o.g $e |- ( ph -> G e. CMnd ) $.
    gsummptf1o.a $e |- ( ph -> A e. Fin ) $.
    gsummptf1o.d $e |- ( ph -> F C_ B ) $.
    gsummptf1o.f $e |- ( ( ph /\ x e. A ) -> C e. F ) $.
    gsummptf1o.e $e |- ( ( ph /\ y e. D ) -> E e. A ) $.
    gsummptf1o.h $e |- ( ( ph /\ x e. A ) -> E! y e. D x = E ) $.
    $( Re-index a finite group sum using a bijection.  (Contributed by Thierry
       Arnoux, 29-Mar-2018.) $)
    gsummptf1o $p |- ( ph -> ( G gsum ( x e. A |-> C ) )
      = ( G gsum ( y e. D |-> H ) ) ) $=
      ( cmpt cgsu co ccom cfn cv wcel wss adantr sseldd eqid fmptd cvv c0g fvex
      cfv eqeltri a1i fsuppmptdm wral wceq wreu wf1o ralrimiva sylanbrc gsumf1o
      f1ompt csb eqidd fmptcos nfv wnfc adantl csbiedf mpteq2dva eqtrd oveq2d
      wa ) AJBDFUCZUDUEJWACGHUCZUFZUDUEJCGKUCZUDUEADEGWAJWBUGLNOQRABDFEWAABUHZD
      UIZVTIEFAIEUJWFSUKTULZWAUMZUNABDWAEUOFLWHRWGLUOUIALJUPURUOOJUPUQUSUTVAAHD
      UIZCGVBWEHVCZCGVDZBDVBGDWBVEAWICGUAVFZAWKBDUBVFCBGDHWBWBUMVIVGVHAWCWDJUDA
      WCCGBHFVJZUCWDACBGDHFWBWAWLAWBVKAWAVKVLACGWMKACUHGUIVTZBHFKDWNBVMBKVNWNMU
      TUAWJFKVCWNPVOVPVQVRVSVR $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.
    gsummptun.b $e |- B = ( Base ` W ) $.
    gsummptun.z $e |- .0. = ( 0g ` W ) $.
    gsummptun.p $e |- .+ = ( +g ` W ) $.
    gsummptun.w $e |- ( ph -> W e. CMnd ) $.
    gsummptun.a $e |- ( ph -> ( A u. C ) e. Fin ) $.
    gsummptun.d $e |- ( ph -> ( A i^i C ) = (/) ) $.
    gsummptun.1 $e |- ( ( ph /\ x e. ( A u. C ) ) -> D e. B ) $.
    $( Group sum of a disjoint union, whereas sums are expressed as mappings.
       (Contributed by Thierry Arnoux, 28-Mar-2018.)  (Proof shortened by AV,
       11-Dec-2019.) $)
    gsummptun $p |- ( ph -> ( W gsum ( x e. ( A u. C ) |-> D ) ) =
      ( ( W gsum ( x e. A |-> D ) ) .+ ( W gsum ( x e. C |-> D ) ) ) ) $=
      ( cun eqidd gsummptfidmsplit ) ACEQZDCEGBHFJLMNPOATRS $.
  $}

  ${
    $d G n $.  $d I n $.  $d X n $.  $d ph n $.  $d .0. n $.
    gsummpt1n0.0 $e |- .0. = ( 0g ` G ) $.
    gsummpt1n0.g $e |- ( ph -> G e. Mnd ) $.
    gsummpt1n0.i $e |- ( ph -> I e. W ) $.
    gsummpt1n0.x $e |- ( ph -> X e. I ) $.
    gsummpt1n0.f $e |- F = ( n e. I |-> if ( n = X , A , .0. ) ) $.
    ${
      $d A y $.  $d I n y $.  $d X y $.  $d .0. y $.
      gsummpt1n0.a $e |- ( ph -> A. n e. I A e. ( Base ` G ) ) $.
      $( If only one summand in a finite group sum is not zero, the whole sum
         equals this summand.  More general version of ~ gsummptif1n0 .
         (Contributed by AV, 11-Oct-2019.) $)
      gsummpt1n0 $p |- ( ph -> ( G gsum F ) = [_ X / n ]_ A ) $=
        ( vy co wceq wcel csupp cgsu cfv csb cbs eqid cif r19.21bi cmnd mndidcl
        cv wa syl adantr ifcld fmptd cmpt oveq1i cdif eldifsni adantl ifnefalse
        csn wne suppss2 syl5eqss gsumpt wral rspcsbela iftrue csbeq1 eqtrd nfcv
        syl2anc nfv nfcsb1v nfif weq eqeq1 csbeq1a ifbieq1d cbvmpt eqtri fvmptg
        ) AEDUAQHDUBZCHBUCZAFEUDUBZDEGHIWFUEZJKLMACFCUJZHRZBIUFZWFDAWHFSZUKWIBI
        WFABWFSZCFOUGAIWFSZWKAEUHSWMKWFEIWGJUIULUMUNNUOADITQCFWJUPZITQHVBZDWNIT
        NUQAFWJCGWOIAWHFWOURSZUKWHHVCZWJIRWPWQAWHFHUSUTWHHBIVAULLVDVEVFAHFSZWEW
        FSZWDWERMAWRWLCFVGWSMOCHFBWFVHVMPHPUJZHRZCWTBUCZIUFZWEFWFDXAXCXBWEXAXBI
        VICWTHBVJVKDWNPFXCUPNCPFWJXCPWJVLXACXBIXACVNCWTBVOCIVLVPCPVQWIXABXBIWHW
        THVRCWTBVSVTWAWBWCVMVK $.
    $}

    $d A n $.
    gsummptif1n0.a $e |- ( ph -> A e. ( Base ` G ) ) $.
    $( If only one summand in a finite group sum is not zero, the whole sum
       equals this summand.  (Contributed by AV, 17-Feb-2019.)  (Proof
       shortened by AV, 11-Oct-2019.) $)
    gsummptif1n0 $p |- ( ph -> ( G gsum F ) = A ) $=
      ( cgsu co csb cbs wcel cfv ralrimivw gsummpt1n0 wceq csbconstg syl eqtrd
      ) AEDPQCHBRZBABCDEFGHIJKLMNABESUATCFOUBUCAHFTUHBUDMCHBFUEUFUG $.
  $}

  ${
    $d i B $.  $d i N $.
    gsummptcl.b $e |- B = ( Base ` G ) $.
    gsummptcl.g $e |- ( ph -> G e. CMnd ) $.
    gsummptcl.n $e |- ( ph -> N e. Fin ) $.
    gsummptcl.e $e |- ( ph -> A. i e. N X e. B ) $.
    $( Closure of a finite group sum over a finite set as map.  (Contributed by
       AV, 29-Dec-2018.) $)
    gsummptcl $p |- ( ph -> ( G gsum ( i e. N |-> X ) ) e. B ) $=
      ( cmpt cfn c0g cfv eqid wcel wral wf fmpt sylib cvv wfn fnmpt fndmfifsupp
      syl fvexd gsumcl ) AEBCEFKZDLDMNZGUIOHIAFBPCEQZEBUHRJCEBFUHUHOZSTAEUHUAUI
      AUJUHEUBJCEFUHBUKUCUEIADMUFUDUG $.

    gsummptfif1o.f $e |- F = ( i e. N |-> X ) $.
    gsummptfif1o.h $e |- ( ph -> H : C -1-1-onto-> N ) $.
    $( Re-index a finite group sum as map, using a bijection.  (Contributed by
       by AV, 23-Jul-2019.) $)
    gsummptfif1o $p |- ( ph -> ( G gsum F ) = ( G gsum ( F o. H ) ) ) $=
      ( cfn c0g cfv eqid wcel wral wf fmpt sylib cvv fvexd fdmfifsupp gsumf1o )
      AHBCEFGPFQRZJUISKLAIBTDHUAHBEUBMDHBIENUCUDZAHBEUEUIUJLAFQUFUGOUH $.
  $}

  ${
    $d i x y I $.  $d i x y B $.  $d x y G $.  $d x y M $.  $d x y N $.
    $d x y X $.  $d x y ph $.
    gsummptfzcl.b $e |- B = ( Base ` G ) $.
    gsummptfzcl.g $e |- ( ph -> G e. Mnd ) $.
    gsummptfzcl.n $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    gsummptfzcl.i $e |- ( ph -> I = ( M ... N ) ) $.
    gsummptfzcl.e $e |- ( ph -> A. i e. I X e. B ) $.
    $( Closure of a finite group sum over a finite set of sequential integers
       as map.  (Contributed by AV, 14-Dec-2018.) $)
    gsummptfzcl $p |- ( ph -> ( G gsum ( i e. I |-> X ) ) e. B ) $=
      ( vx vy co cfv cmnd wcel wa cmpt cgsu cplusg cseq eqid wral wf fmpt feq2d
      cfz syl5bb mpbid gsumval2 adantr sylib eqcomd eleq2d biimpa simprl simprr
      cv ffvelrnd mndcl syl3anc seqcl eqeltrd ) ADCEHUAZUBPGDUCQZVGFUDQBABVHVGD
      FGRIVHUEZJKAHBSCEUFZFGUJPZBVGUGZMVJEBVGUGZAVLCEBHVGVGUEUHZAEVKBVGLUIUKULU
      MANOVHBVGFGKANVAZVKSZTZEBVOVGVQVJVMAVJVPMUNVNUOAVPVOESAVKEVOAEVKLUPUQURVB
      AVOBSZOVAZBSZTZTDRSZVRVTVOVSVHPBSAWBWAJUNAVRVTUSAVRVTUTBVHDVOVSIVIVCVDVEV
      F $.
  $}

  ${
    $d j k x y z A $.  $d j k x y z F $.  $d j k x y z G $.  $d j k x y z ph $.
    $d j k B $.  $d j k D $.  $d j k x y z .0. $.
    gsum2d.b $e |- B = ( Base ` G ) $.
    gsum2d.z $e |- .0. = ( 0g ` G ) $.
    gsum2d.g $e |- ( ph -> G e. CMnd ) $.
    gsum2d.a $e |- ( ph -> A e. V ) $.
    gsum2d.r $e |- ( ph -> Rel A ) $.
    gsum2d.d $e |- ( ph -> D e. W ) $.
    gsum2d.s $e |- ( ph -> dom A C_ D ) $.
    gsum2d.f $e |- ( ph -> F : A --> B ) $.
    gsum2d.w $e |- ( ph -> F finSupp .0. ) $.
    $( Lemma 1 for ~ gsum2d .  (Contributed by Mario Carneiro, 28-Dec-2014.)
       (Revised by AV, 8-Jun-2019.) $)
    gsum2dlem1 $p |- ( ph -> ( G gsum ( k e. ( A " { j } )
                                         |-> ( j F k ) ) ) e. B ) $=
      ( cv csn cima co cmpt cvv wcel imaexg syl cop vex elimasn df-ov ffvelrnda
      wa cfv syl5eqel sylan2b eqid fmptd csupp crn cfn fsuppimpd rnfi cdif wceq
      wss wn biimpi opelrn con3i anim12i eldif 3imtr4i ssid a1i eqeltri suppssr
      c0g fvex syl5eq sylan2 suppss2 ssfi syl2anc gsumcl2 ) ABEUAZUBZUCZCFWJWHF
      UAZGUDZUEZHUFKLMNABIUGWJUFUGOBWIIUHUIZAFWJWLCWMWKWJUGZAWHWKUJZBUGZWLCUGBW
      HWKEUKZFUKZULZAWQUOWLWPGUPZCWHWKGUMZABCWPGSUNUQURWMUSUTAGKVAUDZVBZVCUGZWM
      KVAUDZXDVHXFVCUGAXCVCUGXEAGKTVDXCVEUIAWJWLFUFXDKWKWJXDVFUGZAWPBXCVFUGZWLK
      VGWOWKXDUGZVIZUOWQWPXCUGZVIZUOXGXHWOWQXJXLWOWQWTVJXKXIWHWKXCWRWSVKVLVMWKW
      JXDVNWPBXCVNVOAXHUOWLXAKXBABCUFGIXCWPKSXCXCVHAXCVPVQOKUFUGAKHVTUPUFMHVTWA
      VRVQVSWBWCWNWDXDXFWEWFWG $.

    $( Lemma for ~ gsum2d .  (Contributed by Mario Carneiro, 28-Dec-2014.)
       (Revised by AV, 8-Jun-2019.) $)
    gsum2dlem2 $p |- ( ph -> ( G gsum ( F |` ( A |` dom ( F supp .0. ) ) ) )
                               = ( G gsum ( j e. dom ( F supp .0. )
                   |-> ( G gsum ( k e. ( A " { j } ) |-> ( j F k ) ) ) ) ) ) $=
      ( vx vy vz csupp cdm cfn wcel cres cgsu csn cima cmpt wceq fsuppimpd dmfi
      co cv syl wi c0 cun reseq2 res0 syl6eq reseq2d oveq2d mpteq1 mpt0 eqeq12d
      imbi2d weq eqidd wel wn wa cplusg cfv oveq1 cvv eqid adantr resexg wf wss
      ccmn resss fssres sylancl cfsupp wbr wfun ffun funres fex syl2anc eqeltri
      c0g fvex ressuppss ssfi wb isfsupp mpbir2and simprr disjsn sylibr resindi
      cin 3eqtr3g resundi a1i gsumsplit ssun1 ssres2 resabs1 mp2b ssun2 oveq12i
      oveq2i simprl gsum2dlem1 ad2antrr vex sneq imaeq2d eleq1d chvarv gsumunsn
      mpteq12dv c2nd df-ov cdif eldif mp1i eqtrd feqmptd reseq1d resmpt ax-mp
      cop cxp imaexg elimasn ffvelrnda syl5eqel sylan2b fmptd funmpt crn biimpi
      ccom rnfi opelrn con3i anim12i 3imtr4i ssid suppssr syl5eq sylan2 suppss2
      mptexg wf1o 2ndconst gsumf1o 1st2nd2 xp1st opeq1d fveq2d syl6eqr mpteq2ia
      c1st elsni ressn eqtri xp2nd adantl wfo fo2nd fof ssv oveq2 fmptco eqtr4d
      3eqtr4a syl5ibr expcom a2d findcard2s mpcom ) GKUDUPZUEZUFUGZAHGBUWLUHZUH
      ZUIUPZHEUWLHFBEUQZUJZUKZUWQFUQZGUPZULZUIUPZULZUIUPZUMZAUWKUFUGZUWMAGKTUNZ
      UWKUOURAHGBUAUQZUHZUHZUIUPZHEUXIUXCULZUIUPZUMZUSAHUTUIUPZUXPUMZUSAHGBUBUQ
      ZUHZUHZUIUPZHEUXRUXCULZUIUPZUMZUSAHGBUXRUCUQZUJZVAZUHZUHZUIUPZHEUYGUXCULZ
      UIUPZUMZUSAUXFUSUAUBUCUWLUXIUTUMZUXOUXQAUYNUXLUXPUXNUXPUYNUXKUTHUIUYNUXKG
      UTUHUTUYNUXJUTGUYNUXJBUTUHZUTUXIUTBVBBVCZVDVEGVCVDVFUYNUXMUTHUIUYNUXMEUTU
      XCULUTEUXIUTUXCVGEUXCVHVDVFVIVJUAUBVKZUXOUYDAUYQUXLUYAUXNUYCUYQUXKUXTHUIU
      YQUXJUXSGUXIUXRBVBVEVFUYQUXMUYBHUIEUXIUXRUXCVGVFVIVJUXIUYGUMZUXOUYMAUYRUX
      LUYJUXNUYLUYRUXKUYIHUIUYRUXJUYHGUXIUYGBVBVEVFUYRUXMUYKHUIEUXIUYGUXCVGVFVI
      VJUXIUWLUMZUXOUXFAUYSUXLUWPUXNUXEUYSUXKUWOHUIUYSUXJUWNGUXIUWLBVBVEVFUYSUX
      MUXDHUIEUXIUWLUXCVGVFVIVJAUXPVLUXRUFUGZUCUBVMVNZVOZAUYDUYMAVUBUYDUYMUSUYD
      UYMAVUBVOZUYAHGBUYFUHZUHZUIUPZHVPVQZUPZUYCVUFVUGUPZUMUYAUYCVUFVUGVRVUCUYJ
      VUHUYLVUIVUCUYJHUYIUXSUHZUIUPZHUYIVUDUHZUIUPZVUGUPVUHVUCUYHCUXSVUDVUGUYIH
      VSKLMVUGVTZAHWEUGVUBNWAZAUYHVSUGZVUBABIUGZVUPOBUYGIWBURWAAUYHCUYIWCZVUBAB
      CGWCZUYHBWDVURSBUYGWFBCUYHGWGWHWAVUCUYIKWIWJZUYIWKZUYIKUDUPZUFUGZAVVAVUBA
      GWKZVVAAVUSVVDSBCGWLURUYHGWMURWAVUCUXGVVBUWKWDZVVCAUXGVUBUXHWAAVVEVUBAGVS
      UGZKVSUGZVVEAVUSVUQVVFSOBCIGWNWOZKHWQVQVSMHWQWRWPZUYHGVSVSKWSWHWAUWKVVBWT
      WOAVUTVVAVVCVOXAZVUBAUYIVSUGZVVGVVJAVVFVVKVVHGUYHVSWBURVVIUYIVSVSKXBWHWAX
      CVUCBUXRUYFXHZUHUYOUXSVUDXHUTVUCVVLUTBVUCVUAVVLUTUMAUYTVUAXDZUXRUYEXEXFVE
      BUXRUYFXGUYPXIUYHUXSVUDVAUMVUCBUXRUYFXJXKXLVUKUYAVUMVUFVUGVUJUXTHUIUXRUYG
      WDUXSUYHWDVUJUXTUMUXRUYFXMUXRUYGBXNGUXSUYHXOXPXSVULVUEHUIUYFUYGWDVUDUYHWD
      VULVUEUMUYFUXRXQUYFUYGBXNGVUDUYHXOXPXSXRVDVUCUYLUYCHFBUYFUKZUYEUWTGUPZULZ
      UIUPZVUGUPVUIVUCUXRCVUGEHUYEVSUXCVVQLVUNVUOAUYTVUAXTAUXCCUGZVUBEUBVMABCDE
      FGHIJKLMNOPQRSTYAZYBUYEVSUGVUCUCYCXKVVMAVVQCUGZVUBAVVRUSAVVTUSEUCEUCVKZVV
      RVVTAVWAUXCVVQCVWAUXBVVPHUIVWAFUWSUXAVVNVVOVWAUWRUYFBUWQUYEYDZYEUWQUYEUWT
      GVRYIVFZYFVJVVSYGWAVWCYHVUCVVQVUFUYCVUGAVVQVUFUMZVUBAUXCHGBUWRUHZUHZUIUPZ
      UMZUSAVWDUSEUCVWAVWHVWDAVWAUXCVVQVWGVUFVWCVWAVWFVUEHUIVWAVWEVUDGVWAUWRUYF
      BVWBVEVEVFVIVJAUXCHUXBYJUWRUWSUUAZUHZUUKZUIUPVWGAUWSCVWIUXBHVWJVSKLMNAVUQ
      UWSVSUGZOBUWRIUUBURZAFUWSUXACUXBUWTUWSUGZAUWQUWTYTZBUGZUXACUGBUWQUWTEYCZF
      YCZUUCZAVWPVOUXAVWOGVQZCUWQUWTGYKZABCVWOGSUUDUUEUUFUXBVTUUGAUXBKWIWJZUXBW
      KZUXBKUDUPZUFUGZVXCAFUWSUXAUUHXKAUWKUUIZUFUGZVXDVXFWDVXEAUXGVXGUXHUWKUULU
      RAUWSUXAFVSVXFKUWTUWSVXFYLUGZAVWOBUWKYLUGZUXAKUMVWNUWTVXFUGZVNZVOVWPVWOUW
      KUGZVNZVOVXHVXIVWNVWPVXKVXMVWNVWPVWSUUJVXLVXJUWQUWTUWKVWQVWRUUMUUNUUOUWTU
      WSVXFYMVWOBUWKYMUUPAVXIVOUXAVWTKVXAABCVSGIUWKVWOKSUWKUWKWDAUWKUUQXKOVVGAV
      VIXKUURUUSUUTVWMUVAVXFVXDWTWOAUXBVSUGZVVGVXBVXCVXEVOXAAVWLVXNVWMFUWSUXAVS
      UVBURVVIUXBVSVSKXBWHXCUWQVSUGVWIUWSVWJUVCAVWQUWQUWSVSUVDYNUVEAVWFVWKHUIAU
      AVWIUXIGVQZULZUAVWIUWQUXIYJVQZGUPZULVWFVWKUAVWIVXOVXRUXIVWIUGZVXOUWQVXQYT
      ZGVQVXRVXSUXIVXTGVXSUXIUXIUVLVQZVXQYTVXTUXIUWRUWSUVFVXSVYAUWQVXQVXSVYAUWR
      UGVYAUWQUMUXIUWRUWSUVGVYAUWQUVMURUVHYOUVIUWQVXQGYKUVJUVKAVWFUABVXOULZVWEU
      HZVXPAGVYBVWEAUABCGSYPYQVYCUAVWEVXOULZVXPVWEBWDVYCVYDUMBUWRWFUABVWEVXOYRY
      SVWEVWIUMVYDVXPUMBUWQUVNUAVWEVWIVXOVGYSUVOVDAUAFVWIUWSVXQUXAVXRVWJUXBVXSV
      XQUWSUGAUXIUWRUWSUVPUVQAVWJUAVSVXQULZVWIUHZUAVWIVXQULZAYJVYEVWIAUAVSVSYJV
      SVSYJUVRVSVSYJWCAUVSVSVSYJUVTYNYPYQVWIVSWDVYFVYGUMVWIUWAUAVSVWIVXQYRYSVDA
      UXBVLUWTVXQUWQGUWBUWCUWEVFUWDYGWAVFYOVIUWFUWGUWHUWIUWJ $.

    $( Write a sum over a two-dimensional region as a double sum.  (Contributed
       by Mario Carneiro, 28-Dec-2014.)  (Revised by AV, 8-Jun-2019.) $)
    gsum2d $p |- ( ph -> ( G gsum F ) = ( G gsum
      ( j e. D |-> ( G gsum ( k e. ( A " { j } ) |-> ( j F k ) ) ) ) ) ) $=
      ( csupp co cdm cres cgsu cv csn cima cmpt gsum2dlem2 cvv cxp cin suppssdm
      wf wceq fdm syl syl5sseq wrel wss relss sylc relssdmrn xpss2 ax-mp syl6ss
      crn ssv ssind df-res syl6sseqr gsumres dmss sstrd resmptd wcel gsum2dlem1
      oveq2d adantr eqid fmptd cdif wa cop vex elimasn biimpi ad2antll ad2antrl
      wn eldifn opeldm nsyl eldifd cfv ssid a1i c0g fvex eqeltri suppssr syl5eq
      df-ov syldan anassrs mpteq2dva cmnd ccmn cmnmnd imaexg gsumz eqtrd cfsupp
      syl2anc suppss2 wbr wfun cfn funmpt fsuppimpd dmfi ssfi wb mptexg isfsupp
      mpbir2and eqtr3d 3eqtr3d ) AHGBGKUAUBZUCZUDZUDUEUBHEYKHFBEUFZUGZUHZYMFUFZ
      GUBZUIZUEUBZUIZUEUBZHGUEUBHEDYSUIZUEUBZABCDEFGHIJKLMNOPQRSTUJABCGHIYLKLMN
      OSAYJBYKUKULZUMYLAYJBUUDAGUCZYJBGKUNABCGUOUUEBUPSBCGUQURUSZAYJUTZYJUUDVAA
      YJBVAZBUTUUGUUFPYJBVBVCUUGYJYKYJVHZULZUUDYJVDUUIUKVAUUJUUDVAUUIVIUUIUKYKV
      EVFVGURVJBYKVKVLTVMAHUUBYKUDZUEUBUUAUUCAUUKYTHUEAEDYKYSAYKBUCZDAUUHYKUULV
      AUUFYJBVNURRVOVPVSADCUUBHJYKKLMNQAEDYSCUUBAYSCVQYMDVQABCDEFGHIJKLMNOPQRST
      VRVTUUBWAWBADYSEJYKKAYMDYKWCVQZWDZYSHFYOKUIZUEUBZKUUNYRUUOHUEUUNFYOYQKAUU
      MYPYOVQZYQKUPZAUUMUUQWDZYMYPWEZBYJWCVQZUURAUUSWDZUUTBYJUUQUUTBVQZAUUMUUQU
      VCBYMYPEWFZFWFZWGWHWIUVBYMYKVQZUUTYJVQUUMUVFWKAUUQYMDYKWLWJYMYPYJUVDUVEWM
      WNWOAUVAWDYQUUTGWPKYMYPGXDABCUKGIYJUUTKSYJYJVAAYJWQWROKUKVQZAKHWSWPUKMHWS
      WTXAWRZXBXCXEXFXGVSAUUPKUPZUUMAHXHVQZYOUKVQZUVIAHXIVQUVJNHXJURABIVQUVKOBY
      NIXKURYOFHUKKMXLXOVTXMQXPZAUUBKXNXQZUUBXRZUUBKUAUBZXSVQZUVNAEDYSXTWRAYKXS
      VQZUVOYKVAUVPAYJXSVQUVQAGKTYAYJYBURUVLYKUVOYCXOAUUBUKVQZUVGUVMUVNUVPWDYDA
      DJVQUVRQEDYSJYEURUVHUUBUKUKKYFXOYGVMYHYI $.
  $}

  ${
    $d j k m n B $.  $d j k x y z D $.  $d j x y z E $.  $d j k m n x y z ph $.
    $d j k m n x y z A $.  $d j k m n x G $.  $d j k z U $.  $d m n x y z X $.
    $d k m n x y z C $.  $d j V $.  $d j k m n x z .0. $.
    gsum2d2.b $e |- B = ( Base ` G ) $.
    gsum2d2.z $e |- .0. = ( 0g ` G ) $.
    gsum2d2.g $e |- ( ph -> G e. CMnd ) $.
    gsum2d2.a $e |- ( ph -> A e. V ) $.
    gsum2d2.r $e |- ( ( ph /\ j e. A ) -> C e. W ) $.
    gsum2d2.f $e |- ( ( ph /\ ( j e. A /\ k e. C ) ) -> X e. B ) $.
    gsum2d2.u $e |- ( ph -> U e. Fin ) $.
    gsum2d2.n $e |- ( ( ph /\ ( ( j e. A /\ k e. C ) /\ -. j U k ) )
                      -> X = .0. ) $.
    $( Lemma for ~ gsum2d2 : show the function is finitely supported.
       (Contributed by Mario Carneiro, 28-Dec-2014.)  (Revised by AV,
       9-Jun-2019.) $)
    gsum2d2lem $p |- ( ph -> ( j e. A , k e. C |-> X ) finSupp .0. ) $=
      ( vz cmpt2 cfsupp wbr wfun csupp co cfn wcel eqid mpt2fun a1i wss csn cxp
      cv ciun wral wf ralrimivva fmpt2x sylib cdif cop wceq wex cfv relxp rgenw
      wrel reliun mpbir eldifi adantl elrel sylancr nfiu1 nfcv nfdif nfcri nfan
      wa nfmpt21 nffv nfeq1 nfmpt22 simprr fveq2d df-ov simprl eqeltrrd eldifad
      opeliunxp simpld simprd syldan ovmpt4g syl3anc syl5eqr wn eldifn ad2antrl
      nfv eleq1d df-br syl6bbr mtbid jca 3eqtrd expr exlimd suppss ssfi syl2anc
      mpd cvv wb ralrimiva mpt2exxg c0g fvex eqeltri isfsupp mpbir2and ) AFGBDK
      UBZLUCUDZYEUEZYELUFUGZUHUIZYGAFGBDKYEYEUJZUKULAEUHUIYHEUMYISAFBFUPZUNZDUO
      ZUQZCUAYEELAKCUIZGDURFBURYNCYEUSAYOFGBDRUTFGBDKCYEYJVAVBAUAUPZYNEVCZUIZWB
      ZYPYKGUPZVDZVEZGVFZFVFZYPYEVGZLVEZYSYNVJZYPYNUIZUUDUUGYMVJZFBURUUIFBYLDVH
      VIFBYMVKVLYRUUHAYPYNEVMVNFGYPYNVOVPYSUUCUUFFAYRFAFXCFUAYQFYNEFBYMVQFEVRVS
      VTWAFUUELFYPYEFGBDKWCFYPVRWDWEYSUUBUUFGYSGXCGUUELGYPYEFGBDKWFGYPVRWDWEAYR
      UUBUUFAYRUUBWBZWBZUUEUUAYEVGZKLUUKYPUUAYEAYRUUBWGZWHUUKUULYKYTYEUGZKYKYTY
      EWIUUKYKBUIZYTDUIZYOUUNKVEUUKUUOUUPUUKUUAYNUIUUOUUPWBZUUKUUAYNEUUKYPUUAYQ
      UUMAYRUUBWJWKWLFBDYTWMVBZWNUUKUUOUUPUURWOAUUJUUQYOUURRWPFGBDKYECYJWQWRWSA
      UUJUUQYKYTEUDZWTZWBKLVEUUKUUQUUTUURUUKYPEUIZUUSYRUVAWTAUUBYPYNEXAXBUUKUVA
      UUAEUIUUSUUKYPUUAEUUMXDYKYTEXEXFXGXHTWPXIXJXKXKXOXLEYHXMXNAYEXPUIZLXPUIZY
      FYGYIWBXQABIUIDJUIZFBURUVBPAUVDFBQXRFGBDKIJYEYJXSXNUVCALHXTVGXPNHXTYAYBUL
      YEXPXPLYCXNYD $.

    $( Write a group sum over a two-dimensional region as a double sum.  (Note
       that ` C ( j ) ` is a function of ` j ` .)  (Contributed by Mario
       Carneiro, 28-Dec-2014.) $)
    gsum2d2 $p |- ( ph -> ( G gsum ( j e. A , k e. C |-> X ) ) =
      ( G gsum ( j e. A |-> ( G gsum ( k e. C |-> X ) ) ) ) ) $=
      ( vm vn vx vy cmpt2 cgsu co cv csn cxp ciun cima cmpt cvv wcel wral xpexg
      wa snex sylancr ralrimiva iunexg syl2anc relxp rgenw reliun mpbir a1i cdm
      wrel cop wex vex eldm2 eliunxp opth1 ad2antrl simprrl eqeltrd ex exlimdvv
      wceq syl5bi exlimdv ssrdv wf ralrimivva eqid fmpt2x sylib gsum2d2lem nfcv
      gsum2d nfiu1 nfima nfmpt21 nfov nfmpt sneq imaeq2d oveq1 mpteq12dv oveq2d
      cbvmpt elimasn opeliunxp bitri eqrdv mpteq1d nfmpt22 syl6eq adantl simprl
      baib oveq2 simprr ovmpt4g syl3anc anassrs mpteq2dva eqtrd syl5eq ) AHFGBD
      KUEZUFUGHUABHUBFBFUHZUIZDUJZUKZUAUHZUIZULZYHUBUHZYCUGZUMZUFUGZUMZUFUGHFBH
      GDKUMZUFUGZUMZUFUGAYGCBUAUBYCHUNILMNOABIUOYFUNUOZFBUPYGUNUOPAYSFBAYDBUOZU
      RZYEUNUODJUOYSYDUSQYEDUNJUQUTVAFBYFIUNVBVCYGVJZAUUBYFVJZFBUPUUCFBYEDVDVEF
      BYFVFVGVHPAUCYGVIZBUCUHZUUDUOUUEUDUHZVKZYGUOZUDVLAUUEBUOZUDUUEYGUCVMZVNAU
      UHUUIUDUUHUUGYDGUHZVKZWBZYTUUKDUOZURZURZGVLFVLAUUIFGBDUUGVOAUUPUUIFGAUUPU
      UIAUUPURUUEYDBUUMUUEYDWBAUUOUUEUUFYDUUKUUJUDVMVPVQAUUMYTUUNVRVSVTWAWCWDWC
      WEAKCUOZGDUPFBUPYGCYCWFAUUQFGBDRWGFGBDKCYCYCWHZWIWJABCDEFGHIJKLMNOPQRSTWK
      WMAYOYRHUFAYOFBHUBYGYEULZYDYKYCUGZUMZUFUGZUMYRUAFBYNUVBFHYMUFFHWLFUFWLFUB
      YJYLFYGYIFBYFWNFYIWLWOFYHYKYCFYHWLFGBDKWPFYKWLWQWRWQUAUVBWLYHYDWBZYMUVAHU
      FUVCUBYJYLUUSUUTUVCYIYEYGYHYDWSWTYHYDYKYCXAXBXCXDAFBUVBYQUUAUVAYPHUFUUAUV
      AGDYDUUKYCUGZUMZYPYTUVAUVEWBAYTUVAUBDUUTUMUVEYTUBUUSDUUTYTGUUSDUUKUUSUOZY
      TUUNUVFUULYGUOUUOYGYDUUKFVMGVMXEFBDUUKXFXGXNXHXIUBGDUUTUVDGYDYKYCGYDWLFGB
      DKXJGYKWLWQUBUVDWLYKUUKYDYCXOXDXKXLUUAGDUVDKAYTUUNUVDKWBZAUUOURYTUUNUUQUV
      GAYTUUNXMAYTUUNXPRFGBDKYCCUURXQXRXSXTYAXCXTYBXCYA $.

    gsumcom2.d $e |- ( ph -> D e. Y ) $.
    gsumcom2.c $e |- ( ph ->
      ( ( j e. A /\ k e. C ) <-> ( k e. D /\ j e. E ) ) ) $.
    $( Two-dimensional commutation of a group sum.  Note that while ` A ` and
       ` D ` are constants w.r.t. ` j , k ` , ` C ( j ) ` and ` E ( k ) ` are
       not.  (Contributed by Mario Carneiro, 28-Dec-2014.) $)
    gsumcom2 $p |- ( ph -> ( G gsum ( j e. A , k e. C |-> X ) ) =
      ( G gsum ( k e. D , j e. E |-> X ) ) ) $=
      ( vz vx vy cmpt2 cgsu co cv csn cxp ciun ccnv cuni cmpt ccom wcel wral wa
      cvv snex xpexg sylancr ralrimiva iunexg syl2anc wf ralrimivva eqid fmpt2x
      sylib gsum2d2lem wf1o wrel relxp rgenw reliun mpbir cnvf1o wceq wb relcnv
      ax-mp cop nfv nfiu1 nfcnv nfel2 nfbi nfim weq opeq2 eleq1d bibi12d imbi2d
      wi opeq1 opeliunxp 3bitr4g vex opelcnv syl6bbr eqrelrdv f1oeq3 syl mpbiri
      chvar gsumf1o cfv csb cnveqd unieqd opswap syl6eq fveq2d syl6eqr mpt2mptx
      sneq nfcv nfcsb1v nfxp csbeq1a xpeq12d cbviun mpteq1 nfmpt22 nfov nfmpt21
      df-ov oveq2 oveq1 sylan9eq cbvmpt2x 3eqtr4i f1of fmpt sylibr eqidd w3a ex
      feqmptd fveq2 fmptcof ovmpt4g 3expia sylcom sylbird 3impib eqcomd 3eqtr4a
      mpt2eq3dva oveq2d eqtrd ) AJGHBDMUIZUJUKJUUQUFHEHULZUMZIUNZUOZUFULZUMZUPZ
      UQZURZUSZUJUKJHGEIMUIZUJUKAGBGULZUMZDUNZUOZCUVAUUQJUVFVCOPQRABKUTUVKVCUTZ
      GBVAUVLVCUTSAUVMGBAUVIBUTZVBUVJVCUTDLUTUVMUVIVDTUVJDVCLVEVFVGGBUVKKVCVHVI
      AMCUTZHDVAGBVAUVLCUUQVJAUVOGHBDUAVKGHBDMCUUQUUQVLZVMVNZABCDFGHJKLMOPQRSTU
      AUBUCVOAUVAUVLUVFVPZUVAUVAUPZUVFVPZUVAVQZUVTUWAUUTVQZHEVAUWBHEUUSIVRVSHEU
      UTVTWAUFUVAWBWFAUVLUVSWCUVRUVTWDAUGUHUVLUVSUVLVQUVKVQZGBVAUWCGBUVJDVRVSGB
      UVKVTWAUVAWEAUGULZUURWGZUVLUTZUWEUVSUTZWDZWSZAUWDUHULZWGZUVLUTZUWKUVSUTZW
      DZWSHUHAUWNHAHWHUWLUWMHUWLHWHHUWKUVSHUVAHEUUTWIWJWKWLWMHUHWNZUWHUWNAUWOUW
      FUWLUWGUWMUWOUWEUWKUVLUURUWJUWDWOZWPUWOUWEUWKUVSUWPWPWQWRAUVIUURWGZUVLUTZ
      UWQUVSUTZWDZWSUWIGUGAUWHGAGWHUWFUWGGGUWEUVLGBUVKWIWKUWGGWHWLWMGUGWNZUWTUW
      HAUXAUWRUWFUWSUWGUXAUWQUWEUVLUVIUWDUURWTZWPUXAUWQUWEUVSUXBWPWQWRAUWRUURUV
      IWGUVAUTZUWSAUVNUURDUTZVBZUUREUTZUVIIUTZVBZUWRUXCUEGBDUURXAHEIUVIXAXBUVIU
      URUVAGXCHXCXDXEXJXJXFUVLUVSUVAUVFXGXHXIZXKAUVGUVHJUJAUFUVAUVEUUQXLZURZHGE
      IUVIUURUUQUKZUIZUVGUVHUFUGEUWDUMZHUWDIXMZUNZUOZUXJURZUGUHEUXOUWJUWDUUQUKZ
      UIUXKUXMUGUHUFEUXOUXJUXSUVBUWKWCZUXJUWJUWDWGZUUQXLUXSUXTUVEUYAUUQUXTUVEUW
      KUMZUPZUQUYAUXTUVDUYCUXTUVCUYBUVBUWKYAXNXOUWDUWJXPXQXRUWJUWDUUQYLXSXTUVAU
      XQWCUXKUXRWCHUGEUUTUXPUGUUTYBHUXNUXOHUXNYBHUWDIYCZYDHUGWNZUUSUXNIUXOUURUW
      DYAHUWDIYEZYFYGUFUVAUXQUXJYHWFHGUGUHEIUXLUXOUXSUGIYBUYDUGUXLYBUHUXLYBHUWJ
      UWDUUQHUWJYBGHBDMYIHUWDYBYJGUWJUWDUUQGUWJYBGHBDMYKGUWDYBYJUYFUYEGUHWNUXLU
      VIUWDUUQUKUXSUURUWDUVIUUQYMUVIUWJUWDUUQYNYOYPYQAUFUGUVAUVLUVEUWDUUQXLUXJU
      VFUUQAUVAUVLUVFVJZUVEUVLUTUFUVAVAAUVRUYGUXIUVAUVLUVFYRXHUFUVAUVLUVEUVFUVF
      VLYSYTAUVFUUAAUGUVLCUUQUVQUUDUWDUVEUUQUUEUUFAHGEIMUXLAUXFUXGUUBUXLMAUXFUX
      GUXLMWCZAUXHUXEUYHUEAUXEUVOUYHAUXEUVOUAUUCUVNUXDUVOUYHGHBDMUUQCUVPUUGUUHU
      UIUUJUUKUULUUNUUMUUOUUP $.
  $}

  ${
    $d j k .0. $.  $d j k G $.  $d j k ph $.  $d j k U $.  $d j k A $.
    $d j k B $.  $d j k C $.  $d j k F $.  $d j V $.
    gsumxp.b $e |- B = ( Base ` G ) $.
    gsumxp.z $e |- .0. = ( 0g ` G ) $.
    gsumxp.g $e |- ( ph -> G e. CMnd ) $.
    gsumxp.a $e |- ( ph -> A e. V ) $.
    gsumxp.r $e |- ( ph -> C e. W ) $.
    ${
      gsumxp.f $e |- ( ph -> F : ( A X. C ) --> B ) $.
      gsumxp.w $e |- ( ph -> F finSupp .0. ) $.
      $( Write a group sum over a cartesian product as a double sum.
         (Contributed by Mario Carneiro, 28-Dec-2014.)  (Revised by AV,
         9-Jun-2019.) $)
      gsumxp $p |- ( ph -> ( G gsum F ) = ( G gsum
        ( j e. A |-> ( G gsum ( k e. C |-> ( j F k ) ) ) ) ) ) $=
        ( cgsu co cxp cv csn cima cmpt cvv wcel xpexg syl2anc relxp a1i cdm wss
        wrel dmxpss gsum2d wa cres crn df-ima cin df-res inxp eqtri simpr snssd
        wceq sseqin2 sylib inv1 xpeq12d syl5eq rneqd c0 wne vex snnz rnxp ax-mp
        syl6eq mpteq1d oveq2d mpteq2dva eqtrd ) AHGSTHEBHFBDUAZEUBZUCZUDZWFFUBG
        TZUEZSTZUEZSTHEBHFDWIUEZSTZUEZSTAWECBEFGHUFIKLMNABIUGDJUGWEUFUGOPBDIJUH
        UIWEUNABDUJUKOWEULBUMABDUOUKQRUPAWLWOHSAEBWKWNAWFBUGZUQZWJWMHSWQFWHDWIW
        QWHWEWGURZUSZDWEWGUTWQWSWGDUAZUSZDWQWRWTWQWRBWGVAZDUFVAZUAZWTWRWEWGUFUA
        VAXDWEWGVBBDWGUFVCVDWQXBWGXCDWQWGBUMXBWGVGWQWFBAWPVEVFWGBVHVIXCDVGWQDVJ
        UKVKVLVMWGVNVOXADVGWFEVPVQWGDVRVSVTVLWAWBWCWBWD $.
    $}

    gsumcom.f $e |- ( ( ph /\ ( j e. A /\ k e. C ) ) -> X e. B ) $.
    gsumcom.u $e |- ( ph -> U e. Fin ) $.
    gsumcom.n $e |- ( ( ph /\ ( ( j e. A /\ k e. C ) /\ -. j U k ) )
                      -> X = .0. ) $.
    $( Commute the arguments of a double sum.  (Contributed by Mario Carneiro,
       28-Dec-2014.) $)
    gsumcom $p |- ( ph -> ( G gsum ( j e. A , k e. C |-> X ) ) =
      ( G gsum ( k e. C , j e. A |-> X ) ) ) $=
      ( wcel cv adantr wa wb ancom a1i gsumcom2 ) ABCDDEFGBHIJKJLMNOPADJUAFUBBU
      AZQUCRSTQUIGUBDUAZUDUJUIUDUEAUIUJUFUGUH $.
  $}

  ${
    $d a x y I $.  $d a x y J $.  $d a R $.  $d a U $.  $d a x y Y $.
    $d a x y ph $.
    prdsgsum.y $e |- Y = ( S Xs_ ( x e. I |-> R ) ) $.
    prdsgsum.b $e |- B = ( Base ` R ) $.
    prdsgsum.z $e |- .0. = ( 0g ` Y ) $.
    prdsgsum.i $e |- ( ph -> I e. V ) $.
    prdsgsum.j $e |- ( ph -> J e. W ) $.
    prdsgsum.s $e |- ( ph -> S e. X ) $.
    prdsgsum.r $e |- ( ( ph /\ x e. I ) -> R e. CMnd ) $.
    prdsgsum.f $e |- ( ( ph /\ ( x e. I /\ y e. J ) ) -> U e. B ) $.
    prdsgsum.w $e |- ( ph -> ( y e. J |-> ( x e. I |-> U ) ) finSupp .0. ) $.
    $( Finite commutative sums in a product structure are taken componentwise.
       (Contributed by Stefan O'Rear, 1-Feb-2015.)  (Revised by Mario Carneiro,
       3-Jul-2015.)  (Revised by AV, 9-Jun-2019.) $)
    prdsgsum $p |- ( ph -> ( Y gsum ( y e. J |-> ( x e. I |-> U ) ) ) =
        ( x e. I |-> ( R gsum ( y e. J |-> U ) ) ) ) $=
      ( va cmpt cgsu co cv cfv wfn wceq cbs eqid ccmn wf fmptd ffn syl prdscmnd
      wcel wa wral anassrs ralrimiva prdsbasmpt2 adantr mpbird gsumcl prdsbasfn
      an32s nfcv nfmpt1 nfmpt nfov dffn5f sylib fvmpt2 syl2anc mpteq2dva oveq2d
      wb simpr cmnd cmnmnd cmhm prdspjmhm eleqtrd adantlr cfsupp fveq1 gsummhm2
      wbr eqtr3d eqtr4d ) AMCIBHGUEZUEZUFUGZBHBUHZWQUIZUEZBHECIGUEZUFUGZUEAWQHU
      JWQWTUKAMULUIZBHEUEZFWQHLJMOXCUMZTRAHUNXDUOXDHUJABHEUNXDUAXDUMZUPZHUNXDUQ
      URAIXCWPMKNXEQAXDFHLJMORTXGUSZSACIWOXCWPACUHIUTZVAZWOXCUTZGDUTZBHVBZXJXLB
      HAWRHUTZXIXLAXNXIXLUBVCZVJVDAXKXMWAXIABXCEFGHDLJUNMOXETRAEUNUTZBHUAVDPVEV
      FVGZWPUMUPUCVHVIBHWQBMWPUFBMVKBUFVKBCIWOBIVKBHGVLVMVNVOVPABHXBWSAXNVAZECI
      WRWOUIZUEZUFUGXBWSXRXTXAEUFXRCIXSGXRXIVAXNXLXSGUKXRXNXIAXNWBZVFXOBHGDWOWO
      UMVQVRVSVTXRUDIXCWRUDUHZUIZXSCWSMEKWONXEQAMUNUTXNXHVFXRXPEWCUTUAEWDURZAIK
      UTXNSVFXRUDXCYCUEMWRXDUIZWEUGMEWEUGXRUDWRXCXDFHJLMOXEAHJUTXNRVFAFLUTXNTVF
      AHWCXDUOXNABHEWCXDYDXFUPVFYAWFXRYEEMWEXRXNXPYEEUKYAUABHEUNXDXFVQVRVTWGAXI
      XKXNXQWHAWPNWIWLXNUCVFWRYBWOWJWRYBWQWJWKWMVSWN $.
  $}

  ${
    $d x y B $.  $d x y I $.  $d x y ph $.  $d x y .0. $.  $d x y J $.
    $d x y R $.  $d x y Y $.
    pwsgsum.y $e |- Y = ( R ^s I ) $.
    pwsgsum.b $e |- B = ( Base ` R ) $.
    pwsgsum.z $e |- .0. = ( 0g ` Y ) $.
    pwsgsum.i $e |- ( ph -> I e. V ) $.
    pwsgsum.j $e |- ( ph -> J e. W ) $.
    pwsgsum.r $e |- ( ph -> R e. CMnd ) $.
    pwsgsum.f $e |- ( ( ph /\ ( x e. I /\ y e. J ) ) -> U e. B ) $.
    pwsgsum.w $e |- ( ph -> ( y e. J |-> ( x e. I |-> U ) ) finSupp .0. ) $.
    $( Finite commutative sums in a power structure are taken componentwise.
       (Contributed by Stefan O'Rear, 1-Feb-2015.)  (Revised by Mario Carneiro,
       3-Jul-2015.)  (Revised by AV, 9-Jun-2019.) $)
    pwsgsum $p |- ( ph -> ( Y gsum ( y e. J |-> ( x e. I |-> U ) ) ) =
       ( x e. I |-> ( R gsum ( y e. J |-> U ) ) ) ) $=
      ( cmpt cgsu co csca cfv csn cxp ccmn wcel wceq eqid pwsval syl2anc oveq1d
      cprds cvv c0g fconstmpt oveq2i fvexd adantr cfsupp fveq2d syl5eq prdsgsum
      cv breqtrd eqtrd ) AKCHBGFUAUAZUBUCEUDUEZGEUFUGZUOUCZVIUBUCBGECHFUAUBUCUA
      AKVLVIUBAEUHUIZGIUIKVLUJRPEVJGUHIKMVJUKULUMZUNABCDEVJFGHIJUPVLVLUQUEZVKBG
      EUAVJUOBGEURUSNVOUKPQAEUDUTAVMBVFGUIRVASAVILVOVBTALKUQUEVOOAKVLUQVNVCVDVG
      VEVH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Group sums over (ranges of) integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    nn0gsumfz.b $e |- B = ( Base ` G ) $.
    nn0gsumfz.0 $e |- .0. = ( 0g ` G ) $.
    nn0gsumfz.g $e |- ( ph -> G e. CMnd ) $.
    nn0gsumfz.f $e |- ( ph -> F e. ( B ^m NN0 ) ) $.
    ${
      $d F x $.  $d S x $.  $d .0. x $.
      fsfnn0gsumfsffz.s $e |- ( ph -> S e. NN0 ) $.
      fsfnn0gsumfsffz.h $e |- H = ( F |` ( 0 ... S ) ) $.
      $( Replacing a finitely supported function over the nonnegative integers
         by a function over a finite set of sequential integers in a finite
         group sum.  (Contributed by AV, 9-Oct-2019.) $)
      fsfnn0gsumfsffz $p |- ( ph -> ( A. x e. NN0 ( S < x -> ( F ` x ) = .0. )
                                   -> ( G gsum F ) = ( G gsum H ) ) ) $=
        ( cn0 cgsu co cvv wcel adantr cv clt wbr cfv wceq wi wral wa cc0 oveq2i
        cfz cres ccmn nn0ex a1i cmap elmapi syl c0g fvex eqeltri simpr suppssfz
        csupp wss cfsupp wfun w3a cfn elmapfun 3jca fzfid suppssfifsupp syl2anc
        wf anim1i syldan gsumres syl5req ex ) ADBUAZUBUCWAEUDHUEUFBOUGZFEPQZFGP
        QZUEAWBUHZWDFEUIDUKQZULZPQWCGWGFPNUJWEOCEFRWFHIJAFUMSWBKTORSWEUNUOAOCEV
        OZWBAECOUPQZSZWHLECOUQURTWEBCDERHHRSZWEHFUSUDRJFUSUTVAZUOAWJWBLTADOSWBM
        TAWBVBVCZAWBEHVDQWFVEZEHVFUCZWMAWNUHWJEVGZWKVHZWFVISZWNUHWOAWQWNAWJWPWK
        LAWJWPLECOVJURWKAWLUOVKTAWRWNAUIDVLVPWFEWIRHVMVNVQVRVSVT $.
    $}

    $d B f $.  $d F f s x $.  $d G f $.  $d .0. f s x $.  $d ph f s $.
    nn0gsumfz.y $e |- ( ph -> F finSupp .0. ) $.
    $( Replacing a finitely supported function over the nonnegative integers by
       a function over a finite set of sequential integers in a finite group
       sum.  (Contributed by AV, 9-Oct-2019.) $)
    nn0gsumfz $p |- ( ph -> E. s e. NN0 E. f e. ( B ^m ( 0 ... s ) )
                             ( f = ( F |` ( 0 ... s ) )
                               /\ A. x e. NN0 ( s < x -> ( F ` x ) = .0. )
                               /\ ( G gsum F ) = ( G gsum f ) ) ) $=
      ( cv wceq cn0 wrex co cgsu wcel clt wbr cfv wi wral cc0 cfz cres w3a cmap
      cvv wa cfsupp c0g fvex eqeltri jctir fsuppmapnn0ub sylc eqidd ccmn adantr
      simpr eqid fsfnn0gsumfsffz imp fz0ssnn0 elmapssres sylancl wb eqeq1 oveq2
      wss eqeq2d 3anbi13d adantl rspcedv mp3and ex reximdva mpd ) AHNZBNZUAUBWC
      EUCGOUDBPUEZHPQZDNZEUFWBUGRZUHZOZWDFESRZFWFSRZOZUIZDCWGUJRZQZHPQAECPUJRTZ
      GUKTZULEGUMUBWEAWPWQLGFUNUCUKJFUNUOUPUQMBCHEUKGURUSAWDWOHPAWBPTZULZWDWOWS
      WDULZWHWHOZWDWJFWHSRZOZWOWTWHUTWSWDVCWSWDXCWSBCWBEFWHGIJAFVATWRKVBAWPWRLV
      BZAWRVCWHVDVEVFWTWMXAWDXCUIZDWHWNWTWPWGPVMWHWNTWSWPWDXDVBWBVGECPWGVHVIWIW
      MXEVJWTWIWIXAWLXCWDWFWHWHVKWIWKXBWJWFWHFSVLVNVOVPVQVRVSVTWA $.

    $( Replacing a finitely supported function over the nonnegative integers by
       a function over a finite set of sequential integers in a finite group
       sum.  (Contributed by AV, 9-Oct-2019.) $)
    nn0gsumfz0 $p |- ( ph -> E. s e. NN0 E. f e. ( B ^m ( 0 ... s ) )
                             ( G gsum F ) = ( G gsum f ) ) $=
      ( vx cv co wceq cn0 cgsu wrex reximi cc0 cfz cres clt wbr cfv wi wral w3a
      cmap nn0gsumfz simp3 syl ) ACNZDUAGNZUBOZUCPZUOMNZUDUEURDUFFPUGMQUHZEDROE
      UNROPZUIZCBUPUJOZSZGQSUTCVBSZGQSAMBCDEFGHIJKLUKVCVDGQVAUTCVBUQUSUTULTTUM
      $.
  $}

  ${
    $d B k $.  $d C x $.  $d S k x $.  $d .0. k x $.  $d ph x $.
    gsummptnn0fz.k $e |- F/ k ph $.
    gsummptnn0fz.b $e |- B = ( Base ` G ) $.
    gsummptnn0fz.0 $e |- .0. = ( 0g ` G ) $.
    gsummptnn0fz.g $e |- ( ph -> G e. CMnd ) $.
    gsummptnn0fz.f $e |- ( ph -> A. k e. NN0 C e. B ) $.
    gsummptnn0fz.s $e |- ( ph -> S e. NN0 ) $.
    gsummptnn0fz.u $e |- ( ph -> A. k e. NN0 ( S < k -> C = .0. ) ) $.
    $( A final group sum over a function over the nonnegative integers (given
       as mapping) is equal to a final group sum over a finite interval of
       nonnegative integers.  (Contributed by AV, 10-Oct-2019.) $)
    gsummptnn0fz $p |- ( ph -> ( G gsum ( k e. NN0 |-> C ) )
                               = ( G gsum ( k e. ( 0 ... S ) |-> C ) ) ) $=
      ( vx cn0 wceq wcel wa cvv cv clt wbr cmpt cfv wi wral cgsu co cc0 cfz csb
      nfcsb1v nfeq1 nfim breq2 csbeq1a eqeq1d imbi12d cbvral sylib simpr anim2i
      nfv ancoms rspcsbela syl jca adantr eqid fvmpts eqtrd imim2d ralimdva mpd
      ex cmap wf fmpt cbs fvex eqeltri nn0ex pm3.2i elmapg mp1i mpbird cres wss
      wb fz0ssnn0 resmpt ax-mp eqcomi fsfnn0gsumfsffz ) ADOUAZUBUCZWPEPCUDZUEZG
      QZUFZOPUGZFWRUHUIFEUJDUKUIZCUDZUHUIQAWQEWPCULZGQZUFZOPUGZXBADEUAZUBUCZCGQ
      ZUFZEPUGXHNXLXGEOPXLOVDWQXFEWQEVDEXEGEWPCUMUNUOXIWPQZXJWQXKXFXIWPDUBUPXMC
      XEGEWPCUQURUSUTVAAXGXAOPAWPPRZSZXFWTWQXOXFWTXOXFSZWSXEGXPXNXEBRZSZWSXEQXO
      XRXFXOXNXQAXNVBXOXNCBREPUGZSZXQXNAXTAXSXNLVCVEEWPPCBVFVGVHVIEWPCPWRBWRVJZ
      VKVGXOXFVBVLVPVMVNVOAOBDWRFXDGIJKAWRBPVQUIRZPBWRVRZAXSYCLEPBCWRYAVSVABTRZ
      PTRZSYBYCWJAYDYEBFVTUETIFVTWAWBWCWDBPWRTTWEWFWGMWRXCWHZXDXCPWIYFXDQDWKEPX
      CCWLWMWNWOVO $.
  $}

  ${
    $d B k $.  $d S k $.  $d .0. k $.  $d ph k $.
    gsummptnn0fzv.b $e |- B = ( Base ` G ) $.
    gsummptnn0fzv.0 $e |- .0. = ( 0g ` G ) $.
    gsummptnn0fzv.g $e |- ( ph -> G e. CMnd ) $.
    gsummptnn0fzv.f $e |- ( ph -> A. k e. NN0 C e. B ) $.
    gsummptnn0fzv.s $e |- ( ph -> S e. NN0 ) $.
    gsummptnn0fzv.u $e |- ( ph -> A. k e. NN0 ( S < k -> C = .0. ) ) $.
    $( A final group sum over a function over the nonnegative integers (given
       as mapping) is equal to a final group sum over a finite interval of
       nonnegative integers.  (Contributed by AV, 10-Oct-2019.) $)
    gsummptnn0fzv $p |- ( ph -> ( G gsum ( k e. NN0 |-> C ) )
                               = ( G gsum ( k e. ( 0 ... S ) |-> C ) ) ) $=
      ( nfv gsummptnn0fz ) ABCDEFGAENHIJKLMO $.
  $}

  ${
    $d B k $.  $d F k x $.  $d S k x $.  $d .0. k x $.  $d ph k x $.
    gsummptnn0fzfv.b $e |- B = ( Base ` G ) $.
    gsummptnn0fzfv.0 $e |- .0. = ( 0g ` G ) $.
    gsummptnn0fzfv.g $e |- ( ph -> G e. CMnd ) $.
    gsummptnn0fzfv.f $e |- ( ph -> F e. ( B ^m NN0 ) ) $.
    gsummptnn0fzfv.s $e |- ( ph -> S e. NN0 ) $.
    gsummptnn0fzfv.u $e |- ( ph
                               -> A. x e. NN0 ( S < x -> ( F ` x ) = .0. ) ) $.
    $( A final group sum over a function over the nonnegative integers (given
       as mapping to its function values) is equal to a final group sum over a
       finite interval of nonnegative integers.  (Contributed by AV,
       10-Oct-2019.) $)
    gsummptnn0fzfv $p |- ( ph -> ( G gsum ( k e. NN0 |-> ( F ` k ) ) )
                          = ( G gsum ( k e. ( 0 ... S ) |-> ( F ` k ) ) ) ) $=
      ( cv cfv wcel cn0 wi clt cmap co wf elmapi ffvelrn 3syl ralrimiv wbr wceq
      ex wral weq breq2 fveq2 eqeq1d imbi12d cbvralv sylib gsummptnn0fzv ) ACEO
      ZFPZDEGHIJKAVACQZERAFCRUAUBQRCFUCZUTRQZVBSLFCRUDVCVDVBRCUTFUEUJUFUGMADBOZ
      TUHZVEFPZHUIZSZBRUKDUTTUHZVAHUIZSZERUKNVIVLBERBEULZVFVJVHVKVEUTDTUMVMVGVA
      HVEUTFUNUOUPUQURUS $.
  $}

  ${
    $d B i k $.  $d C i $.  $d G i $.  $d M i k $.  $d .- i $.  $d ph i $.
    $d i k y $.
    telgsumfzs.b $e |- B = ( Base ` G ) $.
    telgsumfzs.g $e |- ( ph -> G e. Abel ) $.
    telgsumfzs.m $e |- .- = ( -g ` G ) $.
    $( Lemma for ~ telgsumfzs (induction step).  (Contributed by AV,
       23-Nov-2019.) $)
    telgsumfzslem $p |- ( ( y e. ( ZZ>= ` M )
                      /\ ( ph /\ A. k e. ( M ... ( ( y + 1 ) + 1 ) ) C e. B ) )
                 -> ( ( G gsum ( i e. ( M ... y )
                             |-> ( [_ i / k ]_ C .- [_ ( i + 1 ) / k ]_ C ) ) )
                    = ( [_ M / k ]_ C .- [_ ( y + 1 ) / k ]_ C )
                 -> ( G gsum ( i e. ( M ... ( y + 1 ) )
                             |-> ( [_ i / k ]_ C .- [_ ( i + 1 ) / k ]_ C ) ) )
                    = ( [_ M / k ]_ C .- [_ ( ( y + 1 ) + 1 ) / k ]_ C ) ) ) $=
      ( wcel c1 caddc co csb wceq adantr syl cv cuz cfv cfz wral wa cmpt cplusg
      cgsu eqid ccmn cabl ablcmn adantl fzfid cgrp ablgrp ad2antrl fzelp1 simpr
      csn rspcsbela syl2anr fzp1elp1 grpsubcl syl3anc cin c0 fzp1disj a1i fzsuc
      cun gsummptfidmsplit cvv cmnd grpmnd ovexd peano2uz eluzfz2 syl2an csbeq1
      oveq1 csbeq1d oveq12d gsumsnd eluzfz1 grpnpncan syl13anc 3eqtrd ex ) BUAZ
      HUBUCZMZADCMFHWKNOPZNOPZUDPZUEZUFZUFZGEHWKUDPZFEUAZDQZFXANOPZDQZIPZUGUIPZ
      FHDQZFWNDQZIPZRZGEHWNUDPZXEUGUIPZXGFWODQZIPZRWSXJUFZXLXFGEWNVAZXEUGUIPZGU
      HUCZPZXIXHXMIPZXRPZXNWSXLXSRXJWSXKCWTXPXREGXEJXRUJZWRGUKMZWMWRGULMZYCAYDW
      QKSGUMTUNWSHWNUOWSXAXKMZUFGUPMZXBCMZXDCMZXECMWSYFYEAYFWMWQAYDYFKGUQTZURZS
      YEXAWPMWQYGWSXAHWNUSWRWQWMAWQUTZUNZFXAWPDCVBVCYEXCWPMWQYHWSXAHWNVDYLFXCWP
      DCVBVCCGIXBXDJLVEVFWTXPVGVHRWSHWKVIVJWMXKWTXPVLRWRHWKVKSVMSXOXFXIXQXTXRWS
      XJUTWSXQXTRXJWSXECXTEGWNVNJAGVOMZWMWQAYFYMYIGVPTURWSWKNOVQWSYFXHCMZXMCMZX
      TCMYJWMWNWPMZWQYNWRWMWNXKMZYPWMWNWLMZYQHWKVRZHWNVSTWNHWNUSTYKFWNWPDCVBVTZ
      WMWOWPMZWQYOWRWMWOWLMZUUAWMYRUUBYSHWNVRTZHWOVSTYKFWOWPDCVBVTZCGIXHXMJLVEV
      FXAWNRZXEXTRWSUUEXBXHXDXMIFXAWNDWAUUEFXCWODXAWNNOWBWCWDUNWESWDWSYAXNRZXJW
      SYFXGCMZYNYOUUFYJWMHWPMZWQUUGWRWMUUBUUHUUCHWOWFTYKFHWPDCVBVTYTUUDCXRGIXGX
      HXMJYBLWGWHSWIWJ $.

    $d B x y $.  $d C x y $.  $d G x y $.  $d M x y $.  $d N i k x $.
    $d .- x y $.  $d ph x y $.
    telgsumfzs.n $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    telgsumfzs.f $e |- ( ph -> A. k e. ( M ... ( N + 1 ) ) C e. B ) $.
    $( Telescoping group sum ranging over a finite set of sequential integers,
       using explicit substitution.  (Contributed by AV, 23-Nov-2019.) $)
    telgsumfzs $p |- ( ph -> ( G gsum ( i e. ( M ... N )
                          |-> ( [_ i / k ]_ C .- [_ ( i + 1 ) / k ]_ C ) ) )
                              = ( [_ M / k ]_ C .- [_ ( N + 1 ) / k ]_ C ) ) $=
      ( wcel c1 co cfz wceq oveq2d vx vy caddc wral cv csb cmpt cgsu cuz cfv wi
      wa oveq1 raleqdv anbi2d oveq2 mpteq1d csbeq1d eqeq12d imbi12d csn eluzel2
      cz syl adantr fzsn cmnd cgrp cabl ablgrp grpmnd peano2uz eluzfz1 sylancom
      uzid rspcsbela eluzfz2 grpsubcl syl3anc csbeq1 oveq12d adantl gsumsnd a1i
      eqtrd telgsumfzslem ex wss cle wbr eluzelz peano2zd cr peano2z zred lep1d
      eluz2 syl3anbrc fzss2 ssralv adantld a2and uzind4 expd mpcom mpd ) ACBOZE
      GIPUCQZRQZUDZFDGIRQZEDUEZCUFZEXLPUCQZCUFZHQZUGZUHQZEGCUFZEXHCUFZHQZSZNIGU
      IUJZOZAXJYBUKMYDAXJYBAXGEGUAUEZPUCQZRQZUDZULZFDGYERQZXPUGZUHQZXSEYFCUFZHQ
      ZSZUKAXGEGGPUCQZRQZUDZULZFDGGRQZXPUGZUHQZXSEYPCUFZHQZSZUKZAXGEGUBUEZPUCQZ
      RQZUDZULZFDGUUGRQZXPUGZUHQZXSEUUHCUFZHQZSZUKAXGEGUUHPUCQZRQZUDZULZFDUUIXP
      UGZUHQZXSEUURCUFZHQZSZUKAXJULZYBUKUAUBGIYEGSZYIYSYOUUEUVHYHYRAUVHXGEYGYQU
      VHYFYPGRYEGPUCUMZTUNUOUVHYLUUBYNUUDUVHYKUUAFUHUVHDYJYTXPYEGGRUPUQTUVHYMUU
      CXSHUVHEYFYPCUVIURTUSUTYEUUGSZYIUUKYOUUQUVJYHUUJAUVJXGEYGUUIUVJYFUUHGRYEU
      UGPUCUMZTUNUOUVJYLUUNYNUUPUVJYKUUMFUHUVJDYJUULXPYEUUGGRUPUQTUVJYMUUOXSHUV
      JEYFUUHCUVKURTUSUTYEUUHSZYIUVAYOUVFUVLYHUUTAUVLXGEYGUUSUVLYFUURGRYEUUHPUC
      UMZTUNUOUVLYLUVCYNUVEUVLYKUVBFUHUVLDYJUUIXPYEUUHGRUPUQTUVLYMUVDXSHUVLEYFU
      URCUVMURTUSUTYEISZYIUVGYOYBUVNYHXJAUVNXGEYGXIUVNYFXHGRYEIPUCUMZTUNUOUVNYL
      XRYNYAUVNYKXQFUHUVNDYJXKXPYEIGRUPUQTUVNYMXTXSHUVNEYFXHCUVOURTUSUTUUFGVCOZ
      YSUUBFDGVAZXPUGZUHQUUDYSUUAUVRFUHYSDYTUVQXPYSUVPYTUVQSAUVPYRAYDUVPMGIVBVD
      VEZGVFVDUQTYSXPBUUDDFGVCJAFVGOZYRAFVHOZUVTAFVIOUWAKFVJVDZFVKVDVEUVSYSUWAX
      SBOZUUCBOZUUDBOAUWAYRUWBVEAYRGYQOZUWCYSYPYCOZUWEYSGYCOZUWFYSUVPUWGUVSGVOV
      DGGVLVDZGYPVMVDEGYQCBVPVNAYRYPYQOZUWDYSUWFUWIUWHGYPVQVDEYPYQCBVPVNBFHXSUU
      CJLVRVSXLGSZXPUUDSYSUWJXMXSXOUUCHEXLGCVTUWJEXNYPCXLGPUCUMURWAWBWCWEWDUUGY
      COZAUUJUVFUUQUUTUWKUVAUUQUVFUKAUBBCDEFGHJKLWFWGUWKUUTUUJAUWKUUIUUSWHZUUTU
      UJUKUWKUURUUHUIUJOZUWLUWKUUHVCOUURVCOUUHUURWIWJUWMUWKUUGGUUGWKZWLZUWKUUHU
      WOWLUWKUUHUWKUUGVCOZUUHWMOUWNUWPUUHUUGWNWOVDWPUUHUURWQWRUUHGUURWSVDXGEUUI
      UUSWTVDXAXBXCXDXEXF $.
  $}

  ${
    $d A i $.  $d B i k $.  $d C k $.  $d D k $.  $d E k $.  $d G i $.
    $d L k $.  $d M i k $.  $d N i k $.  $d .- i $.  $d ph i k $.
    telgsumfz.b $e |- B = ( Base ` G ) $.
    telgsumfz.g $e |- ( ph -> G e. Abel ) $.
    telgsumfz.m $e |- .- = ( -g ` G ) $.
    telgsumfz.n $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    telgsumfz.f $e |- ( ph -> A. k e. ( M ... ( N + 1 ) ) A e. B ) $.
    telgsumfz.l $e |- ( k = i -> A = L ) $.
    telgsumfz.c $e |- ( k = ( i + 1 ) -> A = C ) $.
    telgsumfz.d $e |- ( k = M -> A = D ) $.
    telgsumfz.e $e |- ( k = ( N + 1 ) -> A = E ) $.
    $( Telescoping group sum ranging over a finite set of sequential integers,
       using implicit substitution, analogous to ~ telfsum .  (Contributed by
       AV, 23-Nov-2019.) $)
    telgsumfz $p |- ( ph -> ( G gsum ( i e. ( M ... N )
                                   |-> ( L .- C ) ) ) = ( D .- E ) ) $=
      ( cfz co cmpt cgsu cv csb c1 caddc wcel wa simpr adantl csbied eqcomd cvv
      wceq ovexd oveq12d mpteq2dva oveq2d telgsumfzs cuz elfvexd 3eqtrd ) AIFKM
      UCUDZJDLUDZUEZUFUDIFVGGFUGZBUHZGVJUIUJUDZBUHZLUDZUEZUFUDGKBUHZGMUIUJUDZBU
      HZLUDEHLUDAVIVOIUFAFVGVHVNAVJVGUKZULZJVKDVMLVTVKJVTGVJBJVGAVSUMGUGZVJURBJ
      URVTSUNUOUPVTVMDVTGVLBDUQVTVJUIUJUSWAVLURBDURVTTUNUOUPUTVAVBACBFGIKLMNOPQ
      RVCAVPEVRHLAGKBEUQAMVDKQVEWAKURBEURAUAUNUOAGVQBHUQAMUIUJUSWAVQURBHURAUBUN
      UOUTVF $.
  $}

  ${
    $d B i k $.  $d C i $.  $d G i $.  $d S i k $.  $d .- i $.  $d ph i $.
    telgsumfz0s.b $e |- B = ( Base ` G ) $.
    telgsumfz0s.g $e |- ( ph -> G e. Abel ) $.
    telgsumfz0s.m $e |- .- = ( -g ` G ) $.
    telgsumfz0s.s $e |- ( ph -> S e. NN0 ) $.
    telgsumfz0s.f $e |- ( ph -> A. k e. ( 0 ... ( S + 1 ) ) C e. B ) $.
    $( Telescoping finite group sum ranging over nonnegative integers, using
       explicit substitution.  (Contributed by AV, 24-Oct-2019.)  (Proof
       shortened by AV, 25-Nov-2019.) $)
    telgsumfz0s $p |- ( ph -> ( G gsum ( i e. ( 0 ... S )
                          |-> ( [_ i / k ]_ C .- [_ ( i + 1 ) / k ]_ C ) ) )
                              = ( [_ 0 / k ]_ C .- [_ ( S + 1 ) / k ]_ C ) ) $=
      ( cc0 cn0 cuz cfv nn0uz syl6eleq telgsumfzs ) ABCEFGNHDIJKADONPQLRSMT $.
  $}

  ${
    $d A i $.  $d B k $.  $d C k $.  $d D k $.  $d E k $.  $d G i $.
    $d K i k $.  $d S i k $.  $d .- i $.  $d ph i k $.
    telgsumfz0.k $e |- K = ( Base ` G ) $.
    telgsumfz0.g $e |- ( ph -> G e. Abel ) $.
    telgsumfz0.m $e |- .- = ( -g ` G ) $.
    telgsumfz0.s $e |- ( ph -> S e. NN0 ) $.
    telgsumfz0.f $e |- ( ph -> A. k e. ( 0 ... ( S + 1 ) ) A e. K ) $.
    telgsumfz0.a $e |- ( k = i -> A = B ) $.
    telgsumfz0.c $e |- ( k = ( i + 1 ) -> A = C ) $.
    telgsumfz0.d $e |- ( k = 0 -> A = D ) $.
    telgsumfz0.e $e |- ( k = ( S + 1 ) -> A = E ) $.
    $( Telescoping finite group sum ranging over nonnegative integers, using
       implicit substitution, analogous to ~ telfsum .  (Contributed by AV,
       23-Nov-2019.) $)
    telgsumfz0 $p |- ( ph -> ( G gsum ( i e. ( 0 ... S )
                                        |-> ( B .- C ) ) ) = ( D .- E ) ) $=
      ( cc0 cfz co cmpt cgsu cv csb c1 caddc wcel wa simpr adantl csbied eqcomd
      weq wceq cvv ovexd oveq12d mpteq2dva oveq2d telgsumfz0s c0ex a1i 3eqtrd )
      AJGUBFUCUDZCDLUDZUEZUFUDJGVHHGUGZBUHZHVKUIUJUDZBUHZLUDZUEZUFUDHUBBUHZHFUI
      UJUDZBUHZLUDEILUDAVJVPJUFAGVHVIVOAVKVHUKZULZCVLDVNLWAVLCWAHVKBCVHAVTUMHGU
      QBCURWARUNUOUPWAVNDWAHVMBDUSWAVKUIUJUTHUGZVMURBDURWASUNUOUPVAVBVCAKBFGHJL
      MNOPQVDAVQEVSILAHUBBEUSUBUSUKAVEVFWBUBURBEURATUNUOAHVRBIUSAFUIUJUTWBVRURB
      IURAUAUNUOVAVG $.
  $}

  ${
    $d B i k $.  $d C i $.  $d G i $.  $d S i k $.  $d .0. i k $.  $d ph i $.
    $d .- i $.
    telgsums.b $e |- B = ( Base ` G ) $.
    telgsums.g $e |- ( ph -> G e. Abel ) $.
    telgsums.m $e |- .- = ( -g ` G ) $.
    telgsums.0 $e |- .0. = ( 0g ` G ) $.
    telgsums.f $e |- ( ph -> A. k e. NN0 C e. B ) $.
    telgsums.s $e |- ( ph -> S e. NN0 ) $.
    telgsums.u $e |- ( ph -> A. k e. NN0 ( S < k -> C = .0. ) ) $.
    $( Telescoping finitely supported group sum ranging over nonnegative
       integers, using explicit substitution.  (Contributed by AV,
       24-Oct-2019.) $)
    telgsums $p |- ( ph -> ( G gsum ( i e. NN0
        |-> ( [_ i / k ]_ C .- [_ ( i + 1 ) / k ]_ C ) ) ) = [_ 0 / k ]_ C ) $=
      ( cn0 wcel clt cvv cv csb c1 caddc cmpt cgsu cc0 cfz cabl ccmn ablcmn syl
      co wa cgrp ablgrp wral simpr rspcsbela syl2anc peano2nn0 syl2anr grpsubcl
      adantr syl3anc ralrimiva wbr wceq wsbc rspsbca vex sbcimg sbcbr2g csbvarg
      wi wb breq2d bitrd sbceq1g ax-mp sylib expcom imp31 nn0red nn0re ad2antlr
      imbi12d cr ltp1d lttrd ovex syld imp oveq12d grpidcl jccir grpsubid eqtrd
      ex gsummptnn0fzv wss cuz cfv fzssuz a1i syl6sseqr ssralv sylc telgsumfz0s
      nn0uz syl3c oveq2d 0nn0 grpsubid1 3eqtrd ) AGEQFEUAZCUBZFXPUCUDUMZCUBZHUM
      ZUEUFUMGEUGDUHUMXTUEUFUMFUGCUBZFDUCUDUMZCUBZHUMZYAABXTDEGIJMAGUIRZGUJRKGU
      KULAXTBRZEQAXPQRZUNZGUORZXQBRZXSBRZYFAYIYGAYEYIKGUPULZVDZYHYGCBRZFQUQZYJA
      YGURAYOYGNVDFXPQCBUSUTYGXRQRZYOYKAXPVAZNFXRQCBUSVBBGHXQXSJLVCVEVFOADXPSVG
      ZXTIVHZVOEQYHYRYSYHYRUNZXTIIHUMZIYTXQIXSIHAYGYRXQIVHZADFUAZSVGZCIVHZVOZFQ
      UQZYGYRUUBVOZVOPYGUUGUUHYGUUGUNUUFFXPVIZUUHUUFFXPQVJXPTRZUUIUUHVPEVKUUJUU
      IUUDFXPVIZUUEFXPVIZVOUUHUUDUUEFXPTVLUUJUUKYRUULUUBUUJUUKDFXPUUCUBZSVGYRFX
      PDUUCSTVMUUJUUMXPDSFXPTVNVQVRFXPCITVSWGVRVTWAWBULWCYHYRXSIVHZYHYRDXRSVGZU
      UNYHYRUUOYTDXPXRYHDWHRZYRAUUPYGADOWDZVDVDYGXPWHRAYRXPWEWFZYTXRYGYPAYRYQWF
      WDYHYRURYTXPUURWIWJWSYGYPUUGUUOUUNVOZAYQPYPUUGUNUUFFXRVIZUUSUUFFXRQVJXRTR
      ZUUTUUSVPXPUCUDWKUVAUUTUUDFXRVIZUUEFXRVIZVOUUSUUDUUEFXRTVLUVAUVBUUOUVCUUN
      UVAUVBDFXRUUCUBZSVGUUOFXRDUUCSTVMUVAUVDXRDSFXRTVNVQVRFXRCITVSWGVRVTWAVBWL
      WMWNYTYIIBRZUNUUAIVHYTYIUVEYHYIYRYMVDBGIJMWOWPBGHIIJMLWQULWRWSVFWTABCDEFG
      HJKLOAUGYBUHUMZQXAYOYNFUVFUQAUVFUGXBXCZQUVFUVGXAAUGYBXDXEXJXFNYNFUVFQXGXH
      XIAYDYAIHUMZYAAYCIYAHAYBQRZUUGDYBSVGZYCIVHZADQRUVIODVAULPADUUQWIUVIUUGUVJ
      UVKVOZUVIUUGUNUUFFYBVIZUVLUUFFYBQVJYBTRZUVMUVLVPDUCUDWKUVNUVMUUDFYBVIZUUE
      FYBVIZVOUVLUUDUUEFYBTVLUVNUVOUVJUVPUVKUVNUVODFYBUUCUBZSVGUVJFYBDUUCSTVMUV
      NUVQYBDSFYBTVNVQVRFYBCITVSWGVRVTWAWSXKXLAYIYABRZUVHYAVHYLAUGQRZYOUVRUVSAX
      MXENFUGQCBUSUTBGHYAIJMLXNUTWRXO $.
  $}

  ${
    $d A i $.  $d B i k $.  $d C k $.  $d D k $.  $d E k $.  $d G i $.
    $d S i k $.  $d ph i k $.  $d .0. i k $.  $d .- i $.
    telgsum.b $e |- B = ( Base ` G ) $.
    telgsum.g $e |- ( ph -> G e. Abel ) $.
    telgsum.m $e |- .- = ( -g ` G ) $.
    telgsum.0 $e |- .0. = ( 0g ` G ) $.
    telgsum.f $e |- ( ph -> A. k e. NN0 A e. B ) $.
    telgsum.s $e |- ( ph -> S e. NN0 ) $.
    telgsum.u $e |- ( ph -> A. k e. NN0 ( S < k -> A = .0. ) ) $.
    telgsum.c $e |- ( k = i -> A = C ) $.
    telgsum.d $e |- ( k = ( i + 1 ) -> A = D ) $.
    telgsum.e $e |- ( k = 0 -> A = E ) $.
    $( Telescoping finitely supported group sum ranging over nonnegative
       integers, using implicit substitution.  (Contributed by AV,
       31-Dec-2019.) $)
    telgsum $p |- ( ph -> ( G gsum ( i e. NN0 |-> ( C .- D ) ) ) = E ) $=
      ( cn0 co cmpt cgsu cv csb c1 caddc cc0 wcel wa simpr adantl csbied eqcomd
      weq wceq peano2nn0 oveq12d mpteq2dva oveq2d telgsums cvv c0ex a1i 3eqtrd
      ) AJGUCDEKUDZUEZUFUDJGUCHGUGZBUHZHVKUIUJUDZBUHZKUDZUEZUFUDHUKBUHIAVJVPJUF
      AGUCVIVOAVKUCULZUMZDVLEVNKVRVLDVRHVKBDUCAVQUNHGURBDUSVRTUOUPUQVRVNEVRHVMB
      EUCVQVMUCULAVKUTUOHUGZVMUSBEUSVRUAUOUPUQVAVBVCACBFGHJKLMNOPQRSVDAHUKBIVEU
      KVEULAVFVGVSUKUSBIUSAUBUOUPVH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Internal direct products
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c DProd $. $( Direct product $)
  $c dProj $. $( Direct product projection $)

  $( Internal direct product of a family of subgroups. $)
  cdprd $a class DProd $.

  $( Projection operator for a direct product. $)
  cdpj $a class dProj $.

  ${
    $d g h .0. $.  $d f g h i s x y G $.  $d h x y I $.  $d g h K $.
    $d g h Z $.  $d x y ph $.  $d g h x y S $.  $d h x y V $.
    $( Define the internal direct product of a family of subgroups.
       (Contributed by Mario Carneiro, 21-Apr-2016.)  (Revised by AV,
       11-Jul-2019.) $)
    df-dprd $a |- DProd = ( g e. Grp , s e. { h |
      ( h : dom h --> ( SubGrp ` g ) /\ A. x e. dom h
       ( A. y e. ( dom h \ { x } ) ( h ` x ) C_ ( ( Cntz ` g ) ` ( h ` y ) ) /\
         ( ( h ` x ) i^i ( ( mrCls ` ( SubGrp ` g ) ) `
           U. ( h " ( dom h \ { x } ) ) ) ) = { ( 0g ` g ) } ) ) } |->
        ran ( f e. { h e. X_ x e. dom s ( s ` x ) | h finSupp ( 0g ` g ) }
              |-> ( g gsum f ) ) ) $.

    $( Define the projection operator for a direct product.  (Contributed by
       Mario Carneiro, 21-Apr-2016.) $)
    df-dpj $a |- dProj = ( g e. Grp , s e. ( dom DProd " { g } ) |->
        ( i e. dom s |->
      ( ( s ` i ) ( proj1 ` g ) ( g DProd ( s |` ( dom s \ { i } ) ) ) ) ) ) $.

    $( The domain of the internal direct product operation is a relation.
       (Contributed by Mario Carneiro, 25-Apr-2016.)  (Proof shortened by AV,
       11-Jul-2019.) $)
    reldmdprd $p |- Rel dom DProd $=
      ( vg vs vh vx vy vf cgrp cv cdm csubg cfv wf ccntz wss csn cdif wral cima
      cuni wa cmrc cin c0g wceq cab cfsupp wbr cixp crab cgsu co cmpt crn cdprd
      df-dprd reldmmpt2 ) ABGCHZIZAHZJKZUQLDHZUQKZEHUQKUSMKKNEURVAOPZQVBUQVCRSU
      TUAKKUBUSUCKZOUDTDURQTCUEFUQVDUFUGCDBHZIVAVEKUHUIUSFHUJUKULUMUNDEFACBUOUP
      $.

    dmdprd.z $e |- Z = ( Cntz ` G ) $.
    dmdprd.0 $e |- .0. = ( 0g ` G ) $.
    dmdprd.k $e |- K = ( mrCls ` ( SubGrp ` G ) ) $.
    $( The domain of definition of the internal direct product, which states
       that ` S ` is a family of subgroups that mutually commute and have
       trivial intersections.  (Contributed by Mario Carneiro, 25-Apr-2016.)
       (Proof shortened by AV, 11-Jul-2019.) $)
    dmdprd $p |- ( ( I e. V /\ dom S = I ) ->
      ( G dom DProd S <-> ( G e. Grp /\
        S : I --> ( SubGrp ` G ) /\ A. x e. I
        ( A. y e. ( I \ { x } ) ( S ` x ) C_ ( Z ` ( S ` y ) ) /\
        ( ( S ` x ) i^i ( K ` U. ( S " ( I \ { x } ) ) ) ) = { .0. } ) ) ) ) $=
      ( vh vg wcel wceq wa cfv wral cvv vf vs cdm cgrp cv csubg wf wss csn cdif
      cima cuni cin cab cdprd wbr w3a wi elex a1i expcom adantr adantrd wb wsbc
      fex df-sbc simpr dmeqd simplr eqtrd feq12d difeq1d fveq1d fveq2d imaeq12d
      sseq12d raleqbidv unieqd ineq12d eqeq1d anbi12d adantlr sbcied syl5bbr ex
      pm5.21ndd anbi2d cop ccntz cmrc c0g ciun df-br cfsupp cixp crab cgsu cmpt
      cxp co crn fvex rgenw ixpexg ax-mp mptrabex rnex rgen2w df-dprd mpbi fdmi
      fmpt2x eleq2i fveq2 feq3d syl6eqr sseq2d ralbidv sneqd eqeq12d opeliunxp2
      ineq2d abbidv 3bitri 3anass 3bitr4g ) EGOZCUCZEPZQZDUDOZCMUEZUCZDUFRZYMUG
      ZAUEZYMRZBUEZYMRZIRZUHZBYNYQUIZUJZSZYRYMUUDUKZULZFRZUMZHUIZPZQZAYNSZQZMUN
      ZOZQZYLEYOCUGZYQCRZYSCRZIRZUHZBEUUCUJZSZUUSCUVCUKZULZFRZUMZUUJPZQZAESZQZQ
      DCUOUCZUPZYLUURUVKUQYKUUPUVLYLYKCTOZUUPUVLUUPUVOURYKCUUOUSUTYKUURUVOUVKYH
      UURUVOURYJUURYHUVOEYOGCVFVAVBVCYKUVOUUPUVLVDUUPUUNMCVEYKUVOQZUVLUUNMCVGUV
      PUUNUVLMCTYKUVOVHYKYMCPZUUNUVLVDUVOYKUVQQZYPUURUUMUVKUVRYNEYOYMCYKUVQVHZU
      VRYNYIEUVRYMCUVSVIYHYJUVQVJVKZVLUVRUULUVJAYNEUVTUVRUUEUVDUUKUVIUVRUUBUVBB
      UUDUVCUVRYNEUUCUVTVMZUVRYRUUSUUAUVAUVRYQYMCUVSVNZUVRYTUUTIUVRYSYMCUVSVNVO
      VQVRUVRUUIUVHUUJUVRYRUUSUUHUVGUWBUVRUUGUVFFUVRUUFUVEUVRYMCUUDUVCUVSUWAVPV
      SVOVTWAWBVRWBWCWDWEWFWGWHUVNDCWIZUVMOUWCNUDNUEZUIYNUWDUFRZYMUGZYRYTUWDWJR
      ZRZUHZBUUDSZYRUUGUWEWKRZRZUMZUWDWLRZUIZPZQZAYNSZQZMUNZWTWMZOUUQDCUVMWNUVM
      UXAUWCUXATUOUAYMUWNWOUPZMAUBUEZUCZYQUXCRZWPZWQUWDUAUEWRXAZWSZXBZTOZUBUWTS
      NUDSUXATUOUGUXJNUBUDUWTUXHUXBUAMUXFUXGUXETOZAUXDSUXFTOUXKAUXDYQUXCXCXDAUX
      DUXETXEXFXGXHXINUBUDUWTUXITUOABUANMUBXJXMXKXLXNNUDUWTDCUUOUWDDPZUWSUUNMUX
      LUWFYPUWRUUMUXLUWEYOYMYNUWDDUFXOZXPUXLUWQUULAYNUXLUWJUUEUWPUUKUXLUWIUUBBU
      UDUXLUWHUUAYRUXLYTUWGIUXLUWGDWJRIUWDDWJXOJXQVNXRXSUXLUWMUUIUWOUUJUXLUWLUU
      HYRUXLUUGUWKFUXLUWKYOWKRFUXLUWEYOWKUXMVOLXQVNYCUXLUWNHUXLUWNDWLRHUWDDWLXO
      KXQXTYAWBXSWBYDYBYEYLUURUVKYFYG $.

    dmdprdd.1 $e |- ( ph -> G e. Grp ) $.
    dmdprdd.2 $e |- ( ph -> I e. V ) $.
    dmdprdd.3 $e |- ( ph -> S : I --> ( SubGrp ` G ) ) $.
    dmdprdd.4 $e |- ( ( ph /\ ( x e. I /\ y e. I /\ x =/= y ) ) ->
      ( S ` x ) C_ ( Z ` ( S ` y ) ) ) $.
    dmdprdd.5 $e |- ( ( ph /\ x e. I ) ->
      ( ( S ` x ) i^i ( K ` U. ( S " ( I \ { x } ) ) ) ) C_ { .0. } ) $.
    $( Show that a given family is a direct product decomposition.
       (Contributed by Mario Carneiro, 25-Apr-2016.)  (Revised by AV,
       11-Jul-2019.) $)
    dmdprdd $p |- ( ph -> G dom DProd S ) $=
      ( wcel cfv cdprd cdm wbr cgrp csubg wf cv wss csn cdif wral cima cuni cin
      wceq wne eldifsn necom anbi2i bitri 3exp2 imp4b syl5bi ralrimiv ffvelrnda
      subg0cl syl cbs cmre cacs adantr eqid subgacs acsmre 3syl cpw crn imassrn
      wa frn syl5ss mresspw sstrd sspwuni sylib mrccl syl2anc elind snssd eqssd
      jca ralrimiva w3a wb fdm dmdprd mpbir3and ) AEDUAUBUCZEUDSZFEUETZDUFZBUGZ
      DTZCUGZDTJTUHZCFXBUIUJZUKZXCDXFULZUMZGTZUNZIUIZUOZVSZBFUKZNPAXNBFAXBFSZVS
      ZXGXMXQXECXFXDXFSZXDFSZXBXDUPZVSZXQXEXRXSXDXBUPZVSYAXDFXBUQYBXTXSXDXBURUS
      UTAXPXSXTXEAXPXSXTXEQVAVBVCVDXQXKXLRXQIXKXQXCXJIXQXCWTSIXCSAFWTXBDPVEXCEI
      LVFVGXQXJWTSZIXJSXQWTEVHTZVITSZXIYDUHZYCXQWSWTYDVJTSYEAWSXPNVKYDEYDVLVMWT
      YDVNVOZXQXHYDVPZUHYFXQXHWTYHXQXHDVQZWTDXFVRAYIWTUHZXPAXAYJPFWTDVTVGVKWAXQ
      YEWTYHUHYGWTYDWBVGWCXHYDWDWEWTXIGYDMWFWGXJEILVFVGWHWIWJWKWLAFHSDUBFUOZWRW
      SXAXOWMWNOAXAYKPFWTDWOVGBCDEFGHIJKLMWPWGWQ $.
  $}

  $( A family of subgroups indexed by a proper class cannot be a family of
     subgroups for an internal direct product.  (Contributed by AV,
     13-Jul-2019.) $)
  dprddomprc $p |- ( dom S e/ _V -> -. G dom DProd S ) $=
    ( cdm cvv wnel wcel cdprd wbr wn dmexg con3i sylbi reldmdprd brrelex2i nsyl
    df-nel ) ACZDEZADFZBAGCZHRQDFZISIQDPSUAADJKLBATMNO $.

  ${
    dprddomcld.1 $e |- ( ph -> G dom DProd S ) $.
    dprddomcld.2 $e |- ( ph -> dom S = I ) $.
    $( If a family of subgroups is a family of subgroups for an internal direct
       product, then it is indexed by a set.  (Contributed by AV,
       13-Jul-2019.) $)
    dprddomcld $p |- ( ph -> I e. _V ) $=
      ( cdm wceq cdprd wbr cvv wcel df-nel dprddomprc sylbir con4i eleq1 syl5ib
      wn wnel sylc ) ABGZDHZCBIGJZDKLZFEUDUBKLZUCUEUFUDUFSUBKTUDSUBKMBCNOPUBDKQ
      RUA $.
  $}

  $( The internal direct product of a family of subgroups indexed by a proper
     class is empty.  (Contributed by AV, 13-Jul-2019.) $)
  dprdval0prc $p |- ( dom S e/ _V -> ( G DProd S ) = (/) ) $=
    ( cdm cvv wnel wcel wn cdprd co c0 wceq df-nel dmexg con3i reldmdprd ovprc2
    sylbi syl ) ACZDEZADFZGZBAHIJKTSDFZGUBSDLUAUCADMNQBAHOPR $.

  ${
    $d f g h i s y $.  $d g .0. $.  $d f A $.  $d f h i s I $.  $d f h i s S $.
    $d f g h i s G $.  $d s W $.
    dprdval.0 $e |- .0. = ( 0g ` G ) $.
    dprdval.w $e |- W = { h e. X_ i e. I ( S ` i ) | h finSupp .0. } $.
    $( The value of the internal direct product operation, which is a function
       mapping the (infinite, but finitely supported) cartesian product of
       subgroups (which mutually commute and have trivial intersections) to its
       (group) sum .  (Contributed by Mario Carneiro, 25-Apr-2016.)  (Revised
       by AV, 11-Jul-2019.) $)
    dprdval $p |- ( ( G dom DProd S /\ dom S = I ) ->
      ( G DProd S ) = ran ( f e. W |-> ( G gsum f ) ) ) $=
      ( vs vg cdprd wbr wceq cv cfv cvv wcel cgrp vy cdm wa cgsu cmpt crn simpl
      co cfsupp cixp crab wi wsbc reldmdprd brrelex2i adantr brrelexi c0g breq1
      oveq1 fveq2 syl6eqr breq2d rabbidv mpteq12dv rneqd eqeq12d csubg wf ccntz
      imbi12d wss csn cdif wral cima cuni cmrc cin cab cop cxp ciun df-br rgenw
      fvex ixpexg ax-mp mptrabex rnex rgen2w df-dprd fmpt2x mpbi fdmi opeliunxp
      eleq2i 3bitri ovmpt4g mp3an3 sylbi vtoclg mpcom sbcth simpr oveq2d simplr
      syl dmeqd eqtrd ixpeq1d fveq1d ixpeq2dv rabeqdv eqidd sbcied mpbid mpd )
      EAMUBZNZAUBZFOZUCZXTEAMUHZBGEBPZUDUHZUEZUFZOZXTYBUGYCEKPZXSNZEYJMUHZBCPZH
      UINZCDYJUBZDPZYJQZUJZUKZYFUEZUFZOZULZKAUMZXTYIULZYCARSZUUDXTUUFYBEAXSUNUO
      UPZUUCKARERSYKUUBEYJXSUNUQLPZYJXSNZUUHYJMUHZBYMUUHURQZUINZCYRUKZUUHYEUDUH
      ZUEZUFZOZULUUCLERUUHEOZUUIYKUUQUUBUUHEYJXSUSUURUUJYLUUPUUAUUHEYJMUTUURUUO
      YTUURBUUMUUNYSYFUURUULYNCYRUURUUKHYMUIUURUUKEURQHUUHEURVAIVBVCVDUUHEYEUDU
      TVEVFVGVKUUIUUHTSZYJYMUBZUUHVHQZYMVIYPYMQZUAPYMQUUHVJQQVLUAUUTYPVMVNZVOUV
      BYMUVCVPVQUVAVRQQVSUUKVMOUCDUUTVOUCCVTZSZUCZUUQUUIUUHYJWAZXSSUVGLTUUHVMUV
      DWBWCZSUVFUUHYJXSWDXSUVHUVGUVHRMUUPRSZKUVDVOLTVOUVHRMVIUVILKTUVDUUOUULBCY
      RUUNYQRSZDYOVOYRRSUVJDYOYPYJWFWEDYOYQRWGWHWIWJZWKLKTUVDUUPRMDUABLCKWLZWMW
      NWOWQLTUVDYJWPWRUUSUVEUVIUUQUVKLKTUVDUUPMRUVLWSWTXAXBXCXDXHYCUUCUUEKARUUG
      YCYJAOZUCZYKXTUUBYIUVNYJAEXSYCUVMXEZVCUVNYLYDUUAYHUVNYJAEMUVOXFUVNYTYGUVN
      BYSYFGYFUVNYSYNCDFYPAQZUJZUKGUVNYNCYRUVQUVNYRDFYQUJUVQUVNDYOFYQUVNYOYAFUV
      NYJAUVOXIXTYBUVMXGXJXKUVNDFYQUVPUVNYPYJAUVOXLXMXJXNJVBUVNYFXOVEVFVGVKXPXQ
      XR $.

    $( A class ` A ` is an internal direct product iff it is the (group) sum of
       an infinite, but finitely supported cartesian product of subgroups
       (which mutually commute and have trivial intersections).  (Contributed
       by Mario Carneiro, 25-Apr-2016.)  (Revised by AV, 11-Jul-2019.) $)
    eldprd $p |- ( dom S = I -> ( A e. ( G DProd S )
                     <-> ( G dom DProd S /\ E. f e. W A = ( G gsum f ) ) ) ) $=
      ( cdprd co wcel cdm wbr wa wceq cv cgsu cop cfv elfvdm df-ov eleq2s df-br
      wrex sylibr pm4.71ri wb cmpt crn dprdval eleq2d eqid ovex elrnmpti syl6bb
      ancoms pm5.32da syl5bb ) AFBLMZNZFBLOZPZVCQBOGRZVEAFCSZTMZRCHUGZQVCVEVCFB
      UAZVDNZVEVKAVJLUBVBAVJLUCFBLUDUEFBVDUFUHUIVFVEVCVIVEVFVCVIUJVEVFQZVCACHVH
      UKZULZNVIVLVBVNABCDEFGHIJKUMUNCHVHAVMVMUOFVGTUPUQURUSUTVA $.
  $}

  ${
    $d x .0. $.  $d x y G $.  $d x y I $.  $d x K $.  $d x y S $.  $d x y X $.
    $d y Y $.  $d x y Z $.
    $( Reverse closure for the internal direct product.  (Contributed by Mario
       Carneiro, 25-Apr-2016.) $)
    dprdgrp $p |- ( G dom DProd S -> G e. Grp ) $=
      ( vx vy cdprd cdm wbr cgrp wcel csubg cfv wf ccntz wss csn wral wceq eqid
      cv cvv cdif cima cuni cmrc cin c0g wa wb reldmdprd brrelex2i dmexg dmdprd
      w3a syl sylancl ibi simp1d ) BAEFZGZBHIZAFZBJKZALZCSZAKZDSAKBMKZKNDVAVDOU
      AZPVEAVGUBUCVBUDKZKUEBUFKZOQUGCVAPZUSUTVCVJUMZUSVATIZVAVAQUSVKUHUSATIVLBA
      URUIUJATUKUNVARCDABVAVHTVIVFVFRVIRVHRULUOUPUQ $.

    $( The function ` S ` is a family of subgroups.  (Contributed by Mario
       Carneiro, 25-Apr-2016.) $)
    dprdf $p |- ( G dom DProd S -> S : dom S --> ( SubGrp ` G ) ) $=
      ( vx vy cdprd cdm wbr cgrp wcel csubg cfv wf ccntz wss csn wral wceq eqid
      cv cvv cdif cima cuni cmrc cin c0g wa wb reldmdprd brrelex2i dmexg dmdprd
      w3a syl sylancl ibi simp2d ) BAEFZGZBHIZAFZBJKZALZCSZAKZDSAKBMKZKNDVAVDOU
      AZPVEAVGUBUCVBUDKZKUEBUFKZOQUGCVAPZUSUTVCVJUMZUSVATIZVAVAQUSVKUHUSATIVLBA
      URUIUJATUKUNVARCDABVAVHTVIVFVFRVIRVHRULUOUPUQ $.

    dprdcntz.1 $e |- ( ph -> G dom DProd S ) $.
    dprdcntz.2 $e |- ( ph -> dom S = I ) $.
    $( The function ` S ` is a family of subgroups.  (Contributed by Mario
       Carneiro, 25-Apr-2016.) $)
    dprdf2 $p |- ( ph -> S : I --> ( SubGrp ` G ) ) $=
      ( cdm csubg cfv wf cdprd wbr dprdf syl feq2d mpbid ) ABGZCHIZBJZDRBJACBKG
      LSEBCMNAQDRBFOP $.

    dprdcntz.3 $e |- ( ph -> X e. I ) $.
    ${
      dprdcntz.4 $e |- ( ph -> Y e. I ) $.
      dprdcntz.5 $e |- ( ph -> X =/= Y ) $.
      dprdcntz.z $e |- Z = ( Cntz ` G ) $.
      $( The function ` S ` is a family having pairwise commuting values.
         (Contributed by Mario Carneiro, 25-Apr-2016.) $)
      dprdcntz $p |- ( ph -> ( S ` X ) C_ ( Z ` ( S ` Y ) ) ) $=
        ( vy vx csn wcel cfv wral wceq cdif cv wss necomd eldifsn sylanbrc cima
        wne cuni csubg cmrc cin c0g wa cgrp wf cdprd cdm wbr w3a cvv dprddomcld
        wb eqid dmdprd syl2anc mpbid simp3d simpl ralimi syl sneq difeq2d fveq2
        sseq1d raleqbidv rspcv sylc fveq2d sseq2d ) AFDEPZUAZQZEBRZNUBZBRZGRZUC
        ZNWBSZWDFBRZGRZUCZAFDQFEUHWCKAEFLUDFDEUEUFAEDQOUBZBRZWGUCZNDWMPZUAZSZOD
        SZWIJAWRWNBWQUGUICUJRZUKRZRULCUMRZPTZUNZODSZWSACUOQZDWTBUPZXEACBUQURUSZ
        XFXGXEUTZHADVAQBURDTXHXIVCABCDHIVBIONBCDXAVAXBGMXBVDXAVDVEVFVGVHXDWRODW
        RXCVIVJVKWRWIOEDWMETZWOWHNWQWBXJWPWADWMEVLVMXJWNWDWGWMEBVNVOVPVQVRWHWLN
        FWBWEFTZWGWKWDXKWFWJGWEFBVNVSVTVQVR $.
    $}

    ${
      dprddisj.0 $e |- .0. = ( 0g ` G ) $.
      dprddisj.k $e |- K = ( mrCls ` ( SubGrp ` G ) ) $.
      $( The function ` S ` is a family having trivial intersections.
         (Contributed by Mario Carneiro, 25-Apr-2016.) $)
      dprddisj $p |- ( ph ->
        ( ( S ` X ) i^i ( K ` U. ( S " ( I \ { X } ) ) ) ) = { .0. } ) $=
        ( vx vy wcel cv cfv csn wceq wral cdif cima cuni cin ccntz wss wa csubg
        cgrp wf cdprd cdm wbr w3a cvv wb dprddomcld dmdprd syl2anc mpbid simp3d
        eqid simpr ralimi syl sneq difeq2d imaeq2d unieqd fveq2d ineq12d eqeq1d
        fveq2 rspcv sylc ) AFDOMPZBQZBDVPRZUAZUBZUCZEQZUDZGRZSZMDTZFBQZBDFRZUAZ
        UBZUCZEQZUDZWDSZJAVQNPBQCUEQZQUFNVSTZWEUGZMDTZWFACUIOZDCUHQBUJZWRACBUKU
        LUMZWSWTWRUNZHADUOOBULDSXAXBUPABCDHIUQIMNBCDEUOGWOWOVBKLURUSUTVAWQWEMDW
        PWEVCVDVEWEWNMFDVPFSZWCWMWDXCVQWGWBWLVPFBVMXCWAWKEXCVTWJXCVSWIBXCVRWHDV
        PFVFVGVHVIVJVKVLVNVO $.
    $}
  $}

  ${
    $d h y z A $.  $d x B $.  $d h x y z F $.  $d x y z G $.  $d h i x y z I $.
    $d h .0. $.  $d x y z ph $.  $d h i x y z S $.  $d x X $.  $d y Z $.
    dprdff.w $e |- W = { h e. X_ i e. I ( S ` i ) | h finSupp .0. } $.
    dprdff.1 $e |- ( ph -> G dom DProd S ) $.
    dprdff.2 $e |- ( ph -> dom S = I ) $.
    $( The property of being a finitely supported function in the family
       ` S ` .  (Contributed by Mario Carneiro, 25-Apr-2016.)  (Revised by AV,
       11-Jul-2019.) $)
    dprdw $p |- ( ph -> ( F e. W <-> ( F Fn I /\
        A. x e. I ( F ` x ) e. ( S ` x ) /\ F finSupp .0. ) ) ) $=
      ( cv cfv wcel cfsupp wa cvv wi cixp wbr wfn wral w3a elex dprddomcld fnex
      a1i expcom adantrd wb fveq2 cbvixpv eleq2i elixp2 3anass 3bitri pm5.21ndd
      syl baib anbi1d breq1 elrab2 df-3an 3bitr4g ) AFEHENZCOZUAZPZFJQUBZRFHUCZ
      BNZFOVMCOZPBHUDZRZVKRFIPVLVOVKUEAVJVPVKAFSPZVJVPVJVQTAFVIUFUIAVLVQVOAHSPZ
      VLVQTACGHLMUGVLVRVQHSFUHUJUTUKVQVJVPULTAVJVQVPVJFBHVNUAZPVQVLVOUEVQVPRVIV
      SFEBHVHVNVGVMCUMUNUOBHVNFUPVQVLVOUQURVAUIUSVBDNZJQUBVKDFVIIVTFJQVCKVDVLVO
      VKVEVF $.

    ${
      dprdwd.3 $e |- ( ( ph /\ x e. I ) -> A e. ( S ` x ) ) $.
      dprdwd.4 $e |- ( ph -> ( x e. I |-> A ) finSupp .0. ) $.
      $( A mapping being a finitely supported function in the family ` S ` .
         (Contributed by Mario Carneiro, 25-Apr-2016.)  (Revised by AV,
         11-Jul-2019.)  (Proof shortened by OpenAI, 30-Mar-2020.) $)
      dprdwd $p |- ( ph -> ( x e. I |-> A ) e. W ) $=
        ( cv cfsupp wbr cfv wcel cmpt eqidd cixp crab wral ralrimiva dprddomcld
        cvv wb mptelixpg syl mpbird fveq2 cbvixpv syl6eleq breq1 elrab sylanbrc
        syl6eleqr eqeltrrd ) ABHCUAZVAIAVAUBAVAEPZJQRZEFHFPZDSZUCZUDZIAVAVFTVAJ
        QRZVAVGTAVABHBPZDSZUCZVFAVAVKTZCVJTZBHUEZAVMBHNUFAHUHTVLVNUIADGHLMUGBHC
        VJUHUJUKULBFHVJVEVIVDDUMUNUOOVCVHEVAVFVBVAJQUPUQURKUSUT $.
    $}

    dprdff.3 $e |- ( ph -> F e. W ) $.
    ${
      dprdff.b $e |- B = ( Base ` G ) $.
      $( A finitely supported function in ` S ` is a function into the base.
         (Contributed by Mario Carneiro, 25-Apr-2016.)  (Revised by AV,
         11-Jul-2019.) $)
      dprdff $p |- ( ph -> F : I --> B ) $=
        ( vx wfn cfv wcel wral cv wf cfsupp wbr dprdw mpbid simp1d simp2d csubg
        w3a wss dprdf2 ffvelrnda subgss syl sseld ralimdva mpd ffnfv sylanbrc
        wa ) AFHQZPUAZFRZBSZPHTZHBFUBAVBVDVCCRZSZPHTZFJUCUDZAFISVBVIVJUJNAPCDEF
        GHIJKLMUEUFZUGAVIVFAVBVIVJVKUHAVHVEPHAVCHSVAZVGBVDVLVGGUIRZSVGBUKAHVMVC
        CACGHLMULUMBVGGOUNUOUPUQURPHBFUSUT $.
    $}

    $( A finitely supported function in ` S ` has its ` X ` -th element in
       ` S ( X ) ` .  (Contributed by Mario Carneiro, 25-Apr-2016.)  (Revised
       by AV, 11-Jul-2019.) $)
    dprdfcl $p |- ( ( ph /\ X e. I ) -> ( F ` X ) e. ( S ` X ) ) $=
      ( vx cv cfv wcel wral fveq2 wfn cfsupp wbr w3a dprdw mpbid simp2d eleq12d
      wceq rspccva sylan ) AOPZEQZULBQZRZOGSZIGRIEQZIBQZRZAEGUAZUPEJUBUCZAEHRUT
      UPVAUDNAOBCDEFGHJKLMUEUFUGUOUSOIGULIUIUMUQUNURULIETULIBTUHUJUK $.

    $( A finitely supported function in ` S ` is a finitely supported function.
       (Contributed by Mario Carneiro, 25-Apr-2016.)  (Revised by AV,
       11-Jul-2019.) $)
    dprdffsupp $p |- ( ph -> F finSupp .0. ) $=
      ( vx wfn cv cfv wcel wral cfsupp wbr w3a dprdw mpbid simp3d ) AEGOZNPZEQU
      GBQRNGSZEITUAZAEHRUFUHUIUBMANBCDEFGHIJKLUCUDUE $.

    dprdfcntz.z $e |- Z = ( Cntz ` G ) $.
    $( A function on the elements of an internal direct product has pairwise
       commuting values.  (Contributed by Mario Carneiro, 25-Apr-2016.)
       (Revised by AV, 11-Jul-2019.) $)
    dprdfcntz $p |- ( ph -> ran F C_ ( Z ` ran F ) ) $=
      ( cfv wcel syl wa wceq vy vx vz crn wf wss wfn cv wral eqid dprdff cplusg
      cbs ffn ffvelrnda simpr fveq2d eqcomd oveq12d wne cdprd cdm wbr ad3antrrr
      co simpllr simplr dprdcntz dprdfcl ad2antrr sseldd adantlr adantr syl2anc
      cntzi pm2.61dane ralrimiva wb oveq2 oveq1 eqeq12d ralrn mpbird frn elcntz
      mpbir2and ffnfv sylanbrc ) AGEUDZJPZEUEZWIWJUFAEGUGZUAUHZEPZWJQZUAGUIWKAG
      FUMPZEUEZWLAWPBCDEFGHIKLMNWPUJZUKZGWPEUNRZAWOUAGAWMGQZSZWOWNWPQZWNUBUHZFU
      LPZVEZXDWNXEVEZTZUBWIUIZAGWPWMEWSUOXBXIWNUCUHZEPZXEVEZXKWNXEVEZTZUCGUIZXB
      XNUCGXBXJGQZSZXNWMXJXQWMXJTZSZWNXKXKWNXEXSWMXJEXQXRUPZUQXSXJWMEXSWMXJXTUR
      UQUSXQWMXJUTZSZWNXJBPZJPZQXKYCQZXNYBWMBPZYDWNYBBFGWMXJJAFBVAVBVCXAXPYALVD
      ABVBGTXAXPYAMVDAXAXPYAVFXBXPYAVGXQYAUPOVHXBWNYFQXPYAABCDEFGHWMIKLMNVIVJVK
      XQYEYAAXPYEXAABCDEFGHXJIKLMNVIVLVMXEYCFWNXKJXEUJZOVOVNVPVQXBWLXIXOVRAWLXA
      WTVMXHXNUBUCGEXDXKTXFXLXGXMXDXKWNXEVSXDXKWNXEVTWAWBRWCXBWIWPUFZWOXCXISVRA
      YHXAAWQYHWSGWPEWDRVMUBWNWPXEWIFJWRYGOWERWFVQUAGWJEWGWHGWJEWDR $.
  $}

  ${
    $d f x B $.  $d f h i x G $.  $d f h i x S $.
    dprdssv.b $e |- B = ( Base ` G ) $.
    $( The internal direct product of a family of subgroups is a subset of the
       base.  (Contributed by Mario Carneiro, 25-Apr-2016.) $)
    dprdssv $p |- ( G DProd S ) C_ B $=
      ( vx vf vh vi cdprd co cv wcel cdm wbr wceq cfv wa eqid cvv syl cgsu cixp
      cfsupp crab wrex wb eldprd ax-mp ccntz cmnd cgrp dprdgrp grpmnd reldmdprd
      c0g adantr brrelex2i dmexg simpl eqidd simpr dprdfcntz dprdffsupp gsumzcl
      dprdff eleq1 syl5ibrcom rexlimdva imp sylbi ssriv ) ECBIJZAEKZVLLZCBIMZNZ
      VMCFKZUAJZOZFGKCUOPZUCNGHBMZHKBPUBUDZUEZQZVMALZWAWAOVNWDUFWARVMBFGHCWAWBV
      TVTRZWBRZUGUHVPWCWEVPVSWEFWBVPVQWBLZQZWEVSVRALWIWAAVQCSVTCUIPZDWFWJRZVPCU
      JLZWHVPCUKLWLBCULCUMTUPVPWASLZWHVPBSLWMCBVOUNUQBSURTUPWIABGHVQCWAWBVTWGVP
      WHUSZWIWAUTZVPWHVAZDVEWIBGHVQCWAWBVTWJWGWNWOWPWKVBWIBGHVQCWAWBVTWGWNWOWPV
      CVDVMVRAVFVGVHVIVJVK $.
  $}

  ${
    $d k .- $.  $d h k x .+ $.  $d h n A $.  $d f h k x y F $.  $d h k x y H $.
    $d f h i k n x y G $.  $d f h i k n x y I $.  $d h x N $.  $d k n x y ph $.
    $d h k n x y .0. $.  $d f h i n x y S $.  $d f W $.  $d h n X $.
    eldprdi.0 $e |- .0. = ( 0g ` G ) $.
    eldprdi.w $e |- W = { h e. X_ i e. I ( S ` i ) | h finSupp .0. } $.
    eldprdi.1 $e |- ( ph -> G dom DProd S ) $.
    eldprdi.2 $e |- ( ph -> dom S = I ) $.
    ${
      dprdfid.3 $e |- ( ph -> X e. I ) $.
      dprdfid.4 $e |- ( ph -> A e. ( S ` X ) ) $.
      dprdfid.f $e |- F = ( n e. I |-> if ( n = X , A , .0. ) ) $.
      $( A function mapping all but one arguments to zero sums to the value of
         this argument in a direct product.  (Contributed by Mario Carneiro,
         25-Apr-2016.)  (Revised by AV, 14-Jul-2019.) $)
      dprdfid $p |- ( ph -> ( F e. W /\ ( G gsum F ) = A ) ) $=
        ( wcel cgsu co wceq cv cif cmpt wa ad2antrr simpr fveq2d eleqtrrd csubg
        cfv dprdf2 ffvelrnda subg0cl syl adantr cvv dprddomcld c0g fvex eqeltri
        wn ifclda a1i eqid sniffsupp dprdwd syl5eqel cbs cdprd cdm cgrp dprdgrp
        wbr cmnd grpmnd 3syl dprdff csupp oveq1i cdif eldifsni adantl ifnefalse
        csn wne suppss2 syl5eqss gsumpt iftrue fvmptg syl2anc eqtrd jca ) AGJTH
        GUAUBZBUCAGFIFUDZKUCZBLUEZUFZJSAFWTCDEHIJLNOPAWRITZUGZWSBLWRCUMZXCWSUGZ
        BKCUMZXDABXFTZXBWSRUHXEWRKCXCWSUIUJUKXCLXDTZWSVDXCXDHULUMZTXHAIXIWRCACH
        IOPUNUOXDHLMUPUQURVEAFBXAIUSUSKLACHIOPUTZLUSTALHVAUMUSMHVAVBVCVFXAVGVHV
        IVJZAWQKGUMZBAIHVKUMZGHUSKLXMVGZMAHCVLVMVPHVNTHVQTOCHVOHVRVSXJQAXMCDEGH
        IJLNOPXKXNVTAGLWAUBXALWAUBKWGZGXALWASWBAIWTFUSXOLAWRIXOWCTZUGWRKWHZWTLU
        CXPXQAWRIKWDWEWRKBLWFUQXJWIWJWKAKITXGXLBUCQRFKWTBIXFGWSBLWLSWMWNWOWP $.
    $}

    eldprdi.3 $e |- ( ph -> F e. W ) $.
    $( The domain of definition of the internal direct product, which states
       that ` S ` is a family of subgroups that mutually commute and have
       trivial intersections.  (Contributed by Mario Carneiro, 25-Apr-2016.)
       (Revised by AV, 14-Jul-2019.) $)
    eldprdi $p |- ( ph -> ( G gsum F ) e. ( G DProd S ) ) $=
      ( vf cgsu co cdprd wcel wceq cdm cv wrex eqid oveq2 eqeq2d rspcev sylancl
      wbr wa wb eldprd syl mpbir2and ) AFEPQZFBRQSZFBRUAUIZUOFOUBZPQZTZOHUCZLAE
      HSUOUOTZVANUOUDUTVBOEHURETUSUOUOUREFPUEUFUGUHABUAGTUPUQVAUJUKMUOBOCDFGHIJ
      KULUMUN $.

    ${
      dprdfinv.b $e |- N = ( invg ` G ) $.
      $( Take the inverse of a group sum over a family of elements of disjoint
         subgroups.  (Contributed by Mario Carneiro, 25-Apr-2016.)  (Revised by
         AV, 14-Jul-2019.) $)
      dprdfinv $p |- ( ph -> ( ( N o. F ) e. W /\
                            ( G gsum ( N o. F ) ) = ( N ` ( G gsum F ) ) ) ) $=
        ( vx wcel cfv cvv ccom cgsu co wceq cv cmpt cbs wf cgrp cdm wbr dprdgrp
        cdprd syl eqid grpinvf dprdff fcompt syl2anc wa csubg ffvelrnda dprdfcl
        dprdf2 subginvcl wfun cfsupp csupp wss dprddomcld mptexg a1i dprdffsupp
        funmpt cdif ssid c0g fvex eqeltri suppssr fveq2d grpinvid eqtrd suppss2
        adantr fsuppsssupp syl22anc dprdwd eqeltrd ccntz dprdfcntz gsumzinv jca
        ) AHEUAZIRFWNUBUCFEUBUCHSUDAWNQGQUEZESZHSZUFZIAFUGSZWSHUHZGWSEUHWNWRUDA
        FUIRZWTAFBUMUJUKXAMBFULUNZWSFHWSUOZPUPUNAWSBCDEFGIJLMNOXCUQZQHEGWSWSURU
        SAQWQBCDFGIJLMNAWOGRUTWOBSZFVASZRWPXERWQXERAGXFWOBABFGMNVDVBABCDEFGIWOJ
        LMNOVCXEFHWPPVEUSAWRTRZWRVFZEJVGUKWRJVHUCEJVHUCZVIWRJVGUKAGTRXGABFGMNVJ
        ZQGWQTVKUNXHAQGWQVNVLABCDEFGIJLMNOVMZAGWQQTXIJAWOGXIVORZUTZWQJHSZJXMWPJ
        HAGWSTETXIWOJXDXIXIVIAXIVPVLXJJTRAJFVQSTKFVQVRVSVLVTWAAXNJUDZXLAXAXOXBF
        HJKPWBUNWEWCXJWDEWRTJWFWGWHWIAGWSEFHTJFWJSZXCKXPUOZPXBXJXDABCDEFGIJXPLM
        NOXQWKXKWLWM $.
    $}

    ${
      dprdfadd.4 $e |- ( ph -> H e. W ) $.
      ${
        dprdfadd.b $e |- .+ = ( +g ` G ) $.
        $( Take the sum of group sums over two families of elements of disjoint
           subgroups.  (Contributed by Mario Carneiro, 25-Apr-2016.)  (Revised
           by AV, 14-Jul-2019.) $)
        dprdfadd $p |- ( ph -> ( ( F oF .+ H ) e. W /\
          ( G gsum ( F oF .+ H ) ) = ( ( G gsum F ) .+ ( G gsum H ) ) ) ) $=
          ( wcel cfv vx vk vy cof co cgsu wceq cmpt cvv dprddomcld dprdfcl eqid
          cv cbs dprdff feqmptd offval2 wa csubg dprdf2 ffvelrnda subgcl cfsupp
          syl3anc wbr csupp cfn cun wss dprdffsupp fsuppunfi cdif ssun1 a1i c0g
          fvex eqeltri suppssr ssun2 oveq12d cgrp cdprd cdm dprdgrp syl grpidcl
          grplid syl2anc adantr eqtrd suppss2 ssfi wfun wb funmpt mptexg mpbird
          funisfsupp dprdwd eqeltrd ccntz cmnd grpmnd dprdfcntz csn vex csubmnd
          cres eldifi adantl ffvelrn syl2an snssd cntzsubm wfn wral ffn fnssres
          wf simprl fvres ad2antrr ad2antlr ffvelrnd subgss mpdan sselda wn wne
          cntz2ss simpr simplrr nelne2 dprdcntz sseldd ralrimiva ffnfv sylanbrc
          eldifbd crn resss ax-mp cntzidss sylancl fsuppres gsumzsubmcl fssresd
          rnss gsumzcl cntzrec mpbid snss sylibr gsumzaddlem jca ) AFHBUDUEZJSG
          UUPUFUEGFUFUEGHUFUEBUEUGAUUPUAIUAUMZFTZUUQHTZBUEZUHZJAUAIUURUUSBFHUIU
          UQCTZUVBACGINOUJZACDEFGIJUUQKMNOPUKZACDEHGIJUUQKMNOQUKZAUAIGUNTZFAUVF
          CDEFGIJKMNOPUVFULZUOZUPAUAIUVFHAUVFCDEHGIJKMNOQUVGUOZUPUQAUAUUTCDEGIJ
          KMNOAUUQISURUVBGUSTZSUURUVBSUUSUVBSUUTUVBSAIUVJUUQCACGINOUTVAUVDUVEBU
          VBGUURUUSRVBVDAUVAKVCVEZUVAKVFUEZVGSZAFKVFUEZHKVFUEZVHZVGSUVLUVPVIUVM
          AFHKACDEFGIJKMNOPVJZACDEHGIJKMNOQVJZVKAIUUTUAUIUVPKAUUQIUVPVLSZURZUUT
          KKBUEZKUVTUURKUUSKBAIUVFUIFUIUVPUUQKUVHUVNUVPVIAUVNUVOVMVNUVCKUISZAKG
          VOTUILGVOVPVQVNZVRAIUVFUIHUIUVPUUQKUVIUVOUVPVIAUVOUVNVSVNUVCUWCVRVTAU
          WAKUGZUVSAGWASZKUVFSZUWDAGCWBWCVEZUWENCGWDWEZAUWEUWFUWHUVFGKUVGLWFWEU
          VFBGKKUVGRLWGWHWIWJUVCWKUVPUVLWLWHAUVAWMZUVAUISZUWBUVKUVMWNUWIAUAIUUT
          WOVNAIUISUWJUVCUAIUUTUIWPWEUWCUVAUIUIKWRVDWQWSWTZAUAIUVFBUBFGHUIFHVHK
          VFUEZKGXATZUVGLRUWMULZAUWEGXBSZUWHGXCWEZUVCUVQUVRUWLULUVHUVIACDEFGIJK
          UWMMNOPUWNXDACDEHGIJKUWMMNOQUWNXDZACDEUUPGIJKUWMMNOUWKUWNXDAUUQIVIZUB
          UMZIUUQVLSZURZURZUWSFTZXEZGHUUQXHZUFUEZXEZUWMTZVIZUXCUXHSUXBUXGUXDUWM
          TZVIZUXIUXBUXFUXJUXBUUQUXJUXEGUIKUWMLUWNAUWOUXAUWPWIZUUQUISUXBUAXFVNZ
          UXBUWOUXDUVFVIZUXJGXGTSUXLUXBUXCUVFAIUVFFXSUWSISZUXCUVFSUXAUVHUWTUXOU
          WRUWSIUUQXIXJZIUVFUWSFXKXLXMZUVFUXDGUWMUVGUWNXNWHUXBUXEUUQXOZUCUMZUXE
          TZUXJSZUCUUQXPUUQUXJUXEXSUXBHIXOZUWRUXRUXBIUVFHXSZUYBAUYCUXAUVIWIZIUV
          FHXQWEAUWRUWTXTZIUUQHXRWHUXBUYAUCUUQUXBUXSUUQSZURZUXTUXSHTZUXJUYFUXTU
          YHUGUXBUXSUUQHYAXJUYGUWSCTZUWMTZUXJUYHUYGUYIUVFVIZUXDUYIVIUYJUXJVIUYG
          UYIUVJSUYKUYGIUVJUWSCUYGCGIAUWGUXAUYFNYBZACWCIUGUXAUYFOYBZUTUXAUXOAUY
          FUXPYCZYDUVFUYIGUVGYEWEUYGUXCUYIUYGUXOUXCUYISUYNUYGCDEFGIJUWSKMUYLUYM
          AFJSUXAUYFPYBUKYFXMUVFUYIUXDGUWMUVGUWNYJWHUYGUXSCTZUYJUYHUYGCGIUXSUWS
          UWMUYLUYMUXBUUQIUXSUYEYGZUYNUYGUYFUWSUUQSYHUXSUWSYIUXBUYFYKUYGUWSIUUQ
          AUWRUWTUYFYLYSUXSUWSUUQYMWHUWNYNUYGUXSISUYHUYOSUYPUYGCDEHGIJUXSKMUYLU
          YMAHJSUXAUYFQYBUKYFYOYOWTYPUCUUQUXJUXEYQYRAUXEYTZUYQUWMTVIZUXAAHYTZUY
          SUWMTVIUYQUYSVIZUYRUWQUXEHVIUYTHUUQUUAUXEHUUHUUBUYSUYQGUWMUWNUUCUUDWI
          ZAUXEKVCVEUXAAHUIUUQKUVRUWCUUEWIZUUFXMUXBUXGUVFVIUXNUXKUXIWNUXBUXFUVF
          UXBUUQUVFUXEGUIKUWMUVGLUWNUXLUXMUXBIUVFUUQHUYDUYEUUGVUAVUBUUIXMUXQUVF
          UXGUXDGUWMUVGUWNUUJWHUUKUXCUXHUWSFVPUULUUMUUNUUO $.
      $}

      dprdfsub.b $e |- .- = ( -g ` G ) $.
      $( Take the difference of group sums over two families of elements of
         disjoint subgroups.  (Contributed by Mario Carneiro, 25-Apr-2016.)
         (Revised by AV, 14-Jul-2019.) $)
      dprdfsub $p |- ( ph -> ( ( F oF .- H ) e. W /\
        ( G gsum ( F oF .- H ) ) = ( ( G gsum F ) .- ( G gsum H ) ) ) ) $=
        ( vk co vx cof wcel cgsu wceq cminusg cfv ccom cplusg cv cmpt wa dprdff
        cbs eqid ffvelrnda grpsubval syl2anc mpteq2dva dprddomcld feqmptd fvexd
        cvv offval2 wf1o wf cdprd cdm wbr cgrp dprdgrp syl grpinvf1o f1of fveq2
        fmptco 3eqtr4d dprdfinv simpld eqeltrd oveq2d simprd dprdssv sseldi jca
        dprdfadd eldprdi eqtrd ) AEGIUBTZJUCFWIUDTZFEUDTZFGUDTZITZUEAWIEFUFUGZG
        UHZFUIUGZUBTZJASHSUJZEUGZWRGUGZITZUKSHWSWTWNUGZWPTZUKWIWQASHXAXCAWRHUCU
        LZWSFUNUGZUCWTXEUCXAXCUEAHXEWREAXEBCDEFHJKMNOPXEUOZUMZUPZAHXEWRGAXEBCDG
        FHJKMNOQXFUMZUPZXEWPFWNIWSWTXFWPUOZWNUOZRUQURUSASHWSWTIEGVCXEXEABFHNOUT
        ZXHXJASHXEEXGVAZASHXEGXIVAZVDASHWSXBWPEWOVCXEVCXMXHXDWTWNVBXNASUAHXEWTU
        AUJZWNUGXBGWNXJXOAUAXEXEWNAXEXEWNVEXEXEWNVFAXEFWNXFXLAFBVGVHVIFVJUCNBFV
        KVLVMXEXEWNVNVLVAXPWTWNVOVPVDVQZAWQJUCZFWQUDTZWKFWOUDTZWPTZUEZAWPBCDEFW
        OHJKLMNOPAWOJUCZXTWLWNUGZUEZABCDGFHWNJKLMNOQXLVRZVSXKWFZVSVTAWJXSWMAWIW
        QFUDXQWAAYAWKYDWPTZXSWMAXTYDWKWPAYCYEYFWBWAAXRYBYGWBAWKXEUCWLXEUCWMYHUE
        AFBVGTZXEWKXEBFXFWCZABCDEFHJKLMNOPWGWDAYIXEWLYJABCDGFHJKLMNOQWGWDXEWPFW
        NIWKWLXFXKXLRUQURVQWHWE $.
    $}

    $( The zero function is the only function that sums to zero in a direct
       product.  (Contributed by Mario Carneiro, 25-Apr-2016.)  (Revised by AV,
       14-Jul-2019.) $)
    dprdfeq0 $p |- ( ph ->
      ( ( G gsum F ) = .0. <-> F = ( x e. I |-> .0. ) ) ) $=
      ( co wceq cfv wcel ad2antrr vy cgsu cmpt wa cv eqid dprdff feqmptd adantr
      cbs csn cdif cima cuni csubg cmrc cin dprdfcl adantlr cif csg cof cdm wbr
      cdprd dprdfid simpld dprdfsub simprd cvv dprddomcld fvex c0g eqeltri ifex
      simpr a1i fvexd eqidd offval2 oveq2d simplr oveq12d cgrp dprdgrp ffvelrnd
      wf syl grpsubid1 syl2anc eqtrd 3eqtr3d ccntz cmnd grpmnd 3syl csubmnd wss
      cmre cacs subgacs acsmre cpw crn imassrn dprdf2 frn mresspw sstrd sspwuni
      syl5ss sylib mrccl subgsubm oveq1 eleq1d fveq2d grpsubid subg0cl mrcssidd
      eqeltrd wfn ffn difssd wne df-ne eldifsn biimpri sylan2br adantll fnfvima
      wn syl3anc elunii sseldd subgsubcl ifbothda fmptd eqeltrrd dprdfcntz ex
      dprdffsupp gsumzsubmcl elind dprddisj eleqtrd elsni mpteq2dva gsumz oveq2
      eqeq1d syl5ibrcom impbid ) AGFUBPZJQZFBHJUCZQZAUUOUUQAUUOUDZFBHBUEZFRZUCZ
      UUPAFUVAQUUOABHGUJRZFAUVBCDEFGHIJLMNOUVBUFZUGZUHUIUURBHUUTJUURUUSHSZUDZUU
      TJUKZSUUTJQUVFUUTUUSCRZCHUUSUKZULZUMZUNZGUORZUPRZRZUQUVGUVFUVHUVOUUTAUVEU
      UTUVHSUUOACDEFGHIUUSJLMNOURUSZUVFGUAHUAUEZUUSQZUUTJUTZUVQFRZGVARZPZUCZUBP
      ZUUTUVOUVFGUAHUVSUCZFUWAVBPZUBPZGUWEUBPZUUNUWAPZUWDUUTUVFUWFISZUWGUWIQZUV
      FCDEUWEGFHUWAIJKLAGCVEVCVDZUUOUVEMTZACVCHQUUOUVENTZUVFUWEISZUWHUUTQZUVFUU
      TCDEUAUWEGHIUUSJKLUWMUWNUURUVEVPZUVPUWEUFVFZVGAFISUUOUVEOTZUWAUFZVHZVIUVF
      UWFUWCGUBUVFUAHUVSUVTUWAUWEFVJVJVJAHVJSZUUOUVEACGHMNVKZTZUVSVJSUVFUVQHSZU
      DZUVRUUTJUUSFVLJGVMRVJKGVMVLVNVOVQUXFUVQFVRUVFUWEVSUVFUAHUVBFAHUVBFWGUUOU
      VEUVDTZUHVTZWAUVFUWIUUTJUWAPZUUTUVFUWHUUTUUNJUWAUVFUWOUWPUWRVIAUUOUVEWBWC
      UVFGWDSZUUTUVBSZUXIUUTQUVFUWLUXJUWMCGWEZWHZUVFHUVBUUSFUXGUWQWFZUVBGUWAUUT
      JUVCKUWTWIWJWKWLUVFHUVOUWCGVJJGWMRZKUXOUFZAGWNSZUUOUVEAUWLUXJUXQMUXLGWOWP
      ZTUXDUVFUVOUVMSZUVOGWQRSUVFUVMUVBWSRSZUVLUVBWRZUXSUVFUXJUVMUVBWTRSUXTUXMU
      VBGUVCXAUVMUVBXBWPZUVFUVKUVBXCZWRUYAUVFUVKCXDZUYCCUVJXEUVFUYDUVMUYCUVFHUV
      MCWGZUYDUVMWRAUYEUUOUVEACGHMNXFTZHUVMCXGWHUVFUXTUVMUYCWRUYBUVMUVBXHWHXIXK
      UVKUVBXJXLZUVMUVLUVNUVBUVNUFZXMWJZUVOGXNWHUVFUAHUWBUVOUWCUVRUUTUVTUWAPZUV
      OSJUVTUWAPZUVOSZUWBUVOSUXFUUTJUUTUVSQUYJUWBUVOUUTUVSUVTUWAXOXPJUVSQUYKUWB
      UVOJUVSUVTUWAXOXPUXFUVRUDZUYJUUTUUTUWAPZUVOUYMUVTUUTUUTUWAUYMUVQUUSFUXFUV
      RVPXQWAUVFUYNUVOSUXEUVRUVFUYNJUVOUVFUXJUXKUYNJQUXMUXNUVBGUWAUUTJUVCKUWTXR
      WJUVFUXSJUVOSZUYIUVOGJKXSZWHYATYAUXFUVRYLZUDZUXSUYOUVTUVOSUYLUVFUXSUXEUYQ
      UYITZUYRUXSUYOUYSUYPWHUYRUVLUVOUVTUVFUVLUVOWRUXEUYQUVFUVMUVLUVNUVBUYBUYHU
      YGXTTUYRUVTUVQCRZSZUYTUVKSZUVTUVLSUXFVUAUYQUVFCDEFGHIUVQJLUWMUWNUWSURUIUY
      RCHYBZUVJHWRUVQUVJSZVUBUVFVUCUXEUYQUVFUYEVUCUYFHUVMCYCWHTUYRHUVIYDUXEUYQV
      UDUVFUYQUXEUVQUUSYEZVUDUVQUUSYFVUDUXEVUEUDUVQHUUSYGYHYIYJHUVJCUVQYKYMUVTU
      YTUVKYNWJYOUVOGUWAJUVTUWTYPYMYQUWCUFYRUVFCDEUWCGHIJUXOLUWMUWNUVFUWFUWCIUX
      HUVFUWJUWKUXAVGYSZUXPYTUVFCDEUWCGHIJLUWMUWNVUFUUBUUCYSUUDUVFCGHUVNUUSJUWM
      UWNUWQKUYHUUEUUFUUTJUUGWHUUHWKUUAAUUOUUQGUUPUBPZJQZAUXQUXBVUHUXRUXCHBGVJJ
      KUUIWJUUQUUNVUGJFUUPGUBUUJUUKUULUUM $.

    dprdf11.4 $e |- ( ph -> H e. W ) $.
    $( Two group sums over a direct product that give the same value are equal
       as functions.  (Contributed by Mario Carneiro, 25-Apr-2016.)  (Revised
       by AV, 14-Jul-2019.) $)
    dprdf11 $p |- ( ph -> ( ( G gsum F ) = ( G gsum H ) <-> F = H ) ) $=
      ( vx wceq co wcel cv cfv wral cgsu csg wfn cbs eqid dprdff ffn syl eqfnfv
      wb syl2anc cof cmpt dprdfsub simpld dprdfeq0 simprd eqeq1d cvv dprddomcld
      wf wa fvexd feqmptd offval2 ovex rgenw mpteqb ax-mp cdprd cdm wbr dprdgrp
      adantr ffvelrnda grpsubeq0 syl3anc ralbidva bitrd 3bitr3d dprdssv eldprdi
      cgrp syl5bb sseldi 3bitr2rd ) AEGRZQUAZEUBZWKGUBZRZQHUCZFEUDSZFGUDSZFUEUB
      ZSZJRZWPWQRZAEHUFZGHUFZWJWOUMAHFUGUBZEVDXBAXDBCDEFHIJLMNOXDUHZUIZHXDEUJUK
      AHXDGVDXCAXDBCDGFHIJLMNPXEUIZHXDGUJUKQHEGULUNAFEGWRUOSZUDSZJRXHQHJUPZRZWT
      WOAQBCDXHFHIJKLMNAXHITZXIWSRZABCDEFGHWRIJKLMNOPWRUHZUQZURUSAXIWSJAXLXMXOU
      TVAAXKQHWLWMWRSZUPZXJRZWOAXHXQXJAQHWLWMWREGVBVBVBABFHMNVCAWKHTZVEZWKEVFXT
      WKGVFAQHXDEXFVGAQHXDGXGVGVHVAXRXPJRZQHUCZAWOXPVBTZQHUCXRYBUMYCQHWLWMWRVIV
      JQHXPJVBVKVLAYAWNQHXTFWFTZWLXDTWMXDTYAWNUMAYDXSAFBVMVNVOYDMBFVPUKZVQAHXDW
      KEXFVRAHXDWKGXGVRXDFWRWLWMJXEKXNVSVTWAWGWBWCAYDWPXDTWQXDTWTXAUMYEAFBVMSZX
      DWPXDBFXEWDZABCDEFHIJKLMNOWEWHAYFXDWQYGABCDGFHIJKLMNPWEWHXDFWRWPWQJXEKXNV
      SVTWI $.
  $}

  ${
    $d f g h i k x y G $.  $d f g h i k x y S $.
    $( The internal direct product of a family of subgroups is a subgroup.
       (Contributed by Mario Carneiro, 25-Apr-2016.) $)
    dprdsubg $p |- ( G dom DProd S -> ( G DProd S ) e. ( SubGrp ` G ) ) $=
      ( vx vy vh vi vk vf vg wbr co cfv wcel cv eqid cgsu cvv wa wceq wrex wral
      cdprd cdm csubg cbs wss c0 wne csg dprdssv a1i c0g csn cxp cfsupp cixp id
      crab eqidd wfn fvex fnconstg mp1i fvconst2 adantl dprdf ffvelrnda subg0cl
      syl eqeltrd ralrimiva wnel df-nel dprddomprc sylbir con4i fczfsuppd dprdw
      wn mpbir3and eldprdi ne0i wb eldprd baibd anbi12d reeanv cof simpl simprl
      mpan simprr dprdfsub simprd simpld eqeltrrd syl5ibrcom rexlimdvva syl5bir
      oveq12 eleq1d sylbid ralrimivv cgrp w3a dprdgrp issubg4 ) BAUBUCJZBAUBKZB
      UDLZMZXIBUELZUFZXIUGUHZCNZDNZBUILZKZXIMZDXIUACXIUAZXMXHXLABXLOZUJUKXHBAUC
      ZBULLZUMUNZPKZXIMXNXHAEFYDBYBENYCUOJEFYBFNALUPURZYCYCOZYFOZXHUQZXHYBUSZXH
      YDYFMYDYBUTZGNZYDLZYLALZMZGYBUAYDYCUOJYCQMZYKXHBULVAZYBYCQVBVCXHYOGYBXHYL
      YBMZRZYMYCYNYRYMYCSXHYBYCYLYQVDVEYSYNXJMYCYNMXHYBXJYLAABVFVGYNBYCYGVHVIVJ
      VKXHYBQQYCYBQMZXHYTVSYBQVLXHVSYBQVMABVNVOVPYPXHYQUKVQXHGAEFYDBYBYFYCYHYIY
      JVRVTWAXIYEWBVIXHXSCDXIXIXHXOXIMZXPXIMZRZXOBHNZPKZSZHYFTZXPBINZPKZSZIYFTZ
      RZXSYBYBSZXHUUCUULWCYBOUUMXHRUUAUUGUUBUUKUUMUUAXHUUGXOAHEFBYBYFYCYGYHWDWE
      UUMUUBXHUUKXPAIEFBYBYFYCYGYHWDWEWFWKUULUUFUUJRZIYFTHYFTXHXSUUFUUJHIYFYFWG
      XHUUNXSHIYFYFXHUUDYFMZUUHYFMZRZRZXSUUNUUEUUIXQKZXIMUURBUUDUUHXQWHKZPKZUUS
      XIUURUUTYFMZUVAUUSSZUURAEFUUDBUUHYBXQYFYCYGYHXHUUQWIZUURYBUSZXHUUOUUPWJXH
      UUOUUPWLXQOZWMZWNUURAEFUUTBYBYFYCYGYHUVDUVEUURUVBUVCUVGWOWAWPUUNXRUUSXIXO
      UUEXPUUIXQWTXAWQWRWSXBXCXHBXDMXKXMXNXTXEWCABXFCDXLXIBXQYAUVFXGVIVT $.
  $}

  ${
    $d h i n x G $.  $d h i n I $.  $d h i n x S $.  $d h n x X $.
    $d n x ph $.
    dprdub.1 $e |- ( ph -> G dom DProd S ) $.
    dprdub.2 $e |- ( ph -> dom S = I ) $.
    dprdub.3 $e |- ( ph -> X e. I ) $.
    $( Each factor is a subset of the internal direct product.  (Contributed by
       Mario Carneiro, 25-Apr-2016.) $)
    dprdub $p |- ( ph -> ( S ` X ) C_ ( G DProd S ) ) $=
      ( vx vn vh vi cfv cdprd co cv wcel wceq eqid adantr c0g cif cmpt cgsu wbr
      wa cfsupp cixp crab simpr dprdfid simprd simpld eldprdi eqeltrrd ex ssrdv
      cdm ) AIEBMZCBNOZAIPZUSQZVAUTQAVBUFZCJDJPERVACUAMZUBUCZUDOZVAUTVCVEKPVDUG
      UEKLDLPBMUHUIZQZVFVARZVCVABKLJVECDVGEVDVDSZVGSZACBNURUEVBFTZABURDRVBGTZAE
      DQVBHTAVBUJVESUKZULVCBKLVECDVGVDVJVKVLVMVCVHVIVNUMUNUOUPUQ $.
  $}

  ${
    $d f h i k G $.  $d f h i k I $.  $d f k ph $.  $d f h i k S $.
    $d f k T $.
    dprdlub.1 $e |- ( ph -> G dom DProd S ) $.
    dprdlub.2 $e |- ( ph -> dom S = I ) $.
    dprdlub.3 $e |- ( ph -> T e. ( SubGrp ` G ) ) $.
    dprdlub.4 $e |- ( ( ph /\ k e. I ) -> ( S ` k ) C_ T ) $.
    $( The direct product is smaller than any subgroup which contains the
       factors.  (Contributed by Mario Carneiro, 25-Apr-2016.) $)
    dprdlub $p |- ( ph -> ( G DProd S ) C_ T ) $=
      ( vf vh vi cv cfv eqid wf wcel adantr syl cdprd c0g cfsupp cixp crab cgsu
      co wbr cmpt crn cdm wceq dprdval syl2anc wss wa ccntz cgrp dprdgrp grpmnd
      cvv cmnd 3syl dprddomcld csubg csubmnd subgsubm wfn wral cbs simpr dprdff
      ffn adantlr dprdfcl sseldd ralrimiva ffnfv sylanbrc dprdfcntz gsumzsubmcl
      dprdffsupp fmptd frn eqsstrd ) AEBUAUGZKLNEUBOZUCUHLMFMNBOUDUEZEKNZUFUGZU
      IZUJZCAEBUAUKUHZBUKFULZWFWLULGHBKLMEFWHWGWGPZWHPZUMUNAWHCWKQWLCUOAKWHWJCW
      KAWIWHRZUPZFCWIEVAWGEUQOZWOWSPZWRWMEURREVBRAWMWQGSZBEUSEUTVCAFVARWQABEFGH
      VDSWRCEVEORZCEVFORAXBWQISCEVGTWRWIFVHZDNZWIOZCRZDFVIFCWIQWRFEVJOZWIQXCWRX
      GBLMWIEFWHWGWPXAAWNWQHSZAWQVKZXGPVLFXGWIVMTWRXFDFWRXDFRZUPXDBOZCXEAXJXKCU
      OWQJVNWRBLMWIEFWHXDWGWPXAXHXIVOVPVQDFCWIVRVSWRBLMWIEFWHWGWSWPXAXHXIWTVTWR
      BLMWIEFWHWGWPXAXHXIWBWAWKPWCWHCWKWDTWE $.
  $}

  ${
    $d k G $.  $d k K $.  $d k S $.
    dprdspan.k $e |- K = ( mrCls ` ( SubGrp ` G ) ) $.
    $( The direct product is the span of the union of the factors.
       (Contributed by Mario Carneiro, 25-Apr-2016.) $)
    dprdspan $p |- ( G dom DProd S -> ( G DProd S ) = ( K ` U. ran S ) ) $=
      ( vk cdprd cdm wbr co crn cuni cfv id eqidd csubg wcel wss syl wral iunss
      cbs cmre cgrp cacs dprdgrp eqid subgacs acsmre 3syl cv ciun wceq wf dprdf
      wfn fniunfv wa simpl simpr dprdub ralrimiva sylibr eqsstr3d dprdssv mrccl
      ffn syl6ss syl2anc eqimss sylib r19.21bi mrcssidd adantr dprdlub dprdsubg
      sstrd mrcsscl syl3anc eqssd ) BAFGHZBAFIZAJKZCLZVTAWCEBAGZVTMVTWDNVTBOLZB
      UALZUBLPZWBWFQWCWEPVTBUCPWEWFUDLPWGABUEWFBWFUFZUGWEWFUHUIZVTWBWAWFVTWBEWD
      EUJZALZUKZWAVTAWDUOZWLWBULZVTWDWEAUMWMABUNWDWEAVFREWDAUPRZVTWKWAQZEWDSWLW
      AQVTWPEWDVTWJWDPZUQZABWDWJVTWQURWRWDNVTWQUSUTVAEWDWKWATVBVCZWFABWHVDVGZWE
      WBCWFDVEVHWRWKWBWCVTWKWBQZEWDVTWLWBQZXAEWDSVTWNXBWOWLWBVIREWDWKWBTVJVKVTW
      BWCQWQVTWEWBCWFWIDWTVLVMVPVNVTWGWBWAQWAWEPWCWAQWIWSABVOWEWBCWAWFDVQVRVS
      $.
  $}

  ${
    $d x y A $.  $d x y G $.  $d x y ph $.  $d x y S $.
    dprdres.1 $e |- ( ph -> G dom DProd S ) $.
    dprdres.2 $e |- ( ph -> dom S = I ) $.
    dprdres.3 $e |- ( ph -> A C_ I ) $.
    $( Restriction of a direct product (dropping factors).  (Contributed by
       Mario Carneiro, 25-Apr-2016.) $)
    dprdres $p |- ( ph -> ( G dom DProd ( S |` A ) /\
      ( G DProd ( S |` A ) ) C_ ( G DProd S ) ) ) $=
      ( vx vy cdprd cdm wss wcel cfv cuni wceq syl eqid adantr cres wbr co cgrp
      csubg wf cv ccntz csn cdif wral cima cmrc cin c0g dprdgrp dprdf2 ad2antrr
      wa fssresd simplr sseldd eldifi adantl wne eldifsni necomd dprdcntz fvres
      fveq2d 3sstr4d ralrimiva ineq1d cbs cmre cacs subgacs acsmre resss imass1
      3syl ax-mp ssdif imass2 syl5ss unissd cpw crn imassrn subgss selpw sylibr
      ssriv syl6ss sspwuni sylib mrcssd sslin sselda dprddisj sseqtrd ffvelrnda
      frn syldan subg0cl sstrd mrccl syl2anc elind snssd eqssd eqtrd jca cvv wb
      w3a dprddomcld ssexd fdm dmdprd mpbir3and rnss uniss mp2b a1i dprdspan )
      ADCBUAZKLZUBZDYGKUCZDCKUCZMAYIDUDNZBDUEOZYGUFZIUGZYGOZJUGZYGOZDUHOZOZMZJB
      YOUIZUJZUKZYPYGUUCULZPZYMUMOZOZUNZDUOOZUIZQZUSZIBUKZADCYHUBZYLFCDUPRZAEYM
      BCACDEFGUQZHUTZAUUMIBAYOBNZUSZUUDUULUUTUUAJUUCUUTYQUUCNZUSZYOCOZYQCOZYSOY
      PYTUVBCDEYOYQYSAUUOUUSUVAFURACLEQZUUSUVAGURUVBBEYOABEMZUUSUVAHURZAUUSUVAV
      AZVBUVBBEYQUVGUVAYQBNZUUTYQBUUBVCVDZVBUVBYQYOUVAYQYOVEUUTYQBYOVFVDVGYSSZV
      HUVBUUSYPUVCQZUVHYOBCVIZRUVBYRUVDYSUVBUVIYRUVDQUVJYQBCVIRVJVKVLUUTUUIUVCU
      UHUNZUUKUUTYPUVCUUHUUSUVLAUVMVDVMUUTUVNUUKUUTUVNUVCCEUUBUJZULZPZUUGOZUNZU
      UKUUTUUHUVRMUVNUVSMUUTYMUUFUUGUVQDVNOZAYMUVTVOONZUUSAYLYMUVTVPONUWAUUPUVT
      DUVTSZVQYMUVTVRWAZTZUUGSZUUTUUEUVPUUTUUECUUCULZUVPYGCMZUUEUWFMCBVSZYGCUUC
      VTWBUUTUVFUUCUVOMUWFUVPMAUVFUUSHTBEUUBWCUUCUVOCWDWAWEWFZUUTUVPUVTWGZMUVQU
      VTMUUTUVPCWHZUWJCUVOWIAUWKUWJMZUUSAUWKYMUWJAEYMCUFUWKYMMUUQEYMCXCRIYMUWJY
      OYMNYOUVTMYOUWJNUVTYODUWBWJIUVTWKWLWMWNZTWEUVPUVTWOWPZWQUUHUVRUVCWRRUUTCD
      EUUGYOUUJAUUOUUSFTAUVEUUSGTABEYOHWSZUUJSZUWEWTXAUUTUUJUVNUUTUVCUUHUUJUUTU
      VCYMNZUUJUVCNAUUSYOENUWQUWOAEYMYOCUUQXBXDUVCDUUJUWPXERUUTUUHYMNZUUJUUHNUU
      TUWAUUFUVTMUWRUWDUUTUUFUVQUVTUWIUWNXFYMUUFUUGUVTUWEXGXHUUHDUUJUWPXERXIXJX
      KXLXMVLABXNNYGLBQZYIYLYNUUNXPXOABEXNACDEFGXQHXRAYNUWSUURBYMYGXSRIJYGDBUUG
      XNUUJYSUVKUWPUWEXTXHYAZAYGWHZPZUUGOZUWKPZUUGOZYJYKAYMUXBUUGUXDUVTUWCUWEUX
      BUXDMZAUWGUXAUWKMUXFUWHYGCYBUXAUWKYCYDYEAUWLUXDUVTMUWMUWKUVTWOWPWQAYIYJUX
      CQUWTYGDUUGUWEYFRAUUOYKUXEQFCDUUGUWEYFRVKXM $.
  $}

  ${
    $d a f h k x y G $.  $d a k x y ph $.  $d a f h k x y S $.  $d a f h k T $.
    $d f h k x y I $.
    dprdss.1 $e |- ( ph -> G dom DProd T ) $.
    dprdss.2 $e |- ( ph -> dom T = I ) $.
    dprdss.3 $e |- ( ph -> S : I --> ( SubGrp ` G ) ) $.
    dprdss.4 $e |- ( ( ph /\ k e. I ) -> ( S ` k ) C_ ( T ` k ) ) $.
    $( Create a direct product by finding subgroups inside each factor of
       another direct product.  (Contributed by Mario Carneiro,
       25-Apr-2016.) $)
    dprdss $p |- ( ph ->
      ( G dom DProd S /\ ( G DProd S ) C_ ( G DProd T ) ) ) $=
      ( vf vh wss cfv eqid wcel syl cv wceq adantr vx vy va cdprd cdm wbr csubg
      co cmrc cvv c0g ccntz cgrp dprdgrp dprddomcld wne wa wral ralrimiva fveq2
      w3a sseq12d rspcv mpan9 3ad2antr1 simpr1 simpr2 simpr3 dprdcntz wf dprdf2
      cbs ffvelrnd subgss sylc cntz2ss syl2anc csn cdif cima cuni cin cacs cmre
      sstrd subgacs acsmre 3syl ciun difss ssralv mpsyl ss2iun funiunfv 3sstr3d
      wfun ffun cpw crn imassrn mresspw syl5ss sspwuni sylib mrcssd ss2in simpr
      frn dprddisj sseqtrd dmdprdd cgsu cfsupp cixp crab wrex a1d ss2ixp rabss2
      wi ssrexv anim12d wb fdm eldprd 3imtr4d ssrdv jca ) AEBUDUEZUFZEBUDUHZECU
      DUHZMAUAUBBEFEUGNZUINZUJEUKNZEULNZYPOZYOOZYNOZAECYIUFZEUMPZGCEUNQZACEFGHU
      OIAUARZFPZUBRZFPZUUCUUEUPZVAZUQZUUCBNZUUCCNZUUEBNZYPNZAUUFUUDUUJUUKMZUUGA
      DRZBNZUUOCNZMZDFURZUUDUUNAUURDFJUSZUURUUNDUUCFUUOUUCSUUPUUJUUQUUKUUOUUCBU
      TUUOUUCCUTVBVCVDZVEUUIUUKUUECNZYPNZUUMUUICEFUUCUUEYPAYTUUHGTACUEFSZUUHHTA
      UUDUUFUUGVFAUUDUUFUUGVGZAUUDUUFUUGVHYQVIUUIUVBEVLNZMZUULUVBMZUVCUUMMUUIUV
      BYMPUVGUUIFYMUUECAFYMCVJZUUHACEFGHVKZTUVEVMUVFUVBEUVFOZVNQUUIUUFUUSUVHUVE
      AUUSUUHUUTTUURUVHDUUEFUUOUUESUUPUULUUQUVBUUOUUEBUTUUOUUECUTVBVCVOUVFUVBUU
      LEYPUVKYQVPVQWEWEAUUDUQZUUJBFUUCVRZVSZVTWAZYNNZWBZUUKCUVNVTZWAZYNNZWBZYOV
      RUVLUUNUVPUVTMUVQUWAMUVAUVLYMUVOYNUVSUVFUVLUUAYMUVFWCNPYMUVFWDNPZAUUAUUDU
      UBTUVFEUVKWFYMUVFWGWHZYSUVLDUVNUUPWIZDUVNUUQWIZUVOUVSUVLUURDUVNURZUWDUWEM
      UVNFMUVLUUSUWFFUVMWJAUUSUUDUUTTUURDUVNFWKWLDUVNUUPUUQWMQUVLFYMBVJZBWPUWDU
      VOSAUWGUUDITFYMBWQDUVNBWNWHUVLUVICWPUWEUVSSAUVIUUDUVJTZFYMCWQDUVNCWNWHWOU
      VLUVRUVFWRZMUVSUVFMUVLUVRCWSZUWICUVNWTUVLUWJYMUWIUVLUVIUWJYMMUWHFYMCXHQUV
      LUWBYMUWIMUWCYMUVFXAQWEXBUVRUVFXCXDXEUUJUUKUVPUVTXFVQUVLCEFYNUUCYOAYTUUDG
      TAUVDUUDHTAUUDXGYRYSXIXJXKAUCYKYLAYJUCRZEKRXLUHSZKLRYOXMUFZLDFUUPXNZXOZXP
      ZUQZYTUWLKUWMLDFUUQXNZXOZXPZUQZUWKYKPZUWKYLPZAYJYTUWPUWTAYTYJGXQAUWNUWRMZ
      UWOUWSMUWPUWTXTAUUSUXDUUTDFUUPUUQXRQUWMLUWNUWRXSUWLKUWOUWSYAWHYBAUWGBUEFS
      UXBUWQYCIFYMBYDUWKBKLDEFUWOYOYRUWOOYEWHAUVDUXCUXAYCHUWKCKLDEFUWSYOYRUWSOY
      EQYFYGYH $.
  $}

  ${
    $d x y z .0. $.  $d x y z G $.  $d x y z I $.  $d x y z V $.
    dprd0.0 $e |- .0. = ( 0g ` G ) $.
    $( A family consisting entirely of trivial groups is an internal direct
       product, the product of which is the trivial subgroup.  (Contributed by
       Mario Carneiro, 25-Apr-2016.) $)
    dprdz $p |- ( ( G e. Grp /\ I e. V ) ->
      ( G dom DProd ( x e. I |-> { .0. } ) /\
        ( G DProd ( x e. I |-> { .0. } ) ) = { .0. } ) ) $=
      ( vy vz wcel wa csn wceq cfv eqid cv wss adantr snssd subg0cl syl cdm wbr
      cgrp cmpt cdprd csubg cmrc ccntz simpl simpr 0subg ad2antrr fmptd wne w3a
      co cbs grpidcl cntzsubg syldan simpr1 eqidd fvmpt3i simpr2 fveq2d 3sstr4d
      snex cdif cima cuni cin adantl ineq1d cmre subgacs acsmred cpw imassrn wf
      cacs crn frn mresspw sstrd syl5ss sspwuni sylib mrccl syl2anc df-ss eqtrd
      eqimss dmdprdd dmmptd dprdlub dprdsubg 3syl eqssd jca ) BUCIZCDIZJZBACEKZ
      UDZUEUAUBZBXDUEUPZXCLXBGHXDBCBUFMZUGMZDEBUHMZXINZFXHNZWTXAUIWTXAUJXBACXCX
      GXDWTXCXGIZXAAOZCIBEFUKZULZXDNZUMZXBGOZCIZHOZCIZXRXTUNZUOZJZXCXCXIMZXRXDM
      ZXTXDMZXIMXBXCYEPYCXBEYEXBYEXGIZEYEIWTXAXCBUQMZPYHXBEYIWTEYIIXAYIBEYINZFU
      RQRYIXCBXIYJXJUSUTYEBEFSTRQYDXSYFXCLZXBXSYAYBVAAXRXCXCCXDXMXRLXCVBXPEVGZV
      CZTYDYGXCXIYDYAYGXCLXBXSYAYBVDAXTXCXCCXDXMXTLXCVBXPYLVCTVEVFXBXSJZYFXDCXR
      KVHZVIZVJZXHMZVKZXCLYSXCPYNYSXCYRVKZXCYNYFXCYRXSYKXBYMVLZVMYNXCYRPYTXCLYN
      EYRYNYRXGIZEYRIYNXGYIVNMIZYQYIPZUUBYNXGYIWTXGYIVTMIXAXSYIBYJVOULVPZYNYPYI
      VQZPUUDYNYPXDWAZUUFXDYOVRYNUUGXGUUFYNCXGXDVSZUUGXGPXBUUHXSXQQCXGXDWBTYNUU
      CXGUUFPUUEXGYIWCTWDWEYPYIWFWGXGYQXHYIXKWHWIYRBEFSTRXCYRWJWGWKYSXCWLTWMZXB
      XFXCXBXDXCGBCUUIXBAXDCXCXGXPXOWNWTXLXAXNQYNYKYFXCPUUAYFXCWLTWOXBEXFXBXEXF
      XGIEXFIUUIXDBWPXFBEFSWQRWRWS $.

    $( The empty family is an internal direct product, the product of which is
       the trivial subgroup.  (Contributed by Mario Carneiro, 25-Apr-2016.) $)
    dprd0 $p |- ( G e. Grp ->
      ( G dom DProd (/) /\ ( G DProd (/) ) = { .0. } ) ) $=
      ( vx cgrp wcel c0 csn cmpt cdprd cdm wbr co wceq cvv 0ex dprdz mpan2 mpt0
      wa breq2i oveq2i eqeq1i anbi12i sylib ) AEFZADGBHZIZJKZLZAUHJMZUGNZTZAGUI
      LZAGJMZUGNZTUFGOFUMPDAGOBCQRUJUNULUPUHGAUIDUGSZUAUKUOUGUHGAJUQUBUCUDUE $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x y J $.  $d x y ph $.  $d x y S $.
    dprdf1o.1 $e |- ( ph -> G dom DProd S ) $.
    dprdf1o.2 $e |- ( ph -> dom S = I ) $.
    dprdf1o.3 $e |- ( ph -> F : J -1-1-onto-> I ) $.
    $( Rearrange the index set of a direct product family.  (Contributed by
       Mario Carneiro, 25-Apr-2016.) $)
    dprdf1o $p |- ( ph ->
      ( G dom DProd ( S o. F ) /\ ( G DProd ( S o. F ) ) = ( G DProd S ) ) ) $=
      ( cdprd wceq cfv cvv wcel syl syl2anc adantr cima cuni 3syl vx vy cdm wbr
      ccom co csubg cmrc c0g ccntz eqid cgrp dprdgrp wf1 wf1o dprddomcld f1dmex
      f1of1 wf dprdf2 fco cv wne w3a wa simpr1 ffvelrnd simpr2 simpr3 wb f1fveq
      f1of syl12anc necon3bid mpbird dprdcntz fvco3 fveq2d 3sstr4d csn cdif cin
      wss sylan imaco ccnv wfun wfo dff1o3 simprbi imadif f1ofo foima wfn f1ofn
      fnsnfv eqcomd difeq12d eqtrd imaeq2d syl5eq unieqd ineq12d eqimss dmdprdd
      ffvelrnda dprddisj crn rnco2 forn ffn fnima dprdspan 3eqtr4d jca ) ADBCUE
      ZJUCZUDZDXPJUFZDBJUFZKAUAUBXPDFDUGLZUHLZMDUILZDUJLZYDUKZYCUKZYBUKZADBXQUD
      ZDULNGBDUMOAFECUNZEMNFMNAFECUOZYIIFECUROZABDEGHUPFEMCUQPAEYABUSZFECUSZFYA
      XPUSABDEGHUTZAYJYMIFECVLOZFEYABCVAPAUAVBZFNZUBVBZFNZYPYRVCZVDZVEZYPCLZBLZ
      YRCLZBLZYDLYPXPLZYRXPLZYDLUUBBDEUUCUUEYDAYHUUAGQABUCEKZUUAHQUUBFEYPCAYMUU
      AYOQZAYQYSYTVFZVGUUBFEYRCUUJAYQYSYTVHZVGUUBUUCUUEVCYTAYQYSYTVIUUBUUCUUEYP
      YRUUBYIYQYSUUCUUEKYPYRKVJAYIUUAYKQUUKUULFEYPYRCVKVMVNVOYEVPUUBYMYQUUGUUDK
      ZUUJUUKFEYPBCVQZPUUBUUHUUFYDUUBYMYSUUHUUFKUUJUULFEYRBCVQPVRVSAYQVEZUUGXPF
      YPVTZWAZRZSZYBLZWBZYCVTZKUVAUVBWCUUOUVAUUDBEUUCVTZWAZRZSZYBLZWBUVBUUOUUGU
      UDUUTUVGAYMYQUUMYOUUNWDUUOUUSUVFYBUUOUURUVEUUOUURBCUUQRZRUVEBCUUQWEUUOUVH
      UVDBUUOUVHCFRZCUUPRZWAZUVDUUOYJCWFWGZUVHUVKKAYJYQIQZYJFECWHZUVLFECWIWJFUU
      PCWKTUUOUVIEUVJUVCUUOYJUVNUVIEKUVMFECWLZFECWMTUUOUVCUVJACFWNZYQUVCUVJKAYJ
      UVPIFECWOOFYPCWPWDWQWRWSWTXAXBVRXCUUOBDEYBUUCYCAYHYQGQAUUIYQHQAFEYPCYOXFY
      FYGXGWSUVAUVBXDOXEZAXPXHZSZYBLZBXHZSZYBLZXSXTAUVSUWBYBAUVRUWAAUVRBCXHZRZU
      WABCXIAUWEBERZUWAAUWDEBAYJUVNUWDEKIUVOFECXJTWTAYLBEWNUWFUWAKYNEYABXKEBXLT
      WSXAXBVRAXRXSUVTKUVQXPDYBYGXMOAYHXTUWCKGBDYBYGXMOXNXO $.
  $}

  ${
    dprdf1.1 $e |- ( ph -> G dom DProd S ) $.
    dprdf1.2 $e |- ( ph -> dom S = I ) $.
    dprdf1.3 $e |- ( ph -> F : J -1-1-> I ) $.
    $( Rearrange the index set of a direct product family.  (Contributed by
       Mario Carneiro, 25-Apr-2016.) $)
    dprdf1 $p |- ( ph ->
     ( G dom DProd ( S o. F ) /\ ( G DProd ( S o. F ) ) C_ ( G DProd S ) ) ) $=
      ( ccom cdprd cdm wbr co wss wceq wf simpld syl simprd crn wf1 f1f dprdres
      cres frn 3syl csubg cfv fssresd fdm wf1o f1f1orn dprdf1o ssid cores ax-mp
      dprdf2 syl6breq oveq2i syl5eqr eqsstrd jca ) ADBCJZKLZMDVDKNZDBKNZOADBCUA
      ZUEZCJZVDVEADVJVEMZDVJKNZDVIKNZPZAVICDVHFADVIVEMZVMVGOZAVHBDEGHAFECUBZFEC
      QVHEOIFECUCFECUFUGZUDZRAVHDUHUIZVIQVILVHPAEVTVHBABDEGHURVRUJVHVTVIUKSAVQF
      VHCULIFECUMSUNZRVHVHOVJVDPVHUOBCVHUPUQZUSAVFVMVGAVFVLVMVJVDDKWBUTAVKVNWAT
      VAAVOVPVSTVBVC $.
  $}

  ${
    $d x y A $.  $d x y G $.  $d x y H $.  $d x y S $.
    subgdprd.1 $e |- H = ( G |`s A ) $.
    $( A direct product in a subgroup.  (Contributed by Mario Carneiro,
       27-Apr-2016.) $)
    subgdmdprd $p |- ( A e. ( SubGrp ` G ) ->
      ( H dom DProd S <-> ( G dom DProd S /\ ran S C_ ~P A ) ) ) $=
      ( vx vy cfv wcel cvv wss wa adantr wb csn wral cin wceq eqid ad2antrr cdm
      csubg cdprd wbr crn cpw wi reldmdprd brrelex2i wf cv ccntz cdif cima cuni
      a1i c0g cbs ffvelrn ad2ant2lr subgss syl subgbas sseqtr4d biantrud simpll
      cmrc simplr eldifi ad2antll ffvelrnd resscntz syl2anc sseq2d ssin syl6bbr
      bitr4d anassrs cmre cgrp cacs subgrcl subgacs acsmre 3syl subggrp imassrn
      ralbidva frn ad2antlr syl5ss mresspw sstrd sspwuni sylib mrcssidd subsubg
      mrccl mpbid simpld mrcsscl syl3anc mpbir2and eqssd ineq2d eqeq12d anbi12d
      subg0 sneqd pm5.32da wfn elin selpw anbi2i bitri eqrdv anbi2d df-f anbi1i
      anass 3bitr4g anbi1d bitr3d dmexg adantl eqidd dmdprd 3anass syl6bb baibd
      w3a syl21anc an32 3bitr4d ex pm5.21ndd ) ACUBHZIZBJIZDBUCUAZUDZCBYTUDZBUE
      ZAUFZKZLZUUAYSUGYRDBYTUHUIUPUUFYSUGYRUUBYSUUECBYTUHUIMUPYRYSUUAUUFNYRYSLZ
      BUAZDUBHZBUJZFUKZBHZGUKZBHZDULHZHZKZGUUHUUKOZUMZPZUULBUUSUNZUOZUUIVGHZHZQ
      ZDUQHZOZRZLZFUUHPZLZUUHYQBUJZUUELZUULUUNCULHZHZKZGUUSPZUULUVBYQVGHZHZQZCU
      QHZOZRZLZFUUHPZLZUUAUUFYRUVKUWFNYSYRUUJUWELUVKUWFYRUUJUWEUVJYRUUJLZUWDUVI
      FUUHUWGUUKUUHIZLZUVQUUTUWCUVHUWIUVPUUQGUUSUWGUWHUUMUUSIZUVPUUQNUWGUWHUWJL
      ZLZUVPUVPUULAKZLZUUQUWLUWMUVPUWLUULDURHZAUWLUULUUIIZUULUWOKUUJUWHUWPYRUWJ
      UUHUUIUUKBUSUTUWOUULDUWOSZVAVBYRAUWORZUUJUWKACDEVCZTZVDVEUWLUUQUULUVOAQZK
      UWNUWLUUPUXAUULUWLYRUUNAKUUPUXARYRUUJUWKVFUWLUUNUWOAUWLUUNUUIIUUNUWOKUWLU
      UHUUIUUMBYRUUJUWKVHUWJUUMUUHIUWGUWHUUMUUHUURVIVJVKUWOUUNDUWQVAVBUWTVDAUUN
      CDYQUUOUVNEUVNSZUUOSZVLVMVNUULUVOAVOVPVQVRWHUWIUVTUVEUWBUVGUWIUVSUVDUULUW
      IUVSUVDUWIYQCURHZVSHIZUVBUVDKUVDYQIZUVSUVDKUWICVTIZYQUXDWAHIUXEYRUXGUUJUW
      HACWBZTUXDCUXDSZWCYQUXDWDWEZUWIUUIUVBUVCUWOUWIDVTIZUUIUWOWAHIUUIUWOVSHIZY
      RUXKUUJUWHACDEWFZTUWODUWQWCUUIUWOWDWEZUVCSZUWIUVAUWOUFZKUVBUWOKZUWIUVAUUI
      UXPUWIUVAUUCUUIBUUSWGUUJUUCUUIKZYRUWHUUHUUIBWIWJWKUWIUXLUUIUXPKUXNUUIUWOW
      LVBWMUVAUWOWNWOZWPUWIUXFUVDAKZUWIUVDUUIIZUXFUXTLZUWIUXLUXQUYAUXNUXSUUIUVB
      UVCUWOUXOWRVMYRUYAUYBNUUJUWHUVDACDEWQTWSWTYQUVBUVRUVDUXDUVRSZXAXBUWIUXLUV
      BUVSKUVSUUIIZUVDUVSKUXNUWIYQUVBUVRUXDUXJUYCUWIUVBAUXDUWIUVBUWOAUXSYRUWRUU
      JUWHUWSTVDZYRAUXDKUUJUWHUXDACUXIVATWMZWPUWIUYDUVSYQIZUVSAKZUWIUXEUVBUXDKU
      YGUXJUYFYQUVBUVRUXDUYCWRVMUWIUXEUVBAKYRUYHUXJUYEYRUUJUWHVFYQUVBUVRAUXDUYC
      XAXBYRUYDUYGUYHLNUUJUWHUVSACDEWQTXCUUIUVBUVCUVSUWOUXOXAXBXDXEUWIUWAUVFYRU
      WAUVFRUUJUWHACDUWAEUWASZXHTXIXFXGWHXJYRUUJUVMUWEYRBUUHXKZUXRLUYJUUCYQKZUU
      ELZLZUUJUVMYRUXRUYLUYJYRUXRUUCYQUUDQZKUYLYRUUIUYNUUCYRFUUIUYNYRUUKUUIIUUK
      YQIZUUKAKZLZUUKUYNIZUUKACDEWQUYRUYOUUKUUDIZLUYQUUKYQUUDXLUYSUYPUYOFAXMXNX
      OVPXPVNUUCYQUUDVOVPXQUUHUUIBXRUVMUYJUYKLZUUELUYMUVLUYTUUEUUHYQBXRXSUYJUYK
      UUEXTXOYAYBYCMUUGUUHJIZUUHUUHRZUXKUUAUVKNYSVUAYRBJYDYEZUUGUUHYFZYRUXKYSUX
      MMVUAVUBLZUUAUXKUVKVUEUUAUXKUUJUVJYKUXKUVKLFGBDUUHUVCJUVFUUOUXCUVFSUXOYGU
      XKUUJUVJYHYIYJYLUUGUUFUVLUWELZUUELUWFUUGUUBVUFUUEUUGVUAVUBUXGUUBVUFNVUCVU
      DYRUXGYSUXHMVUEUUBUXGVUFVUEUUBUXGUVLUWEYKUXGVUFLFGBCUUHUVRJUWAUVNUXBUYIUY
      CYGUXGUVLUWEYHYIYJYLYBUVLUWEUUEYMYIYNYOYP $.

    subgdprd.2 $e |- ( ph -> A e. ( SubGrp ` G ) ) $.
    subgdprd.3 $e |- ( ph -> G dom DProd S ) $.
    subgdprd.4 $e |- ( ph -> ran S C_ ~P A ) $.
    $( A direct product in a subgroup.  (Contributed by Mario Carneiro,
       27-Apr-2016.) $)
    subgdprd $p |- ( ph -> ( H DProd S ) = ( G DProd S ) ) $=
      ( cfv cdprd wcel wss syl eqid 3syl cpw sspwuni sylib mrcsscl crn csubg co
      cuni cmrc cbs cmre cgrp cacs subggrp subgacs acsmre subgrcl cdm wbr dprdf
      wf frn mresspw sstrd mrcssidd mrccl syl2anc syl3anc wa subsubg subgdmdprd
      wb mpbir2and eqidd dprdf2 mpbid simpld eqssd wceq dprdspan 3eqtr4d ) ACUA
      ZUDZEUBJZUEJZJZVSDUBJZUEJZJZECKUCZDCKUCZAWBWEAVTEUFJZUGJLZVSWEMWEVTLZWBWE
      MAEUHLZVTWHUIJLWIABWCLZWKGBDEFUJNWHEWHOUKVTWHULPZAWCVSWDDUFJZADUHLZWCWNUI
      JLWCWNUGJLZAWLWOGBDUMNWNDWNOUKWCWNULPZWDOZAVRWNQZMVSWNMZAVRWCWSADCKUNZUOZ
      CUNZWCCUQVRWCMHCDUPXCWCCURPAWPWCWSMWQWCWNUSNUTVRWNRSZVAAWJWEWCLZWEBMZAWPW
      TXEWQXDWCVSWDWNWRVBVCAWPVSBMZWLXFWQAVRBQMZXGIVRBRSGWCVSWDBWNWRTVDAWLWJXEX
      FVEVHGWEBDEFVFNVIVTVSWAWEWHWAOZTVDAWPVSWBMWBWCLZWEWBMWQAVTVSWAWHWMXIAVRWH
      QZMVSWHMZAVRVTXKAXCVTCUQVRVTMACEXCAECXAUOZXBXHHIAWLXMXBXHVEVHGBCDEFVGNVIZ
      AXCVJVKXCVTCURNAWIVTXKMWMVTWHUSNUTVRWHRSZVAAXJWBBMZAWBVTLZXJXPVEZAWIXLXQW
      MXOVTVSWAWHXIVBVCAWLXQXRVHGWBBDEFVFNVLVMWCVSWDWBWNWRTVDVNAXMWFWBVOXNCEWAX
      IVPNAXBWGWEVOHCDWDWRVPNVQ $.
  $}

  ${
    $d x y A $.  $d x y G $.  $d x y S $.  $d x y V $.
    $( A singleton family is an internal direct product, the product of which
       is the given subgroup.  (Contributed by Mario Carneiro, 25-Apr-2016.) $)
    dprdsn $p |- ( ( A e. V /\ S e. ( SubGrp ` G ) ) ->
      ( G dom DProd { <. A , S >. } /\
        ( G DProd { <. A , S >. } ) = S ) ) $=
      ( vx vy wcel cfv wa csn cdprd wceq eqid adantl syl wss cuni syl6eq eqtrd
      c0 csubg cop cdm wbr cmrc cvv c0g ccntz cgrp subgrcl snex a1i wf1o f1osng
      co wf f1of simpr snssd fssd wne w3a simpr1 elsni simpr2 eqtr4d pm2.21ddne
      cv simpr3 cdif cima cin cbs cmre cacs adantr subgacs acsmre sneqd difeq2d
      3syl difid imaeq2d ima0 unieqd uni0 eqsstrd 0subg mrcsscl syl3anc subg0cl
      0ss ad2antlr fveq2d fvsng sylan9eqr eleqtrrd sstrd sseqin2 sylib dprdspan
      dmdprdd crn rnsnopg unisng mrcid sylancom jca ) ADGZBCUAHZGZIZCABUBJZKUCU
      DZCXMKUOZBLXLEFXMCAJZXJUEHZUFCUGHZCUHHZXSMXRMZXQMZXKCUIGZXIBCUJNZXPUFGXLA
      UKULXLXPBJZXJXMXLXPYDXMUMXPYDXMUPABDXJUNXPYDXMUQOXLBXJXIXKURUSUTXLEVHZXPG
      ZFVHZXPGZYEYGVAZVBIZYEXMHZYGXMHXSHPYEYGYJYEAYGYJYFYEALZXLYFYHYIVCYEAVDZOY
      JYHYGALXLYFYHYIVEYGAVDOVFXLYFYHYIVIVGXLYFIZYKXMXPYEJZVJZVKZQZXQHZVLZYSXRJ
      ZYNYSYKPYTYSLYNYSUUAYKYNXJCVMHZVNHGZYRUUAPUUAXJGZYSUUAPYNYBXJUUBVOHGZUUCX
      LYBYFYCVPZUUBCUUBMVQZXJUUBVRZWAYNYRTUUAYNYRTQTYNYQTYNYQXMTVKTYNYPTXMYNYPX
      PXPVJTYNYOXPXPYNYEAYFYLXLYMNVSVTXPWBRWCXMWDRWEWFRTUUAPYNUUAWLULWGYNYBUUDU
      UFCXRXTWHOXJYRXQUUAUUBYAWIWJZYNXRYKYNXRBYKXKXRBGXIYFBCXRXTWKWMYFXLYKAXMHB
      YFYEAXMYMWNABDXJWOWPWQUSWRYSYKWSWTUUIWGXBZXLXOXMXCZQZXQHZBXLXNXOUUMLUUJXM
      CXQYAXAOXLUUMBXQHZBXLUULBXQXLUULYDQZBXLUUKYDXIUUKYDLXKABDXDVPWEXKUUOBLXIB
      XJXENSWNXIXKUUCUUNBLXLYBUUEUUCYCUUGUUHWAXJBXQUUBYAXFXGSSXH $.
  $}

  ${
    $d f h n .0. $.  $d f h i n A $.  $d f h i n G $.  $d f h i n I $.
    $d f h n F $.  $d f n ph $.  $d f h i n S $.  $d f n X $.
    dmdprdsplitlem.0 $e |- .0. = ( 0g ` G ) $.
    dmdprdsplitlem.w $e |- W = { h e. X_ i e. I ( S ` i ) | h finSupp .0. } $.
    dmdprdsplitlem.1 $e |- ( ph -> G dom DProd S ) $.
    dmdprdsplitlem.2 $e |- ( ph -> dom S = I ) $.
    dmdprdsplitlem.3 $e |- ( ph -> A C_ I ) $.
    dmdprdsplitlem.4 $e |- ( ph -> F e. W ) $.
    dmdprdsplitlem.5 $e |- ( ph -> ( G gsum F ) e. ( G DProd ( S |` A ) ) ) $.
    $( Lemma for ~ dmdprdsplit .  (Contributed by Mario Carneiro, 25-Apr-2016.)
       (Revised by AV, 14-Jul-2019.) $)
    dmdprdsplitlem $p |- ( ( ph /\ X e. ( I \ A ) ) -> ( F ` X ) = .0. ) $=
      ( vn wcel vf cdif wa cgsu co cv wceq cfv cfsupp cres cixp crab wrex cdprd
      wbr cdm csubg wf wb dprdf2 fssresd fdm eqid eldprd 3syl simprd adantr cif
      mpbid simprr cbs simpld ad2antrr syl simprl dprdff feqmptd resmptd iftrue
      cmpt wss mpteq2ia syl6eq eqtr4d oveq2d cvv ccntz cgrp cmnd dprdgrp grpmnd
      dprddomcld simplrl dprdfcl fvres adantl eleqtrd wn ffvelrnda subg0cl wfun
      ifclda csupp mptexg funmpt a1i dprdffsupp eldifn ad2antlr eldifd ssid c0g
      simpr ssexd fvex eqeltri suppssr adantlr ifeq1da ifid suppss2 fsuppsssupp
      syldan syl22anc dprdwd iffalsed gsumzres 3eqtrd fveq1d eldifi eleq1 fveq2
      dprdfcntz dprdf11 ifbieq1d ifex fvmpt3i rexlimddv ) AJHBUBZTZUCZGFUDUEZGU
      AUFZUDUEZUGZJFUHZKUGUADUFKUIUODEBEUFCBUJZUHUKULZAUUEUAUUHUMZYTAGUUGUNUPZU
      OZUUIAUUBGUUGUNUETZUUKUUIUCZRABGUQUHZUUGURZUUGUPBUGZUULUUMUSAHUUNBCACGHNO
      UTZPVAZBUUNUUGVBZUUBUUGUADEGBUUHKLUUHVCZVDVEVIZVFVGUUAUUCUUHTZUUEUCZUCZUU
      FJSHSUFZBTZUVEUUCUHZKVHZVTZUHZJBTZJUUCUHZKVHZKUVDJFUVIUVDUUBGUVIUDUEZUGFU
      VIUGUVDUUBUUDGUVIBUJZUDUEUVNUUAUVBUUEVJUVDUUCUVOGUDUVDUUCSBUVGVTZUVOUVDSB
      GVKUHZUUCUVDUVQUUGDEUUCGBUUHKUUTAUUKYTUVCAUUKUUIUVAVLVMZAUUPYTUVCAUUOUUPU
      URUUSVNVMZUUAUVBUUEVOZUVQVCZVPZVQUVDUVOSBUVHVTUVPUVDSHBUVHABHWAYTUVCPVMVR
      SBUVHUVGUVFUVGKVSWBWCWDWEUVDHUVQUVIGWFBKGWGUHZUWALUWCVCZUVDGCUUJUOZGWHTGW
      ITAUWEYTUVCNVMZCGWJGWKVEAHWFTZYTUVCACGHNOWLZVMZUVDUVQCDEUVIGHIKMUWFACUPHU
      GYTUVCOVMZUVDSUVHCDEGHIKMUWFUWJUVDUVEHTZUCZUVFUVGKUVECUHZUWLUVFUCUVGUVEUU
      GUHZUWMUWLUUGDEUUCGBUUHUVEKUUTUVDUUKUWKUVRVGUVDUUPUWKUVSVGUUAUVBUUEUWKWMW
      NUVFUWNUWMUGUWLUVEBCWOWPWQUWLKUWMTZUVFWRZUWLUWMUUNTUWOUVDHUUNUVECAHUUNCUR
      YTUVCUUQVMWSUWMGKLWTVNVGXBUVDUVIWFTZUVIXAZUUCKUIUOUVIKXCUEUUCKXCUEZWAUVIK
      UIUOAUWQYTUVCAUWGUWQUWHSHUVHWFXDVNVMUWRUVDSHUVHXEXFUVDUUGDEUUCGBUUHKUUTUV
      RUVSUVTXGUVDHUVHSWFUWSKUVDUVEHUWSUBTZUCZUVHUVFKKVHKUXAUVFUVGKKUXAUVFUVEBU
      WSUBTZUVGKUGZUXAUVFUCUVEBUWSUXAUVFXMUWTUVEUWSTWRUVDUVFUVEHUWSXHXIXJUVDUXB
      UXCUWTUVDBUVQWFUUCWFUWSUVEKUWBUWSUWSWAUVDUWSXKXFABWFTYTUVCABHWFUWHPXNVMKW
      FTUVDKGXLUHWFLGXLXOXPZXFXQXRYCXSUVFKXTWCUWIYAUUCUVIWFKYBYDZYEZUWAVPUVDCDE
      UVIGHIKUWCMUWFUWJUXFUWDYMUVDHUVHSWFBKUVDUVEYSTZUCUVFUVGKUXGUWPUVDUVEHBXHW
      PYFUWIYAUXEYGYHUVDCDEFGUVIHIKLMUWFUWJAFITYTUVCQVMUXFYNVIYIUVDJHTZUVJUVMUG
      YTUXHAUVCJHBYJXISJUVHUVMHUVIUVEJUGUVFUVKUVGUVLKUVEJBYKUVEJUUCYLYOUVIVCUVF
      UVGKUVEUUCXOUXDYPYQVNUVDUVKUVLKYTUVKWRAUVCJHBXHXIYFYHYR $.
  $}

  ${
    $d f h i x y C $.  $d f h i x y D $.  $d f h i x y G $.  $d f h i x y S $.
    $d f h x .0. $.  $d f h i x I $.  $d f x y ph $.  $d x y Z $.
    dprdcntz2.1 $e |- ( ph -> G dom DProd S ) $.
    dprdcntz2.2 $e |- ( ph -> dom S = I ) $.
    dprdcntz2.c $e |- ( ph -> C C_ I ) $.
    dprdcntz2.d $e |- ( ph -> D C_ I ) $.
    dprdcntz2.i $e |- ( ph -> ( C i^i D ) = (/) ) $.
    ${
      dprdcntz2.z $e |- Z = ( Cntz ` G ) $.
      $( The function ` S ` is a family of subgroups.  (Contributed by Mario
         Carneiro, 26-Apr-2016.) $)
      dprdcntz2 $p |- ( ph ->
        ( G DProd ( S |` C ) ) C_ ( Z ` ( G DProd ( S |` D ) ) ) ) $=
        ( cdprd cfv cdm wss wceq wcel adantr vx vy cres co dprdres simpld dmres
        wbr cin sseqtr4d df-ss sylib syl5eq cgrp cbs csubg dprdgrp eqid dprdssv
        syl cntzsubg cv wa fvres adantl dprdsubg sselda dprdf2 ffvelrnda syldan
        sylancl subgss syl2anc ad2antrr wn simpr wi c0 noel elin eleq2d syl5bbr
        wne mtbiri imnan sylibr imp nelne2 dprdcntz eqsstrd dprdlub cntzrecd )
        ADBUCZEDCUCZNUDZGOZUAEBAEWMNPZUHEWMNUDEDNUDZQABDEFHIJUEUFAWMPBDPZUIZBDB
        UGABWSQWTBRABFWSJIUJBWSUKULUMAEUNSZWOEUOOZQWPEUPOZSAEDWQUHZXAHDEUQUTZXB
        WNEXBURZUSXBWOEGXFMVAVKAUAVBZBSZVCZXGWMOZXGDOZWPXHXJXKRAXGBDVDVEXIWOXKE
        GMXIEWNWQUHZWOXCSAXLXHAXLWOWRQACDEFHIKUEUFTZWNEVFUTAXHXGFSZXKXCSZABFXGJ
        VGZAFXCXGDADEFHIVHVIVJZXIWNXKGOZUBECXMAWNPZCRXHAXSCWSUIZCDCUGACWSQXTCRA
        CFWSKIUJCWSUKULUMTXIXAXKXBQZXRXCSAXAXHXETXIXOYAXQXBXKEXFVLUTXBXKEGXFMVA
        VMXIUBVBZCSZVCZYBWNOZYBDOZXRYCYEYFRXIYBCDVDVEYDDEFYBXGGAXDXHYCHVNAWSFRX
        HYCIVNXICFYBACFQXHKTVGXIXNYCXPTYDYCXGCSZVOZYBXGWCXIYCVPXIYHYCAXHYHAXHYG
        VCZVOXHYHVQAYIXGVRSZXGVSYIXGBCUIZSAYJXGBCVTAYKVRXGLWAWBWDXHYGWEWFWGTYBX
        GCWHVMMWIWJWKWLWJWK $.
    $}

    ${
      dprddisj2.0 $e |- .0. = ( 0g ` G ) $.
      $( The function ` S ` is a family of subgroups.  (Contributed by Mario
         Carneiro, 26-Apr-2016.)  (Revised by AV, 14-Jul-2019.) $)
      dprddisj2 $p |- ( ph ->
        ( ( G DProd ( S |` C ) ) i^i ( G DProd ( S |` D ) ) ) = { .0. } ) $=
        ( vx vh vi co wcel wceq ad2antrr vf cres cdprd cin csn cv inss1 cdm wbr
        wss dprdres simprd syl5ss sseld cgsu cfsupp cfv cixp crab wrex wa wi wb
        eqid eldprd syl cmpt cbs simplr dprdff feqmptd cdif cun difeq2d difindi
        wo dif0 3eqtr3g eqimss2 sselda elun simprl dmdprdsplitlem simprr jaodan
        c0 sylib syldan mpteq2dva eqtrd oveq2d cmnd cvv cgrp dprdgrp dprddomcld
        grpmnd 3syl gsumz syl2anc ex eleq1 syl6bb velsn eqeq1 syl5bb syl5ibrcom
        elin imbi12d rexlimdva adantld sylbid com23 ssrdv csubg simpld dprdsubg
        mpdd subg0cl elind snssd eqssd ) AEDBUBZUCQZEDCUBZUCQZUDZGUEZANYGYHANUF
        ZYGRZYIEDUCQZRZYIYHRZAYGYKYIAYGYDYKYDYFUGAEYCUCUHZUIZYDYKUJZABDEFHIJUKZ
        ULUMUNAYLYJYMAYLEDYNUIZYIEUAUFZUOQZSZUAOUFGUPUIOPFPUFDUQURUSZUTZVAZYJYM
        VBZADUHFSZYLUUDVCIYIDUAOPEFUUBGMUUBVDZVEVFAUUCUUEYRAUUAUUEUAUUBAYSUUBRZ
        VAZUUEUUAYTYDRZYTYFRZVAZYTGSZVBUUIUULUUMUUIUULVAZYTENFGVGZUOQZGUUNYSUUO
        EUOUUNYSNFYIYSUQZVGUUOUUNNFEVHUQZYSUUNUURDOPYSEFUUBGUUGAYRUUHUULHTZAUUF
        UUHUULITZAUUHUULVIZUURVDVJVKUUNNFUUQGUUNYIFRZYIFBVLZRZYIFCVLZRZVPZUUQGS
        ZUUNUVBVAYIUVCUVEVMZRUVGUUNFUVIYIAFUVIUJZUUHUULAUVIFSUVJAFBCUDZVLFWFVLU
        VIFAUVKWFFLVNFBCVOFVQVRFUVIVSVFTVTYIUVCUVEWAWGUUNUVDUVHUVFUUNBDOPYSEFUU
        BYIGMUUGUUSUUTABFUJUUHUULJTUVAUUIUUJUUKWBWCUUNCDOPYSEFUUBYIGMUUGUUSUUTA
        CFUJUUHUULKTUVAUUIUUJUUKWDWCWEWHWIWJWKAUUPGSZUUHUULAEWLRZFWMRUVLAYREWNR
        UVMHDEWOEWQWRADEFHIWPFNEWMGMWSWTTWJXAUUAYJUULYMUUMUUAYJYTYGRUULYIYTYGXB
        YTYDYFXHXCYMYIGSUUAUUMNGXDYIYTGXEXFXIXGXJXKXLXMXRXNAGYGAYDYFGAYOYDEXOUQ
        ZRGYDRAYOYPYQXPYCEXQYDEGMXSWRAEYEYNUIZYFUVNRGYFRAUVOYFYKUJACDEFHIKUKXPY
        EEXQYFEGMXSWRXTYAYB $.
    $}
  $}

  ${
    $d i j k x y A $.  $d i k x C $.  $d i j k x y G $.  $d i I $.  $d i k K $.
    $d i j k x y ph $.  $d i j k x y S $.  $d i j X $.
    dprd2d.1 $e |- ( ph -> Rel A ) $.
    dprd2d.2 $e |- ( ph -> S : A --> ( SubGrp ` G ) ) $.
    dprd2d.3 $e |- ( ph -> dom A C_ I ) $.
    dprd2d.4 $e |- ( ( ph /\ i e. I ) ->
      G dom DProd ( j e. ( A " { i } ) |-> ( i S j ) ) ) $.
    dprd2d.5 $e |- ( ph -> G dom DProd
      ( i e. I |-> ( G DProd ( j e. ( A " { i } ) |-> ( i S j ) ) ) ) ) $.
    dprd2d.k $e |- K = ( mrCls ` ( SubGrp ` G ) ) $.
    $( The direct product of a collection of direct products.  (Contributed by
       Mario Carneiro, 26-Apr-2016.) $)
    dprd2dlem2 $p |- ( ( ph /\ X e. A ) -> ( S ` X ) C_
      ( G DProd ( j e. ( A " { ( 1st ` X ) } ) |-> ( ( 1st ` X ) S j ) ) ) ) $=
      ( wcel cfv co wceq wbr wa c2nd c1st csn cima cv cmpt cdprd cop df-ov wrel
      1st2nd sylan simpr eqeltrrd df-br sylibr wb adantr elrelimasn mpbird eqid
      syl oveq2 ovex fvmpt3i fveq2d 3eqtr4a cdm wral wss 1stdm sseldd ralrimiva
      sneq imaeq2d oveq1 mpteq12dv breq2d rspcv sylc dmmpti a1i dprdub eqsstr3d
      ) AIBPZUAZICQZIUBQZEBIUCQZUDZUEZWJEUFZCRZUGZQZFWOUHRWGWJWICRZWJWIUIZCQWPW
      HWJWICUJWGWIWLPZWPWQSWGWSWJWIBTZWGWRBPWTWGIWRBABUKZWFIWRSJIBULUMZAWFUNUOW
      JWIBUPUQWGXAWSWTURAXAWFJUSWJWIBUTVCVAZEWIWNWQWLWOWMWIWJCVDWOVBZWJWMCVEZVF
      VCWGIWRCXBVGVHWGWOFWLWIWGWJGPFEBDUFZUDZUEZXFWMCRZUGZUHVIZTZDGVJZFWOXKTZWG
      BVIZGWJAXOGVKWFLUSAXAWFWJXOPJIBVLUMVMAXMWFAXLDGMVNUSXLXNDWJGXFWJSZXJWOFXK
      XPEXHXIWLWNXPXGWKBXFWJVOVPXFWJWMCVQVRVSVTWAWOVIWLSWGEWLWNWOXEXDWBWCXCWDWE
      $.

    ${
      dprd2d.6 $e |- ( ph -> C C_ I ) $.
      $( The direct product of a collection of direct products.  (Contributed
         by Mario Carneiro, 26-Apr-2016.) $)
      dprd2dlem1 $p |- ( ph -> ( K ` U. ( S " ( A |` C ) ) ) = ( G DProd
        ( i e. C |-> ( G DProd ( j e. ( A " { i } ) |-> ( i S j ) ) ) ) ) ) $=
        ( cfv wcel syl wss vx vk cres cima cuni cv csn cmpt cdprd crn csubg cbs
        co cgrp cacs cmre cdm wbr dprdgrp eqid subgacs acsmre 3syl ciun wf wfun
        wceq ffun funiunfv wral c1st resss sseli dprd2dlem2 sylan2 cvv c2nd cop
        wa wrel 1st2nd syl2an simpr eqeltrrd fvex opelres simprbi imaeq2d oveq1
        ovex sneq mpteq12dv oveq2d elrnmpt1s sylancl elssuni sstrd iunss sylibr
        ralrimiva eqsstr3d cpw sselda syldan dmmpti a1i imassrn mresspw sspwuni
        frn syl5ss sylib mrccl syl2anc adantr oveq2 fvmpt3i adantl wfn ad2antrr
        df-ov ffn wb elrelimasn biimpa simplr sylanbrc fnfvima syl3anc syl5eqel
        df-br vex mrcssidd eqsstrd dprdlub elpw fmptd mrcssvd mrcssd mrcsscl
        eqssd dprdres simpld resmptd breqtrd dprdspan eqtr4d ) ADBCUCZUDZUEZIQZ
        ECGFBEUFZUGZUDZUULFUFZDUMZUHZUIUMZUHZUJZUEZIQZGUUSUIUMZAUUKUVBAGUKQZUUJ
        IUVAGULQZAGUNRZUVDUVEUOQRUVDUVEUPQRZAGEHUURUHZUIUQZURUVFNUVHGUSSUVEGUVE
        UTVAUVDUVEVBVCZOAUUJUAUUHUAUFZDQZVDZUVAABUVDDVEZDVFUVMUUJVGKBUVDDVHUAUU
        HDVIVCAUVLUVATZUAUUHVJUVMUVATAUVOUAUUHAUVKUUHRZVSZUVLGFBUVKVKQZUGZUDZUV
        RUUODUMZUHZUIUMZUVAUVPAUVKBRZUVLUWCTUUHBUVKBCVLZVMZABDEFGHIUVKJKLMNOVNV
        OUVQUWCUUTRZUWCUVATUVQUVRCRZUWCVPRUWGUVQUVRUVKVQQZVRZUUHRZUWHUVQUVKUWJU
        UHABVTZUWDUVKUWJVGUVPJUWFUVKBWAWBAUVPWCWDUWKUWJBRUWHUVRUWIBCUVKVQWEWFWG
        SGUWBUIWJECUURUWCUVRUUSVPUUSUTZUULUVRVGZUUQUWBGUIUWNFUUNUUPUVTUWAUWNUUM
        UVSBUULUVRWKWHUULUVRUUODWIWLWMWNWOUWCUUTWPSWQWTUAUUHUVLUVAWRWSXAAUVAUUK
        UVEAUUTUUKXBZTZUVAUUKTZACUWOUUSVEUWPAECUURUWOUUSAUULCRZVSZUURUUKTUURUWO
        RUWSUUQUUKUBGUUNAUWRUULHRGUUQUVIURACHUULPXCMXDUUQUQUUNVGUWSFUUNUUPUUQUU
        LUUODWJZUUQUTZXEXFAUUKUVDRZUWRAUVGUUJUVETZUXBUVJAUUIUVEXBZTUXCAUUIDUJZU
        XDDUUHXGAUXEUVDUXDAUVNUXEUVDTKBUVDDXJSAUVGUVDUXDTUVJUVDUVEXHSWQXKUUIUVE
        XIXLZUVDUUJIUVEOXMXNZXOUWSUBUFZUUNRZVSZUXHUUQQZUULUXHDUMZUUKUXIUXKUXLVG
        UWSFUXHUUPUXLUUNUUQUUOUXHUULDXPUXAUWTXQXRUXJUXLUUJUUKUXJUXLUUIRUXLUUJTU
        XJUXLUULUXHVRZDQZUUIUULUXHDYAUXJDBXSZUUHBTZUXMUUHRZUXNUUIRAUXOUWRUXIAUV
        NUXOKBUVDDYBSXTUXPUXJUWEXFUXJUXMBRZUWRUXQUXJUULUXHBURZUXRUWSUXIUXSAUXIU
        XSYCZUWRAUWLUXTJUULUXHBYDSXOYEUULUXHBYKXLAUWRUXIYFUULUXHBCUBYLWFYGBUUHD
        UXMYHYIYJUXLUUIWPSAUUJUUKTUWRUXIAUVDUUJIUVEUVJOUXFYMXTWQYNYOUURUUKGUUQU
        IWJZYPWSUWMYQCUWOUUSXJSUUTUUKXIXLZAUVDUUJIUVEUVJOYRWQYSAUVGUWQUXBUVBUUK
        TUVJUYBUXGUVDUVAIUUKUVEOYTYIUUAAGUUSUVIURUVCUVBVGAGUVHCUCZUUSUVIAGUYCUV
        IURGUYCUIUMGUVHUIUMTACUVHGHNUVHUQHVGAEHUURUVHUYAUVHUTXEXFPUUBUUCAEHCUUR
        PUUDUUEUUSGIOUUFSUUG $.
    $}

    $( The direct product of a collection of direct products.  (Contributed by
       Mario Carneiro, 26-Apr-2016.) $)
    dprd2da $p |- ( ph -> G dom DProd S ) $=
      ( cvv cfv wcel syl wss wceq vx vy eqid cv csn cima co cmpt cdprd cdm cres
      wbr ciun syl5eq wral ovex dmmpti reldmdprd brrelex2i dmexg 3syl syl5eqelr
      syl2anc wa cxp ressn sylancr syl5eqel ralrimiva eqeltrrd c1st c2nd adantr
      wne 1stdm sylan sseldd sneq imaeq2d oveq1 mpteq12dv breq2d sylc 3ad2antr1
      rspcv a1i cop 1st2nd simpr df-br sylibr wb elrelimasn mpbird eqeq12d fvex
      sneqd opth mpbid dprdcntz df-ov oveq2 fvmpt3i fveq2d 3eqtr4a oveq1d eqtrd
      necon3bid oveq2d sseqtr4d ad2antrr eqsstr3d eqsstrd sstrd cdif cuni snssd
      cin cun sylib syl6eq c0 eleq1d simprbi crn imassrn wf frn syl5ss mrcssidd
      sspwuni mrccl difss elrnmpt1s unissd syl6eqr syl3anc sseqtrd subg0cl
      ax-mp ccntz cgrp dprdgrp resiun2 iunid reseq2i eqtr3i wrel relssres xpexg
      c0g iunexg w3a simpr2 eleqtrrd simplr3 simpr1 syl6bb baibd fveq1d 3sstr3d
      snex dprd2dlem2 dprdssv dprdub cntz2ss pm2.61dane clsm csubg cmre subgacs
      cbs acsmre undif2 ssequn1 syl5req reseq2d eqtr3d resundi difeq1d difundir
      cacs neirr brres eldifsni sylbir syl6bi mtoi disjsn eqcomd uneq2d imaundi
      wn disj3 unieqd uniun mresspw unss12 lsmunss sseqtri imass2 mpan2 ralbidv
      cpw rgen ralsn wfun ffun resss eqsstr3i fdm syl5sseqr funimassov ffvelrnd
      biimpa fmptd mrcssd dprdspan fnmpti fnressn opeq2d dprdsubg dprdsn simprd
      wfn disjdif dprdcntz2 adantlr dprd2dlem1 resmpt lsmsubg mrcsscl ffvelrnda
      oveq2i sslin lsmlub mpbi2and dprdres simpld df-ima unieqi fveq2i dprddisj
      eqimss ss2in lsmub2 elind eqssd incom eqimss2 eldifsn simprl sseldi elsni
      opelres syl6eleq xp2nd simprr bitrd sylanbrc sylancl eqeltrd syl6eleqr ex
      baib syl5bi ralrimiv funimass4 lsmdisj2 dmdprdd ) AUAUBCFBHOFUUKPZFUUAPZV
[encoded data, 7360 characters]
      XQVUHUNVVIYRVVJ $.

    $( The direct product of a collection of direct products.  (Contributed by
       Mario Carneiro, 25-Apr-2016.) $)
    dprd2db $p |- ( ph -> ( G DProd S ) = ( G DProd
      ( i e. I |-> ( G DProd ( j e. ( A " { i } ) |-> ( i S j ) ) ) ) ) ) $=
      ( cdprd co cuni cfv cima wceq crn cres csn cmpt cdm dprd2da dprdspan wrel
      cv wbr syl wss relssres syl2anc imaeq2d csubg wfn ffn fnima eqtr2d unieqd
      wf 3syl fveq2d ssid a1i dprd2dlem1 3eqtrd ) AFCOPZCUAZQZHRZCBGUBZSZQZHRFD
      GFEBDUIZUCSVPEUICPUDOPUDOPAFCOUEUJVIVLTABCDEFGHIJKLMNUFCFHNUGUKAVKVOHAVJV
      NAVNCBSZVJAVMBCABUHBUEGULVMBTIKBGUMUNUOABFUPRZCVBCBUQVQVJTJBVRCURBCUSVCUT
      VAVDABGCDEFGHIJKLMNGGULAGVEVFVGVH $.
  $}

  ${
    $d i j x y z G $.  $d i j x y z I $.  $d j x y z J $.  $d i j x y z ph $.
    $d x y z S $.
    dprd2d2.1 $e |- ( ( ph /\ ( i e. I /\ j e. J ) ) -> S e. ( SubGrp ` G ) )
        $.
    dprd2d2.2 $e |- ( ( ph /\ i e. I ) -> G dom DProd ( j e. J |-> S ) ) $.
    dprd2d2.3 $e |- ( ph -> G dom DProd
      ( i e. I |-> ( G DProd ( j e. J |-> S ) ) ) ) $.
    $( The direct product of a collection of direct products.  (Contributed by
       Mario Carneiro, 26-Apr-2016.) $)
    dprd2d2 $p |- ( ph -> ( G dom DProd ( i e. I , j e. J |-> S ) /\
      ( G DProd ( i e. I , j e. J |-> S ) ) = ( G DProd
      ( i e. I |-> ( G DProd ( j e. J |-> S ) ) ) ) ) ) $=
      ( vx vy cdprd co cmpt cv wcel wa nfcv wex cmpt2 cdm wbr wceq csn cxp ciun
      vz csubg cfv cmrc wrel wral relxp rgenw reliun mpbir wf ralrimivva fmpt2x
      a1i eqid sylib dmiun wss dmxpss simpr snssd syl5ss ralrimiva iunss sylibr
      syl5eqss csb cima simprl simprr ovmpt4g syl3anc anassrs mpteq2dva nfcsb1v
      breqtrrd nfmpt21 nfov nfmpt nfbr weq csbeq1a oveq1 mpteq12dv breq2d mpan9
      rspc nfmpt22 oveq2 cbvmpt cop nfv nfcri nfan eleq2d anbi2d equsexv simplr
      eqeltrd biantrurd pm5.32da anass eqcom opth bitr2i anbi1i 3bitr3g syl5bbr
      vex exbidv eleq1 ceqsexv excom wb elrelimasn ax-mp eliunxp 3bitri syl6bbr
      df-br eqrdv mpteq1d syl5eq breqtrd oveq2d dprd2da dprd2db eqtr3d eqtrd
      jca ) AECDFGBUAZMUBZUCEYRMNZECFEDGBOZMNZOZMNZUDACFCPZUEZGUFZUGZYRKLEFEUIU
      JZUKUJZUUHULZAUUKUUGULZCFUMUULCFUUFGUNUOCFUUGUPUQZVAZABUUIQZDGUMCFUMUUHUU
      IYRURAUUOCDFGHUSCDFGBUUIYRYRVBZUTVCZAUUHUBCFUUGUBZUGZFCFUUGVDAUURFVEZCFUM
      UUSFVEAUUTCFAUUEFQZRZUURUUFFUUFGVFUVBUUEFAUVAVGVHVIVJCFUURFVKVLVMZAKPZFQZ
      RZEDCUVDGVNZUVDDPZYRNZOZLUUHUVDUEVOZUVDLPZYRNZOZYSAEDGUUEUVHYRNZOZYSUCZCF
      UMUVEEUVJYSUCZAUVQCFUVBEUUAUVPYSIUVBDGUVOBAUVAUVHGQZUVOBUDZAUVAUVSRZRUVAU
      VSUUOUVTAUVAUVSVPAUVAUVSVQHCDFGBYRUUIUUPVRVSVTWAZWCVJUVQUVRCUVDFCEUVJYSCE
      SZCYSSCDUVGUVICUVDGWBZCUVDUVHYRCUVDSCDFGBWDCUVHSWEWFZWGCKWHZUVPUVJEYSUWFD
      GUVOUVGUVICUVDGWIZUUEUVDUVHYRWJWKZWLWNWMUVFUVJLUVGUVMOUVNDLUVGUVIUVMLUVIS
      DUVDUVLYRDUVDSCDFGBWODUVLSWEUVHUVLUVDYRWPWQUVFLUVGUVKUVMUVFUHUVGUVKUVFUHP
      ZUVGQZUVDUWIWRZUUEUVHWRZUDZUWARZDTCTZUWIUVKQZUVFDUHWHZUVHUVGQZRZDTUWNCTZD
      TUWJUWOUVFUWSUWTDUWSUWFUWQUVSRZRZCTUVFUWTUXAUWSCKUWQUWRCUWQCWSCDUVGUWDWTX
      AUWFUVSUWRUWQUWFGUVGUVHUWGXBXCXDUVFUXBUWNCUVFUWFUWQRZUVSRUXCUWARUXBUWNUVF
      UXCUVSUWAUVFUXCRZUVAUVSUXDUUEUVDFUVFUWFUWQVPAUVEUXCXEXFXGXHUWFUWQUVSXIUXC
      UWMUWAUWMUWLUWKUDUXCUWKUWLXJUUEUVHUVDUWICXPDXPXKXLXMXNXQXOXQUWRUWJDUWIUHX
      PUVHUWIUVGXRXSUWNDCXTXNUWPUVDUWIUUHUCZUWKUUHQUWOUUKUWPUXEYAUUMUVDUWIUUHYB
      YCUVDUWIUUHYGCDFGUWKYDYEYFYHYIYJZYKZAECFEUVPMNZOZKFEUVNMNZOZYSAEUUCUXIYSJ
      ACFUXHUUBUVBUVPUUAEMUWBYLWAZWCAUXIKFEUVJMNZOUXKCKFUXHUXMKUXHSCEUVJMUWCCMS
      UWEWEUWFUVPUVJEMUWHYLWQAKFUXMUXJUVFUVJUVNEMUXFYLWAYJZYKZUUJVBZYMAYTEUXKMN
      UUDAUUHYRKLEFUUJUUNUUQUVCUXGUXOUXPYNAUXKUUCEMAUXIUXKUUCUXNUXLYOYLYPYQ $.
  $}

  ${
    $d x .(+) $.  $d x y C $.  $d x D $.  $d x y G $.  $d x y I $.  $d x y S $.
    $d x y ph $.  $d y X $.  $d y Z $.
    dprdsplit.2 $e |- ( ph -> S : I --> ( SubGrp ` G ) ) $.
    dprdsplit.i $e |- ( ph -> ( C i^i D ) = (/) ) $.
    dprdsplit.u $e |- ( ph -> I = ( C u. D ) ) $.
    ${
      dmdprdsplit.z $e |- Z = ( Cntz ` G ) $.
      dmdprdsplit.0 $e |- .0. = ( 0g ` G ) $.
      ${
        dmdprdsplit2.1 $e |- ( ph -> G dom DProd ( S |` C ) ) $.
        dmdprdsplit2.2 $e |- ( ph -> G dom DProd ( S |` D ) ) $.
        dmdprdsplit2.3 $e |- ( ph ->
          ( G DProd ( S |` C ) ) C_ ( Z ` ( G DProd ( S |` D ) ) ) ) $.
        dmdprdsplit2.4 $e |- ( ph ->
          ( ( G DProd ( S |` C ) ) i^i ( G DProd ( S |` D ) ) ) = { .0. } ) $.
        ${
          dmdprdsplit2lem.k $e |- K = ( mrCls ` ( SubGrp ` G ) ) $.
          $( Lemma for ~ dmdprdsplit .  (Contributed by Mario Carneiro,
             26-Apr-2016.) $)
          dmdprdsplit2lem $p |- ( ( ph /\ X e. C ) ->
            ( ( Y e. I -> ( X =/= Y -> ( S ` X ) C_ ( Z ` ( S ` Y ) ) ) ) /\
           ( ( S ` X ) i^i ( K ` U. ( S " ( I \ { X } ) ) ) ) C_ { .0. } ) ) $=
            ( vy wcel wa wne cfv wss wi csn cdif cima cuni cin wo adantr eleq2d
            cun wceq elun syl6bb cres cdprd cdm wbr ad2antrr csubg wf syl5sseqr
            ssun1 fssresd simplr simprl simprr dprdcntz fvres ad2antlr ad2antrl
            fdm syl fveq2d 3sstr3d exp32 dprdub eqsstr3d cbs eqid dprdssv ssun2
            co cntz2ss sylancr sstrd jaod sylbid clsm cmre cgrp dprdgrp subgacs
            cacs 3syl difundir difeq1d c0 simpr snssd sslin incom syl5eqr sseq0
            acsmre syl2anc disj3 sylib uneq2d 3eqtr4a syl6eq unieqd uniun difss
            imaeq2d imaundi imass2 crn imassrn syl5ss sspwuni mrcssidd dprdspan
            df-ima unieqi fveq2i syl6eqr syl3anc mrcsscl adantl sseqtrd subg0cl
            sseqtr4d dprdsubg uniss mp2b cpw frn mresspw unss12 lsmunss eqsstrd
            mrccl a1i mrcssd lsmsubg sselda ffvelrnda syldan wb lsmlub mpbi2and
            ssrin lsmub1 sseldd elind resima2 mp1i ineq12d dprddisj eqtr3d ciun
            eqssd cv wfun ffun funiunfv eldifi eldifsni ralrimiva sylibr subgss
            wral iunss cntzsubg cntzrecd lsmdisj3 jca ) AHBUCZUDZIFUCZHIUEZHDUF
            ZIDUFZKUFZUGZUHZUHUWIDFHUIZUJZUKZULZGUFZUMZJUIZUGUWFUWGIBUCZICUCZUN
            ZUWMUWFUWGIBCUQZUCUXCUWFFUXDIAFUXDURUWENUOZUPIBCUSUTUWFUXAUWMUXBUWF
            UXAUWHUWLUWFUXAUWHUDZUDZHDBVAZUFZIUXHUFZKUFUWIUWKUXGUXHEBHIKAEUXHVB
            VCZVDZUWEUXFQVEAUXHVCBURZUWEUXFABEVFUFZUXHVGUXMAFUXNBDLAUXDBFBCVINV
            HZVJBUXNUXHVRVSZVEAUWEUXFVKUWFUXAUWHVLUWFUXAUWHVMOVNUWEUXIUWIURZAUX
            FHBDVOZVPUXGUXJUWJKUXAUXJUWJURUWFUWHIBDVOVQVTWAWBUWFUXBUWHUWLUWFUXB
            UWHUDZUDZUWIEUXHVBWIZUWKUXTUWIUXIUYAUWEUXQAUXSUXRVPUXTUXHEBHAUXLUWE
            UXSQVEAUXMUWEUXSUXPVEAUWEUXSVKWCWDUXTUYAEDCVAZVBWIZKUFZUWKAUYAUYDUG
            ZUWEUXSSVEUXTUYCEWEUFZUGUWJUYCUGUYDUWKUGUYFUYBEUYFWFZWGUXTUWJIUYBUF
            ZUYCUXBUYHUWJURUWFUWHICDVOVQUXTUYBECIAEUYBUXKVDZUWEUXSRVEAUYBVCCURZ
            UWEUXSACUXNUYBVGUYJAFUXNCDLAUXDCFCBWHNVHVJCUXNUYBVRVSVEUWFUXBUWHVLW
            CWDUYFUYCUWJEKUYGOWJWKWLWLWBWMWNUWFUWSUWIDBUWNUJZUKZULZGUFZUYCEWOUF
            ZWIZUMZUWTUWFUWRUYPUGZUWSUYQUGUWFUXNUYFWPUFUCZUWQUYPUGUYPUXNUCZUYRU
            WFEWQUCZUXNUYFWTUFUCUYSAVUAUWEAUXLVUAQUXHEWRVSUOZUYFEUYGWSUXNUYFXKX
            AZUWFUWQUYMDCUKZULZUQZUYPUWFUWQUYLVUDUQZULVUFUWFUWPVUGUWFUWPDUYKCUQ
            ZUKVUGUWFUWOVUHDUWFUXDUWNUJUYKCUWNUJZUQUWOVUHBCUWNXBUWFFUXDUWNUXEXC
            UWFCVUIUYKUWFCUWNUMZXDURZCVUIURUWFVUJCBUMZUGZVULXDURVUKUWFUWNBUGVUM
            UWFHBAUWEXEZXFUWNBCXGVSUWFVULBCUMZXDBCXHAVUOXDURUWEMUOXIVUJVULXJXLC
            UWNXMXNXOXPYADUYKCYBXQXRUYLVUDXSXQUWFVUFUYNUYCUQZUYPUWFUYMUYNUGVUEU
            YCUGVUFVUPUGUWFUXNUYMGUYFVUCUAUWFUYMDBUKZULZUYFUYKBUGZUYLVUQUGUYMVU
            RUGZBUWNXTZUYKBDYCUYLVUQUUAUUBZUWFVUQUYFUUCZUGVURUYFUGUWFVUQDYDZVVC
            DBYEUWFVVDUXNVVCAVVDUXNUGZUWEAFUXNDVGZVVELFUXNDUUDVSUOUWFUYSUXNVVCU
            GVUCUXNUYFUUEVSWLZYFVUQUYFYGXNZYFZYHUWFVUEVUEGUFZUYCUWFUXNVUEGUYFVU
            CUAUWFVUDVVCUGVUEUYFUGUWFVUDVVDVVCDCYEVVGYFVUDUYFYGXNYHAUYCVVJURUWE
            AUYCUYBYDZULZGUFZVVJAUYIUYCVVMURRUYBEGUAYIVSVUEVVLGVUDVVKDCYJYKYLYM
            UOYSUYMUYNVUEUYCUUFXLUWFUYNUXNUCZUYCUXNUCZVUPUYPUGUWFUYSUYMUYFUGVVN
            VUCVVIUXNUYMGUYFUAUUIXLZAVVOUWEAUYIVVORUYBEYTVSUOZUYOUYNUYCEUYOWFZU
            UGXLWLUUHUWFVVNVVOUYNUYDUGUYTVVPVVQUWFUYNUYAUYDUWFUYNVURGUFZUYAUWFU
            XNUYMGVURUYFVUCUAVUTUWFVVBUUJVVHUUKAUYAVVSURUWEAUYAUXHYDZULZGUFZVVS
            AUXLUYAVWBURQUXHEGUAYIVSVURVWAGVUQVVTDBYJYKYLYMUOYSZAUYEUWESUOWLUYO
            UYNUYCEKVVROUULYNUXNUWQGUYPUYFUAYOYNUWRUYPUWIXGVSUWFUYOUWIUYNUYCEJK
            VVRAUWEHFUCUWIUXNUCZABFHUXOUUMAFUXNHDLUUNUUOZVVPVVQPUWFUWIUYNUYOWIZ
            UYCUMZUWTUWFVWGUYAUYCUMZUWTUWFVWFUYAUGZVWGVWHUGUWFUWIUYAUGZUYNUYAUG
            ZVWIUWFUWIUXIUYAUWEUXQAUXRYPZUWFUXHEBHAUXLUWEQUOZAUXMUWEUXPUOZVUNWC
            WDVWCUWFVWDVVNUYAUXNUCZVWJVWKUDVWIUUPVWEVVPAVWOUWEAUXLVWOQUXHEYTVSU
            OUYOUWIUYNUYAEVVRUUQYNUURVWFUYAUYCUUSVSAVWHUWTURUWETUOYQUWFJVWGUWFV
            WFUYCJUWFUWIVWFJUWFVWDVVNUWIVWFUGVWEVVPUYOUWIUYNEVVRUUTXLUWFVWDJUWI
            UCVWEUWIEJPYRVSUVAUWFVVOJUYCUCVVQUYCEJPYRVSUVBXFUVIUWFUXIUXHUYKUKZU
            LZGUFZUMUWIUYNUMUWTUWFUXIUWIVWRUYNVWLUWFVWQUYMGUWFVWPUYLVUSVWPUYLUR
            UWFVVADUYKBUVCUVDXRVTUVEUWFUXHEBGHJVWMVWNVUNPUAUVFUVGOUWFUYNUWIEKOV
            VPVWEUWFUYSUYMUWIKUFZUGVWSUXNUCZUYNVWSUGVUCUWFUYMUBUYKUBUVJZDUFZUVH
            ZVWSUWFVVFDUVKVXCUYMURAVVFUWELUOFUXNDUVLUBUYKDUVMXAUWFVXBVWSUGZUBUY
            KUVSVXCVWSUGUWFVXDUBUYKUWFVXAUYKUCZUDZVXAUXHUFZUXIKUFVXBVWSVXFUXHEB
            VXAHKAUXLUWEVXEQVEAUXMUWEVXEUXPVEVXEVXABUCZUWFVXABUWNUVNYPZAUWEVXEV
            KVXEVXAHUEUWFVXABHUVOYPOVNVXFVXHVXGVXBURVXIVXABDVOVSVXFUXIUWIKUWEUX
            QAVXEUXRVPVTWAUVPUBUYKVXBVWSUVTUVQWDUWFVUAUWIUYFUGZVWTVUBUWFVWDVXJV
            WEUYFUWIEUYGUVRVSUYFUWIEKUYGOUWAXLUXNUYMGVWSUYFUAYOYNUWBUWCYQUWD $.
        $}

        $( The direct product splits into the direct product of any partition
           of the index set.  (Contributed by Mario Carneiro, 25-Apr-2016.) $)
        dmdprdsplit2 $p |- ( ph -> G dom DProd S ) $=
          ( cfv cvv wcel vx csubg cmrc eqid cres cdprd cdm wbr cgrp dprdgrp syl
          vy cun wf wceq ssun1 syl5sseqr fssresd dprddomcld ssun2 unexg syl2anc
          fdm eqeltrd cv wne wss wo wi eleq2d elun syl6bb wa csn cdif cima cuni
          cin dmdprdsplit2lem c0 incom uncom syl6eq co dprdsubg cntzrecd jaodan
          syl5eqr simpld ex sylbid 3imp2 biimpa simprd syldan dmdprdd ) AUAULDE
          FEUBRZUCRZSGHLMWRUDZAEDBUEZUFUGZUHZEUITNWTEUJUKAFBCUMZSKABSTCSTXCSTAW
          TEBNABWQWTUNWTUGBUOAFWQBDIAXCBFBCUPKUQURBWQWTVCUKUSADCUEZECOACWQXDUNX
          DUGCUOAFWQCDIAXCCFCBUTKUQURCWQXDVCUKUSBCSSVAVBVDIAUAVEZFTZULVEZFTZXEX
          GVFZXEDRZXGDRHRVGZAXFXEBTZXECTZVHZXHXIXKVIVIZAXFXEXCTXNAFXCXEKVJXEBCV
          KVLZAXNXOAXNVMXOXJDFXEVNVOVPVQWRRVRGVNZVGZAXLXOXRVMXMABCDEFWRXEXGGHIJ
          KLMNOPQWSVSZACBDEFWRXEXGGHIACBVRBCVRVTBCWAJWHAFXCCBUMKBCWBWCLMONAEWTU
          FWDZEXDUFWDZEHLAXBXTWQTNWTEWEUKAEXDXAUHYAWQTOXDEWEUKPWFAYAXTVRXTYAVRX
          QXTYAWAQWHWSVSZWGWIWJWKWLAXFXNXRAXFXNXPWMAXLXRXMAXLVMXOXRXSWNAXMVMXOX
          RYBWNWGWOWP $.
      $}

      $( The direct product splits into the direct product of any partition of
         the index set.  (Contributed by Mario Carneiro, 25-Apr-2016.) $)
      dmdprdsplit $p |- ( ph -> ( G dom DProd S <->
     ( ( G dom DProd ( S |` C ) /\ G dom DProd ( S |` D ) ) /\
       ( G DProd ( S |` C ) ) C_ ( Z ` ( G DProd ( S |` D ) ) ) /\
       ( ( G DProd ( S |` C ) ) i^i ( G DProd ( S |` D ) ) ) = { .0. } ) ) ) $=
        ( cdprd wbr wa co wss wceq adantr cdm cres cfv cin csn w3a simpr wf fdm
        csubg syl cun ssun1 syl5sseqr dprdres simpld jca c0 dprdcntz2 dprddisj2
        ssun2 3jca simpr1l simpr1r simpr2 simpr3 dmdprdsplit2 impbida ) AEDNUAZ
        OZEDBUBZVIOZEDCUBZVIOZPZEVKNQZEVMNQZHUCRZVPVQUDGUESZUFZAVJPZVOVRVSWAVLV
        NWAVLVPEDNQZRWABDEFAVJUGZADUAFSZVJAFEUJUCZDUHZWDIFWEDUIUKTZWABCULZBFBCU
        MAFWHSZVJKTZUNZUOUPWAVNVQWBRWACDEFWCWGWAWHCFCBVAWJUNZUOUPUQWABCDEFHWCWG
        WKWLABCUDURSZVJJTZLUSWABCDEFGWCWGWKWLWNMUTVBAVTPBCDEFGHAWFVTITAWMVTJTAW
        IVTKTLMVLVNVRVSAVCVLVNVRVSAVDAVOVRVSVEAVOVRVSVFVGVH $.
    $}

    dprdsplit.s $e |- .(+) = ( LSSum ` G ) $.
    dprdsplit.1 $e |- ( ph -> G dom DProd S ) $.
    $( The direct product is the binary subgroup product ("sum") of the direct
       products of the partition.  (Contributed by Mario Carneiro,
       25-Apr-2016.) $)
    dprdsplit $p |- ( ph -> ( G DProd S ) =
      ( ( G DProd ( S |` C ) ) .(+) ( G DProd ( S |` D ) ) ) ) $=
      ( cdprd co cfv wceq syl wcel wss adantr vx csubg wf cdm fdm ccntz wbr cun
      cres ssun1 syl5sseqr dprdres simpld dprdsubg ssun2 wa cin c0g dmdprdsplit
      csn w3a eqid mpbid simp2d lsmsubg syl3anc cv wo eleq2d elun syl6bb biimpa
      fvres adantl fssresd dprdub eqsstr3d lsmub1 syl2anc lsmub2 jaodan dprdlub
      simpr sstrd syldan simprd wb lsmlub mpbi2and eqssd ) AFEMNZFEBUIZMNZFECUI
      ZMNZDNZAEWPUAFGLAGFUBOZEUCEUDGPHGWQEUEQZAWMWQRZWOWQRZWMWOFUFOZOSZWPWQRAFW
      LMUDZUGZWSAXDWMWKSZABEFGLWRABCUHZBGBCUJJUKZULZUMZWLFUNQZAFWNXCUGZWTAXKWOW
      KSZACEFGLWRAXFCGCBUOJUKZULZUMZWNFUNQZAXDXKUPZXBWMWOUQFUROZUTPZAFEXCUGZXQX
      BXSVALABCEFGXRXAHIJXAVBZXRVBUSVCVDDWMWOFXAKYAVEVFAUAVGZGRZYBBRZYBCRZVHZYB
      EOZWPSZAYCYFAYCYBXFRYFAGXFYBJVIYBBCVJVKVLAYDYHYEAYDUPZYGWMWPYIYGYBWLOZWMY
      DYJYGPAYBBEVMVNYIWLFBYBAXDYDXITAWLUDBPZYDABWQWLUCYKAGWQBEHXGVOBWQWLUEQTAY
      DWCVPVQAWMWPSZYDAWSWTYLXJXPDWMWOFKVRVSTWDAYEUPZYGWOWPYMYGYBWNOZWOYEYNYGPA
      YBCEVMVNYMWNFCYBAXKYEXOTAWNUDCPZYEACWQWNUCYOAGWQCEHXMVOCWQWNUEQTAYEWCVPVQ
      AWOWPSZYEAWSWTYPXJXPDWMWOFKVTVSTWDWAWEWBAXEXLWPWKSZAXDXEXHWFAXKXLXNWFAWSW
      TWKWQRZXEXLUPYQWGXJXPAXTYRLEFUNQDWMWOWKFKWHVFWIWJ $.
  $}

  ${
    dmdprdpr.z $e |- Z = ( Cntz ` G ) $.
    dmdprdpr.0 $e |- .0. = ( 0g ` G ) $.
    dmdprdpr.s $e |- ( ph -> S e. ( SubGrp ` G ) ) $.
    dmdprdpr.t $e |- ( ph -> T e. ( SubGrp ` G ) ) $.
    $( A singleton family is an internal direct product, the product of which
       is the given subgroup.  (Contributed by Mario Carneiro, 25-Apr-2016.) $)
    dmdprdpr $p |- ( ph -> ( G dom DProd `' ( { S } +c { T } ) <->
        ( S C_ ( Z ` T ) /\ ( S i^i T ) = { .0. } ) ) ) $=
      ( csn co cdprd wbr c0 c1o wceq wa wcel c2o ccda ccnv cdm cres cfv wss cin
      wb cop cvv csubg 0ex dprdsn sylancr simpld wfn xpscf sylanbrc ffn syl cpr
      wf prid1 df2o3 eleqtrri fnressn sylancl xpsc0 opeq2d sneqd eqtrd breqtrrd
      con0 1on elexi prid2 xpsc1 w3a wne 1n0 necomi disjsn2 cun df-pr eqtri a1i
      mp1i dmdprdsplit 3anass syl6bb baibd mp2and oveq2d simprd sseq12d ineq12d
      ex fveq2d eqeq1d anbi12d bitrd ) ADBKCKUALUBZMUCZNZDXBOKZUDZMLZDXBPKZUDZM
      LZFUEZUFZXGXJUGZEKZQZRZBCFUEZUFZBCUGZXNQZRADXFXCNZDXIXCNZXDXPUHZADOBUIZKZ
      XFXCADYEXCNZDYEMLZBQZAOUJSBDUKUEZSZYFYHRULIOBDUJUMUNZUOAXFOOXBUEZUIZKZYEA
      XBTUPZOTSXFYNQATYIXBVBZYOAYJCYISZYPIJYIBCUQURZTYIXBUSUTZOOPVAZTOPULVCVDVE
      TOXBVFVGAYMYDAYLBOAYJYLBQIBCYIVHUTVIVJVKZVLADPCUIZKZXIXCADUUCXCNZDUUCMLZC
      QZAPVMSYQUUDUUFRVNJPCDVMUMUNZUOAXIPPXBUEZUIZKZUUCAYOPTSXIUUJQYSPYTTOPPVMV
      NVOVPVDVETPXBVFVGAUUIUUBAUUHCPAYQUUHCQJBCYIVQUTVIVJVKZVLAYAYBRZYCAXDUULXP
      AXDUULXLXOVRUULXPRAXEXHXBDTEFYROPVSXEXHUGOQAPOVTWAOPWBWGTXEXHWCZQATYTUUMV
      DOPWDWEWFGHWHUULXLXOWIWJWKWQWLAXLXRXOXTAXGBXKXQAXGYGBAXFYEDMUUAWMAYFYHYKW
      NVKZAXJCFAXJUUECAXIUUCDMUUKWMAUUDUUFUUGWNVKZWRWOAXMXSXNAXGBXJCUUNUUOWPWSW
      TXA $.

    dprdpr.s $e |- .(+) = ( LSSum ` G ) $.
    dprdpr.1 $e |- ( ph -> S C_ ( Z ` T ) ) $.
    dprdpr.2 $e |- ( ph -> ( S i^i T ) = { .0. } ) $.
    $( A singleton family is an internal direct product, the product of which
       is the given subgroup.  (Contributed by Mario Carneiro, 26-Apr-2016.) $)
    dprdpr $p |- ( ph -> ( G DProd `' ( { S } +c { T } ) ) = ( S .(+) T ) ) $=
      ( csn co c0 c1o c2o wceq ccda ccnv cdprd cres csubg cfv wf xpscf sylanbrc
      wcel wne cin 1n0 necomi disjsn2 cun cpr df2o3 df-pr eqtri a1i cdm wbr wss
      dmdprdpr mpbir2and dprdsplit cop wfn ffn syl 0ex eleqtrri fnressn sylancl
      mp1i prid1 xpsc0 opeq2d sneqd eqtrd oveq2d cvv dprdsn sylancr simprd con0
      wa 1on elexi prid2 xpsc1 oveq12d ) AECODOUAPUBZUCPEWNQOZUDZUCPZEWNROZUDZU
      CPZBPCDBPAWOWRBWNESACEUEUFZUJZDXAUJZSXAWNUGZJKXACDUHUIZQRUKWOWRULQTARQUMU
      NQRUOVPSWOWRUPZTASQRUQZXFURQRUSUTVALAEWNUCVBZVCCDGUFVDCDULFOTMNACDEFGHIJK
      VEVFVGAWQCWTDBAWQEQCVHZOZUCPZCAWPXJEUCAWPQQWNUFZVHZOZXJAWNSVIZQSUJWPXNTAX
      DXOXESXAWNVJVKZQXGSQRVLVQURVMSQWNVNVOAXMXIAXLCQAXBXLCTJCDXAVRVKVSVTWAWBAE
      XJXHVCZXKCTZAQWCUJXBXQXRWHVLJQCEWCWDWEWFWAAWTERDVHZOZUCPZDAWSXTEUCAWSRRWN
      UFZVHZOZXTAXORSUJWSYDTXPRXGSQRRWGWIWJWKURVMSRWNVNVOAYCXSAYBDRAXCYBDTKCDXA
      WLVKVSVTWAWBAEXTXHVCZYADTZARWGUJXCYEYFWHWIKRDEWGWDWEWFWAWMWA $.
  $}

  ${
    $d h k x .0. $.  $d f g h i k s x G $.  $d f h x P $.  $d f g i k s x ph $.
    $d h C $.  $d f g h i k s x I $.  $d g s x Q $.  $d f k x W $.  $d h x X $.
    $d f h k x A $.  $d f g h i k s x S $.  $d x Y $.
    dpjfval.1 $e |- ( ph -> G dom DProd S ) $.
    dpjfval.2 $e |- ( ph -> dom S = I ) $.
    ${
      dpjlem.3 $e |- ( ph -> X e. I ) $.
      $( Lemma for theorems about direct product projection.  (Contributed by
         Mario Carneiro, 26-Apr-2016.) $)
      dpjlem $p |- ( ph -> ( G DProd ( S |` { X } ) ) = ( S ` X ) ) $=
        ( csn cres cdprd co cfv cop wfn wcel wceq csubg wf syl2anc ffn ffvelrnd
        dprdf2 syl fnressn oveq2d cdm wbr wa dprdsn simprd eqtrd ) ACBEIJZKLCEE
        BMZNIZKLZUNAUMUOCKABDOZEDPZUMUOQADCRMZBSUQABCDFGUCZDUSBUAUDHDEBUETUFACU
        OKUGUHZUPUNQZAURUNUSPVAVBUIHADUSEBUTHUBEUNCDUJTUKUL $.

      ${
        dpjcntz.z $e |- Z = ( Cntz ` G ) $.
        $( The two subgroups that appear in ~ dpjval commute.  (Contributed by
           Mario Carneiro, 26-Apr-2016.) $)
        dpjcntz $p |- ( ph ->
          ( S ` X ) C_ ( Z ` ( G DProd ( S |` ( I \ { X } ) ) ) ) ) $=
          ( cfv csn cres cdprd co wbr wss cin wceq cun dpjlem cdm wa c0g dprdf2
          cdif w3a c0 disjdif a1i undif2 snssd ssequn1 syl5req eqid dmdprdsplit
          sylib mpbid simp2d eqsstr3d ) AEBKCBELZMZNOZCBDVAUFZMZNOZFKZABCDEGHIU
          AACVBNUBZPCVEVHPUCZVCVGQZVCVFRCUDKZLSZACBVHPVIVJVLUGGAVAVDBCDVKFABCDG
          HUEVAVDRUHSAVADUIUJAVAVDTVADTZDVADUKAVADQVMDSAEDIULVADUMUQUNJVKUOUPUR
          USUT $.
      $}

      ${
        dpjdisj.0 $e |- .0. = ( 0g ` G ) $.
        $( The two subgroups that appear in ~ dpjval are disjoint.
           (Contributed by Mario Carneiro, 26-Apr-2016.) $)
        dpjdisj $p |- ( ph ->
          ( ( S ` X ) i^i ( G DProd ( S |` ( I \ { X } ) ) ) ) = { .0. } ) $=
          ( csn cres cdprd co cin cfv wbr wss wceq cun cdif dpjlem ineq1d ccntz
          cdm wa w3a dprdf2 disjdif a1i undif2 snssd ssequn1 sylib syl5req eqid
          c0 dmdprdsplit mpbid simp3d eqtr3d ) ACBEKZLZMNZCBDVBUAZLZMNZOZEBPZVG
          OFKZAVDVIVGABCDEGHIUBUCACVCMUEZQCVFVKQUFZVDVGCUDPZPRZVHVJSZACBVKQVLVN
          VOUGGAVBVEBCDFVMABCDGHUHVBVEOUQSAVBDUIUJAVBVETVBDTZDVBDUKAVBDRVPDSAED
          IULVBDUMUNUOVMUPJURUSUTVA $.
      $}

      dpjlsm.s $e |- .(+) = ( LSSum ` G ) $.
      $( The two subgroups that appear in ~ dpjval add to the full direct
         product.  (Contributed by Mario Carneiro, 26-Apr-2016.) $)
      dpjlsm $p |- ( ph -> ( G DProd S ) =
        ( ( S ` X ) .(+) ( G DProd ( S |` ( I \ { X } ) ) ) ) ) $=
        ( cdprd co csn cres cdif cfv dprdf2 cin wceq cun disjdif a1i undif2 wss
        c0 snssd ssequn1 sylib syl5req dprdsplit dpjlem oveq1d eqtrd ) ADCKLDCF
        MZNKLZDCEUNOZNKLZBLFCPZUQBLAUNUPBCDEACDEGHQUNUPRUESAUNEUAUBAUNUPTUNETZE
        UNEUCAUNEUDUSESAFEIUFUNEUGUHUIJGUJAUOURUQBACDEFGHIUKULUM $.
    $}

    dpjfval.p $e |- P = ( G dProj S ) $.
    ${
      dpjfval.q $e |- Q = ( proj1 ` G ) $.
      $( Value of the direct product projection (defined in terms of binary
         projection).  (Contributed by Mario Carneiro, 26-Apr-2016.) $)
      dpjfval $p |- ( ph -> P = ( i e. I |->
        ( ( S ` i ) Q ( G DProd ( S |` ( I \ { i } ) ) ) ) ) ) $=
        ( vg vs cdpj co cfv cdprd cvv wceq wcel cv csn cdif cres cmpt cgrp cima
        cdm cmpt2 df-dpj a1i wa simprr dmeqd adantr eqtrd simprl fveq2d syl6eqr
        cpj1 fveq1d difeq1d reseq12d oveq12d oveq123d mpteq12dv simpr sneqd wbr
        imaeq2d dprdgrp syl reldmdprd elrelimasn ax-mp sylibr dprddomcld mptexg
        wrel wb ovmpt2dx syl5eq ) ABFDNOEGEUAZDPZFDGWCUBZUCZUDZQOZCOZUEZJALMFDU
        FQUHZLUAZUBZUGZEMUAZUHZWCWOPZWLWOWPWEUCZUDZQOZWLUTPZOZUEZWJNWKFUBZUGZRN
        LMUFWNXCUISALEMUJUKAWLFSZWODSZULZULZEWPXBGWIXIWPDUHZGXIWODAXFXGUMZUNAXJ
        GSXHIUOUPZXIWQWDWTWHXACXIXAFUTPCXIWLFUTAXFXGUQZURKUSXIWCWODXKVAXIWLFWSW
        GQXMXIWODWRWFXKXIWPGWEXLVBVCVDVEVFAXFULZWMXDWKXNWLFAXFVGVHVJAFDWKVIZFUF
        THDFVKVLAXODXETZHWKVSXPXOVTVMFDWKVNVOVPAGRTWJRTADFGHIVQEGWIRVRVLWAWB $.

      dpjval.3 $e |- ( ph -> X e. I ) $.
      $( Value of the direct product projection (defined in terms of binary
         projection).  (Contributed by Mario Carneiro, 26-Apr-2016.) $)
      dpjval $p |- ( ph -> ( P ` X ) =
        ( ( S ` X ) Q ( G DProd ( S |` ( I \ { X } ) ) ) ) ) $=
        ( vx cv cfv csn cdif cres cdprd co dpjfval wceq wa simpr fveq2d difeq2d
        cvv sneqd reseq2d oveq2d oveq12d ovexd fvmptd ) AMGMNZDOZEDFUNPZQZRZSTZ
        CTGDOZEDFGPZQZRZSTZCTFBUGABCDMEFHIJKUAAUNGUBZUCZUOUTUSVDCVFUNGDAVEUDZUE
        VFURVCESVFUQVBDVFUPVAFVFUNGVGUHUFUIUJUKLAUTVDCULUM $.
    $}

    ${
      dpjf.3 $e |- ( ph -> X e. I ) $.
      $( The ` X ` -th index projection is a function from the direct product
         to the ` X ` -th factor.  (Contributed by Mario Carneiro,
         26-Apr-2016.) $)
      dpjf $p |- ( ph -> ( P ` X ) : ( G DProd S ) --> ( S ` X ) ) $=
        ( cdprd co cfv wf csn cdif cres clsm cpj1 eqid c0g ccntz csubg ffvelrnd
        cplusg dprdf2 cdm wbr wcel wss difssd dprdres dprdsubg syl dpjdisj pj1f
        simpld dpjcntz dpjval dpjlsm feq12d mpbird ) ADCKLZFCMZFBMZNVDDCEFOZPZQ
        ZKLZDRMZLZVDVDVIDSMZLZNAVLDUEMZVJVDVIDDUAMZDUBMZVNTVJTZVOTZVPTZAEDUCMZF
        CACDEGHUFJUDADVHKUGUHZVIVTUIAWAVIVCUJAVGCDEGHAEVFUKULUQVHDUMUNACDEFVOGH
        JVRUOACDEFVPGHJVSURVLTZUPAVCVKVDVEVMABVLCDEFGHIWBJUSAVJCDEFGHJVQUTVAVB
        $.
    $}

    ${
      dpjidcl.3 $e |- ( ph -> A e. ( G DProd S ) ) $.
      dpjidcl.0 $e |- .0. = ( 0g ` G ) $.
      dpjidcl.w $e |- W = { h e. X_ i e. I ( S ` i ) | h finSupp .0. } $.
      $( The key property of projections: the sum of all the projections of
         ` A ` is ` A ` .  (Contributed by Mario Carneiro, 26-Apr-2016.)
         (Revised by AV, 14-Jul-2019.) $)
      dpjidcl $p |- ( ph -> ( ( x e. I |-> ( ( P ` x ) ` A ) ) e. W /\
        A = ( G gsum ( x e. I |-> ( ( P ` x ) ` A ) ) ) ) ) $=
        ( cfv wcel cvv vf vk cv cgsu co wceq cmpt cdprd cdm wbr wrex eldprd syl
        wa wb mpbid simprd adantr ad2antrr simpr dpjf ffvelrnd cfsupp csupp wss
        wfun dprddomcld mptexg funmpt a1i simprl dprdffsupp cdif cres cpj1 eqid
        csn eldifi dpjval fveq1d sylan2 simplrr cbs ccntz cmnd cgrp grpmnd 3syl
        dprdgrp dprdff crn dprdfcntz snssi adantl difss2d suppssdm fdm syl5sseq
        wf ssconb syl2anc gsumzres eqtr4d cixp crab difss dprdres simpld dprdf2
        csubg fssres sylancl feqmptd reseq1d resmpt ax-mp syl6eq fvres eleqtrrd
        dprdfcl difexg ssdif sseli ssid c0g eqeltri suppssr suppss2 fsuppsssupp
        fvex syl22anc dprdwd eqeltrd eldprdi cplusg clsm dprdsubg eqtrd oveq2d
        cun dpjdisj dpjcntz pj1rid sylanl2 mpdan simprr c0 disjdif undif2 snssd
        ssequn1 sylib syl5req gsumzsplit feqresmpt gsumsn syl3anc oveq1d 3eqtrd
        cin fveq2 dpjlsm eleqtrd pj1eq mpteq2dva jca rexlimddv ) ACHUAUCZUDUEZU
        FZBICBUCZDRZRZUGZJSZCHUVNUDUEZUFZUNUAJAHEUHUIZUJZUVJUAJUKZACHEUHUEZSZUV
        SUVTUNZOAEUIIUFZUWBUWCUOMCEUAFGHIJKPQULUMUPUQAUVHJSZUVJUNZUNZUVOUVQUWGB
        UVMEFGHIJKQAUVSUWFLURZAUWDUWFMURZUWGUVKISZUNZUWAUVKERZCUVLUWKDEHIUVKAUV
        SUWFUWJLUSZAUWDUWFUWJMUSZNUWGUWJUTZVAAUWBUWFUWJOUSZVBUWGUVNTSZUVNVFZUVH
        KVCUJZUVNKVDUEUVHKVDUEZVEUVNKVCUJAUWQUWFAITSZUWQAEHILMVGZBIUVMTVHUMURUW
        RUWGBIUVMVIVJUWGEFGUVHHIJKQUWHUWIAUWEUVJVKZVLZUWGIUVMBTUWTKUWGUVKIUWTVM
        ZSZUNZUVMCUWLHEIUVKVQZVMZVNZUHUEZHVORZUEZRZKUXFUWGUWJUVMUXNUFUVKIUWTVRZ
        UWKCUVLUXMUWKDUXLEHIUVKUWMUWNNUXLVPZUWOVSVTZWAUXGCUXKSZUXNKUFZUXGCHUVHU
        XIVNZUDUEZUXKUXGCUVIUYAAUWEUVJUXFWBUXGIHWCRZUVHHTUXIKHWDRZUYBVPZPUYCVPZ
        UWGHWESZUXFUWGUVSHWFSZUYFUWHEHWIZHWGZWHURAUXAUWFUXFUXBUSUWGIUYBUVHWSZUX
        FUWGUYBEFGUVHHIJKQUWHUWIUXCUYDWJZURUXFUWGUWJUVHWKZUYLUYCRVEUXOUWKEFGUVH
        HIJKUYCQUWMUWNUWGUWEUWJUXCURZUYEWLZWAUXGUXHUXEVEZUWTUXIVEZUXFUYOUWGUVKU
        XEWMWNZUXGUXHIVEZUWTIVEZUYOUYPUOUXGUXHIUWTUYQWOUWGUYSUXFUWGUVHUIZUWTIUV
        HKWPUWGUYJUYTIUFUYKIUYBUVHWQUMWRURUXHUWTIWTXAUPUWGUWSUXFUXDURXBXCUXFUWG
        UWJUYAUXKSUXOUWKUXJFGUXTHUXIFUCKVCUJFGUXIGUCUXJRXDXEZKPVUAVPZUWKHUXJUVR
        UJZUXKUWAVEUWKUXIEHIUWMUWNUXIIVEZUWKIUXHXFZVJXGXHZUWKUXIHXJRZUXJWSZUXJU
        IUXIUFUWKIVUGEWSVUDVUHUWKEHIUWMUWNXIZVUEIVUGUXIEXKXLUXIVUGUXJWQUMZUWKUX
        TUBUXIUBUCZUVHRZUGZVUAUWKUXTUBIVULUGZUXIVNZVUMUWKUVHVUNUXIUWKUBIUYBUVHU
        WGUYJUWJUYKURZXMXNVUDVUOVUMUFVUEUBIUXIVULXOXPXQUWKUBVULUXJFGHUXIVUAKVUB
        VUFVUJUWKVUKUXISZUNVULVUKERZVUKUXJRZVUQUWKVUKISVULVURSVUKIUXHVRUWKEFGUV
        HHIJVUKKQUWMUWNUYMXTWAVUQVUSVURUFUWKVUKUXIEXRWNXSUWKVUMTSZVUMVFZUWSVUMK
        VDUEUWTVEVUMKVCUJAVUTUWFUWJAUXITSZVUTAUXAVVBUXBIUXHTYAUMZUBUXIVULTVHUMU
        SVVAUWKUBUXIVULVIVJUWGUWSUWJUXDURUWKUXIVULUBTUWTKVUKUXIUWTVMZSUWKVUKUXE
        SVULKUFVVDUXEVUKVUDVVDUXEVEVUEUXIIUWTYBXPYCUWKIUYBTUVHTUWTVUKKVUPUWTUWT
        VEUWKUWTYDVJAUXAUWFUWJUXBUSZKTSUWKKHYERTPHYEYJYFVJYGWAAVVBUWFUWJVVCUSYH
        UVHVUMTKYIYKYLYMYNZWAYMUXFUWGUWJUXRUXSUXOUWKUXLHYORZHYPRZUWLUXKHCKUYCVV
        GVPZVVHVPZPUYEUWKIVUGUVKEVUIUWOVBZUWKVUCUXKVUGSVUFUXJHYQUMZUWKEHIUVKKUW
        MUWNUWOPUUAZUWKEHIUVKUYCUWMUWNUWOUYEUUBZUXPUUCUUDUUEYRAUXAUWFUXBURYHUVH
        UVNTKYIYKYLUWGCUVIUVPAUWEUVJUUFUWGUVHUVNHUDUWGUVHBIUVKUVHRZUGUVNUWGBIUY
        BUVHUYKXMUWGBIUVMVVOUWKUVMUXNVVOUXQUWKUXNVVOUFZCUXKUWLUXLUERUYAUFZUWKCV
        VOUYAVVGUEZUFVVPVVQUNUWKCUVIHUVHUXHVNZUDUEZUYAVVGUEVVRAUWEUVJUWJWBUWKIU
        YBUXHUXIVVGUVHHTKUYCUYDPVVIUYEUWKUVSUYGUYFUWMUYHUYIWHZVVEVUPUYNUWKEFGUV
        HHIJKQUWMUWNUYMVLUXHUXIUUTUUGUFUWKUXHIUUHVJUWKUXHUXIYTUXHIYTZIUXHIUUIUW
        KUYRVWBIUFUWKUVKIUWOUUJZUXHIUUKUULUUMUUNUWKVVTVVOUYAVVGUWKVVTHUBUXHVULU
        GZUDUEZVVOUWKVVSVWDHUDUWKUBIUYBUXHUVHVUPVWCUUOYSUWKUYFUWJVVOUYBSVWEVVOU
        FVWAUWOUWKIUYBUVKUVHVUPUWOVBVULUYBVVOUBHUVKIUYDVUKUVKUVHUVAUUPUUQYRUURU
        USUWKVVOUYAUXLVVGVVHUWLUXKHCKUYCVVIVVJPUYEVVKVVLVVMVVNUXPUWKCUWAUWLUXKV
        VHUEUWPUWKVVHEHIUVKUWMUWNUWOVVJUVBUVCUWGEFGUVHHIJUVKKQUWHUWIUXCXTVVFUVD
        UPXHYRUVEXCYSYRUVFUVG $.

      dpjeq.c $e |- ( ph -> ( x e. I |-> C ) e. W ) $.
      $( Decompose a group sum into projections.  (Contributed by Mario
         Carneiro, 26-Apr-2016.)  (Revised by AV, 14-Jul-2019.) $)
      dpjeq $p |- ( ph -> ( A = ( G gsum ( x e. I |-> C ) ) <->
        A. x e. I ( ( P ` x ) ` A ) = C ) ) $=
        ( wceq cmpt cgsu cfv wral wcel dpjidcl simprd eqeq1d simpld dprdf11 cvv
        co cv wb fvex rgenw mpteqb mp1i 3bitrd ) ACIBJDUAZUBULZTIBJCBUMEUCZUCZU
        AZUBULZVATVDUTTZVCDTBJUDZACVEVAAVDKUEZCVETZABCEFGHIJKLMNOPQRUFZUGUHAFGH
        VDIUTJKLQRMNAVHVIVJUISUJVCUKUEZBJUDVFVGUNAVKBJCVBUOUPBJVCDUKUQURUS $.
    $}

    ${
      dpjid.3 $e |- ( ph -> A e. ( G DProd S ) ) $.
      $( The key property of projections: the sum of all the projections of
         ` A ` is ` A ` .  (Contributed by Mario Carneiro, 26-Apr-2016.) $)
      dpjid $p |- ( ph -> A = ( G gsum ( x e. I |-> ( ( P ` x ) ` A ) ) ) ) $=
        ( vh vi cv cfv cmpt c0g cfsupp wbr eqid cixp crab wcel cgsu wceq simprd
        co dpjidcl ) ABGCBNDOOPZLNFQOZRSLMGMNEOUAUBZUCCFUIUDUGUEABCDELMFGUKUJHI
        JKUJTUKTUHUF $.
    $}

    dpjlid.3 $e |- ( ph -> X e. I ) $.
    ${
      dpjlid.4 $e |- ( ph -> A e. ( S ` X ) ) $.
      $( The ` X ` -th index projection acts as the identity on elements of the
         ` X ` -th factor.  (Contributed by Mario Carneiro, 26-Apr-2016.) $)
      dpjlid $p |- ( ph -> ( ( P ` X ) ` A ) = A ) $=
        ( cfv csn cdif cres cdprd co eqid wcel cpj1 dpjval fveq1d wceq clsm c0g
        cplusg ccntz dprdf2 ffvelrnd cdm wbr wss difssd dprdres simpld dprdsubg
        csubg syl dpjdisj dpjcntz pj1lid mpdan eqtrd ) ABGCMZMBGDMZEDFGNZOZPZQR
        ZEUAMZRZMZBABVEVLACVKDEFGHIJVKSZKUBUCABVFTVMBUDLAVKEUGMZEUEMZVFVJEBEUFM
        ZEUHMZVOSVPSVQSZVRSZAFEURMZGDADEFHIUIKUJAEVIQUKULZVJWATAWBVJEDQRUMAVHDE
        FHIAFVGUNUOUPVIEUQUSADEFGVQHIKVSUTADEFGVRHIKVTVAVNVBVCVD $.

      dpjrid.0 $e |- .0. = ( 0g ` G ) $.
      dpjrid.5 $e |- ( ph -> Y e. I ) $.
      dpjrid.6 $e |- ( ph -> Y =/= X ) $.
      $( The ` Y ` -th index projection annihilates elements of other factors.
         (Contributed by Mario Carneiro, 26-Apr-2016.) $)
      dpjrid $p |- ( ph -> ( ( P ` Y ) ` A ) = .0. ) $=
        ( vx cfv wceq vh vi cif wcel cv wral cmpt cgsu co cfsupp cixp crab eqid
        wbr dprdfid simprd eqcomd cdprd dprdub sseldd simpld dpjeq mpbid fveq1d
        fveq2 eqeq1 ifbid eqeq12d rspcv sylc wne ifnefalse syl eqtrd ) ABHCSZSZ
        HGTZBIUCZIAHFUDBRUEZCSZSZVSGTZBIUCZTZRFUFZVPVRTZPABERFWCUGZUHUIZTWEAWHB
        AWGUAUEIUJUNUAUBFUBUEDSUKULZUDZWHBTZABDUAUBRWGEFWIGIOWIUMZJKMNWGUMUOZUP
        UQARBWCCDUAUBEFWIIJKLAGDSEDURUIBADEFGJKMUSNUTOWLAWJWKWMVAVBVCWDWFRHFVSH
        TZWAVPWCVRWNBVTVOVSHCVEVDWNWBVQBIVSHGVFVGVHVIVJAHGVKVRITQHGBIVLVMVN $.
    $}

    $( The direct product is the binary subgroup product ("sum") of the direct
       products of the partition.  (Contributed by Mario Carneiro,
       26-Apr-2016.) $)
    dpjghm $p |- ( ph ->
      ( P ` X ) e. ( ( G |`s ( G DProd S ) ) GrpHom G ) ) $=
      ( cfv csn cdif cres cdprd co cpj1 cress cghm eqid clsm cplusg ccntz csubg
      c0g dprdf2 ffvelrnd cdm wbr wss difssd dprdres simpld syl dpjdisj dpjcntz
      wcel dprdsubg pj1ghm dpjval dpjlsm oveq2d oveq1d 3eltr4d ) AFCKZDCEFLZMZN
      ZOPZDQKZPDVEVIDUAKZPZRPZDSPFBKDDCOPZRPZDSPAVJDUBKZVKVEVIDDUEKZDUCKZVPTVKT
      ZVQTZVRTZAEDUDKZFCACDEGHUFJUGADVHOUHUIZVIWBUQAWCVIVNUJAVGCDEGHAEVFUKULUMV
      HDURUNACDEFVQGHJVTUOACDEFVRGHJWAUPVJTZUSABVJCDEFGHIWDJUTAVOVMDSAVNVLDRAVK
      CDEFGHJVSVAVBVCVD $.

    $( The direct product is the binary subgroup product ("sum") of the direct
       products of the partition.  (Contributed by Mario Carneiro,
       26-Apr-2016.) $)
    dpjghm2 $p |- ( ph ->
      ( P ` X ) e. ( ( G |`s ( G DProd S ) ) GrpHom ( G |`s ( S ` X ) ) ) ) $=
      ( cfv cdprd co cress cghm wcel dpjghm csubg crn wss wb dprdf2 ffvelrnd wf
      dpjf frn syl eqid resghm2b syl2anc mpbid ) AFBKZDDCLMZNMZDOMPZULUNDFCKZNM
      ZOMPZABCDEFGHIJQAUPDRKZPULSUPTZUOURUAAEUSFCACDEGHUBJUCAUMUPULUDUTABCDEFGH
      IJUEUMUPULUFUGUNDUQULUPUQUHUIUJUK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The Fundamental Theorem of Abelian Groups
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d a b g x B $.  $d a b g x G $.  $d a b g p K $.  $d a b g L $.  $d x O $.
    $d a b g .(+) $.  $d a b g x M $.  $d a b p x N $.  $d a b g p x ph $.
    $d x .0. $.
    ablfacrp.b $e |- B = ( Base ` G ) $.
    ablfacrp.o $e |- O = ( od ` G ) $.
    ablfacrp.k $e |- K = { x e. B | ( O ` x ) || M } $.
    ablfacrp.l $e |- L = { x e. B | ( O ` x ) || N } $.
    ablfacrp.g $e |- ( ph -> G e. Abel ) $.
    ablfacrp.m $e |- ( ph -> M e. NN ) $.
    ablfacrp.n $e |- ( ph -> N e. NN ) $.
    ablfacrp.1 $e |- ( ph -> ( M gcd N ) = 1 ) $.
    ablfacrp.2 $e |- ( ph -> ( # ` B ) = ( M x. N ) ) $.
    $( Lemma for ~ ablfacrp2 .  (Contributed by Mario Carneiro,
       19-Apr-2016.) $)
    ablfacrplem $p |- ( ph -> ( ( # ` K ) gcd N ) = 1 ) $=
      ( wcel cdvds vp vg chash cfv cgcd co c1 wceq c2 cuz cv wbr cprime wrex wa
      wn nprmdvds1 adantl adantr breq2d mtbird cress cod cbs cgrp cfn crab cabl
      cz nnzd oddvdssubg syl2anc syl5eqel ad2antrr eqid subggrp syl subgbas wss
      csubg cn0 cmul nnnn0d nn0mulcld eqeltrd cvv wb fvex eqeltri hashclb ax-mp
      sylibr ssrab2 eqsstri ssfi sylancl eqeltrrd simplr simpr breqtrd syl31anc
      fveq2d odcau rexeqdv mpbird subgod sylan breq1d elrab2 eqbrtrrd syl5ibcom
      fveq2 simprbi breq1 rexlimdva mpd ex anim1d hashcl nn0zd dvdsgcdb syl3anc
      prmz 3imtr3d mtod nrexdv exprmfct nsyl cn cc0 wne nnne0d necon3ai gcdn0cl
      wo syl21anc elnn1uz2 sylib ord mt3d ) AEUCUDZHUEUFZUGUHZUUBUIUJUDSZAUAUKZ
      UUBTULZUAUMUNUUDAUUFUAUMAUUEUMSZUOZUUFUUEGHUEUFZTULZUUHUUJUUEUGTULZUUGUUK
      UPAUUEUQURUUHUUIUGUUETAUUIUGUHUUGQUSUTVAUUHUUEUUATULZUUEHTULZUOZUUEGTULZU
      UMUOZUUFUUJUUHUULUUOUUMUUHUULUUOUUHUULUOZUBUKZDEVBUFZVCUDZUDZUUEUHZUBEUNZ
      UUOUUQUVCUVBUBUUSVDUDZUNZUUQUUSVESZUVDVFSUUGUUEUVDUCUDZTULUVEUUQEDVTUDZSZ
      UVFAUVIUUGUULAEBUKZIUDZGTULZBCVGZUVHLADVHSGVISZUVMUVHSNAGOVJZBCDGIKJVKVLV
      MVNZEDUUSUUSVOZVPVQUUQEUVDVFUUQUVIEUVDUHUVPEDUUSUVQVRVQZAEVFSZUUGUULACVFS
      ZECVSUVSACUCUDZWASZUVTAUWAGHWBUFWARAGHAGOWCAHPWCWDWECWFSUVTUWBWGCDVDUDWFJ
      DVDWHWICWFWJWKWLEUVMCLUVLBCWMWNCEWOWPZVNWQAUUGUULWRUUQUUEUUAUVGTUUHUULWSU
      UQEUVDUCUVRXBWTUUEUBUUSUUTUVDUVDVOUUTVOZXCXAUUQUVBUBEUVDUVRXDXEUUQUVBUUOU
      BEUUQUURESZUOZUVAGTULUVBUUOUWFUURIUDZUVAGTUUQUVIUWEUWGUVAUHUVPUURUUTDUUSI
      EUVQKUWDXFXGUWEUWGGTULZUUQUWEUURCSUWHUVLUWHBUURCEUVJUURUHUVKUWGGTUVJUURIX
      LXHLXIXMURXJUVAUUEGTXNXKXOXPXQXRUUHUUEVISZUUAVISZHVISZUUNUUFWGUUGUWIAUUEY
      CURZAUWJUUGAUUAAUVSUUAWASUWCEXSVQXTZUSAUWKUUGAHPVJZUSZUUEUUAHYAYBUUHUWIUV
      NUWKUUPUUJWGUWLAUVNUUGUVOUSUWOUUEGHYAYBYDYEYFUUBUAYGYHAUUCUUDAUUBYISZUUCU
      UDYOAUWJUWKUUAYJUHZHYJUHZUOZUPZUWPUWMUWNAHYJYKUWTAHPYLUWSHYJUWQUWRWSYMVQU
      UAHYNYPUUBYQYRYSYT $.

    ${
      ablfacrp.z $e |- .0. = ( 0g ` G ) $.
      ablfacrp.s $e |- .(+) = ( LSSum ` G ) $.
      $( A finite abelian group whose order factors into relatively prime
         integers, itself "factors" into two subgroups ` K , L ` that have
         trivial intersection and whose product is the whole group.  Lemma
         6.1C.2 of [Shapiro], p. 199.  (Contributed by Mario Carneiro,
         19-Apr-2016.) $)
      ablfacrp $p |- ( ph -> ( ( K i^i L ) = { .0. } /\ ( K .(+) L ) = B ) ) $=
        ( vg va vb cin csn wceq co cv cfv cdvds wbr wa crab ineq12i inrab eqtri
        wcel w3a c1 cgcd cz wi cn0 odcl adantl nn0zd nnzd adantr dvdsgcd 3impia
        syl3anc 3ad2ant1 breqtrd wb simp2 dvds1 3syl mpbid cgrp cabl ablgrp syl
        odeq1 syl2anc velsn sylibr rabssdv syl5eqss oddvdssubg syl5eqel subg0cl
        csubg elind snssd eqssd wss lsmsubg2 subgss cmg eqid mulg1 caddc bezout
        cmul ad2antrr eqeq1d cplusg simprl zmulcld simprr addcomd oveq1d simplr
        wrex zcnd mulgdir syl13anc eqtrd mulgcl cfn nnmulcld nnnn0d eqeltrd cvv
        chash cbs fvex eqeltri dvdsmultr1 odmulgid syl31anc mpbird fveq2 breq1d
        mpd elrab2 sylanbrc cc hashclb oddvds2 ad2antlr mulassd ad2antrl mulass
        ax-mp zcn mul12 lsmelvali syl22anc oveq1 syl5ibrcom rexlimdvva eqeltrrd
        eleq1d sylbid ex ssrdv jca ) AFGUFZKUGZUHFGDUIZCUHAUVAUVBAUVABUJZJUKZHU
        LUMZUVEIULUMZUNZBCUOZUVBUVAUVFBCUOZUVGBCUOZUFUVIFUVJGUVKNOUPUVFUVGBCUQU
        RAUVHBCUVBAUVDCUSZUVHUTZUVDKUHZUVDUVBUSUVMUVEVAUHZUVNUVMUVEVAULUMZUVOUV
        MUVEHIVBUIZVAULAUVLUVHUVEUVQULUMZAUVLUNZUVEVCUSHVCUSZIVCUSZUVHUVRVDUVSU
        VEUVLUVEVEUSZAUVDEJCLMVFZVGVHAUVTUVLAHQVIZVJAUWAUVLAIRVIZVJUVEHIVKVMVLA
        UVLUVQVAUHZUVHSVNVOUVMUVLUWBUVPUVOVPAUVLUVHVQZUWCUVEVRVSVTUVMEWAUSZUVLU
        VOUVNVPAUVLUWHUVHAEWBUSZUWHPEWCWDZVNUWGUVDEJCKMUALWEWFVTBKWGWHWIWJAKUVA
        AFGKAFEWNUKZUSZKFUSAFUVJUWKNAUWIUVTUVJUWKUSPUWDBCEHJMLWKWFWLZFEKUAWMWDA
        GUWKUSZKGUSAGUVKUWKOAUWIUWAUVKUWKUSPUWEBCEIJMLWKWFWLZGEKUAWMWDWOWPWQAUV
        CCAUVCUWKUSZUVCCWRAUWIUWLUWNUWPPUWMUWODFGEUBWSVMCUVCELWTWDAUCCUVCAUCUJZ
        CUSZUWQUVCUSAUWRUNZVAUWQEXAUKZUIZUWQUVCUWRUXAUWQUHACUWTEUWQLUWTXBZXCVGU
        WSUVQHUDUJZXFUIZIUEUJZXFUIZXDUIZUHZUEVCXPUDVCXPZUXAUVCUSZAUXIUWRAUVTUWA
        UXIUWDUWEUDUEHIXEWFVJUWSUXHUXJUDUEVCVCUWSUXCVCUSZUXEVCUSZUNZUNZUXHVAUXG
        UHZUXJUXNUVQVAUXGAUWFUWRUXMSXGXHUXNUXJUXOUXGUWQUWTUIZUVCUSUXNUXPUXFUWQU
        WTUIZUXDUWQUWTUIZEXIUKZUIZUVCUXNUXPUXFUXDXDUIZUWQUWTUIZUXTUXNUXGUYAUWQU
        WTUXNUXDUXFUXNUXDUXNHUXCAUVTUWRUXMUWDXGZUWSUXKUXLXJZXKZXQUXNUXFUXNIUXEA
        UWAUWRUXMUWEXGZUWSUXKUXLXLZXKZXQXMXNUXNUWHUXFVCUSZUXDVCUSZUWRUYBUXTUHAU
        WHUWRUXMUWJXGZUYHUYEAUWRUXMXOZCUXSUWTEUXFUXDUWQLUXBUXSXBZXRXSXTUXNUWLUW
        NUXQFUSZUXRGUSZUXTUVCUSAUWLUWRUXMUWMXGAUWNUWRUXMUWOXGUXNUXQCUSZUXQJUKZH
        ULUMZUYNUXNUWHUYIUWRUYPUYKUYHUYLCUWTEUXFUWQLUXBYAVMUXNUYRUWQJUKZHUXFXFU
        IZULUMZUXNUYSHIXFUIZUXEXFUIZUYTULUXNUYSVUBULUMZUYSVUCULUMZUXNUYSCYGUKZV
        UBULUXNUWHCYBUSZUWRUYSVUFULUMUYKAVUGUWRUXMAVUFVEUSZVUGAVUFVUBVETAVUBAHI
        QRYCYDYECYFUSVUGVUHVPCEYHUKYFLEYHYIYJCYFUUAUUGWHXGUYLUWQEJCLMUUBVMAVUFV
        UBUHUWRUXMTXGVOZUXNUYSVCUSZVUBVCUSZUXLVUDVUEVDUXNUYSUWRUYSVEUSAUXMUWQEJ
        CLMVFUUCVHZUXNHIUYCUYFXKZUYGUYSVUBUXEYKVMYQUXNHIUXEUXNHUYCXQZUXNIUYFXQZ
        UXNUXEUYGXQUUDVOUXNUWHUWRUYIUVTUYRVUAVPUYKUYLUYHUYCUWQUWTEHUXFJCLMUXBYL
        YMYNUVFUYRBUXQCFUVDUXQUHUVEUYQHULUVDUXQJYOYPNYRYSUXNUXRCUSZUXRJUKZIULUM
        ZUYOUXNUWHUYJUWRVUPUYKUYEUYLCUWTEUXDUWQLUXBYAVMUXNVURUYSIUXDXFUIZULUMZU
        XNUYSVUBUXCXFUIZVUSULUXNVUDUYSVVAULUMZVUIUXNVUJVUKUXKVUDVVBVDVULVUMUYDU
        YSVUBUXCYKVMYQUXNHYTUSZIYTUSZUXCYTUSZVVAVUSUHVUNVUOUXKVVEUWSUXLUXCUUHUU
        EVVCVVDVVEUTVVAHIUXCXFUIXFUIVUSHIUXCUUFHIUXCUUIXTVMVOUXNUWHUWRUYJUWAVUR
        VUTVPUYKUYLUYEUYFUWQUWTEIUXDJCLMUXBYLYMYNUVGVURBUXRCGUVDUXRUHUVEVUQIULU
        VDUXRJYOYPOYRYSUXSDFGEUXQUXRUYMUBUUJUUKYEUXOUXAUXPUVCVAUXGUWQUWTUULUUPU
        UMUUQUUNYQUUOUURUUSWQUUT $.
    $}

    $( The factors ` K , L ` of ~ ablfacrp have the expected orders (which
       allows for repeated application to decompose ` G ` into subgroups of
       prime-power order).  Lemma 6.1C.2 of [Shapiro], p. 199.  (Contributed by
       Mario Carneiro, 21-Apr-2016.) $)
    ablfacrp2 $p |- ( ph -> ( ( # ` K ) = M /\ ( # ` L ) = N ) ) $=
      ( wcel cdvds chash cfv wceq cn0 wbr cfn wss cmul nnnn0d nn0mulcld eqeltrd
      co cvv wb cbs fvex eqeltri hashclb ax-mp sylibr cv ssrab2 eqsstri sylancl
      crab ssfi hashcl syl cgcd c1 csubg cz oddvdssubg syl2anc syl5eqel lagsubg
      cabl nnzd nncnd mulcomd eqtrd breqtrd ablfacrplem wa wi coprmdvds syl3anc
      nn0zd mp2and gcdcom eqtr3d dvdscmul mpd clsm cin c0g eqid ablfacrp simprd
      csn fveq2d ccntz simpld ablcntzd lsmhash breqtrrd cc0 wne cn subg0cl ne0i
      hashnncl mpbird nnne0d dvdsmulcr syl112anc mpbid dvdseq syl22anc dvdsmulc
      c0 3syl dvdscmulr jca ) AEUAUBZGUCZFUAUBZHUCZAYEUDSZGUDSYEGTUEZGYETUEZYFA
      EUFSZYIACUFSZECUGYLACUAUBZUDSZYMAYNGHUHULZUDRAGHAGOUIZAHPUIZUJUKCUMSYMYOU
      NCDUOUBUMJDUOUPUQCUMURUSUTZEBVAIUBZGTUEZBCVEZCLUUABCVBVCCEVFVDZEVGVHZYQAY
      EHGUHULZTUEZYEHVIULVJUCZYJAYEYNUUETAEDVKUBZSYMYEYNTUEAEUUBUUHLADVQSZGVLSZ
      UUBUUHSNAGOVRZBCDGIKJVMVNVOZYSDCEJVPVNAYNYPUUERAGHAGOVSAHPVSVTWAZWBABCDEF
      GHIJKLMNOPQRWCAYEVLSZHVLSZUUJUUFUUGWDYJWEAYEUUDWHZAHPVRZUUKYEHGWFWGWIZAGY
      GUHULZYEYGUHULZTUEZYKAUUSYPUUTTAYGHTUEZUUSYPTUEZAYGYPTUEZYGGVIULVJUCZUVBA
      YGYNYPTAFUUHSZYMYGYNTUEAFYTHTUEZBCVEZUUHMAUUIUUOUVHUUHSNUUQBCDHIKJVMVNVOZ
      YSDCFJVPVNRWBABCDFEHGIJKMLNPOAGHVIULZHGVIULZVJAUUJUUOUVJUVKUCUUKUUQGHWJVN
      QWKUUMWCAYGVLSZUUJUUOUVDUVEWDUVBWEAYGAFUFSZYGUDSZAYMFCUGUVMYSFUVHCMUVGBCV
      BVCCFVFVDZFVGVHZWHZUUKUUQYGGHWFWGWIZAUVLUUOUUJUVBUVCWEUVQUUQUUKGYGHWLWGWM
      AYNUUTYPAEFDWNUBZULZUAUBYNUUTAUVTCUAAEFWODWPUBZWTUCZUVTCUCZABCUVSDEFGHIUW
      AJKLMNOPQRUWAWQZUVSWQZWRZWSXAAUVSEFDUWADXBUBZUWEUWDUWGWQZUULUVIAUWBUWCUWF
      XCAEFDUWGUWHNUULUVIXDUUCUVOXEWKRWKZXFAUUJUUNUVLYGXGXHUVAYKUNUUKUUPUVQAYGA
      YGXISZFYAXHZAUVFUWAFSUWKUVIFDUWAUWDXJFUWAXKYBAUVMUWJUWKUNUVOFXLVHXMXNYGGY
      EXOXPXQYEGXRXSZAUVNHUDSUVBHYGTUEZYHUVPYRUVRAYEHUHULZUUTTUEZUWMAUWNYPUUTTA
      YJUWNYPTUEZUURAUUNUUJUUOYJUWPWEUUPUUKUUQHYEGXTWGWMUWIXFAUUOUVLUUNYEXGXHUW
      OUWMUNUUQUVQUUPAYEAYEGXIUWLOUKXNYEHYGYCXPXQYGHXRXSYD $.
  $}

  ${
    $d p q w x y B $.  $d p q x y D $.  $d a b p q w x y z ph $.  $d a b q S $.
    $d a b p q x y z A $.  $d p q x y O $.  $d p q x y z P $.  $d q x y z T $.
    $d a b p q x y z G $.
    ablfac1.b $e |- B = ( Base ` G ) $.
    ablfac1.o $e |- O = ( od ` G ) $.
    ablfac1.s $e |- S = ( p e. A |-> { x e. B |
      ( O ` x ) || ( p ^ ( p pCnt ( # ` B ) ) ) } ) $.
    ablfac1.g $e |- ( ph -> G e. Abel ) $.
    ablfac1.f $e |- ( ph -> B e. Fin ) $.
    ablfac1.1 $e |- ( ph -> A C_ Prime ) $.
    ${
      ablfac1.m $e |- M = ( P ^ ( P pCnt ( # ` B ) ) ) $.
      ablfac1.n $e |- N = ( ( # ` B ) / M ) $.
      $( Lemma for ~ ablfac1b .  Satisfy the assumptions of ablfacrp.
         (Contributed by Mario Carneiro, 26-Apr-2016.) $)
      ablfac1lem $p |- ( ( ph /\ P e. A ) -> ( ( M e. NN /\ N e. NN ) /\
        ( M gcd N ) = 1 /\ ( # ` B ) = ( M x. N ) ) ) $=
        ( wcel wa cn cgcd co c1 wceq chash cfv cmul cpc cprime sselda prmnn syl
        cexp c0 wne cabl cgrp ablgrp grpbn0 cfn wb hashnncl mpbird adantr pccld
        3syl nnexpcld syl5eqel cdiv cdvds wbr pcdvds syl2anc syl5eqbr nndivdvds
        mpbid jca oveq1i wn pcndvds2 oveq2i eqtri breq2i sylnibr nnzd coprm cn0
        cz prmz rpexp1i syl3anc mpd syl5eq nncnd nnne0d divcan2d syl5req 3jca
        wi ) AECTZUAZHUBTZIUBTZUAHIUCUDZUEUFDUGUHZHIUIUDZUFXCXDXEXCHEEXGUJUDZUO
        UDZUBRXCEXIXCEUKTZEUBTACUKEQULZEUMUNXCEXGXLAXGUBTZXBAXMDUPUQZAGURTGUSTX
        NOGUTDGLVAVHADVBTXMXNVCPDVDUNVEVFZVGZVIVJZXCIXGHVKUDZUBSXCHXGVLVMZXRUBT
        ZXCHXJXGVLRXCXKXMXJXGVLVMXLXOEXGVNVOVPXCXMXDXSXTVCXOXQXGHVQVOVRVJZVSXCX
        FXJIUCUDZUEHXJIUCRVTXCEIUCUDUEUFZYBUEUFZXCEIVLVMZWAZYCXCEXGXJVKUDZVLVMZ
        YEXCXKXMYHWAXLXOEXGWBVOIYGEVLIXRYGSHXJXGVKRWCWDWEWFXCXKIWJTZYFYCVCXLXCI
        YAWGZEIWHVOVRXCEWJTZYIXIWITYCYDXAXCXKYKXLEWKUNYJXPEIXIWLWMWNWOXCXHHXRUI
        UDXGIXRHUISWCXCXGHXCXGXOWPXCHXQWPXCHXQWQWRWSWT $.
    $}

    $( The factors of ~ ablfac1b are of prime power order.  (Contributed by
       Mario Carneiro, 26-Apr-2016.) $)
    ablfac1a $p |- ( ( ph /\ P e. A ) ->
      ( # ` ( S ` P ) ) = ( P ^ ( P pCnt ( # ` B ) ) ) ) $=
      ( wcel cfv chash co wceq wa cv cpc cexp cdvds wbr id oveq1 oveq12d breq2d
      crab rabbidv cbs cvv fvex eqeltri rabex fvmpt3i adantl fveq2d cdiv adantr
      eqid cabl cn cgcd ablfac1lem simp1d simpld simprd simp2d simp3d ablfacrp2
      c1 cmul eqtrd ) AECPZUAZEFQZRQBUBHQZEEDRQZUCSZUDSZUEUFZBDUKZRQZWCVRVSWERV
      QVSWETAIEVTIUBZWGWAUCSZUDSZUEUFZBDUKWECFWGETZWJWDBDWKWIWCVTUEWKWGEWHWBUDW
      KUGWGEWAUCUHUIUJULLWJBDDGUMQUNJGUMUOUPUQURUSUTVRWFWCTVTWAWCVASZUEUFBDUKZR
      QWLTVRBDGWEWMWCWLHJKWEVCWMVCAGVDPVQMVBVRWCVEPZWLVEPZVRWNWOUAZWCWLVFSVNTZW
      AWCWLVOSTZABCDEFGWCWLHIJKLMNOWCVCWLVCVGZVHZVIVRWNWOWTVJVRWPWQWRWSVKVRWPWQ
      WRWSVLVMVIVP $.

    $( Any abelian group is the direct product of factors of prime power order
       (with the exact order further matching the prime factorization of the
       group order).  (Contributed by Mario Carneiro, 21-Apr-2016.) $)
    ablfac1b $p |- ( ph -> G dom DProd S ) $=
      ( cfv eqid wcel syl co cdvds va csubg cmrc cvv c0g ccntz cabl cgrp ablgrp
      vb cprime wss cn nnex cv prmnn ssriv ssexi ssex chash cpc cexp crab wa cz
      wbr adantr sselda c0 wne grpbn0 cfn wb hashnncl pccld nnexpcld oddvdssubg
      mpbird nnzd syl2anc fmptd w3a wf simpr1 ffvelrnd simpr2 ablcntzd csn cdif
      cima cuni cin cdiv wceq id oveq1 oveq12d breq2d rabbidv cbs eqeltri rabex
      fvex fvmpt3i adantl eqimss cmre cacs subgacs acsmre 4syl cres df-ima cmul
      cpw crn ad2antrr ad3antrrr pcdvds eldifi ad2antlr sseldd c1 wi ablfac1lem
      cgcd simp1d simpld eldifsni necomd cn0 prmz rpexp12i syl112anc coprmdvds2
      prmrp mpd syl31anc syl3anc cmpt mp2and simp3d cc0 simprd nnne0d dvdscmulr
      breqtrd mpbid odcl nn0zd dvdstr mpan2d ss2rabdv elpw sylibr reseq1i difss
      resmpt ax-mp eqtri frn syl5eqss sspwuni sylib mrcsscl ss2in clsm ablfacrp
      simp2d sseqtrd dmdprdd ) AUAUJEFCFUBOZUCOZUDFUEOZFUFOZUVOPZUVNPZUVMPZAFUG
      QZFUHQZLFUIZRZACUKULZCUDQNCUKUKUMUNHUKUMHUOZUPZUQURUSRAHCBUOZGOZUWDUWDDUT
      OZVASZVBSZTVFZBDVCZUVLEAUWDCQZVDZUVSUWJVEQZUWLUVLQAUVSUWMLVGUWNUWJUWNUWDU
      WIUWNUWDUKQZUWDUMQZACUKUWDNVHZUWERUWNUWDUWHUWRAUWHUMQZUWMAUWSDVIVJZAUVTUW
      TUWBDFIVKRADVLQUWSUWTVMMDVNRVRZVGVOVPVSBDFUWJGJIVQVTKWAZAUAUOZCQZUJUOZCQZ
      UXCUXEVJZWBZVDZUXCEOZUXEEOFUVOUVPAUVSUXHLVGUXICUVLUXCEACUVLEWCUXHUXBVGZAU
      XDUXFUXGWDWEUXICUVLUXEEUXKAUXDUXFUXGWFWEWGAUXDVDZUXJECUXCWHZWIZWJZWKZUVMO
      ZWLZUWGUXCUXCUWHVASZVBSZTVFZBDVCZUWGUWHUXTWMSZTVFZBDVCZWLZUVNWHZUXLUXJUYB
      ULZUXQUYEULZUXRUYFULUXLUXJUYBWNZUYHUXDUYJAHUXCUWLUYBCEUWDUXCWNZUWKUYABDUY
      KUWJUXTUWGTUYKUWDUXCUWIUXSVBUYKWOUWDUXCUWHVAWPWQWRWSKUWKBDDFWTOZUDIFWTXCX
      AXBZXDXEUXJUYBXFRUXLUVLUYLXGOQZUXPUYEULZUYEUVLQZUYIUXLUVSUVTUVLUYLXHOQUYN
      AUVSUXDLVGZUWAUYLFUYLPXIUVLUYLXJXKUXLUXOUYEXOZULUYOUXLUXOEUXNXLZXPZUYREUX
      NXMUXLUXNUYRUYSWCUYTUYRULUXLHUXNUWLUYRUYSUXLUWDUXNQZVDZUWLUYEULUWLUYRQVUB
      UWKUYDBDVUBUWFDQZVDZUWKUWJUYCTVFZUYDVUDUXTUWJXNSZUXTUYCXNSZTVFZVUEVUDVUFU
      WHVUGTVUDUXTUWHTVFZUWJUWHTVFZVUFUWHTVFZVUDUXCUKQZUWSVUIUXLVULVUAVUCACUKUX
      CNVHXQZAUWSUXDVUAVUCUXAXRZUXCUWHXSVTVUDUWPUWSVUJVUDCUKUWDAUWCUXDVUAVUCNXR
      VUAUWMUXLVUCUWDCUXMXTYAYBZVUNUWDUWHXSVTVUDUXTVEQZUWOUWHVEQUXTUWJYFSYCWNZV
      UIVUJVDVUKYDVUDUXTUXLUXTUMQZVUAVUCUXLVURUYCUMQZUXLVURVUSVDZUXTUYCYFSYCWNZ
      UWHVUGWNZABCDUXCEFUXTUYCGHIJKLMNUXTPUYCPYEZYGZYHZXQZVSZVUDUWJVUDUWDUWIVUD
      UWPUWQVUOUWERVUDUWDUWHVUOVUNVOZVPVSZVUDUWHVUNVSVUDUXCUWDYFSYCWNZVUQVUDVVJ
      UXCUWDVJZVUDUWDUXCVUAUWDUXCVJUXLVUCUWDCUXCYIYAYJVUDVULUWPVVJVVKVMVUMVUOUX
      CUWDYPVTVRVUDUXCVEQZUWDVEQZUXSYKQUWIYKQVVJVUQYDVUDVULVVLVUMUXCYLRVUDUWPVV
      MVUOUWDYLRVUDUXCUWHVUMVUNVOVVHUXCUWDUXSUWIYMYNYQUWHUXTUWJYOYRUUAUXLVVBVUA
      VUCUXLVUTVVAVVBVVCUUBZXQUUGVUDUWOUYCVEQZVUPUXTUUCVJVUHVUEVMVVIVUDUYCUXLVU
      SVUAVUCUXLVURVUSVVDUUDZXQVSZVVGVUDUXTVVFUUEUXTUWJUYCUUFYNUUHVUDUWGVEQUWOV
      VOUWKVUEVDUYDYDVUDUWGVUCUWGYKQVUBUWFFGDIJUUIXEUUJVVIVVQUWGUWJUYCUUKYSUULU
      UMUWLUYEUYMUUNUUOUYSHCUWLYTZUXNXLZHUXNUWLYTZEVVRUXNKUUPUXNCULVVSVVTWNCUXM
      UUQHCUXNUWLUURUUSUUTWAUXNUYRUYSUVARUVBUXOUYEUVCUVDUXLUVSVVOUYPUYQUXLUYCVV
      PVSBDFUYCGJIVQVTUVLUXPUVMUYEUYLUVRUVEYSUXJUYBUXQUYEUVFVTUXLUYFUYGWNUYBUYE
      FUVGOZSDWNUXLBDVWAFUYBUYEUXTUYCGUVNIJUYBPUYEPUYQVVEVVPUXLVUTVVAVVBVVCUVIV
      VNUVQVWAPUVHYHUVJUVK $.

    ablfac1c.d $e |- D = { w e. Prime | w || ( # ` B ) } $.
    ablfac1.2 $e |- ( ph -> D C_ A ) $.
    $( The factors of ~ ablfac1b cover the entire group.  (Contributed by Mario
       Carneiro, 21-Apr-2016.) $)
    ablfac1c $p |- ( ph -> ( G DProd S ) = B ) $=
      ( wcel wbr vq cfn cdprd wss cen wceq dprdssv a1i chash cfv cn0 cdvds ssfi
      co sylancl hashcl syl csubg cdm ablfac1b dprdsubg lagsubg syl2anc cpc cle
      cv cprime wral wa breq1 elrab2 sseld syl5bir impl cexp ablfac1a cress cbs
      crab cvv fvex eqeltri rabex dmmpti dprdf2 ffvelrnda adantr dprdub wb eqid
      simpr subsubg mpbir2and eqeltrrd fveq2d breqtrrd eqbrtrrd cz sselda nn0zd
      subgbas cn wne cabl cgrp ablgrp grpbn0 3syl hashnncl mpbird pccld pcdvdsb
      c0 syldan syl3anc adantlr wn cc0 biimpar c0g subg0cl ne0i nn0ge0d eqbrtrd
      pceq0 pm2.61dan ralrimiva pc2dvds dvdseq syl22anc hashen mpbid fisseneq )
      AEUBSZHGUCUNZEUDZYOEUETZYOEUFOYPAEGHKUGZUHAYOUIUJZEUIUJZUFZYQAYSUKSZYTUKS
      ZYSYTULTZYTYSULTZUUAAYOUBSZUUBAYNYPUUFOYREYOUMUOZYOUPUQZAYNUUCOEUPUQZAYOH
      URUJZSZYNUUDAHGUCUSTZUUKABDEGHIJKLMNOPUTZGHVAUQZOHEYOKVBVCAUUEUAVFZYTVDUN
      ZUUOYSVDUNZVETZUAVGVHZAUURUAVGAUUOVGSZVIZUUOYTULTZUURUVAUVBUUODSZUURAUUTU
      VBUVCUUTUVBVIUUOFSAUVCCVFZYTULTUVBCUUOVGFUVDUUOYTULVJQVKAFDUUORVLVMVNAUVC
      UURUUTAUVCVIZUURUUOUUPVOUNZYSULTZUVEUUOGUJZUIUJZUVFYSULABDEUUOGHIJKLMNOPV
      PUVEUVIHYOVQUNZVRUJZUIUJZYSULUVEUVHUVJURUJSZUVKUBSUVIUVLULTUVEUVMUVHUUJSZ
      UVHYOUDZADUUJUUOGAGHDUUMGUSDUFZAJDBVFIUJJVFZUVQYTVDUNVOUNULTZBEVSGUVRBEEH
      VRUJVTKHVRWAWBWCMWDZUHWEWFUVEGHDUUOAUULUVCUUMWGUVPUVEUVSUHAUVCWKWHUVEUUKU
      VMUVNUVOVIWIAUUKUVCUUNWGZUVHYOHUVJUVJWJZWLUQWMUVEYOUVKUBUVEUUKYOUVKUFUVTY
      OHUVJUWAXAUQZAUUFUVCUUGWGWNUVJUVKUVHUVKWJVBVCUVEYOUVKUIUWBWOWPWQUVEUUTYSW
      RSZUUPUKSZUURUVGWIADVGUUOPWSZAUWCUVCAYSUUHWTZWGAUVCUUTUWDUWEUVAUUOYTAUUTW
      KZAYTXBSZUUTAUWHEXMXCZAHXDSHXESUWINHXFEHKXGXHAYNUWHUWIWIOEXIUQXJWGZXKXNUU
      PUUOYSXLXOXJXPXNUVAUVBXQZVIUUPXRUUQVEUVAUUPXRUFZUWKUVAUUTUWHUWLUWKWIUWGUW
      JUUOYTYEVCXSUVAXRUUQVETUWKUVAUUQUVAUUOYSUWGAYSXBSZUUTAUWMYOXMXCZAUUKHXTUJ
      ZYOSUWNUUNYOHUWOUWOWJYAYOUWOYBXHAUUFUWMUWNWIUUGYOXIUQXJWGXKYCWGYDYFYGAYTW
      RSUWCUUEUUSWIAYTUUIWTUWFYTYSUAYHVCXJYSYTYIYJAUUFYNUUAYQWIUUGOYOEYKVCYLYOE
      YMXO $.

    ablfac1eu.1 $e |- ( ph -> ( G dom DProd T /\ ( G DProd T ) = B ) ) $.
    ablfac1eu.2 $e |- ( ph -> dom T = A ) $.
    ablfac1eu.3 $e |- ( ( ph /\ q e. A ) -> C e. NN0 ) $.
    ablfac1eu.4 $e |- ( ( ph /\ q e. A ) -> ( # ` ( T ` q ) ) = ( q ^ C ) ) $.
    ${
      ablfac1eulem.1 $e |- ( ph -> P e. Prime ) $.
      ablfac1eulem.2 $e |- ( ph -> A e. Fin ) $.
      $( Lemma for ~ ablfac1eu .  (Contributed by Mario Carneiro,
         27-Apr-2016.) $)
      ablfac1eulem $p |- ( ph ->
        -. P || ( # ` ( G DProd ( T |` ( A \ { P } ) ) ) ) ) $=
        ( vy vz wss csn cdif cres cdprd co chash cfv cdvds wbr wn ssid cfn wcel
        wi cv c0 cun wceq sseq1 difeq1 0dif syl6eq reseq2d oveq2d fveq2d breq2d
        res0 notbid imbi12d imbi2d c1 cprime nprmdvds1 syl c0g cdm cabl cgrp wa
        ablgrp eqid dprd0 3syl simprd fvex hashsng ax-mp mtbird ssun1 sstr mpan
        cvv a1d imim1i wo cmul clsm csubg simpld dprdf2 adantr ssdifssd fssresd
        simprr cin simprl disjsn sylibr difeq1d difindir dprdres ssdif dprdsubg
        wf mp1i dprdssv ssfi sylancl resabs1d cn0 hashcl nn0zd syl3anc ad2antrr
        cz eqtrd syldan adantl a2d 3eqtr3g difundir a1i dprdsplit fdm dprddisj2
        ccntz ssun2 dprdcntz2 lsmhash oveq12d 3eqtrd euclemma bitrd simpr sneqd
        difid wne cexp unssbd vex snss sseldd prmdvdsexpr eqcom syl6ib necon3ad
        wb disjsn2 disj3 sylib dpjlem eqtr3d pm2.61dane orel2 sylbid con3d expr
        imp syl5 expcom findcard2s mpcom mpi ) ADDUKZHKJDHULZUMZUNZUOUPZUQURZUS
        UTZVAZDVBDVCVDAUWEUWLVEZUHAUIVFZDUKZHKJUWNUWFUMZUNZUOUPZUQURZUSUTZVAZVE
        ZVEAVGDUKZHKVGUOUPZUQURZUSUTZVAZVEZVEAUJVFZDUKZHKJUXIUWFUMZUNZUOUPZUQUR
        ZUSUTZVAZVEZVEAUXIMVFZULZVHZDUKZHKJUXTUWFUMZUNZUOUPZUQURZUSUTZVAZVEZVEA
        UWMVEUIUJMDUWNVGVIZUXBUXHAUYIUWOUXCUXAUXGUWNVGDVJUYIUWTUXFUYIUWSUXEHUSU
        YIUWRUXDUQUYIUWQVGKUOUYIUWQJVGUNZVGUYIUWPVGJUYIUWPVGUWFUMZVGUWNVGUWFVKU
        WFVLZVMVNJVRZVMVOVPVQVSVTWAUWNUXIVIZUXBUXQAUYNUWOUXJUXAUXPUWNUXIDVJUYNU
        WTUXOUYNUWSUXNHUSUYNUWRUXMUQUYNUWQUXLKUOUYNUWPUXKJUWNUXIUWFVKVNVOVPVQVS
        VTWAUWNUXTVIZUXBUYHAUYOUWOUYAUXAUYGUWNUXTDVJUYOUWTUYFUYOUWSUYEHUSUYOUWR
        UYDUQUYOUWQUYCKUOUYOUWPUYBJUWNUXTUWFVKVNVOVPVQVSVTWAUWNDVIZUXBUWMAUYPUW
        OUWEUXAUWLUWNDDVJUYPUWTUWKUYPUWSUWJHUSUYPUWRUWIUQUYPUWQUWHKUOUYPUWPUWGJ
        UWNDUWFVKVNVOVPVQVSVTWAAUXGUXCAUXFHWBUSUTZAHWCVDZUYQVAZUGHWDWEZAUXEWBHU
        SAUXEKWFURZULZUQURZWBAUXDVUBUQAKVGUOWGZUTZUXDVUBVIZAKWHVDKWIVDVUEVUFWJR
        KWKKVUAVUAWLZWMWNWOZVPVUAXCVDVUCWBVIKWFWPVUAXCWQWRZVMVQWSXDUXIVCVDZUXRU
        XIVDVAZWJAUXQUYHVUKAUXQUYHVEZVEVUJAVUKVULUXQUYAUXPVEAVUKWJZUYHUYAUXJUXP
        UXIUXTUKZUYAUXJUXIUXSWTZUXIUXTDXAXBXEVUMUYAUXPUYGAVUKUYAUXPUYGVEAVUKUYA
        WJZWJZUYFUXOVUQUYFUXOHKJUXSUWFUMZUNZUOUPZUQURZUSUTZXFZUXOVUQUYFHUXNVVAX
        GUPZUSUTZVVCVUQUYEVVDHUSVUQUYEKUYCUXKUNZUOUPZKUYCVURUNZUOUPZKXHURZUPZUQ
        URVVGUQURZVVIUQURZXGUPVVDVUQUYDVVKUQVUQUXKVURVVJUYCKUYBVUQDKXIURZUYBJAD
        VVNJYEVUPAJKDAKJVUDUTZKJUOUPZEVIUCXJZUDXKXLVUQUXTDUWFAVUKUYAXOZXMZXNZVU
        QUXIUXSXPZUWFUMUYKUXKVURXPVGVUQVWAVGUWFVUQVUKVWAVGVIAVUKUYAXQUXIUXRXRXS
        XTUXIUXSUWFYAUYLUUAZUYBUXKVURVHVIVUQUXIUXSUWFUUBUUCVVJWLZVUQKUYCVUDUTUY
        DVVPUKVUQUYBJKDAVVOVUPVVQXLAJWGDVIZVUPUDXLVVSYBXJZUUDVPVUQVVJVVGVVIKVUA
        KUUGURZVWCVUGVWFWLZVUQKVVFVUDUTZVVGVVNVDVUQVWHVVGUYDUKVUQUXKUYCKUYBVWEV
        UQUYBVVNUYCYEUYCWGUYBVIVVTUYBVVNUYCUUEWEZVUNUXKUYBUKVUQVUOUXIUXTUWFYCYF
        ZYBXJVVFKYDWEVUQKVVHVUDUTZVVIVVNVDVUQVWKVVIUYDUKVUQVURUYCKUYBVWEVWIUXSU
        XTUKVURUYBUKVUQUXSUXIUUHUXSUXTUWFYCYFZYBXJVVHKYDWEVUQUXKVURUYCKUYBVUAVW
        EVWIVWJVWLVWBVUGUUFVUQUXKVURUYCKUYBVWFVWEVWIVWJVWLVWBVWGUUIVUQEVCVDZVVG
        EUKVVGVCVDAVWMVUPSXLZEVVFKOYGEVVGYHYIVUQVWMVVIEUKVVIVCVDVWNEVVHKOYGEVVI
        YHYIUUJVUQVVLUXNVVMVVAXGVUQVVGUXMUQVUQVVFUXLKUOVUQJUXKUYBVWJYJVOVPVUQVV
        IVUTUQVUQVVHVUSKUOVUQJVURUYBVWLYJVOVPUUKUULVQVUQUYRUXNYPVDVVAYPVDVVEVVC
        UVHAUYRVUPUGXLZVUQUXNVUQUXMVCVDZUXNYKVDVUQVWMUXMEUKVWPVWNEUXLKOYGEUXMYH
        YIUXMYLWEYMVUQVVAVUQVUTVCVDZVVAYKVDVUQVWMVUTEUKVWQVWNEVUSKOYGEVUTYHYIVU
        TYLWEYMHUXNVVAUUMYNUUNVUQVVBVAZVVCUXOVEVUQVWRUXRHVUQUXRHVIZWJZVVBUYQAUY
        SVUPVWSUYTYOVWTVVAWBHUSVWTVVAVUCWBVWTVUTVUBUQVWTVUTUXDVUBVWTVUSVGKUOVWT
        VUSUYJVGVWTVURVGJVWTVURUWFUWFUMVGVWTUXSUWFUWFVWTUXRHVUQVWSUUOUUPXTUWFUU
        QVMVNUYMVMVOAVUFVUPVWSVUHYOYQVPVUIVMVQWSVUQUXRHUURZWJZVVBHUXRFUUSUPZUSU
        TZVUQVXAVXDVAVUQVXDUXRHVUQVXDHUXRVIZVWSVUQUYRUXRWCVDFYKVDZVXDVXEVEVWOVU
        QDWCUXRADWCUKVUPTXLVUQUXSDUKUXRDVDZVUQUXIUXSDVVRUUTUXRDMUVAUVBXSZUVCAVU
        PVXGVXFVXHUEYRHUXRFUVDYNHUXRUVEUVFUVGUVSVXBVVAVXCHUSVXBVVAUXRJURZUQURZV
        XCVXBVUTVXIUQVXBKJUXSUNZUOUPVUTVXIVXBVXKVUSKUOVXBUXSVURJVXBUXSUWFXPVGVI
        ZUXSVURVIVXAVXLVUQUXRHUVIYSUXSUWFUVJUVKVNVOVXBJKDUXRAVVOVUPVXAVVQYOAVWD
        VUPVXAUDYOVUQVXGVXAVXHXLUVLUVMVPVUQVXJVXCVIZVXAAVUPVXGVXMVXHUFYRXLYQVQW
        SUVNVVBUXOUVOWEUVPUVQUVRYTUVTUWAYSYTUWBUWCUWD $.
    $}

    $( The factorization of ~ ablfac1b is unique, in that any other
       factorization into prime power factors (even if the exponents are
       different) must be equal to ` S ` .  (Contributed by Mario Carneiro,
       21-Apr-2016.) $)
    ablfac1eu $p |- ( ph -> T = S ) $=
      ( vy cfv cdprd cdm wbr co wceq simpld dprdf2 ffnd cv chash cpc cexp cdvds
      crab cbs cvv fvex a1i wcel wa cfn wss adantr ffvelrnda subgss ssfid simpr
      cen syl syl3anc cz cn0 cprime sselda prmz cle nn0zd cn c0 wne wb hashnncl
      mpbird lagsubg syl2anc nnzd wi prmnn dvdstr mp2and weq id adantl cres csn
      cdif cmul dprdres wf fssresd fdm difssd dprdsubg cgcd c1 c0g eqid subg0cl
      dprdssv ssfi sylancl wn reseq2d oveq2d fveq2d fvres adantrr snssd cc0 mpd
      sylib 3eqtrd hashen mpbid fisseneq disjdif dprdsplit simprd eqtr3d syldan
      cin cun adantlr csubg ablfac1b eqeltri rabex dmmpti odsubdvds cgrp ablgrp
      cabl grpbn0 pccld eqbrtrrd pcdvdsb eluz2 syl3anbrc dvdsexp eqbrtrd hashcl
      cuz nnexpcld ssrabdv oveq1 oveq12d breq2d rabbidv fvmpt3i sseqtr4d nnnn0d
      odcl pcdvds ne0i sneq difeq2d breq12d notbid wral cmpt eqsstri ssid difss
      ssrab2 clsm fssres eldif iddvdsexp sylan eqeltrrd breq1 sylanbrc ex con3d
      elrab2 impr wo elnn0 ord nncnd exp0d hashsng ax-mp syl6reqr snfi eqsstr3d
      sylancr sylan2b eqsstrd dprdlub lsmss2 undif2 ssequn1 syl5req eqtrd fzfid
      jca cfz w3a 3ad2ant2 dvdsle syl2anr 3impia 3ad2ant1 fznn rabssdv syl5eqss
      mpbir2and ralrimiva rspcdva coprm rpexp1i coprmdvds2 syl31anc ccntz inss1
      ablfac1eulem ineq2i in0 3eqtri dprddisj2 dprdcntz2 lsmhash inundif eqcomi
      inass snssi sseqin2 dpjlem simprr disjsn sylibr res0 syl6eq dprd0 anassrs
      ad2antrr pm2.61dan oveq1d 3eqtr3d breqtrd nnne0d dvdseq syl22anc ablfac1a
      dvdsmulcr syl112anc eqtr4d eqfnfvd ) ALDIHADJUUAUGZIAIJDAJIUHUIZUJZJIUHUK
[encoded data, 5440 characters]
      QVVF $.
  $}

  ${
    $d b k s t u v x y .0. $.  $d b k s t u v w x y A $.  $d a b n t w x y D $.
    $d a b k s t u v w x y .(+) $.  $d k E $.  $d a O $.  $d a b k s t w y P $.
    $d a k n s t v B $.  $d a b k n s t u v w x y G $.  $d b k s t u v w y U $.
    $d a k s t w C $.  $d a b k n s t u v w x y S $.  $d a b k n s t w x y W $.
    $d a b k n s t u v w x y ph $.  $d a b k n s t w y .x. $.
    $d s t w x y K $.
    pgpfac1.k $e |- K = ( mrCls ` ( SubGrp ` G ) ) $.
    pgpfac1.s $e |- S = ( K ` { A } ) $.
    pgpfac1.b $e |- B = ( Base ` G ) $.
    pgpfac1.o $e |- O = ( od ` G ) $.
    pgpfac1.e $e |- E = ( gEx ` G ) $.
    pgpfac1.z $e |- .0. = ( 0g ` G ) $.
    pgpfac1.l $e |- .(+) = ( LSSum ` G ) $.
    pgpfac1.p $e |- ( ph -> P pGrp G ) $.
    pgpfac1.g $e |- ( ph -> G e. Abel ) $.
    pgpfac1.n $e |- ( ph -> B e. Fin ) $.
    pgpfac1.oe $e |- ( ph -> ( O ` A ) = E ) $.
    ${
      pgpfac1.u $e |- ( ph -> U e. ( SubGrp ` G ) ) $.
      pgpfac1.au $e |- ( ph -> A e. U ) $.
      ${
        pgpfac1.w $e |- ( ph -> W e. ( SubGrp ` G ) ) $.
        pgpfac1.i $e |- ( ph -> ( S i^i W ) = { .0. } ) $.
        pgpfac1.ss $e |- ( ph -> ( S .(+) W ) C_ U ) $.
        pgpfac1.2 $e |- ( ph -> A. w e. ( SubGrp ` G )
          ( ( w C. U /\ A e. w ) -> -. ( S .(+) W ) C. w ) ) $.
        $( Lemma for ~ pgpfac1 .  (Contributed by Mario Carneiro,
           27-Apr-2016.) $)
        pgpfac1lem1 $p |- ( ( ph /\ C e. ( U \ ( S .(+) W ) ) ) ->
          ( ( S .(+) W ) .(+) ( K ` { C } ) ) = U ) $=
          ( co cdif wcel wa csn cfv wss wceq adantr csubg cmre cabl cgrp ablgrp
          cacs subgacs acsmre eldifi adantl snssd mrcsscl syl3anc wb subgss syl
          4syl sseldd mrcsncl syl2anc syl5eqel lsmsubg2 sselda sylan2 lsmlub wn
          mpbi2and wpss wi lsmub1 lsmub2 mrcssidd snssg mpbird eldifn ssnelpssd
          syl6sseqr wral psseq1 eleq2 anbi12d psseq2 notbid imbi12d sylc mpan2d
          cv rspcv mt2d npss sylib mpd ) AEIHNGUMZUNUOZUPZXNEUQZLURZGUMZIUSZXSI
          UTZXPXNIUSZXRIUSZXTAYBXOUKVAXPKVBURZDVCURUOZXQIUSIYDUOZYCAYEXOAKVDUOZ
          KVEUOYDDVGURUOYEUDKVFDKRVHYDDVIVRZVAZXPEIXOEIUOZAEIXNVJZVKVLAYFXOUGVA
          ZYDXQLIDPVMVNXPXNYDUOZXRYDUOZYFYBYCUPXTVOAYMXOAYGHYDUOZNYDUOZYMUDAHCU
          QZLURZYDQAYECDUOYRYDUOYHAIDCAYFIDUSUGDIKRVPVQZUHVSZYDCLDPVTWAWBZUIGHN
          KUBWCVNVAZXPYEEDUOZYNYIXOAYJUUCYKAIDEYSWDWEZYDELDPVTWAZYLGXNXRIKUBWFV
          NWHXPXSIWIZWGXTYAWJXPUUFXNXSWIZXPXNXSEXPYMYNXNXSUSUUBUUEGXNXRKUBWKWAZ
          XPXRXSEXPYMYNXRXSUSUUBUUEGXNXRKUBWLWAXPEXRUOZXQXRUSZXPYDXQLDYIPXPEDUU
          DVLWMXPUUCUUIUUJVOUUDEXRDWNVQWOVSXOEXNUOWGAEIXNWPVKWQXPUUFCXSUOZUUGWG
          ZXPXNXSCUUHACXNUOXOAHXNCAYOYPHXNUSUUAUIGHNKUBWKWAACHUOZYQHUSZAYQYRHAY
          DYQLDYHPACDYTVLWMQWRACIUOUUMUUNVOUHCHIWNVQWOVSVAVSXPXSYDUOZBXHZIWIZCU
          UPUOZUPZXNUUPWIZWGZWJZBYDWSZUUFUUKUPZUULWJZXPYGYMYNUUOAYGXOUDVAUUBUUE
          GXNXRKUBWCVNAUVCXOULVAUVBUVEBXSYDUUPXSUTZUUSUVDUVAUULUVFUUQUUFUURUUKU
          UPXSIWTUUPXSCXAXBUVFUUTUUGUUPXSXNXCXDXEXIXFXGXJXSIXKXLXM $.

        pgpfac1.c $e |- ( ph -> C e. ( U \ ( S .(+) W ) ) ) $.
        pgpfac1.mg $e |- .x. = ( .g ` G ) $.
        $( Lemma for ~ pgpfac1 .  (Contributed by Mario Carneiro,
           27-Apr-2016.) $)
        pgpfac1lem2 $p |- ( ph -> ( P .x. C ) e. ( S .(+) W ) ) $=
          ( vk vs vt va co wcel eldifbd wn c1 cv cmul caddc cz wrex csn eldifad
          cfv adantr cdif wceq csubg cprime cpgp wbr pgpprm syl prmz subgmulgcl
          wa syl3anc simpr eldifd pgpfac1lem1 syldan eleqtrrd ex eqid cabl cmre
          csg ablgrp subgacs acsmred wss subgss sseldd mrcsncl syl2anc syl5eqel
          cgrp cacs lsmsubg2 lsmelvalm cmpt crn cycsubg2 rexeqdv cvv wral rgenw
          wb ovex oveq2 eqeq2d rexrnmpt mp1i bitrd rexcom cplusg ad2antrr sstrd
          rexbidv sselda simplr mulgcl syl13anc 1zzd eqcom rexbidva wi cgcd cn0
          nn0zd mpd rexlimdva zmulcld mulgdir mulg1 mulgass eqtrd eqeq1d bitr4d
          grpsubadd oveq12d 3bitr4g risset syl6bbr syl5bb 3bitrd sylibd syl2anr
          1z zmulcl zaddcl sylancr chash cdvds odcl cfn hashcl cpc cexp pgphash
          id gcdcom oveq1d gcdaddm gcd1 eqtr3d cn c0 wne grpbn0 hashnncl mpbird
          pccld rpexp1i 3eqtrd oddvds2 rpdvds syl32anc odbezout syl31anc 3expia
          eleq1 imbi2d syl5ibcom syld mt3d ) AFEIUTZHOGUTZVAZEUWPVAZAEJUWPUNVBA
          UWQVCZVDUPVEZFVFUTZVGUTZEIUTZUWPVAZUPVHVIZUWRAUWSEUWPUWOVJMVLZGUTZVAZ
          UXEAUWSUXHAUWSWDZEJUXGAEJVAZUWSAEJUWPUNVKZVMAUWSUWOJUWPVNVAUXGJVOUXIU
          WOJUWPAUWOJVAZUWSAJLVPVLZVAZFVHVAZUXJUXLUHAFVQVAZUXOAFLVRVSZUXPUDFLVT
          WAZFWBWAZUXKJILFEUOWCWEZVMAUWSWFWGABCDUWOFGHJKLMNOPQRSTUAUBUCUDUEUFUG
          UHUIUJUKULUMWHWIWJWKAUXHEUQVEZURVEZLWOVLZUTZVOZURUXFVIZUQUWPVIEUYAUWT
          UWOIUTZUYCUTZVOZUPVHVIZUQUWPVIZUXEAUQURGUWPUXFLUYCEUYCWLZUCALWMVAZHUX
          MVAOUXMVAUWPUXMVAZUEAHCVJMVLZUXMRAUXMDWNVLVAZCDVAUYOUXMVAAUXMDALXEVAZ
          UXMDXFVLVAAUYMUYQUELWPWAZDLSWQWAWRZAJDCAUXNJDWSUHDJLSWTWAZUIXAUXMCMDQ
          XBXCXDUJGHOLUCXGWEZAUYPUWODVAZUXFUXMVAUYSAJDUWOUYTUXTXAZUXMUWOMDQXBXC
          XHAUYFUYJUQUWPAUYFUYEURUPVHUYGXIZXJZVIZUYJAUYEURUXFVUEAUYQVUBUXFVUEVO
          UYRVUCUPUWOIVUDLMDSUOVUDWLZQXKXCXLUYGXMVAZUPVHXNVUFUYJXPAVUHUPVHUWTUW
          OIXQXOUYEUYIUPURVHUYGVUDXMVUGUYBUYGVOUYDUYHEUYBUYGUYAUYCXRXSXTYAYBYGU
          YKUYIUQUWPVIZUPVHVIAUXEUYIUQUPUWPVHYCAVUIUXDUPVHAUWTVHVAZWDZVUIUYAUXC
          VOZUQUWPVIUXDVUKUYIVULUQUWPVUKUYAUWPVAZWDZUYHEVOZUXCUYAVOZUYIVULVUNVU
          OEUYGLYDVLZUTZUYAVOZVUPVUNUYQUYADVAUYGDVAZEDVAZVUOVUSXPAUYQVUJVUMUYRY
          EZVUKUWPDUYAAUWPDWSVUJAUWPJDULUYTYFVMYHVUNUYQVUJVUBVUTVVBAVUJVUMYIZAV
          UBVUJVUMVUCYEDILUWTUWOSUOYJWEAVVAVUJVUMAJDEUYTUXKXAZYEZDVUQLUYCUYAUYG
          ESVUQWLZUYLUUHYKVUNUXCVURUYAVUNUXCVDEIUTZUXAEIUTZVUQUTZVURVUNUYQVDVHV
          AZUXAVHVAZVVAUXCVVIVOVVBVUNYLVUNUWTFVVCAUXOVUJVUMUXSYEZUUAVVEDVUQILVD
          UXAESUOVVFUUBYKVUNVVGEVVHUYGVUQVUNVVAVVGEVOVVEDILESUOUUCWAVUNUYQVUJUX
          OVVAVVHUYGVOVVBVVCVVLVVEDILUWTFESUOUUDYKUUIUUEUUFUUGEUYHYMUYAUXCYMUUJ
          YNUQUXCUWPUUKUULYNUUMUUNUUOAUXDUWRUPVHVUKUSVEZUXCIUTZEVOZUSVHVIZUXDUW
          RYOZVUKUYQVVAUXBVHVAZUXBENVLZYPUTVDVOZVVPAUYQVUJUYRVMAVVAVUJVVDVMZVUK
          VVJVVKVVRUUQVUJVUJUXOVVKAVUJUVIUXSUWTFUURUUPVDUXAUUSUUTZVUKVVRVVSVHVA
          DUVAVLZVHVAZUXBVWCYPUTZVDVOVVSVWCUVBVSZVVTVWBVUKVVSVUKVVAVVSYQVAVWAEL
          NDSTUVCWAYRAVWDVUJAVWCADUVDVAZVWCYQVAUFDUVEWAYRVMZVUKVWEVWCUXBYPUTZFF
          VWCUVFUTZUVGUTZUXBYPUTZVDVUKVVRVWDVWEVWIVOVWBVWHUXBVWCUVJXCVUKVWCVWKU
          XBYPAVWCVWKVOZVUJAUXQVWGVWMUDUFFLDSUVHXCVMUVKVUKFUXBYPUTZVDVOZVWLVDVO
          ZVUKFVDYPUTZVWNVDVUKVUJUXOVVJVWQVWNVOAVUJWFAUXOVUJUXSVMZVUKYLUWTFVDUV
          LWEVUKUXOVWQVDVOVWRFUVMWAUVNVUKUXOVVRVWJYQVAZVWOVWPYOVWRVWBAVWSVUJAFV
          WCUXRAVWCUVOVAZDUVPUVQZAUYQVXAUYRDLSUVRWAAVWGVWTVXAXPUFDUVSWAUVTUWAVM
          FUXBVWJUWBWEYSUWCAVWFVUJAUYQVWGVVAVWFUYRUFVVDELNDSTUWDWEVMUXBVVSVWCUW
          EUWFUSEILUXBNDSTUOUWGUWHVUKVVOVVQUSVHVUKVVMVHVAZWDZUXDVVNUWPVAZYOZVVO
          VVQVXCUYNVXBVXEAUYNVUJVXBVUAYEVUKVXBWFUYNVXBUXDVXDUWPILVVMUXCUOWCUWIX
          CVVOVXDUWRUXDVVNEUWPUWJUWKUWLYTYSYTUWMUWN $.

        ${
          pgpfac1.m $e |- ( ph -> M e. ZZ ) $.
          pgpfac1.mw $e |- ( ph ->
            ( ( P .x. C ) ( +g ` G ) ( M .x. A ) ) e. W ) $.
          $( Lemma for ~ pgpfac1 .  (Contributed by Mario Carneiro,
             4-Jun-2016.) $)
          pgpfac1lem3a $p |- ( ph -> ( P || E /\ P || M ) ) $=
            ( vk cdvds wbr co wcel eldifbd wn c1o cen cpc cexp cc0 cprime cn wb
            wceq cpgp pgpprm syl cgrp ablgrp gexcl2 syl2anc pceq0 oveq2 syl6bir
            cfn cabl c1 cv cn0 chash cfv c0 wne grpbn0 hashnncl mpbird gexdvds3
            wrex pccld pgphash breqtrd breq2d rspcev pcprmpw2 mpbid prmnn nncnd
            eqcomd exp0d eqeq12d cmnd grpmnd gex1 bitrd sylibd wa csn wss csubg
            cmre subgacs acsmred subgss sseldd mrcsncl syl5eqel syl3anc subg0cl
            cacs lsmsubg2 snssd adantr eleqtrd cmul nnne0d cz subgmulgcl mulgcl
            syl13anc mulgass eldifad grpidcl en1eqsn ex syld mt3d cdiv divcan1d
            sylan eqtr4d nndivdvds nnzd zmulcld mrcssidd syl6sseqr snssg cplusg
            cin prmz eqid mulgdi oveq1d gexid 3eqtr3rd oveq12d 3eqtr2d eqeltrrd
            grplid elind elsni oddvds eqbrtrrd dvdscmulr syl112anc jca ) AFKUTV
            AZFNUTVAZAUVPEHPGVBZVCZAEJUVRUOVDAUVPVEZDVFVGVAZUVSAUVTFFKVHVBZVIVB
            ZFVJVIVBZVNZUWAAUVTUWBVJVNZUWEAFVKVCZKVLVCZUWFUVTVMAFLVOVAZUWGUEFLV
            PVQZALVRVCZDWEVCZUWHALWFVCZUWKUFLVSVQZUGKLDTUBVTWAZFKWBWAUWBVJFVIWC
            WDAUWEKWGVNZUWAAUWCKUWDWGAKUWCAKFUSWHZVIVBZUTVAZUSWIWRZKUWCVNZAFDWJ
            WKZVHVBZWIVCKFUXCVIVBZUTVAZUWTAFUXBUWJAUXBVLVCZDWLWMZAUWKUXGUWNDLTW
            NVQAUWLUXFUXGVMUGDWOVQWPWSAKUXBUXDUTAUWKUWLKUXBUTVAUWNUGKLDTUBWQWAA
            UWIUWLUXBUXDVNUEUGFLDTWTWAXAUWSUXEUSUXCWIUWQUXCVNUWRUXDKUTUWQUXCFVI
            WCXBXCWAAUWGUWHUWTUXAVMUWJUWOKFUSXDWAXEXHAFAFAUWGFVLVCZUWJFXFVQZXGZ
            XIXJALXKVCZUWPUWAVMAUWKUXKUWNLXLVQKLDTUBXMVQXNXOAUWAUVSAUWAXPZQXQZU
            VREAUXMUVRXRUWAAQUVRAUVRLXSWKZVCZQUVRVCAUWMHUXNVCZPUXNVCZUXOUFAHCXQ
            ZMWKZUXNSAUXNDXTWKVCCDVCZUXSUXNVCAUXNDAUWKUXNDYIWKVCUWNDLTYAVQYBZAJ
            DCAJUXNVCJDXRUIDJLTYCVQZUJYDZUXNCMDRYEWAYFZUKGHPLUDYJYGUVRLQUCYHVQY
            KYLUXLEDUXMAEDVCZUWAAJDEUYBAEJUVRUOUUAYDZYLAQDVCZUWADUXMVNAUWKUYGUW
            NDLQTUCUUBVQQDUUCUUIYMYDUUDUUEUUFZAKFUUGVBZFYNVBZUYINYNVBZUTVAZUVQA
            COWKZUYJUYKUTAUYMKUYJUHAKFAKUWOXGUXJAFUXIYOUUHZUUJAUYMUYKUTVAZUYKCI
            VBZQVNZAUYPUXMVCUYQAUYPHPUURUXMAHPUYPAUXPUYKYPVCZCHVCZUYPHVCUYDAUYI
            NAUYIAUVPUYIVLVCZUYHAUWHUXHUVPUYTVMUWOUXIKFUUKWAXEZUULZUQUUMZAUYSUX
            RHXRZAUXRUXSHAUXNUXRMDUYARACDUYCYKUUNSUUOACJVCUYSVUDVMUJCHJUUPVQWPH
            ILUYKCUPYQYGZAUYIFEIVBZNCIVBZLUUQWKZVBZIVBZUYPPAVUJUYIVUFIVBZUYIVUG
            IVBZVUHVBZQUYPVUHVBZUYPAUWMUYIYPVCZVUFDVCZVUGDVCZVUJVUMVNUFVUBAUWKF
            YPVCZUYEVUPUWNAUWGVURUWJFUUSVQZUYFDILFETUPYRYGAUWKNYPVCZUXTVUQUWNUQ
            UYCDILNCTUPYRYGDVUHILUYIVUFVUGTUPVUHUUTZUVAYSAQVUKUYPVULVUHAUYJEIVB
            ZKEIVBZVUKQAUYJKEIUYNUVBAUWKVUOVURUYEVVBVUKVNUWNVUBVUSUYFDILUYIFETU
            PYTYSAUYEVVCQVNUYFEIKLDQTUBUPUCUVCVQUVDAUWKVUOVUTUXTUYPVULVNUWNVUBU
            QUYCDILUYINCTUPYTYSUVEAUWKUYPDVCVUNUYPVNUWNAHDUYPAUXPHDXRUYDDHLTYCV
            QVUEYDDVUHLUYPQTVVAUCUVHWAUVFAUXQVUOVUIPVCVUJPVCUKVUBURPILUYIVUIUPY
            QYGUVGUVIULYMUYPQUVJVQAUWKUXTUYRUYOUYQVMUWNUYCVUCCILUYKODQTUAUPUCUV
            KYGWPUVLAVURVUTVUOUYIVJWMUYLUVQVMVUSUQVUBAUYIVUAYOUYIFNUVMUVNXEUVO
            $.

          pgpfac1.d $e |- D = ( C ( +g ` G ) ( ( M / P ) .x. A ) ) $.
          $( Lemma for ~ pgpfac1 .  (Contributed by Mario Carneiro,
             27-Apr-2016.) $)
          pgpfac1lem3 $p |- ( ph -> E. t e. ( SubGrp ` G )
            ( ( S i^i t ) = { .0. } /\ ( S .(+) t ) = U ) ) $=
            ( vx vn vy va vb csn cfv co csubg wcel cin wceq wrex cabl cmre cgrp
            cv wa cacs ablgrp syl subgacs acsmre 3syl wss subgss cplusg eldifad
            sseldd mrcsncl syl2anc syl5eqel lsmub1 sstrd cdvds wbr pgpfac1lem3a
            cdiv cz simprd cc0 wne dvdsval2 syl3anc mpbid snssd subgmulgcl eqid
            wb subgcl lsmsubg2 cvv oveq2 adantr ad3antrrr cmul oveq1d subgsubcl
            zcnd cc wn syl5eq eleq1d sylibd c1 zmulcld syl13anc mulcomd mulgass
            eqtrd eqtr3d oveq2d eqeltrd rexlimdvva sylbid elin subg0cl eqeq1d
            zcn cprime cpgp pgpprm prmnn nnne0d mrcssidd syl6sseqr snssg mpbird
            prmz csg lsmelvalm cmpt crn cycsubg2 rexeqdv wral ovex rgenw eqeq2d
            cn rexrnmpt ax-mp syl6bb rexbidv bitrd simpr simplrl nncnd divcan1d
            simplrr eldifbd wi 3expia impancom oveq1i grppncan mtod coprm caddc
            cgcd bezout eqeq1 2rexbidv syl5ibcom simprl simprr mulgdir ad2antrl
            lsmub2 oveq2i mulgdi divcan2d ad2antll mulgcl ablnncan sselda oveq1
            ad2antrr eqeltrrd syl5ibrcom syld mulg1 ex imdistanda 3imtr4g ssrdv
            mt3d sseqtrd elind eqssd lsmass cdif eldifd pgpfac1lem1 mpdan ineq2
            anbi12d rspcev syl12anc ) ARGVGOVHZIVIZNVJVHZVKZJUYBVLZSVGZVMZJUYBI
[encoded data, 4800 characters]
            UYBJIXNYSUXRUXSUXT $.
        $}

        $( Lemma for ~ pgpfac1 .  (Contributed by Mario Carneiro,
           27-Apr-2016.) $)
        pgpfac1lem4 $p |- ( ph -> E. t e. ( SubGrp ` G )
          ( ( S i^i t ) = { .0. } /\ ( S .(+) t ) = U ) ) $=
          ( vk vs co cv cplusg cfv wcel cin csn wceq csubg wrex csg pgpfac1lem2
          wa cz cabl cmre cgrp cacs ablgrp syl subgacs acsmre wss subgss sseldd
          3syl mrcsncl syl2anc lsmcom syl3anc eleqtrd eqid lsmelvalm mpbid cmpt
          syl5eqel crn cycsubg2 syl5eq rexeqdv cvv wral ovex rgenw oveq2 eqeq2d
          wb rexrnmpt ax-mp syl6bb rexbidv rexcom ad2antrr adantr sselda simplr
          sylib mulgcl cpgp cprime pgpprm prmz eldifad grpsubadd syl13anc eqcom
          wbr 3bitr4g rexbidva risset syl6bbr cdiv cfn wpss wn wi simprl simprr
          cdif pgpfac1lem3 rexlimddv ) AGFJUSZUQUTZDJUSZMVAVBZUSZPVCZICUTZVDQVE
          ZVFIUUFHUSKVFVKCMVGVBZVHUQVLAYTBUTZUUBMVIVBZUSZVFZBPVHZUQVLVHZUUEUQVL
          VHAUULUQVLVHZBPVHZUUNAYTUUIURUTZUUJUSZVFZURIVHZBPVHZUUPAYTPIHUSZVCUVA
          AYTIPHUSZUVBABDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPVJAMVM
          VCZIUUHVCPUUHVCZUVCUVBVFUFAIDVENVBZUUHSAUUHEVNVBVCZDEVCZUVFUUHVCAMVOV
          CZUUHEVPVBVCUVGAUVDUVIUFMVQVRZEMTVSUUHEVTWDAKEDAKUUHVCZKEWAUIEKMTWBVR
          ZUJWCZUUHDNERWEWFWNZUKHIPMUDWGWHWIABURHPIMUUJYTUUJWJZUDUKUVNWKWLAUUTU
          UOBPAUUTUUSURUQVLUUBWMZWOZVHZUUOAUUSURIUVQAIUVFUVQSAUVIUVHUVFUVQVFUVJ
          UVMUQDJUVPMNETUPUVPWJZRWPWFWQWRUUBWSVCZUQVLWTUVRUUOXEUVTUQVLUUADJXAXB
          UUSUULUQURVLUUBUVPWSUVSUUQUUBVFUURUUKYTUUQUUBUUIUUJXCXDXFXGXHXIWLUULB
          UQPVLXJXOAUUMUUEUQVLAUUAVLVCZVKZUUMUUIUUDVFZBPVHUUEUWBUULUWCBPUWBUUIP
          VCZVKZUUKYTVFZUUDUUIVFZUULUWCUWEUVIUUIEVCUUBEVCZYTEVCZUWFUWGXEAUVIUWA
          UWDUVJXKZUWBPEUUIAPEWAZUWAAUVEUWKUKEPMTWBVRXLXMUWEUVIUWAUVHUWHUWJAUWA
          UWDXNAUVHUWAUWDUVMXKEJMUUADTUPXPWHAUWIUWAUWDAUVIGVLVCZFEVCUWIUVJAGMXQ
          YEZGXRVCUWLUEGMXSGXTWDAKEFUVLAFKUVCUOYAWCEJMGFTUPXPWHXKEUUCMUUJUUIUUB
          YTTUUCWJUVOYBYCYTUUKYDUUIUUDYDYFYGBUUDPYHYIYGWLAUWAUUEVKZVKBCDEFFUUAG
          YJUSDJUSUUCUSZGHIJKLMNUUAOPQRSTUAUBUCUDAUWMUWNUEXLAUVDUWNUFXLAEYKVCUW
          NUGXLADOVBLVFUWNUHXLAUVKUWNUIXLADKVCUWNUJXLAUVEUWNUKXLAIPVDUUGVFUWNUL
          XLAUVCKWAUWNUMXLAUUIKYLDUUIVCVKUVCUUIYLYMYNBUUHWTUWNUNXLAFKUVCYQVCUWN
          UOXLUPAUWAUUEYOAUWAUUEYPUWOWJYRYS $.
      $}

      pgpfac1.3 $e |- ( ph -> A. s e. ( SubGrp ` G )
        ( ( s C. U /\ A e. s ) -> E. t e. ( SubGrp ` G )
          ( ( S i^i t ) = { .0. } /\ ( S .(+) t ) = s ) ) ) $.
      $( Lemma for ~ pgpfac1 .  (Contributed by Mario Carneiro,
         27-Apr-2016.) $)
      pgpfac1lem5 $p |- ( ph -> E. t e. ( SubGrp ` G )
        ( ( S i^i t ) = { .0. } /\ ( S .(+) t ) = U ) ) $=
        ( vw vv vu vb vy wpss cv cin csn wceq co wa csubg cfv wrex wcel wn wral
        wi crab ccrd cdm c0 wne wss crpss wor w3a cuni wal cfn cpw sylib adantr
        pwfi subgss 3ad2ant2 selpw sylibr rabssdv ssfi syl2anc finnum cmre cgrp
        syl cacs cabl ablgrp subgacs acsmre sseldd mrcsncl syl5eqel simpr snssd
        3syl sstrd mrcssidd syl6sseqr snssg mpbird psseq1 eleq2 rspcev syl12anc
        wb anbi12d simpr1 simpr2 simpr3 fin1a2lem10 syl3anc alrimiv zornn0g weq
        rabn0 ex ralrab rexbii r19.29 elrab ineq2 eqeq1d cbvrexv cdif ad3antrrr
        oveq2 adantrr notbid impd rexlimdva wex simprrl ad2antrr psseq1d pssdif
        n0 cmg cpgp simplr simprl1 pssssd simprl3 imbi2d ralbidv psseq2 imbi12d
        wbr cbvralv syl6bb simprr eqid pgpfac1lem4 exlimdv 3exp2 syl5bi sylan2b
        expr mpd syl5 mpand syld 0subg subg0cl sseqin2 biimpar mrcsscl syl5eqss
        lsmss2 wo sspss mpjaod ) AGHUNZGBUOZUPZMUQZURZGUWCFUSZHURZUTZBJVAVBZVCZ
        GHURZAUWBUIUOZHUNZCUWMVDZUTZNUOZUWMUNZVEZVGZUIUWJVFZNUJUOZHUNZCUXBVDZUT
        ZUJUWJVHZVCZUWKAUWBUXGAUWBUTZUWSUIUXFVFZNUXFVCZUXGUXHUXFVIVJVDZUXFVKVLZ
        UKUOZUXFVMZUXMVKVLZUXMVNVOZVPZUXMVQZUXFVDZVGZUKVRUXJUXHUXFVSVDZUXKUXHDV
        TZVSVDZUXFUYBVMUYAAUYCUWBADVSVDZUYCUDDWCWAWBUXHUXEUJUWJUYBUXHUXBUWJVDZU
        XEVPUXBDVMZUXBUYBVDUYEUXHUYFUXEDUXBJQWDWEUJDWFWGWHUYBUXFWIWJZUXFWKWNUXH
        UXEUJUWJVCZUXLUXHGUWJVDZUWBCGVDZUYHAUYIUWBAGCUQZKVBZUWJPAUWJDWLVBVDZCDV
        DZUYLUWJVDAJWMVDZUWJDWOVBVDUYMAJWPVDZUYOUCJWQWNZDJQWRUWJDWSXEZAHDCAHUWJ
        VDZHDVMUFDHJQWDWNZUGWTZUWJCKDOXAWJXBZWBAUWBXCAUYJUWBAUYJUYKGVMZAUYKUYLG
        AUWJUYKKDUYROAUYKHDACHUGXDZUYTXFXGPXHAUYNUYJVUCXOVUACGDXIWNXJWBUXEUWBUY
        JUTUJGUWJUXBGURUXCUWBUXDUYJUXBGHXKUXBGCXLXPXMXNUXEUJUWJYEWGUXHUXTUKUXHU
        XQUXSUXHUXQUTZUXMUXFUXRUXHUXNUXOUXPXQZVUEUXOUXMVSVDZUXPUXRUXMVDUXHUXNUX
        OUXPXRVUEUYAUXNVUGUXHUYAUXQUYGWBVUFUXFUXMWIWJUXHUXNUXOUXPXSUXMXTYAWTYFY
        BNUIUKUXFYCYAUXIUXANUXFUXEUWPUWSUIUJUWJUJUIYDUXCUWNUXDUWOUXBUWMHXKUXBUW
        MCXLXPYGYHWAYFAUWFUWGUWQURZUTZBUWJVCZNUXFVFZUXGUWKAUWQHUNZCUWQVDZUTZVUJ
        VGNUWJVFVUKUHUXEVUNVUJNUJUWJUJNYDUXCVULUXDVUMUXBUWQHXKUXBUWQCXLXPZYGWGV
        UKUXGUTVUJUXAUTZNUXFVCAUWKVUJUXANUXFYIAVUPUWKNUXFUWQUXFVDAUWQUWJVDZVUNU
        TZVUPUWKVGUXEVUNUJUWQUWJVUOYJAVURUTZVUJUXAUWKVUJGUXBUPZUWEURZGUXBFUSZUW
        QURZUTZUJUWJVCVUSUXAUWKVGZVUIVVDBUJUWJBUJYDZUWFVVAVUHVVCVVFUWDVUTUWEUWC
        UXBGYKYLVVFUWGVVBUWQUWCUXBGFYPYLXPYMVUSVVDVVEUJUWJVUSUYEUTZVVAVVCVVEVVG
        VVAVVCUXAUWKVVGVVAVVCUXAVPZUTZULUOZHVVBYNZVDZULUUAZUWKVVIVVBHUNZVVMVVIV
        VNVULVUSVULUYEVVHAVUQVULVUMUUBUUCVVIVVBUWQHVVGVVAVVCUXAXRZUUDXJZVVNVVKV
        KVLVVMVVBHUUEULVVKUUFWAWNVVIVVLUWKULVVGVVHVVLUWKVVGVVHVVLUTZUTZUMBCDVVJ
        EFGJUUGVBZHIJKLUXBMOPQRSTUAAEJUUHUUQVURUYEVVQUBYOAUYPVURUYEVVQUCYOAUYDV
        URUYEVVQUDYOACLVBIURVURUYEVVQUEYOAUYSVURUYEVVQUFYOACHVDVURUYEVVQUGYOVUS
        UYEVVQUUIVVAVVCUXAVVLVVGUUJVVRVVBHVVGVVHVVNVVLVVPYQUUKVVRUMUOZHUNZCVVTV
        DZUTZVVBVVTUNZVEZVGZUMUWJVFZUXAVVAVVCUXAVVLVVGUULVVRVVCVWGUXAXOVVGVVHVV
        CVVLVVOYQVVCVWGVWCUWQVVTUNZVEZVGZUMUWJVFUXAVVCVWFVWJUMUWJVVCVWEVWIVWCVV
        CVWDVWHVVBUWQVVTXKYRUUMUUNVWJUWTUMUIUWJUMUIYDZVWCUWPVWIUWSVWKVWAUWNVWBU
        WOVVTUWMHXKVVTUWMCXLXPVWKVWHUWRVVTUWMUWQUUOYRUUPUURUUSWNXJVVGVVHVVLUUTV
        VSUVAUVBUVGUVCUVHUVDYSYTUVEYSUVFYTUVIUVJUVKAUWLUWKAUWLUTZUWEUWJVDZGUWEU
        PZUWEURZGUWEFUSZHURZUWKAVWMUWLAUYOVWMUYQJMTUVLWNZWBVWLUWEGVMZVWOAVWSUWL
        AMGAUYIMGVDVUBGJMTUVMWNXDZWBUWEGUVNWAAVWQUWLAVWPGHAUYIVWMVWSVWPGURVUBVW
        RVWTFGUWEJUAUVRYAYLUVOUWIVWOVWQUTBUWEUWJUWCUWEURZUWFVWOUWHVWQVXAUWDVWNU
        WEUWCUWEGYKYLVXAUWGVWPHUWCUWEGFYPYLXPXMXNYFAGHVMUWBUWLUVSAGUYLHPAUYMUYK
        HVMUYSUYLHVMUYRVUDUFUWJUYKKHDOUVPYAUVQGHUVTWAUWA $.
    $}

    pgpfac1.ab $e |- ( ph -> A e. B ) $.
    $( Factorization of a finite abelian p-group.  There is a direct product
       decomposition of any abelian group of prime-power order where one of the
       factors is cyclic and generated by an element of maximal order.
       (Contributed by Mario Carneiro, 27-Apr-2016.) $)
    pgpfac1 $p |- ( ph -> E. t e. ( SubGrp ` G )
      ( ( S i^i t ) = { .0. } /\ ( S .(+) t ) = B ) ) $=
      ( vs vu vx vy csubg cfv wcel cv cin csn wceq wrex cabl cgrp ablgrp subgid
      co wa 3syl cfn wi eleq1 eleq2 anbi12d eqeq2 anbi2d rexbidv imbi12d imbi2d
      wpss wal bi2.04 impexp imbi2i 3bitr4i albii df-ral r19.21v 3bitr2i psseq1
      wral ineq2 eqeq1d oveq2 cbvrexv syl5bb cbvralv wbr adantr simprrl simprrr
      cpgp simprl sylib pgpfac1lem5 exp32 syl5bir a2i sylbi a1i findcard3 mpcom
      mp2and ) ADIUIUJZUKZCDUKZGBULZUMZLUNZUOZGXKFVAZDUOZVBZBXHUPZAIUQUKZIURUKX
      IUAIUSDIOUTVCUDDVDUKZAXIXJVBZXRVEZUBAUEULZXHUKZCYCUKZVBZXNXOYCUOZVBZBXHUP
      ZVEZVEZAUFULZXHUKZCYLUKZVBZXNXOYLUOZVBZBXHUPZVEZVEZAYBVEUEUFDYCYLUOZYJYSA
      UUAYFYOYIYRUUAYDYMYEYNYCYLXHVFYCYLCVGVHUUAYHYQBXHUUAYGYPXNYCYLXOVIVJVKVLV
      MYCDUOZYJYBAUUBYFYAYIXRUUBYDXIYEXJYCDXHVFYCDCVGVHUUBYHXQBXHUUBYGXPXNYCDXO
      VIVJVKVLVMYCYLVNZYKVEZUEVOZYTVEYLVDUKUUEAUUCYEVBZYIVEZUEXHWEZVEZYTUUEYDAU
      UGVEZVEZUEVOUUJUEXHWEUUIUUDUUKUEAUUCYJVEZVEAYDUUGVEZVEUUDUUKUULUUMAUUCYDY
      EYIVEZVEZVEYDUUCUUNVEZVEUULUUMUUCYDUUNVPYJUUOUUCYDYEYIVQVRUUGUUPYDUUCYEYI
      VQVRVSVRUUCAYJVPYDAUUGVPVSVTUUJUEXHWAAUUGUEXHWBWCAUUHYSUUHUGULZYLVNZCUUQU
      KZVBZGUHULZUMZXMUOZGUVAFVAZUUQUOZVBZUHXHUPZVEZUGXHWEZAYSUVHUUGUGUEXHUUQYC
      UOZUUTUUFUVGYIUVJUURUUCUUSYEUUQYCYLWDUUQYCCVGVHUVGXNXOUUQUOZVBZBXHUPUVJYI
      UVFUVLUHBXHUVAXKUOZUVCXNUVEUVKUVMUVBXLXMUVAXKGWFWGUVMUVDXOUUQUVAXKGFWHWGV
      HWIUVJUVLYHBXHUVJUVKYGXNUUQYCXOVIVJVKWJVLWKZAUVIYOYRAUVIYOVBZVBZBCDEFGYLH
      IJKLUEMNOPQRSAEIWPWLUVOTWMAXSUVOUAWMAXTUVOUBWMACKUJHUOUVOUCWMAUVIYMYNWNAU
      VIYMYNWOUVPUVIUUHAUVIYOWQUVNWRWSWTXAXBXCXDXEXFXG $.
  $}

  ${
    $d a s t u w x C $.  $d a r s t u w x G $.  $d r s K $.  $d a t u w x ph $.
    $d s t x B $.  $d w P $.  $d a r s t w x U $.  $d a s t W $.  $d r s X $.
    $d s T $.
    pgpfac.b $e |- B = ( Base ` G ) $.
    pgpfac.c $e |- C = { r e. ( SubGrp ` G ) |
      ( G |`s r ) e. ( CycGrp i^i ran pGrp ) } $.
    pgpfac.g $e |- ( ph -> G e. Abel ) $.
    pgpfac.p $e |- ( ph -> P pGrp G ) $.
    pgpfac.f $e |- ( ph -> B e. Fin ) $.
    ${
      pgpfac.u $e |- ( ph -> U e. ( SubGrp ` G ) ) $.
      pgpfac.a $e |- ( ph -> A. t e. ( SubGrp ` G ) ( t C. U ->
        E. s e. Word C ( G dom DProd s /\ ( G DProd s ) = t ) ) ) $.
      ${
        pgpfac.h $e |- H = ( G |`s U ) $.
        pgpfac.k $e |- K = ( mrCls ` ( SubGrp ` H ) ) $.
        pgpfac.o $e |- O = ( od ` H ) $.
        pgpfac.e $e |- E = ( gEx ` H ) $.
        pgpfac.0 $e |- .0. = ( 0g ` H ) $.
        pgpfac.l $e |- .(+) = ( LSSum ` H ) $.
        pgpfac.1 $e |- ( ph -> E =/= 1 ) $.
        pgpfac.x $e |- ( ph -> X e. U ) $.
        pgpfac.oe $e |- ( ph -> ( O ` X ) = E ) $.
        pgpfac.w $e |- ( ph -> W e. ( SubGrp ` H ) ) $.
        pgpfac.i $e |- ( ph -> ( ( K ` { X } ) i^i W ) = { .0. } ) $.
        pgpfac.s $e |- ( ph -> ( ( K ` { X } ) .(+) W ) = U ) $.
        ${
          pgpfac.2 $e |- ( ph -> S e. Word C ) $.
          pgpfac.4 $e |- ( ph -> G dom DProd S ) $.
          pgpfac.5 $e |- ( ph -> ( G DProd S ) = W ) $.
          pgpfac.t $e |- T = ( S ++ <" ( K ` { X } ) "> ) $.
          $( Lemma for ~ pgpfac .  (Contributed by Mario Carneiro,
             27-Apr-2016.)  (Revised by Mario Carneiro, 3-May-2016.) $)
          pgpfaclem1 $p |- ( ph -> E. s e. Word C
            ( G dom DProd s /\ ( G DProd s ) = U ) ) $=
            ( cword wcel cdprd cdm wbr co wceq cv wrex csn cfv csubg cress ccyg
            cpgp crn cin wss cbs cmre cgrp cacs subggrp syl eqid subgacs acsmre
            wa 3syl subgbas eleqtrd mrcsncl syl2anc subsubg mpbid simpld oveq1i
            wb simprd ressabs syl5eq cycsubgcyg2 eqeltrrd cprime pgpprm subgpgp
            brelrng syl3anc elind oveq2 eleq1d elrab2 sylanbrc cc0 chash c0g wf
            cfzo wrdf sylancl c1 caddc cn0 cun syl6eq oveq2d eqtrd cres cop wfn
            ffn breqtrrd cvv fvex cn 3eqtrd sneqd dprdsubg cats1cld crab ssrab2
            ccntz eqsstri fss c0 fzodisj cz lencl nn0zd ineq2d syl5reqr cconcat
            fzosn cs1 fveq2i s1cld ccatlen s1len oveq2i cuz syl6eleq fzosplitsn
            nn0uz cats1un reseq1d wn fzonel fsnunres dprdsn sylancr ssun2 mpbir
            snss syl5eleqr fnressn fveq1i nn0cnd addid2d eqcomd fveq2d syl5eqel
            1nn a1i lbfzo0 sylibr ccatval3 s1fv mp1i opeq2d ineq12d incom subg0
            ablcntzd syl6eqr 3eqtr4d dmdprdsplit2 clsm dprdsplit oveq12d lsmcom
            cabl subgss sseqtr4d subglsm breq2 eqeq1d anbi12d rspcev syl12anc )
            AHDVCZVDZKHVEVFZVGZKHVEVHZIVIZKRVJZUXNVGZKUXRVEVHZIVIZWJZRUXLVKADGH
            PVLZMVMZVBUSAUYDKVNVMZVDZKUYDVOVHZVPVQVRZVSZVDZUYDDVDZAUYFUYDIVTZAU
            YDLVNVMZVDZUYFUYLWJZAUYMLWAVMZWBVMVDZPUYPVDZUYNALWCVDZUYMUYPWDVMVDU
            YQAIUYEVDZUYSUEIKLUGWEWFZUYPLUYPWGZWHUYMUYPWIWKAPIUYPUNAUYTIUYPVIUE
            IKLUGWLWFZWMZUYMPMUYPUHWNWOAUYTUYNUYOWTUEUYDIKLUGWPWFWQZWRZAVPUYHUY
            GALUYDVOVHZUYGVPAVUGKIVOVHZUYDVOVHZUYGLVUHUYDVOUGWSAUYTUYLVUIUYGVIU
            EAUYFUYLVUEXAZIUYDKUYEXBWOXCAUYSUYRVUGVPVDVUAVUDPUYPLMVUBUHXDWOXEZA
            EXFVDZUYGVPVDEUYGVQVGZUYGUYHVDAEKVQVGZVULUCEKXGWFVUKAVUNUYFVUMUCVUF
            EUYDKXHWOEUYGVQXFVPXIXJXKKSVJZVOVHZUYIVDZUYJSUYDUYEDVUOUYDVIVUPUYGU
            YIVUOUYDKVOXLXMUAXNXOZUUAZAXPGXQVMZXTVHZVUTVLZHKXPHXQVMZXTVHZKXRVMZ
            KUUDVMZAVVDDHXSZDUYEVTVVDUYEHXSAUXMVVGVUSDHYAZWFDVUQSUYEUUBUYEUAVUQ
            SUYEUUCUUEVVDDUYEHUUFYBZAUUGVVAVUTVUTYCYDVHZXTVHZVSVVAVVBVSXPVUTVVJ
            UUHAVVKVVBVVAAVUTUUIVDVVKVVBVIAVUTAGUXLVDZVUTYEVDUSDGUUJWFZUUKVUTUU
            OWFUULUUMZAVVDXPVVJXTVHZVVAVVBYFZAVVCVVJXPXTAVVCVUTUYDUUPZXQVMZYDVH
            ZVVJAVVCGVVQUUNVHZXQVMZVVSHVVTXQVBUUQAVVLVVQUXLVDZVWAVVSVIUSAUYDDVU
            RUURZDGVVQUUSWOXCVVRYCVUTYDUYDUUTZUVAYGYHAVUTXPUVBVMZVDVVOVVPVIAVUT
            YEVWEVVMUVEUVCXPVUTUVDWFYIZVVFWGZVVEWGZAKGHVVAYJZUXNUTAVWIGVUTUYDYK
            ZVLZYFZVVAYJZGAHVWLVVAAHVVTVWLVBAVVLUYKVVTVWLVIUSVURGUYDDUVFWOXCUVG
            AGVVAYLZVUTVVAVDUVHVWMGVIAVVLVVADGXSVWNUSDGYAVVADGYMWKXPVUTUVIVVAGV
            UTUYDUVJYBYIZYNZAKVWKHVVBYJZUXNAKVWKUXNVGZKVWKVEVHZUYDVIZAVUTYOVDUY
            FVWRVWTWJGXQYPZVUFVUTUYDKYOUVKUVLZWRAVWQVUTVUTHVMZYKZVLZVWKAHVVDYLZ
            VUTVVDVDVWQVXEVIAUXMVVGVXFVUSVVHVVDDHYMWKAVUTVVPVVDVUTVVPVDVVBVVPVT
            VVBVVAUVMVUTVVPVXAUVOUVNVWFUVPVVDVUTHUVQWOAVXDVWJAVXCUYDVUTAVXCXPVU
            TYDVHZVVTVMZXPVVQVMZUYDAVXCVUTVVTVMVXHVUTHVVTVBUVRAVUTVXGVVTAVXGVUT
            AVUTAVUTVVMUVSUVTUWAUWBXCAVVLVWBXPXPVVRXTVHVDZVXHVXIVIUSVWCAVVRYQVD
            VXJAVVRYCYQVWDYCYQVDAUWDUWEUWCVVRUWFUWGDGVVQXPUWHXJUYDYOVDVXIUYDVIA
            UYCMYPUYDYOUWIUWJYRUWKYSYIZYNZAKVWIVEVHZKVWQVEVHZKVVFVWGUBAKVWIUXNV
            GVXMUYEVDVWPVWIKYTWFZAKVWQUXNVGVXNUYEVDVXLVWQKYTWFUWOAUYDOVSZQVLVXM
            VXNVSZVVEVLUQAVXQOUYDVSVXPAVXMOVXNUYDAVXMKGVEVHOAVWIGKVEVWOYHVAYIZA
            VXNVWSUYDAVWQVWKKVEVXKYHAVWRVWTVXBXAYIZUWLOUYDUWMYGAVVEQAVVELXRVMZQ
            AUYTVVEVXTVIUEIKLVVEUGVWHUWNWFUKUWPYSUWQUWRZAUXPUYDOKUWSVMZVHZUYDOF
            VHZIAUXPVXMVXNVYBVHOUYDVYBVHZVYCAVVAVVBVYBHKVVDVVIVVNVWFVYBWGZVYAUW
            TAVXMOVXNUYDVYBVXRVXSUXAAKUXCVDOUYEVDUYFVYEVYCVIUBAVXMOUYEVXRVXOXEV
            UFVYBOUYDKVYFUXBXJYRAUYTUYLOIVTVYCVYDVIUEVUJAOUYPIAOUYMVDOUYPVTUPUY
            POLVUBUXDWFVUCUXEFVYBIUYDOKLUGVYFULUXFXJURYRUYBUXOUXQWJRHUXLUXRHVIZ
            UXSUXOUYAUXQUXRHKUXNUXGVYGUXTUXPIUXRHKVEXLUXHUXIUXJUXK $.
        $}

        $( Lemma for ~ pgpfac .  (Contributed by Mario Carneiro, 27-Apr-2016.)
           (Revised by Mario Carneiro, 3-May-2016.) $)
        pgpfaclem2 $p |- ( ph -> E. s e. Word C
          ( G dom DProd s /\ ( G DProd s ) = U ) ) $=
          ( va cv cdprd cdm wbr co wceq cword wrex csubg cfv wcel wpss wral wss
          wa wi wb subsubg syl mpbid simpld wne simprd chash cfn subgss syl2anc
          cn0 ssfi hashcl nn0red c1 cmul csn clt cvv fvex eqeltri hashsng ax-mp
          c0g csdm cbs cgrp cacs cmre subgrcl eqid subgacs 4syl mrcssvd subgbas
          acsmre sseqtr4d eleqtrd mrcsncl subg0cl snssd mrcssidd mpbird eqnetrd
          snssg od1 3syl elsni fveq2d eqeq1d syl5ibrcom necon3ad ssnelpssd php3
          wn mpd snfi hashsdom sylancr syl5eqbrr cr cc0 1red cn cabl adantr cs1
          c0 ne0i hashnncl nngt0d ltmul1 syl112anc recnd mulid2d ccntz ablcntzd
          subgabl lsmhash eqtr3d 3brtr3d ltned fveq2 df-pss psseq1 eqeq2 anbi2d
          necon3i rexbidv imbi12d rspcv syl3c breq2 oveq2 anbi12d cbvrexv sylib
          sylanbrc cconcat cpgp cin simprl simprrl simprrr pgpfaclem1 rexlimddv
          ) AIUQURZUSUTZVAZIUWAUSVBZMVCZVLZIPURZUWBVAZIUWGUSVBZGVCVLPDVDZVEUQUW
          JAUWHUWIMVCZVLZPUWJVEZUWFUQUWJVEAMIVFVGZVHZBURZGVIZUWHUWIUWPVCZVLZPUW
          JVEZVMZBUWNVJZMGVIZUWMAUWOMGVKZAMJVFVGZVHZUWOUXDVLZUNAGUWNVHZUXFUXGVN
          UCMGIJUEVOVPVQZVRUDAUXDMGVSZUXCAUWOUXDUXIVTZAMWAVGZGWAVGZVSUXJAUXLUXM
          AUXLAMWBVHZUXLWEVHAGWBVHZUXDUXNACWBVHZGCVKZUXOUBAUXHUXQUCCGIRWCVPCGWF
          WDZUXKGMWFWDZMWGVPWHZAWIUXLWJVBZNWKZKVGZWAVGZUXLWJVBZUXLUXMWLAWIUYDWL
          VAZUYAUYEWLVAZAWIOWKZWAVGZUYDWLOWMVHUYIWIVCOJWRVGWMUIJWRWNWOOWMWPWQAU
          YIUYDWLVAZUYHUYCWSVAZAUYCWBVHZUYHUYCVIUYKAUXOUYCGVKUYLUXRAUYCJWTVGZGA
          UXEUYBKUYMAUXFJXAVHZUXEUYMXBVGVHUXEUYMXCVGVHZUNMJXDZUYMJUYMXEXFUXEUYM
          XJXGZUFXHAUXHGUYMVCUCGIJUEXIVPZXKGUYCWFWDZAUYHUYCNAOUYCAUYCUXEVHZOUYC
          VHAUYONUYMVHUYTUYQANGUYMULUYRXLZUXENKUYMUFXMWDZUYCJOUIXNVPXOANUYCVHZU
          YBUYCVKZAUXEUYBKUYMUYQUFANUYMVUAXOXPANGVHZVUCVUDVNULNUYCGXSVPXQANLVGZ
          WIVSNUYHVHZYIAVUFHWIUMUKXRAVUGVUFWIAVUFWIVCVUGOLVGZWIVCZAUXFUYNVUIUNU
          YPJLOUGUIXTYAVUGVUFVUHWIVUGNOLNOYBYCYDYEYFYJYGUYCUYHYHWDAUYHWBVHUYLUY
          JUYKVNOYKUYSUYHUYCYLYMXQYNAWIYOVHUYDYOVHUXLYOVHYPUXLWLVAUYFUYGVNAYQAU
          YDAUYLUYDWEVHUYSUYCWGVPWHUXTAUXLAUXLYRVHZMUUBVSZAUXFOMVHVUKUNMJOUIXNM
          OUUCYAAUXNVUJVUKVNUXSMUUDVPXQUUEWIUYDUXLUUFUUGVQAUXLAUXLUXTUUHUUIAUYC
          MFVBZWAVGUYEUXMAFUYCMJOJUUJVGZUJUIVUMXEZVUBUNUOAUYCMJVUMVUNAIYSVHZUXH
          JYSVHTUCGIJUEUULWDVUBUNUUKUYSUXSUUMAVULGWAUPYCUUNUUOUUPMGUXLUXMMGWAUU
          QUVBVPMGUURUVLUXAUXCUWMVMBMUWNUWPMVCZUWQUXCUWTUWMUWPMGUUSVUPUWSUWLPUW
          JVUPUWRUWKUWHUWPMUWIUUTUVAUVCUVDUVEUVFUWLUWFPUQUWJUWGUWAVCZUWHUWCUWKU
          WEUWGUWAIUWBUVGVUQUWIUWDMUWGUWAIUSUVHYDUVIUVJUVKAUWAUWJVHZUWFVLZVLBCD
          EFUWAUWAUYCUUAUVMVBZGHIJKLMNOPQRSAVUOVUSTYTAEIUVNVAVUSUAYTAUXPVUSUBYT
          AUXHVUSUCYTAUXBVUSUDYTUEUFUGUHUIUJAHWIVSVUSUKYTAVUEVUSULYTAVUFHVCVUSU
          MYTAUXFVUSUNYTAUYCMUVOUYHVCVUSUOYTAVULGVCVUSUPYTAVURUWFUVPAVURUWCUWEU
          VQAVURUWCUWEUVRVUTXEUVSUVT $.
      $}

      $( Lemma for ~ pgpfac .  (Contributed by Mario Carneiro, 27-Apr-2016.)
         (Revised by Mario Carneiro, 3-May-2016.) $)
      pgpfaclem3 $p |- ( ph -> E. s e. Word C
        ( G dom DProd s /\ ( G DProd s ) = U ) ) $=
        ( wceq wa cfv wcel vx vw cv cdprd cdm wbr co cword wrex cress cgex wrd0
        c1 c0 c0g csn cabl cgrp ablgrp eqid dprd0 3syl adantr c1o csubg subg0cl
        cen syl cbs subgbas cmnd wb subggrp grpmnd gex1 eqbrtrd en1eqsn syl2anc
        biimpa eqeq2d anbi2d mpbird breq2 eqeq1d anbi12d rspcev sylancr wne cod
        oveq2 cn subgabl cfn wss subgss ssfi eqeltrrd gexcl2 cmrc cin clsm cpgp
        gexex subgpgp ad2antrr simprr pgpfac1 ad3antrrr wpss wi simpllr simplrl
        simprl eleqtrrd simplrr simprrl simprrr pgpfaclem2 rexlimddv pm2.61dane
        wral eqtr4d ) AGHUCZUDUEZUFZGYCUDUGZFQZRZHDUHZUIZGFUJUGZUKSZUMAYLUMQZRZ
        UNYITGUNYDUFZGUNUDUGZFQZRZYJDULYNYRYOYPGUOSZUPZQZRZAUUBYMAGUQTZGURTUUBL
        GUSGYSYSUTZVAVBVCYNYQUUAYOYNFYTYPYNYSFTZFVDVGUFFYTQAUUEYMAFGVESZTZUUEOF
        GYSUUDVFVHVCYNFYKVISZVDVGAFUUHQZYMAUUGUUIOFGYKYKUTZVJZVHZVCAYMUUHVDVGUF
        ZAYKURTZYKVKTYMUUMVLAUUGUUNOFGYKUUJVMVHZYKVNYLYKUUHUUHUTZYLUTZVOVBVSVPY
        SFVQVRVTWAWBYHYRHUNYIYCUNQZYEYOYGYQYCUNGYDWCUURYFYPFYCUNGUDWJWDWEWFWGAY
        LUMWHZRZUAUCZYKWISZSYLQZYJUAUUHAUVCUAUUHUIZUUSAYKUQTZYLWKTZUVDAUUCUUGUV
        ELOFGYKUUJWLVRZAUUNUUHWMTZUVFUUOAFUUHWMUULACWMTZFCWNZFWMTNAUUGUVJOCFGJW
        OVHCFWPVRWQZYLYKUUHUUPUUQWRVRUAYLYKUVBUUHUUPUUQUVBUTZXCVRVCUUTUVAUUHTZU
        VCRZRZUVAUPYKVESZWSSZSZUBUCZWTYKUOSZUPQZUVRUVSYKXASZUGZUUHQZRZYJUBUVPUV
        OUBUVAUUHEUWBUVRYLYKUVQUVBUVTUVQUTZUVRUTUUPUVLUUQUVTUTZUWBUTZAEYKXBUFZU
        USUVNAEGXBUFZUUGUWIMOEFGXDVRXEAUVEUUSUVNUVGXEAUVHUUSUVNUVKXEUUTUVMUVCXF
        UUTUVMUVCXMXGUVOUVSUVPTZUWERZRZBCDEUWBFYLGYKUVQUVBUVSUVAUVTHIJKAUUCUUSU
        VNUWLLXHAUWJUUSUVNUWLMXHAUVIUUSUVNUWLNXHAUUGUUSUVNUWLOXHZABUCZFXIYEYFUW
        OQRHYIUIXJBUUFYAUUSUVNUWLPXHUUJUWFUVLUUQUWGUWHAUUSUVNUWLXKUWMUVAUUHFUUT
        UVMUVCUWLXLUWMUUGUUIUWNUUKVHZXNUUTUVMUVCUWLXOUVOUWKUWEXMUVOUWKUWAUWDXPU
        WMUWCUUHFUVOUWKUWAUWDXQUWPYBXRXSXSXT $.
    $}

    $( Full factorization of a finite abelian p-group, by iterating ~ pgpfac1 .
       There is a direct product decomposition of any abelian group of
       prime-power order into cyclic subgroups.  (Contributed by Mario
       Carneiro, 27-Apr-2016.)  (Revised by Mario Carneiro, 3-May-2016.) $)
    pgpfac $p |- ( ph -> E. s e. Word C
      ( G dom DProd s /\ ( G DProd s ) = B ) ) $=
      ( vt vx wcel cv wceq wa wrex wi vu csubg cfv cdprd cdm co cword cabl cgrp
      wbr ablgrp subgid 3syl cfn eleq1 eqeq2 anbi2d rexbidv imbi12d imbi2d wpss
      wal wral bi2.04 imbi2i 3bitr4i albii df-ral r19.21v 3bitr2i adantr simprr
      cpgp simprl psseq1 cbvralv sylib pgpfaclem3 exp32 a1i a2d findcard3 mpcom
      syl5bi mpd ) ABEUBUCZOZEFPZUDUEUJZEWHUDUFZBQZRZFCUGZSZAEUHOZEUIOWGJEUKBEH
      ULUMBUNOZAWGWNTZLAMPZWFOZWIWJWRQZRZFWMSZTZTZAUAPZWFOZWIWJXEQZRZFWMSZTZTZA
      WQTMUABWRXEQZXCXJAXLWSXFXBXIWRXEWFUOXLXAXHFWMXLWTXGWIWRXEWJUPUQURUSUTWRBQ
      ZXCWQAXMWSWGXBWNWRBWFUOXMXAWLFWMXMWTWKWIWRBWJUPUQURUSUTWRXEVAZXDTZMVBZAXN
      XBTZMWFVCZTZXEUNOZXKXPWSAXQTZTZMVBYAMWFVCXSXOYBMAXNXCTZTAWSXQTZTXOYBYCYDA
      XNWSXBVDVEXNAXCVDWSAXQVDVFVGYAMWFVHAXQMWFVIVJXTAXRXJAXRXJTTXTAXRXFXIAXRXF
      RZRZNBCDXEEFGHIAWOYEJVKADEVMUJYEKVKAWPYELVKAXRXFVLYFXRNPZXEVAZWIWJYGQZRZF
      WMSZTZNWFVCAXRXFVNXQYLMNWFWRYGQZXNYHXBYKWRYGXEVOYMXAYJFWMYMWTYIWIWRYGWJUP
      UQURUSVPVQVRVSVTWAWDWBWCWE $.
  $}

  ${
    $d a b c f h p q s t x y z A $.  $d s z F $.  $d a b c f g h q r s t y S $.
    $d a b c f g h j k n p r s t w x B $.  $d b c p x O $.  $d j k w x .x. $.
    $d a b c f g h j k n p q s t w x y z C $.  $d a b c f h p q t w x y W $.
    $d s H $.  $d a b c f h j k n p q s t w x y z ph $.  $d g s U $.
    $d a b c g j k n p r s t w x y z G $.
    ablfac.b $e |- B = ( Base ` G ) $.
    ablfac.c $e |- C = { r e. ( SubGrp ` G ) |
      ( G |`s r ) e. ( CycGrp i^i ran pGrp ) } $.
    ablfac.1 $e |- ( ph -> G e. Abel ) $.
    ablfac.2 $e |- ( ph -> B e. Fin ) $.
    ${
      ablfac.o $e |- O = ( od ` G ) $.
      ablfac.a $e |- A = { w e. Prime | w || ( # ` B ) } $.
      ablfac.s $e |- S = ( p e. A |-> { x e. B |
        ( O ` x ) || ( p ^ ( p pCnt ( # ` B ) ) ) } ) $.
      ablfac.w $e |- W = ( g e. ( SubGrp ` G ) |->
        { s e. Word C | ( G dom DProd s /\ ( G DProd s ) = g ) } ) $.
      $( Lemma for ~ ablfac .  (Contributed by Mario Carneiro, 27-Apr-2016.)
         (Revised by Mario Carneiro, 3-May-2016.) $)
      ablfaclem1 $p |- ( U e. ( SubGrp ` G ) -> ( W ` U ) =
        { s e. Word C | ( G dom DProd s /\ ( G DProd s ) = U ) } ) $=
        ( cv cdprd cdm wbr co wceq wa cword crab csubg cfv eqeq2 anbi2d rabbidv
        cvv wcel cress ccyg cpgp crn cin fvex rabex2 wrdexg ax-mp rabex fvmpt )
        IHJMUDZUEUFUGZJVKUEUHZIUDZUIZUJZMFUKZULVLVMHUIZUJZMVQULJUMUNZLVNHUIZVPV
        SMVQWAVOVRVLVNHVMUOUPUQUCVSMVQFURUSVQURUSJNUDUTUHVAVBVCVDUSNVTFQJUMVEVF
        FURVGVHVIVJ $.

      ${
        ablfaclem2.f $e |- ( ph -> F : A --> Word C ) $.
        ablfaclem2.q $e |- ( ph ->
          A. y e. A ( F ` y ) e. ( W ` ( S ` y ) ) ) $.
        ablfaclem2.l $e |- L = U_ y e. A ( { y } X. dom ( F ` y ) ) $.
        ablfaclem2.g $e |- ( ph -> H : ( 0 ..^ ( # ` L ) ) -1-1-onto-> L ) $.
        $( Lemma for ~ ablfac .  (Contributed by Mario Carneiro, 27-Apr-2016.)
           (Proof shortened by Mario Carneiro, 3-May-2016.) $)
        ablfaclem2 $p |- ( ph -> ( W ` B ) =/= (/) ) $=
          ( vz cfv cv cdprd cdm wbr co wceq wa cword crab cabl wcel cgrp ablgrp
          c0 csubg subgid ablfaclem1 4syl wrex wne cmpt2 ccom cc0 chash cfzo wf
          csn cxp ciun wral ffvelrnda wrdf syl fdm feq2d mpbird ralrimivva eqid
          anasss fmpt2x sylib sylibr wf1o f1of fco syl2anc iswrdi cmpt r19.21bi
          feq2i cprime wss ssrab2 eqsstri a1i ablfac1b cpc cexp cbs cvv eqeltri
          cdvds rabex dmmpti dprdf2 eleqtrd breq2 eqeq1d anbi12d simprbi simpld
          fvex oveq2 elrab dprdf feqmptd breqtrd oveq2d simprd eqtr3d mpteq2dva
          eqtr4d dprd2d2 dprdf1o ssid ablfac1c 3eqtrd rspcev syl12anc eqnetrd
          rabn0 ) AFOULZKPUMZUNUOZUPZKUUEUNUQZFURZUSZPGUTZVAZVFAKVBVCKVDVCFKVGU
          LZVCUUDUULURUAKVEFKSVHABDEFGHFIKNOPQRSTUAUBUCUDUEUFVIVJAUUJPUUKVKZUUL
          VFVLACUKECUMZJULZUOZUKUMZUUPULZVMZLVNZUUKVCZKUVAUUFUPZKUVAUNUQZFURZUU
          NAVOMVPULZVQUQZGUVAVRZUVBAMGUUTVRZUVGMLVRZUVHACEUUOVSUUQVTWAZGUUTVRZU
          VIAUUSGVCZUKUUQWBCEWBUVLAUVMCUKEUUQAUUOEVCZUURUUQVCZUVMAUVNUSZUUQGUUR
          UUPUVPUUQGUUPVRVOUUPVPULVQUQZGUUPVRZUVPUUPUUKVCZUVRAEUUKUUOJUGWCGUUPW
          DWEZUVPUUQUVQGUUPUVPUVRUUQUVQURUVTUVQGUUPWFWEWGWHWCWKWICUKEUUQUUSGUUT
          UUTWJWLWMMUVKGUUTUIXBWNZAUVGMLWOUVJUJUVGMLWPWEUVGMGUUTLWQWRGUVFUVAWSW
          EAUVCUVDKUUTUNUQZURZAUUTLKMUVGAKUUTUUFUPZUWBKCEKUKUUQUUSWTZUNUQZWTZUN
          UQZURZAUUSCUKKEUUQAUVNUVOUUSUUMVCUVPUUQUUMUURUUPUVPKUUPUUFUPZUUQUUMUU
          PVRUVPUWJKUUPUNUQZUUOHULZURZUVPUUPUUGUUHUWLURZUSZPUUKVAZVCZUWJUWMUSZU
          VPUUPUWLOULZUWPAUUPUWSVCCEUHXAUVPUWLUUMVCUWSUWPURAEUUMUUOHAHKEABEFHKN
          RSUCUEUAUBEXCXDAEDUMFVPULZXNUPZDXCVAXCUDUXADXCXEXFXGZXHZHUOEURAREBUMN
          ULRUMZUXDUWTXIUQXJUQXNUPZBFVAHUXEBFFKXKULXLSKXKYDXMXOUEXPXGXQZWCABDEF
          GHUWLIKNOPQRSTUAUBUCUDUEUFVIWEXRUWQUVSUWRUWOUWRPUUPUUKUUEUUPURZUUGUWJ
          UWNUWMUUEUUPKUUFXSUXGUUHUWKUWLUUEUUPKUNYEXTYAYFYBWEZYCZUUPKYGWEZWCWKU
          VPKUUPUWEUUFUXIUVPUKUUQUUMUUPUXJYHZYIAKHUWGUUFUXCAHCEUWLWTUWGACEUUMHU
          XFYHACEUWFUWLUVPUWKUWFUWLUVPUUPUWEKUNUXKYJUVPUWJUWMUXHYKYLYMYNZYIYOZY
          CAUVIUUTUOMURUWAMGUUTWFWEUJYPZYCAUVDUWBUWHFAUVCUWCUXNYKAUWDUWIUXMYKAK
          HUNUQUWHFAHUWGKUNUXLYJABDEFEHKNRSUCUEUAUBUXBUDEEXDAEYQXGYRYLYSUUJUVCU
          VEUSPUVAUUKUUEUVAURZUUGUVCUUIUVEUUEUVAKUUFXSUXOUUHUVDFUUEUVAKUNYEXTYA
          YTUUAUUJPUUKUUCWNUUB $.
      $}

      $( Lemma for ~ ablfac .  (Contributed by Mario Carneiro, 27-Apr-2016.)
         (Revised by Mario Carneiro, 3-May-2016.) $)
      ablfaclem3 $p |- ( ph -> ( W ` B ) =/= (/) ) $=
        ( vf vq vy vh vc va vt vb cword cv wf cfv wcel wral wa wne cfn wrex wex
        c0 c1 chash cfz co wss fzfid cdvds wbr cprime w3a cn cle prmnn 3ad2ant2
        crab cz wi prmz cabl cgrp ablgrp grpbn0 wb hashnncl syl mpbird 3ad2ant1
        3syl mpbir2and rabssdv syl5eqss ssfi syl2anc cdprd cdm cin csubg ssrab2
        wceq a1i cpc cexp cbs ffvelrnda sylib eqtrd cpgp crn eqid adantr sselda
        cress fveq2d oveq2d eqeltrrd sswrd simprbda simplbda jctild expimpd weq
        oveq2 eleq1d cbvrabv 3adant3 mpd rabn0 ralrimiva cc0 csn cxp ciun fveq2
        cfzo fzofi sylancr eqtri cmpt dvdsle syl2anr 3impia nnzd dfin5 ablfac1b
        fznn eqsstri cvv fvex eqeltri dmmpti dprdf2 ablfaclem1 syl6eqss sseqin2
        rabex syl5eqr ccyg subgabl subgbas ablfac1a eqtr3d pccld eqtr4d subggrp
        nn0zd subgss pgpfi2 pgpfac ax-mp sseli cpw subgdmdprd subgdprd ad2antrr
        pcid eqcomd eqeq12d biimpd sylan2 subsubg ressabs simp3 elrab2 sylanbrc
        reximdv2 sylibr eqnetrd eleq1 ac6sfi wf1o cen cn0 dmeqd xpeq12d cbviunv
        sneq snfi simprl wrdf fdm syl6eqel xpfi syl5eqel hashcl hashfzo0 hashen
        iunfi mpbid breq1 breq1d id oveq1 oveq12d breq2d rabbidv syl5eq cbvmptv
        breq2 eqeq1d anbi12d mpteq2i simprll simprlr eleq12d cbvralv ablfaclem2
        bren simprr expr exlimdv exlimddv ) ADFUKZUCULZUMZUDULZUYOUNZUYQGUNZKUN
        ZUOZUDDUPZUQZEKUNVBURZUCADUSUOZUEULZUYTUOZUEUYNUTZUDDUPVUCUCVAAVCEVDUNZ
        VEVFZUSUODVUJVGVUEAVCVUIVHADCULZVUIVIVJZCVKVQZVUJTAVULCVKVUJAVUKVKUOZVU
        LVLZVUKVUJUOZVUKVMUOZVUKVUIVNVJZVUNAVUQVULVUKVOVPAVUNVULVURVUNVUKVRUOVU
        IVMUOZVULVURVSAVUKVTAVUSEVBURZAIWAUOZIWBUOVUTQIWCEIOWDWJAEUSUOZVUSVUTWE
        REWFWGWHZVUKVUIUUAUUBUUCVUOVUIVRUOZVUPVUQVURUQWEAVUNVVDVULAVUIVVCUUDWIV
        UKVUIUUGWGWKWLWMVUJDWNWOZAVUHUDDAUYQDUOZUQZVUGUEUYNVQZVBURVUHVVGVVHILUL
        ZWPWQZVJZIVVIWPVFZUYSXAZUQZLUYNVQZVBVVGVVHUYTVVOVVGVVHUYNUYTWRZUYTUEUYN
        UYTUUEVVGUYTUYNVGVVPUYTXAVVGUYTVVOUYNVVGUYSIWSUNZUOZUYTVVOXAADVVQUYQGAG
        IDABDEGIJNOSUAQRDVKVGADVUMVKTVULCVKWTUUHXBZUUFGWQDXAANDBULZJUNZNULZVWBV
        UIXCVFZXDVFZVIVJZBEVQZGVWEBEEIXEUNUUIOIXEUUJUUKUUQUAUULXBUUMXFZABCDEFGU
        YSHIJKLMNOPQRSTUAUBUUNWGZVVNLUYNWTUUOUYTUYNUUPXGUURVWHXHVVGVVNLUYNUTZVV
        OVBURVVGIUYSXNVFZVVIVVJVJZVWJVVIWPVFZVWJXEUNZXAZUQZLVWJMULZXNVFZUUSXIXJ
        WRZUOZMVWJWSUNZVQZUKZUTVWIVVGVWMVXAUYQVWJLMVWMXKZVXAXKVVGVVAVVRVWJWAUOA
        VVAVVFQXLVWGUYSIVWJVWJXKZUUTWOVVGUYQVWJXIVJZUYQVKUOZVWMVDUNZUYQUYQVXGXC
        VFZXDVFZXAZADVKUYQVVSXMZVVGVXGUYQUYQVUIXCVFZXDVFZVXIVVGUYSVDUNVXGVXMVVG
        UYSVWMVDVVGVVRUYSVWMXAZVWGUYSIVWJVXDUVAWGZXOABDEUYQGIJNOSUAQRVVSUVBUVCZ
        VVGVXHVXLUYQXDVVGVXHUYQVXMXCVFZVXLVVGVXGVXMUYQXCVXPXPVVGVXFVXLVRUOVXQVX
        LXAVXKVVGVXLVVGUYQVUIVXKAVUSVVFVVCXLUVDUVGVXLUYQUVQWOXHXPUVEVVGVWJWBUOZ
        VWMUSUOVXEVXFVXJUQWEVVGVVRVXRVWGUYSIVWJVXDUVFWGVVGUYSVWMUSVXOVVGVVBUYSE
        VGZUYSUSUOAVVBVVFRXLVVGVVRVXSVWGEUYSIOUVHWGEUYSWNWOXQZUYQVWJVWMVXCUVIWO
        WKVXTUVJVVGVWOVVNLVXBUYNVVGVVIVXBUOZVWOVVIUYNUOZVVNUQVVGVYAUQVWOVVNVYBV
        YAVVGVVIVWTUKZUOZVWOVVNVSVXBVYCVVIVXAVWTVGVXBVYCVGVWSMVWTWTVXAVWTXRUVKU
        VLVVGVYDUQZVWKVWNVVNVYEVWKUQZVWNVVMVVKVYFVWNVVMVYFVWLVVLVWMUYSVYFUYSVVI
        IVWJVXDVYEVVRVWKVVGVVRVYDVWGXLZXLVYEVWKVVKVVIXJUYSUVMVGZVYEVVRVWKVVKVYH
        UQWEVYGUYSVVIIVWJVXDUVNWGZXSZVYEVWKVVKVYHVYIXTUVOVYFUYSVWMVVGVXNVYDVWKV
        XOUVPUVRUVSUVTVYJYAYBUWAVVGVXBUYNVVIVVGVXAFVGVXBUYNVGVVGVXAVWJVUFXNVFZV
        WRUOZUEVWTVQFVWSVYLMUEVWTMUEYCZVWQVYKVWRVWPVUFVWJXNYDYEYFVVGVYLUEVWTFVV
        GVUFVWTUOZVYLVLZVUFVVQUOZIVUFXNVFZVWRUOZVUFFUOVVGVYNVYPVYLVVGVYNVYPVUFU
        YSVGZVVGVVRVYNVYPVYSUQWEVWGVUFUYSIVWJVXDUWBWGZXSYGVYOVYKVYQVWRVYOVVRVYS
        VYKVYQXAVVGVYNVVRVYLVWGWIVVGVYNVYSVYLVVGVYNVYPVYSVYTXTYGUYSVUFIVVQUWCWO
        VVGVYNVYLUWDXQIVWPXNVFZVWRUOVYRMVUFVVQFVYMWUAVYQVWRVWPVUFIXNYDYEPUWEUWF
        WLWMVXAFXRWGXMYAYBUWGYHVVNLUYNYIUWHUWIVUGUEUYNYIXGYJVUGVUAUDUEDUYNUCVUF
        UYRUYTUWJUWKWOAVUCUQZYKUDDUYQYLZUYRWQZYMZYNZVDUNZYPVFZWUFUFULZUWLZUFVAZ
        VUDWUBWUHWUFUWMVJZWUKWUBWUHVDUNWUGXAZWULWUBWUFUSUOZWUGUWNUOWUMWUBWUFUED
        VUFYLZVUFUYOUNZWQZYMZYNZUSUDUEDWUEWURUDUEYCZWUCWUOWUDWUQUYQVUFUWRWUTUYR
        WUPUYQVUFUYOYOZUWOUWPUWQZWUBVUEWURUSUOZUEDUPWUSUSUOAVUEVUCVVEXLWUBWVCUE
        DWUBVUFDUOUQZWUOUSUOWUQUSUOWVCVUFUWSWVDWUQYKWUPVDUNZYPVFZUSWVDWUPUYNUOW
        VFFWUPUMWUQWVFXAWUBDUYNVUFUYOAUYPVUBUWTXFFWUPUXAWVFFWUPUXBWJYKWVEYQUXCW
        UOWUQUXDYRYJUEDWURUXIWOUXEZWUFUXFWUGUXGWJWUBWUHUSUOWUNWUMWULWEYKWUGYQWV
        GWUHWUFUXHYRUXJWUHWUFUFUYIXGWUBWUJVUDUFAVUCWUJVUDAVUCWUJUQZUQZUGUEUHDEF
        GHUYOIWUIWUFJKUIMUJOPAVVAWVHQXLAVVBWVHRXLSDVUMUHULZVUIVIVJZUHVKVQTVULWV
        KCUHVKVUKWVJVUIVIUXKYFYSGNDVWFYTUJDUGULZJUNZUJULZWVNVUIXCVFZXDVFZVIVJZU
        GEVQZYTUANUJDVWFWVRNUJYCZVWFWVMVWDVIVJZUGEVQWVRVWEWVTBUGEBUGYCVWAWVMVWD
        VIVVTWVLJYOUXLYFWVSWVTWVQUGEWVSVWDWVPWVMVIWVSVWBWVNVWCWVOXDWVSUXMVWBWVN
        VUIXCUXNUXOUXPUXQUXRUXSYSKHVVQVVKVVLHULZXAZUQZLUYNVQZYTHVVQIUIULZVVJVJZ
        IWWEWPVFZWWAXAZUQZUIUYNVQZYTUBHVVQWWDWWJWWCWWILUIUYNLUIYCZVVKWWFWWBWWHV
        VIWWEIVVJUXTWWKVVLWWGWWAVVIWWEIWPYDUYAUYBYFUYCYSAUYPVUBWUJUYDWVIVUBWUPV
        UFGUNZKUNZUOZUEDUPAUYPVUBWUJUYEVUAWWNUDUEDWUTUYRWUPUYTWWMWVAWUTUYSWWLKU
        YQVUFGYOXOUYFUYGXGWVBAVUCWUJUYJUYHUYKUYLYHUYM $.
    $}

    $( The Fundamental Theorem of (finite) Abelian Groups.  Any finite abelian
       group is a direct product of cyclic p-groups.  (Contributed by Mario
       Carneiro, 27-Apr-2016.)  (Revised by Mario Carneiro, 3-May-2016.) $)
    ablfac $p |- ( ph -> E. s e. Word C
      ( G dom DProd s /\ ( G DProd s ) = B ) ) $=
      ( vg vx vw vp cv wbr co crab cfv eqid cdprd cdm wceq wa cword c0 wne wrex
      csubg cmpt cabl wcel cgrp ablgrp subgid chash cdvds cprime cod ablfaclem1
      cpc cexp 4syl ablfaclem3 eqnetrrd rabn0 sylib ) ADEOZUAUBPZDVHUAQZBUCUDZE
      CUEZRZUFUGVKEVLUHABKDUISZVIVJKOUCUDEVLRUJZSZVMUFADUKULDUMULBVNULVPVMUCIDU
      NBDGUOALMMOBUPSZUQPMURRZBCNVRLODUSSZSNOZVTVQVAQVBQUQPLBRUJZBKDVSVOEFNGHIJ
      VSTZVRTZWATZVOTZUTVCALMVRBCWAKDVSVOEFNGHIJWBWCWDWEVDVEVKEVLVFVG $.

    ablfac2.m $e |- .x. = ( .g ` G ) $.
    ablfac2.s $e |- S = ( k e. dom w |->
      ran ( n e. ZZ |-> ( n .x. ( w ` k ) ) ) ) $.
    $( Choose generators for each cyclic group in ~ ablfac .  (Contributed by
       Mario Carneiro, 28-Apr-2016.) $)
    ablfac2 $p |- ( ph -> E. w e. Word B
      ( S : dom w --> C /\ G dom DProd S /\ ( G DProd S ) = B ) ) $=
      ( vx wceq wa wcel vs vj cv cdprd cdm wbr co wf w3a cword wrex wex cz cmpt
      cfv crn wral cfn cc0 chash cfzo ad2antlr fdm syl fzofi syl6eqel wss csubg
      wrdf feq2d mpbird ffvelrnda cress ccyg oveq2 eleq1d elrab2 simplbi subgss
      cpgp cin cmg cbs inss1 simprbi sseldi cgrp iscyg subgbas rexeqdv ad2antrr
      eqid simpr simplr subgmulg syl3anc mpteq2dva rneqd adantr rexbidva ssrexv
      eqeq12d sylc ralrimiva mpteq2dv eqeq1d ac6sfi syl2anc simprl mpbid iswrdi
      eqtr4d eleq2d biimpa simprr simpl fveq2d oveq2d fveq2 rspccva sylan eqtri
      eqeltrd syldan cbvmptv fmptd raleqdv mpteq12 syl5eq dprdf feqmptd simplrr
      breqtrrd eqtrd 3jca jca ex eximdv mpd df-rex sylibr ablfac r19.29a ) AIUA
      UCZUDUEZUFZIUUDUDUGZCRZSZBUCZUEZDEUHZIEUUEUFZIEUDUGZCRZUIZBCUJZUKZUADUJZA
      UUDUUSTZSZUUISZUUJUUQTZUUPSZBULZUURUVBUUDUEZCUUJUHZHUMHUCZGUCZUUJUOZFUGZU
      NZUPZUVIUUDUOZRZGUVFUQZSZBULZUVEUVBUVFURTHUMUVHQUCZFUGZUNZUPZUVNRZQCUKZGU
      VFUQUVRUVBUVFUSUUDUTUOZVAUGZURUVBUWFDUUDUHZUVFUWFRZUUTUWGAUUIDUUDVIVBZUWF
      DUUDVCVDZUSUWEVEVFUVBUWDGUVFUVBUVIUVFTSZUVNCVGZUWCQUVNUKZUWDUWKUVNIVHUOZT
      ZUWLUWKUVNDTZUWOUVBUVFDUVIUUDUVBUVFDUUDUHZUWGUWIUVBUVFUWFDUUDUWJVJVKZVLZU
      WPUWOIUVNVMUGZVNVTUPZWAZTZIJUCZVMUGZUXBTUXCJUVNUWNDUXDUVNRUXEUWTUXBUXDUVN
      IVMVOVPLVQZVRVDZCUVNIKVSVDUWKUWMHUMUVHUVSUWTWBUOZUGZUNZUPZUWTWCUOZRZQUVNU
      KZUWKUXNUXMQUXLUKZUWKUWTVNTZUXOUWKUXBVNUWTVNUXAWDUWKUWPUXCUWSUWPUWOUXCUXF
      WEVDWFUXPUWTWGTUXOQUXLUXHHUWTUXLWLUXHWLZWHWEVDUWKUXMQUVNUXLUWKUWOUVNUXLRZ
      UXGUVNIUWTUWTWLZWIVDZWJVKUWKUWCUXMQUVNUWKUVSUVNTZSZUWBUXKUVNUXLUYBUWAUXJU
      YBHUMUVTUXIUYBUVHUMTZSUWOUYCUYAUVTUXIRUWKUWOUYAUYCUXGWKUYBUYCWMUWKUYAUYCW
      NUVNUXHFIUWTUVHUVSOUXSUXQWOWPWQWRUWKUXRUYAUXTWSXBWTVKUWCQUVNCXAXCXDUWCUVO
      GQUVFCBUVSUVJRZUWBUVMUVNUYDUWAUVLUYDHUMUVTUVKUVSUVJUVHFVOXEWRXFXGXHUVBUVQ
      UVDBUVBUVQUVDUVBUVQSZUVCUUPUYEUWFCUUJUHZUVCUYEUVGUYFUVBUVGUVPXIUYEUVFUWFC
      UUJUVBUWHUVQUWJWSZVJXJZCUWEUUJXKVDUYEUULUUMUUOUYEUBUUKHUMUVHUBUCZUUJUOZFU
      GZUNZUPZDEUYEUYIUUKTZUYIUVFTZUYMDTUYEUYNUYOUYEUUKUVFUYIUYEUUKUWFUVFUYEUYF
      UUKUWFRUYHUWFCUUJVCVDUYGXLZXMXNUYEUYOSUYMUYIUUDUOZDUYEUVPUYOUYMUYQRZUVBUV
      GUVPXOZUVOUYRGUYIUVFUVIUYIRZUVMUYMUVNUYQUYTUVLUYLUYTHUMUVKUYKUYTUYCSZUVJU
      YJUVHFVUAUVIUYIUUJUYTUYCXPXQXRWQWRUVIUYIUUDXSXBXTYAUYEUVFDUYIUUDUVBUWQUVQ
      UWRWSVLYCYDEGUUKUVMUNZUBUUKUYMUNPGUBUUKUVMUYMUYTUVLUYLUYTHUMUVKUYKUYTUVJU
      YJUVHFUVIUYIUUJXSXRXEWRYEYBYFUYEIUUDEUUEUVBUUFUVQUVAUUFUUHXIWSZUYEEGUVFUV
      NUNZUUDUYEEVUBVUDPUYEUUKUVFRUVOGUUKUQZVUBVUDRUYPUYEVUEUVPUYSUYEUVOGUUKUVF
      UYPYGVKGUUKUVMUVFUVNYHXHYIUYEGUVFUWNUUDUYEUUFUVFUWNUUDUHVUCUUDIYJVDYKXLZY
      MUYEUUNUUGCUYEEUUDIUDVUFXRUVAUUFUUHUVQYLYNYOYPYQYRYSUUPBUUQYTUUAACDIUAJKL
      MNUUBUUC $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Rings
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Multiplicative Group
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c mulGrp $. $( Multiplicative group $)

  $( Multiplicative group. $)
  cmgp $a class mulGrp $.

  $( Define a structure that puts the multiplication operation of a ring in the
     addition slot.  Note that this will not actually be a group for the
     average ring, or even for a field, but it will be a monoid, and ~ unitgrp
     shows that we get a group if we restrict to the elements that have
     inverses.  This allows us to formalize such notions as "the multiplication
     operation of a ring is a monoid" ( ~ ringmgp ) or "the multiplicative
     identity" in terms of the identity of a monoid ( ~ df-1r ).  (Contributed
     by Mario Carneiro, 21-Dec-2014.) $)
  df-mgp $a |- mulGrp = ( w e. _V |->
    ( w sSet <. ( +g ` ndx ) , ( .r ` w ) >. ) ) $.

  $( The multiplicative group operator is a function.  (Contributed by Mario
     Carneiro, 11-Mar-2015.) $)
  fnmgp $p |- mulGrp Fn _V $=
    ( vx cvv cv cnx cplusg cfv cmulr cop csts co cmgp ovex df-mgp fnmpti ) ABAC
    ZDEFOGFHZIJKOPILAMN $.

  ${
    $d r R $.  $d r .x. $.
    mgpval.1 $e |- M = ( mulGrp ` R ) $.
    mgpval.2 $e |- .x. = ( .r ` R ) $.
    $( Value of the multiplication group operation.  (Contributed by Mario
       Carneiro, 21-Dec-2014.) $)
    mgpval $p |- M = ( R sSet <. ( +g ` ndx ) , .x. >. ) $=
      ( vr cmgp cfv cnx cplusg cop csts co cvv wcel wceq cv cmulr id fveq2 ovex
      syl6eqr opeq2d oveq12d df-mgp fvmpt wn c0 reldmsets ovprc1 eqtr4d pm2.61i
      fvprc eqtri ) CAGHZAIJHZBKZLMZDANOZUOURPFAFQZUPUTRHZKZLMURNGUTAPZUTAVBUQL
      VCSVCVABUPVCVAARHBUTARTEUBUCUDFUEAUQLUAUFUSUGUOUHURAGUMAUQLUIUJUKULUN $.

    $( Value of the group operation of the multiplication group.  (Contributed
       by Mario Carneiro, 21-Dec-2014.) $)
    mgpplusg $p |- .x. = ( +g ` M ) $=
      ( cvv wcel cplusg cfv wceq cnx csts co cmulr plusgid c0 fvprc syl5eq cmgp
      cop fvex eqeltri setsid mgpval fveq2i syl6eqr str0 fveq2d 3eqtr4a pm2.61i
      mpan2 wn ) AFGZBCHIZJUMBAKHIZBTLMZHIZUNUMBFGBUQJBANIZFEANUAUBFBHFAOUCUKCU
      PHABCDEUDUEUFUMULZPPHIBUNHUOOUGUSBURPEANQRUSCPHUSCASIPDASQRUHUIUJ $.
  $}

  ${
    mgpbas.1 $e |- M = ( mulGrp ` R ) $.
    ${
      mgplem.2 $e |- E = Slot N $.
      mgplem.3 $e |- N e. NN $.
      mgplem.4 $e |- N =/= 2 $.
      $( Lemma for ~ mgpbas .  (Contributed by Mario Carneiro, 5-Oct-2015.) $)
      mgplem $p |- ( E ` R ) = ( E ` M ) $=
        ( cfv cnx cplusg cmulr cop csts co ndxid wne c2 ndxarg plusgndx neeq12i
        mpbir setsnid eqid mgpval fveq2i eqtr4i ) ABIAJKIZALIZMNOZBICBIUIUHBABD
        FGPJBIZUHQDRQHUKDUHRBDFGSTUAUBUCCUJBAUICEUIUDUEUFUG $.
    $}

    ${
      mgpbas.2 $e |- B = ( Base ` R ) $.
      $( Base set of the multiplication group.  (Contributed by Mario Carneiro,
         21-Dec-2014.)  (Revised by Mario Carneiro, 5-Oct-2015.) $)
      mgpbas $p |- B = ( Base ` M ) $=
        ( cbs cfv c1 df-base 1nn 1ne2 mgplem eqtri ) ABFGCFGEBFCHDIJKLM $.
    $}

    ${
      mgpsca.s $e |- S = ( Scalar ` R ) $.
      $( The multiplication monoid has the same (if any) scalars as the
         original ring.  Mostly to simplify ~ pwsmgp .  (Contributed by Mario
         Carneiro, 12-Mar-2015.)  (Revised by Mario Carneiro, 5-May-2015.) $)
      mgpsca $p |- S = ( Scalar ` M ) $=
        ( csca cfv c5 df-sca 5nn c2 2re 2lt5 gtneii mgplem eqtri ) BAFGCFGEAFCH
        DIJKHLMNOP $.
    $}

    $( Topology component of the multiplication group.  (Contributed by Mario
       Carneiro, 5-Oct-2015.) $)
    mgptset $p |- ( TopSet ` R ) = ( TopSet ` M ) $=
      ( cts c9 df-tset 9nn c2 2re 2lt9 gtneii mgplem ) ADBECFGHEIJKL $.

    ${
      mgptopn.2 $e |- J = ( TopOpen ` R ) $.
      $( Topology of the multiplication group.  (Contributed by Mario Carneiro,
         5-Oct-2015.) $)
      mgptopn $p |- J = ( TopOpen ` M ) $=
        ( ctopn cfv cts cbs crest co eqid topnval mgpbas mgptset 3eqtr2i ) BAFG
        AHGZAIGZJKCFGERQARLZQLMRQCRACDSNACDOMP $.
    $}

    ${
      mgpds.2 $e |- B = ( dist ` R ) $.
      $( Distance function of the multiplication group.  (Contributed by Mario
         Carneiro, 5-Oct-2015.) $)
      mgpds $p |- B = ( dist ` M ) $=
        ( cds cfv c1 c2 cdc df-ds 1nn0 2nn decnncl 2re 2nn0 2lt10 declti gtneii
        1nn mgplem eqtri ) ABFGCFGEBFCHIJZDKHILMNIUCOHIITPPQRSUAUB $.
    $}
  $}

  ${
    mgpress.1 $e |- S = ( R |`s A ) $.
    mgpress.2 $e |- M = ( mulGrp ` R ) $.
    $( Subgroup commutes with the multiplication group operator.  (Contributed
       by Mario Carneiro, 10-Jan-2015.) $)
    mgpress $p |- ( ( R e. V /\ A e. W ) -> ( M |`s A ) = ( mulGrp ` S ) ) $=
      ( wcel wa cbs cfv co cmgp wceq cvv fvex eqid syl3anc csts wss cress simpr
      eqeltri a1i simplr mgpbas ressid2 simpll fveq2d 3eqtr4a wn cnx cin cplusg
      cop mgpval oveq1i ressval2 ressmulr eqcomd ad2antlr opeq2d oveq12d syl5eq
      cmulr wne c2 c1 1ne2 plusgndx basendx neeq12i mpbir inex2 setscom mpanr12
      necomi sylancl eqtr4d pm2.61dan ) BEIZAFIZJZBKLZAUAZDAUBMZCNLZOWDWFJZDBNL
      ZWGWHHWIWFDPIZWCWGDOWDWFUCZWKWIDWJPHBNQUDZUEWBWCWFUFZAWEWGDPFWGRZWEBDHWER
      ZUGZUHSWICBNWIWFWBWCCBOWLWBWCWFUIWNAWECBEFGWPUHSUJUKWDWFULZJZDUMKLZAWEUNZ
      UPZTMZBUMUOLZBVFLZUPZTMZXBTMZWGWHDXGXBTBXEDHXERZUQURWSWRWKWCWGXCOWDWRUCZW
      KWSWMUEWBWCWRUFZAWEWGDPFWOWQUSSWSWHBXBTMZXFTMZXHWSWHCXDCVFLZUPZTMXMCXNWHW
      HRXNRUQWSCXLXOXFTWSWRWBWCCXLOXJWBWCWRUIZXKAWECBEFGWPUSSWSXNXEXDWCXNXEOWBW
      RWCXEXNABCXEFGXIUTVAVBVCVDVEWSWBXDWTVGZXHXMOZXPXQVHVIVGVIVHVJVRXDVHWTVIVK
      VLVMVNWBXQJXEPIXAPIXRBVFQWEABKQVOXDWTXEXABEPPUMUOQUMKQVPVQVSVTUKWA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ring unit
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c 1r $.

  $( Extend class notation with ring unit. $)
  cur $a class 1r $.

  $( Define the multiplicative neutral element of a ring.  This definition
     works by extracting the ` 0g ` element, i.e. the neutral element in a
     group or monoid, and transferring it to the multiplicative monoid via the
     ` mulGrp ` function ( ~ df-mgp ).  See also ~ dfur2 , which derives the
     "traditional" definition as the unique element of a ring which is left-
     and right-neutral under multiplication.  (Contributed by NM, 27-Aug-2011.)
     (Revised by Mario Carneiro, 27-Dec-2014.) $)
  df-ur $a |- 1r = ( 0g o. mulGrp ) $.

  ${
    ringidval.g $e |- G = ( mulGrp ` R ) $.
    ringidval.u $e |- .1. = ( 1r ` R ) $.
    $( The value of the unity element of a ring.  (Contributed by NM,
       27-Aug-2011.)  (Revised by Mario Carneiro, 27-Dec-2014.) $)
    ringidval $p |- .1. = ( 0g ` G ) $=
      ( cur cfv cmgp c0g cvv wcel wceq ccom df-ur fveq1i wfn fnmgp fvco2 fvprc
      c0 mpan syl5eq wn 0g0 fveq2d 3eqtr4a pm2.61i fveq2i 3eqtr4i ) AFGZAHGZIGZ
      BCIGAJKZUJULLUMUJAIHMZGZULAFUNNOHJPUMUOULLQJIHARUAUBUMUCZTTIGUJULUDAFSUPU
      KTIAHSUEUFUGECUKIDUHUI $.
  $}

  ${
    $d e x B $.  $d e x R $.
    dfur2.b $e |- B = ( Base ` R ) $.
    dfur2.t $e |- .x. = ( .r ` R ) $.
    dfur2.u $e |- .1. = ( 1r ` R ) $.
    $( The multiplicative identity is the unique element of the ring that is
       left- and right-neutral on all elements under multiplication.
       (Contributed by Mario Carneiro, 10-Jan-2015.) $)
    dfur2 $p |- .1. = ( iota e ( e e. B /\
      A. x e. B ( ( e .x. x ) = x /\ ( x .x. e ) = x ) ) ) $=
      ( cmgp cfv eqid mgpbas mgpplusg ringidval grpidval ) ABDFCJKZEBCQQLZGMCDQ
      RHNCEQRIOP $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Semirings
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c SRing $.

  $( Extend class notation with the class of all semirings. $)
  csrg $a class SRing $.

  ${
    $d f n p r t x y z $.
    $( Define class of all semirings.  A semiring is a set equipped with two
       everywhere-defined internal operations, whose first one is an additive
       commutative monoid structure and the second one is a multiplicative
       monoid structure, and where multiplication is (left- and right-)
       distributive over addition.  Compared to the definition of a ring, this
       definition also adds that the additive identity is an absorbing element
       of the multiplicative law, as this cannot be deduced from distributivity
       alone.  Definition of [Golan] p. 1.  Note that our semirings are unital.
       Such semirings are sometimes called "rigs", being "rings without
       negatives".  (Contributed by Thierry Arnoux, 21-Mar-2018.) $)
    df-srg $a |- SRing = { f e. CMnd | ( ( mulGrp ` f ) e. Mnd /\
        [. ( Base ` f ) / r ]. [. ( +g ` f ) / p ]. [. ( .r ` f ) / t ].
        [. ( 0g ` f ) / n ]. A. x e. r ( A. y e. r A. z e. r
           ( ( x t ( y p z ) ) = ( ( x t y ) p ( x t z ) )
            /\ ( ( x p y ) t z ) = ( ( x t z ) p ( y t z ) ) )
            /\ ( ( n t x ) = n /\ ( x t n ) = n ) ) ) } $.
  $}

  ${
    $d b n p r t x y z .+ $.  $d b n p r t x y z .0. $.  $d r G $.
    $d b n p r t x y z .x. $.  $d b n p r t x y z B $.  $d b n p r t x y z R $.
    issrg.b $e |- B = ( Base ` R ) $.
    issrg.g $e |- G = ( mulGrp ` R ) $.
    issrg.p $e |- .+ = ( +g ` R ) $.
    issrg.t $e |- .x. = ( .r ` R ) $.
    issrg.0 $e |- .0. = ( 0g ` R ) $.
    $( The predicate "is a semiring."  (Contributed by Thierry Arnoux,
       21-Mar-2018.) $)
    issrg $p |- ( R e. SRing <-> ( R e. CMnd /\ G e. Mnd
      /\ A. x e. B ( A. y e. B A. z e. B
       ( ( x .x. ( y .+ z ) ) = ( ( x .x. y ) .+ ( x .x. z ) )
      /\ ( ( x .+ y ) .x. z ) = ( ( x .x. z ) .+ ( y .x. z ) ) )
      /\ ( ( .0. .x. x ) = .0. /\ ( x .x. .0. ) = .0. ) ) ) ) $=
      ( cfv cv co wceq wa wsbc vp vt vb vn vr ccmn wcel cmgp cmnd wral csrg w3a
      eleq1i bicomi cbs cvv eqeltri cplusg cmulr a1i c0g simplll simplr simpllr
      fvex eqidd oveqd oveq123d eqeq12d anbi12d raleqbidv sbcied sbc2ie anbi12i
      simpr anbi2i eleq1d syl6eqr sbceq1d sbceqbid df-srg elrab2 3anass 3bitr4i
      fveq2 ) FUFUGZFUHOZUIUGZAPZBPZCPZUAPZQZUBPZQZWIWJWNQZWIWKWNQZWLQZRZWIWJWL
      QZWKWNQZWQWJWKWNQZWLQZRZSZCUCPZUJZBXFUJZUDPZWIWNQZXIRZWIXIWNQZXIRZSZSZAXF
      UJZUDITZUBGTZUAETZUCDTZSZSWFHUIUGZWIWJWKEQZGQZWIWJGQZWIWKGQZEQZRZWIWJEQZW
      KGQZYFWJWKGQZEQZRZSZCDUJZBDUJZIWIGQZIRZWIIGQZIRZSZSZADUJZSZSFUKUGWFYBUUCU
      LYAUUDWFWHYBXTUUCYBWHHWGUIKUMUNXRUUCUCUADEDFUOOZUPJFUOVEUQEFUROZUPLFURVEU
      QXFDRZWLERZSZXQUUCUBGUPGUPUGUUIGFUSOZUPMFUSVEUQUTUUIWNGRZSZXPUUCUDIUPIUPU
      GUULIFVAOZUPNFVAVEUQUTUULXIIRZSZXOUUBAXFDUUGUUHUUKUUNVBZUUOXHYPXNUUAUUOXG
      YOBXFDUUPUUOXEYNCXFDUUPUUOWSYHXDYMUUOWOYDWRYGUUOWIWIWMYCWNGUUIUUKUUNVCZUU
      OWIVFZUUOWLEWJWKUUGUUHUUKUUNVDZVGVHUUOWPYEWQYFWLEUUSUUOWNGWIWJUUQVGUUOWNG
      WIWKUUQVGZVHVIUUOXAYJXCYLUUOWTYIWKWKWNGUUQUUOWLEWIWJUUSVGUUOWKVFVHUUOWQYF
      XBYKWLEUUSUUTUUOWNGWJWKUUQVGVHVIVJVKVKUUOXKYRXMYTUUOXJYQXIIUUOXIIWIWIWNGU
      UQUULUUNVOZUURVHUVAVIUUOXLYSXIIUUOWIWIXIIWNGUUQUURUVAVHUVAVIVJVJVKVLVLVMV
      NVPUEPZUHOZUIUGZXPUDUVBVAOZTZUBUVBUSOZTZUAUVBUROZTZUCUVBUOOZTZSYAUEFUFUKU
      VBFRZUVDWHUVLXTUVMUVCWGUIUVBFUHWEVQUVMUVJXSUCUVKDUVMUVKUUEDUVBFUOWEJVRUVM
      UVHXRUAUVIEUVMUVIUUFEUVBFURWELVRUVMUVFXQUBUVGGUVMUVGUUJGUVBFUSWEMVRUVMXPU
      DUVEIUVMUVEUUMIUVBFVAWENVRVSVTVTVTVJABCUBUEUDUCUAWAWBWFYBUUCWCWD $.
  $}

  ${
    $d x y z R $.
    $( A semiring is a commutative monoid.  (Contributed by Thierry Arnoux,
       21-Mar-2018.) $)
    srgcmn $p |- ( R e. SRing -> R e. CMnd ) $=
      ( vx vy vz csrg wcel ccmn cmgp cfv cmnd cv cplusg cmulr wceq cbs wral c0g
      co wa eqid issrg simp1bi ) AEFAGFAHIZJFBKZCKZDKZALIZRAMIZRUDUEUHRUDUFUHRZ
      UGRNUDUEUGRUFUHRUIUEUFUHRUGRNSDAOIZPCUJPAQIZUDUHRUKNUDUKUHRUKNSSBUJPBCDUJ
      UGAUHUCUKUJTUCTUGTUHTUKTUAUB $.

    $( A semiring is a monoid.  (Contributed by Thierry Arnoux,
       21-Mar-2018.) $)
    srgmnd $p |- ( R e. SRing -> R e. Mnd ) $=
      ( csrg wcel ccmn cmnd srgcmn cmnmnd syl ) ABCADCAECAFAGH $.

    srgmgp.g $e |- G = ( mulGrp ` R ) $.
    $( A semiring is a monoid under multiplication.  (Contributed by Thierry
       Arnoux, 21-Mar-2018.) $)
    srgmgp $p |- ( R e. SRing -> G e. Mnd ) $=
      ( vx vy vz csrg wcel ccmn cmnd cv cplusg cfv co cmulr wceq cbs wral eqid
      wa c0g issrg simp2bi ) AGHAIHBJHDKZEKZFKZALMZNAOMZNUDUEUHNUDUFUHNZUGNPUDU
      EUGNUFUHNUIUEUFUHNUGNPTFAQMZREUJRAUAMZUDUHNUKPUDUKUHNUKPTTDUJRDEFUJUGAUHB
      UKUJSCUGSUHSUKSUBUC $.
  $}

  ${
    $d x y z B $.  $d x y z R $.  $d x y z .x. $.  $d x y z X $.  $d x y z Y $.
    $d x y z .+ $.  $d x y z Z $.
    srgi.b $e |- B = ( Base ` R ) $.
    srgi.p $e |- .+ = ( +g ` R ) $.
    srgi.t $e |- .x. = ( .r ` R ) $.
    $( Properties of a semiring.  (Contributed by NM, 26-Aug-2011.)  (Revised
       by Mario Carneiro, 6-Jan-2015.)  (Revised by Thierry Arnoux,
       1-Apr-2018.) $)
    srgi $p |- ( ( R e. SRing /\ ( X e. B /\ Y e. B /\ Z e. B ) )
           -> ( ( X .x. ( Y .+ Z ) ) = ( ( X .x. Y ) .+ ( X .x. Z ) )
                /\ ( ( X .+ Y ) .x. Z ) = ( ( X .x. Z ) .+ ( Y .x. Z ) ) ) ) $=
      ( vx vy vz wcel w3a wa co wceq cv wral csrg c0g ccmn cmgp cmnd eqid issrg
      cfv simp3bi r19.21bi simpld 3ad2antr1 simpr2 sylc simpr3 caovdig caovdirg
      rsp simprd jca ) CUANZEANFANGANOPEFGBQDQEFDQEGDQZBQREFBQGDQVBFGDQBQRVAKLM
      EFGABDBAVAKSZANZLSZANZMSZANZOPZVCVEVGBQDQVCVEDQVCVGDQZBQRZVCVEBQVGDQVJVEV
      GDQBQRZVIVKVLPZMATZVHVMVIVNLATZVFVNVAVFVDVOVHVAVDPVOCUBUHZVCDQVPRVCVPDQVP
      RPZVAVOVQPZKAVACUCNCUDUHZUENVRKATKLMABCDVSVPHVSUFIJVPUFUGUIUJUKULVAVDVFVH
      UMVNLAURUNVAVDVFVHUOVMMAURUNZUKUPVAKLMEFGABDBAVIVKVLVTUSUQUT $.
  $}

  ${
    srgcl.b $e |- B = ( Base ` R ) $.
    srgcl.t $e |- .x. = ( .r ` R ) $.
    $( Closure of the multiplication operation of a semiring.  (Contributed by
       NM, 26-Aug-2011.)  (Revised by Mario Carneiro, 6-Jan-2015.)  (Revised by
       Thierry Arnoux, 1-Apr-2018.) $)
    srgcl $p |- ( ( R e. SRing /\ X e. B /\ Y e. B ) -> ( X .x. Y ) e. B ) $=
      ( csrg wcel cmgp cfv cmnd co eqid srgmgp mgpbas mgpplusg mndcl syl3an1 )
      BHIBJKZLIDAIEAIDECMAIBTTNZOACTDEABTUAFPBCTUAGQRS $.

    $( Associative law for the multiplication operation of a semiring.
       (Contributed by NM, 27-Aug-2011.)  (Revised by Mario Carneiro,
       6-Jan-2015.)  (Revised by Thierry Arnoux, 1-Apr-2018.) $)
    srgass $p |- ( ( R e. SRing /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
                      ( ( X .x. Y ) .x. Z ) = ( X .x. ( Y .x. Z ) ) ) $=
      ( csrg wcel cmgp cfv cmnd w3a co wceq eqid srgmgp mgpbas mgpplusg mndass
      sylan ) BIJBKLZMJDAJEAJFAJNDECOFCODEFCOCOPBUCUCQZRACUCDEFABUCUDGSBCUCUDHT
      UAUB $.

    $d u x B $.  $d u x R $.  $d u x .x. $.
    $( The unit element of a semiring is unique.  (Contributed by NM,
       27-Aug-2011.)  (Revised by Mario Carneiro, 6-Jan-2015.)  (Revised by
       Thierry Arnoux, 1-Apr-2018.) $)
    srgideu $p |- ( R e. SRing ->
                E! u e. B A. x e. B ( ( u .x. x ) = x /\ ( x .x. u ) = x ) ) $=
      ( csrg wcel cmgp cfv cmnd cv co wceq wa wral wreu eqid srgmgp mndideu syl
      mgpbas mgpplusg ) DHIDJKZLIBMZAMZENUGOUGUFENUGOPACQBCRDUEUESZTABCEUECDUEU
      HFUCDEUEUHGUDUAUB $.
  $}

  ${
    $d B a b c $.  $d R a b $.  $d .x. a b c $.
    srgfcl.b $e |- B = ( Base ` R ) $.
    srgfcl.t $e |- .x. = ( .r ` R ) $.
    $( Functionality of the multiplication operation of a ring.  (Contributed
       by Steve Rodriguez, 9-Sep-2007.)  (Revised by AV, 24-Aug-2021.) $)
    srgfcl $p |- ( ( R e. SRing /\ .x. Fn ( B X. B ) )
                   -> .x. : ( B X. B ) --> B ) $=
      ( vc va vb csrg wcel cxp wfn wa crn wss wf simpr cv cfv wral co srgcl cop
      3expb ralrimivva fveq2 eleq1d eqcomi eleq1i syl6bb sylibr adantr fnfvrnss
      wceq df-ov ralxp syl2anc df-f sylanbrc ) BIJZCAAKZLZMZVBCNAOZVAACPUTVBQZV
      CVBFRZCSZAJZFVATZVDVEUTVIVBUTGRZHRZCUAZAJZHATGATVIUTVMGHAAUTVJAJVKAJVMABC
      VJVKDEUBUDUEVHVMFGHAAVFVJVKUCZUNZVHVNCSZAJVMVOVGVPAVFVNCUFUGVPVLAVLVPVJVK
      CUOUHUIUJUPUKULFVAACUMUQVAACURUS $.
  $}

  ${
    srgdi.b $e |- B = ( Base ` R ) $.
    srgdi.p $e |- .+ = ( +g ` R ) $.
    srgdi.t $e |- .x. = ( .r ` R ) $.
    $( Distributive law for the multiplication operation of a semiring.
       (Contributed by Steve Rodriguez, 9-Sep-2007.)  (Revised by Thierry
       Arnoux, 1-Apr-2018.) $)
    srgdi $p |- ( ( R e. SRing /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
                     ( X .x. ( Y .+ Z ) ) = ( ( X .x. Y ) .+ ( X .x. Z ) ) ) $=
      ( csrg wcel w3a wa co wceq srgi simpld ) CKLEALFALGALMNEFGBODOEFDOEGDOZBO
      PEFBOGDOSFGDOBOPABCDEFGHIJQR $.

    $( Distributive law for the multiplication operation of a semiring.
       (Contributed by Steve Rodriguez, 9-Sep-2007.)  (Revised by Thierry
       Arnoux, 1-Apr-2018.) $)
    srgdir $p |- ( ( R e. SRing /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
                     ( ( X .+ Y ) .x. Z ) = ( ( X .x. Z ) .+ ( Y .x. Z ) ) ) $=
      ( csrg wcel w3a wa co wceq srgi simprd ) CKLEALFALGALMNEFGBODOEFDOEGDOZBO
      PEFBOGDOSFGDOBOPABCDEFGHIJQR $.
  $}

  ${
    srgidcl.b $e |- B = ( Base ` R ) $.
    srgidcl.u $e |- .1. = ( 1r ` R ) $.
    $( The unit element of a semiring belongs to the base set of the semiring.
       (Contributed by NM, 27-Aug-2011.)  (Revised by Mario Carneiro,
       27-Dec-2014.)  (Revised by Thierry Arnoux, 1-Apr-2018.) $)
    srgidcl $p |- ( R e. SRing -> .1. e. B ) $=
      ( csrg wcel cmgp cfv cmnd eqid srgmgp mgpbas ringidval mndidcl syl ) BFGB
      HIZJGCAGBQQKZLAQCABQRDMBCQRENOP $.
  $}

  ${
    srg0cl.b $e |- B = ( Base ` R ) $.
    srg0cl.z $e |- .0. = ( 0g ` R ) $.
    $( The zero element of a semiring belongs to its base set.  (Contributed by
       Mario Carneiro, 12-Jan-2014.)  (Revised by Thierry Arnoux,
       1-Apr-2018.) $)
    srg0cl $p |- ( R e. SRing -> .0. e. B ) $=
      ( csrg wcel cmnd srgmnd mndidcl syl ) BFGBHGCAGBIABCDEJK $.
  $}

  ${
    $d x y B $.  $d x y I $.  $d x y R $.  $d x y .x. $.  $d x y .1. $.
    srgidm.b $e |- B = ( Base ` R ) $.
    srgidm.t $e |- .x. = ( .r ` R ) $.
    srgidm.u $e |- .1. = ( 1r ` R ) $.
    $( Lemma for ~ srglidm and ~ srgridm .  (Contributed by NM, 15-Sep-2011.)
       (Revised by Mario Carneiro, 27-Dec-2014.)  (Revised by Thierry Arnoux,
       1-Apr-2018.) $)
    srgidmlem $p |- ( ( R e. SRing /\ X e. B )
           -> ( ( .1. .x. X ) = X /\ ( X .x. .1. ) = X ) ) $=
      ( csrg wcel cmgp cfv cmnd co wceq wa eqid srgmgp mgpbas mgpplusg mndlrid
      ringidval sylan ) BIJBKLZMJEAJDECNEOEDCNEOPBUDUDQZRACUDEDABUDUEFSBCUDUEGT
      BDUDUEHUBUAUC $.

    $( The unit element of a semiring is a left multiplicative identity.
       (Contributed by NM, 15-Sep-2011.)  (Revised by Thierry Arnoux,
       1-Apr-2018.) $)
    srglidm $p |- ( ( R e. SRing /\ X e. B ) -> ( .1. .x. X ) = X ) $=
      ( csrg wcel wa co wceq srgidmlem simpld ) BIJEAJKDECLEMEDCLEMABCDEFGHNO
      $.

    $( The unit element of a semiring is a right multiplicative identity.
       (Contributed by NM, 15-Sep-2011.)  (Revised by Thierry Arnoux,
       1-Apr-2018.) $)
    srgridm $p |- ( ( R e. SRing /\ X e. B ) -> ( X .x. .1. ) = X ) $=
      ( csrg wcel wa co wceq srgidmlem simprd ) BIJEAJKDECLEMEDCLEMABCDEFGHNO
      $.

    $( Properties showing that an element ` I ` is the unity element of a
       semiring.  (Contributed by NM, 7-Aug-2013.)  (Revised by Thierry Arnoux,
       1-Apr-2018.) $)
    issrgid $p |- ( R e. SRing
      -> ( ( I e. B /\ A. x e. B ( ( I .x. x ) = x /\ ( x .x. I ) = x ) )
        <-> .1. = I ) ) $=
      ( vy csrg wcel cmgp cfv eqid mgpbas ringidval cv co wceq mgpplusg wa wral
      wreu wrex srgideu reurex syl ismgmid ) CKLZABDFJCMNZEBCUKUKOZGPCEUKULIQCD
      UKULHUAUJJRZARZDSUNTUNUMDSUNTUBABUCZJBUDUOJBUEAJBCDGHUFUOJBUGUHUI $.
  $}

  ${
    srgacl.b $e |- B = ( Base ` R ) $.
    srgacl.p $e |- .+ = ( +g ` R ) $.
    $( Closure of the addition operation of a semiring.  (Contributed by Mario
       Carneiro, 14-Jan-2014.)  (Revised by Thierry Arnoux, 1-Apr-2018.) $)
    srgacl $p |- ( ( R e. SRing /\ X e. B /\ Y e. B ) -> ( X .+ Y ) e. B ) $=
      ( csrg wcel cmnd co srgmnd mndcl syl3an1 ) CHICJIDAIEAIDEBKAICLABCDEFGMN
      $.

    $( Commutativity of the additive group of a semiring.  (Contributed by
       Thierry Arnoux, 1-Apr-2018.) $)
    srgcom $p |- ( ( R e. SRing /\ X e. B /\ Y e. B ) ->
      ( X .+ Y ) = ( Y .+ X ) ) $=
      ( csrg wcel ccmn co wceq srgcmn cmncom syl3an1 ) CHICJIDAIEAIDEBKEDBKLCMA
      BCDEFGNO $.
  $}

  ${
    $d x y z B $.  $d x y z R $.  $d x X $.  $d x y z .x. $.  $d x y z .0. $.
    srgz.b $e |- B = ( Base ` R ) $.
    srgz.t $e |- .x. = ( .r ` R ) $.
    srgz.z $e |- .0. = ( 0g ` R ) $.
    $( The zero of a semiring is a right-absorbing element.  (Contributed by
       Thierry Arnoux, 1-Apr-2018.) $)
    srgrz $p |- ( ( R e. SRing /\ X e. B ) -> ( X .x. .0. ) = .0. ) $=
      ( vx vy vz csrg wcel cv co wceq wral wa cfv eqid cplusg ccmn cmgp simp3bi
      cmnd issrg r19.21bi simprrd ralrimiva oveq1 eqeq1d rspcv mpan9 ) BLMZINZE
      COZEPZIAQDAMDECOZEPZUNUQIAUNUOAMRUOJNZKNZBUASZOCOUOUTCOUOVACOZVBOPUOUTVBO
      VACOVCUTVACOVBOPRKAQJAQZEUOCOEPZUQUNVDVEUQRRZIAUNBUBMBUCSZUEMVFIAQIJKAVBB
      CVGEFVGTVBTGHUFUDUGUHUIUQUSIDAUODPUPUREUODECUJUKULUM $.

    $( The zero of a semiring is a left-absorbing element.  (Contributed by AV,
       23-Aug-2019.) $)
    srglz $p |- ( ( R e. SRing /\ X e. B ) -> ( .0. .x. X ) = .0. ) $=
      ( vx vy vz csrg wcel cv co wceq wral wa cfv eqid cplusg ccmn cmgp simp3bi
      cmnd issrg r19.21bi simprld ralrimiva oveq2 eqeq1d rspcv mpan9 ) BLMZEINZ
      COZEPZIAQDAMEDCOZEPZUNUQIAUNUOAMRUOJNZKNZBUASZOCOUOUTCOUOVACOZVBOPUOUTVBO
      VACOVCUTVACOVBOPRKAQJAQZUQUOECOEPZUNVDUQVERRZIAUNBUBMBUCSZUEMVFIAQIJKAVBB
      CVGEFVGTVBTGHUFUDUGUHUIUQUSIDAUODPUPUREUODECUJUKULUM $.

    $d x Z $.  $d x ph $.
    srgisid.1 $e |- ( ph -> R e. SRing ) $.
    srgisid.2 $e |- ( ph -> Z e. B ) $.
    srgisid.3 $e |- ( ( ph /\ x e. B ) -> ( Z .x. x ) = Z ) $.
    $( In a semiring, the only left-absorbing element is the additive identity.
       Remark in [Golan] p. 1.  (Contributed by Thierry Arnoux, 1-May-2018.) $)
    srgisid $p |- ( ph -> Z = .0. ) $=
      ( co cv wceq wral ralrimiva csrg wcel srg0cl oveq2 eqeq1d rspcv mpd srgrz
      wi 3syl syl2anc eqtr3d ) AGFENZGFAGBOZENZGPZBCQZUKGPZAUNBCMRADSTZFCTUOUPU
      GKCDFHJUAUNUPBFCULFPUMUKGULFGEUBUCUDUHUEAUQGCTUKFPKLCDEGFHIJUFUIUJ $.
  $}

  ${
    srg1zr.b $e |- B = ( Base ` R ) $.
    srg1zr.p $e |- .+ = ( +g ` R ) $.
    srg1zr.t $e |- .* = ( .r ` R ) $.
    $( The only semiring with a base set consisting of one element is the zero
       ring (at least if its operations are internal binary operations).
       (Contributed by FL, 13-Feb-2010.)  (Revised by AV, 25-Jan-2020.) $)
    srg1zr $p |- ( ( ( R e. SRing /\ .+ Fn ( B X. B ) /\ .* Fn ( B X. B ) )
           /\ Z e. B ) -> ( B = { Z } <-> ( .+ = { <. <. Z , Z >. , Z >. }
                                     /\ .* = { <. <. Z , Z >. , Z >. } ) ) ) $=
      ( csn wceq wa wcel wfn cop cmgm wb cmnd adantr mndmgm mgmb1mgm1 cxp simpr
      csrg w3a pm4.24 srgmnd 3ad2ant1 syl simpl2 syl3anc cmgp cfv cplusg simpl1
      eqid srgmgp 3syl mgpplusg fneq1i biimpi 3ad2ant3 mgpbas eqcomi a1i eqeq1d
      bitrd anbi12d syl5bb ) AEIJZVIVIKCUCLZBAAUAZMZDVKMZUDZEALZKZBEENENIZJZDVQ
      JZKVIUEVPVIVRVIVSVPCOLZVOVLVIVRPVPCQLZVTVNWAVOVJVLWAVMCUFUGRCSUHVNVOUBZVJ
      VLVMVOUIABCEFGTUJVPVICUKULZUMULZVQJZVSVPWCOLZVOWDVKMZVIWEPVPVJWCQLWFVJVLV
      MVOUNCWCWCUOZUPWCSUQWBVNWGVOVMVJWGVLVMWGVKDWDCDWCWHHURZUSUTVARAWDWCEACWCW
      HFVBWDUOTUJVPWDDVQWDDJVPDWDWIVCVDVEVFVGVH $.

    srgen1zr.p $e |- Z = ( 0g ` R ) $.
    $( The only semiring with one element is the zero ring (at least if its
       operations are internal binary operations).  (Contributed by FL,
       14-Feb-2010.)  (Revised by AV, 25-Jan-2020.) $)
    srgen1zr $p |- ( ( R e. SRing /\ .+ Fn ( B X. B ) /\ .* Fn ( B X. B ) )
                     -> ( B ~~ 1o <-> ( .+ = { <. <. Z , Z >. , Z >. }
                                     /\ .* = { <. <. Z , Z >. , Z >. } ) ) ) $=
      ( csrg wcel cxp wfn w3a c1o cop csn wceq wa wb cen wbr 3ad2ant1 en1eqsnbi
      srg0cl adantl srg1zr bitrd mpdan ) CJKZBAALZMZDUKMZNZEAKZAOUAUBZBEEPEPQZR
      DUQRSZTUJULUOUMACEFIUEUCUNUOSUPAEQRZURUOUPUSTUNEAUDUFABCDEFGHUGUHUI $.
  $}

  ${
    $d x y B $.  $d x y R $.  $d x y .x. $.  $d x y .X. $.  $d x y X $.
    $d x N $.  $d x y Y $.
    srgmulgass.b $e |- B = ( Base ` R ) $.
    srgmulgass.m $e |- .x. = ( .g ` R ) $.
    srgmulgass.t $e |- .X. = ( .r ` R ) $.
    $( An associative property between group multiple and ring multiplication
       for semirings.  (Contributed by AV, 23-Aug-2019.) $)
    srgmulgass $p |- ( ( R e. SRing /\ ( N e. NN0 /\ X e. B /\ Y e. B ) ) ->
      ( ( N .x. X ) .X. Y ) = ( N .x. ( X .X. Y ) ) ) $=
      ( wcel co wceq wi wa cc0 oveq1 oveq1d eqeq12d adantl vx vy cn0 csrg cv c1
      w3a caddc imbi2d weq c0g cfv simpr adantr srglz syl2anc simpl mulg0 srgcl
      eqid syl syl3anc 3eqtr4d cplusg srgmnd mulgnn0p1 mulgnn0cl syl13anc eqtrd
      cmnd srgdir 3expb ancoms eqcomd sylan9eqr exp31 nn0ind expd 3impib impcom
      a2d ) EUCKZFAKZGAKZUGBUDKZEFCLZGDLZEFGDLZCLZMZWBWCWDWEWJNWBWCWDOZWEWJWKWE
      OZUAUEZFCLZGDLZWMWHCLZMZNWLPFCLZGDLZPWHCLZMZNWLUBUEZFCLZGDLZXBWHCLZMZNWLX
      BUFUHLZFCLZGDLZXGWHCLZMZNWLWJNUAUBEWMPMZWQXAWLXLWOWSWPWTXLWNWRGDWMPFCQRWM
      PWHCQSUIUAUBUJZWQXFWLXMWOXDWPXEXMWNXCGDWMXBFCQRWMXBWHCQSUIWMXGMZWQXKWLXNW
      OXIWPXJXNWNXHGDWMXGFCQRWMXGWHCQSUIWMEMZWQWJWLXOWOWGWPWIXOWNWFGDWMEFCQRWME
      WHCQSUIWLBUKULZGDLZXPWSWTWLWEWDXQXPMWKWEUMZWKWDWEWCWDUMUNZABDGXPHJXPUTZUO
      UPWLWRXPGDWLWCWRXPMWKWCWEWCWDUQUNZACBFXPHXTIURVARWLWHAKZWTXPMWLWEWCWDYBXR
      YAXSABDFGHJUSZVBACBWHXPHXTIURVAVCXBUCKZWLXFXKYDWLXFXKYDWLOZXFOXIXDWHBVDUL
      ZLZXJYEXIYGMXFYEXIXCFYFLZGDLZYGYEXHYHGDYEBVJKZYDWCXHYHMWLYJYDWEYJWKBVETTZ
      YDWLUQZWLWCYDYATZAYFCBXBFHIYFUTZVFVBRYEWEXCAKZWCWDYIYGMWLWEYDXRTYEYJYDWCY
      OYKYLYMACBXBFHIVGVBYMWLWDYDXSTAYFBDXCFGHYNJVKVHVIUNXFYEYGXEWHYFLZXJXDXEWH
      YFQYEXJYPYEYJYDYBXJYPMYKYLWLYBYDWEWKYBWEWCWDYBYCVLVMTAYFCBXBWHHIYNVFVBVNV
      OVIVPWAVQVRVSVT $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d K x $.  $d ph x y $.  $d .^ x y $.
    $d .X. x y $.
    srgpcomp.s $e |- S = ( Base ` R ) $.
    srgpcomp.m $e |- .X. = ( .r ` R ) $.
    srgpcomp.g $e |- G = ( mulGrp ` R ) $.
    srgpcomp.e $e |- .^ = ( .g ` G ) $.
    srgpcomp.r $e |- ( ph -> R e. SRing ) $.
    srgpcomp.a $e |- ( ph -> A e. S ) $.
    srgpcomp.b $e |- ( ph -> B e. S ) $.
    srgpcomp.k $e |- ( ph -> K e. NN0 ) $.
    srgpcomp.c $e |- ( ph -> ( A .X. B ) = ( B .X. A ) ) $.
    $( If two elements of a semiring commute, they also commute if one of the
       elements is raised to a higher power.  (Contributed by AV,
       23-Aug-2019.) $)
    srgpcomp $p |- ( ph -> ( ( K .^ B ) .X. A ) = ( A .X. ( K .^ B ) ) ) $=
      ( co wceq vx vy cn0 cv wi cc0 c1 caddc oveq1 oveq1d oveq2d eqeq12d imbi2d
      wcel weq cur cfv mgpbas eqid ringidval mulg0 csrg srgridm syl2anc srglidm
      syl 3eqtr4rd eqtrd wa cmnd srgmgp adantr simpr mgpplusg mulgnn0p1 syl3anc
      eqcomd mulgnn0cl srgass syl13anc 3eqtr4d sylan9eqr ex expcom nn0ind mpcom
      a2d ) IUCUNAICGSZBFSZBWHFSZTZQAUAUDZCGSZBFSZBWMFSZTZUEAUFCGSZBFSZBWQFSZTZ
      UEAUBUDZCGSZBFSZBXBFSZTZUEAXAUGUHSZCGSZBFSZBXGFSZTZUEAWKUEUAUBIWLUFTZWPWT
      AXKWNWRWOWSXKWMWQBFWLUFCGUIZUJXKWMWQBFXLUKULUMUAUBUOZWPXEAXMWNXCWOXDXMWMX
      BBFWLXACGUIZUJXMWMXBBFXNUKULUMWLXFTZWPXJAXOWNXHWOXIXOWMXGBFWLXFCGUIZUJXOW
      MXGBFXPUKULUMWLITZWPWKAXQWNWIWOWJXQWMWHBFWLICGUIZUJXQWMWHBFXRUKULUMAWRDUP
      UQZBFSZWSAWQXSBFACEUNZWQXSTPEGHCXSEDHLJURZDXSHLXSUSZUTMVAVFZUJABXSFSZBWSX
      TADVBUNZBEUNZYEBTNOEDFXSBJKYCVCVDAWQXSBFYDUKAYFYGXTBTNOEDFXSBJKYCVEVDVGVH
      XAUCUNZAXEXJAYHXEXJUEAYHVIZXEXJYIXEVIXHXCCFSZXIYIXHYJTXEYIXHXBCFSZBFSZYJY
      IXGYKBFYIHVJUNZYHYAXGYKTAYMYHAYFYMNDHLVKVFVLZAYHVMZAYAYHPVLZEFGHXACYBMDFH
      LKVNVOVPZUJYIXBCBFSZFSZXBBCFSZFSZYLYJYIYRYTXBFAYRYTTYHAYTYRRVQVLUKYIYFXBE
      UNZYAYGYLYSTAYFYHNVLZYIYMYHYAUUBYNYOYPEGHXACYBMVRVPZYPAYGYHOVLZEDFXBCBJKV
      SVTYIYFUUBYGYAYJUUATUUCUUDUUEYPEDFXBBCJKVSVTWAVHVLXEYIYJXDCFSZXIXCXDCFUIY
      IUUFBYKFSZXIYIYFYGUUBYAUUFUUGTUUCUUEUUDYPEDFBXBCJKVSVTYIYKXGBFYIXGYKYQVQU
      KVHWBVHWCWDWGWEWF $.

    srgpcompp.n $e |- ( ph -> N e. NN0 ) $.
    $( If two elements of a semiring commute, they also commute if the elements
       are raised to a higher power.  (Contributed by AV, 23-Aug-2019.) $)
    srgpcompp $p |- ( ph -> ( ( ( N .^ A ) .X. ( K .^ B ) ) .X. A )
                            = ( ( ( N + 1 ) .^ A ) .X. ( K .^ B ) ) ) $=
      ( co c1 caddc csrg wcel wceq cmnd cn0 srgmgp syl mgpbas mulgnn0cl syl3anc
      srgass syl13anc srgpcomp oveq2d eqtr4d mgpplusg mulgnn0p1 eqcomd oveq1d
      3eqtrd ) AJBGUAZICGUAZFUABFUAZVDVEBFUAZFUAZVDBFUAZVEFUAZJUBUCUABGUAZVEFUA
      ADUDUEZVDEUEZVEEUEZBEUEZVFVHUFOAHUGUEZJUHUEZVOVMAVLVPODHMUIUJZTPEGHJBEDHM
      KUKZNULUMZAVPIUHUECEUEVNVRRQEGHICVSNULUMZPEDFVDVEBKLUNUOAVHVDBVEFUAZFUAZV
      JAVGWBVDFABCDEFGHIKLMNOPQRSUPUQAVLVMVOVNVJWCUFOVTPWAEDFVDBVEKLUNUOURAVIVK
      VEFAVKVIAVPVQVOVKVIUFVRTPEFGHJBVSNDFHMLUSUTUMVAVBVC $.

    srgpcomppsc.t $e |- .x. = ( .g ` R ) $.
    srgpcomppsc.c $e |- ( ph -> C e. NN0 ) $.
    $( If two elements of a semiring commute, they also commute if the elements
       are raised to a higher power and a scalar multiplication is involved.
       (Contributed by AV, 23-Aug-2019.) $)
    srgpcomppsc $p |- ( ph -> ( ( C .x. ( ( N .^ A ) .X. ( K .^ B ) ) ) .X. A )
                         = ( C .x. ( ( ( N + 1 ) .^ A ) .X. ( K .^ B ) ) ) ) $=
      ( co c1 caddc csrg wcel cn0 wceq cmnd srgmgp syl mgpbas mulgnn0cl syl3anc
      w3a wa srgmulgass eqcomd syl13anc oveq1d srgmnd srgass eqtrd srgcl oveq2d
      srgpcompp 3eqtrd ) ADLBIUEZKCIUEZHUEZGUEZBHUEZDVKGUEZVLBHUEZHUEZDVMBHUEZG
      UEZDLUFUGUEBIUEVLHUEZGUEAVOVPVLHUEZBHUEZVRAVNWBBHAEUHUIZDUJUIZVKFUIZVLFUI
      ZVNWBUKQUDAJULUIZLUJUIBFUIZWFAWDWHQEJOUMUNZUBRFIJLBFEJOMUOZPUPUQZAWHKUJUI
      CFUIWGWJTSFIJKCWKPUPUQZWDWEWFWGURUSWBVNFEGHDVKVLMUCNUTVAVBVCAWDVPFUIZWGWI
      WCVRUKQAEULUIZWEWFWNAWDWOQEVDUNUDWLFGEDVKMUCUPUQWMRFEHVPVLBMNVEVBVFAVRDVK
      VQHUEZGUEZVTAWDWEWFVQFUIZVRWQUKQUDWLAWDWGWIWRQWMRFEHVLBMNVGUQFEGHDVKVQMUC
      NUTVBAWPVSDGAVSWPAWDWFWGWIVSWPUKQWLWMRFEHVKVLBMNVEVBVAVHVFAVSWADGABCEFHIJ
      KLMNOPQRSTUAUBVIVHVJ $.
  $}

  ${
    $d a b x B $.  $d a b x R $.  $d a b x X $.  $d a b x .x. $.
    srglmhm.b $e |- B = ( Base ` R ) $.
    srglmhm.t $e |- .x. = ( .r ` R ) $.
    $( Left-multiplication in a semiring by a fixed element of the ring is a
       monoid homomorphism, analogous to ~ ringlghm .  (Contributed by AV,
       23-Aug-2019.) $)
    srglmhm $p |- ( ( R e. SRing /\ X e. B ) ->
      ( x e. B |-> ( X .x. x ) ) e. ( R MndHom R ) ) $=
      ( va vb wcel wa cv co cfv wceq wral eqid oveq2 ovex fvmpt csrg cplusg c0g
      cmnd cmpt wf w3a cmhm srgmnd jca adantr srgcl 3expa fmptd 3anass sylan2br
      srgdi anassrs srgacl 3expb adantlr syl oveqan12d adantl ralrimivva srg0cl
      3eqtr4d srgrz eqtrd 3jca ismhm sylanbrc ) CUAJZEBJZKZCUDJZVPKZBBABEALZDMZ
      UEZUFZHLZILZCUBNZMZVTNZWBVTNZWCVTNZWDMZOZIBPHBPZCUCNZVTNZWLOZUGVTCCUHMJVM
      VQVNVMVPVPCUIZWOUJUKVOWAWKWNVOABVSBVTVMVNVRBJVSBJBCDEVRFGULUMVTQZUNVOWJHI
      BBVOWBBJZWCBJZKZKZEWEDMZEWBDMZEWCDMZWDMZWFWIVMVNWSXAXDOZVNWSKVMVNWQWRUGXE
      VNWQWRUOBWDCDEWBWCFWDQZGUQUPURWTWEBJZWFXAOVMWSXGVNVMWQWRXGBWDCWBWCFXFUSUT
      VAAWEVSXABVTVRWEEDRWPEWEDSTVBWSWIXDOVOWQWRWGXBWHXCWDAWBVSXBBVTVRWBEDRWPEW
      BDSTAWCVSXCBVTVRWCEDRWPEWCDSTVCVDVGVEVOWMEWLDMZWLVOWLBJZWMXHOVMXIVNBCWLFW
      LQZVFUKAWLVSXHBVTVRWLEDRWPEWLDSTVBBCDEWLFGXJVHVIVJHIBBWDWDCCVTWLWLFFXFXFX
      JXJVKVL $.

    $( Right-multiplication in a semiring by a fixed element of the ring is a
       monoid homomorphism, analogous to ~ ringrghm .  (Contributed by AV,
       23-Aug-2019.) $)
    srgrmhm $p |- ( ( R e. SRing /\ X e. B )
                    -> ( x e. B |-> ( x .x. X ) ) e. ( R MndHom R ) ) $=
      ( va vb wcel wa cv co cfv wceq w3a eqid oveq1 ovex fvmpt csrg cmnd cplusg
      cmpt wf wral c0g srgmnd jca adantr srgcl 3com23 3expa fmptd 3anrot 3anass
      cmhm bitr3i srgdir sylan2br anassrs srgacl 3expb adantlr oveqan12d adantl
      syl 3eqtr4d ralrimivva srg0cl srglz eqtrd 3jca ismhm sylanbrc ) CUAJZEBJZ
      KZCUBJZVSKZBBABALZEDMZUDZUEZHLZILZCUCNZMZWCNZWEWCNZWFWCNZWGMZOZIBUFHBUFZC
      UGNZWCNZWOOZPWCCCUQMJVPVTVQVPVSVSCUHZWRUIUJVRWDWNWQVRABWBBWCVPVQWABJZWBBJ
      ZVPWSVQWTBCDWAEFGUKULUMWCQZUNVRWMHIBBVRWEBJZWFBJZKZKZWHEDMZWEEDMZWFEDMZWG
      MZWIWLVPVQXDXFXIOZVQXDKZVPXBXCVQPZXJXLVQXBXCPXKVQXBXCUOVQXBXCUPURBWGCDWEW
      FEFWGQZGUSUTVAXEWHBJZWIXFOVPXDXNVQVPXBXCXNBWGCWEWFFXMVBVCVDAWHWBXFBWCWAWH
      EDRXAWHEDSTVGXDWLXIOVRXBXCWJXGWKXHWGAWEWBXGBWCWAWEEDRXAWEEDSTAWFWBXHBWCWA
      WFEDRXAWFEDSTVEVFVHVIVRWPWOEDMZWOVRWOBJZWPXOOVPXPVQBCWOFWOQZVJUJAWOWBXOBW
      CWAWOEDRXAWOEDSTVGBCDEWOFGXQVKVLVMHIBBWGWGCCWCWOWOFFXMXMXQXQVNVO $.
  $}

  ${
    $d k x A $.  $d k x B $.  $d k ph $.  $d k x .x. $.  $d x R $.  $d x X $.
    $d k x Y $.
    srgsummulcr.b $e |- B = ( Base ` R ) $.
    srgsummulcr.z $e |- .0. = ( 0g ` R ) $.
    srgsummulcr.p $e |- .+ = ( +g ` R ) $.
    srgsummulcr.t $e |- .x. = ( .r ` R ) $.
    srgsummulcr.r $e |- ( ph -> R e. SRing ) $.
    srgsummulcr.a $e |- ( ph -> A e. V ) $.
    srgsummulcr.y $e |- ( ph -> Y e. B ) $.
    srgsummulcr.x $e |- ( ( ph /\ k e. A ) -> X e. B ) $.
    srgsummulcr.n $e |- ( ph -> ( k e. A |-> X ) finSupp .0. ) $.
    $( A finite semiring sum multiplied by a constant, analogous to
       ~ gsummulc1 .  (Contributed by AV, 23-Aug-2019.) $)
    srgsummulcr $p |- ( ph -> ( R gsum ( k e. A |-> ( X .x. Y ) ) ) =
      ( ( R gsum ( k e. A |-> X ) ) .x. Y ) ) $=
      ( vx cmpt cgsu csrg wcel ccmn srgcmn syl cmnd srgmnd cmhm srgrmhm syl2anc
      cv co oveq1 gsummhm2 ) AUABCUAUNZJFUOZIJFUOGEGBIUBUCUOZJFUOEEHIKLMAEUDUEZ
      EUFUEPEUGUHAVAEUIUEPEUJUHQAVAJCUEUACUSUBEEUKUOUEPRUACEFJLOULUMSTURIJFUPUR
      UTJFUPUQ $.

    $( A finite semiring sum multiplied by a constant, analogous to
       ~ gsummulc2 .  (Contributed by AV, 23-Aug-2019.) $)
    sgsummulcl $p |- ( ph -> ( R gsum ( k e. A |-> ( Y .x. X ) ) ) =
      ( Y .x. ( R gsum ( k e. A |-> X ) ) ) ) $=
      ( vx cmpt cgsu csrg wcel ccmn srgcmn syl cmnd srgmnd cmhm srglmhm syl2anc
      cv co oveq2 gsummhm2 ) AUABCJUAUNZFUOZJIFUOGJEGBIUBUCUOZFUOEEHIKLMAEUDUEZ
      EUFUEPEUGUHAVAEUIUEPEUJUHQAVAJCUEUACUSUBEEUKUOUEPRUACEFJLOULUMSTURIJFUPUR
      UTJFUPUQ $.
  $}

  ${
    srg1expzeq1.g $e |- G = ( mulGrp ` R ) $.
    srg1expzeq1.t $e |- .x. = ( .g ` G ) $.
    srg1expzeq1.1 $e |- .1. = ( 1r ` R ) $.
    $( The exponentiation (by a nonnegative integer) of the unity element of a
       (semi)ring, analogous to ~ mulgnn0z .  (Contributed by AV,
       25-Nov-2019.) $)
    srg1expzeq1 $p |- ( ( R e. SRing /\ N e. NN0 ) -> ( N .x. .1. ) = .1. ) $=
      ( csrg wcel cmnd cn0 co wceq srgmgp cbs cfv eqid ringidval mulgnn0z sylan
      ) AIJDKJELJECBMCNADFODPQZBDECUBRGACDFHSTUA $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The binomial theorem for semirings
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
In this section, we prove the binomial theorem for semirings, ~ srgbinom ,
which is a generalization of the binomial theorem for complex numbers,
~ binom : ` ( A + B ) ^ N ` is the sum from ` k = 0 ` to ` N ` of
` ( N _C k ) x. ( ( A ^ k ) x. ( B ^ ( N - k ) ) `.

Notice that the binomial theorem would also hold in the non-unital case (that
is, in a "rg") and actually, the additive unit is not needed in its proof
either.  Therefore, it could be proven for even more general cases.  An example
would be the integrable nonnegative (resp. positive) bounded functions on
` RR `.

Special cases of the binomial theorem are ~ csrgbinom (binomial theorem for
commutative semirings) and ~ crngbinom (binomial theorem for commutative
rings).
$)

  ${
    srgbinom.s $e |- S = ( Base ` R ) $.
    srgbinom.m $e |- .X. = ( .r ` R ) $.
    srgbinom.t $e |- .x. = ( .g ` R ) $.
    srgbinom.a $e |- .+ = ( +g ` R ) $.
    srgbinom.g $e |- G = ( mulGrp ` R ) $.
    srgbinom.e $e |- .^ = ( .g ` G ) $.
    ${
      srgbinomlem.r $e |- ( ph -> R e. SRing ) $.
      srgbinomlem.a $e |- ( ph -> A e. S ) $.
      srgbinomlem.b $e |- ( ph -> B e. S ) $.
      srgbinomlem.c $e |- ( ph -> ( A .X. B ) = ( B .X. A ) ) $.
      srgbinomlem.n $e |- ( ph -> N e. NN0 ) $.
      $( Lemma 1 for ~ srgbinomlem .  (Contributed by AV, 23-Aug-2019.) $)
      srgbinomlem1 $p |- ( ( ph /\ ( D e. NN0 /\ E e. NN0 ) )
                            -> ( ( D .^ A ) .X. ( E .^ B ) ) e. S ) $=
        ( cn0 wcel wa csrg co adantr srgmgp syl simprl mgpbas mulgnn0cl syl3anc
        cmnd simprr srgcl ) ADUEUFZJUEUFZUGZUGZFUHUFZDBKUIZGUFZJCKUIZGUFZVEVGIU
        IGUFAVDVBTUJVCLUQUFZUTBGUFZVFAVIVBAVDVITFLRUKULUJZAUTVAUMAVJVBUAUJGKLDB
        GFLRNUNZSUOUPVCVIVACGUFZVHVKAUTVAURAVMVBUBUJGKLJCVLSUOUPGFIVEVGNOUSUP
        $.

      $( Lemma 2 for ~ srgbinomlem .  (Contributed by AV, 23-Aug-2019.) $)
      srgbinomlem2 $p |- ( ( ph /\ ( C e. NN0 /\ D e. NN0 /\ E e. NN0 ) )
                           -> ( C .x. ( ( D .^ A ) .X. ( E .^ B ) ) ) e. S ) $=
        ( cn0 wcel w3a cmnd csrg srgmnd syl adantr simpr1 srgbinomlem1 3adantr1
        wa co mulgnn0cl syl3anc ) ADUFUGZEUFUGZKUFUGZUHZUQGUIUGZVAEBLURKCLURJUR
        ZHUGZDVFIURHUGAVEVDAGUJUGVEUAGUKULUMAVAVBVCUNAVBVCVGVAABCEFGHIJKLMNOPQR
        STUAUBUCUDUEUOUPHIGDVFOQUSUT $.

      $d A k $.  $d B k $.  $d N k $.  $d R k $.  $d S k $.  $d .x. k $.
      $d .X. k $.  $d .^ k $.  $d ph k $.
      srgbinomlem.i $e |- ( ps -> ( N .^ ( A .+ B ) )
                        = ( R gsum ( k e. ( 0 ... N ) |-> ( ( N _C k )
                           .x. ( ( ( N - k ) .^ A ) .X. ( k .^ B ) ) ) ) ) ) $.
      $( Lemma 3 for ~ srgbinomlem .  (Contributed by AV, 23-Aug-2019.)  (Proof
         shortened by AV, 27-Oct-2019.) $)
      srgbinomlem3 $p |- ( ( ph /\ ps ) -> ( ( N .^ ( A .+ B ) ) .X. A )
                = ( R gsum ( k e. ( 0 ... ( N + 1 ) )
                             |-> ( ( N _C k ) .x. ( ( ( ( N + 1 ) - k ) .^ A )
                                                    .X. ( k .^ B ) ) ) ) ) ) $=
        ( wa co cc0 cfz cv cbc cmin cmpt cgsu c1 wceq adantl oveq1d csn c0g cfv
        caddc csrg wcel ccmn srgcmn syl cn0 simpl elfzelz bccl fznn0sub elfznn0
        cz syl2an srgbinomlem2 syl13anc gsummptfzsplit cmnd cvv srgmnd ovexd id
        nn0zd peano2zd syl2anc cc nn0cnd peano2cn 0nn0 syl6eqel peano2nn0 oveq2
        subidd oveq1 oveq12d gsumsn syl3anc clt wbr wo nn0red ltp1d olcd bcval4
        srgbinomlem1 syl12anc mulg0 3eqtrd oveq2d fzfid nnnn0d fzelp1 ralrimiva
        eqid bccl2 sylan2 gsummptcl mndrid adantr srgpcomppsc 1cnd zcnd addsubd
        eqtr4d mpteq2dva fvexd fsuppmptdm srgsummulcr 3eqtr2rd eqtrd ) ABUFZMCD
        EUGKUGZCIUGFJUHMUIUGZMJUJZUKUGZMYOULUGZCKUGYODKUGZIUGZHUGZUMZUNUGZCIUGZ
        FJUHMUOVBUGZUIUGZYPUUDYOULUGZCKUGZYRIUGZHUGZUMUNUGZYLYMUUBCIBYMUUBUPAUE
        UQURAUUCUUJUPBAUUJFJYNUUIUMZUNUGZFJYNYTCIUGZUMZUNUGUUCAUUJUULFJUUDUSUUI
        UMUNUGZEUGUULFUTVAZEUGZUULAGEJFMUUINQAFVCVDZFVEVDTFVFVGZUDAYOUUEVDZUFAY
        PVHVDZUUFVHVDZYOVHVDZUUIGVDZAUUTVIAMVHVDZYOVNVDUVAUUTUDYOUHUUDVJYOMVKVO
        UUTUVBAYOUHUUDVLUQZUUTUVCAYOUUDVMUQACDYPUUFEFGHIYOKLMNOPQRSTUAUBUCUDVPZ
        VQVRAUUOUUPUULEAUUOMUUDUKUGZUUDUUDULUGZCKUGZUUDDKUGZIUGZHUGZUHUVLHUGZUU
        PAFVSVDZUUDVTVDUVMGVDZUUOUVMUPAUURUVOTFWAVGZAMUOVBWBAAUVHVHVDZUVIVHVDZU
        UDVHVDZUVPAWCZAUVEUUDVNVDZUVRUDAMAMUDWDWEZUUDMVKWFAUVIUHVHAUUDAMWGVDZUU
        DWGVDAMUDWHZMWIVGWNWJWKZAUVEUVTUDMWLVGZACDUVHUVIEFGHIUUDKLMNOPQRSTUAUBU
        CUDVPVQUUIGUVMJFUUDVTNYOUUDUPZYPUVHUUHUVLHYOUUDMUKWMUWHUUGUVJYRUVKIUWHU
        UFUVICKYOUUDUUDULWMURYOUUDDKWOWPWPWQWRAUVHUHUVLHAUVEUWBUUDUHWSWTZMUUDWS
        WTZXAUVHUHUPUDUWCAUWJUWIAMAMUDXBXCXDUUDMXEWRURAUVLGVDZUVNUUPUPAAUVSUVTU
        WKUWAUWFUWGACDUVIEFGHIUUDKLMNOPQRSTUAUBUCUDXFXGGHFUVLUUPNUUPXOZPXHVGXIX
        JAUVOUULGVDUUQUULUPUVQAGJFYNUUINUUSAUHMXKZAUVDJYNAYOYNVDZUFZAUVAUVBUVCU
        VDAUWNVIZUWNUVAAUWNYPYOMXPXLUQZUWNAUUTUVBYOUHMXMUVFXQUWNUVCAYOMVMUQZUVG
        VQXNXRGEFUULUUPNQUWLXSWFXIAUUNUUKFUNAJYNUUMUUIUWOUUMYPYQUOVBUGZCKUGZYRI
        UGZHUGUUIUWOCDYPFGHIKLYOYQNORSAUURUWNTXTACGVDUWNUAXTADGVDUWNUBXTUWRACDI
        UGDCIUGUPUWNUCXTUWNYQVHVDZAYOUHMVLUQZPUWQYAUWOUUHUXAYPHUWOUUGUWTYRIUWOU
        UFUWSCKUWOMUOYOAUWDUWNUWEXTUWOYBUWNYOWGVDAUWNYOYOUHMVJYCUQYDURURXJYEYFX
        JAYNGEFIJVTYTCUUPNUWLQOTAUHMUIWBUAUWOAUVAUXBUVCYTGVDUWPUWQUXCUWRACDYPYQ
        EFGHIYOKLMNOPQRSTUAUBUCUDVPVQAJYNUUAVTVTYTUUPUUAXOUWMUWOYPYSHWBAFUTYGYH
        YIYJXTYK $.

      $d A j k $.  $d B j $.  $d N j $.  $d R j $.  $d S j $.  $d .x. j $.
      $d .X. j $.  $d .^ j $.  $d ph j $.
      $( Lemma 4 for ~ srgbinomlem .  (Contributed by AV, 24-Aug-2019.)  (Proof
         shortened by AV, 19-Nov-2019.) $)
      srgbinomlem4 $p |- ( ( ph /\ ps ) -> ( ( N .^ ( A .+ B ) ) .X. B )
       = ( R gsum ( k e. ( 0 ... ( N + 1 ) )
                    |-> ( ( N _C ( k - 1 ) ) .x. ( ( ( ( N + 1 ) - k ) .^ A )
                                                   .X. ( k .^ B ) ) ) ) ) ) $=
        ( vj co cc0 cfz cv cbc cmin cmpt cgsu c1 caddc oveq1d cvv c0g cfv ovexd
        eqid wcel wa cn0 simpl elfzelz bccl syl2an fznn0sub adantl srgbinomlem2
        cz elfznn0 syl13anc fzfid fvexd fsuppmptdm srgsummulcr csrg ccmn srgcmn
        syl 1z a1i 0zd nn0zd srgcl syl3anc wceq oveq2 oveq1 oveq12d gsummptshft
        adantr cc nn0cnd zcnd 1cnd subsub3d oveq2d peano2zm srgmgp 0p1e1 oveq1i
        cmnd eleq2i wi syl5bi imp mgpbas mulgnn0cl cn elfznn nnm1nn0 srgmulgass
        sylbi eqcomd srgmnd srgass w3a mulgnn0p1 npcand 3eqtrd mpteq2dva mpteq1
        mgpplusg ax-mp cbvmptv eqtri gsummptcl syl2anc 0nn0 mp1i clt wbr cr 0re
        wb eqtr3d oveq2i csn nnnn0d ralrimiva mndlid id 0z pm3.2i nn0cn subid1d
        zsubcl peano2cn peano2nn0 eqeltrd gsumsn wo 0lt1 syl6breqr 1re ltsubadd
        3pm3.2i mpbird orcd bcval4 3eqtrrd gsummptfzsplitl cfn snfi wral eleq1d
        mulg0 ralsng sylibr cmncom eqtrd 3eqtr4d syl5eq sylan9eqr ) BAMCDEUGKUG
        ZDIUGFJUHMUIUGZMJUJZUKUGZMUWAULUGZCKUGZUWADKUGZIUGZHUGZUMZUNUGZDIUGZFJU
        HMUOUPUGZUIUGZMUWAUOULUGZUKUGZUWKUWAULUGZCKUGZUWEIUGZHUGZUMUNUGZBUVSUWI
        DIUEUQAFJUVTUWGDIUGZUMUNUGZUWJUWSAUVTGEFIJURUWGDFUSUTZNUXBVBZQOTAUHMUIV
        AUBAUWAUVTVCZVDZAUWBVEVCZUWCVEVCZUWAVEVCZUWGGVCZAUXDVFAMVEVCZUWAVMVCZUX
        FUXDUDUWAUHMVGUWAMVHVIUXDUXGAUWAUHMVJVKUXDUXHAUWAMVNVKACDUWBUWCEFGHIUWA
        KLMNOPQRSTUAUBUCUDVLVOZAJUVTUWHURURUWGUXBUWHVBAUHMVPUXEUWBUWFHVAAFUSVQV
        RVSAUXAFUFUHUOUPUGZUWKUIUGZMUFUJZUOULUGZUKUGZMUXPULUGZCKUGZUXPDKUGZIUGZ
        HUGZDIUGZUMZUNUGFUFUXNUXQUWKUXOULUGZCKUGZHUGZUXODKUGZIUGZUMZUNUGZUWSAUW
        TGUYCJUFFUOUHMUXBNUXCAFVTVCZFWAVCZTFWBWCZUOVMVCZAWDWEAWFAMUDWGUXEUYLUXI
        DGVCZUWTGVCAUYLUXDTWOUXLAUYPUXDUBWOGFIUWGDNOWHWIUWAUXPWJZUWGUYBDIUYQUWB
        UXQUWFUYAHUWAUXPMUKWKUYQUWDUXSUWEUXTIUYQUWCUXRCKUWAUXPMULWKUQUWAUXPDKWL
        WMWMUQWNAUYDUYJFUNAUFUXNUYCUYIAUXOUXNVCZVDZUYCUXQUYFUXTIUGZHUGZDIUGUYGU
        XTIUGZDIUGZUYIUYSUYBVUADIUYSUYAUYTUXQHUYSUXSUYFUXTIUYSUXRUYECKUYSMUXOUO
        AMWPVCZUYRAMUDWQWOUYSUXOUYRUXOVMVCZAUXOUXMUWKVGZVKWRUYSWSWTUQUQXAUQUYSV
        UAVUBDIUYSVUBVUAUYSUYLUXQVEVCZUYFGVCZUXTGVCZVUBVUAWJAUYLUYRTWOZAUXJUXPV
        MVCZVUGUYRUDUYRVUEVUKVUFUXOXBWCUXPMVHVIZUYSLXFVCZUYEVEVCZCGVCZVUHAVUMUY
        RAUYLVUMTFLRXCWCZWOZAUYRVUNUYRUXOUOUWKUIUGZVCZAVUNUXNVURUXOUXMUOUWKUIXD
        XEZXGZVUSVUNXHAUXOUOUWKVJWEXIXJAVUOUYRUAWOGKLUYECGFLRNXKZSXLWIZUYSVUMUX
        PVEVCZUYPVUIVUQUYRVVDAUYRVUSVVDVVAVUSUXOXMVCVVDUXOUWKXNUXOXOWCXQVKZAUYP
        UYRUBWOZGKLUXPDVVBSXLWIZGFHIUXQUYFUXTNPOXPVOXRUQUYSVUCUYGUXTDIUGZIUGZUY
        GUXPUOUPUGZDKUGZIUGUYIUYSUYLUYGGVCZVUIUYPVUCVVIWJVUJUYSFXFVCZVUGVUHVVLA
        VVMUYRAUYLVVMTFXSWCZWOVULVVCGHFUXQUYFNPXLWIVVGVVFGFIUYGUXTDNOXTVOUYSVVH
        VVKUYGIUYSVUMVVDUYPVVHVVKWJVUQVVEVVFVUMVVDUYPYAVVKVVHGIKLUXPDVVBSFILROY
        GYBXRWIXAUYSVVKUYHUYGIUYSVVJUXODKUYRVVJUXOWJAUYRUXOUOUYRUXOVUFWRUYRWSYC
        VKUQXAYDYDYEXAAUYKFJVURUWNUWPHUGZUWEIUGZUMZUNUGZUWSUYJVVQFUNUYJUFVURUYI
        UMZVVQUXNVURWJUYJVVSWJVUTUFUXNVURUYIYFYHUFJVURUYIVVPUXOUWAWJZUYGVVOUYHU
        WEIVVTUXQUWNUYFUWPHVVTUXPUWMMUKUXOUWAUOULWLXAVVTUYEUWOCKUXOUWAUWKULWKUQ
        WMUXOUWADKWLWMYIYJUUAAFJVURUWRUMZUNUGZFJUHUUBZUWRUMUNUGZVWBEUGZVVRUWSAU
        XBVWBEUGZVWBVWEAVVMVWBGVCZVWFVWBWJVVNAGJFVURUWRNUYNAUOUWKVPAUWRGVCZJVUR
        AUWAVURVCZVDZAUWNVEVCZUWOVEVCZUXHVWHAVWIVFAUXJUWMVMVCZVWKVWIUDVWIUXKVWM
        UWAUOUWKVGUWAXBZWCUWMMVHZVIZVWIVWLAUWAUOUWKVJVKZVWIUXHAVWIUWAUWAUWKXNUU
        CVKZACDUWNUWOEFGHIUWAKLMNOPQRSTUAUBUCUDVLZVOUUDYKZGEFVWBUXBNQUXCUUEYLAU
        XBVWDVWBEAVWDMUHUOULUGZUKUGZUWKUHULUGZCKUGZUHDKUGZIUGZHUGZUHVXFHUGZUXBA
        VVMUHVEVCZVXGGVCZVWDVXGWJVVNVXIAYMWEZAAVXBVEVCZVXCVEVCZVXIVXJAUUFAUXJVX
        AVMVCZVXLUDUHVMVCZUYOVDVXNAVXOUYOUUGWDUUHUHUOUUKYNZVXAMVHYLAUXJVXMUDUXJ
        VXCUWKVEUXJUWKUXJVUDUWKWPVCMUUIMUULWCUUJMUUMZUUNWCZVXKACDVXBVXCEFGHIUHK
        LMNOPQRSTUAUBUCUDVLVOZUWRGVXGJFUHVENUWAUHWJZUWNVXBUWQVXFHVXTUWMVXAMUKUW
        AUHUOULWLXAVXTUWPVXDUWEVXEIVXTUWOVXCCKUWAUHUWKULWKUQUWAUHDKWLWMWMZUUOWI
        AVXBUHVXFHAUXJVXNVXAUHYOYPZMVXAYOYPZUUPVXBUHWJUDVXPAVYBVYCAVYBUHUXMYOYP
        ZAUHUOUXMYOUHUOYOYPAUUQWEXDUURUHYQVCZUOYQVCZVYEYAVYBVYDYSAVYEVYFVYEYRUU
        SYRUVAUHUOUHUUTYNUVBUVCVXAMUVDWIUQAVXFGVCZVXHUXBWJAUYLVXDGVCZVXEGVCZVYG
        TAVUMVXMVUOVYHVUPVXRUAGKLVXCCVVBSXLWIAVUMVXIUYPVYIVUPVXKUBGKLUHDVVBSXLW
        IGFIVXDVXENOWHWIGHFVXFUXBNUXCPUVKWCUVEUQYTAVVQVWAFUNAJVURVVPUWRVWJUYLVW
        KUWPGVCZUWEGVCZVVPUWRWJAUYLVWITWOVWPVWJVUMVWLVUOVYJAVUMVWIVUPWOZVWQAVUO
        VWIUAWOGKLUWOCVVBSXLWIVWJVUMUXHUYPVYKVYLVWRAUYPVWIUBWOGKLUWADVVBSXLWIGF
        HIUWNUWPUWENPOXPVOYEXAAUWSVWBVWDEUGZVWEAGEJFUWKUWRNQUYNAUXJUWKVEVCUDVXQ
        WCAUWAUWLVCZVDAVWKVWLUXHVWHAVYNVFAUXJVWMVWKVYNUDVYNUXKVWMUWAUHUWKVGVWNW
        CVWOVIVYNVWLAUWAUHUWKVJVKVYNUXHAUWAUWKVNVKVWSVOUVFAUYMVWGVWDGVCVYMVWEWJ
        UYNVWTAGJFVWCUWRNUYNVWCUVGVCAUHUVHWEAVXJVWHJVWCUVIZVXSVXIVYOVXJYSYMVWHV
        XJJUHVEVXTUWRVXGGVYAUVJUVLYHUVMYKGEFVWBVWDNQUVNWIUVOUVPUVQYDYTUVR $.

      $d .+ k $.
      $( Lemma for ~ srgbinom .  Inductive step, analogous to ~ binomlem .
         (Contributed by AV, 24-Aug-2019.) $)
      srgbinomlem $p |- ( ( ph /\ ps ) -> ( ( N + 1 ) .^ ( A .+ B ) ) =
                   ( R gsum ( k e. ( 0 ... ( N + 1 ) ) |-> ( ( ( N + 1 ) _C k )
                   .x. ( ( ( ( N + 1 ) - k ) .^ A ) .X. ( k .^ B ) ) ) ) ) ) $=
        ( wa co cc0 c1 caddc cfz cv cmin cmpt srgbinomlem3 srgbinomlem4 oveq12d
        cbc cgsu cmnd wcel cn0 w3a wceq csrg srgmgp srgmnd mndcl syl3anc adantr
        syl 3jca mgpbas mgpplusg mulgnn0p1 mulgnn0cl jca srgdi eqtrd cz elfzelz
        bcpasc syl2an oveq1d peano2zm syl2anc fznn0sub elfznn0 srgcl mulgnn0dir
        bccl adantl syl13anc eqtr3d mpteq2dva oveq2d ccmn srgcmn gsummptfidmadd
        fzfid eqid 3eqtr4d ) ABUFZMCDEUGZKUGZCIUGZXEDIUGZEUGZFJUHMUIUJUGZUKUGZM
        JULZURUGZXIXKUMUGZCKUGZXKDKUGZIUGZHUGZUNZUSUGZFJXJMXKUIUMUGZURUGZXPHUGZ
        UNZUSUGZEUGZXIXDKUGZFJXJXIXKURUGZXPHUGZUNZUSUGZXCXFXSXGYDEABCDEFGHIJKLM
        NOPQRSTUAUBUCUDUEUOABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUPUQXCYFXEXDIUGZXHXCLU
        TVAZMVBVAZXDGVAZVCZYFYKVDAYOBAYLYMYNAFVEVAZYLTFLRVFVKZUDAFUTVAZCGVAZDGV
        AZYNAYPYRTFVGVKZUAUBGEFCDNQVHVIZVLVJGIKLMXDGFLRNVMZSFILROVNVOVKXCYPXEGV
        AZYSYTVCZUFZYKXHVDAUUFBAYPUUETAUUDYSYTAYLYMYNUUDYQUDUUBGKLMXDUUCSVPVIUA
        UBVLVQVJGEFIXECDNQOVRVKVSAYJYEVDBAYJFJXJXQYBEUGZUNZUSUGYEAYIUUHFUSAJXJY
        HUUGAXKXJVAZUFZXLYAUJUGZXPHUGZYHUUGUUJUUKYGXPHAYMXKVTVAZUUKYGVDUUIUDXKU
        HXIWAZXKMWBWCWDUUJYRXLVBVAZYAVBVAZXPGVAZUULUUGVDAYRUUIUUAVJZAYMUUMUUOUU
        IUDUUNXKMWKWCZUUJYMXTVTVAZUUPAYMUUIUDVJUUJUUMUUTUUIUUMAUUNWLXKWEZVKXTMW
        KZWFUUJYPXNGVAZXOGVAZUUQAYPUUITVJUUJYLXMVBVAZYSUVCAYLUUIYQVJZUUIUVEAXKU
        HXIWGWLAYSUUIUAVJGKLXMCUUCSVPVIUUJYLXKVBVAZYTUVDUVFUUIUVGAXKXIWHWLAYTUU
        IUBVJGKLXKDUUCSVPVIGFIXNXONOWIVIZGEHFXLYAXPNPQWJWMWNWOWPAJXJGXQYBEXRFYC
        NQAYPFWQVATFWRVKAUHXIWTUUJYRUUOUUQXQGVAUURUUSUVHGHFXLXPNPVPVIUUJYRUUPUU
        QYBGVAUURAYMUUTUUPUUIUDUUIUUMUUTUUNUVAVKUVBWCUVHGHFYAXPNPVPVIXRXAYCXAWS
        VSVJXB $.
    $}

    $d A k n x $.  $d B k n x $.  $d N k n x $.  $d R k n x $.  $d S k n x $.
    $d .x. k n x $.  $d .^ k n x $.  $d .X. k n x $.  $d .+ k n x $.
    $( The binomial theorem for commuting elements of a semiring:
       ` ( A + B ) ^ N ` is the sum from ` k = 0 ` to ` N ` of
       ` ( N _C k ) x. ( ( A ^ k ) x. ( B ^ ( N - k ) ) ` (generalization of
       ~ binom ).  (Contributed by AV, 24-Aug-2019.) $)
    srgbinom $p |- ( ( ( R e. SRing /\ N e. NN0 )
                        /\ ( A e. S /\ B e. S /\ ( A .X. B ) = ( B .X. A ) ) )
                      -> ( N .^ ( A .+ B ) ) = ( R gsum ( k e. ( 0 ... N )
          |-> ( ( N _C k ) .x. ( ( ( N - k ) .^ A ) .X. ( k .^ B ) ) ) ) ) ) $=
      ( co wceq cc0 vx vn csrg wcel cn0 wa w3a cfz cv cbc cmin cmpt wi c1 caddc
      oveq1 oveq2 oveq1d oveq12d mpteq12dv oveq2d eqeq12d imbi2d c0g cfv simpr1
      cgsu cbs mgpbas syl6eleq eqid mulg0 syl simpr2 cur srgidcl adantr srglidm
      ancli mulg1 eqtrd wb ringidval id ax-mp sylib csn cz 0z fzsn mpteq1d cmnd
      a1i cvv srgmnd c0ex syl5eqelr eqeltrd 0nn0 bcn0 syl6eq 0m0e0 gsumsn mndcl
      syl3anc 3eqtr4rd simprl adantl simprr3 simpl srgbinomlem exp31 a2d nn0ind
      expd impcom imp ) DUCUDZKUEUDZUFAEUDZBEUDZABGRBAGRSZUGZKABCRZIRZDHTKUHRZK
      HUIZUJRZKYGUKRZAIRZYGBIRZGRZFRZULZVGRZSZXSXRYCYPUMXSXRYCYPXRYCUFZUAUIZYDI
      RZDHTYRUHRZYRYGUJRZYRYGUKRZAIRZYKGRZFRZULZVGRZSZUMYQTYDIRZDHTTUHRZTYGUJRZ
      TYGUKRZAIRZYKGRZFRZULZVGRZSZUMYQUBUIZYDIRZDHTUUSUHRZUUSYGUJRZUUSYGUKRZAIR
      ZYKGRZFRZULZVGRZSZUMYQUUSUNUORZYDIRZDHTUVJUHRZUVJYGUJRZUVJYGUKRZAIRZYKGRZ
      FRZULZVGRZSZUMYQYPUMUAUBKYRTSZUUHUURYQUWAYSUUIUUGUUQYRTYDIUPUWAUUFUUPDVGU
      WAHYTUUEUUJUUOYRTTUHUQUWAUUAUUKUUDUUNFYRTYGUJUPUWAUUCUUMYKGUWAUUBUULAIYRT
      YGUKUPURURUSUTVAVBVCYRUUSSZUUHUVIYQUWBYSUUTUUGUVHYRUUSYDIUPUWBUUFUVGDVGUW
      BHYTUUEUVAUVFYRUUSTUHUQUWBUUAUVBUUDUVEFYRUUSYGUJUPUWBUUCUVDYKGUWBUUBUVCAI
      YRUUSYGUKUPURURUSUTVAVBVCYRUVJSZUUHUVTYQUWCYSUVKUUGUVSYRUVJYDIUPUWCUUFUVR
      DVGUWCHYTUUEUVLUVQYRUVJTUHUQUWCUUAUVMUUDUVPFYRUVJYGUJUPUWCUUCUVOYKGUWCUUB
      UVNAIYRUVJYGUKUPURURUSUTVAVBVCYRKSZUUHYPYQUWDYSYEUUGYOYRKYDIUPUWDUUFYNDVG
      UWDHYTUUEYFYMYRKTUHUQUWDUUAYHUUDYLFYRKYGUJUPUWDUUCYJYKGUWDUUBYIAIYRKYGUKU
      PURURUSUTVAVBVCYQUNTAIRZTBIRZGRZFRZJVDVEZUUQUUIYQUWHUNUWIUWIGRZFRZUWIYQUW
      GUWJUNFYQUWEUWIUWFUWIGYQAJVHVEZUDUWEUWISYQAEUWLXRXTYAYBVFZEDJPLVIZVJUWLIJ
      AUWIUWLVKZUWIVKZQVLVMYQBUWLUDUWFUWISYQBEUWLXRXTYAYBVNZUWNVJUWLIJBUWIUWOUW
      PQVLVMUSVAYQUNDVOVEZUWRGRZFRZUWRSZUWKUWISZYQUWTUNUWRFRZUWRYQUWSUWRUNFYQXR
      UWREUDZUFZUWSUWRSXRUXEYCXRUXDEDUWRLUWRVKZVPZVSVQEDGUWRUWRLMUXFVRVMVAXRUXC
      UWRSZYCXRUWRDVHVEZUDUXHUXIDUWRUXIVKZUXFVPUXIFDUWRUXJNVTVMVQWAUWRUWISZUXAU
      XBWBDUWRJPUXFWCZUXKUWTUWKUWRUWIUXKUWSUWJUNFUXKUWRUWIUWRUWIGUXKWDZUXMUSVAU
      XMVBWEWFWAZYQUUQDHTWGZUUOULZVGRZUWHYQUUPUXPDVGYQHUUJUXOUUOUUJUXOSZYQTWHUD
      UXRWITWJWEWMWKVAYQDWLUDZTWNUDZUWHEUDUXQUWHSXRUXSYCDWOVQZUXTYQWPWMYQUWHUWI
      EUXNXRUWIEUDYCXRUWIUWREUXLUXGWQVQWRUUOEUWHHDTWNLYGTSZUUKUNUUNUWGFUYBUUKTT
      UJRZUNYGTTUJUQTUEUDUYCUNSWSTWTWEXAUYBUUMUWEYKUWFGUYBUULTAIUYBUULTTUKRTYGT
      TUKUQXBXAURYGTBIUPUSUSXCXEWAYQYDUWLUDUUIUWISYQYDEUWLYQUXSXTYAYDEUDUYAUWMU
      WQECDABLOXDXEUWNVJUWLIJYDUWIUWOUWPQVLVMXFUUSUEUDZYQUVIUVTUYDYQUVIUVTUYDYQ
      UFUVIABCDEFGHIJUUSLMNOPQUYDXRYCXGYQXTUYDUWMXHYQYAUYDUWQXHXTYAYBXRUYDXIUYD
      YQXJUVIWDXKXLXMXNXOXPXQ $.

    $( The binomial theorem for commutative semirings.  (Contributed by AV,
       24-Aug-2019.) $)
    csrgbinom $p |- ( ( ( R e. SRing /\ G e. CMnd /\ N e. NN0 )
                         /\ ( A e. S /\ B e. S ) )
                      -> ( N .^ ( A .+ B ) ) = ( R gsum ( k e. ( 0 ... N )
          |-> ( ( N _C k ) .x. ( ( ( N - k ) .^ A ) .X. ( k .^ B ) ) ) ) ) ) $=
      ( wcel wa co csrg ccmn cn0 w3a wceq cc0 cfz cbc cmin 3simpb adantr simprl
      cmpt cgsu simprr simpl2 mgpbas mgpplusg cmncom syl3anc srgbinom syl13anc
      cv ) DUARZJUBRZKUCRZUDZAERZBERZSZSZVDVFSZVHVIABGTBAGTUEZKABCTITDHUFKUGTKH
      VCZUHTKVNUITAITVNBITGTFTUMUNTUEVGVLVJVDVEVFUJUKVGVHVIULZVGVHVIUOZVKVEVHVI
      VMVDVEVFVJUPVOVPEGJABEDJPLUQDGJPMURUSUTABCDEFGHIJKLMNOPQVAVB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties of unital rings
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Ring $.
  $c CRing $.

  $( Extend class notation with class of all (unital) rings. $)
  crg $a class Ring $.

  $( Extend class notation with class of all (unital) commutative rings. $)
  ccrg $a class CRing $.

  ${
    $d f p r t x y z $.
    $( Define class of all (unital) rings.  A unital ring is a set equipped
       with two everywhere-defined internal operations, whose first one is an
       additive group structure and the second one is a multiplicative monoid
       structure, and where the addition is left- and right-distributive for
       the multiplication.  Definition 1 in [BourbakiAlg1] p. 92 or definition
       of a ring with identity in part Preliminaries of [Roman] p. 19.  So that
       the additive structure must be abelian (see ~ ringcom ), care must be
       taken that in the case of a non-unital ring, the commutativity of
       addition must be postulated and cannot be proved from the other
       conditions.  (Contributed by NM, 18-Oct-2012.)  (Revised by Mario
       Carneiro, 27-Dec-2014.) $)
    df-ring $a |- Ring = { f e. Grp | ( ( mulGrp ` f ) e. Mnd /\
        [. ( Base ` f ) / r ]. [. ( +g ` f ) / p ]. [. ( .r ` f ) / t ].
        A. x e. r A. y e. r A. z e. r
           ( ( x t ( y p z ) ) = ( ( x t y ) p ( x t z ) )
            /\ ( ( x p y ) t z ) = ( ( x t z ) p ( y t z ) ) ) ) } $.

    $( Define class of all commutative rings.  (Contributed by Mario Carneiro,
       7-Jan-2015.) $)
    df-cring $a |- CRing = { f e. Ring | ( mulGrp ` f ) e. CMnd } $.
  $}

  ${
    $d b p r t x y z B $.  $d b p r t x y z .+ $.  $d b p r t x y z R $.
    $d r G $.  $d b p r t x y z .x. $.
    isring.b $e |- B = ( Base ` R ) $.
    isring.g $e |- G = ( mulGrp ` R ) $.
    isring.p $e |- .+ = ( +g ` R ) $.
    isring.t $e |- .x. = ( .r ` R ) $.
    $( The predicate "is a (unital) ring."  Definition of ring with unit in
       [Schechter] p. 187.  (Contributed by NM, 18-Oct-2012.)  (Revised by
       Mario Carneiro, 6-Jan-2015.) $)
    isring $p |- ( R e. Ring <-> ( R e. Grp /\ G e. Mnd
      /\ A. x e. B A. y e. B A. z e. B
       ( ( x .x. ( y .+ z ) ) = ( ( x .x. y ) .+ ( x .x. z ) )
      /\ ( ( x .+ y ) .x. z ) = ( ( x .x. z ) .+ ( y .x. z ) ) ) ) ) $=
      ( vp cv co wceq wa wral cfv oveqd vr vt crg wcel cgrp cmnd w3a cmgp cmulr
      vb wsbc cplusg cbs fveq2 syl6eqr eleq1d fvexd simpl fveq2d simpll simpllr
      cvv simpr eqidd simplr oveq123d eqeq12d anbi12d raleqbidv sbcied2 df-ring
      elrab2 3anass bitr4i ) FUCUDFUEUDZHUFUDZANZBNZCNZEOZGOZVQVRGOZVQVSGOZEOZP
      ZVQVREOZVSGOZWCVRVSGOZEOZPZQZCDRZBDRZADRZQZQVOVPWNUGUANZUHSZUFUDZVQVRVSMN
      ZOZUBNZOZVQVRXAOZVQVSXAOZWSOZPZVQVRWSOZVSXAOZXDVRVSXAOZWSOZPZQZCUJNZRZBXM
      RZAXMRZUBWPUISZUKZMWPULSZUKZUJWPUMSZUKZQWOUAFUEUCWPFPZWRVPYBWNYCWQHUFYCWQ
      FUHSHWPFUHUNJUOUPYCXTWNUJYADVBYCWPUMUQYCYAFUMSDWPFUMUNIUOYCXMDPZQZXRWNMXS
      EVBYEWPULUQYEXSFULSEYEWPFULYCYDURUSKUOYEWSEPZQZXPWNUBXQGVBYGWPUIUQYGXQFUI
      SGYGWPFUIYCYDYFUTUSLUOYGXAGPZQZXOWMAXMDYCYDYFYHVAZYIXNWLBXMDYJYIXLWKCXMDY
      JYIXFWEXKWJYIXBWAXEWDYIVQVQWTVTXAGYGYHVCZYIVQVDYIWSEVRVSYEYFYHVEZTVFYIXCW
      BXDWCWSEYLYIXAGVQVRYKTYIXAGVQVSYKTZVFVGYIXHWGXJWIYIXGWFVSVSXAGYKYIWSEVQVR
      YLTYIVSVDVFYIXDWCXIWHWSEYLYMYIXAGVRVSYKTVFVGVHVIVIVIVJVJVJVHABCUBUAUJMVKV
      LVOVPWNVMVN $.
  $}

  ${
    $d r G $.  $d r x y z R $.
    $( A ring is a group.  (Contributed by NM, 15-Sep-2011.) $)
    ringgrp $p |- ( R e. Ring -> R e. Grp ) $=
      ( vx vy vz crg wcel cgrp cmgp cfv cmnd cv cplusg cmulr wceq cbs wral eqid
      co wa isring simp1bi ) AEFAGFAHIZJFBKZCKZDKZALIZRAMIZRUCUDUGRUCUEUGRZUFRN
      UCUDUFRUEUGRUHUDUEUGRUFRNSDAOIZPCUIPBUIPBCDUIUFAUGUBUIQUBQUFQUGQTUA $.

    ringmgp.g $e |- G = ( mulGrp ` R ) $.
    $( A ring is a monoid under multiplication.  (Contributed by Mario
       Carneiro, 6-Jan-2015.) $)
    ringmgp $p |- ( R e. Ring -> G e. Mnd ) $=
      ( vx vy vz crg wcel cgrp cmnd cv cplusg cfv co cmulr wceq cbs wral eqid
      wa isring simp2bi ) AGHAIHBJHDKZEKZFKZALMZNAOMZNUCUDUGNUCUEUGNZUFNPUCUDUF
      NUEUGNUHUDUEUGNUFNPTFAQMZREUIRDUIRDEFUIUFAUGBUISCUFSUGSUAUB $.

    $( A commutative ring is a ring whose multiplication is a commutative
       monoid.  (Contributed by Mario Carneiro, 7-Jan-2015.) $)
    iscrng $p |- ( R e. CRing <-> ( R e. Ring /\ G e. CMnd ) ) $=
      ( vr cv cmgp cfv ccmn wcel ccrg wceq fveq2 syl6eqr eleq1d df-cring elrab2
      crg ) DEZFGZHIBHIDAQJRAKZSBHTSAFGBRAFLCMNDOP $.

    $( A commutative ring's multiplication operation is commutative.
       (Contributed by Mario Carneiro, 7-Jan-2015.) $)
    crngmgp $p |- ( R e. CRing -> G e. CMnd ) $=
      ( ccrg wcel crg ccmn iscrng simprbi ) ADEAFEBGEABCHI $.
  $}

  $( A ring is a monoid under addition.  (Contributed by Mario Carneiro,
     7-Jan-2015.) $)
  ringmnd $p |- ( R e. Ring -> R e. Mnd ) $=
    ( crg wcel cgrp cmnd ringgrp grpmnd syl ) ABCADCAECAFAGH $.

  $( A ring is a magma.  (Contributed by AV, 31-Jan-2020.) $)
  ringmgm $p |- ( R e. Ring -> R e. Mgm ) $=
    ( crg wcel cmnd cmgm ringmnd mndmgm syl ) ABCADCAECAFAGH $.

  $( A commutative ring is a ring.  (Contributed by Mario Carneiro,
     7-Jan-2015.) $)
  crngring $p |- ( R e. CRing -> R e. Ring ) $=
    ( ccrg wcel crg cmgp cfv ccmn eqid iscrng simplbi ) ABCADCAEFZGCAKKHIJ $.

  $( Restricted functionality of the multiplicative group on rings.
     (Contributed by Mario Carneiro, 11-Mar-2015.) $)
  mgpf $p |- ( mulGrp |` Ring ) : Ring --> Mnd $=
    ( va crg cmnd cmgp cres wf wfn cv cfv wcel wral cvv wss fnmgp fnssres mp2an
    ssv fvres eqid ringmgp eqeltrd rgen ffnfv mpbir2an ) BCDBEZFUEBGZAHZUEIZCJZ
    ABKDLGBLMUFNBQLBDOPUIABUGBJUHUGDIZCUGBDRUGUJUJSTUAUBABCUEUCUD $.

  ${
    $d x y z B $.  $d x y z R $.  $d x y z .x. $.  $d x y z X $.  $d x y z Y $.
    $d x y z .+ $.  $d x y z Z $.
    ringi.b $e |- B = ( Base ` R ) $.
    ringi.p $e |- .+ = ( +g ` R ) $.
    ringi.t $e |- .x. = ( .r ` R ) $.
    $( Properties of a unital ring.  (Contributed by NM, 26-Aug-2011.)
       (Revised by Mario Carneiro, 6-Jan-2015.) $)
    ringi $p |- ( ( R e. Ring /\ ( X e. B /\ Y e. B /\ Z e. B ) )
           -> ( ( X .x. ( Y .+ Z ) ) = ( ( X .x. Y ) .+ ( X .x. Z ) )
                /\ ( ( X .+ Y ) .x. Z ) = ( ( X .x. Z ) .+ ( Y .x. Z ) ) ) ) $=
      ( vx vy vz wcel wa co wceq cv wral rsp crg w3a cgrp cmgp cmnd eqid isring
      cfv simp3bi adantr simpr1 sylc simpr2 simpr3 simpld caovdig caovdirg jca
      simprd ) CUANZEANFANGANUBOEFGBPDPEFDPEGDPZBPQEFBPGDPVAFGDPBPQUTKLMEFGABDB
      AUTKRZANZLRZANZMRZANZUBZOZVBVDVFBPDPVBVDDPVBVFDPZBPQZVBVDBPVFDPVJVDVFDPBP
      QZVIVKVLOZMASZVGVMVIVNLASZVEVNVIVOKASZVCVOUTVPVHUTCUCNCUDUHZUENVPKLMABCDV
      QHVQUFIJUGUIUJUTVCVEVGUKVOKATULUTVCVEVGUMVNLATULUTVCVEVGUNVMMATULZUOUPUTK
      LMEFGABDBAVIVKVLVRUSUQUR $.
  $}

  ${
    ringcl.b $e |- B = ( Base ` R ) $.
    ringcl.t $e |- .x. = ( .r ` R ) $.
    $( Closure of the multiplication operation of a ring.  (Contributed by NM,
       26-Aug-2011.)  (Revised by Mario Carneiro, 6-Jan-2015.) $)
    ringcl $p |- ( ( R e. Ring /\ X e. B /\ Y e. B ) -> ( X .x. Y ) e. B ) $=
      ( crg wcel cmgp cfv cmnd co eqid ringmgp mgpbas mgpplusg mndcl syl3an1 )
      BHIBJKZLIDAIEAIDECMAIBTTNZOACTDEABTUAFPBCTUAGQRS $.

    $( A commutative ring's multiplication operation is commutative.
       (Contributed by Mario Carneiro, 7-Jan-2015.) $)
    crngcom $p |- ( ( R e. CRing /\ X e. B /\ Y e. B ) ->
      ( X .x. Y ) = ( Y .x. X ) ) $=
      ( ccrg wcel cmgp ccmn co wceq eqid crngmgp mgpbas mgpplusg cmncom syl3an1
      cfv ) BHIBJTZKIDAIEAIDECLEDCLMBUAUANZOACUADEABUAUBFPBCUAUBGQRS $.

    $d x y B $.  $d x y R $.
    $( A commutative ring is a ring whose multiplication is a commutative
       monoid.  (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    iscrng2 $p |- ( R e. CRing <-> ( R e. Ring /\
        A. x e. B A. y e. B ( x .x. y ) = ( y .x. x ) ) ) $=
      ( ccrg wcel crg cmgp cfv ccmn wa cv co wceq wral eqid iscrng cmnd ringmgp
      wb mgpbas mgpplusg iscmn baib syl pm5.32i bitri ) DHIDJIZDKLZMIZNUKAOZBOZ
      EPUOUNEPQBCRACRZNDULULSZTUKUMUPUKULUAIZUMUPUCDULUQUBUMURUPABCEULCDULUQFUD
      DEULUQGUEUFUGUHUIUJ $.

    $( Associative law for the multiplication operation of a ring.
       (Contributed by NM, 27-Aug-2011.)  (Revised by Mario Carneiro,
       6-Jan-2015.) $)
    ringass $p |- ( ( R e. Ring /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
                      ( ( X .x. Y ) .x. Z ) = ( X .x. ( Y .x. Z ) ) ) $=
      ( crg wcel cmgp cfv cmnd w3a co wceq eqid ringmgp mgpbas mgpplusg mndass
      sylan ) BIJBKLZMJDAJEAJFAJNDECOFCODEFCOCOPBUCUCQZRACUCDEFABUCUDGSBCUCUDHT
      UAUB $.

    $d u x B $.  $d u x R $.  $d u x .x. $.
    $( The unit element of a ring is unique.  (Contributed by NM, 27-Aug-2011.)
       (Revised by Mario Carneiro, 6-Jan-2015.) $)
    ringideu $p |- ( R e. Ring ->
                E! u e. B A. x e. B ( ( u .x. x ) = x /\ ( x .x. u ) = x ) ) $=
      ( crg wcel cmgp cfv cmnd cv co wceq wa wral wreu eqid ringmgp mndideu syl
      mgpbas mgpplusg ) DHIDJKZLIBMZAMZENUGOUGUFENUGOPACQBCRDUEUESZTABCEUECDUEU
      HFUCDEUEUHGUDUAUB $.
  $}

  ${
    ringdi.b $e |- B = ( Base ` R ) $.
    ringdi.p $e |- .+ = ( +g ` R ) $.
    ringdi.t $e |- .x. = ( .r ` R ) $.
    $( Distributive law for the multiplication operation of a ring
       (left-distributivity).  (Contributed by Steve Rodriguez, 9-Sep-2007.) $)
    ringdi $p |- ( ( R e. Ring /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
                     ( X .x. ( Y .+ Z ) ) = ( ( X .x. Y ) .+ ( X .x. Z ) ) ) $=
      ( crg wcel w3a wa co wceq ringi simpld ) CKLEALFALGALMNEFGBODOEFDOEGDOZBO
      PEFBOGDOSFGDOBOPABCDEFGHIJQR $.

    $( Distributive law for the multiplication operation of a ring
       (right-distributivity).  (Contributed by Steve Rodriguez,
       9-Sep-2007.) $)
    ringdir $p |- ( ( R e. Ring /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
                     ( ( X .+ Y ) .x. Z ) = ( ( X .x. Z ) .+ ( Y .x. Z ) ) ) $=
      ( crg wcel w3a wa co wceq ringi simprd ) CKLEALFALGALMNEFGBODOEFDOEGDOZBO
      PEFBOGDOSFGDOBOPABCDEFGHIJQR $.
  $}

  ${
    ringidcl.b $e |- B = ( Base ` R ) $.
    ringidcl.u $e |- .1. = ( 1r ` R ) $.
    $( The unit element of a ring belongs to the base set of the ring.
       (Contributed by NM, 27-Aug-2011.)  (Revised by Mario Carneiro,
       27-Dec-2014.) $)
    ringidcl $p |- ( R e. Ring -> .1. e. B ) $=
      ( crg wcel cmgp cfv cmnd eqid ringmgp mgpbas ringidval mndidcl syl ) BFGB
      HIZJGCAGBQQKZLAQCABQRDMBCQRENOP $.
  $}

  ${
    ring0cl.b $e |- B = ( Base ` R ) $.
    ring0cl.z $e |- .0. = ( 0g ` R ) $.
    $( The zero element of a ring belongs to its base set.  (Contributed by
       Mario Carneiro, 12-Jan-2014.) $)
    ring0cl $p |- ( R e. Ring -> .0. e. B ) $=
      ( crg wcel cgrp ringgrp grpidcl syl ) BFGBHGCAGBIABCDEJK $.
  $}

  ${
    $d x y B $.  $d x y I $.  $d x y R $.  $d x y .x. $.  $d x y .1. $.
    rngidm.b $e |- B = ( Base ` R ) $.
    rngidm.t $e |- .x. = ( .r ` R ) $.
    rngidm.u $e |- .1. = ( 1r ` R ) $.
    $( Lemma for ~ ringlidm and ~ ringridm .  (Contributed by NM, 15-Sep-2011.)
       (Revised by Mario Carneiro, 27-Dec-2014.) $)
    ringidmlem $p |- ( ( R e. Ring /\ X e. B )
           -> ( ( .1. .x. X ) = X /\ ( X .x. .1. ) = X ) ) $=
      ( crg wcel cmgp cfv cmnd co wceq wa eqid ringmgp mgpbas mgpplusg mndlrid
      ringidval sylan ) BIJBKLZMJEAJDECNEOEDCNEOPBUDUDQZRACUDEDABUDUEFSBCUDUEGT
      BDUDUEHUBUAUC $.

    $( The unit element of a ring is a left multiplicative identity.
       (Contributed by NM, 15-Sep-2011.) $)
    ringlidm $p |- ( ( R e. Ring /\ X e. B ) -> ( .1. .x. X ) = X ) $=
      ( crg wcel wa co wceq ringidmlem simpld ) BIJEAJKDECLEMEDCLEMABCDEFGHNO
      $.

    $( The unit element of a ring is a right multiplicative identity.
       (Contributed by NM, 15-Sep-2011.) $)
    ringridm $p |- ( ( R e. Ring /\ X e. B ) -> ( X .x. .1. ) = X ) $=
      ( crg wcel wa co wceq ringidmlem simprd ) BIJEAJKDECLEMEDCLEMABCDEFGHNO
      $.

    $( Properties showing that an element ` I ` is the unity element of a ring.
       (Contributed by NM, 7-Aug-2013.) $)
    isringid $p |- ( R e. Ring
      -> ( ( I e. B /\ A. x e. B ( ( I .x. x ) = x /\ ( x .x. I ) = x ) )
        <-> .1. = I ) ) $=
      ( vy crg wcel cmgp cfv eqid mgpbas ringidval cv co wceq wa wral wreu wrex
      mgpplusg ringideu reurex syl ismgmid ) CKLZABDFJCMNZEBCUKUKOZGPCEUKULIQCD
      UKULHUEUJJRZARZDSUNTUNUMDSUNTUAABUBZJBUCUOJBUDAJBCDGHUFUOJBUGUHUI $.
  $}

  ${
    $d B u $.  $d R u $.  $d X u $.  $d .x. u $.
    ringid.b $e |- B = ( Base ` R ) $.
    ringid.t $e |- .x. = ( .r ` R ) $.
    $( The multiplication operation of a unital ring has (one or more) identity
       elements.  (Contributed by Steve Rodriguez, 9-Sep-2007.)  (Revised by
       Mario Carneiro, 22-Dec-2013.)  (Revised by AV, 24-Aug-2021.) $)
    ringid $p |- ( ( R e. Ring /\ X e. B ) ->
                 E. u e. B ( ( u .x. X ) = X /\ ( X .x. u ) = X ) ) $=
      ( crg wcel wa cv co wceq cur cfv eqid ringidcl adantr wb eqeq1d rspcedvd
      oveq1 oveq2 anbi12d adantl ringidmlem ) CHIZEBIZJZAKZEDLZEMZEUJDLZEMZJZCN
      OZEDLZEMZEUPDLZEMZJZAUPBUGUPBIUHBCUPFUPPZQRUJUPMZUOVASUIVCULURUNUTVCUKUQE
      UJUPEDUBTVCUMUSEUJUPEDUCTUDUEBCDUPEFGVBUFUA $.
  $}

  ${
    $d B x $.  $d R x $.  $d X x $.  $d .x. x $.
    ringadd2.b $e |- B = ( Base ` R ) $.
    ringadd2.p $e |- .+ = ( +g ` R ) $.
    ringadd2.t $e |- .x. = ( .r ` R ) $.
    $( A ring element plus itself is two times the element.  (Contributed by
       Steve Rodriguez, 9-Sep-2007.)  (Revised by Mario Carneiro, 22-Dec-2013.)
       (Revised by AV, 24-Aug-2021.) $)
    ringadd2 $p |- ( ( R e. Ring /\ X e. B )
                     -> E. x e. B ( X .+ X ) = ( ( x .+ x ) .x. X ) ) $=
      ( crg wcel wa cv co wceq wrex ringid oveq12 anidms eqcomd simpll syl13anc
      simpr simplr ringdir eqeq2d syl5ibr adantrd reximdva mpd ) DJKZFBKZLZAMZF
      ENZFOZFUNENFOZLZABPFFCNZUNUNCNFENZOZABPABDEFGIQUMURVAABUMUNBKZLZUPVAUQUPV
      AVCUSUOUOCNZOUPVDUSUPVDUSOUOFUOFCRSTVCUTVDUSVCUKVBVBULUTVDOUKULVBUAUMVBUC
      ZVEUKULVBUDBCDEUNUNFGHIUEUBUFUGUHUIUJ $.

    rngo2times.u $e |- .1. = ( 1r ` R ) $.
    $( A ring element plus itself is two times the element.  "Two" in an
       arbitrary unital ring is the sum of the unit with itself.  (Contributed
       by AV, 24-Aug-2021.) $)
    rngo2times $p |- ( ( R e. Ring /\ A e. B )
                       -> ( A .+ A ) = ( ( .1. .+ .1. ) .x. A ) ) $=
      ( crg wcel wa co ringlidm eqcomd oveq12d wceq simpl ringidcl adantr simpr
      ringdir syl13anc eqtr4d ) DKLZABLZMZAACNFAENZUICNZFFCNAENZUHAUIAUICUHUIAB
      DEFAGIJOPZULQUHUFFBLZUMUGUKUJRUFUGSUFUMUGBDFGJTUAZUNUFUGUBBCDEFFAGHIUCUDU
      E $.
  $}

  ${
    $d y A $.  $d y B $.  $d y M $.  $d y .1. $.  $d y R $.
    ringidss.g $e |- M = ( ( mulGrp ` R ) |`s A ) $.
    ringidss.b $e |- B = ( Base ` R ) $.
    ringidss.u $e |- .1. = ( 1r ` R ) $.
    $( A subset of the multiplicative group has the multiplicative identity as
       its identity if the identity is in the subset.  (Contributed by Mario
       Carneiro, 27-Dec-2014.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    ringidss $p |- ( ( R e. Ring /\ A C_ B /\ .1. e. A ) ->
      .1. = ( 0g ` M ) ) $=
      ( vy wcel cbs cfv eqid wceq co cvv oveqd 3ad2antl1 eqtr3d syldan crg cmgp
      wss w3a cplusg c0g simp3 mgpbas ressbas2 3ad2ant2 eleqtrd cv simp2 sselda
      eqsstr3d wa fvex syl6eqel mgpplusg ressplusg syl adantr ringlidm ringridm
      cmulr ismgmid2 ) CUAJZABUCZDAJZUDZIEKLZEUELZDEEUFLZVKMVMMVLMVJDAVKVGVHVIU
      GVHVGAVKNVIABECUBLZFBCVNVNMZGUHUIUJZUKVJIULZVKJZVQBJZDVQVLOZVQNVJVKBVQVJV
      KABVPVGVHVIUMUOUNZVJVSUPZDVQCVELZOZVTVQWBWCVLDVQVJWCVLNZVSVJAPJWEVJAVKPVP
      EKUQURAWCVNEPFCWCVNVOWCMZUSUTVAVBZQVGVHVSWDVQNVIBCWCDVQGWFHVCRSTVJVRVSVQD
      VLOZVQNWAWBVQDWCOZWHVQWBWCVLVQDWGQVGVHVSWIVQNVIBCWCDVQGWFHVDRSTVF $.
  $}

  ${
    ringacl.b $e |- B = ( Base ` R ) $.
    ringacl.p $e |- .+ = ( +g ` R ) $.
    $( Closure of the addition operation of a ring.  (Contributed by Mario
       Carneiro, 14-Jan-2014.) $)
    ringacl $p |- ( ( R e. Ring /\ X e. B /\ Y e. B ) -> ( X .+ Y ) e. B ) $=
      ( crg wcel cgrp co ringgrp grpcl syl3an1 ) CHICJIDAIEAIDEBKAICLABCDEFGMN
      $.

    $( Commutativity of the additive group of a ring.  (See also ~ lmodcom .)
       (Contributed by G&eacute;rard Lang, 4-Dec-2014.) $)
    ringcom $p |- ( ( R e. Ring /\ X e. B /\ Y e. B ) ->
      ( X .+ Y ) = ( Y .+ X ) ) $=
      ( wcel co wceq cfv eqid ringacl syl3anc syl13anc ringdir ringlidm syl2anc
      oveq12d grpass crg w3a cur cmulr simp1 ringidcl simp2 simp3 ringdi eqtr3d
      syl eqtrd 3eqtr3d cgrp ringgrp 3eqtr4d wb grprcan mpbid 3com23 grplcan )
      CUAHZDAHZEAHZUBZDDEBIZBIZDEDBIZBIZJZVFVHJZVEDDBIZEBIZVFDBIZVGVIVEVMEBIZVN
      EBIZJZVMVNJZVEVLEEBIZBIZVFVFBIZVOVPVECUCKZWBBIZDCUDKZIZWCEWDIZBIZWBVFWDIZ
      WHBIZVTWAVEWCVFWDIZWGWIVEVBWCAHZVCVDWJWGJVBVCVDUEZVEVBWBAHZWMWKWLVEVBWMWL
      ACWBFWBLZUFUKZWOABCWBWBFGMNVBVCVDUGZVBVCVDUHZABCWDWCDEFGWDLZUIOVEVBWMWMVF
      AHZWJWIJWLWOWOABCDEFGMZABCWDWBWBVFFGWRPOUJVEWEVLWFVSBVEWEWBDWDIZXABIZVLVE
      VBWMWMVCWEXBJWLWOWOWPABCWDWBWBDFGWRPOVEXADXADBVEVBVCXADJWLWPACWDWBDFWRWNQ
      RZXCSULVEWFWBEWDIZXDBIZVSVEVBWMWMVDWFXEJWLWOWOWQABCWDWBWBEFGWRPOVEXDEXDEB
      VEVBVDXDEJWLWQACWDWBEFWRWNQRZXFSULSVEWHVFWHVFBVEVBWSWHVFJWLWTACWDWBVFFWRW
      NQRZXGSUMVECUNHZVLAHZVDVDVOVTJVEVBXHWLCUOUKZVEVBVCVCXIWLWPWPABCDDFGMNZWQW
      QABCVLEEFGTOVEXHWSVCVDVPWAJXJWTWPWQABCVFDEFGTOUPVEXHVMAHZVNAHZVDVQVRUQXJV
      EVBXIVDXLWLXKWQABCVLEFGMNVEVBWSVCXMWLWTWPABCVFDFGMNWQABCVMVNEFGUROUSVEXHV
      CVCVDVMVGJXJWPWPWQABCDDEFGTOVEXHVCVDVCVNVIJXJWPWQWPABCDEDFGTOUMVEXHWSVHAH
      ZVCVJVKUQXJWTVBVDVCXNABCEDFGMUTWPABCVFVHDFGVAOUS $.
  $}

  ${
    $d x y R $.
    $( A ring is an Abelian group.  (Contributed by NM, 26-Aug-2011.) $)
    ringabl $p |- ( R e. Ring -> R e. Abel ) $=
      ( vx vy crg wcel cbs cfv cplusg eqidd ringgrp cv eqid ringcom isabld ) AD
      EZBCAFGZAHGZAOPIOQIAJPQABKCKPLQLMN $.
  $}

  $( A ring is a commutative monoid.  (Contributed by Mario Carneiro,
     7-Jan-2015.) $)
  ringcmn $p |- ( R e. Ring -> R e. CMnd ) $=
    ( crg wcel cabl ccmn ringabl ablcmn syl ) ABCADCAECAFAGH $.

  ${
    $d u v w x y B $.  $d u v w x y K $.  $d u v w x y ph $.  $d u v w x y L $.
    ringpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    ringpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    ringpropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    ringpropd.4 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( .r ` K ) y ) = ( x ( .r ` L ) y ) ) $.
    $( If two structures have the same group components (properties), one is a
       ring iff the other one is.  (Contributed by Mario Carneiro, 6-Dec-2014.)
       (Revised by Mario Carneiro, 6-Jan-2015.) $)
    ringpropd $p |- ( ph -> ( K e. Ring <-> L e. Ring ) ) $=
      ( vu vv vw wcel cfv co wceq wa wral oveqrspc2v cgrp cmgp cplusg cmulr cbs
      cmnd cv w3a crg wb simpll simprll simplrl simprlr ad2antrr eleqtrd simprr
      eqid grpcl syl3anc eleqtrrd syl12anc oveq2d eqtrd simplrr mgpbas mgpplusg
      mndcl oveq12d eqeq12d oveq1d anbi12d anassrs ralbidva 2ralbidva raleqbidv
      adantr raleqdv 3bitr3d pm5.32da df-3an 3bitr4g grppropd mndpropd 3anbi12d
      syl6eq oveqi 3eqtr3g bitrd isring ) AEUANZEUBOZUFNZKUGZLUGZMUGZEUCOZPZEUD
      OZPZWNWOWSPZWNWPWSPZWQPZQZWNWOWQPZWPWSPZXBWOWPWSPZWQPZQZRZMEUEOZSZLXKSZKX
      KSZUHZFUANZFUBOZUFNZWNWOWPFUCOZPZFUDOZPZWNWOYAPZWNWPYAPZXSPZQZWNWOXSPZWPY
      APZYDWOWPYAPZXSPZQZRZMFUEOZSZLYMSZKYMSZUHZEUINFUINAXOWKWMYPUHZYQAWKWMRZXN
      RYSYPRXOYRAYSXNYPAYSRZXJMDSZLDSZKDSYLMDSZLDSZKDSXNYPYTUUAUUCKLDDYTWNDNZWO
      DNZRZRXJYLMDYTUUGWPDNZXJYLUJYTUUGUUHRZRZXDYFXIYKUUJWTYBXCYEUUJWTWNWRYAPZY
      BUUJAUUEWRDNWTUUKQAYSUUIUKZYTUUEUUFUUHULZUUJWRXKDUUJWKWOXKNZWPXKNZWRXKNAW
      KWMUUIUMZUUJWODXKYTUUEUUFUUHUNZADXKQZYSUUIGUOZUPZUUJWPDXKYTUUGUUHUQZUUSUP
      ZXKWQEWOWPXKURZWQURZUSUTUUSVAABCDDWSYAWNWRJTVBUUJWRXTWNYAUUJAUUFUUHWRXTQU
      ULUUQUVAABCDDWQXSWOWPITVBVCVDUUJXCXAXBXSPZYEUUJAXADNXBDNZXCUVEQUULUUJXAXK
      DUUJWMWNXKNZUUNXAXKNAWKWMUUIVEZUUJWNDXKUUMUUSUPZUUTXKWSWLWNWOXKEWLWLURZUV
      CVFZEWSWLUVJWSURZVGZVHUTUUSVAUUJXBXKDUUJWMUVGUUOXBXKNUVHUVIUVBXKWSWLWNWPU
      VKUVMVHUTUUSVAZABCDDWQXSXAXBITVBUUJXAYCXBYDXSUUJAUUEUUFXAYCQUULUUMUUQABCD
      DWSYAWNWOJTVBUUJAUUEUUHXBYDQUULUUMUVAABCDDWSYAWNWPJTVBZVIVDVJUUJXFYHXHYJU
      UJXFXEWPYAPZYHUUJAXEDNUUHXFUVPQUULUUJXEXKDUUJWKUVGUUNXEXKNUUPUVIUUTXKWQEW
      NWOUVCUVDUSUTUUSVAUVAABCDDWSYAXEWPJTVBUUJXEYGWPYAUUJAUUEUUFXEYGQUULUUMUUQ
      ABCDDWQXSWNWOITVBVKVDUUJXHXBXGXSPZYJUUJAUVFXGDNXHUVQQUULUVNUUJXGXKDUUJWMU
      UNUUOXGXKNUVHUUTUVBXKWSWLWOWPUVKUVMVHUTUUSVAABCDDWQXSXBXGITVBUUJXBYDXGYIX
      SUVOUUJAUUFUUHXGYIQUULUUQUVAABCDDWSYAWOWPJTVBVIVDVJVLVMVNVOYTUUBXMKDXKAUU
      RYSGVQZYTUUAXLLDXKUVRYTXJMDXKUVRVRVPVPYTUUDYOKDYMADYMQYSHVQZYTUUCYNLDYMUV
      SYTYLMDYMUVSVRVPVPVSVTWKWMXNWAWKWMYPWAWBAWKXPWMXRYPABCDEFGHIWCABCDWLXQADX
      KWLUEOGUVKWFADYMXQUEOHYMFXQXQURZYMURZVFWFABUGZDNCUGZDNRRUWBUWCWSPUWBUWCYA
      PUWBUWCWLUCOZPUWBUWCXQUCOZPJWSUWDUWBUWCUVMWGYAUWEUWBUWCFYAXQUVTYAURZVGWGW
      HWDWEWIKLMXKWQEWSWLUVCUVJUVDUVLWJKLMYMXSFYAXQUWAUVTXSURUWFWJWB $.

    $( If two structures have the same group components (properties), one is a
       commutative ring iff the other one is.  (Contributed by Mario Carneiro,
       8-Feb-2015.) $)
    crngpropd $p |- ( ph -> ( K e. CRing <-> L e. CRing ) ) $=
      ( crg wcel cmgp cfv ccmn wa ccrg cbs eqid co ringpropd mgpbas cv mgpplusg
      syl6eq cmulr cplusg oveqi 3eqtr3g cmnpropd anbi12d iscrng 3bitr4g ) AEKLZ
      EMNZOLZPFKLZFMNZOLZPEQLFQLAUNUQUPUSABCDEFGHIJUAABCDUOURADERNZUORNGUTEUOUO
      SZUTSUBUEADFRNZURRNHVBFURURSZVBSUBUEABUCZDLCUCZDLPPVDVEEUFNZTVDVEFUFNZTVD
      VEUOUGNZTVDVEURUGNZTJVFVHVDVEEVFUOVAVFSUDUHVGVIVDVEFVGURVCVGSUDUHUIUJUKEU
      OVAULFURVCULUM $.
  $}

  ${
    $d x y K $.  $d x y L $.
    ringprop.b $e |- ( Base ` K ) = ( Base ` L ) $.
    ringprop.p $e |- ( +g ` K ) = ( +g ` L ) $.
    ringprop.m $e |- ( .r ` K ) = ( .r ` L ) $.
    $( If two structures have the same ring components (properties), one is a
       ring iff the other one is.  (Contributed by Mario Carneiro,
       11-Oct-2013.) $)
    ringprop $p |- ( K e. Ring <-> L e. Ring ) $=
      ( vx vy crg wcel wtru cbs cfv wceq a1i cv cplusg co wa oveqi cmulr eqidd
      wb ringpropd trud ) AHIBHIUBJFGAKLZABJUEUAUEBKLMJCNFOZGOZAPLZQUFUGBPLZQMJ
      UFUEIUGUEIRRZUHUIUFUGDSNUFUGATLZQUFUGBTLZQMUJUKULUFUGESNUCUD $.
  $}

  ${
    $d x .1. $.  $d x y z B $.  $d x y z ph $.  $d x y z R $.
    isringd.b $e |- ( ph -> B = ( Base ` R ) ) $.
    isringd.p $e |- ( ph -> .+ = ( +g ` R ) ) $.
    isringd.t $e |- ( ph -> .x. = ( .r ` R ) ) $.
    isringd.g $e |- ( ph -> R e. Grp ) $.
    isringd.c $e |- ( ( ph /\ x e. B /\ y e. B ) -> ( x .x. y ) e. B ) $.
    isringd.a $e |- ( ( ph /\ ( x e. B /\ y e. B /\ z e. B ) ) ->
                  ( ( x .x. y ) .x. z ) = ( x .x. ( y .x. z ) ) ) $.
    isringd.d $e |- ( ( ph /\ ( x e. B /\ y e. B /\ z e. B ) ) ->
                  ( x .x. ( y .+ z ) ) = ( ( x .x. y ) .+ ( x .x. z ) ) ) $.
    isringd.e $e |- ( ( ph /\ ( x e. B /\ y e. B /\ z e. B ) ) ->
                  ( ( x .+ y ) .x. z ) = ( ( x .x. z ) .+ ( y .x. z ) ) ) $.
    isringd.u $e |- ( ph -> .1. e. B ) $.
    isringd.i $e |- ( ( ph /\ x e. B ) -> ( .1. .x. x ) = x ) $.
    isringd.h $e |- ( ( ph /\ x e. B ) -> ( x .x. .1. ) = x ) $.
    $( Properties that determine a ring.  (Contributed by NM, 2-Aug-2013.) $)
    isringd $p |- ( ph -> R e. Ring ) $=
      ( cgrp wcel cmgp cfv cmnd cv cplusg co cmulr wceq wa cbs wral eqid mgpbas
      crg syl6eq mgpplusg ismndd eleq2d 3anbi123d biimpar adantr eqidd oveq123d
      w3a oveqdr 3eqtr3d jca syldan ralrimivvva isring syl3anbrc ) AGUAUBGUCUDZ
      UEUBBUFZCUFZDUFZGUGUDZUHZGUIUDZUHZVOVPVTUHZVOVQVTUHZVRUHZUJZVOVPVRUHZVQVT
      UHZWCVPVQVTUHZVRUHZUJZUKZDGULUDZUMCWLUMBWLUMGUPUBMABCDEHVNIAEWLVNULUDJWLG
      VNVNUNZWLUNZUOUQAHVTVNUGUDLGVTVNWMVTUNZURUQNORSTUSAWKBCDWLWLWLAVOWLUBZVPW
      LUBZVQWLUBZVFZVOEUBZVPEUBZVQEUBZVFZWKAXCWSAWTWPXAWQXBWRAEWLVOJUTAEWLVPJUT
      AEWLVQJUTVAVBAXCUKZWEWJXDVOVPVQFUHZHUHVOVPHUHZVOVQHUHZFUHWAWDPXDVOVOXEVSH
      VTAHVTUJXCLVCZXDVOVDAXCCDFVRKVGVEXDXFWBXGWCFVRAFVRUJXCKVCZAXCBCHVTLVGAXCB
      DHVTLVGZVEVHXDVOVPFUHZVQHUHXGVPVQHUHZFUHWGWIQXDXKWFVQVQHVTXHAXCBCFVRKVGXD
      VQVDVEXDXGWCXLWHFVRXIXJAXCCDHVTLVGVEVHVIVJVKBCDWLVRGVTVNWNWMVRUNWOVLVM $.

    iscrngd.c $e |- ( ( ph /\ x e. B /\ y e. B ) ->
      ( x .x. y ) = ( y .x. x ) ) $.
    $( Properties that determine a commutative ring.  (Contributed by Mario
       Carneiro, 7-Jan-2015.) $)
    iscrngd $p |- ( ph -> R e. CRing ) $=
      ( crg wcel cmgp cfv ccmn ccrg isringd cbs eqid mgpbas syl6eq cmulr cplusg
      mgpplusg ismndd iscmnd iscrng sylanbrc ) AGUBUCGUDUEZUFUCGUGUCABCDEFGHIJK
      LMNOPQRSTUHABCEHUTAEGUIUEZUTUIUEJVAGUTUTUJZVAUJUKULZAHGUMUEZUTUNUELGVDUTV
      BVDUJUOULZABCDEHUTIVCVENORSTUPUAUQGUTVBURUS $.
  $}

  ${
    rngz.b $e |- B = ( Base ` R ) $.
    rngz.t $e |- .x. = ( .r ` R ) $.
    rngz.z $e |- .0. = ( 0g ` R ) $.
    $( The zero of a unital ring is a left-absorbing element.  (Contributed by
       FL, 31-Aug-2009.) $)
    ringlz $p |- ( ( R e. Ring /\ X e. B ) -> ( .0. .x. X ) = .0. ) $=
      ( crg wcel wa co cplusg cfv wceq cgrp ringgrp grpidcl syl adantr eqid w3a
      grplid mpdan oveq1d simpr 3jca ringdir syldan simpl ringcl syl3anc grprid
      eqcomd syl2anc 3eqtr3d wb grplcan syl13anc mpbid ) BIJZDAJZKZEDCLZVDBMNZL
      ZVDEVELZOZVDEOZVCEEVELZDCLZVDVFVGVCVJEDCVAVJEOZVBVABPJZVLBQZVMEAJZVLABEFH
      RZAVEBEEFVEUAZHUCUDSTUEVAVBVOVOVBUBVKVFOVCVOVOVBVAVOVBVAVMVOVNVPSTZVRVAVB
      UFZUGAVEBCEEDFVQGUHUIVCVMVDAJZVDVGOVAVMVBVNTZVCVAVOVBVTVAVBUJVRVSABCEDFGU
      KULZVMVTKVGVDAVEBVDEFVQHUMUNUOUPVCVMVTVOVTVHVIUQWAWBVRWBAVEBVDEVDFVQURUSU
      T $.

    $( The zero of a unital ring is a right-absorbing element.  (Contributed by
       FL, 31-Aug-2009.) $)
    ringrz $p |- ( ( R e. Ring /\ X e. B ) -> ( X .x. .0. ) = .0. ) $=
      ( crg wcel wa co cplusg cfv wceq cgrp ringgrp grplid syl adantr mpdan w3a
      grpidcl eqid oveq2d simpr ringdi syldan ringcl mpd3an3 syl2anc 3eqtr3d wb
      3jca eqcomd grprcan syl13anc mpbid ) BIJZDAJZKZDECLZVBBMNZLZEVBVCLZOZVBEO
      ZVADEEVCLZCLZVBVDVEVAVHEDCUSVHEOZUTUSBPJZVJBQZVKEAJZVJABEFHUCZAVCBEEFVCUD
      ZHRUASTUEUSUTUTVMVMUBVIVDOVAUTVMVMUSUTUFUSVMUTUSVKVMVLVNSTZVPUNAVCBCDEEFV
      OGUGUHVAVKVBAJZVBVEOUSVKUTVLTZUSUTVMVQVPABCDEFGUIUJZVKVQKVEVBAVCBVBEFVOHR
      UOUKULVAVKVQVMVQVFVGUMVRVSVPVSAVCBVBEVBFVOUPUQUR $.
  $}

  ${
    $d x y z R $.
    $( Any ring is also a semiring.  (Contributed by Thierry Arnoux,
       1-Apr-2018.) $)
    ringsrg $p |- ( R e. Ring -> R e. SRing ) $=
      ( vx vy vz crg wcel ccmn cmgp cfv cmnd cv cplusg co cmulr wceq wa cbs c0g
      wral eqid csrg ringcmn ringmgp isring simp3bi ringlz ringrz jca ralrimiva
      cgrp r19.26 sylanbrc issrg syl3anbrc ) AEFZAGFAHIZJFZBKZCKZDKZALIZMANIZMU
      RUSVBMURUTVBMZVAMOURUSVAMUTVBMVCUSUTVBMVAMOPDAQIZSCVDSZARIZURVBMVFOZURVFV
      BMVFOZPZPBVDSZAUAFAUBAUPUPTZUCUOVEBVDSZVIBVDSVJUOAUJFUQVLBCDVDVAAVBUPVDTZ
      VKVATZVBTZUDUEUOVIBVDUOURVDFPVGVHVDAVBURVFVMVOVFTZUFVDAVBURVFVMVOVPUGUHUI
      VEVIBVDUKULBCDVDVAAVBUPVFVMVKVNVOVPUMUN $.
  $}

  ${
    ring1eq0.b $e |- B = ( Base ` R ) $.
    ring1eq0.u $e |- .1. = ( 1r ` R ) $.
    ring1eq0.z $e |- .0. = ( 0g ` R ) $.
    $( If one and zero are equal, then any two elements of a ring are equal.
       Alternately, every ring has one distinct from zero except the zero ring
       containing the single element ` { 0 } ` .  (Contributed by Mario
       Carneiro, 10-Sep-2014.) $)
    ring1eq0 $p |- ( ( R e. Ring /\ X e. B /\ Y e. B ) ->
      ( .1. = .0. -> X = Y ) ) $=
      ( crg wcel w3a wceq wa co oveq1d ringlz syl2anc eqtr4d ringlidm cmulr cfv
      simpr simpl1 simpl2 eqid simpl3 3eqtr3d ex ) BJKZDAKZEAKZLZCFMZDEMUMUNNZC
      DBUAUBZOZCEUPOZDEUOUQFDUPOZURUOCFDUPUMUNUCZPUOURFEUPOZUSUOCFEUPUTPUOUSFVA
      UOUJUKUSFMUJUKULUNUDZUJUKULUNUEZABUPDFGUPUFZIQRUOUJULVAFMVBUJUKULUNUGZABU
      PEFGVDIQRSSSUOUJUKUQDMVBVCABUPCDGVDHTRUOUJULUREMVBVEABUPCEGVDHTRUHUI $.
  $}

  ${
    $d B x y $.  $d R x y $.  $d .1. x y $.  $d .0. x y $.
    ring1ne0.b $e |- B = ( Base ` R ) $.
    ring1ne0.u $e |- .1. = ( 1r ` R ) $.
    ring1ne0.z $e |- .0. = ( 0g ` R ) $.
    $( If a ring has at least two elements, its one and zero are different.
       (Contributed by AV, 13-Apr-2019.) $)
    ring1ne0 $p |- ( ( R e. Ring /\ 1 < ( # ` B ) ) -> .1. =/= .0. ) $=
      ( vx vy cv wne wrex crg wcel c1 cfv wa cvv cbs wi clt wbr fvex hashgt12el
      chash eqeltri mpan adantl w3a necon3d 3expib adantr com3l rexlimivv mpcom
      ring1eq0 ) HJZIJZKZIALHALZBMNZOAUEPUAUBZQZCDKZVBUTVAARNVBUTABSPREBSUCUFAR
      HIUDUGUHUSVCVDTHIAAVCUQANZURANZQZUSVDVAVGUSVDTZTVBVAVEVFVHVAVEVFUICDUQURA
      BCUQURDEFGUPUJUKULUMUNUO $.
  $}

  ${
    $d X a $.  $d .0. a $.  $d .1. a $.  $d .x. a $.  $d ph a $.
    ringinvnzdiv.b $e |- B = ( Base ` R ) $.
    ringinvnzdiv.t $e |- .x. = ( .r ` R ) $.
    ringinvnzdiv.u $e |- .1. = ( 1r ` R ) $.
    ringinvnzdiv.z $e |- .0. = ( 0g ` R ) $.
    ringinvnzdiv.r $e |- ( ph -> R e. Ring ) $.
    ringinvnzdiv.x $e |- ( ph -> X e. B ) $.
    ringinvnzdiv.a $e |- ( ph -> E. a e. B ( a .x. X ) = .1. ) $.
    $( In a unitary ring, a left invertible element is different from zero iff
       ` .1. =/= .0. ` .  (Contributed by FL, 18-Apr-2010.)  (Revised by AV,
       24-Aug-2021.) $)
    ringinvnz1ne0 $p |- ( ph -> ( X =/= .0. <-> .1. =/= .0. ) ) $=
      ( co wceq wcel wa oveq2 cv wrex wb wi ringrz sylan eqeq12 biimpd ex mpan9
      crg syl5 ringridm eqeq12d syl2anc ad2antrr impbid rexlimdva mpd necon3bid
      ) AFGEGAHUAZFDPZEQZHBUBFGQZEGQZUCZOAVCVFHBAVABRZSZVCVFVHVCSZVDVEVDVBVAGDP
      ZQZVIVEFGVADTVHVJGQZVCVKVEUDZACUKRZVGVLMBCDVAGIJLUEUFVCVLVMVCVLSVKVEVBEVJ
      GUGUHUIUJULVEFEDPZFGDPZQZVIVDEGFDTAVQVDUDZVGVCAVNFBRZVRMNVNVSSZVQVDVTVOFV
      PGBCDEFIJKUMBCDFGIJLUEUNUHUOUPULUQUIURUSUT $.

    $d Y a $.
    ringinvnzdiv.y $e |- ( ph -> Y e. B ) $.
    $( In a unitary ring, a left invertible element is not a zero divisor.
       (Contributed by FL, 18-Apr-2010.)  (Revised by Jeff Madsen,
       18-Apr-2010.)  (Revised by AV, 24-Aug-2021.) $)
    ringinvnzdiv $p |- ( ph -> ( ( X .x. Y ) = .0. <-> Y = .0. ) ) $=
      ( co wceq adantr cv wrex wi wcel wa crg ringlidm syl2anc eqcomd ad3antrrr
      oveq1 eqcoms adantl w3a simpr 3jca jca ringass syl eqtrd ringrz sylan9eqr
      oveq2 sylan 3eqtrd exp31 rexlimdva mpd ex impbid ) AFGDRZHSZGHSZAIUAZFDRZ
      ESZIBUBVLVMUCZPAVPVQIBAVNBUDZUEZVPVLVMVSVPUEZVLUEGEGDRZVNVKDRZHAGWASVRVPV
      LAWAGACUFUDZGBUDZWAGSNQBCDEGJKLUGUHUIUJVTWAWBSVLVTWAVOGDRZWBVPWAWESZVSWFE
      VOEVOGDUKULUMVTWCVRFBUDZWDUNZUEZWEWBSVSWIVPVSWCWHAWCVRNTVSVRWGWDAVRUOAWGV
      ROTAWDVRQTUPUQTBCDVNFGJKURUSUTTVLVTWBVNHDRZHVKHVNDVCVSWJHSZVPAWCVRWKNBCDV
      NHJKMVAVDTVBVEVFVGVHAVMVLVMAVKFHDRZHGHFDVCAWCWGWLHSNOBCDFHJKMVAUHVBVIVJ
      $.
  $}

  ${
    ringnegl.b $e |- B = ( Base ` R ) $.
    ringnegl.t $e |- .x. = ( .r ` R ) $.
    ringnegl.u $e |- .1. = ( 1r ` R ) $.
    ringnegl.n $e |- N = ( invg ` R ) $.
    ringnegl.r $e |- ( ph -> R e. Ring ) $.
    ringnegl.x $e |- ( ph -> X e. B ) $.
    $( Negation in a ring is the same as left multiplication by -1.
       ( ~ rngonegmn1l analog.)  (Contributed by Jeff Madsen, 19-Jun-2010.)
       (Revised by Mario Carneiro, 2-Jul-2014.) $)
    ringnegl $p |- ( ph -> ( ( N ` .1. ) .x. X ) = ( N ` X ) ) $=
      ( cfv co wceq wcel syl syl2anc eqid cplusg c0g crg ringidcl cgrp grpinvcl
      ringgrp ringdir syl13anc grprinv oveq1d ringlz eqtrd ringlidm 3eqtr3rd wb
      ringcl syl3anc grpinvid1 mpbird eqcomd ) AGFNZEFNZGDOZAVBVDPZGVDCUANZOZCU
      BNZPZAEVCVFOZGDOZEGDOZVDVFOZVHVGACUCQZEBQZVCBQZGBQZVKVMPLAVNVOLBCEHJUDRZA
      CUEQZVOVPAVNVSLCUGRZVRBCFEHKUFSZMBVFCDEVCGHVFTZIUHUIAVKVHGDOZVHAVJVHGDAVS
      VOVJVHPVTVRBVFCFEVHHWBVHTZKUJSUKAVNVQWCVHPLMBCDGVHHIWDULSUMAVLGVDVFAVNVQV
      LGPLMBCDEGHIJUNSUKUOAVSVQVDBQZVEVIUPVTMAVNVPVQWELWAMBCDVCGHIUQURBVFCFGVDV
      HHWBWDKUSURUTVA $.

    $( Negation in a ring is the same as right multiplication by -1.
       ( ~ rngonegmn1r analog.)  (Contributed by Jeff Madsen, 19-Jun-2010.)
       (Revised by Mario Carneiro, 2-Jul-2014.) $)
    rngnegr $p |- ( ph -> ( X .x. ( N ` .1. ) ) = ( N ` X ) ) $=
      ( cfv co wceq wcel syl syl2anc eqid cplusg c0g crg cgrp ringidcl grpinvcl
      ringgrp ringdi syl13anc grplinv oveq2d ringrz ringridm 3eqtr3rd wb ringcl
      eqtrd syl3anc grpinvid2 mpbird eqcomd ) AGFNZGEFNZDOZAVBVDPZVDGCUANZOZCUB
      NZPZAGVCEVFOZDOZVDGEDOZVFOZVHVGACUCQZGBQZVCBQZEBQZVKVMPLMACUDQZVQVPAVNVRL
      CUGRZAVNVQLBCEHJUERZBCFEHKUFSZVTBVFCDGVCEHVFTZIUHUIAVKGVHDOZVHAVJVHGDAVRV
      QVJVHPVSVTBVFCFEVHHWBVHTZKUJSUKAVNVOWCVHPLMBCDGVHHIWDULSUQAVLGVDVFAVNVOVL
      GPLMBCDEGHIJUMSUKUNAVRVOVDBQZVEVIUOVSMAVNVOVPWELMWABCDGVCHIUPURBVFCFGVDVH
      HWBWDKUSURUTVA $.
  $}

  ${
    ringneglmul.b $e |- B = ( Base ` R ) $.
    ringneglmul.t $e |- .x. = ( .r ` R ) $.
    ringneglmul.n $e |- N = ( invg ` R ) $.
    ringneglmul.r $e |- ( ph -> R e. Ring ) $.
    ringneglmul.x $e |- ( ph -> X e. B ) $.
    ringneglmul.y $e |- ( ph -> Y e. B ) $.
    $( Negation of a product in a ring.  ( ~ mulneg1 analog.)  (Contributed by
       Jeff Madsen, 19-Jun-2010.)  (Revised by Mario Carneiro, 2-Jul-2014.) $)
    ringmneg1 $p |- ( ph -> ( ( N ` X ) .x. Y ) = ( N ` ( X .x. Y ) ) ) $=
      ( cur cfv co crg wcel syl ringnegl wceq ringgrp ringidcl grpinvcl syl2anc
      cgrp eqid ringass syl13anc oveq1d ringcl syl3anc 3eqtr3d ) ACNOZEOZFDPZGD
      PZUOFGDPZDPZFEOZGDPUREOACQRZUOBRZFBRZGBRZUQUSUAKACUFRZUNBRZVBAVAVEKCUBSAV
      AVFKBCUNHUNUGZUCSBCEUNHJUDUELMBCDUOFGHIUHUIAUPUTGDABCDUNEFHIVGJKLTUJABCDU
      NEURHIVGJKAVAVCVDURBRKLMBCDFGHIUKULTUM $.

    $( Negation of a product in a ring.  ( ~ mulneg2 analog.)  (Contributed by
       Jeff Madsen, 19-Jun-2010.)  (Revised by Mario Carneiro, 2-Jul-2014.) $)
    ringmneg2 $p |- ( ph -> ( X .x. ( N ` Y ) ) = ( N ` ( X .x. Y ) ) ) $=
      ( co cur cfv crg wcel syl rngnegr wceq cgrp ringgrp eqid ringidcl syl2anc
      grpinvcl ringass syl13anc ringcl syl3anc oveq2d 3eqtr3rd ) AFGDNZCOPZEPZD
      NZFGUPDNZDNZUNEPFGEPZDNACQRZFBRZGBRZUPBRZUQUSUAKLMACUBRZUOBRZVDAVAVEKCUCS
      AVAVFKBCUOHUOUDZUESBCEUOHJUGUFBCDFGUPHIUHUIABCDUOEUNHIVGJKAVAVBVCUNBRKLMB
      CDFGHIUJUKTAURUTFDABCDUOEGHIVGJKMTULUM $.

    $( Double negation of a product in a ring.  ( ~ mul2neg analog.)
       (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    ringm2neg $p |- ( ph -> ( ( N ` X ) .x. ( N ` Y ) ) = ( X .x. Y ) ) $=
      ( cfv co cgrp wcel crg ringgrp syl2anc syl grpinvcl ringmneg1 fveq2d wceq
      ringmneg2 ringcl syl3anc grpinvinv 3eqtrd ) AFENGENZDOFUKDOZENFGDOZENZENZ
      UMABCDEFUKHIJKLACPQZGBQZUKBQACRQZUPKCSUAZMBCEGHJUBTUCAULUNEABCDEFGHIJKLMU
      FUDAUPUMBQZUOUMUEUSAURFBQUQUTKLMBCDFGHIUGUHBCEUMHJUITUJ $.
  $}

  ${
    ringsubdi.b $e |- B = ( Base ` R ) $.
    ringsubdi.t $e |- .x. = ( .r ` R ) $.
    ringsubdi.m $e |- .- = ( -g ` R ) $.
    ringsubdi.r $e |- ( ph -> R e. Ring ) $.
    ringsubdi.x $e |- ( ph -> X e. B ) $.
    ringsubdi.y $e |- ( ph -> Y e. B ) $.
    ringsubdi.z $e |- ( ph -> Z e. B ) $.
    $( Ring multiplication distributes over subtraction.  ( ~ subdi analog.)
       (Contributed by Jeff Madsen, 19-Jun-2010.)  (Revised by Mario Carneiro,
       2-Jul-2014.) $)
    ringsubdi $p |- ( ph ->
      ( X .x. ( Y .- Z ) ) = ( ( X .x. Y ) .- ( X .x. Z ) ) ) $=
      ( cfv co wcel wceq syl2anc cminusg cplusg crg ringgrp syl grpinvcl ringdi
      cgrp syl13anc ringmneg2 oveq2d eqtrd grpsubval ringcl syl3anc 3eqtr4d
      eqid ) AFGHCUAPZPZCUBPZQZDQZFGDQZFHDQZURPZUTQZFGHEQZDQVCVDEQZAVBVCFUSDQZU
      TQZVFACUCRZFBRZGBRZUSBRZVBVJSLMNACUHRZHBRZVNAVKVOLCUDUEOBCURHIURUQZUFTBUT
      CDFGUSIUTUQZJUGUIAVIVEVCUTABCDURFHIJVQLMOUJUKULAVGVAFDAVMVPVGVASNOBUTCURE
      GHIVRVQKUMTUKAVCBRZVDBRZVHVFSAVKVLVMVSLMNBCDFGIJUNUOAVKVLVPVTLMOBCDFHIJUN
      UOBUTCUREVCVDIVRVQKUMTUP $.

    $( Ring multiplication distributes over subtraction.  ( ~ subdir analog.)
       (Contributed by Jeff Madsen, 19-Jun-2010.)  (Revised by Mario Carneiro,
       2-Jul-2014.) $)
    rngsubdir $p |- ( ph ->
      ( ( X .- Y ) .x. Z ) = ( ( X .x. Z ) .- ( Y .x. Z ) ) ) $=
      ( cfv co wcel wceq syl2anc cminusg crg cgrp ringgrp eqid grpinvcl ringdir
      cplusg syl ringmneg1 oveq2d eqtrd grpsubval oveq1d ringcl syl3anc 3eqtr4d
      syl13anc ) AFGCUAPZPZCUHPZQZHDQZFHDQZGHDQZUSPZVAQZFGEQZHDQVDVEEQZAVCVDUTH
      DQZVAQZVGACUBRZFBRZUTBRZHBRZVCVKSLMACUCRZGBRZVNAVLVPLCUDUINBCUSGIUSUEZUFT
      OBVACDFUTHIVAUEZJUGURAVJVFVDVAABCDUSGHIJVRLNOUJUKULAVHVBHDAVMVQVHVBSMNBVA
      CUSEFGIVSVRKUMTUNAVDBRZVEBRZVIVGSAVLVMVOVTLMOBCDFHIJUOUPAVLVQVOWALNOBCDGH
      IJUOUPBVACUSEVDVEIVSVRKUMTUQ $.
  $}

  ${
    $d x y B $.  $d x y R $.  $d x y .x. $.  $d x y .X. $.  $d x y X $.
    $d x N $.  $d x y Y $.
    mulgass2.b $e |- B = ( Base ` R ) $.
    mulgass2.m $e |- .x. = ( .g ` R ) $.
    mulgass2.t $e |- .X. = ( .r ` R ) $.
    $( An associative property between group multiple and ring multiplication.
       (Contributed by Mario Carneiro, 14-Jun-2015.) $)
    mulgass2 $p |- ( ( R e. Ring /\ ( N e. ZZ /\ X e. B /\ Y e. B ) ) ->
      ( ( N .x. X ) .X. Y ) = ( N .x. ( X .X. Y ) ) ) $=
      ( wcel co wceq cc0 oveq1 oveq1d eqeq12d cfv adantr syl3anc vx vy cz wi cv
      crg cneg caddc w3a c0g eqid ringlz 3adant3 simp3 mulg0 syl ringcl 3eqtr4d
      c1 3com23 cn0 wa cplusg cgrp simpl1 ringgrp adantl mulgp1 3ad2ant1 mulgcl
      nn0z simpl2 ringdir syl13anc eqtrd syl5ibr ex cminusg fveq2 nnz ringmneg1
      cn mulgneg zindd 3exp com24 3imp2 ) BUFKZEUCKZFAKZGAKZEFCLZGDLZEFGDLZCLZM
      ZWHWKWJWIWPWHWKWJWIWPUDUAUEZFCLZGDLZWQWNCLZMNFCLZGDLZNWNCLZMUBUEZFCLZGDLZ
      XDWNCLZMZXDUGZFCLZGDLZXIWNCLZMZXDUSUHLZFCLZGDLZXNWNCLZMZWPWHWKWJUIZUAUBEW
      QNMZWSXBWTXCXTWRXAGDWQNFCOPWQNWNCOQWQXDMZWSXFWTXGYAWRXEGDWQXDFCOPWQXDWNCO
      QWQXNMZWSXPWTXQYBWRXOGDWQXNFCOPWQXNWNCOQWQXIMZWSXKWTXLYCWRXJGDWQXIFCOPWQX
      IWNCOQWQEMZWSWMWTWOYDWRWLGDWQEFCOPWQEWNCOQXSBUJRZGDLZYEXBXCWHWKYFYEMWJABD
      GYEHJYEUKZULUMXSXAYEGDXSWJXAYEMWHWKWJUNZACBFYEHYGIUOUPPXSWNAKZXCYEMWHWJWK
      YIABDFGHJUQUTZACBWNYEHYGIUOUPURXSXDVAKZXHXRUDXHXRXSYKVBZXFWNBVCRZLZXGWNYM
      LZMXFXGWNYMOYLXPYNXQYOYLXPXEFYMLZGDLZYNYLXOYPGDYLBVDKZXDUCKZWJXOYPMYLWHYR
      WHWKWJYKVEZBVFZUPZYKYSXSXDVKVGZXSWJYKYHSZAYMCBXDFHIYMUKZVHTPYLWHXEAKZWJWK
      YQYNMYTYLYRYSWJUUFXSYRYKWHWKYRWJUUAVIZSUUCUUDACBXDFHIVJZTUUDWHWKWJYKVLAYM
      BDXEFGHUUEJVMVNVOYLYRYSYIXQYOMUUBUUCXSYIYKYJSAYMCBXDWNHIUUEVHTQVPVQXSXDWB
      KZXHXMUDXHXMXSUUIVBZXFBVRRZRZXGUUKRZMXFXGUUKVSUUJXKUULXLUUMUUJXKXEUUKRZGD
      LUULUUJXJUUNGDUUJYRYSWJXJUUNMXSYRUUIUUGSZUUIYSXSXDVTVGZXSWJUUIYHSZACBUUKX
      DFHIUUKUKZWCTPUUJABDUUKXEGHJUURWHWKWJUUIVEUUJYRYSWJUUFUUOUUPUUQUUHTWHWKWJ
      UUIVLWAVOUUJYRYSYIXLUUMMUUOUUPXSYIUUIYJSACBUUKXDWNHIUURWCTQVPVQWDWEWFWG
      $.
  $}

  ${
    $d Z a b c $.  $d M a b c $.
    ring1.m $e |- M = { <. ( Base ` ndx ) , { Z } >. ,
                       <. ( +g ` ndx ) , { <. <. Z , Z >. , Z >. } >. ,
                       <. ( .r ` ndx ) , { <. <. Z , Z >. , Z >. } >. } $.
    $( The (smallest) structure representing a _zero ring_.  (Contributed by
       AV, 28-Apr-2019.) $)
    ring1 $p |- ( Z e. V -> M e. Ring ) $=
      ( va vb vc wcel cfv cop co wceq wral cbs cvv ax-mp oveq2d oveq1d eqeq12d
      wa cgrp cmgp cmnd cv csn crg cnx cplusg cpr eqid grp1 snex rngbase eqcomi
      rngplusg eqcomd grppropstr sylibr mgpbas grpbase eqtr3i grpplusg mgpplusg
      mnd1 cmulr rngmulr 3eqtr3ri mndprop df-ov opex mpan syl5eq oveq12d eqtr4d
      fvsng oveq1 anbi12d 2ralbidv ralsng oveq2 ralbidv 3bitrd mpbir2and isring
      syl3anbrc ) CBHZAUAHZAUBIZUCHZEUDZFUDZGUDZCCJZCJZUEZKZWOKZWJWKWOKZWJWLWOK
      ZWOKZLZWRWLWOKZWSWPWOKZLZTZGCUEZMFXFMZEXFMZAUFHWFUGNIXFJUGUHIWOJUIZUAHWGC
      XIBXIUJZUKXFWOAXIXFANIZXFOHZXFXKLCULZXFWOAWOODUMPZUNWOOHZAUHIZWOLWNULZXOW
      OXPXFWOAWOODUOZUPPXJUQURWFXIUCHWICXIBXJVDWHXIXFWHNIXINIZXFAWHWHUJZXNUSXLX
      FXSLXMXFWOXIOXJUTPVAWOAVEIZXIUHIZWHUHIXOWOYALXQXFWOAWOODVFPZXOWOYBLXQXFWO
      XIOXJVBPAYAWHXTYAUJVCVGVHURWFXHCCCWOKZWOKZYDYDWOKZLZYDCWOKZYFLZWFYEYDYFWF
      YDCCWOWFYDWMWOIZCCCWOVIWMOHWFYJCLCCVJWMCOBVOVKVLZQWFYDCYDCWOYKYKVMZVNWFYH
      YDYFWFYDCCWOYKRYLVNWFXHCWPWOKZCWKWOKZCWLWOKZWOKZLZYNWLWOKZYOWPWOKZLZTZGXF
      MZFXFMZCYOWOKZYDYOWOKZLZYDWLWOKZYOYOWOKZLZTZGXFMZYGYITZXGUUCECBWJCLZXEUUA
      FGXFXFUUMXAYQXDYTUUMWQYMWTYPWJCWPWOVPUUMWRYNWSYOWOWJCWKWOVPZWJCWLWOVPZVMS
      UUMXBYRXCYSUUMWRYNWLWOUUNRUUMWSYOWPWOUUORSVQVRVSUUBUUKFCBWKCLZUUAUUJGXFUU
      PYQUUFYTUUIUUPYMUUDYPUUEUUPWPYOCWOWKCWLWOVPZQUUPYNYDYOWOWKCCWOVTZRSUUPYRU
      UGYSUUHUUPYNYDWLWOUURRUUPWPYOYOWOUUQQSVQWAVSUUJUULGCBWLCLZUUFYGUUIYIUUSUU
      DYEUUEYFUUSYOYDCWOWLCCWOVTZQUUSYOYDYDWOUUTQSUUSUUGYHUUHYFWLCYDWOVTUUSYOYD
      YOYDWOUUTUUTVMSVQVSWBWCEFGXFWOAWOWHXNXTXOWOXPLXQXRPYCWDWE $.
  $}

  $( Rings exist.  (Contributed by AV, 29-Apr-2019.) $)
  ringn0 $p |- Ring =/= (/) $=
    ( vz cv cvv wcel cnx cbs cfv csn cop cplusg cmulr ctp crg c0 wne eqid ring1
    vex ne0i mp2b ) ABZCDEFGUAHIEJGUAUAIUAIHZIEKGUBILZMDMNOARUCCUAUCPQMUCST $.

  ${
    $d x y z B $.  $d x y z R $.  $d x y z .x. $.  $d x y z X $.
    ringlghm.b $e |- B = ( Base ` R ) $.
    ringlghm.t $e |- .x. = ( .r ` R ) $.
    $( Left-multiplication in a ring by a fixed element of the ring is a group
       homomorphism.  (It is not usually a ring homomorphism.)  (Contributed by
       Mario Carneiro, 4-May-2015.) $)
    ringlghm $p |- ( ( R e. Ring /\ X e. B ) ->
      ( x e. B |-> ( X .x. x ) ) e. ( R GrpHom R ) ) $=
      ( vy vz crg wcel wa cfv cv co eqid wceq oveq2 ovex fvmpt cplusg cmpt cgrp
      ringgrp adantr ringcl 3expa fmptd w3a 3anass ringdi anassrs ringacl 3expb
      sylan2br adantlr syl oveqan12d adantl 3eqtr4d isghmd ) CJKZEBKZLZHICUAMZV
      ECCABEANZDOZUBZBBFFVEPZVIVBCUCKVCCUDUEZVJVDABVGBVHVBVCVFBKVGBKBCDEVFFGUFU
      GVHPZUHVDHNZBKZINZBKZLZLZEVLVNVEOZDOZEVLDOZEVNDOZVEOZVRVHMZVLVHMZVNVHMZVE
      OZVBVCVPVSWBQZVCVPLVBVCVMVOUIWGVCVMVOUJBVECDEVLVNFVIGUKUOULVQVRBKZWCVSQVB
      VPWHVCVBVMVOWHBVECVLVNFVIUMUNUPAVRVGVSBVHVFVREDRVKEVRDSTUQVPWFWBQVDVMVOWD
      VTWEWAVEAVLVGVTBVHVFVLEDRVKEVLDSTAVNVGWABVHVFVNEDRVKEVNDSTURUSUTVA $.

    $( Right-multiplication in a ring by a fixed element of the ring is a group
       homomorphism.  (It is not usually a ring homomorphism.)  (Contributed by
       Mario Carneiro, 4-May-2015.) $)
    ringrghm $p |- ( ( R e. Ring /\ X e. B ) ->
      ( x e. B |-> ( x .x. X ) ) e. ( R GrpHom R ) ) $=
      ( vy vz crg wcel wa cfv cv co eqid wceq oveq1 ovex fvmpt cplusg cmpt cgrp
      ringgrp adantr ringcl 3expa an32s fmptd ringdir sylan2br anass1rs ringacl
      w3a df-3an 3expb adantlr syl oveqan12d adantl 3eqtr4d isghmd ) CJKZEBKZLZ
      HICUAMZVFCCABANZEDOZUBZBBFFVFPZVJVCCUCKVDCUDUEZVKVEABVHBVIVCVGBKZVDVHBKZV
      CVLVDVMBCDVGEFGUFUGUHVIPZUIVEHNZBKZINZBKZLZLZVOVQVFOZEDOZVOEDOZVQEDOZVFOZ
      WAVIMZVOVIMZVQVIMZVFOZVCVSVDWBWEQZVSVDLVCVPVRVDUNWJVPVRVDUOBVFCDVOVQEFVJG
      UJUKULVTWABKZWFWBQVCVSWKVDVCVPVRWKBVFCVOVQFVJUMUPUQAWAVHWBBVIVGWAEDRVNWAE
      DSTURVSWIWEQVEVPVRWGWCWHWDVFAVOVHWCBVIVGVOEDRVNVOEDSTAVQVHWDBVIVGVQEDRVNV
      QEDSTUSUTVAVB $.
  $}

  ${
    $d k x A $.  $d k x B $.  $d k x ph $.  $d k x .x. $.  $d x R $.  $d x X $.
    $d k x Y $.  $d x .0. $.
    gsummulc1.b $e |- B = ( Base ` R ) $.
    gsummulc1.z $e |- .0. = ( 0g ` R ) $.
    gsummulc1.p $e |- .+ = ( +g ` R ) $.
    gsummulc1.t $e |- .x. = ( .r ` R ) $.
    gsummulc1.r $e |- ( ph -> R e. Ring ) $.
    gsummulc1.a $e |- ( ph -> A e. V ) $.
    gsummulc1.y $e |- ( ph -> Y e. B ) $.
    gsummulc1.x $e |- ( ( ph /\ k e. A ) -> X e. B ) $.
    gsummulc1.n $e |- ( ph -> ( k e. A |-> X ) finSupp .0. ) $.
    $( A finite ring sum multiplied by a constant.  (Contributed by Mario
       Carneiro, 19-Dec-2014.)  (Revised by AV, 10-Jul-2019.) $)
    gsummulc1 $p |- ( ph -> ( R gsum ( k e. A |-> ( X .x. Y ) ) ) =
      ( ( R gsum ( k e. A |-> X ) ) .x. Y ) ) $=
      ( vx cv co cmpt cgsu crg wcel ccmn ringcmn syl cmnd ringmnd cghm ringrghm
      cmhm syl2anc ghmmhm oveq1 gsummhm2 ) AUABCUAUBZJFUCZIJFUCGEGBIUDUEUCZJFUC
      EEHIKLMAEUFUGZEUHUGPEUIUJAVCEUKUGPEULUJQAUACVAUDZEEUMUCUGZVDEEUOUCUGAVCJC
      UGVEPRUACEFJLOUNUPEEVDUQUJSTUTIJFURUTVBJFURUS $.

    $( A finite ring sum multiplied by a constant.  (Contributed by Mario
       Carneiro, 19-Dec-2014.)  (Revised by AV, 10-Jul-2019.) $)
    gsummulc2 $p |- ( ph -> ( R gsum ( k e. A |-> ( Y .x. X ) ) ) =
      ( Y .x. ( R gsum ( k e. A |-> X ) ) ) ) $=
      ( vx cv co cmpt cgsu crg wcel ccmn ringcmn syl cmnd ringmnd cghm ringlghm
      cmhm syl2anc ghmmhm oveq2 gsummhm2 ) AUABCJUAUBZFUCZJIFUCGJEGBIUDUEUCZFUC
      EEHIKLMAEUFUGZEUHUGPEUIUJAVCEUKUGPEULUJQAUACVAUDZEEUMUCUGZVDEEUOUCUGAVCJC
      UGVEPRUACEFJLOUNUPEEVDUQUJSTUTIJFURUTVBJFURUS $.
  $}

  ${
    $d i A $.  $d n B $.  $d i n G $.  $d i n N $.  $d n R $.  $d i n ph $.
    $d i n .0. $.
    gsummgp0.g $e |- G = ( mulGrp ` R ) $.
    gsummgp0.0 $e |- .0. = ( 0g ` R ) $.
    gsummgp0.r $e |- ( ph -> R e. CRing ) $.
    gsummgp0.n $e |- ( ph -> N e. Fin ) $.
    gsummgp0.a $e |- ( ( ph /\ n e. N ) -> A e. ( Base ` R ) ) $.
    gsummgp0.e $e |- ( ( ph /\ n = i ) -> A = B ) $.
    gsummgp0.b $e |- ( ph -> E. i e. N B = .0. ) $.
    $( If one factor in a finite group sum of the multiplicative group of a
       commutative ring is 0, the whole "sum" (i.e. product) is 0.
       (Contributed by AV, 3-Jan-2019.) $)
    gsummgp0 $p |- ( ph -> ( G gsum ( n e. N |-> A ) ) = .0. ) $=
      ( wceq co wcel adantr cmpt cgsu cv wa csn cdif cun cmulr difsnid ad2antrl
      cfv eqcomd mpteq1d oveq2d cbs eqid mgpbas mgpplusg ccmn crngmgp syl diffi
      ccrg cfn eldifi syl2an simprl neldifsnd crg cmnd crngring ringmnd mndidcl
      simpl 3syl wb eleq1 ad2antll mpbird weq adantlr gsumunsnd oveq2 ralrimiva
      sylan2 gsummptcl ringrz syl2anc eqtrd 3eqtrd rexlimddv ) ACIQZGFHBUAZUBRZ
      IQEHPAEUCZHSZWLUDZUDZWNGFHWOUEZUFZWSUGZBUAZUBRGFWTBUAUBRZCDUHUKZRZIWRWMXB
      GUBWRFHXABWPHXAQAWLWPXAHHWOUIULUJUMUNWRWTDUOUKZXDFGWOHBCXFDGJXFUPZUQZDXDG
      JXDUPZURAGUSSZWQADVCSZXJLDGJUTVAZTAWTVDSZWQAHVDSXMMHWSVBVAZTWRAFUCZHSZBXF
      SZXOWTSZAWQVNXOHWSVEZNVFAWPWLVGWRWOHVHWRCXFSZIXFSZAYAWQADVISZDVJSYAAXKYBL
      DVKVAZDVLXFDIXGKVMVOTWLXTYAVPAWPCIXFVQVRVSAFEVTBCQWQOWAWBWRXEXCIXDRZIWLXE
      YDQAWPCIXCXDWCVRWRYBXCXFSZYDIQAYBWQYCTAYEWQAXFFGWTBXHXLXNAXQFWTXRAXPXQXSN
      WEWDWFTXFDXDXCIXGXIKWGWHWIWJWK $.
  $}

  ${
    $d ph i j x y $.  $d B i j x y $.  $d I i j x y $.  $d J i j x y $.
    $d R i j x $.  $d .x. i j x y $.  $d V i $.  $d X i j y $.  $d Y i j x $.
    $d .0. i j $.
    gsumdixp.b $e |- B = ( Base ` R ) $.
    gsumdixp.t $e |- .x. = ( .r ` R ) $.
    gsumdixp.z $e |- .0. = ( 0g ` R ) $.
    gsumdixp.i $e |- ( ph -> I e. V ) $.
    gsumdixp.j $e |- ( ph -> J e. W ) $.
    gsumdixp.r $e |- ( ph -> R e. Ring ) $.
    gsumdixp.x $e |- ( ( ph /\ x e. I ) -> X e. B ) $.
    gsumdixp.y $e |- ( ( ph /\ y e. J ) -> Y e. B ) $.
    gsumdixp.xf $e |- ( ph -> ( x e. I |-> X ) finSupp .0. ) $.
    gsumdixp.yf $e |- ( ph -> ( y e. J |-> Y ) finSupp .0. ) $.
    $( Distribute a binary product of sums to a sum of binary products in a
       ring.  (Contributed by Mario Carneiro, 8-Mar-2015.)  (Revised by AV,
       10-Jul-2019.) $)
    gsumdixp $p |- ( ph ->
        ( ( R gsum ( x e. I |-> X ) ) .x. ( R gsum ( y e. J |-> Y ) ) ) =
          ( R gsum ( x e. I , y e. J |-> ( X .x. Y ) ) ) ) $=
      ( vi vj co cmpt2 cgsu cmpt cfv csupp cxp crg wcel ccmn ringcmn syl adantr
      cv wa eqid fmptd simpl ffvelrn syl2an simpr ringcl syl3anc fsuppimpd xpfi
      wf cfn syl2anc wbr wn wceq wo ianor brxp xchnxbir cdif simprl eldif sylan
      biimpri cvv wss ssid a1i fvex eqeltri suppssr syldan oveq1d ringlz simprr
      c0g eqtrd oveq2d ringrz jaodan sylan2b anasss gsum2d2 nffvmpt1 nfcv fveq2
      nfov weq oveqan12d cbvmpt2 w3a simp2 3adant3 fvmpt2 simp3 3adant2 oveq12d
      mpt2eq3dva syl5eq mpteq2dv cbvmpt syl6eq mpteq2dva 3eqtr3d cplusg adantlr
      nfmpt 3expa cfsupp gsummulc2 gsumcl gsummulc1 3eqtrrd ) AEBCGHKLFUFZUGZUH
      UFZEBGECHYOUIZUHUFZUIZUHUFZEBGKECHLUIZUHUFZFUFZUIZUHUFEBGKUIZUHUFUUCFUFAE
      UDUEGHUDUSZUUFUJZUEUSZUUBUJZFUFZUGZUHUFEUDGEUEHUUKUIZUHUFZUIZUHUFYQUUAAGD
      HUUFMUKUFZUUBMUKUFZULZUDUEEIJUUKMNPAEUMUNZEUOUNSEUPUQZQAHJUNZUUGGUNZRURAU
      VBUUIHUNZUTZUTZUUSUUHDUNZUUJDUNZUUKDUNAUUSUVDSURZAGDUUFVKZUVBUVFUVDABGKDU
      UFTUUFVAZVBZUVBUVCVCGDUUGUUFVDVEZAHDUUBVKZUVCUVGUVDACHLDUUBUAUUBVAZVBZUVB
      UVCVFHDUUIUUBVDVEZDEFUUHUUJNOVGVHAUUPVLUNUUQVLUNUURVLUNAUUFMUBVIAUUBMUCVI
      UUPUUQVJVMAUVDUUGUUIUURVNZVOZUUKMVPZUVRUVEUUGUUPUNZVOZUUIUUQUNZVOZVQZUVSU
      VTUWBUTUWDUVQUVTUWBVRUUGUUIUUPUUQVSVTUVEUWAUVSUWCUVEUWAUTZUUKMUUJFUFZMUWE
      UUHMUUJFUVEUWAUUGGUUPWAUNZUUHMVPUVEUVBUWAUWGAUVBUVCWBUWGUVBUWAUTUUGGUUPWC
      WEWDUVEGDWFUUFIUUPUUGMAUVIUVDUVKURUUPUUPWGUVEUUPWHWIAGIUNUVDQURMWFUNUVEME
      WQUJWFPEWQWJWKWIZWLWMWNUVEUWFMVPZUWAUVEUUSUVGUWIUVHUVPDEFUUJMNOPWOVMURWRU
      VEUWCUTZUUKUUHMFUFZMUWJUUJMUUHFUVEUWCUUIHUUQWAUNZUUJMVPUVEUVCUWCUWLAUVBUV
      CWPUWLUVCUWCUTUUIHUUQWCWEWDUVEHDWFUUBJUUQUUIMAUVMUVDUVOURUUQUUQWGUVEUUQWH
      WIAUVAUVDRURUWHWLWMWSUVEUWKMVPZUWCUVEUUSUVFUWMUVHUVLDEFUUHMNOPWTVMURWRXAX
      BXCXDAUULYPEUHAUULBCGHBUSZUUFUJZCUSZUUBUJZFUFZUGYPUDUEBCGHUUKUWRBUUHUUJFB
      GKUUGXEBFXFBUUJXFXHZCUUHUUJFCUUHXFCFXFZCHLUUIXEZXHUDUWRXFUEUWRXFZUDBXIZUE
      CXIZUUHUWOUUJUWQFUUGUWNUUFXGZUUIUWPUUBXGZXJXKABCGHUWRYOAUWNGUNZUWPHUNZXLZ
      UWOKUWQLFUXIUXGKDUNZUWOKVPAUXGUXHXMAUXGUXJUXHTXNBGKDUUFUVJXOVMUXIUXHLDUNZ
      UWQLVPAUXGUXHXPAUXHUXKUXGUAXQCHLDUUBUVNXOVMXRZXSXTWSAUUOYTEUHAUUOBGECHUWR
      UIZUHUFZUIYTUDBGUUNUXNBEUUMUHBEXFBUHXFBUEHUUKBHXFUWSYHXHUDUXNXFUXCUUMUXME
      UHUXCUUMUEHUWOUUJFUFZUIUXMUXCUEHUUKUXOUXCUUHUWOUUJFUXEWNYAUECHUXOUWRCUWOU
      UJFCUWOXFUWTUXAXHUXBUXDUUJUWQUWOFUXFWSYBYCWSYBABGUXNYSAUXGUTZUXMYREUHUXPC
      HUWRYOAUXGUXHUWRYOVPUXLYIYDWSYDXTWSYEAYTUUEEUHABGYSUUDUXPHDEYFUJZEFCJLKMN
      PUXQVAZOAUUSUXGSURAUVAUXGRURTAUXHUXKUXGUAYGAUUBMYJVNUXGUCURYKYDWSAGDUXQEF
      BIKUUCMNPUXROSQAHDUUBEJMNPUUTRUVOUCYLTUBYMYN $.
  $}

  ${
    $d x y z I $.  $d x y z M $.  $d x y z ph $.  $d x y z R $.  $d x y z S $.
    $d x V $.  $d x W $.  $d x y z Y $.  $d x y z Z $.
    prdsmgp.y $e |- Y = ( S Xs_ R ) $.
    prdsmgp.m $e |- M = ( mulGrp ` Y ) $.
    prdsmgp.z $e |- Z = ( S Xs_ ( mulGrp o. R ) ) $.
    prdsmgp.i $e |- ( ph -> I e. V ) $.
    prdsmgp.s $e |- ( ph -> S e. W ) $.
    prdsmgp.r $e |- ( ph -> R Fn I ) $.
    $( The multiplicative monoid of a product is the product of the
       multiplicative monoids of the factors.  (Contributed by Mario Carneiro,
       11-Mar-2015.) $)
    prdsmgp $p |- ( ph ->
      ( ( Base ` M ) = ( Base ` Z ) /\ ( +g ` M ) = ( +g ` Z ) ) ) $=
      ( vx cbs cfv cmgp eqid vy vz wceq cplusg cv cixp ccom wa mgpbas wfn fvco2
      wcel sylan eqcomd fveq2d syl5eq ixpeq2dva eqcomi prdsbas2 cvv crn wss a1i
      fnmgp fnco syl3anc 3eqtr4d cmulr mgpplusg co cmpt cmpt2 oveqd mpt2eq123dv
      ssv mpteq2dva fnex syl2anc cdm fndm syl prdsmulr prdsplusg syl5eqr jca )
      AEQRZIQRZUCEUDRZIUDRZUCAPDPUEZBRZQRZUFPDWJSBUGZRZQRZUFWFWGAPDWLWOAWJDULZU
      HZWLWKSRZQRWOWLWKWRWRTWLTUIWQWRWNQWQWNWRABDUJZWPWNWRUCODSBWJUKUMUNUOUPUQA
      PWFBCDGFHJHQRZWFWTHEKWTTUIURZNMOUSAPWGWMCDGFILWGTZNMASUTUJZWSBVAZUTVBZWMD
      UJZXCAVDVCOXEAXDVOVCUTDSBVEVFZUSVGZAWHHVHRZWIHXIEKXITZVIAPUAWFWFUBDUBUEZW
      JRZXKUAUERZXKBRZVHRZVJZVKZVLPUAWGWGUBDXLXMXKWMRZUDRZVJZVKZVLXIWIAPUAWFWFX
      QWGWGYAXHXHAUBDXPXTAXKDULZUHZXOXSXLXMYCXOXNSRZUDRXSXNXOYDYDTXOTVIYCYDXRUD
      YCXRYDAWSYBXRYDUCODSBXKUKUMUNUOUPVMVPVNAUBWFHBCXIPUADGUTJNAWSDFULZBUTULOM
      DFBVQVRXAAWSBVSDUCODBVTWAXJWBAUBWGIWIWMCPUADGUTLNAXFYEWMUTULXGMDFWMVQVRXB
      AXFWMVSDUCXGDWMVTWAWITWCVGWDWE $.
  $}

  ${
    $d x B $.  $d x F $.  $d x G $.  $d x I $.  $d x R $.  $d x S $.  $d x V $.
    $d x ph $.  $d x W $.  $d x .x. $.  $d x Y $.
    prdsmulrcl.y $e |- Y = ( S Xs_ R ) $.
    prdsmulrcl.b $e |- B = ( Base ` Y ) $.
    prdsmulrcl.t $e |- .x. = ( .r ` Y ) $.
    prdsmulrcl.s $e |- ( ph -> S e. V ) $.
    prdsmulrcl.i $e |- ( ph -> I e. W ) $.
    prdsmulrcl.r $e |- ( ph -> R : I --> Ring ) $.
    prdsmulrcl.f $e |- ( ph -> F e. B ) $.
    prdsmulrcl.g $e |- ( ph -> G e. B ) $.
    $( A structure product of rings has closed binary operation.  (Contributed
       by Mario Carneiro, 11-Mar-2015.) $)
    prdsmulrcl $p |- ( ph -> ( F .x. G ) e. B ) $=
      ( wcel vx co cv cfv cmulr cmpt crg wf wfn ffn syl prdsmulrval cbs wral wa
      ffvelrnda adantr simpr prdsbasprj eqid ringcl ralrimiva prdsbasmpt mpbird
      syl3anc eqeltrd ) AFGEUBUAHUAUCZFUDZVGGUDZVGCUDZUEUDZUBZUFZBAUABCDEFGHIJK
      LMOPAHUGCUHCHUIZQHUGCUJUKZRSNULAVMBTVLVJUMUDZTZUAHUNAVQUAHAVGHTZUOZVJUGTV
      HVPTVIVPTVQAHUGVGCQUPVSBCDFHVGIJKLMADITVROUQZAHJTVRPUQZAVNVRVOUQZAFBTVRRU
      QAVRURZUSVSBCDGHVGIJKLMVTWAWBAGBTVRSUQWCUSVPVJVKVHVIVPUTVKUTVAVEVBAUABCDV
      LHIJKLMOPVOVCVDVF $.
  $}

  ${
    $d w I $.  $d w x y z ph $.  $d w x y R $.  $d w x y S $.  $d w x y z Y $.
    $d w V $.  $d w W $.
    prdsringd.y $e |- Y = ( S Xs_ R ) $.
    prdsringd.i $e |- ( ph -> I e. W ) $.
    prdsringd.s $e |- ( ph -> S e. V ) $.
    prdsringd.r $e |- ( ph -> R : I --> Ring ) $.
    $( A product of rings is a ring.  (Contributed by Mario Carneiro,
       11-Mar-2015.) $)
    prdsringd $p |- ( ph -> Y e. Ring ) $=
      ( vx vw wcel cfv cmnd co crg eqid adantr vy vz cgrp cmgp cv cmulr wceq wa
      cplusg cbs wral wf wss ringgrp ssriv fss sylancl prdsgrpd ccom cprds cres
      mgpf fco2 sylancr prdsmndd eqidd wfn ffn syl prdsmgp simpld simprd oveqdr
      mndpropd mpbird w3a cmpt ffvelrnda simplr1 simpr prdsbasprj simpr2 simpr3
      ringdi prdsplusgfval oveq2d prdsmulrfval oveq12d 3eqtr4d mpteq2dva simpr1
      syl13anc ringmnd prdsplusgcl prdsmulrval prdsplusgval ringdir ralrimivvva
      prdsmulrcl oveq1d jca isring syl3anbrc ) AGUCNGUDOZPNZLUEZUAUEZUBUEZGUIOZ
      QZGUFOZQZXFXGXKQZXFXHXKQZXIQZUGZXFXGXIQZXHXKQZXNXGXHXKQZXIQZUGZUHZUBGUJOZ
      UKUAYCUKLYCUKGRNABCDEFGHIJADRBULZRUCUMDUCBULKLRUCXFUNUODRUCBUPUQURAXECUDB
      USZUTQZPNAYECDEFYFYFSZIJARPUDRVAULYDDPYEULVBKDRPUDBVCVDVEALUAXDUJOZXDYFAY
      HVFAYHYFUJOUGZXDUIOZYFUIOZUGZABCDXDFEGYFHXDSZYGIJAYDBDVGZKDRBVHVIZVJZVKAX
      FYHNXGYHNUHLUAYJYKAYIYLYPVLVMVNVOAYBLUAUBYCYCYCAXFYCNZXGYCNZXHYCNZVPZUHZX
      PYAUUAMDMUEZXFOZUUBXJOZUUBBOZUFOZQZVQMDUUBXMOZUUBXNOZUUEUIOZQZVQXLXOUUAMD
      UUGUUKUUAUUBDNZUHZUUCUUBXGOZUUBXHOZUUJQZUUFQZUUCUUNUUFQZUUCUUOUUFQZUUJQZU
      UGUUKUUMUUERNZUUCUUEUJOZNZUUNUVBNZUUOUVBNZUUQUUTUGUUADRUUBBAYDYTKTZVRZUUM
      YCBCXFDUUBEFGHYCSZUUACENZUULAUVIYTJTZTZUUADFNZUULAUVLYTITZTZUUAYNUULAYNYT
      YOTZTZYQYRYSAUULVSZUUAUULVTZWAZUUMYCBCXGDUUBEFGHUVHUVKUVNUVPUUAYRUULAYQYR
      YSWBZTZUVRWAZUUMYCBCXHDUUBEFGHUVHUVKUVNUVPUUAYSUULAYQYRYSWCZTZUVRWAZUVBUU
      JUUEUUFUUCUUNUUOUVBSZUUJSZUUFSZWDWLUUMUUDUUPUUCUUFUUMYCXIBCXGXHDUUBEFGHUV
      HUVKUVNUVPUWAUWDXISZUVRWEWFUUMUUHUURUUIUUSUUJUUMYCBCXKXFXGDUUBEFGHUVHUVKU
      VNUVPUVQUWAXKSZUVRWGUUMYCBCXKXFXHDUUBEFGHUVHUVKUVNUVPUVQUWDUWJUVRWGZWHWIW
      JUUAMYCBCXKXFXJDEFGHUVHUVJUVMUVOAYQYRYSWKZUUAYCXIBCXGXHDEFGHUVHUWIUVJUVMA
      DPBULZYTAYDRPUMUWMKLRPXFWMUODRPBUPUQTZUVTUWCWNUWJWOUUAMYCXIBCXMXNDEFGHUVH
      UVJUVMUVOUUAYCBCXKXFXGDEFGHUVHUWJUVJUVMUVFUWLUVTWSUUAYCBCXKXFXHDEFGHUVHUW
      JUVJUVMUVFUWLUWCWSZUWIWPWIUUAMDUUBXQOZUUOUUFQZVQMDUUIUUBXSOZUUJQZVQXRXTUU
      AMDUWQUWSUUMUUCUUNUUJQZUUOUUFQZUUSUUNUUOUUFQZUUJQZUWQUWSUUMUVAUVCUVDUVEUX
      AUXCUGUVGUVSUWBUWEUVBUUJUUEUUFUUCUUNUUOUWFUWGUWHWQWLUUMUWPUWTUUOUUFUUMYCX
      IBCXFXGDUUBEFGHUVHUVKUVNUVPUVQUWAUWIUVRWEWTUUMUUIUUSUWRUXBUUJUWKUUMYCBCXK
      XGXHDUUBEFGHUVHUVKUVNUVPUWAUWDUWJUVRWGWHWIWJUUAMYCBCXKXQXHDEFGHUVHUVJUVMU
      VOUUAYCXIBCXFXGDEFGHUVHUWIUVJUVMUWNUWLUVTWNUWCUWJWOUUAMYCXIBCXNXSDEFGHUVH
      UVJUVMUVOUWOUUAYCBCXKXGXHDEFGHUVHUWJUVJUVMUVFUVTUWCWSUWIWPWIXAWRLUAUBYCXI
      GXKXDUVHYMUWIUWJXBXC $.
  $}

  ${
    $d ph x y $.  $d R x y $.  $d S x y $.  $d Y x y $.
    prdscrngd.y $e |- Y = ( S Xs_ R ) $.
    prdscrngd.i $e |- ( ph -> I e. W ) $.
    prdscrngd.s $e |- ( ph -> S e. V ) $.
    prdscrngd.r $e |- ( ph -> R : I --> CRing ) $.
    $( A product of commutative rings is a commutative ring.  Since the
       resulting ring will have zero divisors in all nontrivial cases, this
       cannot be strengthened much further.  (Contributed by Mario Carneiro,
       11-Mar-2015.) $)
    prdscrngd $p |- ( ph -> Y e. CRing ) $=
      ( vx vy crg wcel cmgp cfv ccmn ccrg wf wss crngring fss sylancl prdsringd
      cv ssriv ccom cprds co eqid cres wfn wral cvv fnmgp fnssres mp2an crngmgp
      fvres eqeltrd rgen ffnfv mpbir2an fco2 sylancr prdscmnd eqidd wceq cplusg
      ssv cbs ffn syl prdsmgp simpld wa simprd oveqdr cmnpropd mpbird sylanbrc
      iscrng ) AGNOGPQZROZGSOABCDEFGHIJADSBTZSNUADNBTKLSNLUFZUBUGDSNBUCUDUEAWEC
      PBUHZUIUJZROAWHCDEFWIWIUKZIJASRPSULZTZWFDRWHTWLWKSUMZWGWKQZROZLSUNPUOUMSU
      OUAWMUPSVKUOSPUQURWOLSWGSOWNWGPQZRWGSPUTWGWPWPUKUSVAVBLSRWKVCVDKDSRPBVEVF
      VGALMWDVLQZWDWIAWQVHAWQWIVLQVIZWDVJQZWIVJQZVIZABCDWDFEGWIHWDUKZWJIJAWFBDU
      MKDSBVMVNVOZVPAWGWQOMUFWQOVQLMWSWTAWRXAXCVRVSVTWAGWDXBWCWB $.
  $}

  ${
    $d ph x y $.  $d R x y $.  $d S x y $.  $d Y x y $.
    prds1.y $e |- Y = ( S Xs_ R ) $.
    prds1.i $e |- ( ph -> I e. W ) $.
    prds1.s $e |- ( ph -> S e. V ) $.
    prds1.r $e |- ( ph -> R : I --> Ring ) $.
    $( Value of the ring unit in a structure family product.  (Contributed by
       Mario Carneiro, 11-Mar-2015.) $)
    prds1 $p |- ( ph -> ( 1r o. R ) = ( 1r ` Y ) ) $=
      ( vx vy c0g cmgp ccom cfv cur eqid crg cprds co cmnd cres wf mgpf sylancr
      fco2 prds0g cbs eqidd wceq cplusg wfn ffn syl prdsmgp simpld cv wa simprd
      wcel oveqdr grpidpropd eqtr4d df-ur coeq1i coass eqtri ringidval 3eqtr4g
      ) ANOBPZPZGOQZNQZRBPZGRQZAVMCVLUAUBZNQVOAVLCDEFVRVRSZIJATUCOTUDUEDTBUEZDU
      CVLUEUFKDTUCOBUHUGUIALMVNUJQZVNVRAWAUKAWAVRUJQULZVNUMQZVRUMQZULZABCDVNFEG
      VRHVNSZVSIJAVTBDUNKDTBUOUPUQZURALUSWAVBMUSWAVBUTLMWCWDAWBWEWGVAVCVDVEVPNO
      PZBPVMRWHBVFVGNOBVHVIGVQVNWFVQSVJVK $.
  $}

  ${
    pwsring.y $e |- Y = ( R ^s I ) $.
    $( A structure power of a ring is a ring.  (Contributed by Mario Carneiro,
       11-Mar-2015.) $)
    pwsring $p |- ( ( R e. Ring /\ I e. V ) -> Y e. Ring ) $=
      ( crg wcel wa csca cfv csn cxp cprds co eqid pwsval cvv simpr fvexd wf
      fconst6g adantr prdsringd eqeltrd ) AFGZBCGZHZDAIJZBAKLZMNZFAUHBFCDEUHOPU
      GUIUHBQCUJUJOUEUFRUGAISUEBFUITUFBAFUAUBUCUD $.
  $}

  ${
    pws1.y $e |- Y = ( R ^s I ) $.
    pws1.o $e |- .1. = ( 1r ` R ) $.
    $( Value of the ring unit in a structure power.  (Contributed by Mario
       Carneiro, 11-Mar-2015.) $)
    pws1 $p |- ( ( R e. Ring /\ I e. V ) -> ( I X. { .1. } ) = ( 1r ` Y ) ) $=
      ( crg wcel cur cfv csca csn cxp ccom cvv wfn c0g cmgp a1i wa cprds pwsval
      co eqid fveq2d simpr fvexd wf fconst6g adantr prds1 wceq crn wss fn0g ssv
      fnmgp fnco syl3anc df-ur fneq1i sylibr elex fcoconst syl2anc sneqi xpeq2i
      syl6eqr 3eqtr2rd ) AHIZCDIZUAZEJKALKZCAMNZUBUDZJKJVOOZCBMZNZVMEVPJAVNCHDE
      FVNUEUCUFVMVOVNCPDVPVPUEVKVLUGVMALUHVKCHVOUIVLCAHUJUKULVMVQCAJKZMZNZVSVMJ
      PQZAPIZVQWBUMVMRSOZPQZWCVMRPQZSPQZSUNZPUOZWFWGVMUPTWHVMURTWJVMWIUQTPPRSUS
      UTPJWEVAVBVCVKWDVLAHVDUKJCPAVEVFVRWACBVTGVGVHVIVJ $.
  $}

  ${
    pwscrng.y $e |- Y = ( R ^s I ) $.
    $( A structure power of a commutative ring is a commutative ring.
       (Contributed by Mario Carneiro, 11-Mar-2015.) $)
    pwscrng $p |- ( ( R e. CRing /\ I e. V ) -> Y e. CRing ) $=
      ( ccrg wcel wa csca cfv csn cxp cprds co eqid pwsval cvv simpr fvexd wf
      fconst6g adantr prdscrngd eqeltrd ) AFGZBCGZHZDAIJZBAKLZMNZFAUHBFCDEUHOPU
      GUIUHBQCUJUJOUEUFRUGAISUEBFUITUFBAFUAUBUCUD $.
  $}

  ${
    pwsmgp.y $e |- Y = ( R ^s I ) $.
    pwsmgp.m $e |- M = ( mulGrp ` R ) $.
    pwsmgp.z $e |- Z = ( M ^s I ) $.
    pwsmgp.n $e |- N = ( mulGrp ` Y ) $.
    pwsmgp.b $e |- B = ( Base ` N ) $.
    pwsmgp.c $e |- C = ( Base ` Z ) $.
    pwsmgp.p $e |- .+ = ( +g ` N ) $.
    pwsmgp.q $e |- .+b = ( +g ` Z ) $.
    $( The multiplicative group of the power structure resembles the power of
       the multiplicative group.  (Contributed by Mario Carneiro,
       12-Mar-2015.) $)
    pwsmgp $p |- ( ( R e. V /\ I e. W ) -> ( B = C /\ .+ = .+b ) ) $=
      ( wcel wa wceq cbs cfv csca csn cxp cprds cmgp ccom cplusg cvv eqid simpr
      co fvexd fnconstg adantr prdsmgp simpld pwsval fveq2d syl5eq cpws eqeltri
      wfn fvex sylancr mgpsca eqcomi fnmgp elex fcoconst sneqi syl6reqr oveq12d
      a1i xpeq2i eqtrd 3eqtr4d 3eqtr4g simprd jca ) EIUAZFJUAZUBZABUCCDUCWGHUDU
      EZLUDUEZABWGEUFUEZFEUGUHZUIUPZUJUEZUDUEZWJUJWKUKZUIUPZUDUEZWHWIWGWNWQUCZW
      MULUEZWPULUEZUCZWGWKWJFWMJUMWLWPWLUNWMUNWPUNWEWFUOZWGEUFUQWEWKFVGWFFEIURU
      SUTZVAWGHWMUDWGHKUJUEWMPWGKWLUJEWJFIJKMWJUNZVBVCVDZVCWGLWPUDWGLGFVEUPZWPO
      WGXFGUFUEZFGUGZUHZUIUPZWPWGGUMUAWFXFXJUCGEUJUEZUMNEUJVHVFXBGXGFUMJXFXFUNX
      GUNVBVIWGXGWJXIWOUIXGWJUCWGWJXGEWJGNXDVJVKVRWGWOFXKUGZUHZXIWGUJUMVGEUMUAZ
      WOXMUCVLWEXNWFEIVMUSUJFUMEVNVIXHXLFGXKNVOVSVPVQVTVDZVCWAQRWBWGHULUEZLULUE
      ZCDWGWSWTXPXQWGWRXAXCWCWGHWMULXEVCWGLWPULXOVCWASTWBWD $.
  $}

  ${
    $d p q u v .+ $.  $d a b p q u v w x y z ph $.  $d a b p q u v w x y z U $.
    $d p q u x .1. $.  $d p q u v w B $.  $d a b p q u x y z F $.  $d p q R $.
    $d a b p q u v x y z V $.  $d p q u v .x. $.
    imasring.u $e |- ( ph -> U = ( F "s R ) ) $.
    imasring.v $e |- ( ph -> V = ( Base ` R ) ) $.
    imasring.p $e |- .+ = ( +g ` R ) $.
    imasring.t $e |- .x. = ( .r ` R ) $.
    imasring.o $e |- .1. = ( 1r ` R ) $.
    imasring.f $e |- ( ph -> F : V -onto-> B ) $.
    imasring.e1 $e |- ( ( ph /\ ( a e. V /\ b e. V ) /\ ( p e. V /\ q e. V ) )
      -> ( ( ( F ` a ) = ( F ` p ) /\ ( F ` b ) = ( F ` q ) )
        -> ( F ` ( a .+ b ) ) = ( F ` ( p .+ q ) ) ) ) $.
    imasring.e2 $e |- ( ( ph /\ ( a e. V /\ b e. V ) /\ ( p e. V /\ q e. V ) )
      -> ( ( ( F ` a ) = ( F ` p ) /\ ( F ` b ) = ( F ` q ) )
        -> ( F ` ( a .x. b ) ) = ( F ` ( p .x. q ) ) ) ) $.
    imasring.r $e |- ( ph -> R e. Ring ) $.
    $( The image structure of a ring is a ring.  (Contributed by Mario
       Carneiro, 14-Jun-2015.) $)
    imasring $p |- ( ph -> ( U e. Ring /\ ( F ` .1. ) = ( 1r ` U ) ) ) $=
      ( vu vv vw vx vy vz crg wcel cfv cur wceq cplusg cmulr imasbas eqidd cgrp
      c0g a1i ringgrp syl eqid imasgrp simpld cxp wf cv co wa cbs adantr simprl
      eleqtrd simprr ringcl syl3anc eleqtrrd caovclg imasmulf fovrn syl3an1 w3a
      wrex crn wfo forn eleq2d 3anbi123d wb fofn fvelrnb bitr3d 3reeanv syl6bbr
      wi simp2 3ad2ant1 3adant3r3 simp3 simpr3 ringass syl13anc fveq2d 3adantr3
      wfn simpl imasmulval simpr1 3eqtr4d oveq1d 3adant3r1 oveq2d simp1 oveq12d
      3adantr1 eqeq12d syl5ibcom 3exp2 imp32 rexlimdv rexlimdvva sylbid ringacl
      imp ringdi 3adantr2 imasaddval 3adant3r2 ringdir ringidcl ffvelrnd biimpa
      fof simpr ringlidm syl2anc eqtrd oveq2 rexlimdva mpd3an3 ringridm isringd
      id oveq1 wral jcad sylbird ralrimiv isringid mpbi2and eqcomd jca ) AFUIUJ
[encoded data, 4560 characters]
      YHUCVYIFUURUUPUUOVYIVCUVGUUPVCUUJVBUUKUULUUM $.
  $}

  ${
    $d p q u x y .+ $.  $d p q u .1. $.  $d a b p q U $.  $d a b p q u x y V $.
    $d a b p q u .~ $.  $d a b p q u x y ph $.  $d p q u x y .x. $.
    $d p q u R $.
    qusring2.u $e |- ( ph -> U = ( R /s .~ ) ) $.
    qusring2.v $e |- ( ph -> V = ( Base ` R ) ) $.
    qusring2.p $e |- .+ = ( +g ` R ) $.
    qusring2.t $e |- .x. = ( .r ` R ) $.
    qusring2.o $e |- .1. = ( 1r ` R ) $.
    qusring2.r $e |- ( ph -> .~ Er V ) $.
    qusring2.e1 $e |- ( ph ->
      ( ( a .~ p /\ b .~ q ) -> ( a .+ b ) .~ ( p .+ q ) ) ) $.
    qusring2.e2 $e |- ( ph ->
      ( ( a .~ p /\ b .~ q ) -> ( a .x. b ) .~ ( p .x. q ) ) ) $.
    qusring2.x $e |- ( ph -> R e. Ring ) $.
    $( The quotient structure of a ring is a ring.  (Contributed by Mario
       Carneiro, 14-Jun-2015.) $)
    qusring2 $p |- ( ph -> ( U e. Ring /\ [ .1. ] .~ = ( 1r ` U ) ) ) $=
      ( vu vx vy crg wcel cec cur cfv wceq wa cv cmpt cqs cvv eqid wer cbs fvex
      syl6eqel erex sylc qusval quslem co adantr simprl eleqtrd ringacl syl3anc
      simprr eleqtrrd ercpbl ringcl imasring divsfval eqcomd eqeq1d anbi2d
      mpbird ) AFUEUFZGCUGZFUHUIZUJZUKWAGUBHUBULCUGUMZUIZWCUJZUKAHCUNBDEFGWEHIJ
      KLAUBCDFWEHUOUEMNWEUPZAHCUQHUOUFCUOUFRAHDURUIZUONDURUSUTZHCUOVAVBZUAVCNOP
      QAUBCDFWEHUOUEMNWHWKUAVDAUBKULZLULZJULZIULZBCWEHUCUDRWJWHAUCULZHUFZUDULZH
      UFZUKZUKZWPWRBVEZWIHXADUEUFZWPWIUFZWRWIUFZXBWIUFAXCWTUAVFZXAWPHWIAWQWSVGA
      HWIUJWTNVFZVHZXAWRHWIAWQWSVKXGVHZWIBDWPWRWIUPZOVIVJXGVLSVMAUBWLWMWNWOECWE
      HUCUDRWJWHXAWPWREVEZWIHXAXCXDXEXKWIUFXFXHXIWIDEWPWRXJPVNVJXGVLTVMUAVOAWDW
      GWAAWBWFWCAWFWBAUBGCWEHRWJWHVPVQVRVSVT $.
  $}

  ${
    $d A k $.  $d B k $.  $d N k $.  $d R k $.  $d S k $.  $d .x. k $.
    $d .X. k $.  $d .^ k $.  $d .+ k $.
    crngbinom.s $e |- S = ( Base ` R ) $.
    crngbinom.m $e |- .X. = ( .r ` R ) $.
    crngbinom.t $e |- .x. = ( .g ` R ) $.
    crngbinom.a $e |- .+ = ( +g ` R ) $.
    crngbinom.g $e |- G = ( mulGrp ` R ) $.
    crngbinom.e $e |- .^ = ( .g ` G ) $.
    $( The binomial theorem for commutative rings (special case of
       ~ csrgbinom ): ` ( A + B ) ^ N ` is the sum from ` k = 0 ` to ` N ` of
       ` ( N _C k ) x. ( ( A ^ k ) x. ( B ^ ( N - k ) ) ` .  (Contributed by
       AV, 24-Aug-2019.) $)
    crngbinom $p |- ( ( ( R e. CRing /\ N e. NN0 ) /\ ( A e. S /\ B e. S ) )
                      -> ( N .^ ( A .+ B ) ) = ( R gsum ( k e. ( 0 ... N )
          |-> ( ( N _C k ) .x. ( ( ( N - k ) .^ A ) .X. ( k .^ B ) ) ) ) ) ) $=
      ( wcel wa co ccrg cn0 csrg ccmn w3a cc0 cfz cv cbc cmin cmpt crg crngring
      cgsu wceq ringsrg syl adantr crngmgp simpr 3jca csrgbinom sylan ) DUARZKU
      BRZSZDUCRZJUDRZVEUEAERBERSKABCTITDHUFKUGTKHUHZUITKVIUJTAITVIBITGTFTUKUNTU
      OVFVGVHVEVDVGVEVDDULRVGDUMDUPUQURVDVHVEDJPUSURVDVEUTVAABCDEFGHIJKLMNOPQVB
      VC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Opposite ring
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c oppR $. $( Opposite ring $)

  $( The opposite ring operation. $)
  coppr $a class oppR $.

  $( Define an opposite ring, which is the same as the original ring but with
     multiplication written the other way around.  (Contributed by Mario
     Carneiro, 1-Dec-2014.) $)
  df-oppr $a |- oppR = ( f e. _V |-> ( f sSet
    <. ( .r ` ndx ) , tpos ( .r ` f ) >. ) ) $.

  ${
    $d x R $.  $d x B $.  $d x .x. $.  $d x X $.  $d x Y $.
    opprval.1 $e |- B = ( Base ` R ) $.
    opprval.2 $e |- .x. = ( .r ` R ) $.
    opprval.3 $e |- O = ( oppR ` R ) $.
    $( Value of the opposite ring.  (Contributed by Mario Carneiro,
       1-Dec-2014.) $)
    opprval $p |- O = ( R sSet <. ( .r ` ndx ) , tpos .x. >. ) $=
      ( vx coppr cfv cnx cmulr ctpos cop csts co cvv wcel wceq cv fveq2 syl6eqr
      id tposeqd opeq2d oveq12d df-oppr ovex fvmpt wn c0 fvprc reldmsets ovprc1
      eqtr4d pm2.61i eqtri ) DBIJZBKLJZCMZNZOPZGBQRZURVBSHBHTZUSVDLJZMZNZOPVBQI
      VDBSZVDBVGVAOVHUCVHVFUTUSVHVECVHVEBLJCVDBLUAFUBUDUEUFHUGBVAOUHUIVCUJURUKV
      BBIULBVAOUMUNUOUPUQ $.

    opprmulfval.4 $e |- .xb = ( .r ` O ) $.
    $( Value of the multiplication operation of an opposite ring.  (Contributed
       by Mario Carneiro, 1-Dec-2014.) $)
    opprmulfval $p |- .xb = tpos .x. $=
      ( cmulr cfv ctpos cvv wcel wceq mulrid c0 coppr fvprc syl5eq cnx cop csts
      co fvex eqeltri tposex setsid mpan2 opprval fveq2i syl6reqr wn tpos0 str0
      eqtr2i fveq2d tposeqd 3eqtr4a pm2.61i eqtri ) CEJKZDLZIBMNZVBVCOVDVCBUAJK
      ZVCUBUCUDZJKZVBVDVCMNVCVGODDBJKZMGBJUEUFUGMVCJMBPUHUIEVFJABDEFGHUJUKULVDU
      MZQJKZQLZVBVCVKQVJUNJVEPUOUPVIEQJVIEBRKQHBRSTUQVIDQVIDVHQGBJSTURUSUTVA $.

    $( Value of the multiplication operation of an opposite ring.  Hypotheses
       eliminated by a suggestion of Stefan O'Rear, 30-Aug-2015.  (Contributed
       by Mario Carneiro, 1-Dec-2014.)  (Revised by Mario Carneiro,
       30-Aug-2015.) $)
    opprmul $p |- ( X .xb Y ) = ( Y .x. X ) $=
      ( co ctpos opprmulfval oveqi ovtpos eqtri ) FGCLFGDMZLGFDLCRFGABCDEHIJKNO
      FGDPQ $.

    $( In a commutative ring, the opposite ring is equivalent to the original
       ring (for theorems like ~ unitpropd ).  (Contributed by Mario Carneiro,
       14-Jun-2015.) $)
    crngoppr $p |- ( ( R e. CRing /\ X e. B /\ Y e. B ) ->
        ( X .x. Y ) = ( X .xb Y ) ) $=
      ( ccrg wcel w3a co crngcom opprmul syl6eqr ) BLMFAMGAMNFGDOGFDOFGCOABDFGH
      IPABCDEFGHIJKQR $.
  $}

  ${
    $d x y z R $.  $d x y z O $.
    opprbas.1 $e |- O = ( oppR ` R ) $.
    ${
      opprlem.2 $e |- E = Slot N $.
      opprlem.3 $e |- N e. NN $.
      opprlem.4 $e |- N < 3 $.
      $( Lemma for ~ opprbas and ~ oppradd .  (Contributed by Mario Carneiro,
         1-Dec-2014.) $)
      opprlem $p |- ( E ` R ) = ( E ` O ) $=
        ( cfv cnx cmulr ctpos cop csts co ndxid wne c3 nnrei eqid ltneii ndxarg
        mulrndx neeq12i mpbir setsnid cbs opprval fveq2i eqtr4i ) ABIAJKIZAKIZL
        ZMNOZBIDBIUMUKBABCFGPJBIZUKQCRQCRCGSHUAUOCUKRBCFGUBUCUDUEUFDUNBAUGIZAUL
        DUPTULTEUHUIUJ $.
    $}

    ${
      opprbas.2 $e |- B = ( Base ` R ) $.
      $( Base set of an opposite ring.  (Contributed by Mario Carneiro,
         1-Dec-2014.) $)
      opprbas $p |- B = ( Base ` O ) $=
        ( cbs cfv c1 df-base 1nn 1lt3 opprlem eqtri ) ABFGCFGEBFHCDIJKLM $.
    $}

    ${
      oppradd.2 $e |- .+ = ( +g ` R ) $.
      $( Addition operation of an opposite ring.  (Contributed by Mario
         Carneiro, 1-Dec-2014.) $)
      oppradd $p |- .+ = ( +g ` O ) $=
        ( cplusg cfv c2 df-plusg 2nn 2lt3 opprlem eqtri ) ABFGCFGEBFHCDIJKLM $.
    $}

    $( An opposite ring is a ring.  (Contributed by Mario Carneiro,
       1-Dec-2014.)  (Revised by Mario Carneiro, 30-Aug-2015.) $)
    opprring $p |- ( R e. Ring -> O e. Ring ) $=
      ( vx vy vz wcel cbs cfv cplusg cmulr wceq eqid a1i cv co opprmul syl13anc
      cgrp 3eqtr4g crg cur opprbas oppradd eqidd ringgrp grpprop sylib syl5eqel
      w3a ringcl 3com23 simpl simpr3 simpr2 simpr1 ringass eqcomd oveq1i oveq2i
      wa eqtri ringdir oveq12i ringdi ringidcl ringridm syl5eq ringlidm isringd
      ) AUAGZDEFAHIZAJIZBBKIZAUBIZVLBHILVKVLABCVLMZUCZNVMBJILVKVMABCVMMZUDZNVKV
      NUEVKASGBSGAUFABVQVSUGUHVKDOZVLGZEOZVLGZUJVTWBVNPZWBVTAKIZPZVLVLAVNWEBVTW
      BVPWEMZCVNMZQZVKWCWAWFVLGVLAWEWBVTVPWGUKULUIVKWAWCFOZVLGZUJZVAZWJWFWEPZWJ
      WBWEPZVTWEPZWDWJVNPZVTWBWJVNPZVNPZWMWPWNWMVKWKWCWAWPWNLVKWLUMZVKWAWCWKUNZ
      VKWAWCWKUOZVKWAWCWKUPZVLAWEWJWBVTVPWGUQRURWQWFWJVNPWNWDWFWJVNWIUSVLAVNWEB
      WFWJVPWGCWHQVBWSVTWOVNPWPWRWOVTVNVLAVNWEBWBWJVPWGCWHQZUTVLAVNWEBVTWOVPWGC
      WHQVBTWMWBWJVMPZVTWEPZWFWJVTWEPZVMPZVTXEVNPWDVTWJVNPZVMPWMVKWCWKWAXFXHLWT
      XBXAXCVLVMAWEWBWJVTVPVRWGVCRVLAVNWEBVTXEVPWGCWHQWDWFXIXGVMWIVLAVNWEBVTWJV
      PWGCWHQZVDTWMWJVTWBVMPZWEPZXGWOVMPZXKWJVNPXIWRVMPWMVKWKWAWCXLXMLWTXAXCXBV
      LVMAWEWJVTWBVPVRWGVERVLAVNWEBXKWJVPWGCWHQXIXGWRWOVMXJXDVDTVLAVOVPVOMZVFVK
      WAVAZVOVTVNPVTVOWEPVTVLAVNWEBVOVTVPWGCWHQVLAWEVOVTVPWGXNVGVHXOVTVOVNPVOVT
      WEPVTVLAVNWEBVTVOVPWGCWHQVLAWEVOVTVPWGXNVIVHVJ $.

    $( Bidirectional form of ~ opprring .  (Contributed by Mario Carneiro,
       6-Dec-2014.) $)
    opprringb $p |- ( R e. Ring <-> O e. Ring ) $=
      ( vx vy crg wcel opprring cfv eqid wtru cbs wceq opprbas a1i cv cplusg co
      wa cmulr coppr eqidd oppradd oveqi opprmul eqtr2i ringpropd sylibr impbii
      wb trud ) AFGZBFGZABCHUMBUAIZFGZULBUNUNJZHULUOUJKDEALIZAUNKUQUBUQUNLIMKUQ
      BUNUPUQABCUQJZNZNODPZEPZAQIZRUTVAUNQIZRMKUTUQGVAUQGSSZVBVCUTVAVBBUNUPVBAB
      CVBJUCUCUDOUTVAATIZRZUTVAUNTIZRZMVDVHVAUTBTIZRVFUQBVGVIUNUTVAUSVIJZUPVGJU
      EUQAVIVEBVAUTURVEJCVJUEUFOUGUKUHUI $.

    ${
      oppr0.2 $e |- .0. = ( 0g ` R ) $.
      $( Additive identity of an opposite ring.  (Contributed by Mario
         Carneiro, 1-Dec-2014.) $)
      oppr0 $p |- .0. = ( 0g ` O ) $=
        ( vy vx cv cbs cfv wcel cplusg co wceq wa wral cio c0g eqid grpidval
        opprbas oppradd eqtr4i ) CFHZAIJZKUDGHZALJZMUFNUFUDUGMUFNOGUEPOFQBRJZGU
        EUGFACUESZUGSZETGUEUGFBUHUEABDUIUAUGABDUJUBUHSTUC $.
    $}

    ${
      oppr1.2 $e |- .1. = ( 1r ` R ) $.
      $( Multiplicative identity of an opposite ring.  (Contributed by Mario
         Carneiro, 1-Dec-2014.) $)
      oppr1 $p |- .1. = ( 1r ` O ) $=
        ( vx vy cmgp cfv c0g cv cmulr co wceq wa wral cio eqid opprmul eqeq1i
        cur cbs anbi12ci ralbii anbi2i iotabii opprbas mgpbas mgpplusg grpidval
        wcel 3eqtr4i ringidval 3eqtr4ri ) CHIZJIZAHIZJIZCUAIZBFKZAUBIZUKZUTGKZC
        LIZMZVCNZVCUTVDMZVCNZOZGVAPZOZFQVBUTVCALIZMZVCNZVCUTVLMZVCNZOZGVAPZOZFQ
        UPURVKVSFVJVRVBVIVQGVAVFVPVHVNVEVOVCVAAVDVLCUTVCVARZVLRZDVDRZSTVGVMVCVA
        AVDVLCVCUTVTWADWBSTUCUDUEUFGVAVDFUOUPVACUOUORZVAACDVTUGUHCVDUOWCWBUIUPR
        UJGVAVLFUQURVAAUQUQRZVTUHAVLUQWDWAUIURRUJULCUSUOWCUSRUMABUQWDEUMUN $.
    $}

    ${
      opprneg.2 $e |- N = ( invg ` R ) $.
      $( The negative function in an opposite ring.  (Contributed by Mario
         Carneiro, 5-Dec-2014.)  (Revised by Mario Carneiro, 2-Oct-2015.) $)
      opprneg $p |- N = ( invg ` O ) $=
        ( vx vy cbs cfv cv cplusg co c0g wceq crio cmpt cminusg eqid grpinvfval
        opprbas oppradd oppr0 eqtr4i ) BFAHIZGJFJAKIZLAMIZNGUDOPCQIZFGUDUEABUFU
        DRZUERZUFRZESFGUDUECUGUFUDACDUHTUEACDUIUAACUFDUJUBUGRSUC $.
    $}

    $( Being a subgroup is a symmetric property.  (Contributed by Mario
       Carneiro, 6-Dec-2014.) $)
    opprsubg $p |- ( SubGrp ` R ) = ( SubGrp ` O ) $=
      ( vx csubg cfv cgrp wcel cbs cress co w3a eqid cplusg grpprop cvv ressbas
      wceq ax-mp ressplusg cv wss opprbas oppradd biid cin vex eqtr3i 3anbi123i
      eqtr3d issubg 3bitr4i eqriv ) DAEFZBEFZAGHZDUAZAIFZUBZAUQJKZGHZLBGHZUSBUQ
      JKZGHZLUQUNHUQUOHUPVBUSUSVAVDABURABCURMZUCZANFZABCVGMZUDZOUSUEUTVCUQURUFZ
      UTIFZVCIFZUQPHZVJVKRDUGZUQURUTPAUTMZVEQSVMVJVLRVNUQURVCPBVCMZVFQSUHVMUTNF
      ZVCNFZRVNVMVGVQVRUQVGAUTPVOVHTUQVGBVCPVPVITUJSOUIURUQAVEUKURUQBVFUKULUM
      $.
  $}

  ${
    $d x y B $.  $d x y N $.  $d x y R $.  $d x y X $.  $d x y Y $.
    mulgass3.b $e |- B = ( Base ` R ) $.
    mulgass3.m $e |- .x. = ( .g ` R ) $.
    mulgass3.t $e |- .X. = ( .r ` R ) $.
    $( An associative property between group multiple and ring multiplication.
       (Contributed by Mario Carneiro, 14-Jun-2015.) $)
    mulgass3 $p |- ( ( R e. Ring /\ ( N e. ZZ /\ X e. B /\ Y e. B ) ) ->
        ( X .X. ( N .x. Y ) ) = ( N .x. ( X .X. Y ) ) ) $=
      ( vx vy wcel wa cfv co wceq eqid cvv a1i crg w3a coppr cmg cmulr opprring
      adantr simpr1 simpr3 simpr2 opprbas mulgass2 syl13anc opprmul 3eqtr3g cbs
      cz oveq2i wss ssv cv cplusg ovexd oppradd oveqi mulgpropd oveq2d 3eqtr4d
      oveqd ) BUAMZEUQMZFAMZGAMZUBZNZFEGBUCOZUDOZPZDPZEFGDPZVQPZFEGCPZDPEVTCPVO
      VRFVPUEOZPZEGFWCPZVQPZVSWAVOVPUAMZVKVMVLWDWFQVJWGVNBVPVPRZUFUGVJVKVLVMUHV
      JVKVLVMUIVJVKVLVMUJAVPVQWCEGFABVPWHHUKZVQRZWCRZULUMABWCDVPVRFHJWHWKUNWEVT
      EVQABWCDVPGFHJWHWKUNURUOVOWBVRFDVOCVQEGVOKLACVQBVPSIWJABUPOQVOHTAVPUPOQVO
      WITASUSVOAUTTVOKVAZSMLVAZSMNNZWLWMBVBOZVCWLWMWOPWLWMVPVBOZPQWNWOWPWLWMWOB
      VPWHWORVDVETVFZVIVGVOCVQEVTWQVIVH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Divisibility
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c ||r $. $( Ring divisibility relation $)
  $c Unit $. $( Ring unit $)
  $c Irred $. $( Ring irreducibles $)

  $( Ring divisibility relation. $)
  cdsr $a class ||r $.

  $( Ring unit. $)
  cui $a class Unit $.

  $( Ring irreducibles. $)
  cir $a class Irred $.

  ${
    $d b w x y z $.
    $( Define the (right) divisibility relation in a ring.  Access to the left
       divisibility relation is available through
       ` ( ||r `` ( oppR `` R ) ) ` .  (Contributed by Mario Carneiro,
       1-Dec-2014.) $)
    df-dvdsr $a |- ||r = ( w e. _V |-> { <. x , y >. | ( x e. ( Base ` w ) /\
      E. z e. ( Base ` w ) ( z ( .r ` w ) x ) = y ) } ) $.

    $( Define the set of units in a ring.  (Contributed by Mario Carneiro,
       1-Dec-2014.) $)
    df-unit $a |- Unit = ( w e. _V |->
      ( `' ( ( ||r ` w ) i^i ( ||r ` ( oppR ` w ) ) ) " { ( 1r ` w ) } ) ) $.

    $( Define the set of irreducible elements in a ring.  (Contributed by Mario
       Carneiro, 4-Dec-2014.) $)
    df-irred $a |- Irred = ( w e. _V |->
      [_ ( ( Base ` w ) \ ( Unit ` w ) ) / b ]_
        { z e. b | A. x e. b A. y e. b ( x ( .r ` w ) y ) =/= z } ) $.
  $}

  ${
    $d w x y z R $.
    reldvdsr.1 $e |- .|| = ( ||r ` R ) $.
    $( The divides relation is a relation.  (Contributed by Mario Carneiro,
       1-Dec-2014.) $)
    reldvdsr $p |- Rel .|| $=
      ( vx vw vz vy wrel cdsr cfv cv cbs wcel cmulr co wceq wrex cvv df-dvdsr
      wa relmptopab releqi mpbir ) AHBIJZHDKZEKZLJZMFKUEUFNJOGKPFUGQTEDGRBIDGFE
      SUAAUDCUBUC $.
  $}

  ${
    $d x y .|| $.  $d r x y z B $.  $d x y z X $.  $d x y z Y $.  $d x y Z $.
    $d r x y z R $.  $d r x y z .x. $.
    dvdsr.1 $e |- B = ( Base ` R ) $.
    dvdsr.2 $e |- .|| = ( ||r ` R ) $.
    ${
      dvdsr.3 $e |- .x. = ( .r ` R ) $.
      $( Value of the divides relation.  (Contributed by Mario Carneiro,
         1-Dec-2014.)  (Revised by Mario Carneiro, 6-Jan-2015.) $)
      dvdsrval $p |- .|| = { <. x , y >. |
        ( x e. B /\ E. z e. B ( z .x. x ) = y ) } $=
        ( vr cvv wcel cv wceq wrex wa cfv cbs c0 copab cdsr cmulr fveq2 syl6eqr
        co eleq2d rexeqdv anbi12d oveqd eqeq1d rexbidv anbi2d opabbidv df-dvdsr
        bitrd fvex eqeltri cab eqcom rexbii abbii abrexex a1i opabex3 syl5eq wn
        fvmpt fvprc wne wex opabn0 nsyl2 adantr exlimivv sylbi necon1bi pm2.61i
        n0i eqtr4d ) FLMZEANZDMZCNZWBGUFZBNZOZCDPZQZABUAZOWAEFUBRZWJIKFWBKNZSRZ
        MZWDWBWLUCRZUFZWFOZCWMPZQZABUAWJLUBWLFOZWSWIABWTWSWCWQCDPZQWIWTWNWCWRXA
        WTWMDWBWTWMFSRZDWLFSUDHUEZUGWTWQCWMDXCUHUIWTXAWHWCWTWQWGCDWTWPWEWFWTWOG
        WDWBWTWOFUCRGWLFUCUDJUEUJUKULUMUPUNABCKUOWHABDDXBLHFSUQURZWHBUSZLMWCXEW
        FWEOZCDPZBUSLWHXGBWGXFCDWEWFUTVAVBCBDWEXDVCURVDVEVHVFWAVGZETWJXHEWKTIFU
        BVIVFWAWJTWJTVJWIBVKAVKWAWIABVLWIWAABWCWAWHWCDTOWADWBVSXHDXBTHFSVIVFVMV
        NVOVPVQVTVR $.

      $( Value of the divides relation.  (Contributed by Mario Carneiro,
         1-Dec-2014.) $)
      dvdsr $p |- ( X .|| Y <-> ( X e. B /\ E. z e. B ( z .x. X ) = Y ) ) $=
        ( vx vy wbr cvv wcel wa cv co wceq wrex wrel reldvdsr brrelex12 mpan id
        elex ovex syl6eqelr rexlimivw anim12i simpl eleq1d oveq2d simpr eqeq12d
        rexbidv anbi12d dvdsrval brabga pm5.21nii ) FGCMZFNOZGNOZPZFBOZAQZFERZG
        SZABTZPZCUAVAVDCDIUBFGCUCUDVEVBVIVCFBUFVHVCABVHGVGNVHUEVFFEUGUHUIUJKQZB
        OZVFVKERZLQZSZABTZPVJKLFGCNNVKFSZVNGSZPZVLVEVPVIVSVKFBVQVRUKZULVSVOVHAB
        VSVMVGVNGVSVKFVFEVTUMVQVRUNUOUPUQKLABCDEHIJURUSUT $.

      $( Value of the divides relation.  (Contributed by Mario Carneiro,
         1-Dec-2014.) $)
      dvdsr2 $p |- ( X e. B -> ( X .|| Y <-> E. z e. B ( z .x. X ) = Y ) ) $=
        ( wbr wcel cv co wceq wrex dvdsr baib ) FGCKFBLAMFENGOABPABCDEFGHIJQR
        $.

      $( A left-multiple of ` X ` is divisible by ` X ` .  (Contributed by
         Mario Carneiro, 1-Dec-2014.) $)
      dvdsrmul $p |- ( ( X e. B /\ Y e. B ) -> X .|| ( Y .x. X ) ) $=
        ( vz wcel wa cv co wceq wrex wbr simpl simpr eqid eqeq1d rspcev sylancl
        oveq1 dvdsr sylanbrc ) EAKZFAKZLZUGJMZEDNZFEDNZOZJAPZEULBQUGUHRUIUHULUL
        OZUNUGUHSULTUMUOJFAUJFOUKULULUJFEDUDUAUBUCJABCDEULGHIUEUF $.
    $}

    $( Closure of a dividing element.  (Contributed by Mario Carneiro,
       5-Dec-2014.) $)
    dvdsrcl $p |- ( X .|| Y -> X e. B ) $=
      ( vx wbr wcel cv cmulr cfv co wceq wrex eqid dvdsr simplbi ) DEBIDAJHKDCL
      MZNEOHAPHABCTDEFGTQRS $.

    $( Closure of a dividing element.  (Contributed by Mario Carneiro,
       5-Dec-2014.) $)
    dvdsrcl2 $p |- ( ( R e. Ring /\ X .|| Y ) -> Y e. B ) $=
      ( vx wbr crg wcel cv cmulr cfv co wceq wrex wa eqid dvdsr 3expa syl5ibcom
      ringcl an32s eleq1 rexlimdva impr sylan2b ) DEBICJKZDAKZHLZDCMNZOZEPZHAQZ
      REAKZHABCULDEFGULSZTUIUJUOUPUIUJRZUNUPHAURUKAKZRUMAKZUNUPUIUSUJUTUIUSUJUT
      ACULUKDFUQUCUAUDUMEAUEUBUFUGUH $.

    $( An element in a (unital) ring divides itself.  (Contributed by Mario
       Carneiro, 1-Dec-2014.)  (Revised by Mario Carneiro, 30-Apr-2015.) $)
    dvdsrid $p |- ( ( R e. Ring /\ X e. B ) -> X .|| X ) $=
      ( crg wcel wa cur cfv cmulr co id eqid ringidcl dvdsrmul syl2anr ringlidm
      wbr breqtrd ) CGHZDAHZIDCJKZDCLKZMZDBUCUCUDAHDUFBTUBUCNACUDEUDOZPABCUEDUD
      EFUEOZQRACUEUDDEUHUGSUA $.

    $( Divisibility is transitive.  (Contributed by Mario Carneiro,
       1-Dec-2014.) $)
    dvdsrtr $p |- ( ( R e. Ring /\ Y .|| Z /\ Z .|| X ) -> Y .|| X ) $=
      ( vy vx crg wcel wbr wa cv cmulr co wceq wrex dvdsr cfv anbi12i an4 bitri
      eqid reeanv simplrl simpll simprr simprl syl3anc dvdsrmul syl2anc ringass
      ringcl syl13anc breqtrd oveq2 breq2d syl5ibcom rexlimdvva syl5bir expimpd
      id sylan9eq syl5bi 3impib ) CKLZEFBMZFDBMZEDBMZVIVJNZEALZFALZNZIOZECPUAZQ
      ZFRZIASZJOZFVQQZDRZJASZNZNZVHVKVLVMVTNZVNWDNZNWFVIWGVJWHIABCVQEFGHVQUEZTJ
      ABCVQFDGHWITUBVMVTVNWDUCUDVHVOWEVKWEVSWCNZJASIASVHVONZVKVSWCIJAAUFWKWJVKI
      JAAWKVPALZWAALZNZNZEWAVRVQQZBMWJVKWOEWAVPVQQZEVQQZWPBWOVMWQALZEWRBMVHVMVN
      WNUGZWOVHWMWLWSVHVOWNUHZWKWLWMUIZWKWLWMUJZACVQWAVPGWIUOUKABCVQEWQGHWIULUM
      WOVHWMWLVMWRWPRXAXBXCWTACVQWAVPEGWIUNUPUQWJWPDEBVSWCWPWBDVRFWAVQURWCVDVEU
      SUTVAVBVCVFVG $.

    ${
      dvdsrmul1.3 $e |- .x. = ( .r ` R ) $.
      $( The divisibility relation is preserved under right-multiplication.
         (Contributed by Mario Carneiro, 1-Dec-2014.) $)
      dvdsrmul1 $p |- ( ( R e. Ring /\ Z e. B /\ X .|| Y ) ->
        ( X .x. Z ) .|| ( Y .x. Z ) ) $=
        ( vx crg wcel wbr co cv wceq wrex wa dvdsr simplll simplr simpllr simpr
        ringcl syl3anc dvdsrmul sylancom ringass syl13anc breqtrrd oveq1 breq2d
        syl5ibcom rexlimdva expimpd syl5bi 3impia ) CLMZGAMZEFBNZEGDOZFGDOZBNZV
        AEAMZKPZEDOZFQZKARZSUSUTSZVDKABCDEFHIJTVJVEVIVDVJVESZVHVDKAVKVFAMZSZVBV
        GGDOZBNVHVDVMVBVFVBDOZVNBVKVLVBAMZVBVOBNVMUSVEUTVPUSUTVEVLUAZVJVEVLUBZU
        SUTVEVLUCZACDEGHJUEUFABCDVBVFHIJUGUHVMUSVLVEUTVNVOQVQVKVLUDVRVSACDVFEGH
        JUIUJUKVHVNVCVBBVGFGDULUMUNUOUPUQUR $.
    $}

    dvdsrneg.5 $e |- N = ( invg ` R ) $.
    $( An element divides its negative.  (Contributed by Mario Carneiro,
       1-Dec-2014.) $)
    dvdsrneg $p |- ( ( R e. Ring /\ X e. B ) -> X .|| ( N ` X ) ) $=
      ( crg wcel wa cur cfv cmulr co wbr id cgrp ringgrp eqid ringidcl grpinvcl
      syl2anc dvdsrmul syl2anr simpl simpr ringnegl breqtrd ) CIJZEAJZKZECLMZDM
      ZECNMZOZEDMBUKUKUNAJZEUPBPUJUKQUJCRJUMAJUQCSACUMFUMTZUAACDUMFHUBUCABCUOEU
      NFGUOTZUDUEULACUOUMDEFUSURHUJUKUFUJUKUGUHUI $.
  $}

  ${
    $d B x $.  $d R x $.  $d X x $.  $d .0. x $.
    dvdsr0.b $e |- B = ( Base ` R ) $.
    dvdsr0.d $e |- .|| = ( ||r ` R ) $.
    dvdsr0.z $e |- .0. = ( 0g ` R ) $.
    $( In a ring, zero is divisible by all elements.  ("Zero divisor" as a term
       has a somewhat different meaning, see ~ df-rlreg .)  (Contributed by
       Stefan O'Rear, 29-Mar-2015.) $)
    dvdsr01 $p |- ( ( R e. Ring /\ X e. B ) -> X .|| .0. ) $=
      ( vx crg wcel wa wbr cv cmulr cfv co wceq wrex ring0cl adantr eqid ringlz
      oveq1 eqeq1d rspcev syl2anc wb dvdsr2 adantl mpbird ) CJKZDAKZLZDEBMZINZD
      COPZQZERZIASZUNEAKZEDUQQZERZUTULVAUMACEFHTUAACUQDEFUQUBZHUCUSVCIEAUPERURV
      BEUPEDUQUDUEUFUGUMUOUTUHULIABCUQDEFGVDUIUJUK $.

    $( Only zero is divisible by zero.  (Contributed by Stefan O'Rear,
       29-Mar-2015.) $)
    dvdsr02 $p |- ( ( R e. Ring /\ X e. B ) -> ( .0. .|| X <-> X = .0. ) ) $=
      ( vx crg wcel wa wbr cv cmulr cfv wceq wrex wb adantr ring0cl eqid dvdsr2
      co syl ringrz eqeq1d eqcom syl6bb rexbidva c0 wne ringgrp grpbn0 r19.9rzv
      cgrp 3syl bitr4d bitrd ) CJKZDAKZLZEDBMZINZECOPZUDZDQZIARZDEQZVBEAKZVCVHS
      UTVJVAACEFHUATIABCVEEDFGVEUBZUCUEUTVHVISVAUTVHVIIARZVIUTVGVIIAUTVDAKLZVGE
      DQVIVMVFEDACVEVDEFVKHUFUGEDUHUIUJUTCUPKAUKULVIVLSCUMACFUNVIIAUOUQURTUS $.
  $}

  ${
    $d r .|| $.  $d r E $.  $d r .1. $.  $d r R $.
    unit.1 $e |- U = ( Unit ` R ) $.
    unit.2 $e |- .1. = ( 1r ` R ) $.
    ${
      unit.3 $e |- .|| = ( ||r ` R ) $.
      unit.4 $e |- S = ( oppR ` R ) $.
      unit.5 $e |- E = ( ||r ` S ) $.
      $( Property of being a unit of a ring.  A unit is an element that left-
         and right-divides one.  (Contributed by Mario Carneiro, 1-Dec-2014.)
         (Revised by Mario Carneiro, 8-Dec-2015.) $)
      isunit $p |- ( X e. U <-> ( X .|| .1. /\ X E .1. ) ) $=
        ( vr wcel cvv wbr cui cfv cdsr syl6eqr wa cdm elfvdm eleq2s elexd df-br
        cop sylbi adantr cin ccnv csn cima coppr cur wceq fveq2d ineq12d cnveqd
        cv fveq2 sneqd imaeq12d df-unit eqeltri inex1 cnvex imaex syl5eq eleq2d
        fvex fvmpt wrel wss inss1 reldvdsr relss mp2 eliniseg2 ax-mp brin bitri
        wb syl6bb pm5.21nii ) GDNZBONZGEAPZGEFPZUAZWFBQUBZBWKNGBQRZDGBQUCHUDUEW
        HWGWIWHGEUGZANZWGGEAUFWNBSUBZBWONWMBSRZAWMBSUCJUDUEUHUIWGWFGAFUJZUKZEUL
        ZUMZNZWJWGDWTGWGDWLWTHMBMUTZSRZXBUNRZSRZUJZUKZXBUORZULZUMWTOQXBBUPZXGWR
        XIWSXJXFWQXJXCAXEFXJXCWPAXBBSVAJTXJXECSRFXJXDCSXJXDBUNRCXBBUNVAKTUQLTUR
        USXJXHEXJXHBUOREXBBUOVAITVBVCMVDWRWSWQAFAWPOJBSVKVEVFVGVHVLVIVJXAGEWQPZ
        WJWQVMZXAXKWCWQAVNAVMXLAFVOABJVPWQAVQVRWQEGVSVTGEAFWAWBWDWE $.
    $}

    $( The multiplicative identity is a unit.  (Contributed by Mario Carneiro,
       1-Dec-2014.) $)
    1unit $p |- ( R e. Ring -> .1. e. U ) $=
      ( crg wcel cdsr cfv wbr coppr cbs ringidcl dvdsrid mpdan opprring opprbas
      eqid syl2anc isunit sylanbrc ) AFGZCCAHIZJZCCAKIZHIZJZCBGUBCALIZGZUDUHACU
      HRZEMZUHUCACUJUCRZNOUBUEFGUIUGAUEUERZPUKUHUFUECUHAUEUMUJQUFRZNSUCAUEBCUFC
      DEULUMUNTUA $.
  $}

  ${
    $d x B $.  $d x R $.  $d x U $.  $d x X $.
    unitcl.1 $e |- B = ( Base ` R ) $.
    unitcl.2 $e |- U = ( Unit ` R ) $.
    $( A unit is an element of the base set.  (Contributed by Mario Carneiro,
       1-Dec-2014.) $)
    unitcl $p |- ( X e. U -> X e. B ) $=
      ( wcel cur cfv cdsr wbr coppr eqid isunit simplbi dvdsrcl syl ) DCGZDBHIZ
      BJIZKZDAGRUADSBLIZJIZKTBUBCSUCDFSMTMZUBMUCMNOATBDSEUDPQ $.

    $( The set of units is contained in the base set.  (Contributed by Mario
       Carneiro, 5-Oct-2015.) $)
    unitss $p |- U C_ B $=
      ( vx cv unitcl ssriv ) FCAABCFGDEHI $.
  $}

  ${
    $d y R $.  $d x y S $.  $d x U $.
    opprunit.1 $e |- U = ( Unit ` R ) $.
    opprunit.2 $e |- S = ( oppR ` R ) $.
    $( Being a unit is a symmetric property, so it transfers to the opposite
       ring.  (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    opprunit $p |- U = ( Unit ` S ) $=
      ( vx vy cfv cv cdsr wbr wa wcel cmulr co wceq wrex eqid opprbas opprmul
      cui cur coppr cbs eqtr2i eqeq1i rexbii anbi2i dvdsr 3bitr4i anbi2ci oppr1
      isunit eqriv ) FCBUAHZFIZAUBHZAJHZKZUPUQBJHZKZLVAUPUQBUCHZJHZKZLUPCMUPUOM
      USVDVAUPAUDHZMZGIZUPANHZOZUQPZGVEQZLVFVGUPVBNHZOZUQPZGVEQZLUSVDVKVOVFVJVN
      GVEVIVMUQVMUPVGBNHZOVIVEBVLVPVBVGUPVEABEVERZSZVPRZVBRZVLRZTVEAVPVHBUPVGVQ
      VHRZEVSTUEUFUGUHGVEURAVHUPUQVQURRZWBUIGVEVCVBVLUPUQVEBVBVTVRSVCRZWAUIUJUK
      URABCUQUTUPDUQRZWCEUTRZUMUTBVBUOUQVCUPUORAUQBEWEULWFVTWDUMUJUN $.
  $}

  ${
    $d y .1. $.  $d y R $.  $d y X $.
    crngunit.1 $e |- U = ( Unit ` R ) $.
    crngunit.2 $e |- .1. = ( 1r ` R ) $.
    crngunit.3 $e |- .|| = ( ||r ` R ) $.
    $( Property of being a unit in a commutative ring.  (Contributed by Mario
       Carneiro, 18-Apr-2016.) $)
    crngunit $p |- ( R e. CRing -> ( X e. U <-> X .|| .1. ) ) $=
      ( vy wcel wbr cfv wa cmulr co wceq wrex eqid dvdsr 3bitr4g ccrg coppr cbs
      cdsr cv crngoppr 3expa eqcomd an32s eqeq1d rexbidva opprbas anbi2d isunit
      pm5.32da pm4.24 ) BUAJZEDAKZEDBUBLZUDLZKZMURURMECJURUQVAURURUQEBUCLZJZIUE
      ZEUSNLZOZDPZIVBQZMVCVDEBNLZOZDPZIVBQZMVAURUQVCVHVLUQVCMZVGVKIVBVMVDVBJZMV
      FVJDUQVNVCVFVJPUQVNMVCMVJVFUQVNVCVJVFPVBBVEVIUSVDEVBRZVIRZUSRZVERZUFUGUHU
      IUJUKUOIVBUTUSVEEDVBBUSVQVOULUTRZVRSIVBABVIEDVOHVPSTUMABUSCDUTEFGHVQVSUNU
      RUPT $.
  $}

  ${
    dvdsunit.1 $e |- U = ( Unit ` R ) $.
    dvdsunit.3 $e |- .|| = ( ||r ` R ) $.
    $( A divisor of a unit is a unit.  (Contributed by Mario Carneiro,
       18-Apr-2016.) $)
    dvdsunit $p |- ( ( R e. CRing /\ Y .|| X /\ X e. U ) -> Y e. U ) $=
      ( ccrg wcel wbr wa cur cfv crg wi crngring eqid wb crngunit adantr 3expia
      cbs dvdsrtr sylan 3imtr4d 3impia ) BHIZEDAJZDCIZECIZUGUHKDBLMZAJZEUKAJZUI
      UJUGBNIZUHULUMOBPUNUHULUMBUBMZABUKEDUOQGUCUAUDUGUIULRUHABCUKDFUKQZGSTUGUJ
      UMRUHABCUKEFUPGSTUEUF $.
  $}

  ${
    unitmulcl.1 $e |- U = ( Unit ` R ) $.
    ${
      unitmulcl.2 $e |- .x. = ( .r ` R ) $.
      $( The product of units is a unit.  (Contributed by Mario Carneiro,
         2-Dec-2014.) $)
      unitmulcl $p |- ( ( R e. Ring /\ X e. U /\ Y e. U ) ->
        ( X .x. Y ) e. U ) $=
        ( crg wcel co cfv cdsr wbr eqid unitcl syl wa isunit sylib syl3anc wceq
        w3a cur coppr simp1 cbs simp3 simpld dvdsrmul1 ringlidm syl2anc breqtrd
        simp2 dvdsrtr opprring opprmul simprd opprbas ringridm syl5eq syl5eqbrr
        cmulr sylanbrc ) AHIZDCIZECIZUBZDEBJZAUCKZALKZMZVHVIAUDKZLKZMZVHCIVGVDV
        HEVJMEVIVJMZVKVDVEVFUEZVGVHVIEBJZEVJVGVDEAUFKZIZDVIVJMZVHVQVJMVPVGVFVSV
        DVEVFUGZVRACEVRNZFOPZVGVTDVIVMMZVGVEVTWDQVDVEVFUMZVJAVLCVIVMDFVINZVJNZV
        LNZVMNZRSZUHVRVJABDVIEWBWGGUITVGVDVSVQEUAVPWCVRABVIEWBGWFUJUKULVGVOEVIV
        MMZVGVFVOWKQWAVJAVLCVIVMEFWFWGWHWIRSZUHVRVJAVIVHEWBWGUNTVGVLHIZVHDVMMWD
        VNVGVDWMVPAVLWHUOPZVGVHEDVLVBKZJZDVMVRAWOBVLEDWBGWHWONZUPVGWPVIDWOJZDVM
        VGWMDVRIZWKWPWRVMMWNVGVEWSWEVRACDWBFOPZVGVOWKWLUQVRVMVLWOEVIDVRAVLWHWBU
        RZWIWQUITVGWRDVIBJZDVRAWOBVLVIDWBGWHWQUPVGVDWSXBDUAVPWTVRABVIDWBGWFUSUK
        UTULVAVGVTWDWJUQVRVMVLVIVHDXAWIUNTVJAVLCVIVMVHFWFWGWHWIRVC $.

      unitmulclb.1 $e |- B = ( Base ` R ) $.
      $( Reversal of ~ unitmulcl in a commutative ring.  (Contributed by Mario
         Carneiro, 18-Apr-2016.) $)
      unitmulclb $p |- ( ( R e. CRing /\ X e. B /\ Y e. B ) ->
        ( ( X .x. Y ) e. U <-> ( X e. U /\ Y e. U ) ) ) $=
        ( ccrg wcel w3a co wa wbr wi dvdsrmul syl2anc dvdsunit 3expia cfv simp1
        cdsr simp2 simp3 eqid crngcom breqtrrd jcad crngring 3ad2ant1 unitmulcl
        crg 3expib syl impbid ) BJKZEAKZFAKZLZEFCMZDKZEDKZFDKZNZUTVBVCVDUTUQEVA
        BUCUAZOZVBVCPUQURUSUBZUTEFECMZVAVFUTURUSEVIVFOUQURUSUDZUQURUSUEZAVFBCEF
        IVFUFZHQRABCEFIHUGUHUQVGVBVCVFBDVAEGVLSTRUTUQFVAVFOZVBVDPVHUTUSURVMVKVJ
        AVFBCFEIVLHQRUQVMVBVDVFBDVAFGVLSTRUIUTBUMKZVEVBPUQURVNUSBUJUKVNVCVDVBBC
        DEFGHULUNUOUP $.
    $}

    $d x y z G $.  $d m x y z R $.  $d m x y z U $.
    unitgrp.2 $e |- G = ( ( mulGrp ` R ) |`s U ) $.
    $( The base set of the group of units.  (Contributed by Mario Carneiro,
       25-Dec-2014.) $)
    unitgrpbas $p |- U = ( Base ` G ) $=
      ( cbs cfv wss wceq eqid unitss cmgp mgpbas ressbas2 ax-mp ) BAFGZHBCFGIPA
      BPJZDKBPCALGZEPARRJQMNO $.

    $( The group of units is a group under multiplication.  (Contributed by
       Mario Carneiro, 2-Dec-2014.) $)
    unitgrp $p |- ( R e. Ring -> G e. Grp ) $=
      ( vy vm wcel cfv cbs wceq cvv eqid cv co unitcl wa wbr wrex syl2anc vx vz
      crg cmulr cur unitgrpbas cplusg fvex eqeltri cmgp mgpplusg ressplusg mp1i
      a1i unitmulcl w3a 3anim123i sylan2 1unit ringlidm cdsr coppr simpr isunit
      ringass sylib wb adantl dvdsr2 syl opprbas anbi12d reeanv simprl ad2antrr
      dvdsrmul simplll simplr syl13anc simprrl opprmul simprrr syl5eqr ringridm
      oveq1d oveq2d 3eqtr3d 3brtr3d syl5eq breqtrd sylanbrc rexlimdvaa reximdv2
      jca expimpd syl5bir sylbid mpd isgrpde ) AUCHZUAFUBBAUDIZCAUEIZBCJIZKWTAB
      CDEUFZUNBLHXACUGIKWTBXCLXDCJUHUIBXAAUJIZCLEAXAXEXEMXAMZUKULUMAXABUANZFNZD
      XFUOXGBHZXHBHZUBNZBHZUPWTXGAJIZHZXHXMHZXKXMHZUPXGXHXAOXKXAOXGXHXKXAOXAOKX
      IXNXJXOXLXPXMABXGXMMZDPZXMABXHXQDPXMABXKXQDPUQXMAXAXGXHXKXQXFVEURABXBDXBM
      ZUSXIWTXNXBXGXAOXGKXRXMAXAXBXGXQXFXSUTURWTXIQZXGXBAVAIZRZXGXBAVBIZVAIZRZQ
      ZXHXGXAOZXBKZFBSZXTXIYFWTXIVCYAAYCBXBYDXGDXSYAMZYCMZYDMZVDVFXTYFYHFXMSZGN
      ZXGYCUDIZOZXBKZGXMSZQZYIXTYBYMYEYRXTXNYBYMVGXIXNWTXRVHZFXMYAAXAXGXBXQYJXF
      VIVJXTXNYEYRVGYTGXMYDYCYOXGXBXMAYCYKXQVKZYLYOMZVIVJVLYSYHYQQZGXMSZFXMSXTY
      IYHYQFGXMXMVMXTUUDYHFXMBXTXOUUDXJYHQZXTXOQZUUCUUEGXMUUFYNXMHZUUCQZQZXJYHU
      UIXHXBYARXHXBYDRXJUUIYNXGYNXAOZXHXBYAUUIUUGXNYNUUJYARUUFUUGUUCVNZXTXNXOUU
      HYTVOZXMYAAXAYNXGXQYJXFVPTUUIXBYNXAOZXHXBXAOZYNXHUUIYGYNXAOZXHUUJXAOZUUMU
      UNUUIWTXOXNUUGUUOUUPKWTXIXOUUHVQZXTXOUUHVRZUULUUKXMAXAXHXGYNXQXFVEVSUUIYG
      XBYNXAUUFUUGYHYQVTZWEUUIUUJXBXHXAUUIUUJYPXBXMAYOXAYCYNXGXQXFYKUUBWAUUFUUG
      YHYQWBWCZWFWGUUIWTUUGUUMYNKUUQUUKXMAXAXBYNXQXFXSUTTUUIWTXOUUNXHKUUQUURXMA
      XAXBXHXQXFXSWDTWGUUTWHUUIXHXGXHYOOZXBYDUUIXOXNXHUVAYDRUURUULXMYDYCYOXHXGU
      UAYLUUBVPTUUIUVAYGXBXMAYOXAYCXGXHXQXFYKUUBWAUUSWIWJYAAYCBXBYDXHDXSYJYKYLV
      DWKUUSWNWLWOWMWPWQWRWS $.

    $( The group of units of a commutative ring is abelian.  (Contributed by
       Mario Carneiro, 19-Apr-2016.) $)
    unitabl $p |- ( R e. CRing -> G e. Abel ) $=
      ( ccrg wcel cgrp ccmn cabl crg crngring unitgrp syl cmgp cfv cmnd crngmgp
      eqid grpmnd subcmn syl2anc isabl sylanbrc ) AFGZCHGZCIGZCJGUEAKGUFALABCDE
      MNZUEAOPZIGCQGZUGAUIUISRUEUFUJUHCTNBUICEUAUBCUCUD $.

    unitgrp.3 $e |- .1. = ( 1r ` R ) $.
    $( The identity of the multiplicative group is ` 1r ` .  (Contributed by
       Mario Carneiro, 2-Dec-2014.) $)
    unitgrpid $p |- ( R e. Ring -> .1. = ( 0g ` G ) ) $=
      ( crg wcel c0g cfv wceq 1unit cbs wss eqid unitss ringidss mp3an2 mpdan )
      AHIZCBIZCDJKLZABCEGMUABANKZOUBUCUDABUDPZEQBUDACDFUEGRST $.
  $}

  ${
    unitsubm.1 $e |- U = ( Unit ` R ) $.
    unitsubm.2 $e |- M = ( mulGrp ` R ) $.
    $( The group of units is a submonoid of the multiplicative monoid of the
       ring.  (Contributed by Mario Carneiro, 18-Jun-2015.) $)
    unitsubm $p |- ( R e. Ring -> U e. ( SubMnd ` M ) ) $=
      ( crg wcel csubmnd cfv cbs wss cur cress cmnd eqid unitss a1i 1unit syl
      co cgrp cmgp oveq1i unitgrp grpmnd w3a ringmgp mgpbas ringidval mpbir3and
      wb issubm2 ) AFGZBCHIGZBAJIZKZALIZBGZCBMTZNGZUPUMUOABUOOZDPQABUQDUQOZRUMU
      SUAGUTABUSDCAUBIBMEUCUDUSUESUMCNGUNUPURUTUFUKACEUGUOBUSCUQUOACEVAUHAUQCEV
      BUIUSOULSUJ $.
  $}

  $c invr $.

  $( Extend class notation with multiplicative inverse. $)
  cinvr $a class invr $.

  $( Define multiplicative inverse.  (Contributed by NM, 21-Sep-2011.) $)
  df-invr $a |- invr = ( r e. _V |-> ( invg `
    ( ( mulGrp ` r ) |`s ( Unit ` r ) ) ) ) $.

  ${
    $d r G $.  $d r R $.
    invrfval.u $e |- U = ( Unit ` R ) $.
    invrfval.g $e |- G = ( ( mulGrp ` R ) |`s U ) $.
    invrfval.i $e |- I = ( invr ` R ) $.
    $( Multiplicative inverse function for a division ring.  (Contributed by
       NM, 21-Sep-2011.)  (Revised by Mario Carneiro, 25-Dec-2014.) $)
    invrfval $p |- I = ( invg ` G ) $=
      ( vr cinvr cfv cminusg cvv wceq cmgp cui cress co fveq2 syl6eqr c0 fveq2d
      wcel cv oveq12d df-invr fvex fvmpt fvprc wfn base0 eqid grpinvfn fn0 mpbi
      wn oveq1d syl5eq ress0 syl6eq eqtr4d pm2.61i eqtri ) DAIJZCKJZGALUBZVCVDM
      HAHUCZNJZVFOJZPQZKJVDLIVFAMZVICKVJVIANJZBPQZCVJVGVKVHBPVFANRVJVHAOJBVFAOR
      ESUDFSUAHUECKUFUGVEUOZVCTKJZVDVMVCTVNAIUHVNTUIVNTMTTVNUJVNUKULVNUMUNSVMCT
      KVMCTBPQZTVMCVLVOFVMVKTBPANUHUPUQBURUSUAUTVAVB $.
  $}

  ${
    unitinvcl.1 $e |- U = ( Unit ` R ) $.
    unitinvcl.2 $e |- I = ( invr ` R ) $.
    $( The inverse of a unit exists and is a unit.  (Contributed by Mario
       Carneiro, 2-Dec-2014.) $)
    unitinvcl $p |- ( ( R e. Ring /\ X e. U ) -> ( I ` X ) e. U ) $=
      ( crg wcel cmgp cfv cress co cgrp eqid unitgrpbas invrfval grpinvcl sylan
      unitgrp ) AGHAIJBKLZMHDBHDCJBHABTETNZSBTCDABTEUAOABTCEUAFPQR $.

    $( The inverse of the inverse of a unit is the same element.  (Contributed
       by Mario Carneiro, 4-Dec-2014.) $)
    unitinvinv $p |- ( ( R e. Ring /\ X e. U ) -> ( I ` ( I ` X ) ) = X ) $=
      ( crg wcel cmgp cfv cress co cgrp wceq eqid unitgrpbas invrfval grpinvinv
      unitgrp sylan ) AGHAIJBKLZMHDBHDCJCJDNABUAEUAOZSBUACDABUAEUBPABUACEUBFQRT
      $.

    ${
      ringinvcl.3 $e |- B = ( Base ` R ) $.
      $( The inverse of a unit is an element of the ring.  (Contributed by
         Mario Carneiro, 2-Dec-2014.) $)
      ringinvcl $p |- ( ( R e. Ring /\ X e. U ) -> ( I ` X ) e. B ) $=
        ( crg wcel wa cfv unitinvcl unitcl syl ) BIJECJKEDLZCJPAJBCDEFGMABCPHFN
        O $.
    $}

    unitinvcl.3 $e |- .x. = ( .r ` R ) $.
    unitinvcl.4 $e |- .1. = ( 1r ` R ) $.
    $( A unit times its inverse is the identity.  (Contributed by Mario
       Carneiro, 2-Dec-2014.) $)
    unitlinv $p |- ( ( R e. Ring /\ X e. U ) -> ( ( I ` X ) .x. X ) = .1. ) $=
      ( crg wcel wa cfv co cmgp wceq eqid cvv cui cress cgrp unitgrp unitgrpbas
      c0g cplusg fvex eqeltri mgpplusg ressplusg ax-mp invrfval sylan unitgrpid
      grplinv adantr eqtr4d ) AKLZFCLZMFENFBOZAPNZCUAOZUENZDURVBUBLUSUTVCQACVBG
      VBRZUCCBVBEFVCACVBGVDUDCSLBVBUFNQCATNSGATUGUHCBVAVBSVDABVAVARIUIUJUKVCRAC
      VBEGVDHULUOUMURDVCQUSACDVBGVDJUNUPUQ $.

    $( A unit times its inverse is the identity.  (Contributed by Mario
       Carneiro, 2-Dec-2014.) $)
    unitrinv $p |- ( ( R e. Ring /\ X e. U ) -> ( X .x. ( I ` X ) ) = .1. ) $=
      ( crg wcel wa cfv co cmgp wceq eqid cvv cui cress cgrp unitgrp unitgrpbas
      c0g cplusg fvex eqeltri mgpplusg ressplusg ax-mp invrfval sylan unitgrpid
      grprinv adantr eqtr4d ) AKLZFCLZMFFENBOZAPNZCUAOZUENZDURVBUBLUSUTVCQACVBG
      VBRZUCCBVBEFVCACVBGVDUDCSLBVBUFNQCATNSGATUGUHCBVAVBSVDABVAVARIUIUJUKVCRAC
      VBEGVDHULUOUMURDVCQUSACDVBGVDJUNUPUQ $.
  $}

  ${
    1rinv.1 $e |- I = ( invr ` R ) $.
    1rinv.2 $e |- .1. = ( 1r ` R ) $.
    $( The inverse of the identity is the identity.  (Contributed by Mario
       Carneiro, 18-Jun-2015.) $)
    1rinv $p |- ( R e. Ring -> ( I ` .1. ) = .1. ) $=
      ( crg wcel cfv cmulr cbs wceq cui 1unit ringinvcl mpdan ringlidm unitrinv
      co eqid eqtr3d ) AFGZBBCHZAIHZRZUBBUAUBAJHZGZUDUBKUABALHZGZUFAUGBUGSZEMZU
      EAUGCBUIDUESZNOUEAUCBUBUKUCSZEPOUAUHUDBKUJAUCUGBCBUIDULEQOT $.
  $}

  ${
    0unit.1 $e |- U = ( Unit ` R ) $.
    0unit.2 $e |- .0. = ( 0g ` R ) $.
    0unit.3 $e |- .1. = ( 1r ` R ) $.
    $( The additive identity is a unit if and only if ` 1 = 0 ` , i.e. we are
       in the zero ring.  (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    0unit $p |- ( R e. Ring -> ( .0. e. U <-> .1. = .0. ) ) $=
      ( crg wcel wceq wa cinvr cfv cmulr co eqid unitrinv cbs ringinvcl ringlz
      syldan eqtr3d simpr 1unit adantr eqeltrrd impbida ) AHIZDBIZCDJZUHUIKDDAL
      MZMZANMZOZCDAUMBCUKDEUKPZUMPZGQUHUIULARMZIUNDJUQABUKDEUOUQPZSUQAUMULDURUP
      FTUAUBUHUJKCDBUHUJUCUHCBIUJABCEGUDUEUFUG $.
  $}

  ${
    unitnegcl.1 $e |- U = ( Unit ` R ) $.
    unitnegcl.2 $e |- N = ( invg ` R ) $.
    $( The negative of a unit is a unit.  (Contributed by Mario Carneiro,
       4-Dec-2014.) $)
    unitnegcl $p |- ( ( R e. Ring /\ X e. U ) -> ( N ` X ) e. U ) $=
      ( crg wcel wa cfv cur cdsr wbr eqid syl2an breqtrd isunit dvdsrtr syl3anc
      dvdsrneg coppr simpl cbs cgrp unitcl grpinvcl syldan wceq grpinvinv simpr
      ringgrp simpld opprring adantr opprbas opprneg syl2anc simprd sylanbrc
      sylib ) AGHZDBHZIZDCJZAKJZALJZMZVDVEAUAJZLJZMZVDBHVCVAVDDVFMDVEVFMZVGVAVB
      UBVCVDVDCJZDVFVAVBVDAUCJZHZVDVLVFMVAAUDHZDVMHZVNVBAUKZVMABDVMNZEUEZVMACDV
      RFUFOZVMVFACVDVRVFNZFTUGVAVOVPVLDUHVBVQVSVMACDVRFUIOZPVCVKDVEVIMZVCVBVKWC
      IVAVBUJVFAVHBVEVIDEVENZWAVHNZVINZQUTZULVMVFAVEVDDVRWARSVCVHGHZVDDVIMWCVJV
      AWHVBAVHWEUMUNZVCVDVLDVIVCWHVNVDVLVIMWIVTVMVIVHCVDVMAVHWEVRUOZWFACVHWEFUP
      TUQWBPVCVKWCWGURVMVIVHVEVDDWJWFRSVFAVHBVEVIVDEWDWAWEWFQUS $.
  $}

  $c /r $.

  $( Extend class notation with ring division. $)
  cdvr $a class /r $.

  ${
    $d r x y $.
    $( Define ring division.  (Contributed by Mario Carneiro, 2-Jul-2014.) $)
    df-dvr $a |- /r = ( r e. _V
     |-> ( x e. ( Base ` r ) , y e. ( Unit ` r )
         |-> ( x ( .r ` r ) ( ( invr ` r ) ` y ) ) ) ) $.
  $}

  ${
    $d r x y B $.  $d r x y I $.  $d r x y R $.  $d r x y .x. $.  $d r x y U $.
    $d x y X $.  $d x y Y $.
    dvrval.b $e |- B = ( Base ` R ) $.
    dvrval.t $e |- .x. = ( .r ` R ) $.
    dvrval.u $e |- U = ( Unit ` R ) $.
    dvrval.i $e |- I = ( invr ` R ) $.
    dvrval.d $e |- ./ = ( /r ` R ) $.
    $( Division operation in a ring.  (Contributed by Mario Carneiro,
       2-Jul-2014.)  (Revised by Mario Carneiro, 2-Dec-2014.) $)
    dvrfval $p |- ./ = ( x e. B , y e. U |-> ( x .x. ( I ` y ) ) ) $=
      ( cfv cvv wceq cbs cui fveq2 c0 vr cdvr cv cmpt2 wcel cinvr cmulr syl6eqr
      co eqidd fveq1d oveq123d mpt2eq123dv df-dvr eqeltri mpt2ex fvmpt wn fvprc
      fvex syl5eq eqid mpt2eq12 sylancl mpt20 syl6eq eqtr4d pm2.61i eqtri ) DEU
      BNZABCGAUCZBUCZHNZFUIZUDZMEOUEZVJVOPUAEABUAUCZQNZVQRNZVKVLVQUFNZNZVQUGNZU
      IZUDVOOUBVQEPZABVRVSWCCGVNWDVREQNZCVQEQSIUHWDVSERNZGVQERSKUHWDVKVKWAVMWBF
      WDWBEUGNFVQEUGSJUHWDVKUJWDVLVTHWDVTEUFNHVQEUFSLUHUKULUMABUAUNABCGVNCWEOIE
      QUTUOGWFOKERUTUOUPUQVPURZVJTVOEUBUSWGVOABTGVNUDZTWGCTPGGPVOWHPWGCWETIEQUS
      VAGVBABCGTGVNVCVDABGVNVEVFVGVHVI $.

    $( Division operation in a ring.  (Contributed by Mario Carneiro,
       2-Jul-2014.)  (Revised by Mario Carneiro, 2-Dec-2014.) $)
    dvrval $p |- ( ( X e. B /\ Y e. U ) ->
      ( X ./ Y ) = ( X .x. ( I ` Y ) ) ) $=
      ( vx vy cv cfv co oveq1 wceq fveq2 oveq2d dvrfval ovex ovmpt2 ) NOGHAENPZ
      OPZFQZDRGHFQZDRBGUHDRUFGUHDSUGHTUHUIGDUGHFUAUBNOABCDEFIJKLMUCGUIDUDUE $.
  $}

  ${
    dvrcl.b $e |- B = ( Base ` R ) $.
    dvrcl.o $e |- U = ( Unit ` R ) $.
    dvrcl.d $e |- ./ = ( /r ` R ) $.
    $( Closure of division operation.  (Contributed by Mario Carneiro,
       2-Jul-2014.) $)
    dvrcl $p |- ( ( R e. Ring /\ X e. B /\ Y e. U ) -> ( X ./ Y ) e. B ) $=
      ( crg wcel w3a co cinvr cfv cmulr wceq eqid dvrval 3adant1 3adant2 ringcl
      ringinvcl syld3an3 eqeltrd ) CJKZEAKZFDKZLEFBMZEFCNOZOZCPOZMZAUGUHUIUMQUF
      ABCULDUJEFGULRZHUJRZISTUFUGUHUKAKZUMAKUFUHUPUGACDUJFHUOGUCUAACULEUKGUNUBU
      DUE $.
  $}

  ${
    unitdvcl.o $e |- U = ( Unit ` R ) $.
    unitdvcl.d $e |- ./ = ( /r ` R ) $.
    $( The units are closed under division.  (Contributed by Mario Carneiro,
       2-Jul-2014.) $)
    unitdvcl $p |- ( ( R e. Ring /\ X e. U /\ Y e. U ) -> ( X ./ Y ) e. U ) $=
      ( crg wcel w3a co cinvr cfv cmulr wceq cbs eqid unitcl dvrval sylan
      3adant1 unitinvcl 3adant2 unitmulcl syld3an3 eqeltrd ) BHIZDCIZECIZJDEAKZ
      DEBLMZMZBNMZKZCUHUIUJUNOZUGUHDBPMZIUIUOUPBCDUPQZFRUPABUMCUKDEUQUMQZFUKQZG
      STUAUGUHUIULCIZUNCIUGUIUTUHBCUKEFUSUBUCBUMCDULFURUDUEUF $.

    dvrid.o $e |- .1. = ( 1r ` R ) $.
    $( A cancellation law for division.  ( ~ divid analog.)  (Contributed by
       Mario Carneiro, 18-Jun-2015.) $)
    dvrid $p |- ( ( R e. Ring /\ X e. U ) -> ( X ./ X ) = .1. ) $=
      ( crg wcel wa co cinvr cfv cmulr cbs wceq eqid unitcl adantl dvrval eqtrd
      sylancom unitrinv ) BIJZECJZKEEALZEEBMNZNBONZLZDUEUFEBPNZJZUGUJQUFULUEUKB
      CEUKRZFSTUKABUICUHEEUMUIRZFUHRZGUAUCBUICDUHEFUOUNHUDUB $.
  $}

  ${
    dvr1.b $e |- B = ( Base ` R ) $.
    dvr1.d $e |- ./ = ( /r ` R ) $.
    dvr1.o $e |- .1. = ( 1r ` R ) $.
    $( A cancellation law for division.  ( ~ div1 analog.)  (Contributed by
       Mario Carneiro, 18-Jun-2015.) $)
    dvr1 $p |- ( ( R e. Ring /\ X e. B ) -> ( X ./ .1. ) = X ) $=
      ( crg wcel wa co cinvr cfv cmulr cui wceq id eqid 1unit syl2anr ringridm
      dvrval 1rinv adantr oveq2d 3eqtrd ) CIJZEAJZKZEDBLZEDCMNZNZCONZLZEDUNLEUI
      UIDCPNZJUKUOQUHUIRCUPDUPSZHTABCUNUPULEDFUNSZUQULSZGUCUAUJUMDEUNUHUMDQUICD
      ULUSHUDUEUFACUNDEFURHUBUG $.
  $}

  ${
    dvrass.b $e |- B = ( Base ` R ) $.
    dvrass.o $e |- U = ( Unit ` R ) $.
    dvrass.d $e |- ./ = ( /r ` R ) $.
    dvrass.t $e |- .x. = ( .r ` R ) $.
    $( An associative law for division.  ( ~ divass analog.)  (Contributed by
       Mario Carneiro, 4-Dec-2014.) $)
    dvrass $p |- ( ( R e. Ring /\ ( X e. B /\ Y e. B /\ Z e. U ) ) ->
      ( ( X .x. Y ) ./ Z ) = ( X .x. ( Y ./ Z ) ) ) $=
      ( crg wcel w3a co cfv wceq syl2anc dvrval cinvr simpr1 simpr2 simpr3 eqid
      wa simpl ringinvcl ringass syl13anc ringcl 3adant3r3 oveq2d 3eqtr4d ) CMN
      ZFANZGANZHENZOZUFZFGDPZHCUAQZQZDPZFGVCDPZDPZVAHBPZFGHBPZDPUTUOUPUQVCANZVD
      VFRUOUSUGZUOUPUQURUBUOUPUQURUCZUTUOURVIVJUOUPUQURUDZACEVBHJVBUEZIUHSACDFG
      VCILUIUJUTVAANZURVGVDRUOUPUQVNURACDFGILUKULVLABCDEVBVAHILJVMKTSUTVHVEFDUT
      UQURVHVERVKVLABCDEVBGHILJVMKTSUMUN $.

    $( A cancellation law for division.  ( ~ divcan1 analog.)  (Contributed by
       Mario Carneiro, 2-Jul-2014.)  (Revised by Mario Carneiro,
       2-Dec-2014.) $)
    dvrcan1 $p |- ( ( R e. Ring /\ X e. B /\ Y e. U ) ->
      ( ( X ./ Y ) .x. Y ) = X ) $=
      ( crg wcel w3a co cfv wceq eqid 3adant2 eqtrd cinvr dvrval 3adant1 oveq1d
      simp1 ringinvcl unitcl 3ad2ant3 ringass syl13anc unitlinv oveq2d ringridm
      simp2 cur 3adant3 ) CLMZFAMZGEMZNZFGBOZGDOFGCUAPZPZDOZGDOZFUTVAVDGDURUSVA
      VDQUQABCDEVBFGHKIVBRZJUBUCUDUTVEFVCGDOZDOZFUTUQURVCAMZGAMZVEVHQUQURUSUEUQ
      URUSUNUQUSVIURACEVBGIVFHUFSUSUQVJURACEGHIUGUHACDFVCGHKUIUJUTVHFCUOPZDOZFU
      TVGVKFDUQUSVGVKQURCDEVKVBGIVFKVKRZUKSULUQURVLFQUSACDVKFHKVMUMUPTTT $.

    $( A cancellation law for division.  ( ~ divcan3 analog.)  (Contributed by
       Mario Carneiro, 2-Jul-2014.)  (Revised by Mario Carneiro,
       18-Jun-2015.) $)
    dvrcan3 $p |- ( ( R e. Ring /\ X e. B /\ Y e. U ) ->
      ( ( X .x. Y ) ./ Y ) = X ) $=
      ( crg wcel w3a co cur cfv wceq simp1 simp2 unitcl 3ad2ant3 simp3 syl13anc
      dvrass eqid dvrid 3adant2 oveq2d ringridm 3adant3 3eqtrd ) CLMZFAMZGEMZNZ
      FGDOGBOZFGGBOZDOZFCPQZDOZFUPUMUNGAMZUOUQUSRUMUNUOSUMUNUOTUOUMVBUNACEGHIUA
      UBUMUNUOUCABCDEFGGHIJKUEUDUPURUTFDUMUOURUTRUNBCEUTGIJUTUFZUGUHUIUMUNVAFRU
      OACDUTFHKVCUJUKUL $.
  $}

  ${
    dvreq1.b $e |- B = ( Base ` R ) $.
    dvreq1.o $e |- U = ( Unit ` R ) $.
    dvreq1.d $e |- ./ = ( /r ` R ) $.
    dvreq1.t $e |- .1. = ( 1r ` R ) $.
    $( A cancellation law for division.  ( ~ diveq1 analog.)  (Contributed by
       Mario Carneiro, 28-Apr-2016.) $)
    dvreq1 $p |- ( ( R e. Ring /\ X e. B /\ Y e. U ) ->
                   ( ( X ./ Y ) = .1. <-> X = Y ) ) $=
      ( crg wcel w3a co wceq cmulr cfv oveq1 3adant2 eqid dvrcan1 unitcl sylan2
      ringlidm eqeq12d syl5ib dvrid eqeq1d syl5ibrcom impbid ) CLMZFAMZGDMZNZFG
      BOZEPZFGPZUQUPGCQRZOZEGUSOZPUOURUPEGUSSUOUTFVAGABCUSDFGHIJUSUAZUBULUNVAGP
      ZUMUNULGAMVCACDGHIUCACUSEGHVBKUEUDTUFUGUOUQURGGBOZEPZULUNVEUMBCDEGIJKUHTU
      RUPVDEFGGBSUIUJUK $.
  $}

  ${
    ringinvdv.b $e |- B = ( Base ` R ) $.
    ringinvdv.u $e |- U = ( Unit ` R ) $.
    ringinvdv.d $e |- ./ = ( /r ` R ) $.
    ringinvdv.o $e |- .1. = ( 1r ` R ) $.
    ringinvdv.i $e |- I = ( invr ` R ) $.
    $( Write the inverse function in terms of division.  (Contributed by Mario
       Carneiro, 2-Jul-2014.) $)
    ringinvdv $p |- ( ( R e. Ring /\ X e. U ) -> ( I ` X ) = ( .1. ./ X ) ) $=
      ( crg wcel wa co cfv cmulr wceq ringidcl dvrval ringinvcl ringlidm syldan
      eqid sylan eqtr2d ) CMNZGDNZOEGBPZEGFQZCRQZPZUKUHEANUIUJUMSACEHKTABCULDFE
      GHULUEZILJUAUFUHUIUKANUMUKSACDFGILHUBACULEUKHUNKUCUDUG $.
  $}

  ${
    $d x y B $.  $d x y z K $.  $d x y z L $.  $d x y z ph $.
    rngidpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    rngidpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    rngidpropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( .r ` K ) y ) = ( x ( .r ` L ) y ) ) $.
    $( The ring identity depends only on the ring's base set and multiplication
       operation.  (Contributed by Mario Carneiro, 26-Dec-2014.) $)
    rngidpropd $p |- ( ph -> ( 1r ` K ) = ( 1r ` L ) ) $=
      ( cmgp cfv c0g cur cbs eqid mgpbas syl6eq cv wcel co cmulr mgpplusg oveqi
      wa cplusg 3eqtr3g grpidpropd ringidval 3eqtr4g ) AEJKZLKFJKZLKEMKZFMKZABC
      DUJUKADENKZUJNKGUNEUJUJOZUNOPQADFNKZUKNKHUPFUKUKOZUPOPQABRZDSCRZDSUDUDURU
      SEUAKZTURUSFUAKZTURUSUJUEKZTURUSUKUEKZTIUTVBURUSEUTUJUOUTOUBUCVAVCURUSFVA
      UKUQVAOUBUCUFUGEULUJUOULOUHFUMUKUQUMOUHUI $.

    $( The divisibility relation depends only on the ring's base set and
       multiplication operation.  (Contributed by Mario Carneiro,
       26-Dec-2014.) $)
    dvdsrpropd $p |- ( ph -> ( ||r ` K ) = ( ||r ` L ) ) $=
      ( vz cv cbs cfv wcel cmulr co wceq wrex wa eqid copab cdsr anassrs eqeq1d
      an32s rexbidva pm5.32da rexeqdv anbi12d 3bitr3d opabbidv dvdsrval 3eqtr4g
      wb eleq2d ) ACKZELMZNZBKZUPEOMZPZJKZQZBUQRZSZCJUAUPFLMZNZUSUPFOMZPZVBQZBV
      FRZSZCJUAEUBMZFUBMZAVEVLCJAUPDNZVCBDRZSVOVJBDRZSVEVLAVOVPVQAVOSVCVJBDAUSD
      NZVOVCVJUNAVRSVOSVAVIVBAVRVOVAVIQIUCUDUEUFUGAVOURVPVDADUQUPGUOAVCBDUQGUHU
      IAVOVGVQVKADVFUPHUOAVJBDVFHUHUIUJUKCJBUQVMEUTUQTVMTUTTULCJBVFVNFVHVFTVNTV
      HTULUM $.

    $( The set of units depends only on the ring's base set and multiplication
       operation.  (Contributed by Mario Carneiro, 26-Dec-2014.) $)
    unitpropd $p |- ( ph -> ( Unit ` K ) = ( Unit ` L ) ) $=
      ( vz cfv cv cdsr wbr wa wcel cbs eqid cmulr co cui cur rngidpropd anbi12d
      coppr breq2d dvdsrpropd breqd opprbas syl6eq wceq ancom2s opprmul 3eqtr4g
      bitrd isunit 3bitr4g eqrdv ) AJEUAKZFUAKZAJLZEUBKZEMKZNZVAVBEUEKZMKZNZOZV
      AFUBKZFMKZNZVAVIFUEKZMKZNZOZVAUSPVAUTPAVHVAVIVCNZVAVIVFNZOVOAVDVPVGVQAVBV
      IVAVCABCDEFGHIUCZUFAVBVIVAVFVRUFUDAVPVKVQVNAVCVJVAVIABCDEFGHIUGUHAVFVMVAV
      IACBDVEVLADEQKZVEQKGVSEVEVERZVSRZUIUJADFQKZVLQKHWBFVLVLRZWBRZUIUJACLZDPZB
      LZDPZOOWGWEESKZTZWGWEFSKZTZWEWGVESKZTWEWGVLSKZTAWHWFWJWLUKIULVSEWMWIVEWEW
      GWAWIRVTWMRUMWBFWNWKVLWEWGWDWKRWCWNRUMUNUGUHUDUOVCEVEUSVBVFVAUSRVBRVCRVTV
      FRUPVJFVLUTVIVMVAUTRVIRVJRWCVMRUPUQUR $.

    $( The ring inverse function depends only on the ring's base set and
       multiplication operation.  (Contributed by Mario Carneiro, 26-Dec-2014.)
       (Revised by Mario Carneiro, 5-Oct-2015.) $)
    invrpropd $p |- ( ph -> ( invr ` K ) = ( invr ` L ) ) $=
      ( cmgp cfv cui cress co cbs wceq eqid wcel wa cvv cminusg cinvr unitpropd
      unitgrpbas a1i syl6eq cmulr cplusg unitss syl5sseqr sselda anim12dan fvex
      cv syldan mgpplusg ressplusg ax-mp 3eqtr3g grpinvpropd invrfval 3eqtr4g
      oveqi ) AEJKZELKZMNZUAKFJKZFLKZMNZUAKEUBKZFUBKZABCVEVFVIVEVFOKPAEVEVFVEQZ
      VFQZUDUEAVEVHVIOKABCDEFGHIUCFVHVIVHQZVIQZUDUFABUNZVERZCUNZVERZSZSVPVREUGK
      ZNZVPVRFUGKZNZVPVRVFUHKZNVPVRVIUHKZNAVTVPDRZVRDRZSWBWDPAVQWGVSWHAVEDVPAEO
      KZVEDWIEVEWIQVLUIGUJZUKAVEDVRWJUKULIUOWAWEVPVRVETRWAWEPELUMVEWAVDVFTVMEWA
      VDVDQWAQUPUQURVCWCWFVPVRVHTRWCWFPFLUMVHWCVGVITVOFWCVGVGQWCQUPUQURVCUSUTEV
      EVFVJVLVMVJQVAFVHVIVKVNVOVKQVAVB $.
  $}

  ${
    $d b r x y z N $.  $d b r x y z R $.  $d b r z .x. $.  $d x y z X $.
    irred.1 $e |- B = ( Base ` R ) $.
    irred.2 $e |- U = ( Unit ` R ) $.
    irred.3 $e |- I = ( Irred ` R ) $.
    irred.4 $e |- N = ( B \ U ) $.
    irred.5 $e |- .x. = ( .r ` R ) $.
    $( An irreducible element of a ring is a non-unit that is not the product
       of two non-units.  (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    isirred $p |- ( X e. I <-> ( X e. N /\
      A. x e. N A. y e. N ( x .x. y ) =/= X ) ) $=
      ( vz wcel cvv wral cfv cbs vr vb cv co wne cir cdm elfvdm eleq2s elex syl
      wa cdif eldifi syl6eleq elfvexd adantr crab cui csb wceq fvex difexg mp1i
      cmulr simpr simpl fveq2d syl6eqr difeq12d eqtrd oveqd raleqbidv rabeqbidv
      neeq1d csbied df-irred ax-mp rabex fvmpt syl5eq eleq2d neeq2 elrab syl6bb
      eqeltri 2ralbidv pm5.21nii ) IGPZDQPZIHPZAUCZBUCZEUDZIUEZBHRAHRZULZWIDUFU
      GZPZWJWSIDUFSZGIDUFUHLUIDWRUJUKWKWJWPWKITDWKICDTSZICPICFUMZHICFUNMUIJUOUP
      UQWJWIIWNOUCZUEZBHRZAHRZOHURZPWQWJGXGIWJGWTXGLUADUBUAUCZTSZXHUSSZUMZWLWMX
      HVESZUDZXCUEZBUBUCZRZAXORZOXOURZUTXGQUFXHDVAZUBXKXRXGQXIQPXKQPXSXHTVBXIXJ
      QVCVDXSXOXKVAZULZXQXFOXOHYAXOXKHXSXTVFYAXKXBHYAXICXJFYAXIXACYAXHDTXSXTVGZ
      VHJVIYAXJDUSSFYAXHDUSYBVHKVIVJMVIVKZYAXPXEAXOHYCYAXNXDBXOHYCYAXMWNXCYAXLE
      WLWMYAXLDVESEYAXHDVEYBVHNVIVLVOVMVMVNVPABOUAUBVQXFOHHXBQMCQPXBQPCXAQJDTVB
      WFCFQVCVRWFVSVTWAWBXFWPOIHXCIVAXDWOABHHXCIWNWCWGWDWEWH $.

    $( The property of being a non-irreducible (reducible) element in a ring.
       (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    isnirred $p |- ( X e. B -> ( -. X e. I <-> ( X e. U \/
      E. x e. N E. y e. N ( x .x. y ) = X ) ) ) $=
      ( wcel cv wrex wn wa wral co wceq wo wne cdif eleq2i eldif bitri baibr wb
      df-ne ralbii ralnex bitr2i a1i anbi12d ioran isirred 3bitr4g con1bid ) IC
      OZIFOZAPBPEUAZIUBZBHQZAHQZUCZIGOZVAVBRZVFRZSIHOZVCIUDZBHTZAHTZSVGRVHVAVIV
      KVJVNVKVAVIVKICFUEZOVAVISHVOIMUFICFUGUHUIVJVNUJVAVNVERZAHTVJVMVPAHVMVDRZB
      HTVPVLVQBHVCIUKULVDBHUMUHULVEAHUMUNUOUPVBVFUQABCDEFGHIJKLMNURUSUT $.
  $}

  ${
    $d x y B $.  $d x y R $.  $d x y U $.  $d x y X $.
    isirred2.1 $e |- B = ( Base ` R ) $.
    isirred2.2 $e |- U = ( Unit ` R ) $.
    isirred2.3 $e |- I = ( Irred ` R ) $.
    isirred2.4 $e |- .x. = ( .r ` R ) $.
    $( Expand out the class difference from ~ isirred .  (Contributed by Mario
       Carneiro, 4-Dec-2014.) $)
    isirred2 $p |- ( X e. I <-> ( X e. B /\ -. X e. U /\
      A. x e. B A. y e. B ( ( x .x. y ) = X -> ( x e. U \/ y e. U ) ) ) ) $=
      ( wcel wral wa wn wi eldif wal bitri cdif cv co wne wo w3a anbi12i imbi1i
      wceq impexp pm4.56 df-ne imbi12i con34b bitr4i imbi2i 2albii r2al 3bitr4i
      an4 eqid isirred df-3an ) HCFUAZMZAUBZBUBZEUCZHUDZBVDNAVDNZOHCMZHFMPZOZVH
      HUIZVFFMZVGFMZUEZQZBCNACNZOHGMVKVLVSUFVEVMVJVSHCFRVFVDMZVGVDMZOZVIQZBSASV
      FCMZVGCMZOZVRQZBSASVJVSWCWGABWCWFVOPZVPPZOZOZVIQZWGWBWKVIWBWDWHOZWEWIOZOW
      KVTWMWAWNVFCFRVGCFRUGWDWHWEWIUTTUHWLWFWJVIQZQWGWFWJVIUJWOVRWFWOVQPZVNPZQV
      RWJWPVIWQVOVPUKVHHULUMVNVQUNUOUPTTUQVIABVDVDURVRABCCURUSUGABCDEFGVDHIJKVD
      VALVBVKVLVSVCUS $.
  $}

  ${
    $d x I $.  $d y z R $.  $d x y z S $.
    opprirred.1 $e |- S = ( oppR ` R ) $.
    opprirred.2 $e |- I = ( Irred ` R ) $.
    $( Irreducibility is symmetric, so the irreducible elements of the opposite
       ring are the same as the original ring.  (Contributed by Mario Carneiro,
       4-Dec-2014.) $)
    opprirred $p |- I = ( Irred ` S ) $=
      ( vx vz vy cir cfv cv cbs wcel cmulr co wne wral wa eqid isirred cui cdif
      ralcom opprmul neeq1i 2ralbii bitr4i anbi2i opprbas opprunit 3bitr4i
      eqriv ) FCBIJZFKZALJZAUAJZUBZMZGKZHKZANJZOZUNPZHUQQGUQQZRURUTUSBNJZOZUNPZ
      GUQQHUQQZRUNCMUNUMMVDVHURVDVCGUQQHUQQVHVCGHUQUQUCVGVCHGUQUQVFVBUNUOAVEVAB
      UTUSUOSZVASZDVESZUDUEUFUGUHGHUOAVAUPCUQUNVIUPSZEUQSZVJTHGUOBVEUPUMUQUNUOA
      BDVIUIABUPVLDUJUMSVMVKTUKUL $.
  $}

  ${
    $d x y z R $.  $d x y z .x. $.  $d x y z U $.  $d x y z X $.  $d x y z Y $.
    $d x y B $.  $d x y I $.  $d x y .0. $.
    irredn0.i $e |- I = ( Irred ` R ) $.
    ${
      irredn0.z $e |- .0. = ( 0g ` R ) $.
      $( The additive identity is not irreducible.  (Contributed by Mario
         Carneiro, 4-Dec-2014.) $)
      irredn0 $p |- ( ( R e. Ring /\ X e. I ) -> X =/= .0. ) $=
        ( vx vy crg wcel wa wn cfv cv co wceq wrex eqid adantr eqeq1d wne cmulr
        cui cbs wo ring0cl anim1i eldif sylibr ringlz mpdan oveq1 oveq2 rspc2ev
        cdif syl3anc ex orrd isnirred syl mpbird simpr eleq1 syl5ibcom necon3bd
        wb mpd ) AIJZCBJZKZDBJZLZCDUAVHVLVIVHVLDAUCMZJZGNZHNZAUBMZOZDPZHAUDMZVM
        UOZQGWAQZUEZVHVNWBVHVNLZWBVHWDKZDWAJZWFDDVQOZDPZWBWEDVTJZWDKWFVHWIWDVTA
        DVTRZFUFZUGDVTVMUHUIZWLVHWHWDVHWIWHWKVTAVQDDWJVQRZFUJUKSVSWHDVPVQOZDPGH
        DDWAWAVODPVRWNDVODVPVQULTVPDPWNWGDVPDDVQUMTUNUPUQURVHWIVLWCVFWKGHVTAVQV
        MBWADWJVMREWARWMUSUTVASVJVKCDVJVICDPVKVHVIVBCDBVCVDVEVG $.
    $}

    ${
      irredcl.b $e |- B = ( Base ` R ) $.
      $( An irreducible element is in the ring.  (Contributed by Mario
         Carneiro, 4-Dec-2014.) $)
      irredcl $p |- ( X e. I -> X e. B ) $=
        ( vx vy wcel cui cfv wn cv cmulr co wceq wo wi wral eqid isirred2
        simp1bi ) DCIDAIDBJKZILGMZHMZBNKZODPUDUCIUEUCIQRHASGASGHABUFUCCDFUCTEUF
        TUAUB $.
    $}

    ${
      irrednu.u $e |- U = ( Unit ` R ) $.
      $( An irreducible element is not a unit.  (Contributed by Mario Carneiro,
         4-Dec-2014.) $)
      irrednu $p |- ( X e. I -> -. X e. U ) $=
        ( vx vy wcel cbs cfv wn cv cmulr co wceq wo wi wral eqid isirred2
        simp2bi ) DCIDAJKZIDBILGMZHMZANKZODPUDBIUEBIQRHUCSGUCSGHUCAUFBCDUCTFEUF
        TUAUB $.
    $}

    ${
      irredn1.o $e |- .1. = ( 1r ` R ) $.
      $( The multiplicative identity is not irreducible.  (Contributed by Mario
         Carneiro, 4-Dec-2014.) $)
      irredn1 $p |- ( ( R e. Ring /\ X e. I ) -> X =/= .1. ) $=
        ( crg wcel wne cui wn eqid irrednu wceq 1unit eleq1 syl5ibrcom necon3bd
        cfv syl5 imp ) AGHZDCHZDBIZUCDAJSZHZKUBUDAUECDEUELZMUBUFDBUBUFDBNBUEHAU
        EBUGFODBUEPQRTUA $.
    $}

    ${
      irredrmul.u $e |- U = ( Unit ` R ) $.
      irredrmul.t $e |- .x. = ( .r ` R ) $.
      $( The product of an irreducible element and a unit is irreducible.
         (Contributed by Mario Carneiro, 4-Dec-2014.) $)
      irredrmul $p |- ( ( R e. Ring /\ X e. I /\ Y e. U ) ->
        ( X .x. Y ) e. I ) $=
        ( vx vy vz wcel co cv wceq wrex wn eqid syl3anc crg w3a cbs cfv cdif wo
        simp2 cdvr simp1 simp3 unitdvcl 3com23 syl2anc irredcl 3ad2ant2 dvrcan3
        wi 3expia eleq1d sylibd ad2antrr eldifi ad2antrl dvrcl eldifn unitmulcl
        wa dvrcan1 eldifd simprr oveq1d ad2antlr dvrass syl13anc 3eqtr3d eqeq1d
        mtod oveq2 rspcev rexlimdvaa reximdva orim12d wb unitcl 3ad2ant3 ringcl
        isnirred syl 3imtr4d mt4d ) AUAMZEDMZFCMZUBZWLEFBNZDMZWKWLWMUGWNWOCMZJO
        ZKOZBNZWOPZKAUCUDZCUEZQZJXCQZUFZECMZWRLOZBNZEPZLXCQZJXCQZUFZWPRZWLRZWNW
        QXGXEXLWNWQWOFAUHUDZNZCMZXGWNWKWMWQXRUQWKWLWMUIZWKWLWMUJZWKWMWQXRWKWQWM
        XRXPACWOFHXPSZUKULURUMWNXQECWNWKEXBMZWMXQEPZXSWLWKYBWMXBADEGXBSZUNUOZXT
        XBXPABCEFYDHYAIUPTZUSUTWNXDXKJXCWNWRXCMZVGZXAXKKXCYHWSXCMZXAVGZVGZWSFXP
        NZXCMWRYLBNZEPZXKYKYLXBCYKWKWSXBMZWMYLXBMWNWKYGYJXSVAZYIYOYHXAWSXBCVBVC
        ZWNWMYGYJXTVAZXBXPACWSFYDHYAVDTYKYLCMZWSCMZYIYTRYHXAWSXBCVEVCYKYSYLFBNZ
        CMZYTYKWKWMYSUUBUQYPYRWKWMYSUUBWKYSWMUUBABCYLFHIVFULURUMYKUUAWSCYKWKYOW
        MUUAWSPYPYQYRXBXPABCWSFYDHYAIVHTUSUTVQVIYKWTFXPNZXQYMEYKWTWOFXPYHYIXAVJ
        VKYKWKWRXBMZYOWMUUCYMPYPYGUUDWNYJWRXBCVBVLYQYRXBXPABCWRWSFYDHYAIVMVNWNY
        CYGYJYFVAVOXJYNLYLXCXHYLPXIYMEXHYLWRBVRVPVSUMVTWAWBWNWOXBMZXNXFWCWNWKYB
        FXBMZUUEXSYEWMWKUUFWLXBACFYDHWDWEXBABEFYDIWFTJKXBABCDXCWOYDHGXCSZIWGWHW
        NYBXOXMWCYEJLXBABCDXCEYDHGUUGIWGWHWIWJ $.

      $( The product of a unit and an irreducible element is irreducible.
         (Contributed by Mario Carneiro, 4-Dec-2014.) $)
      irredlmul $p |- ( ( R e. Ring /\ X e. U /\ Y e. I ) ->
        ( X .x. Y ) e. I ) $=
        ( crg wcel w3a co coppr cfv cmulr cbs eqid opprmul opprring opprirred
        opprunit irredrmul syl3an1 3com23 syl5eqelr ) AJKZECKZFDKZLEFBMFEANOZPO
        ZMZDAQOZAUKBUJFEUMRIUJRZUKRZSUGUIUHULDKZUGUJJKUIUHUPAUJUNTUJUKCDFEAUJDU
        NGUAAUJCHUNUBUOUCUDUEUF $.
    $}

    ${
      irredmul.b $e |- B = ( Base ` R ) $.
      irredmul.u $e |- U = ( Unit ` R ) $.
      irredmul.t $e |- .x. = ( .r ` R ) $.
      $( If product of two elements is irreducible, then one of the elements
         must be a unit.  (Contributed by Mario Carneiro, 4-Dec-2014.) $)
      irredmul $p |- ( ( X e. B /\ Y e. B /\ ( X .x. Y ) e. I ) ->
        ( X e. U \/ Y e. U ) ) $=
        ( vx vy wcel co wo cv wceq wi wral wa isirred2 simp3bi eqid oveq1 eleq1
        wn eqeq1d orbi1d imbi12d oveq2 orbi2d rspc2v mpii syl5 3impia ) FANZGAN
        ZFGCOZENZFDNZGDNZPZUTLQZMQZCOZUSRZVDDNZVEDNZPZSZMATLATZUQURUAZVCUTUSANU
        SDNUGVLLMABCDEUSIJHKUBUCVMVLUSUSRZVCUSUDVKVNVCSFVECOZUSRZVAVIPZSLMFGAAV
        DFRZVGVPVJVQVRVFVOUSVDFVECUEUHVRVHVAVIVDFDUFUIUJVEGRZVPVNVQVCVSVOUSUSVE
        GFCUKUHVSVIVBVAVEGDUFULUJUMUNUOUP $.
    $}

    ${
      irredneg.n $e |- N = ( invg ` R ) $.
      $( The negative of an irreducible element is irreducible.  (Contributed
         by Mario Carneiro, 4-Dec-2014.) $)
      irredneg $p |- ( ( R e. Ring /\ X e. I ) -> ( N ` X ) e. I ) $=
        ( crg wcel wa cur cfv cmulr cbs eqid simpl irredcl adantl rngnegr cui
        co 1unit unitnegcl mpdan adantr irredrmul mpd3an3 eqeltrrd ) AGHZDBHZIZ
        DAJKZCKZALKZTZDCKBUJAMKZAUMUKCDUONZUMNZUKNZFUHUIOUIDUOHUHUOABDEUPPQRUHU
        IULASKZHZUNBHUHUTUIUHUKUSHUTAUSUKUSNZURUAAUSCUKVAFUBUCUDAUMUSBDULEVAUQU
        EUFUG $.

      irrednegb.b $e |- B = ( Base ` R ) $.
      $( An element is irreducible iff its negative is.  (Contributed by Mario
         Carneiro, 4-Dec-2014.) $)
      irrednegb $p |- ( ( R e. Ring /\ X e. B ) ->
        ( X e. I <-> ( N ` X ) e. I ) ) $=
        ( crg wcel wa irredneg adantlr wceq cgrp ringgrp grpinvinv sylan adantr
        cfv eqeltrrd impbida ) BIJZEAJZKZECJZEDTZCJZUCUFUHUDBCDEFGLMUEUHKUGDTZE
        CUEUIENZUHUCBOJUDUJBPABDEHGQRSUCUHUICJUDBCDUGFGLMUAUB $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ring primes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Token for the ring primes function. $)
  $c RPrime $.

  $( Syntax for the ring primes function. $)
  crpm $a class RPrime $.

  ${
    $d b d p w x y $.
    $( Define the function associating with a ring its set of prime elements.
       A prime element is a nonzero non-unit that satisfies an equivalent of
       Euclid's lemma ~ euclemma .  Prime elements are closely related to
       irreducible elements ( see ~ df-irred ).  (Contributed by Mario
       Carneiro, 17-Feb-2015.) $)
    df-rprm $a |- RPrime = ( w e. _V |-> [_ ( Base ` w ) / b ]_
   { p e. ( b \ ( ( Unit ` w ) u. { ( 0g ` w ) } ) ) | A. x e. b A. y e. b
  [. ( ||r ` w ) / d ]. ( p d ( x ( .r ` w ) y ) -> ( p d x \/ p d y ) ) } ) $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ring homomorphisms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c RingHom $. $( Ring homomorphism $)
  $c RingIso $. $( Ring isomorphism $)
  $c ~=r $. $( Ring isomorphism relation $)

  $( Extend class notation with the ring homomorphisms. $)
  crh $a class RingHom $.

  $( Extend class notation with the ring isomorphisms. $)
  crs $a class RingIso $.

  $( Extend class notation with the ring isomorphism relation. $)
  cric $a class ~=r $.

  ${
    $d r s v w f x y $.
    $( Define the set of ring homomorphisms from ` r ` to ` s ` .  (Contributed
       by Stefan O'Rear, 7-Mar-2015.) $)
    df-rnghom $a |- RingHom = ( r e. Ring , s e. Ring |->
      [_ ( Base ` r ) / v ]_ [_ ( Base ` s ) / w ]_
   { f e. ( w ^m v ) | ( ( f ` ( 1r ` r ) ) = ( 1r ` s ) /\ A. x e. v A. y e. v
   ( ( f ` ( x ( +g ` r ) y ) ) = ( ( f ` x ) ( +g ` s ) ( f ` y ) ) /\
     ( f ` ( x ( .r ` r ) y ) ) = ( ( f ` x ) ( .r ` s ) ( f ` y ) ) ) ) } ) $.

    $( Define the set of ring isomorphisms from ` r ` to ` s ` .  (Contributed
       by Stefan O'Rear, 7-Mar-2015.) $)
    df-rngiso $a |- RingIso = ( r e. _V , s e. _V |->
      { f e. ( r RingHom s ) | `' f e. ( s RingHom r ) } ) $.

    $( The property of a ring homomorphism can be decomposed into separate
       homomorphic conditions for addition and multiplication.  (Contributed by
       Stefan O'Rear, 7-Mar-2015.) $)
    dfrhm2 $p |- RingHom = ( r e. Ring , s e. Ring |->
          ( ( r GrpHom s ) i^i ( ( mulGrp ` r ) MndHom ( mulGrp ` s ) ) ) ) $=
      ( vv vw vf vx vy crg cv cbs cfv wceq co wa wral crab wcel cab wb eqid crh
      cur cplusg cmulr cmap csb cmpt2 cghm cmgp cmhm cin df-rnghom cgrp ringgrp
      wf isghm3 syl2an abbi2dv df-rab fvex elmap anbi1i abbii eqtri syl6eqr w3a
      cmnd ringmgp mgpbas mgpplusg ringidval ismhm baib 3anass ineq12d r19.26-2
      bitr4i ancom 3bitri a1i rabbiia oveq12 ancoms raleqbi1dv adantr rabeqbidv
      anass raleq anbi2d csbie2 inrab 3eqtr4i syl6reqr mpt2eq3ia ) UABAHHCBIZJK
      ZDAIZJKZWOUBKZEIZKWQUBKZLZFIZGIZWOUCKZMWTKXCWTKZXDWTKZWQUCKZMLZXCXDWOUDKZ
      MWTKXFXGWQUDKZMLZNZGCIZOZFXNOZNZEDIZXNUEMZPZUFUFZUGBAHHWOWQUHMZWOUIKZWQUI
      KZUJMZUKZUGFGDCEABULBAHHYAYFWOHQZWQHQZNZYFXIGWPOFWPOZEWRWPUEMZPZXLGWPOFWP
      OZXBNZEYKPZUKZYAYIYBYLYEYOYIYBWPWRWTUOZYJNZERZYLYIYREYBYGWOUMQWQUMQWTYBQY
      RSYHWOUNWQUNGFXEXHWOWQWTWPWRWPTZWRTZXETXHTUPUQURYLWTYKQZYJNZERYSYJEYKUSUU
      CYREUUBYQYJWRWPWTWQJUTZWOJUTZVAZVBVCVDVEYIYEYQYMXBVFZERZYOYIUUGEYEYGYCVGQ
      ZYDVGQZWTYEQZUUGSYHWOYCYCTZVHWQYDYDTZVHUUKUUIUUJNUUGFGWPWRXJXKYCYDWTXAWSW
      PWOYCUULYTVIWRWQYDUUMUUAVIWOXJYCUULXJTVJWQXKYDUUMXKTVJWOWSYCUULWSTVKWQXAY
      DUUMXATVKVLVMUQURYOUUBYNNZERUUHYNEYKUSUUNUUGEUUNYQYNNUUGUUBYQYNUUFVBYQYMX
      BVNVQVCVDVEVOXBXMGWPOZFWPOZNZEYKPZYJYNNZEYKPYAYPUUQUUSEYKUUQUUSSUUBUUQUUP
      XBNYJYMNZXBNUUSXBUUPVRUUPUUTXBXIXLFGWPWPVPVBYJYMXBWGVSVTWACDWPWRXTUURUUEU
      UDXNWPLZXRWRLZNZXQUUQEXSYKUVBUVAXSYKLXRWRXNWPUEWBWCUVCXPUUPXBUVAXPUUPSUVB
      XOUUOFXNWPXMGXNWPWHWDWEWIWFWJYJYNEYKWKWLWMWNVD $.
  $}

  $( Define the ring isomorphism relation, analogous to ~ df-gic :  Two
     (unital) rings are said to be _isomorphic_ iff they are connected by at
     least one isomorphism.  Isomorphic rings share all global ring properties,
     but to relate local properties requires knowledge of a specific
     isomorphism.  (Contributed by AV, 24-Dec-2019.) $)
  df-ric $a |- ~=r = ( `' RingIso " ( _V \ 1o ) ) $.

  ${
    $d r s $.
    $( Reverse closure of a ring homomorphism.  (Contributed by Stefan O'Rear,
       7-Mar-2015.) $)
    rhmrcl1 $p |- ( F e. ( R RingHom S ) -> R e. Ring ) $=
      ( vr vs crg cv cghm co cmgp cfv cmhm cin crh dfrhm2 elmpt2cl1 ) DEFFDGZEG
      ZHIQJKRJKLIMABNCEDOP $.

    $( Reverse closure of a ring homomorphism.  (Contributed by Stefan O'Rear,
       7-Mar-2015.) $)
    rhmrcl2 $p |- ( F e. ( R RingHom S ) -> S e. Ring ) $=
      ( vr vs crg cv cghm co cmgp cfv cmhm cin crh dfrhm2 elmpt2cl2 ) DEFFDGZEG
      ZHIQJKRJKLIMABNCEDOP $.
  $}

  ${
    $d R r s $.  $d S r s $.
    isrhm.m $e |- M = ( mulGrp ` R ) $.
    isrhm.n $e |- N = ( mulGrp ` S ) $.
    $( A function is a ring homomorphism iff it preserves both addition and
       multiplication.  (Contributed by Stefan O'Rear, 7-Mar-2015.) $)
    isrhm $p |- ( F e. ( R RingHom S ) <-> ( ( R e. Ring /\ S e. Ring ) /\
          ( F e. ( R GrpHom S ) /\ F e. ( M MndHom N ) ) ) ) $=
      ( vr vs crh co wcel crg wa cghm cmhm cv cmgp cfv cin dfrhm2 elmpt2cl wceq
      oveq12 fveq2 oveqan12d ineq12d inex1 ovmpt2a eleq2d oveq12i eqcomi eleq2i
      ovex elin anbi2i bitri syl6bb biadan2 ) CABJKZLZAMLBMLNZCABOKZLZCDEPKZLZN
      ZHIMMHQZIQZOKZVHRSZVIRSZPKZTZABJCIHUAZUBVBVACVCARSZBRSZPKZTZLZVGVBUTVSCHI
      ABMMVNVSJVHAUCZVIBUCZNVJVCVMVRVHAVIBOUDWAWBVKVPVLVQPVHARUEVIBRUEUFUGVOVCV
      RABOUNUHUIUJVTVDCVRLZNVGCVCVRUOWCVFVDVRVECVEVRDVPEVQPFGUKULUMUPUQURUS $.

    $( A ring homomorphism is a homomorphism of multiplicative monoids.
       (Contributed by Stefan O'Rear, 7-Mar-2015.) $)
    rhmmhm $p |- ( F e. ( R RingHom S ) -> F e. ( M MndHom N ) ) $=
      ( crh co wcel cghm cmhm crg wa isrhm simprbi simprd ) CABHIJZCABKIJZCDELI
      JZRAMJBMJNSTNABCDEFGOPQ $.
  $}

  ${
    $d F f $.  $d R f r s $.  $d S f r s $.  $d V f r s $.  $d W f r s $.
    $( An isomorphism of rings is a homomorphism whose converse is also a
       homomorphism .  (Contributed by AV, 22-Oct-2019.) $)
    isrim0 $p |- ( ( R e. V /\ S e. W ) -> ( F e. ( R RingIso S )
                 <-> ( F e. ( R RingHom S ) /\ `' F e. ( S RingHom R ) ) ) ) $=
      ( vf vr vs wcel wa crs co cv ccnv crh crab cvv wceq a1i adantl cmpt2 elex
      df-rngiso oveq12 ancoms eleq2d rabeqbidv adantr ovex rabex ovmpt2d eleq1d
      cnveq elrab syl6bb ) ADIZBEIZJZCABKLZICFMZNZBAOLZIZFABOLZPZICVDICNZVBIZJU
      RUSVECURGHABQQVAHMZGMZOLZIZFVIVHOLZPZVEKQKGHQQVMUARURFHGUCSURVIARZVHBRZJZ
      JZVKVCFVLVDVPVLVDRURVIAVHBOUDTVQVJVBVAVPVJVBRZURVOVNVRVHBVIAOUDUETUFUGUPA
      QIUQADUBUHUQBQIUPBEUBTVEQIURVCFVDABOUIUJSUKUFVCVGFCVDUTCRVAVFVBUTCUMULUNU
      O $.

    $( Reverse closure for an isomorphism of rings.  (Contributed by AV,
       22-Oct-2019.) $)
    rimrcl $p |- ( F e. ( R RingIso S ) -> ( R e. _V /\ S e. _V ) ) $=
      ( vr vs vf cvv cv ccnv crh co wcel crab crs df-rngiso elmpt2cl ) DEGGFHIE
      HZDHZJKLFRQJKMABNCFEDOP $.
  $}

  $( A ring homomorphism is an additive group homomorphism.  (Contributed by
     Stefan O'Rear, 7-Mar-2015.) $)
  rhmghm $p |- ( F e. ( R RingHom S ) -> F e. ( R GrpHom S ) ) $=
    ( crh co wcel cghm cmgp cfv cmhm crg wa eqid isrhm simprbi simpld ) CABDEFZ
    CABGEFZCAHIZBHIZJEFZQAKFBKFLRUALABCSTSMTMNOP $.

  ${
    rhmf.b $e |- B = ( Base ` R ) $.
    rhmf.c $e |- C = ( Base ` S ) $.
    $( A ring homomorphism is a function.  (Contributed by Stefan O'Rear,
       8-Mar-2015.) $)
    rhmf $p |- ( F e. ( R RingHom S ) -> F : B --> C ) $=
      ( crh co wcel cghm wf rhmghm ghmf syl ) ECDHIJECDKIJABELCDEMCDEABFGNO $.
  $}

  ${
    rhmmul.x $e |- X = ( Base ` R ) $.
    rhmmul.m $e |- .x. = ( .r ` R ) $.
    rhmmul.n $e |- .X. = ( .r ` S ) $.
    $( A homomorphism of rings preserves multiplication.  (Contributed by Mario
       Carneiro, 12-Jun-2015.) $)
    rhmmul $p |- ( ( F e. ( R RingHom S ) /\ A e. X /\ B e. X ) ->
      ( F ` ( A .x. B ) ) = ( ( F ` A ) .X. ( F ` B ) ) ) $=
      ( crh co wcel cmgp cfv cmhm wceq eqid mgpplusg rhmmhm mgpbas syl3an1
      mhmlin ) GCDLMNGCOPZDOPZQMNAHNBHNABEMGPAGPBGPFMRCDGUEUFUESZUFSZUAHEFUEUFG
      ABHCUEUGIUBCEUEUGJTDFUFUHKTUDUC $.
  $}

  ${
    $d ph x y $.  $d B x y $.  $d C x y $.  $d F x y $.  $d .+ x y $.
    $d .+^ x y $.  $d R x y $.  $d S x y $.
    isrhmd.b $e |- B = ( Base ` R ) $.
    isrhmd.o $e |- .1. = ( 1r ` R ) $.
    isrhmd.n $e |- N = ( 1r ` S ) $.
    isrhmd.t $e |- .x. = ( .r ` R ) $.
    isrhmd.u $e |- .X. = ( .r ` S ) $.
    isrhmd.r $e |- ( ph -> R e. Ring ) $.
    isrhmd.s $e |- ( ph -> S e. Ring ) $.
    isrhmd.ho $e |- ( ph -> ( F ` .1. ) = N ) $.
    isrhmd.ht $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( F ` ( x .x. y ) ) = ( ( F ` x ) .X. ( F ` y ) ) ) $.
    ${
      isrhm2d.f $e |- ( ph -> F e. ( R GrpHom S ) ) $.
      $( Demonstration of ring homomorphism.  (Contributed by Mario Carneiro,
         13-Jun-2015.) $)
      isrhm2d $p |- ( ph -> F e. ( R RingHom S ) ) $=
        ( crg wcel wa cghm co cmgp cfv cmhm crh jca cmnd cbs wf cv wceq c0g w3a
        wral eqid ringmgp syl ghmf ralrimivva ringidval fveq2i 3eqtr3g mgpplusg
        3jca mgpbas ismhm sylanbrc isrhm ) AEUBUCZFUBUCZUDJEFUEUFUCZJEUGUHZFUGU
        HZUIUFUCZUDJEFUJUFUCAVNVOQRUKAVPVSUAAVQULUCZVRULUCZUDDFUMUHZJUNZBUOZCUO
        ZGUFJUHWDJUHWEJUHHUFUPZCDUSBDUSZVQUQUHZJUHZVRUQUHZUPZURVSAVTWAAVNVTQEVQ
        VQUTZVAVBAVOWARFVRVRUTZVAVBUKAWCWGWKAVPWCUAEFJDWBLWBUTZVCVBAWFBCDDTVDAI
        JUHKWIWJSIWHJEIVQWLMVEVFFKVRWMNVEVGVIBCDWBGHVQVRJWJWHDEVQWLLVJWBFVRWMWN
        VJEGVQWLOVHFHVRWMPVHWHUTWJUTVKVLUKEFJVQVRWLWMVMVL $.
    $}

    isrhmd.c $e |- C = ( Base ` S ) $.
    isrhmd.p $e |- .+ = ( +g ` R ) $.
    isrhmd.q $e |- .+^ = ( +g ` S ) $.
    isrhmd.f $e |- ( ph -> F : B --> C ) $.
    isrhmd.hp $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( F ` ( x .+ y ) ) = ( ( F ` x ) .+^ ( F ` y ) ) ) $.
    $( Demonstration of ring homomorphism.  (Contributed by Stefan O'Rear,
       8-Mar-2015.) $)
    isrhmd $p |- ( ph -> F e. ( R RingHom S ) ) $=
      ( crg wcel cgrp ringgrp syl isghmd isrhm2d ) ABCDHIJKLMNOPQRSTUAUBUCABCFG
      HIMDEOUDUEUFAHUIUJHUKUJTHULUMAIUIUJIUKUJUAIULUMUGUHUNUO $.
  $}

  ${
    rhm1.o $e |- .1. = ( 1r ` R ) $.
    rhm1.n $e |- N = ( 1r ` S ) $.
    $( Ring homomorphisms are required to fix 1.  (Contributed by Stefan
       O'Rear, 8-Mar-2015.) $)
    rhm1 $p |- ( F e. ( R RingHom S ) -> ( F ` .1. ) = N ) $=
      ( crh co wcel cmgp cfv c0g cmhm wceq eqid rhmmhm mhm0 syl ringidval
      fveq2i 3eqtr4g ) DABHIJZAKLZMLZDLZBKLZMLZCDLEUCDUDUGNIJUFUHOABDUDUGUDPZUG
      PZQUDUGDUHUEUEPUHPRSCUEDACUDUIFTUABEUGUJGTUB $.
  $}

  ${
    idrhm.b $e |- B = ( Base ` R ) $.
    $( The identity homomorphism on a ring.  (Contributed by AV,
       14-Feb-2020.) $)
    idrhm $p |- ( R e. Ring -> ( _I |` B ) e. ( R RingHom R ) ) $=
      ( crg wcel wa cid cres cghm co cmgp cfv cmhm crh id jca ringgrp idghm syl
      cgrp cmnd eqid ringmgp mgpbas idmhm isrhm sylanbrc ) BDEZUHUHFGAHZBBIJEZU
      IBKLZUKMJEZFUIBBNJEUHUHUHUHOZUMPUHUJULUHBTEUJBQABCRSUHUKUAEULBUKUKUBZUCAU
      KABUKUNCUDUESPBBUIUKUKUNUNUFUG $.
  $}

  ${
    rhmf1o.b $e |- B = ( Base ` R ) $.
    rhmf1o.c $e |- C = ( Base ` S ) $.
    $( A ring homomorphism is bijective iff its converse is also a ring
       homomorphism.  (Contributed by AV, 22-Oct-2019.) $)
    rhmf1o $p |- ( F e. ( R RingHom S )
                   -> ( F : B -1-1-onto-> C <-> `' F e. ( S RingHom R ) ) ) $=
      ( crh co wcel wf1o wa crg cghm cmgp cfv cmhm adantr syl eqid ccnv rhmrcl2
      rhmrcl1 jca simpr wb rhmghm ghmf1o bicomd mpbird cbs eqidd wceq f1oeq123d
      mgpbas a1i biimpa rhmmhm mhmf1o isrhm sylanbrc wfn rhmf ffn adantl dff1o4
      wf impbida ) ECDHIJZABEKZEUAZDCHIJZVIVJLZDMJZCMJZLZVKDCNIJZVKDOPZCOPZQIJZ
      LVLVIVPVJVIVNVOCDEUBCDEUCUDRVMVQVTVMVQVJVIVJUEVMECDNIJZVQVJUFVIWAVJCDEUGR
      WAVJVQCDEABFGUHUISUJVMVTVSUKPZVRUKPZEKZVIVJWDVIAWBBWCEEVIEULAWBUMVIACVSVS
      TZFUOUPBWCUMVIBDVRVRTZGUOUPUNUQVMEVSVRQIJZVTWDUFVIWGVJCDEVSVRWEWFURRWGWDV
      TWBWCVSVREWBTWCTUSUISUJUDDCVKVRVSWFWEUTVAVIVLLZEAVBZVKBVBZVJWHABEVGZWIVIW
      KVLABCDEFGVCRABEVDSWHBAVKVGZWJVLWLVIBADCVKGFVCVEBAVKVDSABEVFVAVH $.

    $( An isomorphism of rings is a bijective homomorphism.  (Contributed by
       AV, 22-Oct-2019.) $)
    isrim $p |- ( ( R e. V /\ S e. W ) -> ( F e. ( R RingIso S )
                <-> ( F e. ( R RingHom S ) /\ F : B -1-1-onto-> C ) ) ) $=
      ( wcel wa crs co crh ccnv wf1o isrim0 wb wi rhmf1o bicomd pm5.32d bitrd
      a1i ) CFJDGJKZECDLMJECDNMJZEODCNMJZKUFABEPZKCDEFGQUEUFUGUHUFUGUHRSUEUFUHU
      GABCDEHITUAUDUBUC $.

    $( An isomorphism of rings is a bijection.  (Contributed by AV,
       22-Oct-2019.) $)
    rimf1o $p |- ( F e. ( R RingIso S ) -> F : B -1-1-onto-> C ) $=
      ( cvv wcel wa crs co wf1o rimrcl crh isrim simpr syl6bi mpcom ) CHIDHIJZE
      CDKLIZABEMZCDENTUAECDOLIZUBJUBABCDEHHFGPUCUBQRS $.

    $( An isomorphism of rings is a homomorphism.  (Contributed by AV,
       22-Oct-2019.) $)
    rimrhm $p |- ( F e. ( R RingIso S ) -> F e. ( R RingHom S ) ) $=
      ( cvv wcel wa crs co crh rimrcl wf1o isrim simpl syl6bi mpcom ) CHIDHIJZE
      CDKLIZECDMLIZCDENTUAUBABEOZJUBABCDEHHFGPUBUCQRS $.
  $}

  ${
    $( An isomorphism of rings is an isomorphism of their additive groups.
       (Contributed by AV, 24-Dec-2019.) $)
    rimgim $p |- ( F e. ( R RingIso S ) -> F e. ( R GrpIso S ) ) $=
      ( crs wcel cghm cbs cfv wf1o cgim crh eqid rimrhm rhmghm syl rimf1o isgim
      co sylanbrc ) CABDREZCABFREZAGHZBGHZCICABJRETCABKREUAUBUCABCUBLZUCLZMABCN
      OUBUCABCUDUEPUBUCABCUDUEQS $.
  $}

  $( The composition of ring homomorphisms is a homomorphism.  (Contributed by
     Mario Carneiro, 12-Jun-2015.) $)
  rhmco $p |- ( ( F e. ( T RingHom U ) /\ G e. ( S RingHom T ) ) ->
      ( F o. G ) e. ( S RingHom U ) ) $=
    ( crh co wcel crg ccom cghm cmgp cfv cmhm rhmrcl2 rhmghm syl2an eqid rhmmhm
    wa rhmrcl1 anim12ci ghmco mhmco jca isrhm sylanbrc ) DBCFGHZEABFGHZTZAIHZCI
    HZTDEJZACKGHZUMALMZCLMZNGHZTUMACFGHUHULUIUKBCDOABEUAUBUJUNUQUHDBCKGHEABKGHU
    NUIBCDPABEPABCDEUCQUHDBLMZUPNGHEUOURNGHUQUIBCDURUPURRZUPRZSABEUOURUORZUSSUO
    URUPDEUDQUEACUMUOUPVAUTUFUG $.

  ${
    $d g x y A $.  $d g x y B $.  $d g x y ph $.  $d g x y R $.  $d g x y Y $.
    $d g C $.  $d g F $.  $d g x y Z $.
    pwsco1rhm.y $e |- Y = ( R ^s A ) $.
    pwsco1rhm.z $e |- Z = ( R ^s B ) $.
    pwsco1rhm.c $e |- C = ( Base ` Z ) $.
    pwsco1rhm.r $e |- ( ph -> R e. Ring ) $.
    pwsco1rhm.a $e |- ( ph -> A e. V ) $.
    pwsco1rhm.b $e |- ( ph -> B e. W ) $.
    pwsco1rhm.f $e |- ( ph -> F : A --> B ) $.
    $( Right composition with a function on the index sets yields a ring
       homomorphism of structure powers.  (Contributed by Mario Carneiro,
       12-Jun-2015.) $)
    pwsco1rhm $p |- ( ph -> ( g e. C |-> ( g o. F ) ) e. ( Z RingHom Y ) ) $=
      ( wcel eqid vx vy crg wa ccom cmpt cghm cmgp cfv cmhm crh pwsring syl2anc
      cv jca cmnd ringmnd syl pwsco1mhm cgrp wceq ringgrp ghmmhmb eleqtrrd cpws
      cbs ringmgp cmap pwsbas syl6eqr mgpbas eqtr3d mpteq1d eqidd cplusg pwsmgp
      co simpld simprd oveqdr mhmpropd 3eltr4d isrhm sylanbrc ) AKUCSZJUCSZUDFD
      FUNGUEZUFZKJUGVQZSZWHKUHUIZJUHUIZUJVQZSZUDWHKJUKVQSAWEWFAEUCSZCISZWEOQECI
      KMULUMZAWOBHSZWFOPEBHJLULUMZUOAWJWNAWHKJUJVQZWIABCDEFGHIJKLMNAWOEUPSZOEUQ
      URZPQRUSAKUTSZJUTSZWIWTVAAWEXCWQKVBURAWFXDWSJVBURKJVCUMVDAFEUHUIZCVEVQZVF
      UIZWGUFXFXEBVEVQZUJVQWHWMABCXGXEFGHIXHXFXHTZXFTZXGTZAWOXEUPSZOEXEXETZVGUR
      ZPQRUSAFDXGWGAEVFUIZCVHVQZDXGAXPKVFUIZDAXAWPXPXQVAXBQXOECUPIKMXOTZVIUMNVJ
      AXLWPXPXGVAXNQXOXECUPIXFXJXOEXEXMXRVKVIUMVLVMAUAUBWKVFUIZWLVFUIZWKWLXFXHA
      XSVNAXTVNAXSXGVAZWKVOUIZXFVOUIZVAZAWOWPYAYDUDOQXSXGYBYCECXEWKUCIKXFMXMXJW
      KTZXSTXKYBTYCTVPUMZVRAXTXHVFUIZVAZWLVOUIZXHVOUIZVAZAWOWRYHYKUDOPXTYGYIYJE
      BXEWLUCHJXHLXMXIWLTZXTTYGTYITYJTVPUMZVRAUAUNZXSSUBUNZXSSUDUAUBYBYCAYAYDYF
      VSVTAYNXTSYOXTSUDUAUBYIYJAYHYKYMVSVTWAWBUOKJWHWKWLYEYLWCWD $.
  $}

  ${
    $d g x y A $.  $d g x y ph $.  $d g x y R $.  $d g x y S $.  $d g x y Y $.
    $d g B $.  $d g F $.  $d g x y Z $.
    pwsco2rhm.y $e |- Y = ( R ^s A ) $.
    pwsco2rhm.z $e |- Z = ( S ^s A ) $.
    pwsco2rhm.b $e |- B = ( Base ` Y ) $.
    pwsco2rhm.a $e |- ( ph -> A e. V ) $.
    pwsco2rhm.f $e |- ( ph -> F e. ( R RingHom S ) ) $.
    $( Left composition with a ring homomorphism yields a ring homomorphism of
       structure powers.  (Contributed by Mario Carneiro, 12-Jun-2015.) $)
    pwsco2rhm $p |- ( ph -> ( g e. B |-> ( F o. g ) ) e. ( Y RingHom Z ) ) $=
      ( wcel co cfv syl eqid vx vy crg ccom cmpt cghm cmgp cmhm rhmrcl1 pwsring
      crh syl2anc rhmrcl2 jca rhmghm ghmmhm pwsco2mhm cgrp wceq ringgrp ghmmhmb
      wa cv eleqtrrd cpws rhmmhm cmap pwsbas syl6eqr cmnd ringmgp mgpbas eqtr3d
      mpteq1d eqidd cplusg pwsmgp simpld simprd mhmpropd 3eltr4d isrhm sylanbrc
      cbs oveqdr ) AIUCPZJUCPZVBFCGFVCUDZUEZIJUFQZPZWIIUGRZJUGRZUHQZPZVBWIIJUKQ
      PAWFWGADUCPZBHPZWFAGDEUKQPZWPODEGUISZNDBHIKUJULZAEUCPZWQWGAWRXAODEGUMSZNE
      BHJLUJULZUNAWKWOAWIIJUHQZWJABCDEFGHIJKLMNAGDEUFQPZGDEUHQPAWRXEODEGUOSDEGU
      PSUQAIURPZJURPZWJXDUSAWFXFWTIUTSAWGXGXCJUTSIJVAULVDAFDUGRZBVEQZWDRZWHUEXI
      EUGRZBVEQZUHQWIWNABXJXHXKFGHXIXLXITZXLTZXJTZNAWRGXHXKUHQPODEGXHXKXHTZXKTZ
      VFSUQAFCXJWHADWDRZBVGQZCXJAXSIWDRZCAWPWQXSXTUSWSNXRDBUCHIKXRTZVHULMVIAXHV
      JPZWQXSXJUSAWPYBWSDXHXPVKSNXRXHBVJHXIXMXRDXHXPYAVLVHULVMVNAUAUBWLWDRZWMWD
      RZWLWMXIXLAYCVOAYDVOAYCXJUSZWLVPRZXIVPRZUSZAWPWQYEYHVBWSNYCXJYFYGDBXHWLUC
      HIXIKXPXMWLTZYCTXOYFTYGTVQULZVRAYDXLWDRZUSZWMVPRZXLVPRZUSZAXAWQYLYOVBXBNY
      DYKYMYNEBXKWMUCHJXLLXQXNWMTZYDTYKTYMTYNTVQULZVRAUAVCZYCPUBVCZYCPVBUAUBYFY
      GAYEYHYJVSWEAYRYDPYSYDPVBUAUBYMYNAYLYOYQVSWEVTWAUNIJWIWLWMYIYPWBWC $.
  $}

  ${
    f1rhm0to0.a $e |- A = ( Base ` R ) $.
    f1rhm0to0.b $e |- B = ( Base ` S ) $.
    f1rhm0to0.n $e |- N = ( 0g ` S ) $.
    f1rhm0to0.0 $e |- .0. = ( 0g ` R ) $.
    $( If a ring homomorphism ` F ` is injective, it maps the zero of one ring
       (and only the zero) to the zero of the other ring.  (Contributed by AV,
       24-Oct-2019.) $)
    f1rhm0to0 $p |- ( ( F e. ( R RingHom S ) /\ F : A -1-1-> B /\ X e. A )
                      -> ( ( F ` X ) = N <-> X = .0. ) ) $=
      ( crh co wcel wf1 cfv wceq syl 3ad2ant1 cghm rhmghm ghmid eqeq2d wi simp2
      w3a simp3 crg rhmrcl1 ring0cl f1veqaeq syl12anc fveq2 sylan9eqr ex impbid
      sylbird ) ECDMNOZABEPZGAOZUGZGEQZFRZGHRZVBVDVCHEQZRZVEVBVFFVCUSUTVFFRZVAU
      SECDUANOVHCDEUBCDEHFLKUCSTZUDVBUTVAHAOZVGVEUEUSUTVAUFUSUTVAUHUSUTVJVAUSCU
      IOVJCDEUJACHILUKSTABGHEULUMURVBVEVDVEVBVCVFFGHEUNVIUOUPUQ $.

    ${
      $d A x $.  $d B x $.  $d F x $.  $d N x $.  $d R x $.  $d S x $.
      $d X x $.  $d .0. x $.
      $( Alternate proof for ~ f1rhm0to0 .  Using ~ ghmf1 does not make the
         proof shorter and requires disjoint variable restrictions!
         (Contributed by AV, 24-Oct-2019.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      f1rhm0to0ALT $p |- ( ( F e. ( R RingHom S ) /\ F : A -1-1-> B /\ X e. A )
                      -> ( ( F ` X ) = N <-> X = .0. ) ) $=
        ( vx co wcel cfv wceq wi syl fveq2 crh wf1 w3a wa cv wral rhmghm adantr
        cghm wb ghmf1 eqeq1d eqeq1 imbi12d rspcv adantl sylbid com23 3imp ghmid
        ex 3ad2ant1 sylan9eqr impbid ) ECDUANOZABEUBZGAOZUCZGEPZFQZGHQZVEVFVGVJ
        VKRZVEVGVFVLVEVGVFVLRVEVGUDZVFMUEZEPZFQZVNHQZRZMAUFZVLVMECDUINOZVFVSUJV
        EVTVGCDEUGZUHMCDFEABHIJLKUKSVGVSVLRVEVRVLMGAVNGQZVPVJVQVKWBVOVIFVNGETUL
        VNGHUMUNUOUPUQVAURUSVHVKVJVKVHVIHEPZFGHETVEVFWCFQZVGVEVTWDWACDEHFLKUTSV
        BVCVAVD $.
    $}

    $( A ring isomorphism maps the zero of one ring (and only the zero) to the
       zero of the other ring.  (Contributed by AV, 24-Oct-2019.) $)
    rim0to0 $p |- ( ( F e. ( R RingIso S ) /\ X e. A )
                    -> ( ( F ` X ) = N <-> X = .0. ) ) $=
      ( crs co wcel wa crh wf1 wceq syl w3a cfv wb rimrhm wf1o rimf1o f1of1 jca
      anim1i df-3an sylibr f1rhm0to0 ) ECDMNOZGAOZPZECDQNOZABERZUNUAZGEUBFSGHSU
      CUOUPUQPZUNPURUMUSUNUMUPUQABCDEIJUDUMABEUEUQABCDEIJUFABEUGTUHUIUPUQUNUJUK
      ABCDEFGHIJKLULT $.
  $}

  ${
    $d x y .0. $.  $d x y A $.  $d x B $.  $d x y F $.  $d x y N $.
    $d x y R $.  $d x y S $.
    kerf1hrm.a $e |- A = ( Base ` R ) $.
    kerf1hrm.b $e |- B = ( Base ` S ) $.
    kerf1hrm.n $e |- N = ( 0g ` R ) $.
    kerf1hrm.0 $e |- .0. = ( 0g ` S ) $.
    $( A ring homomorphism ` F ` is injective if and only if its kernel is the
       singleton ` { N } ` .  (Contributed by Thierry Arnoux, 27-Oct-2017.)
       (Proof shortened by AV, 24-Oct-2019.) $)
    kerf1hrm $p |- ( F e. ( R RingHom S ) -> ( F : A -1-1-> B <->
      ( `' F " { .0. } ) = { N } ) ) $=
      ( vx vy co wcel wceq wa cfv wb adantr crh wf1 ccnv csn cima cv simpl f1fn
      wfn adantl elpreima syl biimpa simpld simprd fvex elsn sylib wi f1rhm0to0
      w3a biimpd 3expa imp syl21anc ex velsn syl6ibr ssrdv wss crg cgrp rhmrcl1
      ringgrp grpidcl 3syl cghm rhmghm ghmid sylibr wf rhmf ffn mpbir2and snssd
      eqssd wral csg simpr2l simpr2r simpr3 eqid ghmeqker syl31anc eleqtrd ovex
      simpr1 grpsubeq0 syl3anc mpbid 3anassrs ralrimivva dff13 sylanbrc impbida
      ) ECDUANOZABEUBZEUCGUDZUEZFUDZPZXFXGQZXIXJXLLXIXJXLLUFZXIOZXMFPZXMXJOXLXN
      XOXLXNQZXLXMAOZXMERZGPZXOXLXNUGXPXQXRXHOZXLXNXQXTQZXLEAUIZXNYASXGYBXFABEU
      HUJAXMXHEUKULUMZUNXPXTXSXPXQXTYCUOXRGXMEUPUQURXLXQQXSXOXFXGXQXSXOUSXFXGXQ
      VAXSXOABCDEGXMFHIKJUTVBVCVDVEVFLFVGVHVIXFXJXIVJXGXFFXIXFFXIOZFAOZFERZXHOZ
      XFCVKOZCVLOZYECDEVMZCVNZACFHJVOVPXFYFGPZYGXFECDVQNOZYLCDEVRZCDEFGJKVSULYF
      GFEUPUQVTXFABEWAZYBYDYEYGQSABCDEHIWBZABEWCAFXHEUKVPWDWETWFXFXKQZYOXRMUFZE
      RPZXMYRPZUSZMAWGLAWGXGXFYOXKYPTYQUUALMAAYQXQYRAOZQZQYSYTXFXKUUCYSYTXFXKUU
      CYSVAZQZXMYRCWHRZNZFPZYTUUEUUGXJOUUHUUEUUGXIXJUUEYMXQUUBYSUUGXIOZXFYMUUDY
      NTXQUUBXKYSXFWIZXQUUBXKYSXFWJZXFXKUUCYSWKYMXQUUBVAYSUUIACDXMEXIUUFYRGHKXI
      WLUUFWLZWMUMWNXFXKUUCYSWQWOUUGFXMYRUUFWPUQURUUEYIXQUUBUUHYTSUUEYHYIXFYHUU
      DYJTYKULUUJUUKACUUFXMYRFHJUULWRWSWTXAVFXBLMABEXCXDXE $.
  $}

  ${
    $d h r s $.
    $( The relation "is isomorphic to" for (unital) rings.  (Contributed by AV,
       24-Dec-2019.) $)
    brric $p |- ( R ~=r S <-> ( R RingIso S ) =/= (/) ) $=
      ( vh vs vr cric crs cvv cxp df-ric cv ccnv crh co wcel crab wral wfn ovex
      wa rabexg mp1i rgen2a df-rngiso fnmpt2 ax-mp brwitnlem ) ABFGHHIZJCKLDKZE
      KZMNOZCUJUIMNZPZHOZDHQEHQGUHRUNEDHULHOUNUJHOUIHOTUJUIMSUKCULHUAUBUCEDHHUM
      GHCDEUDUEUFUG $.
  $}

  ${
    $d R f $.  $d S f $.
    $( The relation "is isomorphic to" for (unital) rings.  This theorem
       corresponds to the definition ~ df-risc of the ring isomorphism relation
       in JM's mathbox.  (Contributed by AV, 24-Dec-2019.) $)
    brric2 $p |- ( R ~=r S <-> ( ( R e. Ring /\ S e. Ring )
                                 /\ E. f f e. ( R RingIso S ) ) ) $=
      ( cric wbr crs co c0 wne cv wcel wex crg wa brric cvv crh cmgp cfv eqid
      n0 rimrcl ccnv isrim0 cghm cmhm isrhm simplbi adantr syl6bi mpcom exlimiv
      pm4.71ri 3bitri ) ABDEABFGZHICJZUOKZCLZAMKBMKNZURNABOCUOUAURUSUQUSCAPKBPK
      NZUQUSABUPUBUTUQUPABQGKZUPUCBAQGKZNUSABUPPPUDVAUSVBVAUSUPABUEGKUPARSZBRSZ
      UFGKNABUPVCVDVCTVDTUGUHUIUJUKULUMUN $.

    $( If two rings are (ring) isomorphic, their additive groups are (group)
       isomorphic.  (Contributed by AV, 24-Dec-2019.) $)
    ricgic $p |- ( R ~=r S -> R ~=g S ) $=
      ( vf cric wbr crg wcel wa cv crs co wex cgic brric2 rimgim brgici exlimiv
      cgim syl adantl sylbi ) ABDEAFGBFGHZCIZABJKGZCLZHABMEZABCNUEUFUBUDUFCUDUC
      ABRKGUFABUCOABUCPSQTUA $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Division rings and fields
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c DivRing $.
  $c Field $.

  $( Extend class notation with class of all division rings. $)
  cdr $a class DivRing $.

  $( Class of fields. $)
  cfield $a class Field $.

  $( Define class of all division rings.  A division ring is a ring in which
     the set of units is exactly the nonzero elements of the ring.
     (Contributed by NM, 18-Oct-2012.) $)
  df-drng $a |- DivRing = { r e. Ring |
    ( Unit ` r ) = ( ( Base ` r ) \ { ( 0g ` r ) } ) } $.

  $( A _field_ is a commutative division ring.  (Contributed by Mario Carneiro,
     17-Jun-2015.) $)
  df-field $a |- Field = ( DivRing i^i CRing ) $.

  ${
    $d r B $.  $d r R $.  $d r U $.  $d r .0. $.
    isdrng.b $e |- B = ( Base ` R ) $.
    isdrng.u $e |- U = ( Unit ` R ) $.
    isdrng.z $e |- .0. = ( 0g ` R ) $.
    $( The predicate "is a division ring".  (Contributed by NM, 18-Oct-2012.)
       (Revised by Mario Carneiro, 2-Dec-2014.) $)
    isdrng $p |- ( R e. DivRing <-> ( R e. Ring /\ U = ( B \ { .0. } ) ) ) $=
      ( vr cv cui cfv cbs c0g csn cdif wceq crg cdr fveq2 syl6eqr sneqd eqeq12d
      difeq12d df-drng elrab2 ) HIZJKZUFLKZUFMKZNZOZPCADNZOZPHBQRUFBPZUGCUKUMUN
      UGBJKCUFBJSFTUNUHAUJULUNUHBLKAUFBLSETUNUIDUNUIBMKDUFBMSGTUAUCUBHUDUE $.

    $( Elementhood in the set of units when ` R ` is a division ring.
       (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    drngunit $p |- ( R e. DivRing ->
      ( X e. U <-> ( X e. B /\ X =/= .0. ) ) ) $=
      ( cdr wcel csn cdif wne wa crg wceq isdrng simprbi eleq2d eldifsn syl6bb
      ) BIJZDCJDAEKLZJDAJDEMNUBCUCDUBBOJCUCPABCEFGHQRSDAETUA $.
  $}

  ${
    drngui.b $e |- B = ( Base ` R ) $.
    drngui.z $e |- .0. = ( 0g ` R ) $.
    drngui.r $e |- R e. DivRing $.
    $( The set of units of a division ring.  (Contributed by Mario Carneiro,
       2-Dec-2014.) $)
    drngui $p |- ( B \ { .0. } ) = ( Unit ` R ) $=
      ( cui cfv csn cdif crg wcel wceq cdr wa eqid isdrng mpbi simpri eqcomi )
      BGHZACIJZBKLZUAUBMZBNLUCUDOFABUACDUAPEQRST $.
  $}

  $( A division ring is a ring.  (Contributed by NM, 8-Sep-2011.) $)
  drngring $p |- ( R e. DivRing -> R e. Ring ) $=
    ( cdr wcel crg cui cfv cbs c0g csn cdif wceq eqid isdrng simplbi ) ABCADCAE
    FZAGFZAHFZIJKPAOQPLOLQLMN $.

  $( A division ring is a group.  (Contributed by NM, 8-Sep-2011.) $)
  drnggrp $p |- ( R e. DivRing -> R e. Grp ) $=
    ( cdr wcel crg cgrp drngring ringgrp syl ) ABCADCAECAFAGH $.

  $( A field is a commutative division ring.  (Contributed by Mario Carneiro,
     17-Jun-2015.) $)
  isfld $p |- ( R e. Field <-> ( R e. DivRing /\ R e. CRing ) ) $=
    ( cdr ccrg cfield df-field elin2 ) ABCDEF $.

  ${
    $d x B $.  $d x G $.  $d x R $.  $d x .0. $.
    isdrng2.b $e |- B = ( Base ` R ) $.
    isdrng2.z $e |- .0. = ( 0g ` R ) $.
    isdrng2.g $e |- G = ( ( mulGrp ` R ) |`s ( B \ { .0. } ) ) $.
    $( A division ring can equivalently be defined as a ring such that the
       nonzero elements form a group under multiplication (from which it
       follows that this is the same group as the group of units).
       (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    isdrng2 $p |- ( R e. DivRing <-> ( R e. Ring /\ G e. Grp ) ) $=
      ( vx wcel cfv wceq wa cgrp eqid cress co adantr syl2anc wbr cvv cdif cmgp
      cdr crg cui csn isdrng adantl syl6eqr unitgrp eqeltrrd cv wne unitcl cdvr
      oveq2 c0g cmulr wss cbs difss mgpbas ressbas2 ax-mp grpidcl eldifsn sylib
      ad2antlr simprd simpll eldifad simpr dvrcan1 syl3anc dvrcl ringrz 3netr4d
      necon3i syl sylanbrc ssrdv cur cdsr coppr cminusg eldifi grpinvcl adantll
      ex dvdsrmul cplusg fvex eqeltri mgpplusg ressplusg mp2b ringidcl ringlidm
      difexg grplinv mpdan wb 1unit grpid mpbid breqtrd opprbas opprmul grprinv
      sseldd eqtrd syl5eq isunit eqssd impbida pm5.32i bitri ) BUCIBUDIZBUEJZAD
      UFZUAZKZLZXRCMIZLZABXSDEXSNZFUGXRYBYDXRYBYDYCBUBJZXSOPZCMYCYHYGYAOPZCYBYH
      YIKXRXSYAYGOUPUHGUIXRYHMIYBBXSYHYFYHNUJQUKYEXSYAYEHXSYAYEHULZXSIZYJYAIZYE
      YKLZYJAIZYJDUMZYLYKYNYEABXSYJEYFUNUHYMCUQJZYJBUOJZPZYJBURJZPZYRDYSPZUMYOY
      MYPDYTUUAYMYPAIZYPDUMZYMYPYAIZUUBUUCLYDUUDXRYKYACYPYAAUSYACUTJKAXTVAYAACY
      GGABYGYGNZEVBVCVDZYPNZVEVHZYPADVFVGVIYMXRUUBYKYTYPKXRYDYKVJZYMYPAXTUUHVKZ
      YEYKVLZAYQBYSXSYPYJEYFYQNZYSNZVMVNYMXRYRAIZUUADKUUIYMXRUUBYKUUNUUIUUJUUKA
      YQBXSYPYJEYFUULVOVNABYSYRDEUUMFVPRVQYJDYTUUAYJDYRYSUPVRVSYJADVFVTWIWAZYEH
      YAXSYEYLYKYEYLLZYJBWBJZBWCJZSYJUUQBWDJZWCJZSYKUUPYJYJCWEJZJZYJYSPZUUQUURU
      UPYNUVBAIZYJUVCUURSYLYNYEYJAXTWFUHZUUPUVBAXTYDYLUVBYAIXRYACUVAYJUUFUVANZW
      GWHVKZAUURBYSYJUVBEUURNZUUMWJRUUPUVCYPUUQYDYLUVCYPKXRYAYSCUVAYJYPUUFATIYA
      TIYSCWKJKABUTJTEBUTWLWMAXTTWSYAYSYGCTGBYSYGUUEUUMWNWOWPZUUGUVFWTWHYEYPUUQ
      KZYLYEUUQUUQYSPUUQKZUVJXRUVKYDXRUUQAIUVKABUUQEUUQNZWQABYSUUQUUQEUUMUVLWRX
      AQYEYDUUQYAIUVKUVJXBXRYDVLYEXSYAUUQUUOXRUUQXSIYDBXSUUQYFUVLXCQXJYAYSCUUQY
      PUUFUVIUUGXDRXEQZXKXFUUPYJUVBYJUUSURJZPZUUQUUTUUPYNUVDYJUVOUUTSUVEUVGAUUT
      UUSUVNYJUVBABUUSUUSNZEXGUUTNZUVNNZWJRUUPUVOYJUVBYSPZUUQABUVNYSUUSUVBYJEUU
      MUVPUVRXHUUPUVSYPUUQYDYLUVSYPKXRYAYSCUVAYJYPUUFUVIUUGUVFXIWHUVMXKXLXFUURB
      UUSXSUUQUUTYJYFUVLUVHUVPUVQXMVTWIWAXNXOXPXQ $.
  $}

  ${
    $d x y K $.  $d x y L $.
    drngprop.b $e |- ( Base ` K ) = ( Base ` L ) $.
    drngprop.p $e |- ( +g ` K ) = ( +g ` L ) $.
    drngprop.m $e |- ( .r ` K ) = ( .r ` L ) $.
    $( If two structures have the same ring components (properties), one is a
       division ring iff the other one is.  (Contributed by Mario Carneiro,
       11-Oct-2013.)  (Revised by Mario Carneiro, 28-Dec-2014.) $)
    drngprop $p |- ( K e. DivRing <-> L e. DivRing ) $=
      ( vx vy crg wcel cui cfv cbs c0g csn cdif wceq wa a1i co eqid eqidd cmulr
      cdr cv oveqi unitpropd cplusg grpidpropd difeq2d eqeq12d pm5.32i ringprop
      sneqd anbi1i bitri isdrng 3bitr4i ) AHIZAJKZALKZAMKZNZOZPZQZBHIZBJKZUTBMK
      ZNZOZPZQZAUCIBUCIVEURVKQVLURVDVKURUSVGVCVJURFGUTABURUTUAZUTBLKPURCRZFUDZG
      UDZAUBKZSVOVPBUBKZSPURVOUTIVPUTIQQZVQVRVOVPEUERUFURVBVIUTURVAVHURFGUTABVM
      VNVOVPAUGKZSVOVPBUGKZSPVSVTWAVOVPDUERUHUMUIUJUKURVFVKABCDEULUNUOUTAUSVAUT
      TUSTVATUPUTBVGVHCVGTVHTUPUQ $.
  $}

  ${
    drngmgp.b $e |- B = ( Base ` R ) $.
    drngmgp.z $e |- .0. = ( 0g ` R ) $.
    drngmgp.g $e |- G = ( ( mulGrp ` R ) |`s ( B \ { .0. } ) ) $.
    $( A division ring contains a multiplicative group.  (Contributed by NM,
       8-Sep-2011.) $)
    drngmgp $p |- ( R e. DivRing -> G e. Grp ) $=
      ( cdr wcel crg cgrp isdrng2 simprbi ) BHIBJICKIABCDEFGLM $.
  $}

  ${
    drngmcl.b $e |- B = ( Base ` R ) $.
    drngmcl.t $e |- .x. = ( .r ` R ) $.
    drngmcl.z $e |- .0. = ( 0g ` R ) $.
    $( The product of two nonzero elements of a division ring is nonzero.
       (Contributed by NM, 7-Sep-2011.) $)
    drngmcl $p |- ( ( R e. DivRing /\ X e. ( B \ { .0. } )
               /\ Y e. ( B \ { .0. } ) ) -> ( X .x. Y ) e. ( B \ { .0. } ) ) $=
      ( cdr wcel cmgp cfv csn cdif co eqid cbs wceq cvv cress drngmgp wss difss
      cgrp mgpbas ressbas2 ax-mp cplusg eqeltri difexg mgpplusg ressplusg grpcl
      fvex mp2b syl3an1 ) BJKBLMZAFNZOZUAPZUEKDUTKEUTKDECPUTKABVAFGIVAQZUBUTCVA
      DEUTAUCUTVARMSAUSUDUTAVAURVBABURURQZGUFUGUHATKUTTKCVAUIMSABRMTGBRUOUJAUST
      UKUTCURVATVBBCURVCHULUMUPUNUQ $.
  $}

  ${
    drngid.b $e |- B = ( Base ` R ) $.
    drngid.z $e |- .0. = ( 0g ` R ) $.
    drngid.u $e |- .1. = ( 1r ` R ) $.
    drngid.g $e |- G = ( ( mulGrp ` R ) |`s ( B \ { .0. } ) ) $.
    $( A division ring's unit is the identity element of its multiplicative
       group.  (Contributed by NM, 7-Sep-2011.) $)
    drngid $p |- ( R e. DivRing -> .1. = ( 0g ` G ) ) $=
      ( cdr wcel cmgp cfv cui cress co c0g crg wceq eqid drngring unitgrpid syl
      csn cdif isdrng simprbi oveq2d syl6eqr fveq2d eqtrd ) BJKZCBLMZBNMZOPZQMZ
      DQMULBRKZCUPSBUABUNCUOUNTZUOTHUBUCULUODQULUOUMAEUDUEZOPDULUNUSUMOULUQUNUS
      SABUNEFURGUFUGUHIUIUJUK $.
  $}

  ${
    drngunz.z $e |- .0. = ( 0g ` R ) $.
    drngunz.u $e |- .1. = ( 1r ` R ) $.
    $( A division ring's unit is different from its zero.  (Contributed by NM,
       8-Sep-2011.) $)
    drngunz $p |- ( R e. DivRing -> .1. =/= .0. ) $=
      ( cdr wcel cbs cfv wne cui wa crg drngring eqid 1unit syl drngunit simprd
      mpbid ) AFGZBAHIZGZBCJZUABAKIZGZUCUDLUAAMGUFANAUEBUEOZEPQUBAUEBCUBOUGDRTS
      $.
  $}

  ${
    drngid2.b $e |- B = ( Base ` R ) $.
    drngid2.t $e |- .x. = ( .r ` R ) $.
    drngid2.o $e |- .0. = ( 0g ` R ) $.
    drngid2.u $e |- .1. = ( 1r ` R ) $.
    $( Properties showing that an element ` I ` is the identity element of a
       division ring.  (Contributed by Mario Carneiro, 11-Oct-2013.) $)
    drngid2 $p |- ( R e. DivRing
        -> ( ( I e. B /\ I =/= .0. /\ ( I .x. I ) = I ) <-> .1. = I ) ) $=
      ( cdr wcel wne co wceq cfv wa eqid cbs cvv w3a cmgp csn cdif cress df-3an
      c0g eldifsn anbi1i bitr4i cgrp wb drngmgp wss difss mgpbas ressbas2 ax-mp
      cplusg fvex eqeltri difexg mgpplusg ressplusg mp2b isgrpid2 syl5bb drngid
      syl eqeq1d bitr4d ) BKLZEALZEFMZEECNEOZUAZBUBPZAFUCZUDZUENZUGPZEOZDEOVPEV
      SLZVOQZVLWBVPVMVNQZVOQWDVMVNVOUFWCWEVOEAFUHUIUJVLVTUKLWDWBULABVTFGIVTRZUM
      VSCVTWAEVSAUNVSVTSPOAVRUOVSAVTVQWFABVQVQRZGUPUQURATLVSTLCVTUSPOABSPTGBSUT
      VAAVRTVBVSCVQVTTWFBCVQWGHVCVDVEWARVFVIVGVLDWAEABDVTFGIJWFVHVJVK $.
  $}

  ${
    invrcl.b $e |- B = ( Base ` R ) $.
    invrcl.z $e |- .0. = ( 0g ` R ) $.
    invrcl.i $e |- I = ( invr ` R ) $.
    $( Closure of the multiplicative inverse in a division ring.  ( ~ reccl
       analog.)  (Contributed by NM, 19-Apr-2014.) $)
    drnginvrcl $p |- ( ( R e. DivRing /\ X e. B /\ X =/= .0. )
             -> ( I ` X ) e. B ) $=
      ( cdr wcel wne cfv wa cui eqid drngunit crg wi drngring ringinvcl sylbird
      ex syl 3impib ) BIJZDAJZDEKZDCLAJZUEUFUGMDBNLZJZUHABUIDEFUIOZGPUEBQJZUJUH
      RBSULUJUHABUICDUKHFTUBUCUAUD $.

    $( The multiplicative inverse in a division ring is nonzero.  ( ~ recne0
       analog.)  (Contributed by NM, 19-Apr-2014.) $)
    drnginvrn0 $p |- ( ( R e. DivRing /\ X e. B /\ X =/= .0. )
             -> ( I ` X ) =/= .0. ) $=
      ( cdr wcel wne w3a cfv wa cui crg wi drngring eqid drngunit unitinvcl syl
      ex 3imtr3d 3impib simprd ) BIJZDAJZDEKZLDCMZAJZUJEKZUGUHUIUKULNZUGDBOMZJZ
      UJUNJZUHUINUMUGBPJZUOUPQBRUQUOUPBUNCDUNSZHUAUCUBABUNDEFURGTABUNUJEFURGTUD
      UEUF $.
  $}

  ${
    drnginvrl.b $e |- B = ( Base ` R ) $.
    drnginvrl.z $e |- .0. = ( 0g ` R ) $.
    drnginvrl.t $e |- .x. = ( .r ` R ) $.
    drnginvrl.u $e |- .1. = ( 1r ` R ) $.
    drnginvrl.i $e |- I = ( invr ` R ) $.
    $( Property of the multiplicative inverse in a division ring.  ( ~ recid2
       analog.)  (Contributed by NM, 19-Apr-2014.) $)
    drnginvrl $p |- ( ( R e. DivRing /\ X e. B /\ X =/= .0. )
             -> ( ( I ` X ) .x. X ) = .1. ) $=
      ( cdr wcel wne cfv co wceq wa cui eqid drngunit crg drngring unitlinv syl
      wi ex sylbird 3impib ) BMNZFANZFGOZFEPFCQDRZUKULUMSFBTPZNZUNABUOFGHUOUAZI
      UBUKBUCNZUPUNUGBUDURUPUNBCUODEFUQLJKUEUHUFUIUJ $.

    $( Property of the multiplicative inverse in a division ring.  ( ~ recid
       analog.)  (Contributed by NM, 19-Apr-2014.) $)
    drnginvrr $p |- ( ( R e. DivRing /\ X e. B /\ X =/= .0. )
             -> ( X .x. ( I ` X ) ) = .1. ) $=
      ( cdr wcel wne cfv co wceq wa cui eqid drngunit crg drngring unitrinv syl
      wi ex sylbird 3impib ) BMNZFANZFGOZFFEPCQDRZUKULUMSFBTPZNZUNABUOFGHUOUAZI
      UBUKBUCNZUPUNUGBUDURUPUNBCUODEFUQLJKUEUHUFUIUJ $.
  $}

  ${
    drngmuleq0.b $e |- B = ( Base ` R ) $.
    drngmuleq0.o $e |- .0. = ( 0g ` R ) $.
    drngmuleq0.t $e |- .x. = ( .r ` R ) $.
    drngmuleq0.r $e |- ( ph -> R e. DivRing ) $.
    drngmuleq0.x $e |- ( ph -> X e. B ) $.
    drngmuleq0.y $e |- ( ph -> Y e. B ) $.
    $( A product is zero iff one of its factors is zero.  (Contributed by NM,
       8-Oct-2014.) $)
    drngmul0or $p |- ( ph ->
      ( ( X .x. Y ) = .0. <-> ( X = .0. \/ Y = .0. ) ) ) $=
      ( co wceq wa cfv wcel adantr syl2anc wo wn wne df-ne cinvr oveq2 ad2antlr
      cur cdr eqid drnginvrl syl3anc oveq1d crg drngring syl drnginvrcl ringass
      simpr syl13anc ringlidm 3eqtr3d adantlr ringrz syl5bir orrd ringlz eqeq1d
      ex oveq1 syl5ibrcom jaod impbid ) AEFDNZGOZEGOZFGOZUAZAVOVRAVOPZVPVQVPUBE
      GUCZVSVQEGUDVSVTVQVSVTPZECUEQZQZVNDNZWCGDNZFGVOWDWEOAVTVNGWCDUFUGAVTWDFOV
      OAVTPZWCEDNZFDNZCUHQZFDNZWDFWFWGWIFDWFCUIRZEBRZVTWGWIOAWKVTKSZAWLVTLSZAVT
      USZBCDWIWBEGHIJWIUJZWBUJZUKULUMWFCUNRZWCBRZWLFBRZWHWDOAWRVTAWKWRKCUOUPZSW
      FWKWLVTWSWMWNWOBCWBEGHIWQUQULZWNAWTVTMSBCDWCEFHJURUTAWJFOZVTAWRWTXCXAMBCD
      WIFHJWPVATSVBVCWAWRWSWEGOVSWRVTAWRVOXASSAVTWSVOXBVCBCDWCGHJIVDTVBVIVEVFVI
      AVPVOVQAVOVPGFDNZGOZAWRWTXEXAMBCDFGHJIVGTVPVNXDGEGFDVJVHVKAVOVQEGDNZGOZAW
      RWLXGXALBCDEGHJIVDTVQVNXFGFGEDUFVHVKVLVM $.

    $( A product is nonzero iff both its factors are nonzero.  (Contributed by
       NM, 18-Oct-2014.) $)
    drngmulne0 $p |- ( ph
     -> ( ( X .x. Y ) =/= .0. <-> ( X =/= .0. /\ Y =/= .0. ) ) ) $=
      ( co wne wceq wo wn wa drngmul0or necon3abid neanior syl6bbr ) AEFDNZGOEG
      PFGPQZREGOFGOSAUEUDGABCDEFGHIJKLMTUAEGFGUBUC $.

    drngmuleq0.e $e |- ( ph -> Y =/= .0. ) $.
    $( An element is zero iff its product with a nonzero element is zero.
       (Contributed by NM, 8-Oct-2014.) $)
    drngmuleq0 $p |- ( ph -> ( ( X .x. Y ) = .0. <-> X = .0. ) ) $=
      ( co wceq wo drngmul0or wne wb wn df-ne orel2 orc impbid1 sylbi syl bitrd
      ) AEFDOGPEGPZFGPZQZUIABCDEFGHIJKLMRAFGSZUKUITZNULUJUAZUMFGUBUNUKUIUJUIUCU
      IUJUDUEUFUGUH $.
  $}

  ${
    opprdrng.1 $e |- O = ( oppR ` R ) $.
    $( The opposite of a division ring is also a division ring.  (Contributed
       by NM, 18-Oct-2014.) $)
    opprdrng $p |- ( R e. DivRing <-> O e. DivRing ) $=
      ( crg wcel cui cfv cbs c0g csn cdif wceq cdr opprringb anbi1i eqid isdrng
      wa opprbas opprunit oppr0 3bitr4i ) ADEZAFGZAHGZAIGZJKLZRBDEZUGRAMEBMEUCU
      HUGABCNOUEAUDUFUEPZUDPZUFPZQUEBUDUFUEABCUISABUDUJCTABUFCUKUAQUB $.
  $}

  ${
    $d x y z .0. $.  $d x y z .1. $.  $d x y z B $.  $d y z I $.  $d x y z R $.
    $d x y z ph $.  $d x y z .x. $.
    isdrngd.b $e |- ( ph -> B = ( Base ` R ) ) $.
    isdrngd.t $e |- ( ph -> .x. = ( .r ` R ) ) $.
    isdrngd.z $e |- ( ph -> .0. = ( 0g ` R ) ) $.
    isdrngd.u $e |- ( ph -> .1. = ( 1r ` R ) ) $.
    isdrngd.r $e |- ( ph -> R e. Ring ) $.
    isdrngd.n $e |- ( ( ph /\ ( x e. B /\ x =/= .0. )
            /\ ( y e. B /\ y =/= .0. ) ) -> ( x .x. y ) =/= .0. ) $.
    isdrngd.o $e |- ( ph -> .1. =/= .0. ) $.
    isdrngd.i $e |- ( ( ph /\ ( x e. B /\ x =/= .0. ) ) -> I e. B ) $.
    isdrngd.j $e |- ( ( ph /\ ( x e. B /\ x =/= .0. ) ) -> I =/= .0. ) $.
    ${
      isdrngd.k $e |- ( ( ph /\ ( x e. B /\ x =/= .0. ) ) ->
        ( I .x. x ) = .1. ) $.
      $( Properties that determine a division ring. ` I ` (reciprocal) is
         normally dependent on ` x ` i.e. read it as ` I ( x ) ` ."
         (Contributed by NM, 2-Aug-2013.) $)
      isdrngd $p |- ( ph -> R e. DivRing ) $=
        ( wcel vz crg cmgp cfv cbs c0g csn cdif cress co cgrp wa cdr wceq difss
        wss syl5sseq eqid mgpbas ressbas2 syl cmulr cplusg fvex syl6eqel difexg
        cvv mgpplusg ressplusg 3syl eqtrd wne eldifsn w3a ringcl syl3an1 3expib
        eleq2d anbi12d oveqd eleq12d 3impib 3adant2r 3adant3r sylanbrc syl3an3b
        cv 3imtr4d syl3an2b eldifi 3anim123i wi ringass 3anbi123d eqidd eqeq12d
        ex oveq123d imp sylan2 ringidcl 3eltr4d ringlidm eqeq1d adantrr sylan2b
        cur isgrpd sneqd difeq12d oveq2d eleq1d anbi2d mpbi2and isdrng2 sylibr
        ) AEUBTZEUCUDZEUEUDZEUFUDZUGZUHZUIUJZUKTZULZEUMTAXQXRDIUGZUHZUIUJZUKTZY
        ENABCUAYGFYHHGAYGXSUPYGYHUEUDUNADYGXSDYFUOJUQYGXSYHXRYHURZXSEXRXRURZXSU
        RZUSUTVAAFEVBUDZYHVCUDZKADVGTYGVGTYMYNUNADXSVGJEUEVDVEDYFVGVFYGYMXRYHVG
        YJEYMXRYKYMURZVHVIVJVKBWGZYGTZAYPDTZYPIVLZULZCWGZYGTZYPUUAFUJZYGTZYPDIV
        MZUUBAYTUUADTZUUAIVLZULZUUDUUADIVMAYTUUHVNUUCDTZUUCIVLUUDAYTUUFUUIUUGAY
        RUUFUUIYSAYRUUFUUIAYPXSTZUUAXSTZULYPUUAYMUJZXSTZYRUUFULUUIAUUJUUKUUMAXQ
        UUJUUKUUMNXSEYMYPUUAYLYOVOVPVQAYRUUJUUFUUKADXSYPJVRZADXSUUAJVRZVSAUUCUU
        LDXSAFYMYPUUAKVTZJWAWHWBWCWDOUUCDIVMWEWFWIYQUUBUAWGZYGTZVNAYRUUFUUQDTZV
        NZUUCUUQFUJZYPUUAUUQFUJZFUJZUNZYQYRUUBUUFUURUUSYPDYFWJUUADYFWJUUQDYFWJW
        KAUUTUVDAUUJUUKUUQXSTZVNZUULUUQYMUJZYPUUAUUQYMUJZYMUJZUNZUUTUVDAXQUVFUV
        JWLNXQUVFUVJXSEYMYPUUAUUQYLYOWMWQVAAYRUUJUUFUUKUUSUVEUUNUUOADXSUUQJVRWN
        AUVAUVGUVCUVIAUUCUULUUQUUQFYMKUUPAUUQWOWRAYPYPUVBUVHFYMKAYPWOZAFYMUUAUU
        QKVTWRWPWHWSWTAGDTGIVLGYGTAEXGUDZXSGDAXQUVLXSTNXSEUVLYLUVLURZXAVAMJXBPG
        DIVMWEYQAYTGYPFUJZYPUNZUUEAYRUVOYSAYRUVOAUUJUVLYPYMUJZYPUNZYRUVOAXQUUJU
        VQWLNXQUUJUVQXSEYMUVLYPYLYOUVMXCWQVAUUNAUVNUVPYPAGUVLYPYPFYMKMUVKWRXDWH
        WSXEXFYQAYTHYGTZUUEAYTULHDTHIVLUVRQRHDIVMWEXFYQAYTHYPFUJGUNUUESXFXHAYIY
        DXQAYHYCUKAYGYBXRUIADXSYFYAJAIXTLXIXJXKXLXMXNXSEYCXTYLXTURYCURXOXP $.
    $}

    ${
      isdrngrd.k $e |- ( ( ph /\ ( x e. B /\ x =/= .0. ) ) ->
        ( x .x. I ) = .1. ) $.
      $( Properties that determine a division ring. ` I ` (reciprocal) is
         normally dependent on ` x ` i.e. read it as ` I ( x ) ` ."  This
         version of ~ isdrngd requires a right reciprocal instead of left.
         (Contributed by NM, 10-Aug-2013.) $)
      isdrngrd $p |- ( ph -> R e. DivRing ) $=
        ( cfv vz coppr cdr wcel cmulr cbs eqid opprbas syl6eq eqidd oppr0 oppr1
        c0g cur crg opprring syl cv wne wa w3a co wi wceq eleq1 anbi12d 3anbi2d
        neeq1 oveq1 neeq1d imbi12d 3anbi3d oveq2 3ad2ant1 oveqd opprmul syl6eqr
        eqnetrrd 3com23 chvarv adantr eqtr3d syl5eq isdrngd opprdrng sylibr ) A
        EUBTZUCUDEUCUDABUADWGWGUETZGHIADEUFTZWGUFTJWIEWGWGUGZWIUGZUHUIAWHUJAIEU
        MTZWGUMTLEWGWLWJWLUGUKUIAGEUNTZWGUNTMEWMWGWJWMUGULUIAEUOUDWGUOUDNEWGWJU
        PUQACURZDUDZWNIUSZUTZUAURZDUDZWRIUSZUTZVAZWNWRWHVBZIUSZVCZABURZDUDZXFIU
        SZUTZXAVAZXFWRWHVBZIUSZVCCBWNXFVDZXBXJXDXLXMWQXIAXAXMWOXGWPXHWNXFDVEWNX
        FIVHVFVGXMXCXKIWNXFWRWHVIVJVKAWQXIVAZWNXFWHVBZIUSZVCXEBUAXFWRVDZXNXBXPX
        DXQXIXAAWQXQXGWSXHWTXFWRDVEXFWRIVHVFVLXQXOXCIXFWRWNWHVMVJVKAXIWQXPAXIWQ
        VAZXFWNFVBZXOIXRXSXFWNEUETZVBXOXRFXTXFWNAXIFXTVDZWQKVNVOWIEWHXTWGWNXFWK
        XTUGZWJWHUGZVPVQOVRVSVTVTPQRAXIUTZHXFWHVBXFHXTVBZGWIEWHXTWGHXFWKYBWJYCV
        PYDXFHFVBYEGYDFXTXFHAYAXIKWAVOSWBWCWDEWGWJWEWF $.
    $}
  $}

  ${
    $d x y B $.  $d x y K $.  $d x y ph $.  $d x y L $.
    drngpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    drngpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    drngpropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    drngpropd.4 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( .r ` K ) y ) = ( x ( .r ` L ) y ) ) $.
    $( If two structures have the same group components (properties), one is a
       division ring iff the other one is.  (Contributed by Mario Carneiro,
       27-Jun-2015.) $)
    drngpropd $p |- ( ph -> ( K e. DivRing <-> L e. DivRing ) ) $=
      ( crg wcel cui cfv cbs c0g wceq wa adantr eqid csn cdif cdr eqtr3d cplusg
      unitpropd cv adantlr grpidpropd sneqd difeq12d eqeq12d pm5.32da ringpropd
      co anbi1d bitrd isdrng 3bitr4g ) AEKLZEMNZEONZEPNZUAZUBZQZRZFKLZFMNZFONZF
      PNZUAZUBZQZRZEUCLFUCLAVGUTVNRVOAUTVFVNAUTRZVAVIVEVMAVAVIQUTABCDEFGHJUFSVP
      VBVJVDVLAVBVJQUTADVBVJGHUDSVPVCVKVPBCDEFADVBQUTGSADVJQUTHSABUGZDLCUGZDLRV
      QVREUENUOVQVRFUENUOQUTIUHUIUJUKULUMAUTVHVNABCDEFGHIJUNUPUQVBEVAVCVBTVATVC
      TURVJFVIVKVJTVITVKTURUS $.

    $( If two structures have the same group components (properties), one is a
       field iff the other one is.  (Contributed by Mario Carneiro,
       8-Feb-2015.) $)
    fldpropd $p |- ( ph -> ( K e. Field <-> L e. Field ) ) $=
      ( cdr wcel ccrg wa cfield drngpropd crngpropd anbi12d isfld 3bitr4g ) AEK
      LZEMLZNFKLZFMLZNEOLFOLAUAUCUBUDABCDEFGHIJPABCDEFGHIJQRESFST $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subrings of a ring
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c SubRing $.
  $c RingSpan $.

  $( Extend class notation with all subrings of a ring. $)
  csubrg $a class SubRing $.

  $( Extend class notation with span of a set of elements over a ring. $)
  crgspn $a class RingSpan $.

  ${
    $d w s t $.
    $( Define a subring of a ring as a set of elements that is a ring in its
       own right and contains the multiplicative identity.

       The additional constraint is necessary because the multiplicative
       identity of a ring, unlike the additive identity of a ring/group or the
       multiplicative identity of a field, cannot be identified by a local
       property.  Thus, it is possible for a subset of a ring to be a ring
       while not containing the true identity if it contains a false identity.
       For instance, the subset ` ( ZZ X. { 0 } ) ` of ` ( ZZ X. ZZ ) ` (where
       multiplication is componentwise) contains the false identity
       ` <. 1 , 0 >. ` which preserves every element of the subset and thus
       appears to be the identity of the subset, but is not the identity of the
       larger ring.  (Contributed by Stefan O'Rear, 27-Nov-2014.) $)
    df-subrg $a |- SubRing = ( w e. Ring |-> { s e. ~P ( Base ` w ) |
        ( ( w |`s s ) e. Ring /\ ( 1r ` w ) e. s ) } ) $.

    $( The ring-span of a set of elements in a ring is the smallest subring
       which contains all of them.  (Contributed by Stefan O'Rear,
       7-Dec-2014.) $)
    df-rgspn $a |- RingSpan = ( w e. _V |-> ( s e. ~P ( Base ` w ) |->
        |^| { t e. ( SubRing ` w ) | s C_ t } ) ) $.
  $}

  ${
    $d s A $.  $d r s B $.  $d r s .1. $.  $d r s R $.
    issubrg.b $e |- B = ( Base ` R ) $.
    issubrg.i $e |- .1. = ( 1r ` R ) $.
    $( The subring predicate.  (Contributed by Stefan O'Rear, 27-Nov-2014.)
       (Proof shortened by AV, 12-Oct-2020.) $)
    issubrg $p |- ( A e. ( SubRing ` R ) <->
      ( ( R e. Ring /\ ( R |`s A ) e. Ring ) /\ ( A C_ B /\ .1. e. A ) ) ) $=
      ( vr vs csubrg cfv wcel crg cress co wa cv cur cbs cpw eleq1d crab mptrcl
      wss df-subrg simpll wceq fveq2 syl6eqr pweqd oveq1 anbi12d rabeqbidv fvex
      cvv eqeltri pwex rabex fvmpt eleq2d oveq2 eleq2 elrab elpw2 anbi1i 3bitri
      an12 ibar anbi1d syl5bb bitrd pm5.21nii ) ACIJZKZCLKZVNCAMNZLKZOZABUCZDAK
      ZOZOZGLGPZHPZMNZLKZWBQJZWCKZOZHWBRJZSZUAZIACGHUDZUBVNVPVTUEVNVMACWCMNZLKZ
      DWCKZOZHBSZUAZKZWAVNVLWRAGCWKWRLIWBCUFZWHWPHWJWQWTWIBWTWICRJZBWBCRUGEUHUI
      WTWEWNWGWOWTWDWMLWBCWCMUJTWTWFDWCWTWFCQJDWBCQUGFUHTUKULWLWPHWQBBXAUNECRUM
      UOZUPUQURUSWSVPVTOZVNWAWSAWQKZVPVSOZOVRXEOXCWPXEHAWQWCAUFZWNVPWOVSXFWMVOL
      WCACMUTTWCADVAUKVBXDVRXEABXBVCVDVRVPVSVFVEVNVPVQVTVNVPVGVHVIVJVK $.
  $}

  ${
    subrgss.1 $e |- B = ( Base ` R ) $.
    $( A subring is a subset.  (Contributed by Stefan O'Rear, 27-Nov-2014.) $)
    subrgss $p |- ( A e. ( SubRing ` R ) -> A C_ B ) $=
      ( csubrg cfv wcel wss cur crg cress co wa eqid issubrg simprbi simpld ) A
      CEFGZABHZCIFZAGZRCJGCAKLJGMSUAMABCTDTNOPQ $.

    $( Every ring is a subring of itself.  (Contributed by Stefan O'Rear,
       30-Nov-2014.) $)
    subrgid $p |- ( R e. Ring -> B e. ( SubRing ` R ) ) $=
      ( crg wcel cress co wa wss cur cfv csubrg ressid id eqeltrd eqid ringidcl
      ancli ssid jctil issubrg sylanbrc ) BDEZUCBAFGZDEZHAAIZBJKZAEZHABLKEUCUEU
      CUDBDABDCMUCNORUCUHUFABUGCUGPZQASTAABUGCUIUAUB $.
  $}

  ${
    subrgring.1 $e |- S = ( R |`s A ) $.
    $( A subring is a ring.  (Contributed by Stefan O'Rear, 27-Nov-2014.) $)
    subrgring $p |- ( A e. ( SubRing ` R ) -> S e. Ring ) $=
      ( csubrg cfv wcel cress co crg wa cbs wss cur eqid issubrg simplbi simprd
      syl5eqel ) ABEFGZCBAHIZJDTBJGZUAJGZTUBUCKABLFZMBNFZAGKAUDBUEUDOUEOPQRS $.

    $( A subring of a commutative ring is a commutative ring.  (Contributed by
       Mario Carneiro, 10-Jan-2015.) $)
    subrgcrng $p |- ( ( R e. CRing /\ A e. ( SubRing ` R ) ) -> S e. CRing ) $=
      ( ccrg wcel csubrg cfv wa crg cmgp ccmn subrgring adantl cress co mgpress
      eqid cmnd crngmgp adantr ringmgp eqeltrd subcmn syl2anc eqeltrrd sylanbrc
      syl iscrng ) BEFZABGHZFZIZCJFZCKHZLFCEFULUNUJABCDMNZUMBKHZAOPZUOLABCUQEUK
      DUQRZQZUMUQLFZURSFURLFUJVAULBUQUSTUAUMURUOSUTUMUNUOSFUPCUOUORZUBUHUCAUQUR
      URRUDUEUFCUOVBUIUG $.
  $}

  $( Reverse closure for a subring predicate.  (Contributed by Mario Carneiro,
     3-Dec-2014.) $)
  subrgrcl $p |- ( A e. ( SubRing ` R ) -> R e. Ring ) $=
    ( csubrg cfv wcel crg cress co wa cbs wss cur eqid issubrg simplbi simpld )
    ABCDEZBFEZBAGHFEZQRSIABJDZKBLDZAEIATBUATMUAMNOP $.

  $( A subring is a subgroup.  (Contributed by Mario Carneiro, 3-Dec-2014.) $)
  subrgsubg $p |- ( A e. ( SubRing ` R ) -> A e. ( SubGrp ` R ) ) $=
    ( csubrg cfv wcel cgrp cbs wss cress co csubg crg subrgrcl ringgrp syl eqid
    subrgss subrgring issubg syl3anbrc ) ABCDEZBFEZABGDZHBAIJZFEZABKDEUABLEUBAB
    MBNOAUCBUCPZQUAUDLEUEABUDUDPRUDNOUCABUFST $.

  ${
    subrg0.1 $e |- S = ( R |`s A ) $.
    subrg0.2 $e |- .0. = ( 0g ` R ) $.
    $( A subring always has the same additive identity.  (Contributed by Stefan
       O'Rear, 27-Nov-2014.) $)
    subrg0 $p |- ( A e. ( SubRing ` R ) -> .0. = ( 0g ` S ) ) $=
      ( csubrg cfv wcel csubg c0g wceq subrgsubg subg0 syl ) ABGHIABJHIDCKHLABM
      ABCDEFNO $.
  $}

  ${
    subrg1cl.a $e |- .1. = ( 1r ` R ) $.
    $( A subring contains the multiplicative identity.  (Contributed by Stefan
       O'Rear, 27-Nov-2014.) $)
    subrg1cl $p |- ( A e. ( SubRing ` R ) -> .1. e. A ) $=
      ( csubrg cfv wcel cbs wss crg cress co wa eqid issubrg simprbi simprd ) A
      BEFGZABHFZIZCAGZRBJGBAKLJGMTUAMASBCSNDOPQ $.
  $}

  ${
    subrgbas.b $e |- S = ( R |`s A ) $.
    $( Base set of a subring structure.  (Contributed by Stefan O'Rear,
       27-Nov-2014.) $)
    subrgbas $p |- ( A e. ( SubRing ` R ) -> A = ( Base ` S ) ) $=
      ( csubrg cfv wcel csubg cbs wceq subrgsubg subgbas syl ) ABEFGABHFGACIFJA
      BKABCDLM $.
  $}

  ${
    $d S x $.  $d R x $.  $d A x $.
    subrg1.1 $e |- S = ( R |`s A ) $.
    subrg1.2 $e |- .1. = ( 1r ` R ) $.
    $( A subring always has the same multiplicative identity.  (Contributed by
       Stefan O'Rear, 27-Nov-2014.) $)
    subrg1 $p |- ( A e. ( SubRing ` R ) -> .1. = ( 1r ` S ) ) $=
      ( vx cfv wcel cur cbs cmulr co wceq wa eqid crg oveqd eqeq1d syldan sylan
      csubrg cv wral subrg1cl subrgbas eleqtrd subrgss eqsstr3d sselda subrgrcl
      ringidmlem ressmulr biimpa ralrimiva subrgring isringid mpbi2and syl6reqr
      anbi12d wb syl ) ABUBHZIZCJHZBJHZDVDVFCKHZIZVFGUCZCLHZMZVINZVIVFVJMZVINZO
      ZGVGUDZVEVFNZVDVFAVGABVFVFPZUEABCEUFZUGVDVOGVGVDVIVGIVIBKHZIZVOVDVGVTVIVD
      VGAVTVSAVTBVTPZUHUIUJVDWAVFVIBLHZMZVINZVIVFWCMZVINZOZVOVDBQIWAWHABUKVTBWC
      VFVIWBWCPZVRULUAVDWHVOVDWEVLWGVNVDWDVKVIVDWCVJVFVIABCWCVCEWIUMZRSVDWFVMVI
      VDWCVJVIVFWJRSUTUNTTUOVDCQIVHVPOVQVAABCEUPGVGCVJVEVFVGPVJPVEPUQVBURFUS $.
  $}

  ${
    subrgacl.p $e |- .+ = ( +g ` R ) $.
    $( A subring is closed under addition.  (Contributed by Mario Carneiro,
       2-Dec-2014.) $)
    subrgacl $p |- ( ( A e. ( SubRing ` R ) /\ X e. A /\ Y e. A ) ->
      ( X .+ Y ) e. A ) $=
      ( csubrg cfv wcel csubg co subrgsubg subgcl syl3an1 ) ACGHIACJHIDAIEAIDEB
      KAIACLBACDEFMN $.
  $}

  ${
    subrgmcl.p $e |- .x. = ( .r ` R ) $.
    $( A subgroup is closed under multiplication.  (Contributed by Mario
       Carneiro, 2-Dec-2014.) $)
    subrgmcl $p |- ( ( A e. ( SubRing ` R ) /\ X e. A /\ Y e. A ) ->
      ( X .x. Y ) e. A ) $=
      ( csubrg cfv wcel w3a cress co cmulr cbs crg eqid subrgring 3ad2ant1 wceq
      eleqtrd simp2 subrgbas simp3 ringcl syl3anc ressmulr oveqd 3eltr4d ) ABGH
      ZIZDAIZEAIZJZDEBAKLZMHZLZUNNHZDECLAUMUNOIZDUQIEUQIUPUQIUJUKURULABUNUNPZQR
      UMDAUQUJUKULUAUJUKAUQSULABUNUSUBRZTUMEAUQUJUKULUCUTTUQUNUODEUQPUOPUDUEUMC
      UODEUJUKCUOSULABUNCUIUSFUFRUGUTUH $.
  $}

  ${
    subrgsubm.1 $e |- M = ( mulGrp ` R ) $.
    $( A subring is a submonoid of the multiplicative monoid.  (Contributed by
       Mario Carneiro, 15-Jun-2015.) $)
    subrgsubm $p |- ( A e. ( SubRing ` R ) -> A e. ( SubMnd ` M ) ) $=
      ( csubrg cfv wcel csubmnd cbs wss cur cress co cmnd eqid subrgss subrg1cl
      cmgp crg ringmgp subrgrcl mgpress mpancom subrgring syl eqeltrd wb mgpbas
      wceq w3a ringidval issubm2 3syl mpbir3and ) ABEFZGZACHFGZABIFZJZBKFZAGZCA
      LMZNGZAURBUROZPABUTUTOZQUPVBBALMZRFZNBSGZUPVBVGUIABUAZABVFCSUOVFOZDUBUCUP
      VFSGVGNGABVFVJUDVFVGVGOTUEUFUPVHCNGUQUSVAVCUJUGVIBCDTURAVBCUTURBCDVDUHBUT
      CDVEUKVBOULUMUN $.
  $}

  ${
    $d x y z A $.  $d x y z .|| $.  $d x y E $.  $d x y z R $.  $d z S $.
    subrgdvds.1 $e |- S = ( R |`s A ) $.
    subrgdvds.2 $e |- .|| = ( ||r ` R ) $.
    subrgdvds.3 $e |- E = ( ||r ` S ) $.
    $( If an element divides another in a subring, then it also divides the
       other in the parent ring.  (Contributed by Mario Carneiro,
       4-Dec-2014.) $)
    subrgdvds $p |- ( A e. ( SubRing ` R ) -> E C_ .|| ) $=
      ( vx vy vz cfv wcel cv wbr cbs cmulr co wrex eqid csubrg reldvdsr a1i cop
      wrel wa subrgbas subrgss eqsstr3d sseld ressmulr oveqd eqeq1d rexbidv wss
      wceq wi ssrexv syl sylbird anim12d dvdsr 3imtr4g df-br 3imtr3g relssdv )
      ACUALZMZIJEBEUEVHEDHUBUCVHINZJNZEOZVIVJBOZVIVJUDZEMVMBMVHVIDPLZMZKNZVIDQL
      ZRZVJUPZKVNSZUFVICPLZMZVPVICQLZRZVJUPZKWASZUFVKVLVHVOWBVTWFVHVNWAVIVHVNAW
      AACDFUGAWACWATZUHUIZUJVHVTWEKVNSZWFVHWEVSKVNVHWDVRVJVHWCVQVPVIACDWCVGFWCT
      ZUKULUMUNVHVNWAUOWIWFUQWHWEKVNWAURUSUTVAKVNEDVQVIVJVNTHVQTVBKWABCWCVIVJWG
      GWJVBVCVIVJEVDVIVJBVDVEVF $.
  $}

  ${
    $d x A $.  $d x R $.  $d x U $.  $d x V $.
    subrguss.1 $e |- S = ( R |`s A ) $.
    subrguss.2 $e |- U = ( Unit ` R ) $.
    subrguss.3 $e |- V = ( Unit ` S ) $.
    $( A unit of a subring is a unit of the parent ring.  (Contributed by Mario
       Carneiro, 4-Dec-2014.) $)
    subrguss $p |- ( A e. ( SubRing ` R ) -> V C_ U ) $=
      ( vx cfv wcel wa cur cdsr wbr eqid wceq adantr cmulr co coppr simpr sylib
      csubrg cv isunit simpld subrg1 breqtrrd wss subrgdvds ssbrd mpd cinvr cbs
      subrgbas subrgss eqsstr3d unitcl adantl subrgring ringinvcl sylan opprbas
      sseldd crg dvdsrmul syl2anc opprmul unitrinv oveqd 3eqtr4d syl5eq breqtrd
      ressmulr sylanbrc ex ssrdv ) ABUDJZKZIEDVTIUEZEKZWADKZVTWBLZWABMJZBNJZOZW
      AWEBUAJZNJZOWCWDWAWECNJZOWGWDWACMJZWEWJWDWAWKWJOZWAWKCUAJZNJZOZWDWBWLWOLV
      TWBUBWJCWMEWKWNWAHWKPZWJPZWMPWNPUFUCUGVTWEWKQWBABCWEFWEPZUHRZUIWDWJWFWAWE
      VTWJWFUJWBAWFBCWJFWFPZWQUKRULUMWDWAWACUNJZJZWAWHSJZTZWEWIWDWABUOJZKXBXEKW
      AXDWIOWDCUOJZXEWAWDXFAXEVTAXFQWBABCFUPRVTAXEUJWBAXEBXEPZUQRURZWBWAXFKVTXF
      CEWAXFPZHUSUTVEWDXFXEXBXHVTCVFKZWBXBXFKABCFVAZXFCEXAWAHXAPZXIVBVCVEXEWIWH
      XCWAXBXEBWHWHPZXGVDWIPZXCPZVGVHWDXDWAXBBSJZTZWEXEBXCXPWHXBWAXGXPPZXMXOVIW
      DWAXBCSJZTZWKXQWEVTXJWBXTWKQXKCXSEWKXAWAHXLXSPWPVJVCWDXPXSWAXBVTXPXSQWBAB
      CXPVSFXRVORVKWSVLVMVNWFBWHDWEWIWAGWRWTXMXNUFVPVQVR $.
  $}

  ${
    subrginv.1 $e |- S = ( R |`s A ) $.
    subrginv.2 $e |- I = ( invr ` R ) $.
    subrginv.3 $e |- U = ( Unit ` S ) $.
    subrginv.4 $e |- J = ( invr ` S ) $.
    $( A subring always has the same inversion function, for elements that are
       invertible.  (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    subrginv $p |- ( ( A e. ( SubRing ` R ) /\ X e. U ) ->
      ( I ` X ) = ( J ` X ) ) $=
      ( cfv wcel cur cmulr co wceq adantr eqid sylan csubrg wa crg cbs subrgrcl
      wss subrgbas subrgss eqsstr3d subrgring sseldd unitcl adantl cui subrguss
      ringinvcl sselda syldan ringass syl13anc unitlinv ressmulr subrg1 3eqtr4d
      oveqd oveq1d unitrinv oveq2d 3eqtr3d ringlidm syl2anc ringridm ) ABUALZMZ
      GDMZUBZBNLZGELZBOLZPZGFLZVQVSPZVRWAVPWAGVSPZVRVSPZWAGVRVSPZVSPZVTWBVPBUCM
      ZWABUDLZMZGWHMVRWHMZWDWFQVNWGVOABUEZRZVPCUDLZWHWAVNWMWHUFVOVNWMAWHABCHUGA
      WHBWHSZUHUIRZVNCUCMZVOWAWMMABCHUJZWMCDFGJKWMSZUPTUKZVPWMWHGWOVOGWMMVNWMCD
      GWRJULUMUKVNVOGBUNLZMZWJVNDWTGABCWTDHWTSZJUOUQZVNWGXAWJWKWHBWTEGXBIWNUPTU
      RZWHBVSWAGVRWNVSSZUSUTVPWCVQVRVSVPWAGCOLZPZCNLZWCVQVNWPVOXGXHQWQCXFDXHFGJ
      KXFSXHSVATVPVSXFWAGVNVSXFQVOABCVSVMHXEVBRVEVNVQXHQVOABCVQHVQSZVCRVDVFVPWE
      VQWAVSVNVOXAWEVQQZXCVNWGXAXJWKBVSWTVQEGXBIXEXIVGTURVHVIVPWGWJVTVRQWLXDWHB
      VSVQVRWNXEXIVJVKVPWGWIWBWAQWLWSWHBVSVQWAWNXEXIVLVKVI $.
  $}

  ${
    subrgdv.1 $e |- S = ( R |`s A ) $.
    subrgdv.2 $e |- ./ = ( /r ` R ) $.
    subrgdv.3 $e |- U = ( Unit ` S ) $.
    subrgdv.4 $e |- E = ( /r ` S ) $.
    $( A subring always has the same division function, for elements that are
       invertible.  (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    subrgdv $p |- ( ( A e. ( SubRing ` R ) /\ X e. A /\ Y e. U ) ->
      ( X ./ Y ) = ( X E Y ) ) $=
      ( cfv wcel cinvr cmulr co wceq eqid 3ad2ant1 csubrg w3a subrginv ressmulr
      3adant2 oveq2d oveqd eqtrd cbs cui wss simp2 sseldd subrguss simp3 dvrval
      subrgss syl2anc subrgbas eleqtrd 3eqtr4d ) ACUAMZNZGANZHENZUBZGHCOMZMZCPM
      ZQZGHDOMZMZDPMZQZGHBQZGHFQZVFVJGVLVIQVNVFVHVLGVIVCVEVHVLRVDACDEVGVKHIVGSZ
      KVKSZUCUEUFVFVIVMGVLVCVDVIVMRVEACDVIVBIVISZUDTUGUHVFGCUIMZNHCUJMZNVOVJRVF
      AVTGVCVDAVTUKVEAVTCVTSZUQTVCVDVEULZUMVFEWAHVCVDEWAUKVEACDWAEIWASZKUNTVCVD
      VEUOZUMVTBCVIWAVGGHWBVSWDVQJUPURVFGDUIMZNVEVPVNRVFGAWFWCVCVDAWFRVEACDIUST
      UTWEWFFDVMEVKGHWFSVMSKVRLUPURVA $.
  $}

  ${
    $d x y A $.  $d x y G $.  $d x I $.  $d x y R $.  $d x y V $.  $d x S $.
    $d x X $.
    subrgugrp.1 $e |- S = ( R |`s A ) $.
    subrgugrp.2 $e |- U = ( Unit ` R ) $.
    subrgugrp.3 $e |- V = ( Unit ` S ) $.
    ${
      subrgunit.4 $e |- I = ( invr ` R ) $.
      $( An element of a ring is a unit of a subring iff it is a unit of the
         parent ring and both it and its inverse are in the subring.
         (Contributed by Mario Carneiro, 4-Dec-2014.) $)
      subrgunit $p |- ( A e. ( SubRing ` R ) ->
        ( X e. V <-> ( X e. U /\ X e. A /\ ( I ` X ) e. A ) ) ) $=
        ( cfv wcel eqid wceq adantr wbr cmulr co syl2anc csubrg w3a wa subrguss
        sselda cbs unitcl subrgbas eleqtrrd cinvr crg subrgring ringinvcl sylan
        adantl subrginv 3eltr4d 3jca cur coppr simpr2 eleqtrd dvdsrmul subrgrcl
        simpr3 simpr1 unitlinv ressmulr subrg1 3eqtr3d breqtrd opprbas unitrinv
        cdsr oveqd opprmul syl5eq isunit sylanbrc impbida ) ABUALZMZGFMZGDMZGAM
        ZGELZAMZUBZWBWCUCZWDWEWGWBFDGABCDFHIJUDUEWIGCUFLZAWCGWJMZWBWJCFGWJNZJUG
        UOWBAWJOZWCABCHUHZPZUIWIGCUJLZLZWJWFAWBCUKMWCWQWJMABCHULWJCFWPGJWPNZWLU
        MUNABCFEWPGHKJWRUPWOUQURWBWHUCZGCUSLZCVNLZQGWTCUTLZVNLZQWCWSGWFGCRLZSZW
        TXAWSWKWFWJMZGXEXAQWSGAWJWBWDWEWGVAWBWMWHWNPZVBZWSWFAWJWBWDWEWGVEXGVBZW
        JXACXDGWFWLXANZXDNZVCTWSWFGBRLZSZBUSLZXEWTWSBUKMZWDXMXNOWBXOWHABVDPZWBW
        DWEWGVFZBXLDXNEGIKXLNZXNNZVGTWSXLXDWFGWBXLXDOWHABCXLWAHXRVHPZVOWBXNWTOW
        HABCXNHXSVIPZVJVKWSGWFGXBRLZSZWTXCWSWKXFGYCXCQXHXIWJXCXBYBGWFWJCXBXBNZW
        LVLXCNZYBNZVCTWSYCGWFXDSZWTWJCYBXDXBWFGWLXKYDYFVPWSGWFXLSZXNYGWTWSXOWDY
        HXNOXPXQBXLDXNEGIKXRXSVMTWSXLXDGWFXTVOYAVJVQVKXACXBFWTXCGJWTNXJYDYEVRVS
        VT $.
    $}

    subrgugrp.4 $e |- G = ( ( mulGrp ` R ) |`s U ) $.
    $( The units of a subring form a subgroup of the unit group of the original
       ring.  (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    subrgugrp $p |- ( A e. ( SubRing ` R ) -> V e. ( SubGrp ` G ) ) $=
      ( vx vy cfv wcel cv cmulr co wral eqid cvv csubrg csubg c0 cinvr subrguss
      wss wne wa crg cur subrgring 1unit ne0i 3syl wceq ressmulr 3ad2ant1 oveqd
      w3a unitmulcl syl3an1 eqeltrd 3expa ralrimiva subrginv unitinvcl jca cgrp
      wb subrgrcl unitgrp unitgrpbas cplusg cui fvex eqeltri mgpplusg ressplusg
      sylan cmgp ax-mp invrfval issubg2 mpbir3and ) ABUAMZNZFEUBMNZFDUFZFUCUGZK
      OZLOZBPMZQZFNZLFRZWJBUDMZMZFNZUHZKFRZABCDFGHIUEWFCUINZCUJMZFNWIABCGUKZCFX
      BIXBSULFXBUMUNWFWSKFWFWJFNZUHZWOWRXEWNLFWFXDWKFNZWNWFXDXFUSZWMWJWKCPMZQZF
      XGWLXHWJWKWFXDWLXHUOXFABCWLWEGWLSZUPUQURWFXAXDXFXIFNXCCXHFWJWKIXHSUTVAVBV
      CVDXEWQWJCUDMZMZFABCFWPXKWJGWPSZIXKSZVEWFXAXDXLFNXCCFXKWJIXNVFVSVBVGVDWFB
      UINEVHNWGWHWIWTUSVIABVJBDEHJVKKLDWLFEWPBDEHJVLDTNWLEVMMUODBVNMTHBVNVOVPDW
      LBVTMZETJBWLXOXOSXJVQVRWABDEWPHJXMWBWCUNWD $.
  $}

  ${
    $d u v w x y A $.  $d u v w .1. $.  $d u v w x y R $.  $d u v w x y .x. $.
    issubrg2.b $e |- B = ( Base ` R ) $.
    issubrg2.o $e |- .1. = ( 1r ` R ) $.
    issubrg2.t $e |- .x. = ( .r ` R ) $.
    $( Characterize the subrings of a ring by closure properties.  (Contributed
       by Mario Carneiro, 3-Dec-2014.) $)
    issubrg2 $p |- ( R e. Ring -> ( A e. ( SubRing ` R ) <->
                     ( A e. ( SubGrp ` R ) /\ .1. e. A /\
                       A. x e. A A. y e. A ( x .x. y ) e. A ) ) ) $=
      ( wcel cfv cv co w3a wa wceq syl adantlr syldan vu vv vw crg csubrg csubg
      wral subrgsubg subrg1cl subrgmcl 3expb ralrimivva 3jca cress simpl cplusg
      wss cbs simpr1 eqid subgbas ressplusg cmulr ressmulr subggrp simpr3 oveq1
      cgrp eleq1d oveq2 rspc2v syl5com 3impib subgss sseld 3anim123d imp ringdi
      ringass ringdir simpr2 ringlidm ringridm isringd issubrg sylanbrc impbid2
      jca ex ) EUDKZCEUELKZCEUFLZKZGCKZAMZBMZFNZCKZBCUGACUGZOZWKWMWNWSCEUHCEGIU
      IWKWRABCCWKWOCKWPCKWRCEFWOWPJUJUKULUMWJWTWKWJWTPZWJECUNNZUDKZPCDUQZWNPWKX
      AWJXCWJWTUOXAUAUBUCCEUPLZXBFGXAWMCXBURLQWJWMWNWSUSZCEXBXBUTZVARXAWMXEXBUP
      LQXFCXEEXBWLXGXEUTZVBRXAWMFXBVCLQXFCEXBFWLXGJVDRXAWMXBVHKXFCEXBXGVERXAUAM
      ZCKZUBMZCKZXIXKFNZCKZXAWSXJXLPXNWJWMWNWSVFWRXNXIWPFNZCKABXIXKCCWOXIQWQXOC
      WOXIWPFVGVIWPXKQXOXMCWPXKXIFVJVIVKVLVMXAXJXLUCMZCKZOZXIDKZXKDKZXPDKZOZXMX
      PFNXIXKXPFNZFNQZXAXRYBXAXJXSXLXTXQYAXACDXIXAWMXDXFDCEHVNRZVOZXACDXKYEVOXA
      CDXPYEVOVPVQZWJYBYDWTDEFXIXKXPHJVSSTXAXRYBXIXKXPXENFNXMXIXPFNZXENQZYGWJYB
      YIWTDXEEFXIXKXPHXHJVRSTXAXRYBXIXKXENXPFNYHYCXENQZYGWJYBYJWTDXEEFXIXKXPHXH
      JVTSTWJWMWNWSWAZXAXJXSGXIFNXIQZXAXJXSYFVQZWJXSYLWTDEFGXIHJIWBSTXAXJXSXIGF
      NXIQZYMWJXSYNWTDEFGXIHJIWCSTWDWHXAXDWNYEYKWHCDEGHIWEWFWIWG $.
  $}

  ${
    $d x y z O $.  $d x y z R $.
    opprsubrg.o $e |- O = ( oppR ` R ) $.
    $( Being a subring is a symmetric property.  (Contributed by Mario
       Carneiro, 6-Dec-2014.) $)
    opprsubrg $p |- ( SubRing ` R ) = ( SubRing ` O ) $=
      ( vx vy vz csubrg cfv cv wcel crg subrgrcl csubg cmulr co wral w3a a1i wb
      eqid opprringb sylibr cur wceq opprsubg eleq2d ralcom cbs opprmul 2ralbii
      eleq1i bitr4i 3anbi13d issubrg2 opprbas oppr1 sylbi 3bitr4d pm5.21nii
      eqriv ) DAGHZBGHZDIZVAJZAKJZVCVBJZVCALVFBKJZVEVCBLABCUAZUBVEVCAMHZJZAUCHZ
      VCJZEIZFIZANHZOZVCJZFVCPEVCPZQVCBMHZJZVLVNVMBNHZOZVCJZEVCPFVCPZQZVDVFVEVJ
      VTVRWDVLVEVIVSVCVIVSUDVEABCUERUFVRWDSVEVRVQEVCPFVCPWDVQEFVCVCUGWCVQFEVCVC
      WBVPVCAUHHZAWAVOBVNVMWFTZVOTZCWATZUIUKUJULRUMEFVCWFAVOVKWGVKTZWHUNVEVGVFW
      ESVHFEVCWFBWAVKWFABCWGUOAVKBCWJUPWIUNUQURUSUT $.
  $}

  ${
    $d r x y R $.  $d r x y S $.
    $( The intersection of a nonempty collection of subrings is a subring.
       (Contributed by Stefan O'Rear, 30-Nov-2014.)  (Revised by Mario
       Carneiro, 7-Dec-2014.) $)
    subrgint $p |- ( ( S C_ ( SubRing ` R ) /\ S =/= (/) ) ->
      |^| S e. ( SubRing ` R ) ) $=
      ( vx vy vr cfv wss c0 wne wa wcel cur wral sylan adantlr ralrimiva elint2
      cv eqid sylibr csubrg cint csubg cmulr subrgsubg ssriv sstr mpan2 subgint
      co ssel2 subrg1cl syl fvex simprl elinti imp simprr subrgmcl syl3anc ovex
      ralrimivva crg w3a wb ssn0 wex n0 subrgrcl exlimiv cbs issubrg2 mpbir3and
      sylbi 3syl ) BAUAFZGZBHIZJZBUBZVPKZVTAUCFZKZALFZVTKZCRZDRZAUDFZUJZVTKZDVT
      MCVTMZVQBWBGZVRWCVQVPWBGWLEVPWBERZAUEUFBVPWBUGUHBAUINVSWDWMKZEBMWEVSWNEBV
      SWMBKZJWMVPKZWNVQWOWPVRBVPWMUKOZWMAWDWDSZULUMPEWDBALUNQTVSWJCDVTVTVSWFVTK
      ZWGVTKZJZJZWIWMKZEBMWJXBXCEBXBWOJWPWFWMKZWGWMKZXCVSWOWPXAWQOXBWSWOXDVSWSW
      TUOWSWOXDWFBWMUPUQNXBWTWOXEVSWSWTURWTWOXEWGBWMUPUQNWMAWHWFWGWHSZUSUTPEWIB
      WFWGWHVAQTVBVSVPHIZAVCKZWAWCWEWKVDVEBVPVFXGWPEVGXHEVPVHWPXHEWMAVIVJVNCDVT
      AVKFZAWHWDXISWRXFVLVOVM $.
  $}

  ${
    $( The intersection of two subrings is a subring.  (Contributed by Stefan
       O'Rear, 30-Nov-2014.)  (Revised by Mario Carneiro, 7-Dec-2014.) $)
    subrgin $p |- ( ( A e. ( SubRing ` R ) /\ B e. ( SubRing ` R ) ) ->
      ( A i^i B ) e. ( SubRing ` R ) ) $=
      ( csubrg cfv wcel wa cpr cint cin intprg wss c0 wne prssi adantr subrgint
      prnzg syl2anc eqeltrrd ) ACDEZFZBUAFZGZABHZIZABJUAABUAUAKUDUEUALUEMNZUFUA
      FABUAOUBUGUCABUARPCUEQST $.
  $}

  ${
    $d B a $.  $d R a $.
    subrgmre.b $e |- B = ( Base ` R ) $.
    $( The subrings of a ring are a Moore system.  (Contributed by Stefan
       O'Rear, 9-Mar-2015.) $)
    subrgmre $p |- ( R e. Ring -> ( SubRing ` R ) e. ( Moore ` B ) ) $=
      ( va crg wcel csubrg cfv cpw cv wi wss subrgss selpw sylibr ssrdv subrgid
      a1i c0 wne cint subrgint 3adant1 ismred ) BEFZBGHZADUEDUFAIZDJZUFFZUHUGFZ
      KUEUIUHALUJUHABCMDANORPABCQUHUFLUHSTUHUAUFFUEBUHUBUCUD $.
  $}

  ${
    $d x A $.  $d x R $.  $d x S $.  $d x .0. $.
    issubdrg.s $e |- S = ( R |`s A ) $.
    issubdrg.z $e |- .0. = ( 0g ` R ) $.
    issubdrg.i $e |- I = ( invr ` R ) $.
    $( Characterize the subfields of a division ring.  (Contributed by Mario
       Carneiro, 3-Dec-2014.) $)
    issubdrg $p |- ( ( R e. DivRing /\ A e. ( SubRing ` R ) ) ->
      ( S e. DivRing <-> A. x e. ( A \ { .0. } ) ( I ` x ) e. A ) ) $=
      ( cdr wcel cfv wa cdif syl wceq wb eqid ad2antlr wss csubrg cv wral cinvr
      csn cbs crg cui simpllr subrgring c0g simpr eldifsn sylib simpld subrgbas
      eleqtrd simprd subrg0 neeqtrd drngunit mpbir2and syl2anc subrginv 3eltr4d
      wne ringinvcl ralrimiva subrguss isdrng simprbi ad2antrr unitss syl5sseqr
      cin sseqtrd ssind subrgss difin2 simprl sseldd simprr subrgunit mpbir3and
      sseqtr4d w3a expr ralimdva imp dfss3 sylibr eqssd sneqd difeq12d sylanbrc
      eqtrd impbida ) CJKZBCUALKZMZDJKZAUBZELZBKZABFUEZNZUCZWTXAMZXDAXFXHXBXFKZ
      MZXBDUDLZLZDUFLZXCBXJDUGKZXBDUHLZKZXLXMKXJWSXNWRWSXAXIUIZBCDGUJZOXJXPXBXM
      KZXBDUKLZVFZXJXBBXMXJXBBKZXBFVFZXJXIYBYCMZXHXIULXBBFUMZUNZUOXJWSBXMPZXQBC
      DGUPZOZUQXJXBFXTXJYBYCYFURXJWSFXTPZXQBCDFGHUSZOUTXAXPXSYAMQWTXIXMDXOXBXTX
      MRZXORZXTRZVASVBZXMDXOXKXBYMXKRZYLVGVCXJWSXPXCXLPXQYOBCDXOEXKXBGIYMYPVDVC
      YIVEVHWTXGMZXNXOXMXTUEZNZPXAWSXNWRXGXRSYQXOXFYSYQXOXFYQXOCUFLZXENZBVOZXFY
      QXOUUABYQXOCUHLZUUAWSXOUUCTWRXGBCDUUCXOGUUCRZYMVISWRUUCUUAPZWSXGWRCUGKUUE
      YTCUUCFYTRZUUDHVJVKVLVPYQXMXOBXMDXOYLYMVMWSYGWRXGYHSZVNVQYQBYTTZXFUUBPWSU
      UHWRXGBYTCUUFVRZSBXEYTVSOWEYQXPAXFUCZXFXOTWTXGUUJWTXDXPAXFWTXIXDXPWTXIXDM
      ZMZXPXBUUCKZYBXDUULUUMXBYTKZYCUULBYTXBWSUUHWRUUKUUISUULYBYCUULXIYDWTXIXDV
      TYEUNZUOZWAUULYBYCUUOURWRUUMUUNYCMQWSUUKYTCUUCXBFUUFUUDHVAVLVBUUPWTXIXDWB
      WSXPUUMYBXDWFQWRUUKBCDUUCEXOXBGUUDYMIWCSWDWGWHWIAXFXOWJWKWLYQBXMXEYRUUGYQ
      FXTWSYJWRXGYKSWMWNWPXMDXOXTYLYMYNVJWOWQ $.
  $}

  ${
    $d A a $.  $d R a $.  $d S a $.
    subsubrg.s $e |- S = ( R |`s A ) $.
    $( A subring of a subring is a subring.  (Contributed by Mario Carneiro,
       4-Dec-2014.) $)
    subsubrg $p |- ( A e. ( SubRing ` R ) -> ( B e. ( SubRing ` S ) <->
      ( B e. ( SubRing ` R ) /\ B C_ A ) ) ) $=
      ( csubrg cfv wcel wss crg cress cbs adantr wceq eqid adantl subrgring jca
      wa co cur subrgrcl subrgss subrgbas sseqtr4d oveq1i ressabs syl5eq syldan
      eqeltrrd subrg1 subrg1cl eqeltrd issubrg sylanbrc adantrl ad2antrl simprr
      sstrd sseqtrd impbida ) ACFGZHZBDFGHZBVBHZBAIZSZVCVDSZVEVFVHCJHZCBKTZJHZS
      BCLGZIZCUAGZBHZSVEVHVIVKVCVIVDACUBMVHDBKTZVJJVCVDVFVPVJNZVHBDLGZAVDBVRIZV
      CBVRDVROZUCPVCAVRNZVDACDEUDZMUEZVCVFSVPCAKTZBKTVJDWDBKEUFABCVBUGUHZUIVDVP
      JHZVCBDVPVPOQPUJRVHVMVOVHBAVLWCVCAVLIVDAVLCVLOZUCMUSVHVNDUAGZBVCVNWHNZVDA
      CDVNEVNOZUKZMVDWHBHZVCBDWHWHOZULPUMRBVLCVNWGWJUNUOWCRVCVGSZDJHZWFSVSWLSVD
      WNWOWFVCWOVGACDEQMWNVPVJJVCVFVQVEWEUPVEVKVCVFBCVJVJOQUQUMRWNVSWLWNBAVRVCV
      EVFURVCWAVGWBMUTWNVNWHBVCWIVGWKMVEVOVCVFBCVNWJULUQUJRBVRDWHVTWMUNUOVA $.

    $( The set of subrings of a subring are the smaller subrings.  (Contributed
       by Stefan O'Rear, 9-Mar-2015.) $)
    subsubrg2 $p |- ( A e. ( SubRing ` R ) ->
        ( SubRing ` S ) = ( ( SubRing ` R ) i^i ~P A ) ) $=
      ( va csubrg cfv wcel cpw cin cv wss wa subsubrg elin anbi2i bitr2i syl6bb
      selpw eqrdv ) ABFGZHZECFGZUAAIZJZUBEKZUCHUFUAHZUFALZMZUFUEHZAUFBCDNUJUGUF
      UDHZMUIUFUAUDOUKUHUGEASPQRT $.
  $}

  ${
    $d M x y $.  $d R x y $.  $d S x y $.
    issubrg3.m $e |- M = ( mulGrp ` R ) $.
    $( A subring is an additive subgroup which is also a multiplicative
       submonoid.  (Contributed by Mario Carneiro, 7-Mar-2015.) $)
    issubrg3 $p |- ( R e. Ring -> ( S e. ( SubRing ` R ) <->
        ( S e. ( SubGrp ` R ) /\ S e. ( SubMnd ` M ) ) ) ) $=
      ( vx vy crg wcel csubrg cfv csubg cur cv cmulr wral wa eqid 3anass syl6bb
      w3a co csubmnd cbs issubrg2 cmnd wss wb ringmgp subgss ringidval mgpplusg
      mgpbas issubm baibd syl2an pm5.32da bitr4d ) AGHZBAIJHZBAKJHZALJZBHZEMFMA
      NJZUABHFBOEBOZPZPZUTBCUBJHZPURUSUTVBVDTVFEFBAUCJZAVCVAVHQZVAQZVCQZUDUTVBV
      DRSURUTVGVEURCUEHZBVHUFZVGVEUGUTACDUHVHBAVIUIVLVGVMVEVLVGVMVBVDTVMVEPEFVH
      VCBCVAVHACDVIULAVACDVJUJAVCCDVKUKUMVMVBVDRSUNUOUPUQ $.
  $}

  ${
    resrhm.u $e |- U = ( S |`s X ) $.
    $( Restriction of a ring homomorphism to a subring is a homomorphism.
       (Contributed by Mario Carneiro, 12-Mar-2015.) $)
    resrhm $p |- ( ( F e. ( S RingHom T ) /\ X e. ( SubRing ` S ) ) ->
        ( F |` X ) e. ( U RingHom T ) ) $=
      ( crh co wcel csubrg cfv wa crg cres cghm cmgp cmhm rhmrcl2 syl2an eqid
      subrgring anim12ci csubg rhmghm subrgsubg resghm csubmnd rhmmhm subrgsubm
      cress resmhm wceq rhmrcl1 mgpress sylan oveq1d eleqtrd jca isrhm sylanbrc
      ) DABGHIZEAJKZIZLZCMIZBMIZLDENZCBOHIZVGCPKZBPKZQHZIZLVGCBGHIVAVFVCVEABDRE
      ACFUAUBVDVHVLVADABOHIEAUCKIVHVCABDUDEAUEABCDEFUFSVDVGAPKZEUJHZVJQHZVKVADV
      MVJQHIEVMUGKIVGVOIVCABDVMVJVMTZVJTZUHEAVMVPUIVMVJVNDEVNTUKSVDVNVIVJQVAAMI
      VCVNVIULABDUMEACVMMVBFVPUNUOUPUQURCBVGVIVJVITVQUSUT $.
  $}

  $( The equalizer of two ring homomorphisms is a subring.  (Contributed by
     Stefan O'Rear, 7-Mar-2015.)  (Revised by Mario Carneiro, 6-May-2015.) $)
  rhmeql $p |- ( ( F e. ( S RingHom T ) /\ G e. ( S RingHom T ) ) ->
    dom ( F i^i G ) e. ( SubRing ` S ) ) $=
    ( crh co wcel cin cdm csubrg cfv csubg cmgp csubmnd cghm rhmghm syl2an eqid
    wa rhmmhm ghmeql cmhm mhmeql crg wb rhmrcl1 adantr issubrg3 syl mpbir2and )
    CABEFZGZDUKGZSZCDHIZAJKGZUOALKGZUOAMKZNKGZULCABOFZGDUTGUQUMABCPABDPABCDUAQU
    LCURBMKZUBFZGDVBGUSUMABCURVAURRZVARZTABDURVAVCVDTURVACDUCQUNAUDGZUPUQUSSUEU
    LVEUMABCUFUGAUOURVCUHUIUJ $.

  $( The homomorphic image of a subring is a subring.  (Contributed by Stefan
     O'Rear, 10-Mar-2015.)  (Revised by Mario Carneiro, 6-May-2015.) $)
  rhmima $p |- ( ( F e. ( M RingHom N ) /\ X e. ( SubRing ` M ) ) ->
      ( F " X ) e. ( SubRing ` N ) ) $=
    ( crh co wcel csubrg cfv wa cima csubg cmgp csubmnd rhmghm subrgsubg ghmima
    cghm syl2an eqid rhmmhm subrgsubm mhmima crg wb rhmrcl2 adantr issubrg3 syl
    cmhm mpbir2and ) ABCEFGZDBHIGZJZADKZCHIGZUOCLIGZUOCMIZNIGZULABCRFGDBLIGUQUM
    BCAODBPBCDAQSULABMIZURUJFGDUTNIGUSUMBCAUTURUTTZURTZUADBUTVAUBAUTURDUCSUNCUD
    GZUPUQUSJUEULVCUMBCAUFUGCUOURVBUHUIUK $.

  ${
    $d x y z B $.  $d y z M $.  $d x y z R $.  $d x y z S $.  $d x y z Z $.
    cntzsubr.b $e |- B = ( Base ` R ) $.
    cntzsubr.m $e |- M = ( mulGrp ` R ) $.
    cntzsubr.z $e |- Z = ( Cntz ` M ) $.
    $( Centralizers in a ring are subrings.  (Contributed by Stefan O'Rear,
       6-Sep-2015.)  (Revised by Mario Carneiro, 19-Apr-2016.) $)
    cntzsubr $p |- ( ( R e. Ring /\ S C_ B ) ->
        ( Z ` S ) e. ( SubRing ` R ) ) $=
      ( vx vz wcel wa cfv co wral wceq syl2anc ralrimiva wb sseldi vy crg csubg
      wss csubrg csubmnd c0 wne cv cplusg cminusg mgpbas cntzssv a1i c0g simpll
      cmulr ssel2 adantll eqid ringlz ringrz eqtr4d simpr ring0cl adantr cntzel
      mgpplusg mpbird syl w3a simpl2 cntzi simpl3 oveq12d simpl1l simp1r sselda
      ringdir syl13anc ringdi 3eqtr4d simp1l simp2 simp3 ringacl syl3anc fveq2d
      ne0i 3expa simplll ringmneg1 ringmneg2 cgrp ringgrp ad2antrr grpinvcl jca
      simplr issubg2 mpbir3and cmnd ringmgp cntzsubm sylan issubrg3 mpbir2and )
      BUBKZCAUDZLZCEMZBUEMKZXKBUCMKZXKDUFMKZXJXMXKAUDZXKUGUHZIUIZUAUIZBUJMZNZXK
      KZUAXKOZXQBUKMZMZXKKZLZIXKOZXOXJACDEABDGFULZHUMZUNXJBUOMZXKKZXPXJYKYJJUIZ
      BUQMZNZYLYJYMNZPZJCOZXJYPJCXJYLCKZLZYNYJYOYSXHYLAKZYNYJPXHXIYRUPZXIYRYTXH
      CAYLURUSZABYMYLYJFYMUTZYJUTZVAQYSXHYTYOYJPUUAUUBABYMYLYJFUUCUUDVBQVCRXJXI
      YJAKZYKYQSXHXIVDXHUUEXIABYJFUUDVEVFJAYMCDYJEYHBYMDGUUCVHZHVGQVIXKYJWIVJXJ
      YFIXKXJXQXKKZLZYBYEUUHYAUAXKXJUUGXRXKKZYAXJUUGUUIVKZYAXTYLYMNZYLXTYMNZPZJ
      COZUUJUUMJCUUJYRLZXQYLYMNZXRYLYMNZXSNZYLXQYMNZYLXRYMNZXSNZUUKUULUUOUUPUUS
      UUQUUTXSUUOUUGYRUUPUUSPZXJUUGUUIYRVLZUUJYRVDZYMCDXQYLEUUFHVMZQUUOUUIYRUUQ
      UUTPXJUUGUUIYRVNZUVDYMCDXRYLEUUFHVMQVOUUOXHXQAKZXRAKZYTUUKUURPXHXIUUGUUIY
      RVPZUUOXKAXQYIUVCTZUUOXKAXRYIUVFTZUUJCAYLXHXIUUGUUIVQZVRZAXSBYMXQXRYLFXSU
      TZUUCVSVTUUOXHYTUVGUVHUULUVAPUVIUVMUVJUVKAXSBYMYLXQXRFUVNUUCWAVTWBRUUJXIX
      TAKZYAUUNSUVLUUJXHUVGUVHUVOXHXIUUGUUIWCUUJXKAXQYIXJUUGUUIWDTUUJXKAXRYIXJU
      UGUUIWETAXSBXQXRFUVNWFWGJAYMCDXTEYHUUFHVGQVIWJRUUHYEYDYLYMNZYLYDYMNZPZJCO
      ZUUHUVRJCUUHYRLZUUPYCMUUSYCMUVPUVQUVTUUPUUSYCUUGYRUVBXJUVEUSWHUVTABYMYCXQ
      YLFUUCYCUTZXHXIUUGYRWKZUVTXKAXQYIXJUUGYRWSTZUUHCAYLXHXIUUGWSZVRZWLUVTABYM
      YCYLXQFUUCUWAUWBUWEUWCWMWBRUUHXIYDAKZYEUVSSUWDUUHBWNKZUVGUWFXHUWGXIUUGBWO
      ZWPUUHXKAXQYIXJUUGVDTABYCXQFUWAWQQJAYMCDYDEYHUUFHVGQVIWRRXJUWGXMXOXPYGVKS
      XHUWGXIUWHVFIUAAXSXKBYCFUVNUWAWTVJXAXHDXBKXIXNBDGXCACDEYHHXDXEXHXLXMXNLSX
      IBXKDGXFVFXG $.
  $}

  ${
    $d B x $.  $d F y z $.  $d I x $.  $d I y z $.  $d R x $.  $d R y z $.
    $d W x $.  $d W y z $.  $d Y x $.  $d Y y z $.
    pwsdiagrhm.y $e |- Y = ( R ^s I ) $.
    pwsdiagrhm.b $e |- B = ( Base ` R ) $.
    pwsdiagrhm.f $e |- F = ( x e. B |-> ( I X. { x } ) ) $.
    $( Diagonal homomorphism into a structure power (Rings).  (Contributed by
       Mario Carneiro, 12-Mar-2015.)  (Revised by Mario Carneiro,
       6-May-2015.) $)
    pwsdiagrhm $p |- ( ( R e. Ring /\ I e. W ) -> F e. ( R RingHom Y ) ) $=
      ( vy vz crg wcel wa co cfv eqid cbs eqidd cghm cmgp crh simpl pwsring jca
      cmhm cgrp ringgrp pwsdiagghm sylan cpws cmnd ringmgp mgpbas cplusg pwsmgp
      pwsdiagmhm wceq simpld cv simprd oveqdr mhmpropd eleqtrrd isrhm sylanbrc
      ) CMNZEFNZOZVHGMNZODCGUAPNZDCUBQZGUBQZUGPZNZODCGUCPNVJVHVKVHVIUDCEFGHUEUF
      VJVLVPVHCUHNVIVLCUIABCDEFGHIJUJUKVJDVMVMEULPZUGPZVOVHVMUMNVIDVRNCVMVMRZUN
      ABVMDEFVQVQRZBCVMVSIUOJURUKVJKLVMSQZVNSQZVMVNVMVQVJWATZVJWBTWCVJWBVQSQZUS
      ZVNUPQZVQUPQZUSZWBWDWFWGCEVMVNMFGVQHVSVTVNRZWBRWDRWFRWGRUQZUTVJKVAZWANLVA
      ZWANOOWKWLVMUPQPTVJWKWBNWLWBNOKLWFWGVJWEWHWJVBVCVDVEUFCGDVMVNVSWIVFVG $.
  $}

  ${
    $d s x y B $.  $d s x y K $.  $d s x y ph $.  $d s x y L $.
    subrgpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    subrgpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    subrgpropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    subrgpropd.4 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( .r ` K ) y ) = ( x ( .r ` L ) y ) ) $.
    $( If two structures have the same group components (properties), they have
       the same set of subrings.  (Contributed by Mario Carneiro,
       9-Feb-2015.) $)
    subrgpropd $p |- ( ph -> ( SubRing ` K ) = ( SubRing ` L ) ) $=
      ( cfv crg wcel co wa cbs cvv wceq eqid ax-mp vs csubrg cv cress ringpropd
      wss cur cin ineq2d vex ressbas syl6eq inss2 sseli anim12i ressplusg oveqi
      cplusg 3eqtr3g sylan2 cmulr ressmulr anbi12d eqtr3d sseq2d eleq1d issubrg
      rngidpropd 3bitr4g eqrdv ) AUAEUBKZFUBKZAELMZEUAUCZUDNZLMZOZVNEPKZUFZEUGK
      ZVNMZOZOFLMZFVNUDNZLMZOZVNFPKZUFZFUGKZVNMZOZOVNVKMVNVLMAVQWFWBWKAVMWCVPWE
      ABCDEFGHIJUEABCVNDUHZVOWDAWLVNVRUHZVOPKZADVRVNGUIVNQMZWMWNRUAUJZVNVRVOQEV
      OSZVRSZUKTULAWLVNWGUHZWDPKZADWGVNHUIWOWSWTRWPVNWGWDQFWDSZWGSZUKTULBUCZWLM
      ZCUCZWLMZOZAXCDMZXEDMZOZXCXEVOURKZNZXCXEWDURKZNZRXDXHXFXIWLDXCVNDUMZUNWLD
      XEXOUNUOZAXJOZXCXEEURKZNXCXEFURKZNXLXNIXRXKXCXEWOXRXKRWPVNXREVOQWQXRSUPTU
      QXSXMXCXEWOXSXMRWPVNXSFWDQXAXSSUPTUQUSUTXGAXJXCXEVOVAKZNZXCXEWDVAKZNZRXPX
      QXCXEEVAKZNXCXEFVAKZNYAYCJYDXTXCXEWOYDXTRWPVNEVOYDQWQYDSVBTUQYEYBXCXEWOYE
      YBRWPVNFWDYEQXAYESVBTUQUSUTUEVCAVSWHWAWJAVRWGVNADVRWGGHVDVEAVTWIVNABCDEFG
      HJVHVFVCVCVNVREVTWRVTSVGVNWGFWIXBWISVGVIVJ $.
  $}

  ${
    $d f x y J $.  $d f x y K $.  $d f x y L $.  $d f x y M $.  $d f x y ph $.
    $d x y B $.  $d x y C $.
    rhmpropd.a $e |- ( ph -> B = ( Base ` J ) ) $.
    rhmpropd.b $e |- ( ph -> C = ( Base ` K ) ) $.
    rhmpropd.c $e |- ( ph -> B = ( Base ` L ) ) $.
    rhmpropd.d $e |- ( ph -> C = ( Base ` M ) ) $.
    rhmpropd.e $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( x ( +g ` J ) y ) = ( x ( +g ` L ) y ) ) $.
    rhmpropd.f $e |- ( ( ph /\ ( x e. C /\ y e. C ) ) ->
        ( x ( +g ` K ) y ) = ( x ( +g ` M ) y ) ) $.
    rhmpropd.g $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( x ( .r ` J ) y ) = ( x ( .r ` L ) y ) ) $.
    rhmpropd.h $e |- ( ( ph /\ ( x e. C /\ y e. C ) ) ->
        ( x ( .r ` K ) y ) = ( x ( .r ` M ) y ) ) $.
    $( Ring homomorphism depends only on the ring attributes of structures.
       (Contributed by Mario Carneiro, 12-Jun-2015.) $)
    rhmpropd $p |- ( ph -> ( J RingHom K ) = ( L RingHom M ) ) $=
      ( co wcel cfv vf crh crg cghm cmgp cmhm ringpropd anbi12d ghmpropd eleq2d
      wa cv cbs eqid mgpbas syl6eq cmulr cplusg mgpplusg oveqi 3eqtr3g mhmpropd
      isrhm 3bitr4g eqrdv ) AUAFGUBRZHIUBRZAFUCSZGUCSZUKZUAULZFGUDRZSZVKFUETZGU
      ETZUFRZSZUKZUKHUCSZIUCSZUKZVKHIUDRZSZVKHUETZIUETZUFRZSZUKZUKVKVFSVKVGSAVJ
      WAVRWHAVHVSVIVTABCDFHJLNPUGABCEGIKMOQUGUHAVMWCVQWGAVLWBVKABCDEFGHIJKLMNOU
      IUJAVPWFVKABCDEVNVOWDWEADFUMTZVNUMTJWIFVNVNUNZWIUNUOUPAEGUMTZVOUMTKWKGVOV
      OUNZWKUNUOUPADHUMTZWDUMTLWMHWDWDUNZWMUNUOUPAEIUMTZWEUMTMWOIWEWEUNZWOUNUOU
      PABULZDSCULZDSUKUKWQWRFUQTZRWQWRHUQTZRWQWRVNURTZRWQWRWDURTZRPWSXAWQWRFWSV
      NWJWSUNUSUTWTXBWQWRHWTWDWNWTUNUSUTVAAWQESWRESUKUKWQWRGUQTZRWQWRIUQTZRWQWR
      VOURTZRWQWRWEURTZRQXCXEWQWRGXCVOWLXCUNUSUTXDXFWQWRIXDWEWPXDUNUSUTVAVBUJUH
      UHFGVKVNVOWJWLVCHIVKWDWEWNWPVCVDVE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Absolute value (abstract algebra)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c AbsVal $. $( Absolute value function $)

  $( The set of absolute values on a ring. $)
  cabv $a class AbsVal $.

  ${
    $d f r x y $.
    $( Define the set of absolute values on a ring.  An absolute value is a
       generalization of the usual absolute value function ~ df-abs to
       arbitrary rings.  (Contributed by Mario Carneiro, 8-Sep-2014.) $)
    df-abv $a |- AbsVal = ( r e. Ring |->
                            { f e. ( ( 0 [,) +oo ) ^m ( Base ` r ) ) |
      A. x e. ( Base ` r ) ( ( ( f ` x ) = 0 <-> x = ( 0g ` r ) ) /\
      A. y e. ( Base ` r )
        ( ( f ` ( x ( .r ` r ) y ) ) = ( ( f ` x ) x. ( f ` y ) ) /\
          ( f ` ( x ( +g ` r ) y ) ) <_ ( ( f ` x ) + ( f ` y ) ) ) ) } ) $.
  $}

  ${
    $d f r x y B $.  $d f x y F $.  $d f r .+ $.  $d f r x y R $.
    $d f r .x. $.  $d f r .0. $.
    abvfval.a $e |- A = ( AbsVal ` R ) $.
    abvfval.b $e |- B = ( Base ` R ) $.
    abvfval.p $e |- .+ = ( +g ` R ) $.
    abvfval.t $e |- .x. = ( .r ` R ) $.
    abvfval.z $e |- .0. = ( 0g ` R ) $.
    $( Value of the set of absolute values.  (Contributed by Mario Carneiro,
       8-Sep-2014.) $)
    abvfval $p |- ( R e. Ring -> A = { f e. ( ( 0 [,) +oo ) ^m B ) |
    A. x e. B ( ( ( f ` x ) = 0 <-> x = .0. ) /\ A. y e. B
      ( ( f ` ( x .x. y ) ) = ( ( f ` x ) x. ( f ` y ) ) /\
        ( f ` ( x .+ y ) ) <_ ( ( f ` x ) + ( f ` y ) ) ) ) } ) $=
      ( cfv cv wceq co wa wral vr crg wcel cabv cc0 wb cmul caddc cle cpnf cico
      wbr cmap c0g cmulr cplusg fveq2 syl6eqr oveq2d eqeq2d bibi2d oveqd fveq2d
      crab cbs eqeq1d breq1d raleqbidv rabeqbidv df-abv ovex rabex fvmpt syl5eq
      anbi12d ) FUBUCCFUDOAPZHPZOZUEQZVPIQZUFZVPBPZGRZVQOZVRWBVQOZUGRZQZVPWBERZ
      VQOZVRWEUHRZUIULZSZBDTZSZADTZHUEUJUKRZDUMRZVDZJUAFVSVPUAPZUNOZQZUFZVPWBWS
      UOOZRZVQOZWFQZVPWBWSUPOZRZVQOZWJUIULZSZBWSVEOZTZSZAXLTZHWPXLUMRZVDWRUBUDW
      SFQZXOWOHXPWQXQXLDWPUMXQXLFVEODWSFVEUQKURZUSXQXNWNAXLDXRXQXBWAXMWMXQXAVTV
      SXQWTIVPXQWTFUNOIWSFUNUQNURUTVAXQXKWLBXLDXRXQXFWGXJWKXQXEWDWFXQXDWCVQXQXC
      GVPWBXQXCFUOOGWSFUOUQMURVBVCVFXQXIWIWJUIXQXHWHVQXQXGEVPWBXQXGFUPOEWSFUPUQ
      LURVBVCVGVOVHVOVHVIABHUAVJWOHWQWPDUMVKVLVMVN $.

    $( Elementhood in the set of absolute values.  (Contributed by Mario
       Carneiro, 8-Sep-2014.) $)
    isabv $p |- ( R e. Ring -> ( F e. A <-> ( F : B --> ( 0 [,) +oo ) /\
    A. x e. B ( ( ( F ` x ) = 0 <-> x = .0. ) /\ A. y e. B
      ( ( F ` ( x .x. y ) ) = ( ( F ` x ) x. ( F ` y ) ) /\
        ( F ` ( x .+ y ) ) <_ ( ( F ` x ) + ( F ` y ) ) ) ) ) ) ) $=
      ( vf cfv cc0 wceq co wa crg wcel cv wb cmul caddc cle wral cpnf cico cmap
      wbr wf abvfval eleq2d fveq1 eqeq1d bibi1d oveq12d eqeq12d breq12d anbi12d
      crab ralbidv elrab ovex cbs cvv fvex eqeltri elmap anbi1i bitri syl6bb )
      FUAUBZHCUBHAUCZOUCZPZQRZVPIRZUDZVPBUCZGSZVQPZVRWBVQPZUESZRZVPWBESZVQPZVRW
      EUFSZUGULZTZBDUHZTZADUHZOQUIUJSZDUKSZVCZUBZDWPHUMZVPHPZQRZVTUDZWCHPZXAWBH
      PZUESZRZWHHPZXAXEUFSZUGULZTZBDUHZTZADUHZTZVOCWRHABCDEFGOIJKLMNUNUOWSHWQUB
      ZXNTXOWOXNOHWQVQHRZWNXMADXQWAXCWMXLXQVSXBVTXQVRXAQVPVQHUPZUQURXQWLXKBDXQW
      GXGWKXJXQWDXDWFXFWCVQHUPXQVRXAWEXEUEXRWBVQHUPZUSUTXQWIXHWJXIUGWHVQHUPXQVR
      XAWEXEUFXRXSUSVAVBVDVBVDVEXPWTXNWPDHQUIUJVFDFVGPVHKFVGVIVJVKVLVMVN $.
  $}

  ${
    $d x y F $.  $d x y ph $.  $d x y R $.
    isabvd.a $e |- ( ph -> A = ( AbsVal ` R ) ) $.
    isabvd.b $e |- ( ph -> B = ( Base ` R ) ) $.
    isabvd.p $e |- ( ph -> .+ = ( +g ` R ) ) $.
    isabvd.t $e |- ( ph -> .x. = ( .r ` R ) ) $.
    isabvd.z $e |- ( ph -> .0. = ( 0g ` R ) ) $.
    isabvd.1 $e |- ( ph -> R e. Ring ) $.
    isabvd.2 $e |- ( ph -> F : B --> RR ) $.
    isabvd.3 $e |- ( ph -> ( F ` .0. ) = 0 ) $.
    isabvd.4 $e |- ( ( ph /\ x e. B /\ x =/= .0. ) -> 0 < ( F ` x ) ) $.
    isabvd.5 $e |- ( ( ph /\
      ( x e. B /\ x =/= .0. ) /\ ( y e. B /\ y =/= .0. ) ) ->
      ( F ` ( x .x. y ) ) = ( ( F ` x ) x. ( F ` y ) ) ) $.
    isabvd.6 $e |- ( ( ph /\
      ( x e. B /\ x =/= .0. ) /\ ( y e. B /\ y =/= .0. ) ) ->
      ( F ` ( x .+ y ) ) <_ ( ( F ` x ) + ( F ` y ) ) ) $.
    $( Properties that determine an absolute value.  (Contributed by Mario
       Carneiro, 8-Sep-2014.)  (Revised by Mario Carneiro, 4-Dec-2014.) $)
    isabvd $p |- ( ph -> F e. A ) $=
      ( cabv cfv wcel cbs cc0 cpnf cico co wf cv wceq c0g wb cmulr cplusg caddc
      cmul cle wbr wa wral wfn feq2d mpbid ffn syl ffvelrnda 0le0 fveq2d eqtr3d
      syl5breqr adantr fveq2 breq2d syl5ibrcom wne w3a clt simp1 simp2 3ad2ant1
      cr eleqtrrd simp3 neeqtrrd syl3anc wi 0re 3adant3 ltle sylancr mpd 3expia
      pm2.61dne elrege0 ralrimiva ffnfv gt0ne0d necon4d eqeq1d impbid oveq1 crg
      sylanbrc eqid ringlz syl2anc sylan9eqr oveq1d ffvelrnd recnd mul02d eqtrd
      cc oveq2 ringrz oveq2d mul01d simpl1 oveqd simpl2 simprl simpl3 syl122anc
      3eqtr4d simprr pm2.61da2ne cgrp ringgrp grplid addge02d addge01d eqbrtrrd
      eqbrtrd grprid jca ralrimiv isabv mpbir2and ) AIGUBUCZDAIUUAUDZGUEUCZUFUG
      UHUIZIUJZBUKZIUCZUFULZUUFGUMUCZULZUNZUUFCUKZGUOUCZUIZIUCZUUGUULIUCZURUIZU
      LZUUFUULGUPUCZUIZIUCZUUGUUPUQUIZUSUTZVAZCUUCVBZVAZBUUCVBZAIUUCVCZUUGUUDUD
      ZBUUCVBUUEAUUCWCIUJZUVHAEWCIUJUVJQAEUUCWCILVDVEZUUCWCIVFVGAUVIBUUCAUUFUUC
      UDZVAZUUGWCUDZUFUUGUSUTZUVIAUUCWCUUFIUVKVHZUVMUVOUUFUUIUVMUVOUUJUFUUIIUCZ
      USUTZAUVRUVLAUFUFUVQUSVIAJIUCUVQUFAJUUIIOVJRVKZVLVMUUJUUGUVQUFUSUUFUUIIVN
      ZVOVPAUVLUUFUUIVQZUVOAUVLUWAVRZUFUUGVSUTZUVOUWBAUUFEUDZUUFJVQZUWCAUVLUWAV
      TUWBUUFUUCEAUVLUWAWAAUVLEUUCULZUWALWBWDUWBUUFUUIJAUVLUWAWEAUVLJUUIULZUWAO
      WBWFSWGZUWBUFWCUDUVNUWCUVOWHWIAUVLUVNUWAUVPWJUFUUGWKWLWMWNWOUUGWPXEWQBUUC
      UUDIWRXEAUVFBUUCUVMUUKUVEUVMUUHUUJUVMUUFUUIUUGUFAUVLUWAUUGUFVQUWBUUGUWHWS
      WNWTUVMUUHUUJUVQUFULZAUWIUVLUVSVMUUJUUGUVQUFUVTXAVPXBUVMUVDCUUCAUVLUULUUC
      UDZUVDAUVLUWJVRZUURUVCUWKUURUUFUUIUULUUIUWKUUJVAZUVQUFUUOUUQUWKUWIUUJAUVL
      UWIUWJUVSWBZVMUWLUUNUUIIUUJUWKUUNUUIUULUUMUIZUUIUUFUUIUULUUMXCUWKGXDUDZUW
      JUWNUUIULAUVLUWOUWJPWBZAUVLUWJWEZUUCGUUMUULUUIUUCXFZUUMXFZUUIXFZXGXHXIVJU
      WLUUQUFUUPURUIUFUWLUUGUFUUPURUUJUWKUUGUVQUFUVTUWMXIZXJUWLUUPUWKUUPXOUDUUJ
      UWKUUPUWKUUCWCUULIAUVLUVJUWJUVKWBZUWQXKZXLVMXMXNYFUWKUULUUIULZVAZUVQUFUUO
      UUQUWKUWIUXDUWMVMUXEUUNUUIIUXDUWKUUNUUFUUIUUMUIZUUIUULUUIUUFUUMXPUWKUWOUV
      LUXFUUIULUWPAUVLUWJWAZUUCGUUMUUFUUIUWRUWSUWTXQXHXIVJUXEUUQUUGUFURUIUFUXEU
      UPUFUUGURUXDUWKUUPUVQUFUULUUIIVNUWMXIZXRUXEUUGUWKUUGXOUDUXDUWKUUGUWKUUCWC
      UUFIUXBUXGXKZXLVMXSXNYFUWKUWAUULUUIVQZVAZVAZUUFUULHUIZIUCZUUOUUQUXLUXMUUN
      IUXLHUUMUUFUULUXLAHUUMULAUVLUWJUXKXTZNVGYAVJUXLAUWDUWEUULEUDZUULJVQZUXNUU
      QULUXOUXLUUFUUCEAUVLUWJUXKYBUXLAUWFUXOLVGZWDZUXLUUFUUIJUWKUWAUXJYCUXLAUWG
      UXOOVGZWFZUXLUULUUCEAUVLUWJUXKYDUXRWDZUXLUULUUIJUWKUWAUXJYGUXTWFZTYEVKYHU
      WKUVCUUFUUIUULUUIUWLUVAUUPUVBUSUWLUUTUULIUUJUWKUUTUUIUULUUSUIZUULUUFUUIUU
      LUUSXCUWKGYIUDZUWJUYDUULULUWKUWOUYEUWPGYJVGZUWQUUCUUSGUULUUIUWRUUSXFZUWTY
      KXHXIVJUWLUVOUUPUVBUSUTZUWLUFUFUUGUSVIUXAVLUWKUVOUYHUNUUJUWKUUPUUGUXCUXIY
      LVMVEYOUXEUVAUUGUVBUSUXEUUTUUFIUXDUWKUUTUUFUUIUUSUIZUUFUULUUIUUFUUSXPUWKU
      YEUVLUYIUUFULUYFUXGUUCUUSGUUFUUIUWRUYGUWTYPXHXIVJUXEUFUUPUSUTZUUGUVBUSUTZ
      UXEUFUFUUPUSVIUXHVLUWKUYJUYKUNUXDUWKUUGUUPUXIUXCYMVMVEYOUXLUUFUULFUIZIUCZ
      UVAUVBUSUXLUYLUUTIUXLFUUSUUFUULUXLAFUUSULUXOMVGYAVJUXLAUWDUWEUXPUXQUYMUVB
      USUTUXOUXSUYAUYBUYCUAYEYNYHYQWNYRYQWQAUWOUUBUUEUVGVAUNPBCUUAUUCUUSGUUMIUU
      IUUAXFUWRUYGUWSUWTYSVGYTKWD $.
  $}

  ${
    $d x y .+ $.  $d x .0. $.  $d x y B $.  $d x y F $.  $d x y R $.  $d y Y $.
    $d f r x y $.  $d x y .x. $.  $d x y X $.
    abvf.a $e |- A = ( AbsVal ` R ) $.
    $( Reverse closure for the absolute value set.  (Contributed by Mario
       Carneiro, 8-Sep-2014.) $)
    abvrcl $p |- ( F e. A -> R e. Ring ) $=
      ( vr vx vf vy crg wcel cabv cfv cdm cv cc0 wceq c0g co wa wral cmulr cmul
      cplusg caddc cle wbr cbs cpnf cico cmap crab df-abv dmmptss elfvdm sseldi
      wb eleq2s ) BIJCBKLZACURJKMIBEIFNZGNZLZOPUSENZQLPUPUSHNZVBUALRUTLVAVCUTLZ
      UBRPUSVCVBUCLRUTLVAVDUDRUEUFSHVBUGLZTSFVETGOUHUIRVEUJRUKKFHGEULUMCBKUNUOD
      UQ $.

    abvf.b $e |- B = ( Base ` R ) $.
    $( An absolute value is a function from the ring to the nonnegative real
       numbers.  (Contributed by Mario Carneiro, 8-Sep-2014.) $)
    abvfge0 $p |- ( F e. A -> F : B --> ( 0 [,) +oo ) ) $=
      ( vx vy wcel cc0 cpnf cico co cv cfv wceq wb wa wral eqid wf cmulr cplusg
      c0g cmul caddc cle wbr crg abvrcl isabv syl ibi simpld ) DAIZBJKLMDUAZGNZ
      DOZJPUQCUDOZPQUQHNZCUBOZMDOURUTDOZUEMPUQUTCUCOZMDOURVBUFMUGUHRHBSRGBSZUOU
      PVDRZUOCUIIUOVEQACDEUJGHABVCCVADUSEFVCTVATUSTUKULUMUN $.

    $( An absolute value is a function from the ring to the real numbers.
       (Contributed by Mario Carneiro, 8-Sep-2014.) $)
    abvf $p |- ( F e. A -> F : B --> RR ) $=
      ( wcel cc0 cpnf cico co wf cr wss abvfge0 rge0ssre fss sylancl ) DAGBHIJK
      ZDLSMNBMDLABCDEFOPBSMDQR $.

    $( An absolute value is a function from the ring to the real numbers.
       (Contributed by Mario Carneiro, 8-Sep-2014.) $)
    abvcl $p |- ( ( F e. A /\ X e. B ) -> ( F ` X ) e. RR ) $=
      ( wcel cr abvf ffvelrnda ) DAHBIEDABCDFGJK $.

    $( The absolute value of a number is greater or equal to zero.
       (Contributed by Mario Carneiro, 8-Sep-2014.) $)
    abvge0 $p |- ( ( F e. A /\ X e. B ) -> 0 <_ ( F ` X ) ) $=
      ( wcel wa cfv cc0 cpnf cico co cle wbr abvfge0 ffvelrnda cr elrege0 syl
      simprbi ) DAHZEBHIEDJZKLMNZHZKUDOPZUCBUEEDABCDFGQRUFUDSHUGUDTUBUA $.

    ${
      abveq0.z $e |- .0. = ( 0g ` R ) $.
      $( The value of an absolute value is zero iff the argument is zero.
         (Contributed by Mario Carneiro, 8-Sep-2014.) $)
      abveq0 $p |- ( ( F e. A /\ X e. B ) -> ( ( F ` X ) = 0 <-> X = .0. ) ) $=
        ( vx vy wcel cv cfv cc0 wceq wb wral co wa cmulr cmul cplusg caddc cpnf
        cle wbr cico wf crg abvrcl eqid isabv syl ibi simprd simpl ralimi fveq2
        eqeq1d eqeq1 bibi12d rspccva sylan ) DALZJMZDNZOPZVFFPZQZJBRZEBLEDNZOPZ
        EFPZQZVEVJVFKMZCUANZSDNVGVPDNZUBSPVFVPCUCNZSDNVGVRUDSUFUGTKBRZTZJBRZVKV
        EBOUEUHSDUIZWBVEWCWBTZVECUJLVEWDQACDGUKJKABVSCVQDFGHVSULVQULIUMUNUOUPWA
        VJJBVJVTUQURUNVJVOJEBVFEPZVHVMVIVNWEVGVLOVFEDUSUTVFEFVAVBVCVD $.

      $( The absolute value of a nonzero number is nonzero.  (Contributed by
         Mario Carneiro, 8-Sep-2014.) $)
      abvne0 $p |- ( ( F e. A /\ X e. B /\ X =/= .0. ) -> ( F ` X ) =/= 0 ) $=
        ( wcel cfv cc0 wne wa abveq0 necon3bid biimp3ar ) DAJZEBJZEDKZLMEFMRSNT
        LEFABCDEFGHIOPQ $.

      $( The absolute value of a nonzero number is strictly positive.
         (Contributed by Mario Carneiro, 8-Sep-2014.) $)
      abvgt0 $p |- ( ( F e. A /\ X e. B /\ X =/= .0. ) -> 0 < ( F ` X ) ) $=
        ( wcel wne w3a cfv cr abvcl 3adant3 cc0 cle wbr abvge0 abvne0 ne0gt0d )
        DAJZEBJZEFKZLEDMZUCUDUFNJUEABCDEGHOPUCUDQUFRSUEABCDEGHTPABCDEFGHIUAUB
        $.
    $}

    ${
      abvmul.t $e |- .x. = ( .r ` R ) $.
      $( An absolute value distributes under multiplication.  (Contributed by
         Mario Carneiro, 8-Sep-2014.) $)
      abvmul $p |- ( ( F e. A /\ X e. B /\ Y e. B ) ->
        ( F ` ( X .x. Y ) ) = ( ( F ` X ) x. ( F ` Y ) ) ) $=
        ( vx vy wcel co cfv cmul wceq cv wral wa cc0 c0g wb cplusg cle wbr cpnf
        caddc cico wf crg abvrcl isabv syl ibi simprd simpl ralimi adantl oveq1
        eqid fveq2d fveq2 oveq1d eqeq12d oveq2 oveq2d rspc2v syl5com 3impib ) E
        AMZFBMZGBMZFGDNZEOZFEOZGEOZPNZQZVKKRZLRZDNZEOZVTEOZWAEOZPNZQZLBSZKBSZVL
        VMTVSVKWDUAQVTCUBOZQUCZWGVTWACUDOZNEOWDWEUHNUEUFZTZLBSZTZKBSZWIVKBUAUGU
        INEUJZWQVKWRWQTZVKCUKMVKWSUCACEHULKLABWLCDEWJHIWLVAJWJVAUMUNUOUPWPWHKBW
        OWHWKWNWGLBWGWMUQURUSURUNWGVSFWADNZEOZVPWEPNZQKLFGBBVTFQZWCXAWFXBXCWBWT
        EVTFWADUTVBXCWDVPWEPVTFEVCVDVEWAGQZXAVOXBVRXDWTVNEWAGFDVFVBXDWEVQVPPWAG
        EVCVGVEVHVIVJ $.
    $}

    abvtri.p $e |- .+ = ( +g ` R ) $.
    $( An absolute value satisfies the triangle inequality.  (Contributed by
       Mario Carneiro, 8-Sep-2014.) $)
    abvtri $p |- ( ( F e. A /\ X e. B /\ Y e. B ) ->
      ( F ` ( X .+ Y ) ) <_ ( ( F ` X ) + ( F ` Y ) ) ) $=
      ( vx vy wcel co cfv caddc cle wral wa wceq wbr cv cc0 c0g cmulr cmul cpnf
      wb cico wf crg abvrcl eqid isabv syl ibi simprd simpr ralimi adantl oveq1
      fveq2d fveq2 oveq1d breq12d oveq2 oveq2d rspc2v syl5com 3impib ) EAMZFBMZ
      GBMZFGCNZEOZFEOZGEOZPNZQUAZVKKUBZLUBZCNZEOZVTEOZWAEOZPNZQUAZLBRZKBRZVLVMS
      VSVKWDUCTVTDUDOZTUHZVTWADUEOZNEOWDWEUFNTZWGSZLBRZSZKBRZWIVKBUCUGUINEUJZWQ
      VKWRWQSZVKDUKMVKWSUHADEHULKLABCDWLEWJHIJWLUMWJUMUNUOUPUQWPWHKBWOWHWKWNWGL
      BWMWGURUSUTUSUOWGVSFWACNZEOZVPWEPNZQUAKLFGBBVTFTZWCXAWFXBQXCWBWTEVTFWACVA
      VBXCWDVPWEPVTFEVCVDVEWAGTZXAVOXBVRQXDWTVNEWAGFCVFVBXDWEVQVPPWAGEVCVGVEVHV
      IVJ $.
  $}

  ${
    abv0.a $e |- A = ( AbsVal ` R ) $.
    ${
      abv0.z $e |- .0. = ( 0g ` R ) $.
      $( The absolute value of zero is zero.  (Contributed by Mario Carneiro,
         8-Sep-2014.) $)
      abv0 $p |- ( F e. A -> ( F ` .0. ) = 0 ) $=
        ( wcel cbs cfv cc0 wceq crg abvrcl eqid ring0cl syl abveq0 mpbiri mpdan
        wa ) CAGZDBHIZGZDCIJKZUABLGUCABCEMUBBDUBNZFOPUAUCTUDDDKDNAUBBCDDEUEFQRS
        $.
    $}

    ${
      abv1.p $e |- .1. = ( 1r ` R ) $.
      ${
        abv1z.z $e |- .0. = ( 0g ` R ) $.
        $( The absolute value of one is one in a non-trivial ring.
           (Contributed by Mario Carneiro, 8-Sep-2014.) $)
        abv1z $p |- ( ( F e. A /\ .1. =/= .0. ) -> ( F ` .1. ) = 1 ) $=
          ( wcel wne wa cfv co cdiv c1 eqid adantr syl3anc wceq eqtr3d cmul cbs
          cr crg abvrcl ringidcl syl abvcl mpdan recnd cc0 simpl simpr divcan3d
          abvne0 cmulr ringlidm syl2anc fveq2d abvmul oveq1d dividd ) DAIZCEJZK
          ZCDLZVFUAMZVFNMZVFOVEVFVFVEVFVCVFUCIZVDVCCBUBLZIZVIVCBUDIZVKABDFUEZVJ
          BCVJPZGUFUGZAVJBDCFVNUHUIQUJZVPVEVCVKVDVFUKJVCVDULZVCVKVDVOQZVCVDUMAV
          JBDCEFVNHUORZUNVEVFVFNMVHOVEVFVGVFNVECCBUPLZMZDLZVFVGVEWACDVEVLVKWACS
          VCVLVDVMQVRVJBVTCCVNVTPZGUQURUSVEVCVKVKWBVGSVQVRVRAVJBVTDCCFVNWCUTRTV
          AVEVFVPVSVBTT $.
      $}

      $( The absolute value of one is one in a division ring.  (Contributed by
         Mario Carneiro, 8-Sep-2014.) $)
      abv1 $p |- ( ( R e. DivRing /\ F e. A ) -> ( F ` .1. ) = 1 ) $=
        ( wcel c0g cfv wne c1 wceq cdr id eqid drngunz abv1z syl2anr ) DAGZSCBH
        IZJCDIKLBMGSNBCTTOZFPABCDTEFUAQR $.
    $}

    abvneg.b $e |- B = ( Base ` R ) $.
    ${
      abvneg.p $e |- N = ( invg ` R ) $.
      $( The absolute value of a negative is the same as that of the positive.
         (Contributed by Mario Carneiro, 8-Sep-2014.) $)
      abvneg $p |- ( ( F e. A /\ X e. B ) ->
        ( F ` ( N ` X ) ) = ( F ` X ) ) $=
        ( wcel wa cfv wceq adantr eqid fveq2d c1 cmul co syl2anc cur c0g crg wi
        abvrcl cgrp ringgrp syl grpinvcl sylan ring1eq0 syl3anc imp wne c2 cexp
        simpr cmulr ringidcl abvcl mpdan recnd sqvald abvmul mpd3an23 ringmneg2
        cr ringnegl grpinvinv 3eqtrd 3eqtr2d abv1z eqtrd sq1 syl6eqr cc0 cle wb
        wbr abvge0 0le1 sq11 mpanr12 biimpa syldan adantlr oveq1d simpl mulid2d
        1re eqtr3d pm2.61dane ) DAJZFBJZKZFELZDLZFDLZMCUALZCUBLZWOWSWTMZKWPFDWO
        XAWPFMZWOCUCJZWPBJZWNXAXBUDWMXCWNACDGUEZNZWMCUFJZWNXDWMXCXGXECUGUHZBCEF
        HIUIUJWMWNUQZBCWSWPFWTHWSOZWTOZUKULUMPWOWSWTUNZKZQWRRSZWQWRXMWSELZDLZWR
        RSZXNWQXMXPQWRRWMXLXPQMZWNWMXLXPUOUPSZQUOUPSZMZXRWMXLKZXSQXTYBXSWSDLZQW
        MXSYCMXLWMXSXPXPRSZXOXOCURLZSZDLZYCWMXPWMXPWMXOBJZXPVGJZWMXGWSBJZYHXHWM
        XCYJXEBCWSHXJUSUHZBCEWSHIUITZABCDXOGHUTVAZVBVCWMYHYHYGYDMYLYLABCYEDXOXO
        GHYEOZVDVEWMYFWSDWMYFXOWSYESZELXOELZWSWMBCYEEXOWSHYNIXEYLYKVFWMYOXOEWMB
        CYEWSEWSHYNXJIXEYKVHPWMXGYJYPWSMXHYKBCEWSHIVITVJPVKNACWSDWTGXJXKVLVMVNV
        OWMYAXRWMYIVPXPVQVSZYAXRVRZYMWMYHYQYLABCDXOGHVTVAYIYQKQVGJVPQVQVSYRWJWA
        XPQWBWCTWDWEWFWGWOXQWQMXLWOXOFYESZDLZXQWQWOWMYHWNYTXQMWMWNWHWMYHWNYLNXI
        ABCYEDXOFGHYNVDULWOYSWPDWOBCYEWSEFHYNXJIXFXIVHPWKNWKWOXNWRMXLWOWRWOWRAB
        CDFGHUTVBWINWKWL $.
    $}

    ${
      abvsubtri.p $e |- .- = ( -g ` R ) $.
      $( An absolute value satisfies the triangle inequality.  (Contributed by
         Mario Carneiro, 4-Oct-2015.) $)
      abvsubtri $p |- ( ( F e. A /\ X e. B /\ Y e. B ) ->
        ( F ` ( X .- Y ) ) <_ ( ( F ` X ) + ( F ` Y ) ) ) $=
        ( wcel w3a co cfv cminusg cplusg caddc cle wceq eqid 3adant1 fveq2d wbr
        grpsubval crg abvrcl 3ad2ant1 ringgrp syl simp3 grpinvcl syl2anc abvtri
        cgrp syld3an3 abvneg 3adant2 oveq2d breqtrd eqbrtrd ) DAKZFBKZGBKZLZFGE
        MZDNFGCONZNZCPNZMZDNZFDNZGDNZQMZRVDVEVIDVBVCVEVISVABVHCVFEFGIVHTZVFTZJU
        DUAUBVDVJVKVGDNZQMZVMRVAVBVCVGBKZVJVQRUCVDCUNKZVCVRVDCUEKZVSVAVBVTVCACD
        HUFUGCUHUIVAVBVCUJBCVFGIVOUKULABVHCDFVGHIVNUMUOVDVPVLVKQVAVCVPVLSVBABCD
        VFGHIVOUPUQURUSUT $.
    $}

    abvrec.z $e |- .0. = ( 0g ` R ) $.
    ${
      abvrec.p $e |- I = ( invr ` R ) $.
      $( The absolute value distributes under reciprocal.  (Contributed by
         Mario Carneiro, 10-Sep-2014.) $)
      abvrec $p |- ( ( ( R e. DivRing /\ F e. A ) /\ ( X e. B /\ X =/= .0. ) )
        -> ( F ` ( I ` X ) ) = ( 1 / ( F ` X ) ) ) $=
        ( wcel wa wne cfv c1 cr abvcl syl3anc wceq simplr simprl syl2anc simpll
        cdr recnd simprr drnginvrcl cc0 abvne0 cmulr co cur cmul eqid drnginvrr
        fveq2d abvmul abv1 adantr 3eqtr3d mvllmuld ) CUELZDALZMZFBLZFGNZMZMZFDO
        ZFEOZDOZPVIVJVIVDVFVJQLVCVDVHUAZVEVFVGUBZABCDFHIRUCUFVIVLVIVDVKBLZVLQLV
        MVIVCVFVGVOVCVDVHUDZVNVEVFVGUGZBCEFGIJKUHSZABCDVKHIRUCUFVIVDVFVGVJUINVM
        VNVQABCDFGHIJUJSVIFVKCUKOZULZDOZCUMOZDOZVJVLUNULZPVIVTWBDVIVCVFVGVTWBTV
        PVNVQBCVSWBEFGIJVSUOZWBUOZKUPSUQVIVDVFVOWAWDTVMVNVRABCVSDFVKHIWEURSVEWC
        PTVHACWBDHWFUSUTVAVB $.
    $}

    ${
      abvdiv.p $e |- ./ = ( /r ` R ) $.
      $( The absolute value distributes under division.  (Contributed by Mario
         Carneiro, 10-Sep-2014.) $)
      abvdiv $p |- ( ( ( R e. DivRing /\ F e. A ) /\
                       ( X e. B /\ Y e. B /\ Y =/= .0. ) ) ->
                     ( F ` ( X ./ Y ) ) = ( ( F ` X ) / ( F ` Y ) ) ) $=
        ( wcel wa cfv co cmul wceq eqid syl3anc cdr wne w3a cinvr cmulr c1 cdiv
        simplr simpr1 simpll simpr2 simpr3 drnginvrcl abvmul 3adantr1 eqtrd cui
        abvrec oveq2d wb drngunit syl mpbir2and dvrval syl2anc fveq2d abvcl cc0
        cr recnd abvne0 divrecd 3eqtr4d ) DUAMZEAMZNZFBMZGBMZGHUBZUCZNZFGDUDOZO
        ZDUEOZPZEOZFEOZUFGEOZUGPZQPZFGCPZEOWGWHUGPWAWFWGWCEOZQPZWJWAVOVQWCBMZWF
        WMRVNVOVTUHZVPVQVRVSUIZWAVNVRVSWNVNVOVTUJZVPVQVRVSUKZVPVQVRVSULZBDWBGHJ
        KWBSZUMTABDWDEFWCIJWDSZUNTWAWLWIWGQVPVRVSWLWIRVQABDEWBGHIJKWTURUOUSUPWA
        WKWEEWAVQGDUQOZMZWKWERWPWAXCVRVSWRWSWAVNXCVRVSNUTWQBDXBGHJXBSZKVAVBVCBC
        DWDXBWBFGJXAXDWTLVDVEVFWAWGWHWAWGWAVOVQWGVIMWOWPABDEFIJVGVEVJWAWHWAVOVR
        WHVIMWOWRABDEGIJVGVEVJWAVOVRVSWHVHUBWOWRWSABDEGHIJKVKTVLVM $.
    $}

    ${
      abvdom.t $e |- .x. = ( .r ` R ) $.
      $( Any ring with an absolute value is a domain, which is to say that it
         contains no zero divisors.  (Contributed by Mario Carneiro,
         10-Sep-2014.) $)
      abvdom $p |- ( ( F e. A /\ ( X e. B /\ X =/= .0. ) /\
        ( Y e. B /\ Y =/= .0. ) ) -> ( X .x. Y ) =/= .0. ) $=
        ( wcel wne wa co cfv cc0 wceq syl3anc w3a simp1 simp2l simp3l abvmul cr
        cmul abvcl syl2anc recnd simp2r abvne0 simp3r mulne0d eqnetrd syl fveq2
        abv0 eqeq1d syl5ibrcom necon3d mpd ) EAMZFBMZFHNZOZGBMZGHNZOZUAZFGDPZEQ
        ZRNVKHNVJVLFEQZGEQZUGPZRVJVCVDVGVLVOSVCVFVIUBZVCVDVEVIUCZVCVFVGVHUDZABC
        DEFGIJLUETVJVMVNVJVMVJVCVDVMUFMVPVQABCEFIJUHUIUJVJVNVJVCVGVNUFMVPVRABCE
        GIJUHUIUJVJVCVDVEVMRNVPVQVCVDVEVIUKABCEFHIJKULTVJVCVGVHVNRNVPVRVCVFVGVH
        UMABCEGHIJKULTUNUOVJVKHVLRVJVLRSVKHSZHEQZRSZVJVCWAVPACEHIKURUPVSVLVTRVK
        HEUQUSUTVAVB $.
    $}
  $}

  ${
    $d x y A $.  $d x y C $.  $d x y F $.  $d x y R $.  $d x y S $.
    abvres.a $e |- A = ( AbsVal ` R ) $.
    abvres.s $e |- S = ( R |`s C ) $.
    abvres.b $e |- B = ( AbsVal ` S ) $.
    $( The restriction of an absolute value to a subring is an absolute value.
       (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    abvres $p |- ( ( F e. A /\ C e. ( SubRing ` R ) ) -> ( F |` C ) e. B ) $=
      ( wcel cfv wa wceq adantl eqid syl cc0 fvres syl3anc co vx vy csubrg cres
      cplusg cmulr c0g cabv a1i cbs subrgbas ressplusg ressmulr csubg subrgsubg
      subg0 crg subrgring cr wss abvf subrgss fssres syl2an subg0cl 3syl adantr
      wf abv0 eqtrd wne w3a clt wbr simp1l sselda 3adant3 simp3 abvgt0 3ad2ant2
      breqtrrd cmul simp1r simp2l sseldd simp3l abvmul subrgmcl oveq12d 3eqtr4d
      cv caddc cle abvtri subrgacl 3brtr4d isabvd ) FAJZCDUCKZJZLZUAUBBCDUEKZED
      UFKZFCUDZDUGKZBEUHKMXAIUIWTCEUJKMWRCDEHUKNWTXBEUEKMWRCXBDEWSHXBOZULNWTXCE
      UFKMWRCDEXCWSHXCOZUMNXACDUNKJZXEEUGKMWTXHWRCDUONZCDEXEHXEOZUPPWTEUQJWRCDE
      HURNWRDUJKZUSFVHCXKUTZCUSXDVHWTAXKDFGXKOZVACXKDXMVBZXKUSCFVCVDXAXEXDKZXEF
      KZQXAXHXECJXOXPMXICDXEXJVEXECFRVFWRXPQMWTADFXEGXJVIVGVJXAUAWKZCJZXQXEVKZV
      LZQXQFKZXQXDKZVMXTWRXQXKJZXSQYAVMVNWRWTXRXSVOXAXRYCXSXACXKXQWTXLWRXNNVPVQ
      XAXRXSVRAXKDFXQXEGXMXJVSSXRXAYBYAMZXSXQCFRZVTWAXAXRXSLZUBWKZCJZYGXEVKZLZV
      LZXQYGXCTZFKZYAYGFKZWBTZYLXDKZYBYGXDKZWBTYKWRYCYGXKJZYMYOMWRWTYFYJVOZYKCX
      KXQYKWTXLWRWTYFYJWCZXNPZXAXRXSYJWDZWEZYKCXKYGUUAXAYFYHYIWFZWEZAXKDXCFXQYG
      GXMXGWGSYKYLCJZYPYMMYKWTXRYHUUFYTUUBUUDCDXCXQYGXGWHSYLCFRPYKYBYAYQYNWBYKX
      RYDUUBYEPZYKYHYQYNMUUDYGCFRPZWIWJYKXQYGXBTZFKZYAYNWLTZUUIXDKZYBYQWLTWMYKW
      RYCYRUUJUUKWMVNYSUUCUUEAXKXBDFXQYGGXMXFWNSYKUUICJZUULUUJMYKWTXRYHUUMYTUUB
      UUDCXBDXQYGXFWOSUUICFRPYKYBYAYQYNWLUUGUUHWIWPWQ $.
  $}

  ${
    $d x .0. $.  $d y z F $.  $d x y z ph $.  $d x y z R $.  $d x .x. $.
    $d x B $.
    abvtriv.a $e |- A = ( AbsVal ` R ) $.
    abvtriv.b $e |- B = ( Base ` R ) $.
    abvtriv.z $e |- .0. = ( 0g ` R ) $.
    abvtriv.f $e |- F = ( x e. B |-> if ( x = .0. , 0 , 1 ) ) $.
    ${
      abvtrivd.1 $e |- .x. = ( .r ` R ) $.
      abvtrivd.2 $e |- ( ph -> R e. Ring ) $.
      abvtrivd.3 $e |- ( ( ph /\ ( y e. B /\ y =/= .0. ) /\
        ( z e. B /\ z =/= .0. ) ) -> ( y .x. z ) =/= .0. ) $.
      $( The trivial absolute value.  (Contributed by Mario Carneiro,
         6-May-2015.) $)
      abvtrivd $p |- ( ph -> F e. A ) $=
        ( wceq cc0 c1 cplusg cfv cabv a1i cbs eqidd cmulr c0g cv cif cr wcel wa
        0re 1re keepel fmptd crg ring0cl c0ex fvmpt 3syl wne w3a clt 0lt1 eqeq1
        iftrue ifbid 1ex ifex ifnefalse sylan9eq 3adant1 syl5breqr 1t1e1 eqcomi
        cmul co 3ad2ant1 simp2l simp3l ringcl syl3anc syl neneqd iffalsed eqtrd
        simp2r simp3r oveq12d 3eqtr4a caddc cle c2 breq1 0le2 1le2 keephyp df-2
        wbr breqtri cgrp ringgrp eqid grpcl 3brtr4d isabvd ) ACDEFGUAUBZGHIJEGU
        CUBRAKUDFGUEUBRALUDAXIUFHGUGUBRAOUDJGUHUBRAMUDPABFBUIZJRZSTUJZUKIXLUKUL
        AXJFULUMXKSTUKUNUOUPUDNUQAGURULZJFULJIUBSRPFGJLMUSBJXLSFIXKSTVHNUTVAVBA
        CUIZFULZXNJVCZVDSTXNIUBZVEVFXOXPXQTRAXOXPXQXNJRZSTUJZTBXNXLXSFIXJXNRXKX
        RSTXJXNJVGVINXRSTUTVJVKVAZXNJSTVLVMVNVOAXOXPUMZDUIZFULZYBJVCZUMZVDZTTTV
        RVSZXNYBHVSZIUBZXQYBIUBZVRVSYGTVPVQYFYIYHJRZSTUJZTYFYHFULZYIYLRYFXMXOYC
        YMAYAXMYEPVTAXOXPYEWAZAYAYCYDWBZFGHXNYBLOWCWDBYHXLYLFIXJYHRXKYKSTXJYHJV
        GVINYKSTUTVJVKVAWEYFYKSTYFYHJQWFWGWHYFXQTYJTVRYFXQXSTYFXOXQXSRYNXTWEYFX
        RSTYFXNJAXOXPYEWIWFWGWHZYFYJYBJRZSTUJZTYFYCYJYRRYOBYBXLYRFIXJYBRXKYQSTX
        JYBJVGVINYQSTUTVJVKVAWEYFYQSTYFYBJAYAYCYDWJWFWGWHZWKWLYFXNYBXIVSZJRZSTU
        JZTTWMVSZYTIUBZXQYJWMVSWNUUBUUCWNXAYFUUBWOUUCWNUUASWOWNXATWOWNXAUUBWOWN
        XASTSUUBWOWNWPTUUBWOWNWPWQWRWSWTXBUDYFYTFULZUUDUUBRYFGXCULZXOYCUUEAYAUU
        FYEAXMUUFPGXDWEVTYNYOFXIGXNYBLXIXEXFWDBYTXLUUBFIXJYTRXKUUASTXJYTJVGVINU
        UASTUTVJVKVAWEYFXQTYJTWMYPYSWKXGXH $.
    $}

    $( The trivial absolute value.  (This theorem is true as long as ` R ` is a
       domain, but it is not true for rings with zero divisors, which violate
       the multiplication axiom; ~ abvdom is the converse of this remark.)
       (Contributed by Mario Carneiro, 8-Sep-2014.)  (Revised by Mario
       Carneiro, 6-May-2015.) $)
    abvtriv $p |- ( R e. DivRing -> F e. A ) $=
      ( vy vz cdr wcel cmulr cfv cv wne wa eldifsn eqid drngring w3a co drngmcl
      csn cdif biid syl3anbr sylib simprd abvtrivd ) DMNZAKLBCDDOPZEFGHIJUNUAZD
      UBUMKQZCNUPFRSZLQZCNURFRSZUCZUPURUNUDZCNZVAFRZUTVACFUFUGZNZVBVCSUMUMUQUPV
      DNUSURVDNVEUMUHUPCFTURCFTCDUNUPURFHUOIUEUIVACFTUJUKUL $.
  $}

  ${
    $d x y B $.  $d f x y K $.  $d f x y L $.  $d f x y ph $.
    abvpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    abvpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    abvpropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    abvpropd.4 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( .r ` K ) y ) = ( x ( .r ` L ) y ) ) $.
    $( If two structures have the same ring components, they have the same
       collection of absolute values.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    abvpropd $p |- ( ph -> ( AbsVal ` K ) = ( AbsVal ` L ) ) $=
      ( cfv wcel co cv wceq wb wa wral anbi12d eqid vf cabv crg cbs cc0 cpnf wf
      cico c0g cmulr cmul cplusg caddc ringpropd eqtr3d feq2d grpidpropd adantr
      cle eqeq2d bibi2d fveq2d eqeq1d breq1d anassrs ralbidva raleqdv raleqbidv
      wbr anbi2d 3bitr3d abvrcl isabv biadan2 3bitr4g eqrdv ) AUAEUBKZFUBKZAEUC
      LZEUDKZUEUFUHMZUANZUGZBNZWBKZUEOZWDEUIKZOZPZWDCNZEUJKZMZWBKZWEWJWBKZUKMZO
      ZWDWJEULKZMZWBKZWEWNUMMZUSVIZQZCVTRZQZBVTRZQZQFUCLZFUDKZWAWBUGZWFWDFUIKZO
      ZPZWDWJFUJKZMZWBKZWOOZWDWJFULKZMZWBKZWTUSVIZQZCXHRZQZBXHRZQZQWBVQLZWBVRLZ
      AVSXGXFYEABCDEFGHIJUNAWCXIXEYDAVTXHWAWBADVTXHGHUOUPAWIXBCDRZQZBDRXLYACDRZ
      QZBDRXEYDAYIYKBDAWDDLZQZWIXLYHYJYMWHXKWFYMWGXJWDAWGXJOYLABCDEFGHIUQURUTVA
      YMXBYACDAYLWJDLZXBYAPAYLYNQQZWPXPXAXTYOWMXOWOYOWLXNWBJVBVCYOWSXSWTUSYOWRX
      RWBIVBVDSVEVFSVFAYIXDBDVTGAYHXCWIAXBCDVTGVGVJVHAYKYCBDXHHAYJYBXLAYACDXHHV
      GVJVHVKSSYFVSXFVQEWBVQTZVLBCVQVTWQEWKWBWGYPVTTWQTWKTWGTVMVNYGXGYEVRFWBVRT
      ZVLBCVRXHXQFXMWBXJYQXHTXQTXMTXJTVMVNVOVP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Star rings
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c *Ring $.
  $c *rf $.

  $( Extend class notation with the functionalization of the *-ring
     involution. $)
  cstf $a class *rf $.

  $( Extend class notation with class of all *-rings. $)
  csr $a class *Ring $.

  ${
    $d f i x $.
    $( Define the functionalization of the involution in a star ring.  This is
       not strictly necessary but by having ` *r ` as an actual function we can
       state the principal properties of an involution much more cleanly.
       (Contributed by Mario Carneiro, 6-Oct-2015.) $)
    df-staf $a |- *rf = ( f e. _V |->
      ( x e. ( Base ` f ) |-> ( ( *r ` f ) ` x ) ) ) $.

    $( Define class of all star rings.  A star ring is a ring with an
       involution (conjugation) function.  Involution (unlike say the ring
       zero) is not unique and therefore must be added as a new component to
       the ring.  For example, two possible involutions for complex numbers are
       the identity function and complex conjugation.  Definition of involution
       in [Holland95] p. 204.  (Contributed by NM, 22-Sep-2011.)  (Revised by
       Mario Carneiro, 6-Oct-2015.) $)
    df-srng $a |- *Ring = { f | [. ( *rf ` f ) / i ].
      ( i e. ( f RingHom ( oppR ` f ) ) /\ i = `' i ) } $.
  $}

  ${
    $d x A $.  $d f x B $.  $d f x .* $.  $d f x R $.
    staffval.b $e |- B = ( Base ` R ) $.
    staffval.i $e |- .* = ( *r ` R ) $.
    staffval.f $e |- .xb = ( *rf ` R ) $.
    $( The functionalization of the involution component of a structure.
       (Contributed by Mario Carneiro, 6-Oct-2015.) $)
    staffval $p |- .xb = ( x e. B |-> ( .* ` x ) ) $=
      ( vf cstf cfv cv cmpt cvv wcel wceq cbs cstv syl6eqr c0 mpteq12dv df-staf
      fveq2 fveq1d crn csn cun eqid fvrn0 a1i fmpti fvex eqeltri rnex p0ex unex
      wf fex2 mp3an fvmpt wn fvprc mpt0 syl5eq mpteq1d eqtr4d pm2.61i eqtri ) D
      CJKZABALZEKZMZHCNOZVIVLPICAILZQKZVJVNRKZKZMVLNJVNCPZAVOVQBVKVRVOCQKZBVNCQ
      UCFSVRVJVPEVRVPCRKZEVNCRUCGSUDUAAIUBBEUEZTUFZUGZVLUQBNOWCNOVLNOABWCVKVLVL
      UHVKWCOVJBOEVJUIUJUKBVSNFCQULUMWAWBEEVTNGCRULUMUNUOUPBWCVLNNURUSUTVMVAZVI
      ATVKMZVLWDVITWECJVBAVKVCSWDABTVKWDBVSTFCQVBVDVEVFVGVH $.

    $( The functionalization of the involution component of a structure.
       (Contributed by Mario Carneiro, 6-Oct-2015.) $)
    stafval $p |- ( A e. B -> ( .xb ` A ) = ( .* ` A ) ) $=
      ( vx cv cfv fveq2 staffval fvex fvmpt ) IAIJZEKAEKBDPAELIBCDEFGHMAENO $.

    $( The functionalization is equal to the original function, if it is a
       function on the right base set.  (Contributed by Mario Carneiro,
       6-Oct-2015.) $)
    staffn $p |- ( .* Fn B -> .xb = .* ) $=
      ( vx wfn cv cfv cmpt wceq dffn5 biimpi staffval syl6reqr ) DAIZDHAHJDKLZC
      RDSMHADNOHABCDEFGPQ $.
  $}

  ${
    $d i r .* $.  $d i r O $.  $d i r R $.
    issrng.o $e |- O = ( oppR ` R ) $.
    issrng.i $e |- .* = ( *rf ` R ) $.
    $( The predicate "is a star ring."  (Contributed by NM, 22-Sep-2011.)
       (Revised by Mario Carneiro, 6-Oct-2015.) $)
    issrng $p |- ( R e. *Ring <-> ( .* e. ( R RingHom O ) /\ .* = `' .* ) ) $=
      ( vi vr csr wcel cv coppr cfv crh co ccnv wceq wa cstf cvv crg cab eleq2i
      wsbc df-srng rhmrcl1 elex syl adantr fvexd fveq2 syl6eqr sylan9eqr fveq2d
      id simpl oveq12d eleq12d cnveqd eqeq12d anbi12d sbcied elab3 bitri ) AHIA
      FJZGJZVEKLZMNZIZVDVDOZPZQZFVERLZUCZGUAZIBACMNZIZBBOZPZQZHVNAGFUDUBVMVSGAV
      PASIZVRVPATIVTACBUEATUFUGUHVEAPZVKVSFVLSWAVERUIWAVDVLPZQZVHVPVJVRWCVDBVGV
      OWBWAVDVLBWBUNWAVLARLBVEARUJEUKULZWCVEAVFCMWAWBUOZWCVFAKLCWCVEAKWEUMDUKUP
      UQWCVDBVIVQWDWCVDBWDURUSUTVAVBVC $.

    $( The involution function in a star ring is an antiautomorphism.
       (Contributed by Mario Carneiro, 6-Oct-2015.) $)
    srngrhm $p |- ( R e. *Ring -> .* e. ( R RingHom O ) ) $=
      ( csr wcel crh co ccnv wceq issrng simplbi ) AFGBACHIGBBJKABCDELM $.
  $}

  $( A star ring is a ring.  (Contributed by Mario Carneiro, 6-Oct-2015.) $)
  srngring $p |- ( R e. *Ring -> R e. Ring ) $=
    ( csr wcel cstf cfv coppr crh co crg eqid srngrhm rhmrcl1 syl ) ABCADEZAAFE
    ZGHCAICANOOJNJKAONLM $.

  ${
    srngcnv.i $e |- .* = ( *rf ` R ) $.
    $( The involution function in a star ring is its own inverse function.
       (Contributed by Mario Carneiro, 6-Oct-2015.) $)
    srngcnv $p |- ( R e. *Ring -> .* = `' .* ) $=
      ( csr wcel coppr cfv crh co ccnv wceq eqid issrng simprbi ) ADEBAAFGZHIEB
      BJKABOOLCMN $.

    srngf1o.b $e |- B = ( Base ` R ) $.
    $( The involution function in a star ring is a bijection.  (Contributed by
       Mario Carneiro, 6-Oct-2015.) $)
    srngf1o $p |- ( R e. *Ring -> .* : B -1-1-onto-> B ) $=
      ( csr wcel wfn ccnv wf1o coppr cfv crh co cbs wf eqid srngrhm rhmf ffn
      3syl srngcnv fneq1d mpbid dff1o4 sylanbrc ) BFGZCAHZCIZAHZAACJUGCBBKLZMNG
      AUKOLZCPUHBCUKUKQDRAULBUKCEULQSAULCTUAZUGUHUJUMUGACUIBCDUBUCUDAACUEUF $.
  $}

  ${
    srngcl.i $e |- .* = ( *r ` R ) $.
    srngcl.b $e |- B = ( Base ` R ) $.
    $( The involution function in a star ring is closed in the ring.
       (Contributed by Mario Carneiro, 6-Oct-2015.) $)
    srngcl $p |- ( ( R e. *Ring /\ X e. B ) -> ( .* ` X ) e. B ) $=
      ( csr wcel wa cstf cfv wceq eqid stafval adantl wf1o wf srngf1o f1of syl
      ffvelrnda eqeltrrd ) BGHZDAHZIDBJKZKZDCKZAUDUFUGLUCDABUECFEUEMZNOUCAADUEU
      CAAUEPAAUEQABUEUHFRAAUESTUAUB $.

    $( The involution function in a star ring is an involution.  (Contributed
       by Mario Carneiro, 6-Oct-2015.) $)
    srngnvl $p |- ( ( R e. *Ring /\ X e. B ) -> ( .* ` ( .* ` X ) ) = X ) $=
      ( csr wcel wa cfv cstf wceq srngcl eqid stafval syl srngcnv adantr fveq1d
      ccnv adantl fveq2d wf1o srngf1o f1ocnvfv1 sylan 3eqtr3d eqtr3d ) BGHZDAHZ
      IZDCJZBKJZJZULCJZDUKULAHUNUOLABCDEFMULABUMCFEUMNZOPUKDUMJZUMJUQUMTZJZUNDU
      KUQUMURUIUMURLUJBUMUPQRSUKUQULUMUJUQULLUIDABUMCFEUPOUAUBUIAAUMUCUJUSDLABU
      MUPFUDAADUMUEUFUGUH $.

    ${
      srngadd.p $e |- .+ = ( +g ` R ) $.
      $( The involution function in a star ring distributes over addition.
         (Contributed by Mario Carneiro, 6-Oct-2015.) $)
      srngadd $p |- ( ( R e. *Ring /\ X e. B /\ Y e. B ) ->
        ( .* ` ( X .+ Y ) ) = ( ( .* ` X ) .+ ( .* ` Y ) ) ) $=
        ( csr wcel w3a co cstf cfv wceq eqid syl syl3an1 stafval coppr cghm crh
        srngrhm rhmghm oppradd ghmlin srngring ringacl 3ad2ant2 oveq12d 3eqtr3d
        crg 3ad2ant3 ) CJKZEAKZFAKZLZEFBMZCNOZOZEUTOZFUTOZBMZUSDOZEDOZFDOZBMUOU
        TCCUAOZUBMKZUPUQVAVDPUOUTCVHUCMKVICUTVHVHQZUTQZUDCVHUTUERBBCVHEUTFAHIBC
        VHVJIUFUGSURUSAKZVAVEPUOCUMKUPUQVLCUHABCEFHIUISUSACUTDHGVKTRURVBVFVCVGB
        UPUOVBVFPUQEACUTDHGVKTUJUQUOVCVGPUPFACUTDHGVKTUNUKUL $.
    $}

    srngmul.t $e |- .x. = ( .r ` R ) $.
    $( The involution function in a star ring distributes over multiplication,
       with a change in the order of the factors.  (Contributed by Mario
       Carneiro, 6-Oct-2015.) $)
    srngmul $p |- ( ( R e. *Ring /\ X e. B /\ Y e. B ) ->
      ( .* ` ( X .x. Y ) ) = ( ( .* ` Y ) .x. ( .* ` X ) ) ) $=
      ( csr wcel w3a co cstf cfv coppr wceq eqid syl3an1 stafval srngrhm rhmmul
      cmulr crh opprmul syl6eq crg srngring ringcl syl 3ad2ant3 oveq12d 3eqtr3d
      3ad2ant2 ) BJKZEAKZFAKZLZEFCMZBNOZOZFUTOZEUTOZCMZUSDOZFDOZEDOZCMURVAVCVBB
      POZUCOZMZVDUOUTBVHUDMKUPUQVAVJQBUTVHVHRZUTRZUAEFBVHCVIUTAHIVIRZUBSABVICVH
      VCVBHIVKVMUEUFURUSAKZVAVEQUOBUGKUPUQVNBUHABCEFHIUISUSABUTDHGVLTUJURVBVFVC
      VGCUQUOVBVFQUPFABUTDHGVLTUKUPUOVCVGQUQEABUTDHGVLTUNULUM $.
  $}

  ${
    srng1.i $e |- .* = ( *r ` R ) $.
    srng1.t $e |- .1. = ( 1r ` R ) $.
    $( The conjugate of the ring identity is the identity.  (This is sometimes
       taken as an axiom, and indeed the proof here follows because we defined
       ` *r ` to be a ring homomorphism, which preserves 1; nevertheless, it is
       redundant, as can be seen from the proof of ~ issrngd .)  (Contributed
       by Mario Carneiro, 6-Oct-2015.) $)
    srng1 $p |- ( R e. *Ring -> ( .* ` .1. ) = .1. ) $=
      ( csr wcel cstf cfv crg cbs wceq srngring eqid ringidcl stafval coppr crh
      3syl co srngrhm oppr1 rhm1 syl eqtr3d ) AFGZBAHIZIZBCIZBUFAJGBAKIZGUHUILA
      MUJABUJNZEOBUJAUGCUKDUGNZPSUFUGAAQIZRTGUHBLAUGUMUMNZULUAAUMBUGBEABUMUNEUB
      UCUDUE $.
  $}

  ${
    srng0.i $e |- .* = ( *r ` R ) $.
    srng0.z $e |- .0. = ( 0g ` R ) $.
    $( The conjugate of the ring zero is zero.  (Contributed by Mario Carneiro,
       7-Oct-2015.) $)
    srng0 $p |- ( R e. *Ring -> ( .* ` .0. ) = .0. ) $=
      ( csr wcel cstf cfv crg cgrp cbs wceq srngring ringgrp grpidcl stafval co
      eqid 4syl coppr crh cghm srngrhm rhmghm oppr0 ghmid 3syl eqtr3d ) AFGZCAH
      IZIZCBIZCUJAJGAKGCALIZGULUMMANAOUNACUNSZEPCUNAUKBUODUKSZQTUJUKAAUAIZUBRGU
      KAUQUCRGULCMAUKUQUQSZUPUDAUQUKUEAUQUKCCEAUQCUREUFUGUHUI $.
  $}

  ${
    $d x y K $.  $d x y R $.  $d x y ph $.
    $( Ring base $)
    issrngd.k $e |- ( ph -> K = ( Base ` R ) ) $.
    $( Ring plus $)
    issrngd.p $e |- ( ph -> .+ = ( +g ` R ) ) $.
    $( Ring times $)
    issrngd.t $e |- ( ph -> .x. = ( .r ` R ) ) $.
    $( Involution (e.g., complex conjugate) $)
    issrngd.c $e |- ( ph -> .* = ( *r ` R ) ) $.
    issrngd.r $e |- ( ph -> R e. Ring ) $.
    $( Closure $)
    issrngd.cl $e |- ( ( ph /\ x e. K ) -> ( .* ` x ) e. K ) $.
    $( Distributive law over addition $)
    issrngd.dp $e |- ( ( ph /\ x e. K /\ y e. K )
           -> ( .* ` ( x .+ y ) ) = ( ( .* ` x ) .+ ( .* ` y ) ) ) $.
    $( Distributive law over multiplication $)
    issrngd.dt $e |- ( ( ph /\ x e. K /\ y e. K )
           -> ( .* ` ( x .x. y ) ) = ( ( .* ` y ) .x. ( .* ` x ) ) ) $.
    $( Idempotency $)
    issrngd.id $e |- ( ( ph /\ x e. K ) -> ( .* ` ( .* ` x ) ) = x ) $.
    $( Properties that determine a star ring.  (Contributed by Mario Carneiro,
       18-Nov-2013.)  (Revised by Mario Carneiro, 6-Oct-2015.) $)
    issrngd $p |- ( ph -> R e. *Ring ) $=
      ( cfv co wceq cstf coppr crh wcel ccnv csr cbs cplusg cmulr cur oppr1 crg
      eqid opprring syl cstv wral ringidcl eleq2d fveq1d fveq12d eqeq1d 3imtr3d
      cv wa ex imp eqcomd ralrimiva id fveq2 fveq2d eqeq12d sylc oveq1d eleq12d
      rspcv ralrimiv eleq1d 3expib anbi12d oveqd oveq123d ralrimivv oveq1 oveq2
      rspc2va syl21anc ringlidm syl2anc 3eqtr3d stafval 3eqtr4d opprmul syl6eqr
      oveq2d eqtr4d ringcl 3expb sylan oveqan12d opprbas oppradd staffval fmptd
      adantl ringacl isrhmd cmpt wf1o wf sylibr r19.21bi rspccva adantrl eqeq2d
      fmpt syl5ibrcom adantrr impbid f1ocnv2d simprd syl6reqr issrng sylanbrc )
      AEUARZEEUBRZUCSUDYFYFUEZTEUFUDABCEUGRZYIEUHRZYJEYGEUIRZYGUIRZEUJRZYFYMYIU
      MZYMUMZEYMYGYGUMZYOUKYKUMZYLUMZMAEULUDZYGULUDMEYGYPUNUOAYMEUPRZRZUUAYTRZY
      MYFRZYMAYMUUAYKSZUUDYTRZUUAUUBAUUDUUBUUAYKSZUUEAYMUUBUUAYKAYMYIUDZBVDZUUH
      YTRZYTRZTZBYIUQZYMUUBTZAYSUUGMYIEYMYNYOURUOZAUUKBYIAUUHYIUDZVEUUJUUHAUUOU
      UJUUHTZAUUHHUDZUUHGRZGRZUUHTZUUOUUPAUUQUUTQVFAHYIUUHIUSZAUUSUUJUUHAUURUUI
      GYTLAUUHGYTLUTZVAVBVCVGVHZVIZUUKUUMBYMYIUUHYMTZUUHYMUUJUUBUVEVJUVEUUIUUAY
      TUUHYMYTVKZVLVMVQVNZVOAUUGUUAYIUDZUUHCVDZYKSZYTRZUVIYTRZUUIYKSZTZCYIUQBYI
      UQUUEUUFTZUUNAUUGUUIYIUDZBYIUQUVHUUNAUVPBYIAUUQUURHUDZUUOUVPAUUQUVQNVFUVA
      AUURUUIHYIUVBIVPVCZVRUVPUVHBYMYIUVEUUIUUAYIUVFVSVQVNZAUVNBCYIYIAUUQUVIHUD
      ZVEZUUHUVIFSZGRZUVIGRZUURFSZTZUUOUVIYIUDZVEZUVNAUUQUVTUWFPVTAUUQUUOUVTUWG
      UVAAHYIUVIIUSWAZAUWCUVKUWEUVMAUWBUVJGYTLAFYKUUHUVIKWBVAAUWDUVLUURUUIFYKKA
      UVIGYTLUTZUVBWCVMVCZWDUVNUVOYMUVIYKSZYTRZUVLUUAYKSZTBCYMUUAYIYIUVEUVKUWMU
      VMUWNUVEUVJUWLYTUUHYMUVIYKWEVLUVEUUIUUAUVLYKUVFWPVMUVIUUATZUWMUUEUWNUUFUW
      OUWLUUDYTUVIUUAYMYKWFVLUWOUVLUUBUUAYKUVIUUAYTVKVOVMWGWHWQAYSUVHUUDUUATMUV
      SYIEYKYMUUAYNYQYOWIWJZAUUDUUAYTUWPVLWKAUUGUUCUUATUUNYMYIEYFYTYNYTUMZYFUMZ
      WLUOUVGWMAUWHVEZUVKUUIUVLYLSZUVJYFRZUUHYFRZUVIYFRZYLSZUWSUVKUVMUWTAUWHUVN
      UWKVGYIEYLYKYGUUIUVLYNYQYPYRWNWOUWSUVJYIUDZUXAUVKTAYSUWHUXEMYSUUOUWGUXEYI
      EYKUUHUVIYNYQWRWSWTUVJYIEYFYTYNUWQUWRWLUOUWHUXDUWTTAUUOUWGUXBUUIUXCUVLYLU
      UHYIEYFYTYNUWQUWRWLZUVIYIEYFYTYNUWQUWRWLZXAXFWMYIEYGYPYNXBYJUMZYJEYGYPUXH
      XCABYIUUIYIYFAUUOUVPUVRVGZBYIEYFYTYNUWQUWRXDZXEZUWSUUHUVIYJSZYTRZUUIUVLYJ
      SZUXLYFRZUXBUXCYJSZAUWHUXMUXNTZAUWAUUHUVIDSZGRZUURUWDDSZTZUWHUXQAUUQUVTUY
      AOVTUWIAUXSUXMUXTUXNAUXRUXLGYTLADYJUUHUVIJWBVAAUURUUIUWDUVLDYJJUVBUWJWCVM
      VCVGUWSUXLYIUDZUXOUXMTAYSUWHUYBMYSUUOUWGUYBYIYJEUUHUVIYNUXHXGWSWTUXLYIEYF
      YTYNUWQUWRWLUOUWHUXPUXNTAUUOUWGUXBUUIUXCUVLYJUXFUXGXAXFWMXHAYHCYIUVLXIZYF
      AYIYIYFXJYHUYCTABCYIYIUUIUVLYFUXJUXIAUVLYIUDZCYIAYIYIYFXKUYDCYIUQUXKCYIYI
      UVLYFCYIEYFYTYNUWQUWRXDZXQXLXMUWSUUHUVLTZUVIUUITZUWSUYGUYFUVIUVLYTRZTZAUW
      GUYIUUOAUULUWGUYIUVDUUKUYIBUVIYIUUHUVITZUUHUVIUUJUYHUYJVJUYJUUIUVLYTUUHUV
      IYTVKVLVMXNWTXOUYFUUIUYHUVIUUHUVLYTVKXPXRUWSUYFUYGUUKAUUOUUKUWGUVCXSUYGUV
      LUUJUUHUVIUUIYTVKXPXRXTYAYBUYEYCEYFYGYPUWRYDYE $.
  $}

  ${
    $d .* x $.  $d a b x B $.  $d a b x R $.  $d a b x ph $.
    idsrngd.k $e |- B = ( Base ` R ) $.
    idsrngd.c $e |- .* = ( *r ` R ) $.
    idsrngd.r $e |- ( ph -> R e. CRing ) $.
    idsrngd.i $e |- ( ( ph /\ x e. B ) -> ( .* ` x ) = x ) $.
    $( A commutative ring is a star ring when the conjugate operation is the
       identity.  (Contributed by Thierry Arnoux, 19-Apr-2019.) $)
    idsrngd $p |- ( ph -> R e. *Ring ) $=
      ( cfv wceq wcel cv wa simpr fveq2d eqeq12d rspcdv mpd co va vb cplusg cbs
      cmulr a1i eqidd cstv ccrg crg crngring syl wral ralrimiva eqeltrd 3adant2
      adantr w3a cgrp ringgrp eqid grpcl syl3an1 3adant3 oveq12d eqtr4d crngcom
      ringcl 3eqtr4d eqtrd issrngd ) AUAUBDUCJZDDUEJZECCDUDJKAFUFAVLUGAVMUGEDUH
      JKAGUFADUILZDUJLZHDUKULZAUAMZCLZNZVQEJZVQCVSBMZEJZWAKZBCUMZVTVQKZAWDVRAWC
      BCIUNZUQVSWCWEBVQCAVROZVSWAVQKZNZWBVTWAVQWIWAVQEVSWHOZPWJQRSZWGUOAVRUBMZC
      LZURZVQWLVLTZEJZWOVTWLEJZVLTWNWDWPWOKZAWMWDVRAWDWMWFUQZUPZWNWCWRBWOCADUSL
      ZVRWMWOCLAVOXAVPDUTULCVLDVQWLFVLVAVBVCWNWAWOKZNZWBWPWAWOXCWAWOEWNXBOZPXDQ
      RSWNVTVQWQWLVLAVRWEWMWKVDZAWMWQWLKZVRAWMNZWDXFWSXGWCXFBWLCAWMOXGWAWLKZNZW
      BWQWAWLXIWAWLEXGXHOZPXJQRSUPZVEVFWNVQWLVMTZWLVQVMTZXLEJZWQVTVMTAVNVRWMXLX
      MKHCDVMVQWLFVMVAZVGVCWNWDXNXLKZWTWNWCXPBXLCAVOVRWMXLCLVPCDVMVQWLFXOVHVCWN
      WAXLKZNZWBXNWAXLXRWAXLEWNXQOZPXSQRSWNWQWLVTVQVMXKXEVEVIVSVTEJVTVQVSVTVQEW
      KPWKVJVK $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Left modules
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c LMod $.
  $c .sf $.

  $( Extend class notation with class of all left modules. $)
  clmod $a class LMod $.

  $( The functionalization of the scalar multiplication operation. $)
  cscaf $a class .sf $.

  ${
    $d a f g k p q r s t v w x y $.
    $( Define the class of all left modules, which are generalizations of left
       vector spaces.  A left module over a ring is an (Abelian) group
       (vectors) together with a ring (scalars) and a left scalar product
       connecting them.  (Contributed by NM, 4-Nov-2013.) $)
    df-lmod $a |- LMod = { g e. Grp | [. ( Base ` g ) / v ].
      [. ( +g ` g ) / a ]. [. ( Scalar ` g ) / f ]. [. ( .s ` g ) / s ].
      [. ( Base ` f ) / k ]. [. ( +g ` f ) / p ]. [. ( .r ` f ) / t ].
      ( f e. Ring /\ A. q e. k A. r e. k A. x e. v A. w e. v
                ( ( ( r s w ) e. v
                 /\ ( r s ( w a x ) ) = ( ( r s w ) a ( r s x ) )
                 /\ ( ( q p r ) s w ) = ( ( q s w ) a ( r s w ) )
               ) /\ ( ( ( q t r ) s w ) = ( q s ( r s w ) )
                 /\ ( ( 1r ` f ) s w ) = w ) ) ) } $.

    $( Define the functionalization of the ` .s ` operator.  This restricts the
       value of ` .s ` to the stated domain, which is necessary when working
       with restricted structures, whose operations may be defined on a larger
       set than the true base.  (Contributed by Mario Carneiro, 5-Oct-2015.) $)
    df-scaf $a |- .sf = ( g e. _V |-> ( x e. ( Base ` ( Scalar ` g ) ) ,
      y e. ( Base ` g ) |-> ( x ( .s ` g ) y ) ) ) $.
  $}

  ${
    $d a f g k p q r s v w x F $.  $d a f g k p q r s v w x K $.  $d r w x R $.
    $d a f g k p q r s v w x .+^ $.  $d a f g k p q r s v w x V $.  $d w x X $.
    $d a f g k p q r s v w x .+ $.  $d q r w x Q $.  $d a f g v W $.  $d w Y $.
    $d a f g k p q r s v w x .1. $.  $d a f g k p q r s t v w x .X. $.
    $d a f g k p q r s v w x .x. $.
    islmod.v $e |- V = ( Base ` W ) $.
    islmod.a $e |- .+ = ( +g ` W ) $.
    islmod.s $e |- .x. = ( .s ` W ) $.
    islmod.f $e |- F = ( Scalar ` W ) $.
    islmod.k $e |- K = ( Base ` F ) $.
    islmod.p $e |- .+^ = ( +g ` F ) $.
    islmod.t $e |- .X. = ( .r ` F ) $.
    islmod.u $e |- .1. = ( 1r ` F ) $.
    $( The predicate "is a left module".  (Contributed by NM, 4-Nov-2013.)
       (Revised by Mario Carneiro, 19-Jun-2014.) $)
    islmod $p |- ( W e. LMod <->
      ( W e. Grp /\ F e. Ring /\ A. q e. K A. r e. K A. x e. V A. w e. V
                ( ( ( r .x. w ) e. V
                 /\ ( r .x. ( w .+ x ) ) = ( ( r .x. w ) .+ ( r .x. x ) )
                 /\ ( ( q .+^ r ) .x. w ) = ( ( q .x. w ) .+ ( r .x. w ) )
               ) /\ ( ( ( q .X. r ) .x. w ) = ( q .x. ( r .x. w ) )
                 /\ ( .1. .x. w ) = w ) ) ) ) $=
      ( vf vs vv va vp vt vk vg clmod wcel cgrp crg cv co wceq w3a wral cur cfv
      wa cmulr wsbc cplusg cbs cvsca fveq2 syl6eqr sbceq1d sbceqbid cvv eqeltri
      csca simp3 fveq2d oveq1d eqeq1d anbi1d anbi2d 2ralbidv sbcie eleq1d simp1
      fvex eleq2d simp2 oveqd oveq2d eqeq12d eqeq2d 3anbi123d anbi12d raleqbidv
      oveq syl5bb bitrd sbcbidv sbc3ie oveq12d eqtrd bitri syl6bb elrab2 3anass
      df-lmod bitr4i ) KUJUKKULUKZHUMUKZLUNZBUNZEUOZJUKZXIXJAUNZCUOZEUOZXKXIXME
      UOZCUOZUPZMUNZXIDUOZXJEUOZXSXJEUOZXKCUOZUPZUQZXSXIFUOZXJEUOZXSXKEUOZUPZGX
      JEUOZXJUPZVAZVAZBJURAJURZLIURZMIURZVAZVAXGXHYPUQUBUNZUMUKZXIXJUCUNZUOZUDU
      NZUKZXIXJXMUEUNZUOZYTUOZUUAXIXMYTUOZUUDUOZUPZXSXIUFUNZUOZXJYTUOZXSXJYTUOZ
      UUAUUDUOZUPZUQZXSXIUGUNZUOZXJYTUOZXSUUAYTUOZUPZYRUSUTZXJYTUOZXJUPZVAZVAZB
      UUBURAUUBURZLUHUNZURMUVHURZVAZUGYRVBUTZVCZUFYRVDUTZVCZUHYRVEUTZVCZUCUIUNZ
      VFUTZVCZUBUVQVMUTZVCZUEUVQVDUTZVCZUDUVQVEUTZVCZYQUIKULUJUVQKUPZUWEUVPUCEV
      CZUBHVCZUECVCZUDJVCZYQUWFUWCUWIUDUWDJUWFUWDKVEUTZJUVQKVEVGNVHUWFUWAUWHUEU
      WBCUWFUWBKVDUTZCUVQKVDVGOVHUWFUVSUWGUBUVTHUWFUVTKVMUTZHUVQKVMVGQVHUWFUVPU
      CUVREUWFUVRKVFUTZEUVQKVFVGPVHVIVJVJVJUWJXHUUAJUKZXIXNYTUOZUUAUUGCUOZUPZUU
      LUUMUUACUOZUPZUQZYFXJYTUOZUUTUPZGXJYTUOZXJUPZVAZVAZBJURZAJURZLUVHURZMUVHU
      RZVAZUFDVCZUHIVCZUCEVCZYQUWGUXOUDUEUBJCHJUWKVKNKVEWDVLCUWLVKOKVDWDVLHUWMV
      KQKVMWDVLUUBJUPZUUDCUPZYRHUPZUQZUVPUXNUCEUXSUVNUXMUHUVOIUXSUVOHVEUTZIUXSY
      RHVEUXPUXQUXRVNZVORVHUXSUVLUXLUFUVMDUXSUVMHVDUTZDUXSYRHVDUYAVOSVHUXSUVLUV
      JUGFVCZUXLUXSUVJUGUVKFUXSUVKHVBUTZFUXSYRHVBUYAVOTVHVIUYCYSUUPUXCUVDVAZVAZ
      BUUBURZAUUBURZLUVHURMUVHURZVAZUXSUXLUVJUYJUGFFUYDVKTHVBWDVLUUQFUPZUVIUYIY
      SUYKUVGUYHMLUVHUVHUYKUVFUYFABUUBUUBUYKUVEUYEUUPUYKUVAUXCUVDUYKUUSUXBUUTUY
      KUURYFXJYTXSXIUUQFWNVPVQVRVSVTVTVSWAUXSYSXHUYIUXKUXSYRHUMUYAWBUXSUYHUXIML
      UVHUVHUXSUYGUXHAUUBJUXPUXQUXRWCZUXSUYFUXGBUUBJUYLUXSUUPUXAUYEUXFUXSUUCUWO
      UUIUWRUUOUWTUXSUUBJUUAUYLWEUXSUUFUWPUUHUWQUXSUUEXNXIYTUXSUUDCXJXMUXPUXQUX
      RWFZWGWHUXSUUDCUUAUUGUYMWGWIUXSUUNUWSUULUXSUUDCUUMUUAUYMWGWJWKUXSUVDUXEUX
      CUXSUVCUXDXJUXSUVBGXJYTUXSUVBHUSUTGUXSYRHUSUYAVOUAVHVPVQVSWLWMWMVTWLWOWPV
      JVJWQWRUXLYQUCUHUFEIDEUWNVKPKVFWDVLIUXTVKRHVEWDVLDUYBVKSHVDWDVLYTEUPZUVHI
      UPZUUJDUPZUQZUXKYPXHUYQUXJYOMUVHIUYNUYOUYPWFZUYQUXIYNLUVHIUYRUYQUXGYMABJJ
      UYQUXAYEUXFYLUYQUWOXLUWRXRUWTYDUYQUUAXKJUYQYTEXIXJUYNUYOUYPWCZWGZWBUYQUWP
      XOUWQXQUYQYTEXIXNUYSWGUYQUUAXKUUGXPCUYTUYQYTEXIXMUYSWGWSWIUYQUULYAUWSYCUY
      QUULXTXJYTUOYAUYQUUKXTXJYTUYQUUJDXSXIUYNUYOUYPVNWGVPUYQYTEXTXJUYSWGWTUYQU
      UMYBUUAXKCUYQYTEXSXJUYSWGUYTWSWIWKUYQUXCYIUXEYKUYQUXBYGUUTYHUYQYTEYFXJUYS
      WGUYQUUTXSXKYTUOYHUYQUUAXKXSYTUYTWHUYQYTEXSXKUYSWGWTWIUYQUXDYJXJUYQYTEGXJ
      UYSWGVQWLWLVTWMWMVSWRXAXBABUDUGUBUIUHUCLMUFUEXEXCXGXHYPXDXF $.

    $( Lemma for properties of a left module.  (Contributed by NM, 8-Dec-2013.)
       (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodlema $p |- ( ( W e. LMod /\ ( Q e. K /\ R e. K )
          /\ ( X e. V /\ Y e. V ) ) ->
                ( ( ( R .x. Y ) e. V
                 /\ ( R .x. ( Y .+ X ) ) = ( ( R .x. Y ) .+ ( R .x. X ) )
                 /\ ( ( Q .+^ R ) .x. Y ) = ( ( Q .x. Y ) .+ ( R .x. Y ) )
               ) /\ ( ( ( Q .X. R ) .x. Y ) = ( Q .x. ( R .x. Y ) )
                 /\ ( .1. .x. Y ) = Y ) ) ) $=
      ( vw vx vr vq clmod wcel wa co wceq w3a cv wral cgrp islmod simp3bi oveq1
      crg oveq1d eqeq12d 3anbi3d anbi1d anbi12d 2ralbidv eleq1d oveq2 3anbi123d
      oveq12d oveq2d rspc2v mpan9 3anbi2d id syl5com 3impia ) KUFUGZCIUGDIUGUHZ
      LJUGMJUGUHZDMEUIZJUGZDMLAUIZEUIZVSDLEUIZAUIZUJZCDBUIZMEUIZCMEUIZVSAUIZUJZ
      UKZCDFUIZMEUIZCVSEUIZUJZGMEUIZMUJZUHZUHZVPVQUHDUBULZEUIZJUGZDWTUCULZAUIZE
      UIZXADXCEUIZAUIZUJZWFWTEUIZCWTEUIZXAAUIZUJZUKZWLWTEUIZCXAEUIZUJZGWTEUIZWT
      UJZUHZUHZUBJUMUCJUMZVRWSVPUDULZWTEUIZJUGZYBXDEUIZYCYBXCEUIZAUIZUJZUEULZYB
      BUIZWTEUIZYIWTEUIZYCAUIZUJZUKZYIYBFUIZWTEUIZYIYCEUIZUJZXRUHZUHZUBJUMUCJUM
      ZUDIUMUEIUMZVQYAVPKUNUGHURUGUUCUCUBABEFGHIJKUDUENOPQRSTUAUOUPUUBYAYDYHCYB
      BUIZWTEUIZXJYCAUIZUJZUKZCYBFUIZWTEUIZCYCEUIZUJZXRUHZUHZUBJUMUCJUMUEUDCDII
      YICUJZUUAUUNUCUBJJUUOYOUUHYTUUMUUOYNUUGYDYHUUOYKUUEYMUUFUUOYJUUDWTEYICYBB
      UQUSUUOYLXJYCAYICWTEUQUSUTVAUUOYSUULXRUUOYQUUJYRUUKUUOYPUUIWTEYICYBFUQUSY
      ICYCEUQUTVBVCVDYBDUJZUUNXTUCUBJJUUPUUHXMUUMXSUUPYDXBYHXHUUGXLUUPYCXAJYBDW
      TEUQZVEUUPYEXEYGXGYBDXDEUQUUPYCXAYFXFAUUQYBDXCEUQVHUTUUPUUEXIUUFXKUUPUUDW
      FWTEYBDCBVFUSUUPYCXAXJAUUQVIUTVGUUPUULXPXRUUPUUJXNUUKXOUUPUUIWLWTEYBDCFVF
      USUUPYCXACEUUQVIUTVBVCVDVJVKXTWSXBDWTLAUIZEUIZXAWCAUIZUJZXLUKZXSUHUCUBLMJ
      JXCLUJZXMUVBXSUVCXHUVAXBXLUVCXEUUSXGUUTUVCXDUURDEXCLWTAVFVIUVCXFWCXAAXCLD
      EVFVIUTVLVBWTMUJZUVBWKXSWRUVDXBVTUVAWEXLWJUVDXAVSJWTMDEVFZVEUVDUUSWBUUTWD
      UVDUURWADEWTMLAUQVIUVDXAVSWCAUVEUSUTUVDXIWGXKWIWTMWFEVFUVDXJWHXAVSAWTMCEV
      FUVEVHUTVGUVDXPWOXRWQUVDXNWMXOWNWTMWLEVFUVDXAVSCEUVEVIUTUVDXQWPWTMWTMGEVF
      UVDVMUTVCVCVJVNVO $.
  $}

  ${
    $d y z .+^ $.  $d r u w x y z B $.  $d r u w x y z ph $.  $d u w x y z V $.
    $d x y z .+ $.  $d r u w x W $.  $d x y z .x. $.  $d y z .X. $.
    $d x .1. $.
    islmodd.v $e |- ( ph -> V = ( Base ` W ) ) $.
    islmodd.a $e |- ( ph -> .+ = ( +g ` W ) ) $.
    islmodd.f $e |- ( ph -> F = ( Scalar ` W ) ) $.
    islmodd.s $e |- ( ph -> .x. = ( .s ` W ) ) $.
    islmodd.b $e |- ( ph -> B = ( Base ` F ) ) $.
    islmodd.p $e |- ( ph -> .+^ = ( +g ` F ) ) $.
    islmodd.t $e |- ( ph -> .X. = ( .r ` F ) ) $.
    islmodd.u $e |- ( ph -> .1. = ( 1r ` F ) ) $.
    islmodd.r $e |- ( ph -> F e. Ring ) $.
    $( Group operations $)
    islmodd.l $e |- ( ph -> W e. Grp ) $.
    $( Scalar product operation $)
    islmodd.w $e |- ( ( ph /\ x e. B /\ y e. V ) -> ( x .x. y ) e. V ) $.
    islmodd.c $e |- ( ( ph /\ ( x e. B /\ y e. V /\ z e. V ) )
        -> ( x .x. ( y .+ z ) ) = ( ( x .x. y ) .+ ( x .x. z ) ) ) $.
    islmodd.d $e |- ( ( ph /\ ( x e. B /\ y e. B /\ z e. V ) )
        -> ( ( x .+^ y ) .x. z ) = ( ( x .x. z ) .+ ( y .x. z ) ) ) $.
    islmodd.e $e |- ( ( ph /\ ( x e. B /\ y e. B /\ z e. V ) )
        -> ( ( x .X. y ) .x. z ) = ( x .x. ( y .x. z ) ) ) $.
    islmodd.g $e |- ( ( ph /\ x e. V ) -> ( .1. .x. x ) = x ) $.
    $( Properties that determine a left module.  See note in ~ isgrpd2
       regarding the ` ph ` on hypotheses that name structure components.
       (Contributed by Mario Carneiro, 22-Jun-2014.) $)
    islmodd $p |- ( ph -> W e. LMod ) $=
      ( vr vw vu cgrp wcel csca cfv crg cv cvsca co cbs cplusg w3a cmulr cur wa
      wceq wral clmod eqeltrrd 3expb ralrimivva weq oveq1 eleq1d oveq2 ad2ant2l
      wi rspc2v ralrimivvva oveq12d eqeq12d oveq2d oveq1d rspc3v 3com23 adantll
      mpan9 simpll 3exp2 imp43 sylan2 simprlr simprrr syl2anc 3jca ralrimiva id
      rspcv ad2antll jca32 anassrs eqtrd oveqd eleq12d eqidd oveq123d 3anbi123d
      mpd fveq2d eqeq1d anbi12d raleqbidv mpbid eqid islmod syl3anbrc ) AMULUMM
      UNUOZUPUMUIUQZUJUQZMURUOZUSZMUTUOZUMZXRXSUKUQZMVAUOZUSZXTUSZYAXRYDXTUSZYE
      USZVFZBUQZXRXQVAUOZUSZXSXTUSZYKXSXTUSZYAYEUSZVFZVBZYKXRXQVCUOZUSZXSXTUSZY
      KYAXTUSZVFZXQVDUOZXSXTUSZXSVFZVEZVEZUJYBVGZUKYBVGZUIXQUTUOZVGZBUUKVGZMVHU
      MUCAKXQUPPUBVIAXRXSHUSZLUMZXRXSYDFUSZHUSZUUNXRYDHUSZFUSZVFZYKXRGUSZXSHUSZ
      YKXSHUSZUUNFUSZVFZVBZYKXRIUSZXSHUSZYKUUNHUSZVFZJXSHUSZXSVFZVEZVEZUJLVGZUK
      LVGZUIEVGZBEVGUUMAUVPBUIEEAYKEUMZXREUMZVEZVEUVNUKUJLLAUVTYDLUMZXSLUMZVEZU
      VNAUVTUWCVEZVEZUVFUVJUVLUWEUUOUUTUVEAYKCUQZHUSZLUMZCLVGBEVGZUWDUUOAUWHBCE
      LAUVRUWFLUMUWHUDVJVKUVSUWBUWIUUOVQUVRUWAUWHUUOXRUWFHUSZLUMBCXRXSELBUIVLZU
      WGUWJLYKXRUWFHVMZVNCUJVLZUWJUUNLUWFXSXRHVOZVNVRVPWGAYKUWFDUQZFUSZHUSZUWGY
      KUWOHUSZFUSZVFZDLVGCLVGBEVGZUWDUUTAUWTBCDELLUEVSUVSUWCUXAUUTVQZUVRUVSUWAU
      WBUXBUVSUWBUWAUXBUWTUUTXRUWPHUSZUWJXRUWOHUSZFUSZVFXRXSUWOFUSZHUSZUUNUXDFU
      SZVFBCDXRXSYDELLUWKUWQUXCUWSUXEYKXRUWPHVMUWKUWGUWJUWRUXDFUWLYKXRUWOHVMVTW
      AUWMUXCUXGUXEUXHUWMUWPUXFXRHUWFXSUWOFVMWBUWMUWJUUNUXDFUWNWCWADUKVLZUXGUUQ
      UXHUUSUXIUXFUUPXRHUWOYDXSFVOWBUXIUXDUURUUNFUWOYDXRHVOWBWAWDWEVJWFWGUWEYKU
      WFGUSZUWOHUSZUWRUWFUWOHUSZFUSZVFZDLVGCEVGZUVEUWDAUVRUXOUVRUVSUWCWHZAUVRVE
      ZUXNCDELAUVRUWFEUMZUWOLUMZUXNAUVRUXRUXSUXNUFWIWJVKWKUWEUVSUWBUXOUVEVQAUVR
      UVSUWCWLZAUVTUWAUWBWMZUXNUVEUVAUWOHUSZUWRUXDFUSZVFCDXRXSELCUIVLZUXKUYBUXM
      UYCUYDUXJUVAUWOHUWFXRYKGVOWCUYDUXLUXDUWRFUWFXRUWOHVMZWBWADUJVLZUYBUVBUYCU
      VDUWOXSUVAHVOUYFUWRUVCUXDUUNFUWOXSYKHVOUWOXSXRHVOZVTWAVRWNXHWOUWEYKUWFIUS
      ZUWOHUSZYKUXLHUSZVFZDLVGCEVGZUVJUWDAUVRUYLUXPUXQUYKCDELAUVRUXRUXSUYKAUVRU
      XRUXSUYKUGWIWJVKWKUWEUVSUWBUYLUVJVQUXTUYAUYKUVJUVGUWOHUSZYKUXDHUSZVFCDXRX
      SELUYDUYIUYMUYJUYNUYDUYHUVGUWOHUWFXRYKIVOWCUYDUXLUXDYKHUYEWBWAUYFUYMUVHUY
      NUVIUWOXSUVGHVOUYFUXDUUNYKHUYGWBWAVRWNXHAJYKHUSZYKVFZBLVGZUWDUVLAUYPBLUHW
      PUWBUYQUVLVQUVTUWAUYPUVLBXSLBUJVLZUYOUVKYKXSYKXSJHVOUYRWQWAWRWSWGWTXAVKVK
      AUVQUULBEUUKAEKUTUOUUKRAKXQUTPXIXBZAUVPUUJUIEUUKUYSAUVOUUIUKLYBNAUVNUUHUJ
      LYBNAUVFYRUVMUUGAUUOYCUUTYJUVEYQAUUNYALYBAHXTXRXSQXCZNXDAUUQYGUUSYIAXRXRU
      UPYFHXTQAXRXEAFYEXSYDOXCXFAUUNYAUURYHFYEOUYTAHXTXRYDQXCXFWAAUVBYNUVDYPAUV
      AYMXSXSHXTQAGYLYKXRAGKVAUOYLSAKXQVAPXIXBXCAXSXEZXFAUVCYOUUNYAFYEOAHXTYKXS
      QXCUYTXFWAXGAUVJUUCUVLUUFAUVHUUAUVIUUBAUVGYTXSXSHXTQAIYSYKXRAIKVCUOYSTAKX
      QVCPXIXBXCVUAXFAYKYKUUNYAHXTQAYKXEUYTXFWAAUVKUUEXSAJUUDXSXSHXTQAJKVDUOUUD
      UAAKXQVDPXIXBVUAXFXJXKXKXLXLXLXLXMUKUJYEYLXTYSUUDXQUUKYBMUIBYBXNYEXNXTXNX
      QXNUUKXNYLXNYSXNUUDXNXOXP $.
  $}

  ${
    $d q r w x F $.  $d q r w x W $.
    $( A left module is a group.  (Contributed by NM, 8-Dec-2013.)  (Revised by
       Mario Carneiro, 25-Jun-2014.) $)
    lmodgrp $p |- ( W e. LMod -> W e. Grp ) $=
      ( vr vw vx vq clmod wcel cgrp csca cfv crg cv cvsca co cbs cplusg wceq wa
      wral eqid w3a cmulr cur islmod simp1bi ) AFGAHGAIJZKGBLZCLZAMJZNZAOJZGUGU
      HDLZAPJZNUINUJUGULUINUMNQELZUGUFPJZNUHUINUNUHUINUJUMNQUAUNUGUFUBJZNUHUINU
      NUJUINQUFUCJZUHUINUHQRRCUKSDUKSBUFOJZSEURSDCUMUOUIUPUQUFURUKABEUKTUMTUITU
      FTURTUOTUPTUQTUDUE $.

    lmodring.1 $e |- F = ( Scalar ` W ) $.
    $( The scalar component of a left module is a ring.  (Contributed by NM,
       8-Dec-2013.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodring $p |- ( W e. LMod -> F e. Ring ) $=
      ( vr vw vx vq clmod wcel cgrp crg cv cfv co cbs cplusg wceq wa wral eqid
      cvsca w3a cmulr cur islmod simp2bi ) BHIBJIAKIDLZELZBUAMZNZBOMZIUGUHFLZBP
      MZNUINUJUGULUINUMNQGLZUGAPMZNUHUINUNUHUINUJUMNQUBUNUGAUCMZNUHUINUNUJUINQA
      UDMZUHUINUHQRREUKSFUKSDAOMZSGURSFEUMUOUIUPUQAURUKBDGUKTUMTUITCURTUOTUPTUQ
      TUEUF $.

    $( The scalar component of a left module is an additive group.
       (Contributed by NM, 8-Dec-2013.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lmodfgrp $p |- ( W e. LMod -> F e. Grp ) $=
      ( clmod wcel crg cgrp lmodring ringgrp syl ) BDEAFEAGEABCHAIJ $.
  $}

  ${
    lmodbn0.b $e |- B = ( Base ` W ) $.
    $( The base set of a left module is nonempty.  (Contributed by NM,
       8-Dec-2013.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodbn0 $p |- ( W e. LMod -> B =/= (/) ) $=
      ( clmod wcel cgrp c0 wne lmodgrp grpbn0 syl ) BDEBFEAGHBIABCJK $.
  $}

  ${
    lmodacl.f $e |- F = ( Scalar ` W ) $.
    lmodacl.k $e |- K = ( Base ` F ) $.
    lmodacl.p $e |- .+ = ( +g ` F ) $.
    $( Closure of ring addition for a left module.  (Contributed by NM,
       14-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodacl $p |- ( ( W e. LMod /\ X e. K /\ Y e. K ) -> ( X .+ Y ) e. K ) $=
      ( clmod wcel cgrp co lmodfgrp grpcl syl3an1 ) DJKBLKECKFCKEFAMCKBDGNCABEF
      HIOP $.
  $}

  ${
    lmodmcl.f $e |- F = ( Scalar ` W ) $.
    lmodmcl.k $e |- K = ( Base ` F ) $.
    lmodmcl.t $e |- .x. = ( .r ` F ) $.
    $( Closure of ring multiplication for a left module.  (Contributed by NM,
       14-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodmcl $p |- ( ( W e. LMod /\ X e. K /\ Y e. K ) -> ( X .x. Y ) e. K ) $=
      ( clmod wcel crg co lmodring ringcl syl3an1 ) DJKBLKECKFCKEFAMCKBDGNCBAEF
      HIOP $.
  $}

  ${
    lmodsn0.f $e |- F = ( Scalar ` W ) $.
    lmodsn0.b $e |- B = ( Base ` F ) $.
    $( The set of scalars in a left module is nonempty.  (Contributed by NM,
       8-Dec-2013.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodsn0 $p |- ( W e. LMod -> B =/= (/) ) $=
      ( clmod wcel cgrp c0 wne lmodfgrp grpbn0 syl ) CFGBHGAIJBCDKABELM $.
  $}

  ${
    lmodvacl.v $e |- V = ( Base ` W ) $.
    lmodvacl.a $e |- .+ = ( +g ` W ) $.
    $( Closure of vector addition for a left module.  (Contributed by NM,
       8-Dec-2013.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodvacl $p |- ( ( W e. LMod /\ X e. V /\ Y e. V ) -> ( X .+ Y ) e. V ) $=
      ( clmod wcel cgrp co lmodgrp grpcl syl3an1 ) CHICJIDBIEBIDEAKBICLBACDEFGM
      N $.

    $( Left module vector sum is associative.  (Contributed by NM,
       10-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodass $p |- ( ( W e. LMod /\ ( X e. V /\ Y e. V /\ Z e. V ) ) ->
                    ( ( X .+ Y ) .+ Z ) = ( X .+ ( Y .+ Z ) ) ) $=
      ( clmod wcel cgrp w3a co wceq lmodgrp grpass sylan ) CIJCKJDBJEBJFBJLDEAM
      FAMDEFAMAMNCOBACDEFGHPQ $.

    $( Left cancellation law for vector sum.  (Contributed by NM, 12-Jan-2014.)
       (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodlcan $p |- ( ( W e. LMod /\ ( X e. V /\ Y e. V /\ Z e. V ) ) ->
                     ( ( Z .+ X ) = ( Z .+ Y ) <-> X = Y ) ) $=
      ( clmod wcel cgrp w3a co wceq wb lmodgrp grplcan sylan ) CIJCKJDBJEBJFBJL
      FDAMFEAMNDENOCPBACDEFGHQR $.
  $}

  ${
    lmodvscl.v $e |- V = ( Base ` W ) $.
    lmodvscl.f $e |- F = ( Scalar ` W ) $.
    lmodvscl.s $e |- .x. = ( .s ` W ) $.
    lmodvscl.k $e |- K = ( Base ` F ) $.
    $( Closure of scalar product for a left module.  ( ~ hvmulcl analog.)
       (Contributed by NM, 8-Dec-2013.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lmodvscl $p |- ( ( W e. LMod /\ R e. K /\ X e. V ) -> ( R .x. X ) e. V ) $=
      ( wcel wa co pm4.24 w3a cplusg cfv wceq eqid clmod biid cur simpld simp1d
      cmulr lmodlema syl3anb ) FUALZUIADLZUJUJMZGELZULULMZAGBNZELZUIUBUJOULOUIU
      KUMPZUOAGGFQRZNBNUNUNUQNZSZAACQRZNGBNURSZUPUOUSVAPAACUFRZNGBNAUNBNSCUCRZG
      BNGSMUQUTAABVBVCCDEFGGHUQTJIKUTTVBTVCTUGUDUEUH $.
  $}

  ${
    $d w x y B $.  $d w x y K $.  $d w x y .x. $.  $d w x y W $.  $d x y X $.
    $d x y Y $.
    scaffval.b $e |- B = ( Base ` W ) $.
    scaffval.f $e |- F = ( Scalar ` W ) $.
    scaffval.k $e |- K = ( Base ` F ) $.
    scaffval.a $e |- .xb = ( .sf ` W ) $.
    ${
      scaffval.s $e |- .x. = ( .s ` W ) $.
      $( The scalar multiplication operation as a function.  (Contributed by
         Mario Carneiro, 5-Oct-2015.) $)
      scaffval $p |- .xb = ( x e. K , y e. B |-> ( x .x. y ) ) $=
        ( cfv cvv wcel wceq cbs syl6eqr c0 vw cscaf cv cmpt2 cvsca fveq2 fveq2d
        co csca oveqd mpt2eq123dv df-scaf cxp crn csn cun wf wral df-ov eqeltri
        cop fvrn0 rgen2w eqid fmpt2 mpbi fvex xpex rnex p0ex unex fex2 mp3an wn
        fvmpt fvprc mpt20 syl5eq base0 mpt2eq12 sylancl eqtr4d pm2.61i eqtri )
        DHUBNZABGCAUCZBUCZEUHZUDZLHOPZWEWIQUAHABUAUCZUINZRNZWKRNZWFWGWKUENZUHZU
        DWIOUBWKHQZABWMWNWPGCWHWQWMFRNZGWQWLFRWQWLHUINZFWKHUIUFJSUGKSWQWNHRNZCW
        KHRUFISWQWOEWFWGWQWOHUENZEWKHUEUFMSUJUKABUAULGCUMZEUNZTUOZUPZWIUQZXBOPX
        EOPWIOPWHXEPZBCURAGURXFXGABGCWHWFWGVAZENXEWFWGEUSEXHVBUTVCABGCWHXEWIWIV
        DVEVFGCGWROKFRVGUTCWTOIHRVGUTVHXCXDEEXAOMHUEVGUTVIVJVKXBXEWIOOVLVMVOWJV
        NZWEABTCWHUDZWIXIWETXJHUBVPABCWHVQSXIGTQCCQWIXJQXIGTRNZTXIGWRXKKXIFTRXI
        FWSTJHUIVPVRUGVRVSSCVDABGCTCWHVTWAWBWCWD $.

      $( The scalar multiplication operation as a function.  (Contributed by
         Mario Carneiro, 5-Oct-2015.) $)
      scafval $p |- ( ( X e. K /\ Y e. B ) -> ( X .xb Y ) = ( X .x. Y ) ) $=
        ( vx vy cv co oveq12 scaffval ovex ovmpt2a ) NOGHEANPZOPZCQGHCQBUBGUCHC
        RNOABCDEFIJKLMSGHCTUA $.

      $( If the scalar multiplication operation is already a function, the
         functionalization of it is equal to the original operation.
         (Contributed by Mario Carneiro, 5-Oct-2015.) $)
      scafeq $p |- ( .x. Fn ( K X. B ) -> .xb = .x. ) $=
        ( vx vy cxp wfn cv co cmpt2 wceq fnov biimpi scaffval syl6reqr ) CEANOZ
        CLMEALPMPCQRZBUDCUESLMEACTUALMABCDEFGHIJKUBUC $.
    $}

    $( The scalar multiplication operation is a function.  (Contributed by
       Mario Carneiro, 5-Oct-2015.) $)
    scaffn $p |- .xb Fn ( K X. B ) $=
      ( vx vy cv cvsca cfv co eqid scaffval ovex fnmpt2i ) JKDAJLZKLZEMNZOBJKAB
      UBCDEFGHIUBPQTUAUBRS $.

    $( The scalar multiplication operation is a function.  (Contributed by
       Mario Carneiro, 5-Oct-2015.) $)
    lmodscaf $p |- ( W e. LMod -> .xb : ( K X. B ) --> B ) $=
      ( vx vy clmod wcel cv cvsca cfv co wral cxp wf lmodvscl 3expb fmpt2 sylib
      eqid ralrimivva scaffval ) ELMZJNZKNZEOPZQZAMZKARJDRDASABTUHUMJKDAUHUIDMU
      JAMUMUIUKCDAEUJFGUKUEZHUAUBUFJKDAULABJKABUKCDEFGHIUNUGUCUD $.
  $}

  ${
    lmodvsdi.v $e |- V = ( Base ` W ) $.
    lmodvsdi.a $e |- .+ = ( +g ` W ) $.
    lmodvsdi.f $e |- F = ( Scalar ` W ) $.
    lmodvsdi.s $e |- .x. = ( .s ` W ) $.
    lmodvsdi.k $e |- K = ( Base ` F ) $.
    $( Distributive law for scalar product (left-distributivity).
       ( ~ ax-hvdistr1 analog.)  (Contributed by NM, 10-Jan-2014.)  (Revised by
       Mario Carneiro, 22-Sep-2015.) $)
    lmodvsdi $p |- ( ( W e. LMod /\ ( R e. K /\ X e. V /\ Y e. V ) ) ->
                     ( R .x. ( X .+ Y ) ) = ( ( R .x. X ) .+ ( R .x. Y ) ) ) $=
      ( wcel co wceq wa cfv eqid clmod wi w3a cplusg cur lmodlema simpld simp2d
      cmulr 3expia anabsan2 exp4b com34 3imp2 ) GUAOZBEOZHFOZIFOZBHIAPCPBHCPZBI
      CPAPQZUOUPURUQUTUOUPURUQUTUOUPURUQRZUTUBUOUPUPRZVAUTUOVBVAUCZUSFOZUTBBDUD
      SZPHCPUSUSAPQZVCVDUTVFUCBBDUISZPHCPBUSCPQDUESZHCPHQRAVEBBCVGVHDEFGIHJKMLN
      VETVGTVHTUFUGUHUJUKULUMUN $.
  $}

  ${
    lmodvsdir.v $e |- V = ( Base ` W ) $.
    lmodvsdir.a $e |- .+ = ( +g ` W ) $.
    lmodvsdir.f $e |- F = ( Scalar ` W ) $.
    lmodvsdir.s $e |- .x. = ( .s ` W ) $.
    lmodvsdir.k $e |- K = ( Base ` F ) $.
    lmodvsdir.p $e |- .+^ = ( +g ` F ) $.
    $( Distributive law for scalar product (right-distributivity).
       ( ~ ax-hvdistr1 analog.)  (Contributed by NM, 10-Jan-2014.)  (Revised by
       Mario Carneiro, 22-Sep-2015.) $)
    lmodvsdir $p |- ( ( W e. LMod /\ ( Q e. K /\ R e. K /\ X e. V ) ) ->
                    ( ( Q .+^ R ) .x. X ) = ( ( Q .x. X ) .+ ( R .x. X ) ) ) $=
      ( wcel co wceq wa clmod w3a cmulr cfv cur lmodlema simpld simp3d anabsan2
      eqid 3expa exp42 3imp2 ) IUAQZCGQZDGQZJHQZCDBRJERCJERDJERZARSZUNUOUPUQUSU
      NUOUPTZTUQUSUNUTUQUQTZUSUNUTVAUBZURHQZDJJARERURURARSZUSVBVCVDUSUBCDFUCUDZ
      RJERCURERSFUEUDZJERJSTABCDEVEVFFGHIJJKLNMOPVEUJVFUJUFUGUHUKUIULUM $.
  $}

  ${
    lmodvsass.v $e |- V = ( Base ` W ) $.
    lmodvsass.f $e |- F = ( Scalar ` W ) $.
    lmodvsass.s $e |- .x. = ( .s ` W ) $.
    lmodvsass.k $e |- K = ( Base ` F ) $.
    lmodvsass.t $e |- .X. = ( .r ` F ) $.
    $( Associative law for scalar product.  ( ~ ax-hvmulass analog.)
       (Contributed by NM, 10-Jan-2014.)  (Revised by Mario Carneiro,
       22-Sep-2015.) $)
    lmodvsass $p |- ( ( W e. LMod /\ ( Q e. K /\ R e. K /\ X e. V ) ) ->
                      ( ( Q .X. R ) .x. X ) = ( Q .x. ( R .x. X ) ) ) $=
      ( wcel co wceq wa cfv eqid clmod w3a cplusg cur lmodlema simprld anabsan2
      3expa exp42 3imp2 ) HUAOZAFOZBFOZIGOZABDPICPABICPZCPQZUKULUMUNUPUKULUMRZR
      UNUPUKUQUNUNRZUPUKUQURUBUOGOBIIHUCSZPCPUOUOUSPQABEUCSZPICPAICPUOUSPQUBUPE
      UDSZICPIQUSUTABCDVAEFGHIIJUSTLKMUTTNVATUEUFUHUGUIUJ $.
  $}

  ${
    lmod0cl.f $e |- F = ( Scalar ` W ) $.
    lmod0cl.k $e |- K = ( Base ` F ) $.
    lmod0cl.z $e |- .0. = ( 0g ` F ) $.
    $( The ring zero in a left module belongs to the ring base set.
       (Contributed by NM, 11-Jan-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lmod0cl $p |- ( W e. LMod -> .0. e. K ) $=
      ( clmod wcel crg lmodring ring0cl syl ) CHIAJIDBIACEKBADFGLM $.
  $}

  ${
    lmod1cl.f $e |- F = ( Scalar ` W ) $.
    lmod1cl.k $e |- K = ( Base ` F ) $.
    lmod1cl.u $e |- .1. = ( 1r ` F ) $.
    $( The ring unit in a left module belongs to the ring base set.
       (Contributed by NM, 11-Jan-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lmod1cl $p |- ( W e. LMod -> .1. e. K ) $=
      ( clmod wcel crg lmodring ringidcl syl ) DHIBJIACIBDEKCBAFGLM $.
  $}

  ${
    lmodvs1.v $e |- V = ( Base ` W ) $.
    lmodvs1.f $e |- F = ( Scalar ` W ) $.
    lmodvs1.s $e |- .x. = ( .s ` W ) $.
    lmodvs1.u $e |- .1. = ( 1r ` F ) $.
    $( Scalar product with ring unit.  ( ~ ax-hvmulid analog.)  (Contributed by
       NM, 10-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodvs1 $p |- ( ( W e. LMod /\ X e. V ) -> ( .1. .x. X ) = X ) $=
      ( clmod wcel wa cbs cfv co wceq eqid w3a cplusg simpl lmod1cl simpr cmulr
      adantr lmodlema simprrd syl122anc ) EKLZFDLZMUIBCNOZLZULUJUJBFAPZFQZUIUJU
      AUIULUJBCUKEHUKRZJUBUEZUPUIUJUCZUQUIULULMUJUJMSUMDLBFFETOZPAPUMUMURPZQBBC
      TOZPFAPUSQSBBCUDOZPFAPBUMAPQUNURUTBBAVABCUKDEFFGURRIHUOUTRVARJUFUGUH $.
  $}

  ${
    0vcl.v $e |- V = ( Base ` W ) $.
    0vcl.z $e |- .0. = ( 0g ` W ) $.
    $( The zero vector is a vector.  ( ~ ax-hv0cl analog.)  (Contributed by NM,
       10-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmod0vcl $p |- ( W e. LMod -> .0. e. V ) $=
      ( clmod wcel cgrp lmodgrp grpidcl syl ) BFGBHGCAGBIABCDEJK $.
  $}

  ${
    0vlid.v $e |- V = ( Base ` W ) $.
    0vlid.a $e |- .+ = ( +g ` W ) $.
    0vlid.z $e |- .0. = ( 0g ` W ) $.
    $( Left identity law for the zero vector.  ( ~ hvaddid2 analog.)
       (Contributed by NM, 10-Jan-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lmod0vlid $p |- ( ( W e. LMod /\ X e. V ) -> ( .0. .+ X ) = X ) $=
      ( clmod wcel cgrp co wceq lmodgrp grplid sylan ) CIJCKJDBJEDALDMCNBACDEFG
      HOP $.

    $( Right identity law for the zero vector.  ( ~ ax-hvaddid analog.)
       (Contributed by NM, 10-Jan-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lmod0vrid $p |- ( ( W e. LMod /\ X e. V ) -> ( X .+ .0. ) = X ) $=
      ( clmod wcel cgrp co wceq lmodgrp grprid sylan ) CIJCKJDBJDEALDMCNBACDEFG
      HOP $.

    $( Identity equivalent to the value of the zero vector.  Provides a
       convenient way to compute the value.  (Contributed by NM, 9-Mar-2014.)
       (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmod0vid $p |- ( ( W e. LMod /\ X e. V )
        -> ( ( X .+ X ) = X <-> .0. = X ) ) $=
      ( clmod wcel cgrp co wceq wb lmodgrp grpid sylan ) CIJCKJDBJDDALDMEDMNCOB
      ACDEFGHPQ $.
  $}

  ${
    lmod0vs.v $e |- V = ( Base ` W ) $.
    lmod0vs.f $e |- F = ( Scalar ` W ) $.
    lmod0vs.s $e |- .x. = ( .s ` W ) $.
    lmod0vs.o $e |- O = ( 0g ` F ) $.
    lmod0vs.z $e |- .0. = ( 0g ` W ) $.
    $( Zero times a vector is the zero vector.  Equation 1a of [Kreyszig]
       p. 51.  ( ~ ax-hvmul0 analog.)  (Contributed by NM, 12-Jan-2014.)
       (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmod0vs $p |- ( ( W e. LMod /\ X e. V ) -> ( O .x. X ) = .0. ) $=
      ( clmod wcel co cplusg cfv wceq eqid syl wa cbs simpl crg lmodring adantr
      ring0cl simpr syl13anc cgrp ringgrp grplid syl2anc oveq1d eqtr3d lmodvscl
      lmodvsdir wb syl3anc lmod0vid syldan mpbid eqcomd ) EMNZFDNZUAZGCFAOZVFVG
      VGEPQZOZVGRZGVGRZVFCCBPQZOZFAOZVIVGVFVDCBUBQZNZVPVEVNVIRVDVEUCZVFBUDNZVPV
      DVRVEBEIUEUFZVOBCVOSZKUGTZWAVDVEUHZVHVLCCABVODEFHVHSZIJVTVLSZUQUIVFVMCFAV
      FBUJNZVPVMCRVFVRWEVSBUKTWAVOVLBCCVTWDKULUMUNUOVDVEVGDNZVJVKURVFVDVPVEWFVQ
      WAWBCABVODEFHIJVTUPUSVHDEVGGHWCLUTVAVBVC $.
  $}

  ${
    lmodvs0.f $e |- F = ( Scalar ` W ) $.
    lmodvs0.s $e |- .x. = ( .s ` W ) $.
    lmodvs0.k $e |- K = ( Base ` F ) $.
    lmodvs0.z $e |- .0. = ( 0g ` W ) $.
    $( Anything times the zero vector is the zero vector.  Equation 1b of
       [Kreyszig] p. 51.  ( ~ hvmul0 analog.)  (Contributed by NM,
       12-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodvs0 $p |- ( ( W e. LMod /\ X e. K ) -> ( X .x. .0. ) = .0. ) $=
      ( clmod wcel wa c0g cfv cmulr co wceq eqid adantr crg ringrz sylan oveq1d
      lmodring cbs simpl ring0cl syl lmod0vcl lmodvsass syl13anc lmod0vs syldan
      simpr oveq2d eqtrd 3eqtr3d ) DKLZECLZMZEBNOZBPOZQZFAQZVBFAQZEFAQZFVAVDVBF
      AUSBUALZUTVDVBRBDGUEZCBVCEVBIVCSZVBSZUBUCUDVAVEEVFAQZVGVAUSUTVBCLZFDUFOZL
      ZVEVLRUSUTUGUSUTUOVAVHVMUSVHUTVITCBVBIVKUHUIUSVOUTVNDFVNSZJUJTZEVBAVCBCVN
      DFVPGHIVJUKULVAVFFEAUSUTVOVFFRVQABVBVNDFFVPGHVKJUMUNZUPUQVRUR $.
  $}

  ${
    $d C x y $.  $d E x y $.  $d K x y $.  $d N x y $.  $d V x y $.
    $d W x y $.  $d X x y $.  $d .^ x y $.  $d .x. x y $.
    lmodvsmmulgdi.v $e |- V = ( Base ` W ) $.
    lmodvsmmulgdi.f $e |- F = ( Scalar ` W ) $.
    lmodvsmmulgdi.s $e |- .x. = ( .s ` W ) $.
    lmodvsmmulgdi.k $e |- K = ( Base ` F ) $.
    lmodvsmmulgdi.p $e |- .^ = ( .g ` W ) $.
    lmodvsmmulgdi.e $e |- E = ( .g ` F ) $.
    $( Distributive law for a group multiple of a scalar multiplication.
       (Contributed by AV, 2-Sep-2019.) $)
    lmodvsmmulgdi $p |- ( ( W e. LMod /\ ( C e. K /\ N e. NN0 /\ X e. V ) ) ->
                     ( N .^ ( C .x. X ) ) = ( ( N E C ) .x. X ) ) $=
      ( wcel co wceq oveq1 vx vy cn0 w3a clmod wi wa cv c1 caddc oveq1d eqeq12d
      cc0 imbi2d weq c0g simpr adantr eqid lmod0vs syl2anc simpl mulg0 lmodvscl
      cfv syl syl3anc 3eqtr4rd cplusg cmnd cgrp lmodgrp grpmnd adantl mulgnn0p1
      crg lmodring ringmnd mulgnn0cl lmodvsdir syl13anc eqcomd eqtr3d sylan9eqr
      simprll eqtrd exp31 a2d nn0ind exp4c com12 3imp impcom ) AFQZGUCQZJHQZUDI
      UEQZGAJBRZDRZGACRZJBRZSZWNWOWPWQXBUFZWOWNWPXCUFWOWNWPWQXBWNWPUGZWQUGZUAUH
      ZWRDRZXFACRZJBRZSZUFXEUMWRDRZUMACRZJBRZSZUFXEUBUHZWRDRZXOACRZJBRZSZUFXEXO
      UIUJRZWRDRZXTACRZJBRZSZUFXEXBUFUAUBGXFUMSZXJXNXEYEXGXKXIXMXFUMWRDTYEXHXLJ
      BXFUMACTUKULUNUAUBUOZXJXSXEYFXGXPXIXRXFXOWRDTYFXHXQJBXFXOACTUKULUNXFXTSZX
      JYDXEYGXGYAXIYCXFXTWRDTYGXHYBJBXFXTACTUKULUNXFGSZXJXBXEYHXGWSXIXAXFGWRDTY
      HXHWTJBXFGACTUKULUNXEEUPVEZJBRZIUPVEZXMXKXEWQWPYJYKSXDWQUQZXDWPWQWNWPUQUR
      ZBEYIHIJYKKLMYIUSZYKUSZUTVAXEXLYIJBXEWNXLYISXDWNWQWNWPVBURZFCEAYINYNPVCVF
      UKXEWRHQZXKYKSXEWQWNWPYQYLYPYMABEFHIJKLMNVDVGZHDIWRYKKYOOVCVFVHXOUCQZXEXS
      YDYSXEXSYDYSXEUGZXSUGYAXPWRIVIVEZRZYCYTYAUUBSZXSYTIVJQZYSYQUUCXEUUDYSWQUU
      DXDWQIVKQUUDIVLIVMVFVNVNYSXEVBZXEYQYSYRVNHUUADIXOWRKOUUAUSZVOVGURXSYTUUBX
      RWRUUARZYCXPXRWRUUATYTXQAEVIVEZRZJBRZUUGYCYTWQXQFQZWNWPUUJUUGSXEWQYSYLVNY
      TEVJQZYSWNUUKXEUULYSWQUULXDWQEVPQUULEILVQEVRVFVNVNZUUEYSWNWPWQWEZFCEXOANP
      VSVGUUNXEWPYSYMVNUUAUUHXQABEFHIJKUUFLMNUUHUSZVTWAYTUUIYBJBYTYBUUIYTUULYSW
      NYBUUISUUMUUEUUNFUUHCEXOANPUUOVOVGWBUKWCWDWFWGWHWIWJWKWLWM $.
  $}

  ${
    lmodfopne.t $e |- .x. = ( .sf ` W ) $.
    lmodfopne.a $e |- .+ = ( +f ` W ) $.
    lmodfopne.v $e |- V = ( Base ` W ) $.
    lmodfopne.s $e |- S = ( Scalar ` W ) $.
    lmodfopne.k $e |- K = ( Base ` S ) $.
    $( Lemma 1 for ~ lmodfopne .  (Contributed by AV, 2-Oct-2021.) $)
    lmodfopnelem1 $p |- ( ( W e. LMod /\ .+ = .x. ) -> V = K ) $=
      ( clmod wcel wceq cxp wfn wi wa ex com23 lmodscaf ffnd fneq1 fndmu syl6bi
      plusffn com13 impcom c0 wne wb lmodbn0 xp11 syl2anc simprbda expcom ax-mp
      syl6 mpd imp ) FLMZACNZEDNZVACDEOZPZVBVCQZVAVDECECBDFIJKGUAUBAEEOZPZVAVEV
      FQQEAFIHUFVHVEVAVFVHVEVAVFQVHVERZVBVAVCVIVBVGVDNZVAVCQVEVHVBVJQVBVHVEVJVB
      VHCVGPZVEVJQVGACUCVKVEVJVGVDCUDSUEUGUHVAVJVCVAVJVCEENZVAEUIUJZVMVJVCVLRUK
      EFIULZVNEEDEUMUNUOUPURTSTUQUSUT $.

    lmodfopne.0 $e |- .0. = ( 0g ` S ) $.
    lmodfopne.1 $e |- .1. = ( 1r ` S ) $.
    $( Lemma 2 for ~ lmodfopne .  (Contributed by AV, 2-Oct-2021.) $)
    lmodfopnelem2 $p |- ( ( W e. LMod /\ .+ = .x. )
                          -> ( .0. e. V /\ .1. e. V ) ) $=
      ( clmod wcel wceq wa eleq2 lmodfopnelem1 lmod0cl lmod1cl jca anbi12d syld
      ex syl5ibrcom imp ) GPQZACRZHFQZDFQZSZUJUKFERZUNUJUKUOABCEFGIJKLMUAUGUJUN
      UOHEQZDEQZSUJUPUQBEGHLMNUBDBEGLMOUCUDUOULUPUMUQFEHTFEDTUEUHUFUI $.

    $( The (functionalized) operations of a left module (over a nonzero ring)
       cannot be identical.  (Contributed by NM, 31-May-2008.)  (Revised by AV,
       2-Oct-2021.) $)
    lmodfopne $p |- ( ( W e. LMod /\ .1. =/= .0. ) -> .+ =/= .x. ) $=
      ( wcel wceq wa co adantr clmod wne lmodfopnelem2 c0g cplusg eqid lmod0vcl
      cfv simpl plusfval eqcomd syl2anr oveq ad2antlr eqtrd cgrp lmodgrp grprid
      syl2an cvsca lmod0cl jca scafval syl ancli lmodvs0 lmod1cl lmodvs1 adantl
      simpr ad2ant2rl 3eqtr2d wb grplcan syl13anc mpbid 3eqtrd 3eqtr3rd necon3d
      mpdan ex imp ) GUAPZDHUBACUBWCACDHWCACQZDHQZWCWDRZHFPZDFPZRZWEABCDEFGHIJK
      LMNOUCWFWIRZHGUDUHZGUEUHZSZHWKCSZHDWJWMHWKASZWNWIWGWKFPZWMWOQWFWGWHUIZWCW
      PWDFGWKKWKUFZUGZTZWGWPRWOWMFWLAGHWKKWLUFZJUJUKULWDWOWNQWCWIHWKACUMUNUOWFG
      UPPZWGWMHQWIWCXBWDGUQTZWQFWLGHWKKXAWRURUSWJWNHWKGUTUHZSZWKDWJHEPZWPRZWNXE
      QWFXGWIWCXGWDWCXFWPBEGHLMNVAZWSVBTTFCXDBEGHWKKLMIXDUFZVCVDWJWCXFRZXEWKQWF
      XJWIWCXJWDWCXFXHVETTXDBEGHWKLXIMWRVFVDWJDWKWLSZDDWLSZQZWKDQZWJXKDDDCSZXLW
      FXBWHXKDQWIXCWGWHVJZFWLGDWKKXAWRURUSWJXODDXDSZDWFDEPZWHXOXQQWIWCXRWDDBEGL
      MOVGTXPFCXDBEGDDKLMIXIVCUSWCWHXQDQWDWGXDDBFGDKLXIOVHVKUOWJXODDASZXLWDXOXS
      QWCWIWDXSXODDACUMUKUNWJWHWHRZXSXLQWIXTWFWIWHWHXPXPVBVIFWLAGDDKXAJUJVDUOVL
      WJXBWPWHWHXMXNVMWFXBWIXCTWFWPWIWTTWIWHWFXPVIZYAFWLGWKDDKXAVNVOVPVQVRVTWAV
      SWB $.
  $}

  ${
    $d x y B $.  $d x y G $.  $d x y K $.  $d x y ph $.  $d x y .x. $.
    $d y H $.
    lcomf.f $e |- F = ( Scalar ` W ) $.
    lcomf.k $e |- K = ( Base ` F ) $.
    lcomf.s $e |- .x. = ( .s ` W ) $.
    lcomf.b $e |- B = ( Base ` W ) $.
    lcomf.w $e |- ( ph -> W e. LMod ) $.
    lcomf.g $e |- ( ph -> G : I --> K ) $.
    lcomf.h $e |- ( ph -> H : I --> B ) $.
    lcomf.i $e |- ( ph -> I e. V ) $.
    $( A linear-combination sum is a function.  (Contributed by Stefan O'Rear,
       28-Feb-2015.) $)
    lcomf $p |- ( ph -> ( G oF .x. H ) : I --> B ) $=
      ( vx wcel vy clmod cv wa co lmodvscl 3expb sylan inidm off ) ASUAGGGCHBBE
      FIIAJUBTZSUCZHTZUAUCZBTZUDULUNCUEBTZOUKUMUOUPULCDHBJUNNKMLUFUGUHPQRRGUIUJ
      $.

    $d H x $.  $d Y x $.  $d .0. x $.
    lcomfsupp.z $e |- .0. = ( 0g ` W ) $.
    lcomfsupp.y $e |- Y = ( 0g ` F ) $.
    lcomfsupp.j $e |- ( ph -> G finSupp Y ) $.
    $( A linear-combination sum is finitely supported if the coefficients are.
       (Contributed by Stefan O'Rear, 28-Feb-2015.)  (Revised by AV,
       15-Jul-2019.) $)
    lcomfsupp $p |- ( ph -> ( G oF .x. H ) finSupp .0. ) $=
      ( vx cof co cfsupp wbr csupp cfn wcel wss fsuppimpd lcomf cv cdif wa wceq
      cfv eldifi wfn wf ffn syl adantr simpr fnfvof syl22anc sylan2 cvv a1i c0g
      ssid eqeltri suppssr oveq1d clmod ffvelrnda lmod0vs syl2anc 3eqtrd suppss
      fvex ssfi wfun wb inidm offn fnfun ovexd funisfsupp syl3anc mpbird ) AEFC
      UEZUFZLUGUHZWOLUIUFZUJUKZAEKUIUFZUJUKWQWSULWRAEKUCUMAGBUDWOWSLABCDEFGHIJM
      NOPQRSTUNAUDUOZGWSUPUKZUQZWTWOUSZWTEUSZWTFUSZCUFZKXECUFZLXAAWTGUKZXCXFURZ
      WTGWSUTZAXHUQZEGVAZFGVAZGIUKZXHXIAXLXHAGHEVBXLRGHEVCVDZVEAXMXHAGBFVBXMSGB
      FVCVDZVEAXNXHTVEAXHVFGCEFIWTVGVHVIXBXDKXECAGHVJEIWSWTKRWSWSULAWSVMVKTKVJU
      KAKDVLUSVJUBDVLWCVNVKVOVPXAAXHXGLURZXJXKJVQUKZXEBUKXQAXRXHQVEAGBWTFSVRCDK
      BJXELPMOUBUAVSVTVIWAWBWSWQWDVTAWOWEZWOVJUKLVJUKZWPWRWFAWOGVAXSAGGCGEFIIXO
      XPTTGWGWHGWOWIVDAEFWNWJXTALJVLUSVJUAJVLWCVNVKWOVJVJLWKWLWM $.
  $}

  ${
    lmodvnegcl.v $e |- V = ( Base ` W ) $.
    lmodvnegcl.n $e |- N = ( invg ` W ) $.
    $( Closure of vector negative.  (Contributed by NM, 18-Apr-2014.)  (Revised
       by Mario Carneiro, 19-Jun-2014.) $)
    lmodvnegcl $p |- ( ( W e. LMod /\ X e. V ) -> ( N ` X ) e. V ) $=
      ( clmod wcel cgrp cfv lmodgrp grpinvcl sylan ) CGHCIHDBHDAJBHCKBCADEFLM
      $.
  $}

  ${
    lmodvnegid.v $e |- V = ( Base ` W ) $.
    lmodvnegid.p $e |- .+ = ( +g ` W ) $.
    lmodvnegid.z $e |- .0. = ( 0g ` W ) $.
    lmodvnegid.n $e |- N = ( invg ` W ) $.
    $( Addition of a vector with its negative.  (Contributed by NM,
       18-Apr-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodvnegid $p |- ( ( W e. LMod /\ X e. V ) -> ( X .+ ( N ` X ) ) = .0. ) $=
      ( clmod wcel cgrp cfv co wceq lmodgrp grprinv sylan ) DKLDMLECLEEBNAOFPDQ
      CADBEFGHIJRS $.
  $}

  ${
    lmodvneg1.v $e |- V = ( Base ` W ) $.
    lmodvneg1.n $e |- N = ( invg ` W ) $.
    lmodvneg1.f $e |- F = ( Scalar ` W ) $.
    lmodvneg1.s $e |- .x. = ( .s ` W ) $.
    lmodvneg1.u $e |- .1. = ( 1r ` F ) $.
    lmodvneg1.m $e |- M = ( invg ` F ) $.
    $( Minus 1 times a vector is the negative of the vector.  Equation 2 of
       [Kreyszig] p. 51.  (Contributed by NM, 18-Apr-2014.)  (Revised by Mario
       Carneiro, 19-Jun-2014.) $)
    lmodvneg1 $p |- ( ( W e. LMod /\ X e. V ) ->
                      ( ( M ` .1. ) .x. X ) = ( N ` X ) ) $=
      ( wcel cfv co wceq eqid eqtr3d clmod c0g cplusg cbs simpl lmodfgrp adantr
      cgrp lmod1cl grpinvcl syl2anc simpr lmodvscl syl3anc lmod0vrid lmodvnegcl
      wa syldan lmodass lmodvs1 oveq2d grplinv oveq1d lmodvsdir lmod0vs 3eqtr3d
      syl13anc lmodvnegid lmod0vlid ) GUAOZHFOZUQZBDPZHAQZGUBPZGUCPZQZVNHEPZVJV
      KVNFOZVQVNRVLVJVMCUDPZOZVKVSVJVKUEZVLCUHOZBVTOZWAVJWCVKCGKUFUGZVJWDVKBCVT
      GKVTSZMUIUGZVTCDBWFNUJUKZVJVKULZVMACVTFGHIKLWFUMUNZVPFGVNVOIVPSZVOSZUOURV
      LVNHVRVPQZVPQZVOVRVPQZVQVRVLVNHVPQZVRVPQZWNWOVLVJVSVKVRFOZWQWNRWBWJWIEFGH
      IJUPZVPFGVNHVRIWKUSVGVLWPVOVRVPVLVNBHAQZVPQZWPVOVLWTHVNVPABCFGHIKLMUTVAVL
      VMBCUCPZQZHAQZCUBPZHAQXAVOVLXCXEHAVLWCWDXCXERWEWGVTXBCDBXEWFXBSZXESZNVBUK
      VCVLVJWAWDVKXDXARWBWHWGWIVPXBVMBACVTFGHIWKKLWFXFVDVGACXEFGHVOIKLXGWLVEVFT
      VCTVLWMVOVNVPVPEFGHVOIWKWLJVHVAVJVKWRWOVRRWSVPFGVRVOIWKWLVIURVFT $.
  $}

  ${
    lmodvsneg.b $e |- B = ( Base ` W ) $.
    lmodvsneg.f $e |- F = ( Scalar ` W ) $.
    lmodvsneg.s $e |- .x. = ( .s ` W ) $.
    lmodvsneg.n $e |- N = ( invg ` W ) $.
    lmodvsneg.k $e |- K = ( Base ` F ) $.
    lmodvsneg.m $e |- M = ( invg ` F ) $.
    lmodvsneg.w $e |- ( ph -> W e. LMod ) $.
    lmodvsneg.x $e |- ( ph -> X e. B ) $.
    lmodvsneg.r $e |- ( ph -> R e. K ) $.
    $( Multiplication of a vector by a negated scalar.  (Contributed by Stefan
       O'Rear, 28-Feb-2015.) $)
    lmodvsneg $p |- ( ph -> ( N ` ( R .x. X ) ) = ( ( M ` R ) .x. X ) ) $=
      ( wcel cur cfv cmulr co clmod wceq cgrp crg lmodring syl ringgrp ringidcl
      eqid grpinvcl syl2anc lmodvsass syl13anc ringnegl oveq1d lmodvscl syl3anc
      lmodvneg1 3eqtr3rd ) AEUAUBZGUBZCEUCUBZUDZJDUDZVECJDUDZDUDZCGUBZJDUDVIHUB
      ZAIUETZVEFTZCFTZJBTZVHVJUFQAEUGTZVDFTZVNAEUHTZVQAVMVSQEILUIUJZEUKUJAVSVRV
      TFEVDOVDUMZULUJFEGVDOPUNUOSRVECDVFEFBIJKLMOVFUMZUPUQAVGVKJDAFEVFVDGCOWBWA
      PVTSURUSAVMVIBTZVJVLUFQAVMVOVPWCQSRCDEFBIJKLMOUTVADVDEGHBIVIKNLMWAPVBUOVC
      $.
  $}

  ${
    lmodvsubcl.v $e |- V = ( Base ` W ) $.
    lmodvsubcl.m $e |- .- = ( -g ` W ) $.
    $( Closure of vector subtraction.  ( ~ hvsubcl analog.)  (Contributed by
       NM, 31-Mar-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodvsubcl $p |- ( ( W e. LMod /\ X e. V /\ Y e. V ) ->
      ( X .- Y ) e. V ) $=
      ( clmod wcel cgrp co lmodgrp grpsubcl syl3an1 ) CHICJIDBIEBIDEAKBICLBCADE
      FGMN $.
  $}

  ${
    lmodcom.v $e |- V = ( Base ` W ) $.
    lmodcom.a $e |- .+ = ( +g ` W ) $.
    $( Left module vector sum is commutative.  (Contributed by G&eacute;rard
       Lang, 25-Jun-2014.) $)
    lmodcom $p |- ( ( W e. LMod /\ X e. V /\ Y e. V ) ->
                    ( X .+ Y ) = ( Y .+ X ) ) $=
      ( wcel co wceq cfv eqid syl3anc syl13anc lmodvacl lmodvs1 syl2anc oveq12d
      lmodvsdir lmodass clmod w3a csca cur cplusg cvsca cbs lmod1cl syl lmodacl
      simp1 simp2 simp3 lmodvsdi eqtr3d 3eqtr3d 3eqtr4d cgrp wb lmodgrp grprcan
      eqtrd mpbid 3com23 lmodlcan ) CUAHZDBHZEBHZUBZDDEAIZAIZDEDAIZAIZJZVJVLJZV
      IDDAIZEAIZVJDAIZVKVMVIVQEAIZVREAIZJZVQVRJZVIVPEEAIZAIZVJVJAIZVSVTVICUCKZU
      DKZWGWFUEKZIZDCUFKZIZWIEWJIZAIZWGVJWJIZWNAIZWDWEVIWIVJWJIZWMWOVIVFWIWFUGK
      ZHZVGVHWPWMJVFVGVHUKZVIVFWGWQHZWTWRWSVIVFWTWSWGWFWQCWFLZWQLZWGLZUHUIZXDWH
      WFWQCWGWGXAXBWHLZUJMVFVGVHULZVFVGVHUMZAWIWJWFWQBCDEFGXAWJLZXBUNNVIVFWTWTV
      JBHZWPWOJWSXDXDABCDEFGOZAWHWGWGWJWFWQBCVJFGXAXHXBXESNUOVIWKVPWLWCAVIWKWGD
      WJIZXKAIZVPVIVFWTWTVGWKXLJWSXDXDXFAWHWGWGWJWFWQBCDFGXAXHXBXESNVIXKDXKDAVI
      VFVGXKDJWSXFWJWGWFBCDFXAXHXCPQZXMRVBVIWLWGEWJIZXNAIZWCVIVFWTWTVHWLXOJWSXD
      XDXGAWHWGWGWJWFWQBCEFGXAXHXBXESNVIXNEXNEAVIVFVHXNEJWSXGWJWGWFBCEFXAXHXCPQ
      ZXPRVBRVIWNVJWNVJAVIVFXIWNVJJWSXJWJWGWFBCVJFXAXHXCPQZXQRUPVIVFVPBHZVHVHVS
      WDJWSVIVFVGVGXRWSXFXFABCDDFGOMZXGXGABCVPEEFGTNVIVFXIVGVHVTWEJWSXJXFXGABCV
      JDEFGTNUQVICURHZVQBHZVRBHZVHWAWBUSVIVFXTWSCUTUIVIVFXRVHYAWSXSXGABCVPEFGOM
      VIVFXIVGYBWSXJXFABCVJDFGOMXGBACVQVREFGVANVCVIVFVGVGVHVQVKJWSXFXFXGABCDDEF
      GTNVIVFVGVHVGVRVMJWSXFXGXFABCDEDFGTNUPVIVFXIVLBHZVGVNVOUSWSXJVFVHVGYCABCE
      DFGOVDXFABCVJVLDFGVENVC $.
  $}

  ${
    $d x y W $.
    $( A left module is an abelian group (of vectors, under addition).
       (Contributed by NM, 8-Dec-2013.)  (Revised by Mario Carneiro,
       25-Jun-2014.) $)
    lmodabl $p |- ( W e. LMod -> W e. Abel ) $=
      ( vx vy clmod wcel cbs cfv cplusg eqidd lmodgrp cv eqid lmodcom isabld )
      ADEZBCAFGZAHGZAOPIOQIAJQPABKCKPLQLMN $.

    $( A left module is a commutative monoid under addition.  (Contributed by
       NM, 7-Jan-2015.) $)
    lmodcmn $p |- ( W e. LMod -> W e. CMnd ) $=
      ( clmod wcel cabl ccmn lmodabl ablcmn syl ) ABCADCAECAFAGH $.
  $}

  ${
    lmodnegadd.v $e |- V = ( Base ` W ) $.
    lmodnegadd.p $e |- .+ = ( +g ` W ) $.
    lmodnegadd.t $e |- .x. = ( .s ` W ) $.
    lmodnegadd.n $e |- N = ( invg ` W ) $.
    lmodnegadd.r $e |- R = ( Scalar ` W ) $.
    lmodnegadd.k $e |- K = ( Base ` R ) $.
    lmodnegadd.i $e |- I = ( invg ` R ) $.
    lmodnegadd.w $e |- ( ph -> W e. LMod ) $.
    lmodnegadd.a $e |- ( ph -> A e. K ) $.
    lmodnegadd.b $e |- ( ph -> B e. K ) $.
    lmodnegadd.x $e |- ( ph -> X e. V ) $.
    lmodnegadd.y $e |- ( ph -> Y e. V ) $.
    $( Distribute negation through addition of scalar products.  (Contributed
       by NM, 9-Apr-2015.) $)
    lmodnegadd $p |- ( ph -> ( N ` ( ( A .x. X ) .+ ( B .x. Y ) ) )
           = ( ( ( I ` A ) .x. X ) .+ ( ( I ` B ) .x. Y ) ) ) $=
      ( co cfv cabl wcel clmod lmodabl syl lmodvscl syl3anc ablinvadd lmodvsneg
      wceq oveq12d eqtrd ) ABLFUFZCMFUFZDUFIUGZUTIUGZVAIUGZDUFZBGUGLFUFZCGUGMFU
      FZDUFAKUHUIZUTJUIZVAJUIZVBVEUQAKUJUIZVHUAKUKULAVKBHUILJUIVIUAUBUDBFEHJKLN
      RPSUMUNAVKCHUIMJUIVJUAUCUECFEHJKMNRPSUMUNJDKIUTVANOQUOUNAVCVFVDVGDAJBFEHG
      IKLNRPQSTUAUDUBUPAJCFEHGIKMNRPQSTUAUEUCUPURUS $.
  $}

  ${
    lmod4.v $e |- V = ( Base ` W ) $.
    lmod4.p $e |- .+ = ( +g ` W ) $.
    $( Commutative/associative law for left module vector sum.  (Contributed by
       NM, 4-Feb-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmod4 $p |- ( ( W e. LMod /\ ( X e. V /\ Y e. V ) /\ ( Z e. V /\ U e. V ) )
        -> ( ( X .+ Y ) .+ ( Z .+ U ) ) = ( ( X .+ Z ) .+ ( Y .+ U ) ) ) $=
      ( clmod wcel ccmn wa co wceq lmodcmn cmn4 syl3an1 ) DJKDLKECKFCKMGCKBCKME
      FANGBANANEGANFBANANODPCADBEFGHIQR $.

    lmodvaddsub4.m $e |- .- = ( -g ` W ) $.
    $( Relationship between vector subtraction and addition.  ( ~ hvsubadd
       analog.)  (Contributed by NM, 31-Mar-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lmodvsubadd $p |- ( ( W e. LMod /\ ( A e. V /\ B e. V /\ C e. V ) )
          -> ( ( A .- B ) = C <-> ( B .+ C ) = A ) ) $=
      ( clmod wcel cabl w3a co wceq wb lmodabl ablsubadd sylan ) GKLGMLAFLBFLCF
      LNABEOCPBCDOAPQGRFDGEABCHIJST $.

    $( Vector addition/subtraction law.  (Contributed by NM, 31-Mar-2014.)
       (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodvaddsub4 $p |- ( ( W e. LMod /\ ( A e. V /\ B e. V ) /\
                           ( C e. V /\ D e. V ) ) ->
      ( ( A .+ B ) = ( C .+ D ) <-> ( A .- C ) = ( D .- B ) ) ) $=
      ( clmod wcel cabl wa co wceq wb lmodabl abladdsub4 syl3an1 ) HLMHNMAGMBGM
      OCGMDGMOABEPCDEPQACFPDBFPQRHSGEHFDABCIJKTUA $.

    $( Addition/subtraction cancellation law for vectors.  ( ~ hvpncan analog.)
       (Contributed by NM, 16-Apr-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lmodvpncan $p |- ( ( W e. LMod /\ A e. V /\ B e. V ) ->
                       ( ( A .+ B ) .- B ) = A ) $=
      ( clmod wcel cgrp co wceq lmodgrp grppncan syl3an1 ) FJKFLKAEKBEKABCMBDMA
      NFOECFDABGHIPQ $.

    $( Cancellation law for vector subtraction ( ~ npcan analog).  (Contributed
       by NM, 19-Apr-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodvnpcan $p |- ( ( W e. LMod /\ A e. V /\ B e. V ) ->
                       ( ( A .- B ) .+ B ) = A ) $=
      ( clmod wcel cgrp co wceq lmodgrp grpnpcan syl3an1 ) FJKFLKAEKBEKABDMBCMA
      NFOECFDABGHIPQ $.
  $}

  ${
    lmodvsubval2.v $e |- V = ( Base ` W ) $.
    lmodvsubval2.p $e |- .+ = ( +g ` W ) $.
    lmodvsubval2.m $e |- .- = ( -g ` W ) $.
    lmodvsubval2.f $e |- F = ( Scalar ` W ) $.
    lmodvsubval2.s $e |- .x. = ( .s ` W ) $.
    lmodvsubval2.n $e |- N = ( invg ` F ) $.
    lmodvsubval2.u $e |- .1. = ( 1r ` F ) $.
    $( Value of vector subtraction in terms of addition.  ( ~ hvsubval analog.)
       (Contributed by NM, 31-Mar-2014.)  (Proof shortened by Mario Carneiro,
       19-Jun-2014.) $)
    lmodvsubval2 $p |- ( ( W e. LMod /\ A e. V /\ B e. V )
          -> ( A .- B ) = ( A .+ ( ( N ` .1. ) .x. B ) ) ) $=
      ( wcel co cfv clmod cminusg wceq eqid grpsubval 3adant1 lmodvneg1 3adant2
      w3a oveq2d eqtr4d ) JUARZAIRZBIRZUIZABGSZABJUBTZTZCSZAEHTBDSZCSUMUNUPUSUC
      ULICJUQGABKLUQUDZMUEUFUOUTURACULUNUTURUCUMDEFHUQIJBKVANOQPUGUHUJUK $.
  $}

  ${
    lmodsubvs.v $e |- V = ( Base ` W ) $.
    lmodsubvs.p $e |- .+ = ( +g ` W ) $.
    lmodsubvs.m $e |- .- = ( -g ` W ) $.
    lmodsubvs.t $e |- .x. = ( .s ` W ) $.
    lmodsubvs.f $e |- F = ( Scalar ` W ) $.
    lmodsubvs.k $e |- K = ( Base ` F ) $.
    lmodsubvs.n $e |- N = ( invg ` F ) $.
    lmodsubvs.w $e |- ( ph -> W e. LMod ) $.
    lmodsubvs.a $e |- ( ph -> A e. K ) $.
    lmodsubvs.x $e |- ( ph -> X e. V ) $.
    lmodsubvs.y $e |- ( ph -> Y e. V ) $.
    $( Subtraction of a scalar product in terms of addition.  (Contributed by
       NM, 9-Apr-2015.) $)
    lmodsubvs $p |- ( ph
          -> ( X .- ( A .x. Y ) ) = ( X .+ ( ( N ` A ) .x. Y ) ) ) $=
      ( co cur cfv clmod wcel wceq lmodvscl syl3anc eqid lmodvsubval2 cmulr crg
      cgrp lmodring ringgrp ringidcl grpinvcl syl2anc lmodvsass syl13anc oveq1d
      syl ringnegl eqtr3d oveq2d eqtrd ) AKBLDUDZGUDZKEUEUFZHUFZVJDUDZCUDZKBHUF
      ZLDUDZCUDAJUGUHZKIUHVJIUHZVKVOUITUBAVRBFUHZLIUHZVSTUAUCBDEFIJLMQPRUJUKKVJ
      CDVLEGHIJMNOQPSVLULZUMUKAVNVQKCAVMBEUNUFZUDZLDUDZVNVQAVRVMFUHZVTWAWEVNUIT
      AEUPUHZVLFUHZWFAEUOUHZWGAVRWITEJQUQVEZEURVEAWIWHWJFEVLRWBUSVEFEHVLRSUTVAU
      AUCVMBDWCEFIJLMQPRWCULZVBVCAWDVPLDAFEWCVLHBRWKWBSWJUAVFVDVGVHVI $.
  $}

  ${
    lmodsubdi.v $e |- V = ( Base ` W ) $.
    lmodsubdi.t $e |- .x. = ( .s ` W ) $.
    lmodsubdi.f $e |- F = ( Scalar ` W ) $.
    lmodsubdi.k $e |- K = ( Base ` F ) $.
    lmodsubdi.m $e |- .- = ( -g ` W ) $.
    lmodsubdi.w $e |- ( ph -> W e. LMod ) $.
    lmodsubdi.a $e |- ( ph -> A e. K ) $.
    lmodsubdi.x $e |- ( ph -> X e. V ) $.
    lmodsubdi.y $e |- ( ph -> Y e. V ) $.
    $( Scalar multiplication distributive law for subtraction.  ( ~ hvsubdistr1
       analogue, with longer proof since our scalar multiplication is not
       commutative.)  (Contributed by NM, 2-Jul-2014.) $)
    lmodsubdi $p |- ( ph
       -> ( A .x. ( X .- Y ) ) = ( ( A .x. X ) .- ( A .x. Y ) ) ) $=
      ( co cur cminusg cplusg clmod wcel wceq lmodvsubval2 syl3anc oveq2d cmulr
      cfv eqid crg lmodring syl rngnegr ringnegl eqtr4d oveq1d ringgrp ringidcl
      grpinvcl syl2anc lmodvsass syl13anc 3eqtr3d lmodvscl lmodvsdi 3eqtr4rd
      cgrp ) ABIJFTZCTBIDUAUKZDUBUKZUKZJCTZHUCUKZTZCTZBICTZBJCTZFTZAVKVQBCAHUDU
      EZIGUEZJGUEZVKVQUFPRSIJVPCVLDFVMGHKVPULZOMLVMULZVLULZUGUHUIAVSBVOCTZVPTZV
      SVNVTCTZVPTZVRWAAWHWJVSVPABVNDUJUKZTZJCTZVNBWLTZJCTZWHWJAWMWOJCAWMBVMUKWO
      AEDWLVLVMBNWLULZWGWFAWBDUMUEZPDHMUNUOZQUPAEDWLVLVMBNWQWGWFWSQUQURUSAWBBEU
      EZVNEUEZWDWNWHUFPQADVJUEZVLEUEZXAAWRXBWSDUTUOAWRXCWSEDVLNWGVAUOEDVMVLNWFV
      BVCZSBVNCWLDEGHJKMLNWQVDVEAWBXAWTWDWPWJUFPXDQSVNBCWLDEGHJKMLNWQVDVEVFUIAW
      BWTWCVOGUEZVRWIUFPQRAWBXAWDXEPXDSVNCDEGHJKMLNVGUHVPBCDEGHIVOKWEMLNVHVEAWB
      VSGUEZVTGUEZWAWKUFPAWBWTWCXFPQRBCDEGHIKMLNVGUHAWBWTWDXGPQSBCDEGHJKMLNVGUH
      VSVTVPCVLDFVMGHKWEOMLWFWGUGUHVIUR $.
  $}

  ${
    lmodsubdir.v $e |- V = ( Base ` W ) $.
    lmodsubdir.t $e |- .x. = ( .s ` W ) $.
    lmodsubdir.f $e |- F = ( Scalar ` W ) $.
    lmodsubdir.k $e |- K = ( Base ` F ) $.
    lmodsubdir.m $e |- .- = ( -g ` W ) $.
    lmodsubdir.s $e |- S = ( -g ` F ) $.
    lmodsubdir.w $e |- ( ph -> W e. LMod ) $.
    lmodsubdir.a $e |- ( ph -> A e. K ) $.
    lmodsubdir.b $e |- ( ph -> B e. K ) $.
    lmodsubdir.x $e |- ( ph -> X e. V ) $.
    $( Scalar multiplication distributive law for subtraction.  ( ~ hvsubdistr2
       analog.)  (Contributed by NM, 2-Jul-2014.) $)
    lmodsubdir $p |- ( ph
       -> ( ( A S B ) .x. X ) = ( ( A .x. X ) .- ( B .x. X ) ) ) $=
      ( cminusg cfv cplusg co cur clmod wcel wceq cgrp crg lmodring syl ringgrp
      eqid grpinvcl lmodvsdir syl13anc cmulr ringnegl oveq1d ringidcl lmodvsass
      syl2anc eqtr3d oveq2d grpsubval lmodvscl syl3anc lmodvsubval2 3eqtr4d
      eqtrd ) ABCFUBUCZUCZFUDUCZUEZKEUEZBKEUEZFUFUCZVMUCZCKEUEZEUEZJUDUCZUEZBCD
      UEZKEUEVRWAHUEZAVQVRVNKEUEZWCUEZWDAJUGUHZBGUHZVNGUHZKIUHZVQWHUIRSAFUJUHZC
      GUHZWKAFUKUHZWMAWIWORFJNULUMZFUNUMZTGFVMCOVMUOZUPVDUAWCVOBVNEFGIJKLWCUOZN
      MOVOUOZUQURAWGWBVRWCAVTCFUSUCZUEZKEUEZWGWBAXBVNKEAGFXAVSVMCOXAUOZVSUOZWRW
      PTUTVAAWIVTGUHZWNWLXCWBUIRAWMVSGUHZXFWQAWOXGWPGFVSOXEVBUMGFVMVSOWRUPVDTUA
      VTCEXAFGIJKLNMOXDVCURVEVFVLAWEVPKEAWJWNWEVPUISTGVOFVMDBCOWTWRQVGVDVAAWIVR
      IUHZWAIUHZWFWDUIRAWIWJWLXHRSUABEFGIJKLNMOVHVIAWIWNWLXIRTUACEFGIJKLNMOVHVI
      VRWAWCEVSFHVMIJLWSPNMWRXEVJVIVK $.
  $}

  ${
    lmodsubeq0.v $e |- V = ( Base ` W ) $.
    lmodsubeq0.o $e |- .0. = ( 0g ` W ) $.
    lmodsubeq0.m $e |- .- = ( -g ` W ) $.
    $( If the difference between two vectors is zero, they are equal.
       ( ~ hvsubeq0 analog.)  (Contributed by NM, 31-Mar-2014.)  (Revised by
       Mario Carneiro, 19-Jun-2014.) $)
    lmodsubeq0 $p |- ( ( W e. LMod /\ A e. V /\ B e. V )
                  -> ( ( A .- B ) = .0. <-> A = B ) ) $=
      ( clmod wcel cgrp co wceq wb lmodgrp grpsubeq0 syl3an1 ) EJKELKADKBDKABCM
      FNABNOEPDECABFGHIQR $.

    $( Subtraction of a vector from itself.  ( ~ hvsubid analog.)  (Contributed
       by NM, 16-Apr-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lmodsubid $p |- ( ( W e. LMod /\ A e. V ) -> ( A .- A ) = .0. ) $=
      ( clmod wcel cgrp co wceq lmodgrp grpsubid sylan ) DIJDKJACJAABLEMDNCDBAE
      FGHOP $.
  $}

  ${
    $d x y z K $.  $d x y z R $.  $d x y z .x. $.  $d x y z V $.  $d x y z W $.
    lmodvsghm.v $e |- V = ( Base ` W ) $.
    lmodvsghm.f $e |- F = ( Scalar ` W ) $.
    lmodvsghm.s $e |- .x. = ( .s ` W ) $.
    lmodvsghm.k $e |- K = ( Base ` F ) $.
    $( Scalar multiplication of the vector space by a fixed scalar is an
       automorphism of the additive group of vectors.  (Contributed by Mario
       Carneiro, 5-May-2015.) $)
    lmodvsghm $p |- ( ( W e. LMod /\ R e. K ) ->
                      ( x e. V |-> ( R .x. x ) ) e. ( W GrpHom W ) ) $=
      ( wcel wa cfv cv co wceq oveq2 ovex fvmpt vy vz clmod cplusg cmpt lmodgrp
      eqid cgrp adantr lmodvscl 3expa fmptd lmodvsdi 3exp2 imp43 lmodvacl 3expb
      adantlr syl oveqan12d adantl 3eqtr4d isghmd ) GUCLZBELZMZUAUBGUDNZVGGGAFB
      AOZCPZUEZFFHHVGUGZVKVDGUHLVEGUFUIZVLVFAFVIFVJVDVEVHFLVIFLBCDEFGVHHIJKUJUK
      VJUGZULVFUAOZFLZUBOZFLZMZMZBVNVPVGPZCPZBVNCPZBVPCPZVGPZVTVJNZVNVJNZVPVJNZ
      VGPZVDVEVOVQWAWDQZVDVEVOVQWIVGBCDEFGVNVPHVKIJKUMUNUOVSVTFLZWEWAQVDVRWJVEV
      DVOVQWJVGFGVNVPHVKUPUQURAVTVIWAFVJVHVTBCRVMBVTCSTUSVRWHWDQVFVOVQWFWBWGWCV
      GAVNVIWBFVJVHVNBCRVMBVNCSTAVPVIWCFVJVHVPBCRVMBVPCSTUTVAVBVC $.
  $}

  ${
    $d q r w x y z B $.  $d q r w x y z F $.  $d q r w x y z ph $.
    $d q r w x y z G $.  $d q r w x y z K $.  $d q r w x y z L $.
    $d q r w x y z P $.
    lmodprop2d.b1 $e |- ( ph -> B = ( Base ` K ) ) $.
    lmodprop2d.b2 $e |- ( ph -> B = ( Base ` L ) ) $.
    lmodprop2d.f $e |- F = ( Scalar ` K ) $.
    lmodprop2d.g $e |- G = ( Scalar ` L ) $.
    lmodprop2d.p1 $e |- ( ph -> P = ( Base ` F ) ) $.
    lmodprop2d.p2 $e |- ( ph -> P = ( Base ` G ) ) $.
    lmodprop2d.1 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    lmodprop2d.2 $e |- ( ( ph /\ ( x e. P /\ y e. P ) ) ->
      ( x ( +g ` F ) y ) = ( x ( +g ` G ) y ) ) $.
    lmodprop2d.3 $e |- ( ( ph /\ ( x e. P /\ y e. P ) ) ->
      ( x ( .r ` F ) y ) = ( x ( .r ` G ) y ) ) $.
    lmodprop2d.4 $e |- ( ( ph /\ ( x e. P /\ y e. B ) ) ->
      ( x ( .s ` K ) y ) = ( x ( .s ` L ) y ) ) $.
    $( If two structures have the same components (properties), one is a left
       module iff the other one is.  This version of ~ lmodpropd also breaks up
       the components of the scalar ring.  (Contributed by Mario Carneiro,
       27-Jun-2015.) $)
    lmodprop2d $p |- ( ph -> ( K e. LMod <-> L e. LMod ) ) $=
      ( wcel vr vw vz vq cgrp crg cv cvsca cfv co wral w3a clmod wi lmodgrp a1i
      cbs cplusg wceq cur wa eqid islmod simp2bi simplr simprl ad2antrr eleqtrd
      cmulr simprr lmodvscl syl3anc eleqtrrd ralrimivva 3jcad syl5ibr ringpropd
      ex grppropd adantlr 3eltr4d wb adantr simprlr simprrr oveqrspc2v syl12anc
      simpll eleq1d simplr1 simprrl grpcl oveq2d eqtrd simplr3 ovrspc2v oveq12d
      syl21anc eqeq12d simplr2 simprll ringacl ad2ant2r oveq1d 3anbi123d ringcl
      ringidcl syl rngidpropd eqeq1d anbi12d anassrs 2ralbidva eleq2d raleqbidv
      3anbi1d anbi1d 3bitr3d 3bitr4g pm5.21ndd ) AHUETZFUFTZBUGZCUGZHUHUIZUJZDT
      ZCDUKBEUKZULZHUMTZIUMTZAYJYAYBYHYJYAUNAHUOUPYJYBUNAYJYAYBUAUGZUBUGZYEUJZH
      UQUIZTZYLYMUCUGZHURUIZUJZYEUJZYNYLYQYEUJZYRUJZUSZUDUGZYLFURUIZUJZYMYEUJZU
      UDYMYEUJZYNYRUJZUSZULZUUDYLFVIUIZUJZYMYEUJZUUDYNYEUJZUSZFUTUIZYMYEUJZYMUS
      ZVAZVAZUBYOUKZUCYOUKZUAFUQUIZUKZUDUVDUKZUCUBYRUUEYEUULUUQFUVDYOHUAUDYOVBZ
      YRVBZYEVBZLUVDVBZUUEVBZUULVBZUUQVBZVCZVDUPAYJYHAYJVAZYGBCEDUVOYCETZYDDTZV
      AZVAZYFYODUVSYJYCUVDTYDYOTYFYOTAYJUVRVEUVSYCEUVDUVOUVPUVQVFAEUVDUSZYJUVRN
      VGVHUVSYDDYOUVOUVPUVQVJADYOUSZYJUVRJVGZVHYCYEFUVDYOHYDUVGLUVIUVJVKVLUWBVM
      VNVRVOAYKYAYBYHYKYAAIUETZIUOABCDHIJKPVSZVPYKYBAGUFTZYKUWCUWEYLYMIUHUIZUJZ
      IUQUIZTZYLYMYQIURUIZUJZUWFUJZUWGYLYQUWFUJZUWJUJZUSZUUDYLGURUIZUJZYMUWFUJZ
      UUDYMUWFUJZUWGUWJUJZUSZULZUUDYLGVIUIZUJZYMUWFUJZUUDUWGUWFUJZUSZGUTUIZYMUW
      FUJZYMUSZVAZVAZUBUWHUKZUCUWHUKZUAGUQUIZUKZUDUXOUKZUCUBUWJUWPUWFUXCUXHGUXO
      UWHIUAUDUWHVBZUWJVBUWFVBZMUXOVBZUWPVBUXCVBUXHVBVCZVDABCEFGNOQRVQZVPAYKYHA
      YKVAZYGBCEDUYCUVRVAZYCYDUWFUJZUWHYFDUYDYKYCUXOTYDUWHTUYEUWHTAYKUVRVEUYDYC
      EUXOUYCUVPUVQVFAEUXOUSZYKUVROVGVHUYDYDDUWHUYCUVPUVQVJADUWHUSZYKUVRKVGZVHY
      CUWFGUXOUWHIYDUXRMUXSUXTVKVLAUVRYFUYEUSYKSVTUYHWAVNVRVOAYIYJYKWBAYIVAZYAY
      BUVFULUWCUWEUXQULYJYKUYIYAUWCYBUWEUVFUXQAYAUWCWBYIUWDWCAYBUWEWBYIUYBWCUYI
      YNDTZUUCUUJULZUUTVAZUBDUKZUCDUKZUAEUKZUDEUKUWGDTZUWOUXAULZUXKVAZUBDUKZUCD
      UKZUAEUKZUDEUKUVFUXQUYIUYNUYTUDUAEEUYIUUDETZYLETZVAZVAUYLUYRUCUBDDUYIVUDY
      QDTZYMDTZVAZUYLUYRWBUYIVUDVUGVAZVAZUYKUYQUUTUXKVUIUYJUYPUUCUWOUUJUXAVUIYN
      UWGDVUIAVUCVUFYNUWGUSAYIVUHWHZUYIVUBVUCVUGWDZUYIVUDVUEVUFWEZABCEDYEUWFYLY
      MSWFWGZWIVUIYTUWLUUBUWNVUIYTYLYSUWFUJZUWLVUIAVUCYSDTYTVUNUSVUJVUKVUIYSYOD
      VUIYAYMYOTYQYOTYSYOTYAYBYHAVUHWJVUIYMDYOVULAUWAYIVUHJVGZVHVUIYQDYOUYIVUDV
      UEVUFWKZVUOVHYOYRHYMYQUVGUVHWLVLVUOVMABCEDYEUWFYLYSSWFWGVUIYSUWKYLUWFVUIA
      VUFVUEYSUWKUSVUJVULVUPABCDDYRUWJYMYQPWFWGWMWNVUIUUBYNUUAUWJUJZUWNVUIAUYJU
      UADTZUUBVUQUSVUJVUIVUCVUFYHUYJVUKVULYAYBYHAVUHWOZBCEDDYEYLYMWPWRZVUIVUCVU
      EYHVURVUKVUPVUSBCEDDYEYLYQWPWRABCDDYRUWJYNUUAPWFWGVUIYNUWGUUAUWMUWJVUMVUI
      AVUCVUEUUAUWMUSVUJVUKVUPABCEDYEUWFYLYQSWFWGWQWNWSVUIUUGUWRUUIUWTVUIUUGUUF
      YMUWFUJZUWRVUIAUUFETVUFUUGVVAUSVUJVUIUUFUVDEVUIYBUUDUVDTZYLUVDTZUUFUVDTYA
      YBYHAVUHWTZVUIUUDEUVDUYIVUBVUCVUGXAZAUVTYIVUHNVGZVHZVUIYLEUVDVUKVVFVHZUVD
      UUEFUUDYLUVJUVKXBVLVVFVMVULABCEDYEUWFUUFYMSWFWGVUIUUFUWQYMUWFAVUDUUFUWQUS
      YIVUGABCEEUUEUWPUUDYLQWFXCXDWNVUIUUIUUHYNUWJUJZUWTVUIAUUHDTZUYJUUIVVIUSVU
      JVUIVUBVUFYHVVJVVEVULVUSBCEDDYEUUDYMWPWRVUTABCDDYRUWJUUHYNPWFWGVUIUUHUWSY
      NUWGUWJVUIAVUBVUFUUHUWSUSVUJVVEVULABCEDYEUWFUUDYMSWFWGVUMWQWNWSXEVUIUUPUX
      GUUSUXJVUIUUNUXEUUOUXFVUIUUNUUMYMUWFUJZUXEVUIAUUMETVUFUUNVVKUSVUJVUIUUMUV
      DEVUIYBVVBVVCUUMUVDTVVDVVGVVHUVDFUULUUDYLUVJUVLXFVLVVFVMVULABCEDYEUWFUUMY
      MSWFWGVUIUUMUXDYMUWFAVUDUUMUXDUSYIVUGABCEEUULUXCUUDYLRWFXCXDWNVUIUUOUUDYN
      UWFUJZUXFVUIAVUBUYJUUOVVLUSVUJVVEVUTABCEDYEUWFUUDYNSWFWGVUIYNUWGUUDUWFVUM
      WMWNWSVUIUURUXIYMVUIUURUUQYMUWFUJZUXIVUIAUUQETVUFUURVVMUSVUJVUIUUQUVDEVUI
      YBUUQUVDTVVDUVDFUUQUVJUVMXGXHVVFVMVULABCEDYEUWFUUQYMSWFWGVUIUUQUXHYMUWFAU
      UQUXHUSYIVUHABCEFGNORXIVGXDWNXJXKXKXLXMXMUYIUYOUVEUDEUVDAUVTYINWCZUYIUYNU
      VCUAEUVDVVNUYIUYMUVBUCDYOAUWAYIJWCZUYIUYLUVAUBDYOVVOUYIUYKUUKUUTUYIUYJYPU
      UCUUJUYIDYOYNVVOXNXPXQXOXOXOXOUYIVUAUXPUDEUXOAUYFYIOWCZUYIUYTUXNUAEUXOVVP
      UYIUYSUXMUCDUWHAUYGYIKWCZUYIUYRUXLUBDUWHVVQUYIUYQUXBUXKUYIUYPUWIUWOUXAUYI
      DUWHUWGVVQXNXPXQXOXOXOXOXRXEUVNUYAXSVRXT $.
  $}

  ${
    $d x y B $.  $d x y K $.  $d x y L $.  $d x y P $.  $d x y ph $.
    lmodpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    lmodpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    lmodpropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    lmodpropd.4 $e |- ( ph -> F = ( Scalar ` K ) ) $.
    lmodpropd.5 $e |- ( ph -> F = ( Scalar ` L ) ) $.
    lmodpropd.6 $e |- P = ( Base ` F ) $.
    lmodpropd.7 $e |- ( ( ph /\ ( x e. P /\ y e. B ) ) ->
      ( x ( .s ` K ) y ) = ( x ( .s ` L ) y ) ) $.
    $( If two structures have the same components (properties), one is a left
       module iff the other one is.  (Contributed by Mario Carneiro,
       8-Feb-2015.)  (Revised by Mario Carneiro, 27-Jun-2015.) $)
    lmodpropd $p |- ( ph -> ( K e. LMod <-> L e. LMod ) ) $=
      ( cfv cbs fveq2d cplusg cmulr csca eqid syl5eq cv wcel wceq eqtr3d adantr
      wa oveqd lmodprop2d ) ABCDEGUAPZHUAPZGHIJULUBUMUBAEFQPZULQPNAFULQLRUCAEUN
      UMQPNAFUMQMRUCKABUDZEUECUDZEUEUIZUIZULSPUMSPUOUPURULUMSAULUMUFUQAFULUMLMU
      GUHZRUJURULTPUMTPUOUPURULUMTUSRUJOUK $.
  $}

  ${
    $d A k y $.  $d B k y $.  $d ph k y $.  $d .x. k y $.  $d Y y $.
    $d S k y $.  $d K k y $.  $d X k y $.  $d .0. k y $.  $d R y $.
    gsumvsmul.b $e |- B = ( Base ` R ) $.
    gsumvsmul.s $e |- S = ( Scalar ` R ) $.
    gsumvsmul.k $e |- K = ( Base ` S ) $.
    gsumvsmul.z $e |- .0. = ( 0g ` R ) $.
    gsumvsmul.p $e |- .+ = ( +g ` R ) $.
    gsumvsmul.t $e |- .x. = ( .s ` R ) $.
    gsumvsmul.r $e |- ( ph -> R e. LMod ) $.
    gsumvsmul.a $e |- ( ph -> A e. V ) $.
    gsumvsmul.x $e |- ( ph -> X e. K ) $.
    gsumvsmul.y $e |- ( ( ph /\ k e. A ) -> Y e. B ) $.
    gsumvsmul.n $e |- ( ph -> ( k e. A |-> Y ) finSupp .0. ) $.
    $( Pull a scalar multiplication out of a sum of vectors.  This theorem
       properly generalizes ~ gsummulc2 , since every ring is a left module
       over itself.  (Contributed by Stefan O'Rear, 6-Feb-2015.)  (Revised by
       Mario Carneiro, 5-May-2015.)  (Revised by AV, 10-Jul-2019.) $)
    gsumvsmul $p |- ( ph -> ( R gsum ( k e. A |-> ( X .x. Y ) ) ) =
          ( X .x. ( R gsum ( k e. A |-> Y ) ) ) ) $=
      ( vy cv co cmpt cgsu clmod wcel ccmn lmodcmn syl cmnd cghm cmhm lmodvsghm
      cmnmnd syl2anc ghmmhm oveq2 gsummhm2 ) AUEBCKUEUFZGUGZKLGUGHKEHBLUHUIUGZG
      UGEEJLMNQAEUJUKZEULUKZTEUMUNZAVHEUOUKVIEUSUNUAAUECVEUHZEEUPUGUKZVJEEUQUGU
      KAVGKIUKVKTUBUEKGFICENOSPURUTEEVJVAUNUCUDVDLKGVBVDVFKGVBVC $.
  $}

  ${
    $d B k $.  $d D d k $.  $d K k $.  $d S d $.  $d V d $.  $d W d $.
    $d Z d $.  $d ph d k $.  $d .* d k $.  $d .0. d $.
    mptscmfsupp0.d $e |- ( ph -> D e. V ) $.
    mptscmfsupp0.q $e |- ( ph -> Q e. LMod ) $.
    mptscmfsupp0.r $e |- ( ph -> R = ( Scalar ` Q ) ) $.
    mptscmfsupp0.k $e |- K = ( Base ` Q ) $.
    mptscmfsupp0.s $e |- ( ( ph /\ k e. D ) -> S e. B ) $.
    mptscmfsupp0.w $e |- ( ( ph /\ k e. D ) -> W e. K ) $.
    mptscmfsupp0.0 $e |- .0. = ( 0g ` Q ) $.
    mptscmfsupp0.z $e |- Z = ( 0g ` R ) $.
    mptscmfsupp0.m $e |- .* = ( .s ` Q ) $.
    mptscmfsupp0.f $e |- ( ph -> ( k e. D |-> S ) finSupp Z ) $.
    $( A mapping to a scalar product is finitely supported if the mapping to
       the scalar is finitely supported.  (Contributed by AV, 5-Oct-2019.) $)
    mptscmfsupp0 $p |- ( ph -> ( k e. D |-> ( S .* W ) ) finSupp .0. ) $=
      ( vd co cmpt cvv wcel wfun csupp cfn wss cfsupp wbr mptexg syl funmpt a1i
      c0g cfv fvex eqeltri fsuppimpd cv wne crab wa wceq simpr ralrimiva adantr
      wral rspcsbela syl2anc eqid fvmpts eqeq1d oveq1 csca fveq2d syl5eq oveq1d
      csb clmod lmod0vs eqtrd sylan9eqr wb csbov12g adantl ovex syl6eqel mpbird
      ex sylbid necon3d ss2rabdv wfn rgenw fnmpt mp1i suppvalfn syl3anc 3sstr4d
      suppssfifsupp syl32anc ) AGCFKHUEZUFZUGUHZXHUIZLUGUHZGCFUFZMUJUEZUKUHXHLU
      JUEZXMULXHLUMUNACJUHZXINGCXGJUOUPXJAGCXGUQURXKALDUSUTUGTDUSVAVBURZAXLMUCV
      CAUDVDZXHUTZLVEZUDCVFZXQXLUTZMVEZUDCVFZXNXMAXSYBUDCAXQCUHZVGZYAMXRLYEYAMV
      HGXQFWCZMVHZXRLVHZYEYAYFMYEYDYFBUHZYAYFVHAYDVIZYEYDFBUHZGCVLZYIYJAYLYDAYK
      GCRVJZVKGXQCFBVMVNGXQFCXLBXLVOZVPVNVQYEYGYHYEYGVGYHYFGXQKWCZHUEZLVHZYGYEY
      PMYOHUEZLYFMYOHVRYEYRDVSUTZUSUTZYOHUEZLYEMYTYOHYEMEUSUTZYTUAYEEYSUSAEYSVH
      YDPVKVTWAWBYEDWDUHZYOIUHZUUALVHAUUCYDOVKYEYDKIUHZGCVLZUUDYJAUUFYDAUUEGCSV
      JVKGXQCKIVMVNHYSYTIDYOLQYSVOUBYTVOTWEVNWFWGYEYHYQWHYGYEXRYPLYEXRGXQXGWCZY
      PYEYDUUGUGUHXRUUGVHYJYEUUGYPUGYDUUGYPVHAGXQFKHCWIWJZYFYOHWKWLGXQXGCXHUGXH
      VOZVPVNUUHWFVQVKWMWNWOWPWQAXHCWRZXOXKXNXTVHXGUGUHZGCVLUUJAUUKGCFKHWKWSGCX
      GXHUGUUIWTXANXPUDXHJUGCLXBXCAXLCWRZXOMUGUHZXMYCVHAYLUULYMGCFXLBYNWTUPNUUM
      AMUUBUGUAEUSVAVBURUDXLJUGCMXBXCXDXMXHUGUGLXEXF $.
  $}

  ${
    $d A k $.  $d B k $.  $d P k $.  $d S k $.  $d X k $.  $d .x. k $.
    $d ph k $.
    mptscmfsuppd.b $e |- B = ( Base ` P ) $.
    mptscmfsuppd.s $e |- S = ( Scalar ` P ) $.
    mptscmfsuppd.n $e |- .x. = ( .s ` P ) $.
    mptscmfsuppd.p $e |- ( ph -> P e. LMod ) $.
    mptscmfsuppd.x $e |- ( ph -> X e. V ) $.
    mptscmfsuppd.z $e |- ( ( ph /\ k e. X ) -> Z e. B ) $.
    mptscmfsuppd.a $e |- ( ph -> A : X --> Y ) $.
    mptscmfsuppd.f $e |- ( ph -> A finSupp ( 0g ` S ) ) $.
    $( A function mapping to a scalar product in which one factor is finitely
       supported is finitely supported.  Formerly part of proof for ~ ply1coe .
       (Contributed by Stefan O'Rear, 21-Mar-2015.)  (Revised by AV,
       8-Aug-2019.)  (Proof shortened by AV, 18-Oct-2019.) $)
    mptscmfsuppd $p |- ( ph -> ( k e. X |-> ( ( A ` k ) .x. Z ) )
                               finSupp ( 0g ` P ) ) $=
      ( cfv cvv cv c0g csca wceq a1i wcel wa fvexd eqid cfsupp feqmptd eqbrtrrd
      cmpt mptscmfsupp0 ) AUAIDEGUBZBTZGFCHKDUCTZEUCTZPOEDUDTUEAMUFLAUPIUGUHUPB
      UIQURUJUSUJNABGIUQUNUSUKAGIJBRULSUMUO $.
  $}

  ${
    $d .X. q r w x $.  $d .X. s v $.  $d .x. q r w x $.  $d .x. s v $.
    $d K q r x $.  $d K s v $.  $d V q r w x $.  $d V s v $.  $d a r w $.
    $d a s v $.  $d b q r w $.  $d b s v $.  $d c s v $.  $d c w $.
    rmodislmod.v $e |- V = ( Base ` R ) $.
    rmodislmod.a $e |- .+ = ( +g ` R ) $.
    rmodislmod.s $e |- .x. = ( .s ` R ) $.
    rmodislmod.f $e |- F = ( Scalar ` R ) $.
    rmodislmod.k $e |- K = ( Base ` F ) $.
    rmodislmod.p $e |- .+^ = ( +g ` F ) $.
    rmodislmod.t $e |- .X. = ( .r ` F ) $.
    rmodislmod.u $e |- .1. = ( 1r ` F ) $.
    rmodislmod.r $e |- ( R e. Grp /\ F e. Ring
                         /\ A. q e. K A. r e. K A. x e. V A. w e. V
                     ( ( ( w .x. r ) e. V
                      /\ ( ( w .+ x ) .x. r ) = ( ( w .x. r ) .+ ( x .x. r ) )
                      /\ ( w .x. ( q .+^ r ) ) = ( ( w .x. q ) .+ ( w .x. r ) )
                    ) /\ ( ( w .x. ( q .X. r ) ) = ( ( w .x. q ) .x. r )
                      /\ ( w .x. .1. ) = w ) ) ) $.
    rmodislmod.m $e |- .* = ( s e. K , v e. V |-> ( v .x. s ) ) $.
    rmodislmod.l $e |- L = ( R sSet <. ( .s ` ndx ) , .* >. ) $.
    $( Lemma for ~ rmodislmod .  This is the part of the proof of ~ rmodislmod
       which requires the scalar ring to be commutative.  (Contributed by AV,
       3-Dec-2021.) $)
    rmodislmodlem $p |- ( ( F e. CRing /\ ( a e. K /\ b e. K /\ c e. V ) )
                          -> ( ( a .X. b ) .* c ) = ( a .* ( b .* c ) ) ) $=
      ( ccrg wcel cv w3a wa co wceq cgrp crg wral wi simprl 2ralimi ralrot3 wne
      grpbn0 3ad2ant1 ax-mp rspn0 weq oveq1 oveq2d oveq1d eqeq12d rspc3v 3com12
      c0 oveq2 syl5com sylbi eqcom syl6ibr 3ad2ant3 adantl crngcom 3expb expcom
      syl ancoms 3adant3 impcom eqtrd cvv cmpt2 simp2 simp3 ovexd ovmpt2d simp1
      oveq12 simpl1 ringgrp 3ad2ant2 ralcom eleq1d rspc2v 3adant1 ringcl 3expib
      a1i 3syl 3eqtr4rd ) JULUMZRUNZLUMZSUNZLUMZTUNZNUMZUOZUPZXSXQGUQZXOGUQZXSX
      OXQHUQZGUQZXOXQXSKUQZKUQZYEXSKUQZYBYDXSXQXOHUQZGUQZYFYAYDYKURZXNFUSUMZJUT
      UMZBUNZPUNZGUQZNUMZYOAUNZDUQYPGUQYQYSYPGUQDUQURZYOQUNZYPEUQGUQYOUUAGUQZYQ
      DUQURZUOZYOUUAYPHUQZGUQZUUBYPGUQZURZYOIGUQYOURZUPZUPZBNVAANVAZPLVAQLVAZUO
      ZYAYLVBZUIUUMYMUUOYNUUMUUHBNVAZANVAZPLVAQLVAZUUOUULUUQQPLLUUKUUHABNNUUDUU
      HUUIVCVDVDUURYAYKYDURZYLUURUUPPLVAQLVAZANVAZYAUUSVBUUPQPALLNVEUVAUUTYAUUS
      NVRVFZUVAUUTVBUUNUVBUIYMYNUVBUUMNFUAVGVHVIZUUTANVJVIXRXPXTUUTUUSVBUUHUUSY
      OXQYPHUQZGUQZYOXQGUQZYPGUQZURYOYJGUQZUVFXOGUQZURQPBXQXOXSLLNQSVKZUUFUVEUU
      GUVGUVJUUEUVDYOGUUAXQYPHVLVMUVJUUBUVFYPGUUAXQYOGVSVNVOPRVKZUVEUVHUVGUVIUV
      KUVDYJYOGYPXOXQHVSVMYPXOUVFGVSVOBTVKZUVHYKUVIYDYOXSYJGVLUVLUVFYCXOGYOXSXQ
      GVLZVNVOVPVQVTWAYDYKWBWCWIWDVIWEYBYJYEXSGYAXNYJYEURZXPXRXNUVNVBZXTXRXPUVO
      XNXRXPUPUVNXNXRXPUVNLJHXQXOUEUGWFWGWHWJWKWLVMWMYAYHYDURXNYAYHXOYCKUQYDYAY
      GYCXOKYAOCXQXSLNCUNZOUNZGUQZYCKWNKOCLNUVRWOURYAUJXKZOSVKZCTVKZUPUVRYCURZY
      AUWAUVTUWBUVPXSUVQXQGXAWJWEXPXRXTWPXPXRXTWQZYAXSXQGWRWSVMYAOCXOYCLNUVRYDK
      WNUVSORVKZUVPYCURZUPUVRYDURZYAUWEUWDUWFUVPYCUVQXOGXAWJWEXPXRXTWTXRXTYCNUM
      ZXPUUNXRXTUPZUWGVBZUIUUMYMUWIYNUUMYRBNVAZANVAZPLVAZQLVAZUWLUWIUULUWKQPLLU
      UKYRABNNYRYTUUCUUJXBVDVDLVRVFZUWMUWLVBUUNUWNUIYNYMUWNUUMYNJUSUMUWNJXCLJUE
      VGWIXDVIUWLQLVJVIUWLUWJPLVAZANVAZUWIUWJPALNXEUWPUWOUWHUWGUVBUWPUWOVBUVCUW
      OANVJVIYRUWGUVFNUMPBXQXSLNPSVKYQUVFNYPXQYOGVSXFUVLUVFYCNUVMXFXGVTWAXLWDVI
      XHYAYCXOGWRWSWMWEYAYIYFURXNYAOCYEXSLNUVRYFKWNUVSUVQYEURZUWAUPUVRYFURZYAUW
      AUWQUWRUVPXSUVQYEGXAWJWEXPXRYELUMZXTUUNXPXRUPUWSVBZUIYNYMUWTUUMYNXPXRUWSL
      JHXOXQUEUGXIXJXDVIWKUWCYAXSYEGWRWSWEXM $.

    $d F a b c $.  $d F s v $.  $d K a b c $.  $d L a $.  $d V a b c $.
    $d .1. a $.  $d .1. s v $.  $d .1. q r w x $.  $d .X. b c $.
    $d .+ a b c $.  $d .+ q r w x $.  $d .+ s v $.  $d .+^ q r w x $.
    $d .+^ s v $.  $d .+^ b c $.  $d .* a b c $.  $d a q x $.  $d c x $.
    $( The right module ` R ` induces a left module ` L ` by replacing the
       scalar multiplication with a reversed multiplication if the scalar ring
       is commutative.  The hypothesis "rmodislmod.r" is a definition of a
       right module analogous to the definition ~ df-lmod of a left module, see
       also ~ islmod .  (Contributed by AV, 3-Dec-2021.) $)
    rmodislmod $p |- ( F e. CRing -> L e. LMod ) $=
      ( va vb vc ccrg wcel cbs cfv wceq cnx cvsca cop csts co baseid c1 df-base
      1nn ndxarg 1re 1lt6 ltneii vscandx neeqtrri eqnetri setsnid eqcomi fveq2i
      c6 eqtri a1i cplusg plusgid c2 plusgndx 2lt6 3eqtr4i csca scaid c5 scandx
      2re 5re 5lt6 cgrp cvv crg cv w3a wa wral simp1i fvexi mp2an vscaid setsid
      mpt2exg cmulr cur crngring oveq12 ancoms adantl simp2 simp3 ovexd ovmpt2d
      weq wi 2ralimi c0 wne grpbn0 syl 3ad2ant2 ax-mp rspn0 oveq2 oveq1 3adant1
      eleq1d syl5com sylbi 3syl simp1 grpcl oveq12d eqeq12d oveq1d oveq2d eqtrd
      3ad2ant3 rspc3v eqtr4i grpprop mpbi simpl1 ringgrp ralcom 3ad2ant1 rspc2v
      eqeltrd mp3an1 simpl2 3com23 eqtr4d simpl3 ralrot3 3expib 3adant3 3eqtr4d
      cmpt2 rmodislmodlem ringidcl adantr simpr simprr id rspcv islmodd ) JULUM
      ZUIUJUKLDEKHIJNMNMUNUOZUPUVHNFUQURUOZKUSUTVAZUNUOZUVINFUNUOZUVLRKUVJUNFVB
      UQUNUOVCUVJUNVCVDVEVFVCVPUVJVCVPVGVHVIVJVKVLVMVQUVKMUNMUVKUHVNZVOVQZVRDMV
      SUOZUPUVHFVSUOZUVKVSUOZDUVPKUVJVSFVTUQVSUOWAUVJWBWAVPUVJWAVPWIWCVIVJVKVLV
      MZSMUVKVSUHVOZWDVRJMWEUOZUPUVHFWEUOUVKWEUOJUWAKUVJWEFWFUQWEUOWGUVJWHWGVPU
      VJWGVPWJWKVIVJVKVLVMUAMUVKWEUHVOWDVRKMURUOZUPUVHKUVKURUOZUWBFWLUMZKWMUMZK
      UWCUPUWDJWNUMZBWOZPWOZGVAZNUMZUWGAWOZDVAZUWHGVAZUWIUWKUWHGVAZDVAZUPZUWGQW
      OZUWHEVAZGVAZUWGUWQGVAZUWIDVAZUPZWPZUWGUWQUWHHVAGVAUWTUWHGVAUPZUWGIGVAZUW
      GUPZWQZWQZBNWRANWRZPLWRQLWRZUFWSZLWMUMNWMUMUWELJUNUBWTNFUNRWTOCLNCWOZOWOZ
      GVAZWMWMKUGXDXAWLKURWMFXBXCXAUVKMURUVNVOVQVRLJUNUOUPUVHUBVREJVSUOUPUVHUCV
      RHJXEUOUPUVHUDVRIJXFUOUPUVHUEVRJXGZMWLUMZUVHUWDUXPUXKFMUVMNUVINUVMRVNUVOV
      QUVQUVRUVPUVSUVTUUAUUBUUCVRUVHUIWOZLUMZUJWOZNUMZWPZUXQUXSKVAZUXSUXQGVAZNU
      YAOCUXQUXSLNUXNUYCKWMKOCLNUXNUUSUPZUYAUGVROUIXOZCUJXOZWQZUXNUYCUPZUYAUYFU
      YEUYHUXLUXSUXMUXQGXHXIZXJUVHUXRUXTXKUVHUXRUXTXLUYAUXSUXQGXMXNUWDUWFUXJWPZ
      UYAUYCNUMZXPZUFUXJUWDUYLUWFUXJUWJBNWRZANWRZPLWRZQLWRZUYOUYLUXIUYNQPLLUXHU
      WJABNNUWJUWPUXBUXGUUDXQXQLXRXSZUYPUYOXPUYJUYQUFUWFUWDUYQUXJUWFJWLUMZUYQJU
      UEZLJUBXTYAYBYCZUYOQLYDYCUYOUYMPLWRZANWRZUYLUYMPALNUUFVUBVUAUYAUYKNXRXSZV
      UBVUAXPUYJVUCUFUWDUWFVUCUXJNFRXTUUGYCZVUAANYDYCUXRUXTVUAUYKXPUVHUWJUYKUWG
      UXQGVAZNUMPBUXQUXSLNPUIXOZUWIVUENUWHUXQUWGGYEZYHBUJXOZVUEUYCNUWGUXSUXQGYF
      ZYHUUHYGYIYJYKYSYCUUIUVHUXRUXTUKWOZNUMZWPZWQUXQUXSVUJDVAZKVAZUYCVUJUXQGVA
      ZDVAZUYBUXQVUJKVAZDVAZVULVUNVUPUPUVHVULVUNVUMUXQGVAZVUPVULOCUXQVUMLNUXNVU
      SKWMUYDVULUGVRZUYEUXLVUMUPZWQUXNVUSUPZVULVVAUYEVVBUXLVUMUXMUXQGXHXIXJUXRU
      XTVUKYLZUXTVUKVUMNUMZUXRUWDUXTVUKVVDUXKNDFUXSVUJRSYMUUJYGVULVUMUXQGXMXNUY
      JVULVUSVUPUPZXPZUFUXJUWDVVFUWFUXJUWPBNWRANWRZPLWRZQLWRZVVFUXIVVGQPLLUXHUW
      PABNNUWJUWPUXBUXGUUKXQXQVVIVVHVULVVEUYQVVIVVHXPUYTVVHQLYDYCUXRVUKUXTVVHVV
      EXPUWPVVEUWLUXQGVAZVUEUWKUXQGVAZDVAZUPUWGVUJDVAZUXQGVAZVUEVUODVAZUPPABUXQ
      VUJUXSLNNVUFUWMVVJUWOVVLUWHUXQUWLGYEVUFUWIVUEUWNVVKDVUGUWHUXQUWKGYEYNYOAU
      KXOZVVJVVNVVLVVOVVPUWLVVMUXQGUWKVUJUWGDYEYPVVPVVKVUOVUEDUWKVUJUXQGYFYQYOV
      UHVVNVUSVVOVUPVUHVVMVUMUXQGUWGUXSVUJDYFYPVUHVUEUYCVUODVUIYPYOYTUULYIYAYSY
      CYRXJVULVURVUPUPUVHVULUYBUYCVUQVUODVULOCUXQUXSLNUXNUYCKWMVUTUYGUYHVULUYIX
      JVVCUXRUXTVUKXKVULUXSUXQGXMXNVULOCUXQVUJLNUXNVUOKWMVUTUYECUKXOZWQZUXNVUOU
      PZVULVVQUYEVVSUXLVUJUXMUXQGXHXIZXJVVCUXRUXTVUKXLVULVUJUXQGXMXNYNXJUUMUXRU
      XSLUMZVUKWPZUXQUXSEVAZVUJKVAZVUQUXSVUJKVAZDVAZUPUVHVWBVUJVWCGVAZVUOVUJUXS
      GVAZDVAZVWDVWFUYJVWBVWGVWIUPZXPZUFUXJUWDVWKUWFUXJUXBBNWRZANWRZPLWRQLWRZVW
      KUXIVWMQPLLUXHUXBABNNUWJUWPUXBUXGUUNXQXQVWNVWLPLWRQLWRZANWRZVWKVWLQPALLNU
      UOVWPVWOVWBVWJVUCVWPVWOXPVUDVWOANYDYCUXBVWJUWGUXQUWHEVAZGVAZVUEUWIDVAZUPU
      WGVWCGVAZVUEUWGUXSGVAZDVAZUPQPBUXQUXSVUJLLNQUIXOZUWSVWRUXAVWSVXCUWRVWQUWG
      GUWQUXQUWHEYFYQVXCUWTVUEUWIDUWQUXQUWGGYEYPYOPUJXOZVWRVWTVWSVXBVXDVWQVWCUW
      GGUWHUXSUXQEYEYQVXDUWIVXAVUEDUWHUXSUWGGYEYQYOBUKXOZVWTVWGVXBVWIUWGVUJVWCG
      YFVXEVUEVUOVXAVWHDUWGVUJUXQGYFUWGVUJUXSGYFYNYOYTYIYJYAYSYCVWBOCVWCVUJLNUX
      NVWGKWMUYDVWBUGVRZUXMVWCUPZVVQWQUXNVWGUPZVWBVVQVXGVXHUXLVUJUXMVWCGXHXIXJU
      XRVWAVWCLUMZVUKUYJUXRVWAWQVXIXPZUFUWFUWDVXJUXJUWFUYRVXJUYSUYRUXRVWAVXILEJ
      UXQUXSUBUCYMUUPYAYBYCUUQUXRVWAVUKXLZVWBVUJVWCGXMXNVWBVUQVUOVWEVWHDVWBOCUX
      QVUJLNUXNVUOKWMVXFVVRVVSVWBVVTXJUXRVWAVUKYLVXKVWBVUJUXQGXMXNVWBOCUXSVUJLN
      UXNVWHKWMVXFOUJXOZVVQWQUXNVWHUPZVWBVVQVXLVXMUXLVUJUXMUXSGXHXIXJUXRVWAVUKX
      KVXKVWBVUJUXSGXMXNYNUURXJABCDEFGHIJKLMNOPQUIUJUKRSTUAUBUCUDUEUFUGUHUUTUVH
      UXQNUMZWQZIUXQKVAUXQIGVAZUXQVXOOCIUXQLNUXNVXPKWMUYDVXOUGVRUXMIUPZCUIXOZWQ
      UXNVXPUPZVXOVXRVXQVXSUXLUXQUXMIGXHXIXJUVHILUMZVXNUVHUWFVXTUXOLJIUBUEUVAYA
      UVBUVHVXNUVCVXOUXQIGXMXNUYJVXOVXPUXQUPZXPZUFUXJUWDVYBUWFUXJUXFBNWRZANWRZP
      LWRZQLWRZVYEVYBUXIVYDQPLLUXHUXFABNNUXCUXDUXFUVDXQXQUYQVYFVYEXPUYTVYEQLYDY
      CVYEVYDVYBUYQVYEVYDXPUYTVYDPLYDYCVYDVYCVXOVYAVUCVYDVYCXPVUDVYCANYDYCVXNVY
      CVYAXPUVHUXFVYABUXQNBUIXOZUXEVXPUWGUXQUWGUXQIGYFVYGUVEYOUVFXJYIYAYKYSYCYR
      UVG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subspaces and spans in a left module
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c LSubSp $.

  $( Extend class notation with linear subspaces of a left module or left
     vector space. $)
  clss $a class LSubSp $.

  ${
    $d a b s x w $.
    $( Define the set of linear subspaces of a left module or left vector
       space.  (Contributed by NM, 8-Dec-2013.) $)
    df-lss $a |- LSubSp = ( w e. _V |->
     { s e. ( ~P ( Base ` w ) \ { (/) } ) |
        A. x e. ( Base ` ( Scalar ` w ) ) A. a e. s A. b e. s
          ( ( x ( .s ` w ) a ) ( +g ` w ) b ) e. s } ) $.
  $}

  ${
    $d s w .+ $.  $d s w x B $.  $d s w V $.  $d a b s w x W $.  $d s w .x. $.
    $d a b s x U $.
    lssset.f $e |- F = ( Scalar ` W ) $.
    lssset.b $e |- B = ( Base ` F ) $.
    lssset.v $e |- V = ( Base ` W ) $.
    lssset.p $e |- .+ = ( +g ` W ) $.
    lssset.t $e |- .x. = ( .s ` W ) $.
    lssset.s $e |- S = ( LSubSp ` W ) $.
    $( The set of all (not necessarily closed) linear subspaces of a left
       module or left vector space.  (Contributed by NM, 8-Dec-2013.)  (Revised
       by Mario Carneiro, 15-Jul-2014.) $)
    lssset $p |- ( W e. X -> S = { s e. ( ~P V \ { (/) } ) |
         A. x e. B A. a e. s A. b e. s ( ( x .x. a ) .+ b ) e. s } ) $=
      ( cfv cbs vw wcel clss cv co wral cpw csn cdif crab cvv wceq cvsca cplusg
      c0 elex csca fveq2 syl6eqr pweqd difeq1d fveq2d oveqd oveq1d eqtrd eleq1d
      2ralbidv raleqbidv rabeqbidv df-lss fvex eqeltri difexg ax-mp rabex fvmpt
      pwex syl syl5eq ) HIUBZDHUCSZAUDZKUDZEUEZLUDZCUEZJUDZUBZLWGUFKWGUFZABUFZJ
      GUGZUOUHZUIZUJZRVTHUKUBWAWNULHIUPUAHWBWCUAUDZUMSZUEZWEWOUNSZUEZWGUBZLWGUF
      KWGUFZAWOUQSZTSZUFZJWOTSZUGZWLUIZUJWNUKUCWOHULZXDWJJXGWMXHXFWKWLXHXEGXHXE
      HTSZGWOHTUROUSUTVAXHXAWIAXCBXHXCFTSBXHXBFTXHXBHUQSFWOHUQURMUSVBNUSXHWTWHK
      LWGWGXHWSWFWGXHWSWDWEWRUEWFXHWQWDWEWRXHWPEWBWCXHWPHUMSEWOHUMURQUSVCVDXHWR
      CWDWEXHWRHUNSCWOHUNURPUSVCVEVFVGVHVIAUAJKLVJWJJWMWKUKUBWMUKUBGGXIUKOHTVKV
      LVQWKWLUKVMVNVOVPVRVS $.

    $( The predicate "is a subspace" (of a left module or left vector space).
       (Contributed by NM, 8-Dec-2013.)  (Revised by Mario Carneiro,
       8-Jan-2015.) $)
    islss $p |- ( U e. S <-> ( U C_ V /\ U =/= (/)
          /\ A. x e. B A. a e. U A. b e. U ( ( x .x. a ) .+ b ) e. U ) ) $=
      ( wcel c0 wral vs cvv wss wne cv co w3a clss cfv elfvex eleq2s wceq fvprc
      cbs syl5eq sseq2d biimpcd ss0 syl6 necon1ad imp 3adant3 cpw csn cdif crab
      wn lssset eleq2d eldifsn fvex eqeltri elpw2 anbi1i bitri eleq2 raleqbi1dv
      wa ralbidv elrab df-3an 3bitr4i syl6bb pm5.21nii ) FDRZIUBRZFHUCZFSUDZAUE
      JUEEUFKUECUFZFRZKFTZJFTZABTZUGZWFFIUHUIDFIUHUJQUKWGWHWFWMWGWHWFWGWFFSWGWF
      VGZFSUCZFSULWOWGWPWOHSFWOHIUNUIZSNIUNUMUOUPUQFURUSUTVAVBWFWEFWIUAUEZRZKWR
      TZJWRTZABTZUAHVCZSVDVEZVFZRZWNWFDXEFABCDEGHIUBUAJKLMNOPQVHVIFXDRZWMVRWGWH
      VRZWMVRXFWNXGXHWMXGFXCRZWHVRXHFXCSVJXIWGWHFHHWQUBNIUNVKVLVMVNVOVNXBWMUAFX
      DWRFULXAWLABWTWKJWRFWSWJKWRFWRFWIVPVQVQVSVTWGWHWMWAWBWCWD $.
  $}

  ${
    $d a b x ph $.  $d a b x U $.  $d a b x W $.  $d a b B $.
    islssd.f $e |- ( ph -> F = ( Scalar ` W ) ) $.
    islssd.b $e |- ( ph -> B = ( Base ` F ) ) $.
    islssd.v $e |- ( ph -> V = ( Base ` W ) ) $.
    islssd.p $e |- ( ph -> .+ = ( +g ` W ) ) $.
    islssd.t $e |- ( ph -> .x. = ( .s ` W ) ) $.
    islssd.s $e |- ( ph -> S = ( LSubSp ` W ) ) $.
    islssd.u $e |- ( ph -> U C_ V ) $.
    islssd.z $e |- ( ph -> U =/= (/) ) $.
    islssd.c $e |- ( ( ph /\ ( x e. B /\ a e. U /\ b e. U ) ) ->
            ( ( x .x. a ) .+ b ) e. U ) $.
    $( Properties that determine a subspace of a left module or left vector
       space.  (Contributed by NM, 8-Dec-2013.)  (Revised by Mario Carneiro,
       8-Jan-2015.) $)
    islssd $p |- ( ph -> U e. S ) $=
      ( clss cfv cbs wss c0 wne cv cvsca co cplusg wcel wral csca sseqtrd 3exp2
      wa imp43 ralrimivva ex fveq2d eqtrd eleq2d oveq1d eleq1d 2ralbidv 3imtr3d
      oveqd ralrimiv eqid islss syl3anbrc eleqtrrd ) AGJUBUCZEAGJUDUCZUEGUFUGBU
      HZKUHZJUIUCZUJZLUHZJUKUCZUJZGULZLGUMKGUMZBJUNUCZUDUCZUMGVNULAGIVOSOUOTAWD
      BWFAVPCULZVPVQFUJZVTDUJZGULZLGUMKGUMZVPWFULWDAWGWKAWGUQWJKLGGAWGVQGULZVTG
      ULZWJAWGWLWMWJUAUPURUSUTACWFVPACHUDUCWFNAHWEUDMVAVBVCAWJWCKLGGAWIWBGAWIWH
      VTWAUJWBADWAWHVTPVHAWHVSVTWAAFVRVPVQQVHVDVBVEVFVGVIBWFWAVNVRGWEVOJKLWEVJW
      FVJVOVJWAVJVRVJVNVJVKVLRVM $.
  $}

  ${
    $d a b x U $.  $d a b x V $.  $d a b x W $.
    lssss.v $e |- V = ( Base ` W ) $.
    lssss.s $e |- S = ( LSubSp ` W ) $.
    $( A subspace is a set of vectors.  (Contributed by NM, 8-Dec-2013.)
       (Revised by Mario Carneiro, 8-Jan-2015.) $)
    lssss $p |- ( U e. S -> U C_ V ) $=
      ( vx va vb wcel wss c0 wne cv cvsca cfv co cplusg wral eqid islss simp1bi
      csca cbs ) BAJBCKBLMGNHNDOPZQINDRPZQBJIBSHBSGDUCPZUDPZSGUHUFAUEBUGCDHIUGT
      UHTEUFTUETFUAUB $.

    $( A subspace member is a vector.  (Contributed by NM, 11-Jan-2014.)
       (Revised by Mario Carneiro, 8-Jan-2015.) $)
    lssel $p |- ( ( U e. S /\ X e. U ) -> X e. V ) $=
      ( wcel lssss sselda ) BAHBCEABCDFGIJ $.

    $( The set of vectors in a left module is a subspace.  (Contributed by NM,
       8-Dec-2013.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lss1 $p |- ( W e. LMod -> V e. S ) $=
      ( vx va vb clmod wcel csca cfv cbs cplusg eqidd wceq a1i cv co eqid cvsca
      clss wss ssid lmodbn0 wa simpl lmodvscl 3adant3r3 simpr3 lmodvacl syl3anc
      w3a islssd ) CIJZFCKLZMLZCNLZACUALZBUPBCGHUOUPOUOUQOBCMLPUODQUOUROUOUSOAC
      UBLPUOEQBBUCUOBUDQBCDUEUOFRZUQJZGRZBJZHRZBJZUMZUFUOUTVBUSSZBJZVEVGVDURSBJ
      UOVFUGUOVAVCVHVEUTUSUPUQBCVBDUPTUSTUQTUHUIUOVAVCVEUJURBCVGVDDURTUKULUN $.

    $d x S $.
    lssuni.w $e |- ( ph -> W e. LMod ) $.
    $( The union of all subspaces is the vector space.  (Contributed by NM,
       13-Mar-2015.) $)
    lssuni $p |- ( ph -> U. S = V ) $=
      ( vx cuni cv wss crab wceq rabid2 lssss mprgbir unieqi clmod wcel lss1
      unimax 3syl syl5eq ) ABIHJZCKZHBLZIZCBUFBUFMUEHBUEHBNBUDCDEFOPQADRSCBSUGC
      MGBCDEFTHCBUAUBUC $.
  $}

  ${
    $d a b x U $.  $d a b x W $.
    lssn0.s $e |- S = ( LSubSp ` W ) $.
    $( A subspace is not empty.  (Contributed by NM, 12-Jan-2014.)  (Revised by
       Mario Carneiro, 8-Jan-2015.) $)
    lssn0 $p |- ( U e. S -> U =/= (/) ) $=
      ( vx va vb wcel cbs cfv wss c0 wne cv cvsca co cplusg wral csca eqid
      islss simp2bi ) BAHBCIJZKBLMENFNCOJZPGNCQJZPBHGBRFBRECSJZIJZREUGUEAUDBUFU
      CCFGUFTUGTUCTUETUDTDUAUB $.
  $}

  $( The empty structure has no subspaces (for use with ~ fvco4i ).
     (Contributed by Stefan O'Rear, 31-Mar-2015.) $)
  00lss $p |- (/) = ( LSubSp ` (/) ) $=
    ( va c0 clss cfv wcel noel wceq wss base0 eqid lssss ss0 syl neneqd pm2.65i
    cv lssn0 2false eqriv ) ABBCDZAPZBEUATEZUAFUBUABGZUBUABHUCTUABBITJZKUALMUBU
    ABTUABUDQNORS $.

  ${
    $d x B $.  $d a b x .+ $.  $d a b x .x. $.  $d a b x U $.  $d a b x W $.
    $d a b X $.  $d b Y $.  $d a b x Z $.
    lsscl.f $e |- F = ( Scalar ` W ) $.
    lsscl.b $e |- B = ( Base ` F ) $.
    lsscl.p $e |- .+ = ( +g ` W ) $.
    lsscl.t $e |- .x. = ( .s ` W ) $.
    lsscl.s $e |- S = ( LSubSp ` W ) $.
    $( Closure property of a subspace.  (Contributed by NM, 8-Dec-2013.)
       (Revised by Mario Carneiro, 8-Jan-2015.) $)
    lsscl $p |- ( ( U e. S /\ ( Z e. B /\ X e. U /\ Y e. U ) ) ->
      ( ( Z .x. X ) .+ Y ) e. U ) $=
      ( vx va vb wcel co cv wral w3a cbs cfv wss c0 wne eqid islss simp3bi wceq
      oveq1 oveq1d eleq1d oveq2 rspc3v mpan9 ) ECSZPUAZQUAZDTZRUAZBTZESZREUBQEU
      BPAUBZJASHESIESUCJHDTZIBTZESZUSEGUDUEZUFEUGUHVFPABCDEFVJGQRKLVJUIMNOUJUKV
      EVIJVADTZVCBTZESVGVCBTZESPQRJHIAEEUTJULZVDVLEVNVBVKVCBUTJVADUMUNUOVAHULZV
      LVMEVOVKVGVCBVAHJDUPUNUOVCIULVMVHEVCIVGBUPUOUQUR $.
  $}

  ${
    lssvsubcl.m $e |- .- = ( -g ` W ) $.
    lssvsubcl.s $e |- S = ( LSubSp ` W ) $.
    $( Closure of vector subtraction in a subspace.  (Contributed by NM,
       31-Mar-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lssvsubcl $p |- ( ( ( W e. LMod /\ U e. S )
          /\ ( X e. U /\ Y e. U ) ) -> ( X .- Y ) e. U ) $=
      ( clmod wcel wa co cfv cbs wceq eqid lssel syl3anc syl eqeltrd csca cvsca
      cur cminusg cplusg ad2ant2lr ad2ant2l lmodvsubval2 cgrp lmodfgrp grpinvcl
      simpll lmod1cl syl2anc lmodvscl lmodcom simplr simprr simprl syl13anc
      lsscl ) DIJZBAJZKZEBJZFBJZKZKZEFCLZEDUAMZUCMZVJUDMZMZFDUBMZLZDUEMZLZBVHVB
      EDNMZJZFVRJZVIVQOVBVCVGULZVCVEVSVBVFABVRDEVRPZHQUFZVCVFVTVBVEABVRDFWBHQUG
      ZEFVPVNVKVJCVLVRDWBVPPZGVJPZVNPZVLPZVKPZUHRVHVQVOEVPLZBVHVBVSVOVRJZVQWJOW
      AWCVHVBVMVJNMZJZVTWKWAVHVJUIJZVKWLJZWMVHVBWNWAVJDWFUJSVHVBWOWAVKVJWLDWFWL
      PZWIUMSWLVJVLVKWPWHUKUNZWDVMVNVJWLVRDFWBWFWGWPUORVPVRDEVOWBWEUPRVHVCWMVFV
      EWJBJVBVCVGUQWQVDVEVFURVDVEVFUSWLVPAVNBVJDFEVMWFWPWEWGHVAUTTT $.
  $}

  ${
    lssvancl.v $e |- V = ( Base ` W ) $.
    lssvancl.p $e |- .+ = ( +g ` W ) $.
    lssvancl.s $e |- S = ( LSubSp ` W ) $.
    lssvancl.w $e |- ( ph -> W e. LMod ) $.
    lssvancl.u $e |- ( ph -> U e. S ) $.
    lssvancl.x $e |- ( ph -> X e. U ) $.
    lssvancl.y $e |- ( ph -> Y e. V ) $.
    lssvancl.n $e |- ( ph -> -. Y e. U ) $.
    $( Non-closure: if one vector belongs to a subspace but another does not,
       their sum does not belong.  Useful for obtaining a new vector not in a
       subspace.  TODO: notice similarity to ~ lspindp3 .  Can it be used along
       with ~ lspsnne1 , ~ lspsnne2 to shorten this proof?  (Contributed by NM,
       14-May-2015.) $)
    lssvancl1 $p |- ( ph -> -. ( X .+ Y ) e. U ) $=
      ( co wcel wa adantr csg cfv wceq cabl clmod lmodabl syl syl2anc ablpncan2
      lssel eqid syl3anc simpr lssvsubcl syl22anc eqeltrrd mtand ) AGHBQZDRZHDR
      PAUSSZURGFUAUBZQZHDAVBHUCZUSAFUDRZGERZHERVCAFUERZVDLFUFUGADCRZGDRZVEMNCDE
      FGIKUJUHOEBFVAGHIJVAUKZUIULTUTVFVGUSVHVBDRAVFUSLTAVGUSMTAUSUMAVHUSNTCDVAF
      URGVIKUNUOUPUQ $.

    $( Non-closure: if one vector belongs to a subspace but another does not,
       their sum does not belong.  Useful for obtaining a new vector not in a
       subspace.  (Contributed by NM, 20-May-2015.) $)
    lssvancl2 $p |- ( ph -> -. ( Y .+ X ) e. U ) $=
      ( co clmod wcel wceq lssel syl2anc lmodcom syl3anc lssvancl1 eqneltrrd )
      AGHBQZHGBQZDAFRSGESZHESUGUHTLADCSGDSUIMNCDEFGIKUAUBOBEFGHIJUCUDABCDEFGHIJ
      KLMNOPUEUF $.
  $}

  ${
    $d x S $.  $d x U $.  $d a b x W $.  $d y X $.  $d a b x y .0. $.
    lss0cl.z $e |- .0. = ( 0g ` W ) $.
    lss0cl.s $e |- S = ( LSubSp ` W ) $.
    $( The zero vector belongs to every subspace.  (Contributed by NM,
       12-Jan-2014.)  (Proof shortened by Mario Carneiro, 19-Jun-2014.) $)
    lss0cl $p |- ( ( W e. LMod /\ U e. S ) -> .0. e. U ) $=
      ( vx clmod wcel wa cv wex c0 wne lssn0 n0 sylib adantl cfv eqid w3a simp1
      csg co cbs wceq lssel 3adant1 lmodsubid lssvsubcl anabsan2 3impa eqeltrrd
      syl2anc 3expia exlimdv mpd ) CHIZBAIZJZGKZBIZGLZDBIZUSVCURUSBMNVCABCFOGBP
      QRUTVBVDGURUSVBVDURUSVBUAZVAVACUCSZUDZDBVEURVACUESZIZVGDUFURUSVBUBUSVBVIU
      RABVHCVAVHTZFUGUHVAVFVHCDVJEVFTZUIUNURUSVBVGBIZUTVBVLABVFCVAVAVKFUJUKULUM
      UOUPUQ $.

    $( The singleton of the zero vector is a subspace.  (Contributed by NM,
       13-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lsssn0 $p |- ( W e. LMod -> { .0. } e. S ) $=
      ( vx va vb wcel cfv cbs eqidd wceq a1i eqid c0g cv co elsni syl clmod csn
      csca cplusg cvsca clss lmod0vcl snssd c0 wne cvv fvex eqeltri snnz w3a wa
      simpr2 oveq2d lmodvs0 3ad2antr1 eqtrd simpr3 oveq12d lmod0vlid mpdan ovex
      adantr elsn sylibr islssd ) BUAIZFBUCJZKJZBUDJZABUEJZCUBZVLBKJZBGHVKVLLVK
      VMLVKVQLVKVNLVKVOLABUFJMVKENVKCVQVQBCVQOZDUGZUHVPUIUJVKCCBPJUKDBPULUMUNNV
      KFQZVMIZGQZVPIZHQZVPIZUOZUPZVTWBVORZWDVNRZCMWIVPIWGWICCVNRZCWGWHCWDCVNWGW
      HVTCVORZCWGWBCVTVOWGWCWBCMVKWAWCWEUQWBCSTURVKWCWAWKCMWEVOVLVMBVTCVLOVOOVM
      ODUSUTVAWGWEWDCMVKWAWCWEVBWDCSTVCVKWJCMZWFVKCVQIWLVSVNVQBCCVRVNODVDVEVGVA
      WICWHWDVNVFVHVIVJ $.

    $( The zero subspace is included in every subspace.  ( ~ sh0le analog.)
       (Contributed by NM, 27-Mar-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lss0ss $p |- ( ( W e. LMod /\ X e. S ) -> { .0. } C_ X ) $=
      ( clmod wcel wa lss0cl snssd ) BGHCAHIDCACBDEFJK $.

    $( No subspace is smaller than the zero subspace.  ( ~ shle0 analog.)
       (Contributed by NM, 20-Apr-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lssle0 $p |- ( ( W e. LMod /\ X e. S )
         -> ( X C_ { .0. } <-> X = { .0. } ) ) $=
      ( clmod wcel wa csn wss wceq lss0ss biantrud eqss syl6bbr ) BGHCAHIZCDJZK
      ZSRCKZICRLQTSABCDEFMNCROP $.

    $( A nonzero subspace has a nonzero vector.  ( ~ shne0i analog.)
       (Contributed by NM, 20-Apr-2014.)  (Proof shortened by Mario Carneiro,
       8-Jan-2015.) $)
    lssne0 $p |- ( X e. S -> ( X =/= { .0. } <-> E. y e. X y =/= .0. ) ) $=
      ( wcel cv wne wrex csn wceq wral wn c0 wb lssn0 eqsn syl ralbii syl6rbb
      nne ralnex bitr3i necon1abid ) DBHZAIZEJZADKZDELZUGDUKMZUHEMZADNZUJOZUGDP
      JULUNQBDCGRADESTUNUIOZADNUOUPUMADUHEUCUAUIADUDUEUBUF $.
  $}

  ${
    lssneln0.v $e |- V = ( Base ` W ) $.
    lssneln0.o $e |- .0. = ( 0g ` W ) $.
    lssneln0.s $e |- S = ( LSubSp ` W ) $.
    lssneln0.w $e |- ( ph -> W e. LMod ) $.
    lssneln0.u $e |- ( ph -> U e. S ) $.
    lssneln0.x $e |- ( ph -> X e. V ) $.
    lssneln0.n $e |- ( ph -> -. X e. U ) $.
    $( A vector which doesn't belong to a subspace is nonzero.  (Contributed by
       NM, 14-May-2015.) $)
    lssneln0 $p |- ( ph -> X e. ( V \ { .0. } ) ) $=
      ( wcel wne csn cdif wn wceq wi lss0cl syl2anc eleq1a syl necon3bd eldifsn
      clmod mpd sylanbrc ) AFDOFGPZFDGQROMAFCOZSUKNAULFGAGCOZFGTULUAAEUHOCBOUMK
      LBCEGIJUBUCGCFUDUEUFUIFDGUGUJ $.
  $}

  ${
    $d x T $.  $d x U $.  $d x ph $.
    lssssr.v $e |- V = ( Base ` W ) $.
    lssssr.o $e |- .0. = ( 0g ` W ) $.
    lssssr.s $e |- S = ( LSubSp ` W ) $.
    lssssr.w $e |- ( ph -> W e. LMod ) $.
    lssssr.t $e |- ( ph -> T C_ V ) $.
    lssssr.u $e |- ( ph -> U e. S ) $.
    lssssr.1 $e |- ( ( ph /\ x e. ( V \ { .0. } ) ) ->
      ( x e. T -> x e. U ) ) $.
    $( Conclude subspace ordering from nonzero vector membership.  ( ~ ssrdv
       analog.)  (Contributed by NM, 17-Aug-2014.) $)
    lssssr $p |- ( ph -> T C_ U ) $=
      ( cv wcel wi wa adantr simpr clmod lss0cl syl2anc eqeltrd a1d sseld ancrd
      wceq wne cdif eldifsn sylan2br exp32 com23 imp4b syld pm2.61dane ssrdv
      csn ) ABDEABPZDQZVAEQZRZVAHAVAHUIZSZVCVBVFVAHEAVEUAAHEQZVEAGUBQECQVGLNCEG
      HJKUCUDTUEUFAVAHUJZSVBVAFQZVBSZVCAVBVJRVHAVBVIADFVAMUGUHTAVHVIVBVCAVIVHVD
      AVIVHVDVIVHSAVAFHUTUKQVDVAFHULOUMUNUOUPUQURUS $.
  $}

  ${
    lssvacl.p $e |- .+ = ( +g ` W ) $.
    lssvacl.s $e |- S = ( LSubSp ` W ) $.
    $( Closure of vector addition in a subspace.  (Contributed by NM,
       11-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lssvacl $p |- ( ( ( W e. LMod /\ U e. S ) /\ ( X e. U /\ Y e. U ) )
       -> ( X .+ Y ) e. U ) $=
      ( clmod wcel wa csca cfv cur cvsca co cbs wceq simpll eqid lmodvs1 oveq1d
      ad2ant2lr syl2anc simplr lmod1cl ad2antrr simprl simprr syl13anc eqeltrrd
      lssel lsscl ) DIJZCBJZKZECJZFCJZKZKZDLMZNMZEDOMZPZFAPZEFAPCUTVDEFAUTUNEDQ
      MZJZVDERUNUOUSSUOUQVGUNURBCVFDEVFTZHULUCVCVBVAVFDEVHVATZVCTZVBTZUAUDUBUTU
      OVBVAQMZJZUQURVECJUNUOUSUEUNVMUOUSVBVAVLDVIVLTZVKUFUGUPUQURUHUPUQURUIVLAB
      VCCVADEFVBVIVNGVJHUMUJUK $.
  $}

  ${
    lssvscl.f $e |- F = ( Scalar ` W ) $.
    lssvscl.t $e |- .x. = ( .s ` W ) $.
    lssvscl.b $e |- B = ( Base ` F ) $.
    lssvscl.s $e |- S = ( LSubSp ` W ) $.
    $( Closure of scalar product in a subspace.  (Contributed by NM,
       11-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lssvscl $p |- ( ( ( W e. LMod /\ U e. S ) /\ ( X e. B /\ Y e. U ) )
       -> ( X .x. Y ) e. U ) $=
      ( clmod wcel wa co c0g cfv cplusg eqid cbs simpll lssel ad2ant2l lmodvscl
      wceq simprl syl3anc lmod0vrid syl2anc simplr simprr lss0cl lsscl syl13anc
      adantr eqeltrrd ) FMNZDBNZOZGANZHDNZOZOZGHCPZFQRZFSRZPZVEDVDURVEFUARZNZVH
      VEUFURUSVCUBZVDURVAHVINZVJVKUTVAVBUGZUSVBVLURVABDVIFHVITZLUCUDGCEAVIFHVNI
      JKUEUHVGVIFVEVFVNVGTZVFTZUIUJVDUSVAVBVFDNZVHDNURUSVCUKVMUTVAVBULUTVQVCBDF
      VFVPLUMUPAVGBCDEFHVFGIKVOJLUNUOUQ $.
  $}

  ${
    lssvnegcl.s $e |- S = ( LSubSp ` W ) $.
    lssvnegcl.n $e |- N = ( invg ` W ) $.
    $( Closure of negative vectors in a subspace.  (Contributed by Stefan
       O'Rear, 11-Dec-2014.) $)
    lssvnegcl $p |- ( ( W e. LMod /\ U e. S /\ X e. U ) -> ( N ` X ) e. U ) $=
      ( clmod wcel w3a csca cfv cur cminusg cvsca co wceq cbs eqid syl wa lssel
      lmodvneg1 sylan2 3impb simp1 simp2 crg lmodring 3ad2ant1 ringgrp ringidcl
      cgrp grpinvcl syl2anc simp3 lssvscl syl22anc eqeltrrd ) DHIZBAIZEBIZJZDKL
      ZMLZVDNLZLZEDOLZPZECLZBUTVAVBVIVJQZVAVBUAUTEDRLZIVKABVLDEVLSZFUBVHVEVDVFC
      VLDEVMGVDSZVHSZVESZVFSZUCUDUEVCUTVAVGVDRLZIZVBVIBIUTVAVBUFUTVAVBUGVCVDUMI
      ZVEVRIZVSVCVDUHIZVTUTVAWBVBVDDVNUIUJZVDUKTVCWBWAWCVRVDVEVRSZVPULTVRVDVFVE
      WDVQUNUOUTVAVBUPVRAVHBVDDVGEVNVOWDFUQURUS $.
  $}

  ${
    $d x y S $.  $d x y U $.  $d x y W $.
    lsssubg.s $e |- S = ( LSubSp ` W ) $.
    $( All subspaces are subgroups.  (Contributed by Stefan O'Rear,
       11-Dec-2014.) $)
    lsssubg $p |- ( ( W e. LMod /\ U e. S ) -> U e. ( SubGrp ` W ) ) $=
      ( vx vy clmod wcel wa csubg cfv cbs wss c0 wne wral eqid adantl ralrimiva
      cv cplusg co cminusg lssss lssn0 lssvacl anassrs lssvnegcl 3expa jca cgrp
      w3a wb lmodgrp adantr issubg2 syl mpbir3and ) CGHZBAHZIZBCJKHZBCLKZMZBNOZ
      ETZFTZCUAKZUBBHZFBPZVFCUCKZKBHZIZEBPZUTVDUSABVCCVCQZDUDRUTVEUSABCDUERVAVM
      EBVAVFBHZIZVJVLVQVIFBVAVPVGBHVIVHABCVFVGVHQZDUFUGSUSUTVPVLABVKCVFDVKQZUHU
      IUJSVACUKHZVBVDVEVNULUMUSVTUTCUNUOEFVCVHBCVKVOVRVSUPUQUR $.

    $( All subspaces are subgroups.  (Contributed by Mario Carneiro,
       19-Apr-2016.) $)
    lsssssubg $p |- ( W e. LMod -> S C_ ( SubGrp ` W ) ) $=
      ( vx clmod wcel csubg cfv cv lsssubg ex ssrdv ) BEFZDABGHZMDIZAFONFAOBCJK
      L $.
  $}

  ${
    $d a b x S $.  $d a b x U $.  $d a b x V $.  $d a b x W $.  $d a b x X $.
    islss3.x $e |- X = ( W |`s U ) $.
    islss3.v $e |- V = ( Base ` W ) $.
    islss3.s $e |- S = ( LSubSp ` W ) $.
    $( A linear subspace of a module is a subset which is a module in its own
       right.  (Contributed by Stefan O'Rear, 6-Dec-2014.)  (Revised by Mario
       Carneiro, 30-Apr-2015.) $)
    islss3 $p |- ( W e. LMod -> ( U e. S <-> ( U C_ V /\ X e. LMod ) ) ) $=
      ( vx wcel wa adantl cfv cbs wceq eqid eqidd syl co cvv va clmod wss lssss
      vb csca cplusg cvsca cmulr cur ressbas2 sylan2 ressplusg resssca ressvsca
      lmodring adantr csubg cgrp lsssubg subggrp cv lssvscl 3impb simpll simpr1
      crg w3a ad2antlr simpr2 sseldd simpr3 lmodvsdi lmodvsdir lmodvsass sselda
      syl13anc lmodvs1 adantlr syldan islmodd jca simprl fvex syl6eqel a1i clss
      eqcomd eqsstr3d c0 wne lmodgrp ad2antll grpbn0 lsscl sylan islssd eqeltrd
      lss1 impbida ) DUBJZBAJZBCUCZEUBJZKZXAXBKZXCXDXBXCXAABCDGHUDZLZXFIUAUEDUF
      MZNMZDUGMZXIUGMZDUHMZXIUIMZXIUJMZXIBEXBXAXCBENMZOZXGXCXQXABCEDFGUKZLULXBX
      KEUGMZOZXABXKDEAFXKPZUMLXBXIEUFMZOZXABXIDEAFXIPZUNLXBXMEUHMZOZXABXMDEAFXM
      PZUOLXFXJQXFXLQXFXNQXFXOQXAXIVGJXBXIDYDUPUQXFBDURMJEUSJZABDHUTBDEFVARXFIV
      BZXJJZUAVBZBJZYIYKXMSZBJXJAXMBXIDYIYKYDYGXJPZHVCVDXFYJYLUEVBZBJZVHZKZXAYJ
      YKCJYOCJZYIYKYOXKSXMSYMYIYOXMSZXKSOXAXBYQVEXFYJYLYPVFYRBCYKXBXCXAYQXGVIZX
      FYJYLYPVJVKYRBCYOUUAXFYJYLYPVLVKXKYIXMXIXJCDYKYOGYAYDYGYNVMVQXFYJYKXJJZYP
      VHZKZXAYJUUBYSYIYKXLSYOXMSYTYKYOXMSZXKSOXAXBUUCVEZXFYJUUBYPVFZXFYJUUBYPVJ
      ZUUDBCYOXBXCXAUUCXGVIXFYJUUBYPVLVKZXKXLYIYKXMXIXJCDYOGYAYDYGYNXLPVNVQUUDX
      AYJUUBYSYIYKXNSYOXMSYIUUEXMSOUUFUUGUUHUUIYIYKXMXNXIXJCDYOGYDYGYNXNPVOVQXF
      YIBJYICJZXOYIXMSYIOZXFBCYIXHVPXAUUJUUKXBXMXOXICDYIGYDYGXOPVRVSVTWAWBXAXEK
      ZBXPAUULXCXQXAXCXDWCZXRRZUULIYBNMZXSAYEXPYBCDUAUEUULXIYBUULBTJZYCUULBXPTU
      UNENWDWEZBXIDETFYDUNRWHUULUUOQCDNMOUULGWFUULXKXSUULUUPXTUUQBXKDETFYAUMRWH
      UULXMYEUULUUPYFUUQBXMDETFYGUORWHADWGMOUULHWFUULXPBCUUNUUMWIUULYHXPWJWKXDY
      HXAXCEWLWMXPEXPPZWNRUULXPEWGMZJZYIUUOJYKXPJYOXPJVHYIYKYESYOXSSXPJXDUUTXAX
      CUUSXPEUURUUSPZWSWMUUOXSUUSYEXPYBEYKYOYIYBPUUOPXSPYEPUVAWOWPWQWRWT $.
  $}

  ${
    lsslss.x $e |- X = ( W |`s U ) $.
    lsslss.s $e |- S = ( LSubSp ` W ) $.
    $( A submodule is a module.  (Contributed by Stefan O'Rear,
       12-Dec-2014.) $)
    lsslmod $p |- ( ( W e. LMod /\ U e. S ) -> X e. LMod ) $=
      ( clmod wcel cbs cfv wss eqid islss3 simplbda ) CGHBAHBCIJZKDGHABOCDEOLFM
      N $.

    lsslss.t $e |- T = ( LSubSp ` X ) $.
    $( The subspaces of a subspace are the smaller subspaces.  (Contributed by
       Stefan O'Rear, 12-Dec-2014.) $)
    lsslss $p |- ( ( W e. LMod /\ U e. S ) ->
      ( V e. T <-> ( V e. S /\ V C_ U ) ) ) $=
      ( clmod wcel wa cbs cfv wss cress co wb eqid islss3 syl wceq lssss adantl
      lsslmod sseq2d anbi1d sstr2 mpan9 biantrurd oveq1i ressabs adantll syl5eq
      ressbas2 eleq1d ad2antrr 3bitr4d pm5.32da ancom syl6bb 3bitr2d ) EJKZCAKZ
      LZDBKZDFMNZOZFDPQZJKZLZDCOZVJLZDAKZVLLZVEFJKVFVKRACEFGHUEBDVGFVIVISVGSITU
      AVEVLVHVJVECVGDVECEMNZOZCVGUBVDVQVCACVPEVPSZHUCUDZCVPFEGVRUOUAUFUGVEVMVLV
      NLVOVEVLVJVNVEVLLZEDPQZJKZDVPOZWBLZVJVNVTWCWBVEVQVLWCVSDCVPUHUIUJVTVIWAJV
      TVIECPQZDPQZWAFWEDPGUKVDVLWFWAUBVCCDEAULUMUNUPVCVNWDRVDVLADVPEWAWASVRHTUQ
      URUSVLVNUTVAVB $.
  $}

  ${
    $d F a b c $.  $d W a b c $.  $d B a b c $.  $d V a b c $.  $d .x. a b c $.
    $d S a b c $.  $d U a b c $.
    islss4.f $e |- F = ( Scalar ` W ) $.
    islss4.b $e |- B = ( Base ` F ) $.
    islss4.v $e |- V = ( Base ` W ) $.
    islss4.t $e |- .x. = ( .s ` W ) $.
    islss4.s $e |- S = ( LSubSp ` W ) $.
    $( A linear subspace is a subgroup which respects scalar multiplication.
       (Contributed by Stefan O'Rear, 11-Dec-2014.)  (Revised by Mario
       Carneiro, 19-Apr-2016.) $)
    islss4 $p |- ( W e. LMod -> ( U e. S <-> ( U e. ( SubGrp ` W ) /\
          A. a e. B A. b e. U ( a .x. b ) e. U ) ) ) $=
      ( vc wcel cfv cv wral wa clmod csubg co lsssubg lssvscl ralrimivva jca c0
      wss wne cplusg subgss ad2antrl c0g eqid subg0cl ne0i syl wi subgcl adantl
      3exp ralrimdv ralimdv impr islss syl3anbrc impbida ) GUAPZDBPZDGUBQPZHRZI
      RZCUCZDPZIDSZHASZTZVIVJTZVKVQBDGNUDVSVOHIADABCDEGVLVMJMKNUEUFUGVIVRTDFUIZ
      DUHUJZVNORZGUKQZUCDPZODSZIDSZHASZVJVKVTVIVQFDGLULUMVKWAVIVQVKGUNQZDPWADGW
      HWHUOUPDWHUQURUMVIVKVQWGVIVKTZVPWFHAWIVOWEIDWIVOWDODVKVOWBDPZWDUSUSVIVKVO
      WJWDWCDGVNWBWCUOZUTVBVAVCVDVDVEHAWCBCDEFGIOJKLWKMNVFVGVH $.
  $}

  ${
    $d a b k v x y z K $.  $d a b k v x y z .x. $.  $d a b k v x y z V $.
    $d k x F $.  $d a b k v x y z W $.  $d a b k v x y z X $.
    lss1d.v $e |- V = ( Base ` W ) $.
    lss1d.f $e |- F = ( Scalar ` W ) $.
    lss1d.t $e |- .x. = ( .s ` W ) $.
    lss1d.k $e |- K = ( Base ` F ) $.
    lss1d.s $e |- S = ( LSubSp ` W ) $.
    $( One-dimensional subspace (or zero-dimensional if ` X ` is the zero
       vector).  (Contributed by NM, 14-Jan-2014.)  (Proof shortened by Mario
       Carneiro, 19-Jun-2014.) $)
    lss1d $p |- ( ( W e. LMod /\ X e. V )
        -> { v | E. k e. K v = ( k .x. X ) } e. S ) $=
      ( wcel wa cfv co wceq wrex vx va vb vy vz clmod cplusg cab csca a1i eqidd
      cv cbs cvsca clss wi lmodvscl 3expa an32s eleq1a syl rexlimdva abssdv c0g
      c0 wne eqid lmod0cl nfcv nfre1 nfab nfne biidd ovex elabrex ne0i vtoclgaf
      adantr w3a eqeq1 rexbidv oveq1 eqeq2d cbvrexv bitri anbi12i reeanv bitr4i
      vex cmulr simpll simprr simprll lmodmcl syl3anc simprlr lmodacl lmodvsdir
      simplr syl13anc lmodvsass oveq1d eqtr2d rspcev syl2anc oveq2 oveq12 sylan
      elab eqeq1d syl5ibrcom com23 rexlimdvva syl5bi expcomd com24 3imp2 sylibr
      expr islssd ) HUFOZIGOZPZUAFHUGQZBCAULZDULZICRZSZDFTZAUHZEGHUBUCEHUIQSYCK
      UJFEUMQSYCMUJGHUMQSYCJUJYCYDUKCHUNQSYCLUJBHUOQSYCNUJYCYIAGYCYHYEGOZDFYCYF
      FOZPYGGOZYHYKUPYAYLYBYMYAYLYBYMYFCEFGHIJKLMUQURUSYGGYEUTVAVBVCYCEVDQZFOZY
      JVEVFZYAYOYBEFHYNKMYNVGVHVRYPYPDYNFDYNVIDYJVEYIDAYHDFVJVKDVEVIVLYFYNSYPVM
      YLYGYJOYPDAFYGYFICVNVOYJYGVPVAVQVAYCUAULZFOZUBULZYJOZUCULZYJOZVSPYQYSCRZU
      UAYDRZYGSZDFTZUUDYJOYCYRYTUUBUUFYCUUBYTYRUUFYCYTUUBYRUUFUPZYTUUBPZYSUDULZ
      ICRZSZUUAUEULZICRZSZPZUEFTUDFTZYCUUGUUHUUKUDFTZUUNUEFTZPUUPYTUUQUUBUURYTY
      SYGSZDFTZUUQYIUUTAYSUBWIYEYSSYHUUSDFYEYSYGVTWAXIUUSUUKDUDFYFUUISYGUUJYSYF
      UUIICWBWCWDWEUUBUUAYGSZDFTZUURYIUVBAUUAUCWIYEUUASYHUVADFYEUUAYGVTWAXIUVAU
      UNDUEFYFUULSYGUUMUUAYFUULICWBWCWDWEWFUUKUUNUDUEFFWGWHYCUUOUUGUDUEFFYCUUIF
      OZUULFOZPZPYRUUOUUFYCUVEYRUUOUUFUPYCUVEYRPZPZUUFUUOYQUUJCRZUUMYDRZYGSZDFT
      ZUVGYQUUIEWJQZRZUULEUGQZRZFOZUVIUVOICRZSZUVKUVGYAUVMFOZUVDUVPYAYBUVFWKZUV
      GYAYRUVCUVSUVTYCUVEYRWLZYCUVCUVDYRWMZUVLEFHYQUUIKMUVLVGZWNWOZYCUVCUVDYRWP
      ZUVNEFHUVMUULKMUVNVGZWQWOUVGUVQUVMICRZUUMYDRZUVIUVGYAUVSUVDYBUVQUWHSUVTUW
      DUWEYAYBUVFWSZYDUVNUVMUULCEFGHIJYDVGKLMUWFWRWTUVGUWGUVHUUMYDUVGYAYRUVCYBU
      WGUVHSUVTUWAUWBUWIYQUUICUVLEFGHIJKLMUWCXAWTXBXCUVJUVRDUVOFYFUVOSYGUVQUVIY
      FUVOICWBWCXDXEUUOUUEUVJDFUUOUUDUVIYGUUKUUCUVHSUUNUUDUVISYSUUJYQCXFUUCUVHU
      UAUUMYDXGXHXJWAXKXSXLXMXNXOXPXQYIUUFAUUDUUCUUAYDVNYEUUDSYHUUEDFYEUUDYGVTW
      AXIXRXT $.
  $}

  ${
    $d a b x y A $.  $d a b x y S $.  $d a b x y W $.
    lssintcl.s $e |- S = ( LSubSp ` W ) $.
    $( The intersection of a nonempty set of subspaces is a subspace.
       (Contributed by NM, 8-Dec-2013.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lssintcl $p |- ( ( W e. LMod /\ A C_ S /\ A =/= (/) )
          -> |^| A e. S ) $=
      ( vx va vb vy wcel wss c0 wne w3a cfv cbs eqidd cv eqid sylibr wa 3adant1
      clmod csca cplusg cvsca cint clss wceq a1i cuni intssuni2 cpw lssss selpw
      ssriv sspwuni mpbi syl6ss c0g wral simpl1 sselda lss0cl syl2anc ralrimiva
      simp2 fvex elint2 ne0i syl co adantlr simplr1 simplr2 elinti sylc simplr3
      simpr lsscl syl13anc ovex islssd ) CUBIZABJZAKLZMZECUCNZONZCUDNZBCUENZAUF
      ZWGCONZCFGWFWGPWFWHPWFWLPWFWIPWFWJPBCUGNUHWFDUIWFWKBUJZWLWDWEWKWMJWCABUKU
      ABWLULZJWMWLJHBWNHQZBIZWOWLJWOWNIBWOWLCWLRDUMHWLUNSUOBWLUPUQURWFCUSNZWKIZ
      WKKLWFWQWOIZHAUTWRWFWSHAWFWOAIZTWCWPWSWCWDWEWTVAWFABWOWCWDWEVFVBZBWOCWQWQ
      RDVCVDVEHWQACUSVGVHSWKWQVIVJWFEQZWHIZFQZWKIZGQZWKIZMZTZXBXDWJVKZXFWIVKZWO
      IZHAUTXKWKIXIXLHAXIWTTZWPXCXDWOIZXFWOIZXLWFWTWPXHXAVLXCXEXGWFWTVMXMXEWTXN
      XCXEXGWFWTVNXIWTVRZXDAWOVOVPXMXGWTXOXCXEXGWFWTVQXPXFAWOVOVPWHWIBWJWOWGCXD
      XFXBWGRWHRWIRWJRDVSVTVEHXKAXJXFWIWAVHSWB $.

    $( The intersection of two subspaces is a subspace.  (Contributed by NM,
       7-Mar-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lssincl $p |- ( ( W e. LMod /\ T e. S /\ U e. S )
         -> ( T i^i U ) e. S ) $=
      ( clmod wcel w3a cpr cint cin intprg 3adant1 wss c0 wne simp1 prssi prnzg
      wceq 3ad2ant2 lssintcl syl3anc eqeltrrd ) DFGZBAGZCAGZHZBCIZJZBCKZAUFUGUJ
      UKTUEBCAALMUHUEUIANZUIOPZUJAGUEUFUGQUFUGULUEBCARMUFUEUMUGBCASUAUIADEUBUCU
      D $.
  $}

  ${
    $d B a b x y $.  $d S a x y $.  $d W a b x y $.
    lssacs.b $e |- B = ( Base ` W ) $.
    lssacs.s $e |- S = ( LSubSp ` W ) $.
    $( The subspaces of a module comprise a Moore system on the vectors of the
       module.  (Contributed by Stefan O'Rear, 31-Jan-2015.) $)
    lssmre $p |- ( W e. LMod -> S e. ( Moore ` B ) ) $=
      ( va clmod wcel cpw cv wi wss lssss selpw sylibr a1i lss1 lssintcl ismred
      ssrdv ) CGHZBAFUAFBAIZFJZBHZUCUBHZKUAUDUCALUEBUCACDEMFANOPTBACDEQUCBCERS
      $.

    $( Submodules are an algebraic closure system.  (Contributed by Stefan
       O'Rear, 4-Apr-2015.) $)
    lssacs $p |- ( W e. LMod -> S e. ( ACS ` B ) ) $=
      ( vx vy vb va wcel cfv cv wral cbs wi a1i wb wa eqid cvv clmod csubg csca
      cvsca cpw crab cin cacs wss lssss inss2 ssrab2 sstri elpwid islss4 adantr
      sseli selpw weq eleq2 raleqbi1dv ralbidv elrab3 sylbir adantl anbi2d elin
      co bitr4d syl6bbr ex pm5.21ndd cmre fvex eqeltri mreacs mp1i cgrp lmodgrp
      eqrdv subgacs lmodvscl ralrimivva acsfn1c sylancr mreincl syl3anc eqeltrd
      syl 3expb ) CUAJZBCUBKZFLZGLZCUDKZVHZHLZJZGWQMZFCUCKZNKZMZHAUEZUFZUGZAUHK
      ZWKIBXEWKILZAUIZXGBJZXGXEJZXIXHOWKBXGACDEUJPXJXHOWKXJXGAXEXCXGXEXDXCWLXDU
      KXBHXCULUMUQUNPWKXHXIXJQWKXHRZXIXGWLJZXGXDJZRZXJXKXIXLWPXGJZGXGMZFXAMZRZX
      NWKXIXRQXHXABWOXGWTACFGWTSZXASZDWOSZEUOUPXKXMXQXLXHXMXQQZWKXHXGXCJYBIAURX
      BXQHXGXCHIUSWSXPFXAWRXOGWQXGWQXGWPUTVAVBVCVDVEVFVIXGWLXDVGVJVKVLVTWKXFXCV
      MKJZWLXFJZXDXFJZXEXFJATJZYCWKACNKTDCNVNVOZTAVPVQWKCVRJYDCVSACDWAWIWKYFWPA
      JZGAMFXAMYEYGWKYHFGXAAWKWMXAJWNAJYHWMWOWTXAACWNDXSYAXTWBWJWCWPXATAHFGWDWE
      WLXDXFXCWFWGWH $.
  $}

  ${
    $d x B $.  $d x F $.  $d x G $.  $d x I $.  $d x K $.  $d x R $.  $d x S $.
    $d x ph $.  $d x W $.  $d x Y $.
    prdsvscacl.y $e |- Y = ( S Xs_ R ) $.
    prdsvscacl.b $e |- B = ( Base ` Y ) $.
    prdsvscacl.t $e |- .x. = ( .s ` Y ) $.
    prdsvscacl.k $e |- K = ( Base ` S ) $.
    prdsvscacl.s $e |- ( ph -> S e. Ring ) $.
    prdsvscacl.i $e |- ( ph -> I e. W ) $.
    prdsvscacl.r $e |- ( ph -> R : I --> LMod ) $.
    prdsvscacl.f $e |- ( ph -> F e. K ) $.
    prdsvscacl.g $e |- ( ph -> G e. B ) $.
    prdsvscacl.sr $e |- ( ( ph /\ x e. I ) -> ( Scalar ` ( R ` x ) ) = S ) $.
    $( Pointwise scalar multiplication is closed in products of modules.
       (Contributed by Stefan O'Rear, 10-Jan-2015.) $)
    prdsvscacl $p |- ( ph -> ( F .x. G ) e. B ) $=
      ( co cv cfv cvsca cmpt crg clmod wf wfn ffn syl prdsvscaval wcel cbs wral
      wa csca ffvelrnda adantr fveq2d syl6eqr eleqtrrd prdsbasprj eqid lmodvscl
      simpr syl3anc ralrimiva prdsbasmpt mpbird eqeltrd ) AGHFUCBIGBUDZHUEZVNDU
      EZUFUEZUCZUGZCABCDEFGHIJUHKLMNOPQRAIUIDUJDIUKZSIUIDULUMZTUAUNAVSCUOVRVPUP
      UEZUOZBIUQAWCBIAVNIUOZURZVPUIUOGVPUSUEZUPUEZUOVOWBUOWCAIUIVNDSUTWEGJWGAGJ
      UOWDTVAWEWGEUPUEJWEWFEUPUBVBPVCVDWECDEHIVNUHKLMNAEUHUOWDQVAAIKUOWDRVAAVTW
      DWAVAAHCUOWDUAVAAWDVHVEGVQWFWGWBVPVOWBVFWFVFVQVFWGVFVGVIVJABCDEVRIUHKLMNQ
      RWAVKVLVM $.
  $}

  ${
    $d y I $.  $d a b c y ph $.  $d y R $.  $d a b c y S $.  $d a b c y Y $.
    prdslmodd.y $e |- Y = ( S Xs_ R ) $.
    prdslmodd.s $e |- ( ph -> S e. Ring ) $.
    prdslmodd.i $e |- ( ph -> I e. V ) $.
    prdslmodd.rm $e |- ( ph -> R : I --> LMod ) $.
    prdslmodd.rs $e |- ( ( ph /\ y e. I ) -> ( Scalar ` ( R ` y ) ) = S ) $.
    $( The product of a family of left modules is a left module.  (Contributed
       by Stefan O'Rear, 10-Jan-2015.) $)
    prdslmodd $p |- ( ph -> Y e. LMod ) $=
      ( cfv crg cvv wcel co wa eqid adantr va vb vc cbs cvsca cmulr eqidd clmod
      cplusg cur wf fex syl2anc prdssca cgrp wss lmodgrp ssriv sylancl prdsgrpd
      cv fss elex syl simprl simprr csca wceq adantlr prdsvscacl 3impb w3a cmpt
      ffvelrnda simplr1 fveq2d eleqtrrd ad2antrr wfn simplr2 prdsbasprj simplr3
      simpr lmodvsdi syl13anc prdsplusgfval oveq2d prdsvscafval oveq12d 3eqtr4d
      ffn mpteq2dva simpr1 simpr2 simpr3 grpcl syl3anc prdsvscaval prdsplusgval
      3adantr3 3adantr2 lmodvsdir oveqd oveq1d 3eqtr2rd lmodvsass ringcl simplr
      ringacl lmodvs1 eqtr3d ringidcl prdsbasfn dffn5 sylib islmodd ) AUAUBUCDU
      DMZGUIMZDUIMZGUEMZDUFMZDUJMZDGUDMZGAYCUGAXRUGAGCDNOHIAEUHCUKZEFPZCOPKJEUH
      FCULUMUNAXTUGAXQUGAXSUGAYAUGAYBUGIACDENFGHJIAYDUHUOUPEUOCUKKUAUHUOUAVAZUQ
      UREUHUOCVBUSUTZAYFXQPZUBVAZYCPZYFYIXTQZYCPZAYHYJRZRBYCCDXTYFYIEXQOGHYCSZX
      TSZXQSZADNPZYMITAEOPZYMAYEYRJEFVCVDZTAYDYMKTAYHYJVEAYHYJVFABVAZEPZYTCMZVG
      MZDVHZYMLVIVJZVKAYHYJUCVAZYCPZVLZRZBEYFYTYIUUFXRQZMZUUBUEMZQZVMBEYTYKMZYT
      YFUUFXTQZMZUUBUIMZQZVMYFUUJXTQYKUUOXRQUUIBEUUMUURUUIUUARZYFYTYIMZYTUUFMZU
      UQQZUULQZYFUUTUULQZYFUVAUULQZUUQQZUUMUURUUSUUBUHPZYFUUCUDMZPZUUTUUBUDMZPU
      VAUVJPZUVCUVFVHAUUAUVGUUHAEUHYTCKVNZVIUUSYFXQUVHYHYJUUGAUUAVOZAUUAUVHXQVH
      ZUUHAUUARZUUCDUDLVPZVIVQUUSYCCDYIEYTNOGHYNAYQUUHUUAIVRZAYRUUHUUAYSVRZACEV
      SZUUHUUAAYDUVSKEUHCWKVDZVRZYHYJUUGAUUAVTZUUIUUAWCZWAUUSYCCDUUFEYTNOGHYNUV
      QUVRUWAYHYJUUGAUUAWBZUWCWAUUQYFUULUUCUVHUVJUUBUUTUVAUVJSZUUQSZUUCSZUULSZU
      VHSZWDWEUUSUUKUVBYFUULUUSYCXRCDYIUUFEYTNOGHYNUVQUVRUWAUWBUWDXRSZUWCWFWGUU
      SUUNUVDUUPUVEUUQUUSYCCDXTYFYIEYTXQNOGHYNYOYPUVQUVRUWAUVMUWBUWCWHUUSYCCDXT
      YFUUFEYTXQNOGHYNYOYPUVQUVRUWAUVMUWDUWCWHWIWJWLUUIBYCCDXTYFUUJEXQNOGHYNYOY
      PAYQUUHITZAYRUUHYSTZAUVSUUHUVTTZAYHYJUUGWMUUIGUOPZYJUUGUUJYCPAUWNUUHYGTAY
      HYJUUGWNAYHYJUUGWOYCXRGYIUUFYNUWJWPWQWRUUIBYCXRCDYKUUOENOGHYNUWKUWLUWMAYH
      YJYLUUGUUEWTAYHUUGUUOYCPZYJAYHUUGRZRBYCCDXTYFUUFEXQOGHYNYOYPAYQUWPITAYRUW
      PYSTAYDUWPKTAYHUUGVEAYHUUGVFAUUAUUDUWPLVIVJZXAUWJWSWJAYHYIXQPZUUGVLZRZBEY
      FYIXSQZUVAUULQZVMBEUUPYTYIUUFXTQZMZUUQQZVMUXAUUFXTQUUOUXCXRQUWTBEUXBUXEUW
      TUUARZUXEUVEYIUVAUULQZUUQQZYFYIUUCUIMZQZUVAUULQZUXBUXFUUPUVEUXDUXGUUQUXFY
      CCDXTYFUUFEYTXQNOGHYNYOYPAYQUWSUUAIVRZAYRUWSUUAYSVRZAUVSUWSUUAUVTVRZYHUWR
      UUGAUUAVOZYHUWRUUGAUUAWBZUWTUUAWCZWHUXFYCCDXTYIUUFEYTXQNOGHYNYOYPUXLUXMUX
      NYHUWRUUGAUUAVTZUXPUXQWHZWIUXFUVGUVIYIUVHPZUVKUXKUXHVHAUUAUVGUWSUVLVIZUXF
      YFXQUVHUXOAUUAUVNUWSUVPVIZVQZUXFYIXQUVHUXRUYBVQZUXFYCCDUUFEYTNOGHYNUXLUXM
      UXNUXPUXQWAZUUQUXIYFYIUULUUCUVHUVJUUBUVAUWEUWFUWGUWHUWIUXISXBWEUXFUXJUXAU
      VAUULUXFUXIXSYFYIUXFUUCDUIAUUAUUDUWSLVIZVPXCXDXEWLUWTBYCCDXTUXAUUFEXQNOGH
      YNYOYPAYQUWSITZAYRUWSYSTZAUVSUWSUVTTZUWTYQYHUWRUXAXQPUYGAYHUWRUUGWMZAYHUW
      RUUGWNZXQXSDYFYIYPXSSXIWQAYHUWRUUGWOZWRUWTBYCXRCDUUOUXCENOGHYNUYGUYHUYIAY
      HUUGUWOUWRUWQXAUWTBYCCDXTYIUUFEXQOGHYNYOYPUYGUYHAYDUWSKTUYKUYLUYFVJZUWJWS
      WJUWTBEYFYIYAQZUVAUULQZVMBEYFUXDUULQZVMUYNUUFXTQYFUXCXTQUWTBEUYOUYPUXFUYP
      YFUXGUULQZYFYIUUCUFMZQZUVAUULQZUYOUXFUXDUXGYFUULUXSWGUXFUVGUVIUXTUVKUYTUY
      QVHUYAUYCUYDUYEYFYIUULUYRUUCUVHUVJUUBUVAUWEUWGUWHUWIUYRSXFWEUXFUYSUYNUVAU
      ULUXFUYRYAYFYIUXFUUCDUFUYFVPXCXDXEWLUWTBYCCDXTUYNUUFEXQNOGHYNYOYPUYGUYHUY
      IUWTYQYHUWRUYNXQPUYGUYJUYKXQDYAYFYIYPYASXGWQUYLWRUWTBYCCDXTYFUXCEXQNOGHYN
      YOYPUYGUYHUYIUYJUYMWRWJAYFYCPZRZBEYBYTYFMZUULQZVMBEVUCVMZYBYFXTQYFVUBBEVU
      DVUCVUBUUARZUUCUJMZVUCUULQZVUDVUCVUFVUGYBVUCUULAUUAVUGYBVHVUAUVOUUCDUJLVP
      VIXDVUFUVGVUCUVJPVUHVUCVHAUUAUVGVUAUVLVIVUFYCCDYFEYTNOGHYNAYQVUAUUAIVRAYR
      VUAUUAYSVRAUVSVUAUUAUVTVRAVUAUUAXHVUBUUAWCWAUULVUGUUCUVJUUBVUCUWEUWGUWHVU
      GSXJUMXKWLVUBBYCCDXTYBYFEXQNOGHYNYOYPAYQVUAITZAYRVUAYSTZAUVSVUAUVTTZAYBXQ
      PZVUAAYQVULIXQDYBYPYBSXLVDTAVUAWCZWRVUBYFEVSYFVUEVHVUBYCCDYFENOGHYNVUIVUJ
      VUKVUMXMBEYFXNXOWJXP $.
  $}

  ${
    $d x I $.  $d x R $.  $d x V $.
    pwslmod.y $e |- Y = ( R ^s I ) $.
    $( The product of a family of left modules is a left module.  (Contributed
       by Mario Carneiro, 11-Jan-2015.) $)
    pwslmod $p |- ( ( R e. LMod /\ I e. V ) -> Y e. LMod ) $=
      ( vx clmod wcel wa csca cfv csn cxp cprds eqid pwsval crg lmodring adantr
      co simpr wf fconst6g cv wceq fvconst2g adantlr fveq2d prdslmodd eqeltrd )
      AGHZBCHZIZDAJKZBALMZNTZGAUNBGCDEUNOZPUMFUOUNBCUPUPOUKUNQHULUNAUQRSUKULUAU
      KBGUOUBULBAGUCSUMFUDZBHZIURUOKZAJUKUSUTAUEULBAURGUFUGUHUIUJ $.
  $}

  $c LSpan $.

  $( Extend class notation with span of a set of vectors. $)
  clspn $a class LSpan $.

  ${
    $d w s t $.
    $( Define span of a set of vectors of a left module or left vector space.
       (Contributed by NM, 8-Dec-2013.) $)
    df-lsp $a |- LSpan = ( w e. _V |-> ( s e. ~P ( Base ` w ) |->
         |^| { t e. ( LSubSp ` w ) | s C_ t } ) ) $.
  $}

  ${
    $d p s t w S $.  $d s t U $.  $d p s t w V $.  $d s w W $.
    lspval.v $e |- V = ( Base ` W ) $.
    lspval.s $e |- S = ( LSubSp ` W ) $.
    lspval.n $e |- N = ( LSpan ` W ) $.
    $( The span function for a left vector space (or a left module).
       ( ~ df-span analog.)  (Contributed by NM, 8-Dec-2013.)  (Revised by
       Mario Carneiro, 19-Jun-2014.) $)
    lspfval $p |- ( W e. X
      -> N = ( s e. ~P V |-> |^| { t e. S | s C_ t } ) ) $=
      ( vw wcel clspn cfv cpw cv cvv wceq cbs clss crab cint cmpt fveq2 syl6eqr
      wss elex pweqd rabeq syl inteqd mpteq12dv df-lsp fvex eqeltri mptex fvmpt
      pwex syl5eq ) EFLZCEMNZGDOZGPAPUFZABUAZUBZUCZJUTEQLVAVFREFUGKEGKPZSNZOZVC
      AVGTNZUAZUBZUCVFQMVGERZGVIVLVBVEVMVHDVMVHESNZDVGESUDHUEUHVMVKVDVMVJBRVKVD
      RVMVJETNBVGETUDIUEVCAVJBUIUJUKULKAGUMGVBVEDDVNQHESUNUOURUPUQUJUS $.

    $( The span operator on a left module maps subsets to subsets.
       (Contributed by Stefan O'Rear, 12-Dec-2014.) $)
    lspf $p |- ( W e. LMod -> N : ~P V --> S ) $=
      ( vs vp clmod wcel cpw wf cv wss crab cint cmpt wa c0 wne ssrab2 a1i wrex
      simpl lss1 elpwi sseq2 rspcev syl2an sylibr lssintcl syl3anc eqid lspfval
      rabn0 fmptd feq1d mpbird ) DJKZCLZABMVAAHVAHNZINZOZIAPZQZRZMUTHVAVFAVGUTV
      BVAKZSZUTVEAOZVETUAZVFAKUTVHUEVJVIVDIAUBUCVIVDIAUDZVKUTCAKVBCOZVLVHACDEFU
      FVBCUGVDVMICAVCCVBUHUIUJVDIAUPUKVEADFULUMVGUNUQUTVAABVGIABCDJHEFGUOURUS
      $.

    $( The span of a set of vectors (in a left module).  ( ~ spanval analog.)
       (Contributed by NM, 8-Dec-2013.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lspval $p |- ( ( W e. LMod /\ U C_ V )
       -> ( N ` U ) = |^| { t e. S | U C_ t } ) $=
      ( vs clmod wcel wss cfv cv crab cint wceq cvv cbs cpw cmpt lspfval fveq1d
      wa adantr simpr fvex eqeltri elpw2 sylibr wrex lss1 sseq2 rspcev intexrab
      sylan sylib sseq1 rabbidv inteqd eqid fvmptg syl2anc eqtrd ) FKLZCEMZUEZC
      DNZCJEUAZJOZAOZMZABPZQZUBZNZCVLMZABPZQZVFVIVQRVGVFCDVPABDEFKJGHIUCUDUFVHC
      VJLZVTSLZVQVTRVHVGWAVFVGUGCEEFTNSGFTUHUIUJUKVHVRABULZWBVFEBLVGWCBEFGHUMVR
      VGAEBVLECUNUOUQVRABUPURJCVOVTVJSVPVKCRZVNVSWDVMVRABVKCVLUSUTVAVPVBVCVDVE
      $.

    $( The span of a set of vectors is a subspace.  ( ~ spancl analog.)
       (Contributed by NM, 9-Dec-2013.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lspcl $p |- ( ( W e. LMod /\ U C_ V ) -> ( N ` U ) e. S ) $=
      ( clmod wcel cpw wf cfv wss lspf cbs cvv fvex eqeltri elpw2 biimpri
      ffvelrn syl2an ) EIJDKZACLBUDJZBCMAJBDNZACDEFGHOUEUFBDDEPMQFEPRSTUAUDABCU
      BUC $.

    $( The span of a singleton is a subspace (frequently used special case of
       ~ lspcl ).  (Contributed by NM, 17-Jul-2014.) $)
    lspsncl $p |- ( ( W e. LMod /\ X e. V ) -> ( N ` { X } ) e. S ) $=
      ( wcel clmod csn wss cfv snssi lspcl sylan2 ) ECIDJIEKZCLQBMAIECNAQBCDFGH
      OP $.

    lspprcl.w $e |- ( ph -> W e. LMod ) $.
    lspprcl.x $e |- ( ph -> X e. V ) $.
    lspprcl.y $e |- ( ph -> Y e. V ) $.
    $( The span of a pair is a subspace (frequently used special case of
       ~ lspcl ).  (Contributed by NM, 11-Apr-2015.) $)
    lspprcl $p |- ( ph -> ( N ` { X , Y } ) e. S ) $=
      ( clmod wcel cpr wss cfv prssi syl2anc lspcl ) AENOFGPZDQZUBCRBOKAFDOGDOU
      CLMFGDSTBUBCDEHIJUAT $.

    lsptpcl.z $e |- ( ph -> Z e. V ) $.
    $( The span of an unordered triple is a subspace (frequently used special
       case of ~ lspcl ).  (Contributed by NM, 22-May-2015.) $)
    lsptpcl $p |- ( ph -> ( N ` { X , Y , Z } ) e. S ) $=
      ( clmod wcel ctp wss syl2anc cfv cpr csn df-tp prssi snssd unssd syl5eqss
      cun lspcl ) AEPQFGHRZDSUKCUABQLAUKFGUBZHUCZUIDFGHUDAULUMDAFDQGDQULDSMNFGD
      UETAHDOUFUGUHBUKCDEIJKUJT $.
  $}

  ${
    lspsnsubg.v $e |- V = ( Base ` W ) $.
    lspsnsubg.n $e |- N = ( LSpan ` W ) $.
    $( The span of a singleton is an additive subgroup (frequently used special
       case of ~ lspcl ).  (Contributed by Mario Carneiro, 21-Apr-2016.) $)
    lspsnsubg $p |- ( ( W e. LMod /\ X e. V ) ->
        ( N ` { X } ) e. ( SubGrp ` W ) ) $=
      ( clmod wcel csn cfv clss csubg eqid lspsncl lsssubg syldan ) CGHDBHDIAJZ
      CKJZHQCLJHRABCDERMZFNRQCSOP $.
  $}

  ${
    $d a b $.
    $( ~ fvco4i lemma for linear spans.  (Contributed by Stefan O'Rear,
       4-Apr-2015.) $)
    00lsp $p |- (/) = ( LSpan ` (/) ) $=
      ( va vb c0 clspn cfv cpw wss crab cint cmpt cvv wcel wceq 0ex base0 ax-mp
      cv eqid eqtri mpbir 00lss lspfval cdm dmmpt wn wral vprc rab0 inteqi int0
      eleq1i mtbir rgenw rabeq0 wrel wb wfun funmpt funrel reldm0 eqtr2i ) CDEZ
      ACFZAQBQGZBCHZIZJZCCKLVBVGMNBCVBCCKAOUAVBRUBPVGCMZVGUCZCMZVIVFKLZAVCHZCAV
      CVFVGVGRUDVLCMVKUEZAVCUFVMAVCVKKKLUGVFKKVFCIKVECVDBUHUIUJSUKULUMVKAVCUNTS
      VGUOZVHVJUPVGUQVNAVCVFURVGUSPVGUTPTVA $.
  $}

  ${
    $d t S $.  $d t U $.  $d t W $.
    lspid.s $e |- S = ( LSubSp ` W ) $.
    lspid.n $e |- N = ( LSpan ` W ) $.
    $( The span of a subspace is itself.  ( ~ spanid analog.)  (Contributed by
       NM, 15-Dec-2013.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lspid $p |- ( ( W e. LMod /\ U e. S ) -> ( N ` U ) = U ) $=
      ( vt clmod wcel wa cfv cv wss crab cint cbs wceq eqid lssss lspval sylan2
      intmin adantl eqtrd ) DHIZBAIZJBCKZBGLMGANOZBUFUEBDPKZMUGUHQABUIDUIRZESGA
      BCUIDUJEFTUAUFUHBQUEGBAUBUCUD $.
  $}

  ${
    $d t T $.  $d t U $.  $d t V $.  $d t W $.
    lspss.v $e |- V = ( Base ` W ) $.
    lspss.n $e |- N = ( LSpan ` W ) $.
    $( A span is a set of vectors.  (Contributed by NM, 22-Feb-2014.)  (Revised
       by Mario Carneiro, 19-Jun-2014.) $)
    lspssv $p |- ( ( W e. LMod /\ U C_ V ) -> ( N ` U ) C_ V ) $=
      ( clmod wcel wss wa cfv clss eqid lspcl lssss syl ) DGHACIJABKZDLKZHQCIRA
      BCDERMZFNRQCDESOP $.

    $( Span preserves subset ordering.  ( ~ spanss analog.)  (Contributed by
       NM, 11-Dec-2013.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lspss $p |- ( ( W e. LMod /\ U C_ V /\ T C_ U )
          -> ( N ` T ) C_ ( N ` U ) ) $=
      ( vt clmod wcel wss w3a cv clss cfv crab cint syl wceq lspval wa wi sstr2
      simpl3 ss2rabdv intss simp1 simp3 simp2 sstrd syl2anc 3adant3 3sstr4d
      eqid ) EIJZBDKZABKZLZAHMZKZHENOZPZQZBUSKZHVAPZQZACOZBCOZURVEVBKVCVFKURVDU
      THVAURUSVAJZUAUQVDUTUBUOUPUQVIUDABUSUCRUEVEVBUFRURUOADKVGVCSUOUPUQUGURABD
      UOUPUQUHUOUPUQUIUJHVAACDEFVAUNZGTUKUOUPVHVFSUQHVABCDEFVJGTULUM $.

    $( A set of vectors is a subset of its span.  ( ~ spanss2 analog.)
       (Contributed by NM, 6-Feb-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lspssid $p |- ( ( W e. LMod /\ U C_ V ) -> U C_ ( N ` U ) ) $=
      ( vt clmod wcel wss wa clss cfv crab cint ssintub eqid lspval syl5sseqr
      cv ) DHIACJKAGTJGDLMZNOAABMGAUAPGUAABCDEUAQFRS $.

    $( The span of a set of vectors is idempotent.  (Contributed by NM,
       22-Feb-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lspidm $p |- ( ( W e. LMod /\ U C_ V )
                  -> ( N ` ( N ` U ) ) = ( N ` U ) ) $=
      ( clmod wcel wss cfv clss wceq eqid lspcl lspid syldan ) DGHACIABJZDKJZHQ
      BJQLRABCDERMZFNRQBDSFOP $.

    $( The span of union is the span of the union of spans.  (Contributed by
       NM, 22-Feb-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.) $)
    lspun $p |- ( ( W e. LMod /\ T C_ V /\ U C_ V )
       -> ( N ` ( T u. U ) ) = ( N ` ( ( N ` T ) u. ( N ` U ) ) ) ) $=
      ( clmod wcel wss w3a cun cfv simp1 unssd lspss syl3anc syl2anc lspssid
      a1i simp2 simp3 ssun1 ssun2 lspssv sstrd unss12 wceq lspidm sseqtrd eqssd
      ) EHIZADJZBDJZKZABLZCMZACMZBCMZLZCMZUOULUTDJUPUTJZUQVAJULUMUNNZUOUTUQDUOU
      RUSUQUOULUPDJZAUPJZURUQJVCUOABDULUMUNUAZULUMUNUBZOZVEUOABUCTAUPCDEFGPQUOU
      LVDBUPJZUSUQJVCVHVIUOBAUDTBUPCDEFGPQOZUOULVDUQDJZVCVHUPCDEFGUERZUFUOAURJZ
      BUSJZVBUOULUMVMVCVFACDEFGSRUOULUNVNVCVGBCDEFGSRAURBUSUGRUPUTCDEFGPQUOVAUQ
      CMZUQUOULVKUTUQJVAVOJVCVLVJUTUQCDEFGPQUOULVDVOUQUHVCVHUPCDEFGUIRUJUK $.
  $}

  ${
    lspssp.s $e |- S = ( LSubSp ` W ) $.
    lspssp.n $e |- N = ( LSpan ` W ) $.
    $( If a set of vectors is a subset of a subspace, then the span of those
       vectors is also contained in the subspace.  (Contributed by Mario
       Carneiro, 4-Sep-2014.) $)
    lspssp $p |- ( ( W e. LMod /\ U e. S /\ T C_ U ) -> ( N ` T ) C_ U ) $=
      ( clmod wcel wss w3a cfv cbs eqid lssss lspss syl3an2 wceq lspid 3adant3
      sseqtrd ) EHIZCAIZBCJZKBDLZCDLZCUCUBCEMLZJUDUEUFJACUGEUGNZFOBCDUGEUHGPQUB
      UCUFCRUDACDEFGSTUA $.
  $}

  ${
    $d W a b $.  $d U a b $.  $d K a b $.  $d F a b $.
    mrclsp.u $e |- U = ( LSubSp ` W ) $.
    mrclsp.k $e |- K = ( LSpan ` W ) $.
    mrclsp.f $e |- F = ( mrCls ` U ) $.
    $( Moore closure generalizes module span.  (Contributed by Stefan O'Rear,
       31-Jan-2015.) $)
    mrclsp $p |- ( W e. LMod -> K = F ) $=
      ( va vb clmod wcel cbs cfv cpw cv wss crab cint cmpt eqid lspfval mrcfval
      cmre wceq lssmre syl eqtr4d ) DJKZCHDLMZNHOIOPIAQRSZBIACUIDJHUITZEFUAUHAU
      IUCMKBUJUDUIADUKEUEHABUIIGUBUFUG $.
  $}

  ${
    lspsnss.s $e |- S = ( LSubSp ` W ) $.
    lspsnss.n $e |- N = ( LSpan ` W ) $.
    $( The span of the singleton of a subspace member is included in the
       subspace.  ( ~ spansnss analog.)  (Contributed by NM, 9-Apr-2014.)
       (Revised by Mario Carneiro, 4-Sep-2014.) $)
    lspsnss $p |- ( ( W e. LMod /\ U e. S /\ X e. U )
            -> ( N ` { X } ) C_ U ) $=
      ( wcel clmod csn wss cfv snssi lspssp syl3an3 ) EBHDIHBAHEJZBKPCLBKEBMAPB
      CDFGNO $.

    lspsnel3.w $e |- ( ph -> W e. LMod ) $.
    lspsnel3.u $e |- ( ph -> U e. S ) $.
    lspsnel3.x $e |- ( ph -> X e. U ) $.
    lspsnel3.y $e |- ( ph -> Y e. ( N ` { X } ) ) $.
    $( A member of the span of the singleton of a vector is a member of a
       subspace containing the vector.  ( ~ elspansn3 analog.)  (Contributed by
       NM, 4-Jul-2014.) $)
    lspsnel3 $p |- ( ph -> Y e. U ) $=
      ( csn cfv clmod wcel wss lspsnss syl3anc sseldd ) AFNDOZCGAEPQCBQFCQUBCRJ
      KLBCDEFHISTMUA $.
  $}

  ${
    lspprss.s $e |- S = ( LSubSp ` W ) $.
    lspprss.n $e |- N = ( LSpan ` W ) $.
    lspprss.w $e |- ( ph -> W e. LMod ) $.
    lspprss.u $e |- ( ph -> U e. S ) $.
    lspprss.x $e |- ( ph -> X e. U ) $.
    lspprss.y $e |- ( ph -> Y e. U ) $.
    $( The span of a pair of vectors in a subspace belongs to the subspace.
       (Contributed by NM, 12-Jan-2015.) $)
    lspprss $p |- ( ph -> ( N ` { X , Y } ) C_ U ) $=
      ( clmod wcel cpr wss cfv wa jca wb prssg syl mpbid lspssp syl3anc ) AENOC
      BOFGPZCQZUGDRCQJKAFCOZGCOZSZUHAUIUJLMTZAUKUKUHUAULFGCCCUBUCUDBUGCDEHIUEUF
      $.
  $}

  ${
    lspsnid.v $e |- V = ( Base ` W ) $.
    lspsnid.n $e |- N = ( LSpan ` W ) $.
    $( A vector belongs to the span of its singleton.  ( ~ spansnid analog.)
       (Contributed by NM, 9-Apr-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lspsnid $p |- ( ( W e. LMod /\ X e. V ) -> X e. ( N ` { X } ) ) $=
      ( clmod wcel wa csn cfv wss snssi lspssid sylan2 wb snssg adantl mpbird )
      CGHZDBHZIDDJZAKZHZUBUCLZUATUBBLUEDBMUBABCEFNOUAUDUEPTDUCBQRS $.
  $}

  ${
    lspsnel5.v $e |- V = ( Base ` W ) $.
    lspsnel5.s $e |- S = ( LSubSp ` W ) $.
    lspsnel5.n $e |- N = ( LSpan ` W ) $.
    lspsnel5.w $e |- ( ph -> W e. LMod ) $.
    lspsnel5.a $e |- ( ph -> U e. S ) $.
    $( Relationship between a vector and the 1-dim (or 0-dim) subspace it
       generates.  (Contributed by NM, 8-Aug-2014.)  (Revised by Mario
       Carneiro, 8-Jan-2015.) $)
    lspsnel6 $p |- ( ph -> ( X e. U <-> ( X e. V /\ ( N ` { X } ) C_ U ) ) ) $=
      ( wcel csn cfv wss wa lssel sylan adantr clmod simpr lspsnss syl3anc ssel
      jca lspsnid syl5com impr impbida ) AGCMZGEMZGNDOZCPZQAUKQZULUNACBMZUKULLB
      CEFGHIRSUOFUAMZUPUKUNAUQUKKTAUPUKLTAUKUBBCDFGIJUCUDUFAULUNUKAULQGUMMZUNUK
      AUQULURKDEFGHJUGSUMCGUEUHUIUJ $.

    lspsnel5.x $e |- ( ph -> X e. V ) $.
    $( Relationship between a vector and the 1-dim (or 0-dim) subspace it
       generates.  (Contributed by NM, 8-Aug-2014.) $)
    lspsnel5 $p |- ( ph -> ( X e. U <-> ( N ` { X } ) C_ U ) ) $=
      ( wcel csn cfv wss wa lspsnel6 biantrurd bitr4d ) AGCNGENZGODPCQZRUCABCDE
      FGHIJKLSAUBUCMTUA $.
  $}

  ${
    lspsnel5a.s $e |- S = ( LSubSp ` W ) $.
    lspsnel5a.n $e |- N = ( LSpan ` W ) $.
    lspsnel5a.w $e |- ( ph -> W e. LMod ) $.
    lspsnel5a.a $e |- ( ph -> U e. S ) $.
    lspsnel5a.x $e |- ( ph -> X e. U ) $.
    $( Relationship between a vector and the 1-dim (or 0-dim) subspace it
       generates.  (Contributed by NM, 20-Feb-2015.) $)
    lspsnel5a $p |- ( ph -> ( N ` { X } ) C_ U ) $=
      ( wcel csn cfv wss cbs eqid lssel syl2anc lspsnel5 mpbid ) AFCLZFMDNCOKAB
      CDEPNZEFUCQZGHIJACBLUBFUCLJKBCUCEFUDGRSTUA $.
  $}

  ${
    lspprid.v $e |- V = ( Base ` W ) $.
    lspprid.n $e |- N = ( LSpan ` W ) $.
    lspprid.w $e |- ( ph -> W e. LMod ) $.
    lspprid.x $e |- ( ph -> X e. V ) $.
    lspprid.y $e |- ( ph -> Y e. V ) $.
    $( A member of a pair of vectors belongs to their span.  (Contributed by
       NM, 14-May-2015.) $)
    lspprid1 $p |- ( ph -> X e. ( N ` { X , Y } ) ) $=
      ( cpr cfv wcel csn wss clmod prssi syl2anc snsspr1 a1i lspss syl3anc clss
      eqid lspprcl lspsnel5 mpbird ) AEEFLZBMZNEOZBMUJPZADQNUICPZUKUIPZULIAECNF
      CNUMJKEFCRSUNAEFTUAUKUIBCDGHUBUCADUDMZUJBCDEGUOUEZHIAUOBCDEFGUPHIJKUFJUGU
      H $.

    $( A member of a pair of vectors belongs to their span.  (Contributed by
       NM, 14-May-2015.) $)
    lspprid2 $p |- ( ph -> Y e. ( N ` { X , Y } ) ) $=
      ( cpr cfv lspprid1 prcom fveq2i syl6eleq ) AFFELZBMEFLZBMABCDFEGHIKJNRSBF
      EOPQ $.
  $}

  ${
    lspprvacl.v $e |- V = ( Base ` W ) $.
    lspprvacl.p $e |- .+ = ( +g ` W ) $.
    lspprvacl.n $e |- N = ( LSpan ` W ) $.
    lspprvacl.w $e |- ( ph -> W e. LMod ) $.
    lspprvacl.x $e |- ( ph -> X e. V ) $.
    lspprvacl.y $e |- ( ph -> Y e. V ) $.
    $( The sum of two vectors belongs to their span.  (Contributed by NM,
       20-May-2015.) $)
    lspprvacl $p |- ( ph -> ( X .+ Y ) e. ( N ` { X , Y } ) ) $=
      ( clmod wcel cpr cfv clss co eqid lspprcl lspprid1 lspprid2 syl22anc
      lssvacl ) AENOFGPCQZERQZOFUFOGUFOFGBSUFOKAUGCDEFGHUGTZJKLMUAACDEFGHJKLMUB
      ACDEFGHJKLMUCBUGUFEFGIUHUEUD $.
  $}

  ${
    $d x y N $.  $d x y U $.  $d x y ph $.
    lssats2.s $e |- S = ( LSubSp ` W ) $.
    lssats2.n $e |- N = ( LSpan ` W ) $.
    lssats2.w $e |- ( ph -> W e. LMod ) $.
    lssats2.u $e |- ( ph -> U e. S ) $.
    $( A way to express atomisticity (a subspace is the union of its atoms).
       (Contributed by NM, 3-Feb-2015.) $)
    lssats2 $p |- ( ph -> U = U_ x e. U ( N ` { x } ) ) $=
      ( vy cv csn cfv ciun wcel wa simpr adantr syl2anc wrex clmod eqid lspsnid
      cbs lssel sylan weq fveq2d eleq2d rspcev lspsnel5a sseld rexlimdva impbid
      sneq ex eliun syl6bbr eqrdv ) AKDBDBLZMZENZOZAKLZDPZVEVCPZBDUAZVEVDPAVFVH
      AVFVHAVFQZVFVEVEMZENZPZVHAVFRVIFUBPZVEFUENZPZVLAVMVFISADCPZVFVOJCDVNFVEVN
      UCZGUFUGEVNFVEVQHUDTVGVLBVEDBKUHZVCVKVEVRVBVJEVAVEUPUIUJUKTUQAVGVFBDAVADP
      ZQZVCDVEVTCDEFVAGHAVMVSISAVPVSJSAVSRULUMUNUOBVEDVCURUSUT $.
  $}

  ${
    lspsnvsel.v $e |- V = ( Base ` W ) $.
    lspsnvsel.t $e |- .x. = ( .s ` W ) $.
    lspsnvsel.f $e |- F = ( Scalar ` W ) $.
    lspsnvsel.k $e |- K = ( Base ` F ) $.
    lspsnvsel.n $e |- N = ( LSpan ` W ) $.
    lspsnvsel.w $e |- ( ph -> W e. LMod ) $.
    lspsnvsel.a $e |- ( ph -> A e. K ) $.
    lspsnvsel.x $e |- ( ph -> X e. V ) $.
    $( A scalar product with a vector belongs to the span of its singleton.
       ( ~ spansnmul analog.)  (Contributed by NM, 2-Jul-2014.) $)
    lspsneli $p |- ( ph -> ( A .x. X ) e. ( N ` { X } ) ) $=
      ( wcel cfv syl2anc clmod csn clss eqid lspsncl lspsnid lssvscl syl22anc
      co ) AHUARZIUBFSZHUCSZRZBERIUKRZBICUIUKROAUJIGRZUMOQULFGHIJULUDZNUETPAUJU
      OUNOQFGHIJNUFTEULCUKDHBILKMUPUGUH $.
  $}

  ${
    $d k F $.  $d k v K $.  $d k v N $.  $d k v U $.  $d k v V $.  $d k v W $.
    $d k R $.  $d k v .x. $.  $d k v X $.
    lspsn.f $e |- F = ( Scalar ` W ) $.
    lspsn.k $e |- K = ( Base ` F ) $.
    lspsn.v $e |- V = ( Base ` W ) $.
    lspsn.t $e |- .x. = ( .s ` W ) $.
    lspsn.n $e |- N = ( LSpan ` W ) $.
    $( Span of the singleton of a vector.  (Contributed by NM, 14-Jan-2014.)
       (Proof shortened by Mario Carneiro, 19-Jun-2014.) $)
    lspsn $p |- ( ( W e. LMod /\ X e. V )
        -> ( N ` { X } ) = { v | E. k e. K v = ( k .x. X ) } ) $=
      ( wcel wa cfv cv wceq adantr clmod csn wrex cab clss eqid simpl lss1d cur
      co lmod1cl lmodvs1 eqcomd oveq1 eqeq2d rspcev syl2anc eqeq1 rexbidv elabg
      wb adantl mpbird lspsnel5a wi lspsncl lspsnid lssvscl syl22anc eleq1a syl
      simpr rexlimdva abssdv eqssd ) HUAOZIGOZPZIUBFQZARZCRZIBUJZSZCEUCZAUDZVRH
      UEQZWEFHIWFUFZNVPVQUGZAWFBCDEGHILJMKWGUHVRIWEOZIWBSZCEUCZVRDUIQZEOZIWLIBU
      JZSZWKVPWMVQWLDEHJKWLUFZUKTVRWNIBWLDGHILJMWPULUMWJWOCWLEWAWLSWBWNIWAWLIBU
      NUOUPUQVQWIWKVAVPWDWKAIGVTISWCWJCEVTIWBURUSUTVBVCVDVRWDAVSVRWCVTVSOZCEVRW
      AEOZPZWBVSOZWCWQVEWSVPVSWFOZWRIVSOZWTVRVPWRWHTVRXAWRWFFGHILWGNVFTVRWRVLVR
      XBWRFGHILNVGTEWFBVSDHWAIJMKWGVHVIWBVSVTVJVKVMVNVO $.

    $( Member of span of the singleton of a vector.  ( ~ elspansn analog.)
       (Contributed by NM, 22-Feb-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lspsnel $p |- ( ( W e. LMod /\ X e. V )
       -> ( U e. ( N ` { X } ) <-> E. k e. K U = ( k .x. X ) ) ) $=
      ( vv wcel cv wceq wrex cvv clmod wa csn cfv co lspsn eleq2d ovex syl6eqel
      cab id rexlimivw eqeq1 rexbidv elab3 syl6bb ) HUAPIGPUBZBIUCFUDZPBOQZCQZI
      AUEZRZCESZOUJZPBVARZCESZUQURVDBOACDEFGHIJKLMNUFUGVCVFOBVEBTPCEVEBVATVEUKU
      TIAUHUIULUSBRVBVECEUSBVAUMUNUOUP $.

    $( Span of a scalar product of a singleton.  (Contributed by NM,
       23-Apr-2014.)  (Proof shortened by Mario Carneiro, 4-Sep-2014.) $)
    lspsnvsi $p |- ( ( W e. LMod /\ R e. K /\ X e. V )
        -> ( N ` { ( R .x. X ) } ) C_ ( N ` { X } ) ) $=
      ( clmod wcel w3a clss cfv csn co eqid simp1 wss simp3 snssd lspcl syl2anc
      simp2 lspsneli lspsnel5a ) GNOZADOZHFOZPZGQRZHSZERZEGAHBTUOUAZMUKULUMUBZU
      NUKUPFUCUQUOOUSUNHFUKULUMUDZUEUOUPEFGKURMUFUGUNABCDEFGHKLIJMUSUKULUMUHUTU
      IUJ $.
  $}

  ${
    $d k K $.  $d k N $.  $d k S $.  $d k V $.  $d k W $.  $d k X $.  $d k Y $.
    $d k .x. $.
    lspsnss2.v $e |- V = ( Base ` W ) $.
    lspsnss2.s $e |- S = ( Scalar ` W ) $.
    lspsnss2.k $e |- K = ( Base ` S ) $.
    lspsnss2.t $e |- .x. = ( .s ` W ) $.
    lspsnss2.n $e |- N = ( LSpan ` W ) $.
    lspsnss2.w $e |- ( ph -> W e. LMod ) $.
    lspsnss2.x $e |- ( ph -> X e. V ) $.
    lspsnss2.y $e |- ( ph -> Y e. V ) $.
    $( Comparable spans of singletons must have proportional vectors.  See
       ~ lspsneq for equal span version.  (Contributed by NM, 7-Jun-2015.) $)
    lspsnss2 $p |- ( ph ->
 ( ( N ` { X } ) C_ ( N ` { Y } ) <-> E. k e. K X = ( k .x. Y ) ) ) $=
      ( cfv wcel csn wss cv co wceq wrex clss clmod lspsncl syl2anc lspsnel5 wb
      eqid lspsnel bitr3d ) AIJUAFSZTZIUAFSUPUBIDUCJCUDUEDEUFZAHUGSZUPFGHIKUSUM
      ZOPAHUHTZJGTZUPUSTPRUSFGHJKUTOUIUJQUKAVAVBUQURULPRCIDBEFGHJLMKNOUNUJUO $.
  $}

  ${
    lspsnneg.v $e |- V = ( Base ` W ) $.
    lspsnneg.m $e |- M = ( invg ` W ) $.
    lspsnneg.n $e |- N = ( LSpan ` W ) $.
    $( Negation does not change the span of a singleton.  (Contributed by NM,
       24-Apr-2014.)  (Proof shortened by Mario Carneiro, 19-Jun-2014.) $)
    lspsnneg $p |- ( ( W e. LMod /\ X e. V )
        -> ( N ` { ( M ` X ) } ) = ( N ` { X } ) ) $=
      ( wcel cfv csn co eqid lmodvneg1 sneqd fveq2d wss cgrp lspsnvsi syl3anc
      clmod wa csca cur cminusg cvsca cbs simpl lmodfgrp lmod1cl syl2anc adantr
      grpinvcl simpr wceq lmodvnegcl syldan lmodgrp grpinvinv sylan eqtrd eqssd
      eqsstr3d ) DUAIZECIZUBZEAJZKZBJZEKZBJZVFVIDUCJZUDJZVLUEJZJZEDUFJZLZKZBJZV
      KVFVRVHBVFVQVGVPVMVLVNACDEFGVLMZVPMZVMMZVNMZNOPVFVDVOVLUGJZIZVEVSVKQVDVEU
      HZVDWEVEVDVLRIVMWDIWEVLDVTUIVMVLWDDVTWDMZWBUJWDVLVNVMWGWCUMUKULZVDVEUNVOV
      PVLWDBCDEVTWGFWAHSTVCVFVKVOVGVPLZKZBJZVIVFWJVJBVFWIEVFWIVGAJZEVDVEVGCIZWI
      WLUOACDEFGUPZVPVMVLVNACDVGFGVTWAWBWCNUQVDDRIVEWLEUODURCDAEFGUSUTVAOPVFVDW
      EWMWKVIQWFWHWNVOVPVLWDBCDVGVTWGFWAHSTVCVB $.
  $}

  ${
    lspsnsub.v $e |- V = ( Base ` W ) $.
    lspsnsub.s $e |- .- = ( -g ` W ) $.
    lspsnsub.n $e |- N = ( LSpan ` W ) $.
    lspsnsub.w $e |- ( ph -> W e. LMod ) $.
    lspsnsub.x $e |- ( ph -> X e. V ) $.
    lspsnsub.y $e |- ( ph -> Y e. V ) $.
    $( Swapping subtraction order does not change the span of a singleton.
       (Contributed by NM, 4-Apr-2015.) $)
    lspsnsub $p |- ( ph -> ( N ` { ( X .- Y ) } ) = ( N ` { ( Y .- X ) } ) ) $=
      ( co cminusg cfv csn wcel wceq syl3anc clmod lmodvsubcl eqid syl2anc cgrp
      lspsnneg lmodgrp syl grpinvsub sneqd fveq2d eqtr3d ) AFGBNZEOPZPZQZCPZUMQ
      CPZGFBNZQZCPAEUARZUMDRZUQURSKAVAFDRZGDRZVBKLMBDEFGHIUBTUNCDEUMHUNUCZJUFUD
      AUPUTCAUOUSAEUERZVCVDUOUSSAVAVFKEUGUHLMDEBUNFGHIVEUITUJUKUL $.
  $}

  ${
    lspsn0.z $e |- .0. = ( 0g ` W ) $.
    lspsn0.n $e |- N = ( LSpan ` W ) $.
    $( Span of the singleton of the zero vector.  ( ~ spansn0 analog.)
       (Contributed by NM, 15-Jan-2014.)  (Proof shortened by Mario Carneiro,
       19-Jun-2014.) $)
    lspsn0 $p |- ( W e. LMod -> ( N ` { .0. } ) = { .0. } ) $=
      ( clmod wcel csn clss cfv wceq eqid lsssn0 lspid mpdan ) BFGCHZBIJZGPAJPK
      QBCDQLZMQPABRENO $.

    $( Span of the empty set.  (Contributed by Mario Carneiro, 5-Sep-2014.) $)
    lsp0 $p |- ( W e. LMod -> ( N ` (/) ) = { .0. } ) $=
      ( clmod wcel c0 cfv csn clss wss lsssn0 0ss lspssp mp3an3 mpdan cbs lspcl
      eqid mpan2 lss0ss eqssd ) BFGZHAIZCJZUDUFBKIZGZUEUFLZUGBCDUGTZMUDUHHUFLUI
      UFNUGHUFABUJEOPQUDUEUGGZUFUELUDHBRIZLUKULNUGHAULBULTUJESUAUGBUECDUJUBQUC
      $.

    $( Union of the span of the empty set.  (Contributed by NM,
       14-Mar-2015.) $)
    lspuni0 $p |- ( W e. LMod -> U. ( N ` (/) ) = .0. ) $=
      ( clmod wcel cfv cuni csn lsp0 unieqd c0g cvv fvex eqeltri unisn syl6eq
      c0 ) BFGZSAHZICJZICTUAUBABCDEKLCCBMHNDBMOPQR $.
  $}

  ${
    lspun0.v $e |- V = ( Base ` W ) $.
    lspun0.o $e |- .0. = ( 0g ` W ) $.
    lspun0.n $e |- N = ( LSpan ` W ) $.
    lspun0.w $e |- ( ph -> W e. LMod ) $.
    lspun0.x $e |- ( ph -> X C_ V ) $.
    $( The span of a union with the zero subspace.  (Contributed by NM,
       22-May-2015.) $)
    lspun0 $p |- ( ph -> ( N ` ( X u. { .0. } ) ) = ( N ` X ) ) $=
      ( csn cun cfv wcel wss wceq syl syl2anc eqtrd clmod lmod0vcl snssd lspsn0
      lspun syl3anc uneq2d clss eqid lspcl lss0ss ssequn2 sylib fveq2d lspidm )
      AEFLZMBNZEBNZUPBNZMZBNZURADUAOZECPZUPCPUQVAQJKAFCAVBFCOJCDFGHUBRUCEUPBCDG
      IUEUFAVAURBNZURAUTURBAUTURUPMZURAUSUPURAVBUSUPQJBDFHIUDRUGAUPURPZVEURQAVB
      URDUHNZOZVFJAVBVCVHJKVGEBCDGVGUIZIUJSVGDURFHVIUKSUPURULUMTUNAVBVCVDURQJKE
      BCDGIUOSTT $.
  $}

  ${
    lspsneq0.v $e |- V = ( Base ` W ) $.
    lspsneq0.z $e |- .0. = ( 0g ` W ) $.
    lspsneq0.n $e |- N = ( LSpan ` W ) $.
    $( Span of the singleton is the zero subspace iff the vector is zero.
       (Contributed by NM, 27-Apr-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.) $)
    lspsneq0 $p |- ( ( W e. LMod /\ X e. V )
         -> ( ( N ` { X } ) = { .0. } <-> X = .0. ) ) $=
      ( clmod wcel wa csn cfv wceq lspsnid eleq2 syl5ibcom elsni syl6 lspsn0
      adantr sneq fveq2d eqeq1d syl5ibrcom impbid ) CIJZDBJZKZDLZAMZELZNZDENZUI
      UMDULJZUNUIDUKJUMUOABCDFHOUKULDPQDERSUIUMUNULAMZULNZUGUQUHACEGHTUAUNUKUPU
      LUNUJULADEUBUCUDUEUF $.
  $}

  ${
    lspsneq0b.v $e |- V = ( Base ` W ) $.
    lspsneq0b.o $e |- .0. = ( 0g ` W ) $.
    lspsneq0b.n $e |- N = ( LSpan ` W ) $.
    lspsneq0b.w $e |- ( ph -> W e. LMod ) $.
    lspsneq0b.x $e |- ( ph -> X e. V ) $.
    lspsneq0b.y $e |- ( ph -> Y e. V ) $.
    lspsneq0b.e $e |- ( ph -> ( N ` { X } ) = ( N ` { Y } ) ) $.
    $( Equal singleton spans imply both arguments are zero or both are nonzero.
       (Contributed by NM, 21-Mar-2015.) $)
    lspsneq0b $p |- ( ph -> ( X = .0. <-> Y = .0. ) ) $=
      ( wceq wa csn cfv adantr wcel clmod lspsneq0 syl2anc biimpar eqtr3d mpbid
      wb eqtrd impbida ) AEGOZFGOZAUJPZFQBRZGQZOZUKULEQBRZUMUNAUPUMOZUJNSAUPUNO
      ZUJADUATZECTURUJUGZKLBCDEGHIJUBUCZUDUEAUOUKUGZUJAUSFCTVBKMBCDFGHIJUBUCZSU
      FAUKPZURUJVDUPUMUNAUQUKNSAUOUKVCUDUHAUTUKVASUFUI $.
  $}

  ${
    lmodindp1.v $e |- V = ( Base ` W ) $.
    lmodindp1.p $e |- .+ = ( +g ` W ) $.
    lmodindp1.o $e |- .0. = ( 0g ` W ) $.
    lmodindp1.n $e |- N = ( LSpan ` W ) $.
    lmodindp1.w $e |- ( ph -> W e. LMod ) $.
    lmodindp1.x $e |- ( ph -> X e. V ) $.
    lmodindp1.y $e |- ( ph -> Y e. V ) $.
    lmodindp1.q $e |- ( ph -> ( N ` { X } ) =/= ( N ` { Y } ) ) $.
    $( Two independent (non-colinear) vectors have nonzero sum.  (Contributed
       by NM, 22-Apr-2015.) $)
    lmodindp1 $p |- ( ph -> ( X .+ Y ) =/= .0. ) $=
      ( csn cfv wceq wcel wne co wa cminusg eqid lspsnneg syl2anc eqcomd adantr
      clmod cgrp wb lmodgrp syl grpinvid1 syl3anc biimpar sneqd fveq2d eqtrd ex
      necon3d mpd ) AFQCRZGQZCRZUAFGBUBZHUAPAVGHVDVFAVGHSZVDVFSAVHUCZVDFEUDRZRZ
      QZCRZVFAVDVMSVHAVMVDAEUJTZFDTZVMVDSMNVJCDEFIVJUEZLUFUGUHUIVIVLVECVIVKGAVK
      GSZVHAEUKTZVOGDTVQVHULAVNVRMEUMUNNODBEVJFGHIJKVPUOUPUQURUSUTVAVBVC $.
  $}

  ${
    lsslsp.x $e |- X = ( W |`s U ) $.
    lsslsp.m $e |- M = ( LSpan ` W ) $.
    lsslsp.n $e |- N = ( LSpan ` X ) $.
    lsslsp.l $e |- L = ( LSubSp ` W ) $.
    $( Spans in submodules correspond to spans in the containing module.
       (Contributed by Stefan O'Rear, 12-Dec-2014.)  TODO:  Shouldn't we swap
       ` M `` G ` and ` N `` G ` since we are computing a property of
       ` N `` G ` ?  (Like we say sin 0 = 0 and not 0 = sin 0.) - NM
       15-Mar-2015. $)
    lsslsp $p |- ( ( W e. LMod /\ U e. L /\ G C_ U ) ->
      ( M ` G ) = ( N ` G ) ) $=
      ( clmod wcel wss cfv wa 3adant3 eqid syl2anc lspssp w3a simp1 cbs lsslmod
      clss simp3 wceq lssss 3ad2ant2 ressbas2 syl sseqtrd lspcl wb lsslss mpbid
      simpld lspssid syl3anc sstrd mpbir2and eqssd ) FLMZACMZBANZUAZBDOZBEOZVFV
      CVHCMZBVHNZVGVHNVCVDVEUBZVFVIVHANZVFVHGUEOZMZVIVLPZVFGLMZBGUCOZNZVNVCVDVP
      VECAFGHKUDQZVFBAVQVCVDVEUFZVFAFUCOZNZAVQUGVDVCWBVECAWAFWARZKUHUIZAWAGFHWC
      UJUKULZVMBEVQGVQRZVMRZJUMSVCVDVNVOUNVECVMAVHFGHKWGUOQUPUQVFVPVRVJVSWEBEVQ
      GWFJURSCBVHDFKITUSVFVPVGVMMZBVGNZVHVGNVSVFWHVGCMZVGANZVFVCBWANZWJVKVFBAWA
      VTWDUTZCBDWAFWCKIUMSCBADFKITVCVDWHWJWKPUNVECVMAVGFGHKWGUOQVAVFVCWLWIVKWMB
      DWAFWCIURSVMBVGEGWGJTUSVB $.
  $}

  ${
    lss0v.x $e |- X = ( W |`s U ) $.
    lss0v.o $e |- .0. = ( 0g ` W ) $.
    lss0v.z $e |- Z = ( 0g ` X ) $.
    lss0v.l $e |- L = ( LSubSp ` W ) $.
    $( The zero vector in a submodule equals the zero vector in the including
       module.  (Contributed by NM, 15-Mar-2015.) $)
    lss0v $p |- ( ( W e. LMod /\ U e. L ) -> Z = .0. ) $=
      ( clmod wcel csn cuni c0 clspn cfv wceq eqid c0g wa wss 0ss lsslsp mp3an3
      lsp0 adantr lsslmod syl 3eqtr3rd unieqd cvv fvex eqeltri unisn 3eqtr3g )
      CKLZABLZUAZFMZNEMZNFEUSUTVAUSOCPQZQZODPQZQZVAUTUQUROAUBVCVERAUCAOBVBVDCDG
      VBSZVDSZJUDUEUQVCVARURVBCEHVFUFUGUSDKLVEUTRBACDGJUHVDDFIVGUFUIUJUKFFDTQUL
      IDTUMUNUOEECTQULHCTUMUNUOUP $.
  $}

  ${
    $d a b x y z B $.  $d a b s t x y z K $.  $d a b s x y z ph $.  $d x y W $.
    $d a b s t x y z L $.  $d a b x y z P $.
    lsspropd.b1 $e |- ( ph -> B = ( Base ` K ) ) $.
    lsspropd.b2 $e |- ( ph -> B = ( Base ` L ) ) $.
    lsspropd.w $e |- ( ph -> B C_ W ) $.
    lsspropd.p $e |- ( ( ph /\ ( x e. W /\ y e. W ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    lsspropd.s1 $e |- ( ( ph /\ ( x e. P /\ y e. B ) ) ->
      ( x ( .s ` K ) y ) e. W ) $.
    lsspropd.s2 $e |- ( ( ph /\ ( x e. P /\ y e. B ) ) ->
      ( x ( .s ` K ) y ) = ( x ( .s ` L ) y ) ) $.
    lsspropd.p1 $e |- ( ph -> P = ( Base ` ( Scalar ` K ) ) ) $.
    lsspropd.p2 $e |- ( ph -> P = ( Base ` ( Scalar ` L ) ) ) $.
    $( If two structures have the same components (properties), they have the
       same subspace structure.  (Contributed by Mario Carneiro, 9-Feb-2015.)
       (Revised by Mario Carneiro, 14-Jun-2015.) $)
    lsspropd $p |- ( ph -> ( LSubSp ` K ) = ( LSubSp ` L ) ) $=
      ( vz cfv wcel eqid vs va vb clss cv cbs wss c0 wne cvsca cplusg wral csca
      co w3a wa wb wceq simpll simprl simplr simprrl sseldd ralrimivva ad2antrr
      ovrspc2v syl21anc simprrr oveqrspc2v syl12anc oveq1d eqtrd eleq1d anassrs
      2ralbidva ralbidva anbi2d pm5.32da 3anass 3bitr4g sseq2d raleqdv 3anbi13d
      3bitr3d islss eqrdv ) AUAFUDRZGUDRZAUAUEZFUFRZUGZWIUHUIZQUEZUBUEZFUJRZUNZ
      UCUEZFUKRZUNZWISZUCWIULUBWIULZQFUMRZUFRZULZUOZWIGUFRZUGZWLWMWNGUJRZUNZWQG
      UKRZUNZWISZUCWIULUBWIULZQGUMRZUFRZULZUOZWIWGSWIWHSAWIDUGZWLXAQEULZUOZXRWL
      XMQEULZUOZXEXQAXRWLXSUPZUPXRWLYAUPZUPXTYBAXRYCYDAXRUPZXSYAWLYEXAXMQEYEWME
      SZUPWTXLUBUCWIWIYEYFWNWISZWQWISZUPZWTXLUQYEYFYIUPZUPZWSXKWIYKWSWPWQXJUNZX
      KYKAWPHSZWQHSWSYLURAXRYJUSZYKYFWNDSZBUECUEWOUNHSZCDULBEULZYMYEYFYIUTZYKWI
      DWNAXRYJVAZYEYFYGYHVBVCZAYQXRYJAYPBCEDMVDVEBCEDHWOWMWNVFVGYKDHWQADHUGXRYJ
      KVEYKWIDWQYSYEYFYGYHVHVCVCABCHHWRXJWPWQLVIVJYKWPXIWQXJYKAYFYOWPXIURYNYRYT
      ABCEDWOXHWMWNNVIVJVKVLVMVNVOVPVQVRXRWLXSVSXRWLYAVSVTAXRWKXSXDWLADWJWIIWAA
      XAQEXCOWBWCAXRXGYAXPWLADXFWIJWAAXMQEXOPWBWCWDQXCWRWGWOWIXBWJFUBUCXBTXCTWJ
      TWRTWOTWGTWEQXOXJWHXHWIXNXFGUBUCXNTXOTXFTXJTXHTWHTWEVTWF $.

    lsspropd.v1 $e |- ( ph -> K e. _V ) $.
    lsspropd.v2 $e |- ( ph -> L e. _V ) $.
    $( If two structures have the same components (properties), they have the
       same span function.  (Contributed by Mario Carneiro, 9-Feb-2015.)
       (Revised by Mario Carneiro, 14-Jun-2015.) $)
    lsppropd $p |- ( ph -> ( LSpan ` K ) = ( LSpan ` L ) ) $=
      ( vs vt cbs cfv cpw cv wss clss crab cint cmpt clspn eqtr3d wceq lsspropd
      pweqd rabeq syl inteqd mpteq12dv cvv wcel eqid lspfval 3eqtr4d ) ASFUAUBZ
      UCZSUDTUDUEZTFUFUBZUGZUHZUIZSGUAUBZUCZVFTGUFUBZUGZUHZUIZFUJUBZGUJUBZASVEV
      IVLVOAVDVKADVDVKIJUKUNAVHVNAVGVMULVHVNULABCDEFGHIJKLMNOPUMVFTVGVMUOUPUQUR
      AFUSUTVQVJULQTVGVQVDFUSSVDVAVGVAVQVAVBUPAGUSUTVRVPULRTVMVRVKGUSSVKVAVMVAV
      RVAVBUPVC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Homomorphisms and isomorphisms of left modules
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c LMHom $.
  $c LMIso $.
  $c ~=m $.

  $( Extend class notation with the generator of left module hom-sets. $)
  clmhm $a class LMHom $.

  $( The class of left module isomorphism sets. $)
  clmim $a class LMIso $.

  $( The class of the left module isomorphism relation. $)
  clmic $a class ~=m $.

  ${
    $d f s t w x B $.  $d f s t w y E $.  $d f s t w K $.  $d f s t w x y S $.
    $d f x y F $.  $d f g s t w x y T $.  $d f s t w .x. $.  $d f s t w .X. $.
    $d f s t w L $.
    $( A homomorphism of left modules is a group homomorphism which
       additionally preserves the scalar product.  This requires both
       structures to be left modules over the same ring.  (Contributed by
       Stefan O'Rear, 31-Dec-2014.) $)
    df-lmhm $a |- LMHom = ( s e. LMod , t e. LMod
     |-> { f e. ( s GrpHom t ) |
        [. ( Scalar ` s ) / w ]. ( ( Scalar ` t ) = w /\
          A. x e. ( Base ` w ) A. y e. ( Base ` s )
          ( f ` ( x ( .s ` s ) y ) ) = ( x ( .s ` t ) ( f ` y ) ) ) } ) $.

    $( An isomorphism of modules is a homomorphism which is also a bijection,
       i.e. it preserves equality as well as the group and scalar operations.
       (Contributed by Stefan O'Rear, 21-Jan-2015.) $)
    df-lmim $a |- LMIso = ( s e. LMod , t e. LMod |-> { g e. ( s LMHom t ) |
        g : ( Base ` s ) -1-1-onto-> ( Base ` t ) } ) $.

    $( Two modules are said to be isomorphic iff they are connected by at least
       one isomorphism.  (Contributed by Stefan O'Rear, 25-Jan-2015.) $)
    df-lmic $a |- ~=m = ( `' LMIso " ( _V \ 1o ) ) $.

    $( Lemma for module homomorphisms.  (Contributed by Stefan O'Rear,
       31-Dec-2014.) $)
    reldmlmhm $p |- Rel dom LMHom $=
      ( vs vt vw vx vy vf clmod cv csca cfv wceq cvsca co cbs wral wa wsbc cghm
      crab clmhm df-lmhm reldmmpt2 ) ABGGBHZIJCHZKDHZEHZAHZLJMFHZJUEUFUHJUCLJMK
      EUGNJODUDNJOPCUGIJQFUGUCRMSTDECBFAUAUB $.

    $( Lemma for module isomorphisms.  (Contributed by Stefan O'Rear,
       23-Aug-2015.) $)
    lmimfn $p |- LMIso Fn ( LMod X. LMod ) $=
      ( vs vt vg clmod cv cbs cfv wf1o clmhm co crab clmim df-lmim ovex fnmpt2i
      rabex ) ABDDAEZFGBEZFGCEHZCQRIJZKLBCAMSCTQRINPO $.

    islmhm.k $e |- K = ( Scalar ` S ) $.
    islmhm.l $e |- L = ( Scalar ` T ) $.
    islmhm.b $e |- B = ( Base ` K ) $.
    islmhm.e $e |- E = ( Base ` S ) $.
    islmhm.m $e |- .x. = ( .s ` S ) $.
    islmhm.n $e |- .X. = ( .s ` T ) $.
    $( Property of being a homomorphism of left modules.  (Contributed by
       Stefan O'Rear, 1-Jan-2015.)  (Proof shortened by Mario Carneiro,
       30-Apr-2015.) $)
    islmhm $p |- ( F e. ( S LMHom T ) <->
       ( ( S e. LMod /\ T e. LMod ) /\ ( F e. ( S GrpHom T ) /\ L = K /\
         A. x e. B A. y e. E ( F ` ( x .x. y ) ) = ( x .X. ( F ` y ) ) ) ) ) $=
      ( co wceq cfv vs vt vw vf clmhm wcel clmod wa cghm cv wral w3a csca cvsca
      cbs wsbc df-lmhm elmpt2cl oveq12 fvexd simplr fveq2d syl6eqr simpr simpll
      crab eqtrd eqeq12d oveqd raleqbidv anbi12d sbcied rabeqbidv rabex ovmpt2a
      cvv ovex eleq2d fveq1 oveq2d 2ralbidv anbi2d 3anass bitr4i syl6bb biadan2
      elrab ) IDEUERZUFZDUGUFEUGUFUHZIDEUIRZUFZKJSZAUJZBUJZFRZITZWNWOITZGRZSZBH
      UKACUKZULZUAUBUGUGUBUJZUMTZUCUJZSZWNWOUAUJZUNTZRZUDUJZTZWNWOXJTZXCUNTZRZS
      ZBXGUOTZUKZAXEUOTZUKZUHZUCXGUMTZUPZUDXGXCUIRZVFZDEUEIABUCUBUDUAUQZURWJWII
      WMWPXJTZWNXLGRZSZBHUKZACUKZUHZUDWKVFZUFZXBWJWHYLIUAUBDEUGUGYDYLUEXGDSZXCE
      SZUHZYBYKUDYCWKXGDXCEUIUSYPXTYKUCYAVPYPXGUMUTYPXEYASZUHZXFWMXSYJYRXDKXEJY
      RXDEUMTKYRXCEUMYNYOYQVAZVBMVCYRXEDUMTZJYRXEYAYTYPYQVDYRXGDUMYNYOYQVEZVBVG
      LVCZVHYRXQYIAXRCYRXRJUOTCYRXEJUOUUBVBNVCYRXOYHBXPHYRXPDUOTHYRXGDUOUUAVBOV
      CYRXKYFXNYGYRXIWPXJYRXHFWNWOYRXHDUNTFYRXGDUNUUAVBPVCVIVBYRXMGWNXLYRXMEUNT
      GYRXCEUNYSVBQVCVIVHVJVJVKVLVMYEYKUDWKDEUIVQVNVOVRYMWLWMXAUHZUHXBYKUUCUDIW
      KXJISZYJXAWMUUDYHWTABCHUUDYFWQYGWSWPXJIVSUUDXLWRWNGWOXJIVSVTVHWAWBWGWLWMX
      AWCWDWEWF $.

    $( Property of a module homomorphism, similar to ~ ismhm .  (Contributed by
       Stefan O'Rear, 7-Mar-2015.) $)
    islmhm3 $p |- ( ( S e. LMod /\ T e. LMod ) -> ( F e. ( S LMHom T ) <->
       ( F e. ( S GrpHom T ) /\ L = K /\
         A. x e. B A. y e. E ( F ` ( x .x. y ) ) = ( x .X. ( F ` y ) ) ) ) ) $=
      ( co wcel clmod clmhm wa cghm wceq cv cfv wral w3a islmhm baib ) IDEUARSD
      TSETSUBIDEUCRSKJUDAUEZBUEZFRIUFUKULIUFGRUDBHUGACUGUHABCDEFGHIJKLMNOPQUIUJ
      $.
  $}

  ${
    $d F a b $.  $d S a b $.  $d T a b $.  $d L a b $.  $d K a b $.
    lmhmlem.k $e |- K = ( Scalar ` S ) $.
    lmhmlem.l $e |- L = ( Scalar ` T ) $.
    $( Non-quantified consequences of a left module homomorphism.  (Contributed
       by Stefan O'Rear, 1-Jan-2015.) $)
    lmhmlem $p |- ( F e. ( S LMHom T ) ->
        ( ( S e. LMod /\ T e. LMod ) /\ ( F e. ( S GrpHom T ) /\ L = K ) ) ) $=
      ( va vb co wcel clmod wa wceq cv cvsca cfv cbs wral eqid clmhm w3a islmhm
      cghm 3simpa anim2i sylbi ) CABUAJKALKBLKMZCABUDJKZEDNZHOZIOZAPQZJCQUKULCQ
      BPQZJNIARQZSHDRQZSZUBZMUHUIUJMZMHIUPABUMUNUOCDEFGUPTUOTUMTUNTUCURUSUHUIUJ
      UQUEUFUG $.

    $( A homomorphism of left modules constrains both modules to the same ring
       of scalars.  (Contributed by Stefan O'Rear, 1-Jan-2015.) $)
    lmhmsca $p |- ( F e. ( S LMHom T ) -> L = K ) $=
      ( clmhm co wcel clmod wa cghm wceq lmhmlem simprrd ) CABHIJAKJBKJLCABMIJE
      DNABCDEFGOP $.
  $}

  ${
    $( A homomorphism of left modules is a homomorphism of groups.
       (Contributed by Stefan O'Rear, 1-Jan-2015.) $)
    lmghm $p |- ( F e. ( S LMHom T ) -> F e. ( S GrpHom T ) ) $=
      ( clmhm co wcel clmod wa cghm csca cfv wceq eqid lmhmlem simprl syl ) CAB
      DEFAGFBGFHZCABIEFZBJKZAJKZLZHHRABCTSTMSMNQRUAOP $.

    $( A homomorphism of left modules has a left module as codomain.
       (Contributed by Stefan O'Rear, 1-Jan-2015.) $)
    lmhmlmod2 $p |- ( F e. ( S LMHom T ) -> T e. LMod ) $=
      ( clmhm co wcel clmod wa cghm csca cfv wceq eqid lmhmlem simplr syl ) CAB
      DEFAGFZBGFZHCABIEFBJKZAJKZLHZHRABCTSTMSMNQRUAOP $.

    $( A homomorphism of left modules has a left module as domain.
       (Contributed by Stefan O'Rear, 1-Jan-2015.) $)
    lmhmlmod1 $p |- ( F e. ( S LMHom T ) -> S e. LMod ) $=
      ( clmhm co wcel clmod cghm csca cfv wceq wa eqid lmhmlem simplld ) CABDEF
      AGFBGFCABHEFBIJZAIJZKLABCQPQMPMNO $.
  $}

  ${
    lmhmf.b $e |- B = ( Base ` S ) $.
    lmhmf.c $e |- C = ( Base ` T ) $.
    $( A homomorphism of left modules is a function.  (Contributed by Stefan
       O'Rear, 1-Jan-2015.) $)
    lmhmf $p |- ( F e. ( S LMHom T ) -> F : B --> C ) $=
      ( clmhm co wcel cghm wf lmghm ghmf syl ) ECDHIJECDKIJABELCDEMCDEABFGNO $.
  $}

  ${
    $d K a b $.  $d S a b $.  $d T a b $.  $d E a b $.  $d .x. a b $.
    $d .X. a b $.  $d B a b $.  $d X a b $.  $d Y a b $.  $d F a b $.
    lmhmlin.k $e |- K = ( Scalar ` S ) $.
    lmhmlin.b $e |- B = ( Base ` K ) $.
    lmhmlin.e $e |- E = ( Base ` S ) $.
    lmhmlin.m $e |- .x. = ( .s ` S ) $.
    lmhmlin.n $e |- .X. = ( .s ` T ) $.
    $( A homomorphism of left modules is ` K ` -linear.  (Contributed by Stefan
       O'Rear, 1-Jan-2015.) $)
    lmhmlin $p |- ( ( F e. ( S LMHom T ) /\ X e. B /\ Y e. E ) ->
      ( F ` ( X .x. Y ) ) = ( X .X. ( F ` Y ) ) ) $=
      ( va co wcel cfv wceq vb clmhm cv wral wa cghm csca clmod w3a eqid islmhm
      simprbi simp3d oveq1 fveq2d eqeq12d oveq2 oveq2d rspc2v syl5com 3impib
      fveq2 ) GBCUBQRZIARZJFRZIJDQZGSZIJGSZEQZTZVCPUCZUAUCZDQZGSZVKVLGSZEQZTZUA
      FUDPAUDZVDVEUEVJVCGBCUFQRZCUGSZHTZVRVCBUHRCUHRUEVSWAVRUIPUAABCDEFGHVTKVTU
      JLMNOUKULUMVQVJIVLDQZGSZIVOEQZTPUAIJAFVKITZVNWCVPWDWEVMWBGVKIVLDUNUOVKIVO
      EUNUPVLJTZWCVGWDVIWFWBVFGVLJIDUQUOWFVOVHIEVLJGVBURUPUSUTVA $.
  $}

  ${
    lmodvsinv.b $e |- B = ( Base ` W ) $.
    lmodvsinv.f $e |- F = ( Scalar ` W ) $.
    lmodvsinv.s $e |- .x. = ( .s ` W ) $.
    lmodvsinv.n $e |- N = ( invg ` W ) $.
    lmodvsinv.m $e |- M = ( invg ` F ) $.
    lmodvsinv.k $e |- K = ( Base ` F ) $.
    $( Multiplication of a vector by a negated scalar.  (Contributed by Stefan
       O'Rear, 28-Feb-2015.) $)
    lmodvsinv $p |- ( ( W e. LMod /\ R e. K /\ X e. B ) ->
        ( ( M ` R ) .x. X ) = ( N ` ( R .x. X ) ) ) $=
      ( wcel cfv co wceq syl clmod w3a cur cmulr cgrp lmodring 3ad2ant1 ringgrp
      simp1 crg ringidcl grpinvcl syl2anc simp2 simp3 lmodvsass syl13anc oveq1d
      eqid ringnegl lmodvscl lmodvneg1 3eqtr3d ) HUAPZBEPZIAPZUBZDUCQZFQZBDUDQZ
      RZICRZVIBICRZCRZBFQZICRVMGQZVGVDVIEPZVEVFVLVNSVDVEVFUIZVGDUEPZVHEPZVQVGDU
      JPZVSVDVEWAVFDHKUFUGZDUHTVGWAVTWBEDVHOVHUSZUKTEDFVHONULUMVDVEVFUNZVDVEVFU
      OVIBCVJDEAHIJKLOVJUSZUPUQVGVKVOICVGEDVJVHFBOWEWCNWBWDUTURVGVDVMAPVNVPSVRB
      CDEAHIJKLOVACVHDFGAHVMJMKLWCNVBUMVC $.
  $}

  ${
    lmodvsinv2.b $e |- B = ( Base ` W ) $.
    lmodvsinv2.f $e |- F = ( Scalar ` W ) $.
    lmodvsinv2.s $e |- .x. = ( .s ` W ) $.
    lmodvsinv2.n $e |- N = ( invg ` W ) $.
    lmodvsinv2.k $e |- K = ( Base ` F ) $.
    $( Multiplying a negated vector by a scalar.  (Contributed by Stefan
       O'Rear, 5-Sep-2015.) $)
    lmodvsinv2 $p |- ( ( W e. LMod /\ R e. K /\ X e. B ) ->
        ( R .x. ( N ` X ) ) = ( N ` ( R .x. X ) ) ) $=
      ( wcel co cfv wceq eqid syl2anc lmodvscl clmod w3a c0g cgrp simp1 lmodgrp
      cplusg syl simp3 grprinv simp2 grpinvcl lmodvsdi syl13anc lmodvs0 3eqtr3d
      oveq2d wb syl3anc grpinvid1 mpbird eqcomd ) GUANZBENZHANZUBZBHCOZFPZBHFPZ
      COZVFVHVJQZVGVJGUGPZOZGUCPZQZVFBHVIVLOZCOZBVNCOZVMVNVFVPVNBCVFGUDNZVEVPVN
      QVFVCVSVCVDVEUEZGUFUHZVCVDVEUIZAVLGFHVNIVLRZVNRZLUJSUQVFVCVDVEVIANZVQVMQV
      TVCVDVEUKZWBVFVSVEWEWAWBAGFHILULSZVLBCDEAGHVIIWCJKMUMUNVFVCVDVRVNQVTWFCDE
      GBVNJKMWDUOSUPVFVSVGANVJANZVKVOURWABCDEAGHIJKMTVFVCVDWEWHVTWFWGBCDEAGVIIJ
      KMTUSAVLGFVGVJVNIWCWDLUTUSVAVB $.
  $}

  ${
    $d x y z .+^ $.  $d x y z B $.  $d x y z C $.  $d x y z E $.  $d x y z F $.
    $d x y z .+ $.  $d x y z K $.  $d x y z L $.  $d x y z S $.  $d x y z T $.
    $d x z .x. $.  $d x z .X. $.
    islmhm2.b $e |- B = ( Base ` S ) $.
    islmhm2.c $e |- C = ( Base ` T ) $.
    islmhm2.k $e |- K = ( Scalar ` S ) $.
    islmhm2.l $e |- L = ( Scalar ` T ) $.
    islmhm2.e $e |- E = ( Base ` K ) $.
    islmhm2.p $e |- .+ = ( +g ` S ) $.
    islmhm2.q $e |- .+^ = ( +g ` T ) $.
    islmhm2.m $e |- .x. = ( .s ` S ) $.
    islmhm2.n $e |- .X. = ( .s ` T ) $.
    $( A one-equation proof of linearity of a left module homomorphism, similar
       to ~ df-lss .  (Contributed by Mario Carneiro, 7-Oct-2015.) $)
    islmhm2 $p |- ( ( S e. LMod /\ T e. LMod ) -> ( F e. ( S LMHom T ) <->
          ( F : B --> C /\ L = K /\ A. x e. E A. y e. B A. z e. B
  ( F ` ( ( x .x. y ) .+ z ) ) = ( ( x .X. ( F ` y ) ) .+^ ( F ` z ) ) ) ) ) $=
      ( clmod wcel wa clmhm co wf wceq cv cfv wral w3a lmhmf lmhmsca cghm lmghm
      adantr lmhmlmod1 simpr1 simpr2 syl3anc simpr3 ghmlin lmhmlin oveq1d eqtrd
      lmodvscl 3adant3r3 ralrimivvva 3jca cgrp lmodgrp anim12i cur crg lmodring
      adantl wi ad2antrr eqid ringidcl oveq1 fveq2d eqeq12d 2ralbidv rspcv 3syl
      simplll simprl lmodvs1 syl2anc simplrr simpllr simplrl ffvelrnd 2ralbidva
      eqtr3d sylibd exp32 3imp2 jca isghm c0g ghmid syl ad3antrrr grpidcl oveq2
      sylanbrc fveq2 oveq2d simprr simplr3 cbs simplr2 syl6eqr eleqtrrd simplr1
      grprid ralimdvva 3exp2 com45 mpd wb islmhm3 mpbir3and impbida ) HUEUFZIUE
      UFZUGZMHIUHUIUFZDEMUJZONUKZAULZBULZJUIZCULZFUIZMUMZYQYRMUMZKUIZYTMUMZGUIZ
      UKZCDUNZBDUNZALUNZUOZYNUUKYMYNYOYPUUJDEHIMPQUPHIMNORSUQYNUUGABCLDDYNYQLUF
      ZYRDUFZYTDUFZUOZUGZUUBYSMUMZUUEGUIZUUFUUPMHIURUIUFZYSDUFZUUNUUBUURUKYNUUS
      UUOHIMUSUTUUPYKUULUUMUUTYNYKUUOHIMVAUTYNUULUUMUUNVBYNUULUUMUUNVCYQJNLDHYR
      PRUCTVJZVDYNUULUUMUUNVEFGHIYSMYTDPUAUBVFVDUUPUUQUUDUUEGYNUULUUMUUQUUDUKZU
      UNLHIJKDMNYQYRRTPUCUDVGVKVHVIVLVMVTYMUUKUGZYNUUSYPUVBBDUNALUNZUVCHVNUFZIV
      NUFZUGZYOYRYTFUIZMUMZUUCUUEGUIZUKZCDUNBDUNZUGUUSYMUVGUUKYKUVEYLUVFHVOZIVO
      ZVPUTUVCYOUVLYMYOYPUUJVBYMYOYPUUJUVLYMYOYPUUJUVLWAYMYOYPUGZUGZUUJNVQUMZYR
      JUIZYTFUIZMUMZUVQUUCKUIZUUEGUIZUKZCDUNBDUNZUVLUVPNVRUFZUVQLUFUUJUWDWAYKUW
      EYLUVONHRVSWBLNUVQTUVQWCZWDUUIUWDAUVQLYQUVQUKZUUGUWCBCDDUWGUUBUVTUUFUWBUW
      GUUAUVSMUWGYSUVRYTFYQUVQYRJWEVHWFUWGUUDUWAUUEGYQUVQUUCKWEVHWGWHWIWJUVPUWC
      UVKBCDDUVPUUMUUNUGZUGZUVTUVIUWBUVJUWIUVSUVHMUWIUVRYRYTFUWIYKUUMUVRYRUKYKY
      LUVOUWHWKUVPUUMUUNWLZJUVQNDHYRPRUCUWFWMWNVHWFUWIUWAUUCUUEGUWIOVQUMZUUCKUI
      ZUWAUUCUWIUWKUVQUUCKUWIONVQYMYOYPUWHWOWFVHUWIYLUUCEUFZUWLUUCUKYKYLUVOUWHW
      PUWIDEYRMYMYOYPUWHWQUWJWRKUWKOEIUUCQSUDUWKWCWMWNWTVHWGWSXAXBXCXDCBFGHIMDE
      PQUAUBXEXLZYMYOYPUUJVCUVCHXFUMZMUMZIXFUMZUKZUVDUVCUUSUWRUWNHIMUWOUWQUWOWC
      ZUWQWCZXGXHYMYOYPUUJUWRUVDWAYMYOYPUWRUUJUVDYMYOYPUWRUUJUVDWAYMYOYPUWRUOZU
      GZUUHUVBABLDUXBUULUUMUGZUGZUUHYSUWOFUIZMUMZUUDUWPGUIZUKZUVBUXDUVEUWODUFUU
      HUXHWAYKUVEYLUXAUXCUVMXIZDHUWOPUWSXJUUGUXHCUWODYTUWOUKZUUBUXFUUFUXGUXJUUA
      UXEMYTUWOYSFXKWFUXJUUEUWPUUDGYTUWOMXMXNWGWIWJUXDUXFUUQUXGUUDUXDUXEYSMUXDU
      VEUUTUXEYSUKUXIUXDYKUULUUMUUTYKYLUXAUXCWKUXBUULUUMWLZUXBUULUUMXOZUVAVDDFH
      YSUWOPUAUWSYBWNWFUXDUXGUUDUWQGUIZUUDUXDUWPUWQUUDGYOYPUWRYMUXCXPXNUXDUVFUU
      DEUFZUXMUUDUKUXDYLUVFYKYLUXAUXCWPZUVNXHUXDYLYQOXQUMZUFUWMUXNUXOUXDYQLUXPU
      XKUXDUXPNXQUMLUXDONXQYOYPUWRYMUXCXRWFTXSXTUXDDEYRMYOYPUWRYMUXCYAUXLWRYQKO
      UXPEIUUCQSUDUXPWCVJVDEGIUUDUWQQUBUWTYBWNVIWGXAYCYDYEXCYFYMYNUUSYPUVDUOYGU
      UKABLHIJKDMNORSTPUCUDYHUTYIYJ $.
  $}

  ${
    $d ph x y $.  $d F x y $.  $d S x y $.  $d T x y $.  $d X x y $.
    $d J x y $.  $d N x y $.  $d K x y $.
    islmhmd.x $e |- X = ( Base ` S ) $.
    islmhmd.a $e |- .x. = ( .s ` S ) $.
    islmhmd.b $e |- .X. = ( .s ` T ) $.
    islmhmd.k $e |- K = ( Scalar ` S ) $.
    islmhmd.j $e |- J = ( Scalar ` T ) $.
    islmhmd.n $e |- N = ( Base ` K ) $.
    islmhmd.s $e |- ( ph -> S e. LMod ) $.
    islmhmd.t $e |- ( ph -> T e. LMod ) $.
    islmhmd.c $e |- ( ph -> J = K ) $.
    islmhmd.f $e |- ( ph -> F e. ( S GrpHom T ) ) $.
    islmhmd.l $e |- ( ( ph /\ ( x e. N /\ y e. X ) ) -> ( F ` ( x .x. y ) ) =
          ( x .X. ( F ` y ) ) ) $.
    $( Deduction for a module homomorphism.  (Contributed by Stefan O'Rear,
       4-Feb-2015.) $)
    islmhmd $p |- ( ph -> F e. ( S LMHom T ) ) $=
      ( clmod wcel wa cghm co wceq cv cfv wral w3a clmhm ralrimivva 3jca islmhm
      jca sylanbrc ) ADUDUEZEUDUEZUFHDEUGUHUEZIJUIZBUJZCUJZFUHHUKVDVEHUKGUHUIZC
      LULBKULZUMHDEUNUHUEAUTVASTURAVBVCVGUBUAAVFBCKLUCUOUPBCKDEFGLHJIPQRMNOUQUS
      $.
  $}

  ${
    $d x y B $.  $d x y M $.  $d x y N $.  $d x y S $.  $d x y T $.
    $d x y .0. $.
    0lmhm.z $e |- .0. = ( 0g ` N ) $.
    0lmhm.b $e |- B = ( Base ` M ) $.
    0lmhm.s $e |- S = ( Scalar ` M ) $.
    0lmhm.t $e |- T = ( Scalar ` N ) $.
    $( The constant zero linear function between two modules.  (Contributed by
       Stefan O'Rear, 5-Sep-2015.) $)
    0lmhm $p |- ( ( M e. LMod /\ N e. LMod /\ S = T ) ->
        ( B X. { .0. } ) e. ( M LMHom N ) ) $=
      ( vx vy clmod wcel wceq cvsca cfv cbs eqid co w3a simp1 simp2 eqcomd cghm
      csn cxp simp3 cgrp lmodgrp 0ghm syl2an 3adant3 cv wa simpl2 simprl simpl3
      fveq2d eleqtrd lmodvs0 syl2anc c0g cvv fvex fvconst2 oveq2d simpl1 simprr
      eqeltri ad2antll lmodvscl syl3anc syl 3eqtr4rd islmhmd ) DMNZEMNZBCOZUAZK
      LDEDPQZEPQZAFUFUGZCBBRQZAHWASZWBSZIJWDSZVQVRVSUBVQVRVSUCVTBCVQVRVSUHUDVQV
      RWCDEUETNZVSVQDUINEUINWHVRDUJEUJADEFGHUKULUMVTKUNZWDNZLUNZANZUOZUOZWIFWBT
      ZFWIWKWCQZWBTZWIWKWATZWCQZWNVRWICRQZNWOFOVQVRVSWMUPWNWIWDWTVTWJWLUQZWNBCR
      VQVRVSWMURUSUTWBCWTEWIFJWFWTSGVAVBWLWQWOOVTWJWLWPFWIWBAFWKFEVCQVDGEVCVEVJ
      ZVFVGVKWNWRANZWSFOWNVQWJWLXCVQVRVSWMVHXAVTWJWLVIWIWABWDADWKHIWEWGVLVMAFWR
      XBVFVNVOVP $.
  $}

  ${
    $d x y B $.  $d x y M $.
    idlmhm.b $e |- B = ( Base ` M ) $.
    $( The identity function on a module is linear.  (Contributed by Stefan
       O'Rear, 4-Sep-2015.) $)
    idlmhm $p |- ( M e. LMod -> ( _I |` B ) e. ( M LMHom M ) ) $=
      ( vx vy clmod wcel cvsca cfv cid cres csca cbs eqid co syl cv wceq fvresi
      wa id eqidd cgrp cghm lmodgrp idghm lmodvscl 3expb ad2antll oveq2d eqtr4d
      islmhmd ) BFGZDEBBBHIZUNJAKZBLIZUPUPMIZACUNNZURUPNZUSUQNZUMUAZVAUMUPUBUMB
      UCGUOBBUDOGBUEABCUFPUMDQZUQGZEQZAGZTTZVBVDUNOZUOIZVGVBVDUOIZUNOVFVGAGZVHV
      GRUMVCVEVJVBUNUPUQABVDCUSURUTUGUHAVGSPVFVIVDVBUNVEVIVDRUMVCAVDSUIUJUKUL
      $.
  $}

  ${
    $d x y I $.  $d x y M $.
    invlmhm.b $e |- I = ( invg ` M ) $.
    $( The negative function on a module is linear.  (Contributed by Stefan
       O'Rear, 5-Sep-2015.) $)
    invlmhm $p |- ( M e. LMod -> I e. ( M LMHom M ) ) $=
      ( vx vy clmod wcel cvsca cfv csca cbs eqid eqidd cabl cghm lmodabl invghm
      id co cv sylib wceq w3a lmodvsinv2 eqcomd 3expb islmhmd ) BFGZDEBBBHIZUIA
      BJIZUJUJKIZBKIZULLZUILZUNUJLZUOUKLZUHRZUQUHUJMUHBNGABBOSGBPULBAUMCQUAUHDT
      ZUKGZETZULGZURUTUISAIZURUTAIUISZUBUHUSVAUCVCVBULURUIUJUKABUTUMUOUNCUPUDUE
      UFUG $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x y M $.  $d x y N $.  $d x y O $.
    $( The composition of two module-linear functions is module-linear.
       (Contributed by Stefan O'Rear, 4-Sep-2015.) $)
    lmhmco $p |- ( ( F e. ( N LMHom O ) /\ G e. ( M LMHom N ) ) ->
        ( F o. G ) e. ( M LMHom O ) ) $=
      ( vx vy clmhm co wcel wa cvsca cfv csca cbs eqid clmod cghm wceq syl3anc
      ccom lmhmlmod1 adantl lmhmlmod2 adantr sylan9eq lmghm ghmco syl2an simplr
      lmhmsca cv simprl simprr lmhmlin fveq2d simpll ad2antlr eleqtrrd wf lmhmf
      ffvelrnda adantrl eqtrd wfn ffn syl lmodvscl fvco2 syl2anc oveq2d 3eqtr4d
      islmhmd ) ADEHIJZBCDHIJZKZFGCECLMZELMZABUAZENMZCNMZWAOMZCOMZWCPZVQPZVRPZW
      APZVTPZWBPZVOCQJZVNCDBUBZUCVNEQJVODEAUDUEVNVOVTDNMZWADEAWLVTWLPZWHUKCDBWA
      WLWGWMUKZUFVNADERIJBCDRIJVSCERIJVODEAUGCDBUGCDEABUHUIVPFULZWBJZGULZWCJZKZ
      KZWOWQVQIZBMZAMZWOWQBMZAMZVRIZXAVSMZWOWQVSMZVRIWTXCWOXDDLMZIZAMZXFWTXBXJA
      WTVOWPWRXBXJSVNVOWSUJVPWPWRUMZVPWPWRUNZWBCDVQXIWCBWAWOWQWGWIWDWEXIPZUOTUP
      WTVNWOWLOMZJXDDOMZJZXKXFSVNVOWSUQWTWOWBXOXLVOXOWBSVNWSVOWLWAOWNUPURUSVPWR
      XQWPVPWCXPWQBVOWCXPBUTZVNWCXPCDBWDXPPZVAUCZVBVCXODEXIVRXPAWLWOXDWMXOPXSXN
      WFUOTVDWTBWCVEZXAWCJZXGXCSVPYAWSVPXRYAXTWCXPBVFVGUEZWTWJWPWRYBVOWJVNWSWKU
      RXLXMWOVQWAWBWCCWQWDWGWEWIVHTWCABXAVIVJWTXHXEWOVRWTYAWRXHXESYCXMWCABWQVIV
      JVKVLVM $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x y M $.  $d x y N $.  $d x y .+ $.
    lmhmplusg.p $e |- .+ = ( +g ` N ) $.
    $( The pointwise sum of two linear functions is linear.  (Contributed by
       Stefan O'Rear, 5-Sep-2015.) $)
    lmhmplusg $p |- ( ( F e. ( M LMHom N ) /\ G e. ( M LMHom N ) ) ->
        ( F oF .+ G ) e. ( M LMHom N ) ) $=
      ( vx vy co wcel wa cfv cbs eqid adantr wceq syl syl3anc ad2antrr cvv csca
      clmhm cvsca cof clmod lmhmlmod1 lmhmlmod2 lmhmsca cabl cghm lmodabl lmghm
      adantl ghmplusg cv simpll simprl simprr lmhmlin simplr fveq2d eleqtrrd wf
      oveq12d lmhmf ffvelrnd ad2antlr lmodvsdi syl13anc eqtr4d wfn ffn lmodvscl
      fvexd fnfvof syl22anc oveq2d 3eqtr4d islmhmd ) BDEUBIZJZCVTJZKZGHDEDUCLZE
      UCLZBCAUDIZEUALZDUALZWHMLZDMLZWJNZWDNZWENZWHNZWGNZWINZWADUEJZWBDEBUFZOWAE
      UEJZWBDEBUGZOZWAWGWHPWBDEBWHWGWNWOUHZOWCEUIJZBDEUJIZJZCXDJZWFXDJWCWSXCXAE
      UKQWAXEWBDEBULOWBXFWADECULUMABCDEFUNRWCGUOZWIJZHUOZWJJZKZKZXGXIWDIZBLZXMC
      LZAIZXGXIBLZXICLZAIZWEIZXMWFLZXGXIWFLZWEIXLXPXGXQWEIZXGXRWEIZAIZXTXLXNYCX
      OYDAXLWAXHXJXNYCPWAWBXKUPWCXHXJUQZWCXHXJURZWIDEWDWEWJBWHXGXIWNWPWKWLWMUSR
      XLWBXHXJXOYDPWAWBXKUTYFYGWIDEWDWEWJCWHXGXIWNWPWKWLWMUSRVDXLWSXGWGMLZJXQEM
      LZJXRYIJXTYEPWAWSWBXKWTSXLXGWIYHYFWAYHWIPWBXKWAWGWHMXBVASVBXLWJYIXIBWAWJY
      IBVCZWBXKWJYIDEBWKYINZVESZYGVFXLWJYIXICWBWJYICVCZWAXKWJYIDECWKYKVEVGZYGVF
      AXGWEWGYHYIEXQXRYKFWOWMYHNVHVIVJXLBWJVKZCWJVKZWJTJZXMWJJZYAXPPXLYJYOYLWJY
      IBVLQZXLYMYPYNWJYICVLQZXLDMVNZXLWQXHXJYRWAWQWBXKWRSYFYGXGWDWHWIWJDXIWKWNW
      LWPVMRWJABCTXMVOVPXLYBXSXGWEXLYOYPYQXJYBXSPYSYTUUAYGWJABCTXIVOVPVQVRVS $.
  $}

  ${
    $d u v x y A $.  $d u v x y F $.  $d u v x y K $.  $d u v x y N $.
    $d v x y J $.  $d v x y M $.  $d u v x y .x. $.  $d v x y V $.
    lmhmvsca.v $e |- V = ( Base ` M ) $.
    lmhmvsca.s $e |- .x. = ( .s ` N ) $.
    lmhmvsca.j $e |- J = ( Scalar ` N ) $.
    lmhmvsca.k $e |- K = ( Base ` J ) $.
    $( The pointwise scalar product of a linear function and a constant is
       linear, over a commutative ring.  (Contributed by Mario Carneiro,
       22-Sep-2015.) $)
    lmhmvsca $p |- ( ( J e. CRing /\ A e. K /\ F e. ( M LMHom N ) ) ->
        ( ( V X. { A } ) oF .x. F ) e. ( M LMHom N ) ) $=
      ( vv wcel co cfv cbs eqid 3ad2ant3 wceq vx vy vu ccrg clmhm w3a cvsca csn
      cxp cof csca clmod lmhmlmod1 lmhmlmod2 lmhmsca cv cmpt ccom cghm cvv fvex
      eqeltri a1i simpl2 lmhmf ffvelrnda fconstmpt feqmptd offval2 eqidd fmptco
      wf oveq2 eqtr4d simp2 lmodvsghm syl2anc lmghm ghmco eqeltrd simpl1 simprl
      wa cmulr fveq2d syl5eq adantr eleqtrrd crngcom syl3anc ffvelrnd lmodvsass
      oveq1d simprr syl13anc 3eqtr3d lmodvscl 3expb sylan wfn ffn syl 3ad2antl3
      lmhmlin ofc1 mpdan oveq2d 3eqtr4d islmhmd ) DUDNZAENZCFGUEONZUFZUAUBFGFUG
      PZBHAUHUIZCBUJOZDFUKPZXQQPZHIXNRZJXQRZKXRRZXLXJFULNZXKFGCUMSZXLXJGULNZXKF
      GCUNSZXLXJDXQTXKFGCXQDXTKUOSZXMXPUCGQPZAUCUPZBOZUQZCURZFGUSOZXMXPMHAMUPZC
      PZBOZUQYKXMMHAYNBXOCUTEYGHUTNZXMHFQPUTIFQVAVBZVCXJXKXLYMHNVDXMHYGYMCXLXJH
      YGCVLZXKHYGFGCIYGRZVESZVFZXOMHAUQTXMMHAVGVCXMMHYGCYTVHZVIXMMUCHYGYNYIYOCY
      JUUAUUBXMYJVJYHYNABVMVKVNXMYJGGUSONZCYLNZYKYLNXMYDXKUUCYEXJXKXLVOUCABDEYG
      GYSKJLVPVQXLXJUUDXKFGCVRSFGGYJCVSVQVTXMUAUPZXRNZUBUPZHNZWCZWCZAUUEUUGCPZB
      OZBOZUUEAUUKBOZBOZUUEUUGXNOZXPPZUUEUUGXPPZBOUUJAUUEDWDPZOZUUKBOZUUEAUUSOZ
      UUKBOZUUMUUOUUJUUTUVBUUKBUUJXJXKUUEENZUUTUVBTXJXKXLUUIWAXJXKXLUUIVDZUUJUU
      EXREXMUUFUUHWBXMEXRTUUIXMEDQPXRLXMDXQQYFWEWFWGWHZEDUUSAUUELUUSRZWIWJWMUUJ
      YDXKUVDUUKYGNZUVAUUMTXMYDUUIYEWGZUVEUVFUUJHYGUUGCXMYRUUIYTWGXMUUFUUHWNZWK
      ZAUUEBUUSDEYGGUUKYSKJLUVGWLWOUUJYDUVDXKUVHUVCUUOTUVIUVFUVEUVKUUEABUUSDEYG
      GUUKYSKJLUVGWLWOWPUUJUUPHNZUUQUUMTXMYBUUIUVLYCYBUUFUUHUVLUUEXNXQXRHFUUGIX
      TXSYAWQWRWSUUJHAUULBCUTEUUPYPUUJYQVCZUVEXMCHWTZUUIXMYRUVNYTHYGCXAXBWGZUUJ
      UUPCPUULTZUVLXLXJUUIUVPXKXLUUFUUHUVPXRFGXNBHCXQUUEUUGXTYAIXSJXDWRXCWGXEXF
      UUJUURUUNUUEBUUJUUHUURUUNTUVJUUJHAUUKBCUTEUUGUVMUVEUVOUUJUUHWCUUKVJXEXFXG
      XHXI $.
  $}

  ${
    $d F a b $.  $d S a b $.  $d T a b $.  $d X a b $.  $d Y a b $.
    lmhmf1o.x $e |- X = ( Base ` S ) $.
    lmhmf1o.y $e |- Y = ( Base ` T ) $.
    $( A bijective module homomorphism is also converse homomorphic.
       (Contributed by Stefan O'Rear, 25-Jan-2015.) $)
    lmhmf1o $p |- ( F e. ( S LMHom T ) ->
        ( F : X -1-1-onto-> Y <-> `' F e. ( T LMHom S ) ) ) $=
      ( va vb clmhm co wcel wf1o wa cfv cbs eqid adantr wceq syl ccnv lmhmlmod2
      cvsca csca clmod lmhmlmod1 lmhmsca eqcomd cghm lmghm ghmf1o biimpa simpll
      wb cv fveq2d eleq2d biimpar adantrr wf f1ocnv f1of adantl adantrl lmhmlin
      ffvelrnda syl3anc f1ocnvfv2 ad2ant2l oveq2d eqtrd simplr lmodvscl syl2anc
      wi f1ocnvfv mpd islmhmd wfn lmhmf ffn dff1o4 sylanbrc impbida ) CABJKLZDE
      CMZCUAZBAJKLZWEWFNZHIBABUCOZAUCOZWGAUDOZBUDOZWMPOZEGWJQZWKQZWMQZWLQZWNQWE
      BUELWFABCUBRWEAUELZWFABCUFRZWEWLWMSWFWEWMWLABCWLWMWRWQUGUHRZWEWFWGBAUIKLZ
      WECABUIKLWFXBUNABCUJABCDEFGUKTULWIHUOZWNLZIUOZELZNZNZXCXEWGOZWKKZCOZXCXEW
      JKZSZXLWGOXJSZXHXKXCXICOZWJKZXLXHWEXCWLPOZLZXIDLZXKXPSWEWFXGUMWIXDXRXFWIX
      RXDWIXQWNXCWIWLWMPXAUPUQURUSZWIXFXSXDWIEDXEWGWFEDWGUTZWEWFEDWGMYADECVAEDW
      GVBTVCVFVDZXQABWKWJDCWLXCXIWRXQQZFWPWOVEVGXHXOXEXCWJWFXFXOXESWEXDDEXECVHV
      IVJVKXHWFXJDLZXMXNVOWEWFXGVLXHWSXRXSYDWIWSXGWTRXTYBXCWKWLXQDAXIFWRWPYCVMV
      GDEXJXLCVPVNVQVRWEWHNZCDVSZWGEVSZWFWEYFWHWEDECUTYFDEABCFGVTDECWATRYEYAYGW
      HYAWEEDBAWGGFVTVCEDWGWATDECWBWCWD $.
  $}

  ${
    $d F a b c $.  $d S a b c $.  $d T a b c $.  $d U a b c $.  $d X a b c $.
    $d Y a b c $.
    lmhmima.x $e |- X = ( LSubSp ` S ) $.
    lmhmima.y $e |- Y = ( LSubSp ` T ) $.
    $( The image of a subspace under a homomorphism.  (Contributed by Stefan
       O'Rear, 1-Jan-2015.) $)
    lmhmima $p |- ( ( F e. ( S LMHom T ) /\ U e. X ) ->
        ( F " U ) e. Y ) $=
      ( va vb vc co wcel wa cfv cv cbs adantr eqid syl cima wral csca lmhmlmod1
      clmhm csubg cvsca cghm lmghm clmod simpr lsssubg syl2anc ghmima wceq wrex
      wb wfn wss wf lmhmf ffn lssss simpll lmhmsca fveq2d eleq2d biimpa adantrr
      fvelimab sselda adantrl lmhmlin syl3anc lssvscl syl22anc fnfvima eqeltrrd
      3syl simplr simprr oveq2 eleq1d syl5ibcom rexlimdva sylbid impr lmhmlmod2
      anassrs ralrimivva islss4 mpbir2and ) DABUELMZCEMZNZDCUAZFMZWPBUFOMZIPZJP
      ZBUGOZLZWPMZJWPUBIBUCOZQOZUBZWODABUHLMZCAUFOMZWRWMXGWNABDUIRWOAUJMZWNXHWM
      XIWNABDUDRZWMWNUKZECAGULUMABCDUNUMWOXCIJXEWPWOWSXEMZWTWPMZXCWOXLNZXMKPZDO
      ZWTUOZKCUPZXCWOXMXRUQZXLWODAQOZURZCXTUSZXSWOXTBQOZDUTZYAWMYDWNXTYCABDXTSZ
      YCSZVAZRXTYCDVBZTWOWNYBXKECXTAYEGVCZTZKXTCWTDVJUMRXNXQXCKCXNXOCMZNWSXPXAL
      ZWPMZXQXCWOXLYKYMWOXLYKNZNZWSXOAUGOZLZDOZYLWPYOWMWSAUCOZQOZMZXOXTMZYRYLUO
      WMWNYNVDZWOXLUUAYKWOXLUUAWOXEYTWSWOXDYSQWMXDYSUOWNABDYSXDYSSZXDSZVERVFVGV
      HVIZWOYKUUBXLWOCXTXOYJVKVLYTABYPXAXTDYSWSXOUUDYTSZYEYPSZXASZVMVNYOYAYBYQC
      MZYRWPMYOWMYDYAUUCYGYHVSYOWNYBWMWNYNVTZYITYOXIWNUUAYKUUJWOXIYNXJRUUKUUFWO
      XLYKWAYTEYPCYSAWSXOUUDUUHUUGGVOVPXTCDYQVQVNVRWIXQYLXBWPXPWTWSXAWBWCWDWEWF
      WGWJWOBUJMZWQWRXFNUQWMUULWNABDWHRXEFXAWPXDYCBIJUUEXESYFUUIHWKTWL $.

    $( The inverse image of a subspace under a homomorphism.  (Contributed by
       Stefan O'Rear, 1-Jan-2015.) $)
    lmhmpreima $p |- ( ( F e. ( S LMHom T ) /\ U e. Y ) ->
        ( `' F " U ) e. X ) $=
      ( va vb co wcel wa csubg cfv cbs adantr wceq eqid syl clmhm ccnv cv cvsca
      cima wral csca cghm lmghm clmod lmhmlmod2 lsssubg sylan ghmpreima syl2anc
      lmhmlmod1 ad2antrr simprl cdm cnvimass lmhmf fdm syl5sseq sselda lmodvscl
      adantrl syl3anc simpll lmhmlin simplr lmhmsca fveq2d biimpar adantrr wfun
      wf eleq2d ffun simprr fvimacnvi lssvscl syl22anc eqeltrd wfn ffn elpreima
      wb 3syl mpbir2and ralrimivva islss4 ) DABUAKLZCFLZMZDUBCUEZELZWOANOLZIUCZ
      JUCZAUDOZKZWOLZJWOUFIAUGOZPOZUFZWNDABUHKLZCBNOLZWQWLXFWMABDUIQWLBUJLZWMXG
      ABDUKZFCBHULUMABDCUNUOWNXBIJXDWOWNWRXDLZWSWOLZMZMZXBXAAPOZLZXADOZCLZXMAUJ
      LZXJWSXNLZXOWLXRWMXLABDUPZUQWNXJXKURZWNXKXSXJWNWOXNWSWNDUSZWOXNDCUTWNXNBP
      OZDVPZYBXNRWLYDWMXNYCABDXNSZYCSVAQZXNYCDVBTVCVDVFZWRWTXCXDXNAWSYEXCSZWTSZ
      XDSZVEVGXMXPWRWSDOZBUDOZKZCXMWLXJXSXPYMRWLWMXLVHYAYGXDABWTYLXNDXCWRWSYHYJ
      YEYIYLSZVIVGXMXHWMWRBUGOZPOZLZYKCLZYMCLWLXHWMXLXIUQWLWMXLVJWNXJYQXKWNYQXJ
      WNYPXDWRWNYOXCPWLYOXCRWMABDXCYOYHYOSZVKQVLVQVMVNXMDVOZXKYRWNYTXLWNYDYTYFX
      NYCDVRTQWNXJXKVSWSCDVTUOYPFYLCYOBWRYKYSYNYPSHWAWBWCWNXBXOXQMWGZXLWNYDDXNW
      DUUAYFXNYCDWEXNXACDWFWHQWIWJWNXRWPWQXEMWGWLXRWMXTQXDEWTWOXCXNAIJYHYJYEYIG
      WKTWI $.
  $}

  ${
    lmhmlsp.v $e |- V = ( Base ` S ) $.
    lmhmlsp.k $e |- K = ( LSpan ` S ) $.
    lmhmlsp.l $e |- L = ( LSpan ` T ) $.
    $( Homomorphisms preserve spans. $)

    $( Homomorphisms preserve spans.  (Contributed by Stefan O'Rear,
       1-Jan-2015.) $)
    lmhmlsp $p |- ( ( F e. ( S LMHom T ) /\ U C_ V ) ->
        ( F " ( K ` U ) ) = ( L ` ( F " U ) ) ) $=
      ( wcel wss cfv cima eqid adantr syl clmod clss syl2anc clmhm co wfun ccnv
      wa cbs wf lmhmf ffun lmhmlmod1 lmhmlmod2 crn imassrn frn lspcl lmhmpreima
      syl5ss syldan cdm cin incom simpr fdm sseqtr4d df-ss sylib syl5req dminss
      wceq syl6eqss lspssid imass2 sstrd lspssp syl3anc funimass2 lmhmima eqssd
      ) DABUAUBKZCGLZUEZDCEMZNZDCNZFMZWADUCZWBDUDZWENZLZWCWELWAGBUFMZDUGZWFVSWK
      VTGWJABDHWJOZUHPZGWJDUIQWAARKZWHASMZKZCWHLWIVSWNVTABDUJPZVSVTWEBSMZKZWPWA
      BRKZWDWJLZWSVSWTVTABDUKPZWAWDDULZWJDCUMWAWKXCWJLWMGWJDUNQUQZWRWDFWJBWLWRO
      ZJUOTABWEDWOWRWOOZXEUPURWACWGWDNZWHWACDUSZCUTZXGWAXICXHUTZCXHCVAWACXHLXJC
      VIWACGXHVSVTVBZWAWKXHGVIWMGWJDVCQVDCXHVEVFVGCDVHVJWAWDWELZXGWHLWAWTXAXLXB
      XDWDFWJBWLJVKTWDWEWGVLQVMWOCWHEAXFIVNVOWBWEDVPTWAWTWCWRKZWDWCLZWEWCLXBVSV
      TWBWOKZXMWAWNVTXOWQXKWOCEGAHXFIUOTABWBDWOWRXFXEVQURWACWBLZXNWAWNVTXPWQXKC
      EGAHIVKTCWBDVLQWRWDWCFBXEJVNVOVR $.
  $}

  ${
    $( The range of a homomorphism is a submodule.  (Contributed by Stefan
       O'Rear, 1-Jan-2015.) $)
    lmhmrnlss $p |- ( F e. ( S LMHom T ) -> ran F e. ( LSubSp ` T ) ) $=
      ( clmhm co wcel cbs cfv cima crn clss wfn wceq eqid lmhmf ffn fnima clmod
      wf 3syl lmhmlmod1 lss1 syl lmhmima mpdan eqeltrrd ) CABDEFZCAGHZIZCJZBKHZ
      UGUHBGHZCSCUHLUIUJMUHULABCUHNZULNOUHULCPUHCQTUGUHAKHZFZUIUKFUGARFUOABCUAU
      NUHAUMUNNZUBUCABUHCUNUKUPUKNUDUEUF $.

    lmhmkerlss.k $e |- K = ( `' F " { .0. } ) $.
    lmhmkerlss.z $e |- .0. = ( 0g ` T ) $.
    lmhmkerlss.u $e |- U = ( LSubSp ` S ) $.
    $( The kernel of a homomorphism is a submodule.  (Contributed by Stefan
       O'Rear, 1-Jan-2015.) $)
    lmhmkerlss $p |- ( F e. ( S LMHom T ) -> K e. U ) $=
      ( clmhm co wcel ccnv csn cima clss cfv clmod lmhmlmod2 eqid lsssn0 mpdan
      syl lmhmpreima syl5eqel ) DABJKLZEDMFNZOZCGUFUGBPQZLZUHCLUFBRLUJABDSUIBFH
      UITZUAUCABUGDCUIIUKUDUBUE $.
  $}

  ${
    $d S a b $.  $d X a b $.  $d F a b $.  $d T a b $.  $d R a b $.
    $d U a b $.
    reslmhm.u $e |- U = ( LSubSp ` S ) $.
    reslmhm.r $e |- R = ( S |`s X ) $.
    $( Restriction of a homomorphism to a subspace.  (Contributed by Stefan
       O'Rear, 1-Jan-2015.) $)
    reslmhm $p |- ( ( F e. ( S LMHom T ) /\ X e. U ) ->
        ( F |` X ) e. ( R LMHom T ) ) $=
      ( va vb co wcel wa clmod cfv wceq cbs wral adantr eqid clmhm cres cghm cv
      csca cvsca w3a lmhmlmod1 lsslmod sylan lmhmlmod2 jca csubg lsssubg resghm
      lmghm syl2anc lmhmsca resssca sylan9eq simpll simprl wss lssss adantl syl
      eleq2d biimpar adantrl sseldd lmhmlin syl3anc simplr lssvscl fvres oveq2d
      ressbas2 syl22anc 3eqtr4d ralrimivva fveq2d ressvsca oveqd eqeq1d ralbidv
      raleqbidv mpbid 3jca islmhm sylanbrc ) EBCUAKLZFDLZMZANLZCNLZMEFUBZACUCKL
      ZCUEOZAUEOZPZIUDZJUDZAUFOZKZWPOZXAXBWPOZCUFOZKZPZJAQOZRZIWSQOZRZUGWPACUAK
      LWMWNWOWKBNLZWLWNBCEUHZDFBAHGUIUJWKWOWLBCEUKSULWMWQWTXMWMEBCUCKLZFBUMOLZW
      QWKXPWLBCEUPSWKXNWLXQXODFBGUNUJBCAEFHUOUQWKWLWRBUEOZWSBCEXRWRXRTZWRTZURFX
      RBADHXSUSZUTWMXAXBBUFOZKZWPOZXHPZJXJRZIXRQOZRXMWMYEIJYGXJWMXAYGLZXBXJLZMZ
      MZYCEOZXAXBEOZXGKZYDXHYKWKYHXBBQOZLYLYNPWKWLYJVAWMYHYIVBZYKFYOXBWMFYOVCZY
      JWLYQWKDFYOBYOTZGVDVEZSWMYIXBFLZYHWMYTYIWMFXJXBWMYQFXJPYSFYOABHYRVQVFVGVH
      VIZVJYGBCYBXGYOEXRXAXBXSYGTZYRYBTZXGTZVKVLYKYCFLZYDYLPYKXNWLYHYTUUEWMXNYJ
      WKXNWLXOSSWKWLYJVMYPUUAYGDYBFXRBXAXBXSUUCUUBGVNVRYCFEVOVFYKYTXHYNPUUAYTXF
      YMXAXGXBFEVOVPVFVSVTWMYFXKIYGXLWMXRWSQWLXRWSPWKYAVEWAWMYEXIJXJWMYDXEXHWMY
      CXDWPWMYBXCXAXBWLYBXCPWKFYBBADHUUCWBVEWCWAWDWEWFWGWHIJXLACXCXGXJWPWSWRWST
      XTXLTXJTXCTUUDWIWJ $.
  $}

  ${
    $d U x y $.  $d T x y $.  $d S x y $.  $d X x y $.  $d F x y $.
    $d L x y $.
    reslmhm2.u $e |- U = ( T |`s X ) $.
    reslmhm2.l $e |- L = ( LSubSp ` T ) $.
    $( Expansion of the codomain of a homomorphism.  (Contributed by Stefan
       O'Rear, 3-Feb-2015.)  (Revised by Mario Carneiro, 5-May-2015.) $)
    reslmhm2 $p |- ( ( F e. ( S LMHom U ) /\ T e. LMod /\ X e. L ) ->
        F e. ( S LMHom T ) ) $=
      ( vx vy co wcel clmod cvsca cfv csca cbs eqid 3ad2ant1 wceq w3a lmhmlmod1
      clmhm simp2 resssca 3ad2ant3 lmhmsca cghm lsssubg 3adant1 resghm2 syl2anc
      eqtrd csubg lmghm cv wa lmhmlin 3expb 3ad2antl1 simpl3 ressvsca oveqd syl
      eqtr4d islmhmd ) DACUCKLZBMLZFELZUAZIJABANOZBNOZDBPOZAPOZVNQOZAQOZVPRZVKR
      ZVLRZVNRZVMRZVORZVGVHAMLVIACDUBSVGVHVIUDVJVMCPOZVNVIVGVMWCTVHFVMBCEGWAUEU
      FVGVHWCVNTVIACDVNWCVTWCRUGSUMVJDACUHKLZFBUNOLZDABUHKLVGVHWDVIACDUOSVHVIWE
      VGEFBHUIUJABCDFGUKULVJIUPZVOLZJUPZVPLZUQZUQZWFWHVKKDOZWFWHDOZCNOZKZWFWMVL
      KZVGVHWJWLWOTZVIVGWGWIWQVOACVKWNVPDVNWFWHVTWBVQVRWNRURUSUTWKVIWPWOTVGVHVI
      WJVAVIVLWNWFWMFVLBCEGVSVBVCVDVEVF $.

    $( Expansion of the codomain of a homomorphism.  (Contributed by Stefan
       O'Rear, 3-Feb-2015.)  (Revised by Mario Carneiro, 5-May-2015.) $)
    reslmhm2b $p |- ( ( T e. LMod /\ X e. L /\ ran F C_ X ) ->
        ( F e. ( S LMHom T ) <-> F e. ( S LMHom U ) ) ) $=
      ( vx vy clmod wcel clmhm co wa cvsca cfv csca eqid wceq crn wss lmhmlmod1
      w3a adantl simpl1 lsslmod syl2anc resssca 3ad2ant2 lmhmsca sylan9req cghm
      simpl2 lmghm csubg wb lsssubg resghm2b stoic3 biimpa sylan2 lmhmlin 3expb
      cbs cv adantll simpll2 ressvsca oveqd eqtrd islmhmd simpr syl3anc impbida
      syl reslmhm2 ) BKLZFELZDUAFUBZUDZDABMNLZDACMNLZWAWBOZIJACAPQZCPQZDCRQZARQ
      ZWHVEQZAVEQZWJSZWESZWFSWHSZWGSWISZWBAKLWAABDUCUEWDVRVSCKLVRVSVTWBUFVRVSVT
      WBUNEFBCGHUGUHWAWBWGBRQZWHVSVRWOWGTVTFWOBCEGWOSZUIUJABDWHWOWMWPUKULWBWADA
      BUMNLZDACUMNLZABDUOWAWQWRVRVSFBUPQLVTWQWRUQEFBHURABCDFGUSUTVAVBWDIVFZWILZ
      JVFZWJLZOZOZWSXAWENDQZWSXADQZBPQZNZWSXFWFNZWBXCXEXHTZWAWBWTXBXJWIABWEXGWJ
      DWHWSXAWMWNWKWLXGSZVCVDVGXDVSXHXITVRVSVTWBXCVHVSXGWFWSXFFXGBCEGXKVIVJVPVK
      VLWAWCOWCVRVSWBWAWCVMVRVSVTWCUFVRVSVTWCUNABCDEFGHVQVNVO $.
  $}

  ${
    $d F x y z $.  $d G x y z $.  $d S x y z $.  $d T x y $.  $d U x y $.
    lmhmeql.u $e |- U = ( LSubSp ` S ) $.
    $( The equalizer of two module homomorphisms is a subspace.  (Contributed
       by Stefan O'Rear, 7-Mar-2015.) $)
    lmhmeql $p |- ( ( F e. ( S LMHom T ) /\ G e. ( S LMHom T ) ) ->
        dom ( F i^i G ) e. U ) $=
      ( vx vy vz co wcel wa cfv cv wral cbs wceq eqid fveq2 syl clmhm cin csubg
      cdm cvsca csca cghm lmghm ghmeql syl2an crab wi lmhmlmod1 adantr ad2antrr
      clmod simplr simprl syl3anc oveq2 simplll lmhmlin simpllr 3eqtr4d eqeq12d
      lmodvscl ad2antll elrab sylanbrc expr ralrimiva wb wfn wf lmhmf ffn eleq2
      fndmin raleqbi1dv ralrab syl6bb mpbird islss4 mpbir2and ) DABUAJZKZEWEKZL
      ZDEUBUDZCKZWIAUCMKZGNZHNZAUEMZJZWIKZHWIOZGAUFMZPMZOZWFDABUGJZKEXAKWKWGABD
      UHABEUHABDEUIUJWHWQGWSWHWLWSKZLZWQWMDMZWMEMZQZWOINZDMZXGEMZQZIAPMZUKZKZUL
      ZHXKOZXCXNHXKXCWMXKKZXFXMXCXPXFLZLZWOXKKZWODMZWOEMZQZXMXRAUPKZXBXPXSWHYCX
      BXQWFYCWGABDUMUNZUOWHXBXQUQZXCXPXFURZWLWNWRWSXKAWMXKRZWRRZWNRZWSRZVFUSXRW
      LXDBUEMZJZWLXEYKJZXTYAXFYLYMQXCXPXDXEWLYKUTVGXRWFXBXPXTYLQWFWGXBXQVAYEYFW
      SABWNYKXKDWRWLWMYHYJYGYIYKRZVBUSXRWGXBXPYAYMQWFWGXBXQVCYEYFWSABWNYKXKEWRW
      LWMYHYJYGYIYNVBUSVDXJYBIWOXKXGWOQXHXTXIYAXGWODSXGWOESVEVHVIVJVKXCWIXLQZWQ
      XOVLWHYOXBWFDXKVMZEXKVMZYOWGWFXKBPMZDVNYPXKYRABDYGYRRZVOXKYRDVPTWGXKYREVN
      YQXKYRABEYGYSVOXKYREVPTIXKDEVRUJUNYOWQXMHXLOXOWPXMHWIXLWIXLWOVQVSXJXFXMHI
      XKXGWMQXHXDXIXEXGWMDSXGWMESVEVTWATWBVKWHYCWJWKWTLVLYDWSCWNWIWRXKAGHYHYJYG
      YIFWCTWD $.
  $}

  ${
    $d B g h $.  $d F g h $.  $d K g h $.  $d S g h $.  $d T g h $.
    $d X g h $.
    lspextmo.b $e |- B = ( Base ` S ) $.
    lspextmo.k $e |- K = ( LSpan ` S ) $.
    $( A linear function is completely determined (or overdetermined) by its
       values on a spanning subset.  (Contributed by Stefan O'Rear,
       7-Mar-2015.)  (Revised by NM, 17-Jun-2017.) $)
    lspextmo $p |- ( ( X C_ B /\ ( K ` X ) = B ) ->
        E* g e. ( S LMHom T ) ( g |` X ) = F ) $=
      ( vh wss cfv wceq wa cv cres wral wcel cdm ad2antrl weq wi clmhm co eqtr3
      wrmo cin inss1 dmss ax-mp wfn cbs wf eqid lmhmf ffn adantrr fndm syl5sseq
      simplr clmod clss lmhmlmod1 adantr lmhmeql simprr lspssp syl3anc eqsstr3d
      syl eqssd expr wb 3syl simpll fnreseql fneqeql syl2anc 3imtr4d ralrimivva
      syl5 reseq1 eqeq1d rmo4 sylibr ) GAKZGFLZAMZNZDOZGPZEMZJOZGPZEMZNZDJUAZUB
      ZJBCUCUDZQDWSQWLDWSUFWIWRDJWSWSWPWKWNMZWIWJWSRZWMWSRZNZNZWQWKWNEUEXDGWJWM
      UGZSZKZXFAMZWTWQWIXCXGXHWIXCXGNZNZXFAXJWJSZXFAXEWJKXFXKKWJWMUHXEWJUIUJXJW
      JAUKZXKAMWIXCXLXGXDACULLZWJUMZXLXAXNWIXBAXMBCWJHXMUNZUOTAXMWJUPVJZUQAWJUR
      VJUSXJAWGXFWFWHXIUTXJBVARZXFBVBLZRZXGWGXFKXCXQWIXGXAXQXBBCWJVCVDTXCXSWIXG
      BCXRWJWMXRUNZVETWIXCXGVFXRGXFFBXTIVGVHVIVKVLXDXLWMAUKZWFWTXGVMXPXDXBAXMWM
      UMYAWIXAXBVFAXMBCWMHXOUOAXMWMUPVNZWFWHXCVOAWJWMGVPVHXDXLYAWQXHVMXPYBAWJWM
      VQVRVSWAVTWLWODJWSWQWKWNEWJWMGWBWCWDWE $.
  $}

  ${
    $d Y x a b $.  $d R x a b $.  $d I x a b $.  $d B x a b $.  $d F a b $.
    $d W x a b $.
    pwsdiaglmhm.y $e |- Y = ( R ^s I ) $.
    pwsdiaglmhm.b $e |- B = ( Base ` R ) $.
    pwsdiaglmhm.f $e |- F = ( x e. B |-> ( I X. { x } ) ) $.
    $( Diagonal homomorphism into a structure power.  (Contributed by Stefan
       O'Rear, 24-Jan-2015.) $)
    pwsdiaglmhm $p |- ( ( R e. LMod /\ I e. W ) -> F e. ( R LMHom Y ) ) $=
      ( va vb clmod wcel wa cfv eqid co csn cvv cvsca csca simpl pwslmod pwssca
      cbs eqcomd cgrp cghm lmodgrp pwsdiagghm sylan cv cxp wceq simplr lmodvscl
      3expb adantlr fvdiagfn syl2anc cof oveq2d simpll simprl pwsdiagel adantrl
      ad2ant2l pwsvscafval id vex a1i ofc12 ad2antlr 3eqtrd eqtr4d islmhmd ) CM
      NZEFNZOZKLCGCUAPZGUAPZDGUBPZCUBPZWDUFPZBIWAQZWBQZWDQZWCQWEQZVRVSUCCEFGHUD
      VTWDWCCWDEMFGHWHUEUGVRCUHNVSDCGUIRNCUJABCDEFGHIJUKULVTKUMZWENZLUMZBNZOZOZ
      WJWLWARZDPZEWPSUNZWJWLDPZWBRZWOVSWPBNZWQWRUOVRVSWNUPZVRWNXAVSVRWKWMXAWJWA
      WDWEBCWLIWHWFWIUQURUSABDEFWPJUTVAWOWTWJEWLSUNZWBREWJSUNXCWAVBRZWRWOWSXCWJ
      WBVSWMWSXCUOVRWKABDEFWLJUTVHVCWOWJGUFPZCWBWAWDEWEMFXCGHXEQZWFWGWHWIVRVSWN
      VDXBVTWKWMVEVTWMXCXENWKWLBXECEMFGHIXFVFVGVIVSXDWRUOVRWNVSEWJWLWAFTTVSVJWJ
      TNVSKVKVLWLTNVSLVKVLVMVNVOVPVQ $.
  $}

  ${
    $d Y a b x $.  $d W a b x $.  $d U a b x $.  $d Z a b x $.  $d V a b x $.
    $d B a b x $.  $d C a b x $.  $d F a b $.  $d X a b x $.  $d T x $.
    pwssplit1.y $e |- Y = ( W ^s U ) $.
    pwssplit1.z $e |- Z = ( W ^s V ) $.
    pwssplit1.b $e |- B = ( Base ` Y ) $.
    pwssplit1.c $e |- C = ( Base ` Z ) $.
    pwssplit1.f $e |- F = ( x e. B |-> ( x |` V ) ) $.
    $( Splitting for structure powers, part 0: restriction is a function.
       (Contributed by Stefan O'Rear, 24-Jan-2015.) $)
    pwssplit0 $p |- ( ( W e. T /\ U e. X /\ V C_ U ) -> F : B --> C ) $=
      ( wcel wf wb pwselbasb wss w3a cv cres cbs cfv eqid 3adant3 biimpa simpl3
      wa fssresd cvv simp1 simp2 simp3 ssexd syl2anc adantr mpbird fmptd ) HDQZ
      EIQZGEUAZUBZABAUCZGUDZCFVEVFBQZUKZVGCQZGHUEUFZVGRZVIEVKGVFVEVHEVKVFRZVBVC
      VHVMSVDVKHEBDVFJILVKUGZNTUHUIVBVCVDVHUJULVEVJVLSZVHVEVBGUMQVOVBVCVDUNVEGE
      IVBVCVDUOVBVCVDUPUQVKHGCDVGKUMMVNOTURUSUTPVA $.

    $( Splitting for structure powers, part 1: restriction is an onto function.
       The only actual monoid law we need here is that the base set is
       nonempty.  (Contributed by Stefan O'Rear, 24-Jan-2015.) $)
    pwssplit1 $p |- ( ( W e. Mnd /\ U e. X /\ V C_ U ) -> F : B -onto-> C ) $=
      ( wcel wf wceq cun c0 va vb cmnd wss w3a cfv wrex wral wfo pwssplit0 cdif
      cv wa c0g csn cxp cbs cin cvv wb simp1 simp2 simp3 eqid pwselbasb syl2anc
      ssexd biimpa fvex fconst a1i simpl1 mndidcl syl fssd disjdif fun syl21anc
      snssd simpl3 undif sylib unidm feq23d mpbid simpl2 cres fvtresfn resundir
      mpbird wfn fnresdm 3syl incom eqtri fnconstg ax-mp fnresdisj mp1i uneq12d
      ffn mpbii syl5eq un0 syl6eq eqtr2d fveq2 eqeq2d rspcev ralrimiva sylanbrc
      dffo3 ) GUCPZDHPZFDUDZUEZBCEQUAULZUBULZEUFZRZUBBUGZUACUHBCEUIABCUCDEFGHIJ
      KLMNOUJXPYAUACXPXQCPZUMZXQDFUKZGUNUFZUOZUPZSZBPZXQYHEUFZRZYAYCYIDGUQUFZYH
      QZYCFYDSZYLYLSZYHQZYMYCFYLXQQZYDYLYGQFYDURZTRZYPXPYBYQXPXMFUSPYBYQUTXMXNX
      OVAXPFDHXMXNXOVBXMXNXOVCVGYLGFCUCXQJUSLYLVDZNVEVFVHZYCYDYFYLYGYDYFYGQYCYD
      YEGUNVIZVJVKYCYEYLYCXMYEYLPXMXNXOYBVLZYLGYEYTYEVDVMVNVSVOYSYCFDVPZVKFYDYL
      YLXQYGVQVRYCYNYODYLYHYCXOYNDRXMXNXOYBVTFDWAWBYOYLRYCYLWCVKWDWEYCXMXNYIYMU
      TUUCXMXNXOYBWFYLGDBUCYHIHKYTMVEVFWJZYCYJYHFWGZXQYCYIYJUUFRUUEABEFYHOWHVNY
      CUUFXQTSZXQYCUUFXQFWGZYGFWGZSUUGXQYGFWIYCUUHXQUUITYCYQXQFWKUUHXQRUUAFYLXQ
      XAFXQWLWMYCYDFURZTRZUUITRZUUJYRTYDFWNUUDWOYGYDWKZUUKUULUTYCYEUSPUUMUUBYDY
      EUSWPWQYDFYGWRWSXBWTXCXQXDXEXFXTYKUBYHBXRYHRXSYJXQXRYHEXGXHXIVFXJUBUABCEX
      LXK $.

    $( Splitting for structure powers, part 2: restriction is a group
       homomorphism.  (Contributed by Stefan O'Rear, 24-Jan-2015.) $)
    pwssplit2 $p |- ( ( W e. Grp /\ U e. X /\ V C_ U ) ->
        F e. ( Y GrpHom Z ) ) $=
      ( cgrp wcel cfv co cres va wss w3a cplusg eqid simp1 simp2 pwsgrp syl2anc
      vb cvv simp3 ssexd pwssplit0 cv wa cof offres adantl adantr simpl2 simprl
      wceq pwsplusgval reseq1d fvtresfn oveqan12d 3eqtr4d grpcl 3expb sylan syl
      simprr ffvelrnda adantrr adantrl isghmd ) GPQZDHQZFDUBZUCZUAUJIUDRZJUDRZI
      JEBCMNWBUEZWCUEZWAVRVSIPQZVRVSVTUFZVRVSVTUGZGDHIKUHUIZWAVRFUKQZJPQWGWAFDH
      WHVRVSVTULUMZGFUKJLUHUIABCPDEFGHIJKLMNOUNZWAUAUOZBQZUJUOZBQZUPZUPZWMWOWBS
      ZFTZWMERZWOERZGUDRZUQZSZWSERZXAXBWCSWRWMWOXDSZFTZWMFTZWOFTZXDSZWTXEWQXHXK
      VCWAFXCWMWOBBURUSWRWSXGFWRBXCWBGWMWODPHIKMWAVRWQWGUTZVRVSVTWQVAWAWNWPVBWA
      WNWPVMXCUEZWDVDVEWQXEXKVCWAWNWPXAXIXBXJXDABEFWMOVFABEFWOOVFVGUSVHWRWSBQZX
      FWTVCWAWFWQXNWIWFWNWPXNBWBIWMWOMWDVIVJVKABEFWSOVFVLWRCXCWCGXAXBFPUKJLNXLW
      AWJWQWKUTWAWNXACQWPWABCWMEWLVNVOWAWPXBCQWNWABCWOEWLVNVPXMWEVDVHVQ $.

    $( Splitting for structure powers, part 3: restriction is a module
       homomorphism.  (Contributed by Stefan O'Rear, 24-Jan-2015.) $)
    pwssplit3 $p |- ( ( W e. LMod /\ U e. X /\ V C_ U ) ->
        F e. ( Y LMHom Z ) ) $=
      ( clmod wcel cfv eqid cvv va wss w3a cvsca csca cbs simp1 pwslmod syl2anc
      vb simp2 simp3 ssexd wceq pwssca eqtr3d cgrp co lmodgrp pwssplit2 syl3an1
      cghm cv wa cres csn cxp cof snex xpexg sylancl vex offres adantr 3ad2ant3
      xpssres oveq1d simpl1 simpl2 fveq2d eleq2d biimpar adantrr simprr reseq1d
      eqtrd pwsvscafval fvtresfn ad2antll oveq2d lmodvscl 3expb sylan pwssplit0
      3eqtr4d syl ffvelrnda adantrl islmhmd ) GPQZDHQZFDUBZUCZUAUJIJIUDRZJUDRZE
      JUERZIUERZXGUFRZBMXDSZXESZXGSZXFSXHSZXCWTXAIPQZWTXAXBUGZWTXAXBUKZGDHIKUHU
      IZXCWTFTQZJPQXNXCFDHXOWTXAXBULUMZGFTJLUHUIXCGUERZXFXGXCWTXQXSXFUNXNXRGXSF
      PTJLXSSZUOUIXCWTXAXSXGUNXNXOGXSDPHIKXTUOUIZUPWTGUQQXAXBEIJVBURQGUSABCDEFG
      HIJKLMNOUTVAXCUAVCZXHQZUJVCZBQZVDZVDZYBYDXDURZFVEZFYBVFZVGZYDERZGUDRZVHZU
      RZYHERZYBYLXEURYGDYJVGZYDYNURZFVEZYKYDFVEZYNURZYIYOYGYSYQFVEZYTYNURZUUAXC
      YSUUCUNZYFXCYQTQZYDTQUUDXCXAYJTQUUEXOYBVIDYJHTVJVKUJVLFYMYQYDTTVMVKVNYGUU
      BYKYTYNXCUUBYKUNZYFXBWTUUFXADYJFVPVOVNVQWFYGYHYRFYGYBBGXDYMXSDXSUFRZPHYDI
      KMYMSZXIXTUUGSZWTXAXBYFVRZWTXAXBYFVSXCYCYBUUGQZYEXCUUKYCXCUUGXHYBXCXSXGUF
      YAVTWAWBWCZXCYCYEWDWGWEYGYLYTYKYNYEYLYTUNXCYCABEFYDOWHWIWJWOYGYHBQZYPYIUN
      XCXMYFUUMXPXMYCYEUUMYBXDXGXHBIYDMXKXIXLWKWLWMABEFYHOWHWPYGYBCGXEYMXSFUUGP
      TYLJLNUUHXJXTUUIUUJXCXQYFXRVNUULXCYEYLCQYCXCBCYDEABCPDEFGHIJKLMNOWNWQWRWG
      WOWS $.
  $}

  ${
    $d F a b c $.  $d R a b c $.  $d S a b c $.  $d B a b c $.  $d C a b c $.
    islmim.b $e |- B = ( Base ` R ) $.
    islmim.c $e |- C = ( Base ` S ) $.
    $( An isomorphism of left modules is a bijective homomorphism.
       (Contributed by Stefan O'Rear, 21-Jan-2015.) $)
    islmim $p |- ( F e. ( R LMIso S ) <-> ( F e. ( R LMHom S ) /\
          F : B -1-1-onto-> C ) ) $=
      ( vc va vb co wcel clmod cv wf1o clmhm wa cbs cfv wceq clmim crab df-lmim
      w3a ovex rabex oveq12 wb syl6eqr f1oeq23 syl2an rabeqbidv elovmpt2 df-3an
      fveq2 f1oeq1 anbi2i lmhmlmod1 lmhmlmod2 jca adantr pm4.71ri bitr4i 3bitri
      elrab ) ECDUAKLCMLZDMLZEABHNZOZHCDPKZUBZLZUDVFVGQZVLQZEVJLZABEOZQZMMINZRS
      ZJNZRSZVHOZHVRVTPKZUBUAVKECDIJJHIUCWBHWCVRVTPUEUFVRCTZVTDTZQWBVIHWCVJVRCV
      TDPUGWDVSATWABTWBVIUHWEWDVSCRSAVRCRUOFUIWEWADRSBVTDRUOGUIVSAWABVHUJUKULUM
      VFVGVLUNVNVMVQQVQVLVQVMVIVPHEVJABVHEUPVEUQVQVMVOVMVPVOVFVGCDEURCDEUSUTVAV
      BVCVD $.

    $( An isomorphism of left modules is a bijection.  (Contributed by Stefan
       O'Rear, 21-Jan-2015.) $)
    lmimf1o $p |- ( F e. ( R LMIso S ) -> F : B -1-1-onto-> C ) $=
      ( clmim co wcel clmhm wf1o islmim simprbi ) ECDHIJECDKIJABELABCDEFGMN $.
  $}

  $( An isomorphism of modules is a homomorphism.  (Contributed by Stefan
     O'Rear, 21-Jan-2015.) $)
  lmimlmhm $p |- ( F e. ( R LMIso S ) -> F e. ( R LMHom S ) ) $=
    ( clmim co wcel clmhm cbs cfv wf1o eqid islmim simplbi ) CABDEFCABGEFAHIZBH
    IZCJNOABCNKOKLM $.

  $( An isomorphism of modules is an isomorphism of groups.  (Contributed by
     Stefan O'Rear, 21-Jan-2015.)  (Revised by Mario Carneiro, 6-May-2015.) $)
  lmimgim $p |- ( F e. ( R LMIso S ) -> F e. ( R GrpIso S ) ) $=
    ( clmim wcel cghm cbs cfv wf1o cgim clmhm lmimlmhm lmghm eqid lmimf1o isgim
    co syl sylanbrc ) CABDQEZCABFQEZAGHZBGHZCICABJQETCABKQEUAABCLABCMRUBUCABCUB
    NZUCNZOUBUCABCUDUEPS $.

  $( An isomorphism of left modules is a homomorphism whose converse is a
     homomorphism.  (Contributed by Mario Carneiro, 6-May-2015.) $)
  islmim2 $p |- ( F e. ( R LMIso S ) <-> ( F e. ( R LMHom S ) /\
        `' F e. ( S LMHom R ) ) ) $=
    ( clmim co wcel clmhm cbs cfv wf1o ccnv eqid islmim lmhmf1o pm5.32i bitri
    wa ) CABDEFCABGEFZAHIZBHIZCJZQRCKBAGEFZQSTABCSLZTLZMRUAUBABCSTUCUDNOP $.

  $( The converse of a bijective module homomorphism is a bijective module
     homomorphism.  (Contributed by Stefan O'Rear, 25-Jan-2015.)  (Revised by
     Mario Carneiro, 6-May-2015.) $)
  lmimcnv $p |- ( F e. ( S LMIso T ) -> `' F e. ( T LMIso S ) ) $=
    ( clmhm co wcel ccnv wa clmim wrel wceq cbs cfv eqid lmhmf frel syl islmim2
    wf dfrel2 sylib id eqeltrd anim2i ancoms 3imtr4i ) CABDEZFZCGZBADEFZHUJUIGZ
    UGFZHZCABIEFUIBAIEFUJUHUMUHULUJUHUKCUGUHCJZUKCKUHALMZBLMZCSUNUOUPABCUONUPNO
    UOUPCPQCTUAUHUBUCUDUEABCRBAUIRUF $.

  ${
    $d R f $.  $d S f $.  $d F f $.
    $( The relation "is isomorphic to" for modules.  (Contributed by Stefan
       O'Rear, 25-Jan-2015.) $)
    brlmic $p |- ( R ~=m S <-> ( R LMIso S ) =/= (/) ) $=
      ( clmic clmim clmod cxp df-lmic lmimfn brwitnlem ) ABCDEEFGHI $.

    $( Prove isomorphic by an explicit isomorphism.  (Contributed by Stefan
       O'Rear, 25-Jan-2015.) $)
    brlmici $p |- ( F e. ( R LMIso S ) -> R ~=m S ) $=
      ( clmim co wcel c0 wne clmic wbr ne0i brlmic sylibr ) CABDEZFNGHABIJNCKAB
      LM $.

    $( Isomorphism implies the left side is a module.  (Contributed by Stefan
       O'Rear, 25-Jan-2015.) $)
    lmiclcl $p |- ( R ~=m S -> R e. LMod ) $=
      ( vf clmic wbr cv clmim co wcel wex clmod c0 wne brlmic n0 bitri lmimlmhm
      clmhm lmhmlmod1 syl exlimiv sylbi ) ABDEZCFZABGHZIZCJZAKIZUCUELMUGABNCUEO
      PUFUHCUFUDABRHIUHABUDQABUDSTUAUB $.

    $( Isomorphism implies the right side is a module.  (Contributed by Mario
       Carneiro, 6-May-2015.) $)
    lmicrcl $p |- ( R ~=m S -> S e. LMod ) $=
      ( vf clmic wbr cv clmim co wcel wex clmod c0 wne brlmic n0 bitri lmimlmhm
      clmhm lmhmlmod2 syl exlimiv sylbi ) ABDEZCFZABGHZIZCJZBKIZUCUELMUGABNCUEO
      PUFUHCUFUDABRHIUHABUDQABUDSTUAUB $.

    $( Module isomorphism is symmetric.  (Contributed by Stefan O'Rear,
       26-Feb-2015.) $)
    lmicsym $p |- ( R ~=m S -> S ~=m R ) $=
      ( vf clmic wbr clmim co c0 wne brlmic cv wcel wex n0 ccnv lmimcnv brlmici
      syl exlimiv sylbi ) ABDEABFGZHIZBADEZABJUBCKZUALZCMUCCUANUEUCCUEUDOZBAFGL
      UCABUDPBAUFQRSTT $.
  $}

  ${
    $d x y C $.  $d w z F $.  $d w z G $.  $d f w x y z J $.  $d f w x y z K $.
    $d f w x y z L $.  $d f w x y z M $.  $d w x y z P $.  $d f w x y z ph $.
    $d w x y B $.  $d x y Q $.
    lmhmpropd.a $e |- ( ph -> B = ( Base ` J ) ) $.
    lmhmpropd.b $e |- ( ph -> C = ( Base ` K ) ) $.
    lmhmpropd.c $e |- ( ph -> B = ( Base ` L ) ) $.
    lmhmpropd.d $e |- ( ph -> C = ( Base ` M ) ) $.
    lmhmpropd.1 $e |- ( ph -> F = ( Scalar ` J ) ) $.
    lmhmpropd.2 $e |- ( ph -> G = ( Scalar ` K ) ) $.
    lmhmpropd.3 $e |- ( ph -> F = ( Scalar ` L ) ) $.
    lmhmpropd.4 $e |- ( ph -> G = ( Scalar ` M ) ) $.
    lmhmpropd.p $e |- P = ( Base ` F ) $.
    lmhmpropd.q $e |- Q = ( Base ` G ) $.
    lmhmpropd.e $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( x ( +g ` J ) y ) = ( x ( +g ` L ) y ) ) $.
    lmhmpropd.f $e |- ( ( ph /\ ( x e. C /\ y e. C ) ) ->
        ( x ( +g ` K ) y ) = ( x ( +g ` M ) y ) ) $.
    lmhmpropd.g $e |- ( ( ph /\ ( x e. P /\ y e. B ) ) ->
        ( x ( .s ` J ) y ) = ( x ( .s ` L ) y ) ) $.
    lmhmpropd.h $e |- ( ( ph /\ ( x e. Q /\ y e. C ) ) ->
        ( x ( .s ` K ) y ) = ( x ( .s ` M ) y ) ) $.
    $( Module homomorphism depends only on the module attributes of structures.
       (Contributed by Mario Carneiro, 8-Oct-2015.) $)
    lmhmpropd $p |- ( ph -> ( J LMHom K ) = ( L LMHom M ) ) $=
      ( vf vz vw clmhm co clmod wcel wa cghm csca cfv wceq cvsca wral lmodpropd
      cbs w3a anbi12d oveqrspc2v adantlr fveq2d simpll simplrr 3eqtr4g eleqtrrd
      cv simprl wf simplrl eqid ghmf simprr eleqtrd ffvelrnd syl12anc 2ralbidva
      eqeq12d pm5.32da df-3an 3bitr4g syl5eq raleqbidv 3anbi23d ghmpropd eleq2d
      syl raleqdv 3anbi123d 3bitr3d islmhm eqrdv ) AUHJKUKULZLMUKULZAJUMUNZKUMU
      NZUOZUHVMZJKUPULZUNZKUQURZJUQURZUSZUIVMZUJVMZJUTURZULZXDURZXJXKXDURZKUTUR
      ZULZUSZUJJVCURZVAZUIXHVCURZVAZVDZUOLUMUNZMUMUNZUOZXDLMUPULZUNZMUQURZLUQUR
      ZUSZXJXKLUTURZULZXDURZXJXOMUTURZULZUSZUJLVCURZVAZUIYJVCURZVAZVDZUOXDWSUNX
      DWTUNAXCYFYCUUBAXAYDXBYEABCDFHJLNPUDRTUBUFVBABCEGIKMOQUESUAUCUGVBVEAXFIHU
      SZXRUJDVAZUIFVAZVDZXFUUCYQUJDVAZUIFVAZVDZYCUUBAXFUUCUOZUUEUOUUJUUHUOUUFUU
      IAUUJUUEUUHAUUJUOZXRYQUIUJFDUUKXJFUNZXKDUNZUOZUOZXNYNXQYPUUOXMYMXDAUUNXMY
      MUSUUJABCFDXLYLXJXKUFVFVGVHUUOAXJGUNXOEUNXQYPUSAUUJUUNVIZUUOXJFGUUKUULUUM
      VNUUOIVCURHVCURZGFUUOIHVCAXFUUCUUNVJVHUCUBVKVLUUOXOKVCURZEUUOXSUURXKXDUUO
      XFXSUURXDVOAXFUUCUUNVPJKXDXSUURXSVQZUURVQVRWMUUOXKDXSUUKUULUUMVSUUOADXSUS
      UUPNWMVTWAUUOAEUURUSUUPOWMVLABCGEXPYOXJXOUGVFWBWDWCWEXFUUCUUEWFXFUUCUUHWF
      WGAUUCXIUUEYBXFAIXGHXHSRWDAUUDXTUIFYAAFUUQYAUBAHXHVCRVHWHAXRUJDXSNWNWIWJA
      XFYHUUCYKUUHUUAAXEYGXDABCDEJKLMNOPQUDUEWKWLAIYIHYJUATWDAUUGYSUIFYTAFUUQYT
      UBAHYJVCTVHWHAYQUJDYRPWNWIWOWPVEUIUJYAJKXLXPXSXDXHXGXHVQXGVQYAVQUUSXLVQXP
      VQWQUIUJYTLMYLYOYRXDYJYIYJVQYIVQYTVQYRVQYLVQYOVQWQWGWR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subspace sum; bases for a left module
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c LBasis $.

  $( Extend class notation with the set of bases for a vector space. $)
  clbs $a class LBasis $.

  ${
    $d b n s w x y $.
    $( Define the set of bases to a left module or left vector space.
       (Contributed by Mario Carneiro, 24-Jun-2014.) $)
    df-lbs $a |- LBasis = ( w e. _V |-> { b e. ~P ( Base ` w ) |
 [. ( LSpan ` w ) / n ]. [. ( Scalar ` w ) / s ]. ( ( n ` b ) = ( Base ` w ) /\
       A. x e. b A. y e. ( ( Base ` s ) \ { ( 0g ` s ) } )
       -. ( y ( .s ` w ) x ) e. ( n ` ( b \ { x } ) ) ) } ) $.

    $(
    df-lbs @a |- LBasis = ( w e. _V |-> { b e. ~P ( Base ` w ) |
      ( ( ( LSpan ` w ) ` b ) = ( Base ` w ) /\ A. x e. ( ~P b i^i Fin )
       A. f e. ( ( Base ` ( Scalar ` w ) ) ^m x )
       ( ( w gsum ( f oF ( .s ` w ) ( _I |` x ) ) ) = ( 0g ` w ) ->
         f = ( x X. { ( 0g ` w ) } ) ) } ) @.

    df-lbs @a |- LBasis = ( w e. _V |-> { b e. ~P ( Base ` w ) |
      [. ( Base ` ( ( Scalar ` w ) freeLMod b ) ) / k ]. ( f e. k |->
        ( w gsum ( f oF ( .s ` w ) ( _I |` b ) ) ) ) :
           k -1-1-onto-> ( Base ` w ) } ) @.
    $)
  $}

  ${
    $d b x y B $.  $d b f n w y K $.  $d b f n w x y N $.  $d b f n w x y W $.
    $d x y F $.  $d b f n w .x. $.  $d b f n w V $.  $d b f n w y .0. $.
    islbs.v $e |- V = ( Base ` W ) $.
    islbs.f $e |- F = ( Scalar ` W ) $.
    islbs.s $e |- .x. = ( .s ` W ) $.
    islbs.k $e |- K = ( Base ` F ) $.
    islbs.j $e |- J = ( LBasis ` W ) $.
    islbs.n $e |- N = ( LSpan ` W ) $.
    islbs.z $e |- .0. = ( 0g ` F ) $.
    $( The predicate " ` B ` is a basis for the left module or vector space
       ` W ` ".  A subset of the base set is a basis if zero is not in the set,
       it spans the set, and no nonzero multiple of an element of the basis is
       in the span of the rest of the family.  (Contributed by Mario Carneiro,
       24-Jun-2014.)  (Revised by Mario Carneiro, 14-Jan-2015.) $)
    islbs $p |- ( W e. X -> ( B e. J <-> ( B C_ V /\ ( N ` B ) = V /\ A. x e. B
      A. y e. ( K \ { .0. } ) -. ( y .x. x ) e. ( N ` ( B \ { x } ) ) ) ) ) $=
      ( cfv vb vw vn vf wcel cv wceq co csn cdif wral cpw crab wss w3a cvv elex
      wn wa clbs cbs cvsca c0g csca wsbc clspn fveq2 syl6eqr pweqd fvexd adantr
      simplr fveq1d ad2antrr eqeq12d simpr fveq2d sneqd difeq12d eleq12d notbid
      oveqd raleqbidv ralbidv anbi12d sbcied2 rabeqbidv fvex eqeltri pwex rabex
      df-lbs fvmpt syl5eq eleq2d anbi1i eqeq1d difeq1 raleqbi1dv 3anass 3bitr4i
      syl elpw2 elrab syl6bb ) JKUEZCFUECUAUFZHTZIUGZBUFZAUFZDUHZXGXKUIZUJZHTZU
      EZURZBGLUIZUJZUKZAXGUKZUSZUAIULZUMZUEZCIUNZCHTZIUGZXLCXMUJZHTZUEZURZBXSUK
      ZACUKZUOZXFFYDCXFJUPUEZFYDUGJKUQYPFJUTTYDQUBJXGUCUFZTZUBUFZVATZUGZXJXKYSV
      BTZUHZXNYQTZUEZURZBUDUFZVATZUUGVCTZUIZUJZUKZAXGUKZUSZUDYSVDTZVEZUCYSVFTZV
      EZUAYTULZUMYDUPUTYSJUGZUURYBUAUUSYCUUTYTIUUTYTJVATZIYSJVAVGMVHZVIUUTUUPYB
      UCUUQHUPUUTYSVFVJUUTUUQJVFTHYSJVFVGRVHUUTYQHUGZUSZUUNYBUDUUOEUPUVDYSVDVJU
      VDUUOJVDTZEUUTUUOUVEUGUVCYSJVDVGVKNVHUVDUUGEUGZUSZUUAXIUUMYAUVGYRXHYTIUVG
      XGYQHUUTUVCUVFVLZVMUUTYTIUGUVCUVFUVBVNVOUVGUULXTAXGUVGUUFXQBUUKXSUVGUUHGU
      UJXRUVGUUHEVATGUVGUUGEVAUVDUVFVPZVQPVHUVGUUILUVGUUIEVCTLUVGUUGEVCUVIVQSVH
      VRVSUVGUUEXPUVGUUCXLUUDXOUVGUUBDXJXKUUTUUBDUGUVCUVFUUTUUBJVBTDYSJVBVGOVHV
      NWBUVGXNYQHUVHVMVTWAWCWDWEWFWFWGABUBUCUDUAWLYBUAYCIIUVAUPMJVAWHWIZWJWKWMW
      NXBWOCYCUEZYHYNUSZUSYFUVLUSYEYOUVKYFUVLCIUVJXCWPYBUVLUACYCXGCUGZXIYHYAYNU
      VMXHYGIXGCHVGWQXTYMAXGCUVMXQYLBXSUVMXPYKUVMXOYJXLUVMXNYIHXGCXMWRVQWOWAWDW
      SWEXDYFYHYNWTXAXE $.
  $}

  ${
    $d y A $.  $d x y B $.  $d x y E $.  $d x y F $.  $d x y K $.  $d x y N $.
    $d x y .x. $.  $d x y W $.  $d x y .0. $.
    lbsss.v $e |- V = ( Base ` W ) $.
    lbsss.j $e |- J = ( LBasis ` W ) $.
    $( A basis is a set of vectors.  (Contributed by Mario Carneiro,
       24-Jun-2014.) $)
    lbsss $p |- ( B e. J -> B C_ V ) $=
      ( vy vx wcel wss clspn cfv wceq cv cvsca csn cdif wral clbs eqid csca cbs
      co wn c0g w3a cdm wb elfvdm eleq2s islbs syl ibi simp1d ) ABIZACJZADKLZLC
      MZGNHNZDOLZUCAUSPQUQLIUDGDUALZUBLZVAUELZPQRHARZUOUPURVDUFZUODSUGZIZUOVEUH
      VGADSLBADSUIFUJHGAUTVABVBUQCDVFVCEVATUTTVBTFUQTVCTUKULUMUN $.

    $( An element of a basis is a vector.  (Contributed by Mario Carneiro,
       24-Jun-2014.) $)
    lbsel $p |- ( ( B e. J /\ E e. B ) -> E e. V ) $=
      ( wcel lbsss sselda ) ACHADBACDEFGIJ $.

    lbssp.n $e |- N = ( LSpan ` W ) $.
    $( The span of a basis is the whole space.  (Contributed by Mario Carneiro,
       24-Jun-2014.) $)
    lbssp $p |- ( B e. J -> ( N ` B ) = V ) $=
      ( vy vx wcel wss cfv wceq cv csn cdif wral clbs eqid cvsca co wn csca cbs
      c0g w3a cdm wb elfvdm eleq2s islbs syl ibi simp2d ) ABKZADLZACMDNZIOJOZEU
      AMZUBAUSPQCMKUCIEUDMZUEMZVAUFMZPQRJARZUPUQURVDUGZUPESUHZKZUPVEUIVGAESMBAE
      SUJGUKJIAUTVABVBCDEVFVCFVATUTTVBTGHVCTULUMUNUO $.

    lbsind.f $e |- F = ( Scalar ` W ) $.
    lbsind.s $e |- .x. = ( .s ` W ) $.
    lbsind.k $e |- K = ( Base ` F ) $.
    lbsind.z $e |- .0. = ( 0g ` F ) $.
    $( A basis is linearly independent; that is, every element has a span which
       trivially intersects the span of the remainder of the basis.
       (Contributed by Mario Carneiro, 12-Jan-2015.) $)
    lbsind $p |- ( ( ( B e. J /\ E e. B ) /\ ( A e. K /\ A =/= .0. ) ) ->
        -. ( A .x. E ) e. ( N ` ( B \ { E } ) ) ) $=
      ( vy wcel vx wne wa csn cdif co cfv wn eldifsn wral wss wceq w3a clbs cdm
      cv wb elfvdm eleq2s islbs syl ibi simp3d oveq2 sneq difeq2d fveq2d notbid
      eleq12d oveq1 eleq1d rspc2v syl5com impl sylan2br ) AGTAKUBUCBFTZDBTZUCAG
      KUDUEZTZADCUFZBDUDZUEZHUGZTZUHZAGKUIVPVQVSWEVPSUPZUAUPZCUFZBWGUDZUEZHUGZT
      ZUHZSVRUJUABUJZVQVSUCWEVPBIUKZBHUGIULZWNVPWOWPWNUMZVPJUNUOZTZVPWQUQWSBJUN
      UGFBJUNURMUSUASBCEFGHIJWRKLOPQMNRUTVAVBVCWMWEWFDCUFZWCTZUHUASDABVRWGDULZW
      LXAXBWHWTWKWCWGDWFCVDXBWJWBHXBWIWABWGDVEVFVGVIVHWFAULZXAWDXCWTVTWCWFADCVJ
      VKVHVLVMVNVO $.
  $}

  ${
    lbsind2.j $e |- J = ( LBasis ` W ) $.
    lbsind2.n $e |- N = ( LSpan ` W ) $.
    lbsind2.f $e |- F = ( Scalar ` W ) $.
    lbsind2.o $e |- .1. = ( 1r ` F ) $.
    lbsind2.z $e |- .0. = ( 0g ` F ) $.
    $( A basis is linearly independent; that is, every element is not in the
       span of the remainder of the basis.  (Contributed by Mario Carneiro,
       25-Jun-2014.)  (Revised by Mario Carneiro, 12-Jan-2015.) $)
    lbsind2 $p |- ( ( ( W e. LMod /\ .1. =/= .0. ) /\ B e. J /\ E e. B ) ->
                   -. E e. ( N ` ( B \ { E } ) ) ) $=
      ( clmod wcel wne cfv cbs eqid syl2anc wa w3a cvsca co csn cdif wceq simp2
      simp1l simp3 lmodvs1 wn crg lmodring ringidcl 3syl simp1r lbsind syl22anc
      lbsel eqneltrrd ) GNOZBHPZUAZAEOZCAOZUBZBCGUCQZUDZCACUEUFFQZVGVBCGRQZOZVI
      CUGVBVCVEVFUIZVGVEVFVLVDVEVFUHZVDVEVFUJZACEVKGVKSZIUTTVHBDVKGCVPKVHSZLUKT
      VGVEVFBDRQZOZVCVIVJOULVNVOVGVBDUMOVSVMDGKUNVRDBVRSZLUOUPVBVCVEVFUQBAVHCDE
      VRFVKGHVPIJKVQVTMURUSVA $.

    $d x y .0. $.  $d x y B $.  $d x y C $.  $d x y J $.  $d x N $.  $d x V $.
    $d x y .1. $.  $d x y W $.
    lbspss.v $e |- V = ( Base ` W ) $.
    $( No proper subset of a basis spans the space.  (Contributed by Mario
       Carneiro, 25-Jun-2014.) $)
    lbspss $p |- ( ( ( W e. LMod /\ .1. =/= .0. ) /\ B e. J /\ C C. B ) ->
      ( N ` C ) =/= V ) $=
      ( vx wcel wne wa wn vy clmod wpss w3a cv cfv pssnel 3ad2ant3 simpl2 lbsss
      wex wss syl simprl sseldd csn simpl1l ssdifssd simpl3 pssssd sseld simprr
      cdif eleq1 notbid syl5ibrcom necon2ad eldifsn syl6ibr ssrdv lspss syl3anc
      weq jcad simpl1r lbsind2 syl211anc ssneldd nelne1 syl2anc necomd exlimddv
      ) HUBQZCIRZSZAEQZBAUCZUDZPUEZAQZWIBQZTZSZBFUFZGRPWGWEWMPUKWFPBAUGUHWHWMSZ
      GWNWOWIGQWIWNQTGWNRWOAGWIWOWFAGULWEWFWGWMUIZAEGHOJUJUMZWHWJWLUNZUOWOWNAWI
      UPZVCZFUFZWIWOWCWTGULBWTULWNXAULWCWDWFWGWMUQZWOAGWSWQURWOUABWTWOUAUEZBQZX
      CAQZXCWIRZSXCWTQWOXDXEXFWOBAXCWOBAWEWFWGWMUSUTVAWOXDXCWIWOXDTUAPVMZWLWHWJ
      WLVBXGXDWKXCWIBVDVEVFVGVNXCAWIVHVIVJBWTFGHOKVKVLWOWCWDWFWJWIXAQTXBWCWDWFW
      GWMVOWPWRACWIDEFHIJKLMNVPVQVRWIGWNVSVTWAWB $.
  $}

  ${
    $d a d e u .(+) $.  $d a d e u S $.  $d a d e u T $.  $d a d e u U $.
    $d a d e u W $.
    lsmcl.s $e |- S = ( LSubSp ` W ) $.
    lsmcl.p $e |- .(+) = ( LSSum ` W ) $.
    $( The sum of two subspaces is a subspace.  (Contributed by NM,
       4-Feb-2014.)  (Revised by Mario Carneiro, 19-Apr-2016.) $)
    lsmcl $p |- ( ( W e. LMod /\ T e. S /\ U e. S ) -> ( T .(+) U ) e. S ) $=
      ( va vu vd ve wcel co cfv cv wral wa eqid syl2anc syl22anc clmod w3a csca
      csubg cvsca cbs lmodabl 3ad2ant1 lsssubg 3adant3 3adant2 lsmsubg2 syl3anc
      cabl cplusg wceq wrex lsmelval adantr simpll1 simplr simpll2 simprl lssel
      simpll3 simprr lmodvsdi lssvscl lsmelvali eqeltrd oveq2 eleq1d syl5ibrcom
      wb syl13anc rexlimdvva sylbid impr ralrimivva islss4 mpbir2and ) EUALZCBL
      ZDBLZUBZCDAMZBLZWFEUDNZLZHOZIOZEUENZMZWFLZIWFPHEUCNZUFNZPZWEEUNLZCWHLZDWH
      LZWIWBWCWRWDEUGUHWBWCWSWDBCEFUIZUJZWBWDWTWCBDEFUIZUKZACDEGULUMWEWNHIWPWFW
      EWJWPLZWKWFLZWNWEXEQZXFWKJOZKOZEUONZMZUPZKDUQJCUQZWNWEXFXMVNZXEWEWSWTXNXB
      XDJKXJACDEWKXJRZGURSUSXGXLWNJKCDXGXHCLZXIDLZQZQZWNXLWJXKWLMZWFLXSXTWJXHWL
      MZWJXIWLMZXJMZWFXSWBXEXHEUFNZLZXIYDLZXTYCUPWBWCWDXEXRUTZWEXEXRVAZXSWCXPYE
      WBWCWDXEXRVBZXGXPXQVCZBCYDEXHYDRZFVDSXSWDXQYFWBWCWDXEXRVEZXGXPXQVFZBDYDEX
      IYKFVDSXJWJWLWOWPYDEXHXIYKXOWORZWLRZWPRZVGVOXSWSWTYACLZYBDLZYCWFLXSWBWCWS
      YGYIXASXSWBWDWTYGYLXCSXSWBWCXEXPYQYGYIYHYJWPBWLCWOEWJXHYNYOYPFVHTXSWBWDXE
      XQYRYGYLYHYMWPBWLDWOEWJXIYNYOYPFVHTXJACDEYAYBXOGVITVJXLWMXTWFWKXKWJWLVKVL
      VMVPVQVRVSWBWCWGWIWQQVNWDWPBWLWFWOYDEHIYNYPYKYOFVTUHWA $.
  $}

  ${
    $d j k v w .+ $.  $d j k F $.  $d j k v w K $.  $d j k v w N $.
    $d j k v w .x. $.  $d j k v w U $.  $d j k V $.  $d j k v w W $.
    $d j k v w X $.  $d j k v w Y $.  $d j k v w ph $.
    lsmspsn.v $e |- V = ( Base ` W ) $.
    lsmspsn.a $e |- .+ = ( +g ` W ) $.
    lsmspsn.f $e |- F = ( Scalar ` W ) $.
    lsmspsn.k $e |- K = ( Base ` F ) $.
    lsmspsn.t $e |- .x. = ( .s ` W ) $.
    lsmspsn.p $e |- .(+) = ( LSSum ` W ) $.
    lsmspsn.n $e |- N = ( LSpan ` W ) $.
    lsmspsn.w $e |- ( ph -> W e. LMod ) $.
    lsmspsn.x $e |- ( ph -> X e. V ) $.
    lsmspsn.y $e |- ( ph -> Y e. V ) $.
    $( Member of subspace sum of spans of singletons.  (Contributed by NM,
       8-Apr-2015.) $)
    lsmspsn $p |- ( ph -> ( U e. ( ( N ` { X } ) .(+) ( N ` { Y } ) )
            <-> E. j e. K E. k e. K U = ( ( j .x. X ) .+ ( k .x. Y ) ) ) ) $=
      ( vv vw csn cfv co wcel cv wceq wrex wa csubg wb clmod lspsnsubg lsmelval
      syl2anc lspsnel anbi12d biimpa biantrurd r19.41v rexbii 3bitrri 2rexbidva
      reeanv anbi1i syl6bb adantr simprl lspsneli simprr oveq1 eqeq2d ceqsrex2v
      rexrot4 oveq2 3bitrd ) AEMUGJUHZNUGJUHZCUIUJZEUEUKZUFUKZBUIZULZUFWCUMUEWB
      UMZWEFUKZMDUIZULZWFGUKZNDUIZULZUNZWHUNZUFWCUMUEWBUMZGIUMFIUMZEWKWNBUIZULZ
      GIUMFIUMAWBLUOUHZUJZWCXBUJZWDWIUPALUQUJZMKUJZXCUBUCJKLMOUAURUTAXENKUJZXDU
      BUDJKLNOUAURUTUEUFBCWBWCLEPTUSUTAWIWQGIUMZFIUMZUFWCUMUEWBUMWSAWHXIUEUFWBW
      CAWEWBUJZWFWCUJZUNZUNZWHWLFIUMZWOGIUMZUNZWHUNZXIXMXPWHAXLXPAXJXNXKXOAXEXF
      XJXNUPUBUCDWEFHIJKLMQROSUAVAUTAXEXGXKXOUPUBUDDWFGHIJKLNQROSUAVAUTVBVCVDXI
      WPGIUMZWHUNZFIUMXRFIUMZWHUNXQXHXSFIWPWHGIVEVFXRWHFIVEXTXPWHWLWOFGIIVIVJVG
      VKVHWQUEUFFGWBWCIIVSVKAWRXAFGIIAWJIUJZWMIUJZUNZUNZWKWBUJWNWCUJWRXAUPYDWJD
      HIJKLMOSQRUAAXEYCUBVLZAYAYBVMAXFYCUCVLVNYDWMDHIJKLNOSQRUAYEAYAYBVOAXGYCUD
      VLVNWHEWKWFBUIZULXAUEUFWKWNWBWCWLWGYFEWEWKWFBVPVQWOYFWTEWFWNWKBVTVQVRUTVH
      WA $.
  $}

  ${
    $d y z .(+) $.  $d y z T $.  $d y z U $.  $d y z V $.  $d y z W $.
    $d y z X $.  $d y z ph $.
    lsmelval2.v $e |- V = ( Base ` W ) $.
    lsmelval2.s $e |- S = ( LSubSp ` W ) $.
    lsmelval2.p $e |- .(+) = ( LSSum ` W ) $.
    lsmelval2.n $e |- N = ( LSpan ` W ) $.
    lsmelval2.w $e |- ( ph -> W e. LMod ) $.
    lsmelval2.t $e |- ( ph -> T e. S ) $.
    lsmelval2.u $e |- ( ph -> U e. S ) $.
    $( Subspace sum membership in terms of a sum of 1-dim subspaces (atoms),
       which can be useful for treating subspaces as projective lattice
       elements.  (Contributed by NM, 9-Aug-2014.) $)
    lsmelval2 $p |- ( ph -> ( X e. ( T .(+) U ) <-> ( X e. V /\ E. y e. T
       E. z e. U ( N ` { X } ) C_ ( ( N ` { y } ) .(+) ( N ` { z } ) ) ) ) ) $=
      ( wcel syl2anc co csn cfv cv wa wrex cplusg wceq csubg clmod lsssubg eqid
      wss wb lsmelval wi adantr simprl lssel lspsncl lspsnid lsmelvali syl22anc
      simprr eleq1a syl lsmcl syl3anc lspsnel6 sylibd reximdvva sylbid lsmless1
      lspsnel5a lsmless2 sstrd sseld sylbird impbid r19.42v rexbii bitri syl6bb
      rexlimdvva ) AKFGDUAZSZKISZKUBHUCBUDZUBHUCZCUDZUBHUCZDUAZUMZUEZCGUFZBFUFZ
      WGWMCGUFZBFUFUEZAWFWPAWFKWHWJJUGUCZUAZUHZCGUFBFUFZWPAFJUIUCZSZGXCSZWFXBUN
      AJUJSZFESZXDPQEFJMUKTZAXFGESZXEPREGJMUKTZBCWSDFGJKWSULZNUOTAXAWNBCFGAWHFS
      ZWJGSZUEZUEZXAKWLSZWNXOWTWLSZXAXPUPXOWIXCSZWKXCSZWHWISZWJWKSZXQXOXFWIESZX
      RAXFXNPUQZXOXFWHISZYBYCXOXGXLYDAXGXNQUQZAXLXMURZEFIJWHLMUSTZEHIJWHLMOUTTZ
      EWIJMUKTXOXFWKESZXSYCXOXFWJISZYIYCXOXIXMYJAXIXNRUQZAXLXMVDZEGIJWJLMUSTZEH
      IJWJLMOUTTZEWKJMUKTZXOXFYDXTYCYGHIJWHLOVATXOXFYJYAYCYMHIJWJLOVATWSDWIWKJW
      HWJXKNVBVCWTWLKVEVFXOEWLHIJKLMOYCXOXFYBYIWLESYCYHYNDEWIWKJMNVGVHVIZVJVKVL
      AWNWFBCFGXOWNXPWFYPXOWLWEKXOWLFWKDUAZWEXOXDXSWIFUMWLYQUMAXDXNXHUQZYOXOEFH
      JWHMOYCYEYFVNDWIFWKJNVMVHXOXDXEWKGUMYQWEUMYRAXEXNXJUQXOEGHJWJMOYCYKYLVNDF
      WKGJNVOVHVPVQVRWDVSWPWGWQUEZBFUFWRWOYSBFWGWMCGVTWAWGWQBFVTWBWC $.
  $}

  ${
    lsmsp.s $e |- S = ( LSubSp ` W ) $.
    lsmsp.n $e |- N = ( LSpan ` W ) $.
    lsmsp.p $e |- .(+) = ( LSSum ` W ) $.
    $( Subspace sum in terms of span.  (Contributed by NM, 6-Feb-2014.)  (Proof
       shortened by Mario Carneiro, 21-Jun-2014.) $)
    lsmsp $p |- ( ( W e. LMod /\ T e. S /\ U e. S )
       -> ( T .(+) U ) = ( N ` ( T u. U ) ) ) $=
      ( clmod wcel w3a co cun cfv wss lssss syl2anc sseldd syl3anc cbs 3ad2ant2
      simp1 3ad2ant3 unssd lspssid unssad unssbd csubg wa wb lsssssubg 3ad2ant1
      eqid simp2 simp3 lspcl lsmlub mpbi2and lsmcl lsmunss lspssp eqssd ) FJKZC
      BKZDBKZLZCDAMZCDNZEOZVGCVJPZDVJPZVHVJPZVGCDVJVGVDVIFUAOZPZVIVJPVDVEVFUCZV
      GCDVNVEVDCVNPVFBCVNFVNUNZGQUBVFVDDVNPVEBDVNFVQGQUDUEZVIEVNFVQHUFRZUGVGCDV
      JVSUHVGCFUIOZKZDVTKZVJVTKVKVLUJVMUKVGBVTCVDVEBVTPVFBFGULUMZVDVEVFUOSZVGBV
      TDWCVDVEVFUPSZVGBVTVJWCVGVDVOVJBKVPVRBVIEVNFVQGHUQRSACDVJFIURTUSVGVDVHBKV
      IVHPZVJVHPVPABCDFGIUTVGWAWBWFWDWEACDFIVARBVIVHEFGHVBTVC $.
  $}

  ${
    lsmsp2.v $e |- V = ( Base ` W ) $.
    lsmsp2.n $e |- N = ( LSpan ` W ) $.
    lsmsp2.p $e |- .(+) = ( LSSum ` W ) $.
    $( Subspace sum of spans of subsets is the span of their union.
       ( ~ spanuni analog.)  (Contributed by NM, 22-Feb-2014.)  (Revised by
       Mario Carneiro, 21-Jun-2014.) $)
    lsmsp2 $p |- ( ( W e. LMod /\ T C_ V /\ U C_ V )
       -> ( ( N ` T ) .(+) ( N ` U ) ) = ( N ` ( T u. U ) ) ) $=
      ( clmod wcel wss w3a cfv co cun clss wceq simp1 lspcl 3adant3 lsmsp lspun
      eqid 3adant2 syl3anc eqtr4d ) FJKZBELZCELZMZBDNZCDNZAOZULUMPDNZBCPDNUKUHU
      LFQNZKZUMUPKZUNUORUHUIUJSUHUIUQUJUPBDEFGUPUDZHTUAUHUJURUIUPCDEFGUSHTUEAUP
      ULUMDFUSHIUBUFBCDEFGHUCUG $.

    lsmssspx.t $e |- ( ph -> T C_ V ) $.
    lsmssspx.u $e |- ( ph -> U C_ V ) $.
    lsmssspx.w $e |- ( ph -> W e. LMod ) $.
    $( Subspace sum (in its extended domain) is a subset of the span of the
       union of its arguments.  (Contributed by NM, 6-Aug-2014.) $)
    lsmssspx $p |- ( ph -> ( T .(+) U ) C_ ( N ` ( T u. U ) ) ) $=
      ( co cfv clmod wss lspssv syl2anc lspssid wcel lsmless1x lsmless2x lsmsp2
      cun syl31anc sstrd wceq syl3anc sseqtrd ) ACDBNZCEOZDEOZBNZCDUEEOZAUKULDB
      NZUNAGPUAZULFQZDFQZCULQZUKUPQMAUQCFQZURMKCEFGHIRSZLAUQVAUTMKCEFGHITSFBCUL
      DGPHJUBUFAUQURUMFQZDUMQZUPUNQMVBAUQUSVCMLDEFGHIRSAUQUSVDMLDEFGHITSFBULDUM
      GPHJUCUFUGAUQVAUSUNUOUHMKLBCDEFGHIJUDUIUJ $.
  $}

  ${
    lsmpr.v $e |- V = ( Base ` W ) $.
    lsmpr.n $e |- N = ( LSpan ` W ) $.
    lsmpr.p $e |- .(+) = ( LSSum ` W ) $.
    lsmpr.w $e |- ( ph -> W e. LMod ) $.
    lsmpr.x $e |- ( ph -> X e. V ) $.
    lsmpr.y $e |- ( ph -> Y e. V ) $.
    $( The span of a pair of vectors equals the sum of the spans of their
       singletons.  (Contributed by NM, 13-Jan-2015.) $)
    lsmpr $p |- ( ph
         -> ( N ` { X , Y } ) = ( ( N ` { X } ) .(+) ( N ` { Y } ) ) ) $=
      ( csn cun cfv wcel wss wceq snssd cpr co clmod lspun syl3anc df-pr fveq2i
      a1i clss eqid lspsncl syl2anc lsmsp 3eqtr4d ) AFNZGNZOZCPZUOCPZUPCPZOCPZF
      GUAZCPZUSUTBUBZAEUCQZUODRUPDRURVASKAFDLTAGDMTUOUPCDEHIUDUEVCURSAVBUQCFGUF
      UGUHAVEUSEUIPZQZUTVFQZVDVASKAVEFDQVGKLVFCDEFHVFUJZIUKULAVEGDQVHKMVFCDEGHV
      IIUKULBVFUSUTCEVIIJUMUEUN $.
  $}

  ${
    lsppreli.v $e |- V = ( Base ` W ) $.
    lsppreli.p $e |- .+ = ( +g ` W ) $.
    lsppreli.t $e |- .x. = ( .s ` W ) $.
    lsppreli.f $e |- F = ( Scalar ` W ) $.
    lsppreli.k $e |- K = ( Base ` F ) $.
    lsppreli.n $e |- N = ( LSpan ` W ) $.
    lsppreli.w $e |- ( ph -> W e. LMod ) $.
    lsppreli.a $e |- ( ph -> A e. K ) $.
    lsppreli.b $e |- ( ph -> B e. K ) $.
    lsppreli.x $e |- ( ph -> X e. V ) $.
    lsppreli.y $e |- ( ph -> Y e. V ) $.
    $( A vector expressed as a sum belongs to the span of its components.
       (Contributed by NM, 9-Apr-2015.) $)
    lsppreli $p |- ( ph ->
      ( ( A .x. X ) .+ ( B .x. Y ) ) e. ( N ` { X , Y } ) ) $=
      ( csn cfv clsm csubg wcel clmod lspsnsubg syl2anc lspsneli eqid lsmelvali
      co cpr syl22anc lsmpr eleqtrrd ) ABKEUOZCLEUOZDUOZKUDHUEZLUDHUEZJUFUEZUOZ
      KLUPHUEAVCJUGUEZUHZVDVGUHZUTVCUHVAVDUHVBVFUHAJUIUHZKIUHVHSUBHIJKMRUJUKAVJ
      LIUHVISUCHIJLMRUJUKABEFGHIJKMOPQRSTUBULACEFGHIJLMOPQRSUAUCULDVEVCVDJUTVAN
      VEUMZUNUQAVEHIJKLMRVKSUBUCURUS $.
  $}

  ${
    lsmelpr.v $e |- V = ( Base ` W ) $.
    lsmelpr.n $e |- N = ( LSpan ` W ) $.
    lsmelpr.p $e |- .(+) = ( LSSum ` W ) $.
    lsmelpr.w $e |- ( ph -> W e. LMod ) $.
    lsmelpr.x $e |- ( ph -> X e. V ) $.
    lsmelpr.y $e |- ( ph -> Y e. V ) $.
    lsmelpr.z $e |- ( ph -> Z e. V ) $.
    $( Two ways to say that a vector belongs to the span of a pair of vectors.
       (Contributed by NM, 14-Jan-2015.) $)
    lsmelpr $p |- ( ph -> ( X e. ( N ` { Y , Z } )
           <-> ( N ` { X } ) C_ ( ( N ` { Y } ) .(+) ( N ` { Z } ) ) ) ) $=
      ( cpr cfv wcel csn wss co clss eqid lspprcl lspsnel5 lsmpr sseq2d bitrd )
      AFGHPCQZRFSCQZUITUJGSCQHSCQBUAZTAEUBQZUICDEFIULUCZJLAULCDEGHIUMJLNOUDMUEA
      UIUKUJABCDEGHIJKLNOUFUGUH $.
  $}

  ${
    lsppr0.v $e |- V = ( Base ` W ) $.
    lsppr0.z $e |- .0. = ( 0g ` W ) $.
    lsppr0.n $e |- N = ( LSpan ` W ) $.
    lsppr0.w $e |- ( ph -> W e. LMod ) $.
    lsppr0.x $e |- ( ph -> X e. V ) $.
    $( The span of a vector paired with zero equals the span of the singleton
       of the vector.  (Contributed by NM, 29-Aug-2014.) $)
    lsppr0 $p |- ( ph -> ( N ` { X , .0. } ) = ( N ` { X } ) ) $=
      ( cpr cfv csn clsm co eqid wcel syl wceq lmod0vcl lspsn0 oveq2d lspsnsubg
      clmod lsmpr csubg syl2anc lsm01 3eqtrd ) AEFLBMENBMZFNZBMZDOMZPUKULUNPZUK
      AUNBCDEFGIUNQZJKADUERZFCRJCDFGHUASUFAUMULUKUNAUQUMULTJBDFHIUBSUCAUKDUGMRZ
      UOUKTAUQECRURJKBCDEGIUDUHUNDUKFHUPUISUJ $.
  $}

  ${
    $d k l .+ $.  $d k l F $.  $d k l K $.  $d k l v N $.  $d k l .x. $.
    $d k l V $.  $d k l v W $.  $d k l v X $.  $d k l v Y $.  $d k l v ph $.
    lsppr.v $e |- V = ( Base ` W ) $.
    lsppr.a $e |- .+ = ( +g ` W ) $.
    lsppr.f $e |- F = ( Scalar ` W ) $.
    lsppr.k $e |- K = ( Base ` F ) $.
    lsppr.t $e |- .x. = ( .s ` W ) $.
    lsppr.n $e |- N = ( LSpan ` W ) $.
    lsppr.w $e |- ( ph -> W e. LMod ) $.
    lsppr.x $e |- ( ph -> X e. V ) $.
    lsppr.y $e |- ( ph -> Y e. V ) $.
    $( Span of a pair of vectors.  (Contributed by NM, 22-Aug-2014.) $)
    lsppr $p |- ( ph -> ( N ` { X , Y } )
          = { v | E. k e. K E. l e. K v = ( ( k .x. X ) .+ ( l .x. Y ) ) } ) $=
      ( cpr cfv csn cun cv wceq wrex cab df-pr fveq2i clsm clmod wcel wss snssd
      co lspun syl3anc clss eqid lspsncl syl2anc lsmspsn abbi2dv 3eqtr2d syl5eq
      lsmsp ) AKLUCZHUDKUEZLUEZUFZHUDZBUGZEUGKDURMUGLDURCURUHMGUIEGUIZBUJZVJVMH
      KLUKULAVNVKHUDZVLHUDZUFHUDZVRVSJUMUDZURZVQAJUNUOZVKIUPVLIUPVNVTUHTAKIUAUQ
      ALIUBUQVKVLHIJNSUSUTAWCVRJVAUDZUOZVSWDUOZWBVTUHTAWCKIUOWETUAWDHIJKNWDVBZS
      VCVDAWCLIUOWFTUBWDHIJLNWGSVCVDWAWDVRVSHJWGSWAVBZVIUTAVPBWBACWADVOEMFGHIJK
      LNOPQRWHSTUAUBVEVFVGVH $.

    $d k l v Z $.  $d v .+ $.  $d v .x. $.  $d v K $.
    $( Member of the span of a pair of vectors.  (Contributed by NM,
       10-Apr-2015.) $)
    lspprel $p |- ( ph -> ( Z e. ( N ` { X , Y } )
            <-> E. k e. K E. l e. K Z = ( ( k .x. X ) .+ ( l .x. Y ) ) ) ) $=
      ( vv cpr cfv wcel cv co wceq wrex cab lsppr eleq2d cvv syl6eqel rexlimivw
      id ovex eqeq1 2rexbidv elab3 syl6bb ) ALJKUDGUEZUFLUCUGZDUGJCUHZMUGKCUHZB
      UHZUIZMFUJDFUJZUCUKZUFLVGUIZMFUJZDFUJZAVCVJLAUCBCDEFGHIJKMNOPQRSTUAUBULUM
      VIVMUCLVLLUNUFZDFVKVNMFVKLVGUNVKUQVEVFBURUOUPUPVDLUIVHVKDMFFVDLVGUSUTVAVB
      $.
  $}

  ${
    lspprabs.v $e |- V = ( Base ` W ) $.
    lspprabs.p $e |- .+ = ( +g ` W ) $.
    lspprabs.n $e |- N = ( LSpan ` W ) $.
    lspprabs.w $e |- ( ph -> W e. LMod ) $.
    lspprabs.x $e |- ( ph -> X e. V ) $.
    lspprabs.y $e |- ( ph -> Y e. V ) $.
    $( Absorption of vector sum into span of pair.  (Contributed by NM,
       27-Apr-2015.) $)
    lspprabs $p |- ( ph -> ( N ` { X , ( X .+ Y ) } ) = ( N ` { X , Y } ) ) $=
      ( cfv co wss wcel syl2anc sseldd syl3anc csn clsm cpr clss eqid lsssssubg
      csubg clmod syl lspsncl lsmub1 lsmcl lspsnid lsmelvali syl22anc lspsnel5a
      wa wb lmodvacl lsmlub mpbi2and csg lsmelvalmi cabl wceq lmodabl ablpncan2
      lsmcom 3eltr3d eqssd lsmpr 3eqtr4d ) AFUACNZFGBOZUACNZEUBNZOZVMGUACNZVPOZ
      FVNUCCNFGUCCNAVQVSAVMVSPZVOVSPZVQVSPZAVMEUGNZQZVRWCQZVTAEUDNZWCVMAEUHQZWF
      WCPKWFEWFUEZUFUIZAWGFDQZVMWFQZKLWFCDEFHWHJUJRZSZAWFWCVRWIAWGGDQZVRWFQZKMW
      FCDEGHWHJUJRZSZVPVMVREVPUEZUKRAWFVSCEVNWHJKAWGWKWOVSWFQKWLWPVPWFVMVREWHWR
      ULTZAWDWEFVMQZGVRQZVNVSQWMWQAWGWJWTKLCDEFHJUMRZAWGWNXAKMCDEGHJUMRBVPVMVRE
      FGIWRUNUOUPAWDVOWCQZVSWCQVTWAUQWBURWMAWFWCVOWIAWGVNDQZVOWFQZKAWGWJWNXDKLM
      BDEFGHIUSTZWFCDEVNHWHJUJRZSZAWFWCVSWIWSSVPVMVOVSEWRUTTVAAVMVQPZVRVQPZVSVQ
      PZAWDXCXIWMXHVPVMVOEWRUKRAWFVQCEGWHJKAWGWKXEVQWFQKWLXGVPWFVMVOEWHWRULTZAV
      NFEVBNZOZVOVMVPOZGVQAVPVOVMEXMVNFXMUEZWRXHWMAWGXDVNVOQKXFCDEVNHJUMRXBVCAE
      VDQZWJWNXNGVEAWGXQKEVFUIZLMDBEXMFGHIXPVGTAXQXCWDXOVQVEXRXHWMVPVOVMEWRVHTV
      IUPAWDWEVQWCQXIXJUQXKURWMWQAWFWCVQWIXLSVPVMVRVQEWRUTTVAVJAVPCDEFVNHJWRKLX
      FVKAVPCDEFGHJWRKLMVKVL $.
  $}

  ${
    lspvadd.v $e |- V = ( Base ` W ) $.
    lspvadd.a $e |- .+ = ( +g ` W ) $.
    lspvadd.n $e |- N = ( LSpan ` W ) $.
    $( The span of a vector sum is included in the span of its arguments.
       (Contributed by NM, 22-Feb-2014.)  (Proof shortened by Mario Carneiro,
       21-Jun-2014.) $)
    lspvadd $p |- ( ( W e. LMod /\ X e. V /\ Y e. V )
       -> ( N ` { ( X .+ Y ) } ) C_ ( N ` { X , Y } ) ) $=
      ( clmod wcel w3a clss cfv cpr co eqid wss 3adant1 syl2anc simp1 wa mpbird
      prssi lspcl lspssid wb prssg lssvacl syl21anc lspsnel5a ) DJKZECKZFCKZLZD
      MNZEFOZBNZBDEFAPZUPQZIULUMUNUAZUOULUQCRZURUPKZVAUMUNVBULEFCUDSZUPUQBCDGUT
      IUETZUOULVCEURKFURKUBZUSURKVAVEUOVFUQURRZUOULVBVGVAVDUQBCDGIUFTUMUNVFVGUG
      ULEFURCCUHSUCAUPURDEFHUTUIUJUK $.
  $}

  ${
    lspsntri.v $e |- V = ( Base ` W ) $.
    lspsntri.a $e |- .+ = ( +g ` W ) $.
    lspsntri.n $e |- N = ( LSpan ` W ) $.
    lspsntri.p $e |- .(+) = ( LSSum ` W ) $.
    $( Triangle-type inequality for span of a singleton.  (Contributed by NM,
       24-Feb-2014.)  (Revised by Mario Carneiro, 21-Jun-2014.) $)
    lspsntri $p |- ( ( W e. LMod /\ X e. V /\ Y e. V )
       -> ( N ` { ( X .+ Y ) } ) C_ ( ( N ` { X } ) .(+) ( N ` { Y } ) ) ) $=
      ( clmod wcel w3a co csn cfv cun wss snssd cpr lspvadd df-pr syl6sseq wceq
      fveq2i simp1 simp2 simp3 lsmsp2 syl3anc sseqtr4d ) ELMZFDMZGDMZNZFGAOPCQZ
      FPZGPZRZCQZURCQUSCQBOZUPUQFGUAZCQVAACDEFGHIJUBVCUTCFGUCUFUDUPUMURDSUSDSVB
      VAUEUMUNUOUGUPFDUMUNUOUHTUPGDUMUNUOUITBURUSCDEHJKUJUKUL $.
  $}

  ${
    lspsntrim.v $e |- V = ( Base ` W ) $.
    lspsntrim.s $e |- .- = ( -g ` W ) $.
    lspsntrim.p $e |- .(+) = ( LSSum ` W ) $.
    lspsntrim.n $e |- N = ( LSpan ` W ) $.
    $( Triangle-type inequality for span of a singleton of vector difference.
       (Contributed by NM, 25-Apr-2014.)  (Revised by Mario Carneiro,
       21-Jun-2014.) $)
    lspsntrim $p |- ( ( W e. LMod /\ X e. V /\ Y e. V )
        -> ( N ` { ( X .- Y ) } ) C_ ( ( N ` { X } ) .(+) ( N ` { Y } ) ) ) $=
      ( clmod wcel w3a cfv co csn eqid 3adant2 wceq cminusg cplusg wss lspsntri
      lmodvnegcl syld3an3 grpsubval sneqd fveq2d 3adant1 lspsnneg eqcomd oveq2d
      wa 3sstr4d ) ELMZFDMZGDMZNZFGEUAOZOZEUBOZPZQZCOZFQCOZVAQCOZAPZFGBPZQZCOZV
      FGQCOZAPUPUQURVADMZVEVHUCUPURVMUQUTDEGHUTRZUESVBACDEFVAHVBRZKJUDUFUQURVKV
      ETUPUQURUNZVJVDCVPVIVCDVBEUTBFGHVOVNIUGUHUIUJUSVLVGVFAUSVGVLUPURVGVLTUQUT
      CDEGHVNKUKSULUMUO $.
  $}

  ${
    $d u v x y B $.  $d u v x y z K $.  $d u v x y z L $.  $d u v x y z ph $.
    $d u v x y F $.  $d u v x y G $.  $d v x y P $.  $d x y W $.
    lbspropd.b1 $e |- ( ph -> B = ( Base ` K ) ) $.
    lbspropd.b2 $e |- ( ph -> B = ( Base ` L ) ) $.
    lbspropd.w $e |- ( ph -> B C_ W ) $.
    lbspropd.p $e |- ( ( ph /\ ( x e. W /\ y e. W ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    lbspropd.s1 $e |- ( ( ph /\ ( x e. P /\ y e. B ) ) ->
      ( x ( .s ` K ) y ) e. W ) $.
    lbspropd.s2 $e |- ( ( ph /\ ( x e. P /\ y e. B ) ) ->
      ( x ( .s ` K ) y ) = ( x ( .s ` L ) y ) ) $.
    lbspropd.f $e |- F = ( Scalar ` K ) $.
    lbspropd.g $e |- G = ( Scalar ` L ) $.
    lbspropd.p1 $e |- ( ph -> P = ( Base ` F ) ) $.
    lbspropd.p2 $e |- ( ph -> P = ( Base ` G ) ) $.
    lbspropd.a $e |- ( ( ph /\ ( x e. P /\ y e. P ) ) ->
      ( x ( +g ` F ) y ) = ( x ( +g ` G ) y ) ) $.
    lbspropd.v1 $e |- ( ph -> K e. _V ) $.
    lbspropd.v2 $e |- ( ph -> L e. _V ) $.
    $( If two structures have the same components (properties), they have the
       same set of bases.  (Contributed by Mario Carneiro, 9-Feb-2015.)
       (Revised by Mario Carneiro, 14-Jun-2015.) $)
    lbspropd $p |- ( ph -> ( LBasis ` K ) = ( LBasis ` L ) ) $=
      ( vz vv vu clbs cfv cv cbs wss clspn wceq cvsca co csn cdif wcel c0g wral
      wn w3a simplll eldifi adantl simpr sselda adantr oveqrspc2v syl12anc csca
      wa fveq2i syl6eq lsppropd fveq1d eleq12d notbid ralbidva ad2antrr difeq1d
      syl raleqdv grpidpropd sneqd difeq12d 3bitr3d anbi2d sseq2d anbi1d eqtr3d
      pm5.32da eqeq12d anbi12d 3anass 3bitr4g cvv wb eqid islbs 3bitr4d eqrdv )
      AUDHUGUHZIUGUHZAUDUIZHUJUHZUKZXEHULUHZUHZXFUMZUEUIZUFUIZHUNUHZUOZXEXLUPUQ
      ZXHUHZURZVAZUEFUJUHZFUSUHZUPZUQZUTZUFXEUTZVBZXEIUJUHZUKZXEIULUHZUHZYFUMZX
      KXLIUNUHZUOZXOYHUHZURZVAZUEGUJUHZGUSUHZUPZUQZUTZUFXEUTZVBZXEXCURZXEXDURZA
      XGXJYDVLZVLZYGYJUUAVLZVLZYEUUBAXEDUKZUUEVLUUIXJUUAVLZVLUUFUUHAUUIUUEUUJAU
      UIVLZYDUUAXJUUKYCYTUFXEUUKXLXEURZVLZXRUEEYAUQZUTYOUEUUNUTYCYTUUMXRYOUEUUN
      UUMXKUUNURZVLZXQYNUUPXNYLXPYMUUPAXKEURZXLDURZXNYLUMAUUIUULUUOVCZUUOUUQUUM
      XKEYAVDVEUUMUURUUOUUKXEDXLAUUIVFVGVHABCEDXMYKXKXLPVIVJUUPXOXHYHUUPAXHYHUM
      UUSABCDEHIJKLMNOPAEXSHVKUHZUJUHSFUUTUJQVMVNAEYPIVKUHZUJUHTGUVAUJRVMVNUBUC
      VOZWBVPVQVRVSUUMXRUEUUNYBUUMEXSYAAEXSUMUUIUULSVTWAWCUUMYOUEUUNYSUUMEYPYAY
      RAEYPUMUUIUULTVTUUMXTYQAXTYQUMUUIUULABCEFGSTUAWDVTWEWFWCWGVSWHWLAUUIXGUUE
      ADXFXEKWIWJAUUIYGUUJUUGADYFXELWIAXJYJUUAAXIYIXFYFAXEXHYHUVBVPADXFYFKLWKWM
      WJWNWGXGXJYDWOYGYJUUAWOWPAHWQURUUCYEWRUBUFUEXEXMFXCXSXHXFHWQXTXFWSQXMWSXS
      WSXCWSXHWSXTWSWTWBAIWQURUUDUUBWRUCUFUEXEYKGXDYPYHYFIWQYQYFWSRYKWSYPWSXDWS
      YHWSYQWSWTWBXAXB $.
  $}

  ${
    $d x y .(+) $.  $d x y P $.  $d x y ph $.  $d x y T $.  $d x y U $.
    $d x y W $.
    pj1lmhm.l $e |- L = ( LSubSp ` W ) $.
    pj1lmhm.s $e |- .(+) = ( LSSum ` W ) $.
    pj1lmhm.z $e |- .0. = ( 0g ` W ) $.
    pj1lmhm.p $e |- P = ( proj1 ` W ) $.
    pj1lmhm.1 $e |- ( ph -> W e. LMod ) $.
    pj1lmhm.2 $e |- ( ph -> T e. L ) $.
    pj1lmhm.3 $e |- ( ph -> U e. L ) $.
    pj1lmhm.4 $e |- ( ph -> ( T i^i U ) = { .0. } ) $.
    $( The left projection function is a linear operator.  (Contributed by
       Mario Carneiro, 15-Oct-2015.)  (Revised by Mario Carneiro,
       21-Apr-2016.) $)
    pj1lmhm $p |- ( ph -> ( T P U ) e. ( ( W |`s ( T .(+) U ) ) LMHom W ) ) $=
      ( co wcel cfv wceq vx vy cress clmhm cghm csca cv cvsca wral cplusg ccntz
      cbs eqid csubg clmod wss lsssssubg syl sseldd lmodabl ablcntzd pj1ghm a1i
      cabl wa pj1id adantrl oveq2d adantr simprl lssss cin pj1f simprr ffvelrnd
      csn pj2f lmodvsdi syl13anc eqtrd lsmcl syl3anc lssvscl pj1eq mpbid simpld
      syl22anc ralrimivva subgbas raleqdv ralbidv w3a lsslmod syl2anc cvv ax-mp
      wb ovex resssca ressvsca islmhm3 mpbir3and ) ADEBQZGDECQZUCQZGUDQRZXCXEGU
      EQRZGUFSZXHTZUAUGZUBUGZGUHSZQZXCSXJXKXCSZXLQZTZUBXEULSZUIZUAXHULSZUIZABGU
      JSZCDEGHGUKSZYAUMZJKYBUMZAFGUNSZDAGUORZFYEUPMFGIUQURZNUSZAFYEEYGOUSZPADEG
      YBYDAYFGVDRMGUTURYHYIVAZLVBXIAXHUMZVCAXPUBXDUIZUAXSUIXTAXPUAUBXSXDAXJXSRZ
      XKXDRZVEZVEZXPXMEDBQZSXJXKYQSZXLQZTZYPXMXOYSYAQZTXPYTVEYPXMXJXNYRYAQZXLQZ
      UUAYPXKUUBXJXLAYNXKUUBTYMABYACDEGXKHYBYCJKYDYHYIPYJLVFVGVHYPYFYMXNGULSZRY
      RUUDRUUCUUATAYFYOMVIZAYMYNVJZYPDUUDXNYPDFRZDUUDUPAUUGYONVIZFDUUDGUUDUMZIV
      KURYPXDDXKXCYPBYACDEGHYBYCJKYDADYERYOYHVIZAEYERYOYIVIZADEVLHVPTYOPVIZADEY
      BSUPYOYJVIZLVMAYMYNVNZVOZUSYPEUUDYRYPEFRZEUUDUPAUUPYOOVIZFEUUDGUUIIVKURYP
      XDEXKYQYPBYACDEGHYBYCJKYDUUJUUKUULUUMLVQUUNVOZUSYAXJXLXHXSUUDGXNYRUUIYCYK
      XLUMZXSUMZVRVSVTYPXOYSBYACDEGXMHYBYCJKYDUUJUUKUULUUMLYPYFXDFRZYMYNXMXDRUU
      EAUVAYOAYFUUGUUPUVAMNOCFDEGIJWAWBZVIUUFUUNXSFXLXDXHGXJXKYKUUSUUTIWCWGYPYF
      UUGYMXNDRXODRUUEUUHUUFUUOXSFXLDXHGXJXNYKUUSUUTIWCWGYPYFUUPYMYRERYSERUUEUU
      QUUFUURXSFXLEXHGXJYRYKUUSUUTIWCWGWDWEWFWHAYLXRUAXSAXPUBXDXQAXDYERXDXQTAFY
      EXDYGUVBUSXDGXEXEUMZWIURWJWKWEAXEUORZYFXFXGXIXTWLWQAYFUVAUVDMUVBFXDGXEUVC
      IWMWNMUAUBXSXEGXLXLXQXCXHXHXDWORZXHXEUFSTDECWRZXDXHGXEWOUVCYKWSWPYKUUTXQU
      MUVEXLXEUHSTUVFXDXLGXEWOUVCUUSWTWPUUSXAWNXB $.

    $( The left projection function is a linear operator.  (Contributed by
       Mario Carneiro, 15-Oct-2015.)  (Revised by Mario Carneiro,
       21-Apr-2016.) $)
    pj1lmhm2 $p |- ( ph ->
      ( T P U ) e. ( ( W |`s ( T .(+) U ) ) LMHom ( W |`s T ) ) ) $=
      ( co wcel cfv eqid cress clmhm pj1lmhm clmod crn wb wf cplusg ccntz csubg
      wss lsssssubg syl sseldd cabl lmodabl ablcntzd pj1f frn reslmhm2b syl3anc
      mpbid ) ADEBQZGDECQZUAQZGUBQRZVCVEGDUAQZUBQRZABCDEFGHIJKLMNOPUCAGUDRZDFRV
      CUEDUKZVFVHUFMNAVDDVCUGVJABGUHSZCDEGHGUISZVKTJKVLTZAFGUJSZDAVIFVNUKMFGIUL
      UMZNUNZAFVNEVOOUNZPADEGVLVMAVIGUORMGUPUMVPVQUQLURVDDVCUSUMVEGVGVCFDVGTIUT
      VAVB $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Vector spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c LVec $.

  $( Extend class notation with class of all left vector spaces. $)
  clvec $a class LVec $.

  $( Define the class of all left vector spaces.  A left vector space over a
     division ring is an Abelian group (vectors) together with a division ring
     (scalars) and a left scalar product connecting them.  Some authors call
     this a "left module over a division ring", reserving "vector space" for
     those where the division ring multiplication is commutative i.e. a field.
     (Contributed by NM, 11-Nov-2013.) $)
  df-lvec $a |- LVec = { f e. LMod | ( Scalar ` f ) e. DivRing } $.

  ${
    $d f F $.  $d f W $.
    islvec.1 $e |- F = ( Scalar ` W ) $.
    $( The predicate "is a left vector space".  (Contributed by NM,
       11-Nov-2013.) $)
    islvec $p |- ( W e. LVec <-> ( W e. LMod /\ F e. DivRing ) ) $=
      ( vf cv csca cfv cdr wcel clmod clvec fveq2 syl6eqr eleq1d df-lvec elrab2
      wceq ) DEZFGZHIAHIDBJKRBQZSAHTSBFGARBFLCMNDOP $.

    $( The set of scalars of a left vector space is a division ring.
       (Contributed by NM, 17-Apr-2014.) $)
    lvecdrng $p |- ( W e. LVec -> F e. DivRing ) $=
      ( clvec wcel clmod cdr islvec simprbi ) BDEBFEAGEABCHI $.
  $}

  $( A left vector space is a left module.  (Contributed by NM, 9-Dec-2013.) $)
  lveclmod $p |- ( W e. LVec -> W e. LMod ) $=
    ( clvec wcel clmod csca cfv cdr eqid islvec simplbi ) ABCADCAEFZGCKAKHIJ $.

  ${
    lsslvec.x $e |- X = ( W |`s U ) $.
    lsslvec.s $e |- S = ( LSubSp ` W ) $.
    $( A vector subspace is a vector space.  (Contributed by NM,
       14-Mar-2015.) $)
    lsslvec $p |- ( ( W e. LVec /\ U e. S ) -> X e. LVec ) $=
      ( clvec wcel wa clmod csca cfv lveclmod lsslmod sylan wceq resssca adantl
      cdr eqid lvecdrng adantr eqeltrrd islvec sylanbrc ) CGHZBAHZIZDJHZDKLZSHD
      GHUFCJHUGUICMABCDEFNOUHCKLZUJSUGUKUJPUFBUKCDAEUKTZQRUFUKSHUGUKCULUAUBUCUJ
      DUJTUDUE $.
  $}

  ${
    lvecmul0or.v $e |- V = ( Base ` W ) $.
    lvecmul0or.s $e |- .x. = ( .s ` W ) $.
    lvecmul0or.f $e |- F = ( Scalar ` W ) $.
    lvecmul0or.k $e |- K = ( Base ` F ) $.
    lvecmul0or.o $e |- O = ( 0g ` F ) $.
    lvecmul0or.z $e |- .0. = ( 0g ` W ) $.
    lvecmul0or.w $e |- ( ph -> W e. LVec ) $.
    lvecmul0or.a $e |- ( ph -> A e. K ) $.
    lvecmul0or.x $e |- ( ph -> X e. V ) $.
    $( If a scalar product is zero, one of its factors must be zero.
       ( ~ hvmul0or analog.)  (Contributed by NM, 2-Jul-2014.) $)
    lvecvs0or $p |- ( ph -> ( ( A .x. X ) = .0. <-> ( A = O \/ X = .0. ) ) ) $=
      ( wceq co wo wa wn wne df-ne cinvr cfv oveq2 ad2antlr cmulr cur cdr clvec
      wcel adantr lvecdrng simpr eqid drnginvrl syl3anc oveq1d clmod drnginvrcl
      syl lveclmod lmodvsass lmodvs1 syl2anc 3eqtr3d adantlr lmodvs0 ex syl5bir
      syl13anc orrd lmod0vs oveq1 eqeq1d syl5ibrcom jaod impbid ) ABICUAZJTZBFT
      ZIJTZUBZAWDWGAWDUCZWEWFWEUDBFUEZWHWFBFUFWHWIWFWHWIUCZBDUGUHZUHZWCCUAZWLJC
      UAZIJWDWMWNTAWIWCJWLCUIUJAWIWMITWDAWIUCZWLBDUKUHZUAZICUAZDULUHZICUAZWMIWO
      WQWSICWODUMUOZBEUOZWIWQWSTWOHUNUOZXAAXCWIQUPDHMUQVEZAXBWIRUPZAWIURZEDWPWS
      WKBFNOWPUSZWSUSZWKUSZUTVAVBWOHVCUOZWLEUOZXBIGUOZWRWMTAXJWIAXCXJQHVFVEZUPW
      OXAXBWIXKXDXEXFEDWKBFNOXIVDVAZXEAXLWISUPWLBCWPDEGHIKMLNXGVGVOAWTITZWIAXJX
      LXOXMSCWSDGHIKMLXHVHVIUPVJVKWJXJXKWNJTWHXJWIAXJWDXMUPUPAWIXKWDXNVKCDEHWLJ
      MLNPVLVIVJVMVNVPVMAWEWDWFAWDWEFICUAZJTZAXJXLXQXMSCDFGHIJKMLOPVQVIWEWCXPJB
      FICVRVSVTAWDWFBJCUAZJTZAXJXBXSXMRCDEHBJMLNPVLVIWFWCXRJIJBCUIVSVTWAWB $.

    $( A scalar product is nonzero iff both of its factors are nonzero.
       (Contributed by NM, 3-Jan-2015.) $)
    lvecvsn0 $p |- ( ph ->
      ( ( A .x. X ) =/= .0. <-> ( A =/= O /\ X =/= .0. ) ) ) $=
      ( wne co wceq wo wn wa lvecvs0or necon3abid neanior syl6bbr ) ABICUAZJTBF
      UBIJUBUCZUDBFTIJTUEAUKUJJABCDEFGHIJKLMNOPQRSUFUGBFIJUHUI $.
  $}

  ${
    lssvs0or.v $e |- V = ( Base ` W ) $.
    lssvs0or.t $e |- .x. = ( .s ` W ) $.
    lssvs0or.f $e |- F = ( Scalar ` W ) $.
    lssvs0or.k $e |- K = ( Base ` F ) $.
    lssvs0or.o $e |- .0. = ( 0g ` F ) $.
    lssvs0or.s $e |- S = ( LSubSp ` W ) $.
    lssvs0or.w $e |- ( ph -> W e. LVec ) $.
    lssvs0or.u $e |- ( ph -> U e. S ) $.
    lssvs0or.x $e |- ( ph -> X e. V ) $.
    lssvs0or.a $e |- ( ph -> A e. K ) $.
    $( If a scalar product belongs to a subspace, either the scalar component
       is zero or the vector component also belongs to the subspace.
       (Contributed by NM, 5-Apr-2015.) $)
    lssvs0or $p |- ( ph -> ( ( A .x. X ) e. U <-> ( A = .0. \/ X e. U ) ) ) $=
      ( co wcel wceq wo wne cinvr cfv cmulr cur cdr clvec lvecdrng syl ad2antrr
      wa simpr eqid drnginvrl syl3anc oveq1d clmod lveclmod drnginvrcl syl13anc
      lmodvsass lmodvs1 syl2anc 3eqtr3rd lssvscl syl22anc eqeltrd necon1bd orrd
      simplr ex orcomd oveq1 adantl c0g lmod0vs lss0cl adantr jaodan impbida )
      ABJDUBZEUCZBKUDZJEUCZUEAWGUPZWIWHWJWIWHWJWIBKWJBKUFZWIWJWKUPZJBFUGUHZUHZW
      FDUBZEWLWNBFUIUHZUBZJDUBZFUJUHZJDUBZWOJWLWQWSJDWLFUKUCZBGUCZWKWQWSUDAXAWG
      WKAIULUCZXARFINUMUNUOZAXBWGWKUAUOZWJWKUQZGFWPWSWMBKOPWPURZWSURZWMURZUSUTV
      AWLIVBUCZWNGUCZXBJHUCZWRWOUDAXJWGWKAXCXJRIVCUNZUOZWLXAXBWKXKXDXEXFGFWMBKO
      PXIVDUTZXEAXLWGWKTUOZWNBDWPFGHIJLNMOXGVFVEWLXJXLWTJUDXNXPDWSFHIJLNMXHVGVH
      VIWLXJECUCZXKWGWOEUCXNAXQWGWKSUOXOAWGWKVOGCDEFIWNWFNMOQVJVKVLVPVMVNVQAWHW
      GWIAWHUPWFKJDUBZEWHWFXRUDABKJDVRVSAXREUCWHAXRIVTUHZEAXJXLXRXSUDXMTDFKHIJX
      SLNMPXSURZWAVHAXJXQXSEUCXMSCEIXSXTQWBVHVLWCVLAWIUPXJXQXBWIWGAXJWIXMWCAXQW
      ISWCAXBWIUAWCAWIUQGCDEFIBJNMOQVJVKWDWE $.
  $}

  ${
    lvecmulcan.v $e |- V = ( Base ` W ) $.
    lvecmulcan.s $e |- .x. = ( .s ` W ) $.
    lvecmulcan.f $e |- F = ( Scalar ` W ) $.
    lvecmulcan.k $e |- K = ( Base ` F ) $.
    lvecmulcan.o $e |- .0. = ( 0g ` F ) $.
    lvecmulcan.w $e |- ( ph -> W e. LVec ) $.
    lvecmulcan.a $e |- ( ph -> A e. K ) $.
    lvecmulcan.x $e |- ( ph -> X e. V ) $.
    lvecmulcan.y $e |- ( ph -> Y e. V ) $.
    lvecmulcan.n $e |- ( ph -> A =/= .0. ) $.
    $( Cancellation law for scalar multiplication.  ( ~ hvmulcan analog.)
       (Contributed by NM, 2-Jul-2014.) $)
    lvecvscan $p |- ( ph -> ( ( A .x. X ) = ( A .x. Y ) <-> X = Y ) ) $=
      ( csg cfv co c0g wceq wo wne wb wn df-ne biorf sylbi syl clmod wcel clvec
      lveclmod lmodsubeq0 syl3anc lmodsubdi eqeq1d lmodvsubcl lvecvs0or 3bitr3d
      eqid lmodvscl 3bitr3rd ) AHIGUAUBZUCZGUDUBZUEZBJUEZVKUFZHIUEZBHCUCZBICUCZ
      UEZABJUGZVKVMUHZTVRVLUIVSBJUJVLVKUKULUMAGUNUOZHFUOZIFUOZVKVNUHAGUPUOVTPGU
      QUMZRSHIVHFGVJKVJVEZVHVEZURUSABVICUCZVJUEVOVPVHUCZVJUEZVMVQAWFWGVJABCDEVH
      FGHIKLMNWEWCQRSUTVAABCDEJFGVIVJKLMNOWDPQAVTWAWBVIFUOWCRSVHFGHIKWEVBUSVCAV
      TVOFUOZVPFUOZWHVQUHWCAVTBEUOZWAWIWCQRBCDEFGHKMLNVFUSAVTWKWBWJWCQSBCDEFGIK
      MLNVFUSVOVPVHFGVJKWDWEURUSVDVG $.
  $}

  ${
    lvecmulcan2.v $e |- V = ( Base ` W ) $.
    lvecmulcan2.s $e |- .x. = ( .s ` W ) $.
    lvecmulcan2.f $e |- F = ( Scalar ` W ) $.
    lvecmulcan2.k $e |- K = ( Base ` F ) $.
    lvecmulcan2.o $e |- .0. = ( 0g ` W ) $.
    lvecmulcan2.w $e |- ( ph -> W e. LVec ) $.
    lvecmulcan2.a $e |- ( ph -> A e. K ) $.
    lvecmulcan2.b $e |- ( ph -> B e. K ) $.
    lvecmulcan2.x $e |- ( ph -> X e. V ) $.
    lvecmulcan2.n $e |- ( ph -> X =/= .0. ) $.
    $( Cancellation law for scalar multiplication.  ( ~ hvmulcan2 analog.)
       (Contributed by NM, 2-Jul-2014.) $)
    lvecvscan2 $p |- ( ph -> ( ( A .x. X ) = ( B .x. X ) <-> A = B ) ) $=
      ( co csg cfv wceq c0g wo wn neneqd biorf orcom syl6bb syl eqid cgrp clmod
      wcel clvec lveclmod lmodfgrp grpsubcl syl3anc lvecvs0or lmodsubdir eqeq1d
      wb 3bitr2rd lmodvscl lmodsubeq0 grpsubeq0 3bitr3d ) ABIDUAZCIDUAZHUBUCZUA
      ZJUDZBCEUBUCZUAZEUEUCZUDZVKVLUDZBCUDZAVSVSIJUDZUFZVQIDUAZJUDVOAWBUGZVSWCV
      EAIJTUHWEVSWBVSUFWCWBVSUIWBVSUJUKULAVQDEFVRGHIJKLMNVRUMZOPAEUNUPZBFUPZCFU
      PZVQFUPAHUOUPZWGAHUQUPWJPHURULZEHMUSULZQRFEVPBCNVPUMZUTVASVBAWDVNJABCVPDE
      FVMGHIKLMNVMUMZWMWKQRSVCVDVFAWJVKGUPZVLGUPZVOVTVEWKAWJWHIGUPZWOWKQSBDEFGH
      IKMLNVGVAAWJWIWQWPWKRSCDEFGHIKMLNVGVAVKVLVMGHJKOWNVHVAAWGWHWIVSWAVEWLQRFE
      VPBCVRNWFWMVIVAVJ $.
  $}

  ${
    lvecinv.v $e |- V = ( Base ` W ) $.
    lvecinv.t $e |- .x. = ( .s ` W ) $.
    lvecinv.f $e |- F = ( Scalar ` W ) $.
    lvecinv.k $e |- K = ( Base ` F ) $.
    lvecinv.o $e |- .0. = ( 0g ` F ) $.
    lvecinv.i $e |- I = ( invr ` F ) $.
    lvecinv.w $e |- ( ph -> W e. LVec ) $.
    lvecinv.a $e |- ( ph -> A e. ( K \ { .0. } ) ) $.
    lvecinv.x $e |- ( ph -> X e. V ) $.
    lvecinv.y $e |- ( ph -> Y e. V ) $.
    $( Invert coefficient of scalar product.  (Contributed by NM,
       11-Apr-2015.) $)
    lvecinv $p |- ( ph -> ( X = ( A .x. Y ) <-> Y = ( ( I ` A ) .x. X ) ) ) $=
      ( co wceq cfv oveq2 cmulr cur cdr wcel wne clvec lvecdrng syl csn eldifad
      cdif eldifsni eqid drnginvrl syl3anc oveq1d lveclmod drnginvrcl lmodvsass
      clmod syl13anc lmodvs1 syl2anc 3eqtr3d sylan9eqr drnginvrr 3eqtr3rd eqcom
      sylan9eq impbida syl6bb ) AIBJCUBZUCZBEUDZICUBZJUCZJVTUCAVRWAVRAVTVSVQCUB
      ZJIVQVSCUEAVSBDUFUDZUBZJCUBZDUGUDZJCUBZWBJAWDWFJCADUHUIZBFUIZBKUJZWDWFUCA
      HUKUIZWHRDHNULUMZABFKUNZSUOZABFWMUPUIWJSBFKUQUMZFDWCWFEBKOPWCURZWFURZQUSU
      TVAAHVEUIZVSFUIZWIJGUIZWEWBUCAWKWRRHVBUMZAWHWIWJWSWLWNWOFDEBKOPQVCUTZWNUA
      VSBCWCDFGHJLNMOWPVDVFAWRWTWGJUCXAUACWFDGHJLNMWQVGVHVIVJAWAIBVTCUBZVQABVSW
      CUBZICUBZWFICUBZXCIAXDWFICAWHWIWJXDWFUCWLWNWOFDWCWFEBKOPWPWQQVKUTVAAWRWIW
      SIGUIZXEXCUCXAWNXBTBVSCWCDFGHILNMOWPVDVFAWRXGXFIUCXATCWFDGHILNMWQVGVHVLVT
      JBCUEVNVOVTJVMVP $.
  $}

  ${
    lspsnvs.v $e |- V = ( Base ` W ) $.
    lspsnvs.f $e |- F = ( Scalar ` W ) $.
    lspsnvs.t $e |- .x. = ( .s ` W ) $.
    lspsnvs.k $e |- K = ( Base ` F ) $.
    lspsnvs.o $e |- .0. = ( 0g ` F ) $.
    lspsnvs.n $e |- N = ( LSpan ` W ) $.
    $( A nonzero scalar product does not change the span of a singleton.
       ( ~ spansncol analog.)  (Contributed by NM, 23-Apr-2014.) $)
    lspsnvs $p |- ( ( W e. LVec /\ ( R e. K /\ R =/= .0. ) /\ X e. V )
        -> ( N ` { ( R .x. X ) } ) = ( N ` { X } ) ) $=
      ( wcel co csn cfv syl3anc clvec wne wa w3a clmod lveclmod 3ad2ant1 simp2l
      wss simp3 lspsnvsi cinvr cmulr wceq lvecdrng simp2r eqid drnginvrl oveq1d
      cur drnginvrcl lmodvsass syl13anc lmodvs1 syl2anc 3eqtr3d fveq2d lmodvscl
      cdr sneqd eqsstr3d eqssd ) GUAPZADPZAIUBZUCZHFPZUDZAHBQZRESZHRZESZVRGUEPZ
      VNVQVTWBUIVMVPWCVQGUFUGZVMVNVOVQUHZVMVPVQUJZABCDEFGHKMJLOUKTVRWBACULSZSZV
      SBQZRZESZVTVRWJWAEVRWIHVRWHACUMSZQZHBQZCUTSZHBQZWIHVRWMWOHBVRCVIPZVNVOWMW
      OUNVMVPWQVQCGKUOUGZWEVMVNVOVQUPZDCWLWOWGAIMNWLUQZWOUQZWGUQZURTUSVRWCWHDPZ
      VNVQWNWIUNWDVRWQVNVOXCWRWEWSDCWGAIMNXBVATZWEWFWHABWLCDFGHJKLMWTVBVCVRWCVQ
      WPHUNWDWFBWOCFGHJKLXAVDVEVFVJVGVRWCXCVSFPZWKVTUIWDXDVRWCVNVQXEWDWEWFABCDF
      GHJKLMVHTWHBCDEFGVSKMJLOUKTVKVL $.
  $}

  ${
    $d k N $.  $d k V $.  $d k W $.  $d k X $.  $d k Y $.  $d k ph $.
    lspsneleq.v $e |- V = ( Base ` W ) $.
    lspsneleq.o $e |- .0. = ( 0g ` W ) $.
    lspsneleq.n $e |- N = ( LSpan ` W ) $.
    lspsneleq.w $e |- ( ph -> W e. LVec ) $.
    lspsneleq.x $e |- ( ph -> X e. V ) $.
    lspsneleq.y $e |- ( ph -> Y e. ( N ` { X } ) ) $.
    lspsneleq.z $e |- ( ph -> Y =/= .0. ) $.
    $( Membership relation that implies equality of spans.  ( ~ spansneleq
       analog.)  (Contributed by NM, 4-Jul-2014.) $)
    lspsneleq $p |- ( ph -> ( N ` { Y } ) = ( N ` { X } ) ) $=
      ( vk csn cfv wcel wceq eqid cv cvsca co csca wrex clmod wb clvec lveclmod
      cbs syl lspsnel syl2anc simpr sneqd fveq2d c0g wne ad2antrr simplr oveq1d
      wa lmod0vs ad3antrrr 3eqtrd necon3d mpd lspsnvs syl121anc eqtrd rexlimdva
      ex sylbid ) AFEPBQZRZFPZBQZVNSZMAVOFOUAZEDUBQZUCZSZODUDQZUJQZUEZVRADUFRZE
      CRZVOWEUGADUHRZWFKDUIUKZLVTFOWCWDBCDEWCTZWDTZHVTTZJULUMAWBVROWDAVSWDRZVBZ
      WBVRWNWBVBZVQWAPZBQZVNWOVPWPBWOFWAWNWBUNUOUPWOWHWMVSWCUQQZURZWGWQVNSAWHWM
      WBKUSAWMWBUTWOFGURZWSAWTWMWBNUSWOVSWRFGWOVSWRSZFGSWOXAVBZFWAWREVTUCZGWNWB
      XAUTXBVSWREVTWOXAUNVAAXCGSZWMWBXAAWFWGXDWILVTWCWRCDEGHWJWLWRTZIVCUMVDVEVL
      VFVGAWGWMWBLUSVSVTWCWDBCDEWRHWJWLWKXEJVHVIVJVLVKVMVG $.
  $}

  ${
    lspsncmp.v $e |- V = ( Base ` W ) $.
    lspsncmp.o $e |- .0. = ( 0g ` W ) $.
    lspsncmp.n $e |- N = ( LSpan ` W ) $.
    lspsncmp.w $e |- ( ph -> W e. LVec ) $.
    lspsncmp.x $e |- ( ph -> X e. ( V \ { .0. } ) ) $.
    lspsncmp.y $e |- ( ph -> Y e. V ) $.
    $( Comparable spans of nonzero singletons are equal.  (Contributed by NM,
       27-Apr-2015.) $)
    lspsncmp $p |- ( ph
   -> ( ( N ` { X } ) C_ ( N ` { Y } ) <-> ( N ` { X } ) = ( N ` { Y } ) ) ) $=
      ( csn cfv wss wceq wcel adantr syl clvec clss eqid clmod lveclmod lspsncl
      wa syl2anc eldifad lspsnel5 biimpar wne cdif eldifsni lspsneleq ex eqimss
      impbid1 ) AENBOZFNBOZPZUSUTQZAVAVBAVAUGBCDFEGHIJADUARZVAKSAFCRZVAMSAEUTRV
      AADUBOZUTBCDEHVEUCZJAVCDUDRZKDUETZAVGVDUTVERVHMVEBCDFHVFJUFUHAECGNZLUIUJU
      KAEGULZVAAECVIUMRVJLECGUNTSUOUPUSUTUQUR $.
  $}

  ${
    lspsnne1.v $e |- V = ( Base ` W ) $.
    lspsnne1.o $e |- .0. = ( 0g ` W ) $.
    lspsnne1.n $e |- N = ( LSpan ` W ) $.
    lspsnne1.w $e |- ( ph -> W e. LVec ) $.
    lspsnne1.x $e |- ( ph -> X e. ( V \ { .0. } ) ) $.
    lspsnne1.y $e |- ( ph -> Y e. V ) $.
    lspsnne1.e $e |- ( ph -> ( N ` { X } ) =/= ( N ` { Y } ) ) $.
    $( Two ways to express that vectors have different spans.  (Contributed by
       NM, 28-May-2015.) $)
    lspsnne1 $p |- ( ph -> -. X e. ( N ` { Y } ) ) $=
      ( csn cfv wcel wn wne wss clss clvec lveclmod syl lspsncl syl2anc eldifad
      eqid clmod lspsnel5 notbid lspsncmp necon3bbid bitrd mpbird ) AEFOBPZQZRZ
      EOBPZUPSZNAURUSUPTZRUTAUQVAADUAPZUPBCDEHVBUHZJADUBQDUIQZKDUCUDZAVDFCQUPVB
      QVEMVBBCDFHVCJUEUFAECGOLUGUJUKAVAUSUPABCDEFGHIJKLMULUMUNUO $.
  $}

  ${
    lspsnne2.v $e |- V = ( Base ` W ) $.
    lspsnne2.n $e |- N = ( LSpan ` W ) $.
    lspsnne2.w $e |- ( ph -> W e. LMod ) $.
    lspsnne2.x $e |- ( ph -> X e. V ) $.
    lspsnne2.y $e |- ( ph -> Y e. V ) $.
    lspsnne2.e $e |- ( ph -> -. X e. ( N ` { Y } ) ) $.
    $( Two ways to express that vectors have different spans.  (Contributed by
       NM, 20-May-2015.) $)
    lspsnne2 $p |- ( ph -> ( N ` { X } ) =/= ( N ` { Y } ) ) $=
      ( csn cfv wcel wn wne wceq wss eqimss clss clmod lspsncl syl2anc lspsnel5
      eqid syl5ibr necon3bd mpd ) AEFMBNZOZPEMBNZUJQLAUKULUJULUJRUKAULUJSULUJTA
      DUANZUJBCDEGUMUFZHIADUBOFCOUJUMOIKUMBCDFGUNHUCUDJUEUGUHUI $.
  $}

  ${
    lspsnnecom.v $e |- V = ( Base ` W ) $.
    lspsnnecom.o $e |- .0. = ( 0g ` W ) $.
    lspsnnecom.n $e |- N = ( LSpan ` W ) $.
    lspsnnecom.w $e |- ( ph -> W e. LVec ) $.
    lspsnnecom.x $e |- ( ph -> X e. V ) $.
    lspsnnecom.y $e |- ( ph -> Y e. ( V \ { .0. } ) ) $.
    lspsnnecom.e $e |- ( ph -> -. X e. ( N ` { Y } ) ) $.
    $( Swap two vectors with different spans.  (Contributed by NM,
       20-May-2015.) $)
    lspsnnecom $p |- ( ph -> -. Y e. ( N ` { X } ) ) $=
      ( csn cfv clvec wcel clmod lveclmod syl eldifad lspsnne2 necomd lspsnne1
      ) ABCDFEGHIJKMLAEOBPFOBPABCDEFHJADQRDSRKDTUALAFCGOMUBNUCUDUE $.
  $}

  ${
    lspabs2.v $e |- V = ( Base ` W ) $.
    lspabs2.p $e |- .+ = ( +g ` W ) $.
    lspabs2.o $e |- .0. = ( 0g ` W ) $.
    lspabs2.n $e |- N = ( LSpan ` W ) $.
    lspabs2.w $e |- ( ph -> W e. LVec ) $.
    lspabs2.x $e |- ( ph -> X e. V ) $.
    ${
      lspabs2.y $e |- ( ph -> Y e. ( V \ { .0. } ) ) $.
      lspabs2.e $e |- ( ph -> ( N ` { X } ) = ( N ` { ( X .+ Y ) } ) ) $.
      $( Absorption law for span of vector sum.  (Contributed by NM,
         30-Apr-2015.) $)
      lspabs2 $p |- ( ph -> ( N ` { X } ) = ( N ` { Y } ) ) $=
        ( csn cfv co wcel wss wceq csubg clmod clvec lveclmod lspsnsubg syl2anc
        clsm syl eldifad eqid lsmub2 oveq2d cpr lspprabs lmodvacl syl3anc lsmpr
        lsmidm 3eqtr3d 3eqtr3rd sseqtrd lspsncmp mpbid eqcomd ) AGQCRZFQCRZAVGV
        HUAVGVHUBAVGVHVGEUIRZSZVHAVHEUCRZTZVGVKTZVGVJUAAEUDTZFDTZVLAEUETVNMEUFU
        JZNCDEFILUGUHZAVNGDTZVMVPAGDHQOUKZCDEGILUGUHVIVHVGEVIULZUMUHAVHVHVISZVH
        FGBSZQCRZVISZVHVJAVHWCVHVIPUNAVLWAVHUBVQVIVHEVTUTUJAFWBUOCRFGUOCRWDVJAB
        CDEFGIJLVPNVSUPAVICDEFWBILVTVPNAVNVOVRWBDTVPNVSBDEFGIJUQURUSAVICDEFGILV
        TVPNVSUSVAVBVCACDEGFHIKLMONVDVEVF $.
    $}

    lspabs3.y $e |- ( ph -> Y e. V ) $.
    lspabs3.xy $e |- ( ph -> ( X .+ Y ) =/= .0. ) $.
    lspabs3.e $e |- ( ph -> ( N ` { X } ) = ( N ` { Y } ) ) $.
    $( Absorption law for span of vector sum.  (Contributed by NM,
       30-Apr-2015.) $)
    lspabs3 $p |- ( ph -> ( N ` { X } ) = ( N ` { ( X .+ Y ) } ) ) $=
      ( cfv wcel syl2anc co csn wss wceq clsm clss clvec clmod lveclmod lspsncl
      syl lsmcl syl3anc lspsnsubg eqeltrrd lspsnid lsmelvali syl22anc lspsnel5a
      csubg oveq2d lsmidm eqtr3d sseqtrd wne lmodvacl eldifsn sylanbrc lspsncmp
      eqid cdif mpbid eqcomd ) AFGBUAZUBCRZFUBCRZAVOVPUCVOVPUDAVOVPGUBCRZEUERZU
      AZVPAEUFRZVSCEVNVTVJZLAEUGSEUHSZMEUIUKZAWBVPVTSZVQVTSZVSVTSWCAWBFDSZWDWCN
      VTCDEFIWALUJTAWBGDSZWEWCOVTCDEGIWALUJTVRVTVPVQEWAVRVJZULUMAVPEUTRZSZVQWIS
      FVPSZGVQSZVNVSSAWBWFWJWCNCDEFILUNTZAVPVQWIQWMUOAWBWFWKWCNCDEFILUPTAWBWGWL
      WCOCDEGILUPTBVRVPVQEFGJWHUQURUSAVPVPVRUAZVSVPAVPVQVPVRQVAAWJWNVPUDWMVRVPE
      WHVBUKVCVDACDEVNFHIKLMAVNDSZVNHVEVNDHUBVKSAWBWFWGWOWCNOBDEFGIJVFUMPVNDHVG
      VHNVIVLVM $.
  $}

  ${
    $d j k K $.  $d j N $.  $d j k .0. $.  $d j S $.  $d j k .x. $.  $d j V $.
    $d j W $.  $d j k X $.  $d j k Y $.  $d j ph $.
    lspsneq.v $e |- V = ( Base ` W ) $.
    lspsneq.s $e |- S = ( Scalar ` W ) $.
    lspsneq.k $e |- K = ( Base ` S ) $.
    lspsneq.o $e |- .0. = ( 0g ` S ) $.
    lspsneq.t $e |- .x. = ( .s ` W ) $.
    lspsneq.n $e |- N = ( LSpan ` W ) $.
    lspsneq.w $e |- ( ph -> W e. LVec ) $.
    lspsneq.x $e |- ( ph -> X e. V ) $.
    lspsneq.y $e |- ( ph -> Y e. V ) $.
    $( Equal spans of singletons must have proportional vectors.  See
       ~ lspsnss2 for comparable span version.  TODO: can proof be shortened?
       (Contributed by NM, 21-Mar-2015.) $)
    lspsneq $p |- ( ph -> ( ( N ` { X } ) = ( N ` { Y } ) <->
      E. k e. ( K \ { .0. } ) X = ( k .x. Y ) ) ) $=
      ( vj csn cfv wceq cv co cdif wrex wa c0g cur wne clmod crg clvec lveclmod
      wcel syl lmodring ringidcl cdr lvecdrng drngunz eldifsn sylanbrc ad2antrr
      eqid lmod0vcl lmodvs1 syl2anc oveq2 adantl adantr simpr lspsneq0b biimpar
      3syl 3eqtr4rd oveq1 eqeq2d rspcev wss eqimss clss lspsncl lspsnel5 mpbird
      lspsnel mpbid simprl biimpd necon3d imp eqnetrrd lvecvsn0 simpld reximdv2
      wb jca ex mpd pm2.61dane wi eldifi eldifsni lspsnvs syl121anc sneq fveq2d
      eqeq1d biimprcd syl6 rexlimdv impbid weq cbvrexv syl6bb ) AIUBZFUCZJUBFUC
      ZUDZIUAUEZJCUFZUDZUAEKUBZUGZUHZIDUEZJCUFZUDZDYFUHAYAYGAYAYGAYAUIZYGJHUJUC
      ZYKJYLUDZUIZBUKUCZYFUQZIYOJCUFZUDZYGAYPYAYMAYOEUQZYOKULZYPAHUMUQZBUNUQYSA
      HUOUQZUUARHUPZURZBHMUSEBYONYOVGZUTVQAUUBBVAUQYTRBHMVBBYOKOUUEVCVQYOEKVDVE
      VFYNYOYLCUFZYLYQIAUUFYLUDZYAYMAUUAYLGUQZUUGUUDAUUBUUAUUHRUUCGHYLLYLVGZVHV
      QCYOBGHYLLMPUUEVIVJVFYMYQUUFUDYKJYLYOCVKVLYKIYLUDZYMYKFGHIJYLLUUIQAUUAYAU
      UDVMZAIGUQYASVMZAJGUQZYATVMZAYAVNVOZVPVRYDYRUAYOYFYBYOUDYCYQIYBYOJCVSVTWA
      VJYKJYLULZUIZYDUAEUHZYGYKUURUUPYKIXTUQZUURYKUUSXSXTWBZYAUUTAXSXTWCVLYKHWD
      UCZXTFGHILUVAVGZQUUKAXTUVAUQZYAAUUAUUMUVCUUDTUVAFGHJLUVBQWEVJVMUULWFWGYKU
      UAUUMUUSUURWRUUKUUNCIUABEFGHJMNLPQWHVJWIVMUUQYDYDUAEYFUUQYBEUQZYDUIZYBYFU
      QZYDUIUUQUVEUIZUVFYDUVGUVDYBKULZUVFUUQUVDYDWJZUVGUVHUUPUVGYCYLULUVHUUPUIU
      VGIYCYLUVEYDUUQUVDYDVNVLZUUQIYLULZUVEYKUUPUVKYKIYLJYLYKUUJYMUUOWKWLWMVMWN
      UVGYBCBEKGHJYLLPMNOUUIYKUUBUUPUVEAUUBYARVMVFUVIYKUUMUUPUVEUUNVFWOWIWPYBEK
      VDVEUVJWSWTWQXAXBWTAYDYAUAYFAUVFYCUBZFUCZXTUDZYDYAXCAUVFUVNAUVFUIUUBUVDUV
      HUUMUVNAUUBUVFRVMUVFUVDAYBEYEXDVLUVFUVHAYBEKXEVLAUUMUVFTVMYBCBEFGHJKLMPNO
      QXFXGWTYDYAUVNYDXSUVMXTYDXRUVLFIYCXHXIXJXKXLXMXNYDYJUADYFUADXOYCYIIYBYHJC
      VSVTXPXQ $.
  $}

  ${
    $d i j k K $.  $d i j N $.  $d i j k O $.  $d i j k .x. $.  $d i j k X $.
    $d i j k Y $.  $d i j ph $.
    lspsneu.v $e |- V = ( Base ` W ) $.
    lspsneu.s $e |- S = ( Scalar ` W ) $.
    lspsneu.k $e |- K = ( Base ` S ) $.
    lspsneu.o $e |- O = ( 0g ` S ) $.
    lspsneu.t $e |- .x. = ( .s ` W ) $.
    lspsneu.z $e |- .0. = ( 0g ` W ) $.
    lspsneu.n $e |- N = ( LSpan ` W ) $.
    lspsneu.w $e |- ( ph -> W e. LVec ) $.
    lspsneu.x $e |- ( ph -> X e. V ) $.
    lspsneu.y $e |- ( ph -> Y e. ( V \ { .0. } ) ) $.
    $( Nonzero vectors with equal singleton spans have a unique proportionality
       constant.  (Contributed by NM, 31-May-2015.) $)
    lspsneu $p |- ( ph -> ( ( N ` { X } ) = ( N ` { Y } ) <->
      E! k e. ( K \ { O } ) X = ( k .x. Y ) ) ) $=
      ( vj vi csn cfv wceq cv co cdif wreu wrex weq wral eldifad lspsneq biimpd
      wa wi wcel w3a eqtr2 3ad2ant3 clvec simp1l syl simp2l simp2r wne eldifsni
      3syl lvecvscan2 mpbid 3exp ex ralrimdvv jcad oveq1 eqeq2d syl6ibr syl5ibr
      reu4 reurex impbid cbvreuv syl6bb ) AJUEFUFKUEFUFUGZJUCUHZKCUIZUGZUCEGUEZ
      UJZUKZJDUHZKCUIZUGZDWLUKAWGWMAWGWJUCWLULZWJJUDUHZKCUIZUGZURZUCUDUMZUSZUDW
      LUNUCWLUNZURWMAWGWQXDAWGWQABCUCEFHIJKGMNOPQSTUAAKHLUEZUBUOZUPZUQAWGXCUCUD
      WLWLAWGWHWLUTZWRWLUTZURZXCUSAWGURZXJXAXBXKXJXAVAZWIWSUGZXBXAXKXMXJJWIWSVB
      VCXLWHWRCBEHIKLMQNORXLAIVDUTAWGXJXAVEZTVFXLWHEWKXKXHXIXAVGUOXLWREWKXKXHXI
      XAVHUOXLAKHUTXNXFVFXLAKHXEUJUTKLVIXNUBKHLVJVKVLVMVNVOVPVQWJWTUCUDWLXBWIWS
      JWHWRKCVRVSWBVTWMWGAWQWJUCWLWCXGWAWDWJWPUCDWLUCDUMWIWOJWHWNKCVRVSWEWF $.
  $}

  ${
    lspsnel4.v $e |- V = ( Base ` W ) $.
    lspsnel4.o $e |- .0. = ( 0g ` W ) $.
    lspsnel4.s $e |- S = ( LSubSp ` W ) $.
    lspsnel4.n $e |- N = ( LSpan ` W ) $.
    lspsnel4.w $e |- ( ph -> W e. LVec ) $.
    lspsnel4.u $e |- ( ph -> U e. S ) $.
    lspsnel4.x $e |- ( ph -> X e. V ) $.
    lspsnel4.y $e |- ( ph -> Y e. ( N ` { X } ) ) $.
    lspsnel4.z $e |- ( ph -> Y =/= .0. ) $.
    $( A member of the span of the singleton of a vector is a member of a
       subspace containing the vector.  ( ~ elspansn4 analog.)  (Contributed by
       NM, 4-Jul-2014.) $)
    lspsnel4 $p |- ( ph -> ( X e. U <-> Y e. U ) ) $=
      ( wcel adantr clmod clvec lveclmod syl simpr csn lspsnel3 lspsnid syl2anc
      wa cfv lspsneleq eleqtrrd impbida ) AGCSZHCSZAUOUJBCDFGHLMAFUASZUOAFUBSUQ
      NFUCUDZTACBSZUOOTAUOUEAHGUFDUKZSUOQTUGAUPUJBCDFHGLMAUQUPURTAUSUPOTAUPUEAG
      HUFDUKZSUPAGUTVAAUQGESGUTSURPDEFGJMUHUIADEFGHIJKMNPQRULUMTUGUN $.
  $}

  ${
    $d k v N $.  $d k v .0. $.  $d k v U $.  $d k V $.  $d k W $.  $d k v X $.
    $d k v ph $.
    lspdisj.v $e |- V = ( Base ` W ) $.
    lspdisj.o $e |- .0. = ( 0g ` W ) $.
    lspdisj.n $e |- N = ( LSpan ` W ) $.
    lspdisj.s $e |- S = ( LSubSp ` W ) $.
    lspdisj.w $e |- ( ph -> W e. LVec ) $.
    lspdisj.u $e |- ( ph -> U e. S ) $.
    lspdisj.x $e |- ( ph -> X e. V ) $.
    lspdisj.e $e |- ( ph -> -. X e. U ) $.
    $( The span of a vector not in a subspace is disjoint with the subspace.
       (Contributed by NM, 6-Apr-2015.) $)
    lspdisj $p |- ( ph -> ( ( N ` { X } ) i^i U ) = { .0. } ) $=
      ( cfv wcel wa syl2anc vv vk csn cin cv wceq cvsca co csca cbs clmod clvec
      wrex wb lveclmod syl eqid lspsnel biimpa adantrr wi simprr wn ad2antrr wo
      c0g simplr eqeltrrd simprl lssvs0or mpbid orcomd ord oveq1d lmod0vs exp32
      mpd 3eqtrd adantrl rexlimdv ex elin velsn 3imtr4g ssrdv wss lspsncl ssind
      lss0ss eqssd ) AGUCDQZCUDZHUCZAUAWLWMAUAUEZWKRZWNCRZSZWNHUFZWNWLRWNWMRAWQ
      WRAWQSZWNUBUEZGFUGQZUHZUFZUBFUIQZUJQZUMZWRAWOXFWPAWOXFAFUKRZGERZWOXFUNAFU
      LRZXGMFUOUPZOXAWNUBXDXEDEFGXDUQZXEUQZIXAUQZKURTUSUTWSXCWRUBXEAWPWTXERZXCW
      RVAVAWOAWPSZXNXCWRXOXNXCSZSZWNXBXDVFQZGXAUHZHXOXNXCVBZXQWTXRGXAXQGCRZVCZW
      TXRUFZAYBWPXPPVDXQYAYCXQYCYAXQXBCRYCYAVEXQWNXBCXTAWPXPVGVHXQWTBXACXDXEEFG
      XRIXMXKXLXRUQZLAXIWPXPMVDACBRZWPXPNVDAXHWPXPOVDZXOXNXCVIVJVKVLVMVQVNXQXGX
      HXSHUFAXGWPXPXJVDYFXAXDXREFGHIXKXMYDJVOTVRVPVSVTVQWAWNWKCWBUAHWCWDWEAWMWK
      CAXGWKBRZWMWKWFXJAXGXHYGXJOBDEFGILKWGTBFWKHJLWITAXGYEWMCWFXJNBFCHJLWITWHW
      J $.
  $}

  ${
    lspdisjb.v $e |- V = ( Base ` W ) $.
    lspdisjb.o $e |- .0. = ( 0g ` W ) $.
    lspdisjb.n $e |- N = ( LSpan ` W ) $.
    lspdisjb.s $e |- S = ( LSubSp ` W ) $.
    lspdisjb.w $e |- ( ph -> W e. LVec ) $.
    lspdisjb.u $e |- ( ph -> U e. S ) $.
    lspdisjb.x $e |- ( ph -> X e. ( V \ { .0. } ) ) $.
    $( A nonzero vector is not in a subspace iff its span is disjoint with the
       subspace.  (Contributed by NM, 23-Apr-2015.) $)
    lspdisjb $p |- ( ph
          -> ( -. X e. U <-> ( ( N ` { X } ) i^i U ) = { .0. } ) ) $=
      ( wcel csn wceq wa adantr wn cfv cin clvec eldifad simpr lspdisj wne cdif
      eldifsni syl wi clmod lveclmod lspsnid syl2anc eleq2 elsni syl6bi syl5bir
      elin expd mpan9 necon3ad mpd impbida ) AGCPZUAZGQDUBZCUCZHQZRZAVHSBCDEFGH
      IJKLAFUDPZVHMTACBPVHNTAGEPZVHAGEVKOUEZTAVHUFUGAVLSZGHUHZVHAVQVLAGEVKUIPVQ
      OGEHUJUKTVPVGGHAGVIPZVLVGGHRZULAFUMPZVNVRAVMVTMFUNUKVODEFGIKUOUPVLVRVGVSV
      RVGSGVJPZVLVSGVICVAVLWAGVKPVSVJVKGUQGHURUSUTVBVCVDVEVF $.
  $}

  ${
    lspdisj2.v $e |- V = ( Base ` W ) $.
    lspdisj2.o $e |- .0. = ( 0g ` W ) $.
    lspdisj2.n $e |- N = ( LSpan ` W ) $.
    lspdisj2.w $e |- ( ph -> W e. LVec ) $.
    lspdisj2.x $e |- ( ph -> X e. V ) $.
    lspdisj2.y $e |- ( ph -> Y e. V ) $.
    lspdisj2.q $e |- ( ph -> ( N ` { X } ) =/= ( N ` { Y } ) ) $.
    $( Unequal spans are disjoint (share only the zero vector).  (Contributed
       by NM, 22-Mar-2015.) $)
    lspdisj2 $p |- ( ph -> ( ( N ` { X } ) i^i ( N ` { Y } ) ) = { .0. } ) $=
      ( csn cfv wceq wa wcel adantr cin sneq fveq2d clmod clvec lveclmod lspsn0
      syl sylan9eqr ineq1d wss clss eqid lspsncl syl2anc lss0ss df-ss sylib wne
      eqtrd wn simpr simplr lspsneleq ex necon3ad mpd lspdisj pm2.61dane ) AEOZ
      BPZFOBPZUAZGOZQEGAEGQZRZVMVNVLUAZVNVPVKVNVLVOAVKVNBPZVNVOVJVNBEGUBUCADUDS
      ZVRVNQADUESZVSKDUFUHZBDGIJUGUHUIUJAVQVNQZVOAVNVLUKZWBAVSVLDULPZSZWCWAAVSF
      CSZWEWAMWDBCDFHWDUMZJUNUOZWDDVLGIWGUPUOVNVLUQURTUTAEGUSZRZWDVLBCDEGHIJWGA
      VTWIKTZAWEWIWHTAECSWILTWJVKVLUSZEVLSZVAAWLWINTWJWMVKVLWJWMVKVLQWJWMRBCDFE
      GHIJWJVTWMWKTWJWFWMAWFWIMTTWJWMVBAWIWMVCVDVEVFVGVHVI $.
  $}

  ${
    $d k l z N $.  $d k l z .0. $.  $d k l z .+ $.  $d k l V $.  $d k l z W $.
    $d k l z X $.  $d k l z Y $.  $d k l z Z $.  $d k l ph $.
    lspfixed.v $e |- V = ( Base ` W ) $.
    lspfixed.p $e |- .+ = ( +g ` W ) $.
    lspfixed.o $e |- .0. = ( 0g ` W ) $.
    lspfixed.n $e |- N = ( LSpan ` W ) $.
    lspfixed.w $e |- ( ph -> W e. LVec ) $.
    lspfixed.x $e |- ( ph -> X e. V ) $.
    lspfixed.y $e |- ( ph -> Y e. V ) $.
    lspfixed.z $e |- ( ph -> Z e. V ) $.
    lspfixed.e $e |- ( ph -> -. X e. ( N ` { Y } ) ) $.
    lspfixed.f $e |- ( ph -> -. X e. ( N ` { Z } ) ) $.
    lspfixed.g $e |- ( ph -> X e. ( N ` { Y , Z } ) ) $.
    $( Show membership in the span of the sum of two vectors, one of which
       ( ` Y ` ) is fixed in advance.  (Contributed by NM, 27-May-2015.) $)
    lspfixed $p |- ( ph
    -> E. z e. ( ( N ` { Z } ) \ { .0. } ) X e. ( N ` { ( Y .+ z ) } ) ) $=
      ( vk vl cv cvsca cfv co wceq csca cbs wrex csn wcel cdif eqid clvec clmod
      cpr lveclmod syl lspprel mpbid wa w3a cinvr clss 3ad2ant1 lspsncl syl2anc
      wne cdr c0g lvecdrng simp2l wn simpl3 simpr oveq1d lmod0vs eqtrd lmodvscl
      simpl1 simp2r syl3anc adantr lmod0vlid 3eqtrd simpl2r lspsnid syl22anc ex
      lssvscl eqeltrd necon3bd mpd drnginvrcl drnginvrn0 oveq1 sylan9eqr oveq2d
      lmod0vrid preq2 fveq2d lsppr0 eleqtrd lvecvsn0 mpbir2and eldifsn sylanbrc
      simp3 lmodvacl lspsnvs syl121anc lmodvsdi cur drnginvrl lmodvsass lmodvs1
      syl13anc cmulr 3eqtr3d sneqd eqtr3d oveq2 eleq2d rspcev 3exp rexlimdvv )
      AGUBUDZHFUEUFZUGZUCUDZJYJUGZCUGZUHZUCFUIUFZUJUFZUKUBYQUKZGHBUDZCUGZULZDUF
      ZUMZBJULDUFZIULUNZUKZAGHJURZDUFZUMZYRUAACYJUBYPYQDEFHJGUCKLYPUOZYQUOZYJUO
      ZNAFUPUMZFUQUMZOFUSUTZQRVAVBAYOUUFUBUCYQYQAYIYQUMZYLYQUMZVCZYOUUFAUURYOVD
      ZYIYPVEUFZUFZYMYJUGZUUEUMZGHUVBCUGZULZDUFZUMZUUFUUSUVBUUDUMZUVBIVJZUVCUUS
      UUNUUDFVFUFZUMZUVAYQUMZYMUUDUMZUVHAUURUUNYOUUOVGZAUURUVKYOAUUNJEUMZUVKUUO
      RUVJDEFJKUVJUOZNVHVIZVGZUUSYPVKUMZUUPYIYPVLUFZVJZUVLUUSUUMUVSAUURUUMYOOVG
      ZYPFUUJVMUTZAUUPUUQYOVNZUUSGUUDUMZVOZUWAAUURUWFYOTVGUUSUWEYIUVTUUSYIUVTUH
      ZUWEUUSUWGVCZGYMUUDUWHGYNIYMCUGZYMAUURYOUWGVPUWHYKIYMCUWHYKUVTHYJUGZIUWHY
      IUVTHYJUUSUWGVQVRUWHUUNHEUMZUWJIUHUWHAUUNAUURYOUWGWBZUUOUTZUWHAUWKUWLQUTY
      JYPUVTEFHIKUUJUULUVTUOZMVSVIVTVRUWHUUNYMEUMZUWIYMUHUWMUUSUWOUWGUUSUUNUUQU
      VOUWOUVNAUUPUUQYOWCZAUURUVOYORVGZYLYJYPYQEFJKUUJUULUUKWAWDZWECEFYMIKLMWFV
      IWGUWHUUNUVKUUQJUUDUMZUVMUWMUWHAUVKUWLUVQUTUUPUUQAYOUWGWHUWHAUWSUWLAUUNUV
      OUWSUUORDEFJKNWIVIZUTYQUVJYJUUDYPFYLJUUJUULUUKUVPWLZWJWMWKWNWOZYQYPUUTYIU
      VTUUKUWNUUTUOZWPWDZUUSUUNUVKUUQUWSUVMUVNUVRUWPAUURUWSYOUWTVGUXAWJYQUVJYJU
      UDYPFUVAYMUUJUULUUKUVPWLWJUUSUVIUVAUVTVJZYMIVJZUUSUVSUUPUWAUXEUWCUWDUXBYQ
      YPUUTYIUVTUUKUWNUXCWQWDZUUSUXFYLUVTVJZJIVJZUUSGHULDUFZUMZVOZUXHAUURUXLYOS
      VGZUUSUXKYLUVTUUSYLUVTUHZUXKUUSUXNVCZGYKUXJUXOGYNYKICUGZYKAUURYOUXNVPUXOY
      MIYKCUXNUUSYMUVTJYJUGZIYLUVTJYJWRUUSUUNUVOUXQIUHUVNUWQYJYPUVTEFJIKUUJUULU
      WNMVSVIWSWTUUSUXPYKUHZUXNUUSUUNYKEUMZUXRUVNUUSUUNUUPUWKUXSUVNUWDAUURUWKYO
      QVGZYIYJYPYQEFHKUUJUULUUKWAWDZCEFYKIKLMXAVIWEWGUUSYKUXJUMZUXNUUSUUNUXJUVJ
      UMZUUPHUXJUMZUYBUVNAUURUYCYOAUUNUWKUYCUUOQUVJDEFHKUVPNVHVIVGUWDAUURUYDYOA
      UUNUWKUYDUUOQDEFHKNWIVIVGYQUVJYJUXJYPFYIHUUJUULUUKUVPWLWJWEWMWKWNWOUUSUXL
      UXIUXMUUSUXKJIUUSJIUHZUXKUUSUYEVCZGUUHUXJUYFAUUIAUURYOUYEWBUAUTUYEUUSUUHH
      IURZDUFUXJUYEUUGUYGDJIHXBXCUUSDEFHIKMNUVNUXTXDWSXEWKWNWOUUSYLYJYPYQUVTEFJ
      IKUULUUJUUKUWNMUWBUWPUWQXFXGUUSUVAYJYPYQUVTEFYMIKUULUUJUUKUWNMUWBUXDUWRXF
      XGUVBUUDIXHXIUUSGYNULDUFZUVFUUSGYNUYHAUURYOXJUUSUUNYNEUMZYNUYHUMUVNUUSUUN
      UXSUWOUYIUVNUYAUWRCEFYKYMKLXKWDZDEFYNKNWIVIWMUUSUVAYNYJUGZULZDUFZUYHUVFUU
      SUUMUVLUXEUYIUYMUYHUHUWBUXDUXGUYJUVAYJYPYQDEFYNUVTKUUJUULUUKUWNNXLXMUUSUY
      LUVEDUUSUYKUVDUUSUYKUVAYKYJUGZUVBCUGZUVDUUSUUNUVLUXSUWOUYKUYOUHUVNUXDUYAU
      WRCUVAYJYPYQEFYKYMKLUUJUULUUKXNXSUUSUYNHUVBCUUSUVAYIYPXTUFZUGZHYJUGZYPXOU
      FZHYJUGZUYNHUUSUYQUYSHYJUUSUVSUUPUWAUYQUYSUHUWCUWDUXBYQYPUYPUYSUUTYIUVTUU
      KUWNUYPUOZUYSUOZUXCXPWDVRUUSUUNUVLUUPUWKUYRUYNUHUVNUXDUWDUXTUVAYIYJUYPYPY
      QEFHKUUJUULUUKVUAXQXSUUSUUNUWKUYTHUHUVNUXTYJUYSYPEFHKUUJUULVUBXRVIYAVRVTY
      BXCYCXEUUCUVGBUVBUUEYSUVBUHZUUBUVFGVUCUUAUVEDVUCYTUVDYSUVBHCYDYBXCYEYFVIY
      GYHWO $.
  $}

  ${
    $d j k N $.  $d j k V $.  $d j k W $.  $d j k X $.  $d j k Y $.
    $d j k Z $.  $d j k ph $.
    lspexch.v $e |- V = ( Base ` W ) $.
    lspexch.o $e |- .0. = ( 0g ` W ) $.
    lspexch.n $e |- N = ( LSpan ` W ) $.
    lspexch.w $e |- ( ph -> W e. LVec ) $.
    lspexch.x $e |- ( ph -> X e. ( V \ { .0. } ) ) $.
    lspexch.y $e |- ( ph -> Y e. V ) $.
    lspexch.z $e |- ( ph -> Z e. V ) $.
    lspexch.q $e |- ( ph -> ( N ` { X } ) =/= ( N ` { Z } ) ) $.
    lspexch.e $e |- ( ph -> X e. ( N ` { Y , Z } ) ) $.
    $( Exchange property for span of a pair.  TODO: see if a version with Y,Z
       and X,Z reversed will shorten proofs (analogous to ~ lspexchn1 vs.
       ~ lspexchn2 ); look for ~ lspexch and ~ prcom in same proof.  TODO:
       would a hypothesis of ` -. X e. ( N `` { Z } ) ` instead of
       ` ( N `` { X } ) =/= ( N ` { Z } ) `` be better overall?  This would be
       shorter and also satisfy the ` X =/= .0. ` condition.  Here and also
       lspindp* and all proofs affected by them (all in NM's mathbox); there
       are 58 hypotheses with the ` =/= ` pattern as of 24-May-2015.
       (Contributed by NM, 11-Apr-2015.) $)
    lspexch $p |- ( ph -> Y e. ( N ` { X , Z } ) ) $=
      ( cfv co wcel vj vk cv cvsca cplusg wceq csca cbs wrex cpr clvec lveclmod
      eqid clmod syl lspprel mpbid wa w3a cinvr cminusg csg 3ad2ant1 simp2r csn
      cdif eldifad lmodsubvs simp3 eqcomd wb lmodgrp lmodvscl syl3anc grpsubadd
      simp2l syl13anc mpbird eqtr3d c0g wne adantr oveq1 oveq1d lmod0vs syl2anc
      cgrp lmod0vlid eqtrd sylan9eqr lspsneli eqeltrd eldifsni lspsneleq ex mpd
      necon3d eldifsn sylanbrc lmodfgrp grpinvcl lmodvacl lvecinv clss lvecdrng
      lspprcl cdr drnginvrcl cur lmodvs1 crg lmodring ringidcl lsppreli lssvscl
      3syl eqeltrrd syl22anc 3exp rexlimdvv ) AEUAUCZFDUDRZSZUBUCZHYBSZDUERZSZU
      FZUBDUGRZUHRZUIUAYJUIZFEHUJBRZTZAEFHUJBRTYKQAYFYBUAYIYJBCDFHEUBIYFUMZYIUM
      ZYJUMZYBUMZKADUKTZDUNTZLDULZUOZNOUPUQAYHYMUAUBYJYJAYAYJTZYDYJTZURZYHYMAUU
      DYHUSZFYAYIUTRZRZEYDYIVARZRZHYBSZYFSZYBSZYLUUEUUKYCUFFUULUFUUEEYEDVBRZSZU
      UKYCUUEYDYFYBYIYJUUMUUHCDEHIYNUUMUMZYQYOYPUUHUMZUUEYRYSAUUDYRYHLVCZYTUOZA
      UUBUUCYHVDZUUEECGVEZAUUDECUUTVFTZYHMVCZVGZAUUDHCTZYHOVCZVHUUEUUNYCUFZYGEU
      FZUUEEYGAUUDYHVIZVJUUEDWGTZECTZYECTZYCCTZUVFUVGVKUUEYSUVIAUUDYSYHUUAVCZDV
      LUOUVCUUEYSUUCUVDUVKUURUUSUVEYDYBYIYJCDHIYOYQYPVMVNZUUEYSUUBFCTZUVLUURAUU
      BUUCYHVPZAUUDUVOYHNVCZYAYBYIYJCDFIYOYQYPVMVNCYFDUUMEYEYCIYNUUOVOVQVRVSUUE
      YAYBYIUUFYJCDUUKFYIVTRZIYQYOYPUVRUMZUUFUMZUUQUUEUUBYAUVRWAZYAYJUVRVEVFTUV
      PUUEEVEBRZHVEBRZWAZUWAAUUDUWDYHPVCUUEYAUVRUWBUWCUUEYAUVRUFZUWBUWCUFUUEUWE
      URZBCDHEGIJKUUEYRUWEUUQWBUUEUVDUWEUVEWBUWFEYEUWCUWFEYGYEUUEYHUWEUVHWBUWEU
      UEYGUVRFYBSZYEYFSZYEUWEYCUWGYEYFYAUVRFYBWCWDUUEUWHGYEYFSZYEUUEUWGGYEYFUUE
      YSUVOUWGGUFUURUVQYBYIUVRCDFGIYOYQUVSJWEWFWDUUEYSUVKUWIYEUFUURUVNYFCDYEGIY
      NJWHWFWIWJWIUUEYEUWCTUWEUUEYDYBYIYJBCDHIYQYOYPKUURUUSUVEWKWBWLUUEEGWAZUWE
      UUEUVAUWJUVBECGWMUOWBWNWOWQWPZYAYJUVRWRWSUUEYSUVJUUJCTZUUKCTUURUVCUUEYSUU
      IYJTZUVDUWLUURUUEYIWGTZUUCUWMUUEYSUWNUVMYIDYOWTUOUUSYJYIUUHYDYPUUPXAWFZUV
      EUUIYBYIYJCDHIYOYQYPVMVNYFCDEUUJIYNXBVNUVQXCUQUUEYSYLDXDRZTUUGYJTZUUKYLTU
      ULYLTUURUUEUWPBCDEHIUWPUMZKUURUVCUVEXFUUEYIXGTZUUBUWAUWQUUEYRUWSUUQYIDYOX
      EUOUVPUWKYJYIUUFYAUVRYPUVSUVTXHVNUUEYIXIRZEYBSZUUJYFSUUKYLUUEUXAEUUJYFUUE
      YSUVJUXAEUFUURUVCYBUWTYICDEIYOYQUWTUMZXJWFWDUUEUWTUUIYFYBYIYJBCDEHIYNYQYO
      YPKUURUUEYSYIXKTUWTYJTUURYIDYOXLYJYIUWTYPUXBXMXPUWOUVCUVEXNXQYJUWPYBYLYID
      UUGUUKYOYQYPUWRXOXRWLXSXTWP $.
  $}

  ${
    lspexchn1.v $e |- V = ( Base ` W ) $.
    lspexchn1.n $e |- N = ( LSpan ` W ) $.
    lspexchn1.w $e |- ( ph -> W e. LVec ) $.
    lspexchn1.x $e |- ( ph -> X e. V ) $.
    lspexchn1.y $e |- ( ph -> Y e. V ) $.
    lspexchn1.z $e |- ( ph -> Z e. V ) $.
    lspexchn1.q $e |- ( ph -> -. Y e. ( N ` { Z } ) ) $.
    lspexchn1.e $e |- ( ph -> -. X e. ( N ` { Y , Z } ) ) $.
    $( Exchange property for span of a pair with negated membership.  TODO:
       look at uses of ~ lspexch to see if this will shorten proofs.
       (Contributed by NM, 20-May-2015.) $)
    lspexchn1 $p |- ( ph -> -. Y e. ( N ` { X , Z } ) ) $=
      ( cpr cfv wcel adantr csn c0g eqid clvec cdif clss clmod lveclmod lspsncl
      wa syl syl2anc lssneln0 wne lspsnne2 simpr lspexch mtand ) AFEGPBQRZEFGPB
      QROAURUIBCDFEDUAQZGHUSUBZIADUCRZURJSAFCUSTUDRURADUEQZGTBQZCDFUSHUTVBUBZAV
      ADUFRZJDUGUJZAVEGCRZVCVBRVFMVBBCDGHVDIUHUKLNULSAECRURKSAVGURMSAFTBQVCUMUR
      ABCDFGHIVFLMNUNSAURUOUPUQ $.
  $}

  ${
    lspexchn2.v $e |- V = ( Base ` W ) $.
    lspexchn2.n $e |- N = ( LSpan ` W ) $.
    lspexchn2.w $e |- ( ph -> W e. LVec ) $.
    lspexchn2.x $e |- ( ph -> X e. V ) $.
    lspexchn2.y $e |- ( ph -> Y e. V ) $.
    lspexchn2.z $e |- ( ph -> Z e. V ) $.
    lspexchn2.q $e |- ( ph -> -. Y e. ( N ` { Z } ) ) $.
    lspexchn2.e $e |- ( ph -> -. X e. ( N ` { Z , Y } ) ) $.
    $( Exchange property for span of a pair with negated membership.  TODO:
       look at uses of ~ lspexch to see if this will shorten proofs.
       (Contributed by NM, 24-May-2015.) $)
    lspexchn2 $p |- ( ph -> -. Y e. ( N ` { Z , X } ) ) $=
      ( cpr cfv wcel prcom fveq2i eleq2i sylnib lspexchn1 ) AFEGPZBQZRFGEPZBQZR
      ABCDEFGHIJKLMNAEGFPZBQZREFGPZBQZROUIUKEUHUJBGFSTUAUBUCUEUGFUDUFBEGSTUAUB
      $.
  $}

  ${
    lspindpi.v $e |- V = ( Base ` W ) $.
    lspindpi.n $e |- N = ( LSpan ` W ) $.
    lspindpi.w $e |- ( ph -> W e. LVec ) $.
    lspindpi.x $e |- ( ph -> X e. V ) $.
    lspindpi.y $e |- ( ph -> Y e. V ) $.
    lspindpi.z $e |- ( ph -> Z e. V ) $.
    lspindpi.e $e |- ( ph -> -. X e. ( N ` { Y , Z } ) ) $.
    $( Partial independence property.  (Contributed by NM, 23-Apr-2015.) $)
    lspindpi $p |- ( ph
 -> ( ( N ` { X } ) =/= ( N ` { Y } ) /\ ( N ` { X } ) =/= ( N ` { Z } ) ) ) $=
      ( csn cfv wne wcel wss syl2anc cpr wn wceq clsm co csubg clss clmod clvec
      lveclmod syl eqid lsssssubg sseldd lsmub1 lsmpr sseqtr4d sseq1 syl5ibrcom
      lspsncl lspprcl lspsnel5 sylibrd necon3bd mpd lsmub2 jca ) AEOBPZFOBPZQZV
      HGOBPZQZAEFGUABPZRZUBZVJNAVNVHVIAVHVIUCZVHVMSZVNAVQVPVIVMSAVIVIVKDUDPZUEZ
      VMAVIDUFPZRZVKVTRZVIVSSADUGPZVTVIADUHRZWCVTSADUIRWDJDUJUKZWCDWCULZUMUKZAW
      DFCRVIWCRWELWCBCDFHWFIUTTUNZAWCVTVKWGAWDGCRVKWCRWEMWCBCDGHWFIUTTUNZVRVIVK
      DVRULZUOTAVRBCDFGHIWJWELMUPZUQVHVIVMURUSAWCVMBCDEHWFIWEAWCBCDFGHWFIWELMVA
      KVBZVCVDVEAVOVLNAVNVHVKAVHVKUCZVQVNAVQWMVKVMSAVKVSVMAWAWBVKVSSWHWIVRVIVKD
      WJVFTWKUQVHVKVMURUSWLVCVDVEVG $.
  $}

  ${
    lspindp1.v $e |- V = ( Base ` W ) $.
    lspindp1.o $e |- .0. = ( 0g ` W ) $.
    lspindp1.n $e |- N = ( LSpan ` W ) $.
    lspindp1.w $e |- ( ph -> W e. LVec ) $.
    ${
      lspindp1.y $e |- ( ph -> X e. ( V \ { .0. } ) ) $.
      lspindp1.z $e |- ( ph -> Y e. V ) $.
      lspindp1.x $e |- ( ph -> Z e. V ) $.
      lspindp1.q $e |- ( ph -> ( N ` { X } ) =/= ( N ` { Y } ) ) $.
      lspindp1.e $e |- ( ph -> -. Z e. ( N ` { X , Y } ) ) $.
      $( Alternate way to say 3 vectors are mutually independent (swap 1st and
         2nd).  (Contributed by NM, 11-Apr-2015.) $)
      lspindp1 $p |- ( ph
       -> ( ( N ` { Z } ) =/= ( N ` { Y } ) /\ -. X e. ( N ` { Z , Y } ) ) ) $=
        ( cfv wcel adantr csn wne cpr wn eldifad lspindpi simprd wa clvec simpr
        cdif lspexch mtand jca ) AHUABRZFUABRZUBZEHFUCBRSZUDAUOEUABRZUBUQABCDHE
        FIKLOAECGUAZMUENQUFUGAURHEFUCBRSQAURUHBCDEHGFIJKADUISURLTAECUTUKSURMTAH
        CSUROTAFCSURNTAUSUPUBURPTAURUJULUMUN $.

      $( Alternate way to say 3 vectors are mutually independent (rotate left).
         (Contributed by NM, 10-May-2015.) $)
      lspindp2l $p |- ( ph
      -> ( ( N ` { Y } ) =/= ( N ` { Z } ) /\ -. X e. ( N ` { Y , Z } ) ) ) $=
        ( csn cfv wne wcel wn lspindp1 simpld necomd simprd prcom fveq2i eleq2i
        cpr sylnib jca ) AFRBSZHRBSZTEFHUJZBSZUAZUBAUNUMAUNUMTZEHFUJZBSZUAZUBZA
        BCDEFGHIJKLMNOPQUCZUDUEAVAUQAURVBVCUFUTUPEUSUOBHFUGUHUIUKUL $.
    $}

    ${
      lspindp2.x $e |- ( ph -> X e. V ) $.
      lspindp2.y $e |- ( ph -> Y e. ( V \ { .0. } ) ) $.
      lspindp2.z $e |- ( ph -> Z e. V ) $.
      lspindp2.q $e |- ( ph -> ( N ` { X } ) =/= ( N ` { Y } ) ) $.
      lspindp2.e $e |- ( ph -> -. Z e. ( N ` { X , Y } ) ) $.
      $( Alternate way to say 3 vectors are mutually independent (rotate
         right).  (Contributed by NM, 12-Apr-2015.) $)
      lspindp2 $p |- ( ph
      -> ( ( N ` { Z } ) =/= ( N ` { X } ) /\ -. Y e. ( N ` { Z , X } ) ) ) $=
        ( csn cfv cpr necomd wcel prcom fveq2i eleq2i sylnib lspindp1 ) ABCDFEG
        HIJKLNMOAERBSFRBSPUAAHEFTZBSZUBHFETZBSZUBQUIUKHUHUJBEFUCUDUEUFUG $.
    $}
  $}

  ${
    lspindp3.v $e |- V = ( Base ` W ) $.
    lspindp3.p $e |- .+ = ( +g ` W ) $.
    ${
      lspindp3.o $e |- .0. = ( 0g ` W ) $.
      lspindp3.n $e |- N = ( LSpan ` W ) $.
      lspindp3.w $e |- ( ph -> W e. LVec ) $.
      lspindp3.x $e |- ( ph -> X e. V ) $.
      lspindp3.y $e |- ( ph -> Y e. ( V \ { .0. } ) ) $.
      lspindp3.e $e |- ( ph -> ( N ` { X } ) =/= ( N ` { Y } ) ) $.
      $( Independence of 2 vectors is preserved by vector sum.  (Contributed by
         NM, 26-Apr-2015.) $)
      lspindp3 $p |- ( ph -> ( N ` { X } ) =/= ( N ` { ( X .+ Y ) } ) ) $=
        ( csn cfv wcel adantr wne co wceq wa clvec simpr lspabs2 ex necon3d mpd
        cdif ) AFQCRZGQCRZUAULFGBUBQCRZUAPAULUNULUMAULUNUCZULUMUCAUOUDBCDEFGHIJ
        KLAEUESUOMTAFDSUONTAGDHQUKSUOOTAUOUFUGUHUIUJ $.
    $}

    lspindp4.n $e |- N = ( LSpan ` W ) $.
    lspindp4.w $e |- ( ph -> W e. LMod ) $.
    lspindp4.x $e |- ( ph -> X e. V ) $.
    lspindp4.y $e |- ( ph -> Y e. V ) $.
    lspindp4.z $e |- ( ph -> Z e. V ) $.
    lspindp4.e $e |- ( ph -> -. Z e. ( N ` { X , Y } ) ) $.
    $( (Partial) independence of 3 vectors is preserved by vector sum.
       (Contributed by NM, 26-Apr-2015.) $)
    lspindp4 $p |- ( ph -> -. Z e. ( N ` { X , ( X .+ Y ) } ) ) $=
      ( co cpr cfv lspprabs neleqtrrd ) AFFGBQRCSFGRCSHPABCDEFGIJKLMNTUA $.
  $}

  ${
    lvecindp.v $e |- V = ( Base ` W ) $.
    lvecindp.p $e |- .+ = ( +g ` W ) $.
    lvecindp.f $e |- F = ( Scalar ` W ) $.
    lvecindp.k $e |- K = ( Base ` F ) $.
    lvecindp.t $e |- .x. = ( .s ` W ) $.
    lvecindp.s $e |- S = ( LSubSp ` W ) $.
    lvecindp.w $e |- ( ph -> W e. LVec ) $.
    lvecindp.u $e |- ( ph -> U e. S ) $.
    lvecindp.x $e |- ( ph -> X e. V ) $.
    lvecindp.n $e |- ( ph -> -. X e. U ) $.
    lvecindp.y $e |- ( ph -> Y e. U ) $.
    lvecindp.z $e |- ( ph -> Z e. U ) $.
    lvecindp.a $e |- ( ph -> A e. K ) $.
    lvecindp.b $e |- ( ph -> B e. K ) $.
    lvecindp.e $e |- ( ph -> ( ( A .x. X ) .+ Y ) = ( ( B .x. X ) .+ Z ) ) $.
    $( Compute the ` X ` coefficient in a sum with an independent vector ` X `
       (first conjunct), which can then be removed to continue with the
       remaining vectors summed in expressions ` Y ` and ` Z ` (second
       conjunct).  Typically, ` U ` is the span of the remaining vectors.
       (Contributed by NM, 5-Apr-2015.)  (Revised by Mario Carneiro,
       21-Apr-2016.) $)
    lvecindp $p |- ( ph -> ( A = B /\ Y = Z ) ) $=
      ( wceq csn clspn cfv ccntz eqid clmod wcel csubg clvec lveclmod lspsnsubg
      co c0g syl syl2anc wss lsssssubg sseldd lspdisj lmodabl ablcntzd lspsneli
      cabl subgdisj1 cdif wne lssneln0 eldifsni lvecvscan2 mpbid subgdisj2 jca
      ) ABCUJZMNUJABLFVBZCLFVBZUJWCAWDMWENDLUKKULUMZUMZGKKVCUMZKUNUMZPWHUOZWIUO
      ZAKUPUQZLJUQWGKURUMZUQAKUSUQWLUAKUTVDZUCWFJKLOWFUOZVAVEZAEWMGAWLEWMVFWNEK
      TVGVDUBVHZAEGWFJKLWHOWJWOTUAUBUCUDVIZAWGGKWIWKAWLKVMUQWNKVJVDWPWQVKZABFHI
      WFJKLOSQRWOWNUGUCVLZACFHIWFJKLOSQRWOWNUHUCVLZUEUFUIVNABCFHIJKLWHOSQRWJUAU
      GUHUCALJWHUKVOUQLWHVPAEGJKLWHOWJTWNUBUCUDVQLJWHVRVDVSVTAWDMWENDWGGKWHWIPW
      JWKWPWQWRWSWTXAUEUFUIWAWB $.
  $}

  ${
    lvecindp2.v $e |- V = ( Base ` W ) $.
    lvecindp2.p $e |- .+ = ( +g ` W ) $.
    lvecindp2.f $e |- F = ( Scalar ` W ) $.
    lvecindp2.k $e |- K = ( Base ` F ) $.
    lvecindp2.t $e |- .x. = ( .s ` W ) $.
    lvecindp2.o $e |- .0. = ( 0g ` W ) $.
    lvecindp2.n $e |- N = ( LSpan ` W ) $.
    lvecindp2.w $e |- ( ph -> W e. LVec ) $.
    lvecindp2.x $e |- ( ph -> X e. ( V \ { .0. } ) ) $.
    lvecindp2.y $e |- ( ph -> Y e. ( V \ { .0. } ) ) $.
    lvecindp2.a $e |- ( ph -> A e. K ) $.
    lvecindp2.b $e |- ( ph -> B e. K ) $.
    lvecindp2.c $e |- ( ph -> C e. K ) $.
    lvecindp2.d $e |- ( ph -> D e. K ) $.
    lvecindp2.q $e |- ( ph -> ( N ` { X } ) =/= ( N ` { Y } ) ) $.
    lvecindp2.e $e |- ( ph
       -> ( ( A .x. X ) .+ ( B .x. Y ) ) = ( ( C .x. X ) .+ ( D .x. Y ) ) ) $.
    $( Sums of independent vectors must have equal coefficients.  (Contributed
       by NM, 22-Mar-2015.) $)
    lvecindp2 $p |- ( ph -> ( A = C /\ B = D ) ) $=
      ( co wceq wa csn cfv ccntz eqid clmod wcel csubg clvec lveclmod lspsnsubg
      syl eldifad syl2anc lspdisj2 cabl lmodabl ablcntzd lspsneli subgdisjb wne
      mpbid cdif eldifsni lvecvscan2 anbi12d ) ABMGULZDMGULZUMZCNGULZENGULZUMZU
      NZBDUMZCEUMZUNAVTWCFULWAWDFULUMWFUKAVTWCWAWDFMUOJUPZNUOJUPZLOLUQUPZQUAWKU
      RZALUSUTZMKUTWILVAUPZUTALVBUTWMUCLVCVEZAMKOUOZUDVFZJKLMPUBVDVGZAWMNKUTWJW
      NUTWOANKWPUEVFZJKLNPUBVDVGZAJKLMNOPUAUBUCWQWSUJVHAWIWJLWKWLAWMLVIUTWOLVJV
      EWRWTVKABGHIJKLMPTRSUBWOUFWQVLADGHIJKLMPTRSUBWOUHWQVLACGHIJKLNPTRSUBWOUGW
      SVLAEGHIJKLNPTRSUBWOUIWSVLVMVOAWBWGWEWHABDGHIKLMOPTRSUAUCUFUHWQAMKWPVPZUT
      MOVNUDMKOVQVEVRACEGHIKLNOPTRSUAUCUGUIWSANXAUTNOVNUENKOVQVEVRVSVO $.
  $}

  ${
    lspsnsubn0.v $e |- V = ( Base ` W ) $.
    lspsnsubn0.o $e |- .0. = ( 0g ` W ) $.
    lspsnsubn0.m $e |- .- = ( -g ` W ) $.
    lspsnsubn0.w $e |- ( ph -> W e. LMod ) $.
    lspsnsubn0.x $e |- ( ph -> X e. V ) $.
    lspsnsubn0.y $e |- ( ph -> Y e. V ) $.
    lspsnsubn0.e $e |- ( ph -> ( N ` { X } ) =/= ( N ` { Y } ) ) $.
    $( Unequal singleton spans imply nonzero vector subtraction.  (Contributed
       by NM, 19-Mar-2015.) $)
    lspsnsubn0 $p |- ( ph -> ( X .- Y ) =/= .0. ) $=
      ( csn cfv wne wceq wcel co clmod wb lmodsubeq0 syl3anc sneq fveq2d syl6bi
      necon3d mpd ) AFPZCQZGPZCQZRFGBUAZHROAUOHULUNAUOHSZFGSZULUNSAEUBTFDTGDTUP
      UQUCLMNFGBDEHIJKUDUEUQUKUMCFGUFUGUHUIUJ $.
  $}

  ${
    $d x y z N $.  $d x y z .(+) $.  $d x y z T $.  $d x y z U $.  $d y z W $.
    $d x y z X $.  $d x y z ph $.
    lsmcv.v $e |- V = ( Base ` W ) $.
    lsmcv.s $e |- S = ( LSubSp ` W ) $.
    lsmcv.n $e |- N = ( LSpan ` W ) $.
    lsmcv.p $e |- .(+) = ( LSSum ` W ) $.
    lsmcv.w $e |- ( ph -> W e. LVec ) $.
    lsmcv.t $e |- ( ph -> T e. S ) $.
    lsmcv.u $e |- ( ph -> U e. S ) $.
    lsmcv.x $e |- ( ph -> X e. V ) $.
    $( Subspace sum has the covering property (using spans of singletons to
       represent atoms).  Similar to Exercise 5 of [Kalmbach] p. 153.
       ( ~ spansncvi analog.)  TODO: ugly proof; can it be shortened?
       (Contributed by NM, 2-Oct-2014.) $)
    lsmcv $p |- ( ( ph /\ T C. U /\ U C_ ( T .(+) ( N ` { X } ) ) )
      -> U = ( T .(+) ( N ` { X } ) ) ) $=
      ( syl wcel syl2anc vx vy vz csn cfv co wss w3a simp3 simp2 pssss cv wn wa
      wpss pssnel cplusg wceq wrex simpl3 simprl sseldd wb csubg clmod lveclmod
      wex clvec lsssssubg lspsncl eqid lsmelval 3ad2ant1 adantr c0g wne simp1rr
      mpbid simp2l wi oveq2 eqeq2d biimpac ad2antrr lssel lmod0vrid biimpd syl7
      ex exp4a 3imp eleq1 biimparc syl6an necon3bd mpd csg cabl lmodabl simp1l1
      simp2r ablpncan2 syl3anc simp1rl eqeltrrd simp1l2 sselda syl22anc simp12r
      lssvsubcl lspsneleq lspsnel5a eqsstr3d mpd3an23 rexlimdvv exlimddv lsmlub
      3exp mpbi2and eqssd ) ADEUOZEDIUDFUEZBUFZUGZUHZEYCAYAYDUIYEDEUGZYBEUGZYCE
      UGZYEYAYFAYAYDUJZDEUKZRYEUAULZESZYKDSZUMZUNZYGUAYEYAYOUAVGYIUADEUPRYEYOUN
      ZYKUBULZUCULZHUQUEZUFZURZUCYBUSUBDUSZYGYPYKYCSZUUBYPEYCYKAYAYDYOUTYEYLYNV
      AVBYEUUCUUBVCZYOAYAUUDYDADHVDUEZSZYBUUESZUUDACUUEDAHVESZCUUEUGAHVHSZUUHNH
      VFZRZCHKVIRZOVBZACUUEYBUULAUUHIGSZYBCSZUUKQCFGHIJKLVJZTVBZUBUCYSBDYBHYKYS
      VKZMVLTVMVNVRYPUUAYGUBUCDYBYPYQDSZYRYBSZUNZUUAYGYPUVAUUAUHZYRHVOUEZVPZYRE
      SZYGUVBYNUVDYLYNYEUVAUUAVQUVBYMYRUVCUVBUUSYRUVCURZYKYQURZYMYPUUSUUTUUAVSZ
      YPUVAUUAUVFUVGVTYPUVAUUAUVFUVGUUAUVFUNYKYQUVCYSUFZURZYPUVAUVGUVFUUAUVJUVF
      YTUVIYKYRUVCYQYSWAWBWCYPUVAUVJUVGVTYPUVAUNZUVJUVGUVKUVIYQYKUVKUUHYQGSZUVI
      YQURYEUUHYOUVAAYAUUHYDUUKVMWDUVKDCSZUUSUVLYEUVMYOUVAAYAUVMYDOVMWDYPUUSUUT
      VACDGHYQJKWEZTYSGHYQUVCJUURUVCVKZWFTWBWGWIWHWJWKUVGYMUUSYKYQDWLWMWNWOWPUV
      BYTYQHWQUEZUFZYREUVBHWRSZUVLYRGSZUVQYRURUVBUUIUVRYPUVAUUIUUAYEUUIYOAYAUUI
      YDNVMVNVMZUUIUUHUVRUUJHWSRRUVBUVMUUSUVLUVBAUVMAYAYDYOUVAUUAWTZORUVHUVNTUV
      BUUOUUTUVSUVBUUHUUNUUOUVBUUIUUHUVTUUJRZUVBAUUNUWAQRUUPTYPUUSUUTUUAXACYBGH
      YRJKWETGYSHUVPYQYRJUURUVPVKZXBXCUVBUUHECSZYTESYQESZUVQESUWBUVBAUWDUWAPRUV
      BYKYTEYPUVAUUAUIYLYNYEUVAUUAXDXEUVBYAUUSUWEAYAYDYOUVAUUAXFUVHYADEYQYJXGTC
      EUVPHYTYQUWCKXJXHXEUVBUVDUVEUHZYBYRUDFUEEUWFFGHIYRUVCJUVOLUVBUVDUUIUVEUVT
      VMZUWFAUUNUVBUVDAUVEUWAVMZQRUUSUUTYPUUAUVDUVEXIUVBUVDUVEUJXKUWFCEFHYRKLUW
      FUUIUUHUWGUUJRUWFAUWDUWHPRUVBUVDUVEUIXLXMXNXRXOWPXPAYAYFYGUNYHVCZYDAUUFUU
      GEUUESUWIUUMUUQACUUEEUULPVBBDYBEHMXQXCVMXSXT $.
  $}

  ${
    $d r s t z A $.  $d r s t x y z B $.  $d r s t z N $.  $d a s t x y z ph $.
    $d r F $.  $d a s t x y Q $.  $d r S $.  $d r s t z V $.  $d a r x y z W $.
    $d r s t z .+ $.  $d r s t z .x. $.  $d r z X $.  $d r s t z Y $.
    lspsolv.v $e |- V = ( Base ` W ) $.
    lspsolv.s $e |- S = ( LSubSp ` W ) $.
    lspsolv.n $e |- N = ( LSpan ` W ) $.
    ${
      lspsolv.f $e |- F = ( Scalar ` W ) $.
      lspsolv.b $e |- B = ( Base ` F ) $.
      lspsolv.p $e |- .+ = ( +g ` W ) $.
      lspsolv.t $e |- .x. = ( .s ` W ) $.
      lspsolv.q $e |- Q = { z e. V |
                            E. r e. B ( z .+ ( r .x. Y ) ) e. ( N ` A ) } $.
      lspsolv.w $e |- ( ph -> W e. LMod ) $.
      lspsolv.ss $e |- ( ph -> A C_ V ) $.
      lspsolv.y $e |- ( ph -> Y e. V ) $.
      lspsolv.x $e |- ( ph -> X e. ( N ` ( A u. { Y } ) ) ) $.
      $( Lemma for ~ lspsolv .  (Contributed by Mario Carneiro,
         25-Jun-2014.) $)
      lspsolvlem $p |- ( ph -> E. r e. B ( X .+ ( r .x. Y ) ) e. ( N ` A ) ) $=
        ( va vx vy vs vt wcel cv cfv wrex csn cun clmod wss crab ssrab2 eqsstri
        co a1i wa c0g adantr eqid lmod0cl wceq lmod0vs syl2anc oveq2d lmod0vrid
        syl sselda eqtrd lspssid eqeltrd oveq1 eleq1d ssrabdv syl6sseqr cminusg
        rspcev cur cgrp lmodfgrp lmod1cl lmodvneg1 lmodgrp grprinv lspcl lss0cl
        grpinvcl rexbidv elrab2 sylanbrc snssd unssd lspss syl3anc cplusg cvsca
        csca cbs clss c0 wne ne0i weq cbvrexv syl6bb anbi12i an4 reeanv simp1ll
        bitri w3a simp1lr simp1rl lmodvscl simp1rr lmodvacl cmulr simp2l simp2r
        lmodmcl lmodacl syl122anc lmodvsdir syl13anc lmodvsass lmodvsdi 3eqtr4d
        lmod4 oveq1d simp3l simp3r lsscl rexlimdvv syl5bir expimpd syl5bi exp4b
        3exp 3imp2 islssd lspid sseqtrd sseldd simprbi ) AMFUMZMOUNZNHVDZEVDZCJ
        UOZUMZODUPZACNUQZURZJUOZFMAUVCFJUOZFALUSUMZFKUTZUVBFUTUVCUVDUTUDUVFAFBU
        NZUUPEVDZUURUMZODUPZBKVAZKUCUVJBKVBVCVEZACUVAFACUVKFAUVJBKCUEAUVGCUMZVF
        ZIVGUOZDUMZUVGUVONHVDZEVDZUURUMZUVJUVNUVEUVPAUVEUVMUDVHZIDLUVOSTUVOVIZV
        JVPUVNUVRUVGUURUVNUVRUVGLVGUOZEVDZUVGUVNUVQUWBUVGEAUVQUWBVKZUVMAUVENKUM
        ZUWDUDUFHIUVOKLNUWBPSUBUWAUWBVIZVLVMVHVNUVNUVEUVGKUMUWCUVGVKUVTACKUVGUE
        VQEKLUVGUWBPUAUWFVOVMVRACUURUVGAUVECKUTZCUURUTUDUECJKLPRVSVMVQVTUVIUVSO
        UVODUUOUVOVKZUVHUVRUURUWHUUPUVQUVGEUUOUVONHWAVNWBWFVMWCUCWDANFAUWENUUPE
        VDZUURUMZODUPZNFUMZUFAIWGUOZIWEUOZUOZDUMZNUWONHVDZEVDZUURUMZUWKAIWHUMZU
        WMDUMZUWPAUVEUWTUDILSWIVPAUVEUXAUDUWMIDLSTUWMVIZWJVPDIUWNUWMTUWNVIZWPVM
        AUWRUWBUURAUWRNNLWEUOZUOZEVDZUWBAUWQUXENEAUVEUWEUWQUXEVKUDUFHUWMIUWNUXD
        KLNPUXDVIZSUBUXBUXCWKVMVNALWHUMZUWEUXFUWBVKAUVEUXHUDLWLVPUFKELUXDNUWBPU
        AUWFUXGWMVMVRAUVEUURGUMZUWBUURUMUDAUVEUWGUXIUDUEGCJKLPQRWNVMZGUURLUWBUW
        FQWOVMVTUWJUWSOUWODUUOUWOVKZUWIUWRUURUXKUUPUWQNEUUOUWONHWAVNWBWFVMUVJUW
        KBNKFUVGNVKZUVIUWJODUXLUVHUWIUURUVGNUUPEWAWBWQUCWRWSZWTXAUVBFJKLPRXBXCA
        UVEFGUMUVDFVKUDAUHDEGHFIKLUIUJILXFUOVKASVEDIXGUOVKATVEKLXGUOVKAPVEELXDU
        OVKAUAVEHLXEUOVKAUBVEGLXHUOVKAQVEUVLAUWLFXIXJUXMFNXKVPAUHUNZDUMZUIUNZFU
        MZUJUNZFUMZUXNUXPHVDZUXREVDZFUMZAUXOUXQUXSUYBUXQUXSVFZUXPKUMZUXRKUMZVFZ
        UXPUKUNZNHVDZEVDZUURUMZUKDUPZUXRULUNZNHVDZEVDZUURUMZULDUPZVFZVFZAUXOVFZ
        UYBUYCUYDUYKVFZUYEUYPVFZVFUYRUXQUYTUXSVUAUVJUYKBUXPKFBUIXLZUVJUXPUUPEVD
        ZUURUMZODUPUYKVUBUVIVUDODVUBUVHVUCUURUVGUXPUUPEWAWBWQVUDUYJOUKDOUKXLZVU
        CUYIUURVUEUUPUYHUXPEUUOUYGNHWAVNWBXMXNUCWRUVJUYPBUXRKFBUJXLZUVJUXRUUPEV
        DZUURUMZODUPUYPVUFUVIVUHODVUFUVHVUGUURUVGUXRUUPEWAWBWQVUHUYOOULDOULXLZV
        UGUYNUURVUIUUPUYMUXREUUOUYLNHWAVNWBXMXNUCWRXOUYDUYKUYEUYPXPXSUYSUYFUYQU
        YBUYQUYJUYOVFZULDUPUKDUPUYSUYFVFZUYBUYJUYOUKULDDXQVUKVUJUYBUKULDDVUKUYG
        DUMZUYLDUMZVFZVUJUYBVUKVUNVUJXTZUYAKUMZUYAUUPEVDZUURUMZODUPZUYBVUOUVEUX
        TKUMZUYEVUPVUOAUVEAUXOUYFVUNVUJXRZUDVPZVUOUVEUXOUYDVUTVVBAUXOUYFVUNVUJY
        AZUYDUYEUYSVUNVUJYBZUXNHIDKLUXPPSUBTYCXCZUYDUYEUYSVUNVUJYDZEKLUXTUXRPUA
        YEXCVUOUXNUYGIYFUOZVDZUYLIXDUOZVDZDUMZUYAVVJNHVDZEVDZUURUMZVUSVUOUVEVVH
        DUMZVUMVVKVVBVUOUVEUXOVULVVOVVBVVCVUKVULVUMVUJYGZVVGIDLUXNUYGSTVVGVIZYI
        XCZVUKVULVUMVUJYHZVVIIDLVVHUYLSTVVIVIZYJXCVUOVVMUXNUYIHVDZUYNEVDZUURVUO
        UYAUXNUYHHVDZUYMEVDZEVDZUXTVWCEVDZUYNEVDZVVMVWBVUOUVEVUTUYEVWCKUMZUYMKU
        MZVWEVWGVKVVBVVEVVFVUOUVEUXOUYHKUMZVWHVVBVVCVUOUVEVULUWEVWJVVBVVPVUOAUW
        EVVAUFVPZUYGHIDKLNPSUBTYCXCZUXNHIDKLUYHPSUBTYCXCVUOUVEVUMUWEVWIVVBVVSVW
        KUYLHIDKLNPSUBTYCXCEUYMKLUXTUXRVWCPUAYQYKVUOVVLVWDUYAEVUOVVLVVHNHVDZUYM
        EVDZVWDVUOUVEVVOVUMUWEVVLVWNVKVVBVVRVVSVWKEVVIVVHUYLHIDKLNPUASUBTVVTYLY
        MVUOVWMVWCUYMEVUOUVEUXOVULUWEVWMVWCVKVVBVVCVVPVWKUXNUYGHVVGIDKLNPSUBTVV
        QYNYMYRVRVNVUOVWAVWFUYNEVUOUVEUXOUYDVWJVWAVWFVKVVBVVCVVDVWLEUXNHIDKLUXP
        UYHPUASUBTYOYMYRYPVUOUXIUXOUYJUYOVWBUURUMVUOAUXIVVAUXJVPVVCVUKVUNUYJUYO
        YSVUKVUNUYJUYOYTDEGHUURILUYIUYNUXNSTUAUBQUUAYMVTVURVVNOVVJDUUOVVJVKZVUQ
        VVMUURVWOUUPVVLUYAEUUOVVJNHWAVNWBWFVMUVJVUSBUYAKFUVGUYAVKZUVIVURODVWPUV
        HVUQUURUVGUYAUUPEWAWBWQUCWRWSUUGUUBUUCUUDUUEUUFUUHUUIGFJLQRUUJVMUUKUGUU
        LUUNMKUMUUTUVJUUTBMKFUVGMVKZUVIUUSODVWQUVHUUQUURUVGMUUPEWAWBWQUCWRUUMVP
        $.
    $}

    $( If ` X ` is in the span of ` A u. { Y } ` but not ` A ` , then ` Y ` is
       in the span of ` A u. { X } ` .  (Contributed by Mario Carneiro,
       25-Jun-2014.) $)
    lspsolv $p |- ( ( W e. LVec /\ ( A C_ V /\ Y e. V /\
                      X e. ( ( N ` ( A u. { Y } ) ) \ ( N ` A ) ) ) ) ->
                    Y e. ( N ` ( A u. { X } ) ) ) $=
      ( vr wcel wss cfv co eqid adantr wceq syl2anc syl3anc vz csn cun cdif w3a
      clvec wa cv cvsca cplusg csca cbs wrex crab lveclmod simpr1 simpr2 simpr3
      clmod eldifad lspsolvlem cinvr cmulr cur cdr c0g lvecdrng ad2antrr simprl
      wne wn lmod0vs oveq2d snssd unssd lspssv ssdifssd lmod0vrid eqtrd eqeltrd
      sseldd simprr oveq1 eleq1d syl5ibcom necon3bd drnginvrl oveq1d drnginvrcl
      eldifbd mpd lmodvsass syl13anc lmodvs1 3eqtr3d lspcl csg lmodvscl lmodcom
      lmodvpncan ssun1 a1i lspss lspssid snidg 3syl lssvsubcl syl22anc eqeltrrd
      elun2 lssvscl rexlimddv ) EUFLZADMZGDLZFAGUBZUCZCNZACNZUDZLZUEZUGZFKUHZGE
      UINZOZEUJNZOZXSLZGAFUBZUCZCNZLKEUKNZULNZYCUAAYNYGUAUHYFYGOXSLKYNUMUADUNZB
      YEYMCDEFGKHIJYMPZYNPZYGPZYEPZYOPXMEUSLZYBEUOQZXMXNXOYAUPZXMXNXOYAUQZYCFXR
      XSXMXNXOYAURZUTVAYCYDYNLZYIUGZUGZYDYMVBNZNZYFYEOZGYLUUGUUIYDYMVCNZOZGYEOZ
      YMVDNZGYEOZUUJGUUGUULUUNGYEUUGYMVELZUUEYDYMVFNZVJZUULUUNRXMUUPYBUUFYMEYPV
      GVHZYCUUEYIVIZUUGFUUQGYEOZYGOZXSLZVKUURUUGUVBXRXSUUGUVBFXTUUGUVBFEVFNZYGO
      ZFUUGUVAUVDFYGUUGYTXOUVAUVDRYCYTUUFUUAQZYCXOUUFUUCQZYEYMUUQDEGUVDHYPYSUUQ
      PZUVDPZVLSVMUUGYTFDLZUVEFRUVFUUGXTDFUUGXRDXSUUGYTXQDMXRDMUVFUUGAXPDYCXNUU
      FUUBQZUUGGDUVGVNVOXQCDEHJVPSVQYCYAUUFUUDQZWAZYGDEFUVDHYRUVIVRSVSUVLVTWJUU
      GUVCYDUUQUUGYIYDUUQRZUVCYCUUEYIWBZUVNYHUVBXSUVNYFUVAFYGYDUUQGYEWCVMWDWEWF
      WKZYNYMUUKUUNUUHYDUUQYQUVHUUKPZUUNPZUUHPZWGTWHUUGYTUUIYNLZUUEXOUUMUUJRUVF
      UUGUUPUUEUURUVTUUSUUTUVPYNYMUUHYDUUQYQUVHUVSWITZUUTUVGUUIYDYEUUKYMYNDEGHY
      PYSYQUVQWLWMUUGYTXOUUOGRUVFUVGYEUUNYMDEGHYPYSUVRWNSWOUUGYTYLBLZUVTYFYLLUU
      JYLLUVFUUGYTYKDMZUWBUVFUUGAYJDUVKUUGFDUVMVNVOZBYKCDEHIJWPSZUWAUUGYFFYGOZF
      EWQNZOZYFYLUUGYTYFDLZUVJUWHYFRUVFUUGYTUUEXOUWIUVFUUTUVGYDYEYMYNDEGHYPYSYQ
      WRTZUVMYFFYGUWGDEHYRUWGPZWTTUUGYTUWBUWFYLLFYLLUWHYLLUVFUWEUUGUWFYHYLUUGYT
      UWIUVJUWFYHRUVFUWJUVMYGDEYFFHYRWSTUUGXSYLYHUUGYTUWCAYKMZXSYLMUVFUWDUWLUUG
      AYJXAXBAYKCDEHJXCTUVOWAVTUUGYKYLFUUGYTUWCYKYLMUVFUWDYKCDEHJXDSUUGUVJFYJLF
      YKLUVMFDXEFYJAXJXFWABYLUWGEUWFFUWKIXGXHXIYNBYEYLYMEUUIYFYPYSYQIXKXHXIXL
      $.
  $}

  ${
    $d s W y z $.  $d X y z $.
    lssacsex.1 $e |- A = ( LSubSp ` W ) $.
    lssacsex.2 $e |- N = ( mrCls ` A ) $.
    lssacsex.3 $e |- X = ( Base ` W ) $.
    $( In a vector space, subspaces form an algebraic closure system whose
       closure operator has the exchange property.  Strengthening of ~ lssacs
       by ~ lspsolv .  (Contributed by David Moews, 1-May-2017.) $)
    lssacsex $p |- ( W e. LVec -> ( A e. ( ACS ` X ) /\
                                 A. s e. ~P X A. y e. X
                                 A. z e. ( ( N ` ( s u. { y } ) ) \ ( N ` s ) )
                                 y e. ( N ` ( s u. { z } ) ) ) ) $=
      ( wcel cfv cv csn cun cdif wral wa fveq1d ralrimiva clvec cacs cpw lssacs
      clmod lveclmod syl clspn wss simplll elpwid simplr simpr wceq eqid mrclsp
      simpllr 3syl difeq12d eleqtrrd lspsolv syl13anc eleqtrd jca ) EUAKZCFUBLK
      ZAMZGMZBMZNOZDLZKZBVHVGNOZDLZVHDLZPZQZAFQZGFUCZQVEEUEKZVFEUFZFCEJHUDUGVEV
      RGVSVEVHVSKZRZVQAFWCVGFKZRZVLBVPWEVIVPKZRZVGVJEUHLZLZVKWGVEVHFUIWDVIVMWHL
      ZVHWHLZPZKVGWIKVEWBWDWFUJZWGVHFVEWBWDWFUQUKWCWDWFULWGVIVPWLWEWFUMWGWJVNWK
      VOWGVMWHDWGVEVTWHDUNWMWACDWHEHWHUOZIUPURZSWGVHWHDWOSUSUTVHCWHFEVIVGJHWNVA
      VBWGVJWHDWOSVCTTTVD $.
  $}

  ${
    $d x N $.  $d x S $.  $d x U $.  $d x V $.  $d x W $.  $d x X $.
    $d x .0. $.
    lspsnat.v $e |- V = ( Base ` W ) $.
    lspsnat.z $e |- .0. = ( 0g ` W ) $.
    lspsnat.s $e |- S = ( LSubSp ` W ) $.
    lspsnat.n $e |- N = ( LSpan ` W ) $.
    $( There is no subspace strictly between the zero subspace and the span of
       a vector (i.e. a 1-dimensional subspace is an atom).  ( ~ h1datomi
       analog.)  (Contributed by NM, 20-Apr-2014.)  (Proof shortened by Mario
       Carneiro, 22-Jun-2014.) $)
    lspsnat $p |- ( ( ( W e. LVec /\ U e. S /\ X e. V ) /\
       U C_ ( N ` { X } ) ) -> ( U = ( N ` { X } ) \/ U = { .0. } ) ) $=
      ( vx wcel csn cfv wss wa wceq c0 cun clvec w3a wn wne cv wex simprl clmod
      cdif n0 simpl1 lveclmod syl simpl2 simprr eldifad lspsnel5a 0ss a1i ssdif
      simpl3 ad2antrl sseldd uncom eqtri fveq2i lsp0 difeq12d eleqtrrd syl13anc
      un0 lspsolv syl6eleq eqssd expr exlimdv syl5bi necon1bd ssdif0 syl6ibr wb
      lssle0 syl2anc sylibd orrd ) EUAMZBAMZFDMZUBZBFNZCOZPZQZBWKRZBGNZRZWMWNUC
      ZBWOPZWPWMWQBWOUIZSRWRWMWNWSSWSSUDLUEZWSMZLUFWMWNLWSUJWMXAWNLWIWLXAWNWIWL
      XAQZQZBWKWIWLXAUGXCABCEFJKXCWFEUHMZWFWGWHXBUKZEULZUMZWFWGWHXBUNZXCWTNZCOZ
      BFXCABCEWTJKXGXHXCWTBWOWIWLXAUOZUPUQXCFSXITZCOZXJXCWFSDPZWHWTSWJTZCOZSCOZ
      UIZMFXMMXEXNXCDURUSWFWGWHXBVAXCWTWKWOUIZXRXCWSXSWTWLWSXSPWIXABWKWOUTVBXKV
      CXCXPWKXQWOXPWKRXCXOWJCXOWJSTWJSWJVDWJVKVEVFUSXCXDXQWORXGCEGIKVGUMVHVISAC
      DEWTFHJKVLVJXLXICXLXISTXISXIVDXIVKVEVFVMVCUQVNVOVPVQVRBWOVSVTWMXDWGWRWPWA
      WMWFXDWFWGWHWLUKXFUMWFWGWHWLUNAEBGIJWBWCWDWE $.
  $}

  ${
    $d y ph $.
    lspsncv0.v $e |- V = ( Base ` W ) $.
    lspsncv0.z $e |- .0. = ( 0g ` W ) $.
    lspsncv0.s $e |- S = ( LSubSp ` W ) $.
    lspsncv0.n $e |- N = ( LSpan ` W ) $.
    lspsncv0.w $e |- ( ph -> W e. LVec ) $.
    lspsncv0.x $e |- ( ph -> X e. V ) $.
    lspsncv0.e $e |- ( ph -> X =/= .0. ) $.
    $( The span of a singleton covers the zero subspace, using Definition
       3.2.18 of [PtakPulmannova] p. 68 for "covers".)  (Contributed by NM,
       12-Aug-2014.) $)
    lspsncv0 $p |- ( ph
       -> -. E. y e. S ( { .0. } C. y /\ y C. ( N ` { X } ) ) ) $=
      ( csn wn wi wa wcel cv wpss cfv wral wrex wceq wss wne df-pss simpr nesym
      sylib sylbi clvec wo ad2antrr simplr lspsnat syl31anc orcomd ord ex com23
      npss syl6ibr syl5 ralrimiva ralinexa ) AHPZBUAZUBZVJGPDUCZUBZQZRZBCUDVKVM
      SBCUEQAVOBCVKVJVIUFZQZAVJCTZSZVNVKVIVJUGZVIVJUHZSZVQVIVJUIWBWAVQVTWAUJVIV
      JUKULUMVSVQVJVLUGZVJVLUFZRVNVSWCVQWDVSWCVQWDRVSWCSZVPWDWEWDVPWEFUNTZVRGET
      ZWCWDVPUOAWFVRWCMUPAVRWCUQAWGVRWCNUPVSWCUJCVJDEFGHIJKLURUSUTVAVBVCVJVLVDV
      EVFVGVKVMBCVHUL $.
  $}

  ${
    lspprat.v $e |- V = ( Base ` W ) $.
    lspprat.s $e |- S = ( LSubSp ` W ) $.
    lspprat.n $e |- N = ( LSpan ` W ) $.
    lspprat.w $e |- ( ph -> W e. LVec ) $.
    lspprat.u $e |- ( ph -> U e. S ) $.
    lspprat.x $e |- ( ph -> X e. V ) $.
    lspprat.y $e |- ( ph -> Y e. V ) $.
    lspprat.p $e |- ( ph -> U C. ( N ` { X , Y } ) ) $.
    ${
      lsppratlem1.o $e |- .0. = ( 0g ` W ) $.
      lsppratlem1.x2 $e |- ( ph -> x e. ( U \ { .0. } ) ) $.
      lsppratlem1.y2 $e |- ( ph -> y e. ( U \ ( N ` { x } ) ) ) $.
      $( Lemma for ~ lspprat .  Let ` x e. ( U \ { 0 } ) ` (if there is no such
         ` x ` then ` U ` is the zero subspace), and let
         ` y e. ( U \ ( N `` { x } ) ) ` (assuming the conclusion is false).
         The goal is to write ` X ` , ` Y ` in terms of ` x ` , ` y ` , which
         would normally be done by solving the system of linear equations.  The
         span equivalent of this process is ~ lspsolv (hence the name), which
         we use extensively below.  In this lemma, we show that since
         ` x e. ( N `` { X , Y } ) ` , either ` x e. ( N `` { Y } ) ` or
         ` X e. ( N `` { x , Y } ) ` .  (Contributed by NM, 29-Aug-2014.) $)
      lsppratlem1 $p |- ( ph
          -> ( x e. ( N ` { Y } ) \/ X e. ( N ` { x , Y } ) ) ) $=
        ( cv csn cfv wcel cpr wn cun clvec wss cdif adantr snssd pssssd eldifad
        wa sseldd prcom df-pr eqtri fveq2i syl6eleq anim1i eldif sylibr lspsolv
        syl13anc eqtr3i ex orrd ) ABUCZJUDZFUEZUFZIVLJUGZFUEZUFZAVOUHZVRAVSUQZI
        VMVLUDUIZFUEZVQVTHUJUFZVMGUKZIGUFZVLVMIUDUIZFUEZVNULUFZIWBUFAWCVSOUMAWD
        VSAJGRUNUMAWEVSQUMVTVLWGUFZVSUQWHAWIVSAVLIJUGZFUEZWGAEWKVLAEWKSUOAVLEKU
        DUAUPURWJWFFWJJIUGWFIJUSJIUTVAVBVCVDVLWGVNVEVFVMDFGHVLILMNVGVHWAVPFJVLU
        GWAVPJVLUTJVLUSVIVBVCVJVK $.

      ${
        lsppratlem2.x1 $e |- ( ph -> X e. ( N ` { x , y } ) ) $.
        lsppratlem2.y1 $e |- ( ph -> Y e. ( N ` { x , y } ) ) $.
        $( Lemma for ~ lspprat .  Show that if ` X ` and ` Y ` are both in
           ` ( N `` { x , y } ) ` (which will be our goal for each of the two
           cases above), then ` ( N `` { X , Y } ) C_ U ` , contradicting the
           hypothesis for ` U ` .  (Contributed by NM, 29-Aug-2014.)  (Revised
           by Mario Carneiro, 5-Sep-2014.) $)
        lsppratlem2 $p |- ( ph -> ( N ` { X , Y } ) C_ U ) $=
          ( cpr cfv clvec wcel clmod lveclmod syl wss csn eldifad prssi syl2anc
          cv lssss sstrd lspcl lspprss ) AIJUEFUFBUQZCUQZUEZFUFZEADVEFHIJMNAHUG
          UHHUIUHZOHUJUKZAVFVDGULVEDUHVGAVDEGAVBEUHVCEUHVDEULAVBEKUMUAUNZAVCEVB
          UMFUFUBUNZVBVCEUOUPAEDUHEGULPDEGHLMURUKUSDVDFGHLMNUTUPUCUDVAADEFHVBVC
          MNVGPVHVIVAUS $.
      $}

      ${
        lsppratlem3.x3 $e |- ( ph -> x e. ( N ` { Y } ) ) $.
        $( Lemma for ~ lspprat .  In the first case of ~ lsppratlem1 , since
           ` x e/ ( N `` (/) ) ` , also ` Y e. ( N `` { x } ) ` , and since
           ` y e. ( N `` { X , Y } ) C_ ( N `` { X , x } ) ` and
           ` y e/ ( N `` { x } ) ` , we have ` X e. ( N `` { x , y } ) ` as
           desired.  (Contributed by NM, 29-Aug-2014.) $)
        lsppratlem3 $p |- ( ph
            -> ( X e. ( N ` { x , y } ) /\ Y e. ( N ` { x , y } ) ) ) $=
          ( cpr cfv wcel csn cun clvec wss cdif clmod lveclmod syl snssd lspssv
          cv syl2anc sseldd pssssd unssd lspcl df-pr lspssid unssbd ssun1 lspss
          a1i syl3anc c0 0ss uncom un0 eqtri fveq2i syl6eleqr eldifbd wceq lsp0
          neleqtrrd eldifd syl13anc syl6eleq syl5eqss lspssp sstrd ssdifd lssss
          lspsolv ssdifssd snsspr1 jca ) AIBUQZCUQZUDZFUEZUFJWPUFAIWMUGZWNUGZUH
          ZFUEZWPAHUIUFZWQGUJIGUFWNWQIUGZUHZFUEZWQFUEZUKZUFIWTUFOAWMGAJUGZFUEZG
          WMAHULUFZXGGUJXHGUJAXAXIOHUMUNZAJGRUOXGFGHLNUPURUCUSUOZQAEXEUKZXFWNAE
          XDXEAEIJUDZFUEZXDAEXNSUTAXIXDDUFZXMXDUJXNXDUJXJAXIXCGUJZXOXJAWQXBGXKA
          IGQUOVAZDXCFGHLMNVBURAXMXBXGUHXDIJVCAXBXGXDAWQXBXDAXIXPXCXDUJXJXQXCFG
          HLNVDURVEAJXDAXEXDJAXIXPWQXCUJZXEXDUJXJXQXRAWQXBVFVHWQXCFGHLNVGVIAJVJ
          WQUHZFUEZXEAXAVJGUJZJGUFWMVJXGUHZFUEZVJFUEZUKUFJXTUFOYAAGVKVHRAWMYCYD
          AWMXHYCUCYBXGFYBXGVJUHXGVJXGVLXGVMVNVOVPAYDKUGZWMAWMEYEUAVQAXIYDYEVRX
          JFHKTNVSUNVTWAVJDFGHWMJLMNWIWBXSWQFXSWQVJUHWQVJWQVLWQVMVNVOWCZUSUOVAW
          DDXMXDFHMNWEVIWFWGUBUSWQDFGHWNILMNWIWBWOWSFWMWNVCZVOVPAXEWPJAXIWOGUJW
          QWOUJZXEWPUJXJAWOWSGYGAWQWRGXKAWNGAXLGWNAEGXEAEDUFEGUJPDEGHLMWHUNWJUB
          USUOVAWDYHAWMWNWKVHWQWOFGHLNVGVIYFUSWL $.
      $}

      ${
        lsppratlem4.x3 $e |- ( ph -> X e. ( N ` { x , Y } ) ) $.
        $( Lemma for ~ lspprat .  In the second case of ~ lsppratlem1 ,
           ` y e. ( N `` { X , Y } ) C_ ( N `` { x , Y } ) ` and
           ` y e/ ( N `` { x } ) ` implies ` Y e. ( N `` { x , y } ) ` and thus
           ` X e. ( N `` { x , Y } ) C_ ( N `` { x , y } ) ` as well.
           (Contributed by NM, 29-Aug-2014.) $)
        lsppratlem4 $p |- ( ph
            -> ( X e. ( N ` { x , y } ) /\ Y e. ( N ` { x , y } ) ) ) $=
          ( cpr cfv wcel clmod wss clvec lveclmod syl csn lssss ssdifssd sseldd
          cv cdif lspprcl cun df-pr snsspr1 prssi syl2anc lspssid syl5ss pssssd
          snssd snsspr2 syl5eqss lspssp syl3anc fveq2i syl6sseq ssdifd syl13anc
          unssd sstrd lspsolv syl6eleqr jca ) AIBUPZCUPZUDZFUEZUFJWDUFAWAJUDZFU
          EZWDIAHUGUFZWDDUFWEWDUHWFWDUHAHUIUFZWGOHUJUKZADFGHWAWBLMNWIAEKULZUQGW
          AAEGWJAEDUFEGUHPDEGHLMUMUKZUNUAUOZAEWAULZFUEZUQZGWBAEGWNWKUNUBUOZURAW
          EWMJULZUSZWDWAJUTZAWMWQWDAWMWCWDWAWBVAAWGWCGUHZWCWDUHWIAWAGUFZWBGUFWT
          WLWPWAWBGVBVCWCFGHLNVDVCVEAJWDAJWMWBULUSZFUEZWDAWHWMGUHJGUFZWBWRFUEZW
          NUQZUFJXCUFOAWAGWLVGRAWOXFWBAEXEWNAEWFXEAEIJUDZFUEZWFAEXHSVFAWGWFDUFX
          GWFUHXHWFUHWIADFGHWAJLMNWIWLRURAXGIULZWQUSWFIJUTAXIWQWFAIWFUCVGAWQWEW
          FWAJVHAWGWEGUHZWEWFUHWIAXAXDXJWLRWAJGVBVCWEFGHLNVDVCVEVPVIDXGWFFHMNVJ
          VKVQWEWRFWSVLVMVNUBUOWMDFGHWBJLMNVRVOWCXBFWAWBUTVLVSZVGVPVIDWEWDFHMNV
          JVKUCUOXKVT $.
      $}

      $( Lemma for ~ lspprat .  Combine the two cases and show a contradiction
         to ` U C. ( N `` { X , Y } ) ` under the assumptions on ` x ` and
         ` y ` .  (Contributed by NM, 29-Aug-2014.) $)
      lsppratlem5 $p |- ( ph -> ( N ` { X , Y } ) C_ U ) $=
        ( cv cpr cfv wcel wa wss clvec adantr wpss cdif lsppratlem3 lsppratlem4
        csn simpr lsppratlem1 mpjaodan simprl simprr lsppratlem2 mpdan ) AIBUCZ
        CUCZUDFUEZUFZJVEUFZUGZIJUDFUEZEUHAVCJUOFUEUFZVHIVCJUDFUEUFZAVJUGBCDEFGH
        IJKLMNAHUIUFZVJOUJAEDUFZVJPUJAIGUFZVJQUJAJGUFZVJRUJAEVIUKZVJSUJTAVCEKUO
        ULUFZVJUAUJAVDEVCUOFUEULUFZVJUBUJAVJUPUMAVKUGBCDEFGHIJKLMNAVLVKOUJAVMVK
        PUJAVNVKQUJAVOVKRUJAVPVKSUJTAVQVKUAUJAVRVKUBUJAVKUPUNABCDEFGHIJKLMNOPQR
        STUAUBUQURAVHUGBCDEFGHIJKLMNAVLVHOUJAVMVHPUJAVNVHQUJAVOVHRUJAVPVHSUJTAV
        QVHUAUJAVRVHUBUJAVFVGUSAVFVGUTVAVB $.
    $}

    ${
      $d y N $.  $d y .0. $.  $d y U $.  $d y ph $.  $d x y $.
      lsppratlem6.o $e |- .0. = ( 0g ` W ) $.
      $( Lemma for ~ lspprat .  Negating the assumption on ` y ` , we arrive
         close to the desired conclusion.  (Contributed by NM, 29-Aug-2014.) $)
      lsppratlem6 $p |- ( ph -> ( x e. ( U \ { .0. } )
       -> U = ( N ` { x } ) ) ) $=
        ( wcel vy cv csn cdif cfv wceq wa c0 wss cpr adantr clvec simprl simprr
        wpss wn lsppratlem5 ssnpss syl expr eq0rdv ssdif0 sylibr clmod lveclmod
        mt2d eldifi adantl lspsnel5a eqssd ex ) ABUBZDJUCZUDTZDVLUCEUEZUFAVNUGZ
        DVOVPDVOUDZUHUFDVOUIVPUAVQVPUAUBVQTZDHIUJEUEZUOZAVTVNRUKAVNVRVTUPZAVNVR
        UGZUGZVSDUIWAWCBUACDEFGHIJKLMAGULTZWBNUKADCTZWBOUKAHFTWBPUKAIFTWBQUKAVT
        WBRUKSAVNVRUMAVNVRUNUQVSDURUSUTVFVADVOVBVCVPCDEGVLLMAGVDTZVNAWDWFNGVEUS
        UKAWEVNOUKVNVLDTAVLDVMVGVHVIVJVK $.
    $}

    $d z N $.  $d z U $.  $d z V $.  $d z W $.  $d z ph $.
    $( A proper subspace of the span of a pair of vectors is the span of a
       singleton (an atom) or the zero subspace (if ` z ` is zero).  Proof
       suggested by Mario Carneiro, 28-Aug-2014.  (Contributed by NM,
       29-Aug-2014.) $)
    lspprat $p |- ( ph -> E. z e. V U = ( N ` { z } ) ) $=
      ( wceq wcel syl cv csn cfv wrex c0g c0 wss ssdif0 wa clmod clvec lveclmod
      cdif eqid lmod0vcl adantr simpr lss0ss syl2anc eqssd lspsn0 eqtr4d fveq2d
      sneq eqeq2d rspcev ex syl5bir wex lssss ssdifssd sseld lsppratlem6 eximdv
      wne jcad n0 df-rex 3imtr4g pm2.61dne ) ADBUAZUBZEUCZRZBFUDZDGUEUCZUBZUMZU
      FWHUFRDWGUGZAWEDWGUHAWIWEAWIUIZWFFSZDWGEUCZRZWEAWKWIAGUJSZWKAGUKSWNMGULTZ
      FGWFJWFUNZUOTUPWJDWGWLWJDWGAWIUQAWGDUGZWIAWNDCSZWQWONCGDWFWPKURUSUPUTAWLW
      GRZWIAWNWSWOEGWFWPLVATUPVBWDWMBWFFWAWFRZWCWLDWTWBWGEWAWFVDVCVEVFUSVGVHAWA
      WHSZBVIWAFSZWDUIZBVIWHUFVOWEAXAXCBAXAXBWDAWHFWAADFWGAWRDFUGNCDFGJKVJTVKVL
      ABCDEFGHIWFJKLMNOPQWPVMVPVNBWHVQWDBFVRVSVT $.
  $}

  ${
    $d s x y z B $.  $d s x y z N $.  $d s x y z V $.  $d s x y z W $.
    $d s x J $.
    islbs2.v $e |- V = ( Base ` W ) $.
    islbs2.j $e |- J = ( LBasis ` W ) $.
    islbs2.n $e |- N = ( LSpan ` W ) $.
    $( An equivalent formulation of the basis predicate in a vector space: a
       subset is a basis iff no element is in the span of the rest of the set.
       (Contributed by Mario Carneiro, 14-Jan-2015.) $)
    islbs2 $p |- ( W e. LVec -> ( B e. J <-> ( B C_ V /\
      ( N ` B ) = V /\ A. x e. B -. x e. ( N ` ( B \ { x } ) ) ) ) ) $=
      ( vz vy wcel wss cfv wceq cv csn wa eqid adantr clvec cdif wral w3a lbsss
      adantl lbssp clmod csca cur c0g wne lveclmod cdr lvecdrng drngunz syl jca
      wn lbsind2 syl3an1 3expa ralrimiva 3jca cvsca co cbs simpr1 simpr2 simprl
      simplr3 id sneq difeq2d fveq2d eleq12d notbid rspcv simpll simprr eldifsn
      sylc sylib sseldd lspsnvs syl3anc sseq1d ssdifssd syl2anc simpld lmodvscl
      clss lspcl lspsnel5 3bitr4d mtbird ralrimivva wb islbs mpbir3and impbida
      ) FUALZBCLZBEMZBDNEOZAPZBXFQZUBZDNZLZUSZABUCZUDZXBXCRZXDXEXLXCXDXBBCEFGHU
      EUFXCXEXBBCDEFGHIUGUFXNXKABXBXCXFBLZXKXBFUHLZFUINZUJNZXQUKNZULZRXCXOXKXBX
      PXTFUMZXBXQUNLXTXQFXQSZUOXQXRXSXSSZXRSZUPUQURBXRXFXQCDFXSHIYBYDYCUTVAVBVC
      VDXBXMRZXCXDXEJPZKPZFVENZVFZBYGQZUBZDNZLZUSZJXQVGNZXSQUBZUCKBUCZXBXDXEXLV
      HZXBXDXEXLVIYEYNKJBYPYEYGBLZYFYPLZRZRZYMYGYLLZUUBYSXLUUCUSZYEYSYTVJZXDXEX
      LXBUUAVKXKUUDAYGBXFYGOZXJUUCUUFXFYGXIYLUUFVLUUFXHYKDUUFXGYJBXFYGVMVNVOVPV
      QVRWBUUBYIQDNZYLMYJDNZYLMYMUUCUUBUUGUUHYLUUBXBYFYOLZYFXSULZRZYGELZUUGUUHO
      XBXMUUAVSUUBYTUUKYEYSYTVTYFYOXSWAWCZUUBBEYGYEXDUUAYRTZUUEWDZYFYHXQYODEFYG
      XSGYBYHSZYOSZYCIWEWFWGUUBFWLNZYLDEFYIGUURSZIYEXPUUAXBXPXMYATTZUUBXPYKEMYL
      UURLUUTUUBBEYJUUNWHUURYKDEFGUUSIWMWIZUUBXPUUIUULYIELUUTUUBUUIUUJUUMWJUUOY
      FYHXQYOEFYGGYBUUPUUQWKWFWNUUBUURYLDEFYGGUUSIUUTUVAUUOWNWOWPWQXBXCXDXEYQUD
      WRXMKJBYHXQCYODEFUAXSGYBUUPUUQHIYCWSTWTXA $.

    $( An equivalent formulation of the basis predicate: a subset is a basis
       iff it is a minimal spanning set.  (Contributed by Mario Carneiro,
       25-Jun-2014.) $)
    islbs3 $p |- ( W e. LVec -> ( B e. J <-> ( B C_ V /\
      ( N ` B ) = V /\ A. s ( s C. B -> ( N ` s ) C. V ) ) ) ) $=
      ( vx wcel wss cfv wpss w3a wa wne syl2anc eqid cvv clvec wceq cv wi lbsss
      wal adantl lbssp clmod lveclmod 3ad2ant1 pssss sylan9ssr 3adant1 csca cur
      lspssv c0g cdr lvecdrng drngunz syl lbspss syl3an1 df-pss sylanbrc 3expia
      jca alrimiv 3jca csn cdif wn wral simpr1 simpr2 simplr1 ssdifssd cbs fvex
      eqeltri ssexg sylancl simplr3 difssd simpr neldifsn nelne1 necomd psseq1d
      psseq1 fveq2 imbi12d spcgv syl3c dfpss3 simprbi simplr2 clss ad2antrr cun
      adantrr lspcl ssun1 undif1 sseqtr4i lspssid simprr syl5ss lspssp eqsstr3d
      snssd unssd syl3anc expr mtod ralrimiva islbs2 adantr mpbir3and impbida
      wb ) EUAKZABKZADLZACMZDUBZFUCZANZYHCMZDNZUDZFUFZOZYCYDPZYEYGYMYDYEYCABDEG
      HUEZUGYDYGYCABCDEGHIUHUGYOYLFYCYDYIYKYCYDYIOZYJDLZYJDQZYKYQEUIKZYHDLZYRYC
      YDYTYIEUJZUKYDYIUUAYCYIYDYHADYHAULYPUMUNYHCDEGIUQRYCYTEUOMZUPMZUUCURMZQZP
      YDYIYSYCYTUUFUUBYCUUCUSKUUFUUCEUUCSZUTUUCUUDUUEUUESZUUDSZVAVBVHAYHUUDUUCB
      CDEUUEHIUUGUUIUUHGVCVDYJDVEVFVGVIVJYCYNPZYDYEYGJUCZAUUKVKZVLZCMZKZVMZJAVN
      ZYCYEYGYMVOYCYEYGYMVPUUJUUPJAUUJUUKAKZPZUUODUUNLZUUSUUNDNZUUTVMZUUSUUMTKZ
      YMUUMANZUVAUUSUUMDLZDTKUVCUUSADUULYEYGYMYCUURVQVRZDEVSMTGEVSVTWAUUMDTWBWC
      YEYGYMYCUURWDUUSUUMALUUMAQUVDUUSAUULWEUUSAUUMUUSUURUUKUUMKVMAUUMQUUJUURWF
      UUKAWGUUKAUUMWHWCWIUUMAVEVFYLUVDUVAUDFUUMTYHUUMUBZYIUVDYKUVAYHUUMAWKUVGYJ
      UUNDYHUUMCWLWJWMWNWOUVAUUNDLUVBUUNDWPWQVBUUJUURUUOUUTUUJUURUUOPZPZDYFUUNY
      EYGYMYCUVHWRUVIYTUUNEWSMZKZAUUNLYFUUNLYCYTYNUVHUUBWTZUVIYTUVEUVKUVLUUJUUR
      UVEUUOUVFXBZUVJUUMCDEGUVJSZIXCRUVIAUUMUULXAZUUNAAUULXAUVOAUULXDAUULXEXFUV
      IUUMUULUUNUVIYTUVEUUMUUNLUVLUVMUUMCDEGIXGRUVIUUKUUNUUJUURUUOXHXLXMXIUVJAU
      UNCEUVNIXJXNXKXOXPXQYCYDYEYGUUQOYBYNJABCDEGHIXRXSXTYA $.
  $}

  ${
    $d A x $.  $d S x $.  $d W x $.  $d x X $.  $d x J $.
    lbsacsbs.1 $e |- A = ( LSubSp ` W ) $.
    lbsacsbs.2 $e |- N = ( mrCls ` A ) $.
    lbsacsbs.3 $e |- X = ( Base ` W ) $.
    lbsacsbs.4 $e |- I = ( mrInd ` A ) $.
    lbsacsbs.5 $e |- J = ( LBasis ` W ) $.
    $( Being a basis in a vector space is equivalent to being a basis in the
       associated algebraic closure system.  Equivalent to ~ islbs2 .
       (Contributed by David Moews, 1-May-2017.) $)
    lbsacsbs $p |- ( W e. LVec -> ( S e. J <-> ( S e. I /\ ( N ` S ) = X ) ) )
      $=
      ( vx wcel cfv wceq wn wral w3a wa clvec wss clspn cv csn cdif eqid islbs2
      clmod lveclmod mrclsp syl fveq1d eqeq1d eleq2d notbid ralbidv 3anbi23d wb
      cmre lssmre ismri 3syl anbi1d 3anan32 syl6rbbr 3bitrd ) FUANZBDNBGUBZBFUC
      OZOZGPZMUDZBVMUEUFZVJOZNZQZMBRZSVIBEOZGPZVMVNEOZNZQZMBRZSZBCNZVTTZMBDVJGF
      JLVJUGZUHVHVLVTVRWDVIVHVKVSGVHBVJEVHFUINZVJEPFUJZAEVJFHWHIUKULZUMUNVHVQWC
      MBVHVPWBVHVOWAVMVHVNVJEWKUMUOUPUQURVHWGVIWDTZVTTWEVHWFWLVTVHWIAGUTONWFWLU
      SWJGAFJHVAMABCEGIKVBVCVDVIVTWDVEVFVG $.
  $}

  ${
    $d S x y z $.  $d T x y z $.  $d W x y z $.  $d x y z J $.
    lvecdim.1 $e |- J = ( LBasis ` W ) $.
    $( The dimension theorem for vector spaces: any two bases of the same
       vector space are equinumerous.  Proven by using ~ lssacsex and
       ~ lbsacsbs to show that being a basis for a vector space is equivalent
       to being a basis for the associated algebraic closure system, and then
       using ~ acsexdimd .  (Contributed by David Moews, 1-May-2017.) $)
    lvecdim $p |- ( ( W e. LVec /\ S e. J /\ T e. J ) -> S ~~ T ) $=
      ( vy vz vx wcel cfv cv csn cun wral wa eqid 3ad2ant1 simpld simprd wceq
      clvec w3a clss cmri cmrc cbs cacs cpw lssacsex simp2 lbsacsbs mpbid simp3
      cdif wb eqtr4d acsexdimd ) DUAIZACIZBCIZUBZFGDUCJZABVBUDJZVBUEJZDUFJZHVAV
      BVEUGJIZFKZHKZGKLMVDJIGVHVGLMVDJVHVDJUNNFVENHVEUHNZURUSVFVIOUTFGVBVDDVEHV
      BPZVDPZVEPZUIQZRVKVCPZVAVFVIVMSVAAVCIZAVDJZVETZVAUSVOVQOZURUSUTUJURUSUSVR
      UOUTVBAVCCVDDVEVJVKVLVNEUKQULZRVABVCIZBVDJZVETZVAUTVTWBOZURUSUTUMURUSUTWC
      UOUTVBBVCCVDDVEVJVKVLVNEUKQULZRVAVPVEWAVAVOVQVSSVAVTWBWDSUPUQ $.
  $}

  ${
    $d x J $.  $d m n r u v w x y ph $.  $d s t u w x y S $.  $d m n r v w T $.
    $d x z C $.  $d m n u w x y z N $.  $d u w x z V $.  $d m n r u v w x W $.
    $d m n s t u x y z A $.
    lbsext.v $e |- V = ( Base ` W ) $.
    lbsext.j $e |- J = ( LBasis ` W ) $.
    lbsext.n $e |- N = ( LSpan ` W ) $.
    lbsext.w $e |- ( ph -> W e. LVec ) $.
    lbsext.c $e |- ( ph -> C C_ V ) $.
    lbsext.x $e |- ( ph -> A. x e. C -. x e. ( N ` ( C \ { x } ) ) ) $.
    lbsext.s $e |- S = { z e. ~P V | ( C C_ z /\
                         A. x e. z -. x e. ( N ` ( z \ { x } ) ) ) } $.
    $( Lemma for ~ lbsext .  The set ` S ` is the set of all linearly
       independent sets containing ` C ` ; we show here that it is nonempty.
       (Contributed by Mario Carneiro, 25-Jun-2014.) $)
    lbsextlem1 $p |- ( ph -> S =/= (/) ) $=
      ( wcel wss cv cfv c0 wne cpw csn cdif wn wral cbs cvv fvex eqeltri sylibr
      elpw2 ssid jctil wceq sseq2 difeq1 fveq2d eleq2d notbid raleqbi1dv elrab2
      wa anbi12d sylanbrc ne0i syl ) ADEQZEUAUBADHUCZQZDDRZBSZDVMUDZUEZGTZQZUFZ
      BDUGZVDZVIADHRVKNDHHIUHTUIJIUHUJUKUMULAVSVLODUNUODCSZRZVMWAVNUEZGTZQZUFZB
      WAUGZVDVTCDVJEWADUPZWBVLWGVSWADDUQWFVRBWADWHWEVQWHWDVPVMWHWCVOGWADVNURUSU
      TVAVBVEPVCVFEDVGVH $.

    ${
      lbsext.p $e |- P = ( LSubSp ` W ) $.
      lbsext.a $e |- ( ph -> A C_ S ) $.
      lbsext.z $e |- ( ph -> A =/= (/) ) $.
      lbsext.r $e |- ( ph -> [C.] Or A ) $.
      lbsext.t $e |- T = U_ u e. A ( N ` ( u \ { x } ) ) $.
      $( Lemma for ~ lbsext .  Since ` A ` is a chain (actually, we only need
         it to be closed under binary union), the union ` T ` of the spans of
         each individual element of ` A ` is a subspace, and it contains all of
         ` U. A ` (except for our target vector ` x ` - we are trying to make
         ` x ` a linear combination of all the other vectors in some set from
         ` A ` ).  (Contributed by Mario Carneiro, 25-Jun-2014.) $)
      lbsextlem2 $p |- ( ph -> ( T e. P /\ ( U. A \ { x } ) C_ T ) ) $=
        ( vr vv vw vm vn vy wcel cuni cv csn cdif wss csca cfv cbs cplusg cvsca
        eqidd wceq a1i clss ciun wral clmod clvec lveclmod syl wa cpw wn ssrab2
        crab eqsstri syl6ss sselda elpwid ssdifssd lspssv syl2an2r iunss sylibr
        ralrimiva syl5eqss c0 wne wrex lspcl lssn0 r19.2z syl2anc iunn0 eqnetrd
        sylib co eleq2i eliun difeq1 fveq2d eleq2d cbvrexv 3bitri reeanv bitr4i
        weq anbi12i w3a cun crpss wor simp1l simp2 elssuni sspwuni sstrd simp1r
        sorpssun ssun1 ssdif mp1i lspss syl3anc simp3l sseldd ssun2 simp3r eqid
        lsscl syl13anc eliuni syl6eleqr 3expia rexlimdvva syl5bi exp4b 3imp2 ex
        islssd eldifi adantl eldifn ad2antlr eldif lspssid adantlr sseld mpan2d
        syl5bir reximdva eluni2 3imtr4g mpd ssrdv syl6sseqr jca ) AIGULEUMZBUNZ
        UOZUPZIUQAUFMURUSZUTUSZMVAUSZGMVBUSZIUVDLMUGUHAUVDVCAUVEVCLMUTUSVDANVEA
        UVFVCAUVGVCGMVFUSVDAUAVEAIDEDUNZUVBUPZKUSZVGZLUEAUVJLUQZDEVHUVKLUQAUVLD
        EAMVIULZUVHEULZUVILUQZUVLAMVJULUVMQMVKVLZAUVNVMZUVHLUVBUVQUVHLAELVNZUVH
        AEHUVRUBHFCUNZUQUVAUVSUVBUPKUSULVOBUVSVHVMZCUVRVQUVRTUVTCUVRVPVRVSZVTWA
        WBZUVIKLMNPWCWDWGDEUVJLWEWFWHAIUVKWIIUVKVDAUEVEAUVJWIWJZDEWKZUVKWIWJAEW
        IWJUWCDEVHUWDUCAUWCDEUVQUVJGULZUWCAUVMUVNUVOUWEUVPUWBGUVIKLMNUAPWLWDGUV
        JMUAWMVLWGUWCDEWNWODEUVJWPWRWQAUFUNZUVEULZUGUNZIULZUHUNZIULZUWFUWHUVGWS
        UWJUVFWSZIULZAUWGUWIUWKUWMUWIUWKVMZUWHUIUNZUVBUPZKUSZULZUWJUJUNZUVBUPZK
        USZULZVMZUJEWKUIEWKZAUWGVMZUWMUWNUWRUIEWKZUXBUJEWKZVMUXDUWIUXFUWKUXGUWI
        UWHUVKULUWHUVJULZDEWKUXFIUVKUWHUEWTDUWHEUVJXAUXHUWRDUIEDUIXIZUVJUWQUWHU
        XIUVIUWPKUVHUWOUVBXBXCXDXEXFUWKUWJUVKULUWJUVJULZDEWKUXGIUVKUWJUEWTDUWJE
        UVJXAUXJUXBDUJEDUJXIZUVJUXAUWJUXKUVIUWTKUVHUWSUVBXBXCXDXEXFXJUWRUXBUIUJ
        EEXGXHUXEUXCUWMUIUJEEUXEUWOEULUWSEULVMZUXCUWMUXEUXLUXCXKZUWLUVKIUXMUWOU
        WSXLZEULZUWLUXNUVBUPZKUSZULZUWLUVKULUXMEXMXNZUXLUXOUXMAUXSAUWGUXLUXCXOZ
        UDVLUXEUXLUXCXPEUWOUWSYAWOZUXMUXQGULZUWGUWHUXQULUWJUXQULUXRUXMUVMUXPLUQ
        ZUYBUXMAUVMUXTUVPVLZUXMUXNLUVBUXMUXNUUTLUXMUXOUXNUUTUQUYAUXNEXQVLUXMAUU
        TLUQZUXTAEUVRUQUYEUWAELXRWRVLXSWBZGUXPKLMNUAPWLWOAUWGUXLUXCXTUXMUWQUXQU
        WHUXMUVMUYCUWPUXPUQZUWQUXQUQUYDUYFUWOUXNUQUYGUXMUWOUWSYBUWOUXNUVBYCYDUW
        PUXPKLMNPYEYFUXEUXLUWRUXBYGYHUXMUXAUXQUWJUXMUVMUYCUWTUXPUQZUXAUXQUQUYDU
        YFUWSUXNUQUYHUXMUWSUWOYIUWSUXNUVBYCYDUWTUXPKLMNPYEYFUXEUXLUWRUXBYJYHUVE
        UVFGUVGUXQUVDMUWHUWJUWFUVDYKUVEYKUVFYKUVGYKUAYLYMDUXNUVJUXQEUWLUVHUXNVD
        UVIUXPKUVHUXNUVBXBXCYNWOUEYOYPYQYRYSYTUUBAUVCUVKIAUKUVCUVKAUKUNZUVCULZU
        YIUVKULZAUYJVMZUYIUUTULZUYKUYJUYMAUYIUUTUVBUUCUUDUYLUYIUVHULZDEWKUYIUVJ
        ULZDEWKUYMUYKUYLUYNUYODEUYLUVNVMZUYNUYIUVBULVOZUYOUYJUYQAUVNUYIUUTUVBUU
        EUUFUYNUYQVMUYIUVIULUYPUYOUYIUVHUVBUUGUYPUVIUVJUYIAUVNUVIUVJUQZUYJAUVMU
        VNUVOUYRUVPUWBUVIKLMNPUUHWDUUIUUJUULUUKUUMDUYIEUUNDUYIEUVJXAUUOUUPUUAUU
        QUEUURUUS $.

      $( Lemma for ~ lbsext .  A chain in ` S ` has an upper bound in ` S ` .
         (Contributed by Mario Carneiro, 25-Jun-2014.) $)
      lbsextlem3 $p |- ( ph -> U. A e. S ) $=
        ( vy cuni cpw wcel wss cv csn cdif cfv wn wral wa ssrab2 eqsstri syl6ss
        crab sspwuni sylib cbs cvv fvex eqeltri elpw2 sylibr cint ssintub simpl
        wi a1i ss2rabi intss syl syl5ss c0 wne intssuni sstrd wrex eluni2 clmod
        w3a cun simpll1 clvec lveclmod crpss wor simpll2 simplr sorpssun sseldd
        syl12anc sseldi elpwid ssdifssd ssun2 ssdif mp1i lspss simpr wceq sseq2
        syl3anc difeq1 fveq2d eleq2d notbid anbi12d elrab2 simprbi simprd elun1
        raleqbi1dv simpll3 rsp sylc pm2.65da nrexdv ciun lbsextlem2 lssss lspid
        simpld syl2anc sseqtrd 3ad2ant1 syl6sseq sseld eliun syl6ib mtod syl5bi
        rexlimdv3a ralrimiv jca sylanbrc ) AEUGZLUHZUIZFUUBUJZBUKZUUBUUFULZUMZK
        UNZUIZUOZBUUBUPZUQZUUBHUIAUUBLUJZUUDAEUUCUJUUNAEHUUCUBHFCUKZUJZUUFUUOUU
        GUMZKUNZUIZUOZBUUOUPZUQZCUUCVAZUUCTUVBCUUCURUSZUTELVBVCUUBLLMVDUNVENMVD
        VFVGVHVIAUUEUULAFEVJZUUBAFUUPCUUCVAZVJZUVECFUUCVKAEUVFUJUVGUVEUJAEHUVFU
        BHUVCUVFTUVBUUPCUUCUVBUUPVMUUOUUCUIUUPUVAVLVNVOUSUTEUVFVPVQVRAEVSVTUVEU
        UBUJUCEWAVQWBAUUKBUUBUUFUUBUIUUFUFUKZUIZUFEWCAUUKUFUUFEWDAUVIUUKUFEAUVH
        EUIZUVIWFZUUJUUFDUKZUUGUMZKUNZUIZDEWCZUVKUVODEUVKUVLEUIZUQZUVOUUFUVHUVL
        WGZUUGUMZKUNZUIZUVRUVOUQZUVNUWAUUFUWCMWEUIZUVTLUJUVMUVTUJZUVNUWAUJUWCAU
        WDAUVJUVIUVQUVOWHZAMWIUIUWDQMWJVQZVQUWCUVSLUUGUWCUVSLUWCHUUCUVSUVDUWCEH
        UVSUWCAEHUJUWFUBVQUWCEWKWLZUVJUVQUVSEUIUWCAUWHUWFUDVQAUVJUVIUVQUVOWMUVK
        UVQUVOWNEUVHUVLWOWQWPZWRWSWTUVLUVSUJUWEUWCUVLUVHXAUVLUVSUUGXBXCUVMUVTKL
        MNPXDXHUVRUVOXEWPUWCUWBUOZBUVSUPZUUFUVSUIZUWJUWCUVSHUIZUWKUWIUWMFUVSUJZ
        UWKUWMUVSUUCUIUWNUWKUQZUVBUWOCUVSUUCHUUOUVSXFZUUPUWNUVAUWKUUOUVSFXGUUTU
        WJBUUOUVSUWPUUSUWBUWPUURUWAUUFUWPUUQUVTKUUOUVSUUGXIXJXKXLXRXMTXNXOXPVQU
        WCUVIUWLAUVJUVIUVQUVOXSUUFUVHUVLXQVQUWJBUVSXTYAYBYCUVKUUJUUFDEUVNYDZUIU
        VPUVKUUIUWQUUFUVKUUIIUWQAUVJUUIIUJUVIAUUIIKUNZIAUWDILUJZUUHIUJZUUIUWRUJ
        UWGAIGUIZUWSAUXAUWTABCDEFGHIJKLMNOPQRSTUAUBUCUDUEYEZYHZGILMNUAYFVQAUXAU
        WTUXBXPUUHIKLMNPXDXHAUWDUXAUWRIXFUWGUXCGIKMUAPYGYIYJYKUEYLYMDUUFEUVNYNY
        OYPYRYQYSYTUVBUUMCUUBUUCHUUOUUBXFZUUPUUEUVAUULUUOUUBFXGUUTUUKBUUOUUBUXD
        UUSUUJUXDUURUUIUUFUXDUUQUUHKUUOUUBUUGXIXJXKXLXRXMTXNUUA $.
    $}

    $d s ph $.
    lbsext.k $e |- ( ph -> ~P V e. dom card ) $.
    $( Lemma for ~ lbsext . ~ lbsextlem3 satisfies the conditions for the
       application of Zorn's lemma ~ zorn (thus invoking AC), and so there is a
       maximal linearly independent set extending ` C ` .  Here we prove that
       such a set is a basis.  (Contributed by Mario Carneiro, 25-Jun-2014.) $)
    lbsextlem4 $p |- ( ph -> E. s e. J C C_ s ) $=
      ( wss wcel vt vy vu vw cv wpss wn wral wrex ccrd cdm c0 wne crpss wor w3a
      cuni wi wal cpw csn cdif cfv crab ssrab2 eqsstri ssnum sylancl lbsextlem1
      wa clss ciun clvec adantr eqid simpr1 simpr2 simpr3 lbsextlem3 ex alrimiv
      zornn0g syl3anc wceq simprl weq sseq2 difeq1 fveq2d eleq2d notbid anbi12d
      raleqbi1dv elrab2 sylib simpld elpwid clmod lveclmod lspssv syl2anc ssun1
      syl cun a1i wel ssun2 sselii lspssid eldifn adantl ssneldd nelne1 sylancr
      vsnid necomd df-pss sylanbrc eldifi snssd unssd cbs cvv fvex elpw2 sylibr
      eqeltri simprd syl6ss ad2antrr ssdifssd adantrr simprrr cin simprrl nelsn
      nelne2 eleqtrd sylc jca disjsn disj3 uneq2d difundir syl6reqr rsp lspsolv
      eldifd syl13anc undif1 ssequn2 syl5eq expr mtod imnan ralrimiv difssd vex
      lspss sneq difeq2d difun2 syl6eq eleq12d ralsn ralun simplrr psseq2 rspcv
      id pm2.65da eq0rdv ssdif0 eqssd wb islbs2 mpbir3and reximdv2 mpd ) AJUEZU
      AUEZUFZUGZUAEUHZJEUIZDUVTSZJFUIAEUJUKZTZEULUMUBUEZESZUWIULUMZUWIUNUOZUPZU
      WIUQETZURZUBUSUWEAHUTZUWGTEUWPSUWHREDCUEZSZBUEZUWQUWSVAZVBZGVCZTZUGZBUWQU
      HZVJZCUWPVDUWPQUXFCUWPVEVFUWPEVGVHABCDEFGHIKLMNOPQVIAUWOUBAUWMUWNAUWMVJBC
      UCUWIDIVKVCZEUCUWIUCUEUWTVBGVCVLZFGHIKLMAIVMTZUWMNVNADHSUWMOVNAUWSDUWTVBG
      VCTUGBDUHUWMPVNQUXGVOZAUWJUWKUWLVPAUWJUWKUWLVQAUWJUWKUWLVRUXHVOVSVTWAJUAU
      BEWBWCAUWDUWFJEFAUVTETZUWDVJZUVTFTZUWFVJAUXLVJZUXMUWFUXNUXMUVTHSZUVTGVCZH
      WDZUWSUVTUWTVBZGVCZTZUGZBUVTUHZUXNUVTHUXNUVTUWPTZUWFUYBVJZUXNUXKUYCUYDVJA
      UXKUWDWEUXFUYDCUVTUWPECJWFZUWRUWFUXEUYBUWQUVTDWGUXDUYABUWQUVTUYEUXCUXTUYE
      UXBUXSUWSUYEUXAUXRGUWQUVTUWTWHWIWJWKWMWLQWNWOZWPWQZUXNUXPHUXNIWRTZUXOUXPH
      SAUYHUXLAUXIUYHNIWSXCVNZUYGUVTGHIKMWTXAUXNHUXPVBZULWDHUXPSUXNUDUYJUXNUDUE
      ZUYJTZUVTUVTUYKVAZXDZUFZUXNUYLVJZUVTUYNSZUVTUYNUMUYOUYQUYPUVTUYMXBZXEUYPU
      YNUVTUYPUYKUYNTUDJXFUGZUYNUVTUMUYMUYNUYKUYMUVTXGUDXOXHUYPUVTUXPUYKUXNUVTU
      XPSZUYLUXNUYHUXOUYTUYIUYGUVTGHIKMXIXAVNUYLUYKUXPTZUGUXNUYKHUXPXJXKZXLZUYK
      UYNUVTXMXNXPUVTUYNXQXRUYPUYNETZUWDUYOUGZUYPUYNUWPTZDUYNSZUWSUYNUWTVBZGVCZ
      TZUGZBUYNUHZVJZVUDUYPUYNHSVUFUYPUVTUYMHUXNUXOUYLUYGVNUYPUYKHUYLUYKHTZUXNU
      YKHUXPXSXKZXTYAUYNHHIYBVCYCKIYBYDYGYEYFUYPVUGVULUYPDUVTUYNUXNUWFUYLUXNUWF
      UYBUXNUYCUYDUYFYHZWPZVNUYRYIUYPVUKBUVTUHVUKBUYMUHZVULUYPVUKBUVTUYPBJXFZVU
      JVJZUGVUSVUKURUYPVUTVUAVUBUXNUYLVUTVUAUXNUYLVUTVJZVJZUYKUXRUWTXDZGVCZUXPV
      VBUXIUXRHSVUNUWSUXRUYMXDZGVCZUXSVBTUYKVVDTAUXIUXLVVANYJVVBUVTHUWTUXNUXOVV
      AUYGVNYKUXNUYLVUNVUTVUOYLVVBUWSVVFUXSVVBUWSVUIVVFUXNUYLVUSVUJYMVVBVUHVVEG
      VVBVVEUXRUYMUWTVBZXDVUHVVBUYMVVGUXRVVBUYMUWTYNULWDZUYMVVGWDVVBUWSUYMTUGZV
      VHVVBUWSUYKUMZVVIVVBVUSUYSVVJUXNUYLVUSVUJYOZUXNUYLUYSVUTVUCYLUWSUYKUVTYQX
      AUWSUYKYPXCUYMUWSUUAYFUYMUWTUUBWOUUCUVTUYMUWTUUDUUEWIYRVVBUYBVUSUYAUXNUYB
      VVAUXNUWFUYBVUPYHZVNVVKUYABUVTUUFYSUUHUXRUXGGHIUWSUYKKUXJMUUGUUIVVBVVCUVT
      GVVBVVCUVTUWTXDZUVTUVTUWTUUJVVBUWTUVTSVVMUVTWDVVBUWSUVTVVKXTUWTUVTUUKWOUU
      LWIYRUUMUUNVUSVUJUUOYFUUPUYPUYKUVTUYMVBZGVCZTZUGZVURUYPVVOUXPUYKUXNVVOUXP
      SZUYLUXNUYHUXOVVNUVTSVVRUYIUYGUXNUVTUYMUUQVVNUVTGHIKMUUSWCVNVUBXLVUKVVQBU
      YKUDUURBUDWFZVUJVVPVVSUWSUYKVUIVVOVVSUVJVVSVUHVVNGVVSVUHUYNUYMVBVVNVVSUWT
      UYMUYNUWSUYKUUTUVAUVTUYMUVBUVCWIUVDWKUVEYFVUKBUVTUYMUVFXAYTUXFVUMCUYNUWPE
      UWQUYNWDZUWRVUGUXEVULUWQUYNDWGUXDVUKBUWQUYNVVTUXCVUJVVTUXBVUIUWSVVTUXAVUH
      GUWQUYNUWTWHWIWJWKWMWLQWNXRAUXKUWDUYLUVGUWCVUEUAUYNEUWAUYNWDUWBUYOUWAUYNU
      VTUVHWKUVIYSUVKUVLHUXPUVMYFUVNVVLUXNUXIUXMUXOUXQUYBUPUVOAUXIUXLNVNBUVTFGH
      IKLMUVPXCUVQVUQYTVTUVRUVS $.
  $}

  ${
    $d s x y z C $.  $d s y J $.  $d s x y z N $.  $d s y z V $.  $d s x y W $.
    lbsex.j $e |- J = ( LBasis ` W ) $.
    ${
      lbsex.v $e |- V = ( Base ` W ) $.
      lbsex.n $e |- N = ( LSpan ` W ) $.
      $( For any linearly independent subset ` C ` of ` V ` , there is a basis
         containing the vectors in ` C ` .  (Contributed by Mario Carneiro,
         17-May-2015.) $)
      lbsextg $p |- ( ( ( W e. LVec /\ ~P V e. dom card ) /\ C C_ V /\
                       A. x e. C -. x e. ( N ` ( C \ { x } ) ) ) ->
                     E. s e. J C C_ s ) $=
        ( vy vz wcel wa wss cv cdif cfv wn wral clvec cpw ccrd cdm csn w3a crab
        simp1l simp2 simp3 weq sneq difeq2d fveq2d eleq12d notbid cbvralv sylib
        id wb anbi2i a1i rabbiia simp1r lbsextlem4 ) FUAMZEUBZUCUDMZNZBEOZAPZBV
        KUEZQZDRZMZSZABTZUFZKLBBLPZOZVKVSVLQZDRZMZSZAVSTZNZLVGUGCDEFGIHJVFVHVJV
        QUHVIVJVQUIVRVQKPZBWGUEZQZDRZMZSZKBTVIVJVQUJVPWLAKBAKUKZVOWKWMVKWGVNWJW
        MUSZWMVMWIDWMVLWHBVKWGULZUMUNUOUPUQURWFVTWGVSWHQZDRZMZSZKVSTZNZLVGWFXAU
        TVSVGMWEWTVTWDWSAKVSWMWCWRWMVKWGWBWQWNWMWAWPDWMVLWHVSWOUMUNUOUPUQVAVBVC
        VFVHVJVQVDVE $.

      $( For any linearly independent subset ` C ` of ` V ` , there is a basis
         containing the vectors in ` C ` .  (Contributed by Mario Carneiro,
         25-Jun-2014.)  (Revised by Mario Carneiro, 17-May-2015.) $)
      lbsext $p |- ( ( W e. LVec /\ C C_ V /\
                       A. x e. C -. x e. ( N ` ( C \ { x } ) ) ) ->
                     E. s e. J C C_ s ) $=
        ( clvec wcel cpw ccrd cdm wss cv cfv cvv cbs wa csn cdif wral wrex fvex
        wn eqeltri pwex numth3 ax-mp jctr lbsextg syl3an1 ) FKLZUOEMZNOLZUABEPA
        QZBURUBUCDRLUGABUDBGQPGCUEUOUQUPSLUQEEFTRSIFTUFUHUIUPSUJUKULABCDEFGHIJU
        MUN $.
    $}

    $( Every vector space has a basis.  This theorem is an AC equivalent; this
       is the forward implication.  (Contributed by Mario Carneiro,
       17-May-2015.) $)
    lbsexg $p |- ( ( CHOICE /\ W e. LVec ) -> J =/= (/) ) $=
      ( vs vx wac clvec wcel wa c0 cv wss wrex wne cbs cfv cpw ccrd cvv eqid id
      cdm fvex pwex wceq dfac10 biimpi syl5eleqr csn cdif clspn wn wral lbsextg
      0ss ral0 mp3an23 syl2anr rexn0 syl ) FBGHZIJDKLZDAMZAJNVAVABOPZQZRUBZHZVC
      FVAUAFVESVFVDBOUCUDFVFSUEUFUGUHVAVGIJVDLEKZJVHUIUJBUKPZPHULZEJUMVCVDUOVJE
      UPEJAVIVDBDCVDTVITUNUQURVBDAUSUT $.

    $( Every vector space has a basis.  This theorem is an AC equivalent.
       (Contributed by Mario Carneiro, 25-Jun-2014.) $)
    lbsex $p |- ( W e. LVec -> J =/= (/) ) $=
      ( wac clvec wcel c0 wne axac3 lbsexg mpan ) DBEFAGHIABCJK $.
  $}

  ${
    $d x y B $.  $d x y F $.  $d x y G $.  $d x y K $.  $d x y ph $.
    $d x y L $.  $d x y P $.
    lvecprop2d.b1 $e |- ( ph -> B = ( Base ` K ) ) $.
    lvecprop2d.b2 $e |- ( ph -> B = ( Base ` L ) ) $.
    lvecprop2d.f $e |- F = ( Scalar ` K ) $.
    lvecprop2d.g $e |- G = ( Scalar ` L ) $.
    lvecprop2d.p1 $e |- ( ph -> P = ( Base ` F ) ) $.
    lvecprop2d.p2 $e |- ( ph -> P = ( Base ` G ) ) $.
    lvecprop2d.1 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    lvecprop2d.2 $e |- ( ( ph /\ ( x e. P /\ y e. P ) ) ->
      ( x ( +g ` F ) y ) = ( x ( +g ` G ) y ) ) $.
    lvecprop2d.3 $e |- ( ( ph /\ ( x e. P /\ y e. P ) ) ->
      ( x ( .r ` F ) y ) = ( x ( .r ` G ) y ) ) $.
    lvecprop2d.4 $e |- ( ( ph /\ ( x e. P /\ y e. B ) ) ->
      ( x ( .s ` K ) y ) = ( x ( .s ` L ) y ) ) $.
    $( If two structures have the same components (properties), one is a left
       vector space iff the other one is.  This version of ~ lvecpropd also
       breaks up the components of the scalar ring.  (Contributed by Mario
       Carneiro, 27-Jun-2015.) $)
    lvecprop2d $p |- ( ph -> ( K e. LVec <-> L e. LVec ) ) $=
      ( wcel clmod cdr wa clvec lmodprop2d drngpropd anbi12d islvec 3bitr4g ) A
      HUATZFUBTZUCIUATZGUBTZUCHUDTIUDTAUJULUKUMABCDEFGHIJKLMNOPQRSUEABCEFGNOQRU
      FUGFHLUHGIMUHUI $.
  $}

  ${
    $d x y B $.  $d x y K $.  $d x y L $.  $d x y P $.  $d x y ph $.
    lvecpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    lvecpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    lvecpropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    lvecpropd.4 $e |- ( ph -> F = ( Scalar ` K ) ) $.
    lvecpropd.5 $e |- ( ph -> F = ( Scalar ` L ) ) $.
    lvecpropd.6 $e |- P = ( Base ` F ) $.
    lvecpropd.7 $e |- ( ( ph /\ ( x e. P /\ y e. B ) ) ->
      ( x ( .s ` K ) y ) = ( x ( .s ` L ) y ) ) $.
    $( If two structures have the same components (properties), one is a left
       vector space iff the other one is.  (Contributed by Mario Carneiro,
       27-Jun-2015.) $)
    lvecpropd $p |- ( ph -> ( K e. LVec <-> L e. LVec ) ) $=
      ( clmod wcel csca cfv cdr wa clvec lmodpropd eqtr3d eleq1d anbi12d islvec
      eqid 3bitr4g ) AGPQZGRSZTQZUAHPQZHRSZTQZUAGUBQHUBQAUJUMULUOABCDEFGHIJKLMN
      OUCAUKUNTAFUKUNLMUDUEUFUKGUKUHUGUNHUNUHUGUI $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Ideals
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The subring algebra; ideals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c subringAlg $.
  $c ringLMod $.
  $c RSpan $. $( Ring span function $)
  $c LIdeal $.

  $( Extend class notation with the subring algebra generator. $)
  csra $a class subringAlg $.

  $( Extend class notation with the left module induced by a ring over
     itself. $)
  crglmod $a class ringLMod $.

  $( Ring left-ideal function. $)
  clidl $a class LIdeal $.

  $( Ring span function. $)
  crsp $a class RSpan $.

  ${
    $d w s $.
    $( Given any subring of a ring, we can construct a left-algebra by
       regarding the elements of the subring as scalars and the ring itself as
       a set of vectors.  (Contributed by Mario Carneiro, 27-Nov-2014.)
       (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    df-sra $a |- subringAlg = ( w e. _V |-> ( s e. ~P ( Base ` w ) |->
      ( ( ( w sSet <. ( Scalar ` ndx ) , ( w |`s s ) >. )
              sSet <. ( .s ` ndx ) , ( .r ` w ) >. )
              sSet <. ( .i ` ndx ) , ( .r ` w ) >. ) ) ) $.

    $( Every ring can be viewed as a left module over itself.  (Contributed by
       Stefan O'Rear, 6-Dec-2014.) $)
    df-rgmod $a |- ringLMod = ( w e. _V |->
        ( ( subringAlg ` w ) ` ( Base ` w ) ) ) $.

    $( Define the class of left ideals of a given ring.  An ideal is a
       submodule of the ring viewed as a module over itself.  (Contributed by
       Stefan O'Rear, 31-Mar-2015.) $)
    df-lidl $a |- LIdeal = ( LSubSp o. ringLMod ) $.

    $( Define the linear span function in a ring (Ideal generator).
       (Contributed by Stefan O'Rear, 4-Apr-2015.) $)
    df-rsp $a |- RSpan = ( LSpan o. ringLMod ) $.
  $}

  ${
    $d s S $.  $d s V $.  $d s w W $.
    $( Lemma for ~ srabase through ~ sravsca .  (Contributed by Mario Carneiro,
       27-Nov-2014.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    sraval $p |- ( ( W e. V /\ S C_ ( Base ` W ) ) ->
        ( ( subringAlg ` W ) ` S ) = ( ( ( W
        sSet <. ( Scalar ` ndx ) , ( W |`s S ) >. )
        sSet <. ( .s ` ndx ) , ( .r ` W ) >. )
        sSet <. ( .i ` ndx ) , ( .r ` W ) >. ) ) $=
      ( vs vw wcel cbs cfv wa cnx cv cress co cop csts cmulr cvv opeq2d oveq12d
      wceq wss csca cvsca cip csra cmpt elex adantr fveq2 pweqd oveq1 mpteq12dv
      cpw id df-sra fvex mptex fvmpt syl simpr oveq2d oveq1d elpw2 sylibr ovexd
      pwex fvmptd ) CBFZACGHZUAZIZDACJUBHZCDKZLMZNZOMZJUCHZCPHZNZOMZJUDHZVRNZOM
      ZCVLCALMZNZOMZVSOMZWBOMVIUMZCUEHZQVKCQFZWIDWHWCUFZTVHWJVJCBUGUHECDEKZGHZU
      MZWLVLWLVMLMZNZOMZVQWLPHZNZOMZWAWRNZOMZUFWKQUEWLCTZDWNXBWHWCXCWMVIWLCGUIU
      JXCWTVTXAWBOXCWQVPWSVSOXCWLCWPVOOXCUNXCWOVNVLWLCVMLUKRSXCWRVRVQWLCPUIZRSX
      CWRVRWAXDRSULEDUODWHWCVICGUPZVFUQURUSVKVMATZIZVTWGWBOXGVPWFVSOXGVOWECOXGV
      NWDVLXGVMACLVKXFUTVARVAVBVBVKVJAWHFVHVJUTAVIXEVCVDVKWGWBOVEVG $.

    srapart.a $e |- ( ph -> A = ( ( subringAlg ` W ) ` S ) ) $.
    srapart.s $e |- ( ph -> S C_ ( Base ` W ) ) $.
    ${
      sralem.1 $e |- E = Slot N $.
      sralem.2 $e |- N e. NN $.
      sralem.3 $e |- ( N < 5 \/ 8 < N ) $.
      $( Lemma for ~ srabase and similar theorems.  (Contributed by Mario
         Carneiro, 4-Oct-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
      sralem $p |- ( ph -> ( E ` W ) = ( E ` A ) ) $=
        ( cfv wne c5 clt wbr c8 ltnei c6 c0 cvv wcel wceq wa cnx csca cress cop
        co csts cvsca cmulr cip adantl cbs wss sraval sylan2 eqtrd fveq2d ndxid
        csra nnrei 5re necomd 5lt8 8re lttri mpan syl jaoi ax-mp ndxarg neeq12i
        wo scandx mpbir setsnid 5lt6 6re mpan2 vscandx ipndx 3eqtri syl6reqr wn
        6lt8 str0 fvprc adantr fveq1d 0fv syl6eq sylan9eqr 3eqtr4a pm2.61ian )
        FUAUBZAFDLZBDLZUCWQAUDZWSFUEUFLZFCUGUIZUHUJUIZUEUKLZFULLZUHUJUIZUEUMLZX
        EUHUJUIZDLZWRWTBXHDWTBCFVBLZLZXHABXKUCWQGUNAWQCFUOLUPXKXHUCHCUAFUQURUSU
        TWRXCDLXFDLXIXBXADFDEIJVAZUEDLZXAMENMZENOPZQEOPZVOZXNKXOXNXPXONEENEJVCZ
        VDRVEXPNEOPZXNNQOPZXPXSVFNQEVDVGXRVHVINEVDXRRVJVKVLXMEXANDEIJVMZVPVNVQV
        RXEXDDXCXLXMXDMESMZXQYBKXOYBXPXOSEXOESOPZSEMXONSOPYCVSENSXRVDVTVHWAESXR
        VTRVJVEXPSEOPZYBSQOPXPYDWGSQEVTVGXRVHVISEVTXRRVJVKVLXMEXDSYAWBVNVQVRXEX
        GDXFXLXMXGMEQMZXQYEKXOYEXPXOQEXOEQOPZQEMXOXTYFVFENQXRVDVGVHWAEQXRVGRVJV
        EQEVGXRRVKVLXMEXGQYAWCVNVQVRWDWEWQWFZAUDZTTDLWRWSDEIWHYGWRTUCAFDWIWJYHB
        TDAYGBXKTGYGXKCTLTYGCXJTFVBWIWKCWLWMWNUTWOWP $.
    $}

    $( Base set of a subring algebra.  (Contributed by Stefan O'Rear,
       27-Nov-2014.)  (Revised by Mario Carneiro, 4-Oct-2015.)  (Revised by
       Thierry Arnoux, 16-Jun-2019.) $)
    srabase $p |- ( ph -> ( Base ` W ) = ( Base ` A ) ) $=
      ( cbs c1 df-base 1nn c5 clt wbr c8 1lt5 orci sralem ) ABCGHDEFIJHKLMNHLMO
      PQ $.

    $( Additive operation of a subring algebra.  (Contributed by Stefan O'Rear,
       27-Nov-2014.)  (Revised by Mario Carneiro, 4-Oct-2015.)  (Revised by
       Thierry Arnoux, 16-Jun-2019.) $)
    sraaddg $p |- ( ph -> ( +g ` W ) = ( +g ` A ) ) $=
      ( cplusg c2 df-plusg 2nn c5 clt wbr c8 2lt5 orci sralem ) ABCGHDEFIJHKLMN
      HLMOPQ $.

    $( Multiplicative operation of a subring algebra.  (Contributed by Stefan
       O'Rear, 27-Nov-2014.)  (Revised by Mario Carneiro, 4-Oct-2015.)
       (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    sramulr $p |- ( ph -> ( .r ` W ) = ( .r ` A ) ) $=
      ( cmulr c3 df-mulr 3nn c5 clt wbr c8 3lt5 orci sralem ) ABCGHDEFIJHKLMNHL
      MOPQ $.

    $( The set of scalars of a subring algebra.  (Contributed by Stefan O'Rear,
       27-Nov-2014.)  (Revised by Mario Carneiro, 4-Oct-2015.)  (Revised by
       Thierry Arnoux, 16-Jun-2019.) $)
    srasca $p |- ( ph -> ( W |`s S ) = ( Scalar ` A ) ) $=
      ( cvv cress co csca cfv wceq cnx cop csts scaid wne c5 c6 c0 wa cvsca cip
      wcel cmulr 5lt6 ltneii scandx vscandx neeq12i mpbir setsnid c8 5lt8 ipndx
      5re eqtri ovexd setsid sylan2 csra adantl cbs sraval eqtrd fveq2d 3eqtr4a
      wss wn str0 reldmress ovprc1 adantr fveq1d 0fv syl6eq sylan9eqr pm2.61ian
      fvprc ) DGUDZADCHIZBJKZLVTAUAZDMJKZWANOIZJKZWEMUBKZDUEKZNOIZMUCKZWHNOIZJK
      ZWAWBWFWIJKWLWHWGJWEPWDWGQRSQRSUPUFUGWDRWGSUHUIUJUKULWHWJJWIPWDWJQRUMQRUM
      UPUNUGWDRWJUMUHUOUJUKULUQAVTWAGUDWAWFLADCHURGWAJGDPUSUTWCBWKJWCBCDVAKZKZW
      KABWNLVTEVBAVTCDVCKVHWNWKLFCGDVDUTVEVFVGVTVIZAUAZTTJKWAWBJWDPVJWOWATLADCH
      VKVLVMWPBTJAWOBWNTEWOWNCTKTWOCWMTDVAVSVNCVOVPVQVFVGVR $.

    $( The scalar product operation of a subring algebra.  (Contributed by
       Stefan O'Rear, 27-Nov-2014.)  (Revised by Mario Carneiro, 4-Oct-2015.)
       (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    sravsca $p |- ( ph -> ( .r ` W ) = ( .s ` A ) ) $=
      ( cvv wcel cmulr cfv cvsca wceq cnx co cop csts vscaid c6 c8 c0 cress cip
      wa csca csra adantl cbs sraval sylan2 eqtrd fveq2d ovex fvex setsid mp2an
      wss wne 6lt8 ltneii vscandx ipndx neeq12i mpbir setsnid eqtri syl6reqr wn
      6re str0 fvprc adantr fveq1d 0fv syl6eq sylan9eqr 3eqtr4a pm2.61ian ) DGH
      ZADIJZBKJZLVRAUCZVTDMUDJDCUANOZPNZMKJZVSOPNZMUBJZVSOPNZKJZVSWABWGKWABCDUE
      JZJZWGABWJLVREUFAVRCDUGJUPWJWGLFCGDUHUIUJUKVSWEKJZWHWCGHVSGHVSWKLDWBPULDI
      UMGVSKGWCQUNUOVSWFKWEQWDWFUQRSUQRSVHURUSWDRWFSUTVAVBVCVDVEVFVRVGZAUCZTTKJ
      VSVTKWDQVIWLVSTLADIVJVKWMBTKAWLBWJTEWLWJCTJTWLCWITDUEVJVLCVMVNVOUKVPVQ $.

    $( The inner product operation of a subring algebra.  (Contributed by
       Thierry Arnoux, 16-Jun-2019.) $)
    sraip $p |- ( ph -> ( .r ` W ) = ( .i ` A ) ) $=
      ( cvv wcel cmulr cfv cip wceq wa cnx co cop csts csra fveq2d c0 cress cbs
      csca cvsca adantl wss sraval sylan2 eqtrd ovex fvex setsid mp2an syl6reqr
      ipid wn str0 fvprc adantr fveq1d 0fv syl6eq sylan9eqr 3eqtr4a pm2.61ian )
      DGHZADIJZBKJZLVFAMZVHDNUCJDCUAOPQOZNUDJVGPZQOZNKJZVGPQOZKJZVGVIBVNKVIBCDR
      JZJZVNABVQLVFEUEAVFCDUBJUFVQVNLFCGDUGUHUISVLGHVGGHVGVOLVJVKQUJDIUKGVGKGVL
      UOULUMUNVFUPZAMZTTKJVGVHKVMUOUQVRVGTLADIURUSVSBTKAVRBVQTEVRVQCTJTVRCVPTDR
      URUTCVAVBVCSVDVE $.

    $( Topology component of a subring algebra.  (Contributed by Mario
       Carneiro, 4-Oct-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    sratset $p |- ( ph -> ( TopSet ` W ) = ( TopSet ` A ) ) $=
      ( cts c9 df-tset 9nn c8 clt wbr c5 8lt9 olci sralem ) ABCGHDEFIJKHLMHNLMO
      PQ $.

    $( Topology component of a subring algebra.  (Contributed by Mario
       Carneiro, 4-Oct-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    sratopn $p |- ( ph -> ( TopOpen ` W ) = ( TopOpen ` A ) ) $=
      ( srabase sratset topnpropd ) ADBABCDEFGABCDEFHI $.

    $( Distance function of a subring algebra.  (Contributed by Mario Carneiro,
       4-Oct-2015.)  (Revised by Thierry Arnoux, 16-Jun-2019.) $)
    srads $p |- ( ph -> ( dist ` W ) = ( dist ` A ) ) $=
      ( cds c1 c2 cdc df-ds 1nn0 2nn decnncl c8 clt wbr c5 1nn 2nn0 8nn0 declti
      8lt10 olci sralem ) ABCGHIJZDEFKHILMNOUFPQUFRPQHIOSTUAUCUBUDUE $.
  $}

  ${
    $d x y z S $.  $d x y A $.  $d x y z W $.
    sralmod.a $e |- A = ( ( subringAlg ` W ) ` S ) $.
    $( The subring algebra is a left module.  (Contributed by Stefan O'Rear,
       27-Nov-2014.) $)
    sralmod $p |- ( S e. ( SubRing ` W ) -> A e. LMod ) $=
      ( vx vy vz cfv wcel cplusg co wceq eqid cgrp cv wa adantr sseldi syl13anc
      w3a csubrg cbs cin cmulr cur cress subrgss srabase sraaddg srasca sravsca
      csra a1i ressbas ressplusg ressmulr subrg1 subrgring crg subrgrcl ringgrp
      syl eqidd oveqdr grppropd mpbid 3ad2ant1 inss2 sseli simp3 ringcl syl3anc
      3ad2ant2 simpr1 simpr2 simpr3 ringdi ringdir ringass ringlidm islmodd
      sylan ) BCUAHZIZEFGBCUBHZUCZCJHZWGCUDHZWHCUEHZCBUFKZWEAWDABCABCULHHLWDDUM
      ZBWECWEMZUGZUHZWDABCWKWMUIZWDABCWKWMUJWDABCWKWMUKBWEWJWCCWJMZWLUNBWGCWJWC
      WPWGMZUOBCWJWHWCWPWHMZUPBCWJWIWPWIMZUQBCWJWPURWDCNIZANIWDCUSIZWTBCUTZCVAV
      BWDEFWECAWDWEVCWNWDEOZWEIZFOZWEIZPEFWGAJHWOVDVEVFWDXCWFIZXFTXAXDXFXCXEWHK
      ZWEIWDXGXAXFXBVGXGWDXDXFWFWEXCBWEVHZVIVMWDXGXFVJWECWHXCXEWLWRVKVLWDXGXFGO
      ZWEIZTZPZXAXDXFXKXCXEXJWGKWHKXHXCXJWHKZWGKLWDXAXLXBQXMWFWEXCXIWDXGXFXKVNR
      WDXGXFXKVOWDXGXFXKVPWEWGCWHXCXEXJWLWQWRVQSWDXGXEWFIZXKTZPZXAXDXFXKXCXEWGK
      XJWHKXNXEXJWHKZWGKLWDXAXPXBQZXQWFWEXCXIWDXGXOXKVNRZXQWFWEXEXIWDXGXOXKVORZ
      WDXGXOXKVPZWEWGCWHXCXEXJWLWQWRVRSXQXAXDXFXKXHXJWHKXCXRWHKLXSXTYAYBWECWHXC
      XEXJWLWRVSSWDXAXDWIXCWHKXCLXBWECWHWIXCWLWRWSVTWBWA $.
  $}

  ${
    $d a b A $.  $d a b ph $.  $d a b W $.
    sralmod0.a $e |- ( ph -> A = ( ( subringAlg ` W ) ` S ) ) $.
    sralmod0.z $e |- ( ph -> .0. = ( 0g ` W ) ) $.
    sralmod0.s $e |- ( ph -> S C_ ( Base ` W ) ) $.
    $( The subring module inherits a zero from its ring.  (Contributed by
       Stefan O'Rear, 27-Dec-2014.) $)
    sralmod0 $p |- ( ph -> .0. = ( 0g ` A ) ) $=
      ( va vb c0g cfv cbs eqidd srabase cv wcel wa cplusg sraaddg oveqdr eqtrd
      grpidpropd ) AEDKLBKLGAIJDMLZDBAUDNABCDFHOAIPUDQJPUDQRIJDSLBSLABCDFHTUAUC
      UB $.
  $}

  ${
    $d x y .0. $.  $d x y D $.  $d x y I $.  $d x y .+ $.  $d x y ph $.
    $d x y S $.  $d x y .x. $.
    issubrngd.s $e |- ( ph -> S = ( I |`s D ) ) $.
    issubrngd.z $e |- ( ph -> .0. = ( 0g ` I ) ) $.
    issubrngd.p $e |- ( ph -> .+ = ( +g ` I ) ) $.
    issubrngd.ss $e |- ( ph -> D C_ ( Base ` I ) ) $.
    issubrngd.zcl $e |- ( ph -> .0. e. D ) $.
    issubrngd.acl $e |- ( ( ph /\ x e. D /\ y e. D ) -> ( x .+ y ) e. D ) $.
    issubrngd.ncl $e |- ( ( ph /\ x e. D ) -> ( ( invg ` I ) ` x ) e. D ) $.
    issubrngd.o $e |- ( ph -> .1. = ( 1r ` I ) ) $.
    issubrngd.t $e |- ( ph -> .x. = ( .r ` I ) ) $.
    issubrngd.ocl $e |- ( ph -> .1. e. D ) $.
    issubrngd.tcl $e |- ( ( ph /\ x e. D /\ y e. D ) -> ( x .x. y ) e. D ) $.
    issubrngd.g $e |- ( ph -> I e. Ring ) $.
    $( Prove a subring by closure (definition version).  (Contributed by Stefan
       O'Rear, 7-Dec-2014.) $)
    issubrngd2 $p |- ( ph -> D e. ( SubRing ` I ) ) $=
      ( csubrg cfv wcel csubg cur cv cmulr wral crg cgrp ringgrp syl issubgrpd2
      co eqeltrrd wa oveqdr 3expb ralrimivva w3a wb cbs eqid issubrg2 mpbir3and
      ) ADIUCUDUEZDIUFUDUEZIUGUDZDUEZBUHZCUHZIUIUDZUPZDUEZCDUJBDUJZABCDEFIJKLMN
      OPQAIUKUEZIULUEUBIUMUNUOAHVJDRTUQAVPBCDDAVLDUEZVMDUEZURZURVLVMGUPZVODAWAB
      CGVNSUSAVSVTWBDUEUAUTUQVAAVRVHVIVKVQVBVCUBBCDIVDUDZIVNVJWCVEVJVEVNVEVFUNV
      G $.
  $}

  ${
    $d W a $.
    $( ` ringLMod ` is a function.  (Contributed by Stefan O'Rear,
       6-Dec-2014.) $)
    rlmfn $p |- ringLMod Fn _V $=
      ( va cvv cv cbs cfv csra crglmod fvex df-rgmod fnmpti ) ABACZDEZKFEZEGLMH
      AIJ $.

    $( Value of the ring module.  (Contributed by Stefan O'Rear,
       31-Mar-2015.) $)
    rlmval $p |- ( ringLMod ` W ) = ( ( subringAlg ` W ) ` ( Base ` W ) ) $=
      ( va cvv wcel crglmod cfv cbs csra wceq fveq2 fveq12d df-rgmod fvex fvmpt
      cv wn c0 0fv eqcomi fvprc fveq1d 3eqtr4a pm2.61i ) ACDZAEFZAGFZAHFZFZIBAB
      OZGFZUIHFZFUHCEUIAIUJUFUKUGUIAHJUIAGJKBLUFUGMNUDPZQUFQFZUEUHUMQUFRSAETULU
      FUGQAHTUAUBUC $.

    $( Value of the set of ring ideals.  (Contributed by Stefan O'Rear,
       31-Mar-2015.) $)
    lidlval $p |- ( LIdeal ` W ) = ( LSubSp ` ( ringLMod ` W ) ) $=
      ( clidl cfv clss crglmod ccom df-lidl fveq1i 00lss wfun rlmfn fnfun ax-mp
      cvv wfn fvco4i eqtri ) ABCADEFZCAECDCABRGHDEAIENOEJKNELMPQ $.

    $( Value of the ring span function.  (Contributed by Stefan O'Rear,
       4-Apr-2015.) $)
    rspval $p |- ( RSpan ` W ) = ( LSpan ` ( ringLMod ` W ) ) $=
      ( crsp cfv clspn crglmod ccom df-rsp 00lsp cvv wfn wfun rlmfn fnfun ax-mp
      fveq1i fvco4i eqtri ) ABCADEFZCAECDCABRGODEAHEIJEKLIEMNPQ $.
  $}

  $( Value of the ring module extended.  (Contributed by AV, 2-Dec-2018.)
     (Revised by Thierry Arnoux, 16-Jun-2019.) $)
  rlmval2 $p |- ( W e. X -> ( ringLMod ` W )
                          = ( ( ( W sSet <. ( Scalar ` ndx ) , W >. )
                                    sSet <. ( .s ` ndx ) , ( .r ` W ) >. )
                                    sSet <. ( .i ` ndx ) , ( .r ` W ) >. ) ) $=
    ( wcel crglmod cfv cbs csra cnx csca cress co cop csts cvsca cmulr cip wceq
    rlmval a1i oveq1d wss ssid sraval mpan2 eqid ressid opeq2d oveq2d 3eqtrd )
    ABCZADEZAFEZAGEEZAHIEZAULJKZLZMKZHNEAOEZLZMKZHPEURLZMKZAUNALZMKZUSMKZVAMKUK
    UMQUJARSUJULULUAUMVBQULUBULBAUCUDUJUTVEVAMUJUQVDUSMUJUPVCAMUJUOAUNULABULUEU
    FUGUHTTUI $.

  $( Base set of the ring module.  (Contributed by Stefan O'Rear,
     31-Mar-2015.) $)
  rlmbas $p |- ( Base ` R ) = ( Base ` ( ringLMod ` R ) ) $=
    ( cbs cfv crglmod wceq wtru csra rlmval a1i wss ssid srabase trud ) ABCZADC
    ZBCEFONAONAGCCEFAHINNJFNKILM $.

  $( Vector addition in the ring module.  (Contributed by Stefan O'Rear,
     31-Mar-2015.) $)
  rlmplusg $p |- ( +g ` R ) = ( +g ` ( ringLMod ` R ) ) $=
    ( cplusg cfv crglmod wceq wtru cbs csra rlmval a1i wss ssid sraaddg trud )
    ABCADCZBCEFOAGCZAOPAHCCEFAIJPPKFPLJMN $.

  $( Zero vector in the ring module.  (Contributed by Stefan O'Rear,
     6-Dec-2014.)  (Revised by Mario Carneiro, 2-Oct-2015.) $)
  rlm0 $p |- ( 0g ` R ) = ( 0g ` ( ringLMod ` R ) ) $=
    ( c0g cfv crglmod wceq wtru cbs csra rlmval a1i eqidd ssid sralmod0 trud
    wss ) ABCZADCZBCEFQAGCZAPQRAHCCEFAIJFPKRROFRLJMN $.

  $( Subtraction in the ring module.  (Contributed by Thierry Arnoux,
     30-Jun-2019.) $)
  rlmsub $p |- ( -g ` R ) = ( -g ` ( ringLMod ` R ) ) $=
    ( csg cfv crglmod wceq wtru cbs rlmbas a1i cplusg rlmplusg grpsubpropd trud
    ) ABCADCZBCEFANAGCNGCEFAHIAJCNJCEFAKILM $.

  $( Ring multiplication in the ring module.  (Contributed by Mario Carneiro,
     6-Oct-2015.) $)
  rlmmulr $p |- ( .r ` R ) = ( .r ` ( ringLMod ` R ) ) $=
    ( cmulr cfv crglmod wceq wtru cbs csra rlmval a1i wss ssid sramulr trud ) A
    BCADCZBCEFOAGCZAOPAHCCEFAIJPPKFPLJMN $.

  $( Scalars in the ring module.  (Contributed by Stefan O'Rear,
     6-Dec-2014.) $)
  rlmsca $p |- ( R e. X -> R = ( Scalar ` ( ringLMod ` R ) ) ) $=
    ( wcel cbs cfv cress crglmod csca eqid ressid csra wceq rlmval a1i wss ssid
    co srasca eqtr3d ) ABCZAADEZFQAAGEZHEUAABUAIJTUBUAAUBUAAKEELTAMNUAUAOTUAPNR
    S $.

  $( Scalars in the ring module.  (Contributed by Stefan O'Rear,
     1-Apr-2015.) $)
  rlmsca2 $p |- ( _I ` R ) = ( Scalar ` ( ringLMod ` R ) ) $=
    ( cid cfv cbs cress co crglmod csca cvv wcel wceq fvi eqid ressid eqtr4d wn
    c0 fvprc wtru a1i reldmress ovprc1 pm2.61i csra rlmval wss ssid srasca trud
    eqtri ) ABCZAADCZEFZAGCZHCZAIJZUKUMKUPUKAUMAILULAIULMNOUPPUKQUMABRAULEUAUBO
    UCUMUOKSUNULAUNULAUDCCKSAUETULULUFSULUGTUHUIUJ $.

  $( Scalar multiplication in the ring module.  (Contributed by Stefan O'Rear,
     31-Mar-2015.) $)
  rlmvsca $p |- ( .r ` R ) = ( .s ` ( ringLMod ` R ) ) $=
    ( cmulr cfv crglmod cvsca wceq wtru cbs csra rlmval a1i ssid sravsca trud
    wss ) ABCADCZECFGPAHCZAPQAICCFGAJKQQOGQLKMN $.

  $( Topology component of the ring module.  (Contributed by Mario Carneiro,
     6-Oct-2015.) $)
  rlmtopn $p |- ( TopOpen ` R ) = ( TopOpen ` ( ringLMod ` R ) ) $=
    ( ctopn cfv crglmod wceq wtru cbs csra rlmval a1i wss ssid sratopn trud ) A
    BCADCZBCEFOAGCZAOPAHCCEFAIJPPKFPLJMN $.

  $( Metric component of the ring module.  (Contributed by Mario Carneiro,
     6-Oct-2015.) $)
  rlmds $p |- ( dist ` R ) = ( dist ` ( ringLMod ` R ) ) $=
    ( cds cfv crglmod wceq wtru cbs csra rlmval a1i wss ssid srads trud ) ABCAD
    CZBCEFOAGCZAOPAHCCEFAIJPPKFPLJMN $.

  $( The ring module is a module.  (Contributed by Stefan O'Rear,
     6-Dec-2014.) $)
  rlmlmod $p |- ( R e. Ring -> ( ringLMod ` R ) e. LMod ) $=
    ( crg wcel crglmod cfv cbs csra rlmval csubrg eqid subrgid sralmod syl5eqel
    clmod syl ) ABCZADEAFEZAGEEZNAHPQAIECRNCQAQJKRQARJLOM $.

  $( The ring module over a division ring is a vector space.  (Contributed by
     Mario Carneiro, 4-Oct-2015.) $)
  rlmlvec $p |- ( R e. DivRing -> ( ringLMod ` R ) e. LVec ) $=
    ( cdr wcel crglmod cfv clmod clvec crg drngring rlmlmod syl rlmsca eqeltrrd
    csca id eqid islvec sylanbrc ) ABCZADEZFCZTNEZBCTGCSAHCUAAIAJKSAUBBABLSOMUB
    TUBPQR $.

  ${
    $d x y R $.
    $( Vector negation in the ring module.  (Contributed by Stefan O'Rear,
       6-Dec-2014.)  (Revised by Mario Carneiro, 5-Jun-2015.) $)
    rlmvneg $p |- ( invg ` R ) = ( invg ` ( ringLMod ` R ) ) $=
      ( vx vy cminusg cfv crglmod wceq wtru cbs eqidd rlmbas a1i cv wcel cplusg
      wa rlmplusg oveqd grpinvpropd trud ) ADEAFEZDEGHBCAIEZAUAHUBJUBUAIEGHAKLH
      BMZUBNCMZUBNPPZAOEZUAOEZUCUDUFUGGUEAQLRST $.

    $( Functionalized scalar multiplication in the ring module.  (Contributed
       by Mario Carneiro, 6-Oct-2015.) $)
    rlmscaf $p |- ( +f ` ( mulGrp ` R ) ) = ( .sf ` ( ringLMod ` R ) ) $=
      ( vx vy cmgp cfv cplusf cbs cv cmulr co cmpt2 crglmod cscaf eqid mgpplusg
      mgpbas plusffval cid rlmbas rlmsca2 c1 df-base strfvi rlmvsca scaffval
      eqtr4i ) ADEZFEZBCAGEZUIBHCHAIEZJKALEZMEZBCUIUJUHUGUIAUGUGNZUINZPAUJUGUMU
      JNOUHNQBCUIULUJAREUIUKASATAGUAUIUBUNUCULNAUDUEUF $.
  $}

  ${
    $d R f x $.  $d V f $.  $d W f $.  $d X f x $.
    $( The value of an infinite Cartesian product of the base of a left module
       over a ring with a singleton.  (Contributed by AV, 3-Dec-2018.) $)
    ixpsnbasval $p |- ( ( R e. V /\ X e. W )
         -> X_ x e. { X } ( Base ` ( ( { X } X. { ( ringLMod ` R ) } ) ` x ) )
            = { f | ( f Fn { X } /\ ( f ` X ) e. ( Base ` R ) ) } ) $=
      ( wcel wa csn cv crglmod cfv cbs csb cab wceq adantl fveq2d eqtrd cvv cxp
      cixp wfn ixpsnval csbfv2g csbvarg cop fvexd anim1i ancomd xpsng syl fvsng
      fveq1d rlmbas syl6eqr eleq2d anbi2d abbidv ) BDGZFEGZHZAFIZAJZVCBKLZIUAZL
      ZMLZUBZCJZVCUCZFVJLZAFVHNZGZHZCOZVKVLBMLZGZHZCOVAVIVPPUTAVHCEFUDQVBVOVSCV
      BVNVRVKVBVMVQVLVBVMVEMLZVQVBVMFVFLZMLZVTVAVMWBPUTVAVMAFVGNZMLWBAFVGEMUEVA
      WCWAMVAWCAFVDNZVFLWAAFVDEVFUEVAWDFVFAFEUFRSRSQVBWAVEMVBWAFFVEUGIZLZVEVBFV
      FWEVBVAVETGZHZVFWEPVBWGVAUTWGVAUTBKUHUIUJZFVEETUKULUNVBWHWFVEPWIFVEETUMUL
      SRSBUOUPUQURUSS $.
  $}

  ${
    lidlss.b $e |- B = ( Base ` W ) $.
    lidlss.i $e |- I = ( LIdeal ` W ) $.
    $( An ideal is a subset of the base set.  (Contributed by Stefan O'Rear,
       28-Mar-2015.) $)
    lidlss $p |- ( U e. I -> U C_ B ) $=
      ( crglmod cfv cbs rlmbas eqtri clidl clss lidlval lssss ) CBADGHZADIHPIHE
      DJKCDLHPMHFDNKO $.
  $}

  ${
    $d B x $.  $d I a b x $.  $d R a b x $.
    islidl.s $e |- U = ( LIdeal ` R ) $.
    islidl.b $e |- B = ( Base ` R ) $.
    islidl.p $e |- .+ = ( +g ` R ) $.
    islidl.t $e |- .x. = ( .r ` R ) $.
    $( Predicate of being a (left) ideal.  (Contributed by Stefan O'Rear,
       1-Apr-2015.) $)
    islidl $p |- ( I e. U <-> ( I C_ B /\ I =/= (/) /\
          A. x e. B A. a e. I A. b e. I ( ( x .x. a ) .+ b ) e. I ) ) $=
      ( cid cfv crglmod rlmsca2 cbs eqtri cplusg cnx baseid strfvi rlmbas cmulr
      rlmplusg cvsca rlmvsca clidl clss lidlval islss ) ABCFEGDNOBDPOZHIDQDRUAR
      OBUBKUCBDROUMROKDUDSCDTOUMTOLDUFSEDUEOUMUGOMDUHSFDUIOUMUJOJDUKSUL $.
  $}

  ${
    lidlcl.u $e |- U = ( LIdeal ` R ) $.
    ${
      lidl0cl.z $e |- .0. = ( 0g ` R ) $.
      $( An ideal contains 0.  (Contributed by Stefan O'Rear, 3-Jan-2015.) $)
      lidl0cl $p |- ( ( R e. Ring /\ I e. U ) -> .0. e. I ) $=
        ( crg wcel wa crglmod cfv c0g rlm0 eqtri clmod clss rlmlmod adantr eqid
        simpr clidl lidlval syl6eleq lss0cl syl2anc syl5eqel ) AGHZCBHZIZDAJKZL
        KZCDALKUKFAMNUIUJOHZCUJPKZHUKCHUGULUHAQRUICBUMUGUHTBAUAKUMEAUBNUCUMCUJU
        KUKSUMSUDUEUF $.
    $}

    ${
      lidlacl.p $e |- .+ = ( +g ` R ) $.
      $( An ideal is closed under addition.  (Contributed by Stefan O'Rear,
         3-Jan-2015.) $)
      lidlacl $p |- ( ( ( R e. Ring /\ I e. U ) /\ ( X e. I /\ Y e. I ) ) ->
          ( X .+ Y ) e. I ) $=
        ( crg wcel wa co crglmod cfv cplusg rlmplusg eqtri oveqi clmod eqid jca
        clss rlmlmod adantr simpr clidl lidlval syl6eleq lssvacl sylan syl5eqel
        ) BIJZDCJZKZEDJFDJKZKEFALEFBMNZONZLZDAUQEFABONUQHBPQRUNUPSJZDUPUBNZJZKU
        OURDJUNUSVAULUSUMBUCUDUNDCUTULUMUECBUFNUTGBUGQUHUAUQUTDUPEFUQTUTTUIUJUK
        $.
    $}

    ${
      lidlnegcl.n $e |- N = ( invg ` R ) $.
      $( An ideal contains negatives.  (Contributed by Stefan O'Rear,
         3-Jan-2015.) $)
      lidlnegcl $p |- ( ( R e. Ring /\ I e. U /\ X e. I ) ->
          ( N ` X ) e. I ) $=
        ( crg wcel w3a cfv crglmod cminusg rlmvneg eqtri fveq1i clmod clss eqid
        rlmlmod 3ad2ant1 simpr clidl lidlval syl6eleq 3adant3 lssvnegcl syl3anc
        wa simp3 syl5eqel ) AHIZCBIZECIZJZEDKEALKZMKZKZCEDUQDAMKUQGANOPUOUPQIZC
        UPRKZIZUNURCIULUMUSUNATUAULUMVAUNULUMUICBUTULUMUBBAUCKUTFAUDOUEUFULUMUN
        UJUTCUQUPEUTSUQSUGUHUK $.
    $}

    $d x y I $.  $d x y R $.  $d x y U $.
    $( An ideal is a subgroup of the additive group.  (Contributed by Mario
       Carneiro, 14-Jun-2015.) $)
    lidlsubg $p |- ( ( R e. Ring /\ I e. U ) -> I e. ( SubGrp ` R ) ) $=
      ( vx vy crg wcel wa csubg cfv cbs wss c0 wne cv wral eqid syl ralrimiva
      cplusg cminusg lidlss adantl lidl0cl ne0i lidlacl anassrs lidlnegcl 3expa
      co c0g jca cgrp w3a wb ringgrp adantr issubg2 mpbir3and ) AGHZCBHZIZCAJKH
      ZCALKZMZCNOZEPZFPZAUAKZUKCHZFCQZVHAUBKZKCHZIZECQZVBVFVAVECBAVERZDUCUDVCAU
      LKZCHVGABCVRDVRRUECVRUFSVCVOECVCVHCHZIZVLVNVTVKFCVCVSVICHVKVJABCVHVIDVJRZ
      UGUHTVAVBVSVNABCVMVHDVMRZUIUJUMTVCAUNHZVDVFVGVPUOUPVAWCVBAUQUREFVEVJCAVMV
      QWAWBUSSUT $.

    ${
      lidlsubcl.m $e |- .- = ( -g ` R ) $.
      $( An ideal is closed under subtraction.  (Contributed by Stefan O'Rear,
         28-Mar-2015.)  (Proof shortened by OpenAI, 25-Mar-2020.) $)
      lidlsubcl $p |- ( ( ( R e. Ring /\ I e. U ) /\ ( X e. I /\ Y e. I ) ) ->
          ( X .- Y ) e. I ) $=
        ( crg wcel wa co w3a csubg cfv lidlsubg 3adant3 simp3l simp3r subgsubcl
        syl3anc 3expa ) AIJZCBJZECJZFCJZKZEFDLCJZUCUDUGMCANOJZUEUFUHUCUDUIUGABC
        GPQUCUDUEUFRUCUDUEUFSCADEFHTUAUB $.
    $}

    lidlcl.b $e |- B = ( Base ` R ) $.
    ${
      lidlmcl.t $e |- .x. = ( .r ` R ) $.
      $( An ideal is closed under left-multiplication by elements of the full
         ring.  (Contributed by Stefan O'Rear, 3-Jan-2015.) $)
      lidlmcl $p |- ( ( ( R e. Ring /\ I e. U ) /\ ( X e. B /\ Y e. I ) ) ->
          ( X .x. Y ) e. I ) $=
        ( crg wcel wa co crglmod cfv cvsca eqtri cbs eqid cmulr oveqi clss csca
        rlmvsca clmod rlmlmod ad2antrr simpr clidl lidlval adantr rlmsca fveq2d
        syl6eleq syl5eq eleq2d biimpa ad2ant2r simprr lssvscl syl22anc syl5eqel
        ) BKLZEDLZMZFALZGELZMZMZFGCNFGBOPZQPZNZECVLFGCBUAPVLJBUERUBVJVKUFLZEVKU
        CPZLZFVKUDPZSPZLZVHVMELVDVNVEVIBUGUHVFVPVIVFEDVOVDVEUIDBUJPVOHBUKRUOULV
        DVGVSVEVHVDVGVSVDAVRFVDABSPVRIVDBVQSBKUMUNUPUQURUSVFVGVHUTVRVOVLEVQVKFG
        VQTVLTVRTVOTVAVBVC $.
    $}

    ${
      $d B a $.  $d I a $.  $d .1. a $.  $d R a $.  $d U a $.
      lidl1el.o $e |- .1. = ( 1r ` R ) $.
      $( An ideal contains 1 iff it is the unit ideal.  (Contributed by Stefan
         O'Rear, 3-Jan-2015.)  (Revised by Wolf Lammen, 6-Sep-2020.) $)
      lidl1el $p |- ( ( R e. Ring /\ I e. U ) -> ( .1. e. I <-> I = B ) ) $=
        ( va crg wcel wa wceq wss lidlss ad2antlr cv cmulr cfv co eqid ringridm
        ad2ant2rl lidlmcl ancom2s eqeltrrd ssrdv eqssd ex ringidcl adantr eleq2
        expr syl5ibrcom impbid ) BJKZECKZLZDEKZEAMZURUSUTURUSLZEAUQEANUPUSAECBG
        FOPVAIAEURUSIQZAKZVBEKURUSVCLLVBDBRSZTZVBEUPVCVEVBMUQUSABVDDVBGVDUAZHUB
        UCURVCUSVEEKABVDCEVBDFGVFUDUEUFUMUGUHUIURUSUTDAKZUPVGUQABDGHUJUKEADULUN
        UO $.
    $}
  $}

  ${
    lidl0.u $e |- U = ( LIdeal ` R ) $.
    ${
      lidl0.z $e |- .0. = ( 0g ` R ) $.
      $( Every ring contains a zero ideal.  (Contributed by Stefan O'Rear,
         3-Jan-2015.) $)
      lidl0 $p |- ( R e. Ring -> { .0. } e. U ) $=
        ( crg wcel csn crglmod cfv clss clmod rlmlmod c0g rlm0 eqtri lsssn0 syl
        eqid clidl lidlval syl6eleqr ) AFGZCHZAIJZKJZBUCUELGUDUFGAMUFUECCANJUEN
        JEAOPUFSQRBATJUFDAUAPUB $.
    $}

    lidl1.b $e |- B = ( Base ` R ) $.
    $( Every ring contains a unit ideal.  (Contributed by Stefan O'Rear,
       3-Jan-2015.) $)
    lidl1 $p |- ( R e. Ring -> B e. U ) $=
      ( crg wcel crglmod cfv clss clmod rlmlmod cbs rlmbas eqtri eqid syl clidl
      lss1 lidlval syl6eleqr ) BFGZABHIZJIZCUBUCKGAUDGBLUDAUCABMIUCMIEBNOUDPSQC
      BRIUDDBTOUA $.
  $}

  ${
    lidlacs.b $e |- B = ( Base ` W ) $.
    lidlacs.i $e |- I = ( LIdeal ` W ) $.
    $( The ideal system is an algebraic closure system on the base set.
       (Contributed by Stefan O'Rear, 4-Apr-2015.) $)
    lidlacs $p |- ( W e. Ring -> I e. ( ACS ` B ) ) $=
      ( crg wcel crglmod cfv clss cacs clidl lidlval eqtri clmod rlmlmod rlmbas
      cbs eqid lssacs syl syl5eqel ) CFGZBCHIZJIZAKIZBCLIUEECMNUCUDOGUEUFGCPAUE
      UDACRIUDRIDCQNUESTUAUB $.
  $}

  ${
    rspcl.k $e |- K = ( RSpan ` R ) $.
    ${
      rspcl.b $e |- B = ( Base ` R ) $.
      ${
        rspcl.u $e |- U = ( LIdeal ` R ) $.
        $( The span of a set of ring elements is an ideal.  (Contributed by
           Stefan O'Rear, 3-Jan-2015.)  (Revised by Mario Carneiro,
           2-Oct-2015.) $)
        rspcl $p |- ( ( R e. Ring /\ G C_ B ) -> ( K ` G ) e. U ) $=
          ( crg wcel crglmod cfv clmod wss rlmlmod cbs rlmbas eqtri clidl clss
          lidlval crsp clspn rspval lspcl sylan ) BIJBKLZMJDANDELCJBOCDEAUGABPL
          UGPLGBQRCBSLUGTLHBUAREBUBLUGUCLFBUDRUEUF $.
      $}

      $( The span of a set of ring elements contains those elements.
         (Contributed by Stefan O'Rear, 3-Jan-2015.) $)
      rspssid $p |- ( ( R e. Ring /\ G C_ B ) -> G C_ ( K ` G ) ) $=
        ( crg wcel crglmod cfv clmod wss rlmlmod rlmbas eqtri crsp clspn rspval
        cbs lspssid sylan ) BGHBIJZKHCALCCDJLBMCDAUBABSJUBSJFBNODBPJUBQJEBROTUA
        $.

      ${
        rsp1.o $e |- .1. = ( 1r ` R ) $.
        $( The span of the identity element is the unit ideal.  (Contributed by
           Stefan O'Rear, 3-Jan-2015.) $)
        rsp1 $p |- ( R e. Ring -> ( K ` { .1. } ) = B ) $=
          ( crg wcel csn cfv wceq wss ringidcl snssd rspssid mpdan cur cvv fvex
          eqeltri snss sylibr clidl wb eqid rspcl lidl1el mpbid ) BHIZCCJZDKZIZ
          ULALZUJUKULMZUMUJUKAMZUOUJCAABCFGNOZABUKDEFPQCULCBRKSGBRTUAUBUCUJULBU
          DKZIZUMUNUEUJUPUSUQABURUKDEFURUFZUGQABURCULUTFGUHQUI $.
      $}
    $}

    ${
      rsp0.z $e |- .0. = ( 0g ` R ) $.
      $( The span of the zero element is the zero ideal.  (Contributed by
         Stefan O'Rear, 3-Jan-2015.) $)
      rsp0 $p |- ( R e. Ring -> ( K ` { .0. } ) = { .0. } ) $=
        ( crg wcel crglmod cfv clmod csn wceq rlmlmod c0g rlm0 eqtri crsp clspn
        rspval lspsn0 syl ) AFGAHIZJGCKZBIUCLAMBUBCCANIUBNIEAOPBAQIUBRIDASPTUA
        $.
    $}

    ${
      rspssp.u $e |- U = ( LIdeal ` R ) $.
      $( The ideal span of a set of elements in a ring is contained in any
         subring which contains those elements.  (Contributed by Stefan O'Rear,
         3-Jan-2015.) $)
      rspssp $p |- ( ( R e. Ring /\ I e. U /\ G C_ I ) -> ( K ` G ) C_ I ) $=
        ( crg wcel crglmod cfv clmod wss rlmlmod clidl clss lidlval eqtri clspn
        crsp rspval lspssp syl3an1 ) AHIAJKZLIDBICDMCEKDMANBCDEUDBAOKUDPKGAQREA
        TKUDSKFAUARUBUC $.
    $}
  $}

  ${
    mrcrsp.u $e |- U = ( LIdeal ` R ) $.
    mrcrsp.k $e |- K = ( RSpan ` R ) $.
    mrcrsp.f $e |- F = ( mrCls ` U ) $.
    $( Moore closure generalizes ideal span.  (Contributed by Stefan O'Rear,
       4-Apr-2015.) $)
    mrcrsp $p |- ( R e. Ring -> K = F ) $=
      ( crg wcel crglmod clmod wceq rlmlmod clidl clss lidlval eqtri crsp clspn
      cfv rspval mrclsp syl ) AHIAJTZKIDCLAMBCDUDBANTUDOTEAPQDARTUDSTFAUAQGUBUC
      $.
  $}

  ${
    $d I x $.  $d .0. x $.
    lidlnz.u $e |- U = ( LIdeal ` R ) $.
    lidlnz.z $e |- .0. = ( 0g ` R ) $.
    $( A nonzero ideal contains a nonzero element.  (Contributed by Stefan
       O'Rear, 3-Jan-2015.) $)
    lidlnz $p |- ( ( R e. Ring /\ I e. U /\ I =/= { .0. } ) ->
        E. x e. I x =/= .0. ) $=
      ( crg wcel csn wne w3a cv wn wa wex wrex wpss wss lidl0cl necomd sylanbrc
      snssd simp3 df-pss pssnel syl velsn necon3bbii anbi2i exbii df-rex bitr4i
      3adant3 sylib ) BHIZDCIZDEJZKZLZAMZDIZVAURIZNZOZAPZVAEKZADQZUTURDRZVFUTUR
      DSZURDKVIUPUQVJUSUPUQOEDBCDEFGTUCUNUTDURUPUQUSUDUAURDUEUBAURDUFUGVFVBVGOZ
      APVHVEVKAVDVGVBVCVAEAEUHUIUJUKVGADULUMUO $.
  $}

  ${
    $d U a b $.  $d R a b $.  $d B a b $.  $d .0. a b $.
    drngnidl.b $e |- B = ( Base ` R ) $.
    drngnidl.z $e |- .0. = ( 0g ` R ) $.
    drngnidl.u $e |- U = ( LIdeal ` R ) $.
    $( A division ring has only the two trivial ideals.  (Contributed by Stefan
       O'Rear, 3-Jan-2015.)  (Revised by Wolf Lammen, 6-Sep-2020.) $)
    drngnidl $p |- ( R e. DivRing -> U = { { .0. } , B } ) $=
      ( va vb wcel cv wa wceq simpr wne cfv ad2antrr simplr syl3anc eqid cdr wo
      csn cpr orcd cur crg drngring lidlnz wel cinvr cmulr co simpll wss lidlss
      adantl sselda adantrr simprr drnginvrl drnginvrcl simprl lidlmcl syl22anc
      wrex eqeltrrd rexlimdvaa imp syldan lidl1el sylan adantr mpbid pm2.61dane
      wb olcd vex elpr sylibr ex ssrdv lidl0 lidl1 snex cbs fvex eqeltri bicomi
      cvv prss sylanbrc syl eqssd ) BUAJZCDUCZAUDZWOHCWQWOHKZCJZWRWQJZWOWSLZWRW
      PMZWRAMZUBZWTXAXDWRWPXAXBLXBXCXAXBNUEXAWRWPOZLZXCXBXFBUFPZWRJZXCXAXEIKZDO
      ZIWRVFZXHXFBUGJZWSXEXKWOXLWSXEBUHZQWOWSXERXAXENIBCWRDGFUISXAXKXHXAXJXHIWR
      XAIHUJZXJLZLZXIBUKPZPZXIBULPZUMZXGWRXPWOXIAJZXJXTXGMWOWSXOUNZXAXNYAXJXAWR
      AXIWSWRAUOWOAWRCBEGUPUQURUSZXAXNXJUTZABXSXGXQXIDEFXSTZXGTZXQTZVASXPXLWSXR
      AJZXNXTWRJWOXLWSXOXMQWOWSXORXPWOYAXJYHYBYCYDABXQXIDEFYGVBSXAXNXJVCABXSCWR
      XRXIGEYEVDVEVGVHVIVJXAXHXCVPZXEWOXLWSYIXMABCXGWRGEYFVKVLVMVNVQVOWRWPAHVRV
      SVTWAWBWOXLWQCUOZXMXLWPCJZACJZYJBCDGFWCABCGEWDYKYLLYJWPACDWEABWFPWJEBWFWG
      WHWKWIWLWMWN $.
  $}

  ${
    $d x y B $.  $d x y K $.  $d x y L $.  $d x y ph $.  $d x y W $.
    lidlpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    lidlpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    lidlpropd.3 $e |- ( ph -> B C_ W ) $.
    lidlpropd.4 $e |- ( ( ph /\ ( x e. W /\ y e. W ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    lidlpropd.5 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( .r ` K ) y ) e. W ) $.
    lidlpropd.6 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( .r ` K ) y ) = ( x ( .r ` L ) y ) ) $.
    $( The left ideals and ring span of a ring depend only on the ring
       components.  Here ` W ` is expected to be either ` B ` (when closure is
       available) or ` _V ` (when strong equality is available).  (Contributed
       by Mario Carneiro, 14-Jun-2015.) $)
    lidlrsppropd $p |- ( ph ->
      ( ( LIdeal ` K ) = ( LIdeal ` L ) /\ ( RSpan ` K ) = ( RSpan ` L ) ) ) $=
      ( cfv crglmod cbs syl6eq wcel wa co clidl wceq crsp clss rlmbas cv cplusg
      rlmplusg oveqi 3eqtr3g cvsca cmulr rlmvsca syl5eqelr csca cid baseid eqid
      strfvi rlmsca2 fveq2i eqtri lsspropd lidlval 3eqtr4g clspn fvexd lsppropd
      cnx rspval jca ) AEUANZFUANZUBEUCNZFUCNZUBAEONZUDNFONZUDNVLVMABCDDVPVQGAD
      EPNZVPPNHEUEQZADFPNZVQPNIFUEQZJABUFZGRCUFZGRSSWBWCEUGNZTWBWCFUGNZTWBWCVPU
      GNZTWBWCVQUGNZTKWDWFWBWCEUHUIWEWGWBWCFUHUIUJZAWBDRWCDRSSZWBWCVPUKNZTZWBWC
      EULNZTZGWLWJWBWCEUMUIZLUNZWIWMWBWCFULNZTWKWBWCVQUKNZTMWNWPWQWBWCFUMUIUJZA
      DVRVPUONZPNZHVREUPNZPNWTEPVIPNZVRUQVRURUSXAWSPEUTVAVBQZADVTVQUONZPNZIVTFU
      PNZPNXEFPXBVTUQVTURUSXFXDPFUTVAVBQZVCEVDFVDVEAVPVFNVQVFNVNVOABCDDVPVQGVSW
      AJWHWOWRXCXGAEOVGAFOVGVHEVJFVJVEVK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Two-sided ideals and quotient rings
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c 2Ideal $.

  $( Ring two-sided ideal function. $)
  c2idl $a class 2Ideal $.

  $( Define the class of two-sided ideals of a ring.  A two-sided ideal is a
     left ideal which is also a right ideal (or a left ideal over the opposite
     ring).  (Contributed by Mario Carneiro, 14-Jun-2015.) $)
  df-2idl $a |- 2Ideal = ( r e. _V |->
    ( ( LIdeal ` r ) i^i ( LIdeal ` ( oppR ` r ) ) ) ) $.

  ${
    $d r I $.  $d r J $.  $d r R $.
    2idlval.i $e |- I = ( LIdeal ` R ) $.
    2idlval.o $e |- O = ( oppR ` R ) $.
    2idlval.j $e |- J = ( LIdeal ` O ) $.
    2idlval.t $e |- T = ( 2Ideal ` R ) $.
    $( Definition of a two-sided ideal.  (Contributed by Mario Carneiro,
       14-Jun-2015.) $)
    2idlval $p |- T = ( I i^i J ) $=
      ( vr c2idl cfv cin cvv wceq clidl coppr fveq2 syl6eqr c0 wcel fveq2d fvex
      cv ineq12d df-2idl eqeltri inex1 fvmpt wn fvprc inss1 syl5eq sseq0 eqtr4d
      wss sylancr pm2.61i eqtri ) BAKLZCDMZIANUAZUTVAOJAJUDZPLZVCQLZPLZMVANKVCA
      OZVDCVFDVGVDAPLZCVCAPRFSVGVFEPLDVGVEEPVGVEAQLEVCAQRGSUBHSUEJUFCDCVHNFAPUC
      UGUHUIVBUJZUTTVAAKUKVIVACUPCTOVATOCDULVICVHTFAPUKUMVACUNUQUOURUS $.
  $}

  ${
    2idlcpbl.x $e |- X = ( Base ` R ) $.
    2idlcpbl.r $e |- E = ( R ~QG S ) $.
    2idlcpbl.i $e |- I = ( 2Ideal ` R ) $.
    2idlcpbl.t $e |- .x. = ( .r ` R ) $.
    $( The coset equivalence relation for a two-sided ideal is compatible with
       ring multiplication.  (Contributed by Mario Carneiro, 14-Jun-2015.) $)
    2idlcpbl $p |- ( ( R e. Ring /\ S e. I ) ->
        ( ( A E C /\ B E D ) -> ( A .x. B ) E ( C .x. D ) ) ) $=
      ( wcel wbr co cfv eqid syl2anc crg csg simpll w3a csubg wer clidl 2idlval
      coppr elin2 simplbi ad2antlr lidlsubg eqger syl simprl ersym cabl ringabl
      wa wss wb ad2antrr lidlss eqgabl simp2d simprr simp1d ringcl syl3anc cgrp
      mpbid wceq ringgrp grpnnncan2 syl13anc ringsubdi simp3d syl22anc eqeltrrd
      lidlmcl cmulr opprmul rngsubdir syl5eq opprring simprbi opprbas lidlsubcl
      mpbir3and ex ) EUAOZFIOZUTZACHPZBDHPZUTZABGQZCDGQZHPZWNWQUTZWTWRJOZWSJOZW
      SWREUBRZQZFOZXAWLAJOZBJOZXBWLWMWQUCZXACJOZXGACXDQZFOZXACAHPZXJXGXLUDZXAAC
      HJXAFEUEROZJHUFXAWLFEUGRZOZXOXIWMXQWLWQWMXQFEUIRZUGRZOZFXPXSIEIXPXSXRXPSZ
      XRSZXSSZMUHUJZUKULZEXPFYAUMTHEJFKLUNUOWNWOWPUPUQXAEUROZFJVAZXMXNVBWLYFWMW
      QEUSVCZXAXQYGYEJFXPEKYAVDUOZCAHFEXDJKXDSZLVETVLZVFZXAXHDJOZDBXDQZFOZXAWPX
      HYMYOUDZWNWOWPVGXAYFYGWPYPVBYHYIBDHFEXDJKYJLVETVLZVHZJEGABKNVIVJZXAWLXJYM
      XCXIXAXJXGXLYKVHZXAXHYMYOYQVFZJEGCDKNVIVJZXAWSCBGQZXDQZWRUUCXDQZXDQZXEFXA
      EVKOZXCXBUUCJOZUUFXEVMWLUUGWMWQEVNVCUUBYSXAWLXJXHUUHXIYTYRJEGCBKNVIVJJEXD
      WSWRUUCKYJVOVPXAWLXQUUDFOUUEFOUUFFOXIYEXACYNGQZUUDFXAJEGXDCDBKNYJXIYTUUAY
      RVQXAWLXQXJYOUUIFOXIYEYTXAXHYMYOYQVRJEGXPFCYNYAKNWAVSVTXABXKXRWBRZQZUUEFX
      AUUKXKBGQUUEJEUUJGXRBXKKNYBUUJSZWCXAJEGXDACBKNYJXIYLYTYRWDWEXAXRUAOZXTXHX
      LUUKFOWLUUMWMWQEXRYBWFVCWMXTWLWQWMXQXTYDWGULYRXAXJXGXLYKVRJXRUUJXSFBXKYCJ
      EXRYBKWHUULWAVSVTEXPFXDUUDUUEYAYJWIVSVTXAYFYGWTXBXCXFUDVBYHYIWRWSHFEXDJKY
      JLVETWJWK $.
  $}

  ${
    $d y z F $.  $d a b c d x y z I $.  $d c d .1. $.  $d a b c d x y z R $.
    $d a b c d x y z S $.  $d a b c d x y z U $.  $d a b c d x y z X $.
    qusring.u $e |- U = ( R /s ( R ~QG S ) ) $.
    qusring.i $e |- I = ( 2Ideal ` R ) $.
    ${
      qus1.o $e |- .1. = ( 1r ` R ) $.
      $( The multiplicative identity of the quotient ring.  (Contributed by
         Mario Carneiro, 14-Jun-2015.) $)
      qus1 $p |- ( ( R e. Ring /\ S e. I ) ->
          ( U e. Ring /\ [ .1. ] ( R ~QG S ) = ( 1r ` U ) ) ) $=
        ( vd vc va vb wcel cfv co wceq eqid syl cv wbr crg cplusg cqg cmulr cbs
        wa cqus a1i csubg wer clidl coppr 2idlval elin2 simplbi lidlsubg sylan2
        eqger cnsg cabl ringabl adantr eleqtrrd eqgcpbl 2idlcpbl simpl qusring2
        wi ablnsg ) AUAMZBEMZUFZAUBNZABUCOZAAUDNZCDAUENZIJKLCAVNUGOPVLFUHVPVPPV
        LVPQZUHVMQZVOQZHVLBAUINZMZVPVNUJVKVJBAUKNZMZWAVKWCBAULNZUKNZMBWBWEEAEWB
        WEWDWBQZWDQWEQGUMUNUOAWBBWFUPUQZVNAVPBVQVNQZURRVLBAUSNZMKSZJSZVNTLSZISZ
        VNTUFWJWLVMOWKWMVMOVNTVHVLBVTWIWGVLAUTMZWIVTPVJWNVKAVAVBAVIRVCWJWLWKWMV
        MVNAVPBVQWHVRVDRWJWLWKWMABVOVNEVPVQWHGVSVEVJVKVFVG $.
    $}

    $( If ` S ` is a two-sided ideal in ` R ` , then ` U = R / S ` is a ring,
       called the quotient ring of ` R ` by ` S ` .  (Contributed by Mario
       Carneiro, 14-Jun-2015.) $)
    qusring $p |- ( ( R e. Ring /\ S e. I ) -> U e. Ring ) $=
      ( crg wcel wa cur cfv cqg co cec wceq eqid qus1 simpld ) AGHBDHICGHAJKZAB
      LMNCJKOABCSDEFSPQR $.

    qusrhm.x $e |- X = ( Base ` R ) $.
    qusrhm.f $e |- F = ( x e. X |-> [ x ] ( R ~QG S ) ) $.
    $( If ` S ` is a two-sided ideal in ` R ` , then the "natural map" from
       elements to their cosets is a ring homomorphism from ` R ` to
       ` R / S ` .  (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    qusrhm $p |- ( ( R e. Ring /\ S e. I ) -> F e. ( R RingHom U ) ) $=
      ( wcel cfv eqid co cec a1i divsfval wceq cv vy vz vd vc va vb cmulr simpl
      crg wa cur qusring cqg csubg wer clidl coppr 2idlval elin2 simplbi sylan2
      lidlsubg eqger syl cvv cbs fvex eqeltri qus1 simprd eqtrd 2idlcpbl ringcl
      cqus 3expb adantlr caovclg qusmulval adantr oveq12d 3eqtr4rd cnsg ringabl
      cghm cabl ablnsg eleqtrrd qusghm isrhm2d ) BUILZCFLZUJZUAUBGBDBUGMZDUGMZB
      UKMZEDUKMZJWONZWPNWMNZWNNZWJWKUHZBCDFHIULWLWOEMWOBCUMOZPZWPWLAWOXAEGWLCBU
      NMZLZGXAUOZWKWJCBUPMZLZXDWKXGCBUQMZUPMZLCXFXIFBFXFXIXHXFNZXHNXINIURUSUTBX
      FCXJVBVAZXABGCJXANZVCVDZGVELZWLGBVFMZVEJBVFVGVHZQKRWLDUILXBWPSBCDWOFHIWQV
      IVJVKWLUATZGLZUBTZGLZUJZUJZXQXAPZXSXAPZWNOZXQXSWMOZXAPZXQEMZXSEMZWNOYFEMW
      LXRXTYEYGSWLXABWNWMDGXQXSUIUCUDUEUFDBXAVNOSWLHQGXOSWLJQXMWTUETUFTUDTZUCTZ
      BCWMXAFGJXLIWRVLWLUAUBYJYKGGGWMWJYAYFGLZWKWJXRXTYLGBWMXQXSJWRVMVOVPVQWRWS
      VRVOYBYHYCYIYDWNYBAXQXAEGWLXEYAXMVSZXNYBXPQZKRYBAXSXAEGYMYNKRVTYBAYFXAEGY
      MYNKRWAWLCBWBMZLEBDWDOLWLCXCYOXKWLBWELZYOXCSWJYPWKBWCVSBWFVDWGAEBDGCJHKWH
      VDWI $.
  $}

  ${
    $d x y O $.  $d x y R $.
    crng2idl.i $e |- I = ( LIdeal ` R ) $.
    ${
      crngridl.o $e |- O = ( oppR ` R ) $.
      $( In a commutative ring, the left and right ideals coincide.
         (Contributed by Mario Carneiro, 14-Jun-2015.) $)
      crngridl $p |- ( R e. CRing -> I = ( LIdeal ` O ) ) $=
        ( vx vy wcel clidl cfv wceq crsp cbs cvv eqid a1i cv cplusg co wa eqidd
        ccrg opprbas wss oppradd oveqi cmulr ovexd crngoppr lidlrsppropd simpld
        ssv 3expb syl5eq ) AUBHZBAIJZCIJZDUOUPUQKALJCLJKUOFGAMJZACNUOURUAURCMJK
        UOURACEUROZUCPURNUDUOURULPFQZGQZARJZSUTVACRJZSKUOUTNHVANHTTVBVCUTVAVBAC
        EVBOUEUFPUOUTURHZVAURHZTTUTVAAUGJZUHUOVDVEUTVAVFSUTVACUGJZSKURAVGVFCUTV
        AUSVFOEVGOUIUMUJUKUN $.
    $}

    $( In a commutative ring, a two-sided ideal is the same as a left ideal.
       (Contributed by Mario Carneiro, 14-Jun-2015.) $)
    crng2idl $p |- ( R e. CRing -> I = ( 2Ideal ` R ) ) $=
      ( ccrg wcel coppr cfv clidl cin c2idl inidm eqid crngridl syl5eqr 2idlval
      ineq2d syl6eqr ) ADEZBBAFGZHGZIZAJGZRBBBIUABKRBTBABSCSLZMPNAUBBTSCUCTLUBL
      OQ $.
  $}

  ${
    $d a b c d u v x y I $.  $d a b c d u v x y R $.  $d a b c d u v x y S $.
    $d a b c d u v x y U $.
    quscrng.u $e |- U = ( R /s ( R ~QG S ) ) $.
    quscrng.i $e |- I = ( LIdeal ` R ) $.
    $( The quotient of a commutative ring by an ideal is a commutative ring.
       (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    quscrng $p |- ( ( R e. CRing /\ S e. I ) -> U e. CRing ) $=
      ( vx vy vd vc va wcel wa crg cv cfv co wceq eqid cec vu vv ccrg cmulr cbs
      wral c2idl crngring adantr simpr crng2idl eleqtrd qusring syl2anc cqg cqs
      vb cvv cqus eqidd ovexd qusbas eleq2d anbi12d oveq2 oveq1 eqeq12d crngcom
      a1i 3adant1r 3expa eceq1d csubg wer lidlsubg sylan eqger syl wbr 2idlcpbl
      wi ringcl 3expb qusmulval 3eqtr4rd ectocld expl sylbird ralrimivv iscrng2
      an32s sylanbrc ) AUCLZBDLZMZCNLZGOZHOZCUDPZQZWRWQWSQZRZHCUEPZUFGXCUFCUCLW
      OANLZBAUGPZLZWPWMXDWNAUHZUIZWOBDXEWMWNUJWMDXERWNADFUKUIULZABCXEEXESZUMUNW
      OXBGHXCXCWOWQXCLZWRXCLZMWQAUEPZABUOQZUPZLZWRXOLZMXBWOXPXKXQXLWOXOXCWQWOXN
      ACXMURNCAXNUSQRWOEVIZWOXMUTZWOABUOVAXHVBZVCWOXOXCWRXTVCVDWOXPXQXBWQUAOZXN
      TZWSQZYBWQWSQZRZXBWOXPMUAWRXMXNXOXOSZYBWRRYCWTYDXAYBWRWQWSVEYBWRWQWSVFVGW
      OYAXMLZXPYEUBOZXNTZYBWSQZYBYIWSQZRYEWOYGMZUBWQXMXNXOYFYIWQRYJYCYKYDYIWQYB
      WSVFYIWQYBWSVEVGYLYHXMLZMZYAYHAUDPZQZXNTZYHYAYOQZXNTZYKYJYNYPYRXNWOYGYMYP
      YRRZWMYGYMYTWNXMAYOYAYHXMSZYOSZVHVJVKVLWOYGYMYKYQRWOXNAWSYOCXMYAYHNIJKUQX
      RXSWOBAVMPLZXMXNVNWMXDWNUUCXGADBFVOVPXNAXMBUUAXNSZVQVRZXHWOXDXFKOZJOZXNVS
      UQOZIOZXNVSMUUFUUHYOQUUGUUIYOQZXNVSWAXHXIUUFUUHUUGUUIABYOXNXEXMUUAUUDXJUU
      BVTUNZWOXDUUGXMLZUUIXMLZMUUJXMLZXHXDUULUUMUUNXMAYOUUGUUIUUAUUBWBWCVPZUUBW
      SSZWDVKWOYMYGYJYSRZWOYMYGUUQWOXNAWSYOCXMYHYANIJKUQXRXSUUEXHUUKUUOUUBUUPWD
      VKWKWEWFWKWFWGWHWIGHXCCWSXCSUUPWJWL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Principal ideal rings.  Divisibility in the integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c LPIdeal LPIR $.

  $( Ring left-principal-ideal function. $)
  clpidl $a class LPIdeal $.

  $( Class of left principal ideal rings. $)
  clpir $a class LPIR $.

  ${
    $d w g $.

    $( Define the class of left principal ideals of a ring, which are ideals
       with a single generator.  (Contributed by Stefan O'Rear, 3-Jan-2015.) $)
    df-lpidl $a |- LPIdeal = ( w e. Ring |->
        U_ g e. ( Base ` w ) { ( ( RSpan ` w ) ` { g } ) } ) $.

    $( Define the class of left principal ideal rings, rings where every left
       ideal has a single generator.  (Contributed by Stefan O'Rear,
       3-Jan-2015.) $)
    df-lpir $a |- LPIR = { w e. Ring | ( LIdeal ` w ) = ( LPIdeal ` w ) } $.
  $}

  ${
    $d R r g $.  $d P r g $.  $d B r g $.  $d r K g $.  $d U g $.  $d I g $.
    $d .0. g $.  $d B g $.
    lpival.p $e |- P = ( LPIdeal ` R ) $.
    ${
      lpival.k $e |- K = ( RSpan ` R ) $.
      lpival.b $e |- B = ( Base ` R ) $.
      $( Value of the set of principal ideals.  (Contributed by Stefan O'Rear,
         3-Jan-2015.) $)
      lpival $p |- ( R e. Ring -> P = U_ g e. B { ( K ` { g } ) } ) $=
        ( vr crg wcel clpidl cfv cbs cv csn crsp ciun wceq fveq2 sneqd iuneq12d
        fveq1d df-lpidl crn cun fvex rnex p0ex unex wss iunss fvrn0 snssi ax-mp
        c0 a1i mprgbir ssexi fvmpt iuneq1 fveq1i sneqi iuneq2i eqtri 3eqtr4g )
        CJKCLMDCNMZDOZPZCQMZMZPZRZBDAVIEMZPZRZICDIOZNMZVIVQQMZMZPZRVMJLVQCSZDVR
        VGWAVLVQCNTWBVTVKWBVIVSVJVQCQTUCUAUBIDUDVMVJUEZUPPZUFZWCWDVJCQUGUHUIUJV
        MWEUKVLWEUKZDVGDVGVLWEULWFVHVGKZVKWEKWFVJVIUMVKWEUNUOUQURUSUTFVPDVGVORZ
        VMAVGSVPWHSHDAVGVOVAUODVGVOVLVOVLSWGVNVKVIEVJGVBVCUQVDVEVF $.

      $( Property of being a principal ideal.  (Contributed by Stefan O'Rear,
         3-Jan-2015.) $)
      islpidl $p |- ( R e. Ring -> ( I e. P <-> E. g e. B
          I = ( K ` { g } ) ) ) $=
        ( crg wcel cv csn cfv ciun wceq wrex lpival eleq2d eliun rexbii syl6bb
        fvex elsn2 bitri ) CJKZEBKEDADLMZFNZMZOZKZEUHPZDAQZUFBUJEABCDFGHIRSUKEU
        IKZDAQUMDEAUITUNULDAEUHUGFUCUDUAUEUB $.
    $}

    ${
      lpi0.z $e |- .0. = ( 0g ` R ) $.
      $( The zero ideal is always principal.  (Contributed by Stefan O'Rear,
         3-Jan-2015.) $)
      lpi0 $p |- ( R e. Ring -> { .0. } e. P ) $=
        ( vg crg wcel csn crsp cfv wceq cbs wrex eqid ring0cl rsp0 eqcomd sneq
        cv fveq2d eqeq2d rspcev syl2anc islpidl mpbird ) BGHZCIZAHUHFTZIZBJKZKZ
        LZFBMKZNZUGCUNHUHUHUKKZLZUOUNBCUNOZEPUGUPUHBUKCUKOZEQRUMUQFCUNUICLZULUP
        UHUTUJUHUKUICSUAUBUCUDUNABFUHUKDUSURUEUF $.
    $}

    ${
      lpi1.b $e |- B = ( Base ` R ) $.
      $( The unit ideal is always principal.  (Contributed by Stefan O'Rear,
         3-Jan-2015.) $)
      lpi1 $p |- ( R e. Ring -> B e. P ) $=
        ( vg crg wcel csn crsp cfv wceq wrex cur eqid ringidcl rsp1 eqcomd sneq
        cv fveq2d eqeq2d rspcev syl2anc islpidl mpbird ) CGHZABHAFTZIZCJKZKZLZF
        AMZUGCNKZAHAUNIZUJKZLZUMACUNEUNOZPUGUPAACUNUJUJOZEURQRULUQFUNAUHUNLZUKU
        PAUTUIUOUJUHUNSUAUBUCUDABCFAUJDUSEUEUF $.
    $}

    ${
      $d U r $.
      lpiss.u $e |- U = ( LIdeal ` R ) $.
      $( Principal ideal rings are where all ideals are principal.
         (Contributed by Stefan O'Rear, 3-Jan-2015.) $)
      islpir $p |- ( R e. LPIR <-> ( R e. Ring /\ U = P ) ) $=
        ( vr cv clidl cfv clpidl wceq crg clpir eqeq12d eqeq12i syl6bbr df-lpir
        fveq2 elrab2 ) FGZHIZTJIZKZCAKZFBLMTBKZUCBHIZBJIZKUDUEUAUFUBUGTBHRTBJRN
        CUFAUGEDOPFQS $.

      $d P a g $.  $d U a g $.  $d R a g $.
      $( Principal ideals are a subclass of ideal.  (Contributed by Stefan
         O'Rear, 3-Jan-2015.) $)
      lpiss $p |- ( R e. Ring -> P C_ U ) $=
        ( va vg crg wcel cv csn crsp cfv wceq cbs wrex eqid islpidl wa wss
        snssi rspcl sylan2 eleq1 syl5ibrcom rexlimdva sylbid ssrdv ) BHIZFACUIF
        JZAIUJGJZKZBLMZMZNZGBOMZPUJCIZUPABGUJUMDUMQZUPQZRUIUOUQGUPUIUKUPIZSUQUO
        UNCIZUTUIULUPTVAUKUPUAUPBCULUMURUSEUBUCUJUNCUDUEUFUGUH $.

      $( Principal ideal rings are where all ideals are principal.
         (Contributed by Stefan O'Rear, 3-Jan-2015.) $)
      islpir2 $p |- ( R e. LPIR <-> ( R e. Ring /\ U C_ P ) ) $=
        ( clpir wcel crg wceq wa wss lpiss biantrud eqss syl6rbbr pm5.32i bitri
        islpir ) BFGBHGZCAIZJSCAKZJABCDERSTUASUAUAACKZJTSUBUAABCDELMCANOPQ $.
    $}
  $}

  $( Principal ideal rings are rings.  (Contributed by Stefan O'Rear,
     24-Jan-2015.) $)
  lpirring $p |- ( R e. LPIR -> R e. Ring ) $=
    ( clpir wcel crg clidl cfv clpidl wceq eqid islpir simplbi ) ABCADCAEFZAGFZ
    HMALMILIJK $.

  $( Division rings are principal ideal.  (Contributed by Stefan O'Rear,
     3-Jan-2015.) $)
  drnglpir $p |- ( R e. DivRing -> R e. LPIR ) $=
    ( cdr wcel crg clidl cfv clpidl wss clpir drngring c0g csn cbs cpr drngnidl
    eqid lpi0 lpi1 wa sylanbrc snex fvex prss bicomi syl eqsstrd islpir2 ) ABCZ
    ADCZAEFZAGFZHAICAJZUHUJAKFZLZAMFZNZUKUOAUJUMUOPZUMPZUJPZOUHUIUPUKHZULUIUNUK
    CZUOUKCZUTUKAUMUKPZURQUOUKAVCUQRVAVBSUTUNUOUKUMUAAMUBUCUDTUEUFUKAUJVCUSUGT
    $.

  ${
    $d a x R $.  $d G a x $.  $d B a x $.  $d K a x $.  $d .|| a x $.
    rspsn.b $e |- B = ( Base ` R ) $.
    rspsn.k $e |- K = ( RSpan ` R ) $.
    rspsn.d $e |- .|| = ( ||r ` R ) $.
    $( Membership in principal ideals is closely related to divisibility.
       (Contributed by Stefan O'Rear, 3-Jan-2015.)  (Revised by Mario Carneiro,
       6-May-2015.) $)
    rspsn $p |- ( ( R e. Ring /\ G e. B ) ->
        ( K ` { G } ) = { x | G .|| x } ) $=
      ( va crg wcel wa cv cfv wceq wrex wb cbs eqtri wbr csn cmulr co eqcom a1i
      rexbidv crglmod rlmlmod cid rlmsca2 cnx baseid strfvi rlmbas rlmvsca crsp
      clmod clspn rspval lspsnel sylan eqid dvdsr2 adantl 3bitr4d abbi2dv ) DKL
      ZEBLZMZEANZCUAZAEUBFOZVJVKJNEDUCOZUDZPZJBQZVOVKPZJBQZVKVMLZVLVJVPVRJBVPVR
      RVJVKVOUEUFUGVHDUHOZURLVIVTVQRDUIVNVKJDUJOBFBWAEDUKDSULSOBUMGUNBDSOWASOGD
      UOTDUPFDUQOWAUSOHDUTTVAVBVIVLVSRVHJBCDVNEVKGIVNVCVDVEVFVG $.
  $}

  ${
    $d U x y $.  $d B x y $.  $d .|| x y $.  $d R x y $.  $d I x y $.
    $d K x y $.  $d G x y $.
    lidldvgen.b $e |- B = ( Base ` R ) $.
    lidldvgen.u $e |- U = ( LIdeal ` R ) $.
    lidldvgen.k $e |- K = ( RSpan ` R ) $.
    lidldvgen.d $e |- .|| = ( ||r ` R ) $.
    $( An element generates an ideal iff it is contained in the ideal and all
       elements are right-divided by it.  (Contributed by Stefan O'Rear,
       3-Jan-2015.) $)
    lidldvgen $p |- ( ( R e. Ring /\ I e. U /\ G e. B ) ->
        ( I = ( K ` { G } ) <-> ( G e. I /\ A. x e. I G .|| x ) ) ) $=
      ( vy wcel wceq cv wbr wral wa wss crg w3a csn simp1 simp3 rspssid syl2anc
      cfv snssd snssg 3ad2ant3 mpbird cab rspsn 3adant2 eleq2d vex breq2 syl6bb
      wb elab biimpd ralrimiv jca eleq2 raleq anbi12d syl5ibrcom wi df-ral ssab
      bitr4i biimpi ad2antll adantr sseqtr4d simpl1 simpl2 snssi adantl syl3anc
      wal rspssp adantrr eqssd ex impbid ) DUANZGENZFBNZUBZGFUCZHUHZOZFGNZFAPZC
      QZAGRZSZWKWSWNFWMNZWQAWMRZSWKWTXAWKWTWLWMTZWKWHWLBTXBWHWIWJUDWKFBWHWIWJUE
      UIBDWLHKIUFUGWJWHWTXBUTWIFWMBUJUKULWKWQAWMWKWPWMNZWQWKXCWPFMPZCQZMUMZNWQW
      KWMXFWPWHWJWMXFOWIMBCDFHIKLUNUOUPXEWQMWPAUQXDWPFCURVAUSVBVCVDWNWOWTWRXAGW
      MFVEWQAGWMVFVGVHWKWSWNWKWSSZGWMXGGWQAUMZWMWRGXHTZWKWOWRXIWRWPGNWQVIAWBXIW
      QAGVJWQAGVKVLVMVNWKWMXHOZWSWHWJXJWIABCDFHIKLUNUOVOVPWKWOWMGTZWRWKWOSWHWIW
      LGTZXKWHWIWJWOVQWHWIWJWOVRWOXLWKFGVSVTDEWLGHKJWCWAWDWEWFWG $.
  $}

  ${
    $d R x y $.  $d I x y $.  $d U x y $.  $d P x y $.  $d .|| x y $.
    lpigen.u $e |- U = ( LIdeal ` R ) $.
    lpigen.p $e |- P = ( LPIdeal ` R ) $.
    lpigen.d $e |- .|| = ( ||r ` R ) $.
    $( An ideal is principal iff it contains an element which right-divides all
       elements.  (Contributed by Stefan O'Rear, 3-Jan-2015.)  (Revised by Wolf
       Lammen, 6-Sep-2020.) $)
    lpigen $p |- ( ( R e. Ring /\ I e. U ) -> ( I e. P <->
        E. x e. I A. y e. I x .|| y ) ) $=
      ( crg wcel wa cv csn crsp cfv wrex wb eqid wceq cbs wbr islpidl lidldvgen
      adantr 3expa rexbidva simpr wss lidlss adantl sseld adantrd ancrd impbid2
      wral rexbidv2 3bitrd ) EKLZGFLZMZGDLZGANZOEPQZQUAZAEUBQZRZVDGLZVDBNCUCBGU
      QZMZAVGRVJAGRUTVCVHSVAVGDEAGVEIVETZVGTZUDUFVBVFVKAVGUTVAVDVGLZVFVKSBVGCEF
      VDGVEVMHVLJUEUGUHVBVKVJAVGGVBVNVKMVKVNVKUIVBVKVNVBVIVNVJVBGVGVDVAGVGUJUTV
      GGFEVMHUKULUMUNUOUPURUS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Nonzero rings and zero rings
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c NzRing $.

  $( The class of nonzero rings. $)
  cnzr $a class NzRing $.

  $( A nonzero or nontrivial ring is a ring with at least two values, or
     equivalently where 1 and 0 are different.  (Contributed by Stefan O'Rear,
     24-Feb-2015.) $)
  df-nzr $a |- NzRing = { r e. Ring | ( 1r ` r ) =/= ( 0g ` r ) } $.

  ${
    $d .1. r $.  $d R r $.  $d .0. r $.
    isnzr.o $e |- .1. = ( 1r ` R ) $.
    isnzr.z $e |- .0. = ( 0g ` R ) $.
    $( Property of a nonzero ring.  (Contributed by Stefan O'Rear,
       24-Feb-2015.) $)
    isnzr $p |- ( R e. NzRing <-> ( R e. Ring /\ .1. =/= .0. ) ) $=
      ( vr cv cur cfv c0g wne crg cnzr wceq fveq2 syl6eqr neeq12d df-nzr elrab2
      ) FGZHIZTJIZKBCKFALMTANZUABUBCUCUAAHIBTAHODPUCUBAJICTAJOEPQFRS $.

    $( One and zero are different in a nonzero ring.  (Contributed by Stefan
       O'Rear, 24-Feb-2015.) $)
    nzrnz $p |- ( R e. NzRing -> .1. =/= .0. ) $=
      ( cnzr wcel crg wne isnzr simprbi ) AFGAHGBCIABCDEJK $.
  $}

  $( A nonzero ring is a ring.  (Contributed by Stefan O'Rear, 24-Feb-2015.) $)
  nzrring $p |- ( R e. NzRing -> R e. Ring ) $=
    ( cnzr wcel crg cur cfv c0g wne eqid isnzr simplbi ) ABCADCAEFZAGFZHALMLIMI
    JK $.

  $( All division rings are nonzero.  (Contributed by Stefan O'Rear,
     24-Feb-2015.) $)
  drngnzr $p |- ( R e. DivRing -> R e. NzRing ) $=
    ( cdr wcel crg cur cfv c0g wne cnzr drngring eqid drngunz isnzr sylanbrc )
    ABCADCAEFZAGFZHAICAJAOPPKZOKZLAOPRQMN $.

  ${
    $d B x y $.  $d R x y $.
    isnzr2.b $e |- B = ( Base ` R ) $.
    $( Equivalent characterization of nonzero rings: they have at least two
       elements.  (Contributed by Stefan O'Rear, 24-Feb-2015.) $)
    isnzr2 $p |- ( R e. NzRing <-> ( R e. Ring /\ 2o ~<_ B ) ) $=
      ( vx vy wcel cfv wne wa c2o cdom wbr eqid c1o cv wceq wrex adantr cvv wb
      cnzr crg cur c0g isnzr csdm wn ringidcl ring0cl simpr df-ne neeq1 syl5bbr
      neeq2 rspc2ev syl3anc ex wi ring1eq0 3expb necon3bd rexlimdvva impbid cbs
      fvex eqeltri 1sdom ax-mp syl6bbr csuc com 1onn sucdom df-2o breq1i bitr4i
      syl6bb pm5.32i bitri ) BUAFBUBFZBUCGZBUDGZHZIZVTJAKLZIBWAWBWAMZWBMZUEVTWC
      WEVTWCNAUFLZWEVTWCDOZEOZPZUGZEAQDAQZWHVTWCWMVTWCWMWDWAAFZWBAFZWCWMVTWNWCA
      BWACWFUHRVTWOWCABWBCWGUIRVTWCUJWLWCWAWJHZDEWAWBAAWLWIWJHWIWAPWPWIWJUKWIWA
      WJULUMWJWBWAUNUOUPUQVTWLWCDEAAVTWIAFZWJAFZIIWKWAWBVTWQWRWAWBPWKURABWAWIWJ
      WBCWFWGUSUTVAVBVCASFWHWMTABVDGSCBVDVEVFDEASVGVHVIWHNVJZAKLZWENVKFWHWTTVLN
      AVMVHJWSAKVNVOVPVQVRVS $.
  $}

  ${
    isnzr2hash.b $e |- B = ( Base ` R ) $.
    $( Equivalent characterization of nonzero rings: they have at least two
       elements.  Analogous to ~ isnzr2 .  (Contributed by AV, 14-Apr-2019.) $)
    isnzr2hash $p |- ( R e. NzRing <-> ( R e. Ring /\ 1 < ( # ` B ) ) ) $=
      ( wcel cur cfv c0g wa c1 chash clt wbr eqid cxr cvv hashxrcl mp1i fvex c2
      cbs cnzr crg wne isnzr wi ringidcl ring0cl cpr 1re rexri a1i prex eqeltri
      1lt2 wceq hashprg biimpa syl5breqr wss simpl prss sylib sylancr xrltletrd
      cle hashss ex syl2anc imdistani ring1ne0 jca impbii bitri ) BUADBUBDZBEFZ
      BGFZUCZHZVNIAJFZKLZHZBVOVPVOMZVPMZUDVRWAVNVQVTVNVOADZVPADZVQVTUEABVOCWBUF
      ABVPCWCUGWDWEHZVQVTWFVQHZIVOVPUHZJFZVSINDWGIUIUJUKWHODWINDWGVOVPULWHOPQAO
      DZVSNDWGABTFOCBTRUMZAOPQWGISWIKUNWFVQWISUOVOVPAAUPUQURWGWJWHAUSZWIVSVELWK
      WGWFWLWFVQUTVOVPABERBGRVAVBAWHOVFVCVDVGVHVIWAVNVQVNVTUTABVOVPCWBWCVJVKVLV
      M $.
  $}

  ${
    opprnzr.1 $e |- O = ( oppR ` R ) $.
    $( The opposite of a nonzero ring is nonzero.  (Contributed by Mario
       Carneiro, 17-Jun-2015.) $)
    opprnzr $p |- ( R e. NzRing -> O e. NzRing ) $=
      ( cnzr wcel crg c2o cbs cfv cdom wbr nzrring opprring eqid isnzr2 simprbi
      syl opprbas sylanbrc ) ADEZBFEZGAHIZJKZBDETAFEZUAALABCMQTUDUCUBAUBNZOPUBB
      UBABCUEROS $.
  $}

  ${
    ringelnzr.z $e |- .0. = ( 0g ` R ) $.
    ringelnzr.b $e |- B = ( Base ` R ) $.
    $( A ring is nonzero if it has a nonzero element.  (Contributed by Stefan
       O'Rear, 6-Feb-2015.)  (Revised by Mario Carneiro, 13-Jun-2015.) $)
    ringelnzr $p |- ( ( R e. Ring /\ X e. ( B \ { .0. } ) ) -> R e. NzRing ) $=
      ( crg wcel csn cdif wa cur cfv wne cnzr simpl eldifsni adantl wceq wi mpd
      eldifi ring0cl adantr eqid ring1eq0 syl3anc necon3d isnzr sylanbrc ) BGHZ
      CADIZJHZKZUKBLMZDNZBOHUKUMPZUNCDNZUPUMURUKCADQRUNUODCDUNUKCAHZDAHZUODSCDS
      TUQUMUSUKCAULUBRUKUTUMABDFEUCUDABUOCDDFUOUEZEUFUGUHUABUODVAEUIUJ $.
  $}

  ${
    nzrunit.1 $e |- U = ( Unit ` R ) $.
    nzrunit.2 $e |- .0. = ( 0g ` R ) $.
    $( A unit is nonzero in any nonzero ring.  (Contributed by Mario Carneiro,
       6-Oct-2015.) $)
    nzrunit $p |- ( ( R e. NzRing /\ A e. U ) -> A =/= .0. ) $=
      ( cnzr wcel wne wn wceq cur cfv eqid nzrnz crg nzrring 0unit necon3bbid
      wb syl mpbird eleq1 notbid syl5ibrcom necon2ad imp ) BGHZACHZADIUHUIADUHU
      IJADKZDCHZJZUHULBLMZDIZBUMDUMNZFOUHBPHZULUNTBQUPUKUMDBCUMDEFUORSUAUBUJUIU
      KADCUCUDUEUFUG $.
  $}

  ${
    subrgnzr.1 $e |- S = ( R |`s A ) $.
    $( A subring of a nonzero ring is nonzero.  (Contributed by Mario Carneiro,
       15-Jun-2015.) $)
    subrgnzr $p |- ( ( R e. NzRing /\ A e. ( SubRing ` R ) ) ->
        S e. NzRing ) $=
      ( cnzr wcel csubrg cfv crg cur c0g wne subrgring adantl eqid nzrnz adantr
      wa wceq subrg1 subrg0 3netr3d isnzr sylanbrc ) BEFZABGHFZRZCIFZCJHZCKHZLC
      EFUFUHUEABCDMNUGBJHZBKHZUIUJUEUKULLUFBUKULUKOZULOZPQUFUKUISUEABCUKDUMTNUF
      ULUJSUEABCULDUNUANUBCUIUJUIOUJOUCUD $.
  $}

  $( A ring is a zero ring iff it is not a nonzero ring.  (Contributed by AV,
     14-Apr-2019.) $)
  0ringnnzr $p |- ( R e. Ring -> ( ( # ` ( Base ` R ) ) = 1
                                  <-> -. R e. NzRing ) ) $=
    ( wcel cbs cfv c1 wceq clt wbr wa wn 1re ex wi cxr wb cvv c0 a1i cc0 syl wo
    crg chash cnzr ltnri breq2 mtbiri adantl intnand ianor pm2.21 fvex hashxrcl
    cle ax-mp rexri xrlenlt mp2an bicomi wne simpr cfn cn0 1nn0 hashbnd syl3anc
    cn hashcl hasheq0 biimpd necon3d impcom elnnne0 sylanbrc adantr com12 mpcom
    nnle1eq1 mpbid cgrp ringgrp eqid grpbn0 syl11 jaoi impbid isnzr2hash notbii
    sylbi syl6bb ) AUBBZACDZUCDZEFZWKEWMGHZIZJZAUDBZJWKWNWQWKWNWQWKWNIWOWKWNWOJ
    ZWKWNWOEEGHEKUEWMEEGUFUGUHUILWQWKWNWQWKJZWSUAWKWNMZWKWOUJWTXAWSWKWNUKWSWMEU
    NHZXAXBWSWMNBZENBXBWSOWLPBZXCACULZWLPUMUOEKUPWMEUQURUSWLQUTZXBWNWKXFXBWNXFX
    BIZXBWNXFXBVAZXGWMVGBZXBWNOWLVBBZXGXIXGXDEVCBZXBXJXDXGXERXKXGVDRXHWLEPVEVFX
    JWMVCBZXGXIMWLVHXGXLXIXFXLXIMXBXFXLXIXFXLIXLWMSUTZXIXFXLVAXLXFXMXLWMSWLQXLW
    MSFZWLQFZXLXDXNXOOXDXLXERWLPVITVJVKVLWMVMVNLVOVPTVQWMVRTVSLWKAVTBXFAWAWLAWL
    WBZWCTWDWIWEWIVPWFWPWRWRWPWLAXPWGUSWHWJ $.

  ${
    0ring.b $e |- B = ( Base ` R ) $.
    0ring.0 $e |- .0. = ( 0g ` R ) $.
    $( If a ring has only one element, it is the zero ring.  According to
       Wikipedia ("Zero ring", 14-Apr-2019,
       ~ https://en.wikipedia.org/wiki/Zero_ring):  "The zero ring, denoted {0}
       or simply 0, consists of the one-element set {0} with the operations +
       and * defined so that 0 + 0 = 0 and 0 * 0 = 0.".  (Contributed by AV,
       14-Apr-2019.) $)
    0ring $p |- ( ( R e. Ring /\ ( # ` B ) = 1 ) -> B = { .0. } ) $=
      ( crg wcel chash cfv c1 wceq csn wi ring0cl c1o cen wbr cvv wb cbs syl5bi
      fvex eqeltri hashen1 ax-mp en1eqsn ex syl imp ) BFGZAHIJKZACLKZUJCAGZUKUL
      MABCDENUKAOPQZUMULARGUKUNSABTIRDBTUBUCARUDUEUMUNULCAUFUGUAUHUI $.

    0ring01eq.1 $e |- .1. = ( 1r ` R ) $.
    $( In a ring with only one element, i.e. a zero ring, the zero and the
       identity element are the same.  (Contributed by AV, 14-Apr-2019.) $)
    0ring01eq $p |- ( ( R e. Ring /\ ( # ` B ) = 1 ) -> .0. = .1. ) $=
      ( crg wcel chash cfv c1 wceq wa csn 0ring wi ringidcl eleq2 elsni syl5com
      eqcomd syl6bi adantr mpd ) BHIZAJKLMZNADOZMZDCMZABDEFPUFUIUJQUGUFCAIZUIUJ
      ABCEGRUIUKCUHIZUJAUHCSULCDCDTUBUCUAUDUE $.

    $( If the zero and the identity element of a ring are the same, the ring is
       the zero ring.  (Contributed by AV, 16-Apr-2019.) $)
    01eq0ring $p |- ( ( R e. Ring /\ .0. = .1. ) -> B = { .0. } ) $=
      ( crg wcel wceq chash cfv c1 wne wi cvv cbs ax-mp c0 eqneqall csn cc0 clt
      wbr w3o fvex eqeltri hashv01gt1 hasheq0 ne0i syl5com syl5bi ring0cl syl11
      wb a1d wa ring1ne0 necomd ex a1i com13 3jaoi necon4d imp 0ring syldan ) B
      HIZDCJZAKLZMJZADUAJVHVIVKVHVJMDCVJUBJZVKMVJUCUDZUEZVHVJMNZDCNZOZOZAPIZVNA
      BQLPEBQUFUGZAPUHRVLVRVKVMDAIZVLVQVHVLASJZWAVQVSVLWBUOVTAPUIRWAASNWBVQADUJ
      VQASTUKULABDEFUMUNVKVQVHVPVJMTUPVOVHVMVPVHVMVPOOVOVHVMVPVHVMUQCDABCDEGFUR
      USUTVAVBVCRVDVEABDEFVFVG $.

    $( In a unital ring the zero equals the unity iff the ring is the zero
       ring.  (Contributed by FL, 14-Feb-2010.)  (Revised by AV,
       23-Jan-2020.) $)
    0ring01eqbi $p |- ( R e. Ring -> ( B ~~ 1o <-> .1. = .0. ) ) $=
      ( wcel chash cfv c1 wceq cvv cbs fvex eqeltri mp1i wa ex c0g wb 0ring01eq
      crg c1o cen wbr hashen1 eqcomd eqcom 01eq0ring fveq2 hashsng eqtrd syl5bi
      csn syl impbid bitr3d ) BUCHZAIJZKLZAUDUEUFZCDLZAMHVAVBUAUSABNJMEBNOPAMUG
      QUSVAVCUSVAVCUSVARDCABCDEFGUBUHSVCDCLZUSVACDUIUSVDVAUSVDRADUOZLZVAABCDEFG
      UJVFUTVEIJZKAVEIUKDMHVGKLVFDBTJMFBTOPDMULQUMUPSUNUQUR $.
  $}

  ${
    rng1nnzr.m $e |- M = { <. ( Base ` ndx ) , { Z } >. ,
                       <. ( +g ` ndx ) , { <. <. Z , Z >. , Z >. } >. ,
                       <. ( .r ` ndx ) , { <. <. Z , Z >. , Z >. } >. } $.
    $( The (smallest) structure representing a zero ring is not a nonzero ring.
       (Contributed by AV, 29-Apr-2019.) $)
    rng1nnzr $p |- ( Z e. V -> M e/ NzRing ) $=
      ( wcel cnzr wn wnel cbs cfv chash c1 wceq csn cvv snex cop rngbase eqcomd
      mp1i fveq2d hashsng eqtrd crg wb ring1 0ringnnzr syl mpbid df-nel sylibr
      ) CBEZAFEGZAFHULAIJZKJZLMZUMULUOCNZKJLULUNUQKULUQUNUQOEUQUNMULCPUQCCQCQNZ
      AURODRTSUACBUBUCULAUDEUPUMUEABCDUFAUGUHUIAFUJUK $.
  $}

  ${
    ring1zr.b $e |- B = ( Base ` R ) $.
    ring1zr.p $e |- .+ = ( +g ` R ) $.
    ring1zr.t $e |- .* = ( .r ` R ) $.
    $( The only (unital) ring with a base set consisting of one element is the
       zero ring (at least if its operations are internal binary operations).
       Note:  The assumption ` R e. Ring ` could be weakened if a definition of
       a non-unital ring ("Rng") was available (it would be sufficient that the
       multiplication is closed).  (Contributed by FL, 13-Feb-2010.)  (Revised
       by AV, 25-Jan-2020.)  (Proof shortened by AV, 7-Feb-2020.) $)
    ring1zr $p |- ( ( ( R e. Ring /\ .+ Fn ( B X. B ) /\ .* Fn ( B X. B ) )
           /\ Z e. B ) -> ( B = { Z } <-> ( .+ = { <. <. Z , Z >. , Z >. }
                                     /\ .* = { <. <. Z , Z >. , Z >. } ) ) ) $=
      ( crg wcel csrg cxp wfn csn wceq cop wa wb ringsrg srg1zr syl3anl1 ) CIJC
      KJBAALZMDUBMEAJAENOBEEPEPNZODUCOQRCSABCDEFGHTUA $.

    $( The only (unital) ring with one element is the zero ring (at least if
       its operations are internal binary operations).  Note:  The assumption
       ` R e. Ring ` could be weakened if a definition of a non-unital ring
       ("Rng") was available (it would be sufficient that the multiplication is
       closed).  (Contributed by FL, 14-Feb-2010.)  (Revised by AV,
       25-Jan-2020.) $)
    rngen1zr $p |- ( ( ( R e. Ring /\ .+ Fn ( B X. B ) /\ .* Fn ( B X. B ) )
           /\ Z e. B ) -> ( B ~~ 1o <-> ( .+ = { <. <. Z , Z >. , Z >. }
                                     /\ .* = { <. <. Z , Z >. , Z >. } ) ) ) $=
      ( crg wcel cxp wfn w3a wa c1o cen wbr csn wceq cop en1eqsnbi adantl bitrd
      wb ring1zr ) CIJBAAKZLDUFLMZEAJZNAOPQZAERSZBEETETRZSDUKSNUHUIUJUDUGEAUAUB
      ABCDEFGHUEUC $.

    ringen1zr.0 $e |- Z = ( 0g ` R ) $.
    $( The only unital ring with one element is the zero ring (at least if its
       operations are internal binary operations).  Note:  The assumption
       ` R e. Ring ` could be weakened if a definition of a non-unital ring
       ("Rng") was available (it would be sufficient that the multiplication is
       closed).  (Contributed by FL, 15-Feb-2010.)  (Revised by AV,
       25-Jan-2020.) $)
    ringen1zr $p |- ( ( R e. Ring /\ .+ Fn ( B X. B ) /\ .* Fn ( B X. B ) )
                      -> ( B ~~ 1o <-> ( .+ = { <. <. Z , Z >. , Z >. }
                                     /\ .* = { <. <. Z , Z >. , Z >. } ) ) ) $=
      ( crg wcel cxp wfn w3a c1o cen wbr cop csn wceq ring0cl 3ad2ant1 rngen1zr
      wa wb mpdan ) CJKZBAALZMZDUHMZNEAKZAOPQBEERERSZTDULTUDUEUGUIUKUJACEFIUAUB
      ABCDEFGHUCUF $.
  $}

  ${
    rng1nfld.m $e |- M = { <. ( Base ` ndx ) , { Z } >. ,
                       <. ( +g ` ndx ) , { <. <. Z , Z >. , Z >. } >. ,
                       <. ( .r ` ndx ) , { <. <. Z , Z >. , Z >. } >. } $.
    $( The zero ring is not a field.  (Contributed by AV, 29-Apr-2019.) $)
    rng1nfld $p |- ( Z e. V -> M e/ Field ) $=
      ( wcel cfield wn wnel cdr cnzr rng1nnzr df-nel sylib drngnzr nsyl ccrg wa
      isfld wi simpl a1i syl5bi mtod sylibr ) CBEZAFEZGAFHUEUFAIEZUEAJEZUGUEAJH
      UHGABCDKAJLMANOUFUGAPEZQZUEUGARUJUGSUEUGUITUAUBUCAFLUD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Left regular elements.  More kinds of rings
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c RLReg $. $( Left regular elements $)
  $c Domn $. $( Class of domains $)
  $c IDomn $. $( Class of integral domains $)
  $c PID $. $( Class of principal ideal domains $)

  $( Set of left-regular elements in a ring. $)
  crlreg $a class RLReg $.

  $( Class of (ring theoretic) domains. $)
  cdomn $a class Domn $.

  $( Class of integral domains. $)
  cidom $a class IDomn $.

  $( Class of principal ideal domains. $)
  cpid $a class PID $.

  ${
    $d b r x y z $.
    $( Define the set of _left-regular elements_ in a ring as those elements
       which are not left zero divisors, meaning that multiplying a nonzero
       element on the left by a left-regular element gives a nonzero product.
       (Contributed by Stefan O'Rear, 22-Mar-2015.) $)
    df-rlreg $a |- RLReg = ( r e. _V |-> { x e. ( Base ` r ) |
            A. y e. ( Base ` r ) ( ( x ( .r ` r ) y ) = ( 0g ` r ) ->
                y = ( 0g ` r ) ) } ) $.

    $( A _domain_ is a nonzero ring in which there are no nontrivial zero
       divisors.  (Contributed by Mario Carneiro, 28-Mar-2015.) $)
    df-domn $a |- Domn = { r e. NzRing | [. ( Base ` r ) / b ].
    [. ( 0g ` r ) / z ]. A. x e. b A. y e. b ( ( x ( .r ` r ) y ) = z ->
                    ( x = z \/ y = z ) ) } $.

    $( An _integral domain_ is a commutative domain.  (Contributed by Mario
       Carneiro, 17-Jun-2015.) $)
    df-idom $a |- IDomn = ( CRing i^i Domn ) $.

    $( A _principal ideal domain_ is an integral domain satisfying the left
       principal ideal property.  (Contributed by Stefan O'Rear,
       29-Mar-2015.) $)
    df-pid $a |- PID = ( IDomn i^i LPIR ) $.
  $}

  ${
    $d B r x y $.  $d R r x y $.  $d .x. r $.  $d .0. r $.
    rrgval.e $e |- E = ( RLReg ` R ) $.
    rrgval.b $e |- B = ( Base ` R ) $.
    rrgval.t $e |- .x. = ( .r ` R ) $.
    rrgval.z $e |- .0. = ( 0g ` R ) $.
    $( Value of the set or left-regular elements in a ring.  (Contributed by
       Stefan O'Rear, 22-Mar-2015.) $)
    rrgval $p |- E = { x e. B | A. y e. B ( ( x .x. y ) = .0. -> y = .0. ) } $=
      ( vr crlreg cfv cv wceq crab cvv cbs c0 co wi wral wcel cmulr c0g syl6eqr
      fveq2 oveqd eqeq12d eqeq2d imbi12d raleqbidv rabeqbidv fvex eqeltri rabex
      df-rlreg fvmpt wn fvprc syl5eq rabeq syl rab0 syl6eq eqtr4d pm2.61i eqtri
      ) FDMNZAOZBOZEUAZGPZVLGPZUBZBCUCZACQZHDRUDZVJVRPLDVKVLLOZUENZUAZVTUFNZPZV
      LWCPZUBZBVTSNZUCZAWGQVRRMVTDPZWHVQAWGCWIWGDSNZCVTDSUHIUGZWIWFVPBWGCWKWIWD
      VNWEVOWIWBVMWCGWIWAEVKVLWIWADUENEVTDUEUHJUGUIWIWCDUFNGVTDUFUHKUGZUJWIWCGV
      LWLUKULUMUNABLURVQACCWJRIDSUOUPUQUSVSUTZVJTVRDMVAWMVRVQATQZTWMCTPVRWNPWMC
      WJTIDSVAVBVQACTVCVDVQAVEVFVGVHVI $.

    $d .x. x $.  $d X x $.  $d X y $.  $d .0. x $.
    $( Membership in the set of left-regular elements.  (Contributed by Stefan
       O'Rear, 22-Mar-2015.) $)
    isrrg $p |- ( X e. E <-> ( X e. B /\
          A. y e. B ( ( X .x. y ) = .0. -> y = .0. ) ) ) $=
      ( vx cv co wceq wi wral oveq1 eqeq1d imbi1d ralbidv rrgval elrab2 ) LMZAM
      ZDNZGOZUEGOZPZABQFUEDNZGOZUHPZABQLFBEUDFOZUIULABUMUGUKUHUMUFUJGUDFUEDRSTU
      ALABCDEGHIJKUBUC $.

    $d .x. y $.  $d Y y $.  $d .0. y $.
    $( Property of a left-regular element.  (Contributed by Stefan O'Rear,
       22-Mar-2015.) $)
    rrgeq0i $p |- ( ( X e. E /\ Y e. B ) ->
      ( ( X .x. Y ) = .0. -> Y = .0. ) ) $=
      ( vy wcel cv co wceq wi wral isrrg simprbi oveq2 eqeq1d eqeq1 rspcv mpan9
      imbi12d ) EDMZELNZCOZGPZUHGPZQZLARZFAMEFCOZGPZFGPZQZUGEAMUMLABCDEGHIJKSTU
      LUQLFAUHFPZUJUOUKUPURUIUNGUHFECUAUBUHFGUCUFUDUE $.

    $( Left-multiplication by a left regular element does not change zeroness.
       (Contributed by Stefan O'Rear, 28-Mar-2015.) $)
    rrgeq0 $p |- ( ( R e. Ring /\ X e. E /\ Y e. B ) ->
        ( ( X .x. Y ) = .0. <-> Y = .0. ) ) $=
      ( vx vy crg wcel w3a co wceq wi cv rrgeq0i 3adant1 simp1 wral crab rrgval
      ssrab2 eqsstri simp2 sseldi ringrz syl2anc oveq2 eqeq1d syl5ibrcom impbid
      ) BNOZEDOZFAOZPZEFCQZGRZFGRZURUSVBVCSUQABCDEFGHIJKUAUBUTVBVCEGCQZGRZUTUQE
      AOVEUQURUSUCUTDAEDLTMTZCQGRVFGRSMAUDZLAUEALMABCDGHIJKUFVGLAUGUHUQURUSUIUJ
      ABCEGIJKUKULVCVAVDGFGECUMUNUOUP $.

    ${
      $d ph x y $.  $d E x $.  $d I x y $.  $d V x $.  $d Y x $.  $d .x. x y $.
      $d .0. x y $.
      rrgsupp.i $e |- ( ph -> I e. V ) $.
      rrgsupp.r $e |- ( ph -> R e. Ring ) $.
      rrgsupp.x $e |- ( ph -> X e. E ) $.
      rrgsupp.y $e |- ( ph -> Y : I --> B ) $.
      $( Left multiplication by a left regular element does not change the
         support set of a vector.  (Contributed by Stefan O'Rear, 28-Mar-2015.)
         (Revised by AV, 20-Jul-2019.) $)
      rrgsupp $p |- ( ph ->
                 ( ( ( I X. { X } ) oF .x. Y ) supp .0. ) = ( Y supp .0. ) ) $=
        ( vx vy cv csn cxp cof co cfv crab csupp wcel wa cmpt wceq adantr fvexd
        wne cvv fconstmpt feqmptd offval2 fveq1d simpr ovex fveq2 oveq2d fvmptg
        a1i eqid sylancl neeq1d rabbidva crg ffvelrnda rrgeq0 syl3anc necon3bid
        eqtrd wb wfn fnmpti fneq1 mpbiri syl c0g fvex eqeltri suppvalfn 3eqtr4d
        wf ffn ) ASUAZFHUBUCZIDUDUEZUFZJUOZSFUGZWJIUFZJUOZSFUGZWLJUHUEZIJUHUEZA
        WOHWPDUEZJUOZSFUGWRAWNXBSFAWJFUIZUJZWMXAJXDWMWJTFHTUAZIUFZDUEZUKZUFZXAX
        DWJWLXHAWLXHULZXCATFHXFDWKIGEUPOAHEUIZXEFUIZQUMAXLUJXEIUNWKTFHUKULATFHU
        QVFATFBIRURUSZUMUTXDXCXAUPUIXIXAULAXCVAHWPDVBTWJXGXAFUPXHXEWJULXFWPHDXE
        WJIVCVDXHVGZVEVHVPVIVJAXBWQSFXDXAJWPJXDCVKUIZXKWPBUIXAJULWPJULVQAXOXCPU
        MAXKXCQUMAFBWJIRVLBCDEHWPJKLMNVMVNVOVJVPAWLFVRZFGUIZJUPUIZWSWOULAXJXPXM
        XJXPXHFVRTFXGXHHXFDVBXNVSFWLXHVTWAWBOXRAJCWCUFUPNCWCWDWEVFZSWLGUPFJWFVN
        AIFVRZXQXRWTWRULAFBIWHXTRFBIWIWBOXSSIGUPFJWFVNWG $.
    $}
  $}

  ${
    $d B x y $.  $d R x y $.
    rrgss.e $e |- E = ( RLReg ` R ) $.
    rrgss.b $e |- B = ( Base ` R ) $.
    $( Left-regular elements are a subset of the base set.  (Contributed by
       Stefan O'Rear, 22-Mar-2015.) $)
    rrgss $p |- E C_ B $=
      ( vx vy cv cmulr cfv co c0g wceq wi wral crab eqid rrgval ssrab2 eqsstri
      ) CFHGHZBIJZKBLJZMUAUCMNGAOZFAPAFGABUBCUCDEUBQUCQRUDFAST $.
  $}

  ${
    $d E x $.  $d R x y $.  $d U x y $.
    unitrrg.e $e |- E = ( RLReg ` R ) $.
    unitrrg.u $e |- U = ( Unit ` R ) $.
    $( Units are regular elements.  (Contributed by Stefan O'Rear,
       22-Mar-2015.) $)
    unitrrg $p |- ( R e. Ring -> U C_ E ) $=
      ( vx vy crg wcel cv wa cbs cfv cmulr co c0g wceq wi eqid adantr cinvr cur
      wral unitcl adantl oveq2 unitlinv oveq1d ringinvcl simpr ringass syl13anc
      simpll ringlidm adantlr 3eqtr3d ringrz syl2anc eqeq12d ralrimiva sylanbrc
      syl5ib isrrg ex ssrdv ) AHIZFBCVFFJZBIZVGCIZVFVHKZVGALMZIZVGGJZANMZOZAPMZ
      QZVMVPQZRZGVKUCVIVHVLVFVKABVGVKSZEUDUEZVJVSGVKVQVGAUAMZMZVOVNOZWCVPVNOZQV
      JVMVKIZKZVRVOVPWCVNUFWGWDVMWEVPWGWCVGVNOZVMVNOZAUBMZVMVNOZWDVMWGWHWJVMVNV
      JWHWJQWFAVNBWJWBVGEWBSZVNSZWJSZUGTUHWGVFWCVKIZVLWFWIWDQVFVHWFUMZVJWOWFVKA
      BWBVGEWLVTUITZVJVLWFWATVJWFUJVKAVNWCVGVMVTWMUKULVFWFWKVMQVHVKAVNWJVMVTWMW
      NUNUOUPWGVFWOWEVPQWPWQVKAVNWCVPVTWMVPSZUQURUSVBUTGVKAVNCVGVPDVTWMWRVCVAVD
      VE $.
  $}

  ${
    $d B b r x y z $.  $d R b r x y z $.  $d .x. b r z $.  $d .0. b r x y z $.
    isdomn.b $e |- B = ( Base ` R ) $.
    isdomn.t $e |- .x. = ( .r ` R ) $.
    isdomn.z $e |- .0. = ( 0g ` R ) $.
    $( Expand definition of a domain.  (Contributed by Mario Carneiro,
       28-Mar-2015.) $)
    isdomn $p |- ( R e. Domn <-> ( R e. NzRing /\
     A. x e. B A. y e. B ( ( x .x. y ) = .0. -> ( x = .0. \/ y = .0. ) ) ) ) $=
      ( vr vz vb cv cmulr cfv wceq wral c0g cbs fveq2 co wo wsbc cnzr cdomn cvv
      wi fvexd syl6eqr wa adantr simplr oveqdr eqeqan12d orbi12d adantl imbi12d
      id wb eqeq2 raleqbidv sbcied2 df-domn elrab2 ) AMZBMZJMZNOZUAZKMZPZVEVJPZ
      VFVJPZUBZUGZBLMZQZAVPQZKVGROZUCZLVGSOZUCVEVFEUAZFPZVEFPZVFFPZUBZUGZBCQZAC
      QZJDUDUEVGDPZVTWILWACUFWJVGSUHWJWADSOCVGDSTGUIWJVPCPZUJZVRWIKVSFUFWLVGRUH
      WLVSDROZFWJVSWMPWKVGDRTUKIUIWLVJFPZUJZVQWHAVPCWJWKWNULZWOVOWGBVPCWPWOVKWC
      VNWFWLWNVIWBVJFWJWKABVHEWJVHDNOEVGDNTHUIUMWNURUNWNVNWFUSWLWNVLWDVMWEVJFVE
      UTVJFVFUTUOUPUQVAVAVBVBABKJLVCVD $.
  $}

  ${
    $d x y .0. $.  $d x y B $.  $d x y R $.  $d x y .x. $.  $d x y X $.
    $d y Y $.
    $( A domain is a nonzero ring.  (Contributed by Mario Carneiro,
       28-Mar-2015.) $)
    domnnzr $p |- ( R e. Domn -> R e. NzRing ) $=
      ( vx vy cdomn wcel cnzr cv cmulr cfv co c0g wceq wo cbs wral eqid simplbi
      wi isdomn ) ADEAFEBGZCGZAHIZJAKIZLTUCLUAUCLMRCANIZOBUDOBCUDAUBUCUDPUBPUCP
      SQ $.

    $( A domain is a ring.  (Contributed by Mario Carneiro, 28-Mar-2015.) $)
    domnring $p |- ( R e. Domn -> R e. Ring ) $=
      ( cdomn wcel cnzr crg domnnzr nzrring syl ) ABCADCAECAFAGH $.

    domneq0.b $e |- B = ( Base ` R ) $.
    domneq0.t $e |- .x. = ( .r ` R ) $.
    domneq0.z $e |- .0. = ( 0g ` R ) $.
    $( In a domain, a product is zero iff it has a zero factor.  (Contributed
       by Mario Carneiro, 28-Mar-2015.) $)
    domneq0 $p |- ( ( R e. Domn /\ X e. B /\ Y e. B ) ->
        ( ( X .x. Y ) = .0. <-> ( X = .0. \/ Y = .0. ) ) ) $=
      ( vx vy wcel co wceq wo cv wi wral eqeq1d syl2anc cdomn w3a 3simpc isdomn
      cnzr simprbi 3ad2ant1 oveq1 eqeq1 orbi1d imbi12d oveq2 orbi2d rspc2va crg
      wa domnring simp3 ringlz syl5ibrcom simp2 ringrz jaod impbid ) BUALZDALZE
      ALZUBZDECMZFNZDFNZEFNZOZVHVFVGUPJPZKPZCMZFNZVNFNZVOFNZOZQZKARJARZVJVMQZVE
      VFVGUCVEVFWBVGVEBUELWBJKABCFGHIUDUFUGWAWCDVOCMZFNZVKVSOZQJKDEAAVNDNZVQWEV
      TWFWGVPWDFVNDVOCUHSWGVRVKVSVNDFUIUJUKVOENZWEVJWFVMWHWDVIFVOEDCULSWHVSVLVK
      VOEFUIUMUKUNTVHVKVJVLVHVJVKFECMZFNZVHBUOLZVGWJVEVFWKVGBUQUGZVEVFVGURABCEF
      GHIUSTVKVIWIFDFECUHSUTVHVJVLDFCMZFNZVHWKVFWNWLVEVFVGVAABCDFGHIVBTVLVIWMFE
      FDCULSUTVCVD $.

    $( In a domain, a product of nonzero elements is nonzero.  (Contributed by
       Mario Carneiro, 6-May-2015.) $)
    domnmuln0 $p |- ( ( R e. Domn /\ ( X e. B /\ X =/= .0. ) /\
      ( Y e. B /\ Y =/= .0. ) ) -> ( X .x. Y ) =/= .0. ) $=
      ( cdomn wcel wne wa co an4 wceq wo wn wb domneq0 3expb necon3abid neanior
      syl6rbbr biimpd expimpd syl5bi 3impib ) BJKZDAKZDFLZMZEAKZEFLZMZDECNZFLZU
      LUOMUJUMMZUKUNMZMUIUQUJUKUMUNOUIURUSUQUIURMZUSUQUTUQDFPEFPQZRUSUTVAUPFUIU
      JUMUPFPVASABCDEFGHITUAUBDFEFUCUDUEUFUGUH $.
  $}

  ${
    $d B x y $.  $d E x $.  $d R x y $.  $d .0. x y $.
    isdomn2.b $e |- B = ( Base ` R ) $.
    isdomn2.t $e |- E = ( RLReg ` R ) $.
    isdomn2.z $e |- .0. = ( 0g ` R ) $.
    $( A ring is a domain iff all nonzero elements are nonzero-divisors.
       (Contributed by Mario Carneiro, 28-Mar-2015.) $)
    isdomn2 $p |- ( R e. Domn <-> ( R e. NzRing /\ ( B \ { .0. } ) C_ E ) ) $=
      ( vx vy wcel cv wceq wi wral wa imbi1i impexp bitri wn con34b cdomn cmulr
      cnzr cfv co csn cdif wss eqid isdomn dfss3 wne isrrg baib ralbiia eldifsn
      imbi2d ralbii2 ioran df-ne imbi12i 3bitr4i ralbii r19.21v bitr2i anbi2i
      wo ) BUAJBUCJZHKZIKZBUBUDZUEDLZVIDLZVJDLZVGZMZIANZHANZOVHADUFUGZCUHZOHIAB
      VKDEVKUIZGUJVRVTVHVTVICJZHVSNZVRHVSCUKVIDULZWBMZHANWDVLVNMZIANZMZHANWCVRW
      EWHHAVIAJZWBWGWDWBWIWGIABVKCVIDFEWAGUMUNUQUOWBWEHVSAVIVSJZWBMWIWDOZWBMWIW
      EMWJWKWBVIADUPPWIWDWBQRURVQWHHAVQWDWFMZIANWHVPWLIAVPVOSZVLSZMZWLVLVOTVMSZ
      VNSZOZWNMWPWQWNMZMWOWLWPWQWNQWMWRWNVMVNUSPWDWPWFWSVIDUTVLVNTVAVBRVCWDWFIA
      VDRVCVBVEVFR $.

    $( In a domain, any nonzero element is a nonzero-divisor.  (Contributed by
       Mario Carneiro, 28-Mar-2015.) $)
    domnrrg $p |- ( ( R e. Domn /\ X e. B /\ X =/= .0. ) -> X e. E ) $=
      ( cdomn wcel wne w3a csn cdif wss cnzr isdomn2 simprbi 3ad2ant1 simp2
      simp3 eldifsn sylanbrc sseldd ) BIJZDAJZDEKZLZAEMNZCDUEUFUICOZUGUEBPJUJAB
      CEFGHQRSUHUFUGDUIJUEUFUGTUEUFUGUADAEUBUCUD $.
  $}

  ${
    $d x y O $.  $d x y R $.
    opprdomn.1 $e |- O = ( oppR ` R ) $.
    $( The opposite of a domain is also a domain.  (Contributed by Mario
       Carneiro, 15-Jun-2015.) $)
    opprdomn $p |- ( R e. Domn -> O e. Domn ) $=
      ( vx vy cdomn wcel cnzr cv cmulr cfv co c0g wceq wo cbs wral domnnzr eqid
      wi opprnzr syl w3a domneq0 3com23 opprmul eqeq1i orcom 3bitr4g ralrimivva
      wb biimpd 3expb opprbas oppr0 isdomn sylanbrc ) AFGZBHGZDIZEIZBJKZLZAMKZN
      ZUTVDNZVAVDNZOZTZEAPKZQDVJQBFGURAHGUSARABCUAUBURVIDEVJVJURUTVJGZVAVJGZVIU
      RVKVLUCZVEVHVMVAUTAJKZLZVDNZVGVFOZVEVHURVLVKVPVQUKVJAVNVAUTVDVJSZVNSZVDSZ
      UDUEVCVOVDVJAVBVNBUTVAVRVSCVBSZUFUGVFVGUHUIULUMUJDEVJBVBVDVJABCVRUNWAABVD
      CVTUOUPUQ $.
  $}

  ${
    $d x y z A $.  $d x y z R $.
    abvn0b.b $e |- A = ( AbsVal ` R ) $.
    $( Another characterization of domains, hinted at in ~ abvtriv : a nonzero
       ring is a domain iff it has an absolute value.  (Contributed by Mario
       Carneiro, 6-May-2015.) $)
    abvn0b $p |- ( R e. Domn <-> ( R e. NzRing /\ A =/= (/) ) ) $=
      ( vx vy vz cdomn wcel cnzr c0 wne wa domnnzr cbs cfv c0g wceq eqid wral
      cv cc0 c1 cif cmpt cmulr domnring domnmuln0 abvtrivd syl jca co wo wi wex
      ne0i neanior an4 abvdom 3expib syl5bi expdimp syl5bir necon4bd ralrimivva
      n0 wn exlimiv sylbi anim2i isdomn sylibr impbii ) BGHZBIHZAJKZLZVMVNVOBMV
      MDBNOZDTZBPOZQUAUBUCUDZAHVOVMDEFAVQBBUEOZVTVSCVQRZVSRZVTRWARZBUFVQBWAETZF
      TZVSWBWDWCUGUHAVTUOUIUJVPVNWEWFWAUKZVSQWEVSQWFVSQULZUMZFVQSEVQSZLVMVOWJVN
      VOVRAHZDUNWJDAVEWKWJDWKWIEFVQVQWKWEVQHZWFVQHZLZLZWHWGVSWHVFWEVSKZWFVSKZLZ
      WOWGVSKZWEVSWFVSUPWKWNWRWSWNWRLWLWPLZWMWQLZLWKWSWLWMWPWQUQWKWTXAWSAVQBWAV
      RWEWFVSCWBWCWDURUSUTVAVBVCVDVGVHVIEFVQBWAVSWBWDWCVJVKVL $.
  $}

  $( A division ring is a domain.  (Contributed by Mario Carneiro,
     29-Mar-2015.) $)
  drngdomn $p |- ( R e. DivRing -> R e. Domn ) $=
    ( cdr wcel cnzr cbs cfv c0g csn cdif crlreg wss cdomn drngnzr cui wceq eqid
    crg isdrng simprbi drngring unitrrg syl eqsstr3d isdomn2 sylanbrc ) ABCZADC
    AEFZAGFZHIZAJFZKALCAMUFUIANFZUJUFAQCZUKUIOUGAUKUHUGPZUKPZUHPZRSUFULUKUJKATA
    UKUJUJPZUNUAUBUCUGAUJUHUMUPUOUDUE $.

  $( An integral domain is a commutative domain.  (Contributed by Mario
     Carneiro, 17-Jun-2015.) $)
  isidom $p |- ( R e. IDomn <-> ( R e. CRing /\ R e. Domn ) ) $=
    ( ccrg cdomn cidom df-idom elin2 ) ABCDEF $.

  $( A field is an integral domain.  (Contributed by Mario Carneiro,
     29-Mar-2015.) $)
  fldidom $p |- ( R e. Field -> R e. IDomn ) $=
    ( cfield wcel ccrg cdomn cidom cdr simprbi simplbi drngdomn isidom sylanbrc
    isfld syl ) ABCZADCZAECZAFCOAGCZPAMZHORQORPSIAJNAKL $.

  ${
    $d x y A $.  $d x y B $.  $d y F $.  $d y ph $.  $d x y R $.  $d x y .x. $.
    $d y .1. $.  $d y .0. $.
    fidomndrng.b $e |- B = ( Base ` R ) $.
    ${
      fidomndrng.z $e |- .0. = ( 0g ` R ) $.
      fidomndrng.o $e |- .1. = ( 1r ` R ) $.
      fidomndrng.d $e |- .|| = ( ||r ` R ) $.
      fidomndrng.t $e |- .x. = ( .r ` R ) $.
      fidomndrng.r $e |- ( ph -> R e. Domn ) $.
      fidomndrng.x $e |- ( ph -> B e. Fin ) $.
      fidomndrng.a $e |- ( ph -> A e. ( B \ { .0. } ) ) $.
      fidomndrng.f $e |- F = ( x e. B |-> ( x .x. A ) ) $.
      $( Lemma for ~ fidomndrng .  (Contributed by Mario Carneiro,
         15-Jun-2015.) $)
      fidomndrnglem $p |- ( ph -> A .|| .1. ) $=
        ( wcel vy ccnv cfv co wbr csn eldifad wf1o wf wf1 cv wceq wral wne cdif
        wi wa eldifsni syl ad2antrr oveq1 ovex fvmpt adantl eqeq1d cdomn adantr
        wo wb simpr domneq0 syl3anc bitrd biimpa ord necon1ad ex ralrimiva cghm
        mpd cmpt crg domnring ringrghm syl2anc syl5eqel ghmf1 mpbird cen enrefg
        cfn f1finf1o mpbid f1ocnv f1of ringidcl ffvelrnd dvdsrmul cbvmptv eqtri
        3syl f1ocnvfv2 eqtr3d breqtrd ) ACHIUBZUCZCGUDZHEACDTZXFDTZCXGEUEACDJUF
        ZRUGZADDHXEADDIUHZDDXEUHDDXEUIADDIUJZXLAXMUAUKZIUCZJULZXNJULZUPZUADUMZA
        XRUADAXNDTZUQZXPXQYAXPUQZCJUNZXQAYCXTXPACDXJUOTYCRCDJURUSUTYBXQCJYBXQCJ
        ULZYAXPXQYDVHZYAXPXNCGUDZJULZYEYAXOYFJXTXOYFULABXNBUKZCGUDZYFDIYHXNCGVA
        ZSXNCGVBVCVDVEYAFVFTZXTXHYGYEVIAYKXTPVGAXTVJAXHXTXKVGDFGXNCJKOLVKVLVMVN
        VOVPVTVQVRAIFFVSUDZTXMXSVIAIBDYIWAZYLSAFWBTZXHYMYLTAYKYNPFWCUSZXKBDFGCK
        OWDWEWFUAFFJIDDJKKLLWGUSWHADDWIUEZDWKTZXMXLVIAYQYPQDWKWJUSQDDIWLWEWMZDD
        IWNDDXEWOXAAYNHDTZYODFHKMWPUSZWQZDEFGCXFKNOWRWEAXFIUCZXGHAXIUUBXGULUUAU
        AXFYFXGDIXNXFCGVAIYMUADYFWASBUADYIYFYJWSWTXFCGVBVCUSAXLYSUUBHULYRYTDDHI
        XBWEXCXD $.
    $}

    $( A finite domain is a division ring.  (Contributed by Mario Carneiro,
       15-Jun-2015.) $)
    fidomndrng $p |- ( B e. Fin -> ( R e. Domn <-> R e. DivRing ) ) $=
      ( vx vy wcel cdomn wa cfv wceq adantl wss eqid syl wb cv cdsr wbr cmulr
      co cfn cdr crg cui c0g csn cdif domnring cin c0 wn cur cnzr domnnzr nzrnz
      neneqd 0unit mtbird disjsn sylibr unitss reldisj ax-mp sylib coppr simplr
      wne cmpt simpll simpr fidomndrnglem opprbas oppr0 oppr1 opprdomn sylanbrc
      isunit ex ssrdv eqssd isdrng drngdomn impbid1 ) AUAFZBGFZBUBFZWDWEWFWDWEH
      ZBUCFZBUDIZABUEIZUFZUGZJWFWEWHWDBUHKZWGWIWLWGWIWKUIUJJZWIWLLZWGWJWIFZUKWN
      WGWPBULIZWJJZWGWQWJWGBUMFZWQWJVGWEWSWDBUNKBWQWJWQMZWJMZUONUPWGWHWPWROWMBW
      IWQWJWIMZXAWTUQNURWIWJUSUTWIALWNWOOABWICXBVAWIWKAVBVCVDWGDWLWIWGDPZWLFZXC
      WIFZWGXDHZXCWQBQIZRXCWQBVEIZQIZRXEXFEXCAXGBBSIZWQEAEPZXCXJTVHZWJCXAWTXGMZ
      XJMWDWEXDVFZWDWEXDVIZWGXDVJZXLMVKXFEXCAXIXHXHSIZWQEAXKXCXQTVHZWJABXHXHMZC
      VLBXHWJXSXAVMBWQXHXSWTVNXIMZXQMXFWEXHGFXNBXHXSVONXOXPXRMVKXGBXHWIWQXIXCXB
      WTXMXSXTVQVPVRVSVTABWIWJCXBXAWAVPVRBWBWC $.

    $( A finite integral domain is a field.  (Contributed by Mario Carneiro,
       15-Jun-2015.) $)
    fiidomfld $p |- ( B e. Fin -> ( R e. IDomn <-> R e. Field ) ) $=
      ( cfn wcel cdomn wa cdr cidom cfield fidomndrng anbi2d isidom isfld ancom
      ccrg bitri 3bitr4g ) ADEZBPEZBFEZGTBHEZGZBIEBJEZSUAUBTABCKLBMUDUBTGUCBNUB
      TOQR $.
  $}


$( TODO: this draft definition of UFDs uses ` PrIdl ` which is currently in a
   mathbox.  There is a need to unify the basic definitions of commutative
   algebra currently in set.mm (main part and mathboxes).
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Unique factorization domains
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  @( Token for the class of unique factorization domains. @)
  $c UFD $.

  @( Class of unique factorization domains. @)
  cufd $a class UFD $.

  ${
    $d i r $.
    @( Define the class of unique factorization domains.  A unique
       factorization domain (UFD for short), is a commutative ring with an
       absolute value (from ~ abvtriv this is equivalent to being a domain)
       such that every prime ideal contains a prime element (this is a
       characterization due to Irving Kaplansky).  (Contributed by Mario
       Carneiro, 17-Feb-2015.) @)
    df-ufd $a |- UFD = { r e. CRing | ( ( AbsVal ` r ) =/= (/) /\
                  A. i e. ( PrIdl ` r ) ( i i^i ( RPrime ` r ) ) =/= (/) ) } $.
  $}
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Associative algebras
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c AssAlg $. $( Associative algebra $)
  $c AlgSpan $. $( Algebraic span $)
  $c algSc $.

  $( Associative algebra. $)
  casa $a class AssAlg $.

  $( Algebraic span function. $)
  casp $a class AlgSpan $.

  $( Class of algebra scalar injection function. $)
  cascl $a class algSc $.

  ${
    $d f r s t w x y $.
    $( Definition of an associative algebra.  An associative algebra is a set
       equipped with a left-module structure on a (commutative) ring, coupled
       with a multiplicative internal operation on the vectors of the module
       that is associative and distributive for the additive structure of the
       left-module (so giving the vectors a ring structure) and that is also
       bilinear under the scalar product.  (Contributed by Mario Carneiro,
       29-Dec-2014.) $)
    df-assa $a |- AssAlg = { w e. ( LMod i^i Ring )
      | [. ( Scalar ` w ) / f ].
        ( f e. CRing /\ A. r e. ( Base ` f ) A. x e. ( Base ` w )
        A. y e. ( Base ` w ) [. ( .s ` w ) / s ]. [. ( .r ` w ) / t ].
      ( ( ( r s x ) t y ) = ( r s ( x t y ) ) /\
        ( x t ( r s y ) ) = ( r s ( x t y ) ) ) ) } $.

    $( Define the algebraic span of a set of vectors in an algebra.
       (Contributed by Mario Carneiro, 7-Jan-2015.) $)
    df-asp $a |- AlgSpan = ( w e. AssAlg |-> ( s e. ~P ( Base ` w ) |->
      |^| { t e. ( ( SubRing ` w ) i^i ( LSubSp ` w ) ) | s C_ t } ) ) $.

    $( Every unital algebra contains a canonical homomorphic image of its ring
       of scalars as scalar multiples of the unit.  This names the
       homomorphism.  (Contributed by Mario Carneiro, 8-Mar-2015.) $)
    df-ascl $a |- algSc = ( w e. _V |-> ( x e. ( Base ` ( Scalar ` w ) ) |->
            ( x ( .s ` w ) ( 1r ` w ) ) ) ) $.
  $}

  ${
    $d r x y A $.  $d f r w B $.  $d f r w F $.  $d f r w x y V $.  $d x y X $.
    $d f r s t w x y .x. $.  $d f r s t w x y .X. $.  $d f r s t w x y W $.
    $d y Y $.
    isassa.v $e |- V = ( Base ` W ) $.
    isassa.f $e |- F = ( Scalar ` W ) $.
    isassa.b $e |- B = ( Base ` F ) $.
    isassa.s $e |- .x. = ( .s ` W ) $.
    isassa.t $e |- .X. = ( .r ` W ) $.
    $( The properties of an associative algebra.  (Contributed by Mario
       Carneiro, 29-Dec-2014.) $)
    isassa $p |- ( W e. AssAlg <-> ( ( W e. LMod /\ W e. Ring /\ F e. CRing )
                   /\ A. r e. B A. x e. V A. y e. V
      ( ( ( r .x. x ) .X. y ) = ( r .x. ( x .X. y ) ) /\
        ( x .X. ( r .x. y ) ) = ( r .x. ( x .X. y ) ) ) ) ) $=
      ( wcel cv co wceq wa cfv vf vs vt casa clmod crg cin ccrg wral cmulr wsbc
      vw w3a cvsca cbs csca fvexd fveq2 syl6eqr simpr eleq1d fveq2d wb ad2antrr
      eqtrd simplr oveqd eqidd oveq123d eqeq12d anbi12d sbcied raleqbidv adantr
      cvv sbcied2 df-assa elrab2 anass elin anbi1i df-3an bitr4i 3bitr2i ) HUDO
      HUEUFUGZOZFUHOZIPZAPZDQZBPZEQZWHWIWKEQZDQZRZWIWHWKDQZEQZWNRZSZBGUIZAGUIZI
      CUIZSZSWFWGSZXBSHUEOZHUFOZWGUMZXBSUAPZUHOZWHWIUBPZQZWKUCPZQZWHWIWKXLQZXJQ
      ZRZWIWHWKXJQZXLQZXORZSZUCULPZUJTZUKZUBYAUNTZUKZBYAUOTZUIZAYFUIZIXHUOTZUIZ
      SZUAYAUPTZUKXCULHWEUDYAHRZYKXCUAYLFVOYMYAUPUQYMYLHUPTFYAHUPURKUSYMXHFRZSZ
      XIWGYJXBYOXHFUHYMYNUTZVAYOYHXAIYICYOYIFUOTCYOXHFUOYPVBLUSYMYHXAVCYNYMYGWT
      AYFGYMYFHUOTGYAHUOURJUSZYMYEWSBYFGYQYMYCWSUBYDVOYMYAUNUQYMXJYDRZSZXTWSUCY
      BVOYSYAUJUQYSXLYBRZSZXPWOXSWRUUAXMWLXOWNUUAXKWJWKWKXLEUUAXLYBEYSYTUTUUAYB
      HUJTZEYMYBUUBRYRYTYAHUJURVDNUSVEZUUAXJDWHWIUUAXJYDDYMYRYTVFUUAYDHUNTZDYMY
      DUUDRYRYTYAHUNURVDMUSVEZVGUUAWKVHVIUUAWHWHXNWMXJDUUEUUAWHVHUUAXLEWIWKUUCV
      GVIZVJUUAXRWQXOWNUUAWIWIXQWPXLEUUCUUAWIVHUUAXJDWHWKUUEVGVIUUFVJVKVLVLVMVM
      VNVMVKVPABULUCUAUBIVQVRWFWGXBVSXDXGXBXDXEXFSZWGSXGWFUUGWGHUEUFVTWAXEXFWGW
      BWCWAWD $.

    $( The properties of an associative algebra.  (Contributed by Mario
       Carneiro, 29-Dec-2014.) $)
    assalem $p |- ( ( W e. AssAlg /\ ( A e. B /\ X e. V /\ Y e. V ) ) ->
      ( ( ( A .x. X ) .X. Y ) = ( A .x. ( X .X. Y ) ) /\
        ( X .X. ( A .x. Y ) ) = ( A .x. ( X .X. Y ) ) ) ) $=
      ( vr wcel co wceq oveq1 eqeq12d vx vy casa cv wa wral w3a crg ccrg isassa
      clmod simprbi oveq1d oveq2d anbi12d oveq2 rspc3v mpan9 ) GUCPZOUDZUAUDZCQ
      ZUBUDZDQZUTVAVCDQZCQZRZVAUTVCCQZDQZVFRZUEZUBFUFUAFUFOBUFZABPHFPIFPUGAHCQZ
      IDQZAHIDQZCQZRZHAICQZDQZVPRZUEZUSGUKPGUHPEUIPUGVLUAUBBCDEFGOJKLMNUJULVKWA
      AVACQZVCDQZAVECQZRZVAAVCCQZDQZWDRZUEVMVCDQZAHVCDQZCQZRZHWFDQZWKRZUEOUAUBA
      HIBFFUTARZVGWEVJWHWOVDWCVFWDWOVBWBVCDUTAVACSUMUTAVECSZTWOVIWGVFWDWOVHWFVA
      DUTAVCCSUNWPTUOVAHRZWEWLWHWNWQWCWIWDWKWQWBVMVCDVAHACUPUMWQVEWJACVAHVCDSUN
      ZTWQWGWMWDWKVAHWFDSWRTUOVCIRZWLVQWNVTWSWIVNWKVPVCIVMDUPWSWJVOACVCIHDUPUNZ
      TWSWMVSWKVPWSWFVRHDVCIACUPUNWTTUOUQUR $.

    $( Left-associative property of an associative algebra.  (Contributed by
       Mario Carneiro, 29-Dec-2014.) $)
    assaass $p |- ( ( W e. AssAlg /\ ( A e. B /\ X e. V /\ Y e. V ) ) ->
      ( ( A .x. X ) .X. Y ) = ( A .x. ( X .X. Y ) ) ) $=
      ( casa wcel w3a wa co wceq assalem simpld ) GOPABPHFPIFPQRAHCSIDSAHIDSCSZ
      THAICSDSUCTABCDEFGHIJKLMNUAUB $.

    $( Right-associative property of an associative algebra.  (Contributed by
       Mario Carneiro, 29-Dec-2014.) $)
    assaassr $p |- ( ( W e. AssAlg /\ ( A e. B /\ X e. V /\ Y e. V ) ) ->
      ( X .X. ( A .x. Y ) ) = ( A .x. ( X .X. Y ) ) ) $=
      ( casa wcel w3a wa co wceq assalem simprd ) GOPABPHFPIFPQRAHCSIDSAHIDSCSZ
      THAICSDSUCTABCDEFGHIJKLMNUAUB $.
  $}

  ${
    $d x y z W $.  $d z F $.
    $( An associative algebra is a left module.  (Contributed by Mario
       Carneiro, 5-Dec-2014.) $)
    assalmod $p |- ( W e. AssAlg -> W e. LMod ) $=
      ( vz vx vy casa wcel clmod crg csca cfv ccrg w3a cv cvsca cmulr wceq wral
      co cbs eqid wa isassa simplbi simp1d ) AEFZAGFZAHFZAIJZKFZUEUFUGUILBMZCMZ
      ANJZRDMZAOJZRUJUKUMUNRULRZPUKUJUMULRUNRUOPUADASJZQCUPQBUHSJZQCDUQULUNUHUP
      ABUPTUHTUQTULTUNTUBUCUD $.

    $( An associative algebra is a ring.  (Contributed by Mario Carneiro,
       5-Dec-2014.) $)
    assaring $p |- ( W e. AssAlg -> W e. Ring ) $=
      ( vz vx vy casa wcel clmod crg csca cfv ccrg w3a cv cvsca cmulr wceq wral
      co cbs eqid wa isassa simplbi simp2d ) AEFZAGFZAHFZAIJZKFZUEUFUGUILBMZCMZ
      ANJZRDMZAOJZRUJUKUMUNRULRZPUKUJUMULRUNRUOPUADASJZQCUPQBUHSJZQCDUQULUNUHUP
      ABUPTUHTUQTULTUNTUBUCUD $.

    assasca.f $e |- F = ( Scalar ` W ) $.
    $( An associative algebra's scalar field is a commutative ring.
       (Contributed by Mario Carneiro, 7-Jan-2015.) $)
    assasca $p |- ( W e. AssAlg -> F e. CRing ) $=
      ( vz vx vy casa wcel clmod crg ccrg w3a cv cvsca cfv wceq cbs wral eqid
      co cmulr wa isassa simplbi simp3d ) BGHZBIHZBJHZAKHZUFUGUHUILDMZEMZBNOZTF
      MZBUAOZTUJUKUMUNTULTZPUKUJUMULTUNTUOPUBFBQOZREUPRDAQOZREFUQULUNAUPBDUPSCU
      QSULSUNSUCUDUE $.
  $}

  ${
    assa2ass.v $e |- V = ( Base ` W ) $.
    assa2ass.f $e |- F = ( Scalar ` W ) $.
    assa2ass.b $e |- B = ( Base ` F ) $.
    assa2ass.m $e |- .* = ( .r ` F ) $.
    assa2ass.s $e |- .x. = ( .s ` W ) $.
    assa2ass.t $e |- .X. = ( .r ` W ) $.
    $( Left- and right-associative property of an associative algebra.  Notice
       that the scalars are commuted!  (Contributed by AV, 14-Aug-2019.) $)
    assa2ass $p |- ( ( W e. AssAlg /\ ( A e. B /\ C e. B )
                    /\ ( X e. V /\ Y e. V ) ) ->
      ( ( A .x. X ) .X. ( C .x. Y ) ) = ( ( C .* A ) .x. ( X .X. Y ) ) ) $=
      ( wcel wa co casa wceq simp1 simpr 3ad2ant2 clmod assalmod simpl lmodvscl
      w3a syl3an 3ad2ant3 assaassr syl13anc assaass eqcomd lmodvsass oveq1d crg
      3ad2ant1 ccrg assasca crngring adantr adantl ringcl syl3anc 3adant3 eqtrd
      syl 3eqtrd ) IUARZABRZCBRZSZJHRZKHRZSZUJZAJDTZCKDTETZCVTKETDTZCVTDTZKETZC
      AGTZJKETDTZVSVLVNVTHRZVQWAWBUBVLVOVRUCZVOVLVNVRVMVNUDZUEZVLIUFRZVOVMVRVPW
      GIUGZVMVNUHZVPVQUHZADFBHIJLMPNUIUKZVRVLVQVOVPVQUDULZCBDEFHIVTKLMNPQUMUNVS
      VLVNWGVQWBWDUBWHWJWOWPVLVNWGVQUJSWDWBCBDEFHIVTKLMNPQUOUPUNVSWDWEJDTZKETZW
      FVSWKVNVMVPWDWRUBVLVOWKVRWLUTWJVOVLVMVRWMUEVRVLVPVOWNULZWKVNVMVPUJSZWCWQK
      EWTWQWCCADGFBHIJLMPNOUQUPURUNVSVLWEBRZVPVQWRWFUBWHVLVOXAVRVLVOSFUSRZVNVMX
      AVLXBVOVLFVARXBFIMVBFVCVJVDVOVNVLWIVEVOVMVLWMVEBFGCANOVFVGVHWSWPWEBDEFHIJ
      KLMNPQUOUNVIVK $.
  $}

  ${
    $d r x y B $.  $d r x y ph $.  $d x y V $.  $d r x y W $.
    isassad.v $e |- ( ph -> V = ( Base ` W ) ) $.
    isassad.f $e |- ( ph -> F = ( Scalar ` W ) ) $.
    isassad.b $e |- ( ph -> B = ( Base ` F ) ) $.
    isassad.s $e |- ( ph -> .x. = ( .s ` W ) ) $.
    isassad.t $e |- ( ph -> .X. = ( .r ` W ) ) $.
    isassad.1 $e |- ( ph -> W e. LMod ) $.
    isassad.2 $e |- ( ph -> W e. Ring ) $.
    isassad.3 $e |- ( ph -> F e. CRing ) $.
    isassad.4 $e |- ( ( ph /\ ( r e. B /\ x e. V /\ y e. V ) ) ->
      ( ( r .x. x ) .X. y ) = ( r .x. ( x .X. y ) ) ) $.
    isassad.5 $e |- ( ( ph /\ ( r e. B /\ x e. V /\ y e. V ) ) ->
      ( x .X. ( r .x. y ) ) = ( r .x. ( x .X. y ) ) ) $.
    $( Sufficient condition for being an associative algebra.  (Contributed by
       Mario Carneiro, 5-Dec-2014.) $)
    isassad $p |- ( ph -> W e. AssAlg ) $=
      ( clmod wcel crg csca cfv ccrg w3a cv cvsca co cmulr wceq wa cbs eqeltrrd
      wral casa 3jca jca ralrimivvva eqtrd oveqd eqidd oveq123d eqeq12d anbi12d
      fveq2d raleqbidv mpbid eqid isassa sylanbrc ) AIUAUBZIUCUBZIUDUEZUFUBZUGJ
      UHZBUHZIUIUEZUJZCUHZIUKUEZUJZVQVRWAWBUJZVSUJZULZVRVQWAVSUJZWBUJZWEULZUMZC
      IUNUEZUPZBWKUPZJVOUNUEZUPZIUQUBAVMVNVPPQAGVOUFLRUOURAVQVREUJZWAFUJZVQVRWA
      FUJZEUJZULZVRVQWAEUJZFUJZWSULZUMZCHUPZBHUPZJDUPWOAXDJBCDHHAVQDUBVRHUBWAHU
      BUGUMWTXCSTUSUTAXFWMJDWNADGUNUEWNMAGVOUNLVGVAAXEWLBHWKKAXDWJCHWKKAWTWFXCW
      IAWQWCWSWEAWPVTWAWAFWBOAEVSVQVRNVBAWAVCVDAVQVQWRWDEVSNAVQVCAFWBVRWAOVBVDZ
      VEAXBWHWSWEAVRVRXAWGFWBOAVRVCAEVSVQWANVBVDXGVEVFVHVHVHVIBCWNVSWBVOWKIJWKV
      JVOVJWNVJVSVJWBVJVKVL $.
  $}

  ${
    $d x y z A $.  $d x y z L $.  $d x y z S $.  $d x y z W $.
    issubassa.s $e |- S = ( W |`s A ) $.
    issubassa.l $e |- L = ( LSubSp ` W ) $.
    issubassa.v $e |- V = ( Base ` W ) $.
    issubassa.o $e |- .1. = ( 1r ` W ) $.
    $( The subalgebras of an associative algebra are exactly the subrings
       (under the ring multiplication) that are simultaneously subspaces (under
       the scalar multiplication from the vector space).  (Contributed by Mario
       Carneiro, 7-Jan-2015.) $)
    issubassa $p |- ( ( W e. AssAlg /\ .1. e. A /\ A C_ V ) ->
      ( S e. AssAlg <-> ( A e. ( SubRing ` W ) /\ A e. L ) ) ) $=
      ( wcel cfv wa crg co jca wceq ad2antrl eqid cv vy vz vx casa csubrg cress
      wss w3a simpl1 assaring syl adantl syl5eqelr simpl3 simpl2 sylanbrc clmod
      issubrg assalmod wb islss3 3syl mpbir2and csca cbs cvsca subrgss ressbas2
      cmulr resssca eqidd ressvsca ressmulr simpr lsslmod syl2an subrgring ccrg
      assasca adantr simpll simpr1 simpr2 sseldd simpr3 assaass isassad impbida
      syl13anc assaassr 3ad2antl1 ) FUDKZCAKZAEUGZUHZBUDKZAFUELZKZADKZMZWOWPMZW
      RWSXAFNKZFAUFOZNKZMWNWMMWRXAXBXDXAWLXBWLWMWNWPUIZFUJUKXAXCBNGWPBNKZWOBUJU
      LUMPXAWNWMWLWMWNWPUNZWLWMWNWPUOPAEFCIJURUPXAWSWNBUQKZXGWPXHWOBUSULXAWLFUQ
      KZWSWNXHMUTXEFUSZDAEFBGIHVAVBVCPWLWMWTWPWNWLWTMZUAUBFVDLZVELZFVFLZFVILZXL
      ABUCXKWNABVELQWRWNWLWSAEFIVGRZAEBFGIVHUKWRXLBVDLQWLWSAXLFBWQGXLSZVJRXKXMV
      KWRXNBVFLQWLWSAXNFBWQGXNSZVLRWRXOBVILQWLWSAFBXOWQGXOSZVMRWLXIWSXHWTXJWRWS
      VNDAFBGHVOVPWRXFWLWSAFBGVQRWLXLVRKWTXLFXQVSVTXKUCTZXMKZUATZAKZUBTZAKZUHZM
      ZWLYAYBEKZYDEKZXTYBXNOYDXOOXTYBYDXOOXNOZQWLWTYFWAZXKYAYCYEWBZYGAEYBXKWNYF
      XPVTZXKYAYCYEWCWDZYGAEYDYMXKYAYCYEWEWDZXTXMXNXOXLEFYBYDIXQXMSZXRXSWFWIYGW
      LYAYHYIYBXTYDXNOXOOYJQYKYLYNYOXTXMXNXOXLEFYBYDIXQYPXRXSWJWIWGWKWH $.
  $}

  ${
    $d x y z A $.  $d x y z S $.  $d x y z W $.
    sraassa.a $e |- A = ( ( subringAlg ` W ) ` S ) $.
    $( The subring algebra over a commutative ring is an associative algebra.
       (Contributed by Mario Carneiro, 6-Oct-2015.) $)
    sraassa $p |- ( ( W e. CRing /\ S e. ( SubRing ` W ) ) ->
      A e. AssAlg ) $=
      ( vy vz vx wcel cfv wa cmulr co cbs wceq eqid adantl crg adantr cv cplusg
      ccrg csubrg cress a1i wss subrgss srabase srasca subrgbas sravsca sramulr
      clmod sralmod crngring eqidd sraaddg oveqdr ringpropd mpbid subrgcrng w3a
      csra simpr1 sseldd simpr2 simpr3 ringass syl13anc crngmgp ad2antrr mgpbas
      cmgp ccmn mgpplusg cmn12 isassad ) CUAHZBCUBIHZJZEFBCKIZVTCBUCLZCMIZAGVSA
      BCABCVBIINVSDUDZVRBWBUEZVQBWBCWBOZUFPZUGZVSABCWCWFUHVRBWAMINVQBCWAWAOZUIP
      VSABCWCWFUJVSABCWCWFUKZVRAULHVQABCDUMPVSCQHZAQHVQWJVRCUNRZVSGEWBCAVSWBUOW
      GVSGSZWBHZESZWBHZJZGECTIATIVSABCWCWFUPUQVSWPGEVTAKIWIUQURUSBCWAWHUTVSWLBH
      ZWOFSZWBHZVAZJZWJWMWOWSWLWNVTLWRVTLWLWNWRVTLVTLZNVSWJWTWKRXABWBWLVSWDWTWF
      RVSWQWOWSVCVDZVSWQWOWSVEZVSWQWOWSVFZWBCVTWLWNWRWEVTOZVGVHXACVLIZVMHZWOWMW
      SWNWLWRVTLVTLXBNVQXHVRWTCXGXGOZVIVJXDXCXEWBVTXGWNWLWRWBCXGXIWEVKCVTXGXIXF
      VNVOVHVP $.
  $}

  $( The ring module over a commutative ring is an associative algebra.
     (Contributed by Mario Carneiro, 6-Oct-2015.) $)
  rlmassa $p |- ( R e. CRing -> ( ringLMod ` R ) e. AssAlg ) $=
    ( ccrg wcel cbs cfv csubrg crglmod casa crg crngring subrgid rlmval sraassa
    eqid syl mpdan ) ABCZADEZAFECZAGEZHCQAICSAJRARNKOTRAALMP $.

  ${
    $d r w x y z K $.  $d r w x y z L $.  $d r w x y z P $.  $d r w x y z ph $.
    $d w x y z B $.
    assapropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    assapropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    assapropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    assapropd.4 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( .r ` K ) y ) = ( x ( .r ` L ) y ) ) $.
    assapropd.5 $e |- ( ph -> F = ( Scalar ` K ) ) $.
    assapropd.6 $e |- ( ph -> F = ( Scalar ` L ) ) $.
    assapropd.7 $e |- P = ( Base ` F ) $.
    assapropd.8 $e |- ( ( ph /\ ( x e. P /\ y e. B ) ) ->
      ( x ( .s ` K ) y ) = ( x ( .s ` L ) y ) ) $.
    $( If two structures have the same components (properties), one is an
       associative algebra iff the other one is.  (Contributed by Mario
       Carneiro, 8-Feb-2015.) $)
    assapropd $p |- ( ph -> ( K e. AssAlg <-> L e. AssAlg ) ) $=
      ( wcel co wceq wral vr vz vw clmod wa casa wi assalmod assaring lmodpropd
      crg jca a1i syl5ibr ringpropd jcad wb csca cfv ccrg cv cvsca cmulr eqtr3d
      w3a cbs eleq1d adantr simpll simplrl simprl fveq2d syl5eq eleqtrd simprrl
      3anbi123d syl lmodvscl syl3anc eleqtrrd simprrr oveqrspc2v syl12anc eqtrd
      oveq1d simplrr ringcl oveq2d eqeq12d anbi12d 2ralbidva ralbidva raleqbidv
      eqid anassrs raleqdv 3bitr3d isassa 3bitr4g ex pm5.21ndd ) AGUDQZGUKQZUEZ
      GUFQZHUFQZXEXDUGAXEXBXCGUHGUIULUMAXFXBXCXFXBAHUDQZHUHABCDEFGHIJKMNOPUJZUN
      XFXCAHUKQZHUIABCDGHIJKLUOZUNUPAXDXEXFUQAXDUEZXBXCGURUSZUTQZVEZUAVAZUBVAZG
      VBUSZRZUCVAZGVCUSZRZXOXPXSXTRZXQRZSZXPXOXSXQRZXTRZYCSZUEZUCGVFUSZTZUBYITZ
      UAXLVFUSZTZUEXGXIHURUSZUTQZVEZXOXPHVBUSZRZXSHVCUSZRZXOXPXSYSRZYQRZSZXPXOX
      SYQRZYSRZUUBSZUEZUCHVFUSZTZUBUUHTZUAYNVFUSZTZUEXEXFXKXNYPYMUULAXNYPUQXDAX
      BXGXCXIXMYOXHXJAXLYNUTAFXLYNMNVDVGVPVHXKYHUCDTZUBDTZUAETUUGUCDTZUBDTZUAET
      YMUULXKUUNUUPUAEXKXOEQZUEYHUUGUBUCDDXKUUQXPDQZXSDQZUEZYHUUGUQXKUUQUUTUEZU
      EZYDUUCYGUUFUVBYAYTYCUUBUVBYAXRXSYSRZYTUVBAXRDQUUSYAUVCSAXDUVAVIZUVBXRYID
      UVBXBXOYLQZXPYIQZXRYIQAXBXCUVAVJZUVBXOEYLXKUUQUUTVKZUVBAEYLSZUVDAEFVFUSZY
      LOAFXLVFMVLVMZVQVNZUVBXPDYIXKUUQUURUUSVOZUVBADYISZUVDIVQZVNZXOXQXLYLYIGXP
      YIWNZXLWNZXQWNZYLWNZVRVSUVOVTXKUUQUURUUSWAZABCDDXTYSXRXSLWBWCUVBXRYRXSYSU
      VBAUUQUURXRYRSUVDUVHUVMABCEDXQYQXOXPPWBWCWEWDUVBYCXOYBYQRZUUBUVBAUUQYBDQY
      CUWBSUVDUVHUVBYBYIDUVBXCUVFXSYIQZYBYIQAXBXCUVAWFUVPUVBXSDYIUWAUVOVNZYIGXT
      XPXSUVQXTWNZWGVSUVOVTABCEDXQYQXOYBPWBWCUVBYBUUAXOYQUVBAUURUUSYBUUASUVDUVM
      UWAABCDDXTYSXPXSLWBWCWHWDZWIUVBYFUUEYCUUBUVBYFXPYEYSRZUUEUVBAUURYEDQYFUWG
      SUVDUVMUVBYEYIDUVBXBUVEUWCYEYIQUVGUVLUWDXOXQXLYLYIGXSUVQUVRUVSUVTVRVSUVOV
      TABCDDXTYSXPYELWBWCUVBYEUUDXPYSUVBAUUQUUSYEUUDSUVDUVHUWAABCEDXQYQXOXSPWBW
      CWHWDUWFWIWJWOWKWLXKUUNYKUAEYLAUVIXDUVKVHXKUUMYJUBDYIAUVNXDIVHZXKYHUCDYIU
      WHWPWMWMXKUUPUUJUAEUUKAEUUKSXDAEUVJUUKOAFYNVFNVLVMVHXKUUOUUIUBDUUHADUUHSX
      DJVHZXKUUGUCDUUHUWIWPWMWMWQWJUBUCYLXQXTXLYIGUAUVQUVRUVTUVSUWEWRUBUCUUKYQY
      SYNUUHHUAUUHWNYNWNUUKWNYQWNYSWNWRWSWTXA $.
  $}

  ${
    $d s t w L $.  $d s t S $.  $d t T $.  $d s t w V $.  $d s t w W $.
    aspval.a $e |- A = ( AlgSpan ` W ) $.
    aspval.v $e |- V = ( Base ` W ) $.
    ${
      aspval.l $e |- L = ( LSubSp ` W ) $.
      $( Value of the algebraic closure operation inside an associative
         algebra.  (Contributed by Mario Carneiro, 7-Jan-2015.) $)
      aspval $p |- ( ( W e. AssAlg /\ S C_ V ) -> ( A ` S ) =
        |^| { t e. ( ( SubRing ` W ) i^i L ) | S C_ t } ) $=
        ( vs vw wcel wss cfv cv csubrg crab cint wceq cbs casa wa cpw cmpt casp
        cin clss fveq2 syl6eqr pweqd ineq12d rabeq inteqd mpteq12dv df-asp fvex
        syl cvv eqeltri pwex mptex fvmpt syl5eq fveq1d adantr simpr sylibr wrex
        elpw2 crg assaring subrgid clmod assalmod lss1 elind sseq2 rspcev sylan
        intexrab sylib sseq1 rabbidv eqid fvmptg syl2anc eqtrd ) FUALZCEMZUBZCB
        NZCJEUCZJOZAOZMZAFPNZDUFZQZRZUDZNZCWNMZAWQQZRZWHWKXASWIWHCBWTWHBFUENWTG
        KFJKOZTNZUCZWOAXEPNZXEUGNZUFZQZRZUDWTUAUEXEFSZJXGXLWLWSXMXFEXMXFFTNZEXE
        FTUHHUIUJXMXKWRXMXJWQSXKWRSXMXHWPXIDXEFPUHXMXIFUGNDXEFUGUHIUIUKWOAXJWQU
        LUQUMUNKAJUOJWLWSEEXNURHFTUPUSZUTVAVBVCVDVEWJCWLLZXDURLZXAXDSWJWIXPWHWI
        VFCEXOVIVGWJXBAWQVHZXQWHEWQLWIXRWHWPDEWHFVJLEWPLFVKEFHVLUQWHFVMLEDLFVND
        EFHIVOUQVPXBWIAEWQWNECVQVRVSXBAWQVTWAJCWSXDWLURWTWMCSZWRXCXSWOXBAWQWMCW
        NWBWCUMWTWDWEWFWG $.

      $( The algebraic span of a set of vectors is a vector subspace.
         (Contributed by Mario Carneiro, 7-Jan-2015.) $)
      asplss $p |- ( ( W e. AssAlg /\ S C_ V ) -> ( A ` S ) e. L ) $=
        ( vt casa wcel wss wa cfv cv csubrg cin crab cint cvv clmod c0 assalmod
        aspval wne adantr ssrab2 inss2 sstri a1i fvex syl6eqelr sylibr lssintcl
        intex syl3anc eqeltrd ) EJKZBDLZMZBANZBIOLZIEPNZCQZRZSZCIABCDEFGHUDZUTE
        UAKZVECLZVEUBUEZVFCKURVHUSEUCUFVIUTVEVDCVBIVDUGVCCUHUIUJUTVFTKVJUTVFVAT
        VGBAUKULVEUOUMVECEHUNUPUQ $.

      $( The algebraic span of a subalgebra is itself.  ( ~ spanid analog.)
         (Contributed by Mario Carneiro, 7-Jan-2015.) $)
      aspid $p |- ( ( W e. AssAlg /\ S e. ( SubRing ` W ) /\ S e. L ) ->
        ( A ` S ) = S ) $=
        ( vt casa wcel csubrg cfv w3a cv wss cin crab cint wceq 3ad2ant2 aspval
        simp1 subrgss syl2anc wa 3simpc elin sylibr intmin syl eqtrd ) EJKZBELM
        ZKZBCKZNZBAMZBIOPIUNCQZRSZBUQUMBDPZURUTTUMUOUPUCUOUMVAUPBDEGUDUAIABCDEF
        GHUBUEUQBUSKZUTBTUQUOUPUFVBUMUOUPUGBUNCUHUIIBUSUJUKUL $.
    $}

    $( The algebraic span of a set of vectors is a subring of the algebra.
       (Contributed by Mario Carneiro, 7-Jan-2015.) $)
    aspsubrg $p |- ( ( W e. AssAlg /\ S C_ V ) ->
      ( A ` S ) e. ( SubRing ` W ) ) $=
      ( vt casa wcel wss wa cfv cv csubrg clss cin crab cint eqid cvv aspval c0
      ssrab2 inss1 sstri fvex syl6eqelr intex sylibr subrgint sylancr eqeltrd
      wne ) DHIBCJKZBALZBGMJZGDNLZDOLZPZQZRZUQGABURCDEFURSUAZUNUTUQJUTUBUMZVAUQ
      IUTUSUQUPGUSUCUQURUDUEUNVATIVCUNVAUOTVBBAUFUGUTUHUIDUTUJUKUL $.

    $( Span preserves subset ordering.  ( ~ spanss analog.)  (Contributed by
       Mario Carneiro, 7-Jan-2015.) $)
    aspss $p |- ( ( W e. AssAlg /\ S C_ V /\ T C_ S ) ->
      ( A ` T ) C_ ( A ` S ) ) $=
      ( vt casa wcel wss w3a cv csubrg cfv crab cint syl wceq aspval clss wa wi
      cin simpl3 sstr2 ss2rabdv intss simp1 simp3 simp2 syl2anc 3adant3 3sstr4d
      sstrd eqid ) EIJZBDKZCBKZLZCHMZKZHENOEUAOZUDZPZQZBVAKZHVDPZQZCAOZBAOZUTVH
      VEKVFVIKUTVGVBHVDUTVAVDJZUBUSVGVBUCUQURUSVLUECBVAUFRUGVHVEUHRUTUQCDKVJVFS
      UQURUSUIUTCBDUQURUSUJUQURUSUKUOHACVCDEFGVCUPZTULUQURVKVISUSHABVCDEFGVMTUM
      UN $.

    $( A set of vectors is a subset of its span.  ( ~ spanss2 analog.)
       (Contributed by Mario Carneiro, 7-Jan-2015.) $)
    aspssid $p |- ( ( W e. AssAlg /\ S C_ V ) -> S C_ ( A ` S ) ) $=
      ( vt casa wcel wss wa cv csubrg cfv clss cin crab cint ssintub eqid
      aspval syl5sseqr ) DHIBCJKBGLJGDMNDONZPZQRBBANGBUDSGABUCCDEFUCTUAUB $.
  $}

  ${
    $d w x K $.  $d w x .1. $.  $d w x .x. $.  $d w x W $.  $d x X $.
    asclfval.a $e |- A = ( algSc ` W ) $.
    asclfval.f $e |- F = ( Scalar ` W ) $.
    asclfval.k $e |- K = ( Base ` F ) $.
    asclfval.s $e |- .x. = ( .s ` W ) $.
    asclfval.o $e |- .1. = ( 1r ` W ) $.
    $( Function value of the algebraic scalars function.  (Contributed by Mario
       Carneiro, 8-Mar-2015.) $)
    asclfval $p |- A = ( x e. K |-> ( x .x. .1. ) ) $=
      ( vw cascl cfv cmpt csca cbs syl6eqr c0 cv cvv wcel wceq cur cvsca fveq2d
      co fveq2 eqidd oveq123d mpteq12dv df-ascl fveq2i eqtri fvex eqeltri mptex
      fvmpt wn fvprc mpt0 syl5eq base0 mpteq1d eqtr4d pm2.61i ) BGNOZAFAUAZDCUH
      ZPZHGUBUCZVHVKUDMGAMUAZQOZROZVIVMUEOZVMUFOZUHZPVKUBNVMGUDZAVOVRFVJVSVOERO
      ZFVSVNERVSVNGQOZEVMGQUIISUGJSVSVIVIVPDVQCVSVQGUFOCVMGUFUIKSVSVIUJVSVPGUEO
      DVMGUEUILSUKULAMUMAFVJFWAROZUBFVTWBJEWARIUNUOWARUPUQURUSVLUTZVHATVJPZVKWC
      VHTWDGNVAAVJVBSWCAFTVJWCFVTTJWCVTTROTWCETRWCEWATIGQVAVCUGVDSVCVEVFVGUO $.

    $( Value of a mapped algebra scalar.  (Contributed by Mario Carneiro,
       8-Mar-2015.) $)
    asclval $p |- ( X e. K -> ( A ` X ) = ( X .x. .1. ) ) $=
      ( vx cv co oveq1 asclfval ovex fvmpt ) MGMNZCBOGCBOEATGCBPMABCDEFHIJKLQGC
      BRS $.
  $}

  ${
    $d K x $.  $d W x $.
    asclfn.a $e |- A = ( algSc ` W ) $.
    asclfn.f $e |- F = ( Scalar ` W ) $.
    asclfn.k $e |- K = ( Base ` F ) $.
    $( Unconditional functionality of the algebra scalars function.
       (Contributed by Mario Carneiro, 9-Mar-2015.) $)
    asclfn $p |- A Fn K $=
      ( vx cv cur cfv cvsca co ovex eqid asclfval fnmpti ) HCHIZDJKZDLKZMARSTNH
      ATSBCDEFGTOSOPQ $.
  $}

  ${
    $d x y A $.  $d x B $.  $d x y F $.  $d x K $.  $d x y ph $.  $d x y W $.
    asclf.a $e |- A = ( algSc ` W ) $.
    asclf.f $e |- F = ( Scalar ` W ) $.
    asclf.r $e |- ( ph -> W e. Ring ) $.
    asclf.l $e |- ( ph -> W e. LMod ) $.
    ${
      asclf.k $e |- K = ( Base ` F ) $.
      asclf.b $e |- B = ( Base ` W ) $.
      $( The algebra scalars function is a function into the base set.
         (Contributed by Mario Carneiro, 4-Jul-2015.) $)
      asclf $p |- ( ph -> A : K --> B ) $=
        ( vx cv cur cfv cvsca wcel adantr eqid co clmod simpr ringidcl lmodvscl
        wa crg syl syl3anc asclfval fmptd ) AMEMNZFOPZFQPZUAZCBAULERZUFFUBRZUPU
        MCRZUOCRAUQUPJSAUPUCAURUPAFUGRURICFUMLUMTZUDUHSULUNDECFUMLHUNTZKUEUIMBU
        NUMDEFGHKUTUSUJUK $.
    $}

    $( The algebra scalars function is a group homomorphism.  (Contributed by
       Mario Carneiro, 4-Jul-2015.) $)
    asclghm $p |- ( ph -> A e. ( F GrpHom W ) ) $=
      ( vx vy cplusg cfv cbs eqid crg wcel syl co wceq asclval lmodring ringgrp
      clmod asclf cv cur cvsca adantr simprl simprr ringidcl lmodvsdir syl13anc
      cgrp wa grpcl 3expb sylan oveqan12d adantl 3eqtr4d isghmd ) AIJCKLZDKLZCD
      BCMLZDMLZVENZVFNZVCNZVDNZACOPZCUNPZADUCPZVKHCDFUAQCUBQZADOPZDUNPGDUBQABVF
      CVEDEFGHVGVHUDAIUEZVEPZJUEZVEPZUOZUOZVPVRVCRZDUFLZDUGLZRZVPWCWDRZVRWCWDRZ
      VDRZWBBLZVPBLZVRBLZVDRZWAVMVQVSWCVFPZWEWHSAVMVTHUHAVQVSUIAVQVSUJAWMVTAVOW
      MGVFDWCVHWCNZUKQUHVDVCVPVRWDCVEVFDWCVHVJFWDNZVGVIULUMWAWBVEPZWIWESAVLVTWP
      VNVLVQVSWPVEVCCVPVRVGVIUPUQURBWDWCCVEDWBEFVGWOWNTQVTWLWHSAVQVSWJWFWKWGVDB
      WDWCCVEDVPEFVGWOWNTBWDWCCVEDVREFVGWOWNTUSUTVAVB $.
  $}

  ${
    asclmul1.a $e |- A = ( algSc ` W ) $.
    asclmul1.f $e |- F = ( Scalar ` W ) $.
    asclmul1.k $e |- K = ( Base ` F ) $.
    asclmul1.v $e |- V = ( Base ` W ) $.
    asclmul1.t $e |- .X. = ( .r ` W ) $.
    asclmul1.s $e |- .x. = ( .s ` W ) $.
    $( Left multiplication by a lifted scalar is the same as the scalar
       operation.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
    asclmul1 $p |- ( ( W e. AssAlg /\ R e. K /\ X e. V ) ->
        ( ( A ` R ) .X. X ) = ( R .x. X ) ) $=
      ( casa wcel cfv co wceq w3a cur eqid 3ad2ant2 oveq1d simp1 simp2 assaring
      asclval crg 3ad2ant1 ringidcl syl simp3 assaass syl13anc ringlidm syl2anc
      oveq2d 3eqtrd ) HPQZBFQZIGQZUAZBARZIDSBHUBRZCSZIDSZBVFIDSZCSZBICSVDVEVGID
      VBVAVEVGTVCACVFEFHBJKLOVFUCZUIUDUEVDVAVBVFGQZVCVHVJTVAVBVCUFVAVBVCUGVDHUJ
      QZVLVAVBVMVCHUHUKZGHVFMVKULUMVAVBVCUNZBFCDEGHVFIMKLONUOUPVDVIIBCVDVMVCVII
      TVNVOGHDVFIMNVKUQURUSUT $.

    $( Right multiplication by a lifted scalar is the same as the scalar
       operation.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
    asclmul2 $p |- ( ( W e. AssAlg /\ R e. K /\ X e. V ) ->
        ( X .X. ( A ` R ) ) = ( R .x. X ) ) $=
      ( wcel cfv co wceq oveq2d casa w3a cur asclval 3ad2ant2 simp1 simp2 simp3
      eqid crg assaring 3ad2ant1 ringidcl syl assaassr syl13anc ringridm 3eqtrd
      syl2anc ) HUAPZBFPZIGPZUBZIBAQZDRIBHUCQZCRZDRZBIVEDRZCRZBICRVCVDVFIDVAUTV
      DVFSVBACVEEFHBJKLOVEUIZUDUETVCUTVAVBVEGPZVGVISUTVAVBUFUTVAVBUGUTVAVBUHZVC
      HUJPZVKUTVAVMVBHUKULZGHVEMVJUMUNBFCDEGHIVEMKLONUOUPVCVHIBCVCVMVBVHISVNVLG
      HDVEIMNVJUQUSTUR $.
  $}

  ${
    asclinvg.a $e |- A = ( algSc ` W ) $.
    asclinvg.r $e |- R = ( Scalar ` W ) $.
    asclinvg.k $e |- B = ( Base ` R ) $.
    asclinvg.i $e |- I = ( invg ` R ) $.
    asclinvg.j $e |- J = ( invg ` W ) $.
    $( The group inverse (negation) of a lifted scalar is the lifted negation
       of the scalar.  (Contributed by AV, 2-Sep-2019.) $)
    asclinvg $p |- ( ( W e. LMod /\ W e. Ring /\ C e. B )
                     -> ( J ` ( A ` C ) ) = ( A ` ( I ` C ) ) ) $=
      ( clmod wcel crg w3a cghm co cfv wceq simp2 simp1 asclghm simp3 wa ghminv
      eqcomd syl2anc ) GMNZGONZCBNZPZADGQRNZUKCASFSZCESASZTULADGHIUIUJUKUAUIUJU
      KUBUCUIUJUKUDUMUKUEUOUNBDGAEFCJKLUFUGUH $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y W $.
    asclrhm.a $e |- A = ( algSc ` W ) $.
    asclrhm.f $e |- F = ( Scalar ` W ) $.
    $( The scalar injection is a ring homomorphism.  (Contributed by Mario
       Carneiro, 8-Mar-2015.) $)
    asclrhm $p |- ( W e. AssAlg -> A e. ( F RingHom W ) ) $=
      ( vx vy wcel cbs cfv cmulr cur eqid syl co asclval adantr oveq2d syl13anc
      wceq casa ccrg crg assasca crngring assaring cvsca ringidcl 3syl assalmod
      clmod lmodvs1 syl2anc eqtrd cv wa ringlidm simprl simprr lmodvscl syl3anc
      simpl assaass assaassr lmodvsass 3eqtr4rd oveq12d 3eqtr4d asclghm isrhm2d
      ringcl 3expb sylan ) CUAHZFGBIJZBCBKJZCKJZBLJZACLJZVOMZVRMZVSMZVPMZVQMZVN
      BUBHBUCHZBCEUDBUENZCUFZVNVRAJZVRVSCUGJZOZVSVNWEVRVOHWHWJTWFVOBVRVTWAUHAWI
      VSBVOCVRDEVTWIMZWBPUIVNCUKHZVSCIJZHZWJVSTCUJZVNCUCHZWNWGWMCVSWMMZWBUHNZWI
      VRBWMCVSWQEWKWAULUMUNVNFUOZVOHZGUOZVOHZUPZUPZWSXAVPOZVSWIOZWSVSWIOZXAVSWI
      OZVQOZXEAJZWSAJZXAAJZVQOXDWSXAVSVSVQOZWIOZWIOZWSXHWIOZXIXFXDXNXHWSWIXDXMV
      SXAWIVNXMVSTZXCVNWPWNXQWGWRWMCVQVSVSWQWDWBUQUMQRRXDXIWSVSXHVQOZWIOZXOXDVN
      WTWNXHWMHZXIXSTVNXCVBZVNWTXBURZVNWNXCWRQZXDWLXBWNXTVNWLXCWOQZVNWTXBUSZYCX
      AWIBVOWMCVSWQEWKVTUTVAWSVOWIVQBWMCVSXHWQEVTWKWDVCSXDXRXNWSWIXDVNXBWNWNXRX
      NTYAYEYCYCXAVOWIVQBWMCVSVSWQEVTWKWDVDSRUNXDWLWTXBWNXFXPTYDYBYEYCWSXAWIVPB
      VOWMCVSWQEWKVTWCVESVFXDXEVOHZXJXFTVNWEXCYFWFWEWTXBYFVOBVPWSXAVTWCVKVLVMAW
      IVSBVOCXEDEVTWKWBPNXDXKXGXLXHVQXDWTXKXGTYBAWIVSBVOCWSDEVTWKWBPNXDXBXLXHTY
      EAWIVSBVOCXADEVTWKWBPNVGVHVNABCDEWGWOVIVJ $.
  $}

  ${
    $d N x y $.  $d .1. x y $.  $d W x y $.
    rnascl.a $e |- A = ( algSc ` W ) $.
    rnascl.o $e |- .1. = ( 1r ` W ) $.
    rnascl.n $e |- N = ( LSpan ` W ) $.
    $( The set of injected scalars is also interpretable as the span of the
       identity.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
    rnascl $p |- ( W e. AssAlg -> ran A = ( N ` { .1. } ) ) $=
      ( vx vy casa wcel csn cfv cv cvsca co wceq csca cbs eqid cab crn assalmod
      wrex clmod crg assaring ringidcl lspsn syl2anc asclfval rnmpt syl6reqr
      syl ) DJKZBLCMZHNINBDOMZPZQIDRMZSMZUDHUAZAUBUODUEKBDSMZKZUPVAQDUCUODUFKVC
      DUGVBDBVBTZFUHUNHUQIUSUTCVBDBUSTZUTTZVDUQTZGUIUJIHUTURAIAUQBUSUTDEVEVFVGF
      UKULUM $.
  $}

  ${
    $d S x $.  $d W x $.  $d X x $.
    ressascl.a $e |- A = ( algSc ` W ) $.
    ressascl.x $e |- X = ( W |`s S ) $.
    $( The injection of scalars is invariant between subalgebras and
       superalgebras.  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
    ressascl $p |- ( S e. ( SubRing ` W ) -> A = ( algSc ` X ) ) $=
      ( vx csubrg cfv wcel csca cbs cv cur cvsca co cmpt cascl eqid asclfval
      resssca fveq2d ressvsca eqidd subrg1 oveq123d mpteq12dv 3eqtr4g ) BCHIZJZ
      GCKIZLIZGMZCNIZCOIZPZQGDKIZLIZUMDNIZDOIZPZQADRIZUJGULUPURVAUJUKUQLBUKCDUI
      FUKSZUAUBUJUMUMUNUSUOUTBUOCDUIFUOSZUCUJUMUDBCDUNFUNSZUEUFUGGAUOUNUKULCEVC
      ULSVDVETGVBUTUSUQURDVBSUQSURSUTSUSSTUH $.
  $}

  ${
    $d x y A $.  $d x y L $.  $d x y S $.  $d x y W $.
    issubassa2.a $e |- A = ( algSc ` W ) $.
    issubassa2.l $e |- L = ( LSubSp ` W ) $.
    $( A subring of a unital algebra is a subspace and thus a subalgebra iff it
       contains all scalar multiples of the identity.  (Contributed by Mario
       Carneiro, 9-Mar-2015.) $)
    issubassa2 $p |- ( ( W e. AssAlg /\ S e. ( SubRing ` W ) ) ->
        ( S e. L <-> ran A C_ S ) ) $=
      ( vx vy wcel cfv wa wss wceq eqid ad2antrr ad2antlr cv co wral cbs csubrg
      casa crn cur clspn rnascl clmod assalmod simpr subrg1cl lspsnel5a eqsstrd
      csubg cvsca csca subrgsubg simplll simprl subrgss sselda adantrl asclmul1
      csn cmulr syl3anc simpllr simplr wfn asclfn fnfvelrn sylan sseldd adantrr
      a1i simprr subrgmcl eqeltrrd ralrimivva wb islss4 syl mpbir2and impbida )
      DUBIZBDUAJIZKZBCIZAUCZBLZWFWGKZWHDUDJZVCDUEJZJZBWDWHWMMWEWGAWKWLDEWKNZWLN
      ZUFOWJCBWLDWKFWOWDDUGIZWEWGDUHZOWFWGUIWEWKBIWDWGBDWKWNUJPUKULWFWIKZWGBDUM
      JIZGQZHQZDUNJZRZBIZHBSGDUOJZTJZSZWEWSWDWIBDUPPWRXDGHXFBWRWTXFIZXABIZKZKZW
      TAJZXADVDJZRZXCBXKWDXHXADTJZIZXNXCMWDWEWIXJUQWRXHXIURWRXIXPXHWRBXOXAWEBXO
      LWDWIBXODXONZUSPUTVAAWTXBXMXEXFXODXAEXENZXFNZXQXMNZXBNZVBVEXKWEXLBIZXIXNB
      IWDWEWIXJVFWRXHYBXIWRXHKWHBXLWFWIXHVGWRAXFVHZXHXLWHIYCWRAXEXFDEXRXSVIVNXF
      WTAVJVKVLVMWRXHXIVOBDXMXLXAXTVPVEVQVRWDWGWSXGKVSZWEWIWDWPYDWQXFCXBBXEXODG
      HXRXSXQYAFVTWAOWBWC $.
  $}

  ${
    $d x y z K $.  $d x y z L $.  $d x y z P $.  $d x y z ph $.  $d x y W $.
    $d z F $.  $d z G $.
    asclpropd.f $e |- F = ( Scalar ` K ) $.
    asclpropd.g $e |- G = ( Scalar ` L ) $.
    asclpropd.1 $e |- ( ph -> P = ( Base ` F ) ) $.
    asclpropd.2 $e |- ( ph -> P = ( Base ` G ) ) $.
    asclpropd.3 $e |- ( ( ph /\ ( x e. P /\ y e. W ) ) ->
      ( x ( .s ` K ) y ) = ( x ( .s ` L ) y ) ) $.
    asclpropd.4 $e |- ( ph -> ( 1r ` K ) = ( 1r ` L ) ) $.
    asclpropd.5 $e |- ( ph -> ( 1r ` K ) e. W ) $.
    $( If two structures have the same components (properties), one is an
       associative algebra iff the other one is.  The last hypotheses on ` 1r `
       can be discharged either by letting ` W = _V ` (if strong equality is
       known on ` .s ` ) or assuming ` K ` is a ring.  (Contributed by Mario
       Carneiro, 5-Jul-2015.) $)
    asclpropd $p |- ( ph -> ( algSc ` K ) = ( algSc ` L ) ) $=
      ( vz cfv cmpt eqid cbs cv cur cvsca co cascl wcel wceq oveqrspc2v anassrs
      wa mpidan oveq2d adantr eqtrd mpteq2dva mpteq1d 3eqtr3d asclfval 3eqtr4g
      ) AQEUARZQUBZGUCRZGUDRZUEZSZQFUARZVBHUCRZHUDRZUEZSZGUFRZHUFRZAQDVESQDVJSV
      FVKAQDVEVJAVBDUGZUKVEVBVCVIUEZVJAVNVCIUGZVEVOUHZPAVNVPVQABCDIVDVIVBVCNUIU
      JULAVOVJUHVNAVCVHVBVIOUMUNUOUPAQDVAVELUQAQDVGVJMUQURQVLVDVCEVAGVLTJVATVDT
      VCTUSQVMVIVHFVGHVMTKVGTVITVHTUSUT $.
  $}

  ${
    $d x C $.  $d x R $.  $d x S $.  $d x V $.  $d x W $.
    aspval2.a $e |- A = ( AlgSpan ` W ) $.
    aspval2.c $e |- C = ( algSc ` W ) $.
    aspval2.r $e |- R = ( mrCls ` ( SubRing ` W ) ) $.
    aspval2.v $e |- V = ( Base ` W ) $.
    $( The algebraic closure is the ring closure when the generating set is
       expanded to include all scalars. _EDITORIAL_ :  In light of this, is
       ` AlgSpan ` independently needed?  (Contributed by Stefan O'Rear,
       9-Mar-2015.) $)
    aspval2 $p |- ( ( W e. AssAlg /\ S C_ V ) -> ( A ` S ) =
        ( R ` ( ran C u. S ) ) ) $=
      ( vx wcel wss wa cfv crab cint cab eqid adantr casa cv csubrg cin crn cun
      clss wceq elin anbi1i anass issubassa2 anbi1d unss syl6bb pm5.32da syl5bb
      bitri abbidv df-rab 3eqtr4g inteqd aspval cmre crg assaring subrgmre csca
      syl cbs wf assalmod asclf frn simpr unssd mrcval syl2anc 3eqtr4d ) FUALZD
      EMZNZDKUBZMZKFUCOZFUGOZUDZPZQBUEZDUFZWCMZKWEPZQZDAOWJCOZWBWHWLWBWCWGLZWDN
      ZKRZWCWELZWKNZKRZWHWLVTWQWTUHWAVTWPWSKWPWRWCWFLZWDNZNZVTWSWPWRXANZWDNXCWO
      XDWDWCWEWFUIUJWRXAWDUKURVTWRXBWKVTWRNZXBWIWCMZWDNWKXEXAXFWDBWCWFFHWFSZULU
      MWIDWCUNUOUPUQUSTWDKWGUTWKKWEUTVAVBKADWFEFGJXGVCWBWEEVDOLZWJEMWNWMUHVTXHW
      AVTFVELXHFVFZEFJVGVITWBWIDEVTWIEMZWAVTFVHOZVJOZEBVKXJVTBEXKXLFHXKSXIFVLXL
      SJVMXLEBVNVITVTWAVOVPWEWJCEKIVQVRVS $.
  $}

  ${
    assamulgscm.v $e |- V = ( Base ` W ) $.
    assamulgscm.f $e |- F = ( Scalar ` W ) $.
    assamulgscm.b $e |- B = ( Base ` F ) $.
    assamulgscm.s $e |- .x. = ( .s ` W ) $.
    assamulgscm.g $e |- G = ( mulGrp ` F ) $.
    assamulgscm.p $e |- .^ = ( .g ` G ) $.
    assamulgscm.h $e |- H = ( mulGrp ` W ) $.
    assamulgscm.e $e |- E = ( .g ` H ) $.
    $( Lemma 1 for ~ assamulgscm (induction base).  (Contributed by AV,
       26-Aug-2019.) $)
    assamulgscmlem1 $p |- ( ( ( A e. B /\ X e. V ) /\ W e. AssAlg )
                     -> ( 0 E ( A .x. X ) ) = ( ( 0 .^ A ) .x. ( 0 E X ) ) ) $=
      ( wcel wa casa cur cfv cc0 wceq clmod assalmod crg assaring eqid ringidcl
      co lmodvs1 eqcomd syl2anc adantl simpll simplr lmodvscl syl3anc ringidval
      syl mgpbas mulg0 oveq12d 3eqtr4d ) ABTZKITZUAZJUBTZUAZJUCUDZFUCUDZVMCUMZU
      EAKCUMZDUMZUEAEUMZUEKDUMZCUMVKVMVOUFZVJVKJUGTZVMITZVTJUHZVKJUITWBJUJIJVML
      VMUKZULVCWAWBUAVOVMCVNFIJVMLMOVNUKZUNUOUPUQVLVPITZVQVMUFVLWAVHVIWFVKWAVJW
      CUQVHVIVKURZVHVIVKUSZACFBIJKLMONUTVAIDHVPVMIJHRLVDZJVMHRWDVBZSVEVCVLVRVNV
      SVMCVLVHVRVNUFWGBEGAVNBFGPNVDFVNGPWEVBQVEVCVLVIVSVMUFWHIDHKVMWIWJSVEVCVFV
      G $.

    $( Lemma for ~ assamulgscm (induction step).  (Contributed by AV,
       26-Aug-2019.) $)
    assamulgscmlem2 $p |- ( y e. NN0 -> ( ( ( A e. B /\ X e. V )
       /\ W e. AssAlg ) -> ( ( y E ( A .x. X ) ) = ( ( y .^ A ) .x. ( y E X ) )
                     -> ( ( y + 1 ) E ( A .x. X ) )
                        = ( ( ( y + 1 ) .^ A ) .x. ( ( y + 1 ) E X ) ) ) ) ) $=
      ( cv cn0 wcel wa casa co wceq c1 caddc cmulr cfv crg assaring ringmgp syl
      cmnd adantl adantr simpll clmod assalmod simplr lmodvscl syl3anc mgpplusg
      mgpbas eqid mulgnn0p1 oveq1 csca cbs simprr ccrg assasca crngring 3syl wi
      simpl a1i fveq2i syl6eq eleq2d biimpcd mulgnn0cl simprlr assaass syl13anc
      imp eqcomi assaassr oveq2d eqcomd peano2nn0 lmodvsass 3eqtrd fveq2d oveqd
      w3a simprll eqtrd oveq1d sylan9eqr exp31 ) AUAZUBUCZBCUCZLJUCZUDZKUEUCZUD
      ZXDBLDUFZEUFZXDBFUFZXDLEUFZDUFZUGZXDUHUIUFZXKEUFZXQBFUFZXQLEUFZDUFZUGXEXJ
      UDZXPUDZXRXLXKKUJUKZUFZYAYCIUPUCZXEXKJUCZXRYEUGYBYFXPXJYFXEXIYFXHXIKULUCY
      FKUMKISUNUOUQUQZURXEXJXPUSYBYGXPXJYGXEXJKUTUCZXFXGYGXIYIXHKVAUQZXFXGXIUSX
      FXGXIVBBDGCJKLMNPOVCVDUQZURJYDEIXDXKJKISMVFZTKYDISYDVGZVEZVHVDXPYBYEXOXKY
      DUFZYAXLXOXKYDVIYBYOXMXNXKYDUFZDUFZXMBKVJUKZUJUKZUFZXTDUFZYAYBXIXMYRVKUKZ
      UCZXNJUCZYGYOYQUGXEXHXIVLZYBHUPUCZXEBUUBUCZUUCXJUUFXEXIUUFXHXIGVMUCGULUCU
      UFGKNVNGVOGHQUNVPUQUQZXEXJVRZXJUUGXEXHXIUUGXFXIUUGVQXGXIXFUUGXICUUBBXICGV
      KUKZUUBCUUJUGXIOVSGYRVKNVTWAWBWCURWHUQZUUBFHXDBUUBGHQYRGVKGYRNWIVTVFRWDVD
      ZYBYFXEXGUUDYHUUIXEXFXGXIWEZJEIXDLYLTWDVDZYKXMUUBDYDYRJKXNXKMYRVGZUUBVGZP
      YMWFWGYBYQXMBXNLYDUFZDUFZDUFXMBXTDUFZDUFZUUAYBYPUURXMDYBXIUUGUUDXGYPUURUG
      UUEUUKUUNUUMBUUBDYDYRJKXNLMUUOUUPPYMWJWGWKYBUURUUSXMDYBUUQXTBDYBXTUUQYBYF
      XEXGXTUUQUGYHUUIUUMJYDEIXDLYLTYNVHVDWLWKWKYBYIUUCUUGXTJUCZUUTUUAUGXJYIXEY
      JUQUULUUKYBYFXQUBUCZXGUVAYHXEUVBXJXDWMURUUMJEIXQLYLTWDVDYIUUCUUGUVAWRUDUU
      AUUTXMBDYSYRUUBJKXTMUUOPUUPYSVGWNWLWGWOYBYTXSXTDYBXSYTYBXSXMBGUJUKZUFZYTY
      BUUFXEXFXSUVDUGUUHUUIXEXFXGXIWSCUVCFHXDBCGHQOVFRGUVCHQUVCVGVEVHVDYBUVCYSX
      MBYBGYRUJGYRUGYBNVSWPWQWTWLXAWOXBWTXC $.

    $d A x y $.  $d B x y $.  $d E x y $.  $d N x y $.  $d V x y $.
    $d W x y $.  $d X x y $.  $d .x. x y $.  $d .^ x y $.
    $( Exponentiation of a scalar multiplication in an associative algebra:
       ` ( a .x. X ) ^ N = ( a ^ N ) .X. ( X ^ N ) ` .  (Contributed by AV,
       26-Aug-2019.) $)
    assamulgscm $p |- ( ( W e. AssAlg /\ ( N e. NN0 /\ A e. B /\ X e. V ) )
       -> ( N E ( A .x. X ) ) = ( ( N .^ A ) .x. ( N E X ) ) ) $=
      ( vx vy cn0 wcel w3a casa co wceq wi wa cv c1 caddc oveq1 oveq12d eqeq12d
      cc0 imbi2d weq assamulgscmlem1 assamulgscmlem2 nn0ind exp4c 3imp impcom
      a2d ) IUCUDZABUDZLJUDZUEKUFUDZIALCUGZDUGZIAEUGZILDUGZCUGZUHZVGVHVIVJVPUIV
      GVHVIVJVPVHVIUJVJUJZUAUKZVKDUGZVRAEUGZVRLDUGZCUGZUHZUIVQUQVKDUGZUQAEUGZUQ
      LDUGZCUGZUHZUIVQUBUKZVKDUGZWIAEUGZWILDUGZCUGZUHZUIVQWIULUMUGZVKDUGZWOAEUG
      ZWOLDUGZCUGZUHZUIVQVPUIUAUBIVRUQUHZWCWHVQXAVSWDWBWGVRUQVKDUNXAVTWEWAWFCVR
      UQAEUNVRUQLDUNUOUPURUAUBUSZWCWNVQXBVSWJWBWMVRWIVKDUNXBVTWKWAWLCVRWIAEUNVR
      WILDUNUOUPURVRWOUHZWCWTVQXCVSWPWBWSVRWOVKDUNXCVTWQWAWRCVRWOAEUNVRWOLDUNUO
      UPURVRIUHZWCVPVQXDVSVLWBVOVRIVKDUNXDVTVMWAVNCVRIAEUNVRILDUNUOUPURABCDEFGH
      JKLMNOPQRSTUTWIUCUDVQWNWTUBABCDEFGHJKLMNOPQRSTVAVFVBVCVDVE $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Abstract multivariate polynomials
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c mPwSer $. $( Multivariate power series $)
  $c mVar $. $( Multivariate power series variables $)
  $c mPoly $. $( Multivariate polynomial $)
  $c <bag $. $( Order on terms $)
  $c ordPwSer $. $( Order on power series $)

  $( Multivariate power series. $)
  cmps $a class mPwSer $.

  $( Multivariate power series variables. $)
  cmvr $a class mVar $.

  $( Multivariate polynomials. $)
  cmpl $a class mPoly $.

  $( Ordering on terms of a multivariate polynomial. $)
  cltb $a class <bag $.

  $( Ordered set of power series. $)
  copws $a class ordPwSer $.

  ${
    $d b d f g h i k p r s w x y z $.
    $( Define the algebra of power series over the index set ` i ` and with
       coefficients from the ring ` r ` .  (Contributed by Mario Carneiro,
       21-Mar-2015.) $)
    df-psr $a |- mPwSer = ( i e. _V , r e. _V |->
    [_ { h e. ( NN0 ^m i ) | ( `' h " NN ) e. Fin } / d ]_
    [_ ( ( Base ` r ) ^m d ) / b ]_
    ( { <. ( Base ` ndx ) , b >. ,
        <. ( +g ` ndx ) , ( oF ( +g ` r ) |` ( b X. b ) ) >. ,
        <. ( .r ` ndx ) ,
          ( f e. b , g e. b |-> ( k e. d |->
            ( r gsum ( x e. { y e. d | y oR <_ k } |->
            ( ( f ` x ) ( .r ` r ) ( g ` ( k oF - x ) ) ) ) ) ) ) >. } u.
      { <. ( Scalar ` ndx ) , r >. ,
        <. ( .s ` ndx ) , ( x e. ( Base ` r ) , f e. b |->
             ( ( d X. { x } ) oF ( .r ` r ) f ) ) >. ,
        <. ( TopSet ` ndx ) ,
             ( Xt_ ` ( d X. { ( TopOpen ` r ) } ) ) >. } ) ) $.

    $( Define the generating elements of the power series algebra.
       (Contributed by Mario Carneiro, 7-Jan-2015.) $)
    df-mvr $a |- mVar = ( i e. _V , r e. _V |-> ( x e. i |->
      ( f e. { h e. ( NN0 ^m i ) | ( `' h " NN ) e. Fin } |->
        if ( f = ( y e. i |-> if ( y = x , 1 , 0 ) ) ,
             ( 1r ` r ) , ( 0g ` r ) ) ) ) ) $.

    $( Define the subalgebra of the power series algebra generated by the
       variables; this is the polynomial algebra (the set of power series with
       finite degree).  (Contributed by Mario Carneiro, 7-Jan-2015.)  (Revised
       by AV, 25-Jun-2019.) $)
    df-mpl $a |- mPoly = ( i e. _V , r e. _V |-> [_ ( i mPwSer r ) / w ]_
      ( w |`s { f e. ( Base ` w ) | f finSupp ( 0g ` r ) } ) ) $.

    $( Define a well-order on the set of all finite bags from the index set
       ` i ` given a wellordering ` r ` of ` i ` .  (Contributed by Mario
       Carneiro, 8-Feb-2015.) $)
    df-ltbag $a |- <bag = ( r e. _V , i e. _V |-> { <. x , y >. |
      ( { x , y } C_ { h e. ( NN0 ^m i ) | ( `' h " NN ) e. Fin } /\
        E. z e. i ( ( x ` z ) < ( y ` z ) /\
          A. w e. i ( z r w -> ( x ` w ) = ( y ` w ) ) ) ) } ) $.

    $( Define a total order on the set of all power series in ` s ` from the
       index set ` i ` given a wellordering ` r ` of ` i ` and a totally
       ordered base ring ` s ` .  (Contributed by Mario Carneiro,
       8-Feb-2015.) $)
    df-opsr $a |- ordPwSer = ( i e. _V , s e. _V |-> ( r e. ~P ( i X. i )
   |-> [_ ( i mPwSer s ) / p ]_ ( p sSet <. ( le ` ndx ) , { <. x , y >. |
     ( { x , y } C_ ( Base ` p ) /\ ( [. { h e. ( NN0 ^m i ) | ( `' h " NN ) e.
      Fin } / d ]. E. z e. d ( ( x ` z ) ( lt ` s ) ( y ` z ) /\ A. w e. d
     ( w ( r <bag i ) z -> ( x ` w ) = ( y ` w ) ) ) \/ x = y ) ) } >. ) ) ) $.
  $}

  ${
    $d h i r y $.  $d b d i r .+b $.  $d b d i r J $.  $d b d f g i k r x ph $.
    $d b d f g i k r x B $.  $d b d f g h i k r x I $.  $d b d f g i k r x R $.
    $d b d f g k x y D $.  $d b d i r .X. $.  $d b d i r .xb $.
    $( The multivariate power series constructor is a proper binary operator.
       (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    reldmpsr $p |- Rel dom mPwSer $=
      ( vi vr vd vh vb vf vg vk vx vy cvv cv cmap co crab cfv cnx cop cof cxp
      ccnv cima cfn wcel cn0 cbs cplusg cres cmulr cle cofr wbr cmin cmpt cmpt2
      cn cgsu ctp csca cvsca csn cts ctopn cpt cun csb cmps df-psr reldmmpt2 )
      ABKKCDLUAUPUBUCUDDUEALMNOEBLZUFPZCLZMNQUFPELZRQUGPVJUGPSVMVMTUHRQUIPFGVMV
      MHVLVJIJLHLZUJUKULJVLOILZFLZPVNVOUMSNGLPVJUIPZNUNUQNUNUORURQUSPVJRQUTPIFV
      KVMVLVOVATVPVQSNUORQVBPVLVJVCPVATVDPRURVEVFVFVGIJFGDAHBECVHVI $.

    psrval.s $e |- S = ( I mPwSer R ) $.
    psrval.k $e |- K = ( Base ` R ) $.
    psrval.a $e |- .+ = ( +g ` R ) $.
    psrval.m $e |- .x. = ( .r ` R ) $.
    psrval.o $e |- O = ( TopOpen ` R ) $.
    psrval.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
    psrval.b $e |- ( ph -> B = ( K ^m D ) ) $.
    psrval.p $e |- .+b = ( oF .+ |` ( B X. B ) ) $.
    psrval.t $e |- .X. = ( f e. B , g e. B |-> ( k e. D |->
            ( R gsum ( x e. { y e. D | y oR <_ k } |->
            ( ( f ` x ) .x. ( g ` ( k oF - x ) ) ) ) ) ) ) $.
    psrval.v $e |- .xb =
      ( x e. K , f e. B |-> ( ( D X. { x } ) oF .x. f ) ) $.
    psrval.j $e |- ( ph -> J = ( Xt_ ` ( D X. { O } ) ) ) $.
    psrval.i $e |- ( ph -> I e. W ) $.
    psrval.r $e |- ( ph -> R e. X ) $.
    $( Value of the multivariate power series structure.  (Contributed by Mario
       Carneiro, 29-Dec-2014.) $)
    psrval $p |- ( ph -> S = ( { <. ( Base ` ndx ) , B >. ,
        <. ( +g ` ndx ) , .+b >. , <. ( .r ` ndx ) , .X. >. } u.
      { <. ( Scalar ` ndx ) , R >. , <. ( .s ` ndx ) , .xb >. ,
         <. ( TopSet ` ndx ) , J >. } ) ) $=
      ( vi vr vd vb cmps co cnx cbs cfv cop cplusg cmulr ctp csca cvsca cts cun
      cvv cv ccnv cn cima cfn wcel cn0 cmap crab cof cxp cres cle cofr wbr cmin
      cmpt cgsu cmpt2 csn ctopn cpt csb wceq df-psr a1i simprl oveq2d rabeq syl
      syl6eqr csbeq1d ovex rabex syl6eqelr simplrr fveq2d simpr ad2antrr eqtr4d
      wa oveq12d opeq2d adantr ofeq xpeq12d reseq12d oveqd mpt2eq123dv tpeq123d
      mpteq12dv xpeq1d eqidd oveq123d sneqd ad3antrrr uneq12d csbied eqtrd elex
      tpex unex ovmpt2d syl5eq ) AIQHUTVAVBVCVDZDVEZVBVFVDZGVEZVBVGVDZLVEZVHZVB
      VIVDZHVEZVBVJVDZJVEZVBVKVDZRVEZVHZVLZUCAUPUQQHVMVMUROVNVOVPVQVRVSZOVTUPVN
      ZWAVAZWBZUSUQVNZVCVDZURVNZWAVAZYRUSVNZVEZYTUUQVFVDZWCZUVAUVAWDZWEZVEZUUBM
      NUVAUVAPUUSUUQBCVNPVNZWFWGWHZCUUSWBZBVNZMVNZVDZUVHUVKWIWCVANVNVDZUUQVGVDZ
      VAZWJZWKVAZWJZWLZVEZVHZUUEUUQVEZUUGBMUURUVAUUSUVKWMZWDZUVLUVOWCZVAZWLZVEZ
      UUIUUSUUQWNVDZWMZWDZWOVDZVEZVHZVLZWPZWPZUULUTVMUTUPUQVMVMUWRWLWQABCMNOUPP
      UQUSURWRWSAUUNQWQZUUQHWQZXNZXNZUWRUREUWQWPUULUXBURUUPEUWQUXBUUPUUMOVTQWAV
      AZWBZEUXBUUOUXCWQUUPUXDWQUXBUUNQVTWAAUWSUWTWTXAUUMOUUOUXCXBXCUHXDZXEUXBUR
      EUWQUULVMUXBEUUPVMUXEUUMOUUOVTUUNWAXFXGXHUXBUUSEWQZXNZUWQUSDUWPWPUULUXGUS
      UUTDUWPUXGUUTSEWAVAZDUXGUURSUUSEWAUXGUURHVCVDSUXGUUQHVCAUWSUWTUXFXIZXJUDX
      DZUXBUXFXKZXOADUXHWQUXAUXFUIXLXMZXEUXGUSDUWPUULVMUXGDUUTVMUXLUURUUSWAXFXH
      UXGUVADWQZXNZUWBUUDUWOUUKUXNUVBYSUVGUUAUWAUUCUXNUVADYRUXGUXMXKZXPUXNUVFGY
      TUXNUVFFWCZDDWDZWEGUXNUVDUXPUVEUXQUXNUVCFWQUVDUXPWQUXNUVCHVFVDFUXNUUQHVFU
      XGUWTUXMUXIXQZXJUEXDUVCFXRXCUXNUVADUVADUXOUXOXSXTUJXDXPUXNUVTLUUBUXNUVTMN
      DDPEHBUVICEWBZUVMUVNKVAZWJZWKVAZWJZWLLUXNMNUVAUVAUVSDDUYCUXOUXOUXNPUUSUVR
      EUYBUXGUXFUXMUXKXQZUXNUUQHUVQUYAWKUXRUXNBUVJUVPUXSUXTUXNUXFUVJUXSWQUYDUVI
      CUUSEXBXCUXNUVOKUVMUVNUXNUVOHVGVDKUXNUUQHVGUXRXJUFXDZYAYDXOYDYBUKXDXPYCUX
      NUWCUUFUWIUUHUWNUUJUXNUUQHUUEUXRXPUXNUWHJUUGUXNUWHBMSDEUWDWDZUVLKWCZVAZWL
      JUXNBMUURUVAUWGSDUYHUXGUURSWQUXMUXJXQUXOUXNUWEUYFUVLUVLUWFUYGUXNUVOKWQUWF
      UYGWQUYEUVOKXRXCUXNUUSEUWDUYDYEUXNUVLYFYGYBULXDXPUXNUWMRUUIUXNUWMETWMZWDZ
      WOVDZRUXNUWLUYJWOUXNUUSEUWKUYIUYDUXNUWJTUXNUWJHWNVDTUXNUUQHWNUXRXJUGXDYHX
      SXJARUYKWQUXAUXFUXMUMYIXMXPYCYJYKYLYKYLAQUAVSQVMVSUNQUAYMXCAHUBVSHVMVSUOH
      UBYMXCUULVMVSAUUDUUKYSUUAUUCYNUUFUUHUUJYNYOWSYPYQ $.
  $}

  $( The multivariate power series structure is a function.  (Contributed by
     Mario Carneiro, 8-Feb-2015.) $)
  psrvalstr $p |- ( { <. ( Base ` ndx ) , B >. ,
      <. ( +g ` ndx ) , .+ >. , <. ( .r ` ndx ) , .X. >. } u.
    { <. ( Scalar ` ndx ) , R >. , <. ( .s ` ndx ) , .x. >. ,
       <. ( TopSet ` ndx ) , J >. } ) Struct <. 1 , 9 >. $=
    ( c1 c3 c5 c9 cnx cbs cfv cop cplusg cmulr ctp csca cvsca cts rngstr c6 5nn
    eqid scandx 5lt6 6nn vscandx 6lt9 9nn tsetndx strle3 3lt5 strleun ) GHIJKLM
    ANKOMBNKPMENQZKRMZCNKSMZDNKTMZFNQABUOEUOUDUAUPUQURIUBJCDFUCUEUFUGUHUIUJUKUL
    UMUN $.

  ${
    $d f j k m n u v w x y z F $.  $d f j k m n x y G $.  $d m n x y z V $.
    $d f m n w x y z I $.  $d j k m u v w z ph $.  $d j k m n u v w x z S $.
    $d j k m B $.  $d j k m n u v w x y z D $.  $d f m n u v w x y z X $.
    $d f k m u v w x y z Y $.
    psrbag.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    $( Elementhood in the set of finite bags.  (Contributed by Mario Carneiro,
       29-Dec-2014.) $)
    psrbag $p |- ( I e. V -> ( F e. D <->
      ( F : I --> NN0 /\ ( `' F " NN ) e. Fin ) ) ) $=
      ( wcel cn0 cmap co ccnv cn cima cfn wa wf cv wceq cnveq cvv eleq1d elrab2
      imaeq1d wb nn0ex elmapg mpan anbi1d syl5bb ) CAGCHDIJZGZCKZLMZNGZODEGZDHC
      PZUNOBQZKZLMZNGUNBCUJAUQCRZUSUMNUTURULLUQCSUCUAFUBUOUKUPUNHTGUOUKUPUDUEHD
      CTEUFUGUHUI $.

    $( A finite bag is a function.  (Contributed by Mario Carneiro,
       29-Dec-2014.) $)
    psrbagf $p |- ( ( I e. V /\ F e. D ) -> F : I --> NN0 ) $=
      ( wcel cn0 wf ccnv cn cima cfn psrbag simprbda ) DEGCAGDHCICJKLMGABCDEFNO
      $.

    ${
      $d f y N $.
      $( A bag containing one element is a finite bag.  (Contributed by Mario
         Carneiro, 7-Jan-2015.)  (Revised by AV, 8-Jul-2019.) $)
      snifpsrbag $p |- ( ( I e. V /\ N e. NN0 )
                         -> ( y e. I |-> if ( y = X , N , 0 ) ) e. D ) $=
        ( wcel cn0 wa cv wceq cc0 cif cmpt a1i adantr cvv wb wf ccnv cima simpr
        cfn 0nn0 ifcld eqid fmptd cfsupp wbr c0ex sniffsupp frnnn0fsupp adantlr
        cn id bicomd mpdan mpbird psrbag mpbir2and ) DFIZEJIZKZADALZGMZENOZPZBI
        ZDJVIUAZVIUBUPUCUEIZVEADVHJVIVEVHJIVFDIVEVGENJVCVDUDNJIVEUFQUGRVIUHZUIZ
        VEVLVINUJUKZVCVOVDVCAEVIDFSGNVCUQNSIVCULQVMUMRVEVKVLVOTVNVEVKKVOVLVCVKV
        OVLTVDVIDFUNUOURUSUTVCVJVKVLKTVDBCVIDFHVARVB $.
    $}

    $( The constant function equal to zero is a finite bag.  (Contributed by
       AV, 8-Jul-2019.) $)
    fczpsrbag $p |- ( I e. V -> ( x e. I |-> 0 ) e. D ) $=
      ( vn wcel cc0 cmpt weq cif wceq ifid eqcomi a1i mpteq2dv cn0 0nn0 cv
      snifpsrbag mpan2 eqeltrd ) DEHZADIJADAGKZIILZJZBUDADIUFIUFMUDUFIUEINOPQUD
      IRHUGBHSABCDIEGTFUAUBUC $.

    $( The support of a dominated bag is smaller than the dominating bag.
       (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    psrbaglesupp $p |- ( ( I e. V /\ ( F e. D /\
      G : I --> NN0 /\ G oR <_ F ) ) -> ( `' G " NN ) C_ ( `' F " NN ) ) $=
      ( vx wcel cn0 wf cle wbr wa ccnv cn cima cc0 csupp wceq w3a co frnnn0supp
      cofr 3ad2antr2 simpr2 cv cdif cfv eldifi simpr3 wfn ffn psrbagf 3ad2antr1
      wral syl simpl inidm eqidd ofrfval mpbid r19.21bi sylan2 cvv wss jca 3syl
      eqimss a1i suppssr breqtrd ffvelrn syl2an nn0ge0d cr wb nn0red 0re letri3
      c0ex sylancl mpbir2and suppss eqsstr3d ) EFIZCAIZEJDKZDCLUDMZUAZNZDOPQZDR
      SUBZCOPQZWFWGWHWMWLTWIDEFUCUEWKEJHDWNRWFWGWHWIUFZWKHUGZEWNUHIZNZWPDUIZRTZ
      WSRLMZRWSLMZWRWSWPCUIZRLWQWKWPEIZWSXCLMZWPEWNUJZWKXEHEWKWIXEHEUPWFWGWHWIU
      KWKHEEWSXCLEDCFFWKWHDEULWOEJDUMUQWKEJCKZCEULWFWHWGXGWIABCEFGUNUOZEJCUMUQW
      FWJURZXIEUSWKXDNZWSUTXJXCUTVAVBVCVDWKEJVECFWNWPRXHWKWFXGNCRSUBZWNTXKWNVFW
      KWFXGXIXHVGCEFUCXKWNVIVHXIRVEIWKWAVJVKVLWRWSWKWHXDWSJIWQWOXFEJWPDVMVNZVOW
      RWSVPIRVPIWTXAXBNVQWRWSXLVRVSWSRVTWBWCWDWE $.

    $( The set of finite bags is downward-closed.  (Contributed by Mario
       Carneiro, 29-Dec-2014.) $)
    psrbaglecl $p |- ( ( I e. V /\
      ( F e. D /\ G : I --> NN0 /\ G oR <_ F ) ) -> G e. D ) $=
      ( wcel cn0 wf cle cofr wa ccnv cn cima cfn wb psrbag adantr simpr2 simpr1
      wbr w3a wss mpbid simprd psrbaglesupp ssfi syl2anc mpbir2and ) EFHZCAHZEI
      DJZDCKLUCZUDZMZDAHZUNDNOPZQHZULUMUNUOUAUQCNOPZQHZUSVAUEUTUQEICJZVBUQUMVCV
      BMZULUMUNUOUBULUMVDRUPABCEFGSTUFUGABCDEFGUHVAUSUIUJULURUNUTMRUPABDEFGSTUK
      $.

    $( The sum of two finite bags is a finite bag.  (Contributed by Mario
       Carneiro, 9-Jan-2015.) $)
    psrbagaddcl $p |- ( ( I e. V /\ F e. D /\ G e. D ) ->
      ( F oF + G ) e. D ) $=
      ( vx wcel caddc co cn0 wf ccnv cfn wa cc0 csupp syl2anc cvv vy w3a cof cn
      cima cv nn0addcl adantl simp2 wb psrbag 3ad2ant1 mpbid simpld simp3 simp1
      inidm off cfv cmpt frnnn0supp fvexd feqmptd offval2 oveq1d eqtr3d cun wss
      wceq simprd eqeltrd unfi cdif ssun1 a1i c0ex suppssr ssun2 oveq12d syl6eq
      00id suppss2 ssfi mpbir2and ) EFIZCAIZDAIZUBZCDJUCKZAIZELWIMZWINUDUEZOIZW
      HHUAEEEJLLLCDFFHUFZLIUAUFZLIPWNWOJKLIWHWNWOUGUHWHELCMZCNUDUEZOIZWHWFWPWRP
      ZWEWFWGUIWEWFWFWSUJWGABCEFGUKULUMZUNZWHELDMZDNUDUEZOIZWHWGXBXDPZWEWFWGUOW
      EWFWGXEUJWGABDEFGUKULUMZUNZWEWFWGUPZXHEUQURZWHWLHEWNCUSZWNDUSZJKZUTZQRKZO
      WHWIQRKZWLXNWHWEWKXOWLVIXHXIWIEFVASWHWIXMQRWHHEXJXKJCDFTTXHWHWNEIPZWNCVBX
      PWNDVBWHHELCXAVCWHHELDXGVCVDVEVFWHCQRKZDQRKZVGZOIZXNXSVHXNOIWHXQOIXROIXTW
      HXQWQOWHWEWPXQWQVIXHXACEFVASWHWPWRWTVJVKWHXRXCOWHWEXBXRXCVIXHXGDEFVASWHXB
      XDXFVJVKXQXRVLSWHEXLHFXSQWHWNEXSVMIPZXLQQJKQYAXJQXKQJWHELTCFXSWNQXAXQXSVH
      WHXQXRVNVOXHQTIWHVPVOZVQWHELTDFXSWNQXGXRXSVHWHXRXQVRVOXHYBVQVSWAVTXHWBXSX
      NWCSVKWEWFWJWKWMPUJWGABWIEFGUKULWD $.

    $( The analogue of the statement " ` 0 <_ G <_ F ` implies
       ` 0 <_ F - G <_ F ` " for finite bags.  (Contributed by Mario Carneiro,
       29-Dec-2014.) $)
    psrbagcon $p |- ( ( I e. V /\ ( F e. D /\ G : I --> NN0 /\
      G oR <_ F ) ) -> ( ( F oF - G ) e. D /\ ( F oF - G ) oR <_ F ) ) $=
      ( vx wcel cn0 wf cle wbr wa cmin wfn cfv wral wb mpbid cofr w3a cof co cn
      ccnv cima cfn simpr1 psrbag adantr simpld ffn syl simpr2 simpl inidm offn
      cv eqidd ofval simpr3 ofrfval r19.21bi ffvelrnda nn0sub syl2anc ralrimiva
      eqeltrd ffnfv sylanbrc wss simprd cc0 nn0ge0d nn0re subge02 syl2an mpbird
      cr psrbaglesupp syl13anc ssfi mpbir2and jca ) EFIZCAIZEJDKZDCLUAZMZUBZNZC
      DOUCUDZAIZWMCWIMZWLWNEJWMKZWMUFUEUGZUHIZWLWMEPHUSZWMQZJIZHERWPWLEEOECDFFW
      LEJCKZCEPWLXBCUFUEUGZUHIZWLWGXBXDNZWFWGWHWJUIZWFWGXESWKABCEFGUJUKTZULZEJC
      UMUNZWLWHDEPWFWGWHWJUOZEJDUMUNZWFWKUPZXLEUQZURZWLXAHEWLWSEINZWTWSCQZWSDQZ
      OUDZJWLEEXPXQOECDFFWSXIXKXLXLXMXOXPUTZXOXQUTZVAZXOXQXPLMZXRJIZWLYBHEWLWJY
      BHERWFWGWHWJVBWLHEEXQXPLEDCFFXKXIXLXLXMXTXSVCTVDXOXQJIZXPJIZYBYCSWLEJWSDX
      JVEZWLEJWSCXHVEZXQXPVFVGTVIVHHEJWMVJVKZWLXDWQXCVLZWRWLXBXDXGVMWLWFWGWPWOY
      IXLXFYHWLWOXRXPLMZHERWLYJHEXOVNXQLMZYJXOXQYFVOXOYEYDYKYJSZYGYFYEXPVTIXQVT
      IYLYDXPVPXQVPXPXQVQVRVGTVHWLHEEXRXPLEWMCFFXNXIXLXLXMYAXSVCVSZABCWMEFGWAWB
      XCWQWCVGWFWNWPWRNSWKABWMEFGUJUKWDYMWE $.

    $( There are finitely many bags dominated by a given bag.  (Contributed by
       Mario Carneiro, 29-Dec-2014.)  (Revised by Mario Carneiro,
       25-Jan-2015.) $)
    psrbaglefi $p |- ( ( I e. V /\ F e. D ) ->
      { y e. D | y oR <_ F } e. Fin ) $=
      ( vx wcel wa cv cle cc0 cfv co cfn cn0 cn wb wss cofr wbr crab cfz df-rab
      cixp cab ccnv cima psrbag adantr simpl syl6bi adantrd ss2ixp fz0ssnn0 a1i
      wf mprg sseli vex elixpconst sylib wral wfn ffn adantl elixp baib syl cuz
      wi cz ffvelrn adantll nn0uz syl6eleq psrbagf nn0zd elfz5 syl2anc ralbidva
      ffvelrnda ffnd simpll inidm eqidd ofrfval psrbaglecl 3exp2 imp31 pm4.71rd
      bitr4d 3bitrrd ex pm5.21ndd abbi1dv syl5eq cmap simpr wceq imaeq1d eleq1d
      cnveq elrab2 simprd fzfid cdif csn cvv jca frnnn0supp eqimss 3syl suppssr
      csupp c0ex oveq2d fz0sn syl6eq ixpfi2 eqeltrd ) EFIZDBIZJZAKZDLUAUBZABUCZ
      HEMHKZDNZUDOZUFZPYEYHYFBIZYGJZAUGYLYGABUEYEYNAYLYEEQYFURZYNYFYLIZYEYMYOYG
      YEYMYOYFUHRUIPIZJZYOYCYMYRSYDBCYFEFGUJUKYOYQULUMUNYPYOVLYEYPYFHEQUFZIYOYL
      YSYFYKQTZYLYSTHEHEYKQUOYTYIEIZYJUPUQUSUTHEQYFAVAZVBVCUQYEYOYNYPSYEYOJZYPY
      IYFNZYKIZHEVDZYGYNUUCYFEVEZYPUUFSYOUUGYEEQYFVFVGZYPUUGUUFHEYKYFUUBVHVIVJU
      UCUUFUUDYJLUBZHEVDYGUUCUUEUUIHEUUCUUAJZUUDMVKNZIYJVMIUUEUUISUUJUUDQUUKYOU
      UAUUDQIYEEQYIYFVNVOVPVQUUJYJUUCEQYIDYEEQDURZYOBCDEFGVRZUKZWCVSUUDMYJVTWAW
      BUUCHEEUUDYJLEYFDFFUUHUUCEQDUUNWDYCYDYOWEZUUOEWFUUJUUDWGUUJYJWGWHWMUUCYGY
      MYCYDYOYGYMVLYCYDYOYGYMBCDYFEFGWIWJWKWLWNWOWPWQWRYEHEYKDUHZRUIZMYEDQEWSOZ
      IZUUQPIZYEYDUUSUUTJYCYDWTCKZUHZRUIZPIUUTCDUURBUVADXAZUVCUUQPUVDUVBUUPRUVA
      DXDXBXCGXEVCXFYEUUAJMYJXGYEYIEUUQXHIJZYKMXIZXAYKUVFTUVEYKMMUDOUVFUVEYJMMU
      DYEEQXJDFUUQYIMUUMYEYCUULJDMXPOZUUQXAUVGUUQTYEYCUULYCYDULZUUMXKDEFXLUVGUU
      QXMXNUVHMXJIYEXQUQXOXRXSXTYKUVFXMVJYAYB $.

    psrbagconf1o.1 $e |- S = { y e. D | y oR <_ F } $.
    $( The complement of a bag is a bag.  (Contributed by Mario Carneiro,
       29-Dec-2014.) $)
    psrbagconcl $p |- ( ( I e. V /\ F e. D /\ X e. S ) ->
      ( F oF - X ) e. S ) $=
      ( wcel w3a cmin cof co cle wbr wa breq1 elrab2 cofr cn0 simp1 simp2 simp3
      wf cv sylib simpld psrbagf syl2anc simprd psrbagcon syl13anc sylibr ) FGK
      ZEBKZHCKZLZEHMNOZBKUTEPUAZQZRZUTCKUSUPUQFUBHUFZHEVAQZVCUPUQURUCZUPUQURUDU
      SUPHBKZVDVFUSVGVEUSURVGVERUPUQURUEAUGZEVAQZVEAHBCVHHEVASJTUHZUIBDHFGIUJUK
      USVGVEVJULBDEHFGIUMUNVIVBAUTBCVHUTEVASJTUO $.

    $( Bag complementation is a bijection on the set of bags dominated by a
       given bag ` F ` .  (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    psrbagconf1o $p |- ( ( I e. V /\ F e. D ) ->
      ( x e. S |-> ( F oF - x ) ) : S -1-1-onto-> S ) $=
      ( vn wcel wa cmin cn0 wf psrbagf syl2anc wceq cfv vz cv cof cmpt eqid cle
      co cofr wbr simpll simplr simpr breq1 elrab2 sylib simpld simprd syl13anc
      psrbagcon sylibr ralrimiva oveq2 eleq1d rspccva sylan wb adantr ffvelrnda
      wral crab ssrab2 eqsstri simprr sseldi adantrr cc subsub23 syl3an syl3anc
      nn0cn eqcom 3bitr4g wfn ffn syl inidm eqidd ofval eqeq2d 3bitr4d ralbidva
      adantrl eqfnfv f1o2d ) GHLZFCLZMZAUADDFAUBZNUCZUGZFUAUBZWSUGZADWTUDZXCUEW
      QWRDLZMZWTCLZWTFUFUHZUIZMZWTDLZXEWOWPGOWRPZWRFXGUIZXIWOWPXDUJZWOWPXDUKXEW
      OWRCLZXKXMXEXNXLXEXDXNXLMWQXDULBUBZFXGUIZXLBWRCDXOWRFXGUMJUNUOZUPCEWRGHIQ
      RZXEXNXLXQUQCEFWRGHIUSURXPXHBWTCDXOWTFXGUMJUNUTZWQXJADVIXADLZXBDLZWQXJADX
      SVAXJYAAXADWRXASWTXBDWRXAFWSVBVCVDVEZWQXDXTMZMZKUBZWRTZYEXBTZSZKGVIZYEXAT
      ZYEWTTZSZKGVIZWRXBSZXAWTSZYDYHYLKGYDYEGLMZYFYEFTZYJNUGZSZYJYQYFNUGZSZYHYL
      YPYRYFSZYTYJSZYSUUAYPYQOLZYJOLZYFOLZUUBUUCVFZYDGOYEFWQGOFPZYCCEFGHIQVGZVH
      YDGOYEXAYDWOXACLGOXAPZWOWPYCUJZYDDCXADXPBCVJCJXPBCVKVLZWQXDXTVMVNCEXAGHIQ
      RZVHYDGOYEWRWQXDXKXTXRVOZVHUUDYQVPLUUEYJVPLUUFYFVPLUUGYQVTYJVTYFVTYQYJYFV
      QVRVSYFYRWAYJYTWAWBYPYGYRYFYDGGYQYJNGFXAHHYEYDUUHFGWCUUIGOFWDWEZYDUUJXAGW
      CZUUMGOXAWDWEZUUKUUKGWFZYPYQWGZYPYJWGWHWIYPYKYTYJYDGGYQYFNGFWRHHYEUUOYDXK
      WRGWCZUUNGOWRWDWEZUUKUUKUURUUSYPYFWGWHWIWJWKYDUUTXBGWCZYNYIVFUVAYDGOXBPZU
      VBYDWOXBCLUVCUUKYDDCXBUULWQXTYAXDYBWLVNCEXBGHIQRGOXBWDWEKGWRXBWMRYDUUPWTG
      WCZYOYMVFUUQYDGOWTPZUVDYDWOXFUVEUUKYDDCWTUULWQXDXJXTXSVOVNCEWTGHIQRGOWTWD
      WEKGXAWTWMRWJWN $.

    gsumbagdiag.i $e |- ( ph -> I e. V ) $.
    gsumbagdiag.f $e |- ( ph -> F e. D ) $.
    $( Lemma for ~ gsumbagdiag .  (Contributed by Mario Carneiro,
       5-Jan-2015.) $)
    gsumbagdiaglem $p |- ( ( ph /\
        ( X e. S /\ Y e. { x e. D | x oR <_ ( F oF - X ) } ) ) ->
        ( Y e. S /\ X e. { x e. D | x oR <_ ( F oF - Y ) } ) ) $=
      ( vz wcel cle wbr cn0 vu vv vw cv cmin co cofr crab wa simprr breq1 elrab
      cof sylib simpld simprd wf adantr simprl elrab2 psrbagf syl2anc psrbagcon
      syl13anc w3a wi nn0re letr syl3an adantl caoftrn mp2and sylanbrc cfv wral
      cr ffvelrnda caddc leaddsub2 leaddsub bitr3d syl3anc ralbidva cvv feqmptd
      wb ovexd wfn ffn syl inidm eqidd offval ofrfval2 3bitr4d mpbid jca ) AJEQ
      ZKBUDZGJUEUMZUFZRUGZSZBDUHQZUIZUIZKEQZJWSGKWTUFZXBSZBDUHQZXFKDQZKGXBSZXGX
      FXKKXAXBSZXFXDXKXMUIAWRXDUJXCXMBKDWSKXAXBUKULUNZUOZXFXMXAGXBSZXLXFXKXMXNU
      PZXFXADQZXPXFHIQZGDQZHTJUQZJGXBSZXRXPUIAXSXENURZAXTXEOURZXFXSJDQZYAYCXFYE
      YBXFWRYEYBUIAWRXDUSCUDZGXBSZYBCJDEYFJGXBUKMUTUNZUOZDFJHILVAVBZXFYEYBYHUPD
      FGJHILVCVDZUPXFUAUBUCHRTRRKXAGIYCXFXSXKHTKUQZYCXODFKHILVAVBZXFXSXRHTXAUQY
      CXFXRXPYKUODFXAHILVAVBXFXSXTHTGUQZYCYDDFGHILVAVBZUAUDZTQZUBUDZTQZUCUDZTQZ
      VEYPYRRSYRYTRSUIYPYTRSVFZXFYQYPVPQYSYRVPQUUAYTVPQUUBYPVGYRVGYTVGYPYRYTVHV
      IVJVKVLYGXLCKDEYFKGXBUKMUTVMXFYEJXHXBSZXJYIXFXMUUCXQXFPUDZKVNZUUDGVNZUUDJ
      VNZUEUFZRSZPHVOUUGUUFUUEUEUFZRSZPHVOXMUUCXFUUIUUKPHXFUUDHQUIZUUGTQZUUETQZ
      UUFTQZUUIUUKWFZXFHTUUDJYJVQZXFHTUUDKYMVQZXFHTUUDGYOVQUUMUUGVPQZUUNUUEVPQZ
      UUOUUFVPQZUUPUUGVGUUEVGUUFVGUUSUUTUVAVEUUGUUEVRUFUUFRSUUIUUKUUGUUEUUFVSUU
      GUUEUUFVTWAVIWBWCXFPHUUEUUHRKXAITWDYCUURUULUUFUUGUEWGXFPHTKYMWEXFPHHUUFUU
      GUEHGJIIXFYNGHWHYOHTGWIWJZXFYAJHWHYJHTJWIWJYCYCHWKZUULUUFWLZUULUUGWLWMWNX
      FPHUUGUUJRJXHITWDYCUUQUULUUFUUEUEWGXFPHTJYJWEXFPHHUUFUUEUEHGKIIUVBXFYLKHW
      HYMHTKWIWJYCYCUVCUVDUULUUEWLWMWNWOWPXIUUCBJDWSJXHXBUKULVMWQ $.

    gsumbagdiag.b $e |- B = ( Base ` G ) $.
    gsumbagdiag.g $e |- ( ph -> G e. CMnd ) $.
    gsumbagdiag.x $e |- ( ( ph /\
      ( j e. S /\ k e. { x e. D | x oR <_ ( F oF - j ) } ) ) -> X e. B ) $.
    $( Two-dimensional commutation of a group sum over a "triangular" region.
       ~ fsum0diag analogue for finite bags.  (Contributed by Mario Carneiro,
       5-Jan-2015.) $)
    gsumbagdiag $p |- ( ph ->
      ( G gsum ( j e. S , k e. { x e. D | x oR <_ ( F oF - j ) } |-> X ) ) =
      ( G gsum ( k e. S , j e. { x e. D | x oR <_ ( F oF - k ) } |-> X ) ) ) $=
      ( cv cmin cof co cle cofr wbr crab cxp cfn cvv c0g cfv psrbaglefi syl2anc
      eqid wcel syl5eqel wa ccnv cima cn0 cmap ovex rab2ex a1i xpfi wceq simprl
      cn wn gsumbagdiaglem simpld brxp sylanbrc pm2.24d impr impbida gsumcom2 )
      AFDBUBZJHUBZUCUDZUEUFUGZUHZBEUIZFFFUJZHIWAJIUBZWCUEWDUHBEUIZKUKULNUKKUMUN
      ZSWJUQTAFCUBJWDUHCEUIZUKPALMURJEURWKUKURQRCEGJLMOUOUPUSZWFULURAWBFURZUTWE
      GUBVAVKVBUKURBGVCLVDUEEOVCLVDVEVFVGUAAFUKURZWNWGUKURWLWLFFVHUPAWMWHWFURZU
      TZWBWHWGUHZVLNWJVIZAWPUTZWQWRWSWMWHFURZWQAWMWOVJWSWTWBWIURZABCEFGJLMWBWHO
      PQRVMZVNWBWHFFVOVPVQVRWLAWPWTXAUTXBABCEFGJLMWHWBOPQRVMVSVT $.

    psrass1lem.y $e |- ( k = ( n oF - j ) -> X = Y ) $.
    $( A group sum commutation used by ~ psrass1 .  (Contributed by Mario
       Carneiro, 5-Jan-2015.) $)
    psrass1lem $p |- ( ph ->
    ( G gsum ( n e. S |->
      ( G gsum ( j e. { x e. D | x oR <_ n } |-> Y ) ) ) ) =
    ( G gsum ( j e. S |->
      ( G gsum ( k e. { x e. D | x oR <_ ( F oF - j ) } |-> X ) ) ) ) ) $=
      ( vm vz cv cmin cof cle cofr wbr crab cmpt cgsu cmpt2 wcel gsumbagdiaglem
      co csb wa wf wral ccom anassrs eqid fmptd wf1o adantr eqsstri psrbagconcl
      ssrab2 simpr syl3anc sseldi psrbagconf1o syl2anc f1of syl fco cfv psrbagf
      cn0 wceq ffvelrnda nn0cn sub32 syl3an mpteq2dva cvv ovexd feqmptd offval2
      cc 3eqtr4d eqeltrrd nfcsb1v csbeq1a cbvmpt a1i fmptco feq1d mpbid cfn c0g
      nfcv psrbaglefi syl5eqel simprl simpld brxp sylanbrc pm2.24d impr gsum2d2
      wn 3eqtr3d ccnv wfun csupp wss cfsupp cmap ovex rabexg mptexg 3syl funmpt
      fvexd cdm suppssdm dmmptss sstri suppssfifsupp syl32anc cres eqidd oveq2d
      gsumf1o eqtrd csbeq1 fmpt sylibr r19.21bi anasss gsumbagdiag xpfi ccmn cn
      syldan cxp rabex2 gsumcl f1ocnv cid coass f1ococnv2 coeq2d syl5eq rabbidv
      cima breq2 csbie oveq1 csbeq1d syl5eqr mpteq12dv coeq1d ssid resmpt ax-mp
      coires1 eqtri mp1i ) ALUEFLHBUGZKUEUGZUHUIZUSZUJUKZULZBEUMZIUVRHUGZUVQUSZ
      OUTZUNZUOUSZUNZUOUSZLHFLUEUVOKUWBUVQUSZUVSULZBEUMZUWDUNZUOUSZUNZUOUSZLJFL
      HUVOJUGZUVSULZBEUMZPUNZUOUSZUNZUOUSZLHFLIUWKOUNZUOUSZUNZUOUSALUEHFUWAUWDU
      PUOUSLHUEFUWKUWDUPUOUSUWHUWOABCDEFGUEHKLMNUWDQRSTUAUBAUVPFUQZUWBUWAUQZVAZ
      UWBFUQZUVPUWKUQZVAZUWDDUQZABCEFGKMNUVPUWBQRSTURZAUXIUXJUXLAUXIVAZUXLUEUWK
      UXNUWKDUWLVBZUXLUEUWKVCUXNUWKDUXCUEUWKUWIUVPUVQUSZUNZVDZVBZUXOUXNUWKDUXCV
      BUWKUWKUXQVBZUXSUXNIUWKODUXCAUXIIUGUWKUQODUQUCVEUXCVFZVGZUXNUWKUWKUXQVHZU
      XTUXNMNUQZUWIEUQZUYCAUYDUXISVIZUXNFEUWIFCUGKUVSULZCEUMZERUYGCEVLVJZUXNUYD
      KEUQZUXIUWIFUQUYFAUYJUXITVIZAUXIVMZCEFGKMNUWBQRVKVNVOZUEBEUWKGUWIMNQUWKVF
      ZVPVQZUWKUWKUXQVRVSUWKUWKDUXCUXQVTVQUXNUWKDUXRUWLUXNUEJUWKUWKUWCIUWPOUTZU
      WDUXQUXCUXNUXJVAZUXPUWCUWKUYQUFMUFUGZKWAZUYRUWBWAZUHUSZUYRUVPWAZUHUSZUNUF
      MUYSVUBUHUSZUYTUHUSZUNUXPUWCUYQUFMVUCVUEUYQUYRMUQVAZUYSWCUQZUYTWCUQZVUBWC
      UQZVUCVUEWDZUYQMWCUYRKUYQUYDUYJMWCKVBUXNUYDUXJUYFVIZUXNUYJUXJUYKVIEGKMNQW
      BVQZWEZUYQMWCUYRUWBUYQUYDUWBEUQMWCUWBVBVUKUYQFEUWBUYIUXNUXIUXJUYLVIVOEGUW
      BMNQWBVQZWEZUYQMWCUYRUVPUYQUYDUVPEUQMWCUVPVBVUKUYQUWKEUVPUWJBEVLUXNUXJVMZ
      VOEGUVPMNQWBVQZWEZVUGUYSWNUQVUHUYTWNUQVUIVUBWNUQVUJUYSWFUYTWFVUBWFUYSUYTV
      UBWGWHVNWIUYQUFMVUAVUBUHUWIUVPNWJWCVUKVUFUYSUYTUHWKVURUYQUFMUYSUYTUHKUWBN
      WCWCVUKVUMVUOUYQUFMWCKVULWLZUYQUFMWCUWBVUNWLZWMUYQUFMWCUVPVUQWLZWMUYQUFMV
      UDUYTUHUVRUWBNWJWCVUKVUFUYSVUBUHWKVUOUYQUFMUYSVUBUHKUVPNWCWCVUKVUMVURVUSV
      VAWMVUTWMWOZUYQUYDUYEUXJUXPUWKUQVUKUXNUYEUXJUYMVIVUPBEUWKGUWIMNUVPQUYNVKV
      NWPUXNUEUWKUXPUWCVVBWIUXCJUWKUYPUNWDUXNIJUWKOUYPJOXFIUWPOWQIUWPOWRWSWTIUW
      PUWCOUUAXAZXBXCUEUWKDUWDUWLUWLVFUUBUUCUUDUUEZUUJZUUFAFDUWAFFUUKZUEHLXDXDU
      WDLXEWAZUAVVGVFZUBAFUYHXDRAUYDUYJUYHXDUQSTCEGKMNQXGVQXHZAUXFVAZUYDUVREUQU
      WAXDUQZAUYDUXFSVIZVVJFEUVRUYIVVJUYDUYJUXFUVRFUQVVLAUYJUXFTVIAUXFVMCEFGKMN
      UVPQRVKVNZVOBEGUVRMNQXGVQZVVEAFXDUQZVVOVVFXDUQVVIVVIFFUUGVQZAUXHUVPUWBVVF
      ULZXPUWDVVGWDZAUXHVAZVVQVVRVVSUXFUXIVVQAUXFUXGXIVVSUXIUXJUXMXJUVPUWBFFXKX
      LXMXNXOAFDUWKVVFHUELXDXDUWDVVGUAVVHUBVVIUXNUYDUYEUWKXDUQZUYFUYMBEGUWIMNQX
      GVQZVVDVVPAUXKUWBUVPVVFULZXPVVRAUXKVAZVWBVVRVWCUXIUXFVWBAUXIUXJXIVWCUXFUX
      GABCEFGKMNUWBUVPQRSTURXJUWBUVPFFXKXLXMXNXOXQAUXBLUXAUEFUVRUNZVDZUOUSUWHAF
      DFUXALVWDXDVVGUAVVHUBVVIAFDUWGVWDXRZVDZVBZFDUXAVBAFDUWGVBFFVWFVBZVWHAUEFU
      WFDUWGVVJUWADUWELXDVVGUAVVHALUUHUQZUXFUBVIVVNVVJHUWAUWDDUWEAUXFUXGUXLVVEV
      EUWEVFZVGVVJUWEWJUQZUWEXSZVVGWJUQZVVKUWEVVGXTUSZUWAYAZUWEVVGYBULVVJEWJUQZ
      UWAWJUQVWLVWQVVJGUGXRUUIUVAXDUQGWCMYCUSEQWCMYCYDUULZWTUVTBEWJYEHUWAUWDWJY
      FYGVWMVVJHUWAUWDYHWTVVJLXEYIVVNVWPVVJVWOUWEYJUWAUWEVVGYKHUWAUWDUWEVWKYLYM
      WTUWAUWEWJWJVVGYNYOUUMUWGVFVGAFFVWDVHZFFVWFVHVWIAUYDUYJVWSSTUECEFGKMNQRVP
      VQZFFVWDUUNFFVWFVRYGFFDUWGVWFVTVQAFDVWGUXAAVWEVWFVDZUXAUUOFYPZVDZVWGUXAAV
      XAUXAVWDVWFVDZVDVXCUXAVWDVWFUUPAVXDVXBUXAAVWSVXDVXBWDVWTFFVWDUUQVSUURUUSA
      VWEUWGVWFAUEJFFUVRUWTUWFVWDUXAVVMAVWDYQAUXAYQUWPUVRWDZUWSUWELUOVXEHUWRPUW
      AUWDVXEUWQUVTBEUWPUVRUVOUVSUVBUUTVXEPIUWPUWBUVQUSZOUTUWDIVXFOPUWPUWBUVQYD
      UDUVCVXEIVXFUWCOUWPUVRUWBUVQUVDUVEUVFUVGYRXAZUVHVXCUXAWDAVXCUXAFYPZUXAUXA
      FUVLFFYAVXHUXAWDFUVIJFFUWTUVJUVKUVMWTXQXBXCAUXAWJUQZUXAXSZVWNVVOUXAVVGXTU
      SZFYAZUXAVVGYBULAFWJUQVXIAFUYHWJRVWQUYHWJUQAVWRUYGCEWJYEUVNXHJFUWTWJYFVSV
      XJAJFUWTYHWTALXEYIVVIVXLAVXKUXAYJFUXAVVGYKJFUWTUXAUXAVFYLYMWTFUXAWJWJVVGY
      NYOVWTYSAVWEUWGLUOVXGYRYTAUXEUWNLUOAHFUXDUWMUXNUXDLUXRUOUSUWMUXNUWKDUWKUX
      CLUXQXDVVGUAVVHAVWJUXIUBVIVWAUYBUXNUXCWJUQZUXCXSZVWNVVTUXCVVGXTUSZUWKYAZU
      XCVVGYBULUXNVWQUWKWJUQVXMVWQUXNVWRWTUWJBEWJYEIUWKOWJYFYGVXNUXNIUWKOYHWTUX
      NLXEYIVWAVXPUXNVXOUXCYJUWKUXCVVGYKIUWKOUXCUYAYLYMWTUWKUXCWJWJVVGYNYOUYOYS
      UXNUXRUWLLUOVVCYRYTWIYRWO $.
  $}

  ${
    $d g h k x y D $.  $d f g h k x y I $.  $d g h k x K $.  $d g h k x ph $.
    $d g h k x R $.  $d x V $.
    psrbas.s $e |- S = ( I mPwSer R ) $.
    psrbas.k $e |- K = ( Base ` R ) $.
    psrbas.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    psrbas.b $e |- B = ( Base ` S ) $.
    ${
      psrbas.i $e |- ( ph -> I e. V ) $.
      $( The base set of the multivariate power series structure.  (Contributed
         by Mario Carneiro, 28-Dec-2014.)  (Revised by Mario Carneiro,
         2-Oct-2015.)  (Proof shortened by AV, 8-Jul-2019.) $)
      psrbas $p |- ( ph -> B = ( K ^m D ) ) $=
        ( vx co cbs cfv cop c0 vg vh vk vy cvv wcel cmap wceq wa cnx cplusg cof
        cxp cres cmulr cv cle cofr wbr crab cmin cmpt cgsu cmpt2 ctp csca cvsca
        csn cts ctopn cpt cun eqid eqidd adantr psrval fveq2d ovex c1 psrvalstr
        simpr c9 baseid snsstp1 ssun1 sstri strfv ax-mp 3eqtr4g reldmpsr ovprc2
        cmps adantl syl5eq base0 wne fvprc cc0 fczpsrbag ne0i fvex eqeltri ccnv
        wn syl cn cima cfn cn0 rabex2 map0 sylanbrc eqtr4d pm2.61dan ) ADUEUFZB
        HCUGPZUHAXOUIZEQRZUJQRXPSZUJUKRDUKRZULXPXPUMUNZSZUJUORUAUBXPXPUCCDOUDUP
        UCUPZUQURUSUDCUTOUPZUAUPZRYCYDVAULPUBUPRDUORZPVBVCPVBVDZSZVEZUJVFRDSUJV
        GROUAHXPCYDVHUMYEYFULPVDZSUJVIRCDVJRZVHUMVKRZSVEZVLZQRZBXPXQEYNQXQOUDXP
        CXTYADEYJYFYGUAUBFUCGYLHYKIUEJKXTVMYFVMYKVMLXQXPVNYAVMYGVMYJVMXQYLVNAGI
        UFZXONVOAXOWAVPVQMXPUEUFXPYOUHHCUGVRXPYNQUEVSWBSXPYADYJYGYLVTWCXSVHYIYN
        XSYBYHWDYIYMWEWFWGWHWIAXOXDZUIZBTXPYRXRTQRBTYRETQYREGDWLPZTJYQYSTUHAGDW
        LWJWKWMWNVQMWOWIYRHTUHCTWPZXPTUHYRHDQRZTKYQUUATUHADQWQWMWNYROGWRVBZCUFZ
        YTAUUCYQAYPUUCNOCFGILWSXEVOCUUBWTXEHCHUUAUEKDQXAXBFUPXCXFXGXHUFFXIGUGPC
        LXIGUGVRXJXKXLXMXN $.
    $}

    psrelbas.x $e |- ( ph -> X e. B ) $.
    $( An element of the set of power series is a function on the coefficients.
       (Contributed by Mario Carneiro, 28-Dec-2014.) $)
    psrelbas $p |- ( ph -> X : D --> K ) $=
      ( cmap co wcel cvv cbs cn0 wf wa cmps reldmpsr elbasov syl simpld eleqtrd
      psrbas cfv fvex eqeltri cv ccnv cn cima cfn ovex rabex2 elmap sylib ) AIH
      COPZQCHIUAAIBVBNABCDEFGHRJKLMAGRQZDRQZAIBQVCVDUBNIBEUCGDUDJMUEUFUGUIUHHCI
      HDSUJRKDSUKULFUMUNUOUPUQQFTGOPCLTGOURUSUTVA $.
  $}

  ${
    $d f I $.
    psrelbasfun.s $e |- S = ( I mPwSer R ) $.
    psrelbasfun.b $e |- B = ( Base ` S ) $.
    $( An element of the set of power series is a function.  (Contributed by
       AV, 17-Jul-2019.) $)
    psrelbasfun $p |- ( X e. B -> Fun X ) $=
      ( vf wcel cv ccnv cn cima cfn cn0 cmap co crab cbs eqid cfv wfun psrelbas
      wf id ffun syl ) EAIZHJKLMNIHODPQRZBSUAZEUDEUBUHAUIBCHDUJEFUJTUITGUHUEUCU
      IUJEUFUG $.
  $}

  ${
    $d f g k x B $.  $d f g h k x y I $.  $d f g k x ph $.  $d f g k x R $.
    psrplusg.s $e |- S = ( I mPwSer R ) $.
    psrplusg.b $e |- B = ( Base ` S ) $.
    psrplusg.a $e |- .+ = ( +g ` R ) $.
    psrplusg.p $e |- .+b = ( +g ` S ) $.
    $( The addition operation of the multivariate power series structure.
       (Contributed by Mario Carneiro, 28-Dec-2014.)  (Revised by Mario
       Carneiro, 2-Oct-2015.) $)
    psrplusg $p |- .+b = ( oF .+ |` ( B X. B ) ) $=
      ( cvv cplusg cfv cnx cbs cop cv co eqid c0 vf vg vk vh vx vy wcel cof cxp
      wa cres wceq cmulr ccnv cn cima cfn cn0 cmap crab cle cofr cmin cmpt cgsu
      wbr cmpt2 ctp cvsca csn cts ctopn cpt cun simpl psrbas eqidd simpr psrval
      csca fveq2d fvex eqeltri xpex ofexg c1 c9 psrvalstr plusgid snsstp2 ssun1
      sstri strfv mp2b 3eqtr4g cmps reldmpsr ovprc syl5eq str0 base0 xpeq2d xp0
      wn syl6eq reseq2d res0 eqtr4d pm2.61i ) FKUGZDKUGZUJZCBUHZAAUIZUKZULXLELM
      ZNOMAPZNLMZXOPZNUMMUAUBAAUCUDQUNUOUPUQUGUDURFUSRUTZDUEUFQUCQZVAVBVFUFXTUT
      UEQZUAQZMYAYBVCUHRUBQMDUMMZRVDVERVDVGZPZVHZNVTMDPNVIMUEUADOMZAXTYBVJUIYCY
      DUHRVGZPNVKMXTDVLMZVJUIVMMZPVHZVNZLMZCXOXLEYMLXLUEUFAXTBXODEYIYDYEUAUBUDU
      CFYKYHYJKKGYHSZIYDSYJSXTSZXLAXTDEUDFYHKGYOYPHXJXKVOZVPXOSYESYISXLYKVQYQXJ
      XKVRVSWAJXNKUGXOKUGXOYNULAAAEOMZKHEOWBWCZYSWDXNBKWEXOYMLKWFWGPAXODYIYEYKW
      HWIXSVJYGYMXQXSYFWJYGYLWKWLWMWNWOXLXDZCTXOYTXPTLMCTYTETLYTEFDWPRTGFDWPWQW
      RWSZWAJLXRWIWTWOYTXOXMTUKTYTXNTXMYTXNATUITYTATAYTYRTOMATYTETOUUAWAHXAWOXB
      AXCXEXFXMXGXEXHXI $.

    psradd.x $e |- ( ph -> X e. B ) $.
    psradd.y $e |- ( ph -> Y e. B ) $.
    $( The addition operation of the multivariate power series structure.
       (Contributed by Mario Carneiro, 28-Dec-2014.) $)
    psradd $p |- ( ph -> ( X .+b Y ) = ( X oF .+ Y ) ) $=
      ( co cof cxp cres psrplusg oveqi ofmresval syl5eq ) AHIDPHICQZBBRSZPHIUDP
      DUEHIBCDEFGJKLMTUAABBCHINOUBUC $.
  $}

  ${
    $d f I $.  $d x y ph $.  $d x y R $.  $d x y X $.  $d y Y $.
    psraddcl.s $e |- S = ( I mPwSer R ) $.
    psraddcl.b $e |- B = ( Base ` S ) $.
    psraddcl.p $e |- .+ = ( +g ` S ) $.
    psraddcl.r $e |- ( ph -> R e. Grp ) $.
    psraddcl.x $e |- ( ph -> X e. B ) $.
    psraddcl.y $e |- ( ph -> Y e. B ) $.
    $( Closure of the power series addition operation.  (Contributed by Mario
       Carneiro, 28-Dec-2014.) $)
    psraddcl $p |- ( ph -> ( X .+ Y ) e. B ) $=
      ( vf co cv wcel cmap cvv vx vy cplusg cfv cof cbs ccnv cn cima cfn cn0 wf
      crab cgrp eqid grpcl 3expb sylan psrelbas ovex rabex a1i inidm fvex elmap
      wa off sylibr psradd cmps reldmpsr elbasov syl simpld psrbas 3eltr4d ) AG
      HDUCUDZUEPZDUFUDZOQUGUHUIUJRZOUKFSPZUMZSPZGHCPBAWBVSVRULVRWCRAUAUBWBWBWBV
      QVSVSVSGHTTADUNRZUAQZVSRZUBQZVSRZVFWEWGVQPVSRZLWDWFWHWIVSVQDWEWGVSUOZVQUO
      ZUPUQURABWBDEOFVSGIWJWBUOZJMUSABWBDEOFVSHIWJWLJNUSWBTRAVTOWAUKFSUTVAZVBZW
      NWBVCVGVSWBVRDUFVDWMVEVHABVQCDEFGHIJWKKMNVIABWBDEOFVSTIWJWLJAFTRZDTRZAGBR
      WOWPVFMGBEVJFDVKIJVLVMVNVOVP $.
  $}

  ${
    $d f g k x B $.  $d f g k x y D $.  $d f g h k x y I $.  $d f g k x ph $.
    $d f g k x F $.  $d f g k x G $.  $d f g k x .x. $.  $d f g k x R $.
    $d k x y X $.
    psrmulr.s $e |- S = ( I mPwSer R ) $.
    psrmulr.b $e |- B = ( Base ` S ) $.
    psrmulr.m $e |- .x. = ( .r ` R ) $.
    psrmulr.t $e |- .xb = ( .r ` S ) $.
    psrmulr.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
    $( The multiplication operation of the multivariate power series structure.
       (Contributed by Mario Carneiro, 28-Dec-2014.)  (Revised by Mario
       Carneiro, 2-Oct-2015.) $)
    psrmulr $p |- .xb = ( f e. B , g e. B |-> ( k e. D |->
            ( R gsum ( x e. { y e. D | y oR <_ k } |->
            ( ( f ` x ) .x. ( g ` ( k oF - x ) ) ) ) ) ) ) $=
      ( cfv c0 cvv wcel wa cv cle cofr wbr crab cmin cmpt cgsu cmpt2 wceq cmulr
      cof co cnx cbs cop cplusg ctp csca cvsca csn cxp cts ctopn cpt eqid simpl
      cun psrbas psrplusg eqidd simpr psrval fveq2d eqeltri mpt2ex c1 psrvalstr
      fvex c9 mulrid snsstp3 ssun1 sstri strfv ax-mp 3eqtr4g wn mpt20 str0 cmps
      eqtr2i reldmpsr ovprc syl5eq base0 mpt2eq12 syl2anc 3eqtr4a pm2.61i ) MUA
      UBZEUAUBZUCZGIJCCLDEABUDLUDZUEUFUGBDUHAUDZIUDZSXGXHUIUOUPJUDSHUPUJUKUPUJZ
      ULZUMXFFUNSZUQURSCUSZUQUTSFUTSZUSZUQUNSZXKUSZVAZUQVBSEUSUQVCSAIEURSZCDXHV
      DVEXIHUOUPULZUSUQVFSDEVGSZVDVEVHSZUSVAZVKZUNSZGXKXFFYDUNXFABCDEUTSZXNEFXT
      HXKIJKLMYBXSYAUAUANXSVIZYFVIZPYAVIRXFCDEFKMXSUANYGROXDXEVJZVLCYFXNEFMNOYH
      XNVIVMXKVIXTVIXFYBVNYIXDXEVOVPVQQXKUAUBXKYEUMIJCCXJCFURSZUAOFURWBVRZYKVSX
      KYDUNUAVTWCUSCXNEXTXKYBWAWDXQVDXRYDXMXOXQWEXRYCWFWGWHWIWJXFWKZTUNSZIJTTXJ
      ULZGXKYNTYMIJTXJWLUNXPWDWMWOYLGXLYMQYLFTUNYLFMEWNUPTNMEWNWPWQWRZVQWRYLCTU
      MZYPXKYNUMYLYJTURSCTYLFTURYOVQOWSWJZYQIJCCTTXJWTXAXBXC $.

    psrmulfval.i $e |- ( ph -> F e. B ) $.
    psrmulfval.r $e |- ( ph -> G e. B ) $.
    $( The multiplication operation of the multivariate power series structure.
       (Contributed by Mario Carneiro, 28-Dec-2014.) $)
    psrmulfval $p |- ( ph -> ( F .xb G ) = ( k e. D |->
            ( R gsum ( x e. { y e. D | y oR <_ k } |->
            ( ( F ` x ) .x. ( G ` ( k oF - x ) ) ) ) ) ) ) $=
      ( vf vg wcel co cv cle cofr wbr crab cfv cmin cof cmpt cgsu wceq wa fveq1
      oveqan12d mpteq2dv oveq2d psrmulr ccnv cn cima cfn cmap ovex rabex2 mptex
      cn0 ovmpt2a syl2anc ) ALDUDMDUDLMHUEKEFBCUFKUFZUGUHUICEUJZBUFZLUKZVNVPULU
      MUEZMUKZIUEZUNZUOUEZUNZUPTUAUBUCLMDDKEFBVOVPUBUFZUKZVRUCUFZUKZIUEZUNZUOUE
      ZUNWCHWDLUPZWFMUPZUQZKEWJWBWMWIWAFUOWMBVOWHVTWKWLWEVQWGVSIVPWDLURVRWFMURU
      SUTVAUTBCDEFGHIUBUCJKNOPQRSVBKEWBJUFVCVDVEVFUDJVKNVGUEESVKNVGVHVIVJVLVM
      $.

    psrmulval.r $e |- ( ph -> X e. D ) $.
    $( The multiplication operation of the multivariate power series structure.
       (Contributed by Mario Carneiro, 28-Dec-2014.) $)
    psrmulval $p |- ( ph -> ( ( F .xb G ) ` X ) =
            ( R gsum ( k e. { y e. D | y oR <_ X } |->
            ( ( F ` k ) .x. ( G ` ( X oF - k ) ) ) ) ) ) $=
      ( vx cfv cle cofr wbr crab cmin cof cmpt cgsu psrmulfval fveq1d wcel wceq
      co breq2 rabbidv oveq1 fveq2d oveq2d mpteq12dv eqid ovex fvmpt syl eqtrd
      cv ) ANKLGUQZUDNUCDEJBVIZUCVIZUEUFZUGZBDUHZJVIZKUDZVLVPUIUJZUQZLUDZHUQZUK
      ZULUQZUKZUDZEJVKNVMUGZBDUHZVQNVPVRUQZLUDZHUQZUKZULUQZANVJWDAJBCDEFGHIUCKL
      MOPQRSTUAUMUNANDUOWEWLUPUBUCNWCWLDWDVLNUPZWBWKEULWMJVOWAWGWJWMVNWFBDVLNVK
      VMURUSWMVTWIVQHWMVSWHLVLNVPVRUTVAVBVCVBWDVDEWKULVEVFVGVH $.
  $}

  ${
    $d k x B $.  $d k x ph $.  $d k x R $.  $d k x X $.  $d k x Y $.
    $d k x y D $.  $d f k x y I $.
    psrmulcl.s $e |- S = ( I mPwSer R ) $.
    psrmulcl.b $e |- B = ( Base ` S ) $.
    psrmulcl.t $e |- .x. = ( .r ` S ) $.
    psrmulcl.r $e |- ( ph -> R e. Ring ) $.
    psrmulcl.x $e |- ( ph -> X e. B ) $.
    psrmulcl.y $e |- ( ph -> Y e. B ) $.
    ${
      psrmulcl.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
      $( Closure of the power series multiplication operation.  (Contributed by
         Mario Carneiro, 29-Dec-2014.) $)
      psrmulcllem $p |- ( ph -> ( X .x. Y ) e. B ) $=
        ( co wcel cvv vk vx vy cv cle cofr wbr crab cfv cmin cof cmulr cmpt cbs
        cgsu cmap wf cfn c0g eqid crg ccmn adantr ringcmn cmps reldmpsr elbasov
        wa simpld psrbaglefi sylan ad2antrr psrelbas simpr breq1 elrab ffvelrnd
        syl cn0 simplr psrbagf syl2anc simprd psrbagcon syl13anc ringcl syl3anc
        sylib fmptd fvexd fdmfifsupp gsumcl fvex ccnv cn cima ovex rabex2 elmap
        sylibr psrmulfval psrbas 3eltr4d ) AUACDUBUCUDZUAUDZUEUFZUGZUCCUHZUBUDZ
        IUIZXEXIUJUKRZJUIZDULUIZRZUMZUORZUMZDUNUIZCUPRZIJFRBACXRXQUQXQXSSAUACXP
        XRXQAXECSZVHZXHXRXODURDUSUIZXRUTZYBUTYADVASZDVBSAYDXTNVCDVDVRAHTSZXTXHU
        RSAYEDTSZAIBSYEYFVHOIBEVEHDVFKLVGVRVIZUCCGXEHTQVJVKZYAUBXHXNXRXOYAXIXHS
        ZVHZYDXJXRSXLXRSXNXRSAYDXTYINVLYJCXRXIIACXRIUQXTYIABCDEGHXRIKYCQLOVMVLY
        JXICSZXIXEXFUGZYJYIYKYLVHYAYIVNXGYLUCXICXDXIXEXFVOVPWHZVIZVQYJCXRXKJACX
        RJUQXTYIABCDEGHXRJKYCQLPVMVLYJXKCSZXKXEXFUGZYJYEXTHVSXIUQZYLYOYPVHAYEXT
        YIYGVLZAXTYIVTYJYEYKYQYRYNCGXIHTQWAWBYJYKYLYMWCCGXEXIHTQWDWEVIVQXRDXMXJ
        XLYCXMUTZWFWGXOUTWIZYAXHXRXOTYBYTYHYADUSWJWKWLXQUTWIXRCXQDUNWMGUDWNWOWP
        URSGVSHUPRCQVSHUPWQWRWSWTAUBUCBCDEFXMGUAIJHKLYSMQOPXAABCDEGHXRTKYCQLYGX
        BXC $.
    $}

    $( Closure of the power series multiplication operation.  (Contributed by
       Mario Carneiro, 29-Dec-2014.) $)
    psrmulcl $p |- ( ph -> ( X .x. Y ) e. B ) $=
      ( vf cv ccnv cn cima cfn wcel cn0 cmap co crab eqid psrmulcllem ) ABOPQRS
      TUAOUBFUCUDUEZCDEOFGHIJKLMNUHUFUG $.
  $}

  ${
    $d f h w x y z I $.  $d f w x z ph $.  $d f w x z R $.  $d f w x z S $.
    psrsca.s $e |- S = ( I mPwSer R ) $.
    psrsca.i $e |- ( ph -> I e. V ) $.
    psrsca.r $e |- ( ph -> R e. W ) $.
    $( The scalar field of the multivariate power series structure.
       (Contributed by Mario Carneiro, 28-Dec-2014.) $)
    psrsca $p |- ( ph -> R = ( Scalar ` S ) ) $=
      ( vx vf vh cnx cbs cfv cop cplusg cmulr csca eqid vy vz vw ctp cvsca ccnv
      cv cn cima cfn wcel cn0 cmap co crab csn cxp cof cmpt2 cts ctopn cpt wceq
      cun c1 c9 psrvalstr scaid snsstp1 ssun2 sstri syl psrbas psrplusg psrmulr
      strfv eqidd psrval fveq2d eqtr4d ) ABMNOCNOZPMQOCQOZPMROCROZPUDZMSOBPZMUE
      OJKBNOZWALUGUFUHUIUJUKLULDUMUNUOZJUGUPUQKUGBROZURUNUSZPZMUTOWGBVAOZUPUQVB
      OZPZUDZVDZSOZCSOABFUKBWPVCIBWOSFVEVFPWAWBBWIWCWLVGVHWEUPWNWOWEWJWMVIWNWDV
      JVKVPVLACWOSAJUAWAWGBQOZWBBCWIWHWCKUBLUCDWLWFWKEFGWFTZWQTZWHTZWKTWGTZAWAW
      GBCLDWFEGWRXAWATZHVMWAWQWBBCDGXBWSWBTVNJUAWAWGBCWCWHKUBLUCDGXBWTWCTXAVOWI
      TAWLVQHIVRVSVT $.
  $}

  ${
    $d f g k x B $.  $d f x F $.  $d f g h k x y I $.  $d f x K $.  $d f x X $.
    $d f g k x y D $.  $d f g k x R $.  $d f g k x .x. $.  $d f x .xb $.
    psrvsca.s $e |- S = ( I mPwSer R ) $.
    psrvsca.n $e |- .xb = ( .s ` S ) $.
    psrvsca.k $e |- K = ( Base ` R ) $.
    psrvsca.b $e |- B = ( Base ` S ) $.
    psrvsca.m $e |- .x. = ( .r ` R ) $.
    psrvsca.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
    $( The scalar multiplication operation of the multivariate power series
       structure.  (Contributed by Mario Carneiro, 28-Dec-2014.)  (Revised by
       Mario Carneiro, 2-Oct-2015.) $)
    psrvscafval $p |- .xb = ( x e. K , f e. B |->
      ( ( D X. { x } ) oF .x. f ) ) $=
      ( cvv cfv c0 vy vg vk wcel wa cv csn cxp cof cmpt2 wceq cvsca cnx cbs cop
      co cplusg cmulr ctp csca cts ctopn cpt eqid simpl psrbas psrplusg psrmulr
      cun eqidd simpr psrval fveq2d fvex eqeltri mpt2ex c1 c9 psrvalstr snsstp2
      vscaid ssun2 sstri strfv ax-mp 3eqtr4g wfn fn0 mpbir cmps reldmpsr syl5eq
      wn ovprc c6 df-vsca elbasov con3i eq0rdv xpeq2d xp0 syl6eq fneq12d mpbiri
      str0 fnov sylib wi pm2.21d a1d 3imp mpt2eq3dva eqtr4d pm2.61i ) JRUDZDRUD
      ZUEZFAHKBCAUFZUGUHHUFZGUIUPZUJZUKXQEULSZUMUNSBUOUMUQSEUQSZUOUMURSEURSZUOU
      SZUMUTSDUOZUMULSYAUOZUMVASCDVBSZUGUHVCSZUOZUSZVIZULSZFYAXQEYLULXQAUABCDUQ
      SZYCDEYAGYDHUBIUCJYIKYHRRLNYNVDZPYHVDQXQBCDEIJKRLNQOXOXPVEZVFBYNYCDEJLOYO
      YCVDVGAUABCDEYDGHUBIUCJLOPYDVDQVHYAVDXQYIVJYPXOXPVKVLVMMYARUDYAYMUKAHKBXT
      KDUNSRNDUNVNVOBEUNSROEUNVNVOVPYAYLULRVQVRUOBYCDYAYDYIVSWAYGUGYKYLYFYGYJVT
      YKYEWBWCWDWEWFXQWMZFAHKBXRXSFUPZUJZYAYQFKBUHZWGZFYSUKYQUUATTWGZUUBTTUKTVD
      TWHWIYQYTTFTYQYBTULSFTYQETULYQEJDWJUPTLJDWJWKWNWLVMMULWOWPXEWFYQYTKTUHTYQ
      BTKYQHBXSBUDZXQXSBEWJJDWKLOWQWRZWSWTKXAXBXCXDAHKBFXFXGYQAHKBXTYRYQXRKUDZU
      UCXTYRUKZYQUUCUUFXHUUEYQUUCUUFUUDXIXJXKXLXMXN $.

    psrvsca.x $e |- ( ph -> X e. K ) $.
    psrvsca.y $e |- ( ph -> F e. B ) $.
    $( The scalar multiplication operation of the multivariate power series
       structure.  (Contributed by Mario Carneiro, 28-Dec-2014.) $)
    psrvsca $p |- ( ph -> ( X .xb F ) = ( ( D X. { X } ) oF .x. F ) ) $=
      ( vx vf wcel co csn cxp wceq cv sneq xpeq2d oveq1d oveq2 psrvscafval ovex
      cof ovmpt2 syl2anc ) ALKUCIBUCLIFUDCLUEZUFZIGUOZUDZUGSTUAUBLIKBCUAUHZUEZU
      FZUBUHZUTUDVAFUSVEUTUDVBLUGZVDUSVEUTVFVCURCVBLUIUJUKVEIUSUTULUABCDEFGUBHJ
      KMNOPQRUMUSIUTUNUPUQ $.

    psrvscaval.y $e |- ( ph -> Y e. D ) $.
    $( The scalar multiplication operation of the multivariate power series
       structure.  (Contributed by Mario Carneiro, 28-Dec-2014.) $)
    psrvscaval $p |- ( ph -> ( ( X .xb F ) ` Y ) = ( X .x. ( F ` Y ) ) ) $=
      ( co cfv csn cxp cof psrvsca fveq1d wcel wceq cvv cv ccnv cn cima cfn cn0
      cmap ovex rabex2 a1i psrelbas ffnd wa eqidd ofc1 mpdan eqtrd ) AMLIFUCZUD
      MCLUEUFIGUGUCZUDZLMIUDZGUCZAMVJVKABCDEFGHIJKLNOPQRSTUAUHUIAMCUJZVLVNUKUBA
      CLVMGIULKMCULUJAHUMUNUOUPUQUJHURJUSUCCSURJUSUTVAVBTACKIABCDEHJKINPSQUAVCV
      DAVOVEVMVFVGVHVI $.
  $}

  ${
    $d f x y I $.  $d x y K $.  $d x y ph $.  $d x y R $.  $d x y X $.
    $d y F $.
    psrvscacl.s $e |- S = ( I mPwSer R ) $.
    psrvscacl.n $e |- .x. = ( .s ` S ) $.
    psrvscacl.k $e |- K = ( Base ` R ) $.
    psrvscacl.b $e |- B = ( Base ` S ) $.
    psrvscacl.r $e |- ( ph -> R e. Ring ) $.
    psrvscacl.x $e |- ( ph -> X e. K ) $.
    psrvscacl.y $e |- ( ph -> F e. B ) $.
    $( Closure of the power series scalar multiplication operation.
       (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    psrvscacl $p |- ( ph -> ( X .x. F ) e. B ) $=
      ( vf wcel co cvv vx vy cv ccnv cn cima cfn cn0 cmap csn cxp cmulr cfv cof
      crab wf crg wa eqid ringcl 3expb sylan fconst6g psrelbas ovex rabex inidm
      syl a1i off cbs fvex eqeltri elmap sylibr psrvsca reldmpsr elbasov simpld
      cmps psrbas 3eltr4d ) AQUCUDUEUFUGRZQUHGUISZUOZIUJUKZFCULUMZUNSZHWEUISZIF
      ESBAWEHWHUPWHWIRAUAUBWEWEWEWGHHHWFFTTACUQRZUAUCZHRZUBUCZHRZURWKWMWGSHRZNW
      JWLWNWOHCWGWKWMLWGUSZUTVAVBAIHRWEHWFUPOWEIHVCVHABWECDQGHFJLWEUSZMPVDWETRA
      WCQWDUHGUIVEVFZVIZWSWEVGVJHWEWHHCVKUMTLCVKVLVMWRVNVOABWECDEWGQFGHIJKLMWPW
      QOPVPABWECDQGHTJLWQMAGTRZCTRZAFBRWTXAURPFBDVTGCVQJMVRVHVSWAWB $.
  $}

  ${
    $d x .0. $.  $d r s t x y z ph $.  $d r s t x y z R $.  $d r s t x y z S $.
    $d x D $.  $d f x y z I $.  $d x y N $.  $d x y X $.
    psrgrp.s $e |- S = ( I mPwSer R ) $.
    psrgrp.i $e |- ( ph -> I e. V ) $.
    psrgrp.r $e |- ( ph -> R e. Grp ) $.
    ${
      psr0cl.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
      psr0cl.o $e |- .0. = ( 0g ` R ) $.
      psr0cl.b $e |- B = ( Base ` S ) $.
      $( The zero element of the ring of power series.  (Contributed by Mario
         Carneiro, 29-Dec-2014.) $)
      psr0cl $p |- ( ph -> ( D X. { .0. } ) e. B ) $=
        ( cbs cmap co wcel cn0 csn cxp cfv cgrp eqid grpidcl fconst6g 3syl fvex
        wf cv ccnv cn cima cfn ovex rabex2 elmap sylibr psrbas eleqtrrd ) ACIUA
        UBZDPUCZCQRZBACVCVBUJZVBVDSADUDSIVCSVELVCDIVCUEZNUFCIVCUGUHVCCVBDPUIFUK
        ULUMUNUOSFTGQRCMTGQUPUQURUSABCDEFGVCHJVFMOKUTVA $.

      psr0lid.p $e |- .+ = ( +g ` S ) $.
      psr0lid.x $e |- ( ph -> X e. B ) $.
      $( The zero element of the ring of power series is a left identity.
         (Contributed by Mario Carneiro, 29-Dec-2014.) $)
      psr0lid $p |- ( ph -> ( ( D X. { .0. } ) .+ X ) = X ) $=
        ( cvv vx csn cxp co cplusg cfv cof eqid psr0cl psradd wcel cv ccnv cima
        cbs cn cfn cn0 cmap ovex rabex2 a1i psrelbas c0g fvex eqeltri cgrp wceq
        grplid sylan caofid0l eqtrd ) ACKUBUCZJDUDVMJEUEUFZUGUDJABVNDEFHVMJLQVN
        UHZRABCEFGHIKLMNOPQUISUJAUACKVNEUOUFZJTTCTUKAGULUMUPUNUQUKGURHUSUDCOURH
        USUTVAVBABCEFGHVPJLVPUHZOQSVCKTUKAKEVDUFTPEVDVEVFVBAEVGUKUAULZVPUKKVRVN
        UDVRVHNVPVNEVRKVQVOPVIVJVKVL $.
    $}

    ${
      psrnegcl.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
      psrnegcl.i $e |- N = ( invg ` R ) $.
      psrnegcl.b $e |- B = ( Base ` S ) $.
      psrnegcl.z $e |- ( ph -> X e. B ) $.
      $( The negative function in the ring of power series.  (Contributed by
         Mario Carneiro, 29-Dec-2014.) $)
      psrnegcl $p |- ( ph -> ( N o. X ) e. B ) $=
        ( cbs cmap wf ccom cfv co wcel wf1o eqid grpinvf1o syl psrelbas syl2anc
        f1of fco fvex cv ccnv cn cima cfn cn0 ovex rabex2 elmap sylibr eleqtrrd
        psrbas ) AHJUAZDRUBZCSUCZBACVGVFTZVFVHUDAVGVGHTZCVGJTVIAVGVGHUEVJAVGDHV
        GUFZOMUGVGVGHUKUHABCDEFGVGJKVKNPQUICVGVGHJULUJVGCVFDRUMFUNUOUPUQURUDFUS
        GSUCCNUSGSUTVAVBVCABCDEFGVGIKVKNPLVEVD $.

      psrlinv.o $e |- .0. = ( 0g ` R ) $.
      psrlinv.p $e |- .+ = ( +g ` S ) $.
      $( The negative function in the ring of power series.  (Contributed by
         Mario Carneiro, 29-Dec-2014.) $)
      psrlinv $p |- ( ph -> ( ( N o. X ) .+ X ) = ( D X. { .0. } ) ) $=
        ( vx vy ccom cplusg cfv cof co cv cmpt csn cxp cvv cbs wcel ccnv cn cfn
        cima cn0 cmap ovex rabex2 wa fvexd eqid psrelbas ffvelrnda feqmptd wf1o
        a1i wf grpinvf1o f1of fveq2 fmptco offval2 psrnegcl psradd cgrp grplinv
        syl wceq syl2an2r mpteq2dva fconstmpt syl6reqr 3eqtr4d ) AIKUDZKEUEUFZU
        GUHUBCUBUIZKUFZIUFZWLWJUHZUJZWIKDUHCLUKULZAUBCWMWLWJWIKUMUMEUNUFZCUMUOA
        GUIUPUQUSURUOGUTHVAUHCPUTHVAVBVCVKAWKCUOZVDWLIVEACWQWKKABCEFGHWQKMWQVFZ
        PRSVGZVHZAUBUCCWQWLUCUIZIUFWMKIXAAUBCWQKWTVIZAUCWQWQIAWQWQIVJWQWQIVLAWQ
        EIWSQOVMWQWQIVNWBVIXBWLIVOVPXCVQABWJDEFHWIKMRWJVFZUAABCEFGHIJKMNOPQRSVR
        SVSAWOUBCLUJWPAUBCWNLAEVTUOWRWLWQUOWNLWCOXAWQWJEIWLLWSXDTQWAWDWEUBCLWFW
        GWH $.
    $}

    $( The ring of power series is a group.  (Contributed by Mario Carneiro,
       29-Dec-2014.) $)
    psrgrp $p |- ( ph -> S e. Grp ) $=
      ( vx vy vf cfv cv wcel co w3a eqid psrelbas adantr psradd vz vr vs vt cbs
      cplusg cminusg ccom ccnv cn cima cfn cn0 cmap crab c0g csn cxp eqidd cgrp
      3ad2ant1 simp2 simp3 psraddcl cof cvv ovex rabex a1i simpr1 simpr2 simpr3
      wa wceq grpass sylan caofass oveq1d oveq2d 3eqtr4d 3adant3r3 psr0cl simpr
      psr0lid psrnegcl psrlinv isgrpd ) AIJUACUELZCUFLZCBUGLZIMZUHKMUIUJUKULNZK
      UMDUNOZUOZBUPLZUQURAWHUSAWIUSAWKWHNZJMZWHNZPWHWIBCDWKWQFWHQZWIQZAWPBUTNZW
      RHVAAWPWRVBAWPWRVCVDZAWPWRUAMZWHNZPZVMZWKWQWIOZXCBUFLZVEZOZWKWQXCWIOZXIOZ
      XGXCWIOWKXKWIOXFWKWQXIOZXCXIOWKWQXCXIOZXIOXJXLXFUBUCUDWNXHXHBUELZXHWKWQXC
      XHVFWNVFNXFWLKWMUMDUNVGVHVIXFWHWNBCKDXOWKFXOQZWNQZWSAWPWRXDVJZRXFWHWNBCKD
      XOWQFXPXQWSAWPWRXDVKZRXFWHWNBCKDXOXCFXPXQWSAWPWRXDVLZRXFXAUBMZXONUCMZXONU
      DMZXONPYAYBXHOYCXHOYAYBYCXHOXHOVNAXAXEHSZXOXHBYAYBYCXPXHQZVOVPVQXFXGXMXCX
      IXFWHXHWIBCDWKWQFWSYEWTXRXSTVRXFXKXNWKXIXFWHXHWIBCDWQXCFWSYEWTXSXTTVSVTXF
      WHXHWIBCDXGXCFWSYEWTAWPWRXGWHNXDXBWAXTTXFWHXHWIBCDWKXKFWSYEWTXRXFWHWIBCDW
      QXCFWSWTYDXSXTVDTVTAWHWNBCKDEWOFGHXQWOQZWSWBAWPVMZWHWNWIBCKDEWKWOFADENWPG
      SZAXAWPHSZXQYFWSWTAWPWCZWDYGWHWNBCKDWJEWKFYHYIXQWJQZWSYJWEYGWHWNWIBCKDWJE
      WKWOFYHYIXQYKWSYJYFWTWFWG $.

    ${
      psr0.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
      psr0.o $e |- O = ( 0g ` R ) $.
      psr0.z $e |- .0. = ( 0g ` S ) $.
      $( The zero element of the ring of power series.  (Contributed by Mario
         Carneiro, 29-Dec-2014.) $)
      psr0 $p |- ( ph -> .0. = ( D X. { O } ) ) $=
        ( csn cfv wceq eqid wcel cxp cplusg co cbs psr0cl psr0lid cgrp wb grpid
        psrgrp syl2anc mpbid ) ABGPUAZUMDUBQZUCUMRZIUMRZADUDQZBUNCDEFHUMGJKLMNU
        QSZUNSZAUQBCDEFHGJKLMNURUEZUFADUGTUMUQTUOUPUHACDFHJKLUJUTUQUNDUMIURUSOU
        IUKUL $.
    $}

    ${
      psrneg.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
      psrneg.i $e |- N = ( invg ` R ) $.
      psrneg.b $e |- B = ( Base ` S ) $.
      psrneg.m $e |- M = ( invg ` S ) $.
      psrneg.x $e |- ( ph -> X e. B ) $.
      $( The negative function of the ring of power series.  (Contributed by
         Mario Carneiro, 29-Dec-2014.) $)
      psrneg $p |- ( ph -> ( M ` X ) = ( N o. X ) ) $=
        ( cfv ccom wceq cplusg co c0g csn eqid psrlinv psr0 eqtr4d cgrp wcel wb
        cxp psrgrp psrnegcl grpinvid2 syl3anc mpbird ) AKHTIKUAZUBZUTKEUCTZUDZE
        UETZUBZAVCCDUETZUFUNVDABCVBDEFGIJKVFLMNOPQSVFUGZVBUGZUHACDEFGVFJVDLMNOV
        GVDUGZUIUJAEUKULKBULUTBULVAVEUMADEGJLMNUOSABCDEFGIJKLMNOPQSUPBVBEHKUTVD
        QVHVIRUQURUS $.
    $}
  $}

  ${
    $d k x .+ $.  $d f x y z .0. $.  $d f g h j k n r s t w x y z I $.
    $d k K $.  $d k u v w x A $.  $d j k n x z B $.
    $d f g h j k n r s t u v w x y z R $.  $d g h j k n u v w x y z D $.
    $d y z U $.  $d f g h j k n u v w x y z X $.
    $d j k n r s t u v w x y z ph $.  $d g h j k r w x y V $.  $d k x y .x. $.
    $d f g h j k n x Z $.  $d r s t x y z S $.  $d x y .1. $.  $d j k x .X. $.
    $d f g h j k n u v w x Y $.
    psrring.s $e |- S = ( I mPwSer R ) $.
    psrring.i $e |- ( ph -> I e. V ) $.
    psrring.r $e |- ( ph -> R e. Ring ) $.
    $( The ring of power series is a left module.  (Contributed by Mario
       Carneiro, 29-Dec-2014.) $)
    psrlmod $p |- ( ph -> S e. LMod ) $=
      ( vf vr cfv eqidd wcel syl cv eqid co csn cvv psrvsca vx vy vz cbs cplusg
      vs vt cvsca cmulr cur crg psrsca cgrp ringgrp psrgrp 3ad2ant1 simp2 simp3
      w3a psrvscacl wa ccnv cn cima cfn cn0 cmap crab cxp cof ovex rabex a1i wf
      simpr1 fconst6g simpr2 psrelbas simpr3 adantr ringdi caofdi psradd oveq2d
      wceq sylan oveq12d 3eqtr4d psraddcl ringdir caofdir ofc12 oveq1d 3eqtr2rd
      3adant3r3 ringacl syl3anc ringass ringcl ringidcl simpr ringlidm caofid0l
      caofass eqtrd islmodd ) AUAUBUCBUDKZCUEKZBUEKZCUHKZBUIKZBUJKZBCUDKZCAXMLA
      XHLABCDEUKFGHULAXJLAXGLAXILAXKLAXLLHABCDEFGABUKMZBUMMZHBUNNZUOAUAOZXGMZUB
      OZXMMZUSXMBCXJXSDXGXQFXJPZXGPZXMPZAXRXNXTHUPAXRXTUQAXRXTURUTZAXRXTUCOZXMM
      ZUSZVAZIOVBVCVDVEMZIVFDVGQZVHZXQRVIZXSYEXHQZXKVJZQZXQXSXJQZXQYEXJQZXIVJZQ
      ZXQYMXJQYPYQXHQYHYLXSYEYRQZYNQYLXSYNQZYLYEYNQZYRQYOYSYHJUFUGYKXIXGXKYLXSY
      EXGXISYKSMZYHYIIYJVFDVGVKVLZVMYHXRYKXGYLVNZAXRXTYFVOZYKXQXGVPZNYHXMYKBCID
      XGXSFYBYKPZYCAXRXTYFVQZVRYHXMYKBCIDXGYEFYBUUHYCAXRXTYFVSZVRYHXNJOZXGMZUFO
      ZXGMUGOZXGMUSZUUKUUMUUNXIQXKQUUKUUMXKQZUUKUUNXKQZXIQWEAXNYGHVTZXGXIBXKUUK
      UUMUUNYBXIPZXKPZWAWFWBYHYMYTYLYNYHXMXIXHBCDXSYEFYCUUSXHPZUUIUUJWCWDYHYPUU
      AYQUUBYRYHXMYKBCXJXKIXSDXGXQFYAYBYCUUTUUHUUFUUITYHXMYKBCXJXKIYEDXGXQFYAYB
      YCUUTUUHUUFUUJTWGWHYHXMYKBCXJXKIYMDXGXQFYAYBYCUUTUUHUUFYHXMXHBCDXSYEFYCUV
      AAXOYGXPVTUUIUUJWITYHXMXIXHBCDYPYQFYCUUSUVAAXRXTYPXMMYFYDWOYHXMBCXJYEDXGX
      QFYAYBYCUURUUFUUJUTWCWHAXRXSXGMZYFUSZVAZYKXQXSXIQZRVIZYEYNQZYQXSYEXJQZYRQ
      ZUVEYEXJQYQUVHXHQUVDUVIUUBYKXSRVIZYEYNQZYRQYLUVJYRQZYEYNQUVGUVDYQUUBUVHUV
      KYRUVDXMYKBCXJXKIYEDXGXQFYAYBYCUUTUUHAXRUVBYFVOZAXRUVBYFVSZTUVDXMYKBCXJXK
      IYEDXGXSFYAYBYCUUTUUHAXRUVBYFVQZUVNTZWGUVDJUFUGYKXIXGXKYEYLUVJXGXISUUCUVD
      UUDVMZUVDXMYKBCIDXGYEFYBUUHYCUVNVRZUVDXRUUEUVMUUGNZUVDUVBYKXGUVJVNUVOYKXS
      XGVPNZUVDXNUUOUUKUUMXIQUUNXKQUUQUUMUUNXKQZXIQWEAXNUVCHVTZXGXIBXKUUKUUMUUN
      YBUUSUUTWJWFWKUVDUVLUVFYEYNUVDYKXQXSXISXGXGUVQUVMUVOWLWMWNUVDXMYKBCXJXKIY
      EDXGUVEFYAYBYCUUTUUHUVDXNXRUVBUVEXGMUWBUVMUVOXGXIBXQXSYBUUSWPWQUVNTUVDXMX
      IXHBCDYQUVHFYCUUSUVAUVDXMBCXJYEDXGXQFYAYBYCUWBUVMUVNUTUVDXMBCXJYEDXGXSFYA
      YBYCUWBUVOUVNUTZWCWHUVDYKXQXSXKQZRVIZYEYNQZYLUVHYNQZUWDYEXJQXQUVHXJQUVDUW
      GYLUVKYNQYLUVJYNQZYEYNQUWFUVDUVHUVKYLYNUVPWDUVDJUFUGYKXKXKXGXKYLUVJYEXKSU
      VQUVSUVTUVRUVDXNUUOUUPUUNXKQUUKUWAXKQWEUWBXGBXKUUKUUMUUNYBUUTWRWFXDUVDUWH
      UWEYEYNUVDYKXQXSXKSXGXGUVQUVMUVOWLWMWNUVDXMYKBCXJXKIYEDXGUWDFYAYBYCUUTUUH
      UVDXNXRUVBUWDXGMUWBUVMUVOXGBXKXQXSYBUUTWSWQUVNTUVDXMYKBCXJXKIUVHDXGXQFYAY
      BYCUUTUUHUVMUWCTWHAXQXMMZVAZXLXQXJQYKXLRVIXQYNQXQUWJXMYKBCXJXKIXQDXGXLFYA
      YBYCUUTUUHUWJXNXLXGMAXNUWIHVTZXGBXLYBXLPZWTNZAUWIXAZTUWJJYKXLXKXGXQSXGUUC
      UWJUUDVMUWJXMYKBCIDXGXQFYBUUHYCUWNVRUWMUWJXNUULXLUUKXKQUUKWEUWKXGBXKXLUUK
      YBUUTUWLXBWFXCXEXF $.

    ${
      psr1cl.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
      psr1cl.z $e |- .0. = ( 0g ` R ) $.
      psr1cl.o $e |- .1. = ( 1r ` R ) $.
      psr1cl.u $e |- U =
        ( x e. D |-> if ( x = ( I X. { 0 } ) , .1. , .0. ) ) $.
      psr1cl.b $e |- B = ( Base ` S ) $.
      $( The identity element of the ring of power series.  (Contributed by
         Mario Carneiro, 29-Dec-2014.) $)
      psr1cl $p |- ( ph -> U e. B ) $=
        ( cbs cfv cmap co wf wcel cv cc0 csn cxp wceq cif eqid ringidcl ring0cl
        crg ifcld syl adantr fmptd fvex ccnv cn cima cfn cn0 ovex rabex2 sylibr
        elmap psrbas eleqtrrd ) AGEUAUBZDUCUDZCADVMGUEGVNUFABDBUGZJUHUIUJUKZHLU
        LZVMGAVQVMUFZVODUFAEUPUFZVROVSVPHLVMVMEHVMUMZRUNVMELVTQUOUQURUSSUTVMDGE
        UAVAIUGVBVCVDVEUFIVFJUCUDDPVFJUCVGVHVJVIACDEFIJVMKMVTPTNVKVL $.

      psrlidm.t $e |- .x. = ( .r ` S ) $.
      psrlidm.x $e |- ( ph -> X e. B ) $.
      $( The identity element of the ring of power series is a left identity.
         (Contributed by Mario Carneiro, 29-Dec-2014.)  (Proof shortened by AV,
         8-Jul-2019.) $)
      psrlidm $p |- ( ph -> ( U .x. X ) = X ) $=
        ( vy vz vg co cbs cfv eqid psr1cl psrmulcl psrelbas ffnd cv wcel wa cle
        cofr wbr crab cmin cof cmulr cmpt cgsu cc0 csn cxp simpr psrmulval cres
        adantr fconstmpt fczpsrbag syl syl5eqel wral wf psrbagf sylan ffvelrnda
        cn0 nn0ge0d ralrimiva wfn 0nn0 fconst6 ffn mp1i inidm fvconst2g ofrfval
        wceq a1i eqidd mpbird breq1 elrab sylanbrc snssd resmptd oveq2d cvv crg
        ccmn ringcmn ccnv cn cima cmap ovex rab2ex ad2antrr sylib simpld syldan
        cfn syl2anc simprd psrbagcon syl13anc ffvelrnd ringcl syl3anc fmptd cif
        cdif eldifi sylan2 cur fvex eqeltri fvmpt adantl eqtrd fveq2d oveq12d
        c0g eqeq1 ifbid ifex eldifn velsn sylnib iffalsed oveq1d ringlz suppss2
        wn wfun csupp cfsupp rabex2 mptrabex funmpt snfi suppssfifsupp syl32anc
        wss gsumres cmnd ringmnd iftrue nn0cn subid1d caofid0r ringlidm eqeltrd
        fveq2 oveq2 gsumsn 3eqtr3d 3eqtrd eqfnfvd ) AUEDHMGUHZMADEUIUJZUVQACDEF
        JKUVRUVQOUVRUKZRUBACEFGKHMOUBUCQABCDEFHIJKLNOPQRSTUAUBULZUDUMUNUOADUVRM
        ACDEFJKUVRMOUVSRUBUDUNZUOAUEUPZDUQZURZUWBUVQUJEUFUGUPZUWBUSUTZVAZUGDVBZ
        UFUPZHUJZUWBUWIVCVDZUHZMUJZEVEUJZUHZVFZVGUHZKVHVIVJZHUJZUWBUWRUWKUHZMUJ
        ZUWNUHZUWBMUJZUWDUGCDEFGUWNJUFHMKUWBOUBUWNUKZUCRAHCUQUWCUVTVNZAMCUQUWCU
        DVNAUWCVKZVLUWDEUWPUWRVIZVMZVGUHEUFUXGUWOVFZVGUHZUWQUXBUWDUXHUXIEVGUWDU
        FUWHUXGUWOUWDUWRUWHUWDUWRDUQZUWRUWBUWFVAZUWRUWHUQAUXKUWCAUWRBKVHVFZDBKV
        HVOAKLUQZUXMDUQPBDJKLRVPVQVRVNZUWDUXLVHBUPZUWBUJZUSVAZBKVSUWDUXRBKUWDUX
        PKUQZURZUXQUWDKWDUXPUWBAUXNUWCKWDUWBVTPDJUWBKLRWAWBZWCWEWFUWDBKKVHUXQUS
        KUWRUWBLLKWDUWRVTUWRKWGUWDKVHWDWHWIKWDUWRWJWKUWDKWDUWBUYAUOAUXNUWCPVNZU
        YBKWLUWDVHWDUQZUXSUXPUWRUJVHWOUYCUWDWHWPZKVHUXPWDWMWBUXTUXQWQWNWRUWGUXL
        UGUWRDUWEUWRUWBUWFWSWTXAXBXCXDUWDUWHUVRUWPEXEUXGNUVSSAEXGUQZUWCAEXFUQZU
        YEQEXHVQVNUWHXEUQUWDUWGJUPXIXJXKXSUQZUGJWDKXLUHZDRWDKXLXMZXNWPZUWDUFUWH
        UWOUVRUWPUWDUWIUWHUQZURZUYFUWJUVRUQZUWMUVRUQZUWOUVRUQAUYFUWCUYKQXOUWDUY
        KUWIDUQZUYMUYLUYOUWIUWBUWFVAZUYLUYKUYOUYPURZUWDUYKVKUWGUYPUGUWIDUWEUWIU
        WBUWFWSWTXPZXQZUWDDUVRUWIHUWDCDEFJKUVRHOUVSRUBUXEUNWCXRUYLDUVRUWLMADUVR
        MVTUWCUYKUWAXOUYLUWLDUQZUWLUWBUWFVAZUYLUXNUWCKWDUWIVTZUYPUYTVUAURAUXNUW
        CUYKPXOZUWDUWCUYKUXFVNUYLUXNUYOVUBVUCUYSDJUWIKLRWAXTUYLUYOUYPUYRYADJUWB
        UWIKLRYBYCXQYDZUVREUWNUWJUWMUVSUXDYEYFUWPUKYGUWDUWHUWOUFXEUXGNUWDUWIUWH
        UXGYIUQZURZUWONUWMUWNUHZNVUFUWJNUWMUWNVUFUWJUWIUWRWOZINYHZNVUFUYOUWJVUI
        WOVUFUYOUYPVUEUWDUYKUYQUWIUWHUXGYJZUYRYKXQBUWIUXPUWRWOZINYHZVUIDHUXPUWI
        WOVUKVUHINUXPUWIUWRUUAUUBUAVUHINIEYLUJXETEYLYMYNZNEYTUJXESEYTYMYNZUUCYO
        VQVUFVUHINVUFUWIUXGUQZVUHVUEVUOUUKUWDUWIUWHUXGUUDYPUFUWRUUEUUFUUGYQUUHV
        UFUYFUYNVUGNWOAUYFUWCVUEQXOVUEUWDUYKUYNVUJVUDYKUVREUWNUWMNUVSUXDSUUIXTY
        QUYJUUJZUWDUWPXEUQZUWPUULZNXEUQZUXGXSUQZUWPNUUMUHUXGUVAUWPNUUNVAVUQUWDU
        WGUFUGDUWOUYGJUYHDRUYIUUOUUPWPVURUWDUFUWHUWOUUQWPVUSUWDVUNWPVUTUWDUWRUU
        RWPVUPUXGUWPXEXENUUSUUTUVBUWDEUVCUQZUXKUXBUVRUQUXJUXBWOUWDUYFVVAAUYFUWC
        QVNZEUVDVQUXOUWDUXBUXCUVRUWDUXBIUXCUWNUHZUXCUWDUWSIUXAUXCUWNUWDUXKUWSIW
        OUXOBUWRVULIDHVUKINUVEUAVUMYOVQUWDUWTUWBMUWDUFKVHVCWDUWBLWDUYBUYAUYDUWI
        WDUQZUWIVHVCUHUWIWOUWDVVDUWIUWIUVFUVGYPUVHYRYSUWDUYFUXCUVRUQVVCUXCWOVVB
        ADUVRUWBMUWAWCZUVREUWNIUXCUVSUXDTUVIXTYQZVVEUVJUWOUVRUXBUFEUWRDUVSVUHUW
        JUWSUWMUXAUWNUWIUWRHUVKVUHUWLUWTMUWIUWRUWBUWKUVLYRYSUVMYFUVNVVFUVOUVP
        $.

      $( The identity element of the ring of power series is a right identity.
         (Contributed by Mario Carneiro, 29-Dec-2014.)  (Proof shortened by AV,
         8-Jul-2019.) $)
      psrridm $p |- ( ph -> ( X .x. U ) = X ) $=
        ( vy vz vg vw co cbs cfv eqid psr1cl psrmulcl psrelbas ffnd cv wcel cle
        wa cofr wbr crab cmin cof cmulr cmpt cgsu adantr psrmulval csn cres cn0
        simpr wf psrbagf sylan nn0re leidd caofref breq1 elrab sylanbrc resmptd
        adantl snssd oveq2d cvv ccmn crg ringcmn syl ccnv cn cima cfn cmap ovex
        rab2ex ad2antrr sylib simpld ffvelrnd syl2anc simprd psrbagcon syl13anc
        a1i ringcl syl3anc fmptd cdif cc0 cxp cif eldifi sylan2 eqeq1 ifbid cur
        wceq fvex eqeltri c0g ifex fvmpt wn wne eldifsni necomd weq wss nn0sscn
        wb cc fss sylancl ofsubeq0 eqtrd fveq2d necon3bbid mpbird iffalsed wfun
        ringrz suppss2 cfsupp mptexg funmpt snfi suppssfifsupp syl32anc gsumres
        csupp cmnd ringmnd mpbiri fconstmpt fczpsrbag syl5eqel iftrue ffvelrnda
        ringridm eqeltrd fveq2 oveq2 oveq12d gsumsn 3eqtr3d 3eqtrd eqfnfvd ) AU
        EDMHGUIZMADEUJUKZUVLACDEFJKUVMUVLOUVMULZRUBACEFGKMHOUBUCQUDABCDEFHIJKLN
        OPQRSTUAUBUMZUNUOUPADUVMMACDEFJKUVMMOUVNRUBUDUOZUPAUEUQZDURZUTZUVQUVLUK
        EUFUGUQZUVQUSVAZVBZUGDVCZUFUQZMUKZUVQUWDVDVEZUIZHUKZEVFUKZUIZVGZVHUIZUV
        QMUKZUVQUVQUWFUIZHUKZUWIUIZUWMUVSUGCDEFGUWIJUFMHKUVQOUBUWIULZUCRAMCURUV
        RUDVIAHCURUVRUVOVIZAUVRVNZVJUVSEUWKUVQVKZVLZVHUIEUFUWTUWJVGZVHUIZUWLUWP
        UVSUXAUXBEVHUVSUFUWCUWTUWJUVSUVQUWCUVSUVRUVQUVQUWAVBZUVQUWCURUWSUVSUFKU
        SVMUVQLAKLURZUVRPVIZAUXEUVRKVMUVQVOZPDJUVQKLRVPVQZUWDVMURZUWDUWDUSVBUVS
        UXIUWDUWDVRVSWEVTUWBUXDUGUVQDUVTUVQUVQUWAWAWBWCWFWDWGUVSUWCUVMUWKEWHUWT
        NUVNSAEWIURZUVRAEWJURZUXJQEWKWLVIUWCWHURZUVSUWBJUQWMWNWOWPURUGJVMKWQUID
        RVMKWQWRWSXHZUVSUFUWCUWJUVMUWKUVSUWDUWCURZUTZUXKUWEUVMURZUWHUVMURUWJUVM
        URAUXKUVRUXNQWTZUXODUVMUWDMADUVMMVOUVRUXNUVPWTUXOUWDDURZUWDUVQUWAVBZUXO
        UXNUXRUXSUTUVSUXNVNUWBUXSUGUWDDUVTUWDUVQUWAWAWBXAZXBZXCZUXODUVMUWGHUVSD
        UVMHVOUXNUVSCDEFJKUVMHOUVNRUBUWRUOVIUXOUWGDURZUWGUVQUWAVBZUXOUXEUVRKVMU
        WDVOZUXSUYCUYDUTAUXEUVRUXNPWTZUVSUVRUXNUWSVIUXOUXEUXRUYEUYFUYADJUWDKLRV
        PXDZUXOUXRUXSUXTXEDJUVQUWDKLRXFXGXBZXCUVMEUWIUWEUWHUVNUWQXIXJUWKULXKUVS
        UWCUWJUFWHUWTNUVSUWDUWCUWTXLURZUTZUWJUWENUWIUIZNUYJUWHNUWEUWIUYJUWHUWGK
        XMVKXNZYAZINXOZNUYJUYCUWHUYNYAUYIUVSUXNUYCUWDUWCUWTXPZUYHXQBUWGBUQZUYLY
        AZINXOZUYNDHUYPUWGYAUYQUYMINUYPUWGUYLXRXSUAUYMINIEXTUKWHTEXTYBYCZNEYDUK
        WHSEYDYBYCZYEYFWLUYJUYMINUYJUYMYGUVQUWDYHUYJUWDUVQUYIUWDUVQYHUVSUWDUWCU
        VQYIWEYJUYJUYMUVQUWDUYIUVSUXNUYMUEUFYKYNZUYOUXOUXEKYOUVQVOZKYOUWDVOZVUA
        UYFUVSVUBUXNUVSUXGVMYOYLZVUBUXHYMKVMYOUVQYPYQZVIUXOUYEVUDVUCUYGYMKVMYOU
        WDYPYQKUVQUWDLYRXJXQUUAUUBUUCYSWGUYIUVSUXNUYKNYAZUYOUXOUXKUXPVUFUXQUYBU
        VMEUWIUWENUVNUWQSUUEXDXQYSUXMUUFZUVSUWKWHURZUWKUUDZNWHURZUWTWPURZUWKNUU
        NUIUWTYLUWKNUUGVBUVSUXLVUHUXMUFUWCUWJWHUUHWLVUIUVSUFUWCUWJUUIXHVUJUVSUY
        TXHVUKUVSUVQUUJXHVUGUWTUWKWHWHNUUKUULUUMUVSEUUOURZUVRUWPUVMURUXCUWPYAUV
        SUXKVULAUXKUVRQVIZEUUPWLUWSUVSUWPUWMUVMUVSUWPUWMIUWIUIZUWMUVSUWOIUWMUWI
        UVSUWOUYLHUKZIUVSUWNUYLHUVSUWNUYLYAZUEUEYKZUVQULUVSUXEVUBVUBVUPVUQYNUXF
        VUEVUEKUVQUVQLYRXJUUQYTUVSUYLDURZVUOIYAAVURUVRAUYLUHKXMVGZDUHKXMUURAUXE
        VUSDURPUHDJKLRUUSWLUUTVIBUYLUYRIDHUYQINUVAUAUYSYFWLYSWGUVSUXKUWMUVMURVU
        NUWMYAVUMADUVMUVQMUVPUVBZUVMEUWIIUWMUVNUWQTUVCXDYSZVUTUVDUWJUVMUWPUFEUV
        QDUVNUFUEYKZUWEUWMUWHUWOUWIUWDUVQMUVEVVBUWGUWNHUWDUVQUVQUWFUVFYTUVGUVHX
        JUVIVVAUVJUVK $.
    $}

    ${
      psrass.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
      psrass.t $e |- .X. = ( .r ` S ) $.
      psrass.b $e |- B = ( Base ` S ) $.
      psrass.x $e |- ( ph -> X e. B ) $.
      psrass.y $e |- ( ph -> Y e. B ) $.
      ${
        psrass.z $e |- ( ph -> Z e. B ) $.
        $( Associative identity for the ring of power series.  (Contributed by
           Mario Carneiro, 5-Jan-2015.) $)
        psrass1 $p |- ( ph ->
          ( ( X .X. Y ) .X. Z ) = ( X .X. ( Y .X. Z ) ) ) $=
          ( vx vk vg vj vh vn vz co cbs cfv eqid psrmulcl psrelbas ffnd cv wcel
          wa cle cofr wbr crab cmin cof cmulr cmpt cgsu adantr ccmn crg ringcmn
          simpr syl ad2antrr wf breq1 elrab sylib simpld ffvelrnd ad3antrrr cn0
          simplr psrbagf syl2anc simprd psrbagcon syl13anc ringcl syl3anc fveq2
          anasss oveq2 fveq2d oveq12d oveq2d psrass1lem psrmulval oveq1d cplusg
          wceq cfn c0g psrbaglefi cvv fvex fsuppmptdm gsummulc1 sylan ffvelrnda
          a1i ringass cc nn0cn nnncan2 syl3an mpteq2dva feqmptd offval2 3eqtr4d
          ovexd eqtr4d 3eqtr2d wfun w3a csupp wss cfsupp ccnv cn cima cmap ovex
          rab2ex mptex funmpt 3pm3.2i cdm suppssdm dmmptss sstri suppssfifsupp
          syl12anc gsummulc2 eqfnfvd ) AUBCJKFUIZLFUIZJKLFUIZFUIZACDUJUKZUUGABC
[encoded data, 4160 characters]
          AVUGUUOSVHAUUHBUQUUOUUMVHUWTWRXTUUE $.

        psrdi.a $e |- .+ = ( +g ` S ) $.
        $( Distributive law for the ring of power series (left-distributivity).
           (Contributed by Mario Carneiro, 7-Jan-2015.) $)
        psrdi $p |- ( ph ->
          ( X .X. ( Y .+ Z ) ) = ( ( X .X. Y ) .+ ( X .X. Z ) ) ) $=
          ( vk vx vy cv cle cofr wbr crab cfv cmin cof co cmpt cgsu cplusg wcel
          cmulr wa wceq eqid psradd fveq1d ad2antrr ssrab2 simplr simpr syl3anc
          psrbagconcl sseldi cvv cbs wf psrelbas ffnd ccnv cn cima cfn cn0 cmap
          rabex2 a1i inidm eqidd ofval mpdan eqtrd oveq2d crg ffvelrnd syl13anc
          ovex ringdi mpteq2dva psrbaglefi ringcl offval2 eqtr4d adantr ringcmn
          sylan ccmn syl gsummptfidmadd2 cgrp ringgrp psraddcl psrmulfval ovexd
          psrmulcl 3eqtr4d ) AUDCEUEUFUGUDUGZUHUIUJZUFCUKZUEUGZKULZXOXRUMUNUOZL
          MDUOZULZEUTULZUOZUPZUQUOZUPUDCEUEXQXSXTLULZYCUOZUPZUQUOZEUEXQXSXTMULZ
          YCUOZUPZUQUOZEURULZUOZUPZKYAGUOKLGUOZKMGUOZDUOZAUDCYFYPAXOCUSZVAZYFEY
          IYMYOUNZUOZUQUOYPUUBYEUUDEUQUUBYEUEXQYHYLYOUOZUPUUDUUBUEXQYDUUEUUBXRX
          QUSZVAZYDXSYGYKYOUOZYCUOZUUEUUGYBUUHXSYCUUGYBXTLMUUCUOZULZUUHAYBUUKVB
          UUAUUFAXTYAUUJABYODEFILMNSYOVCZUCUAUBVDVEVFUUGXTCUSZUUKUUHVBUUGXQCXTX
          PUFCVGZUUGIJUSZUUAUUFXTXQUSAUUOUUAUUFOVFAUUAUUFVHUUBUUFVIZUFCXQHXOIJX
          RQXQVCVKVJVLZUUGCCYGYKYOCLMVMVMXTUUGCEVNULZLACUURLVOUUAUUFABCEFHIUURL
          NUURVCZQSUAVPVFZVQUUGCUURMACUURMVOUUAUUFABCEFHIUURMNUUSQSUBVPVFZVQCVM
          USZUUGHUGVRVSVTWAUSHWBIWCUOCQWBIWCWOWDZWEZUVDCWFUUGUUMVAZYGWGUVEYKWGW
          HWIWJWKUUGEWLUSZXSUURUSZYGUURUSZYKUURUSZUUIUUEVBAUVFUUAUUFPVFZUUGCUUR
          XRKACUURKVOUUAUUFABCEFHIUURKNUUSQSTVPVFUUGXQCXRUUNUUPVLWMZUUGCUURXTLU
          UTUUQWMZUUGCUURXTMUVAUUQWMZUURYOEYCXSYGYKUUSUULYCVCZWPWNWJWQUUBUEXQYH
          YLYOYIYMWAUURUURAUUOUUAXQWAUSOUFCHXOIJQWRXDZUUGUVFUVGUVHYHUURUSUVJUVK
          UVLUUREYCXSYGUUSUVNWSVJZUUGUVFUVGUVIYLUURUSUVJUVKUVMUUREYCXSYKUUSUVNW
          SVJZUUBYIWGUUBYMWGWTXAWKUUBUEXQUURYHYLYOYIEYMUUSUULUUBUVFEXEUSAUVFUUA
          PXBEXCXFUVOUVPUVQYIVCYMVCXGWJWQAUEUFBCEFGYCHUDKYAINSUVNRQTABDEFILMNSU
          CAUVFEXHUSPEXIXFUAUBXJXKAYTYRYSUUCUOYQABYODEFIYRYSNSUULUCABEFGIKLNSRP
          TUAXMABEFGIKMNSRPTUBXMVDAUDCYJYNYOYRYSVMVMVMUVBAUVCWEUUBEYIUQXLUUBEYM
          UQXLAUEUFBCEFGYCHUDKLINSUVNRQTUAXKAUEUFBCEFGYCHUDKMINSUVNRQTUBXKWTWJX
          N $.

        $( Distributive law for the ring of power series
           (right-distributivity).  (Contributed by Mario Carneiro,
           7-Jan-2015.) $)
        psrdir $p |- ( ph ->
          ( ( X .+ Y ) .X. Z ) = ( ( X .X. Z ) .+ ( Y .X. Z ) ) ) $=
          ( vk vx vy cv cle cofr wbr crab co cfv cmin cof cmpt cgsu cplusg wcel
          cmulr wa wceq eqid psradd fveq1d ad2antrr ssrab2 simpr sseldi cvv cbs
          wf psrelbas ffnd ccnv cima cfn cn0 cmap ovex rabex2 inidm eqidd ofval
          cn a1i mpdan eqtrd oveq1d ffvelrnd simplr psrbagconcl syl3anc ringdir
          syl13anc mpteq2dva psrbaglefi sylan ringcl offval2 eqtr4d oveq2d ccmn
          crg adantr ringcmn syl gsummptfidmadd2 cgrp ringgrp psraddcl psrmulcl
          psrmulfval ovexd 3eqtr4d ) AUDCEUEUFUGUDUGZUHUIUJZUFCUKZUEUGZKLDULZUM
          ZXPXSUNUOULZMUMZEUTUMZULZUPZUQULZUPUDCEUEXRXSKUMZYCYDULZUPZUQULZEUEXR
          XSLUMZYCYDULZUPZUQULZEURUMZULZUPZXTMGULKMGULZLMGULZDULZAUDCYGYQAXPCUS
          ZVAZYGEYJYNYPUOZULZUQULYQUUCYFUUEEUQUUCYFUEXRYIYMYPULZUPUUEUUCUEXRYEU
          UFUUCXSXRUSZVAZYEYHYLYPULZYCYDULZUUFUUHYAUUIYCYDUUHYAXSKLUUDULZUMZUUI
          AYAUULVBUUBUUGAXSXTUUKABYPDEFIKLNSYPVCZUCTUAVDVEVFUUHXSCUSZUULUUIVBUU
          HXRCXSXQUFCVGZUUCUUGVHZVIZUUHCCYHYLYPCKLVJVJXSUUHCEVKUMZKACUURKVLUUBU
          UGABCEFHIUURKNUURVCZQSTVMVFZVNUUHCUURLACUURLVLUUBUUGABCEFHIUURLNUUSQS
          UAVMVFZVNCVJUSZUUHHUGVOWEVPVQUSHVRIVSULCQVRIVSVTWAZWFZUVDCWBUUHUUNVAZ
          YHWCUVEYLWCWDWGWHWIUUHEXDUSZYHUURUSZYLUURUSZYCUURUSZUUJUUFVBAUVFUUBUU
          GPVFZUUHCUURXSKUUTUUQWJZUUHCUURXSLUVAUUQWJZUUHCUURYBMACUURMVLUUBUUGAB
          CEFHIUURMNUUSQSUBVMVFUUHXRCYBUUOUUHIJUSZUUBUUGYBXRUSAUVMUUBUUGOVFAUUB
          UUGWKUUPUFCXRHXPIJXSQXRVCWLWMVIWJZUURYPEYDYHYLYCUUSUUMYDVCZWNWOWHWPUU
          CUEXRYIYMYPYJYNVQUURUURAUVMUUBXRVQUSOUFCHXPIJQWQWRZUUHUVFUVGUVIYIUURU
          SUVJUVKUVNUUREYDYHYCUUSUVOWSWMZUUHUVFUVHUVIYMUURUSUVJUVLUVNUUREYDYLYC
          UUSUVOWSWMZUUCYJWCUUCYNWCWTXAXBUUCUEXRUURYIYMYPYJEYNUUSUUMUUCUVFEXCUS
          AUVFUUBPXEEXFXGUVPUVQUVRYJVCYNVCXHWHWPAUEUFBCEFGYDHUDXTMINSUVORQABDEF
          IKLNSUCAUVFEXIUSPEXJXGTUAXKUBXMAUUAYSYTUUDULYRABYPDEFIYSYTNSUUMUCABEF
          GIKMNSRPTUBXLABEFGILMNSRPUAUBXLVDAUDCYKYOYPYSYTVJVJVJUVBAUVCWFUUCEYJU
          QXNUUCEYNUQXNAUEUFBCEFGYDHUDKMINSUVORQTUBXMAUEUFBCEFGYDHUDLMINSUVORQU
          AUBXMWTWHXO $.
      $}

      ${
        psrass23l.k $e |- K = ( Base ` R ) $.
        psrass23l.n $e |- .x. = ( .s ` S ) $.
        psrass23l.a $e |- ( ph -> A e. K ) $.
        $( Associative identity for the ring of power series.  Part of
           ~ psrass23 which does not require the scalar ring to be commutative.
           (Contributed by Mario Carneiro, 7-Jan-2015.)  (Revised by AV,
           14-Aug-2019.) $)
        psrass23l $p |- ( ph -> ( ( A .x. X ) .X. Y )
                                = ( A .x. ( X .X. Y ) ) ) $=
          ( vk vx vy cv cle cofr wbr crab cfv cmin cof cmulr cmpt cgsu wcel cbs
          co adantr syl6eleq ad2antrr ssrab2 simpr sseldi psrvscaval oveq1d crg
          wa eqid psrelbas ffvelrnd simplr psrbagconcl syl3anc ringass syl13anc
          wceq eqtrd mpteq2dva oveq2d cplusg cfn c0g psrbaglefi ringcl cvv wfun
          sylan w3a csupp wss cfsupp ccnv cn cima cn0 cmap ovex rabex2 mptrabex
          funmpt fvex 3pm3.2i a1i suppssdm dmmptss sstri suppssfifsupp syl12anc
          cdm gsummulc2 psrvscacl psrmulfval csn cxp psrmulcl psrvsca fconstmpt
          ovexd offval2 3eqtr4d ) AUFDEUGUHUIUFUIZUJUKULZUHDUMZUGUIZBMGVBZUNZYF
          YIUOUPVBZNUNZEUQUNZVBZURZUSVBZURUFDBEUGYHYIMUNZYMYNVBZURZUSVBZYNVBZUR
          ZYJNHVBBMNHVBZGVBZAUFDYQUUBAYFDUTZVLZYQEUGYHBYSYNVBZURZUSVBUUBUUGYPUU
          IEUSUUGUGYHYOUUHUUGYIYHUTZVLZYOBYRYNVBZYMYNVBZUUHUUKYKUULYMYNUUKCDEFG
          YNIMJEVAUNZBYIOUDUUNVMZTYNVMZRUUGBUUNUTZUUJUUGBKUUNABKUTUUFUEVCZUCVDZ
          VCZAMCUTUUFUUJUAVEZUUKYHDYIYGUHDVFZUUGUUJVGZVHZVIVJUUKEVKUTZUUQYRUUNU
          TZYMUUNUTZUUMUUHWAAUVEUUFUUJQVEZUUTUUKDUUNYIMUUKCDEFIJUUNMOUUORTUVAVN
          UVDVOZUUKDUUNYLNUUKCDEFIJUUNNOUUORTANCUTUUFUUJUBVEVNUUKYHDYLUVBUUKJLU
          TZUUFUUJYLYHUTAUVJUUFUUJPVEAUUFUUJVPUVCUHDYHIYFJLYIRYHVMVQVRVHVOZUUNE
          YNBYRYMUUOUUPVSVTWBWCWDUUGYHUUNEWEUNZEYNUGWFYSBEWGUNZUUOUVMVMUVLVMUUP
          AUVEUUFQVCAUVJUUFYHWFUTZPUHDIYFJLRWHWLZUUSUUKUVEUVFUVGYSUUNUTUVHUVIUV
          KUUNEYNYRYMUUOUUPWIVRUUGYTWJUTZYTWKZUVMWJUTZWMZUVNYTUVMWNVBZYHWOZYTUV
          MWPULUVSUUGUVPUVQUVRYGUGUHDYSIUIWQWRWSWFUTIWTJXAVBDRWTJXAXBXCZXDUGYHY
          SXEEWGXFXGXHUVOUWAUUGUVTYTXNYHYTUVMXIUGYHYSYTYTVMXJXKXHYHYTWJWJUVMXLX
          MXOWBWCAUGUHCDEFHYNIUFYJNJOTUUPSRACEFGMJKBOUDUCTQUEUAXPUBXQAUUEDBXRXS
          ZUUDYNUPVBUUCACDEFGYNIUUDJKBOUDUCTUUPRUEACEFHJMNOTSQUAUBXTYAAUFDBUUAY
          NUWCUUDWJKWJDWJUTAUWBXHUURUUGEYTUSYCUWCUFDBURWAAUFDBYBXHAUGUHCDEFHYNI
          UFMNJOTUUPSRUAUBXQYDWBYE $.
      $}

      psrcom.c $e |- ( ph -> R e. CRing ) $.
      $( Commutative law for the ring of power series.  (Contributed by Mario
         Carneiro, 7-Jan-2015.) $)
      psrcom $p |- ( ph -> ( X .X. Y ) = ( Y .X. X ) ) $=
        ( vx vk vg vj vz cv cle cofr wbr crab cfv cmin cof cmulr cmpt cgsu wcel
        co wa ccom cbs cfn c0g eqid ccmn crg ringcmn adantr psrbaglefi ad2antrr
        syl sylan wf psrelbas simpr breq1 elrab sylib simpld cn0 simplr psrbagf
        ffvelrnd syl2anc simprd psrbagcon syl13anc syl3anc fmptd cvv wfun csupp
        ringcl wss cfsupp ccnv cn cima cmap ovex rabex2 a1i rabexg mptexg fvexd
        funmpt cdm suppssdm dmmptss suppssfifsupp syl32anc psrbagconf1o gsumf1o
        sstri wf1o psrbagconcl eqidd wceq fveq2 fveq2d oveq12d fmptco ffvelrnda
        oveq2 nn0cn nncan syl2an mpteq2dva feqmptd offval2 3eqtr4d ccrg crngcom
        cc oveq2d eqtrd psrmulfval ) AUACDUBUCUFZUAUFZUGUHZUIZUCCUJZUBUFZJUKZYS
        UUCULUMZURZKUKZDUNUKZURZUOZUPURZUOUACDUDUUBUDUFZKUKZYSUULUUEURZJUKZUUHU
        RZUOZUPURZUOJKFURKJFURAUACUUKUURAYSCUQZUSZUUKDUUJUDUUBUUNUOZUTZUPURUURU
        UTUUBDVAUKZUUBUUJDUVAVBDVCUKZUVCVDZUVDVDADVEUQZUUSADVFUQZUVFNDVGVKVHAHI
        UQZUUSUUBVBUQZMUCCGYSHIOVIVLZUUTUBUUBUUIUVCUUJUUTUUCUUBUQZUSZUVGUUDUVCU
        QUUGUVCUQUUIUVCUQAUVGUUSUVKNVJUVLCUVCUUCJACUVCJVMZUUSUVKABCDEGHUVCJLUVE
        OQRVNZVJUVLUUCCUQZUUCYSYTUIZUVLUVKUVOUVPUSUUTUVKVOUUAUVPUCUUCCYRUUCYSYT
        VPVQVRZVSZWCUVLCUVCUUFKACUVCKVMZUUSUVKABCDEGHUVCKLUVEOQSVNZVJUVLUUFCUQZ
        UUFYSYTUIZUVLUVHUUSHVTUUCVMZUVPUWAUWBUSAUVHUUSUVKMVJZAUUSUVKWAUVLUVHUVO
        UWCUWDUVRCGUUCHIOWBWDUVLUVOUVPUVQWECGYSUUCHIOWFWGVSWCUVCDUUHUUDUUGUVEUU
        HVDZWMWHUUJVDZWIUUTUUJWJUQZUUJWKZUVDWJUQUVIUUJUVDWLURZUUBWNZUUJUVDWOUIU
        UTUUBWJUQZUWGUUTCWJUQZUWKUWLUUTGUFWPWQWRVBUQGVTHWSURCOVTHWSWTXAXBUUAUCC
        WJXCVKUBUUBUUIWJXDVKUWHUUTUBUUBUUIXFXBUUTDVCXEUVJUWJUUTUWIUUJXGUUBUUJUV
        DXHUBUUBUUIUUJUWFXIXNXBUUBUUJWJWJUVDXJXKAUVHUUSUUBUUBUVAXOMUDUCCUUBGYSH
        IOUUBVDZXLVLXMUUTUVBUUQDUPUUTUVBUDUUBUUOYSUUNUUEURZKUKZUUHURZUOUUQUUTUD
        UBUUBUUBUUNUUIUWPUVAUUJUUTUULUUBUQZUSZUVHUUSUWQUUNUUBUQAUVHUUSUWQMVJZAU
        USUWQWAZUUTUWQVOZUCCUUBGYSHIUULOUWMXPWHUUTUVAXQUUTUUJXQUUCUUNXRZUUDUUOU
        UGUWOUUHUUCUUNJXSUXBUUFUWNKUUCUUNYSUUEYDXTYAYBUUTUDUUBUWPUUPUWRUWPUUOUU
        MUUHURZUUPUWRUWOUUMUUOUUHUWRUWNUULKUWRUEHUEUFZYSUKZUXEUXDUULUKZULURZULU
        RZUOUEHUXFUOUWNUULUWRUEHUXHUXFUWRUXDHUQUSZUXEVTUQZUXFVTUQZUXHUXFXRZUWRH
        VTUXDYSUUTHVTYSVMZUWQAUVHUUSUXMMCGYSHIOWBVLVHZYCZUWRHVTUXDUULUWRUVHUULC
        UQZHVTUULVMZUWSUWRUXPUULYSYTUIZUWRUWQUXPUXRUSUXAUUAUXRUCUULCYRUULYSYTVP
        VQVRZVSZCGUULHIOWBWDZYCZUXJUXEYNUQUXFYNUQUXLUXKUXEYEUXFYEUXEUXFYFYGWDYH
        UWRUEHUXEUXGULYSUUNIVTWJUWSUXOUXGWJUQUXIUXEUXFULWTXBUWRUEHVTYSUXNYIZUWR
        UEHUXEUXFULYSUULIVTVTUWSUXOUYBUYCUWRUEHVTUULUYAYIZYJYJUYDYKXTYOUWRDYLUQ
        ZUUOUVCUQUUMUVCUQUXCUUPXRAUYEUUSUWQTVJUWRCUVCUUNJAUVMUUSUWQUVNVJUWRUUNC
        UQZUUNYSYTUIZUWRUVHUUSUXQUXRUYFUYGUSUWSUWTUYAUWRUXPUXRUXSWECGYSUULHIOWF
        WGVSWCUWRCUVCUULKAUVSUUSUWQUVTVJUXTWCUVCDUUHUUOUUMUVEUWEYMWHYPYHYPYOYPY
        HAUBUCBCDEFUUHGUAJKHLQUWEPORSYQAUDUCBCDEFUUHGUAKJHLQUWEPOSRYQYK $.

      psrass.k $e |- K = ( Base ` R ) $.
      psrass.n $e |- .x. = ( .s ` S ) $.
      psrass.a $e |- ( ph -> A e. K ) $.
      $( Associative identities for the ring of power series.  (Contributed by
         Mario Carneiro, 7-Jan-2015.)  (Proof shortened by AV, 25-Nov-2019.) $)
      psrass23 $p |- ( ph -> ( ( ( A .x. X ) .X. Y ) = ( A .x. ( X .X. Y ) ) /\
        ( X .X. ( A .x. Y ) ) = ( A .x. ( X .X. Y ) ) ) ) $=
        ( vk vx vy vu vv vw co wceq psrass23l cv cle cofr wbr crab cfv cmin cof
        cmulr cmpt cgsu wcel wa cbs eqid adantr syl6eleq ad2antrr ssrab2 simplr
        simpr psrbagconcl sseldi psrvscaval oveq2d psrelbas ffvelrnd ccrg 3expb
        syl3anc crngcom sylan crg w3a ringass eqtrd mpteq2dva cplusg psrbaglefi
        caov12d cfn c0g ringcl cvv wfun csupp wss cfsupp ccnv cn cima cmap ovex
        cn0 rabex2 mptrabex fvex 3pm3.2i a1i cdm suppssdm dmmptss suppssfifsupp
        funmpt syl12anc gsummulc2 psrvscacl psrmulfval csn cxp psrmulcl psrvsca
        sstri fconstmpt offval2 3eqtr4d jca ) ABMGUMNHUMBMNHUMZGUMZUNMBNGUMZHUM
        ZYNUNABCDEFGHIJKLMNOPQRSTUAUBUDUEUFUOAUGDEUHUIUPUGUPZUQURUSZUIDUTZUHUPZ
        MVAZYQYTVBVCUMZYOVAZEVDVAZUMZVEZVFUMZVEUGDBEUHYSUUAUUBNVAZUUDUMZVEZVFUM
        ZUUDUMZVEZYPYNAUGDUUGUULAYQDVGZVHZUUGEUHYSBUUIUUDUMZVEZVFUMUULUUOUUFUUQ
        EVFUUOUHYSUUEUUPUUOYTYSVGZVHZUUEUUABUUHUUDUMZUUDUMUUPUUSUUCUUTUUAUUDUUS
        CDEFGUUDINJEVIVAZBUUBOUEUVAVJZTUUDVJZRUUOBUVAVGUURUUOBKUVAABKVGUUNUFVKZ
        UDVLZVKZANCVGUUNUURUBVMZUUSYSDUUBYRUIDVNZUUSJLVGZUUNUURUUBYSVGAUVIUUNUU
        RPVMAUUNUURVOUUOUURVPZUIDYSIYQJLYTRYSVJVQWEVRZVSVTUUSUJUKULUUABUUHUVAUU
        DUUSDUVAYTMUUSCDEFIJUVAMOUVBRTAMCVGUUNUURUAVMWAUUSYSDYTUVHUVJVRWBZUVFUU
        SDUVAUUBNUUSCDEFIJUVANOUVBRTUVGWAUVKWBZUUSEWCVGZUJUPZUVAVGZUKUPZUVAVGZV
        HUVOUVQUUDUMZUVQUVOUUDUMUNZAUVNUUNUURUCVMUVNUVPUVRUVTUVAEUUDUVOUVQUVBUV
        CWFWDWGUUSEWHVGZUVPUVRULUPZUVAVGWIUVSUWBUUDUMUVOUVQUWBUUDUMUUDUMUNAUWAU
        UNUURQVMZUVAEUUDUVOUVQUWBUVBUVCWJWGWOWKWLVTUUOYSUVAEWMVAZEUUDUHWPUUIBEW
        QVAZUVBUWEVJUWDVJUVCAUWAUUNQVKAUVIUUNYSWPVGZPUIDIYQJLRWNWGZUVEUUSUWAUUA
        UVAVGUUHUVAVGUUIUVAVGUWCUVLUVMUVAEUUDUUAUUHUVBUVCWRWEUUOUUJWSVGZUUJWTZU
        WEWSVGZWIZUWFUUJUWEXAUMZYSXBZUUJUWEXCUSUWKUUOUWHUWIUWJYRUHUIDUUIIUPXDXE
        XFWPVGIXIJXGUMDRXIJXGXHXJZXKUHYSUUIXSEWQXLXMXNUWGUWMUUOUWLUUJXOYSUUJUWE
        XPUHYSUUIUUJUUJVJXQYHXNYSUUJWSWSUWEXRXTYAWKWLAUHUICDEFHUUDIUGMYOJOTUVCS
        RUAACEFGNJKBOUEUDTQUFUBYBYCAYNDBYDYEZYMUUDVCUMUUMACDEFGUUDIYMJKBOUEUDTU
        VCRUFACEFHJMNOTSQUAUBYFYGAUGDBUUKUUDUWOYMWSKWSDWSVGAUWNXNUVDUUKWSVGUUOE
        UUJVFXHXNUWOUGDBVEUNAUGDBYIXNAUHUICDEFHUUDIUGMNJOTUVCSRUAUBYCYJWKYKYL
        $.
    $}

    $( The ring of power series is a ring.  (Contributed by Mario Carneiro,
       29-Dec-2014.) $)
    psrring $p |- ( ph -> S e. Ring ) $=
      ( vx vy vz vr vf cfv cv wcel eqidd w3a eqid adantr cplusg cmulr ccnv cima
      cbs cn cfn cn0 cmap co crab cc0 csn cxp wceq cur c0g cif cmpt crg ringgrp
      cgrp psrgrp 3ad2ant1 simp2 simp3 psrmulcl wa simpr1 simpr2 simpr3 psrass1
      syl psrdi psrdir psr1cl simpr psrlidm psrridm isringd ) AIJKCUENZCUANZCCU
      BNZLMOUCUFUDUGPMUHDUIUJUKZLODULUMUNUOBUPNZBUQNZURUSZAWAQAWBQAWCQABCDEFGAB
      UTPZBVBPHBVAVMVCAIOZWAPZJOZWAPZRWABCWCDWIWKFWASZWCSZAWJWHWLHVDAWJWLVEAWJW
      LVFVGAWJWLKOZWAPZRZVHZWAWDBCWCMDEWIWKWOFADEPZWQGTZAWHWQHTZWDSZWNWMAWJWLWP
      VIZAWJWLWPVJZAWJWLWPVKZVLWRWAWDWBBCWCMDEWIWKWOFWTXAXBWNWMXCXDXEWBSZVNWRWA
      WDWBBCWCMDEWIWKWOFWTXAXBWNWMXCXDXEXFVOALWAWDBCWGWEMDEWFFGHXBWFSZWESZWGSZW
      MVPAWJVHZLWAWDBCWCWGWEMDEWIWFFAWSWJGTZAWHWJHTZXBXGXHXIWMWNAWJVQZVRXJLWAWD
      BCWCWGWEMDEWIWFFXKXLXBXGXHXIWMWNXMVSVT $.

    psr1.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    psr1.z $e |- .0. = ( 0g ` R ) $.
    psr1.o $e |- .1. = ( 1r ` R ) $.
    psr1.u $e |- U = ( 1r ` S ) $.
    $( The identity element of the ring of power series.  (Contributed by Mario
       Carneiro, 8-Jan-2015.) $)
    psr1 $p |- ( ph ->
      U = ( x e. D |-> if ( x = ( I X. { 0 } ) , .1. , .0. ) ) ) $=
      ( vy wcel cv cc0 csn cxp wceq cif cmpt cbs cmulr co wa wral psr1cl adantr
      cfv eqid crg simpr psrlidm psrridm ralrimiva wb psrring isringid mpbi2and
      jca syl ) ABCBUAIUBUCUDUEGKUFUGZEUHUOZTZVHSUAZEUIUOZUJVKUEZVKVHVLUJVKUEZU
      KZSVIULZFVHUEZABVICDEVHGHIJKLMNOPQVHUPZVIUPZUMAVOSVIAVKVITZUKZVMVNWABVICD
      EVLVHGHIJVKKLAIJTVTMUNZADUQTVTNUNZOPQVRVSVLUPZAVTURZUSWABVICDEVLVHGHIJVKK
      LWBWCOPQVRVSWDWEUTVFVAAEUQTVJVPUKVQVBADEIJLMNVCSVIEVLFVHVSWDRVDVGVE $.
  $}

  ${
    $d f I $.  $d x y z ph $.  $d f x y z R $.  $d x y z S $.
    psrcnrg.s $e |- S = ( I mPwSer R ) $.
    psrcnrg.i $e |- ( ph -> I e. V ) $.
    psrcnrg.r $e |- ( ph -> R e. CRing ) $.
    $( The ring of power series is commutative ring.  (Contributed by Mario
       Carneiro, 10-Jan-2015.) $)
    psrcrng $p |- ( ph -> S e. CRing ) $=
      ( vx vy vf crg wcel cfv ccrg syl cbs eqid cv 3ad2ant1 cmgp crngring cmulr
      ccmn psrring wceq mgpbas a1i cplusg mgpplusg cmnd ringmgp w3a ccnv cn cfn
      cima cn0 cmap co crab simp2 simp3 psrcom iscmnd iscrng sylanbrc ) ACLMZCU
      ANZUDMCOMABCDEFGABOMZBLMZHBUBPZUEZAIJCQNZCUCNZVIVNVIQNUFAVNCVIVIRZVNRZUGU
      HVOVIUINUFACVOVIVPVORZUJUHAVHVIUKMVMCVIVPULPAISZVNMZJSZVNMZUMVNKSUNUOUQUP
      MKURDUSUTVAZBCVOKDEVSWAFAVTDEMWBGTAVTVKWBVLTWCRVRVQAVTWBVBAVTWBVCAVTVJWBH
      TVDVECVIVPVFVG $.

    $( The ring of power series is an associative algebra.  (Contributed by
       Mario Carneiro, 29-Dec-2014.) $)
    psrassa $p |- ( ph -> S e. AssAlg ) $=
      ( vy vz vx vf cbs cfv eqidd wcel cv co adantr eqid cvsca cmulr psrsca crg
      ccrg crngring syl psrlmod psrring w3a wa wceq ccnv cima cfn cn0 cmap crab
      cn simpr2 simpr3 simpr1 psrass23 simpld simprd isassad ) AIJBMNZCUANZCUBN
      ZBCMNZCKAVJOABCDEUEFGHUCAVGOAVHOAVIOABCDEFGABUEPZBUDPZHBUFUGZUHABCDEFGVMU
      IHAKQZVGPZIQZVJPZJQZVJPZUJZUKZVNVPVHRVRVIRVNVPVRVIRVHRZULZVPVNVRVHRVIRWBU
      LZWAVNVJLQUMUSUNUOPLUPDUQRURZBCVHVILDVGEVPVRFADEPVTGSAVLVTVMSWETVITVJTAVO
      VQVSUTAVOVQVSVAAVKVTHSVGTVHTAVOVQVSVBVCZVDWAWCWDWFVEVF $.
  $}

  ${
    $d k x B $.  $d k x H $.  $d k x ph $.  $d k x R $.  $d k x S $.  $d x T $.
    $d f k x y I $.  $d k x X $.  $d k x Y $.
    resspsr.s $e |- S = ( I mPwSer R ) $.
    resspsr.h $e |- H = ( R |`s T ) $.
    resspsr.u $e |- U = ( I mPwSer H ) $.
    resspsr.b $e |- B = ( Base ` U ) $.
    resspsr.p $e |- P = ( S |`s B ) $.
    resspsr.2 $e |- ( ph -> T e. ( SubRing ` R ) ) $.
    $( A restricted power series algebra has the same base set.  (Contributed
       by Mario Carneiro, 3-Jul-2015.) $)
    resspsrbas $p |- ( ph -> B = ( Base ` P ) ) $=
      ( vf cbs cfv cvv c0 wss wceq wcel wa cv ccnv cn cima cfn cn0 cmap co crab
      fvex csubrg subrgbas syl eqid subrgss eqsstr3d adantr mapss sylancr simpr
      psrbas 3sstr4d wn cmps reldmpsr ovprc1 syl5eq adantl fveq2d base0 3eqtr4g
      0ss syl6eqss pm2.61dan ressbas2 ) ABEQRZUAZBCQRUBAISUCZWAAWBUDZHQRZPUEUFU
      GUHUIUCPUJIUKULUMZUKULZDQRZWEUKULZBVTWCWGSUCWDWGUAZWFWHUADQUNAWIWBAWDFWGA
      FDUORUCZFWDUBOFDHKUPUQAWJFWGUAOFWGDWGURZUSUQUTVAWDWGWESVBVCWCBWEHGPIWDSLW
      DURWEURZMAWBVDZVEWCVTWEDEPIWGSJWKWLVTURZWMVEVFAWBVGZUDZBTVTWPGQRTQRBTWPGT
      QWOGTUBAWOGIHVHULTLIHVHVIVJVKVLVMMVNVOVTVPVQVRBVTCENWNVSUQ $.

    $( A restricted power series algebra has the same addition operation.
       (Contributed by Mario Carneiro, 3-Jul-2015.) $)
    resspsradd $p |- ( ( ph /\ ( X e. B /\ Y e. B ) ) ->
        ( X ( +g ` U ) Y ) = ( X ( +g ` P ) Y ) ) $=
      ( wcel cfv cvv vf wa cplusg co cof eqid simprl simprr psradd cv ccnv cima
      cbs cn cfn cn0 cmap crab wss fvex csubrg wceq subrgbas syl eqsstr3d mapss
      subrgss sylancr adantr cmps reldmpsr elbasov simpld psrbas 3sstr4d sseldd
      ad2antrl ressplusg ofeq oveqd eqtrd eqeltri mp1i 3eqtr2d ) AJBRZKBRZUBZUB
      ZJKGUCSZUDJKHUCSZUEZUDZJKEUCSZUDZJKCUCSZUDWHBWJWIHGIJKNOWJUFWIUFAWEWFUGZA
      WEWFUHZUIWHWNJKDUCSZUEZUDWLWHEUMSZWRWMDEIJKLWTUFZWRUFZWMUFZWHBWTJWHHUMSZU
      AUJUKUNULUORUAUPIUQUDURZUQUDZDUMSZXEUQUDZBWTAXFXHUSZWGAXGTRXDXGUSXIDUMUTA
      XDFXGAFDVASZRZFXDVBQFDHMVCVDAXKFXGUSQFXGDXGUFZVGVDVEXDXGXETVFVHVIWHBXEHGU
      AIXDTNXDUFXEUFZOWHITRZHTRZWEXNXOUBAWFJBGVJIHVKNOVLVQVMZVNWHWTXEDEUAIXGTLX
      LXMXAXPVNVOZWPVPWHBWTKXQWQVPUIWHWSWKJKWHWRWJVBZWSWKVBAXRWGAXKXRQFWRDHXJMX
      BVRVDVIWRWJVSVDVTWAWHWMWOJKBTRWMWOVBWHBGUMSTOGUMUTWBBWMECTPXCVRWCVTWD $.

    $( A restricted power series algebra has the same multiplication operation.
       (Contributed by Mario Carneiro, 3-Jul-2015.) $)
    resspsrmul $p |- ( ( ph /\ ( X e. B /\ Y e. B ) ) ->
        ( X ( .r ` U ) Y ) = ( X ( .r ` P ) Y ) ) $=
      ( wcel cfv co vk vf vx vy wa cmulr cv ccnv cn cima cfn cn0 cmap crab cofr
      cle wbr cmin cof cmpt cgsu cvv cmps reldmpsr elbasov ad2antrl simpld eqid
      psrbaglefi sylan csubmnd csubrg subrgsubg syl subgsubm ad2antrr ad3antrrr
      csubg cbs wf simprl psrelbas adantr elrabi ffvelrn wceq subrgbas eleqtrrd
      syl2an simprr ssrab2 simpr psrbagconcl syl3anc ffvelrnd subrgmcl gsumsubm
      simplr sseldi fmptd ressmulr oveqd mpteq2dva oveq2d fvex subrgss eqsstr3d
      eqtrd wss mapss sylancr psrbas 3sstr4d sseldd psrmulfval 3eqtr4rd eqeltri
      mp1i ) AJBRZKBRZUEZUEZJKGUFSZTZJKEUFSZTZJKCUFSZTYBUAUBUGUHUIUJUKRUBULIUMT
      UNZDUCUDUGUAUGZUPUOUQZUDYHUNZUCUGZJSZYIYLURUSTZKSZDUFSZTZUTZVATZUTUAYHHUC
      YKYMYOHUFSZTZUTZVATZUTYFYDYBUAYHYSUUCYBYIYHRZUEZYSHYRVATUUCUUEYKFYRDHUKYB
      IVBRZUUDYKUKRYBUUFHVBRZXSUUFUUGUEAXTJBGVCIHVDNOVEVFVGZUDYHUBYIIVBYHVHZVIV
      JAFDVKSRZYAUUDAFDVRSRZUUJAFDVLSZRZUUKQFDVMVNFDVOVNVPUUEUCYKYQFYRUUEYLYKRZ
      UEZUUMYMFRYOFRYQFRAUUMYAUUDUUNQVQZUUOYMHVSSZFUUEYHUUQJVTZYLYHRYMUUQRUUNYB
      UURUUDYBBYHHGUBIUUQJNUUQVHZUUIOAXSXTWAZWBWCYJUDYLYHWDYHUUQYLJWEWIUUOUUMFU
      UQWFZUUPFDHMWGZVNZWHUUOYOUUQFUUOYHUUQYNKYBYHUUQKVTUUDUUNYBBYHHGUBIUUQKNUU
      SUUIOAXSXTWJZWBVPUUOYKYHYNYJUDYHWKUUOUUFUUDUUNYNYKRYBUUFUUDUUNUUHVPYBUUDU
      UNWRUUEUUNWLUDYHYKUBYIIVBYLUUIYKVHWMWNWSWOUVCWHFDYPYMYOYPVHZWPWNYRVHWTMWQ
      UUEYRUUBHVAUUEUCYKYQUUAUUOYPYTYMYOAYPYTWFZYAUUDUUNAUUMUVFQFDHYPUULMUVEXAV
      NVQXBXCXDXHXCYBUCUDEVSSZYHDEYEYPUBUAJKILUVGVHZUVEYEVHZUUIYBBUVGJYBUUQYHUM
      TZDVSSZYHUMTZBUVGAUVJUVLXIZYAAUVKVBRUUQUVKXIUVMDVSXEAUUQFUVKAUUMUVAQUVBVN
      AUUMFUVKXIQFUVKDUVKVHZXFVNXGUUQUVKYHVBXJXKWCYBBYHHGUBIUUQVBNUUSUUIOUUHXLY
      BUVGYHDEUBIUVKVBLUVNUUIUVHUUHXLXMZUUTXNYBBUVGKUVOUVDXNXOYBUCUDBYHHGYCYTUB
      UAJKINOYTVHYCVHUUIUUTUVDXOXPYBYEYGJKBVBRYEYGWFYBBGVSSVBOGVSXEXQBECYEVBPUV
      IXAXRXBXH $.

    $( A restricted power series algebra has the same scalar multiplication
       operation.  (Contributed by Mario Carneiro, 3-Jul-2015.) $)
    resspsrvsca $p |- ( ( ph /\ ( X e. T /\ Y e. B ) ) ->
        ( X ( .s ` U ) Y ) = ( X ( .s ` P ) Y ) ) $=
      ( cfv co eqid vf wcel wa cvsca cv ccnv cn cima cfn cn0 cmap csn cxp cmulr
      crab cof cbs simprl csubrg adantr subrgbas syl eleqtrd simprr psrvsca wss
      wceq subrgss resspsrbas ressbasss syl6eqss ressmulr ofeq 3syl oveqd eqtrd
      sseldd cvv fvex eqeltri ressvsca mp1i 3eqtr2d ) AJFUBZKBUBZUCZUCZJKGUDRZS
      UAUEUFUGUHUIUBUAUJIUKSUOZJULUMZKHUNRZUPZSZJKEUDRZSZJKCUDRZSWGBWIHGWHWKUAK
      IHUQRZJNWHTWQTOWKTWITZWGJFWQAWDWEURZWGFDUSRZUBZFWQVGAXAWFQUTZFDHMVAVBVCAW
      DWEVDZVEWGWOWJKDUNRZUPZSWMWGEUQRZWIDEWNXDUAKIDUQRZJLWNTZXGTZXFTZXDTZWRWGF
      XGJWGXAFXGVFXBFXGDXIVHVBWSVQWGBXFKABXFVFWFABCUQRXFABCDEFGHILMNOPQVIBXFCEP
      XJVJVKUTXCVQVEWGXEWLWJKWGXAXDWKVGXEWLVGXBFDHXDWTMXKVLXDWKVMVNVOVPWGWNWPJK
      BVRUBWNWPVGWGBGUQRVROGUQVSVTBWNECVRPXHWAWBVOWC $.
  $}

  ${
    $d x y B $.  $d x H $.  $d x y S $.  $d x y T $.  $d x y U $.  $d x y V $.
    $d f x y I $.  $d f x y R $.
    subrgpsr.s $e |- S = ( I mPwSer R ) $.
    subrgpsr.h $e |- H = ( R |`s T ) $.
    subrgpsr.u $e |- U = ( I mPwSer H ) $.
    subrgpsr.b $e |- B = ( Base ` U ) $.
    $( A subring of the base ring induces a subring of power series.
       (Contributed by Mario Carneiro, 3-Jul-2015.) $)
    subrgpsr $p |- ( ( I e. V /\ T e. ( SubRing ` R ) ) ->
        B e. ( SubRing ` S ) ) $=
      ( vx vf wcel cfv crg cbs adantl eqid vy csubrg wa cress co simpl subrgrcl
      wss cur psrring subrgring wceq a1i simpr resspsrbas resspsradd resspsrmul
      cv ringpropd mpbid jca ressbasss syl6eqss ccnv cima cfn cn0 cmap crab cc0
      cn wf csn cxp c0g cif subrg1cl csubg subrgsubg subg0cl syl ifcld subrgbas
      cmpt eleqtrd adantr fmptd psr1 feq1d mpbird fvex ovex rabex sylibr psrbas
      elmap eleqtrrd issubrg sylanbrc ) GHOZDBUBPOZUCZCQOZCAUDUEZQOZUCACRPZUHZC
      UIPZAOZUCACUBPOXBXCXEXBBCGHIWTXAUFZXABQOWTDBUGSZUJXBEQOXEXBFEGHKXJXAFQOWT
      DBFJUKSUJXBMUAAEXDAERPULXBLUMXBAXDBCDEFGIJKLXDTZWTXAUNZUOZXBAXDBCDEFGMURZ
      UAURZIJKLXLXMUPXBAXDBCDEFGXOXPIJKLXLXMUQUSUTVAXBXGXIXBAXDRPXFXNAXFXDCXLXF
      TZVBVCXBXHFRPZNURVDVKVEVFOZNVGGVHUEZVIZVHUEZAXBYAXRXHVLZXHYBOXBYCYAXRMYAX
      OGVJVMVNULZBUIPZBVOPZVPZWDZVLXBMYAYGXRYHXBYGXROXOYAOXBYGDXRXAYGDOWTXAYDYE
      YFDDBYEYETZVQXADBVRPOYFDODBVSDBYFYFTZVTWAWBSXADXRULWTDBFJWCSWEWFYHTWGXBYA
      XRXHYHXBMYABCXHYENGHYFIXJXKYATZYJYIXHTZWHWIWJXRYAXHFRWKXSNXTVGGVHWLWMWPWN
      XBAYAFENGXRHKXRTYKLXJWOWQVAAXFCXHXQYLWRWS $.
  $}

  ${
    $d f i r x .0. $.  $d f i r x .1. $.  $d f i r x y D $.  $d f F $.
    $d y W $.  $d f h i r x y I $.  $d f i r x R $.  $d f h x y X $.
    mvrfval.v $e |- V = ( I mVar R ) $.
    mvrfval.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
    mvrfval.z $e |- .0. = ( 0g ` R ) $.
    mvrfval.o $e |- .1. = ( 1r ` R ) $.
    mvrfval.i $e |- ( ph -> I e. W ) $.
    mvrfval.r $e |- ( ph -> R e. Y ) $.
    $( Value of the generating elements of the power series structure.
       (Contributed by Mario Carneiro, 7-Jan-2015.) $)
    mvrfval $p |- ( ph -> V = ( x e. I |-> ( f e. D |->
        if ( f = ( y e. I |-> if ( y = x , 1 , 0 ) ) , .1. , .0. ) ) ) ) $=
      ( wceq vi vr cmvr co cv c1 cc0 cif cmpt cvv wcel elex mptexg ccnv cn cima
      syl cfn cn0 cmap crab cur cfv wa simpl oveq2d rabeq syl6eqr mpteq1 adantr
      eqeq2d simpr fveq2d ifbieq12d mpteq12dv df-mvr ovmpt2ga syl3anc syl5eq
      c0g ) AJIEUCUDZBIGDGUEZCICUEBUETUFUGUHZUIZTZFMUHZUIZUIZNAIUJUKZEUJUKZWHUJ
      UKZWAWHTAIKUKZWIRIKULUQAELUKWJSELULUQAWLWKRBIWGKUMUQUAUBIEUJUJBUAUEZGHUEU
      NUOUPURUKZHUSWMUTUDZVAZWBCWMWCUIZTZUBUEZVBVCZWSVTVCZUHZUIZUIWHUCUJWMITZWS
      ETZVDZBWMXCIWGXDXEVEZXFGWPXBDWFXFWPWNHUSIUTUDZVAZDXFWOXHTWPXITXFWMIUSUTXG
      VFWNHWOXHVGUQOVHXFWRWEWTXAFMXFWQWDWBXDWQWDTXECWMIWCVIVJVKXFWTEVBVCFXFWSEV
      BXDXEVLZVMQVHXFXAEVTVCMXFWSEVTXJVMPVHVNVOVOBCGHUAUBVPVQVRVS $.

    mvrval.x $e |- ( ph -> X e. I ) $.
    $( Value of the generating elements of the power series structure.
       (Contributed by Mario Carneiro, 7-Jan-2015.) $)
    mvrval $p |- ( ph -> ( V ` X ) = ( f e. D |->
        if ( f = ( y e. I |-> if ( y = X , 1 , 0 ) ) , .1. , .0. ) ) ) $=
      ( vx cfv cv wceq c1 cc0 cif cmpt mvrfval fveq1d wcel eqeq2 ifbid mpteq2dv
      eqeq2d eqid ccnv cn cima cfn cn0 cmap ovex rabex2 mptex fvmpt syl eqtrd
      co ) AKIUBKUAHFCFUCZBHBUCZUAUCZUDZUEUFUGZUHZUDZEMUGZUHZUHZUBZFCVJBHVKKUDZ
      UEUFUGZUHZUDZEMUGZUHZAKIVSAUABCDEFGHIJLMNOPQRSUIUJAKHUKVTWFUDTUAKVRWFHVSV
      LKUDZFCVQWEWGVPWDEMWGVOWCVJWGBHVNWBWGVMWAUEUFVLKVKULUMUNUOUMUNVSUPFCWEGUC
      UQURUSUTUKGVAHVBVICOVAHVBVCVDVEVFVGVH $.

    ${
      mvrval2.f $e |- ( ph -> F e. D ) $.
      $( Value of the generating elements of the power series structure.
         (Contributed by Mario Carneiro, 7-Jan-2015.) $)
      mvrval2 $p |- ( ph -> ( ( V ` X ) ` F ) =
          if ( F = ( y e. I |-> if ( y = X , 1 , 0 ) ) , .1. , .0. ) ) $=
        ( vf cfv cv wceq c1 cc0 cif cmpt mvrval fveq1d wcel eqeq1 ifbid cur cvv
        eqid fvex eqeltri c0g ifex fvmpt syl eqtrd ) AGKIUCZUCGUBCUBUDZBHBUDKUE
        UFUGUHUIZUEZEMUHZUIZUCZGVGUEZEMUHZAGVEVJABCDEUBFHIJKLMNOPQRSTUJUKAGCULV
        KVMUEUAUBGVIVMCVJVFGUEVHVLEMVFGVGUMUNVJUQVLEMEDUOUCUPQDUOURUSMDUTUCUPPD
        UTURUSVAVBVCVD $.
    $}

    $( The ` X i ` -th coefficient of the term ` X i ` is ` 1 ` .  (Contributed
       by Mario Carneiro, 7-Jan-2015.) $)
    mvrid $p |- ( ph -> ( ( V ` X ) ` ( y e. I |-> if ( y = X , 1 , 0 ) ) )
        = .1. ) $=
      ( c1 cv wceq cc0 cif cmpt cfv wcel cn0 snifpsrbag sylancl mvrval2 iftruei
      1nn0 eqid syl6eq ) ABGBUAJUBTUCUDUEZJHUFUFUPUPUBZELUDEABCDEFUPGHIJKLMNOPQ
      RSAGIUGTUHUGUPCUGQUMBCFGTIJNUIUJUKUQELUPUNULUO $.
  $}

  ${
    $d f h x y z I $.  $d f x y ph $.  $d f x R $.  $d x y V $.  $d y z W $.
    $d x B $.
    mvrf.s $e |- S = ( I mPwSer R ) $.
    mvrf.v $e |- V = ( I mVar R ) $.
    mvrf.b $e |- B = ( Base ` S ) $.
    mvrf.i $e |- ( ph -> I e. W ) $.
    mvrf.r $e |- ( ph -> R e. Ring ) $.
    $( The power series variable function is a function from the index set to
       elements of the power series structure representing ` X i ` for each
       ` i ` .  (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    mvrf $p |- ( ph -> V : I --> B ) $=
      ( vx vf vh vy wf cv wcel eqid ccnv cn cima cfn cn0 cmap crab wceq cc0 cif
      co c1 cmpt cur cfv c0g cbs crg ringidcl ring0cl ifcld ad2antrr fmptd fvex
      syl ovex rabex elmap sylibr psrbas adantr eleqtrrd mvrfval feq1d mpbird
      wa ) AEBFQEBMENORUAUBUCUDSZOUEEUFUKZUGZNRZPEPRMRZUHULUIUJUMUHZCUNUOZCUPUO
      ZUJZUMZUMZQAMEWFBWGAWAESZVPZWFCUQUOZVSUFUKZBWIVSWJWFQWFWKSWINVSWEWJWFAWEW
      JSWHVTVSSAWBWCWDWJACURSZWCWJSLWJCWCWJTZWCTZUSVEAWLWDWJSLWJCWDWMWDTZUTVEVA
      VBWFTVCWJVSWFCUQVDVQOVRUEEUFVFVGVHVIABWKUHWHABVSCDOEWJGHWMVSTZJKVJVKVLWGT
      VCAEBFWGAMPVSCWCNOEFGURWDIWPWOWNKLVMVNVO $.

    ${
      mvrf1.z $e |- .0. = ( 0g ` R ) $.
      mvrf1.o $e |- .1. = ( 1r ` R ) $.
      mvrf1.n $e |- ( ph -> .1. =/= .0. ) $.
      $( The power series variable function is injective if the base ring is
         nonzero.  (Contributed by Mario Carneiro, 29-Dec-2014.) $)
      mvrf1 $p |- ( ph -> V : I -1-1-> B ) $=
        ( vz c1 cc0 vx vy vh wf cv cfv wceq wi wral wf1 mvrf wcel wa wne adantr
        wn w3a cif cmpt simp2r fveq1d ccnv cn cima cfn cn0 cmap co crg 3ad2ant1
        crab eqid simp2ll mvrid simp2lr 1nn0 snifpsrbag sylancl mvrval2 3eqtr3d
        simp3 wb mpteqb 0nn0 keepel a1i iftrue eqeq1 ifbid eqeq12d rspcv syl5bi
        mprg syl ax-1ne0 necon3abid mpbii nsyl2 syl6 mtod eqtrd 3expia necon1ad
        iffalse mpd expr ralrimivva dff13 sylanbrc ) AFBGUDUAUEZGUFZUBUEZGUFZUG
        ZXJXLUGZUHZUBFUIUAFUIFBGUJABCDFGHJKLMNUKAXPUAUBFFAXJFULZXLFULZUMZXNXOAX
        SXNUMZUMZEIUNZXOAYBXTQUOYAXOEIAXTXOUPZEIUGAXTYCUQZERFRUEZXJUGZSTURZUSZR
        FYEXLUGZSTURZUSUGZEIURZIYDYHXKUFYHXMUFEYLYDYHXKXMAXSXNYCUTVAYDRUCUEVBVC
        VDVEULUCVFFVGVHVKZCEUCFGHXJVIIKYMVLZOPAXTFHULZYCMVJZAXTCVIULYCNVJZXQXRX
        NAYCVMZVNYDRYMCEUCYHFGHXLVIIKYNOPYPYQXQXRXNAYCVOYDYOSVFULYHYMULYPVPRYMU
        CFSHXJYNVQVRVSVTYDYKUPYLIUGYDYKXOAXTYCWAYDYKSXOSTURZUGZXOYDXQYKYTUHYRYK
        YGYJUGZRFUIZXQYTYGVFULZYKUUBWBRFRFYGYJVFWCUUCYEFULYFSTVFVPWDWEWFWMUUAYT
        RXJFYFYGSYJYSYFSTWGYFYIXOSTYEXJXLWHWIWJWKWLWNYTYSTUGZXOYTSTUNUUDUPWOYTU
        UDSTSYSTWHWPWQXOSTXDWRWSWTYKEIXDWNXAXBXCXEXFXGUAUBFBGXHXI $.
    $}

    mvrcl2.x $e |- ( ph -> X e. I ) $.
    $( A power series variable is an element of the base set.  (Contributed by
       Mario Carneiro, 29-Dec-2014.) $)
    mvrcl2 $p |- ( ph -> ( V ` X ) e. B ) $=
      ( mvrf ffvelrnd ) AEBHFABCDEFGIJKLMONP $.
  $}

  ${
    $d f B $.  $d f i r s I $.  $d f i r s R $.  $d i r s S $.  $d i r s U $.
    $d f X $.  $d f .0. $.
    $( The multivariate polynomial constructor is a proper binary operator.
       (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    reldmmpl $p |- Rel dom mPoly $=
      ( vi vr vs vf cvv cv cmps co c0g cfv cfsupp wbr cbs crab cress csb df-mpl
      cmpl reldmmpt2 ) ABEECAFBFZGHCFZDFTIJKLDUAMJNOHPRCDABQS $.

    mplval.p $e |- P = ( I mPoly R ) $.
    mplval.s $e |- S = ( I mPwSer R ) $.
    mplval.b $e |- B = ( Base ` S ) $.
    mplval.z $e |- .0. = ( 0g ` R ) $.
    ${
      mplval.u $e |- U = { f e. B | f finSupp .0. } $.
      $( Value of the set of multivariate polynomials.  (Contributed by Mario
         Carneiro, 7-Jan-2015.)  (Revised by Mario Carneiro, 2-Oct-2015.)
         (Revised by AV, 25-Jun-2019.) $)
      mplval $p |- P = ( S |`s U ) $=
        ( vs co cress cvv wceq cmps syl6eqr vi vr cmpl wa cv c0g cfv cfsupp wbr
        wcel cbs crab csb ovexd oveq12 sylan9eqr fveq2d simplr breq2d rabeqbidv
        id oveq12d csbied df-mpl ovex ovmpt2a wn c0 reldmmpl ovprc ress0 syl5eq
        reldmpsr oveq1d eqtr4d pm2.61i eqtri ) BGCUCOZDEPOZIGQUJCQUJUDZVRVSRUAU
        BGCQQNUAUEZUBUEZSOZNUEZFUEZWBUFUGZUHUIZFWDUKUGZULZPOZUMVSUCWAGRZWBCRZUD
        ZNWCWJVSQWMWAWBSUNWMWDWCRZUDZWDDWIEPWOWDGCSOZDWNWMWDWCWPWNVAWAGWBCSUOUP
        JTZWOWIWEHUHUIZFAULEWOWGWRFWHAWOWHDUKUGAWOWDDUKWQUQKTWOWFHWEUHWOWFCUFUG
        HWOWBCUFWKWLWNURUQLTUSUTMTVBVCNFUAUBVDDEPVEVFVTVGZVRVHEPOZVSWSVRVHWTGCU
        CVIVJEVKTWSDVHEPWSDWPVHJGCSVMVJVLVNVOVPVQ $.
    $}

    mplbas.u $e |- U = ( Base ` P ) $.
    $( Base set of the set of multivariate polynomials.  (Contributed by Mario
       Carneiro, 7-Jan-2015.)  (Revised by Mario Carneiro, 2-Oct-2015.)
       (Revised by AV, 25-Jun-2019.) $)
    mplbas $p |- U = { f e. B | f finSupp .0. } $=
      ( cbs cfv cv cfsupp wbr crab wss wceq ssrab2 mplval ressbas2 ax-mp eqtr4i
      eqid ) EBNOZFPHQRZFASZMUJATUJUHUAUIFAUBUJABDABCDUJFGHIJKLUJUGUCKUDUEUF $.

    $( Property of being a polynomial.  (Contributed by Mario Carneiro,
       7-Jan-2015.)  (Revised by Mario Carneiro, 2-Oct-2015.)  (Revised by AV,
       25-Jun-2019.) $)
    mplelbas $p |- ( X e. U <-> ( X e. B /\ X finSupp .0. ) ) $=
      ( vf cv cfsupp wbr breq1 mplbas elrab2 ) NOZHPQGHPQNGAEUAGHPRABCDENFHIJKL
      MST $.
  $}

  ${
    $d f B $.  $d f I $.  $d f R $.  $d f S $.
    mplval2.p $e |- P = ( I mPoly R ) $.
    mplval2.s $e |- S = ( I mPwSer R ) $.
    mplval2.u $e |- U = ( Base ` P ) $.
    $( Self-referential expression for the set of multivariate polynomials.
       (Contributed by Mario Carneiro, 7-Jan-2015.)  (Revised by Mario
       Carneiro, 2-Oct-2015.) $)
    mplval2 $p |- P = ( S |`s U ) $=
      ( vf cbs cfv c0g eqid mplbas mplval ) CJKZABCDIEBLKZFGPMZQMZPABCDIEQFGRSH
      NO $.

    mplbasss.b $e |- B = ( Base ` S ) $.
    $( The set of polynomials is a subset of the set of power series.
       (Contributed by Mario Carneiro, 7-Jan-2015.)  (Revised by Mario
       Carneiro, 2-Oct-2015.) $)
    mplbasss $p |- U C_ B $=
      ( vf cv c0g cfv cfsupp wbr crab eqid mplbas ssrab2 eqsstri ) EKLCMNZOPZKA
      QAABCDEKFUBGHJUBRISUCKATUA $.
  $}

  ${
    $d f I $.
    mplelf.p $e |- P = ( I mPoly R ) $.
    mplelf.k $e |- K = ( Base ` R ) $.
    mplelf.b $e |- B = ( Base ` P ) $.
    mplelf.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    mplelf.x $e |- ( ph -> X e. B ) $.
    $( A polynomial is defined as a function on the coefficients.  (Contributed
       by Mario Carneiro, 7-Jan-2015.)  (Revised by Mario Carneiro,
       2-Oct-2015.) $)
    mplelf $p |- ( ph -> X : D --> K ) $=
      ( cmps co cbs cfv eqid mplbasss sseldi psrelbas ) AGEOPZQRZCEUCFGHIUCSZKM
      UDSZABUDIUDDEUCBGJUELUFTNUAUB $.
  $}

  ${
    $d f g k u x y .0. $.  $d f g x y A $.  $d f g B $.  $d g u D $.  $d f I $.
    $d k u v w x y ph $.  $d k v w R $.  $d f g k u v w y S $.  $d k u v w U $.
    mplsubglem.s $e |- S = ( I mPwSer R ) $.
    mplsubglem.b $e |- B = ( Base ` S ) $.
    mplsubglem.z $e |- .0. = ( 0g ` R ) $.
    mplsubglem.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    mplsubglem.i $e |- ( ph -> I e. W ) $.
    mplsubglem.0 $e |- ( ph -> (/) e. A ) $.
    mplsubglem.a $e |- ( ( ph /\ ( x e. A /\ y e. A ) ) -> ( x u. y ) e. A ) $.
    mplsubglem.y $e |- ( ( ph /\ ( x e. A /\ y C_ x ) ) -> y e. A ) $.
    mplsubglem.u $e |- ( ph -> U = { g e. B | ( g supp .0. ) e. A } ) $.
    ${
      mplsubglem.r $e |- ( ph -> R e. Grp ) $.
      $( If ` A ` is an ideal of sets (a nonempty collection closed under
         subset and binary union) of the set ` D ` of finite bags (the primary
         applications being ` A = Fin ` and ` A = ~P B ` for some ` B ` ), then
         the set of all power series whose coefficient functions are supported
         on an element of ` A ` is a subgroup of the set of all power series.
         (Contributed by Mario Carneiro, 12-Jan-2015.)  (Revised by AV,
         16-Jul-2019.) $)
      mplsubglem $p |- ( ph -> U e. ( SubGrp ` S ) ) $=
        ( vu vv vk csubg cfv wcel wss c0 wne cv cplusg co wral cminusg wa csupp
        crab ssrab2 syl6eqss csn cxp psr0cl wceq cbs cgrp eqid grpidcl fconst6g
        wf 3syl cdif eldifi c0g cvv fvex eqeltri fvconst2 syl adantl suppss ss0
        eqeltrd eleq2d oveq1 eleq1d elrab syl6bb mpbir2and ne0i ad2antrr biimpa
        weq simpld adantr psraddcl cun wi ovexd simprd ralrimivva uneq1 rspc2va
        wal uneq2 syl21anc alrimiv ralrimiva sseq2 imbi1d albidv rspcv psrelbas
        expr sylc cof psradd fveq1d ffnd ccnv cn0 cmap eqidd sylan2 sscon ax-mp
        a1i sseli ssid suppssr eqtrd 3eqtrd sseq1 eleq1 imbi12d spcgv syl3c cfn
        cn cima ovex rabex2 inidm ofval ssun1 adantlr ssun2 grplid mpdan psrgrp
        oveq12d grpinvcl syl2an2r ccom psrneg syl2an fveq2d grpinvid jca w3a wb
        fvco3 issubg2 mpbir3and ) AIHUHUIUJZIEUKZIULUMZUEUNZUFUNZHUOUIZUPZIUJZU
        FIUQZUVKHURUIZUIZIUJZUSZUEIUQZAIKUNZNUTUPZDUJZKEVAZEUCUWDKEVBVCAFNVDVEZ
        IUJZUVJAUWGUWFEUJZUWFNUTUPZDUJZAEFGHJLMNOSUDRQPVFAUWIULDAUWIULUKUWIULVG
        AFGVHUIZUEUWFULNAGVIUJZNUWKUJZFUWKUWFVMUDUWKGNUWKVJZQVKZFNUWKVLVNUVKFUL
        VOUJZUVKUWFUINVGZAUWPUVKFUJUWQUVKFULVPFNUVKNGVQUIVRQGVQVSVTZWAWBWCWDUWI
        WEWBTWFAUWGUWFUWEUJUWHUWJUSAIUWEUWFUCWGUWDUWJKUWFEUWBUWFVGUWCUWIDUWBUWF
        NUTWHWIWJWKWLIUWFWMWBAUVTUEIAUVKIUJZUSZUVPUVSUWTUVOUFIUWTUVLIUJZUSZUVOU
        VNEUJZUVNNUTUPZDUJZUXBEUVMGHLUVKUVLOPUVMVJZAUWLUWSUXAUDWNZUWTUVKEUJZUXA
        UWTUXHUVKNUTUPZDUJZAUWSUXHUXJUSZAUWSUVKUWEUJUXKAIUWEUVKUCWGUWDUXJKUVKEK
        UEWPUWCUXIDUWBUVKNUTWHWIWJWKWOZWQZWRZUXBUVLEUJZUVLNUTUPZDUJZUWTUXAUXOUX
        QUSZUWTUXAUVLUWEUJUXRUWTIUWEUVLAIUWEVGZUWSUCWRZWGUWDUXQKUVLEKUFWPUWCUXP
        DUWBUVLNUTWHWIWJWKWOZWQZWSZUXBUXDVRUJCUNZUXIUXPWTZUKZUYDDUJZXAZCXGZUXDU
        YEUKZUXEUXBUVNNUTXBUXBUYEDUJZUYDBUNZUKZUYGXAZCXGZBDUQZUYIUXBUXJUXQUYLUY
        DWTZDUJZCDUQBDUQZUYKUWTUXJUXAUWTUXHUXJUXLXCZWRUXBUXOUXQUYAXCAUYSUWSUXAA
        UYRBCDDUAXDWNUYRUYKUXIUYDWTZDUJBCUXIUXPDDUYLUXIVGZUYQVUADUYLUXIUYDXEWIU
        YDUXPVGVUAUYEDUYDUXPUXIXHWIXFXIAUYPUWSUXAAUYOBDAUYLDUJZUSUYNCAVUCUYMUYG
        UBXQXJXKZWNUYOUYIBUYEDUYLUYEVGZUYNUYHCVUEUYMUYFUYGUYLUYEUYDXLXMXNXOXRUX
        BFUWKUGUVNUYENUXBEFGHJLUWKUVNOUWNRPUYCXPUXBUGUNZFUYEVOZUJZUSZVUFUVNUIZV
        UFUVKUVLGUOUIZXSUPZUIZVUFUVKUIZVUFUVLUIZVUKUPZNUXBVUJVUMVGVUHUXBVUFUVNV
        ULUXBEVUKUVMGHLUVKUVLOPVUKVJZUXFUXNUYBXTYAWRVUHUXBVUFFUJZVUMVUPVGVUFFUY
        EVPUXBFFVUNVUOVUKFUVKUVLVRVRVUFUXBFUWKUVKUWTFUWKUVKVMZUXAUWTEFGHJLUWKUV
        KOUWNRPUXMXPZWRYBUXBFUWKUVLUXBEFGHJLUWKUVLOUWNRPUYBXPZYBFVRUJZUXBJUNYCU
        UBUUCUUAUJJYDLYEUPFRYDLYEUUDUUEZYJZVVDFUUFUXBVURUSZVUNYFVVEVUOYFUUGYGVU
        IVUPNNVUKUPZNVUIVUNNVUONVUKVUHUXBVUFFUXIVOZUJZVUNNVGZVUGVVGVUFUXIUYEUKV
        UGVVGUKUXIUXPUUHUXIUYEFYHYIYKUWTVVHVVIUXAUWTFUWKVRUVKVRUXIVUFNVUTUXIUXI
        UKUWTUXIYLYJVVBUWTVVCYJNVRUJZUWTUWRYJYMZUUIYGVUHUXBVUFFUXPVOZUJVUONVGVU
        GVVLVUFUXPUYEUKVUGVVLUKUXPUXIUUJUXPUYEFYHYIYKUXBFUWKVRUVLVRUXPVUFNVVAUX
        PUXPUKUXBUXPYLYJVVDVVJUXBUWRYJYMYGUUNUXBVVFNVGZVUHUXBUWLVVMUXGUWLUWMVVM
        UWOUWKVUKGNNUWNVUQQUUKUULWBWRYNYOWDUYHUYJUXEXACUXDVRUYDUXDVGUYFUYJUYGUX
        EUYDUXDUYEYPUYDUXDDYQYRYSYTUXBUVOUVNUWEUJUXCUXEUSUXBIUWEUVNAUXSUWSUXAUC
        WNWGUWDUXEKUVNEUWBUVNVGUWCUXDDUWBUVNNUTWHWIWJWKWLXKUWTUVSUVREUJZUVRNUTU
        PZDUJZAHVIUJZUWSUXHVVNAGHLMOSUDUUMZUXMEHUVQUVKPUVQVJZUUOUUPZUWTVVOVRUJU
        YDUXIUKZUYGXAZCXGZVVOUXIUKZVVPUWTUVRNUTXBUWTUXJUYPVWCUYTAUYPUWSVUDWRUYO
        VWCBUXIDVUBUYNVWBCVUBUYMVWAUYGUYLUXIUYDXLXMXNXOXRUWTFUWKUGUVRUXINUWTEFG
        HJLUWKUVROUWNRPVVTXPUWTVVHUSZVUFUVRUIVUFGURUIZUVKUUQZUIZVUNVWFUIZNVWEVU
        FUVRVWGUWTUVRVWGVGVVHUWTEFGHJLUVQVWFMUVKOALMUJUWSSWRAUWLUWSUDWRZRVWFVJZ
        PVVSUXMUURWRYAUWTVUSVURVWHVWIVGVVHVUTVUFFUXIVPFUWKVUFVWFUVKUVEUUSVWEVWI
        NVWFUIZNVWEVUNNVWFVVKUUTUWTVWLNVGZVVHUWTUWLVWMVWJGVWFNQVWKUVAWBWRYNYOWD
        VWBVWDVVPXACVVOVRUYDVVOVGVWAVWDUYGVVPUYDVVOUXIYPUYDVVODYQYRYSYTUWTUVSUV
        RUWEUJVVNVVPUSUWTIUWEUVRUXTWGUWDVVPKUVREUWBUVRVGUWCVVODUWBUVRNUTWHWIWJW
        KWLUVBXKAVVQUVHUVIUVJUWAUVCUVDVVRUEUFEUVMIHUVQPUXFVVSUVFWBUVG $.
    $}

    mpllsslem.r $e |- ( ph -> R e. Ring ) $.
    $( If ` A ` is an ideal of subsets (a nonempty collection closed under
       subset and binary union) of the set ` D ` of finite bags (the primary
       applications being ` A = Fin ` and ` A = ~P B ` for some ` B ` ), then
       the set of all power series whose coefficient functions are supported on
       an element of ` A ` is a linear subspace of the set of all power series.
       (Contributed by Mario Carneiro, 12-Jan-2015.)  (Revised by AV,
       16-Jul-2019.) $)
    mpllsslem $p |- ( ph -> U e. ( LSubSp ` S ) ) $=
      ( vu vv vw cbs cfv cplusg clss cvsca crg psrsca eqidd wceq a1i csubg wcel
      vk wss cgrp ringgrp syl mplsubglem subgss c0g c0 wne eqid subg0cl ne0i cv
      3syl w3a wa co adantr csupp simprl simprr crab eleq2d oveq1 eleq1d syl6bb
      elrab simpld psrvscacl cvv wi wal ovex wral simprd expr alrimiv ralrimiva
      mpbid sseq2 imbi1d albidv rspcv sylc psrelbas cdif eldifi psrvscaval ssid
      cmulr adantl ccnv cn cima cfn cn0 cmap rabex2 fvex eqeltri suppssr oveq2d
      ringrz syl2an2r 3eqtrd sseq1 eleq1 imbi12d spcgv syl3c mpbir2and 3adantr3
      suppss simpr3 subgcl syl3anc islssd ) AUEGUHUIZHUJUIZHUKUIZHULUIZIGEHUFUG
      AGHLMUMOSUDUNAYRUOEHUHUIUPAPUQAYSUOAUUAUOAYTUOAIHURUIUSZIEVAABCDEFGHIJKLM
      NOPQRSTUAUBUCAGUMUSZGVBUSUDGVCVDVEZEIHPVFVDAUUBHVGUIZIUSIVHVIUUDIHUUEUUEV
      JVKIUUEVLVNAUEVMZYRUSZUFVMZIUSZUGVMZIUSZVOZVPUUBUUFUUHUUAVQZIUSZUUKUUMUUJ
      YSVQIUSAUUBUULUUDVRAUUGUUIUUNUUKAUUGUUIVPZVPZUUNUUMEUSZUUMNVSVQZDUSZUUPEG
      HUUAUUHLYRUUFOUUAVJZYRVJZPAUUCUUOUDVRAUUGUUIVTZUUPUUHEUSZUUHNVSVQZDUSZUUP
      UUIUVCUVEVPZAUUGUUIWAUUPUUIUUHKVMZNVSVQZDUSZKEWBZUSUVFUUPIUVJUUHAIUVJUPUU
      OUCVRZWCUVIUVEKUUHEUVGUUHUPUVHUVDDUVGUUHNVSWDWEWGWFWSZWHZWIZUUPUURWJUSZCV
      MZUVDVAZUVPDUSZWKZCWLZUURUVDVAZUUSUVOUUPUUMNVSWMUQUUPUVEUVPBVMZVAZUVRWKZC
      WLZBDWNZUVTUUPUVCUVEUVLWOAUWFUUOAUWEBDAUWBDUSZVPUWDCAUWGUWCUVRUBWPWQWRVRU
      WEUVTBUVDDUWBUVDUPZUWDUVSCUWHUWCUVQUVRUWBUVDUVPWTXAXBXCXDUUPFYRUTUUMUVDNU
      UPEFGHJLYRUUMOUVARPUVNXEUUPUTVMZFUVDXFUSZVPZUWIUUMUIUUFUWIUUHUIZGXJUIZVQU
      UFNUWMVQZNUWKEFGHUUAUWMJUUHLYRUUFUWIOUUTUVAPUWMVJZRUUPUUGUWJUVBVRUUPUVCUW
      JUVMVRUWJUWIFUSUUPUWIFUVDXGXKXHUWKUWLNUUFUWMUUPFYRWJUUHWJUVDUWINUUPEFGHJL
      YRUUHOUVARPUVMXEUVDUVDVAUUPUVDXIUQFWJUSUUPJVMXLXMXNXOUSJXPLXQVQFRXPLXQWMX
      RUQNWJUSUUPNGVGUIWJQGVGXSXTUQYAYBUUPUWNNUPZUWJAUUCUUOUUGUWPUDUVBYRGUWMUUF
      NUVAUWOQYCYDVRYEYMUVSUWAUUSWKCUURWJUVPUURUPUVQUWAUVRUUSUVPUURUVDYFUVPUURD
      YGYHYIYJUUPUUNUUMUVJUSUUQUUSVPUUPIUVJUUMUVKWCUVIUUSKUUMEUVGUUMUPUVHUURDUV
      GUUMNVSWDWEWGWFYKYLAUUGUUIUUKYNYSIHUUMUUJYSVJYOYPYQ $.
  $}

  ${
    $d k n x A $.  $d f g k n x y I $.  $d g k n x y ph $.  $d f g k x y R $.
    $d f g k x y S $.  $d n x y D $.  $d x y U $.  $d f g k x X $.
    $d f g k x Y $.  $d x .x. $.  $d k y W $.  $d f g k .0. $.
    mplsubg.s $e |- S = ( I mPwSer R ) $.
    mplsubg.p $e |- P = ( I mPoly R ) $.
    mplsubg.u $e |- U = ( Base ` P ) $.
    mplsubg.i $e |- ( ph -> I e. W ) $.
    $( Lemma for ~ mplsubg and ~ mpllss .  (Contributed by AV, 16-Jul-2019.) $)
    mplsubglem2 $p |- ( ph -> U = { g e. ( Base ` S )
                                    | ( g supp ( 0g ` R ) ) e. Fin } ) $=
      ( cv c0g cfv cfsupp crab wcel eqid cvv wbr cbs csupp co mplbas wa wfun wb
      cfn psrelbasfun adantl simpr fvexd funisfsupp syl3anc rabbidva syl5eq ) A
      EFMZCNOZPUAZFDUBOZQURUSUCUDUIRZFVAQVABCDEFGUSJIVASZUSSKUEAUTVBFVAAURVARZU
      FZURUGZVDUSTRUTVBUHVDVFAVACDGURIVCUJUKAVDULVECNUMURVATUSUNUOUPUQ $.

    ${
      mplsubg.r $e |- ( ph -> R e. Grp ) $.
      $( The set of polynomials is closed under addition, i.e. it is a subgroup
         of the set of power series.  (Contributed by Mario Carneiro,
         8-Jan-2015.)  (Proof shortened by AV, 16-Jul-2019.) $)
      mplsubg $p |- ( ph -> U e. ( SubGrp ` S ) ) $=
        ( vx vy vf vg cfn cv wcel eqid cbs cfv ccnv cn cima cn0 cmap co crab c0
        c0g 0fin a1i wa cun unfi adantl wss ssfi mplsubglem2 mplsubglem ) AMNQD
        UAUBZORUCUDUEQSOUFFUGUHUIZCDEOPFGCUKUBZHVBTVDTVCTKUJQSAULUMMRZQSZNRZQSZ
        UNVEVGUOQSAVEVGUPUQVFVGVEURUNVHAVEVGUSUQABCDEPFGHIJKUTLVA $.
    $}

    mpllss.r $e |- ( ph -> R e. Ring ) $.
    $( The set of polynomials is closed under scalar multiplication, i.e. it is
       a linear subspace of the set of power series.  (Contributed by Mario
       Carneiro, 7-Jan-2015.)  (Proof shortened by AV, 16-Jul-2019.) $)
    mpllss $p |- ( ph -> U e. ( LSubSp ` S ) ) $=
      ( vx vy vf vg cfn cv wcel eqid cbs cfv ccnv cn cima cn0 cmap co crab 0fin
      c0g c0 a1i wa cun unfi adantl wss ssfi mplsubglem2 mpllsslem ) AMNQDUAUBZ
      ORUCUDUEQSOUFFUGUHUIZCDEOPFGCUKUBZHVBTVDTVCTKULQSAUJUMMRZQSZNRZQSZUNVEVGU
      OQSAVEVGUPUQVFVGVEURUNVHAVEVGUSUQABCDEPFGHIJKUTLVA $.

    ${
      mplsubrglem.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
      mplsubrglem.z $e |- .0. = ( 0g ` R ) $.
      mplsubrglem.p $e |- A = ( oF + " ( ( X supp .0. )
                                         X. ( Y supp .0. ) ) ) $.
      mplsubrglem.t $e |- .x. = ( .r ` R ) $.
      mplsubrglem.x $e |- ( ph -> X e. U ) $.
      mplsubrglem.y $e |- ( ph -> Y e. U ) $.
      $( Lemma for ~ mplsubrg .  (Contributed by Mario Carneiro, 9-Jan-2015.)
         (Revised by AV, 18-Jul-2019.) $)
      mplsubrglem $p |- ( ph -> ( X ( .r ` S ) Y ) e. U ) $=
        ( vg vk vx vy vn cmulr cfv cbs wcel cfsupp wbr mplbasss sseldi psrmulcl
        co eqid cvv wfun cfn csupp wss ovexd psrelbasfun syl fvex eqeltri caddc
        c0g a1i cof cxp cres crn cima df-ima eqtri wfo mplelbas simprbi syl2anc
        fsuppxpfi wfn cv ovex fnmpt2i dffn4 mpbi fofi sylancl syl5eqel psrelbas
        ofmres cdif cle cofr crab cmin cmpt cgsu adantr eldifi adantl psrmulval
        wa wceq crg ad2antrr wf mplelf ssrab2 simpr psrbagconcl ffvelrnd eqeq1d
        syl3anc syl5ibrcom wn wo cn0 psrbagf ffvelrnda syl2an mpteq2dva feqmptd
        cc nn0cn offval2 wb eldif baib ssid cmap suppssr ex sylbird oveq1 oveq2
        ringlz ringrz pncan3 3eqtr4d simplr eqeltrd eldifbd ovres w3a syl6eleqr
        fnovrn mp3an1 eqeltrrd nsyl ianor sylib cn rabex2 orim12d mpjaod oveq2d
        ccnv cmnd ringmnd psrbaglefi gsumz 3eqtrd suppss suppssfifsupp syl32anc
        mpd sylanbrc ) ALMFUKULZUTZFUMULZUNZUVPNUOUPZUVPHUNAUVQEFUVOJLMOUVQVAZU
        VOVAZSAHUVQLUVQDEFHJPOQUVTUQZUDURZAHUVQMUWBUEURZUSZAUVPVBUNUVPVCZNVBUNZ
        BVDUNUVPNVEUTBVFUVSALMUVOVGAUVRUWFUWEUVQEFJUVPOUVTVHVIUWGANEVMULVBUAEVM
        VJVKZVNABVLVOZLNVEUTZMNVEUTZVPZVQZVRZVDBUWIUWLVSUWNUBUWIUWLVTWAZAUWLVDU
        NZUWLUWNUWMWBZUWNVDUNALNUOUPZMNUOUPZUWPALHUNZUWRUDUWTLUVQUNZUWRUVQDEFHJ
        LNPOUVTUAQWCWDVIAMHUNZUWSUEUXBMUVQUNZUWSUVQDEFHJMNPOUVTUAQWCWDVILMNWFWE
        UWMUWLWGZUWQIUFUWJUWKIWHZUFWHZUWIUTUWMUWJUWKVLIUFWQUXEUXFUWIWIWJZUWLUWM
        WKWLUWLUWNUWMWMWNWOACEUMULZUGUVPBNAUVQCEFIJUXHUVPOUXHVAZTUVTUWEWPAUGWHZ
        CBWRZUNZXIZUXJUVPULEUHUIWHUXJWSWTUPZUICXAZUHWHZLULZUXJUXPXBVOUTZMULZGUT
        ZXCZXDUTEUHUXONXCZXDUTZNUXMUIUVQCEFUVOGIUHLMJUXJOUVTUCUWATAUXAUXLUWCXEA
        UXCUXLUWDXEUXLUXJCUNZAUXJCBXFZXGZXHUXMUYAUYBEXDUXMUHUXOUXTNUXMUXPUXOUNZ
        XIZUXQNXJZUXTNXJZUXSNXJZUYHUYJUYINUXSGUTZNXJZUYHEXKUNZUXSUXHUNUYMAUYNUX
        LUYGSXLZUYHCUXHUXRMACUXHMXMUXLUYGAHCDEIJUXHMPUXIQTUEXNXLZUYHUXOCUXRUXNU
        ICXOZUYHJKUNZUYDUYGUXRUXOUNAUYRUXLUYGRXLZUXMUYDUYGUYFXEZUXMUYGXPZUICUXO
        IUXJJKUXPTUXOVAXQXTURZXRUXHEGUXSNUXIUCUAUUCWEUYIUXTUYLNUXQNUXSGUUAXSYAU
        YHUYJUYKUXQNGUTZNXJZUYHUYNUXQUXHUNVUDUYOUYHCUXHUXPLACUXHLXMUXLUYGAHCDEI
        JUXHLPUXIQTUDXNXLZUYHUXOCUXPUYQVUAURZXRUXHEGUXQNUXIUCUAUUDWEUYKUXTVUCNU
        XSNUXQGUUBXSYAUYHUXPUWJUNZYBZUXRUWKUNZYBZYCZUYIUYKYCUYHVUGVUIXIZYBVUKUY
        HUXPUXRUWIUTZBUNVULUYHVUMCBUYHVUMUXJUXKUYHUJJUJWHZUXPULZVUNUXJULZVUOXBU
        TZVLUTZXCUJJVUPXCVUMUXJUYHUJJVURVUPUYHVUNJUNXIZVUOYDUNZVUPYDUNZVURVUPXJ
        ZUYHJYDVUNUXPUYHUYRUXPCUNZJYDUXPXMUYSVUFCIUXPJKTYEWEZYFZUYHJYDVUNUXJUYH
        UYRUYDJYDUXJXMUYSUYTCIUXJJKTYEWEZYFZVUTVUOYJUNVUPYJUNVVBVVAVUOYKVUPYKVU
        OVUPUUEYGWEYHUYHUJJVUOVUQVLUXPUXRKYDVBUYSVVEVUSVUPVUOXBVGUYHUJJYDUXPVVD
        YIZUYHUJJVUPVUOXBUXJUXPKYDYDUYSVVGVVEUYHUJJYDUXJVVFYIZVVHYLYLVVIUUFAUXL
        UYGUUGUUHUUIVULUXPUXRUWMUTZVUMBUXPUXRUWJUWKUWIUUJUXDVUGVUIVVJBUNUXGUXDV
        UGVUIUUKVVJUWNBUWJUWKUXPUXRUWMUUMUWOUULUUNUUOUUPVUGVUIUUQUURUYHVUHUYIVU
        JUYKUYHVUHUXPCUWJWRUNZUYIUYHVVCVVKVUHYMVUFVVKVVCVUHUXPCUWJYNYOVIUYHVVKU
        YIUYHCUXHVBLVBUWJUXPNVUEUWJUWJVFUYHUWJYPVNCVBUNUYHUXEUVDUUSVSVDUNIYDJYQ
        UTCTYDJYQWIUUTVNZUWGUYHUWHVNZYRYSYTUYHVUJUXRCUWKWRUNZUYKUYHUXRCUNZVVNVU
        JYMVUBVVNVVOVUJUXRCUWKYNYOVIUYHVVNUYKUYHCUXHVBMVBUWKUXRNUYPUWKUWKVFUYHU
        WKYPVNVVLVVMYRYSYTUVAUVMUVBYHUVCUXMEUVEUNZUXOVDUNZUYCNXJUXMUYNVVPAUYNUX
        LSXEEUVFVIAUYRUYDVVQUXLRUYEUICIUXJJKTUVGYGUXOUHEVDNUAUVHWEUVIUVJBUVPVBV
        BNUVKUVLUVQDEFHJUVPNPOUVTUAQWCUVN $.
    $}

    $( The set of polynomials is closed under multiplication, i.e. it is a
       subring of the set of power series.  (Contributed by Mario Carneiro,
       9-Jan-2015.) $)
    mplsubrg $p |- ( ph -> U e. ( SubRing ` S ) ) $=
      ( vx vk vf cfv wcel co eqid cvv vy csubrg csubg cur cv cmulr wral ringgrp
      crg cgrp syl mplsubg cbs c0g cfsupp wbr psrring ringidcl ccnv cn cima cfn
      cn0 cmap crab cc0 csn cxp wceq cif cmpt psr1 wfun w3a csupp ovex mptrabex
      wss funmpt fvex 3pm3.2i a1i snfi cdif wne eldifsni adantl ifnefalse rabex
      suppss2 suppssfifsupp syl12anc eqbrtrd mplelbas sylanbrc caddc cof adantr
      wa simprl simprr mplsubrglem ralrimivva wb issubrg2 mpbir3and ) AEDUBPQZE
      DUCPQZDUDPZEQZMUEZUAUEZDUFPZREQZUAEUGMEUGZABCDEFGHIJKACUIQZCUJQLCUHUKULAX
      IDUMPZQZXICUNPZUOUPXJADUIQZXRACDFGHKLUQZXQDXIXQSZXISZURUKAXINOUEUSUTVAVBQ
      ZOVCFVDRZVEZNUEZFVFVGVHZVICUDPZXSVJZVKZXSUOANYFCDXIYIOFGXSHKLYFSZXSSZYISY
      CVLAYKTQZYKVMZXSTQZVNZYHVGZVBQZYKXSVORYRVRYKXSUOUPYQAYNYOYPYDNOYEYJVCFVDV
      PZVQNYFYJVSCUNVTWAWBYSAYHWCWBAYFYJNTYRXSAYGYFYRWDQZWSYGYHWEZYJXSVIUUAUUBA
      YGYFYHWFWGYGYHYIXSWHUKYFTQAYDOYEYTWIWBWJYRYKTTXSWKWLWMXQBCDEFXIXSIHYBYMJW
      NWOAXNMUAEEAXKEQZXLEQZWSZWSWPWQXKXSVORXLXSVORVHVAZYFBCDCUFPZEOFGXKXLXSHIJ
      AFGQUUEKWRAXPUUELWRYLYMUUFSUUGSAUUCUUDWTAUUCUUDXAXBXCAXTXGXHXJXOVNXDYAMUA
      EXQDXMXIYBYCXMSXEUKXF $.
  $}

  ${
    $d f I $.
    mpl0.p $e |- P = ( I mPoly R ) $.
    mpl0.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    mpl0.o $e |- O = ( 0g ` R ) $.
    mpl0.z $e |- .0. = ( 0g ` P ) $.
    mpl0.i $e |- ( ph -> I e. W ) $.
    mpl0.r $e |- ( ph -> R e. Grp ) $.
    $( The zero polynomial.  (Contributed by Mario Carneiro, 9-Jan-2015.) $)
    mpl0 $p |- ( ph -> .0. = ( D X. { O } ) ) $=
      ( c0g cfv csn cxp eqid cmps cbs csubg wcel wceq mplsubg mplval2 subg0 syl
      co psr0 eqtr3d syl5eq ) AICPQZBGRSZMAFDUAUJZPQZUNUOACUBQZUPUCQUDUQUNUEACD
      UPURFHUPTZJURTZNOUFURUPCUQCDUPURFJUSUTUGUQTZUHUIABDUPEFGHUQUSNOKLVAUKULUM
      $.
  $}

  ${
    mpladd.p $e |- P = ( I mPoly R ) $.
    mpladd.b $e |- B = ( Base ` P ) $.
    mpladd.a $e |- .+ = ( +g ` R ) $.
    mpladd.g $e |- .+b = ( +g ` P ) $.
    mpladd.x $e |- ( ph -> X e. B ) $.
    mpladd.y $e |- ( ph -> Y e. B ) $.
    $( The addition operation on multivariate polynomials.  (Contributed by
       Mario Carneiro, 9-Jan-2015.)  (Revised by Mario Carneiro,
       2-Oct-2015.) $)
    mpladd $p |- ( ph -> ( X .+b Y ) = ( X oF .+ Y ) ) $=
      ( cbs cfv eqid cplusg cvv cmps co wcel wceq fvex eqeltri ressplusg eqtr4i
      mplval2 ax-mp mplbasss sseldi psradd ) AGFUAUBZPQZDEFUNGHIUNRZUORZLECSQZU
      NSQZMBTUCUSURUDBCPQTKCPUEUFBUSUNCTCFUNBGJUPKUIUSRUGUJUHABUOHUOCFUNBGJUPKU
      QUKZNULABUOIUTOULUM $.
  $}

  ${
    $d k x y D $.  $d k x F $.  $d k x G $.  $d h k x y I $.  $d k x ph $.
    $d k x .x. $.  $d k x R $.
    mplmul.p $e |- P = ( I mPoly R ) $.
    mplmul.b $e |- B = ( Base ` P ) $.
    mplmul.m $e |- .x. = ( .r ` R ) $.
    mplmul.t $e |- .xb = ( .r ` P ) $.
    mplmul.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
    mplmul.f $e |- ( ph -> F e. B ) $.
    mplmul.g $e |- ( ph -> G e. B ) $.
    $( The multiplication operation on multivariate polynomials.  (Contributed
       by Mario Carneiro, 9-Jan-2015.) $)
    mplmul $p |- ( ph -> ( F .xb G ) = ( k e. D |->
            ( R gsum ( x e. { y e. D | y oR <_ k } |->
            ( ( F ` x ) .x. ( G ` ( k oF - x ) ) ) ) ) ) ) $=
      ( cmps co cbs cfv eqid cmulr cvv wcel wceq eqeltri mplval2 ressmulr ax-mp
      fvex eqtr4i mplbasss sseldi psrmulfval ) ABCNGUBUCZUDUEZEGUTHIJKLMNUTUFZV
      AUFZQHFUGUEZUTUGUEZRDUHUIVEVDUJDFUDUEUHPFUDUOUKDUTFVEUHFGUTDNOVBPULVEUFUM
      UNUPSADVALVAFGUTDNOVBPVCUQZTURADVAMVFUAURUS $.
  $}

  ${
    $d x D $.  $d f x I $.  $d x .1. $.  $d x ph $.  $d f x R $.  $d x W $.
    $d f x .0. $.
    mpl1.p $e |- P = ( I mPoly R ) $.
    mpl1.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    mpl1.z $e |- .0. = ( 0g ` R ) $.
    mpl1.o $e |- .1. = ( 1r ` R ) $.
    mpl1.u $e |- U = ( 1r ` P ) $.
    mpl1.i $e |- ( ph -> I e. W ) $.
    mpl1.r $e |- ( ph -> R e. Ring ) $.
    $( The identity element of the ring of polynomials.  (Contributed by Mario
       Carneiro, 10-Jan-2015.) $)
    mpl1 $p |- ( ph ->
      U = ( x e. D |-> if ( x = ( I X. { 0 } ) , .1. , .0. ) ) ) $=
      ( cfv eqid cur cv cc0 csn cxp wceq cif cmpt cmps cbs csubrg wcel mplsubrg
      co mplval2 subrg1 syl psr1 eqtr3d syl5eq ) AFDUASZBCBUBIUCUDUEUFGKUGUHZPA
      IEUIUNZUASZVAVBADUJSZVCUKSULVDVAUFADEVCVEIJVCTZLVETZQRUMVEVCDVDDEVCVEILVF
      VGUOVDTZUPUQABCEVCVDGHIJKVFQRMNOVHURUSUT $.
  $}

  ${
    mplsca.p $e |- P = ( I mPoly R ) $.
    mplsca.i $e |- ( ph -> I e. V ) $.
    mplsca.r $e |- ( ph -> R e. W ) $.
    $( The scalar field of a multivariate polynomial structure.  (Contributed
       by Mario Carneiro, 9-Jan-2015.) $)
    mplsca $p |- ( ph -> R = ( Scalar ` P ) ) $=
      ( cmps co csca cfv eqid psrsca cbs cvv wcel wceq fvex mplval2 resssca
      ax-mp syl6eq ) ACDCJKZLMZBLMZACUEDEFUENZHIOBPMZQRUFUGSBPTUIUFUEBQBCUEUIDG
      UHUINUAUFNUBUCUD $.
  $}

  ${
    mplvsca2.p $e |- P = ( I mPoly R ) $.
    mplvsca2.s $e |- S = ( I mPwSer R ) $.
    mplvsca2.n $e |- .x. = ( .s ` P ) $.
    $( The scalar multiplication operation on multivariate polynomials.
       (Contributed by Mario Carneiro, 9-Jan-2015.) $)
    mplvsca2 $p |- .x. = ( .s ` S ) $=
      ( cvsca cfv cbs cvv wcel wceq fvex eqid mplval2 ressvsca ax-mp eqtr4i ) D
      AIJZCIJZHAKJZLMUBUANAKOUCUBCALABCUCEFGUCPQUBPRST $.
  $}

  ${
    $d h I $.
    mplvsca.p $e |- P = ( I mPoly R ) $.
    mplvsca.n $e |- .xb = ( .s ` P ) $.
    mplvsca.k $e |- K = ( Base ` R ) $.
    mplvsca.b $e |- B = ( Base ` P ) $.
    mplvsca.m $e |- .x. = ( .r ` R ) $.
    mplvsca.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
    mplvsca.x $e |- ( ph -> X e. K ) $.
    mplvsca.f $e |- ( ph -> F e. B ) $.
    $( The scalar multiplication operation on multivariate polynomials.
       (Contributed by Mario Carneiro, 9-Jan-2015.)  (Revised by Mario
       Carneiro, 2-Oct-2015.) $)
    mplvsca $p |- ( ph -> ( X .xb F ) = ( ( D X. { X } ) oF .x. F ) ) $=
      ( cmps co cbs cfv eqid mplvsca2 mplbasss sseldi psrvsca ) AJEUAUBZUCUDZCE
      UJFGHIJKLUJUEZDEUJFJMULNUFOUKUEZQRSABUKIUKDEUJBJMULPUMUGTUHUI $.

    mplvscaval.y $e |- ( ph -> Y e. D ) $.
    $( The scalar multiplication operation on multivariate polynomials.
       (Contributed by Mario Carneiro, 9-Jan-2015.) $)
    mplvscaval $p |- ( ph -> ( ( X .xb F ) ` Y ) = ( X .x. ( F ` Y ) ) ) $=
      ( co cfv csn cxp cof mplvsca fveq1d wcel wceq cvv cv ccnv cn cima cfn cn0
      cmap ovex rabex2 a1i cbs eqid mplelf ffnd wa eqidd ofc1 mpdan eqtrd ) AML
      IFUCZUDMCLUEUFIGUGUCZUDZLMIUDZGUCZAMVLVMABCDEFGHIJKLNOPQRSTUAUHUIAMCUJZVN
      VPUKUBACLVOGIULKMCULUJAHUMUNUOUPUQUJHURJUSUCCSURJUSUTVAVBTACEVCUDZIABCDEH
      JVRINVRVDQSUAVEVFAVQVGVOVHVIVJVK $.
  $}

  ${
    $d f x y I $.  $d x ph $.  $d x R $.  $d x V $.  $d y W $.  $d f x y X $.
    mvrcl.s $e |- P = ( I mPoly R ) $.
    mvrcl.v $e |- V = ( I mVar R ) $.
    mvrcl.b $e |- B = ( Base ` P ) $.
    mvrcl.i $e |- ( ph -> I e. W ) $.
    mvrcl.r $e |- ( ph -> R e. Ring ) $.
    mvrcl.x $e |- ( ph -> X e. I ) $.
    $( A power series variable is a polynomial.  (Contributed by Mario
       Carneiro, 9-Jan-2015.) $)
    mvrcl $p |- ( ph -> ( V ` X ) e. B ) $=
      ( vy vf cfv wcel eqid cvv vx cmps co cbs c0g cfsupp wbr mvrcl2 wfun cv c1
      wceq cc0 cif cmpt csn cfn csupp wss fvexd ccnv cn cima cmap crab psrelbas
      cn0 wf ffun syl snfi a1i wa cur crg adantr wne simpr eldifsn sylib simpld
      cdif mvrval2 simprd neneqd iffalsed eqtrd suppssfifsupp syl32anc mplelbas
      suppss sylanbrc ) AHFQZEDUBUCZUDQZRWMDUEQZUFUGZWMBRAWODWNEFGHWNSZJWOSZLMN
      UHZAWMTRWMUIZWPTROEOUJHULUKUMUNUOZUPZUQRZWMWPURUCXCUSWQAHFUTAPUJVAVBVCUQR
      PVGEVDUCVEZDUDQZWMVHXAAWOXEDWNPEXFWMWRXFSXESZWSWTVFZXEXFWMVIVJADUEUTXDAXB
      VKVLAXEXFUAWMXCWPXHAUAUJZXEXCWBRZVMZXIWMQXIXBULZDVNQZWPUNWPXKOXEDXMPXIEFG
      HVOWPJXGWPSZXMSAEGRXJLVPADVORXJMVPAHERXJNVPXKXIXERZXIXBVQZXKXJXOXPVMAXJVR
      XIXEXBVSVTZWAWCXKXLXMWPXKXIXBXKXOXPXQWDWEWFWGWKXCWMTTWPWHWIWOCDWNBEWMWPIW
      RWSXNKWJWL $.
  $}

  ${
    mplgrp.p $e |- P = ( I mPoly R ) $.
    $( The polynomial ring is a group.  (Contributed by Mario Carneiro,
       9-Jan-2015.) $)
    mplgrp $p |- ( ( I e. V /\ R e. Grp ) -> P e. Grp ) $=
      ( wcel cgrp wa cbs cmps co csubg eqid simpl simpr mplsubg mplval2 subggrp
      cfv syl ) CDFZBGFZHZAISZCBJKZLSFAGFUCABUEUDCDUEMZEUDMZUAUBNUAUBOPUDUEAABU
      EUDCEUFUGQRT $.

    $( The polynomial ring is a left module.  (Contributed by Mario Carneiro,
       9-Jan-2015.) $)
    mpllmod $p |- ( ( I e. V /\ R e. Ring ) -> P e. LMod ) $=
      ( wcel crg wa cmps co clmod cbs cfv clss eqid simpl simpr psrlmod mplval2
      mpllss lsslmod syl2anc ) CDFZBGFZHZCBIJZKFALMZUFNMZFAKFUEBUFCDUFOZUCUDPZU
      CUDQZRUEABUFUGCDUIEUGOZUJUKTUHUGUFAABUFUGCEUIULSUHOUAUB $.

    $( The polynomial ring is a ring.  (Contributed by Mario Carneiro,
       9-Jan-2015.) $)
    mplring $p |- ( ( I e. V /\ R e. Ring ) -> P e. Ring ) $=
      ( wcel crg wa cbs cfv cmps co eqid simpl simpr mplsubrg mplval2 subrgring
      csubrg syl ) CDFZBGFZHZAIJZCBKLZSJFAGFUCABUEUDCDUEMZEUDMZUAUBNUAUBOPUDUEA
      ABUEUDCEUFUGQRT $.

    $( The polynomial ring is a commutative ring.  (Contributed by Mario
       Carneiro, 9-Jan-2015.) $)
    mplcrng $p |- ( ( I e. V /\ R e. CRing ) -> P e. CRing ) $=
      ( wcel ccrg wa cmps co cbs cfv csubrg eqid simpl simpr psrcrng crg adantl
      crngring mplsubrg mplval2 subrgcrng syl2anc ) CDFZBGFZHZCBIJZGFAKLZUHMLFA
      GFUGBUHCDUHNZUEUFOZUEUFPQUGABUHUICDUJEUINZUKUFBRFUEBTSUAUIUHAABUHUICEUJUL
      UBUCUD $.

    $( The polynomial ring is an associative algebra.  (Contributed by Mario
       Carneiro, 9-Jan-2015.) $)
    mplassa $p |- ( ( I e. V /\ R e. CRing ) -> P e. AssAlg ) $=
      ( wcel ccrg wa casa cbs cfv cmps csubrg clss eqid simpl crg crngring syl
      co adantl mplsubrg mpllss cur wb simpr psrassa subrg1cl subrgss issubassa
      wss mplval2 syl3anc mpbir2and ) CDFZBGFZHZAIFZAJKZCBLTZMKFZUSUTNKZFZUQABU
      TUSCDUTOZEUSOZUOUPPZUPBQFUOBRUAZUBZUQABUTUSCDVDEVEVFVGUCUQUTIFUTUDKZUSFZU
      SUTJKZUKZURVAVCHUEUQBUTCDVDVFUOUPUFUGUQVAVJVHUSUTVIVIOZUHSUQVAVLVHUSVKUTV
      KOZUISUSAVIVBVKUTABUTUSCEVDVEULVBOVNVMUJUMUN $.
  $}

  ${
    $d f C $.  $d f H $.  $d f I $.  $d f ph $.  $d f R $.
    ressmpl.s $e |- S = ( I mPoly R ) $.
    ressmpl.h $e |- H = ( R |`s T ) $.
    ressmpl.u $e |- U = ( I mPoly H ) $.
    ressmpl.b $e |- B = ( Base ` U ) $.
    ressmpl.1 $e |- ( ph -> I e. V ) $.
    ressmpl.2 $e |- ( ph -> T e. ( SubRing ` R ) ) $.
    ${
      ressmplbas2.w $e |- W = ( I mPwSer H ) $.
      ressmplbas2.c $e |- C = ( Base ` W ) $.
      ressmplbas2.k $e |- K = ( Base ` S ) $.
      $( The base set of a restricted polynomial algebra consists of power
         series in the subring which are also polynomials (in the parent ring).
         (Contributed by Mario Carneiro, 3-Jul-2015.) $)
      ressmplbas2 $p |- ( ph -> B = ( C i^i K ) ) $=
        ( vf cv c0g cfv cfsupp wbr cab cin cmps co cbs wss wceq csubrg subrgpsr
        wcel eqid syl2anc subrgss syl df-ss subrg0 breq2d abbidv ineq12d eqcomd
        sylib crab mplbas dfrab3 eqtri ineq2i inass eqtr4i 3eqtr4g ) ACUBUCZHUD
        UEZUFUGZUBUHZUIZCIDUJUKZULUEZUIZVQDUDUEZUFUGZUBUHZUIZBCJUIZAWHWAAWDCWGV
        TACWCUMZWDCUNACWBUOUEUQZWJAIKUQFDUOUEUQZWKQRCDWBFLHIKWBURZNSTUPUSCWCWBW
        CURZUTVACWCVBVHAWFVSUBAWEVRVQUFAWLWEVRUNRFDHWENWEURZVCVAVDVEVFVGBVSUBCV
        IWACGHLBUBIVROSTVRURPVJVSUBCVKVLWICWCWGUIZUIWHJWPCJWFUBWCVIWPWCEDWBJUBI
        WEMWMWNWOUAVJWFUBWCVKVLVMCWCWGVNVOVP $.
    $}

    ressmpl.p $e |- P = ( S |`s B ) $.
    $( A restricted polynomial algebra has the same base set.  (Contributed by
       Mario Carneiro, 3-Jul-2015.) $)
    ressmplbas $p |- ( ph -> B = ( Base ` P ) ) $=
      ( cbs cfv eqid wss wceq cmps cin ressmplbas2 inss2 syl6eqss ressbas2 syl
      co ) ABERSZUABCRSUBABIHUCUJZRSZUKUDUKABUMDEFGHIUKJULKLMNOPULTUMTUKTZUEUMU
      KUFUGBUKCEQUNUHUI $.

    $( A restricted polynomial algebra has the same addition operation.
       (Contributed by Mario Carneiro, 3-Jul-2015.) $)
    ressmpladd $p |- ( ( ph /\ ( X e. B /\ Y e. B ) ) ->
        ( X ( +g ` U ) Y ) = ( X ( +g ` P ) Y ) ) $=
      ( cfv wcel wa cmps cplusg cbs cress wceq eqid mplbasss anim12i resspsradd
      co sseli sylan2 cvv eqeltri mplval2 ressplusg ax-mp oveqi 3eqtr3i 3eqtr3g
      fvex ) AKBUAZLBUAZUBZUBKLIHUCULZUDTZULZKLIDUCULZVGUETZUFULZUDTZULZKLGUDTZ
      ULKLCUDTZULVFAKVKUAZLVKUAZUBVIVNUGVDVQVEVRBVKKVKGHVGBIOVGUHZPVKUHZUIZUMBV
      KLWAUMUJAVKVLDVJFVGHIKLVJUHZNVSVTVLUHZRUKUNVHVOKLBUOUAZVHVOUGBGUETUOPGUEV
      CUPZBVHVGGUOGHVGBIOVSPUQVHUHURUSUTVMVPKLVJUDTZEUDTZVMVPEUETZUOUAWFWGUGEUE
      VCWHWFVJEUOEDVJWHIMWBWHUHUQWFUHZURUSVKUOUAWFVMUGVGUEVCVKWFVJVLUOWCWIURUSW
      DWGVPUGWEBWGECUOSWGUHURUSVAUTVB $.

    $( A restricted polynomial algebra has the same multiplication operation.
       (Contributed by Mario Carneiro, 3-Jul-2015.) $)
    ressmplmul $p |- ( ( ph /\ ( X e. B /\ Y e. B ) ) ->
        ( X ( .r ` U ) Y ) = ( X ( .r ` P ) Y ) ) $=
      ( cfv wcel wa cmps co cmulr cbs cress wceq eqid mplbasss sseli resspsrmul
      anim12i sylan2 fvex eqeltri mplval2 ressmulr ax-mp oveqi 3eqtr3i 3eqtr3g
      cvv ) AKBUAZLBUAZUBZUBKLIHUCUDZUETZUDZKLIDUCUDZVGUFTZUGUDZUETZUDZKLGUETZU
      DKLCUETZUDVFAKVKUAZLVKUAZUBVIVNUHVDVQVEVRBVKKVKGHVGBIOVGUIZPVKUIZUJZUKBVK
      LWAUKUMAVKVLDVJFVGHIKLVJUIZNVSVTVLUIZRULUNVHVOKLBVCUAZVHVOUHBGUFTVCPGUFUO
      UPZBVGGVHVCGHVGBIOVSPUQVHUIURUSUTVMVPKLVJUETZEUETZVMVPEUFTZVCUAWFWGUHEUFU
      OWHVJEWFVCEDVJWHIMWBWHUIUQWFUIZURUSVKVCUAWFVMUHVGUFUOVKVJVLWFVCWCWIURUSWD
      WGVPUHWEBECWGVCSWGUIURUSVAUTVB $.

    $( A restricted power series algebra has the same scalar multiplication
       operation.  (Contributed by Mario Carneiro, 3-Jul-2015.) $)
    ressmplvsca $p |- ( ( ph /\ ( X e. T /\ Y e. B ) ) ->
        ( X ( .s ` U ) Y ) = ( X ( .s ` P ) Y ) ) $=
      ( cfv wcel wa cmps cvsca cbs cress wceq eqid mplbasss resspsrvsca sylanr2
      co sseli cvv fvex eqeltri mplval2 ressvsca ax-mp oveqi 3eqtr3i 3eqtr3g )
      AKFUAZLBUAZUBUBKLIHUCULZUDTZULZKLIDUCULZVEUETZUFULZUDTZULZKLGUDTZULKLCUDT
      ZULVDAVCLVIUAVGVLUGBVILVIGHVEBIOVEUHZPVIUHZUIUMAVIVJDVHFVEHIKLVHUHZNVOVPV
      JUHZRUJUKVFVMKLBUNUAZVFVMUGBGUETUNPGUEUOUPZBVFVEGUNGHVEBIOVOPUQVFUHURUSUT
      VKVNKLVHUDTZEUDTZVKVNEUETZUNUAWAWBUGEUEUOWCWAVHEUNEDVHWCIMVQWCUHUQWAUHZUR
      USVIUNUAWAVKUGVEUEUOVIWAVHVJUNVRWDURUSVSWBVNUGVTBWBECUNSWBUHURUSVAUTVB $.
  $}

  ${
    subrgmpl.s $e |- S = ( I mPoly R ) $.
    subrgmpl.h $e |- H = ( R |`s T ) $.
    subrgmpl.u $e |- U = ( I mPoly H ) $.
    subrgmpl.b $e |- B = ( Base ` U ) $.
    $( A subring of the base ring induces a subring of polynomials.
       (Contributed by Mario Carneiro, 3-Jul-2015.) $)
    subrgmpl $p |- ( ( I e. V /\ T e. ( SubRing ` R ) ) ->
        B e. ( SubRing ` S ) ) $=
      ( wcel csubrg cfv wa cmps co cbs eqid wss cin simpl simpr ressmplbas2 crg
      subrgpsr subrgrcl mplsubrg subrgin syl2anc eqeltrd inss2 syl6eqss mplval2
      adantl wb subsubrg syl mpbir2and ) GHMZDBNOMZPZACNOMZAGBQRZNOZMZACSOZUAZV
      CAGFQRZSOZVHUBZVFVCAVKBCDEFGVHHVJIJKLVAVBUCZVAVBUDVJTZVKTZVHTZUEZVCVKVFMV
      HVFMZVLVFMVKBVEDVJFGHVETZJVNVOUGVCCBVEVHGHVSIVPVMVBBUFMVADBUHUPUIZVKVHVEU
      JUKULVCAVLVHVQVKVHUMUNVCVRVDVGVIPUQVTVHAVECCBVEVHGIVSVPUOURUSUT $.
  $}

  ${
    $d x B $.  $d x y H $.  $d f x y z I $.  $d x y ph $.  $d x V $.  $d z W $.
    $d x y R $.
    subrgmvr.v $e |- V = ( I mVar R ) $.
    subrgmvr.i $e |- ( ph -> I e. W ) $.
    subrgmvr.r $e |- ( ph -> T e. ( SubRing ` R ) ) $.
    subrgmvr.h $e |- H = ( R |`s T ) $.
    $( The variables in a subring polynomial algebra are the same as the
       original ring.  (Contributed by Mario Carneiro, 4-Jul-2015.) $)
    subrgmvr $p |- ( ph -> V = ( I mVar H ) ) $=
      ( vx vy vf vz cv wcel cmpt cfv eqid ccnv cn cima cfn cmap co crab wceq c1
      cn0 cc0 cif cur c0g csubrg subrg1 syl subrg0 ifeq12d mpteq2dv crg mvrfval
      cmvr subrgrcl cvv cress ovex eqeltri a1i 3eqtr4d ) ALEMNPUAUBUCUDQNUJEUEU
      FUGZMPOEOPLPUHUIUKULRUHZBUMSZBUNSZULZRZRLEMVKVLDUMSZDUNSZULZRZRFEDVCUFZAL
      EVPVTAMVKVOVSAVLVMVQVNVRACBUOSQZVMVQUHJCBDVMKVMTZUPUQAWBVNVRUHJCBDVNKVNTZ
      URUQUSUTUTALOVKBVMMNEFGVAVNHVKTZWDWCIAWBBVAQJCBVDUQVBALOVKDVQMNEWAGVEVRWA
      TWEVRTVQTIDVEQADBCVFUFVEKBCVFVGVHVIVBVJ $.

    subrgmvrf.u $e |- U = ( I mPoly H ) $.
    subrgmvrf.b $e |- B = ( Base ` U ) $.
    $( The variables in a polynomial algebra are contained in every subring
       algebra.  (Contributed by Mario Carneiro, 4-Jul-2015.) $)
    subrgmvrf $p |- ( ph -> V : I --> B ) $=
      ( vx cfv wcel eqid syl wfn cv wral wf cmps co cbs csubrg crg subrgrcl ffn
      mvrf wa cmvr wceq subrgmvr fveq1d subrgring simpr mvrcl eqeltrd ralrimiva
      adantr ffnfv sylanbrc ) AHGUAZPUBZHQZBRZPGUCGBHUDAGGCUEUFZUGQZHUDVFAVKCVJ
      GHIVJSJVKSKADCUHQRZCUIRLDCUJTULGVKHUKTAVIPGAVGGRZUMZVHVGGFUNUFZQZBAVHVPUO
      VMAVGHVOACDFGHIJKLMUPUQVCVNBEFGVOIVGNVOSOAGIRVMKVCAFUIRZVMAVLVQLDCFMURTVC
      AVMUSUTVAVBPGBHVDVE $.
  $}

  ${
    $d j k x y z D $.  $d f j k x z I $.  $d j k y z ph $.  $d f j k x y z X $.
    $d j k y .0. $.  $d j k y .1. $.  $d j k y R $.  $d f j k x y z Y $.
    $d x W $.
    mplmon.s $e |- P = ( I mPoly R ) $.
    mplmon.b $e |- B = ( Base ` P ) $.
    mplmon.z $e |- .0. = ( 0g ` R ) $.
    mplmon.o $e |- .1. = ( 1r ` R ) $.
    mplmon.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    mplmon.i $e |- ( ph -> I e. W ) $.
    mplmon.r $e |- ( ph -> R e. Ring ) $.
    mplmon.x $e |- ( ph -> X e. D ) $.
    $( A monomial is a polynomial.  (Contributed by Mario Carneiro,
       9-Jan-2015.) $)
    mplmon $p |- ( ph -> ( y e. D |-> if ( y = X , .1. , .0. ) ) e. B ) $=
      ( cv wceq cif cmpt cmps co cbs cfv wcel cfsupp wbr cmap crg eqid ringidcl
      wf ring0cl ifcld syl adantr fmptd fvex ccnv cn cima cfn ovex rabex2 elmap
      cn0 sylibr psrbas eleqtrrd cvv w3a csn csupp wss mptex funmpt c0g eqeltri
      wfun 3pm3.2i a1i snfi cdif wa wne eldifsni adantl neneqd iffalsed suppss2
      suppssfifsupp syl12anc mplelbas sylanbrc ) ABDBUAZKUBZGLUCZUDZIFUEUFZUGUH
      ZUIXBLUJUKZXBCUIAXBFUGUHZDULUFZXDADXFXBUPXBXGUIABDXAXFXBAXAXFUIZWSDUIAFUM
      UIZXHSXIWTGLXFXFFGXFUNZPUOXFFLXJOUQURUSUTXBUNVAXFDXBFUGVBHUAVCVDVEVFUIHVJ
      IULUFDQVJIULVGVHZVIVKAXDDFXCHIXFJXCUNZXJQXDUNZRVLVMAXBVNUIZXBWCZLVNUIZVOZ
      KVPZVFUIZXBLVQUFXRVRXEXQAXNXOXPBDXAXKVSBDXAVTLFWAUHVNOFWAVBWBWDWEXSAKWFWE
      ADXABVNXRLAWSDXRWGUIZWHZWTGLYAWSKXTWSKWIAWSDKWJWKWLWMDVNUIAXKWEWNXRXBVNVN
      LWOWPXDEFXCCIXBLMXLXMONWQWR $.

    mplmonmul.t $e |- .x. = ( .r ` P ) $.
    mplmonmul.x $e |- ( ph -> Y e. D ) $.
    $( The product of two monomials adds the exponent vectors together.  For
       example, the product of ` ( x ^ 2 ) ( y ^ 2 ) ` with
       ` ( y ^ 1 ) ( z ^ 3 ) ` is ` ( x ^ 2 ) ( y ^ 3 ) ( z ^ 3 ) ` , where the
       exponent vectors ` <. 2 , 2 , 0 >. ` and ` <. 0 , 1 , 3 >. ` are added
       to give ` <. 2 , 3 , 3 >. ` .  (Contributed by Mario Carneiro,
       9-Jan-2015.) $)
    mplmonmul $p |- ( ph -> ( ( y e. D |-> if ( y = X , .1. , .0. ) ) .x.
                              ( y e. D |-> if ( y = Y , .1. , .0. ) ) ) =
                      ( y e. D |-> if ( y = ( X oF + Y ) , .1. , .0. ) ) ) $=
      ( vk vj vx vz cv wceq cif cmpt cle cofr wbr crab cfv cmin cof cmulr caddc
      co cgsu eqid mplmon mplmul eqeq1 ifbid cbvmptv wcel wa cres simpr resmptd
      csn snssd oveq2d cmnd cbs crg ad2antrr ringmnd syl iftrue cur cvv eqeltri
      fvex fvmpt ssrab2 simplr psrbagconcl syl3anc sseldi ifex oveq12d ringidcl
      c0g ring0cl ringlidm syl2anc wral cn0 wb psrbagf ffvelrnda adantr adantlr
      ifcld wf cc nn0cn subadd syl3an eqcom syl6bb ralbidva mpteqb mprg 3bitr4g
      ovexd a1i feqmptd offval2 eqeq12d 3bitr4d 3eqtrd eqeltrrd fveq2 c0 mplelf
      eqeltrd ffvelrnd iffalsed cfn cdif wss cmap suppss2 sylan2 oveq2 wn gsum0
      fveq2d gsumsn cin disjsn wfn ringcl ffn fnresdisj 3syl biimpa sylan2br cr
      fmptd nn0red nn0addge1 ofrfval2 mpbird breq1 elrab sylanbrc breq2 rabbidv
      ralrimiva eleq2d syl5ibrcom con3dimp 3eqtr4a pm2.61dan ringcmn psrbaglefi
      ccmn sylan ssdif ax-mp sseli wne eldifsni adantl neneqd ccnv cn cima ovex
      rabex2 suppssr oveq1d eldifi ringlz eqtrd rabex w3a csupp cfsupp mptrabex
      wfun funmpt 3pm3.2i suppssfifsupp syl12anc eqtr3d mpteq2dva syl5eq eqtr4d
      snfi gsumres ) ABDBUIZLUJZHNUKZULZBDUXIMUJZHNUKZULZGVBUEDFUFUGUIZUEUIZUMU
      NZUOZUGDUPZUFUIZUXLUQZUXQUYAURUSZVBZUXOUQZFUTUQZVBZULZVCVBZULZBDUXILMVAUS
      VBZUJZHNUKZULZAUFUGCDEFGUYFIUEUXLUXOJOPUYFVDZUCSABCDEFHIJKLNOPQRSTUAUBVEZ
      ABCDEFHIJKMNOPQRSTUAUDVEZVFAUYNUEDUXQUYKUJZHNUKZULUYJBUEDUYMUYSUXIUXQUJUY
      LUYRHNUXIUXQUYKVGVHVIAUEDUYSUYIAUXQDVJZVKZFUYHLVOZVLZVCVBZUYSUYIVUALUXTVJ
      ZVUDUYSUJVUAVUEVKZVUDFUFVUBUYGULZVCVBZLUXLUQZUXQLUYCVBZUXOUQZUYFVBZUYSVUF
      VUCVUGFVCVUFUFUXTVUBUYGVUFLUXTVUAVUEVMZVPVNVQVUFFVRVJZLDVJZVULFVSUQZVJVUH
      VULUJVUFFVTVJZVUNAVUQUYTVUEUAWAZFWBWCAVUOUYTVUEUBWAZVUFVULUYSVUPVUFVULHVU
      JMUJZHNUKZUYFVBZVVAUYSVUFVUIHVUKVVAUYFVUFVUOVUIHUJVUSBLUXKHDUXLUXJHNWDUXL
      VDHFWEUQWFRFWEWHWGZWIWCVUFVUJDVJVUKVVAUJVUFUXTDVUJUXSUGDWJZVUFJKVJZUYTVUE
      VUJUXTVJAVVEUYTVUETWAZAUYTVUEWKZVUMUGDUXTIUXQJKLSUXTVDZWLWMWNBVUJUXNVVADU
      XOUXIVUJUJUXMVUTHNUXIVUJMVGVHUXOVDVUTHNVVCNFWRUQWFQFWRWHWGZWOWIWCWPVUFVUQ
      VVAVUPVJZVVBVVAUJVURVUFVUQVVJVURVUQVUTHNVUPVUPFHVUPVDZRWQVUPFNVVKQWSXIWCZ
      VUPFUYFHVVAVVKUYORWTXAVUFVUTUYRHNVUFUHJUHUIZUXQUQZVVMLUQZURVBZULZUHJVVMMU
      QZULZUJZUHJVVNULZUHJVVOVVRVAVBZULZUJZVUTUYRVUFVVPVVRUJZUHJXBZVVNVWBUJZUHJ
      XBZVVTVWDVUFVWEVWGUHJVUFVVMJVJZVKZVWEVWBVVNUJZVWGVWJVVNXCVJZVVOXCVJZVVRXC
      VJZVWEVWKXDZVUFJXCVVMUXQVUFVVEUYTJXCUXQXJVVFVVGDIUXQJKSXEXAZXFZVUAVWIVWMV
      UEVUAJXCVVMLVUAVVEVUOJXCLXJAVVEUYTTXGZAVUOUYTUBXGZDILJKSXEXAZXFZXHZVUAVWI
      VWNVUEVUAJXCVVMMAJXCMXJZUYTAVVEMDVJVXCTUDDIMJKSXEXAXGZXFZXHVWLVVNXKVJVWMV
      VOXKVJVWNVVRXKVJVWOVVNXLVVOXLVVRXLVVNVVOVVRXMXNWMVWBVVNXOXPXQVVPWFVJVVTVW
      FXDUHJUHJVVPVVRWFXRVWIVVNVVOURYAXSVVNWFVJZVWDVWHXDUHJUHJVVNVWBWFXRVXFVWIV
      VMUXQWHYBXSXTVUFVUJVVQMVVSVUFUHJVVNVVOURUXQLKXCXCVVFVWQVXBVUFUHJXCUXQVWPY
      CZVUALUHJVVOULUJVUEVUAUHJXCLVWTYCZXGYDVUAMVVSUJVUEVUAUHJXCMVXDYCZXGYEVUFU
      XQVWAUYKVWCVXGVUAUYKVWCUJVUEVUAUHJVVOVVRVALMKXCXCVWRVXAVXEVXHVXIYDZXGYEYF
      VHZYGZVUFVVAUYSVUPVXKVVLYHYLUYGVUPVULUFFLDVVKUYALUJZUYBVUIUYEVUKUYFUYALUX
      LYIVXMUYDVUJUXOUYALUXQUYCUUAUUDWPUUEWMVXLYGVUAVUEUUBZVKZFYJVCVBNVUDUYSFNQ
      UUCVXOVUCYJFVCVXNVUAUXTVUBUUFYJUJZVUCYJUJZUXTLUUGVUAVXPVXQVUAUXTVUPUYHXJU
      YHUXTUUHVXPVXQXDVUAUFUXTUYGVUPUYHVUAUYAUXTVJZVKZVUQUYBVUPVJUYEVUPVJZUYGVU
      PVJAVUQUYTVXRUAWAZVXSDVUPUYAUXLADVUPUXLXJZUYTVXRACDEFIJVUPUXLOVVKPSUYPYKZ
      WAVXSUXTDUYAVVDVUAVXRVMZWNYMVXSDVUPUYDUXOADVUPUXOXJUYTVXRACDEFIJVUPUXOOVV
      KPSUYQYKWAVXSUXTDUYDVVDVXSVVEUYTVXRUYDUXTVJAVVEUYTVXRTWAAUYTVXRWKVYDUGDUX
      TIUXQJKUYASVVHWLWMWNYMZVUPFUYFUYBUYEVVKUYOUUIWMUYHVDUUPZUXTVUPUYHUUJUXTVU
      BUYHUUKUULUUMUUNVQVXOUYRHNVUAUYRVUEVUAVUEUYRLUXPUYKUXRUOZUGDUPZVJZVUAVUOL
      UYKUXRUOZVYIVWSVUAVYJVVOVWBUMUOZUHJXBVUAVYKUHJVUAVWIVKZVVOUUOVJVWNVYKVYLV
      VOVXAUUQVXEVVOVVRUURXAUVFVUAUHJVVOVWBUMLUYKKXCWFVWRVXAVYLVVOVVRVAYAVXHVXJ
      UUSUUTVYGVYJUGLDUXPLUYKUXRUVAUVBUVCUYRUXTVYHLUYRUXSVYGUGDUXQUYKUXPUXRUVDU
      VEUVGUVHUVIYNUVJUVKVUAUXTVUPUYHFYOVUBNVVKQVUAVUQFUVNVJAVUQUYTUAXGFUVLWCAV
      VEUYTUXTYOVJTUGDIUXQJKSUVMUVOVYFVUAUXTUYGUFWFVUBNVUAUYAUXTVUBYPZVJZVKZUYG
      NUYEUYFVBZNVYOUYBNUYEUYFVYNVUAUYADVUBYPZVJUYBNUJVYMVYQUYAUXTDYQVYMVYQYQVV
      DUXTDVUBUVPUVQUVRVUADVUPWFUXLWFVUBUYANAVYBUYTVYCXGVUADUXKBWFVUBNVUAUXIVYQ
      VJZVKZUXJHNVYSUXILVYRUXILUVSVUAUXIDLUVTUWAUWBYNDWFVJVUAIUIUWCUWDUWEYOVJIX
      CJYRVBDSXCJYRUWFUWGZYBZYSWUANWFVJZVUAVVIYBUWHYTUWIVYNVUAVXRVYPNUJZUYAUXTV
      UBUWJVXSVUQVXTWUCVYAVYEVUPFUYFUYENVVKUYOQUWKXAYTUWLUXTWFVJVUAUXSUGDVYTUWM
      YBYSZVUAUYHWFVJZUYHUWRZWUBUWNZVUBYOVJZUYHNUWOVBVUBYQUYHNUWPUOWUGVUAWUEWUF
      WUBUXSUFUGDUYGVYTUWQUFUXTUYGUWSVVIUWTYBWUHVUALUXGYBWUDVUBUYHWFWFNUXAUXBUX
      HUXCUXDUXEUXF $.
  $}

  ${
    $d i k n w x z .^ $.  $d i k n w x y z .1. $.  $d k B $.  $d i k w x z G $.
    $d f i k n w x y z I $.  $d k x y N $.  $d i k n w x y z ph $.  $d f y R $.
    $d i k n w x y z D $.  $d i k w x z P $.  $d i k n w x z V $.
    $d f i k n w x y z .0. $.  $d f k n w x y z X $.  $d f i k w x y z Y $.
    $d i k y W $.  $d k w x z .x. $.
    mplcoe1.p $e |- P = ( I mPoly R ) $.
    mplcoe1.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    mplcoe1.z $e |- .0. = ( 0g ` R ) $.
    mplcoe1.o $e |- .1. = ( 1r ` R ) $.
    mplcoe1.i $e |- ( ph -> I e. W ) $.
    ${
      mplcoe1.b $e |- B = ( Base ` P ) $.
      mplcoe1.n $e |- .x. = ( .s ` P ) $.
      mplcoe1.r $e |- ( ph -> R e. Ring ) $.
      mplcoe1.x $e |- ( ph -> X e. B ) $.
      $( Decompose a polynomial into a finite sum of monomials.  (Contributed
         by Mario Carneiro, 9-Jan-2015.) $)
      mplcoe1 $p |- ( ph -> X = ( P gsum ( k e. D |->
        ( ( X ` k ) .x. ( y e. D |-> if ( y = k , .1. , .0. ) ) ) ) ) ) $=
        ( vw vx vz csupp co cv cfv weq cif cmpt cgsu wcel cbs mplelf feqmptd wa
        eqid wceq iftrue adantl wn cdif eldif ifid cvv wss ssid a1i ccnv cn cfn
        cima cn0 cmap ovex rabex2 c0g suppssr pm2.61dan mpteq2dva eqtr4d wf syl
        fvex wi cfsupp wbr mplelbas wel c0 csn sseq1 mpteq1 syl6eq oveq2d eleq2
        iffalsed mpteq2dv eqeq12d imbi12d imbi2d ifbid cxp crg fconstmpt cplusg
        syl2anc adantr ffvelrnda fveq2d eleqtrd mplmon lmodvscl syl3anc oveq12d
        simpr sylibr cof ad2antrr ifcld fmptd wfun mptex funmpt 3pm3.2i suppss2
        w3a suppssfifsupp syl12anc eqidd offval2 iftrued 3eqtr4d wo a2d oveq1d
        eqtrd eqeltri ifeq2d syl5reqr sylan2br anassrs cdm suppssdm fdm simprbi
        syl5sseq cmps fsuppimpd cun mpt0 gsum0 noel cgrp ringgrp mpl0 a1d ssun1
        mtbiri sstr2 ax-mp imim1i oveq1 ccmn mplring simprr unssad sselda clmod
        ringcmn simprll csca mpllmod mplsca adantlr syldan vex simprlr ffvelrnd
        unssbd snss fveq2 equequ2 gsumunsn cmulr ring0cl psrbas eleqtrrd eldifn
        elmap sylanbrc mpladd ovexd mplvsca ringidcl velsn sylib eqneltrd elun2
        grplid ringridm grprid sylnib ringrz wb biorf elun orcom bitri syl6rbbr
        3eqtrrd syl5ibr expr syl5 expcom findcard2s mpcom resmptd eldifi syl5eq
        mpd cres lmod0vs sylan2 gsumres eqtr3d ) AMEJMNUGUHZJUIZMUJZBDBJUKZHNUL
[encoded data, 4960 characters]
        HVHVWHYKYLUYHUYIYT $.
    $}

    mplcoe2.g $e |- G = ( mulGrp ` P ) $.
    mplcoe2.m $e |- .^ = ( .g ` G ) $.
    mplcoe2.v $e |- V = ( I mVar R ) $.
    ${
      mplcoe3.r $e |- ( ph -> R e. Ring ) $.
      mplcoe3.x $e |- ( ph -> X e. I ) $.
      mplcoe3.n $e |- ( ph -> N e. NN0 ) $.
      $( Decompose a monomial in one variable into a power of a variable.
         (Contributed by Mario Carneiro, 7-Jan-2015.)  (Proof shortened by AV,
         18-Jul-2019.) $)
      mplcoe3 $p |- ( ph -> ( y e. D |-> if ( y = ( k e. I |->
        if ( k = X , N , 0 ) ) , .1. , .0. ) ) = ( N .^ ( V ` X ) ) ) $=
        ( vx vn cn0 wcel cv wceq cc0 cif cmpt cfv co wi csn c1 caddc ifeq1 ifid
        cxp syl6eq mpteq2dv fconstmpt syl6eqr eqeq2d ifbid oveq1 eqeq12d imbi2d
        cur cbs eqid mvrcl mgpbas ringidval mulg0 syl mpl1 eqtr2d wa cof adantr
        cmulr crg snifpsrbag sylan syl2an mplmonmul mvrval eqcomd oveq2d simplr
        1nn0 a1i 0nn0 ifcl sylancl keepel offval2 iftrue oveq12d eqtr4d wn 00id
        eqidd iffalse 3eqtr4a pm2.61i mpteq2i 3eqtr3rd mplring syl2anc mgpplusg
        cmnd ringmgp simpr mulgnn0p1 syl3anc syl5ibr expcom a2d nn0ind mpcom )
        LUJUKABCBULZHKHULZOUMZLUNUOZUPZUMZFPUOZUPZLOMUQZIURZUMZUGABCYIHKYKUHULZ
        UNUOZUPZUMZFPUOZUPZYTYQIURZUMZUSABCYIKUNUTVEZUMZFPUOZUPZUNYQIURZUMZUSAB
        CYIHKYKUIULZUNUOZUPZUMZFPUOZUPZUUNYQIURZUMZUSABCYIHKYKUUNVAVBURZUNUOZUP
        ZUMZFPUOZUPZUVBYQIURZUMZUSAYSUSUHUILYTUNUMZUUGUUMAUVJUUEUUKUUFUULUVJBCU
        UDUUJUVJUUCUUIFPUVJUUBUUHYIUVJUUBHKUNUPUUHUVJHKUUAUNUVJUUAYKUNUNUOUNYKY
        TUNUNVCYKUNVDVFVGHKUNVHVIVJVKVGYTUNYQIVLVMVNYTUUNUMZUUGUVAAUVKUUEUUSUUF
        UUTUVKBCUUDUURUVKUUCUUQFPUVKUUBUUPYIUVKHKUUAUUOYKYTUUNUNVCVGVJVKVGYTUUN
        YQIVLVMVNYTUVBUMZUUGUVIAUVLUUEUVGUUFUVHUVLBCUUDUVFUVLUUCUVEFPUVLUUBUVDY
        IUVLHKUUAUVCYKYTUVBUNVCVGVJVKVGYTUVBYQIVLVMVNYTLUMZUUGYSAUVMUUEYPUUFYRU
        VMBCUUDYOUVMUUCYNFPUVMUUBYMYIUVMHKUUAYLYKYTLUNVCVGVJVKVGYTLYQIVLVMVNAUU
        LDVOUQZUUKAYQDVPUQZUKZUULUVNUMAUVODEKMNOQUDUVOVQZUAUEUFVRZUVOIJYQUVNUVO
        DJUBUVQVSZDUVNJUBUVNVQZVTUCWAWBABCDEUVNFGKNPQRSTUVTUAUEWCWDUUNUJUKZAUVA
        UVIAUWAUVAUVIUSUVAUVIAUWAWEZUUSYQDWHUQZURZUUTYQUWCURZUMUUSUUTYQUWCVLUWB
        UVGUWDUVHUWEUWBUUSBCYIHKYKVAUNUOZUPZUMFPUOUPZUWCURBCYIUUPUWGVBWFURZUMZF
        PUOZUPUWDUVGUWBBUVOCDEUWCFGKNUUPUWGPQUVQSTRAKNUKZUWAUAWGZAEWIUKZUWAUEWG
        ZAUWLUWAUUPCUKUAHCGKUUNNORWJWKUWCVQZAUWLVAUJUKZUWGCUKUWAUAUWQUWAWRWSHCG
        KVANORWJWLWMUWBUWHYQUUSUWCUWBYQUWHUWBHCEFBGKMNOWIPUDRSTUWMUWOAOKUKUWAUF
        WGWNWOWPUWBBCUWKUVFUWBUWJUVEFPUWBUWIUVDYIUWBUWIHKUUOUWFVBURZUPUVDUWBHKU
        UOUWFVBUUPUWGNUJUJUWMUWBYJKUKZWEZUWAUNUJUKUUOUJUKAUWAUWSWQWTYKUUNUNUJXA
        XBUWFUJUKUWTYKVAUNUJWRWTXCWSUWBUUPXJUWBUWGXJXDHKUWRUVCYKUWRUVCUMYKUWRUV
        BUVCYKUUOUUNUWFVAVBYKUUNUNXEYKVAUNXEXFYKUVBUNXEXGYKXHZUNUNVBURUNUWRUVCX
        IUXAUUOUNUWFUNVBYKUUNUNXKYKVAUNXKXFYKUVBUNXKXLXMXNVFVJVKVGXOUWBJXSUKZUW
        AUVPUVHUWEUMAUXBUWAADWIUKZUXBAUWLUWNUXCUAUEDEKNQXPXQDJUBXTWBWGAUWAYAAUV
        PUWAUVRWGUVOUWCIJUUNYQUVSUCDUWCJUBUWPXRYBYCVMYDYEYFYGYH $.
    $}

    $d G y $.  $d V y $.  $d .^ y $.
    ${
      $d G l $.  $d V l $.  $d Y l y $.  $d .^ l $.  $d ph l y $.
      mplcoe5.r $e |- ( ph -> R e. Ring ) $.
      mplcoe5.y $e |- ( ph -> Y e. D ) $.
      mplcoe5.c $e |- ( ph -> A. x e. I A. y e. I
                               ( ( V ` y ) ( +g ` G ) ( V ` x ) )
                                = ( ( V ` x ) ( +g ` G ) ( V ` y ) ) ) $.
      ${
        $d S k l y x $.
        mplcoe5.s $e |- ( ph -> S C_ I ) $.
        $( Lemma for ~ mplcoe4 .  (Contributed by AV, 7-Oct-2019.) $)
        mplcoe5lem $p |- ( ph -> ran ( k e. S |-> ( ( Y ` k ) .^ ( V ` k ) ) )
              C_ ( ( Cntz ` G ) ` ran ( k e. S
                                        |-> ( ( Y ` k ) .^ ( V ` k ) ) ) ) ) $=
          ( vl cv cfv co cmpt crn ccntz wss cplusg wceq wral wcel wi cvv wb vex
          wrex eqid elrnmpt mp1i fveq2 oveq12d eqeq2d cbvrexv wa cmulr mgpplusg
          cbs eqcomi csrg crg mplring syl2anc ringsrg syl adantr cmnd cn0 sseld
          ringmgp imdistani wf ccnv cn cfn psrbag mpbid simpld ffvelrnda sselda
          cima mvrcl mgpbas syl3anc adantlr syldan oveq2d oveq1d eqeq12d rspc2v
          mulgnn0cl anim12dan syl11 expd impl srgpcomp oveq12 ancoms syl5ibrcom
          mpcom rexlimdva com23 syl5bi sylbid imp32 ralrimivva fmptd frn sscntz
          syl6eleq mpbird ) AJGJUKZPULZYKNULZKUMZUNZUOZYPLUPULZULUQZBUKZCUKZLUR
          ULZUMZYTYSUUAUMZUSZCYPUTBYPUTZAUUDBCYPYPAYSYPVAZYTYPVAZUUDAUUFYSYNUSZ
          JGVFZUUGUUDVBYSVCVAUUFUUIVDABVEJGYNYSYOVCYOVGZVHVIAUUGUUIUUDAUUGYTYNU
          SZJGVFZUUIUUDVBZYTVCVAUUGUULVDACVEJGYNYTYOVCUUJVHVIUULYTUJUKZPULZUUNN
          ULZKUMZUSZUJGVFAUUMUUKUURJUJGYKUUNUSZYNUUQYTUUSYLUUOYMUUPKYKUUNPVJYKU
          UNNVJVKVLVMAUURUUMUJGAUUNGVAZVNZUUIUURUUDUVAUUHUURUUDVBJGUVAYKGVAZVNZ
          UUHUURUUDUVCUUDUUHUURVNZYNUUQUUAUMZUUQYNUUAUMZUSUVCUUQYMEEVQULZUUAKLY
          LUVGVGZEVOULZUUAEUVILUCUVIVGVPVRZUCUDUVAEVSVAZUVBAUVKUUTAEVTVAZUVKAMO
          VAZFVTVAZUVLUBUFEFMORWAWBZEWCWDWEWEZUVAUUQUVGVAZUVBUVALWFVAZUUOWGVAZU
          UPUVGVAZUVQAUVRUUTAUVLUVRUVOELUCWIWDZWEUVAAUUNMVAZVNUVSAUUTUWBAGMUUNU
          IWHWJAMWGUUNPAMWGPWKZPWLWMWTWNVAZAPDVAZUWCUWDVNZUGAUVMUWEUWFVDUBDIPMO
          SWOWDWPWQZWRWDZUVAUVGEFMNOUUNRUEUVHAUVMUUTUBWEAUVNUUTUFWEAGMUUNUIWSZX
          AZUVGKLUUOUUPUVGELUCUVHXBZUDXJXCWEAUVBYMUVGVAUUTAUVBVNZUVGEFMNOYKRUEU
          VHAUVMUVBUBWEAUVNUVBUFWEAGMYKUIWSZXAZXDZAUVBYLWGVAZUUTAUVBYKMVAZUWPUW
          MAMWGYKPUWGWRZXEXDUVCYMUUPEUVGUUAKLUUOUVHUVJUCUDUVPUWOUVAUVTUVBUWJWEU
          VAUVSUVBUWHWEAUUTUVBYMUUPUUAUMZUUPYMUUAUMZUSZYTNULZYSNULZUUAUMZUXCUXB
          UUAUMZUSZCMUTBMUTZAUUTUVBVNZUXAVBUHUXGAUXHUXAUWBUWQVNUXGUXAAUXHVNUXFU
          XAUXBUUPUUAUMZUUPUXBUUAUMZUSBCUUNYKMMYSUUNUSZUXDUXIUXEUXJUXKUXCUUPUXB
          UUAYSUUNNVJZXFUXKUXCUUPUXBUUAUXLXGXHYTYKUSZUXIUWSUXJUWTUXMUXBYMUUPUUA
          YTYKNVJZXGUXMUXBYMUUPUUAUXNXFXHXIAUUTUWBUVBUWQUWIUWMXKXLXMXSXNXOXOUVD
          UUBUVEUUCUVFYSYNYTUUQUUAXPUURUUHUUCUVFUSYTUUQYSYNUUAXPXQXHXRXMXTYAXTY
          BYCYAYCYDYEAYPLVQULZUQZUXPYRUUEVDAGUXOYOWKUXPAJGYNUXOYOUWLUVRUWPYMUXO
          VAYNUXOVAAUVRUVBUWAWEUWLAUWQVNUWPAUVBUWQAGMYKUIWHWJUWRWDUWLYMUVGUXOUW
          NUWKYIUXOKLYLYMUXOVGZUDXJXCUUJYFGUXOYOYGWDZUXRBCUXOUUAYPYPLYQUXQUUAVG
          YQVGYHWBYJ $.
      $}

      $d D a b $.  $d G a b $.  $d I a b $.  $d P a $.  $d R b $.  $d V a b $.
      $d W b $.  $d Y a b $.  $d a b f $.  $d a b k x y z $.  $d .^ a b $.
      $d .0. a b $.  $d .1. a b $.  $d ph a b $.
      $( Decompose a monomial into a finite product of powers of variables.
         Instead of assuming that ` R ` is a commutative ring (as in
         ~ mplcoe2 ), it is sufficient that ` R ` is a ring and all the
         variables of the multivariate polynomial commute.  (Contributed by AV,
         7-Oct-2019.) $)
      mplcoe5 $p |- ( ph -> ( y e. D |-> if ( y = Y , .1. , .0. ) )
                    = ( G gsum ( k e. I |-> ( ( Y ` k ) .^ ( V ` k ) ) ) ) ) $=
        ( vi vw vz va vb cv wceq cif cmpt ccnv cn cima wcel cfv cc0 co cgsu cn0
        wf cfn wa wb psrbag syl mpbid simpld feqmptd iftrue adantl wn cdif ifid
        eldif cvv csupp wss frnnn0supp syl2anc eqimss c0ex a1i suppssr syl5reqr
        ifeq2d sylan2br pm2.61dan mpteq2dva eqtr4d eqeq2d ifbid mpteq2dv wi wel
        c0 csn sseq1 eleq2 iffalsed mpteq1 syl6eq oveq2d eqeq12d imbi12d imbi2d
        cur eqid weq caddc adantr crg ffvelrnda 0nn0 ifcl sylancl fmptd suppss2
        syl5ss eqidd nn0cnd iftrued oveq12d simpr 3eqtr4d wo eqtrd fveq2 oveq1d
        wral mplcoe5lem mvrcl mulgnn0cl syl3anc a2d anassrs cdm cnvimass simprd
        cres fdm syl5sseq cxp cun noel mtbiri fconstmpt syl6eqr ringidval gsum0
        mpt0 eqcomd a1d ssun1 sstr2 ax-mp imim1i cmulr oveq1 cof simprll eldifn
        mpl1 cbs eqeltrrd mpbir2and ssun2 simprr vex sylibr ffvelrnd snifpsrbag
        ssfi mplmonmul mplcoe3 offval2 addid2d simprlr ad2antrr eqneltrd fveq2d
        snss elsni sseldi velsn sylnib biorf elun orcom bitri syl6rbbr 3eqtr3rd
        addid1d ccntz mgpbas mgpplusg cmnd mplring cplusg cbvral2v sylib sselda
        ringmgp adantlr syldan gsumzunsnd expr syl5 expcom findcard2s mpcom mpd
        syl5ibr resmptd ssid eldifi sylan2 mulg0 cfsupp wbr mptexg funmpt fvexd
        wfun suppssfifsupp syl32anc gsumzres 3eqtr2d ) ACDCUMZOUNZGPUOZUPCDUYNU
[encoded data, 5040 characters]
        VVRWYBUYRVUJWAWAVWPUYJUYKUYLUYMYL $.
    $}

    ${
      mplcoe2.r $e |- ( ph -> R e. CRing ) $.
      mplcoe2.y $e |- ( ph -> Y e. D ) $.
      $( Decompose a monomial into a finite product of powers of variables.
         (The assumption that ` R ` is a commutative ring is not strictly
         necessary, because the submonoid of monomials is in the center of the
         multiplicative monoid of polynomials, but it simplifies the proof.)
         (Contributed by Mario Carneiro, 10-Jan-2015.)  (Proof shortened by AV,
         18-Oct-2019.) $)
      mplcoe2 $p |- ( ph -> ( y e. D |-> if ( y = Y , .1. , .0. ) ) =
        ( G gsum ( k e. I |-> ( ( Y ` k ) .^ ( V ` k ) ) ) ) ) $=
        ( vx ccrg wcel crg crngring syl cv cfv cplusg co wa cbs mplcrng syl2anc
        wceq adantr eqid simprr mvrcl simprl mgpplusg eqcomi crngcom ralrimivva
        cmulr syl3anc mplcoe5 ) AUFBCDEFGHIJKLMNOPQRSTUAUBUCAEUGUHZEUIUHZUDEUJU
        KZUEABULZLUMZUFULZLUMZJUNUMZUOVSVQVTUOUTZUFBKKAVRKUHZVPKUHZUPZUPZDUGUHZ
        VQDUQUMZUHVSWGUHWAAWFWDAKMUHZVMWFTUDDEKMPURUSVAWEWGDEKLMVPPUCWGVBZAWHWD
        TVAZAVNWDVOVAZAWBWCVCVDWEWGDEKLMVRPUCWIWJWKAWBWCVEVDWGDVTVQVSWIDVJUMZVT
        DWLJUAWLVBVFVGVHVKVIVL $.
    $}
  $}

  ${
    $d k u v x z A $.  $d k u v x y z ph $.  $d f k y z R $.  $d k y z W $.
    $d f k u v x y z I $.  $d k u v x y z P $.  $d k u v x y z V $.
    mplbas2.p $e |- P = ( I mPoly R ) $.
    mplbas2.s $e |- S = ( I mPwSer R ) $.
    mplbas2.v $e |- V = ( I mVar R ) $.
    mplbas2.a $e |- A = ( AlgSpan ` S ) $.
    mplbas2.i $e |- ( ph -> I e. W ) $.
    mplbas2.r $e |- ( ph -> R e. CRing ) $.
    $( An alternative expression for the set of polynomials, as the smallest
       subalgebra of the set of power series that contains all the variable
       generators.  (Contributed by Mario Carneiro, 10-Jan-2015.) $)
    mplbas2 $p |- ( ph -> ( A ` ran V ) = ( Base ` P ) ) $=
      ( cfv wcel eqid syl co cvv vx vk vf vy vz vu vv crn cbs casa wss mplbasss
      psrassa a1i wf wfn cv wral ccrg crg crngring mvrf ffnd adantr simpr mvrcl
      wa ralrimiva ffnfv sylanbrc frn aspss syl3anc csubrg clss mplsubrg mpllss
      wceq aspid sseqtrd ccnv cn cima cfn cn0 cmap crab cur c0g cmpt cvsca cgsu
      cif mplcoe1 cabl mplring syl2anc ringabl ovex rabex csubg syl6ss aspsubrg
      wb mplval2 subsubrg mpbir2and subrgsubg clmod csca mpllmod asplss psrlmod
      ad2antrr lsslss mplelf ffvelrnda mplsca eleqtrd cmgp ccmn ad3antrrr fmptd
      fveq2d wfun csupp cfsupp wbr funmpt cdif cc0 adantl suppssr oveq1d eldifi
      fvexd eqtrd suppss2 suppssfifsupp eqeltrd mplcoe2 mplcrng crngmgp csubmnd
      cmg ringidval subrgsubm simplll psrbag biimpa simpld aspssid sylan sseldd
      fnfvelrn cmulr mgpbas mgpplusg subrgmcl mulgnn0subcl mptexg simprd elrabi
      syl3an1 subrg1cl elmapi frnnn0supp c0ex sylanl2 mulg0 syl32anc gsumsubmcl
      eqimss lssvscl syl22anc w3a mptrabex fvex 3pm3.2i mplelbas fsuppimpd ssid
      simprbi mplmon lmod0vs sylan2 syl12anc gsumsubgcl ex ssrdv eqssd ) AGUHZB
      OZCUIOZAUWMUWNBOZUWNAEUJPZUWNEUIOZUKZUWLUWNUKZUWMUWOUKADEFHJMNUMZUWRAUWQC
      DEUWNFIJUWNQZUWQQZULZUNAFUWNGUOZUWSAGFUPZUAUQZGOUWNPZUAFURUXDAFUWQGAUWQDE
      FGHJKUXBMADUSPZDUTPZNDVARZVBVCZAUXGUAFAUXFFPZVGUWNCDFGHUXFIKUXAAFHPZUXLMV
      DAUXIUXLUXJVDAUXLVEVFVHUAFUWNGVIVJFUWNGVKRZBUWNUWLUWQELUXBVLVMAUWPUWNEVNO
      ZPZUWNEVOOZPZUWOUWNVRUWTACDEUWNFHJIUXAMUXJVPZACDEUWNFHJIUXAMUXJVQZBUWNUXQ
      UWQELUXBUXQQZVSVMVTZAUAUWNUWMAUXFUWNPZUXFUWMPAUYCVGZUXFCUBUCUQWAWBWCWDPZU
      CWEFWFSZWGZUBUQZUXFOZUDUYGUDUQUYHVRDWHOZDWIOZWMWJZCWKOZSZWJZWLSUWMUYDUDUW
      NUYGCDUYMUYJUCUBFHUXFUYKIUYGQZUYKQZUYJQZAUXMUYCMVDZUXAUYMQZAUXIUYCUXJVDZA
      UYCVEZWNUYDUYGUWMUYOCTCWIOZVUCQZACWOPZUYCACUTPZVUEAUXMUXIVUFMUXJCDFHIWPWQ
      CWRRVDUYGTPUYDUYEUCUYFWEFWFWSZWTUNZAUWMCXAOPZUYCAUWMCVNOPZVUIAVUJUWMUXOPZ
      UWMUWNUKZAUWPUWLUWQUKZVUKUWTAUWLUWNUWQUXNUXCXBZBUWLUWQELUXBXCWQUYBAUXPVUJ
      VUKVULVGXDUXSUWNUWMECCDEUWNFIJUXAXEZXFRXGZUWMCXHRVDUYDUBUYGUYNUWMUYOUYDUY
      HUYGPZVGZCXIPZUWMCVOOZPZUYICXJOZUIOZPUYLUWMPUYNUWMPAVUSUYCVUQAUXMUXIVUSMU
      XJCDFHIXKWQXNZAVVAUYCVUQAVVAUWMUXQPZVULAUWPVUMVVEUWTVUNBUWLUXQUWQELUXBUYA
      XLWQUYBAEXIPUXRVVAVVEVULVGXDADEFHJMUXJXMUXTUXQVUTUWNUWMECVUOUYAVUTQZXOWQX
      GXNVURUYIDUIOZVVCUYDUYGVVGUYHUXFUYDUWNUYGCDUCFVVGUXFIVVGQUXAUYPVUBXPZXQVU
      RDVVBUIUYDDVVBVRVUQUYDCDFHUTIUYSVUAXRZVDYDXSVURUYLCXTOZUEFUEUQZUYHOZVVKGO
      ZVVJUUEOZSZWJZWLSUWMVURUDUYGCDUYJUCUEVVNVVJFGHUYHUYKIUYPUYQUYRAUXMUYCVUQM
      XNZVVJQZVVNQZKAUXHUYCVUQNXNUYDVUQVEZUUAVURFUWMVVPVVJHCWHOZCVWAVVJVVRVWAQZ
      UUFZAVVJYAPZUYCVUQACUSPZVWDAUXMUXHVWEMNCDFHIUUBWQCVVJVVRUUCRZXNVVQVURVUJU
      WMVVJUUDOPAVUJUYCVUQVUPXNUWMCVVJVVRUUGRVURUEFVVOUWMVVPVURVVKFPZVGZAVVLWEP
      VVMUWMPVVOUWMPAUYCVUQVWGUUHVURFWEVVKUYHVURFWEUYHUOZUYHWAWBWCZWDPZUYDVUQVW
      IVWKVGZUYDUXMVUQVWLXDUYSUYGUCUYHFHUYPUUIRUUJZUUKXQVWHUWLUWMVVMAUWLUWMUKZU
      YCVUQVWGAUWPVUMVWNUWTVUNBUWLUWQELUXBUULWQYBVURUXEVWGVVMUWLPAUXEUYCVUQUXKX
      NFVVKGUUOUUMUUNAUFUGUWNCUUPOZUWMVVNVVJVVLYAVVMVWAUWNCVVJVVRUXAUUQZVVSCVWO
      VVJVVRVWOQZUURVWFUYBAVUJUFUQZUWMPUGUQZUWMPVWRVWSVWOSUWMPVUPUWMCVWOVWRVWSV
      WQUUSUVDVWCAVUJVWAUWMPVUPUWMCVWAVWBUVERUUTVMVVPQYCVURVVPTPZVVPYEZVWATPVWK
      VVPVWAYFSVWJUKVVPVWAYGYHAVWTUYCVUQAUXMVWTMUEFVVOHUVARXNVXAVURUEFVVOYIUNVU
      RCWHYPVURVWIVWKVWMUVBVURFVVOUEHVWJVWAVURVVKFVWJYJPZVGZVVOYKVVMVVNSZVWAVXC
      VVLYKVVMVVNVUQUYDUYHUYFPZVXBVVLYKVRUYEUCUYHUYFUVCUYDVXEVGZFWETUYHHVWJVVKY
      KVXEVWIUYDUYHWEFUVFYLZVXFUYHYKYFSZVWJVRZVXHVWJUKVXFUXMVWIVXIAUXMUYCVXEMXN
      ZVXGUYHFHUVGWQVXHVWJUVMRVXJYKTPVXFUVHUNYMUVIYNVXCVVMUWNPVXDVWAVRVXCUWNCDF
      GHVVKIKUXAAUXMUYCVUQVXBMYBAUXIUYCVUQVXBUXJYBVXBVWGVURVVKFVWJYOYLVFUWNVVNV
      VJVVMVWAVWPVWCVVSUVJRYQVVQYRVWJVVPTTVWAYSUVKUVLYTVVCVUTUYMUWMVVBCUYIUYLVV
      BQZUYTVVCQVVFUVNUVOUYOQYCUYDUYOTPZUYOYEZVUCTPZUVPZUXFUYKYFSZWDPUYOVUCYFSV
      XPUKUYOVUCYGYHVXOUYDVXLVXMVXNUYEUBUCUYFUYNVUGUVQUBUYGUYNYICWIUVRUVSUNUYDU
      XFUYKUYCUXFUYKYGYHZAUYCUXFUWQPVXQUWQCDEUWNFUXFUYKIJUXBUYQUXAUVTUWCYLUWAUY
      DUYGUYNUBTVXPVUCUYDUYHUYGVXPYJPZVGZUYNVVBWIOZUYLUYMSZVUCVXSUYIVXTUYLUYMVX
      SUYIUYKVXTUYDUYGVVGTUXFTVXPUYHUYKVVHVXPVXPUKUYDVXPUWBUNVUHUYDDWIYPYMUYDUY
      KVXTVRVXRUYDDVVBWIVVIYDVDYQYNVXRUYDVUQVYAVUCVRZUYHUYGVXPYOVURVUSUYLUWNPVY
      BVVDVURUDUWNUYGCDUYJUCFHUYHUYKIUXAUYQUYRUYPVVQAUXIUYCVUQUXJXNVVTUWDUYMVVB
      VXTUWNCUYLVUCUXAVXKUYTVXTQVUDUWEWQUWFYQVUHYRVXPUYOTTVUCYSUWGUWHYTUWIUWJUW
      K $.
  $}

  ${
    $d i r x y D $.  $d h i r w x y z I $.  $d h x y ph $.  $d i r w x y z T $.
    ltbval.c $e |- C = ( T <bag I ) $.
    ltbval.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
    ltbval.i $e |- ( ph -> I e. V ) $.
    ltbval.t $e |- ( ph -> T e. W ) $.
    $( Value of the well-order on finite bags.  (Contributed by Mario Carneiro,
       8-Feb-2015.) $)
    ltbval $p |- ( ph -> C = { <. x , y >. | ( { x , y } C_ D /\
        E. z e. I ( ( x ` z ) < ( y ` z ) /\
          A. w e. I ( z T w -> ( x ` w ) = ( y ` w ) ) ) ) } ) $=
      ( cv wceq wa wcel vr vi cltb co cpr wss cfv clt wbr wi wral wrex cvv elex
      copab ccnv cn cima cfn cn0 cmap crab simpr oveq2d rabeq syl syl6eqr simpl
      sseq2d breqd imbi1d raleqbidv anbi2d rexeqbidv opabbidv df-ltbag vex prss
      anbi12d anbi1i opabbii cxp ovex rabex2 xpex opabssxp ssexi ovmpt2a syl2an
      eqeltrri syl2anc syl5eq ) AFHJUCUDZBQZCQZUEZGUFZDQZWNUGWRWOUGUHUIZWREQZHU
      IZWTWNUGWTWOUGRZUJZEJUKZSZDJULZSZBCUOZMAHLTZJKTZWMXHRZPOXIHUMTJUMTXKXJHLU
      NJKUNUAUBHJUMUMWPIQUPUQURUSTZIUTUBQZVAUDZVBZUFZWSWRWTUAQZUIZXBUJZEXMUKZSZ
      DXMULZSZBCUOXHUCXQHRZXMJRZSZYCXGBCYFXPWQYBXFYFXOGWPYFXOXLIUTJVAUDZVBZGYFX
      NYGRXOYHRYFXMJUTVAYDYEVCZVDXLIXNYGVEVFNVGVIYFYAXEDXMJYIYFXTXDWSYFXSXCEXMJ
      YIYFXRXAXBYFXQHWRWTYDYEVHVJVKVLVMVNVSVOBCDEIUBUAVPWNGTWOGTSZXFSZBCUOZXHUM
      YKXGBCYJWQXFWNWOGBVQCVQVRVTWAYLGGWBGGXLIYGGNUTJVAWCWDZYMWEXFBCGGWFWGWJWHW
      IWKWL $.

    ltbwe.w $e |- ( ph -> T We I ) $.
    $( The finite bag order is a well-order, given a well-order of the index
       set.  (Contributed by Mario Carneiro, 2-Jun-2015.) $)
    ltbwe $p |- ( ph -> C We D ) $=
      ( vx vy cfv clt cc0 cn0 wcel vz vw wwe cv wbr wceq wi wral wrex copab cxp
      wa cin cfsupp cmap co crab coi chash cres eqid breq1 cbvrabv nn0uz ltweuz
      com cuz weeq2 mpbiri mp1i c0 wne 0nn0 ne0i hashgval2 om2uzoi oieq2 eqtr4i
      0z ax-mp peano1 fvres hash0 eqtr2i wemapwe wb ccnv cn cima cfn csupp wfun
      cvv elmapfun adantl simpr a1i funisfsupp syl3anc elmapi frnnn0supp eleq1d
      c0ex syl2an bitr2d rabbidva syl5eq syl mpbird weinxp sylib cpr wss ltbval
      wf df-xp vex prss opabbii ineq1i inopab incom 3eqtr3i syl6eq weeq1 ) ACBU
      CZCUAUDZNUDZPYGOUDZPQUEYGUBUDZDUEYJYHPYJYIPUFUGUBFUHULUAFUIZNOUJZCCUKZUMZ
      UCZACYLUCZYOAYPEUDZRUNUEZESFUOUPZUQZYLUCZANOUAUBFSDQYLYTFDURZUSVFUTZRYLVA
      YRYHRUNUEENYSYQYHRUNVBVCMSRVGPZUFZSQUCZAVDUUEUUFUUDQUCRVESUUDQVHVIVJRSTSV
      KVLAVMSRVNVJUUBVAUUCUUDQURZSQURZNRUUCVSNVOVPUUEUUHUUGUFVDSUUDQVQVTVRVKUUC
      PZVKUSPZRVKVFTUUIUUJUFWAVKVFUSWBVTWCWDWEACYTUFYPUUAWFACYQWGWHWIZWJTZEYSUQ
      YTJAUULYREYSAYQYSTZULZYRYQRWKUPZWJTZUULUUNYQWLZUUMRWMTZYRUUPWFUUMUUQAYQSF
      WNWOAUUMWPUURUUNXCWQYQYSWMRWRWSAFGTZFSYQXOZUUPUULWFUUMKYQSFWTUUSUUTULUUOU
      UKWJYQFGXAXBXDXEXFXGCYTYLVHXHXICYLXJXKABYNUFYFYOWFABYHYIXLCXMZYKULNOUJZYN
      ANOUAUBBCDEFGHIJKLXNUVANOUJZYLUMYMYLUMUVBYNUVCYMYLYMYHCTYICTULZNOUJUVCNOC
      CXPUVDUVANOYHYICNXQOXQXRXSWDXTUVAYKNOYAYMYLYBYCYDCBYNYEXHXI $.
  $}

  ${
    $d r .<_ $.  $d i p s B $.  $d d h i p r s w x y z I $.  $d r w x y z ph $.
    $d d i p s .< $.  $d d i p s w z D $.  $d i p r s S $.  $d r w x y z T $.
    $d d i p r s w x y z R $.
    $( Lemma for ordered power series.  (Contributed by Stefan O'Rear,
       2-Oct-2015.) $)
    reldmopsr $p |- Rel dom ordPwSer $=
      ( vi vs vr vp vx vy vz vw vd vh cvv cv cxp cpw cmps co cfv wbr wceq wa wi
      cnx cple cpr cbs wss cplt cltb wral wrex ccnv cima cfn wcel cn0 cmap crab
      cn wsbc wo copab cop csts csb cmpt copws df-opsr reldmmpt2 ) ABKKCALZVIMN
      DVIBLZOPDLZUBUCQELZFLZUDVKUEQUFGLZVLQVNVMQVJUGQRHLZVNCLVIUHPRVOVLQVOVMQSU
      AHILZUITGVPUJIJLUKURULUMUNJUOVIUPPUQUSVLVMSUTTEFVAVBVCPVDVEVFEFGHJABCDIVG
      VH $.

    opsrval.s $e |- S = ( I mPwSer R ) $.
    opsrval.o $e |- O = ( ( I ordPwSer R ) ` T ) $.
    opsrval.b $e |- B = ( Base ` S ) $.
    opsrval.q $e |- .< = ( lt ` R ) $.
    opsrval.c $e |- C = ( T <bag I ) $.
    opsrval.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
    opsrval.l $e |- .<_ = { <. x , y >. | ( { x , y } C_ B /\
      ( E. z e. D ( ( x ` z ) .< ( y ` z ) /\
        A. w e. D ( w C z -> ( x ` w ) = ( y ` w ) ) ) \/ x = y ) ) } $.
    opsrval.i $e |- ( ph -> I e. V ) $.
    opsrval.r $e |- ( ph -> R e. W ) $.
    opsrval.t $e |- ( ph -> T C_ ( I X. I ) ) $.
    $( The value of the "ordered power series" function.  This is the same as
       ` mPwSer ` ~ psrval , but with the addition of a well-order on ` I ` we
       can turn a strict order on ` R ` into a strict order on the power series
       structure.  (Contributed by Mario Carneiro, 8-Feb-2015.) $)
    opsrval $p |- ( ph -> O = ( S sSet <. ( le ` ndx ) , .<_ >. ) ) $=
      ( vr vi vs vp vd copws co cfv cnx cple cop csts cv cpr wss cltb wceq wral
      wbr wi wa wrex wo copab cxp cpw cvv wcel cmpt elex syl xpexg pwexg mptexg
      syl2anc 3syl cmps cbs cplt ccnv cima cfn cn0 cmap crab wsbc simpl sqxpeqd
      cn csb pweqd ovexd id oveq12 sylan9eqr syl6eqr fveq2d sseq2d rabex adantr
      ovex oveq2d rabeq simpr simpllr breqd raleqbidv anbi12d rexeqbidv sbcied2
      a1i imbi1d orbi1d opabbidv opeq2d oveq12d csbied df-opsr ovmpt2ga syl3anc
      mpteq12dv oveq1d ralbidv anbi2d rexbidv wb elpw2g mpbird fvmptd syl5eq )
      APLNIUNUOZUPJUQURUPZOUSZUTUOZTAUILJYTBVAZCVAZVBZFVCZDVAZUUCUPZUUGUUDUPZKV
      GZEVAZUUGUIVAZNVDUOZVGZUUKUUCUPUUKUUDUPVEZVHZEHVFZVIZDHVJZUUCUUDVEZVKZVIZ
      BCVLZUSZUTUOZUUBNNVMZVNZYSVOANVOVPZIVOVPZUIUVGUVEVQZVOVPZYSUVJVEANQVPZUVH
      UFNQVRVSAIRVPUVIUGIRVRVSAUVFVOVPZUVGVOVPUVKAUVLUVLUVMUFUFNNQQVTWCZUVFVOWA
      UIUVGUVEVOWBWDUJUKNIVOVOUIUJVAZUVOVMZVNZULUVOUKVAZWEUOZULVAZYTUUEUVTWFUPZ
      VCZUUHUUIUVRWGUPZVGZUUKUUGUULUVOVDUOZVGZUUOVHZEUMVAZVFZVIZDUWHVJZUMMVAWHW
      QWIWJVPZMWKUVOWLUOZWMZWNZUUTVKZVIZBCVLZUSZUTUOZWRZVQUVJUNVOUVONVEZUVRIVEZ
      VIZUIUVQUXAUVGUVEUXDUVPUVFUXDUVONUXBUXCWOZWPWSUXDULUVSUWTUVEVOUXDUVOUVRWE
      WTUXDUVTUVSVEZVIZUVTJUWSUVDUTUXGUVTNIWEUOZJUXFUXDUVTUVSUXHUXFXAUVONUVRIWE
      XBXCSXDZUXGUWRUVCYTUXGUWQUVBBCUXGUWBUUFUWPUVAUXGUWAFUUEUXGUWAJWFUPFUXGUVT
      JWFUXIXEUAXDXFUXGUWOUUSUUTUXGUWKUUSUMUWNHVOUWNVOVPUXGUWLMUWMWKUVOWLXIXGXS
      UXGUWNUWLMWKNWLUOZWMZHUXGUWMUXJVEUWNUXKVEUXGUVONWKWLUXDUXBUXFUXEXHZXJUWLM
      UWMUXJXKVSUDXDUXGUWHHVEZVIZUWJUURDUWHHUXGUXMXLZUXNUWDUUJUWIUUQUXNUWCKUUHU
      UIUXNUWCIWGUPKUXNUVRIWGUXBUXCUXFUXMXMXEUBXDXNUXNUWGUUPEUWHHUXOUXNUWFUUNUU
      OUXNUWEUUMUUKUUGUXNUVONUULVDUXGUXBUXMUXLXHXJXNXTXOXPXQXRYAXPYBYCYDYEYIBCD
      EMUJUKUIULUMYFYGYHAUULLVEZVIZUVDUUAJUTUXQUVCOYTUXQUVCUUFUUJUUKUUGGVGZUUOV
      HZEHVFZVIZDHVJZUUTVKZVIZBCVLOUXQUVBUYDBCUXQUVAUYCUUFUXQUUSUYBUUTUXQUURUYA
      DHUXQUUQUXTUUJUXQUUPUXSEHUXQUUNUXRUUOUXQUUMGUUKUUGUXQUUMLNVDUOGUXQUULLNVD
      AUXPXLYJUCXDXNXTYKYLYMYAYLYBUEXDYCXJALUVGVPZLUVFVCZUHAUVMUYEUYFYNUVNLUVFV
      OYOVSYPAJUUAUTWTYQYR $.
  $}

  ${
    $d x y B $.  $d w z D $.  $d h w x y z I $.  $d w x y z R $.
    $d w x y z ph $.  $d w x y z T $.
    opsrle.s $e |- S = ( I mPwSer R ) $.
    opsrle.o $e |- O = ( ( I ordPwSer R ) ` T ) $.
    opsrle.b $e |- B = ( Base ` S ) $.
    opsrle.q $e |- .< = ( lt ` R ) $.
    opsrle.c $e |- C = ( T <bag I ) $.
    opsrle.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
    opsrle.l $e |- .<_ = ( le ` O ) $.
    opsrle.t $e |- ( ph -> T C_ ( I X. I ) ) $.
    $( An alternative expression for the set of polynomials, as the smallest
       subalgebra of the set of power series that contains all the variable
       generators.  (Contributed by Mario Carneiro, 8-Feb-2015.)  (Revised by
       Mario Carneiro, 2-Oct-2015.) $)
    opsrle $p |- ( ph -> .<_ = { <. x , y >. | ( { x , y } C_ B /\
      ( E. z e. D ( ( x ` z ) .< ( y ` z ) /\
        A. w e. D ( w C z -> ( x ` w ) = ( y ` w ) ) ) \/ x = y ) ) } ) $=
      ( cvv wcel wa cv cpr wss cfv wbr wceq wi wral wrex wo copab cple cnx csts
      cop co eqid simprl simprr cxp adantr opsrval fveq2d cmps ovex eqeltri cbs
      fvex xpex vex anbi1i opabbii opabssxp eqsstr3i ssexi pleid setsid 3eqtr4g
      prss mp2an wn c0 copws reldmopsr adantl fveq1d syl5eq 0fv syl6eq reldmpsr
      ovprc str0 base0 xpeq2d xp0 sseq0 sylancr eqtr4d pm2.61dan ) ANUEUFZIUEUF
      ZUGZOBUHZCUHZUIFUJZDUHZXJUKXMXKUKKULEUHZXMGULXNXJUKXNXKUKUMUNEHUOUGDHUPXJ
      XKUMUQZUGZBCURZUMAXIUGZPUSUKZJUTUSUKZXQVBVAVCZUSUKZOXQXRPYAUSXRBCDEFGHIJK
      LMNXQPUEUEQRSTUAUBXQVDAXGXHVEAXGXHVFALNNVGUJXIUDVHVIVJUCJUEUFXQUEUFXQYBUM
      JNIVKVCZUEQNIVKVLVMXQFFVGZFFFJVNUKZUESJVNVOVMZYFVPXQXJFUFXKFUFUGZXOUGZBCU
      RYDYHXPBCYGXLXOXJXKFBVQCVQWFVRVSXOBCFFVTWAZWBUEXQUSUEJWCWDWGWEAXIWHZUGZOW
      IXQYKXSWIUSUKOWIYKPWIUSYKPLWIUKZWIYKPLNIWJVCZUKYLRYKLYMWIYJYMWIUMANIWJWKW
      RWLWMWNLWOWPVJUCUSXTWCWSWEYKXQYDUJYDWIUMXQWIUMYIYKYDFWIVGWIYKFWIFYKYEWIVN
      UKFWIYKJWIVNYKJYCWIQYJYCWIUMANIVKWQWRWLWNVJSWTWEXAFXBWPXQYDXCXDXEXF $.
  $}

  ${
    $d h w x y z I $.  $d w x y z R $.  $d x y S $.  $d w x y z T $.  $d z W $.
    $d w x y z ph $.  $d x z V $.
    opsrval2.s $e |- S = ( I mPwSer R ) $.
    opsrval2.o $e |- O = ( ( I ordPwSer R ) ` T ) $.
    opsrval2.l $e |- .<_ = ( le ` O ) $.
    opsrval2.i $e |- ( ph -> I e. V ) $.
    opsrval2.r $e |- ( ph -> R e. W ) $.
    opsrval2.t $e |- ( ph -> T C_ ( I X. I ) ) $.
    $( Self-referential expression for the ordered power series structure.
       (Contributed by Mario Carneiro, 8-Feb-2015.) $)
    opsrval2 $p |- ( ph -> O = ( S sSet <. ( le ` ndx ) , .<_ >. ) ) $=
      ( vx vy cfv cv eqid vz vw vh cnx cple cpr cbs wss cplt wbr cltb wceq ccnv
      co wi cn cima cfn wcel cn0 cmap crab wral wa wrex wo copab opsrval opsrle
      cop csts opeq2d oveq2d eqtr4d ) AGCUDUERZPSZQSZUFCUGRZUHUASZVPRVSVQRBUIRZ
      UJUBSZVSDEUKUNZUJWAVPRWAVQRULUOUBUCSUMUPUQURUSUCUTEVAUNVBZVCVDUAWCVEVPVQU
      LVFVDPQVGZVJZVKUNCVOFVJZVKUNAPQUAUBVRWBWCBCVTDUCEWDGHIJKVRTZVTTZWBTZWCTZW
      DTMNOVHAWFWECVKAFWDVOAPQUAUBVRWBWCBCVTDUCEFGJKWGWHWIWJLOVIVLVMVN $.
  $}

  ${
    opsrbas.s $e |- S = ( I mPwSer R ) $.
    opsrbas.o $e |- O = ( ( I ordPwSer R ) ` T ) $.
    opsrbas.t $e |- ( ph -> T C_ ( I X. I ) ) $.
    ${
      opsrbaslem.1 $e |- E = Slot N $.
      opsrbaslem.2 $e |- N e. NN $.
      opsrbaslem.3 $e |- N < ; 1 0 $.
      $( Get a component of the ordered power series structure.  (Contributed
         by Mario Carneiro, 8-Feb-2015.)  (Revised by Mario Carneiro,
         2-Oct-2015.)  (Revised by AV, 9-Sep-2021.) $)
      opsrbaslem $p |- ( ph -> ( E ` S ) = ( E ` O ) ) $=
        ( cvv wcel wa cfv co c0 wceq cnx cple cop csts simprl simprr cxp adantr
        eqid wss opsrval2 fveq2d ndxid wne cc0 cdc ltneii ndxarg plendx neeq12i
        c1 nnrei mpbir setsnid syl6reqr wn cmps copws 0fv eqcomi reldmpsr ovprc
        reldmopsr fveq1d 3eqtr4a adantl 3eqtr4g pm2.61dan ) AFOPZBOPZQZCERZHERZ
        UAAWBQZWDCUBUCRZHUCRZUDUESZERWCWEHWHEWEBCDFWGHOOIJWGUJAVTWAUFAVTWAUGADF
        FUHUKWBKUIULUMWGWFECEGLMUNUBERZWFUOGVBUPUQZUOGWJGMVCNURWIGWFWJEGLMUSUTV
        AVDVEVFAWBVGZQZCHEWLFBVHSZDFBVISZRZCHWKWMWOUAAWKTDTRZWMWOWPTDVJVKFBVHVL
        VMWKDWNTFBVIVNVMVOVPVQIJVRUMVS $.
    $}

    ${
      opsrbaslemOLD.1 $e |- E = Slot N $.
      opsrbaslemOLD.2 $e |- N e. NN $.
      opsrbaslemOLD.3 $e |- N < 10 $.
      $( Obsolete version of ~ opsrbaslem as of 9-Sep-2021.  (Contributed by
         Mario Carneiro, 8-Feb-2015.)  (Revised by Mario Carneiro, 2-Oct-2015.)
         (Proof modification is discouraged.)  (New usage is discouraged.) $)
      opsrbaslemOLD $p |- ( ph -> ( E ` S ) = ( E ` O ) ) $=
        ( cvv wa cfv co c10 c0 wcel wceq cnx cple cop csts simprl simprr adantr
        cxp wss opsrval2 fveq2d ndxid wne nnrei ltneii ndxarg plendxOLD neeq12i
        eqid mpbir setsnid syl6reqr wn cmps copws 0fv eqcomi reldmpsr reldmopsr
        ovprc fveq1d 3eqtr4a adantl 3eqtr4g pm2.61dan ) AFOUAZBOUAZPZCEQZHEQZUB
        AVTPZWBCUCUDQZHUDQZUEUFRZEQWAWCHWFEWCBCDFWEHOOIJWEVAAVRVSUGAVRVSUHADFFU
        JUKVTKUIULUMWEWDECEGLMUNUCEQZWDUOGSUOGSGMUPNUQWGGWDSEGLMURUSUTVBVCVDAVT
        VEZPZCHEWIFBVFRZDFBVGRZQZCHWHWJWLUBAWHTDTQZWJWLWMTDVHVIFBVFVJVLWHDWKTFB
        VGVKVLVMVNVOIJVPUMVQ $.
    $}

    $( The base set of the ordered power series structure.  (Contributed by
       Mario Carneiro, 8-Feb-2015.)  (Revised by Mario Carneiro,
       30-Aug-2015.) $)
    opsrbas $p |- ( ph -> ( Base ` S ) = ( Base ` O ) ) $=
      ( cbs c1 df-base 1nn 1lt10 opsrbaslem ) ABCDJEKFGHILMNO $.

    $( The addition operation of the ordered power series structure.
       (Contributed by Mario Carneiro, 8-Feb-2015.)  (Revised by Mario
       Carneiro, 30-Aug-2015.) $)
    opsrplusg $p |- ( ph -> ( +g ` S ) = ( +g ` O ) ) $=
      ( cplusg c2 df-plusg 2nn 2lt10 opsrbaslem ) ABCDJEKFGHILMNO $.

    $( The multiplication operation of the ordered power series structure.
       (Contributed by Mario Carneiro, 8-Feb-2015.)  (Revised by Mario
       Carneiro, 30-Aug-2015.) $)
    opsrmulr $p |- ( ph -> ( .r ` S ) = ( .r ` O ) ) $=
      ( cmulr c3 df-mulr 3nn 3lt10 opsrbaslem ) ABCDJEKFGHILMNO $.

    $( The scalar product operation of the ordered power series structure.
       (Contributed by Mario Carneiro, 8-Feb-2015.)  (Revised by Mario
       Carneiro, 30-Aug-2015.) $)
    opsrvsca $p |- ( ph -> ( .s ` S ) = ( .s ` O ) ) $=
      ( cvsca c6 df-vsca 6nn 6lt10 opsrbaslem ) ABCDJEKFGHILMNO $.

    opsrsca.i $e |- ( ph -> I e. V ) $.
    opsrsca.r $e |- ( ph -> R e. W ) $.
    $( The scalar ring of the ordered power series structure.  (Contributed by
       Mario Carneiro, 8-Feb-2015.)  (Revised by Mario Carneiro,
       30-Aug-2015.) $)
    opsrsca $p |- ( ph -> R = ( Scalar ` O ) ) $=
      ( csca cfv psrsca c5 df-sca 5nn 5lt10 opsrbaslem eqtrd ) ABCNOFNOABCEGHIL
      MPABCDNEQFIJKRSTUAUB $.
  $}

  ${
    $d a b x y B $.  $d w x y z C $.  $d h w x y z I $.  $d a b h w x y z ph $.
    $d w x y z D $.  $d w x y z .< $.  $d w x y z R $.  $d w x y z T $.
    $d a b ps $.
    opsrso.o $e |- O = ( ( I ordPwSer R ) ` T ) $.
    opsrso.i $e |- ( ph -> I e. V ) $.
    opsrso.r $e |- ( ph -> R e. Toset ) $.
    opsrso.t $e |- ( ph -> T C_ ( I X. I ) ) $.
    opsrso.w $e |- ( ph -> T We I ) $.
    ${
      opsrtoslem.s $e |- S = ( I mPwSer R ) $.
      opsrtoslem.b $e |- B = ( Base ` S ) $.
      opsrtoslem.q $e |- .< = ( lt ` R ) $.
      opsrtoslem.c $e |- C = ( T <bag I ) $.
      opsrtoslem.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
      opsrtoslem.ps $e |- ( ps <-> E. z e. D ( ( x ` z ) .< ( y ` z ) /\
        A. w e. D ( w C z -> ( x ` w ) = ( y ` w ) ) ) ) $.
      opsrtoslem.l $e |- .<_ = ( le ` O ) $.
      $( Lemma for ~ opsrtos .  (Contributed by Mario Carneiro, 8-Feb-2015.) $)
      opsrtoslem1 $p |- ( ph -> .<_ =
        ( ( { <. x , y >. | ps } i^i ( B X. B ) ) u. ( _I |` B ) ) ) $=
        ( cv cpr wss cfv wbr wceq wi wral wa wrex weq wo copab cxp cin cid cres
        cun opsrle unopab wcel inopab df-xp ineq2i vex prss anbi1i ancom bitr3i
        opabbii 3eqtr4i equcom anbi2i eleq1 biimpac pm4.71i an32 3bitri uneq12i
        opabresid eqtr3i orbi1i andi 3eqtr4ri syl6eq ) APCUKZDUKZULGUMZEUKZWPUN
        WSWQUNLUOFUKZWSHUOWTWPUNWTWQUNUPUQFIURUSEIUTZCDVAZVBZUSZCDVCZBCDVCZGGVD
        ZVEZVFGVGZVHZACDEFGHIJKLMNOPQUDSUEUFUGUHUJUBVIWRBUSZCDVCZWRXBUSZCDVCZVH
        XKXMVBZCDVCXJXEXKXMCDVJXHXLXIXNXFWPGVKZWQGVKZUSZCDVCZVEBXRUSZCDVCXHXLBX
        RCDVLXGXSXFCDGGVMVNXKXTCDXKXRBUSXTXRWRBWPWQGCVODVOVPZVQXRBVRVSVTWAXPDCV
        AZUSZCDVCXIXNCDGWJYCXMCDYCXPXBUSZXQUSZXRXBUSXMYCYDYEXBYBXPCDWBWCYDXQXBX
        PXQWPWQGWDWEWFVSXPXBXQWGXRWRXBYAVQWHVTWKWIXDXOCDXDWRBXBVBZUSXOYFXCWRBXA
        XBUIWLWCWRBXBWMVSVTWNWO $.

      $( Lemma for ~ opsrtos .  (Contributed by Mario Carneiro, 8-Feb-2015.) $)
      opsrtoslem2 $p |- ( ph -> O e. Toset ) $=
        ( va cbs cfv cplt wor cid cres wss ctos wcel copab cxp cin cmap cvv wwe
        vb co cv ccnv cn cima cfn ovex rabex2 xpexg syl2anc ssexd ltbwe cple wa
        cn0 eqid tosso ibi syl simpld wceq wi wral wrex opabbii wemapso mp3an2i
        wbr wb psrbas soeq2 mpbird soinxp sylib cdif copws fvex eqeltri pltfval
        ax-mp cun c0 difundir ssdif0 mpbi uneq2i un0 3eqtri opsrtoslem1 difeq1d
        resss wrel inss2 relxp relss mp2 a1i cop wn df-br vex ideq brin simprbi
        bitr3i brxp sonr ex syl2im pm2.01d breq2 syl6bb syl5eq notbid syl5ibcom
        syl5bi con2d eldif mpbiran syl6ibr relssdv disj2 sylibr 3eqtr4a opsrbas
        opex disj3 soeq1 mpbid reseq2d ssun2 syl6eqssr sseqtr4d sylanbrc ) AQUL
        UMZQUNUMZUOZUPUVBUQZPURZQUSUTZAGUVCUOZUVDAUVHGBCDVAZGGVBZVCZUOZAGUVIUOZ
        UVLAUVMJULUMZIVDVHZUVIUOZIVEUTAIHVFUVNLUOZUVPNVIVJVKVLVMUTNWBOVDVHIUHWB
        OVDVNVOAHIMNORVEUGUHTAMOOVBZVEAORUTZUVSUVRVEUTTTOORRVPVQUBVRUCVSAUVQUPU
        VNUQJVTUMZURZAJUSUTZUVQUWAWAZUAUWBUWCUVNLJUVTUSUVNWCZUVTWCUFWDWEWFWGCDE
        FIUVNHLUVIVEBEVIZCVIZUMUWEDVIZUMLWOFVIZUWEHWOUWHUWFUMUWHUWGUMWHWIFIWJWA
        EIWKCDUIWLWMWNAGUVOWHUVMUVPWPAGIJKNOUVNRUDUWDUHUETWQGUVOUVIWRWFWSGUVIWT
        XAZAUVCUVKWHUVHUVLWPAUVCPUPXBZUVKQVEUTZUVCUWJWHQMOJXCVHZUMVESMUWLXDXEZV
        EUVCQPUJUVCWCZXFXGAUVKUPGUQZXHZUPXBZUVKUPXBZUWJUVKUWQUWRUWOUPXBZXHUWRXI
        XHUWRUVKUWOUPXJUWSXIUWRUWOUPURUWSXIWHUPGXRUWOUPXKXLXMUWRXNXOAPUWPUPABCD
        EFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJXPZXQAUVKUPVCXIWHZUVKUWRWHAUVKVEUPX
        BZURUXAAUKVGUVKUXBUVKXSZAUVKUVJURUVJXSUXCUVIUVJXTGGYAUVKUVJYBYCYDAUKVIZ
        VGVIZYEZUVKUTZUXFUPUTZYFZUXFUXBUTZAUXHUXGUXHUXDUXEWHZAUXGYFZUXHUXDUXEUP
        WOUXKUXDUXEUPYGUXDUXEVGYHYIYLAUXDUXDUVKWOZYFZUXKUXLAUXMAUVLUXMUXDGUTZUX
        NUWIUXMUXDUXDUVJWOZUXOUXMUXDUXDUVIWOUXPUXDUXDUVIUVJYJYKUXPUXOUXOUXDUXDG
        GYMYKWFUVLUXOUXNGUXDUVKYNYOYPYQUXKUXMUXGUXKUXMUXDUXEUVKWOUXGUXDUXEUXDUV
        KYRUXDUXEUVKYGYSUUAUUBUUCUUDUXJUXFVEUTUXIUXDUXEUUMUXFVEUPUUEUUFUUGUUHUV
        KUPUUIUUJUVKUPUUNXAUUKYTGUVCUVKUUOWFWSAGUVBWHUVHUVDWPAGKULUMUVBUEAJKMOQ
        UDSUBUULYTZGUVBUVCWRWFUUPAUVEUWPPAUVEUWOUWPAGUVBUPUXQUUQUWOUVKUURUUSUWT
        UUTUWKUVGUVDUVFWAWPUWMUVBUVCQPVEUVBWCUJUWNWDXGUVA $.
    $}

    $( The ordered power series structure is a totally ordered set.
       (Contributed by Mario Carneiro, 10-Jan-2015.) $)
    opsrtos $p |- ( ph -> O e. Toset ) $=
      ( vz vx vy vw vh cv cfv co eqid cplt wbr cltb wceq ccnv cima cfn wcel cn0
      wi cn cmap crab wral wa wrex cmps cbs cple biid opsrtoslem2 ) ALQZMQZRVBN
      QZRBUARZUBOQZVBCDUCSZUBVFVCRVFVDRUDUJOPQUEUKUFUGUHPUIDULSUMZUNUOLVHUPZMNL
      ODBUQSZURRZVGVHBVJVECPDEUSRZEFGHIJKVJTVKTVETVGTVHTVIUTVLTVA $.

    opsrso.l $e |- .<_ = ( lt ` O ) $.
    opsrso.b $e |- B = ( Base ` O ) $.
    $( The ordered power series structure is a totally ordered set.
       (Contributed by Mario Carneiro, 10-Jan-2015.) $)
    opsrso $p |- ( ph -> .<_ Or B ) $=
      ( wor cid cres cple ctos cfv wss wcel opsrtos eqid tosso ibi syl simpld
      wa ) ABFPZQBRGSUAZUBZAGTUCZUKUMUJZACDEGHIJKLMUDUNUOBFGULTOULUENUFUGUHUI
      $.
  $}

  ${
    $d x y I $.  $d x y O $.  $d x y ph $.  $d x y R $.
    opsrcrng.o $e |- O = ( ( I ordPwSer R ) ` T ) $.
    opsrcrng.i $e |- ( ph -> I e. V ) $.
    opsrcrng.r $e |- ( ph -> R e. CRing ) $.
    opsrcrng.t $e |- ( ph -> T C_ ( I X. I ) ) $.
    $( The ring of ordered power series is commutative ring.  (Contributed by
       Mario Carneiro, 10-Jan-2015.) $)
    opsrcrng $p |- ( ph -> O e. CRing ) $=
      ( vx vy cmps ccrg wcel cfv cv cplusg oveqdr cmulr co eqid psrcrng opsrbas
      cbs eqidd wa opsrplusg opsrmulr crngpropd mpbid ) ADBMUAZNOENOABULDFULUBZ
      HIUCAKLULUEPZULEAUNUFABULCDEUMGJUDAKQUNOLQUNOUGZKLULRPERPABULCDEUMGJUHSAU
      OKLULTPETPABULCDEUMGJUISUJUK $.

    $( The ring of ordered power series is an associative algebra.
       (Contributed by Mario Carneiro, 29-Dec-2014.) $)
    opsrassa $p |- ( ph -> O e. AssAlg ) $=
      ( vx vy casa wcel eqid cbs cfv cv wa oveqdr cmps co psrassa eqidd opsrbas
      cplusg opsrplusg cmulr opsrmulr ccrg psrsca opsrsca cvsca assapropd mpbid
      opsrvsca ) ADBUAUBZMNEMNABUQDFUQOZHIUCAKLUQPQZBPQZBUQEAUSUDABUQCDEURGJUEA
      KRZUSNLRUSNZSZKLUQUFQEUFQABUQCDEURGJUGTAVCKLUQUHQEUHQABUQCDEURGJUITABUQDF
      UJURHIUKABUQCDEFUJURGJHIULUTOAVAUTNVBSKLUQUMQEUMQABUQCDEURGJUPTUNUO $.
  $}

  ${
    mplrcl.p $e |- P = ( I mPoly R ) $.
    mplrcl.b $e |- B = ( Base ` P ) $.
    $( Reverse closure for the polynomial index set.  (Contributed by Stefan
       O'Rear, 19-Mar-2015.)  (Revised by Mario Carneiro, 30-Aug-2015.) $)
    mplrcl $p |- ( X e. B -> I e. _V ) $=
      ( cmpl reldmmpl strov2rcl ) ACBHDEFGIJ $.

    mplelsfi.z $e |- .0. = ( 0g ` R ) $.
    mplelsfi.f $e |- ( ph -> F e. B ) $.
    mplelsfi.r $e |- ( ph -> R e. V ) $.
    $( A polynomial treated as a coefficient function has finitely many nonzero
       terms.  (Contributed by Stefan O'Rear, 22-Mar-2015.)  (Revised by AV,
       25-Jun-2019.) $)
    mplelsfi $p |- ( ph -> F finSupp .0. ) $=
      ( wcel cfsupp wbr cmps co cbs eqid cfv mplelbas simprbi syl ) AEBNZEHOPZL
      UEEFDQRZSUAZNUFUHCDUGBFEHIUGTUHTKJUBUCUD $.
  $}

  ${
    $d ph x $.  $d B x $.  $d I x $.  $d V x $.
    mvrf2.p $e |- P = ( I mPoly R ) $.
    mvrf2.v $e |- V = ( I mVar R ) $.
    mvrf2.b $e |- B = ( Base ` P ) $.
    mvrf2.i $e |- ( ph -> I e. W ) $.
    mvrf2.r $e |- ( ph -> R e. Ring ) $.
    $( The power series/polynomial variable function maps indices to
       polynomials.  (Contributed by Stefan O'Rear, 8-Mar-2015.) $)
    mvrf2 $p |- ( ph -> V : I --> B ) $=
      ( vx wfn cv cfv wcel wf eqid adantr wral cmps co cbs ffn syl wa crg simpr
      mvrf mvrcl ralrimiva ffnfv sylanbrc ) AFENZMOZFPBQZMEUAEBFRAEEDUBUCZUDPZF
      RUOAUSDUREFGURSIUSSKLUJEUSFUEUFAUQMEAUPEQZUGBCDEFGUPHIJAEGQUTKTADUHQUTLTA
      UTUIUKULMEBFUMUN $.
  $}

  ${
    $d ph y $.  $d B y $.  $d D y $.  $d I f $.  $d K f y $.  $d .1. y $.
    $d R y $.  $d X y $.  $d .0. y $.
    mplmon2.p $e |- P = ( I mPoly R ) $.
    mplmon2.v $e |- .x. = ( .s ` P ) $.
    mplmon2.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    mplmon2.o $e |- .1. = ( 1r ` R ) $.
    mplmon2.z $e |- .0. = ( 0g ` R ) $.
    mplmon2.b $e |- B = ( Base ` R ) $.
    mplmon2.i $e |- ( ph -> I e. W ) $.
    mplmon2.r $e |- ( ph -> R e. Ring ) $.
    mplmon2.k $e |- ( ph -> K e. D ) $.
    mplmon2.x $e |- ( ph -> X e. B ) $.
    $( Express a scaled monomial.  (Contributed by Stefan O'Rear,
       8-Mar-2015.) $)
    mplmon2 $p |- ( ph -> ( X .x. ( y e. D |-> if ( y = K , .1. , .0. ) ) ) =
        ( y e. D |-> if ( y = K , X , .0. ) ) ) $=
      ( cv wceq cif cmpt csn cxp cmulr cfv cof cbs eqid mplmon mplvsca cvv wcel
      co ccnv cn cima cfn cn0 cmap ovex rabex2 a1i adantr cur fvex eqeltri ifex
      wa c0g fconstmpt eqidd offval2 oveq2 eqeq1d crg ringridm syl2anc sylan9eq
      iftrue eqcomd wn ringrz iffalse ifbothda mpteq2dv 3eqtrd ) AMBDBUEZKUFZHN
      UGZUHZGUTDMUIUJZWQFUKULZUMUTBDMWPWSUTZUHBDWOMNUGZUHAEUNULZDEFGWSIWQJCMOPT
      XBUOZWSUOZQUDABXBDEFHIJLKNOXCSRQUAUBUCUPUQABDMWPWSWRWQURCURDURUSAIUEVAVBV
      CVDUSIVEJVFUTDQVEJVFVGVHVIAMCUSZWNDUSZUDVJWPURUSAXFVOWOHNHFVKULURRFVKVLVM
      NFVPULURSFVPVLVMVNVIWRBDMUHUFABDMVQVIAWQVRVSABDWTXAWOMHWSUTZXAUFMNWSUTZXA
      UFWTXAUFAHNHWPUFXGWTXAHWPMWSVTWANWPUFXHWTXANWPMWSVTWAAWOXGMXAAFWBUSZXEXGM
      UFUBUDCFWSHMTXDRWCWDWOXAMWOMNWFWGWEAWOWHZXHNXAAXIXEXHNUFUBUDCFWSMNTXDSWIW
      DXJXANWOMNWJWGWEWKWLWM $.
  $}

  ${
    $d I f x $.  $d K f x $.
    psrbag0.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    $( The empty bag is a bag.  (Contributed by Stefan O'Rear, 9-Mar-2015.) $)
    psrbag0 $p |- ( I e. V -> ( I X. { 0 } ) e. D ) $=
      ( wcel cc0 csn cxp cn0 wf ccnv cn cima cfn wa 0nn0 c0 cin wceq c0ex incom
      fconst6 fconst wn 0nnn disjsn mpbir eqtri fimacnvdisj 0fin eqeltri pm3.2i
      mp2an psrbag mpbiri ) CDFCGHZIZAFCJURKZURLMNZOFZPUSVACGJQUCUTROCUQURKUQMS
      ZRTUTRTCGUAUDVBMUQSZRUQMUBVCRTGMFUEUFMGUGUHUICUQMURUJUNUKULUMABURCDEUOUP
      $.

    $( A singleton bag is a bag.  (Contributed by Stefan O'Rear,
       9-Mar-2015.) $)
    psrbagsn $p |- ( I e. V -> ( x e. I |-> if ( x = K , 1 , 0 ) ) e. D ) $=
      ( wcel c1 cc0 cn0 cn cfn wa wtru a1i crab wss ssfi mp2an cv wceq cif cmpt
      wf ccnv cima 1nn0 0nn0 keepel eqid fmptd trud mptpreima csn cab cin inss1
      snfi dfrab2 df-sn 3sstr4i wi wn 0nnn iffalse eleq1d con4i ss2rabi eqeltri
      mtbiri pm3.2i psrbag mpbiri ) DFHADAUAZEUBZIJUCZUDZBHDKVRUEZVRUFLUGZMHZNV
      SWAVSOADVQKVRVQKHOVODHZNVPIJKUHUIUJPVRUKZULUMVTVQLHZADQZMADVQLVRWCUNVPADQ
      ZMHZWEWFRWEMHEUOZMHWFWHRWGEUSVPAUPZDUQWIWFWHWIDURVPADUTAEVAVBWHWFSTWDVPAD
      WDVPVCWBVPWDVPVDZWDJLHVEWJVQJLVPIJVFVGVKVHPVIWFWESTVJVLBCVRDFGVMVN $.
  $}

  ${
    $d ph y $.  $d B y $.  $d D y $.  $d I f y $.  $d R f y $.  $d W y $.
    $d X y $.  $d .0. f y $.
    mplascl.p $e |- P = ( I mPoly R ) $.
    mplascl.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    mplascl.z $e |- .0. = ( 0g ` R ) $.
    mplascl.b $e |- B = ( Base ` R ) $.
    mplascl.a $e |- A = ( algSc ` P ) $.
    mplascl.i $e |- ( ph -> I e. W ) $.
    mplascl.r $e |- ( ph -> R e. Ring ) $.
    mplascl.x $e |- ( ph -> X e. B ) $.
    $( Value of the scalar injection into the polynomial algebra.  (Contributed
       by Stefan O'Rear, 9-Mar-2015.) $)
    mplascl $p |- ( ph -> ( A ` X ) =
          ( y e. D |-> if ( y = ( I X. { 0 } ) , X , .0. ) ) ) $=
      ( cfv cur cvsca cc0 csn cxp wceq cif cmpt csca cbs wcel crg mplsca fveq2d
      co cv syl5eq eleqtrd eqid asclval syl mpl1 oveq2d psrbag0 mplmon2 3eqtrd
      ) AKCUAZKFUBUAZFUCUAZUPZKBEBUQIUDUEUFZUGZGUBUAZLUHUIZVJUPBEVMKLUHUIAKFUJU
      AZUKUAZULVHVKUGAKDVQTADGUKUAVQPAGVPUKAFGIJUMMRSUNUOURUSCVJVIVPVQFKQVPUTVQ
      UTVJUTZVIUTZVAVBAVIVOKVJABEFGVIVNHIJLMNOVNUTZVSRSVCVDABDEFGVJVNHIVLJKLMVR
      NVTOPRSAIJULVLEULREHIJNVEVBTVFVG $.
  $}

  ${
    mplasclf.p $e |- P = ( I mPoly R ) $.
    mplasclf.b $e |- B = ( Base ` P ) $.
    mplasclf.k $e |- K = ( Base ` R ) $.
    mplasclf.a $e |- A = ( algSc ` P ) $.
    mplasclf.i $e |- ( ph -> I e. W ) $.
    mplasclf.r $e |- ( ph -> R e. Ring ) $.
    $( The scalar injection is a function into the polynomial algebra.
       (Contributed by Stefan O'Rear, 9-Mar-2015.) $)
    mplasclf $p |- ( ph -> A : K --> B ) $=
      ( wf cfv cbs wcel crg eqid wa mplring mpllmod asclf syl2anc mplsca fveq2d
      csca syl5eq feq2d mpbird ) AGCBODUHPZQPZCBOZAFHRZESRZUNMNUOUPUABCULUMDLUL
      TDEFHIUBDEFHIUCUMTJUDUEAGUMCBAGEQPUMKAEULQADEFHSIMNUFUGUIUJUK $.
  $}

  ${
    $d x A $.  $d x C $.  $d f x y H $.  $d f x y I $.  $d x K $.  $d x y ph $.
    $d f x y R $.  $d x y T $.  $d x y W $.  $d x X $.
    subrgascl.p $e |- P = ( I mPoly R ) $.
    subrgascl.a $e |- A = ( algSc ` P ) $.
    subrgascl.h $e |- H = ( R |`s T ) $.
    subrgascl.u $e |- U = ( I mPoly H ) $.
    subrgascl.i $e |- ( ph -> I e. W ) $.
    subrgascl.r $e |- ( ph -> T e. ( SubRing ` R ) ) $.
    ${
      subrgascl.c $e |- C = ( algSc ` U ) $.
      $( The scalar injection function in a subring algebra is the same up to a
         restriction to the subring.  (Contributed by Mario Carneiro,
         4-Jul-2015.) $)
      subrgascl $p |- ( ph -> C = ( A |` T ) ) $=
        ( cfv eqid wcel vx vy cres wfn csca cbs asclfn csubrg wceq subrgbas syl
        vf cvv cress ovex eqeltri a1i mplsca fveq2d eqtrd fneq2d mpbiri wss crg
        co subrgrcl subrgss fnssres syl2anc cv wa fvres adantl ccnv cn cima cfn
        cn0 cmap crab cc0 csn cxp c0g cmpt subrg0 ifeq2d adantr mpteq2dv sselda
        cif mplascl subrgring eleq2d biimpa 3eqtr4d eqtr2d eqfnfvd ) AUAFCBFUCZ
        ACFUDCGUERZUFRZUDCWTXAGQWTSXASUGAFXACAFHUFRZXAAFEUHRTZFXBUIPFEHMUJUKZAH
        WTUFAGHIJUMNOHUMTAHEFUNVEUMMEFUNUOUPUQURUSUTVAVBABEUFRZUDZFXEVCZWSFUDAX
        FBDUERZUFRZUDBXHXIDLXHSXISUGAXEXIBAEXHUFADEIJVDKOAXCEVDTZPFEVFUKZURUSVA
        VBAXCXGPFXEEXESZVGUKZXEFBVHVIAUAVJZFTZVKZXNWSRZXNBRZXNCRZXOXQXRUIAXNFBV
        LVMXPUBULVJVNVOVPVQTULVRIVSVEVTZUBVJIWAWBWCUIZXNEWDRZWKZWEUBXTYAXNHWDRZ
        WKZWEXRXSXPUBXTYCYEAYCYEUIXOAYAYBYDXNAXCYBYDUIPFEHYBMYBSZWFUKWGWHWIXPUB
        BXEXTDEULIJXNYBKXTSZYFXLLAIJTXOOWHZAXJXOXKWHAFXEXNXMWJWLXPUBCXBXTGHULIJ
        XNYDNYGYDSXBSQYHAHVDTZXOAXCYIPFEHMWMUKWHAXOXNXBTAFXBXNXDWNWOWLWPWQWR $.
    $}

    subrgasclcl.b $e |- B = ( Base ` U ) $.
    subrgasclcl.k $e |- K = ( Base ` R ) $.
    subrgasclcl.x $e |- ( ph -> X e. K ) $.
    $( The scalars in a polynomial algebra are in the subring algebra iff the
       scalar value is in the subring.  (Contributed by Mario Carneiro,
       4-Jul-2015.) $)
    subrgasclcl $p |- ( ph -> ( ( A ` X ) e. B <-> X e. T ) ) $=
      ( vf vx cfv wcel wa cbs cc0 csn cxp cv ccnv cn cima cfn cmap co crab wceq
      cn0 c0g cif wral adantr eqid psrbag0 syl cmpt wf cmps csubrg crg subrgrcl
      mplascl subrgring mplsubrg subrgss sselda eqeltrrd psrelbas sylibr iftrue
      wss fmpt eleq1d rspcv sylc subrgbas eleqtrrd cascl subrgascl fveq1d fvres
      cres csca mplring mpllmod asclf syl2anc mplsca fveq2d eqtrd eleq2d biimpa
      sylan9eq ffvelrnd impbida ) ALBUDZCUEZLFUEZAXIUFZLHUGUDZFXKIUHUIUJZUBUKUL
      UMUNUOUEUBUTIUPUQURZUEZUCUKXMUSZLEVAUDZVBZXLUEZUCXNVCZLXLUEZXKIKUEZXOAYBX
      IQVDXNUBIKXNVEZVFVGXKXNXLUCXNXRVHZVIXTXKIHVJUQZUGUDZXNHYEUBIXLYDYEVEZXLVE
      YCYFVEZXKXHYDYFAXHYDUSXIAUCBJXNDEUBIKLXQMYCXQVETNQAFEVKUDUEZEVLUERFEVMVGU
      AVNVDACYFXHACYEVKUDUECYFWCAGHYECIKYGPSQAYIHVLUEZRFEHOVOVGZVPCYFYEYHVQVGVR
      VSVTUCXNXLXRYDYDVEWDWAXSYAUCXMXNXPXRLXLXPLXQWBWEWFWGAFXLUSZXIAYIYLRFEHOWH
      VGZVDWIAXJUFZLGWJUDZUDZXHCAXJYPLBFWNZUDXHALYOYQABYODEFGHIKMNOPQRYOVEZWKWL
      LFBWMXEYNGWOUDZUGUDZCLYOAYTCYOVIZXJAYBYJUUAQYKYBYJUFYOCYSYTGYRYSVEGHIKPWP
      GHIKPWQYTVESWRWSVDAXJLYTUEAFYTLAFXLYTYMAHYSUGAGHIKVLPQYKWTXAXBXCXDXFVSXG
      $.
  $}

  ${
    mplmon2cl.p $e |- P = ( I mPoly R ) $.
    mplmon2cl.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    mplmon2cl.z $e |- .0. = ( 0g ` R ) $.
    mplmon2cl.c $e |- C = ( Base ` R ) $.
    mplmon2cl.i $e |- ( ph -> I e. W ) $.

    ${
      $d ph y $.  $d C y $.  $d D y $.  $d I f $.  $d K f y $.  $d R y $.
      $d X y $.  $d .0. y $.
      mplmon2cl.r $e |- ( ph -> R e. Ring ) $.
      mplmon2cl.b $e |- B = ( Base ` P ) $.
      mplmon2cl.x $e |- ( ph -> X e. C ) $.
      mplmon2cl.k $e |- ( ph -> K e. D ) $.
      $( A scaled monomial is a polynomial.  (Contributed by Stefan O'Rear,
         8-Mar-2015.) $)
      mplmon2cl $p |- ( ph -> ( y e. D |-> if ( y = K , X , .0. ) ) e. B ) $=
        ( cv wceq cur cfv cif cmpt cvsca co eqid mplmon2 clmod wcel cbs mpllmod
        csca crg syl2anc mplsca fveq2d syl5eq eleqtrd lmodvscl syl3anc eqeltrrd
        mplmon ) ALBEBUCJUDZGUEUFZMUGUHZFUIUFZUJZBEVHLMUGUHCABDEFGVKVIHIJKLMNVK
        UKZOVIUKZPQRSUBUAULAFUMUNZLFUQUFZUOUFZUNVJCUNVLCUNAIKUNGURUNVORSFGIKNUP
        USALDVQUAADGUOUFVQQAGVPUOAFGIKURNRSUTVAVBVCABCEFGVIHIKJMNTPVNORSUBVGLVK
        VPVQCFVJTVPUKVMVQUKVDVEVF $.
    $}

    $d ph y $.  $d C y $.  $d D y $.  $d F y $.  $d G y $.  $d I f $.
    $d R y $.  $d .x. y $.  $d X f y $.  $d Y f y $.  $d .0. y $.
    mplmon2mul.r $e |- ( ph -> R e. CRing ) $.
    mplmon2mul.t $e |- .xb = ( .r ` P ) $.
    mplmon2mul.u $e |- .x. = ( .r ` R ) $.
    mplmon2mul.x $e |- ( ph -> X e. D ) $.
    mplmon2mul.y $e |- ( ph -> Y e. D ) $.
    mplmon2mul.f $e |- ( ph -> F e. C ) $.
    mplmon2mul.g $e |- ( ph -> G e. C ) $.
    $( Product of scaled monomials.  (Contributed by Stefan O'Rear,
       8-Mar-2015.) $)
    mplmon2mul $p |- ( ph -> ( ( y e. D |-> if ( y = X , F , .0. ) ) .xb
            ( y e. D |-> if ( y = Y , G , .0. ) ) ) =
          ( y e. D |-> if ( y = ( X oF + Y ) , ( F .x. G ) , .0. ) ) ) $=
      ( cv wceq cur cfv cif cmpt cvsca co caddc cof casa wcel csca ccrg mplassa
      cbs syl2anc mplsca fveq2d syl5eq eleqtrd crg crngring syl mplmon assalmod
      clmod lmodvscl syl3anc assaass syl13anc assaassr oveq2d cmulr psrbagaddcl
      eqid mplmonmul syl5req oveqd oveq1d 3eqtr2d 3eqtrd mplmon2 oveq12d ringcl
      lmodvsass 3eqtr3d ) AJBDBUIZNUJZFUKULZPUMUNZEUOULZUPZKBDWPOUJZWRPUMUNZWTU
      PZGUPZJKHUPZBDWPNOUQURUPZUJZWRPUMUNZWTUPZBDWQJPUMUNZBDXBKPUMUNZGUPBDXHXFP
      UMUNAXEJWSXDGUPZWTUPZJKWSXCGUPZWTUPZWTUPZXJAEUSUTZJEVAULZVDULZUTZWSEVDULZ
      UTZXDYBUTZXEXNUJALMUTZFVBUTZXRUAUBEFLMQVCVEZAJCXTUGACFVDULXTTAFXSVDAEFLMV
      BQUAUBVFZVGVHZVIZABYBDEFWRILMNPQYBWDZSWRWDZRUAAYFFVJUTZUBFVKVLZUEVMZAEVOU
      TZKXTUTZXCYBUTZYDAXRYPYGEVNVLZAKCXTUHYIVIZABYBDEFWRILMOPQYKSYLRUAYNUFVMZK
      WTXSXTYBEXCYKXSWDZWTWDZXTWDZVPVQJXTWTGXSYBEWSXDYKUUBUUDUUCUCVRVSAXMXPJWTA
      XRYQYCYRXMXPUJYGYTYOUUAKXTWTGXSYBEWSXCYKUUBUUDUUCUCVTVSWAAXQJKXIWTUPZWTUP
      ZJKXSWBULZUPZXIWTUPZXJAXPUUEJWTAXOXIKWTABYBDEFGWRILMNOPQYKSYLRUAYNUEUCUFW
      EWAWAAYPYAYQXIYBUTUUIUUFUJYSYJYTABYBDEFWRILMXGPQYKSYLRUAYNAYENDUTODUTXGDU
      TUAUEUFDINOLMRWCVQZVMJKWTUUGXSXTYBEXIYKUUBUUCUUDUUGWDWNVSAUUHXFXIWTAUUGHJ
      KAHFWBULUUGUDAFXSWBYHVGWFWGWHWIWJAXAXKXDXLGABCDEFWTWRILNMJPQUUCRYLSTUAYNU
      EUGWKABCDEFWTWRILOMKPQUUCRYLSTUAYNUFUHWKWLABCDEFWTWRILXGMXFPQUUCRYLSTUAYN
      UUJAYMJCUTKCUTXFCUTYNUGUHCFHJKTUDWMVQWKWO $.
  $}

  ${
    $d w x y z .+ $.  $d w x y z B $.  $d x y C $.  $d x I $.  $d w x y z ph $.
    $d w x y z H $.  $d x K $.  $d x y .x. $.  $d x V $.  $d w x y z Y $.
    mplind.sk $e |- K = ( Base ` R ) $.
    mplind.sv $e |- V = ( I mVar R ) $.
    mplind.sy $e |- Y = ( I mPoly R ) $.
    mplind.sp $e |- .+ = ( +g ` Y ) $.
    mplind.st $e |- .x. = ( .r ` Y ) $.
    mplind.sc $e |- C = ( algSc ` Y ) $.
    mplind.sb $e |- B = ( Base ` Y ) $.
    mplind.p $e |- ( ( ph /\ ( x e. H /\ y e. H ) ) -> ( x .+ y ) e. H ) $.
    mplind.t $e |- ( ( ph /\ ( x e. H /\ y e. H ) ) -> ( x .x. y ) e. H ) $.
    mplind.s $e |- ( ( ph /\ x e. K ) -> ( C ` x ) e. H ) $.
    mplind.v $e |- ( ( ph /\ x e. I ) -> ( V ` x ) e. H ) $.
    mplind.x $e |- ( ph -> X e. B ) $.
    mplind.i $e |- ( ph -> I e. _V ) $.
    mplind.r $e |- ( ph -> R e. CRing ) $.
    $( Prove a property of polynomials by "structural" induction, under a
       simplified model of structure which loses the sum of products structure.
       The commutativity condition is stronger than strictly needed.
       (Contributed by Stefan O'Rear, 11-Mar-2015.) $)
    mplind $p |- ( ph -> X e. H ) $=
      ( vz vw cin inss1 crn cmps co casp cfv casa wcel cbs wss cvv eqid psrassa
      inss2 csubrg ccrg crg crngring syl mplsubrg subrgss syl5ss wfn cv wral wf
      mvrf2 ffn ralrimiva fnfvrnss syl2anc frn ssind aspss syl3anc mplbas2 clss
      syl6eqr wceq csubg cur c0 wne cminusg a1i csca crh mplassa asclrhm mplsca
      rhm1 eqeltrrd ringidcl fveq2d syl5eq eleqtrrd fveq2 eleq1d assaring elind
      wa rspcva ne0i sseli anim12i caovclg sylan2 clmod assalmod lmodgrp adantr
      cgrp simprl sseldi simprr grpcl simpr ringnegl simpl cghm rhmghm grpinvcl
      anassrs jca w3a wb mpbir3and ralrimivva simprbda ringgrp syl12anc issubg2
      ghminv eqtrd ringcl issubrg2 subsubrg mpllss cvsca asclmul1 syldan islss4
      mplval2 lmodvscl mpbir2and lsslss syl21anc aspid 3sstr3d sseldd ) AIDUKZI
      MIDULZADUVBMALUMZJGUNUOZUPUQZUQZUVBUVFUQZDUVBAUVEURUSZUVBUVEUTUQZVAUVDUVB
      VAUVGUVHVAAGUVEJVBUVEVCZUGUHVDZAUVBDUVJIDVEZADUVEVFUQZUSZDUVJVAANGUVEDJVB
      UVKQUAUGAGVGUSZGVHUSUHGVIVJZVKZDUVJUVEUVJVCZVLVJVMAUVDIDALJVNZBVOZLUQIUSZ
      BJVPUVDIVAAJDLVQZUVTADNGJLVBQPUAUGUVQVRZJDLVSVJAUWBBJUEVTBJILWAWBAUWCUVDD
      VAUWDJDLWCVJWDUVFUVBUVDUVJUVEUVFVCZUVSWEWFAUVGNUTUQDAUVFNGUVEJLVBQUVKPUWE
      UGUHWGUAWIAUVIUVBUVNUSZUVBUVEWHUQZUSZUVHUVBWJUVLAUVOUVBNVFUQUSZUWFUVRAUWI
      UVBNWKUQUSZNWLUQZUVBUSZUWACVOZHUOZUVBUSZCUVBVPBUVBVPZAUWJUVBDVAZUVBWMWNZU
      IVOZUJVOZFUOZUVBUSZUJUVBVPZUWSNWOUQZUQZUVBUSZXLZUIUVBVPZUWQAUVMWPAUWLUWRA
      IDUWKANWQUQZWLUQZEUQZUWKIAEUXINWRUOUSZUXKUWKWJANURUSZUXLAJVBUSUVPUXMUGUHN
      GJVBQWSWBZEUXINTUXIVCZWTVJZUXINUXJEUWKUXJVCZUWKVCZXBVJZAUXJKUSUWAEUQZIUSZ
      BKVPZUXKIUSZAUXJUXIUTUQZKAUXIVHUSZUXJUYDUSZAGUXIVHANGJVBVGQUGUHXAZUVQXCZU
      YDUXIUXJUYDVCZUXQXDVJZAKGUTUQUYDOAGUXIUTUYGXEXFZXGAUYABKUDVTZUYAUYCBUXJKU
      WAUXJWJUXTUXKIUWAUXJEXHXIXMWBXCANVHUSZUWKDUSAUXMUYMUXNNXJVJZDNUWKUAUXRXDV
      JXKZUVBUWKXNVJAUXGUIUVBAUWSUVBUSZXLZUXCUXFUYQUXBUJUVBAUYPUWTUVBUSZUXBAUYP
      UYRXLZXLZIDUXAUYSAUWSIUSZUWTIUSZXLUXAIUSUYPVUAUYRVUBUVBIUWSUVCXOUVBIUWTUV
      CXOXPABCUWSUWTIIIFUBXQXRUYTNYCUSZUWSDUSZUWTDUSZUXADUSAVUCUYSANXSUSZVUCAUX
      MVUFUXNNXTVJZNYAVJZYBUYTUVBDUWSUVMAUYPUYRYDYEUYTUVBDUWTUVMAUYPUYRYFYEDFNU
      WSUWTUARYGWFXKYNVTUYQIDUXEUYQUWKUXDUQZUWSHUOZUXEIUYQDNHUWKUXDUWSUASUXRUXD
      VCZAUYMUYPUYNYBUYQUVBDUWSUVMAUYPYHZYEZYIUYQAVUIIUSZVUAVUJIUSAUYPYJAVUNUYP
      AUXJUXIWOUQZUQZEUQZVUIIAVUQUXKUXDUQZVUIAEUXINYKUOUSZUYFVUQVURWJAUXLVUSUXP
      UXINEYLVJUYJUYDUXINEVUOUXDUXJUYIVUOVCZVUKUUDWBAUXKUWKUXDUXSXEUUEAVUPKUSUY
      BVUQIUSZAVUPUYDKAUXIYCUSZUYFVUPUYDUSAUYEVVBUYHUXIUUAVJUYJUYDUXIVUOUXJUYIV
      UTYMWBUYKXGUYLUYAVVABVUPKUWAVUPWJUXTVUQIUWAVUPEXHXIXMWBXCYBUYQUVBIUWSUVCV
      ULYEABCVUIUWSIIIHUCXQUUBXCUYQVUCVUDUXEDUSAVUCUYPVUHYBVUMDNUXDUWSUAVUKYMWB
      XKYOVTAVUCUWJUWQUWRUXHYPYQVUHUIUJDFUVBNUXDUARVUKUUCVJYRZUYOAUWOBCUVBUVBAU
      WAUVBUSZUWMUVBUSZXLZXLZIDUWNVVFAUWAIUSZUWMIUSZXLUWNIUSVVDVVHVVEVVIUVBIUWA
      UVCXOUVBIUWMUVCXOXPUCXRVVGUYMUWADUSUWMDUSUWNDUSAUYMVVFUYNYBVVGUVBDUWAUVMA
      VVDVVEYDYEVVGUVBDUWMUVMAVVDVVEYFYEDNHUWAUWMUASUUFWFXKYSAUYMUWIUWJUWLUWPYP
      YQUYNBCUVBDNHUWKUAUXRSUUGVJYRUVOUWIUWFUWQDUVBUVENNGUVEDJQUVKUAUUNZUUHYTWB
      AUVEXSUSZDUWGUSZUVBNWHUQZUSZUWHAUVIVVKUVLUVEXTVJANGUVEDJVBUVKQUAUGUVQUUIA
      VVNUWJUWSUWTNUUJUQZUOZUVBUSZUJUVBVPUIUYDVPZVVCAVVQUIUJUYDUVBAUWSUYDUSZUYR
      XLZXLZIDVVPVWAUWSEUQZUWTHUOZVVPIVWAUXMVVSVUEVWCVVPWJAUXMVVTUXNYBAVVSUYRYD
      ZVWAUVBDUWTUVMAVVSUYRYFZYEZEUWSVVOHUXIUYDDNUWTTUXOUYIUASVVOVCZUUKWFAVVTVW
      BIUSZVUBXLVWCIUSVWAVWHVUBVWAUWSKUSUYBVWHVWAUWSUYDKVWDAKUYDWJVVTUYKYBXGAUY
      BVVTUYLYBUYAVWHBUWSKUWAUWSWJUXTVWBIUWAUWSEXHXIXMWBVWAUVBIUWTUVCVWEYEYOABC
      VWBUWTIIIHUCXQUULXCVWAVUFVVSVUEVVPDUSAVUFVVTVUGYBVWDVWFUWSVVOUXIUYDDNUWTU
      AUXOVWGUYIUUOWFXKYSAVUFVVNUWJVVRXLYQVUGUYDVVMVVOUVBUXIDNUIUJUXOUYIUAVWGVV
      MVCZUUMVJUUPVVKVVLXLVVNUWHUWQUWGVVMDUVBUVENVVJUWGVCZVWIUUQYTUURUVFUVBUWGU
      VJUVEUWEUVSVWJUUSWFUUTUFUVAYE $.
  $}

  ${
    $d ph k y $.  $d B k $.  $d D k y $.  $d I f k y $.  $d P k y $.
    $d R f k y $.  $d W y k $.  $d X f k y $.  $d .0. f k y $.
    mplcoe4.p $e |- P = ( I mPoly R ) $.
    mplcoe4.d $e |- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin } $.
    mplcoe4.z $e |- .0. = ( 0g ` R ) $.
    mplcoe4.b $e |- B = ( Base ` P ) $.
    mplcoe4.i $e |- ( ph -> I e. W ) $.
    mplcoe4.r $e |- ( ph -> R e. Ring ) $.
    mplcoe4.x $e |- ( ph -> X e. B ) $.
    $( Decompose a polynomial into a finite sum of scaled monomials.
       (Contributed by Stefan O'Rear, 8-Mar-2015.) $)
    mplcoe4 $p |- ( ph -> X = ( P gsum ( k e. D |->
              ( y e. D |-> if ( y = k , ( X ` k ) , .0. ) ) ) ) ) $=
      ( cfv cv weq cur cif cmpt cvsca co cgsu eqid mplcoe1 wcel wa adantr simpr
      cbs crg mplelf ffvelrnda mplmon2 mpteq2dva oveq2d eqtrd ) AKEHDHUAZKTZBDB
      HUBZFUCTZLUDUEEUFTZUGZUEZUHUGEHDBDVEVDLUDUEZUEZUHUGABCDEFVGVFGHIJKLMNOVFU
      IZQPVGUIZRSUJAVIVKEUHAHDVHVJAVCDUKZULBFUOTZDEFVGVFGIVCJVDLMVMNVLOVOUIZAIJ
      UKVNQUMAFUPUKVNRUMAVNUNADVOVCKACDEFGIVOKMVPPNSUQURUSUTVAVB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Polynomial evaluation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c evalSub $. $( Evaluation of a multivariate polynomial in a subring $)
  $c eval $. $( Evaluation of a multivariate polynomial $)

  $( Evaluation of a multivariate polynomial in a subring. $)
  ces $a class evalSub $.

  $( Evaluation of a multivariate polynomial. $)
  cevl $a class eval $.

  ${
    $d b f g i r s w x $.
    $( Define the evaluation map for the polynomial algebra.  The function
       ` ( ( I evalSub S ) `` R ) : V --> ( S ^m ( S ^m I ) ) ` makes sense
       when ` I ` is an index set, ` S ` is a ring, ` R ` is a subring of
       ` S ` , and where ` V ` is the set of polynomials in ` ( I mPoly R ) ` .
       This function maps an element of the formal polynomial algebra (with
       coefficients in ` R ` ) to a function from assignments ` I --> S ` of
       the variables to elements of ` S ` formed by evaluating the polynomial
       with the given assignments.  (Contributed by Stefan O'Rear,
       11-Mar-2015.) $)
    df-evls $a |- evalSub = ( i e. _V , s e. CRing |-> [_ ( Base ` s ) / b ]_
      ( r e. ( SubRing ` s ) |-> [_ ( i mPoly ( s |`s r ) ) / w ]_
        ( iota_ f e. ( w RingHom ( s ^s ( b ^m i ) ) )
        ( ( f o. ( algSc ` w ) ) = ( x e. r |-> ( ( b ^m i ) X. { x } ) ) /\
          ( f o. ( i mVar ( s |`s r ) ) ) = ( x e. i |-> ( g e. ( b ^m i ) |->
        ( g ` x ) ) ) ) ) ) ) $.

    $( A simplification of ` evalSub ` when the evaluation ring is the same as
       the coefficient ring.  (Contributed by Stefan O'Rear, 19-Mar-2015.) $)
    df-evl $a |- eval = ( i e. _V , r e. _V |->
      ( ( i evalSub r ) ` ( Base ` r ) ) ) $.
  $}

  ${
    $d i j x y z I $.  $d i j x y z J $.  $d x y z ph $.  $d i j y z X $.
    $d z .0. $.  $d x y B $.  $d i j x y z .x. $.  $d i j x z Y $.
    evlslem4.b $e |- B = ( Base ` R ) $.
    evlslem4.z $e |- .0. = ( 0g ` R ) $.
    evlslem4.t $e |- .x. = ( .r ` R ) $.
    evlslem4.r $e |- ( ph -> R e. Ring ) $.
    evlslem4.x $e |- ( ( ph /\ x e. I ) -> X e. B ) $.
    evlslem4.y $e |- ( ( ph /\ y e. J ) -> Y e. B ) $.
    evlslem4.i $e |- ( ph -> I e. V ) $.
    evlslem4.j $e |- ( ph -> J e. W ) $.
    $( The support of a tensor product of ring element families is contained in
       the product of the supports.  (Contributed by Stefan O'Rear,
       8-Mar-2015.)  (Revised by AV, 18-Jul-2019.) $)
    evlslem4 $p |- ( ph -> ( ( x e. I , y e. J |-> ( X .x. Y ) ) supp .0. )
                             C_ ( ( ( x e. I |-> X ) supp .0. )
                                  X. ( ( y e. J |-> Y ) supp .0. ) ) ) $=
      ( vz vi vj co cmpt2 csupp cxp c1st cfv cmpt c2nd nfcv nffvmpt1 nfov fveq2
      cv wceq oveqan12d cbvmpt2 cop cvv wcel wa vex eqop2 adantl mpt2mpt eqtr4i
      sylbi simp2 3adant3 eqid fvmpt2 syl2anc simp3 3adant2 mpt2eq3dva syl5reqr
      w3a oveq12d oveq1d cdif wo cun difxp eleq2i elun bitri xp1st wss ssid a1i
      fmptd c0g fvex eqeltri suppssr sylan2 crg adantr wf ffvelrn syl2an ringlz
      xp2nd eqtrd oveq2d ringrz jaodan sylan2b xpexg suppss2 eqsstrd ) ABCGHKLF
      UEZUFZMUGUEUBGHUHZUBUQZUIUJZBGKUKZUJZXRULUJZCHLUKZUJZFUEZUKZMUGUEXTMUGUEZ
      YCMUGUEZUHZAXPYFMUGAYFBCGHBUQZXTUJZCUQZYCUJZFUEZUFZXPYOUCUDGHUCUQZXTUJZUD
      UQZYCUJZFUEZUFYFBCUCUDGHYNYTUCYNUMUDYNUMBYQYSFBGKYPUNBFUMBYSUMUOCYQYSFCYQ
      UMCFUMCHLYRUNUOYJYPURYLYRURYKYQYMYSFYJYPXTUPYLYRYCUPUSUTUCUDUBGHYEYTXRYPY
      RVAURXRVBVBUHVCZXSYPURZYBYRURZVDZVDYEYTURZXRYPYRUCVEUDVEVFUUDUUEUUAUUBUUC
      YAYQYDYSFXSYPXTUPYBYRYCUPUSVGVJVHVIABCGHYNXOAYJGVCZYLHVCZVTZYKKYMLFUUHUUF
      KDVCZYKKURAUUFUUGVKAUUFUUIUUGRVLBGKDXTXTVMZVNVOUUHUUGLDVCZYMLURAUUFUUGVPA
      UUGUUKUUFSVQCHLDYCYCVMZVNVOWAVRVSWBAXQYEUBVBYIMXRXQYIWCZVCZAXRGYGWCZHUHZV
      CZXRGHYHWCZUHZVCZWDZYEMURZUUNXRUUPUUSWEZVCUVAUUMUVCXRYGYHGHWFWGXRUUPUUSWH
      WIAUUQUVBUUTAUUQVDZYEMYDFUEZMUVDYAMYDFUUQAXSUUOVCYAMURXRUUOHWJAGDVBXTIYGX
      SMABGKDXTRUUJWNZYGYGWKAYGWLWMTMVBVCAMEWOUJVBOEWOWPWQWMZWRWSWBUVDEWTVCZYDD
      VCZUVEMURAUVHUUQQXAAHDYCXBYBHVCUVIUUQACHLDYCSUULWNZXRUUOHXFHDYBYCXCXDDEFY
      DMNPOXEVOXGAUUTVDZYEYAMFUEZMUVKYDMYAFUUTAYBUURVCYDMURXRGUURXFAHDVBYCJYHYB
      MUVJYHYHWKAYHWLWMUAUVGWRWSXHUVKUVHYADVCZUVLMURAUVHUUTQXAAGDXTXBXSGVCUVMUU
      TUVFXRGUURWJGDXSXTXCXDDEFYAMNPOXIVOXGXJXKAGIVCHJVCXQVBVCTUAGHIJXLVOXMXN
      $.
  $}

  ${
    $d I h $.  $d X h $.
    psrbagfsupp.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
    $( Finite bags have finite nonzero-support.  (Contributed by Stefan O'Rear,
       9-Mar-2015.)  (Revised by AV, 18-Jul-2019.) $)
    psrbagfsupp $p |- ( ( X e. D /\ I e. V ) -> X finSupp 0 ) $=
      ( wcel wa cc0 cfsupp wbr ccnv cn cima cfn cn0 wf psrbag biimpac simprd wb
      simpr psrbagf ancoms frnnn0fsupp syl2anc mpbird ) EAGZCDGZHZEIJKZELMNOGZU
      JCPEQZULUIUHUMULHABECDFRSTUJUIUMUKULUAUHUIUBUIUHUMABECDFUCUDECDUEUFUG $.
  $}

  ${
    $d ph y z $.  $d B h $.  $d B y z $.  $d C y z $.  $d G z $.  $d I h $.
    $d .x. y z $.  $d .0. z $.
    psrbagev1.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
    psrbagev1.c $e |- C = ( Base ` T ) $.
    psrbagev1.x $e |- .x. = ( .g ` T ) $.
    psrbagev1.z $e |- .0. = ( 0g ` T ) $.
    psrbagev1.t $e |- ( ph -> T e. CMnd ) $.
    psrbagev1.b $e |- ( ph -> B e. D ) $.
    psrbagev1.g $e |- ( ph -> G : I --> C ) $.
    psrbagev1.i $e |- ( ph -> I e. _V ) $.
    $( A bag of multipliers provides the conditions for a valid sum.
       (Contributed by Stefan O'Rear, 9-Mar-2015.)  (Revised by AV,
       18-Jul-2019.) $)
    psrbagev1 $p |- ( ph -> ( ( B oF .x. G ) : I --> C
                              /\ ( B oF .x. G ) finSupp .0. ) ) $=
      ( cvv wcel vy vz cof co wf cfsupp wbr cn0 cmnd cv wa cmnmnd syl mulgnn0cl
      ccmn 3expb sylan psrbagf syl2anc inidm off wfun cc0 csupp cfn wss wfn ffn
      ovexd offn fnfun c0g cfv fvex eqeltri a1i psrbagfsupp fsuppimpd ssid wceq
      mulg0 adantl c0ex suppssof1 suppssfifsupp syl32anc jca ) AICBHFUCZUDZUEWI
      JUFUGZAUAUBIIIFUHCCBHSSAEUITZUAUJZUHTZUBUJZCTZUKWLWNFUDCTZAEUOTWKOEULUMWK
      WMWOWPCFEWLWNLMUNUPUQAISTZBDTZIUHBUEZRPDGBISKURUSZQRRIUTZVAAWISTWIVBZJSTZ
      BVCVDUDZVETWIJVDUDXDVFWJABHWHVIAWIIVGXBAIIFIBHSSAWSBIVGWTIUHBVHUMAICHUEHI
      VGQICHVHUMRRXAVJIWIVKUMXCAJEVLVMSNEVLVNVOVPABVCAWRWQBVCUFUGPRDGISBKVQUSVR
      AUBBHICSXDFUHSVCJXDXDVFAXDVSVPWOVCWNFUDJVTACFEWNJLNMWAWBWTQRVCSTAWCVPWDXD
      WISSJWEWFWG $.

    $( Closure of a sum using a bag of multipliers.  (Contributed by Stefan
       O'Rear, 9-Mar-2015.)  (Proof shortened by AV, 18-Jul-2019.) $)
    psrbagev2 $p |- ( ph -> ( T gsum ( B oF .x. G ) ) e. C ) $=
      ( cof co cvv wf cfsupp wbr psrbagev1 simpld simprd gsumcl ) AICBHFSTZEUAJ
      LNORAICUIUBZUIJUCUDZABCDEFGHIJKLMNOPQRUEZUFAUJUKULUGUH $.
  $}

  ${
    $d ph i j k y $.  $d B i j k x y z $.  $d D i j k x y z $.  $d E i j z $.
    $d I h i j k $.  $d .x. i j $.  $d P i j k x y z $.  $d R h i j k $.
    $d S i j $.  $d .0. h i j k x y $.  $d .0. z $.
    evlslem2.p $e |- P = ( I mPoly R ) $.
    evlslem2.b $e |- B = ( Base ` P ) $.
    evlslem2.m $e |- .x. = ( .r ` S ) $.
    evlslem2.z $e |- .0. = ( 0g ` R ) $.
    evlslem2.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
    evlslem2.i $e |- ( ph -> I e. _V ) $.
    evlslem2.r $e |- ( ph -> R e. CRing ) $.
    evlslem2.s $e |- ( ph -> S e. CRing ) $.
    evlslem2.e1 $e |- ( ph -> E e. ( P GrpHom S ) ) $.
    evlslem2.e2 $e |- ( ( ph /\ ( ( x e. B /\ y e. B ) /\ ( j e. D /\
      i e. D ) ) ) -> ( E ` ( k e. D |-> if ( k = ( j oF + i ) , ( ( x ` j )
      ( .r ` R ) ( y ` i ) ) , .0. ) ) ) = ( ( E ` ( k e. D |-> if ( k = j ,
      ( x ` j ) , .0. ) ) ) .x. ( E ` ( k e. D |->
      if ( k = i , ( y ` i ) , .0. ) ) ) ) ) $.
    $( A linear function on the polynomial ring which is multiplicative on
       scaled monomials is generally multiplicative.  (Contributed by Stefan
       O'Rear, 9-Mar-2015.) $)
    evlslem2 $p |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( E ` ( x ( .r ` P ) y ) ) = ( ( E ` x ) .x. ( E ` y ) ) ) $=
      ( vz cv wcel wa weq cfv cif cmpt cgsu co cmulr ccom cmpt2 cvv c0g eqid cn
      ccnv cima cfn cn0 cmap rabex2 a1i crg crngring syl mplring syl2anc adantr
      ovex ccrg cbs ad2antrr simprl mplelf ffvelrnda simpr mplmon2cl simprr wbr
      cfsupp wral wfun w3a csupp wss mptex fvex 3pm3.2i mplelsfi fsuppimpd cdif
      funmpt ssid eqeltri suppssr ifeq1d ifid syl6eq mpteq2dv wceq csn cxp cgrp
      ringgrp mpl0 fconstmpt eqtr4d suppss2 suppssfifsupp syl12anc fveq1 breq1d
      ralrimiva cbvralv sylib adantrr adantrl gsumdixp fveq2d wf gsummhm oveq2d
      fveq2 eqtrd eqidd fmptco oveq12d ffvelrnd suppssfv 3eqtr4d mplcoe4 fmptd
      r19.21bi equequ2 ifbieq1d cbvmptv syl5eqbr ccmn ringcmn cmnd ringmnd xpex
      cmhm ghmmhm ringcl syl3anc ralrimivva fmpt2 mpt2ex mpt2fun evlslem4 caddc
      cghm xpfi cof mplmon2mul anassrs 3impb mpt2eq3dva feqmptd fmpt2co 3eqtr2d
      ghmf ghmid ) ABUHZDUIZCUHZDUIZUJZUJZFLEMEMLUKZLUHZUVMULZPUMZUNZUNZUOUPZFK
      EMEMKUKZKUHZUVOULZPUMZUNZUNZUOUPZFUQULZUPZNULZHNUWDURZUOUPZHNUWKURZUOUPZI
      UPZUVMUVOUWMUPZNULUVMNULZUVONULZIUPUVRUWOFLKEEUWCUWJUWMUPZUSZUOUPZNULHNUX
      EURZUOUPZUWTUVRUWNUXFNUVRLKDFUWMEEUTUTUWCUWJFVAULZRUWMVBZUXIVBZEUTUIZUVRJ
      UHVDVCVEVFUIJVGOVHUPEUAVGOVHVQVIZVJZUXNAFVKUIZUVQAOUTUIZGVKUIZUXOUBAGVRUI
      ZUXQUCGVLVMZFGOUTQVNVOZVPZUVRUVTEUIZUJZMDGVSULZEFGJOUVTUTUWAPQUATUYDVBZAU
      XPUVQUYBUBVTAUXQUVQUYBUXSVTRUVREUYDUVTUVMUVRDEFGJOUYDUVMQUYERUAAUVNUVPWAZ
      WBWCZUVRUYBWDWEZUVRUWGEUIZUJZMDUYDEFGJOUWGUTUWHPQUATUYEAUXPUVQUYIUBVTAUXQ
      UVQUYIUXSVTRUVREUYDUWGUVOUVRDEFGJOUYDUVOQUYERUAAUVNUVPWFZWBWCZUVRUYIWDWEZ
      AUVNUWDUXIWHWGZUVPAUYNBDALEMEUVSUVTUVOULZPUMZUNZUNZUXIWHWGZCDWIUYNBDWIAUY
      SCDAUVPUJZUYRUTUIZUYRWJZUXIUTUIZWKZUVOPWLUPZVFUIUYRUXIWLUPVUEWMUYSVUDUYTV
      UAVUBVUCLEUYQUXMWNLEUYQWTFVAWOZWPVJUYTUVOPUYTDFGUVOOVRPQRTAUVPWDZAUXRUVPU
      CVPWQWRUYTEUYQLUTVUEUXIUYTUVTEVUEWSUIZUJZUYQMEPUNZUXIVUIMEUYPPVUIUYPUVSPP
      UMPVUIUVSUYOPPUYTEUYDUTUVOUTVUEUVTPUYTDEFGJOUYDUVOQUYERUAVUGWBVUEVUEWMUYT
      VUEXAVJUXLUYTUXMVJZPUTUIUYTPGVAULUTTGVAWOXBVJXCXDUVSPXEXFXGAUXIVUJXHUVPVU
      HAUXIEPXIXJVUJAEFGJOPUTUXIQUATUXKUBAUXQGXKUIUXSGXLVMXMMEPXNXFVTXOVUKXPVUE
      UYRUTUTUXIXQXRZYAUYSUYNCBDCBUKZUYRUWDUXIWHVUMLEUYQUWCVUMMEUYPUWBVUMUVSUYO
      UWAPUVTUVOUVMXSXDXGXGXTYBYCUUAYDZUVRUWKUYRUXIWHKLEUWJUYQKLUKZMEUWIUYPVUOU
      WFUVSUWHUYOPKLMUUBUWGUVTUVOYKUUCXGUUDAUVPUYSUVNVULYEUUEZYFYGUVREEXJZDUXEF
      HNUTUXIRUXKAFUUFUIZUVQAUXOVURUXTFUUGVMVPZUVRHVKUIZHUUHUIAVUTUVQAHVRUIVUTU
      DHVLVMVPZHUUIVMZVUQUTUIUVREEUXMUXMUUJVJANFHUUKUPUIZUVQANFHUVAUPUIZVVCUEFH
      NUULVMVPZUVRUXDDUIZKEWILEWIVUQDUXEYHUVRVVFLKEEUVRUYBUYIUJZUJZUXOUWCDUIZUW
      JDUIZVVFAUXOUVQVVGUXTVTUVRUYBVVIUYIUYHYDUVRUYIVVJUYBUYMYEDFUWMUWCUWJRUXJU
      UMUUNZUUOLKEEUXDDUXEUXEVBZUUPYCUVRUXEUTUIZUXEWJZVUCWKZUWDUXIWLUPZUWKUXIWL
      UPZXJZVFUIZUXEUXIWLUPVVRWMUXEUXIWHWGVVOUVRVVMVVNVUCLKEEUXDUXMUXMUUQLKEEUX
      DUXEVVLUURVUFWPVJUVRVVPVFUIZVVQVFUIZVVSUVRUWDUXIVUNWRZUVRUWKUXIVUPWRZVVPV
      VQUVBVOUVRLKDFUWMEEUTUTUWCUWJUXIRUXKUXJUYAUYHUYMUXNUXNUUSVVRUXEUTUTUXIXQX
      RYIUVRHLKEEUXDNULZUSZUOUPHLKEEUWCNULZUWJNULZIUPZUSZUOUPZUXHUWTUVRVWEVWIHU
      OUVRLKEEVWDVWHUVRUYBUYIVWDVWHXHVVHVWDMEMUHUVTUWGUUTUVCUPXHUWAUWHGUQULZUPP
      UMUNZNULZVWHVVHUXDVWLNVVHMUYDEFGUWMVWKJUWAUWHOUTUVTUWGPQUATUYEAUXPUVQVVGU
      BVTAUXRUVQVVGUCVTUXJVWKVBUVRUYBUYIWAUVRUYBUYIWFUVRUYBUWAUYDUIUYIUYGYDUVRU
      YIUWHUYDUIUYBUYLYEUVDYGAUVQVVGVWMVWHXHUFUVEYLUVFUVGYJUVRUXGVWEHUOUVRLKUGE
      EDUXDUGUHZNULZVWDUXENVVKUVRUXEYMANUGDVWOUNXHUVQAUGDHVSULZNAVVDDVWPNYHZUEF
      HNDVWPRVWPVBZUVKVMZUVHVPZVWNUXDNYKUVIYJUVRUWTHLEVWFUNZUOUPZHKEVWGUNZUOUPZ
      IUPVWJUVRUWQVXBUWSVXDIUVRUWPVXAHUOUVRLUGEDUWCVWOVWFUWDNUYHUVRUWDYMVWTVWNU
      WCNYKYNYJUVRUWRVXCHUOUVRKUGEDUWJVWOVWGUWKNUYMUVRUWKYMVWTVWNUWJNYKYNYJYOUV
      RLKVWPHIEEUTUTVWFVWGHVAULZVWRSVXEVBZUXNUXNVVAUYCDVWPUWCNAVWQUVQUYBVWSVTUY
      HYPUYJDVWPUWJNAVWQUVQUYIVWSVTUYMYPUVRVXAUTUIZVXAWJZVXEUTUIZWKZVVTVXAVXEWL
      UPVVPWMZVXAVXEWHWGVXJUVRVXGVXHVXILEVWFUXMWNLEVWFWTHVAWOZWPVJVWBAVXKUVQALU
      WCEUTNVVPUTUXIVXEVVPVVPWMAVVPXAVJAVVDUXINULVXEXHUEFHNUXIVXEUXKVXFUVLVMZUW
      CUTUIAUYBUJMEUWBUXMWNVJVUCAVUFVJZYQVPVVPVXAUTUTVXEXQXRUVRVXCUTUIZVXCWJZVX
      IWKZVWAVXCVXEWLUPVVQWMZVXCVXEWHWGVXQUVRVXOVXPVXIKEVWGUXMWNKEVWGWTVXLWPVJV
      WCAVXRUVQAKUWJEUTNVVQUTUXIVXEVVQVVQWMAVVQXAVJVXMUWJUTUIAUYIUJMEUWIUXMWNVJ
      VXNYQVPVVQVXCUTUTVXEXQXRYFYLYRUVJUVRUXAUWNNUVRUVMUWEUVOUWLUWMUVRMDEFGJLOU
      TUVMPQUATRAUXPUVQUBVPZAUXQUVQUXSVPZUYFYSZUVRMDEFGJKOUTUVOPQUATRVXSVXTUYKY
      SZYOYGUVRUXBUWQUXCUWSIUVRUXBUWENULUWQUVRUVMUWENVYAYGUVREDUWDFHNUTUXIRUXKV
      USVVBUXNVVEUVRLEUWCDUWDUYHUWDVBYTVUNYIXOUVRUXCUWLNULUWSUVRUVOUWLNVYBYGUVR
      EDUWKFHNUTUXIRUXKVUSVVBUXNVVEUVRKEUWJDUWKUYMUWKVBYTVUPYIXOYOYR $.
  $}

  ${
    evlslem1.p $e |- P = ( I mPoly R ) $.
    evlslem1.b $e |- B = ( Base ` P ) $.
    evlslem1.c $e |- C = ( Base ` S ) $.
    evlslem1.k $e |- K = ( Base ` R ) $.
    evlslem1.d $e |- D = { h e. ( NN0 ^m I ) | ( `' h " NN ) e. Fin } $.
    evlslem1.t $e |- T = ( mulGrp ` S ) $.
    evlslem1.x $e |- .^ = ( .g ` T ) $.
    evlslem1.m $e |- .x. = ( .r ` S ) $.
    evlslem1.v $e |- V = ( I mVar R ) $.
    evlslem1.e $e |- E = ( p e. B |-> ( S gsum ( b e. D |->
              ( ( F ` ( p ` b ) ) .x. ( T gsum ( b oF .^ G ) ) ) ) ) ) $.
    evlslem1.i $e |- ( ph -> I e. _V ) $.
    evlslem1.r $e |- ( ph -> R e. CRing ) $.
    evlslem1.s $e |- ( ph -> S e. CRing ) $.
    evlslem1.f $e |- ( ph -> F e. ( R RingHom S ) ) $.
    evlslem1.g $e |- ( ph -> G : I --> C ) $.

    ${
      $d ph b x $.  $d C b x $.  $d D b $.  $d G x $.  $d I h $.  $d .x. x $.
      $d R b $.  $d S b x $.  $d T x $.  $d .^ x $.  $d Y b $.  $d b h $.
      evlslem6.y $e |- ( ph -> Y e. B ) $.
      $( Lemma for ~ evlseu .  Finiteness and consistency of the top-level sum.
         (Contributed by Stefan O'Rear, 9-Mar-2015.)  (Revised by AV,
         26-Jul-2019.) $)
      evlslem6 $p |- ( ph -> ( ( b e. D |-> ( ( F ` ( Y ` b ) ) .x.
          ( T gsum ( b oF .^ G ) ) ) ) : D --> C /\ ( b e. D |->
          ( ( F ` ( Y ` b ) ) .x. ( T gsum ( b oF .^ G ) ) ) )
          finSupp ( 0g ` S ) ) ) $=
        ( vx cv cfv cof co cgsu cmpt wf c0g cfsupp wbr wcel wa crg crngring syl
        ccrg adantr crh rhmf mplelf ffvelrnda ffvelrnd mgpbas eqid ccmn crngmgp
        simpr cvv psrbagev2 ringcl syl3anc fmptd wfun csupp cfn wss ccnv cn cn0
        cima cmap ovexd rabexd mptexg a1i fvexd mplelsfi fsuppimpd wceq feqmptd
        funmpt oveq1d eqimss2 cghm rhmghm ghmid suppssfv ringlz sylan suppssov1
        3syl suppssfifsupp syl32anc jca ) ADCTDTURZRUSZMUSZHYBNLUTVAVBVAZIVAZVC
        ZVDYGGVEUSZVFVGZATDYFCYGAYBDVHZVIZGVJVHZYDCVHYECVHYFCVHAYLYJAGVMVHZYLUM
        GVKVLZVNYKPCYCMAPCMVDZYJAMFGVOVAVHZYOUNPCFGMUDUCVPVLVNADPYBRABDEFJOPRUA
        UDUBUEUPVQZVRVSYKYBCDHLJNOHVEUSZUECGHUFUCVTUGYRWAAHWBVHZYJAYMYSUMGHUFWC
        VLVNAYJWDAOCNVDYJUOVNAOWEVHYJUKVNWFZCGIYDYEUCUHWGWHYGWAWIAYGWEVHZYGWJZY
        HWEVHRFVEUSZWKVAZWLVHYGYHWKVAUUDWMYIADWEVHUUAAJURWNWOWQWLVHJWPOWRVADWEU
        EAWPOWRWSWTTDYFWEXAVLUUBATDYFXHXBAGVEXCZARUUCABEFROVMUUCUAUBUUCWAZUPULX
        DXEATUQYDYEDCUUDIWEWEYHYHATYCDWEMUUDWEUUCYHAUUDTDYCVCZUUCWKVAZXFUUHUUDW
        MARUUGUUCWKATDPRYQXGXIUUHUUDXJVLAYPMFGXKVAVHUUCMUSYHXFUNFGMXLFGMUUCYHUU
        FYHWAZXMXRYKYBRXCAFVEXCXNAYLUQURZCVHYHUUJIVAYHXFYNCGIUUJYHUCUHUUIXOXPYK
        YCMXCYTUUEXQUUDYGWEWEYHXSXTYA $.
    $}

    ${
      $d b p x .0. $.  $d p B $.  $d b y z C $.  $d b p x y z D $.  $d b p F $.
      $d b p y z .^ $.  $d b h p x A $.  $d h I $.  $d x K $.  $d b x y z ph $.
      $d b p y z G $.  $d b p x H $.  $d b p S $.  $d b p y T $.  $d b p .x. $.
      $d x R $.
      evlslem3.z $e |- .0. = ( 0g ` R ) $.
      evlslem3.k $e |- ( ph -> A e. D ) $.
      evlslem3.q $e |- ( ph -> H e. K ) $.
      $( Lemma for ~ evlseu .  Polynomial evaluation of a scaled monomial.
         (Contributed by Stefan O'Rear, 8-Mar-2015.) $)
      evlslem3 $p |- ( ph -> ( E ` ( x e. D |-> if ( x = A , H , .0. ) ) ) =
            ( ( F ` H ) .x. ( T gsum ( A oF .^ G ) ) ) ) $=
        ( vy vz cv wceq cif cmpt cfv cof co cgsu wcel cvv ccrg crg crngring syl
        mplmon2cl fveq1 fveq2d oveq1d mpteq2dv oveq2d ovex fvmpt simpr c0g fvex
        eqeltri a1i ifexg syl2anc adantr eqeq1 ifbid eqid fvmptg mpteq2dva cmnd
        wa ringmnd ccnv cn cima cfn cn0 cmap rabex2 rhmf ring0cl ifcld ffvelrnd
        crh mgpbas ccmn crngmgp cmnmnd ad2antrr simprl simprr mulgnn0cl syl3anc
        wf psrbagf sylan inidm off wfun cdif cc0 wfn ffnd eldifi adantl ffvelrn
        wb wn syl2an 3eqtrd eqtrd csupp wss cfsupp ffund psrbag simplbda fnfvof
        wbr syl22anc eldifn ad2antlr elpreima mpbir2and mtand elnn0 sylib orel1
        wo mulg0 suppss suppssfifsupp syl32anc gsumcl ringcl fmptd csn eldifsni
        sylc neneqd cghm rhmghm ghmid sylan2 ringlz suppss2 gsumpt iftrue oveq1
        iffalsed oveq12d ) ABFBVDZCVEZQUAVFZVGZMVHZIUCFUCVDZUWDVHZOVHZJUWFPNVIZ
        VJZVKVJZKVJZVGZVKVJZCUCFUWFCVEZQUAVFZOVHZUWKKVJZVGZVHZQOVHZJCPUWIVJZVKV
        JZKVJZAUWDDVLUWEUWNVEABDSFGHLRCVMQUAUDUHUSUGUNAHVNVLHVOVLZUOHVPVQZUEVAU
        TVRUBUWDIUCFUWFUBVDZVHZOVHZUWKKVJZVGZVKVJUWNDMUXGUWDVEZUXKUWMIVKUXLUCFU
        XJUWLUXLUXIUWHUWKKUXLUXHUWGOUWFUXGUWDVSVTWAWBWCUMIUWMVKWDWEVQAUWNIUWSVK
        VJUWTAUWMUWSIVKAUCFUWLUWRAUWFFVLZWTZUWHUWQUWKKUXNUWGUWPOUXNUXMUWPVMVLZU
        WGUWPVEAUXMWFAUXOUXMAQSVLUAVMVLZUXOVAUXPAUAHWGVHVMUSHWGWHWIWJUWOQUASVMW
        KWLWMBUWFUWCUWPFVMUWDUWAUWFVEUWBUWOQUAUWAUWFCWNWOUWDWPWQWLVTWAWRWCAFEUW
        SIVMCIWGVHZUFUXQWPZAIVOVLZIWSVLAIVNVLZUXSUPIVPVQZIXAVQFVMVLALVDXBXCXDXE
        VLLXFRXGVJFUHXFRXGWDXHWJZUTAUCFUWREUWSUXNUXSUWQEVLZUWKEVLZUWREVLAUXSUXM
        UYAWMAUYCUXMASEUWPOAOHIXMVJVLZSEOYCUQSEHIOUGUFXIVQAUWOQUASVAAUXEUASVLUX
        FSHUAUGUSXJVQXKXLWMUXNREUWJJVMJWGVHZEIJUIUFXNZUYFWPZAJXOVLZUXMAUXTUYIUP
        IJUIXPVQZWMARVMVLZUXMUNWMZUXNVBVCRRRNXFEEUWFPVMVMUXNVBVDZXFVLZVCVDZEVLZ
        WTZWTJWSVLZUYNUYPUYMUYONVJEVLAUYRUXMUYQAUYIUYRUYJJXQVQXRUXNUYNUYPXSUXNU
        YNUYPXTENJUYMUYOUYGUJYAYBAUYKUXMRXFUWFYCZUNFLUWFRVMUHYDYEZAREPYCZUXMURW
        MZUYLUYLRYFYGZUXNUWJVMVLZUWJYHUYFVMVLZUWFXBXCXDZXEVLZUWJUYFUUAVJVUFUUBU
        WJUYFUUCUUHVUDUXNUWFPUWIWDWJUXNREUWJVUCUUDVUEUXNJWGWHWJAUXMUYSVUGAUYKUX
        MUYSVUGWTYPUNFLUWFRVMUHUUEVQUUFUXNREVBUWJVUFUYFVUCUXNUYMRVUFYIVLZWTZUYM
        UWJVHZUYMUWFVHZUYMPVHZNVJZYJVULNVJZUYFVUIUWFRYKZPRYKZUYKUYMRVLZVUJVUMVE
        UXNVUOVUHUXNRXFUWFUYTYLZWMAVUPUXMVUHAREPURYLXRAUYKUXMVUHUNXRVUHVUQUXNUY
        MRVUFYMZYNRNUWFPVMUYMUUGUUIVUIVUKYJVULNVUIVUKXCVLZYQVUTVUKYJVEZUURZVVAV
        UIVUTUYMVUFVLZVUHVVCYQUXNUYMRVUFUUJYNVUIVUTWTZVVCVUQVUTVUHVUQUXNVUTVUSU
        UKVUIVUTWFVVDVUOVVCVUQVUTWTYPUXNVUOVUHVUTVURXRRUYMXCUWFUULVQUUMUUNVUIVU
        KXFVLZVVBUXNUYSVUQVVEVUHUYTVUSRXFUYMUWFYOYRVUKUUOUUPVUTVVAUUQUVHWAVUIVU
        LEVLZVUNUYFVEUXNVUAVUQVVFVUHVUBVUSREUYMPYOYRENJVULUYFUYGUYHUJUUSVQYSUUT
        VUFUWJVMVMUYFUVAUVBUVCZEIKUWQUWKUFUKUVDYBUWSWPZUVEAFUWRUCVMCUVFZUXQAUWF
        FVVIYIVLZWTZUWRUXQUWKKVJZUXQVVKUWQUXQUWKKVVKUWQUAOVHZUXQVVKUWPUAOVVJUWP
        UAVEAVVJUWOQUAVVJUWFCUWFFCUVGUVIUVSYNVTAVVMUXQVEZVVJAOHIUVJVJVLZVVNAUYE
        VVOUQHIOUVKVQHIOUAUXQUSUXRUVLVQWMYTWAVVKUXSUYDVVLUXQVEAUXSVVJUYAWMVVJAU
        XMUYDUWFFVVIYMVVGUVMEIKUWKUXQUFUKUXRUVNWLYTUYBUVOUVPYTACFVLUWTUXDVEUTUC
        CUWRUXDFUWSUWOUWQUXAUWKUXCKUWOUWPQOUWOQUAUVQVTUWOUWJUXBJVKUWFCPUWIUVRWC
        UVTVVHUXAUXCKWDWEVQYS $.
    $}

    $d x A $.  $d b p v w x y z B $.  $d b p x y z C $.  $d b p v w x y z ph $.
    $d w x y z E $.  $d b p x F $.  $d b v x y K $.  $d b p x z T $.  $d x V $.
    $d b p v w x y z D $.  $d b h p v w x y z I $.  $d b h p v w x y z R $.
    $d b p v x z G $.  $d b p v w x y z P $.  $d b p w x y z S $.
    $d b p v w z .x. $.  $d b p v x z .^ $.
    evlslem1.a $e |- A = ( algSc ` P ) $.
    $( Lemma for ~ evlseu , give a formula for (the unique) polynomial
       evaluation homomorphism.  (Contributed by Stefan O'Rear, 9-Mar-2015.)
       (Proof shortened by AV, 26-Jul-2019.) $)
    evlslem1 $p |- ( ph -> ( E e. ( P RingHom S ) /\
          ( E o. A ) = F /\ ( E o. V ) = G ) ) $=
      ( vx vy vw vz vv crh co wcel ccom wceq cplusg cfv cmulr cur eqid cvv ccrg
      crg crngring syl syl2anc cv fveq2 fveq2d wa cc0 csn c0g cif cmpt cof cgsu
      adantr simpr wf evlslem3 fvexd a1i feqmptd offval2 ffvelrnda mgpbas mulg0
      mpteq2dva eqtrd oveq2d ccmn rhmf syl2an2r 3eqtrd oveq1d rhm1 cgrp ringgrp
      ringidcl cn0 cmap ovex cfsupp evlslem6 simpld simprd mplelf ffnd ad2antrr
      wbr wfn syl3anc ffvelrnd psrbagev2 ovexd eqidd eqtr4d fveq1 fvmpt oveq12d
      mpteq2dv weq 3eqtr4d caddc offval adantrl c1 adantl mplring cxp fconstmpt
      eqeq12d mplascl psrbag0 0zd ringidval cmnd crngmgp cmnmnd gsumz ralrimiva
      cz ringridm rspcdva csca casa mplassa asclrhm mplsca 3eqtr3d ringcmn ccnv
      eleqtrrd cn cima rabex2 gsumcl fmptd simplrl simplrr mpladd fveq1d simprl
      simprr fnfvof syl22anc cghm rhmghm ghmlin ringdir syl13anc grpcl ad2antll
      cfn gsumadd isghmd rhmmhm simprll simprrl simprlr simprrr mgpplusg mhmlin
      cmgp cmhm psrbagf mulgnn0dir inidm psrbagev1 syl122anc psrbagaddcl ringcl
      cmn4 evlslem2 isrhmd crn wss fnmpti fnco fvco2 sylan eqfnfvd mvrf2 mvrval
      frn psrbagsn 1nn0 0nn0 keepel oveq1 eqeq1d mulg1 iffalse ifbothda adantlr
      iftrue ifcld cdif eldifn velsn sylnib suppss2 gsumpt fvex ringlidm 3jca
      wn ) ALFHVBVCVDLBVEZNVFLRVEZOVFAUQURCDFVGVHZHVGVHZFHFVIVHZJFVJVHZLHVJVHZU
[encoded data, 7680 characters]
      VWGVFVUQVWLDHJVUFVWGUCUHVUHUYQXEXAXFXAUXNUYR $.
  $}

  ${
    $d m n A $.  $d x y C $.  $d m n x y F $.  $d m n x y G $.  $d m x y z I $.
    $d m n x y P $.  $d m n x y ph $.  $d x y z R $.  $d m n x y S $.
    $d m n V $.
    evlseu.p $e |- P = ( I mPoly R ) $.
    evlseu.c $e |- C = ( Base ` S ) $.
    evlseu.a $e |- A = ( algSc ` P ) $.
    evlseu.v $e |- V = ( I mVar R ) $.
    evlseu.i $e |- ( ph -> I e. _V ) $.
    evlseu.r $e |- ( ph -> R e. CRing ) $.
    evlseu.s $e |- ( ph -> S e. CRing ) $.
    evlseu.f $e |- ( ph -> F e. ( R RingHom S ) ) $.
    evlseu.g $e |- ( ph -> G : I --> C ) $.
    $( For a given interpretation of the variables ` G ` and of the scalars
       ` F ` , this extends to a homomorphic interpretation of the polynomial
       ring in exactly one way.  (Contributed by Stefan O'Rear, 9-Mar-2015.) $)
    evlseu $p |- ( ph -> E! m e. ( P RingHom S )
            ( ( m o. A ) = F /\ ( m o. V ) = G ) ) $=
      ( vx vy vz vn cv ccom wceq wa crh co wrex wrmo wreu cbs cfv ccnv cima cfn
      wcel cn0 cmap crab cmgp cmg cof cgsu cmulr cmpt w3a evlslem1 coeq1 eqeq1d
      cn eqid anbi12d rspcev 3impb syl crn cun cres wral wfun csca cvv crg ccrg
      wi crngring mplring mpllmod asclf syl2anc ffun funcoeqres sylan anim12dan
      wf mvrf2 ex resundi uneq12 syl5eq syl6 ralrimivw weq eqtr3 cin cdm csubrg
      wss cmrc cmps casp casa psrassa mvrf frn aspval2 mplbas2 mplsubrg mplval2
      cascl subsubrg2 fveq2d ressascl syl6reqr rneqd cmre subrgmre 3syl syl3anc
      cpw unssd ad2antrr wfn wb rhmf ffn adantr uneq1d assaring eqsstr3d submrc
      fveq12d eqtr2d 3eqtr3d simpr rhmeql mrcsscl eqsstrd simprl simprr 3imtr4d
      ad2antlr fnreseql fneqeql2 syl5 ralrimivva reseq1 rmo4 sylc reu5 sylanbrc
      sylibr rmoim ) AGUEZBUFZHUGZUVGKUFZIUGZUHZGDFUIUJZUKZUVLGUVMULZUVLGUVMUMA
      UADUNUOZFUBUCUEUPVMUQURUSUCUTJVAUJVBZUBUEZUAUEUOHUOFVCUOZUVRIUVSVDUOZVEUJ
      VFUJFVGUOZUJVHVFUJVHZUVMUSZUWBBUFZHUGZUWBKUFZIUGZVIUVNABUVPCUVQDEFUVSUWAU
      CUWBUVTHIJEUNUOZKUAUBLUVPVNZMUWHVNUVQVNUVSVNUVTVNUWAVNOUWBVNPQRSTNVJUWCUW
      EUWGUVNUVLUWEUWGUHGUWBUVMUVGUWBUGZUVIUWEUVKUWGUWJUVHUWDHUVGUWBBVKVLUWJUVJ
      UWFIUVGUWBKVKVLVOVPVQVRAUVLUVGBVSZKVSZVTZWAZHBUPUFZIKUPUFZVTZUGZWHZGUVMWB
      UWRGUVMULZUVOAUWSGUVMAUVLUVGUWKWAZUWOUGZUVGUWLWAZUWPUGZUHZUWRAUVLUXEAUVIU
      XBUVKUXDABWCZUVIUXBADWDUOZUNUOZUVPBWRZUXFAJWEUSZEWFUSZUXIPAEWGUSUXKQEWIVR
      ZUXJUXKUHBUVPUXGUXHDNUXGVNDEJWELWJZDEJWELWKUXHVNUWIWLWMZUXHUVPBWNVRUVGBHW
      OWPAKWCZUVKUXDAJUVPKWRZUXOAUVPDEJKWELOUWIPUXLWSZJUVPKWNVRUVGKIWOWPWQWTUXE
      UWNUXAUXCVTUWQUVGUWKUWLXAUXAUWOUXCUWPXBXCXDXEAUWRUDUEZUWMWAZUWQUGZUHZGUDX
      FZWHZUDUVMWBGUVMWBUWTAUYCGUDUVMUVMUYAUWNUXSUGZAUVGUVMUSZUXRUVMUSZUHZUHZUY
      BUWNUXSUWQXGUYHUWMUVGUXRXHXIZXKZUVPUYIXKZUYDUYBUYHUYJUYKUYHUYJUHZUVPUWMDX
      JUOZXLUOZUOZUYIAUVPUYOUGUYGUYJAUWLJEXMUJZXNUOZUOZUYPYCUOZVSZUWLVTZUYPXJUO
      ZXLUOZUOZUVPUYOAUYPXOUSZUWLUYPUNUOZXKZUYRVUDUGAEUYPJWEUYPVNZPQXPZAJVUFKWR
      VUGAVUFEUYPJKWEVUHOVUFVNZPUXLXQJVUFKXRVRUYQUYSVUCUWLVUFUYPUYQVNZUYSVNZVUC
      VNZVUJXSWMAUYQDEUYPJKWELVUHOVUKPQXTAUYOVUAVUBUVPYMXHZXLUOZUOZVUDAUWMVUAUY
      NVUOAUYMVUNXLAUVPVUBUSZUYMVUNUGADEUYPUVPJWEVUHLUWIPUXLYAZUVPUYPDDEUYPUVPJ
      LVUHUWIYBZYDVRYEAUWKUYTUWLABUYSAUYSDYCUOZBAVUQUYSVUTUGVURUYSUVPUYPDVULVUS
      YFVRNYGYHZUUAUUEAVUBVUFYIUOUSZVUQVUAUVPXKVUPVUDUGAVUEUYPWFUSVVBVUIUYPUUBV
      UFUYPVUJYJYKVURAUYTUWLUVPAUYTUWKUVPVVAAUXIUWKUVPXKZUXNUXHUVPBXRVRZUUCAUXP
      UWLUVPXKZUXQJUVPKXRVRZYNVUBUVPVUAVUCVUOVUFVUMVUOVNUUDYLUUFUUGYOUYLUYMUVPY
      IUOUSZUYJUYIUYMUSZUYOUYIXKAVVGUYGUYJADWFUSZVVGAUXJUXKVVIPUXLUXMWMUVPDUWIY
      JVRYOUYHUYJUUHUYGVVHAUYJDFUVGUXRUUIUUOUYMUWMUYNUYIUVPUYNVNUUJYLUUKWTUYHUV
      GUVPYPZUXRUVPYPZUWMUVPXKUYDUYJYQUYHUYEUVPCUVGWRVVJAUYEUYFUULUVPCDFUVGUWIM
      YRUVPCUVGYSYKZUYHUYFUVPCUXRWRVVKAUYEUYFUUMUVPCDFUXRUWIMYRUVPCUXRYSYKZUYHU
      WKUWLUVPAVVCUYGVVDYTAVVEUYGVVFYTYNUVPUVGUXRUWMUUPYLUYHVVJVVKUYBUYKYQVVLVV
      MUVPUVGUXRUUQWMUUNUURUUSUWRUXTGUDUVMUYBUWNUXSUWQUVGUXRUWMUUTVLUVAUVEUVLUW
      RGUVMUVFUVBUVLGUVMUVCUVD $.
  $}

  ${
    $d a b f g i r s w x I $.  $d a b f g i r s w x S $.
    $( Well-behaved binary operation property of ` evalSub ` .  (Contributed by
       Stefan O'Rear, 19-Mar-2015.) $)
    reldmevls $p |- Rel dom evalSub $=
      ( vi vs vb vr vw vf vx vg cvv ccrg cv cbs cfv csubrg cress ccom cmpt wceq
      co csb cmpl cascl cmap csn cxp cmvr cpws crh crio ces df-evls reldmmpt2
      wa ) ABIJCBKZLMDUNNMEAKZUNDKZOSZUASFKZEKZUBMPGUPCKUOUCSZGKZUDUEQRURUOUQUF
      SPGUOHUTVAHKMQQRUMFUSUNUTUGSUHSUITQTUJGEFHABDCUKUL $.

    mpfrcl.q $e |- Q = ran ( ( I evalSub S ) ` R ) $.
    $( Reverse closure for the set of polynomial functions.  (Contributed by
       Stefan O'Rear, 19-Mar-2015.) $)
    mpfrcl $p |- ( X e. Q -> ( I e. _V /\ S e. CRing /\
          R e. ( SubRing ` S ) ) ) $=
      ( vb vr vw vf vx vg wcel co cfv c0 wceq cv cmpt csb va vi ces crn wne cvv
      vs ccrg csubrg w3a ne0i eleq2s rneq rn0 syl6eq necon3i wa fveq1 reldmevls
      0fv ovprc1 necon1ai wex wi n0 cbs cress cmpl cascl ccom cmap csn cxp cmvr
      cpws crh crio df-evls elmpt2cl2 a1d exlimiv sylbi jcai syl wn cdm nfcsb1v
      fvex nfcv nfmpt csbeq1a mpteq2dv csbief fveq2 adantl csbeq1d id oveqan12d
      oveq1 oveq2 oveqan12rd oveq2d adantr xpeq1d eqeq2d coeq2d simpl mpteq12dv
      mpteq1d eqeq12d anbi12d riotaeqbidv eqtrd syl5eq mptex ovmpt2a dmeqd eqid
      csbeq2dv dmmptss syl6eqss ssneld ndmfv syl6 necon1ad com12 df-3an sylibr
      3syl ) EAMBDCUCNZOZUDZPUEZYKPUEZDUFMZCUHMZBCUIOZMZUJZYMEYLAYLEUKFULYKPYLP
      YKPQZYLPUDPYKPUMUNUOUPYNYOYPUQZYRUQYSYNUUAYRYNYJPUEZUUAYJPYKPYJPQYKBPOPBY
      JPURBUTUOUPUUBYOYPYOYJPDCUCUSVAVBUUBUARZYJMZUAVCYOYPVDZUAYJVEUUDUUEUAUUDY
      PYOUBUGUFUHGUGRZVFOZHUUFUIOZIUBRZUUFHRZVGNZVHNZJRZIRZVIOVJZKUUJGRZUUIVKNZ
      KRZVLZVMZSZQZUUMUUIUUKVNNZVJZKUUILUUQUURLROZSZSZQZUQZJUUNUUFUUQVONZVPNZVQ
      ZTZSZTZDCUCUUCKIJLUBUGHGVRZVSVTWAWBWCWDUUAYNYRUUAYRYKPUUAYRWEBYJWFZMWEYTU
      UAUVQYQBUUAUVQHYQGCVFOZIDCUUJVGNZVHNZUUOKUUJUUPDVKNZUUSVMZSZQZUUMDUVSVNNZ
      VJZKDLUWAUVESZSZQZUQZJUUNCUWAVONZVPNZVQZTZTZSZWFYQUUAYJUWPUBUGDCUFUHUVOUW
      PUCUUIDQZUUFCQZUQZUVOHUUHGUUGUVMTZSZUWPGUUGUVNUXAUUFVFWHGHUUHUWTGUUHWIGUU
      GUVMWGWJUUPUUGQHUUHUVMUWTGUUGUVMWKWLWMUWSHUUHUWTYQUWOUWRUUHYQQUWQUUFCUIWN
      WOUWSUWTGUVRUVMTUWOUWSGUUGUVRUVMUWRUUGUVRQUWQUUFCVFWNWOWPUWSGUVRUVMUWNUWS
      UVMIUVTUVLTUWNUWSIUULUVTUVLUWQUWRUUIDUUKUVSVHUWQWQZUUFCUUJVGWSZWRWPUWSIUV
      TUVLUWMUWSUVIUWJJUVKUWLUWSUVJUWKUUNVPUWRUWQUUFCUUQUWAVOUWRWQUUIDUUPVKWTZX
      AXBUWSUVBUWDUVHUWIUWSUVAUWCUUOUWSKUUJUUTUWBUWSUUQUWAUUSUWQUUQUWAQUWRUXDXC
      ZXDWLXEUWSUVDUWFUVGUWHUWSUVCUWEUUMUWQUWRUUIDUUKUVSVNUXBUXCWRXFUWSKUUIUVFD
      UWGUWQUWRXGUWSLUUQUWAUVEUXEXIXHXJXKXLXSXMXSXMXHXNUVPHYQUWOCUIWHXOXPXQHYQU
      WOUWPUWPXRXTYAYBBYJYCYDYEYFWCYOYPYRYGYHYI $.
  $}

  ${
    $d I b f g i r s w x $.  $d R f r x $.  $d S b f g i r s w x $.  $d T f $.
    $d W f $.
    evlsval.q $e |- Q = ( ( I evalSub S ) ` R ) $.
    evlsval.w $e |- W = ( I mPoly U ) $.
    evlsval.v $e |- V = ( I mVar U ) $.
    evlsval.u $e |- U = ( S |`s R ) $.
    evlsval.t $e |- T = ( S ^s ( B ^m I ) ) $.
    evlsval.b $e |- B = ( Base ` S ) $.
    evlsval.a $e |- A = ( algSc ` W ) $.
    evlsval.x $e |- X = ( x e. R |-> ( ( B ^m I ) X. { x } ) ) $.
    evlsval.y $e |- Y = ( x e. I |-> ( g e. ( B ^m I ) |-> ( g ` x ) ) ) $.
    $( Value of the polynomial evaluation map function.  (Contributed by Stefan
       O'Rear, 11-Mar-2015.)  (Revised by AV, 18-Sep-2021.) $)
    evlsval $p |- ( ( I e. Z /\ S e. CRing /\ R e. ( SubRing ` S ) ) ->
        Q = ( iota_ f e. ( W RingHom T ) ( ( f o. A ) = X /\
              ( f o. V ) = Y ) ) ) $=
      ( vr vi vs vb vw wcel ccrg csubrg cfv w3a cv cress co cmpl cascl ccom cbs
      cmap csn cxp cmpt wceq cmvr cpws crh crio ces cvv elex csb adantl csbeq1d
      wa fveq2 fvex a1i simplr fveq2d simpll oveq1 ad2antlr ovexd simprr simprl
      oveq12d coeq2d xpeq1d mpteq2dv eqeq12d oveq1d mpteq1d anbi12d riotaeqbidv
      mpteq12dv anassrs csbied eqtrd df-evls mptex ovmpt2a fveq1d sylan 3adant3
      syl5eq oveq2 oveq2d mpteq1 eqeq1d eqid riotaex fvmpt oveq2i eqtri oveq12i
      wtru oveq1i wb fveq2i coeq2i xpeq1i mpteq2i eqeq12i mpteq12i anbi12i trud
      syl6eqr 3ad2ant3 ) KPUKZFULUKZEFUMUNZUKZUODEUFYOIUPZKFUFUPZUQURZUSURZUTUN
      ZVAZAYRFVBUNZKVCURZAUPZVDZVEZVFZVGZYQKYSVHURZVAZAKJUUDUUEJUPUNZVFZVFZVGZV
      RZIYTFUUDVIURZVJURZVKZVFZUNZYQBVAZNVGZYQLVAZOVGZVRZIMGVJURZVKZYMYNDUVAVGY
      PYMYNVRDEKFVLURZUNZUVAQYMKVMUKZYNUVJUVAVGKPVNUVKYNVREUVIUUTUGUHKFVMULUIUH
      UPZVBUNZUFUVLUMUNZUJUGUPZUVLYRUQURZUSURZYQUJUPZUTUNZVAZAYRUIUPZUVOVCURZUU
      FVEZVFZVGZYQUVOUVPVHURZVAZAUVOJUWBUULVFZVFZVGZVRZIUVRUVLUWBVIURZVJURZVKZV
      OZVFZVOZUUTVLUVOKVGZUVLFVGZVRZUWQUIUUCUWPVOUUTUWTUIUVMUUCUWPUWSUVMUUCVGUW
      RUVLFVBVSVPVQUWTUIUUCUWPUUTVMUUCVMUKUWTFVBVTWAUWTUWAUUCVGZVRZUFUVNUWOYOUU
      SUXBUVLFUMUWRUWSUXAWBWCUXBUWOUJYTUWNVOUUSUXBUJUVQYTUWNUXBUVOKUVPYSUSUWRUW
      SUXAWDUWSUVPYSVGUWRUXAUVLFYRUQWEWFWJVQUXBUJYTUWNUUSVMUXBKYSUSWGUWTUXAUVRY
      TVGZUWNUUSVGUWTUXAUXCVRZVRZUWKUUPIUWMUURUXEUVRYTUWLUUQVJUWTUXAUXCWHZUXEUV
      LFUWBUUDVIUWRUWSUXDWBZUXEUWAUUCUVOKVCUWTUXAUXCWIUWRUWSUXDWDZWJZWJWJUXEUWE
      UUIUWJUUOUXEUVTUUBUWDUUHUXEUVSUUAYQUXEUVRYTUTUXFWCWKUXEAYRUWCUUGUXEUWBUUD
      UUFUXIWLWMWNUXEUWGUUKUWIUUNUXEUWFUUJYQUXEUVOKUVPYSVHUXHUXEUVLFYRUQUXGWOWJ
      WKUXEAUVOUWHKUUMUXHUXEJUWBUUDUULUXIWPWSWNWQWRWTXAXBWSXAXBAUJIJUGUHUFUIXCU
      FYOUUSFUMVTXDXEXFXGXIXHYPYMUVAUVHVGYNYPUVAYQKFEUQURZUSURZUTUNZVAZAEUUGVFZ
      VGZYQKUXJVHURZVAZUUNVGZVRZIUXKUUQVJURZVKZUVHUFEUUSUYAYOUUTYREVGZUUPUXSIUU
      RUXTUYBYTUXKUUQVJUYBYSUXJKUSYREFUQXJZXKZWOUYBUUIUXOUUOUXRUYBUUBUXMUUHUXNU
      YBUUAUXLYQUYBYTUXKUTUYDWCWKAYREUUGXLWNUYBUUKUXQUUNUYBUUJUXPYQUYBYSUXJKVHU
      YCXKWKXMWQWRUUTXNUXSIUXTXOXPUVHUYAVGXTUVFUXSIUVGUXTUVGUXTVGXTMUXKGUUQVJMK
      HUSURUXKRHUXJKUSTXQXRZGFCKVCURZVIURUUQUAUYFUUDFVICUUCKVCUBYAZXQXRXSWAUVFU
      XSYBXTUVCUXOUVEUXRUVBUXMNUXNBUXLYQBMUTUNUXLUCMUXKUTUYEYCXRYDNAEUYFUUFVEZV
      FUXNUDAEUYHUUGUYFUUDUUFUYGYEYFXRYGUVDUXQOUUNLUXPYQLKHVHURUXPSHUXJKVHTXQXR
      YDOAKJUYFUULVFZVFUUNUEAKUYIUUMJUYFUULUUDUULUYGUULXNYHYFXRYGYIWAWRYJYKYLXB
      $.

    $d A m $.  $d B g $.  $d B x $.  $d I m $.  $d Q m $.  $d R g m $.
    $d S m $.  $d T m x $.  $d V m $.  $d W m $.  $d X m $.  $d Y m $.
    $d Z g m x $.
    $( Characterizing properties of the polynomial evaluation map function.
       (Contributed by Stefan O'Rear, 12-Mar-2015.)  (Revised by AV,
       18-Sep-2021.) $)
    evlsval2 $p |- ( ( I e. Z /\ S e. CRing /\ R e. ( SubRing ` S ) ) ->
        ( Q e. ( W RingHom T ) /\ ( ( Q o. A ) = X /\ ( Q o. V ) = Y ) ) ) $=
      ( vm wcel ccrg csubrg cfv w3a cv ccom wceq crh crab crio evlsval wreu cbs
      wa co eqid cvv elex 3ad2ant1 subrgcrng 3adant1 cmap simp2 pwscrng sylancl
      ovex csn cxp cmpt cres subrgss 3ad2ant3 resmptd syl6eqr crngring 3ad2ant2
      wss crg pwsdiagrhm simp3 resrhm syl2anc eqeltrrd wf wb fvex simpl1 elmapg
      eqeltri sylancr biimpa simplr ffvelrnd simpl2 pwselbasb mpbird evlseu syl
      fmptd riotacl2 eqeltrd coeq1 eqeq1d anbi12d elrab sylib ) JOUFZFUGUFZEFUH
      UIUFZUJZDUEUKZBULZMUMZXQKULZNUMZUTZUELGUNVAZUOZUFDYCUFDBULZMUMZDKULZNUMZU
      TZUTXPDYBUEYCUPZYDABCDEFGHUEIJKLMNOPQRSTUAUBUCUDUQXPYBUEYCURYJYDUFXPBGUSU
      IZLHGUEMNJKQYKVBZUBRXMXNJVCUFXOJOVDVEXNXOHUGUFXMEFHSVFVGXPXNCJVHVAZVCUFZG
      UGUFXMXNXOVICJVHVLZFYMVCGTVJVKXPACYMAUKZVMVNZVOZEVPZMHGUNVAZXPYSAEYQVOMXP
      ACEYQXOXMECWCXNECFUAVQVRVSUCVTXPYRFGUNVAUFZXOYSYTUFXPFWDUFZYNUUAXNXMUUBXO
      FWAWBYOACFYRYMVCGTUAYRVBWEVKXMXNXOWFFGHYRESWGWHWIXPAJIYMYPIUKZUIZVOZYKNXP
      YPJUFZUTZUUEYKUFZYMCUUEWJZUUGIYMUUDCUUEUUGUUCYMUFZUTJCYPUUCUUGUUJJCUUCWJZ
      UUGCVCUFXMUUJUUKWKCFUSUIVCUAFUSWLWOXMXNXOUUFWMCJUUCVCOWNWPWQXPUUFUUJWRWSU
      UEVBXEUUGXNYNUUHUUIWKXMXNXOUUFWTYOCFYMYKUGUUEGVCTUAYLXAVKXBUDXEXCYBUEYCXF
      XDXGYBYIUEDYCXQDUMZXSYFYAYHUULXRYEMXQDBXHXIUULXTYGNXQDKXHXIXJXKXL $.
  $}

  ${
    $d B x y $.  $d I x y $.  $d R x y $.  $d S x y $.  $d T x $.  $d V x y $.
    evlsrhm.q $e |- Q = ( ( I evalSub S ) ` R ) $.
    evlsrhm.w $e |- W = ( I mPoly U ) $.
    evlsrhm.u $e |- U = ( S |`s R ) $.
    evlsrhm.t $e |- T = ( S ^s ( B ^m I ) ) $.
    evlsrhm.b $e |- B = ( Base ` S ) $.
    $( Polynomial evaluation is a homomorphism (into the product ring).
       (Contributed by Stefan O'Rear, 12-Mar-2015.) $)
    evlsrhm $p |- ( ( I e. V /\ S e. CRing /\ R e. ( SubRing ` S ) ) ->
        Q e. ( W RingHom T ) ) $=
      ( vx vy wcel cfv co eqid ccrg csubrg w3a crh cascl ccom cmap csn cxp cmpt
      cv wceq cmvr wa evlsval2 simpld ) GHQDUAQCDUBRQUCBIEUDSQBIUERZUFOCAGUGSZO
      UKZUHUIUJZULBGFUMSZUFOGPURUSPUKRUJUJZULUNOUQABCDEFPGVAIUTVBHJKVATLMNUQTUT
      TVBTUOUP $.
  $}

  ${
    $d B x y $.  $d I x y $.  $d R x y $.  $d S x y $.  $d V x y $.  $d X x $.
    evlssca.q $e |- Q = ( ( I evalSub S ) ` R ) $.
    evlssca.w $e |- W = ( I mPoly U ) $.
    evlssca.u $e |- U = ( S |`s R ) $.
    evlssca.b $e |- B = ( Base ` S ) $.
    evlssca.a $e |- A = ( algSc ` W ) $.
    evlssca.i $e |- ( ph -> I e. V ) $.
    evlssca.s $e |- ( ph -> S e. CRing ) $.
    evlssca.r $e |- ( ph -> R e. ( SubRing ` S ) ) $.
    evlssca.x $e |- ( ph -> X e. R ) $.
    $( Polynomial evaluation maps scalars to constant functions.  (Contributed
       by Stefan O'Rear, 13-Mar-2015.)  (Proof shortened by AV,
       18-Sep-2021.) $)
    evlssca $p |- ( ph -> ( Q ` ( A ` X ) ) = ( ( B ^m I ) X. { X } ) ) $=
      ( vx vy ccom cfv cmap co csn cxp cmpt cpws crh wcel wceq cmvr ccrg csubrg
      cv wa eqid evlsval2 syl3anc simprld fveq1d cbs crg subrgring syl mplasclf
      wf subrgss ressbas2 3syl feq2d mpbird fvco3 syl2anc sneq xpeq2d ovex snex
      wss xpex fvmpt 3eqtr3d ) AKDBUCZUDZKUAECHUEUFZUAUQZUGZUHZUIZUDZKBUDDUDZWG
      KUGZUHZAKWEWKADJFWGUJUFZUKUFULZWEWKUMZDHGUNUFZUCUAHUBWGWHUBUQUDUIUIZUMZAH
      IULFUOULEFUPUDULZWQWRXAURURQRSUABCDEFWPGUBHWSJWKWTILMWSUSNWPUSOPWKUSZWTUS
      UTVAVBVCAEJVDUDZBVIZKEULZWFWMUMAXEGVDUDZXDBVIABXDJGHXGIMXDUSXGUSPQAXBGVEU
      LSEFGNVFVGVHAEXGXDBAXBECWAEXGUMSECFOVJECGFNOVKVLVMVNTEXDKDBVOVPAXFWLWOUMT
      UAKWJWOEWKWHKUMWIWNWGWHKVQVRXCWGWNCHUEVSKVTWBWCVGWD $.
  $}

  ${
    $d B g x $.  $d I g x $.  $d R g x $.  $d S g x $.  $d W g x $.
    $d X g x $.
    evlsvar.q $e |- Q = ( ( I evalSub S ) ` R ) $.
    evlsvar.v $e |- V = ( I mVar U ) $.
    evlsvar.u $e |- U = ( S |`s R ) $.
    evlsvar.b $e |- B = ( Base ` S ) $.
    evlsvar.i $e |- ( ph -> I e. W ) $.
    evlsvar.s $e |- ( ph -> S e. CRing ) $.
    evlsvar.r $e |- ( ph -> R e. ( SubRing ` S ) ) $.
    evlsvar.x $e |- ( ph -> X e. I ) $.
    $( Polynomial evaluation maps variables to projections.  (Contributed by
       Stefan O'Rear, 12-Mar-2015.)  (Proof shortened by AV, 18-Sep-2021.) $)
    evlsvar $p |- ( ph -> ( Q ` ( V ` X ) ) =
          ( g e. ( B ^m I ) |-> ( g ` X ) ) ) $=
      ( cfv vx ccom cmap co cv cmpt cmpl cpws crh wcel csn cxp wceq ccrg csubrg
      cascl wa eqid evlsval2 syl3anc simprrd fveq1d wfn cbs crg subrgring mvrf2
      syl ffnd fvco2 syl2anc fveq2 mpteq2dv ovex mptex fvmpt 3eqtr3d ) AKCIUBZT
      ZKUAHGBHUCUDZUAUEZGUEZTZUFZUFZTZKITCTZGVTKWBTZUFZAKVRWEACHFUGUDZEVTUHUDZU
      IUDUJZCWJUPTZUBUADVTWAUKULUFZUMZVRWEUMZAHJUJEUNUJDEUOTUJZWLWOWPUQUQPQRUAW
      MBCDEWKFGHIWJWNWEJLWJURZMNWKUROWMURWNURWEURZUSUTVAVBAIHVCKHUJZVSWGUMAHWJV
      DTZIAXAWJFHIJWRMXAURPAWQFVEUJRDEFNVFVHVGVISHCIKVJVKAWTWFWIUMSUAKWDWIHWEWA
      KUMGVTWCWHWAKWBVLVMWSGVTWHBHUCVNVOVPVHVQ $.
  $}

  ${
    $d B i r $.  $d I i r $.  $d R i r $.
    evlval.q $e |- Q = ( I eval R ) $.
    evlval.b $e |- B = ( Base ` R ) $.
    $( Value of the simple/same ring evaluation map.  (Contributed by Stefan
       O'Rear, 19-Mar-2015.)  (Revised by Mario Carneiro, 12-Jun-2015.) $)
    evlval $p |- Q = ( ( I evalSub R ) ` B ) $=
      ( vi vr cevl co ces cfv cvv wcel wa wceq cv cbs syl6eqr c0 oveq12 fveq12d
      fveq2 adantl df-evl ovmpt2a wn mpt2ndm0 0fv reldmevls ovprc fveq1d eqtr4d
      fvex pm2.61i eqtri ) BDCIJZADCKJZLZEDMNCMNOZUQUSPGHDCMMHQZRLZGQZVAKJZLZUS
      IVCDPZVACPZOVBAVDURVCDVACKUAVGVBAPVFVGVBCRLAVACRUCFSUDUBGHUEZAURUNUFUTUGZ
      UQATLZUSVIUQTVJGHVEIDCMMVHUHAUISVIAURTDCKUJUKULUMUOUP $.

    evlrhm.w $e |- W = ( I mPoly R ) $.
    evlrhm.t $e |- T = ( R ^s ( B ^m I ) ) $.
    $( The simple evaluation map is a ring homomorphism.  (Contributed by Mario
       Carneiro, 12-Jun-2015.) $)
    evlrhm $p |- ( ( I e. V /\ R e. CRing ) -> Q e. ( W RingHom T ) ) $=
      ( wcel ccrg wa cress co cmpl crh adantl eqid cfv crg crngring subrgid syl
      csubrg evlval evlsrhm mpd3an3 wceq ressid oveq2d syl6eqr oveq1d eleqtrd )
      EFLZCMLZNZBECAOPZQPZDRPZGDRPUPUQACUFUALZBVALURCUBLZVBUQVCUPCUCSACIUDUEABA
      CDUSEFUTABCEHIUGUTTUSTKIUHUIURUTGDRURUTECQPGURUSCEQUQUSCUJUPACMIUKSULJUMU
      NUO $.
  $}

  ${
    evlsscasrng.q $e |- Q = ( ( I evalSub S ) ` R ) $.
    evlsscasrng.o $e |- O = ( I eval S ) $.
    evlsscasrng.w $e |- W = ( I mPoly U ) $.
    evlsscasrng.u $e |- U = ( S |`s R ) $.
    evlsscasrng.p $e |- P = ( I mPoly S ) $.
    evlsscasrng.b $e |- B = ( Base ` S ) $.
    evlsscasrng.a $e |- A = ( algSc ` W ) $.
    evlsscasrng.c $e |- C = ( algSc ` P ) $.
    evlsscasrng.i $e |- ( ph -> I e. V ) $.
    evlsscasrng.s $e |- ( ph -> S e. CRing ) $.
    evlsscasrng.r $e |- ( ph -> R e. ( SubRing ` S ) ) $.
    evlsscasrng.x $e |- ( ph -> X e. R ) $.
    $( The evaluation of a scalar of a subring yields the same result as
       evaluated as a scalar over the ring itself.  (Contributed by AV,
       12-Sep-2019.) $)
    evlsscasrng $p |- ( ph -> ( Q ` ( A ` X ) ) = ( O ` ( C ` X ) ) ) $=
      ( cfv ces co cmap csn cxp cress cmpl cascl ccrg wcel ressid eqcomd oveq2d
      wceq syl syl5eq fveq2d fveq1d eqid crg csubrg crngring subrgid wss sseldd
      3syl subrgss evlssca eqtrd evlval a1i 3eqtr4rd ) ANDUGZCJHUHUIUGZUGZCJUJU
      INUKULZVTKUGNBUGFUGAWBNJHCUMUIZUNUIZUOUGZUGZWAUGWCAVTWGWAANDWFADEUOUGWFUB
      AEWEUOAEJHUNUIWESAHWDJUNAHUPUQZHWDVAUDWHWDHCHUPTURUSVBUTVCVDVCVEVDAWFCWAC
      HWDJLWENWAVFWEVFWDVFTWFVFUCUDAWHHVGUQCHVHUGZUQUDHVICHTVJVMAGCNAGWIUQGCVKU
      EGCHTVNVBUFVLVOVPAVTKWAKWAVAACKHJPTVQVRVEABCFGHIJLMNOQRTUAUCUDUEUFVOVS $.
  $}

  ${
    evlsca.q $e |- Q = ( I eval S ) $.
    evlsca.w $e |- W = ( I mPoly S ) $.
    evlsca.b $e |- B = ( Base ` S ) $.
    evlsca.a $e |- A = ( algSc ` W ) $.
    evlsca.i $e |- ( ph -> I e. V ) $.
    evlsca.s $e |- ( ph -> S e. CRing ) $.
    evlsca.x $e |- ( ph -> X e. B ) $.
    $( Simple polynomial evaluation maps scalars to constant functions.
       (Contributed by AV, 12-Sep-2019.) $)
    evlsca $p |- ( ph -> ( Q ` ( A ` X ) ) = ( ( B ^m I ) X. { X } ) ) $=
      ( co cfv eqid wcel cress cmpl cascl ces cmap csn cxp ccrg csubrg crngring
      crg subrgid 3syl evlsscasrng evlssca eqtr3d ) AIFECUAQZUBQZUCRZRCFEUDQRZR
      IBRDRCFUEQIUFUGAUSCBHUTCEUQFDGURIUTSZJURSZUQSZKLUSSZMNOAEUHTEUKTCEUIRTOEU
      JCELULUMZPUNAUSCUTCEUQFGURIVAVBVCLVDNOVEPUOUP $.
  $}

  ${
    $d A g $.  $d B g $.  $d I g $.  $d R g $.  $d S g $.  $d X g $.
    evlsvarsrng.q $e |- Q = ( ( I evalSub S ) ` R ) $.
    evlsvarsrng.o $e |- O = ( I eval S ) $.
    evlsvarsrng.v $e |- V = ( I mVar U ) $.
    evlsvarsrng.u $e |- U = ( S |`s R ) $.
    evlsvarsrng.b $e |- B = ( Base ` S ) $.
    evlsvarsrng.i $e |- ( ph -> I e. A ) $.
    evlsvarsrng.s $e |- ( ph -> S e. CRing ) $.
    evlsvarsrng.r $e |- ( ph -> R e. ( SubRing ` S ) ) $.
    evlsvarsrng.x $e |- ( ph -> X e. I ) $.
    $( The evaluation of the variable of polynomials over subring yields the
       same result as evaluated as variable of the polynomials over the ring
       itself.  (Contributed by AV, 12-Sep-2019.) $)
    evlsvarsrng $p |- ( ph -> ( Q ` ( V ` X ) ) = ( O ` ( V ` X ) ) ) $=
      ( vg cfv cmap co cv cmpt evlsvar ces cmvr wceq evlval a1i fveq1d subrgmvr
      cress eqid ccrg wcel ressid syl eqcomd oveq2d 3eqtr2d fveq2d crg crngring
      csubrg subrgid 3syl 3eqtrrd eqtrd ) AKJUBZDUBUACHUCUDKUAUEUBUFZVLIUBZACDE
      FGUAHJBKLNOPQRSTUGAVNVLCHFUHUDUBZUBKHFCUOUDZUIUDZUBZVOUBVMAVLIVOIVOUJACIF
      HMPUKULUMAVLVRVOAKJVQAJHGUIUDZHFUIUDZVQJVSUJANULAFEGHVTBVTUPQSOUNAFVPHUIA
      VPFAFUQURZVPFUJRCFUQPUSUTVAVBVCUMVDACVOCFVPUAHVQBKVOUPVQUPVPUPPQRAWAFVEUR
      CFVGUBURRFVFCFPVHVITUGVJVK $.
  $}

  ${
    $d B g $.  $d I g $.  $d S g $.  $d W g $.  $d X g $.
    evlvar.q $e |- Q = ( I eval S ) $.
    evlvar.v $e |- V = ( I mVar S ) $.
    evlvar.b $e |- B = ( Base ` S ) $.
    evlvar.i $e |- ( ph -> I e. W ) $.
    evlvar.s $e |- ( ph -> S e. CRing ) $.
    evlvar.x $e |- ( ph -> X e. I ) $.
    $( Simple polynomial evaluation maps variables to projections.
       (Contributed by AV, 12-Sep-2019.) $)
    evlvar $p |- ( ph -> ( Q ` ( V ` X ) ) =
          ( g e. ( B ^m I ) |-> ( g ` X ) ) ) $=
      ( cress co cfv eqid wcel cmvr ces cmap cmpt ccrg crg csubrg crngring 3syl
      cv subrgid evlsvarsrng evlsvar subrgmvr fveq1d eqcomd fveq2d 3eqtr3rd ) A
      IFDBPQZUAQZRZBFDUBQRZRVACREBFUCQIEUJRUDIGRZCRAHBVBBDUSFCUTIVBSZJUTSZUSSZL
      MNADUETDUFTBDUGRTNDUHBDLUKUIZOULABVBBDUSEFUTHIVDVEVFLMNVGOUMAVAVCCAVCVAAI
      GUTADBUSFGHKMVGVFUNUOUPUQUR $.
  $}

  ${
    mpfconst.b $e |- B = ( Base ` S ) $.
    mpfconst.q $e |- Q = ran ( ( I evalSub S ) ` R ) $.
    mpfconst.i $e |- ( ph -> I e. V ) $.
    mpfconst.s $e |- ( ph -> S e. CRing ) $.
    mpfconst.r $e |- ( ph -> R e. ( SubRing ` S ) ) $.
    ${
      mpfconst.x $e |- ( ph -> X e. R ) $.
      $( Constants are multivariate polynomial functions.  (Contributed by
         Mario Carneiro, 19-Mar-2015.) $)
      mpfconst $p |- ( ph -> ( ( B ^m I ) X. { X } ) e. Q ) $=
        ( co cfv cress eqid cbs wcel cmap csn cxp ces crn cmpl evlssca wfn cpws
        crh wf ccrg csubrg evlsrhm syl3anc rhmf ffn 3syl csca crg subrgring syl
        cascl mplring mpllmod asclf syl2anc wss wceq subrgss ressbas2 cvv ovexd
        wa mplsca fveq2d eqtrd eleqtrd ffvelrnd fnfvelrn eqeltrrd syl6eleqr ) A
        BFUAOZHUBUCZDFEUDOPZUEZCAHFEDQOZUFOZVCPZPZWEPZWDWFAWIBWEDEWGFGWHHWERZWH
        RZWGRZIWIRZKLMNUGAWEWHSPZUHZWJWPTWKWFTAWEWHEWCUIOZUJOTZWPWRSPZWEUKWQAFG
        TZEULTDEUMPTZWSKLMBWEDEWRWGFGWHWLWMWNWRRIUNUOWPWTWHWRWEWPRZWTRUPWPWTWEU
        QURAWHUSPZSPZWPHWIAXAWGUTTZXEWPWIUKKAXBXFMDEWGWNVAVBXAXFVNWIWPXDXEWHWOX
        DRWHWGFGWMVDWHWGFGWMVEXERXCVFVGAHDXENADWGSPZXEAXBDBVHDXGVIMDBEIVJDBWGEW
        NIVKURAWGXDSAWHWGFGVLWMKAEDQVMVOVPVQVRVSWPWJWEVTVGWAJWB $.
    $}

    $d B f $.  $d I f $.  $d J f $.  $d R f $.  $d S f $.  $d V f $.
    mpfproj.j $e |- ( ph -> J e. I ) $.
    $( Projections are multivariate polynomial functions.  (Contributed by
       Mario Carneiro, 20-Mar-2015.) $)
    mpfproj $p |- ( ph -> ( f e. ( B ^m I ) |-> ( f ` J ) ) e. Q ) $=
      ( co cfv eqid cbs wcel cress cmvr ces cmap cmpt evlsvar crn cmpl wfn cpws
      cv crh wf ccrg csubrg evlsrhm syl3anc rhmf ffn crg subrgring syl fnfvelrn
      3syl mvrcl syl2anc syl6eleqr eqeltrrd ) AHGEDUAPZUBPZQZDGEUCPQZQZFBGUDPZH
      FUKQUECABVLDEVIFGVJIHVLRZVJRZVIRZJLMNOUFAVMVLUGZCAVLGVIUHPZSQZUIZVKVTTVMV
      RTAVLVSEVNUJPZULPTZVTWBSQZVLUMWAAGITEUNTDEUOQTZWCLMNBVLDEWBVIGIVSVOVSRZVQ
      WBRJUPUQVTWDVSWBVLVTRZWDRURVTWDVLUSVDAVTVSVIGVJIHWFVPWGLAWEVIUTTNDEVIVQVA
      VBOVEVTVKVLVCVFKVGVH $.
  $}

  ${
    mpfsubrg.q $e |- Q = ran ( ( I evalSub S ) ` R ) $.
    $( Polynomial functions are a subring.  (Contributed by Mario Carneiro,
       19-Mar-2015.)  (Revised by Mario Carneiro, 6-May-2015.)  (Revised by AV,
       19-Sep-2021.) $)
    mpfsubrg $p |- ( ( I e. V /\ S e. CRing /\ R e. ( SubRing ` S ) ) ->
        Q e. ( SubRing ` ( S ^s ( ( Base ` S ) ^m I ) ) ) ) $=
      ( wcel ccrg csubrg cfv w3a ces co cress cmpl cbs cima eqid syl crg crn wf
      cmap cpws crh wceq evlsrhm rhmf wfn fnima 3syl syl6reqr subrgring mplring
      ffn sylan2 3adant2 subrgid rhmima syl2anc eqeltrd ) DEGZCHGZBCIJGZKZABDCL
      MJZDCBNMZOMZPJZQZCCPJZDUCMUDMZIJZVEVJVFUAZAVEVFVHVLUEMGZVIVLPJZVFUBZVJVNU
      FZVKVFBCVLVGDEVHVFRVHRZVGRZVLRVKRUGZVIVPVHVLVFVIRZVPRUHVQVFVIUIVRVIVPVFUO
      VIVFUJSUKFULVEVOVIVHIJGZVJVMGWAVEVHTGZWCVBVDWDVCVDVBVGTGWDBCVGVTUMVHVGDEV
      SUNUPUQVIVHWBURSVFVHVLVIUSUTVA $.

    ${
      mpff.b $e |- B = ( Base ` S ) $.
      $( Polynomial functions are functions.  (Contributed by Mario Carneiro,
         19-Mar-2015.) $)
      mpff $p |- ( F e. Q -> F : ( B ^m I ) --> B ) $=
        ( wcel cmap co cbs cfv cpws ccrg cvv eqcomi oveq1i oveq2i csubrg mpfrcl
        eqid simp2d ovexd w3a wss mpfsubrg subrgss 3syl id sseldd pwselbas ) EB
        IZADAFJKZDDLMZFJKZNKZLMZOEUQPUPUNDNUOAFJAUOHQRSHURUBZUMFPIZDOIZCDTMIZBC
        DFEGUAZUCUMAFJUDUMBUREUMUTVAVBUEBUQTMIBURUFVCBCDFPGUGBURUQUSUHUIUMUJUKU
        L $.
    $}

    ${
      mpfaddcl.p $e |- .+ = ( +g ` S ) $.
      $( The sum of multivariate polynomial functions.  (Contributed by Mario
         Carneiro, 19-Mar-2015.) $)
      mpfaddcl $p |- ( ( F e. Q /\ G e. Q ) -> ( F oF .+ G ) e. Q ) $=
        ( wcel cbs cfv cmap co ccrg cvv eqid csubrg syl sseldd wa cplusg mpfrcl
        cpws cof w3a adantr simp2d ovexd wss mpfsubrg subrgss simpl pwsplusgval
        simpr subrgacl 3expib mpcom eqeltrrd ) EBJZFBJZUAZEFDDKLZGMNZUDNZUBLZNZ
        EFAUENBVBVEKLZAVFDEFVDOPVEVEQVHQZVBGPJZDOJZCDRLJZUTVJVKVLUFZVABCDGEHUCU
        GZUHVBVCGMUIVBBVHEVBBVERLJZBVHUJVBVMVOVNBCDGPHUKSZBVHVEVIULSZUTVAUMTVBB
        VHFVQUTVAUOTIVFQZUNVOVBVGBJZVPVOUTVAVSBVFVEEFVRUPUQURUS $.
    $}

    ${
      mpfmulcl.t $e |- .x. = ( .r ` S ) $.
      $( The product of multivariate polynomial functions.  (Contributed by
         Mario Carneiro, 19-Mar-2015.) $)
      mpfmulcl $p |- ( ( F e. Q /\ G e. Q ) -> ( F oF .x. G ) e. Q ) $=
        ( wcel cbs cfv cmap co ccrg cvv eqid csubrg syl sseldd wa cmulr cof w3a
        cpws mpfrcl adantr simp2d ovexd mpfsubrg subrgss simpl simpr pwsmulrval
        wss subrgmcl 3expib mpcom eqeltrrd ) EAJZFAJZUAZEFCCKLZGMNZUENZUBLZNZEF
        DUCNAVBVEKLZCVFDEFVDOPVEVEQVHQZVBGPJZCOJZBCRLJZUTVJVKVLUDZVAABCGEHUFUGZ
        UHVBVCGMUIVBAVHEVBAVERLJZAVHUOVBVMVOVNABCGPHUJSZAVHVEVIUKSZUTVAULTVBAVH
        FVQUTVAUMTIVFQZUNVOVBVGAJZVPVOUTVAVSAVEVFEFVRUPUQURUS $.
    $}
  $}

  ${
    $d ch i x $.  $d et x $.  $d ph f g i j $.  $d ph y $.  $d ps f g i j $.
    $d ps y $.  $d rh x $.  $d si x $.  $d ta x $.  $d th x $.  $d ze x $.
    $d A x y $.  $d B f g i x $.  $d I f g i j x $.  $d I y $.  $d .+ f g x $.
    $d Q f g $.  $d R f g i j $.  $d R y $.  $d S f g i j $.  $d S y $.
    $d .x. f g x $.  $d i y $.  $d j y $.
    mpfind.cb $e |- B = ( Base ` S ) $.
    mpfind.cp $e |- .+ = ( +g ` S ) $.
    mpfind.ct $e |- .x. = ( .r ` S ) $.
    mpfind.cq $e |- Q = ran ( ( I evalSub S ) ` R ) $.
    mpfind.ad $e |- ( ( ph /\ ( ( f e. Q /\ ta ) /\ ( g e. Q /\ et ) ) ) ->
        ze ) $.
    mpfind.mu $e |- ( ( ph /\ ( ( f e. Q /\ ta ) /\ ( g e. Q /\ et ) ) ) ->
        si ) $.
    mpfind.wa $e |- ( x = ( ( B ^m I ) X. { f } ) -> ( ps <-> ch ) ) $.
    mpfind.wb $e |- ( x = ( g e. ( B ^m I ) |-> ( g ` f ) ) ->
        ( ps <-> th ) ) $.
    mpfind.wc $e |- ( x = f -> ( ps <-> ta ) ) $.
    mpfind.wd $e |- ( x = g -> ( ps <-> et ) ) $.
    mpfind.we $e |- ( x = ( f oF .+ g ) -> ( ps <-> ze ) ) $.
    mpfind.wf $e |- ( x = ( f oF .x. g ) -> ( ps <-> si ) ) $.
    mpfind.wg $e |- ( x = A -> ( ps <-> rh ) ) $.
    mpfind.co $e |- ( ( ph /\ f e. R ) -> ch ) $.
    mpfind.pr $e |- ( ( ph /\ f e. I ) -> th ) $.
    mpfind.a $e |- ( ph -> A e. Q ) $.
    $( Prove a property of polynomials by "structural" induction, under a
       simplified model of structure which loses the sum of products structure.
       (Contributed by Mario Carneiro, 19-Mar-2015.) $)
    mpfind $p |- ( ph -> rh ) $=
      ( vy vi vj cab wcel cv ces co cfv wceq cress cmpl cbs crn syl6eleq wfn wb
      wrex cmap cpws wf crh cvv ccrg csubrg w3a mpfrcl syl eqid evlsrhm fvelrnb
      rhmf ffn mpbid wfun ccnv cima ffun adantr cascl cplusg cmulr cmvr syl2anc
      wa crg elpreima simpld syl3anc cof ffvelrnd eqtrd syl6eleqr fvimacnvi jca
      fnfvelrn wi fvex eleq1 vex elab syl5bbr anbi12d ovex oveq12 eleq1d vtocl2
      imbi12d syl12anc eqeltrd mpbir2and adantlr cmgp mgpplusg eleq2d ralrimiva
      csn cxp wral cbvralv sylib r19.21bi simpr cmpt subrgcrng crngring mplring
      simp1d simp2d simp3d simprl simprr ringacl cghm rhmghm ghmlin pwsplusgval
      ovexd bi2anan9 anbi2d ringcl cmhm rhmmhm mgpbas mhmlin pwsmulrval mplassa
      simpl csca casa asclrhm mplsca fveq2d biimpa wss subrgss ressbas2 biimpar
      evlssca snex xpex xpeq2d syldan mvrcl evlsvar mptex sylibr fveq2 mpteq2dv
      sneq mplind syl5ibcom rexlimdva mpd elabg ) AKBJUTZVAZIAUQVBZOTPVCVDVEZVE
      ZKVFZUQTPOVGVDZVHVDZVIVEZVNZUWMAKUWOVJZVAZUXAAKNUXBUPUDVKAUWOUWTVLZUXCUXA
      VMAUWTPLTVOVDZVPVDZVIVEZUWOVQZUXDAUWOUWSUXFVRVDVAZUXHATVSVAZPVTVAZOPWAVEV
      AZWBZUXIAKNVAZUXMUPNOPTKUDWCWDZLUWOOPUXFUWRTVSUWSUWOWEZUWSWEZUWRWEZUXFWEZ
      UAWFWDZUWTUXGUWSUXFUWOUWTWEZUXGWEZWHWDZUWTUXGUWOWIWDZUQUWTKUWOWGWDWJAUWQU
      WMUQUWTAUWNUWTVAZXAZUWPUWLVAZUWQUWMUYFUWOWKZUWNUWOWLUWLWMZVAUYGAUYHUYEAUX
      HUYHUYCUWTUXGUWOWNWDZWOUYFURUSUWTUWSWPVEZUWSWQVEZUWRUWSWRVEZUYITUWRVIVEZT
      UWRWSVDZUWNUWSUYNWEUYOWEZUXQUYLWEZUYMWEZUYKWEZUYAAURVBZUYIVAZUSVBZUYIVAZX
      AZUYTVUBUYLVDZUYIVAZUYEAVUDXAZVUFVUEUWTVAZVUEUWOVEZUWLVAZVUGUWSXBVAZUYTUW
      TVAZVUBUWTVAZVUHAVUKVUDAUXJUWRXBVAZVUKAUXJUXKUXLUXOUUDZAUWRVTVAZVUNAUXKUX
      LVUPAUXJUXKUXLUXOUUEZAUXJUXKUXLUXOUUFZOPUWRUXRUUAWTZUWRUUBWDZUWSUWRTVSUXQ
      UUCWTWOZVUGVULUYTUWOVEZUWLVAZVUGVUAVULVVCXAZAVUAVUCUUGZAVUAVVDVMZVUDAUXDV
      VFUYDUWTUYTUWLUWOXCWDWOWJXDZVUGVUMVUBUWOVEZUWLVAZVUGVUCVUMVVIXAZAVUAVUCUU
      HZAVUCVVJVMZVUDAUXDVVLUYDUWTVUBUWLUWOXCWDWOWJXDZUWTUYLUWSUYTVUBUYAUYQUUIX
      EVUGVUIVVBVVHMXFZVDZUWLVUGVUIVVBVVHUXFWQVEZVDZVVOVUGUWOUWSUXFUUJVDVAZVULV
      UMVUIVVQVFAVVRVUDAUXIVVRUXTUWSUXFUWOUUKWDWOVVGVVMUYLVVPUWSUXFUYTUWOVUBUWT
      UYAUYQVVPWEZUULXEVUGUXGMVVPPVVBVVHUXEVTVSUXFUXSUYBAUXKVUDVUQWOZVUGLTVOUUN
      ZVUGUWTUXGUYTUWOAUXHVUDUYCWOZVVGXGZVUGUWTUXGVUBUWOVWBVVMXGZUBVVSUUMXHVUGA
      VVBNVAZVVCXAZVVHNVAZVVIXAZVVOUWLVAZAVUDUVDZVUGVWEVVCVUGVVBUXBNVUGUXDVULVV
      BUXBVAAUXDVUDUYDWOZVVGUWTUYTUWOXLWTUDXIVUGUYHVUAVVCAUYHVUDUYJWOZVVEUYTUWL
      UWOXJWTXKZVUGVWGVVIVUGVVHUXBNVUGUXDVUMVVHUXBVAVWKVVMUWTVUBUWOXLWTUDXIVUGU
      YHVUCVVIVWLVVKVUBUWLUWOXJWTXKZARVBZNVAZEXAZSVBZNVAZFXAZXAZXAZGXMAVWFVWHXA
      ZXAZVWIXMRSVVBVVHUYTUWOXNZVUBUWOXNZVWOVVBVFZVWRVVHVFZXAZVXBVXDGVWIVXIVXAV
      XCAVXGVWQVWFVXHVWTVWHVXGVWPVWEEVVCVWOVVBNXOEVWOUWLVAVXGVVCBEJVWORXPUIXQVW
      OVVBUWLXOXRXSVXHVWSVWGFVVIVWRVVHNXOFVWRUWLVAVXHVVIBFJVWRSXPUJXQVWRVVHUWLX
      OXRXSUUOUUPZGVWOVWRVVNVDZUWLVAVXIVWIBGJVXKVWOVWRVVNXTUKXQVXIVXKVVOUWLVWOV
      VBVWRVVHVVNYAYBXRYDUEYCYEYFAVUFVUHVUJXAVMZVUDAUXDVXLUYDUWTVUEUWLUWOXCWDWO
      YGYHAVUDUYTVUBUYMVDZUYIVAZUYEVUGVXNVXMUWTVAZVXMUWOVEZUWLVAZVUGVUKVULVUMVX
      OVVAVVGVVMUWTUWSUYMUYTVUBUYAUYRUUQXEVUGVXPVVBVVHQXFZVDZUWLVUGVXPVVBVVHUXF
      WRVEZVDZVXSVUGUWOUWSYIVEZUXFYIVEZUURVDVAZVULVUMVXPVYAVFAVYDVUDAUXIVYDUXTU
      WSUXFUWOVYBVYCVYBWEZVYCWEZUUSWDWOVVGVVMUWTUYMVXTVYBVYCUWOUYTVUBUWTUWSVYBV
      YEUYAUUTUWSUYMVYBVYEUYRYJUXFVXTVYCVYFVXTWEZYJUVAXEVUGUXGPVXTQVVBVVHUXEVTV
      SUXFUXSUYBVVTVWAVWCVWDUCVYGUVBXHVUGAVWFVWHVXSUWLVAZVWJVWMVWNVXBHXMVXDVYHX
      MRSVVBVVHVXEVXFVXIVXBVXDHVYHVXJHVWOVWRVXRVDZUWLVAVXIVYHBHJVYIVWOVWRVXRXTU
      LXQVXIVYIVXSUWLVWOVVBVWRVVHVXRYAYBXRYDUFYCYEYFAVXNVXOVXQXAVMZVUDAUXDVYJUY
      DUWTVXMUWLUWOXCWDWOYGYHAUYTUYNVAZUYTUYKVEZUYIVAZUYEAVYKXAZVYMVYLUWTVAZVYL
      UWOVEZUWLVAZVYNUWSUVEVEZVIVEZUWTUYTUYKAVYSUWTUYKVQZVYKAUYKVYRUWSVRVDVAZVY
      TAUWSUVFVAZWUAAUXJVUPWUBVUOVUSUWSUWRTVSUXQUVCWTUYKVYRUWSUYSVYRWEUVGWDVYSU
      WTVYRUWSUYKVYSWEUYAWHWDWOAVYKUYTVYSVAAUYNVYSUYTAUWRVYRVIAUWSUWRTVSVTUXQVU
      OVUSUVHUVIYKUVJXGVYNVYPUXEUYTYMZYNZUWLVYNUYKLUWOOPUWRTVSUWSUYTUXPUXQUXRUA
      UYSAUXJVYKVUOWOAUXKVYKVUQWOAUXLVYKVURWOAUYTOVAZVYKAOUYNUYTAOLUVKZOUYNVFAU
      XLWUFVUROLPUAUVLWDOLUWRPUXRUAUVMWDYKUVNZUVOAVYKWUEWUDUWLVAZWUGAWUHUROACRO
      YOWUHUROYOACROUNYLCWUHRUROCUXEVWOYMZYNZUWLVAVWOUYTVFZWUHBCJWUJUXEWUILTVOX
      TZVWOUVPUVQUGXQWUKWUJWUDUWLWUKWUIWUCUXEVWOUYTUWFUVRYBXRYPYQYRUVSYFAVYMVYO
      VYQXAVMZVYKAUXDWUMUYDUWTVYLUWLUWOXCWDWOYGYHAUYTTVAZUYTUYOVEZUYIVAZUYEAWUN
      XAZWUPWUOUWTVAZWUOUWOVEZUWLVAZWUQUWTUWSUWRTUYOVSUYTUXQUYPUYAAUXJWUNVUOWOZ
      AVUNWUNVUTWOAWUNYSZUVTWUQWUSSUXEUYTVWRVEZYTZUWLWUQLUWOOPUWRSTUYOVSUYTUXPU
      YPUXRUAWVAAUXKWUNVUQWOAUXLWUNVURWOWVBUWAAWVDUWLVAZURTASUXEVWOVWRVEZYTZUWL
      VAZRTYOWVEURTYOAWVHRTAVWOTVAXADWVHUOBDJWVGSUXEWVFWULUWBUHXQUWCYLWVHWVERUR
      TWUKWVGWVDUWLWUKSUXEWVFWVCVWOUYTVWRUWDUWEYBYPYQYRYFAWUPWURWUTXAVMZWUNAUXD
      WVIUYDUWTWUOUWLUWOXCWDWOYGYHAUYEYSAUXJUYEVUOWOAVUPUYEVUSWOUWGUWNUWLUWOXJW
      TUWPKUWLXOUWHUWIUWJAUXNUWMIVMUPBIJKNUMUWKWDWJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Additional definitions for (multivariate) polynomials
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Remark: There are no theorems using these definitions yet!
$)

  $( Introduce new constant symbols. $)
  $c mHomP $. $( Homogeneous polynomials $)
  $c mPSDer $. $( Polynomial or power series derivative $)
  $c selectVars $. $( Treat polynomial as a polynomial of polynomials $)
  $c AlgInd $. $( Algebraically independent $)

  $( Multivariate polynomials. $)
  cmhp $a class mHomP $.

  $( Power series partial derivative function. $)
  cpsd $a class mPSDer $.

  $( Select a subset of variables in a multivariate polynomial. $)
  cslv $a class selectVars $.

  $( Algebraically independent. $)
  cai $a class AlgInd $.

  ${
    $d c f g h i j k n r s v w x y $.

    $( Define the subspaces of order- ` n ` homogeneous polynomials.
       (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    df-mhp $a |- mHomP = ( i e. _V , r e. _V |-> ( n e. NN0 |->
      { f e. ( Base ` ( i mPoly r ) ) | ( f supp ( 0g ` r ) ) C_
        { g e. { h e. ( NN0 ^m i ) | ( `' h " NN ) e. Fin } |
          sum_ j e. NN0 ( g ` j ) = n } } ) ) $.

    $( Define the differentiation operation on multivariate polynomials.
       (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    df-psd $a |- mPSDer = ( i e. _V , r e. _V |-> ( x e. i |->
      ( f e. ( Base ` ( i mPwSer r ) ) |->
        ( k e. { h e. ( NN0 ^m i ) | ( `' h " NN ) e. Fin } |->
          ( ( ( k ` x ) + 1 ) ( .g ` r ) ( f `
            ( k oF + ( y e. i |-> if ( y = x , 1 , 0 ) ) ) ) ) ) ) ) ) $.

    $( Define the "variable selection" function.  The function
       ` ( ( I selectVars R ) `` J ) ` maps elements of ` ( I mPoly R ) `
       bijectively onto ` ( J mPoly ( ( I \ J ) mPoly R ) ) ` in the natural
       way, for example if ` I = { x , y } ` and ` J = { y } ` it would map
       ` 1 + x + y + x y e. ( { x , y } mPoly ZZ ) ` to
       ` ( 1 + x ) + ( 1 + x ) y e. ( { y } mPoly ( { x } mPoly ZZ ) ) ` .
       This, for example, allows one to treat a multivariate polynomial as a
       univariate polynomial with coefficients in a polynomial ring with one
       less variable.  (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    df-selv $a |- selectVars = ( i e. _V , r e. _V |->
      ( j e. ~P i |-> ( f e. ( i mPoly r ) |->
      [_ ( ( i \ j ) mPoly r ) / s ]_ [_ ( x e. ( Scalar ` s ) |->
      ( x ( .s ` s ) ( 1r ` s ) ) ) / c ]_
        ( ( ( ( i evalSub s ) ` ( c "s r ) ) ` ( c o. f ) ) `
          ( x e. i |-> if ( x e. j , ( ( j mVar ( ( i \ j ) mPoly r ) ) ` x ) ,
            ( c o. ( ( ( i \ j ) mVar r ) ` x ) ) ) ) ) ) ) ) $.

    $( Define the predicate "the set ` v ` is algebraically independent in the
       algebra ` w ` ".  A collection of vectors is algebraically independent
       if no nontrivial polynomial with elements from the subset evaluates to
       zero.  (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    df-algind $a |- AlgInd = ( w e. _V , k e. ~P ( Base ` w ) |->
      { v e. ~P ( Base ` w ) | Fun `' ( f e. ( Base ` ( v mPoly ( w |`s k ) ) )
        |-> ( ( ( ( v evalSub w ) ` k ) ` f ) ` ( _I |` v ) ) ) } ) $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Univariate polynomials
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
According to Wikipedia ("Polynomial", 23-Dec-2019,
~ https://en.wikipedia.org/wiki/Polynomial ) "A polynomial in one indeterminate
is called a _univariate polynomial_, a polynomial in more than one
indeterminate is called a multivariate polynomial."  In this sense univariate
polynomials are defined as multivariate polynomials restricted to one
indeterminate/polynomial variable in the following, see ~ ply1bascl2 .

According to the definition in Wikipedia "a polynomial can either be zero or
can be written as the sum of a finite number of nonzero terms. Each term
consists of the product of a number - called the coefficient of the term - and
a finite number of indeterminates, raised to nonnegative integer powers.".
By this, a _term_ of a univariate polynomial (often also called "polynomial
term") is the product of a coefficient (usually a member of the underlying
ring) and the variable, raised to a nonnegative integer power.

A (univariate) polynomial which has only one term is called (univariate)
_monomial_ - therefore, the notions "term" and "monomial" are often used
synonymously, see also the definition in [Lang] p. 102.  Sometimes, however, a
monomial is defined as _power product_, "a product of powers of variables with
nonnegative integer exponents", see Wikipedia ("Monomial", 23-Dec-2019,
~ https://en.wikipedia.org/wiki/Mononomial ).  In [Lang] p. 101, such terms are
called "primitive monomials".  To avoid any ambiguity, the notion "primitive
monomial" is used for such power products ("x^i") in the following, whereas the
synonym for "term" ("a_i x^i") will be "scaled monomial".
$)

  $( Introduce new constant symbols. $)
  $c PwSer1 $. $( Univariate power series $)
  $c var1 $. $( Univariate power series variable $)
  $c Poly1 $. $( Univariate polynomial $)
  $c coe1 $. $( Coefficient function for a univariate polynomial $)
  $c toPoly1 $. $( Univariate -> multivariate $)

  $( Univariate power series. $)
  cps1 $a class PwSer1 $.

  $( The base variable of a univariate power series. $)
  cv1 $a class var1 $.

  $( Univariate polynomials. $)
  cpl1 $a class Poly1 $.

  $( Coefficient function for a univariate polynomial. $)
  cco1 $a class coe1 $.

  $( Convert a univariate polynomial representation to multivariate. $)
  ctp1 $a class toPoly1 $.

  ${
    $d f n r $.
    $( Define the algebra of univariate power series.  (Contributed by Mario
       Carneiro, 29-Dec-2014.) $)
    df-psr1 $a |- PwSer1 = ( r e. _V |-> ( ( 1o ordPwSer r ) ` (/) ) ) $.

    $( Define the base element of a univariate power series (the ` X ` element
       of the set ` R [ X ] ` of polynomials and also the ` X ` in the set
       ` R [ [ X ] ] ` of power series).  (Contributed by Mario Carneiro,
       8-Feb-2015.) $)
    df-vr1 $a |- var1 = ( r e. _V |-> ( ( 1o mVar r ) ` (/) ) ) $.

    $( Define the algebra of univariate polynomials.  (Contributed by Mario
       Carneiro, 9-Feb-2015.) $)
    df-ply1 $a |- Poly1 = ( r e. _V |->
      ( ( PwSer1 ` r ) |`s ( Base ` ( 1o mPoly r ) ) ) ) $.

    $( Define the coefficient function for a univariate polynomial.
       (Contributed by Stefan O'Rear, 21-Mar-2015.) $)
    df-coe1 $a |- coe1 = ( f e. _V |-> ( n e. NN0 |->
      ( f ` ( 1o X. { n } ) ) ) ) $.

    $( Define a function which maps a coefficient function for a univariate
       polynomial to the corresponding polynomial object.  (Contributed by
       Mario Carneiro, 12-Jun-2015.) $)
    df-toply1 $a |- toPoly1 = ( f e. _V |-> ( n e. ( NN0 ^m 1o ) |->
      ( f ` ( n ` (/) ) ) ) ) $.
  $}

  $( The set of finite bags on ` 1o ` is just the set of all functions from
     ` 1o ` to ` NN0 ` .  (Contributed by Mario Carneiro, 9-Feb-2015.) $)
  psr1baslem $p |- ( NN0 ^m 1o ) =
    { f e. ( NN0 ^m 1o ) | ( `' f " NN ) e. Fin } $=
    ( cn0 c1o cmap co cv ccnv cn cima cfn wcel crab wceq rabid2 wss c0 csn snfi
    df1o2 eqeltri cdm cnvimass wf elmapi fdm syl syl5sseq ssfi sylancr mprgbir
    ) BCDEZAFZGHIZJKZAUKLMUNAUKUNAUKNULUKKZCJKUMCOUNCPQJSPRTUOULUAZUMCULHUBUOCB
    ULUCUPCMULBCUDCBULUEUFUGCUMUHUIUJ $.

  ${
    $d r R $.
    psr1val.1 $e |- S = ( PwSer1 ` R ) $.
    $( Value of the ring of univariate power series.  (Contributed by Mario
       Carneiro, 8-Feb-2015.) $)
    psr1val $p |- S = ( ( 1o ordPwSer R ) ` (/) ) $=
      ( vr cps1 cfv c0 c1o copws co cvv wcel wceq cv oveq2 fveq1d df-psr1 fvmpt
      fvex wn 0fv eqcomi fvprc reldmopsr ovprc2 3eqtr4a pm2.61i eqtri ) BAEFZGH
      AIJZFZCAKLZUIUKMDAGHDNZIJZFUKKEUMAMGUNUJUMAHIOPDQGUJSRULTZGGGFZUIUKUPGGUA
      UBAEUCUOGUJGHAIUDUEPUFUGUH $.

    $( The ring of univariate power series is a commutative ring.  (Contributed
       by Mario Carneiro, 8-Feb-2015.) $)
    psr1crng $p |- ( R e. CRing -> S e. CRing ) $=
      ( ccrg wcel c0 c1o con0 psr1val 1on a1i id cxp wss 0ss opsrcrng ) ADEZAFG
      BHABCIGHEQJKQLFGGMZNQROKP $.

    $( The ring of univariate power series is an associative algebra.
       (Contributed by Mario Carneiro, 8-Feb-2015.) $)
    psr1assa $p |- ( R e. CRing -> S e. AssAlg ) $=
      ( ccrg wcel c0 c1o con0 psr1val 1on a1i id cxp wss 0ss opsrassa ) ADEZAFG
      BHABCIGHEQJKQLFGGMZNQROKP $.

    $( The ordered power series structure is a totally ordered set.
       (Contributed by Mario Carneiro, 2-Jun-2015.) $)
    psr1tos $p |- ( R e. Toset -> S e. Toset ) $=
      ( ctos wcel c0 c1o con0 psr1val 1on a1i id cxp wss 0ss wwe 0we1 opsrtos )
      ADEZAFGBHABCIGHESJKSLFGGMZNSTOKGFPSQKR $.

    psr1bas2.b $e |- B = ( Base ` S ) $.
    ${
      psr1bas2.o $e |- O = ( 1o mPwSer R ) $.
      $( The base set of the ring of univariate power series.  (Contributed by
         Mario Carneiro, 3-Jul-2015.) $)
      psr1bas2 $p |- B = ( Base ` O ) $=
        ( cbs cfv wceq wtru c0 c1o psr1val cxp wss 0ss a1i opsrbas trud eqtr4i
        ) ACHIZDHIZFUCUBJKBDLMCGBCENLMMOZPKUDQRSTUA $.
    $}

    psr1bas.k $e |- K = ( Base ` R ) $.
    $( The base set of the ring of univariate power series.  (Contributed by
       Mario Carneiro, 8-Feb-2015.) $)
    psr1bas $p |- B = ( K ^m ( NN0 ^m 1o ) ) $=
      ( vf cn0 c1o cmap co wceq wtru cmps con0 eqid psr1baslem psr1bas2 wcel
      1on a1i psrbas trud ) ADIJKLZKLMNAUEBJBOLZHJDPUFQZGHRABCUFEFUGSJPTNUAUBUC
      UD $.
  $}

  ${
    $d f h i r x y R $.
    vr1val.1 $e |- X = ( var1 ` R ) $.
    $( The value of the generator of the power series algebra (the ` X ` in
       ` R [ [ X ] ] ` ).  Since all univariate polynomial rings over a fixed
       base ring ` R ` are isomorphic, we don't bother to pass this in as a
       parameter; internally we are actually using the empty set as this
       generator and ` 1o = { (/) } ` is the index set (but for most purposes
       this choice should not be visible anyway).  (Contributed by Mario
       Carneiro, 8-Feb-2015.)  (Revised by Mario Carneiro, 12-Jun-2015.) $)
    vr1val $p |- X = ( ( 1o mVar R ) ` (/) ) $=
      ( vr vi vx vf vh vy cvv wcel c0 c1o cmvr co cfv wceq cv1 cv cmpt oveq2 wn
      fveq1d df-vr1 fvex fvmpt syl5eq fvprc 0fv 3eqtr4g ccnv cima cfn cmap crab
      cn cn0 c1 cc0 cif cur c0g df-mvr reldmmpt2 ovprc2 eqtr4d pm2.61i ) AJKZBL
      MANOZPZQVHBARPZVJCDALMDSZNOZPVJJRVLAQLVMVIVLAMNUAUCDUDLVIUEUFUGVHUBZBLLPZ
      VJVNVKLBVOARUHCLUIUJVNLVILMANEDJJFESZGHSUKUPULUMKHUQVPUNOUOGSIVPISFSQURUS
      UTTQVLVAPVLVBPUTTTNFIGHEDVCVDVEUCVFVG $.

    vr1cl2.2 $e |- S = ( PwSer1 ` R ) $.
    vr1cl2.3 $e |- B = ( Base ` S ) $.
    $( The variable ` X ` is a member of the power series algebra
       ` R [ [ X ] ] ` .  (Contributed by Mario Carneiro, 8-Feb-2015.) $)
    vr1cl2 $p |- ( R e. Ring -> X e. B ) $=
      ( crg wcel c0 c1o cmvr co cfv vr1val cmps cbs con0 eqid a1i 1on id mvrcl2
      0lt1o psr1val cxp wss 0ss opsrbas syl6eqr eleqtrd syl5eqel ) BHIZDJKBLMZN
      ZABDEOUMUOKBPMZQNZAUMUQBUPKUNRJUPSZUNSUQSKRIUMUATUMUBJKIUMUDTUCUMUQCQNAUM
      BUPJKCURBCFUEJKKUFZUGUMUSUHTUIGUJUKUL $.
  $}

  ${
    $d r x y R $.  $d r x y S $.
    ply1val.1 $e |- P = ( Poly1 ` R ) $.
    ${
      ply1val.2 $e |- S = ( PwSer1 ` R ) $.
      $( The value of the set of univariate polynomials.  (Contributed by Mario
         Carneiro, 9-Feb-2015.) $)
      ply1val $p |- P = ( S |`s ( Base ` ( 1o mPoly R ) ) ) $=
        ( vr cpl1 cfv c1o cmpl co cbs cress cvv wcel wceq cps1 syl6eqr c0 fvprc
        cv fveq2 oveq2 fveq2d oveq12d df-ply1 ovex fvmpt wn ress0 syl5eq oveq1d
        eqtr4d pm2.61i eqtri ) ABGHZCIBJKZLHZMKZDBNOZUPUSPFBFUAZQHZIVAJKZLHZMKU
        SNGVABPZVBCVDURMVEVBBQHZCVABQUBERVEVCUQLVABIJUCUDUEFUFCURMUGUHUTUIZUPSU
        RMKZUSVGUPSVHBGTURUJRVGCSURMVGCVFSEBQTUKULUMUNUO $.

      ply1bas.u $e |- U = ( Base ` P ) $.
      $( The value of the base set of univariate polynomials.  (Contributed by
         Mario Carneiro, 9-Feb-2015.) $)
      ply1bas $p |- U = ( Base ` ( 1o mPoly R ) ) $=
        ( cbs cfv c1o cmpl co wceq cmps eqid psr1bas2 mplbasss ply1val ressbas2
        wss ax-mp eqtr4i ) DAHIZJBKLZHIZGUECHIZTUEUCMUFUDBJBNLZUEJUDOUGOZUEOUFB
        CUGFUFOZUHPQUEUFACABCEFRUISUAUB $.

      $( Univariate polynomials form a linear subspace of the set of univariate
         power series.  (Contributed by Mario Carneiro, 9-Feb-2015.) $)
      ply1lss $p |- ( R e. Ring -> U e. ( LSubSp ` S ) ) $=
        ( vx vy crg wcel c1o co cfv con0 a1i cbs cvv c0 wa cmps clss ply1bas id
        cmpl eqid 1on mpllss eqidd psr1val cxp wss 0ss opsrbas ssv cv opsrplusg
        cplusg oveqdr cvsca ovexd opsrvsca csca psrsca opsrsca lsspropd eleqtrd
        fveq2d ) BJKZDLBUAMZUBNCUBNVILBUEMZBVJDLOVJUFZVKUFABCDEFGUCLOKVIUGPZVIU
        DZUHVIHIVJQNZBQNZVJCRVIVOUIVIBVJSLCVLBCFUJZSLLUKZULVIVRUMPZUNVORULVIVOU
        OPVIHUPZRKIUPZRKTHIVJURNCURNVIBVJSLCVLVQVSUQUSVIVTVPKWAVOKTZTVTWAVJUTNZ
        VAVIWBHIWCCUTNVIBVJSLCVLVQVSVBUSVIBVJVCNQVIBVJLOJVLVMVNVDVHVIBCVCNQVIBV
        JSLCOJVLVQVSVMVNVEVHVFVG $.

      $( Univariate polynomials form a subring of the set of univariate power
         series.  (Contributed by Mario Carneiro, 9-Feb-2015.) $)
      ply1subrg $p |- ( R e. Ring -> U e. ( SubRing ` S ) ) $=
        ( vx vy wcel c1o co csubrg cfv con0 eqid a1i c0 cv cplusg crg cmps cmpl
        ply1bas 1on id mplsubrg cbs eqidd psr1val cxp wss 0ss opsrbas opsrplusg
        wa oveqdr cmulr opsrmulr subrgpropd eleqtrd ) BUAJZDKBUBLZMNCMNVBKBUCLZ
        BVCDKOVCPZVDPABCDEFGUDKOJVBUEQVBUFUGVBHIVCUHNZVCCVBVFUIVBBVCRKCVEBCFUJZ
        RKKUKZULVBVHUMQZUNVBHSVFJISVFJUPZHIVCTNCTNVBBVCRKCVEVGVIUOUQVBVJHIVCURN
        CURNVBBVCRKCVEVGVIUSUQUTVA $.
    $}

    $( The ring of univariate polynomials is a commutative ring.  (Contributed
       by Mario Carneiro, 9-Feb-2015.) $)
    ply1crng $p |- ( R e. CRing -> P e. CRing ) $=
      ( ccrg wcel cps1 cfv c1o cmpl co cbs csubrg psr1crng ply1bas crg crngring
      eqid ply1subrg syl syl5eqelr ply1val subrgcrng syl2anc ) BDEZBFGZDEHBIJKG
      ZUELGZEADEBUEUEQZMUDUFAKGZUGABUEUICUHUIQZNUDBOEUIUGEBPABUEUICUHUJRSTUFUEA
      ABUECUHUAUBUC $.

    $( The ring of univariate polynomials is an associative algebra.
       (Contributed by Mario Carneiro, 9-Feb-2015.) $)
    ply1assa $p |- ( R e. CRing -> P e. AssAlg ) $=
      ( ccrg wcel casa cbs cfv cps1 csubrg clss crg crngring eqid ply1subrg syl
      ply1lss cur co cress wss wa wb psr1assa subrg1cl subrgss c1o cmpl ply1val
      ply1bas oveq2i eqtr4i issubassa syl3anc mpbir2and ) BDEZAFEZAGHZBIHZJHEZU
      RUSKHZEZUPBLEZUTBMZABUSURCUSNZURNZOPZUPVCVBVDABUSURCVEVFQPUPUSFEUSRHZUREZ
      URUSGHZUAZUQUTVBUBUCBUSVEUDUPUTVIVGURUSVHVHNZUEPUPUTVKVGURVJUSVJNZUFPURAV
      HVAVJUSAUSUGBUHSGHZTSUSURTSABUSCVEUIURVNUSTABUSURCVEVFUJUKULVANVMVLUMUNUO
      $.
  $}

  ${
    psr1rcl.p $e |- P = ( PwSer1 ` R ) $.
    psr1rcl.b $e |- B = ( Base ` P ) $.
    $( A univariate power series is a multivariate power series on one index.
       (Contributed by Stefan O'Rear, 25-Mar-2015.) $)
    psr1bascl $p |- ( F e. B -> F e. ( Base ` ( 1o mPwSer R ) ) ) $=
      ( wcel c1o cmps co cbs cfv id eqid psr1bas2 syl6eleq ) DAGZDAHCIJZKLQMACB
      REFRNOP $.

    psr1basf.k $e |- K = ( Base ` R ) $.
    $( Univariate power series base set elements are functions.  (Contributed
       by Stefan O'Rear, 25-Mar-2015.) $)
    psr1basf $p |- ( F e. B -> F : ( NN0 ^m 1o ) --> K ) $=
      ( cn0 c1o cmap co wf elmapi psr1bas eleq2s ) IJKLZEDMDEQKLADEQNACBEFGHOP
      $.
  $}

  ${
    ply1rcl.p $e |- P = ( Poly1 ` R ) $.
    ply1rcl.b $e |- B = ( Base ` P ) $.
    ply1basf.k $e |- K = ( Base ` R ) $.
    $( Univariate polynomial base set elements are functions.  (Contributed by
       Stefan O'Rear, 21-Mar-2015.) $)
    ply1basf $p |- ( F e. B -> F : ( NN0 ^m 1o ) --> K ) $=
      ( va wcel c1o cmpl co cbs cfv cn0 cmap eqid psr1baslem id syl6eleq mplelf
      cps1 ply1bas ) DAJZKCLMZNOZPKQMUFCIKEDUFRHUGRISUEDAUGUETBCCUCOZAFUHRGUDUA
      UB $.
  $}

  ${
    ply1bascl.p $e |- P = ( Poly1 ` R ) $.
    ply1bascl.b $e |- B = ( Base ` P ) $.
    $( A univariate polynomial is a univariate power series.  (Contributed by
       Stefan O'Rear, 25-Mar-2015.) $)
    ply1bascl $p |- ( F e. B -> F e. ( Base ` ( PwSer1 ` R ) ) ) $=
      ( cps1 cfv cbs c1o cmpl co eqid ply1val ressbasss eqsstri sseli ) ACGHZIH
      ZDABIHSFJCKLIHSBRBCRERMNSMOPQ $.

    $( A univariate polynomial is a multivariate polynomial on one index.
       (Contributed by Stefan O'Rear, 25-Mar-2015.) $)
    ply1bascl2 $p |- ( F e. B -> F e. ( Base ` ( 1o mPoly R ) ) ) $=
      ( wcel c1o cmpl co cbs cfv cps1 eqid ply1bas eleq2i biimpi ) DAGDHCIJKLZG
      ARDBCCMLZAESNFOPQ $.
  $}

  ${
    $d F f n $.
    coe1fval.a $e |- A = ( coe1 ` F ) $.
    $( Value of the univariate polynomial coefficient function.  (Contributed
       by Stefan O'Rear, 21-Mar-2015.) $)
    coe1fval $p |- ( F e. V -> A =
        ( n e. NN0 |-> ( F ` ( 1o X. { n } ) ) ) ) $=
      ( vf wcel cvv cn0 c1o cv csn cxp cfv cmpt wceq elex cco1 fveq1 mpteq2dv
      df-coe1 nn0ex mptex fvmpt syl5eq syl ) CDGCHGZABIJBKLMZCNZOZPCDQUGACRNUJE
      FCBIUHFKZNZOUJHRUKCPBIULUIUHUKCSTFBUABIUIUBUCUDUEUF $.

    ${
      $d N n $.
      $( Value of an evaluated coefficient in a polynomial coefficient vector.
         (Contributed by Stefan O'Rear, 21-Mar-2015.) $)
      coe1fv $p |- ( ( F e. V /\ N e. NN0 ) -> ( A ` N ) =
            ( F ` ( 1o X. { N } ) ) ) $=
        ( wcel cn0 cfv c1o csn cxp cmpt coe1fval fveq1d wceq sneq xpeq2d fveq2d
        vn cv eqid fvex fvmpt sylan9eq ) BDFZCGFCAHCSGISTZJZKZBHZLZHICJZKZBHZUE
        CAUJASBDEMNSCUIUMGUJUFCOZUHULBUNUGUKIUFCPQRUJUAULBUBUCUD $.

      $( Value of a multivariate coefficient in terms of the coefficient
         vector.  (Contributed by Stefan O'Rear, 21-Mar-2015.) $)
      fvcoe1 $p |- ( ( F e. V /\ X e. ( NN0 ^m 1o ) ) ->
          ( F ` X ) = ( A ` ( X ` (/) ) ) ) $=
        ( wcel cn0 c1o cmap co wa cfv csn cxp wceq df1o2 nn0ex 0ex mapsnconst
        c0 adantl fveq2d wf elmapi 0lt1o ffvelrn sylancl coe1fv sylan2 eqtr4d )
        BCFZDGHIJFZKZDBLHTDLZMNZBLZUNALZUMDUOBULDUOOUKGHDTPQRSUAUBULUKUNGFZUQUP
        OULHGDUCTHFURDGHUDUEHGTDUFUGABUNCEUHUIUJ $.
    $}

    ${
      coe1f2.b $e |- B = ( Base ` P ) $.
      coe1f2.p $e |- P = ( PwSer1 ` R ) $.
      ${
        $d F x y $.
        coe1fval3.g $e |- G = ( y e. NN0 |-> ( 1o X. { y } ) ) $.
        $( Univariate power series coefficient vectors expressed as a function
           composition.  (Contributed by Stefan O'Rear, 25-Mar-2015.) $)
        coe1fval3 $p |- ( F e. B -> A = ( F o. G ) ) $=
          ( vx wcel cn0 c1o cv cfv cmpt cvv wf csn cxp ccom coe1fval co cbs wss
          cmap wceq eqid psr1basf ssv fss sylancl wa fconst6g adantl nn0ex con0
          1on elexi elmap sylibr a1i id feqmptd fveq2 fmptco syl eqtr4d ) FCMZB
          ANOAPZUAUBZFQZRZFGUCZBAFCHUDVKNOUHUEZSFTZVPVOUIVKVQEUFQZFTVSSUGVRCDEF
          VSJIVSUJUKVSULVQVSSFUMUNVRALNVQVMLPZFQVNGFVRVLNMZUOONVMTZVMVQMWAWBVRO
          VLNUPUQNOVMUROUSUTVAVBVCGANVMRUIVRKVDVRLVQSFVRVEVFVTVMFVGVHVIVJ $.
      $}

      $d B x $.  $d F x $.
      coe1f2.k $e |- K = ( Base ` R ) $.
      $( Functionality of univariate power series coefficient vectors.
         (Contributed by Stefan O'Rear, 25-Mar-2015.) $)
      coe1f2 $p |- ( F e. B -> A : NN0 --> K ) $=
        ( vx wcel cn0 wf c1o cv csn cxp cmpt ccom cmap co psr1basf c0 df1o2 0ex
        wf1o nn0ex eqid mapsnf1o3 f1of ax-mp fco sylancl coe1fval3 feq1d mpbird
        ) EBLZMFANMFEKMOKPQRSZTZNZURMOUAUBZFENMVBUSNZVABCDEFIHJUCMVBUSUGVCKMOUS
        UDUEUHUFUSUIZUJMVBUSUKULMVBFEUSUMUNURMFAUTKABCDEUSGHIVDUOUPUQ $.
    $}

    coe1f.b $e |- B = ( Base ` P ) $.
    coe1f.p $e |- P = ( Poly1 ` R ) $.
    ${
      $d F y $.
      coe1fval2.g $e |- G = ( y e. NN0 |-> ( 1o X. { y } ) ) $.
      $( Univariate polynomial coefficient vectors expressed as a function
         composition.  (Contributed by Stefan O'Rear, 21-Mar-2015.) $)
      coe1fval2 $p |- ( F e. B -> A = ( F o. G ) ) $=
        ( wcel cps1 cfv cbs ccom wceq ply1bascl eqid coe1fval3 syl ) FCLFEMNZON
        ZLBFGPQCDEFJIRABUCUBEFGHUCSUBSKTUA $.
    $}

    coe1f.k $e |- K = ( Base ` R ) $.
    $( Functionality of univariate polynomial coefficient vectors.
       (Contributed by Stefan O'Rear, 21-Mar-2015.) $)
    coe1f $p |- ( F e. B -> A : NN0 --> K ) $=
      ( wcel cps1 cfv cbs cn0 wf ply1bascl eqid coe1f2 syl ) EBKEDLMZNMZKOFAPBC
      DEIHQAUBUADEFGUBRUARJST $.

    $( A coefficient of a univariate polynomial over a class/ring is an element
       of this class/ring.  (Contributed by AV, 9-Oct-2019.) $)
    coe1fvalcl $p |- ( ( F e. B /\ N e. NN0 ) -> ( A ` N ) e. K ) $=
      ( wcel cn0 coe1f ffvelrnda ) EBLMFGAABCDEFHIJKNO $.
  $}

  ${
    $d B y $.  $d F y $.  $d x y $.
    coe1sfi.a $e |- A = ( coe1 ` F ) $.
    coe1sfi.b $e |- B = ( Base ` P ) $.
    coe1sfi.p $e |- P = ( Poly1 ` R ) $.
    coe1sfi.z $e |- .0. = ( 0g ` R ) $.
    $( Finite support of univariate polynomial coefficient vectors.
       (Contributed by Stefan O'Rear, 21-Mar-2015.)  (Revised by AV,
       19-Jul-2019.) $)
    coe1sfi $p |- ( F e. B -> A finSupp .0. ) $=
      ( vx vy wcel cn0 c1o co c0 cfv eqid cvv cmap cmpt ccnv cfsupp df1o2 nn0ex
      ccom 0ex mapsncnv coe1fval2 cmpl cbs ply1bascl2 cpl1 elbasfv mplelsfi wf1
      cv wf1o mapsnf1o2 f1ocnv f1of1 mp2b a1i c0g fvex eqeltri fsuppco eqbrtrd
      id ) EBMZAEKNOUAPZQKURRUBZUCZUGFUDLABCDEVNGHIKLNOVMQUEUFUHVMSZUIUJVKEVNBT
      NVLFVKODUKPZULRZVPDEOTFVPSVQSJBCDEIHUMBCUNEDIHUOUPNVLVNUQZVKVLNVMUSNVLVNU
      SVRKNOVMQUEUFUHVOUTVLNVMVANVLVNVBVCVDFTMVKFDVERTJDVEVFVGVDVKVJVHVI $.

    coe1fvalcl.k $e |- K = ( Base ` R ) $.
    $d A g $.  $d K g $.  $d .0. g $.
    $( The coefficient vector of a univariate polynomial is a finitely
       supported mapping from the nonnegative integers to the elements of the
       coefficient class/ring for the polynomial.  (Contributed by AV,
       3-Oct-2019.) $)
    coe1fsupp $p |- ( F e. B -> A e. { g e. ( K ^m NN0 ) | g finSupp .0. } ) $=
      ( wcel cn0 cmap cfsupp wbr cvv cbs co cv crab wf coe1f wa wb fvex eqeltri
      cfv nn0ex pm3.2i elmapg mp1i mpbird coe1sfi breq1 elrab sylanbrc ) FBNZAG
      OPUAZNZAHQRZAEUBZHQRZEVAUCNUTVBOGAUDZABCDFGIJKMUEGSNZOSNZUFVBVFUGUTVGVHGD
      TUJSMDTUHUIUKULGOASSUMUNUOABCDFHIJKLUPVEVCEAVAVDAHQUQURUS $.
  $}

  ${
    $d B k s x $.  $d M c $.  $d M k s x $.  $d R c $.  $d R k s x $.
    $d .0. c $.  $d .0. s x $.
    mptcoe1fsupp.p $e |- P = ( Poly1 ` R ) $.
    mptcoe1fsupp.b $e |- B = ( Base ` P ) $.
    mptcoe1fsupp.0 $e |- .0. = ( 0g ` R ) $.
    $( A mapping involving coefficients of polynomials is finitely supported.
       (Contributed by AV, 12-Oct-2019.) $)
    mptcoe1fsupp $p |- ( ( R e. Ring /\ M e. B )
                      -> ( k e. NN0 |-> ( ( coe1 ` M ) ` k ) ) finSupp .0. ) $=
      ( vx vs vc wcel wa cfv cv cvv c0g cn0 wbr crg cbs cco1 eqeltri coe1fvalcl
      fvex a1i eqid adantll clt wceq wi wral wrex csb cmap co cfsupp crab simpr
      coe1fsupp elrabi 3syl jctir coe1sfi adantl fsuppmapnn0ub sylc csbfv exp31
      syl5eq a2d ralimdva reximdva mpd mptnn0fsupp ) CUAMZEAMZNZJCUBOZDPZEUCOZO
      ZDQFKFQMZVSFCROQICRUFUDZUGVRWASMWCVTMVQWBABCEVTWAWBUHZHGVTUHZUEUIVSKPZJPZ
      UJTZWIWBOZFUKZULZJSUMZKSUNZWJDWIWCUOZFUKZULZJSUMZKSUNVSWBVTSUPUQZMZWDNWBF
      URTZWOVSXAWDVSVRWBLPFURTZLWTUSMXAVQVRUTWBABCLEVTFWFHGIWGVAXCLWBWTVBVCWEVD
      VRXBVQWBABCEFWFHGIVEVFJVTKWBQFVGVHVSWNWSKSVSWHSMNZWMWRJSXDWISMNZWJWLWQXEW
      JWLWQXEWJNZWLNWPWKFDWIWBVIXFWLUTVKVJVLVMVNVOVP $.
  $}

  ${
    $d A a n s $.  $d R a $.  $d .0. a n s $.
    coe1ae0.a $e |- A = ( coe1 ` F ) $.
    coe1ae0.b $e |- B = ( Base ` P ) $.
    coe1ae0.p $e |- P = ( Poly1 ` R ) $.
    coe1ae0.z $e |- .0. = ( 0g ` R ) $.
    $( The coefficient vector of a univariate polynomial is 0 almost
       everywhere.  (Contributed by AV, 19-Oct-2019.) $)
    coe1ae0 $p |- ( F e. B -> E. s e. NN0 A. n e. NN0
                              ( s < n -> ( A ` n ) = .0. ) ) $=
      ( va cv cfsupp wbr cfv cn0 wcel wi cbs cmap crab wceq wral wrex coe1fsupp
      co clt eqid wa breq1 elrab cvv fvex eqeltri fsuppmapnn0ub sylan2 impancom
      c0g a1i sylbi mpcom ) AMNZGOPZMDUAQZRUBUHZUCSZFBSZHNENZUIPVJAQGUDTERUEHRU
      FZABCDMFVFGIJKLVFUJUGVHAVGSZAGOPZUKVIVKTVEVMMAVGVDAGOULUMVLVIVMVKVIVLGUNS
      ZVMVKTVNVIGDUTQUNLDUTUOUPVAEVFHAUNGUQURUSVBVC $.
  $}

  ${
    vr1cl.x $e |- X = ( var1 ` R ) $.
    vr1cl.p $e |- P = ( Poly1 ` R ) $.
    vr1cl.b $e |- B = ( Base ` P ) $.
    $( The generator of a univariate polynomial algebra is contained in the
       base set.  (Contributed by Stefan O'Rear, 19-Mar-2015.) $)
    vr1cl $p |- ( R e. Ring -> X e. B ) $=
      ( crg wcel c0 c1o cmvr co cfv vr1val cmpl com eqid cps1 a1i ply1bas 0lt1o
      1onn id mvrcl syl5eqel ) CHIZDJKCLMZNACDEOUGAKCPMZCKUHQJUIRUHRBCCSNZAFUJR
      GUAKQIUGUCTUGUDJKIUGUBTUEUF $.
  $}

  ${
    $d ph x y $.  $d O x y $.  $d S x y $.
    opsr0.s $e |- S = ( I mPwSer R ) $.
    opsr0.o $e |- O = ( ( I ordPwSer R ) ` T ) $.
    opsr0.t $e |- ( ph -> T C_ ( I X. I ) ) $.
    $( Zero in the ordered power series ring.  (Contributed by Stefan O'Rear,
       23-Mar-2015.)  (Revised by Mario Carneiro, 2-Oct-2015.) $)
    opsr0 $p |- ( ph -> ( 0g ` S ) = ( 0g ` O ) ) $=
      ( vx vy cbs cfv eqidd opsrbas cv wcel wa cplusg opsrplusg grpidpropd
      oveqdr ) AJKCLMZCFAUCNABCDEFGHIOAJPUCQKPUCQRJKCSMFSMABCDEFGHITUBUA $.

    $( One in the ordered power series ring.  (Contributed by Stefan O'Rear,
       23-Mar-2015.)  (Revised by Mario Carneiro, 2-Oct-2015.) $)
    opsr1 $p |- ( ph -> ( 1r ` S ) = ( 1r ` O ) ) $=
      ( vx vy cbs cfv eqidd opsrbas cv wcel wa cmulr opsrmulr oveqdr rngidpropd
      ) AJKCLMZCFAUCNABCDEFGHIOAJPUCQKPUCQRJKCSMFSMABCDEFGHITUAUB $.
  $}

  ${
    mplplusg.y $e |- Y = ( I mPoly R ) $.
    mplplusg.s $e |- S = ( I mPwSer R ) $.
    ${
      mplplusg.p $e |- .+ = ( +g ` Y ) $.
      $( Value of addition in a polynomial ring.  (Contributed by Stefan
         O'Rear, 21-Mar-2015.)  (Revised by Mario Carneiro, 2-Oct-2015.) $)
      mplplusg $p |- .+ = ( +g ` S ) $=
        ( cplusg cfv cbs cvv wcel wceq fvex eqid mplval2 ressplusg ax-mp eqtr4i
        ) AEIJZCIJZHEKJZLMUBUANEKOUCUBCELEBCUCDFGUCPQUBPRST $.
    $}

    ${
      mplmulr.n $e |- .x. = ( .r ` Y ) $.
      $( Value of multiplication in a polynomial ring.  (Contributed by Stefan
         O'Rear, 21-Mar-2015.)  (Revised by Mario Carneiro, 2-Oct-2015.) $)
      mplmulr $p |- .x. = ( .r ` S ) $=
        ( cmulr cfv cbs cvv wcel wceq fvex eqid mplval2 ressmulr ax-mp eqtr4i )
        CEIJZBIJZHEKJZLMUBUANEKOUCBEUBLEABUCDFGUCPQUBPRST $.
    $}
  $}

  ${
    psr1plusg.y $e |- Y = ( PwSer1 ` R ) $.
    psr1plusg.s $e |- S = ( 1o mPwSer R ) $.
    ${
      psr1plusg.p $e |- .+ = ( +g ` Y ) $.
      $( Value of addition in a univariate power series ring.  (Contributed by
         Stefan O'Rear, 21-Mar-2015.)  (Revised by Mario Carneiro,
         2-Oct-2015.) $)
      psr1plusg $p |- .+ = ( +g ` S ) $=
        ( cplusg cfv wceq wtru c0 c1o psr1val cxp wss 0ss a1i opsrplusg trud
        eqtr4i ) ADHIZCHIZGUCUBJKBCLMDFBDENLMMOZPKUDQRSTUA $.
    $}

    ${
      psr1vscafval.n $e |- .x. = ( .s ` Y ) $.
      $( Value of scalar multiplication in a univariate power series ring.
         (Contributed by Stefan O'Rear, 21-Mar-2015.)  (Revised by Mario
         Carneiro, 2-Oct-2015.) $)
      psr1vsca $p |- .x. = ( .s ` S ) $=
        ( cvsca cfv wceq wtru c0 c1o psr1val cxp wss 0ss a1i opsrvsca trud
        eqtr4i ) CDHIZBHIZGUCUBJKABLMDFADENLMMOZPKUDQRSTUA $.
    $}

    ${
      psr1mulr.n $e |- .x. = ( .r ` Y ) $.
      $( Value of multiplication in a univariate power series ring.
         (Contributed by Stefan O'Rear, 21-Mar-2015.)  (Revised by Mario
         Carneiro, 2-Oct-2015.) $)
      psr1mulr $p |- .x. = ( .r ` S ) $=
        ( cmulr cfv wceq wtru c0 c1o psr1val cxp wss 0ss a1i opsrmulr trud
        eqtr4i ) CDHIZBHIZGUCUBJKABLMDFADENLMMOZPKUDQRSTUA $.
    $}
  $}

  ${
    ply1plusg.y $e |- Y = ( Poly1 ` R ) $.
    ply1plusg.s $e |- S = ( 1o mPoly R ) $.
    ${
      ply1plusg.p $e |- .+ = ( +g ` Y ) $.
      $( Value of addition in a univariate polynomial ring.  (Contributed by
         Stefan O'Rear, 21-Mar-2015.)  (Revised by Mario Carneiro,
         4-Jul-2015.) $)
      ply1plusg $p |- .+ = ( +g ` S ) $=
        ( cplusg cfv c1o cmps co cps1 eqid mplplusg psr1plusg cmpl cbs cvv wcel
        wceq fvex ply1val ressplusg ax-mp 3eqtr2i eqtr4i ) ADHIZCHIZGUIJBKLZHIB
        MIZHIZUHUIBUJJCFUJNZUINOULBUJUKUKNZUMULNZPJBQLZRIZSTULUHUAUPRUBUQULUKDS
        DBUKEUNUCUOUDUEUFUG $.
    $}

    ${
      ply1vscafval.n $e |- .x. = ( .s ` Y ) $.
      $( Value of scalar multiplication in a univariate polynomial ring.
         (Contributed by Stefan O'Rear, 21-Mar-2015.)  (Revised by Mario
         Carneiro, 4-Jul-2015.) $)
      ply1vsca $p |- .x. = ( .s ` S ) $=
        ( cvsca cfv c1o cmps co cps1 eqid mplvsca2 psr1vsca cmpl cbs cvv wcel
        wceq fvex ply1val ressvsca ax-mp 3eqtr2i eqtr4i ) CDHIZBHIZGUIJAKLZHIAM
        IZHIZUHBAUJUIJFUJNZUINOAUJULUKUKNZUMULNZPJAQLZRIZSTULUHUAUPRUBUQULUKDSD
        AUKEUNUCUOUDUEUFUG $.
    $}

    ${
      ply1mulr.n $e |- .x. = ( .r ` Y ) $.
      $( Value of multiplication in a univariate polynomial ring.  (Contributed
         by Stefan O'Rear, 21-Mar-2015.)  (Revised by Mario Carneiro,
         4-Jul-2015.) $)
      ply1mulr $p |- .x. = ( .r ` S ) $=
        ( cmulr cfv c1o cmps co cps1 eqid mplmulr psr1mulr cmpl cbs cvv wcel
        wceq fvex ply1val ressmulr ax-mp 3eqtr2i eqtr4i ) CDHIZBHIZGUIJAKLZHIAM
        IZHIZUHAUJUIJBFUJNZUINOAUJULUKUKNZUMULNZPJAQLZRIZSTULUHUAUPRUBUQUKDULSD
        AUKEUNUCUOUDUEUFUG $.
    $}
  $}

  ${
    ressply1.s $e |- S = ( Poly1 ` R ) $.
    ressply1.h $e |- H = ( R |`s T ) $.
    ressply1.u $e |- U = ( Poly1 ` H ) $.
    ressply1.b $e |- B = ( Base ` U ) $.
    ressply1.2 $e |- ( ph -> T e. ( SubRing ` R ) ) $.
    ${
      ressply1bas2.w $e |- W = ( PwSer1 ` H ) $.
      ressply1bas2.c $e |- C = ( Base ` W ) $.
      ressply1bas2.k $e |- K = ( Base ` S ) $.
      $( The base set of a restricted polynomial algebra consists of power
         series in the subring which are also polynomials (in the parent ring).
         (Contributed by Mario Carneiro, 3-Jul-2015.) $)
      ressply1bas2 $p |- ( ph -> B = ( C i^i K ) ) $=
        ( c1o eqid cmpl co con0 cmps ply1bas wcel 1on psr1bas2 cps1 ressmplbas2
        a1i cfv ) ABCDSDUAUBZFSHUAUBZHSIUCSHUDUBZUMTLUNTGHJBMPNUESUCUFAUGUKOUOT
        ZCHJUOPQUPUHEDDUIULZIKUQTRUEUJ $.
    $}

    ressply1.p $e |- P = ( S |`s B ) $.
    $( A restricted polynomial algebra has the same base set.  (Contributed by
       Mario Carneiro, 3-Jul-2015.) $)
    ressply1bas $p |- ( ph -> B = ( Base ` P ) ) $=
      ( cbs cfv wss wceq cps1 eqid cin ressply1bas2 inss2 syl6eqss ressbas2 syl
      ) ABEOPZQBCOPRABHSPZOPZUGUAUGABUIDEFGHUGUHIJKLMUHTUITUGTZUBUIUGUCUDBUGCEN
      UJUEUF $.

    $( A restricted polynomial algebra has the same addition operation.
       (Contributed by Mario Carneiro, 3-Jul-2015.) $)
    ressply1add $p |- ( ( ph /\ ( X e. B /\ Y e. B ) ) ->
        ( X ( +g ` U ) Y ) = ( X ( +g ` P ) Y ) ) $=
      ( co cplusg cfv eqid wcel c1o cmpl cress con0 cps1 ply1bas 1on ressmpladd
      a1i ply1plusg oveqi cvv wceq fvex eqeltri ressplusg ax-mp 3eqtr3i 3eqtr4g
      wa cbs ) AIBUAJBUAVAVAIJUBHUCQZRSZQIJUBDUCQZBUDQZRSZQIJGRSZQIJCRSZQABVFDV
      EFVCHUBUEIJVETZLVCTZGHHUFSZBMVLTNUGUBUEUAAUHUJOVFTZUIVHVDIJVHHVCGMVKVHTUK
      ULVIVGIJERSZVERSZVIVGVNDVEEKVJVNTZUKBUMUAZVNVIUNBGVBSUMNGVBUOUPZBVNECUMPV
      PUQURVQVOVGUNVRBVOVEVFUMVMVOTUQURUSULUT $.

    $( A restricted polynomial algebra has the same multiplication operation.
       (Contributed by Mario Carneiro, 3-Jul-2015.) $)
    ressply1mul $p |- ( ( ph /\ ( X e. B /\ Y e. B ) ) ->
        ( X ( .r ` U ) Y ) = ( X ( .r ` P ) Y ) ) $=
      ( co cmulr cfv eqid wcel wa c1o cmpl con0 cps1 ply1bas 1on a1i ressmplmul
      cress ply1mulr oveqi cvv wceq fvex eqeltri ressmulr ax-mp 3eqtr3i 3eqtr4g
      cbs ) AIBUAJBUAUBUBIJUCHUDQZRSZQIJUCDUDQZBUKQZRSZQIJGRSZQIJCRSZQABVFDVEFV
      CHUCUEIJVETZLVCTZGHHUFSZBMVLTNUGUCUEUAAUHUIOVFTZUJVHVDIJHVCVHGMVKVHTULUMV
      IVGIJERSZVERSZVIVGDVEVNEKVJVNTZULBUNUAZVNVIUOBGVBSUNNGVBUPUQZBECVNUNPVPUR
      USVQVOVGUOVRBVEVFVOUNVMVOTURUSUTUMVA $.

    $( A restricted power series algebra has the same scalar multiplication
       operation.  (Contributed by Mario Carneiro, 3-Jul-2015.) $)
    ressply1vsca $p |- ( ( ph /\ ( X e. T /\ Y e. B ) ) ->
        ( X ( .s ` U ) Y ) = ( X ( .s ` P ) Y ) ) $=
      ( co cvsca cfv eqid wcel c1o cmpl cress con0 cps1 ply1bas 1on ressmplvsca
      wa a1i ply1vsca oveqi cvv wceq cbs eqeltri ressvsca ax-mp 3eqtr3i 3eqtr4g
      fvex ) AIFUAJBUAUJUJIJUBHUCQZRSZQIJUBDUCQZBUDQZRSZQIJGRSZQIJCRSZQABVFDVEF
      VCHUBUEIJVETZLVCTZGHHUFSZBMVLTNUGUBUEUAAUHUKOVFTZUIVHVDIJHVCVHGMVKVHTULUM
      VIVGIJERSZVERSZVIVGDVEVNEKVJVNTZULBUNUAZVNVIUOBGUPSUNNGUPVBUQZBVNECUNPVPU
      RUSVQVOVGUOVRBVOVEVFUNVMVOTURUSUTUMVA $.
  $}

  ${
    $d x y R $.  $d x y S $.  $d x y T $.
    subrgply1.s $e |- S = ( Poly1 ` R ) $.
    subrgply1.h $e |- H = ( R |`s T ) $.
    subrgply1.u $e |- U = ( Poly1 ` H ) $.
    subrgply1.b $e |- B = ( Base ` U ) $.
    $( A subring of the base ring induces a subring of polynomials.
       (Contributed by Mario Carneiro, 3-Jul-2015.) $)
    subrgply1 $p |- ( T e. ( SubRing ` R ) -> B e. ( SubRing ` S ) ) $=
      ( vx vy csubrg cfv wcel c1o cmpl eqid wceq a1i con0 cps1 ply1bas subrgmpl
      co 1on mpan eqidd cv wa cplusg ply1plusg oveqdr cmulr ply1mulr subrgpropd
      cbs eleqtrrd ) DBMNOZAPBQUEZMNZCMNPUAOUSAVAOUFABUTDPFQUEZFPUAUTRZHVBREFFU
      BNZAIVDRJUCUDUGUSKLCUQNZCUTUSVEUHVEUTUQNSUSCBBUBNZVEGVFRVERUCTUSKUIVEOLUI
      VEOUJZKLCUKNZUTUKNZVHVISUSVHBUTCGVCVHRULTUMUSVGKLCUNNZUTUNNZVJVKSUSBUTVJC
      GVCVJRUOTUMUPUR $.

    $d B s t $.  $d F s t $.  $d S s t $.  $d U s t $.  $d ph s t $.
    gsumply1subr.s $e |- ( ph -> T e. ( SubRing ` R ) ) $.
    gsumply1subr.a $e |- ( ph -> A e. V ) $.
    gsumply1subr.f $e |- ( ph -> F : A --> B ) $.
    $( Evaluate a group sum in a polynomial ring over a subring.  (Contributed
       by AV, 22-Sep-2019.)  (Proof shortened by AV, 31-Jan-2020.) $)
    gsumply1subr $p |- ( ph -> ( S gsum F ) = ( U gsum F ) ) $=
      ( co cfv wcel vt vs cgsu cress csubmnd subrgply1 csubg subrgsubg subgsubm
      csubrg syl 3syl eqid gsumsubm cvv fex syl2anc ovexd cpl1 fvex eqeltri a1i
      wf cbs oveq2i ressply1bas eqcomd cmgm subrgring ringmgm cv wa cplusg wceq
      crg wi eleq2d biimpcd adantr impcom adantl ressply1add syl12anc wfun ffun
      simpl crn wss frn sseqtrd gsummgmpropd eqtrd ) AEHUCRECUDRZHUCRGHUCRABCHE
      WMJPAFDUJSTZCEUJSTZCEUESTZOCDEFGIKLMNUFZWOCEUGSTWPCEUHCEUIUKULQWMUMZUNAUA
      HWMGUOUOUOUBABCHVCZBJTHUOTQPBCJHUPUQAECUDURGUOTAGIUSSUOMIUSUTVAVBAGVDSZWM
      VDSZAWTWMDEFGIKLMWTUMOCWTEUDNVEVFVGAWNWMVOTZWMVHTOWNWOXBWQCEWMWRVIUKWMVJU
      LAUBVKZXATZUAVKZXATZVLZVLZXCXEGVMSRZXCXEWMVMSRZXHAXCCTZXECTZXIXJVNAXGWFXG
      AXKXDAXKVPXFAXDXKAXACXCACXAACWMDEFGIKLMNOWRVFZVGZVQVRVSVTXGAXLXFAXLVPXDAX
      FXLAXACXEXNVQVRWAVTACWMDEFGIXCXEKLMNOWRWBWCVGAWSHWDQBCHWEUKAHWGZCXAAWSXOC
      WHQBCHWIUKXMWJWKWL $.
  $}

  ${
    $d I a $.
    psrbaspropd.e $e |- ( ph -> ( Base ` R ) = ( Base ` S ) ) $.
    $( Property deduction for power series base set.  (Contributed by Stefan
       O'Rear, 27-Mar-2015.) $)
    psrbaspropd $p |- ( ph -> ( Base ` ( I mPwSer R ) ) =
                              ( Base ` ( I mPwSer S ) ) ) $=
      ( va cvv wcel cmps co cbs wceq wa cmap eqid psrbas eqtr4d reldmpsr ovprc1
      cfv cv ccnv cima cfn cn0 crab simpr adantr oveq1d fveq2d adantl pm2.61dan
      cn wn c0 ) ADGHZDBIJZKTZDCIJZKTZLZAUPMZURBKTZFUAUBUMUCUDHFUEDNJUFZNJZUTVB
      URVDBUQFDVCGUQOVCOVDOZUROAUPUGZPVBUTCKTZVDNJVEVBUTVDCUSFDVHGUSOVHOVFUTOVG
      PVBVCVHVDNAVCVHLUPEUHUIQQUPUNZVAAVIUQUSKVIUQUOUSDBIRSDCIRSQUJUKUL $.
  $}

  ${
    $d ph a b d y $.  $d ph x $.  $d B x y $.  $d I a b d $.  $d I c $.
    $d R a b d y $.  $d R x $.  $d S a b d y $.  $d S x $.  $d a x $.
    $d c d $.  $d d x $.
    psrplusgpropd.b1 $e |- ( ph -> B = ( Base ` R ) ) $.
    psrplusgpropd.b2 $e |- ( ph -> B = ( Base ` S ) ) $.
    psrplusgpropd.p $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( x ( +g ` R ) y ) = ( x ( +g ` S ) y ) ) $.
    $( Property deduction for power series addition.  (Contributed by Stefan
       O'Rear, 27-Mar-2015.)  (Revised by Mario Carneiro, 3-Oct-2015.) $)
    psrplusgpropd $p |- ( ph -> ( +g ` ( I mPwSer R ) ) =
                                ( +g ` ( I mPwSer S ) ) ) $=
      ( va vb vd vc cplusg cfv co wcel eqid cvv cof cmps cbs cxp cres cmpt2 w3a
      cv ccnv cn cima cfn cn0 cmap crab cmpt wa simpl1 simp2 psrelbas ffvelrnda
      wceq syl eleqtrrd simp3 oveqrspc2v syl12anc mpteq2dva wf wfn ffn ovex a1i
      rabex inidm offval 3eqtr4d mpt2eq3dva eqtr3d psrbaspropd mpt2eq12 syl2anc
      eqidd eqtrd ofmres 3eqtr4g psrplusg ) AEOPZUAZGEUBQZUCPZWKUDUEZFOPZUAZGFU
      BQZUCPZWPUDUEZWJOPZWOOPZAKLWKWKKUHZLUHZWIQZUFZKLWPWPWTXAWNQZUFZWLWQAXCKLW
      KWKXDUFZXEAKLWKWKXBXDAWTWKRZXAWKRZUGZMNUHUIUJUKULRZNUMGUNQZUOZMUHZWTPZXMX
      APZWHQZUPMXLXNXOWMQZUPXBXDXIMXLXPXQXIXMXLRZUQZAXNDRXODRXPXQVBAXGXHXRURZXS
      XNEUCPZDXIXLYAXMWTXIWKXLEWJNGYAWTWJSZYASZXLSZWKSZAXGXHUSUTZVAXSADYAVBXTHV
      CZVDXSXOYADXIXLYAXMXAXIWKXLEWJNGYAXAYBYCYDYEAXGXHVEUTZVAYGVDABCDDWHWMXNXO
      JVFVGVHXIMXLXLXNXOWHXLWTXATTXIXLYAWTVIWTXLVJYFXLYAWTVKVCZXIXLYAXAVIXAXLVJ
      YHXLYAXAVKVCZXLTRXIXJNXKUMGUNVLVNVMZYKXLVOZXSXNWCZXSXOWCZVPXIMXLXLXNXOWMX
      LWTXATTYIYJYKYKYLYMYNVPVQVRAWKWPVBZYOXFXEVBAEFGADYAFUCPHIVSVTZYPKLWKWKWPW
      PXDWAWBWDWKWKWHKLWEWPWPWMKLWEWFWKWHWREWJGYBYEWHSWRSWGWPWMWSFWOGWOSWPSWMSW
      SSWGWF $.

    $( Property deduction for polynomial base set.  (Contributed by Stefan
       O'Rear, 27-Mar-2015.)  (Proof shortened by AV, 19-Jul-2019.) $)
    mplbaspropd $p |- ( ph -> ( Base ` ( I mPoly R ) ) =
                              ( Base ` ( I mPoly S ) ) ) $=
      ( va cmpl co cbs cfv wceq c0g cfsupp wbr eqid wcel wa cv cmps crab eqtr3d
      psrbaspropd adantr wb grpidpropd breq2d rabeqbidv mplbas 3eqtr4g reldmmpl
      cvv wn c0 ovprc1 eqtr4d fveq2d adantl pm2.61dan ) AGUPUAZGELMZNOZGFLMZNOZ
      PZAVDUBZKUCZEQOZRSZKGEUDMZNOZUEVKFQOZRSZKGFUDMZNOZUEVFVHVJVMVQKVOVSAVOVSP
      VDAEFGADENOFNOHIUFUGUHAVMVQUIVDAVLVPVKRABCDEFHIJUJUKUHULVOVEEVNVFKGVLVETV
      NTVOTVLTVFTUMVSVGFVRVHKGVPVGTVRTVSTVPTVHTUMUNVDUQZVIAVTVEVGNVTVEURVGGELUO
      USGFLUOUSUTVAVBVC $.
  $}

  ${
    $d B b c e f $.  $d F b c e f $.  $d G b c e f $.  $d I a b c d e f $.
    $d R b c e f $.  $d S b c $.  $d Z b c $.
    psropprmul.y $e |- Y = ( I mPwSer R ) $.
    psropprmul.s $e |- S = ( oppR ` R ) $.
    psropprmul.z $e |- Z = ( I mPwSer S ) $.
    psropprmul.t $e |- .x. = ( .r ` Y ) $.
    psropprmul.u $e |- .xb = ( .r ` Z ) $.
    psropprmul.b $e |- B = ( Base ` Y ) $.
    $( Reversing multiplication in a ring reverses multiplication in the power
       series ring.  (Contributed by Stefan O'Rear, 27-Mar-2015.) $)
    psropprmul $p |- ( ( R e. Ring /\ F e. B /\ G e. B ) ->
        ( F .xb G ) = ( G .x. F ) ) $=
      ( wcel co cfv cvv vb va ve vd vc vf crg w3a cv ccnv cn cima cfn cmap crab
      cn0 cle cofr wbr cmin cof cmulr cmpt cgsu ccom cbs c0g eqid ccmn 3ad2ant1
      wa ringcmn adantr ovex rabex a1i simpll1 wf simp3 psrelbas elrabi ffvelrn
      syl2an simp2 ad2antrr ssrab2 cmps reldmpsr strov2rcl 3ad2ant3 psrbagconcl
      simplr simpr syl3anc sseldi ffvelrnd ringcl fmptd csupp wss cfsupp mptexg
      wfun mp1i funmpt fvex psrbaglefi sylan cdm suppssdm dmmptss suppssfifsupp
      sstri syl32anc wf1o psrbagconf1o gsumf1o eqidd fveq2 oveq2 fveq2d oveq12d
      wceq fmptco psrbagf cc nn0cn nncan adantl caonncan oveq2d opprmul syl6eqr
      mpteq2dva eqtrd coppr cplusg psrmulfval fveq2i eleqtrd id eqeltri opprbas
      mptex oppradd gsumpropd 3eqtrd psrbaspropd eqtri 3eqtr4g 3eqtr4rd ) BUGQZ
      FAQZGAQZUHZUAUBUIUJUKULUMQZUBUPHUNRZUOZBUCUDUIUAUIZUQURUSZUDUURUOZUCUIZGS
      ZUUSUVBUTVAZRZFSZBVBSZRZVCZVDRZVCUAUURCUEUVAUEUIZFSZUUSUVKUVDRZGSZCVBSZRZ
      VCZVDRZVCGFERFGDRUUOUAUURUVJUVRUUOUUSUURQZVKZUVJBUVIUEUVAUVMVCZVEZVDRBUVQ
      VDRZUVRUVTUVABVFSZUVAUVIBUWATBVGSZUWDVHZUWEVHUUOBVIQZUVSUULUUMUWGUUNBVLVJ
      VMUVATQZUVTUUTUDUURUUPUBUUQUPHUNVNVOVOZVPUVTUCUVAUVHUWDUVIUVTUVBUVAQZVKZU
      ULUVCUWDQZUVFUWDQUVHUWDQUULUUMUUNUVSUWJVQUVTUURUWDGVRZUVBUURQUWLUWJUUOUWM
      UVSUUOAUURBIUBHUWDGKUWFUURVHZPUULUUMUUNVSZVTVMUUTUDUVBUURWAUURUWDUVBGWBWC
      UWKUURUWDUVEFUUOUURUWDFVRUVSUWJUUOAUURBIUBHUWDFKUWFUWNPUULUUMUUNWDZVTWEUW
      KUVAUURUVEUUTUDUURWFUWKHTQZUVSUWJUVEUVAQUUOUWQUVSUWJUUNUULUWQUUMABIWGHGKP
      WHWIWJZWEUUOUVSUWJWLUVTUWJWMUDUURUVAUBUUSHTUVBUWNUVAVHZWKWNWOWPUWDBUVGUVC
      UVFUWFUVGVHZWQWNUVIVHZWRUVTUVITQZUVIXCZUWETQZUVAUMQZUVIUWEWSRZUVAWTZUVIUW
      EXAUSUWHUXBUVTUWIUCUVAUVHTXBXDUXCUVTUCUVAUVHXEVPUXDUVTBVGXFVPUUOUWQUVSUXE
      UWRUDUURUBUUSHTUWNXGXHUXGUVTUXFUVIXIUVAUVIUWEXJUCUVAUVHUVIUXAXKXMVPUVAUVI
      TTUWEXLXNUUOUWQUVSUVAUVAUWAXOUWRUEUDUURUVAUBUUSHTUWNUWSXPXHXQUVTUWBUVQBVD
      UVTUWBUEUVAUVNUUSUVMUVDRZFSZUVGRZVCUVQUVTUEUCUVAUVAUVMUVHUXJUWAUVIUVTUVKU
      VAQZVKZUWQUVSUXKUVMUVAQUUOUWQUVSUXKUWRWEZUUOUVSUXKWLUVTUXKWMUDUURUVAUBUUS
      HTUVKUWNUWSWKWNUVTUWAXRUVTUVIXRUVBUVMYCZUVCUVNUVFUXIUVGUVBUVMGXSUXNUVEUXH
      FUVBUVMUUSUVDXTYAYBYDUVTUEUVAUXJUVPUXLUXJUVNUVLUVGRUVPUXLUXIUVLUVNUVGUXLU
      XHUVKFUXLUCUFUUSUVKUPHUTTUXMUVTHUPUUSVRZUXKUUOUWQUVSUXOUWRUURUBUUSHTUWNYE
      XHVMUVTUWQUVKUURQHUPUVKVRUXKUUOUWQUVSUWRVMUUTUDUVKUURWAUURUBUVKHTUWNYEWCU
      VBUPQZUFUIZUPQZVKUVBUVBUXQUTRUTRUXQYCZUXLUXPUVBYFQUXQYFQUXSUXRUVBYGUXQYGU
      VBUXQYHWCYIYJYAYKUWDBUVOUVGCUVLUVNUWFUWTLUVOVHZYLYMYNYOYKUUOUWCUVRYCZUVSU
      ULUUMUYAUUNUULUVQBCTUGTUVQTQUULUEUVAUVPUWIUUDVPUULUUACTQUULCBYPSTLBYPXFUU
      BVPUWDCVFSYCZUULUWDBCLUWFUUCZVPBYQSZCYQSYCUULUYDBCLUYDVHUUEVPUUFVJVMUUGYN
      UUOUCUDAUURBIEUVGUBUAGFHKPUWTNUWNUWOUWPYRUUOUEUDJVFSZUURCJDUVOUBUAFGHMUYE
      VHUXTOUWNUUOFAUYEUWPUUOHBWGRZVFSZHCWGRZVFSAUYEUUOBCHUYBUUOUYCVPUUHAIVFSUY
      GPIUYFVFKYSUUIJUYHVFMYSUUJZYTUUOGAUYEUWOUYIYTYRUUK $.
  $}

  ${
    ply1opprmul.y $e |- Y = ( Poly1 ` R ) $.
    ply1opprmul.s $e |- S = ( oppR ` R ) $.
    ply1opprmul.z $e |- Z = ( Poly1 ` S ) $.
    ply1opprmul.t $e |- .x. = ( .r ` Y ) $.
    ply1opprmul.u $e |- .xb = ( .r ` Z ) $.
    ply1opprmul.b $e |- B = ( Base ` Y ) $.
    $( Reversing multiplication in a ring reverses multiplication in the
       univariate polynomial ring.  (Contributed by Stefan O'Rear,
       27-Mar-2015.) $)
    ply1opprmul $p |- ( ( R e. Ring /\ F e. B /\ G e. B ) ->
        ( F .xb G ) = ( G .x. F ) ) $=
      ( wcel c1o co cfv eqid crg cmps cbs wceq id cps1 ply1bascl psr1bascl cmpl
      syl ply1mulr mplmulr psropprmul syl3an ) BUAPZUOFAPZFQBUBRZUCSZPZGAPZGURP
      ZFGDRGFERUDUOUEUPFBUFSZUCSZPUSAHBFJOUGVCVBBFVBTZVCTZUHUJUTGVCPVAAHBGJOUGV
      CVBBGVDVEUHUJURBCDEFGQUQQCUBRZUQTZKVFTZBUQEQQBUIRZVITZVGBVIEHJVJMUKULCVFD
      QQCUIRZVKTZVHCVKDILVLNUKULURTUMUN $.
  $}

  $( Lemma for ~ ply1basfvi and ~ deg1fvi .  (Contributed by Stefan O'Rear,
     28-Mar-2015.) $)
  00ply1bas $p |- (/) = ( Base ` ( Poly1 ` (/) ) ) $=
    ( va c0 cpl1 cfv cbs cv wcel noel c1o cc0 csn cxp cn0 cmap co wf eqid base0
    ply1basf 0nn0 fconst6 nn0ex con0 1on elexi elmap ffvelrn sylancl mto 2false
    mpbir eqriv ) ABBCDZEDZAFZBGUOUNGZUOHUPIJKLZUODZBGZURHUPMINOZBUOPUQUTGZUSUN
    UMBUOBUMQUNQRSVAIMUQPIJMTUAMIUQUBIUCUDUEUFUKUTBUQUOUGUHUIUJUL $.

  $( Protection compatibility of the univariate polynomial base set.
     (Contributed by Stefan O'Rear, 27-Mar-2015.) $)
  ply1basfvi $p |- ( Base ` ( Poly1 ` R ) ) =
      ( Base ` ( Poly1 ` ( _I ` R ) ) ) $=
    ( cvv wcel cpl1 cfv cbs cid wceq eqcomd fveq2d wn c0 base0 00ply1bas eqtr3i
    fvi fvprc 3eqtr4a pm2.61i ) ABCZADEZFEZAGEZDEZFEZHTUAUDFTAUCDTUCAABPIJJTKZL
    FEZLDEZFEZUBUELUGUIMNOUFUALFADQJUFUDUHFUFUCLDAGQJJRS $.

  $( Protection compatibility of the univariate polynomial addition.
     (Contributed by Stefan O'Rear, 27-Mar-2015.) $)
  ply1plusgfvi $p |- ( +g ` ( Poly1 ` R ) ) =
      ( +g ` ( Poly1 ` ( _I ` R ) ) ) $=
    ( va cid cfv cpl1 cplusg cvv wcel wceq fveq2d c0 c1o cres eqid cxp cn0 cmap
    co wtru con0 fvi wn cmpl cof ply1plusg cmps mplplusg cbs psr1baslem 1on a1i
    base0 psrbas trud cc0 csn wne wf 0nn0 fconst6 nn0ex elexi elmap mpbir map0b
    ne0i mp2b eqtr2i psrplusg xp0 reseq2i 3eqtri res0 df-plusg str0 eqtri fvprc
    c2 3eqtr4a pm2.61i eqcomi ) ACDZEDZFDZAEDZFDZAGHZWDWFIWGWCWEFWGWBAEAGUAJJWG
    UBZKEDZFDZKFDZWDWFWJLKUCRZFDZWKUDZKMZWKWJKWLWIWINWLNZWJNUEWMLKUFRZFDZWNKKOZ
    MWOWMKWQLWLWPWQNZWMNUGKWKWRKWQLWTWQUHDZKPLQRZQRZKXAXCISXAXBKWQBLKTWTULBUIXA
    NLTHSUJUKUMUNLUOUPOZXBHZXBKUQXCKIXELPXDURLUOPUSUTPLXDVALTUJVBVCVDXBXDVFXBVE
    VGVHWKNWRNVIWSKWNKVJVKVLWOKWKWNVMFVRVNVOVPVLWHWCWIFWHWBKEACVQJJWHWEKFAEVQJV
    SVTWA $.

  ${
    $d ph x y $.  $d B x y $.  $d R x y $.  $d S x y $.
    ply1baspropd.b1 $e |- ( ph -> B = ( Base ` R ) ) $.
    ply1baspropd.b2 $e |- ( ph -> B = ( Base ` S ) ) $.
    ply1baspropd.p $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( x ( +g ` R ) y ) = ( x ( +g ` S ) y ) ) $.
    $( Property deduction for univariate polynomial base set.  (Contributed by
       Stefan O'Rear, 27-Mar-2015.) $)
    ply1baspropd $p |- ( ph -> ( Base ` ( Poly1 ` R ) ) =
          ( Base ` ( Poly1 ` S ) ) ) $=
      ( c1o cmpl co cbs cfv cpl1 mplbaspropd cps1 eqid ply1bas 3eqtr4g ) AJEKLM
      NJFKLMNEONZMNZFONZMNZABCDEFJGHIPUAEEQNZUBUARUERUBRSUCFFQNZUDUCRUFRUDRST
      $.

    $( Property deduction for univariate polynomial addition.  (Contributed by
       Stefan O'Rear, 27-Mar-2015.) $)
    ply1plusgpropd $p |- ( ph -> ( +g ` ( Poly1 ` R ) ) =
          ( +g ` ( Poly1 ` S ) ) ) $=
      ( c1o cmpl co cplusg cfv cpl1 cmps eqid mplplusg 3eqtr4g ply1plusg
      psrplusgpropd ) AJEKLZMNZJFKLZMNZEONZMNZFONZMNZAJEPLZMNJFPLZMNUCUEABCDEFJ
      GHIUAUCEUJJUBUBQZUJQUCQRUEFUKJUDUDQZUKQUEQRSUGEUBUFUFQULUGQTUIFUDUHUHQUMU
      IQTS $.
  $}

  ${
    $d ph x y $.  $d I x y $.  $d O x y $.  $d R x y $.
    opsrring.o $e |- O = ( ( I ordPwSer R ) ` T ) $.
    opsrring.i $e |- ( ph -> I e. V ) $.
    opsrring.r $e |- ( ph -> R e. Ring ) $.
    opsrring.t $e |- ( ph -> T C_ ( I X. I ) ) $.
    $( Ordered power series form a ring.  (Contributed by Stefan O'Rear,
       22-Mar-2015.) $)
    opsrring $p |- ( ph -> O e. Ring ) $=
      ( vx vy cmps crg wcel cfv cv cplusg oveqdr cmulr eqid psrring cbs opsrbas
      co eqidd wa opsrplusg opsrmulr ringpropd mpbid ) ADBMUEZNOENOABULDFULUAZH
      IUBAKLULUCPZULEAUNUFABULCDEUMGJUDAKQUNOLQUNOUGZKLULRPERPABULCDEUMGJUHSAUO
      KLULTPETPABULCDEUMGJUISUJUK $.

    $( Ordered power series form a left module.  (Contributed by Stefan O'Rear,
       26-Mar-2015.) $)
    opsrlmod $p |- ( ph -> O e. LMod ) $=
      ( vx vy clmod wcel eqid cbs cfv cv wa cplusg cmps psrlmod eqidd opsrplusg
      co opsrbas oveqdr crg psrsca opsrsca cvsca opsrvsca lmodpropd mpbid ) ADB
      UAUEZMNEMNABUODFUOOZHIUBAKLUOPQZBPQZBUOEAUQUCABUOCDEUPGJUFAKRZUQNLRUQNZSK
      LUOTQETQABUOCDEUPGJUDUGABUODFUHUPHIUIABUOCDEFUHUPGJHIUJUROAUSURNUTSKLUOUK
      QEUKQABUOCDEUPGJULUGUMUN $.
  $}

  ${
    psr1ring.s $e |- S = ( PwSer1 ` R ) $.
    $( Univariate power series form a ring.  (Contributed by Stefan O'Rear,
       22-Mar-2015.) $)
    psr1ring $p |- ( R e. Ring -> S e. Ring ) $=
      ( crg wcel c0 c1o con0 psr1val 1on a1i id cxp wss 0ss opsrring ) ADEZAFGB
      HABCIGHEQJKQLFGGMZNQROKP $.
  $}

  ${
    ply1ring.p $e |- P = ( Poly1 ` R ) $.
    $( Univariate polynomials form a ring.  (Contributed by Stefan O'Rear,
       22-Mar-2015.) $)
    ply1ring $p |- ( R e. Ring -> P e. Ring ) $=
      ( crg wcel c1o cmpl co cbs cfv cps1 csubrg eqid ply1bas ply1subrg ply1val
      syl5eqelr subrgring syl ) BDEZFBGHIJZBKJZLJZEADETUAAIJZUCABUBUDCUBMZUDMZN
      ABUBUDCUEUFOQUAUBAABUBCUEPRS $.
  $}

  ${
    psr1lmod.p $e |- P = ( PwSer1 ` R ) $.
    $( Univariate power series form a left module.  (Contributed by Stefan
       O'Rear, 26-Mar-2015.) $)
    psr1lmod $p |- ( R e. Ring -> P e. LMod ) $=
      ( crg wcel c0 c1o con0 psr1val 1on a1i id cxp wss 0ss opsrlmod ) BDEZBFGA
      HBACIGHEQJKQLFGGMZNQROKP $.

    $( Scalars of a univariate power series ring.  (Contributed by Stefan
       O'Rear, 4-Jul-2015.) $)
    psr1sca $p |- ( R e. V -> R = ( Scalar ` P ) ) $=
      ( wcel c1o cmps co c0 con0 eqid psr1val cxp wss 0ss a1i 1on id opsrsca )
      BCEZBFBGHZIFAJCUAKBADLIFFMZNTUBOPFJETQPTRS $.

    $( Scalars of a univariate power series ring.  (Contributed by Stefan
       O'Rear, 26-Mar-2015.)  (Revised by Mario Carneiro, 4-Jul-2015.) $)
    psr1sca2 $p |- ( _I ` R ) = ( Scalar ` P ) $=
      ( cvv wcel cid cfv csca wceq fvi psr1sca eqtrd wn c0 c5 df-sca str0 fvprc
      cps1 syl5eq fveq2d 3eqtr4a pm2.61i ) BDEZBFGZAHGZIUDUEBUFBDJABDCKLUDMZNNH
      GUEUFHOPQBFRUGANHUGABSGNCBSRTUAUBUC $.
  $}

  ${
    ply1lmod.p $e |- P = ( Poly1 ` R ) $.
    $( Univariate polynomials form a left module.  (Contributed by Stefan
       O'Rear, 26-Mar-2015.) $)
    ply1lmod $p |- ( R e. Ring -> P e. LMod ) $=
      ( crg wcel cps1 cfv clmod c1o cmpl co cbs clss eqid psr1lmod cpl1 ply1bas
      ply1lss syl5eqelr ply1val lsslmod syl2anc ) BDEZBFGZHEIBJKLGZUDMGZEAHEUDB
      UDNZOUCUEBPGZLGZUFUHBUDUIUHNZUGUINZQUHBUDUIUJUGUKRSUFUEUDAABUDCUGTUFNUAUB
      $.

    $( Scalars of a univariate polynomial ring.  (Contributed by Stefan O'Rear,
       26-Mar-2015.) $)
    ply1sca $p |- ( R e. V -> R = ( Scalar ` P ) ) $=
      ( wcel cps1 cfv csca eqid psr1sca c1o cmpl co cbs wceq fvex ply1val ax-mp
      cvv resssca syl6eq ) BCEBBFGZHGZAHGZUBBCUBIZJKBLMZNGZSEUCUDOUFNPUGUCUBASA
      BUBDUEQUCITRUA $.

    $( Scalars of a univariate polynomial ring.  (Contributed by Stefan O'Rear,
       26-Mar-2015.) $)
    ply1sca2 $p |- ( _I ` R ) = ( Scalar ` P ) $=
      ( cvv wcel cid cfv csca wceq ply1sca eqtrd wn c0 fvprc cpl1 fveq2d fveq2i
      fvi c5 df-sca str0 3eqtr4g eqtr4d pm2.61i ) BDEZBFGZAHGZIUEUFBUGBDRABDCJK
      UELZUFMUGBFNUHBOGZHGMHGUGMUHUIMHBONPAUIHCQHSTUAUBUCUD $.
  $}

  ${
    $d M x y $.  $d P x y $.  $d R x y $.
    ply1mpl0.m $e |- M = ( 1o mPoly R ) $.
    ply1mpl0.p $e |- P = ( Poly1 ` R ) $.
    ply1mpl0.z $e |- .0. = ( 0g ` P ) $.
    $( The univariate polynomial ring has the same zero as the corresponding
       multivariate polynomial ring.  (Contributed by Stefan O'Rear,
       23-Mar-2015.)  (Revised by Mario Carneiro, 3-Oct-2015.) $)
    ply1mpl0 $p |- .0. = ( 0g ` M ) $=
      ( vx vy c0g cfv wceq wtru cbs eqidd eqid a1i cv wcel cplusg c1o cmpl cps1
      co ply1bas fveq2i eqtr4i wa ply1plusg oveqdr grpidpropd trud eqtri ) DAJK
      ZCJKZGUNUOLMHIANKZACMUPOUPCNKZLMUPUABUBUDZNKUQABBUCKZUPFUSPUPPUECURNEUFUG
      QMHRUPSIRUPSUHHIATKZCTKZUTVALMUTBCAFEUTPUIQUJUKULUM $.
  $}

  ${
    ply10s0.p $e |- P = ( Poly1 ` R ) $.
    ply10s0.b $e |- B = ( Base ` P ) $.
    ply10s0.m $e |- .* = ( .s ` P ) $.
    ply10s0.e $e |- .0. = ( 0g ` R ) $.
    $( Zero times a univariate polynomial is the zero polynomial ( ~ lmod0vs
       analog.)  (Contributed by AV, 2-Dec-2019.) $)
    ply10s0 $p |- ( ( R e. Ring /\ M e. B ) -> ( .0. .* M ) = ( 0g ` P ) ) $=
      ( crg wcel wa co csca cfv c0g wceq ply1sca eqid adantr fveq2d clmod sylan
      syl5eq oveq1d ply1lmod lmod0vs eqtrd ) CKLZEALZMZFEDNBOPZQPZEDNZBQPZULFUN
      EDULFCQPUNJULCUMQUJCUMRUKBCKGSUAUBUEUFUJBUCLUKUOUPRBCGUGDUMUNABEUPHUMTIUN
      TUPTUHUDUI $.
  $}

  ${
    $d x y M $.  $d x y P $.
    ply1mpl1.m $e |- M = ( 1o mPoly R ) $.
    ply1mpl1.p $e |- P = ( Poly1 ` R ) $.
    ply1mpl1.o $e |- .1. = ( 1r ` P ) $.
    $( The univariate polynomial ring has the same one as the corresponding
       multivariate polynomial ring.  (Contributed by Stefan O'Rear,
       23-Mar-2015.)  (Revised by Mario Carneiro, 3-Oct-2015.) $)
    ply1mpl1 $p |- .1. = ( 1r ` M ) $=
      ( vx vy cur cfv wceq wtru cbs eqidd eqid a1i cv wcel cmulr c1o co ply1bas
      cmpl cps1 fveq2i eqtr4i wa ply1mulr oveqdr rngidpropd trud eqtri ) CAJKZD
      JKZGUNUOLMHIANKZADMUPOUPDNKZLMUPUABUDUBZNKUQABBUEKZUPFUSPUPPUCDURNEUFUGQM
      HRUPSIRUPSUHHIATKZDTKZUTVALMBDUTAFEUTPUIQUJUKULUM $.
  $}

  ${
    $d x y P $.  $d x y R $.
    ply1ascl.p $e |- P = ( Poly1 ` R ) $.
    ply1ascl.a $e |- A = ( algSc ` P ) $.
    $( The univariate polynomial ring inherits the multivariate ring's scalar
       function.  (Contributed by Stefan O'Rear, 28-Mar-2015.)  (Proof
       shortened by Fan Zheng, 26-Jun-2016.) $)
    ply1ascl $p |- A = ( algSc ` ( 1o mPoly R ) ) $=
      ( vx vy cascl cfv c1o cmpl cvv wcel wceq cbs csca eqid fveq2d a1i cur 1on
      co ply1sca id mplsca cv wa cvsca ply1vsca oveqdr ply1mpl1 fvexd asclpropd
      con0 wn c0 cpl1 fvprc syl5eq reldmmpl ovprc2 eqtr4d pm2.61i eqtri ) ABHIZ
      JCKUBZHIZECLMZVEVGNVHFGCOIZBPIZVFPIZBVFLVJQVKQVHCVJOBCLDUCRVHCVKOVHVFCJUN
      LVFQZJUNMVHUASVHUDUERVHFUFVIMGUFLMUGFGBUHIZVFUHIZVMVNNVHCVFVMBDVLVMQUISUJ
      BTIZVFTINVHBCVOVFVLDVOQUKSVHBTULUMVHUOZBVFHVPBUPVFVPBCUQIUPDCUQURUSJCKUTV
      AVBRVCVD $.
  $}

  ${
    subrg1ascl.p $e |- P = ( Poly1 ` R ) $.
    subrg1ascl.a $e |- A = ( algSc ` P ) $.
    subrg1ascl.h $e |- H = ( R |`s T ) $.
    subrg1ascl.u $e |- U = ( Poly1 ` H ) $.
    subrg1ascl.r $e |- ( ph -> T e. ( SubRing ` R ) ) $.
    ${
      subrg1ascl.c $e |- C = ( algSc ` U ) $.
      $( The scalar injection function in a subring algebra is the same up to a
         restriction to the subring.  (Contributed by Mario Carneiro,
         4-Jul-2015.) $)
      subrg1ascl $p |- ( ph -> C = ( A |` T ) ) $=
        ( c1o cmpl co con0 eqid ply1ascl wcel 1on a1i subrgascl ) ABCOEPQZEFOHP
        QZHORUESBDEIJTKUFSORUAAUBUCMCGHLNTUD $.
    $}

    subrg1asclcl.b $e |- B = ( Base ` U ) $.
    subrg1asclcl.k $e |- K = ( Base ` R ) $.
    subrg1asclcl.x $e |- ( ph -> X e. K ) $.
    $( The scalars in a polynomial algebra are in the subring algebra iff the
       scalar value is in the subring.  (Contributed by Mario Carneiro,
       4-Jul-2015.) $)
    subrg1asclcl $p |- ( ph -> ( ( A ` X ) e. B <-> X e. T ) ) $=
      ( c1o eqid cmpl con0 ply1ascl wcel 1on a1i cps1 cfv ply1bas subrgasclcl
      co ) ABCSEUAUKZEFSHUAUKZHSIUBJULTBDEKLUCMUMTSUBUDAUEUFOGHHUGUHZCNUNTPUIQR
      UJ $.
  $}

  ${
    subrgvr1.x $e |- X = ( var1 ` R ) $.
    subrgvr1.r $e |- ( ph -> T e. ( SubRing ` R ) ) $.
    subrgvr1.h $e |- H = ( R |`s T ) $.
    $( The variables in a subring polynomial algebra are the same as the
       original ring.  (Contributed by Mario Carneiro, 5-Jul-2015.) $)
    subrgvr1 $p |- ( ph -> X = ( var1 ` H ) ) $=
      ( c0 c1o cmvr co cfv cv1 con0 eqid wcel 1on a1i vr1val subrgmvr 3eqtr4g
      fveq1d ) AIJBKLZMIJDKLZMEDNMZAIUDUEABCDJUDOUDPJOQARSGHUAUCBEFTDUFUFPTUB
      $.

    subrgvr1cl.u $e |- U = ( Poly1 ` H ) $.
    subrgvr1cl.b $e |- B = ( Base ` U ) $.
    $( The variables in a polynomial algebra are contained in every subring
       algebra.  (Contributed by Mario Carneiro, 5-Jul-2015.) $)
    subrgvr1cl $p |- ( ph -> X e. B ) $=
      ( c0 c1o cmvr co cfv wcel con0 eqid vr1val wf cmpl 1on a1i cps1 subrgmvrf
      ply1bas 0lt1o ffvelrn sylancl syl5eqel ) AGMNCOPZQZBCGHUAANBUMUBMNRUNBRAB
      CDNFUCPZFNUMSUMTNSRAUDUEIJUOTEFFUFQZBKUPTLUHUGUINBMUMUJUKUL $.
  $}

  ${
    $d P a $.  $d R a $.  $d Y a b $.  $d .0. a $.
    coe1z.p $e |- P = ( Poly1 ` R ) $.
    coe1z.z $e |- .0. = ( 0g ` P ) $.
    coe1z.y $e |- Y = ( 0g ` R ) $.
    $( The coefficient vector of 0.  (Contributed by Stefan O'Rear,
       23-Mar-2015.) $)
    coe1z $p |- ( R e. Ring -> ( coe1 ` .0. ) = ( NN0 X. { Y } ) ) $=
      ( va vb vc crg wcel cn0 c1o cv cxp cmpt con0 eqid wceq csn ccom cco1 cmap
      cfv co wa wf fconst6g adantl nn0ex 1on elexi elmap sylibr cmpl psr1baslem
      eqidd ply1mpl0 a1i ringgrp fconstmpt syl6eq fmptco cbs ply1ring coe1fval2
      mpl0 ring0cl 3syl 3eqtr4d ) BKLZDHMNHOZUAPZQZUBZHMCQZDUCUEZMCUAZPZVLHIMMN
      UDUFZVNCCVODVLVMMLZUGNMVNUHZVNWALWBWCVLNVMMUIUJMNVNUKNRULUMUNUOVLVOURVLDW
      AVSPIWACQVLWANBUPUFZBJNCRDWDSZJUQGABWDDWEEFUSNRLVLULUTBVAVHIWACVBVCIOVNTC
      URVDVLAKLDAVEUEZLVRVPTABEVFWFADWFSZFVIHVRWFABDVOVRSWGEVOSVGVJVTVQTVLHMCVB
      UTVK $.
  $}

  ${
    $d B a $.  $d F a $.  $d G a $.  $d .+b a $.
    coe1add.y $e |- Y = ( Poly1 ` R ) $.
    coe1add.b $e |- B = ( Base ` Y ) $.
    coe1add.p $e |- .+b = ( +g ` Y ) $.
    coe1add.q $e |- .+ = ( +g ` R ) $.
    $( The coefficient vector of an addition.  (Contributed by Stefan O'Rear,
       24-Mar-2015.) $)
    coe1add $p |- ( ( R e. Ring /\ F e. B /\ G e. B ) ->
      ( coe1 ` ( F .+b G ) ) = ( ( coe1 ` F ) oF .+ ( coe1 ` G ) ) ) $=
      ( va wcel co cn0 c1o ccom cfv eqid cvv crg w3a csn cxp cmpt cof cco1 cmpl
      cv cps1 ply1bas ply1plusg simp2 simp3 mpladd coeq1d cmap wfn cbs ply1basf
      wf ffn syl 3ad2ant2 3ad2ant3 wf1o c0 df1o2 nn0ex 0ex mapsnf1o3 f1of ovexd
      mp1i a1i inidm ofco eqtrd wceq ply1ring ringacl syl3an1 coe1fval2 oveq12d
      3eqtr4d ) DUAMZEAMZFAMZUBZEFCNZLOPLUIUCUDUEZQZEWKQZFWKQZBUFZNZWJUGRZEUGRZ
      FUGRZWONWIWLEFWONZWKQWPWIWJWTWKWIAPDUHNZBCDPEFXASZGDDUJRZAHXCSIUKKCDXAGHX
      BJULWFWGWHUMWFWGWHUNUOUPWIOPUQNZXDXDOBEFWKTTTWGWFEXDURZWHWGXDDUSRZEVAXEAG
      DEXFHIXFSZUTXDXFEVBVCVDWHWFFXDURZWGWHXDXFFVAXHAGDFXFHIXGUTXDXFFVBVCVEOXDW
      KVFOXDWKVAWILOPWKVGVHVIVJWKSZVKOXDWKVLVNWIOPUQVMZXJOTMWIVIVOXDVPVQVRWIWJA
      MZWQWLVSWFGUAMWGWHXKGDHVTACGEFIJWAWBLWQAGDWJWKWQSIHXIWCVCWIWRWMWSWNWOWGWF
      WRWMVSWHLWRAGDEWKWRSIHXIWCVDWHWFWSWNVSWGLWSAGDFWKWSSIHXIWCVEWDWE $.

    $( A particular coefficient of an addition.  (Contributed by Stefan O'Rear,
       23-Mar-2015.) $)
    coe1addfv $p |- ( ( ( R e. Ring /\ F e. B /\ G e. B ) /\ X e. NN0 ) ->
        ( ( coe1 ` ( F .+b G ) ) ` X ) =
          ( ( ( coe1 ` F ) ` X ) .+ ( ( coe1 ` G ) ` X ) ) ) $=
      ( wcel cn0 co cco1 cfv wceq adantr eqid crg w3a wa cof coe1add fveq1d wfn
      cvv cbs wf coe1f ffn syl 3ad2ant2 3ad2ant3 nn0ex a1i simpr syl22anc eqtrd
      fnfvof ) DUAMZEAMZFAMZUBZGNMZUCZGEFCOPQZQGEPQZFPQZBUDOZQZGVIQGVJQBOZVGGVH
      VKVEVHVKRVFABCDEFHIJKLUESUFVGVINUGZVJNUGZNUHMZVFVLVMRVEVNVFVCVBVNVDVCNDUI
      QZVIUJVNVIAHDEVQVITJIVQTZUKNVQVIULUMUNSVEVOVFVDVBVOVCVDNVQVJUJVOVJAHDFVQV
      JTJIVRUKNVQVJULUMUOSVPVGUPUQVEVFURNBVIVJUHGVAUSUT $.
  $}

  ${
    coe1sub.y $e |- Y = ( Poly1 ` R ) $.
    coe1sub.b $e |- B = ( Base ` Y ) $.
    coe1sub.p $e |- .- = ( -g ` Y ) $.
    coe1sub.q $e |- N = ( -g ` R ) $.
    $( A particular coefficient of a subtraction.  (Contributed by Stefan
       O'Rear, 23-Mar-2015.) $)
    coe1subfv $p |- ( ( ( R e. Ring /\ F e. B /\ G e. B ) /\ X e. NN0 ) ->
        ( ( coe1 ` ( F .- G ) ) ` X ) =
          ( ( ( coe1 ` F ) ` X ) N ( ( coe1 ` G ) ` X ) ) ) $=
      ( wcel cn0 cco1 cfv co wceq adantr eqid crg w3a wa cplusg simpl1 ply1ring
      cgrp ringgrp syl grpsubcl simpl3 simpr coe1addfv syl31anc 3ad2ant1 simpl2
      syl3an1 grpnpcan syl3anc fveq2d fveq1d eqtr3d wb coe1f 3ad2ant2 ffvelrnda
      cbs wf 3ad2ant3 grpsubadd syl13anc mpbird eqcomd ) BUAMZCAMZDAMZUBZGNMZUC
      ZGCOPZPZGDOPZPZFQZGCDEQZOPZPZVSWDWGRZWGWCBUDPZQZWARZVSGWEDHUDPZQZOPZPZWJW
      AVSVNWEAMZVPVRWOWJRVNVOVPVRUEVQWPVRVNHUGMZVOVPWPVNHUAMWQHBIUFHUHUIZAHECDJ
      KUJUQZSVNVOVPVRUKZVQVRULAWIWLBWEDGHIJWLTZWITZUMUNVSGWNVTVSWMCOVSWQVOVPWMC
      RVQWQVRVNVOWQVPWRUOSVNVOVPVRUPWTAWLHECDJXAKURUSUTVAVBVSBUGMZWABVGPZMWCXDM
      WGXDMWHWKVCVQXCVRVNVOXCVPBUHUOSVQNXDGVTVOVNNXDVTVHVPVTAHBCXDVTTJIXDTZVDVE
      VFVQNXDGWBVPVNNXDWBVHVOWBAHBDXDWBTJIXEVDVIVFVQNXDGWFVQWPNXDWFVHWSWFAHBWEX
      DWFTJIXEVDUIVFXDWIBFWAWCWGXEXBLVJVKVLVM $.
  $}

  ${
    $d A a $.  $d X a $.
    $( An equivalence for ~ coe1mul2 .  (Contributed by Stefan O'Rear,
       25-Mar-2015.) $)
    coe1mul2lem1 $p |- ( ( A e. NN0 /\ X e. ( NN0 ^m 1o ) ) ->
          ( X oR <_ ( 1o X. { A } ) <-> ( X ` (/) ) e. ( 0 ... A ) ) ) $=
      ( va cn0 wcel c1o co wa csn cxp cle wbr c0 con0 a1i cmpt adantl fconstmpt
      wceq wb cmap cofr cfv cc0 cfz cvv 1on fvexd simpll df1o2 nn0ex mapsnconst
      wral cv 0ex syl6eq ofrfval2 wne 1n0 r19.3rzv mp1i wf elmapi 0lt1o ffvelrn
      sylancl biantrurd fznn0 adantr bitr4d 3bitr2d ) ADEZBDFUAGEZHZBFAIJZKUBLM
      BUCZAKLZCFUMZVQVPUDAUEGEZVNCFVPAKBVONUFDFNEVNUGOVNCUNFEZHMBUHVLVMVTUIVNBF
      VPIJZCFVPPVMBWASVLDFBMUJUKUOULQCFVPRUPVOCFAPSVNCFAROUQFMURVQVRTVNUSVQCFUT
      VAVNVQVPDEZVQHZVSVNWBVQVMWBVLVMFDBVBMFEWBBDFVCVDFDMBVEVFQVGVLVSWCTVMVPAVH
      VIVJVK $.

    $d H c $.  $d c d k $.
    coe1mul2lem2.h $e |- H = { d e. ( NN0 ^m 1o ) |
          d oR <_ ( 1o X. { k } ) } $.
    $( An equivalence for ~ coe1mul2 .  (Contributed by Stefan O'Rear,
       25-Mar-2015.) $)
    coe1mul2lem2 $p |- ( k e. NN0 ->
        ( c e. H |-> ( c ` (/) ) ) : H -1-1-onto-> ( 0 ... k ) ) $=
      ( cv cn0 wcel c1o cmap co c0 cfv cmpt cima wf1o wss ax-mp crab wceq df1o2
      cres cc0 cfz wf1 nn0ex 0ex eqid mapsnf1o2 csn cxp cle cofr ssrab2 eqsstri
      f1of1 wbr f1ores sylancr ccnv coe1mul2lem1 rabbidva fveq1 cbvrabv syl6eqr
      a1i eleq1d mptpreima 3eqtr4g imaeq2d f1ofo fz0ssnn0 foimacnv mp2an syl6eq
      wfo f1oeq3d wb resmpt f1oeq1 3syl bitrd mpbid ) AFZGHZBCGIJKZLCFZMZNZBOZW
      IBUBZPZBUCWDUDKZCBWHNZPZWEWFGWIUEZBWFQZWLWFGWIPZWPCGIWILUAUFUGWIUHZUIZWFG
      WIUPRWQWEBDFZIWDUJUKULUMUQZDWFSZWFEXBDWFUNUOVFZWFGBWIURUSWEWLBWMWKPZWOWEW
      JWMBWKWEWJWIWIUTWMOZOZWMWEBXFWIWEXCWHWMHZCWFSZBXFWEXCLXAMZWMHZDWFSXIWEXBX
      KDWFWDXAVAVBXHXKCDWFWGXATWHXJWMLWGXAVCVGVDVEECWFWHWMWIWSVHVIVJWFGWIVPZWMG
      QXGWMTWRXLWTWFGWIVKRWDVLWFGWMWIVMVNVOVQWEWQWKWNTXEWOVRXDCWFBWHVSBWMWKWNVT
      WAWBWC $.
  $}

  ${
    $d a b c d k x $.  $d b c k x B $.  $d b c k x F $.  $d b c k x .x. $.
    $d b c k x G $.  $d b c k x R $.  $d k .xb $.
    coe1mul2.s $e |- S = ( PwSer1 ` R ) $.
    coe1mul2.t $e |- .xb = ( .r ` S ) $.
    coe1mul2.u $e |- .x. = ( .r ` R ) $.
    coe1mul2.b $e |- B = ( Base ` S ) $.
    $( The coefficient vector of multiplication in the univariate power series
       ring.  (Contributed by Stefan O'Rear, 25-Mar-2015.) $)
    coe1mul2 $p |- ( ( R e. Ring /\ F e. B /\ G e. B ) ->
        ( coe1 ` ( F .xb G ) ) = ( k e. NN0 |-> ( R gsum ( x e. ( 0 ... k ) |->
                ( ( ( coe1 ` F ) ` x ) .x.
                  ( ( coe1 ` G ) ` ( k - x ) ) ) ) ) ) ) $=
      ( vc wcel co cn0 c1o cfv eqid vd vb va crg w3a csn cxp cmpt ccom cle cofr
      cv wbr cmap crab cmin cof cgsu cco1 cc0 cfz fconst6g nn0ex con0 1on elexi
      wf elmap sylibr adantl eqidd cmps psr1bas2 psr1mulr psr1baslem psrmulfval
      simp2 simp3 wceq breq2 rabbidv oveq1 fveq2d oveq2d fmptco psr1ring ringcl
      mpteq12dv syl3an1 coe1fval3 syl wa c0 cbs cfn c0g ccmn simpl1 ringcmn a1i
      fzfi simpll1 simpll2 coe1f2 elfznn0 ffvelrnd simpll3 syl3anc fmptd cfsupp
      fznn0sub cvv wfun csupp wss mptex fvex 3pm3.2i cdm suppssdm dmmptss sstri
      funmpt pm3.2i suppssfifsupp mp2an wf1o coe1mul2lem2 gsumf1o breq1 simprbi
      elrab wb simplr elrabi syl2anc oveq12d eqtrd eqtr4d mpteq2dva mpbid fveq2
      coe1mul2lem1 oveq2 fvcoe1 df1o2 0ex mapsnconst fvexd ofc12 coe1fv 3eqtr4d
      vex ) CUDOZHBOZIBOZUEZHIEPZGQRGULZUFUGZUHZUIZGQCNUAULZUUTUJUKZUMZUAQRUNPZ
      UOZNULZHSZUUTUVHUPUQZPZISZFPZUHZURPZUHUURUSSZGQCAUTUUSVAPZAULZHUSSZSZUUSU
      VRUPPZIUSSZSZFPZUHZURPZUHUUQGUBQUVFUUTCNUVCUBULZUVDUMZUAUVFUOZUVIUWGUVHUV
      JPZISZFPZUHZURPUVOUVAUURUUSQOZUUTUVFOZUUQUWNRQUUTVGUWORUUSQVBQRUUTVCRVDVE
      VFVHVIVJUUQUVAVKUUQNUABUVFCRCVLPZEFUCUBHIRUWPTZBCDUWPJMUWQVMLCUWPEDJUWQKV
      NUCVOUUNUUOUUPVQUUNUUOUUPVRVPUWGUUTVSZUWMUVNCURUWRNUWIUWLUVGUVMUWRUWHUVEU
      AUVFUWGUUTUVCUVDVTWAUWRUWKUVLUVIFUWRUWJUVKIUWGUUTUVHUVJWBWCWDWHWDWEUUQUUR
      BOZUVPUVBVSUUNDUDOUUOUUPUWSCDJWFBDEHIMKWGWIGUVPBDCUURUVAUVPTMJUVATWJWKUUQ
      GQUWFUVOUUQUWNWLZUWFCUWENUVGWMUVHSZUHZUIZURPUVOUWTUVQCWNSZUVGUWECUXBWOCWP
      SZUXDTZUXETUWTUUNCWQOUUNUUOUUPUWNWRCWSWKUVQWOOZUWTUTUUSXAZWTUWTAUVQUWDUXD
      UWEUWTUVRUVQOZWLZUUNUVTUXDOUWCUXDOUWDUXDOUUNUUOUUPUWNUXIXBUXJQUXDUVRUVSUX
      JUUOQUXDUVSVGUUNUUOUUPUWNUXIXCUVSBDCHUXDUVSTZMJUXFXDWKUXIUVRQOUWTUVRUUSXE
      VJXFUXJQUXDUWAUWBUXJUUPQUXDUWBVGUUNUUOUUPUWNUXIXGUWBBDCIUXDUWBTZMJUXFXDWK
      UXIUWAQOUWTUVRUTUUSXKVJXFUXDCFUVTUWCUXFLWGXHUWETZXIUWEUXEXJUMZUWTUWEXLOZU
      WEXMZUXEXLOZUEUXGUWEUXEXNPZUVQXOZWLUXNUXOUXPUXQAUVQUWDUVQWOUXHVFXPAUVQUWD
      YCCWPXQXRUXGUXSUXHUXRUWEXSUVQUWEUXEXTAUVQUWDUWEUXMYAYBYDUVQUWEXLXLUXEYEYF
      WTUWNUVGUVQUXBYGUUQGUVGNUAUVGTYHVJYIUWTUXCUVNCURUWTUXCNUVGUXAUVSSZUUSUXAU
      PPZUWBSZFPZUHUVNUWTNAUVGUVQUXAUWDUYCUXBUWEUWTUVHUVGOZWLZUVHUUTUVDUMZUXAUV
      QOZUYDUYFUWTUYDUVHUVFOZUYFUVEUYFUAUVHUVFUVCUVHUUTUVDYJYLYKVJUYEUWNUYHUYFU
      YGYMUUQUWNUYDYNUYDUYHUWTUVEUAUVHUVFYOVJZUUSUVHUUCYPUUAZUWTUXBVKUWTUWEVKUV
      RUXAVSZUVTUXTUWCUYBFUVRUXAUVSUUBUYKUWAUYAUWBUVRUXAUUSUPUUDWCYQWEUWTNUVGUV
      MUYCUYEUVIUXTUVLUYBFUYEUUOUYHUVIUXTVSUUNUUOUUPUWNUYDXCUYIUVSHBUVHUXKUUEYP
      UYEUVLRUYAUFUGZISZUYBUYEUVKUYLIUYEUVKUUTRUXAUFUGZUVJPUYLUYEUVHUYNUUTUVJUY
      EUYHUVHUYNVSUYIQRUVHWMUUFVCUUGUUHWKWDUYERUUSUXAUPVDXLXLRVDOUYEVEWTUUSXLOU
      YEGUUMWTUYEWMUVHUUIUUJYRWCUYEUUPUYAQOZUYBUYMVSUUNUUOUUPUWNUYDXGUYEUYGUYOU
      YJUXAUTUUSXKWKUWBIUYABUXLUUKYPYSYQYTYSWDYRYTUUL $.
  $}

  ${
    $d k x F $.  $d k x G $.  $d k x R $.  $d k .xb $.  $d k x .x. $.
    coe1mul.s $e |- Y = ( Poly1 ` R ) $.
    coe1mul.t $e |- .xb = ( .r ` Y ) $.
    coe1mul.u $e |- .x. = ( .r ` R ) $.
    coe1mul.b $e |- B = ( Base ` Y ) $.
    $( The coefficient vector of multiplication in the univariate polynomial
       ring.  (Contributed by Stefan O'Rear, 25-Mar-2015.) $)
    coe1mul $p |- ( ( R e. Ring /\ F e. B /\ G e. B ) ->
        ( coe1 ` ( F .xb G ) ) = ( k e. NN0 |-> ( R gsum ( x e. ( 0 ... k ) |->
                ( ( ( coe1 ` F ) ` x ) .x.
                  ( ( coe1 ` G ) ` ( k - x ) ) ) ) ) ) ) $=
      ( wcel cfv co cco1 cv eqid c1o crg cps1 cbs cn0 cc0 cfz cmin cmpt cgsu id
      wceq ply1bascl cmps cmpl ply1mulr mplmulr psr1mulr eqtr4i coe1mul2 syl3an
      cmulr ) CUANZVBGBNGCUBOZUCOZNHBNHVDNGHDPQOFUDCAUEFRZUFPARZGQOOVEVFUGPHQOO
      EPUHUIPUHUKVBUJBICGJMULBICHJMULAVDCVCDEFGHVCSZDTCUMPZVAOVCVAOZCVHDTTCUNPZ
      VJSZVHSZCVJDIJVKKUOUPCVHVIVCVGVLVISUQURLVDSUSUT $.
  $}

  ${
    ply1moncl.p $e |- P = ( Poly1 ` R ) $.
    ply1moncl.x $e |- X = ( var1 ` R ) $.
    ply1moncl.n $e |- N = ( mulGrp ` P ) $.
    ply1moncl.e $e |- .^ = ( .g ` N ) $.
    ply1moncl.b $e |- B = ( Base ` P ) $.
    $( Closure of the expression for a univariate primitive monomial.
       (Contributed by AV, 14-Aug-2019.) $)
    ply1moncl $p |- ( ( R e. Ring /\ D e. NN0 ) -> ( D .^ X ) e. B ) $=
      ( crg wcel cn0 wa cmnd co ply1ring adantr ringmgp syl simpr vr1cl syl3anc
      mgpbas mulgnn0cl ) DMNZBONZPFQNZUIGANZBGERANUHUJUIUHCMNUJCDHSCFJUAUBTUHUI
      UCUHUKUIACDGIHLUDTAEFBGACFJLUFKUGUE $.
  $}

  ${
    ply1tmcl.k $e |- K = ( Base ` R ) $.
    ply1tmcl.p $e |- P = ( Poly1 ` R ) $.
    ply1tmcl.x $e |- X = ( var1 ` R ) $.
    ply1tmcl.m $e |- .x. = ( .s ` P ) $.
    ply1tmcl.n $e |- N = ( mulGrp ` P ) $.
    ply1tmcl.e $e |- .^ = ( .g ` N ) $.
    ply1tmcl.b $e |- B = ( Base ` P ) $.
    $( Closure of the expression for a univariate polynomial term.
       (Contributed by Stefan O'Rear, 27-Mar-2015.)  (Proof shortened by AV,
       25-Nov-2019.) $)
    ply1tmcl $p |- ( ( R e. Ring /\ C e. K /\ D e. NN0 ) ->
        ( C .x. ( D .^ X ) ) e. B ) $=
      ( crg wcel co cn0 w3a clmod ply1lmod 3ad2ant1 simp2 ply1moncl 3adant2 cid
      cfv ply1sca2 cbs c1 df-base strfvi lmodvscl syl3anc ) ERSZBHSZCUASZUBDUCS
      ZUSCJGTZASZBVBFTASURUSVAUTDELUDUEURUSUTUFURUTVCUSACDEGIJLMOPQUGUHBFEUIUJH
      ADVBQDELUKNEULUMHUNKUOUPUQ $.
  $}

  ${
    $d a b x y .0. $.  $d b x y C $.  $d a b x y D $.  $d x F $.  $d b x y K $.
    $d x y .^ $.  $d x y A $.  $d x y N $.  $d x y P $.  $d x y X $.  $d x Y $.
    $d x y ph $.  $d a b x y R $.  $d x y .x. $.  $d x y .X. $.  $d x .xb $.
    coe1tm.z $e |- .0. = ( 0g ` R ) $.
    coe1tm.k $e |- K = ( Base ` R ) $.
    coe1tm.p $e |- P = ( Poly1 ` R ) $.
    coe1tm.x $e |- X = ( var1 ` R ) $.
    coe1tm.m $e |- .x. = ( .s ` P ) $.
    coe1tm.n $e |- N = ( mulGrp ` P ) $.
    coe1tm.e $e |- .^ = ( .g ` N ) $.
    $( Coefficient vector of a polynomial term.  (Contributed by Stefan O'Rear,
       27-Mar-2015.) $)
    coe1tm $p |- ( ( R e. Ring /\ C e. K /\ D e. NN0 ) ->
        ( coe1 ` ( C .x. ( D .^ X ) ) ) =
          ( x e. NN0 |-> if ( x = D , C , .0. ) ) ) $=
      ( c1o wceq vb vy va crg wcel cn0 w3a co cco1 cfv cv csn cxp cmpt ccom cc0
      c0 cif cbs eqid ply1tmcl coe1fval2 syl cmap fconst6g nn0ex con0 1on elexi
      wf elmap sylibr adantl cmvr cmpl cmgp cmg cur cvv mgpbas a1i cps1 ply1bas
      eqidd wss wa cplusg ovexd cmulr mgpplusg ply1mulr eqtr3i oveqdr mulgpropd
      ssv 3ad2ant1 vr1val oveq123d oveq2d psr1baslem simp1 0lt1o simp3 ply1vsca
      mplcoe3 elsni eleq2s iftrued mpteq2dva fconstmpt syl6eqr 3ad2ant3 eqeltrd
      df1o2 simp2 mplmon2 3eqtr2d eqeq1 ifbid fmptco adantr eqeq2d vex fvconst2
      fveq1 simpl3 fvconst2g sylancl eqeq12d syl5ib xpeq2d impbid1 bitrd 3eqtrd
      mp1i sneq ) EUDUEZBHUEZCUFUEZUGZBCJGUHZFUHZUIUJZUUBAUFSAUKZULZUMZUNZUOZAU
      FUUFUASUAUKZUQTZCUPURZUNZTZBKURZUNAUFUUDCTZBKURZUNYTUUBDUSUJZUEUUCUUHTUUQ
      BCDEFGHIJMNOPQRUUQUTZVAAUUCUUQDEUUBUUGUUCUTUURNUUGUTVBVCYTAUBUFUFSVDUHZUU
      FUBUKZUULTZBKURZUUNUUGUUBUUDUFUEZUUFUUSUEZYTUVCSUFUUFVJUVDSUUDUFVEUFSUUFV
      FSVGVHVIZVKVLVMYTUUGWDYTUUBBCUQSEVNUHZUJZSEVOUHZVPUJZVQUJZUHZFUHBUBUUSUVA
      EVRUJZKURUNZFUHUBUUSUVBUNYTUUAUVKBFYTCCJUVGGUVJYQYRGUVJTYSYQAUBUUQGUVJIUV
      IVSRUVJUTZUUQIUSUJTYQUUQDIQUURVTWAUUQUVIUSUJTYQUUQUVHUVIUVIUTZDEEWBUJZUUQ
      NUVPUTUURWCVTWAUUQVSWEYQUUQWOWAYQUUDVSUEUUTVSUEWFZWFUUDUUTIWGUJZWHYQUVQAU
      BUVRUVIWGUJZUVRUVSTYQDWIUJZUVRUVSDUVTIQUVTUTZWJUVHUVTUVIUVOEUVHUVTDNUVHUT
      ZUWAWKWJWLWAWMWNWPYTCWDJUVGTYTEJOWQWAWRWSYTUVMUVKBFYTUBUUSUVHEUVLUCUAUVJU
      VISCUVFVGUQKUWBUCWTZLUVLUTZSVGUEYTVHWAZUVOUVNUVFUTYQYRYSXAZUQSUEZYTXBWAYQ
      YRYSXCXEWSYTUBHUUSUVHEFUVLUCSUULVGBKUWBEUVHFDNUWBPXDUWCUWDLMUWEUWFYTUULSC
      ULZUMZUUSYTUULUASCUNUWIYTUASUUKCUUISUEZUUKCTYTUWJUUJCUPUUJUUIUQULSUUIUQXF
      XNXGXHVMXIUASCXJXKZYSYQUWIUUSUEZYRYSSUFUWIVJUWLSCUFVEUFSUWIVFUVEVKVLXLXMY
      QYRYSXOXPXQUUTUUFTUVAUUMBKUUTUUFUULXRXSXTYTAUFUUNUUPYTUVCWFZUUMUUOBKUWMUU
      MUUFUWITZUUOUWMUULUWIUUFYTUULUWITUVCUWKYAYBUWMUWNUUOUWNUQUUFUJZUQUWIUJZTU
      WMUUOUQUUFUWIYEUWMUWOUUDUWPCUWGUWOUUDTUWMXBSUUDUQAYCYDYOUWMYSUWGUWPCTYQYR
      YSUVCYFXBSCUQUFYGYHYIYJUUOUUEUWHSUUDCYPYKYLYMXSXIYN $.

    ${
      $( Nonzero coefficient of a polynomial term.  (Contributed by Stefan
         O'Rear, 27-Mar-2015.) $)
      coe1tmfv1 $p |- ( ( R e. Ring /\ C e. K /\ D e. NN0 ) ->
          ( ( coe1 ` ( C .x. ( D .^ X ) ) ) ` D ) = C ) $=
        ( vx wcel cn0 crg w3a co cco1 cfv cv wceq cif coe1tm fveq1d simp3 simp2
        cmpt iftrue eqid fvmptg syl2anc eqtrd ) DUASZAGSZBTSZUBZBABIFUCEUCUDUEZ
        UEBRTRUFBUGZAJUHZUMZUEZAVBBVCVFRABCDEFGHIJKLMNOPQUIUJVBVAUTVGAUGUSUTVAU
        KUSUTVAULRBVEATGVFVDAJUNVFUOUPUQUR $.

      coe1tmfv2.r $e |- ( ph -> R e. Ring ) $.
      coe1tmfv2.c $e |- ( ph -> C e. K ) $.
      coe1tmfv2.d $e |- ( ph -> D e. NN0 ) $.
      coe1tmfv2.f $e |- ( ph -> F e. NN0 ) $.
      coe1tmfv2.q $e |- ( ph -> D =/= F ) $.
      $( Zero coefficient of a polynomial term.  (Contributed by Stefan O'Rear,
         27-Mar-2015.) $)
      coe1tmfv2 $p |- ( ph ->
        ( ( coe1 ` ( C .x. ( D .^ X ) ) ) ` F ) = .0. ) $=
        ( vx co cco1 cfv cn0 cv wceq cif cmpt crg coe1tm syl3anc fveq1d ring0cl
        wcel syl ifcld eqeq1 ifbid fvmptg syl2anc necomd neneqd iffalsed 3eqtrd
        eqid ) AHBCKGUFFUFUGUHZUHHUEUIUEUJZCUKZBLULZUMZUHZHCUKZBLULZLAHVKVOAEUN
        USZBIUSCUIUSVKVOUKTUAUBUEBCDEFGIJKLMNOPQRSUOUPUQAHUIUSVRIUSVPVRUKUCAVQB
        LIUAAVSLIUSTIELNMURUTVAUEHVNVRUIIVOVLHUKVMVQBLVLHCVBVCVOVJVDVEAVQBLAHCA
        CHUDVFVGVHVI $.
    $}

    coe1tmmul.b $e |- B = ( Base ` P ) $.
    coe1tmmul.t $e |- .xb = ( .r ` P ) $.
    coe1tmmul.u $e |- .X. = ( .r ` R ) $.
    coe1tmmul.a $e |- ( ph -> A e. B ) $.
    coe1tmmul.r $e |- ( ph -> R e. Ring ) $.
    coe1tmmul.c $e |- ( ph -> C e. K ) $.
    coe1tmmul.d $e |- ( ph -> D e. NN0 ) $.
    $( Coefficient vector of a polynomial multiplied on the right by a term.
       (Contributed by Stefan O'Rear, 27-Mar-2015.) $)
    coe1tmmul2 $p |- ( ph -> ( coe1 ` ( A .xb ( C .x. ( D .^ X ) ) ) ) =
          ( x e. NN0 |-> if ( D <_ x ,
              ( ( ( coe1 ` A ) ` ( x - D ) ) .X. C ) , .0. ) ) ) $=
      ( vy co cco1 cfv cn0 cc0 cfz cmin cmpt cgsu cle wbr cif crg wcel ply1tmcl
      cv wceq syl3anc coe1mul eqeq2 cvv cmnd adantr ringmnd syl ovex a1i simprr
      wa wb simprl nn0sub syl2anc mpbid cr nn0re ad2antrl nn0red subge02d fznn0
      nn0ge0d mpbir2and ad2antrr wf eqid coe1f elfznn0 adantl ffvelrnd fznn0sub
      ringcl fmptd csn eldifi wne eldifsn simplrl nn0cnd cc nncand eqcomd oveq2
      cdif eqeq2d syl5ibrcom necon3d impr sylan2b coe1tmfv2 oveq2d ringrz eqtrd
      sylan2 suppss2 gsumpt fveq2 fveq2d oveq12d fvmpt coe1tmfv1 3eqtrd anassrs
      wn ad2antll ad2antlr clt ltnled mpbird mpteq2dva lelttrd sylancl ifbothda
      gtned gsumz ) ACEFOLULJULZIULUMUNZBUOHUKUPBVGZUQULZUKVGZCUMUNZUNZUUHUUJUR
      ULZUUFUMUNZUNZKULZUSZUTULZUSZBUOFUUHVAVBZUUHFURULZUUKUNZEKULZPVCZUSAHVDVE
      ZCDVEZUUFDVEZUUGUUSVHUHUGAUVEEMVEZFUOVEZUVGUHUIUJDEFGHJLMNORSTUAUBUCUDVFV
      IZUKDHIKBCUUFGSUEUFUDVJVIABUOUURUVDUUTUURUVCVHZUURPVHUURUVDVHAUUHUOVEZVTZ
      UVCPUVCUVDUURVKPUVDUURVKAUVLUUTUVKAUVLUUTVTZVTZUURUVAUUQUNZUVBUUHUVAURULZ
      UUNUNZKULZUVCUVOUUIMUUQHVLUVAPRQUVOUVEHVMVEZAUVEUVNUHVNZHVOZVPUUIVLVEZUVO
      UPUUHUQVQZVRZUVOUVAUUIVEZUVAUOVEZUVAUUHVAVBZUVOUUTUWGAUVLUUTVSUVOUVIUVLUU
      TUWGWAAUVIUVNUJVNZAUVLUUTWBZFUUHWCWDWEUVOUPFVAVBUWHUVOFUWIWLUVOUUHFUVLUUH
      WFVEZAUUTUUHWGZWHAFWFVEZUVNAFUJWIZVNWJWEUVLUWFUWGUWHVTWAAUUTUVAUUHWKWHWMZ
      UVOUKUUIUUPMUUQUVOUUJUUIVEZVTZUVEUULMVEZUUOMVEUUPMVEAUVEUVNUWPUHWNZUWQUOM
      UUJUUKAUOMUUKWOZUVNUWPAUVFUWTUGUUKDGHCMUUKWPUDSRWQVPZWNUWPUUJUOVEZUVOUUJU
      UHWRZWSWTZUWQUOMUUMUUNAUOMUUNWOZUVNUWPAUVGUXEUVJUUNDGHUUFMUUNWPUDSRWQVPWN
      UWPUUMUOVEZUVOUUJUPUUHXAZWSWTMHKUULUUORUFXBVIUUQWPZXCUVOUUIUUPUKVLUVAXDZP
      UVOUUJUUIUXIXNVEZVTZUUPUULPKULZPUXKUUOPUULKUXKEFGHJLUUMMNOPQRSTUAUBUCAUVE
      UVNUXJUHWNAUVHUVNUXJUIWNAUVIUVNUXJUJWNUXJUXFUVOUXJUWPUXFUUJUUIUXIXEZUXGVP
      WSUXJUVOUWPUUJUVAXFZVTFUUMXFZUUJUUIUVAXGUVOUWPUXNUXOUWQFUUMUUJUVAUWQUUJUV
      AVHZFUUMVHZUUJUUHUUMURULZVHUWQUXRUUJUWQUUHUUJUWQUUHAUVLUUTUWPXHXIUWPUUJXJ
      VEUVOUWPUUJUXCXIWSXKXLUXQUVAUXRUUJFUUMUUHURXMXOXPXQXRXSXTYAUXJUVOUWPUXLPV
      HZUXMUWQUVEUWRUXSUWSUXDMHKUULPRUFQYBZWDYDYCUWEYEYFUVOUWFUVPUVSVHUWOUKUVAU
      UPUVSUUIUUQUXPUULUVBUUOUVRKUUJUVAUUKYGUXPUUMUVQUUNUUJUVAUUHURXMYHYIUXHUVB
      UVRKVQYJVPUVOUVREUVBKUVOUVRFUUNUNZEUVOUVQFUUNUVOUUHFUVOUUHUWJXIUVOFUWIXIX
      KYHUVOUVEUVHUVIUYAEVHUWAAUVHUVNUIVNUWIEFGHJLMNOPQRSTUAUBUCYKVIYCYAYLYMUVM
      UUTYNZVTZUURHUKUUIPUSZUTULZPUYCUUQUYDHUTUYCUKUUIUUPPUVMUYBUWPUUPPVHUVMUYB
      UWPVTZVTZUUPUXLPUYGUUOPUULKUYGEFGHJLUUMMNOPQRSTUAUBUCAUVEUVLUYFUHWNZAUVHU
      VLUYFUIWNAUVIUVLUYFUJWNUWPUXFUVMUYBUXGYOUYGUUMFUWPUUMWFVEUVMUYBUWPUUMUXGW
      IYOZUYGUUMUUHFUYIUVLUWKAUYFUWLYPZAUWMUVLUYFUWNWNZUYGUPUUJVAVBUUMUUHVAVBUY
      GUUJUWPUXBUVMUYBUXCYOZWLUYGUUHUUJUYJUWPUUJWFVEUVMUYBUWPUUJUXCWIYOWJWEUYGU
      UHFYQVBUYBUVMUYBUWPWBUYGUUHFUYJUYKYRYSUUAUUDXTYAUYGUVEUWRUXSUYHUYGUOMUUJU
      UKAUWTUVLUYFUXAWNUYLWTUXTWDYCYMYTYAAUYEPVHZUVLUYBAUVTUWCUYMAUVEUVTUHUWBVP
      UWDUUIUKHVLPQUUEUUBWNYCUUCYTYC $.

    $( Coefficient vector of a polynomial multiplied on the left by a term.
       (Contributed by Stefan O'Rear, 29-Mar-2015.) $)
    coe1tmmul $p |- ( ph -> ( coe1 ` ( ( C .x. ( D .^ X ) ) .xb A ) ) =
          ( x e. NN0 |-> if ( D <_ x ,
              ( C .X. ( ( coe1 ` A ) ` ( x - D ) ) ) , .0. ) ) ) $=
      ( vy co cco1 cfv cn0 cc0 cfz cmin cmpt cgsu cle wbr cif crg wcel ply1tmcl
      cv wceq syl3anc coe1mul wa eqeq2 cvv cmnd ad2antrr ringmnd ovexd simpr wb
      syl fznn0 ad2antlr mpbir2and wf eqid coe1f adantr elfznn0 syl2an fznn0sub
      ffvelrn ringcl fmptd csn cdif ad3antrrr eldifi adantl wne eldifsni necomd
      coe1tmfv2 oveq1d ringlz syl2anc sylan2 adantlr eqtrd suppss2 gsumpt fveq2
      oveq2 fveq2d oveq12d fvmpt coe1tmfv1 wn elfzle2 breq1 syl5ibrcom necon3bd
      ovex imp an32s mpteq2dva oveq2d gsumz ifbothda ) AEFOLULJULZCIULUMUNZBUOH
      UKUPBVGZUQULZUKVGZYIUMUNZUNZYKYMURULZCUMUNZUNZKULZUSZUTULZUSZBUOFYKVAVBZE
      YKFURULZYQUNZKULZPVCZUSAHVDVEZYIDVEZCDVEZYJUUBVHUHAUUHEMVEZFUOVEZUUIUHUIU
      JDEFGHJLMNORSTUAUBUCUDVFVIZUGUKDHIKBYICGSUEUFUDVJVIABUOUUAUUGUUCUUAUUFVHU
      UAPVHUUAUUGVHAYKUOVEZVKZUUFPUUFUUGUUAVLPUUGUUAVLUUOUUCVKZUUAFYTUNZUUFUUPY
      LMYTHVMFPRQUUPUUHHVNVEZAUUHUUNUUCUHVOHVPZVTUUPUPYKUQVQZUUPFYLVEZUULUUCAUU
      LUUNUUCUJVOUUOUUCVRUUNUVAUULUUCVKVSAUUCFYKWAWBWCZUUOYLMYTWDUUCUUOUKYLYSMY
      TUUOYMYLVEZVKZUUHYOMVEZYRMVEZYSMVEAUUHUUNUVCUHVOZUUOUOMYNWDZYMUOVEZUVEUVC
      AUVHUUNAUUIUVHUUMYNDGHYIMYNWEUDSRWFVTWGYMYKWHZUOMYMYNWKWIUUOUOMYQWDZYPUOV
      EUVFUVCAUVKUUNAUUJUVKUGYQDGHCMYQWEUDSRWFVTWGYMUPYKWJUOMYPYQWKWIZMHKYOYRRU
      FWLVIYTWEZWMWGUUPYLYSUKVMFWNZPUUPYMYLUVNWOVEZVKZYSPYRKULZPUVPYOPYRKUVPEFG
      HJLYMMNOPQRSTUAUBUCAUUHUUNUUCUVOUHWPAUUKUUNUUCUVOUIWPAUULUUNUUCUVOUJWPUVO
      UVIUUPUVOUVCUVIYMYLUVNWQZUVJVTWRUVOFYMWSZUUPUVOYMFYMYLFWTXAWRXBXCUUOUVOUV
      QPVHZUUCUVOUUOUVCUVTUVRUVDUUHUVFUVTUVGUVLMHKYRPRUFQXDXEZXFXGXHUUTXIXJUUPU
      UQFYNUNZUUEKULZUUFUUPUVAUUQUWCVHUVBUKFYSUWCYLYTYMFVHZYOUWBYRUUEKYMFYNXKUW
      DYPUUDYQYMFYKURXLXMXNUVMUWBUUEKYBXOVTUUPUWBEUUEKAUWBEVHZUUNUUCAUUHUUKUULU
      WEUHUIUJEFGHJLMNOPQRSTUAUBUCXPVIVOXCXHXHUUOUUCXQZVKZUUAHUKYLPUSZUTULZPUWG
      YTUWHHUTUWGUKYLYSPUWGUVCVKZYSUVQPUWJYOPYRKUWJEFGHJLYMMNOPQRSTUAUBUCAUUHUU
      NUWFUVCUHWPAUUKUUNUWFUVCUIWPAUULUUNUWFUVCUJWPUVCUVIUWGUVJWRUUOUVCUWFUVSUV
      DUWFUVSUVDUUCFYMUVDUUCFYMVHYMYKVAVBZUVCUWKUUOYMUPYKXRWRFYMYKVAXSXTYAYCYDX
      BXCUUOUVCUVTUWFUWAXGXHYEYFUWGUURYLVMVEUWIPVHAUURUUNUWFAUUHUURUHUUSVTVOUWG
      UPYKUQVQYLUKHVMPQYGXEXHYHYEXH $.

    coe1tmmul2fv.y $e |- ( ph -> Y e. NN0 ) $.
    $( Function value of a right-multiplication by a term in the shifted
       domain.  (Contributed by Stefan O'Rear, 27-Mar-2015.) $)
    coe1tmmul2fv $p |- ( ph -> ( ( coe1 ` ( A .xb ( C .x. ( D .^ X ) ) ) ) `
            ( D + Y ) ) = ( ( ( coe1 ` A ) ` Y ) .X. C ) ) $=
      ( vx caddc cco1 cfv cn0 cle wbr cmin cif cmpt coe1tmmul2 fveq1d wcel wceq
      co cv nn0addcld breq2 oveq1 fveq2d oveq1d ifbieq1d eqid ovex c0g cvv fvex
      eqeltri ifex fvmpt syl cr nn0red nn0addge1 syl2anc iftrued nn0cnd pncan2d
      3eqtrd eqtrd ) AEOUMVFZBDENKVFIVFHVFUNUOZUOWLULUPEULVGZUQURZWNEUSVFZBUNUO
      ZUOZDJVFZPUTZVAZUOZOWQUOZDJVFZAWLWMXAAULBCDEFGHIJKLMNPQRSTUAUBUCUDUEUFUGU
      HUIUJVBVCAXBEWLUQURZWLEUSVFZWQUOZDJVFZPUTZXHXDAWLUPVDXBXIVEAEOUJUKVHULWLW
      TXIUPXAWNWLVEZWOXEWSXHPWNWLEUQVIXJWRXGDJXJWPXFWQWNWLEUSVJVKVLVMXAVNXEXHPX
      GDJVOPGVPUOVQQGVPVRVSVTWAWBAXEXHPAEWCVDOUPVDXEAEUJWDUKEOWEWFWGAXGXCDJAXFO
      WQAEOAEUJWHAOUKWHWIVKVLWJWK $.
  $}

  ${
    $d x A $.  $d x D $.  $d x N $.  $d x P $.  $d x R $.  $d x X $.  $d x Y $.
    $d x .^ $.  $d x .0. $.  $d x ph $.  $d x .x. $.
    coe1pwmul.z $e |- .0. = ( 0g ` R ) $.
    coe1pwmul.p $e |- P = ( Poly1 ` R ) $.
    coe1pwmul.x $e |- X = ( var1 ` R ) $.
    coe1pwmul.n $e |- N = ( mulGrp ` P ) $.
    coe1pwmul.e $e |- .^ = ( .g ` N ) $.
    coe1pwmul.b $e |- B = ( Base ` P ) $.
    coe1pwmul.t $e |- .x. = ( .r ` P ) $.
    coe1pwmul.r $e |- ( ph -> R e. Ring ) $.
    coe1pwmul.a $e |- ( ph -> A e. B ) $.
    coe1pwmul.d $e |- ( ph -> D e. NN0 ) $.
    $( Coefficient vector of a polynomial multiplied on the left by a variable
       power.  (Contributed by Stefan O'Rear, 1-Apr-2015.) $)
    coe1pwmul $p |- ( ph -> ( coe1 ` ( ( D .^ X ) .x. A ) ) =
          ( x e. NN0 |-> if ( D <_ x ,
              ( ( coe1 ` A ) ` ( x - D ) ) , .0. ) ) ) $=
      ( cur cfv co cvsca cco1 cn0 cle wbr cmin cmulr cif cmpt cbs eqid crg wcel
      cv ringidcl coe1tmmul csca wceq ply1sca fveq2d oveq1d clmod ply1lmod cmnd
      syl ply1ring ringmgp vr1cl mgpbas mulgnn0cl syl3anc lmodvs1 syl2anc eqtrd
      3syl wa ad2antrr wf coe1f simplr simpr nn0sub2 ffvelrnd ifeq1da mpteq2dva
      ringlidm 3eqtr3d ) AGUCUDZEKIUEZFUFUDZUEZCHUEZUGUDBUHEBUSZUIUJZWMWREUKUEZ
      CUGUDZUDZGULUDZUEZLUMZUNWNCHUEZUGUDBUHWSXBLUMZUNABCDWMEFGHWOXCIGUOUDZJKLM
      XHUPZNOWOUPZPQRSXCUPZUATAGUQURZWMXHURTXHGWMXIWMUPZUTVJUBVAAWQXFUGAWPWNCHA
      WPFVBUDZUCUDZWNWOUEZWNAWMXOWNWOAGXNUCAXLGXNVCTFGUQNVDVJVEVFAFVGURZWNDURZX
      PWNVCAXLXQTFGNVHVJAJVIURZEUHURZKDURZXRAXLFUQURXSTFGNVKFJPVLVTUBAXLYATDFGK
      ONRVMVJDIJEKDFJPRVNQVOVPWOXOXNDFWNRXNUPXJXOUPVQVRVSVFVEABUHXEXGAWRUHURZWA
      ZWSXDXBLYCWSWAZXLXBXHURXDXBVCAXLYBWSTWBYDUHXHWTXAAUHXHXAWCZYBWSACDURYEUAX
      ADFGCXHXAUPRNXIWDVJWBYDXTYBWSWTUHURAXTYBWSUBWBAYBWSWEYCWSWFEWRWGVPWHXHGXC
      WMXBXIXKXMWKVRWIWJWL $.

    coe1pwmulfv.y $e |- ( ph -> Y e. NN0 ) $.
    $( Function value of a right-multiplication by a variable power in the
       shifted domain.  (Contributed by Stefan O'Rear, 1-Apr-2015.) $)
    coe1pwmulfv $p |- ( ph -> ( ( coe1 ` ( ( D .^ X ) .x. A ) ) ` ( D + Y ) ) =
          ( ( coe1 ` A ) ` Y ) ) $=
      ( vx caddc co cco1 cfv cn0 cv cle wbr cmin cif cmpt coe1pwmul fveq1d wcel
      wceq nn0addcld breq2 oveq1 fveq2d ifbieq1d eqid fvex c0g cvv eqeltri ifex
      fvmpt syl cr nn0red nn0addge1 syl2anc iftrued nn0cnd pncan2d 3eqtrd eqtrd
      ) ADKUEUFZDJHUFBGUFUGUHZUHWBUDUIDUDUJZUKULZWDDUMUFZBUGUHZUHZLUNZUOZUHZKWG
      UHZAWBWCWJAUDBCDEFGHIJLMNOPQRSTUAUBUPUQAWKDWBUKULZWBDUMUFZWGUHZLUNZWOWLAW
      BUIURWKWPUSADKUBUCUTUDWBWIWPUIWJWDWBUSZWEWMWHWOLWDWBDUKVAWQWFWNWGWDWBDUMV
      BVCVDWJVEWMWOLWNWGVFLFVGUHVHMFVGVFVIVJVKVLAWMWOLADVMURKUIURWMADUBVNUCDKVO
      VPVQAWNKWGADKADUBVRAKUCVRVSVCVTWA $.
  $}

  ${
    ply1scltm.k $e |- K = ( Base ` R ) $.
    ply1scltm.p $e |- P = ( Poly1 ` R ) $.
    ply1scltm.x $e |- X = ( var1 ` R ) $.
    ply1scltm.m $e |- .x. = ( .s ` P ) $.
    ply1scltm.n $e |- N = ( mulGrp ` P ) $.
    ply1scltm.e $e |- .^ = ( .g ` N ) $.
    ply1scltm.a $e |- A = ( algSc ` P ) $.
    $( A scalar is a term with zero exponent.  (Contributed by Stefan O'Rear,
       29-Mar-2015.) $)
    ply1scltm $p |- ( ( R e. Ring /\ F e. K ) ->
        ( A ` F ) = ( F .x. ( 0 .^ X ) ) ) $=
      ( wcel cfv co wceq crg wa cur cc0 cid ply1sca2 cbs c1 df-base strfvi eqid
      asclval adantl vr1cl mgpbas ringidval mulg0 syl adantr oveq2d eqtr4d ) CU
      AQZFGQZUBZFARZFBUCRZDSZFUDIESZDSVCVEVGTVBADVFCUERGBFPBCKUFCUGUHGUIJUJMVFU
      KZULUMVDVHVFFDVBVHVFTZVCVBIBUGRZQVJVKBCILKVKUKZUNVKEHIVFVKBHNVLUOBVFHNVIU
      POUQURUSUTVA $.
  $}

  ${
    $d x B $.  $d x K $.  $d x P $.  $d x R $.  $d x .x. $.  $d x .xb $.
    $d x X $.  $d x Y $.
    coe1sclmul.p $e |- P = ( Poly1 ` R ) $.
    coe1sclmul.b $e |- B = ( Base ` P ) $.
    coe1sclmul.k $e |- K = ( Base ` R ) $.
    coe1sclmul.a $e |- A = ( algSc ` P ) $.
    coe1sclmul.t $e |- .xb = ( .r ` P ) $.
    coe1sclmul.u $e |- .x. = ( .r ` R ) $.
    $( Coefficient vector of a polynomial multiplied on the left by a scalar.
       (Contributed by Stefan O'Rear, 29-Mar-2015.) $)
    coe1sclmul $p |- ( ( R e. Ring /\ X e. K /\ Y e. B ) ->
        ( coe1 ` ( ( A ` X ) .xb Y ) ) =
          ( ( NN0 X. { X } ) oF .x. ( coe1 ` Y ) ) ) $=
      ( vx wcel cfv co cn0 crg w3a cc0 cv1 cmgp cmg cvsca cco1 cle wbr cmin c0g
      cif cmpt csn cxp cof eqid simp3 simp1 simp2 0nn0 coe1tmmul wceq ply1scltm
      cv a1i 3adant3 oveq1d fveq2d cvv nn0ex simpl2 wa fvexd fconstmpt wf coe1f
      feqmptd offval2 nn0ge0 iftrued nn0cn subid1d oveq2d eqtrd syl6eqr 3eqtr4d
      3ad2ant3 mpteq2ia ) DUAQZHGQZIBQZUBZHUCDUDRZCUERZUFRZSCUGRZSZIESZUHRPTUCP
      VFZUIUJZHXAUCUKSZIUHRZRZFSZDULRZUMZUNZHARZIESZUHRTHUOUPZXDFUQSZWNPIBHUCCD
      EWRFWQGWPWOXGXGURLJWOURZWRURZWPURZWQURZKNOWKWLWMUSWKWLWMUTWKWLWMVAUCTQWNV
      BVGVCWNXKWTUHWNXJWSIEWKWLXJWSVDWMACDWRWQHGWPWOLJXNXOXPXQMVEVHVIVJWNXMPTHX
      AXDRZFSZUNXIWNPTHXRFXLXDVKGVKTVKQWNVLVGWKWLWMXATQZVMWNXTVNXAXDVOXLPTHUNVD
      WNPTHVPVGWNPTGXDWMWKTGXDVQWLXDBCDIGXDURKJLVRWIVSVTPTXHXSXTXHXFXSXTXBXFXGX
      AWAWBXTXEXRHFXTXCXAXDXTXAXAWCWDVJWEWFWJWGWH $.

    ${
      $( A single coefficient of a polynomial multiplied on the left by a
         scalar.  (Contributed by Stefan O'Rear, 1-Apr-2015.) $)
      coe1sclmulfv $p |- ( ( R e. Ring /\ ( X e. K /\ Y e. B ) /\ .0. e. NN0 )
         -> ( ( coe1 ` ( ( A ` X ) .xb Y ) ) ` .0. ) =
            ( X .x. ( ( coe1 ` Y ) ` .0. ) ) ) $=
        ( wcel cn0 cfv co crg wa w3a cco1 csn cxp wceq coe1sclmul 3expb 3adant3
        cof fveq1d simp3 cvv nn0ex a1i simp2l cbs wf wfn simp2r eqid coe1f 3syl
        ffn eqidd ofc1 mpdan eqtrd ) DUAQZHGQZIBQZUBZJRQZUCZJHASIETUDSZSJRHUEUF
        IUDSZFUKTZSZHJVQSZFTZVOJVPVRVJVMVPVRUGZVNVJVKVLWBABCDEFGHIKLMNOPUHUIUJU
        LVOVNVSWAUGVJVMVNUMVORHVTFVQUNGJRUNQVOUOUPVJVKVLVNUQVOVLRDURSZVQUSVQRUT
        VJVKVLVNVAVQBCDIWCVQVBLKWCVBVCRWCVQVEVDVOVNUBVTVFVGVHVI $.
    $}

    $( Coefficient vector of a polynomial multiplied on the right by a scalar.
       (Contributed by Stefan O'Rear, 29-Mar-2015.) $)
    coe1sclmul2 $p |- ( ( R e. Ring /\ X e. K /\ Y e. B ) ->
        ( coe1 ` ( Y .xb ( A ` X ) ) ) =
          ( ( coe1 ` Y ) oF .x. ( NN0 X. { X } ) ) ) $=
      ( vx wcel cfv co cn0 crg w3a cc0 cv1 cmgp cmg cvsca cco1 cle wbr cmin c0g
      cif cmpt csn cxp cof eqid simp3 simp1 simp2 0nn0 a1i coe1tmmul2 ply1scltm
      cv 3adant3 oveq2d fveq2d cvv nn0ex wa fvexd simpl2 coe1f feqmptd 3ad2ant3
      wceq fconstmpt offval2 nn0ge0 iftrued nn0cn subid1d oveq1d eqtrd mpteq2ia
      syl6eqr 3eqtr4d ) DUAQZHGQZIBQZUBZIHUCDUDRZCUERZUFRZSCUGRZSZESZUHRPTUCPVF
      ZUIUJZWTUCUKSZIUHRZRZHFSZDULRZUMZUNZIHARZESZUHRXCTHUOUPZFUQSZWMPIBHUCCDEW
      QFWPGWOWNXFXFURLJWNURZWQURZWOURZWPURZKNOWJWKWLUSWJWKWLUTWJWKWLVAUCTQWMVBV
      CVDWMXJWSUHWMXIWRIEWJWKXIWRVRWLACDWQWPHGWOWNLJXMXNXOXPMVEVGVHVIWMXLPTWTXC
      RZHFSZUNXHWMPTXQHFXCXKVJVJGTVJQWMVKVCWMWTTQZVLWTXCVMWJWKWLXSVNWLWJXCPTXQU
      NVRWKWLPTGXCXCBCDIGXCURKJLVOVPVQXKPTHUNVRWMPTHVSVCVTPTXGXRXSXGXEXRXSXAXEX
      FWTWAWBXSXDXQHFXSXBWTXCXSWTWTWCWDVIWEWFWGWHWI $.
  $}

  ${
    $d x y A $.  $d x y K $.  $d x P $.  $d x y R $.  $d x X $.  $d x .0. $.
    ply1scl.p $e |- P = ( Poly1 ` R ) $.
    ply1scl.a $e |- A = ( algSc ` P ) $.
    ${
      coe1scl.k $e |- K = ( Base ` R ) $.
      ${
        ply1sclf.b $e |- B = ( Base ` P ) $.
        $( A scalar polynomial is a polynomial.  (Contributed by Stefan O'Rear,
           28-Mar-2015.) $)
        ply1sclf $p |- ( R e. Ring -> A : K --> B ) $=
          ( crg wcel cid cfv ply1sca2 ply1ring ply1lmod cbs c1 df-base strfvi
          asclf ) DJKABDLMECGCDFNCDFOCDFPDQRESHTIUA $.

        $( The value of the algebra scalars function for (univariate)
           polynomials applied to a scalar results in a constant polynomial.
           (Contributed by AV, 27-Nov-2019.) $)
        ply1sclcl $p |- ( ( R e. Ring /\ S e. K ) -> ( A ` S ) e. B ) $=
          ( crg wcel ply1sclf ffvelrnda ) DKLFBEAABCDFGHIJMN $.
      $}

      coe1scl.z $e |- .0. = ( 0g ` R ) $.
      $( Coefficient vector of a scalar.  (Contributed by Stefan O'Rear,
         28-Mar-2015.) $)
      coe1scl $p |- ( ( R e. Ring /\ X e. K ) -> ( coe1 ` ( A ` X ) ) =
            ( x e. NN0 |-> if ( x = 0 , X , .0. ) ) ) $=
        ( crg wcel cfv cco1 cc0 co cn0 wceq eqid wa cv1 cmgp cmg cvsca cif cmpt
        cv ply1scltm fveq2d 0nn0 coe1tm mp3an3 eqtrd ) DLMZFEMZUAZFBNZONFPDUBNZ
        CUCNZUDNZQCUENZQZONZARAUHPSFGUFUGZUQURVCOBCDVBVAFEUTUSJHUSTZVBTZUTTZVAT
        ZIUIUJUOUPPRMVDVESUKAFPCDVBVAEUTUSGKJHVFVGVHVIULUMUN $.
    $}

    ${
      ply1sclid.k $e |- K = ( Base ` R ) $.
      $( Recover the base scalar from a scalar polynomial.  (Contributed by
         Stefan O'Rear, 28-Mar-2015.) $)
      ply1sclid $p |- ( ( R e. Ring /\ X e. K ) ->
          X = ( ( coe1 ` ( A ` X ) ) ` 0 ) ) $=
        ( vx crg wcel wa cc0 cfv cco1 cn0 cv wceq c0g eqid cif cmpt fveq1d 0nn0
        coe1scl iftrue fvmptg mpan adantl eqtr2d ) CJKZEDKZLZMEANONZNMIPIQMRZEC
        SNZUAZUBZNZEUMMUNURIABCDEUPFGHUPTUEUCULUSERZUKMPKULUTUDIMUQEPDURUOEUPUF
        URTUGUHUIUJ $.

      ply1sclf1.b $e |- B = ( Base ` P ) $.
      $( The polynomial scalar function is injective.  (Contributed by Stefan
         O'Rear, 28-Mar-2015.) $)
      ply1sclf1 $p |- ( R e. Ring -> A : K -1-1-> B ) $=
        ( vx vy wcel cv cfv wceq wral wa cc0 cco1 ply1sclid crg wf weq ply1sclf
        wi wf1 fveq2 fveq1d adantrr adantrl eqeq12d syl5ibr ralrimivva sylanbrc
        dff13 ) DUALZEBAUBJMZANZKMZANZOZJKUCZUEZKEPJEPEBAUFABCDEFGHIUDUPVCJKEEV
        AVBUPUQELZUSELZQQZRURSNZNZRUTSNZNZOVARVGVIURUTSUGUHVFUQVHUSVJUPVDUQVHOV
        EACDEUQFGHTUIUPVEUSVJOVDACDEUSFGHTUJUKULUMJKEBAUOUN $.
    $}

    ${
      ply1scl0.z $e |- .0. = ( 0g ` R ) $.
      ply1scl0.y $e |- Y = ( 0g ` P ) $.
      $( The zero scalar is zero.  (Contributed by Stefan O'Rear,
         29-Mar-2015.) $)
      ply1scl0 $p |- ( R e. Ring -> ( A ` .0. ) = Y ) $=
        ( crg wcel cfv cur cvsca co c0g cbs wceq eqid syl cid ring0cl c1 strfvi
        ply1sca2 df-base asclval fveq2d syl6reqr oveq1d clmod ply1lmod ply1ring
        fvi ringidcl lmod0vs syl2anc 3eqtrd ) CJKZEALZEBMLZBNLZOZCUALZPLZVAVBOZ
        DUSECQLZKUTVCRVGCEVGSZHUBAVBVAVDVGBEGBCFUEZCQUCVGUFVHUDVBSZVASZUGTUSEVE
        VAVBUSVECPLEUSVDCPCJUNUHHUIUJUSBUKKVABQLZKZVFDRBCFULUSBJKVMBCFUMVLBVAVL
        SZVKUOTVBVDVEVLBVADVNVIVJVESIUPUQUR $.

      ply1scln0.k $e |- K = ( Base ` R ) $.
      $( Nonzero scalars create nonzero polynomials.  (Contributed by Stefan
         O'Rear, 29-Mar-2015.) $)
      ply1scln0 $p |- ( ( R e. Ring /\ X e. K /\ X =/= .0. ) ->
          ( A ` X ) =/= Y ) $=
        ( crg wcel wne w3a cfv wa wceq adantr cbs wf1 wb eqid ply1sclf1 ring0cl
        simpr f1fveq syl12anc biimpd necon3d 3impia ply1scl0 3ad2ant1 neeqtrd )
        CMNZEDNZEGOZPEAQZGAQZFUPUQURUSUTOUPUQRZUSUTEGVAUSUTSZEGSZVADBUAQZAUBZUQ
        GDNZVBVCUCUPVEUQAVDBCDHILVDUDUETUPUQUGUPVFUQDCGLJUFTDVDEGAUHUIUJUKULUPU
        QUTFSURABCFGHIJKUMUNUO $.
    $}

    ${
      ply1scl1.o $e |- .1. = ( 1r ` R ) $.
      ply1scl1.n $e |- N = ( 1r ` P ) $.
      $( The one scalar is the unit polynomial.  (Contributed by Stefan O'Rear,
         1-Apr-2015.) $)
      ply1scl1 $p |- ( R e. Ring -> ( A ` .1. ) = N ) $=
        ( crg wcel cfv cvsca co cur cbs wceq eqid ringidcl syl ply1sca2 df-base
        cid c1 strfvi asclval fvi fveq2d syl6eqr oveq1d clmod ply1lmod ply1ring
        lmodvs1 syl2anc 3eqtr2d ) CJKZDALZDEBMLZNZCUCLZOLZEUSNZEUQDCPLZKURUTQVD
        CDVDRZHSAUSEVAVDBDGBCFUAZCPUDVDUBVEUEUSRZIUFTUQVBDEUSUQVBCOLDUQVACOCJUG
        UHHUIUJUQBUKKEBPLZKZVCEQBCFULUQBJKVIBCFUMVHBEVHRZISTUSVBVAVHBEVJVFVGVBR
        UNUOUP $.
    $}
  $}

  ${
    ply1idvr1.p $e |- P = ( Poly1 ` R ) $.
    ply1idvr1.x $e |- X = ( var1 ` R ) $.
    ply1idvr1.n $e |- N = ( mulGrp ` P ) $.
    ply1idvr1.e $e |- .^ = ( .g ` N ) $.
    $( The identity of a polynomial ring expressed as power of the polynomial
       variable.  (Contributed by AV, 14-Aug-2019.) $)
    ply1idvr1 $p |- ( R e. Ring -> ( 0 .^ X ) = ( 1r ` P ) ) $=
      ( crg wcel cc0 co cur cfv cascl cvsca cbs wceq eqid csca ringidcl ply1sca
      ply1scltm mpdan fveq2d oveq1d clmod ply1lmod 0nn0 ply1moncl mpan2 lmodvs1
      cn0 syl2anc 3eqtrrd ply1scl1 eqtrd ) BJKZLECMZBNOZAPOZOZANOZUSVCVAUTAQOZM
      ZAUAOZNOZUTVEMZUTUSVABROZKVCVFSVJBVAVJTZVATZUBVBABVECVAVJDEVKFGVETZHIVBTZ
      UDUEUSVAVHUTVEUSBVGNABJFUCUFUGUSAUHKUTAROZKZVIUTSABFUIUSLUNKVPUJVOLABCDEF
      GHIVOTZUKULVEVHVGVOAUTVQVGTVMVHTUMUOUPVBABVAVDFVNVLVDTUQUR $.
  $}

  ${
    $d B k n s $.  $d F c k n s $.  $d G c k n s $.  $d R k n s $.
    $d .X. c n s $.  $d .0. c k n s $.
    cply1mul.p $e |- P = ( Poly1 ` R ) $.
    cply1mul.b $e |- B = ( Base ` P ) $.
    cply1mul.0 $e |- .0. = ( 0g ` R ) $.
    cply1mul.m $e |- .X. = ( .r ` P ) $.
    $( The product of two constant polynomials is a constant polynomial.
       (Contributed by AV, 18-Nov-2019.) $)
    cply1mul $p |- ( ( R e. Ring /\ ( F e. B /\ G e. B ) )
                      -> ( A. c e. NN ( ( ( coe1 ` F ) ` c ) = .0.
                                     /\ ( ( coe1 ` G ) ` c ) = .0. )
                      -> A. c e. NN ( ( coe1 ` ( F .X. G ) ) ` c ) = .0. ) ) $=
      ( wcel wa cfv wceq cn co cc0 wi vn vk vs crg cv cco1 wral cmin cmulr cmpt
      cfz cgsu cn0 cvv coe1mul 3expb adantr oveq2 oveq1 fveq2d oveq2d mpteq12dv
      eqid weq adantl nnnn0 fvmptd r19.26 nncn subid1d sylan9eqr simpll eqeltrd
      ovexd fveq2 eqeq1d rspcv syl cbs elfznn0 coe1fvalcl syl2an ringrz syl2anc
      simpl ex expcom com23 syldc expd com24 com13 wn wne df-ne biimpri elnnne0
      anim12ci sylibr eleq2i biimpi fznn0sub ringlz a1dd com14 syld imp pm2.61i
      syl5bi impl mpteq2dva cmnd ringmnd gsumz 3eqtrd ralrimiva cbvralv ) CUDMZ
      EAMZFAMZNZNZHUEZEUFOZOZGPZYCFUFOZOZGPZNHQUGZYCEFDRUFOZOZGPZHQUGZYBYJNZUAU
      EZYKOZGPZUAQUGYNYOYRUAQYOYPQMZNZYQCUBSYPUKRZUBUEZYDOZYPUUBUHRZYGOZCUIOZRZ
      UJZULRZCUBUUAGUJZULRZGYTUCYPCUBSUCUEZUKRZUUCUULUUBUHRZYGOZUUFRZUJZULRZUUI
      UMYKUNYOYKUCUMUURUJPZYSYBUUSYJXRXSXTUUSUBACDUUFUCEFBILUUFVCZJUOUPUQUQUCUA
      VDZUURUUIPYTUVAUUQUUHCULUVAUBUUMUUPUUAUUGUULYPSUKURUVAUUOUUEUUCUUFUVAUUNU
      UDYGUULYPUUBUHUSUTVAVBVAVEYSYPUMMYOYPVFVEYTCUUHULVNVGYTUUHUUJCULYTUBUUAUU
      GGYOYSUUBUUAMZUUGGPZYBYJYSUVBNZUVCTZYJYFHQUGZYIHQUGZNZYBUVEYFYIHQVHUUBSPZ
      YBUVHUVETTUVHYBUVIUVEUVGYBUVIUVETTUVFUVGUVDUVIYBUVCUVGUVDUVIYBUVCTZUVDUVI
      NZUVGUUEGPZUVJUVKUUDQMUVGUVLTUVKUUDYPQUVIUVDUUDYPSUHRZYPUUBSYPUHURYSUVMYP
      PUVBYSYPYPVIVJUQVKYSUVBUVIVLVMYIUVLHUUDQYCUUDPYHUUEGYCUUDYGVOVPVQVRUVKYBU
      VLUVCYBUVKUVLUVCTYBUVKNZUVLUVCUVLUVNUUGUUCGUUFRZGUUEGUUCUUFURUVNXRUUCCVSO
      ZMZUVOGPXRYAUVKVLYBXSUUBUMMZUVQUVKYAXSXRXSXTWEVEUVDUVRUVIUVBUVRYSUUBYPVTZ
      VEUQYDABCEUVPUUBYDVCJIUVPVCZWAWBUVPCUUFUUCGUVTUUTKWCWDVKWFWGWHWIWJWKVEWLU
      VHYBUVIWMZUVEUVFYBUWAUVETTUVGUVDYBUWAUVFUVCYSUVBYBUWAUVFUVCTZTTUWAUVBYBYS
      UWBUWAUVBYBYSUWBTTUWAUVBNZUVFYSYBUVCUWCUVFUUCGPZYSUVJTZUWCUUBQMZUVFUWDTUW
      CUVRUUBSWNZNUWFUWAUWGUVBUVRUWGUWAUUBSWOWPUVSWRUUBWQWSYFUWDHUUBQHUBVDYEUUC
      GYCUUBYDVOVPVQVRUVBUWDUWETUWAYBUWDYSUVBUVCYBUWDUVBUVCTYSYBUVBUWDUVCYBUVBU
      WDUVCTYBUVBNZUWDUVCUWDUWHUUGGUUEUUFRZGUUCGUUEUUFUSUWHXRUUEUVPMZUWIGPXRYAU
      VBVLYBFBVSOZMZUUDUMMUWJUVBYAUWLXRXTUWLXSXTUWLAUWKFJWTXAVEVEUUBSYPXBYGUWKB
      CFUVPUUDYGVCUWKVCIUVTWAWBUVPCUUFUUEGUVTUUTKXCWDVKWFWFWHXDXEVEXFWKWFXEXGXE
      UQWLXHXIXGXJXKVAYOUUKGPZYSYBUWMYJXRUWMYAXRCXLMUUAUNMUWMCXMXRSYPUKVNUUAUBC
      UNGKXNWDUQUQUQXOXPYMYRHUAQHUAVDYLYQGYCYPYKVOVPXQWSWF $.
  $}

  ${
    $d k A $.  $d k B $.  $d k K $.  $d k P $.  $d k R $.  $d k .x. $.
    ply1coefsupp.p $e |- P = ( Poly1 ` R ) $.
    ply1coefsupp.x $e |- X = ( var1 ` R ) $.
    ply1coefsupp.b $e |- B = ( Base ` P ) $.
    ply1coefsupp.n $e |- .x. = ( .s ` P ) $.
    ply1coefsupp.m $e |- M = ( mulGrp ` P ) $.
    ply1coefsupp.e $e |- .^ = ( .g ` M ) $.
    ply1coefsupp.a $e |- A = ( coe1 ` K ) $.
    $( The decomposition of a univariate polynomial is finitely supported.
       Formerly part of proof for ~ ply1coe .  (Contributed by Stefan O'Rear,
       21-Mar-2015.)  (Revised by AV, 8-Aug-2019.) $)
    ply1coefsupp $p |- ( ( R e. Ring /\ K e. B ) ->
          ( k e. NN0 |-> ( ( A ` k ) .x. ( k .^ X ) ) ) finSupp ( 0g ` P ) ) $=
      ( wcel cfv cn0 crg wa csca cvv cbs cv co eqid clmod ply1lmod adantr nn0ex
      a1i ply1ring ringmgp syl ad2antrr simpr vr1cl mgpbas mulgnn0cl syl3anc wf
      cmnd coe1f adantl c0g cfsupp wbr coe1sfi wceq ply1sca eqcomd mptscmfsuppd
      fveq2d breqtrrd ) DUARZHBRZUBZABCCUCSZEFUDTDUESZFUFZJGUGZMVTUHNVQCUIRVRCD
      KUJUKTUDRVSULUMVSWBTRZUBIVDRZWDJBRZWCBRVQWEVRWDVQCUARWECDKUNCIOUOUPUQVSWD
      URVQWFVRWDBCDJLKMUSUQBGIWBJBCIOMUTPVAVBVRTWAAVCVQABCDHWAQMKWAUHVEVFVSADVG
      SZVTVGSVHVRAWGVHVIVQABCDHWGQMKWGUHVJVFVSVTDVGVQVTDVKVRVQDVTCDUAKVLVMUKVOV
      PVN $.
  $}

  ${
    $d a k A $.  $d a b c k B $.  $d a b c x B $.  $d a b c d k K $.  $d x K $.
    $d a b M $.  $d a c k X $.  $d a k .^ $.  $d a b c d k R $.  $d x d R $.
    $d a b k .x. $.  $d k P $.
    ply1coe.p $e |- P = ( Poly1 ` R ) $.
    ply1coe.x $e |- X = ( var1 ` R ) $.
    ply1coe.b $e |- B = ( Base ` P ) $.
    ply1coe.n $e |- .x. = ( .s ` P ) $.
    ply1coe.m $e |- M = ( mulGrp ` P ) $.
    ply1coe.e $e |- .^ = ( .g ` M ) $.
    ply1coe.a $e |- A = ( coe1 ` K ) $.
    $( Decompose a univariate polynomial as a sum of powers.  (Contributed by
       Stefan O'Rear, 21-Mar-2015.)  (Revised by AV, 7-Oct-2019.) $)
    ply1coe $p |- ( ( R e. Ring /\ K e. B )
           -> K = ( P gsum ( k e. NN0 |-> ( ( A ` k ) .x. ( k .^ X ) ) ) ) ) $=
      ( wcel co cfv va vb vd vc vx crg wa c1o cmpl cn0 cmap cv wceq cur c0g cif
      cmpt cgsu c0 com eqid psr1baslem 1onn cps1 ply1bas ply1vsca simpl mplcoe1
      a1i simpr fvcoe1 adantll cmgp cmvr cmg simpll cplusg csn wral eqidd fveq2
      oveq1d oveq2d eqeq12d ralsn sylibr ralbidv raleqi raleqbii mplcoe5 mpteq1
      0ex df1o2 ax-mp oveq2i cmnd cvv mplring mpan ringmgp syl ad2antrr cbs wss
      mgpbas ssv ovexd cmulr ply1mulr mgpplusg eqtr3i mulgpropd adantr ply1ring
      oveqi oveqd elmapi 0lt1o ffvelrn sylancl adantl mulgnn0cl syl3anc eqeltrd
      wf vr1cl vr1val syl6eqr oveq12d gsumsn syl5eq 3eqtrd mpteq2dva ccom nn0ex
      mptex cpl1 fvex eqeltri clmod ply1plusg gsumpropd mpllmod sylancr lmodcmn
      ply1mpl0 ccmn csca ply1lmod coe1f ply1sca eqcomd fveq2d eleqtrrd lmodvscl
      ffvelrnda fmptd ply1coefsupp wf1o mapsnf1o2 gsumf1o oveq1 fmptco 3eqtrrd
      ) DUFRZHBRZUGZHUHDUISZUAUJUHUKSZUAULZHTZUBUVIUBULZUVJUMDUNTZDUOTZUPUQZESZ
      UQZURSUVHUAUVIUSUVJTZATZUVRJGSZESZUQZURSZCFUJFULZATZUWDJGSZESZUQZURSZUVGU
      BBUVIUVHDEUVMUCUAUHUTHUVNUVHVAZUCVBZUVNVAZUVMVAZUHUTRZUVGVCVICDDVDTZBKUWO
      VAMVEZDUVHECKUWJNVFUVEUVFVGZUVEUVFVJVHUVGUVQUWBUVHURUVGUAUVIUVPUWAUVGUVJU
      VIRZUGZUVKUVSUVOUVTEUVFUWRUVKUVSUMUVEAHBUVJQVKVLUWSUVOUVHVMTZUDUHUDULZUVJ
      TZUXAUHDVNSZTZUWTVOTZSZUQZURSZUVRJUXESZUVTUWSUEUBUVIUVHDUVMUCUDUXEUWTUHUX
      CUTUVJUVNUWJUWKUWLUWMUWNUWSVCVIUWTVAZUXEVAZUXCVAUVEUVFUWRVPUVGUWRVJUWSUVL
      UXCTZUEULZUXCTZUWTVQTZSZUXNUXLUXOSZUMZUBUSVRZVSZUEUXSVSZUXRUBUHVSZUEUHVSU
      WSUXLUSUXCTZUXOSZUYCUXLUXOSZUMZUBUXSVSZUYAUWSUYCUYCUXOSZUYHUMZUYGUWSUYHVT
      UYFUYIUBUSWLUVLUSUMZUYDUYHUYEUYHUYJUXLUYCUYCUXOUVLUSUXCWAZWBUYJUXLUYCUYCU
      XOUYKWCWDWEWFUXTUYGUEUSWLUXMUSUMZUXRUYFUBUXSUYLUXPUYDUXQUYEUYLUXNUYCUXLUX
      OUXMUSUXCWAZWCUYLUXNUYCUXLUXOUYMWBWDWGWEWFUYBUXTUEUHUXSWMUXRUBUHUXSWMWHWI
      WFWJUWSUXHUWTUDUXSUXFUQZURSZUXIUXGUYNUWTURUHUXSUMUXGUYNUMWMUDUHUXSUXFWKWN
      WOUWSUWTWPRZUSWQRZUXIBRUYOUXIUMUVEUYPUVFUWRUVEUVHUFRZUYPUWNUVEUYRVCUVHDUH
      UTUWJWRWSUVHUWTUXJWTXAXBUYQUWSWLVIUWSUXIUVTBUVGUXIUVTUMUWRUVGUXEGUVRJUVGU
      AUBBUXEGUWTIWQUXKPBUWTXCTUMUVGBUVHUWTUXJUWPXEZVIBIXCTUMUVGBCIOMXEZVIBWQXD
      UVGBXFVIUVGUVJWQRUVLWQRUGUGZUVJUVLUXOXGUVJUVLUXOSUVJUVLIVQTZSUMVUAUXOVUBU
      VJUVLCXHTZUXOVUBUVHVUCUWTUXJDUVHVUCCKUWJVUCVAZXIXJCVUCIOVUDXJXKXOVIXLXPXM
      ZUWSIWPRZUVRUJRZJBRZUVTBRUVEVUFUVFUWRUVECUFRVUFCDKXNCIOWTXAZXBUWRVUGUVGUW
      RUHUJUVJYEUSUHRVUGUVJUJUHXQXRUHUJUSUVJXSXTYAZUVEVUHUVFUWRBCDJLKMYFZXBBGIU
      VRJUYTPYBYCYDUXFBUXIUDUWTUSWQUYSUXAUSUMZUXBUVRUXDJUXEUXAUSUVJWAVULUXDUYCJ
      UXAUSUXCWADJLYGYHYIYJYCYKVUEYLYIYMWCUVGUWIUVHUWHURSUVHUWHUAUVIUVRUQZYNZUR
      SUWCUVGUWHCUVHWQWQWQUWHWQRUVGFUJUWGYOYPVICWQRUVGCDYQTWQKDYQYRYSVIUVGUHDUI
      XGCXCTZUVHXCTZUMUVGBVUOVUPMUWPXKVICVQTZUVHVQTUMUVGVUQDUVHCKUWJVUQVAUUAVIU
      UBUVGUJBUVIUWHUVHVUMWQCUOTZUWPCDUVHVURUWJKVURVAUUFUVGUVHYTRZUVHUUGRUVGUWN
      UVEVUSVCUWQUVHDUHUTUWJUUCUUDUVHUUEXAUJWQRUVGYOVIUVGFUJUWGBUWHUVGUWDUJRZUG
      ZCYTRZUWECUUHTZXCTZRUWFBRZUWGBRUVEVVBUVFVUTCDKUUIXBVVAUWEDXCTZVVDUVGUJVVF
      UWDAUVFUJVVFAYEUVEABCDHVVFQMKVVFVAUUJYAUUPVVAVVCDXCUVEVVCDUMUVFVUTUVEDVVC
      CDUFKUUKUULXBUUMUUNVVAVUFVUTVUHVVEUVEVUFUVFVUTVUIXBUVGVUTVJUVEVUHUVFVUTVU
      KXBBGIUWDJUYTPYBYCUWEEVVCVVDBCUWFMVVCVANVVDVAUUOYCUWHVAUUQABCDEFGHIJKLMNO
      PQUURUVIUJVUMUUSUVGUAUJUHVUMUSWMYOWLVUMVAUUTVIUVAUVGVUNUWBUVHURUVGUAFUVIU
      JUVRUWGUWAVUMUWHVUJUVGVUMVTUVGUWHVTUWDUVRUMUWEUVSUWFUVTEUWDUVRAWAUWDUVRJG
      UVBYIUVCWCUVDYL $.
  $}

  ${
    $d A k n $.  $d B n $.  $d C k n $.  $d K n $.  $d L n $.  $d P n $.
    $d R n $.
    eqcoe1ply1eq.p $e |- P = ( Poly1 ` R ) $.
    eqcoe1ply1eq.b $e |- B = ( Base ` P ) $.
    eqcoe1ply1eq.a $e |- A = ( coe1 ` K ) $.
    eqcoe1ply1eq.c $e |- C = ( coe1 ` L ) $.
    $( Two polynomials over the same ring are equal if they have identical
       coefficients.  (Contributed by AV, 7-Oct-2019.) $)
    eqcoe1ply1eq $p |- ( ( R e. Ring /\ K e. B /\ L e. B )
                         -> ( A. k e. NN0 ( A ` k ) = ( C ` k ) -> K = L ) ) $=
      ( vn wcel cfv wceq cn0 co cgsu eqid crg w3a cv wral wa cco1 cv1 cmg cvsca
      cmgp cmpt fveq2 eqeq12d rspccv adantl imp fveq1i 3eqtr3g oveq1d mpteq2dva
      wi oveq2d wb ply1coe 3adant3 3adant2 adantr mpbird ex ) EUANZGBNZHBNZUBZF
      UCZAOZVNCOZPZFQUDZGHPZVMVRUEZVSDMQMUCZGUFOZOZWAEUGOZDUJOZUHOZRZDUIOZRZUKZ
      SRZDMQWAHUFOZOZWGWHRZUKZSRZPZVTWJWODSVTMQWIWNVTWAQNZUEZWCWMWGWHWSWAAOZWAC
      OZWCWMVTWRWTXAPZVRWRXBVAVMVQXBFWAQVNWAPVOWTVPXAVNWAAULVNWACULUMUNUOUPWAAW
      BKUQWACWLLUQURUSUTVBVMVSWQVCVRVMGWKHWPVJVKGWKPVLWBBDEWHMWFGWEWDIWDTZJWHTZ
      WETZWFTZWBTVDVEVJVLHWPPVKWLBDEWHMWFHWEWDIXCJXDXEXFWLTVDVFUMVGVHVI $.

    $d B k $.  $d K k $.  $d L k $.  $d R k $.
    $( Two polynomials over the same ring are equal iff they have identical
       coefficients.  (Contributed by AV, 13-Oct-2019.) $)
    ply1coe1eq $p |- ( ( R e. Ring /\ K e. B /\ L e. B )
                       -> ( A. k e. NN0 ( A ` k ) = ( C ` k ) <-> K = L ) ) $=
      ( crg wcel w3a cfv wceq cn0 wa cco1 wral eqcoe1ply1eq fveq2 adantl adantr
      cv 3eqtr4g fveq1d ralrimiva ex impbid ) EMNGBNHBNOZFUFZAPUMCPQZFRUAZGHQZA
      BCDEFGHIJKLUBULUPUOULUPSZUNFRUQUMRNZSUMACUQACQURUQGTPZHTPZACUPUSUTQULGHTU
      CUDKLUGUEUHUIUJUK $.
  $}

  ${
    $d A k $.  $d K k n $.  $d P k $.  $d R k n $.  $d S k n $.  $d .0. k $.
    cply1coe0.k $e |- K = ( Base ` R ) $.
    cply1coe0.0 $e |- .0. = ( 0g ` R ) $.
    cply1coe0.p $e |- P = ( Poly1 ` R ) $.
    cply1coe0.b $e |- B = ( Base ` P ) $.
    cply1coe0.a $e |- A = ( algSc ` P ) $.
    $( All but the first coefficient of a constant polynomial ( i.e. a "lifted
       scalar") are zero.  (Contributed by AV, 16-Nov-2019.) $)
    cply1coe0 $p |- ( ( R e. Ring /\ S e. K )
                      -> A. n e. NN ( ( coe1 ` ( A ` S ) ) ` n ) = .0. ) $=
      ( vk wcel wa cfv wceq cc0 cn0 crg cv cco1 cif cvv cmpt coe1scl adantr weq
      cn wn nnne0 neneqd adantl eqeq1 notbid mpbird iffalsed nnnn0 fvex eqeltri
      wb c0g a1i fvmptd ralrimiva ) DUAOEGOPZFUBZEAQUCQZQHRFUJVGVHUJOZPZNVHNUBZ
      SRZEHUDZHTVIUEVGVINTVNUFRVJNACDGEHKMIJUGUHVKNFUIZPZVMEHVPVMUKZVHSRZUKZVKV
      SVOVJVSVGVJVHSVHULUMUNUHVOVQVSVBVKVOVMVRVLVHSUOUPUNUQURVJVHTOVGVHUSUNHUEO
      VKHDVCQUEJDVCUTVAVDVEVF $.

    $d A n s $.  $d B k n $.  $d B s $.  $d K s $.  $d M k $.  $d M n s $.
    $d R s $.  $d .0. s $.
    $( A polynomial is constant (i.e. a "lifted scalar") iff all but the first
       coefficient are zero.  (Contributed by AV, 16-Nov-2019.) $)
    cply1coe0bi $p |- ( ( R e. Ring /\ M e. B ) -> ( E. s e. K M = ( A ` s )
                               <-> A. n e. NN ( ( coe1 ` M ) ` n ) = .0. ) ) $=
      ( wcel wa cfv wceq adantr cc0 vk crg cv wrex cco1 cn wral simpl cply1coe0
      anim1i syl wb fveq2 fveq1d eqeq1d ralbidv adantl mpbird ex rexlimdva 0nn0
      cn0 simpr eqid coe1fvalcl sylancl eqeq2d w3a csca ply1ring ply1lmod asclf
      cbs ply1sca eqcomd fveq2d eleqtrrd ffvelrnd 3jca cif cvv cmpt coe1scl weq
      wf syldan wn nnne0 neneqd eqeq1 notbid iffalsed nnnn0 fvex eqeltri fvmptd
      c0g a1i eqtrd ralimdva imp ply1sclid csn cun df-n0 raleqi eqeq12d ralunsn
      c0ex mp1i syl5bb mpbir2and eqcoe1ply1eq sylc rspcedvd impbid ) DUBOZGBOZP
      ZGIUCZAQZRZIFUDZEUCZGUEQZQZHRZEUFUGZXSYBYHIFXSXTFOZPZYBYHYJYBPZYHYDYAUEQZ
      QZHRZEUFUGZYKXQYIPZYOYJYPYBXSXQYIXQXRUHZUJSABCDXTEFHJKLMNUIUKYBYHYOULYJYB
      YGYNEUFYBYFYMHYBYDYEYLGYAUEUMUNUOUPUQURUSUTXSYHYCXSYHPZYBGTYEQZAQZRZIYSFX
      SYSFOZYHXSXRTVBOZUUBXQXRVCZVAYEBCDGFTYEVDZMLJVEVFZSXTYSRZYBUUAULYRUUGYAYT
      GXTYSAUMVGUQYRXQXRYTBOZVHZYFYDYTUEQZQZRZEVBUGZUUAXSUUIYHXSXQXRUUHYQUUDXSC
      VIQZVMQZBYSAXQUUOBAWEXRXQABUUNUUOCNUUNVDCDLVJCDLVKUUOVDMVLSXSYSDVMQZUUOXS
      XRUUCYSUUPOUUDVAYEBCDGUUPTUUEMLUUPVDVEVFXQUUOUUPRXRXQUUNDVMXQDUUNCDUBLVNV
      OVPSVQVRVSSYRUUMUULEUFUGZYSTUUJQZRZXSYHUUQXSYGUULEUFXSYDUFOZPZYGUULUVAYGP
      YFHUUKUVAYGVCUVAHUUKRYGUVAUUKHUVAUAYDUAUCZTRZYSHVTZHVBUUJWAXSUUJUAVBUVDWB
      RZUUTXQXRUUBUVEUUFUAACDFYSHLNJKWCWFSUVAUAEWDZPZUVCYSHUVGUVCWGZYDTRZWGZUVA
      UVJUVFUUTUVJXSUUTYDTYDWHWIUQSUVFUVHUVJULUVAUVFUVCUVIUVBYDTWJWKUQURWLUUTYD
      VBOXSYDWMUQHWAOUVAHDWQQWAKDWQWNWOWRWPVOSWSUSWTXAXSUUSYHXQXRUUBUUSUUFACDFY
      SLNJXBWFSUUMUULEUFTXCXDZUGZYRUUQUUSPZUULEVBUVKXEXFTWAOUVLUVMULYRXIUULUUSE
      UFTWAUVIYFYSUUKUURYDTYEUMYDTUUJUMXGXHXJXKXLYEBUUJCDEGYTLMUUEUUJVDXMXNXOUS
      XP $.
  $}

  ${
    coe1fzgsumd.p $e |- P = ( Poly1 ` R ) $.
    coe1fzgsumd.b $e |- B = ( Base ` P ) $.
    coe1fzgsumd.r $e |- ( ph -> R e. Ring ) $.
    coe1fzgsumd.k $e |- ( ph -> K e. NN0 ) $.
    ${
      $d B x y $.  $d K x y $.  $d M y $.  $d P y $.  $d R y $.  $d ph y $.
      $d m x y $.  $d a x y $.
      $( Lemma for ~ coe1fzgsumd (induction step).  (Contributed by AV,
         8-Oct-2019.) $)
      coe1fzgsumdlem $p |- ( ( m e. Fin /\ -. a e. m /\ ph )
      -> ( ( A. x e. m M e. B -> ( ( coe1 ` ( P gsum ( x e. m |-> M ) ) ) ` K )
                             = ( R gsum ( x e. m |-> ( ( coe1 ` M ) ` K ) ) ) )
        -> ( A. x e. ( m u. { a } ) M e. B
      -> ( ( coe1 ` ( P gsum ( x e. ( m u. { a } ) |-> M ) ) ) ` K )
         = ( R gsum ( x e. ( m u. { a } ) |-> ( ( coe1 ` M ) ` K ) ) ) ) ) ) $=
        ( vy wcel cmpt cgsu co cco1 cfv cv cfn wn w3a wral wi csn cun wa ralunb
        wceq csb cplusg nfcv nfcsb1v csbeq1a cbvmpt oveq2i cvv crg ply1ring syl
        eqid ccmn ringcmn 3ad2ant3 ad2antrr simpll1 rspcsbela expcom adantl imp
        adantr vex a1i simpll2 mpan csbeq1 gsumunsn syl5eq eqcomi oveq1i syl6eq
        vsnid fveq2d fveq1d cn0 simplr gsummptcl coe1addfv syl31anc eqtrd oveq1
        sylan9eq cbs csbfv12 csbfv2g ax-mp csbconstg eqtri wf ffvelrnd syl5eqel
        fveq12i coe1f nffv csbhypf syl6req exp31 com23 ex a2d imp4b syl5bi ) FU
        AZUBOZIUAZXOOUCZAUDZHCOZBXOUEZGDBXOHPZQRZSTTZEBXOGHSTZTZPZQRZUKZUFZXTBX
        OXQUGZUHZUEZGDBYLHPZQRZSTZTZEBYLYFPZQRZUKZUFYMYAXTBYKUEZUIXSYJUIYTXTBXO
        YKUJXSYJYAUUAYTXSYAYIUUAYTUFZXSYAYIUUBUFXSYAUIZUUAYIYTUUCUUAYIYTUUCUUAU
        IZYIUIYQYHGBXQHULZSTZTZEUMTZRZYSUUDYIYQYDUUGUUHRZUUIUUDYQGYCUUEDUMTZRZS
        TZTZUUJUUDGYPUUMUUDYOUULSUUDYODNXOBNUAZHULZPZQRZUUEUUKRZUULUUDYODNYLUUP
        PZQRUUSYNUUTDQBNYLHUUPNHUNZBUUOHUOZBUUOHUPZUQURUUDXOCUUKNDXQUSUUPUUEKUU
        KVCZXSDVDOZYAUUAAXPUVEXRADUTOZUVEAEUTOZUVFLDEJVAVBDVEVBVFVGZXPXRAYAUUAV
        HZUUDUUOXOOZUUPCOZUUCUVJUVKUFZUUAYAUVLXSUVJYAUVKBUUOXOHCVIVJVKVMVLZXQUS
        OUUDIVNVOZXPXRAYAUUAVPZUUAUUECOZUUCXQYKOUUAUVPIWDBXQYKHCVIVQVKZBUUOXQHV
        RVSVTUURYCUUEUUKUUQYBDQYBUUQBNXOHUUPUVAUVBUVCUQWAURWBWCWEWFUUDUVGYCCOUV
        PGWGOZUUNUUJUKXSUVGYAUUAAXPUVGXRLVFVGUUDCBDXOHKUVHUVIXSYAUUAWHWIUVQXSUV
        RYAUUAAXPUVRXRMVFZVGZCUUHUUKEYCUUEGDJKUVDUUHVCZWJWKWLYDYHUUGUUHWMWNUUDU
        UIYSUKYIUUDYSENXOBUUOYFULZPZQRZUUGUUHRZUUIUUDYSENYLUWBPZQRUWEYRUWFEQBNY
        LYFUWBNYFUNZBUUOYFUOZBUUOYFUPZUQURUUDXOEWOTZUUHNEXQUSUWBUUGUWJVCZUWAXSE
        VDOZYAUUAAXPUWLXRAUVGUWLLEVEVBVFVGUVIUUDUVJUIZUWBGUUPSTZTZUWJUWBBUUOGUL
        ZBUUOYEULZTUWOBUUOGYEWPUWPGUWQUWNUUOUSOZUWQUWNUKNVNZBUUOHUSSWQWRUWRUWPG
        UKUWSBUUOGUSWSWRXDWTUWMWGUWJGUWNUWMUVKWGUWJUWNXAUVMUWNCDEUUPUWJUWNVCKJU
        WKXEVBUUCUVRUUAUVJXSUVRYAUVSVMVGXBXCUVNUVOUUDWGUWJGUUFUUDUVPWGUWJUUFXAU
        VQUUFCDEUUEUWJUUFVCKJUWKXEVBUVTXBBNXQYFUUGBXQUNBGUUFBUUESBSUNBXQHUOXFBG
        UNXFBUAXQUKZGYEUUFUWTHUUESBXQHUPWEWFXGVSVTUWDYHUUGUUHUWCYGEQYGUWCBNXOYF
        UWBUWGUWHUWIUQWAURWBXHVMWLXIXJXKXLXMXNXK $.
    $}

    $d B a m n $.  $d B x $.  $d K x $.  $d K a m n $.  $d N n x $.
    $d N m x $.  $d N a x $.  $d M a m n $.  $d P a m n $.  $d R a m n $.
    $d a m n ph $.
    coe1fzgsumd.m $e |- ( ph -> A. x e. N M e. B ) $.
    coe1fzgsumd.n $e |- ( ph -> N e. Fin ) $.
    $( Value of an evaluated coefficient in a finite group sum of polynomials.
       (Contributed by AV, 8-Oct-2019.) $)
    coe1fzgsumd $p |- ( ph -> ( ( coe1 ` ( P gsum ( x e. N |-> M ) ) ) ` K )
                          = ( R gsum ( x e. N |-> ( ( coe1 ` M ) ` K ) ) ) ) $=
      ( cgsu co cco1 cfv wceq wi vn vm va wcel wral cmpt cfn cv wa c0 csn raleq
      cun anbi2d mpteq1 oveq2d fveq2d fveq1d eqeq12d imbi12d c0g cn0 cxp oveq2i
      mpt0 eqid gsum0 eqtri fveq2i a1i crg coe1z syl cvv fvex fvconst2g sylancr
      3eqtrd syl6eqr adantr coe1fzgsumdlem 3expia a2d impexp 3imtr4g findcard2s
      wn expd mpcom mpd ) AGCUDZBHUEZFDBHGUFZOPZQRZRZEBHFGQRRZUFZOPZSZMHUGUDZAW
      LWTTNXAAWLWTAWKBUAUHZUEZUIZFDBXBGUFZOPZQRZRZEBXBWQUFZOPZSZTAWKBUJUEZUIZFD
      BUJGUFZOPZQRZRZEBUJWQUFZOPZSZTAWKBUBUHZUEZUIZFDBYAGUFZOPZQRZRZEBYAWQUFZOP
      ZSZTZAWKBYAUCUHZUKUMZUEZUIZFDBYMGUFZOPZQRZRZEBYMWQUFZOPZSZTZAWLUIZWTTUAUB
      UCHXBUJSZXDXMXKXTUUEXCXLAWKBXBUJULUNUUEXHXQXJXSUUEFXGXPUUEXFXOQUUEXEXNDOB
      XBUJGUOUPUQURUUEXIXREOBXBUJWQUOUPUSUTXBYASZXDYCXKYJUUFXCYBAWKBXBYAULUNUUF
      XHYGXJYIUUFFXGYFUUFXFYEQUUFXEYDDOBXBYAGUOUPUQURUUFXIYHEOBXBYAWQUOUPUSUTXB
      YMSZXDYOXKUUBUUGXCYNAWKBXBYMULUNUUGXHYSXJUUAUUGFXGYRUUGXFYQQUUGXEYPDOBXBY
      MGUOUPUQURUUGXIYTEOBXBYMWQUOUPUSUTXBHSZXDUUDXKWTUUHXCWLAWKBXBHULUNUUHXHWP
      XJWSUUHFXGWOUUHXFWNQUUHXEWMDOBXBHGUOUPUQURUUHXIWREOBXBHWQUOUPUSUTAXTXLAXQ
      EVARZXSAXQFDVARZQRZRFVBUUIUKVCZRZUUIAFXPUUKXPUUKSAXOUUJQXODUJOPUUJXNUJDOB
      GVEVDDUUJUUJVFZVGVHVIVJURAFUUKUULAEVKUDUUKUULSKDEUUIUUJIUUNUUIVFZVLVMURAU
      UIVNUDFVBUDUUMUUISEVAVOLVBUUIFVNVPVQVRXSEUJOPUUIXRUJEOBWQVEVDEUUIUUOVGVHV
      SVTYAUGUDZYLYAUDWGZUIZAYBYJTZTAYNUUBTZTYKUUCUURAUUSUUTUUPUUQAUUSUUTTABCDE
      UBFGUCIJKLWAWBWCAYBYJWDAYNUUBWDWEWFWHWIWJ $.
  $}

  ${
    $d B k $.  $d K k $.  $d ph k $.  $d .* k $.
    gsummonply1.p $e |- P = ( Poly1 ` R ) $.
    gsummonply1.b $e |- B = ( Base ` P ) $.
    gsummonply1.x $e |- X = ( var1 ` R ) $.
    gsummonply1.e $e |- .^ = ( .g ` ( mulGrp ` P ) ) $.
    gsummonply1.r $e |- ( ph -> R e. Ring ) $.
    gsummonply1.k $e |- K = ( Base ` R ) $.
    gsummonply1.m $e |- .* = ( .s ` P ) $.
    gsummonply1.0 $e |- .0. = ( 0g ` R ) $.
    gsummonply1.a $e |- ( ph -> A. k e. NN0 A e. K ) $.
    gsummonply1.f $e |- ( ph -> ( k e. NN0 |-> A ) finSupp .0. ) $.
    $( A finite group sum of scaled monomials is a univariate polynomial.
       (Contributed by AV, 8-Oct-2019.) $)
    gsumsmonply1 $p |- ( ph -> ( P gsum ( k e. NN0
                                          |-> ( A .* ( k .^ X ) ) ) ) e. B ) $=
      ( cn0 cv co cmpt cvv c0g cfv eqid crg wcel ccmn ply1ring ringcmn 3syl a1i
      nn0ex r19.21bi w3a 3ad2ant1 simp3 simp2 cmgp ply1tmcl syl3anc fmptd clmod
      mpd3an3 ply1lmod csca wceq ply1sca ply1moncl sylan mptscmfsupp0 gsumcl
      syl ) AUBCFUBBFUCZJGUDZHUDZUEZDUFDUGUHZMWBUIZAEUJUKZDUJUKDULUKPDELUMDUNUO
      UBUFUKAUQUPZAFUBVTCWAAVRUBUKZBIUKZVTCUKZAWGFUBTURZAWFWGUSWDWGWFWHAWFWDWGP
      UTAWFWGVAAWFWGVBCBVRDEHGIDVCUHZJQLNRWJUIZOMVDVEVHWAUIVFAIUBDEBFHCUFVSWBKW
      EAWDDVGUKPDELVIVQAWDEDVJUHVKPDEUJLVLVQMWIAWDWFVSCUKPCVRDEGWJJLNWKOMVMVNWC
      SRUAVOVP $.

    $d A n s x $.  $d K n $.  $d L k n s x $.  $d P k n s $.  $d R k n $.
    $d X n s $.  $d .0. k s n x $.  $d .^ k n s x $.  $d .* n s $.
    $d ph n s x $.
    gsummonply1.l $e |- ( ph -> L e. NN0 ) $.
    $( A coefficient of the polynomial represented as a sum of scaled monomials
       is the coefficient of the corresponding scaled monomial.  (Contributed
       by AV, 13-Oct-2019.) $)
    gsummoncoe1 $p |- ( ph -> ( ( coe1 ` ( P gsum ( k e. NN0
                       |-> ( A .* ( k .^ X ) ) ) ) ) ` L ) = [_ L / k ]_ A ) $=
      ( vs vx vn cv clt wbr cn0 cmpt cfv wceq wi wral wrex cgsu cco1 csb cfsupp
      co cmap wcel cvv wf r19.21bi eqid fmptd cbs fvex eqeltri a1i nn0ex elmapg
      wb sylancl mpbird c0g fsuppmapnn0ub mpd wa simpr rspcsbela syl2anc fvmpts
      ad2antrr eqeq1d imbi2d ralimdva cc0 cfz nfv nfcv nfcsb1v nfeq1 nfim nfral
      biimpd nfan ccmn ply1ring ringcmn 3syl 3ad2ant1 simp3 simp2 cmgp ply1tmcl
      crg w3a syl3anc simplr weq breq2 csbeq1 imbi12d syl fveq2d cmnd ex syl5bi
      imp ralrimiva adantr cif ad3antrrr adantl mpteq2da oveq2d wn cle elfz2nn0
      eqtrd cr nn0re syld com12 com24 impcom 3eqtrd 3expia cbvral csbid ply1sca
      eqeq1i oveq1 syl5eq oveq1d clmod ply1lmod ringmgp vr1cl mulgnn0cl lmod0vs
      mgpbas sylan9eqr imim2d gsummptnn0fz fveq1d elfznn0 simpll adantlr sylan2
      csca 3jca fzfid coe1fzgsumd expcom syl11 coe1tm eqeq1 ifbid ring0cl ifcld
      fvmptd rspcva lelttr wo olcd wne df-ne lttri2 syl2anr syl5bbr exp4b com23
      expimpd 3adant2 sylbi expd syl7 iffalsed ringmnd ovex gsumz id eqcomd a2d
      com13 mpcom imp31 pm3.2 nn0red lenlt syl2an syl3anbrc sylbird eqcom ax-mp
      expr ifbi mpteq2i syl6eleq syl5com gsummpt1n0 syl6com pm2.61i rexlimdva )
      AUDUGZUEUGZUHUIZUXTFUJBUKZULZLUMZUNZUEUJUOZUDUJUPZJDFUJBFUGZKGVAZHVAZUKUQ
      VAZURULZULZFJBUSZUMZAUYBLUTUIZUYGUBAUYBIUJVBVAVCZLVDVCUYPUYGUNAUYQUJIUYBV
      EZAFUJBIUYBABIVCZFUJUAVFZUYBVGZVHAIVDVCZUJVDVCUYQUYRVOVUBAIEVIULZVDREVIVJ
      VKVLVMIUJUYBVDVDVNVPVQLEVRULZVDTEVRVJVKUEIUDUYBVDLVSVPVTAUYFUYOUDUJAUXSUJ
      VCZWAZUYFUYAFUXTBUSZLUMZUNZUEUJUOZUYOVUFUYEVUIUEUJVUFUXTUJVCZWAZUYEVUIVUL
      UYDVUHUYAVULUYCVUGLVULVUKVUGIVCZUYCVUGUMVUFVUKWBZVULVUKUYSFUJUOZVUMVUNAVU
      OVUEVUKUAWFFUXTUJBIWCWDFUXTBUJUYBIVUAWEWDWGWHWRWIVUFVUJUYOVUFVUJWAZUYMJDF
      WJUXSWKVAZUYJUKUQVAZURULZULEFVUQJUYJURULZULZUKZUQVAZUYNVUPJUYLVUSVUPUYKVU
      RURVUPCUYJUXSFDDVRULZVUFVUJFVUFFWLVUIFUEUJFUJWMUYAVUHFUYAFWLFVUGLFUXTBWNW
      OWPZWQWSZNVVDVGZADWTVCZVUEVUJAEXIVCZDXIVCZVVHQDEMXAZDXBXCWFAUYJCVCZFUJUOZ
      VUEVUJAVUOVVMUAAUYSVVLFUJAUYHUJVCZUYSVVLAVVNUYSXJZVVIUYSVVNVVLAVVNVVIUYSQ
      XDAVVNUYSXEAVVNUYSXFCBUYHDEHGIDXGULZKRMOSVVPVGZPNXHXKZUUAWIVTWFAVUEVUJXLV
      UFVUJUXSUYHUHUIZUYJVVDUMZUNZFUJUOZVUJVVSFUYHBUSZLUMZUNZFUJUOVUFVWBVUIVWEU
      EFUJVVEVWEUEWLUEFXMZUYAVVSVUHVWDUXTUYHUXSUHXNVWFVUGVWCLFUXTUYHBXOWGXPUUBV
      UFVWEVWAFUJVUFVVNWAZVWDVVTVVSVWDBLUMZVWGVVTVWCBLFBUUCUUEVWGVWHVVTVWHVWGUY
      JLUYIHVAZVVDBLUYIHUUFVWGVWIDUVDULZVRULZUYIHVAZVVDVWGLVWKUYIHALVWKUMVUEVVN
      ALVUDVWKTAEVWJVRAVVIEVWJUMQDEXIMUUDXQXRUUGWFUUHVWGDUUIVCZUYIDVIULZVCZVWLV
      VDUMAVWMVUEVVNAVVIVWMQDEMUUJXQWFVWGVVPXSVCZVVNKVWNVCZVWOAVWPVUEVVNAVVIVVJ
      VWPQVVKDVVPVVQUUKXCWFVUFVVNWBZAVWQVUEVVNAVVIVWQQVWNDEKOMVWNVGZUULXQWFVWNG
      VVPUYHKVWNDVVPVVQVWSUUOPUUMXKHVWJVWKVWNDUYIVVDVWSVWJVGSVWKVGVVGUUNWDYMUUP
      XTYAUUQWIYAYBUURXRUUSVUPFCDEJUYJVUQMNAVVIVUEVUJQWFAJUJVCZVUEVUJUCWFVUFVVL
      FVUQUOVUJVUFVVLFVUQVUFUYHVUQVCZWAVVOVVLVXAVUFVVNVVOUYHUXSUUTZVWGAVVNUYSAV
      UEVVNUVAVWRAVVNUYSVUEUYTUVBUVEUVCVVRXQYCYDVUPWJUXSUVFUVGVUPVVCEFVUQJUYHUM
      ZBLYEZUKZUQVAZUYNVUPVVBVXEEUQVUPFVUQVVAVXDVVFVUPVXAWAZUFJUFFXMZBLYEZVXDUJ
      VUTIVXGVVIUYSVVNVUTUFUJVXIUKUMAVVIVUEVUJVXAQYFVUPVXAUYSAVXAUYSUNVUEVUJVVN
      AUYSVXAAVVNUYSUYTUVHVXBUVIWFYBZVXAVVNVUPVXBYGUFBUYHDEHGIVVPKLTRMOSVVQPUVJ
      XKUFUGZJUMZVXIVXDUMVXGVXLVXHVXCBLVXKJUYHUVKUVLYGAVWTVUEVUJVXAUCYFVXGVXCBL
      IVXJALIVCZVUEVUJVXAAVVIVXMQIELRTUVMXQYFUVNUVOYHYIUXSJUHUIZVUPVXFUYNUMZUNV
      UPVXNVXOAVUEVUJVXNVXOUNZVWTAVUEVUJVXPUNUNUCVWTVUJVUEAVXPVWTVUJVUEAVXPUNUN
      ZVWTVUJWAVXNUYNLUMZUNZVXQVUIVXSUEJUJUXTJUMZUYAVXNVUHVXRUXTJUXSUHXNVXTVUGU
      YNLFUXTJBXOWGXPUVPAVUEVXSVXPAVUEVXSVXPUNVUFVXNVXRVXOAVUEVXNVXRVXOUNAVUEVX
      NWAZWAZVXRVXOVYBVXRWAZVXFEFVUQLUKZUQVAZLUYNVYCVXEVYDEUQVYCFVUQVXDLVYBVXRF
      VYBFWLFUYNLFJBWNWOWSVYCVXAWAVXCBLVYCVXAVXCYJZVYBVXAVYFUNZVXRVYAAVYGVUEVXN
      AVYGUNVUEVXAAVXNVYFVXAVUEAVXNVYFUNZUNAVWTVXAVUEVYHUCVXAVUEVWTVYHVXAVVNVUE
      UYHUXSYKUIZXJVUEVWTWAZVYHUNZUYHUXSYLVVNVYIVYKVUEVVNVYIVYKVVNVYJVYIVYHVVNV
      UEVWTVYIVYHUNVVNVUEWAZVWTVYIVXNVYFVYLVWTWAZVYIVXNWAZUYHJUHUIZVYFVYMUYHYNV
      CZUXSYNVCZJYNVCZVYNVYOUNVVNVYPVUEVWTUYHYOZWFVYLVYQVWTVUEVYQVVNUXSYOZYGYDV
      WTVYRVYLJYOZYGUYHUXSJUVQXKVYMVYOVYFVYMVYOWAZVYFJUYHUHUIZVYOUVRZWUBVYOWUCV
      YMVYOWBUVSVYFJUYHUVTZWUBWUDJUYHUWAVYMWUEWUDVOZVYOVWTVYRVYPWUFVYLWUAVVNVYP
      VUEVYSYDJUYHUWBUWCYDUWDVQXTYPUWEUWGUWFYBUWHUWIUWJUWKYQYRYBYSYDYBUWLYHYIVY
      BVYELUMZVXRVYBEXSVCZVUQVDVCZWUGAWUHVYAAVVIWUHQEUWMXQZYDWJUXSWKUWNZVUQFEVD
      LTUWOVPYDVXRLUYNUMVYBVXRUYNLVXRUWPUWQYGYTXTUXJUWRXTUWSXQXTYRUWTUXAYQVUPVX
      NYJZVUFWULWAZVXOVUFWULWUMUNVUJVUFWULUXBYDWUMBFVXEEVUQVDJLTAWUHVUEWULWUJWF
      WUIWUMWUKVLVUFWULJVUQVCZVUFWULJUXSYKUIZWUNAVYRVYQWUOWULVOVUEAJUCUXCVYTJUX
      SUXDUXEVUFWUOWUNVUFWUOWAVWTVUEWUOWUNAVWTVUEWUOUCWFAVUEWUOXLVUFWUOWBJUXSYL
      UXFXTUXGYBFVUQVXDUYHJUMZBLYEZVXCWUPVOVXDWUQUMJUYHUXHVXCWUPBLUXKUXIUXLVUFB
      VUCVCZFVUQUOWULVUFWURFVUQVXAVUFWURVXAVVNVUFWURVXBAVVNWURUNVUEAVVNWURAVVNW
      ABIVUCUYTRUXMXTYDUXNYSYCYDUXOUXPUXQYMYTXTYPUXRVT $.
  $}

  ${
    $d A l $.  $d B l $.  $d K k l $.  $d O k $.  $d P k l $.  $d Q k $.
    $d R k l $.  $d X k l $.  $d ph k l $.  $d .0. k l $.  $d .* k l $.
    $d .^ k l $.
    gsumply1eq.p $e |- P = ( Poly1 ` R ) $.
    gsumply1eq.x $e |- X = ( var1 ` R ) $.
    gsumply1eq.e $e |- .^ = ( .g ` ( mulGrp ` P ) ) $.
    gsumply1eq.r $e |- ( ph -> R e. Ring ) $.
    gsumply1eq.k $e |- K = ( Base ` R ) $.
    gsumply1eq.m $e |- .* = ( .s ` P ) $.
    gsumply1eq.0 $e |- .0. = ( 0g ` R ) $.
    gsumply1eq.a $e |- ( ph -> A. k e. NN0 A e. K ) $.
    gsumply1eq.f1 $e |- ( ph -> ( k e. NN0 |-> A ) finSupp .0. ) $.
    gsumply1eq.b $e |- ( ph -> A. k e. NN0 B e. K ) $.
    gsumply1eq.f2 $e |- ( ph -> ( k e. NN0 |-> B ) finSupp .0. ) $.
    gsumply1eq.o $e |- ( ph -> O = ( P gsum ( k e. NN0
                                              |-> ( A .* ( k .^ X ) ) ) ) ) $.
    gsumply1eq.q $e |- ( ph -> Q = ( P gsum ( k e. NN0
                                          |-> ( B .* ( k .^ X ) ) ) ) ) $.
    $( Two univariate polynomials given as (finitely supported) sum of scaled
       monomials are equal iff the corresponding coefficients are equal.
       (Contributed by AV, 21-Nov-2019.) $)
    gsumply1eq $p |- ( ph -> ( O = Q <-> A. k e. NN0 A = B ) ) $=
      ( vl wceq cv cco1 cfv cn0 wral crg wcel wb co cmpt cgsu eqid gsumsmonply1
      cbs eqeltrd w3a ply1coe1eq bicomd syl3anc wa csb adantr nfcv nfcsb1v nfov
      csbeq1a oveq1 oveq12d cbvmpt oveq2i syl6eq fveq2d fveq1d nfv nfel1 eleq1d
      cbvral sylib cfsupp wbr syl5eqbrr simpr gsummoncoe1 csbco csbid eqtri a1i
      eqtrd oveq2d eqeq12d ralbidva bitrd ) AKEUHZGUIZKUJUKZUKZXBEUJUKZUKZUHZGU
      LUMZBCUHZGULUMAFUNUOZKDVBUKZUOZEXKUOZXAXHUPQAKDGULBXBLHUQZIUQZURZUSUQZXKU
      EABXKDFGHIJLMNXKUTZOPQRSTUAUBVAVCAEDGULCXNIUQZURZUSUQZXKUFACXKDFGHIJLMNXR
      OPQRSTUCUDVAVCXJXLXMVDXHXAXCXKXEDFGKENXRXCUTXEUTVEVFVGAXGXIGULAXBULUOZVHZ
      XDBXFCYCXDXBDUGULGUGUIZBVIZYDLHUQZIUQZURZUSUQZUJUKZUKZBYCXBXCYJYCKYIUJYCK
      XQYIAKXQUHYBUEVJXPYHDUSGUGULXOYGUGXOVKGYEYFIGYDBVLZGIVKZGYFVKZVMXBYDUHZBY
      EXNYFIGYDBVNZXBYDLHVOZVPVQVRVSVTWAYCYKUGXBYEVIZBYCYEXKDFUGHIJXBLMNXROPAXJ
      YBQVJZRSTAYEJUOZUGULUMZYBABJUOZGULUMUUAUAUUBYTGUGULUUBUGWBGYEJYLWCYOBYEJY
      PWDWEWFVJAUGULYEURZMWGWHYBAUUCGULBURMWGGUGULBYEUGBVKYLYPVQUBWIVJAYBWJZWKY
      RGXBBVIBGUGXBBWLGBWMWNVSWPYCXFXBDUGULGYDCVIZYFIUQZURZUSUQZUJUKZUKZCYCXBXE
      UUIYCEUUHUJYCEYAUUHAEYAUHYBUFVJYCXTUUGDUSXTUUGUHYCGUGULXSUUFUGXSVKGUUEYFI
      GYDCVLZYMYNVMYOCUUEXNYFIGYDCVNZYQVPVQWOWQWPVTWAYCUUJUGXBUUEVIZCYCUUEXKDFU
      GHIJXBLMNXROPYSRSTAUUEJUOZUGULUMZYBACJUOZGULUMUUOUCUUPUUNGUGULUUPUGWBGUUE
      JUUKWCYOCUUEJUULWDWEWFVJAUGULUUEURZMWGWHYBAUUQGULCURMWGGUGULCUUEUGCVKUUKU
      ULVQUDWIVJUUDWKUUMGXBCVICGUGXBCWLGCWMWNVSWPWRWSWT $.
  $}

  ${
    $d A k $.  $d K k $.  $d N k $.  $d P k $.  $d R k $.  $d X k $.
    $d .X. k $.  $d .x. k $.  $d .^ k $.  $d .+ k $.
    cply1binom.p $e |- P = ( Poly1 ` R ) $.
    cply1binom.x $e |- X = ( var1 ` R ) $.
    cply1binom.a $e |- .+ = ( +g ` P ) $.
    cply1binom.m $e |- .X. = ( .r ` P ) $.
    cply1binom.t $e |- .x. = ( .g ` P ) $.
    cply1binom.g $e |- G = ( mulGrp ` P ) $.
    cply1binom.e $e |- .^ = ( .g ` G ) $.
    ${
      cply1binom.b $e |- B = ( Base ` P ) $.
      $( The binomial theorem for linear polynomials (monic polynomials of
         degree 1) over commutative rings: ` ( X + A ) ^ N ` is the sum from
         ` k = 0 ` to ` N ` of
         ` ( N _C k ) x. ( ( A ^ ( N - k ) ) x. ( X ^ k ) ) ` .  (Contributed
         by AV, 25-Aug-2019.) $)
      lply1binom $p |- ( ( R e. CRing /\ N e. NN0 /\ A e. B )
                      -> ( N .^ ( X .+ A ) ) = ( P gsum ( k e. ( 0 ... N )
          |-> ( ( N _C k ) .x. ( ( ( N - k ) .^ A ) .X. ( k .^ X ) ) ) ) ) ) $=
        ( ccrg wcel cn0 w3a co cc0 cfz cv cbc cmin cmpt cgsu ccmn wceq crngring
        crg ply1ring ringcmn 3ad2ant1 vr1cl syl simp3 cmncom syl3anc oveq2d cbs
        3syl cfv ply1crng simp2 eleq2i biimpi 3ad2ant3 syl6eleq crngbinom eqtrd
        eqid syl22anc ) EUAUBZKUCUBZABUBZUDZKLADUEZIUEKALDUEZIUEZCHUFKUGUEKHUHZ
        UIUEKWFUJUEAIUEWFLIUEGUEFUEUKULUEZWBWCWDKIWBCUMUBZLBUBZWAWCWDUNVSVTWHWA
        VSEUPUBZCUPUBWHEUOZCEMUQCURVGUSVSVTWIWAVSWJWIWKBCELNMTUTVAZUSVSVTWAVBBD
        CLATOVCVDVEWBCUAUBZVTACVFVHZUBZLWNUBZWEWGUNVSVTWMWACEMVIUSVSVTWAVJWAVSW
        OVTWAWOBWNATVKVLVMVSVTWPWAVSLBWNWLTVNUSALDCWNFGHIJKWNVQPQORSVOVRVP $.
    $}

    $d S k $.
    lply1binomsc.k $e |- K = ( Base ` R ) $.
    lply1binomsc.s $e |- S = ( algSc ` P ) $.
    lply1binomsc.h $e |- H = ( mulGrp ` R ) $.
    lply1binomsc.e $e |- E = ( .g ` H ) $.
    $( The binomial theorem for linear polynomials (monic polynomials of degree
       1) over commutative rings, expressed by an element of this ring:
       ` ( X + A ) ^ N ` is the sum from ` k = 0 ` to ` N ` of
       ` ( N _C k ) x. ( ( A ^ ( N - k ) ) x. ( X ^ k ) ) ` .  (Contributed by
       AV, 25-Aug-2019.) $)
    lply1binomsc $p |- ( ( R e. CRing /\ N e. NN0 /\ A e. K )
                   -> ( N .^ ( X .+ ( S ` A ) ) ) = ( P gsum ( k e. ( 0 ... N )
                             |-> ( ( N _C k ) .x. ( ( S ` ( ( N - k ) E A ) )
                                                    .X. ( k .^ X ) ) ) ) ) ) $=
      ( ccrg wcel cn0 w3a cfv co cc0 cfz cv cbc cmin cmpt cgsu cbs wceq wf csca
      eqid crg crngring ply1ring syl 3ad2ant1 clmod asclf ply1sca fveq2d syl5eq
      ply1lmod feq2d mpbird simp3 ffvelrnd lply1binom syld3an3 wa cur cvsca cmg
      cmgp casa ply1assa adantr fznn0sub adantl eleq2d biimpa ringidcl syl13anc
      3adant2 assamulgscm eqcomd oveqd ringmgp mgpbas ringidval mulgnn0z syl2an
      cmnd oveq12d eqtrd asclval oveq2d simpr syl6eleq mulgnn0cl syl3anc syl6eq
      eleqtrrd 3eqtr4d oveq1d mpteq2dva ) DUGUHZNUIUHZAMUHZUJZNOAEUKZCULJULZBHU
      MNUNULZNHUOZUPULZNYFUQULZYCJULZYFOJULZGULZFULZURZUSULZBHYEYGYHAIULZEUKZYJ
      GULZFULZURZUSULXSXTYAYCBUTUKZUHYDYNVAYBMYTAEYBMYTEVBBVCUKZUTUKZYTEVBYBEYT
      UUAUUBBUDUUAVDZXSXTBVEUHZYAXSDVEUHZUUDDVFZBDPVGVHZVIXSXTBVJUHZYAXSUUEUUHU
      UFBDPVOVHVIUUBVDZYTVDZVKYBMUUBYTEYBMDUTUKZUUBUCYBDUUAUTXSXTDUUAVAZYABDUGP
      VLZVIZVMVNVPVQXSXTYAVRVSYCYTBCDFGHJKNOPQRSTUAUBUUJVTWAYBYMYSBUSYBHYEYLYRY
      BYFYEUHZWBZYKYQYGFUUPYIYPYJGUUPYHABWCUKZBWDUKZULZJULZYOUUQUURULZYIYPUUPUU
      TYHAUUAWFUKZWEUKZULZYHUUQJULZUURULZUVAUUPBWGUHZYHUIUHZAUUBUHZUUQYTUHZUUTU
      VFVAYBUVGUUOXSXTUVGYABDPWHVIWIUUOUVHYBYFUMNWJZWKZYBUVIUUOXSYAUVIXTXSYAUVI
      XSMUUBAXSMUUKUUBUCXSDUUAUTUUMVMVNWLWMWPWIZYBUVJUUOXSXTUVJYAXSUUDUVJUUGYTB
      UUQUUJUUQVDZWNVHVIWIAUUBUURJUVCUUAUVBKYHYTBUUQUUJUUCUUIUURVDZUVBVDUVCVDUA
      UBWQWOUUPUVDYOUVEUUQUURUUPUVCIYHAUUPIUVCYBIUVCVAZUUOXSXTUVPYAXSILWEUKUVCU
      FXSLUVBWEXSLDWFUKUVBUEXSDUUAWFUUMVMVNVMVNVIWIWRWSYBKXEUHZUVHUVEUUQVAUUOXS
      XTUVQYAXSUUDUVQUUGBKUAWTVHVIUVKYTJKYHUUQYTBKUAUUJXAUBBUUQKUAUVNXBXCXDXFXG
      UUPYCUUSYHJUUPUVIYCUUSVAUVMEUURUUQUUAUUBBAUDUUCUUIUVOUVNXHVHXIUUPYOUUBUHY
      PUVAVAUUPYOLUTUKZUUBUUPLXEUHZUVHAUVRUHZYOUVRUHYBUVSUUOXSXTUVSYAXSUUEUVSUU
      FDLUEWTVHVIWIUVLYBUVTUUOXSYAUVTXTXSYAWBAMUVRXSYAXJMDLUEUCXAXKWPWIUVRILYHA
      UVRVDUFXLXMUUPUUBUUKUVRUUPUUADUTUUPDUUAYBUULUUOUUNWIWRVMUUKDLUEUUKVDXAXNX
      OEUURUUQUUAUUBBYOUDUUCUUIUVOUVNXHVHXPXQXIXRXIXG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Univariate polynomial evaluation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c evalSub1 $. $( Evaluation of a univariate polynomial in a subring $)
  $c eval1 $. $( Evaluation of a univariate polynomial $)

  $( Evaluation of a univariate polynomial in a subring. $)
  ces1 $a class evalSub1 $.

  $( Evaluation of a univariate polynomial. $)
  ce1 $a class eval1 $.

  ${
    $d b r s x y $.
    $( Define the evaluation map for the univariate polynomial algebra.  The
       function ` ( S evalSub1 R ) : V --> ( S ^m S ) ` makes sense when ` S `
       is a ring and ` R ` is a subring of ` S ` , and where ` V ` is the set
       of polynomials in ` ( Poly1 `` R ) ` .  This function maps an element of
       the formal polynomial algebra (with coefficients in ` R ` ) to a
       function from assignments to the variable from ` S ` into an element of
       ` S ` formed by evaluating the polynomial with the given assignment.
       (Contributed by Mario Carneiro, 12-Jun-2015.) $)
    df-evls1 $a |- evalSub1 = ( s e. _V , r e. ~P ( Base ` s ) |->
      [_ ( Base ` s ) / b ]_ ( ( x e. ( b ^m ( b ^m 1o ) ) |-> ( x o.
        ( y e. b |-> ( 1o X. { y } ) ) ) ) o. ( ( 1o evalSub s ) ` r ) ) ) $.

    $( Define the evaluation map for the univariate polynomial algebra.  The
       function ` ( eval1 `` R ) : V --> ( R ^m R ) ` makes sense when ` R ` is
       a ring, and ` V ` is the set of polynomials in ` ( Poly1 `` R ) ` .
       This function maps an element of the formal polynomial algebra (with
       coefficients in ` R ` ) to a function from assignments to the variable
       from ` R ` into an element of ` R ` formed by evaluating the polynomial
       with the given assignment.  (Contributed by Mario Carneiro,
       12-Jun-2015.) $)
    df-evl1 $a |- eval1 = ( r e. _V |-> [_ ( Base ` r ) / b ]_
    ( ( x e. ( b ^m ( b ^m 1o ) ) |-> ( x o.
        ( y e. b |-> ( 1o X. { y } ) ) ) ) o. ( 1o eval r ) ) ) $.
  $}

  ${
    $d b r s x y $.
    $( Well-behaved binary operation property of ` evalSub1 ` .  (Contributed
       by AV, 7-Sep-2019.) $)
    reldmevls1 $p |- Rel dom evalSub1 $=
      ( vs vr vb vx vy cvv cv cbs cfv cpw c1o cmap co csn cxp cmpt ccom ces csb
      ces1 df-evls1 reldmmpt2 ) ABFAGZHIZJCUDDCGZUEKLMLMDGEUEKEGNOPQPBGKUCRMIQS
      TDEABCUAUB $.

    $d R e $.  $d R s $.  $d S e $.  $d S s $.
    ply1frcl.q $e |- Q = ran ( S evalSub1 R ) $.
    $( Reverse closure for the set of univariate polynomial functions.
       (Contributed by AV, 9-Sep-2019.) $)
    ply1frcl $p |- ( X e. Q -> ( S e. _V /\ R e. ~P ( Base ` S ) ) ) $=
      ( ve vs vr vb vx vy wcel ces1 co c0 cvv cbs cfv cv c1o crn wne cpw eleq2s
      ne0i wceq rneq rn0 syl6eq necon3i wex cop csn cxp ciun cdm cmap cmpt ccom
      wa n0 df-evls1 dmmpt2ssx elfvdm df-ov sseldi fveq2 pweqd opeliunxp2 sylib
      ces csb exlimiv sylbi 3syl ) DALCBMNZUAZOUBZVPOUBZCPLBCQRZUCZLUTZVRDVQAVQ
      DUEEUDVPOVQOVPOUFVQOUAOVPOUGUHUIUJVSFSZVPLZFUKWBFVPVAWDWBFWDCBULZGPGSZUMW
      FQRZUCZUNUOZLWBWDMUPZWIWEGHPWHIWGJISZWKTUQNUQNJSKWKTKSUMUNURUSURHSTWFVKNR
      USVLMJKGHIVBVCWEWJLWCWEMRVPWCWEMVDCBMVEUDVFGPWHCBWAWFCUFWGVTWFCQVGVHVIVJV
      MVNVO $.
  $}

  ${
    $d B b r s x y $.  $d E r s $.  $d R b r s $.  $d S b r s $.
    evls1fval.q $e |- Q = ( S evalSub1 R ) $.
    evls1fval.e $e |- E = ( 1o evalSub S ) $.
    evls1fval.b $e |- B = ( Base ` S ) $.
    $( Value of the univariate polynomial evaluation map function.
       (Contributed by AV, 7-Sep-2019.) $)
    evls1fval $p |- ( ( S e. V /\ R e. ~P B )
                     -> Q = ( ( x e. ( B ^m ( B ^m 1o ) )
              |-> ( x o. ( y e. B |-> ( 1o X. { y } ) ) ) ) o. ( E ` R ) ) ) $=
      ( vb wcel co c1o cmap cv ccom cvv wceq vs vr cpw wa ces1 csn cxp cmpt cfv
      elex adantr simpr ovex mptex fvex a1i cbs ces csb syl6eqr csbeq1d eqeltri
      fveq2 id oveq1 oveq12d mpteq1 coeq2d mpteq12dv coeq1d adantl csbied oveq2
      coex fveq12d 3eqtrd pweqd df-evls1 ovmpt2x syl3anc syl5eq ) FHMZECUCZMZUD
      ZDFEUENZACCOPNZPNZAQZBCOBQUFUGZUHZRZUHZEGUIZRZIWEFSMZWDWOSMZWFWOTWBWPWDFH
      UJUKWBWDULWQWEWMWNAWHWLCWGPUMUNEGUOVNUPUAUBFESUAQZUQUIZUCLWSALQZWTOPNZPNZ
      WIBWTWJUHZRZUHZUBQZOWRURNZUIZRZUSZWOUESWCWRFTZXFETZUDZXJLCXIUSWMXHRZWOXML
      WSCXIXMWSFUQUIZCXKWSXOTXLWRFUQVCZUKKUTVAXMLCXIXNSCSMXMCXOSKFUQUOVBUPWTCTZ
      XIXNTXMXQXEWMXHXQAXBXDWHWLXQWTCXAWGPXQVDWTCOPVEVFXQXCWKWIBWTCWJVGVHVIVJVK
      VLXMXHWNWMXMXFEXGGXKXGGTXLXKXGOFURNGWRFOURVMJUTUKXKXLULVOVHVPXKWSCXKWSXOC
      XPKUTVQABUAUBLVRVSVTWA $.

    $d A x $.  $d E x $.  $d R x $.
    evls1val.m $e |- M = ( 1o mPoly ( S |`s R ) ) $.
    evls1val.k $e |- K = ( Base ` M ) $.
    $( Value of the univariate polynomial evaluation map.  (Contributed by AV,
       10-Sep-2019.) $)
    evls1val $p |- ( ( S e. CRing /\ R e. ( SubRing ` S ) /\ A e. K )
                     -> ( Q ` A ) = ( ( ( E ` R ) ` A )
                                      o. ( y e. B |-> ( 1o X. { y } ) ) ) ) $=
      ( vx wcel cfv c1o co wceq ccrg csubrg w3a cmap cv csn cxp cmpt wa cpw wss
      ccom subrgss adantl elpwg mpbird evls1fval syldan fveq1d 3adant3 cpws cbs
      wb wf crh con0 1on a1i simp1 simp2 cress fveq1i eqid evlsrhm syl3anc rhmf
      ces syl simp3 fvco3 syl2anc ffvelrnd cvv ovex sylancl eleqtrrd coeq1 fvex
      pwsbas eqeltri mptex coex fvmpt 3eqtrd ) FUAPZEFUBQZPZBHPZUCZBDQZBOCCRUDS
      ZUDSZOUEZACRAUEUFUGZUHZULZUHZEGQZULZQZBXHQZXGQZXKXEULZWOWQWTXJTWRWOWQUIZB
      DXIWOWQECUJPZDXITXNXOECUKZWQXPWOECFLUMUNWQXOXPVCWOECWPUOUNUPOACDEFGUAJKLU
      QURUSUTWSHFXAVASZVBQZXHVDZWRXJXLTWSXHIXQVESPZXSWSRVFPZWOWQXTYAWSVGVHWOWQW
      RVIZWOWQWRVJCXHEFXQFEVKSZRVFIEGRFVQSKVLMYCVMXQVMZLVNVOHXRIXQXHNXRVMVPVRZW
      OWQWRVSZHXRBXGXHVTWAWSXKXBPXLXMTWSXKXRXBWSHXRBXHYEYFWBWSWOXAWCPXBXRTYBCRU
      DWDCFXAUAWCXQYDLWIWEWFOXKXFXMXBXGXCXKXEWGXGVMXKXEBXHWHACXDCFVBQWCLFVBWHWJ
      WKWLWMVRWN $.
  $}

  ${
    $d B x y $.  $d R x $.  $d T x $.
    evl1rhmlem.b $e |- B = ( Base ` R ) $.
    evl1rhmlem.t $e |- T = ( R ^s B ) $.
    evl1rhmlem.f $e |- F = ( x e. ( B ^m ( B ^m 1o ) )
                             |-> ( x o. ( y e. B |-> ( 1o X. { y } ) ) ) ) $.
    $( Lemma for ~ evl1rhm and ~ evls1rhm (formerly part of the proof of
       ~ evl1rhm ):  The first function of the composition forming the
       univariate polynomial evaluation map function for a (sub)ring is a ring
       homomorphism.  (Contributed by AV, 11-Sep-2019.) $)
    evls1rhmlem $p |- ( R e. CRing
                                -> F e. ( ( R ^s ( B ^m 1o ) ) RingHom T ) ) $=
      ( ccrg wcel c1o cmap co cbs cfv cv cmpt cvv eqid cpws csn cxp ccom pwsbas
      crh wceq ovex mpan2 mpteq1d syl5eq crngring fvex eqeltri wf1o wf c0 df1o2
      a1i 0ex mapsnf1o3 f1of mp1i pwsco1rhm eqeltrd ) DJKZFADCLMNZUANZOPZAQBCLB
      QUBUCRZUDZRZVHEUFNVFFACVGMNZVKRVLIVFAVMVIVKVFVGSKZVMVIUGCLMUHZCDVGJSVHVHT
      ZGUEUIUJUKVFCVGVIDAVJSSEVHHVPVITDULCSKVFCDOPSGDOUMUNZUSVNVFVOUSCVGVJUOCVG
      VJUPVFBCLVJUQURVQUTVJTVACVGVJVBVCVDVE $.
  $}

  ${
    $d B x y $.  $d R x y $.  $d S x y $.  $d T x $.  $d U x y $.  $d W x y $.
    evls1rhm.q $e |- Q = ( S evalSub1 R ) $.
    evls1rhm.b $e |- B = ( Base ` S ) $.
    evls1rhm.t $e |- T = ( S ^s B ) $.
    evls1rhm.u $e |- U = ( S |`s R ) $.
    evls1rhm.w $e |- W = ( Poly1 ` U ) $.
    $( Polynomial evaluation is a homomorphism (into the product ring).
       (Contributed by AV, 11-Sep-2019.) $)
    evls1rhm $p |- ( ( S e. CRing /\ R e. ( SubRing ` S ) )
                     -> Q e. ( W RingHom T ) ) $=
      ( vx vy wcel cfv wa c1o co eqid ccrg csubrg cmap cv csn cxp cmpt ccom ces
      crh cpw wceq wss subrgss adantl elpwg mpbird evls1fval syldan evls1rhmlem
      wb cpws adantr cmpl con0 1on evlsrhm mp3an1 cbs eqidd cps1 ply1bas cplusg
      ply1plusg oveqdr cmulr ply1mulr rhmpropd eleqtrrd rhmco syl2anc eqeltrd
      a1i ) DUAOZCDUBPZOZQZBMAARUCSZUCSMUDZNARNUDZUEUFUGUHUGZCRDUISZPZUHZGEUJSZ
      WDWFCAUKOZBWNULWGWPCAUMZWFWQWDCADIUNUOWFWPWQVAWDCAWEUPUOUQMNABCDWLUAHWLTI
      URUSWGWKDWHVBSZEUJSOZWMGWRUJSZOWNWOOWDWSWFMNADEWKIJWKTUTVCWGWMRFVDSZWRUJS
      ZWTRVEOWDWFWMXBOVFAWMCDWRFRVEXAWMTXATZKWRTIVGVHWGMNGVIPZWRVIPZGWRXAWRWGXD
      VJWGXEVJZXDXAVIPULWGGFFVKPZXDLXGTXDTVLWCXFWGWIXDOWJXDOQZMNGVMPZXAVMPZXIXJ
      ULWGXIFXAGLXCXITVNWCVOWGWIXEOWJXEOQQZWIWJWRVMPSVJWGXHMNGVPPZXAVPPZXLXMULW
      GFXAXLGLXCXLTVQWCVOXKWIWJWRVPPSVJVRVSGWREWKWMVTWAWB $.
  $}

  ${
    $d B x y z $.  $d R x y $.  $d S x y $.  $d X x y z $.  $d ph x y $.
    evls1sca.q $e |- Q = ( S evalSub1 R ) $.
    evls1sca.w $e |- W = ( Poly1 ` U ) $.
    evls1sca.u $e |- U = ( S |`s R ) $.
    evls1sca.b $e |- B = ( Base ` S ) $.
    evls1sca.a $e |- A = ( algSc ` W ) $.
    evls1sca.s $e |- ( ph -> S e. CRing ) $.
    evls1sca.r $e |- ( ph -> R e. ( SubRing ` S ) ) $.
    evls1sca.x $e |- ( ph -> X e. R ) $.
    $( Univariate polynomial evaluation maps scalars to constant functions.
       (Contributed by AV, 8-Sep-2019.) $)
    evls1sca $p |- ( ph -> ( Q ` ( A ` X ) ) = ( B X. { X } ) ) $=
      ( cfv wcel cvv vx vy vz c1o cmap co cv csn cxp cmpt ccom ces cmpl cpws wf
      cbs wceq crh con0 ccrg csubrg 1on a1i eqid evlsrhm syl3anc rhmf subrgring
      syl crg ply1ring clmod ply1lmod asclf wss subrgss ressbas2 ply1sca fveq2d
      csca eqtrd cps1 ply1bas eqcomd feq23d mpbird ffvelrnd fvco3 syl2anc cascl
      ply1ascl syl6eq fveq1d evlssca eqidd coeq1 adantl sseldd fconst6g eqeltri
      fvex ovex elmapd snex xpex mptexg coexg fvmptd wa pm3.2i elmapg fconstmpt
      wb fmptco 3eqtrd cpw elpwg evls1fval 3eqtr4d ) AIBRZUACCUDUEUFZUEUFZUAUGZ
      UBCUDUBUGZUHUIZUJZUKZUJZEUDFULUFZRZUKZRZUBCIUJZXTDRCIUHZUIZAYLXTYJRZYHRZY
      AYNUIZYHRZYMAUDGUMUFZUPRZFYAUNUFZUPRZYJUOZXTUUASYLYQUQAYJYTUUBURUFSZUUDAU
      DUSSZFUTSZEFVARZSZUUEUUFAVBVCZOPCYJEFUUBGUDUSYTYJVDZYTVDZLUUBVDMVEVFUUAUU
      CYTUUBYJUUAVDUUCVDVGVIAEUUAIBAEUUABUOHVTRZUPRZHUPRZBUOABUUOUUMUUNHNUUMVDA
      GVJSZHVJSAUUIUUPPEFGLVHVIZHGKVKVIAUUPHVLSUUQHGKVMVIUUNVDUUOVDZVNAEUUAUUNU
      UOBAEGUPRZUUNAECVOZEUUSUQAUUIUUTPECFMVPZVIZECGFLMVQVIAGUUMUPAUUPGUUMUQUUQ
      HGVJKVRVIVSWAAUUOUUAUUOUUAUQAHGGWBRZUUOKUVCVDUURWCVCWDWEWFQWGUUAUUCXTYHYJ
      WHWIAYPYRYHAYPIYTWJRZRZYJRYRAXTUVEYJAIBUVDABHWJRZUVDBUVFUQANVCUVFHGKUVFVD
      WKWLWMVSAUVDCYJEFGUDUSYTIUUKUULLMUVDVDUUJOPQWNWAVSAYSYRYFUKZYMAUAYRYGUVGY
      BYHTAYHWOYCYRUQYGUVGUQAYCYRYFWPWQAYRYBSYACYRUOZAICSUVHAECIUVBQWRYAICWSVIA
      CYAYRTTCTSZACFUPRTMFUPXAWTZVCZYATSACUDUEXBZVCXCWFAYRTSZYFTSZUVGTSUVMAYAYN
      UVLIXDXEVCAUVIUVNUVKUBCYETXFVIYRYFTTXGWIXHAUBUCCYAYEIIYFYRAYDCSZXIZYEYASZ
      UDCYEUOZUVOUVRAUDYDCWSWQUVPUVIUUFXIZUVQUVRXMUVSUVPUVIUUFUVJVBXJVCCUDYETUS
      XKVIWFAYFWOYRUCYAIUJUQAUCYAIXLVCUCUGYEUQIWOXNWAXOAXTDYKAUUGECXPSZDYKUQOAU
      UIUVTPUUIUVTUUTUVAECUUHXQWFVIUAUBCDEFYIUTJYIVDMXRWIWMYOYMUQAUBCIXLVCXS $.
  $}

  ${
    $d B x $.  $d N x $.  $d Q x $.  $d ph x $.
    evls1gsumadd.q $e |- Q = ( S evalSub1 R ) $.
    evls1gsumadd.k $e |- K = ( Base ` S ) $.
    evls1gsumadd.w $e |- W = ( Poly1 ` U ) $.
    evls1gsumadd.0 $e |- .0. = ( 0g ` W ) $.
    evls1gsumadd.u $e |- U = ( S |`s R ) $.
    evls1gsumadd.p $e |- P = ( S ^s K ) $.
    evls1gsumadd.b $e |- B = ( Base ` W ) $.
    evls1gsumadd.s $e |- ( ph -> S e. CRing ) $.
    evls1gsumadd.r $e |- ( ph -> R e. ( SubRing ` S ) ) $.
    evls1gsumadd.y $e |- ( ( ph /\ x e. N ) -> Y e. B ) $.
    evls1gsumadd.n $e |- ( ph -> N C_ NN0 ) $.
    evls1gsumadd.f $e |- ( ph -> ( x e. N |-> Y ) finSupp .0. ) $.
    $( Univariate polynomial evaluation maps (additive) group sums to group
       sums.  (Contributed by AV, 14-Sep-2019.) $)
    evls1gsumadd $p |- ( ph -> ( Q ` ( W gsum ( x e. N |-> Y ) ) )
                         = ( P gsum ( x e. N |-> ( Q ` Y ) ) ) ) $=
      ( cfv cmpt cgsu co cvv crg wcel ccmn csubrg subrgring ply1ring ringcmn wa
      syl 3syl cmnd ccrg crngring cbs eqeltri jctir pwsring ringmnd nn0ex ssexd
      fvex cn0 a1i cghm cmhm evls1rhm syl2anc rhmghm ghmmhm gsummptmhm eqcomd
      crh ) ADBJLEUFUGUHUIKBJLUGUHUIEUFABJCLKDEUJMTQAHUKULZKUKULKUMULAFGUNUFULZ
      WCUBFGHRUOUSKHPUPKUQUTAGUKULZIUJULZURDUKULDVAULAWEWFAGVBULZWEUAGVCUSIGVDU
      FUJOGVDVKVEVFGIUJDSVGDVHUTAJVLUJVLUJULAVIVMUDVJAEKDWBUIULZEKDVNUIULEKDVOU
      IULAWGWDWHUAUBIEFGDHKNOSRPVPVQKDEVRKDEVSUTUCUEVTWA $.
  $}

  ${
    $d B x $.  $d N x $.  $d Q x $.  $d ph x $.
    evls1gsummul.q $e |- Q = ( S evalSub1 R ) $.
    evls1gsummul.k $e |- K = ( Base ` S ) $.
    evls1gsummul.w $e |- W = ( Poly1 ` U ) $.
    evls1gsummul.g $e |- G = ( mulGrp ` W ) $.
    evls1gsummul.1 $e |- .1. = ( 1r ` W ) $.
    evls1gsummul.u $e |- U = ( S |`s R ) $.
    evls1gsummul.p $e |- P = ( S ^s K ) $.
    evls1gsummul.h $e |- H = ( mulGrp ` P ) $.
    evls1gsummul.b $e |- B = ( Base ` W ) $.
    evls1gsummul.s $e |- ( ph -> S e. CRing ) $.
    evls1gsummul.r $e |- ( ph -> R e. ( SubRing ` S ) ) $.
    evls1gsummul.y $e |- ( ( ph /\ x e. N ) -> Y e. B ) $.
    evls1gsummul.n $e |- ( ph -> N C_ NN0 ) $.
    evls1gsummul.f $e |- ( ph -> ( x e. N |-> Y ) finSupp .1. ) $.
    $( Univariate polynomial evaluation maps (multiplicative) group sums to
       group sums.  (Contributed by AV, 14-Sep-2019.) $)
    evls1gsummul $p |- ( ph -> ( Q ` ( G gsum ( x e. N |-> Y ) ) )
                         = ( H gsum ( x e. N |-> ( Q ` Y ) ) ) ) $=
      ( cfv cmpt cgsu co cvv mgpbas ringidval ccrg wcel ccmn subrgcrng ply1crng
      csubrg syl2anc crngmgp 3syl crg wa cmnd crngring syl fvex eqeltri pwsring
      cbs jctir ringmgp cn0 nn0ex a1i ssexd crh cmhm evls1rhm rhmmhm gsummptmhm
      eqcomd ) AKBMOEUJUKULUMJBMOUKULUMEUJABMCOJKEUNICNJSUDUONIJSTUPAHUQURZNUQU
      RJUSURAGUQURZFGVBUJURZWGUEUFFGHUAUTVCNHRVANJSVDVEAGVFURZLUNURZVGDVFURKVHU
      RAWJWKAWHWJUEGVIVJLGVNUJUNQGVNVKVLVOGLUNDUBVMDKUCVPVEAMVQUNVQUNURAVRVSUHV
      TAENDWAUMURZEJKWBUMURAWHWIWLUEUFLEFGDHNPQUBUARWCVCNDEJKSUCWDVJUGUIWEWF $.
  $}

  ${
    evls1varpw.q $e |- Q = ( S evalSub1 R ) $.
    evls1varpw.u $e |- U = ( S |`s R ) $.
    evls1varpw.w $e |- W = ( Poly1 ` U ) $.
    evls1varpw.g $e |- G = ( mulGrp ` W ) $.
    evls1varpw.x $e |- X = ( var1 ` U ) $.
    evls1varpw.b $e |- B = ( Base ` S ) $.
    evls1varpw.e $e |- .^ = ( .g ` G ) $.
    evls1varpw.s $e |- ( ph -> S e. CRing ) $.
    evls1varpw.r $e |- ( ph -> R e. ( SubRing ` S ) ) $.
    evls1varpw.n $e |- ( ph -> N e. NN0 ) $.
    $( Univariate polynomial evaluation for subrings maps the exponentiation of
       a variable to the exponentiation of the evaluated variable.
       (Contributed by AV, 14-Sep-2019.) $)
    evls1varpw $p |- ( ph -> ( Q ` ( N .^ X ) )
                        = ( N ( .g ` ( mulGrp ` ( S ^s B ) ) ) ( Q ` X ) ) ) $=
      ( cpws co cmgp cfv cmhm wcel cn0 cbs cmg wceq ccrg csubrg wa crh jca eqid
      evls1rhm rhmmhm 3syl crg subrgring vr1cl mgpbas mhmmulg syl3anc ) ACHEBUB
      UCZUDUEZUFUCUGZIUHUGKJUIUEZUGZIKGUCCUEIKCUEVHUJUEZUCUKAEULUGZDEUMUEUGZUNC
      JVGUOUCUGVIAVMVNSTUPBCDEVGFJLQVGUQMNURJVGCHVHOVHUQUSUTUAAVNFVAUGVKTDEFMVB
      VJJFKPNVJUQZVCUTVJGVLCHVHIKVJJHOVOVDRVLUQVEVF $.
  $}

  ${
    $d i r $.  $d x A $.  $d b r x y B $.  $d b r x Q $.  $d b r x R $.
    evl1fval.o $e |- O = ( eval1 ` R ) $.
    evl1fval.q $e |- Q = ( 1o eval R ) $.
    evl1fval.b $e |- B = ( Base ` R ) $.
    $( Value of the simple/same ring evaluation map.  (Contributed by Mario
       Carneiro, 12-Jun-2015.) $)
    evl1fval $p |- O = ( ( x e. ( B ^m ( B ^m 1o ) ) |-> ( x o.
        ( y e. B |-> ( 1o X. { y } ) ) ) ) o. Q ) $=
      ( vr vb cvv c1o cmap co cv cmpt ccom cevl c0 vi wcel csn cxp wceq ce1 cfv
      cbs csb fvexd wa id fveq2 syl6eqr sylan9eqr oveq1d oveq12d mpteq1d coeq2d
      mpteq12dv simpl oveq2d coeq12d csbied df-evl1 ovex mptex eqeltri fvmpt wn
      coex syl5eq fvprc co02 ces df-evl reldmmpt2 ovprc2 eqtr4d pm2.61i ) ELUBZ
      FACCMNOZNOZAPZBCMBPUCUDZQZRZQZDRZUEWAFEUFUGZWIGJEKJPZUHUGZAKPZWMMNOZNOZWD
      BWMWEQZRZQZMWKSOZRZUIWILUFWKEUEZKWLWTWILXAWKUHUJXAWMWLUEZUKZWRWHWSDXCAWOW
      QWCWGXCWMCWNWBNXBXAWMWLCXBULXAWLEUHUGCWKEUHUMIUNUOZXCWMCMNXDUPUQXCWPWFWDX
      CBWMCWEXDURUSUTXCWSMESOZDXCWKEMSXAXBVAVBHUNVCVDABJKVEWHDAWCWGCWBNVFVGDXEL
      HMESVFVHVKVIVLWAVJZFWHTRZWIXFFTXGXFFWJTGEUFVMVLWHVNUNXFDTWHXFDXETHMESUAJL
      LWLUAPWKVOOUGSUAJVPVQVRVLUSVSVT $.

    evl1val.m $e |- M = ( 1o mPoly R ) $.
    evl1val.k $e |- K = ( Base ` M ) $.
    $( Value of the simple/same ring evaluation map.  (Contributed by Mario
       Carneiro, 12-Jun-2015.) $)
    evl1val $p |- ( ( R e. CRing /\ A e. K ) -> ( O ` A ) = ( ( Q ` A ) o.
        ( y e. B |-> ( 1o X. { y } ) ) ) ) $=
      ( vx wcel cfv c1o cmap co ccom ccrg csn cxp cmpt evl1fval fveq1i cpws cbs
      wa cv wceq crh con0 1on simpl eqid evlrhm sylancr rhmf syl fvco3 sylancom
      syl5eq ffvelrn crg cvv crngring adantr ovex pwsbas sylancl eleqtrrd coeq1
      wf fvex eqeltri mptex coex fvmpt eqtrd ) EUAOZBFOZUIZBHPZBDPZNCCQRSZRSZNU
      JZACQAUJUBUCZUDZTZUDZPZWEWJTZWCWDBWLDTZPZWMBHWONACDEHIJKUEUFWAWBFEWFUGSZU
      HPZDVNZWPWMUKWCDGWQULSOZWSWCQUMOWAWTUNWAWBUOCDEWQQUMGJKLWQUPZUQURFWRGWQDM
      WRUPUSUTZFWRBWLDVAVBVCWCWEWGOWMWNUKWCWEWRWGWAWBWSWEWROXBFWRBDVDVBWCEVEOZW
      FVFOWGWRUKWAXCWBEVGVHCQRVICEWFVEVFWQXAKVJVKVLNWEWKWNWGWLWHWEWJVMWLUPWEWJB
      DVOACWICEUHPVFKEUHVOVPVQVRVSUTVT $.
  $}

  ${
    $d B x y $.  $d R x $.
    evl1fval1.q $e |- Q = ( eval1 ` R ) $.
    evl1fval1.b $e |- B = ( Base ` R ) $.
    $( Lemma for ~ evl1fval1 .  (Contributed by AV, 11-Sep-2019.) $)
    evl1fval1lem $p |- ( R e. V -> Q = ( R evalSub1 B ) ) $=
      ( vx vy wcel ce1 cfv c1o cmap co cv cmpt ccom eqid wceq cbs csn cevl ces1
      cxp evl1fval a1i ces cpw fvex eqeltri pwid evls1fval evlval eqcomi coeq2i
      cvv mpan2 syl6eq 3eqtr4a ) CDIZCJKZGAALMNMNGOHALHOUAUDPQPZLCUBNZQZBCAUCNZ
      GHAVCCVAVARVCRZFUEBVASUTEUFUTVEVBALCUGNZKZQZVDUTAAUHIVEVISAACTKUPFCTUIUJU
      KGHAVEACVGDVERVGRFULUQVHVCVBVCVHAVCCLVFFUMUNUOURUS $.

    $( Value of the simple/same ring evaluation map function for univariate
       polynomials.  (Contributed by AV, 11-Sep-2019.) $)
    evl1fval1 $p |- Q = ( R evalSub1 B ) $=
      ( cvv wcel ces1 co wceq evl1fval1lem wn c0 fvprc syl5eq reldmevls1 ovprc1
      ce1 cfv eqtr4d pm2.61i ) CFGZBCAHIZJABCFDEKUBLZBMUCUDBCRSMDCRNOCAHPQTUA
      $.
  $}

  ${
    $d x y B $.  $d x y P $.  $d x y R $.  $d x T $.
    evl1rhm.q $e |- O = ( eval1 ` R ) $.
    evl1rhm.w $e |- P = ( Poly1 ` R ) $.
    evl1rhm.t $e |- T = ( R ^s B ) $.
    evl1rhm.b $e |- B = ( Base ` R ) $.
    $( Polynomial evaluation is a homomorphism (into the product ring).
       (Contributed by Mario Carneiro, 12-Jun-2015.)  (Proof shortened by AV,
       13-Sep-2019.) $)
    evl1rhm $p |- ( R e. CRing -> O e. ( P RingHom T ) ) $=
      ( vx vy wcel c1o co crh eqid cbs cfv eqidd wceq ccrg cmap cv csn cxp cmpt
      ccom cevl evl1fval cpws evls1rhmlem cmpl con0 1on evlrhm mpan ply1bas a1i
      wa cplusg ply1plusg oveqdr cmulr ply1mulr rhmpropd eleqtrrd rhmco syl2anc
      cps1 syl5eqel ) CUALZEJAAMUBNZUBNJUCZKAMKUCZUDUEUFUGUFZMCUHNZUGZBDONZJKAV
      PCEFVPPZIUIVKVOCVLUJNZDONLVPBVTONZLVQVRLJKACDVOIHVOPUKVKVPMCULNZVTONZWAMU
      MLVKVPWCLUNAVPCVTMUMWBVSIWBPZVTPUOUPVKJKBQRZVTQRZBVTWBVTVKWESVKWFSZWEWBQR
      TVKBCCVIRZWEGWHPWEPUQURWGVKVMWELVNWELUSZJKBUTRZWBUTRZWJWKTVKWJCWBBGWDWJPV
      AURVBVKVMWFLVNWFLUSUSZVMVNVTUTRNSVKWIJKBVCRZWBVCRZWMWNTVKCWBWMBGWDWMPVDUR
      VBWLVMVNVTVCRNSVEVFBVTDVOVPVGVHVJ $.
  $}

  ${
    fveval1fvcl.q $e |- O = ( eval1 ` R ) $.
    fveval1fvcl.p $e |- P = ( Poly1 ` R ) $.
    fveval1fvcl.b $e |- B = ( Base ` R ) $.
    fveval1fvcl.u $e |- U = ( Base ` P ) $.
    fveval1fvcl.r $e |- ( ph -> R e. CRing ) $.
    fveval1fvcl.y $e |- ( ph -> Y e. B ) $.
    fveval1fvcl.m $e |- ( ph -> M e. U ) $.
    $( The function value of the evaluation function of a polynomial is an
       element of the underlying ring.  (Contributed by AV, 17-Sep-2019.) $)
    fveval1fvcl $p |- ( ph -> ( ( O ` M ) ` Y ) e. B ) $=
      ( cfv co cbs cvv wcel cpws ccrg eqid fvex eqeltri a1i crh wf evl1rhm rhmf
      3syl ffvelrnd pwselbas ) ABBHFGPZABDBDBUAQZRPZUBUNUOSUOUCZKUPUCZMBSTABDRP
      SKDRUDUEUFAEUPFGADUBTGCUOUGQTEUPGUHMBCDUOGIJUQKUIEUPCUOGLURUJUKOULUMNUL
      $.
  $}

  ${
    $d x y B $.  $d y R $.  $d x y X $.
    evl1sca.o $e |- O = ( eval1 ` R ) $.
    evl1sca.p $e |- P = ( Poly1 ` R ) $.
    evl1sca.b $e |- B = ( Base ` R ) $.
    evl1sca.a $e |- A = ( algSc ` P ) $.
    $( Polynomial evaluation maps scalars to constant functions.  (Contributed
       by Mario Carneiro, 12-Jun-2015.) $)
    evl1sca $p |- ( ( R e. CRing /\ X e. B ) ->
        ( O ` ( A ` X ) ) = ( B X. { X } ) ) $=
      ( vy vx wcel cfv c1o co cxp cmpt wceq eqid ccrg wa cevl csn ccom cmap cbs
      cv wf crg crngring adantr ply1sclf syl ffvelrn sylancom cmpl cps1 ply1bas
      evl1val syldan cress ressid oveq2d fveq2d ply1ascl syl6reqr fveq1d evlval
      cascl con0 1on a1i simpl csubrg subrgid simpr evlssca coeq1d wral wf1o c0
      eqtrd df1o2 cvv fvex eqeltri 0ex mapsnf1o3 f1of mp1i fmpt eqidd fconstmpt
      sylibr fmptcof syl6eqr 3eqtrd ) DUAMZFBMZUBZFANZENZXBODUCPZNZKBOKUHUDQZRZ
      UEZBOUFPZFUDZQZXGUEZBXJQZWSWTXBCUGNZMZXCXHSWSWTBXNAUIZXOXADUJMZXPWSXQWTDU
      KULZAXNCDBHJIXNTZUMUNBXNFAUOUPKXBBXDDXNODUQPZEGXDTZIXTTCDDURNZXNHYBTXSUSU
      TVAXAXEXKXGXAXEFODBVBPZUQPZVJNZNZXDNXKXAXBYFXDXAFAYEXAYEXTVJNAXAYDXTVJXAY
      CDOUQWSYCDSWTBDUAIVCULVDVEACDHJVFVGVHVEXAYEBXDBDYCOVKYDFBXDDOYAIVIYDTYCTI
      YETOVKMXAVLVMWSWTVNXAXQBDVONMXRBDIVPUNWSWTVQVRWCVSXAXLKBFRXMXAKLBXIXFFFXG
      XKXABXIXGUIZXFXIMKBVTBXIXGWAYGXAKBOXGWBWDBDUGNWEIDUGWFWGWHXGTZWIBXIXGWJWK
      KBXIXFXGYHWLWOXAXGWMXKLXIFRSXALXIFWNVMLUHXFSFWMWPKBFWNWQWR $.

    evl1scad.u $e |- U = ( Base ` P ) $.
    evl1scad.1 $e |- ( ph -> R e. CRing ) $.
    evl1scad.2 $e |- ( ph -> X e. B ) $.
    evl1scad.3 $e |- ( ph -> Y e. B ) $.
    $( Polynomial evaluation builder for scalars.  (Contributed by Mario
       Carneiro, 4-Jul-2015.) $)
    evl1scad $p |- ( ph ->
        ( ( A ` X ) e. U /\ ( ( O ` ( A ` X ) ) ` Y ) = X ) ) $=
      ( cfv wcel wceq crg wf crngring ply1sclf ffvelrnd csn cxp evl1sca syl2anc
      ccrg 3syl fveq1d fvconst2g eqtrd jca ) AHBRZFSIUPGRZRZHTACFHBAEUJSZEUASCF
      BUBOEUCBFDECKMLNUDUKPUEAURICHUFUGZRZHAIUQUTAUSHCSZUQUTTOPBCDEGHJKLMUHUIUL
      AVBICSVAHTPQCHICUMUIUNUO $.
  $}

  ${
    $d y z B $.  $d z R $.
    evl1var.q $e |- O = ( eval1 ` R ) $.
    evl1var.v $e |- X = ( var1 ` R ) $.
    evl1var.b $e |- B = ( Base ` R ) $.
    $( Polynomial evaluation maps the variable to the identity function.
       (Contributed by Mario Carneiro, 12-Jun-2015.) $)
    evl1var $p |- ( R e. CRing -> ( O ` X ) = ( _I |` B ) ) $=
      ( vy vz ccrg wcel cfv c1o co cv ccom c0 cbs eqid cmvr cevl cmpt cmap ccnv
      csn cxp cid cres cpl1 wceq crg crngring vr1cl syl cmpl cps1 ply1bas mpdan
      evl1val df1o2 cvv fvex eqeltri mapsncnv coeq2i cress ressid oveq2d fveq1d
      0ex vr1val syl6eqr fveq2d con0 evlval 1on id csubrg subrgid 0lt1o evlsvar
      a1i eqtr3d coeq1d syl5eqr wf1o mapsnf1o2 f1ococnv2 mp1i 3eqtrd ) BJKZDCLZ
      DMBUANZLZHAMHOUEUFUBZPZIAMUCNZQIOLUBZWRUDZPZUGAUHZWKDBUILZRLZKZWLWPUJWKBU
      KKZXDBULZXCXBBDFXBSZXCSZUMUNHDAWMBXCMBUONZCEWMSZGXISXBBBUPLZXCXGXKSXHUQUS
      URWKWPWNWSPWTWSWOWNIHAMWRQUTABRLVAGBRVBVCZVJWRSZVDVEWKWNWRWSWKQMBAVFNZTNZ
      LZWMLWNWRWKXPDWMWKXPQMBTNZLDWKQXOXQWKXNBMTABJGVGVHVIBDFVKVLVMWKAWMABXNIMX
      OVNQAWMBMXJGVOXOSXNSGMVNKWKVPWBWKVQWKXEABVRLKXFABGVSUNQMKWKVTWBWAWCWDWEWQ
      AWRWFWTXAUJWKIAMWRQUTXLVJXMWGWQAWRWHWIWJ $.

    evl1vard.p $e |- P = ( Poly1 ` R ) $.
    evl1vard.u $e |- U = ( Base ` P ) $.
    evl1vard.1 $e |- ( ph -> R e. CRing ) $.
    evl1vard.2 $e |- ( ph -> Y e. B ) $.
    $( Polynomial evaluation builder for the variable.  (Contributed by Mario
       Carneiro, 4-Jul-2015.) $)
    evl1vard $p |- ( ph -> ( X e. U /\ ( ( O ` X ) ` Y ) = Y ) ) $=
      ( wcel cfv wceq ccrg syl crg crngring 3syl cid cres evl1var fveq1d fvresi
      vr1cl eqtrd jca ) AGEPZHGFQZQZHRADSPZDUAPULNDUBECDGJLMUIUCAUNHUDBUEZQZHAH
      UMUPAUOUMUPRNBDFGIJKUFTUGAHBPUQHROBHUHTUJUK $.
  $}

  ${
    $d B y $.
    evls1var.q $e |- Q = ( S evalSub1 R ) $.
    evls1var.x $e |- X = ( var1 ` U ) $.
    evls1var.u $e |- U = ( S |`s R ) $.
    evls1var.b $e |- B = ( Base ` S ) $.
    evls1var.s $e |- ( ph -> S e. CRing ) $.
    evls1var.r $e |- ( ph -> R e. ( SubRing ` S ) ) $.
    $( Univariate polynomial evaluation for subrings maps the variable to the
       identity function.  (Contributed by AV, 13-Sep-2019.) $)
    evls1var $p |- ( ph -> ( Q ` X ) = ( _I |` B ) ) $=
      ( cfv eqid c1o co c0 wcel cbs vy cv1 ce1 cid subrgvr1 syl6reqr fveq2d ces
      cres cv csn cxp cmpt ccom cevl cmvr con0 1on a1i 0lt1o evlsvarsrng vr1val
      fveq1d syl5eq 3eqtr4d coeq1d ccrg csubrg cress cmpl wceq cpl1 cps1 fveq2i
      subrgmvr ply1bas eqcomi subrgvr1cl evls1val syl3anc crngring 3syl evl1val
      crg vr1cl syl2anc evl1var syl 3eqtrd ) AGCNEUBNZCNZWJEUCNZNZUDBUIZAGWJCAW
      JFUBNGAEDFWJWJOZMJUEIUFUGAWJDPEUHQZNZNZUABPUAUJUKULUMZUNZWJPEUOQZNZWSUNZW
      KWMAWRXBWSARPFUPQZNZWQNXEXANWRXBAUQBWQDEFPXAXDRWQOXAOZXDOJKPUQSAURUSZLMRP
      SAUTUSVAAWJXEWQAWJRPEUPQZNXEEWJWOVBARXHXDAEDFPXHUQXHOXGMJVOVCVDZUGAWJXEXA
      XIUGVEVFAEVGSZDEVHNSWJPEDVIQZVJQZTNZSWKWTVKLMAXMEDFVLNZFWJWOMJXNOXNTNZXMX
      KVLNZXKXKVMNZXOXPOXQOXNXPTFXKVLJVNVNVPVQVRUAWJBCDEWPXMXLHWPOKXLOXMOVSVTAX
      JWJPEVJQZTNZSZWMXCVKLAXJEWDSXTLEWAXSEVLNZEWJWOYAOZYATNZXSYAEEVMNZYCYBYDOY
      COVPVQWEWBUAWJBXAEXSXRWLWLOZXFKXROXSOWCWFVEAXJWMWNVKLBEWLWJYEWOKWGWHWI $.
  $}

  ${
    evls1scasrng.q $e |- Q = ( S evalSub1 R ) $.
    evls1scasrng.o $e |- O = ( eval1 ` S ) $.
    evls1scasrng.w $e |- W = ( Poly1 ` U ) $.
    evls1scasrng.u $e |- U = ( S |`s R ) $.
    evls1scasrng.p $e |- P = ( Poly1 ` S ) $.
    evls1scasrng.b $e |- B = ( Base ` S ) $.
    evls1scasrng.a $e |- A = ( algSc ` W ) $.
    evls1scasrng.c $e |- C = ( algSc ` P ) $.
    evls1scasrng.s $e |- ( ph -> S e. CRing ) $.
    evls1scasrng.r $e |- ( ph -> R e. ( SubRing ` S ) ) $.
    evls1scasrng.x $e |- ( ph -> X e. R ) $.
    $( The evaluation of a scalar of a subring yields the same result as
       evaluated as a scalar over the ring itself.  (Contributed by AV,
       13-Sep-2019.) $)
    evls1scasrng $p |- ( ph -> ( Q ` ( A ` X ) ) = ( O ` ( C ` X ) ) ) $=
      ( cfv ces1 co csn cxp cress cpl1 cascl ccrg wcel ressid eqcomd syl fveq2d
      wceq syl5eq fveq1d eqid crg csubrg crngring subrgid 3syl subrgss evls1sca
      wss sseldd eqtrd evl1fval1 a1i 3eqtr4rd ) ALDUDZHCUEUFZUDZCLUGUHZVOJUDLBU
      DFUDAVQLHCUIUFZUJUDZUKUDZUDZVPUDVRAVOWBVPALDWAADEUKUDWATAEVTUKAEHUJUDVTQA
      HVSUJAHULUMZHVSURUAWCVSHCHULRUNUOUPUQUSUQUSUTUQAWACVPCHVSVTLVPVAVTVAVSVAR
      WAVAUAAWCHVBUMCHVCUDZUMUAHVDCHRVEVFAGCLAGWDUMGCVIUBGCHRVGUPUCVJVHVKAVOJVP
      JVPURACJHNRVLVMUTABCFGHIKLMOPRSUAUBUCVHVN $.
  $}

  ${
    evls1varsrng.q $e |- Q = ( S evalSub1 R ) $.
    evls1varsrng.o $e |- O = ( eval1 ` S ) $.
    evls1varsrng.v $e |- V = ( var1 ` U ) $.
    evls1varsrng.u $e |- U = ( S |`s R ) $.
    evls1varsrng.b $e |- B = ( Base ` S ) $.
    evls1varsrng.s $e |- ( ph -> S e. CRing ) $.
    evls1varsrng.r $e |- ( ph -> R e. ( SubRing ` S ) ) $.
    $( The evaluation of the variable of univariate polynomials over subring
       yields the same result as evaluated as variable of the polynomials over
       the ring itself.  (Contributed by AV, 12-Sep-2019.) $)
    evls1varsrng $p |- ( ph -> ( Q ` V ) = ( O ` V ) ) $=
      ( cfv cv1 wceq eqid wcel cid cres evls1var ces1 co cress evl1fval1 fveq1d
      a1i subrgvr1 ressid syl eqcomd fveq2d 3eqtr2d crg csubrg crngring subrgid
      ccrg 3syl 3eqtrrd eqtrd ) AHCPUABUBZHGPZABCDEFHIKLMNOUCAVEHEBUDUEZPEBUFUE
      ZQPZVFPVDAHGVFGVFRABGEJMUGUIUHAHVHVFAHFQPZEQPZVHHVIRAKUIAEDFVJVJSOLUJAEVG
      QAVGEAEUTTZVGERNBEUTMUKULUMUNUOUNABVFBEVGVHVFSVHSVGSMNAVKEUPTBEUQPTNEURBE
      MUSVAUCVBVC $.
  $}

  ${
    $d x y B $.  $d x y ph $.  $d x y R $.
    evl1addd.q $e |- O = ( eval1 ` R ) $.
    evl1addd.p $e |- P = ( Poly1 ` R ) $.
    evl1addd.b $e |- B = ( Base ` R ) $.
    evl1addd.u $e |- U = ( Base ` P ) $.
    evl1addd.1 $e |- ( ph -> R e. CRing ) $.
    evl1addd.2 $e |- ( ph -> Y e. B ) $.
    evl1addd.3 $e |- ( ph -> ( M e. U /\ ( ( O ` M ) ` Y ) = V ) ) $.

    ${
      evl1addd.4 $e |- ( ph -> ( N e. U /\ ( ( O ` N ) ` Y ) = W ) ) $.
      ${
        evl1addd.g $e |- .+b = ( +g ` P ) $.
        evl1addd.a $e |- .+ = ( +g ` R ) $.
        $( Polynomial evaluation builder for addition of polynomials.
           (Contributed by Mario Carneiro, 4-Jul-2015.) $)
        evl1addd $p |- ( ph ->
          ( ( M .+b N ) e. U /\ ( ( O ` ( M .+b N ) ) ` Y ) = ( V .+ W ) ) ) $=
          ( co wcel cfv wceq cgrp cpws cghm crh ccrg evl1rhm syl rhmghm ghmgrp1
          eqid simpld grpcl syl3anc cof cplusg ghmlin cbs cvv fvex eqeltri rhmf
          a1i wf ffvelrnd pwsplusgval eqtrd fveq1d wfn pwselbas fnfvof syl22anc
          ffn simprd oveq12d 3eqtrd jca ) AHIEUDZGUEZMWDJUFZUFZKLDUDZUGACUHUEZH
          GUEZIGUEZWEAJCFBUIUDZUJUDUEZWIAJCWLUKUDUEZWMAFULUEWNRBCFWLJNOWLUQZPUM
          UNZCWLJUOUNZCWLJUPUNAWJMHJUFZUFZKUGZTURZAWKMIJUFZUFZLUGZUAURZGECHIQUB
          USUTAWGMWRXBDVAUDZUFZWSXCDUDZWHAMWFXFAWFWRXBWLVBUFZUDZXFAWMWJWKWFXJUG
          WQXAXEEXICWLHJIGQUBXIUQZVCUTAWLVDUFZDXIFWRXBBULVEWLWOXLUQZRBVEUEZABFV
          DUFVEPFVDVFVGVIZAGXLHJAWNGXLJVJWPGXLCWLJQXMVHUNZXAVKZAGXLIJXPXEVKZUCX
          KVLVMVNAWRBVOZXBBVOZXNMBUEXGXHUGABBWRVJXSABFBXLULWRWLVEWOPXMRXOXQVPBB
          WRVSUNABBXBVJXTABFBXLULXBWLVEWOPXMRXOXRVPBBXBVSUNXOSBDWRXBVEMVQVRAWSK
          XCLDAWJWTTVTAWKXDUAVTWAWBWC $.
      $}

      ${
        evl1subd.s $e |- .- = ( -g ` P ) $.
        evl1subd.d $e |- D = ( -g ` R ) $.
        $( Polynomial evaluation builder for subtraction of polynomials.
           (Contributed by Mario Carneiro, 4-Jul-2015.) $)
        evl1subd $p |- ( ph ->
          ( ( M .- N ) e. U /\ ( ( O ` ( M .- N ) ) ` Y ) = ( V D W ) ) ) $=
          ( co wcel cfv wceq cgrp cpws cghm crh ccrg evl1rhm syl rhmghm ghmgrp1
          eqid simpld grpsubcl syl3anc cof csg ghmsub cvv cbs crg crngring 3syl
          ringgrp fvex eqeltri a1i wf ffvelrnd pwssub syl22anc eqtrd fveq1d wfn
          rhmf pwselbas ffn fnfvof simprd oveq12d 3eqtrd jca ) AGIHUDZFUEZMWHJU
          FZUFZKLCUDZUGADUHUEZGFUEZIFUEZWIAJDEBUIUDZUJUDUEZWMAJDWPUKUDUEZWQAEUL
          UEZWRRBDEWPJNOWPUQZPUMUNZDWPJUOUNZDWPJUPUNAWNMGJUFZUFZKUGZTURZAWOMIJU
          FZUFZLUGZUAURZFDHGIQUBUSUTAWKMXCXGCVAUDZUFZXDXHCUDZWLAMWJXKAWJXCXGWPV
          BUFZUDZXKAWQWNWOWJXOUGXBXFXJFDWPGJHXNIQUBXNUQZVCUTAEUHUEZBVDUEZXCWPVE
          UFZUEXGXSUEXOXKUGAWSEVFUEXQREVGEVIVHXRABEVEUFVDPEVEVJVKVLZAFXSGJAWRFX
          SJVMXAFXSDWPJQXSUQZVTUNZXFVNZAFXSIJYBXJVNZXSEXCXGBCXNVDWPWTYAUCXPVOVP
          VQVRAXCBVSZXGBVSZXRMBUEXLXMUGABBXCVMYEABEBXSULXCWPVDWTPYARXTYCWABBXCW
          BUNABBXGVMYFABEBXSULXGWPVDWTPYARXTYDWABBXGWBUNXTSBCXCXGVDMWCVPAXDKXHL
          CAWNXETWDAWOXIUAWDWEWFWG $.
      $}

      ${
        evl1muld.t $e |- .xb = ( .r ` P ) $.
        evl1muld.s $e |- .x. = ( .r ` R ) $.
        $( Polynomial evaluation builder for multiplication of polynomials.
           (Contributed by Mario Carneiro, 4-Jul-2015.) $)
        evl1muld $p |- ( ph ->
         ( ( M .xb N ) e. U /\ ( ( O ` ( M .xb N ) ) ` Y ) = ( V .x. W ) ) ) $=
          ( co wcel cfv wceq crg cpws crh ccrg eqid evl1rhm syl rhmrcl1 syl3anc
          simpld ringcl cof cmulr rhmmul cbs cvv fvex eqeltri a1i rhmf ffvelrnd
          wf pwsmulrval eqtrd fveq1d wfn pwselbas fnfvof syl22anc simprd 3eqtrd
          ffn oveq12d jca ) AHIEUDZGUEZMWBJUFZUFZKLFUDZUGACUHUEZHGUEZIGUEZWCAJC
          DBUIUDZUJUDUEZWGADUKUEWKRBCDWJJNOWJULZPUMUNZCWJJUOUNAWHMHJUFZUFZKUGZT
          UQZAWIMIJUFZUFZLUGZUAUQZGCEHIQUBURUPAWEMWNWRFUSUDZUFZWOWSFUDZWFAMWDXB
          AWDWNWRWJUTUFZUDZXBAWKWHWIWDXFUGWMWQXAHICWJEXEJGQUBXEULZVAUPAWJVBUFZD
          XEFWNWRBUKVCWJWLXHULZRBVCUEZABDVBUFVCPDVBVDVEVFZAGXHHJAWKGXHJVIWMGXHC
          WJJQXIVGUNZWQVHZAGXHIJXLXAVHZUCXGVJVKVLAWNBVMZWRBVMZXJMBUEXCXDUGABBWN
          VIXOABDBXHUKWNWJVCWLPXIRXKXMVNBBWNVSUNABBWRVIXPABDBXHUKWRWJVCWLPXIRXK
          XNVNBBWRVSUNXKSBFWNWRVCMVOVPAWOKWSLFAWHWPTVQAWIWTUAVQVTVRWA $.
      $}
    $}

    ${
      evl1vsd.4 $e |- ( ph -> N e. B ) $.
      evl1vsd.s $e |- .xb = ( .s ` P ) $.
      evl1vsd.t $e |- .x. = ( .r ` R ) $.
      $( Polynomial evaluation builder for scalar multiplication of
         polynomials.  (Contributed by Mario Carneiro, 4-Jul-2015.) $)
      evl1vsd $p |- ( ph ->
        ( ( N .xb M ) e. U /\ ( ( O ` ( N .xb M ) ) ` Y ) = ( N .x. V ) ) ) $=
        ( cascl cfv cmulr co wcel wceq wa eqid evl1scad evl1muld casa csca ccrg
        cbs ply1assa ply1sca fveq2d syl5eq eleqtrd simpld syl3anc eleq1d fveq1d
        syl asclmul1 eqeq1d anbi12d mpbid ) AICUCUDZUDZHCUEUDZUFZGUGZLVNJUDZUDZ
        IKFUFZUHZUIIHEUFZGUGZLVTJUDZUDZVRUHZUIABCDVMFGVLHJIKLMNOPQRAVKBCDGJILMN
        OVKUJZPQTRUKSVMUJZUBULAVOWAVSWDAVNVTGACUMUGZICUNUDZUPUDZUGHGUGZVNVTUHAD
        UOUGZWGQCDNUQVFAIBWITABDUPUDWIOADWHUPAWKDWHUHQCDUONURVFUSUTVAAWJLHJUDUD
        KUHSVBVKIEVMWHWIGCHWEWHUJWIUJPWFUAVGVCZVDAVQWCVRALVPWBAVNVTJWLUSVEVHVIV
        J $.
    $}

    ${
      evl1expd.f $e |- .xb = ( .g ` ( mulGrp ` P ) ) $.
      evl1expd.e $e |- .^ = ( .g ` ( mulGrp ` R ) ) $.
      evl1expd.4 $e |- ( ph -> N e. NN0 ) $.
      $( Polynomial evaluation builder for an exponential.  (Contributed by
         Mario Carneiro, 12-Jun-2015.) $)
      evl1expd $p |- ( ph ->
        ( ( N .xb M ) e. U /\ ( ( O ` ( N .xb M ) ) ` Y ) = ( N .^ V ) ) ) $=
        ( vx vy wcel cfv wceq cmgp cmnd cn0 crg ccrg crngring syl ply1ring eqid
        co ringmgp 3syl simpld mgpbas mulgnn0cl syl3anc cpws cmg evl1rhm rhmmhm
        cmhm crh mhmmulg cbs cvv eqidd cplusg wa eqeltri pwsmgp sylancl wss ssv
        fvex a1i ovexd simprd oveqdr mulgpropd oveqd eqtrd fveq1d rhmf ffvelrnd
        cv wf syl5eq eleqtrd pwsmulg syl23anc oveq2d jca ) AIHEUQZFUEZLWTJUFZUF
        ZIKGUQZUGACUHUFZUIUEZIUJUEZHFUEZXAADUKUEZCUKUEXFADULUEZXIQDUMUNZCDNUOCX
        EXEUPZURUSUBAXHLHJUFZUFZKUGZSUTZFEXEIHFCXEXLPVAZTVBVCAXCLIXMDUHUFZBVDUQ
        ZVEUFZUQZUFZXDALXBYAAXBIXMDBVDUQZUHUFZVEUFZUQZYAAJXEYDVHUQUEZXGXHXBYFUG
        AJCYCVIUQUEZYGAXJYHQBCDYCJMNYCUPZOVFUNZCYCJXEYDXLYDUPZVGUNUBXPFEYEJXEYD
        IHXQTYEUPZVJVCAYEXTIXMAUCUDYDVKUFZYEXTYDXSVLYLXTUPZAYMVMAYMXSVKUFZUGZYD
        VNUFZXSVNUFZUGZAXJBVLUEZYPYSVOQBDVKUFVLODVKWAVPZYMYOYQYRDBXRYDULVLYCXSY
        IXRUPZXSUPZYKYMUPYOUPZYQUPYRUPVQVRZUTZYMVLVSAYMVTWBAUCWLZVLUEUDWLZVLUEV
        OZVOUUGUUHYQWCAUUIUCUDYQYRAYPYSUUEWDWEWFWGWHWIAYBIXNGUQZXDAXRUIUEZYTXGX
        MYOUELBUEYBUUJUGAXIUUKXKDXRUUBURUNYTAUUAWBUBAXMYCVKUFZYOAFUULHJAYHFUULJ
        WMYJFUULCYCJPUULUPZWJUNXPWKAUULYMYOUULYCYDYKUUMVAUUFWNWORLYOXRXTGBIVLXM
        XSUUCUUDYNUAWPWQAXNKIGAXHXOSWDWRWHWHWS $.
    $}
  $}

  ${
    pf1const.b $e |- B = ( Base ` R ) $.
    pf1const.q $e |- Q = ran ( eval1 ` R ) $.
    $( Constants are polynomial functions.  (Contributed by Mario Carneiro,
       12-Jun-2015.) $)
    pf1const $p |- ( ( R e. CRing /\ X e. B ) -> ( B X. { X } ) e. Q ) $=
      ( ccrg wcel wa csn cxp ce1 cfv crn cpl1 eqid cbs co wf adantr evl1sca wfn
      cpws crh evl1rhm rhmf ffn 3syl crg crngring ply1sclf syl ffvelrn sylancom
      cascl fnfvelrn syl2anc eqeltrrd syl6eleqr ) CGHZDAHZIZADJKZCLMZNZBVBDCOMZ
      UOMZMZVDMZVCVEVGAVFCVDDVDPZVFPZEVGPZUAVBVDVFQMZUBZVHVMHZVIVEHVBVDVFCAUCRZ
      UDRHZVMVPQMZVDSVNUTVQVAAVFCVPVDVJVKVPPEUETVMVRVFVPVDVMPZVRPUFVMVRVDUGUHUT
      VAAVMVGSZVOVBCUIHZVTUTWAVACUJTVGVMVFCAVKVLEVSUKULAVMDVGUMUNVMVHVDUPUQURFU
      S $.

    $( The identity is a polynomial function.  (Contributed by Mario Carneiro,
       20-Mar-2015.) $)
    pf1id $p |- ( R e. CRing -> ( _I |` B ) e. Q ) $=
      ( ccrg wcel cid cres ce1 cfv crn cv1 eqid evl1var cpl1 cbs wfn cpws co wf
      crh evl1rhm rhmf ffn crg crngring syl fnfvelrn syl2anc eqeltrrd syl6eleqr
      3syl vr1cl ) CFGZHAIZCJKZLZBUOCMKZUQKZUPURACUQUSUQNZUSNZDOUOUQCPKZQKZRZUS
      VDGZUTURGUOUQVCCASTZUBTGVDVGQKZUQUAVEAVCCVGUQVAVCNZVGNDUCVDVHVCVGUQVDNZVH
      NUDVDVHUQUEUMUOCUFGVFCUGVDVCCUSVBVIVJUNUHVDUSUQUIUJUKEUL $.

    $( Polynomial functions are a subring.  (Contributed by Mario Carneiro,
       19-Mar-2015.)  (Revised by Mario Carneiro, 6-May-2015.) $)
    pf1subrg $p |- ( R e. CRing -> Q e. ( SubRing ` ( R ^s B ) ) ) $=
      ( ccrg wcel ce1 cfv cpl1 cbs cima cpws co csubrg crn crh wf wfn eqid wceq
      evl1rhm rhmf ffn fnima 4syl syl6eqr casa ply1assa assaring subrgid rhmima
      crg 3syl syl2anc eqeltrrd ) CFGZCHIZCJIZKIZLZBCAMNZOIZUQVAURPZBUQURUSVBQN
      GZUTVBKIZURRURUTSVAVDUAAUSCVBURURTUSTZVBTDUBZUTVFUSVBURUTTZVFTUCUTVFURUDU
      TURUEUFEUGUQVEUTUSOIGZVAVCGVHUQUSUHGUSUMGVJUSCVGUIUSUJUTUSVIUKUNURUSVBUTU
      LUOUP $.
  $}

  ${
    $d x y z B $.  $d y E $.  $d x y F $.  $d x Q $.  $d x y R $.
    pf1rcl.q $e |- Q = ran ( eval1 ` R ) $.
    $( Reverse closure for the set of polynomial functions.  (Contributed by
       Mario Carneiro, 12-Jun-2015.) $)
    pf1rcl $p |- ( X e. Q -> R e. CRing ) $=
      ( vx vy wcel c0 wceq wn cfv c1o cmap co cv cmpt ccom crn eqid rneqi rnco2
      ccrg n0i cbs csn cxp cevl cima ce1 evl1fval 3eqtri cdm cin wss inss2 neq0
      wex cvv csubrg ces evlval mpfrcl simp2d exlimiv sylbi con1i sseq0 sylancr
      imadisj sylibr syl5eq nsyl2 ) CAGAHIBUBGZACUCVMJZAEBUDKZVOLMNMNEOZFVOLFOU
      EUFPQPZLBUGNZRZUHZHABUIKZRVQVRQZRVTDWAWBEFVOVRBWAWASVRSZVOSZUJTVQVRUAUKVN
      VQULZVSUMZHIZVTHIVNWFVSUNVSHIZWGWEVSUOWHVMWHJVPVSGZEUQVMEVSUPWIVMEWILURGV
      MVOBUSKGVSVOBLVPVRVOLBUTNKVOVRBLWCWDVATVBVCVDVEVFWFVSVGVHVQVSVIVJVKVL $.

    ${
      pf1f.b $e |- B = ( Base ` R ) $.
      $( Polynomial functions are functions.  (Contributed by Mario Carneiro,
         12-Jun-2015.) $)
      pf1f $p |- ( F e. Q -> F : B --> B ) $=
        ( wcel cpws co cbs cfv ccrg cvv eqid pf1rcl fvex eqeltri a1i csubrg wss
        pf1subrg subrgss 3syl id sseldd pwselbas ) DBGZACACAHIZJKZLDUHMUHNFUINZ
        BCDEOZAMGUGACJKMFCJPQRUGBUIDUGCLGBUHSKGBUITUKABCFEUABUIUHUJUBUCUGUDUEUF
        $.

      mpfpf1.q $e |- E = ran ( 1o eval R ) $.
      $( Convert a multivariate polynomial function to univariate.
         (Contributed by Mario Carneiro, 12-Jun-2015.) $)
      mpfpf1 $p |- ( F e. E ->
          ( F o. ( y e. B |-> ( 1o X. { y } ) ) ) e. Q ) $=
        ( vx wcel cv c1o co cfv cbs ccom crn eqid cpws ccrg cevl wceq cpl1 wrex
        csn cxp cmpt cvv csubrg ces evlval rneqi mpfrcl simp2d id syl6eleq cmpl
        eqtri cmap crh wf wfn con0 1on evlrhm sylancr cps1 ply1bas rhmf fvelrnb
        wb ffn 4syl mpbid ce1 evl1val evl1rhm fnfvelrn sylan syl6eleqr eqeltrrd
        wa 3syl coeq1 eleq1d syl5ibcom rexlimdva sylc ) FEKZDUAKZJLZMDUBNZOZFUC
        ZJDUDOZPOZUEZFABMALUFUGUHZQZCKZWJMUIKWKBDUJOKEBDMFEWMRZBMDUKNOZRIWMXCBW
        MDMWMSZHULUMUSUNUOZWJFXBKZWRWJFEXBWJUPIUQWJWMMDURNZDBMUTNTNZVANKZWQXHPO
        ZWMVBWMWQVCXFWRVLWJMVDKWKXIVEXEBWMDXHMVDXGXDHXGSZXHSVFVGWQXJXGXHWMWPDDV
        HOZWQWPSZXLSWQSZVIZXJSVJWQXJWMVMJWQFWMVKVNVOWKWOXAJWQWKWLWQKZWCZWNWSQZC
        KWOXAXQWLDVPOZOZXRCAWLBWMDWQXGXSXSSZXDHXKXOVQXQXTXSRZCWKXSWQVCZXPXTYBKW
        KXSWPDBTNZVANKWQYDPOZXSVBYCBWPDYDXSYAXMYDSHVRWQYEWPYDXSXNYESVJWQYEXSVMW
        DWQWLXSVSVTGWAWBWOXRWTCWNFWSWEWFWGWHWI $.

      $( Convert a univariate polynomial function to multivariate.
         (Contributed by Mario Carneiro, 12-Jun-2015.) $)
      pf1mpf $p |- ( F e. Q ->
          ( F o. ( x e. ( B ^m 1o ) |-> ( x ` (/) ) ) ) e. E ) $=
        ( vy vz wcel cv cfv cbs c1o co ccom eqid syl ccrg ce1 wceq cpl1 wrex c0
        cmap cmpt pf1rcl crn id syl6eleq cpws crh wf wfn wb evl1rhm ffn fvelrnb
        rhmf 4syl mpbid wa cevl csn cxp cid cres cmpl cps1 ply1bas coeq1d coass
        evl1val ccnv df1o2 cvv fvex eqeltri mapsncnv coeq1i mapsnf1o2 f1ococnv1
        0ex wf1o mp1i syl5eqr coeq2d syl5eq simpl ovexd con0 1on mpan ffvelrnda
        evlrhm pwselbas fcoi1 3eqtrd fnfvelrn sylan syl6eleqr eqeltrd syl5ibcom
        coeq1 eleq1d rexlimdva sylc ) FCLZDUALZJMZDUBNZNZFUCZJDUDNZONZUEZFABPUG
        QZUFAMNUHZRZELZCDFGUIZXJFXMUJZLZXRXJFCYDXJUKGULXJXMXPDBUMQZUNQLZXQYFONZ
        XMUOXMXQUPYEXRUQXJXKYGYCBXPDYFXMXMSZXPSZYFSHURTXQYHXPYFXMXQSZYHSVAXQYHX
        MUSJXQFXMUTVBVCXKXOYBJXQXKXLXQLZVDZXNXTRZELXOYBYMYNXLPDVEQZNZEYMYNYPKBP
        KMVFVGUHZRZXTRZYPVHXSVIZRZYPYMXNYRXTKXLBYODXQPDVJQZXMYIYOSZHUUBSZXPDDVK
        NZXQYJUUESYKVLZVOVMYMYSYPYQXTRZRUUAYPYQXTVNYMUUGYTYPYMUUGXTVPZXTRZYTUUH
        YQXTAKBPXTUFVQBDONVRHDOVSVTZWEXTSZWAWBXSBXTWFUUIYTUCYMABPXTUFVQUUJWEUUK
        WCXSBXTWDWGWHWIWJYMXSBYPUOUUAYPUCYMBDXSDXSUMQZONZUAYPUULVRUULSZHUUMSZXK
        YLWKYMBPUGWLXKXQUUMXLYOXKYOUUBUULUNQLZXQUUMYOUOZPWMLXKUUPWNBYODUULPWMUU
        BUUCHUUDUUNWQWOXQUUMUUBUULYOUUFUUOVATZWPWRXSBYPWSTWTYMYPYOUJZEXKYOXQUPZ
        YLYPUUSLXKUUQUUTUURXQUUMYOUSTXQXLYOXAXBIXCXDXOYNYAEXNFXTXFXGXEXHXI $.
    $}

    ${
      pf1addcl.a $e |- .+ = ( +g ` R ) $.
      $( The sum of multivariate polynomial functions.  (Contributed by Mario
         Carneiro, 12-Jun-2015.) $)
      pf1addcl $p |- ( ( F e. Q /\ G e. Q ) -> ( F oF .+ G ) e. Q ) $=
        ( wcel cbs cfv co ccrg cvv eqid adantr wf pf1f wb pwselbasb sylancl cof
        cpws cplusg pf1rcl fvexd fvex mpbird adantl pwsplusgval csubrg pf1subrg
        wa syl subrgacl 3expib mpcom eqeltrrd ) DBHZEBHZULZDECCIJZUBKZUCJZKZDEA
        UAKBUTVBIJZAVCCDEVALMVBVBNZVENZURCLHZUSBCDFUDOZUTCIUEUTDVEHZVAVADPZURVK
        USVABCDFVANZQOUTVHVAMHZVJVKRVICIUFZVACVAVELDVBMVFVLVGSTUGUTEVEHZVAVAEPZ
        USVPURVABCEFVLQUHUTVHVMVOVPRVIVNVACVAVELEVBMVFVLVGSTUGGVCNZUIBVBUJJHZUT
        VDBHZUTVHVRVIVABCVLFUKUMVRURUSVSBVCVBDEVQUNUOUPUQ $.
    $}

    ${
      pf1mulcl.t $e |- .x. = ( .r ` R ) $.
      $( The product of multivariate polynomial functions.  (Contributed by
         Mario Carneiro, 12-Jun-2015.) $)
      pf1mulcl $p |- ( ( F e. Q /\ G e. Q ) -> ( F oF .x. G ) e. Q ) $=
        ( wcel cbs cfv co ccrg cvv eqid adantr wf pf1f wb pwselbasb sylancl cof
        wa cpws cmulr pf1rcl fvexd mpbird adantl pwsmulrval csubrg pf1subrg syl
        fvex subrgmcl 3expib mpcom eqeltrrd ) DAHZEAHZUBZDEBBIJZUCKZUDJZKZDECUA
        KAUTVBIJZBVCCDEVALMVBVBNZVENZURBLHZUSABDFUEOZUTBIUFUTDVEHZVAVADPZURVKUS
        VAABDFVANZQOUTVHVAMHZVJVKRVIBIUMZVABVAVELDVBMVFVLVGSTUGUTEVEHZVAVAEPZUS
        VPURVAABEFVLQUHUTVHVMVOVPRVIVNVABVAVELEVBMVFVLVGSTUGGVCNZUIAVBUJJHZUTVD
        AHZUTVHVRVIVAABVLFUKULVRURUSVSAVBVCDEVQUNUOUPUQ $.
    $}
  $}

  ${
    $d a b f g x y .+ $.  $d a b f g w x y B $.  $d f x et $.  $d a b f g ph $.
    $d b x y A $.  $d x ch $.  $d a b f g y ps $.  $d b f g Q $.  $d a b w R $.
    $d x rh $.  $d x si $.  $d x ta $.  $d x th $.  $d a b f g x y .x. $.
    $d x ze $.
    pf1ind.cb $e |- B = ( Base ` R ) $.
    pf1ind.cp $e |- .+ = ( +g ` R ) $.
    pf1ind.ct $e |- .x. = ( .r ` R ) $.
    pf1ind.cq $e |- Q = ran ( eval1 ` R ) $.
    pf1ind.ad $e |- ( ( ph /\ ( ( f e. Q /\ ta ) /\ ( g e. Q /\ et ) ) ) ->
        ze ) $.
    pf1ind.mu $e |- ( ( ph /\ ( ( f e. Q /\ ta ) /\ ( g e. Q /\ et ) ) ) ->
        si ) $.
    pf1ind.wa $e |- ( x = ( B X. { f } ) -> ( ps <-> ch ) ) $.
    pf1ind.wb $e |- ( x = ( _I |` B ) -> ( ps <-> th ) ) $.
    pf1ind.wc $e |- ( x = f -> ( ps <-> ta ) ) $.
    pf1ind.wd $e |- ( x = g -> ( ps <-> et ) ) $.
    pf1ind.we $e |- ( x = ( f oF .+ g ) -> ( ps <-> ze ) ) $.
    pf1ind.wf $e |- ( x = ( f oF .x. g ) -> ( ps <-> si ) ) $.
    pf1ind.wg $e |- ( x = A -> ( ps <-> rh ) ) $.
    pf1ind.co $e |- ( ( ph /\ f e. B ) -> ch ) $.
    pf1ind.pr $e |- ( ph -> th ) $.
    pf1ind.a $e |- ( ph -> A e. Q ) $.
    $( Prove a property of polynomials by "structural" induction, under a
       simplified model of structure which loses the sum of products structure.
       (Contributed by Mario Carneiro, 12-Jun-2015.) $)
    pf1ind $p |- ( ph -> rh ) $=
      ( vb vw vy va cab wcel c1o cmap co c0 cv cfv cmpt ccom csn cxp cres coass
      cid ccnv df1o2 cbs cvv fvex eqeltri 0ex eqid mapsncnv wf1o wceq mapsnf1o2
      coeq2i f1ococnv2 mp1i syl5eqr coeq2d syl5eq wf pf1f fcoi1 eqtrd cof wa wi
      3syl mpfpf1 vex elab eleq1 syl5bbr anbi1d ovex oveq1 eleq1d imbi12d oveq2
      expcom an4s expimpd vtocl2ga syl2an expcomd wfn mpff ffn syl ofco sylibrd
      impcom a1i syl5bi imp coeq1 weq cascl ccrg cmpl adantr crh con0 1on sylan
      fveq2d coeq1d sylibr eqeltrrd cevl crn ces evlval rneqi ad2antrl ad2antll
      an4 anbi2d mapsnf1o3 f1of ovexd cpl1 ce1 pf1rcl csca casa mplassa sylancr
      ply1ascl asclrhm mplsca oveq1d eleqtrrd ffvelrnda evl1val syl2anc evl1sca
      inidm rhmf cress ressid oveq2d syl6eqr fveq1d csubrg crg crngring subrgid
      simpr evlssca eqtr3d 3eqtr3d wral snex xpex ralrimiva sneq xpeq2d rspccva
      resiexg ax-mp eqeltrd fveq2 sylbi mpteq2dv syl5ibrcom pf1mpf mpfind elabg
      el1o wb mpbid ) AKBJUSZUTZIAKUOLVAVBVCZVDUOVEZVFZVGZVHZUPLVAUPVEVIVJVGZVH
      ZKUXDAUXLKVMLVKZVHZKAUXLKUXIUXKVHZVHUXNKUXIUXKVLAUXOUXMKAUXOUXIUXIVNZVHZU
      XMUXPUXKUXIUOUPLVAUXIVDVOLOVPVFVQSOVPVRVSZVTUXIWAZWBWFUXFLUXIWCUXQUXMWDAU
      OLVAUXIVDVOUXRVTUXSWEUXFLUXIWGWHWIZWJWKAKNUTZLLKWLUXNKWDUNLNOKUBSWMLLKWNW
      SWOAUQVEZUXKVHZUXDUTUXFURVEZVIZVJZUXKVHZUXDUTUOUXFUYDUXGVFZVGZUXKVHZUXDUT
      ZUYDUXKVHZUXDUTZUXGUXKVHZUXDUTZUYDUXGMWPZVCZUXKVHZUXDUTZUYDUXGPWPZVCZUXKV
      HZUXDUTZUXLUXDUTUQUXJLMVAOUUAVCZUUBZLOPURUOVASTUAVUDLVAOUUCVCVFLVUDOVAVUD
      WAZSUUDZUUEZAUYDVUEUTZUYMWQUXGVUEUTZUYOWQWQZUYSVUKVUIVUJWQZUYMUYOWQZWQZAU
      YSVUIUYMVUJUYOUUHZAVULVUMUYSAVULWQZVUMUYLUYNUYPVCZUXDUTZUYSVULAVUMVURWRVU
      LVUMAVURVUIUYLNUTZUYNNUTZVUMAWQZVURWRZVUJUPLNOVUEUYDUBSVUEWAZWTZUPLNOVUEU
      XGUBSVVCWTZEFWQZAWQZGWRUYMFWQZAWQZUYLRVEZUYPVCZUXDUTZWRVVBQRUYLUYNNNQVEZU
      YLWDZVVGVVIGVVLVVNVVFVVHAVVNEUYMFEVVMUXDUTVVNUYMBEJVVMQXAUGXBVVMUYLUXDXCX
      DXEXEZGVVMVVJUYPVCZUXDUTVVNVVLBGJVVPVVMVVJUYPXFUIXBVVNVVPVVKUXDVVMUYLVVJU
      YPXGXHXDXIVVJUYNWDZVVIVVAVVLVURVVQVVHVUMAVVQFUYOUYMFVVJUXDUTVVQUYOBFJVVJR
      XAUHXBVVJUYNUXDXCXDUUIXEZVVQVVKVUQUXDVVJUYNUYLUYPXJXHXIVVMNUTZVVJNUTZWQZV
      VFAGVVSEVVTFAGWRAVVSEWQVVTFWQWQZGUCXKXLXMXNXOXPYCVUPUYRVUQUXDVUPUXFUXFUXF
      LMUYDUXGUXKVQVQVQVUPUXFLUYDWLZUYDUXFXQVUIVWCAVUJLVUELOUYDVAVUHSXRUUFUXFLU
      YDXSXTZVUPUXFLUXGWLZUXGUXFXQVUJVWEAVUILVUELOUXGVAVUHSXRUUGUXFLUXGXSXTZLUX
      FUXKWCLUXFUXKWLVUPUPLVAUXKVDVOUXRVTUXKWAUUJLUXFUXKUUKWHZVUPLVAVBUULZVWHLV
      QUTZVUPUXRYDZUXFUVIZYAXHYBXMYEYFAVUKVUCVUKVUNAVUCVUOAVULVUMVUCVUPVUMUYLUY
      NUYTVCZUXDUTZVUCVULAVUMVWMWRVULVUMAVWMVUIVUSVUTVVAVWMWRZVUJVVDVVEVVGHWRVV
      IUYLVVJUYTVCZUXDUTZWRVWNQRUYLUYNNNVVNVVGVVIHVWPVVOHVVMVVJUYTVCZUXDUTVVNVW
      PBHJVWQVVMVVJUYTXFUJXBVVNVWQVWOUXDVVMUYLVVJUYTXGXHXDXIVVQVVIVVAVWPVWMVVRV
      VQVWOVWLUXDVVJUYNUYLUYTXJXHXIVWAVVFAHVVSEVVTFAHWRAVWBHUDXKXLXMXNXOXPYCVUP
      VUBVWLUXDVUPUXFUXFUXFLPUYDUXGUXKVQVQVQVWDVWFVWGVWHVWHVWJVWKYAXHYBXMYEYFUY
      BUYFWDUYCUYGUXDUYBUYFUXKYGXHUYBUYIWDUYCUYJUXDUYBUYIUXKYGXHUQURYHUYCUYLUXD
      UYBUYDUXKYGXHUQUOYHUYCUYNUXDUYBUXGUXKYGXHUYBUYQWDUYCUYRUXDUYBUYQUXKYGXHUY
      BVUAWDUYCVUBUXDUYBVUAUXKYGXHUYBUXJWDUYCUXLUXDUYBUXJUXKYGXHAUYDLUTZWQZLUYE
      VJZUYGUXDVWSUYDOUUMVFZYIVFZVFZOUUNVFZVFZVXCVUDVFZUXKVHZVWTUYGVWSOYJUTZVXC
      VAOYKVCZVPVFZUTVXEVXGWDAVXHVWRAUYAVXHUNNOKUBUUOXTZYLZALVXJUYDVXBAVXBOVXIY
      MVCZUTLVXJVXBWLAVXBVXIUUPVFZVXIYMVCZVXMAVXIUUQUTZVXBVXOUTAVAYNUTZVXHVXPYO
      VXKVXIOVAYNVXIWAZUURUUSVXBVXNVXIVXBVXAOVXAWAZVXBWAZUUTZVXNWAUVAXTAOVXNVXI
      YMAVXIOVAYNYJVXRVXQAYOYDVXKUVBUVCUVDLVXJOVXIVXBSVXJWAZUVJXTUVEUPVXCLVUDOV
      XJVXIVXDVXDWAZVUFSVXRVYBUVFUVGAVXHVWRVXEVWTWDVXKVXBLVXAOVXDUYDVYCVXSSVXTU
      VHYPVWSVXFUYFUXKVWSUYDVAOLUVKVCZYKVCZYIVFZVFZVUDVFVXFUYFVWSVYGVXCVUDVWSUY
      DVYFVXBVWSVYFVXIYIVFVXBVWSVYEVXIYIVWSVYDOVAYKVWSVXHVYDOWDVXLLOYJSUVLXTUVM
      YQVYAUVNUVOYQVWSVYFLVUDLOVYDVAYNVYEUYDVUGVYEWAVYDWASVYFWAVXQVWSYOYDVXLALO
      UVPVFUTZVWRAVXHOUVQUTVYHVXKOUVRLOSUVSWSYLAVWRUVTUWAUWBYRUWCALVVMVIZVJZUXD
      UTZQLUWDVWRVWTUXDUTZAVYKQLAVVMLUTWQCVYKULBCJVYJLVYIUXRVVMUWEUWFUEXBYSUWGV
      YKVYLQUYDLQURYHZVYJVWTUXDVYMVYIUYELVVMUYDUWHUWIXHUWJYPYTAUYDVAUTZUYKAUYKV
      YNUXOUXDUTAUXOUXMUXDUXTADUXMUXDUTUMBDJUXMVWIUXMVQUTUXRLVQUWKUWLUFXBYSUWMV
      YNUYJUXOUXDVYNUYIUXIUXKVYNUOUXFUYHUXHVYNUYDVDWDUYHUXHWDUYDUXAUYDVDUXGUWNU
      WOUWPYRXHUWQYFAUYAUXJVUEUTUNUOLNOVUEKUBSVVCUWRXTUWSYTAUYAUXEIUXBUNBIJKNUK
      UWTXTUXC $.
  $}

  ${
    $d O x $.  $d R y $.  $d U x $.  $d Y x $.  $d ph y $.
    evl1gsumd.q $e |- O = ( eval1 ` R ) $.
    evl1gsumd.p $e |- P = ( Poly1 ` R ) $.
    evl1gsumd.b $e |- B = ( Base ` R ) $.
    evl1gsumd.u $e |- U = ( Base ` P ) $.
    evl1gsumd.r $e |- ( ph -> R e. CRing ) $.
    evl1gsumd.y $e |- ( ph -> Y e. B ) $.

    ${
      $d B y $.  $d M y $.  $d O y $.  $d P y $.  $d U y $.  $d Y y $.
      $d a x y $.  $d m x y $.
      $( Lemma for ~ evl1gsumd (induction step).  (Contributed by AV,
         17-Sep-2019.) $)
      evl1gsumdlem $p |- ( ( m e. Fin /\ -. a e. m /\ ph )
     -> ( ( A. x e. m M e. U -> ( ( O ` ( P gsum ( x e. m |-> M ) ) ) ` Y )
                                = ( R gsum ( x e. m |-> ( ( O ` M ) ` Y ) ) ) )
          -> ( A. x e. ( m u. { a } ) M e. U
                -> ( ( O ` ( P gsum ( x e. ( m u. { a } ) |-> M ) ) ) ` Y )
            = ( R gsum ( x e. ( m u. { a } ) |-> ( ( O ` M ) ` Y ) ) ) ) ) ) $=
        ( vy wcel cfv cv cfn wn w3a wral cmpt cgsu co wceq wi csn cun wa ralunb
        csb cplusg nfcv nfcsb1v csbeq1a cbvmpt oveq2i cvv eqid crg crngring syl
        ccmn ply1ring ringcmn 3ad2ant3 ad2antrr simpll1 rspcsbela expcom adantl
        ccrg adantr imp vex a1i vsnid mpan csbeq1 gsumunsn syl5eq eqcomi oveq1i
        simpll2 syl6eq fveq2d fveq1d simplr gsummptcl eqidd jca evl1addd simprd
        eqtrd oveq1 sylan9eq csbfv12 csbfv2g ax-mp fveq12i fveval1fvcl syl5eqel
        csbconstg eqtri nffv csbhypf syl6req exp31 com23 ex a2d imp4b syl5bi )
        GUAZUBSZKUAZXRSUCZAUDZHFSZBXRUEZJDBXRHUFZUGUHZITTZEBXRJHITZTZUFZUGUHZUI
        ZUJZYCBXRXTUKZULZUEZJDBYOHUFZUGUHZITZTZEBYOYIUFZUGUHZUIZUJYPYDYCBYNUEZU
        MYBYMUMUUCYCBXRYNUNYBYMYDUUDUUCYBYDYLUUDUUCUJZYBYDYLUUEUJYBYDUMZUUDYLUU
        CUUFUUDYLUUCUUFUUDUMZYLUMYTYKJBXTHUOZITZTZEUPTZUHZUUBUUGYLYTYGUUJUUKUHZ
        UULUUGYTJYFUUHDUPTZUHZITZTZUUMUUGJYSUUPUUGYRUUOIUUGYRDRXRBRUAZHUOZUFZUG
        UHZUUHUUNUHZUUOUUGYRDRYOUUSUFZUGUHUVBYQUVCDUGBRYOHUUSRHUQZBUURHURZBUURH
        USZUTVAUUGXRFUUNRDXTVBUUSUUHOUUNVCZYBDVGSZYDUUDAXSUVHYAADVDSZUVHAEVDSZU
        VIAEVPSZUVJPEVEVFZDEMVHVFDVIVFVJVKZXSYAAYDUUDVLZUUGUURXRSZUUSFSZUUFUVOU
        VPUJZUUDYDUVQYBUVOYDUVPBUURXRHFVMVNVOVQVRZXTVBSUUGKVSVTZXSYAAYDUUDWHZUU
        DUUHFSZUUFXTYNSUUDUWAKWABXTYNHFVMWBVOZBUURXTHWCWDWEUVAYFUUHUUNUUTYEDUGY
        EUUTBRXRHUUSUVDUVEUVFUTWFVAWGWIWJWKUUGUUOFSUUQUUMUIUUGCDUUKUUNEFYFUUHIY
        GUUJJLMNOYBUVKYDUUDAXSUVKYAPVJVKZYBJCSZYDUUDAXSUWDYAQVJVKZUUGYFFSYGYGUI
        UUGFBDXRHOUVMUVNYBYDUUDWLWMUUGYGWNWOUUGUWAUUJUUJUIUWBUUGUUJWNWOUVGUUKVC
        ZWPWQWRYGYKUUJUUKWSWTUUGUULUUBUIYLUUGUUBERXRBUURYIUOZUFZUGUHZUUJUUKUHZU
        ULUUGUUBERYOUWGUFZUGUHUWJUUAUWKEUGBRYOYIUWGRYIUQZBUURYIURZBUURYIUSZUTVA
        UUGXRCUUKREXTVBUWGUUJNUWFYBEVGSZYDUUDAXSUWOYAAUVJUWOUVLEVIVFVJVKUVNUUGU
        VOUMZUWGJUUSITZTZCUWGBUURJUOZBUURYHUOZTUWRBUURJYHXAUWSJUWTUWQUURVBSZUWT
        UWQUIRVSZBUURHVBIXBXCUXAUWSJUIUXBBUURJVBXGXCXDXHUWPCDEFUUSIJLMNOUUGUVKU
        VOUWCVQUUGUWDUVOUWEVQUVRXEXFUVSUVTUUGCDEFUUHIJLMNOUWCUWEUWBXEBRXTYIUUJB
        XTUQBJUUIBUUHIBIUQBXTHURXIBJUQXIBUAXTUIZJYHUUIUXCHUUHIBXTHUSWJWKXJWDWEU
        WIYKUUJUUKUWHYJEUGYJUWHBRXRYIUWGUWLUWMUWNUTWFVAWGXKVQWRXLXMXNXOXPXQXN
        $.
    $}

    evl1gsumd.m $e |- ( ph -> A. x e. N M e. U ) $.
    evl1gsumd.n $e |- ( ph -> N e. Fin ) $.
    $d B x $.  $d M a m n $.  $d N a m n x $.  $d O a m n $.  $d P a m n $.
    $d R a m n x $.  $d R x $.  $d U a m n $.  $d Y a m n $.  $d a m n ph x $.
    $( Polynomial evaluation builder for a finite group sum of polynomials.
       (Contributed by AV, 17-Sep-2019.) $)
    evl1gsumd $p |- ( ph -> ( ( O ` ( P gsum ( x e. N |-> M ) ) ) ` Y )
                            = ( R gsum ( x e. N |-> ( ( O ` M ) ` Y ) ) ) ) $=
      ( cgsu cfv vn vm va wcel wral cmpt co wceq cfn wi cv wa c0 csn cun anbi2d
      raleq mpteq1 oveq2d fveq2d fveq1d eqeq12d imbi12d cascl mpt0 oveq2i gsum0
      c0g eqid fveq2i crg ccrg crngring syl ply1scl0 eqcomd syl5eq cgrp ringgrp
      eqtri grpidcl evl1scad simprd eqtrd syl6eqr adantr wn evl1gsumdlem 3expia
      a2d impexp 3imtr4g findcard2s expd mpcom mpd ) AGFUDZBHUEZJDBHGUFZSUGZITZ
      TZEBHJGITTZUFZSUGZUHZQHUIUDZAWRXFUJRXGAWRXFAWQBUAUKZUEZULZJDBXHGUFZSUGZIT
      ZTZEBXHXCUFZSUGZUHZUJAWQBUMUEZULZJDBUMGUFZSUGZITZTZEBUMXCUFZSUGZUHZUJAWQB
      UBUKZUEZULZJDBYGGUFZSUGZITZTZEBYGXCUFZSUGZUHZUJZAWQBYGUCUKZUNUOZUEZULZJDB
      YSGUFZSUGZITZTZEBYSXCUFZSUGZUHZUJZAWRULZXFUJUAUBUCHXHUMUHZXJXSXQYFUUKXIXR
      AWQBXHUMUQUPUUKXNYCXPYEUUKJXMYBUUKXLYAIUUKXKXTDSBXHUMGURUSUTVAUUKXOYDESBX
      HUMXCURUSVBVCXHYGUHZXJYIXQYPUULXIYHAWQBXHYGUQUPUULXNYMXPYOUULJXMYLUULXLYK
      IUULXKYJDSBXHYGGURUSUTVAUULXOYNESBXHYGXCURUSVBVCXHYSUHZXJUUAXQUUHUUMXIYTA
      WQBXHYSUQUPUUMXNUUEXPUUGUUMJXMUUDUUMXLUUCIUUMXKUUBDSBXHYSGURUSUTVAUUMXOUU
      FESBXHYSXCURUSVBVCXHHUHZXJUUJXQXFUUNXIWRAWQBXHHUQUPUUNXNXBXPXEUUNJXMXAUUN
      XLWTIUUNXKWSDSBXHHGURUSUTVAUUNXOXDESBXHHXCURUSVBVCAYFXRAYCEVHTZYEAYCJUUOD
      VDTZTZITZTZUUOAJYBUURAYBDVHTZITUURYAUUTIYADUMSUGUUTXTUMDSBGVEVFDUUTUUTVIZ
      VGVTVJAUUTUUQIAUUQUUTAEVKUDZUUQUUTUHAEVLUDUVBOEVMVNZUUPDEUUTUUOLUUPVIZUUO
      VIZUVAVOVNVPUTVQVAAUUQFUDUUSUUOUHAUUPCDEFIUUOJKLMUVDNOAEVRUDZUUOCUDAUVBUV
      FUVCEVSVNCEUUOMUVEWAVNPWBWCWDYEEUMSUGUUOYDUMESBXCVEVFEUUOUVEVGVTWEWFYGUIU
      DZYRYGUDWGZULZAYHYPUJZUJAYTUUHUJZUJYQUUIUVIAUVJUVKUVGUVHAUVJUVKUJABCDEFUB
      GIJUCKLMNOPWHWIWJAYHYPWKAYTUUHWKWLWMWNWOWP $.
  $}

  ${
    $d B x $.  $d K x $.  $d N x $.  $d Q x $.  $d R x $.  $d ph x $.
    evl1gsumadd.q $e |- Q = ( eval1 ` R ) $.
    evl1gsumadd.k $e |- K = ( Base ` R ) $.
    evl1gsumadd.w $e |- W = ( Poly1 ` R ) $.
    evl1gsumadd.p $e |- P = ( R ^s K ) $.
    evl1gsumadd.b $e |- B = ( Base ` W ) $.
    evl1gsumadd.r $e |- ( ph -> R e. CRing ) $.
    evl1gsumadd.y $e |- ( ( ph /\ x e. N ) -> Y e. B ) $.
    evl1gsumadd.n $e |- ( ph -> N C_ NN0 ) $.
    ${
      evl1gsumadd.0 $e |- .0. = ( 0g ` W ) $.
      evl1gsumadd.f $e |- ( ph -> ( x e. N |-> Y ) finSupp .0. ) $.
      $( Univariate polynomial evaluation maps (additive) group sums to group
         sums.  Remark: the proof would be shorter if the theorem is proved
         directly instead of using ~ evls1gsumadd .  (Contributed by AV,
         15-Sep-2019.) $)
      evl1gsumadd $p |- ( ph -> ( Q ` ( W gsum ( x e. N |-> Y ) ) )
                         = ( P gsum ( x e. N |-> ( Q ` Y ) ) ) ) $=
        ( cmpt cgsu co cfv ces1 wceq evl1fval1 a1i fveq1d cpl1 ccrg wcel ressid
        cress syl eqcomd fveq2d syl5eq oveq1d cbs c0g eqid crg crngring subrgid
        csubrg 3syl cv wa adantr eleqtrd syl6eqr breqtrrd evls1gsumadd mpteq2dv
        cfsupp eqtrd oveq2d 3eqtrd ) AIBHJUBZUCUDZEUEWBFGUFUDZUEZDBHJWCUEZUBZUC
        UDZDBHJEUEZUBZUCUDAWBEWCEWCUGAGEFLMUHUIZUJAWDFGUOUDZUKUEZWAUCUDZWCUEWGA
        WBWMWCAIWLWAUCAIFUKUEWLNAFWKUKAWKFAFULUMZWKFUGQGFULMUNUPUQURUSZUTURABWL
        VAUEZDWCGFWKGHWLJWLVBUEZWCVCMWLVCWQVCWKVCOWPVCQAWNFVDUMGFVGUEUMQFVEGFMV
        FVHABVIHUMZVJZJCWPRWSCIVAUEWPPWSIWLVAAIWLUGWRWOVKURUSVLSAWAKWQVQUAAWQIV
        BUEKAWLIVBAIWLWOUQURTVMVNVOVRAWFWIDUCABHWEWHAWHWEAJEWCWJUJUQVPVSVT $.
    $}

    ${
      $d C x $.
      evl1gsumaddval.f $e |- ( ph -> N e. Fin ) $.
      evl1gsumaddval.c $e |- ( ph -> C e. K ) $.
      $( Value of a univariate polynomial evaluation mapping an additive group
         sum to a group sum of the evaluated variable.  (Contributed by AV,
         17-Sep-2019.) $)
      evl1gsumaddval $p |- ( ph -> ( ( Q ` ( W gsum ( x e. N |-> Y ) ) ) ` C )
                         = ( R gsum ( x e. N |-> ( ( Q ` Y ) ` C ) ) ) ) $=
        ( wcel ralrimiva evl1gsumd ) ABHJGCKIFDLNMPQUAAKCUBBIRUCTUD $.
    $}

    evl1gsummul.1 $e |- .1. = ( 1r ` W ) $.
    evl1gsummul.g $e |- G = ( mulGrp ` W ) $.
    evl1gsummul.h $e |- H = ( mulGrp ` P ) $.
    evl1gsummul.f $e |- ( ph -> ( x e. N |-> Y ) finSupp .1. ) $.
    $( Univariate polynomial evaluation maps (multiplicative) group sums to
       group sums.  (Contributed by AV, 15-Sep-2019.) $)
    evl1gsummul $p |- ( ph -> ( Q ` ( G gsum ( x e. N |-> Y ) ) )
                         = ( H gsum ( x e. N |-> ( Q ` Y ) ) ) ) $=
      ( cfv cmpt cgsu cvv mgpbas ringidval ccrg wcel ccmn ply1crng crngmgp 3syl
      co crg cmnd crngring syl cbs fvex eqeltri jctir pwsring ringmgp cn0 nn0ex
      wa a1i ssexd crh cmhm evl1rhm rhmmhm gsummptmhm eqcomd ) AIBKMEUFUGUHURHB
      KMUGUHUREUFABKCMHIEUIGCLHUCRUJLGHUCUBUKAFULUMZLULUMHUNUMSLFPUOLHUCUPUQAFU
      SUMZJUIUMZVKDUSUMIUTUMAWAWBAVTWASFVAVBJFVCUFUIOFVCVDVEVFFJUIDQVGDIUDVHUQA
      KVIUIVIUIUMAVJVLUAVMAVTELDVNURUMEHIVOURUMSJLFDENPQOVPLDEHIUCUDVQUQTUEVRVS
      $.
  $}

  ${
    evl1varpw.q $e |- Q = ( eval1 ` R ) $.
    evl1varpw.w $e |- W = ( Poly1 ` R ) $.
    evl1varpw.g $e |- G = ( mulGrp ` W ) $.
    evl1varpw.x $e |- X = ( var1 ` R ) $.
    evl1varpw.b $e |- B = ( Base ` R ) $.
    evl1varpw.e $e |- .^ = ( .g ` G ) $.
    evl1varpw.r $e |- ( ph -> R e. CRing ) $.
    evl1varpw.n $e |- ( ph -> N e. NN0 ) $.
    $( Univariate polynomial evaluation maps the exponentiation of a variable
       to the exponentiation of the evaluated variable.  Remark: in contrast to
       ~ evl1gsumadd , the proof is shorter using ~ evls1varpw instead of
       proving it directly.  (Contributed by AV, 15-Sep-2019.) $)
    evl1varpw $p |- ( ph -> ( Q ` ( N .^ X ) )
                        = ( N ( .g ` ( mulGrp ` ( R ^s B ) ) ) ( Q ` X ) ) ) $=
      ( co cfv cmgp cress cv1 cpl1 cmg ces1 cpws wceq evl1fval1 a1i fveq2i ccrg
      eqtri wcel ressid eqcomd fveq2d syl5eq eqidd oveq123d fveq12d eqid csubrg
      syl crg crngring subrgid 3syl evls1varpw eqcomi oveq2d 3eqtrd ) AGIERZCSG
      DBUARZUBSZVMUCSZTSZUDSZRZDBUERZSGVNVSSZDBUFRTSUDSZRGICSZWARAVLVRCVSCVSUGA
      BCDJNUHZUIAGGIVNEVQAEDUCSZTSZUDSZVQEFUDSWFOFWEUDFHTSWELHWDTKUJULUJULAWEVP
      UDAWDVOTADVMUCAVMDADUKUMZVMDUGPBDUKNUNVCUOZUPUPUPUQAGURAIDUBSVNMADVMUBWHU
      PUQZUSUTABVSBDVMVQVPGVOVNVSVAVMVAVOVAVPVAVNVANVQVAPAWGDVDUMBDVBSUMPDVEBDN
      VFVGQVHAVTWBGWAAVNIVSCVSCUGACVSWCVIUIAIVNWIUOUTVJVK $.

    ${
      evl1varpwval.c $e |- ( ph -> C e. B ) $.
      evl1varpwval.h $e |- H = ( mulGrp ` R ) $.
      evl1varpwval.e $e |- E = ( .g ` H ) $.
      $( Value of a univariate polynomial evaluation mapping the exponentiation
         of a variable to the exponentiation of the evaluated variable.
         (Contributed by AV, 14-Sep-2019.) $)
      evl1varpwval $p |- ( ph -> ( ( Q ` ( N .^ X ) ) ` C ) = ( N E C ) ) $=
        ( cbs cfv wcel wceq eqid evl1vard cmg cmgp fveq2i eqtri evl1expd simprd
        co ) AJLGUPZKUDUEZUFCUQDUEUEJCFUPUGABKEGURFLJDCCMNQURUHZSUAABKEURDLCMPQ
        NUSSUAUIGHUJUEKUKUEZUJUERHUTUJOULUMFIUJUEEUKUEZUJUEUCIVAUJUBULUMTUNUO
        $.
    $}

    evl1scvarpw.t1 $e |- .X. = ( .s ` W ) $.
    evl1scvarpw.a $e |- ( ph -> A e. B ) $.
    ${
      evl1scvarpw.s $e |- S = ( R ^s B ) $.
      evl1scvarpw.t2 $e |- .xb = ( .r ` S ) $.
      evl1scvarpw.m $e |- M = ( mulGrp ` S ) $.
      evl1scvarpw.f $e |- F = ( .g ` M ) $.
      $( Univariate polynomial evaluation maps a multiple of an exponentiation
         of a variable to the multiple of an exponentiation of the evaluated
         variable.  (Contributed by AV, 18-Sep-2019.) $)
      evl1scvarpw $p |- ( ph -> ( Q ` ( A .X. ( N .^ X ) ) )
                       = ( ( B X. { A } ) .xb ( N F ( Q ` X ) ) ) ) $=
        ( co cfv cascl cmulr csn cxp casa wcel csca wceq ccrg ply1assa syl6eleq
        cbs syl ply1sca eqcomd eleqtrrd cmnd cn0 crngring ply1ring ringmgp eqid
        fveq2d crg vr1cl mgpbas mulgnn0cl syl3anc asclmul1 crh evl1rhm ply1lmod
        clmod asclf ffvelrnd rhmmul evl1sca syl2anc cpws evl1varpw fveq2i eqtri
        cmgp cmg a1i oveqd eqtrd oveq12d 3eqtrd ) ABMOIUJZHUJZDUKBNULUKZUKZXANU
        MUKZUJZDUKZXDDUKZXADUKZGUJZCBUNUOZMODUKZJUJZGUJAXBXFDAXFXBANUPUQZBNURUK
        ZVCUKZUQXANVCUKZUQZXFXBUSAEUTUQZXNUBNEQVAVDABEVCUKZXPABCXTUETVBAXOEVCAX
        SXOEUSUBXSEXONEUTQVEVFVDVNVGZAKVHUQZMVIUQOXQUQZXRANVOUQZYBAEVOUQZYDAXSY
        EUBEVJVDZNEQVKVDZNKRVLVDUCAYEYCYFXQNEOSQXQVMZVPVDXQIKMOXQNKRYHVQUAVRVSZ
        XCBHXEXOXPXQNXAXCVMZXOVMZXPVMZYHXEVMZUDVTVSVFVNADNFWAUJUQZXDXQUQXRXGXJU
        SAXSYNUBCNEFDPQUFTWBVDAXPXQBXCAXCXQXOXPNYJYKYGAYENWDUQYFNEQWCVDYLYHWEYA
        WFYIXDXANFXEGDXQYHYMUGWGVSAXHXKXIXMGAXSBCUQXHXKUSUBUEXCCNEDBPQTYJWHWIAX
        IMXLECWJUJZWNUKZWOUKZUJXMACDEIKMNOPQRSTUAUBUCWKAYQJMXLAJYQJYQUSAJLWOUKY
        QUILYPWOLFWNUKYPUHFYOWNUFWLWMWLWMWPVFWQWRWSWT $.
    $}

    ${
      evl1scvarpwval.c $e |- ( ph -> C e. B ) $.
      evl1scvarpwval.h $e |- H = ( mulGrp ` R ) $.
      evl1scvarpwval.e $e |- E = ( .g ` H ) $.
      evl1scvarpwval.t $e |- .x. = ( .r ` R ) $.
      $( Value of a univariate polynomial evaluation mapping a multiple of an
         exponentiation of a variable to the multiple of the exponentiation of
         the evaluated variable.  (Contributed by AV, 18-Sep-2019.) $)
      evl1scvarpwval $p |- ( ph -> ( ( Q ` ( A .X. ( N .^ X ) ) ) ` C )
                            = ( A .x. ( N E C ) ) ) $=
        ( co cbs cfv wcel wceq eqid cmnd cn0 crg ccrg crngring ply1ring ringmgp
        syl vr1cl mgpbas mulgnn0cl syl3anc evl1varpwval jca evl1vsd simprd ) AB
        MOJUJZHUJZNUKULZUMDVMEULULBMDIUJZGUJUNACNFHGVNVLBEVODPQTVNUOZUBUFAVLVNU
        MZDVLEULULVOUNAKUPUMZMUQUMOVNUMZVQANURUMZVRAFURUMZVTAFUSUMWAUBFUTVCZNFQ
        VAVCNKRVBVCUCAWAVSWBVNNFOSQVPVDVCVNJKMOVNNKRVPVEUAVFVGACDEFIJKLMNOPQRST
        UAUBUCUFUGUHVHVIUEUDUIVJVK $.
    $}
  $}

  ${
    $d B x $.  $d C x $.  $d K x $.  $d M x $.  $d Q x $.  $d R x $.
    $d ph x $.
    evl1gsummon.q $e |- Q = ( eval1 ` R ) $.
    evl1gsummon.k $e |- K = ( Base ` R ) $.
    evl1gsummon.w $e |- W = ( Poly1 ` R ) $.
    evl1gsummon.b $e |- B = ( Base ` W ) $.
    evl1gsummon.x $e |- X = ( var1 ` R ) $.
    evl1gsummon.h $e |- H = ( mulGrp ` R ) $.
    evl1gsummon.e $e |- E = ( .g ` H ) $.
    evl1gsummon.g $e |- G = ( mulGrp ` W ) $.
    evl1gsummon.p $e |- .^ = ( .g ` G ) $.
    evl1gsummon.t1 $e |- .X. = ( .s ` W ) $.
    evl1gsummon.t2 $e |- .x. = ( .r ` R ) $.
    evl1gsummon.r $e |- ( ph -> R e. CRing ) $.
    evl1gsummon.a $e |- ( ph -> A. x e. M A e. K ) $.
    evl1gsummon.m $e |- ( ph -> M C_ NN0 ) $.
    evl1gsummon.f $e |- ( ph -> M e. Fin ) $.
    evl1gsummon.n $e |- ( ph -> A. x e. M N e. NN0 ) $.
    evl1gsummon.c $e |- ( ph -> C e. K ) $.
    $( Value of a univariate polynomial evaluation mapping an additive group
       sum of a multiple of an exponentiation of a variable to a group sum of
       the multiple of the exponentiation of the evaluated variable.
       (Contributed by AV, 18-Sep-2019.) $)
    evl1gsummon $p |- ( ph
              -> ( ( Q ` ( W gsum ( x e. M |-> ( A .X. ( N .^ X ) ) ) ) ) ` C )
                 = ( R gsum ( x e. M |-> ( A .x. ( N E C ) ) ) ) ) $=
      ( co cmpt cgsu cfv cpws eqid cv wcel clmod csca cbs crg ccrg crngring syl
      ply1lmod adantr r19.21bi wceq ply1sca fveq2d syl5eq eleqtrd cmnd ply1ring
      cn0 ringmgp vr1cl mgpbas mulgnn0cl lmodvscl evl1gsumaddval evl1scvarpwval
      wa syl3anc mpteq2dva oveq2d eqtrd ) AEQBOCPRKUPZIUPZUQURUPFUSUSGBOEWOFUSU
      SZUQZURUPGBOCPEJUPHUPZUQZURUPABDEGNUTUPZFGNOQWOSTUAWTVAUBUJABVBOVCZWIZQVD
      VCZCQVEUSZVFUSZVCWNDVCZWODVCAXCXAAGVGVCZXCAGVHVCZXGUJGVIVJZQGUAVKVJVLXBCN
      XEACNVCBOUKVMZANXEVNXAANGVFUSXETAGXDVFAXHGXDVNUJQGVHUAVOVJVPVQVLVRXBLVSVC
      ZPWAVCZRDVCZXFAXKXAAQVGVCZXKAXGXNXIQGUAVTVJQLUFWBVJVLAXLBOUNVMZXBXGXMAXGX
      AXIVLDQGRUCUAUBWCVJDKLPRDQLUFUBWDUGWEWJCIXDXEDQWNUBXDVAUHXEVAWFWJULUMUOWG
      AWQWSGURABOWPWRXBCNEFGHIJKLMPQRSUAUFUCTUGAXHXAUJVLXOUHXJAENVCXAUOVLUDUEUI
      WHWKWLWM $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  The complex numbers as an algebraic extensible structure
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constant symbols and define their syntactic properties. $)
  $c PsMet $.
  $c *Met $.
  $c Met $.
  $c ball $.
  $c fBas $.
  $c filGen $.
  $c MetOpen $.
  $c metUnif $.

  $( Extend class notation with the class of all pseudometric spaces. $)
  cpsmet $a class PsMet $.

  $( Extend class notation with the class of all extended metric spaces. $)
  cxmt $a class *Met $.

  $( Extend class notation with the class of all metrics. $)
  cme $a class Met $.

  $( Extend class notation with the metric space ball function. $)
  cbl $a class ball $.

  $( Extend class definition to include the class of filter bases. $)
  cfbas $a class fBas $.

  $( Extend class definition to include the filter generating function. $)
  cfg $a class filGen $.

  $( Extend class notation with a function mapping each metric space to the
     family of its open sets. $)
  cmopn $a class MetOpen $.

  $( Extend class notation with the function mapping metrics to the uniform
     structure generated by that metric. $)
  cmetu $a class metUnif $.

  ${
    $d d x y z w $.
    $( Define the set of all pseudometrics on a given base set.  In a pseudo
       metric, two distinct points may have a distance zero.  (Contributed by
       Thierry Arnoux, 7-Feb-2018.) $)
    df-psmet $a |- PsMet = ( x e. _V |-> { d e. ( RR* ^m ( x X. x ) ) |
          A. y e. x ( ( y d y ) = 0 /\
          A. z e. x A. w e. x ( y d z ) <_ ( ( w d y ) +e ( w d z ) ) ) } ) $.

    $( Define the set of all extended metrics on a given base set.  The
       definition is similar to ~ df-met , but we also allow the metric to take
       on the value ` +oo ` .  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
    df-xmet $a |- *Met = ( x e. _V |-> { d e. ( RR* ^m ( x X. x ) ) |
                 A. y e. x A. z e. x ( ( ( y d z ) = 0 <-> y = z ) /\
                 A. w e. x ( y d z ) <_ ( ( w d y ) +e ( w d z ) ) ) } ) $.

    $( Define the (proper) class of all metrics.  (A metric space is the
       metric's base set paired with the metric; see ~ df-ms .  However, we
       will often also call the metric itself a "metric space".)  Equivalent to
       Definition 14-1.1 of [Gleason] p. 223.  The 4 properties in Gleason's
       definition are shown by ~ met0 , ~ metgt0 , ~ metsym , and ~ mettri .
       (Contributed by NM, 25-Aug-2006.) $)
    df-met $a |- Met = ( x e. _V |-> { d e. ( RR ^m ( x X. x ) ) |
                 A. y e. x A. z e. x ( ( ( y d z ) = 0 <-> y = z ) /\
                 A. w e. x ( y d z ) <_ ( ( w d y ) + ( w d z ) ) ) } ) $.

    $( Define the metric space ball function.  See ~ blval for its value.
       (Contributed by NM, 30-Aug-2006.)  (Revised by Thierry Arnoux,
       11-Feb-2018.) $)
    df-bl $a |- ball = ( d e. _V |-> ( x e. dom dom d ,
      z e. RR* |-> { y e. dom dom d | ( x d y ) < z } ) ) $.

    $( Define a function whose value is the family of open sets of a metric
       space.  See ~ elmopn for its main property.  (Contributed by NM,
       1-Sep-2006.) $)
    df-mopn $a |- MetOpen = ( d e. U. ran *Met |->
      ( topGen ` ran ( ball ` d ) ) ) $.

    $( Define the class of all filter bases.  Note that a filter base on one
       set is also a filter base for any superset, so there is not a unique
       base set that can be recovered.  (Contributed by Jeff Hankins,
       1-Sep-2009.)  (Revised by Stefan O'Rear, 11-Jul-2015.) $)
    df-fbas $a |- fBas = ( w e. _V |-> { x e. ~P ~P w | ( x =/= (/) /\
      (/) e/ x /\ A. y e. x A. z e. x ( x i^i ~P ( y i^i z ) ) =/= (/) ) } ) $.

    $( Define the filter generating function.  (Contributed by Jeff Hankins,
       3-Sep-2009.)  (Revised by Stefan O'Rear, 11-Jul-2015.) $)
    df-fg $a |- filGen = ( w e. _V , x e. ( fBas ` w ) |->
        { y e. ~P w | ( x i^i ~P y ) =/= (/) } ) $.
  $}

  ${
    $d d a $.
    $( Define the function mapping metrics to the uniform structure generated
       by that metric.  (Contributed by Thierry Arnoux, 1-Dec-2017.)  (Revised
       by Thierry Arnoux, 11-Feb-2018.) $)
    df-metu $a |- metUnif = ( d e. U. ran PsMet |-> ( ( dom dom d X. dom dom d
      ) filGen ran ( a e. RR+ |-> ( `' d " ( 0 [,) a ) ) ) ) ) $.
  $}

  $c CCfld $.

  $( Extend class notation with the field of complex numbers. $)
  ccnfld $a class CCfld $.

  $( The field of complex numbers.  Other number fields and rings can be
     constructed by applying the ` |``s ` restriction operator, for instance
     ` ( CCfld |`` AA ) ` is the field of algebraic numbers.

     The contract of this set is defined entirely by ~ cnfldex , ~ cnfldadd ,
     ~ cnfldmul , ~ cnfldcj , ~ cnfldtset , ~ cnfldle , ~ cnfldds , and
     ~ cnfldbas .  We may add additional members to this in the future.
     (Contributed by Stefan O'Rear, 27-Nov-2014.)  (Revised by Thierry Arnoux,
     15-Dec-2017.)  (New usage is discouraged.) $)
  df-cnfld $a |- CCfld = ( ( { <. ( Base ` ndx ) , CC >. ,
      <. ( +g ` ndx ) , + >. , <. ( .r ` ndx ) , x. >. } u.
      { <. ( *r ` ndx ) , * >. } ) u.
    ( { <. ( TopSet ` ndx ) , ( MetOpen ` ( abs o. - ) ) >. ,
        <. ( le ` ndx ) , <_ >. ,
        <. ( dist ` ndx ) , ( abs o. - ) >. } u.
      { <. ( UnifSet ` ndx ) , ( metUnif ` ( abs o. - ) ) >. } ) ) $.

  $( The field of complex numbers is a structure.  (Contributed by Mario
     Carneiro, 14-Aug-2015.)  (Revised by Thierry Arnoux, 17-Dec-2017.) $)
  cnfldstr $p |- CCfld Struct <. 1 , ; 1 3 >. $=
    ( cnx cfv cc cop caddc cmul ctp ccj csn cun cle c1 c3 cdc c9 cc0 1nn0 declt
    c2 2nn ccnfld cbs cplusg cmulr cstv cts cabs cmin ccom cmopn cple cds cunif
    cmetu cstr df-cnfld c4 eqid srngfn 9nn tsetndx 9lt10 10nn 0nn0 2pos decnncl
    plendx dsndx strle3 3nn unifndx strle1 2nn0 2lt3 strleun 4lt9 eqbrtri ) UAA
    UBBCDAUCBEDAUDBFDGAUEBHDIJZAUFBZUGUHUIZUJBZDAUKBZKDAULBZVTDGZAUMBZVTUNBZDIZ
    JZJLLMNZDUOUPLUQOWIVRWHCEVRFHVRURUSOLSNZWIWIWDWGVSWBWCOLPNWJWAKVTUTVAVBVCVG
    LPSQVDTVERLSQTVFVHVIWEWIWFLMQVJVFVKVLLSMQVMVJVNRVOVPVOVQ $.

  $( The field of complex numbers is a set.  (Contributed by Stefan O'Rear,
     27-Nov-2014.)  (Revised by Mario Carneiro, 14-Aug-2015.)  (Revised by
     Thierry Arnoux, 17-Dec-2017.) $)
  cnfldex $p |- CCfld e. _V $=
    ( ccnfld c1 c3 cdc cop cstr wbr cvv wcel cnfldstr structex ax-mp ) ABBCDEZF
    GAHIJAMKL $.

  $( The base set of the field of complex numbers.  (Contributed by Stefan
     O'Rear, 27-Nov-2014.)  (Revised by Mario Carneiro, 6-Oct-2015.)  (Revised
     by Thierry Arnoux, 17-Dec-2017.) $)
  cnfldbas $p |- CC = ( Base ` CCfld ) $=
    ( cc cvv wcel ccnfld cbs cfv wceq c1 c3 cdc cop cnfldstr baseid cnx csn ctp
    cnex cun ssun1 sstri cplusg caddc cmulr cmul snsstp1 cstv ccj cts cabs cmin
    ccom cmopn cple cle cds cunif cmetu df-cnfld sseqtr4i strfv ax-mp ) ABCADEF
    GQADEBHHIJKLMNEFAKZOVBNUAFUBKZNUCFUDKZPZDVBVCVDUEVEVENUFFUGKOZRZDVEVFSVGVGN
    UHFUIUJUKZULFKNUMFUNKNUOFVHKPNUPFVHUQFKORZRDVGVISURUSTTUTVA $.

  $( The addition operation of the field of complex numbers.  (Contributed by
     Stefan O'Rear, 27-Nov-2014.)  (Revised by Mario Carneiro, 6-Oct-2015.)
     (Revised by Thierry Arnoux, 17-Dec-2017.) $)
  cnfldadd $p |- + = ( +g ` CCfld ) $=
    ( caddc cvv wcel ccnfld cplusg cfv addex c1 c3 cdc cop cnfldstr plusgid cnx
    wceq csn ctp cun ssun1 sstri cbs cmulr cmul snsstp2 cstv ccj cabs cmin ccom
    cc cts cmopn cple cle cds cunif cmetu df-cnfld sseqtr4i strfv ax-mp ) ABCAD
    EFOGADEBHHIJKLMNEFAKZPNUAFUJKZVBNUBFUCKZQZDVCVBVDUDVEVENUEFUFKPZRZDVEVFSVGV
    GNUKFUGUHUIZULFKNUMFUNKNUOFVHKQNUPFVHUQFKPRZRDVGVISURUSTTUTVA $.

  $( The multiplication operation of the field of complex numbers.
     (Contributed by Stefan O'Rear, 27-Nov-2014.)  (Revised by Mario Carneiro,
     6-Oct-2015.)  (Revised by Thierry Arnoux, 17-Dec-2017.) $)
  cnfldmul $p |- x. = ( .r ` CCfld ) $=
    ( cmul cvv wcel ccnfld cmulr cfv wceq mulex cdc cop cnfldstr mulrid cnx csn
    c1 c3 ctp cun ssun1 sstri cbs cc cplusg snsstp3 cstv ccj cts cabs cmin ccom
    caddc cmopn cple cle cds cunif cmetu df-cnfld sseqtr4i strfv ax-mp ) ABCADE
    FGHADEBOOPIJKLMEFAJZNMUAFUBJZMUCFUKJZVBQZDVCVDVBUDVEVEMUEFUFJNZRZDVEVFSVGVG
    MUGFUHUIUJZULFJMUMFUNJMUOFVHJQMUPFVHUQFJNRZRDVGVISURUSTTUTVA $.

  $( The conjugation operation of the field of complex numbers.  (Contributed
     by Mario Carneiro, 6-Oct-2015.)  (Revised by Thierry Arnoux, 17-Dec-2017.)
     (Revised by Thierry Arnoux, 17-Dec-2017.) $)
  cnfldcj $p |- * = ( *r ` CCfld ) $=
    ( ccj cvv wcel ccnfld cstv cfv wceq cc wf cjf cnex fex2 mp3an c1 c3 cop cnx
    csn ctp cun cdc cnfldstr starvid cbs cplusg caddc cmulr cmul ssun2 cts cabs
    cmin ccom cmopn cple cunif cmetu ssun1 df-cnfld sseqtr4i sstri strfv ax-mp
    cle cds ) ABCZADEFGHHAIHBCZVGVFJKKHHABBLMADEBNNOUAPUBUCQEFAPRZQUDFHPQUEFUFP
    QUGFUHPSZVHTZDVHVIUIVJVJQUJFUKULUMZUNFPQUOFVDPQVEFVKPSQUPFVKUQFPRTZTDVJVLUR
    USUTVAVBVC $.

  $( The topology component of the field of complex numbers.  (Contributed by
     Mario Carneiro, 14-Aug-2015.)  (Revised by Mario Carneiro, 6-Oct-2015.)
     (Revised by Thierry Arnoux, 17-Dec-2017.) $)
  cnfldtset $p |- ( MetOpen ` ( abs o. - ) ) = ( TopSet ` CCfld ) $=
    ( cabs cmin ccom cmopn cfv cvv wcel ccnfld cts wceq fvex c1 cdc cop cnx csn
    c3 ctp cun sstri cnfldstr tsetid cple cle cds snsstp1 cunif cmetu ssun1 cbs
    cc cplusg caddc cmulr cmul cstv ccj ssun2 df-cnfld sseqtr4i strfv ax-mp ) A
    BCZDEZFGVDHIEJVCDKVDHIFLLQMNUAUBOIEVDNZPVEOUCEUDNZOUEEVCNZRZHVEVFVGUFVHVHOU
    GEVCUHENPZSZHVHVIUIVJOUJEUKNOULEUMNOUNEUONROUPEUQNPSZVJSHVJVKURUSUTTTVAVB
    $.

  $( The ordering of the field of complex numbers.  (Note that this is not
     actually an ordering on ` CC ` , but we put it in the structure anyway
     because restricting to ` RR ` does not affect this component, so that
     ` ( CCfld |``s RR ) ` is an ordered field even though ` CCfld ` itself is
     not.)  (Contributed by Mario Carneiro, 14-Aug-2015.)  (Revised by Mario
     Carneiro, 6-Oct-2015.)  (Revised by Thierry Arnoux, 17-Dec-2017.) $)
  cnfldle $p |- <_ = ( le ` CCfld ) $=
    ( cle ctsr wcel ccnfld cple cfv wceq letsr c1 c3 cdc cop cnfldstr pleid cnx
    csn cts ctp cun sstri cabs cmin ccom cmopn cds snsstp2 cunif cmetu ssun1 cc
    cbs cplusg caddc cmulr cmul cstv ccj ssun2 df-cnfld sseqtr4i strfv ax-mp )
    ABCADEFGHADEBIIJKLMNOEFALZPOQFUAUBUCZUDFLZVCOUEFVDLZRZDVEVCVFUFVGVGOUGFVDUH
    FLPZSZDVGVHUIVIOUKFUJLOULFUMLOUNFUOLROUPFUQLPSZVISDVIVJURUSUTTTVAVB $.

  $( The metric of the field of complex numbers.  (Contributed by Mario
     Carneiro, 14-Aug-2015.)  (Revised by Mario Carneiro, 6-Oct-2015.)
     (Revised by Thierry Arnoux, 17-Dec-2017.) $)
  cnfldds $p |- ( abs o. - ) = ( dist ` CCfld ) $=
    ( cabs cmin ccom cvv wcel ccnfld cds cfv wceq cc cr wf cnex cop cnx csn ctp
    c1 cun sstri cxp absf subf fco mp2an xpex reex fex2 mp3an cdc cnfldstr dsid
    c3 cts cmopn cple cle snsstp3 cunif cmetu ssun1 cbs cplusg caddc cmulr cmul
    cstv ccj ssun2 df-cnfld sseqtr4i strfv ax-mp ) ABCZDEZVNFGHIJJUAZKVNLZVPDEK
    DEVOJKALVPJBLVQUBUCVPJKABUDUEJJMMUFUGVPKVNDDUHUIVNFGDRRUMUJNUKULOGHVNNZPOUN
    HVNUOHNZOUPHUQNZVRQZFVSVTVRURWAWAOUSHVNUTHNPZSZFWAWBVAWCOVBHJNOVCHVDNOVEHVF
    NQOVGHVHNPSZWCSFWCWDVIVJVKTTVLVM $.

  $( The uniform structure component of the complex numbers.  (Contributed by
     Thierry Arnoux, 17-Dec-2017.) $)
  cnfldunif $p |- ( metUnif ` ( abs o. - ) ) = ( UnifSet ` CCfld ) $=
    ( cabs cmin ccom cmetu cfv cvv wcel ccnfld cunif wceq c1 c3 cdc cop cnx csn
    fvex ctp cun ssun2 cnfldstr unifid cts cmopn cle cds cbs cplusg caddc cmulr
    cple cc cmul cstv ccj df-cnfld sseqtr4i sstri strfv ax-mp ) ABCZDEZFGVBHIEJ
    VADQVBHIFKKLMNUAUBOIEVBNPZOUCEVAUDENOUKEUENOUFEVANRZVCSZHVCVDTVEOUGEULNOUHE
    UINOUJEUMNROUNEUONPSZVESHVEVFTUPUQURUSUT $.

  $( The field of complex numbers is a function.  (Contributed by AV,
     14-Nov-2021.) $)
  cnfldfun $p |- Fun CCfld $=
    ( wfun cnx cfv cc cin c0 wceq wne fvex c1 c4 ltneii neeqtrri eqnetri c2 1nn
    c3 c9 2nn0 decltdi ccnfld cbs cop caddc cmulr cmul ctp cstv ccj csn cun cts
    cplusg cabs cmin ccom cmopn cple cle cds cunif cmetu wa cdm basendxnmulrndx
    basendxnplusgndx plusgndxnmulrndx cnex addex mulex funtp mp3an cvv wcel cjf
    fex mp2an funsn pm3.2i dmtpop dmsnop ineq12i basendx 1lt4 starvndx plusgndx
    wf 1re 2re 2lt4 mulrndx 3re 3lt4 disjtpsn eqtri funun tsetndx cc0 cdc 9lt10
    9re plendx 9nn0 leidi dsndx 10re 1nn0 0nn0 2pos declt ctsr letsr elexi absf
    2nn cr cxp subf xpex coex 3nn0 unifndx 3nn 3pos deccl nn0rei 2lt3 dmun 1lt9
    w3a 2lt9 3lt9 3pm3.2i ltleii undisj2 mpbi 4re 4lt9 gtneii 4nn0 1lt10 funeqi
    2lt10 3lt10 disjtp2 incom 4lt10 disjsn2 ax-mp undisj1 df-cnfld mpbir ) UAAB
    UBCZDUCBUMCZUDUCBUECZUFUCUGZBUHCZUIUCUJZUKZBULCZUNUOUPZUQCZUCBURCZUSUCBUTCZ
    UVAUCUGZBVACZUVAVBCZUCUJZUKZUKZAZUUSAZUVIAZVCUUSVDZUVIVDZEZFGUVKUVLUVMUUPAZ
    UURAZVCUUPVDZUURVDZEZFGUVLUVQUVRUUMUUNHUUMUUOHUUNUUOHUVQVFVEVGUUMUUNUUODUDU
    FBUBIBUMIBUEIVHVIVJVKVLUUQUIBUHIDDUIWGDVMVNZUIVMVNVOVHDDVMUIVPVQZVRVSUWAUUM
    UUNUUOUGZUUQUJZEZFUVSUWDUVTUWEUUMDUUNUDUUOUFVHVIVJVTZUUQUIUWCWAZWBUUMUUQHUU
    NUUQHUUOUUQHUWFFGUUMJUUQWCJKUUQJKWHWDLWEMNUUNOUUQWFOKUUQOKWIWJLWEMNUUOQUUQW
    KQKUUQQKWLWMLWEMNUUMUUNUUOUUQWNVLWOUUPUURWPVQUVEAZUVHAZVCUVEVDZUVHVDZEZFGUV
    MUWIUWJUUTUVCHUUTUVDHUVCUVDHUWIUUTRUVCWQRJWRWSZUVCRUWNXAWTLXBMNUUTRUVDWQRJO
    WSZUVDRUWOXAJORPSXCRXAXDZTLXEMNUVCUWNUVDXBUWNUWOUVDUWNUWOXFJWROXGXHXOXIXJLX
    EMNUUTUVCUVDUVBUSUVABULIBURIBUTIUVAUQIZUSXKXLXMZUNUODXPUNWGUWBUNVMVNXNVHDXP
    VMUNVPVQDDXQZDUOWGUWSVMVNUOVMVNXRDDVHVHXSUWSDVMUOVPVQXTZVKVLUVFUVGBVAIUVAVB
    IZVRVSUWMUUTUVCUVDUGZUVFUJZEZFUWKUXBUWLUXCUUTUVBUVCUSUVDUVAUWQUWRUWTVTZUVFU
    VGUXAWAZWBUUTUVFHUVCUVFHUVDUVFHUXDFGUUTRUVFWQRJQWSZUVFRUXGXAJQRPYAXCUWPTLYB
    MNUVCUWNUVFXBUWNUXGUVFUWNUXGXFJWRQXGXHYCYDXJLYBMNUVDUWOUVFXEUWOUXGUVFUWOUXG
    UWOJOXGSYEYFJOQXGSYCYGXJLYBMNUUTUVCUVDUVFWNVLWOUVEUVHWPVQVSUVPUVSUVTUKZUWKU
    WLUKZEZFUVNUXHUVOUXIUUPUURYHUVEUVHYHWBUVSUXIEFGZUVTUXIEFGZVCUXJFGUXKUXLUVSU
    WKEZFGZUVSUWLEZFGZVCUXKUXNUXPUXMUWDUXBEZFUVSUWDUWKUXBUWGUXEWBUUMUUTHZUUNUUT
    HZUUOUUTHZYJUUMUVCHZUUNUVCHZUUOUVCHZYJUUMUVDHZUUNUVDHZUUOUVDHZYJUXQFGUXRUXS
    UXTUUMJUUTWCJRUUTJRWHYILWQMNUUNOUUTWFORUUTORWIYKLWQMNUUOQUUTWKQRUUTQRWLYLLW
    QMNYMUYAUYBUYCUUMJUVCWCJUWNUVCJUWNWHUUALXBMNUUNOUVCWFOUWNUVCOUWNWIUUCLXBMNU
    UOQUVCWKQUWNUVCQUWNWLUUDLXBMNYMUYDUYEUYFUUMJUVDWCJUWOUVDJUWOWHJOJPSXGJRWHXA
    YIYNZTLXEMNUUNOUVDWFOUWOUVDOUWOWIJOOPSSORWIXAYKYNZTLXEMNUUOQUVDWKQUWOUVDQUW
    OWLJOQPSYAQRWLXAYLYNZTLXEMNYMUUMUUNUUOUUTUVCUVDUUEVLWOUXOUWDUXCEZFUVSUWDUWL
    UXCUWGUXFWBUUMUVFHUUNUVFHUUOUVFHUYJFGUUMJUVFWCJUXGUVFJUXGWHJQJPYAXGUYGTLYBM
    NUUNOUVFWFOUXGUVFOUXGWIJQOPYASUYHTLYBMNUUOQUVFWKQUXGUVFQUXGWLJQQPYAYAUYITLY
    BMNUUMUUNUUOUVFWNVLWOVSUVSUWKUWLYOYPUVTUWKEZFGZUVTUWLEZFGZVCUXLUYLUYNUYKUWE
    UXBEZFUVTUWEUWKUXBUWHUXEWBUYOUXBUWEEZFUWEUXBUUFUUTUUQHUVCUUQHUVDUUQHUYPFGUU
    TRUUQWQRKUUQKRYQYRYSWEMNUVCUWNUUQXBUWNKUUQKUWNYQUUGYSWEMNUVDUWOUUQXEUWOKUUQ
    KUWOYQJOKPSYTKRYQXAYRYNZTYSWEMNUUTUVCUVDUUQWNVLWOWOUYMUWEUXCEZFUVTUWEUWLUXC
    UWHUXFWBUUQUVFHUYRFGUUQKUVFWEKUXGUVFKUXGYQJQKPYAYTUYQTLYBMNUUQUVFUUHUUIWOVS
    UVTUWKUWLYOYPVSUVSUVTUXIUUJYPWOUUSUVIWPVQUAUVJUUKUUBUUL $.

  $( Alternate proof of ~ cnfldfun (much shorter proof, using ~ cnfldstr and
     ~ structn0fun : in addition, it must be shown that ` (/) e/ CCfld ` ).
     (Contributed by AV, 18-Nov-2021.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  cnfldfunALT $p |- Fun CCfld $=
    ( ccnfld cop c0 wceq wcel wn cnx cfv cc ccj wo cabs cmin wa fvex cnex opnzi
    nesymi cvv ax-mp c1 cdc cstr wbr wfun cnfldstr csn cdif structn0fun cin cbs
    c3 cplusg caddc cmulr cmul ctp cstv cts ccom cmopn cple cle cds cunif cmetu
    addex mulex w3o w3a 3ioran 0ex eltp xchnxbir mpbir3an wne wf cjf fex necomi
    mp2an nelsn pm3.2i ctsr letsr elexi absf subf xpex coex mtbir ioran anbi12i
    cr cxp bitri cun df-cnfld eleq2i elun orbi12i 3bitri disjsn disjdif2 funeqi
    mpbir sylib ) AUAUAULUBBZUCUDZAUEZUFXIACUGZUHZUEXJAXHUIXLAAXKUJCDZXLADXMCAE
    ZFXNCGUKHZIBZGUMHZUNBZGUOHZUPBZUQZEZCGURHZJBZUGZEZKZCGUSHZLMUTZVAHZBZGVBHZV
    CBZGVDHZYIBZUQZEZCGVEHZYIVFHZBZUGZEZKZKZUUDFZYBFZYFFZNZYQFZUUBFZNZNZUUHUUKU
    UFUUGUUFCXPDZFZCXRDZFZCXTDZFZXPCXOIGUKOPQRXRCXQUNGUMOVGQRXTCXSUPGUOOVHQRUUM
    UUOUUQVIUUNUUPUURVJYBUUMUUOUUQVKCXPXRXTVLVMVNVOCYDVPUUGYDCYCJGUROIIJVQISEZJ
    SEVRPIISJVSWAQVTCYDWBTWCUUIUUJYQCYKDZCYMDZCYODZVIZUVCFUUTFUVAFUVBFYKCYHYJGU
    SOYIVAOQRYMCYLVCGVBOVCWDWEWFQRYOCYNYIGVDOLMIWNLVQUUSLSEWGPIWNSLVSWAIIWOZIMV
    QUVDSEMSEWHIIPPWIUVDISMVSWAWJQRUUTUVAUVBVKVOCYKYMYOVLVMWKCYTVPUUJYTCYRYSGVE
    OYIVFOQVTCYTWBTWCWCUUEYGFZUUCFZNUULYGUUCWLUVEUUHUVFUUKYBYFWLYQUUBWLWMWPXFXN
    CYAYEWQZYPUUAWQZWQZECUVGEZCUVHEZKUUDAUVICWRWSCUVGUVHWTUVJYGUVKUUCCYAYEWTCYP
    UUAWTXAXBWKACXCXFAXKXDTXEXGT $.

  ${
    $d x y z A $.  $d x y B $.
    $( The extended real structure is a structure.  (Contributed by Mario
       Carneiro, 21-Aug-2015.) $)
    xrsstr $p |- RR*s Struct <. 1 , ; 1 2 >. $=
      ( vx vy cxr cv cle wbr cxne cxad cif cmpt2 cxmu cordt cfv df-xrs odrngstr
      co cxrs ) CABCCADZBDZEFSRGHPRSGHPIJHKELMEQABNO $.

    $( The extended real structure is a set.  (Contributed by Mario Carneiro,
       21-Aug-2015.) $)
    xrsex $p |- RR*s e. _V $=
      ( vx vy cxrs cnx cbs cfv cxr cop cplusg cxad cmulr cxmu ctp cts cle cordt
      cv cxne co tpex cple cds wbr cif cmpt2 cun cvv df-xrs unex eqeltri ) CDEF
      GHZDIFJHZDKFLHZMZDNFOPFHZDUAFOHZDUBFABGGAQZBQZOUCURUQRJSUQURRJSUDUEHZMZUF
      UGABUHUNUTUKULUMTUOUPUSTUIUJ $.

    $( The base set of the extended real number structure.  (Contributed by
       Mario Carneiro, 21-Aug-2015.) $)
    xrsbas $p |- RR* = ( Base ` RR*s ) $=
      ( vx vy cxr cvv wcel cxrs cbs cfv wceq xrex cv cle wbr cxne cxad co cmpt2
      cif cxmu cordt df-xrs odrngbas ax-mp ) CDECFGHIJCABCCAKZBKZLMUEUDNOPUDUEN
      OPRQOSLTHLDFABUAUBUC $.

    $( The addition operation of the extended real number structure.
       (Contributed by Mario Carneiro, 21-Aug-2015.) $)
    xrsadd $p |- +e = ( +g ` RR*s ) $=
      ( vx vy cxad cvv wcel cxrs cplusg cfv wceq cxr wf xaddf xrex xpex fex2 cv
      cxp cle cxne co mp3an wbr cif cmpt2 cxmu cordt df-xrs odrngplusg ax-mp )
      CDEZCFGHIJJQZJCKUKDEJDEUJLJJMMNMUKJCDDOUAJABJJAPZBPZRUBUMULSCTULUMSCTUCUD
      CUERUFHRDFABUGUHUI $.

    $( The multiplication operation of the extended real number structure.
       (Contributed by Mario Carneiro, 21-Aug-2015.) $)
    xrsmul $p |- *e = ( .r ` RR*s ) $=
      ( vx vy cxmu cvv wcel cxrs cmulr cfv wceq cxr cxp wf xmulf xrex xpex cxne
      cv cle cxad co fex2 mp3an wbr cif cmpt2 cordt df-xrs odrngmulr ax-mp ) CD
      EZCFGHIJJKZJCLUKDEJDEUJMJJNNONUKJCDDUAUBJABJJAQZBQZRUCUMULPSTULUMPSTUDUES
      CRUFHRDFABUGUHUI $.

    $( The topology component of the extended real number structure.
       (Contributed by Mario Carneiro, 21-Aug-2015.) $)
    xrstset $p |- ( ordTop ` <_ ) = ( TopSet ` RR*s ) $=
      ( vx vy cle cordt cfv cvv wcel cxrs cts wceq fvex cxr cv wbr cxne cxad co
      cif cmpt2 cxmu df-xrs odrngtset ax-mp ) CDEZFGUDHIEJCDKLABLLAMZBMZCNUFUEO
      PQUEUFOPQRSPTUDCFHABUAUBUC $.

    $( The ordering of the extended real number structure.  (Contributed by
       Mario Carneiro, 21-Aug-2015.) $)
    xrsle $p |- <_ = ( le ` RR*s ) $=
      ( vx vy cle cvv wcel cxrs cple cfv wceq cxr cxp xrex lerelxr ssexi cv wbr
      xpex cxne cxad co cif cmpt2 cxmu cordt df-xrs odrngle ax-mp ) CDECFGHICJJ
      KJJLLQMNJABJJAOZBOZCPUIUHRSTUHUIRSTUAUBSUCCUDHCDFABUEUFUG $.

    $( The complex numbers form a commutative ring.  (Contributed by Mario
       Carneiro, 8-Jan-2015.) $)
    cncrng $p |- CCfld e. CRing $=
      ( vx vy vz ccnfld wcel wtru cc caddc cmul c1 cfv cnfldbas a1i cnfldadd cv
      wceq cc0 co 3adant1 adantl ccrg cbs cplusg cmulr cnfldmul cgrp cneg addcl
      addass 0cn addid2 negcl addcom mpancom negid eqtrd isgrpi mulcl w3a adddi
      mulass adddir 1cnd mulid2 mulid1 mulcom iscrngd trud ) DUAEFABCGHDIJGDUBK
      PFLMHDUCKPFNMIDUDKPFUEMDUFEFABCGHDAOZUGZQLNVIBOZUHVIVKCOZUIUJVIUKVIULZVIG
      EZVJVIHRZVIVJHRZQVJGEVNVOVPPVMVJVIUMUNVIUOUPUQMVNVKGEZVIVKIRZGEFVIVKURSVN
      VQVLGEUSZVRVLIRVIVKVLIRZIRPFVIVKVLVATVSVIVKVLHRIRVRVIVLIRZHRPFVIVKVLUTTVS
      VIVKHRVLIRWAVTHRPFVIVKVLVBTFVCVNJVIIRVIPFVIVDTVNVIJIRVIPFVIVETVNVQVRVKVII
      RPFVIVKVFSVGVH $.

    $( The complex numbers form a ring.  (Contributed by Stefan O'Rear,
       27-Nov-2014.) $)
    cnring $p |- CCfld e. Ring $=
      ( ccnfld ccrg wcel crg cncrng crngring ax-mp ) ABCADCEAFG $.

    $( The multiplicative group of the extended reals forms a commutative
       monoid (even though the additive group is not, see ~ xrsmgmdifsgrp .)
       (Contributed by Mario Carneiro, 21-Aug-2015.) $)
    xrsmcmn $p |- ( mulGrp ` RR*s ) e. CMnd $=
      ( vx vy vz cxrs cmgp cfv ccmn wcel wtru cxr cxmu cbs wceq eqid c1 3adant1
      a1i cv co adantl xrsbas mgpbas cplusg xrsmul mgpplusg xmulcl xmulass rexr
      w3a cr 1re mp1i xmulid2 xmulid1 ismndd xmulcom iscmnd trud ) DEFZGHIABJKU
      SJUSLFMIJDUSUSNZUAUBQZKUSUCFMIDKUSUTUDUEQZIABCJKUSOVAVBARZJHZBRZJHZVCVEKS
      ZJHIVCVEUFPVDVFCRZJHUIVGVHKSVCVEVHKSKSMIVCVEVHUGTOUJHOJHIUKOUHULVDOVCKSVC
      MIVCUMTVDVCOKSVCMIVCUNTUOVDVFVGVEVCKSMIVCVEUPPUQUR $.

    $( The zero element of the field of complex numbers.  (Contributed by
       Stefan O'Rear, 27-Nov-2014.) $)
    cnfld0 $p |- 0 = ( 0g ` CCfld ) $=
      ( ccnfld c0g cfv cc0 caddc co wceq 00id cgrp wcel cc wb crg ringgrp ax-mp
      cnring 0cn cnfldbas cnfldadd eqid grpid mp2an mpbi eqcomi ) ABCZDDDEFDGZU
      EDGZHAIJZDKJUFUGLAMJUHPANOQKEADUERSUETUAUBUCUD $.

    $( The unit element of the field of complex numbers.  (Contributed by
       Stefan O'Rear, 27-Nov-2014.) $)
    cnfld1 $p |- 1 = ( 1r ` CCfld ) $=
      ( vx ccnfld cur cfv c1 cc wcel cv cmul wceq wral ax-1cn mulid2 mulid1 jca
      co wa rgen pm3.2i crg cnring cnfldbas cnfldmul eqid isringid ax-mp eqcomi
      wb mpbi ) BCDZEEFGZEAHZIPULJZULEIPULJZQZAFKZQZUJEJZUKUPLUOAFULFGUMUNULMUL
      NORSBTGUQURUHUAAFBIUJEUBUCUJUDUEUFUIUG $.

    $( The additive inverse in the field of complex numbers.  (Contributed by
       Stefan O'Rear, 27-Nov-2014.) $)
    cnfldneg $p |- ( X e. CC -> ( ( invg ` CCfld ) ` X ) = -u X ) $=
      ( cc wcel ccnfld cminusg cfv cneg wceq caddc co cc0 negid wb negcl cnring
      cgrp crg ringgrp ax-mp cnfldbas cnfld0 eqid grpinvid1 mp3an1 mpdan mpbird
      cnfldadd ) ABCZADEFZFAGZHZAUJIJKHZALUHUJBCZUKULMZANDPCZUHUMUNDQCUOODRSBID
      UIAUJKTUGUAUIUBUCUDUEUF $.

    $( The functionalized addition operation of the field of complex numbers.
       (Contributed by Mario Carneiro, 2-Sep-2015.) $)
    cnfldplusf $p |- + = ( +f ` CCfld ) $=
      ( ccnfld cplusf cfv caddc cxp wfn wceq ax-addf ffn cnfldbas cnfldadd eqid
      cc wf plusfeq mp2b eqcomi ) ABCZDMMEZMDNDSFRDGHSMDIMDRAJKRLOPQ $.

    $( The subtraction operator in the field of complex numbers.  (Contributed
       by Mario Carneiro, 15-Jun-2015.) $)
    cnfldsub $p |- - = ( -g ` CCfld ) $=
      ( vx vy cc cv cmin cmpt2 ccnfld cfv wcel caddc cnfldbas eqid wceq wfn ffn
      co wf ax-mp fnov mpbi csg cminusg cneg cnfldadd grpsubval cnfldneg adantl
      wa oveq2d negsub 3eqtrrd mpt2eq3ia cxp subf cgrp crg ringgrp grpsubf mp2b
      cnring 3eqtr4i ) ABCCADZBDZEPZFZABCCVBVCGUAHZPZFZEVFABCCVDVGVBCIZVCCIZUHZ
      VGVBVCGUBHZHZJPVBVCUCZJPVDCJGVLVFVBVCKUDVLLVFLZUEVKVMVNVBJVJVMVNMVIVCUFUG
      UIVBVCUJUKULECCUMZNZEVEMVPCEQVQUNVPCEORABCCESTVFVPNZVFVHMGUOIZVPCVFQVRGUP
      IVSUTGUQRCGVFKVOURVPCVFOUSABCCVFSTVA $.

    $( The complex numbers form a division ring.  (Contributed by Stefan
       O'Rear, 27-Nov-2014.) $)
    cndrng $p |- CCfld e. DivRing $=
      ( vx vy ccnfld cdr wcel wtru cc cmul c1 cv cdiv co cc0 cbs cfv a1i wne wa
      wceq adantl cnfldbas cnfldmul c0g cnfld0 cur cnfld1 cnring mulne0 3adant1
      cmulr crg ax-1ne0 reccl recne0 recid2 isdrngd trud ) CDEFABGCHIIAJZKLZMGC
      NOSFUAPHCUJOSFUBPMCUCOSFUDPICUEOSFUFPCUKEFUGPURGEURMQRZBJZGEVAMQRURVAHLMQ
      FURVAUHUIIMQFULPUTUSGEFURUMTUTUSMQFURUNTUTUSURHLISFURUOTUPUQ $.

    $( The division operation in the field of complex numbers.  (Contributed by
       Stefan O'Rear, 27-Nov-2014.)  (Revised by Mario Carneiro,
       2-Dec-2014.) $)
    cnflddiv $p |- / = ( /r ` CCfld ) $=
      ( vx vy vz cc cc0 cv cmul wceq cmpt2 ccnfld cfv cdiv wcel cnring cnfldbas
      co wa eqid cnfldmul eqtr3d csn cdif crio cinvr cdvr cnfld0 cndrng dvrcan1
      crg drngui mp3an1 oveq1d dvrcl simpr eldifsn sylib simpld simprd divcan4d
      wne simpl divval syl3anc dvrval mpt2eq3ia df-div dvrfval 3eqtr4i ) ABDDEU
      AUBZBFZCFGPAFZHCDUCZIABDVIVKVJJUDKZKGPZILJUEKZABDVIVLVNVKDMZVJVIMZQZVKVJV
      OPZVLVNVRVKVJLPZVSVLVRVSVJGPZVJLPVTVSVRWAVKVJLJUIMZVPVQWAVKHNDVOJGVIVKVJO
      DJEOUFUGUJZVORZSUHUKULVRVSVJWBVPVQVSDMNDVOJVIVKVJOWCWDUMUKVRVJDMZVJEUTZVR
      VQWEWFQVPVQUNVJDEUOUPZUQZVRWEWFWGURZUSTVRVPWEWFVTVLHVPVQVAWHWICVKVJVBVCTD
      VOJGVIVMVKVJOSWCVMRZWDVDTVEABCVFABDVOJGVIVMOSWCWJWDVGVH $.

    $( The multiplicative inverse in the field of complex numbers.
       (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    cnfldinv $p |- ( ( X e. CC /\ X =/= 0 ) ->
      ( ( invr ` CCfld ) ` X ) = ( 1 / X ) ) $=
      ( cc wcel cc0 wne wa csn cdif ccnfld cinvr c1 cdiv co wceq eldifsn cnring
      cfv crg cnfldbas cnfld0 cndrng drngui cnflddiv cnfld1 eqid ringinvdv mpan
      sylbir ) ABCADEFABDGHZCZAIJQZQKALMNZABDOIRCUJULPBLIUIKUKASBIDSTUAUBUCUDUK
      UEUFUGUH $.

    $( The group multiple function in the field of complex numbers.
       (Contributed by Mario Carneiro, 14-Jun-2015.) $)
    cnfldmulg $p |- ( ( A e. ZZ /\ B e. CC ) ->
        ( A ( .g ` CCfld ) B ) = ( A x. B ) ) $=
      ( vx vy cc wcel ccnfld cfv co cmul wceq cv cneg c1 caddc eqeq12d cnfldbas
      cc0 oveq1 eqid cz cmg cnfld0 mulg0 mul02 eqtr4d cn0 wi wa cmnd crg cnring
      ringmnd ax-mp cnfldadd mulgnn0p1 mp3an1 nn0cn adantr simpr adddird mulid2
      1cnd adantl oveq2d eqtrd syl5ibr expcom cn cminusg mulgnegnn nncn mulneg1
      fveq2 sylan mulcl cnfldneg syl zindd impcom ) BEFZAUAFABGUBHZIZABJIZKZCLZ
      BWBIZWFBJIZKRBWBIZRBJIZKDLZBWBIZWKBJIZKZWKMZBWBIZWOBJIZKZWKNOIZBWBIZWSBJI
      ZKZWEWACDAWFRKWGWIWHWJWFRBWBSWFRBJSPWFWKKWGWLWHWMWFWKBWBSWFWKBJSPWFWSKWGW
      TWHXAWFWSBWBSWFWSBJSPWFWOKWGWPWHWQWFWOBWBSWFWOBJSPWFAKWGWCWHWDWFABWBSWFAB
      JSPWAWIRWJEWBGBRQUCWBTZUDBUEUFWKUGFZWAWNXBUHWNXBXDWAUIZWLBOIZWMBOIZKWLWMB
      OSXEWTXFXAXGGUJFZXDWAWTXFKGUKFXHULGUMUNEOWBGWKBQXCUOUPUQXEXAWMNBJIZOIXGXE
      WKNBXDWKEFZWAWKURUSXEVCXDWAUTVAXEXIBWMOWAXIBKXDBVBVDVEVFPVGVHWKVIFZWAWNWR
      UHWNWRXKWAUIZWLGVJHZHZWMXMHZKWLWMXMVNXLWPXNWQXOEWBGXMWKBQXCXMTVKXLWQWMMZX
      OXKXJWAWQXPKWKVLZWKBVMVOXLWMEFZXOXPKXKXJWAXRXQWKBVPVOWMVQVRUFPVGVHVSVT $.

    $( The exponentiation operator in the field of complex numbers (for
       nonnegative exponents).  (Contributed by Mario Carneiro,
       15-Jun-2015.) $)
    cnfldexp $p |- ( ( A e. CC /\ B e. NN0 ) ->
        ( B ( .g ` ( mulGrp ` CCfld ) ) A ) = ( A ^ B ) ) $=
      ( vx vy cn0 wcel cc ccnfld cfv co cexp wceq wi cc0 c1 oveq1 oveq2 eqeq12d
      imbi2d cmul cmgp cmg cv caddc eqid cnfldbas mgpbas cnfld1 ringidval mulg0
      exp0 eqtr4d wa cmnd crg cnring ringmgp cnfldmul mgpplusg mulgnn0p1 mp3an1
      ax-mp ancoms expp1 syl5ibr expcom a2d nn0ind impcom ) BEFAGFZBAHUAIZUBIZJ
      ZABKJZLZVJCUCZAVLJZAVPKJZLZMVJNAVLJZANKJZLZMVJDUCZAVLJZAWCKJZLZMVJWCOUDJZ
      AVLJZAWGKJZLZMVJVOMCDBVPNLZVSWBVJWKVQVTVRWAVPNAVLPVPNAKQRSVPWCLZVSWFVJWLV
      QWDVRWEVPWCAVLPVPWCAKQRSVPWGLZVSWJVJWMVQWHVRWIVPWGAVLPVPWGAKQRSVPBLZVSVOV
      JWNVQVMVRVNVPBAVLPVPBAKQRSVJVTOWAGVLVKAOGHVKVKUEZUFUGZHOVKWOUHUIVLUEZUJAU
      KULWCEFZVJWFWJVJWRWFWJMWFWJVJWRUMZWDATJZWEATJZLWDWEATPWSWHWTWIXAWRVJWHWTL
      ZVKUNFZWRVJXBHUOFXCUPHVKWOUQVBGTVLVKWCAWPWQHTVKWOURUSUTVAVCAWCVDRVEVFVGVH
      VI $.

    $( The complex numbers form a *-ring.  (Contributed by Mario Carneiro,
       6-Oct-2015.) $)
    cnsrng $p |- CCfld e. *Ring $=
      ( vx ccnfld csr wcel wtru caddc cmul ccj cbs cfv wceq cnfldbas a1i cplusg
      vy cc cv adantl co 3adant1 cnfldadd cnfldmul cstv cnfldcj crg cnring cjcl
      cmulr cjadd wa mulcom fveq2d cjmul ancoms eqtrd cjcj issrngd trud ) BCDEA
      OFBGHPPBIJKELMFBNJKEUAMGBUHJKEUBMHBUCJKEUDMBUEDEUFMAQZPDZUSHJZPDEUSUGRUTO
      QZPDZUSVBFSHJVAVBHJZFSKEUSVBUITUTVCUSVBGSZHJZVDVAGSZKEUTVCUJZVFVBUSGSZHJZ
      VGVHVEVIHUSVBUKULVCUTVJVGKVBUSUMUNUOTUTVAHJUSKEUSUPRUQUR $.
  $}

  ${
    $d x y $.
    $( The (additive group of the) extended reals is a magma.  (Contributed by
       AV, 30-Jan-2020.) $)
    xrsmgm $p |- RR*s e. Mgm $=
      ( vx vy cxrs cmgm wcel cv cxad co cxr wral xaddcl rgen2a wb xrsbas xrsadd
      cc0 0xr ismgmn0 ax-mp mpbir ) CDEZAFZBFZGHIEZBIJAIJZUDABIUBUCKLPIEUAUEMQA
      BPICGNORST $.

    $( The (additive group of the) extended reals is not a semigroup.
       (Contributed by AV, 30-Jan-2020.) $)
    xrsnsgrp $p |- RR*s e/ SGrp $=
      ( c1 cxr wcel cmnf cpnf w3a cxad wne cxrs csgrp wnel 1re mnfxr wceq mp2an
      co cc0 ax-mp eqtri mnfaddpnf rexri pnfxr 3pm3.2i xaddcom renepnf xaddmnf2
      cr oveq1i 0ne1 eqnetri oveq2i xaddid1 neeqtrri xrsbas xrsadd isnsgrp mp2
      ) ABCZDBCZEBCZFADGPZEGPZADEGPZGPZHIJKURUSUTALUAZMUBUCVBAVDVBQAVBVCQVADEGV
      ADAGPZDURUSVAVFNVEMADUDOURAEHZVFDNVEAUGCVGLAUERAUFOSUHTSUIUJVDAQGPZAVCQAG
      TUKURVHANVEAULRSUMBIADGEUNUOUPUQ $.
  $}

  $( The (additive group of the) extended reals is a magma, but not a
     semigroup, and therefore also no monoid and no group, in contrast to the
     multiplicative group, see ~ xrsmcmn .  (Contributed by AV,
     30-Jan-2020.) $)
  xrsmgmdifsgrp $p |- RR*s e. ( Mgm \ SGrp ) $=
    ( cxrs cmgm csgrp cdif wcel wn xrsmgm xrsnsgrp neli eldif mpbir2an ) ABCDEA
    BEACEFGACHIABCJK $.

  ${
    $d x y z R $.
    xrs1mnd.1 $e |- R = ( RR*s |`s ( RR* \ { -oo } ) ) $.
    $( The extended real numbers, restricted to ` RR* \ { -oo } ` , form a
       monoid - in contrast to the full structure, see ~ xrsmgmdifsgrp .
       (Contributed by Mario Carneiro, 27-Nov-2014.) $)
    xrs1mnd $p |- R e. Mnd $=
      ( vx vy vz wcel wtru cxr cmnf cxad cc0 cfv wceq mp1i cvv cv co wa eldifsn
      wne cmnd csn cdif wss difss cxrs xrsbas ressbas2 cplusg xrex difexg ax-mp
      cbs xrsadd ressplusg xaddcl ad2ant2r sylanbrc syl2anb 3adant1 w3a xaddass
      xaddnemnf syl3anb adantl cr 0re renemnf eldifi xaddid2 syl xaddid1 ismndd
      rexr trud ) AUAFGCDEHIUBZUCZJAKVQHUDVQAUMLMGHVPUEVQHAUFBUGUHNVQOFZJAUILMG
      HOFVRUJHVPOUKULVQJUFAOBUNUONCPZVQFZDPZVQFZVSWAJQZVQFZGVTVSHFZVSITZRZWAHFZ
      WAITZRZWDWBVSHISZWAHISZWGWJRWCHFZWCITWDWEWHWMWFWIVSWAUPUQVSWAVCWCHISURUSU
      TVTWBEPZVQFZVAWCWNJQVSWAWNJQJQMZGVTWGWBWJWOWNHFWNITRWPWKWLWNHISVSWAWNVBVD
      VEKVFFZKVQFZGVGWQKHFKITWRKVNKVHKHISURNGVTRZWEKVSJQVSMVTWEGVSHVPVIVEZVSVJV
      KWSWEVSKJQVSMWTVSVLVKVMVO $.

    $( The zero of the extended real number monoid.  (Contributed by Mario
       Carneiro, 21-Aug-2015.) $)
    xrs10 $p |- 0 = ( 0g ` R ) $=
      ( vx cc0 c0g cfv wceq wtru cxr cmnf csn cdif cxad wss cxrs ax-mp cvv wcel
      co syl cbs difss xrsbas ressbas2 eqid cplusg xrex xrsadd ressplusg cr 0re
      ssexi wne rexr renemnf eldifsn sylanbrc mp1i cv wa eldifi xaddid2 xaddid1
      adantl ismgmid2 trud ) DAEFZGHCIJKZLZMDAVGVIINVIAUAFGIVHUBZVIIAOBUCUDPVGU
      EVIQRMAUFFGVIIUGVJULVIMOAQBUHUIPDUJRZDVIRZHUKVKDIRDJUMVLDUNDUODIJUPUQURHC
      USZVIRZUTZVMIRZDVMMSVMGVNVPHVMIVHVAVDZVMVBTVOVPVMDMSVMGVQVMVCTVEVF $.

    $( The extended real numbers restricted to ` RR* \ { -oo } ` form a
       commutative monoid.  They are not a group because ` 1 + +oo = 2 + +oo `
       even though ` 1 =/= 2 ` .  (Contributed by Mario Carneiro,
       27-Nov-2014.) $)
    xrs1cmn $p |- R e. CMnd $=
      ( vx vy ccmn wcel cmnd cv cxad co wceq cxr cmnf csn wral eldifi cfv ax-mp
      cxrs cvv cdif xrs1mnd xaddcom syl2an rgen2a wss cbs difss xrsbas ressbas2
      cplusg xrex difexg xrsadd ressplusg iscmn mpbir2an ) AEFAGFCHZDHZIJUSURIJ
      KZDLMNZUAZOCVBOABUBUTCDVBURVBFURLFUSLFUTUSVBFURLVAPUSLVAPURUSUCUDUECDVBIA
      VBLUFVBAUGQKLVAUHVBLASBUIUJRVBTFZIAUKQKLTFVCULLVATUMRVBISATBUNUORUPUQ $.

    $( The nonnegative extended real numbers are a submonoid of the
       nonnegative-infinite extended reals.  (Contributed by Mario Carneiro,
       21-Aug-2015.) $)
    xrge0subm $p |- ( 0 [,] +oo ) e. ( SubMnd ` R ) $=
      ( vx vy cc0 cpnf co cfv wcel cxr cmnf wss cv cxad wral wa wceq cxrs ax-mp
      cvv cicc csubmnd csn cle wbr wne simpl ge0nemnf jca elxrge0 eldifsn ssriv
      cdif 3imtr4i 0e0iccpnf ge0xaddcl rgen2a cmnd w3a xrs1mnd cbs difss xrsbas
      wb ressbas2 xrs10 cplusg xrex difexg xrsadd ressplusg issubm mpbir3an ) E
      FUAGZAUBHIZVNJKUCZUMZLZEVNIZCMZDMZNGVNIZDVNOCVNOZCVNVQVTJIZEVTUDUEZPZWDVT
      KUFZPVTVNIVTVQIWFWDWGWDWEUGVTUHUIVTUJVTJKUKUNULUOWBCDVNVTWAUPUQAURIVOVRVS
      WCUSVDABUTCDVQNVNAEVQJLVQAVAHQJVPVBVQJARBVCVESABVFVQTIZNAVGHQJTIWHVHJVPTV
      ISVQNRATBVJVKSVLSVM $.
  $}

  ${
    $( The nonnegative extended real numbers are a monoid.  (Contributed by
       Mario Carneiro, 30-Aug-2015.) $)
    xrge0cmn $p |- ( RR*s |`s ( 0 [,] +oo ) ) e. CMnd $=
      ( cxrs cxr cmnf csn cdif co ccmn wcel cc0 cpnf cicc cmnd eqid cfv cvv wss
      cress wceq ax-mp mp2an xrs1cmn csubmnd xrge0subm difss ssexi cbs ressbas2
      xrex xrsbas submss ressabs eqcomi submmnd subcmn ) ABCDZEZQFZGHAIJKFZQFZL
      HZUSGHUQUQMZUAURUQUBNHZUTUQVAUCZURUSUQUQURQFZUSUPOHURUPPZVDUSRUPBUHBUOUDZ
      UEVBVEVCUPURUQUPBPUPUQUFNRVFUPBUQAVAUIUGSUJSUPURAOUKTULZUMSURUQUSVGUNT $.
  $}

  ${
    $d x y A $.  $d x y B $.
    xrsds.d $e |- D = ( dist ` RR*s ) $.
    $( The metric of the extended real number structure.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    xrsds $p |- D = ( x e. RR* , y e. RR* |->
            if ( x <_ y , ( y +e -e x ) , ( x +e -e y ) ) ) $=
      ( cxrs cds cfv cxr cv cle wbr cxne cxad cvv wcel wral xnegcl xaddcl xrex
      co cif cmpt2 wceq cxp wf wa id syl2anr sylan2 ifcld rgen2a eqid mpbi xpex
      fmpt2 fex2 mp3an cxmu cordt df-xrs odrngds ax-mp eqtr4i ) CEFGZABHHAIZBIZ
      JKZVFVELZMTZVEVFLZMTZUAZUBZDVMNOZVMVDUCHHUDZHVMUEZVONOHNOVNVLHOZBHPAHPVPV
      QABHVEHOZVFHOZUFVGVIVKHVSVSVHHOVIHOVRVSUGVEQVFVHRUHVSVRVJHOVKHOVFQVEVJRUI
      UJUKABHHVLHVMVMULUOUMHHSSUNSVOHVMNNUPUQHVMMURJUSGJNEABUTVAVBVC $.

    $( The metric of the extended real number structure.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    xrsdsval $p |- ( ( A e. RR* /\ B e. RR* ) ->
      ( A D B ) = if ( A <_ B , ( B +e -e A ) , ( A +e -e B ) ) ) $=
      ( vx vy cxr cv cle wbr cxne cxad co cif wceq wa breq12 id xnegeq ovex
      oveqan12rd oveqan12d ifbieq12d xrsds ifex ovmpt2a ) EFABGGEHZFHZIJZUHUGKZ
      LMZUGUHKZLMZNABIJZBAKZLMZABKZLMZNCUGAOZUHBOZPUIUNUKUMUPURUGAUHBIQUTUSUHBU
      JUOLUTRUGASUAUSUTUGAULUQLUSRUHBSUBUCEFCDUDUNUPURBUOLTAUQLTUEUF $.

    $( The metric of the extended real number structure coincides with the real
       number metric on the reals.  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    xrsdsreval $p |- ( ( A e. RR /\ B e. RR ) ->
      ( A D B ) = ( abs ` ( A - B ) ) ) $=
      ( cr wcel wa co cle wbr cxne cxad cmin cxr wceq rexr rexsub adantr eqtr4d
      3expa cif cabs cfv xrsdsval syl2an ancoms abssuble0 letric orcanai 3com12
      wn abssubge0 syldan ifeqda eqtrd ) AEFZBEFZGZABCHZABIJZBAKLHZABKLHZUAZABM
      HZUBUCZUPANFBNFUSVCOUQAPBPABCDUDUEURUTVAVBVEURUTGVABAMHZVEURVAVFOZUTUQUPV
      GBAQUFRUPUQUTVEVFOABUGTSURUTUKZGVBVDVEURVBVDOVHABQRURVHBAIJZVEVDOZURUTVIA
      BUHUIUPUQVIVJUQUPVIVJBAULUJTUMSUNUO $.

    $( Lemma for ~ xrsdsreclb .  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    xrsdsreclblem $p |- ( ( ( A e. RR* /\ B e. RR* /\ A =/= B ) /\ A <_ B ) ->
      ( ( B +e -e A ) e. RR -> ( A e. RR /\ B e. RR ) ) ) $=
      ( cxr wcel wne cle wbr cxne cxad co cr wi clt cmnf cpnf wceq syl eleq1d
      wa w3a necom xrleltne mnfxr a1i simpl1 simpl2 pnfnre neli mnfle xrlelttrd
      simpl3 xrltne syl3anc xaddpnf1 syl2anc mtbiri wn wb ngtmnft simpr xnegmnf
      xnegeq syl6eq syl5ibcom sylbird mt3d xrre2 syl32anc pnfxr xnegcld xnegpnf
      oveq2d pnfge xrltletrd xltnegi syl5eqbrr xaddpnf2 nltpnft oveq1 ex 3expia
      jca 3adant3 syl5bi 3exp com34 3imp1 ) AEFZBEFZABGZABHIZBAJZKLZMFZAMFZBMFZ
      UAZNZWJWKWMWLWTWJWKWMWLWTNWLBAGZWJWKWMUBZWTABUCXBXAABOIZWTABUDWJWKXCWTNWM
      WJWKXCWTWJWKXCUBZWPWSXDWPUAZWQWRXEPEFZWJWKPAOIZXCWQXFXEUEUFZWJWKXCWPUGZWJ
      WKXCWPUHZXEXGBQKLZMFZXEXLQMFZQMUIUJZXEXKQMXEWKBPGZXKQRXJXEXFWKPBOIXOXHXJX
      EPABXHXIXJXEWJPAHIXIAUKSWJWKXCWPUMZULPBUNUOBUPUQTURXEXGUSZAPRZXLXEWJXRXQU
      TXIAVASXEWPXRXLXDWPVBZXRWOXKMXRWNQBKXRWNPJQAPVDVCVEVNTVFVGVHXPPABVIVJXEWJ
      WKQEFZXCBQOIZWRXIXJXTXEVKUFZXPXEYAQWNKLZMFZXEYDXMXNXEYCQMXEWNEFZWNPGZYCQR
      XEAXIVLZXEXFYEPWNOIYFXHYGXEPQJZWNOVMXEWJXTAQOIYHWNOIXIYBXEABQXIXJYBXPXEWK
      BQHIXJBVOSVPAQVQUOVRPWNUNUOWNVSUQTURXEYAUSZBQRZYDXEWKYJYIUTXJBVTSXEWPYJYD
      XSYJWOYCMBQWNKWATVFVGVHABQVIVJWDWBWCWEVGWFWGWHWI $.

    $( The metric of the extended real number structure is only real when both
       arguments are real.  (Contributed by Mario Carneiro, 3-Sep-2015.) $)
    xrsdsreclb $p |- ( ( A e. RR* /\ B e. RR* /\ A =/= B ) ->
      ( ( A D B ) e. RR <-> ( A e. RR /\ B e. RR ) ) ) $=
      ( cxr wcel wne w3a co cr wa cle wbr cxne cxad wceq 3adant3 wi eleq1 cc wn
      cif xrsdsval eleq1d imbi1d xrsdsreclblem wo xrletri orcanai necom 3anbi3i
      bitri sylanb ancom syl6ib syldan ifbothda sylbid cmin cabs cfv xrsdsreval
      3ancoma recn subcl syl2an abscld eqeltrd impbid1 ) AEFZBEFZABGZHZABCIZJFZ
      AJFZBJFZKZVMVOABLMZBANOIZABNOIZUBZJFZVRVMVNWBJVJVKVNWBPVLABCDUCQUDVSVTJFZ
      VRRWAJFZVRRZWCVRRVMVTWAVTWBPWDWCVRVTWBJSUEWAWBPWEWCVRWAWBJSUEABCDUFVMVSUA
      BALMZWFVMVSWGVJVKVSWGUGVLABUHQUIVMWGKWEVQVPKZVRVMVKVJBAGZHZWGWEWHRVMVJVKW
      IHWJVLWIVJVKABUJUKVJVKWIVCULBACDUFUMVQVPUNUOUPUQURVRVNABUSIZUTVAJABCDVBVR
      WKVPATFBTFWKTFVQAVDBVDABVEVFVGVHVI $.
  $}

  ${
    $d x y A $.
    cnsubglem.1 $e |- ( x e. A -> x e. CC ) $.
    cnsubglem.2 $e |- ( ( x e. A /\ y e. A ) -> ( x + y ) e. A ) $.
    ${
      cnsubmlem.3 $e |- 0 e. A $.
      $( Lemma for ~ nn0subm and friends.  (Contributed by Mario Carneiro,
         18-Jun-2015.) $)
      cnsubmlem $p |- A e. ( SubMnd ` CCfld ) $=
        ( ccnfld csubmnd cfv wcel cc wss cc0 cv caddc co wral ssriv rgen2a crg
        cmnd w3a cnring ringmnd cnfldbas cnfld0 cnfldadd issubm mp2b mpbir3an
        wb ) CGHIJZCKLZMCJZANBNOPCJZBCQACQZACKDRFUOABCESGTJGUAJULUMUNUPUBUKUCGU
        DABKOCGMUEUFUGUHUIUJ $.
    $}

    cnsubglem.3 $e |- ( x e. A -> -u x e. A ) $.
    ${
      cnsubglem.4 $e |- B e. A $.
      $( Lemma for ~ resubdrg and friends.  (Contributed by Mario Carneiro,
         4-Dec-2014.) $)
      cnsubglem $p |- A e. ( SubGrp ` CCfld ) $=
        ( ccnfld csubg cfv wcel cc wss c0 wne cv caddc wral ax-mp co cminusg wa
        ssriv ralrimiva cneg wceq cnfldneg syl eqeltrd jca rgen cgrp w3a wb crg
        ne0ii cnring ringgrp cnfldbas cnfldadd eqid issubg2 mpbir3an ) CIJKLZCM
        NZCOPZAQZBQRUACLZBCSZVHIUBKZKZCLZUCZACSZACMEUDDCHUQVNACVHCLZVJVMVPVIBCF
        UEVPVLVHUFZCVPVHMLVLVQUGEVHUHUIGUJUKULIUMLZVEVFVGVOUNUOIUPLVRURIUSTABMR
        CIVKUTVAVKVBVCTVD $.
    $}

    cnsubrglem.4 $e |- 1 e. A $.
    cnsubrglem.5 $e |- ( ( x e. A /\ y e. A ) -> ( x x. y ) e. A ) $.
    $( Lemma for ~ resubdrg and friends.  (Contributed by Mario Carneiro,
       4-Dec-2014.) $)
    cnsubrglem $p |- A e. ( SubRing ` CCfld ) $=
      ( ccnfld csubrg cfv wcel csubg c1 cv cmul co wral cnsubglem rgen2a crg wb
      w3a cnring cc cnfldbas cnfld1 cnfldmul issubrg2 ax-mp mpbir3an ) CIJKLZCI
      MKLZNCLZAOBOPQCLZBCRACRZABCNDEFGSGUOABCHTIUALULUMUNUPUCUBUDABCUEIPNUFUGUH
      UIUJUK $.

    cnsubrglem.6 $e |- ( ( x e. A /\ x =/= 0 ) -> ( 1 / x ) e. A ) $.
    $( Lemma for ~ resubdrg and friends.  (Contributed by Mario Carneiro,
       4-Dec-2014.) $)
    cnsubdrglem $p |-
        ( A e. ( SubRing ` CCfld ) /\ ( CCfld |`s A ) e. DivRing ) $=
      ( ccnfld cfv wcel co cdr cc0 cdif cndrng eqid cnfld0 cc csubrg cnsubrglem
      cress cv cinvr csn wral wb issubdrg mp2an c1 cdiv wceq cnring ssriv ssdif
      crg wss ax-mp sseli cnfldbas drngui cnflddiv cnfld1 ringinvdv sylancr wne
      wa eldifsn sylbi eqeltrd mprgbir pm3.2i ) CJUAKLZJCUCMZNLZABCDEFGHUBZVPAU
      DZJUEKZKZCLZACOUFZPZJNLVNVPWAAWCUGUHQVQACJVOVSOVORSVSRZUIUJVRWCLZVTUKVRUL
      MZCWEJUQLVRTWBPZLVTWFUMUNWCWGVRCTURWCWGURACTDUOCTWBUPUSUTTULJWGUKVSVRVATJ
      OVASQVBVCVDWDVEVFWEVRCLVROVGVHWFCLVRCOVIIVJVKVLVM $.
  $}

  ${
    $d x y z R $.
    $( The rational numbers form a division subring of the complex numbers.
       (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    qsubdrg $p |-
        ( QQ e. ( SubRing ` CCfld ) /\ ( CCfld |`s QQ ) e. DivRing ) $=
      ( vx vy cq cv qcn qaddcl qnegcl cz c1 1z sselii qmulcl qreccl cnsubdrglem
      zssq ) ABCADZEPBDZFPGHCIOJKPQLPMN $.

    $( The integers form a subring of the complex numbers.  (Contributed by
       Mario Carneiro, 4-Dec-2014.) $)
    zsubrg $p |- ZZ e. ( SubRing ` CCfld ) $=
      ( vx vy cz cv zcn zaddcl znegcl 1z zmulcl cnsubrglem ) ABCADZEKBDZFKGHKLI
      J $.

    $( The gaussian integers form a subring of the complex numbers.
       (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    gzsubrg $p |- Z[i] e. ( SubRing ` CCfld ) $=
      ( vx vy cgz cv gzcn gzaddcl gznegcl c1 cz 1z zgz ax-mp gzmulcl cnsubrglem
      wcel ) ABCADZEPBDZFPGHIOHCOJHKLPQMN $.

    $( The nonnegative integers form a submonoid of the complex numbers.
       (Contributed by Mario Carneiro, 18-Jun-2015.) $)
    nn0subm $p |- NN0 e. ( SubMnd ` CCfld ) $=
      ( vx vy cn0 cv nn0cn nn0addcl 0nn0 cnsubmlem ) ABCADZEIBDFGH $.

    $( The nonnegative reals form a submonoid of the complex numbers.
       (Contributed by Mario Carneiro, 20-Jun-2015.) $)
    rege0subm $p |- ( 0 [,) +oo ) e. ( SubMnd ` CCfld ) $=
      ( vx vy cc0 cpnf cico co cv wcel rge0ssre sseli recnd 0e0icopnf cnsubmlem
      cr ge0addcl ) ABCDEFZAGZPHQPNQIJKQBGOLM $.

    $( The regular absolute value function on the complex numbers is in fact an
       absolute value under our definition.  (Contributed by Mario Carneiro,
       4-Dec-2014.) $)
    absabv $p |- abs e. ( AbsVal ` CCfld ) $=
      ( vx vy cabs ccnfld cfv wcel wtru caddc cmul cc0 wceq a1i wne wbr 3adant1
      cc cv wa co ad2ant2r cabv eqidd cbs cnfldbas cplusg cnfldadd cnfldmul c0g
      cmulr cnfld0 crg cnring cr wf absf clt absgt0 biimpa absmul abstri isabvd
      abs0 cle trud ) CDUAEZFGABVEPHDICJGVEUBPDUCEKGUDLHDUEEKGUFLIDUIEKGUGLJDUH
      EKGUJLDUKFGULLPUMCUNGUOLJCEJKGVBLAQZPFZVFJMZJVFCEZUPNZGVGVHVJVFUQUROVGVHR
      ZBQZPFZVLJMZRZVFVLISCEVIVLCEZISKZGVGVMVQVHVNVFVLUSTOVKVOVFVLHSCEVIVPHSVCN
      ZGVGVMVRVHVNVFVLUTTOVAVD $.

    $( The integers are a subset of any subring of the complex numbers.
       (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    zsssubrg $p |- ( R e. ( SubRing ` CCfld ) -> ZZ C_ R ) $=
      ( vx ccnfld csubrg cfv wcel cz cv wa c1 cmg co cmul wceq ax-1cn cnfldmulg
      cc simpr sylancl adantr zcn adantl mulid1d eqtrd csubg subrgsubg subrg1cl
      cnfld1 eqid subgmulgcl syl3anc eqeltrrd ex ssrdv ) ACDEFZBGAUOBHZGFZUPAFU
      OUQIZUPJCKEZLZUPAURUTUPJMLZUPURUQJQFUTVANUOUQRZOUPJPSURUPUQUPQFUOUPUAUBUC
      UDURACUEEFZUQJAFZUTAFUOVCUQACUFTVBUOVDUQACJUHUGTAUSCUPJUSUIUJUKULUMUN $.

    $( The rational numbers are a subset of any subfield of the complex
       numbers.  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    qsssubdrg $p |- ( ( R e. ( SubRing ` CCfld ) /\
      ( CCfld |`s R ) e. DivRing ) -> QQ C_ R ) $=
      ( vz vx vy ccnfld cfv wcel co wa cq cv cdiv wceq cn wrex cz ad2antrr eqid
      sseldd cc0 csubrg cdr elq cdvr cbs crg cui drngring ad2antlr wss zsssubrg
      cress subrgbas sseqtrd simprl c0g wne nnz ad2antll nnne0 cnfld0 subrg0 wb
      neeqtrd drngunit dvrcl syl3anc simpll cnflddiv subrgdv 3eltr4d syl5ibrcom
      mpbir2and eleq1 rexlimdvva syl5bi ssrdv ) AEUAFGZEAULHZUBGZIZBJABKZJGWBCK
      ZDKZLHZMZDNOCPOWAWBAGZCDWBUCWAWFWGCDPNWAWCPGZWDNGZIZIZWGWFWEAGWKWCWDVSUDF
      ZHZVSUEFZWEAWKVSUFGZWCWNGWDVSUGFZGZWMWNGVTWOVRWJVSUHUIWKPWNWCWKPAWNVRPAUJ
      VTWJAUKQZVRAWNMVTWJAEVSVSRZUMQZUNZWAWHWIUOZSWKWQWDWNGZWDVSUPFZUQZWKPWNWDX
      AWIWDPGWAWHWDURUSSWKWDTXDWIWDTUQWAWHWDUTUSVRTXDMVTWJAEVSTWSVAVBQVDVTWQXCX
      EIVCVRWJWNVSWPWDXDWNRZWPRZXDRVEUIVMZWNWLVSWPWCWDXFXGWLRZVFVGWKVRWCAGWQWEW
      MMVRVTWJVHWKPAWCWRXBSXHALEVSWPWLWCWDWSVIXGXIVJVGWTVKWBWEAVNVLVOVPVQ $.

    $( There are no subrings of the complex numbers strictly between ` RR ` and
       ` CC ` .  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    cnsubrg $p |- ( ( R e. ( SubRing ` CCfld ) /\ RR C_ R ) ->
      R e. { RR , CC } ) $=
      ( vx ccnfld cfv wcel cr wss wa cc wceq c0 simplr syl ci co caddc ad2antll
      cmul sseldd syl3anc vy csubrg cpr wo cdif ssdif0 simpr eqssd sylan2br wne
      orcd cv wex n0 simpll cnfldbas subrgss cre cim replim recl c1 cdiv ax-icn
      a1i eldifi adantl recnd wn cc0 eldifn wb reim0b necon3bbid mpbid divcan4d
      imcl mulcl sylancr divrecd eqtr3d cneg cmin negsubd oveq1d pncan2d 3eqtrd
      recld renegcld cnfldadd subrgacl eqeltrrd rereccld cnfldmul subrgmcl expr
      eqeltrd adantrr ssrdv olcd ex exlimdv imp sylan2b pm2.61dane elprg adantr
      mpbird ) ACUBDZEZFAGZHZAFIUCEZAFJZAIJZUDZXLXPAFUEZKXQKJXLAFGZXPAFUFXLXRHZ
      XNXOXSAFXLXRUGXJXKXRLUHUKUIXQKUJXLBULZXQEZBUMZXPBXQUNXLYBXPXLYAXPBXLYAXPX
      LYAHZXOXNYCAIYCXJAIGXJXKYAUOZAICUPUQMZYCUAIAXLYAUAULZIEZYFAEXLYAYGHZHZYFY
      FURDZNYFUSDZROZPOZAYGYFYMJXLYAYFUTQYIXJYJAEYLAEZYMAEXJXKYHUOZYIFAYJXJXKYH
      LZYGYJFEXLYAYFVAQSYIXJNAEZYKAEYNYOXLYAYQYGYCNNXTUSDZROZVBYRVCOZROZAYCYSYR
      VCONUUAYCNYRNIEZYCVDVEYCYRYCXTIEZYRFEYCAIXTYEYAXTAEZXLXTAFVFVGZSZXTVQMZVH
      ZYCXTFEZVIZYRVJUJZYAUUJXLXTAFVKVGYCUUCUUJUUKVLUUFUUCUUIYRVJXTVMVNMVOZVPYC
      YSYRYCUUBYRIEYSIEVDUUHNYRVRVSZUUHUULVTWAYCXJYSAEYTAEUUAAEYDYCXTXTURDZWBZP
      OZYSAYCUUPXTUUNWCOUUNYSPOZUUNWCOYSYCXTUUNUUFYCUUNYCXTUUFWHZVHZWDYCXTUUQUU
      NWCYCUUCXTUUQJUUFXTUTMWEYCUUNYSUUSUUMWFWGYCXJUUDUUOAEUUPAEYDUUEYCFAUUOXJX
      KYALZYCUUNUURWISAPCXTUUOWJWKTWLYCFAYTUUTYCYRUUGUULWMSACRYSYTWNWOTWQWRYIFA
      YKYPYGYKFEXLYAYFVQQSACRNYKWNWOTAPCYJYLWJWKTWQWPWSUHWTXAXBXCXDXEXJXMXPVLXK
      AFIXIXFXGXH $.
  $}

  ${
    $d x y A $.  $d x y M $.
    cnmgpabl.m $e |- M = ( ( mulGrp ` CCfld ) |`s ( CC \ { 0 } ) ) $.
    $( The unit group of the complex numbers is an abelian group.  (Contributed
       by Mario Carneiro, 21-Jun-2015.) $)
    cnmgpabl $p |- M e. Abel $=
      ( ccnfld ccrg wcel cabl cncrng cc0 csn cdif cnfldbas cnfld0 cndrng drngui
      cc unitabl ax-mp ) CDEAFEGCOHIJAOCHKLMNBPQ $.

    $( The group identity element of nonzero complex number multiplication is
       one.  (Contributed by Steve Rodriguez, 23-Feb-2007.)  (Revised by AV,
       26-Aug-2021.) $)
    cnmgpid $p |- ( 0g ` M ) = 1 $=
      ( ccnfld crg wcel cc cc0 csn cdif wss c1 c0g cfv wceq cnring difss ax-1cn
      wne ax-1ne0 eldifsn mpbir2an w3a cnfldbas cnfld1 ringidss eqcomd mp3an )
      CDEZFGHZIZFJZKUJEZALMZKNOFUIPULKFEKGRQSKFGTUAUHUKULUBKUMUJFCKABUCUDUEUFUG
      $.

    ${
      cnmsubglem.1 $e |- ( x e. A -> x e. CC ) $.
      cnmsubglem.2 $e |- ( x e. A -> x =/= 0 ) $.
      cnmsubglem.3 $e |- ( ( x e. A /\ y e. A ) -> ( x x. y ) e. A ) $.
      cnmsubglem.4 $e |- 1 e. A $.
      cnmsubglem.5 $e |- ( x e. A -> ( 1 / x ) e. A ) $.
      $( Lemma for ~ rpmsubg and friends.  (Contributed by Mario Carneiro,
         21-Jun-2015.) $)
      cnmsubglem $p |- A e. ( SubGrp ` M ) $=
        ( cfv wcel cc cc0 wss wne cmul ccnfld wceq cvv csubg cdif c0 cv co wral
        csn cinvr wa eldifsn sylanbrc ssriv c1 ne0ii ralrimiva cnfldinv syl2anc
        cdiv eqeltrd jca rgen cabl cgrp w3a cnmgpabl ablgrp cbs difss cmgp eqid
        wb cnfldbas mgpbas ressbas2 ax-mp cplusg cnex difexg cnfldmul ressplusg
        mgpplusg mp2b cnfld0 cndrng drngui invrfval issubg2 mpbir3an ) CDUAKLZC
        MNUGZUBZOZCUCPZAUDZBUDQUECLZBCUFZWNRUHKZKZCLZUIZACUFZACWKWNCLZWNMLZWNNP
        ZWNWKLFGWNMNUJUKULUMCIUNWTACXBWPWSXBWOBCHUOXBWRUMWNURUEZCXBXCXDWRXESFGW
        NUPUQJUSUTVADVBLDVCLWIWLWMXAVDVKDEVEDVFABWKQCDWQWKMOWKDVGKSMWJVHWKMDRVI
        KZEMRXFXFVJZVLVMVNVOMTLWKTLQDVPKSVQMWJTVRWKQXFDTERQXFXGVSWAVTWBRWKDWQMR
        NVLWCWDWEEWQVJWFWGWBWH $.
    $}

    $( The positive reals form a multiplicative subgroup of the complex
       numbers.  (Contributed by Mario Carneiro, 21-Jun-2015.) $)
    rpmsubg $p |- RR+ e. ( SubGrp ` M ) $=
      ( vx vy crp cv rpcn rpne0 rpmulcl 1rp rpreccl cnmsubglem ) CDEABCFZGMHMDF
      IJMKL $.
  $}

  ${
    gzrng.1 $e |- Z = ( CCfld |`s Z[i] ) $.
    $( Lemma for ~ gzrngunit .  (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    gzrngunitlem $p |- ( A e. ( Unit ` Z ) -> 1 <_ ( abs ` A ) ) $=
      ( cfv wcel c1 cle wbr c2 cexp co cc0 cgz ccnfld wceq wb gzsubrg ax-mp syl
      mp2b cui cabs sq1 cn ax-1ne0 csubrg subrgring eqid csubg subrgsubg cnfld0
      crg c0g subg0 cur cnfld1 subrg1 0unit nemtbir wn cn0 cbs unitcl gzabssqcl
      wo subrgbas elnn0 sylib ord gzcn abscld recnd sqeq0 abs00ad eleq1 biimpcd
      cc sylbid syld mt3i nnge1d syl5eqbr cr absge0d 0le1 le2sq mpanl12 syl2anc
      wa 1re mpbird ) ABUADZEZFAUBDZGHZFIJKZWNIJKZGHZWMWPFWQGUCWMWQWMWQUDEZLWLE
      ZWTFLUEMNUFDEZBULEWTFLOPQMNBCUGBWLFLWLUHZXAMNUIDELBUMDOQMNUJMNBLCUKUNTXAF
      BUODOQMNBFCUPUQRURTUSWMWSUTWQLOZWTWMWSXCWMWQVAEZWSXCVEWMAMEZXDMBWLAXAMBVB
      DOQMNBCVFRXBVCZAVDSWQVGVHVIWMXCWNLOZWTWMWNVQEXCXGPWMWNWMAWMXEAVQEXFAVJSZV
      KZVLWNVMSWMXGALOZWTWMAXHVNXJWMWTALWLVOVPVRVRVSVTWAWBWMWNWCEZLWNGHZWOWRPZX
      IWMAXHWDFWCELFGHXKXLWIXMWJWEFWNWFWGWHWK $.

    $( The units on ` ZZ [ _i ] ` are the gaussian integers with norm ` 1 ` .
       (Contributed by Mario Carneiro, 4-Dec-2014.) $)
    gzrngunit $p |- ( A e. ( Unit ` Z ) <->
      ( A e. Z[i] /\ ( abs ` A ) = 1 ) ) $=
      ( cfv wcel cgz cabs c1 wceq ccnfld gzsubrg ax-mp eqid cle wbr cdiv co cc0
      cc wne cui wa csubrg cbs subrgbas unitcl cinvr subrginv mpan gzcn 0red cr
      syl 1re a1i clt 0lt1 gzrngunitlem ltletrd gt0ne0d abs00ad necon3bid mpbid
      abscld cnfldinv syl2anc subrgring unitinvcl eqeltrrd 1cnd absdivd breqtrd
      eqtr3d 1div1e1 abs1 eqcomi oveq1i 3brtr4g wb lerec syl22anc mpbird letri3
      crg sylancl mpbir2and jca csn cdif adantr simpr ax-1ne0 fveq2 abs0 syl6eq
      eqnetrd necon3i eldifsn sylanbrc simpl ccj cmul cexp absvalsqd oveq1d sq1
      c2 cjcld divcan3d 3eqtr2d gzcjcl eqeltrd cnfldbas cnfld0 cndrng subrgunit
      w3a drngui syl3anbrc impbii ) ABUADZEZAFEZAGDZHIZUBZYBYCYEFBYAAFJUCDEZFBU
      DDIKFJBCUELYAMZUFZYBYEYDHNOZHYDNOZYBYJHHPQZHYDPQZNOZYBHHGDZYDPQZYLYMNYBHH
      APQZGDZYPNYBYQYAEHYRNOYBABUGDZDZYQYAYBAJUGDZDZYTYQYGYBUUBYTIKFJBYAUUAYSAC
      UUAMZYHYSMZUHUIYBASEZARTZUUBYQIZYBYCUUEYIAUJZUMZYBYDRTZUUFYBYDYBRHYDYBUKH
      ULEZYBUNUOZYBAUUIVDZRHUPOZYBUQUOZABCURZUSZUTYBYDRARYBAUUIVAVBVCZAVEZVFVMB
      WDEZYBYTYAEYGUUTKFJBCVGLBYAYSAYHUUDVHUIVIYQBCURUMYBHAYBVJUUIUURVKVLVNHYOY
      DPYOHVOVPVQVRYBYDULEZRYDUPOUUKUUNYJYNVSUUMUUQUULUUOYDHVTWAWBUUPYBUVAUUKYE
      YJYKUBVSUUMUNYDHWCWEWFWGYFASRWHWIZEZYCUUBFEZYBYFUUEUUFUVCYCUUEYEUUHWJZYFU
      UJUUFYFYDHRYCYEWKZHRTYFWLUOWPARYDRARIYDRGDRARGWMWNWOWQUMZASRWRWSYCYEWTYFU
      UBAXADZFYFUUBYQAUVHXBQZAPQUVHYFUUEUUFUUGUVEUVGUUSVFYFUVIHAPYFYDXGXCQZUVIH
      YFAUVEXDYFUVJHXGXCQHYFYDHXGXCUVFXEXFWOVMXEYFUVHAYFAUVEXHUVEUVGXIXJYCUVHFE
      YEAXKWJXLYGYBUVCYCUVDXQVSKFJBUVBUUAYAACSJRXMXNXOXRYHUUCXPLXSXT $.
  $}

  ${
    $d f k n x A $.  $d f n x B $.  $d f k n x ph $.
    gsumfsum.1 $e |- ( ph -> A e. Fin ) $.
    gsumfsum.2 $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    $( Relate a group sum on ` CCfld ` to a finite sum on the complex numbers.
       (Contributed by Mario Carneiro, 28-Dec-2014.) $)
    gsumfsum $p |- ( ph -> ( CCfld gsum ( k e. A |-> B ) ) = sum_ k e. A B ) $=
      ( vf vx c0 wceq ccnfld cgsu co csu cfv wcel wa cc0 cc syl vn chash cn cfz
      cmpt c1 cv wf1o wex wi mpteq1 mpt0 syl6eq oveq2d cnfld0 gsum0 sum0 eqtr4i
      sumeq1 eqtr4d a1i caddc ccom cseq csupp ccntz cnfldbas cnfldadd eqid cmnd
      cfn crg cnring ringmnd mp1i adantr fmptd ccmn ringcmn cntzcmnf simprl wf1
      wf simprr f1of1 crn cdm suppssdm fdm syl5sseq wfo f1ofo sseqtr4d gsumval3
      forn 3syl sumfc fveq2 ffvelrnda f1of fsum syl5eqr expr exlimdv expimpd wo
      fvco3 sylan fz1f1o mpjaod ) ABIJZKDBCUEZLMZBCDNZJZBUBOZUCPZUFXPUDMZBGUGZU
      HZGUIZQZXKXOUJAXKXMICDNZXNXKXMKILMZYCXKXLIKLXKXLDICUEIDBICUKDCULUMUNYDRYC
      KRUOUPCDUQURUMBICDUSUTVAAXQYAXOAXQQXTXOGAXQXTXOAXQXTQZQZXMXPVBXLXSVCZUFVD
      OZXNYFBSVBXLKXSXPVKYGRVEMZRKVFOZVGUOVHYJVIZKVLPZKVJPYFVMKVNVOABVKPZYEEVPA
      BSXLWCZYEADBCSXLFXLVIVQVPZYFBSXLKYJVGYKYLKVRPYFVMKVSVOYOVTAXQXTWAZYFXTXRB
      XSWBAXQXTWDZXRBXSWETYFXLRVEMZBXSWFZYFXLWGZYRBXLRWHYFYNYTBJYOBSXLWITWJYFXT
      XRBXSWKYSBJYQXRBXSWLXRBXSWOWPWMYIVIWNYFXNBHUGZXLOZHNYHBCHDWQYFBUUBUAUGZXS
      OZXLOZHUAXSYGXPUUAUUDXLWRYPYQYFBSUUAXLYOWSYFXRBXSWCZUUCXRPUUCYGOUUEJYFXTU
      UFYQXRBXSWTTXRBUUCXLXSXGXHXAXBUTXCXDXEAYMXKYBXFEBGXITXJ $.
  $}

  ${
    $d k A $.  $d k x ph $.
    regsumfsum.1 $e |- ( ph -> A e. Fin ) $.
    regsumfsum.2 $e |- ( ( ph /\ k e. A ) -> B e. RR ) $.
    $( Relate a group sum on ` ( CCfld |``s RR ) ` to a finite sum on the
       reals.  Cf. ~ gsumfsum .  (Contributed by Thierry Arnoux,
       7-Sep-2018.) $)
    regsumfsum $p |- ( ph -> ( ( CCfld |`s RR ) gsum ( k e. A |-> B ) )
                         = sum_ k e. A B ) $=
      ( vx ccnfld cgsu co cr cc caddc cvv cc0 eqid wcel a1i cv wa cress csu cfn
      cmpt cnfldbas cnfldadd cnfldex ax-resscn fmptd 0red simpr addid2d addid1d
      wss wceq jca gsumress recnd gsumfsum eqtr3d ) AHDBCUDZIJHKUAJZVAIJBCDUBAG
      BLMKVAHVBNUCOUEUFVBPHNQAUGREKLUNAUHRADBCKVAFVAPUIAUJAGSZLQZTZOVCMJVCUOVCO
      MJVCUOVEVCAVDUKZULVEVCVFUMUPUQABCDEADSBQTCFURUSUT $.
  $}

  ${
    $d x y z A $.  $d y z M $.  $d y z N $.
    expmhm.1 $e |- N = ( CCfld |`s NN0 ) $.
    expmhm.2 $e |- M = ( mulGrp ` CCfld ) $.
    $( Exponentiation is a monoid homomorphism from addition to multiplication.
       (Contributed by Mario Carneiro, 18-Jun-2015.) $)
    expmhm $p |- ( A e. CC -> ( x e. NN0 |-> ( A ^ x ) ) e. ( N MndHom M ) ) $=
      ( vy vz cc wcel cn0 cexp co caddc cfv cmul wceq cc0 ax-mp ccnfld cv wf c1
      cmpt wral cmhm expcl eqid fmptd wa expadd 3expb nn0addcl oveq2 ovex fvmpt
      adantl syl oveqan12d 3eqtr4d ralrimivva 0nn0 exp0 syl5eq cmnd w3a csubmnd
      nn0subm submmnd crg cnring ringmgp pm3.2i cnfldbas mgpbas cplusg cnfldadd
      cbs submbas ressplusg cnfldmul mgpplusg c0g cnfld0 subm0 cnfld1 ringidval
      ismhm mpbiran syl3anbrc ) BIJZKIAKBAUAZLMZUDZUBZGUAZHUAZNMZWNOZWPWNOZWQWN
      OZPMZQZHKUEGKUEZRWNOZUCQZWNDCUFMJZWKAKWMIWNBWLUGWNUHZUIWKXCGHKKWKWPKJZWQK
      JZUJZUJZBWRLMZBWPLMZBWQLMZPMZWSXBWKXIXJXMXPQBWPWQUKULXLWRKJZWSXMQXKXQWKWP
      WQUMUQAWRWMXMKWNWLWRBLUNXHBWRLUOUPURXKXBXPQWKXIXJWTXNXAXOPAWPWMXNKWNWLWPB
      LUNXHBWPLUOUPAWQWMXOKWNWLWQBLUNXHBWQLUOUPUSUQUTVAWKXEBRLMZUCRKJXEXRQVBARW
      MXRKWNWLRBLUNXHBRLUOUPSBVCVDXGDVEJZCVEJZUJWOXDXFVFXSXTKTVGOZJZXSVHKDTEVIS
      TVJJXTVKTCFVLSVMGHKINPDCWNUCRYBKDVROQVHKDTEVSSITCFVNVOYBNDVPOQVHKNTDYAEVQ
      VTSTPCFWAWBYBRDWCOQVHKDTREWDWESTUCCFWFWGWHWIWJ $.
  $}

  ${
    $d x y z $.
    $( The nonnegative integers form a semiring (commutative by ~ subcmn ).
       (Contributed by Thierry Arnoux, 1-May-2018.) $)
    nn0srg $p |- ( CCfld |`s NN0 ) e. SRing $=
      ( vx vy vz ccnfld cn0 co wcel ccmn cfv cmnd caddc cmul wceq wa wral ax-mp
      cc0 eqid cvv cc cress csrg cmgp cv csubmnd cnring ringcmn nn0subm submcmn
      crg mp2an nn0ex mgpress wss nn0sscn 1nn0 nn0mulcl rgen2a ringmgp cnfldbas
      c1 w3a mgpbas cnfld1 ringidval cnfldmul mgpplusg issubm mpbir3an eqeltrri
      wb submmnd simpl nn0cnd simprl simprr adddid adddird jca ralrimivva nn0cn
      mul02d mul01d jca32 cbs ressbas2 cplusg cnfldadd ressplusg cmulr ressmulr
      rgen c0g ringmnd 0nn0 cnfld0 ress0g mp3an issrg ) DEUAFZUBGWTHGZWTUCIZJGA
      UDZBUDZCUDZKFLFXCXDLFZXCXELFZKFMZXCXDKFXELFXGXDXELFKFMZNZCEOBEOZQXCLFQMZX
      CQLFQMZNNZAEODHGZEDUEIGXADUJGZXOUFDUGPZUHEDWTWTRZUIUKDUCIZEUAFZXBJXOESGZX
      TXBMXQULEDWTXSHSXRXSRZUMUKEXSUEIGZXTJGYCETUNZVAEGZXFEGZBEOAEOZUOUPYFABEXC
      XDUQURXSJGZYCYDYEYGVBVKXPYHUFDXSYBUSPABTLEXSVATDXSYBUTVCDVAXSYBVDVEDLXSYB
      VFVGVHPVIEXTXSXTRVLPVJXNAEXCEGZXKXLXMYIXJBCEEYIXDEGZXEEGZNZNZXHXIYMXCXDXE
      YMXCYIYLVMVNZYMXDYIYJYKVOVNZYMXEYIYJYKVPVNZVQYMXCXDXEYNYOYPVRVSVTYIXCXCWA
      ZWBYIXCYQWCWDWLABCEKWTLXBQYDEWTWEIMUOETWTDXRUTWFPXBRYAKWTWGIMULEKDWTSXRWH
      WIPYALWTWJIMULEDWTLSXRVFWKPDJGZQEGYDQWTWMIMXPYRUFDWNPWOUOETDWTQXRUTWPWQWR
      WSVI $.
  $}

  ${
    $d x y z $.
    $( The nonnegative real numbers form a semiring (commutative by ~ subcmn ).
       (Contributed by Thierry Arnoux, 6-Sep-2018.) $)
    rge0srg $p |- ( CCfld |`s ( 0 [,) +oo ) ) e. SRing $=
      ( vx vy vz ccnfld cc0 cpnf co wcel cfv cmnd cv caddc cmul wceq wral ax-mp
      wa cc c1 cvv cico cress csrg ccmn cmgp csubmnd crg ringcmn rege0subm eqid
      cnring submcmn mp2an wss cr rge0ssre ax-resscn sstri cle wbr clt 1re 0le1
      ltpnf cxr w3a wb 0re pnfxr elico2 mpbir3an ge0mulcl rgen2a ringmgp mgpbas
      cnfldbas cnfld1 cnfldmul mgpplusg issubm mp2b submmnd simpll sseldi simpr
      ringidval simplr adddid adddird jca ralrimiva sseli mul02d jca32 rgen cbs
      mul01d ressbas2 cnfldex ovex cplusg cnfldadd ressplusg cmulr ressmulr c0g
      mgpress ringmnd 0e0icopnf cnfld0 ress0g mp3an issrg ) DEFUAGZUBGZUCHXOUDH
      ZDUEIZXNUBGZJHZAKZBKZCKZLGMGXTYAMGZXTYBMGZLGNZXTYALGYBMGYDYAYBMGLGNZQZCXN
      OZBXNOZEXTMGENZXTEMGENZQQZAXNODUDHZXNDUFIHXPDUGHZYMUKDUHPUIXNDXOXOUJZULUM
      XNXQUFIHZXSYPXNRUNZSXNHZYCXNHZBXNOAXNOZXNUORUPUQURZYRSUOHZESUSUTZSFVAUTZV
      BVCUUBUUDVBSVDPEUOHFVEHYRUUBUUCUUDVFVGVHVIEFSVJUMVKYSABXNXTYAVLVMYNXQJHYP
      YQYRYTVFVGUKDXQXQUJZVNABRMXNXQSRDXQUUEVPVODSXQUUEVQWFDMXQUUEVRVSVTWAVKXNX
      RXQXRUJWBPYLAXNXTXNHZYIYJYKUUFYHBXNUUFYAXNHZQZYGCXNUUHYBXNHZQZYEYFUUJXTYA
      YBUUJXNRXTUUAUUFUUGUUIWCWDZUUJXNRYAUUAUUFUUGUUIWGWDZUUJXNRYBUUAUUHUUIWEWD
      ZWHUUJXTYAYBUUKUULUUMWIWJWKWKUUFXTXNRXTUUAWLZWMUUFXTUUNWQWNWOABCXNLXOMXRE
      YQXNXOWPINUUAXNRXODYOVPWRPDTHXNTHZXRXOUEINWSEFUAWTZXNDXOXQTTYOUUEXGUMUUOL
      XOXAINUUPXNLDXOTYOXBXCPUUOMXOXDINUUPXNDXOMTYOVRXEPDJHZEXNHYQEXOXFINYNUUQU
      KDXHPXIUUAXNRDXOEYOVPXJXKXLXMVK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ring of integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
According to Wikipedia ("Integer", 25-May-2019,
~ https://en.wikipedia.org/wiki/Integer ) "The integers form a unital ring
which is the most basic one, in the following sense: for any unital ring, there
is a unique ring homomorphism from the integers into this ring.  This universal
property, namely to be an initial object in the category of [[unital] rings,
characterizes the ring ` Z ` ." In set.mm, there was no explicit definition for
the ring of integers until June 2019, but it was denoted by
` ( CCfld |``s ZZ ) ` , the field of complex numbers restricted to the
integers.  In ~ zringring it is shown that this restriction is a ring (it is
actually a principal ideal ring as shown in ~ zringlpir ), and ~ zringbas shows
that its base set is the integers.  As of June 2019, there is an abbreviation
of this expression as definition ~ df-zring of the ring of integers.

Remark: Instead of using the symbol "ZZrng" analogous to ` CCfld ` used for the
field of complex numbers, we have chosen the version with an "i" to indicate
that the ring of integers is a unital ring, see also Wikipedia ("Rng
(algebra)", 9-Jun-2019, ~ https://en.wikipedia.org/wiki/Rng_(algebra) ).
$)

  $c ZZring $.

  $( Extend class notation with the (unital) ring of integers. $)
  zring $a class ZZring $.

  $( The (unital) ring of integers.  (Contributed by Alexander van der Vekens,
     9-Jun-2019.) $)
  df-zring $a |- ZZring = ( CCfld |`s ZZ ) $.

  $( The ring of integers is a commutative ring.  (Contributed by AV,
     13-Jun-2019.) $)
  zringcrng $p |- ZZring e. CRing $=
    ( ccnfld ccrg wcel csubrg cfv zring cncrng zsubrg df-zring subrgcrng mp2an
    cz ) ABCLADECFBCGHLAFIJK $.

  $( The ring of integers is a ring.  (Contributed by AV, 20-May-2019.)
     (Revised by AV, 9-Jun-2019.)  (Proof shortened by AV, 13-Jun-2019.) $)
  zringring $p |- ZZring e. Ring $=
    ( zring ccrg wcel crg zringcrng crngring ax-mp ) ABCADCEAFG $.

  $( The ring of integers is an (additive) abelian group.  (Contributed by AV,
     13-Jun-2019.) $)
  zringabl $p |- ZZring e. Abel $=
    ( zring crg wcel cabl zringring ringabl ax-mp ) ABCADCEAFG $.

  $( The ring of integers is an (additive) group.  (Contributed by AV,
     10-Jun-2019.) $)
  zringgrp $p |- ZZring e. Grp $=
    ( zring crg wcel cgrp zringring ringgrp ax-mp ) ABCADCEAFG $.

  $( The integers are the base of the ring of integers.  (Contributed by
     Thierry Arnoux, 31-Oct-2017.)  (Revised by AV, 9-Jun-2019.) $)
  zringbas $p |- ZZ = ( Base ` ZZring ) $=
    ( cz wss zring cbs cfv wceq zsscn ccnfld df-zring cnfldbas ressbas2 ax-mp
    cc ) AMBACDEFGAMCHIJKL $.

  $( The addition operation of the ring of integers.  (Contributed by Thierry
     Arnoux, 8-Nov-2017.)  (Revised by AV, 9-Jun-2019.) $)
  zringplusg $p |- + = ( +g ` ZZring ) $=
    ( cz cvv wcel caddc zring cplusg cfv zex ccnfld df-zring cnfldadd ressplusg
    wceq ax-mp ) ABCDEFGMHADIEBJKLN $.

  ${
    $d x y $.
    $( The multiplication (group power) operation of the group of integers.
       (Contributed by Thierry Arnoux, 31-Oct-2017.)  (Revised by AV,
       9-Jun-2019.) $)
    zringmulg $p |- ( ( A e. ZZ /\ B e. ZZ )
                      -> ( A ( .g ` ZZring ) B ) = ( A x. B ) ) $=
      ( vx vy cz wcel wa ccnfld cmg cfv co zring cmul csubg wceq c1 cv zcn eqid
      zaddcl znegcl 1z cnsubglem df-zring subgmulg mp3an1 zcnd cnfldmulg syldan
      cc simpr eqtr3d ) AEFZBEFZGZABHIJZKZABLIJZKZABMKZEHNJFUMUNUQUSOCDEPCQZRVA
      DQTVAUAUBUCEURUPHLABUPSUDURSUEUFUMUNBUJFUQUTOUOBUMUNUKUGABUHUIUL $.
  $}

  $( The multiplication operation of the ring of integers.  (Contributed by
     Thierry Arnoux, 1-Nov-2017.)  (Revised by AV, 9-Jun-2019.) $)
  zringmulr $p |- x. = ( .r ` ZZring ) $=
    ( cz cvv wcel cmul zring cmulr wceq ccnfld df-zring cnfldmul ressmulr ax-mp
    cfv zex ) ABCDEFMGNAHEDBIJKL $.

  $( The neutral element of the ring of integers.  (Contributed by Thierry
     Arnoux, 1-Nov-2017.)  (Revised by AV, 9-Jun-2019.) $)
  zring0 $p |- 0 = ( 0g ` ZZring ) $=
    ( ccnfld cmnd wcel cc0 cz cc wss zring c0g cfv wceq ccrg crg cncrng ringmnd
    crngring mp2b 0z zsscn df-zring cnfldbas cnfld0 ress0g mp3an ) ABCZDECEFGDH
    IJKALCAMCUENAPAOQRSEFAHDTUAUBUCUD $.

  $( The multiplicative neutral element of the ring of integers.  (Contributed
     by Thierry Arnoux, 1-Nov-2017.)  (Revised by AV, 9-Jun-2019.) $)
  zring1 $p |- 1 = ( 1r ` ZZring ) $=
    ( cz ccnfld csubrg cfv wcel c1 zring cur wceq zsubrg df-zring cnfld1 subrg1
    ax-mp ) ABCDEFGHDIJABGFKLMN $.

  $( The ring of integers is a nonzero ring.  (Contributed by AV,
     18-Apr-2020.) $)
  zringnzr $p |- ZZring e. NzRing $=
    ( zring cnzr wcel crg c1 cc0 zringring ax-1ne0 zring1 zring0 isnzr mpbir2an
    wne ) ABCADCEFMGHAEFIJKL $.

  ${
    $d x y z $.
    $( Ring divisibility in the ring of integers corresponds to ordinary
       divisibility in ` ZZ ` .  (Contributed by Stefan O'Rear, 3-Jan-2015.)
       (Revised by AV, 9-Jun-2019.) $)
    dvdsrzring $p |- || = ( ||r ` ZZring ) $=
      ( vx vy vz cv cz wcel wa cmul wceq wrex copab cdvds zring cdsr cfv anim1i
      co simpl zmulcl ancoms eleq1 syl5ibcom rexlimdva imp simpr impbii opabbii
      jca31 df-dvds zringbas eqid zringmulr dvdsrval 3eqtr4i ) ADZEFZBDZEFZGZCD
      ZUOHQZUQIZCEJZGZABKUPVCGZABKLMNOZVDVEABVDVEUSUPVCUPURRPVEUPURVCUPVCRUPVCU
      RUPVBURCEUPUTEFZGVAEFZVBURVGUPVHUTUOSTVAUQEUAUBUCUDUPVCUEUHUFUGABCUIABCEV
      FMHUJVFUKULUMUN $.
  $}

  ${
    $d I a $.  $d ph a $.
    zringlpirlem.i $e |- ( ph -> I e. ( LIdeal ` ZZring ) ) $.
    zringlpirlem.n0 $e |- ( ph -> I =/= { 0 } ) $.
    $( Lemma for ~ zringlpir .  A nonzero ideal of integers contains some
       positive integers.  (Contributed by Stefan O'Rear, 3-Jan-2015.)
       (Revised by AV, 9-Jun-2019.) $)
    zringlpirlem1 $p |- ( ph -> ( I i^i NN ) =/= (/) ) $=
      ( va cc0 wne cn wcel wa wceq eleq1 syl5ibrcom zring ccnfld cz eqid adantr
      cfv syl cv cin c0 cabs simplr cminusg csubg csubrg zsubrg subrgsubg ax-mp
      cneg wss zringbas lidlss sselda df-zring subginv sylancr cc zcnd cnfldneg
      clidl eqtr3d crg zringring a1i simpr lidlnegcl syl3anc eqeltrrd wo absord
      zred mpjaod nnabscl sylan elind ne0i csn wrex zring0 lidlnz r19.29a ) AEU
      AZFGZBHUBZUCGZEBAWEBIZJZWFJZWEUDSZWGIWHWKBHWLWKWLWEKZWLBIZWLWEULZKZWKWNWM
      WIAWIWFUEWLWEBLMWKWNWPWOBIZWJWQWFWJWENUFSZSZWOBWJWEOUFSZSZWSWOWJPOUGSIZWE
      PIZXAWSKPOUHSIXBUIPOUJUKABPWEABNVCSZIZBPUMCPBXDNUNXDQZUOTUPZPONWTWRWEUQWT
      QWRQZURUSWJWEUTIXAWOKWJWEXGVAWEVBTVDWJNVEIZXEWIWSBIXIWJVFVGAXEWICRAWIVHNX
      DBWRWEXFXHVIVJVKRWLWOBLMWJWMWPVLWFWJWEWJWEXGVNVMRVOWJXCWFWLHIXGWEVPVQVRWG
      WLVSTAXIXEBFVTGWFEBWAXIAVFVGCDENXDBFXFWBWCVJWD $.

    zringlpirlem.g $e |- G = inf ( ( I i^i NN ) , RR , < ) $.
    $( Lemma for ~ zringlpir .  A nonzero ideal of integers contains the least
       positive element.  (Contributed by Stefan O'Rear, 3-Jan-2015.)  (Revised
       by AV, 9-Jun-2019.)  (Revised by AV, 27-Sep-2020.) $)
    zringlpirlem2 $p |- ( ph -> G e. I ) $=
      ( cn cin cr clt cinf inss1 c1 cuz cfv wss c0 wne wcel inss2 zringlpirlem1
      nnuz sseqtri infssuzcl sylancr sseldi syl5eqel ) ABCGHZIJKZCFAUHCUICGLAUH
      MNOZPUHQRUIUHSUHGUJCGTUBUCACDEUAUHMUDUEUFUG $.

    zringlpirlem.x $e |- ( ph -> X e. I ) $.
    $( Lemma for ~ zringlpir .  All elements of a nonzero ideal of integers are
       divided by the least one.  (Contributed by Stefan O'Rear, 3-Jan-2015.)
       (Revised by AV, 9-Jun-2019.)  (Proof shortened by AV, 27-Sep-2020.) $)
    zringlpirlem3 $p |- ( ph -> G || X ) $=
      ( wbr co cn wcel cle cz zring cfv c1 syl2anc cmul caddc cdvds cmo wceq wn
      cc0 wo clt cr crp clidl wss zringbas eqid lidlss syl sseldd zred cin cinf
      inss2 cuz c0 nnuz sseqtri zringlpirlem1 infssuzcl sylancr syl5eqel sseldi
      wne nnrpd modlt zmodcld nn0red nnred ltnled mpbid cdiv cfl cneg cmin zcnd
      nncnd nndivred flcld mulcld negsubd znegcld mulcomd mulneg2d eqtrd oveq2d
      wa modval 3eqtr4rd crg zringring zringlpirlem2 zringmulr lidlmcl syl22anc
      a1i zringplusg lidlacl eqeltrd simpr elind infssuzle syl5eqbr mtand elnn0
      adantr cn0 sylib orel1 sylc wb dvdsval3 mpbird ) ABDUAIZDBUBJZUEUCZAYAKLZ
      UDYCYBUFZYBAYCBYAMIZAYABUGIZYEUDADUHLZBUILZYFADACNDACOUJPZLZCNUKENCYIOULY
      IUMZUNUOHUPZUQZABACKURZKBCKUTZABYNUHUGUSZYNGAYNQVAPZUKZYNVBVJYPYNLYNKYQYO
      VCVDZACEFVEYNQVFVGVHVIZVKZDBVLRAYABAYAADBYLYTVMZVNABYTVOVPVQAYCWMZBYPYAMG
      UUCYRYAYNLYPYAMIYSUUCCKYAAYACLYCAYADDBVRJZVSPZVTZBSJZTJZCADBUUESJZVTZTJDU
      UIWAJZUUHYAADUUIADYLWBABUUEABYTWCZAUUEAUUDADBYMYTWDWEZWBZWFWGAUUGUUJDTAUU
      GBUUFSJUUJAUUFBAUUFAUUEUUMWHZWBUULWIABUUEUULUUNWJWKWLAYGYHYAUUKUCYMUUADBW
      NRWOAOWPLZYJDCLUUGCLZUUHCLUUPAWQXBZEHAUUPYJUUFNLBCLUUQUUREUUOABCEFGWRNOSY
      ICUUFBYKULWSWTXATOYICDUUGYKXCXDXAXEXLAYCXFXGYAYNQXHVGXIXJAYAXMLYDUUBYAXKX
      NYCYBXOXPABKLDNLXTYBXQYTYLBDXRRXS $.
  $}

  $( The additive inverse of an element of the ring of integers.  (Contributed
     by AV, 24-May-2019.)  (Revised by AV, 10-Jun-2019.) $)
  zringinvg $p |- ( A e. ZZ -> -u A = ( ( invg ` ZZring ) ` A ) ) $=
    ( cz wcel zring cminusg cfv cneg wceq caddc co cc0 zcn negidd cgrp zringgrp
    wb a1i id znegcl zringbas zringplusg zring0 grpinvid1 syl3anc mpbird eqcomd
    eqid ) ABCZADEFZFZAGZUHUJUKHZAUKIJKHZUHAALMUHDNCZUHUKBCULUMPUNUHOQUHRASBIDU
    IAUKKTUAUBUIUGUCUDUEUF $.

  $( The units of ` ZZ ` are the integers with norm ` 1 ` , i.e. ` 1 ` and
     ` -u 1 ` .  (Contributed by Mario Carneiro, 5-Dec-2014.)  (Revised by AV,
     10-Jun-2019.) $)
  zringunit $p |- ( A e. ( Unit ` ZZring )
                    <-> ( A e. ZZ /\ ( abs ` A ) = 1 ) ) $=
    ( zring cfv wcel cz cabs c1 wceq eqid ccnfld cgz cress co ax-mp syl cc0 wne
    cc c2 cexp vx cui wa zringbas unitcl csubrg wss zsubrg cv zgz ssriv gzsubrg
    wb subsubrg mpbir2an df-zring ressabs mp2an eqtr4i subrguss sseli gzrngunit
    simprbi jca csn cdif cinvr zcn adantr simpr ax-1ne0 a1i eqnetrd abs0 syl6eq
    fveq2 necon3i eldifsn sylanbrc simpl cdiv cnfldinv syl2anc cmul zre absresq
    cr oveq1d sqvald 3eqtr3rd 1cnd divmuld mpbird eqtrd eqeltrd cnfldbas cnfld0
    sq1 w3a cndrng drngui subrgunit syl3anbrc impbii ) ABUBCZDZAEDZAFCZGHZUCZXF
    XGXIEBXEAUDXEIZUEXFAJKLMZUBCZDZXIXEXMAEXLUFCDZXEXMUGXOEJUFCZDZEKUGZUHUAEKUA
    UIUJUKZKXPDZXOXQXRUCUMULKEJXLXLIZUNNUOEXLBXMXEBJELMZXLELMZUPXTXRYCYBHULXSKE
    JXPUQURUSXMIXKUTNVAXNAKDXIAXLYAVBVCOVDXJARPVEVFZDZXGAJVGCZCZEDZXFXJARDZAPQZ
    YEXGYIXIAVHVIZXJXHPQYJXJXHGPXGXIVJZGPQXJVKVLVMAPXHPAPHXHPFCPAPFVPVNVOVQOZAR
    PVRVSXGXIVTZXJYGAEXJYGGAWAMZAXJYIYJYGYOHYKYMAWBWCXJYOAHAAWDMZGHXJXHSTMZASTM
    ZGYPXJAWGDZYQYRHXGYSXIAWEVIAWFOXJYQGSTMGXJXHGSTYLWHWRVOXJAYKWIWJXJGAAXJWKYK
    YKYMWLWMWNYNWOXQXFYEXGYHWSUMUHEJBYDYFXEAUPRJPWPWQWTXAXKYFIXBNXCXD $.

  ${
    $d x y z $.
    $( The integers are a principal ideal ring.  (Contributed by Stefan O'Rear,
       3-Jan-2015.)  (Revised by AV, 9-Jun-2019.)  (Proof shortened by AV,
       27-Sep-2020.) $)
    zringlpir $p |- ZZring e. LPIR $=
      ( vx vy vz zring clpir crg clidl cfv clpidl wss zringring cv cc0 wa cdvds
      wcel wbr wral simpr eqid csn eleq1 wne wrex cn cin clt cinf zringlpirlem2
      cr simpl simpll simplr zringlpirlem3 ralrimiva wceq breq1 ralbidv syl2anc
      rspcev wb dvdsrzring lpigen mpan adantr mpbird zring0 lpi0 pm2.61ne ssriv
      mp1i islpir2 mpbir2an ) DEPDFPZDGHZDIHZJKAVOVPALZVOPZVQVPPZMUAZVPPZVQVTVQ
      VTVPUBVRVQVTUCZNZVSBLZCLZOQZCVQRZBVQUDZWCVQUEUFUJUGUHZVQPWIWEOQZCVQRZWHWC
      WIVQVRWBUKVRWBSWITZUIWCWJCVQWCWEVQPZNWIVQWEVRWBWMULVRWBWMUMWLWCWMSUNUOWGW
      KBWIVQWDWIUPWFWJCVQWDWIWEOUQURUTUSVRVSWHVAZWBVNVRWNKBCOVPDVOVQVOTZVPTZVBV
      CVDVEVFVNWAVRKVPDMWPVGVHVKVIVJVPDVOWPWOVLVM $.

    $( The integers are not a division ring, and therefore not a field.
       (Contributed by AV, 22-Oct-2021.) $)
    zringndrg $p |- ZZring e/ DivRing $=
      ( zring cdr wcel c2 cui cfv cz cabs c1 wceq wa 1ne2 nesymi cr cc0 cle wbr
      2re 0le2 mtbir absid mp2an eqeq1i intnan zringunit crg cdif zringbas eqid
      csn zring0 isdrng wne 2z 2ne0 eldifsn mpbir2an id syl5eleqr simplbiim mto
      nelir ) ABABCZDAEFZCZVEDGCZDHFZIJZKVHVFVHDIJIDLMVGDIDNCODPQVGDJRSDUAUBUCT
      UDDUETVCAUFCVDGOUJUGZJZVEGAVDOUHVDUIUKULVJDVIVDDVICVFDOUMUNUODGOUPUQVJURU
      SUTVAVB $.

    $( The integers are a cyclic group.  (Contributed by Mario Carneiro,
       21-Apr-2016.)  (Revised by AV, 9-Jun-2019.) $)
    zringcyg $p |- ZZring e. CycGrp $=
      ( vx vz zring ccyg wcel wtru cz cmg cfv zringbas eqid ccnfld csubg csubrg
      c1 cgrp df-zring cv co wceq zsubrg subrgsubg ax-mp subggrp mp1i 1zzd wrex
      cmul cc ax-1cn cnfldmulg mpan2 1z subgmulg mp3an13 mulid1d 3eqtr3rd oveq1
      zcn weq eqeq2d rspcev mpdan adantl iscygd trud ) CDEFAGCHIZBCOJVGKZGLMIEZ
      CPEFGLNIEVIUAGLUBUCZGLCQUDUEFUFARZGEZVKBRZOVGSZTZBGUGZFVLVKVKOVGSZTZVPVLV
      KOLHIZSZVKOUHSZVQVKVLOUIEVTWATUJVKOUKULVIVLOGEVTVQTVJUMGVGVSLCVKOVSKQVHUN
      UOVLVKVKUSUPUQVOVRBVKGBAUTVNVQVKVMVKOVGURVAVBVCVDVEVF $.
  $}

  $( The multiplication group of the ring of integers is the restriction of the
     multiplication group of the complex numbers to the integers.  (Contributed
     by AV, 15-Jun-2019.) $)
  zringmpg $p |- ( ( mulGrp ` CCfld ) |`s ZZ ) = ( mulGrp ` ZZring ) $=
    ( ccnfld cdr wcel cz cvv cmgp cfv cress zring wceq cndrng zex df-zring eqid
    co mgpress mp2an ) ABCDECAFGZDHOIFGJKLDAIRBEMRNPQ $.

  ${
    $d A x y $.  $d I y $.
    prmirred.i $e |- I = ( Irred ` ZZring ) $.
    $( A positive integer is irreducible over ` ZZ ` iff it is a prime number.
       (Contributed by Mario Carneiro, 5-Dec-2014.)  (Revised by AV,
       10-Jun-2019.) $)
    prmirredlem $p |- ( A e. NN -> ( A e. I <-> A e. Prime ) ) $=
      ( vy cn wcel cprime wa cfv cdvds wbr c1 wceq co cz cmul cc0 ad2antrr cabs
      syl vx c2 cuz cv wo wi wral wne zring crg zringring zring1 irredn1 anim2i
      mpan eluz2b3 sylibr cui cdiv ad2antrl simprr nnne0 dvdsval2 syl3anc mpbid
      nnz wb zcnd nncn divcan2d simplr eqeltrd zringbas eqid zringmulr irredmul
      cc zringunit baib nnnn0 nn0re nn0ge0 absidd eqeq1d bitrd cr nnre nndivred
      cn0 simprl cle nnred nngt0 divge0 syl22anc divmuld mulid1d 3bitrd orbi12d
      clt 1cnd expr ralrimiva isprm2 sylanbrc wn prmz 1nprm prmnn 3syl id eleq1
      syl5ibcom adantld syl5bi mtoi simplrl nnne0d simpr simplrr mul02d 3netr4d
      oveq1 necon3i absne0d neneqd nn0abscl elnn0 ord simprbi dvdsmul1 ad2antlr
      sylib mt3d breqtrd absdvdsb syl2anc eqeq1 abscld recnd breq1 rspcv fveq2d
      imbi12d syl3c mulcand absmuld 3eqtr3d eqeq12d eqcom syl6bb 3bitr2d mpbird
      ex ralrimivva isirred2 syl3anbrc adantl impbida ) AEFZABFZAGFZUUTUVAHZAUB
      UCIFZDUDZAJKZUVELMZUVEAMZUEZUFZDEUGZUVBUVCUUTALUHZHUVDUVAUVLUUTUIUJFUVAUV
      LUKUILBACULUMUOUNAUPUQUVCUVJDEUVCUVEEFZUVFUVIUVCUVMUVFHZHZUVEUIURIZFZAUVE
      USNZUVPFZUEZUVIUVOUVEOFZUVROFZUVEUVRPNZBFUVTUVMUWAUVCUVFUVEVFUTZUVOUVFUWB
      UVCUVMUVFVAUVOUWAUVEQUHZAOFZUVFUWBVGUWDUVMUWEUVCUVFUVEVBUTZUUTUWFUVAUVNAV
      FRZUVEAVCVDVEZUVOUWCABUVOAUVEUVOAUWHVHZUVMUVEVQFUVCUVFUVEVIUTZUWGVJUUTUVA
      UVNVKVLOUIPUVPBUVEUVRCVMUVPVNZVOVPVDUVOUVQUVGUVSUVHUVOUVQUVESIZLMZUVGUVOU
      WAUVQUWNVGZUWDUVQUWAUWNUVEVRVSZTUVOUWMUVELUVMUWMUVEMZUVCUVFUVMUVEWIFZUWQU
      VEVTUWRUVEUVEWAUVEWBWCTUTWDWEUVOUVSUVRSIZLMZUVHUVOUWBUVSUWTVGUWIUVSUWBUWT
      UVRVRVSTUVOUWTUVRLMUVELPNZAMUVHUVOUWSUVRLUVOUVRUVOAUVEUUTAWFFZUVAUVNAWGRZ
      UVCUVMUVFWJZWHUVOUXBQAWKKZUVEWFFQUVEWTKZQUVRWKKUXCUUTUXEUVAUVNUUTAWIFZUXE
      AVTZAWBZTRUVOUVEUXDWLUVMUXFUVCUVFUVEWMUTAUVEWNWOWCWDUVOAUVELUWJUWKUVOXAUW
      GWPUVOUXAUVEAUVOUVEUWKWQWDWRWEWSVEXBXCDAXDZXEUVBUVAUUTUVBUWFAUVPFZXFUAUDZ
      UVEPNZAMZUXLUVPFZUVQUEZUFZDOUGUAOUGUVAAXGZUVBUXKLGFZXHUXKUWFASIZLMZHUVBUX
      SAVRUVBUYAUXSUWFUVBUXTGFUYAUXSUVBUXTAGUVBUUTUXGUXTAMZAXIZUXHUXGAAWAUXIWCX
      JZUVBXKVLUXTLGXLXMXNXOXPUVBUXQUADOOUVBUXLOFZUWAHZHZUXNUXPUYGUXNHZUXPUXLSI
      ZLMZUYIAMZUEZUYHUYIEFZUVKUYIAJKZUYLUYHUYMUYIQMZUYHUYIQUYHUXLUYHUXLUVBUYEU
      WAUXNXQZVHZUYHUXMQUVEPNZUHUXLQUHUYHAQUXMUYRUYHAUVBUUTUYFUXNUYCRXRUYGUXNXS
      ZUYHUVEUYHUVEUVBUYEUWAUXNXTZVHZYAYBUXLQUXMUYRUXLQUVEPYCYDTYEZYFUYHUYMUYOU
      YHUYIWIFZUYMUYOUEUYHUYEVUCUYPUXLYGTUYIYHYMYIYNUVBUVKUYFUXNUVBUVDUVKUXJYJR
      UYHUXLAJKZUYNUYHUXLUXMAJUYFUXLUXMJKUVBUXNUXLUVEYKYLUYSYOUYHUYEUWFVUDUYNVG
      UYPUVBUWFUYFUXNUXRRUXLAYPYQVEUVJUYNUYLUFDUYIEUVEUYIMZUVFUYNUVIUYLUVEUYIAJ
      UUAVUEUVGUYJUVHUYKUVEUYILYRUVEUYIAYRWSUUDUUBUUEUYHUXOUYJUVQUYKUYHUYEUXOUY
      JVGUYPUXOUYEUYJUXLVRVSTUYHUVQUWNUYIUWMPNZUYILPNZMZUYKUYHUWAUWOUYTUWPTUYHU
      WMLUYIUYHUWMUYHUVEVUAYSYTUYHXAUYHUYIUYHUXLUYQYSYTZVUBUUFUYHVUHAUYIMUYKUYH
      VUFAVUGUYIUYHUXMSIUXTVUFAUYHUXMASUYSUUCUYHUXLUVEUYQVUAUUGUVBUYBUYFUXNUYDR
      UUHUYHUYIVUIWQUUIAUYIUUJUUKUULWSUUMUUNUUOUADOUIPUVPBAVMUWLCVOUUPUUQUURUUS
      $.

    $d I x $.
    $( The positive irreducible elements of ` ZZ ` are the prime numbers.  This
       is an alternative way to define ` Prime ` .  (Contributed by Mario
       Carneiro, 5-Dec-2014.)  (Revised by AV, 10-Jun-2019.) $)
    dfprm2 $p |- Prime = ( NN i^i I ) $=
      ( vx cprime cn cin cv wcel wa prmnn prmirredlem bicomd biadan2 elin eqriv
      bitr4i ) CDEAFZCGZDHZREHZRAHZIRQHSTUARJTUASRABKLMREANPO $.

    $( The irreducible elements of ` ZZ ` are exactly the prime numbers (and
       their negatives).  (Contributed by Mario Carneiro, 5-Dec-2014.)
       (Revised by AV, 10-Jun-2019.) $)
    prmirred $p |- ( A e. I <-> ( A e. ZZ /\ ( abs ` A ) e. Prime ) ) $=
      ( wcel cz cfv cprime zring zringbas wb cn wa cc0 wceq wo wi eleq1d adantl
      mpan ccnfld cabs irredcl cn0 cr cneg elnn0 ax-1 crg wne zringring irredn0
      zring0 necon2bi pm2.21d jaoi sylbi prmnn a1i prmirredlem pm5.21ndd nn0ge0
      nn0re absidd bitr4d cminusg irrednegb csubg csubrg zsubrg subrgsubg ax-mp
      eqid df-zring subginv cc zcn cnfldneg syl eqtr3d bitrd adantr zre cle wbr
      nn0ge0d le0neg1d mpbird absnidd 3bitr4d adantrl elznn0nn mpjaodan biadan2
      nnnn0 biimpi ) ABDZAEDZAUAFZGDZEHBACIUBWQAUCDZWPWSJZAUDDZAUEZKDZLZWTXAWQW
      TWPAGDZWSWTAKDZWPXFWTXGAMNZOWPXGPZAUFXGXIXHXGWPUGXHWPXGWPAMHUHDZWPAMUIUJH
      BAMCULUKSUMUNUOUPXFXGPWTAUQURXGWPXFJPWTABCUSURUTWTWRAGWTAAVBAVAVCQVDRWQXD
      XAXBWQXDLZXCBDZXCGDZWPWSXDXLXMJWQXCBCUSRWQWPXLJXDWQWPAHVEFZFZBDZXLXJWQWPX
      PJUJEHBXNACXNVLZIVFSWQXOXCBWQATVEFZFZXOXCETVGFDZWQXSXONETVHFDXTVIETVJVKET
      HXRXNAVMXRVLXQVNSWQAVODXSXCNAVPAVQVRVSQVTWAXKWRXCGXKAWQXBXDAWBWAZXKAMWCWD
      MXCWCWDZXDYBWQXDXCXCWNWERXKAYAWFWGWHQWIWJWQWTXEOAWKWOWLWM $.
  $}

  ${
    $d x y z A $.  $d y z U $.
    expghm.m $e |- M = ( mulGrp ` CCfld ) $.
    expghm.u $e |- U = ( M |`s ( CC \ { 0 } ) ) $.
    $( Exponentiation is a group homomorphism from addition to multiplication.
       (Contributed by Mario Carneiro, 18-Jun-2015.)  (Revised by AV,
       10-Jun-2019.) $)
    expghm $p |- ( ( A e. CC /\ A =/= 0 ) ->
        ( x e. ZZ |-> ( A ^ x ) ) e. ( ZZring GrpHom U ) ) $=
      ( vy vz cc wcel cc0 wa cz cv cexp co cfv cmul wceq ccnfld wne csn cdif wf
      cmpt caddc wral zring cghm expclzlem 3expa eqid fmptd zaddcl adantl oveq2
      expaddz ovex fvmpt syl oveqan12d 3eqtr4d ralrimivva zringgrp crg cnfldbas
      cgrp cnring cnfld0 cndrng drngui cress cmgp oveq1i eqtri unitgrp zringbas
      ax-mp pm3.2i wss cbs difss mgpbas ressbas2 zringplusg cvv cplusg cui fvex
      eqeltri cnfldmul mgpplusg ressplusg isghm mpbiran sylanbrc ) BIJZBKUAZLZM
      IKUBZUCZAMBANZOPZUEZUDZGNZHNZUFPZXDQZXFXDQZXGXDQZRPZSZHMUGGMUGZXDUHCUIPJZ
      WSAMXCXAXDWQWRXBMJXCXAJBXBUJUKXDULZUMWSXMGHMMWSXFMJZXGMJZLZLZBXHOPZBXFOPZ
      BXGOPZRPZXIXLBXFXGUQXTXHMJZXIYASXSYEWSXFXGUNUOAXHXCYAMXDXBXHBOUPXPBXHOURU
      SUTXSXLYDSWSXQXRXJYBXKYCRAXFXCYBMXDXBXFBOUPXPBXFOURUSAXGXCYCMXDXBXGBOUPXP
      BXGOURUSVAUOVBVCXOUHVGJZCVGJZLXEXNLYFYGVDTVEJYGVHTXACITKVFVIVJVKZCDXAVLPT
      VMQZXAVLPFDYIXAVLEVNVOVPVRVSHGUFRUHCXDMXAVQXAIVTXACWAQSIWTWBXAICDFITDEVFW
      CWDVRWEXAWFJRCWGQSXATWHQWFYHTWHWIWJXARDCWFFTRDEWKWLWMVRWNWOWP $.
  $}

  ${
    $d n x y B $.  $d f x y F $.  $d f n x y R $.  $d n .x. $.  $d n x y .1. $.
    mulgghm2.m $e |- .x. = ( .g ` R ) $.
    mulgghm2.f $e |- F = ( n e. ZZ |-> ( n .x. .1. ) ) $.
    ${
      mulgghm2.b $e |- B = ( Base ` R ) $.
      $( The powers of a group element give a homomorphism from ` ZZ ` to a
         group.  (Contributed by Mario Carneiro, 13-Jun-2015.)  (Revised by AV,
         12-Jun-2019.) $)
      mulgghm2 $p |- ( ( R e. Grp /\ .1. e. B )
                       -> F e. ( ZZring GrpHom R ) ) $=
        ( vx vy wcel wa zring cz cv co cfv wceq oveq1 cgrp wf caddc cplusg wral
        cghm simpl zringgrp jctil mulgcl 3expa an32s fmptd mulgdir 3exp2 zaddcl
        eqid imp42 adantl fvmpt syl oveqan12d 3eqtr4d ralrimivva jca zringplusg
        ovex zringbas isghm sylanbrc ) BUALZDALZMZNUALZVKMOAFUBZJPZKPZUCQZFRZVP
        FRZVQFRZBUDRZQZSZKOUEJOUEZMFNBUFQLVMVKVNVKVLUGUHUIVMVOWEVMEOEPZDCQZAFVK
        WFOLZVLWGALZVKWHVLWIACBWFDIGUJUKULHUMVMWDJKOOVMVPOLZVQOLZMZMZVRDCQZVPDC
        QZVQDCQZWBQZVSWCVKWLVLWNWQSZVKWJWKVLWRVKWJWKVLWRAWBCBVPVQDIGWBUQZUNUOUR
        ULWMVROLZVSWNSWLWTVMVPVQUPUSEVRWGWNOFWFVRDCTHVRDCVGUTVAWLWCWQSVMWJWKVTW
        OWAWPWBEVPWGWOOFWFVPDCTHVPDCVGUTEVQWGWPOFWFVQDCTHVQDCVGUTVBUSVCVDVEKJUC
        WBNBFOAVHIVFWSVIVJ $.
    $}

    mulgrhm.1 $e |- .1. = ( 1r ` R ) $.
    $( The powers of the element ` 1 ` give a ring homomorphism from ` ZZ ` to
       a ring.  (Contributed by Mario Carneiro, 14-Jun-2015.)  (Revised by AV,
       12-Jun-2019.) $)
    mulgrhm $p |- ( R e. Ring -> F e. ( ZZring RingHom R ) ) $=
      ( vx wcel cz zring cfv c1 co wceq cv oveq1 ovex fvmpt cmul cmulr zringbas
      vy crg zring1 zringmulr eqid zringring a1i id 1z ax-mp cbs ringidcl mulg1
      syl syl5eq wa ringgrp adantr simprr mulgcl syl3anc ringlidm syldan oveq2d
      simprl mulgass2 syl13anc mulgass 3eqtr4rd zmulcl adantl oveqan12d 3eqtr4d
      cgrp simpl cghm mulgghm2 syl2anc isrhm2d ) AUEJZIUDKLAUAAUBMZNECUCUFHUGWD
      UHZLUEJWCUIUJWCUKWCNEMZNCBOZCNKJWFWGPULDNDQZCBOZWGKEWHNCBRGNCBSTUMWCCAUNM
      ZJZWGCPWJACWJUHZHUOZWJBACWLFUPUQURWCIQZKJZUDQZKJZUSZUSZWNWPUAOZCBOZWNCBOZ
      WPCBOZWDOZWTEMZWNEMZWPEMZWDOZWSWNCXCWDOZBOZWNXCBOZXDXAWSXIXCWNBWCWRXCWJJZ
      XIXCPWSAVQJZWQWKXLWCXMWRAUTZVAZWCWOWQVBZWCWKWRWMVAZWJBAWPCWLFVCVDZWJAWDCX
      CWLWEHVEVFVGWSWCWOWKXLXDXJPWCWRVRWCWOWQVHZXQXRWJABWDWNCXCWLFWEVIVJWSXMWOW
      QWKXAXKPXOXSXPXQWJBAWNWPCWLFVKVJVLWSWTKJZXEXAPWRXTWCWNWPVMVNDWTWIXAKEWHWT
      CBRGWTCBSTUQWRXHXDPWCWOWQXFXBXGXCWDDWNWIXBKEWHWNCBRGWNCBSTDWPWIXCKEWHWPCB
      RGWPCBSTVOVNVPWCXMWKELAVSOJXNWMWJABCDEFGWLVTWAWB $.

    $( The powers of the element ` 1 ` give the unique ring homomorphism from
       ` ZZ ` to a ring.  (Contributed by Mario Carneiro, 14-Jun-2015.)
       (Revised by AV, 12-Jun-2019.) $)
    mulgrhm2 $p |- ( R e. Ring -> ( ZZring RingHom R ) = { F } ) $=
      ( vf wcel zring co cv wa wceq cz cmpt cfv zringbas c1 crg crh csn wf eqid
      cbs rhmf adantl feqmptd cghm rhmghm ad2antlr simpr ghmmulg syl3anc ccnfld
      cmg 1zzd cc ax-1cn cnfldmulg mpan2 1z adantr zringmulg eqtr4d zcn mulid1d
      cmul 3eqtr3d fveq2d zring1 oveq2d mpteq2dva eqtrd syl6eqr velsn sylibr ex
      rhm1 ssrdv mulgrhm snssd eqssd ) AUAJZKAUBLZEUCZWEIWFWGWEIMZWFJZWHWGJZWEW
      INZWHEOWJWKWHDPDMZCBLZQZEWKWHDPWLWHRZQWNWKDPAUFRZWHWIPWPWHUDWEPWPKAWHSWPU
      EUGUHUIWKDPWOWMWKWLPJZNZWLTKUQRZLZWHRZWLTWHRZBLZWOWMWRWHKAUJLJZWQTPJZXAXC
      OWIXDWEWQKAWHUKULWKWQUMWRURPWSBWHKAWLTSWSUEFUNUOWRWTWLWHWQWTWLOWKWQWLTUPU
      QRLZWLTVILZWTWLWQTUSJXFXGOZUTWLTVAVBZWQXEXFWTOVCWQXENXFXGWTWQXHXEXIVDWLTV
      EVFVBWQWLWLVGVHVJUHVKWRXBCWLBWIXBCOWEWQKATWHCVLHVTULVMVJVNVOGVPIEVQVRVSWA
      WEEWFABCDEFGHWBWCWD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Algebraic constructions based on the complex numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ZRHom $. $( Map the integers into a field $)
  $c ZMod $. $( Turn an abelian group into a ZZ-module $)
  $c chr $.
  $c Z/nZ $. $( Integers mod n $)

  $( Map the rationals into a field, or the integers into a ring. $)
  czrh $a class ZRHom $.

  $( Augment an abelian group with vector space operations to turn it into a
     ` ZZ ` -module. $)
  czlm $a class ZMod $.

  $( Syntax for ring characteristic. $)
  cchr $a class chr $.

  $( The ring of integers modulo ` n ` . $)
  czn $a class Z/nZ $.

  ${
    $d n z s f r $.
    $( Define the unique homomorphism from the integers into a ring.  This
       encodes the usual notation of ` n = 1r + 1r + ... + 1r ` for integers
       (see also ~ df-mulg ).  (Contributed by Mario Carneiro, 13-Jun-2015.)
       (Revised by AV, 12-Jun-2019.) $)
    df-zrh $a |- ZRHom = ( r e. _V |-> U. ( ZZring RingHom r ) ) $.

    $( Augment an abelian group with vector space operations to turn it into a
       ` ZZ ` -module.  (Contributed by Mario Carneiro, 2-Oct-2015.)  (Revised
       by AV, 12-Jun-2019.) $)
    df-zlm $a |- ZMod = ( g e. _V |-> ( ( g
      sSet <. ( Scalar ` ndx ) , ZZring >. )
      sSet <. ( .s ` ndx ) , ( .g ` g ) >. ) ) $.

    $( The characteristic of a ring is the smallest positive integer which is
       equal to 0 when interpreted in the ring, or 0 if there is no such
       positive integer.  (Contributed by Stefan O'Rear, 5-Sep-2015.) $)
    df-chr $a |- chr = ( g e. _V |-> ( ( od ` g ) ` ( 1r ` g ) ) ) $.

    $( Define the ring of integers ` mod n ` .  This is literally the quotient
       ring of ` ZZ ` by the ideal ` n ZZ ` , but we augment it with a total
       order.  (Contributed by Mario Carneiro, 14-Jun-2015.)  (Revised by AV,
       12-Jun-2019.) $)
    df-zn $a |- Z/nZ = ( n e. NN0 |-> [_ ZZring / z ]_
      [_ ( z /s ( z ~QG ( ( RSpan ` z ) ` { n } ) ) ) / s ]_
      ( s sSet <. ( le ` ndx ) , [_ ( ( ZRHom ` s ) |`
      if ( n = 0 , ZZ , ( 0 ..^ n ) ) ) / f ]_
        ( ( f o. <_ ) o. `' f ) >. ) ) $.
  $}

  ${
    $d r s $.  $d n N $.  $d n .1. $.  $d n r R $.  $d n .x. $.
    zrhval.l $e |- L = ( ZRHom ` R ) $.
    $( Define the unique homomorphism from the integers to a ring or field.
       (Contributed by Mario Carneiro, 13-Jun-2015.)  (Revised by AV,
       12-Jun-2019.) $)
    zrhval $p |- L = U. ( ZZring RingHom R ) $=
      ( vr vs czrh cfv zring crh co cuni cvv wcel wceq cv oveq2 unieqd crg cmgp
      c0 df-zrh ovex uniex fvmpt wn fvprc cghm cmhm cin dfrhm2 reldmmpt2 ovprc2
      uni0 syl6eq eqtr4d pm2.61i eqtri ) BAFGZHAIJZKZCALMZURUTNDAHDOZIJZKUTLFVB
      ANVCUSVBAHIPQDUAUSHAIUBUCUDVAUEZURTUTAFUFVDUTTKTVDUSTHAIDERRVBEOZUGJVBSGV
      ESGUHJUIIEDUJUKULQUMUNUOUPUQ $.

    ${
      zrhval2.m $e |- .x. = ( .g ` R ) $.
      zrhval2.1 $e |- .1. = ( 1r ` R ) $.
      $( Alternate value of the ` ZRHom ` homomorphism.  (Contributed by Mario
         Carneiro, 12-Jun-2015.) $)
      zrhval2 $p |- ( R e. Ring -> L = ( n e. ZZ |-> ( n .x. .1. ) ) ) $=
        ( crg wcel zring crh co cuni cz cv cmpt zrhval csn eqid mulgrhm2 unieqd
        zex mptex unisn syl6eq syl5eq ) AIJZEKALMZNZDODPCBMZQZAEFRUHUJULSZNULUH
        UIUMABCDULGULTHUAUBULDOUKUCUDUEUFUG $.

      $( Value of the ` ZRHom ` homomorphism.  (Contributed by Mario Carneiro,
         14-Jun-2015.) $)
      zrhmulg $p |- ( ( R e. Ring /\ N e. ZZ ) ->
        ( L ` N ) = ( N .x. .1. ) ) $=
        ( vn crg wcel cz cfv cv co cmpt zrhval2 fveq1d oveq1 eqid ovex sylan9eq
        fvmpt ) AJKZELKEDMEILINZCBOZPZMECBOZUDEDUGABCIDFGHQRIEUFUHLUGUEECBSUGTE
        CBUAUCUB $.
    $}

    $( The ` ZRHom ` homomorphism is the unique ring homomorphism from ` Z ` .
       (Contributed by Mario Carneiro, 15-Jun-2015.)  (Revised by AV,
       12-Jun-2019.) $)
    zrhrhmb $p |- ( R e. Ring -> ( F e. ( ZZring RingHom R ) <-> F = L ) ) $=
      ( vn crg wcel zring crh co csn wceq cz cv cur cfv cmg cmpt eqid czrh fvex
      mulgrhm2 zrhval2 sneqd eqtr4d eleq2d cvv eqeltri elsn2 syl6bb ) AFGZBHAIJ
      ZGBCKZGBCLUKULUMBUKULEMENAOPZAQPZJRZKUMAUOUNEUPUOSZUPSUNSZUBUKCUPAUOUNECD
      UQURUCUDUEUFBCCATPUGDATUAUHUIUJ $.

    $( The ` ZRHom ` homomorphism is a homomorphism.  (Contributed by Mario
       Carneiro, 12-Jun-2015.)  (Revised by AV, 12-Jun-2019.) $)
    zrhrhm $p |- ( R e. Ring -> L e. ( ZZring RingHom R ) ) $=
      ( crg wcel zring crh co wceq eqid zrhrhmb mpbiri ) ADEBFAGHEBBIBJABBCKL
      $.
  $}

  ${
    zrh1.l $e |- L = ( ZRHom ` R ) $.
    zrh1.o $e |- .1. = ( 1r ` R ) $.
    $( Interpretation of 1 in a ring.  (Contributed by Stefan O'Rear,
       6-Sep-2015.) $)
    zrh1 $p |- ( R e. Ring -> ( L ` 1 ) = .1. ) $=
      ( crg wcel zring crh co c1 cfv wceq zrhrhm zring1 rhm1 syl ) AFGCHAIJGKCL
      BMACDNHAKCBOEPQ $.
  $}

  ${
    zrh0.l $e |- L = ( ZRHom ` R ) $.
    zrh0.z $e |- .0. = ( 0g ` R ) $.
    $( Interpretation of 0 in a ring.  (Contributed by Stefan O'Rear,
       6-Sep-2015.) $)
    zrh0 $p |- ( R e. Ring -> ( L ` 0 ) = .0. ) $=
      ( crg wcel zring crh co cghm cc0 cfv wceq zrhrhm rhmghm zring0 ghmid 3syl
      ) AFGBHAIJGBHAKJGLBMCNABDOHABPHABLCQERS $.
  $}

  ${
    $d x y B $.  $d x y K $.  $d x y L $.  $d x y ph $.
    zrhpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    zrhpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    zrhpropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    zrhpropd.4 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( x ( .r ` K ) y ) = ( x ( .r ` L ) y ) ) $.
    $( The ` ZZ ` ring homomorphism depends only on the ring attributes of a
       structure.  (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    zrhpropd $p |- ( ph -> ( ZRHom ` K ) = ( ZRHom ` L ) ) $=
      ( zring crh co cuni czrh cfv eqidd cv wcel wa cplusg rhmpropd unieqd eqid
      cbs cmulr zrhval 3eqtr4g ) AKELMZNKFLMZNEOPZFOPZAUIUJABCKUEPZDKEKFAUMQZGU
      NHABRZUMSCRZUMSTTZUOUPKUAPMQIUQUOUPKUFPMQJUBUCEUKUKUDUGFULULUDUGUH $.
  $}

  ${
    $d g G $.  $d g .x. $.
    zlmval.w $e |- W = ( ZMod ` G ) $.
    zlmval.m $e |- .x. = ( .g ` G ) $.
    $( Augment an abelian group with vector space operations to turn it into a
       ` ZZ ` -module.  (Contributed by Mario Carneiro, 2-Oct-2015.)  (Revised
       by AV, 12-Jun-2019.) $)
    zlmval $p |- ( G e. V -> W = ( ( G sSet <. ( Scalar ` ndx ) , ZZring >. )
                                       sSet <. ( .s ` ndx ) , .x. >. ) ) $=
      ( vg wcel czlm cfv cnx csca zring cop csts co cvsca cvv wceq cmg cv oveq1
      elex fveq2 syl6eqr opeq2d oveq12d df-zlm ovex fvmpt syl syl5eq ) BCHZDBIJ
      ZBKLJMNZOPZKQJZANZOPZEUMBRHUNUSSBCUCGBGUAZUOOPZUQUTTJZNZOPUSRIUTBSZVAUPVC
      UROUTBUOOUBVDVBAUQVDVBBTJAUTBTUDFUEUFUGGUHUPUROUIUJUKUL $.
  $}

  ${
    zlmbas.w $e |- W = ( ZMod ` G ) $.
    ${
      zlmlem.2 $e |- E = Slot N $.
      zlmlem.3 $e |- N e. NN $.
      zlmlem.4 $e |- N < 5 $.
      $( Lemma for ~ zlmbas and ~ zlmplusg .  (Contributed by Mario Carneiro,
         2-Oct-2015.) $)
      zlmlem $p |- ( E ` G ) = ( E ` W ) $=
        ( cvv cfv cnx zring cop csts co c5 clt c6 wbr c0 wcel wceq cvsca zlmval
        csca cmg eqid fveq2d ndxid ndxarg nnrei eqeltri eqbrtri ltneii neeqtrri
        cr scandx setsnid 5lt6 5re 6re lttri mp2an vscandx eqtri syl6reqr fvprc
        wn str0 czlm syl5eq 3eqtr4a pm2.61i ) BIUAZBAJZDAJZUBVNVPBKUEJZLMNOZKUC
        JZBUFJZMNOZAJZVOVNDWAAVTBIDEVTUGUDUHVOVRAJWBLVQABACFGUIZKAJZPVQWDPWDCUP
        ACFGUJZCGUKULZWDCPQWEHUMZUNUQUOURVTVSAVRWCWDRVSWDRWFWDPQSPRQSWDRQSWGUSW
        DPRWFUTVAVBVCUNVDUOURVEVFVNVHZTTAJVOVPACFVIBAVGWHDTAWHDBVJJTEBVJVGVKUHV
        LVM $.
    $}

    ${
      zlmbas.2 $e |- B = ( Base ` G ) $.
      $( Base set of a ` ZZ ` -module.  (Contributed by Mario Carneiro,
         2-Oct-2015.) $)
      zlmbas $p |- B = ( Base ` W ) $=
        ( cbs cfv c1 df-base 1nn 1lt5 zlmlem eqtri ) ABFGCFGEFBHCDIJKLM $.
    $}

    ${
      zlmplusg.2 $e |- .+ = ( +g ` G ) $.
      $( Group operation of a ` ZZ ` -module.  (Contributed by Mario Carneiro,
         2-Oct-2015.) $)
      zlmplusg $p |- .+ = ( +g ` W ) $=
        ( cplusg cfv c2 df-plusg 2nn 2lt5 zlmlem eqtri ) ABFGCFGEFBHCDIJKLM $.
    $}

    ${
      zlmmulr.2 $e |- .x. = ( .r ` G ) $.
      $( Ring operation of a ` ZZ ` -module (if present).  (Contributed by
         Mario Carneiro, 2-Oct-2015.) $)
      zlmmulr $p |- .x. = ( .r ` W ) $=
        ( cmulr cfv c3 df-mulr 3nn 3lt5 zlmlem eqtri ) ABFGCFGEFBHCDIJKLM $.
    $}

    $( Scalar ring of a ` ZZ ` -module.  (Contributed by Mario Carneiro,
       2-Oct-2015.)  (Revised by AV, 12-Jun-2019.) $)
    zlmsca $p |- ( G e. V -> ZZring = ( Scalar ` W ) ) $=
      ( wcel cnx csca cfv zring cop csts co cvsca cmg scaid wne c5 c6 5re crg
      5lt6 ltneii scandx vscandx neeq12i mpbir wceq zringring setsid mpan2 eqid
      setsnid zlmval fveq2d 3eqtr4a ) ABEZAFGHZIJKLZGHZURFMHZANHZJKLZGHICGHVAUT
      GUROUQUTPQRPQRSUAUBUQQUTRUCUDUEUFULUPITEIUSUGUHBIGTAOUIUJUPCVBGVAABCDVAUK
      UMUNUO $.

    ${
      zlmvsca.2 $e |- .x. = ( .g ` G ) $.
      $( Scalar multiplication operation of a ` ZZ ` -module.  (Contributed by
         Mario Carneiro, 2-Oct-2015.) $)
      zlmvsca $p |- .x. = ( .s ` W ) $=
        ( cvv wcel cvsca cfv wceq cnx cop csts co fveq2d vscaid c0 fvprc syl5eq
        cmg csca zring zlmval ovex fvex eqeltri setsid mp2an syl6reqr str0 czlm
        wn 3eqtr4a pm2.61i ) BFGZACHIZJUOUPBKUAIUBLZMNZKHIZALMNZHIZAUOCUTHABFCD
        EUCOURFGAFGAVAJBUQMUDABTIZFEBTUEUFFAHFURPUGUHUIUOULZQQHIAUPHUSPUJVCAVBQ
        EBTRSVCCQHVCCBUKIQDBUKRSOUMUN $.
    $}
  $}

  ${
    $d x y z G $.  $d x y z W $.
    zlmlmod.w $e |- W = ( ZMod ` G ) $.
    $( The ` ZZ ` -module operation turns an arbitrary abelian group into a
       left module over ` ZZ ` .  (Contributed by Mario Carneiro,
       2-Oct-2015.) $)
    zlmlmod $p |- ( G e. Abel <-> W e. LMod ) $=
      ( vx vy cabl wcel cz cplusg cfv caddc cmul c1 zring cbs wceq eqid a1i cv
      co vz clmod cmg zlmbas zlmplusg zlmsca cvsca zlmvsca zringplusg zringmulr
      zringbas cmulr cur zring1 crg zringring cgrp ablprop ablgrp sylbi syl3an1
      mulgcl mulgdi mulgdir sylan mulgass adantl islmodd lmodabl sylibr impbii
      w3a mulg1 ) AFGZBUBGZVNDEUAHAIJZKAUCJZLMNAOJZBVRBOJPVNVRABCVRQZUDZRVPBIJP
      VNVPABCVPQZUEZRAFBCUFVQBUGJPVNVQABCVQQZUHRHNOJPVNUKRKNIJPVNUIRLNULJPVNUJR
      MNUMJPVNUNRNUOGVNUPRVNBFGZBUQGABVTWBURZBUSUTVNAUQGZDSZHGZESZVRGWGWIVQTVRG
      AUSZVRVQAWGWIVSWCVBVAVRVPVQAWGWIUASZVSWCWAVCVNWFWHWIHGWKVRGVLZWGWIKTWKVQT
      WGWKVQTWIWKVQTZVPTPWJVRVPVQAWGWIWKVSWCWAVDVEVNWFWLWGWILTWKVQTWGWMVQTPWJVR
      VQAWGWIWKVSWCVFVEWGVRGMWGVQTWGPVNVRVQAWGVSWCVMVGVHVOWDVNBVIWEVJVK $.

    $( The ` ZZ ` -module operation turns a ring into an associative algebra
       over ` ZZ ` .  (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    zlmassa $p |- ( G e. Ring <-> W e. AssAlg ) $=
      ( vy vz vx crg wcel casa cz cmg cfv cmulr zring cbs wceq eqid zlmbas a1i
      cv zlmsca zringbas cvsca zlmvsca zlmmulr cabl clmod ringabl zlmlmod sylib
      cplusg zlmplusg ringprop biimpi ccrg zringcrng mulgass2 mulgass3 assaring
      isassad sylibr impbii ) AGHZBIHZVCDEJAKLZAMLZNAOLZBFVGBOLPVCVGABCVGQZRZSA
      GBCUAJNOLPVCUBSVEBUCLPVCVEABCVEQZUDSVFBMLPVCVFABCVFQZUEZSVCAUFHBUGHAUHABC
      UIUJVCBGHZABVIAUKLZABCVNQULVLUMZUNNUOHVCUPSVGAVEVFFTZDTZETZVHVJVKUQVGAVEV
      FVPVQVRVHVJVKURUTVDVMVCBUSVOVAVB $.
  $}

  ${
    $d r O $.  $d r R $.  $d r .1. $.
    chrval.o $e |- O = ( od ` R ) $.
    chrval.u $e |- .1. = ( 1r ` R ) $.
    chrval.c $e |- C = ( chr ` R ) $.
    $( Definition substitution of the ring characteristic.  (Contributed by
       Stefan O'Rear, 5-Sep-2015.) $)
    chrval $p |- ( O ` .1. ) = C $=
      ( vr cchr cfv cvv wcel wceq cv cur cod fveq2 syl6eqr c0 fvprc df-chr fvex
      fveq12d fvmpt wn syl5eq fveq1d 0fv syl6eq eqtr4d pm2.61i eqtr2i ) ABIJZCD
      JZGBKLZUMUNMHBHNZOJZUPPJZJUNKIUPBMZUQCURDUSURBPJZDUPBPQERUSUQBOJCUPBOQFRU
      CHUACDUBUDUOUEZUMSUNBITVAUNCSJSVACDSVADUTSEBPTUFUGCUHUIUJUKUL $.
  $}

  ${
    chrcl.c $e |- C = ( chr ` R ) $.
    $( Closure of the characteristic.  (Contributed by Mario Carneiro,
       23-Sep-2015.) $)
    chrcl $p |- ( R e. Ring -> C e. NN0 ) $=
      ( crg wcel cur cfv cod cn0 eqid chrval cbs ringidcl odcl syl syl5eqelr )
      BDEZABFGZBHGZGZIABRSSJZRJZCKQRBLGZETIEUCBRUCJZUBMRBSUCUDUANOP $.

    chrid.l $e |- L = ( ZRHom ` R ) $.
    chrid.z $e |- .0. = ( 0g ` R ) $.
    $( The canonical ` ZZ ` ring homomorphism applied to a ring's
       characteristic is zero.  (Contributed by Mario Carneiro,
       23-Sep-2015.) $)
    chrid $p |- ( R e. Ring -> ( L ` C ) = .0. ) $=
      ( crg wcel cfv cur cmg co cz wceq chrcl nn0zd eqid zrhmulg mpdan ringidcl
      cod chrval oveq1i cbs odid syl syl5eqr eqtrd ) BHIZACJZABKJZBLJZMZDUJANIU
      KUNOUJAABEPQBUMULCAFUMRZULRZSTUJUNULBUBJZJZULUMMZDURAULUMABULUQUQRZUPEUCU
      DUJULBUEJZIUSDOVABULVARZUPUAULUMBUQVADVBUTUOGUFUGUHUI $.

    $( The ` ZZ ` ring homomorphism is zero only at multiples of the
       characteristic.  (Contributed by Mario Carneiro, 23-Sep-2015.) $)
    chrdvds $p |- ( ( R e. Ring /\ N e. ZZ ) ->
      ( C || N <-> ( L ` N ) = .0. ) ) $=
      ( crg wcel cz wa cdvds wbr cur cfv cmg wceq eqid adantr cod chrval breq1i
      co cgrp cbs ringgrp ringidcl oddvds syl3anc syl5bbr zrhmulg eqeq1d bitr4d
      wb simpr ) BIJZDKJZLZADMNZDBOPZBQPZUDZERZDCPZERUTVABUAPZPZDMNZUSVDVGADMAB
      VAVFVFSZVASZFUBUCUSBUEJZVABUFPZJZURVHVDUOUQVKURBUGTUQVMURVLBVAVLSZVJUHTUQ
      URUPVAVBBDVFVLEVNVIVBSZHUIUJUKUSVEVCEBVBVACDGVOVJULUMUN $.

    $( If two integers are congruent relative to the ring characteristic, their
       images in the ring are the same.  (Contributed by Mario Carneiro,
       24-Sep-2015.) $)
    chrcong $p |- ( ( R e. Ring /\ M e. ZZ /\ N e. ZZ ) ->
      ( C || ( M - N ) <-> ( L ` M ) = ( L ` N ) ) ) $=
      ( crg wcel cz co cdvds wbr cfv wceq eqid 3ad2ant1 zrhmulg w3a cur cmg cod
      cmin chrval breq1i cgrp cbs ringgrp ringidcl simp2 simp3 odcong syl112anc
      wb syl5bbr 3adant3 3adant2 eqeq12d bitr4d ) BJKZDLKZELKZUAZADEUEMZNOZDBUB
      PZBUCPZMZEVHVIMZQZDCPZECPZQVGVHBUDPZPZVFNOZVEVLVPAVFNABVHVOVORZVHRZGUFUGV
      EBUHKZVHBUIPZKZVCVDVQVLUPVBVCVTVDBUJSVBVCWBVDWABVHWARZVSUKSVBVCVDULVBVCVD
      UMVHVIBDEVOWAFWCVRVIRZIUNUOUQVEVMVJVNVKVBVCVMVJQVDBVIVHCDHWDVSTURVBVDVNVK
      QVCBVIVHCEHWDVSTUSUTVA $.
  $}

  $( Nonzero rings are precisely those with characteristic not 1.  (Contributed
     by Stefan O'Rear, 6-Sep-2015.) $)
  chrnzr $p |- ( R e. Ring -> ( R e. NzRing <-> ( chr ` R ) =/= 1 ) ) $=
    ( crg wcel cnzr cur cfv c0g wne cchr c1 eqid isnzr baib cdvds wbr czrh wceq
    cz wb 1z chrdvds mpan2 cn0 chrcl dvds1 zrh1 eqeq1d 3bitr3d necon3bid bitr4d
    syl ) ABCZADCZAEFZAGFZHZAIFZJHUMULUPAUNUOUNKZUOKZLMULUQJUNUOULUQJNOZJAPFZFZ
    UOQZUQJQZUNUOQULJRCUTVCSTUQAVAJUOUQKZVAKZUSUAUBULUQUCCUTVDSUQAVEUDUQUEUKULV
    BUNUOAUNVAVFURUFUGUHUIUJ $.

  $( The characteristic restriction on ring homomorphisms.  (Contributed by
     Stefan O'Rear, 6-Sep-2015.) $)
  chrrhm $p |- ( F e. ( R RingHom S ) -> ( chr ` S ) || ( chr ` R ) ) $=
    ( crh co wcel cchr cfv cdvds czrh c0g wceq cz zring crg eqid syl syl2anc wb
    3syl wbr ccom wfn cbs rhmrcl1 zrhrhm zringbas rhmf ffn cn0 chrcl nn0z fvco2
    wf chrid fveq2d eqtrd rhmco mpdan rhmrcl2 zrhrhmb mpbid fveq1d rhmghm ghmid
    cghm 3eqtr3d chrdvds mpbird ) CABDEFZBGHZAGHZIUAZVLBJHZHZBKHZLZVJVLCAJHZUBZ
    HZAKHZCHZVOVPVJVTVLVRHZCHZWBVJVRMUCZVLMFZVTWDLVJVRNADEFZMAUDHZVRUNWEVJAOFZW
    GABCUEZAVRVRPZUFQZMWHNAVRUGWHPUHMWHVRUITVJWIVLUJFWFWJVLAVLPZUKVLULTZMCVRVLU
    MRVJWCWACVJWIWCWALWJVLAVRWAWMWKWAPZUOQUPUQVJVLVSVNVJVSNBDEFZVSVNLZVJWGWPWLN
    ABCVRURUSVJBOFZWPWQSABCUTZBVSVNVNPZVAQVBVCVJCABVFEFWBVPLABCVDABCWAVPWOVPPZV
    EQVGVJWRWFVMVQSWSWNVKBVNVLVPVKPWTXAVHRVI $.

  ${
    $d x y R $.
    $( The characteristic of a domain can only be zero or a prime.
       (Contributed by Stefan O'Rear, 6-Sep-2015.) $)
    domnchr $p |- ( R e. Domn -> ( ( chr ` R ) = 0 \/
        ( chr ` R ) e. Prime ) ) $=
      ( vx vy wcel cfv cc0 wceq wa co cdvds wbr cz cn0 eqid sylanbrc wb chrdvds
      syl zring syl2anc cdomn cchr cprime wn wne df-ne c2 cv cmul wo wi wral cn
      cuz c1 csn cdif crg domnring chrcl adantr simpr eldifsn syl6eleqr domnnzr
      dfn2 cnzr nzrring chrnzr ibi eluz2b3 c0g cmulr crh ad2antrr zrhrhm simprl
      czrh simprr zringbas zringmulr rhmmul syl3anc eqeq1d simpll rhmf ffvelrnd
      cbs domneq0 bitrd biimpd zmulcl adantl orbi12d 3imtr4d ralrimivva syl5bir
      wf isprm6 ex orrd ) AUADZAUBEZFGZXCUCDZXDUDXCFUEZXBXEXCFUFXBXFXEXBXFHZXCU
      GUNEDZXCBUHZCUHZUIIZJKZXCXIJKZXCXJJKZUJZUKZCLULBLULXEXGXCUMDXCUOUEZXHXGXC
      MFUPUQZUMXGXCMDZXFXCXRDXBXSXFXBAURDZXSAUSZXCAXCNZUTRVAXBXFVBXCMFVCOVFVDXB
      XQXFXBAVGDZXQAVEYCXQYCXTYCXQPAVHAVIRVJRVAXCVKOXGXPBCLLXGXILDZXJLDZHZHZXKA
      VREZEZAVLEZGZXIYHEZYJGZXJYHEZYJGZUJZXLXOYGYKYPYGYKYLYNAVMEZIZYJGZYPYGYIYR
      YJYGYHSAVNIDZYDYEYIYRGYGXTYTXBXTXFYFYAVOZAYHYHNZVPRZXGYDYEVQZXGYDYEVSZXIX
      JSAUIYQYHLVTWAYQNZWBWCWDYGXBYLAWHEZDYNUUGDYSYPPXBXFYFWEYGLUUGXIYHYGYTLUUG
      YHWRUUCLUUGSAYHVTUUGNZWFRZUUDWGYGLUUGXJYHUUIUUEWGUUGAYQYLYNYJUUHUUFYJNZWI
      WCWJWKYGXTXKLDZXLYKPUUAYFUUKXGXIXJWLWMXCAYHXKYJYBUUBUUJQTYGXMYMXNYOYGXTYD
      XMYMPUUAUUDXCAYHXIYJYBUUBUUJQTYGXTYEXNYOPUUAUUEXCAYHXJYJYBUUBUUJQTWNWOWPB
      CXCWSOWTWQXA $.
  $}

  ${
    $d f n s z .<_ $.  $d f n s z N $.  $d n s z U $.
    znval.s $e |- S = ( RSpan ` ZZring ) $.
    $( The set ` n ZZ ` is an ideal in ` ZZ ` .  (Contributed by Mario
       Carneiro, 14-Jun-2015.)  (Revised by AV, 13-Jun-2019.) $)
    znlidl $p |- ( N e. ZZ -> ( S ` { N } ) e. ( LIdeal ` ZZring ) ) $=
      ( cz wcel zring crg csn wss cfv clidl zringring snssi zringbas eqid rspcl
      sylancr ) BDEFGEBHZDIRAJFKJZELBDMDFSRACNSOPQ $.

    znval.u $e |- U = ( ZZring /s ( ZZring ~QG ( S ` { N } ) ) ) $.
    $( The value of the ` Z/nZ ` structure.  It is defined as the quotient ring
       ` ZZ / n ZZ ` , with an "artificial" ordering added to make it a
       ` Toset ` .  (In other words, ` Z/nZ ` is a _ring_ with an _order_ , but
       it is not an _ordered ring_ , which as a term implies that the order is
       compatible with the ring operations in some way.)  (Contributed by Mario
       Carneiro, 12-Jun-2015.)  (Revised by AV, 13-Jun-2019.) $)
    zncrng2 $p |- ( N e. ZZ -> U e. CRing ) $=
      ( cz wcel zring ccrg csn cfv clidl zringcrng znlidl eqid quscrng sylancr
      ) CFGHIGCJAKZHLKZGBIGMACDNHRBSESOPQ $.

    znval.y $e |- Y = ( Z/nZ ` N ) $.
    znval.f $e |- F = ( ( ZRHom ` U ) |` W ) $.
    znval.w $e |- W = if ( N = 0 , ZZ , ( 0 ..^ N ) ) $.
    ${
      znval.l $e |- .<_ = ( ( F o. <_ ) o. `' F ) $.
      $( The value of the ` Z/nZ ` structure.  It is defined as the quotient
         ring ` ZZ / n ZZ ` , with an "artificial" ordering added to make it a
         ` Toset ` .  (In other words, ` Z/nZ ` is a _ring_ with an _order_ ,
         but it is not an _ordered ring_ , which as a term implies that the
         order is compatible with the ring operations in some way.)
         (Contributed by Mario Carneiro, 14-Jun-2015.)  (Revised by Mario
         Carneiro, 2-May-2016.)  (Revised by AV, 13-Jun-2019.) $)
      znval $p |- ( N e. NN0 -> Y = ( U sSet <. ( le ` ndx ) , .<_ >. ) ) $=
        ( vz cfv co zring cc0 wceq syl6eqr vn vs cn0 wcel czn cnx cple cop csts
        vf csn crsp cqg cqus czrh cfzo cif cres cle ccom ccnv csb crg zringring
        cv cz a1i wa cvv ovexd id simpr fveq2d simpl sneqd fveq12d oveq12d fvex
        resex simpll eqeq1d oveq2d ifbieq2d coeq1d cnveqd coeq12d csbied opeq2d
        sylan9eqr reseq12d df-zn ovex fvmpt syl5eq ) EUCUDGEUEOBUFUGOZDUHZUIPZJ
        UAENQUBNVEZWRUAVEZUKZWRULOZOZUMPZUNPZUBVEZWOUJXEUOOZWSRSZVFRWSUPPZUQZUR
        ZUJVEZUSUTZXKVAZUTZVBZUHZUIPZVBZVBWQUCUEWSESZNQXRWQVCQVCUDXSVDVGXSWRQSZ
        VHZUBXDXQWQVIYAWRXCUNVJYAXEXDSZVHZXEBXPWPUIYBYAXEXDBYBVKYAXDQQEUKZAOZUM
        PZUNPBYAWRQXCYFUNXSXTVLZYAWRQXBYEUMYGYAWTYDXAAYAXAQULOAYAWRQULYGVMHTYAW
        SEXSXTVNVOVPVQVQITWIZYCXODWOYCUJXJXNDVIXJVIUDYCXFXIXEUOVRVSVGYCXKXJSZVH
        ZXNCUSUTZCVAZUTDYJXLYKXMYLYJXKCUSYIYCXKXJCYIVKYCXJBUOOZFURCYCXFYMXIFYCX
        EBUOYHVMYCXIERSZVFREUPPZUQFYCXGYNXHYOVFYCWSERXSXTYBVTZWAYCWSERUPYPWBWCL
        TWJKTWIZWDYJXKCYQWEWFMTWGWHVQWGWGNUJUAUBWKBWPUIWLWMWN $.
    $}

    znle.l $e |- .<_ = ( le ` Y ) $.
    $( The value of the ` Z/nZ ` structure.  It is defined as the quotient ring
       ` ZZ / n ZZ ` , with an "artificial" ordering added to make it a
       ` Toset ` .  (In other words, ` Z/nZ ` is a _ring_ with an _order_ , but
       it is not an _ordered ring_ , which as a term implies that the order is
       compatible with the ring operations in some way.)  (Contributed by Mario
       Carneiro, 14-Jun-2015.)  (Revised by AV, 13-Jun-2019.) $)
    znle $p |- ( N e. NN0 -> .<_ = ( ( F o. <_ ) o. `' F ) ) $=
      ( wcel cple cfv cle co cvv cxr cn0 cnx ccom ccnv cop csts eqid znval wceq
      fveq2d zring csn cqg cqus ovex eqeltri czrh cres fvex resex cxp xrex xpex
      lerelxr ssexi coex cnvex pleid setsid mp2an 3eqtr4g ) EUANZGOPBUBOPCQUCZC
      UDZUCZUEUFRZOPZDVOVLGVPOABCVOEFGHIJKLVOUGUHUJMBSNVOSNVOVQUIBUKUKEULAPUMRZ
      UNRSIUKVRUNUOUPVMVNCQCBUQPZFURSKVSFBUQUSUTUPZQTTVATTVBVBVCVDVEVFCVTVGVFSV
      OOSBVHVIVJVK $.
  $}

  ${
    $d x E $.  $d x K $.  $d x y N $.  $d x y U $.  $d x y Y $.
    znval2.s $e |- S = ( RSpan ` ZZring ) $.
    znval2.u $e |- U = ( ZZring /s ( ZZring ~QG ( S ` { N } ) ) ) $.
    znval2.y $e |- Y = ( Z/nZ ` N ) $.
    ${
      znval2.l $e |- .<_ = ( le ` Y ) $.
      $( Self-referential expression for the ` Z/nZ ` structure.  (Contributed
         by Mario Carneiro, 14-Jun-2015.)  (Revised by AV, 13-Jun-2019.) $)
      znval2 $p |- ( N e. NN0 -> Y = ( U sSet <. ( le ` ndx ) , .<_ >. ) ) $=
        ( cn0 wcel cnx cple cfv cc0 co ccom cop csts eqid czrh wceq cz cfzo cif
        cres cle ccnv znval znle opeq2d oveq2d eqtr4d ) DJKZEBLMNZBUANDOUBUCODU
        DPUEZUFZUGQUQUHQZRZSPBUOCRZSPABUQURDUPEFGHUQTZUPTZURTUIUNUTUSBSUNCURUOA
        BUQCDUPEFGHVAVBIUJUKULUM $.
    $}

    ${
      znbaslem.e $e |- E = Slot K $.
      znbaslem.k $e |- K e. NN $.
      znbaslem.l $e |- K < ; 1 0 $.
      $( Lemma for ~ znbas .  (Contributed by Mario Carneiro, 14-Jun-2015.)
         (Revised by Mario Carneiro, 14-Aug-2015.)  (Revised by AV,
         13-Jun-2019.)  (Revised by AV, 9-Sep-2021.) $)
      znbaslem $p |- ( N e. NN0 -> ( E ` U ) = ( E ` Y ) ) $=
        ( cn0 wcel cfv cnx cple cop csts wne co eqid znval2 fveq2d ndxid c1 cc0
        cdc nnrei ltneii ndxarg plendx neeq12i mpbir setsnid syl6reqr ) EMNZFCO
        BPQOZFQOZRSUAZCOBCOUQFUTCABUSEFGHIUSUBUCUDUSURCBCDJKUEPCOZURTDUFUGUHZTD
        VBDKUILUJVADURVBCDJKUKULUMUNUOUP $.
    $}

    ${
      znbaslemOLD.e $e |- E = Slot K $.
      znbaslemOLD.k $e |- K e. NN $.
      znbaslemOLD.l $e |- K < 10 $.
      $( Obsolete version of ~ znbaslem as of 28-Apr-2021.  (Contributed by
         Mario Carneiro, 14-Jun-2015.)  (Proof modification is discouraged.)
         (New usage is discouraged.) $)
      znbaslemOLD $p |- ( N e. NN0 -> ( E ` U ) = ( E ` Y ) ) $=
        ( cn0 wcel cfv cnx cple cop wne c10 csts eqid znval2 fveq2d ndxid nnrei
        co ltneii ndxarg plendxOLD neeq12i mpbir setsnid syl6reqr ) EMNZFCOBPQO
        ZFQOZRUAUGZCOBCOUOFURCABUQEFGHIUQUBUCUDUQUPCBCDJKUEPCOZUPSDTSDTDKUFLUHU
        SDUPTCDJKUIUJUKULUMUN $.
    $}

    $( The base set of ` Z/nZ ` is the same as the quotient ring it is based
       on.  (Contributed by Mario Carneiro, 15-Jun-2015.)  (Revised by AV,
       13-Jun-2019.) $)
    znbas2 $p |- ( N e. NN0 -> ( Base ` U ) = ( Base ` Y ) ) $=
      ( cbs c1 df-base 1nn 1lt10 znbaslem ) ABHICDEFGJKLM $.

    $( The additive structure of ` Z/nZ ` is the same as the quotient ring it
       is based on.  (Contributed by Mario Carneiro, 15-Jun-2015.)  (Revised by
       AV, 13-Jun-2019.) $)
    znadd $p |- ( N e. NN0 -> ( +g ` U ) = ( +g ` Y ) ) $=
      ( cplusg c2 df-plusg 2nn 2lt10 znbaslem ) ABHICDEFGJKLM $.

    $( The multiplicative structure of ` Z/nZ ` is the same as the quotient
       ring it is based on.  (Contributed by Mario Carneiro, 15-Jun-2015.)
       (Revised by AV, 13-Jun-2019.) $)
    znmul $p |- ( N e. NN0 -> ( .r ` U ) = ( .r ` Y ) ) $=
      ( cmulr c3 df-mulr 3nn 3lt10 znbaslem ) ABHICDEFGJKLM $.

    $( The ` ZZ ` ring homomorphism of ` Z/nZ ` is inherited from the quotient
       ring it is based on.  (Contributed by Mario Carneiro, 14-Jun-2015.)
       (Revised by AV, 13-Jun-2019.) $)
    znzrh $p |- ( N e. NN0 -> ( ZRHom ` U ) = ( ZRHom ` Y ) ) $=
      ( vx vy cn0 wcel cbs cfv eqidd znbas2 cv wa cplusg oveqdr cmulr zrhpropd
      znadd znmul ) CJKZHIBLMZBDUDUENABCDEFGOUDHPUEKIPUEKQZHIBRMDRMABCDEFGUBSUD
      UFHIBTMDTMABCDEFGUCSUA $.
  $}

  ${
    znbas.s $e |- S = ( RSpan ` ZZring ) $.
    znbas.y $e |- Y = ( Z/nZ ` N ) $.
    znbas.r $e |- R = ( ZZring ~QG ( S ` { N } ) ) $.
    $( The base set of ` Z/nZ ` structure.  (Contributed by Mario Carneiro,
       15-Jun-2015.)  (Revised by AV, 13-Jun-2019.) $)
    znbas $p |- ( N e. NN0 -> ( ZZ /. R ) = ( Base ` Y ) ) $=
      ( cn0 wcel cz cqs zring cqus co cbs cfv cvv crg a1i cqg wceq zringbas csn
      eqidd ovex eqeltri zringring qusbas oveq2i znbas2 eqtrd ) CHIZJAKLAMNZOPD
      OPULALUMJQRULUMUDJLOPUAULUBSAQIULALCUCBPZTNZQGLUNTUEUFSLRIULUGSUHBUMCDEAU
      OLMGUIFUJUK $.
  $}

  ${
    $d x y N $.  $d x y Y $.
    zncrng.y $e |- Y = ( Z/nZ ` N ) $.
    $( ` Z/nZ ` is a commutative ring.  (Contributed by Mario Carneiro,
       15-Jun-2015.) $)
    zncrng $p |- ( N e. NN0 -> Y e. CRing ) $=
      ( vx vy cn0 wcel zring csn crsp cfv cqg co cqus ccrg eqid cv cplusg cmulr
      oveqdr cz nn0z zncrng2 syl cbs eqidd znbas2 znadd znmul crngpropd mpbid
      wa ) AFGZHHAIHJKZKLMNMZOGZBOGUMAUAGUPAUBUNUOAUNPZUOPZUCUDUMDEUOUEKZUOBUMU
      SUFUNUOABUQURCUGUMDQUSGEQUSGULZDEUORKBRKUNUOABUQURCUHTUMUTDEUOSKBSKUNUOAB
      UQURCUITUJUK $.
  $}

  ${
    $d x A $.  $d x N $.  $d x .~ $.  $d x S $.
    znzrh2.s $e |- S = ( RSpan ` ZZring ) $.
    znzrh2.r $e |- .~ = ( ZZring ~QG ( S ` { N } ) ) $.
    znzrh2.y $e |- Y = ( Z/nZ ` N ) $.
    znzrh2.2 $e |- L = ( ZRHom ` Y ) $.
    $( The ` ZZ ` ring homomorphism maps elements to their equivalence classes.
       (Contributed by Mario Carneiro, 15-Jun-2015.)  (Revised by AV,
       13-Jun-2019.) $)
    znzrh2 $p |- ( N e. NN0 -> L = ( x e. ZZ |-> [ x ] .~ ) ) $=
      ( wcel czrh cfv cz cec zring cqus co wceq crg cn0 cv cmpt clidl zringring
      crh csn nn0z znlidl syl cqg oveq2i ccrg c2idl zringcrng crng2idl zringbas
      eqid ax-mp eceq2 mpteq2i qusrhm sylancr wb zncrng2 crngring zrhrhmb mpbid
      4syl znzrh eqtr2d syl5eq ) EUAKZDFLMZANAUBZBOZUCZJVMVQPBQRZLMZVNVMVQPVRUF
      RKZVQVSSZVMPTKEUGCMZPUDMZKZVTUEVMENKZWDEUHZCEGUIUJAPWBVRVQWCNBPWBUKRZPQHU
      LZPUMKWCPUNMSUOPWCWCURUPUSUQANVPVOWGOZBWGSVPWISHBWGVOUTUSVAVBVCVMWEVRUMKV
      RTKVTWAVDWFCVREGWHVEVRVFVRVQVSVSURVGVIVHCVREFGWHIVJVKVL $.

    $( The ` ZZ ` ring homomorphism maps elements to their equivalence classes.
       (Contributed by Mario Carneiro, 15-Jun-2015.)  (Revised by AV,
       13-Jun-2019.) $)
    znzrhval $p |- ( ( N e. NN0 /\ A e. ZZ ) -> ( L ` A ) = [ A ] .~ ) $=
      ( vx cn0 wcel cz cfv cv cec cvv zring cqg cmpt znzrh2 fveq1d eceq1 csn co
      eqid ovex eqeltri ecexg ax-mp fvmpt sylan9eq ) ELMZANMADOAKNKPZBQZUAZOABQ
      ZUNADUQKBCDEFGHIJUBUCKAUPURNUQUOABUDUQUGBRMURRMBSEUECOZTUFRHSUSTUHUIARBUJ
      UKULUM $.
  $}

  ${
    $d x N $.
    znzrhfo.y $e |- Y = ( Z/nZ ` N ) $.
    znzrhfo.b $e |- B = ( Base ` Y ) $.
    znzrhfo.2 $e |- L = ( ZRHom ` Y ) $.
    $( The ` ZZ ` ring homomorphism is a surjection onto ` ZZ / n ZZ ` .
       (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    znzrhfo $p |- ( N e. NN0 -> L : ZZ -onto-> B ) $=
      ( vx wcel cz wfo zring cfv cqg co crg cbs wceq a1i eqid cn0 csn crsp cmpt
      cv cec cqs cqus eqidd zringbas ovexd zringring quslem znbas syl6eqr foeq3
      cvv wb syl mpbid znzrh2 foeq1 mpbird ) CUAIZJABKZJAHJHUELCUBLUCMZMZNOZUFU
      DZKZVDJJVHUGZVIKZVJVDHVHLLVHUHOZVIJUQPVDVMUIJLQMRVDUJSVITVDLVGNUKLPIVDULS
      UMVDVKARVLVJURVDVKDQMAVHVFCDVFTZEVHTZUNFUOVKAJVIUPUSUTVDBVIRVEVJURHVHVFBC
      DVNVOEGVAJABVIVBUSVC $.
  $}

  ${
    $d x A $.  $d x B $.  $d x N $.  $d n x Y $.
    zncyg.y $e |- Y = ( Z/nZ ` N ) $.
    $( The group ` ZZ / n ZZ ` is cyclic for all ` n ` (including ` n = 0 ` ).
       (Contributed by Mario Carneiro, 21-Apr-2016.) $)
    zncyg $p |- ( N e. NN0 -> Y e. CycGrp ) $=
      ( vn vx cn0 wcel cgrp cz cv cmg cfv co cmpt crn cbs wceq syl eqid rneqd
      wrex ccyg crg ccrg crngring ringgrp cur ringidcl czrh zrhval2 wfo znzrhfo
      zncrng forn eqtr3d oveq2 mpteq2dv eqeq1d rspcev syl2anc iscyg sylanbrc )
      AFGZBHGZDIDJZEJZBKLZMZNZOZBPLZQZEVKUAZBUBGVCBUCGZVDVCBUDGVNABCUMBUERZBUFR
      VCBUGLZVKGZDIVEVPVGMZNZOZVKQZVMVCVNVQVOVKBVPVKSZVPSZUHRVCBUILZOZVTVKVCWDV
      SVCVNWDVSQVOBVGVPDWDWDSZVGSZWCUJRTVCIVKWDUKWEVKQVKWDABCWBWFULIVKWDUNRUOVL
      WAEVPVKVFVPQZVJVTVKWHVIVSWHDIVHVRVFVPVEVGUPUQTURUSUTEVKVGDBWBWGVAVB $.

    zndvds.2 $e |- L = ( ZRHom ` Y ) $.
    $( Express equality of equivalence classes in ` ZZ / n ZZ ` in terms of
       divisibility.  (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    zndvds $p |- ( ( N e. NN0 /\ A e. ZZ /\ B e. ZZ ) ->
      ( ( L ` A ) = ( L ` B ) <-> N || ( A - B ) ) ) $=
      ( vx cfv wceq wcel cz cmin co cdvds zring eqid zringbas sylancr ccnfld wb
      cn0 w3a wbr eqcom csn crsp cqg cec znzrhval 3adant2 3adant3 eqeq12d csubg
      wer crg clidl zringring wss 3ad2ant1 snssd rspcl lidlsubg eqger syl simp3
      nn0z erth csg cabl zringabl lidlss eqgabl wa jca biantrurd df-3an syl6bbr
      simp2 cab csubrg zsubrg subrgsubg mp1i cnfldsub df-zring subgsub syld3an1
      cv eqcomd dvdsrzring rspsn eleq12d ovex breq2 elab syl6bb 3bitr2d syl5bb
      ) ACIZBCIZJXAWTJZDUBKZALKZBLKZUCZDABMNZOUDZWTXAUEXFXBBPDUFZPUGIZIZUHNZUIZ
      AXLUIZJBAXLUDZXHXFXAXMWTXNXCXEXAXMJXDBXLXJCDEXJQZXLQZFGUJUKXCXDWTXNJXEAXL
      XJCDEXPXQFGUJULUMXFBAXLLXFXKPUNIKZLXLUOXFPUPKZXKPUQIZKZXRURXFXSXILUSYAURX
      FDLXCXDDLKZXEDVGUTZVALPXTXIXJXPRXTQZVBSZPXTXKYDVCSXLPLXKRXQVDVEXCXDXEVFZV
      HXFXOXEXDABPVIIZNZXKKZUCZYIXHXFPVJKXKLUSZXOYJUAVKXFYAYKYELXKXTPRYDVLVEBAX
      LXKPYGLRYGQZXQVMSXFYIXEXDVNZYIVNYJXFYMYIXFXEXDYFXCXDXEVSVOVPXEXDYIVQVRXFY
      IXGDHWIZOUDZHVTZKXHXFYHXGXKYPXFXGYHLTUNIKZXDXCXEXGYHJLTWAIKYQXFWBLTWCWDLT
      PMYGABWEWFYLWGWHWJXFXSYBXKYPJURYCHLOPDXJRXPWKWLSWMYOXHHXGABMWNYNXGDOWOWPW
      QWRWRWS $.

    zndvds0.3 $e |- .0. = ( 0g ` Y ) $.
    $( Special case of ~ zndvds when one argument is zero.  (Contributed by
       Mario Carneiro, 15-Jun-2015.) $)
    zndvds0 $p |- ( ( N e. NN0 /\ A e. ZZ ) ->
        ( ( L ` A ) = .0. <-> N || A ) ) $=
      ( cn0 wcel cz wa cfv cc0 wceq co cdvds wbr zring 3syl wb 0z zndvds mp3an3
      cmin crh cghm ccrg crg zncrng adantr crngring zrhrhm rhmghm zring0 eqeq2d
      ghmid simpr zcnd subid1d breq2d 3bitr3d ) CIJZAKJZLZABMZNBMZOZCANUEPZQRZV
      FEOCAQRVCVDNKJVHVJUAUBANBCDFGUCUDVEVGEVFVEBSDUFPJZBSDUGPJVGEOVEDUHJZDUIJV
      KVCVLVDCDFUJUKDULDBGUMTSDBUNSDBNEUOHUQTUPVEVIACQVEAVEAVCVDURUSUTVAVB $.
  $}

  ${
    $d x y B $.  $d x y z F $.  $d x y z N $.  $d x y z W $.  $d x y z Y $.
    znf1o.y $e |- Y = ( Z/nZ ` N ) $.
    znf1o.b $e |- B = ( Base ` Y ) $.
    znf1o.f $e |- F = ( ( ZRHom ` Y ) |` W ) $.
    znf1o.w $e |- W = if ( N = 0 , ZZ , ( 0 ..^ N ) ) $.
    $( The function ` F ` enumerates all equivalence classes in ` Z/nZ ` for
       each ` n ` .  When ` n = 0 ` , ` ZZ / 0 ZZ = ZZ / { 0 } ~~ ZZ ` so we
       let ` W = ZZ ` ; otherwise ` W = { 0 , ... , n - 1 } ` enumerates all
       the equivalence classes.  (Contributed by Mario Carneiro, 15-Jun-2015.)
       (Revised by Mario Carneiro, 2-May-2016.)  (Revised by AV,
       13-Jun-2019.) $)
    znf1o $p |- ( N e. NN0 -> F : W -1-1-onto-> B ) $=
      ( vx vy wcel cfv wceq cz co cc0 wa wbr wb vz cn0 wf1 wfo wf1o wf weq wral
      cv wi czrh cres wss ccrg crg zring crh zncrng crngring eqid zringbas rhmf
      zrhrhm 4syl cfzo sseq1 ssid elfzoelz ssriv keephyp eqsstri fssres sylancl
      cif feq1i sylibr cmin cdvds fveq1i fvres ad2antrl syl5eq ad2antll eqeq12d
      simpl simprl sseldi simprr zndvds syl3anc cn wo elnn0 cmo moddvds crp cle
      cr clt zred nnrp adantr wne nnne0 ifnefalse syl eleqtrd elfzole1 elfzolt2
      modid syl22anc bitr3d breq1d id 0nn0 syl6eqel sylan zsubcld zcnd subeq0ad
      0dvds 3bitrd jaoian sylanb biimpd ralrimivva sylanbrc wrex zmodfzo ancoms
      dff13 crn eleqtrrd zre mpbid mpbird fveq2 eqeq2d rspcev syl2anc syl6eleqr
      modabs2 syl2anr simpr nnnn0 eqcomd iftrue biimpar eqidd rexbiia ralrimiva
      eleq2d znzrhfo fofn eqeq1 rexbidv ralrn 3syl forn raleqdv dffo3 df-f1o
      wfn ) CUBLZDABUCZDABUDZDABUEUVDDABUFZJUIZBMZKUIZBMZNZJKUGZUJZKDUHJDUHUVEU
      VDDAEUKMZDULZUFZUVGUVDOAUVOUFZDOUMUVQUVDEUNLEUOLUVOUPEUQPLUVRCEFUREUSEUVO
      UVOUTZVCOAUPEUVOVAGVBVDDCQNZOQCVEPZVNZOIUVTOOUMUWAOUMUWBOUMOUWAOUWBOVFUWA
      UWBOVFOVGJUWAOUVHQCVHVIZVJVKZOADUVOVLVMDABUVPHVOVPZUVDUVNJKDDUVDUVHDLZUVJ
      DLZRZRZUVLUVMUWIUVLUVHUVOMZUVJUVOMZNZCUVHUVJVQPZVRSZUVMUWIUVIUWJUVKUWKUWI
      UVIUVHUVPMZUWJUVHBUVPHVSUWFUWOUWJNUVDUWGUVHDUVOVTWAWBUWIUVKUVJUVPMZUWKUVJ
      BUVPHVSZUWGUWPUWKNUVDUWFUVJDUVOVTZWCWBWDUWIUVDUVHOLZUVJOLZUWLUWNTUVDUWHWE
      UWIDOUVHUWDUVDUWFUWGWFWGZUWIDOUVJUWDUVDUWFUWGWHWGZUVHUVJUVOCEFUVSWIWJUVDC
      WKLZUVTWLZUWHUWNUVMTZCWMZUXCUWHUXEUVTUXCUWHRZUVHCWNPZUVJCWNPZNZUWNUVMUXGU
      XCUWSUWTUXJUWNTUXCUWHWEUXGDOUVHUWDUXCUWFUWGWFZWGZUXGDOUVJUWDUXCUWFUWGWHZW
      GZUVHUVJCWOWJUXGUXHUVHUXIUVJUXGUVHWRLCWPLZQUVHWQSZUVHCWSSZUXHUVHNUXGUVHUX
      LWTUXCUXOUWHCXAZXBZUXGUVHUWALZUXPUXGUVHDUWAUXKUXCDUWANZUWHUXCDUWBUWAIUXCC
      QXCUWBUWANCXDCQOUWAXEXFWBZXBZXGZUVHQCXHXFUXGUXTUXQUYDUVHQCXIXFUVHCXJXKUXG
      UVJWRLUXOQUVJWQSZUVJCWSSZUXIUVJNUXGUVJUXNWTUXSUXGUVJUWALZUYEUXGUVJDUWAUXM
      UYCXGZUVJQCXHXFUXGUYGUYFUYHUVJQCXIXFUVJCXJXKWDXLUVTUWHRZUWNQUWMVRSZUWMQNZ
      UVMUYICQUWMVRUVTUWHWEXMUYIUWMOLUYJUYKTUYIUVHUVJUVTUVDUWHUWSUVTCQUBUVTXNXO
      XPZUXAXQZUVTUVDUWHUWTUYLUXBXQZXRUWMYAXFUYIUVHUVJUYIUVHUYMXSUYIUVJUYNXSXTY
      BYCYDYBYEYFJKDABYKYGUVDUVGUVHUVKNZKDYHZJAUHZUVFUWEUVDUYPJUVOYLZUHZUYQUVDU
      YSUAUIZUVOMZUVKNZKDYHZUAOUHZUVDVUCUAOUVDUYTOLZRVUAUWKNZKDYHZVUCUVDUXDVUEV
      UGUXFUXCVUEVUGUVTUXCVUERZUYTCWNPZDLVUAVUIUVOMZNZVUGVUHVUIUWADVUEUXCVUIUWA
      LUYTCYIYJZUXCUYAVUEUYBXBYMVUHVUJVUAVUHVUJVUANZCVUIUYTVQPVRSZVUHVUICWNPVUI
      NZVUNVUEUYTWRLUXOVUOUXCUYTYNUXRUYTCUUBUUCVUHUXCVUIOLZVUEVUOVUNTUXCVUEWEVU
      HUWAOVUIUWCVULWGZUXCVUEUUDZVUIUYTCWOWJYOVUHUVDVUPVUEVUMVUNTUXCUVDVUECUUEX
      BVUQVURVUIUYTUVOCEFUVSWIWJYPUUFVUFVUKKVUIDUVJVUINUWKVUJVUAUVJVUIUVOYQYRYS
      YTUVTVUERZUYTDLVUAVUANZVUGVUSUYTUWBDUVTUYTUWBLVUEUVTUWBOUYTUVTOUWAUUGUULU
      UHIUUAVUSVUAUUIVUFVUTKUYTDKUAUGUWKVUAVUAUVJUYTUVOYQYRYSYTYCYDVUBVUFKDUWGU
      VKUWKVUAUWGUVKUWPUWKUWQUWRWBYRUUJVPUUKUVDOAUVOUDZUVOOUVCUYSVUDTAUVOCEFGUV
      SUUMZOAUVOUUNUYPVUCJUAOUVOUVHVUANUYOVUBKDUVHVUAUVKUUOUUPUUQUURYPUVDUYPJUY
      RAUVDVVAUYRANVVBOAUVOUUSXFUUTYOKJDABUVAYGDABUVBYG $.
  $}

  ${
    zzngim.y $e |- Y = ( Z/nZ ` 0 ) $.
    zzngim.2 $e |- L = ( ZRHom ` Y ) $.
    $( The ` ZZ ` ring homomorphism is an isomorphism for ` N = 0 ` .  (We only
       show group isomorphism here, but ring isomorphism follows, since it is a
       bijective ring homomorphism.)  (Contributed by Mario Carneiro,
       21-Apr-2016.)  (Revised by AV, 13-Jun-2019.) $)
    zzngim $p |- L e. ( ZZring GrpIso Y ) $=
      ( zring cgim co wcel cghm cbs cfv wf1o cc0 0nn0 mp2b eqid cres wceq ax-mp
      cz crg crh cn0 ccrg zncrng crngring zrhrhm rhmghm wfo wfn znzrhfo fnresdm
      czrh fofn reseq1i eqtr3i cif iftruei eqcomi znf1o zringbas isgim mpbir2an
      cfzo ) AEBFGHAEBIGHZTBJKZALZBUAHZAEBUBGHVEMUCHZBUDHVHNMBCUEBUFOBADUGEBAUH
      OVIVGNVFAMTBCVFPZATQZABUMKZTQTVFAUIZATUJVKARVIVMNVFAMBCVJDUKSTVFAUNTAULOA
      VLTDUOUPMMRZTMMVDGZUQTVNTVOMPURUSUTSTVFEBAVAVJVBVC $.
  $}

  ${
    $d x y .<_ $.  $d x A $.  $d x y z N $.  $d x y z X $.  $d x y z Y $.
    $d x B $.  $d x F $.
    znle2.y $e |- Y = ( Z/nZ ` N ) $.
    znle2.f $e |- F = ( ( ZRHom ` Y ) |` W ) $.
    znle2.w $e |- W = if ( N = 0 , ZZ , ( 0 ..^ N ) ) $.
    znle2.l $e |- .<_ = ( le ` Y ) $.
    $( The ordering of the ` Z/nZ ` structure.  (Contributed by Mario Carneiro,
       15-Jun-2015.)  (Revised by AV, 13-Jun-2019.) $)
    znle2 $p |- ( N e. NN0 -> .<_ = ( ( F o. <_ ) o. `' F ) ) $=
      ( cn0 wcel zring cfv co czrh cres cle ccom ccnv eqid crsp cqus znle znzrh
      csn cqg reseq1d syl6eqr coeq1d cnveqd coeq12d eqtrd ) CJKZBLLCUELUAMZMUFN
      UBNZOMZDPZQRZUQSZRAQRZASZRUNUOUQBCDEUNTZUOTZFUQTHIUCUMURUTUSVAUMUQAQUMUQE
      OMZDPAUMUPVDDUNUOCEVBVCFUDUGGUHZUIUMUQAVEUJUKUL $.

    znleval.x $e |- X = ( Base ` Y ) $.
    $( The ordering of the ` Z/nZ ` structure.  (Contributed by Mario Carneiro,
       15-Jun-2015.)  (Revised by AV, 13-Jun-2019.) $)
    znleval $p |- ( N e. NN0 -> ( A .<_ B <-> ( A e. X /\ B e. X /\
        ( `' F ` A ) <_ ( `' F ` B ) ) ) ) $=
      ( vx wcel wbr wa cle wceq wb cn0 ccnv cfv w3a cxp ccom znle2 cdm crn wrel
      wss relco relssdmrn ax-mp dmcoss df-rn wf1o znf1o f1ofo forn 3syl syl5eqr
      wfo syl5sseq rncoss syl5ss xpss12 syl2anc eqsstrd brxp syl6ib pm4.71rd cv
      ssbrd wex adantr breqd brcog adantl eqcom wfn f1ocnv f1ofn simprl fnbrfvb
      syl5rbb anbi1d exbidv bitrd breq1 ceqsexv cvv simprr sylancr breq2 syl5bb
      fvex brcnvg sylancl ancom syl6bbr syl5bbr bitr4d 3bitrd pm5.32da df-3an
      vex ) EUAOZABDPZAGOZBGOZQZXIQZXJXKACUBZUCZBXNUCZRPZUDZXHXIXLXHXIABGGUEZPX
      LXHDXSABXHDCRUFZXNUFZXSCDEFHIJKLUGZXHYAYAUHZYAUIZUEZXSYAUJYAYEUKXTXNULYAU
      MUNXHYCGUKYDGUKYEXSUKXHXNUHZYCGXTXNUOXHYFCUIZGCUPXHFGCUQZFGCVCYGGSGCEFHIM
      JKURZFGCUSFGCUTVAZVBVDXHYDXTUIZGXTXNVEXHYGYKGCRVEYJVDVFYCGYDGVGVHVFVIVNAB
      GGVJVKVLXHXMXLXQQXRXHXLXIXQXHXLQZXIABYAPZNVMZXOSZYNBXTPZQZNVOZXQYLDYAABXH
      DYASXLYBVPVQYLYMAYNXNPZYPQZNVOZYRXLYMUUATXHNABXTXNGGVRVSYLYTYQNYLYSYOYPYO
      XOYNSZYLYSYNXOVTYLXNGWAZXJUUBYSTYLYHGFXNUQUUCXHYHXLYIVPFGCWBGFXNWCVAZXHXJ
      XKWDGAYNXNWEVHWFWGWHWIYRXOBXTPZYLXQYPUUENXOAXNWQZYNXOBXTWJWKYLUUEXOYNRPZY
      NBCPZQZNVOZXQYLXOWLOXKUUEUUJTUUFXHXJXKWMZNXOBCRWLGVRWNXQYNXPSZUUGQZNVOYLU
      UJUUGXQNXPBXNWQYNXPXORWOWKYLUUMUUINYLUUMUUHUUGQUUIYLUULUUHUUGYLUULBYNXNPZ
      UUHUULXPYNSZYLUUNYNXPVTYLUUCXKUUOUUNTUUDUUKGBYNXNWEVHWPYLXKYNWLOUUNUUHTUU
      KNXGBYNGWLCWRWSWIWGUUGUUHWTXAWHXBXCWPXDXEXJXKXQXFXAWI $.

    $( The ordering of the ` Z/nZ ` structure.  (Contributed by Mario Carneiro,
       15-Jun-2015.)  (Revised by AV, 13-Jun-2019.) $)
    znleval2 $p |- ( ( N e. NN0 /\ A e. X /\ B e. X ) ->
        ( A .<_ B <-> ( `' F ` A ) <_ ( `' F ` B ) ) ) $=
      ( cn0 wcel w3a wbr ccnv cfv wa cle znleval 3ad2ant1 3simpc df-3an syl6bbr
      wb biantrurd bitr4d ) ENOZAGOZBGOZPZABDQZUKULACRZSBUOSUAQZPZUPUJUKUNUQUGU
      LABCDEFGHIJKLMUBUCUMUPUKULTZUPTUQUMURUPUJUKULUDUHUKULUPUEUFUI $.

    $( Lemma for ~ zntos .  (Contributed by Mario Carneiro, 15-Jun-2015.)
       (Revised by AV, 13-Jun-2019.) $)
    zntoslem $p |- ( N e. NN0 -> Y e. Toset ) $=
      ( vx vy wcel wbr cfv wa cr cz wb vz cn0 cpo cv wral ctos cvv fvex eqeltri
      wo czn a1i cbs wceq cple ccnv cle wss wf1o znf1o f1ocnv syl f1of cc0 cfzo
      wf co cif sseq1 ssid elfzoelz ssriv keephyp eqsstri zssre sstri ffvelrnda
      fss sylancl leidd znleval2 3anidm23 mpbird 3com23 anbi12d 3adant3 3adant2
      w3a letri3d f1of1 f1fveq sylan 3impb biimpd 3ad2antr1 3ad2antr2 3ad2antr3
      wf1 3bitr2d wi letr syl3anc 3adant3r3 3adant3r1 3adant3r2 3imtr4d orbi12d
      isposd letrid 3expb ralrimivva istos sylanbrc ) CUBNZFUCNLUDZMUDZBOZXPXOB
      OZUJZMEUELEUEFUFNXNLMUAEFBFUGNXNFCUKPUGGCUKUHUIULEFUMPUNXNKULBFUOPUNXNJUL
      XNXOENZQZXOXOBOZXOAUPZPZYDUQOZYAYDXNERXOYCXNEDYCVFZDRURERYCVFXNEDYCUSZYFX
      NDEAUSYGEACDFGKHIUTDEAVAVBZEDYCVCVBDSRDCVDUNZSVDCVEVGZVHZSIYISSURYJSURYKS
      URSYJSYKSVIYJYKSVISVJLYJSXOVDCVKVLVMVNVOVPEDRYCVRVSZVQZVTXNXTYBYETXOXOABC
      DEFGHIJKWAWBWCXNXTXPENZWHZXQXRQZXOXPUNZYOYPYDXPYCPZUQOZYRYDUQOZQYDYRUNZYQ
      YOXQYSXRYTXOXPABCDEFGHIJKWAZXNYNXTXRYTTXPXOABCDEFGHIJKWAWDZWEYOYDYRXNXTYD
      RNZYNYMWFZXNYNYRRNZXTXNERXPYCYLVQZWGZWIXNXTYNUUAYQTZXNEDYCWRZXTYNQUUIXNYG
      UUJYHEDYCWJVBEDXOXPYCWKWLWMWSWNXNXTYNUAUDZENZWHQZYSYRUUKYCPZUQOZQZYDUUNUQ
      OZXQXPUUKBOZQXOUUKBOZUUMUUDUUFUUNRNZUUPUUQWTXNYNXTUUDUULYMWOXNXTYNUUFUULU
      UGWPXNXTUULUUTYNXNERUUKYCYLVQWQYDYRUUNXAXBUUMXQYSUURUUOXNXTYNXQYSTUULUUBX
      CXNYNUULUURUUOTXTXPUUKABCDEFGHIJKWAXDWEXNXTUULUUSUUQTYNXOUUKABCDEFGHIJKWA
      XEXFXHXNXSLMEEXNXTYNXSYOXSYSYTUJYOYDYRUUEUUHXIYOXQYSXRYTUUBUUCXGWCXJXKLME
      FBKJXLXM $.
  $}

  ${
    $d w x y z N $.  $d w x y z Y $.
    zntos.y $e |- Y = ( Z/nZ ` N ) $.
    $( The ` Z/nZ ` structure is a totally ordered set.  (The order is not
       respected by the operations, except in the case ` N = 0 ` when it
       coincides with the ordering on ` ZZ ` .)  (Contributed by Mario
       Carneiro, 15-Jun-2015.) $)
    zntos $p |- ( N e. NN0 -> Y e. Toset ) $=
      ( czrh cfv cc0 wceq cz cfzo co cif cres cple cbs eqid zntoslem ) BDEAFGHF
      AIJKZLZBMEZAQBNEZBCROQOSOTOP $.

    ${
      znhash.1 $e |- B = ( Base ` Y ) $.
      $( The ` Z/nZ ` structure has ` n ` elements.  (Contributed by Mario
         Carneiro, 15-Jun-2015.) $)
      znhash $p |- ( N e. NN -> ( # ` B ) = N ) $=
        ( cn wcel chash cfv cc0 cfzo co czrh wceq cz wf1o cen wbr eqid syl cres
        cif cn0 nnnn0 znf1o wne wb nnne0 ifnefalse f1oeq2 3syl mpbid ovex f1oen
        ensym hasheni 4syl hashfzo0 eqtrd ) BFGZAHIZJBKLZHIZBUTVBACMIBJNOVBUBZU
        AZPZVBAQRAVBQRVAVCNUTVDAVEPZVFUTBUCGZVGBUDZAVEBVDCDEVESVDSUETUTBJUFVDVB
        NVGVFUGBUHBJOVBUIVDVBAVEUJUKULVBAVEJBKUMUNVBAUOAVBUPUQUTVHVCBNVIBURTUS
        $.

      $( The ` Z/nZ ` structure is a finite ring.  (Contributed by Mario
         Carneiro, 2-May-2016.) $)
      znfi $p |- ( N e. NN -> B e. Fin ) $=
        ( cn wcel chash cfv cn0 cfn znhash nnnn0 eqeltrd cvv wb eqeltri hashclb
        cbs fvex ax-mp sylibr ) BFGZAHIZJGZAKGZUCUDBJABCDELBMNAOGUFUEPACSIOECST
        QAORUAUB $.
    $}

    $( The ` Z/nZ ` structure is a finite field when ` n ` is prime.
       (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    znfld $p |- ( N e. Prime -> Y e. Field ) $=
      ( vx vy vz vw wcel syl cv cfv co wceq wo c2o wbr c2 wb wa cz cprime cidom
      cfield ccrg cdomn cn0 prmnn nnnn0 zncrng cnzr cmulr c0g cbs wral crg cdom
      cn crngring 4syl chash cle hash2 cuz prmuz2 eluzle eqid breqtrrd syl5eqbr
      wi znhash cfn cvv com 2onn nnfi ax-mp hashdom mp2an sylib isnzr2 sylanbrc
      fvex czrh wrex wfo znzrhfo foelrn anim12dan sylan reeanv cmul cdvds 3expb
      euclemma zring crh adantr zrhrhm simprl simprr zringbas zringmulr syl3anc
      rhmmul eqeq1d zmulcl zndvds0 syl2an bitr3d syl2anc orbi12d 3bitr4d biimpd
      oveq12 eqeq1 orbi1d orbi2d sylan9bb imbi12d syl5ibrcom rexlimdvva syl5bir
      imp syldan ralrimivva isdomn isidom znfi fiidomfld mpbid ) AUAHZBUBHZBUCH
      ZYKBUDHZBUEHZYLYKAUFHZYNYKAUQHZYPAUGZAUHZIZABCUIZIYKBUJHZDJZEJZBUKKZLZBUL
      KZMZUUCUUGMZUUDUUGMZNZVIZEBUMKZUNDUUMUNYOYKBUOHZOUUMUPPZUUBYKYQYPYNUUNYRY
      SUUABURUSZYKOUTKZUUMUTKZVAPZUUOYKUUQQUURVAVBYKQAUURVAYKAQVCKHQAVAPAVDQAVE
      IYKYQUURAMYRUUMABCUUMVFZVJIVGVHOVKHZUUMVLHUUSUUOROVMHUVAVNOVOVPBUMWBOUUMV
      LVQVRVSUUMBUUTVTWAYKUULDEUUMUUMYKUUCUUMHZUUDUUMHZSZUUCFJZBWCKZKZMZFTWDZUU
      DGJZUVFKZMZGTWDZSZUULYKTUUMUVFWEZUVDUVNYKYPUVOYTUUMUVFABCUUTUVFVFZWFIUVOU
      VBUVIUVCUVMFTUUMUUCUVFWGGTUUMUUDUVFWGWHWIYKUVNUULUVNUVHUVLSZGTWDFTWDYKUUL
      UVHUVLFGTTWJYKUVQUULFGTTYKUVETHZUVJTHZSZSZUULUVQUVGUVKUUELZUUGMZUVGUUGMZU
      VKUUGMZNZVIUWAUWCUWFUWAAUVEUVJWKLZWLPZAUVEWLPZAUVJWLPZNZUWCUWFYKUVRUVSUWH
      UWKRAUVEUVJWNWMUWAUWGUVFKZUUGMZUWCUWHUWAUWLUWBUUGUWAUVFWOBWPLHZUVRUVSUWLU
      WBMUWAUUNUWNYKUUNUVTUUPWQBUVFUVPWRIYKUVRUVSWSZYKUVRUVSWTZUVEUVJWOBWKUUEUV
      FTXAXBUUEVFZXDXCXEYKYPUWGTHUWMUWHRUVTYTUVEUVJXFUWGUVFABUUGCUVPUUGVFZXGXHX
      IUWAUWDUWIUWEUWJUWAYPUVRUWDUWIRYKYPUVTYTWQZUWOUVEUVFABUUGCUVPUWRXGXJUWAYP
      UVSUWEUWJRUWSUWPUVJUVFABUUGCUVPUWRXGXJXKXLXMUVQUUHUWCUUKUWFUVQUUFUWBUUGUU
      CUVGUUDUVKUUEXNXEUVHUUKUWDUUJNUVLUWFUVHUUIUWDUUJUUCUVGUUGXOXPUVLUUJUWEUWD
      UUDUVKUUGXOXQXRXSXTYAYBYCYDYEDEUUMBUUEUUGUUTUWQUWRYFWABYGWAYKUUMVKHZYLYMR
      YKYQUWTYRUUMABCUUTYHIUUMBUUTYIIYJ $.

    $( The ` Z/nZ ` structure is a domain (and hence a field) precisely when
       ` n ` is prime.  (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    znidomb $p |- ( N e. NN -> ( Y e. IDomn <-> N e. Prime ) ) $=
      ( vx cn wcel c2 cfv wbr c1 wceq cz cle c2o syl wb ad2antrr ad2antrl cc0
      co cidom cprime wa cuz cv cdvds wo wi wral a1i nnz adantr cbs chash hash2
      2z cdom cnzr cdomn ccrg isidom simprbi domnnzr crg eqid isnzr2 adantl cfn
      cvv csn cpr df2o2 prfi eqeltri fvex hashdom mp2an sylibr syl5eqbrr znhash
      c0 breqtrd eluz2 syl3anbrc cdiv czrh c0g cmulr cmul cc wne nnne0 divcan1d
      nncn fveq2d crh ad2antlr domnring zrhrhm simprr dvdsval2 syl3anc zringbas
      zring mpbid zringmulr rhmmul iddvds cn0 zndvds0 syl2anc mpbird 3eqtr3d wf
      nnnn0 rhmf ffvelrnd domneq0 clt cr nnre nngt0 divgt0d elnnz sylanbrc 1red
      dvdsle 0lt1 lediv2 syl222anc nnle1eq1 div1d breq1d 3bitr3rd sylibd sylbid
      dvdseq expr syl21anc orim12d mpd ralrimiva isprm2 ex cfield znfld fldidom
      impbid1 ) AEFZBUAFZAUBFZUUIUUJUUKUUIUUJUCZAGUDHFZDUEZAUFIZUUNJKZUUNAKZUGZ
      UHZDEUIUUKUULGLFZALFZGAMIUUMUUTUULUPUJUUIUVAUUJAUKZULUULGBUMHZUNHZAMUULGN
      UNHZUVDMUOUULNUVCUQIZUVEUVDMIZUUJUVFUUIUUJBURFZUVFUUJBUSFZUVHUUJBUTFUVIBV
      AVBZBVCOUVHBVDFZUVFUVCBUVCVEZVFVBOVGNVHFUVCVIFUVGUVFPNWAWAVJZVKVHVLWAUVMV
      MVNBUMVONUVCVIVPVQVRVSUUIUVDAKUUJUVCABCUVLVTULWBGAWCWDUULUUSDEUULUUNEFZUU
      OUURUULUVNUUOUCZUCZAUUNWETZBWFHZHZBWGHZKZUUNUVRHZUVTKZUGZUURUVPUVSUWBBWHH
      ZTZUVTKZUWDUVPUVQUUNWITZUVRHZAUVRHZUWFUVTUVPUWHAUVRUVPAUUNUUIAWJFUUJUVOAW
      NQZUVNUUNWJFUULUUOUUNWNRUVNUUNSWKZUULUUOUUNWLRZWMWOUVPUVRXDBWPTFZUVQLFZUU
      NLFZUWIUWFKUVPUVKUWNUVPUVIUVKUUJUVIUUIUVOUVJWQZBWROBUVRUVRVEZWSOZUVPUUOUW
      OUULUVNUUOWTZUVPUWPUWLUVAUUOUWOPUVNUWPUULUUOUUNUKRZUWMUUIUVAUUJUVOUVBQZUU
      NAXAXBXEZUXAUVQUUNXDBWIUWEUVRLXCXFUWEVEZXGXBUVPUWJUVTKZAAUFIZUVPUVAUXFUXB
      AXHOUVPAXIFZUVAUXEUXFPUUIUXGUUJUVOAXOQZUXBAUVRABUVTCUWRUVTVEZXJXKXLXMUVPU
      VIUVSUVCFUWBUVCFUWGUWDPUWQUVPLUVCUVQUVRUVPUWNLUVCUVRXNUWSLUVCXDBUVRXCUVLX
      POZUXCXQUVPLUVCUUNUVRUXJUXAXQUVCBUWEUVSUWBUVTUVLUXDUXIXRXBXEUVPUWAUUPUWCU
      UQUVPUWAAUVQUFIZUUPUVPUXGUWOUWAUXKPUXHUXCUVQUVRABUVTCUWRUXIXJXKUVPUXKAUVQ
      MIZUUPUVPUVAUVQEFZUXKUXLUHUXBUVPUWOSUVQXSIUXMUXCUVPAUUNUUIAXTFZUUJUVOAYAQ
      ZUVNUUNXTFZUULUUOUUNYARZUUISAXSIZUUJUVOAYBQZUVNSUUNXSIZUULUUOUUNYBRZYCUVQ
      YDYEAUVQYGXKUVPUUNJMIZAJWETZUVQMIZUUPUXLUVPUXPUXTJXTFSJXSIZUXNUXRUYBUYDPU
      XQUYAUVPYFUYEUVPYHUJUXOUXSUUNJAYIYJUVNUYBUUPPUULUUOUUNYKRUVPUYCAUVQMUVPAU
      WKYLYMYNYOYPUVPUWCAUUNUFIZUUQUVPUXGUWPUWCUYFPUXHUXAUUNUVRABUVTCUWRUXIXJXK
      UVPUUNXIFZUXGUUOUYFUUQUHUVNUYGUULUUOUUNXORUXHUWTUYGUXGUCUUOUYFUUQUUNAYQYR
      YSYPYTUUAYRUUBDAUUCYEUUDUUKBUUEFUUJABCUUFBUUGOUUH $.
  $}

  ${
    $d m n x A $.  $d n x E $.  $d n x L $.  $d m n x N $.  $d n x U $.
    $d n x Y $.
    znchr.y $e |- Y = ( Z/nZ ` N ) $.
    $( Cyclic rings are defined by their characteristic.  (Contributed by
       Stefan O'Rear, 6-Sep-2015.) $)
    znchr $p |- ( N e. NN0 -> ( chr ` Y ) = N ) $=
      ( vx cn0 wcel cchr cfv wceq cv cdvds wbr wb wral wa czrh c0g crg syl eqid
      cz ccrg zncrng crngring nn0z chrdvds syl2an zndvds0 bitrd ralrimiva chrcl
      sylan2 dvdsext mpancom mpbird ) AEFZBGHZAIZUQDJZKLZAUSKLZMZDENZUPVBDEUPUS
      EFZOUTUSBPHZHBQHZIZVAUPBRFZUSUAFZUTVGMVDUPBUBFVHABCUCBUDSZUSUEZUQBVEUSVFU
      QTZVETZVFTZUFUGVDUPVIVGVAMVKUSVEABVFCVMVNUHULUIUJUQEFZUPURVCMUPVHVOVJUQBV
      LUKSDUQAUMUNUO $.

    znunit.u $e |- U = ( Unit ` Y ) $.
    ${
      znunit.l $e |- L = ( ZRHom ` Y ) $.
      $( The units of ` Z/nZ ` are the integers coprime to the base.
         (Contributed by Mario Carneiro, 18-Apr-2016.) $)
      znunit $p |- ( ( N e. NN0 /\ A e. ZZ ) ->
        ( ( L ` A ) e. U <-> ( A gcd N ) = 1 ) ) $=
        ( vn wcel cz wa cfv wbr co wceq wrex c1 syl cdvds vx vm cn0 cur cdsr cv
        cmulr cbs cgcd ccrg zncrng adantr eqid crngunit wfo znzrhfo fof ffvelrn
        wb wf sylancom dvdsr2 cmul cmin crn forn rexeqdv wfn oveq1 eqeq1d rexrn
        ffn 3syl bitr3d zring crh crg crngring zrhrhm simplr zringbas zringmulr
        simpr rhmmul syl3anc zrh1 eqeq12d simpll zmulcld 1zzd rexbidva ad2antrr
        zndvds gcddvds syl2anc simpld wi gcdcld nn0zd adantrr dvdsmultr2 simprd
        mpd simprr peano2zm dvdstr mp2and dvdssub2 mpbid dvds1 rexlimdvaa caddc
        nn0z syl31anc bezout eqeq1 2rexbidv syl5ibcom ad3antrrr dvdsmul1 zmulcl
        cneg dvdsnegb zcnd cc zcn ad2antlr mulcomd oveq1d mulcld subnegd eqtr4d
        oveq2d negcld nncand eqtrd breqtrrd oveq2 breq2d 3bitrd syl5ibrcom syld
        rexlimdva reximdva impbid ) DUCJZAKJZLZACMZBJZUUIEUDMZEUEMZNZUAUFZUUIEU
        GMZOZUUKPZUAEUHMZQZADUIOZRPZUUHEUJJZUUJUUMUSUUFUVBUUGDEFUKULZUULEBUUKUU
        IGUUKUMZUULUMZUNSUUHUUIUURJZUUMUUSUSUUFUUGKUURCUTZUVFUUHKUURCUOZUVGUUFU
        VHUUGUURCDEFUURUMZHUPULZKUURCUQSZKUURACURVAUAUURUULEUUOUUIUUKUVIUVEUUOU
        MZVBSUUHUUSIUFZCMZUUIUUOOZUUKPZIKQZDUVMAVCOZRVDOZTNZIKQZUVAUUHUUQUACVEZ
        QZUUSUVQUUHUUQUAUWBUURUUHUVHUWBUURPUVJKUURCVFSVGUUHUVGCKVHUWCUVQUSUVKKU
        URCVLUUQUVPUAIKCUUNUVNPUUPUVOUUKUUNUVNUUIUUOVIVJVKVMVNUUHUVPUVTIKUUHUVM
        KJZLZUVRCMZRCMZPZUVPUVTUWEUWFUVOUWGUUKUWECVOEVPOJZUWDUUGUWFUVOPUUHUWIUW
        DUUHEVQJZUWIUUHUVBUWJUVCEVRSZECHVSSULUUHUWDWCZUUFUUGUWDVTZUVMAVOEVCUUOC
        KWAWBUVLWDWEUWEUWJUWGUUKPUUHUWJUWDUWKULEUUKCHUVDWFSWGUWEUUFUVRKJZRKJZUW
        HUVTUSUUFUUGUWDWHUWEUVMAUWLUWMWIZUWEWJUVRRCDEFHWMWEVNWKUUHUWAUVAUUHUVTU
        VAIKUUHUWDUVTLZLZUUTRTNZUVAUWRUUTUVRTNZUWSUWRUUTATNZUWTUWRUXAUUTDTNZUWR
        UUGDKJZUXAUXBLUUFUUGUWQVTZUUFUXCUUGUWQDXMZWLZADWNWOZWPUWRUUTKJZUWDUUGUX
        AUWTWQUWRUUTUWRADUXDUXFWRZWSZUUHUWDUWDUVTUWLWTUXDUUTUVMAXAWEXCUWRUXHUWN
        UWOUUTUVSTNZUWTUWSUSUXJUUHUWDUWNUVTUWPWTZUWRWJUWRUXBUVTUXKUWRUXAUXBUXGX
        BUUHUWDUVTXDUWRUXHUXCUVSKJZUXBUVTLUXKWQUXJUXFUWRUWNUXMUXLUVRXESUUTDUVSX
        FWEXGUUTUVRRXHXNXIUWRUUTUCJUWSUVAUSUXIUUTXJSXIXKUUHUVARAUVMVCOZDUBUFZVC
        OZXLOZPZUBKQZIKQZUWAUUHUUTUXQPZUBKQIKQZUVAUXTUUHUUGUXCUYBUUFUUGWCUUFUXC
        UUGUXEULIUBADXOWOUVAUYAUXRIUBKKUUTRUXQXPXQXRUUHUXSUVTIKUWEUXRUVTUBKUWEU
        XOKJZLZUVTUXRDUVRUXQVDOZTNUYDDUXPYBZUYETUYDDUXPTNZDUYFTNZUWEUYCUXCUYGUU
        FUXCUUGUWDUYCUXEXSZDUXOXTVAUYDUXCUXPKJZUYGUYHUSUYIUWEUYCUXCUYJUYIDUXOYA
        VAZDUXPYCWOXIUYDUYEUVRUVRUYFVDOZVDOUYFUYDUXQUYLUVRVDUYDUXQUVRUXPXLOUYLU
        YDUXNUVRUXPXLUYDAUVMUYDAUWEUUGUYCUWMULYDZUWDUVMYEJUUHUYCUVMYFYGZYHYIUYD
        UVRUXPUYDUVMAUYNUYMYJZUYDUXPUYKYDZYKYLYMUYDUVRUYFUYOUYDUXPUYPYNYOYPYQUX
        RUVSUYEDTRUXQUVRVDYRYSUUAUUCUUDUUBUUEYTYT $.
    $}

    $( The size of the unit group of ` Z/nZ ` .  (Contributed by Mario
       Carneiro, 19-Apr-2016.) $)
    znunithash $p |- ( N e. NN -> ( # ` U ) = ( phi ` N ) ) $=
      ( vx wcel cfv wceq cc0 chash wa wf1o wb cz eqid syl bitrd 3syl cvv dfphi2
      cn cphi cv cgcd co c1 cfzo crab czrh cres ccnv cima cab cbs wfn cif nnnn0
      cn0 znf1o nnne0 ifnefalse reseq2 f1oeq1 f1oeq2 mpbid f1ofn elpreima fvres
      wne adantl eleq1d elfzoelz znunit syl2an pm5.32da abbi2dv syl6eqr cen wbr
      df-rab fveq2d wf1 wss f1ocnv f1of1 ovexd unitss a1i cui eqeltri f1imaen2g
      fvex syl22anc hasheni 3eqtr2rd ) BUBGZBUCHFUDZBUEUFUGIZFJBUHUFZUIZKHCUJHZ
      WTUKZULZAUMZKHZAKHZFBUAWQXEXAKWQXEWRWTGZWSLZFUNXAWQXIFXEWQWRXEGZXHWRXCHZA
      GZLZXIWQWTCUOHZXCMZXCWTUPXJXMNWQBJIOWTUQZXNXBXPUKZMZXOWQBUSGZXRBURZXNXQBX
      PCDXNPZXQPXPPUTQWQBJVJXPWTIZXRXONBVABJOWTVBYBXRXPXNXCMZXOYBXQXCIXRYCNXPWT
      XBVCXPXNXQXCVDQXPWTXNXCVERSVFZWTXNXCVGWTWRAXCVHSWQXHXLWSWQXHLZXLWRXBHZAGZ
      WSYEXKYFAXHXKYFIWQWRWTXBVIVKVLWQXSWROGYGWSNXHXTWRJBVMWRAXBBCDEXBPVNVORVPR
      VQWSFWTWAVRWBWQXEAVSVTZXFXGIWQXNWTXDWCZWTTGAXNWDZATGZYHWQXOXNWTXDMYIYDWTX
      NXCWEXNWTXDWFSWQJBUHWGYJWQXNCAYAEWHWIYKWQACWJHTECWJWMWKWIXNWTAXDTWLWNXEAW
      OQWP $.

    znrrg.e $e |- E = ( RLReg ` Y ) $.
    $( The regular elements of ` Z/nZ ` are exactly the units.  (This theorem
       fails for ` N = 0 ` , where all nonzero integers are regular, but only
       ` +- 1 ` are units.)  (Contributed by Mario Carneiro, 18-Apr-2016.) $)
    znrrg $p |- ( N e. NN -> E = U ) $=
      ( wcel cfv wceq cz syl co c1 cdvds wbr cmul ad2antrr syl2anc wb czrh wrex
      vx vn cn cv cbs wfo nnnn0 eqid znzrhfo rrgss sseli foelrn syl2an ex wi wa
      cn0 cgcd cdiv cc nncn cc0 wn simplr nnz wne nnne0 simpr necon3ai syl21anc
      gcdn0cl nncnd nnne0d divcan2d gcddvds simpld nnzd simprd simpll nndivdvds
      mpbid dvdsmulc syl3anc mpd eqbrtrrd cmulr c0g wf fof ffvelrnd rrgeq0i crh
      zring crg zncrng crngring zrhrhm zringbas zringmulr rhmmul eqeq1d zmulcld
      ccrg zndvds0 bitr3d 3imtr3d divcan1d mulid1d 3brtr4d 1zzd dvdscmulr dvds1
      syl112anc gcdcld znunit eleq1 imbi12d syl5ibrcom rexlimdva com23 mpdd wss
      mpbird ssrdv unitrrg eqssd ) CUEHZBAYIUCBAYIUCUFZBHZYJUDUFZDUAIZIZJZUDKUB
      ZYJAHZYIYKYPYIKDUGIZYMUHZYJYRHYPYKYICUSHZYSCUIZYRYMCDEYRUJZYMUJZUKZLBYRYJ
      YRDBGUUBULUMUDKYRYJYMUNUOUPYIYPYKYQYIYOYKYQUQZUDKYIYLKHZURZUUEYOYNBHZYNAH
      ZUQUUGUUHUUIUUGUUHURZUUIYLCUTMZNJZUUJUUKNOPZUULUUJCUUKVAMZUUKQMZUUNNQMZOP
      ZUUMUUJCUUNUUOUUPOUUJCYLUUNQMZOPZCUUNOPZUUJUUKUUNQMZCUUROUUJCUUKYICVBHUUF
      UUHCVCRZUUJUUKUUJUUFCKHZYLVDJZCVDJZURZVEZUUKUEHZYIUUFUUHVFZYIUVCUUFUUHCVG
      RZUUJCVDVHZUVGYIUVKUUFUUHCVIRUVFCVDUVDUVEVJVKLYLCVMVLZVNZUUJUUKUVLVOZVPUU
      JUUKYLOPZUVAUUROPZUUJUVOUUKCOPZUUJUUFUVCUVOUVQURUVIUVJYLCVQSZVRUUJUUKKHZU
      UFUUNKHZUVOUVPUQUUJUUKUVLVSZUVIUUJUUNUUJUVQUUNUEHZUUJUVOUVQUVRVTUUJYIUVHU
      VQUWBTYIUUFUUHWAUVLCUUKWBSWCZVSZUUNUUKYLWDWEWFWGUUJYNUUNYMIZDWHIZMZDWIIZJ
      ZUWEUWHJZUUSUUTUUJUUHUWEYRHUWIUWJUQUUGUUHVJUUJKYRUUNYMUUJYSKYRYMWJUUJYTYS
      YIYTUUFUUHUUARZUUDLKYRYMWKLUWDWLYRDUWFBYNUWEUWHGUUBUWFUJZUWHUJZWMSUUJUURY
      MIZUWHJZUWIUUSUUJUWNUWGUWHUUJYMWODWNMHZUUFUVTUWNUWGJUUJDWPHZUWPYIUWQUUFUU
      HYIDXEHZUWQYIYTUWRUUACDEWQLDWRLZRDYMUUCWSLUVIUWDYLUUNWODQUWFYMKWTXAUWLXBW
      EXCUUJYTUURKHUWOUUSTUWKUUJYLUUNUVIUWDXDUURYMCDUWHEUUCUWMXFSXGUUJYTUVTUWJU
      UTTUWKUWDUUNYMCDUWHEUUCUWMXFSXHWFUUJCUUKUVBUVMUVNXIUUJUUNUUJUUNUWCVNXJXKU
      UJUVSNKHUVTUUNVDVHUUQUUMTUWAUUJXLUWDUUJUUNUWCVOUUNUUKNXMXOWCUUJUUKUSHUUMU
      ULTUUJYLCUVIUVJXPUUKXNLWCUUJYTUUFUUIUULTUWKUVIYLAYMCDEFUUCXQSYEUPYOYKUUHY
      QUUIYJYNBXRYJYNAXRXSXTYAYBYCYFYIUWQABYDUWSDABGFYGLYH $.
  $}

  ${
    $d a b g i j k m n x z B $.  $d z E $.  $d a b g i j m n x z G $.
    $d m M $.  $d a j k m n x z .x. $.  $d a b g i j m n x z Y $.
    $d a i j k m n x L $.  $d x N $.  $d a b i j k m z ph $.
    $d a b i j k n x z F $.  $d a j k m n x z X $.
    cygzn.b $e |- B = ( Base ` G ) $.
    cygzn.n $e |- N = if ( B e. Fin , ( # ` B ) , 0 ) $.
    cygzn.y $e |- Y = ( Z/nZ ` N ) $.
    ${
      cygzn.m $e |- .x. = ( .g ` G ) $.
      cygzn.l $e |- L = ( ZRHom ` Y ) $.
      cygzn.e $e |- E = { x e. B | ran ( n e. ZZ |-> ( n .x. x ) ) = B } $.
      cygzn.g $e |- ( ph -> G e. CycGrp ) $.
      cygzn.x $e |- ( ph -> X e. E ) $.
      $( Lemma for ~ cygzn .  (Contributed by Mario Carneiro, 21-Apr-2016.) $)
      cygznlem1 $p |- ( ( ph /\ ( K e. ZZ /\ M e. ZZ ) ) ->
        ( ( L ` K ) = ( L ` M ) <-> ( K .x. X ) = ( M .x. X ) ) ) $=
        ( cz wcel wa cfv wceq cmin co cdvds wbr cod cn0 wb cfn chash cc0 hashcl
        cif adantl 0nn0 a1i ifclda syl5eqel adantr simprl simprr zndvds syl3anc
        wn cgrp ccyg cyggrp eqid cyggenod2 syl2anc syl6eqr breq1d cmpt iscyggen
        syl cv crn simplbi c0g odcong syl112anc 3bitr2d ) AHUBUCZJUBUCZUDZUDZHI
        UEJIUEUFZKHJUGUHZUIUJZLGUKUEZUEZWMUIUJZHLDUHJLDUHUFZWKKULUCZWHWIWLWNUMA
        WSWJAKCUNUCZCUOUEZUPURZULOAWTXAUPULWTXAULUCACUQUSUPULUCAWTVIUDUTVAVBVCV
        DAWHWIVEZAWHWIVFZHJIKMPRVGVHWKWPKWMUIAWPKUFWJAWPXBKAGVJUCZLFUCZWPXBUFAG
        VKUCXETGVLVTZUABCDEFGWOLNQSWOVMZVNVOOVPVDVQWKXELCUCZWHWIWQWRUMAXEWJXGVD
        AXIWJAXFXIUAXFXIEUBEWALDUHVRWBCUFBCDEFGLNQSVSWCVTVDXCXDLDGHJWOCGWDUEZNX
        HQXJVMWEWFWG $.

      cygzn.f $e |- F = ran ( m e. ZZ |-> <. ( L ` m ) , ( m .x. X ) >. ) $.
      $( Lemma for ~ cygzn .  (Contributed by Mario Carneiro, 23-Dec-2016.) $)
      cygznlem2a $p |- ( ph -> F : ( Base ` Y ) --> B ) $=
        ( vk cz cv cfv cmpt crn wf cbs wfun co cvv wcel wa cgrp ccyg cyggrp syl
        fvexd adantr simpr wceq crab ssrab2 eqsstri sseldi mulgcl syl3anc fveq2
        oveq1 cygznlem1 biimpd exp32 3imp2 fliftfund fliftf mpbid wfo cn0 chash
        cfn cc0 cif hashcl adantl 0nn0 a1i ifclda syl5eqel eqid znzrhfo feqmptd
        wi wn fof rneqd forn eqtr3d feq2d ) AEUDEUEZJUFZUGZUHZCHUIZMUJUFZCHUIAH
        UKXEAEUCXBXALDULZUCUEZJUFZXHLDULZUMCHUDUBAXAUDUNZUOZXAJUTZXLIUPUNZXKLCU
        NZXGCUNAXNXKAIUQUNXNTIURUSVAAXKVBAXOXKAGCLGFUDFUEBUEDULUGUHCVCZBCVDCSXP
        BCVEVFUAVGVACDIXALNQVHVIZXAXHJVJXAXHLDVKAXKXHUDUNZXBXIVCZXGXJVCZAXKXRXS
        XTWNAXKXRUOUOXSXTABCDFGIXAJXHKLMNOPQRSTUAVLVMVNVOVPAEXBXGUMCHUDUBXMXQVQ
        VRAXDXFCHAJUHZXDXFAJXCAEUDXFJAUDXFJVSZUDXFJUIAKVTUNYBAKCWBUNZCWAUFZWCWD
        VTOAYCYDWCVTYCYDVTUNACWEWFWCVTUNAYCWOUOWGWHWIWJXFJKMPXFWKRWLUSZUDXFJWPU
        SWMWQAYBYAXFVCYEUDXFJWRUSWSWTVR $.

      $( Lemma for ~ cygzn .  (Contributed by Mario Carneiro, 21-Apr-2016.)
         (Revised by Mario Carneiro, 23-Dec-2016.) $)
      cygznlem2 $p |- ( ( ph /\ M e. ZZ ) ->
        ( F ` ( L ` M ) ) = ( M .x. X ) ) $=
        ( cv cfv co cvv cz wcel wa fvexd ovexd fveq2 oveq1 wfun cygznlem2a ffun
        cbs wf syl fliftval ) AEEUDZJUEVBMDUFKJUEKMDUFUGUGHUHKUCAVBUHUIUJZVBJUK
        VCVBMDULVBKJUMVBKMDUNANURUEZCHUSHUOABCDEFGHIJLMNOPQRSTUAUBUCUPVDCHUQUTV
        A $.

      $( A cyclic group with ` n ` elements is isomorphic to ` ZZ / n ZZ ` .
         (Contributed by Mario Carneiro, 21-Apr-2016.) $)
      cygznlem3 $p |- ( ph -> G ~=g Y ) $=
        ( va vb vi vj cgim wcel cgic wbr cghm cbs cfv wf1o cplusg eqid cn0 ccrg
        vz co crg cgrp cfn chash cc0 cif hashcl adantl 0nn0 a1i ifclda syl5eqel
        wn wa zncrng crngring ringgrp 4syl ccyg cyggrp syl cygznlem2a wceq wrex
        cv wfo znzrhfo foelrn sylan anim12dan reeanv caddc adantr simprl simprr
        cz cmpt crn iscyggen simplbi mulgdir syl13anc zring crh zrhrhm zringbas
        rhmghm zringplusg ghmlin syl3anc fveq2d zaddcl cygznlem2 sylan2 adantrr
        adantrl oveq12d 3eqtr4d oveqan12d eqeq12d syl5ibrcom rexlimdvva syl5bir
        eqtr3d oveq12 fveq2 imp syldan isghmd wf1 wf wi cygznlem1 bitr4d biimpd
        wral eqeqan12d eqeq12 sylanbrc eqeq2d imbi12d ralrimivva dff13 wb mpbid
        iscyggen2 simprd oveq1 cbvrexv ffvelrnda adantlr eqcomd syl2anc rexbidv
        rspcev eqeq1 rexlimdva syl5bi ralimdva dffo3 df-f1o isgim brgici gicsym
        fof mpd 3syl ) AHMIUGUTUHZMIUIUJIMUIUJAHMIUKUTUHMULUMZCHUNZUVHAUCUDMUOU
        MZIUOUMZMIHUVICUVIUPZNUVKUPZUVLUPZAKUQUHZMURUHZMVAUHZMVBUHAKCVCUHZCVDUM
        ZVEVFUQOAUVSUVTVEUQUVSUVTUQUHACVGVHVEUQUHAUVSVMVNVIVJVKVLZKMPVOZMVPZMVQ
        VRAIVSUHIVBUHZTIVTWAZABCDEFGHIJKLMNOPQRSTUAUBWBZAUCWEZUVIUHZUDWEZUVIUHZ
        VNZUWGUEWEZJUMZWCZUEWPWDZUWIUFWEZJUMZWCZUFWPWDZVNZUWGUWIUVKUTZHUMZUWGHU
        MZUWIHUMZUVLUTZWCZAUWHUWOUWJUWSAWPUVIJWFZUWHUWOAUVPUXGUWAUVIJKMPUVMRWGW
        AZUEWPUVIUWGJWHWIAUXGUWJUWSUXHUFWPUVIUWIJWHWIWJZAUWTUXFUWTUWNUWRVNZUFWP
        WDUEWPWDZAUXFUWNUWRUEUFWPWPWKZAUXJUXFUEUFWPWPAUWLWPUHZUWPWPUHZVNZVNZUXF
        UXJUWMUWQUVKUTZHUMZUWMHUMZUWQHUMZUVLUTZWCUXPUWLUWPWLUTZLDUTZUWLLDUTZUWP
        LDUTZUVLUTZUXRUYAUXPUWDUXMUXNLCUHZUYCUYFWCAUWDUXOUWEWMAUXMUXNWNZAUXMUXN
        WOZAUYGUXOALGUHZUYGUAUYJUYGFWPFWEZLDUTZWQWRCWCBCDFGILNQSWSWTWAWMCUVLDIU
        WLUWPLNQUVOXAXBUXPUYBJUMZHUMZUXRUYCUXPUYMUXQHUXPJXCMUKUTUHZUXMUXNUYMUXQ
        WCAUYOUXOAUVQUVRJXCMXDUTUHUYOAUVPUVQUWAUWBWAUWCMJRXEXCMJXGVRWMUYHUYIWLU
        VKXCMUWLJUWPWPXFXHUVNXIXJXKUXOAUYBWPUHUYNUYCWCUWLUWPXLABCDEFGHIJUYBKLMN
        OPQRSTUAUBXMXNYDUXPUXSUYDUXTUYEUVLAUXMUXSUYDWCUXNABCDEFGHIJUWLKLMNOPQRS
        TUAUBXMXOZAUXNUXTUYEWCZUXMABCDEFGHIJUWPKLMNOPQRSTUAUBXMZXPZXQXRUXJUXBUX
        RUXEUYAUXJUXAUXQHUWGUWMUWIUWQUVKYEXKUWNUWRUXCUXSUXDUXTUVLUWGUWMHYFZUWIU
        WQHYFZXSXTYAYBYCYGYHYIAUVICHYJZUVICHWFZUVJAUVICHYKZUXCUXDWCZUWGUWIWCZYL
        ZUDUVIYPUCUVIYPVUBUWFAVUGUCUDUVIUVIAUWKUWTVUGUXIAUWTVUGUWTUXKAVUGUXLAUX
        JVUGUEUFWPWPUXPVUGUXJUXSUXTWCZUWMUWQWCZYLUXPVUHVUIUXPVUHUYDUYEWCVUIUXPU
        XSUYDUXTUYEUYPUYSXTABCDFGIUWLJUWPKLMNOPQRSTUAYMYNYOUXJVUEVUHVUFVUIUWNUW
        RUXCUXSUXDUXTUYTVUAYQUWGUWMUWIUWQYRUUAYAYBYCYGYHUUBUCUDUVICHUUCYSAVUDUS
        WEZUXCWCZUCUVIWDZUSCYPZVUCUWFAVUJUYLWCZFWPWDZUSCYPZVUMAUYGVUPAUYJUYGVUP
        VNZUAAUWDUYJVUQUUDUWEBUSCDFGILNQSUUFWAUUEUUGAVUOVULUSCVUOVUJUYEWCZUFWPW
        DAVUJCUHZVNZVULVUNVURFUFWPUYKUWPWCUYLUYEVUJUYKUWPLDUUHYTUUIVUTVURVULUFW
        PVUTUXNVNZVULVURUYEUXCWCZUCUVIWDZVVAUWQUVIUHUYEUXTWCZVVCVUTWPUVIUWPJVUT
        UXGWPUVIJYKAUXGVUSUXHWMWPUVIJUVEWAUUJVVAUXTUYEAUXNUYQVUSUYRUUKUULVVBVVD
        UCUWQUVIUWGUWQWCUXCUXTUYEUWGUWQHYFYTUUOUUMVURVUKVVBUCUVIVUJUYEUXCUUPUUN
        YAUUQUURUUSUVFUCUSUVICHUUTYSUVICHUVAYSUVICMIHUVMNUVBYSMIHUVCMIUVDUVG $.
    $}

    $( A cyclic group with ` n ` elements is isomorphic to ` ZZ / n ZZ ` , and
       an infinite cyclic group is isomorphic to ` ZZ / 0 ZZ ~~ ZZ ` .
       (Contributed by Mario Carneiro, 21-Apr-2016.) $)
    cygzn $p |- ( G e. CycGrp -> G ~=g Y ) $=
      ( vg vn vx vm ccyg wcel cv cz cfv co cmpt crn eqid cmg wceq crab cgic wbr
      c0 wne wex cgrp iscyg2 simprbi n0 sylib wa czrh cop simpl simpr cygznlem3
      exlimddv ) BLMZHNZIOINJNBUAPZQRSAUBJAUCZMZBDUDUEHVAVDUFUGZVEHUHVABUIMVFJA
      VCIVDBEVCTZVDTZUJUKHVDULUMVAVEUNJAVCKIVDKOKNZDUOPZPVIVBVCQUPRSZBVJCVBDEFG
      VGVJTVHVAVEUQVAVEURVKTUSUT $.
  $}

  ${
    $d n G $.
    $( The "fundamental theorem of cyclic groups".  Cyclic groups are exactly
       the additive groups ` ZZ / n ZZ ` , for ` 0 <_ n ` (where ` n = 0 ` is
       the infinite cyclic group ` ZZ ` ), up to isomorphism.  (Contributed by
       Mario Carneiro, 21-Apr-2016.) $)
    cygth $p |- ( G e. CycGrp <-> E. n e. NN0 G ~=g ( Z/nZ ` n ) ) $=
      ( ccyg wcel czn cfv cgic wbr cn0 wrex cbs cfn chash cc0 cif hashcl adantl
      cv wn eqid wa 0nn0 a1i ifclda cygzn wceq fveq2 breq2d rspcev gicsym zncyg
      syl2anc giccyg syl2imc rexlimiv impbii ) BCDZBARZEFZGHZAIJZUQBKFZLDZVBMFZ
      NOZIDBVEEFZGHZVAUQVCVDNIVCVDIDUQVBPQNIDUQVCSUAUBUCUDVBBVEVFVBTVETVFTUEUTV
      GAVEIURVEUFUSVFBGURVEEUGUHUIULUTUQAIUTUSBGHURIDUSCDUQBUSUJURUSUSTUKUSBUMU
      NUOUP $.
  $}

  ${
    cygctb.b $e |- B = ( Base ` G ) $.
    cygctb.c $e |- C = ( Base ` H ) $.
    $( Cyclic groups are isomorphic precisely when they have the same order.
       (Contributed by Mario Carneiro, 21-Apr-2016.) $)
    cyggic $p |- ( ( G e. CycGrp /\ H e. CycGrp ) ->
      ( G ~=g H <-> B ~~ C ) ) $=
      ( ccyg wcel wa cgic wbr cfn chash cfv cc0 cif czn eqid cygzn adantl gicen
      cen ad2antrr wb enfi wceq hasheni ifbieq1d fveq2d ad2antlr gicsym eqbrtrd
      syl gictr syl2anc ex impbid2 ) CGHZDGHZIZCDJKZABUBKZABCDEFUAUTVBVAUTVBIZC
      ALHZAMNZOPZQNZJKZVGDJKVAURVHUSVBACVFVGEVFRVGRSUCVCVGBLHZBMNZOPZQNZDJVCVFV
      KQVCVDVIVEVJOVBVDVIUDUTABUETVBVEVJUFUTABUGTUHUIVCDVLJKZVLDJKUSVMURVBBDVKV
      LFVKRVLRSUJDVLUKUMULCVGDUNUOUPUQ $.
  $}

  ${
    $d f g n x y G $.  $d f g n x y I $.
    frgpcyg.g $e |- G = ( freeGrp ` I ) $.
    $( A free group is cyclic iff it has zero or one generator.  (Contributed
       by Mario Carneiro, 21-Apr-2016.)  (Proof shortened by AV,
       18-Apr-2021.) $)
    frgpcyg $p |- ( I ~<_ 1o <-> G e. CycGrp ) $=
      ( vx vn vf vg vy c1o wcel wceq cfv cvv eqid syl c1 zring co cz adantr wbr
      cdom ccyg csdm cen wo brdom2 c0 sdom1 cfrgp fveq2 syl5eq cgrp cbs frgpgrp
      0ex ax-mp 0frgp 0cyg mp2an syl6eqel sylbi cmg cuni cvrgp brrelexi wf cefg
      relen vrgpf en1uniel ffvelrnd ccom cop csn cghm wrex wreu zringgrp uniexg
      cv wa 1zzd fsnd biimpi feq2d mpbird zringbas frgpup3 mp3an2i reurex fveq1
      en1b wi fvco3 syl2anc fvsng sylancl eqeq12d syl5ib ad2antrr ghmf ad2antrl
      1z ffvelrnda an32s cmpt wral cid cres mptresid syl3anc reurmo idghm fcoi2
      wrmo feqmptd eqidd oveq1 fmptco mulgghm2 simprl ghmco eleq2d simprr mulg1
      eqeltrrd oveq1d eqtrd elsni fveq2d syl5ibrcom imp mpteq2dva 3eqtr4d coeq1
      sylbid eqeq1d rmoi wb syl122anc mpteqb id mprg sylib r19.21bi eqeq2d expr
      rspcev syld rexlimdva mpd iscygd jaoi cygabl wn frgpnabl con2i cfn ablgrp
      cabl c0g grpidcl elbasfv 3syl com 1onn nnfi fidomtri2 impbii ) BIUBUAZAUC
      JZUVKBIUDUAZBIUEUAZUFUVLBIUGUVMUVLUVNUVMBUHKZUVLBUIUVOAUHUJLZUCUVOABUJLUV
      PCBUHUJUKULUVPUMJZUVPUNLZIUEUAUVPUCJUHMJUVQUPUVPUHMUVPNZUOUQUVRUVPUVSUVRN
      ZURUVRUVPUVTUSUTVAVBUVNDAUNLZAVCLZEABVDZBVELZLZUWANZUWBNZUVNBMJZAUMJZBIUE
      VIVFZABMCUOOZUVNBUWAUWCUWDUVNUWHBUWAUWDVGZUWJBVHLZUWDABMUWAUWMNUWDNZCUWFV
      JOZBVKZVLZUVNDWAZUWAJZWBZFWAZUWDVMZUWCPVNVOZKZFAQVPRZVQZUWREWAZUWEUWBRZKZ
      ESVQZUWTUXDFUXEVRZUXFUVNUXKUWSQUMJUVNUWHBSUXCVGZUXKVSUWJUVNUXLUWCVOZSUXCV
      GUVNUWCPMSUVNUWHUWCMJZUWJBMVTOZUVNWCWDUVNBUXMSUXCUVNBUXMKZBWMWEZWFWGSUWDF
      UXCAQBMCWHUWNWIWJTUXDFUXEWKOUWTUXDUXJFUXEUWTUXAUXEJZWBUXDUWEUXALZPKZUXJUV
      NUXDUXTWNUWSUXRUXDUWCUXBLZUWCUXCLZKUVNUXTUWCUXBUXCWLUVNUYAUXSUYBPUVNUWLUW
      CBJUYAUXSKUWOUWPBUWAUWCUXAUWDWOWPUVNUXNPSJUYBPKUXOXDUWCPMSWQWRWSWTXAUWTUX
      RUXTUXJUWTUXRUXTWBZWBUWRUXALZSJZUWRUYDUWEUWBRZKZUXJUVNUYCUWSUYEUVNUYCWBZU
      WASUWRUXAUXRUWASUXAVGUVNUXTAQUXAUWASUWFWHXBXCZXEZXFUVNUYCUWSUYGUYHUYGDUWA
      UYHDUWAUWRXGZDUWAUYFXGZKZUYGDUWAXHZUYHUYKXIUWAXJZUYLDUWAXKUYHGWAZUWDVMZUW
      DKZGAAVPRZXPZUYOUYSJZUYOUWDVMZUWDKZUYLUYSJUYLUWDVMZUWDKZUYOUYLKUVNUYTUYCU
      VNUYRGUYSVRZUYTUVNUWIUWHUWLVUFUWKUWJUWOUWAUWDGUWDAABMCUWFUWNWIXLUYRGUYSXM
      OTUYHUWIVUAUVNUWIUYCUWKTZUWAAUWFXNOUYHUWLVUCUVNUWLUYCUWOTZBUWAUWDXOOUYHES
      UXHXGZUXAVMZUYLUYSUYHDEUWASUYDUXHUYFUXAVUIUYJUYHDUWASUXAUYIXQUYHVUIXRUXGU
      YDUWEUWBXSZXTUYHVUIQAVPRJZUXRVUJUYSJUYHUWIUWEUWAJZVULVUGUVNVUMUYCUWQTZUWA
      AUWBUWEEVUIUWGVUINUWFYAWPUVNUXRUXTYBAQAVUIUXAYCWPYGUYHHBHWAZUWDLZUXALZUWE
      UWBRZXGHBVUPXGVUDUWDUYHHBVURVUPUYHVUOBJZVURVUPKZUYHVUSVUOUXMJZVUTUYHBUXMV
      UOUVNUXPUYCUXQTYDUYHVUTVVAUXSUWEUWBRZUWEKUYHVVBPUWEUWBRZUWEUYHUXSPUWEUWBU
      VNUXRUXTYEYHUYHVUMVVCUWEKVUNUWAUWBAUWEUWFUWGYFOYIVVAVURVVBVUPUWEVVAVUQUXS
      UWEUWBVVAVUPUWEUXAVVAVUOUWCUWDVUOUWCYJYKZYKYHVVDWSYLYQYMYNUYHHDBUWAVUPUYF
      VURUWDUYLUYHBUWAVUOUWDVUHXEUYHHBUWAUWDVUHXQZUYHUYLXRUWRVUPKUYDVUQUWEUWBUW
      RVUPUXAUKYHXTVVEYOUYRVUCVUEGUYSUYOUYLUYPUYOKUYQVUBUWDUYPUYOUWDYPYRUYPUYLK
      UYQVUDUWDUYPUYLUWDYPYRYSUUAULUWSUYMUYNYTDUWADUWAUWRUYFUWAUUBUWSUUCUUDUUEU
      UFXFUXIUYGEUYDSUXGUYDKUXHUYFUWRVUKUUGUUIWPUUHUUJUUKUULUUMUUNVBUVLAUVAJZUV
      KAUUOVVFUVKIBUDUAZUUPZVVGVVFABCUUQUURVVFUWHIUUSJZUVKVVHYTVVFUWIAUVBLZUWAJ
      UWHAUUTUWAAVVJUWFVVJNUVCUWAAUJVVJBCUWFUVDUVEIUVFJVVIUVGIUVHUQBIMUVIWRWGOU
      VJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Signs as subgroup of the complex numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y M $.
    cnmsgnsubg.m $e |- M = ( ( mulGrp ` CCfld ) |`s ( CC \ { 0 } ) ) $.
    $( The signs form a multiplicative subgroup of the complex numbers.
       (Contributed by Stefan O'Rear, 28-Aug-2015.) $)
    cnmsgnsubg $p |- { 1 , -u 1 } e. ( SubGrp ` M ) $=
      ( vx c1 wcel wceq cc ax-1cn syl6eqel neg1cn jaoi syl cc0 wne co wa oveq12
      cmul eqeltri cdiv vy cneg cpr cv wo elpri ax-1ne0 eqnetrd neg1ne0 mulid1i
      id a1i prid1 negex prid2 mulid2i neg1mulneg1e1 ccase syl2an oveq2 1div1e1
      1ex divneg2 mp3an negeqi eqtr3i cnmsubglem ) CUADDUBZUCZABCUDZVIEZVJDFZVJ
      VHFZUEZVJGEZVJDVHUFZVLVOVMVLVJDGVLUKZHIVMVJVHGVMUKZJIKLVKVNVJMNZVPVLVSVMV
      LVJDMVQDMNZVLUGULUHVMVJVHMVRVHMNVMUIULUHKLVKVNUAUDZDFZWAVHFZUEVJWAROZVIEZ
      WAVIEVPWADVHUFVLWBVMWCWEVLWBPWDDDROZVIVJDWADRQWFDVIDHUJDVHVBUMZSIVMWBPWDV
      HDROZVIVJVHWADRQWHVHVIVHJUJDVHDUNUOZSIVLWCPWDDVHROZVIVJDWAVHRQWJVHVIVHJUP
      WISIVMWCPWDVHVHROZVIVJVHWAVHRQWKDVIUQWGSIURUSWGVKVNDVJTOZVIEZVPVLWMVMVLWL
      DDTOZVIVJDDTUTWNDVIVAWGSIVMWLDVHTOZVIVJVHDTUTWOVHVIWNUBZWOVHDGEZWQVTWPWOF
      HHUGDDVCVDWNDVAVEVFWISIKLVG $.
  $}

  ${
    cnmsgngrp.u $e |- U = ( ( mulGrp ` CCfld ) |`s { 1 , -u 1 } ) $.
    $( The base set of the sign subgroup of the complex numbers.  (Contributed
       by Stefan O'Rear, 28-Aug-2015.) $)
    cnmsgnbas $p |- { 1 , -u 1 } = ( Base ` U ) $=
      ( c1 cneg cpr wss cbs cfv wceq wcel ax-1cn neg1cn prssi mp2an ccnfld cmgp
      cc eqid cnfldbas mgpbas ressbas2 ax-mp ) CCDZEZQFZUDAGHICQJUCQJUEKLCUCQMN
      UDQAOPHZBQOUFUFRSTUAUB $.

    $( The group of signs under multiplication.  (Contributed by Stefan O'Rear,
       28-Aug-2015.) $)
    cnmsgngrp $p |- U e. Grp $=
      ( c1 cneg cpr ccnfld cmgp cfv cc cc0 csn cdif cress wcel cvv wne mpbir2an
      co eldifsn mp2an csubg cgrp eqid cnmsgnsubg wceq cnex difss ssexi ax-1ne0
      wss ax-1cn neg1cn neg1ne0 prssi ressabs eqtr4i subggrp ax-mp ) CCDZEZFGHZ
      IJKZLZMRZUAHNAUBNVDVDUCUDUTVDAAVAUTMRZVDUTMRZBVCONUTVCUJZVFVEUEVCIUFIVBUG
      UHCVCNZUSVCNZVGVHCINCJPUKUICIJSQVIUSINUSJPULUMUSIJSQCUSVCUNTVCUTVAOUOTUPU
      QUR $.
  $}

  ${
    $d w x y z D $.  $d w x y z N $.  $d w x y z S $.  $d w x y z V $.
    $d x y F $.  $d x y U $.
    psgnghm.s $e |- S = ( SymGrp ` D ) $.
    psgnghm.n $e |- N = ( pmSgn ` D ) $.
    psgnghm.f $e |- F = ( S |`s dom N ) $.
    psgnghm.u $e |- U = ( ( mulGrp ` CCfld ) |`s { 1 , -u 1 } ) $.
    $( The sign is a homomorphism from the finitary permutation group to the
       numeric signs.  (Contributed by Stefan O'Rear, 28-Aug-2015.) $)
    psgnghm $p |- ( D e. V -> N e. ( F GrpHom U ) ) $=
      ( vx vz vw wcel cfv cmul wceq ax-mp co wa vy cplusg cdm c1 cpr cbs wss cv
      cneg cid cdif cfn crab eqid psgnfn fndm ssrab2 eqsstri ressbas2 cnmsgnbas
      wfn cvv fvex eqeltri ressplusg prex ccnfld cmgp cnfldmul csubg psgndmsubg
      mgpplusg cgrp subggrp syl cnmsgngrp wral wfun fnfun funfn mpbi cgsu chash
      a1i wf cexp cpmtr cword wrex psgnvali wi cz lencl nn0zd m1expcl2 syl6eleq
      crn prcom adantl eleq1a adantld rexlimdva ralrimiv ffnfv sylanbrc anim12i
      syl5 reeanv sylibr cconcat ccatcl psgnvalii sylan2 symggrp grpmnd symgtrf
      cmnd sswrd sseli gsumccat syl3an 3expb fveq2d caddc ccatlen oveq2d neg1cn
      cc ad2antll ad2antrl expaddd eqtrd 3eqtr3d wb oveq12 eqeqan12d syl5ibrcom
      cn0 an4s rexlimdvva imp isghmd ) AFNZKUABUBOZPDCEEUCZUDUDUIZUEZUUEBUFOZUG
      UUEDUFOZQUUEKUHZUJUKUCULNZKUUHUMZUUHEUULVAZUUEUULQUUHAUULBEKGUUHUNZUULUNH
      UOZUULEUPRUUKKUUHUQURUUEUUHDBIUUNUSRZCJUTUUEVBNUUDDUBOQUUEUUIVBUUPDUFVCVD
      UUEUUDBDVBIUUDUNZVERUUGVBNPCUBOQUDUUFVFUUGPVGVHOZCVBJVGPUURUURUNVIVLVERUU
      CUUEBVJONDVMNABEFGHVKUUEBDIVNVOCVMNUUCCJVPWDUUCEUUEVAZUUJEOZUUGNZKUUEVQUU
      EUUGEWEUUSUUCEVRZUUSUUMUVBUUOUULEVSREVTWAWDUUCUVAKUUEUUJUUENZUUJBLUHZWBSZ
      QZUUTUUFUVDWCOZWFSZQZTZLAWGOWQZWHZWIZUUCUVALAUUJUVKBEGUVKUNZHWJZUUCUVJUVA
      LUVLUUCUVDUVLNZTZUVIUVAUVFUVQUVHUUGNZUVIUVAWKUVPUVRUUCUVPUVGWLNZUVRUVPUVG
      UVKUVDWMZWNUVSUVHUUFUDUEUUGUVGWOUUFUDWRWPVOWSUVHUUGUUTWTVOXAXBXGXCKUUEUUG
      EXDXEUUCUVCUAUHZUUENZTZUUJUWAUUDSZEOZUUTUWAEOZPSZQZUWCUVJUWABMUHZWBSZQZUW
      FUUFUWIWCOZWFSZQZTZTZMUVLWILUVLWIZUUCUWHUWCUVMUWOMUVLWIZTUWQUVCUVMUWBUWRU
      VOMAUWAUVKBEGUVNHWJXFUVJUWOLMUVLUVLXHXIUUCUWPUWHLMUVLUVLUUCUVPUWIUVLNZTZT
      ZUWHUWPUVEUWJUUDSZEOZUVHUWMPSZQZUXABUVDUWIXJSZWBSZEOZUUFUXFWCOZWFSZUXCUXD
      UWTUUCUXFUVLNUXHUXJQUVKUVDUWIXKAUVKBEFUXFGUVNHXLXMUXAUXGUXBEUUCUVPUWSUXGU
      XBQZUUCBXQNZUVPUVDUUHWHZNUWSUWIUXMNUXKUUCBVMNUXLABFGXNBXOVOUVLUXMUVDUVKUU
      HUGUVLUXMUGUUHAUVKBUVNGUUNXPUVKUUHXRRZXSUVLUXMUWIUXNXSUUHUUDBUVDUWIUUNUUQ
      XTYAYBYCUXAUXJUUFUVGUWLYDSZWFSUXDUXAUXIUXOUUFWFUWTUXIUXOQUUCUVKUVDUWIYEWS
      YFUXAUUFUVGUWLUUFYHNUXAYGWDUWSUWLYRNUUCUVPUVKUWIWMYIUVPUVGYRNUUCUWSUVTYJY
      KYLYMUVFUWKUVIUWNUWHUXEYNUVFUWKTZUVIUWNTUWEUXCUWGUXDUXPUWDUXBEUUJUVEUWAUW
      JUUDYOYCUUTUVHUWFUWMPYOYPYSYQYTXGUUAUUB $.
  $}

  ${
    $d x D $.  $d x S $.
    psgnghm2.s $e |- S = ( SymGrp ` D ) $.
    psgnghm2.n $e |- N = ( pmSgn ` D ) $.
    psgnghm2.u $e |- U = ( ( mulGrp ` CCfld ) |`s { 1 , -u 1 } ) $.
    $( The sign is a homomorphism from the finite symmetric group to the
       numeric signs.  (Contributed by Stefan O'Rear, 28-Aug-2015.) $)
    psgnghm2 $p |- ( D e. Fin -> N e. ( S GrpHom U ) ) $=
      ( vx cfn wcel cdm co cghm eqid cfv wceq cvv csymg fvex eqeltri psgnghm cv
      cbs wss cid cdif crab wral sygbasnfpfi ralrimiva rabid2 sylibr wfn psgnfn
      cress fndm ax-mp syl6eqr eqimss cpsgn dmex ressid2 mp3an23 oveq1d eleqtrd
      3syl ) AIJZDBDKZUOLZCMLBCMLABCVIDIEFVINZGUAVGVIBCMVGBUCOZVHPVKVHUDZVIBPZV
      GVKHUBZUEUFKIJZHVKUGZVHVGVOHVKUHVKVPPVGVOHVKVKAVNBEVKNZUIUJVOHVKUKULDVPUM
      VHVPPVKAVPBDHEVQVPNFUNVPDUPUQURVKVHUSVLBQJVHQJVMBAROQEARSTDDAUTOQFAUTSTVA
      VHVKVIBQQVJVQVBVCVFVDVE $.
  $}

  ${
    psgninv.s $e |- S = ( SymGrp ` D ) $.
    psgninv.n $e |- N = ( pmSgn ` D ) $.
    psgninv.p $e |- P = ( Base ` S ) $.
    $( The sign of a permutation equals the sign of the inverse of the
       permutation.  (Contributed by SO, 9-Jul-2018.) $)
    psgninv $p |- ( ( D e. Fin /\ F e. P ) -> ( N ` `' F ) = ( N ` F ) ) $=
      ( wcel cfv c1 cdiv co ccnfld cress wceq eqid cc cc0 syl ccnv cminusg cmgp
      cfn wa cneg cpr cghm psgnghm2 ghminv sylan symginv adantl fveq2d csn cdif
      cinvr csubg cnmsgnsubg wf cnmsgnbas ghmf ffvelrnda cvv wss cnex difss wne
      ssexi ax-1cn ax-1ne0 eldifsn mpbir2an neg1cn neg1ne0 prssi ressabs eqcomi
      mp2an cnfldbas cnfld0 cndrng drngui invrfval subginv sylancr sseldi sylib
      cnfldinv eqtr3d 3eqtr3d wo fvex elpr 1div1e1 oveq2 3eqtr4a divneg2 negeqi
      id mp3an eqtr3i jaoi sylbi eqtrd ) AUDIZDBIZUEZDUAZEJZKDEJZLMZXKXHDCUBJZJ
      ZEJZXKNUCJZKKUFZUGZOMZUBJZJZXJXLXFECXSUHMIZXGXOYAPACXSEFGXSQZUIZBCXSEXMXT
      DHXMQZXTQZUJUKXHXNXIEXGXNXIPXFABDCXMFHYEULUMUNXHXKNUQJZJZYAXLXHXRXPRSUOZU
      PZOMZURJIXKXRIZYHYAPYKYKQZUSXFBXRDEXFYBBXREUTYDCXSEBXRHXSYCVAVBTVCZXRYKXS
      YGXTXKYKXROMZXSYJVDIXRYJVEZYOXSPYJRVFRYIVGVIKYJIZXQYJIZYPYQKRIZKSVHZVJVKK
      RSVLVMYRXQRIXQSVHVNVOXQRSVLVMKXQYJVPVSZYJXRXPVDVQVSVRNYJYKYGRNSVTWAWBWCYM
      YGQWDYFWEWFXHXKRIXKSVHUEZYHXLPXHXKYJIUUBXHXRYJXKUUAYNWGXKRSVLWHXKWITWJWKX
      HYLXLXKPZYNYLXKKPZXKXQPZWLUUCXKKXQDEWMWNUUDUUCUUEUUDKKLMZKXLXKWOXKKKLWPUU
      DWTWQUUEKXQLMZXQXLXKUUFUFZUUGXQYSYSYTUUHUUGPVJVJVKKKWRXAUUFKWOWSXBXKXQKLW
      PUUEWTWQXCXDTXE $.

    $( Multiplicativity of the permutation sign function.  (Contributed by SO,
       9-Jul-2018.) $)
    psgnco $p |- ( ( D e. Fin /\ F e. P /\ G e. P ) -> ( N ` ( F o. G ) ) =
        ( ( N ` F ) x. ( N ` G ) ) ) $=
      ( cfn wcel cplusg cfv co cmul wceq eqid ccnfld c1 cvv ccom symgov 3adant1
      w3a fveq2d cmgp cneg cress cghm psgnghm2 prex cnfldmul mgpplusg ressplusg
      cpr ax-mp ghmlin syl3an1 eqtr3d ) AJKZDBKZEBKZUDZDECLMZNZFMZDEUAZFMDFMEFM
      ONZVCVEVGFVAVBVEVGPUTABVDCDEGIVDQZUBUCUEUTFCRUFMZSSUGZUOZUHNZUINKVAVBVFVH
      PACVMFGHVMQZUJVDOCVMDFEBIVIVLTKOVMLMPSVKUKVLOVJVMTVNROVJVJQULUMUNUPUQURUS
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Embedding of permutation signs into a ring
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $( Embedding of permutation signs into an arbitrary ring is a homomorphism.
       (Contributed by SO, 9-Jul-2018.) $)
    zrhpsgnmhm $p |- ( ( R e. Ring /\ A e. Fin ) -> ( ( ZRHom ` R ) o.
        ( pmSgn ` A ) ) e. ( ( SymGrp ` A ) MndHom ( mulGrp ` R ) ) ) $=
      ( crg wcel cfv zring cmgp cmhm co eqid syl ccnfld c1 cress csubmnd cz wss
      cc cc0 wa czrh cpsgn csymg ccom cfn crh zrhrhm rhmmhm cpr psgnghm2 ghmmhm
      cneg cghm csn cdif csubg cnmsgnsubg subgsubm ax-mp cnring cnfldbas cnfld0
      wb cndrng drngui unitsubm subsubm mp2b simpli 1z neg1z prssi mp2an csubrg
      mpbi zsubrg subrgsubm zringmpg eqcomi mpbir2an cvv wceq zex oveq1i eqtr3i
      ressabs resmhm2 sylancl mhmco syl2an ) BCDZBUAEZFGEZBGEZHIDZAUBEZAUCEZWMH
      IDZWLWPUDWQWNHIDAUEDZWKWLFBUFIDWOBWLWLJUGFBWLWMWNWMJWNJUHKWSWPWQLGEZMMULZ
      UIZNIZHIDZXBWMOEDZWRWSWPWQXCUMIDXDAWQXCWPWQJWPJXCJUJWQXCWPUKKXEXBWTOEZDZX
      BPQZXGXBRSUNUOZQZXBWTXINIZOEDZXGXJTZXBXKUPEDXLXKXKJZUQXBXKURUSLCDXIXFDXLX
      MVCUTLXIWTRLSVAVBVDVEWTJZVFXBXIWTXKXNVGVHVOVIMPDXAPDXHVJVKMXAPVLVMZPLVNED
      PXFDXEXGXHTVCVPPLWTXOVQXBPWTWMWTPNIZWMVRVSVGVHVTWQWMXCWPXBXQXBNIZXCWMXBNI
      PWADXHXRXCWBWCXPPXBWTWAWFVMXQWMXBNVRWDWEWGWHWQWMWNWLWPWIWJ $.

    zrhpsgninv.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    zrhpsgninv.y $e |- Y = ( ZRHom ` R ) $.
    zrhpsgninv.s $e |- S = ( pmSgn ` N ) $.
    $( The embedded sign of a permutation equals the embedded sign of the
       inverse of the permutation.  (Contributed by SO, 9-Jul-2018.) $)
    zrhpsgninv $p |- ( ( R e. Ring /\ N e. Fin /\ F e. P ) ->
        ( ( Y o. S ) ` `' F ) = ( ( Y o. S ) ` F ) ) $=
      ( crg wcel cfn cfv wceq eqid c1 co 3ad2ant2 syl2anc fvco3 ccnv ccom csymg
      w3a psgninv 3adant1 fveq2d ccnfld cmgp cneg cpr cbs wf cghm psgnghm2 ghmf
      cress syl cminusg symginv 3ad2ant3 cgrp symggrp grpinvcl eqeltrrd 3eqtr4d
      simp3 ) BJKZELKZDAKZUDZDUAZCMZFMZDCMZFMZVLFCUBZMZDVQMZVKVMVOFVIVJVMVONVHE
      AEUCMZDCVTOZIGUEUFUGVKAUHUIMPPUJUKUQQZULMZCUMZVLAKVRVNNVIVHWDVJVICVTWBUNQ
      KWDEVTWBCWAIWBOUOVTWBCAWCGWCOUPURRZVKDVTUSMZMZVLAVJVHWGVLNVIEADVTWFWAGWFO
      ZUTVAVKVTVBKZVJWGAKVIVHWIVJEVTLWAVCRVHVIVJVGZAVTWFDGWHVDSVEAWCVLFCTSVKWDV
      JVSVPNWEWJAWCDFCTSVF $.
  $}

  ${
    $d D d $.  $d N d $.
    evpmss.s $e |- S = ( SymGrp ` D ) $.
    evpmss.p $e |- P = ( Base ` S ) $.
    $( Even permutations are permutations.  (Contributed by SO, 9-Jul-2018.) $)
    evpmss $p |- ( pmEven ` D ) C_ P $=
      ( vd cvv wcel cevpm cfv cpsgn ccnv c1 cima wceq cress cbs eqid syl6eqss
      co wss csn cv fveq2 cnveqd imaeq1d df-evpm cnvex imaex fvmpt cdm cnvimass
      fvex ccnfld cmgp cneg cpr cghm wf psgnghm ghmf fdm 3syl ressbasss eqsstrd
      syl5ss wn c0 fvprc 0ss pm2.61i ) AGHZAIJZBUAVLVMAKJZLZMUBZNZBFAFUCZKJZLZV
      PNVQGIVRAOZVTVOVPWAVSVNVRAKUDUEUFFUGVOVPVNAKUMUHUIUJVLVQVNUKZBVNVPULVLWBC
      WBPTZQJZBVLVNWCUNUOJMMUPUQPTZURTHWDWEQJZVNUSWBWDOACWEWCVNGDVNRWCRZWERUTWC
      WEVNWDWFWDRWFRVAWDWFVNVBVCWBBWCCWGEVDSVFVEVLVGVMVHBAIVIBVJSVK $.

    psgnevpmb.n $e |- N = ( pmSgn ` D ) $.
    $( A class is an even permutation if it is a permutation with sign 1.
       (Contributed by SO, 9-Jul-2018.) $)
    psgnevpmb $p |- ( D e. Fin -> ( F e. ( pmEven ` D ) <->
        ( F e. P /\ ( N ` F ) = 1 ) ) ) $=
      ( vd cfn wcel cevpm cfv ccnv c1 cima wceq cvv cpsgn syl csn wa elex fveq2
      cv syl6eqr cnveqd imaeq1d df-evpm eqeltri cnvex imaex fvmpt eleq2d ccnfld
      fvex cmgp cneg cpr cress co cbs wf wfn wb cghm eqid psgnghm2 ffn fniniseg
      ghmf 3syl bitrd ) AJKZDALMZKDENZOUAZPZKZDBKDEMOQUBZVNVOVRDVNARKVOVRQAJUCI
      AIUEZSMZNZVQPVRRLWAAQZWCVPVQWDWBEWDWBASMZEWAASUDHUFUGUHIUIVPVQEEWERHASUPU
      JUKULUMTUNVNBUOUQMOOURUSUTVAZVBMZEVCZEBVDVSVTVEVNECWFVFVAKWHACWFEFHWFVGVH
      CWFEBWGGWGVGVKTBWGEVIBODEVJVLVM $.

    $( A permutation which is odd (i.e. not even) has sign -1.  (Contributed by
       SO, 9-Jul-2018.) $)
    psgnodpm $p |- ( ( D e. Fin /\ F e. ( P \ ( pmEven ` D ) ) ) ->
        ( N ` F ) = -u 1 ) $=
      ( cfn wcel cevpm cfv cdif wa c1 wceq wn cneg adantr co wo eldif simpr a1d
      ancrd wb psgnevpmb sylibrd con3d impr sylan2b ccnfld cmgp cress cghm eqid
      cpr wf psgnghm2 cnmsgnbas ghmf syl eldifi adantl ffvelrnd fvex elpr sylib
      orel1 sylc ) AIJZDBAKLZMJZNZDELZOPZQZVPVOORZPZUAZVSVMVKDBJZDVLJZQZNVQDBVL
      UBVKWAWCVQVKWANZVPWBWDVPWAVPNZWBWDVPWAWDWAVPVKWAUCUDUEVKWBWEUFWAABCDEFGHU
      GSUHUIUJUKVNVOOVRUQZJVTVNBWFDEVNECULUMLWFUNTZUOTJZBWFEURVKWHVMACWGEFHWGUP
      ZUSSCWGEBWFGWGWIUTVAVBVMWAVKDBVLVCVDVEVOOVRDEVFVGVHVPVSVIVJ $.

    $( A permutation which is even has sign 1.  (Contributed by SO,
       9-Jul-2018.) $)
    psgnevpm $p |- ( ( D e. Fin /\ F e. ( pmEven ` D ) ) ->
        ( N ` F ) = 1 ) $=
      ( cfn wcel cevpm cfv c1 wceq psgnevpmb simplbda ) AIJDAKLJDBJDELMNABCDEFG
      HOP $.

    $( If a permutation has sign -1 it is odd (not even).  (Contributed by SO,
       9-Jul-2018.) $)
    psgnodpmr $p |- ( ( D e. Fin /\ F e. P /\ ( N ` F ) = -u 1 ) ->
        F e. ( P \ ( pmEven ` D ) ) ) $=
      ( cfn wcel cfv c1 cneg wceq w3a wne neg1rr cc0 clt wbr cevpm simp2 adantr
      wn wa wi psgnevpm ex neg1lt0 0lt1 0re 1re lttri mp2an gtneii neeq1 mpbiri
      syl6 necon2bd 3impia eldifd ) AIJZDBJZDEKZLMZNZODBAUAKZVBVCVFUBVBVCVFDVGJ
      ZUDVBVCUEZVHVDVEVIVHVDLNZVDVEPZVBVHVJUFVCVBVHVJABCDEFGHUGUHUCVJVKLVEPVELQ
      VERSTRLSTVELSTUIUJVERLQUKULUMUNUOVDLVEUPUQURUSUTVA $.
  $}

  ${
    zrhpsgnevpm.y $e |- Y = ( ZRHom ` R ) $.
    zrhpsgnevpm.s $e |- S = ( pmSgn ` N ) $.
    zrhpsgnevpm.o $e |- .1. = ( 1r ` R ) $.
    $( The sign of an even permutation embedded into a ring is the
       multiplicative neutral element of the ring.  (Contributed by SO,
       9-Jul-2018.) $)
    zrhpsgnevpm $p |- ( ( R e. Ring /\ N e. Fin /\ F e. ( pmEven ` N ) ) ->
        ( ( Y o. S ) ` F ) = .1. ) $=
      ( crg wcel cfn cevpm cfv w3a c1 cbs co wceq eqid ccom csymg cmgp cneg cpr
      ccnfld cress wf cghm psgnghm2 ghmf 3ad2ant2 evpmss sseli 3ad2ant3 syl2anc
      syl fvco3 psgnevpm 3adant1 fveq2d zrh1 3ad2ant1 3eqtrd ) AJKZELKZDEMNZKZO
      ZDFBUANZDBNZFNZPFNZCVIEUBNZQNZUFUCNPPUDUEUGRZQNZBUHZDVOKZVJVLSVFVEVRVHVFB
      VNVPUIRKVREVNVPBVNTZHVPTUJVNVPBVOVQVOTZVQTUKUQULVHVEVSVFVGVODEVOVNVTWAUMU
      NUOVOVQDFBURUPVIVKPFVFVHVKPSVEEVOVNDBVTWAHUSUTVAVEVFVMCSVHACFGIVBVCVD $.

    zrhpsgnodpm.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    zrhpsgnodpm.i $e |- I = ( invg ` R ) $.
    $( The sign of an odd permutation embedded into a ring is the additive
       inverse of the multiplicative neutral element of the ring.  (Contributed
       by SO, 9-Jul-2018.) $)
    zrhpsgnodpm $p |- ( ( R e. Ring /\ N e. Fin /\ F e. ( P \
        ( pmEven ` N ) ) ) -> ( ( Y o. S ) ` F ) = ( I ` .1. ) ) $=
      ( wcel cfv c1 co wceq eqid zring crg cfn cevpm cdif ccom cneg ccnfld cmgp
      w3a cpr cress cbs wf csymg cghm psgnghm2 ghmf syl 3ad2ant2 3ad2ant3 fvco3
      eldifi syl2anc psgnodpm 3adant1 fveq2d cminusg crh zrhrhm rhmghm zringbas
      cz a1i ghminv zringinvg ax-mp eqcomi fveq2i zrh1 3eqtr3d 3ad2ant1 3eqtrd
      1z ) BUANZGUBNZEAGUCOZUDNZUIZEHCUEOZECOZHOZPUFZHOZDFOZWHAUGUHOPWLUJUKQZUL
      OZCUMZEANZWIWKRWEWDWQWGWECGUNOZWOUOQNWQGWSWOCWSSZJWOSUPWSWOCAWPLWPSUQURUS
      WGWDWRWEEAWFVBUTAWPEHCVAVCWHWJWLHWEWGWJWLRWDGAWSECWTLJVDVEVFWDWEWMWNRWGWD
      PTVGOZOZHOZPHOZFOZWMWNWDHTBUOQNZPVLNZXCXERWDHTBVHQNXFBHIVITBHVJURXGWDWCVM
      VLTBHXAFPVKXASMVNVCXCWMRWDXBWLHWLXBXGWLXBRWCPVOVPVQVRVMWDXDDFBDHIKVSVFVTW
      AWB $.
  $}

  ${
    $d P p $.  $d Q p $.
    zrhcofipsgn.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    zrhcofipsgn.y $e |- Y = ( ZRHom ` R ) $.
    zrhcofipsgn.s $e |- S = ( pmSgn ` N ) $.
    $( Composition of a ` ZRHom ` homomorphism and the sign function for a
       finite permutation.  (Contributed by AV, 27-Dec-2018.) $)
    zrhcofipsgn $p |- ( ( N e. Fin /\ Q e. P )
                         -> ( ( Y o. S ) ` Q ) = ( Y ` ( S ` Q ) ) ) $=
      ( vp cfn wcel wa cv cid cdif cdm cfv wceq eqid crab wfn ccom csymg psgnfn
      simpr sygbasnfpfi difeq1 dmeqd eleq1d elrab sylanbrc fvco2 sylancr ) EKLZ
      BALZMZDJNZOPZQZKLZJAUAZUBBVBLZBFDUCRBDRFRSAEVBEUDRZDJVDTZGVBTIUEUQUPBOPZQ
      ZKLZVCUOUPUFAEBVDVEGUGVAVHJBAURBSZUTVGKVIUSVFURBOUHUIUJUKULVBFDBUMUN $.
  $}

  ${
    zrhpsgnelbas.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    zrhpsgnelbas.s $e |- S = ( pmSgn ` N ) $.
    zrhpsgnelbas.y $e |- Y = ( ZRHom ` R ) $.
    $( Embedding of permutation signs into a ring results in an element of the
       ring.  (Contributed by AV, 1-Jan-2019.) $)
    zrhpsgnelbas $p |- ( ( R e. Ring /\ N e. Fin /\ Q e. P )
                         -> ( Y ` ( S ` Q ) ) e. ( Base ` R ) ) $=
      ( cfv c1 wcel wceq eqid eqeltrd 3ad2ant1 fveq2 eleq1d syl5ibr neg1z wo wi
      cneg cpr crg cfn w3a cbs psgnran 3adant1 cur zrh1 ringidcl cmg co zrhmulg
      elpri cz mpan2 cgrp ringgrp a1i mulgcl syl3anc jaoi syl mpcom ) BDJZKKUCZ
      UDLZCUELZEUFLZBALZUGZVHFJZCUHJZLZVLVMVJVKABDEGHUIUJVJVHKMZVHVIMZUAVNVQUBZ
      VHKVIUQVRVTVSVNVQVRKFJZVPLZVKVLWBVMVKWACUKJZVPCWCFIWCNZULVPCWCVPNZWDUMZOP
      VRVOWAVPVHKFQRSVNVQVSVIFJZVPLZVKVLWHVMVKWGVIWCCUNJZUOZVPVKVIURLZWGWJMTCWI
      WCFVIIWINZWDUPUSVKCUTLWKWCVPLWJVPLCVAWKVKTVBWFVPWICVIWCWEWLVCVDOPVSVOWGVP
      VHVIFQRSVEVFVG $.

    $( Embedding of permutation signs into a ring results in an element of the
       ring.  (Contributed by AV, 1-Jan-2019.) $)
    zrhcopsgnelbas $p |- ( ( R e. Ring /\ N e. Fin /\ Q e. P )
                           -> ( ( Y o. S ) ` Q ) e. ( Base ` R ) ) $=
      ( crg wcel cfn w3a ccom cfv cbs wceq zrhcofipsgn 3adant1 zrhpsgnelbas
      eqeltrd ) CJKZELKZBAKZMBFDNOZBDOFOZCPOUCUDUEUFQUBABCDEFGIHRSABCDEFGHITUA
      $.
  $}

  ${
    $d S f g $.  $d D f g $.  $d P f g $.  $d F f g $.
    evpmodpmf1o.s $e |- S = ( SymGrp ` D ) $.
    evpmodpmf1o.p $e |- P = ( Base ` S ) $.
    $( The function for performing an even permutation after a fixed odd
       permutation is one to one onto all odd permutations.  (Contributed by
       SO, 9-Jul-2018.) $)
    evpmodpmf1o $p |- ( ( D e. Fin /\ F e. ( P \ ( pmEven ` D ) ) ) ->
        ( f e. ( pmEven ` D ) |-> ( F ( +g ` S ) f ) ) :
            ( pmEven ` D ) -1-1-onto-> ( P \ ( pmEven ` D ) ) ) $=
      ( vg wcel cfv wa co cmpt c1 wceq ad2antrr eqid syl3anc cmul adantr cfn cv
      cevpm cdif cplusg cminusg cneg simpll cgrp symggrp eldifi ad2antlr evpmss
      cpsgn sseli adantl grpcl ccnfld cmgp cpr cress cghm psgnghm2 cvv cnfldmul
      mgpplusg ressplusg ghmlin psgnodpm psgnevpm adantlr oveq12d ax-1cn mulm1i
      prex ax-mp syl6eq eqtrd psgnodpmr grpinvcl syl2an ccnv symginv syl fveq2d
      fmptd psgninv syl2anc oveq1d neg1mulneg1e1 3eqtrd psgnevpmb mpbir2and cid
      ccom cres eqidd oveq2 fmptco c0g grplinv grpass syl13anc grplid mpteq2dva
      wb 3eqtr3d mptresid grprinv fcof1od ) AUAIZEBAUCJZUDZIZKZXLXMDXLEDUBZCUEJ
      ZLZMZHXMECUFJZJZHUBZXQLZMZXODXLXRXMXSXOXPXLIZKZXKXRBIZXRAUNJZJZNUGZOXRXMI
      XKXNYEUHYFCUIIZEBIZXPBIZYGXKYKXNYEACUAFUJZPZXNYLXKYEEBXLUKZULZYEYMXOXLBXP
      ABCFGUMUOUPZBXQCEXPGXQQZUQRYFYIEYHJZXPYHJZSLZYJYFYHCURUSJZNYJUTZVALZVBLIZ
      YLYMYIUUBOXKUUFXNYEACUUEYHFYHQZUUEQZVCZPYQYRXQSCUUEEYHXPBGYSUUDVDISUUEUEJ
      ONYJVOUUDSUUCUUEVDUUHURSUUCUUCQVEVFVGVPZVHRYFUUBYJNSLYJYFYTYJUUANSXOYTYJO
      ZYEABCEYHFGUUGVIZTXKYEUUANOXNABCXPYHFGUUGVJVKVLNVMVNVQVRABCXRYHFGUUGVSRZX
      SQWFXOHXMYCXLYDXOYBXMIZKZYCXLIZYCBIZYCYHJZNOZUUOYKYABIZYBBIZUUQXKYKXNUUNY
      NPZXOUUTUUNXKYKYLUUTXNYNYPBCXTEGXTQZVTWAZTZUUNUVAXOYBBXLUKUPZBXQCYAYBGYSU
      QRUUOUURYAYHJZYBYHJZSLZEWBZYHJZYJSLZNUUOUUFUUTUVAUURUVIOXKUUFXNUUNUUIPUVE
      UVFXQSCUUEYAYHYBBGYSUUJVHRUUOUVGUVKUVHYJSUUOYAUVJYHXNYAUVJOZXKUUNXNYLUVMY
      PABECXTFGUVCWCWDULWEXKUUNUVHYJOXNABCYBYHFGUUGVIVKVLUUOUVLYJYJSLNUUOUVKYJY
      JSUUOUVKYTYJUUOXKYLUVKYTOXKXNUUNUHXNYLXKUUNYPULZABCEYHFUUGGWGWHXOUUKUUNUU
      LTVRWIWJVQWKXKUUPUUQUUSKXFXNUUNABCYCYHFGUUGWLPWMZYDQWFXOYDXSWOZDXLXPMZWNX
      LWPXOUVPDXLYAXRXQLZMUVQXODHXLXMXRYCUVRXSYDUUMXOXSWQZXOYDWQZYBXRYAXQWRWSXO
      DXLUVRXPYFYAEXQLZXPXQLZCWTJZXPXQLZUVRXPYFUWAUWCXPXQYFYKYLUWAUWCOYOYQBXQCX
      TEUWCGYSUWCQZUVCXAWHWIYFYKUUTYLYMUWBUVROYOXOUUTYEUVDTYQYRBXQCYAEXPGYSXBXC
      YFYKYMUWDXPOYOYRBXQCXPUWCGYSUWEXDWHXGXEVRDXLXHVQXOXSYDWOZHXMYBMZWNXMWPXOU
      WFHXMEYCXQLZMUWGXOHDXMXLYCXRUWHYDXSUVOUVTUVSXPYCEXQWRWSXOHXMUWHYBUUOEYAXQ
      LZYBXQLZUWCYBXQLZUWHYBXOUWJUWKOUUNXOUWIUWCYBXQXKYKYLUWIUWCOXNYNYPBXQCXTEU
      WCGYSUWEUVCXIWAWITUUOYKYLUUTUVAUWJUWHOUVBUVNUVEUVFBXQCEYAYBGYSXBXCUUOYKUV
      AUWKYBOUVBUVFBXQCYBUWCGYSUWEXDWHXGXEVRHXMXHVQXJ $.

    pmtrodpm.t $e |- T = ran ( pmTrsp ` D ) $.
    $( A transposition is an odd permutation.  (Contributed by SO,
       9-Jul-2018.) $)
    pmtrodpm $p |- ( ( D e. Fin /\ F e. T ) -> F e. ( P \ ( pmEven ` D ) ) ) $=
      ( cfn wcel wa cpsgn cfv c1 cneg wceq cevpm cdif simpl adantl symgtrf eqid
      sseli psgnpmtr psgnodpmr syl3anc ) AIJZEDJZKUGEBJZEALMZMNOPZEBAQMRJUGUHSU
      HUIUGDBEBADCHFGUAUCTUHUKUGAEDCUJFHUJUBZUDTABCEUJFGULUEUF $.
  $}

  ${
    $d K q $.  $d K w $.  $d N w $.  $d P q $.  $d Q w $.  $d S w $.  $d T w $.
    psgnfix.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    psgnfix.t $e |- T = ran ( pmTrsp ` ( N \ { K } ) ) $.
    psgnfix.s $e |- S = ( SymGrp ` ( N \ { K } ) ) $.
    $( A permutation of a finite set fixing one element is generated by
       transpositions not involving the fixed element.  (Contributed by AV,
       13-Jan-2019.) $)
    psgnfix1 $p |- ( ( N e. Fin /\ K e. N )
                      -> ( Q e. { q e. P | ( q ` K ) = K }
                 -> E. w e. Word T ( Q |` ( N \ { K } ) ) = ( S gsum w ) ) ) $=
      ( cfn wcel wa cv cfv wceq crab cbs eqid csn cdif cres cgsu co cword csymg
      wrex fveq2i symgfixelsi adantll wb diffi ad2antrr psgnfitr syl mpbid ex )
      GLMZFGMZNZCFHOPFQHBRZMZCGFUAZUBZUCZDAOUDUEQAEUFUHZVAVCNZVFDSPZMZVGUTVCVJU
      SVEBVBVICFGHIVBTDVEUGPSKUIVETUJUKVHVELMZVJVGULUSVKUTVCGVDUMUNAVIVFEDVEKVI
      TJUOUPUQUR $.

    $d Q q $.  $d R w $.  $d Z w $.
    psgnfix.z $e |- Z = ( SymGrp ` N ) $.
    psgnfix.r $e |- R = ran ( pmTrsp ` N ) $.
    $( A permutation of a finite set fixing one element is generated by
       transpositions not involving the fixed element.  (Contributed by AV,
       17-Jan-2019.) $)
    psgnfix2 $p |- ( ( N e. Fin /\ K e. N )
                      -> ( Q e. { q e. P | ( q ` K ) = K }
                           -> E. w e. Word R Q = ( Z gsum w ) ) ) $=
      ( wcel wa cv cfv cbs cfn wceq crab cgsu co cword wrex elrabi adantl csymg
      wb fveq2i eqtr4i psgnfitr bicomd ad2antrr mpbird ex ) HUAPZGHPZQZCGJRSGUB
      ZJBUCPZCIARUDUEUBADUFUGZVAVCQVDCBPZVCVEVAVBJCBUHUIUSVDVEUKUTVCUSVEVDABCDI
      HNBHUJSZTSITSKIVFTNULUMOUNUOUPUQUR $.

    $d k q $.  $d K i k n $.  $d N i k n $.  $d P k $.  $d Q k $.  $d R k $.
    $d S i k n $.  $d T k $.  $d U i k n $.  $d W i k n $.  $d Z i k n $.
    $( Lemma 1 for ~ psgndif .  (Contributed by AV, 27-Jan-2019.) $)
    psgndiflemB $p |- ( ( ( N e. Fin /\ K e. N )
                   /\ Q e. { q e. P | ( q ` K ) = K } )
  -> ( ( W e. Word T /\ ( Q |` ( N \ { K } ) ) = ( S gsum W ) )
    -> ( ( U e. Word R /\ ( # ` W ) = ( # ` U )
         /\ A. i e. ( 0 ..^ ( # ` W ) ) ( ( ( U ` i ) ` K ) = K
            /\ A. n e. ( N \ { K } ) ( ( W ` i ) ` n ) = ( ( U ` i ) ` n ) ) )
                                                   -> Q = ( Z gsum U ) ) ) ) $=
      ( cfv wceq vk cfn wcel wa cv crab cword csn cdif cres cgsu chash wral cc0
      co cfzo w3a wfn elrabi csymg eqid symgbasf ffn 3syl ad3antlr simpl adantr
      wf simp1 anim12i cbs eqcomi fveq2i eqtri gsmtrcl syl wi ad3antrrr symgtrf
      simpr wss sswrd sseld ax-mp 3ad2ant1 adantl 3jca ralimi 3ad2ant3 wb oveq2
      eqcoms raleqdv 3ad2ant2 mpbird gsmsymgrfix sylc eqcomd fveq2 fveq1 eqeq1d
      elrab simprbi sylan9eqr eqeq12d ex com12 wne df-ne biimpri eldifsn sylibr
      fvres exp31 imp impcom anim2i diffi ancri ad2antrl simpr2 jca incom indif
      wn cin gsmsymgreq weq rspcva syl2anc 3eqtr3d pm2.61i eqfnfvd ) JUBUCZIJUC
      ZUDZBIMUEZSZITZMAUFUCZUDZKEUGZUCZBJIUHZUIZUJZDKUKUOZTZUDZFCUGZUCZKULSZFUL
      SZTZIGUEZFSZSITZHUEZUUOKSSUURUUPSTHUUEUMZUDZGUNUULUPUOZUMZUQZBLFUKUOZTUUA
      UUIUDZUVCUDZUAJBUVDYTBJURZYPUUIUVCYTBAUCZJJBVHUVGYSMBAUSJABJUTSZUVIVAZNVB
      JJBVCVDVEUVFUVDAUCZJJUVDVHUVDJURUVFYNUUKUDUVKUVEYNUVCUUKUUAYNUUIYPYNYTYNY
      OVFZVGVGUUKUUNUVBVIVJALCJFQAUVIVKSLVKSZNUVILVKLUVIQVLVMVNRVOVPJAUVDUVIUVJ
      NVBJJUVDVCVDUAUEZITZUVFUVNJUCZUDZUVNBSZUVNUVDSZTZVQUVQUVOUVTUVFUVOUVTVQUV
      PUVFUVOUVTUVFUVOUDZUVTIIUVDSZTZUVFUWCUVOUVFUWBIUVFYNYOFUVMUGZUCZUQUUQGUNU
      UMUPUOZUMZUWBITUVFYNYOUWEYPYNYTUUIUVCUVLVRYPYOYTUUIUVCYNYOVTVRUVCUWEUVEUU
      KUUNUWEUVBCUVMWAZUUKUWEVQUVMJCLRQUVMVAZVSUWHUUJUWDFCUVMWBWCWDWEWFZWGUVFUW
      GUUQGUVAUMZUVCUWKUVEUVBUUKUWKUUNUUTUUQGUVAUUQUUSVFWHWIWFUVCUWGUWKWJZUVEUU
      NUUKUWLUVBUUNUUQGUWFUVAUWFUVATUUMUULUUMUULUNUPWKWLWMWNWFWOUVMLGIJFQUWIWPW
      QWRVGUWAUVRIUVSUWBUVOUVFUVRIBSZIUVNIBWSYTUWMITZYPUUIUVCYTUVHUWNYSUWNMBAYQ
      BTYRUWMIIYQBWTXAXBXCVEXDUVOUVSUWBTUVFUVNIUVDWSWFXEWOXFVGXGUVOYEZUVQUVTUWO
      UVQUDZUVNUUFSZUVNUUGSZUVRUVSUVQUWQUWRTZUWOUUIUWSUUAUVCUVPUUHUWSUUCUVNUUFU
      UGWTWFVEWFUVQUWOUWQUVRTZUVFUVPUWOUWTVQZYPUVPUXAVQYTUUIUVCYPUVPUWOUWTYPUVP
      UDZUWOUDZUVNUUEUCZUWTUXCUVPUVNIXHZUDZUXDUXBUVPUWOUXEYPUVPVTUXEUWOUVNIXIXJ
      ZVJUVNJIXKZXLUVNUUEBXMVPXNVRXOXPUWPUXDUURUUGSZUURUVDSZTZHUUEUMZUWRUVSTZUV
      QUWOUXDUVPUWOUXDVQUVFUVPUWOUXDUVPUWOUDUXFUXDUWOUXEUVPUXGXQUXHXLXFWFXPUWPU
      UEUBUCZYNUDZKDVKSZUGZUCZUWEUUNUQZUDZUUSGUVAUMZUXLUVFUXTUWOUVPUVFUXOUXSYPU
      XOYTUUIUVCYNUXOYOYNUXNJUUDXRXSVGVRUVFUXRUWEUUNUVEUXRUVCUUCUXRUUAUUHEUXPWA
      ZUUCUXRVQUXPUUEEDOPUXPVAZVSUYBUUBUXQKEUXPWBWCWDXTVGUWJUVEUUKUUNUVBYAWGYBX
      TUVFUYAUWOUVPUVCUYAUVEUVBUUKUYAUUNUUTUUSGUVAUUQUUSVTWHWIWFXTUXPUVMDFGHUUE
      JUUEKLPUYCQUWIUUEJYFZUUEUYDJUUEYFUUEUUEJYCJUUDYDVNVLYGWQUXKUXMHUVNUUEHUAY
      HUXIUWRUXJUVSUURUVNUUGWSUURUVNUVDWSXEYIYJYKXFYLYMXN $.

    $d K r $.  $d N r $.  $d P r $.  $d Q q r $.  $d R i r $.  $d S r $.
    $d U r $.  $d T i n r $.  $d W i n r w $.
    $( Lemma 2 for ~ psgndif .  (Contributed by AV, 31-Jan-2019.) $)
    psgndiflemA $p |- ( ( ( N e. Fin /\ K e. N )
                   /\ Q e. { q e. P | ( q ` K ) = K } )
   -> ( ( W e. Word T /\ ( Q |` ( N \ { K } ) ) = ( S gsum W ) /\ U e. Word R )
                   -> ( Q = ( ( SymGrp ` N ) gsum U )
                        -> ( -u 1 ^ ( # ` W ) ) = ( -u 1 ^ ( # ` U ) ) ) ) ) $=
      ( wa cfv wceq co vr vi vn vw cfn wcel crab cword csn cdif cres cgsu csymg
      cv w3a c1 cneg chash cexp wi wral cc0 cfzo wrex fveq2 eqeq1d oveq2d fveq1
      fveq1d ralbidv anbi2d anbi12d rexbidv rspccv pmtrdifwrdel2 syl11 3ad2ant1
      raleqbidv com12 ad2antlr imp oveq2 adantr ad3antlr simplll simprr3 3simpa
      simplrl adantl simplrr psgndiflemB imp31 eqcomd syl23anc id eqcomi oveq1i
      syl6eq eqtrd psgnuni ex rexlimiva mpcom ) HUEUFZGHUFZQBGKUNRGSKAUGUFZQZIE
      UHZUFZBHGUIUJZUKDIULTSZFCUHZUFZUOZBHUMRZFULTZSZUPUQZIURRZUSTZXRFURRUSTZSZ
      UTZXSUAUNZURRZSZGUBUNZYDRZRGSZUCUNZYGIRZRZYJYHRZSZUCXJVAZQZUBVBXSVCTZVAZQ
      ZUAXLVDZXGXNQZYCXGXNYTXEXNYTUTXDXFXNXEYTXIXKXEYTUTXMUDUNZURRZYESZYIYJYGUU
      BRZRZYMSZUCXJVAZQZUBVBUUCVCTZVAZQZUAXLVDZUDXHVAXIYTXEUUMYTUDIXHUUBISZUULY
      SUAXLUUNUUDYFUUKYRUUNUUCXSYEUUBIURVEZVFUUNUUIYPUBUUJYQUUNUUCXSVBVCUUOVGUU
      NUUHYOYIUUNUUGYNUCXJUUNUUFYLYMUUNYJUUEYKYGUUBIVHVIVFVJVKVRVLVMVNUCUDUACEU
      BGHMPVOVPVQVSVTWAYSUUAYCUTUAXLYDXLUFZYSQZUUAYCUUQUUAQZXQYBUURXQQZXTXRYEUS
      TZYAYSXTUUTSZUUPUUAXQYFUVAYRXSYEXRUSWBWCWDUUSHCJUEYDFOPUUAXDUUQXQXDXEXFXN
      WEVTUUPYSUUAXQWEZUURXMXQXIXKXMXGUUQWFWCUUSJYDULTZBJFULTZUUSXGXIXKQZUUPYFY
      RUVCBSUUQXGXNXQWHUUAUVEUUQXQXNUVEXGXIXKXMWGWIVTUVBUURYFXQUUPYFYRUUAWHWCUU
      RYRXQUUPYFYRUUAWJWCXGUVEQUUPYFYRUOZQBUVCXGUVEUVFBUVCSABCDEYDUBUCGHIJKLMNO
      PWKWLWMWNXQBUVDSUURXQBXPUVDXQWOXOJFULJXOOWPWQWRWIWSWTWSXAXAXBXCXA $.
  $}

  ${
    $d K q r s w $.  $d N r s w $.  $d P q r s w $.  $d Q q r s w $.
    $d S r s $.  $d Z s w $.
    psgndif.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    psgndif.s $e |- S = ( pmSgn ` N ) $.
    psgndif.z $e |- Z = ( pmSgn ` ( N \ { K } ) ) $.
    $( Embedding of permutation signs restricted to a set without a single
       element into a ring.  (Contributed by AV, 31-Jan-2019.) $)
    psgndif $p |- ( ( N e. Fin /\ K e. N )
                     -> ( Q e. { q e. P | ( q ` K ) = K }
                          -> ( Z ` ( Q |` ( N \ { K } ) ) ) = ( S ` Q ) ) ) $=
      ( vw vs vr wcel wa cv cfv wceq co eqid cfn crab cdif cres csymg cgsu cneg
      csn chash cexp cpmtr crn cword wrex cio psgnfix2 imp ad2antrr psgndiflemA
      c1 wi w3a 3anassrs adantlrr wb eqeq1 ad2antll sylibrd ralrimiva r19.29imd
      adantr ex rexlimdva psgnfix1 simp-4l simpr simp-4r eqcomd impbid iotabidv
      syl3c cbs diffi symgfixelsi adantll psgnvalfi syl2anc simpl elrabi syl2an
      3jca 3eqtr4d ) EUANZDENZOZBDGPQDRZGAUBZNZBEDUHZUCZUDZFQZBCQZRWOWROZXAWTUE
      QZKPZUFSRZLPZUTUGZXFUIQUJSZRZOZKWTUKQULZUMZUNZLUOZBEUEQZMPZUFSRZXHXIXRUIQ
      UJSZRZOZMEUKQULZUMZUNZLUOZXBXCXDXOYELXDXOYEXDXLYEKXNXDXFXNNZOZXLYEYHXLOZX
      SYAMYDXDXSMYDUNZYGXLWOWRYJMABYCXEXMDEXQGHXMTZXETZXQTZYCTZUPUQURYIXSYAVAMY
      DYIXRYDNZOXSXJXTRZYAYHXGYOXSYPVAZXKXDYGXGYOYQXDYGXGYOVBZYQABYCXEXMXRDEXFX
      QGHYKYLYMYNUSZUQVCVDYIYAYPVEZYOXKYTYHXGXHXJXTVFVGVKVHVIVJVLVMXDYBXOMYDXDY
      OOZYBXOUUAYBOZXGXKKXNXDXGKXNUNZYOYBWOWRUUCKABXEXMDEGHYKYLVNUQURUUBXGXKVAK
      XNUUBYGOXGXTXJRZXKUUAXSYGXGUUDVAYAUUAXSOZYGOZXGUUDUUFXGOZXJXTUUGXDYRXSYPX
      DYOXSYGXGVOUUGYGXGYOUUFYGXGUUEYGVPVKUUFXGVPXDYOXSYGXGVQWKUUEXSYGXGUUAXSVP
      URYSWAVRVLVDUUBXKUUDVEZYGYAUUHUUAXSXHXTXJVFVGVKVHVIVJVLVMVSVTXDWTUANZXAXE
      WBQZNZXBXPRWMUUIWNWREWSWCURWNWRUUKWMWTAWQUUJBDEGHWQTUUJTZWTTWDWEKUUJWTXAX
      MXEFLYLUULYKJWFWGWOWMBANXCYFRWRWMWNWHWPGBAWIMAEBYCXQCLYMHYNIWFWJWLVL $.
  $}

  ${
    $d K q $.  $d P q $.  $d Q q $.
    zrhcopsgndif.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    zrhcopsgndif.s $e |- S = ( pmSgn ` N ) $.
    zrhcopsgndif.z $e |- Z = ( pmSgn ` ( N \ { K } ) ) $.
    zrhcopsgndif.y $e |- Y = ( ZRHom ` R ) $.
    $( Embedding of permutation signs restricted to a set without a single
       element into a ring.  (Contributed by AV, 31-Jan-2019.) $)
    zrhcopsgndif $p |- ( ( N e. Fin /\ K e. N )
                          -> ( Q e. { q e. P | ( q ` K ) = K }
                             -> ( ( Y o. Z ) ` ( Q |` ( N \ { K } ) ) )
                                = ( ( Y o. S ) ` Q ) ) ) $=
      ( cfn wcel wa cfv wceq ccom eqid cv crab csn cdif cres psgndif imp fveq2d
      csymg cbs ad2antrr symgfixelsi adantll zrhcofipsgn syl2anc elrabi adantlr
      diffi sylan2 3eqtr4d ex ) FNOZEFOZPZBEIUAQERZIAUBZOZBFEUCZUDZUEZGHSQZBGDS
      QZRVDVGPZVJHQZGQZBDQZGQZVKVLVMVNVPGVDVGVNVPRABDEFHIJKLUFUGUHVMVINOZVJVIUI
      QUJQZOZVKVORVBVRVCVGFVHURUKVCVGVTVBVIAVFVSBEFIJVFTVSTZVITULUMVSVJCHVIGWAM
      LUNUOVBVGVLVQRZVCVGVBBAOWBVEIBAUPABCDFGJMKUNUSUQUTVA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The ordered field of real numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c RRfld $.

  $( Extend class notation with the field of real numbers. $)
  crefld $a class RRfld $.

  $( The field of real numbers.  (Contributed by Thierry Arnoux,
     30-Jun-2019.) $)
  df-refld $a |- RRfld = ( CCfld |`s RR ) $.

  $( The base of the field of reals.  (Contributed by Thierry Arnoux,
     1-Nov-2017.) $)
  rebase $p |- RR = ( Base ` RRfld ) $=
    ( cr cc wss crefld cbs cfv wceq ax-resscn ccnfld df-refld cnfldbas ressbas2
    ax-mp ) ABCADEFGHABDIJKLM $.

  ${
    $d x y $.
    $( The multiplication (group power) operation of the group of reals.
       (Contributed by Thierry Arnoux, 1-Nov-2017.) $)
    remulg $p |- ( ( N e. ZZ /\ A e. RR )
      -> ( N ( .g ` RRfld ) A ) = ( N x. A ) ) $=
      ( vx vy cz wcel cr wa ccnfld cmg cfv co crefld cmul csubg wceq c1 cv recn
      eqid readdcl 1re cnsubglem df-refld subgmulg mp3an1 simpr recnd cnfldmulg
      renegcl cc syldan eqtr3d ) BEFZAGFZHZBAIJKZLZBAMJKZLZBANLZGIOKFUNUOURUTPC
      DGQCRZSVBDRUAVBUJUBUCGUSUQIMBAUQTUDUSTUEUFUNUOAUKFURVAPUPAUNUOUGUHBAUIULU
      M $.

    $( The real numbers form a division subring of the complex numbers.
       (Contributed by Mario Carneiro, 4-Dec-2014.)  (Revised by Thierry
       Arnoux, 30-Jun-2019.) $)
    resubdrg $p |- ( RR e. ( SubRing ` CCfld ) /\ RRfld e. DivRing ) $=
      ( vx vy cr ccnfld csubrg cfv wcel crefld wa cress co recn readdcl renegcl
      cdr cv 1re remulcl rereccl cnsubdrglem df-refld eleq1i anbi2i mpbir ) CDE
      FGZHOGZIUEDCJKZOGZIABCAPZLUIBPZMUINQUIUJRUISTUFUHUEHUGOUAUBUCUD $.

    resubgval.m $e |- .- = ( -g ` RRfld ) $.
    $( Subtraction in the field of real numbers.  (Contributed by Thierry
       Arnoux, 30-Jun-2019.) $)
    resubgval $p |- ( ( X e. RR /\ Y e. RR ) -> ( X - Y ) = ( X .- Y ) ) $=
      ( cr ccnfld csubg cfv wcel cmin co wceq csubrg crefld cdr resubdrg simpli
      subrgsubg ax-mp cnfldsub df-refld subgsub mp3an1 ) EFGHIZBEICEIBCJKBCAKLE
      FMHIZUDUENOIPQEFRSEFNJABCTUADUBUC $.
  $}

  $( The addition operation of the field of reals.  (Contributed by Thierry
     Arnoux, 21-Jan-2018.) $)
  replusg $p |- + = ( +g ` RRfld ) $=
    ( cr cvv wcel caddc crefld cplusg cfv wceq reex df-refld cnfldadd ressplusg
    ccnfld ax-mp ) ABCDEFGHIADMEBJKLN $.

  $( The multiplication operation of the field of reals.  (Contributed by
     Thierry Arnoux, 1-Nov-2017.) $)
  remulr $p |- x. = ( .r ` RRfld ) $=
    ( cr cvv wcel cmul crefld cmulr wceq reex ccnfld df-refld cnfldmul ressmulr
    cfv ax-mp ) ABCDEFMGHAIEDBJKLN $.

  $( The neutral element of the field of reals.  (Contributed by Thierry
     Arnoux, 1-Nov-2017.) $)
  re0g $p |- 0 = ( 0g ` RRfld ) $=
    ( ccnfld cmnd wcel cc0 cr wss crefld c0g cfv wceq ccrg crg crngring ringmnd
    cc cncrng mp2b 0re ax-resscn df-refld cnfldbas cnfld0 ress0g mp3an ) ABCZDE
    CEOFDGHIJAKCALCUEPAMANQRSEOAGDTUAUBUCUD $.

  $( The multiplicative neutral element of the field of reals.  (Contributed by
     Thierry Arnoux, 1-Nov-2017.) $)
  re1r $p |- 1 = ( 1r ` RRfld ) $=
    ( cr ccnfld csubrg cfv wcel c1 crefld cur wceq cdr resubdrg simpli df-refld
    cnfld1 subrg1 ax-mp ) ABCDEZFGHDIQGJEKLABGFMNOP $.

  $( The ordering relation of the field of reals.  (Contributed by Thierry
     Arnoux, 21-Jan-2018.) $)
  rele2 $p |- <_ = ( le ` RRfld ) $=
    ( cr cvv wcel cle crefld cple cfv wceq ccnfld df-refld cnfldle ressle ax-mp
    reex ) ABCDEFGHNAIDBEJKLM $.

  $( The ordering relation of the field of reals.  (Contributed by Thierry
     Arnoux, 21-Jan-2018.) $)
  relt $p |- < = ( lt ` RRfld ) $=
    ( clt cle cid cdif crefld cplt cfv dflt2 wcel wceq ccnfld cr cress df-refld
    cvv co ovex eqeltri rele2 eqid pltfval ax-mp eqtr4i ) ABCDZEFGZHEOIUEUDJEKL
    MPONKLMQROUEEBSUETUAUBUC $.

  $( The distance of the field of reals.  (Contributed by Thierry Arnoux,
     20-Jun-2019.) $)
  reds $p |- ( abs o. - ) = ( dist ` RRfld ) $=
    ( cr cvv wcel cabs cmin ccom crefld cds cfv wceq reex ccnfld cnfldds ressds
    df-refld ax-mp ) ABCDEFZGHIJKAQLGBOMNP $.

  $( The division operation of the field of reals.  (Contributed by Thierry
     Arnoux, 1-Nov-2017.) $)
  redvr $p |- ( ( A e. RR /\ B e. RR /\ B =/= 0 )
    -> ( A ( /r ` RRfld ) B ) = ( A / B ) ) $=
    ( wcel cc0 wne w3a cdiv crefld cdvr cfv ccnfld csubrg cui wceq cdr resubdrg
    cr co simpli eqid a1i simp1 wa 3simpc wb simpri rebase re0g drngunit sylibr
    ax-mp df-refld cnflddiv subrgdv syl3anc eqcomd ) AQCZBQCZBDEZFZABGRZABHIJZR
    ZUTQKLJCZUQBHMJZCZVAVCNVDUTVDHOCZPSUAUQURUSUBUTURUSUCZVFUQURUSUDVGVFVHUEVDV
    GPUFQHVEBDUGVETZUHUIUKUJQGKHVEVBABULUMVIVBTUNUOUP $.

  $( The real numbers are a totally ordered set.  (Contributed by Thierry
     Arnoux, 21-Jan-2018.) $)
  retos $p |- RRfld e. Toset $=
    ( vx crefld ctos wcel cr clt wor cid cres cle wss ltso cv wbr idref mprgbir
    leid cvv ccnfld cress wa wb co df-refld ovex eqeltri rele2 relt tosso ax-mp
    rebase mpbir2an ) BCDZEFGZHEIJKZLUOAMZUPJNAEAEJOUPQPBRDUMUNUOUAUBBSETUCRUDS
    ETUEUFEFBJRUKUGUHUIUJUL $.

  $( The real numbers form a field.  (Contributed by Thierry Arnoux,
     1-Nov-2017.) $)
  refld $p |- RRfld e. Field $=
    ( crefld cfield wcel cdr ccrg cr ccnfld csubrg cfv resubdrg simpri cress co
    df-refld cncrng simpli eqid subrgcrng mp2an eqeltri isfld mpbir2an ) ABCADC
    ZAECFGHICZUCJKAGFLMZENGECUDUEECOUDUCJPFGUEUEQRSTAUAUB $.

  $( The conjugation operation of the field of real numbers.  (Contributed by
     Thierry Arnoux, 30-Jun-2019.) $)
  refldcj $p |- * = ( *r ` RRfld ) $=
    ( cr cvv wcel ccj crefld cstv cfv wceq reex ccnfld df-refld ressstarv ax-mp
    cnfldcj ) ABCDEFGHIAJEDBKNLM $.

  $( The real numbers form a star ring.  (Contributed by Thierry Arnoux,
     19-Apr-2019.) $)
  recrng $p |- RRfld e. *Ring $=
    ( vx crefld csr wcel wtru cr ccj rebase refldcj ccrg cdr cfield refld isfld
    wa mpbi simpri a1i cv cfv wceq cjre adantl idsrngd trud ) BCDEAFBGHIBJDZEBK
    DZUFBLDUGUFOMBNPQRASZFDUHGTUHUAEUHUBUCUDUE $.

  ${
    $d F x $.  $d I x $.  $d V x $.
    $( The group sum over the real numbers, expressed as a finite sum.
       (Contributed by Thierry Arnoux, 22-Jun-2019.)  (Proof shortened by AV,
       19-Jul-2019.) $)
    regsumsupp $p |- ( ( F : I --> RR /\ F finSupp 0 /\ I e. V )
      -> ( RRfld gsum F ) = sum_ x e. ( F supp 0 ) ( F ` x ) ) $=
      ( cr wf cc0 wcel crefld co ccnfld cc cnfldbas wss ax-resscn a1i caddc cvv
      cgsu wceq cfsupp wbr w3a csupp cres cv cfv cmpt csu cnfld0 cnring ringcmn
      crg ccmn mp1i simp3 simp1 fss sylancl ssid simp2 gsumres cnfldadd cnfldex
      df-refld 0red wa addid2d addid1d jca gsumress eqtr2d cdm suppssdm fdm syl
      simpr syl5sseq feqresmpt oveq2d cfn id fsuppimpd 3ad2ant2 simpl1 ffvelrnd
      sselda recnd gsumfsum 3eqtrd ) CEBFZBGUAUBZCDHZUCZIBSJZKBBGUDJZUEZSJZKAWP
      AUFZBUGZUHZSJWPWTAUIWNWRKBSJWOWNCLBKDWPGMUJKUMHKUNHWNUKKULUOWKWLWMUPZWNWK
      ELNZCLBFWKWLWMUQZOCELBURUSWPWPNWNWPUTPWKWLWMVAVBWNACLQEBKIRDGMVCVEKRHWNVD
      PXBXCWNOPXDWNVFWNWSLHZVGZGWSQJWSTWSGQJWSTXFWSWNXEVQZVHXFWSXGVIVJVKVLWNWQX
      AKSWNACEWPBXDWNBVMZWPCBGVNWNWKXHCTXDCEBVOVPVRZVSVTWNWPWTAWLWKWPWAHWMWLBGW
      LWBWCWDWNWSWPHZVGZWTXKCEWSBWKWLWMXJWEWNWPCWSXIWGWFWHWIWJ $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Generalized pre-Hilbert and Hilbert spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c PreHil $.
  $c .if $.

  $( Extend class notation with class of all pre-Hilbert spaces. $)
  cphl $a class PreHil $.

  $( Extend class notation with inner product function. $)
  cipf $a class .if $.

  ${
    $d f g h v F $.  $d f g h v ., $.  $d f g h v x y V $.  $d f g h v x y W $.
    $d f g h v .* $.  $d f g h v .0. $.  $d f g h v Z $.
    $( Define the class of all pre-Hilbert spaces (inner product spaces) over
       arbitrary fields with involution.  (Some textbook definitions are more
       restrictive and require the field of scalars to be the field of real or
       complex numbers).  (Contributed by NM, 22-Sep-2011.) $)
    df-phl $a |- PreHil = { g e. LVec |
      [. ( Base ` g ) / v ]. [. ( .i ` g ) / h ]. [. ( Scalar ` g ) / f ].
        ( f e. *Ring /\ A. x e. v
         ( ( y e. v |-> ( y h x ) ) e. ( g LMHom ( ringLMod ` f ) )
        /\ ( ( x h x ) = ( 0g ` f ) -> x = ( 0g ` g ) )
        /\ A. y e. v ( ( *r ` f ) ` ( x h y ) ) = ( y h x ) ) ) } $.

    $( Define the inner product function.  Usually we will use ` .i ` directly
       instead of ` .if ` , and they have the same behavior in most cases.  The
       main advantage of ` .if ` is that it is a guaranteed function
       ( ~ ipffn ), while ` .i ` only has closure ( ~ ipcl ).  (Contributed by
       Mario Carneiro, 12-Aug-2015.) $)
    df-ipf $a |- .if = ( g e. _V |->
      ( x e. ( Base ` g ) , y e. ( Base ` g ) |-> ( x ( .i ` g ) y ) ) ) $.

    isphl.v $e |- V = ( Base ` W ) $.
    isphl.f $e |- F = ( Scalar ` W ) $.
    isphl.h $e |- ., = ( .i ` W ) $.
    isphl.o $e |- .0. = ( 0g ` W ) $.
    isphl.i $e |- .* = ( *r ` F ) $.
    isphl.z $e |- Z = ( 0g ` F ) $.
    $( The predicate "is a generalized pre-Hilbert (inner product) space".
       (Contributed by NM, 22-Sep-2011.)  (Revised by Mario Carneiro,
       7-Oct-2015.) $)
    isphl $p |- ( W e. PreHil <-> ( W e. LVec /\ F e. *Ring /\ A. x e. V
          ( ( y e. V |-> ( y ., x ) ) e. ( W LMHom ( ringLMod ` F ) )
         /\ ( ( x ., x ) = Z -> x = .0. )
         /\ A. y e. V ( .* ` ( x ., y ) ) = ( y ., x ) ) ) ) $=
      ( wcel co cfv wceq fveq2d vf vv vh vg cphl clvec cv cmpt crglmod clmhm wi
      csr wral w3a wa c0g cstv csca wsbc cip cbs cvv fvexd id syl6eqr sylan9eqr
      simpll eleq1d simpllr simplll eqtrd simplr oveqd mpteq12dv oveq12d eqeq2d
      eleq12d eqeq12d imbi12d fveq12d raleqbidv 3anbi123d anbi12d sbcied df-phl
      elrab2 3anass bitr4i ) GUEPGUFPZCULPZBFBUGZAUGZDQZUHZGCUIRZUJQZPZWLWLDQZI
      SZWLHSZUKZWLWKDQZERZWMSZBFUMZUNZAFUMZUOZUOWIWJXGUNUAUGZULPZBUBUGZWKWLUCUG
      ZQZUHZUDUGZXIUIRZUJQZPZWLWLXLQZXIUPRZSZWLXOUPRZSZUKZWLWKXLQZXIUQRZRZXMSZB
      XKUMZUNZAXKUMZUOZUAXOURRZUSZUCXOUTRZUSZUBXOVARZUSXHUDGUFUEXOGSZYPXHUBYQVB
      YRXOVAVCYRXKYQSZUOZYNXHUCYOVBYTXOUTVCYTXLYOSZUOZYLXHUAYMVBUUBXOURVCUUBXIY
      MSZUOZXJWJYKXGUUDXICULUUCUUBXIYMCUUCVDUUBYMGURRCUUBXOGURYRYSUUAVGTKVEVFZV
      HUUDYJXFAXKFUUDXKYQFYRYSUUAUUCVIUUDYQGVARFUUDXOGVAYRYSUUAUUCVJZTJVEVKZUUD
      XRWQYDXAYIXEUUDXNWNXQWPUUDBXKXMFWMUUGUUDXLDWKWLUUDXLYODYTUUAUUCVLUUDYOGUT
      RDUUDXOGUTUUFTLVEVKZVMZVNUUDXOGXPWOUJUUFUUDXICUIUUETVOVQUUDYAWSYCWTUUDXSW
      RXTIUUDXLDWLWLUUHVMUUDXTCUPRIUUDXICUPUUETOVEVRUUDYBHWLUUDYBGUPRHUUDXOGUPU
      UFTMVEVPVSUUDYHXDBXKFUUGUUDYGXCXMWMUUDYEXBYFEUUDYFCUQREUUDXICUQUUETNVEUUD
      XLDWLWKUUHVMVTUUIVRWAWBWAWCWDWDWDABUBUAUDUCWEWFWIWJXGWGWH $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x C $.  $d y G $.  $d x y ., $.  $d x y .* $.
    $d y F $.  $d x K $.  $d x .0. $.  $d x .x. $.  $d x y V $.  $d x y W $.
    $d x Z $.
    $( A pre-Hilbert space is a left vector space.  (Contributed by Mario
       Carneiro, 7-Oct-2015.) $)
    phllvec $p |- ( W e. PreHil -> W e. LVec ) $=
      ( vy vx cphl wcel clvec csca cfv csr cbs cv cip co cmpt crglmod clmhm c0g
      wceq wral eqid wi cstv w3a isphl simp1bi ) ADEAFEAGHZIEBAJHZBKZCKZALHZMZN
      AUFOHPMEUIUIUJMUFQHZRUIAQHZRUAUIUHUJMUFUBHZHUKRBUGSUCCUGSCBUFUJUNUGAUMULU
      GTUFTUJTUMTUNTULTUDUE $.

    $( A pre-Hilbert space is a left module.  (Contributed by Mario Carneiro,
       7-Oct-2015.) $)
    phllmod $p |- ( W e. PreHil -> W e. LMod ) $=
      ( cphl wcel clvec clmod phllvec lveclmod syl ) ABCADCAECAFAGH $.

    phlsrng.f $e |- F = ( Scalar ` W ) $.
    $( The scalar ring of a pre-Hilbert space is a star ring.  (Contributed by
       Mario Carneiro, 7-Oct-2015.) $)
    phlsrng $p |- ( W e. PreHil -> F e. *Ring ) $=
      ( vy vx cphl wcel clvec csr cbs cfv cv cip co cmpt crglmod wceq wral eqid
      c0g clmhm wi cstv w3a isphl simp2bi ) BFGBHGAIGDBJKZDLZELZBMKZNZOBAPKUANG
      UIUIUJNATKZQUIBTKZQUBUIUHUJNAUCKZKUKQDUGRUDEUGREDAUJUNUGBUMULUGSCUJSUMSUN
      SULSUEUF $.

    phllmhm.h $e |- ., = ( .i ` W ) $.
    phllmhm.v $e |- V = ( Base ` W ) $.
    ${
      phllmhm.g $e |- G = ( x e. V |-> ( x ., A ) ) $.
      $( The inner product of a pre-Hilbert space is linear in its left
         argument.  (Contributed by Mario Carneiro, 7-Oct-2015.) $)
      phllmhm $p |- ( ( W e. PreHil /\ A e. V ) ->
        G e. ( W LMHom ( ringLMod ` F ) ) ) $=
        ( vy wcel cv co cmpt cfv wral wceq eqid cphl crglmod clmhm c0g cstv w3a
        clvec csr isphl simp3bi simp1 ralimi syl oveq2 mpteq2dv syl6eqr rspccva
        wi eleq1d sylan ) GUAMZAFANZLNZEOZPZGCUBQUCOZMZLFRZBFMDVFMZVAVGVCVCEOCU
        DQZSVCGUDQZSURZVCVBEOCUEQZQVDSAFRZUFZLFRZVHVAGUGMCUHMVPLACEVMFGVKVJJHIV
        KTVMTVJTUIUJVOVGLFVGVLVNUKULUMVGVILBFVCBSZVEDVFVQVEAFVBBEOZPDVQAFVDVRVC
        BVBEUNUOKUPUSUQUT $.
    $}

    ${
      ipcl.f $e |- K = ( Base ` F ) $.
      $( Closure of the inner product operation in a pre-Hilbert space.
         (Contributed by Mario Carneiro, 7-Oct-2015.) $)
      ipcl $p |- ( ( W e. PreHil /\ A e. V /\ B e. V ) -> ( A ., B ) e. K ) $=
        ( vx cphl wcel co cv wral wa cfv cbs cmpt wf crglmod clmhm eqid phllmhm
        rlmbas eqtri lmhmf fmpt sylibr wceq oveq1 eleq1d rspccva stoic3 3com23
        syl ) GMNZBFNZAFNZABDOZENZUSUTLPZBDOZENZLFQZVAVCUSUTRZFELFVEUAZUBZVGVHV
        IGCUCSZUDONVJLBCVIDFGHIJVIUEZUFFEGVKVIJECTSVKTSKCUGUHUIURLFEVEVIVLUJUKV
        FVCLAFVDAULVEVBEVDABDUMUNUOUPUQ $.
    $}

    ${
      ipcj.i $e |- .* = ( *r ` F ) $.
      $( Conjugate of an inner product in a pre-Hilbert space.  Equation I1 of
         [Ponnusamy] p. 362.  (Contributed by NM, 1-Feb-2007.)  (Revised by
         Mario Carneiro, 7-Oct-2015.) $)
      ipcj $p |- ( ( W e. PreHil /\ A e. V /\ B e. V ) ->
        ( .* ` ( A ., B ) ) = ( B ., A ) ) $=
        ( vx vy wcel co cfv wceq cv wral c0g cphl wa crglmod clmhm wi w3a clvec
        cmpt csr eqid isphl simp3bi simp3 ralimi syl oveq1 fveq2d oveq2 eqeq12d
        rspc2v syl5com 3impib ) GUANZAFNZBFNZABDOZEPZBADOZQZVCLRZMRZDOZEPZVKVJD
        OZQZMFSZLFSZVDVEUBVIVCMFVNUHGCUCPUDONZVJVJDOCTPZQVJGTPZQUEZVPUFZLFSZVQV
        CGUGNCUINWCLMCDEFGVTVSJHIVTUJKVSUJUKULWBVPLFVRWAVPUMUNUOVOVIAVKDOZEPZVK
        ADOZQLMABFFVJAQZVMWEVNWFWGVLWDEVJAVKDUPUQVJAVKDURUSVKBQZWEVGWFVHWHWDVFE
        VKBADURUQVKBADUPUSUTVAVB $.
    $}

    ${
      ip0l.z $e |- Z = ( 0g ` F ) $.
      $( Orthogonality (meaning inner product is 0) is commutative.
         (Contributed by NM, 17-Apr-2008.)  (Revised by Mario Carneiro,
         7-Oct-2015.) $)
      iporthcom $p |- ( ( W e. PreHil /\ A e. V /\ B e. V ) ->
        ( ( A ., B ) = Z <-> ( B ., A ) = Z ) ) $=
        ( wcel co cfv wceq 3ad2ant1 eqid syl stafval eqtrd cphl w3a cstf cbs wb
        wf1 wf1o phlsrng srngf1o f1of1 3syl ipcl clmod phllmod lmod0cl syl12anc
        csr f1fveq cstv ipcj srng0 eqeq12d bitr3d ) FUALZAELZBELZUBZABDMZCUCNZN
        ZGVINZOZVHGOZBADMZGOVGCUDNZVOVIUFZVHVOLZGVOLZVLVMUEVGCUQLZVOVOVIUGVPVDV
        EVSVFCFHUHPZVOCVIVIQZVOQZUIVOVOVIUJUKABCDVOEFHIJWBULZVGFUMLZVRVDVEWDVFF
        UNPCVOFGHWBKUORZVOVOVHGVIURUPVGVJVNVKGVGVJVHCUSNZNZVNVGVQVJWGOWCVHVOCVI
        WFWBWFQZWASRABCDWFEFHIJWHUTTVGVKGWFNZGVGVRVKWIOWEGVOCVIWFWBWHWASRVGVSWI
        GOVTCWFGWHKVARTVBVC $.

      ip0l.o $e |- .0. = ( 0g ` W ) $.
      $( Inner product with a zero first argument.  Part of proof of Theorem
         6.44 of [Ponnusamy] p. 361.  (Contributed by NM, 5-Feb-2007.)
         (Revised by Mario Carneiro, 7-Oct-2015.) $)
      ip0l $p |- ( ( W e. PreHil /\ A e. V ) -> ( .0. ., A ) = Z ) $=
        ( vx cphl wcel co cfv wceq 3syl c0g wa cv clmod phllmod lmodgrp grpidcl
        cmpt cgrp adantr oveq1 eqid ovex fvmpt crglmod clmhm cghm phllmhm lmghm
        syl rlm0 eqtri ghmid eqtr3d ) ENOZADOZUAZFMDMUBZACPZUGZQZFACPZGVFFDOZVJ
        VKRVDVLVEVDEUCOEUHOVLEUDEUEDEFJLUFSUIMFVHVKDVIVGFACUJVIUKZFACULUMUSVFVI
        EBUNQZUOPOVIEVNUPPOVJGRMABVICDEHIJVMUQEVNVIUREVNVIFGLGBTQVNTQKBUTVAVBSV
        C $.

      $( Inner product with a zero second argument.  (Contributed by NM,
         5-Feb-2007.)  (Revised by Mario Carneiro, 7-Oct-2015.) $)
      ip0r $p |- ( ( W e. PreHil /\ A e. V ) -> ( A ., .0. ) = Z ) $=
        ( cphl wcel wa co cfv wceq adantr syl cstv ip0l fveq2d phllmod lmod0vcl
        clmod eqid ipcj 3expa an32s mpdan csr phlsrng srng0 3eqtr3d ) EMNZADNZO
        ZFACPZBUAQZQZGUTQZAFCPZGURUSGUTABCDEFGHIJKLUBUCURFDNZVAVCRZUREUFNZVDUPV
        FUQEUDSDEFJLUETUPVDUQVEUPVDUQVEFABCUTDEHIJUTUGZUHUIUJUKURBULNZVBGRUPVHU
        QBEHUMSBUTGVGKUNTUO $.

      $( The inner product of a vector with itself is zero iff the vector is
         zero.  Part of Definition 3.1-1 of [Kreyszig] p. 129.  (Contributed by
         NM, 24-Jan-2008.)  (Revised by Mario Carneiro, 7-Oct-2015.) $)
      ipeq0 $p |- ( ( W e. PreHil /\ A e. V ) ->
        ( ( A ., A ) = Z <-> A = .0. ) ) $=
        ( vx vy wcel co wceq cv wral cfv cphl wa wi cmpt crglmod clmhm cstv w3a
        clvec csr isphl simp3bi simp2 ralimi oveq12 anidms eqeq1d eqeq1 imbi12d
        eqid syl rspccva sylan ip0l oveq1 syl5ibrcom impbid ) EUAOZADOZUBZAACPZ
        GQZAFQZVHMRZVNCPZGQZVNFQZUCZMDSZVIVLVMUCZVHNDNRZVNCPZUDEBUETUFPOZVRVNWA
        CPBUGTZTWBQNDSZUHZMDSZVSVHEUIOBUJOWGMNBCWDDEFGJHILWDUTKUKULWFVRMDWCVRWE
        UMUNVAVRVTMADVNAQZVPVLVQVMWHVOVKGWHVOVKQVNAVNACUOUPUQVNAFURUSVBVCVJVLVM
        FACPZGQABCDEFGHIJKLVDVMVKWIGAFACVEUQVFVG $.
    $}

    ${
      $d x .+ $.
      ipdir.g $e |- .+ = ( +g ` W ) $.
      ipdir.p $e |- .+^ = ( +g ` F ) $.
      $( Distributive law for inner product (right-distributivity).  Equation
         I3 of [Ponnusamy] p. 362.  (Contributed by NM, 25-Aug-2007.)  (Revised
         by Mario Carneiro, 7-Oct-2015.) $)
      ipdir $p |- ( ( W e. PreHil /\ ( A e. V /\ B e. V /\ C e. V ) ) ->
        ( ( A .+ B ) ., C ) = ( ( A ., C ) .+^ ( B ., C ) ) ) $=
        ( vx wcel co cfv wceq syl cphl w3a wa cv cmpt crglmod cghm eqid phllmhm
        clmhm 3ad2antr3 lmghm simpr1 simpr2 cplusg rlmplusg eqtri syl3anc clmod
        ghmlin phllmod lmodvacl syl3an1 3adant3r3 oveq1 fvmpt3i oveq12d 3eqtr3d
        ovex ) IUAPZAHPZBHPZCHPZUBUCZABDQZOHOUDZCGQZUEZRZAVRRZBVRRZEQZVOCGQZACG
        QZBCGQZEQVNVRIFUFRZUGQPZVKVLVSWBSVNVRIWFUJQPZWGVJVKVMWHVLOCFVRGHIJKLVRU
        HZUIUKIWFVRULTVJVKVLVMUMZVJVKVLVMUNZDEIWFAVRBHLMEFUORWFUORNFUPUQUTURVNV
        OHPZVSWCSVJVKVLWLVMVJIUSPVKVLWLIVADHIABLMVBVCVDOVOVQWCHVRVPVOCGVEWIVPCG
        VIZVFTVNVTWDWAWEEVNVKVTWDSWJOAVQWDHVRVPACGVEWIWMVFTVNVLWAWESWKOBVQWEHVR
        VPBCGVEWIWMVFTVGVH $.

      $( Distributive law for inner product (left-distributivity).
         (Contributed by NM, 20-Nov-2007.)  (Revised by Mario Carneiro,
         7-Oct-2015.) $)
      ipdi $p |- ( ( W e. PreHil /\ ( A e. V /\ B e. V /\ C e. V ) ) ->
        ( A ., ( B .+ C ) ) = ( ( A ., B ) .+^ ( A ., C ) ) ) $=
        ( wcel co cfv wceq syl3anc ipcj cphl wa cstv simpl simpr2 simpr3 simpr1
        w3a ipdir syl13anc fveq2d csr cbs phlsrng eqid ipcl srngadd eqtrd clmod
        adantr phllmod lmodvacl oveq12d 3eqtr3d ) IUAOZAHOZBHOZCHOZUHZUBZBCDPZA
        GPZFUCQZQZBAGPZVMQZCAGPZVMQZEPZAVKGPZABGPZACGPZEPVJVNVOVQEPZVMQZVSVJVLW
        CVMVJVEVGVHVFVLWCRVEVIUDZVEVFVGVHUEZVEVFVGVHUFZVEVFVGVHUGZBCADEFGHIJKLM
        NUIUJUKVJFULOZVOFUMQZOZVQWJOZWDVSRVEWIVIFIJUNUTVJVEVGVFWKWEWFWHBAFGWJHI
        JKLWJUOZUPSVJVEVHVFWLWEWGWHCAFGWJHIJKLWMUPSWJEFVMVOVQVMUOZWMNUQSURVJVEV
        KHOZVFVNVTRWEVJIUSOZVGVHWOVEWPVIIVAUTWFWGDHIBCLMVBSWHVKAFGVMHIJKLWNTSVJ
        VPWAVRWBEVJVEVGVFVPWARWEWFWHBAFGVMHIJKLWNTSVJVEVHVFVRWBRWEWGWHCAFGVMHIJ
        KLWNTSVCVD $.

      ip2di.1 $e |- ( ph -> W e. PreHil ) $.
      ip2di.2 $e |- ( ph -> A e. V ) $.
      ip2di.3 $e |- ( ph -> B e. V ) $.
      ip2di.4 $e |- ( ph -> C e. V ) $.
      ip2di.5 $e |- ( ph -> D e. V ) $.
      $( Distributive law for inner product.  (Contributed by NM, 17-Apr-2008.)
         (Revised by Mario Carneiro, 7-Oct-2015.) $)
      ip2di $p |- ( ph -> ( ( A .+ B ) ., ( C .+ D ) ) =
       ( ( ( A ., C ) .+^ ( B ., D ) ) .+^ ( ( A ., D ) .+^ ( B ., C ) ) ) ) $=
        ( cphl wcel wceq clmod phllmod syl lmodvacl syl3anc ipdir syl13anc ipdi
        co ccmn cbs cfv csr crg phlsrng srngring ringcmn 4syl eqid cmncom eqtrd
        ipcl oveq12d cmn4 syl122anc 3eqtrd ) ABCFUMDEFUMZIUMZBVKIUMZCVKIUMZGUMZ
        BDIUMZBEIUMZGUMZCEIUMZCDIUMZGUMZGUMZVPVSGUMVQVTGUMGUMZAKUBUCZBJUCZCJUCZ
        VKJUCZVLVOUDQRSAKUEUCZDJUCZEJUCZWGAWDWHQKUFUGTUAFJKDENOUHUIBCVKFGHIJKLM
        NOPUJUKAVMVRVNWAGAWDWEWIWJVMVRUDQRTUABDEFGHIJKLMNOPULUKAVNVTVSGUMZWAAWD
        WFWIWJVNWKUDQSTUACDEFGHIJKLMNOPULUKAHUNUCZVTHUOUPZUCZVSWMUCZWKWAUDAWDHU
        QUCHURUCWLQHKLUSHUTHVAVBZAWDWFWIWNQSTCDHIWMJKLMNWMVCZVFUIZAWDWFWJWOQSUA
        CEHIWMJKLMNWQVFUIZWMGHVTVSWQPVDUIVEVGAWLVPWMUCZVQWMUCZWOWNWBWCUDWPAWDWE
        WIWTQRTBDHIWMJKLMNWQVFUIAWDWEWJXAQRUABEHIWMJKLMNWQVFUIWSWRWMGHVTVPVQVSW
        QPVHVIVJ $.
    $}

    ${
      ipsubdir.m $e |- .- = ( -g ` W ) $.
      ipsubdir.s $e |- S = ( -g ` F ) $.
      $( Distributive law for inner product subtraction.  (Contributed by NM,
         20-Nov-2007.)  (Revised by Mario Carneiro, 7-Oct-2015.) $)
      ipsubdir $p |- ( ( W e. PreHil /\ ( A e. V /\ B e. V /\ C e. V ) ) ->
        ( ( A .- B ) ., C ) = ( ( A ., C ) S ( B ., C ) ) ) $=
        ( wcel co wceq cfv syl3anc eqid cphl wa cplusg simpl cgrp clmod phllmod
        w3a adantr simpr1 simpr2 grpsubcl simpr3 ipdir syl13anc grpnpcan oveq1d
        lmodgrp syl eqtr3d cbs wb lmodfgrp ipcl grpsubadd mpbird eqcomd ) IUAOZ
        AHOZBHOZCHOZUHZUBZACFPZBCFPZDPZABGPZCFPZVMVPVRQZVRVOEUCRZPZVNQZVMVQBIUC
        RZPZCFPZWAVNVMVHVQHOZVJVKWEWAQVHVLUDZVMIUEOZVIVJWFVMIUFOZWHVHWIVLIUGUIZ
        IURUSZVHVIVJVKUJZVHVIVJVKUKZHIGABLMULSZWMVHVIVJVKUMZVQBCWCVTEFHIJKLWCTZ
        VTTZUNUOVMWDACFVMWHVIVJWDAQWKWLWMHWCIGABLWPMUPSUQUTVMEUEOZVNEVARZOZVOWS
        OZVRWSOZVSWBVBVMWIWRWJEIJVCUSVMVHVIVKWTWGWLWOACEFWSHIJKLWSTZVDSVMVHVJVK
        XAWGWMWOBCEFWSHIJKLXCVDSVMVHWFVKXBWGWNWOVQCEFWSHIJKLXCVDSWSVTEDVNVOVRXC
        WQNVEUOVFVG $.

      $( Distributive law for inner product subtraction.  (Contributed by NM,
         20-Nov-2007.)  (Revised by Mario Carneiro, 7-Oct-2015.) $)
      ipsubdi $p |- ( ( W e. PreHil /\ ( A e. V /\ B e. V /\ C e. V ) ) ->
        ( A ., ( B .- C ) ) = ( ( A ., B ) S ( A ., C ) ) ) $=
        ( wcel co wceq cfv syl3anc eqid cphl w3a cplusg simpl simpr1 cgrp clmod
        wa phllmod adantr lmodgrp simpr2 simpr3 grpsubcl ipdi syl13anc grpnpcan
        syl oveq2d eqtr3d cbs wb lmodfgrp ipcl grpsubadd mpbird eqcomd ) IUAOZA
        HOZBHOZCHOZUBZUHZABFPZACFPZDPZABCGPZFPZVMVPVRQZVRVOEUCRZPZVNQZVMAVQCIUC
        RZPZFPZWAVNVMVHVIVQHOZVKWEWAQVHVLUDZVHVIVJVKUEZVMIUFOZVJVKWFVMIUGOZWIVH
        WJVLIUIUJZIUKURZVHVIVJVKULZVHVIVJVKUMZHIGBCLMUNSZWNAVQCWCVTEFHIJKLWCTZV
        TTZUOUPVMWDBAFVMWIVJVKWDBQWLWMWNHWCIGBCLWPMUQSUSUTVMEUFOZVNEVARZOZVOWSO
        ZVRWSOZVSWBVBVMWJWRWKEIJVCURVMVHVIVJWTWGWHWMABEFWSHIJKLWSTZVDSVMVHVIVKX
        AWGWHWNACEFWSHIJKLXCVDSVMVHVIWFXBWGWHWOAVQEFWSHIJKLXCVDSWSVTEDVNVOVRXCW
        QNVEUPVFVG $.

      ip2subdi.p $e |- .+ = ( +g ` F ) $.
      ip2subdi.1 $e |- ( ph -> W e. PreHil ) $.
      ip2subdi.2 $e |- ( ph -> A e. V ) $.
      ip2subdi.3 $e |- ( ph -> B e. V ) $.
      ip2subdi.4 $e |- ( ph -> C e. V ) $.
      ip2subdi.5 $e |- ( ph -> D e. V ) $.
      $( Distributive law for inner product subtraction.  (Contributed by Mario
         Carneiro, 8-Oct-2015.) $)
      ip2subdi $p |- ( ph -> ( ( A .- B ) ., ( C .- D ) ) =
        ( ( ( A ., C ) .+ ( B ., D ) ) S ( ( A ., D ) .+ ( B ., C ) ) ) ) $=
        ( co cbs cfv eqid crg wcel cabl clmod cphl phllmod syl lmodring ringabl
        ipcl syl3anc ablsubsub4 oveq1d wceq lmodvsubcl ipsubdir ipsubdi oveq12d
        syl13anc ringgrp grpsubcl ablsubsub 3eqtrd ringacl abladdsub 3eqtr4d
        cgrp ) ABDIUDZBEIUDZGUDZCDIUDZGUDZCEIUDZFUDZVOVPVRFUDZGUDZVTFUDZBCJUDDE
        JUDZIUDZVOVTFUDWBGUDZAVSWCVTFAHUEUFZFHGVOVPVRWHUGZRQAHUHUIZHUJUIZALUKUI
        ZWJALULUIZWLSLUMUNZHLMUOUNZHUPUNZAWMBKUIZDKUIZVOWHUIZSTUBBDHIWHKLMNOWIU
        QURZAWMWQEKUIZVPWHUIZSTUCBEHIWHKLMNOWIUQURZAWMCKUIZWRVRWHUIZSUAUBCDHIWH
        KLMNOWIUQURZUSUTAWFBWEIUDZCWEIUDZGUDZVQVRVTGUDZGUDWAAWMWQXDWEKUIZWFXIVA
        STUAAWLWRXAXKWNUBUCJKLDEOPVBURBCWEGHIJKLMNOPQVCVFAXGVQXHXJGAWMWQWRXAXGV
        QVASTUBUCBDEGHIJKLMNOPQVDVFAWMXDWRXAXHXJVASUAUBUCCDEGHIJKLMNOPQVDVFVEAW
        HFHGVQVRVTWIRQWPAHVNUIZWSXBVQWHUIAWJXLWOHVGUNWTXCWHHGVOVPWIQVHURXFAWMXD
        XAVTWHUIZSUAUCCEHIWHKLMNOWIUQURZVIVJAWKWSXMWBWHUIZWGWDVAWPWTXNAWJXBXEXO
        WOXCXFWHFHVPVRWIRVKURWHFHGVOVTWBWIRQVLVFVM $.
    $}

    ipdir.f $e |- K = ( Base ` F ) $.
    ${
      ipass.s $e |- .x. = ( .s ` W ) $.
      ipass.p $e |- .X. = ( .r ` F ) $.
      $( Associative law for inner product.  Equation I2 of [Ponnusamy] p. 363.
         (Contributed by NM, 25-Aug-2007.)  (Revised by Mario Carneiro,
         7-Oct-2015.) $)
      ipass $p |- ( ( W e. PreHil /\ ( A e. K /\ B e. V /\ C e. V ) ) ->
        ( ( A .x. B ) ., C ) = ( A .X. ( B ., C ) ) ) $=
        ( vx wcel co cfv cphl wa cmpt crglmod clmhm wceq eqid phllmhm 3ad2antr3
        cv simpr1 simpr2 cmulr cvsca rlmvsca eqtri lmhmlin syl3anc clmod adantr
        w3a phllmod lmodvscl oveq1 ovex fvmpt3i syl oveq2d 3eqtr3d ) JUARZAHRZB
        IRZCIRZVAZUBZABDSZQIQUJZCGSZUCZTZABVSTZESZVPCGSZABCGSZESVOVSJFUDTZUESRZ
        VKVLVTWBUFVJVKVMWFVLQCFVSGIJKLMVSUGZUHUIVJVKVLVMUKZVJVKVLVMULZHJWEDEIVS
        FABKNMOEFUMTWEUNTPFUOUPUQURVOVPIRZVTWCUFVOJUSRZVKVLWJVJWKVNJVBUTWHWIADF
        HIJBMKONVCURQVPVRWCIVSVQVPCGVDWGVQCGVEZVFVGVOWAWDAEVOVLWAWDUFWIQBVRWDIV
        SVQBCGVDWGWLVFVGVHVI $.

      ipassr.i $e |- .* = ( *r ` F ) $.
      $( "Associative" law for second argument of inner product (compare
         ~ ipass ).  (Contributed by NM, 25-Aug-2007.)  (Revised by Mario
         Carneiro, 7-Oct-2015.) $)
      ipassr $p |- ( ( W e. PreHil /\ ( A e. V /\ B e. V /\ C e. K ) ) ->
        ( A ., ( C .x. B ) ) = ( ( A ., B ) .X. ( .* ` C ) ) ) $=
        ( wcel co cphl w3a cfv simpl simpr3 simpr2 simpr1 ipass syl13anc fveq2d
        wa wceq clmod phllmod adantr lmodvscl syl3anc ipcj phlsrng ipcl srngmul
        csr 3eqtr3d oveq1d eqtrd ) KUASZAJSZBJSZCISZUBZUKZACBDTZGTZBAGTZHUCZCHU
        CZETZABGTZVPETVKVLAGTZHUCZCVNETZHUCZVMVQVKVSWAHVKVFVIVHVGVSWAULVFVJUDZV
        FVGVHVIUEZVFVGVHVIUFZVFVGVHVIUGZCBADEFGIJKLMNOPQUHUIUJVKVFVLJSZVGVTVMUL
        WCVKKUMSZVIVHWGVFWHVJKUNUOWDWECDFIJKBNLPOUPUQWFVLAFGHJKLMNRURUQVKFVBSZV
        IVNISZWBVQULVFWIVJFKLUSUOWDVKVFVHVGWJWCWEWFBAFGIJKLMNOUTUQIFEHCVNROQVAU
        QVCVKVOVRVPEVKVFVHVGVOVRULWCWEWFBAFGHJKLMNRURUQVDVE $.

      $( "Associative" law for inner product.  Conjugate version of ~ ipassr .
         (Contributed by NM, 25-Aug-2007.)  (Revised by Mario Carneiro,
         7-Oct-2015.) $)
      ipassr2 $p |- ( ( W e. PreHil /\ ( A e. V /\ B e. V /\ C e. K ) ) ->
        ( ( A ., B ) .X. C ) = ( A ., ( ( .* ` C ) .x. B ) ) ) $=
        ( wcel co cphl w3a wa cfv simpl simpr1 simpr2 csr phlsrng adantr simpr3
        wceq srngcl syl2anc ipassr syl13anc srngnvl oveq2d eqtr2d ) KUASZAJSZBJ
        SZCISZUBZUCZACHUDZBDTGTZABGTZVFHUDZETZVHCETVEUTVAVBVFISZVGVJULUTVDUEUTV
        AVBVCUFUTVAVBVCUGVEFUHSZVCVKUTVLVDFKLUIUJZUTVAVBVCUKZIFHCROUMUNABVFDEFG
        HIJKLMNOPQRUOUPVEVICVHEVEVLVCVICULVMVNIFHCROUQUNURUS $.
    $}
  $}

  ${
    $d g x y ., $.  $d g x y V $.  $d g x y W $.  $d x y X $.  $d x y Y $.
    ipffval.1 $e |- V = ( Base ` W ) $.
    ipffval.2 $e |- ., = ( .i ` W ) $.
    ipffval.3 $e |- .x. = ( .if ` W ) $.
    $( The inner product operation as a function.  (Contributed by Mario
       Carneiro, 12-Oct-2015.) $)
    ipffval $p |- .x. = ( x e. V , y e. V |-> ( x ., y ) ) $=
      ( vg cipf cfv cv cmpt2 cvv wcel wceq cbs cip c0 fveq2 syl6eqr mpt2eq123dv
      co oveqd df-ipf cxp crn csn cun wral cop df-ov fvrn0 eqeltri rgen2w fmpt2
      wf eqid mpbi fvex xpex rnex p0ex unex fex2 mp3an fvmpt fvprc mpt20 syl5eq
      wn mpt2eq12 syl2anc eqtr4d pm2.61i eqtri ) CFKLZABEEAMZBMZDUDZNZIFOPZVRWB
      QJFABJMZRLZWEVSVTWDSLZUDZNWBOKWDFQZABWEWEWGEEWAWHWEFRLZEWDFRUAGUBZWJWHWFD
      VSVTWHWFFSLZDWDFSUAHUBUEUCABJUFEEUGZDUHZTUIZUJZWBURZWLOPWOOPWBOPWAWOPZBEU
      KAEUKWPWQABEEWAVSVTULZDLWOVSVTDUMDWRUNUOUPABEEWAWOWBWBUSUQUTEEEWIOGFRVAUO
      ZWSVBWMWNDDWKOHFSVAUOVCVDVEWLWOWBOOVFVGVHWCVLZVRABTTWANZWBWTVRTXAFKVIABTW
      AVJUBWTETQZXBWBXAQWTEWITGFRVIVKZXCABEETTWAVMVNVOVPVQ $.

    $( The inner product operation as a function.  (Contributed by Mario
       Carneiro, 14-Aug-2015.) $)
    ipfval $p |- ( ( X e. V /\ Y e. V ) -> ( X .x. Y ) = ( X ., Y ) ) $=
      ( vx vy cv co oveq12 ipffval ovex ovmpt2a ) JKEFCCJLZKLZBMEFBMARESFBNJKAB
      CDGHIOEFBPQ $.

    $( If the inner product operation is already a function, the
       functionalization of it is equal to the original operation.
       (Contributed by Mario Carneiro, 14-Aug-2015.) $)
    ipfeq $p |- ( ., Fn ( V X. V ) -> .x. = ., ) $=
      ( vx vy cxp wfn cv co cmpt2 wceq fnov biimpi ipffval syl6reqr ) BCCJKZBHI
      CCHLILBMNZATBUAOHICCBPQHIABCDEFGRS $.
  $}

  ${
    $d x y K $.  $d x y V $.  $d x y W $.
    ipffn.1 $e |- V = ( Base ` W ) $.
    ipffn.2 $e |- ., = ( .if ` W ) $.
    $( The inner product operation is a function.  (Contributed by Mario
       Carneiro, 20-Sep-2015.) $)
    ipffn $p |- ., Fn ( V X. V ) $=
      ( vx vy cv cip cfv co eqid ipffval ovex fnmpt2i ) FGBBFHZGHZCIJZKAFGARBCD
      RLEMPQRNO $.

    phlipf.s $e |- S = ( Scalar ` W ) $.
    phlipf.k $e |- K = ( Base ` S ) $.
    $( The inner product operation is a function.  (Contributed by Mario
       Carneiro, 14-Aug-2015.) $)
    phlipf $p |- ( W e. PreHil -> ., : ( V X. V ) --> K ) $=
      ( vx vy cphl wcel cv cip cfv co wral cxp wf eqid 3expb ralrimivva ipffval
      ipcl fmpt2 sylib ) ELMZJNZKNZEOPZQZCMZKDRJDRDDSCBTUHUMJKDDUHUIDMUJDMUMUIU
      JAUKCDEHUKUAZFIUEUBUCJKDDULCBJKBUKDEFUNGUDUFUG $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ., $.  $d x V $.  $d x W $.
    ip2eq.h $e |- ., = ( .i ` W ) $.
    ip2eq.v $e |- V = ( Base ` W ) $.
    $( Two vectors are equal iff their inner products with all other vectors
       are equal.  (Contributed by NM, 24-Jan-2008.)  (Revised by Mario
       Carneiro, 7-Oct-2015.) $)
    ip2eq $p |- ( ( W e. PreHil /\ A e. V /\ B e. V ) -> ( A = B <->
      A. x e. V ( x ., A ) = ( x ., B ) ) ) $=
      ( wcel wceq co csg cfv eqid syl3an1 oveq1 syl c0g wb syl3anc cphl cv wral
      w3a oveq2 ralrimivw wi clmod phllmod lmodvsubcl eqeq12d rspcv simp1 simp2
      csca simp3 ipsubdi syl13anc eqeq1d ipeq0 syl2anc bitr3d cgrp cbs 3ad2ant1
      lmodfgrp ipcl grpsubeq0 lmodgrp 3bitr3d sylibd impbid2 ) FUAIZBEIZCEIZUDZ
      BCJZAUBZBDKZVRCDKZJZAEUCZVQWAAEBCVRDUEUFVPWBBCFLMZKZBDKZWDCDKZJZVQVPWDEIZ
      WBWGUGVMFUHIZVNVOWHFUIZWCEFBCHWCNZUJOZWAWGAWDEVRWDJVSWEVTWFVRWDBDPVRWDCDP
      UKULQVPWEWFFUOMZLMZKZWMRMZJZWDFRMZJZWGVQVPWDWDDKZWPJZWQWSVPWTWOWPVPVMWHVN
      VOWTWOJVMVNVOUMZWLVMVNVOUNZVMVNVOUPZWDBCWNWMDWCEFWMNZGHWKWNNZUQURUSVPVMWH
      XAWSSXBWLWDWMDEFWRWPXEGHWPNZWRNZUTVAVBVPWMVCIZWEWMVDMZIZWFXJIZWQWGSVPWIXI
      VMVNWIVOWJVEWMFXEVFQVPVMWHVNXKXBWLXCWDBWMDXJEFXEGHXJNZVGTVPVMWHVOXLXBWLXD
      WDCWMDXJEFXEGHXMVGTXJWMWNWEWFWPXMXGXFVHTVMFVCIZVNVOWSVQSVMWIXNWJFVIQEFWCB
      CWRHXHWKVHOVJVKVL $.
  $}

  ${
    $d q x y z ph $.  $d q w x y z W $.
    $( Set of vectors $)
    isphld.v $e |- ( ph -> V = ( Base ` W ) ) $.
    $( Vector addition $)
    isphld.a $e |- ( ph -> .+ = ( +g ` W ) ) $.
    $( Scalar product $)
    isphld.s $e |- ( ph -> .x. = ( .s ` W ) ) $.
    $( Inner product (Hermitian form) $)
    isphld.i $e |- ( ph -> I = ( .i ` W ) ) $.
    $( Zero vector $)
    isphld.z $e |- ( ph -> .0. = ( 0g ` W ) ) $.
    $( Set of scalars $)
    isphld.f $e |- ( ph -> F = ( Scalar ` W ) ) $.
    $( Division ring (skew field) base $)
    isphld.k $e |- ( ph -> K = ( Base ` F ) ) $.
    $( Division ring (skew field) plus $)
    isphld.p $e |- ( ph -> .+^ = ( +g ` F ) ) $.
    $( Division ring (skew field) times $)
    isphld.t $e |- ( ph -> .X. = ( .r ` F ) ) $.
    $( Involution (e.g., complex conjugate) $)
    isphld.c $e |- ( ph -> .* = ( *r ` F ) ) $.
    $( Division ring zero $)
    isphld.o $e |- ( ph -> O = ( 0g ` F ) ) $.
    isphld.l $e |- ( ph -> W e. LVec ) $.
    isphld.r $e |- ( ph -> F e. *Ring ) $.
    $( Closure of inner product $)
    isphld.cl $e |- ( ( ph /\ x e. V /\ y e. V ) -> ( x I y ) e. K ) $.
    $( Distributive law for inner product $)
    isphld.d $e |- ( ( ph /\ q e. K /\ ( x e. V /\ y e. V /\ z e. V ) ) ->
      ( ( ( q .x. x ) .+ y ) I z ) = ( ( q .X. ( x I z ) ) .+^ ( y I z ) ) ) $.
    $( Nonsingularity $)
    isphld.ns $e |- ( ( ph /\ x e. V /\ ( x I x ) = O ) -> x = .0. ) $.
    $( Conjugation law $)
    isphld.cj $e |- ( ( ph /\ x e. V /\ y e. V )
            -> ( .* ` ( x I y ) ) = ( y I x ) ) $.
    $( Properties that determine a pre-Hilbert (inner product) space.
       (Contributed by Mario Carneiro, 18-Nov-2013.)  (Revised by Mario
       Carneiro, 7-Oct-2015.) $)
    isphld $p |- ( ph -> W e. PreHil ) $=
      ( vw clvec wcel csca cfv csr cbs cv cip co cmpt crglmod clmhm c0g wceq wi
      cstv wral w3a cphl eqeltrrd wa oveq1 cbvmptv wf cvsca cplusg cmulr 3expib
      eleq2d anbi12d oveqd eqtrd eleq12d 3imtr3d impl an32s fmptd ralrimiva weq
      fveq2d oveq2 mpteq2dv feq1d rspccva sylan eqidd 3anrot 3anbi123d oveq123d
      3exp syl5bbr eqeq12d imbi12d imp31 3exp2 impancom 3imp2 clss lveclmod syl
      clmod adantr eqid lss1 sylancom ovex fvmpt3i simpr2 oveq2d simpr3 oveq12d
      lsscl 3eqtr4d ralrimivvva wb crg lmodring rlmlmod 3syl rlmbas fvex rlmsca
      cvv ax-mp rlmplusg rlmvsca islmhm2 syl2anc eleq1d syl5eqel eqeq2d fveq12d
      mpbir3and imp expdimp ralrimiv 3jca isphl syl3anbrc ) AOUPUQZOURUSZUTUQCO
      VAUSZCVBZBVBZOVCUSZVDZVEZOUUPVFUSZVGVDZUQZUUSUUSUUTVDZUUPVHUSZVIZUUSOVHUS
      ZVIZVJZUUSUURUUTVDZUUPVKUSZUSZUVAVIZCUUQVLZVMZBUUQVLOVNUQUIAIUUPUTUCUJVOA
      UVQBUUQAUUSUUQUQZVPZUVEUVKUVPUVSUVBUOUUQUOVBZUUSUUTVDZVEZUVDCUOUUQUVAUWAU
      URUVTUUSUUTVQVRAUOUUQUVTDVBZUUTVDZVEZUVDUQZDUUQVLUVRUWBUVDUQZAUWFDUUQAUWC
      UUQUQZVPZUWFUUQUUPVAUSZUWEVSZUUPUUPVIZQVBZUUSOVTUSZVDZUUROWAUSZVDZUWEUSZU
      WMUUSUWEUSZUUPWBUSZVDZUURUWEUSZUUPWAUSZVDZVIZCUUQVLBUUQVLQUWJVLZAUUQUWJUO
      UUQUVTUURUUTVDZVEZVSZCUUQVLUWHUWKAUXICUUQAUURUUQUQZVPBUUQUVLUWJUXHAUVRUXJ
      UVLUWJUQZAUVRUXJUXKAUUSNUQZUURNUQZVPZUUSUURJVDZLUQZUVRUXJVPZUXKAUXLUXMUXP
      UKWCAUXLUVRUXMUXJANUUQUUSRWDZANUUQUURRWDZWEZAUXOUVLLUWJAJUUTUUSUURUAWFZAL
      IVAUSUWJUDAIUUPVAUCWOWGZWHWIWJWKUOBUUQUXGUVLUVTUUSUURUUTVQVRWLWMUXIUWKCUW
      CUUQCDWNZUUQUWJUXHUWEUYCUOUUQUXGUWDUURUWCUVTUUTWPWQWRWSWTUWIUUPXAUWIUXEQB
      CUWJUUQUUQUWIUWMUWJUQZUVRUXJVMZVPZUWQUWCUUTVDZUWMUUSUWCUUTVDZUWTVDZUURUWC
      UUTVDZUXCVDZUWRUXDUWIUYDUVRUXJUYGUYKVIZAUYDUWHUVRUXJUYLVJVJAUYDVPUWHUVRUX
      JUYLAUYDUWHUVRUXJVMZUYLAUWMLUQZUXLUXMUWCNUQZVMZUWMUUSGVDZUUREVDZUWCJVDZUW
      MUUSUWCJVDZHVDZUURUWCJVDZFVDZVIZVJUYDUYMUYLVJAUYNUYPVUDULXEALUWJUWMUYBWDA
      UYPUYMVUDUYLUYPUYOUXLUXMVMAUYMUYOUXLUXMXBAUYOUWHUXLUVRUXMUXJANUUQUWCRWDUX
      RUXSXCXFAUYSUYGVUCUYKAUYRUWQUWCUWCJUUTUAAUYQUWOUURUUREUWPSAGUWNUWMUUSTWFA
      UURXAXDAUWCXAXDAVUAUYIVUBUYJFUXCAFIWAUSUXCUEAIUUPWAUCWOWGAUWMUWMUYTUYHHUW
      TAHIWBUSUWTUFAIUUPWBUCWOWGAUWMXAAJUUTUUSUWCUAWFXDAJUUTUURUWCUAWFXDXGXHWIX
      IXJXKXLUYFUWQUUQUQZUWRUYGVIUWIUYEUUQOXMUSZUQZVUEUYFOXPUQZVUGUWIVUHUYEAVUH
      UWHAUUOVUHUIOXNXOZXQZXQVUFUUQOUUQXRZVUFXRZXSXOUWJUWPVUFUWNUUQUUPOUUSUURUW
      MUUPXRZUWJXRZUWPXRZUWNXRZVULYGXTUOUWQUWDUYGUUQUWEUVTUWQUWCUUTVQUWEXRZUVTU
      WCUUTYAZYBXOUYFUXAUYIUXBUYJUXCUYFUWSUYHUWMUWTUYFUVRUWSUYHVIUWIUYDUVRUXJYC
      UOUUSUWDUYHUUQUWEUVTUUSUWCUUTVQVUQVURYBXOYDUYFUXJUXBUYJVIUWIUYDUVRUXJYEUO
      UURUWDUYJUUQUWEUVTUURUWCUUTVQVUQVURYBXOYFYHYIUWIVUHUVCXPUQZUWFUWKUWLUXFVM
      YJVUJAVUSUWHAVUHUUPYKUQVUSVUIUUPOVUMYLUUPYMYNXQQBCUUQUWJUWPUXCOUVCUWNUWTU
      WJUWEUUPUUPVUKUUPYOVUMUUPYRUQUUPUVCURUSVIOURYPUUPYRYQYSVUNVUOUUPYTVUPUUPU
      UAUUBUUCUUHWMUWFUWGDUUSUUQDBWNZUWEUWBUVDVUTUOUUQUWDUWAUWCUUSUVTUUTWPWQUUD
      WSWTUUEAUVRUVKAUXLUUSUUSJVDZMVIZUUSPVIZVJUVRUVKAUXLVVBVVCUMXEUXRAVVBUVHVV
      CUVJAVVAUVFMUVGAJUUTUUSUUSUAWFAMIVHUSUVGUHAIUUPVHUCWOWGXGAPUVIUUSUBUUFXHW
      IUUIUVSUVOCUUQAUVRUXJUVOAUXNUXOKUSZUURUUSJVDZVIZUXQUVOAUXLUXMVVFUNWCUXTAV
      VDUVNVVEUVAAUXOUVLKUVMAKIVKUSUVMUGAIUUPVKUCWOWGUYAUUGAJUUTUURUUSUAWFXGWIU
      UJUUKUULWMBCUUPUUTUVMUUQOUVIUVGVUKVUMUUTXRUVIXRUVMXRUVGXRUUMUUN $.
  $}

  ${
    $d a b x y B $.  $d x y F $.  $d a b x y K $.  $d a b x y L $.  $d x y P $.
    $d a b x y ph $.
    phlpropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    phlpropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    phlpropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    phlpropd.4 $e |- ( ph -> F = ( Scalar ` K ) ) $.
    phlpropd.5 $e |- ( ph -> F = ( Scalar ` L ) ) $.
    phlpropd.6 $e |- P = ( Base ` F ) $.
    phlpropd.7 $e |- ( ( ph /\ ( x e. P /\ y e. B ) ) ->
      ( x ( .s ` K ) y ) = ( x ( .s ` L ) y ) ) $.
    phlpropd.8 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( .i ` K ) y ) = ( x ( .i ` L ) y ) ) $.
    $( If two structures have the same components (properties), one is a
       pre-Hilbert space iff the other one is.  (Contributed by Mario Carneiro,
       8-Oct-2015.) $)
    phlpropd $p |- ( ph -> ( K e. PreHil <-> L e. PreHil ) ) $=
      ( vb wcel cfv wceq va clvec csca csr cbs cv cip co cmpt crglmod clmhm c0g
      wi cstv wral w3a lvecpropd eqtr3d eleq1d wa oveqrspc2v anass1rs mpteq2dva
      cphl adantr mpteq1d 3eqtr3d rlmbas eqtri a1i cvv fvex syl6eqel rlmsca syl
      cplusg lmhmpropd fveq2d oveq2d eleq12d anabsan2 eqeq12d grpidpropd eqeq2d
      eqidd cvsca imbi12d fveq12d anassrs ralbidva raleqdv 3anbi123d eqid isphl
      3bitr3d 3bitr4g ) AGUBRZGUCSZUDRZQGUESZQUFZUAUFZGUGSZUHZUIZGWRUJSZUKUHZRZ
      XBXBXCUHZWRULSZTZXBGULSZTZUMZXBXAXCUHZWRUNSZSZXDTZQWTUOZUPZUAWTUOZUPHUBRZ
      HUCSZUDRZQHUESZXAXBHUGSZUHZUIZHYCUJSZUKUHZRZXBXBYFUHZYCULSZTZXBHULSZTZUMZ
      XBXAYFUHZYCUNSZSZYGTZQYEUOZUPZUAYEUOZUPGVDRHVDRAWQYBWSYDYAUUDABCDEFGHIJKL
      MNOUQAWRYCUDAFWRYCLMURZUSAXTUADUOUUCUADUOYAUUDAXTUUCUADAXBDRZUTZXHYKXNYQX
      SUUBUUGXEYHXGYJUUGQDXDUIQDYGUIXEYHUUGQDXDYGAXADRZUUFXDYGTABCDDXCYFXAXBPVA
      VBZVCUUGQDWTXDADWTTUUFIVEZVFUUGQDYEYGADYETUUFJVEZVFVGAXGYJTUUFAGFUJSZUKUH
      HUULUKUHXGYJABCDEEEFFGUULHUULIEUULUESZTAEFUESUUMNFVHVIVJZJUUNLAFVKRFUULUC
      STAFWRVKLGUCVLVMFVKVNVOZMUUONNKABUFZERCUFZERUTUTZUUPUUQUULVPSUHWEOUURUUPU
      UQUULWFSUHWEVQAUULXFGUKAFWRUJLVRVSAUULYIHUKAFYCUJMVRVSVGVEVTUUGXKYNXMYPUU
      GXIYLXJYMAUUFXIYLTABCDDXCYFXBXBPVAWAAXJYMTUUFAWRYCULUUEVRVEWBUUGXLYOXBAXL
      YOTUUFABCDGHIJKWCVEWDWGUUGXRQDUOUUAQDUOXSUUBUUGXRUUAQDUUGUUHUTXQYTXDYGAUU
      FUUHXQYTTAUUFUUHUTZUTXOYRXPYSAXPYSTUUSAWRYCUNUUEVRVEABCDDXCYFXBXAPVAWHWIU
      UIWBWJUUGXRQDWTUUJWKUUGUUAQDYEUUKWKWOWLWJAXTUADWTIWKAUUCUADYEJWKWOWLUAQWR
      XCXPWTGXLXJWTWMWRWMXCWMXLWMXPWMXJWMWNUAQYCYFYSYEHYOYMYEWMYCWMYFWMYOWMYSWM
      YMWMWNWP $.
  $}

  ${
    ssipeq.x $e |- X = ( W |`s U ) $.
    ssipeq.i $e |- ., = ( .i ` W ) $.
    ssipeq.p $e |- P = ( .i ` X ) $.
    $( The inner product on a subspace equals the inner product on the parent
       space.  (Contributed by AV, 19-Oct-2021.) $)
    ssipeq $p |- ( U e. S -> P = ., ) $=
      ( wcel cip cfv ressip syl6reqr ) CBJDFKLACEFDBGHMIN $.

    ssipeq.s $e |- S = ( LSubSp ` W ) $.
    $( The inner product on a subspace in terms of the inner product on the
       parent space.  (Contributed by NM, 28-Jan-2008.)  (Revised by AV,
       19-Oct-2021.) $)
    phssipval $p |- ( ( ( W e. PreHil /\ U e. S ) /\ ( A e. U /\ B e. U ) ) ->
                    ( A P B ) = ( A ., B ) ) $=
      ( wcel co wceq cphl wa ssipeq oveqd ad2antlr ) EDMZABCNABFNOGPMAEMBEMQUAC
      FABCDEFGHIJKRST $.
  $}

  ${
    $d S x y $.  $d U x y $.  $d W x y $.  $d X x y $.
    phssip.x $e |- X = ( W |`s U ) $.
    phssip.s $e |- S = ( LSubSp ` W ) $.
    phssip.i $e |- .x. = ( .if ` W ) $.
    phssip.p $e |- P = ( .if ` X ) $.
    $( The inner product (as a function) on a subspace is a restriction of the
       inner product (as a function) on the parent space.  (Contributed by NM,
       28-Jan-2008.)  (Revised by AV, 19-Oct-2021.) $)
    phssip $p |- ( ( W e. PreHil /\ U e. S ) -> P = ( .x. |` ( U X. U ) ) ) $=
      ( vx vy wcel cbs cfv cv cip cmpt2 eqid wceq cphl wa co cres ipffval csubg
      cxp clmod phllmod lsssubg sylan subgbas syl eqidd mpt2eq123dv wss resmpt2
      subgss syl2anc ssipeq adantl mpt2eq3dv 3eqtr4rd syl5eq a1i reseq1d eqtr4d
      oveqd ) EUAMZDBMZUBZAKLENOZVLKPZLPZEQOZUCZRZDDUGZUDZCVRUDVKAKLFNOZVTVMVNF
      QOZUCZRZVSKLAWAVTFVTSWASZJUEVKKLDDVPRZKLVTVTVPRVSWCVKKLDDVPVTVTVPVKDEUFOM
      ZDVTTVIEUHMVJWFEUIBDEHUJUKZDEFGULUMZWHVKVPUNUOVKDVLUPZWIVSWETVKWFWIWGVLDE
      VLSZURUMZWKKLVLVLDDVPUQUSVKKLVTVTWBVPVKWAVOVMVNVJWAVOTVIWABDVOEFGVOSZWDUT
      VAVHVBVCVDVKCVQVRCVQTVKKLCVOVLEWJWLIUEVEVFVG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Orthocomplements and closed subspaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ocv $.
  $c CSubSp $.
  $c toHL $.

  $( Extend class notation with orthocomplement of a subspace. $)
  cocv $a class ocv $.

  $( Extend class notation with set of closed subspaces. $)
  ccss $a class CSubSp $.

  $( Extend class notation with the Hilbert lattice. $)
  cthl $a class toHL $.

  ${
    $d h s x y $.
    $( Define orthocomplement of a subspace.  (Contributed by NM,
       7-Oct-2011.) $)
    df-ocv $a |- ocv = ( h e. _V |-> ( s e. ~P ( Base ` h ) |->
   { x e. ( Base ` h ) | A. y e. s ( x ( .i ` h ) y )
           = ( 0g ` ( Scalar ` h ) ) } ) ) $.

    $( Define set of closed subspaces.  (Contributed by NM, 7-Oct-2011.) $)
    df-css $a |- CSubSp = ( h e. _V |->
      { s | s = ( ( ocv ` h ) ` ( ( ocv ` h ) ` s ) ) } ) $.
  $}

  $( Define the Hilbert lattice of closed subspaces.  (Contributed by Mario
     Carneiro, 25-Oct-2015.) $)
  df-thl $a |- toHL = ( h e. _V |-> ( ( toInc ` ( CSubSp ` h ) ) sSet
    <. ( oc ` ndx ) , ( ocv ` h ) >. ) ) $.

  ${
    $d h s x y .0. $.  $d x y A $.  $d x B $.  $d h s x y V $.  $d h s x y W $.
    $d h s x y ., $.  $d s x y S $.
    ocvfval.v $e |- V = ( Base ` W ) $.
    ocvfval.i $e |- ., = ( .i ` W ) $.
    ocvfval.f $e |- F = ( Scalar ` W ) $.
    ocvfval.z $e |- .0. = ( 0g ` F ) $.
    ocvfval.o $e |- ._|_ = ( ocv ` W ) $.
    $( The orthocomplement operation.  (Contributed by NM, 7-Oct-2011.)
       (Revised by Mario Carneiro, 13-Oct-2015.) $)
    ocvfval $p |- ( W e. X -> ._|_ = ( s e. ~P V |->
                          { x e. V | A. y e. s ( x ., y ) = .0. } ) ) $=
      ( wcel cfv cv wceq cvv vh cocv cpw wral crab cmpt elex cbs cip csca fveq2
      c0g syl6eqr pweqd oveqd fveq2d eqeq12d ralbidv rabeqbidv mpteq12dv df-ocv
      co wf eqid wss ssrab2 fvex eqeltri elpw2 mpbir a1i fmpti pwex mp3an fvmpt
      fex2 syl syl5eq ) GHPZEGUBQZJFUCZARZBRZDVBZISZBJRZUDZAFUEZUFZOVSGTPVTWISG
      HUGUAGJUARZUHQZUCZWBWCWJUIQZVBZWJUJQZULQZSZBWFUDZAWKUEZUFWITUBWJGSZJWLWSW
      AWHWTWKFWTWKGUHQZFWJGUHUKKUMZUNWTWRWGAWKFXBWTWQWEBWFWTWNWDWPIWTWMDWBWCWTW
      MGUIQDWJGUIUKLUMUOWTWPCULQIWTWOCULWTWOGUJQCWJGUJUKMUMUPNUMUQURUSUTABUAJVA
      WAWAWIVCWATPZXCWITPJWAWAWHWIWIVDWHWAPZWFWAPXDWHFVEWGAFVFWHFFXATKGUHVGVHZV
      IVJVKVLFXEVMZXFWAWAWITTVPVNVOVQVR $.

    $( Value of the orthocomplement of a subset (normally a subspace) of a
       pre-Hilbert space.  (Contributed by NM, 7-Oct-2011.)  (Revised by Mario
       Carneiro, 13-Oct-2015.) $)
    ocvval $p |- ( S C_ V ->
      ( ._|_ ` S ) = { x e. V | A. y e. S ( x ., y ) = .0. } ) $=
      ( vs cfv cv wceq cbs c0 wss cpw wcel co wral crab fvex eqeltri elpw2 cmpt
      cvv ocvfval fveq1d raleq rabbidv eqid rabex fvmpt sylan9eq 0fv cocv fvprc
      wn syl5eq ssrab2 sseq0 sylancr 3eqtr4a adantr pm2.61ian sylbir ) CGUACGUB
      ZUCZCFPZAQBQEUDIRZBCUEZAGUFZRZCGGHSPZUKJHSUGUHZUIHUKUCZVMVRWAVMVNCOVLVOBO
      QZUEZAGUFZUJZPVQWACFWEABDEFGHUKIOJKLMNULUMOCWDVQVLWEWBCRWCVPAGVOBWBCUNUOW
      EUPVPAGVTUQURUSWAVCZVRVMWFCTPTVNVQCUTWFCFTWFFHVAPTNHVAVBVDUMWFVQGUAGTRVQT
      RVPAGVEWFGVSTJHSVBVDVQGVFVGVHVIVJVK $.

    $( Elementhood in the orthocomplement of a subset (normally a subspace) of
       a pre-Hilbert space.  (Contributed by Mario Carneiro, 13-Oct-2015.) $)
    elocv $p |- ( A e. ( ._|_ ` S ) <->
        ( S C_ V /\ A e. V /\ A. x e. S ( A ., x ) = .0. ) ) $=
      ( vs vy cfv wcel wceq c0 wss cv wral w3a cdm cpw elfvdm crab cmpt cvv n0i
      co wa wn cocv fvprc syl5eq fveq1d 0fv syl6eq nsyl2 ocvfval syl dmeqd fvex
      cbs eqeltri rabex eqid dmmpti eleqtrd elpwid ocvval eleq2d eqeq1d ralbidv
      oveq1 elrab syl6bb biadan2 3anass bitr4i ) BCFQZRZCGUAZBGRZBAUBZEULZISZAC
      UCZUMZUMWEWFWJUDWDWEWKWDCGWDCFUEZGUFZBCFUGWDWLOWMPUBZWGEULZISZAOUBUCZPGUH
      ZUIZUEWMWDFWSWDHUJRZFWSSWDWCTSWTWCBUKWTUNZWCCTQTXACFTXAFHUOQTNHUOUPUQURCU
      SUTVAPADEFGHUJIOJKLMNVBVCVDOWMWRWSWQPGGHVFQUJJHVFVEVGVHWSVIVJUTVKVLWEWDBW
      PACUCZPGUHZRWKWEWCXCBPACDEFGHIJKLMNVMVNXBWJPBGWNBSZWPWIACXDWOWHIWNBWGEVQV
      OVPVRVSVTWEWFWJWAWB $.

    $( Property of a member of the orthocomplement of a subset.  (Contributed
       by Mario Carneiro, 13-Oct-2015.) $)
    ocvi $p |- ( ( A e. ( ._|_ ` S ) /\ B e. S ) -> ( A ., B ) = .0. ) $=
      ( vx cfv wcel cv co wceq wral elocv simp3bi oveq2 eqeq1d rspccva sylan
      wss ) ACFPQZAORZESZITZOCUAZBCQABESZITZUICGUHAGQUMOACDEFGHIJKLMNUBUCULUOOB
      CUJBTUKUNIUJBAEUDUEUFUG $.
  $}

  ${
    $d r x y z ._|_ $.  $d r x y z S $.  $d r x y z V $.  $d r x y z W $.
    ocvss.v $e |- V = ( Base ` W ) $.
    ocvss.o $e |- ._|_ = ( ocv ` W ) $.
    $( The orthocomplement of a subset is a subset of the base.  (Contributed
       by Mario Carneiro, 13-Oct-2015.) $)
    ocvss $p |- ( ._|_ ` S ) C_ V $=
      ( vx vy cfv cv wcel wss cip co csca c0g wceq wral eqid elocv simp2bi
      ssriv ) GABIZCGJZUCKACLUDCKUDHJDMIZNDOIZPIZQHARHUDAUFUEBCDUGEUESUFSUGSFTU
      AUB $.

    $( A set is contained in its double orthocomplement.  (Contributed by Mario
       Carneiro, 13-Oct-2015.) $)
    ocvocv $p |- ( ( W e. PreHil /\ S C_ V ) ->
      S C_ ( ._|_ ` ( ._|_ ` S ) ) ) $=
      ( vx vy cphl wcel wss wa cfv cv cip co csca wceq sselda eqid c0g wral a1i
      ocvss simpr ocvi ancoms adantll wb simplll adantr iporthcom syl3anc mpbid
      ralrimiva elocv syl3anbrc ex ssrdv ) DIJZACKZLZGAABMZBMZVBGNZAJZVEVDJZVBV
      FLZVCCKZVECJZVEHNZDOMZPDQMZUAMZRZHVCUBVGVIVHABCDEFUDUCZVBACVEUTVAUESZVHVO
      HVCVHVKVCJZLZVKVEVLPVNRZVOVFVRVTVBVRVFVTVKVEAVMVLBCDVNEVLTZVMTZVNTZFUFUGU
      HVSUTVKCJVJVTVOUIUTVAVFVRUJVHVCCVKVPSVHVJVRVQUKVKVEVMVLCDVNWBWAEWCULUMUNU
      OHVEVCVMVLBCDVNEWAWBWCFUPUQURUS $.

    ocvlss.l $e |- L = ( LSubSp ` W ) $.
    $( The orthocomplement of a subset is a linear subspace of the pre-Hilbert
       space.  (Contributed by Mario Carneiro, 13-Oct-2015.) $)
    ocvlss $p |- ( ( W e. PreHil /\ S C_ V ) -> ( ._|_ ` S ) e. L ) $=
      ( vr vy vz vx wcel wa cfv co wral wceq adantr eqid cphl wss c0 wne cplusg
      cv cvsca cbs ocvss a1i c0g cip simpr clmod phllmod lmod0vcl simpll sselda
      csca syl ip0l syl2anc ralrimiva elocv syl3anbrc ne0i simpr1 simpr2 sseldi
      lmodvscl syl3anc simpr3 lmodvacl adantlr ipdir syl13anc cmulr ipass sylan
      w3a ocvi oveq2d crg lmodring ringrz 3eqtrd oveq12d lmodfgrp grpidcl mpdan
      cgrp grplid 3syl ralrimivvva islss ) EUAMZADUBZNZACOZDUBZWSUCUDZIUFZJUFZE
      UGOZPZKUFZEUEOZPZWSMZKWSQJWSQIEUSOZUHOZQWSBMWTWRACDEFGUIZUJWREUKOZWSMZXAW
      RWQXMDMZXMLUFZEULOZPXJUKOZRZLAQXNWPWQUMZWREUNMZXOWPYAWQEUOSZDEXMFXMTZUPUT
      WRXSLAWRXPAMZNWPXPDMZXSWPWQYDUQZWRADXPXTURZXPXJXQDEXMXRXJTZXQTZFXRTZYCVAV
      BVCLXMAXJXQCDEXRFYIYHYJGVDVEWSXMVFUTWRXIIJKXKWSWSWRXBXKMZXCWSMZXFWSMZVTZN
      ZWQXHDMZXHXPXQPZXRRZLAQXIWRWQYNXTSYOYAXEDMZXFDMZYPWRYAYNYBSZYOYAYKXCDMZYS
      UUAWRYKYLYMVGZYOWSDXCXLWRYKYLYMVHZVIZXBXDXJXKDEXCFYHXDTZXKTZVJVKZYOWSDXFX
      LWRYKYLYMVLZVIZXGDEXEXFFXGTZVMVKYOYRLAYOYDNZYQXEXPXQPZXFXPXQPZXJUEOZPZXRX
      RUUOPZXRUULWPYSYTYEYQUUPRWRYDWPYNYFVNZYOYSYDUUHSYOYTYDUUJSWRYDYEYNYGVNZXE
      XFXPXGUUOXJXQDEYHYIFUUKUUOTZVOVPUULUUMXRUUNXRUUOUULUUMXBXCXPXQPZXJVQOZPZX
      BXRUVBPZXRUULWPYKUUBYEUUMUVCRUURYOYKYDUUCSZYOUUBYDUUESUUSXBXCXPXDUVBXJXQX
      KDEYHYIFUUGUUFUVBTZVRVPUULUVAXRXBUVBYOYLYDUVAXRRUUDXCXPAXJXQCDEXRFYIYHYJG
      WAVSWBUULXJWCMZYKUVDXRRUULYAUVGYOYAYDUUASZXJEYHWDUTUVEXKXJUVBXBXRUUGUVFYJ
      WEVBWFYOYMYDUUNXRRUUIXFXPAXJXQCDEXRFYIYHYJGWAVSWGUULYAXJWKMZUUQXRRZUVHXJE
      YHWHUVIXRXKMUVJXKXJXRUUGYJWIXKUUOXJXRXRUUGUUTYJWLWJWMWFVCLXHAXJXQCDEXRFYI
      YHYJGVDVEWNIXKXGBXDWSXJDEJKYHUUGFUUKUUFHWOVE $.
  $}

  ${
    $d x L $.  $d x ._|_ $.  $d x y S $.  $d x y T $.  $d x y W $.  $d x .0. $.
    ocv2ss.o $e |- ._|_ = ( ocv ` W ) $.
    $( Orthocomplements reverse subset inclusion.  (Contributed by Mario
       Carneiro, 13-Oct-2015.) $)
    ocv2ss $p |- ( T C_ S -> ( ._|_ ` S ) C_ ( ._|_ ` T ) ) $=
      ( vx vy wss cfv cbs cv wcel cip co csca c0g wral w3a eqid elocv sstr2 idd
      wceq ssralv 3anim123d 3imtr4g ssrdv ) BAHZFACIZBCIZUHADJIZHZFKZUKLZUMGKDM
      IZNDOIZPIZUCZGAQZRBUKHZUNURGBQZRUMUILUMUJLUHULUTUNUNUSVABAUKUAUHUNUBURGBA
      UDUEGUMAUPUOCUKDUQUKSZUOSZUPSZUQSZETGUMBUPUOCUKDUQVBVCVDVEETUFUG $.

    ocvin.l $e |- L = ( LSubSp ` W ) $.
    ocvin.z $e |- .0. = ( 0g ` W ) $.
    $( An orthocomplement has trivial intersection with the original subspace.
       (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    ocvin $p |- ( ( W e. PreHil /\ S e. L ) ->
      ( S i^i ( ._|_ ` S ) ) = { .0. } ) $=
      ( vx cphl wcel wa cfv cin csn cv wceq eqid syl2anc wss cip co csca ancoms
      c0g cbs ocvi adantl wb simpll lssel ad2ant2lr ipeq0 mpbid ex elin 3imtr4g
      velsn ssrdv clmod phllmod adantr lssss ocvlss sylan2 lssincl lss0ss eqssd
      syl3an1 mpd3an3 ) DJKZABKZLZAACMZNZEOZVMIVOVPVMIPZAKZVQVNKZLZVQEQZVQVOKVQ
      VPKVMVTWAVMVTLZVQVQDUAMZUBDUCMZUEMZQZWAVTWFVMVSVRWFVQVQAWDWCCDUFMZDWEWGRZ
      WCRZWDRZWERZFUGUDUHWBVKVQWGKZWFWAUIVKVLVTUJVLVRWLVKVSBAWGDVQWHGUKULVQWDWC
      WGDEWEWJWIWHWKHUMSUNUOVQAVNUPIEURUQUSVMDUTKZVOBKZVPVOTVKWMVLDVAZVBVKVLVNB
      KZWNVLVKAWGTWPBAWGDWHGVCABCWGDWHFGVDVEVKWMVLWPWNWOBAVNDGVFVIVJBDVOEHGVGSV
      H $.
  $}

  ${
    ocvlsp.v $e |- V = ( Base ` W ) $.
    ocvlsp.o $e |- ._|_ = ( ocv ` W ) $.
    $( Two ways to say that ` S ` and ` T ` are orthogonal subspaces.
       (Contributed by Mario Carneiro, 23-Oct-2015.) $)
    ocvsscon $p |- ( ( W e. PreHil /\ S C_ V /\ T C_ V ) ->
      ( S C_ ( ._|_ ` T ) <-> T C_ ( ._|_ ` S ) ) ) $=
      ( cphl wcel wss w3a cfv ocvocv 3adant2 ocv2ss sstr2 syl2im 3adant3 impbid
      ) EHIZADJZBDJZKZABCLZJZBACLZJZUCBUDCLZJZUEUHUFJUGTUBUIUABCDEFGMNUDACEGOBU
      HUFPQUCAUFCLZJZUGUJUDJUETUAUKUBACDEFGMRUFBCEGOAUJUDPQS $.

    ocvlsp.n $e |- N = ( LSpan ` W ) $.
    $( The orthocomplement of a linear span.  (Contributed by Mario Carneiro,
       23-Oct-2015.) $)
    ocvlsp $p |- ( ( W e. PreHil /\ S C_ V ) ->
      ( ._|_ ` ( N ` S ) ) = ( ._|_ ` S ) ) $=
      ( cphl wcel wss wa cfv clmod phllmod lspssid ocv2ss syl ocvocv syldan a1i
      sylan ocvss clss adantr eqid ocvlss lspssp syl3anc sstrd eqssd ) EIJZADKZ
      LZABMZCMZACMZUNAUOKZUPUQKULENJZUMUREOZABDEFHPUBUOACEGQRUNUQUQCMZCMZUPULUM
      UQDKZUQVBKVCUNACDEFGUCUAZUQCDEFGSTUNUOVAKZVBUPKUNUSVAEUDMZJZAVAKVEULUSUMU
      TUEULUMVCVGVDUQVFCDEFGVFUFZUGTACDEFGSVFAVABEVHHUHUIVAUOCEGQRUJUK $.
  $}

  ${
    $d x y V $.  $d x y W $.
    ocvz.v $e |- V = ( Base ` W ) $.
    ocvz.o $e |- ._|_ = ( ocv ` W ) $.
    $( The orthocomplement of the empty set.  (Contributed by Mario Carneiro,
       23-Oct-2015.) $)
    ocv0 $p |- ( ._|_ ` (/) ) = V $=
      ( vx vy c0 cfv cv cip co csca c0g wceq wral crab wss 0ss eqid ocvval ral0
      ax-mp rgenw rabid2 mpbir eqtr4i ) HAIZFJGJCKIZLCMIZNIZOZGHPZFBQZBHBRUHUNO
      BSFGHUJUIABCUKDUITUJTUKTEUAUCBUNOUMFBPUMFBULGUBUDUMFBUEUFUG $.

    ocvz.z $e |- .0. = ( 0g ` W ) $.
    $( The orthocomplement of the zero subspace.  (Contributed by Mario
       Carneiro, 23-Oct-2015.) $)
    ocvz $p |- ( W e. PreHil -> ( ._|_ ` { .0. } ) = V ) $=
      ( cphl wcel c0 clspn cfv csn clmod wceq phllmod eqid lsp0 syl fveq2d ocv0
      wss 0ss ocvlsp mpan2 syl6eq eqtr3d ) CHIZJCKLZLZALZDMZALBUHUJULAUHCNIUJUL
      OCPUICDGUIQZRSTUHUKJALZBUHJBUBUKUNOBUCJUIABCEFUMUDUEABCEFUAUFUG $.

    $( The orthocomplement of the base set.  (Contributed by Mario Carneiro,
       23-Oct-2015.) $)
    ocv1 $p |- ( W e. PreHil -> ( ._|_ ` V ) = { .0. } ) $=
      ( cphl wcel cfv cin csn wss wceq ocvss sseqin2 mpbi clss clmod phllmod
      eqid lss1 syl ocvin mpdan syl5eqr ) CHIZBAJZBUHKZDLZUHBMUIUHNBABCEFOUHBPQ
      UGBCRJZIZUIUJNUGCSIULCTUKBCEUKUAZUBUCBUKACDFUMGUDUEUF $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d z ._|_ $.  $d x y z V $.  $d x y W $.
    inocv.o $e |- ._|_ = ( ocv ` W ) $.
    $( The orthocomplement of a union.  (Contributed by Mario Carneiro,
       23-Oct-2015.) $)
    unocv $p |- ( ._|_ ` ( A u. B ) ) = ( ( ._|_ ` A ) i^i ( ._|_ ` B ) ) $=
      ( vz vy cfv cv wcel wss wral anbi12i bitri w3a eqid elocv 3anan12 3bitr4i
      wa cun cin cbs cip co csca c0g wceq unss bicomi ralunb anbi2i elin anandi
      an4 eqriv ) FABUAZCHZACHZBCHZUBZFIZDUCHZJZUQVCKZVBGIDUDHZUEDUFHZUGHZUHZGU
      QLZTZTZVDAVCKZVIGALZTZBVCKZVIGBLZTZTZTZVBURJZVBVAJZVKVSVDVKVMVPTZVNVQTZTV
      SVEWCVJWDWCVEABVCUIUJVIGABUKMVMVPVNVQUONULWAVEVDVJOVLGVBUQVGVFCVCDVHVCPZV
      FPZVGPZVHPZEQVEVDVJRNVBUSJZVBUTJZTVDVOTZVDVRTZTWBVTWIWKWJWLWIVMVDVNOWKGVB
      AVGVFCVCDVHWEWFWGWHEQVMVDVNRNWJVPVDVQOWLGVBBVGVFCVCDVHWEWFWGWHEQVPVDVQRNM
      VBUSUTUMVDVOVRUNSSUP $.

    iunocv.v $e |- V = ( Base ` W ) $.
    $( The orthocomplement of an indexed union.  (Contributed by Mario
       Carneiro, 23-Oct-2015.) $)
    iunocv $p |- ( ._|_ ` U_ x e. A B ) = ( V i^i |^|_ x e. A ( ._|_ ` B ) ) $=
      ( vz vy cfv cv wcel wss wral wa wi wal bitri eqid ciun ciin cin csca wceq
      cip co iunss wrex eliun imbi1i r19.23v bitr4i albii df-ral ralbii ralcom4
      c0g 3bitr4i anbi12i r19.26 eliin elocv 3anan12 baib ralbidv bitr2d syl5bb
      w3a pm5.32i elin eqriv ) IABCUAZDKZEABCDKZUBZUCZILZEMZVMENZVRJLZFUFKZUGFU
      DKZURKZUEZJVMOZPZPZVSVRVPMZPVRVNMZVRVQMVSWGWIWGCENZWEJCOZPZABOZVSWIWGWKAB
      OZWLABOZPWNVTWOWFWPABCEUHWAVMMZWEQZJRWACMZWEQZABOZJRZWFWPWRXAJWRWSABUIZWE
      QXAWQXCWEAWABCUJUKWSWEABULUMUNWEJVMUOWPWTJRZABOXBWLXDABWEJCUOUPWTAJBUQSUS
      UTWKWLABVAUMVSWIVRVOMZABOWNAVRBVOEVBVSXEWMABXEVSWMXEWKVSWLVIVSWMPJVRCWCWB
      DEFWDHWBTZWCTZWDTZGVCWKVSWLVDSVEVFVGVHVJWJVTVSWFVIWHJVRVMWCWBDEFWDHXFXGXH
      GVCVTVSWFVDSVREVPVKUSVL $.
  $}

  ${
    $d s w ._|_ $.  $d s S $.  $d s w W $.
    cssval.o $e |- ._|_ = ( ocv ` W ) $.
    cssval.c $e |- C = ( CSubSp ` W ) $.
    $( The set of closed subspaces of a pre-Hilbert space.  (Contributed by NM,
       7-Oct-2011.)  (Revised by Mario Carneiro, 13-Oct-2015.) $)
    cssval $p |- ( W e. X -> C = { s | s = ( ._|_ ` ( ._|_ ` s ) ) } ) $=
      ( vw wcel cvv cv cfv wceq cab elex ccss cocv fveq2 cbs fvex fveq1d eqeq2d
      syl6eqr fveq12d abbidv df-css cpw pwex wss eqid ocvss elpw mpbir syl6eqel
      id abssi ssexi fvmpt syl5eq syl ) CDICJIZAEKZVBBLZBLZMZENZMCDOVAACPLVFGHC
      VBVBHKZQLZLZVHLZMZENVFJPVGCMZVKVEEVLVJVDVBVLVIVCVHBVLVHCQLBVGCQRFUCZVLVBV
      HBVMUAUDUBUEHEUFVFCSLZUGZVNCSTUHVEEVOVEVBVDVOVEUOVDVOIVDVNUIVCBVNCVNUJFUK
      VDVNVCBTULUMUNUPUQURUSUT $.

    $( The predicate "is a closed subspace" (of a pre-Hilbert space).
       (Contributed by NM, 7-Oct-2011.)  (Revised by Mario Carneiro,
       13-Oct-2015.) $)
    iscss $p |- ( W e. X -> ( S e. C <-> S = ( ._|_ ` ( ._|_ ` S ) ) ) ) $=
      ( vs wcel cv cfv wceq cab cssval eleq2d cvv id fvex syl6eqel fveq2 fveq2d
      eqeq12d elab3 syl6bb ) DEIZBAIBHJZUFCKZCKZLZHMZIBBCKZCKZLZUEAUJBACDEHFGNO
      UIUMHBUMBULPUMQUKCRSUFBLZUFBUHULUNQUNUGUKCUFBCTUAUBUCUD $.

    $( Property of a closed subspace (of a pre-Hilbert space).  (Contributed by
       Mario Carneiro, 13-Oct-2015.) $)
    cssi $p |- ( S e. C -> S = ( ._|_ ` ( ._|_ ` S ) ) ) $=
      ( wcel cfv wceq ccss cdm wb elfvdm eleq2s iscss syl ibi ) BAGZBBCHCHIZRDJ
      KZGZRSLUABDJHABDJMFNABCDTEFOPQ $.
  $}

  ${
    cssss.v $e |- V = ( Base ` W ) $.
    cssss.c $e |- C = ( CSubSp ` W ) $.
    $( A closed subspace is a subset of the base.  (Contributed by Mario
       Carneiro, 13-Oct-2015.) $)
    cssss $p |- ( S e. C -> S C_ V ) $=
      ( wcel cocv cfv eqid cssi ocvss syl6eqss ) BAGBBDHIZIZNICABNDNJZFKONCDEPL
      M $.

    ocvcss.o $e |- ._|_ = ( ocv ` W ) $.
    $( It is sufficient to prove that the double orthocomplement is a subset of
       the target set to show that the set is a closed subspace.  (Contributed
       by Mario Carneiro, 13-Oct-2015.) $)
    iscss2 $p |- ( ( W e. PreHil /\ S C_ V ) ->
      ( S e. C <-> ( ._|_ ` ( ._|_ ` S ) ) C_ S ) ) $=
      ( cphl wcel wss wa cfv wceq wb iscss adantr ocvocv eqss baib syl bitrd )
      EIJZBDKZLZBAJZBBCMCMZNZUGBKZUCUFUHOUDABCEIHGPQUEBUGKZUHUIOBCDEFHRUHUJUIBU
      GSTUAUB $.

    $( The orthocomplement of any set is a closed subspace.  (Contributed by
       Mario Carneiro, 13-Oct-2015.) $)
    ocvcss $p |- ( ( W e. PreHil /\ S C_ V ) -> ( ._|_ ` S ) e. C ) $=
      ( cphl wcel wss wa cfv ocvocv ocv2ss syl wb ocvss a1i iscss2 sylan2
      mpbird ) EIJZBDKZLZBCMZAJZUFCMZCMUFKZUEBUHKUIBCDEFHNUHBCEHOPUDUCUFDKZUGUI
      QUJUDBCDEFHRSAUFCDEFGHTUAUB $.
  $}

  ${
    css0.c $e |- C = ( CSubSp ` W ) $.
    $( The zero subspace is a closed subspace.  (Contributed by Mario Carneiro,
       13-Oct-2015.) $)
    cssincl $p |- ( ( W e. PreHil /\ A e. C /\ B e. C ) ->
                    ( A i^i B ) e. C ) $=
      ( cphl wcel cin cocv cfv cun cbs wss eqid ocvss unssi ocvcss mpan2 cssi
      wa ineqan12d unocv syl6eqr eleq1d syl5ibrcom 3impib ) DFGZACGZBCGZABHZCGZ
      UGUKUHUITZADIJZJZBUMJZKZUMJZCGZUGUPDLJZMURUNUOUSAUMUSDUSNZUMNZOBUMUSDUTVA
      OPCUPUMUSDUTEVAQRULUJUQCULUJUNUMJZUOUMJZHUQUHUIAVBBVCCAUMDVAESCBUMDVAESUA
      UNUOUMDVAUBUCUDUEUF $.

    css0.z $e |- .0. = ( 0g ` W ) $.
    $( The zero subspace is a closed subspace.  (Contributed by Mario Carneiro,
       13-Oct-2015.) $)
    css0 $p |- ( W e. PreHil -> { .0. } e. C ) $=
      ( cphl wcel cbs cfv cocv csn eqid ocv1 wss ssid ocvcss mpan2 eqeltrrd ) B
      FGZBHIZBJIZIZCKAUATBCTLZUALZEMSTTNUBAGTOATUATBUCDUDPQR $.
  $}

  ${
    css1.v $e |- V = ( Base ` W ) $.
    css1.c $e |- C = ( CSubSp ` W ) $.
    $( The whole space is a closed subspace.  (Contributed by Mario Carneiro,
       13-Oct-2015.) $)
    css1 $p |- ( W e. PreHil -> V e. C ) $=
      ( cphl wcel c0 cocv cfv eqid ocv0 wss 0ss ocvcss mpan2 syl5eqelr ) CFGZBH
      CIJZJZASBCDSKZLRHBMTAGBNAHSBCDEUAOPQ $.
  $}

  ${
    csslss.c $e |- C = ( CSubSp ` W ) $.
    csslss.l $e |- L = ( LSubSp ` W ) $.
    $( A closed subspace of a pre-Hilbert space is a linear subspace.
       (Contributed by Mario Carneiro, 13-Oct-2015.) $)
    csslss $p |- ( ( W e. PreHil /\ S e. C ) -> S e. L ) $=
      ( cphl wcel wa cocv cfv wceq eqid cssi adantl cbs wss ocvss a1i ocvlss
      sylan2 eqeltrd ) DGHZBAHZIBBDJKZKZUEKZCUDBUGLUCABUEDUEMZENOUDUCUFDPKZQZUG
      CHUJUDBUEUIDUIMZUHRSUFCUEUIDUKUHFTUAUB $.
  $}

  ${
    $d x y z ._|_ $.  $d x y z ph $.  $d x y z S $.  $d y z V $.  $d y z W $.
    lsmcss.c $e |- C = ( CSubSp ` W ) $.
    lsmcss.j $e |- V = ( Base ` W ) $.
    lsmcss.o $e |- ._|_ = ( ocv ` W ) $.
    lsmcss.p $e |- .(+) = ( LSSum ` W ) $.
    lsmcss.1 $e |- ( ph -> W e. PreHil ) $.
    lsmcss.2 $e |- ( ph -> S C_ V ) $.
    lsmcss.3 $e |- ( ph ->
      ( ._|_ ` ( ._|_ ` S ) ) C_ ( S .(+) ( ._|_ ` S ) ) ) $.
    $( A subset of a pre-Hilbert space whose double orthocomplement has a
       projection decomposition is a closed subspace.  This is the core of the
       proof that a topologically closed subspace is algebraically closed in a
       Hilbert space.  (Contributed by Mario Carneiro, 13-Oct-2015.) $)
    lsmcss $p |- ( ph -> S e. C ) $=
      ( wcel cfv co wceq eqid syl2anc vx vy vz cv cplusg wrex wi sseld clmod wb
      wss cphl phllmod syl ocvss a1i lsmelvalx syl3anc sylibd c0g csca ad2antrr
      wa cip simplrl sseldd simplrr sseldi ipdir syl13anc ocvi iporthcom oveq1d
      mpbid cgrp lmodfgrp ipcl grplid 3eqtrd simpr eqtr3d oveq2d lmodgrp grprid
      cbs ipeq0 eqtrd eqeltrd ex eleq1 imbi12d syl5ibrcom rexlimdvva syld ssrdv
      pm2.43d iscss2 mpbird ) ADBOZDEPZEPZDUKZAUAXADAUAUDZXAOZXCDOZAXDXCUBUDZUC
      UDZGUEPZQZRZUCWTUFUBDUFZXDXEUGZAXDXCDWTCQZOZXKAXAXMXCNUHAGUIOZDFUKZWTFUKZ
      XNXKUJAGULOZXOLGUMZUNZMXQADEFGIJUOZUPUBUCFXHCDWTGUIXCIXHSZKUQURUSAXJXLUBU
      CDWTAXFDOZXGWTOZVCZVCZXLXJXIXAOZXIDOZUGYFYGYHYFYGVCZXIXFDYIXIXFGUTPZXHQZX
      FYIXGYJXFXHYIXGXGGVDPZQZGVAPZUTPZRZXGYJRZYIXIXGYLQZYMYOYIYRXFXGYLQZYMYNUE
      PZQZYOYMYTQZYMYIXRXFFOZXGFOZUUDYRUUARAXRYEYGLVBZYIDFXFAXPYEYGMVBAYCYDYGVE
      ZVFZYIWTFXGYAAYCYDYGVGZVHZUUIXFXGXGXHYTYNYLFGYNSZYLSZIYBYTSZVIVJYIYSYOYMY
      TYIXGXFYLQYORZYSYORZYIYDYCUUMUUHUUFXGXFDYNYLEFGYOIUUKUUJYOSZJVKTYIXRUUDUU
      CUUMUUNUJUUEUUIUUGXGXFYNYLFGYOUUJUUKIUUOVLURVNVMYIYNVOOZYMYNWEPZOZUUBYMRY
      IXOUUPYIXRXOUUEXSUNYNGUUJVPUNYIXRUUDUUDUURUUEUUIUUIXGXGYNYLUUQFGUUJUUKIUU
      QSZVQURUUQYTYNYMYOUUSUULUUOVRTVSYIYGYDYRYORYFYGVTUUHXIXGWTYNYLEFGYOIUUKUU
      JUUOJVKTWAYIXRUUDYPYQUJUUEUUIXGYNYLFGYJYOUUJUUKIUUOYJSZWFTVNWBYIGVOOZUUCY
      KXFRAUVAYEYGAXOUVAXTGWCUNVBUUGFXHGXFYJIYBUUTWDTWGUUFWHWIXJXDYGXEYHXCXIXAW
      JXCXIDWJWKWLWMWNWPWOAXRXPWSXBUJLMBDEFGIHJWQTWR $.
  $}

  ${
    $d x y z C $.  $d x V $.  $d x y z W $.
    cssmre.v $e |- V = ( Base ` W ) $.
    cssmre.c $e |- C = ( CSubSp ` W ) $.
    $( The closed subspaces of a pre-Hilbert space are a Moore system.  Unlike
       many of our other examples of closure systems, this one is _not_ usually
       an algebraic closure system ~ df-acs : consider the Hilbert space of
       sequences ` NN --> RR ` with convergent sum; the subspace of all
       sequences with finite support is the classic example of a non-closed
       subspace, but for every finite set of sequences of finite support, there
       is a finite-dimensional (and hence closed) subspace containing all of
       the sequences, so if closed subspaces were an algebraic closure system
       this would violate ~ acsfiel .  (Contributed by Mario Carneiro,
       13-Oct-2015.) $)
    cssmre $p |- ( W e. PreHil -> C e. ( Moore ` V ) ) $=
      ( vx vy vz cphl wcel cv wi wss sylibr ssrdv cfv wa ocv2ss sseldd sstrd c0
      cpw cssss a1i css1 wne w3a cint cocv wal intss1 eqid 3syl ad2antll simprl
      selpw wceq simpl2 simprr cssi syl eleqtrrd expr alrimiv elint ex wb simp1
      cuni intssuni 3ad2ant3 simp2 3ad2ant1 sspwuni sylib iscss2 syl2anc mpbird
      vex ismred ) CIJZABFWAFABUBZFKZAJZWCWBJZLWAWDWCBMWEAWCBCDEUCFBUPNUDOZABCD
      EUEWAWCAMZWCUAUFZUGZWCUHZAJZWJCUIPZPZWLPZWJMZWIGWNWJWIGKZWNJZWPWJJZWIWQQZ
      HKZWCJZWPWTJZLZHUJWRWSXCHWIWQXAXBWIWQXAQZQZWPWTWLPZWLPZWTXEWNXGWPXAWNXGMZ
      WIWQXAWJWTMXFWMMXHWTWCUKWTWJWLCWLULZRWMXFWLCXIRUMUNWIWQXAUOSXEWTAJWTXGUQX
      EWCAWTWAWGWHXDURWIWQXAUSSAWTWLCXIEUTVAVBVCVDHWPWCGVSVENVFOWIWAWJBMWKWOVGW
      AWGWHVHWIWJWCVIZBWHWAWJXJMWGWCVJVKWIWCWBMXJBMWIWCAWBWAWGWHVLWAWGAWBMWHWFV
      MTWCBVNVOTAWJWLBCDEXIVPVQVRVT $.
  $}

  ${
    mrccss.v $e |- V = ( Base ` W ) $.
    mrccss.o $e |- ._|_ = ( ocv ` W ) $.
    mrccss.c $e |- C = ( CSubSp ` W ) $.
    mrccss.f $e |- F = ( mrCls ` C ) $.
    $( The Moore closure corresponding to the system of closed subspaces is the
       double orthocomplement operation.  (Contributed by Mario Carneiro,
       13-Oct-2015.) $)
    mrccss $p |- ( ( W e. PreHil /\ S C_ V ) ->
      ( F ` S ) = ( ._|_ ` ( ._|_ ` S ) ) ) $=
      ( cphl wcel wss wa cfv cmre cssmre adantr sylan ocv2ss ocvocv a1i mrcsscl
      ocvss ocvcss sylan2 syl3anc mrcssid 3syl wceq mrccl cssi sseqtr4d eqssd
      syl ) FKLZBEMZNZBCOZBDOZDOZURAEPOLZBVAMVAALZUSVAMUPVBUQAEFGIQZRBDEFGHUAUQ
      UPUTEMZVCVEUQBDEFGHUDUBAUTDEFGIHUEUFABCVAEJUCUGURVAUSDOZDOZUSURBUSMZVFUTM
      VAVGMUPVBUQVHVDABCEJUHSUSBDFHTUTVFDFHTUIURUSALZUSVGUJUPVBUQVIVDABCEJUKSAU
      SDFHIULUOUMUN $.
  $}

  ${
    $d x y C $.  $d h x y I $.  $d h ._|_ $.  $d h x y W $.
    thlval.k $e |- K = ( toHL ` W ) $.
    ${
      thlval.c $e |- C = ( CSubSp ` W ) $.
      thlval.i $e |- I = ( toInc ` C ) $.
      thlval.o $e |- ._|_ = ( ocv ` W ) $.
      $( Value of the Hilbert lattice.  (Contributed by Mario Carneiro,
         25-Oct-2015.) $)
      thlval $p |- ( W e. V -> K = ( I sSet <. ( oc ` ndx ) , ._|_ >. ) ) $=
        ( vh wcel cvv cfv cop csts ccss cipo cocv syl6eqr cnx co wceq elex cthl
        coc cv fveq2 fveq2d opeq2d oveq12d df-thl ovex fvmpt syl5eq syl ) FELFM
        LZCBUAUFNZDOZPUBZUCFEUDUQCFUENUTGKFKUGZQNZRNZURVASNZOZPUBUTMUEVAFUCZVCB
        VEUSPVFVCARNBVFVBARVFVBFQNAVAFQUHHTUIITVFVDDURVFVDFSNDVAFSUHJTUJUKKULBU
        SPUMUNUOUP $.
    $}

    ${
      thlbas.c $e |- C = ( CSubSp ` W ) $.
      $( Base set of the Hilbert lattice of closed subspaces.  (Contributed by
         Mario Carneiro, 25-Oct-2015.) $)
      thlbas $p |- C = ( Base ` K ) $=
        ( cvv wcel cbs cfv wceq cnx eqid fveq2d ccss wne c1 1nn0 fvprc syl5eq
        c0 cipo coc cocv cop csts co thlval eqeltri ipobas ax-mp baseid cdc 1re
        fvex 1nn 1lt10 declti ltneii basendx ocndx neeq12i mpbir eqtri syl6reqr
        setsnid wn base0 cthl 3eqtr4a pm2.61i ) CFGZABHIZJVKVLAUAIZKUBIZCUCIZUD
        UEUFZHIZAVKBVPHAVMBVOFCDEVMLZVOLUGMAVMHIZVQAFGAVSJACNIZFECNUNUHAVMFVRUI
        UJVOVNHVMUKKHIZVNOPPPULZOPWBUMPPPUOQQUPUQURWAPVNWBUSUTVAVBVEVCVDVKVFZTT
        HIAVLVGWCAVTTECNRSWCBTHWCBCVHITDCVHRSMVIVJ $.

      ${
        thlle.i $e |- I = ( toInc ` C ) $.
        thlle.l $e |- .<_ = ( le ` I ) $.
        $( Ordering on the Hilbert lattice of closed subspaces.  (Contributed
           by Mario Carneiro, 25-Oct-2015.) $)
        thlle $p |- .<_ = ( le ` K ) $=
          ( vx vy cvv wcel cple cfv wceq wne c1 c0 ccss cnx coc cocv cop thlval
          csts eqid fveq2d pleid cc0 cdc 10re 1nn0 0nn0 1nn declt ltneii plendx
          co 0lt1 ocndx neeq12i mpbir setsnid eqtri syl6reqr wn str0 cv cpr wss
          wa copab fvex eqeltri ipolerval ax-mp eqtr4i wex opabn0 elfvex eleq2s
          vex prss ad2antrr sylanbr exlimivv sylbi necon1bi syl5eq cthl 3eqtr4a
          fvprc pm2.61i ) ELMZDCNOZPWOWPBUAUBOZEUCOZUDUFUSZNOZDWOCWSNABCWRLEFGH
          WRUGUEUHDBNOZWTIWRWQNBUIUANOZWQQRUJUKZRRUKZQXCXDULRUJRUMUNUOUTUPUQXBX
          CWQXDURVAVBVCVDVEVFWOVGZSSNODWPNXBUIVHXEDJVIZKVIZVJAVKZXFXGVKZVLZJKVM
          ZSDXAXKIALMXKXAPAETOZLGETVNVOJKABLHVPVQVRWOXKSXKSQXJKVSJVSWOXJJKVTXJW
          OJKXHXFAMZXGAMZVLXIWOXFXGAJWCKWCWDXMWOXNXIWOXFXLAXFETWAGWBWEWFWGWHWIW
          JXECSNXECEWKOSFEWKWMWJUHWLWN $.
      $}

      ${
        thlleval.l $e |- .<_ = ( le ` K ) $.
        $( Ordering on the Hilbert lattice of closed subspaces.  (Contributed
           by Mario Carneiro, 25-Oct-2015.) $)
        thlleval $p |- ( ( S e. C /\ T e. C ) -> ( S .<_ T <-> S C_ T ) ) $=
          ( cvv wcel wbr wss wb ccss cfv fvex eqeltri eqid cple eqtr4i mp3an1
          cipo thlle ipole ) AJKBAKCAKBCELBCMNAFOPJHFOQRAAUCPZEJBCUFSZEDTPUFTPZ
          IAUFDUHFGHUGUHSUDUAUEUB $.
      $}
    $}

    ${
      thloc.c $e |- ._|_ = ( ocv ` W ) $.
      $( Orthocomplement on the Hilbert lattice of closed subspaces.
         (Contributed by Mario Carneiro, 25-Oct-2015.) $)
      thloc $p |- ._|_ = ( oc ` K ) $=
        ( cvv wcel coc cfv wceq cipo eqid fveq2d fvex cocv ocid c0 fvprc syl5eq
        cthl ccss cnx csts co thlval eqeltri setsid mp2an syl6reqr str0 3eqtr4a
        cop wn pm2.61i ) CFGZBAHIZJUOUPCUAIZKIZUBHIZBULUCUDZHIZBUOAUTHUQURABFCD
        UQLURLEUEMURFGBFGBVAJUQKNBCOIZFECONUFFBHFURPUGUHUIUOUMZQQHIBUPHUSPUJVCB
        VBQECORSVCAQHVCACTIQDCTRSMUKUN $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Orthogonal projection and orthonormal bases
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c proj $.
  $c Hil $.
  $c OBasis $.

  $( Extend class notation with orthogonal projection function. $)
  cpj $a class proj $.

  $( Extend class notation with class of all Hilbert spaces. $)
  chs $a class Hil $.

  $( Extend class notation with the set of orthonormal bases. $)
  cobs $a class OBasis $.

  ${
    $d b h x y $.
    $( Define orthogonal projection onto a subspace.  This is just a wrapping
       of ~ df-pj1 , but we restrict the domain of this function to only total
       projection functions.  (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    df-pj $a |- proj = ( h e. _V |-> ( ( x e. ( LSubSp ` h ) |->
      ( x ( proj1 ` h ) ( ( ocv ` h ) ` x ) ) ) i^i
        ( _V X. ( ( Base ` h ) ^m ( Base ` h ) ) ) ) ) $.

    $( Define class of all Hilbert spaces.  Based on Proposition 4.5, p. 176,
       Gudrun Kalmbach, Quantum Measures and Spaces, Kluwer, Dordrecht, 1998.
       (Contributed by NM, 7-Oct-2011.)  (Revised by Mario Carneiro,
       16-Oct-2015.) $)
    df-hil $a |- Hil = { h e. PreHil | dom ( proj ` h ) = ( CSubSp ` h ) } $.

    $( Define the set of all orthonormal bases for a pre-Hilbert space.  An
       orthonormal basis is a set of mutually orthogonal vectors with norm 1
       and such that the linear span is dense in the whole space.  (As this is
       an "algebraic" definition, before we have topology available, we express
       this denseness by saying that the double orthocomplement is the whole
       space, or equivalently, the single orthocomplement is trivial.)
       (Contributed by Mario Carneiro, 23-Oct-2015.) $)
    df-obs $a |- OBasis = ( h e. PreHil |-> { b e. ~P ( Base ` h ) |
      ( A. x e. b A. y e. b ( x ( .i ` h ) y ) =
        if ( x = y , ( 1r ` ( Scalar ` h ) ) , ( 0g ` ( Scalar ` h ) ) ) /\
        ( ( ocv ` h ) ` b ) = { ( 0g ` h ) } ) } ) $.

    $d w x ._|_ $.  $d w x L $.  $d w x P $.  $d w x V $.  $d w x W $.
    $d x T $.
    pjfval.v $e |- V = ( Base ` W ) $.
    pjfval.l $e |- L = ( LSubSp ` W ) $.
    pjfval.o $e |- ._|_ = ( ocv ` W ) $.
    pjfval.p $e |- P = ( proj1 ` W ) $.
    pjfval.k $e |- K = ( proj ` W ) $.
    $( The value of the projection function.  (Contributed by Mario Carneiro,
       16-Oct-2015.) $)
    pjfval $p |- K =
      ( ( x e. L |-> ( x P ( ._|_ ` x ) ) ) i^i ( _V X. ( V ^m V ) ) ) $=
      ( cfv co cvv cmap cxp cin clss c0 vw cpj cv cmpt wcel wceq cocv cbs fveq2
      cpj1 syl6eqr eqidd fveq1d oveq123d mpteq12dv oveq12d xpeq2d ineq12d df-pj
      fvex eqeltri inex1 ovex inex2 xpex eqid ovexd fmpti fssxp ssrin mp2b inxp
      wf wss sseqtri ssexi fvmpt fvprc inss1 syl5eq mpteq1d mpt0 syl6eq sylancr
      wn sseq0 eqtr4d pm2.61i eqtri ) CGUBMZADAUCZWKEMZBNZUDZOFFPNZQZRZLGOUEZWJ
      WQUFUAGAUAUCZSMZWKWKWSUGMZMZWSUJMZNZUDZOWSUHMZXFPNZQZRWQOUBWSGUFZXEWNXHWP
      XIAWTXDDWMXIWTGSMZDWSGSUIIUKXIWKWKXBWLXCBXIXCGUJMBWSGUJUIKUKXIWKULXIWKXAE
      XIXAGUGMEWSGUGUIJUKUMUNUOXIXGWOOXIXFFXFFPXIXFGUHMFWSGUHUIHUKZXKUPUQURAUAU
      SWQDORZOWORZQZXLXMDODXJOIGSUTVAVBWOOFFPVCVDVEWQDOQZWPRZXNDOWNVMWNXOVNWQXP
      VNADOWMWNWNVFWKDUEWKWLBVGVHDOWNVIWNXOWPVJVKDOOWOVLVOVPVQWRWEZWJTWQGUBVRXQ
      WQWNVNWNTUFWQTUFWNWPVSXQWNATWMUDTXQADTWMXQDXJTIGSVRVTWAAWMWBWCWQWNWFWDWGW
      HWI $.

    $( A subspace is in the domain of the projection function iff the subspace
       admits a projection decomposition of the whole space.  (Contributed by
       Mario Carneiro, 16-Oct-2015.) $)
    pjdm $p |- ( T e. dom K <->
      ( T e. L /\ ( T P ( ._|_ ` T ) ) : V --> V ) ) $=
      ( vx cfv co wcel cbs cvv ccnv cin cv cmap wf wceq id fveq2 oveq12d eleq1d
      cdm fvex eqeltri elmap syl6bb cmpt cima crab crn cnvin cnvxp ineq2i eqtri
      cres cxp pjfval cnveqi df-res 3eqtr4i rneqi dfdm4 df-ima mptpreima elrab2
      eqid ) MUAZVNENZAOZFFUBOZPZFFBBENZAOZUCZMBDCUIZVNBUDZVRVTVQPWAWCVPVTVQWCV
      NBVOVSAWCUEVNBEUFUGUHFFVTFGQNRHGQUJUKZWDULUMWBMDVPUNZSZVQUOZVRMDUPCSZUQWF
      VQVBZUQWBWGWHWIWERVQVCZTZSZWFVQRVCZTZWHWIWLWFWJSZTWNWEWJURWOWMWFRVQUSUTVA
      CWKMACDEFGHIJKLVDVEWFVQVFVGVHCVIWFVQVJVGMDVPVQWEWEVMVKVAVL $.
  $}

  ${
    $d x L $.  $d x V $.  $d x W $.
    pjpm.v $e |- V = ( Base ` W ) $.
    pjpm.l $e |- L = ( LSubSp ` W ) $.
    pjpm.k $e |- K = ( proj ` W ) $.
    $( The projection map is a partial function from subspaces of the
       pre-Hilbert space to total operators.  (Contributed by Mario Carneiro,
       16-Oct-2015.) $)
    pjpm $p |- K e. ( ( V ^m V ) ^pm L ) $=
      ( vx cmap co wcel wfun cxp wss cfv cvv cin eqid eqsstri inv1 cv cocv cpj1
      cpm cmpt pjfval inss1 funmpt funss mp2 ovexd fmpti fssxp ssrin mp2b incom
      wf inxp eqtri xpeq12i sseqtri ovex clss fvex eqeltri elpm mpbir2an ) ACCI
      JZBUDJKALZABVHMZNAHBHUAZVKDUBOZOZDUCOZJZUEZNVPLVIAVPPVHMZQZVPHVNABVLCDEFV
      LRVNRGUFZVPVQUGSHBVOUHAVPUIUJABPMZVQQZVJAVRWAVSBPVPUQVPVTNVRWANHBPVOVPVPR
      VKBKVKVMVNUKULBPVPUMVPVTVQUNUOSWABPQZPVHQZMVJBPPVHURWBBWCVHBTWCVHPQVHPVHU
      PVHTUSUTUSVAVHBACCIVBBDVCOPFDVCVDVEVFVG $.
  $}

  ${
    $d x y K $.  $d x y ._|_ $.  $d x y P $.  $d x T $.  $d x y W $.
    pjfval2.o $e |- ._|_ = ( ocv ` W ) $.
    pjfval2.p $e |- P = ( proj1 ` W ) $.
    pjfval2.k $e |- K = ( proj ` W ) $.
    $( Value of the projection map with implicit domain.  (Contributed by Mario
       Carneiro, 16-Oct-2015.) $)
    pjfval2 $p |- K = ( x e. dom K |-> ( x P ( ._|_ ` x ) ) ) $=
      ( vy cfv cv co cmpt cvv cbs cin wcel wa copab df-mpt clss cmap wceq df-xp
      cxp cdm ineq12i eqid pjfval pjdm eleq1 fvex elmap syl6rbb anbi2d pm5.32ri
      wf syl5bb an32 vex biantrur anbi2i 3bitri opabbii inopab 3eqtr4i ) AEUAJZ
      AKZVHDJBLZMZNEOJZVKUBLZUEZPVHVGQZIKZVIUCZRZAISZVHNQZVOVLQZRZAISZPZCACUFZV
      IMZVJVRVMWBAIVGVITAINVLUDUGABCVGDVKEVKUHZVGUHZFGHUIVHWDQZVPRZAISVQWARZAIS
      WEWCWIWJAIWIVNVTRZVPRVQVTRWJVPWHWKWHVNVKVKVIUQZRVPWKBVHCVGDVKEWFWGFGHUJVP
      WLVTVNVPVTVIVLQWLVOVIVLUKVKVKVIEOULZWMUMUNUOURUPVNVTVPUSVTWAVQVSVTAUTVAVB
      VCVDAIWDVITVQWAAIVEVFVF $.

    $( Value of the projection map.  (Contributed by Mario Carneiro,
       16-Oct-2015.) $)
    pjval $p |- ( T e. dom K -> ( K ` T ) = ( T P ( ._|_ ` T ) ) ) $=
      ( vx cv cfv co cdm wceq id fveq2 oveq12d pjfval2 ovex fvmpt ) IBIJZUADKZA
      LBBDKZALCMCUABNZUABUBUCAUDOUABDPQIACDEFGHRBUCAST $.
  $}

  ${
    pjdm2.v $e |- V = ( Base ` W ) $.
    pjdm2.l $e |- L = ( LSubSp ` W ) $.
    pjdm2.o $e |- ._|_ = ( ocv ` W ) $.
    pjdm2.s $e |- .(+) = ( LSSum ` W ) $.
    pjdm2.k $e |- K = ( proj ` W ) $.
    $( A subspace is in the domain of the projection function iff the subspace
       admits a projection decomposition of the whole space.  (Contributed by
       Mario Carneiro, 16-Oct-2015.) $)
    pjdm2 $p |- ( W e. PreHil ->
      ( T e. dom K <-> ( T e. L /\ ( T .(+) ( ._|_ ` T ) ) = V ) ) ) $=
      ( cdm wcel cfv co wf wa eqid syl cpj1 cphl wceq wb cplusg c0g ccntz csubg
      clmod wss phllmod adantr lsssssubg simpr sseldd lssss ocvlss sylan2 ocvin
      pjdm cabl lmodabl ablcntzd pj1f adantl fssd eqcomd syl5ibcom feq2 biimpcd
      fdm eqeq2d impbid pm5.32da syl5bb ) BCMNBDNZFFBBEOZGUAOZPZQZRGUBNZVPBVQAP
      ZFUCZRVRBCDEFGHIJVRSZLUTWAVPVTWCWAVPRZWBFVSQZVTWCUDWEWBBFVSWEVRGUEOZABVQG
      GUFOZGUGOZWGSKWHSZWISZWEDGUHOZBWEGUINZDWLUJWAWMVPGUKULZDGIUMTZWAVPUNUOZWE
      DWLVQWOVPWABFUJZVQDNDBFGHIUPZBDEFGHJIUQURUOZBDEGWHJIWJUSWEBVQGWIWKWEWMGVA
      NWNGVBTWPWSVCWDVDVPWQWAWRVEVFWFVTWCWFWBVSMZUCVTWCWFWTWBWBFVSVKVGVTWTFWBFF
      VSVKVLVHWCWFVTWBFFVSVIVJVMTVNVO $.
  $}

  ${
    $d x K $.  $d x T $.  $d x W $.
    pjf.k $e |- K = ( proj ` W ) $.
    $( A projection is a linear operator.  (Contributed by Mario Carneiro,
       16-Oct-2015.) $)
    pjff $p |- ( W e. PreHil -> K : dom K --> ( W LMHom W ) ) $=
      ( vx cphl wcel cdm cv cocv cpj1 co clmhm wa clsm cress eqid adantr syldan
      cfv wceq clss c0g clmod phllmod cbs pjdm2 simprbda wss syl ocvlss cin csn
      lssss ocvin pj1lmhm simplbda oveq2d ressid eqtrd oveq1d eleqtrd pjfval2
      fmptd ) BEFZDAGZDHZVFBISZSZBJSZKZBBLKZAVDVFVEFZMZVJBVFVHBNSZKZOKZBLKVKVMV
      IVNVFVHBUASZBBUBSZVQPZVNPZVRPZVIPZVDBUCFVLBUDQVDVLVFVQFZVOBUESZTZVNVFAVQV
      GWDBWDPZVSVGPZVTCUFZUGZVDVLVFWDUHZVHVQFVMWCWJWIVQVFWDBWFVSUMUIVFVQVGWDBWF
      WGVSUJRVDVLWCVFVHUKVRULTWIVFVQVGBVRWGVSWAUNRUOVMVPBBLVMVPBWDOKZBVMVOWDBOV
      DVLWCWEWHUPUQVDWKBTVLWDBEWFURQUSUTVADVIAVGBWGWBCVBVC $.

    pjf.v $e |- V = ( Base ` W ) $.
    $( A projection is a function on the base set.  (Contributed by Mario
       Carneiro, 16-Oct-2015.) $)
    pjf $p |- ( T e. dom K -> ( K ` T ) : V --> V ) $=
      ( cdm wcel cfv wf cocv cpj1 co clss eqid pjdm simprbi pjval feq1d mpbird
      ) ABGHZCCABIZJCCAADKIZIDLIZMZJZUAADNIZHUFUDABUGUCCDFUGOUCOZUDOZEPQUACCUBU
      EUDABUCDUHUIERST $.

    $( A projection is a function from the base set to the subspace.
       (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    pjf2 $p |- ( ( W e. PreHil /\ T e. dom K ) -> ( K ` T ) : V --> T ) $=
      ( cphl wcel cdm wa cocv cfv co wf eqid wss syl wceq sseldd syldan phllmod
      clsm cpj1 cplusg c0g ccntz clss csubg clmod adantr lsssssubg pjdm2 ocvlss
      simprbda lssss cin ocvin cabl lmodabl ablcntzd pj1f pjval adantl simplbda
      csn eqcomd feq12d mpbid ) DGHZABIHZJZAADKLZLZDUBLZMZAAVMDUCLZMZNCAABLZNVK
      VPDUDLZVNAVMDDUELZDUFLZVSOVNOZVTOZWAOZVKDUGLZDUHLZAVKDUIHZWEWFPVIWGVJDUAU
      JZWEDWEOZUKQZVIVJAWEHZVOCRZVNABWEVLCDFWIVLOZWBEULZUNZSZVKWEWFVMWJVIVJACPZ
      VMWEHVKWKWQWOWEACDFWIUOQAWEVLCDFWMWIUMTSZVIVJWKAVMUPVTVERWOAWEVLDVTWMWIWC
      UQTVKAVMDWAWDVKWGDURHWHDUSQWPWRUTVPOZVAVKVOCAVQVRVKVRVQVJVRVQRVIVPABVLDWM
      WSEVBVCVFVIVJWKWLWNVDVGVH $.

    $( A projection is a surjection onto the subspace.  (Contributed by Mario
       Carneiro, 16-Oct-2015.) $)
    pjfo $p |- ( ( W e. PreHil /\ T e. dom K ) -> ( K ` T ) : V -onto-> T ) $=
      ( vx cphl wcel cdm wa cfv wceq wss syl co eqid adantr sseldd syldan wf cv
      crn wfo pjf2 cocv cpj1 pjval ad2antlr fveq1d cplusg clsm ccntz clss csubg
      frn c0g clmod phllmod lsssssubg pjdm2 simprbda lssss ocvlss cin csn ocvin
      lmodabl ablcntzd pj1lid eqtrd wfn ffn sselda fnfvelrn syl2anc eqeltrrd ex
      cabl ssrdv eqssd dffo2 sylanbrc ) DHIZABJIZKZCAABLZUAZWGUCZAMCAWGUDABCDEF
      UEZWFWIAWFWHWIANWJCAWGUPOWFGAWIWFGUBZAIZWKWIIWFWLKZWKWGLZWKWIWMWNWKAADUFL
      ZLZDUGLZPZLWKWMWKWGWRWEWGWRMWDWLWQABWODWOQZWQQZEUHUIUJWFWQDUKLZDULLZAWPDW
      KDUQLZDUMLZXAQXBQZXCQZXDQZWFDUNLZDUOLZAWFDURIZXHXINWDXJWEDUSRZXHDXHQZUTOZ
      WDWEAXHIZAWPXBPCMXBABXHWOCDFXLWSXEEVAVBZSZWFXHXIWPXMWDWEACNZWPXHIWFXNXQXO
      XHACDFXLVCOZAXHWOCDFWSXLVDTSZWDWEXNAWPVEXCVFMXOAXHWODXCWSXLXFVGTWFAWPDXDX
      GWFXJDVSIXKDVHOXPXSVIWTVJVKWMWGCVLZWKCIWNWIIWFXTWLWFWHXTWJCAWGVMORWFACWKX
      RVNCWKWGVOVPVQVRVTWACAWGWBWC $.
  $}

  ${
    $d x C $.  $d x K $.  $d x W $.
    pjcss.k $e |- K = ( proj ` W ) $.
    pjcss.c $e |- C = ( CSubSp ` W ) $.
    $( A projection subspace is an (algebraically) closed subspace.
       (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    pjcss $p |- ( W e. PreHil -> dom K C_ C ) $=
      ( vx cphl wcel cdm cv wa clsm cfv cocv cbs eqid simpl clss wss co wceq ex
      pjdm2 simprbda lssss syl ocvss simplbda syl5sseqr lsmcss ssrdv ) CGHZFBIZ
      AULFJZUMHZUNAHULUOKZACLMZUNCNMZCOMZCEUSPZURPZUQPZULUOQUPUNCRMZHZUNUSSULUO
      VDUNUNURMZUQTZUSUAZUQUNBVCURUSCUTVCPZVAVBDUCZUDVCUNUSCUTVHUEUFUPUSVEURMVF
      VEURUSCUTVAUGULUOVDVGVIUHUIUJUBUK $.
  $}

  ${
    ocvpj.k $e |- K = ( proj ` W ) $.
    ocvpj.o $e |- ._|_ = ( ocv ` W ) $.
    $( The orthocomplement of a projection subspace is a projection subspace.
       (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    ocvpj $p |- ( ( W e. PreHil /\ T e. dom K ) -> ( ._|_ ` T ) e. dom K ) $=
      ( cphl wcel cdm wa cfv co wceq wss eqid syl syldan adantr sseldd pjdm2 wb
      clss clsm ccss pjcss sselda cssss ocvlss cabl csubg clmod phllmod lmodabl
      lsssssubg csslss lsmcom syl3anc cssi oveq2d simplbda 3eqtr3d mpbir2and
      cbs ) DGHZABIZHZJZACKZVEHZVHDUBKZHZVHVHCKZDUCKZLZDVCKZMZVDVFAVONZVKVGADUD
      KZHZVQVDVEVRAVRBDEVROZUEUFZVRAVODVOOZVTUGPAVJCVODWBFVJOZUHQZVGVHAVMLZAVHV
      MLZVNVOVGDUIHZVHDUJKZHAWHHWEWFMVGDUKHZWGVDWIVFDULRZDUMPVGVJWHVHVGWIVJWHNW
      JVJDWCUNPZWDSVGVJWHAWKVDVFVSAVJHZWAVRAVJDVTWCUOQSVMVHADVMOZUPUQVGAVLVHVMV
      GVSAVLMWAVRACDFVTURPUSVDVFWLWFVOMVMABVJCVODWBWCFWMETUTVAVDVIVKVPJUAVFVMVH
      BVJCVODWBWCFWMETRVB $.
  $}

  ${
    $d h C $.  $d h H $.  $d h K $.
    ishil.k $e |- K = ( proj ` H ) $.
    ishil.c $e |- C = ( CSubSp ` H ) $.
    $( The predicate "is a Hilbert space" (over a *-division ring).  A Hilbert
       space is a pre-Hilbert space such that all closed subspaces have a
       projection decomposition.  (Contributed by NM, 7-Oct-2011.)  (Revised by
       Mario Carneiro, 22-Jun-2014.) $)
    ishil $p |- ( H e. Hil <-> ( H e. PreHil /\ dom K = C ) ) $=
      ( vh cv cpj cfv cdm ccss wceq cphl chs fveq2 syl6eqr dmeqd eqeq12d df-hil
      elrab2 ) FGZHIZJZUAKIZLCJZALFBMNUABLZUCUEUDAUFUBCUFUBBHICUABHODPQUFUDBKIA
      UABKOEPRFST $.
  $}

  ${
    $d s C $.  $d s H $.
    ishil2.v $e |- V = ( Base ` H ) $.
    ishil2.s $e |- .(+) = ( LSSum ` H ) $.
    ishil2.o $e |- ._|_ = ( ocv ` H ) $.
    ishil2.c $e |- C = ( CSubSp ` H ) $.
    $( The predicate "is a Hilbert space" (over a *-division ring).
       (Contributed by NM, 7-Oct-2011.)  (Revised by Mario Carneiro,
       22-Jun-2014.) $)
    ishil2 $p |- ( H e. Hil
        <-> ( H e. PreHil /\ A. s e. C ( s .(+) ( ._|_ ` s ) ) = V ) ) $=
      ( chs wcel cphl cfv wceq wa wral eqid wss wb cpj cv ishil pjcss eqss baib
      cdm co dfss3 syl6bb clss csslss pjdm2 baibd syldan ralbidva bitrd pm5.32i
      syl bitri ) CKLCMLZCUANZUGZAOZPVAFUBZVEDNBUHEOZFAQZPACVBVBRZJUCVAVDVGVAVD
      VEVCLZFAQZVGVAVDAVCSZVJVAVCASZVDVKTAVBCVHJUDVDVLVKVCAUEUFUSFAVCUIUJVAVIVF
      FAVAVEALVECUKNZLZVIVFTAVEVMCJVMRZULVAVIVNVFBVEVBVMDECGVOIHVHUMUNUOUPUQURU
      T $.
  $}

  ${
    $d b h x y ., $.  $d b h ._|_ $.  $d b h x y .0. $.  $d x y P $.  $d y Q $.
    $d b h x y .1. $.  $d b x y B $.  $d b h V $.  $d b h x y W $.  $d b h Y $.
    isobs.v $e |- V = ( Base ` W ) $.
    isobs.h $e |- ., = ( .i ` W ) $.
    isobs.f $e |- F = ( Scalar ` W ) $.
    isobs.u $e |- .1. = ( 1r ` F ) $.
    isobs.z $e |- .0. = ( 0g ` F ) $.
    ${
      isobs.o $e |- ._|_ = ( ocv ` W ) $.
      isobs.y $e |- Y = ( 0g ` W ) $.
      $( The predicate "is an orthonormal basis" (over a pre-Hilbert space).
         (Contributed by Mario Carneiro, 23-Oct-2015.) $)
      isobs $p |- ( B e. ( OBasis ` W ) <-> ( W e. PreHil /\ B C_ V /\
        ( A. x e. B A. y e. B ( x ., y ) = if ( x = y , .1. , .0. ) /\
          ( ._|_ ` B ) = { Y } ) ) ) $=
        ( cfv wceq vh vb cobs wcel cphl wss cv co cif wral csn w3a cdm cip csca
        wa cur c0g cocv cbs cpw crab df-obs dmmptss elfvdm sseldi fveq2 syl6eqr
        pweqd oveqd fveq2d ifeq12d eqeq12d 2ralbidv sneqd anbi12d rabeqbidv cvv
        fveq1d fvex pwex rabex fvmpt eleq2d raleq raleqbi1dv eqeq1d elrab elpw2
        eqeltri anbi1i bitri syl6bb biadan2 3anass bitr4i ) CIUCSZUDZIUEUDZCHUF
        ZAUGZBUGZFUHZXAXBTZDKUIZTZBCUJZACUJZCGSZJUKZTZUPZUPZUPWSWTXLULWRWSXMWRU
        CUMUEIUAUEXAXBUAUGZUNSZUHZXDXNUOSZUQSZXQURSZUIZTZBUBUGZUJAYBUJZYBXNUSSZ
        SZXNURSZUKZTZUPZUBXNUTSZVAZVBZUCABUAUBVCZVDCIUCVEVFWSWRCXFBYBUJZAYBUJZY
        BGSZXJTZUPZUBHVAZVBZUDZXMWSWQYTCUAIYLYTUEUCXNITZYIYRUBYKYSUUBYJHUUBYJIU
        TSZHXNIUTVGLVHVIUUBYCYOYHYQUUBYAXFABYBYBUUBXPXCXTXEUUBXOFXAXBUUBXOIUNSF
        XNIUNVGMVHVJUUBXDXRDXSKUUBXREUQSDUUBXQEUQUUBXQIUOSEXNIUOVGNVHZVKOVHUUBX
        SEURSKUUBXQEURUUDVKPVHVLVMVNUUBYEYPYGXJUUBYBYDGUUBYDIUSSGXNIUSVGQVHVSUU
        BYFJUUBYFIURSJXNIURVGRVHVOVMVPVQYMYRUBYSHHUUCVRLIUTVTWJZWAWBWCWDUUACYSU
        DZXLUPXMYRXLUBCYSYBCTZYOXHYQXKYNXGAYBCXFBYBCWEWFUUGYPXIXJYBCGVGWGVPWHUU
        FWTXLCHUUEWIWKWLWMWNWSWTXLWOWP $.
    $}

    $( The inner product of two elements of an orthonormal basis.  (Contributed
       by Mario Carneiro, 23-Oct-2015.) $)
    obsip $p |- ( ( B e. ( OBasis ` W ) /\ P e. B /\ Q e. B ) ->
                  ( P ., Q ) = if ( P = Q , .1. , .0. ) ) $=
      ( vx vy cfv wcel co wceq cobs cif cv wral wa cocv c0g csn cphl eqid isobs
      wss simp3bi simpld oveq1 eqeq1 ifbid eqeq12d oveq2 rspc2v syl5com 3impib
      eqeq2 ) AHUAQRZBARZCARZBCFSZBCTZDIUBZTZVDOUCZPUCZFSZVKVLTZDIUBZTZPAUDOAUD
      ZVEVFUEVJVDVQAHUFQZQHUGQZUHTZVDHUIRAGULVQVTUEOPADEFVRGHVSIJKLMNVRUJVSUJUK
      UMUNVPVJBVLFSZBVLTZDIUBZTOPBCAAVKBTZVMWAVOWCVKBVLFUOWDVNWBDIVKBVLUPUQURVL
      CTZWAVGWCVIVLCBFUSWEWBVHDIVLCBVCUQURUTVAVB $.
  $}

  ${
    obsipid.h $e |- ., = ( .i ` W ) $.
    obsipid.f $e |- F = ( Scalar ` W ) $.
    obsipid.u $e |- .1. = ( 1r ` F ) $.
    $( A basis element has unit length.  (Contributed by Mario Carneiro,
       23-Oct-2015.) $)
    obsipid $p |- ( ( B e. ( OBasis ` W ) /\ A e. B ) -> ( A ., A ) = .1. ) $=
      ( cobs cfv wcel wa co wceq c0g cif cbs eqid obsip 3anidm23 iftruei syl6eq
      ) BFJKLZABLZMAAENZAAOZCDPKZQZCUDUEUFUIOBAACDEFRKZFUHUJSGHIUHSTUAUGCUHASUB
      UC $.
  $}

  ${
    $d x y B $.  $d x y W $.
    $( Reverse closure for an orthonormal basis.  (Contributed by Mario
       Carneiro, 23-Oct-2015.) $)
    obsrcl $p |- ( B e. ( OBasis ` W ) -> W e. PreHil ) $=
      ( vx vy cobs cfv wcel cphl cbs wss cv cip wceq csca cur c0g cif wral eqid
      co cocv csn wa isobs simp1bi ) ABEFGBHGABIFZJCKZDKZBLFZTUGUHMBNFZOFZUJPFZ
      QMDARCARABUAFZFBPFZUBMUCCDAUKUJUIUMUFBUNULUFSUISUJSUKSULSUMSUNSUDUE $.

    obsss.v $e |- V = ( Base ` W ) $.
    $( An orthonormal basis is a subset of the base set.  (Contributed by Mario
       Carneiro, 23-Oct-2015.) $)
    obsss $p |- ( B e. ( OBasis ` W ) -> B C_ V ) $=
      ( vx vy cobs cfv wcel cphl wss cv cip co wceq csca cur c0g wral eqid cocv
      cif csn wa isobs simp2bi ) ACGHICJIABKELZFLZCMHZNUGUHOCPHZQHZUJRHZUBOFASE
      ASACUAHZHCRHZUCOUDEFAUKUJUIUMBCUNULDUITUJTUKTULTUMTUNTUEUF $.
  $}

  ${
    $d x y B $.  $d x y W $.
    obsocv.z $e |- .0. = ( 0g ` W ) $.
    $( A basis element is nonzero.  (Contributed by Mario Carneiro,
       23-Oct-2015.) $)
    obsne0 $p |- ( ( B e. ( OBasis ` W ) /\ A e. B ) -> A =/= .0. ) $=
      ( cobs cfv wcel csca cur c0g wne cdr cphl clvec obsrcl eqid adantr wceq
      wa phllvec lvecdrng drngunz syl cip co obsipid eqeq1d cbs wb obsss sselda
      3syl ipeq0 syl2anc bitr3d necon3bid mpbid ) BCFGHZABHZTZCIGZJGZVBKGZLZADL
      VAVBMHZVEUSVFUTUSCNHZCOHVFBCPZCUAVBCVBQZUBUMRVBVCVDVDQZVCQZUCUDVAVCVDADVA
      AACUEGZUFZVDSZVCVDSADSZVAVMVCVDABVCVBVLCVLQZVIVKUGUHVAVGACUIGZHVNVOUJUSVG
      UTVHRUSBVQABVQCVQQZUKULAVBVLVQCDVDVIVPVRVJEUNUOUPUQUR $.

    obsocv.o $e |- ._|_ = ( ocv ` W ) $.
    $( An orthonormal basis has trivial orthocomplement.  (Contributed by Mario
       Carneiro, 23-Oct-2015.) $)
    obsocv $p |- ( B e. ( OBasis ` W ) -> ( ._|_ ` B ) = { .0. } ) $=
      ( vx vy cobs cfv wcel cv cip co wceq csca cur c0g wral eqid cif csn isobs
      cphl cbs wss wa simp3bi simprd ) ACIJKZGLZHLZCMJZNUKULOCPJZQJZUNRJZUAOHAS
      GASZABJDUBOZUJCUDKACUEJZUFUQURUGGHAUOUNUMBUSCDUPUSTUMTUNTUOTUPTFEUCUHUI
      $.
  $}

  ${
    obs2ocv.o $e |- ._|_ = ( ocv ` W ) $.
    obs2ocv.v $e |- V = ( Base ` W ) $.
    $( The double orthocomplement (closure) of an orthonormal basis is the
       whole space.  (Contributed by Mario Carneiro, 23-Oct-2015.) $)
    obs2ocv $p |- ( B e. ( OBasis ` W ) -> ( ._|_ ` ( ._|_ ` B ) ) = V ) $=
      ( cobs cfv wcel c0g csn eqid obsocv fveq2d cphl wceq obsrcl ocvz eqtrd
      syl ) ADGHIZABHZBHDJHZKZBHZCUAUBUDBABDUCUCLZEMNUADOIUECPADQBCDUCFEUFRTS
      $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x W $.
    obselocv.o $e |- ._|_ = ( ocv ` W ) $.
    $( A basis element is in the orthocomplement of a subset of the basis iff
       it is not in the subset.  (Contributed by Mario Carneiro,
       23-Oct-2015.) $)
    obselocv $p |- ( ( B e. ( OBasis ` W ) /\ C C_ B /\ A e. B ) ->
       ( A e. ( ._|_ ` C ) <-> -. A e. C ) ) $=
      ( vx cfv wcel wss w3a wn wa c0g eqid wceq cin 3ad2ant1 syl syl2anc wi wne
      cobs obsne0 3adant2 csn elin clspn clmod obsrcl phllmod simp2 obsss sstrd
      cphl lspssid ssrin ocvlsp ineq2d lspcl ocvin eqtr3d sseqtrd sseld syl5bir
      cbs clss elsni syl6 necon3ad mpd imnan sylibr con2d cv co csca wral simpr
      cip eleq1 syl5ibrcom con3d cur simpl1 simpl3 sselda obsip syl3anc iffalse
      cif eqeq2d syl5ibcom ralrimdva wb simp3 sseldd elocv df-3an bitri sylibrd
      syld baib impbid ) BEUCHIZCBJZABIZKZACDHZIZACIZLZXHXKXJXHXKXJMZLZXKXJLUAX
      HAENHZUBZXNXEXGXPXFABEXOXOOZUDUEXHXMAXOXHXMAXOUFZIZAXOPXMACXIQZIXHXSACXIU
      GXHXTXRAXHXTCEUHHZHZXIQZXRXHCYBJZXTYCJXHEUIIZCEVFHZJZYDXHEUOIZYEXEXFYHXGB
      EUJRZEUKSZXHCBYFXEXFXGULZXEXFBYFJXGBYFEYFOZUMRZUNZCYAYFEYLYAOZUPTCYBXIUQS
      XHYBYBDHZQZYCXRXHYPXIYBXHYHYGYPXIPYIYNCYADYFEYLFYOURTUSXHYHYBEVGHZIZYQXRP
      YIXHYEYGYSYJYNYRCYAYFEYLYROZYOUTTYBYRDEXOFYTXQVATVBVCVDVEAXOVHVIVJVKXKXJV
      LVMVNXHXLAGVOZEVTHZVPZEVQHZNHZPZGCVRZXJXHXLUUFGCXHUUACIZMZXLAUUAPZLZUUFUU
      IUUJXKUUIXKUUJUUHXHUUHVSAUUACWAWBWCUUIUUCUUJUUDWDHZUUEWKZPZUUKUUFUUIXEXGU
      UABIUUNXEXFXGUUHWEXEXFXGUUHWFXHCBUUAYKWGBAUUAUULUUDUUBYFEUUEYLUUBOZUUDOZU
      ULOUUEOZWHWIUUKUUMUUEUUCUUJUULUUEWJWLWMXBWNXHYGAYFIZXJUUGWOYNXHBYFAYMXEXF
      XGWPWQXJYGUURMZUUGXJYGUURUUGKUUSUUGMGACUUDUUBDYFEUUEYLUUOUUPUUQFWRYGUURUU
      GWSWTXCTXAXD $.
  $}

  ${
    $d x B $.  $d x C $.  $d x W $.
    $( A basis has no proper subsets that are also bases.  (Contributed by
       Mario Carneiro, 23-Oct-2015.) $)
    obs2ss $p |- ( ( B e. ( OBasis ` W ) /\ C e. ( OBasis ` W ) /\ C C_ B ) ->
                   C = B ) $=
      ( vx cobs cfv wcel wss w3a simp3 cv wa c0g wne eqid obsne0 3ad2antl1 cocv
      wn wceq obselocv 3expa 3adantl2 csn simpl2 obsocv syl eleq2d elsni syl6bi
      wb sylbird necon1ad mpd ex ssrdv eqssd ) ACEFZGZBURGZBAHZIZBAUSUTVAJVBDAB
      VBDKZAGZVCBGZVBVDLZVCCMFZNZVEUSUTVDVHVAVCACVGVGOZPQVFVEVCVGVFVESZVCBCRFZF
      ZGZVCVGTZUSVAVDVMVJUKZUTUSVAVDVOVCABVKCVKOZUAUBUCVFVMVCVGUDZGVNVFVLVQVCVF
      UTVLVQTUSUTVAVDUEBVKCVGVIVPUFUGUHVCVGUIUJULUMUNUOUPUQ $.
  $}

  ${
    $d x y B $.  $d x J $.  $d x y N $.  $d x y W $.
    obslbs.j $e |- J = ( LBasis ` W ) $.
    obslbs.n $e |- N = ( LSpan ` W ) $.
    obslbs.c $e |- C = ( CSubSp ` W ) $.
    $( An orthogonal basis is a linear basis iff the span of the basis elements
       is closed (which is usually not true).  (Contributed by Mario Carneiro,
       29-Oct-2015.) $)
    obslbs $p |- ( B e. ( OBasis ` W ) -> ( B e. J <-> ( N ` B ) e. C ) ) $=
      ( vx vy cfv wcel wceq wss eqid syl2anc wb syl wi wa cobs cocv cphl obsrcl
      cbs obsss ocvlsp fveq2d obs2ocv eqtrd eqeq2d iscss clvec wpss wal phllvec
      cv wn wex pssnel adantl c0g csn wne pssss ad2antlr simpr obselocv syl3anc
      simpll obsne0 nelsn nelne1 expcom sylbird npss clmod phllmod sstrd lspssv
      ad2antrr ocv1 eqeq12d syl5ib embantd syl5bi necon1ad syld expimpd exlimdv
      fveq2 mpd ex alrimiv w3a islbs3 3anan32 syl6bb baibd syl12anc 3bitr4rd )
      AEUAKLZADKZXCEUBKZKZXDKZMZXCEUEKZMZXCBLZACLZXBXFXHXCXBXFAXDKZXDKXHXBXEXLX
      DXBEUCLZAXHNZXEXLMAEUDZAXHEXHOZUFZADXDXHEXPXDOZGUGPUHAXDXHEXRXPUIUJUKXBXM
      XJXGQXOBXCXDEUCXRHULRXBEUMLZXNIUQZAUNZXTDKZXHUNZSZIUOZXKXIQXBXMXSXOEUPRXQ
      XBYDIXBYAYCXBYATZJUQZALZYGXTLURZTZJUSZYCYAYKXBJXTAUTVAYFYJYCJYFYHYIYCYFYH
      TZYIXTXDKZEVBKZVCZVDZYCYLYIYGYMLZYPYLXBXTANZYHYQYIQXBYAYHVJZYAYRXBYHXTAVE
      VFZYFYHVGZYGAXTXDEXRVHVIYLYGYOLURZYQYPSYLYGYNVDZUUBYLXBYHUUCYSUUAYGAEYNYN
      OZVKPYGYNVLRYQUUBYPYGYMYOVMVNRVOYLYCYMYOYCURYBXHNZYBXHMZSYLYMYOMZYBXHVPYL
      UUEUUFUUGYLEVQLZXTXHNZUUEXBUUHYAYHXBXMUUHXOEVRRWAYLXTAXHYTXBXNYAYHXQWAVSZ
      XTDXHEXPGVTPUUFYBXDKZXHXDKZMYLUUGYBXHXDWKYLUUKYMUULYOYLXMUUIUUKYMMXBXMYAY
      HXOWAZUUJXTDXDXHEXPXRGUGPYLXMUULYOMUUMXDXHEYNXPXRUUDWBRWCWDWEWFWGWHWIWJWL
      WMWNXSXKXNYETZXIXSXKXNXIYEWOUUNXITACDXHEIXPFGWPXNXIYEWQWRWSWTXA $.
  $}


$(
###############################################################################
  BASIC LINEAR ALGEBRA
###############################################################################

  According to Wikipedia ("Linear algebra", 03-Mar-2019,
  ~ https://en.wikipedia.org/wiki/Linear_algebra ) "Linear algebra is the
  branch of mathematics concerning linear equations [[...], linear functions
  [[...] and their representations through matrices and vector spaces."  Or
  according to the Merriam-Webster dictionary ("linear algebra", 12-Mar-2019,
  ~ https://www.merriam-webster.com/dictionary/linear%20algebra ) "Definition
  of linear algebra: a branch of mathematics that is concerned with
  mathematical structures closed under the operations of addition and scalar
  multiplication and that includes the theory of systems of linear equations,
  matrices, determinants, vector spaces, and linear transformations."  However,
  dealing with modules (over rings) instead of vector spaces (over fields)
  allows for a more general approach. Therefore, "vectors" are regarded as
  members (elements of the base set) of a (free) module over a ring (see
  ~ df-frlm ) in the following.  By this, the number of entries in a vector is
  determined by the size of the index set of the direct sum building the free
  module the vector is belonging to. Since every vector space is isomorphic to
  a free module (see ~ lvecisfrlm ), the theorems stated for free modules are
  also valid for vector spaces.

  Until not explicitly stated, the underlying ring needs not to be commutative
  (see ~ df-cring ), but the existence of a multiplicative neutral element is
  always presumed (the ring is a unital ring, see also ~ df-ring ).  In this
  sense, linear equations, matrices and determinants are usually regarded as
  "over a ring" in this part.

$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Vectors and free modules
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Direct sum of left modules
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  <HTML>
  According to Wikipedia ("Direct sum of modules", 28-Mar-2019,
~ https://en.wikipedia.org/wiki/Direct_sum_of_modules ) "Let R be a ring, and
{ M<sub>i</sub>: i &isin; I } a family of left R-modules indexed by the set I.
The direct sum of {M<sub>i</sub>} is then defined to be the set of all
sequences (&alpha;<sub>i</sub>) where &alpha;<sub>i</sub> &isin; M<sub>i</sub>
and &alpha;<sub>i</sub> = 0 for cofinitely many indices i. (The direct product
is analogous but the indices do not need to cofinitely vanish.)". In this
definition, "cofinitely many" means "almost all" or "for all but finitely
many". Furthemore, "This set inherits the module structure via componentwise
addition and scalar multiplication. Explicitly, two such sequences &alpha; and
&beta; can be added by writing (&alpha; + &beta;)<sub>i</sub> =
&alpha;<sub>i</sub> + &beta;<sub>i</sub> for all i (note that this is again
zero for all but finitely many indices), and such a sequence can be multiplied
with an element r from R by defining r(&alpha;)<sub>i</sub> =
(r&alpha;)<sub>i</sub> for all i.".
<br>
In [Lang] p. 128, the definition of the direct sum of left modules
is based on direct sums of abelian groups ("We define on [the direct sum of
abelian groups M<sub>i</sub>] M a structure of A-module: If
(x<sub>i</sub>)<sub>i &isin; I</sub> is an element of M, i.e. a familiy of
elements x<sub>i</sub> &isin; M<sub>i</sub> such that x<sub>i</sub> = 0 for
almost all i, and if a &isin; A, then we define a(x<sub>i</sub>)<sub>i &isin;
I</sub> = (ax<sub>i</sub>)<sub>i &isin; I</sub>, that is we define
multiplication by a componentwise.") which itself is based on the direct
product of abelian groups ([Lang] p. 36: "Let {A<sub>i</sub>}<sub>i &isin;
I</sub> be a family of abelian groups. We define their direct sum A ... to be
the subset of the direct product ... consisting of all families
(x<sub>i</sub>)<sub>i &isin; I</sub> with x<sub>i</sub> &isin; A<sub>i</sub>
such that x<sub>i</sub> = 0 for all but a finite number of indices i").
<br>
In short, the <b>direct sum</b> of a familiy of (left) modules
{M<sub>i</sub>}<sub>i &isin; I</sub> is the restriction of the direct product
of {M<sub>i</sub>}<sub>i &isin; I</sub> to the elements with index function
having finite support, as formalized by the definition ~ df-dsmm .
</HTML>

$)

  $c (+)m $.

  $( Class of module direct sum generator. $)
  cdsmm $a class (+)m $.

  ${
    $d s r f x $.
    $( The direct sum of a family of Abelian groups or left modules is the
       induced group structure on finite linear combinations of elements, here
       represented as functions with finite support.  (Contributed by Stefan
       O'Rear, 7-Jan-2015.) $)
    df-dsmm $a |- (+)m = ( s e. _V , r e. _V |-> ( ( s Xs_ r ) |`s
        { f e. X_ x e. dom r ( Base ` ( r ` x ) ) |
          { x e. dom r | ( f ` x ) =/= ( 0g ` ( r ` x ) ) } e. Fin } ) ) $.
  $}

  ${
    $d S s r f x $.  $d R s r f x $.  $d B s r $.
    $( The direct sum is a well-behaved binary operator.  (Contributed by
       Stefan O'Rear, 7-Jan-2015.) $)
    reldmdsmm $p |- Rel dom (+)m $=
      ( vs vr vx vf cvv cv cprds cfv c0g wne cdm crab cfn wcel cixp cress cdsmm
      co cbs df-dsmm reldmmpt2 ) ABEEAFBFZGRCFZDFHUCUBHZIHJCUBKZLMNDCUEUDSHOLPR
      QCDABTUA $.

    dsmmval.b $e |- B = { f e. ( Base ` ( S Xs_ R ) ) |
        { x e. dom R | ( f ` x ) =/= ( 0g ` ( R ` x ) ) } e. Fin } $.
    $( Value of the module direct sum.  (Contributed by Stefan O'Rear,
       7-Jan-2015.) $)
    dsmmval $p |- ( R e. V -> ( S (+)m R ) = ( ( S Xs_ R ) |`s B ) ) $=
      ( vs vr wcel cvv cdsmm co cprds cress wceq cv cfv crab cbs c0g wne cdm wa
      elex cfn cixp oveq12 eqid vex a1i eqidd prdsbas fveq2d eqtr3d simpr dmeqd
      fveq1d neeq2d rabeqbidv eleq1d syl6eqr oveq12d df-dsmm ovex ovmpt2a wn c0
      reldmdsmm ovprc1 ress0 reldmprds oveq1d eqtr4d adantr pm2.61ian syl ) CFJ
      CKJZDCLMZDCNMZBOMZPZCFUEDKJZVRWBHIDCKKHQZIQZNMZAQZEQRZWGWERZUARZUBZAWEUCZ
      SZUFJZEAWLWITRUGZSZOMWALWDDPZWECPZUDZWFVTWPBOWDDWECNUHZWSWPWHWGCRZUARZUBZ
      ACUCZSZUFJZEVTTRZSBWSWNXFEWOXGWSWFTRZWOXGWSAXHWFWEWDWLKKWFUIWDKJWSHUJUKWE
      KJWSIUJUKXHUIWSWLULUMWSWFVTTWTUNUOWSWMXEUFWSWKXCAWLXDWSWECWQWRUPZUQWSWJXB
      WHWSWIXAUAWSWGWECXIURUNUSUTVAUTGVBVCAEHIVDVTBOVEVFWCVGZWBVRXJVSVHBOMZWAXJ
      VSVHXKDCLVIVJBVKVBXJVTVHBODCNVLVJVMVNVOVPVQ $.

    $( Base set of the module direct sum.  (Contributed by Stefan O'Rear,
       7-Jan-2015.) $)
    dsmmbase $p |- ( R e. V -> B = ( Base ` ( S (+)m R ) ) ) $=
      ( wcel cvv cdsmm co cbs cfv wceq elex cprds cress cv crab eqid fveq2d wss
      dsmmval c0g wne cdm cfn ssrab2 eqsstri ressbas2 ax-mp syl6reqr syl ) CFHC
      IHZBDCJKZLMZNCFOUNUPDCPKZBQKZLMZBUNUOURLABCDEIGUCUABUQLMZUBBUSNBARZERMVAC
      MUDMUEACUFSUGHZEUTSUTGVBEUTUHUIBUTURUQURTUTTUJUKULUM $.
  $}

  ${
    $d S f x $.  $d R f x $.
    dsmmval2.b $e |- B = ( Base ` ( S (+)m R ) ) $.
    $( Self-referential definition of the module direct sum.  (Contributed by
       Stefan O'Rear, 7-Jan-2015.)  (Revised by Stefan O'Rear, 6-May-2015.) $)
    dsmmval2 $p |- ( S (+)m R ) = ( ( S Xs_ R ) |`s B ) $=
      ( vx vf cdsmm co cprds cbs cfv cress cvv wcel wceq cv crab eqid oveq2i c0
      c0g wne cdm cfn ssrab2 ressbas2 ax-mp dsmmval fveq2d oveq2d 3eqtr4a ress0
      wss wn eqcomi reldmdsmm ovprc2 reldmprds oveq1d pm2.61i eqtr4i ) CBGHZCBI
      HZVBJKZLHZVCALHBMNZVBVEOVFVCEPZFPKVGBKUAKUBEBUCQUDNZFVCJKZQZLHZVCVKJKZLHV
      BVEVJVLVCLVJVIUMVJVLOVHFVIUEVJVIVKVCVKRVIRUFUGSEVJBCFMVJRUHZVFVDVLVCLVFVB
      VKJVMUIUJUKVFUNZTTVDLHZVBVEVOTVDULUOCBGUPUQVNVCTVDLCBIURUQUSUKUTAVDVCLDSV
      A $.
  $}

  ${
    $d S f x $.  $d R f x $.  $d P f x $.  $d I f x $.  $d V f x $.
    dsmmbas2.p $e |- P = ( S Xs_ R ) $.
    dsmmbas2.b $e |- B = { f e. ( Base ` P ) |
        dom ( f \ ( 0g o. R ) ) e. Fin } $.
    $( Base set of the direct sum module using the ~ fndmin abbreviation.
       (Contributed by Stefan O'Rear, 1-Feb-2015.) $)
    dsmmbas2 $p |- ( ( R Fn I /\ I e. V ) -> B = ( Base ` ( S (+)m R ) ) ) $=
      ( vx wfn wcel wa c0g cbs cfv crab wceq cvv c0 ccom cdif cdm cfn cdsmm wne
      cv co cprds fveq2i rabeq ax-mp simpll fvco2 sylan neeq2d rabbidva eqid wn
      noel reldmprds ovprc1 fveq2d base0 syl6eqr eleq2d mtbiri adantl prdsbasfn
      con4i simplr simpr wf fn0g dffn2 mpbi biimpi fco sylancr ffn syl ad2antrr
      fndmdif syl2anc fndm 3eqtr4d eleq1d syl5eq fnex dsmmbase eqtrd ) CFKZFGLZ
      MZAEUGZNCUAZUBUCZUDLZEBOPZQZDCUEUHOPZIWNWTJUGZWOPZXBCPNPZUFZJCUCZQZUDLZED
      CUIUHZOPZQZXAWNWTWREXJQZXKWSXJRWTXLRBXIOHUJWREWSXJUKULWNWRXHEXJWNWOXJLZMZ
      WQXGUDXNXCXBWPPZUFZJFQZXEJFQZWQXGXNXPXEJFXNXBFLZMXOXDXCXNWLXSXOXDRWLWMXMU
      MZFNCXBUNUOUPUQXNWOFKWPFKZWQXQRXNXJCDWOFSGXIXIURXJURXMDSLZWNYBXMYBUSZXMWO
      TLWOUTYCXJTWOYCXJTOPTYCXITODCUIVAVBVCVDVEVFVGVJVHWLWMXMVKXTWNXMVLVIWLYAWM
      XMWLFSWPVMZYAWLSSNVMZFSCVMZYDNSKYEVNSNVOVPWLYFFCVOVQFSSNCVRVSFSWPVTWAWBJF
      WOWPWCWDWLXGXRRZWMXMWLXFFRYGFCWEXEJXFFUKWAWBWFWGUQWHWNCSLXKXARFGCWIJXKCDE
      SXKURWJWAWKWH $.
  $}

  ${
    $d S f $.  $d R f $.  $d I f $.

    $( For finite products, the direct sum is just the module product.  See
       also the observation in [Lang] p. 129.  (Contributed by Stefan O'Rear,
       1-Feb-2015.) $)
    dsmmfi $p |- ( ( R Fn I /\ I e. Fin ) -> ( S (+)m R ) = ( S Xs_ R ) ) $=
      ( vf wfn cfn wcel wa co cprds cbs cfv cress eqid cdm wceq wss cvv ax-mp
      c0 cdsmm dsmmval2 cv c0g ccom cdif crab wral noel reldmprds ovprc1 fveq2d
      wn base0 syl6eqr eleq2d mtbiri con4i adantl simplr simpll simpr prdsbasfn
      fndm syl eqeltrd difss dmss ssfi sylancl ralrimiva rabid2 sylibr dsmmbas2
      eqtr2d oveq2d ovex ressid syl6eq syl5eq ) ACEZCFGZHZBAUAIZBAJIZWDKLZMIZWE
      WFABWFNUBWCWGWEWEKLZMIZWEWCWFWHWEMWCWHDUCZUDAUEZUFZOZFGZDWHUGZWFWCWNDWHUH
      WHWOPWCWNDWHWCWJWHGZHZWJOZFGWMWRQZWNWQWRCFWQWJCEWRCPWQWHABWJCRFWEWENZWHNZ
      WPBRGZWCXBWPXBUMZWPWJTGWJUIXCWHTWJXCWHTKLTXCWETKBAJUJUKULUNUOUPUQURUSWAWB
      WPUTZWAWBWPVAWCWPVBVCCWJVDVEXDVFWLWJQWSWJWKVGWLWJVHSWRWMVIVJVKWNDWHVLVMWO
      WEABDCFWTWONVNVOVPWERGWIWEPBAJVQWHWERXAVRSVSVT $.
  $}

  ${
    $d S a b $.  $d R a b $.  $d X a b $.  $d I a b $.
    dsmmelbas.p $e |- P = ( S Xs_ R ) $.
    dsmmelbas.c $e |- C = ( S (+)m R ) $.
    dsmmelbas.b $e |- B = ( Base ` P ) $.
    dsmmelbas.h $e |- H = ( Base ` C ) $.
    dsmmelbas.i $e |- ( ph -> I e. V ) $.
    dsmmelbas.r $e |- ( ph -> R Fn I ) $.
    $( Membership in the finitely supported hull of a structure product in
       terms of the index set.  (Contributed by Stefan O'Rear, 11-Jan-2015.) $)
    dsmmelbas $p |- ( ph -> ( X e. H <-> ( X e. B /\ { a e. I |
          ( X ` a ) =/= ( 0g ` ( R ` a ) ) } e. Fin ) ) ) $=
      ( wcel cfv cbs vb cv c0g wne cdm crab cfn cprds co wa cdsmm cvv wceq fnex
      wfn syl2anc eqid dsmmbase syl fveq2i eqtri syl6reqr eleq2d neeq1d rabbidv
      fveq1 eleq1d elrab eqtr2i eleq2i a1i fndm rabeq 3syl anbi12d syl5bb bitrd
      wb ) AJGRJKUBZUAUBZSZVSESUCSZUDZKEUEZUFZUGRZUAFEUHUIZTSZUFZRZJBRZVSJSZWBU
      DZKHUFZUGRZUJZAGWIJAWIFEUKUIZTSZGAEULRZWIWRUMAEHUOZHIRWSQPHIEUNUPKWIEFUAU
      LWIUQURUSGCTSWROCWQTMUTVAVBVCWJJWHRZWMKWDUFZUGRZUJAWPWFXCUAJWHVTJUMZWEXBU
      GXDWCWMKWDXDWAWLWBVSVTJVFVDVEVGVHAXAWKXCWOXAWKVRAWHBJBDTSWHNDWGTLUTVIVJVK
      AXBWNUGAWTWDHUMXBWNUMQHEVLWMKWDHVMVNVGVOVPVQ $.
  $}

  ${
    $d ph a $.  $d P a $.  $d S a $.  $d R a $.  $d .0. a $.  $d .+ a $.
    $d J a $.  $d K a $.  $d I a $.
    dsmmcl.p $e |- P = ( S Xs_ R ) $.
    dsmmcl.h $e |- H = ( Base ` ( S (+)m R ) ) $.
    dsmmcl.i $e |- ( ph -> I e. W ) $.
    dsmmcl.s $e |- ( ph -> S e. V ) $.
    dsmmcl.r $e |- ( ph -> R : I --> Mnd ) $.
    ${
      dsmm0cl.z $e |- .0. = ( 0g ` P ) $.
      $( The all-zero vector is contained in the finite hull, since its support
         is empty and therefore finite.  This theorem along with the next one
         effectively proves that the finite hull is a "submonoid", although
         that does not exist as a defined concept yet.  (Contributed by Stefan
         O'Rear, 11-Jan-2015.) $)
      dsmm0cl $p |- ( ph -> .0. e. H ) $=
        ( va wcel cfv c0g wceq cbs cv wne crab cfn cmnd prdsmndd mndidcl syl c0
        eqid wn wral wa ccom prds0g syl6eqr adantr fveq1d wf fvco2 sylan eqtr3d
        wfn ffn sylibr ralrimiva rabeq0 0fin syl6eqel cdsmm dsmmelbas mpbir2and
        nne co ) AIEQIBUARZQZPUBZIRZVRCRSRZUCZPFUDZUEQABUFQVQACDFGHBJLMNUGVPBIV
        PUKZOUHUIAWBUJUEAWAULZPFUMWBUJTAWDPFAVRFQZUNZVSVTTWDWFVRSCUOZRZVSVTWFVR
        WGIAWGITWEAWGBSRIACDFGHBJLMNUPOUQURUSACFVDZWEWHVTTAFUFCUTWINFUFCVEUIZFS
        CVRVAVBVCVSVTVNVFVGWAPFVHVFVIVJAVPDCVKVOZBCDEFHIPJWKUKWCKLWJVLVM $.
    $}

    ${
      dsmmacl.j $e |- ( ph -> J e. H ) $.
      dsmmacl.k $e |- ( ph -> K e. H ) $.
      dsmmacl.a $e |- .+ = ( +g ` P ) $.
      $( The finite hull is closed under addition.  (Contributed by Stefan
         O'Rear, 11-Jan-2015.) $)
      dsmmacl $p |- ( ph -> ( J .+ K ) e. H ) $=
        ( wcel va co cbs cfv cv c0g wne crab cfn eqid wa cdsmm cmnd wfn ffn syl
        wf dsmmelbas mpbid simpld prdsplusgcl cplusg adantr simpr prdsplusgfval
        neeq1d rabbidva cun wss simprd unfi syl2anc wceq neorian bicomi con1bii
        wo wn ffvelrnda mndidcl mndlid oveq12 eqeq1d syl5ibrcom syl5bi necon1ad
        ss2rabdv unrab syl6sseqr ssfi eqeltrd mpbir2and ) AHICUBZFTWMBUCUDZTUAU
        EZWMUDZWODUDZUFUDZUGZUAGUHZUITAWNCDEHIGJKBLWNUJZSONPAHWNTZWOHUDZWRUGZUA
        GUHZUITZAHFTXBXFUKQAWNEDULUBZBDEFGKHUALXGUJZXAMNAGUMDUQDGUNZPGUMDUOUPZU
        RUSZUTZAIWNTZWOIUDZWRUGZUAGUHZUITZAIFTXMXQUKRAWNXGBDEFGKIUALXHXAMNXJURU
        SZUTZVAAWTXCXNWQVBUDZUBZWRUGZUAGUHZUIAWSYBUAGAWOGTZUKZWPYAWRYEWNCDEHIGW
        OJKBLXAAEJTYDOVCAGKTYDNVCAXIYDXJVCAXBYDXLVCAXMYDXSVCSAYDVDVEVFVGAXEXPVH
        ZUITZYCYFVIYCUITAXFXQYGAXBXFXKVJAXMXQXRVJXEXPVKVLAYCXDXOVQZUAGUHYFAYBYH
        UAGYEYHYAWRYHVRXCWRVMXNWRVMUKZYEYAWRVMZYIYHYHYIVRXCWRXNWRVNVOVPYEYJYIWR
        WRXTUBZWRVMZYEWQUMTZWRWQUCUDZTZYLAGUMWODPVSZYEYMYOYPYNWQWRYNUJZWRUJZVTU
        PYNXTWQWRWRYQXTUJYRWAVLYIYAYKWRXCWRXNWRXTWBWCWDWEWFWGXDXOUAGWHWIYFYCWJV
        LWKAWNXGBDEFGKWMUALXHXAMNXJURWL $.
    $}
  $}

  ${
    $d x S $.  $d x R $.  $d x X $.  $d x Y $.  $d x I $.  $d x B $.
    $d ph x $.  $d J x $.
    prdsinvgd2.y $e |- Y = ( S Xs_ R ) $.
    prdsinvgd2.i $e |- ( ph -> I e. W ) $.
    prdsinvgd2.s $e |- ( ph -> S e. V ) $.
    prdsinvgd2.r $e |- ( ph -> R : I --> Grp ) $.
    prdsinvgd2.b $e |- B = ( Base ` Y ) $.
    prdsinvgd2.n $e |- N = ( invg ` Y ) $.
    prdsinvgd2.x $e |- ( ph -> X e. B ) $.
    prdsinvgd2.j $e |- ( ph -> J e. I ) $.
    $( Negation of a single coordinate in a structure product.  (Contributed by
       Stefan O'Rear, 11-Jan-2015.) $)
    prdsinvgd2 $p |- ( ph -> ( ( N ` X ) ` J ) =
        ( ( invg ` ( R ` J ) ) ` ( X ` J ) ) ) $=
      ( cfv vx cminusg cmpt prdsinvgd fveq1d wcel wceq fveq2d fveq12d eqid fvex
      cv fveq2 fvmpt syl eqtrd ) AFJGTZTFUAEUAULZJTZURCTZUBTZTZUCZTZFJTZFCTZUBT
      ZTZAFUQVCAUABCDEGHIJKLMNOPQRUDUEAFEUFVDVHUGSUAFVBVHEVCURFUGZUSVEVAVGVIUTV
      FUBURFCUMUHURFJUMUIVCUJVEVGUKUNUOUP $.
  $}

  ${
    $d H a b $.  $d P a b $.  $d S a b $.  $d R a b $.  $d I b $.  $d ph a b $.
    dsmmsubg.p $e |- P = ( S Xs_ R ) $.
    dsmmsubg.h $e |- H = ( Base ` ( S (+)m R ) ) $.
    dsmmsubg.i $e |- ( ph -> I e. W ) $.
    dsmmsubg.s $e |- ( ph -> S e. V ) $.
    dsmmsubg.r $e |- ( ph -> R : I --> Grp ) $.
    $( The finite hull of a product of groups is additionally closed under
       negation and thus is a subgroup of the product.  (Contributed by Stefan
       O'Rear, 11-Jan-2015.) $)
    dsmmsubg $p |- ( ph -> H e. ( SubGrp ` P ) ) $=
      ( va vb cfv wcel wceq cgrp eqid cplusg cress co c0g eqidd cdsmm cbs cprds
      cv wne cdm crab cfn cvv fex syl2anc dsmmbase syl ssrab2 syl6eqssr 3sstr4g
      fveq2i cmnd wss grpmnd ssriv fss sylancl dsmm0cl w3a 3ad2ant1 simp2 simp3
      wf dsmmacl wa cminusg prdsgrpd adantr sselda grpinvcl simpr wfn dsmmelbas
      mpbid simprd ad2antrr prdsinvgd2 adantrr fveq2 ad2antll ffvelrnda adantlr
      ffn grpinvid 3eqtrd expr necon3d ss2rabdv ssfi mpbir2and issubgrpd2 ) ANO
      EBUAPZBEUBUCZBBUDPZAXDUEAXEUEAXCUEADCUFUCZUGPZDCUHUCZUGPZEBUGPZAXGOUIZNUI
      ZPZXKCPZUDPZUJZOCUKULUMQZNXIULZXIACUNQZXRXGRAFSCVNZFHQZXSMKFSHCUOUPOXRCDN
      UNXRTUQURXQNXIUSUTJBXHUGIVBVAZABCDEFGHXEIJKLAXTSVCVDFVCCVNZMNSVCXLVEVFFSV
      CCVGVHZXETVIAXLEQZXKEQZVJBXCCDEFXLXKGHIJAYEYAYFKVKAYEDGQZYFLVKAYEYCYFYDVK
      AYEYFVLAYEYFVMXCTVOAYEVPZXLBVQPZPZEQYJXJQZXKYJPZXOUJZOFULZUMQZYHBSQZXLXJQ
      ZYKAYPYEACDFGHBIKLMVRZVSAEXJXLYBVTZXJBYIXLXJTZYITZWAUPYHXPOFULZUMQZYNUUBV
      DYOYHYQUUCYHYEYQUUCVPAYEWBYHXJXFBCDEFHXLOIXFTZYTJAYAYEKVSZACFWCZYEAXTUUFM
      FSCWNURVSZWDWEWFYHYMXPOFYHXKFQZVPZXMXOYLXOYHUUHXMXORZYLXORYHUUHUUJVPVPYLX
      MXNVQPZPZXOUUKPZXOYHUUHYLUULRUUJUUIXJCDFXKYIGHXLBIAYAYEUUHKWGAYGYEUUHLWGA
      XTYEUUHMWGYTUUAYHYQUUHYSVSYHUUHWBWHWIUUJUULUUMRYHUUHXMXOUUKWJWKYHUUHUUMXO
      RZUUJUUIXNSQZUUNAUUHUUOYEAFSXKCMWLWMXNUUKXOXOTUUKTWOURWIWPWQWRWSUUBYNWTUP
      YHXJXFBCDEFHYJOIUUDYTJUUEUUGWDXAYRXB $.
  $}

  ${
    $d ph a b x $.  $d S a b x $.  $d R a b x $.  $d I a b x $.  $d P a b x $.
    $d U a b $.  $d H a b x $.
    dsmmlss.i $e |- ( ph -> I e. W ) $.
    dsmmlss.s $e |- ( ph -> S e. Ring ) $.
    dsmmlss.r $e |- ( ph -> R : I --> LMod ) $.
    dsmmlss.k $e |- ( ( ph /\ x e. I ) -> ( Scalar ` ( R ` x ) ) = S ) $.

    ${
      dsmmlss.p $e |- P = ( S Xs_ R ) $.
      dsmmlss.u $e |- U = ( LSubSp ` P ) $.
      dsmmlss.h $e |- H = ( Base ` ( S (+)m R ) ) $.
      $( The finite hull of a product of modules is additionally closed under
         scalar multiplication and thus is a linear subspace of the product.
         (Contributed by Stefan O'Rear, 11-Jan-2015.) $)
      dsmmlss $p |- ( ph -> H e. U ) $=
        ( wcel cfv clmod eqid va vb csubg cv cvsca co wral csca cbs crg wf cgrp
        wss lmodgrp ssriv fss sylancl dsmmsubg wa c0g wne crab prdslmodd adantr
        cfn simprl simprr wb cdsmm wfn ffn syl dsmmelbas mpbid lmodvscl syl3anc
        simpld simprd wceq ad2antrr cvv fex syl2anc prdssca fveq2d eleq2d simpr
        biimpar adantrr prdsvscafval ffvelrnda adantlr simplrl eleqtrrd lmodvs0
        eqtrd oveq2 eqeq1d syl5ibrcom impr expr necon3d ss2rabdv ssfi mpbir2and
        ralrimivva islss4 ) AGFQZGCUCRQZUAUDZUBUDZCUERZUFZGQZUBGUGUACUHRZUIRZUG
        ZACDEGHUJINPJKAHSDUKZSULUMHULDUKLUASULXJUNUOHSULDUPUQURAXNUAUBXPGAXJXPQ
        ZXKGQZUSZUSZXNXMCUIRZQZBUDZXMRZYEDRZUTRZVAZBHVBZVEQZYBCSQZXSXKYCQZYDAYL
        YAABDEHICNKJLMVCZVDAXSXTVFYBYMYEXKRZYHVAZBHVBZVEQZYBXTYMYRUSZAXSXTVGAXT
        YSVHYAAYCEDVIUFZCDEGHIXKBNYTTZYCTZPJAXRDHVJZLHSDVKVLZVMVDVNZVQZXJXLXOXP
        YCCXKUUBXOTZXLTZXPTZVOVPYBYRYJYQUMYKYBYMYRUUEVRYBYIYPBHYBYEHQZUSZYOYHYF
        YHYBUUJYOYHVSZYFYHVSYBUUJUULUSUSYFXJYOYGUERZUFZYHYBUUJYFUUNVSUULUUKYCDE
        XLXJXKHYEEUIRZUJICNUUBUUHUUOTAEUJQYAUUJKVTAHIQZYAUUJJVTAUUCYAUUJUUDVTYB
        XJUUOQZUUJAXSUUQXTAUUQXSAUUOXPXJAEXOUIACDEUJWANKAXRUUPDWAQLJHSIDWBWCWDZ
        WEWFWHWIVDYBYMUUJUUFVDYBUUJWGWJWIYBUUJUULUUNYHVSZUUKUUSUULXJYHUUMUFZYHV
        SZUUKYGSQZXJYGUHRZUIRZQUVAAUUJUVBYAAHSYEDLWKWLUUKXJXPUVDAXSXTUUJWMAUUJU
        VDXPVSYAAUUJUSZUVCXOUIUVEUVCEXOMAEXOVSUUJUURVDWPWEWLWNUUMUVCUVDYGXJYHUV
        CTUUMTUVDTYHTWOWCUULUUNUUTYHYOYHXJUUMWQWRWSWTWPXAXBXCYQYJXDWCAXNYDYKUSV
        HYAAYCYTCDEGHIXMBNUUAUUBPJUUDVMVDXEXFAYLXHXIXQUSVHYNXPFXLGXOYCCUAUBUUGU
        UIUUBUUHOXGVLXE $.
    $}

    ${
      dsmmlmod.c $e |- C = ( S (+)m R ) $.
      $( The direct sum of a family of modules is a module.  See also the
         remark in [Lang] p. 128.  (Contributed by Stefan O'Rear,
         11-Jan-2015.) $)
      dsmmlmod $p |- ( ph -> C e. LMod ) $=
        ( cprds co clmod wcel cdsmm cbs cfv eqid prdslmodd cress dsmmval2 eqtri
        clss dsmmlss lsslmod syl2anc ) AEDMNZOPEDQNZRSZUIUESZPCOPABDEFGUIUITZIH
        JKUAABUIDEULUKFGHIJKUMULTZUKTZUFULUKUICCUJUIUKUBNLUKDEUOUCUDUNUGUH $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Free modules
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  According to Wikipedia ("Free module", 03-Mar-2019,
  ~ https://en.wikipedia.org/wiki/Free_module ) "In mathematics, a free module
  is a module that has a basis - that is, a generating set consisting of
  linearly independent elements.  Every vector space is a free module, but, if
  the ring of the coefficients is not a division ring (not a field in the
  commutative case), then there exist non-free modules.". The same definition
  is used in [Lang] p. 135: "By a free module we shall mean a module which
  admits a basis, or the zero module.".

  In the following, however, a free module is defined as direct sum of a family
  consisting of the same ring regarded as a (left) module over itself, see
  ~ df-frlm .  Since a module has a basis if and only if it is isomorphic to a
  free module as defined by ~ df-frlm (see ~ lmisfree ), the two definitions
  are essentially equivalent. The free modules as defined by ~ df-frlm are also
  taken for the motivation of free modules by [Lang] p. 135.

$)

  $c freeLMod $.

  $( Class of free module generator. $)
  cfrlm $a class freeLMod $.

  ${
    $d r i $.
    $( The ` i ` -dimensional free module over a ring ` r ` is the product of
       ` i ` -many copies of the ring with componentwise addition and
       multiplication.  If ` i ` is infinite, the allowed vectors are
       restricted to those with finitely many nonzero coordinates; this ensures
       that the resulting module is actually spanned by its unit vectors.
       (Contributed by Stefan O'Rear, 1-Feb-2015.) $)
    df-frlm $a |- freeLMod = ( r e. _V , i e. _V |->
        ( r (+)m ( i X. { ( ringLMod ` r ) } ) ) ) $.
  $}

  ${
    $d R r i $.  $d I r i $.  $d W r i $.
    frlmval.f $e |- F = ( R freeLMod I ) $.
    $( Value of the free module.  (Contributed by Stefan O'Rear,
       1-Feb-2015.) $)
    frlmval $p |- ( ( R e. V /\ I e. W ) -> F =
        ( R (+)m ( I X. { ( ringLMod ` R ) } ) ) ) $=
      ( vr vi wcel cfrlm co crglmod cfv csn cxp cdsmm cvv wceq elex cv wa fveq2
      id sneqd xpeq2d oveq12d xpeq1 oveq2d df-frlm ovex ovmpt2 syl2an syl5eq )
      ADIZCEIZUABACJKZACALMZNZOZPKZFUNAQICQIUPUTRUOADSCESGHACQQGTZHTZVALMZNZOZP
      KUTJAVBUROZPKVAARZVAAVEVFPVGUCVGVDURVBVGVCUQVAALUBUDUEUFVBCRVFUSAPVBCURUG
      UHHGUIAUSPUJUKULUM $.

    $( The free module is a module.  (Contributed by Stefan O'Rear,
       1-Feb-2015.) $)
    frlmlmod $p |- ( ( R e. Ring /\ I e. W ) -> F e. LMod ) $=
      ( vi crg wcel wa crglmod cfv csn cxp cdsmm clmod frlmval simpr csca wceq
      co simpl wf rlmlmod adantr fconst6g cv fvex fvconst2 adantl fveq2d rlmsca
      syl ad2antrr eqtr4d eqid dsmmlmod eqeltrd ) AGHZCDHZIZBACAJKZLMZNTZOABCGD
      EPUTFVCVBACDURUSQURUSUAUTVAOHZCOVBUBURVDUSAUCUDCVAOUEULUTFUFZCHZIZVEVBKZR
      KVARKZAVGVHVARVFVHVASUTCVAVEAJUGUHUIUJURAVISUSVFAGUKUMUNVCUOUPUQ $.

    ${
      frlmpws.b $e |- B = ( Base ` F ) $.
      $( The free module as a restriction of the power module.  (Contributed by
         Stefan O'Rear, 1-Feb-2015.) $)
      frlmpws $p |- ( ( R e. V /\ I e. W ) ->
          F = ( ( ( ringLMod ` R ) ^s I ) |`s B ) ) $=
        ( wcel wa crglmod cfv co cprds cress cbs eqid wceq oveq1d cvv csn cdsmm
        cxp dsmmval2 rlmsca adantr frlmval eqcomd fveq2d syl6eqr oveq12d syl5eq
        csca cpws fvex pwsval mpan adantl 3eqtr4d ) BEIZDFIZJZBDBKLZUAUCZUBMZVC
        UMLZVDNMZAOMZCVCDUNMZAOMVBVEBVDNMZVEPLZOMVHVKVDBVKQUDVBVJVGVKAOVBBVFVDN
        UTBVFRVABEUEUFSVBVKCPLAVBVECPVBCVEBCDEFGUGZUHUIHUJUKULVLVBVIVGAOVAVIVGR
        ZUTVCTIVAVMBKUOVCVFDTFVIVIQVFQUPUQURSUS $.

      frlmlss.u $e |- U = ( LSubSp ` ( ( ringLMod ` R ) ^s I ) ) $.
      $( The base set of the free module is a subspace of the power module.
         (Contributed by Stefan O'Rear, 1-Feb-2015.) $)
      frlmlss $p |- ( ( R e. Ring /\ I e. W ) -> B e. U ) $=
        ( crg wcel cfv co cbs fveq2d cprds clss clmod wceq eqid crglmod csn cxp
        vi wa cdsmm frlmval syl5eq simpr simpl rlmlmod adantr fconst6g syl csca
        wf cv fvex fvconst2 adantl rlmsca ad2antrr eqtr4d dsmmlss cpws cvv mpan
        pwsval eqcomd oveq1d eqtr2d syl6eqr eleqtrd eqeltrd ) BJKZEFKZUEZABEBUA
        LZUBUCZUFMZNLZCVQADNLWAHVQDVTNBDEJFGUGOUHVQWABVSPMZQLZCVQUDWBVSBWCWAEFV
        OVPUIVOVPUJVQVRRKZERVSUPVOWDVPBUKULEVRRUMUNVQUDUQZEKZUEZWEVSLZUOLVRUOLZ
        BWGWHVRUOWFWHVRSVQEVRWEBUAURZUSUTOVOBWISVPWFBJVAZVBVCWBTWCTWATVDVQWCVRE
        VEMZQLCVQWBWLQVQWLWIVSPMZWBVPWLWMSZVOVRVFKVPWNWJVRWIEVFFWLWLTWITVHVGUTV
        QWIBVSPVOWIBSVPVOBWIWKVIULVJVKOIVLVMVN $.
    $}

    $( The finite free module is a power of the ring module.  (Contributed by
       Stefan O'Rear, 1-Feb-2015.) $)
    frlmpwsfi $p |- ( ( R e. V /\ I e. Fin ) ->
        F = ( ( ringLMod ` R ) ^s I ) ) $=
      ( wcel cfn wa crglmod cfv csn cxp cdsmm cprds wceq cvv mpan adantl eqid
      co csca cpws wfn fnconstg ax-mp dsmmfi rlmsca adantr oveq1d eqtrd frlmval
      fvex pwsval 3eqtr4d ) ADFZCGFZHZACAIJZKLZMTZURUAJZUSNTZBURCUBTZUQUTAUSNTZ
      VBUPUTVDOZUOUSCUCZUPVEURPFZVFAIULZCURPUDUEUSACUFQRUQAVAUSNUOAVAOUPADUGUHU
      IUJABCDGEUKUPVCVBOZUOVGUPVIVHURVACPGVCVCSVASUMQRUN $.

    $( The ring of scalars of a free module.  (Contributed by Stefan O'Rear,
       1-Feb-2015.) $)
    frlmsca $p |- ( ( R e. V /\ I e. W ) -> R = ( Scalar ` F ) ) $=
      ( wcel wa crglmod cfv csca cpws co cbs cress wceq cvv fvex eqid pwssca
      mpan adantl resssca ax-mp syl6eq rlmsca adantr frlmpws fveq2d 3eqtr4d ) A
      DGZCEGZHZAIJZKJZUNCLMZBNJZOMZKJZABKJUMUOUPKJZUSULUOUTPZUKUNQGULVAAIRUNUOC
      QEUPUPSUOSTUAUBUQQGUTUSPBNRUQUTUPURQURSUTSUCUDUEUKAUOPULADUFUGUMBURKUQABC
      DEFUQSUHUIUJ $.

    ${
      frlm0.z $e |- .0. = ( 0g ` R ) $.
      $( Zero in a free module (ring constraint is stronger than necessary, but
         allows use of ~ frlmlss ).  (Contributed by Stefan O'Rear,
         4-Feb-2015.) $)
      frlm0 $p |- ( ( R e. Ring /\ I e. W ) ->
        ( I X. { .0. } ) = ( 0g ` F ) ) $=
        ( crg wcel wa crglmod cfv cpws co c0g cbs wceq clmod eqid sylan csn cxp
        cress csubg clss rlmlmod pwslmod frlmlss lsssubg syl2anc subg0 syl cmnd
        cgrp lmodgrp grpmnd 3syl rlm0 eqtri pws0g frlmpws fveq2d 3eqtr4d ) AHIZ
        CDIZJZAKLZCMNZOLZVHBPLZUCNZOLZCEUAUBZBOLVFVJVHUDLIZVIVLQVFVHRIZVJVHUELZ
        IVNVDVGRIZVEVOAUFZVGCDVHVHSZUGTVJAVPBCDFVJSZVPSZUHVPVJVHWAUIUJVJVHVKVIV
        KSVISUKULVDVGUMIZVEVMVIQVDVQVGUNIWBVRVGUOVGUPUQVGCDVHEVSEAOLVGOLGAURUSU
        TTVFBVKOVJABCHDFVTVAVBVC $.
    $}

    ${
      $d N k x $.  $d R k x $.  $d B x $.  $d I k x $.  $d W k x $.
      $d V k x $.  $d .0. k x $.
      frlmbas.n $e |- N = ( Base ` R ) $.
      frlmbas.z $e |- .0. = ( 0g ` R ) $.
      frlmbas.b $e |- B = { k e. ( N ^m I ) | k finSupp .0. } $.
      $( Base set of the free module.  (Contributed by Stefan O'Rear,
         1-Feb-2015.)  (Revised by AV, 23-Jun-2019.) $)
      frlmbas $p |- ( ( R e. V /\ I e. W ) -> B = ( Base ` F ) ) $=
        ( wcel c0g cfv cbs wceq cvv adantl vx crglmod csn cxp ccom cdif cdm cfn
        wa cv cprds co crab cdsmm fvex fnconstg ax-mp eqid dsmmbas2 mpan cfsupp
        wfn wbr cmap csupp wne fvco2 fvconst2 fveq2d eqtri syl6eqr eqtrd neeq2d
        rlm0 rabbidva elmapfn crn wss fn0g mp3an fndmdif sylancl simplr eqeltri
        ssv fnco a1i suppvalfn syl3anc 3eqtr4d eleq1d wfun w3a wb elmapfun 3jca
        id funisfsupp syl bitr4d cpws rlmbas pwsbas pwsval rlmsca adantr oveq1d
        csca eqtr4d rabeq eqtr3d syl5eq frlmval ) BGNZEHNZUIZCUJZOEBUBPZUCUDZUE
        ZUFUGZUHNZCBXSUKULZQPZUMZBXSUNULZQPZADQPXOYEYGRZXNXSEVBZXOYHXRSNZYIBUBU
        OZEXRSUPUQZYEYCXSBCEHYCURYEURUSUTTXPAXQIVAVCZCFEVDULZUMZYEMXPYBCYNUMZYO
        YEXPYBYMCYNXPXQYNNZUIZYBXQIVEULZUHNZYMYRYAYSUHYRUAUJZXQPZUUAXTPZVFZUAEU
        MZUUBIVFZUAEUMZYAYSYRUUDUUFUAEYRUUAENZUIZUUCIUUBUUIUUCUUAXSPZOPZIUUHUUC
        UUKRZYRYIUUHUULYLEOXSUUAVGUTTUUIUUKXROPZIUUIUUJXROUUHUUJXRRYREXRUUAYKVH
        TVIIBOPZUUMLBVNVJVKVLVMVOYRXQEVBZXTEVBZYAUUERYQUUOXPXQFEVPTZOSVBYIXSVQZ
        SVRUUPVSYLUURWESEOXSWFVTUAEXQXTWAWBYRUUOXOISNZYSUUGRUUQXNXOYQWCUUSYRIUU
        NSLBOUOWDZWGUAXQHSEIWHWIWJWKYRXQWLZYQUUSWMZYMYTWNYQUVBXPYQUVAYQUUSXQFEW
        OYQWQUUSYQUUTWGWPTXQYNSIWRWSWTVOXPYNYDRYPYERXPYNXREXAULZQPZYDXOYNUVDRZX
        NYJXOUVEYKFXRESHUVCUVCURZFBQPXRQPKBXBVJXCUTTXPUVCYCQXPUVCXRXHPZXSUKULZY
        CXOUVCUVHRZXNYJXOUVIYKXRUVGESHUVCUVFUVGURXDUTTXPBUVGXSUKXNBUVGRXOBGXEXF
        XGXIVIVLYBCYNYDXJWSXKXLXPDYFQBDEGHJXMVIWJ $.
    $}

    ${
      $d X k $.  $d R k $.  $d I k $.  $d V k $.  $d W k $.  $d F k $.
      $d N k $.  $d .0. k $.
      frlmelbas.n $e |- N = ( Base ` R ) $.
      frlmelbas.z $e |- .0. = ( 0g ` R ) $.
      frlmelbas.b $e |- B = ( Base ` F ) $.
      $( Membership in the base set of the free module.  (Contributed by Stefan
         O'Rear, 1-Feb-2015.)  (Revised by AV, 23-Jun-2019.) $)
      frlmelbas $p |- ( ( R e. V /\ I e. W )
                    -> ( X e. B <-> ( X e. ( N ^m I ) /\ X finSupp .0. ) ) ) $=
        ( vk wcel wa cv cfsupp wbr cmap co crab cbs cfv frlmbas syl6reqr eleq2d
        eqid breq1 elrab syl6bb ) BFODGOPZHAOHNQZIRSZNEDTUAZUBZOHUOOHIRSZPULAUP
        HULUPCUCUDAUPBNCDEFGIJKLUPUHUEMUFUGUNUQNHUOUMHIRUIUJUK $.
    $}

    ${
      frlmrcl.b $e |- B = ( Base ` F ) $.
      $( If a free module is inhabited, this is sufficient to conclude that the
         ring expression defines a set.  (Contributed by Stefan O'Rear,
         3-Feb-2015.) $)
      frlmrcl $p |- ( X e. B -> R e. _V ) $=
        ( vr vi cfrlm cvv cv crglmod cfv csn cxp cdsmm co df-frlm reldmmpt2
        strov2rcl ) ADCJBEFGHIKKHLZILUBMNOPQRJIHSTUA $.
    $}

    ${
      frlmbasfsupp.z $e |- .0. = ( 0g ` R ) $.
      frlmbasfsupp.b $e |- B = ( Base ` F ) $.
      $( Elements of the free module are finitely supported.  (Contributed by
         Stefan O'Rear, 3-Feb-2015.)  (Revised by Thierry Arnoux, 21-Jun-2019.)
         (Proof shortened by AV, 20-Jul-2019.) $)
      frlmbasfsupp $p |- ( ( I e. W /\ X e. B ) -> X finSupp .0. ) $=
        ( wcel wa cbs cfv cmap co cfsupp wbr simpr cvv frlmrcl adantl frlmelbas
        wb simpl eqid syl2anc mpbid simprd ) DEKZFAKZLZFBMNZDOPKZFGQRZULUKUNUOL
        ZUJUKSULBTKZUJUKUPUDUKUQUJABCDFHJUAUBUJUKUEABCDUMTEFGHUMUFIJUCUGUHUI $.
    $}

    ${
      frlmbasmap.n $e |- N = ( Base ` R ) $.
      frlmbasmap.b $e |- B = ( Base ` F ) $.
      $( Elements of the free module are set functions.  (Contributed by Stefan
         O'Rear, 3-Feb-2015.)  (Proof shortened by AV, 21-Jul-2019.) $)
      frlmbasmap $p |- ( ( I e. W /\ X e. B ) -> X e. ( N ^m I ) ) $=
        ( wcel wa cmap co c0g cfv cfsupp wbr simpr cvv frlmrcl adantl frlmelbas
        wb simpl eqid syl2anc mpbid simpld ) DFKZGAKZLZGEDMNKZGBOPZQRZULUKUMUOL
        ZUJUKSULBTKZUJUKUPUDUKUQUJABCDGHJUAUBUJUKUEABCDETFGUNHIUNUFJUCUGUHUI $.

      $( Elements of the free module are functions.  (Contributed by Stefan
         O'Rear, 3-Feb-2015.) $)
      frlmbasf $p |- ( ( I e. W /\ X e. B ) -> X : I --> N ) $=
        ( wcel wa cmap co wf frlmbasmap wb cvv cbs cfv fvex eqeltri elmapg mpan
        adantr mpbid ) DFKZGAKZLGEDMNKZDEGOZABCDEFGHIJPUGUIUJQZUHERKUGUKEBSTRIB
        SUAUBEDGRFUCUDUEUF $.
    $}
  $}

  ${
    $d a I $.  $d a N $.  $d a R $.  $d a V $.
    frlmfibas.f $e |- F = ( R freeLMod I ) $.
    frlmfibas.n $e |- N = ( Base ` R ) $.
    $( The base set of the finite free module as a set exponential.
       (Contributed by AV, 6-Dec-2018.) $)
    frlmfibas $p |- ( ( R e. V /\ I e. Fin ) -> ( N ^m I ) = ( Base ` F ) ) $=
      ( va wcel cfn wa cmap co cv c0g cfv cfsupp wbr adantl eqid crab wral wceq
      cbs cvv wf elmapi simpl fvexd fdmfifsupp ralrimiva rabid2 sylibr frlmbas
      eqtrd ) AEIZCJIZKZDCLMZHNZAOPZQRZHUSUAZBUDPURVBHUSUBZUSVCUCUQVDUPUQVBHUSU
      QUTUSIZKZCDUTUEVAVECDUTUFUQUTDCUGSUQVEUHVFAOUIUJUKSVBHUSULUMVCAHBCDEJVAFG
      VATVCTUNUO $.

    elfrlmbasn0.b $e |- B = ( Base ` F ) $.
    $( If the dimension of a free module over a ring is not 0, every element of
       its base set is not empty.  (Contributed by AV, 10-Feb-2019.) $)
    elfrlmbasn0 $p |- ( ( I e. V /\ I =/= (/) ) -> ( X e. B -> X =/= (/) ) ) $=
      ( wcel wf c0 wne frlmbasf ex wceq f0dom0 biimprd necon3d com12 sylan9 ) D
      FKZGAKZDEGLZDMNZGMNZUCUDUEABCDEFGHIJOPUEUFUGUEGMDMUEDMQGMQGDERSTUAUB $.
  $}

  ${
    frlmplusgval.y $e |- Y = ( R freeLMod I ) $.
    frlmplusgval.b $e |- B = ( Base ` Y ) $.
    frlmplusgval.r $e |- ( ph -> R e. V ) $.
    frlmplusgval.i $e |- ( ph -> I e. W ) $.
    frlmplusgval.f $e |- ( ph -> F e. B ) $.
    frlmplusgval.g $e |- ( ph -> G e. B ) $.
    frlmplusgval.a $e |- .+ = ( +g ` R ) $.
    frlmplusgval.p $e |- .+b = ( +g ` Y ) $.
    $( Addition in a free module.  (Contributed by Stefan O'Rear, 1-Feb-2015.)
       (Revised by Stefan O'Rear, 6-May-2015.) $)
    frlmplusgval $p |- ( ph -> ( F .+b G ) = ( F oF .+ G ) ) $=
      ( cfv co crglmod cpws cplusg cof cbs cress wcel wceq eqid frlmpws syl2anc
      fveq2d fvex ressplusg ax-mp 3eqtr4g oveqd fvexd syl5eq ressbasss syl6eqss
      cvv sseldd rlmplusg eqtri pwsplusgval eqtrd ) AFGDUAFGEUBTZHUCUAZUDTZUAFG
      CUEUAADVKFGAKUDTVJKUFTZUGUAZUDTZDVKAKVMUDAEIUHZHJUHZKVMUINOVLEKHIJLVLUJUK
      ULUMSVLVCUHVKVNUIKUFUNVLVKVJVMVCVMUJVKUJZUOUPUQURAVJUFTZCVKVIFGHVCJVJVJUJ
      VRUJZAEUBUSOABVRFABVJBUGUAZUFTZVRABVLWAMAKVTUFAVOVPKVTUINOBEKHIJLMUKULUMU
      TBVRVTVJVTUJVSVAVBZPVDABVRGWBQVDCEUDTVIUDTREVEVFVQVGVH $.
  $}

  ${
    frlmsubval.y $e |- Y = ( R freeLMod I ) $.
    frlmsubval.b $e |- B = ( Base ` Y ) $.
    frlmsubval.r $e |- ( ph -> R e. Ring ) $.
    frlmsubval.i $e |- ( ph -> I e. W ) $.
    frlmsubval.f $e |- ( ph -> F e. B ) $.
    frlmsubval.g $e |- ( ph -> G e. B ) $.
    frlmsubval.a $e |- .- = ( -g ` R ) $.
    frlmsubval.p $e |- M = ( -g ` Y ) $.
    $( Subtraction in a free module.  (Contributed by Thierry Arnoux,
       30-Jun-2019.) $)
    frlmsubgval $p |- ( ph -> ( F M G ) = ( F oF .- G ) ) $=
      ( cfv wcel co crglmod cpws csg cof crg wceq frlmpws syl2anc fveq2d syl5eq
      cress oveqd csubg clmod clss rlmlmod eqid pwslmod frlmlss lsssubg subgsub
      syl syl3anc cgrp cbs lmodgrp 3syl frlmbasmap rlmbas pwsbas eleqtrd rlmsub
      cmap eqtri pwssub syl22anc 3eqtr2d ) ADEGUADECUBSZFUCUAZBULUAZUDSZUAZDEVT
      UDSZUAZDEHUEUAZAGWBDEAGJUDSWBRAJWAUDACUFTZFITZJWAUGMNBCJFUFIKLUHUIUJUKUMA
      BVTUNSTZDBTZEBTZWEWCUGAVTUOTZBVTUPSZTZWIAVSUOTZWHWLAWGWOMCUQZVCNVSFIVTVTU
      RZUSUIAWGWHWNMNBCWMJFIKLWMURZUTUIWMBVTWRVAUIOPBVTWAWDWBDEWDURZWAURWBURVBV
      DAVSVETZWHDVTVFSZTEXATWEWFUGAWGWOWTMWPVSVGVHZNADCVFSZFVNUAZXAAWHWJDXDTNOB
      CJFXCIDKXCURZLVIUIAWTWHXDXAUGXBNXCVSFVEIVTWQCVJVKUIZVLAEXDXAAWHWKEXDTNPBC
      JFXCIEKXELVIUIXFVLXAVSDEFHWDIVTWQXAURHCUDSVSUDSQCVMVOWSVPVQVR $.
  $}

  ${
    frlmvscafval.y $e |- Y = ( R freeLMod I ) $.
    frlmvscafval.b $e |- B = ( Base ` Y ) $.
    frlmvscafval.k $e |- K = ( Base ` R ) $.
    frlmvscafval.i $e |- ( ph -> I e. W ) $.
    frlmvscafval.a $e |- ( ph -> A e. K ) $.
    frlmvscafval.x $e |- ( ph -> X e. B ) $.
    frlmvscafval.v $e |- .xb = ( .s ` Y ) $.
    frlmvscafval.t $e |- .x. = ( .r ` R ) $.
    $( Scalar multiplication in a free module.  (Contributed by Stefan O'Rear,
       1-Feb-2015.)  (Revised by Stefan O'Rear, 6-May-2015.) $)
    frlmvscafval $p |- ( ph -> ( A .xb X ) = ( ( I X. { A } ) oF .x. X ) ) $=
      ( cfv co crglmod cpws cvsca csn cxp cof cvv wcel wceq frlmrcl syl frlmpws
      cress syl2anc fveq2d fvex eqeltri eqid ressvsca ax-mp 3eqtr4g oveqd cmulr
      cbs csca rlmvsca eqtri fvexd rlmsca syl5eq ressbasss syl6eqss pwsvscafval
      eleqtrd sseldd eqtrd ) ABJEUABJDUBTZGUCUAZUDTZUAGBUEUFJFUGUAAEVTBJAKUDTVS
      CUNUAZUDTZEVTAKWAUDADUHUIZGIUIKWAUJAJCUIWCQCDKGJLMUKULZOCDKGUHILMUMUOZUPR
      CUHUIVTWBUJCKVETZUHMKVEUQURCVTVSWAUHWAUSZVTUSZUTVAVBVCABVSVETZVRVTFVRVFTZ
      GWJVETZUHIJVSVSUSWIUSZFDVDTVRUDTSDVGVHWHWJUSWKUSADUBVIOABHWKPAHDVETWKNADW
      JVEAWCDWJUJWDDUHVJULUPVKVOACWIJACWAVETZWIACWFWMMAKWAVEWEUPVKCWIWAVSWGWLVL
      VMQVPVNVQ $.
  $}

  ${
    frlmvscaval.y $e |- Y = ( R freeLMod I ) $.
    frlmvscaval.b $e |- B = ( Base ` Y ) $.
    frlmvscaval.k $e |- K = ( Base ` R ) $.
    frlmvscaval.i $e |- ( ph -> I e. W ) $.
    frlmvscaval.a $e |- ( ph -> A e. K ) $.
    frlmvscaval.x $e |- ( ph -> X e. B ) $.
    frlmvscaval.j $e |- ( ph -> J e. I ) $.
    frlmvscaval.v $e |- .xb = ( .s ` Y ) $.
    frlmvscaval.t $e |- .x. = ( .r ` R ) $.
    $( Scalar multiplication in a free module at a coordinate.  (Contributed by
       Stefan O'Rear, 3-Feb-2015.) $)
    frlmvscaval $p |- ( ph -> ( ( A .xb X ) ` J ) = ( A .x. ( X ` J ) ) ) $=
      ( cfv csn cxp cof frlmvscafval fveq1d wfn wcel wceq fnconstg syl frlmbasf
      co wf syl2anc ffn fnfvof syl22anc fvconst2g oveq1d 3eqtrd ) AHBKEUNZUBHGB
      UCUDZKFUEUNZUBZHVDUBZHKUBZFUNZBVHFUNAHVCVEABCDEFGIJKLMNOPQRTUAUFUGAVDGUHZ
      KGUHZGJUIZHGUIZVFVIUJABIUIZVJQGBIUKULAGIKUOZVKAVLKCUIVOPRCDLGIJKMONUMUPGI
      KUQULPSGFVDKJHURUSAVGBVHFAVNVMVGBUJQSGBHIUTUPVAVB $.
  $}

  ${
    $d x y B $.  $d x y I $.  $d x y ph $.  $d x y .0. $.  $d x y J $.
    $d x y R $.  $d x y Y $.
    frlmgsum.y $e |- Y = ( R freeLMod I ) $.
    frlmgsum.b $e |- B = ( Base ` Y ) $.
    frlmgsum.z $e |- .0. = ( 0g ` Y ) $.
    frlmgsum.i $e |- ( ph -> I e. V ) $.
    frlmgsum.j $e |- ( ph -> J e. W ) $.
    frlmgsum.r $e |- ( ph -> R e. Ring ) $.
    frlmgsum.f $e |- ( ( ph /\ y e. J ) -> ( x e. I |-> U ) e. B ) $.
    frlmgsum.w $e |- ( ph -> ( y e. J |-> ( x e. I |-> U ) ) finSupp .0. ) $.
    $( Finite commutative sums in a free module are taken componentwise.
       (Contributed by Stefan O'Rear, 1-Feb-2015.)  (Revised by Mario Carneiro,
       5-Jul-2015.)  (Revised by AV, 23-Jun-2019.) $)
    frlmgsum $p |- ( ph -> ( Y gsum ( y e. J |-> ( x e. I |-> U ) ) ) =
       ( x e. I |-> ( R gsum ( y e. J |-> U ) ) ) ) $=
      ( cmpt cgsu co crglmod cfv cpws cress crg wcel frlmpws syl2anc oveq1d cbs
      wceq cplusg cvv c0g eqid ovexd clss wss frlmlss lssss fmptd clmod rlmlmod
      syl pwslmod lss0cl cmnd cv wa ccmn lmodcmn cmnmnd pwsmnd mndlrid gsumress
      sylan rlmbas wf wral adantr frlmbasf sylibr r19.21bi anasss cfsupp fveq2d
      fmpt an32s csubg lsssubg subg0 eqtr4d syl5eq breqtrd pwsgsum mptexg fvexd
      a1i rlmplusg gsumpropd mpteq2dv 3eqtr2d ) AKCHBGFUAZUAZUBUCEUDUEZGUFUCZDU
      GUCZXGUBUCXIXGUBUCZBGECHFUAZUBUCZUAZAKXJXGUBAEUHUIZGIUIZKXJUNRPDEKGUHIMNU
      JUKZULABHXIUMUEZXIUOUEZDXGXIXJUPJXIUQUEZXRURZXSURZXJURZAXHGUFUSQADXIUTUEZ
      UIZDXRVAAXOXPYERPDEYDKGIMNYDURZVBUKZYDDXRXIYAYFVCVGACHXFDXGSXGURVDAXIVEUI
      ZYEXTDUIAXHVEUIZXPYHAXOYIREVFVGZPXHGIXIXIURZVHUKZYGYDDXIXTXTURZYFVIUKAXIV
      JUIZBVKZXRUIXTYOXSUCYOUNYOXTXSUCYOUNVLAXHVJUIZXPYNAXHVMUIZYPAYIYQYJXHVNVG
      ZXHVOVGPXHGIXIYKVPUKXRXSXIYOXTYAYBYMVQVSVRAXKBGXHXLUBUCZUAXNABCEUMUEZXHFG
      HIJXIXTYKEVTZYMPQYRAYOGUIZCVKHUIZFYTUIZAUUCUUBUUDAUUCVLZUUDBGUUEGYTXFWAZU
      UDBGWBUUEXPXFDUIUUFAXPUUCPWCSDEKGYTIXFMYTURNWDUKBGYTFXFXFURWJWEWFWKWGAXGL
      XTWHTALKUQUEZXTOAUUGXJUQUEZXTAKXJUQXQWIADXIWLUEUIZXTUUHUNAYHYEUUIYLYGYDDX
      IYFWMUKDXIXJXTYCYMWNVGWOWPWQWRABGXMYSAXLEXHUPUHUPAHJUIXLUPUIQCHFJWSVGRAEU
      DWTYTXHUMUEUNAUUAXAEUOUEXHUOUEUNAEXBXAXCXDWOXE $.
  $}

  ${
    $d Y x $.  $d R x $.  $d U x $.  $d Z x $.  $d V x $.  $d B x $.  $d C x $.
    $d X x $.
    frlmsplit2.y $e |- Y = ( R freeLMod U ) $.
    frlmsplit2.z $e |- Z = ( R freeLMod V ) $.
    frlmsplit2.b $e |- B = ( Base ` Y ) $.
    frlmsplit2.c $e |- C = ( Base ` Z ) $.
    frlmsplit2.f $e |- F = ( x e. B |-> ( x |` V ) ) $.
    $( Restriction is homomorphic on free modules.  (Contributed by Stefan
       O'Rear, 3-Feb-2015.)  (Proof shortened by AV, 21-Jul-2019.) $)
    frlmsplit2 $p |- ( ( R e. Ring /\ U e. X /\ V C_ U ) ->
        F e. ( Y LMHom Z ) ) $=
      ( wcel cfv co eqid cvv crg wss w3a crglmod cpws cress clmhm cbs cres cmpt
      cv clss wceq simp1 simp2 frlmlss syl2anc lssss 3syl syl6eqr clmod rlmlmod
      resmpt pwssplit3 syl3an1 reslmhm wb 3ad2ant1 simp3 ssexd pwslmod rneqd wf
      crn cmap c0g cfsupp wbr frlmbasf sylan simpl3 fssresd fvex elmapg sylancr
      adantr mpbird frlmbasfsupp fvexd fsuppres frlmelbas mpbir2and frn eqsstrd
      wa fmptd syl reslmhm2b syl3anc mpbid eqeltrrd frlmpws oveq12d eleqtrrd )
      DUAPZEHPZGEUBZUCZFDUDQZEUERZBUFRZXIGUERZCUFRZUGRZIJUGRXHAXJUHQZAUKZGUIZUJ
      ZBUIZFXNXHXSABXQUJZFXHBXJULQZPZBXOUBXSXTUMXHXEXFYBXEXFXGUNZXEXFXGUOZBDYAI
      EHKMYASZUPUQZYABXOXJXOSZYEURAXOBXQVCUSZOUTXHXSXKXLUGRPZXSXNPZXHXRXJXLUGRP
      ZYBYIXEXIVAPZXFXGYKDVBZAXOXLUHQZEXRGXIHXJXLXJSXLSZYGYNSXRSVDVEYFXKXJXLYAX
      RBYEXKSVFUQXHXLVAPZCXLULQZPZXSVNZCUBYIYJVGXHYLGTPZYPXEXFYLXGYMVHXHGEHYDXE
      XFXGVIVJZXIGTXLYOVKUQXHXEYTYRYCUUACDYQJGTLNYQSZUPUQXHYSXTVNZCXHXSXTYHVLXH
      BCXTVMUUCCUBXHABXQCXTXHXPBPZWOZXQCPZXQDUHQZGVORPZXQDVPQZVQVRZUUEUUHGUUGXQ
      VMZUUEEUUGGXPXHXFUUDEUUGXPVMYDBDIEUUGHXPKUUGSZMVSVTXEXFXGUUDWAWBXHUUHUUKV
      GZUUDXHUUGTPYTUUMDUHWCUUAUUGGXQTTWDWEWFWGUUEXPTGUUIXHXFUUDXPUUIVQVRYDBDIE
      HXPUUIKUUISZMWHVTUUEDVPWIWJXHUUFUUHUUJWOVGZUUDXHXEYTUUOYCUUACDJGUUGUATXQU
      UILUULUUNNWKUQWFWLXTSWPBCXTWMWQWNXKXLXMXSYQCXMSUUBWRWSWTXAXHIXKJXMUGXHXEX
      FIXKUMYCYDBDIEUAHKMXBUQXHXEYTJXMUMYCUUACDJGUATLNXBUQXCXD $.
  $}

  ${
    $d x B $.  $d x I $.  $d x J $.  $d x R $.  $d x U $.  $d x .0. $.
    $d x V $.  $d x Y $.
    frlmsslss.y $e |- Y = ( R freeLMod I ) $.
    frlmsslss.u $e |- U = ( LSubSp ` Y ) $.
    frlmsslss.b $e |- B = ( Base ` Y ) $.
    frlmsslss.z $e |- .0. = ( 0g ` R ) $.

    ${
      frlmsslss.c $e |- C = { x e. B | ( x |` J ) = ( J X. { .0. } ) } $.
      $( A subset of a free module obtained by restricting the support set is a
         submodule. ` J ` is the set of forbidden unit vectors.  (Contributed
         by Stefan O'Rear, 4-Feb-2015.) $)
      frlmsslss $p |- ( ( R e. Ring /\ I e. V /\ J C_ I ) -> C e. U ) $=
        ( wcel co wceq cvv eqid crg wss w3a cv cres cfrlm c0g cfv csn cxp simp1
        crab simp2 simp3 ssexd frlm0 syl2anc eqeq2d rabbidv cmpt cbs frlmsplit2
        syl5eq clmhm ccnv cima fvex mptiniseg ax-mp eqcomi lmhmkerlss eqeltrd
        syl ) DUAPZFHPZGFUBZUCZCAUDGUEZDGUFQZUGUHZRZABULZEVQCVRGJUIUJZRZABULWBO
        VQWDWAABVQWCVTVRVQVNGSPWCVTRVNVOVPUKVQGFHVNVOVPUMVNVOVPUNUODVSGSJVSTZNU
        PUQURUSVCVQABVRUTZIVSVDQPWBEPABVSVAUHZDFWFGHIVSKWEMWGTWFTZVBIVSEWFWBVTW
        FVEVTUIVFZWBVTSPWIWBRVSUGVGABVRVTWFSWHVHVIVJVTTLVKVMVL $.
    $}

    ${
      frlmsslss2.c $e |- C = { x e. B | ( x supp .0. ) C_ J } $.
      $( A subset of a free module obtained by restricting the support set is a
         submodule. ` J ` is the set of permitted unit vectors.  (Contributed
         by Stefan O'Rear, 5-Feb-2015.)  (Revised by AV, 23-Jun-2019.) $)
      frlmsslss2 $p |- ( ( R e. Ring /\ I e. V /\ J C_ I ) -> C e. U ) $=
        ( wcel wss wceq crab cvv crg w3a cv cdif cres csn cxp csupp cun wfn cin
        co wa c0 wb cbs cfv eqid frlmbasf 3ad2antl2 ffn syl simpl3 undif fneq2d
        wf sylib mpbird simpr c0g fvex eqeltri a1i fnsuppres syl121anc rabbidva
        disjdif syl5eq difssd frlmsslss syld3an3 eqeltrd ) DUAPZFHPZGFQZUBZCAUC
        ZFGUDZUEWHJUFUGRZABSZEWFCWGJUHULGQZABSWJOWFWKWIABWFWGBPZUMZWGGWHUIZUJZW
        LJTPZGWHUKUNRZWKWIUOWMWOWGFUJZWMFDUPUQZWGVFZWRWDWCWLWTWEBDIFWSHWGKWSURM
        USUTFWSWGVAVBWMWNFWGWMWEWNFRWCWDWEWLVCGFVDVGVEVHWFWLVIWPWMJDVJUQTNDVJVK
        VLVMWQWMGFVQVMGWHWGTBJVNVOVPVRWCWDWEWHFQWJEPWFFGVSABWJDEFWHHIJKLMNWJURV
        TWAWB $.
    $}
  $}

  ${
    frlmbas3.f $e |- F = ( R freeLMod ( N X. M ) ) $.
    frlmbas3.b $e |- B = ( Base ` R ) $.
    frlmbas3.v $e |- V = ( Base ` F ) $.
    $( An element of the base set of a finite free module with a Cartesian
       product as index set as operation value.  (Contributed by AV,
       14-Feb-2019.) $)
    frlmbas3 $p |- ( ( ( R e. W /\ X e. V ) /\ ( N e. Fin /\ M e. Fin )
                       /\ ( I e. N /\ J e. M ) ) -> ( I X J ) e. B ) $=
      ( wcel wa cfn w3a cxp cmap syl cbs cfv eleq2i biimpi adantl 3ad2ant1 wceq
      co wf xpfi anim12i 3adant3 frlmfibas eleqtrrd elmapi simp3l simp3r fovrnd
      simpl ) BINZJHNZOZGPNFPNOZDGNZEFNZOZQZDEAGFJVGJAGFRZSUHZNVHAJUIVGJCUAUBZV
      IVBVCJVJNZVFVAVKUTVAVKHVJJMUCUDUEUFVGUTVHPNZOZVIVJUGVBVCVMVFVBUTVCVLUTVAU
      SGFUJUKULBCVHAIKLUMTUNJAVHUOTVBVCVDVEUPVBVCVDVEUQUR $.
  $}

  ${
    $d A a b $.  $d B i j $.  $d N a b i j $.  $d M a b i j $.  $d R a b i j $.
    $d V a b i j $.  $d U a b i j $.  $d W a b i j $.  $d X a b i j $.
    $d Y a b i j $.  $d Z a b i j $.  $d ph a b i j $.
    mpt2frlmd.f $e |- F = ( R freeLMod ( N X. M ) ) $.
    mpt2frlmd.v $e |- V = ( Base ` F ) $.
    mpt2frlmd.s $e |- ( ( i = a /\ j = b ) -> A = B ) $.
    mpt2frlmd.a $e |- ( ( ph /\ i e. N /\ j e. M ) -> A e. X ) $.
    mpt2frlmd.b $e |- ( ( ph /\ a e. N /\ b e. M ) -> B e. Y ) $.
    mpt2frlmd.e $e |- ( ph -> ( N e. U /\ M e. W /\ Z e. V ) ) $.
    $( Elements of the free module are mappings with two arguments defined by
       their operation values.  (Contributed by AV, 20-Feb-2019.) $)
    mpt2frlmd $p |- ( ph -> ( Z = ( a e. N , b e. M |-> B )
                              <-> A. i e. N A. j e. M ( i Z j ) = A ) ) $=
      ( cxp cvv wcel wa cbs cfv wf wfn w3a 3adant3 syl simp3d jca eqid frlmbasf
      xpexg ffn 3syl 3simpa fnmpt2ovd ) AJICBMFGONELPQAJIUDZUEUFZOKUFZUGVDDUHUI
      ZOUJOVDUKAVEVFAJEUFZILUFZVFULZVEUCVHVIVEVFJIELUSUMUNAVHVIVFUCUOUPKDHVDVGU
      EORVGUQSURVDVGOUTVATUAUBAVJVHVIUGUCVHVIVFVBUNVC $.
  $}

  ${
    $d B f g x $.  $d I f g x $.  $d R f g x $.  $d V f g x $.  $d W f g x $.
    frlmphl.y $e |- Y = ( R freeLMod I ) $.
    frlmphl.b $e |- B = ( Base ` R ) $.
    frlmphl.t $e |- .x. = ( .r ` R ) $.
    $( The inner product of a free module.  (Contributed by Thierry Arnoux,
       20-Jun-2019.) $)
    frlmip $p |- ( ( I e. W /\ R e. V ) -> ( f e. ( B ^m I ) , g e. ( B ^m I )
      |-> ( R gsum ( x e. I |-> ( ( f ` x ) .x. ( g ` x ) ) ) ) ) = ( .i ` Y )
      ) $=
      ( wcel cfv co cbs wceq eqid cvv wa cip csra csn cxp cprds cress cmap cmpt
      cv cgsu cmpt2 cfrlm crglmod cpws frlmpws ancoms csca ressid eqidd eqimssi
      wss a1i srasca eqtr3d oveq1d adantl fvex rlmval fveq2i eqtr4i oveq1i mpan
      pwsval adantr eqtr4d oveq12d syl5eq fveq2d ressip ax-mp simpr xpexg mpan2
      snex cdm c0 wne snnz dmxp prdsip cixp prdsbas fvconst2 3eqtr4rd ixpeq2dva
      srabase eqeltri ixpconstg 3eqtrd cmulr sraip syl5req mpteq2ia mpt2eq123dv
      oveqd oveq2i eqtrd syl5eqr eqtr2d ) GINZCHNZUAZJUBOCGBCUCOZOZUDZUEZUFPZJQ
      OZUGPZUBOZEFBGUHPZYBCAGAUJZEUJOZYCFUJOZDPZUIZUKPZULZXMJXTUBXMJCGUMPZXTKXM
      YJCUNOZGUOPZYJQOZUGPZXTXLXKYJYNRYMCYJGHIYJSYMSUPUQXMXRYLXSYMUGXMXRXOUROZX
      QUFPZYLXLXRYPRXKXLCYOXQUFXLCBUGPCYOBCHLUSXLXOBCXLXOUTBCQOZVBZXLBYQLVAZVCV
      DVEVFVGXKYLYPRZXLXOTNXKYTBXNVHZXOYOGTIYLYKXOGUOYKYQXNOXOCVIBYQXNLVJVKVLYO
      SVNVMVOVPXSYMRXMJYJQKVJVCVQVPVRVSXMYAXRUBOZYIXSTNUUBYARJQVHXSXRXTUUBTXTSU
      UBSZVTWAXMUUBEFXRQOZUUDCAGYDYEYCXQOZUBOZPZUIZUKPZULYIXMAUUDXRXQCEFUUBGHTX
      RSZXKXLWBZXKXQTNZXLXKXPTNUULXOWEGXPITWCWDVOZUUDSZXQWFGRZXMXPWGWHUUOXOUUAW
      IGXPWJWAVCZUUCWKXMEFUUDUUDUUIYBYBYHXMUUDAGUUEQOZWLAGBWLZYBXMAUUDXRXQCGHTU
      UJUUKUUMUUNUUPWMXMAGUUQBYCGNZUUQBRXMUUSYQXOQOBUUQUUSXOBCUUSXOUTYRUUSYSVCZ
      WQBYQRUUSLVCUUSUUEXOQGXOYCUUAWNZVSWOVGWPXKUURYBRZXLXKBTNUVBBYQTLCQVHWRAGB
      ITWSWDVOWTZUVCUUIYHRXMUUHYGCUKAGUUGYFUUSUUFDYDYEUUSDCXAOUUFMUUSUUEBCUVAUU
      TXBXCXFXDXGVCXEXHXIXJ $.

    $d B f g x $.  $d F f g x $.  $d G f g x $.  $d I f g x $.  $d R f g x $.
    $d V f g x $.  $d W f g x $.  $d X f g x $.  $d .x. f g x $.
    frlmphl.v $e |- V = ( Base ` Y ) $.
    frlmphl.j $e |- ., = ( .i ` Y ) $.
    $( The inner product of a free module.  (Contributed by Thierry Arnoux,
       21-Jun-2019.) $)
    frlmipval $p |- ( ( ( I e. W /\ R e. X ) /\ ( F e. V /\ G e. V ) )
      -> ( F ., G ) = ( R gsum ( F oF .x. G ) ) ) $=
      ( vx wcel co cgsu vf vg wa cof cv cfv cmpt cmap cmpt2 frlmbasmap ad2ant2r
      wfn elmapi ffn 3syl ad2ant2rl simpll inidm eqidd offval oveq2d wceq ovexd
      wf cvv fveq1 oveq1d mpteq2dv eqid ovmpt2g syl3anc cip frlmip adantr oveqd
      syl6eqr 3eqtr2rd ) GIRZBJRZUCZDHRZEHRZUCZUCZBDECUDSZTSBQGQUEZDUFZWFEUFZCS
      ZUGZTSZDEUAUBAGUHSZWLBQGWFUAUEZUFZWFUBUEZUFZCSZUGZTSZUIZSZDEFSWDWEWJBTWDQ
      GGWGWHCGDEIIWDDWLRZGADVDDGULVRWAXBVSWBHBKGAIDLMOUJUKZDAGUMGADUNUOWDEWLRZG
      AEVDEGULVRWBXDVSWAHBKGAIELMOUJUPZEAGUMGAEUNUOVRVSWCUQZXFGURWDWFGRUCZWGUSX
      GWHUSUTVAWDXBXDWKVERXAWKVBXCXEWDBWJTVCUAUBDEWLWLWSWKWTBQGWGWPCSZUGZTSVEWM
      DVBZWRXIBTXJQGWQXHXJWNWGWPCWFWMDVFVGVHVAWOEVBZXIWJBTXKQGXHWIXKWPWHWGCWFWO
      EVFVAVHVAWTVIVJVKWDWTFDEWDWTKVLUFZFVTWTXLVBWCQABCUAUBGJIKLMNVMVNPVPVOVQ
      $.

    $d B e f g h i x y z $.  $d I e f g h i x y z $.  $d R e f g h i x $.
    $d V e f g h i x y z $.  $d W f g h i x $.  $d Y e f g h i k x $.
    $d .0. f g h i x y $.  $d e f g h i k x y z ph $.  $d ., g h i x $.
    $d .x. e f g h i x y z $.  $d O g h i $.  $d .* x $.
    frlmphl.o $e |- O = ( 0g ` Y ) $.
    frlmphl.0 $e |- .0. = ( 0g ` R ) $.
    frlmphl.s $e |- .* = ( *r ` R ) $.
    frlmphl.f $e |- ( ph -> R e. Field ) $.
    frlmphl.m $e |- ( ( ph /\ g e. V /\ ( g ., g ) = .0. ) -> g = O ) $.
    frlmphl.u $e |- ( ( ph /\ x e. B ) -> ( .* ` x ) = x ) $.
    frlmphl.i $e |- ( ph -> I e. W ) $.
    $( Lemma for ~ frlmphl .  (Contributed by AV, 21-Jul-2019.) $)
    frlmphllem $p |- ( ( ph /\ g e. V /\ h e. V )
               -> ( x e. I |-> ( ( g ` x ) .x. ( h ` x ) ) ) finSupp .0. ) $=
      ( cv wcel w3a cfv co cmpt cfsupp wbr csupp cfn cof wf cmap 3ad2ant1 simp2
      wfn frlmbasmap syl2anc elmapi syl ffn simp3 inidm eqidd offval oveq1d cvv
      wa wfun wss ovexd wceq funmpt a1i mpbird frlmbasfsupp crg cdr ccrg cfield
      funeq isfld sylib simpld drngring ringlz suppofss1d fsuppsssupp fsuppimpd
      ring0cl sylan syl22anc eqeltrrd wb mptexg fvex eqeltri funisfsupp syl3anc
      c0g ) AFUHZLUIZGUHZLUIZUJZBIBUHZXHUKZXMXJUKZEULZUMZOUNUOZXQOUPULZUQUIZXLX
      HXJEURZULZOUPULZXSUQXLYBXQOUPXLBIIXNXOEIXHXJMMXLICXHUSZXHIVCXLXHCIUTULZUI
      ZYDXLIMUIZXIYFAXIYGXKUGVAZAXIXKVBZLDNICMXHPQSVDVEXHCIVFVGZICXHVHVGXLICXJU
      SZXJIVCXLXJYEUIZYKXLYGXKYLYHAXIXKVILDNICMXJPQSVDVEXJCIVFVGZICXJVHVGYHYHIV
      JXLXMIUIVOZXNVKYNXOVKVLZVMXLYBVNUIZYBVPZXHOUNUOZYCXHOUPULVQZYCUQUIXLXHXJY
      AVRXLYBXQVSZYQYOYTYQXQVPZUUAYTBIXPVTZWAYBXQWHWBVGXLYGXIYRYHYILDNIMXHOPUBS
      WCVEXLBICXHXJMEOYHXLDWDUIZOCUIAXIUUCXKADWEUIZUUCAUUDDWFUIZADWGUIUUDUUEVOU
      DDWIWJWKDWLVGVAZCDOQUBWQVGYJYMXLUUCXMCUIOXMEULOVSUUFCDEXMOQRUBWMWRWNYPYQV
      OYRYSVOVOYBOXHYBVNOWOWPWSWTXLUUAXQVNUIZOVNUIZXRXTXAUUAXLUUBWAXLYGUUGYHBIX
      PMXBVGUUHXLODXGUKVNUBDXGXCXDWAXQVNVNOXEXFWB $.

    $( Conditions for a free module to be a pre-Hilbert space.  (Contributed by
       Thierry Arnoux, 21-Jun-2019.)  (Proof shortened by AV, 21-Jul-2019.) $)
    frlmphl $p |- ( ph -> Y e. PreHil ) $=
      ( vh vi vk vy vz ve cplusg cfv cvsca cbs wceq a1i eqidd cip c0g wcel csca
      vf cdr ccrg cfield wa isfld sylib simpld frlmsca syl2anc cmulr cstv clmod
      crg drngring syl frlmlmod eqeltrrd eqid islvec sylanbrc simprd idsrngd cv
      clvec w3a co cmpt cgsu cof 3ad2ant1 simp2 simp3 frlmipval syl22anc wf wfn
      cmap frlmbasmap elmapi inidm offval oveq2d eqtrd ringcmn adantr ffvelrnda
      ffn ccmn ringcl syl3anc fmptd frlmphllem cfsupp weq fveq2 cvv simpr ovexd
      fveq2d syl13anc mpteq2dva syl5eq wfun wbr csupp wi id oveq12d cmpt2 fveq1
      oveq1d mpteq2dv simprl fveq1d simprr ovmpt2d gsumcl eqeltrd simp31 simp33
      simp32 cbvmptv oveq1i fneq1i fvmptd ringass funmpt funeqd anim12i 3adant2
      wss mpbiri frlmbasfsupp ring0cl ringrz sylan suppofss2d fsuppsssupp simp1
      eqbrtrrd eleq1 eqeq1d 3anbi23d eqeq1 imbi12d chvarv gsummptfsadd syl6reqr
      frlmip cbvmpt2v syl6eqr eleqtrd lmodvscl frlmplusgval frlmvscaval fvmpt2d
      3syl ringdir 3eqtrd gsummulc2 eqtr4d 3eqtr4d crngcom wral ralrimiva rspcv
      lmodvacl eqeq12d sylc 3eqtr4rd isphld ) AFUGUHMUMUNZDUMUNZMUOUNZEDGICNKMJ
[encoded data, 5280 characters]
      TUYAUXTIXSWWOYKUWLUWJUWMVULXGUWNUWO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Standard basis (unit vectors)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
According to Wikipedia ("Standard basis", 16-Mar-2019,
~ https://en.wikipedia.org/wiki/Standard_basis ) "In mathematics, the standard
basis (also called natural basis) for a Euclidean space is the set of unit
vectors pointing in the direction of the axes of a Cartesian coordinate
system.", and ("Unit vector", 16-Mar-2019,
~ https://en.wikipedia.org/wiki/Unit_vector ) "In mathematics, a unit vector in
a normed vector space is a vector (often a spatial vector) of length 1.".
In the following, the term "unit vector" (or more specific "basic unit vector")
is used for the (special) unit vectors forming the standard basis of free
modules. However, the length of the unit vectors is not considered here, so it
is not required to regard normed spaces.
$)

  $c unitVec $.

  $( Class of basic unit vectors for an explicit free module. $)
  cuvc $a class unitVec $.

  ${
    $d r i j k $.
    $( ` ( ( R unitVec I ) `` j ) ` is the unit vector in ` ( R freeLMod I ) `
       along the ` j ` axis.  (Contributed by Stefan O'Rear, 1-Feb-2015.) $)
    df-uvc $a |- unitVec = ( r e. _V , i e. _V |-> ( j e. i |->
        ( k e. i |-> if ( k = j , ( 1r ` r ) , ( 0g ` r ) ) ) ) ) $.
  $}

  ${
    $d .1. i j k r $.  $d R i j k r $.  $d I i j k r $.  $d .0. i j k r $.
    uvcfval.u $e |- U = ( R unitVec I ) $.
    uvcfval.o $e |- .1. = ( 1r ` R ) $.
    uvcfval.z $e |- .0. = ( 0g ` R ) $.
    $( Value of the unit-vector generator for a free module.  (Contributed by
       Stefan O'Rear, 1-Feb-2015.) $)
    uvcfval $p |- ( ( R e. V /\ I e. W ) -> U = ( j e. I |->
            ( k e. I |-> if ( k = j , .1. , .0. ) ) ) ) $=
      ( vr vi wcel wa cmpt cvv wceq cfv cuvc co weq cif cv cur c0g cmpt2 df-uvc
      elex a1i simpr fveq2 syl6eqr ifeq12d adantr mpteq12dv adantl simpl mptexg
      ovmpt2d syl2an syl5eq ) AGOZFHOZPBAFUAUBZDFEFEDUCZCIUDZQZQZJVDAROZFROZVFV
      JSVEAGUJFHUJVKVLPZMNAFRRDNUEZEVNVGMUEZUFTZVOUGTZUDZQZQZVJUARUAMNRRVTUHSVM
      NDEMUIUKVOASZVNFSZPZVTVJSVMWCDVNVSFVIWAWBULZWCEVNVRFVHWDWAVRVHSWBWAVGVPCV
      QIWAVPAUFTCVOAUFUMKUNWAVQAUGTIVOAUGUMLUNUOUPUQUQURVKVLUSVKVLULVLVJROVKDFV
      IRUTURVAVBVC $.

    $d J j k $.
    $( Value of a single unit vector in a free module.  (Contributed by Stefan
       O'Rear, 3-Feb-2015.) $)
    uvcval $p |- ( ( R e. V /\ I e. W /\ J e. I ) ->
        ( U ` J ) = ( k e. I |-> if ( k = J , .1. , .0. ) ) ) $=
      ( vj wcel cfv cif cmpt cv wceq cvv w3a weq wa uvcfval fveq1d simp3 mptexg
      3adant3 3ad2ant2 eqeq2 ifbid mpteq2dv eqid fvmptg syl2anc eqtrd ) AGNZEHN
      ZFENZUAZFBOZFMEDEDMUBZCIPZQZQZOZDEDRZFSZCIPZQZUQURVAVFSUSUQURUCFBVEABCMDE
      GHIJKLUDUEUHUTUSVJTNZVFVJSUQURUSUFURUQVKUSDEVIHUGUIMFVDVJETVEMRZFSZDEVCVI
      VMVBVHCIVLFVGUJUKULVEUMUNUOUP $.

    $d K k $.
    $( Value of a unit vector coordinate in a free module.  (Contributed by
       Stefan O'Rear, 3-Feb-2015.) $)
    uvcvval $p |- ( ( ( R e. V /\ I e. W /\ J e. I ) /\ K e. I ) ->
        ( ( U ` J ) ` K ) = if ( K = J , .1. , .0. ) ) $=
      ( vk wcel cfv wceq cif cvv cur fvex wa cv cmpt uvcval fveq1d adantr simpr
      w3a eqeltri c0g ifex eqeq1 ifbid eqid fvmptg sylancl eqtrd ) AGNDHNEDNUHZ
      FDNZUAZFEBOZOZFMDMUBZEPZCIQZUCZOZFEPZCIQZURVBVGPUSURFVAVFABCMDEGHIJKLUDUE
      UFUTUSVIRNVGVIPURUSUGVHCICASORKASTUIIAUJORLAUJTUIUKMFVEVIDRVFVCFPVDVHCIVC
      FEULUMVFUNUOUPUQ $.

    $( A coodinate of a unit vector is either 0 or 1.  (Contributed by Stefan
       O'Rear, 3-Feb-2015.) $)
    uvcvvcl $p |- ( ( ( R e. V /\ I e. W /\ J e. I ) /\ K e. I ) ->
        ( ( U ` J ) ` K ) e. { .0. , .1. } ) $=
      ( wcel cfv cpr cvv cur fvex eqeltri c0g w3a wceq uvcvval ifpr mp2an prcom
      wa cif eleqtri syl6eqel ) AGMDHMEDMUAFDMUGFEBNNFEUBZCIUHZICOZABCDEFGHIJKL
      UCULCIOZUMCPMIPMULUNMCAQNPKAQRSIATNPLATRSUKCIPPUDUECIUFUIUJ $.
  $}

  ${
    uvcvvcl2.u $e |- U = ( R unitVec I ) $.
    uvcvvcl2.b $e |- B = ( Base ` R ) $.
    uvcvvcl2.r $e |- ( ph -> R e. Ring ) $.
    uvcvvcl2.i $e |- ( ph -> I e. W ) $.
    uvcvvcl2.j $e |- ( ph -> J e. I ) $.
    uvcvvcl2.k $e |- ( ph -> K e. I ) $.
    $( A unit vector coordinate is a ring element.  (Contributed by Stefan
       O'Rear, 3-Feb-2015.) $)
    uvcvvcl2 $p |- ( ph -> ( ( U ` J ) ` K ) e. B ) $=
      ( cfv wceq cur crg wcel eqid c0g cif uvcvval syl31anc ring0cl syl eqeltrd
      ringidcl ifcld ) AGFDOOZGFPZCQOZCUAOZUBZBACRSZEHSFESGESUJUNPKLMNCDULEFGRH
      UMIULTZUMTZUCUDAUOUNBSKUOUKULUMBBCULJUPUHBCUMJUQUEUIUFUG $.
  $}

  ${
    uvcvv.u $e |- U = ( R unitVec I ) $.
    uvcvv.r $e |- ( ph -> R e. V ) $.
    uvcvv.i $e |- ( ph -> I e. W ) $.
    uvcvv.j $e |- ( ph -> J e. I ) $.

    ${
      uvcvv1.o $e |- .1. = ( 1r ` R ) $.
      $( The unit vector is one at its designated coordinate.  (Contributed by
         Stefan O'Rear, 3-Feb-2015.) $)
      uvcvv1 $p |- ( ph -> ( ( U ` J ) ` J ) = .1. ) $=
        ( cfv wceq c0g cif wcel eqid uvcvval syl31anc iftrue mp1i eqtrd ) AFFCN
        NZFFOZDBPNZQZDABGREHRFERZUIUEUHOJKLLBCDEFFGHUGIMUGSTUAUFUHDOAFSUFDUGUBU
        CUD $.
    $}

    ${
      uvcvv0.k $e |- ( ph -> K e. I ) $.
      uvcvv0.jk $e |- ( ph -> J =/= K ) $.
      uvcvv0.z $e |- .0. = ( 0g ` R ) $.
      $( The unit vector is zero at its designated coordinate.  (Contributed by
         Stefan O'Rear, 3-Feb-2015.) $)
      uvcvv0 $p |- ( ph -> ( ( U ` J ) ` K ) = .0. ) $=
        ( cfv wceq cur wcel cif uvcvval syl31anc wne nesym sylib iffalsed eqtrd
        eqid wn ) AFECQQZFERZBSQZIUAZIABGTDHTEDTFDTUKUNRKLMNBCUMDEFGHIJUMUIPUBU
        CAULUMIAEFUDULUJOEFUEUFUGUH $.
    $}
  $}

  ${
    $d U i j $.  $d Y i j $.  $d W i j $.  $d I i j $.  $d R i j $.
    $d B i j $.
    uvcff.u $e |- U = ( R unitVec I ) $.
    uvcff.y $e |- Y = ( R freeLMod I ) $.
    uvcff.b $e |- B = ( Base ` Y ) $.
    $( Domain and range of the unit vector generator; ring condition required
       to be sure 1 and 0 are actually in the ring.  (Contributed by Stefan
       O'Rear, 1-Feb-2015.)  (Proof shortened by AV, 21-Jul-2019.) $)
    uvcff $p |- ( ( R e. Ring /\ I e. W ) -> U : I --> B ) $=
      ( vi vj crg wcel wa wf cv cfv eqid cvv a1i wceq cur c0g cif cmpt cbs cmap
      co cfsupp wbr ringidcl ring0cl ifcld ad3antrrr fmptd fvex elmapg ad2antlr
      wb mpan mpbird wfun csn cfn csupp mptexg funmpt snfi cdif eldifsni adantl
      wss wne neneqd iffalsed simplr suppssfifsupp syl32anc frlmelbas mpbir2and
      suppss2 adantr uvcfval feq1d ) BLMZDEMZNZDACODAJDKDKPZJPZUAZBUBQZBUCQZUDZ
      UEZUEZOWGJDWNAWOWGWIDMZNZWNAMZWNBUFQZDUGUHMZWNWLUIUJZWQWTDWSWNOZWQKDWMWSW
      NWEWMWSMWFWPWHDMWEWJWKWLWSWSBWKWSRZWKRZUKWSBWLXCWLRZULUMUNWNRUOWFWTXBUSZW
      EWPWSSMWFXFBUFUPWSDWNSEUQUTURVAWQWNSMZWNVBZWLSMZWIVCZVDMZWNWLVEUHXJVLXAWF
      XGWEWPKDWMEVFURXHWQKDWMVGTXIWQBUCUPTXKWQWIVHTWQDWMKEXJWLWQWHDXJVIMZNZWJWK
      WLXMWHWIXLWHWIVMWQWHDWIVJVKVNVOWEWFWPVPWAXJWNSSWLVQVRWGWRWTXANUSWPABFDWSL
      EWNWLHXCXEIVSWBVTWORUOWGDACWOBCWKJKDLEWLGXDXEWCWDVA $.

    $( In a nonzero ring, each unit vector is different.  (Contributed by
       Stefan O'Rear, 7-Feb-2015.)  (Revised by Mario Carneiro,
       14-Jun-2015.) $)
    uvcf1 $p |- ( ( R e. NzRing /\ I e. W ) -> U : I -1-1-> B ) $=
      ( vi vj wcel wa cv cfv wceq wral crg wne eqid cnzr wf nzrring uvcff sylan
      wi wf1 cur c0g nzrnz ad3antrrr simpllr simplrl uvcvv1 simpr necomd uvcvv0
      simplrr 3netr4d fveq1 necon3i syl ex necon4d ralrimivva dff13 sylanbrc )
      BUALZDELZMZDACUBZJNZCOZKNZCOZPVLVNPUFZKDQJDQDACUGVHBRLZVIVKBUCZABCDEFGHIU
      DUEVJVPJKDDVJVLDLZVNDLZMZMZVLVNVMVOWBVLVNSZVMVOSZWBWCMZVLVMOZVLVOOZSWDWEB
      UHOZBUIOZWFWGVHWHWISVIWAWCBWHWIWHTZWITZUJUKWEBCWHDVLREGVHVQVIWAWCVRUKZVHV
      IWAWCULZVJVSVTWCUMZWJUNWEBCDVNVLREWIGWLWMVJVSVTWCURWNWEVLVNWBWCUOUPWKUQUS
      VMVOWFWGVLVMVOUTVAVBVCVDVEJKDACVFVG $.
  $}

  ${
    $d U a b $.  $d R a b $.  $d I a b $.  $d Y a b $.  $d B a b $.
    $d .x. a b $.  $d W a b $.  $d X a b $.
    uvcresum.u $e |- U = ( R unitVec I ) $.
    uvcresum.y $e |- Y = ( R freeLMod I ) $.
    uvcresum.b $e |- B = ( Base ` Y ) $.
    uvcresum.v $e |- .x. = ( .s ` Y ) $.
    $( Any element of a free module can be expressed as a finite linear
       combination of unit vectors.  (Contributed by Stefan O'Rear,
       3-Feb-2015.)  (Proof shortened by Mario Carneiro, 5-Jul-2015.) $)
    uvcresum $p |- ( ( R e. Ring /\ I e. W /\ X e. B ) ->
        X = ( Y gsum ( X oF .x. U ) ) ) $=
      ( vb va wcel cfv co cmpt eqid wceq crg w3a cv cmulr cgsu cof cbs frlmbasf
      wf 3adant1 feqmptd wa c0g cmnd simpl1 ringmnd simpl2 simpr wral ffvelrnda
      syl csn cxp uvcff 3adant3 frlmvscafval adantr syl2anc fconstmpt a1i eqtrd
      offval2 clmod csca frlmlmod frlmsca fveq2d eleqtrd lmodvscl eqeltrrd fmpt
      syl3anc sylibr r19.21bi an32s fmptd wne simp2 simp3 uvcvv0 oveq2d adantlr
      3ad2ant1 ringrz suppsssn gsumpt fveq2 fveq1d ovex fvmpt adantl cur uvcvv1
      oveq12d ringridm mpteq2dva eqtr4d simp1 cvv wfun csupp cfn wss cfsupp wbr
      mptexg 3ad2ant2 funmpt fvexd frlmbasfsupp fsuppimpd cdif syl6eqss suppssr
      eqcomd ssid oveq1d eldifi lmod0vs 3eqtr3d suppssfifsupp syl32anc frlmgsum
      sylan2 suppss2 ) BUAOZEFOZGAOZUBZGHMENEMUCZGPZNUCZYTDPZPZBUDPZQZRZRZUEQZH
      GDCUFQZUEQYSGNEBMEUUFRZUEQZRZUUIYSGNEUUBGPZRUUMYSNEBUGPZGYQYREUUOGUIYPABH
      EUUOFGJUUOSZKUHUJZUKYSNEUULUUNYSUUBEOZULZUULUUBUUKPZUUNUUSEUUOUUKBFUUBBUM
      PZUUPUVASZUUSYPBUNOYPYQYRUURUOZBUPVAYPYQYRUURUQZYSUURURZUUSMEUUFUUOUUKYSY
      TEOZUURUUFUUOOZYSUVFULZUVGNEUVHEUUOUUGUIZUVGNEUSUVHYQUUGAOUVIYPYQYRUVFUQZ
      UVHUUAUUCCQZUUGAUVHUVKEUUAVBVCZUUCUUEUFQUUGUVHUUAABCUUEEUUOFUUCHJKUUPUVJY
      SEUUOYTGUUQUTZYSEAYTDYPYQEADUIYRABDEFHIJKVDVEZUTZLUUESZVFUVHNEUUAUUDUUEUV
      LUUCFUUOUUOUVJUVHUUAUUOOZUURUVMVGUVHEUUOUUBUUCUVHYQUUCAOZEUUOUUCUIUVJUVOA
      BHEUUOFUUCJUUPKUHVHZUTUVLNEUUARTUVHNEUUAVIVJUVHNEUUOUUCUVSUKVLVKZUVHHVMOZ
      UUAHVNPZUGPZOUVRUVKAOYSUWAUVFYPYQUWAYRBHEFJVOVEZVGUVHUUAUUOUWCUVMYSUUOUWC
      TUVFYSBUWBUGYPYQBUWBTYRBHEUAFJVPVEZVQVGVRUVOUUACUWBUWCAHUUCKUWBSZLUWCSVSW
      BVTZABHEUUOFUUGJUUPKUHVHNEUUOUUFUUGUUGSWAWCWDWEUUKSZWFUUSEUUFMFUUBUVAUUSU
      VFYTUUBWGZUBZUUFUUAUVAUUEQZUVAUWJUUDUVAUUAUUEUWJBDEYTUUBUAFUVAIUUSUVFYPUW
      IUVCWMZUUSUVFYQUWIUVDWMUUSUVFUWIWHUUSUVFUURUWIUVEWMUUSUVFUWIWIUVBWJWKUWJY
      PUVQUWKUVATUWLUUSUVFUVQUWIYSUVFUVQUURUVMWLVEUUOBUUEUUAUVAUUPUVPUVBWNVHVKU
      VDWOWPUUSUUTUUNUUBUUBDPZPZUUEQZUUNUURUUTUWOTYSMUUBUUFUWOEUUKYTUUBTZUUAUUN
      UUDUWNUUEYTUUBGWQUWPUUBUUCUWMYTUUBDWQWRXDUWHUUNUWNUUEWSWTXAUUSUWOUUNBXBPZ
      UUEQZUUNUUSUWNUWQUUNUUEUUSBDUWQEUUBUAFIUVCUVDUVEUWQSZXCWKUUSYPUUNUUOOUWRU
      UNTUVCYSEUUOUUBGUUQUTUUOBUUEUWQUUNUUPUVPUWSXEVHVKVKVKXFXGYSNMABUUFEEFFHHU
      MPZJKUWTSZYPYQYRWHZUXBYPYQYRXHUWGYSUUHXIOZUUHXJZUWTXIOGUVAXKQZXLOUUHUWTXK
      QUXEXMUUHUWTXNXOYQYPUXCYRMEUUGFXPXQUXDYSMEUUGXRVJYSHUMXSYSGUVAYQYRGUVAXNX
      OYPABHEFGUVAJUVBKXTUJYAYSEUUGMFUXEUWTYSYTEUXEYBOZULZUVKUWBUMPZUUCCQZUUGUW
      TUXGUUAUXHUUCCYSEUUOXIGFUXEYTUXHUUQYSGUXHXKQUXEUXEYSUXHUVAGXKYSUWBBUMYSBU
      WBUWEYEVQWKUXEYFYCUXBYSUWBUMXSYDYGUXFYSUVFUVKUUGTYTEUXEYHZUVTYNUXGUWAUVRU
      XIUWTTYSUWAUXFUWDVGUXFYSUVFUVRUXJUVOYNCUWBUXHAHUUCUWTKUWFLUXHSUXAYIVHYJUX
      BYOUXEUUHXIXIUWTYKYLYMXGYSUUJUUHHUEYSUUJMEUVKRUUHYSMEUUAUUCCGDFUUOAUXBUVM
      UVOYSMEUUOGUUQUKYSMEADUVNUKVLYSMEUVKUUGUVTXFVKWKXG $.
  $}

  ${
    $d x B $.  $d x F $.  $d x I $.  $d x J $.  $d x K $.  $d x L $.  $d x R $.
    $d x .0. $.  $d x ph $.  $d x U $.  $d x V $.  $d x .x. $.  $d x X $.
    frlmssuvc1.f $e |- F = ( R freeLMod I ) $.
    frlmssuvc1.u $e |- U = ( R unitVec I ) $.
    frlmssuvc1.b $e |- B = ( Base ` F ) $.
    frlmssuvc1.k $e |- K = ( Base ` R ) $.
    frlmssuvc1.t $e |- .x. = ( .s ` F ) $.
    frlmssuvc1.z $e |- .0. = ( 0g ` R ) $.
    frlmssuvc1.c $e |- C = { x e. B | ( x supp .0. ) C_ J } $.
    frlmssuvc1.r $e |- ( ph -> R e. Ring ) $.
    frlmssuvc1.i $e |- ( ph -> I e. V ) $.
    frlmssuvc1.j $e |- ( ph -> J C_ I ) $.

    ${
      frlmssuvc1.l $e |- ( ph -> L e. J ) $.
      frlmssuvc1.x $e |- ( ph -> X e. K ) $.
      $( A scalar multiple of a unit vector included in a support-restriction
         subspace is included in the subspace.  (Contributed by Stefan O'Rear,
         5-Feb-2015.)  (Revised by AV, 24-Jun-2019.) $)
      frlmssuvc1 $p |- ( ph -> ( X .x. ( U ` L ) ) e. C ) $=
        ( clmod wcel clss cfv csca cbs crg frlmlmod syl2anc wss eqid frlmsslss2
        co syl3anc frlmsca fveq2d syl5eq eleqtrd csupp wf uvcff sseldd ffvelrnd
        wceq frlmbasf cv cdif wa adantr eldifi adantl cin wne disjdif a1i simpr
        c0 disjne uvcvv0 suppss oveq1 sseq1d elrab2 sylanbrc lssvscl syl22anc )
        AHUHUIZDHUJUKZUIZNHULUKZUMUKZUILGUKZDUIZNWSFUTDUIAEUNUIZIMUIZWNUCUDEHIM
        PUOUPAXAXBJIUQWPUCUDUEBCDEWOIJMHOPWOURZRUAUBUSVAANKWRUGAKEUMUKWRSAEWQUM
        AXAXBEWQVKUCUDEHIUNMPVBUPVCVDVEAWSCUIZWSOVFUTZJUQZWTAICLGAXAXBICGVGUCUD
        CEGIMHQPRVHUPAJILUEUFVIZVJZAIKBWSJOAXBXDIKWSVGUDXHCEHIKMWSPSRVLUPABVMZI
        JVNZUIZVOZEGILXIUNMOQAXAXKUCVPAXBXKUDVPALIUIXKXGVPXKXIIUIAXIIJVQVRXLJXJ
        VSWDVKZLJUIZXKLXIVTXMXLJIWAWBAXNXKUFVPAXKWCJXJLXIWEVAUAWFWGXIOVFUTZJUQX
        FBWSCDXIWSVKXOXEJXIWSOVFWHWIUBWJWKWRWOFDWQHNWSWQURTWRURXCWLWM $.
    $}

    ${
      frlmssuvc2.l $e |- ( ph -> L e. ( I \ J ) ) $.
      frlmssuvc2.x $e |- ( ph -> X e. ( K \ { .0. } ) ) $.
      $( A nonzero scalar multiple of a unit vector not included in a
         support-restriction subspace is not included in the subspace.
         (Contributed by Stefan O'Rear, 5-Feb-2015.)  (Revised by AV,
         24-Jun-2019.) $)
      frlmssuvc2 $p |- ( ph -> -. ( X .x. ( U ` L ) ) e. C ) $=
        ( cfv co wcel csupp wss wa cv wne wn eldifad cmulr cur csn crg wf uvcff
        crab syl2anc ffvelrnd eqid frlmvscaval uvcvv1 oveq2d wceq ringridm cdif
        3eqtrd eldifsni syl eqnetrd fveq2 neeq1d elrab sylanbrc eldifbd wfn cvv
        nelss clmod cbs frlmlmod frlmsca fveq2d syl5eq eleqtrd lmodvscl syl3anc
        csca frlmbasf ffn c0g eqeltri a1i suppvalfn sseq1d mtbird intnand oveq1
        fvex elrab2 sylnibr ) ANLGUHZFUIZCUJZXJOUKUIZJULZUMXJDUJAXMXKAXMBUNZXJU
        HZOUOZBIVDZJULZALXQUJZLJUJUPXRUPALIUJLXJUHZOUOZXSALIJUFUQZAXTNOAXTNLXIU
        HZEURUHZUINEUSUHZYDUIZNANCEFYDILKMXIHPRSUDANKOUTZUGUQZAICLGAEVAUJZIMUJZ
        ICGVBUCUDCEGIMHQPRVCVEYBVFZYBTYDVGZVHAYCYENYDAEGYEILVAMQUCUDYBYEVGZVIVJ
        AYINKUJYFNVKUCYHKEYDYENSYLYMVLVEVNANKYGVMUJNOUOUGNKOVOVPVQXPYABLIXNLVKX
        OXTOXNLXJVRVSVTWAALIJUFWBLXQJWEVEAXLXQJAXJIWCZYJOWDUJZXLXQVKAIKXJVBZYNA
        YJXKYPUDAHWFUJZNHWOUHZWGUHZUJXICUJXKAYIYJYQUCUDEHIMPWHVEANKYSYHAKEWGUHY
        SSAEYRWGAYIYJEYRVKUCUDEHIVAMPWIVEWJWKWLYKNFYRYSCHXIRYRVGTYSVGWMWNCEHIKM
        XJPSRWPVEIKXJWQVPUDYOAOEWRUHWDUAEWRXFWSWTBXJMWDIOXAWNXBXCXDXNOUKUIZJULX
        MBXJCDXNXJVKYTXLJXNXJOUKXEXBUBXGXH $.
    $}
  $}

  ${
    $d Y x y z $.  $d U x y z $.  $d B x y $.  $d .0. x y $.  $d R x y z $.
    $d C y z $.  $d I x y z $.  $d V x y z $.  $d J x y z $.  $d K x y z $.
    frlmsslsp.y $e |- Y = ( R freeLMod I ) $.
    frlmsslsp.u $e |- U = ( R unitVec I ) $.
    frlmsslsp.k $e |- K = ( LSpan ` Y ) $.
    frlmsslsp.b $e |- B = ( Base ` Y ) $.
    frlmsslsp.z $e |- .0. = ( 0g ` R ) $.
    frlmsslsp.c $e |- C = { x e. B | ( x supp .0. ) C_ J } $.
    $( A subset of a free module obtained by restricting the support set is
       spanned by the relevant unit vectors.  (Contributed by Stefan O'Rear,
       6-Feb-2015.)  (Revised by AV, 24-Jun-2019.) $)
    frlmsslsp $p |- ( ( R e. Ring /\ I e. V /\ J C_ I ) ->
        ( K ` ( U " J ) ) = C ) $=
      ( wcel cfv adantr vy vz crg wss w3a cima clmod clss frlmlmod 3adant3 eqid
      frlmsslss2 cv wa csupp co uvcff simp3 sselda ffvelrnd cbs simpl2 frlmbasf
      wral wf syl2anc cdif simpll1 simpll2 eldifi adantl wne cin c0 wceq disjne
      disjdif mp3an1 adantll uvcvv0 suppss oveq1 sseq1d sylanbrc ralrimiva wfun
      elrab2 cdm wb wfn ffn fnfun fndm sseqtr4d funimass4 mpbird lspssp syl3anc
      syl cvsca cof cgsu simpl1 crab ssrab2 eqsstri a1i uvcresum c0g cabl csubg
      lmodabl crn imassrn frn syl5ss lspcl lsssubg 3ad2antl2 inidm offn adantrr
      syldan simprr fnfvof syl22anc csca sseli adantrl fveq2d cvv fvex ad2antrr
      suppssr eqtrd oveq1d lmod0vs eqeltrd cfn syl2an sylan2 frlmsca eleqtrd wi
      lspssid funfvima2 imp sseldd lssvscl anassrs adantlrr wn id simplrr simpr
      eldifd simprbi eqeltri syl5eq ffvelrnda lss0cl expr ralrimiv ffnfv cfsupp
      pm2.61dan wbr frlmbasfsupp fsuppimpd dffn2 sylib ssid ffvelrn 3eqtrd ssfi
      cmap simp2 frlmbasmap elmapfn ovexd funisfsupp gsumsubgcl ex ssrdv eqssd
      ) DUCRZFIRZGFUDZUEZEGUFZHSZCUWIJUGRZCJUHSZRUWJCUDZUWKCUDUWFUWGUWLUWHDJFIL
      UIUJZABCDUWMFGIJKLUWMUKZOPQULUWIUWNUAUMZESZCRZUAGVDZUWIUWSUAGUWIUWQGRZUNZ
      UWRBRZUWRKUOUPZGUDZUWSUXBFBUWQEUWIFBEVEZUXAUWFUWGUXFUWHBDEFIJMLOUQUJZTUWI
      GFUWQUWFUWGUWHURZUSZUTZUXBFDVASZAUWRGKUXBUWGUXCFUXKUWRVEUWFUWGUWHUXAVBUXJ
      BDJFUXKIUWRLUXKUKZOVCVFUXBAUMZFGVGZRZUNDEFUWQUXMUCIKMUWFUWGUWHUXAUXOVHUWF
      UWGUWHUXAUXOVIUXBUWQFRUXOUXITUXOUXMFRZUXBUXMFGVJVKUXAUXOUWQUXMVLZUWIGUXNV
      MVNVOUXAUXOUXQGFVQGUXNUWQUXMVPVRVSPVTWAUXMKUOUPZGUDZUXEAUWRBCUXMUWRVOUXRU
      XDGUXMUWRKUOWBWCQWGWDWEUWIEWFZGEWHZUDZUWNUWTWIUWIEFWJZUXTUWIUXFUYCUXGFBEW
      KZWSZFEWLWSZUWIGFUYAUXHUWIUYCUYAFVOUYEFEWMWSWNZUAGCEWOVFWPUWMUWJCHJUWPNWQ
      WRUWIUACUWKUWIUWQCRZUWQUWKRUWIUYHUNZUWQJUWQEJWTSZXAZUPZXBUPZUWKUYIUWFUWGU
      WQBRZUWQUYMVOUWFUWGUWHUYHXCUWFUWGUWHUYHVBZUWICBUWQCBUDUWICUXSABXDBQUXSABX
      EXFZXGUSZBDUYJEFIUWQJMLOUYJUKZXHWRUYIFUWKUYLJIJXISZUYSUKZUWIJXJRZUYHUWIUW
      LVUAUWOJXLWSTUYOUWIUWKJXKSRZUYHUWIUWLUWKUWMRZVUBUWOUWIUWLUWJBUDZVUCUWOUWI
      UWJEXMZBEGXNUWIUXFVUEBUDUXGFBEXOWSXPZUWMUWJHBJOUWPNXQVFZUWMUWKJUWPXRVFTUY
      IUYLFWJZUBUMZUYLSZUWKRZUBFVDFUWKUYLVEUWIUYHUYNVUHUYQUWIUYNUNZFFUYJFUWQEII
      VULFUXKUWQVEZUWQFWJZUWGUWFUYNVUMUWHBDJFUXKIUWQLUXLOVCXSZFUXKUWQWKWSZUWIUY
      CUYNUYETUWFUWGUWHUYNVBZVUQFXTZYAZYCUYIVUKUBFUWIUYHVUIFRZVUKUWIUYHVUTUNZUN
      ZVUJVUIUWQSZVUIESZUYJUPZUWKVVBVUNUYCUWGVUTVUJVVEVOUWIUYHVUNVUTUWIUYHUYNVU
      NUYQVUPYCYBUWIUYCVVAUYETUWFUWGUWHVVAVBUWIUYHVUTYDFUYJUWQEIVUIYEYFVVBVUIGR
      ZVVEUWKRZUWIUYHVVFVVGVUTUWIUYHVVFVVGUWIUYHVVFUNZUNZUWLVUCVVCJYGSZVASZRVVD
      UWKRVVGUWIUWLVVHUWOTUWIVUCVVHVUGTVVIVVCUXKVVKVVIFUXKVUIUWQUWIUYHVUMVVFUYH
      UWIUYNVUMCBUWQUYPYHZVUOUUAZYBUWIVVFVUTUYHUWIGFVUIUXHUSYIUTUWIUXKVVKVOVVHU
      WIDVVJVAUWFUWGDVVJVOUWHDJFUCILUUBUJZYJTUUCVVIUWJUWKVVDUWIUWJUWKUDZVVHUWIU
      WLVUDVVOUWOVUFUWJHBJONUUEVFTUWIVVFVVDUWJRZUYHUWIVVFVVPUWIUXTUYBVVFVVPUUDU
      YFUYGGVUIEUUFVFUUGYIUUHVVKUWMUYJUWKVVJJVVCVVDVVJUKZUYRVVKUKUWPUUIYFUUJUUK
      VVBVVFUULZUNZVVEUYSUWKVVSVVEVVJXISZVVDUYJUPZUYSVVSVVCVVTVVDUYJVVSVVCKVVTV
      VSUYIVUIUXNRVVCKVOVVBUYIVVRUWIUYHUYIVUTUYIUUMYBTVVSVUIFGUWIUYHVUTVVRUUNVV
      BVVRUUOUUPUYIFUXKYKUWQIGVUIKVVMUYHUWQKUOUPZGUDZUWIUYHUYNVWCUXSVWCAUWQBCUX
      MUWQVOUXRVWBGUXMUWQKUOWBWCQWGUUQVKUYOKYKRZUYIKDXISZYKPDXIYLUURZXGYNVFUWIK
      VVTVOZVVAVVRUWIKVWEVVTPUWIDVVJXIVVNYJUUSZYMYOYPVVSUWLVVDBRZVWAUYSVOUWIUWL
      VVAVVRUWOYMZVVBVWIVVRUWIVUTVWIUYHUWIFBVUIEUXGUUTYITUYJVVJVVTBJVVDUYSOVVQU
      YRVVTUKZUYTYQVFYOVVSUWLVUCUYSUWKRVWJUWIVUCVVAVVRVUGYMUWMUWKJUYSUYTUWPUVAV
      FYRUVFYRUVBUVCUBFUWKUYLUVDWDUYIUYLUYSUVEUVGZUYLUYSUOUPZYSRZUYIVWBYSRZVWMV
      WBUDZVWNUYIUWGUYNVWOUYOUYQUWGUYNUNUWQKBDJFIUWQKLPOUVHUVIVFUWIUYHUYNVWPUYQ
      VULFYKAUYLVWBUYSVULVUHFYKUYLVEVUSFUYLUVJUVKVULUXMFVWBVGRZUNZUXMUYLSZUXMUW
      QSZUXMESZUYJUPZVVTVXAUYJUPZUYSVWRVUNUYCUWGUXPVWSVXBVOVULVUNVWQVUPTUWIUYCU
      YNVWQUYEYMUWFUWGUWHUYNVWQVIVWQUXPVULUXMFVWBVJZVKFUYJUWQEIUXMYEYFVWRVWTVVT
      VXAUYJVWRVWTKVVTVULFUXKYKUWQIVWBUXMKVUOVWBVWBUDVULVWBUVLXGVUQVWDVULVWFXGY
      NUWIVWGUYNVWQVWHYMYOYPVWRUWLVXABRZVXCUYSVOUWIUWLUYNVWQUWOYMVULUXFUXPVXEVW
      QUWIUXFUYNUXGTVXDFBUXMEUVMYTUYJVVJVVTBJVXAUYSOVVQUYRVWKUYTYQVFUVNWAYCVWBV
      WMUVOVFUYIUYLWFZUYLYKRUYSYKRZVWLVWNWIUYIVUHVXFUYIFFUYJFUWQEIIUYIUWQUXKFUV
      PUPRZVUNUWIUWGUYNVXHUYHUWFUWGUWHUVQVVLBDJFUXKIUWQLUXLOUVRYTUWQUXKFUVSWSUY
      IUXFUYCUWIUXFUYHUXGTUYDWSUYOUYOVURYAFUYLWLWSUYIUWQEUYKUVTVXGUYIJXIYLXGUYL
      YKYKUYSUWAWRWPUWBYRUWCUWDUWE $.
  $}

  ${
    $d F a b c $.  $d U a b c $.  $d J a b c $.  $d R a b c $.  $d I a b c $.
    $d V a b c $.
    frlmlbs.f $e |- F = ( R freeLMod I ) $.
    frlmlbs.u $e |- U = ( R unitVec I ) $.
    frlmlbs.j $e |- J = ( LBasis ` F ) $.
    $( The unit vectors comprise a basis for a free module.  (Contributed by
       Stefan O'Rear, 6-Feb-2015.)  (Proof shortened by AV, 21-Jul-2019.) $)
    frlmlbs $p |- ( ( R e. Ring /\ I e. V ) -> ran U e. J ) $=
      ( vb va vc wcel cfv wss wceq csn cdif wral eqid crg wa crn clspn cv cvsca
      cbs co wn csca c0g wf uvcff frn csupp crab cima frlmbasf adantll suppssdm
      syl cdm fdm syl5sseq ralrimiva rabid2 sylibr ssid frlmsslsp wfn ffn fnima
      mp3an3 3syl fveq2d 3eqtr2rd simpll simplr difssd vsnid ad2antrl syl5eleqr
      snssi dfss4 sylib frlmsca difeq12d eleq2d biimpar adantrl frlmssuvc2 ccnv
      sneqd wf1 wfun ringelnzr syl2anc uvcf1 df-f1 simprbi imadif simprl fnsnfv
      cnzr f1fn eqcomd syl3anc eqtrd neleqtrrd ralrimivva wb oveq2 sneq difeq2d
      eqtr2d eleq12d notbid ralbidv ralrn mpbird cvv w3a cfrlm ovex islbs ax-mp
      eqeltri syl3anbrc ) AUAMZDFMZUBZBUCZCUGNZOZYLCUDNZNZYMPZJUEZKUEZCUFNZUHZY
      LYSQZRZYONZMZUIZJCUJNZUGNZUUGUKNZQZRZSZKYLSZYLEMZYKDYMBULZYNYMABDFCHGYMTZ
      UMZDYMBUNVAYKYMYSAUKNZUOUHZDOZKYMUPZBDUQZYONZYPYKUUTKYMSYMUVAPYKUUTKYMYKY
      SYMMZUBDAUGNZYSULZUUTYJUVDUVFYIYMACDUVEFYSGUVETZUUPURUSUVFYSVBUUSDYSUURUT
      DUVEYSVCVDVAVEUUTKYMVFVGYIYJDDOUVCUVAPDVHKYMUVAABDDYOFCUURGHYOTZUUPUURTZU
      VATVIVMYKUVBYLYOYKUUOBDVJZUVBYLPZUUQDYMBVKZDBVLZVNVOVPYKUUMYRLUEZBNZYTUHZ
      YLUVOQZRZYONZMZUIZJUUKSZLDSZYKUWALJDUUKYKUVNDMZYRUUKMZUBZUBZUVSUUSDUVNQZR
      ZOKYMUPZUVPUWGKYMUWJAYTBCDUWIUVEUVNFYRUURGHUUPUVGYTTZUVIUWJTZYIYJUWFVQZYI
      YJUWFVRZUWGDUWHVSZUWGUVNUWHDUWIRZLVTUWGUWHDOZUWPUWHPUWDUWQYKUWEUVNDWCWAUW
      HDWDWEWBYKUWEYRUVEUURQZRZMZUWDYKUWTUWEYKUWSUUKYRYKUVEUUHUWRUUJYKAUUGUGACD
      UAFGWFZVOYKUURUUIYKAUUGUKUXAVOWMWGWHWIWJZWKUWGUVSBUWIUQZYONZUWJUWGUVRUXCY
      OUWGUXCUVBBUWHUQZRZUVRUWGDYMBWNZBWLWOZUXCUXFPUWGAXDMZYJUXGUWGYIUWTUXIUWMU
      XBUVEAYRUURUVIUVGWPWQUWNYMABDFCHGUUPWRWQZUXGUUOUXHDYMBWSWTDUWHBXAVNUWGUVB
      YLUXEUVQUWGUXGUVJUVKUXJDYMBXEZUVMVNUWGUVQUXEUWGUVJUWDUVQUXEPUWGUXGUVJUXJU
      XKVAYKUWDUWEXBDUVNBXCWQXFWGXOVOUWGYIYJUWIDOUXDUWJPUWMUWNUWOKYMUWJABDUWIYO
      FCUURGHUVHUUPUVIUWLVIXGXHXIXJYKUUOUVJUUMUWCXKUUQUVLUULUWBKLDBYSUVOPZUUFUW
      AJUUKUXLUUEUVTUXLUUAUVPUUDUVSYSUVOYRYTXLUXLUUCUVRYOUXLUUBUVQYLYSUVOXMXNVO
      XPXQXRXSVNXTCYAMUUNYNYQUUMYBXKCADYCUHYAGADYCYDYGKJYLYTUUGEUUHYOYMCYAUUIUU
      PUUGTUWKUUHTIUVHUUITYEYFYH $.
  $}

  ${
    $d R x y z w $.  $d I x y z w $.  $d F x y z w $.  $d B x y z w $.
    $d C x y z w $.  $d .x. x y z w $.  $d E y z w $.  $d A x y z w $.
    $d X x y z w $.  $d K x y z w $.  $d ph x y z w $.  $d Y x y z w $.
    $d U x y z w $.  $d T x y z w $.
    frlmup.f $e |- F = ( R freeLMod I ) $.
    frlmup.b $e |- B = ( Base ` F ) $.
    frlmup.c $e |- C = ( Base ` T ) $.
    frlmup.v $e |- .x. = ( .s ` T ) $.
    frlmup.e $e |- E = ( x e. B |-> ( T gsum ( x oF .x. A ) ) ) $.
    frlmup.t $e |- ( ph -> T e. LMod ) $.
    frlmup.i $e |- ( ph -> I e. X ) $.
    frlmup.r $e |- ( ph -> R = ( Scalar ` T ) ) $.
    frlmup.a $e |- ( ph -> A : I --> C ) $.
    $( Any assignment of unit vectors to target vectors can be extended
       (uniquely) to a homomorphism from a free module to an arbitrary other
       module on the same base ring.  (Contributed by Stefan O'Rear,
       7-Feb-2015.)  (Proof shortened by AV, 21-Jul-2019.) $)
    frlmup1 $p |- ( ph -> E e. ( F LMHom T ) ) $=
      ( vy vz vw cvsca cfv csca cbs eqid crg wcel lmodring syl eqeltrd frlmlmod
      clmod syl2anc wceq frlmsca eqtr3d cplusg cgrp lmodgrp cv cof co wa wi weq
      cgsu eleq1 anbi2d oveq1 oveq2d eleq1d imbi12d c0g lmodcmn adantr ad2antrr
      simprl fveq2d eleqtrd simprr lmodvscl syl3anc wf frlmbasf sylan inidm off
      ccmn cvv wfun csupp cfn wss cfsupp wbr ovex a1i fvexd frlmbasfsupp eqcomd
      ffun breq2d mpbird fsuppimpd ssid lmod0vs sylancom suppssfifsupp syl32anc
      suppssof1 gsumcl chvarv fmptd feq1d adantrr adantrl fvmpt oveq1d wfn offn
      ffn oveqd ffvelrnda syl13anc eqtrd simpr fnfvof syl22anc oveq12d ad2antll
      wb 3eqtr4d cmpt feqmptd cmulr eleqtrrd breq1d lmodvacl 3expb frlmplusgval
      gsumadd lmodvsdir eqfnfvd ad2antrl isghmd eleq2d eqbrtrrd gsumvsmul dffn2
      biimpar simplrl adantlrl adantlr lmodvsass simplrr frlmvscaval mpteq2dva
      sylib islmhmd ) AUBUCJGJUEUFZHIGUGUFZJUGUFZUVFUHUFZDNUVDUIZPUVFUIZUVEUIZU
[encoded data, 4880 characters]
      UXEHVXCVNYNYPUVC $.

    ${
      frlmup.y $e |- ( ph -> Y e. I ) $.
      frlmup.u $e |- U = ( R unitVec I ) $.
      $( The evaluation map has the intended behavior on the unit vectors.
         (Contributed by Stefan O'Rear, 7-Feb-2015.)  (Proof shortened by AV,
         21-Jul-2019.) $)
      frlmup2 $p |- ( ph -> ( E ` ( U ` Y ) ) = ( A ` Y ) ) $=
        ( cfv cof co cgsu wcel wceq crg wf csca clmod eqid lmodring syl eqeltrd
        uvcff syl2anc ffvelrnd cv oveq1 oveq2d ovex fvmpt c0g ccmn cmnd lmodcmn
        cmnmnd 3syl cbs frlmbasf fveq2d feq3d mpbid lcomf csn wa wfn ffn adantr
        cdif eldifi adantl fnfvof syl22anc eldifsni necomd uvcvv0 eqtrd ffvelrn
        wne oveq1d syl2an lmod0vs 3eqtrd suppss gsumpt cur uvcvv1 lmodvs1 ) ANI
        UFZJUFZGXECHUGZUHZUIUHZNXHUFZNCUFZAXEDUJZXFXIUKALDNIAFULUJZLMUJZLDIUMAF
        GUNUFZULUBAGUOUJZXOULUJTXOGXOUPZUQURUSZUADFILMKUEOPUTVAUDVBZBXEGBVCZCXG
        UHZUIUHXIDJXTXEUKYAXHGUIXTXECXGVDVESGXHUIVFVGURALEXHGMNGVHUFZQYBUPZAXPG
        VIUJGVJUJTGVKGVLVMUAUDAEHXOXECLXOVNUFZMGXQYDUPRQTALFVNUFZXEUMZLYDXEUMAX
        NXLYFUAXSDFKLYEMXEOYEUPPVOVAZAYEYDXELAFXOVNUBVPVQVRUCUAVSZALEBXHNVTZYBY
        HAXTLYIWEUJZWAZXTXHUFZXTXEUFZXTCUFZHUHZXOVHUFZYNHUHZYBYKXELWBZCLWBZXNXT
        LUJZYLYOUKAYRYJAYFYRYGLYEXEWCURZWDAYSYJALECUMZYSUCLECWCURZWDAXNYJUAWDZY
        JYTAXTLYIWFZWGZLHXECMXTWHWIYKYMYPYNHYKYMFVHUFZYPYKFILNXTULMUUGUEAXMYJXR
        WDUUDANLUJZYJUDWDUUFYJNXTWOAYJXTNXTLNWJWKWGUUGUPWLAUUGYPUKYJAFXOVHUBVPW
        DWMWPYKXPYNEUJZYQYBUKAXPYJTWDAUUBYTUUIYJUCUUELEXTCWNWQHXOYPEGYNYBQXQRYP
        UPYCWRVAWSWTXAAXJNXEUFZXKHUHZXOXBUFZXKHUHZXKAYRYSXNUUHXJUUKUKUUAUUCUAUD
        LHXECMNWHWIAUUJUULXKHAUUJFXBUFZUULAFIUUNLNULMUEXRUAUDUUNUPXCAFXOXBUBVPW
        MWPAXPXKEUJUUMXKUKTALENCUCUDVBHUULXOEGXKQXQRUULUPXDVAWSWS $.
    $}

    $d ph u $.  $d I u x $.  $d A u $.  $d E u $.  $d R u $.
    frlmup.k $e |- K = ( LSpan ` T ) $.
    $( The range of such an evaluation map is the finite linear combinations of
       the target vectors and also the span of the target vectors.
       (Contributed by Stefan O'Rear, 6-Feb-2015.) $)
    frlmup3 $p |- ( ph -> ran E = ( K ` ran A ) ) $=
      ( vu cuvc co crn clspn cfv cima clmhm wcel wss wceq frlmup1 wf csca clmod
      crg eqid lmodring syl eqeltrd uvcff syl2anc frn lmhmlsp wfn lmhmf frlmlbs
      ffn fnima clbs lbssp eqcomd imaeq2d eqtr3d ccom imaco syl3anc cv wa fvco2
      sylan adantr simpr frlmup2 eqtr2d eqfnfvd imaeq1d 3eqtr3a fveq2d 3eqtr4d
      fnco ) AIFKUEUFZUGZJUHUIZUIZUJZIWPUJZLUIZIUGZCUGZLUIAIJGUKUFULZWPDUMZWSXA
      UNABCDEFGHIJKMNOPQRSTUAUBUOZAKDWOUPZXEAFUSULZKMULZXGAFGUQUIZUSUAAGURULZXJ
      USULSXJGXJUTVAVBVCZTDFWOKMJWOUTZNOVDVEZKDWOVFVBZJGWPIWQLDOWQUTZUCVGVEAIDU
      JZXBWSAIDVHZXQXBUNADEIUPZXRAXDXSXFDEJGIOPVIVBDEIVKVBZDIVLVBADWRIAWRDAWPJV
      MUIZULZWRDUNAXHXIYBXLTFWOJKYAMNXMYAUTZVJVEWPYAWQDJOYCXPVNVBVOVPVQAXCWTLAI
      WOVRZKUJZIWOKUJZUJXCWTIWOKVSACKUJZYEXCACYDKAUDKCYDAKECUPZCKVHZUBKECVKVBZA
      XRWOKVHZXEYDKVHXTAXGYKXNKDWOVKVBZXODKIWOWNVTAUDWAZKULZWBZYMYDUIZYMWOUIIUI
      ZYMCUIAYKYNYPYQUNYLKIWOYMWCWDYOBCDEFGHWOIJKMYMNOPQRAXKYNSWEAXIYNTWEAFXJUN
      YNUAWEAYHYNUBWEAYNWFXMWGWHWIWJAYIYGXCUNYJKCVLVBVQAYFWPIAYKYFWPUNYLKWOVLVB
      VPWKWLWM $.
  $}

  ${
    $d A m x $.  $d A y $.  $d C x y $.  $d F m x $.  $d F y $.  $d I x y $.
    $d R x $.  $d T m x $.  $d T y $.  $d U m x $.  $d U y $.  $d X x y $.
    frlmup4.r $e |- R = ( Scalar ` T ) $.
    frlmup4.f $e |- F = ( R freeLMod I ) $.
    frlmup4.u $e |- U = ( R unitVec I ) $.
    frlmup4.c $e |- C = ( Base ` T ) $.
    $( Universal property of the free module by existential uniquenes.
       (Contributed by Stefan O'Rear, 7-Mar-2015.) $)
    frlmup4 $p |- ( ( T e. LMod /\ I e. X /\ A : I --> C ) ->
        E! m e. ( F LMHom T ) ( m o. U ) = A ) $=
      ( vx wcel wceq cfv eqid syl2anc syl vy clmod wf w3a cv ccom clmhm co wrex
      wrmo wreu cbs cvsca cof cgsu cmpt simp1 simp2 csca a1i simp3 frlmup1 ovex
      wfn crn wss fnmpti crg lmodring 3ad2ant1 ffn frn fnco syl3anc 3ad2ant3 wa
      uvcff adantr simpr fvco2 simpl1 simpl2 simpl3 frlmup2 eqtrd eqfnfvd coeq1
      eqeq1d rspcev cres ccnv wi wral wfun ffun funcoeqres ralrimivw clspn clbs
      ex frlmlbs lbssp lspextmo rmoim sylc reu5 sylanbrc ) DUBOZHIOZHBAUCZUDZFU
      EZEUFZAPZFGDUGUHZUIZXNFXOUJZXNFXOUKXKNGULQZDNUEADUMQZUNUHZUOUHZUPZXOOYBEU
      FZAPZXPXKNAXRBCDXSYBGHIKXRRZMXSRZYBRZXHXIXJUQXHXIXJURZCDUSQPZXKJUTXHXIXJV
      AVBXKUAHYCAXKYBXRVDZEHVDZEVEZXRVFZYCHVDYJXKNXRYAYBDXTUOVCYGVGUTXKHXREUCZY
      KXKCVHOZXIYNXHXIYOXJCDJVIVJZYHXRCEHIGLKYEVQSZHXREVKZTXKYNYMYQHXREVLTZXRHY
      BEVMVNXJXHAHVDXIHBAVKVOXKUAUEZHOZVPZYTYCQZYTEQYBQZYTAQUUBYKUUAUUCUUDPUUBY
      NYKXKYNUUAYQVRYRTXKUUAVSZHYBEYTVTSUUBNAXRBCDXSEYBGHIYTKYEMYFYGXHXIXJUUAWA
      XHXIXJUUAWBYIUUBJUTXHXIXJUUAWCUUELWDWEWFXNYDFYBXOXLYBPXMYCAXLYBEWGWHWISXK
      XNXLYLWJAEWKUFZPZWLZFXOWMZUUGFXOUJZXQXKEWNZUUIXKYNUUKYQHXREWOTUUKUUHFXOUU
      KXNUUGXLEAWPWTWQTXKYMYLGWRQZQXRPZUUJYSXKYLGWSQZOZUUMXKYOXIUUOYPYHCEGHUUNI
      KLUUNRZXASYLUUNUULXRGYEUUPUULRZXBTXRGDFUUFUULYLYEUUQXCSXNUUGFXOXDXEXNFXOX
      FXG $.
  $}

  ${
    $d M a f $.  $d B a f $.  $d N a f $.  $d K a f $.  $d S a f $.
    $d .0. a f $.  $d .x. a f $.  $d F a f $.  $d I a f $.  $d X a f $.
    $d ph a f $.
    ellspd.n $e |- N = ( LSpan ` M ) $.
    ellspd.v $e |- B = ( Base ` M ) $.
    ellspd.k $e |- K = ( Base ` S ) $.
    ellspd.s $e |- S = ( Scalar ` M ) $.
    ellspd.z $e |- .0. = ( 0g ` S ) $.
    ellspd.t $e |- .x. = ( .s ` M ) $.

    ${
      ellspd.f $e |- ( ph -> F : I --> B ) $.
      ellspd.m $e |- ( ph -> M e. LMod ) $.
      ellspd.i $e |- ( ph -> I e. _V ) $.
      $( The elements of the span of an indexed collection of basic vectors are
         those vectors which can be written as finite linear combinations of
         basic vectors.  (Contributed by Stefan O'Rear, 7-Feb-2015.)  (Revised
         by AV, 24-Jun-2019.) $)
      ellspd $p |- ( ph -> ( X e. ( N ` ( F " I ) ) <->
                             E. f e. ( K ^m I ) ( f finSupp .0. /\
                                         X = ( M gsum ( f oF .x. F ) ) ) ) ) $=
        ( va cima cfv wcel cv cof co cgsu wceq cfrlm cbs wrex cab cfsupp wbr wa
        cmap crn wfn ffn fnima 3syl fveq2d cmpt eqid rnmpt cvv csca a1i frlmup3
        wf syl5eqr eqtr4d eleq2d ovex eleq1 mpbiri rexlimivw eqeq1 rexbidv crab
        elab3 eqeltri frlmbas sylancr eqcomd rexeqdv breq1 rexrab syl6bb syl5bb
        fvex bitrd ) AKFGUCZJUDZUEKUBUFZIEUFZFDUGUHZUIUHZUJZECGUKUHZULUDZUMZUBU
        NZUEZWRLUOUPZKWTUJZUQEHGURUHZUMZAWPXEKAWPFUSZJUDZXEAWOXKJAGBFVLFGUTWOXK
        UJSGBFVAGFVBVCVDAXEEXCWTVEZUSXLEUBXCWTXMXMVFZVGAEFXCBCIDXMXBGJVHXBVFZXC
        VFNRXNTUACIVIUDZUJAPVJSMVKVMVNVOXFXHEXCUMZAXJXDXQUBKXHKVHUEZEXCXHXRWTVH
        UEIWSUIVPKWTVHVQVRVSWQKUJXAXHEXCWQKWTVTWAWCAXQXHEWQLUOUPZUBXIWBZUMXJAXH
        EXCXTAXTXCACVHUEGVHUEXTXCUJCXPVHPIVIWMWDUAXTCUBXBGHVHVHLXOOQXTVFWEWFWGW
        HXSXGXHEUBXIWQWRLUOWIWJWKWLWN $.
    $}

    ${
      elfilspd.f $e |- ( ph -> F : I --> B ) $.
      elfilspd.m $e |- ( ph -> M e. LMod ) $.
      elfilspd.i $e |- ( ph -> I e. Fin ) $.
      $( Simplified version of ~ ellspd when the spanning set is finite: all
         linear combinations are then acceptable.  (Contributed by Stefan
         O'Rear, 7-Feb-2015.)  (Proof shortened by AV, 21-Jul-2019.) $)
      elfilspd $p |- ( ph -> ( X e. ( N ` ( F " I ) ) <->
          E. f e. ( K ^m I ) X = ( M gsum ( f oF .x. F ) ) ) ) $=
        ( cima cfv wcel cv cfsupp wbr cof co cgsu wceq wa cmap wrex cfn cvv syl
        elex ellspd wf elmapi adantl adantr c0g eqeltri a1i fdmfifsupp rexbidva
        fvex biantrurd bitr4d ) AKFGUBJUCUDEUEZLUFUGZKIVLFDUHUIUJUIUKZULZEHGUMU
        IZUNVNEVPUNABCDEFGHIJKLMNOPQRSTAGUOUDZGUPUDUAGUOURUQUSAVNVOEVPAVLVPUDZU
        LZVMVNVSGHVLUPLVRGHVLUTAVLHGVAVBAVQVRUAVCLUPUDVSLCVDUCUPQCVDVIVEVFVGVJV
        HVK $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Independent sets and families
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
<HTML>
According to the definition in [Lang] p. 129: "A subset S of a module M is said
to be <b>linearly independent</b> (over A) if whenever we have a linear
combination &sum;<sub>x &isin; S</sub> a<sub>x</sub>x which is equal to 0, then
a<sub>x</sub> = 0 for all x &isin; S.", and according to the Definition in
[Lang] p. 130: "a familiy {x<sub>i</sub>}<sub>i &isin; I</sub> of elements of M
is said to be <b>linearly independent</b> (over A) if whenever we have a linear
combination &sum;<sub>i &isin; I</sub> a<sub>i</sub>x<sub>i</sub> = 0, then
a<sub>i</sub> = 0 for all i.". These definitions correspond to the definitions
~ df-linds resp. ~ df-lindf , where it is claimed that a nonzero summand can be
extracted ( &sum;<sub>i  &isin; {I \ { j } }</sub>a<sub>i</sub>x<sub>i</sub> =
-a<sub>j</sub>x<sub>j</sub> ) and be represented as a linear combination of the
remaining elements of the family.
<br>
TODO: After introducing a definition of "linear combination", it should be
shown that these definitions are actually equivalent.
</HTML>
$)

  $c LIndF LIndS $.

  $( The class relationship of independent families in a module. $)
  clindf $a class LIndF $.

  $( The class generator of independent sets in a module. $)
  clinds $a class LIndS $.

  ${
    $d f w s x k $.
    $( An independent family is a family of vectors, no nonzero multiple of
       which can be expressed as a linear combination of other elements of the
       family.  This is almost, but not quite, the same as a function into an
       independent set.

       This is a defined concept because it matters in many cases whether
       independence is taken at a set or family level.  For instance, a number
       is transcedental iff its nonzero powers are linearly independent.  Is 1
       transcedental?  It has only one nonzero power.

       We can almost define family independence as a family of unequal elements
       with independent range, as ~ islindf3 , but taking that as primitive
       would lead to unpleasant corner case behavior with the zero ring.

       This is equivalent to the common definition of having no nontrivial
       representations of zero ( ~ islindf4 ) and only one representation for
       each element of the range ( ~ islindf5 ).  (Contributed by Stefan
       O'Rear, 24-Feb-2015.) $)
    df-lindf $a |- LIndF = { <. f , w >. | ( f : dom f --> ( Base ` w ) /\
            [. ( Scalar ` w ) / s ]. A. x e. dom f
                A. k e. ( ( Base ` s ) \ { ( 0g ` s ) } )
                  -. ( k ( .s ` w ) ( f ` x ) ) e.
                      ( ( LSpan ` w ) ` ( f " ( dom f \ { x } ) ) ) ) } $.

    $( An independent set is a set which is independent as a family.  See also
       ~ islinds3 and ~ islinds4 .  (Contributed by Stefan O'Rear,
       24-Feb-2015.) $)
    df-linds $a |- LIndS = ( w e. _V |->
          { s e. ~P ( Base ` w ) | ( _I |` s ) LIndF w } ) $.
  $}

  ${
    $d f k s w x $.
    $( The independent-family predicate is a proper relation and can be used
       with ~ brrelexi .  (Contributed by Stefan O'Rear, 24-Feb-2015.) $)
    rellindf $p |- Rel LIndF $=
      ( vf vw vk vx vs cv cdm cbs cfv wf cvsca co csn cdif cima clspn wcel wral
      wn c0g csca wsbc wa clindf df-lindf relopabi ) AFZGZBFZHIUGJCFDFZUGIUIKIL
      UGUHUJMNOUIPIIQSCEFZHIUKTIMNRDUHREUIUAIUBUCABUDDBACEUEUF $.
  $}

  ${
    $d W s w $.  $d X s $.
    islinds.b $e |- B = ( Base ` W ) $.
    $( Property of an independent set of vectors in terms of an independent
       family.  (Contributed by Stefan O'Rear, 24-Feb-2015.) $)
    islinds $p |- ( W e. V -> ( X e. ( LIndS ` W ) <->
          ( X C_ B /\ ( _I |` X ) LIndF W ) ) ) $=
      ( vs vw wcel clinds cfv cbs cpw cid cres clindf wbr wa wss cv wceq eleq2d
      crab cvv elex fveq2 pweqd breq2 rabeqbidv df-linds fvex pwex rabex reseq2
      fvmpt syl breq1d elrab syl6bb elpw2 sseq2i bitr4i anbi1i ) CBHZDCIJZHZDCK
      JZLZHZMDNZCOPZQZDARZVJQVCVEDMFSZNZCOPZFVGUBZHVKVCVDVPDVCCUCHVDVPTCBUDGCVN
      GSZOPZFVQKJZLZUBVPUCIVQCTZVRVOFVTVGWAVSVFVQCKUEUFVQCVNOUGUHGFUIVOFVGVFCKU
      JZUKULUNUOUAVOVJFDVGVMDTVNVICOVMDMUMUPUQURVHVLVJVHDVFRVLDVFWBUSAVFDEUTVAV
      BUR $.

    $( An independent set of vectors is a set of vectors.  (Contributed by
       Stefan O'Rear, 24-Feb-2015.) $)
    linds1 $p |- ( X e. ( LIndS ` W ) -> X C_ B ) $=
      ( clinds cfv wcel wss cid cres clindf wbr wa cdm wb elfvdm islinds simpld
      syl ibi ) CBEFGZCAHZICJBKLZUAUBUCMZUABENZGUAUDOCBEPAUEBCDQSTR $.
  $}

  ${
    $( An independent set of vectors is independent as a family.  (Contributed
       by Stefan O'Rear, 24-Feb-2015.) $)
    linds2 $p |- ( X e. ( LIndS ` W ) -> ( _I |` X ) LIndF W ) $=
      ( clinds cfv wcel cbs wss cid cres clindf wbr cdm elfvdm eqid islinds syl
      wa wb ibi simprd ) BACDEZBAFDZGZHBIAJKZUAUCUDQZUAACLZEUAUERBACMUBUFABUBNO
      PST $.
  $}

  ${
    $d B f w $.  $d F f k w x $.  $d K f w $.  $d N f k w $.  $d .x. f w $.
    $d W f k w x $.  $d .0. f k w $.  $d f s $.  $d k s $.  $d s w x $.
    islindf.b $e |- B = ( Base ` W ) $.
    islindf.v $e |- .x. = ( .s ` W ) $.
    islindf.k $e |- K = ( LSpan ` W ) $.
    islindf.s $e |- S = ( Scalar ` W ) $.
    islindf.n $e |- N = ( Base ` S ) $.
    islindf.z $e |- .0. = ( 0g ` S ) $.
    $( Property of an independent family of vectors.  (Contributed by Stefan
       O'Rear, 24-Feb-2015.) $)
    islindf $p |- ( ( W e. Y /\ F e. X ) -> ( F LIndF W <->
          ( F : dom F --> B /\ A. x e. dom F A. k e. ( N \ { .0. } )
                -. ( k .x. ( F ` x ) ) e.
                    ( K ` ( F " ( dom F \ { x } ) ) ) ) ) ) $=
      ( cfv wceq vf vw vs wcel clindf wbr cdm wf cv co csn cdif cima wn wral wa
      wb cbs cvsca clspn csca wsbc feq1 adantr dmeq fveq2 syl6eqr adantl feq23d
      c0g bitrd fvex sneqd difeq12d raleqdv ralbidv sbcie fveq2d eqidd oveq123d
      fveq1 imaeq1 difeq1d imaeq2d eqtrd fveq12d eleq12d notbid syl5bb df-lindf
      raleqbidv anbi12d brabga ancoms ) FJUDIKUDFIUEUFFUGZBFUHZEUIZAUIZFSZDUJZF
      WOWRUKZULZUMZGSZUDZUNZEHLUKZULZUOZAWOUOZUPZUQUAUIZUGZUBUIZURSZXLUHZWQWRXL
      SZXNUSSZUJZXLXMXAULZUMZXNUTSZSZUDZUNZEUCUIZURSZYFVJSZUKZULZUOZAXMUOZUCXNV
      ASZVBZUPXKUAUBFIUEJKXLFTZXNITZUPZXPWPYNXJYQXPXMXOFUHZWPYOXPYRUQYPXMXOXLFV
      CVDYQXMXOWOBFYOXMWOTYPXLFVEZVDZYPXOBTYOYPXOIURSBXNIURVFMVGVHVIVKYNYEEYMUR
      SZYMVJSZUKZULZUOZAXMUOZYQXJYLUUFUCYMXNVAVLYFYMTZYKUUEAXMUUGYEEYJUUDUUGYGU
      UAYIUUCYFYMURVFUUGYHUUBYFYMVJVFVMVNVOVPVQYQUUEXIAXMWOYTYQYEXFEUUDXHYPUUDX
      HTYOYPUUAHUUCXGYPUUACURSHYPYMCURYPYMIVASCXNIVAVFPVGZVRQVGYPUUBLYPUUBCVJSL
      YPYMCVJUUHVRRVGVMVNVHYQYDXEYQXSWTYCXDYQWQWQXQWSXRDYPXRDTYOYPXRIUSSDXNIUSV
      FNVGVHYQWQVSYOXQWSTYPWRXLFWAVDVTYQYAXCYBGYPYBGTYOYPYBIUTSGXNIUTVFOVGVHYOY
      AXCTYPYOYAFXTUMXCXLFXTWBYOXTXBFYOXMWOXAYSWCWDWEVDWFWGWHWKWKWIWLAUBUAEUCWJ
      WMWN $.

    $( Expanded property of an independent set of vectors.  (Contributed by
       Stefan O'Rear, 24-Feb-2015.) $)
    islinds2 $p |- ( W e. Y -> ( F e. ( LIndS ` W ) <->
          ( F C_ B /\ A. x e. F A. k e. ( N \ { .0. } )
                -. ( k .x. x ) e. ( K ` ( F \ { x } ) ) ) ) ) $=
      ( wcel cfv wa clinds wss cid cres clindf wbr cdm wf cv csn cdif cima wral
      co wn islinds cvv cbs fvex eqeltri ssex adantl resiexg syl islindf syldan
      wb pm5.32da wf1o f1oi f1of ax-mp dmresi feq2i mpbir mpan biantrurd raleqi
      fss fvresi oveq2d wceq difeq1i imaeq2i difss resiima eqtri fveq2i eleq12d
      a1i notbid ralbidv ralbiia bitri anbi2i syl6rbbr pm5.32i 3bitrd ) IJRZFIU
      ASRFBUBZUCFUDZIUEUFZTWTXAUGZBXAUHZEUIZAUIZXASZDUNZXAXCXFUJZUKZULZGSZRZUOZ
      EHKUJUKZUMZAXCUMZTZTZWTXEXFDUNZFXIUKZGSZRZUOZEXOUMZAFUMZTZBJIFLUPWSWTXBXR
      WSWTXAUQRZXBXRVGWSWTTFUQRZYHWTYIWSFBBIURSUQLIURUSUTVAVBFUQVCVDABCDEXAGHIU
      QJKLMNOPQVEVFVHXSYGVGWSWTXRYFWTYFXDYFTXRWTXDYFXCFXAUHZWTXDYJFFXAUHZFFXAVI
      YKFVJFFXAVKVLXCFFXAFVMZVNVOXCFBXAVSVPVQXQYFXDXQXPAFUMYFXPAXCFYLVRXPYEAFXF
      FRZXNYDEXOYMXMYCYMXHXTXLYBYMXGXFXEDFXFVTWAXLYBWBYMXKYAGXKXAYAULZYAXJYAXAX
      CFXIYLWCWDYAFUBYNYAWBFXIWEFYAWFVLWGWHWJWIWKWLWMWNWOWPWQWJWR $.

    $d B k $.  $d B x $.  $d I k $.  $d I x $.  $d X k $.  $d X x $.  $d Y k $.
    $d Y x $.
    $( Property of an independent family of vectors with prior constrained
       domain and codomain.  (Contributed by Stefan O'Rear, 26-Feb-2015.) $)
    islindf2 $p |- ( ( W e. Y /\ I e. X /\ F : I --> B ) -> ( F LIndF W <->
          A. x e. I A. k e. ( N \ { .0. } ) -. ( k .x. ( F ` x ) ) e.
                  ( K ` ( F " ( I \ { x } ) ) ) ) ) $=
      ( wcel wf w3a clindf wbr cdm cv cfv co csn cdif cima wn wral wa cvv simp1
      wb simp3 simp2 fex syl2anc islindf wss ffdm simpld 3ad2ant3 biantrurd fdm
      wceq difeq1d imaeq2d fveq2d eleq2d notbid ralbidv raleqbidv 3bitr2d ) JLT
      ZGKTZGBFUAZUBZFJUCUDZFUEZBFUAZEUFAUFZFUGDUHZFWCWEUIZUJZUKZHUGZTZULZEIMUIU
      JZUMZAWCUMZUNZWOWFFGWGUJZUKZHUGZTZULZEWMUMZAGUMWAVRFUOTZWBWPUQVRVSVTUPWAV
      TVSXCVRVSVTURVRVSVTUSGBKFUTVAABCDEFHIJUOLMNOPQRSVBVAWAWDWOVTVRWDVSVTWDWCG
      VCGBFVDVEVFVGWAWNXBAWCGVTVRWCGVIVSGBFVHVFZWAWLXAEWMWAWKWTWAWJWSWFWAWIWRHW
      AWHWQFWAWCGWGXDVJVKVLVMVNVOVPVQ $.
  $}

  ${
    $d F k x $.  $d W k x $.
    lindff.b $e |- B = ( Base ` W ) $.
    $( Functional property of a linearly independent family.  (Contributed by
       Stefan O'Rear, 24-Feb-2015.) $)
    lindff $p |- ( ( F LIndF W /\ W e. Y ) -> F : dom F --> B ) $=
      ( vk vx clindf wbr wcel wa cdm wf cv cfv csn cdif wral cvv eqid cima csca
      cvsca co clspn wn cbs c0g simpl wb rellindf brrelexi islindf sylan2 mpbid
      ancoms simpld ) BCHIZCDJZKZBLZABMZFNGNZBOCUCOZUDBVAVCPQUACUEOZOJUFFCUBOZU
      GOZVFUHOZPQRGVARZUTURVBVIKZURUSUIUSURURVJUJZURUSBSJVKBCHUKULGAVFVDFBVEVGC
      SDVHEVDTVETVFTVGTVHTUMUNUPUOUQ $.
  $}

  ${
    $d a A $.  $d a e E $.  $d a e F $.  $d a e K $.  $d a e N $.  $d a e W $.
    $d a e .0. $.  $d a e .x. $.
    lindfind.s $e |- .x. = ( .s ` W ) $.
    lindfind.n $e |- N = ( LSpan ` W ) $.
    lindfind.l $e |- L = ( Scalar ` W ) $.
    lindfind.z $e |- .0. = ( 0g ` L ) $.
    lindfind.k $e |- K = ( Base ` L ) $.
    $( A linearly independent family is independent: no nonzero element
       multiple can be expressed as a linear combination of the others.
       (Contributed by Stefan O'Rear, 24-Feb-2015.) $)
    lindfind $p |- ( ( ( F LIndF W /\ E e. dom F ) /\
          ( A e. K /\ A =/= .0. ) ) -> -. ( A .x. ( F ` E ) ) e.
            ( N ` ( F " ( dom F \ { E } ) ) ) ) $=
      ( va ve wcel wa cfv cvv clindf wbr cdm wne cdif cv co cima wn wral simplr
      csn eldifsn biimpri adantl cbs wf csca elbasfv ad2antrl rellindf brrelexi
      simpll wb ad2antrr eqid islindf syl2anc mpbid simprd fveq2 oveq2d difeq2d
      wceq sneq imaeq2d fveq2d eleq12d notbid oveq1 eleq1d rspc2va syl21anc ) D
      HUAUBZCDUCZQZRZAEQZAIUDZRZRZWFAEIULUEZQZOUFZPUFZDSZBUGZDWEWOULZUEZUHZGSZQ
      ZUIZOWLUJPWEUJZACDSZBUGZDWECULZUEZUHZGSZQZUIZWDWFWJUKWJWMWGWMWJAEIUMUNUOW
      KWEHUPSZDUQZXDWKWDXNXDRZWDWFWJVCWKHTQZDTQZWDXOVDWHXPWGWIEFURAHLNUSUTWDXQW
      FWJDHUAVAVBVEPXMFBODGEHTTIXMVFJKLNMVGVHVIVJXCXLWNXEBUGZXJQZUIPOCAWEWLWOCV
      NZXBXSXTWQXRXAXJXTWPXEWNBWOCDVKVLXTWTXIGXTWSXHDXTWRXGWEWOCVOVMVPVQVRVSWNA
      VNZXSXKYAXRXFXJWNAXEBVTWAVSWBWC $.

    $( A linearly independent set is independent: no nonzero element multiple
       can be expressed as a linear combination of the others.  (Contributed by
       Stefan O'Rear, 24-Feb-2015.) $)
    lindsind $p |- ( ( ( F e. ( LIndS ` W ) /\ E e. F ) /\
      ( A e. K /\ A =/= .0. ) ) -> -. ( A .x. E ) e. ( N ` ( F \ { E } ) ) ) $=
      ( va ve clinds cfv wcel wa wne csn cdif cv co wral simplr eldifsn biimpri
      wn adantl cbs wss cdm wb elfvdm eqid islinds2 syl ibi ad2antrr wceq oveq2
      simprd sneq difeq2d fveq2d eleq12d notbid oveq1 eleq1d rspc2va syl21anc )
      DHQRSZCDSZTZAESAIUATZTVOAEIUBUCZSZOUDZPUDZBUEZDWAUBZUCZGRZSZUJZOVRUFPDUFZ
      ACBUEZDCUBZUCZGRZSZUJZVNVOVQUGVQVSVPVSVQAEIUHUIUKVNWHVOVQVNDHULRZUMZWHVNW
      PWHTZVNHQUNZSVNWQUODHQUPPWOFBODGEHWRIWOUQJKLNMURUSUTVDVAWGWNVTCBUEZWLSZUJ
      POCADVRWACVBZWFWTXAWBWSWEWLWACVTBVCXAWDWKGXAWCWJDWACVEVFVGVHVIVTAVBZWTWMX
      BWSWIWLVTACBVJVKVIVLVM $.
  $}

  ${
    lindfind2.k $e |- K = ( LSpan ` W ) $.
    lindfind2.l $e |- L = ( Scalar ` W ) $.
    $( In a linearly independent family in a module over a nonzero ring, no
       element is contained in the span of any non-containing set.
       (Contributed by Stefan O'Rear, 24-Feb-2015.) $)
    lindfind2 $p |- ( ( ( W e. LMod /\ L e. NzRing ) /\
          F LIndF W /\ E e. dom F ) -> -. ( F ` E ) e.
            ( K ` ( F " ( dom F \ { E } ) ) ) ) $=
      ( clmod wcel cnzr wa clindf wbr cdm cfv cbs eqid syl2anc adantl 3ad2ant1
      w3a cur cvsca co csn cdif cima wceq simp1l wf simp2 lindff simp3 ffvelrnd
      lmodvs1 c0g wne wn crg nzrring ringidcl nzrnz lindfind syl22anc eqneltrrd
      syl ) EHIZDJIZKZBELMZABNZIZUAZDUBOZABOZEUCOZUDZVOBVKAUEUFUGCOZVMVGVOEPOZI
      VQVOUHVGVHVJVLUIZVMVKVSABVMVJVGVKVSBUJVIVJVLUKZVTVSBEHVSQZULRVIVJVLUMZUNV
      PVNDVSEVOWBGVPQZVNQZUORVMVJVLVNDPOZIZVNDUPOZUQZVQVRIURWAWCVIVJWGVLVHWGVGV
      HDUSIWGDUTWFDVNWFQZWEVAVFSTVIVJWIVLVHWIVGDVNWHWEWHQZVBSTVNVPABWFDCEWHWDFG
      WKWJVCVDVE $.

    $( In a linearly independent set in a module over a nonzero ring, no
       element is contained in the span of any non-containing set.
       (Contributed by Stefan O'Rear, 24-Feb-2015.) $)
    lindsind2 $p |- ( ( ( W e. LMod /\ L e. NzRing ) /\
          F e. ( LIndS ` W ) /\ E e. F ) -> -. E e. ( K ` ( F \ { E } ) ) ) $=
      ( clmod wcel cnzr wa clinds cfv w3a cid cres cdif cima 3ad2ant3 wceq cdm
      csn clindf wbr wn linds2 3ad2ant2 dmresi eleq2i biimpri lindfind2 syl3anc
      simp1 fvresi difeq1i imaeq2i wss difss resiima ax-mp eqtri fveq2i eleq12d
      wb a1i mtbid ) EHIDJIKZBELMIZABIZNZAOBPZMZVKVKUAZAUBZQZRZCMZIZABVNQZCMZIZ
      VJVGVKEUCUDZAVMIZVRUEVGVHVIUMVHVGWBVIEBUFUGVIVGWCVHWCVIVMBABUHZUIUJSAVKCD
      EFGUKULVIVGVRWAVDVHVIVLAVQVTBAUNVQVTTVIVPVSCVPVKVSRZVSVOVSVKVMBVNWDUOUPVS
      BUQWEVSTBVNURBVSUSUTVAVBVEVCSVF $.
  $}

  ${
    $d F x y $.  $d L x y $.  $d W x y $.
    lindff1.b $e |- B = ( Base ` W ) $.
    lindff1.l $e |- L = ( Scalar ` W ) $.
    $( A linearly independent family over a nonzero ring has no repeated
       elements.  (Contributed by Stefan O'Rear, 24-Feb-2015.) $)
    lindff1 $p |- ( ( W e. LMod /\ L e. NzRing /\ F LIndF W ) ->
        F : dom F -1-1-> B ) $=
      ( vx vy clmod wcel cnzr cv cfv wral syl2anc wa wne wss syl adantr wbr w3a
      clindf cdm wf wceq weq wi wf1 simp3 simp1 lindff csn cdif clspn wn simpl1
      cima crn imassrn frn syl5ss eqid lspssid wfun simprll jca eldifsn biimpri
      ffun adantlr adantl sylc sseldd simpl2 simpl3 simprlr lindfind2 syl211anc
      funfvima nelne2 expr necon4d ralrimivva dff13 sylanbrc ) DIJZCKJZBDUCUAZU
      BZBUDZABUEZGLZBMZHLZBMZUFGHUGUHZHWKNGWKNWKABUIWJWIWGWLWGWHWIUJWGWHWIUKABD
      IEULOZWJWQGHWKWKWJWMWKJZWOWKJZPZPWMWOWNWPWJXAWMWOQZWNWPQZWJXAXBPZPZWNBWKW
      OUMUNZURZDUOMZMZJWPXIJUPZXCXEXGXIWNXEWGXGARZXGXIRWGWHWIXDUQZWJXKXDWJXGBUS
      ZABXFUTWJWLXMARWRWKABVASVBTXGXHADEXHVCZVDOXEBVEZWSPWMXFJZWNXGJXEXOWSWJXOX
      DWJWLXOWRWKABVJSTWJWSWTXBVFVGXDXPWJWSXBXPWTXPWSXBPWMWKWOVHVIVKVLXFWMBVTVM
      VNXEWGWHWIWTXJXLWGWHWIXDVOWGWHWIXDVPWJWSWTXBVQWOBXHCDXNFVRVSWNWPXIWAOWBWC
      WDGHWKABWEWF $.
  $}

  ${
    $d F k x y $.  $d W k x y $.
    $( The range of an independent family is an independent set.  (Contributed
       by Stefan O'Rear, 24-Feb-2015.) $)
    lindfrn $p |- ( ( W e. LMod /\ F LIndF W ) -> ran F e. ( LIndS ` W ) ) $=
      ( vk vx vy clmod wcel wa cfv wss cv csn cdif wn wral eqid syl adantr wne
      wb clindf wbr crn clinds cbs cvsca co clspn csca c0g cdm wf lindff ancoms
      frn cima simpll imassrn syl5ss wfun ffun eldifsn wceq wrex wi wfn fvelrnb
      funfn sylbi difss jctr ad2antrr simpl fveq2 necon3i adantl funfvima2 sylc
      sylanbrc expr neeq1 eleq1 imbi12d syl5ibcom rexlimdva sylbid syl5bi ssrdv
      impd sylan lspss syl3anc adantrr simplr simprl ad2antll eldifsni lindfind
      eldifi syl22anc ssneldd ralrimivva sylib oveq2 sneq difeq2d fveq2d notbid
      eleq12d ralbidv ralrn mpbird islinds2 mpbir2and ) BFGZABUAUBZHZAUCZBUDIGZ
      XRBUEIZJZCKZDKZBUFIZUGZXRYCLZMZBUHIZIZGZNZCBUIIZUEIZYLUJIZLZMZOZDXROZXQAU
      KZXTAULZYAXPXOYTXTABFXTPZUMUNZYSXTAUOQZXQYRYBEKZAIZYDUGZXRUUELZMZYHIZGZNZ
      CYPOZEYSOZXQUUKECYSYPXQUUDYSGZYBYPGZHZHZUUIAYSUUDLZMZUPZYHIZUUFXQUUNUUIUV
      AJZUUOXQUUNHXOUUTXTJZUUHUUTJZUVBXOXPUUNUQXQUVCUUNXQUUTXRXTAUUSURUUCUSRXQA
      UTZUUNUVDXQYTUVEUUBYSXTAVAQZUVEUUNHZDUUHUUTYCUUHGYCXRGZYCUUESZHUVGYCUUTGZ
      YCXRUUEVBUVGUVHUVIUVJUVGUVHYBAIZYCVCZCYSVDZUVIUVJVEZUVEUVHUVMTZUUNUVEAYSV
      FZUVOAVHZCYSYCAVGVIRUVGUVLUVNCYSUVGYBYSGZHUVKUUESZUVKUUTGZVEUVLUVNUVGUVRU
      VSUVTUVGUVRUVSHZHUVEUUSYSJZHZYBUUSGZUVTUVEUWCUUNUWAUVEUWBYSUURVJVKVLUWAUW
      DUVGUWAUVRYBUUDSZUWDUVRUVSVMUVSUWEUVRYBUUDUVKUUEYBUUDAVNVOVPYBYSUUDVBVSVP
      UUSYBAVQVRVTUVLUVSUVIUVTUVJUVKYCUUEWAUVKYCUUTWBWCWDWEWFWIWGWHWJUUHUUTYHXT
      BUUAYHPZWKWLWMUUQXPUUNYBYMGZYBYNSZUUFUVAGNXOXPUUPWNXQUUNUUOWOUUOUWGXQUUNY
      BYMYOWSWPUUOUWHXQUUNYBYMYNWQWPYBYDUUDAYMYLYHBYNYDPZUWFYLPZYNPZYMPZWRWTXAX
      BXQUVPYRUUMTXQUVEUVPUVFUVQXCYQUULDEYSAYCUUEVCZYKUUKCYPUWMYJUUJUWMYEUUFYIU
      UIYCUUEYBYDXDUWMYGUUHYHUWMYFUUGXRYCUUEXEXFXGXIXHXJXKQXLXOXSYAYRHTXPDXTYLY
      DCXRYHYMBFYNUUAUWIUWFUWJUWLUWKXMRXN $.
  $}

  ${
    $d F k x $.  $d G k x $.  $d K k x $.  $d W k x $.
    $( Rearranging and deleting elements from an independent family gives an
       independent family.  (Contributed by Stefan O'Rear, 24-Feb-2015.) $)
    f1lindf $p |- ( ( W e. LMod /\ F LIndF W /\ G : K -1-1-> dom F ) ->
        ( F o. G ) LIndF W ) $=
      ( vk vx clmod wcel cfv wf cdif cima eqid syl2anc wss syl adantr wceq cvv
      wa clindf wbr cdm wf1 w3a ccom cbs cv cvsca co csn clspn wn csca c0g wral
      lindff ancoms 3adant3 f1f 3ad2ant3 fco ffdm simpld simpl2 eleq2d ffvelrnd
      wne fdm biimpa adantrr eldifi ad2antll eldifsni lindfind syl22anc wi f1fn
      wfn fvco2 oveq2d eleq1d simpl1 crn imassrn frn imaco difeq1d imaeq2d ccnv
      syl5ss wfun df-f1 simprbi imadif eqtrd fnsnfv sylan difeq2d ssdifd imass2
      eqsstr3d eqsstrd syl5eqss lspss syl3anc syldan sseld sylbid ralrimivva wb
      simp1 rellindf brrelexi 3ad2ant2 simp3 dmexg f1dmex fex islindf mpbir2and
      mtod coexg ) DGHZADUAUBZCAUCZBUDZUEZABUFZDUAUBZYIUCZDUGIZYIJZEUHZFUHZYIIZ
      DUIIZUJZYIYKYOUKZKZLZDULIZIZHZUMZEDUNIZUGIZUUFUOIZUKZKZUPFYKUPZYHCYLYIJZY
      MYHYFYLAJZCYFBJZUULYDYEUUMYGYEYDUUMYLADGYLMZUQURUSZYGYDUUNYECYFBUTVAZCYFY
      LABVBNZUULYMYKCOCYLYIVCVDPYHUUEFEYKUUJYHYOYKHZYNUUJHZTZTZUUDYNYOBIZAIZYQU
      JZAYFUVCUKZKZLZUUBIZHZUVBYEUVCYFHZYNUUGHZYNUUHVHZUVJUMYDYEYGUVAVEYHUUSUVK
      UUTYHUUSTZCYFYOBYHUUNUUSUUQQYHUUSYOCHZYHYKCYOYHUULYKCRUURCYLYIVIPZVFVJZVG
      VKUUTUVLYHUUSYNUUGUUIVLVMUUTUVMYHUUSYNUUGUUHVNVMYNYQUVCAUUGUUFUUBDUUHYQMZ
      UUBMZUUFMZUUHMZUUGMZVOVPYHUUSUUDUVJVQUUTUVNUUDUVEUUCHUVJUVNYRUVEUUCUVNYPU
      VDYNYQUVNBCVSZUVOYPUVDRYHUWCUUSYGYDUWCYECYFBVRVAZQUVQCABYOVTNWAWBUVNUUCUV
      IUVEYHUUSUVOUUCUVIOZUVQYHUVOTZYDUVHYLOZUUAUVHOUWEYDYEYGUVOWCYHUWGUVOYHUVH
      AWDZYLAUVGWEYHUUMUWHYLOUUPYFYLAWFPWKQUWFUUAABYTLZLZUVHABYTWGUWFUWIUVGOUWJ
      UVHOUWFUWIBCLZBYSLZKZUVGYHUWIUWMRUVOYHUWIBCYSKZLZUWMYHYTUWNBYHYKCYSUVPWHW
      IYHBWJWLZUWOUWMRYGYDUWPYEYGUUNUWPCYFBWMWNVACYSBWOPWPQUWFUWMUWKUVFKUVGUWFU
      VFUWLUWKYHUWCUVOUVFUWLRUWDCYOBWQWRWSUWFUWKYFUVFUWFUWKBWDZYFBCWEUWFUUNUWQY
      FOYHUUNUVOUUQQCYFBWFPWKWTXBXCUWIUVGAXAPXDUUAUVHUUBYLDUUOUVSXEXFXGXHXIVKYB
      XJYHYDYISHZYJYMUUKTXKYDYEYGXLYHASHZBSHZUWRYEYDUWSYGADUAXMXNXOZYHUUNCSHZUW
      TUUQYHYGYFSHZUXBYDYEYGXPYHUWSUXCUXAASXQPCYFSBXRNCYFSBXSNABSSYCNFYLUUFYQEY
      IUUBUUGDSGUUHUUOUVRUVSUVTUWBUWAXTNYA $.
  $}

  $( Any restriction of an independent family is independent.  (Contributed by
     Stefan O'Rear, 24-Feb-2015.) $)
  lindfres $p |- ( ( W e. LMod /\ F LIndF W ) -> ( F |` X ) LIndF W ) $=
    ( clmod wcel clindf wbr wa cres cid cdm ccom coires1 resdmres eqtri wf1 wss
    wf1o f1oi ax-mp f1of1 resss dmss f1ss mp2an f1lindf mp3an3 syl5eqbrr ) BDEZ
    ABFGZHACIZAJUKKZIZLZBFUNAULIUKAULMACNOUIUJULAKZUMPZUNBFGULULUMPZULUOQZUPULU
    LUMRUQULSULULUMUATUKAQURACUBUKAUCTULULUOUMUDUEAUMULBUFUGUH $.

  $( Any subset of an independent set is independent.  (Contributed by Stefan
     O'Rear, 24-Feb-2015.) $)
  lindsss $p |- ( ( W e. LMod /\ F e. ( LIndS ` W ) /\ G C_ F ) ->
      G e. ( LIndS ` W ) ) $=
    ( clmod wcel clinds cfv wss w3a cbs cid cres clindf wbr linds1 adantl sstr2
    wa eqid wb syl5com 3impia linds2 3ad2ant2 lindfres syl2anc resabs1 3ad2ant3
    simp1 breq1d mpbid islinds 3ad2ant1 mpbir2and ) CDEZACFGZEZBAHZIZBUPEZBCJGZ
    HZKBLZCMNZUOUQURVBUOUQRAVAHZURVBUQVEUOVACAVASZOPBAVAQUAUBUSKALZBLZCMNZVDUSU
    OVGCMNZVIUOUQURUIUQUOVJURCAUCUDVGCBUEUFURUOVIVDTUQURVHVCCMKBAUGUJUHUKUOUQUT
    VBVDRTURVADCBVFULUMUN $.

  $( A family constructed from non-repeated elements of an independent set is
     independent.  (Contributed by Stefan O'Rear, 26-Feb-2015.) $)
  f1linds $p |- ( ( W e. LMod /\ S e. ( LIndS ` W ) /\ F : D -1-1-> S ) ->
      F LIndF W ) $=
    ( clmod wcel clinds cfv wf1 w3a cid cres ccom clindf wceq wf fcoi2 3ad2ant3
    f1f wbr syl cdm simp1 linds2 3ad2ant2 wb dmresi f1eq3 ax-mp biimpri f1lindf
    syl3anc eqbrtrrd ) DEFZBDGHFZABCIZJZKBLZCMZCDNUPUNUSCOZUOUPABCPUTABCSABCQUA
    RUQUNURDNTZAURUBZCIZUSDNTUNUOUPUCUOUNVAUPDBUDUEUPUNVCUOVCUPVBBOVCUPUFBUGVBB
    ACUHUIUJRURCADUKULUM $.

  ${
    islindf3.l $e |- L = ( Scalar ` W ) $.
    $( In a nonzero ring, independent families can be equivalently
       characterized as renamings of independent sets.  (Contributed by Stefan
       O'Rear, 26-Feb-2015.) $)
    islindf3 $p |- ( ( W e. LMod /\ L e. NzRing ) -> ( F LIndF W <->
          ( F : dom F -1-1-> _V /\ ran F e. ( LIndS ` W ) ) ) ) $=
      ( wcel cnzr wa clindf wbr cdm cvv wf1 crn clinds cfv cbs wss eqid lindff1
      clmod 3expa ssv f1ss sylancl lindfrn adantlr jca simpll simprr wf1o f1of1
      f1f1orn syl ad2antrl f1linds syl3anc impbida ) CTEZBFEZGZACHIZAJZKALZAMZC
      NOEZGZUTVAGZVCVEVGVBCPOZALZVHKQVCURUSVAVIVHABCVHRDSUAVHUBVBVHKAUCUDURVAVE
      USACUEUFUGUTVFGURVEVBVDALZVAURUSVFUHUTVCVEUIVCVJUTVEVCVBVDAUJVJVBKAULVBVD
      AUKUMUNVBVDACUOUPUQ $.
  $}

  ${
    $d B k x $.  $d C k x $.  $d F k x $.  $d G k x $.  $d I k x $.
    $d S k x $.  $d T k x $.
    lindfmm.b $e |- B = ( Base ` S ) $.
    lindfmm.c $e |- C = ( Base ` T ) $.
    $( Linear independence of a family is unchanged by injective linear
       functions.  (Contributed by Stefan O'Rear, 26-Feb-2015.)  (Revised by
       Stefan O'Rear, 6-May-2015.) $)
    lindfmm $p |- ( ( G e. ( S LMHom T ) /\ G : B -1-1-> C /\ F : I --> B ) ->
        ( F LIndF S <-> ( G o. F ) LIndF T ) ) $=
      ( vk vx co wcel cvv wb wa cfv wral eqid syl3anc clmhm wf1 w3a clindf ccom
      wf wbr rellindf brrelexi simp3 dmfex syl2anr ex f1f fco sylan wi cv cvsca
      3adant1 csn cdif cima clspn wn cbs c0g eldifi wss simpllr clmod lmhmlmod1
      csca ad3antrrr simprr simprl simpl ffvelrn syl2an lmodvscl imassrn adantr
      crn frn syl5ss ad2antlr syl2anc f1elima wceq simplll lmhmlin wfn ad2antrl
      lspssv ffn fvco2 oveq2d eqtr4d lmhmlsp imaco fveq2i syl6eqr bitr3d notbid
      eleq12d anassrs sylan2 ralbidva lmhmsca fveq2d difeq12d ad2antrr islindf2
      sneqd raleqdv bitr4d lmhmlmod2 ad2ant2lr 3bitr4d exp32 3impia pm5.21ndd )
      FCDUALMZABFUBZGAEUFZUCZGNMZECUDUGZFEUEZDUDUGZYFYHYGYHENMYEYGYFECUDUHUIYCY
      DYEUJGANEUKULUMYFYJYGYJYINMGBYIUFZYGYFYIDUDUHUIYDYEYKYCYDABFUFYEYKABFUNGA
      BFEUOUPZUTGBNYIUKULUMYCYDYEYGYHYJOZUQYCYDPZYEYGYMYNYEYGPZPZJURZKURZEQZCUS
      QZLZEGYRVAVBZVCZCVDQZQZMZVEZJCVMQZVFQZUUHVGQZVAZVBZRZKGRZYQYRYIQZDUSQZLZY
      IUUBVCZDVDQZQZMZVEZJDVMQZVFQZUVCVGQZVAZVBZRZKGRZYHYJYPUUMUVHKGYPYRGMZPZUU
      MUVBJUULRUVHUVKUUGUVBJUULYQUULMUVKYQUUIMZUUGUVBOZYQUUIUUKVHYPUVJUVLUVMYPU
      VJUVLPZPZUUFUVAUVOUUAFQZFUUEVCZMZUUFUVAUVOYDUUAAMZUUEAVIZUVRUUFOYCYDYOUVN
      VJUVOCVKMZUVLYSAMZUVSYCUWAYDYOUVNCDFVLZVNZYPUVJUVLVOZYPYEUVJUWBUVNYNYEYGV
      PZUVJUVLVQZGAYREVRVSZYQYTUUHUUIACYSHUUHSZYTSZUUISZVTTUVOUWAUUCAVIZUVTUWDY
      OUWLYNUVNYOUUCEWCZAEUUBWAYEUWMAVIYGGAEWDWBWEWFZUUCUUDACHUUDSZWNWGABFUUAUU
      EWHTUVOUVPUUQUVQUUTUVOUVPYQYSFQZUUPLZUUQUVOYCUVLUWBUVPUWQWIYCYDYOUVNWJZUW
      EUWHUUICDYTUUPAFUUHYQYSUWIUWKHUWJUUPSZWKTUVOUUOUWPYQUUPYPEGWLZUVJUUOUWPWI
      UVNYEUWTYNYGGAEWOWMUWGGFEYRWPVSWQWRUVOUVQFUUCVCZUUSQZUUTUVOYCUWLUVQUXBWIU
      WRUWNCDUUCFUUDUUSAHUWOUUSSZWSWGUURUXAUUSFEUUBWTXAXBXEXCXDXFXGXHUVKUVBJUVG
      UULYCUVGUULWIYDYOUVJYCUVDUUIUVFUUKYCUVCUUHVFCDFUUHUVCUWIUVCSZXIZXJYCUVEUU
      JYCUVCUUHVGUXEXJXNXKVNXOXPXHYPUWAYGYEYHUUNOYCUWAYDYOUWCXLYNYEYGVOZUWFKAUU
      HYTJEGUUDUUICNVKUUJHUWJUWOUWIUWKUUJSXMTYPDVKMZYGYKYJUVIOYCUXGYDYOCDFXQXLU
      XFYDYEYKYCYGYLXRKBUVCUUPJYIGUUSUVDDNVKUVEIUWSUXCUXDUVDSUVESXMTXSXTYAYB $.

    $( Linear independence of a set is unchanged by injective linear functions.
       (Contributed by Stefan O'Rear, 26-Feb-2015.) $)
    lindsmm $p |- ( ( G e. ( S LMHom T ) /\ G : B -1-1-> C /\ F C_ B ) ->
        ( F e. ( LIndS ` S ) <-> ( G " F ) e. ( LIndS ` T ) ) ) $=
      ( wcel wf1 cres clindf wbr wa clinds cfv wb wf wf1o clmod co wss w3a ccom
      clmhm cid cima ibar 3ad2ant3 f1oi f1of ax-mp fss sylancr lindfmm syld3an3
      simp3 bitr3d lmhmlmod1 3ad2ant1 islinds syl lmhmlmod2 adantr simpr f1ores
      f1of1 3adant1 f1linds syl3anc crn df-ima lindfrn syl5eqel impbida coires1
      sylan breq1i syl6bbr 3bitr4d ) FCDUEUAIZABFJZEAUBZUCZWCUFEKZCLMZNZFWEUDZD
      LMZECOPIZFEUGZDOPZIZWDWFWGWIWCWAWFWGQWBWCWFUHUIWAWBWCEAWERZWFWIQWDEEWERZW
      CWNEEWESWOEUJEEWEUKULWAWBWCUQEEAWEUMUNABCDWEFEGHUOUPURWDCTIZWJWGQWAWBWPWC
      CDFUSUTATCEGVAVBWDWMFEKZDLMZWIWDWMWRWDWMNDTIZWMEWKWQJZWRWDWSWMWAWBWSWCCDF
      VCUTZVDWDWMVEWDWTWMWBWCWTWAWBWCNEWKWQSWTABEFVFEWKWQVGVBVHVDEWKWQDVIVJWDWR
      NWKWQVKZWLFEVLWDWSWRXBWLIXAWQDVMVQVNVOWHWQDLFEVPVRVSVT $.

    $( The monomorphic image of an independent set is independent.
       (Contributed by Stefan O'Rear, 26-Feb-2015.) $)
    lindsmm2 $p |- ( ( G e. ( S LMHom T ) /\ G : B -1-1-> C /\
          F e. ( LIndS ` S ) ) -> ( G " F ) e. ( LIndS ` T ) ) $=
      ( clmhm co wcel wf1 clinds cfv w3a cima simp3 wss wb linds1 lindsmm mpbid
      syl3an3 ) FCDIJKZABFLZECMNKZOUFFEPDMNKZUDUEUFQUFUDUEEARUFUGSACEGTABCDEFGH
      UAUCUB $.
  $}

  ${
    $d F k x $.  $d S k x $.  $d U k x $.  $d W k x $.  $d X k x $.
    lsslindf.u $e |- U = ( LSubSp ` W ) $.
    lsslindf.x $e |- X = ( W |`s S ) $.
    $( Linear independence is unchanged by working in a subspace.  (Contributed
       by Stefan O'Rear, 24-Feb-2015.)  (Revised by Stefan O'Rear,
       6-May-2015.) $)
    lsslindf $p |- ( ( W e. LMod /\ S e. U /\ ran F C_ S ) ->
        ( F LIndF X <-> F LIndF W ) ) $=
      ( vk vx wcel wss cvv clindf wb wa cbs cfv wral eqid wceq clmod crn w3a wi
      wbr rellindf brrelexi a1i cdm wf cv cvsca co csn cdif cima clspn csca c0g
      wn simpr ressbasss fss sylancl wfn ffn adantl simp3 3ad2ant2 ressbas2 syl
      lssss sseqtrd adantr df-f sylanbrc impbida simpl2 resssca eqcomd difeq12d
      fveq2d sneqd ressvsca simpl1 imassrn simpl3 syl5ss lsslsp syl3anc eleq12d
      oveqd notbid raleqbidv ralbidv anbi12d cress ovex eqeltri sylan 3ad2antl1
      islindf 3bitr4d ex pm5.21ndd ) DUAJZABJZCUBZAKZUCZCLJZCEMUEZCDMUEZXLXKUDX
      JCEMUFUGUHXMXKUDXJCDMUFUGUHXJXKXLXMNXJXKOZCUIZEPQZCUJZHUKZIUKZCQZEULQZUMZ
      CXOXSUNUOZUPZEUQQZQZJZUTZHEURQZPQZYIUSQZUNZUOZRZIXORZOZXODPQZCUJZXRXTDULQ
      ZUMZYDDUQQZQZJZUTZHDURQZPQZUUEUSQZUNZUOZRZIXORZOZXLXMXNXQYRYOUUKXJXQYRNXK
      XJXQYRXJXQOXQXPYQKYRXJXQVAAYQEDGYQSZVBXOXPYQCVCVDXJYROCXOVEZXHXPKZXQYRUUN
      XJXOYQCVFVGXJUUOYRXJXHAXPXFXGXIVHXJAYQKZAXPTXGXFUUPXIBAYQDUUMFVLVIAYQEDGU
      UMVJVKVMVNXOXPCVOVPVQVNXNYNUUJIXOXNYHUUDHYMUUIXNYJUUFYLUUHXNYIUUEPXNXGYIU
      UETXFXGXIXKVRZXGUUEYIAUUEDEBGUUESZVSVTVKZWBXNYKUUGXNYIUUEUSUUSWBWCWAXNYGU
      UCXNYBYTYFUUBXNYAYSXRXTXNXGYAYSTUUQXGYSYAAYSDEBGYSSZWDVTVKWLXNUUBYFXNXFXG
      YDAKUUBYFTXFXGXIXKWEUUQXNYDXHACYCWFXFXGXIXKWGWHAYDBUUAYEDEGUUASZYESZFWIWJ
      VTWKWMWNWOWPXJELJZXKXLYPNUVCXJEDAWQUMLGDAWQWRWSUHIXPYIYAHCYEYJELLYKXPSYAS
      UVBYISYJSYKSXBWTXFXGXKXMUULNXIIYQUUEYSHCUUAUUFDLUAUUGUUMUUTUVAUURUUFSUUGS
      XBXAXCXDXE $.

    $( Linear independence is unchanged by working in a subspace.  (Contributed
       by Stefan O'Rear, 24-Feb-2015.) $)
    lsslinds $p |- ( ( W e. LMod /\ S e. U /\ F C_ S ) ->
        ( F e. ( LIndS ` X ) <-> F e. ( LIndS ` W ) ) ) $=
      ( clmod wcel wss cbs cfv clindf wbr wa clinds eqid 3ad2ant2 wb cvv sseq2d
      w3a cid cres wceq lssss ressbas2 sstr2 mpan9 simpl3 impbida bitr3d rnresi
      syl crn sseq1i lsslindf syl3an3br anbi12d cress ovex eqeltri islinds mp1i
      co 3ad2ant1 3bitr4d ) DHIZABIZCAJZUBZCEKLZJZUCCUDZEMNZOZCDKLZJZVNDMNZOZCE
      PLIZCDPLIZVKVMVRVOVSVKVJVMVRVKAVLCVIVHAVLUEZVJVIAVQJZWCBAVQDVQQZFUFZAVQED
      GWEUGUNRUAVKVJVRVKWDVJVRVIVHWDVJWFRCAVQUHUIVHVIVJVRUJUKULVJVHVIVNUOZAJVOV
      SSWGCACUMUPABVNDEFGUQURUSETIWAVPSVKEDAUTVETGDAUTVAVBVLTECVLQVCVDVHVIWBVTS
      VJVQHDCWEVCVFVG $.
  $}

  ${
    $d K k x $.  $d W k x $.  $d X k x $.
    islbs4.b $e |- B = ( Base ` W ) $.
    islbs4.j $e |- J = ( LBasis ` W ) $.
    islbs4.k $e |- K = ( LSpan ` W ) $.
    $( A basis is an independent spanning set.  This could have been used as
       alternative definition of a basis:
       ` LBasis = ( w e. _V |-> { b e. ~P ( Base `` w ) | ( ( ( LSpan `` w ) `
       ` `` b ) = ( Base `` w ) /\ b e. ( LIndS `` w ) ) } ) ` .  (Contributed
       by Stefan O'Rear, 24-Feb-2015.) $)
    islbs4 $p |- ( X e. J <-> ( X e. ( LIndS ` W ) /\ ( K ` X ) = B ) ) $=
      ( vk vx wcel cvv clinds cfv wa clbs elfvex cv csn eqid wceq eleq2s adantr
      wss cvsca co cdif wn csca cbs c0g wral w3a islbs islinds2 anbi1d syl6rbbr
      3anan32 bitrd pm5.21nii ) EBKZDLKZEDMNKZECNAUAZOZVBEDPNBEDPQGUBVCVBVDEDMQ
      UCVBVAEAUDZVDIRJRZDUENZUFEVGSUGCNKUHIDUINZUJNZVIUKNZSUGULJEULZUMZVEJIEVHV
      IBVJCADLVKFVITZVHTZVJTZGHVKTZUNVBVEVFVLOZVDOVMVBVCVRVDJAVIVHIECVJDLVKFVOH
      VNVPVQUOUPVFVDVLURUQUSUT $.
  $}

  ${
    $d J a $.  $d W a $.
    lbslinds.j $e |- J = ( LBasis ` W ) $.
    $( A basis is independent.  (Contributed by Stefan O'Rear, 24-Feb-2015.) $)
    lbslinds $p |- J C_ ( LIndS ` W ) $=
      ( va clinds cfv cv wcel clspn cbs wceq eqid islbs4 simplbi ssriv ) DABEFZ
      DGZAHQPHQBIFZFBJFZKSARBQSLCRLMNO $.
  $}

  ${
    islinds3.b $e |- B = ( Base ` W ) $.
    islinds3.k $e |- K = ( LSpan ` W ) $.
    islinds3.x $e |- X = ( W |`s ( K ` Y ) ) $.
    islinds3.j $e |- J = ( LBasis ` X ) $.
    $( A subset is linearly independent iff it is a basis of its span.
       (Contributed by Stefan O'Rear, 25-Feb-2015.) $)
    islinds3 $p |- ( W e. LMod -> ( Y e. ( LIndS ` W ) <-> Y e. J ) ) $=
      ( wcel clinds cfv wceq wa wss wi linds1 a1i eqid clmod clspn ressbasss wb
      cbs syl6ss adantr clss simpl lspcl lspssid lsslsp syl3anc lspssv ressbas2
      syl eqtr3d biantrud lsslinds bicomd anbi1d bitrd pm5.21ndd islbs4 syl6bbr
      ex ) DUAKZFDLMKZFELMKZFEUBMZMZEUEMZNZOZFBKVGFAPZVHVNVHVOQVGADFGRSVNVOQVGV
      IVOVMVIFVLAVLEFVLTZRFCMZAEDIGUCUFUGSVGVOVHVNUDVGVOOZVHVHVMOVNVRVMVHVRVQVK
      VLVRVGVQDUHMZKZFVQPZVQVKNVGVOUIZVSFCADGVSTZHUJZFCADGHUKZVQFVSCVJDEIHVJTZW
      CULUMVRVQAPVQVLNFCADGHUNVQAEDIGUOUPUQURVRVHVIVMVRVIVHVRVGVTWAVIVHUDWBWDWE
      VQVSFDEWCIUSUMUTVAVBVFVCVLBVJEFVPJWFVDVE $.
  $}

  ${
    $d J b $.  $d W b x $.  $d Y b x $.
    islinds4.j $e |- J = ( LBasis ` W ) $.
    $( A set is independent in a vector space iff it is a subset of some basis.
       (AC equivalent) (Contributed by Stefan O'Rear, 24-Feb-2015.) $)
    islinds4 $p |- ( W e. LVec ->
        ( Y e. ( LIndS ` W ) <-> E. b e. J Y C_ b ) ) $=
      ( vx clvec wcel clinds cfv cv wss wrex wa cbs eqid ad2antrr simpr syl3anc
      ex csn cdif clspn wn wral simpl linds1 adantl csca cnzr lveclmod lvecdrng
      clmod cdr drngnzr syl simplr lindsind2 syl211anc ralrimiva lbslinds sseli
      lbsext ad2antlr lindsss rexlimdva impbid ) BGHZCBIJZHZCDKZLZDAMZVHVJVMVHV
      JNZVHCBOJZLZFKZCVQUAUBBUCJZJHUDZFCUEVMVHVJUFVJVPVHVOBCVOPZUGUHVNVSFCVNVQC
      HZNBUMHZBUIJZUJHZVJWAVSVHWBVJWABUKZQVHWDVJWAVHWCUNHWDWCBWCPZULWCUOUPQVHVJ
      WAUQVNWARVQCVRWCBVRPZWFURUSUTFCAVRVOBDEVTWGVCSTVHVLVJDAVHVKAHZNZVLVJWIVLN
      WBVKVIHZVLVJVHWBWHVLWEQWHWJVHVLAVIVKABEVAVBVDWIVLRVKCBVESTVFVG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Characterization of free modules
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    lmimlbs.j $e |- J = ( LBasis ` S ) $.
    lmimlbs.k $e |- K = ( LBasis ` T ) $.
    $( The isomorphic image of a basis is a basis.  (Contributed by Stefan
       O'Rear, 26-Feb-2015.) $)
    lmimlbs $p |- ( ( F e. ( S LMIso T ) /\ B e. J ) -> ( F " B ) e. K ) $=
      ( clmim co wcel cima clinds cfv clspn cbs wceq adantr eqid adantl wa wf1o
      clmhm wf1 lmimlmhm lmimf1o f1of1 syl lbslinds sseli syl3anc lbssp imaeq2d
      lindsmm2 wss lbsss lmhmlsp syl2an wfo f1ofo foima 3eqtr3d islbs4 sylanbrc
      3syl ) DBCIJKZAEKZUAZDALZCMNKZVICONZNZCPNZQVIFKVHDBCUCJKZBPNZVMDUDZABMNZK
      ZVJVFVNVGBCDUEZRVFVPVGVFVOVMDUBZVPVOVMBCDVOSZVMSZUFZVOVMDUGUHRVGVRVFEVQAE
      BGUIUJTVOVMBCADWAWBUNUKVHDABONZNZLZDVOLZVLVMVHWEVODVGWEVOQVFAEWDVOBWAGWDS
      ZULTUMVFVNAVOUOWFVLQVGVSAEVOBWAGUPBCADWDVKVOWAWHVKSZUQURVHVTVOVMDUSWGVMQV
      FVTVGWCRVOVMDUTVOVMDVAVEVBVMFVKCVIWBHWIVCVD $.

    $d J b f $.  $d K b f $.  $d S b f $.  $d T b f $.
    $( Having a basis is an isomorphism invariant.  (Contributed by Stefan
       O'Rear, 26-Feb-2015.) $)
    lmiclbs $p |- ( S ~=m T -> ( J =/= (/) -> K =/= (/) ) ) $=
      ( vf vb clmic wbr cv clmim co wcel wex c0 wne wi brlmic n0 bitri cima syl
      wa lmimlbs ne0i ex exlimdv syl5bi exlimiv sylbi ) ABIJZGKZABLMZNZGOZCPQZD
      PQZRZULUNPQUPABSGUNTUAUOUSGUQHKZCNZHOUOURHCTUOVAURHUOVAURUOVAUDUMUTUBZDNU
      RUTABUMCDEFUEDVBUFUCUGUHUIUJUK $.
  $}

  ${
    $d B j k l $.  $d B x y $.  $d F j k l $.  $d F x y $.  $d I j k l $.
    $d I x y $.  $d I z $.  $d L j x $.  $d R k l $.  $d R x y $.  $d R z $.
    $d .x. j k l $.  $d .x. x y $.  $d W j k l $.  $d W x y $.  $d X j k l $.
    $d X x y $.  $d X z $.  $d Y j k l $.  $d Y x y $.  $d Y z $.
    $d .0. j l x y $.  $d x z $.
    islindf4.b $e |- B = ( Base ` W ) $.
    islindf4.r $e |- R = ( Scalar ` W ) $.
    islindf4.t $e |- .x. = ( .s ` W ) $.
    islindf4.z $e |- .0. = ( 0g ` W ) $.
    islindf4.y $e |- Y = ( 0g ` R ) $.
    islindf4.l $e |- L = ( Base ` ( R freeLMod I ) ) $.
    $( A family is independent iff it has no nontrivial representations of
       zero.  (Contributed by Stefan O'Rear, 28-Feb-2015.) $)
    islindf4 $p |- ( ( W e. LMod /\ I e. X /\ F : I --> B ) ->
        ( F LIndF W <-> A. x e. L ( ( W gsum ( x oF .x. F ) ) = .0. ->
              x = ( I X. { Y } ) ) ) ) $=
      ( wcel wceq cvv vk vj vl vy vz clmod wf w3a cv cfv co csn cdif cima clspn
      wn cbs wral cof cgsu cxp wi clindf wbr cminusg raldifsni cfsupp cres cmap
      wa crab cop cun cplusg simpll1 simprll ffvelrn 3ad2antl3 adantr lmodvsinv
      eqid syl3anc eqeq1d cgrp lmodgrp syl lmodvscl ccmn lmodcmn simpll2 difexg
      wb simprlr elmapi wss simpll3 difss fssres sylancl lcomf simprr lcomfsupp
      gsumcl grpinvid2 simplr fsnunf2 notbid syl5bb jca adantl bicomd c0 eqcomd
      wfun cin a1i vex syl2anc wfn ffn oveq1d eqtrd oveq2d imbi12d imbi1d breq1
      3bitr4d oveq1 syl6bbr wrex 3ad2ant2 csca fvex grpinvnzcl sylan eqeq2d c0g
      eqeltri imbi2d ralbidva cdm simpr simpl anim12i elmapfun neldifsnd df-nel
      wnel eleq2 mpbird funsnfsupp biimpd incom disjdif eqtri difsnid gsumsplit
      fdm impr snex unex simpl3 simpl2 offres sylancr neldifsn fsnunres fnressn
      cmpt fnfvof syl22anc fndm eleq2d mtbiri fsnunfv mp3an12 3syl opeq2d sneqd
      ovex fmptsn mp2an 3eqtrd cmnd cmnmnd gsumsn oveq12d eqtr2d 3bitrd anassrs
      fex pm5.74da impexp 2ralbidva ralxpmap bitr4d ralrab resima eqcomi fveq2i
      eqidd fveq1 eleq2i simpl1 ellspd r19.23v ralbidv frlmbas syl6reqr raleqdv
      cfrlm mpan lmodfgrp eldifi grpinvinv syl2an fveq2 rspcev ralxfrd 3ad2ant1
      eleq1d fvconst2 islindf2 frlmbasf 3ad2antl2 fnconstg ax-mp eqfnfv r19.21v
      ralbii ralcom bitr3i syl6bb ) HUFRZFIRZFBEUGZUHZUAUIZUBUIZEUJZDUKZEFUYSUL
[encoded data, 4400 characters]
      FURZAGURVVDWYJWYDAGVUQVVAUBFUYIUYJVVBAUBGFUYKUYLUYMYG $.
  $}

  ${
    $d ph x y $.  $d A x y $.  $d B x y $.  $d C x y $.  $d E y $.  $d F x y $.
    $d I x y $.  $d R x $.  $d T x y $.  $d .x. x y $.  $d X x y $.
    islindf5.f $e |- F = ( R freeLMod I ) $.
    islindf5.b $e |- B = ( Base ` F ) $.
    islindf5.c $e |- C = ( Base ` T ) $.
    islindf5.v $e |- .x. = ( .s ` T ) $.
    islindf5.e $e |- E = ( x e. B |-> ( T gsum ( x oF .x. A ) ) ) $.
    islindf5.t $e |- ( ph -> T e. LMod ) $.
    islindf5.i $e |- ( ph -> I e. X ) $.
    islindf5.r $e |- ( ph -> R = ( Scalar ` T ) ) $.
    islindf5.a $e |- ( ph -> A : I --> C ) $.
    $( A family is independent iff the linear combinations homomorphism is
       injective.  (Contributed by Stefan O'Rear, 28-Feb-2015.) $)
    islindf5 $p |- ( ph -> ( A LIndF T <-> E : B -1-1-> C ) ) $=
      ( vy clindf wbr cv cfv c0g wceq wi wral wf1 cof co cgsu csn cxp cfrlm cbs
      csca clmod wcel wf wb eqid islindf4 syl3anc wa oveq1 oveq2d adantl eqeq1d
      ovex fvmpt crg lmodring eqeltrd frlm0 syl2anc fveq2d xpeq2d eqtr3d adantr
      syl sneqd eqeq2d imbi12d ralbidva eqcomd oveq1d syl6eqr bitr4d clmhm cghm
      raleqdv frlmup1 lmghm ghmf1 3syl ) ACGUCUDZUBUEZIUFZGUGUFZUHZWTJUGUFZUHZU
      IZUBDUJZDEIUKZAWSGWTCHULZUMZUNUMZXBUHZWTKGUSUFZUGUFZUOZUPZUHZUIZUBXMKUQUM
      ZURUFZUJZXGAGUTVAZKLVAZKECVBWSYAVCRSUAUBEXMHCKXTGLXNXBOXMVDZPXBVDZXNVDXTV
      DVEVFAXGXRUBDUJYAAXFXRUBDAWTDVAZVGZXCXLXEXQYGXAXKXBYFXAXKUHABWTGBUEZCXIUM
      ZUNUMXKDIYHWTUHYIXJGUNYHWTCXIVHVIQGXJUNVLVMVJVKYGXDXPWTAXDXPUHYFAKFUGUFZU
      OZUPZXDXPAFVNVAYCYLXDUHAFXMVNTAYBXMVNVARXMGYDVOWCVPSFJKLYJMYJVDVQVRAYKXOK
      AYJXNAFXMUGTVSWDVTWAWBWEWFWGAXRUBXTDAXTJURUFDAXSJURAXSFKUQUMJAXMFKUQAFXMT
      WHWIMWJVSNWJWNWKWKAIJGWLUMVAIJGWMUMVAXHXGVCABCDEFGHIJKLMNOPQRSTUAWOJGIWPU
      BJGXBIDEXDNOXDVDYEWQWRWK $.
  $}

  ${
    $d ph x $.  $d A x $.  $d B x $.  $d C x $.  $d F x $.  $d I x $.
    $d N x $.  $d R x $.  $d T x $.  $d .x. x $.  $d X x $.
    indlcim.f $e |- F = ( R freeLMod I ) $.
    indlcim.b $e |- B = ( Base ` F ) $.
    indlcim.c $e |- C = ( Base ` T ) $.
    indlcim.v $e |- .x. = ( .s ` T ) $.
    indlcim.n $e |- N = ( LSpan ` T ) $.
    indlcim.e $e |- E = ( x e. B |-> ( T gsum ( x oF .x. A ) ) ) $.
    indlcim.t $e |- ( ph -> T e. LMod ) $.
    indlcim.i $e |- ( ph -> I e. X ) $.
    indlcim.r $e |- ( ph -> R = ( Scalar ` T ) ) $.
    indlcim.a $e |- ( ph -> A : I -onto-> J ) $.
    indlcim.l $e |- ( ph -> A LIndF T ) $.
    indlcim.s $e |- ( ph -> ( N ` J ) = C ) $.
    $( An independent, spanning family extends to an isomorphism from a free
       module.  (Contributed by Stefan O'Rear, 26-Feb-2015.) $)
    indlcim $p |- ( ph -> E e. ( F LMIso T ) ) $=
      ( clmhm co wcel wf1o clmim wfn crn wss wfo fofn syl cdm clindf wbr lindff
      wf clmod syl2anc frn df-f sylanbrc frlmup1 wf1 islindf5 mpbid cfv frlmup3
      wceq forn fveq2d 3eqtrd dff1o5 islmim ) AIJGUGUHUIDEIUJZIJGUKUHUIABCDEFGH
      IJKNOPQRTUAUBUCACKULZCUMZEUNZKECVBAKLCUOZWAUDKLCUPUQACURZECVBZWCACGUSUTZG
      VCUIWFUEUAECGVCQVAVDWEECVEUQKECVFVGZVHADEIVIZIUMZEVNVTAWGWIUEABCDEFGHIJKN
      OPQRTUAUBUCWHVJVKAWJWBMVLLMVLEABCDEFGHIJKMNOPQRTUAUBUCWHSVMAWBLMAWDWBLVNU
      DKLCVOUQVPUFVQDEIVRVGDEJGIPQVSVG $.
  $}

  ${
    $d B e $.  $d F e $.  $d I e $.  $d J e $.  $d W e $.  $d B x $.  $d F x $.
    $d I x $.  $d J x $.  $d W x $.  $d e x $.
    lbslcic.f $e |- F = ( Scalar ` W ) $.
    lbslcic.j $e |- J = ( LBasis ` W ) $.
    $( A module with a basis is isomorphic to a free module with the same
       cardinality.  (Contributed by Stefan O'Rear, 26-Feb-2015.) $)
    lbslcic $p |- ( ( W e. LMod /\ B e. J /\ I ~~ B ) ->
        W ~=m ( F freeLMod I ) ) $=
      ( ve vx wcel cen wbr cv co cbs cfv clmim cvv eqid adantr clmod wf1o cfrlm
      w3a clmic wex simp3 bren sylib wa cvsca cgsu cmpt ccnv clspn simpl1 relen
      cof brrelexi 3ad2ant3 csca wceq a1i wfo adantl clinds wf1 clindf lbslinds
      f1ofo sseli 3ad2ant2 f1of1 f1linds syl3anc lbssp indlcim lmimcnv exlimddv
      brlmici 3syl ) EUAJZADJZCAKLZUDZCAHMZUBZEBCUCNZUELZHWEWDWGHUFWBWCWDUGCAHU
      HUIWEWGUJZIWHOPZEIMWFEUKPZURNULNUMZWHEQNJWMUNZEWHQNJWIWJIWFWKEOPZBEWLWMWH
      CAEUOPZRWHSWKSWOSZWLSWPSZWMSWBWCWDWGUPZWECRJZWGWDWBWTWCCAKUQUSUTTBEVAPVBW
      JFVCWGCAWFVDWECAWFVJVEWJWBAEVFPZJZCAWFVGZWFEVHLWSWEXBWGWCWBXBWDDXAADEGVIV
      KVLTWGXCWECAWFVMVECAWFEVNVOWEAWPPWOVBZWGWCWBXDWDADWPWOEWQGWRVPVLTVQWHEWMV
      REWHWNVTWAVS $.
  $}

  ${
    $d F j k $.  $d J j k $.  $d W j k $.
    lmisfree.j $e |- J = ( LBasis ` W ) $.
    lmisfree.f $e |- F = ( Scalar ` W ) $.
    $( A module has a basis iff it is isomorphic to a free module.  In settings
       where isomorphic objects are not distinguished, it is common to define
       "free module" as any module with a basis; thus for instance ~ lbsex
       might be described as "every vector space is free."  (Contributed by
       Stefan O'Rear, 26-Feb-2015.) $)
    lmisfree $p |- ( W e. LMod -> ( J =/= (/) <->
        E. k W ~=m ( F freeLMod k ) ) ) $=
      ( vj wcel c0 wne cv cfrlm co clmic wbr wex vex syl cvv eqid clmod lbslcic
      n0 wa cen enref mp3an3 weq oveq2 breq2d spcev exlimdv syl5bi clbs lmicsym
      ex cfv lmiclcl cuvc crn crg lmodring frlmlbs sylancl ne0i lmiclbs exlimiv
      sylc impbid1 ) DUAHZCIJZDBAKZLMZNOZAPZVKGKZCHZGPVJVOGCUCVJVQVOGVJVQVOVJVQ
      UDDBVPLMZNOZVOVJVQVPVPUEOVSVPGQZUFVPBVPCDFEUBUGVNVSAVPVTAGUHVMVRDNVLVPBLU
      IUJUKRUPULUMVNVKAVNVMDNOVMUNUQZIJZVKDVMUOVNVJWBDVMURVJBVLUSMZUTZWAHZWBVJB
      VAHVLSHWEBDFVBAQBWCVMVLWASVMTWCTWATZVCVDWAWDVERRVMDWACWFEVFVHVGVI $.
  $}

  ${
    $d F k $.  $d W k $.
    lvecisfrlm.f $e |- F = ( Scalar ` W ) $.
    $( Every vector space is isomorphic to a free module.  (Contributed by AV,
       7-Mar-2019.) $)
    lvecisfrlm $p |- ( W e. LVec -> E. k W ~=m ( F freeLMod k ) ) $=
      ( clvec wcel clbs cfv c0 wne cv cfrlm co clmic wbr wex eqid lbsex clmod
      wb lveclmod lmisfree syl mpbid ) CEFZCGHZIJZCBAKLMNOAPZUFCUFQZRUECSFUGUHT
      CUAABUFCUIDUBUCUD $.
  $}

  ${
    $d R f g $.  $d S f g $.  $d T f g $.
    $( The composition of two isomorphisms of modules is an isomorphism of
       modules.  (Contributed by AV, 10-Mar-2019.) $)
    lmimco $p |- ( ( F e. ( S LMIso T ) /\ G e. ( R LMIso S ) )
                    -> ( F o. G ) e. ( R LMIso T ) ) $=
      ( clmim co wcel clmhm cbs cfv wf1o ccom eqid islmim lmhmco ad2ant2r f1oco
      wa ad2ant2l sylanbrc syl2anb ) DBCFGHDBCIGHZBJKZCJKZDLZSZEABIGHZAJKZUDELZ
      SZDEMZACFGHZEABFGHUDUEBCDUDNZUENZOUIUDABEUINZUNOUGUKSULACIGHZUIUEULLZUMUC
      UHUQUFUJDEABCPQUFUJURUCUHUIUDUEDERTUIUEACULUPUOOUAUB $.

    $( Module isomorphism is transitive.  (Contributed by AV, 10-Mar-2019.) $)
    lmictra $p |- ( ( R ~=m S /\ S ~=m T ) -> R ~=m T ) $=
      ( vg vf clmic wbr clmim co c0 wne brlmic cv wcel n0 wi wa exlimiv syl2anb
      wex ccom lmimco brlmici syl ex com12 imp ) ABFGABHIZJKZBCHIZJKZACFGZBCFGA
      BLBCLUIDMZUHNZDTZEMZUJNZETZULUKDUHOEUJOUOURULUNURULPDURUNULUQUNULPEUQUNUL
      UQUNQUPUMUAZACHINULABCUPUMUBACUSUCUDUERUFRUGSS $.
  $}

  ${
    uvcf1o.u $e |- U = ( R unitVec I ) $.
    $( In a nonzero ring, the mapping of the index set of a free module onto
       the unit vectors of the free module is a 1-1 onto function.
       (Contributed by AV, 10-Mar-2019.) $)
    uvcf1o $p |- ( ( R e. NzRing /\ I e. W ) -> U : I -1-1-onto-> ran U ) $=
      ( cnzr wcel wa cfrlm co cbs cfv wf1 crn wf1o eqid uvcf1 f1f1orn syl ) AFG
      CDGHCACIJZKLZBMCBNBOUAABCDTETPUAPQCUABRS $.

    $d U u $.  $d W u $.  $d I u $.  $d R u $.
    $( In a nonzero ring, the number of unit vectors of a free module
       corresponds to the dimension of the free module.  (Contributed by AV,
       10-Mar-2019.) $)
    uvcendim $p |- ( ( R e. NzRing /\ I e. W ) -> I ~~ ran U ) $=
      ( vu cnzr wcel wa crn cv wf1o wex cen wbr cvv cuvc co a1i wi ovex eqeltri
      wceq uvcf1o wb f1oeq1 eqcoms biimpd syl7 imp spcimedv pm2.43i bren sylibr
      ) AGHCDHIZCBJZFKZLZFMZCUPNOUOUSUOURUOFBPBPHUOBACQRPEACQUAUBSUOUQBUCZUOURT
      UOCUPBLZUOUTURABCDEUDUTVAURTTUOUTVAURVAURUEBUQCUPBUQUFUGUHSUIUJUKULCUPFUM
      UN $.
  $}

  $( A free module is isomorphic to a free module over the same (nonzero) ring,
     with the same cardinality.  (Contributed by AV, 10-Mar-2019.) $)
  frlmisfrlm $p |- ( ( R e. NzRing /\ I e. Y /\ I ~~ J ) ->
        ( R freeLMod I ) ~=m ( R freeLMod J ) ) $=
    ( cnzr wcel cen wbr w3a cfrlm co csca cfv clmic clmod cuvc crn eqid 3adant3
    sylan clbs crg nzrring frlmlmod frlmlbs simp3 uvcendim entr syl2anc lbslcic
    ensymd syl3anc wceq frlmsca oveq1d breqtrrd ) AEFZBDFZBCGHZIZABJKZVALMZCJKZ
    ACJKNUTVAOFZABPKZQZVAUAMZFZCVFGHZVAVCNHUQURVDUSUQAUBFZURVDAUCZAVABDVARZUDTS
    UQURVHUSUQVJURVHVKAVEVABVGDVLVERZVGRZUETSUTCBGHBVFGHZVIUTBCUQURUSUFUKUQURVO
    USAVEBDVMUGSCBVFUHUIVFVBCVGVAVBRVNUJULUTAVBCJUQURAVBUMUSAVABEDVLUNSUOUP $.

  $( Every free module is isomorphic to the free module of "column vectors" of
     the same dimension over the same (nonzero) ring.  (Contributed by AV,
     10-Mar-2019.) $)
  frlmiscvec $p |- ( ( R e. NzRing /\ I e. Y )
                   -> ( R freeLMod I ) ~=m ( R freeLMod ( I X. { (/) } ) ) ) $=
    ( cnzr wcel c0 csn cxp cen wbr cfrlm co clmic cvv simpr 0ex xpsneng sylancl
    wa ensymd frlmisfrlm mpd3an3 ) ADEZBCEZBBFGHZIJZABKLAUEKLMJUCUDSUDFNEZUFUCU
    DOPUDUGSUEBBFCNQTRABUECUAUB $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Matrices
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  According to Wikipedia ("Matrix (mathemetics)", 02-Apr-2019,
  ~ https://en.wikipedia.org/wiki/Matrix_(mathematics) ) "A matrix is a
rectangular array of numbers or other mathematical objects for which operations
such as addition and multiplication are defined.  Most commonly, a matrix over
a field F is a rectangular array of scalars each of which is a member of F. The
numbers, symbols or expressions in the matrix are called its entries or its
elements.  The horizontal and vertical lines of entries in a matrix are called
rows and columns, respectively.", and in the definition of [Lang] p. 503 "By an
m x n matrix in [a commutative ring] R one means a doubly indexed family of
elements of R, (a_ij), (i= 1,..., m and j = 1,... n) ...  We call the elements
a_ij the coefficients or components of the matrix.  A 1 x n matrix is called a
row vector (of dimension, or size, n) and a m x 1 matrix is called a column
vector (of dimension, or size, m).  In general, we say that (m,n) is the size
of the matrix, ...".  In contrast to these definitions, we denote any free
module over a (not necessarily commutative) ring (in the meaning of ~ df-frlm )
with a Cartesian product as index set as "matrix".  The two sets of the
Cartesian product even need neither to be ordered or a range of
(nonnegative/positive) integers nor finite.  By this, the addition and scalar
multiplication for matrices correspond to the addition (see ~ frlmplusgval )
and scalar multiplication (see ~ frlmvscafval ) for free modules.  Actually,
there isn't a definition for (arbitrary) matrices:  Even the (general) matrix
multiplication can be defined using functions from Cartesian products into a
ring (which are elements of the base set of free modules), see ~ df-mamu . By
this, a statement like "Then the set of m x n matrices in R is a module (i.e.
an R-module)" as in [Lang] p. 504 follows immediately from ~ frlmlmod .

However, for square matrices there is the definition ~ df-mat , defining the
algebras of square matrices (of the same size over the same ring), extending
the structure of the corresponding free module by the matrix multiplication as
ring multiplication.

A "usual" matrix (a_ij), (i= 1,..., m and j = 1,... n) would be represented as
element of (the base set of) ` ( R freeLMod ( ( 1 ... m ) X. ( 1 ... n ) ) ) `,
and a square matrix (a_ij), (i= 1,..., n and j = 1,... n) would be represented
as element of (the base set of) ` ( ( 1 ... n ) Mat R ) `.

Finally, it should be mentioned that our definitions of matrices include the
zero-dimensional cases, which is excluded in the definition of many authors,
e.g. in [Lang] p. 503. It is shown in ~ mat0dimbas0 that the empty set is the
sole zero-dimensional matrix (also called "empty matrix", see Wikipedia
~ https://en.wikipedia.org/wiki/Matrix_(mathematics)#Empty_matrices). The
determinant is also defined for such an empty matrix, see ~ mdet0pr .
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The matrix multiplication
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This section is about the multiplication of m x n matrices.

$)

  $c maMul $.

  $( Syntax for the matrix multiplication operator. $)
  cmmul $a class maMul $.

  ${
    $d i j k m n o p r x y $.
    $( The operator which multiplies an m x n matrix with an n x p matrix, see
       also the definition in [Lang] p. 504.  Note that it is not generally
       possible to recover the dimensions from the matrix, since all n x 0 and
       all 0 x n matrices are represented by the empty set.  (Contributed by
       Stefan O'Rear, 4-Sep-2015.) $)
    df-mamu $a |- maMul = ( r e. _V , o e. _V |-> [_ ( 1st ` ( 1st ` o ) ) /
        m ]_ [_ ( 2nd ` ( 1st ` o ) ) / n ]_ [_ ( 2nd ` o ) / p ]_ ( x e. ( (
        Base ` r ) ^m ( m X. n ) ) , y e. ( ( Base ` r ) ^m ( n X. p ) ) |->
        ( i e. m , k e. p |-> ( r gsum ( j e. n |-> ( ( i x j ) ( .r ` r ) ( j
        y k ) ) ) ) ) ) ) $.
  $}

  ${
    $d i j k m n o p r x y $.  $d i j k o r x y M $.  $d i j k o r x y N $.
    $d i j k o r x y P $.  $d i j k o r x y R $.  $d i j k x y X $.
    $d i j k x y Y $.  $d i j k o r x y ph $.  $d o r x y B $.
    $d o r x y i k .x. $.  $d i j k I $.  $d i j k K $.
    mamufval.f $e |- F = ( R maMul <. M , N , P >. ) $.
    mamufval.b $e |- B = ( Base ` R ) $.
    mamufval.t $e |- .x. = ( .r ` R ) $.
    mamufval.r $e |- ( ph -> R e. V ) $.
    mamufval.m $e |- ( ph -> M e. Fin ) $.
    mamufval.n $e |- ( ph -> N e. Fin ) $.
    mamufval.p $e |- ( ph -> P e. Fin ) $.
    $( Functional value of the matrix multiplication operator.  (Contributed by
       Stefan O'Rear, 2-Sep-2015.) $)
    mamufval $p |- ( ph -> F =
        ( x e. ( B ^m ( M X. N ) ) , y e. ( B ^m ( N X. P ) ) |->
            ( i e. M , k e. P |-> ( R gsum ( j e. N |->
                ( ( i x j ) .x. ( j y k ) ) ) ) ) ) ) $=
      ( vr vo vm vn vp cotp cmmul co cxp cmap cmpt cgsu cmpt2 cvv c1st cfv c2nd
      cv cbs cmulr csb wceq df-mamu a1i wa eqidd xpeq2 oveq2d mpt2eq123dv csbie
      fvex id xpeq12 simpr xpeq1d adantr mpteq12dv syl5eq csbie2 simprl syl6eqr
      fveq2d fveq2 ad2antll cfn wcel ot1stg syl3anc eqtrd ot2ndg xpeq12d ot3rdg
      oveq12d syl oveqd elex otex ovex mpt2ex ovmpt2d ) AKFLMEUGZUHUIBCDLMUJZUK
      UIZDMEUJZUKUIZHJLEFIMHUSIUSZBUSUIZXGJUSCUSUIZGUIZULZUMUIZUNZUNZOAUBUCFXBU
      OUOUDUCUSZUPUQZUPUQZUEXPURUQZUFXOURUQZBCUBUSZUTUQZUDUSZUEUSZUJZUKUIZYAYCU
      FUSZUJZUKUIZHJYBYFXTIYCXHXIXTVAUQZUIZULZUMUIZUNZUNZVBZVBVBZXNUHUOUHUBUCUO
      UOYPUNVCABCHIJUDUEUCUBUFVDVEAXTFVCZXOXBVCZVFZVFZYPBCYAXQXRUJZUKUIZYAXRXSU
      JZUKUIZHJXQXSXTIXRYJULZUMUIZUNZUNZXNUDUEXQXRYOUUHXPUPVLXPURVLYBXQVCZYCXRV
      CZVFZYOBCYEYAYCXSUJZUKUIZHJYBXSYLUNZUNZUUHUFXSYNUUOXOURVLYFXSVCZBCYEYHYMY
      EUUMUUNUUPYEVGUUPYGUULYAUKYFXSYCVHVIUUPHJYBYFYLYBXSYLUUPYBVGUUPVMUUPYLVGV
      JVJVKUUKBCYEUUMUUNUUBUUDUUGUUKYDUUAYAUKYBXQYCXRVNVIUUKUULUUCYAUKUUKYCXRXS
      UUIUUJVOZVPVIUUKHJYBXSYLXQXSUUFUUIUUIUUJUUIVMVQUUKXSVGUUKYKUUEXTUMUUKIYCY
      JXRYJUUQUUKYJVGVRVIVJVJVSVTYTBCUUBUUDUUGXDXFXMYTYADUUAXCUKYTYAFUTUQDYTXTF
      UTAYQYRWAZWCPWBZYTXQLXRMYTXQXBUPUQZUPUQZLYRXQUVAVCAYQYRXPUUTUPXOXBUPWDZWC
      WEAUVALVCZYSALWFWGZMWFWGZEWFWGZUVCSTUALMEWFWFWFWHWIVQWJZYTXRUUTURUQZMYRXR
      UVHVCAYQYRXPUUTURUVBWCWEAUVHMVCZYSAUVDUVEUVFUVISTUALMEWFWFWFWKWIVQWJZWLWN
      YTYADUUCXEUKUUSYTXRMXSEUVJYTXSXBURUQZEYRXSUVKVCAYQXOXBURWDWEAUVKEVCZYSAUV
      FUVLUALMEWFWMWOVQWJZWLWNYTHJXQXSUUFLEXLUVGUVMYTXTFUUEXKUMUURYTIXRYJMXJUVJ
      YTYIGXHXIYTYIFVAUQGYTXTFVAUURWCQWBWPVRWNVJVJVSAFNWGFUOWGRFNWQWOXBUOWGALME
      WRVEXNUOWGABCXDXFXMDXCUKWSDXEUKWSWTVEXAVS $.

    mamuval.x $e |- ( ph -> X e. ( B ^m ( M X. N ) ) ) $.
    mamuval.y $e |- ( ph -> Y e. ( B ^m ( N X. P ) ) ) $.
    $( Multiplication of two matrices.  (Contributed by Stefan O'Rear,
       2-Sep-2015.) $)
    mamuval $p |- ( ph -> ( X F Y ) = ( i e. M ,
            k e. P |-> ( R gsum ( j e. N |->
                ( ( i X j ) .x. ( j Y k ) ) ) ) ) ) $=
      ( vx vy cxp cmap co cv cmpt cgsu cmpt2 cvv mamufval wceq oveqan12d adantl
      wa oveq mpteq2dv oveq2d mpt2eq3dv cfn wcel mpt2exga syl2anc ovmpt2d ) AUD
      UEMNBJKUFUGUHBKCUFUGUHFHJCDGKFUIZGUIZUDUIZUHZVIHUIZUEUIZUHZEUHZUJZUKUHZUL
      FHJCDGKVHVIMUHZVIVLNUHZEUHZUJZUKUHZULZIUMAUDUEBCDEFGHIJKLOPQRSTUAUNAVJMUO
      ZVMNUOZURZURZFHJCVQWBWGVPWADUKWGGKVOVTWFVOVTUOAWDWEVKVRVNVSEVHVIVJMUSVIVL
      VMNUSUPUQUTVAVBUBUCAJVCVDCVCVDWCUMVDSUAFHJCWBVCVCVEVFVG $.

    mamufv.i $e |- ( ph -> I e. M ) $.
    mamufv.k $e |- ( ph -> K e. P ) $.
    $( A cell in the multiplication of two matrices.  (Contributed by Stefan
       O'Rear, 2-Sep-2015.) $)
    mamufv $p |- ( ph -> ( I ( X F Y ) K ) = ( R gsum ( j e. N |->
        ( ( I X j ) .x. ( j Y K ) ) ) ) ) $=
      ( vi vk cv co cmpt cgsu cvv mamuval oveq1 oveq2 oveqan12d adantl mpteq2dv
      wceq wa oveq2d ovexd ovmpt2d ) AUFUGHIJCDFKUFUHZFUHZMUIZVEUGUHZNUIZEUIZUJ
      ZUKUIDFKHVEMUIZVEINUIZEUIZUJZUKUIMNGUIULABCDEUFFUGGJKLMNOPQRSTUAUBUCUMAVD
      HUSZVGIUSZUTZUTZVJVNDUKVRFKVIVMVQVIVMUSAVOVPVFVKVHVLEVDHVEMUNVGIVENUOUPUQ
      URVAUDUEADVNUKVBVC $.
  $}

  ${
    $d M i j k x y $.  $d N i j k x y $.  $d P i j k x y $.  $d R i j k x y $.
    $d V i j k x y $.
    mamudm.e $e |- E = ( R freeLMod ( M X. N ) ) $.
    mamudm.b $e |- B = ( Base ` E ) $.
    mamudm.f $e |- F = ( R freeLMod ( N X. P ) ) $.
    mamudm.c $e |- C = ( Base ` F ) $.
    mamudm.m $e |- .X. = ( R maMul <. M , N , P >. ) $.
    $( The domain of the matrix multiplication function.  (Contributed by AV,
       10-Feb-2019.) $)
    mamudm $p |- ( ( R e. V /\ ( M e. Fin /\ N e. Fin /\ P e. Fin ) )
                   -> dom .X. = ( B X. C ) ) $=
      ( vx vy wcel cfn co vi vk vj w3a wa cdm cbs cfv cxp cmap cmulr cmpt cmpt2
      cv cgsu eqid simpl simpr1 simpr2 simpr3 mamufval dmeqd wral wceq mpt2exga
      cvv 3adant2 adantl a1d ralrimivv dmmpt2ga syl xpfi 3adant3 sylan2 syl6eqr
      frlmfibas 3adant1 xpeq12d 3eqtrd ) DJRZHSRZISRZCSRZUDZUEZEUFPQDUGUHZHIUIZ
      UJTZWGICUIZUJTZUAUBHCDUCIUAUNUCUNZPUNZTWLUBUNQUNZTDUKUHZTULUOTZUMZUMZUFZW
      IWKUIZABUIWFEWRWFPQWGCDWOUAUCUBEHIJOWGUPZWOUPWAWEUQWAWBWCWDURWAWBWCWDUSWA
      WBWCWDUTVAVBWFWQVFRZQWKVCPWIVCWSWTVDWFXBPQWIWKWFXBWMWIRWNWKRUEWEXBWAWBWDX
      BWCUAUBHCWPSSVEVGVHVIVJPQWIWKWQWRVFWRUPVKVLWFWIAWKBWFWIFUGUHZAWEWAWHSRZWI
      XCVDWBWCXDWDHIVMVNDFWHWGJKXAVQVOLVPWFWKGUGUHZBWEWAWJSRZWKXEVDWCWDXFWBICVM
      VRDGWJWGJMXAVQVONVPVSVT $.

    mamufacex.g $e |- G = ( R freeLMod ( M X. P ) ) $.
    mamufacex.d $e |- D = ( Base ` G ) $.
    $( Every solution of the equation ` A * X = B ` for matrices ` A ` and
       ` B ` is a matrix.  (Contributed by AV, 10-Feb-2019.) $)
    mamufacex $p |- ( ( ( M =/= (/) /\ P =/= (/) ) /\ ( R e. V /\ Y e. D )
                        /\ ( M e. Fin /\ N e. Fin /\ P e. Fin ) )
                      -> ( ( X .X. Z ) = Y -> Z e. C ) ) $=
      ( wcel c0 wne wa cfn w3a co wceq wi 2a1 wn cdm cxp mamudm adantlr 3adant1
      adantl simpl intnand ndmovg syl2anc xpfi 3adant2 xpnz biimpi cbs cfv eqid
      eqeq1 elfrlmbasn0 syl2an ex com13 com12 3imp eqneqall eqcoms syl6bi com23
      syl5com mpcom pm2.61i ) OBUCZJUDUEDUDUEUFZELUCZNCUCZUFZJUGUCZKUGUCZDUGUCZ
      UHZUHZMOFUIZNUJZWEUKZUKWEWNWPULWEUMZWNWQWOUDUJZWRWNUFZWQWTFUNABUOUJZMAUCZ
      WEUFUMWSWNXAWRWIWMXAWFWGWMXAWHABDEFGHJKLPQRSTUPUQURUSWTWEXBWRWNUTVAMOABFV
      BVCWSWPWTWEWSWPUDNUJWTWEUKZWOUDNVKXCNUDWTNUDUJZWEWNXDWEUKWRWNNUDUEZXDWEWF
      WIWMXEWIWFWMXEUKZWHWFXFUKWGWMWFWHXEWMWFWHXEUKZWMJDUOZUGUCZXHUDUEZXGWFWJWL
      XIWKJDVDVEWFXJJDVFVGCEIXHEVHVIZUGNUAXKVJUBVLVMVNVOUSVPVQWENUDVRWBUSVPVSVT
      WAWCVNWD $.
  $}

  ${
    $d F i j k $.  $d G i j k $.  $d I i j k $.  $d M i j k $.  $d N i j k $.
    $d P i j k $.  $d B i j k $.  $d R i j k $.  $d V i j k $.  $d X i j k $.
    $d Y i j k $.  $d ph i j k $.
    mamures.f $e |- F = ( R maMul <. M , N , P >. ) $.
    mamures.g $e |- G = ( R maMul <. I , N , P >. ) $.
    mamures.b $e |- B = ( Base ` R ) $.
    mamures.r $e |- ( ph -> R e. V ) $.
    mamures.m $e |- ( ph -> M e. Fin ) $.
    mamures.n $e |- ( ph -> N e. Fin ) $.
    mamures.p $e |- ( ph -> P e. Fin ) $.
    mamures.i $e |- ( ph -> I C_ M ) $.
    mamures.x $e |- ( ph -> X e. ( B ^m ( M X. N ) ) ) $.
    mamures.y $e |- ( ph -> Y e. ( B ^m ( N X. P ) ) ) $.
    $( Rows in a matrix product are functions only of the corresponding rows in
       the left argument.  (Contributed by SO, 9-Jul-2018.) $)
    mamures $p |- ( ph -> ( ( X F Y ) |` ( I X. P ) ) =
        ( ( X |` ( I X. N ) ) G Y ) ) $=
      ( vi vj vk cv co cmulr cfv cmpt cgsu cmpt2 cxp cres wss wceq ssid resmpt2
      a1i syl2anc w3a ovres 3ad2antl2 eqcomd oveq1d mpteq2dva oveq2d mpt2eq3dva
      wcel wa eqtrd eqid mamuval reseq1d cfn ssfi cmap elmapi syl xpss1 fssresd
      wf cvv cbs fvex eqeltri xpfi elmapd mpbird 3eqtr4d ) AUCUDHCDUEIUCUFZUEUF
      ZKUGZWLUDUFZLUGZDUHUIZUGZUJZUKUGZULZGCUMZUNZUCUDGCDUEIWKWLKGIUMZUNZUGZWOW
      PUGZUJZUKUGZULZKLEUGZXAUNXDLFUGAXBUCUDGCWSULZXIAGHUOZCCUOZXBXKUPTXMACUQUS
      UCUDHCGCWSURUTAUCUDGCWSXHAWKGVIZWNCVIZVAZWRXGDUKXPUEIWQXFXPWLIVIZVJZWMXEW
      OWPXRXEWMXNAXQXEWMUPXOWKWLGIKVBVCVDVEVFVGVHVKAXJWTXAABCDWPUCUEUDEHIJKLMOW
      PVLZPQRSUAUBVMVNABCDWPUCUEUDFGIJXDLNOXSPAHVOVIXLGVOVIZQTHGVPUTZRSAXDBXCVQ
      UGVIXCBXDWBAHIUMZBXCKAKBYBVQUGVIYBBKWBUAKBYBVRVSAXLXCYBUOTGHIVTVSWAABXCXD
      WCVOBWCVIABDWDUIWCODWDWEWFUSAXTIVOVIXCVOVIYARGIWGUTWHWIUBVMWJ $.
  $}

  ${
    $d x y B $.  $d x y I $.  $d x y M $.  $d x y .+ $.  $d x y X $.
    $d x y Y $.
    mndvcl.b $e |- B = ( Base ` M ) $.
    mndvcl.p $e |- .+ = ( +g ` M ) $.
    $( Tuple-wise additive closure in monoids.  (Contributed by Stefan O'Rear,
       5-Sep-2015.) $)
    mndvcl $p |- ( ( M e. Mnd /\ X e. ( B ^m I ) /\ Y e. ( B ^m I ) ) ->
        ( X oF .+ Y ) e. ( B ^m I ) ) $=
      ( vx vy cmnd wcel cmap co wf cvv cv elmapi 3ad2ant2 cbs w3a cof 3ad2antl1
      wa mndcl 3expb 3ad2ant3 elmapex simprd inidm off cfv fvex eqeltri sylancr
      wb elmapg mpbird ) DKLZEACMNZLZFUTLZUAZEFBUBNZUTLZCAVDOZVCIJCCCBAAAEFPPUS
      VAIQZALZJQZALZUDVGVIBNALZVBUSVHVJVKABDVGVIGHUEUFUCVAUSCAEOVBEACRSVBUSCAFO
      VAFACRUGVAUSCPLZVBVAAPLZVLEACUHUISZVNCUJUKVCVMVLVEVFUPADTULPGDTUMUNVNACVD
      PPUQUOUR $.

    $d x y z B $.  $d x y z I $.  $d x y z M $.  $d x y z .+ $.  $d x y z X $.
    $d x y z Y $.  $d x y z Z $.  $d x .0. $.
    $( Tuple-wise associativity in monoids.  (Contributed by Stefan O'Rear,
       5-Sep-2015.) $)
    mndvass $p |- ( ( M e. Mnd /\ ( X e. ( B ^m I ) /\ Y e. ( B ^m I ) /\
            Z e. ( B ^m I ) ) ) ->
        ( ( X oF .+ Y ) oF .+ Z ) = ( X oF .+ ( Y oF .+ Z ) ) ) $=
      ( vx vy vz wcel co w3a cvv adantl wf elmapi cv cmnd cmap elmapex 3ad2ant1
      wa simprd 3ad2ant2 3ad2ant3 wceq mndass adantlr caofass ) DUAMZEACUBNZMZF
      UNMZGUNMZOZUEJKLCBBABEFGBPURCPMZUMUOUPUSUQUOAPMUSEACUCUFUDQURCAERZUMUOUPU
      TUQEACSUDQURCAFRZUMUPUOVAUQFACSUGQURCAGRZUMUQUOVBUPGACSUHQUMJTZAMKTZAMLTZ
      AMOVCVDBNVEBNVCVDVEBNBNUIURABDVCVDVEHIUJUKUL $.

    mndvlid.z $e |- .0. = ( 0g ` M ) $.
    $( Tuple-wise left identity in monoids.  (Contributed by Stefan O'Rear,
       5-Sep-2015.) $)
    mndvlid $p |- ( ( M e. Mnd /\ X e. ( B ^m I ) ) ->
        ( ( I X. { .0. } ) oF .+ X ) = X ) $=
      ( vx cmnd wcel cmap co wa cvv elmapex simprd adantl wf elmapi adantr wceq
      mndidcl cv mndlid adantlr caofid0l ) DKLZEACMNLZOJCFBAEPAUJCPLZUIUJAPLUKE
      ACQRSUJCAETUIEACUASUIFALUJADFGIUDUBUIJUEZALFULBNULUCUJABDULFGHIUFUGUH $.

    $( Tuple-wise right identity in monoids.  (Contributed by Stefan O'Rear,
       5-Sep-2015.) $)
    mndvrid $p |- ( ( M e. Mnd /\ X e. ( B ^m I ) ) ->
        ( X oF .+ ( I X. { .0. } ) ) = X ) $=
      ( vx cmnd wcel cmap co wa cvv elmapex simprd adantl wf elmapi adantr wceq
      mndidcl cv mndrid adantlr caofid0r ) DKLZEACMNLZOJCFBAEPAUJCPLZUIUJAPLUKE
      ACQRSUJCAETUIEACUASUIFALUJADFGIUDUBUIJUEZALULFBNULUCUJABDULFGHIUFUGUH $.
  $}

  ${
    $d x y B $.  $d x y G $.  $d x y I $.  $d x y N $.  $d x y .+ $.
    $d x y X $.  $d x y .0. $.
    grpvlinv.b $e |- B = ( Base ` G ) $.
    grpvlinv.p $e |- .+ = ( +g ` G ) $.
    grpvlinv.n $e |- N = ( invg ` G ) $.
    grpvlinv.z $e |- .0. = ( 0g ` G ) $.
    $( Tuple-wise left inverse in groups.  (Contributed by Stefan O'Rear,
       5-Sep-2015.) $)
    grpvlinv $p |- ( ( G e. Grp /\ X e. ( B ^m I ) ) ->
        ( ( N o. X ) oF .+ X ) = ( I X. { .0. } ) ) $=
      ( vy vx wcel co cvv adantl wf adantr cfv cgrp cmap wa ccom elmapex simprd
      elmapi grpidcl grpinvf cmpt wceq fcompt syl2an grplinv adantlr caofinvl
      cv ) CUANZFADUBONZUCLMDGBAFEFUDZEPAUSDPNZURUSAPNVAFADUEUFQUSDAFRZURFADUGZ
      QURGANUSACGHKUHSURAAERZUSACEHJUIZSURVDVBUTMDMUQFTETUJUKUSVEVCMEFDAAULUMUR
      LUQZANVFETVFBOGUKUSABCEVFGHIKJUNUOUP $.

    $( Tuple-wise right inverse in groups.  (Contributed by Mario Carneiro,
       22-Sep-2015.) $)
    grpvrinv $p |- ( ( G e. Grp /\ X e. ( B ^m I ) ) ->
        ( X oF .+ ( N o. X ) ) = ( I X. { .0. } ) ) $=
      ( vx wcel co wa cfv cmpt wceq wf cvv cgrp cmap cv ccom cof csn cxp simpll
      elmapi adantl ffvelrnda grprinv syl2anc mpteq2dva elmapex feqmptd grpinvf
      simprd fvexd fcompt syl2an offval2 fconstmpt a1i 3eqtr4d ) CUAMZFADUBNMZO
      ZLDLUCZFPZVJEPZBNZQLDGQZFEFUDZBUENDGUFUGZVHLDVLGVHVIDMZOZVFVJAMVLGRVFVGVP
      UHVHDAVIFVGDAFSZVFFADUIZUJZUKZABCEVJGHIKJULUMUNVHLDVJVKBFVNTATVGDTMZVFVGA
      TMWBFADUOURUJWAVQVJEUSVHLDAFVTUPVFAAESVRVNLDVKQRVGACEHJUQVSLEFDAAUTVAVBVO
      VMRVHLDGVCVDVE $.
  $}

  ${
    $d y z B $.  $d y z F $.  $d y I $.  $d y M $.  $d y N $.  $d y z .+ $.
    $d y .+^ $.  $d y z X $.  $d y z Y $.
    mhmvlin.b $e |- B = ( Base ` M ) $.
    mhmvlin.p $e |- .+ = ( +g ` M ) $.
    mhmvlin.q $e |- .+^ = ( +g ` N ) $.
    $( Tuple extension of monoid homomorphisms.  (Contributed by Stefan O'Rear,
       5-Sep-2015.) $)
    mhmvlin $p |- ( ( F e. ( M MndHom N ) /\ X e. ( B ^m I ) /\
          Y e. ( B ^m I ) ) -> ( F o. ( X oF .+ Y ) ) =
          ( ( F o. X ) oF .+^ ( F o. Y ) ) ) $=
      ( vy vz co wcel cfv cmpt ccom cvv cmhm cmap w3a cv cof wceq simpl1 elmapi
      wa wf 3ad2ant2 ffvelrnda 3ad2ant3 mhmlin syl3anc mpteq2dva mhmrcl1 adantr
      cmnd 3ad2antl1 mndcl elmapex feqmptd offval2 cbs eqid mhmf 3ad2ant1 fveq2
      simprd fmptco fvexd fcompt syl2anc 3eqtr4d ) DFGUAOPZHAEUBOZPZIVQPZUCZMEM
      UDZHQZWAIQZBOZDQZRMEWBDQZWCDQZCOZRDHIBUEOZSDHSZDISZCUEOVTMEWEWHVTWAEPZUIZ
      VPWBAPZWCAPZWEWHUFVPVRVSWLUGVTEAWAHVRVPEAHUJZVSHAEUHUKZULZVTEAWAIVSVPEAIU
      JZVRIAEUHUMZULZABCFGDWBWCJKLUNUOUPVTMNEAWDNUDZDQWEWIDWMFUSPZWNWOWDAPVPVRW
      LXCVSVPXCWLFGDUQURUTWRXAABFWBWCJKVAUOVTMEWBWCBHITAAVSVPETPZVRVSATPXDIAEVB
      VJUMZWRXAVTMEAHWQVCVTMEAIWTVCVDVTNAGVEQZDVPVRAXFDUJZVSAXFFGDJXFVFVGVHZVCX
      BWDDVIVKVTMEWFWGCWJWKTTTXEWMWBDVLWMWCDVLVTXGWPWJMEWFRUFXHWQMDHEAXFVMVNVTX
      GWSWKMEWGRUFXHWTMDIEAXFVMVNVDVO $.
  $}

  ${
    ringvcl.b $e |- B = ( Base ` R ) $.
    ringvcl.t $e |- .x. = ( .r ` R ) $.
    $( Tuple-wise multiplication closure in monoids.  (Contributed by Stefan
       O'Rear, 5-Sep-2015.) $)
    ringvcl $p |- ( ( R e. Ring /\ X e. ( B ^m I ) /\ Y e. ( B ^m I ) ) ->
        ( X oF .x. Y ) e. ( B ^m I ) ) $=
      ( crg wcel cmgp cfv cmnd cmap co cof eqid ringmgp mgpbas mgpplusg syl3an1
      mndvcl ) BIJBKLZMJEADNOZJFUDJEFCPOUDJBUCUCQZRACDUCEFABUCUEGSBCUCUEHTUBUA
      $.
  $}

  ${
    $d j k A $.  $d j k B $.  $d j k C $.  $d j k G $.  $d j k U $.  $d j V $.
    $d j k .0. $.  $d j k ph $.  $d k W $.
    gsumcom3.b $e |- B = ( Base ` G ) $.
    gsumcom3.z $e |- .0. = ( 0g ` G ) $.
    gsumcom3.g $e |- ( ph -> G e. CMnd ) $.
    gsumcom3.a $e |- ( ph -> A e. V ) $.
    gsumcom3.r $e |- ( ph -> C e. W ) $.
    gsumcom3.f $e |- ( ( ph /\ ( j e. A /\ k e. C ) ) -> X e. B ) $.
    gsumcom3.u $e |- ( ph -> U e. Fin ) $.
    gsumcom3.n $e |- ( ( ph /\ ( ( j e. A /\ k e. C ) /\ -. j U k ) )
       -> X = .0. ) $.
    $( A commutative law for finitely supported iterated sums.  (Contributed by
       Stefan O'Rear, 2-Nov-2015.) $)
    gsumcom3 $p |- ( ph -> ( G gsum ( j e. A |-> ( G gsum ( k e. C |->
        X ) ) ) ) = ( G gsum ( k e. C |-> ( G gsum ( j e. A |-> X ) ) ) ) ) $=
      ( cmpt2 cgsu co cmpt gsumcom wcel cv adantr gsum2d2 ancom2s cfn cnvfi syl
      ccnv wa wbr wn wceq ancom vex brcnv notbii anbi12i sylan2b 3eqtr3d ) AHFG
      BDKUAUBUCHGFDBKUAUBUCHFBHGDKUDUBUCUDUBUCHGDHFBKUDUBUCUDUBUCABCDEFGHIJKLMN
      OPQRSTUEABCDEFGHIJKLMNOPADJUFFUGZBUFZQUHRSTUIADCBEUNZGFHJIKLMNOQABIUFGUGZ
      DUFZPUHAVGVJKCUFRUJAEUKUFVHUKUFSEULUMVJVGUOZVIVFVHUPZUQZUOAVGVJUOZVFVIEUP
      ZUQZUOKLURVKVNVMVPVJVGUSVLVOVIVFEGUTFUTVAVBVCTVDUIVE $.
  $}

  ${
    $d j k A $.  $d j k B $.  $d j k C $.  $d j k G $.  $d j k ph $.
    gsumcom3fi.b $e |- B = ( Base ` G ) $.
    gsumcom3fi.g $e |- ( ph -> G e. CMnd ) $.
    gsumcom3fi.a $e |- ( ph -> A e. Fin ) $.
    gsumcom3fi.r $e |- ( ph -> C e. Fin ) $.
    gsumcom3fi.f $e |- ( ( ph /\ ( j e. A /\ k e. C ) ) -> X e. B ) $.
    $( A commutative law for finite iterated sums.  (Contributed by Stefan
       O'Rear, 5-Sep-2015.) $)
    gsumcom3fi $p |- ( ph -> ( G gsum ( j e. A |-> ( G gsum ( k e. C |->
        X ) ) ) ) = ( G gsum ( k e. C |-> ( G gsum ( j e. A |-> X ) ) ) ) ) $=
      ( cxp cfn c0g cfv wcel cv wa eqid xpfi syl2anc wbr wn wceq biimpri adantl
      brxp pm2.24d impr gsumcom3 ) ABCDBDNZEFGOOHGPQZIUNUAJKLMABORDORUMORKLBDUB
      UCAESZBRFSZDRTZUOUPUMUDZUEHUNUFZAUQTURUSUQURAURUQUOUPBDUIUGUHUJUKUL $.
  $}

  ${
    mamucl.b $e |- B = ( Base ` R ) $.
    mamucl.r $e |- ( ph -> R e. Ring ) $.

    ${
      $d i j k B $.  $d i j k M $.  $d i j k N $.  $d i j k P $.  $d i j k R $.
      $d i j k X $.  $d i j k Y $.  $d i j k ph $.
      mamucl.f $e |- F = ( R maMul <. M , N , P >. ) $.
      mamucl.m $e |- ( ph -> M e. Fin ) $.
      mamucl.n $e |- ( ph -> N e. Fin ) $.
      mamucl.p $e |- ( ph -> P e. Fin ) $.
      mamucl.x $e |- ( ph -> X e. ( B ^m ( M X. N ) ) ) $.
      mamucl.y $e |- ( ph -> Y e. ( B ^m ( N X. P ) ) ) $.
      $( Operation closure of matrix multiplication.  (Contributed by Stefan
         O'Rear, 2-Sep-2015.)  (Proof shortened by AV, 23-Jul-2019.) $)
      mamucl $p |- ( ph -> ( X F Y ) e. ( B ^m ( M X. P ) ) ) $=
        ( vi co wcel vk vj cmulr cfv cmpt cgsu cmpt2 cxp cmap eqid mamuval wral
        cv crg wa ccmn ringcmn syl adantr cfn ad2antrr wf elmapi simplrl fovrnd
        simpr simplrr ringcl syl3anc ralrimiva gsummptcl ralrimivva cvv wb fvex
        cbs eqeltri xpfi syl2anc elmapg sylancr fmpt2 syl6rbbr mpbid eqeltrd )
        AHIESRUAFCDUBGRUMZUBUMZHSZWGUAUMZISZDUCUDZSZUEUFSZUGZBFCUHZUISZABCDWKRU
        BUAEFGUNHILJWKUJZKMNOPQUKAWMBTZUACULRFULZWNWPTZAWRRUAFCAWFFTZWICTZUOZUO
        ZBUBDGWLJADUPTZXCADUNTZXEKDUQURUSAGUTTXCNUSXDWLBTZUBGXDWGGTZUOZXFWHBTWJ
        BTXGAXFXCXHKVAXIWFWGBFGHAFGUHZBHVBZXCXHAHBXJUISTXKPHBXJVCURVAAXAXBXHVDX
        DXHVFZVEXIWGWIBGCIAGCUHZBIVBZXCXHAIBXMUISTXNQIBXMVCURVAXLAXAXBXHVGVEBDW
        KWHWJJWQVHVIVJVKVLAWTWOBWNVBZWSABVMTWOUTTZWTXOVNBDVPUDVMJDVPVOVQAFUTTCU
        TTXPMOFCVRVSBWOWNVMUTVTWARUAFCWMBWNWNUJWBWCWDWE $.
    $}

    ${
      $d i j k l M $.  $d i j k F $.  $d i k G $.  $d i k H $.  $d i k l I $.
      $d i j k l P $.  $d i j k l X $.  $d i j k l Y $.  $d i j k l Z $.
      $d i j k l ph $.  $d j l B $.  $d j l N $.  $d j l O $.  $d j l R $.
      mamuass.m $e |- ( ph -> M e. Fin ) $.
      mamuass.n $e |- ( ph -> N e. Fin ) $.
      mamuass.o $e |- ( ph -> O e. Fin ) $.
      mamuass.p $e |- ( ph -> P e. Fin ) $.
      mamuass.x $e |- ( ph -> X e. ( B ^m ( M X. N ) ) ) $.
      mamuass.y $e |- ( ph -> Y e. ( B ^m ( N X. O ) ) ) $.
      mamuass.z $e |- ( ph -> Z e. ( B ^m ( O X. P ) ) ) $.
      mamuass.f $e |- F = ( R maMul <. M , N , O >. ) $.
      mamuass.g $e |- G = ( R maMul <. M , O , P >. ) $.
      mamuass.h $e |- H = ( R maMul <. M , N , P >. ) $.
      mamuass.i $e |- I = ( R maMul <. N , O , P >. ) $.
      $( Matrix multiplication is associative, see also statement in [Lang]
         p. 505.  (Contributed by Stefan O'Rear, 5-Sep-2015.) $)
      mamuass $p |- ( ph -> ( ( X F Y ) G Z ) = ( X H ( Y I Z ) ) ) $=
        ( vi vk vj vl co wceq cv wral wcel cmulr cfv cmpt cgsu ccmn crg ringcmn
        wa syl adantr cfn ad2antrr cxp cmap elmapi simplrl simpr fovrnd adantrl
        wf simprr simprl simplrr adantrr ringcl gsumcom3fi mamufv oveq1d cplusg
        eqid syl3anc c0g anassrs cvv ovexd fvexd fsuppmptdm gsummulc1 mpteq2dva
        ringass syl13anc oveq2d 3eqtr2d gsummulc2 eqtr4d 3eqtr4d ralrimivva wfn
        anass1rs mamucl wb ffn 3syl eqfnov2 syl2anc mpbird ) ALMEULZNFULZLMNHUL
        ZGULZUMZUHUNZUIUNZXNULZXRXSXPULZUMZUICUOUHIUOZAYBUHUIICAXRIUPZXSCUPZVDZ
        VDZDUJKXRUJUNZXMULZYHXSNULZDUQURZULZUSZUTULZDUKJXRUKUNZLULZYOXSXOULZYKU
        LZUSZUTULZXTYAYGDUJKDUKJYPYOYHMULZYJYKULZYKULZUSZUTULZUSZUTULDUKJDUJKUU
        CUSUTULZUSZUTULYNYTYGKBJUJUKDUUCOADVAUPZYFADVBUPZUUIPDVCVEVFAKVGUPZYFSV
        FZAJVGUPZYFRVFZYGYHKUPZYOJUPZVDZVDZUUJYPBUPZUUBBUPZUUCBUPAUUJYFUUQPVHZY
        GUUPUUSUUOYGUUPVDZXRYOBIJLAIJVIZBLVPZYFUUPALBUVCVJULUPZUVDUALBUVCVKVEVH
        AYDYEUUPVLYGUUPVMZVNZVOZUURUUJUUABUPZYJBUPZUUTUVAUURYOYHBJKMAJKVIZBMVPZ
        YFUUQAMBUVKVJULUPZUVLUBMBUVKVKVEVHYGUUOUUPVQYGUUOUUPVRVNZYGUUOUVJUUPYGU
        UOVDZYHXSBKCNAKCVIZBNVPZYFUUOANBUVPVJULUPZUVQUCNBUVPVKVEVHYGUUOVMZAYDYE
        UUOVSVNZVTZBDYKUUAYJOYKWFZWAWGZBDYKYPUUBOUWBWAWGWBYGYMUUFDUTYGUJKYLUUEU
        VOYLDUKJYPUUAYKULZUSZUTULZYJYKULDUKJUWDYJYKULZUSZUTULUUEUVOYIUWFYJYKUVO
        BKDYKUKEXRYHIJVBLMUDOUWBAUUJYFUUOPVHZAIVGUPZYFUUOQVHAUUMYFUUORVHZAUUKYF
        UUOSVHAUVEYFUUOUAVHAUVMYFUUOUBVHAYDYEUUOVLUVSWCWDUVOJBDWEURZDYKUKVGUWDY
        JDWHURZOUWMWFZUWLWFZUWBUWIUWKUVTYGUUOUUPUWDBUPZUURUUJUUSUVIUWPUVAUVHUVN
        BDYKYPUUAOUWBWAWGWIUVOUKJUWEWJWJUWDUWMUWEWFUWKUVOUUPVDYPUUAYKWKUVODWHWL
        WMWNUVOUWHUUDDUTUVOUKJUWGUUCYGUUOUUPUWGUUCUMZUURUUJUUSUVIUVJUWQUVAUVHUV
        NUWABDYKYPUUAYJOUWBWPWQWIWOWRWSWOWRYGYSUUHDUTYGUKJYRUUGUVBYRYPDUJKUUBUS
        ZUTULZYKULUUGUVBYQUWSYPYKUVBBCDYKUJHYOXSJKVBMNUGOUWBAUUJYFUUPPVHZAUUMYF
        UUPRVHAUUKYFUUPSVHZACVGUPZYFUUPTVHAUVMYFUUPUBVHAUVRYFUUPUCVHUVFAYDYEUUP
        VSWCWRUVBKBUWLDYKUJVGUUBYPUWMOUWNUWOUWBUWTUXAUVGYGUUOUUPUUTUWCXEUVBUJKU
        WRWJWJUUBUWMUWRWFUXAUVBUUOVDUUAYJYKWKUVBDWHWLWMWTXAWOWRXBYGBCDYKUJFXRXS
        IKVBXMNUEOUWBAUUJYFPVFZAUWJYFQVFZUULAUXBYFTVFZAXMBIKVIVJULUPYFABKDEIJLM
        OPUDQRSUAUBXFZVFAUVRYFUCVFAYDYEVRZAYDYEVQZWCYGBCDYKUKGXRXSIJVBLXOUFOUWB
        UXCUXDUUNUXEAUVEYFUAVFAXOBJCVIVJULUPYFABCDHJKMNOPUGRSTUBUCXFZVFUXGUXHWC
        XBXCAXNICVIZXDZXPUXJXDZXQYCXGAXNBUXJVJULZUPUXJBXNVPUXKABCDFIKXMNOPUEQST
        UXFUCXFXNBUXJVKUXJBXNXHXIAXPUXMUPUXJBXPVPUXLABCDGIJLXOOPUFQRTUAUXIXFXPB
        UXJVKUXJBXPXHXIUHUIICXNXPXJXKXL $.
    $}

    ${
      mamudi.f $e |- F = ( R maMul <. M , N , O >. ) $.
      mamudi.m $e |- ( ph -> M e. Fin ) $.
      mamudi.n $e |- ( ph -> N e. Fin ) $.
      mamudi.o $e |- ( ph -> O e. Fin ) $.

      ${
        $d i j k .+ $.  $d j B $.  $d i j k M $.  $d i j k O $.  $d i j k ph $.
        $d i k F $.  $d j N $.  $d i j k X $.  $d i j k Y $.  $d i j k Z $.
        $d j R $.
        mamudi.p $e |- .+ = ( +g ` R ) $.
        mamudi.x $e |- ( ph -> X e. ( B ^m ( M X. N ) ) ) $.
        mamudi.y $e |- ( ph -> Y e. ( B ^m ( M X. N ) ) ) $.
        mamudi.z $e |- ( ph -> Z e. ( B ^m ( N X. O ) ) ) $.
        $( Matrix multiplication distributes over addition on the left.
           (Contributed by Stefan O'Rear, 5-Sep-2015.)  (Proof shortened by AV,
           23-Jul-2019.) $)
        mamudi $p |- ( ph -> ( ( X oF .+ Y ) F Z ) =
            ( ( X F Z ) oF .+ ( Y F Z ) ) ) $=
          ( vi vk vj cof co wceq cv wral wcel wa cfv cmpt cgsu ccmn crg ringcmn
          cmulr syl adantr cfn ad2antrr cxp wf cmap elmapi simplrl simpr fovrnd
          simplrr eqid ringcl syl3anc gsummptfidmadd2 cop wfn 3syl xpfi syl2anc
          opelxpi adantlr adantll fnfvof syl22anc df-ov oveq12i 3eqtr4g ringdir
          ffn oveq1d syl13anc eqtrd mpteq2dva eqidd eqtr4d oveq2d simprl simprr
          offval2 mamufv oveq12d 3eqtr4d cmnd ringmnd mndvcl ralrimivva eqfnov2
          mamucl adantl wb mpbird ) AIJCUEZUFZKEUFZIKEUFZJKEUFZXLUFZUGZUBUHZUCU
          HZXNUFZXSXTXQUFZUGZUCHUIUBFUIZAYCUBUCFHAXSFUJZXTHUJZUKZUKZDUDGXSUDUHZ
          XMUFZYIXTKUFZDURULZUFZUMZUNUFZXSXTXOUFZXSXTXPUFZCUFZYAYBYHDUDGXSYIIUF
          ZYKYLUFZUMZUDGXSYIJUFZYKYLUFZUMZXLUFZUNUFDUUAUNUFZDUUDUNUFZCUFYOYRYHU
          DGBYTUUCCUUADUUDLRADUOUJZYGADUPUJZUUHMDUQUSUTAGVAUJZYGPUTZYHYIGUJZUKZ
          UUIYSBUJZYKBUJZYTBUJAUUIYGUULMVBZUUMXSYIBFGIAFGVCZBIVDZYGUULAIBUUQVEU
          FZUJZUURSIBUUQVFZUSVBAYEYFUULVGZYHUULVHZVIZUUMYIXTBGHKAGHVCZBKVDZYGUU
          LAKBUVEVEUFUJZUVFUAKBUVEVFUSVBUVCAYEYFUULVJVIZBDYLYSYKLYLVKZVLVMZUUMU
          UIUUBBUJZUUOUUCBUJUUPUUMXSYIBFGJAUUQBJVDZYGUULAJUUSUJZUVLTJBUUQVFZUSV
          BUVBUVCVIZUVHBDYLUUBYKLUVIVLVMZUUAVKUUDVKVNYHYNUUEDUNYHYNUDGYTUUCCUFZ
          UMUUEYHUDGYMUVQUUMYMYSUUBCUFZYKYLUFZUVQUUMYJUVRYKYLUUMXSYIVOZXMULZUVT
          IULZUVTJULZCUFZYJUVRUUMIUUQVPZJUUQVPZUUQVAUJZUVTUUQUJZUWAUWDUGUUMUUTU
          URUWEAUUTYGUULSVBUVAUUQBIWIVQUUMUVMUVLUWFAUVMYGUULTVBUVNUUQBJWIVQAUWG
          YGUULAFVAUJZUUJUWGOPFGVRVSVBYGUULUWHAYEUULUWHYFXSYIFGVTWAWBUUQCIJVAUV
          TWCWDXSYIXMWEYSUWBUUBUWCCXSYIIWEXSYIJWEWFWGWJUUMUUIUUNUVKUUOUVSUVQUGU
          UPUVDUVOUVHBCDYLYSUUBYKLRUVIWHWKWLWMYHUDGYTUUCCUUAUUDVABBUUKUVJUVPYHU
          UAWNYHUUDWNWSWOWPYHYPUUFYQUUGCYHBHDYLUDEXSXTFGUPIKNLUVIAUUIYGMUTZAUWI
          YGOUTZUUKAHVAUJZYGQUTZAUUTYGSUTAUVGYGUAUTZAYEYFWQZAYEYFWRZWTYHBHDYLUD
          EXSXTFGUPJKNLUVIUWJUWKUUKUWMAUVMYGTUTUWNUWOUWPWTXAXBYHBHDYLUDEXSXTFGU
          PXMKNLUVIUWJUWKUUKUWMAXMUUSUJZYGADXCUJZUUTUVMUWQAUUIUWRMDXDUSZSTBCUUQ
          DIJLRXEVMZUTUWNUWOUWPWTYHXSXTVOZXQULZUXAXOULZUXAXPULZCUFZYBYRYHXOFHVC
          ZVPZXPUXFVPZUXFVAUJZUXAUXFUJZUXBUXEUGAUXGYGAXOBUXFVEUFZUJZUXFBXOVDUXG
          ABHDEFGIKLMNOPQSUAXHZXOBUXFVFUXFBXOWIVQUTAUXHYGAXPUXKUJZUXFBXPVDUXHAB
          HDEFGJKLMNOPQTUAXHZXPBUXFVFUXFBXPWIVQUTAUXIYGAUWIUWLUXIOQFHVRVSUTYGUX
          JAXSXTFHVTXIUXFCXOXPVAUXAWCWDXSXTXQWEYPUXCYQUXDCXSXTXOWEXSXTXPWEWFWGX
          BXFAXNUXFVPZXQUXFVPZXRYDXJAXNUXKUJUXFBXNVDUXPABHDEFGXMKLMNOPQUWTUAXHX
          NBUXFVFUXFBXNWIVQAXQUXKUJZUXFBXQVDUXQAUWRUXLUXNUXRUWSUXMUXOBCUXFDXOXP
          LRXEVMXQBUXFVFUXFBXQWIVQUBUCFHXNXQXGVSXK $.
      $}

      ${
        $d i j k .+ $.  $d j B $.  $d i j k M $.  $d i j k O $.  $d i j k ph $.
        $d i k F $.  $d j N $.  $d i j k X $.  $d i j k Y $.  $d i j k Z $.
        $d j R $.
        mamudir.p $e |- .+ = ( +g ` R ) $.
        mamudir.x $e |- ( ph -> X e. ( B ^m ( M X. N ) ) ) $.
        mamudir.y $e |- ( ph -> Y e. ( B ^m ( N X. O ) ) ) $.
        mamudir.z $e |- ( ph -> Z e. ( B ^m ( N X. O ) ) ) $.
        $( Matrix multiplication distributes over addition on the right.
           (Contributed by Stefan O'Rear, 5-Sep-2015.)  (Proof shortened by AV,
           23-Jul-2019.) $)
        mamudir $p |- ( ph -> ( X F ( Y oF .+ Z ) ) =
            ( ( X F Y ) oF .+ ( X F Z ) ) ) $=
          ( vi vk vj cof co wceq cv wral wcel wa cfv cmpt cgsu ccmn crg ringcmn
          cmulr syl adantr cfn ad2antrr cxp wf cmap elmapi simplrl simpr fovrnd
          simplrr eqid syl3anc gsummptfidmadd2 cop wfn ffn xpfi syl2anc opelxpi
          ringcl ancoms adantll fnfvof syl22anc oveq12i 3eqtr4g oveq2d syl13anc
          df-ov ringdi eqtrd eqidd offval2 eqtr4d simprl simprr oveq12d 3eqtr4d
          mpteq2dva mamufv cmnd ringmnd mndvcl mamucl 3syl adantl ralrimivva wb
          eqfnov2 mpbird ) AIJKCUEZUFZEUFZIJEUFZIKEUFZXKUFZUGZUBUHZUCUHZXMUFZXR
          XSXPUFZUGZUCHUIUBFUIZAYBUBUCFHAXRFUJZXSHUJZUKZUKZDUDGXRUDUHZIUFZYHXSX
          LUFZDURULZUFZUMZUNUFZXRXSXNUFZXRXSXOUFZCUFZXTYAYGDUDGYIYHXSJUFZYKUFZU
          MZUDGYIYHXSKUFZYKUFZUMZXKUFZUNUFDYTUNUFZDUUCUNUFZCUFYNYQYGUDGBYSUUBCY
          TDUUCLRADUOUJZYFADUPUJZUUGMDUQUSUTAGVAUJZYFPUTZYGYHGUJZUKZUUHYIBUJZYR
          BUJZYSBUJAUUHYFUUKMVBZUULXRYHBFGIAFGVCZBIVDZYFUUKAIBUUPVEUFUJZUUQSIBU
          UPVFUSVBAYDYEUUKVGYGUUKVHZVIZUULYHXSBGHJAGHVCZBJVDZYFUUKAJBUVAVEUFZUJ
          ZUVBTJBUVAVFUSVBZUUSAYDYEUUKVJZVIZBDYKYIYRLYKVKZVTVLZUULUUHUUMUUABUJZ
          UUBBUJUUOUUTUULYHXSBGHKAUVABKVDZYFUUKAKUVCUJZUVKUAKBUVAVFUSVBZUUSUVFV
          IZBDYKYIUUALUVHVTVLZYTVKUUCVKVMYGYMUUDDUNYGYMUDGYSUUBCUFZUMUUDYGUDGYL
          UVPUULYLYIYRUUACUFZYKUFZUVPUULYJUVQYIYKUULYHXSVNZXLULZUVSJULZUVSKULZC
          UFZYJUVQUULJUVAVOZKUVAVOZUVAVAUJZUVSUVAUJZUVTUWCUGUULUVBUWDUVEUVABJVP
          USUULUVKUWEUVMUVABKVPUSAUWFYFUUKAUUIHVAUJZUWFPQGHVQVRVBYFUUKUWGAYEUUK
          UWGYDUUKYEUWGYHXSGHVSWAWBWBUVACJKVAUVSWCWDYHXSXLWIYRUWAUUAUWBCYHXSJWI
          YHXSKWIWEWFWGUULUUHUUMUUNUVJUVRUVPUGUUOUUTUVGUVNBCDYKYIYRUUALRUVHWJWH
          WKWSYGUDGYSUUBCYTUUCVABBUUJUVIUVOYGYTWLYGUUCWLWMWNWGYGYOUUEYPUUFCYGBH
          DYKUDEXRXSFGUPIJNLUVHAUUHYFMUTZAFVAUJZYFOUTZUUJAUWHYFQUTZAUURYFSUTZAU
          VDYFTUTAYDYEWOZAYDYEWPZWTYGBHDYKUDEXRXSFGUPIKNLUVHUWIUWKUUJUWLUWMAUVL
          YFUAUTUWNUWOWTWQWRYGBHDYKUDEXRXSFGUPIXLNLUVHUWIUWKUUJUWLUWMAXLUVCUJZY
          FADXAUJZUVDUVLUWPAUUHUWQMDXBUSZTUABCUVADJKLRXCVLZUTUWNUWOWTYGXRXSVNZX
          PULZUWTXNULZUWTXOULZCUFZYAYQYGXNFHVCZVOZXOUXEVOZUXEVAUJZUWTUXEUJZUXAU
          XDUGAUXFYFAXNBUXEVEUFZUJZUXEBXNVDUXFABHDEFGIJLMNOPQSTXDZXNBUXEVFUXEBX
          NVPXEUTAUXGYFAXOUXJUJZUXEBXOVDUXGABHDEFGIKLMNOPQSUAXDZXOBUXEVFUXEBXOV
          PXEUTAUXHYFAUWJUWHUXHOQFHVQVRUTYFUXIAXRXSFHVSXFUXECXNXOVAUWTWCWDXRXSX
          PWIYOUXBYPUXCCXRXSXNWIXRXSXOWIWEWFWRXGAXMUXEVOZXPUXEVOZXQYCXHAXMUXJUJ
          UXEBXMVDUXOABHDEFGIXLLMNOPQSUWSXDXMBUXEVFUXEBXMVPXEAXPUXJUJZUXEBXPVDU
          XPAUWQUXKUXMUXQUWRUXLUXNBCUXEDXNXOLRXCVLXPBUXEVFUXEBXPVPXEUBUCFHXMXPX
          IVRXJ $.
      $}

      ${
        $d i k F $.  $d i j k M $.  $d i j k N $.  $d i j k O $.
        $d i j k .x. $.  $d i j k X $.  $d i j k Y $.  $d i j k Z $.
        $d i j k ph $.  $d j B $.  $d j R $.
        mamuvs1.t $e |- .x. = ( .r ` R ) $.
        mamuvs1.x $e |- ( ph -> X e. B ) $.
        mamuvs1.y $e |- ( ph -> Y e. ( B ^m ( M X. N ) ) ) $.
        mamuvs1.z $e |- ( ph -> Z e. ( B ^m ( N X. O ) ) ) $.
        $( Matrix multiplication distributes over scalar multiplication on the
           left.  (Contributed by Stefan O'Rear, 5-Sep-2015.) $)
        mamuvs1 $p |- ( ph -> ( ( ( ( M X. N ) X. { X } ) oF .x. Y ) F Z ) =
              ( ( ( M X. O ) X. { X } ) oF .x. ( Y F Z ) ) ) $=
          ( vi vk vj cxp csn cof co wceq wral wcel cmpt cgsu cplusg cfv cfn c0g
          cv wa eqid crg adantr ad2antrr cmap elmapi syl simplrl fovrnd simplrr
          wf simpr ringcl syl3anc ovexd fvexd fsuppmptdm gsummulc2 df-ov simprl
          cvv cop opelxpi sylan xpfi syl2anc wfn ffn 3syl eqcomi a1i ofc1 mpdan
          syl5eq oveq1d ringass syl13anc mpteq2dva oveq2d simprr mamufv 3eqtr4d
          eqtrd fconst6g wb eqeltri elmapg sylancr mpbird ringvcl adantl mamucl
          cbs fvex ralrimivva eqfnov2 ) AFGUEZIUFZUEZJDUGZUHZKEUHZFHUEZXQUEZJKE
          UHZXSUHZUIZUBURZUCURZYAUHZYGYHYEUHZUIZUCHUJUBFUJZAYKUBUCFHAYGFUKZYHHU
          KZUSZUSZCUDGYGUDURZXTUHZYQYHKUHZDUHZULZUMUHZIYGYHYDUHZDUHZYIYJYPCUDGI
          YGYQJUHZYSDUHZDUHZULZUMUHICUDGUUFULZUMUHZDUHUUBUUDYPGBCUNUOZCDUDUPUUF
          ICUQUOZLUULUTUUKUTRACVAUKZYOMVBZAGUPUKZYOPVBZAIBUKZYOSVBZYPYQGUKZUSZU
          UMUUEBUKZYSBUKZUUFBUKAUUMYOUUSMVCZUUTYGYQBFGJAXPBJVJZYOUUSAJBXPVDUHZU
          KZUVDTJBXPVEZVFVCAYMYNUUSVGYPUUSVKZVHZUUTYQYHBGHKAGHUEZBKVJZYOUUSAKBU
          VJVDUHUKZUVKUAKBUVJVEVFVCUVHAYMYNUUSVIVHZBCDUUEYSLRVLVMYPUDGUUIVTVTUU
          FUULUUIUTUUPUUTUUEYSDVNYPCUQVOVPVQYPUUAUUHCUMYPUDGYTUUGUUTYTIUUEDUHZY
          SDUHZUUGUUTYRUVNYSDUUTYRYGYQWAZXTUOZUVNYGYQXTVRUUTUVPXPUKZUVQUVNUIYPY
          MUUSUVRAYMYNVSZYGYQFGWBWCUUTXPIUUEDJUPBUVPAXPUPUKZYOUUSAFUPUKZUUOUVTO
          PFGWDWEZVCAUUQYOUUSSVCZAJXPWFZYOUUSAUVFUVDUWDTUVGXPBJWGWHVCUVPJUOZUUE
          UIUUTUVRUSUUEUWEYGYQJVRWIWJWKWLWMWNUUTUUMUUQUVAUVBUVOUUGUIUVCUWCUVIUV
          MBCDIUUEYSLRWOWPXBWQWRYPUUCUUJIDYPBHCDUDEYGYHFGVAJKNLRUUNAUWAYOOVBZUU
          PAHUPUKZYOQVBZAUVFYOTVBAUVLYOUAVBZUVSAYMYNWSZWTWRXAYPBHCDUDEYGYHFGVAX
          TKNLRUUNUWFUUPUWHAXTUVEUKZYOAUUMXRUVEUKZUVFUWKMAUWLXPBXRVJZAUUQUWMSXP
          IBXCVFABVTUKZUVTUWLUWMXDBCXLUOVTLCXLXMXEZUWBBXPXRVTUPXFXGXHTBCDXPXRJL
          RXIVMZVBUWIUVSUWJWTYPYJYGYHWAZYEUOZUUDYGYHYEVRYPUWQYBUKZUWRUUDUIYOUWS
          AYGYHFHWBXJYPYBIUUCDYDUPBUWQAYBUPUKZYOAUWAUWGUWTOQFHWDWEZVBUURAYDYBWF
          ZYOAYDBYBVDUHZUKZYBBYDVJUXBABHCEFGJKLMNOPQTUAXKZYDBYBVEYBBYDWGWHVBUWQ
          YDUOZUUCUIYPUWSUSUUCUXFYGYHYDVRWIWJWKWLWMXAXNAYAYBWFZYEYBWFZYFYLXDAYA
          UXCUKYBBYAVJUXGABHCEFGXTKLMNOPQUWPUAXKYABYBVEYBBYAWGWHAYEUXCUKZYBBYEV
          JUXHAUUMYCUXCUKZUXDUXIMAUXJYBBYCVJZAUUQUXKSYBIBXCVFAUWNUWTUXJUXKXDUWO
          UXABYBYCVTUPXFXGXHUXEBCDYBYCYDLRXIVMYEBYBVEYBBYEWGWHUBUCFHYAYEXOWEXH
          $.
      $}
    $}
  $}

  ${
    $d i k F $.  $d i j k M $.  $d i j k N $.  $d i j k O $.  $d i j k .x. $.
    $d i j k X $.  $d i j k Y $.  $d i j k Z $.  $d i j k ph $.  $d j B $.
    $d j R $.
    mamuvs2.r $e |- ( ph -> R e. CRing ) $.
    mamuvs2.b $e |- B = ( Base ` R ) $.
    mamuvs2.t $e |- .x. = ( .r ` R ) $.
    mamuvs2.f $e |- F = ( R maMul <. M , N , O >. ) $.
    mamuvs2.m $e |- ( ph -> M e. Fin ) $.
    mamuvs2.n $e |- ( ph -> N e. Fin ) $.
    mamuvs2.o $e |- ( ph -> O e. Fin ) $.
    mamuvs2.x $e |- ( ph -> X e. ( B ^m ( M X. N ) ) ) $.
    mamuvs2.y $e |- ( ph -> Y e. B ) $.
    mamuvs2.z $e |- ( ph -> Z e. ( B ^m ( N X. O ) ) ) $.
    $( Matrix multiplication distributes over scalar multiplication on the
       left.  (Contributed by Stefan O'Rear, 5-Sep-2015.)  (Proof shortened by
       AV, 22-Jul-2019.) $)
    mamuvs2 $p |- ( ph -> ( X F ( ( ( N X. O ) X. { Y } ) oF .x. Z ) ) =
          ( ( ( M X. O ) X. { Y } ) oF .x. ( X F Z ) ) ) $=
      ( vi vk vj cxp csn cof co wceq cv wral wcel cmpt cgsu cop cfv df-ov simpr
      simplrr opelxpi syl2anc cfn xpfi ad2antrr wfn cmap elmapi ffn 3syl eqcomi
      wa wf a1i ofc1 mpdan syl5eq oveq2d cmgp ccmn ccrg eqid crngmgp syl fovrnd
      mgpbas mgpplusg cmn12 syl13anc eqtrd mpteq2dva cplusg c0g crngring adantr
      simplrl crg ringcl syl3anc cvv ovexd fsuppmptdm gsummulc2 fconst6g wb cbs
      eqeltri elmapg sylancr mpbird ringvcl simprl simprr mamufv adantl syl5eqr
      fvex mamucl 3eqtr4d ralrimivva eqfnov2 ) AIGHUEZJUFZUEZKDUGZUHZEUHZFHUEZY
      BUEZIKEUHZYDUHZUIZUBUJZUCUJZYFUHZYLYMYJUHZUIZUCHUKUBFUKZAYPUBUCFHAYLFULZY
      MHULZVKZVKZCUDGYLUDUJZIUHZUUBYMYEUHZDUHZUMZUNUHZJCUDGUUCUUBYMKUHZDUHZUMZU
      NUHZDUHZYNYOUUAUUGCUDGJUUIDUHZUMZUNUHUULUUAUUFUUNCUNUUAUDGUUEUUMUUAUUBGUL
      ZVKZUUEUUCJUUHDUHZDUHZUUMUUPUUDUUQUUCDUUPUUDUUBYMUOZYEUPZUUQUUBYMYEUQUUPU
      USYAULZUUTUUQUIUUPUUOYSUVAUUAUUOURZAYRYSUUOUSZUUBYMGHUTVAUUPYAJUUHDKVBBUU
      SAYAVBULZYTUUOAGVBULZHVBULZUVDQRGHVCVAZVDAJBULZYTUUOTVDZAKYAVEZYTUUOAKBYA
      VFUHZULZYABKVLZUVJUAKBYAVGZYABKVHVIVDUUSKUPZUUHUIUUPUVAVKUUHUVOUUBYMKUQVJ
      VMVNVOVPVQUUPCVRUPZVSULZUUCBULZUVHUUHBULZUURUUMUIAUVQYTUUOACVTULZUVQLCUVP
      UVPWAZWBWCVDUUPYLUUBBFGIAFGUEZBIVLZYTUUOAIBUWBVFUHULZUWCSIBUWBVGWCVDAYRYS
      UUOWOUVBWDZUVIUUPUUBYMBGHKAUVMYTUUOAUVLUVMUAUVNWCVDUVBUVCWDZBDUVPUUCJUUHB
      CUVPUWAMWECDUVPUWANWFWGWHWIWJVQUUAGBCWKUPZCDUDVBUUIJCWLUPZMUWHWAUWGWANACW
      PULZYTAUVTUWILCWMWCZWNAUVEYTQWNZAUVHYTTWNZUUPUWIUVRUVSUUIBULAUWIYTUUOUWJV
      DUWEUWFBCDUUCUUHMNWQWRUUAUDGUUJWSWSUUIUWHUUJWAUWKUUPUUCUUHDWTUWHWSULUUACW
      LXPVMXAXBWIUUABHCDUDEYLYMFGVTIYEOMNAUVTYTLWNZAFVBULZYTPWNZUWKAUVFYTRWNZAU
      WDYTSWNZAYEUVKULZYTAUWIYCUVKULZUVLUWRUWJAUWSYABYCVLZAUVHUWTTYAJBXCWCABWSU
      LZUVDUWSUWTXDBCXEUPWSMCXEXPXFZUVGBYAYCWSVBXGXHXIUABCDYAYCKMNXJWRZWNAYRYSX
      KZAYRYSXLZXMUUAYOYLYMUOZYJUPZUULYLYMYJUQUUAUXFYGULZUXGUULUIYTUXHAYLYMFHUT
      XNUUAYGJUUKDYIVBBUXFAYGVBULZYTAUWNUVFUXIPRFHVCVAZWNUWLAYIYGVEZYTAYIBYGVFU
      HZULZYGBYIVLUXKABHCEFGIKMUWJOPQRSUAXQZYIBYGVGYGBYIVHVIWNUUAUXFYIUPZUUKUIU
      XHUUAUXOYLYMYIUHUUKYLYMYIUQUUABHCDUDEYLYMFGVTIKOMNUWMUWOUWKUWPUWQAUVLYTUA
      WNUXDUXEXMXOWNVNVOVPXRXSAYFYGVEZYJYGVEZYKYQXDAYFUXLULYGBYFVLUXPABHCEFGIYE
      MUWJOPQRSUXCXQYFBYGVGYGBYFVHVIAYJUXLULZYGBYJVLUXQAUWIYHUXLULZUXMUXRUWJAUX
      SYGBYHVLZAUVHUXTTYGJBXCWCAUXAUXIUXSUXTXDUXBUXJBYGYHWSVBXGXHXIUXNBCDYGYHYI
      MNXJWRYJBYGVGYGBYJVHVIUBUCFHYFYJXTVAXI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Square matrices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
In the following, the square matrix algebra is defined as extensible structure
` Mat ` . In this subsection, however, only square matrices and their basic
properties are regarded.  This includes showing that ` ( N Mat R ) ` is
a left module, see ~ matlmod .  That ` ( N Mat R ) ` is a ring and an
associative algebra is shown in the next subsection, after theorems about the
identity matrix are available.  Nevertheless, ` ( N Mat R ) ` is called "matrix
ring" or "matrix algebra" already in this subsection.
$)

  $c Mat $.

  $( Syntax for the square matrix algebra. $)
  cmat $a class Mat $.

  ${
    $d n r $.
    $( Define the algebra of n x n matrices over a ring r.  (Contributed by
       Stefan O'Rear, 31-Aug-2015.) $)
    df-mat $a |- Mat = ( n e. Fin , r e. _V |-> ( ( r freeLMod ( n X. n ) )
        sSet <. ( .r ` ndx ) , ( r maMul <. n , n , n >. ) >. ) ) $.
  $}

  ${
    $d n r $.
    $( There is no matrix with a proper class either as dimension or as
       underlying ring.  (Contributed by AV, 28-Dec-2018.) $)
    matbas0pc $p |- ( -. ( N e. _V /\ R e. _V )
                      -> ( Base ` ( N Mat R ) ) = (/) ) $=
      ( vn vr cvv wcel wa wn cmat co cbs cfv c0 cfn cv cxp cfrlm cnx cmulr cotp
      cmmul cop csts df-mat reldmmpt2 ovprc fveq2d base0 syl6eqr ) BEFAEFGHZBAI
      JZKLMKLMUJUKMKBAICDNEDOZCOZUMPQJRSLULUMUMUMTUAJUBUCJICDUDUEUFUGUHUI $.

    $( There is no matrix for a not finite dimension or a proper class as the
       underlying ring.  (Contributed by AV, 28-Dec-2018.) $)
    matbas0 $p |- ( -. ( N e. Fin /\ R e. _V )
                    -> ( Base ` ( N Mat R ) ) = (/) ) $=
      ( vn vr cfn wcel cvv wa wn cmat co cbs cfv c0 cv cxp cfrlm cnx cmulr cotp
      cmmul cop csts df-mat mpt2ndm0 fveq2d base0 syl6eqr ) BEFAGFHIZBAJKZLMNLM
      NUIUJNLCDDOZCOZULPQKRSMUKULULULTUAKUBUCKJBAEGCDUDUEUFUGUH $.
  $}

  ${
    $d n r G $.  $d n r N $.  $d n r R $.  $d n r .x. $.
    matval.a $e |- A = ( N Mat R ) $.
    matval.g $e |- G = ( R freeLMod ( N X. N ) ) $.
    matval.t $e |- .x. = ( R maMul <. N , N , N >. ) $.
    $( Value of the matrix algebra.  (Contributed by Stefan O'Rear,
       4-Sep-2015.) $)
    matval $p |- ( ( N e. Fin /\ R e. V ) ->
        A = ( G sSet <. ( .r ` ndx ) , .x. >. ) ) $=
      ( vn vr cfn wcel wa cmat co csts wceq cfrlm cmmul cnx cfv cop cvv elex cv
      cmulr cxp cotp id sqxpeqd oveqan12rd syl6eqr oteq123d opeq2d oveq12d ovex
      df-mat ovmpt2a sylan2 syl5eq ) ELMZBFMZNAEBOPZDUAUGUBZCUCZQPZGVCVBBUDMVDV
      GRBFUEJKEBLUDKUFZJUFZVIUHZSPZVEVHVIVIVIUIZTPZUCZQPVGOVIERZVHBRZNZVKDVNVFQ
      VQVKBEEUHZSPDVPVOVHBVJVRSVPUJZVOVIEVOUJZUKULHUMVQVMCVEVQVMBEEEUIZTPCVPVOV
      HBVLWATVSVOVIEVIEVIEVTVTVTUNULIUMUOUPJKURDVFQUQUSUTVA $.
  $}

  ${
    $d a b $.
    matrcl.a $e |- A = ( N Mat R ) $.
    matrcl.b $e |- B = ( Base ` A ) $.
    $( Reverse closure for the matrix algebra.  (Contributed by Stefan O'Rear,
       5-Sep-2015.) $)
    matrcl $p |- ( X e. B -> ( N e. Fin /\ R e. _V ) ) $=
      ( va vb wcel c0 wceq cfn cvv wa cbs cfv cmat co cv n0i wn cxp cfrlm cmulr
      cnx cotp cmmul cop csts df-mat mpt2ndm0 syl5eq fveq2d base0 3eqtr4g nsyl2
      ) EBJBKLDMJCNJOZBEUAURUBZAPQKPQBKUSAKPUSADCRSKFHIITZHTZVAUCUDSUFUEQUTVAVA
      VAUGUHSUIUJSRDCMNHIUKULUMUNGUOUPUQ $.
  $}

  ${
    matbas.a $e |- A = ( N Mat R ) $.
    matbas.g $e |- G = ( R freeLMod ( N X. N ) ) $.
    $( The matrix ring has the same base set as its underlying group.
       (Contributed by Stefan O'Rear, 4-Sep-2015.) $)
    matbas $p |- ( ( N e. Fin /\ R e. V ) -> ( Base ` G ) = ( Base ` A ) ) $=
      ( cfn wcel wa cbs cfv cnx cmulr cotp cmmul co cop c1 c3 csts eqid basendx
      matval fveq2d baseid 1re ltneii mulrndx neeqtrri eqnetri setsnid syl6reqr
      1lt3 ) DHIBEIJZAKLCMNLZBDDDOPQZRUAQZKLCKLUOAURKABUQCDEFGUQUBUDUEUQUPKCUFM
      KLSUPUCSTUPSTUGUNUHUIUJUKULUM $.

    $( The matrix ring has the same addition as its underlying group.
       (Contributed by Stefan O'Rear, 4-Sep-2015.) $)
    matplusg $p |- ( ( N e. Fin /\ R e. V ) -> ( +g ` G ) = ( +g ` A ) ) $=
      ( cfn wcel wa cplusg cfv cnx cmulr cotp cmmul co cop c2 c3 matval plusgid
      csts fveq2d plusgndx 2re ltneii mulrndx neeqtrri eqnetri setsnid syl6reqr
      eqid 2lt3 ) DHIBEIJZAKLCMNLZBDDDOPQZRUCQZKLCKLUOAURKABUQCDEFGUQUMUAUDUQUP
      KCUBMKLSUPUESTUPSTUFUNUGUHUIUJUKUL $.

    $( The matrix ring has the same scalars as its underlying linear structure.
       (Contributed by Stefan O'Rear, 4-Sep-2015.) $)
    matsca $p |- ( ( N e. Fin /\ R e. V ) ->
        ( Scalar ` G ) = ( Scalar ` A ) ) $=
      ( cfn wcel wa csca cfv cnx cmulr cotp cmmul co wne c5 c3 csts eqid matval
      cop fveq2d scaid 3re gtneii scandx mulrndx neeq12i mpbir setsnid syl6reqr
      3lt5 ) DHIBEIJZAKLCMNLZBDDDOPQZUDUAQZKLCKLUPAUSKABURCDEFGURUBUCUEURUQKCUF
      MKLZUQRSTRTSUGUOUHUTSUQTUIUJUKULUMUN $.

    $( The matrix ring has the same scalar multiplication as its underlying
       linear structure.  (Contributed by Stefan O'Rear, 4-Sep-2015.) $)
    matvsca $p |- ( ( N e. Fin /\ R e. V ) -> ( .s ` G ) = ( .s ` A ) ) $=
      ( cfn wcel wa cvsca cfv cnx cmulr cotp cmmul co cop c6 c3 csts matval 3re
      eqid fveq2d vscaid vscandx 3lt6 mulrndx neeqtrri eqnetri setsnid syl6reqr
      gtneii ) DHIBEIJZAKLCMNLZBDDDOPQZRUAQZKLCKLUOAURKABUQCDEFGUQUDUBUEUQUPKCU
      FMKLSUPUGSTUPTSUCUHUNUIUJUKULUM $.

    $d x y A $.  $d x y G $.  $d x y N $.  $d x y R $.  $d x y V $.
    $( The matrix ring has the same zero as its underlying linear structure.
       (Contributed by Stefan O'Rear, 4-Sep-2015.) $)
    mat0 $p |- ( ( N e. Fin /\ R e. V ) -> ( 0g ` G ) = ( 0g ` A ) ) $=
      ( vx vy cfn wcel wa cbs cfv eqidd matbas cv cplusg matplusg oveqdr
      grpidpropd ) DJKBEKLZHICMNZCAUBUCOABCDEFGPUBHQUCKIQUCKLHICRNARNABCDEFGSTU
      A $.

    $( The matrix ring has the same additive inverse as its underlying linear
       structure.  (Contributed by Stefan O'Rear, 4-Sep-2015.) $)
    matinvg $p |- ( ( N e. Fin /\ R e. V ) -> ( invg ` G ) = ( invg ` A ) ) $=
      ( vx vy cfn wcel wa cbs cfv eqidd matbas cv cplusg matplusg oveqdr
      grpinvpropd ) DJKBEKLZHICMNZCAUBUCOABCDEFGPUBHQUCKIQUCKLHICRNARNABCDEFGST
      UA $.
  $}

  ${
    $d i j N $.  $d i j R $.
    mat0op.a $e |- A = ( N Mat R ) $.
    mat0op.z $e |- .0. = ( 0g ` R ) $.
    $( Value of a zero matrix as operation.  (Contributed by AV,
       2-Dec-2018.) $)
    mat0op $p |- ( ( N e. Fin /\ R e. Ring )
                   -> ( 0g ` A ) = ( i e. N , j e. N |-> .0. ) ) $=
      ( cfn wcel crg wa cxp c0g cfv cmpt2 eqid cvv wceq cv cfrlm csn fconstmpt2
      co simpr sqxpexg adantr frlm0 syl2anc eqcomi a1i mpt2eq3ia 3eqtr3a eqtr3d
      mat0 ) EIJZBKJZLZBEEMZUAUDZNOZANOCDEEFPZABUTEKGUTQZUOURUSBNOZUBMZCDEEVDPZ
      VAVBCDEEVDUCURUQUSRJZVEVASUPUQUEUPVGUQEIUFUGBUTUSRVDVCVDQUHUIVFVBSURCDEEV
      DFVDFSCTEJDTEJLFVDHUJUKULUKUMUN $.
  $}

  ${
    matsca2.a $e |- A = ( N Mat R ) $.
    $( The scalars of the matrix ring are the underlying ring.  (Contributed by
       Stefan O'Rear, 5-Sep-2015.) $)
    matsca2 $p |- ( ( N e. Fin /\ R e. V ) -> R = ( Scalar ` A ) ) $=
      ( cfn wcel wa cxp cfrlm co csca cfv wceq xpfi anidms frlmsca ancoms sylan
      eqid matsca eqtrd ) CFGZBDGZHBBCCIZJKZLMZALMUCUEFGZUDBUGNZUCUHCCOPUDUHUIB
      UFUEDFUFTZQRSABUFCDEUJUAUB $.
  $}

  ${
    matbas2.a $e |- A = ( N Mat R ) $.
    matbas2.k $e |- K = ( Base ` R ) $.
    $( The base set of the matrix ring as a set exponential.  (Contributed by
       Stefan O'Rear, 5-Sep-2015.)  (Proof shortened by AV, 16-Dec-2018.) $)
    matbas2 $p |- ( ( N e. Fin /\ R e. V ) ->
        ( K ^m ( N X. N ) ) = ( Base ` A ) ) $=
      ( cfn wcel wa cxp cmap co cfrlm cbs cfv wceq xpfi anidms anim2i frlmfibas
      ancoms eqid syl matbas eqtrd ) DHIZBEIZJZCDDKZLMZBUJNMZOPZAOPUIUHUJHIZJZU
      KUMQUHUGUOUGUNUHUGUNDDRSTUBBULUJCEULUCZGUAUDABULDEFUPUEUF $.

    matbas2i.b $e |- B = ( Base ` A ) $.
    $( A matrix is a function.  (Contributed by Stefan O'Rear, 11-Sep-2015.) $)
    matbas2i $p |- ( M e. B -> M e. ( K ^m ( N X. N ) ) ) $=
      ( wcel cbs cfv cxp cmap co id syl6eleq cfn cvv wa wceq matrcl matbas2 syl
      eleqtrrd ) EBJZEAKLZDFFMNOZUFEBUGUFPIQUFFRJCSJTUHUGUAABCFEGIUBACDFSGHUCUD
      UE $.

    $d ph x y $.  $d N x y $.  $d K x y $.
    matbas2d.n $e |- ( ph -> N e. Fin ) $.
    matbas2d.r $e |- ( ph -> R e. V ) $.
    matbas2d.c $e |- ( ( ph /\ x e. N /\ y e. N ) -> C e. K ) $.
    $( The base set of the matrix ring as a mapping operation.  (Contributed by
       Stefan O'Rear, 11-Jul-2018.) $)
    matbas2d $p |- ( ph -> ( x e. N , y e. N |-> C ) e. B ) $=
      ( wcel cbs cfn cvv cmpt2 cxp wf wral cv 3expb ralrimivva eqid fmpt2 sylib
      cmap co wceq matbas2 syl2anc syl6reqr eleq2d wb fvex eqeltri xpexg elmapg
      cfv sylancr bitrd mpbird ) ABCIIFUAZEQZIIUBZHVGUCZAFHQZCIUDBIUDVJAVKBCIIA
      BUEIQCUEIQVKPUFUGBCIIFHVGVGUHUIUJAVHVGHVIUKULZQZVJAEVLVGAVLDRVCZEAISQZGJQ
      VLVNUMNODGHIJKLUNUOMUPUQAHTQVITQZVMVJURHGRVCTLGRUSUTAVOVOVPNNIISSVAUOHVIV
      GTTVBVDVEVF $.
  $}

  ${
    $d N i j $.  $d X i j $.  $d Y i j $.
    eqmat.a $e |- A = ( N Mat R ) $.
    eqmat.b $e |- B = ( Base ` A ) $.
    $( Two square matrices of the same dimension are equal if they have the
       same entries.  (Contributed by AV, 25-Sep-2019.) $)
    eqmat $p |- ( ( X e. B /\ Y e. B ) -> ( X = Y
                           <-> A. i e. N A. j e. N ( i X j ) = ( i Y j ) ) ) $=
      ( wcel cxp wfn wceq cv co wral matbas2i elmapfn syl cbs cmap eqid eqfnov2
      wb cfv syl2an ) GBKZGFFLZMZHUIMZGHNDOZEOZGPULUMHPNEFQDFQUEHBKZUHGCUAUFZUI
      UBPZKUJABCUOGFIUOUCZJRGUOUISTUNHUPKUKABCUOHFIUQJRHUOUISTDEFFGHUDUG $.
  $}

  ${
    $d i j I $.  $d i j J $.  $d i j K $.  $d i j M $.  $d i j N $.
    matecl.a $e |- A = ( N Mat R ) $.
    matecl.k $e |- K = ( Base ` R ) $.
    $( Each entry (according to Wikipedia "Matrix (mathematics)", 30-Dec-2018,
       ~ https://en.wikipedia.org/wiki/Matrix_(mathematics)#Definition (or
       element or component or coefficient or cell) of a matrix is an element
       of the underlying ring.  (Contributed by AV, 16-Dec-2018.) $)
    matecl $p |- ( ( I e. N /\ J e. N /\ M e. ( Base ` A ) )
                   -> ( I M J ) e. K ) $=
      ( vi vj wcel cbs cfv cfn cvv wa co wi a1i w3a matrcl 3ad2ant3 cxp matbas2
      eqid cmap eqcomd eleq2d wf wb fvex eqeltri sqxpexg elmapg syl2anr cv wral
      wfn ffnov wceq oveq1 eleq1d oveq2 rspc2v com12 adantl syl5bi sylbid com13
      ex 3imp1 mpdan ) CGLZDGLZFAMNZLZUAGOLZBPLZQZCDFRZELZVQVNVTVOAVPBGFHVPUFUB
      UCVNVOVQVTWBVNVOVQVTWBSSVTVQVNVOQZWBVTVQFEGGUDZUGRZLZWCWBSZVTVPWEFVTWEVPA
      BEGPHIUEUHUIVTWFWDEFUJZWGVSEPLZWDPLWFWHUKVRWIVSEBMNPIBMULUMTGOUNEWDFPPUOU
      PWHFWDUSZJUQZKUQZFRZELZKGURJGURZQZVTWGJKGGEFUTWPWGSVTWOWGWJWCWOWBWNWBCWLF
      RZELJKCDGGWKCVAWMWQEWKCWLFVBVCWLDVAWQWAEWLDCFVDVCVEVFVGTVHVIVIVJVKVLVM $.

    matecld.b $e |- B = ( Base ` A ) $.
    matecld.i $e |- ( ph -> I e. N ) $.
    matecld.j $e |- ( ph -> J e. N ) $.
    matecld.m $e |- ( ph -> M e. B ) $.
    $( Each entry (according to Wikipedia "Matrix (mathematics)", 30-Dec-2018,
       ~ https://en.wikipedia.org/wiki/Matrix_(mathematics)#Definition (or
       element or component or coefficient or cell) of a matrix is an element
       of the underlying ring, deduction form.  (Contributed by AV,
       27-Nov-2019.) $)
    matecld $p |- ( ph -> ( I M J ) e. K ) $=
      ( wcel cbs cfv co syl6eleq matecl syl3anc ) AEIPFIPHBQRZPEFHSGPMNAHCUCOLT
      BDEFGHIJKUAUB $.
  $}

  ${
    matplusg2.a $e |- A = ( N Mat R ) $.
    matplusg2.b $e |- B = ( Base ` A ) $.
    matplusg2.p $e |- .+b = ( +g ` A ) $.
    matplusg2.q $e |- .+ = ( +g ` R ) $.
    $( Addition in the matrix ring is cell-wise.  (Contributed by Stefan
       O'Rear, 5-Sep-2015.) $)
    matplusg2 $p |- ( ( X e. B /\ Y e. B ) -> ( X .+b Y ) = ( X oF .+ Y ) ) $=
      ( wcel wa co cplusg cfv cfn cvv eqid cxp cfrlm cof matrcl adantr matplusg
      wceq syl6eqr syl oveqd cbs simprd simpld xpfi simpl matbas eleqtrrd simpr
      syl2anc frlmplusgval eqtr3d ) GBMZHBMZNZGHEFFUAZUBOZPQZOGHDOGHCUCOVDVGDGH
      VDFRMZESMZNZVGDUGVBVJVCABEFGIJUDUEZVJVGAPQDAEVFFSIVFTZUFKUHUIUJVDVFUKQZCV
      GEGHVESRVFVLVMTVDVHVIVKULVDVHVHVERMVDVHVIVKUMZVNFFUNUSVDGBVMVBVCUOVDVMAUK
      QZBVDVJVMVOUGVKAEVFFSIVLUPUIJUHZUQVDHBVMVBVCURVPUQLVGTUTVA $.
  $}

  ${
    matvsca2.a $e |- A = ( N Mat R ) $.
    matvsca2.b $e |- B = ( Base ` A ) $.
    matvsca2.k $e |- K = ( Base ` R ) $.
    matvsca2.v $e |- .x. = ( .s ` A ) $.
    matvsca2.t $e |- .X. = ( .r ` R ) $.
    matvsca2.c $e |- C = ( N X. N ) $.
    $( Scalar multiplication in the matrix ring is cell-wise.  (Contributed by
       Stefan O'Rear, 5-Sep-2015.) $)
    matvsca2 $p |- ( ( X e. K /\ Y e. B ) ->
        ( X .x. Y ) = ( ( C X. { X } ) oF .X. Y ) ) $=
      ( wcel cxp co cfv wa cfrlm cvsca csn cof cfn cvv wceq matrcl eqid matvsca
      adantl syl syl6eqr oveqd cbs simpld xpfi syl2anc simpl simpr frlmvscafval
      matbas eleqtrrd xpeq1i oveq1i eqtr3d ) IGQZJBQZUAZIJDHHRZUBSZUCTZSZIJESCI
      UDZRZJFUEZSZVJVMEIJVJVMAUCTZEVJHUFQZDUGQZUAZVMVSUHVIWBVHABDHJKLUIULZADVLH
      UGKVLUJZUKUMNUNUOVJVNVKVORZJVQSVRVJIVLUPTZDVMFVKGUFJVLWDWFUJMVJVTVTVKUFQV
      JVTWAWCUQZWGHHURUSVHVIUTVJJBWFVHVIVAVJWFAUPTZBVJWBWFWHUHWCADVLHUGKWDVCUML
      UNVDVMUJOVBVPWEJVQCVKVOPVEVFUNVG $.
  $}

  ${
    $d x y A $.  $d x y N $.  $d x y R $.
    matlmod.a $e |- A = ( N Mat R ) $.
    $( The matrix ring is a linear structure.  (Contributed by Stefan O'Rear,
       4-Sep-2015.) $)
    matlmod $p |- ( ( N e. Fin /\ R e. Ring ) -> A e. LMod ) $=
      ( vx vy cfn wcel crg wa clmod cvv eqid cbs cfv eqidd cplusg oveqdr cvsca
      cv cxp cfrlm co sqxpexg frlmlmod ancoms sylan csca matbas matplusg matsca
      matvsca lmodpropd mpbid ) CGHZBIHZJZBCCUAZUBUCZKHZAKHUOURLHZUPUTCGUDUPVAU
      TBUSURLUSMZUEUFUGUQEFUSNOZUSUHOZNOZVDUSAUQVCPABUSCIDVBUIUQETZVCHFTVCHZJEF
      USQOAQOABUSCIDVBUJRUQVDPABUSCIDVBUKVEMUQVFVEHVGJEFUSSOASOABUSCIDVBULRUMUN
      $.

    $( The matrix ring is a group.  (Contributed by AV, 21-Dec-2019.) $)
    matgrp $p |- ( ( N e. Fin /\ R e. Ring ) -> A e. Grp ) $=
      ( cfn wcel crg wa clmod cgrp matlmod lmodgrp syl ) CEFBGFHAIFAJFABCDKALM
      $.
  $}

  ${
    matvscl.k $e |- K = ( Base ` R ) $.
    matvscl.a $e |- A = ( N Mat R ) $.
    matvscl.b $e |- B = ( Base ` A ) $.
    matvscl.s $e |- .x. = ( .s ` A ) $.
    $( Closure of the scalar multiplication in the matrix ring.  ( ~ lmodvscl
       analog.)  (Contributed by AV, 27-Nov-2019.) $)
    matvscl $p |- ( ( ( N e. Fin /\ R e. Ring ) /\ ( C e. K /\ X e. B ) )
                    -> ( C .x. X ) e. B ) $=
      ( cfn wcel crg wa clmod cfv cbs eqid csca co matlmod adantr fveq2d syl5eq
      matsca2 eleq2d biimpd adantrd imp simprr lmodvscl syl3anc ) GMNDONPZCFNZH
      BNZPZPAQNZCAUARZSRZNZUQCHEUBBNUOUSURADGJUCUDUOURVBUOUPVBUQUOUPVBUOFVACUOF
      DSRVAIUODUTSADGOJUGUEUFUHUIUJUKUOUPUQULCEUTVABAHKUTTLVATUMUN $.
  $}

  ${
    matsubg.a $e |- A = ( N Mat R ) $.
    matsubg.g $e |- G = ( R freeLMod ( N X. N ) ) $.
    $( The matrix ring has the same addition as its underlying group.
       (Contributed by AV, 2-Aug-2019.) $)
    matsubg $p |- ( ( N e. Fin /\ R e. V ) -> ( -g ` G ) = ( -g ` A ) ) $=
      ( cfn wcel wa matbas matplusg grpsubpropd ) DHIBEIJCAABCDEFGKABCDEFGLM $.
  $}

  ${
    matplusgcell.a $e |- A = ( N Mat R ) $.
    matplusgcell.b $e |- B = ( Base ` A ) $.
    ${
      matplusgcell.p $e |- .+b = ( +g ` A ) $.
      matplusgcell.q $e |- .+ = ( +g ` R ) $.
      $( Addition in the matrix ring is cell-wise.  (Contributed by AV,
         2-Aug-2019.) $)
      matplusgcell $p |- ( ( ( X e. B /\ Y e. B ) /\ ( I e. N /\ J e. N ) )
                      -> ( I ( X .+b Y ) J ) = ( ( I X J ) .+ ( I Y J ) ) ) $=
        ( wcel wa co cfv wceq adantr cof cop matplusg2 oveqd a1i cxp opelxp cfn
        df-ov wfn cbs cmap eqid matbas2i elmapfn syl adantl matrcl anidms inidm
        cvv xpfi eqcomi ofval sylan2br 3eqtrd ) IBOZJBOZPZFHOGHOPZPZFGIJDQZQZFG
        IJCUAQZQZFGUBZVNRZFGIQZFGJQZCQZVIVMVOSVJVIVLVNFGABCDEHIJKLMNUCUDTVOVQSV
        KFGVNUIUEVJVIVPHHUFZOZVQVTSFGHHUGVIWAWAVRVSCWAIJUHUHVPVGIWAUJZVHVGIEUKR
        ZWAULQZOWCABEWDIHKWDUMZLUNIWDWAUOUPTVHJWAUJZVGVHJWEOWGABEWDJHKWFLUNJWDW
        AUOUPUQVGWAUHOZVHVGHUHOZEVAOZPWHABEHIKLURWIWHWJWIWHHHVBUSTUPTZWKWAUTVPI
        RZVRSVIWBPZVRWLFGIUIVCUEVPJRZVSSWMVSWNFGJUIVCUEVDVEVF $.
    $}

    ${
      matsubgcell.s $e |- S = ( -g ` A ) $.
      matsubgcell.m $e |- .- = ( -g ` R ) $.
      $( Subtraction in the matrix ring is cell-wise.  (Contributed by AV,
         2-Aug-2019.) $)
      matsubgcell $p |- ( ( R e. Ring /\ ( X e. B /\ Y e. B )
                            /\ ( I e. N /\ J e. N ) )
                         -> ( I ( X S Y ) J ) = ( ( I X J ) .- ( I Y J ) ) ) $=
        ( wcel co cfv cfn wceq syl crg w3a cof cxp csg cvv matrcl simpld adantr
        wa cfrlm 3ad2ant2 simp1 eqid matsubg syl2anc syl6reqr oveqd xpfi anidms
        cbs eleq2i biimpi matbas eleqtrrd adantl frlmsubgval eqtrd df-ov anim2i
        cop opelxpi 3adant1 wfn cmap matbas2i elmapfn inidm eqcomi ofval syl5eq
        a1i ) CUAOZIBOZJBOZUJZEHOFHOUJZUBZEFIJDPZPEFIJGUCPZPZEFIPZEFJPZGPZWHWIW
        JEFWHWIIJCHHUDZUKPZUEQZPWJWHDWQIJWHWQAUEQZDWHHROZWCWQWRSWFWCWSWGWDWSWEW
        DWSCUFOZABCHIKLUGZUHUIULWCWFWGUMZACWPHUAKWPUNZUOUPMUQURWHWPVAQZCIJWOWQG
        RWPXCXDUNXBWFWCWOROZWGWDXEWEWDWSWTUJZXEXAWSXEWTWSXEHHUSUTUITUIZULWFWCIX
        DOZWGWDXHWEWDIAVAQZXDWDIXIOBXIILVBVCWDXFXDXISZXAACWPHUFKXCVDZTVEUIULWFW
        CJXDOZWGWEXLWDWEJXIXDWEJXIOBXIJLVBVCWEXFXJABCHJKLUGXKTVEVFULNWQUNVGVHUR
        WHWKEFVKZWJQZWNEFWJVIWHWFXMWOOZUJZXNWNSWFWGXPWCWGXOWFEFHHVLVJVMWFWOWOWL
        WMGWOIJRRXMWDIWOVNZWEWDICVAQZWOVOPZOXQABCXRIHKXRUNZLVPIXRWOVQTUIWEJWOVN
        ZWDWEJXSOYAABCXRJHKXTLVPJXRWOVQTVFXGXGWOVRXMIQZWLSXPWLYBEFIVIVSWBXMJQZW
        MSXPWMYCEFJVIVSWBVTTWAVH $.
    $}

    ${
      $d B x y $.  $d I x y $.  $d J x y $.  $d N x y $.  $d R x y $.
      $d X x y $.
      matinvgcell.v $e |- V = ( invg ` R ) $.
      matinvgcell.w $e |- W = ( invg ` A ) $.
      $( Additive inversion in the matrix ring is cell-wise.  (Contributed by
         AV, 17-Nov-2019.) $)
      matinvgcell $p |- ( ( R e. Ring /\ X e. B /\ ( I e. N /\ J e. N ) )
                        -> ( I ( W ` X ) J ) = ( V ` ( I X J ) ) ) $=
        ( vx wcel wa cfv co wceq eqid vy crg w3a c0g csg cgrp cfn matrcl simpld
        cvv adantl simpl syl2anc grpidcl syl simpr 3adant3 matsubgcell syld3an2
        matgrp jca grpinvval2 oveqd cbs ringgrp 3ad2ant1 eleq2i biimpi 3ad2ant2
        simp3 df-3an sylanbrc matecl cmpt2 anim1i ancoms mat0op cv eqidd simp3r
        fvexd ovmpt2d eqcomd oveq1d eqtrd 3eqtr4d ) CUBOZIBOZDFOZEFOZPZUCZDEAUD
        QZIAUEQZRZRZDEWMRZDEIRZCUEQZRZDEIHQZRWRGQZWGWMBOZWHPZWHWKWPWTSWGWHXDWKW
        GWHPZXCWHXEAUFOZXCXEFUGOZWGXFWHXGWGWHXGCUJOABCFIJKUHUIZUKWGWHULACFJUTUM
        ZBAWMKWMTZUNUOWGWHUPZVAUQABCWNDEWSFWMIJKWNTZWSTZURUSWLXAWODEWGWHXAWOSZW
        KXEXFWHXNXIXKBAWNHIWMKXLMXJVBUMUQVCWLXBCUDQZWRWSRZWTWLCUFOZWRCVDQZOZXBX
        PSWGWHXQWKCVEVFWLWIWJIAVDQZOZUCZXSWLWKYAYBWGWHWKVJZWHWGYAWKWHYABXTIKVGV
        HVIWIWJYAVKVLACDEXRIFJXRTZVMUOXRCWSGWRXOYDXMLXOTZVBUMWLXOWQWRWSWLWQXOWL
        NUADEFFXOXOWMUJWGWHWMNUAFFXOVNSZWKXEXGWGPZYFWHWGYGWHXGWGXHVOVPACNUAFXOJ
        YEVQUOUQWLNVRDSUAVRESPPXOVSWLWIWJYCUIWGWHWIWJVTWLCUDWAWBWCWDWEWF $.
    $}

    matvscacell.k $e |- K = ( Base ` R ) $.
    matvscacell.v $e |- .x. = ( .s ` A ) $.
    matvscacell.t $e |- .X. = ( .r ` R ) $.
    $( Scalar multiplication in the matrix ring is cell-wise.  (Contributed by
       AV, 7-Aug-2019.) $)
    matvscacell $p |- ( ( R e. Ring /\ ( X e. K /\ Y e. B )
                          /\ ( I e. N /\ J e. N ) )
                        -> ( I ( X .x. Y ) J ) = ( X .X. ( I Y J ) ) ) $=
      ( wcel co cfv wceq crg w3a cxp csn cof eqid matvsca2 oveqd 3ad2ant2 df-ov
      cop a1i opelxpi 3ad2ant3 cfn cvv matrcl simpld adantl xpfi syl2anc simp2l
      cbs cmap wfn eleq2i biimpi simp1 matbas2 eleqtrrd elmapfn syl eqcomi ofc1
      wa mpdan 3eqtrd ) CUAQZJHQZKBQZVOZFIQGIQVOZUBZFGJKDRZRZFGIIUCZJUDUCKEUERZ
      RZFGUKZWGSZJFGKRZERZWAVRWEWHTWBWAWDWGFGABWFCDEHIJKLMNOPWFUFUGUHUIWHWJTWCF
      GWGUJULWCWIWFQZWJWLTWBVRWMWAFGIIUMUNWCWFJWKEKUOHWIWCIUOQZWNWFUOQWAVRWNWBV
      TWNVSVTWNCUPQABCIKLMUQURUSUIZWOIIUTVAVRVSVTWBVBWCKCVCSZWFVDRZQKWFVEWCKAVC
      SZWQWAVRKWRQZWBVTWSVSVTWSBWRKMVFVGUSUIWCWNVRWQWRTWOVRWAWBVHACWPIUALWPUFVI
      VAVJKWPWFVKVLWIKSZWKTWCWMVOWKWTFGKUJVMULVNVPVQ $.
  $}

  ${
    $d J i j y z $.  $d N i j y z $.  $d R i j y z $.  $d U z $.  $d ph y z $.
    matgsum.a $e |- A = ( N Mat R ) $.
    matgsum.b $e |- B = ( Base ` A ) $.
    matgsum.z $e |- .0. = ( 0g ` A ) $.
    matgsum.i $e |- ( ph -> N e. Fin ) $.
    matgsum.j $e |- ( ph -> J e. W ) $.
    matgsum.r $e |- ( ph -> R e. Ring ) $.
    matgsum.f $e |- ( ( ph /\ y e. J ) -> ( i e. N , j e. N |-> U ) e. B ) $.
    matgsum.w $e |- ( ph -> ( y e. J
                              |-> ( i e. N , j e. N |-> U ) ) finSupp .0. ) $.
    $( Finite commutative sums in a matrix algebra are taken componentwise.
       (Contributed by AV, 26-Sep-2019.) $)
    matgsum $p |- ( ph -> ( A gsum ( y e. J |-> ( i e. N , j e. N |-> U ) ) ) =
       ( i e. N , j e. N |-> ( R gsum ( y e. J |-> U ) ) ) ) $=
      ( vz cmpt2 cmpt cgsu cxp cfrlm c1st cfv c2nd csb cvv wcel mptexg syl cmat
      co cv ovex eqeltri a1i cbs cfn crg wceq eqid matbas syl2anc eqcomd cplusg
      ovexd matplusg gsumpropd mpt2mpts mpteq2dv oveq2d xpfi wa syl6eleq eqcomi
      c0g jca adantr 3eltr4d cfsupp mpteq2i 3brtr4g mat0 breqtrrd frlmgsum fvex
      eqtrd csbov2g ax-mp csbeq2i csbmpt2 eqtri oveq2i 3eqtrri eqtr4i 3eqtrd )
      ACBIGHJJFUBZUCZUDUPEJJUEZUFUPZXBUDUPZUAXCEBIGUAUQZUGUHZHXFUIUHZFUJZUJZUCZ
      UDUPZUCZGHJJEBIFUCZUDUPZUBZAXBCXDUKUKUKAIKULXBUKULQBIXAKUMUNCUKULACJEUOUP
      UKMJEUOURUSUTAEXCUFVJAXDVAUHZCVAUHZAJVBULZEVCULZXQXRVDZPRCEXDJVCMXDVEZVFZ
      VGVHAXDVIUHZCVIUHZAXSXTYDYEVDPRCEXDJVCMYBVKVGVHVLAXEXDBIUAXCXJUCZUCZUDUPX
      MAXBYGXDUDABIXAYFXAYFVDAGHUAJJFVMZUTVNVOAUABXQEXJXCIVBKXDXDVTUHZYBXQVEYIV
      EAXSXSXCVBULPPJJVPVGQRABUQIULZVQZXAXRYFXQYKXADXRSNVRYFXAVDYKXAYFYHVSZUTYK
      XSXTVQZYAAYMYJAXSXTPRWAWBYCUNWCAYGCVTUHZYIWDAXBLYGYNWDTBIYFXAYLWELYNOVSWF
      AXSXTYIYNVDPRCEXDJVCMYBWGVGWHWIWKXMXPVDAXMUAXCGXGHXHXOUJZUJZUCXPUAXCXLYPY
      PGXGEHXHXNUJZUDUPZUJZEGXGYQUJZUDUPZXLGXGYOYRXHUKULZYOYRVDXFUIWJZHXHEXNUDU
      KWLWMWNXGUKULZYSUUAVDXFUGWJZGXGEYQUDUKWLWMYTXKEUDYTGXGBIXIUCZUJZXKGXGYQUU
      FUUBYQUUFVDUUCHBXHUKIFWOWMWNUUDUUGXKVDUUEGBXGUKIXIWOWMWPWQWRWEGHUAJJXOVMW
      SUTWT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The matrix algebra
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The main result of this subsection are the theorems showing that
` ( N Mat R ) ` is a ring (see ~ matring ) and an associative algebra (see
~ matassa ).  Additionally, theorems for the identity matrix and transposed
matrices are provided.
$)

  ${
    matmulr.a $e |- A = ( N Mat R ) $.
    matmulr.t $e |- .x. = ( R maMul <. N , N , N >. ) $.
    $( Multiplication in the matrix algebra.  (Contributed by Stefan O'Rear,
       4-Sep-2015.) $)
    matmulr $p |- ( ( N e. Fin /\ R e. V ) -> .x. = ( .r ` A ) ) $=
      ( cfn wcel wa cxp cfrlm co cnx cmulr cfv cop cvv ovex cmmul pm3.2i mulrid
      csts wceq cotp eqeltri setsid mp1i eqid matval fveq2d eqtr4d ) DHIBEIJZCB
      DDKZLMZNOPCQUCMZOPZAOPUORIZCRIZJCUQUDUMURUSBUNLSCBDDDUEZTMRGBUTTSUFUARCOR
      UOUBUGUHUMAUPOABCUODEFUOUIGUJUKUL $.
  $}

  ${
    $d i j B $.  $d i j M $.  $d i j ph $.
    mamumat1cl.b $e |- B = ( Base ` R ) $.
    mamumat1cl.r $e |- ( ph -> R e. Ring ) $.
    mamumat1cl.o $e |- .1. = ( 1r ` R ) $.
    mamumat1cl.z $e |- .0. = ( 0g ` R ) $.
    mamumat1cl.i $e |- I = ( i e. M , j e. M |-> if ( i = j , .1. , .0. ) ) $.
    mamumat1cl.m $e |- ( ph -> M e. Fin ) $.
    $( The identity matrix (as operation in maps-to notation) is a matrix.
       (Contributed by Stefan O'Rear, 2-Sep-2015.) $)
    mamumat1cl $p |- ( ph -> I e. ( B ^m ( M X. M ) ) ) $=
      ( wcel wral cv cvv cfn cxp cmap co wf weq cif wa crg ringidcl ring0cl syl
      ifcld adantr ralrimivva fmpt2 wb cbs cfv fvex eqeltri xpfi syl2anc elmapg
      sylib sylancr mpbird ) AGBHHUAZUBUCPZVGBGUDZAEFUEZDIUFZBPZFHQEHQVIAVLEFHH
      AVLERHPFRHPUGACUHPZVLKVMVJDIBBCDJLUIBCIJMUJULUKUMUNEFHHVKBGNUOVDABSPVGTPZ
      VHVIUPBCUQURSJCUQUSUTAHTPZVOVNOOHHVAVBBVGGSTVCVEVF $.

    $d i j A $.  $d i j J $.  $d i j .0. $.  $d i j .1. $.
    $( The components of the identity matrix (as operation in maps-to
       notation).  (Contributed by AV, 22-Jul-2019.) $)
    mat1comp $p |- ( ( A e. M /\ J e. M )
                     -> ( A I J ) = if ( A = J , .1. , .0. ) ) $=
      ( cif wceq cv weq eqeq1 ifbid eqeq2 cur cfv cvv fvex eqeltri ifex ovmpt2
      c0g ) FGBIJJFGUAZEKRBISZEKRHBGTZSZEKRFTZBSUMUPEKUQBUOUBUCUOISUPUNEKUOIBUD
      UCPUNEKEDUEUFUGNDUEUHUIKDULUFUGODULUHUIUJUK $.

    $d k l m ph $.  $d k l m I $.  $d i j k l m M $.  $d k l m N $.
    $d k l m X $.
    mamulid.n $e |- ( ph -> N e. Fin ) $.
    ${
      $d m B $.  $d m .0. $.  $d k l F $.  $d m R $.
      mamulid.f $e |- F = ( R maMul <. M , M , N >. ) $.
      mamulid.x $e |- ( ph -> X e. ( B ^m ( M X. N ) ) ) $.
      $( The identity matrix (as operation in maps-to notation) is a left
         identity (for any matrix with the same number of rows).  (Contributed
         by Stefan O'Rear, 3-Sep-2015.)  (Proof shortened by AV,
         22-Jul-2019.) $)
      mamulid $p |- ( ph -> ( I F X ) = X ) $=
        ( vl vk vm co wceq cv wral wcel cmulr cfv cmpt cgsu crg eqid adantr cfn
        wa cxp cmap mamumat1cl simprl simprr mamufv ringmnd syl ad2antrr elmapi
        cmnd wf simplrl simpr fovrnd simplrr ringcl syl3anc wne w3a weq 3adant3
        fmptd cif simp2 mat1comp wb equcom a1i ifbid syl2anc ifnefalse 3ad2ant3
        eqtrd oveq1d ringlz suppsssn gsumpt oveq2 oveq12d ovex ad2antrl equequ1
        oveq1 fvmpt equequ2 equid iftruei syl6eq cur fvex eqeltri ovmpt2 anidms
        cvv fovrnda ringlidm 3eqtrd ralrimivva wfn mamucl ffn eqfnov2 mpbird )
        AHKGUEZKUFZUBUGZUCUGZYCUEZYEYFKUEZUFZUCJUHUBIUHZAYIUBUCIJAYEIUIZYFJUIZU
        RZURZYGCUDIYEUDUGZHUEZYOYFKUEZCUJUKZUEZULZUMUEYEYTUKZYHYNBJCYRUDGYEYFII
        UNHKTMYRUOZACUNUIZYMNUPZAIUQUIYMRUPZUUEAJUQUIYMSUPAHBIIUSZUTUEUIZYMABCD
        EFHILMNOPQRVAZUPAKBIJUSZUTUEZUIZYMUAUPAYKYLVBZAYKYLVCVDYNIBYTCUQYELMPYN
        UUCCVIUIUUDCVEVFUUEUULYNUDIYSBYTYNYOIUIZURZUUCYPBUIYQBUIZYSBUIAUUCYMUUM
        NVGZUUNYEYOBIIHAUUFBHVJZYMUUMAUUGUUQUUHHBUUFVHVFVGAYKYLUUMVKZYNUUMVLZVM
        UUNYOYFBIJKAUUIBKVJZYMUUMAUUKUUTUAKBUUIVHVFZVGUUSAYKYLUUMVNVMZBCYRYPYQM
        UUBVOVPYTUOZWAYNIYSUDUQYELYNUUMYOYEVQZVRZYSLYQYRUEZLUVEYPLYQYRUVEYPUDUB
        VSZDLWBZLUVEYKUUMYPUVHUFYNUUMYKUVDUURVTYNUUMUVDWCYKUUMURZYPUBUDVSZDLWBU
        VHAYEBCDEFHYOILMNOPQRWDUVIUVJUVGDLUVJUVGWEUVIUBUDWFWGWHWLWIUVDYNUVHLUFU
        UMYOYEDLWJWKWLWMYNUUMUVFLUFZUVDUUNUUCUUOUVKUUPUVBBCYRYQLMUUBPWNWIVTWLUU
        EWOWPYNUUAYEYEHUEZYHYRUEZDYHYRUEZYHYKUUAUVMUFAYLUDYEYSUVMIYTUVGYPUVLYQY
        HYRYOYEYEHWQYOYEYFKXBWRUVCUVLYHYRWSXCWTYNUVLDYHYRYKUVLDUFZAYLYKUVOEFYEY
        EIIEFVSZDLWBDHUBFVSZDLWBZEUBVSUVPUVQDLEUBFXAWHFUBVSZUVRUBUBVSZDLWBDUVSU
        VQUVTDLFUBUBXDWHUVTDLUBXEXFXGQDCXHUKXMOCXHXIXJXKXLWTWMYNUUCYHBUIUVNYHUF
        UUDAYEYFBIJKUVAXNBCYRDYHMUUBOXOWIXPXPXQAYCUUIXRZKUUIXRZYDYJWEAUUIBYCVJZ
        UWAAYCUUJUIUWCABJCGIIHKMNTRRSUUHUAXSYCBUUIVHVFUUIBYCXTVFAUUTUWBUVAUUIBK
        XTVFUBUCIJYCKYAWIYB $.
    $}

    $d k B $.  $d k .0. $.  $d l m F $.  $d k R $.
    mamurid.f $e |- F = ( R maMul <. N , M , M >. ) $.
    mamurid.x $e |- ( ph -> X e. ( B ^m ( N X. M ) ) ) $.
    $( The identity matrix (as operation in maps-to notation) is a right
       identity (for any matrix with the same number of columns).  (Contributed
       by Stefan O'Rear, 3-Sep-2015.)  (Proof shortened by AV, 22-Jul-2019.) $)
    mamurid $p |- ( ph -> ( X F I ) = X ) $=
      ( vl vm vk co wceq cv wral wcel wa cmulr cfv cmpt cgsu crg adantr cfn cxp
      eqid cmap mamumat1cl simprl simprr mamufv cmnd ringmnd ad2antrr wf elmapi
      syl simplrl simpr fovrnd simplrr ringcl syl3anc fmptd wne w3a weq 3adant3
      cif simp2 mat1comp ifnefalse 3ad2ant3 eqtrd oveq2d ringrz suppsssn gsumpt
      syl2anc oveq2 oveq1 oveq12d fvmpt ad2antll equequ1 equequ2 iftruei syl6eq
      ovex ifbid cur cvv fvex eqeltri ovmpt2 anidms fovrnda ringridm ralrimivva
      3eqtrd wfn wb mamucl ffn eqfnov2 mpbird ) AKHGUEZKUFZUBUGZUCUGZXTUEZYBYCK
      UEZUFZUCIUHUBJUHZAYFUBUCJIAYBJUIZYCIUIZUJZUJZYDCUDIYBUDUGZKUEZYLYCHUEZCUK
      ULZUEZUMZUNUEYCYQULZYEYKBICYOUDGYBYCJIUOKHTMYOUSZACUOUIZYJNUPZAJUQUIYJSUP
      AIUQUIYJRUPZUUBAKBJIURZUTUEZUIZYJUAUPAHBIIURZUTUEUIZYJABCDEFHILMNOPQRVAZU
      PAYHYIVBAYHYIVCZVDYKIBYQCUQYCLMPYKYTCVEUIUUACVFVJUUBUUIYKUDIYPBYQYKYLIUIZ
      UJZYTYMBUIZYNBUIYPBUIAYTYJUUJNVGZUUKYBYLBJIKAUUCBKVHZYJUUJAUUEUUNUAKBUUCV
      IVJZVGAYHYIUUJVKYKUUJVLZVMZUUKYLYCBIIHAUUFBHVHZYJUUJAUUGUURUUHHBUUFVIVJVG
      UUPAYHYIUUJVNZVMBCYOYMYNMYSVOVPYQUSZVQYKIYPUDUQYCLYKUUJYLYCVRZVSZYPYMLYOU
      EZLUVBYNLYMYOUVBYNUDUCVTZDLWBZLUVBUUJYIYNUVEUFYKUUJUVAWCYKUUJYIUVAUUSWAAY
      LBCDEFHYCILMNOPQRWDWLUVAYKUVELUFUUJYLYCDLWEWFWGWHYKUUJUVCLUFZUVAUUKYTUULU
      VFUUMUUQBCYOYMLMYSPWIWLWAWGUUBWJWKYKYRYEYCYCHUEZYOUEZYEDYOUEZYEYIYRUVHUFA
      YHUDYCYPUVHIYQUVDYMYEYNUVGYOYLYCYBKWMYLYCYCHWNWOUUTYEUVGYOXBWPWQYIUVHUVIU
      FAYHYIUVGDYEYOYIUVGDUFEFYCYCIIEFVTZDLWBDHUCFVTZDLWBZEUCVTUVJUVKDLEUCFWRXC
      FUCVTZUVLUCUCVTZDLWBDUVMUVKUVNDLFUCUCWSXCUVNDLYCUSWTXAQDCXDULXEOCXDXFXGXH
      XIWHWQYKYTYEBUIUVIYEUFUUAAYBYCBJIKUUOXJBCYODYEMYSOXKWLXMXMXLAXTUUCXNZKUUC
      XNZYAYGXOAUUCBXTVHZUVOAXTUUDUIUVQABICGJIKHMNTSRRUAUUHXPXTBUUCVIVJUUCBXTXQ
      VJAUUNUVPUUOUUCBKXQVJUBUCJIXTKXRWLXS $.
  $}

  ${
    $d a b x N $.  $d a b x R $.  $d x y z A $.  $d y z N $.  $d y z R $.
    $d x y z A $.  $d x y z N $.  $d x y z R $.
    matassa.a $e |- A = ( N Mat R ) $.
    $( Existence of the matrix ring, see also the statement in [Lang] p. 504:
       "For a given integer n > 0 the set of square n x n matrices form a
       ring."  (Contributed by Stefan O'Rear, 5-Sep-2015.) $)
    matring $p |- ( ( N e. Fin /\ R e. Ring ) -> A e. Ring ) $=
      ( vx vy va vb wcel crg wa cfv co eqid cv mamucl eleqtrd matplusg2 syl2anc
      wceq vz cfn cbs cxp cmap cplusg cmmul weq cur c0g cif cmpt2 matbas2 eqidd
      cotp matmulr matgrp simp1r simp1l simp2 simp3 simplr simpll simpr1 simpr2
      w3a simpr3 mamuass mamudir adantr oveq2d 3eqtr4d mamudi oveq1d mamumat1cl
      cof simpr simpl mamulid mamurid isringd ) CUBIZBJIZKZEFUABUCLZCCUDUEMZAUF
      LZABCCCUOUGMZGHCCGHUHBUILZBUJLZUKULZABWECJDWENZUMZWDWGUNABWHCJDWHNZUPABCD
      UQWDEOZWFIZFOZWFIZVFWECBWHCCWOWQWLWBWCWPWRURWNWBWCWPWRUSZWSWSWDWPWRUTWDWP
      WRVAPWDWPWRUAOZWFIZVFZKZWECBWHWHWHWHCCCWOWQWTWLWBWCXBVBZWBWCXBVCZXEXEXEWD
      WPWRXAVDZWDWPWRXAVEZWDWPWRXAVGZWNWNWNWNVHXCWOWQWTBUFLZVPZMZWHMWOWQWHMZWOW
      TWHMZXJMZWOWQWTWGMZWHMXLXMWGMZXCWEXIBWHCCCWOWQWTWLXDWNXEXEXEXINZXFXGXHVIX
      CXOXKWOWHXCWQAUCLZIZWTXRIXOXKTXCWQWFXRXGWDWFXRTXBWMVJZQZXCWTWFXRXHXTQAXRX
      IWGBCWQWTDXRNZWGNZXQRSVKXCXLXRIXMXRIZXPXNTXCXLWFXRXCWECBWHCCWOWQWLXDWNXEX
      EXEXFXGPXTQXCXMWFXRXCWECBWHCCWOWTWLXDWNXEXEXEXFXHPXTQZAXRXIWGBCXLXMDYBYCX
      QRSVLXCWOWQXJMZWTWHMXMWQWTWHMZXJMZWOWQWGMZWTWHMXMYGWGMZXCWEXIBWHCCCWOWQWT
      WLXDWNXEXEXEXQXFXGXHVMXCYIYFWTWHXCWOXRIXSYIYFTXCWOWFXRXFXTQYAAXRXIWGBCWOW
      QDYBYCXQRSVNXCYDYGXRIYJYHTYEXCYGWFXRXCWECBWHCCWQWTWLXDWNXEXEXEXGXHPXTQAXR
      XIWGBCXMYGDYBYCXQRSVLWDWEBWIGHWKCWJWLWBWCVQWINZWJNZWKNZWBWCVRVOWDWPKZWEBW
      IGHWHWKCCWOWJWLWBWCWPVBZYKYLYMWBWCWPVCZYPWNWDWPVQZVSYNWEBWIGHWHWKCCWOWJWL
      YOYKYLYMYPYPWNYQVTWA $.

    $( Existence of the matrix algebra, see also the statement in [Lang]
       p. 505:"Then Mat_n(R) is an algebra over R" .  (Contributed by Stefan
       O'Rear, 5-Sep-2015.) $)
    matassa $p |- ( ( N e. Fin /\ R e. CRing ) -> A e. AssAlg ) $=
      ( vy vz vx wcel ccrg wa cbs cfv co cxp eqid wceq eleqtrd matvsca2 syl2anc
      cv cfn cvsca cotp cmmul cmap matbas2 matsca2 eqidd matmulr clmod crngring
      crg matlmod sylan2 matring simpr w3a csn cmulr cof ad2antlr simpll simpr1
      simpr2 simpr3 mamuvs1 adantr oveq1d mamucl 3eqtr4d simplr mamuvs2 isassad
      oveq2d ) CUAHZBIHZJZEFBKLZAUBLZBCCCUCUDMZBVRCCNZUEMZAGABVRCIDVROZUFZABCID
      UGVQVRUHVQVSUHABVTCIDVTOZUIVPVOBULHZAUJHBUKZABCDUMUNVPVOWFAULHWGABCDUOUNV
      OVPUPVQGTZVRHZETZWBHZFTZWBHZUQZJZWAWHURNZWJBUSLZUTZMZWLVTMWPWJWLVTMZWRMZW
      HWJVSMZWLVTMWHWTVSMZWOVRBWQVTCCCWHWJWLWCVPWFVOWNWGVAZWEVOVPWNVBZXEXEWQOZV
      QWIWKWMVCZVQWIWKWMVDZVQWIWKWMVEZVFWOXBWSWLVTWOWIWJAKLZHXBWSPXGWOWJWBXJXHV
      QWBXJPWNWDVGZQAXJWABVSWQVRCWHWJDXJOZWCVSOZXFWAOZRSVHWOWIWTXJHXCXAPXGWOWTW
      BXJWOVRCBVTCCWJWLWCXDWEXEXEXEXHXIVIXKQAXJWABVSWQVRCWHWTDXLWCXMXFXNRSZVJWO
      WJWPWLWRMZVTMXAWJWHWLVSMZVTMXCWOVRBWQVTCCCWJWHWLVOVPWNVKWCXFWEXEXEXEXHXGX
      IVLWOXQXPWJVTWOWIWLXJHXQXPPXGWOWLWBXJXIXKQAXJWABVSWQVRCWHWLDXLWCXMXFXNRSV
      NXOVJVM $.
  $}

  ${
    $d B j $.  $d I j $.  $d J j $.  $d N j $.  $d R j $.  $d X j $.  $d Y j $.
    matmulcell.a $e |- A = ( N Mat R ) $.
    matmulcell.b $e |- B = ( Base ` A ) $.
    matmulcell.t $e |- .x. = ( .r ` R ) $.
    matmulcell.m $e |- .X. = ( .r ` A ) $.
    $( Multiplication in the matrix ring for a single cell of a matrix.
       (Contributed by AV, 17-Nov-2019.) $)
    matmulcell $p |- ( ( R e. Ring /\ ( X e. B /\ Y e. B )
                         /\ ( I e. N /\ J e. N ) )
                       -> ( I ( X .X. Y ) J ) = ( R gsum ( j e. N |->
                           ( ( I X j ) ( .r ` R ) ( j Y J ) ) ) ) ) $=
      ( wcel wa co cfv eqid crg w3a cotp cmmul cv cmulr cmpt cgsu wi cfn matrcl
      cvv matmulr syl6reqr a1d syl adantr impcom 3adant3 oveqd cbs simp1 simpld
      wceq 3ad2ant2 cxp cmap matbas2i adantl simp3l simp3r mamufv eqtrd ) CUAPZ
      JBPZKBPZQZGIPZHIPZQZUBZGHJKERZRGHJKCIIIUCUDRZRZRCFIGFUEZJRWEHKRCUFSZRUGUH
      RWAWBWDGHWAEWCJKVNVQEWCVDZVTVQVNWGVOVNWGUIZVPVOIUJPZCULPZQZWHABCIJLMUKZWK
      WGVNWKWCAUFSEACWCIULLWCTZUMOUNUOUPUQURUSUTUTWACVASZICWFFWCGHIIUAJKWMWNTZW
      FTVNVQVTVBVQVNWIVTVOWIVPVOWIWJWLVCUQVEZWPWPVQVNJWNIIVFVGRZPZVTVOWRVPABCWN
      JILWOMVHUQVEVQVNKWQPZVTVPWSVOABCWNKILWOMVHVIVEVNVQVRVSVJVNVQVRVSVKVLVM $.
  $}

  ${
    $d D i j $.  $d F i j $.  $d N i j k l m $.  $d R i j k l m $.
    $d X k l m $.  $d Y k l m $.  $d ph i j k l m $.  $d .x. k l $.
    mpt2matmul.a $e |- A = ( N Mat R ) $.
    mpt2matmul.b $e |- B = ( Base ` R ) $.
    mpt2matmul.m $e |- .X. = ( .r ` A ) $.
    mpt2matmul.t $e |- .x. = ( .r ` R ) $.
    mpt2matmul.r $e |- ( ph -> R e. V ) $.
    mpt2matmul.n $e |- ( ph -> N e. Fin ) $.
    mpt2matmul.x $e |- X = ( i e. N , j e. N |-> C ) $.
    mpt2matmul.y $e |- Y = ( i e. N , j e. N |-> E ) $.
    mpt2matmul.c $e |- ( ( ph /\ i e. N /\ j e. N ) -> C e. B ) $.
    mpt2matmul.e $e |- ( ( ph /\ i e. N /\ j e. N ) -> E e. B ) $.
    mpt2matmul.d $e |- ( ( ph /\ ( k = i /\ m = j ) ) -> D = C ) $.
    mpt2matmul.f $e |- ( ( ph /\ ( m = i /\ l = j ) ) -> F = E ) $.
    mpt2matmul.1 $e |- ( ( ph /\ k e. N /\ m e. N ) -> D e. U ) $.
    mpt2matmul.2 $e |- ( ( ph /\ m e. N /\ l e. N ) -> F e. W ) $.
    $( Multiplication of two N x N matrices given in maps-to notation.
       (Contributed by AV, 29-Oct-2019.) $)
    mpt2matmul $p |- ( ph -> ( X .X. Y )
           = ( k e. N , l e. N |-> ( R gsum ( m e. N |-> ( D .x. F ) ) ) ) ) $=
      ( co cotp cmmul cv cmpt cgsu cmpt2 cfn wcel wceq wa cmulr matmulr syl6eqr
      cfv eqid oveqd eqcomd syl2anc cbs cxp cmap w3a syl6eleq matbas2d syl5eqel
      matbas2 eleqtrrd mamuval a1i wi equcom anbi12i sylan2b ex 3ad2ant1 adantr
      weq imp simpl2 simpr simpl1 syl3anc ovmpt2d equcomi anim12i sylan2 simpl3
      oveq12d mpteq2dva oveq2d mpt2eq3dva 3eqtrd ) ASTHUPZSTFPPPUQURUPZUPZLUAPP
      FMPLUSZMUSZSUPZXMUAUSZTUPZGUPZUTZVAUPZVBLUAPPFMPEOGUPZUTZVAUPZVBAPVCVDZFQ
      VDZXIXKVEUGUFYCYDVFZXKXIYEXJHSTYEXJBVGVJHBFXJPQUBXJVKZVHUDVIVLVMVNAFVOVJZ
      PFGLMUAXJPPQSTYFYGVKZUEUFUGUGUGASBVOVJZYGPPVPVQUPZASJKPPDVBZYIUHAJKBYIDFY
      GPQUBYHYIVKZUGUFAJUSPVDKUSPVDVRZDCYGUJUCVSVTWAAYCYDYJYIVEUGUFBFYGPQUBYHWB
      VNZWCATYIYJATJKPPNVBZYIUIAJKBYINFYGPQUBYHYLUGUFYMNCYGUKUCVSVTWAYNWCWDALUA
      PPXSYBAXLPVDZXOPVDZVRZXRYAFVAYRMPXQXTYRXMPVDZVFZXNEXPOGYTJKXLXMPPDESISYKV
      EYTUHWEYTJLWMZKMWMZVFZDEVEZYRUUCUUDWFZYSAYPUUEYQAUUCUUDAUUCVFEDUUCALJWMZM
      KWMZVFEDVEUUAUUFUUBUUGJLWGKMWGWHULWIVMWJWKWLWNAYPYQYSWOZYRYSWPZYTAYPYSEIV
      DAYPYQYSWQZUUHUUIUNWRWSYTJKXMXOPPNOTRTYOVEYTUIWEYTJMWMZKUAWMZVFZVFONYTUUM
      ONVEZYRUUMUUNWFZYSAYPUUOYQAUUMUUNUUMAMJWMZUAKWMZVFUUNUUKUUPUULUUQJMWTKUAW
      TXAUMXBWJWKWLWNVMUUIAYPYQYSXCZYTAYSYQORVDUUJUUIUURUOWRWSXDXEXFXGXH $.
  $}

  ${
    $d i j x .0. $.  $d i j x .1. $.  $d i j x A $.  $d i j x N $.
    $d i j x R $.
    mat1.a $e |- A = ( N Mat R ) $.
    mat1.o $e |- .1. = ( 1r ` R ) $.
    mat1.z $e |- .0. = ( 0g ` R ) $.
    $( Value of an identity matrix, see also the statement in [Lang] p. 504:
       "The unit element of the ring of n x n matrices is the matrix I_n ...
       whose components are equal to 0 except on the diagonal, in which case
       they are equal to 1.".  (Contributed by Stefan O'Rear, 7-Sep-2015.) $)
    mat1 $p |- ( ( N e. Fin /\ R e. Ring ) -> ( 1r ` A ) =
        ( i e. N , j e. N |-> if ( i = j , .1. , .0. ) ) ) $=
      ( vx wcel crg wa cv wceq cbs cfv co eqid cfn cif cmpt2 cmulr wral cur cxp
      simpr simpl mamumat1cl matbas2 eleqtrd cmmul matmulr adantr simplr simpll
      cmap oveqd eleq2d biimpar mamulid eqtr3d mamurid jca ralrimiva wb matring
      cotp isringid syl mpbi2and ) FUALZBMLZNZDEFFDOEOPCGUBUCZAQRZLZVPKOZAUDRZS
      ZVSPZVSVPVTSZVSPZNZKVQUEZAUFRZVPPZVOVPBQRZFFUGURSZVQVOWIBCDEVPFGWITZVMVNU
      HIJVPTZVMVNUIUJABWIFMHWKUKZULVOWEKVQVOVSVQLZNZWBWDWOVPVSBFFFVIUMSZSWAVSWO
      WPVTVPVSVOWPVTPWNABWPFMHWPTZUNUOZUSWOWIBCDEWPVPFFVSGWKVMVNWNUPZIJWLVMVNWN
      UQZWTWQVOVSWJLWNVOWJVQVSWMUTVAZVBVCWOVSVPWPSWCVSWOWPVTVSVPWRUSWOWIBCDEWPV
      PFFVSGWKWSIJWLWTWTWQXAVDVCVEVFVOAMLVRWFNWHVGABFHVHKVQAVTWGVPVQTVTTWGTVJVK
      VL $.

    $d I i j $.  $d J i j $.  $d ph i j $.
    mat1ov.n $e |- ( ph -> N e. Fin ) $.
    mat1ov.r $e |- ( ph -> R e. Ring ) $.
    mat1ov.i $e |- ( ph -> I e. N ) $.
    mat1ov.j $e |- ( ph -> J e. N ) $.
    mat1ov.u $e |- U = ( 1r ` A ) $.
    $( Entries of an identity matrix, deduction form.  (Contributed by Stefan
       O'Rear, 10-Jul-2018.) $)
    mat1ov $p |- ( ph -> ( I U J ) = if ( I = J , .1. , .0. ) ) $=
      ( vi vj wceq weq cif cvv cur cfv cmpt2 cfn wcel mat1 syl2anc syl5eq cv wa
      crg eqeq12 ifbid adantl fvex eqeltri c0g ifex a1i ovmpt2d ) ARSFGHHRSUAZE
      IUBZFGTZEIUBZDUCADBUDUEZRSHHVEUFZQAHUGUHCUNUHVHVITMNBCERSHIJKLUIUJUKRULZF
      TSULZGTUMZVEVGTAVLVDVFEIVJFVKGUOUPUQOPVGUCUHAVFEIECUDUEUCKCUDURUSICUTUEUC
      LCUTURUSVAVBVC $.
  $}

  ${
    mat1bas.a $e |- A = ( N Mat R ) $.
    mat1bas.b $e |- B = ( Base ` A ) $.
    mat1bas.i $e |- .1. = ( 1r ` ( N Mat R ) ) $.
    $( The identity matrix is a matrix.  (Contributed by AV, 15-Feb-2019.) $)
    mat1bas $p |- ( ( R e. Ring /\ N e. Fin ) -> .1. e. B ) $=
      ( crg wcel cfn wa cmat co eqid matring ancoms cbs cfv fveq2i ringidcl syl
      eqtri ) CIJZEKJZLECMNZIJZDBJUEUDUGUFCEUFOPQBUFDBARSUFRSGAUFRFTUCHUAUB $.
  $}

  ${
    $d i j .0. $.  $d i j A $.  $d i j N $.  $d i j R $.  $d i j .x. $.
    $d L i j $.  $d K i j $.
    matsc.a $e |- A = ( N Mat R ) $.
    matsc.k $e |- K = ( Base ` R ) $.
    matsc.m $e |- .x. = ( .s ` A ) $.
    matsc.z $e |- .0. = ( 0g ` R ) $.
    $( The identity matrix multiplied with a scalar.  (Contributed by Stefan
       O'Rear, 16-Jul-2018.) $)
    matsc $p |- ( ( N e. Fin /\ R e. Ring /\ L e. K ) -> ( L .x. ( 1r ` A ) ) =
        ( i e. N , j e. N |-> if ( i = j , L , .0. ) ) ) $=
      ( cfn wcel cfv co cmpt2 wceq eqid crg w3a cur cxp csn cmulr cof weq simp3
      cif cbs wa 3simpa matring ringidcl 3syl matvsca2 syl2anc cvv simp1 simp13
      fvex c0g eqeltri ifex a1i fconstmpt2 mat1 3adant3 offval22 ovif2 ringridm
      cv 3adant1 ringrz ifeq12d syl5eq mpt2eq3dv 3eqtrd ) HNOZBUAOZGFOZUBZGAUCP
      ZCQZHHUDZGUEUDZWDBUFPZUGQZDEHHGDEUHZBUCPZIUJZWHQZRDEHHWJGIUJZRWCWBWDAUKPZ
      OZWEWISVTWAWBUIWCVTWAULAUAOWPVTWAWBUMABHJUNWOAWDWOTZWDTUOUPAWOWFBCWHFHGWD
      JWQKLWHTZWFTUQURWCDEHHGWLWHWGWDNNFUSVTWAWBUTZWSVTWAWBDVMHOZEVMHOZVAWLUSOW
      CWTXAUBWJWKIBUCVBIBVCPUSMBVCVBVDVEVFWGDEHHGRSWCDEHHGVGVFVTWAWDDEHHWLRSWBA
      BWKDEHIJWKTZMVHVIVJWCDEHHWMWNWCWMWJGWKWHQZGIWHQZUJWNWJGWKIWHVKWCWJXCGXDIW
      AWBXCGSVTFBWHWKGKWRXBVLVNWAWBXDISVTFBWHGIKWRMVOVNVPVQVRVS $.
  $}

  ${
    $d F x y $.  $d G x y $.  $d H x y $.  $d R x y $.
    $( Distribution law for the function operation and the composition of
       functions.  (Contributed by Stefan O'Rear, 17-Jul-2018.) $)
    ofco2 $p |- ( ( ( F e. _V /\ G e. _V ) /\ ( Fun H /\
            ( F o. H ) e. _V /\ ( G o. H ) e. _V ) ) ->
        ( ( F oF R G ) o. H ) = ( ( F o. H ) oF R ( G o. H ) ) ) $=
      ( vx vy cvv wcel wa ccom co cdm cin cima cres cfv cmpt wfn wceq wss sylan
      wfun w3a cof ccnv cv simpr1 fvimacnvi funfn sylib reseq1d cnvimass resmpt
      dffn5 ax-mp syl6eq offval3 adantr fveq2 fmptco wral ovex rgenw eqid fnmpt
      mp1i fneq1d mpbird fndm syl eqimss cores2 funcnvres2 coeq2d eqtr3d simpr2
      oveq12d 3syl simpr3 syl2anc inpreima dmco ineq12i syl6reqr simplr1 dmcoss
      inss2 sstri a1i sselda fvco inss1 mpteq12dva eqtrd 3eqtr4d ) BGHCGHIZDUBZ
      BDJZGHZCDJZGHZUCZIZBCAUDZKZDDUEZBLZCLZMZNZOZJZEXJEUFZDPZBPZXNCPZAKZQZXEDJ
      ZWRWTXDKZXCEFXJXIXNFUFZBPZYACPZAKZXQXKXEXCWQXMXJHXNXIHWPWQWSXAUGZXMXIDUHU
      AXCXKEDLZXNQZXJOZEXJXNQZXCDYGXJXCDYFRZDYGSXCWQYJYEDUIUJEYFDUNUJUKXJYFTYHY
      ISDXIULEYFXJXNUMUOUPWPXEFXIYDQSXBFABCGGUQURYAXNSYBXOYCXPAYAXNBUSYAXNCUSVQ
      UTXCXEXFXIOUEZJZXSXLXCXELZXISZYMXITYLXSSXCXEXIRZYNXCYOEXIXMBPZXMCPZAKZQZX
      IRZYRGHZEXIVAYTXCUUAEXIYPYQAVBVCEXIYRYSGYSVDVEVFXCXIXEYSWPXEYSSXBEABCGGUQ
      URVGVHXIXEVIVJYMXIVKXEDXIVLVRXCYKXKXEXCWQYKXKSYEXIDVMVJVNVOXCXTEWRLZWTLZM
      ZXMWRPZXMWTPZAKZQZXRXCWSXAXTUUHSWPWQWSXAVPWPWQWSXAVSEAWRWTGGUQVTXCEUUDUUG
      XJXQXCXJXFXGNZXFXHNZMZUUDXCWQXJUUKSYEXGXHDWAVJUUBUUIUUCUUJBDWBCDWBWCWDXCX
      MUUDHZIZUUEXOUUFXPAUUMWQXMYFHZUUEXOSWQWSXAWPUULWEZXCUUDYFXMUUDYFTZXCUUDUU
      CYFUUBUUCWGCDWFWHWIWJXMBDWKVTUUMWQUUNUUFXPSUUOXCUUDYFXMUUPXCUUDUUBYFUUBUU
      CWLBDWFWHWIWJXMCDWKVTVQWMWNWO $.

    $( The transposition of the value of a function operation for two functions
       is the value of the function operation for the two functions transposed.
       (Contributed by Stefan O'Rear, 17-Jul-2018.) $)
    oftpos $p |- ( ( F e. V /\ G e. W ) ->
        tpos ( F oF R G ) = ( tpos F oF R tpos G ) ) $=
      ( vx wcel wa cof co cvv csn ccom ctpos elex adantr adantl dftpos4 tposexg
      syl5eqelr cxp c0 cun cv ccnv cuni cmpt wfun wceq funmpt a1i ofco2 oveq12i
      syl23anc 3eqtr4g ) BDGZCEGZHZBCAIZJZFKKUAUBLUCZFUDLUEUFZUGZMZBVCMZCVCMZUS
      JZUTNBNZCNZUSJURBKGZCKGZVCUHZVEKGVFKGVDVGUIUPVJUQBDOPUQVKUPCEOQVLURFVAVBU
      JUKURVEVHKFBRZUPVHKGUQBDSPTURVFVIKFCRZUQVIKGUPCESQTABCVCULUNFUTRVHVEVIVFU
      SVMVNUMUO $.
  $}

  ${
    mattposcl.a $e |- A = ( N Mat R ) $.
    mattposcl.b $e |- B = ( Base ` A ) $.
    $( The transpose of a square matrix is a square matrix of the same size.
       (Contributed by SO, 9-Jul-2018.) $)
    mattposcl $p |- ( M e. B -> tpos M e. B ) $=
      ( wcel ctpos cbs cfv cxp cmap co wf eqid matbas2i cvv cfn syl elmapi 3syl
      tposf wb fvex matrcl simpld xpfi anidms elmapg sylancr wa matbas2 syl6eqr
      mpbird wceq eleqtrd ) DBHZDIZCJKZEELZMNZBURUSVBHZVAUTUSOZURDVBHVAUTDOVDAB
      CUTDEFUTPZGQDUTVAUAEEUTDUCUBURUTRHVASHZVCVDUDCJUEURESHZVFURVGCRHZABCEDFGU
      FZUGVGVFEEUHUITUTVAUSRSUJUKUOURVBAJKZBURVGVHULVBVJUPVIACUTERFVEUMTGUNUQ
      $.

    $( The transpose of the transpose of a square matrix is the square matrix
       itself.  (Contributed by SO, 17-Jul-2018.) $)
    mattpostpos $p |- ( M e. B -> tpos tpos M = M ) $=
      ( wcel wrel cdm ctpos wceq cxp cbs cfv wf cmap co eqid syl matbas2i relxp
      elmapi frel fdm releqd mpbiri tpostpos2 syl2anc ) DBHZDIZDJZIZDKKDLUJEEMZ
      CNOZDPZUKUJDUOUNQRHUPABCUODEFUOSGUADUOUNUCTZUNUODUDTUJUMUNIEEUBUJULUNUJUP
      ULUNLUQUNUODUETUFUGDUHUI $.
  $}

  ${
    mattposvs.a $e |- A = ( N Mat R ) $.
    mattposvs.b $e |- B = ( Base ` A ) $.
    mattposvs.k $e |- K = ( Base ` R ) $.
    mattposvs.v $e |- .x. = ( .s ` A ) $.
    $( The transposition of a matrix multiplied with a scalar equals the
       transposed matrix multiplied with the scalar, see also the statement in
       [Lang] p. 505.  (Contributed by Stefan O'Rear, 17-Jul-2018.) $)
    mattposvs $p |- ( ( X e. K /\ Y e. B ) ->
        tpos ( X .x. Y ) = ( X .x. tpos Y ) ) $=
      ( wcel cxp co ctpos wceq cvv cfn eqid wa csn cmulr cfv cof matrcl sqxpexg
      simpld snex xpexg sylancl oftpos mpancom tposconst oveq1i syl6eq matvsca2
      syl adantl tposeqd mattposcl sylan2 3eqtr4d ) GEMZHBMZUAZFFNZGUBZNZHCUCUD
      ZUEZOZPZVIHPZVKOZGHDOZPGVNDOZVEVMVOQVDVEVMVIPZVNVKOZVOVIRMZVEVMVSQVEVGRMZ
      VHRMVTVEFSMZWAVEWBCRMABCFHIJUFUHFSUGURGUIVGVHRRUJUKVJVIHRBULUMVRVIVNVKFFG
      UNUOUPUSVFVPVLABVGCDVJEFGHIJKLVJTZVGTZUQUTVEVDVNBMVQVOQABCHFIJVAABVGCDVJE
      FGVNIJKLWCWDUQVBVC $.
  $}

  ${
    $d i j R $.  $d i j N $.  $d i j A $.
    mattpos1.a $e |- A = ( N Mat R ) $.
    mattpos1.o $e |- .1. = ( 1r ` A ) $.
    $( The transposition of the identity matrix is the identity matrix.
       (Contributed by Stefan O'Rear, 17-Jul-2018.) $)
    mattpos1 $p |- ( ( N e. Fin /\ R e. Ring ) -> tpos .1. = .1. ) $=
      ( vi vj cfn wcel wa cur cfv ctpos weq cif cmpt2 eqid mat1 cv crg tposmpt2
      c0g tposeqd wb equcom a1i ifbid mpt2eq3ia syl6eq 3eqtr4a tposeqi 3eqtr4g
      ) DIJBUAJKZALMZNZUOCNCUNGHDDGHOZBLMZBUCMZPZQZNHGDDUTQZUPUOGHDDUTVAVARUBUN
      UOVAABURGHDUSEURRZUSRZSUDUNUOHGDDHGOZURUSPZQVBABURHGDUSEVCVDSHGDDVFUTHTDJ
      GTDJKZVEUQURUSVEUQUEVGHGUFUGUHUIUJUKCUOFULFUM $.
  $}

  $( The transposition of an I X J -matrix is a J X I -matrix, see also the
     statement in [Lang] p. 505.  (Contributed by Stefan O'Rear,
     9-Jul-2018.) $)
  tposmap $p |- ( A e. ( B ^m ( I X. J ) ) ->
      tpos A e. ( B ^m ( J X. I ) ) ) $=
    ( cxp cmap co wcel ctpos wf elmapi tposf syl cvv wa wb elmapex cnvxp cnvexg
    ccnv syl5eqelr anim2i elmapg 3syl mpbird ) ABCDEZFGHZAIZBDCEZFGHZUIBUHJZUGU
    FBAJUKABUFKCDBALMUGBNHZUFNHZOULUINHZOUJUKPABUFQUMUNULUMUIUFTNCDRUFNSUAUBBUI
    UHNNUCUDUE $.

  ${
    $d F i j k $.  $d G i j k $.  $d M i j k $.  $d N i j k $.  $d P i j k $.
    $d B i j k $.  $d R i j k $.  $d X i j k $.  $d Y i j k $.  $d ph i j k $.
    mamutpos.f $e |- F = ( R maMul <. M , N , P >. ) $.
    mamutpos.g $e |- G = ( R maMul <. P , N , M >. ) $.
    mamutpos.b $e |- B = ( Base ` R ) $.
    mamutpos.r $e |- ( ph -> R e. CRing ) $.
    mamutpos.m $e |- ( ph -> M e. Fin ) $.
    mamutpos.n $e |- ( ph -> N e. Fin ) $.
    mamutpos.p $e |- ( ph -> P e. Fin ) $.
    mamutpos.x $e |- ( ph -> X e. ( B ^m ( M X. N ) ) ) $.
    mamutpos.y $e |- ( ph -> Y e. ( B ^m ( N X. P ) ) ) $.
    $( Behavior of transposes in matrix products, see also the statement in
       [Lang] p. 505.  (Contributed by Stefan O'Rear, 9-Jul-2018.) $)
    mamutpos $p |- ( ph -> tpos ( X F Y ) = ( tpos Y G tpos X ) ) $=
      ( co vj vi vk cmulr cfv cmpt cgsu cmpt2 ctpos eqid tposmpt2 wcel w3a ccrg
      cv wa wceq simpl1 syl cxp cmap wf elmapi 3syl simpl3 simpr fovrnd crngcom
      simpl2 syl3anc ovtpos oveq12i syl6eqr mpteq2dva oveq2d mpt2eq3dva mamuval
      syl5eq tposeqd tposmap 3eqtr4d ) AUAUBGCDUCHUAUOZUCUOZITZWCUBUOZJTZDUDUEZ
      TZUFZUGTZUHZUIZUBUACGDUCHWEWCJUIZTZWCWBIUIZTZWGTZUFZUGTZUHZIJETZUIWMWOFTA
      WLUBUACGWJUHWTUAUBGCWJWKWKUJUKAUBUACGWJWSAWECULZWBGULZUMZWIWRDUGXDUCHWHWQ
      XDWCHULZUPZWHWFWDWGTZWQXFDUNULZWDBULWFBULWHXGUQXFAXHAXBXCXEURZNUSXFWBWCBG
      HIXFAIBGHUTZVATULZXJBIVBXIRIBXJVCVDAXBXCXEVEXDXEVFZVGXFWCWEBHCJXFAJBHCUTZ
      VATULZXMBJVBXISJBXMVCVDXLAXBXCXEVIVGBDWGWDWFMWGUJZVHVJWNWFWPWDWGWEWCJVKWC
      WBIVKVLVMVNVOVPVRAXAWKABCDWGUAUCUBEGHUNIJKMXONOPQRSVQVSABGDWGUBUCUAFCHUNW
      MWOLMXONQPOAXNWMBCHUTVATULSJBHCVTUSAXKWOBHGUTVATULRIBGHVTUSVQWA $.
  $}

  ${
    mattposm.a $e |- A = ( N Mat R ) $.
    mattposm.b $e |- B = ( Base ` A ) $.
    mattposm.t $e |- .x. = ( .r ` A ) $.
    $( Multiplying two transposed matrices results in the transposition of the
       product of the two matrices.  (Contributed by Stefan O'Rear,
       17-Jul-2018.) $)
    mattposm $p |- ( ( R e. CRing /\ X e. B /\ Y e. B ) ->
        tpos ( X .x. Y ) = ( tpos Y .x. tpos X ) ) $=
      ( ccrg wcel w3a co ctpos cfv eqid 3ad2ant3 matbas2i oveqd cmmul cbs simp1
      cotp cfn cvv matrcl cxp cmap 3ad2ant2 mamutpos cmulr wceq matmulr syl2anc
      simpld syl6reqr tposeqd 3eqtr4d ) CKLZFBLZGBLZMZFGCEEEUDUANZNZOGOZFOZVDNF
      GDNZOVFVGDNVCCUBPZECVDVDEEFGVDQZVJVIQZUTVAVBUCZVBUTEUELZVAVBVMCUFLABCEGHI
      UGUPRZVNVNVAUTFVIEEUHUINZLVBABCVIFEHVKISUJVBUTGVOLVAABCVIGEHVKISRUKVCVHVE
      VCDVDFGVCVDAULPZDVCVMUTVDVPUMVNVLACVDEKHVJUNUOJUQZTURVCDVDVFVGVQTUS $.
  $}

  ${
    $d B r $.  $d M r $.  $d N r $.  $d R r $.
    madetsumid.a $e |- A = ( N Mat R ) $.
    madetsumid.b $e |- B = ( Base ` A ) $.
    madetsumid.u $e |- U = ( mulGrp ` R ) $.
    $( Closure of a group sum over the diagonal coefficients of a square matrix
       over a commutative ring.  (Contributed by AV, 29-Dec-2018.)  (Proof
       shortened by AV, 23-Jul-2019.) $)
    matgsumcl $p |- ( ( R e. CRing /\ M e. B )
                    -> ( U gsum ( r e. N |-> ( r M r ) ) ) e. ( Base ` R ) ) $=
      ( ccrg wcel wa cbs cfv cv co eqid adantr simpr mgpbas ccmn crngmgp matrcl
      cfn cvv adantl simpld cxp cmap matbas2i elmapi fovrnd ralrimiva gsummptcl
      wf 3syl ) CKLZEBLZMZCNOZGDFGPZVBEQZVACDJVARZUAURDUBLUSCDJUCSUTFUELZCUFLZU
      SVEVFMURABCFEHIUDUGUHUTVCVALGFUTVBFLZMVBVBVAFFEUTFFUIZVAEUPZVGUTUSEVAVHUJ
      QLVIURUSTABCVAEFHVDIUKEVAVHULUQSUTVGTZVJUMUNUO $.

    $d P r $.
    madetsumid.y $e |- Y = ( ZRHom ` R ) $.
    madetsumid.s $e |- S = ( pmSgn ` N ) $.
    madetsumid.t $e |- .x. = ( .r ` R ) $.
    $( The identity summand in the Leibniz' formula of a determinant for a
       square matrix over a commutative ring.  (Contributed by AV,
       29-Dec-2018.) $)
    madetsumid $p |- ( ( R e. CRing /\ M e. B /\ P = ( _I |` N ) )
      -> ( ( ( Y o. S ) ` P ) .x. ( U gsum ( r e. N |-> ( ( P ` r ) M r ) ) ) )
         = ( U gsum ( r e. N |-> ( r M r ) ) ) ) $=
      ( wceq cfv co ccrg wcel cid cres w3a ccom cv cmpt cgsu fveq2 fveq1 oveq1d
      mpteq2dv oveq2d oveq12d 3ad2ant3 cur cfn cvv matrcl simpld csymg c0g czrh
      cpsgn coeq12i a1i eqid symgid adantl fveq12d cmhm crg crngring zrhpsgnmhm
      wa cmgp oveq2i syl6eleqr sylan ringidval mhm0 syl fvresi mpteq2dva sylan2
      eqtrd cbs adantr matgsumcl ringlidm syl2anc 3adant3 ) DUAUBZHBUBZCUCIUDZR
      ZUECJEUFZSZGKIKUGZCSZWTHTZUHZUITZFTZWPWRSZGKIWTWPSZWTHTZUHZUITZFTZGKIWTWT
      HTZUHZUITZWQWNXEXKRWOWQWSXFXDXJFCWPWRUJWQXCXIGUIWQKIXBXHWQXAXGWTHWTCWPUKU
      LUMUNUOUPWNWOXKXNRWQWNWOVPZXKDUQSZXNFTZXNWOWNIURUBZXKXQRWOXRDUSUBABDIHLMU
      TVAWNXRVPZXFXPXJXNFXSXFIVBSZVCSZDVDSZIVESZUFZSZXPXSWPYAWRYDWRYDRXSJYBEYCO
      PVFVGXRWPYARWNIXTURXTVHVIVJVKXSYDXTGVLTZUBZYEXPRWNDVMUBZXRYGDVNZYHXRVPYDX
      TDVQSZVLTYFIDVOGYJXTVLNVRVSVTXTGYDXPYAYAVHDXPGNXPVHZWAWBWCWGXSXIXMGUIXSKI
      XHXLXSWTIUBZVPXGWTWTHYLXGWTRXSIWTWDVJULWEUNUOWFXOYHXNDWHSZUBXQXNRWNYHWOYI
      WIABDGHIKLMNWJYMDFXPXNYMVHQYKWKWLWGWMWG $.
  $}

  ${
    $d B n $.  $d M n $.  $d P n $.  $d R n $.  $d Q n $.
    matepmcl.a $e |- A = ( N Mat R ) $.
    matepmcl.b $e |- B = ( Base ` A ) $.
    matepmcl.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    $( Each entry of a matrix with an index as permutation of the other is an
       element of the underlying ring.  (Contributed by AV, 1-Jan-2019.) $)
    matepmcl $p |- ( ( R e. Ring /\ Q e. P /\ M e. B )
                            -> A. n e. N ( ( Q ` n ) M n ) e. ( Base ` R ) ) $=
      ( crg wcel w3a cv cfv co cbs wa eqid csymg symgfv 3ad2antl2 eleq2i biimpi
      simpr 3ad2ant3 adantr matecl syl3anc ralrimiva ) ELMZDCMZGBMZNZFOZDPZUPGQ
      ERPZMZFHUOUPHMZSUQHMZUTGARPZMZUSUMULUTVAUNHCDHUAPZUPVDTKUBUCUOUTUFUOVCUTU
      NULVCUMUNVCBVBGJUDUEUGUHAEUQUPURGHIURTUIUJUK $.

    $( Each entry of a matrix with an index as permutation of the other is an
       element of the underlying ring.  (Contributed by AV, 1-Jan-2019.) $)
    matepm2cl $p |- ( ( R e. Ring /\ Q e. P /\ M e. B )
                            -> A. n e. N ( n M ( Q ` n ) ) e. ( Base ` R ) ) $=
      ( crg wcel w3a cv cfv co cbs wa eqid simpr symgfv 3ad2antl2 eleq2i biimpi
      csymg 3ad2ant3 adantr matecl syl3anc ralrimiva ) ELMZDCMZGBMZNZFOZUPDPZGQ
      ERPZMZFHUOUPHMZSUTUQHMZGARPZMZUSUOUTUAUMULUTVAUNHCDHUFPZUPVDTKUBUCUOVCUTU
      NULVCUMUNVCBVBGJUDUEUGUHAEUPUQURGHIURTUIUJUK $.
  $}

  ${
    $d B n $.  $d M n $.  $d N n $.  $d P n $.  $d Q n $.  $d R n $.
    madetsmelbas.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    madetsmelbas.s $e |- S = ( pmSgn ` N ) $.
    madetsmelbas.y $e |- Y = ( ZRHom ` R ) $.
    madetsmelbas.a $e |- A = ( N Mat R ) $.
    madetsmelbas.b $e |- B = ( Base ` A ) $.
    madetsmelbas.g $e |- G = ( mulGrp ` R ) $.
    $( A summand of the determinant of a matrix belongs to the underlying ring.
       (Contributed by AV, 1-Jan-2019.) $)
    madetsmelbas $p |- ( ( R e. CRing /\ M e. B /\ Q e. P )
                         -> ( ( ( Y o. S ) ` Q ) ( .r ` R )
             ( G gsum ( n e. N |-> ( ( Q ` n ) M n ) ) ) ) e. ( Base ` R ) ) $=
      ( wcel cfv co ccrg w3a crg ccom cbs cmpt cgsu cmulr crngring 3ad2ant1 cfn
      cv cvv matrcl simpld 3ad2ant2 simp3 zrhcopsgnelbas syl3anc mgpbas crngmgp
      eqid ccmn wral simp2 matepmcl gsummptcl ringcl ) EUARZIBRZDCRZUBZEUCRZDKF
      UDSZEUESZRZHGJGULZDSVQITZUFUGTZVORVNVSEUHSZTVORVIVJVMVKEUIUJZVLVMJUKRZVKV
      PWAVJVIWBVKVJWBEUMRABEJIOPUNUOUPZVIVJVKUQZCDEFJKLMNURUSVLVOGHJVRVOEHQVOVB
      ZUTVIVJHVCRVKEHQVAUJWCVLVMVKVJVRVORGJVDWAWDVIVJVKVEABCDEGIJOPLVFUSVGVOEVT
      VNVSWEVTVBVHUS $.

    $( A summand of the determinant of a matrix belongs to the underlying ring.
       (Contributed by AV, 1-Jan-2019.) $)
    madetsmelbas2 $p |- ( ( R e. CRing /\ M e. B /\ Q e. P )
                         -> ( ( ( Y o. S ) ` Q ) ( .r ` R )
             ( G gsum ( n e. N |-> ( n M ( Q ` n ) ) ) ) ) e. ( Base ` R ) ) $=
      ( wcel cfv co ccrg w3a crg ccom cbs cmpt cgsu cmulr crngring 3ad2ant1 cfn
      cv cvv matrcl simpld 3ad2ant2 simp3 zrhcopsgnelbas syl3anc mgpbas crngmgp
      eqid ccmn wral simp2 matepm2cl gsummptcl ringcl ) EUARZIBRZDCRZUBZEUCRZDK
      FUDSZEUESZRZHGJGULZVQDSITZUFUGTZVORVNVSEUHSZTVORVIVJVMVKEUIUJZVLVMJUKRZVK
      VPWAVJVIWBVKVJWBEUMRABEJIOPUNUOUPZVIVJVKUQZCDEFJKLMNURUSVLVOGHJVRVOEHQVOV
      BZUTVIVJHVCRVKEHQVAUJWCVLVMVKVJVRVORGJVDWAWDVIVJVKVEABCDEGIJOPLVFUSVGVOEV
      TVNVSWEVTVBVHUS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Matrices of dimension 0 and 1
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
As already mentioned before, and shown in ~ mat0dimbas0 , the empty set is the
sole zero-dimensional matrix (also called "empty matrix", see Wikipedia
~ https://en.wikipedia.org/wiki/Matrix_(mathematics)#Empty_matrices).  In the
following, some properties of the empty matrix are shown, especially that the
empty matrix over an arbitrary ring forms a commutative ring, see
~ mat0dimcrng .

For the one-dimensional case, it can be shown that a ring of matrices with
dimension 1 is isomorphic to the underlying ring, see ~ mat1ric .
$)

  $( The empty set is the one and only matrix of dimension 0, called "the empty
     matrix".  (Contributed by AV, 27-Feb-2019.) $)
  mat0dimbas0 $p |- ( R e. V -> ( Base ` ( (/) Mat R ) ) = { (/) } ) $=
    ( wcel cbs cfv c0 cxp cmap c1o cmat csn wceq 0xp a1i oveq2d fvex map0e eqid
    co cvv mp1i eqtrd cfn 0fin matbas2 mpan df1o2 3eqtr3d ) ABCZADEZFFGZHSZIFAJ
    SZDEZFKZUIULUJFHSZIUIUKFUJHUKFLUIFMNOUJTCUPILUIADPUJTQUAUBFUCCUIULUNLUDUMAU
    JFBUMRUJRUEUFIUOLUIUGNUH $.

  ${
    mat0dim.a $e |- A = ( (/) Mat R ) $.
    $( The zero of the algebra of matrices with dimension 0.  (Contributed by
       AV, 6-Aug-2019.) $)
    mat0dim0 $p |- ( R e. Ring -> ( 0g ` A ) = (/) ) $=
      ( crg wcel c0g cfv cbs c0 wceq cgrp cfn 0fin matring mpan ringgrp grpidcl
      eqid 3syl csn cmat co fveq2i mat0dimbas0 syl5eq eleq2d elsni syl6bi mpd )
      BDEZAFGZAHGZEZUKIJZUJADEZAKEUMILEUJUOMABICNOAPULAUKULRUKRQSUJUMUKITZEUNUJ
      ULUPUKUJULIBUAUBZHGUPAUQHCUCBDUDUEUFUKIUGUHUI $.

    $( The identity of the algebra of matrices with dimension 0.  (Contributed
       by AV, 6-Aug-2019.) $)
    mat0dimid $p |- ( R e. Ring -> ( 1r ` A ) = (/) ) $=
      ( crg wcel cur cfv cbs c0 wceq cfn 0fin matring mpan eqid ringidcl syl co
      csn cmat fveq2i mat0dimbas0 syl5eq eleq2d elsni syl6bi mpd ) BDEZAFGZAHGZ
      EZUIIJZUHADEZUKIKEUHUMLABICMNUJAUIUJOUIOPQUHUKUIISZEULUHUJUNUIUHUJIBTRZHG
      UNAUOHCUABDUBUCUDUIIUEUFUG $.

    $( The scalar multiplication in the algebra of matrices with dimension 0.
       (Contributed by AV, 6-Aug-2019.) $)
    mat0dimscm $p |- ( ( R e. Ring /\ X e. ( Base ` R ) )
                       -> ( X ( .s ` A ) (/) ) = (/) ) $=
      ( crg wcel cbs cfv wa c0 cvsca wceq simpl clmod csca cfn 0fin eleq2d eqid
      co matlmod sylancr matsca2 mpan fveq2d biimpa csn snid fveq2i mat0dimbas0
      0ex cmat syl5eq syl5eleqr adantr lmodvscl syl3anc elsni syl6bi sylc ) BEF
      ZCBGHZFZIZVACJAKHZTZAGHZFZVFJLZVAVCMZVDANFZCAOHZGHZFZJVGFZVHVDJPFZVAVKQVJ
      ABJDUAUBVAVCVNVAVBVMCVABVLGVPVABVLLQABJEDUCUDUERUFVAVOVCVAJJUGZVGJUKUHVAV
      GJBULTZGHVQAVRGDUIBEUJUMZUNUOCVEVLVMVGAJVGSVLSVESVMSUPUQVAVHVFVQFVIVAVGVQ
      VFVSRVFJURUSUT $.

    $d A x y $.
    $( The algebra of matrices with dimension 0 (over an arbitrary ring!) is a
       commutative ring.  (Contributed by AV, 10-Aug-2019.) $)
    mat0dimcrng $p |- ( R e. Ring -> A e. CRing ) $=
      ( vx vy crg wcel cv cfv co wceq cbs wral c0 0ex oveq1 oveq2 eqeq12d ralsn
      eqid ccrg cfn 0fin matring mpan cmat csn mat0dimbas0 eqcomi fveq2i eqeq1i
      cmulr wi wa eqidd bitri sylibr wb raleq raleqbi1dv adantr mpbird ex sylbi
      ralbidv mpcom iscrng2 sylanbrc ) BFGZAFGZDHZEHZAULIZJZVLVKVMJZKZEALIZMZDV
      QMZAUAGNUBGVIVJUCABNCUDUENBUFJZLIZNUGZKZVIVSBFUHWCVQWBKZVIVSUMWAVQWBVTALA
      VTCUIUJUKWDVIVSWDVIUNZVSVPEWBMZDWBMZWENNVMJZWHKZWGWEWHUOWGNVLVMJZVLNVMJZK
      ZEWBMZWIWFWMDNOVKNKZVPWLEWBWNVNWJVOWKVKNVLVMPVKNVLVMQRVESWLWIENOVLNKWJWHW
      KWHVLNNVMQVLNNVMPRSUPUQWDVSWGURVIVRWFDVQWBVPEVQWBUSUTVAVBVCVDVFDEVQAVMVQT
      VMTVGVH $.
  $}

  ${
    $d B r $.  $d E r $.  $d M r $.  $d R r $.  $d V r $.
    mat1dim.a $e |- A = ( { E } Mat R ) $.
    mat1dim.b $e |- B = ( Base ` R ) $.
    mat1dim.o $e |- O = <. E , E >. $.
    $( A matrix with dimension 1 is an ordered pair with an ordered pair (of
       the one and only pair of indices) as first component.  (Contributed by
       AV, 15-Aug-2019.) $)
    mat1dimelbas $p |- ( ( R e. Ring /\ E e. V )
                -> ( M e. ( Base ` A ) <-> E. r e. B M = { <. O , r >. } ) ) $=
      ( wcel wa csn wf cop wceq wrex wb cvv crg cbs cfv cxp cv cmap co cfn snfi
      simpl matbas2 eqcomd eleq2d sylancr fvex eqeltri snex pm3.2i xpexg elmapg
      mp1i bitrd xpsng anidms adantl feq2d opex risset eqcom rexbii sylbb eqeq1
      fsn2 ad2antrl sneqbg ax-mp eqid vex opth2 mpbiran bitri rexbidv mpbird ex
      a1i syl5bi sylbid wf1o f1o2sn f1of syl adantll snssi fssd feq1 syl5ibrcom
      wss rexlimdva impbid eqcomi opeq1i sneqi eqeq2i ) CUALZDGLZMZEAUBUCZLZDNZ
      XIUDZBEOZEFHUEZPZNZQZHBRZXFXHEBXJUFUGZLZXKXFXIUHLZXDXHXRSDUIXDXEUJXSXDMZX
      GXQEXTXQXGACBXIUAIJUKULUMUNXFBTLXJTLZXRXKSBCUBUCTJCUBUOUPXITLZYBMYAXFYBYB
      DUQZYCURXIXITTUSVABXJETTUTUNVBXFXKEDDPZXLPZNZQZHBRZXPXFXKYHXFXKYDNZBEOZYH
      XFXJYIBEXEXJYIQZXDXEYKDDGGVCVDVEVFYJYDEUCZBLZEYDYLPZNZQZMZXFYHYDBEDDVGZVM
      XFYQYHXFYQMZYHYLXLQZHBRZYMUUAXFYPYMXLYLQZHBRUUAHYLBVHUUBYTHBXLYLVIVJVKVNY
      SYGYTHBYQYGYTSZXFYPUUCYMYPYGYOYFQZYTEYOYFVLUUDYTSYPUUDYNYEQZYTYNTLUUDUUES
      YDYLVGYNYETVOVPUUEYDYDQYTYDVQYDYLYDXLYRHVRVSVTWAWEVBVEVEWBWCWDWFWGXFYGXKH
      BXFXLBLZMZXKYGXJBYFOUUGXJXLNZBYFXEUUFXJUUHYFOZXDXEUUFMXJUUHYFWHUUIDGBXLWI
      XJUUHYFWJWKWLUUFUUHBWQXFXLBWMVEWNXJBEYFWOWPWRWSXFYGXOHBYGXOSXFYFXNEYEXMYD
      FXLFYDKWTXAXBXCWEWBVBVB $.

    $d O r $.  $d X r $.
    $( A matrix with dimension 1 is an ordered pair with an ordered pair (of
       the one and only pair of indices) as first component.  (Contributed by
       AV, 15-Aug-2019.) $)
    mat1dimbas $p |- ( ( R e. Ring /\ E e. V /\ X e. B )
                     -> { <. O , X >. } e. ( Base ` A ) ) $=
      ( vr wcel cop csn wceq wrex cvv wb opex mpbird crg cv risset eqcom rexbii
      w3a cbs cfv sylbb2 3ad2ant3 eqeltri simp3 opthg sylancr sneqbg ax-mp eqid
      wa biantrur 3bitr4g rexbidv mat1dimelbas 3adant3 ) CUALZDFLZGBLZUFZEGMZNZ
      AUGUHLZVIEKUBZMZNOZKBPZVGVNGVKOZKBPZVFVDVPVEVFVKGOZKBPVPKGBUCVOVQKBGVKUDU
      EUIUJVGVMVOKBVGVHVLOZEEOZVOURZVMVOVGEQLVFVRVTREDDMQJDDSUKVDVEVFULEGEVKQBU
      MUNVHQLVMVRREGSVHVLQUOUPVSVOEUQUSUTVATVDVEVJVNRVFABCDVIEFKHIJVBVCT $.

    $d E x y $.  $d R x y $.  $d V x y $.
    $( The zero of the algebra of matrices with dimension 1.  (Contributed by
       AV, 15-Aug-2019.) $)
    mat1dim0 $p |- ( ( R e. Ring /\ E e. V )
                     -> ( 0g ` A ) = { <. O , ( 0g ` R ) >. } ) $=
      ( vx vy wcel wa c0g cfv csn cop wceq eqid cvv crg cmpt2 cfn anim2i ancomd
      a1i mat0op syl simpr fvexd w3a cv eqidd mpt2sn eqcomi opeq1i sneqi syl6eq
      snfi syl3anc eqtrd ) CUALZDFLZMZANOZJKDPZVFCNOZUBZEVGQZPZVDVFUCLZVBMVEVHR
      VDVBVKVCVKVBVKVCDUSUFUDUEACJKVFVGGVGSUGUHVDVCVCVGTLZVHVJRVBVCUIZVMVDCNUJV
      CVCVLUKVHDDQZVGQZPVJJKDDVGVGTVGVHFFVHSJULDRVGUMKULDRVGUMUNVOVIVNEVGEVNIUO
      UPUQURUTVA $.

    $d A x y $.
    $( The identity of the algebra of matrices with dimension 1.  (Contributed
       by AV, 15-Aug-2019.) $)
    mat1dimid $p |- ( ( R e. Ring /\ E e. V )
                     -> ( 1r ` A ) = { <. O , ( 1r ` R ) >. } ) $=
      ( vx vy wcel wa cur cfv csn cif cop wceq eqid crg weq c0g cfn snfi anim2i
      cmpt2 a1i ancomd mat1 syl cvv simpr fvex ifex cv eqeq1 ifbid eqeq2 mpt2sn
      syl3anc iftruei opeq2i sneqi syl6eq opeq1i syl6eqr eqtrd ) CUALZDFLZMZANO
      ZJKDPZVMJKUBZCNOZCUCOZQZUGZEVORZPZVKVMUDLZVIMVLVRSVKVIWAVJWAVIWAVJDUEUHUF
      UIACVOJKVMVPGVOTVPTUJUKVKVRDDRZVORZPZVTVKVRWBDDSZVOVPQZRZPZWDVKVJVJWFULLZ
      VRWHSVIVJUMZWJWIVKWEVOVPCNUNCUCUNUOUHJKDDVQDKUPZSZVOVPQULWFVRFFVRTJUPZDSV
      NWLVOVPWMDWKUQURWKDSWLWEVOVPWKDDUSURUTVAWGWCWFVOWBWEVOVPDTVBVCVDVEVSWCEWB
      VOIVFVDVGVH $.

    $d B x $.  $d O x $.  $d X x $.  $d Y x $.
    $( The scalar multiplication in the algebra of matrices with dimension 1.
       (Contributed by AV, 16-Aug-2019.) $)
    mat1dimscm $p |- ( ( ( R e. Ring /\ E e. V ) /\ ( X e. B /\ Y e. B ) )
                       -> ( X ( .s ` A ) { <. O , Y >. } )
                          = { <. O , ( X ( .r ` R ) Y ) >. } ) $=
      ( wcel wa csn cop cfv cvv syl adantl wceq vx crg cxp cmulr cof cmpt cvsca
      co wfn opex eqeltri anim2i ancomd fnsng xpsng fneq1d mpbird sneqi syl6eqr
      a1i anidms ad2antlr xpeq1d sylan snex inidm cv elsni eqcomi opeq1i syl6eq
      wi fveq2 eqtrd fveq1d fvsng sylan9eq ex impcom offval simprl simpr df-3an
      cbs sylibr mat1dimbas eqid matvsca2 syl2anc 3anass biimpri adantlr ringcl
      w3a fmptsn sylancr 3eqtr4d ) CUBLZDFLZMZGBLZHBLZMZMZDNZXEUCZGNZUCZEHONZCU
      DPZUEUHZUAENZGHXJUHZUFZGXIAUGPZUHZEXMONZXDUAXLXLGHXJXLXHXIQQXDXHXLUIXLXGU
      CZXLUIZXDXSEGOZNZXLUIZXCYBWTXCEQLZXAMZYBXCXAYCXBYCXAYCXBEDDOZQKDDUJZUKZUT
      ULUMZEGQBUNRSXDXLXRYAXCXRYATZWTXCYDYIYHEGQBUORSUPUQXDXLXHXRXDXFXLXGWSXFXL
      TZWRXCWSYJWSWSMXFYENZXLDDFFUOZEYEKURUSVAVBVCUPUQXCXIXLUIZWTXAYCXBYMYCXAYG
      UTZEHQBUNVDSXLQLXDEVEUTZYOXLVFUAVGZXLLZXDYPXHPZGTZYQYPETZXDYSVLYPEVHZYTXD
      YSYTXDYREXHPZGYPEXHVMXDUUBEYAPZGXDEXHYAXDXHYKXGUCZYAXDXFYKXGWSXFYKTZWRXCW
      SUUEYLVAVBVCXCUUDYATZWTXCYEQLZXAMZUUFXCXAUUGXBUUGXAUUGXBYFUTULUMUUHUUDYEG
      OZNYAYEGQBUOUUIXTYEEGEYEKVIVJURVKRSVNVOXCUUCGTZWTXCYDUUJYHEGQBVPRSVNVQVRR
      VSYQXDYPXIPZHTZYQYTXDUULVLUUAYTXDUULYTXDUUKEXIPZHYPEXIVMXCUUMHTZWTXAYCXBU
      UNYNEHQBVPVDSVQVRRVSVTXDXAXIAWDPZLZXPXKTWTXAXBWAXDWRWSXBWNZUUPXDWTXBMUUQX
      CXBWTXAXBWBULWRWSXBWCWEABCDEFHIJKWFRAUUOXFCXOXJBXEGXIIUUOWGJXOWGXJWGZXFWG
      WHWIXDYCXMBLZXQXNTYGXDWRXAXBWNZUUSWRXCUUTWSUUTWRXCMWRXAXBWJWKWLBCXJGHJUUR
      WMRUAEXMQBWOWPWQ $.

    $d B k y $.  $d E k $.  $d O k x y $.  $d R k $.  $d V k $.  $d X k y $.
    $d Y k y $.
    $( The ring multiplication in the algebra of matrices with dimension 1.
       (Contributed by AV, 16-Aug-2019.)  (Proof shortened by AV,
       18-Apr-2021.) $)
    mat1dimmul $p |- ( ( ( R e. Ring /\ E e. V ) /\ ( X e. B /\ Y e. B ) )
                       -> ( { <. O , X >. } ( .r ` A ) { <. O , Y >. } )
                          = { <. O , ( X ( .r ` R ) Y ) >. } ) $=
      ( vk wcel cop csn cfv co wceq a1i cvv vx vy wa cmulr cotp cmmul cmpt cgsu
      crg cv cmpt2 cfn snfi simpl eqid matmulr eqcomd sylancr adantr oveqd cmap
      cxp wf opex adantl fsnd wb opeq1i sneqi anidms feq12d ad2antlr mpbird cbs
      xpsng fvex eqeltri snex xpex elmapd simpr mamuval ccmn ringcmn wral df-ov
      ad2antrr fveq1i eqtri anim2i ancomd fvsng syl syl5eq eqeltrd sylan ringcl
      syl3anc oveq2 oveq1 oveq12d eqcomi eleq12d ralsng gsummptcl oveq1d oveq2d
      mpteq2dv mpt2sn cmnd ringmnd gsumsn opeq12d sneqd opeq2d 3eqtrd ) CUIMZDF
      MZUCZGBMZHBMZUCZUCZEGNZOZEHNZOZAUDPZQYEYGCDOZYIYIUEUFQZQUAUBYIYICLYIUAUJZ
      LUJZYEQZYLUBUJZYGQZCUDPZQZUGZUHQZUKZEGHYPQZNZOZYCYHYJYEYGXSYHYJRZYBXSYIUL
      MZXQUUDDUMZXQXRUNZUUEXQUCYJYHACYJYIUIIYJUOZUPUQURUSUTYCBYICYPUALUBYJYIYIU
      IYEYGUUHJYPUOZXSXQYBUUGUSZUUEYCUUFSZUUKUUKYCYEBYIYIVBZVAQZMUULBYEVCZYCUUN
      DDNZOZBUUOGNZOZVCZYCUUOGTBUUOTMZYCDDVDZSZYBXTXSXTYAUNVEZVFXRUUNUUSVGXQYBX
      RUULUUPBYEUURYEUURRXRYDUUQEUUOGKVHVIZSXRUULUUPRDDFFVOVJZVKVLVMYCBUULYETTB
      TMYCBCVNPZTJCVNVPVQSZUULTMYCYIYIDVRZUVHVSSZVTVMYCYGUUMMUULBYGVCZYCUVJUUPB
      UUOHNZOZVCZYCUUOHTBUVBYBYAXSXTYAWAVEZVFXRUVJUVMVGXQYBXRUULUUPBYGUVLYGUVLR
      XRYFUVKEUUOHKVHVIZSUVEVKVLVMYCBUULYGTTUVGUVIVTVMWBYCYTUUOCLYIDYLYEQZYLDYG
      QZYPQZUGZUHQZNZOZEDDYEQZDDYGQZYPQZNZOUUCYCXRXRUVTUVFMYTUWBRXSXRYBXQXRWAUS
      ZUWGYCUVFLCYIUVRUVFUOXQCWCMXRYBCWDWGUUKYCUVRUVFMZLYIWEZUWEBMZYCXQUWCBMUWD
      BMUWJUUJYCUWCGBYCUWCUUOUURPZGUWCUUOYEPUWKDDYEWFUUOYEUURUVDWHWIYBUWKGRZXSY
      BUUTXTUCUWLYBXTUUTYAUUTXTUUTYAUVASWJWKUUOGTBWLWMVEWNZUVCWOYCUWDHBYCUWDUUO
      UVLPZHUWDUUOYGPUWNDDYGWFUUOYGUVLUVOWHWIYBUWNHRZXSXTUUTYAUWOUUTXTUVASUUOHT
      BWLWPVEWNZUVNWOBCYPUWCUWDJUUIWQWRZXRUWIUWJVGXQYBUWHUWJLDFYLDRZUVRUWEUVFBU
      WRUVPUWCUVQUWDYPYLDDYEWSYLDDYGWTXAZUVFBRUWRBUVFJXBSXCXDVLVMXEUAUBDDYSCLYI
      UVPYOYPQZUGZUHQUVFUVTYTFFYTUOYKDRZYRUXACUHUXBLYIYQUWTUXBYMUVPYOYPYKDYLYEW
      TXFXHXGYNDRZUXAUVSCUHUXCLYIUWTUVRUXCYOUVQUVPYPYNDYLYGWSXGXHXGXIWRYCUWAUWF
      YCUUOEUVTUWEUUOERYCEUUOKXBSYCCXJMZXRUWJUVTUWERXQUXDXRYBCXKWGUWGUWQUVRBUWE
      LCDFJUWSXLWRXMXNYCUWFUUBYCUWEUUAEYCUWCGUWDHYPUWMUWPXAXOXNXPXP $.

    $d A a b x y $.  $d B a b $.  $d E a b $.  $d O a b $.  $d R a b $.
    $d V a b $.
    $( The algebra of matrices with dimension 1 over a commutative ring is a
       commutative ring.  (Contributed by AV, 16-Aug-2019.) $)
    mat1dimcrng $p |- ( ( R e. CRing /\ E e. V ) -> A e. CRing ) $=
      ( vx vy va vb wcel wa cv co wceq csn cop ccrg crg cmulr cfv cbs wral snfi
      cfn crngring adantr matring sylancr wrex wb mat1dimelbas anbi12d sylan wi
      simpll simprl simprr eqid crngcom syl3anc opeq2d anim1i mat1dimmul pm3.22
      sneqd syl2an 3eqtr4d expr oveq12 ex ad2antlr expcom rexlimdva impd sylbid
      imp ralrimivv iscrng2 sylanbrc ) CUANZDFNZOZAUBNZJPZKPZAUCUDZQZWIWHWJQZRZ
      KAUEUDZUFJWNUFAUANWFDSZUHNCUBNZWGDUGWDWPWECUIZUJACWOGUKULWFWMJKWNWNWFWHWN
      NZWIWNNZOZWHELPZTSZRZLBUMZWIEMPZTSZRZMBUMZOZWMWDWPWEWTXIUNWQWPWEOZWRXDWSX
      HABCDWHEFLGHIUOABCDWIEFMGHIUOUPUQWFXDXHWMWFXCXHWMURZLBWFXABNZOZXCXKXMXCOZ
      XGWMMBXNXEBNZOZXGWMXPXGOXBXFWJQZXFXBWJQZWKWLXPXQXRRZXGXNXOXSXMXOXSURXCWFX
      LXOXSWFXLXOOZOZEXAXECUCUDZQZTZSZEXEXAYBQZTZSZXQXRYAYDYGYAYCYFEYAWDXLXOYCY
      FRWDWEXTUSWFXLXOUTWFXLXOVABCYBXAXEHYBVBVCVDVEVIWFXJXTXQYERWDWPWEWQVFZABCD
      EFXAXEGHIVGUQWFXJXOXLOXRYHRXTYIXLXOVHABCDEFXEXAGHIVGVJVKVLUJVTUJXPXGWKXQR
      ZXCXGYJURXMXOXCXGYJWHXBWIXFWJVMVNVOVTXPXGWLXRRZXCXGYKURXMXOXGXCYKWIXFWHXB
      WJVMVPVOVTVKVNVQVNVQVRVSWAJKWNAWJWNVBWJVBWBWC $.
  $}

  ${
    mat1rhmval.k $e |- K = ( Base ` R ) $.
    mat1rhmval.a $e |- A = ( { E } Mat R ) $.
    mat1rhmval.b $e |- B = ( Base ` A ) $.
    mat1rhmval.o $e |- O = <. E , E >. $.
    mat1rhmval.f $e |- F = ( x e. K |-> { <. O , x >. } ) $.

    $d K x $.  $d O x $.
    $( There is a 1-1 function from a ring onto the ring of matrices with
       dimension 1 over this ring.  (Contributed by AV, 22-Dec-2019.) $)
    mat1f1o $p |- ( ( R e. Ring /\ E e. V ) -> F : K -1-1-onto-> B ) $=
      ( wcel csn cmap cvv cbs wceq crg wa wf1o co cv cop cmpt fvex eqeltri opex
      cfv pm3.2i cxp vex xpsn eqcomi mpteq2i mapsnf1o mp1i eqidd simpr sylancom
      a1i xpsng sneqi syl6reqr oveq2d cfn simpl matbas2 sylancr eqtrd f1oeq123d
      snfi mpbird ) DUAOZEIOZUBZGCFUCGGHPZQUDZAGHAUEZUFPZUGZUCZGROZHROZUBWDVRWE
      WFGDSUKRJDSUHUIHEEUFZRMEEUJUIZULAGWCHRRAGWBVSWAPUMZWIWBHWAWHAUNUOUPUQURUS
      VRGGCVTFWCFWCTVRNVCVRGUTVRVTBSUKZCVRVTGEPZWKUMZQUDZWJVRVSWLGQVRWLWGPZVSVP
      VQVQWLWNTVPVQVAEEIIVDVBHWGMVEVFVGVRWKVHOVPWMWJTEVNVPVQVIBDGWKUAKJVJVKVLLV
      FVMVO $.

    $d E x $.  $d R x $.  $d V x $.  $d X x $.
    $( The value of the ring homomorphism ` F ` .  (Contributed by AV,
       22-Dec-2019.) $)
    mat1rhmval $p |- ( ( R e. Ring /\ E e. V /\ X e. K )
                       -> ( F ` X ) = { <. O , X >. } ) $=
      ( wcel cop csn cvv wceq crg w3a cv cmpt a1i opeq2 sneqd adantl simp3 snex
      fvmptd ) DUAPZEIPZJGPZUBZAJHAUCZQZRZHJQZRZGFSFAGURUDTUOOUEUPJTZURUTTUOVAU
      QUSUPJHUFUGUHULUMUNUIUTSPUOUSUJUEUK $.

    $( The value of the ring homomorphism ` F ` .  (Contributed by AV,
       22-Dec-2019.) $)
    mat1rhmelval $p |- ( ( R e. Ring /\ E e. V /\ X e. K )
                         -> ( E ( F ` X ) E ) = X ) $=
      ( wcel cfv cop cvv syl5eq crg w3a df-ov csn mat1rhmval fveq1d eqcomi wceq
      co fveq2i opex eqeltri simp3 fvsng sylancr eqtrd ) DUAPZEIPZJGPZUBZEEJFQZ
      UIEERZVAQZJEEVAUCUTVCVBHJRUDZQZJUTVBVAVDABCDEFGHIJKLMNOUEUFUTVEHVDQZJVBHV
      DHVBNUGUJUTHSPUSVFJUHHVBSNEEUKULUQURUSUMHJSGUNUOTUPT $.

    $( The value of the ring homomorphism ` F ` is a matrix with dimension 1.
       (Contributed by AV, 22-Dec-2019.) $)
    mat1rhmcl $p |- ( ( R e. Ring /\ E e. V /\ X e. K ) -> ( F ` X ) e. B ) $=
      ( crg wcel w3a cop cfv csn cbs mat1dimbas mat1rhmval wceq a1i 3eltr4d ) D
      PQEIQJGQRZHJSUABUBTZJFTCBGDEHIJLKNUCABCDEFGHIJKLMNOUDCUIUEUHMUFUG $.

    $d B x $.
    $( There is a function from a ring to the ring of matrices with dimension 1
       over this ring.  (Contributed by AV, 22-Dec-2019.) $)
    mat1f $p |- ( ( R e. Ring /\ E e. V ) -> F : K --> B ) $=
      ( crg wcel wa wf1o wf mat1f1o f1of syl ) DOPEIPQGCFRGCFSABCDEFGHIJKLMNTGC
      FUAUB $.

    $d A i j w x y $.  $d B w y $.  $d E i j w x y $.  $d F i j w x y $.
    $d K w y $.  $d R i j w y $.  $d V w y $.
    $( There is a group homomorphism from the additive group of a ring to the
       additive group of the ring of matrices with dimension 1 over this ring.
       (Contributed by AV, 22-Dec-2019.) $)
    mat1ghm $p |- ( ( R e. Ring /\ E e. V ) -> F e. ( R GrpHom A ) ) $=
      ( wcel cfv adantr co wceq syl3anc vw vy vi vj wa cplusg eqid cgrp ringgrp
      crg csn snfi simpl matgrp sylancr mat1f cv wral simpr adantl mat1rhmelval
      cfn oveq12d mat1rhmcl snidg jca matplusgcell syl21anc ringacl 3eqtr4rd wb
      oveq1 eqeq12d oveq2 2ralsng syl2anc mpbird matring eqmat isghmd ) DUJOZEI
      OZUEZUAUBDUFPZBUFPZDBFGCJLWDUGZWEUGZWADUHOWBDUIQWCEUKZVBOZWABUHOEULZWAWBU
      MZBDWHKUNUOABCDEFGHIJKLMNUPWCUAUQZGOZUBUQZGOZUEZUEZWLWNWDRZFPZWLFPZWNFPZW
      ERZSZUCUQZUDUQZWSRZXDXEXBRZSZUDWHURUCWHURZWQXIEEWSRZEEXBRZSZWQEEWTRZEEXAR
      ZWDRZWRXKXJWQXMWLXNWNWDWQWAWBWMXMWLSWCWAWPWKQZWCWBWPWAWBUSZQZWPWMWCWMWOUM
      UTZABCDEFGHIWLJKLMNVATWQWAWBWOXNWNSXPXRWPWOWCWMWOUSUTZABCDEFGHIWNJKLMNVAT
      VCWQWTCOZXACOZEWHOZYCUEZXKXOSWQWAWBWMYAXPXRXSABCDEFGHIWLJKLMNVDTZWQWAWBWO
      YBXPXRXTABCDEFGHIWNJKLMNVDTZWCYDWPWBYDWAWBYCYCEIVEZYGVFUTQBCWDWEDEEWHWTXA
      KLWGWFVGVHWQWAWBWRGOZXJWRSXPXRWQWAWMWOYHXPXSXTGWDDWLWNJWFVITZABCDEFGHIWRJ
      KLMNVATVJWCXIXLVKZWPWCWBWBYJXQXQXHEXEWSRZEXEXBRZSXLUCUDEEIIXDESXFYKXGYLXD
      EXEWSVLXDEXEXBVLVMXEESYKXJYLXKXEEEWSVNXEEEXBVNVMVOVPQVQWQWSCOZXBCOZXCXIVK
      WQWAWBYHYMXPXRYIABCDEFGHIWRJKLMNVDTWQBUJOZYAYBYNWCYOWPWCWIWAYOWJWKBDWHKVR
      UOQYEYFCWEBWTXALWGVITBCDUCUDWHWSXBKLVSVPVQVT $.

    ${
      $d B e w $.  $d E e $.  $d F e x y $.  $d K e $.  $d M w x y $.
      $d N w x y $.  $d R e $.  $d V e $.
      mat1mhm.m $e |- M = ( mulGrp ` R ) $.
      mat1mhm.n $e |- N = ( mulGrp ` A ) $.
      $( There is a monoid homomorphism from the multiplicative group of a ring
         to the multiplicative group of the ring of matrices with dimension 1
         over this ring.  (Contributed by AV, 22-Dec-2019.) $)
      mat1mhm $p |- ( ( R e. Ring /\ E e. V ) -> F e. ( M MndHom N ) ) $=
        ( wcel co vw vy vi vj ve crg wa cmnd wf cv cmulr cfv wceq wral cur cmhm
        w3a ringmgp adantr csn cfn snfi simpl matring sylancr syl jca cmpt cgsu
        mat1f ringmnd simpr simpll eqid snidg ad2antlr simprl mat1rhmcl syl3anc
        cbs matecld simprr ringcl oveq2 oveq1 oveq12d adantl mat1rhmelval eqtrd
        gsumsnd matmulcell 3eqtr4rd wb eqeq12d sylancom mpbird eqmat ralrimivva
        2ralsng syl2anc cop ringidcl mat1rhmval mpd3an3 mat1dimid eqtr4d mgpbas
        3jca mgpplusg ringidval ismhm sylanbrc ) DUFSZEKSZUGZHUHSZIUHSZUGGCFUIZ
        UAUJZUBUJZDUKULZTZFULZXSFULZXTFULZBUKULZTZUMZUBGUNUAGUNZDUOULZFULZBUOUL
        ZUMZUQFHIUPTSXOXPXQXMXPXNDHQURUSXOBUFSZXQXOEUTZVASXMYNEVBXMXNVCBDYOMVDV
        EZBIRURVFVGXOXRYIYMABCDEFGJKLMNOPVJXOYHUAUBGGXOXSGSZXTGSZUGZUGZYHUCUJZU
        DUJZYCTZUUAUUBYGTZUMZUDYOUNUCYOUNZYTUUFEEYCTZEEYGTZUMZYTDUEYOEUEUJZYDTZ
        UUJEYETZYATZVHVITZYBUUHUUGYTUUNEEYDTZEEYETZYATZYBYTUUMGUUQUEDEKLXODUHSZ
        YSXMUURXNDVKUSUSXOXNYSXMXNVLZUSZYTXMUUOGSUUPGSUUQGSXMXNYSVMZYTBBVTULZDE
        EGYDYOMLUVBVNZXNEYOSZXMYSEKVOZVPZUVFYTXMXNYQYDUVBSUVAUUTXOYQYRVQZABUVBD
        EFGJKXSLMUVCOPVRVSWAYTBUVBDEEGYEYOMLUVCUVFUVFYTXMXNYRYEUVBSUVAUUTXOYQYR
        WBZABUVBDEFGJKXTLMUVCOPVRVSWAGDYAUUOUUPLYAVNZWCVSUUJEUMZUUMUUQUMYTUVJUU
        KUUOUULUUPYAUUJEEYDWDUUJEEYEWEWFWGWJYTUUOXSUUPXTYAYTXMXNYQUUOXSUMUVAUUT
        UVGABCDEFGJKXSLMNOPWHVSYTXMXNYRUUPXTUMUVAUUTUVHABCDEFGJKXTLMNOPWHVSWFWI
        YTXMYDCSZYECSZUGUVDUVDUGZUUHUUNUMUVAYTUVKUVLYTXMXNYQUVKUVAUUTUVGABCDEFG
        JKXSLMNOPVRVSZYTXMXNYRUVLUVAUUTUVHABCDEFGJKXTLMNOPVRVSZVGXNUVMXMYSXNUVD
        UVDUVEUVEVGVPBCDYAYFUEEEYOYDYEMNUVIYFVNZWKVSYTXMXNYBGSZUUGYBUMUVAUUTYTX
        MYQYRUVQUVAUVGUVHGDYAXSXTLUVIWCVSZABCDEFGJKYBLMNOPWHVSWLXOUUFUUIWMZYSXM
        XNXNUVSUUSUUEEUUBYCTZEUUBYGTZUMUUIUCUDEEKKUUAEUMUUCUVTUUDUWAUUAEUUBYCWE
        UUAEUUBYGWEWNUUBEUMUVTUUGUWAUUHUUBEEYCWDUUBEEYGWDWNWSWOUSWPYTYCCSZYGCSZ
        YHUUFWMYTXMXNUVQUWBUVAUUTUVRABCDEFGJKYBLMNOPVRVSYTYNUVKUVLUWCXOYNYSYPUS
        UVNUVOCBYFYDYENUVPWCVSBCDUCUDYOYCYGMNWQWTWPWRXOYKJYJXAUTZYLXMXNYJGSZYKU
        WDUMXMUWEXNGDYJLYJVNZXBUSABCDEFGJKYJLMNOPXCXDBGDEJKMLOXEXFXHUAUBGCYAYFH
        IFYLYJGDHQLXGCBIRNXGDYAHQUVIXIBYFIRUVPXIDYJHQUWFXJBYLIRYLVNXJXKXL $.
    $}

    $( There is a ring homomorphism from a ring to the ring of matrices with
       dimension 1 over this ring.  (Contributed by AV, 22-Dec-2019.) $)
    mat1rhm $p |- ( ( R e. Ring /\ E e. V ) -> F e. ( R RingHom A ) ) $=
      ( crg wcel wa co cmgp cfv cghm cmhm crh simpl csn cfn matring sylancr jca
      snfi mat1ghm eqid mat1mhm isrhm sylanbrc ) DOPZEIPZQZUPBOPZQFDBUARPZFDSTZ
      BSTZUBRPZQFDBUCRPURUPUSUPUQUDZUREUEZUFPUPUSEUJVDBDVEKUGUHUIURUTVCABCDEFGH
      IJKLMNUKABCDEFGVAVBHIJKLMNVAULZVBULZUMUIDBFVAVBVFVGUNUO $.

    $( There is a ring isomorphism from a ring to the ring of matrices with
       dimension 1 over this ring.  (Contributed by AV, 22-Dec-2019.) $)
    mat1rngiso $p |- ( ( R e. Ring /\ E e. V ) -> F e. ( R RingIso A ) ) $=
      ( crg wcel wa crs co crh wf1o mat1rhm mat1f1o wb csn snfi matring sylancr
      cfn simpl isrim syldan mpbir2and ) DOPZEIPZQZFDBRSPZFDBTSPZGCFUAZABCDEFGH
      IJKLMNUBABCDEFGHIJKLMNUCUNUOBOPZUQURUSQUDUPEUEZUIPUNUTEUFUNUOUJBDVAKUGUHG
      CDBFOOJLUKULUM $.
  $}

  ${
    $d A y $.  $d E x y $.  $d R x y $.  $d V y $.
    mat1ric.a $e |- A = ( { E } Mat R ) $.
    $( A ring is isomorphic to the ring of matrices with dimension 1 over this
       ring.  (Contributed by AV, 30-Dec-2019.) $)
    mat1ric $p |- ( ( R e. Ring /\ E e. V ) -> R ~=r A ) $=
      ( vx vy crg wcel wa crs co c0 wne cbs cfv cop cv csn eqid cric cmpt opeq2
      wbr weq sneqd cbvmptv mat1rngiso ne0i syl brric sylibr ) BHICDIJZBAKLZMNZ
      BAUAUDUMFBOPZCCQZFRZQZSZUBZUNIUOGAAOPZBCVAUPUQDUPTEVBTUQTFGUPUTUQGRZQZSFG
      UEUSVDURVCUQUCUFUGUHUNVAUIUJBAUKUL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The subalgebras of diagonal and scalar matrices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
According to Wikipedia ("Diagonal Matrix", 8-Dec-2019,
~ https://en.wikipedia.org/wiki/Diagonal_matrix ): "In linear algebra,
a _diagonal matrix_ is a matrix in which the entries outside the main diagonal
are all zero; the term usually refers to square matrices."  The diagonal
matrices are mentioned in [Lang] p. 576, but without giving them a dedicated
definition.  Furthermore, "A diagonal matrix with all its main diagonal entries
equal is a _scalar matrix_, that is, a scalar multiple ` la .* I ` of the
identity matrix ` I `.  Its effect on a vector is scalar multiplication by
` la ` [see ~ scmatscm !]".  The scalar multiples of the identity matrix are
mentioned in [Lang] p. 504, but without giving them a special name.

The main results of this subsection are the definitions of the sets of diagonal
and scalar matrices ( ~ df-dmat and ~ df-scmat ), basic properties of (elements
of) these sets, and theorems showing that the diagonal matrices are a subring
of the ring of square matrices ( ~ dmatsrng ), that the scalar matrices are a
subring of the ring of square matrices ( ~ scmatsrng ), that the scalar
matrices are a subring of the ring of diagonal matrices ( ~ scmatsrng1 ) and
that the ring of scalar matrices (over a commutative ring) is a commutative
ring ( ~ scmatcrng ).
$)

  $c DMat ScMat $.

  $( Extend class notation for the algebra of diagonal matrices. $)
  cdmat $a class DMat $.

  $( Extend class notation for the algebra of scalar matrices. $)
  cscmat $a class ScMat $.

  ${
    $d i j m n r $.
    $( Define the set of n x n diagonal (square) matrices over a set (usually a
       ring) r, see definition in [Roman] p. 4 or Definition 3.12 in [Hefferon]
       p. 240.  (Contributed by AV, 8-Dec-2019.) $)
    df-dmat $a |- DMat = ( n e. Fin , r e. _V |->
                        { m e. ( Base ` ( n Mat r ) ) | A. i e. n A. j e. n
                                   ( i =/= j -> ( i m j ) = ( 0g ` r ) ) } ) $.
  $}

  ${
    $d a c m n r $.
    $( Define the algebra of n x n scalar matrices over a set (usually a ring)
       r, see definition in [Connell] p. 57:  "A _scalar matrix_ is a diagonal
       matrix for which all the diagonal terms are equal, i.e., a matrix of the
       form cI_n".  (Contributed by AV, 8-Dec-2019.) $)
    df-scmat $a |- ScMat = ( n e. Fin , r e. _V |-> [_ ( n Mat r ) / a ]_
                             { m e. ( Base ` a ) | E. c e. ( Base ` r )
                                         m = ( c ( .s ` a ) ( 1r ` a ) ) } ) $.
  $}

  ${
    $d B m n r $.  $d N i j m n r $.  $d R i j m n r $.  $d V n r $.
    $d .0. n r $.
    dmatval.a $e |- A = ( N Mat R ) $.
    dmatval.b $e |- B = ( Base ` A ) $.
    dmatval.0 $e |- .0. = ( 0g ` R ) $.
    dmatval.d $e |- D = ( N DMat R ) $.
    $( The set of ` N ` x ` N ` diagonal matrices over (a ring) ` R ` .
       (Contributed by AV, 8-Dec-2019.) $)
    dmatval $p |- ( ( N e. Fin /\ R e. V )
                    -> D = { m e. B | A. i e. N A. j e. N
                                     ( i =/= j -> ( i m j ) = .0. ) } ) $=
      ( wcel cv wceq cvv cfv cbs vn vr cfn wa cdmat co wne wral crab cmat cmpt2
      wi c0g df-dmat a1i oveq12 fveq2d fveq2i eqtri syl6eqr simpl adantl eqeq2d
      fveq2 imbi2d raleqbidv rabeqbidv elex fvex eqeltri rabexg ovmpt2d syl5eq
      mp1i ) HUCOZDIOZUDZCHDUEUFEPZFPZUGZVRVSGPUFZJQZULZFHUHZEHUHZGBUIZNVQUAUBH
      DUCRVTWAUBPZUMSZQZULZFUAPZUHZEWKUHZGWKWGUJUFZTSZUIZWFUERUEUAUBUCRWPUKQVQE
      FGUAUBUNUOWKHQZWGDQZUDZWPWFQVQWSWMWEGWOBWSWOHDUJUFZTSZBWSWNWTTWKHWGDUJUPU
      QBATSZXALAWTTKURUSUTWSWLWDEWKHWQWRVAZWSWJWCFWKHXCWSWIWBVTWSWHJWAWRWHJQWQW
      RWHDUMSJWGDUMVDMUTVBVCVEVFVFVGVBVOVPVAVPDROVODIVHVBBROWFROVQBXBRLATVIVJWE
      GBRVKVNVLVM $.

    $d M i j m $.  $d .0. m $.
    $( A ` N ` x ` N ` diagonal matrix over (a ring) ` R ` .  (Contributed by
       AV, 18-Dec-2019.) $)
    dmatel $p |- ( ( N e. Fin /\ R e. V )
                   -> ( M e. D <-> ( M e. B /\ A. i e. N A. j e. N
                                        ( i =/= j -> ( i M j ) = .0. ) ) ) ) $=
      ( vm wcel wa cv wceq wral cfn wne co wi crab dmatval eleq2d eqeq1d imbi2d
      oveq 2ralbidv elrab syl6bb ) HUAPDIPQZGCPGERZFRZUBZUOUPORZUCZJSZUDZFHTEHT
      ZOBUEZPGBPUQUOUPGUCZJSZUDZFHTEHTZQUNCVCGABCDEFOHIJKLMNUFUGVBVGOGBURGSZVAV
      FEFHHVHUTVEUQVHUSVDJUOUPURGUJUHUIUKULUM $.

    $( An ` N ` x ` N ` diagonal matrix over (the ring) ` R ` is an ` N ` x
       ` N ` matrix over (the ring) ` R ` .  (Contributed by AV,
       18-Dec-2019.) $)
    dmatmat $p |- ( ( N e. Fin /\ R e. V ) -> ( M e. D -> M e. B ) ) $=
      ( vi vj cfn wcel wa cv wne wral co wceq wi dmatel simpl syl6bi ) FOPDGPQE
      CPEBPZMRZNRZSUHUIEUAHUBUCNFTMFTZQUGABCDMNEFGHIJKLUDUGUJUEUF $.
  $}

  ${
    $d A i j $.  $d N i j $.  $d R i j $.
    dmatid.a $e |- A = ( N Mat R ) $.
    dmatid.b $e |- B = ( Base ` A ) $.
    dmatid.0 $e |- .0. = ( 0g ` R ) $.
    dmatid.d $e |- D = ( N DMat R ) $.
    $( The identity matrix is a diagonal matrix.  (Contributed by AV,
       19-Aug-2019.)  (Revised by AV, 18-Dec-2019.) $)
    dmatid $p |- ( ( N e. Fin /\ R e. Ring ) -> ( 1r ` A ) e. D ) $=
      ( vi vj wcel crg wa cur cfv cv wceq wral cfn wne co matring eqid ringidcl
      wi syl cif simpl adantr simpr adantl mat1ov ifnefalse sylan9eq ralrimivva
      ex dmatel mpbir2and ) EUAMZDNMZOZAPQZCMVDBMZKRZLRZUBZVFVGVDUCZFSZUGZLETKE
      TVCANMVEADEGUDBAVDHVDUEZUFUHVCVKKLEEVCVFEMZVGEMZOZOZVHVJVPVHVIVFVGSDPQZFU
      IFVPADVDVQVFVGEFGVQUEIVCVAVOVAVBUJUKVCVBVOVAVBULUKVOVMVCVMVNUJUMVOVNVCVMV
      NULUMVLUNVFVGVQFUOUPURUQABCDKLVDENFGHIJUSUT $.

    $d I i j $.  $d J j $.  $d X i j $.  $d .0. i j $.
    $( An extradiagonal entry of a diagonal matrix is equal to zero.
       (Contributed by AV, 19-Aug-2019.)  (Revised by AV, 18-Dec-2019.) $)
    dmatelnd $p |- ( ( ( N e. Fin /\ R e. Ring /\ X e. D )
                   /\ ( I e. N /\ J e. N /\ I =/= J ) ) -> ( I X J ) = .0. ) $=
      ( vi vj wcel wne co wceq wi cfn crg w3a wa wral dmatel neeq1 oveq1 eqeq1d
      cv imbi12d neeq2 oveq2 rspc2v com23 3impia com12 2a1i impd sylbid imp ) G
      UAPZDUBPZHCPZUCEGPZFGPZEFQZUCZEFHRZISZVBVCVDVHVJTZVBVCUDZVDHBPZNUJZOUJZQZ
      VNVOHRZISZTZOGUENGUEZUDVKABCDNOHGUBIJKLMUFVLVMVTVKVTVKTVLVMVHVTVJVEVFVGVT
      VJTVEVFUDVTVGVJVSVGVJTEVOQZEVOHRZISZTNOEFGGVNESZVPWAVRWCVNEVOUGWDVQWBIVNE
      VOHUHUIUKVOFSZWAVGWCVJVOFEULWEWBVIIVOFEHUMUIUKUNUOUPUQURUSUTUPVA $.

    $d D k x y $.  $d N k x y $.  $d R k x y $.  $d X k x y $.  $d Y k x y $.
    $( The product of two diagonal matrices.  (Contributed by AV, 19-Aug-2019.)
       (Revised by AV, 18-Dec-2019.) $)
    dmatmul $p |- ( ( ( N e. Fin /\ R e. Ring ) /\ ( X e. D /\ Y e. D ) )
                    -> ( X ( .r ` A ) Y ) = ( x e. N , y e. N
             |-> if ( x = y , ( ( x X y ) ( .r ` R ) ( x Y y ) ) , .0. ) ) ) $=
      ( wcel wa co wceq ad2antlr adantl vk cfn crg cmulr cfv cotp cmmul cv cmpt
      cgsu cmpt2 cif eqid matmulr adantr eqcomd oveqd cbs simplr simpll dmatmat
      cxp cmap imp matbas2i syl adantrr adantrl mamuval w3a cdif cplusg ringcmn
      csn ccmn 3ad2ant1 cvv ovexd fvexd fsuppmptdm simp2 matecl syl3anc simplr3
      c0g simpr ringcl simp3 syl6eleq wi imp32 eqtr ancoms oveq2d adantlr oveq1
      a1d oveq12d gsumdifsnd simprl 3jca eldifi eldifsni necomd dmatelnd oveq1d
      syl13anc ringlz syl2anc eqtrd mpteq2dva cmnd diffi ringmnd anim12ci gsumz
      wne jca mndlid 3eqtrd iftrue eqtr4d wn simprr df-ne biimpcd sylbir impcom
      neeq1 ringrz biimpri pm2.61ian anim2i ancomd iffalse mpt2eq3dva ) GUBOZFU
      COZPZHEOZIEOZPZPZHICUDUEZQHIFGGGUFUGQZQABGGFUAGAUHZUAUHZHQZUUGBUHZIQZFUDU
      EZQZUIZUJQZUKABGGUUFUUIRZUUFUUIHQZUUFUUIIQZUUKQZJULZUKUUCUUDUUEHIUUCUUEUU
      DYSUUEUUDRUUBCFUUEGUCKUUEUMZUNUOUPUQUUCFURUEZGFUUKAUABUUEGGUCHIUUTUVAUMZU
      UKUMZYQYRUUBUSZYQYRUUBUTZUVEUVEYSYTHUVAGGVBVCQZOZUUAYSYTPHDOZUVGYSYTUVHCD
      EFHGUCJKLMNVAVDZCDFUVAHGKUVBLVEVFVGYSUUAIUVFOZYTYSUUAPIDOZUVJYSUUAUVKCDEF
      IGUCJKLMNVAVDCDFUVAIGKUVBLVEVFVHVIUUCABGGUUNUUSUUOUUCUUFGOZUUIGOZVJZUUNUU
      SRUUOUVNPZUUNUURUUSUVOUUNFUAGUUFVNZVKZUULUIZUJQZUURFVLUEZQJUURUVTQZUURUVO
      GUVAUVTUAFUUFUBUULUURUVBUVTUMZUVNFVOOZUUOUUCUVLUWCUVMYRUWCYQUUBFVMSVPTUVN
      YQUUOUUCUVLYQUVMUVEVPTZUVOUAGUUMVQVQUULFWEUEUUMUMUWDUVOUUGGOZPZUUHUUJUUKV
      RUVOFWEVSVTUWFYRUUHUVAOZUUJUVAOZUULUVAOUVNYRUUOUWEUUCUVLYRUVMUVDVPZSUWFUV
      LUWEHCURUEZOZUWGUVNUVLUUOUWEUUCUVLUVMWAZSUVOUWEWFZUVNUWKUUOUWEUUCUVLUWKUV
      MYSYTUWKUUAYSYTUWKCUWJEFHGUCJKUWJUMZMNVAVDVGVPSCFUUFUUGUVAHGKUVBWBZWCUWFU
      WEUVMIUWJOZUWHUWMUUCUVLUVMUUOUWEWDUVNUWPUUOUWEUUCUVLUWPUVMYSUUAUWPYTYSUUA
      UWPCUWJEFIGUCJKUWNMNVAZVDVHVPZSCFUUGUUIUVAIGKUVBWBZWCUVAFUUKUUHUUJUVBUVCW
      GWCUVNUVLUUOUWLTUVNUURUVAOZUUOUVNYRUUPUVAOZUUQUVAOZUWTUWIUVNUVLUVMUWKUXAU
      WLUUCUVLUVMWHZUUCUVLUWKUVMUUCHDUWJYSYTUVHUUAUVIVGLWIVPZCFUUFUUIUVAHGKUVBW
      BWCZUVNUVLUVMUWPUXBUWLUXCUUCUVLUWPUVMYSYTUUAUWPYSUUAUWPWJYTUWQWQWKVPZCFUU
      FUUIUVAIGKUVBWBZWCUVAFUUKUUPUUQUVBUVCWGZWCTUVOUUGUUFRZPUUHUUPUUJUUQUUKUUO
      UXIUUHUUPRUVNUUOUXIPUUGUUIUUFHUXIUUOUUGUUIRUUGUUFUUIWLWMWNWOUXIUUJUUQRUVO
      UUGUUFUUIIWPTWRWSUVOUVSJUURUVTUVOUVSFUAUVQJUIZUJQZJUVOUVRUXJFUJUVOUAUVQUU
      LJUVOUUGUVQOZPZUULJUUJUUKQZJUXMUUHJUUJUUKUXMYQYRYTVJZUVLUWEUUFUUGXQZUUHJR
      ZUVNUXOUUOUXLUUCUVLUXOUVMUUCYQYRYTUVEUVDYSYTUUAWTXAVPZSUVNUVLUUOUXLUWLSUX
      LUWEUVOUUGGUVPXBTZUXLUXPUVOUXLUUGUUFUUGGUUFXCXDTCDEFUUFUUGGHJKLMNXEZXGXFU
      XMYRUWHUXNJRZUVNYRUUOUXLUWISUXMUWEUVMUWPUWHUXSUUCUVLUVMUUOUXLWDUVNUWPUUOU
      XLUWRSUWSWCUVAFUUKUUJJUVBUVCMXHZXIXJXKWNUVOFXLOZUVQUBOZPZUXKJRUVNUYEUUOUU
      CUVLUYEUVMYSUYEUUBYQUYDYRUYCGUVPXMFXNZXOUOVPTUVQUAFUBJMXPVFXJXFUVOUYCUWTP
      ZUWAUURRUVNUYGUUOUVNUYCUWTUUCUVLUYCUVMYRUYCYQUUBUYFSVPUVNYRUXAUXBUWTUWIUX
      EUVNUVLUVMUWPUXBUWLUXCUWRUXGWCUXHWCXRTUVAUVTFUURJUVBUWBMXSVFXTUUOUUSUURRU
      VNUUOUURJYAUOYBUUOYCZUVNPZUUNFUAGJUIZUJQZJUUSUYIUUMUYJFUJUYIUAGUULJUUFUUG
      RZUYIUWEPZUULJRUYLUYMPZUULUUHJUUKQZJUYNUUJJUUHUUKUYNYQYRUUAVJZUWEUVMUUGUU
      IXQZUUJJRUYMUYPUYLUVNUYPUYHUWEUUCUVLUYPUVMUUCYQYRUUAUVEUVDYSYTUUAYDXAVPST
      UYLUYIUWEYDUYMUVMUYLUUCUVLUVMUYHUWEWDZTUYMUYLUYQUYIUYLUYQWJZUWEUYHUYSUVNU
      YHUUFUUIXQZUYSUUFUUIYEUYLUYTUYQUUFUUGUUIYIYFYGUOUOYHCDEFUUGUUIGIJKLMNXEXG
      WNUYMUYOJRZUYLUYMYRUWGVUAUVNYRUYHUWEUWISZUYMUVLUWEUWKUWGUVNUVLUYHUWEUWLSZ
      UYIUWEWFZUVNUWKUYHUWEUXDSUWOWCUVAFUUKUUHJUVBUVCMYJXITXJUYLYCZUYMPZUULUXNJ
      VUFUUHJUUJUUKVUFUXOUVLUWEUXPUXQUYMUXOVUEUVNUXOUYHUWEUXRSTUYMUVLVUEVUCTVUE
      UYIUWEYDVUEUXPUYMUXPVUEUUFUUGYEYKUOUXTXGXFUYMUYAVUEUYMYRUWHUYAVUBUYMUWEUV
      MUWPUWHVUDUYRUVNUWPUYHUWEUXFSUWSWCUYBXITXJYLXKWNUVNUYKJRZUYHUUCUVLVUGUVMY
      SVUGUUBYSUYCYQPVUGYSYQUYCYRUYCYQUYFYMYNGUAFUBJMXPVFUOVPTUYHJUUSRUVNUYHUUS
      JUUOUURJYOUPUOXTYLYPXT $.

    $d D i j $.  $d Y i j $.
    $( The difference of two diagonal matrices is a diagonal matrix.
       (Contributed by AV, 19-Aug-2019.)  (Revised by AV, 18-Dec-2019.) $)
    dmatsubcl $p |- ( ( ( N e. Fin /\ R e. Ring ) /\ ( X e. D /\ Y e. D ) )
                   -> ( X ( -g ` A ) Y ) e. D ) $=
      ( vi vj wcel crg wa co wceq adantr cfn csg cfv cv wne wi wral cgrp matgrp
      dmatmat imp adantrr adantrl eqid grpsubcl syl3anc anim12d matsubgcell w3a
      simpr simpll simprl 3jca simplrl simplrr dmatelnd syl13anc simprr oveq12d
      cbs ringgrp ring0cl jca adantl grpsubid ad3antrrr 3eqtrd ex ralrimivva wb
      syl dmatel mpbir2and ) EUAOZDPOZQZFCOZGCOZQZQZFGAUBUCZRZCOZWLBOZMUDZNUDZU
      EZWOWPWLRZHSZUFZNEUGMEUGZWJAUHOZFBOZGBOZWNWFXBWIADEIUITWFWGXCWHWFWGXCABCD
      FEPHIJKLUJZUKULWFWHXDWGWFWHXDABCDGEPHIJKLUJZUKUMBAWKFGJWKUNZUOUPWJWTMNEEW
      JWOEOZWPEOZQZQZWQWSXKWQQZWRWOWPFRZWOWPGRZDUBUCZRZHHXORZHXKWRXPSZWQXKWEXCX
      DQZXJXRWJWEXJWFWEWIWDWEUTTZTWJXSXJWFWIXSWFWGXCWHXDXEXFUQUKTWJXJUTABDWKWOW
      PXOEFGIJXGXOUNZURUPTXLXMHXNHXOXLWDWEWGUSZXHXIWQXMHSXKYBWQWJYBXJWJWDWEWGWD
      WEWIVAZXTWFWGWHVBVCTTWJXHXIWQVDZWJXHXIWQVEZXKWQUTZABCDWOWPEFHIJKLVFVGXLWD
      WEWHUSZXHXIWQXNHSXKYGWQWJYGXJWJWDWEWHYCXTWFWGWHVHVCTTYDYEYFABCDWOWPEGHIJK
      LVFVGVIWFXQHSZWIXJWQWFDUHOZHDVJUCZOZQZYHWEYLWDWEYIYKDVKYJDHYJUNZKVLVMVNYJ
      DXOHHYMKYAVOWAVPVQVRVSWFWMWNXAQVTWIABCDMNWLEPHIJKLWBTWC $.

    $d A x y $.  $d B x y $.  $d B z $.  $d D z $.  $d N z $.  $d R z $.
    $( The set of diagonal matrices is a subgroup of the matrix group/algebra.
       (Contributed by AV, 19-Aug-2019.)  (Revised by AV, 18-Dec-2019.) $)
    dmatsgrp $p |- ( ( R e. Ring /\ N e. Fin ) -> D e. ( SubGrp ` A ) ) $=
      ( vx vy vz crg wcel wa cfv cv wral ancoms cfn csubg wss c0 wne co dmatmat
      csg wi ssrdv cur dmatid ne0i syl dmatsubcl ancom1s ralrimivva cgrp w3a wb
      matring ringgrp eqid issubg4 3syl mpbir3and ) DNOZEUAOZPZCAUBQOZCBUCZCUDU
      EZKRZLRZAUHQZUFCOZLCSKCSZVIMCBVHVGMRZCOVRBOUIABCDVRENFGHIJUGTUJVIAUKQZCOZ
      VLVHVGVTABCDEFGHIJULTCVSUMUNVIVPKLCCVHVGVMCOVNCOPVPABCDEVMVNFGHIJUOUPUQVI
      ANOZAUROVJVKVLVQUSUTVHVGWAADEGVATAVBKLBCAVOHVOVCVDVEVF $.

    $d B m $.  $d N m $.  $d R m $.  $d X m $.  $d Y m $.  $d .0. i j m x y $.
    $( The product of two diagonal matrices is a diagonal matrix.  (Contributed
       by AV, 20-Aug-2019.)  (Revised by AV, 18-Dec-2019.) $)
    dmatmulcl $p |- ( ( ( N e. Fin /\ R e. Ring ) /\ ( X e. D /\ Y e. D ) )
                   -> ( X ( .r ` A ) Y ) e. D ) $=
      ( vx vy vi vj wcel wa wceq co vm cfn crg cv cmulr cfv cif cmpt2 wral crab
      wne wi cbs simpll simplr w3a 3ad2ant1 simp2 simp3 dmatmat adantrr matecld
      imp adantrl ringcl syl3anc ring0cl adantl adantr ifcld matbas2d cvv eqidd
      eqid eqeq12 oveq12 oveq12d ifbieq1d simplrl simplrr ovex c0g fvex eqeltri
      ifex a1i ovmpt2d ifnefalse eqtrd ex ralrimivva oveq eqeq1d 2ralbidv elrab
      imbi2d sylanbrc dmatmul dmatval 3eltr4d ) EUBQZDUCQZRZFCQZGCQZRZRZMNEEMUD
      ZNUDZSZXHXIFTZXHXIGTZDUEUFZTZHUGZUHZOUDZPUDZUKZXQXRUAUDZTZHSZULZPEUIOEUIZ
      UABUJZFGAUEUFTCXGXPBQXSXQXRXPTZHSZULZPEUIOEUIZXPYEQXGMNABXODDUMUFZEUCIYJV
      NZJXAXBXFUNXAXBXFUOZXGXHEQZXIEQZUPZXJXNHYJYOXBXKYJQXLYJQXNYJQXGYMXBYNYLUQ
      YOAAUMUFZDXHXIYJFEIYKYPVNZXGYMYNURZXGYMYNUSZXGYMFYPQZYNXCXDYTXEXCXDYTAYPC
      DFEUCHIYQKLUTVCVAUQVBYOAYPDXHXIYJGEIYKYQYRYSXGYMGYPQZYNXCXEUUAXDXCXEUUAAY
      PCDGEUCHIYQKLUTVCVDUQVBYJDXMXKXLYKXMVNVEVFXGYMHYJQZYNXCUUBXFXBUUBXAYJDHYK
      KVGVHVIUQVJVKXGYHOPEEXGXQEQZXREQZRRZXSYGUUEXSRZYFXQXRSZXQXRFTZXQXRGTZXMTZ
      HUGZHUUFMNXQXREEXOUUKXPVLUUFXPVMXHXQSXIXRSRZXOUUKSUUFUULXJUUGXNUUJHXHXQXI
      XRVOUULXKUUHXLUUIXMXHXQXIXRFVPXHXQXIXRGVPVQVRVHXGUUCUUDXSVSXGUUCUUDXSVTUU
      KVLQUUFUUGUUJHUUHUUIXMWAHDWBUFVLKDWBWCWDWEWFWGXSUUKHSUUEXQXRUUJHWHVHWIWJW
      KYDYIUAXPBXTXPSZYCYHOPEEUUMYBYGXSUUMYAYFHXQXRXTXPWLWMWPWNWOWQMNABCDEFGHIJ
      KLWRXCCYESXFABCDOPUAEUCHIJKLWSVIWT $.

    $( The set of diagonal matrices is a subring of the matrix ring/algebra.
       (Contributed by AV, 20-Aug-2019.)  (Revised by AV, 18-Dec-2019.) $)
    dmatsrng $p |- ( ( R e. Ring /\ N e. Fin ) -> D e. ( SubRing ` A ) ) $=
      ( vx vy crg wcel wa cfv cv wral ancoms eqid cfn csubrg csubg cur cmulr co
      dmatsgrp dmatid dmatmulcl ralrimivva w3a matring issubrg2 syl mpbir3and
      wb ) DMNZEUANZOZCAUBPNZCAUCPNZAUDPZCNZKQZLQZAUEPZUFCNZLCRKCRZABCDEFGHIJUG
      URUQVCABCDEFGHIJUHSURUQVHURUQOVGKLCCABCDEVDVEFGHIJUIUJSUSAMNZUTVAVCVHUKUP
      URUQVIADEGULSKLCBAVFVBHVBTVFTUMUNUO $.

    $d C x y $.  $d D a b x y $.  $d N a b $.  $d R a b $.
    dmatcrng.c $e |- C = ( A |`s D ) $.
    $( The subring of diagonal matrices (over a commutative ring) is a
       commutative ring .  (Contributed by AV, 20-Aug-2019.)  (Revised by AV,
       18-Dec-2019.) $)
    dmatcrng $p |- ( ( R e. CRing /\ N e. Fin ) -> C e. CRing ) $=
      ( vx vy va vb wcel wa cfv co ccrg cfn crg cv cmulr wceq cbs wral crngring
      csubrg dmatsrng sylan subrgring syl cif cmpt2 simp1lr simp2 simp3 dmatmat
      w3a imp adantrr 3ad2ant1 matecld adantrl crngcom ifeq1d mpt2eq3dva anim2i
      syl3anc dmatmul pm3.22 syl2an 3eqtr4d ralrimivva ancoms subrgbas ressmulr
      eqid wb eqcomd oveqd eqeq12d raleqbidv mpbird iscrng2 sylanbrc ) EUAQZFUB
      QZRZCUCQZMUDZNUDZCUESZTZWNWMWOTZUFZNCUGSZUHZMWSUHZCUAQWKDAUJSZQZWLWIEUCQZ
      WJXCEUIZABDEFGHIJKUKULZDACLUMUNWKXAWMWNAUESZTZWNWMXGTZUFZNDUHZMDUHZWJWIXL
      WJWIRZXJMNDDXMWMDQZWNDQZRZRZOPFFOUDZPUDZUFZXRXSWMTZXRXSWNTZEUESZTZGUOZUPZ
      OPFFXTYBYAYCTZGUOZUPZXHXIXQOPFFYEYHXQXRFQZXSFQZVAZXTYDYGGYLWIYAEUGSZQYBYM
      QYDYGUFWJWIXPYJYKUQYLAAUGSZEXRXSYMWMFHYMVTZYNVTZXQYJYKURZXQYJYKUSZXQYJWMY
      NQZYKXMXNYSXOXMXNYSAYNDEWMFUAGHYPJKUTVBVCVDVEYLAYNEXRXSYMWNFHYOYPYQYRXQYJ
      WNYNQZYKXMXOYTXNXMXOYTAYNDEWNFUAGHYPJKUTVBVFVDVEYMEYCYAYBYOYCVTVGVKVHVIXM
      WJXDRZXPXHYFUFWIXDWJXEVJZOPABDEFWMWNGHIJKVLULXMUUAXOXNRXIYIUFXPUUBXNXOVMO
      PABDEFWNWMGHIJKVLVNVOVPVQWKXCXAXLWAXFXCWTXKMWSDXCDWSDACLVRWBZXCWRXJNWSDUU
      CXCWPXHWQXIXCWOXGWMWNXCXGWODACXGXBLXGVTVSWBZWCXCWOXGWNWMUUDWCWDWEWEUNWFMN
      WSCWOWSVTWOVTWGWH $.
  $}

  ${
    $d B i j $.  $d C i j $.  $d K i j $.  $d M i j $.  $d N i j $.
    $d R i j $.  $d .* i j $.
    dmatscmcl.k $e |- K = ( Base ` R ) $.
    dmatscmcl.a $e |- A = ( N Mat R ) $.
    dmatscmcl.b $e |- B = ( Base ` A ) $.
    dmatscmcl.s $e |- .* = ( .s ` A ) $.
    dmatscmcl.d $e |- D = ( N DMat R ) $.
    $( The multiplication of a diagonal matrix with a scalar is a diagonal
       matrix.  (Contributed by AV, 19-Dec-2019.) $)
    dmatscmcl $p |- ( ( ( N e. Fin /\ R e. Ring ) /\ ( C e. K /\ M e. D ) )
                      -> ( C .* M ) e. D ) $=
      ( vi vj wcel wa co adantr cfn crg cv wne c0g cfv wceq wi wral simprl eqid
      dmatmat com12 adantl impcom jca matvscl syldan dmatel cmulr simp-4r simpr
      wb w3a anim1i 3jca matvscacell syl ringrz 3eqtrd imim2d ralimdvva expimpd
      oveq2 ex sylbid impr mpbir2and ) IUAQZEUBQZRZCGQZHDQZRZRZCHFSZDQZWFBQZOUC
      ZPUCZUDZWIWJWFSZEUEUFZUGZUHZPIUIOIUIZWAWDWBHBQZRZWHWEWBWQWAWBWCUJWDWAWQWC
      WAWQUHWBWAWCWQABDEHIUBWMKLWMUKZNULUMUNUOUPABCEFGIHJKLMUQURWAWBWCWPWAWBRZW
      CWQWKWIWJHSZWMUGZUHZPIUIOIUIZRZWPWAWCXEVCWBABDEOPHIUBWMKLWSNUSTWTWQXDWPWT
      WQRZXCWOOPIIXFWIIQWJIQRZRZXBWNWKXHXBWNXHXBRZWLCXAEUTUFZSZCWMXJSZWMXIVTWRX
      GVDZWLXKUGXHXMXBXHVTWRXGVSVTWBWQXGVAXFWRXGWTWBWQWAWBVBVETXFXGVBVFTABEFXJW
      IWJGICHKLJMXJUKZVGVHXBXKXLUGXHXAWMCXJVNUNXHXLWMUGZXBXFXOXGXFVTWBRZXOWTXPW
      QWAVTWBVSVTVBVETGEXJCWMJXNWSVIVHTTVJVOVKVLVMVPVQWAWGWHWPRVCWDABDEOPWFIUBW
      MKLWSNUSTVR $.
  $}

  ${
    $d B m n r $.  $d K c n r $.  $d N a c m n r $.  $d R a c m n r $.
    $d V a n r $.  $d .1. n r $.  $d .x. n r $.
    scmatval.k $e |- K = ( Base ` R ) $.
    scmatval.a $e |- A = ( N Mat R ) $.
    scmatval.b $e |- B = ( Base ` A ) $.
    scmatval.1 $e |- .1. = ( 1r ` A ) $.
    scmatval.t $e |- .x. = ( .s ` A ) $.
    scmatval.s $e |- S = ( N ScMat R ) $.
    $( The set of ` N ` x ` N ` scalar matrices over (a ring) ` R ` .
       (Contributed by AV, 18-Dec-2019.) $)
    scmatval $p |- ( ( N e. Fin /\ R e. V )
                     -> S = { m e. B | E. c e. K m = ( c .x. .1. ) } ) $=
      ( wceq cfv cbs vn vr va cfn wcel wa cscmat co cv wrex crab cvv cmat cvsca
      cur csb cmpt2 df-scmat ovexd fveq2 eqidd oveq123d eqeq2d rabeqbidv adantl
      a1i rexbidv csbied oveq12 fveq2d eqtri syl6eqr rexeqbidv eqtrd simpl elex
      fveq2i fvex eqeltri rabex ovmpt2d syl5eq ) IUDUEZCJUEZUFZDICUGUHGUIZKUIZF
      EUHZRZKHUJZGBUKZQWEUAUBICUDULUCUAUIZUBUIZUMUHZWFWGUCUIZUOSZWOUNSZUHZRZKWM
      TSZUJZGWOTSZUKZUPZWKUGULUGUAUBUDULXDUQRWEGUAUBUCKURVFWEWLIRZWMCRZUFZUFZXD
      WFWGWNUOSZWNUNSZUHZRZKWTUJZGWNTSZUKZWKXHUCWNXCXOULXHWLWMUMUSWOWNRZXCXORXH
      XPXAXMGXBXNWOWNTUTXPWSXLKWTXPWRXKWFXPWGWGWPXIWQXJWOWNUNUTXPWGVAWOWNUOUTVB
      VCVGVDVEVHXGXOWKRWEXGXMWJGXNBXGXNICUMUHZTSZBXGWNXQTWLIWMCUMVIZVJBATSZXRNA
      XQTMVQVKVLXGXLWIKWTHXFWTHRXEXFWTCTSHWMCTUTLVLVEXGXKWHWFXGWGWGXIFXJEXGXJXQ
      UNSZEXGWNXQUNXSVJEAUNSYAPAXQUNMVQVKVLXGWGVAXGXIXQUOSZFXGWNXQUOXSVJFAUOSYB
      OAXQUOMVQVKVLVBVCVMVDVEVNWCWDVOWDCULUEWCCJVPVEWKULUEWEWJGBBXTULNATVRVSVTV
      FWAWB $.

    $d K m $.  $d M c m $.  $d .1. m $.  $d .x. m $.
    $( An ` N ` x ` N ` scalar matrix over (a ring) ` R ` .  (Contributed by
       AV, 18-Dec-2019.) $)
    scmatel $p |- ( ( N e. Fin /\ R e. V )
               -> ( M e. S <-> ( M e. B /\ E. c e. K M = ( c .x. .1. ) ) ) ) $=
      ( vm wcel wceq cfn wa cv co wrex crab scmatval eleq2d eqeq1 rexbidv elrab
      syl6bb ) IUASCJSUBZHDSHRUCZKUCFEUDZTZKGUEZRBUFZSHBSHUOTZKGUEZUBUMDURHABCD
      EFRGIJKLMNOPQUGUHUQUTRHBUNHTUPUSKGUNHUOUIUJUKUL $.

    $( A scalar matrix can be expressed as a multiplication of a scalar with
       the identity matrix.  (Contributed by AV, 30-Oct-2019.)  (Revised by AV,
       18-Dec-2019.) $)
    scmatscmid $p |- ( ( N e. Fin /\ R e. V /\ M e. S )
                       -> E. c e. K M = ( c .x. .1. ) ) $=
      ( cfn wcel cv co wceq wrex wa scmatel simplbda 3impa ) IRSZCJSZHDSZHKTFEU
      AUBKGUCZUHUIUDUJHBSUKABCDEFGHIJKLMNOPQUEUFUG $.
  $}

  ${
    scmatscmide.a $e |- A = ( N Mat R ) $.
    scmatscmide.b $e |- B = ( Base ` R ) $.
    scmatscmide.0 $e |- .0. = ( 0g ` R ) $.
    scmatscmide.1 $e |- .1. = ( 1r ` A ) $.
    scmatscmide.m $e |- .* = ( .s ` A ) $.
    $( An entry of a scalar matrix expressed as a multiplication of a scalar
       with the identity matrix.  (Contributed by AV, 30-Oct-2019.) $)
    scmatscmide $p |- ( ( ( N e. Fin /\ R e. Ring /\ C e. B )
                      /\ ( I e. N /\ J e. N ) )
                    -> ( I ( C .* .1. ) J ) = if ( I = J , C , .0. ) ) $=
      ( wcel wa co cfv wceq cfn crg w3a cmulr cur cif simpl2 simp3 matring eqid
      cbs syl 3adant3 jca adantr simpr matvscacell syl3anc simpl1 simprl simprr
      ringidcl mat1ov oveq2d ringridm 3adant1 ringrz ifeq12d syl5eq 3eqtrd
      ovif2 ) IUAPZDUBPZCBPZUCZFIPZHIPZQZQZFHCEGRRZCFHERZDUDSZRZCFHTZDUESZJUFZW
      BRZWDCJUFZVSVMVNEAUKSZPZQZVRVTWCTVLVMVNVRUGZVOWKVRVOVNWJVLVMVNUHVLVMWJVNV
      LVMQAUBPWJADIKUIWIAEWIUJZNVBULUMUNUOVOVRUPAWIDGWBFHBICEKWMLOWBUJZUQURVSWA
      WFCWBVSADEWEFHIJKWEUJZMVLVMVNVRUSWLVOVPVQUTVOVPVQVANVCVDVOWGWHTVRVOWGWDCW
      EWBRZCJWBRZUFWHWDCWEJWBVKVOWDWPCWQJVMVNWPCTVLBDWBWECLWNWOVEVFVMVNWQJTVLBD
      WBCJLWNMVGVFVHVIUOVJ $.

    $d B i j x y $.  $d N i j x y $.  $d R i j x y $.  $d S i j x y $.
    $d T i j x y $.  $d .1. i j x y $.  $d .0. i j x y $.  $d .* i j x y $.
    $d .x. i j x y $.
    scmatscmiddistr.t $e |- .x. = ( .r ` R ) $.
    scmatscmiddistr.m $e |- .X. = ( .r ` A ) $.
    $( Distributive law for scalar and ring multiplication for scalar matrices
       expressed as multiplications of a scalar with the identity matrix.
       (Contributed by AV, 19-Dec-2019.) $)
    scmatscmiddistr $p |- ( ( ( N e. Fin /\ R e. Ring )
                              /\ ( S e. B /\ T e. B ) )
             -> ( ( S .* .1. ) .X. ( T .* .1. ) ) = ( ( S .x. T ) .* .1. ) ) $=
      ( wcel co vi vj vx vy cfn crg wa weq cv cmulr cfv cmpt2 cdmat wceq simprl
      cif cur cbs eqid dmatid syl5eqel adantr jca dmatscmcl syldan simprr oveqi
      dmatmul syl5eq w3a simpll simplr 3jca 3ad2ant1 3simpc scmatscmide syl2anc
      oveq12d ifeq1d mpt2eq3dva iftrue adantl ifeq1da wral cvv eqidd eqeq12 a1i
      eqcomi ifbieq1d ovex c0g fvex eqeltri ovmpt2d ringcl syl sylan ralrimivva
      ifex eqtr4d wb ring0cl ifcld matbas2d matring ringidcl eqmat mpbird eqtrd
      matvscl ) JUESZCUFSZUGZDBSZEBSZUGZUGZDHITZEHITZGTZUAUBJJUAUBUHZUAUIZUBUIZ
      XSTZYCYDXTTZCUJUKZTZKUPZULZDEFTZHITZXNXQXSJCUMTZSZXTYMSZUGZYAYJUNXRYNYOXN
      XQXOHYMSZUGYNXRXOYQXNXOXPUOZXNYQXQXNHAUQUKYMOAAURUKZYMCJKLYSUSZNYMUSZUTVA
      VBZVCAYSDYMCIBHJMLYTPUUAVDVEXNXQXPYQUGYOXRXPYQXNXOXPVFZUUBVCAYSEYMCIBHJML
      YTPUUAVDVEVCXNYPUGYAXSXTAUJUKZTYJGUUDXSXTRVGUAUBAYSYMCJXSXTKLYTNUUAVHVIVE
      XRYJUAUBJJYBYBDKUPZYBEKUPZYGTZKUPZULZYLXRUAUBJJYIUUHXRYCJSZYDJSZVJZYBYHUU
      GKUULYEUUEYFUUFYGUULXLXMXOVJZUUJUUKUGZYEUUEUNXRUUJUUMUUKXRXLXMXOXLXMXQVKZ
      XLXMXQVLZYRVMVNXRUUJUUKVOZABDCHYCIYDJKLMNOPVPVQUULXLXMXPVJZUUNYFUUFUNXRUU
      JUURUUKXRXLXMXPUUOUUPUUCVMVNUUQABECHYCIYDJKLMNOPVPVQVRVSVTXRUUIUAUBJJYBDE
      YGTZKUPZULZYLXRUAUBJJUUHUUTUULYBUUGUUSKYBUUGUUSUNUULYBUUEDUUFEYGYBDKWAYBE
      KWAVRWBWCVTXRUVAYLUNZUCUIZUDUIZUVATZUVCUVDYLTZUNZUDJWDUCJWDZXRUVGUCUDJJXR
      UVCJSZUVDJSZUGZUGZUVEUCUDUHZYKKUPZUVFUVLUAUBUVCUVDJJUUTUVNUVAWEUVLUVAWFUA
      UCUHUBUDUHUGZUUTUVNUNUVLUVOYBUVMUUSYKKYCUVCYDUVDWGUUSYKUNUVOYGFDEFYGQWIVG
      WHWJWBXRUVIUVJUOXRUVIUVJVFUVNWESUVLUVMYKKDEFWKKCWLUKWENCWLWMWNWTWHWOXRXLX
      MYKBSZVJUVKUVFUVNUNXRXLXMUVPUUOUUPXRXMXOXPVJZUVPXRXMXOXPUUPYRUUCVMZBCFDEM
      QWPWQZVMABYKCHUVCIUVDJKLMNOPVPWRXAWSXRUVAYSSYLYSSZUVBUVHXBXRUAUBAYSUUTCBJ
      UFLMYTUUOUUPXRUUJUUTBSUUKXRYBUUSKBXRUVQUUSBSUVRBCYGDEMYGUSWPWQXNKBSZXQXMU
      WAXLBCKMNXCWBVBXDVNXEXNXQUVPHYSSZUGUVTXRUVPUWBUVSXNUWBXQXNAUFSUWBACJLXFYS
      AHYTOXGWQVBVCAYSYKCIBJHMLYTPXKVEAYSCUCUDJUVAYLLYTXHVQXIXJXJXJ $.
  $}

  ${
    $d M c $.  $d M m $.  $d N c $.  $d R c $.
    scmatmat.a $e |- A = ( N Mat R ) $.
    scmatmat.b $e |- B = ( Base ` A ) $.
    scmatmat.s $e |- S = ( N ScMat R ) $.
    $( An ` N ` x ` N ` scalar matrix over (the ring) ` R ` is an ` N ` x ` N `
       matrix over (the ring) ` R ` .  (Contributed by AV, 18-Dec-2019.) $)
    scmatmat $p |- ( ( N e. Fin /\ R e. V ) -> ( M e. S -> M e. B ) ) $=
      ( vc cfn wcel wa cv cur cfv cvsca co eqid wceq wrex scmatel simpl syl6bi
      cbs ) FLMCGMNEDMEBMZEKOAPQZARQZSUAKCUFQZUBZNUGABCDUIUHUJEFGKUJTHIUHTUITJU
      CUGUKUDUE $.

    $d I c $.  $d J c $.  $d K c $.  $d S c $.
    scmate.k $e |- K = ( Base ` R ) $.
    scmate.0 $e |- .0. = ( 0g ` R ) $.
    $( An entry of an ` N ` x ` N ` scalar matrix over the ring ` R ` .
       (Contributed by AV, 18-Dec-2019.) $)
    scmate $p |- ( ( ( N e. Fin /\ R e. Ring /\ M e. S )
                     /\ ( I e. N /\ J e. N ) )
                   -> E. c e. K ( I M J ) = if ( I = J , c , .0. ) ) $=
      ( wcel wa co wceq cfn crg w3a cif wrex cur cfv cvsca eqid scmatscmid oveq
      cv wi simpll1 simpll2 simpr simplr scmatscmide syl31anc sylan9eqr ex mpid
      reximdva imp ) IUAQZCUBQZHDQZUCZEIQFIQRZEFHSZEFTKULZJUDZTZKGUEZVHVIHVKAUF
      UGZAUHUGZSZTZKGUEZVNABCDVPVOGHIUBKOLMVOUIZVPUIZNUJVHVIVSVNUMVHVIRZVRVMKGW
      BVKGQZRZVRVMVRWDVJEFVQSZVLEFHVQUKWDVEVFWCVIWEVLTVEVFVGVIWCUNVEVFVGVIWCUOW
      BWCUPVHVIWCUQAGVKCVOEVPFIJLOPVTWAURUSUTVAVCVAVBVD $.

    $d A i j $.  $d B c i j m $.  $d K i j $.  $d N c i j m $.  $d R i j m $.
    $( The set of an ` N ` x ` N ` scalar matrices over the ring ` R `
       expressed as a subset of ` N ` x ` N ` matrices over the ring ` R ` with
       certain properties for their entries.  (Contributed by AV, 31-Oct-2019.)
       (Revised by AV, 19-Dec-2019.) $)
    scmatmats $p |- ( ( N e. Fin /\ R e. Ring )
                    -> S = { m e. B | E. c e. K A. i e. N A. j e. N
                                      ( i m j ) = if ( i = j , c , .0. ) } ) $=
      ( wcel wa cv wceq cfn crg cur cfv co wrex crab weq cif wral eqid scmatval
      cvsca wb adantr simpll matring ringidcl syl anim1i ancomd matvscl syl2anc
      simpr eqmat simplll simpllr 3jca scmatscmide sylan eqeq2d 2ralbidva bitrd
      w3a rexbidva rabbidva eqtrd ) IUAQZCUBQZRZDGSZKSZAUCUDZAUMUDZUEZTZKHUFZGB
      UGESZFSZWAUEZEFUHWBJUIZTZFIUJEIUJZKHUFZGBUGABCDWDWCGHIUBKOLMWCUKZWDUKZNUL
      VTWGWNGBVTWABQZRZWFWMKHWRWBHQZRZWFWJWHWIWEUEZTZFIUJEIUJZWMWTWQWEBQZWFXCUN
      WRWQWSVTWQVDUOWTVTWSWCBQZRXDVTWQWSUPWTXEWSWRXEWSVTXEWQVTAUBQXEACILUQBAWCM
      WOURUSUOUTVAABWBCWDHIWCOLMWPVBVCABCEFIWAWELMVEVCWTXBWLEFIIWTWHIQWIIQRZRXA
      WKWJWTVRVSWSVNXFXAWKTWTVRVSWSVRVSWQWSVFVRVSWQWSVGWRWSVDVHAHWBCWCWHWDWIIJL
      OPWOWPVIVJVKVLVMVOVPVQ $.

    $d I i j $.  $d J j $.  $d K m $.  $d M i j $.  $d .0. i j m $.
    $( Alternate proof of ~ scmate :  An entry of an ` N ` x ` N ` scalar
       matrix over the ring ` R ` .  This prove makes use of ~ scmatmats but is
       longer and requires more distinct variables.  (Contributed by AV,
       19-Dec-2019.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    scmateALT $p |- ( ( ( N e. Fin /\ R e. Ring /\ M e. S )
                     /\ ( I e. N /\ J e. N ) )
                   -> E. c e. K ( I M J ) = if ( I = J , c , .0. ) ) $=
      ( vi vj wcel wceq vm cfn crg wa co cv cif wrex wi weq wral crab scmatmats
      eleq2d oveq eqeq1d 2ralbidv rexbidv elrab oveq1 eqeq1 ifbid eqeq12d oveq2
      eqeq2 rspc2v reximdv com12 adantl a1i syl5bi sylbid ex 3imp1 ) IUBSZCUCSZ
      HDSZEISFISUDZEFHUEZEFTZKUFZJUGZTZKGUHZVOVPVQVRWDUIZUIVOVPUDZVQHQUFZRUFZUA
      UFZUEZQRUJZWAJUGZTZRIUKQIUKZKGUHZUABULZSZWEWFDWPHABCDQRUAGIJKLMNOPUMUNWQH
      BSZWGWHHUEZWLTZRIUKQIUKZKGUHZUDZWFWEWOXBUAHBWIHTZWNXAKGXDWMWTQRIIXDWJWSWL
      WGWHWIHUOUPUQURUSXCWEUIWFXBWEWRVRXBWDVRXAWCKGWTWCEWHHUEZEWHTZWAJUGZTQREFI
      IWGETZWSXEWLXGWGEWHHUTXHWKXFWAJWGEWHVAVBVCWHFTZXEVSXGWBWHFEHVDXIXFVTWAJWH
      FEVEVBVCVFVGVHVIVJVKVLVMVN $.
  $}

  ${
    $d A i j k m x y $.  $d B i j k x y $.  $d C c k x y $.  $d C i j m $.
    $d K c k x y $.  $d K i j m $.  $d N c k x y $.  $d N c i j m $.
    $d R c k x y $.  $d R i j $.  $d R k m x y $.  $d S k x y $.
    $d S c i j m $.  $d .* i j k m x y $.  $d .X. i j $.
    scmatscm.k $e |- K = ( Base ` R ) $.
    scmatscm.a $e |- A = ( N Mat R ) $.
    scmatscm.b $e |- B = ( Base ` A ) $.
    scmatscm.t $e |- .* = ( .s ` A ) $.
    scmatscm.m $e |- .X. = ( .r ` A ) $.
    scmatscm.c $e |- S = ( N ScMat R ) $.
    $( The multiplication of a matrix with a scalar matrix corresponds to a
       scalar multiplication.  (Contributed by AV, 28-Dec-2019.) $)
    scmatscm $p |- ( ( ( N e. Fin /\ R e. Ring ) /\ C e. S )
                     -> E. c e. K A. m e. B ( C .X. m ) = ( c .* m ) ) $=
      ( vk wcel co vi vj vx vy cfn crg wa cv cur wceq wrex wral eqid scmatscmid
      cfv 3expa oveq1 cmulr cmpt cgsu csb simpr ad4antr adantr matring ringidcl
      simpl syl anim1i matvscl syl2anc matmulcell syl3anc weq c0g cif cvv cmpt2
      ancomd w3a df-3an sylibr ad3antrrr matsc eqeq12 ifbid adantl vex fvex a1i
      ifex ovmpt2d oveq1d mpteq2dva oveq2d ovif simp-6r simplrr ad2antrr ringlz
      matecld ifeq2d syl5eq cmnd ringmnd wb equcom ifbi ax-mp cbs eleq2i biimpi
      mpteq2i ringcl ralrimiva 3eqtrd csbov2g csbov1g csbvarg eqtrd matvscacell
      gsummpt1n0 eqtr4d ralrimivva eqmat mpbird sylan9eqr ex ralrimdva reximdva
      mpd ) JUESZDUFSZUGZCESZUGZCKUHZAUIUOZHTZUJZKIUKZCGUHZFTZYQUUBHTZUJZGBULZK
      IUKYLYMYOUUAABDEHYRICJUFKLMNYRUMZOQUNUPYPYTUUFKIYPYQISZUGZYTUUEGBUUIUUBBS
      ZUGZYTUUEYTUUKUUCYSUUBFTZUUDCYSUUBFUQUUKUULUUDUJZUAUHZUBUHZUULTZUUNUUOUUD
      TZUJZUBJULUAJULZUUKUURUAUBJJUUKUUNJSZUUOJSZUGZUGZUUPYQUUNUUOUUBTZDURUOZTZ
      UUQUVCUUPDRJUUNRUHZYSTZUVGUUOUUBTZUVETZUSZUTTZRUUNYQUVIUVETZVAZUVFUVCYMYS
      BSZUUJUGZUVBUUPUVLUJYNYMYOUUHUUJUVBYLYMVBVCZUUKUVPUVBUUIUVOUUJUUIYNUUHYRB
      SZUGUVOYPYNUUHYNYOVGZVDUUIUVRUUHYPUVRUUHYNUVRYOYNAUFSZUVRADJMVEZBAYRNUUGV
      FVHVDVIVSABYQDHIJYRLMNOVJVKZVIVDUUKUVBVBZABDUVEFRUUNUUOJYSUUBMNUVEUMZPVLV
      MUVCUVLDRJUARVNZYQDVOUOZVPZUVIUVETZUSZUTTDRJUWEUVMUWFVPZUSZUTTUVNUVCUVKUW
      IDUTUVCRJUVJUWHUVCUVGJSZUGZUVHUWGUVIUVEUWMUCUDUUNUVGJJUCUDVNZYQUWFVPZUWGY
      SVQUWMYLYMUUHVTZYSUCUDJJUWOVRUJUUIUWPUUJUVBUWLUUIYNUUHUGUWPYPYNUUHUVSVIYL
      YMUUHWAWBWCADHUCUDIYQJUWFMLOUWFUMZWDVHUCUAVNUDRVNUGZUWOUWGUJUWMUWRUWNUWEY
      QUWFUCUHUUNUDUHUVGWEWFWGUVCUUTUWLUVBUUTUUKUUTUVAVGWGZVDUVCUWLVBZUWGVQSUWM
      UWEYQUWFKWHDVOWIWKWJWLWMWNWOUVCUWIUWKDUTUVCRJUWHUWJUWMUWHUWEUVMUWFUVIUVET
      ZVPUWJUWEYQUWFUVIUVEWPUWMUWEUXAUWFUVMUWMYMUVIISUXAUWFUJYLYMYOUUHUUJUVBUWL
      WQZUWMABDUVGUUOIUUBJMLNUWTUUKUUTUVAUWLWRZUUKUUJUVBUWLUUIUUJVBZWSZXAIDUVEU
      VIUWFLUWDUWQWTVKXBXCWNWOUVCUVMRUWKDJUEUUNUWFUWQYNDXDSZYOUUHUUJUVBYMUXFYLD
      XEWGVCYNYLYOUUHUUJUVBYLYMVGVCUWSRJUWJRUAVNZUVMUWFVPZUWEUXGXFUWJUXHUJUARXG
      UWEUXGUVMUWFXHXIXMUVCUVMDXJUOZSZRJUWMYMYQUXISZUVIUXISUXJUXBUUIUXKUUJUVBUW
      LUUHUXKYPUUHUXKIUXIYQLXKXLWGWCUWMABDUVGUUOUXIUUBJMUXIUMZNUWTUXCUXEXAUXIDU
      VEYQUVIUXLUWDXNVMXOYBXPUVBUVNUVFUJZUUKUUTUXMUVAUUTUVNYQRUUNUVIVAZUVETUVFR
      UUNYQUVIUVEJXQUUTUXNUVDYQUVEUUTUXNRUUNUVGVAZUUOUUBTUVDRUUNUVGUUOUUBJXRUUT
      UXOUUNUUOUUBRUUNJXSWMXTWOXTVDWGXPUVCYMUUHUUJUGZUVBUUQUVFUJUVQUUKUXPUVBUUI
      UUHUUJYPUUHVBVIZVDUWCABDHUVEUUNUUOIJYQUUBMNLOUWDYAVMYCYDUUKUULBSZUUDBSZUU
      MUUSXFUUKUVTUVOUUJUXRYNUVTYOUUHUUJUWAWCUUIUVOUUJUWBVDUXDBAFYSUUBNPXNVMUUK
      YNUXPUXSYPYNUUHUUJUVSWSUXQABYQDHIJUUBLMNOVJVKABDUAUBJUULUUDMNYEVKYFYGYHYI
      YJYK $.
  $}

  ${
    $d A c $.  $d N c $.  $d R c $.
    scmatid.a $e |- A = ( N Mat R ) $.
    scmatid.b $e |- B = ( Base ` A ) $.
    scmatid.e $e |- E = ( Base ` R ) $.
    scmatid.0 $e |- .0. = ( 0g ` R ) $.
    scmatid.s $e |- S = ( N ScMat R ) $.
    $( The identity matrix is a scalar matrix.  (Contributed by AV,
       20-Aug-2019.)  (Revised by AV, 18-Dec-2019.) $)
    scmatid $p |- ( ( N e. Fin /\ R e. Ring ) -> ( 1r ` A ) e. S ) $=
      ( vc wcel crg cur cfv co wceq eqid cfn wa cvsca cbs wrex matring ringidcl
      cv syl matsca2 eqcomd fveq2d adantl eqeltrd wb oveq1 eqeq2d clmod matlmod
      csca lmodvs1 syl2anc rspcedvd scmatel mpbir2and ) FUANZCONZUBZAPQZDNVIBNZ
      VIMUHZVIAUCQZRZSZMCUDQZUEVHAONVJACFHUFBAVIIVITZUGUIZVHVNVIAUTQZPQZVIVLRZS
      ZMVSVOVHVSCPQZVOVHVRCPVHCVRACFOHUJUKULVGWBVONVFVOCWBVOTZWBTUGUMUNVKVSSZVN
      WAUOVHWDVMVTVIVKVSVIVLUPUQUMVHVTVIVHAURNVJVTVISACFHUSVQVLVSVRBAVIIVRTVLTZ
      VSTVAVBUKVCABCDVLVIVOVIFOMWCHIVPWELVDVE $.

    ${
      $d A i j $.  $d B c i j m $.  $d E c i j $.  $d N i j m $.  $d R i j m $.
      $d S c $.  $d .0. c $.
      scmatdmat.d $e |- D = ( N DMat R ) $.
      $( A scalar matrix is a diagonal matrix.  (Contributed by AV,
         20-Aug-2019.)  (Revised by AV, 19-Dec-2019.) $)
      scmatdmat $p |- ( ( N e. Fin /\ R e. Ring ) -> ( M e. S -> M e. D ) ) $=
        ( vi vj vm wcel wa vc cfn crg wss wceq cif wral wrex crab wne ifnefalse
        cv co wi id sylan9eq ex ralimdva rexlimdva ss2rabdv adantr wb scmatmats
        a1i dmatval sseq12d mpbird simpr sseldd ) HUBSDUCSTZGESZGCSVJVKTZECGVLE
        CUDZPULZQULZRULZUMZVNVOUEUAULZIUFZUEZQHUGZPHUGZUAFUHZRBUIZVNVOUJZVQIUEZ
        UNZQHUGZPHUGZRBUIZUDZVJWKVKVJWCWIRBVJVPBSTZWBWIUAFWLVRFSTZWAWHPHWMVNHST
        ZVTWGQHVTWGUNWNVOHSTVTWEWFVTWEVQVSIVTUOVNVOVRIUKUPUQVDURURUSUTVAVJVMWKV
        BVKVJEWDCWJABDEPQRFHIUAJKNLMVCABCDPQRHUCIJKMOVEVFVAVGVJVKVHVIUQ $.
    $}

    ${
      $d A d e $.  $d E c d e $.  $d N d e $.  $d R d e $.  $d S c d $.
      $d X c d $.  $d Y c d $.
      $( The sum of two scalar matrices is a scalar matrix.  (Contributed by
         AV, 25-Dec-2019.) $)
      scmataddcl $p |- ( ( ( N e. Fin /\ R e. Ring ) /\ ( X e. S /\ Y e. S ) )
                         -> ( X ( +g ` A ) Y ) e. S ) $=
        ( wcel wa cfv co wceq eqid vc vd ve cfn crg cur cvsca cplusg scmatscmid
        cv wrex 3expa adantrr wi 3expia oveq12 adantl csca cbs matlmod ad2antrr
        clmod matsca2 fveq2d syl5eq eleq2d biimpd adantr imp biimpa matring syl
        ringidcl lmodvsdir syl13anc eqcomd simpll oveqd cgrp simpr simplr grpcl
        ringgrp syl3anc eqeltrd matvscl syl12anc wb oveq1 eqeq2d eqidd rspcedvd
        scmatel mpbir2and exp32 rexlimdva com23 syldc impcom mpd ) FUDOZCUEOZPZ
        GDOZHDOZPZPGUAUJZAUFQZAUGQZRZSZUAEUKZGHAUHQZRZDOZXCXDXLXEXAXBXDXLABCDXI
        XHEGFUEUALJKXHTZXITZNUIULUMXFXCXLXOUNZXEXCXRUNXDXCXEHUBUJZXHXIRZSZUBEUK
        ZXRXAXBXEYBABCDXIXHEHFUEUBLJKXPXQNUIUOXCYAXRUBEXCXSEOZPZXLYAXOYDXKYAXOU
        NUAEYDXGEOZPZXKYAXOYFXKYAPZPXNXJXTXMRZDYGXNYHSYFGXJHXTXMUPUQYFYHDOYGYFY
        HXGXSAURQZUHQZRZXHXIRZDYFYLYHYFAVBOZXGYIUSQZOZXSYNOZXHBOZYLYHSXCYMYCYEA
        CFJUTVAYDYEYOXCYEYOUNYCXCYEYOXCEYNXGXCECUSQYNLXCCYIUSACFUEJVCZVDVEZVFVG
        VHVIYDYPYEXCYCYPXCEYNXSYSVFVJVHXCYQYCYEXCAUEOYQACFJVKBAXHKXPVMVLVAZXMYJ
        XGXSXIYIYNBAXHKXMTYITXQYNTYJTVNVOVPYFYLDOZYLBOZYLUCUJZXHXIRZSZUCEUKZYFX
        CYKEOYQUUBXCYCYEVQYFYKXGXSCUHQZRZEYFYJUUGXGXSYFYICUHXCYICSYCYEXCCYIYRVP
        VAVDVRYFCVSOZYEYCUUHEOXCUUIYCYEXBUUIXACWCUQVAYDYEVTXCYCYEWAEUUGCXGXSLUU
        GTWBWDWEZYTABYKCXIEFXHLJKXQWFWGYFUUEYLYLSZUCYKEUUJUUCYKSZUUEUUKWHYFUULU
        UDYLYLUUCYKXHXIWIWJUQYFYLWKWLXCUUAUUBUUFPWHYCYEABCDXIXHEYLFUEUCLJKXPXQN
        WMVAWNWEVHWEWOWPWQWPWRUQWSWT $.

      $( The difference of two scalar matrices is a scalar matrix.
         (Contributed by AV, 20-Aug-2019.)  (Revised by AV, 19-Dec-2019.) $)
      scmatsubcl $p |- ( ( ( N e. Fin /\ R e. Ring ) /\ ( X e. S /\ Y e. S ) )
                         -> ( X ( -g ` A ) Y ) e. S ) $=
        ( wcel wa cfv co wceq eqid vc vd ve cfn crg cv cur cvsca csg scmatscmid
        wrex 3expa adantrr 3expia oveq12 adantl csca cbs clmod matlmod ad2antrr
        wi matsca2 fveq2d syl5eq eleq2d biimpd adantr biimpa matring lmodsubdir
        imp ringidcl syl eqcomd simpll oveqd cgrp ringgrp simpr simplr grpsubcl
        syl3anc eqeltrd matvscl syl12anc wb oveq1 eqeq2d eqidd rspcedvd scmatel
        mpbir2and exp32 rexlimdva com23 syldc impcom mpd ) FUDOZCUEOZPZGDOZHDOZ
        PZPGUAUFZAUGQZAUHQZRZSZUAEUKZGHAUIQZRZDOZXBXCXKXDWTXAXCXKABCDXHXGEGFUEU
        ALJKXGTZXHTZNUJULUMXEXBXKXNVBZXDXBXQVBXCXBXDHUBUFZXGXHRZSZUBEUKZXQWTXAX
        DYAABCDXHXGEHFUEUBLJKXOXPNUJUNXBXTXQUBEXBXREOZPZXKXTXNYCXJXTXNVBUAEYCXF
        EOZPZXJXTXNYEXJXTPZPXMXIXSXLRZDYFXMYGSYEGXIHXSXLUOUPYEYGDOYFYEYGXFXRAUQ
        QZUIQZRZXGXHRZDYEYKYGYEXFXRYIXHYHYHURQZXLBAXGKXPYHTYLTXLTYITXBAUSOYBYDA
        CFJUTVAYCYDXFYLOZXBYDYMVBYBXBYDYMXBEYLXFXBECURQYLLXBCYHURACFUEJVCZVDVEZ
        VFVGVHVLYCXRYLOZYDXBYBYPXBEYLXRYOVFVIVHXBXGBOZYBYDXBAUEOYQACFJVJBAXGKXO
        VMVNVAZVKVOYEYKDOZYKBOZYKUCUFZXGXHRZSZUCEUKZYEXBYJEOYQYTXBYBYDVPYEYJXFX
        RCUIQZRZEYEYIUUEXFXRYEYHCUIXBYHCSYBYDXBCYHYNVOVAVDVQYECVROZYDYBUUFEOXBU
        UGYBYDXAUUGWTCVSUPVAYCYDVTXBYBYDWAECUUEXFXRLUUETWBWCWDZYRABYJCXHEFXGLJK
        XPWEWFYEUUCYKYKSZUCYJEUUHUUAYJSZUUCUUIWGYEUUJUUBYKYKUUAYJXGXHWHWIUPYEYK
        WJWKXBYSYTUUDPWGYBYDABCDXHXGEYKFUEUCLJKXOXPNWLVAWMWDVHWDWNWOWPWOWQUPWRW
        S $.

      $d B c d $.
      $( The product of two scalar matrices is a scalar matrix.  (Contributed
         by AV, 21-Aug-2019.)  (Revised by AV, 19-Dec-2019.) $)
      scmatmulcl $p |- ( ( ( N e. Fin /\ R e. Ring ) /\ ( X e. S /\ Y e. S ) )
                         -> ( X ( .r ` A ) Y ) e. S ) $=
        ( wcel crg wa co wceq adantr vc vd ve cfn cmulr cfv cur cvsca wrex eqid
        cv scmatel oveq12 adantll simp-4l simplr anim1i scmatscmiddistr syl2anc
        ancomd simpl simprr adantl ringcl syl3anc matring ringidcl syl syl12anc
        wi matvscl wb oveq1 eqeq2d eqidd rspcedvd mpbir2and exp32 eqeltrd exp31
        imp rexlimdva expimpd com23 sylbid imp32 ) FUDOZCPOZQZGDOZHDOZGHAUEUFZR
        ZDOZWIWJGBOZGUAUKZAUGUFZAUHUFZRZSZUAEUIZQZWKWNVJABCDWRWQEGFPUALJKWQUJZW
        RUJZNULWIWKXBWNWIWKHBOZHUBUKZWQWRRZSZUBEUIZQXBWNVJZABCDWRWQEHFPUBLJKXCX
        DNULWIXEXIXJWIXEQZXHXJUBEXKXFEOZQZXBXHWNXMWOXAXHWNVJZXMWOQZWTXNUAEXOWPE
        OZQZWTXHWNXQWTQZXHQWMWSXGWLRZDWTXHWMXSSXQGWSHXGWLUMUNXRXSDOZXHXQXTWTXQX
        SWPXFCUEUFZRZWQWRRZDXQWIXPXLQXSYCSWIXEXLWOXPUOXQXLXPXOXLXPXKXLWOUPUQUTA
        ECWPXFYAWLWQWRFIJLMXCXDYAUJZWLUJURUSXOXPYCDOZXMXPYEVJZWOXKXLYFWIXLYFVJX
        EWIXLXPYEWIXLXPQZQZYEYCBOZYCUCUKZWQWRRZSZUCEUIZYHWIYBEOZWQBOZYIWIYGVAYH
        WHXPXLYNWGWHYGUPWIXLXPVBYGXLWIXLXPVAVCECYAWPXFLYDVDVEZWIYOYGWIAPOYOACFJ
        VFBAWQKXCVGVHTABYBCWREFWQLJKXDVKVIYHYLYCYCSZUCYBEYPYJYBSZYLYQVLYHYRYKYC
        YCYJYBWQWRVMVNVCYHYCVOVPWIYEYIYMQVLYGABCDWRWQEYCFPUCLJKXCXDNULTVQVRTWAT
        WAVSTTVSVTWBWCWDWBWCWEWDWEWF $.
    $}

    $d A x y $.  $d B x y z $.  $d N x y z $.  $d R x y z $.  $d S x y z $.
    $( The set of scalar matrices is a subgroup of the matrix group/algebra.
       (Contributed by AV, 20-Aug-2019.)  (Revised by AV, 19-Dec-2019.) $)
    scmatsgrp $p |- ( ( N e. Fin /\ R e. Ring ) -> S e. ( SubGrp ` A ) ) $=
      ( vx vy vz wcel crg cfv cv wral cfn wa csubg wss c0 wne co scmatmat ssrdv
      csg cur scmatid ne0i syl scmatsubcl ralrimivva wb matring ringgrp issubg4
      cgrp w3a eqid 3syl mpbir3and ) FUAPCQPUBZDAUCRPZDBUDZDUEUFZMSZNSZAUJRZUGD
      PZNDTMDTZVFODBABCDOSFQHILUHUIVFAUKRZDPVIABCDEFGHIJKLULDVOUMUNVFVMMNDDABCD
      EFVJVKGHIJKLUOUPVFAQPAVAPVGVHVIVNVBUQACFHURAUSMNBDAVLIVLVCUTVDVE $.

    $( The set of scalar matrices is a subring of the matrix ring/algebra.
       (Contributed by AV, 21-Aug-2019.)  (Revised by AV, 19-Dec-2019.) $)
    scmatsrng $p |- ( ( N e. Fin /\ R e. Ring ) -> S e. ( SubRing ` A ) ) $=
      ( vx vy wcel crg cfv cv wral eqid cfn wa csubrg csubg cur cmulr scmatsgrp
      co scmatid scmatmulcl ralrimivva w3a wb matring issubrg2 syl mpbir3and )
      FUAOCPOUBZDAUCQOZDAUDQOZAUEQZDOZMRZNRZAUFQZUHDOZNDSMDSZABCDEFGHIJKLUGABCD
      EFGHIJKLUIURVFMNDDABCDEFVCVDGHIJKLUJUKURAPOUSUTVBVGULUMACFHUNMNDBAVEVAIVA
      TVETUOUPUQ $.

    $d C x y $.
    ${
      $d N a b x y $.  $d R a b $.  $d S a b $.
      scmatcrng.c $e |- C = ( A |`s S ) $.
      $( The subring of scalar matrices (over a commutative ring) is a
         commutative ring.  (Contributed by AV, 21-Aug-2019.) $)
      scmatcrng $p |- ( ( N e. Fin /\ R e. CRing ) -> C e. CRing ) $=
        ( vx vy va vb wcel co cfn ccrg wa crg cv cmulr cfv wceq cbs wral csubrg
        crngring scmatsrng subrgring syl cif cmpt2 w3a simp1lr eqid simp2 simp3
        sylan2 scmatmat adantrr 3ad2ant1 matecld adantrl crngcom syl3anc ifeq1d
        imp mpt2eq3dva cdmat anim2i adantr wi scmatdmat anim12d dmatmul syl2anc
        ancomd 3eqtr4d ralrimivva wb subrgbas eqcomd ressmulr eqeq12d raleqbidv
        oveqd mpbird iscrng2 sylanbrc ) GUASZDUBSZUCZCUDSZOUEZPUEZCUFUGZTZWTWSX
        ATZUHZPCUIUGZUJZOXEUJZCUBSWQEAUKUGZSZWRWPWODUDSZXIDULZABDEFGHIJKLMUMVCZ
        EACNUNUOWQXGWSWTAUFUGZTZWTWSXMTZUHZPEUJZOEUJZWQXPOPEEWQWSESZWTESZUCZUCZ
        QRGGQUEZRUEZUHZYCYDWSTZYCYDWTTZDUFUGZTZHUPZUQZQRGGYEYGYFYHTZHUPZUQZXNXO
        YBQRGGYJYMYBYCGSZYDGSZURZYEYIYLHYQWPYFFSYGFSYIYLUHWOWPYAYOYPUSYQAAUIUGZ
        DYCYDFWSGIKYRUTZYBYOYPVAZYBYOYPVBZYBYOWSYRSZYPWQXSUUBXTWQXSUUBAYRDEWSGU
        BIYSMVDVLVEVFVGYQAYRDYCYDFWTGIKYSYTUUAYBYOWTYRSZYPWQXTUUCXSWQXTUUCAYRDE
        WTGUBIYSMVDVLVHVFVGFDYHYFYGKYHUTVIVJVKVMYBWOXJUCZWSGDVNTZSZWTUUESZUCZXN
        YKUHWQUUDYAWPXJWOXKVOVPZWQYAUUHWQXSUUFXTUUGWPWOXJXSUUFVQXKABUUEDEFWSGHI
        JKLMUUEUTZVRVCWPWOXJXTUUGVQXKABUUEDEFWTGHIJKLMUUJVRVCVSVLZQRABUUEDGWSWT
        HIJLUUJVTWAYBUUDUUGUUFUCXOYNUHUUIYBUUFUUGUUKWBQRABUUEDGWTWSHIJLUUJVTWAW
        CWDWQXIXGXRWEXLXIXFXQOXEEXIEXEEACNWFWGZXIXDXPPXEEUULXIXBXNXCXOXIXAXMWSW
        TXIXMXAEACXMXHNXMUTWHWGZWKXIXAXMWTWSUUMWKWIWJWJUOWLOPXECXAXEUTXAUTWMWN
        $.
    $}

    $d D x $.
    scmatsgrp1.d $e |- D = ( N DMat R ) $.
    scmatsgrp1.c $e |- C = ( A |`s D ) $.
    $( The set of scalar matrices is a subgroup of the group/ring of diagonal
       matrices.  (Contributed by AV, 21-Aug-2019.) $)
    scmatsgrp1 $p |- ( ( N e. Fin /\ R e. Ring ) -> S e. ( SubGrp ` C ) ) $=
      ( vx vy wcel cfv cfn crg wa csubg cbs wss c0 wne cv csg co wral scmatdmat
      ssrdv wceq dmatsgrp ancoms subgbas eqcomd syl sseqtr4d cur scmatid adantr
      ne0i wi com12 impcom a1d imp32 eqid subgsub syl3anc scmatsubcl ralrimivva
      w3a eqeltrd cgrp csubrg dmatsrng subrgring ringgrp issubg4 3syl mpbir3and
      wb ) HUASZEUBSZUCZFCUDTSZFCUETZUFZFUGUHZQUIZRUIZCUJTZUKZFSZRFULQFULZWIFDW
      KWIQFDABDEFGWNHIJKLMNOUMZUNWIDAUDTSZWKDUOWHWGXAABDEHIJKMOUPUQZXADWKDACPUR
      USUTVAWIAVBTZFSWMABEFGHIJKLMNVCFXCVEUTWIWRQRFFWIWNFSZWOFSZUCZUCZWQWNWOAUJ
      TZUKZFXGXAWNDSZWODSZWQXIUOWIXAXFXBVDXFWIXJXDWIXJVFXEWIXDXJWTVGVDVHWIXDXEX
      KWIXEXKVFXDABDEFGWOHIJKLMNOUMVIVJXAXJXKVPXIWQDACXHWPWNWOXHVKPWPVKZVLUSVMA
      BEFGHWNWOIJKLMNVNVQVOWICUBSZCVRSWJWLWMWSVPWFWIDAVSTSZXMWHWGXNABDEHIJKMOVT
      UQDACPWAUTCWBQRWKFCWPWKVKXLWCWDWE $.

    $( The set of scalar matrices is a subring of the ring of diagonal
       matrices.  (Contributed by AV, 21-Aug-2019.) $)
    scmatsrng1 $p |- ( ( N e. Fin /\ R e. Ring ) -> S e. ( SubRing ` C ) ) $=
      ( vx vy wcel cfv cfn crg wa csubrg csubg cv cmulr co wral scmatsgrp1 wceq
      cur dmatsrng ancoms subrg1 syl eqcomd scmatid eqeltrd ressmulr scmatmulcl
      eqid oveqdr ralrimivva w3a wb subrgring cbs issubrg2 3syl mpbir3and ) HUA
      SZEUBSZUCZFCUDTSZFCUETSZCULTZFSZQUFZRUFZCUGTZUHZFSZRFUIQFUIZABCDEFGHIJKLM
      NOPUJVNVQAULTZFVNWEVQVNDAUDTZSZWEVQUKVMVLWGABDEHIJKMOUMUNZDACWEPWEVBUOUPU
      QABEFGHIJKLMNURUSVNWCQRFFVNVSFSVTFSUCZUCWBVSVTAUGTZUHFVNWIQRWAWJVNWJWAVNW
      GWJWAUKWHDACWJWFPWJVBUTUPUQVCABEFGHVSVTIJKLMNVAUSVDVNWGCUBSVOVPVRWDVEVFWH
      DACPVGQRFCVHTZCWAVQWKVBVQVBWAVBVIVJVK $.
  $}

  ${
    $d A c e $.  $d C c e $.  $d K c e $.  $d N c e $.  $d R c e $.  $d S c $.
    $d X c e $.  $d .* c e $.
    smatvscl.k $e |- K = ( Base ` R ) $.
    smatvscl.a $e |- A = ( N Mat R ) $.
    smatvscl.s $e |- S = ( N ScMat R ) $.
    smatvscl.t $e |- .* = ( .s ` A ) $.
    $( Closure of the scalar multiplication in the ring of scalar matrices.
       ( ~ matvscl analog.)  (Contributed by AV, 24-Dec-2019.) $)
    smatvscl $p |- ( ( ( N e. Fin /\ R e. Ring ) /\ ( C e. K /\ X e. S ) )
                     -> ( C .* X ) e. S ) $=
      ( wcel crg wa co cbs cfv wceq eqid vc ve cfn cv cur wrex wi scmatel oveq2
      adantl csca cmulr matlmod ad3antrrr matsca2 fveq2d syl5eq eleq2d ad2antrr
      clmod biimpa matring ringidcl syl lmodvsass syl13anc eqcomd simplll oveqd
      adantr simp-4r simpllr eqcomi eleq2i biimpi syl3anc eqeltrd matvscl oveq1
      ringcl syl12anc eqcoms rspcedeq2vd wb mpbir2and ex rexlimdva com23 sylbid
      expimpd imp32 ) GUCMZCNMZOZBFMZHDMZBHEPZDMZWNWPWOWRWNWPHAQRZMZHUAUDZAUERZ
      EPZSZUACQRZUFZOZWOWRUGAWSCDEXBXEHGNUAXETJWSTZXBTZLKUHWNWOXGWRWNWOXGWRUGWN
      WOOZWTXFWRXJWTOZXDWRUAXEXKXAXEMZOZXDWRXMXDOWQBXCEPZDXDWQXNSXMHXCBEUIUJXMX
      NDMXDXMXNBXAAUKRZULRZPZXBEPZDXMXRXNXMAUTMZBXOQRZMZXAXTMZXBWSMZXRXNSWNXSWO
      WTXLACGJUMUNXJYAWTXLWNWOYAWNFXTBWNFXEXTIWNCXOQACGNJUOZUPUQURVAUSXKXLYBXKX
      EXTXAXKCXOQWNCXOSZWOWTYDUSUPURVAWNYCWOWTXLWNANMYCACGJVBWSAXBXHXIVCVDUNZBX
      AEXPXOXTWSAXBXHXOTLXTTXPTVEVFVGXMXRDMZXRWSMZXRUBUDZXBEPZSZUBFUFZXMWNXQFMY
      CYHWNWOWTXLVHXMXQBXACULRZPZFXMXPYMBXAXMXOCULXJXOCSWTXLXJCXOWNYEWOYDVJVGUS
      UPVIXMWMWOXAFMZYNFMWLWMWOWTXLVKWNWOWTXLVLXLYOXKXLYOXEFXAFXEIVMVNVOUJFCYMB
      XAIYMTVTVPVQZYFAWSXQCEFGXBIJXHLVRWAXMUBXQFXRYJYPYIXQSYKXMYKXQYIXQYIXBEVSW
      BUJWCWNYGYHYLOWDWOWTXLAWSCDEXBFXRGNUBIJXHXILKUHUNWEVQVJVQWFWGWJWFWHWIWHWK
      $.
  $}

  ${
    $d A a x y $.  $d A m $.  $d N c m $.  $d N a x y $.  $d R a x y $.
    $d R c m $.  $d N c m $.  $d S a x y $.
    scmatlss.a $e |- A = ( N Mat R ) $.
    scmatlss.s $e |- S = ( N ScMat R ) $.
    $( The set of scalar matrices is a linear subspace of the matrix algebra.
       (Contributed by AV, 25-Dec-2019.) $)
    scmatlss $p |- ( ( N e. Fin /\ R e. Ring ) -> S e. ( LSubSp ` A ) ) $=
      ( va vx vy vm vc wcel crg wa cbs cfv eqidd cv co eqid cplusg clss matsca2
      cfn cvsca cur wceq wrex crab scmatval ssrab2 syl6eqss c0 wne scmatid ne0i
      c0g syl w3a smatvscl 3adantr3 simpr3 jca scmataddcl syldan islssd ) DUDLB
      MLNZGBOPZAUAPZAUBPZAUEPZCBAOPZAHIABDMEUCVGVHQVGVLQVGVIQVGVKQVGVJQVGCJRKRA
      UFPZVKSUGKVHUHZJVLUIVLAVLBCVKVMJVHDMKVHTZEVLTZVMTVKTZFUJVNJVLUKULVGVMCLCU
      MUNAVLBCVHDBUQPZEVPVOVRTZFUOCVMUPURVGGRZVHLZHRZCLZIRZCLZUSZVTWBVKSZCLZWEN
      WGWDVISCLVGWFNWHWEVGWAWCWHWEAVTBCVKVHDWBVOEFVQUTVAVGWAWCWEVBVCAVLBCVHDWGW
      DVREVPVOVSFVDVEVF $.
  $}

  ${
    scmatstrbas.a $e |- A = ( N Mat R ) $.
    scmatstrbas.c $e |- C = ( N ScMat R ) $.
    scmatstrbas.s $e |- S = ( A |`s C ) $.
    $( The set of scalar matrices is the base set of the ring of corresponding
       scalar matrices.  (Contributed by AV, 26-Dec-2019.) $)
    scmatstrbas $p |- ( ( N e. Fin /\ R e. Ring ) -> ( Base ` S ) = C ) $=
      ( cfn wcel crg wa csubrg cfv cbs wceq c0g eqid scmatsrng subrgbas eqcomd
      syl ) EIJCKJLBAMNJZDONZBPAAONZCBCONZECQNZFUERUFRUGRGSUCBUDBADHTUAUB $.
  $}

  ${
    scmatrhmval.k $e |- K = ( Base ` R ) $.
    scmatrhmval.a $e |- A = ( N Mat R ) $.
    scmatrhmval.o $e |- .1. = ( 1r ` A ) $.
    scmatrhmval.t $e |- .* = ( .s ` A ) $.
    scmatrhmval.f $e |- F = ( x e. K |-> ( x .* .1. ) ) $.

    $d K x $.  $d R x $.  $d V x $.  $d X x $.  $d .1. x $.  $d .* x $.
    $( The value of the ring homomorphism ` F ` .  (Contributed by AV,
       22-Dec-2019.) $)
    scmatrhmval $p |- ( ( R e. V /\ X e. K ) -> ( F ` X ) = ( X .* .1. ) ) $=
      ( wcel wa cv co wceq cvv cmpt a1i oveq1 adantl simpr ovexd fvmptd ) CIPZJ
      GPZQZAJARZDFSZJDFSZGEUAEAGUMUBTUKOUCULJTUMUNTUKULJDFUDUEUIUJUFUKJDFUGUH
      $.

    $d K c $.  $d N c $.  $d R c $.  $d X c $.  $d .* c $.  $d .1. c $.
    scmatrhmval.c $e |- C = ( N ScMat R ) $.
    $( The value of the ring homomorphism ` F ` is a scalar matrix.
       (Contributed by AV, 22-Dec-2019.) $)
    scmatrhmcl $p |- ( ( N e. Fin /\ R e. Ring /\ X e. K )
                       -> ( F ` X ) e. C ) $=
      ( vc wcel crg wceq cfn w3a cfv co scmatrhmval 3adant1 cbs cv 3simpa simp3
      wrex wa matring 3adant3 ringidcl syl matvscl syl12anc oveq1 eqeq2d adantl
      eqid wb eqidd rspcedvd scmatel mpbir2and eqeltrd ) IUARZDSRZJHRZUBZJFUCZJ
      EGUDZCVJVKVMVNTVIABDEFGHISJKLMNOUEUFVLVNCRZVNBUGUCZRZVNQUHZEGUDZTZQHUKZVL
      VIVJULVKEVPRZVQVIVJVKUIVIVJVKUJZVLBSRZWBVIVJWDVKBDILUMUNVPBEVPVBZMUOUPBVP
      JDGHIEKLWENUQURVLVTVNVNTZQJHWCVRJTZVTWFVCVLWGVSVNVNVRJEGUSUTVAVLVNVDVEVIV
      JVOVQWAULVCVKBVPDCGEHVNISQKLWEMNPVFUNVGVH $.

    $d C x $.  $d N x $.
    $( There is a function from a ring to any ring of scalar matrices over this
       ring.  (Contributed by AV, 25-Dec-2019.) $)
    scmatf $p |- ( ( N e. Fin /\ R e. Ring ) -> F : K --> C ) $=
      ( cfn wcel wa cfv eqid crg cv simpr cur cbs c0g scmatid syl5eqel smatvscl
      co adantr jca syldan fmptd ) IPQDUAQRZAHAUBZEGUJZCFUOUPHQZURECQZRUQCQUOUR
      RURUSUOURUCUOUSURUOEBUDSCLBBUESZDCHIDUFSZKUTTJVATOUGUHUKULBUPDCGHIEJKOMUI
      UMNUN $.

    $d C c y $.  $d F c y $.  $d K y $.  $d N c x y $.  $d R y $.
    $( There is a function from a ring onto any ring of scalar matrices over
       this ring.  (Contributed by AV, 26-Dec-2019.) $)
    scmatfo $p |- ( ( N e. Fin /\ R e. Ring ) -> F : K -onto-> C ) $=
      ( vy vc wcel crg wa cfn wf cv cfv wceq wrex wral wfo scmatf co scmatscmid
      cbs 3expa wi scmatrhmval adantll eqcomd eqeq2d biimpd reximdva adantr mpd
      eqid ralrimiva dffo3 sylanbrc ) IUARZDSRZTZHCFUBPUCZQUCZFUDZUEZQHUFZPCUGH
      CFUHABCDEFGHIJKLMNOUIVIVNPCVIVJCRZTVJVKEGUJZUEZQHUFZVNVGVHVOVRBBULUDZDCGE
      HVJISQJKVSVCLMOUKUMVIVRVNUNVOVIVQVMQHVIVKHRZTZVQVMWAVPVLVJWAVLVPVHVTVLVPU
      EVGABDEFGHISVKJKLMNUOUPUQURUSUTVAVBVDQPHCFVEVF $.

    $d F z $.  $d K i j z $.  $d N i j x y z $.  $d R i j z $.  $d .1. i j $.
    $d .* i j $.
    $( There is a 1-1 function from a ring to any ring of scalar matrices with
       positive dimension over this ring.  (Contributed by AV, 25-Dec-2019.) $)
    scmatf1 $p |- ( ( N e. Fin /\ N =/= (/) /\ R e. Ring )
                    -> F : K -1-1-> C ) $=
      ( vi wcel wceq wral wa vy vz vj cfn c0 wne crg w3a cfv wf1 scmatf 3adant2
      wf cv wi co wb simpr scmatrhmval syl2an eqeq12d 3adantl2 cbs matring eqid
      simpl ringidcl syl anim12ci matvscl syldan jca eqmat csn cdif cun difsnid
      eqcomd adantl raleqdv ralunsn c0g cif anim2i df-3an sylibr id scmatscmide
      oveq2 iftruei syl6eq anbi2d 3bitrd ralbidva r19.26 3ad2ant2 adantr sylbid
      rspn0 com12 sylbi ralrimivva dff13 sylanbrc ) IUDQZIUEUFZDUGQZUHZHCFUMZUA
      UNZFUIZUBUNZFUIZRZXJXLRZUOZUBHSUAHSHCFUJXEXGXIXFABCDEFGHIJKLMNOUKULXHXPUA
      UBHHXHXJHQZXLHQZTZTZXNXJEGUPZXLEGUPZRZXOXEXGXSXNYCUQXFXEXGTZXSTZXKYAXMYBY
      DXGXQXKYARXSXEXGURZXQXRVFZABDEFGHIUGXJJKLMNUSUTYDXGXRXMYBRXSYFXQXRURZABDE
      FGHIUGXLJKLMNUSUTVAVBXTYCPUNZUCUNZYAUPZYIYJYBUPZRZUCISZPISZXOXTYABVCUIZQZ
      YBYPQZTZYCYOUQXEXGXSYSXFYEYQYRYDXSXQEYPQZTYQYDYTXSXQYDBUGQYTBDIKVDYPBEYPV
      EZLVGVHZYGVIBYPXJDGHIEJKUUAMVJVKYDXSXRYTTYRYDYTXSXRUUBYHVIBYPXLDGHIEJKUUA
      MVJVKVLVBBYPDPUCIYAYBKUUAVMVHXTYOYMUCIYIVNZVOZSZXOTZPISZXOXEXGXSYOUUGUQXF
      YEYNUUFPIYEYIIQZTZYNYMUCUUDUUCVPZSZUUEYIYIYAUPZYIYIYBUPZRZTZUUFUUIYMUCIUU
      JUUHIUUJRYEUUHUUJIIYIVQVRVSVTUUHUUKUUOUQYEYMUUNUCUUDYIIYJYIRYKUULYLUUMYJY
      IYIYAWIYJYIYIYBWIVAWAVSUUIUUNXOUUEUUIUULXJUUMXLUUIUULYIYIRZXJDWBUIZWCZXJY
      EXEXGXQUHZUUHUUHTZUULUURRUUHYEYDXQTUUSXSXQYDYGWDXEXGXQWEWFUUHUUHUUHUUHWGZ
      UVAVLZBHXJDEYIGYIIUUQKJUUQVEZLMWHUTUUPXJUUQYIVEZWJWKUUIUUMUUPXLUUQWCZXLYE
      XEXGXRUHZUUTUUMUVERUUHYEYDXRTUVFXSXRYDYHWDXEXGXRWEWFUVBBHXLDEYIGYIIUUQKJU
      VCLMWHUTUUPXLUUQUVDWJWKVAWLWMWNVBUUGXTXOUUGUUEPISZXOPISZTXTXOUOZUUEXOPIWO
      UVHUVIUVGXTUVHXOXHUVHXOUOZXSXFXEUVJXGXOPIWSWPWQWTVSXAWTWRWRWRXBUAUBHCFXCX
      D $.

    $( There is a bijection between a ring and any ring of scalar matrices with
       positive dimension over this ring.  (Contributed by AV, 26-Dec-2019.) $)
    scmatf1o $p |- ( ( N e. Fin /\ N =/= (/) /\ R e. Ring )
                    -> F : K -1-1-onto-> C ) $=
      ( cfn wcel c0 wne crg w3a wf1 wfo scmatf1 scmatfo 3adant2 df-f1o sylanbrc
      wf1o ) IPQZIRSZDTQZUAHCFUBHCFUCZHCFUIABCDEFGHIJKLMNOUDUJULUMUKABCDEFGHIJK
      LMNOUEUFHCFUGUH $.

    $d S y z $.
    scmatghm.s $e |- S = ( A |`s C ) $.
    $( There is a group homomorphism from the additive group of a ring to the
       additive group of the ring of scalar matrices over this ring.
       (Contributed by AV, 22-Dec-2019.) $)
    scmatghm $p |- ( ( N e. Fin /\ R e. Ring ) -> F e. ( R GrpHom S ) ) $=
      ( wcel cfv eqid vy vz cfn crg wa cplusg cbs cgrp ringgrp adantl csubg c0g
      scmatsgrp subggrp wf scmatf scmatstrbas feq3d mpbird cv csca wceq matsca2
      syl cvv cscmat ovex eqeltri resssca mp1i eqtrd fveq2d oveqd oveq1d adantr
      co clss matlmod scmatlss lsslmod syl2anc syl5eq eleq2d biimpd adantrd imp
      clmod adantld cur scmatid 3eltr4d cvsca ressvsca ax-mp lmodvsdir syl13anc
      a1i simpr w3a anim1i 3anass sylibr ringacl scmatrhmval ad2ant2lr ad2ant2l
      oveq12d 3eqtr4d isghmd ) JUCRZDUDRZUEZUAUBDUFSZEUFSZDEGIEUGSZKXOTZXMTZXNT
      ZXKDUHRXJDUIUJXLCBUKSREUHRBBUGSZDCIJDULSZLXSTZKXTTZPUMCBEQUNVDXLIXOGUOICG
      UOABCDFGHIJKLMNOPUPXLXOCGIBCDEJLPQUQZURUSXLUAUTZIRZUBUTZIRZUEZUEZYDYFXMVP
      ZFHVPZYDFHVPZYFFHVPZXNVPZYJGSZYDGSZYFGSZXNVPYIYKYDYFEVASZUFSZVPZFHVPZYNXL
      YKUUAVBYHXLYJYTFHXLXMYSYDYFXLDYRUFXLDBVASZYRBDJUDLVCCVERZUUBYRVBXLCJDVFVP
      VEPJDVFVGVHZCUUBBEVEQUUBTVIVJVKZVLVMVNVOYIEWGRZYDYRUGSZRZYFUUGRZFXORZUUAY
      NVBXLUUFYHXLBWGRCBVQSZRUUFBDJLVRBDCJLPVSUUKCBEQUUKTVTWAVOXLYHUUHXLYEUUHYG
      XLYEUUHXLIUUGYDXLIDUGSUUGKXLDYRUGUUEVLWBZWCWDWEWFXLYHUUIXLYGUUIYEXLYGUUIX
      LIUUGYFUULWCWDWHWFXLUUJYHXLBWISZCFXOBXSDCIJXTLYAKYBPWJFUUMVBXLMWQYCWKVOXN
      YSYDYFHYRUUGXOEFXPXRYRTUUCHEWLSVBUUDCHBEVEQNWMWNUUGTYSTWOWPVKYIXKYJIRZYOY
      KVBXLXKYHXJXKWRZVOYIXKYEYGWSZUUNYIXKYHUEUUPXLXKYHUUOWTXKYEYGXAXBIXMDYDYFK
      XQXCVDABDFGHIJUDYJKLMNOXDWAYIYPYLYQYMXNXKYEYPYLVBXJYGABDFGHIJUDYDKLMNOXDX
      EXKYGYQYMVBXJYEABDFGHIJUDYFKLMNOXDXFXGXHXI $.

    ${
      $d M y z $.  $d T y z $.
      scmatmhm.m $e |- M = ( mulGrp ` R ) $.
      scmatmhm.t $e |- T = ( mulGrp ` S ) $.
      $( There is a monoid homomorphism from the multiplicative group of a ring
         to the multiplicative group of the ring of scalar matrices over this
         ring.  (Contributed by AV, 29-Dec-2019.) $)
      scmatmhm $p |- ( ( N e. Fin /\ R e. Ring ) -> F e. ( M MndHom T ) ) $=
        ( vy vz cfn wcel crg wa cmnd cbs cfv wf cv cmulr wceq wral cur w3a cmhm
        co ringmgp adantl csubrg c0g eqid scmatsrng subrgring 3syl scmatf feq3d
        scmatstrbas mpbird scmatscmiddistr syl adantr oveqd eqtr3d simpr anim1i
        ressmulr 3anass sylibr ringcl scmatrhmval ad2ant2lr ad2ant2l ralrimivva
        syl2anc oveq12d 3eqtr4d ringidcl matsca2 fveq2d matlmod matring lmodvs1
        csca oveq1d clmod eqtrd subrg1 jca31 mgpbas mgpplusg ringidval ismhm
        3jca ) LUDUEZDUFUEZUGZKUHUEZFUHUEZUGJEUIUJZHUKZUBULZUCULZDUMUJZUSZHUJZX
        NHUJZXOHUJZEUMUJZUSZUNZUCJUOUBJUOZDUPUJZHUJZEUPUJZUNZUQZUGHKFURUSUEXIXJ
        XKYIXHXJXGDKTUTVAXICBVBUJZUEZEUFUEXKBBUIUJZDCJLDVCUJZNYLVDZMYMVDZRVEZCB
        ESVFEFUAUTVGXIXMYDYHXIXMJCHUKABCDGHIJLMNOPQRVHXIXLCHJBCDELNRSVJVIVKXIYC
        UBUCJJXIXNJUEZXOJUEZUGZUGZXQGIUSZXNGIUSZXOGIUSZYAUSZXRYBYTUUBUUCBUMUJZU
        SUUAUUDBJDXNXOXPUUEGILYMNMYOOPXPVDZUUEVDZVLYTUUEYAUUBUUCXIUUEYAUNZYSXIY
        KUUHYPCBEUUEYJSUUGVSVMVNVOVPYTXHXQJUEZXRUUAUNXIXHYSXGXHVQZVNYTXHYQYRUQZ
        UUIYTXHYSUGUUKXIXHYSUUJVRXHYQYRVTWAJDXPXNXOMUUFWBVMABDGHIJLUFXQMNOPQWCW
        GYTXSUUBXTUUCYAXHYQXSUUBUNXGYRABDGHIJLUFXNMNOPQWCWDXHYRXTUUCUNXGYQABDGH
        IJLUFXOMNOPQWCWEWHWIWFXIYFGYGXIYFYEGIUSZGXIXHYEJUEZYFUULUNUUJXHUUMXGJDY
        EMYEVDZWJVAABDGHIJLUFYEMNOPQWCWGXIUULBWPUJZUPUJZGIUSZGXIYEUUPGIXIDUUOUP
        BDLUFNWKWLWQXIBWRUEGYLUEZUUQGUNBDLNWMXIBUFUEUURBDLNWNYLBGYNOWJVMIUUPUUO
        YLBGYNUUOVDPUUPVDWOWGWSWSXIYKGYGUNYPCBEGSOWTVMWSXFXAUBUCJXLXPYAKFHYGYEJ
        DKTMXBXLEFUAXLVDXBDXPKTUUFXCEYAFUAYAVDXCDYEKTUUNXDEYGFUAYGVDXDXEWA $.
    $}

    $( There is a ring homomorphism from a ring to the ring of scalar matrices
       over this ring.  (Contributed by AV, 29-Dec-2019.) $)
    scmatrhm $p |- ( ( N e. Fin /\ R e. Ring ) -> F e. ( R RingHom S ) ) $=
      ( wcel cfv eqid cfn crg wa cghm co cmgp cmhm crh csubrg cbs c0g scmatsrng
      simpr subrgring syl jca scmatghm scmatmhm isrhm sylanbrc ) JUARZDUBRZUCZV
      BEUBRZUCGDEUDUERZGDUFSZEUFSZUGUERZUCGDEUHUERVCVBVDVAVBUMVCCBUISRVDBBUJSZD
      CIJDUKSZLVITKVJTPULCBEQUNUOUPVCVEVHABCDEFGHIJKLMNOPQUQABCDEVGFGHIVFJKLMNO
      PQVFTZVGTZURUPDEGVFVGVKVLUSUT $.

    $( There is a ring isomorphism from a ring to the ring of scalar matrices
       over this ring with positive dimension.  (Contributed by AV,
       29-Dec-2019.) $)
    scmatrngiso $p |- ( ( N e. Fin /\ N =/= (/) /\ R e. Ring )
                        -> F e. ( R RingIso S ) ) $=
      ( wcel crg cfv cfn c0 wne w3a crs crh wf1o scmatrhm 3adant2 scmatf1o wceq
      co cbs wb scmatstrbas f1oeq3 syl mpbird wa csubrg c0g scmatsrng subrgring
      simp3 eqid isrim syl2anc mpbir2and ) JUARZJUBUCZDSRZUDZGDEUEULRZGDEUFULRZ
      IEUMTZGUGZVIVKVNVJABCDEFGHIJKLMNOPQUHUIVLVPICGUGZABCDFGHIJKLMNOPUJVLVOCUK
      ZVPVQUNVIVKVRVJBCDEJLPQUOUIVOCIGUPUQURVLVKESRZVMVNVPUSUNVIVJVKVDVIVKVSVJV
      IVKUSCBUTTRVSBBUMTZDCIJDVATZLVTVEKWAVEPVBCBEQVCUQUIIVODEGSSKVOVEVFVGVH $.
  $}

  ${
    $d A x $.  $d C x $.  $d N x $.  $d R x $.
    scmatric.a $e |- A = ( N Mat R ) $.
    scmatric.c $e |- C = ( N ScMat R ) $.
    scmatric.s $e |- S = ( A |`s C ) $.
    $( A ring is isomorphic to every ring of scalar matrices over this ring
       with positive dimension.  (Contributed by AV, 29-Dec-2019.) $)
    scmatric $p |- ( ( N e. Fin /\ N =/= (/) /\ R e. Ring ) -> R ~=r S ) $=
      ( vx cfn wcel c0 wne crg w3a crs co cric cfv eqid wbr cbs cur scmatrngiso
      cv cvsca cmpt ne0i syl brric sylibr ) EJKELMCNKOZCDPQZLMZCDRUAULICUBSZIUE
      AUCSZAUFSZQUGZUMKUNIABCDUPURUQUOEUOTFUPTUQTURTGHUDUMURUHUICDUJUK $.
  $}

  ${
    $d R c $.
    $( The empty matrix over a ring is a scalar matrix (and therefore, by
       ~ scmatdmat , also a diagonal matrix).  (Contributed by AV,
       21-Dec-2019.) $)
    mat0scmat $p |- ( R e. Ring -> (/) e. ( (/) ScMat R ) ) $=
      ( vc crg wcel c0 cscmat co cmat cbs cfv cv cur cvsca wceq wrex csn 0ex wb
      eqid eqeq2d mat0dimbas0 syl5eleqr ringidcl oveq1 adantl mat0dimscm eqcomd
      snid mpdan rspcedvd mat0dimid oveq2d rexbidv mpbird cfn 0fin scmatel mpan
      wa mpbir2and ) ACDZEEAFGZDZEEAHGZIJZDZEBKZVDLJZVDMJZGZNZBAIJZOZVAEEPVEEQU
      HACUAUBVAVMEVGEVIGZNZBVLOVAVOEALJZEVIGZNZBVPVLVLAVPVLSZVPSUCZVGVPNZVOVRRV
      AWAVNVQEVGVPEVIUDTUEVAVQEVAVPVLDVQENVTVDAVPVDSZUFUIUGUJVAVKVOBVLVAVJVNEVA
      VHEVGVIVDAWBUKULTUMUNEUODVAVCVFVMUSRUPVDVEAVBVIVHVLEECBVSWBVESVHSVISVBSUQ
      URUT $.
  $}

  ${
    $d B e $.  $d M c e $.  $d N c e $.  $d R c e $.
    mat1scmat.a $e |- A = ( N Mat R ) $.
    mat1scmat.b $e |- B = ( Base ` A ) $.
    $( A 1-dimensional matrix over a ring is always a scalar matrix (and
       therefore, by ~ scmatdmat , also a diagonal matrix).  (Contributed by
       AV, 21-Dec-2019.) $)
    mat1scmat $p |- ( ( N e. V /\ ( # ` N ) = 1 /\ R e. Ring )
                      -> ( M e. B -> M e. ( N ScMat R ) ) ) $=
      ( ve vc wcel cfv wceq co csn cbs wa cop cvv eqid chash c1 cscmat hash1snb
      crg wi cv wex cmat cvsca wrex simpr wb mat1dimelbas mpan2 cmulr mat1dimid
      cur vex a1i sylan2 oveq2d simpl jctir ringidcl adantr mat1dimscm syl12anc
      ringridm opeq2d sneqd 3eqtrrd ex reximdva sylbid imp snfi scmatel sylancr
      eqtrd mpbir2and fveq2i eqtri fveq2d syl5eq eleq2d imbi12d syl5ibr exlimiv
      cfn oveq1 syl6bi 3imp ) EFKZEUALUBMZCUEKZDBKZDECUCNZKZUFZWNWOEIUGZOZMZIUH
      WPWTUFZEFIUDXCXDIWPWTXCDXBCUINZPLZKZDXBCUCNZKZUFWPXGXIWPXGQZXIXGDJUGZXEUR
      LZXEUJLZNZMZJCPLZUKZWPXGULWPXGXQWPXGDXAXARZXKRZOZMZJXPUKZXQWPXASKZXGYBUMI
      USZXEXPCXADXRSJXETZXPTZXRTZUNUOWPYAXOJXPWPXKXPKZQZYAXOYIYAQDXTXNYIYAULYIX
      TXNMYAYIXNXKXRCURLZROZXMNZXRXKYJCUPLZNZRZOZXTYIXLYKXKXMYHWPYCXLYKMYCYHYDU
      TXEXPCXAXRSYEYFYGUQVAVBYIWPYCQYHYJXPKZYLYPMYIWPYCWPYHVCYDVDWPYHULWPYQYHXP
      CYJYFYJTZVEVFXEXPCXAXRSXKYJYEYFYGVGVHYIYOXSYIYNXKXRXPCYMYJXKYFYMTYRVIVJVK
      VLVFVTVMVNVOVPXJXBWJKWPXIXGXQQUMXAVQWPXGVCXEXFCXHXMXLXPDXBUEJYFYEXFTXLTXM
      TXHTVRVSWAVMXCWQXGWSXIXCBXFDXCBECUINZPLZXFBAPLYTHAYSPGWBWCXCYSXEPEXBCUIWK
      WDWEWFXCWRXHDEXBCUCWKWFWGWHWIWLWM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Multiplication of a matrix with a "column vector"
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The module of ` n ` -dimensional "column vectors" over a ring ` r ` is the
` n ` -dimensional free module over a ring ` r `, which is the product of ` n `
-many copies of the ring with componentwise addition and multiplication.
Although a "column vector" could also be defined as n x 1 -matrix (according to
Wikipedia "Row and column vectors", 22-Feb-2019,
~ https://en.wikipedia.org/wiki/Row_and_column_vectors : "In linear algebra, a
column vector [[... ] is an m x 1 matrix, that is, a matrix consisting of a
single column of m elements"), which would allow for using the matrix
multiplication ~ df-mamu for multiplying a matrix with a column vector, it
seems more natural to use the definition of a free (left) module, avoiding to
provide a singleton as ` 1 `-dimensional index set for the column, and to
introduce a new operator ~ df-mvmul for the multiplication of a matrix with a
column vector. In most cases, it is sufficient to regard members of
` ( ( Base `` R ) ^m N ) ` as "column vectors", because
` ( ( Base `` R ) ^m N ) ` is the base set of ` ( R freeLMod N ) `, see
~ frlmbasmap . See also the statements in [Lang] p. 508.
$)

  $c maVecMul $.
  $( Syntax for the operator for the multiplication of a vector with a
     matrix. $)
  cmvmul $a class maVecMul $.

  ${
    $d i j m n o r x y $.
    $( The operator which multiplies an M x N -matrix with an N-dimensional
       vector.  (Contributed by AV, 23-Feb-2019.) $)
    df-mvmul $a |- maVecMul = ( r e. _V , o e. _V
         |-> [_ ( 1st ` o ) / m ]_ [_ ( 2nd ` o ) / n ]_
             ( x e. ( ( Base ` r ) ^m ( m X. n ) ) , y e. ( ( Base ` r ) ^m n )
               |-> ( i e. m |-> ( r gsum ( j e. n
                            |-> ( ( i x j ) ( .r ` r ) ( y ` j ) ) ) ) ) ) ) $.
  $}

  ${
    $d i j m n o r x y $.  $d i j o r x y ph $.  $d i j o r x y M $.
    $d i j o r x y N $.  $d i j o r x y R $.  $d i j o r x y ph $.
    $d o r x y B $.  $d o r x y i .x. $.
    mvmulfval.x $e |- .X. = ( R maVecMul <. M , N >. ) $.
    mvmulfval.b $e |- B = ( Base ` R ) $.
    mvmulfval.t $e |- .x. = ( .r ` R ) $.
    mvmulfval.r $e |- ( ph -> R e. V ) $.
    mvmulfval.m $e |- ( ph -> M e. Fin ) $.
    mvmulfval.n $e |- ( ph -> N e. Fin ) $.
    $( Functional value of the matrix vector multiplication operator.
       (Contributed by AV, 23-Feb-2019.) $)
    mvmulfval $p |- ( ph -> .X. = ( x e. ( B ^m ( M X. N ) ) ,
                                    y e. ( B ^m N ) |-> ( i e. M
             |-> ( R gsum ( j e. N |-> ( ( i x j ) .x. ( y ` j ) ) ) ) ) ) ) $=
      ( co cmap vr vo vm vn cop cmvmul cxp cv cfv cmpt cgsu cmpt2 cvv c1st c2nd
      cbs cmulr csb wceq df-mvmul a1i wa xpeq12 oveq2d oveq2 adantl simpl simpr
      mpteq1d mpteq12dv mpt2eq123dv csbie2 simprl fveq2d syl6eqr fveq2 ad2antll
      fvex wcel op1stg syl2anc adantr eqtrd op2ndg xpeq12d oveq12d oveqd syl5eq
      cfn elex syl opex ovex mpt2ex ovmpt2d ) AGEJKUEZUFSBCDJKUGZTSZDKTSZHJEIKH
      UHIUHZBUHSZWTCUHUIZFSZUJZUKSZUJZULZMAUAUBEWPUMUMUCUBUHZUNUIZUDXHUOUIZBCUA
      UHZUPUIZUCUHZUDUHZUGZTSZXLXNTSZHXMXKIXNXAXBXKUQUIZSZUJZUKSZUJZULZURURZXGU
      FUMUFUAUBUMUMYDULUSABCHIUCUDUBUAUTVAAXKEUSZXHWPUSZVBZVBZYDBCXLXIXJUGZTSZX
      LXJTSZHXIXKIXJXSUJZUKSZUJZULZXGUCUDXIXJYCYOXHUNVRXHUOVRXMXIUSZXNXJUSZVBZB
      CXPXQYBYJYKYNYRXOYIXLTXMXIXNXJVCVDYQXQYKUSYPXNXJXLTVEVFYRHXMYAXIYMYPYQVGY
      RXTYLXKUKYRIXNXJXSYPYQVHVIVDVJVKVLYHBCYJYKYNWRWSXFYHXLDYIWQTYHXLEUPUIDYHX
      KEUPAYEYFVMZVNNVOZYHXIJXJKYHXIWPUNUIZJYFXIUUAUSAYEXHWPUNVPVQAUUAJUSZYGAJW
      IVSZKWIVSZUUBQRJKWIWIVTWAWBWCZYHXJWPUOUIZKYFXJUUFUSAYEXHWPUOVPVQAUUFKUSZY
      GAUUCUUDUUGQRJKWIWIWDWAWBWCZWEWFYHXLDXJKTYTUUHWFYHHXIYMJXEUUEYHXKEYLXDUKY
      SYHIXJXSKXCUUHYHXRFXAXBYHXREUQUIZFYGXRUUIUSZAYEUUJYFXKEUQVPWBVFOVOWGVJWFV
      JVKWHAELVSEUMVSPELWJWKWPUMVSAJKWLVAXGUMVSABCWRWSXFDWQTWMDKTWMWNVAWOWH $.

    $d i j x y X $.  $d i j x y Y $.
    mvmulval.x $e |- ( ph -> X e. ( B ^m ( M X. N ) ) ) $.
    mvmulval.y $e |- ( ph -> Y e. ( B ^m N ) ) $.
    $( Multiplication of a vector with a matrix.  (Contributed by AV,
       23-Feb-2019.) $)
    mvmulval $p |- ( ph -> ( X .X. Y ) = ( i e. M
               |-> ( R gsum ( j e. N |-> ( ( i X j ) .x. ( Y ` j ) ) ) ) ) ) $=
      ( vx vy cxp cmap co cv cfv cmpt cgsu cvv mvmulfval wceq wa oveq oveqan12d
      fveq1 adantl mpteq2dv oveq2d cfn wcel mptexg syl ovmpt2d ) AUAUBKLBHIUCUD
      UEBIUDUEFHCGIFUFZGUFZUAUFZUEZVFUBUFZUGZDUEZUHZUIUEZUHFHCGIVEVFKUEZVFLUGZD
      UEZUHZUIUEZUHZEUJAUAUBBCDEFGHIJMNOPQRUKAVGKULZVILULZUMZUMZFHVMVRWCVLVQCUI
      WCGIVKVPWBVKVPULAVTWAVHVNVJVODVEVFVGKUNVFVILUPUOUQURUSURSTAHUTVAVSUJVAQFH
      VRUTVBVCVD $.

    $d i j I $.
    mvmulfv.i $e |- ( ph -> I e. M ) $.
    $( A cell/element in the vector resulting from a multiplication of a vector
       with a matrix.  (Contributed by AV, 23-Feb-2019.) $)
    mvmulfv $p |- ( ph -> ( ( X .X. Y ) ` I )
                   = ( R gsum ( j e. N |-> ( ( I X j ) .x. ( Y ` j ) ) ) ) ) $=
      ( vi cv co cfv cmpt cgsu cvv mvmulval oveq1 adantl oveq1d mpteq2dv oveq2d
      wceq wa ovexd fvmptd ) AUBGCFIUBUCZFUCZKUDZUTLUEZDUDZUFZUGUDCFIGUTKUDZVBD
      UDZUFZUGUDHKLEUDUHABCDEUBFHIJKLMNOPQRSTUIAUSGUOZUPZVDVGCUGVIFIVCVFVIVAVEV
      BDVHVAVEUOAUSGUTKUJUKULUMUNUAACVGUGUQUR $.
  $}

  ${
    $d i j N $.  $d i j R $.  $d i j X $.  $d i j Y $.  $d i .x. $.
    $d i j ph $.
    mavmulval.a $e |- A = ( N Mat R ) $.
    mavmulval.m $e |- .X. = ( R maVecMul <. N , N >. ) $.
    mavmulval.b $e |- B = ( Base ` R ) $.
    mavmulval.t $e |- .x. = ( .r ` R ) $.
    mavmulval.r $e |- ( ph -> R e. V ) $.
    mavmulval.n $e |- ( ph -> N e. Fin ) $.
    mavmulval.x $e |- ( ph -> X e. ( Base ` A ) ) $.
    mavmulval.y $e |- ( ph -> Y e. ( B ^m N ) ) $.
    $( Multiplication of a vector with a square matrix.  (Contributed by AV,
       23-Feb-2019.) $)
    mavmulval $p |- ( ph -> ( X .X. Y ) = ( i e. N
               |-> ( R gsum ( j e. N |-> ( ( i X j ) .x. ( Y ` j ) ) ) ) ) ) $=
      ( cbs cfv cxp cmap co cfn wcel wceq matbas2 syl2anc eleqtrrd mvmulval ) A
      CDEFGHIIJKLNOPQRRAKBUAUBZCIIUCUDUEZSAIUFUGDJUGUNUMUHRQBDCIJMOUIUJUKTUL $.

    $d i j I $.
    mavmulfv.i $e |- ( ph -> I e. N ) $.
    $( A cell/element in the vector resulting from a multiplication of a vector
       with a square matrix.  (Contributed by AV, 6-Dec-2018.)  (Revised by AV,
       18-Feb-2019.)  (Revised by AV, 23-Feb-2019.) $)
    mavmulfv $p |- ( ph -> ( ( X .X. Y ) ` I )
                   = ( R gsum ( j e. N |-> ( ( I X j ) .x. ( Y ` j ) ) ) ) ) $=
      ( vi cv co cfv cmpt cgsu cvv mavmulval wceq wa oveq1 adantl oveq1d oveq2d
      mpteq2dv ovexd fvmptd ) AUBHDGIUBUCZGUCZKUDZUTLUEZEUDZUFZUGUDDGIHUTKUDZVB
      EUDZUFZUGUDIKLFUDUHABCDEFUBGIJKLMNOPQRSTUIAUSHUJZUKZVDVGDUGVIGIVCVFVIVAVE
      VBEVHVAVEUJAUSHUTKULUMUNUPUOUAADVGUGUQUR $.
  $}

  ${
    $d i j B $.  $d i j N $.  $d i j R $.  $d i j X $.  $d i j Y $.
    $d i j ph $.  $d i .x. $.
    mavmulcl.a $e |- A = ( N Mat R ) $.
    mavmulcl.m $e |- .X. = ( R maVecMul <. N , N >. ) $.
    mavmulcl.b $e |- B = ( Base ` R ) $.
    mavmulcl.t $e |- .x. = ( .r ` R ) $.
    mavmulcl.r $e |- ( ph -> R e. Ring ) $.
    mavmulcl.n $e |- ( ph -> N e. Fin ) $.
    mavmulcl.x $e |- ( ph -> X e. ( Base ` A ) ) $.
    mavmulcl.y $e |- ( ph -> Y e. ( B ^m N ) ) $.
    $( Multiplication of an NxN matrix with an N-dimensional vector results in
       an N-dimensional vector.  (Contributed by AV, 6-Dec-2018.)  (Revised by
       AV, 23-Feb-2019.)  (Proof shortened by AV, 23-Jul-2019.) $)
    mavmulcl $p |- ( ph -> ( X .X. Y ) e. ( B ^m N ) ) $=
      ( vi co wcel vj cv cfv cmpt cgsu cmap crg mavmulval wral ccmn ringcmn syl
      wa adantr cfn ad2antrr cxp cbs wceq matbas2 syl2anc eleqtrrd elmapi simpr
      wf fovrnd ffvelrnd ringcl syl3anc ralrimiva gsummptcl cvv wb fvex eqeltri
      elmapg sylancr eqid fmpt syl6rbbr mpbid eqeltrd ) AHIFSRGDUAGRUBZUAUBZHSZ
      WDIUCZESZUDUESZUDZCGUFSZABCDEFRUAGUGHIJKLMNOPQUHAWHCTZRGUIZWIWJTZAWKRGAWC
      GTZUMZCUADGWGLADUJTZWNADUGTZWPNDUKULUNAGUOTZWNOUNWOWGCTZUAGWOWDGTZUMZWQWE
      CTWFCTWSAWQWNWTNUPXAWCWDCGGHAGGUQZCHVEZWNWTAHCXBUFSZTXCAHBURUCZXDPAWRWQXD
      XEUSONBDCGUGJLUTVAVBHCXBVCULUPWOWNWTAWNVDUNWOWTVDZVFXAGCWDIAGCIVEZWNWTAIW
      JTXGQICGVCULUPXFVGCDEWEWFLMVHVIVJVKVJAWMGCWIVEZWLACVLTWRWMXHVMCDURUCVLLDU
      RVNVOOCGWIVLUOVPVQRGCWHWIWIVRVSVTWAWB $.
  $}

  ${
    $d i j x y A $.  $d i j x y N $.  $d i j x y R $.  $d i j y x ph $.
    $d i j Y $.
    1mavmul.a $e |- A = ( N Mat R ) $.
    1mavmul.b $e |- B = ( Base ` R ) $.
    1mavmul.t $e |- .x. = ( R maVecMul <. N , N >. ) $.
    1mavmul.r $e |- ( ph -> R e. Ring ) $.
    1mavmul.n $e |- ( ph -> N e. Fin ) $.
    1mavmul.y $e |- ( ph -> Y e. ( B ^m N ) ) $.
    $( Multiplication of the identity NxN matrix with an N-dimensional vector
       results in the vector itself.  (Contributed by AV, 9-Feb-2019.)
       (Revised by AV, 23-Feb-2019.) $)
    1mavmul $p |- ( ph -> ( ( 1r ` A ) .x. Y ) = Y ) $=
      ( vi vj cfv co wcel wceq adantr vx vy cur cv cmulr cmpt cgsu crg eqid cfn
      cbs cmat fveq2i mat1bas syl2anc mavmulval weq c0g cif cmpt2 oveqdr oveq1d
      wa mat1 mpteq2dv oveq2d cvv eqidd eqeq12 ifbid adantl simpr fvexd ovmpt2d
      ifcld iftrue wi cmap wf fvex eqeltri a1i elmapd ffvelrn ex syl6bi mpd imp
      ringlidm fveq2 equcoms 3eqtrd eqtr4d ringlz eqcom sylnbi eqcomd pm2.61ian
      wn iffalse eqtrd mpteq2dva cmnd ringmnd syl syl6eleq gsummptif1n0 wfn ffn
      dffn5 bitr4i sylibr ) ABUCPZGEQNFDOFNUDZOUDZXMQZXOGPZDUEPZQZUFZUGQZUFNFXN
      GPZUFZGABCDXRENOFUHXMGHJIXRUIZKLADUHRZFUJRZXMBUKPZRKLBYGDXMFHYGUIBFDULQUC
      HUMUNUOMUPANFYAYBAXNFRZVCZYADOFXNXOUAUBFFUAUBUQZDUCPZDURPZUSZUTZQZXQXRQZU
      FZUGQDOFONUQZYBYLUSZUFZUGQYBYIXTYQDUGYIOFXSYPYIXPYOXQXRAYHNOXMYNAYFYEXMYN
      SLKBDYKUAUBFYLHYKUIZYLUIZVDUOVAVBVEVFYIYQYTDUGYIOFYPYSYIXOFRZVCZYPNOUQZYK
      YLUSZXQXRQZYSUUDYOUUFXQXRUUDUAUBXNXOFFYMUUFYNVGUUDYNVHUANUQUBOUQVCZYMUUFS
      UUDUUHYJUUEYKYLUAUDXNUBUDXOVIVJVKYIYHUUCAYHVLZTYIUUCVLUUDUUEYKYLVGUUDDUCV
      MUUDDURVMVOVNVBUUEUUDUUGYSSUUEUUDVCZUUGYBYSUUJUUGYKXQXRQZXQYBUUJUUFYKXQXR
      UUEUUFYKSUUDUUEYKYLVPTVBUUDUUKXQSZUUEUUDYEXQCRZUULYIYEUUCAYEYHKTTZYIUUCUU
      MAUUCUUMVQZYHAGCFVRQRZUUOMAUUPFCGVSZUUOACFGVGUJCVGRACDUKPZVGIDUKVTWAWBLWC
      ZUUQUUCUUMFCXOGWDWEWFWGTWHZCDXRYKXQIYDUUAWIUOVKUUEXQYBSZUUDUVAONXOXNGWJWK
      TWLUUEYSYBSZUUDUVBONYRYBYLVPWKTWMUUEWSZUUDVCUUGYLXQXRQZYLYSUVCUUGUVDSUUDU
      VCUUFYLXQXRUUEYKYLWTVBTUUDUVDYLSZUVCUUDYEUUMUVEUUNUUTCDXRXQYLIYDUUBWNUOVK
      UVCYLYSSUUDUVCYSYLUUEYRYSYLSXNXOWOYRYBYLWTWPWQTWLWRXAXBVFYIYBOYTDFUJXNYLU
      UBADXCRZYHAYEUVFKDXDXETAYFYHLTUUIYTUIAYHYBUURRZAUUPYHUVGVQZMAUUPUUQUVHUUS
      UUQYHUVGUUQYHVCYBCUURFCXNGWDIXFWEWFWGWHXGWLXBAGFXHZYCGSZAUUPUVIMAUUPUUQUV
      IUUSFCGXIWFWGUVJGYCSUVIYCGWONFGXJXKXLWL $.

    $d j k B $.  $d k N $.  $d k R $.  $d i j k X $.  $d k Y $.  $d i j k Z $.
    $d k ph $.  $d i j .X. $.  $d i k .x. $.
    mavmulass.m $e |- .X. = ( R maMul <. N , N , N >. ) $.
    mavmulass.x $e |- ( ph -> X e. ( Base ` A ) ) $.
    mavmulass.z $e |- ( ph -> Z e. ( Base ` A ) ) $.
    $( Associativity of the multiplication of two NxN matrices with an
       N-dimensional vector.  (Contributed by AV, 9-Feb-2019.)  (Revised by AV,
       25-Feb-2019.)  (Proof shortened by AV, 22-Jul-2019.) $)
    mavmulass $p |- ( ph -> ( ( X .X. Z ) .x. Y ) = ( X .x. ( Z .x. Y ) ) ) $=
      ( co vi vj vk cmap wcel wf wfn cmulr cfv eqid cxp cbs cfn matbas2 syl2anc
      crg wceq eleqtrrd mamucl eleqtrd mavmulcl elmapi ffn 3syl cv wa cmpt cgsu
      ringcmn syl adantr ad2antrr simplr simprr fovrnd simprl wi ffvelrn ex imp
      ad2ant2r ringcl syl3anc gsumcom3fi simpr mamufv oveq1d cplusg c0g adantlr
      ccmn cvv ovexd fvexd fsuppmptdm gsummulc1 ringass syl13anc anassrs oveq2d
      mpteq2dva 3eqtr2d mavmulfv gsummulc2 eqtr4d 3eqtr4d eqfnfvd ) AUAGHJFTZIE
      TZHJIETZETZAXICGUDTZUEGCXIUFXIGUGABCDDUHUIZEGXHIKMLXMUJZNOAXHCGGUKZUDTZBU
      LUIZACGDFGGHJLNQOOOAHXQXPRAGUMUEZDUPUEZXPXQUQONBDCGUPKLUNUOZURZAJXQXPSXTU
      RZUSXTUTZPVAXICGVBGCXIVCVDAXKXLUEGCXKUFXKGUGABCDXMEGHXJKMLXNNORABCDXMEGJI
      KMLXNNOSPVAZVAXKCGVBGCXKVCVDAUAVEZGUEZVFZDUBGYEUBVEZXHTZYHIUIZXMTZVGZVHTZ
      DUCGYEUCVEZHTZYNXJUIZXMTZVGZVHTZYEXIUIYEXKUIYGDUBGDUCGYOYNYHJTZYJXMTZXMTZ
      VGZVHTZVGZVHTDUCGDUBGUUBVGVHTZVGZVHTYMYSYGGCGUBUCDUUBLADWKUEZYFAXSUUHNDVI
      VJVKAXRYFOVKZUUIYGYHGUEZYNGUEZVFZVFZXSYOCUEZUUACUEZUUBCUEAXSYFUULNVLZUUMY
      EYNCGGHAXOCHUFZYFUULAHXPUEZUUQYAHCXOVBVJZVLAYFUULVMYGUUJUUKVNZVOZUUMXSYTC
      UEZYJCUEZUUOUUPUUMYNYHCGGJAXOCJUFZYFUULAJXPUEZUVDYBJCXOVBVJZVLUUTYGUUJUUK
      VPVOZAUUJUVCYFUUKAUUJUVCAIXLUEZGCIUFZUUJUVCVQZPICGVBUVIUUJUVCGCYHIVRVSVDZ
      VTZWAZCDXMYTYJLXNWBZWCCDXMYOUUALXNWBWCWDYGYLUUEDVHYGUBGYKUUDYGUUJVFZYKDUC
      GYOYTXMTZVGZVHTZYJXMTDUCGUVPYJXMTZVGZVHTUUDUVOYIUVRYJXMUVOCGDXMUCFYEYHGGU
      PHJQLXNAXSYFUUJNVLZAXRYFUUJOVLZUWBUWBAUURYFUUJYAVLAUVEYFUUJYBVLAYFUUJVMYG
      UUJWEWFWGUVOGCDWHUIZDXMUCUMUVPYJDWIUIZLUWDUJZUWCUJZXNUWAUWBAUUJUVCYFUVLWJ
      UVOUUKVFZXSUUNUVBUVPCUEYGXSUUJUUKAXSYFNVKZVLYGUUKUUNUUJYGUUKVFZYEYNCGGHAU
      UQYFUUKUUSVLAYFUUKVMYGUUKWEZVOZWJUWGYNYHCGGJYGUVDUUJUUKAUVDYFUVFVKZVLUVOU
      UKWEYGUUJUUKVMVOCDXMYOYTLXNWBWCUVOUCGUVQWLWLUVPUWDUVQUJUWBUWGYOYTXMWMUVOD
      WIWNWOWPUVOUVTUUCDVHUVOUCGUVSUUBYGUUJUUKUVSUUBUQZUUMXSUUNUVBUVCUWMUUPUVAU
      VGUVMCDXMYOYTYJLXNWQWRWSXAWTXBXAWTYGYRUUGDVHYGUCGYQUUFUWIYQYODUBGUUAVGZVH
      TZXMTUUFUWIYPUWOYOXMUWIBCDXMEUBYNGUPJIKMLXNAXSYFUUKNVLZAXRYFUUKOVLZAJXQUE
      YFUUKSVLAUVHYFUUKPVLUWJXCWTUWIGCUWCDXMUBUMUUAYOUWDLUWEUWFXNUWPUWQUWKUWIUU
      JVFZXSUVBUVCUUOYGXSUUKUUJUWHVLUWRYNYHCGGJYGUVDUUKUUJUWLVLYGUUKUUJVMUWIUUJ
      WEVOUWIUUJUVCAUVJYFUUKUVKVLVTUVNWCUWIUBGUWNWLWLUUAUWDUWNUJUWQUWRYTYJXMWMU
      WIDWIWNWOXDXEXAWTXFYGBCDXMEUBYEGUPXHIKMLXNUWHUUIAXHXQUEYFYCVKAUVHYFPVKAYF
      WEZXCYGBCDXMEUCYEGUPHXJKMLXNUWHUUIAHXQUEYFRVKAXJXLUEYFYDVKUWSXCXFXG $.
  $}

  ${
    $d B x y $.  $d M i j x y $.  $d N i j x y $.  $d R i j x y $.
    $d V i j x y $.
    mavmuldm.b $e |- B = ( Base ` R ) $.
    mavmuldm.c $e |- C = ( B ^m ( M X. N ) ) $.
    mavmuldm.d $e |- D = ( B ^m N ) $.
    mavmuldm.t $e |- .x. = ( R maVecMul <. M , N >. ) $.
    $( The domain of the matrix vector multiplication function.  (Contributed
       by AV, 27-Feb-2019.) $)
    mavmuldm $p |- ( ( R e. V /\ M e. Fin /\ N e. Fin )
                     -> dom .x. = ( C X. D ) ) $=
      ( vx vy vi vj wcel cfn co cv w3a cdm cxp cmap cmulr cmpt cgsu cmpt2 simp1
      cfv eqid simp2 simp3 mvmulfval dmeqd cvv wral wceq wa mptexg 3ad2ant2 a1d
      ralrimivv dmmpt2ga syl eqcomi a1i eqcomd xpeq12d 3eqtrd ) DHQZFRQZGRQZUAZ
      EUBMNAFGUCUDSZAGUDSZOFDPGOTPTZMTZSVQNTZUJDUEUJZSUFUGSZUFZUHZUBZVOVPUCZBCU
      CVNEWCVNMNADVTEOPFGHLIVTUKVKVLVMUIVKVLVMULVKVLVMUMUNUOVNWBUPQZNVPUQMVOUQW
      DWEURVNWFMNVOVPVNWFVRVOQVSVPQUSVLVKWFVMOFWARUTVAVBVCMNVOVPWBWCUPWCUKVDVEV
      NVOBVPCVOBURVNBVOJVFVGVNCVPCVPURVNKVGVHVIVJ $.

    mavmulsolcl.e $e |- E = ( B ^m M ) $.
    $( Every solution of the equation ` A * X = Y ` for a matrix ` A ` and a
       vector ` B ` is a vector.  (Contributed by AV, 27-Feb-2019.) $)
    mavmulsolcl $p |- ( ( ( M e. Fin /\ N e. Fin /\ M =/= (/) )
                /\ ( R e. V /\ Y e. E ) ) -> ( ( A .x. X ) = Y -> X e. D ) ) $=
      ( wcel c0 wi cfn wne w3a wa co wceq 2a1 wn cdm simpl adantl simpl1 simpl2
      cxp 3jca mavmuldm syl intnand ndmovg syl2anc eqeq1 cmap wf elmapi biimprd
      f0dom0 necon3d com12 3ad2ant3 eleq2s impcom eqneqall syl5com eqcoms com23
      a1d syl6bi mpcom ex pm2.61i ) KDRZHUARZIUARZHSUBZUCZEJRZLGRZUDZUDZAKFUEZL
      UFZWATZTWAWIWKUGWAUHZWIWLWJSUFZWMWIUDZWLWOFUICDUNUFZACRZWAUDUHWNWOWFWBWCU
      CZWPWIWRWMWIWFWBWCWHWFWEWFWGUJUKWBWCWDWHULWBWCWDWHUMUOUKBCDEFHIJMNOPUPUQW
      OWAWQWMWIUJURAKCDFUSUTWNWKWOWAWNWKSLUFWOWATZWJSLVAWSLSWOLSUFZWAWIWTWATWMW
      ILSUBZWTWAWHWEXAWGWFWEXATZWFXBTZLBHVBUEZGLXDRHBLVCZXCLBHVDXEXBWFWEXEXAWDW
      BXEXATWCXEWDXAXELSHSXEHSUFWTLHBVFVEVGVHVIVHVPUQQVJVKVKWALSVLVMUKVHVNVQVOV
      RVSVT $.
  $}

  ${
    $d N i j $.  $d R i j $.  $d V i j $.
    mavmul0.t $e |- .x. = ( R maVecMul <. N , N >. ) $.
    $( Multiplication of a 0-dimensional matrix with a 0-dimensional vector.
       (Contributed by AV, 28-Feb-2019.) $)
    mavmul0 $p |- ( ( N = (/) /\ R e. V ) -> ( (/) .x. (/) ) = (/) ) $=
      ( vi vj c0 wceq wcel co cfv cmpt cmat cbs eqid cfn adantr cvv c1o wa cgsu
      cmulr simpr 0fin eleq1 mpbiri csn 0ex snidg mp1i oveq1 fveq2d mat0dimbas0
      adantl eqtrd eleqtrrd cmap eqidd el1o sylibr oveq2 map0e mavmulval mpteq1
      cv fvex mpt0 syl6eq ) CHIZADJZUAZHHBKFCAGCFVFGVFZHKVMHLAUCLZKMUBKZMZHVLCA
      NKZAOLZAVNBFGCDHHVQPEVRPVNPVJVKUDVJCQJZVKVJVSHQJUECHQUFUGRVLHHUHZVQOLZHSJ
      HVTJVLUIHSUJUKVLWAHANKZOLZVTVLVQWBOVJVQWBIVKCHANULRUMVKWCVTIVJADUNUOUPUQV
      JHVRCURKZJVKVJHTWDVJHHIHTJVJHUSHUTVAVJWDVRHURKZTCHVRURVBVRSJWETIVJAOVGVRS
      VCUKUPUQRVDVLVPFHVOMZHVJVPWFIVKFCHVOVERFVOVHVIUP $.

    $d N i j k l $.  $d R k l $.  $d V k l $.
    $( The result of the 0-dimensional multiplication of a matrix with a vector
       is always the empty set.  (Contributed by AV, 1-Mar-2019.) $)
    mavmul0g $p |- ( ( N = (/) /\ R e. V ) -> ( X .x. Y ) = (/) ) $=
      ( vi vj vk c0 wceq wa wcel co cxp cmap cv cvv c1o oveq12 mavmul0 sylan9eq
      vl cdm csn cbs cfv cmulr cmpt cgsu cmpt2 eqid simpr cfn 0fin eleq1 mpbiri
      wn adantr mvmulfval dmeqd wral 0ex mptexg syl ralrimivva dmmpt2ga xpeq12d
      id 0xp syl6eq oveq2d fvex map0e mp1i eqtrd df1o2 oveq2 3eqtrd elsni con3i
      anim12i ndmovg syl2anr pm2.61ian ) EKLZFKLZMZCKLZADNZMZEFBOZKLZWIWLWMKKBO
      KEKFKBUAABCDGUBUCWLBUEZKUFZWPPZLEWPNZFWPNZMZUSWNWIUSWLWOHIAUGUHZCCPZQOZXA
      CQOZJCAUDCJRUDRZHRZOXEIRZUHAUIUHZOUJUKOZUJZULZUEZXCXDPZWQWLBXKWLHIXAAXHBJ
      UDCCDGXAUMXHUMWJWKUNWJCUONZWKWJXNKUONUPCKUOUQURUTZXOVAVBWLXJSNZIXDVCHXCVC
      XLXMLWLXPHIXCXDWLXPXFXCNXGXDNMWJXPWKWJCSNZXPWJXQKSNVDCKSUQURJCXISVEVFUTUT
      VGHIXCXDXJXKSXKUMVHVFWLXCWPXDWPWLXCTWPWJXCTLWKWJXCXAKQOZTWJXBKXAQWJXBKKPK
      WJCKCKWJVJZXSVIKVKVLVMXASNZXRTLZWJAUGVNZXASVOZVPVQUTVRVLWJWKXDXRWPCKXAQVS
      WKXRTWPXTYAWKYBYCVPVRVLUCVIVTWTWIWRWGWSWHEKWAFKWAWCWBEFWPWPBWDWEWF $.
  $}

  ${
    $d k A $.  $d k M $.  $d i j k N $.  $d k R $.  $d i j k Y $.
    $d i j k Z $.  $d i j k ph $.
    mvmumamul1.x $e |- .X. = ( R maMul <. M , N , { (/) } >. ) $.
    mvmumamul1.t $e |- .x. = ( R maVecMul <. M , N >. ) $.
    mvmumamul1.b $e |- B = ( Base ` R ) $.
    mvmumamul1.r $e |- ( ph -> R e. Ring ) $.
    mvmumamul1.m $e |- ( ph -> M e. Fin ) $.
    mvmumamul1.n $e |- ( ph -> N e. Fin ) $.
    mvmumamul1.a $e |- ( ph -> A e. ( B ^m ( M X. N ) ) ) $.
    mvmumamul1.y $e |- ( ph -> Y e. ( B ^m N ) ) $.
    mvmumamul1.z $e |- ( ph -> Z e. ( B ^m ( N X. { (/) } ) ) ) $.
    $( The multiplication of an MxN matrix with an N-dimensional vector
       corresponds to the matrix multiplication of an MxN matrix with an Nx1
       matrix.  (Contributed by AV, 14-Mar-2019.) $)
    mvmumamul1 $p |- ( ph -> ( A. j e. N ( Y ` j ) = ( j Z (/) )
               -> A. i e. M ( ( A .x. Y ) ` i ) = ( i ( A .X. Z ) (/) ) ) ) $=
      ( vk cv cfv c0 co wceq wral wcel cmulr cmpt cgsu crg eqid adantr cfn cmap
      wa cxp simpr mvmulfv adantlr wi weq fveq2 oveq1 eqeq12d rspccv adantl imp
      oveq2d mpteq2dva csn snfi a1i 0ex snid mamufv eqcomd 3eqtrd ralrimiva ex
      ) AHUCZKUDZWCUELUFZUGZHJUHZGUCZBKEUFUDZWHUEBLFUFUFZUGZGIUHAWGURZWKGIWLWHI
      UIZURWIDUBJWHUBUCZBUFZWNKUDZDUJUDZUFZUKZULUFZDUBJWOWNUELUFZWQUFZUKZULUFZW
      JAWMWIWTUGWGAWMURZCDWQEUBWHIJUMBKNOWQUNZADUMUIWMPUOZAIUPUIWMQUOZAJUPUIWMR
      UOZABCIJUSUQUFUIWMSUOZAKCJUQUFUIWMTUOAWMUTZVAVBWLWTXDUGWMWLWSXCDULWLUBJWR
      XBWLWNJUIZURWPXAWOWQWLXLWPXAUGZWGXLXMVCAWFXMHWNJHUBVDWDWPWEXAWCWNKVEWCWNU
      ELVFVGVHVIVJVKVLVKUOAWMXDWJUGWGXEWJXDXECUEVMZDWQUBFWHUEIJUMBLMOXFXGXHXIXN
      UPUIXEUEVNVOXJALCJXNUSUQUFUIWMUAUOXKUEXNUIXEUEVPVQVOVRVSVBVTWAWB $.
  $}

  ${
    $d i j N $.  $d i j Y $.  $d i j Z $.  $d i j ph $.
    mavmumamul1.a $e |- A = ( N Mat R ) $.
    mavmumamul1.m $e |- .X. = ( R maMul <. N , N , { (/) } >. ) $.
    mavmumamul1.t $e |- .x. = ( R maVecMul <. N , N >. ) $.
    mavmumamul1.b $e |- B = ( Base ` R ) $.
    mavmumamul1.r $e |- ( ph -> R e. Ring ) $.
    mavmumamul1.n $e |- ( ph -> N e. Fin ) $.
    mavmumamul1.x $e |- ( ph -> X e. ( Base ` A ) ) $.
    mavmumamul1.y $e |- ( ph -> Y e. ( B ^m N ) ) $.
    mavmumamul1.z $e |- ( ph -> Z e. ( B ^m ( N X. { (/) } ) ) ) $.
    $( The multiplication of an NxN matrix with an N-dimensional vector
       corresponds to the matrix multiplication of an NxN matrix with an Nx1
       matrix.  (Contributed by AV, 14-Mar-2019.) $)
    mavmumamul1 $p |- ( ph -> ( A. j e. N ( Y ` j ) = ( j Z (/) )
               -> A. i e. N ( ( X .x. Y ) ` i ) = ( i ( X .X. Z ) (/) ) ) ) $=
      ( cbs cfv cxp cmap cfn wcel crg wceq matbas2 syl2anc eleqtrrd mvmumamul1
      co ) AJCDEFGHIIKLNOPQRRAJBUBUCZCIIUDUEUNZSAIUFUGDUHUGUPUOUIRQBDCIUHMPUJUK
      ULTUAUM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Replacement functions for a square matrix
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c matRRep matRepV $.
  $( Syntax for the row replacing function for a square matrix. $)
  cmarrep $a class matRRep $.
  $( Syntax for the function replacing a column of a matrix by a vector. $)
  cmatrepV $a class matRepV $.

  ${
    $d n r m i j k l s $.
    $( Define the matrices whose k-th row is replaced by 0's and an arbitrary
       element of the underlying ring at the l-th column.  (Contributed by AV,
       12-Feb-2019.) $)
    df-marrep $a |- matRRep = ( n e. _V , r e. _V |->
       ( m e. ( Base ` ( n Mat r ) ) , s e. ( Base ` r )
         |-> ( k e. n , l e. n |-> ( i e. n , j e. n |-> if ( i = k ,
                if ( j = l , s , ( 0g ` r ) ) , ( i m j ) ) ) ) ) ) $.
  $}

  ${
    $d i j k m n r v $.
    $( Function replacing a column of a matrix by a vector.  (Contributed by
       AV, 9-Feb-2019.)  (Revised by AV, 26-Feb-2019.) $)
    df-marepv $a |- matRepV = ( n e. _V , r e. _V |->
    ( m e. ( Base ` ( n Mat r ) ) , v e. ( ( Base ` r ) ^m n ) |-> ( k e. n |->
          ( i e. n , j e. n |-> if ( j = k , ( v ` i ) , ( i m j ) ) ) ) ) ) $.
  $}

  ${
    $d B m n r s $.  $d N i j k l m n r s $.  $d R i j k l m n r s $.
    $d .0. n r $.
    marrepfval.a $e |- A = ( N Mat R ) $.
    marrepfval.b $e |- B = ( Base ` A ) $.
    marrepfval.q $e |- Q = ( N matRRep R ) $.
    marrepfval.z $e |- .0. = ( 0g ` R ) $.
    $( First substitution for the definition of the matrix row replacement
       function.  (Contributed by AV, 12-Feb-2019.) $)
    marrepfval $p |- Q = ( m e. B , s e. ( Base ` R ) |-> ( k e. N , l e. N |->
                  ( i e. N , j e. N |-> if ( i = k , if ( j = l , s , .0. ) ,
                                                     ( i m j ) ) ) ) ) $=
      ( cbs cfv cvv wceq vn vr cmarrep co weq cv cif cmpt2 wcel wa fvex eqeltri
      fvexd mpt2exga sylancr cmat c0g oveq12 fveq2d fveq2i eqtri syl6eqr adantl
      fveq2 simpl ifeq2d ifeq1d mpt2eq123dv df-marrep ovmpt2ga mpd3an3 mpt2ndm0
      wn c0 mpt20 matbas0pc syl5eq eqidd mpt2eq12 syl2anc eqtr4d pm2.61i ) CIDU
      CUDZHKBDQRZGLIIEFIIEGUEZFLUEZKUFZJUGZEUFFUFHUFUDZUGZUHZUHZUHZOISUIZDSUIZU
      JZWCWMTZWNWOWMSUIZWQWPBSUIWDSUIWRBAQRZSNAQUKULWPDQUMHKBWDWLSSUNUOUAUBIDSS
      HKUAUFZUBUFZUPUDZQRZXAQRZGLWTWTEFWTWTWEWFWGXAUQRZUGZWIUGZUHZUHZUHZWMUCSWT
      ITZXADTZUJZHKXCXDXIBWDWLXMXCIDUPUDZQRZBXMXBXNQWTIXADUPURUSBWSXONAXNQMUTVA
      ZVBXLXDWDTXKXADQVDVCXMGLWTWTXHIIWKXKXLVEZXQXMEFWTWTXGIIWJXQXQXLXGWJTXKXLW
      EXFWHWIXLWFXEJWGXLXEDUQRJXADUQVDPVBVFVGVCVHVHVHEFGHUAKUBLVIZVJVKWPVMZWCHK
      VNWDWLUHZWMXSWCVNXTUAUBXJUCIDSSXRVLHKWDWLVOVBXSBVNTWDWDTWMXTTXSBXOVNXPDIV
      PVQXSWDVRHKBWDVNWDWLVSVTWAWBVA $.

    $d M i j k l m s $.  $d S i j k l m s $.  $d .0. m s $.
    $( Second substitution for the definition of the matrix row replacement
       function.  (Contributed by AV, 12-Feb-2019.) $)
    marrepval0 $p |- ( ( M e. B /\ S e. ( Base ` R ) )
                       -> ( M Q S ) = ( k e. N , l e. N
              |-> ( i e. N , j e. N |-> if ( i = k , if ( j = l , S , .0. ) ,
                                                     ( i M j ) ) ) ) ) $=
      ( wcel cif cv wceq vm vs cbs cfv weq co cmpt2 cvv wa matrcl simpld adantr
      cfn jca mpt2exga syl ifeq1 adantl oveq ifeq12d mpt2eq3dv ovmpt2ga mpd3an3
      marrepfval ) IBQZEDUCUDZQZHLJJFGJJFHUEZGLUEZEKRZFSZGSZIUFZRZUGZUGZUHQZIEC
      UFVPTVEVGUIJUMQZVRUIZVQVEVSVGVEVRVRVEVRDUHQABDJIMNUJUKZVTUNULHLJJVOUMUMUO
      UPUAUBIEBVFHLJJFGJJVHVIUBSZKRZVKVLUASZUFZRZUGZUGVPCUHWCITZWAETZUIZHLJJWFV
      OWIFGJJWEVNWIVHWBVJWDVMWHWBVJTWGVIWAEKUQURWGWDVMTWHVKVLWCIUSULUTVAVAABCDF
      GHUAJKUBLMNOPVDVBVC $.

    $d B k l $.  $d K i j k l $.  $d L i j k l $.  $d .0. k l $.
    $( Third substitution for the definition of the matrix row replacement
       function.  (Contributed by AV, 12-Feb-2019.) $)
    marrepval $p |- ( ( ( M e. B /\ S e. ( Base ` R ) )
                        /\ ( K e. N /\ L e. N ) )
                      -> ( K ( M Q S ) L ) = ( i e. N , j e. N
                   |-> if ( i = K , if ( j = L , S , .0. ) , ( i M j ) ) ) ) $=
      ( vk wcel wa wceq vl cbs cfv co weq cif cv cmpt2 marrepval0 adantr simprl
      cvv simplrr cfn matrcl simpld jca ad3antrrr mpt2exga eqeq2 ifbid ifbieq1d
      syl wb adantl mpt2eq3dv ovmpt2dv2 mpd ) JBRZEDUBUCRZSZHKRZIKRZSZSZJECUDZQ
      UAKKFGKKFQUEZGUAUEZELUFZFUGZGUGZJUDZUFZUHZUHTZHIVPUDFGKKVTHTZWAITZELUFZWB
      UFZUHZTVKWEVNABCDEFGQJKLUAMNOPUIUJVOQUAHIKKWDWJVPULVKVLVMUKVKVLVMQUGZHTZU
      MVOWLUAUGZITZSZSKUNRZWPSZWDULRVIWQVJVNWOVIWPWPVIWPDULRABDKJMNUOUPZWRUQURF
      GKKWCUNUNUSVCWOWDWJTVOWOFGKKWCWIWOVQWFVSWHWBWLVQWFVDWNWKHVTUTUJWNVSWHTWLW
      NVRWGELWMIWAUTVAVEVBVFVEVGVH $.

    $d B i j $.  $d I i j $.  $d J i j $.  $d .0. i j $.
    $( An entry of a matrix with a replaced row.  (Contributed by AV,
       12-Feb-2019.) $)
    marrepeval $p |- ( ( ( M e. B /\ S e. ( Base ` R ) )
                       /\ ( K e. N /\ L e. N ) /\ ( I e. N /\ J e. N ) )
                    -> ( I ( K ( M Q S ) L ) J )
                       = if ( I = K , if ( J = L , S , .0. ) , ( I M J ) ) ) $=
      ( wcel co wceq cvv vi vj cbs cfv wa w3a cv cmpt2 marrepval 3adant3 simp3l
      cif simpl3r c0g eqeltri ifexg mpan2 ovexd ifcld adantl 3ad2ant1 adantr wb
      fvex eqeq1 ifbid oveq12 ifbieq12d ovmpt2dv2 mpd ) JBQZEDUCUDZQZUEZHKQIKQU
      EZFKQZGKQZUEZUFZHIJECRRZUAUBKKUAUGZHSZUBUGZISZELULZWAWCJRZULZUHSZFGVTRFHS
      ZGISZELULZFGJRZULZSVNVOWHVRABCDEUAUBHIJKLMNOPUIUJVSUAUBFGKKWGWMVTTVNVOVPV
      QUKVPVQVNVOWAFSZUMVSWGTQZWNWCGSZUEZVNVOWOVRVMWOVKVMWBWEWFTVMLTQWETQLDUNUD
      TPDUNVDUOWDELVLTUPUQVMWAWCJURUSUTVAVBWQWGWMSVSWQWBWIWEWFWKWLWNWBWIVCWPWAF
      HVEVBWPWEWKSWNWPWDWJELWCGIVEVFUTWAFWCGJVGVHUTVIVJ $.
  $}

  ${
    $d B i j $.  $d K i j $.  $d L i j $.  $d M i j $.  $d N i j $.
    $d R i j $.  $d S i j $.
    marrepcl.a $e |- A = ( N Mat R ) $.
    marrepcl.b $e |- B = ( Base ` A ) $.
    $( Closure of the row replacement function for square matrices.
       (Contributed by AV, 13-Feb-2019.) $)
    marrepcl $p |- ( ( ( R e. Ring /\ M e. B /\ S e. ( Base ` R ) )
                       /\ ( K e. N /\ L e. N ) )
                     -> ( K ( M ( N matRRep R ) S ) L ) e. B ) $=
      ( vi vj crg wcel cfv co wceq eqid adantr 3ad2ant1 cbs w3a cmarrep c0g cif
      wa cmpt2 marrepval 3adantl1 cfn cvv matrcl simpld 3ad2ant2 simpl1 ring0cl
      cv simp3 ifcld simp2 eleq2i biimpi matecl syl3anc matbas2d eqeltrd ) CMNZ
      GBNZDCUAOZNZUBZEHNFHNUFZUFZEFGDHCUCPZPPZKLHHKUQZEQZLUQZFQZDCUDOZUEZVPVRGP
      ZUEZUGZBVHVJVLVOWDQVGABVNCDKLEFGHVTIJVNRVTRZUHUIVMKLABWCCVIHMIVIRZJVKHUJN
      ZVLVHVGWGVJVHWGCUKNABCHGIJULUMUNSVGVHVJVLUOVMVPHNZVRHNZUBZVQWAWBVIVMWHWAV
      INZWIVKWKVLVKVSDVTVIVGVHVJURVGVHVTVINVJVICVTWFWEUPTUSSTWJWHWIGAUAOZNZWBVI
      NVMWHWIUTVMWHWIURVMWHWMWIVKWMVLVHVGWMVJVHWMBWLGJVAVBUNSTACVPVRVIGHIWFVCVD
      USVEVF $.
  $}

  ${
    $d B m n r v $.  $d N i j k m n r v $.  $d R i j k m n r v $.
    $d V m n r v $.
    marepvfval.a $e |- A = ( N Mat R ) $.
    marepvfval.b $e |- B = ( Base ` A ) $.
    marepvfval.q $e |- Q = ( N matRepV R ) $.
    marepvfval.v $e |- V = ( ( Base ` R ) ^m N ) $.
    $( First substitution for the definition of the function replacing a column
       of a matrix by a vector.  (Contributed by AV, 14-Feb-2019.)  (Revised by
       AV, 26-Feb-2019.) $)
    marepvfval $p |- Q = ( m e. B , v e. V |-> ( k e. N |->
            ( i e. N , j e. N |-> if ( j = k , ( v ` i ) , ( i m j ) ) ) ) ) $=
      ( co cv cvv wceq cbs vn cmatrepV weq cfv cif cmpt2 cmpt wcel fvex eqeltri
      vr cmap ovex a1i mpt2exga sylancr cmat oveq12 syl6eqr fveq2d fveq2 adantl
      wa simpl oveq12d eqidd mpt2eq123dv mpteq12dv ovmpt2ga mpd3an3 wn mpt2ndm0
      df-marepv c0 mpt20 fveq2i eqtri matbas0pc syl5eq mpt2eq12 sylancl pm2.61i
      eqtr4d ) DJEUBPZIACKHJFGJJGHUCFQZAQUDWEGQIQPUEZUFZUGZUFZNJRUHZERUHZVCZWDW
      ISZWJWKWIRUHZWMWLCRUHKRUHZWNCBTUDZRMBTUIUJWOWLKETUDZJULPZROWQJULUMUJUNIAC
      KWHRRUOUPUAUKJERRIAUAQZUKQZUQPZTUDZWTTUDZWSULPZHWSFGWSWSWFUFZUGZUFZWIUBRW
      SJSZWTESZVCZIAXBXDXFCKWHXJXBWPCXJXABTXJXAJEUQPZBWSJWTEUQURLUSUTMUSXJXDWRK
      XJXCWQWSJULXIXCWQSXHWTETVAVBXHXIVDZVEOUSXJHWSXEJWGXLXJFGWSWSWFJJWFXLXLXJW
      FVFVGVHVGAFGHIUAUKVMZVIVJWLVKZWDIAVNWRWHUFZWIXNWDVNXOUAUKXGUBJERRXMVLIAWR
      WHVOUSXNCVNSKWRSWIXOSXNCXKTUDZVNCWPXPMBXKTLVPVQEJVRVSOIACKVNWRWHVTWAWCWBV
      Q $.

    $d B c $.  $d C c i j k m $.  $d M c i j k m $.  $d N c $.  $d R c $.
    $d V c $.
    $( Second substitution for the definition of the function replacing a
       column of a matrix by a vector.  (Contributed by AV, 14-Feb-2019.)
       (Revised by AV, 26-Feb-2019.) $)
    marepvval0 $p |- ( ( M e. B /\ C e. V )
                       -> ( M Q C ) = ( k e. N |-> ( i e. N , j e. N
                              |-> if ( j = k , ( C ` i ) , ( i M j ) ) ) ) ) $=
      ( vm vc wcel cv wceq weq cfv co cif cmpt2 cvv wa cfn matrcl simpld adantr
      cmpt mptexg syl fveq1 oveq ifeq12d mpt2eq3dv mpteq2dv marepvfval ovmpt2ga
      adantl mpd3an3 ) IBRZCKRZHJFGJJGHUAZFSZCUBZVGGSZIUCZUDZUEZULZUFRZICDUCVMT
      VDVEUGJUHRZVNVDVOVEVDVOEUFRABEJILMUIUJUKHJVLUHUMUNPQICBKHJFGJJVFVGQSZUBZV
      GVIPSZUCZUDZUEZULVMDUFVRITZVPCTZUGZHJWAVLWDFGJJVTVKWDVFVQVHVSVJWCVQVHTWBV
      GVPCUOVBWBVSVJTWCVGVIVRIUPUKUQURUSQABDEFGHPJKLMNOUTVAVC $.

    $d K i j k $.
    $( Third substitution for the definition of the function replacing a column
       of a matrix by a vector.  (Contributed by AV, 14-Feb-2019.)  (Revised by
       AV, 26-Feb-2019.) $)
    marepvval $p |- ( ( M e. B /\ C e. V /\ K e. N )
                      -> ( ( M Q C ) ` K ) = ( i e. N , j e. N
                   |-> if ( j = K , ( C ` i ) , ( i M j ) ) ) ) $=
      ( vk wcel cfv cv wceq w3a co weq cif cmpt2 cmpt marepvval0 3adant3 fveq1d
      cvv simp3 cfn wa matrcl simpld jca 3ad2ant1 mpt2exga syl eqeq2 ifbid eqid
      mpt2eq3dv fvmptg syl2anc eqtrd ) IBQZCKQZHJQZUAZHICDUBZRHPJFGJJGPUCZFSZCR
      ZVMGSZIUBZUDZUEZUFZRZFGJJVOHTZVNVPUDZUEZVJHVKVSVGVHVKVSTVIABCDEFGPIJKLMNO
      UGUHUIVJVIWCUJQZVTWCTVGVHVIUKVJJULQZWEUMZWDVGVHWFVIVGWEWEVGWEEUJQABEJILMU
      NUOZWGUPUQFGJJWBULULURUSPHVRWCJUJVSPSZHTZFGJJVQWBWIVLWAVNVPWHHVOUTVAVCVSV
      BVDVEVF $.

    $d B i j $.  $d I i j $.  $d J i j $.  $d V i j $.
    $( An entry of a matrix with a replaced column.  (Contributed by AV,
       14-Feb-2019.)  (Revised by AV, 26-Feb-2019.) $)
    marepveval $p |- ( ( ( M e. B /\ C e. V /\ K e. N )
                         /\ ( I e. N /\ J e. N ) )
       -> ( I ( ( M Q C ) ` K ) J ) = if ( J = K , ( C ` I ) , ( I M J ) ) ) $=
      ( vi vj wcel co wceq w3a wa cfv cv cif cmpt2 marepvval adantr cvv simplrr
      simprl fvexd ovexd ifcld wb eqeq1 adantl fveq2 oveq12 ifbieq12d ovmpt2dv2
      mpd ) IBRCKRHJRUAZFJRZGJRZUBZUBZHICDSUCZPQJJQUDZHTZPUDZCUCZVKVIISZUEZUFTZ
      FGVHSGHTZFCUCZFGISZUEZTVCVOVFABCDEPQHIJKLMNOUGUHVGPQFGJJVNVSVHUIVCVDVEUKV
      CVDVEVKFTZUJVGVNUIRVTVIGTZUBZVGVJVLVMUIVGVKCULVGVKVIIUMUNUHWBVNVSTVGWBVJV
      PVLVMVQVRWAVJVPUOVTVIGHUPUQVTVLVQTWAVKFCURUHVKFVIGIUSUTUQVAVB $.
  $}

  ${
    $d B i j $.  $d C i j $.  $d K i j $.  $d L i j $.  $d M i j $.
    $d N i j $.  $d R i j $.  $d V i j $.
    marepvcl.a $e |- A = ( N Mat R ) $.
    marepvcl.b $e |- B = ( Base ` A ) $.
    marepvcl.v $e |- V = ( ( Base ` R ) ^m N ) $.
    $( Closure of the column replacement function for square matrices.
       (Contributed by AV, 14-Feb-2019.)  (Revised by AV, 26-Feb-2019.) $)
    marepvcl $p |- ( ( R e. Ring /\ ( M e. B /\ C e. V /\ K e. N ) )
                     -> ( ( M ( N matRepV R ) C ) ` K ) e. B ) $=
      ( vi vj crg wcel w3a co cfv adantl 3ad2ant1 wa cmatrepV cv wceq cif cmpt2
      eqid marepvval cbs cfn cvv matrcl simpld simpl wi cmap elmapi ffvelrn syl
      wf ex eleq2s 3ad2ant2 imp 3adant3 simp2 simp3 eleq2i biimpi syl3anc ifcld
      matecl matbas2d eqeltrd ) DNOZFBOZCHOZEGOZPZUAZEFCGDUBQZQRZLMGGMUCZEUDZLU
      CZCRZWEWCFQZUEZUFZBVSWBWIUDVOABCWADLMEFGHIJWAUGKUHSVTLMABWHDDUIRZGNIWJUGZ
      JVSGUJOZVOVPVQWLVRVPWLDUKOABDGFIJULUMTSVOVSUNVTWEGOZWCGOZPZWDWFWGWJVTWMWF
      WJOZWNVTWMWPVSWMWPUOZVOVQVPWQVRWQCWJGUPQZHCWROGWJCUTZWQCWJGUQWSWMWPGWJWEC
      URVAUSKVBVCSVDVEWOWMWNFAUIRZOZWGWJOVTWMWNVFVTWMWNVGVTWMXAWNVSXAVOVPVQXAVR
      VPXABWTFJVHVITSTADWEWCWJFGIWKVLVJVKVMVN $.

    ma1repvcl.1 $e |- .1. = ( 1r ` A ) $.
    $( Closure of the column replacement function for identity matrices.
       (Contributed by AV, 15-Feb-2019.)  (Revised by AV, 26-Feb-2019.) $)
    ma1repvcl $p |- ( ( ( R e. Ring /\ N e. Fin ) /\ ( C e. V /\ K e. N ) )
                     -> ( ( .1. ( N matRepV R ) C ) ` K ) e. B ) $=
      ( crg wcel cfn wa w3a co cfv cur cmatrepV simpll cmat fveq2i eqtri anim1i
      mat1bas 3anass sylibr marepvcl syl2anc ) DMNZGONZPZCHNZFGNZPZPZULEBNZUOUP
      QZFECGDUARRSBNULUMUQUBURUSUQPUTUNUSUQABDEGIJEATSGDUCRZTSLAVATIUDUEUGUFUSU
      OUPUHUIABCDFEGHIJKUJUK $.

    mulmarep1el.0 $e |- .0. = ( 0g ` R ) $.
    mulmarep1el.e $e |- E = ( ( .1. ( N matRepV R ) C ) ` K ) $.
    $( An entry of an identity matrix with a replaced column.  (Contributed by
       AV, 16-Feb-2019.)  (Revised by AV, 26-Feb-2019.) $)
    ma1repveval $p |- ( ( R e. Ring /\ ( M e. B /\ C e. V /\ K e. N )
                          /\ ( I e. N /\ J e. N ) )
                        -> ( I E J ) = if ( J = K , ( C ` I ) ,
                                       if ( J = I , ( 1r ` R ) , .0. ) ) ) $=
      ( wcel crg w3a wa co wceq cfv cif cur wi cfn cvv matrcl simpld cmat eqtri
      fveq2i mat1bas expcom syl 3ad2ant1 impcom simpr2 simpr3 3jca cmatrepV a1i
      oveqd eqid marepveval eqtrd stoic3 3ad2ant2 simp1 simp3l simp3r mat1ov wb
      eqcom ifbid ifeq2d ) DUATZJBTZCLTZIKTZUBZGKTZHKTZUCZUBZGHFUDZHIUEZGCUFZGH
      EUDZUGZWKWLHGUEZDUHUFZMUGZUGWAWEEBTZWCWDUBZWHWJWNUEWAWEUCWRWCWDWEWAWRWBWC
      WAWRUIZWDWBKUJTZWTWBXADUKTABDKJNOULUMZWAXAWRABDEKNOEAUHUFKDUNUDZUHUFQAXCU
      HNUPUOUQURUSUTVAWAWBWCWDVBWAWBWCWDVCVDWSWHUCZWJGHIECKDVEUDZUDUFZUDWNXDFXF
      GHFXFUEXDSVFVGABCXEDGHIEKLNOXEVHPVIVJVKWIWKWMWQWLWIWMGHUEZWPMUGWQWIADEWPG
      HKMNWPVHRWEWAXAWHWBWCXAWDXBUTVLWAWEWHVMWAWEWFWGVNWAWEWFWGVOQVPWIXGWOWPMXG
      WOVQWIGHVRVFVSVJVTVJ $.

    $( Element by element multiplication of a matrix with an identity matrix
       with a column replaced by a vector.  (Contributed by AV, 16-Feb-2019.)
       (Revised by AV, 26-Feb-2019.) $)
    mulmarep1el $p |- ( ( R e. Ring /\ ( X e. B /\ C e. V /\ K e. N )
                          /\ ( I e. N /\ J e. N /\ L e. N ) )
                        -> ( ( I X L ) ( .r ` R ) ( L E J ) )
                           = if ( J = K , ( ( I X L ) ( .r ` R ) ( C ` L ) ) ,
                                          if ( J = L , ( I X L ) , .0. ) ) ) $=
      ( crg wcel w3a co cmulr cfv wceq cur cif wa simp3 jca ma1repveval syl3an3
      simp2 oveq2d ovif2 a1i cbs simp1 3ad2ant3 eleq2i biimpi 3ad2ant1 3ad2ant2
      eqid matecl syl3anc ringridm syl2anc ringrz ifeq12d syl5eq ifeq2d 3eqtrd
      ) DUAUBZMBUBZCLUBZIKUBZUCZGKUBZHKUBZJKUBZUCZUCZGJMUDZJHFUDZDUEUFZUDWFHIUG
      ZJCUFZHJUGZDUHUFZNUIZUIZWHUDZWIWFWJWHUDZWFWMWHUDZUIZWIWPWKWFNUIZUIWEWGWNW
      FWHWDVPVTWCWBUJWGWNUGWDWCWBWAWBWCUKZWAWBWCUOULABCDEFJHIMKLNOPQRSTUMUNUPWO
      WRUGWEWIWFWJWMWHUQURWEWIWQWSWPWEWQWKWFWLWHUDZWFNWHUDZUIWSWKWFWLNWHUQWEWKX
      AWFXBNWEVPWFDUSUFZUBZXAWFUGVPVTWDUTZWEWAWCMAUSUFZUBZXDWDVPWAVTWAWBWCUTVAW
      DVPWCVTWTVAVTVPXGWDVQVRXGVSVQXGBXFMPVBVCVDVEADGJXCMKOXCVFZVGVHZXCDWHWLWFX
      HWHVFZWLVFVIVJWEVPXDXBNUGXEXIXCDWHWFNXHXJSVKVJVLVMVNVO $.

    $d B l $.  $d C l $.  $d I l $.  $d J l $.  $d K l $.  $d N l $.  $d R l $.
    $d V l $.  $d X l $.  $d .0. l $.
    $( The sum of element by element multiplications of a matrix with an
       identity matrix with a column replaced by a vector.  (Contributed by AV,
       16-Feb-2019.)  (Revised by AV, 26-Feb-2019.) $)
    mulmarep1gsum1 $p |- ( ( R e. Ring /\ ( X e. B /\ C e. V /\ K e. N )
                          /\ ( I e. N /\ J e. N /\ J =/= K ) )
            -> ( R gsum ( l e. N |-> ( ( I X l ) ( .r ` R ) ( l E J ) ) ) )
               = ( I X J ) ) $=
      ( crg wcel w3a wne cv co cmulr cfv cmpt cgsu cif wa simp1 adantr 3ad2ant3
      wceq simp2 simpr mulmarep1el syl113anc mpteq2dva oveq2d wn df-ne iffalsed
      biimpi mpteq2dv cfn cmnd ringmnd 3ad2ant1 matrcl simpld 3ad2ant2 wb eqcom
      cvv ifbi oveq2 adantl ifeq1da eqtrd ax-mp mpteq2i cbs eleq2i eqid syl3anc
      matecl gsummptif1n0 3eqtrd ) DUAUBZLBUBZCKUBZIJUBZUCZGJUBZHJUBZHIUDZUCZUC
      ZDNJGNUEZLUFZXBHFUFDUGUHZUFZUIZUJUFDNJHIUPZXCXBCUHXDUFZHXBUPZXCMUKZUKZUIZ
      UJUFDNJXJUIZUJUFGHLUFZXAXFXLDUJXANJXEXKXAXBJUBZULWLWPWQWRXOXEXKUPXAWLXOWL
      WPWTUMUNXAWPXOWLWPWTUQUNXAWQXOWTWLWQWPWQWRWSUMUOZUNXAWRXOWTWLWRWPWQWRWSUQ
      UOZUNXAXOURABCDEFGHIXBJKLMOPQRSTUSUTVAVBXAXLXMDUJXANJXKXJXAXGXHXJWTWLXGVC
      ZWPWSWQXRWRWSXRHIVDVFUOUOVEVGVBXAXNNXMDJVHHMSWLWPDVIUBWTDVJVKWPWLJVHUBZWT
      WMWNXSWOWMXSDVQUBABDJLOPVLVMVKVNXQNJXJXBHUPZXNMUKZXIXTVOZXJYAUPHXBVPYBXJX
      TXCMUKYAXIXTXCMVRYBXTXCXNMXTXCXNUPYBXBHGLVSVTWAWBWCWDXAWQWRLAWEUHZUBZXNDW
      EUHZUBXPXQWPWLYDWTWMWNYDWOWMYDBYCLPWFVFVKVNADGHYELJOYEWGWIWHWJWK $.

    $d A l $.  $d Z l $.  $d .X. l $.
    mulmarep1gsum2.x $e |- .X. = ( R maVecMul <. N , N >. ) $.
    $( The sum of element by element multiplications of a matrix with an
       identity matrix with a column replaced by a vector.  (Contributed by AV,
       18-Feb-2019.)  (Revised by AV, 26-Feb-2019.) $)
    mulmarep1gsum2 $p |- ( ( R e. Ring /\ ( X e. B /\ C e. V /\ K e. N )
                          /\ ( I e. N /\ J e. N /\ ( X .X. C ) = Z ) )
                -> ( R gsum ( l e. N |-> ( ( I X l ) ( .r ` R ) ( l E J ) ) ) )
                   = if ( J = K , ( Z ` I ) , ( I X J ) ) ) $=
      ( crg wcel w3a co wceq cv cmulr cfv cmpt cgsu wi wa simp1 adantr 3ad2ant3
      cif simpl2 simpl32 simpr 3jca adantll mulmarep1el syl iftrue eqtrd oveq2d
      mpteq2dva fveq1 eqcomd adantl cbs cfn cvv matrcl simpld 3ad2ant1 3ad2ant2
      eqid eleq2i biimpi mavmulfv 3eqtr2d ex wne mulmarep1gsum1 syl113anc df-ne
      cmap wn iffalse sylbi expcom pm2.61ine ) DUDUEZMBUEZCLUEZJKUEZUFZHKUEZIKU
      EZMCEUGZOUHZUFZUFZDPKHPUIZMUGZXHIGUGDUJUKZUGZULZUMUGZIJUHZHOUKZHIMUGZUSZU
      HZUNIJXNXGXRXNXGUOZXMDPKXIXHCUKXJUGZULZUMUGZXOXQXSXLYADUMXSPKXKXTXSXHKUEZ
      UOZXKXNXTIXHUHXINUSZUSZXTYDWQXAXBXCYCUFZUFZXKYFUHXGYCYHXNXGYCUOZWQXAYGXGW
      QYCWQXAXFUPZUQWQXAXFYCUTYIXBXCYCXGXBYCXFWQXBXAXBXCXEUPURZUQXBXCXEWQXAYCVA
      XGYCVBVCVCVDABCDFGHIJXHKLMNQRSTUAUBVEVFXSYFXTUHZYCXNYLXGXNXTYEVGUQUQVHVJV
      IXSXOHXDUKZYBXGXOYMUHZXNXFWQYNXAXEXBYNXCXEYMXOHXDOVKVLURURVMXSADVNUKZDXJE
      PHKUDMCQUCYOWAXJWAXGWQXNYJVMXGKVOUEZXNXAWQYPXFWRWSYPWTWRYPDVPUEABDKMQRVQV
      RVSVTVMXGMAVNUKZUEZXNXAWQYRXFWRWSYRWTWRYRBYQMRWBWCVSVTVMXGCYOKWKUGZUEZXNX
      AWQYTXFWSWRYTWTWSYTLYSCSWBWCVTVTVMXGXBXNYKVMWDVHXNXOXQUHXGXNXQXOXNXOXPVGV
      LUQWEWFXGIJWGZXRXGUUAUOZXMXPXQUUBWQXAXBXCUUAXMXPUHXGWQUUAYJUQWQXAXFUUAUTX
      GXBUUAYKUQXBXCXEWQXAUUAVAXGUUAVBABCDFGHIJKLMNPQRSTUAUBWHWIUUAXPXQUHZXGUUA
      XNWLZUUCIJWJUUDXQXPXNXOXPWMVLWNVMVHWOWP $.
  $}

  ${
    $d I i j $.  $d N i j $.  $d R i j $.  $d X i j $.  $d V i j $.
    $d Z i j $.  $d .1. i j $.
    marepvmarrep1.v $e |- V = ( ( Base ` R ) ^m N ) $.
    marepvmarrep1.o $e |- .1. = ( 1r ` ( N Mat R ) ) $.
    marepvmarrep1.x $e |- X = ( ( .1. ( N matRepV R ) Z ) ` I ) $.
    $( Replacing the ith row by 0's and the ith component of a (column) vector
       at the diagonal position for the identity matrix with the ith column
       replaced by the vector results in the matrix itself.  (Contributed by
       AV, 14-Feb-2019.)  (Revised by AV, 27-Feb-2019.) $)
    1marepvmarrepid $p |- ( ( ( R e. Ring /\ N e. Fin )
                              /\ ( I e. N /\ Z e. V ) )
                            -> ( I ( X ( N matRRep R ) ( Z ` I ) ) I ) = X ) $=
      ( vi vj wcel wa cfv co wceq cif eqid adantr crg cfn cmarrep cv cmpt2 cmat
      c0g cbs cmatrepV ma1repvcl ancom2s syl5eqel wi cmap wf elmapi ffvelrn syl
      ex eleq2s impcom adantl simpl marrepval syl22anc iftrue fveq2 sylan9eq wn
      w3a eqtr4d weq cur simpr 3ad2ant1 simp2 simp3 mat1ov eqtr2 eqcomd iffalse
      con3d eqtrd 3eqtr4rd pm2.61ian mat1bas 3simpc ma1repveval ad2antlr equcom
      3jca wb a1i ifbid eqtr2d ifeq2da 3eqtrd mpt2eq3dva marepvval syl5req ) AU
      AMZDUBMZNZCDMZGEMZNZNZCCFCGOZDAUCPZPPZKLDDKUDZCQZLUDZCQZXHAUGOZRZXKXMFPZR
      ZUEZKLDDXNXKGOZXKXMBPZRZUEZFXGFDAUFPZUHOZMXHAUHOZMZXDXDXJXSQXGFCBGDAUIPZP
      OZYEJXCXEXDYIYEMYDYEGABCDEYDSZYESZHIUJUKULXFYGXCXEXDYGXDYGUMZGYFDUNPZEGYM
      MDYFGUOZYLGYFDUPYNXDYGDYFCGUQUSURHUTVAVBXFXDXCXDXEVCVBZYOYDYEXIAXHKLCCFDX
      OYJYKXISXOSZVDVEXGKLDDXRYBXLXGXKDMZXMDMZVJZXRYBQXLYSNZXRXPYBXLXRXPQYSXLXP
      XQVFTXNYTXPYBQXNYTNXPXHYBXNXPXHQYTXNXHXOVFTXNYTYBXTXHXNXTYAVFXLXTXHQYSXKC
      GVGTVHVKXNVIZYTNZYAXOYBXPUUBYAKLVLZAVMOZXORZXOYTYAUUEQZUUAYSUUFXLYSYDABUU
      DXKXMDXOYJUUDSZYPXGYQXBYRXCXBXFXAXBVNTVOZXGYQXAYRXCXAXFXAXBVCTVOZXGYQYRVP
      ZXGYQYRVQZIVRVBVBUUBUUCVIZUUEXOQYTUUAUULXLUUAUULUMYSXLUUCXNXLUUCXNXLUUCNC
      XMXKCXMVSVTUSWBTVAUUCUUDXOWAURWCUUAYBYAQYTXNXTYAWATUUAXPXOQYTXNXHXOWATWDW
      EWCXLVIZYSNZXRXQXNXTLKVLZUUDXORZRZYBUUMXRXQQYSXLXPXQWATUUNXABYEMZXEXDVJZY
      QYRNZVJZXQUUQQYSUVAUUMYSXAUUSUUTUUIXGYQUUSYRXGUURXEXDXCUURXFYDYEABDYJYKIW
      FTXFXEXCXDXEVNVBYOWKZVOXGYQYRWGWKVBYDYEGABFXKXMCBDEXOYJYKHIYPJWHURUUNXNUU
      PYAXTUUNUUANZYAUUEUUPUVCYDABUUDXKXMDXOYJUUGYPYSXBUUMUUAUUHWIYSXAUUMUUAUUI
      WIYSYQUUMUUAUUJWIYSYRUUMUUAUUKWIIVRUVCUUCUUOUUDXOUUCUUOWLUVCKLWJWMWNWOWPW
      QWEWRXGFYIYCJXGUUSYIYCQUVBYDYEGYHAKLCBDEYJYKYHSHWSURWTWQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Submatrices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c subMat $.

  $( Syntax for submatrices of a square matrix. $)
  csubma $a class subMat $.

  ${
    $d n r m i j k l $.
    $( Define the submatrices of a square matrix.  A submatrix is obtained by
       deleting a row and a column of the original matrix.  Since the indices
       of a matrix need not to be sequential integers, it does not matter that
       there may be gaps in the numbering of the indices for the submatrix.
       The determinants of such submatrices are called the "minors" of the
       original matrix.  (Contributed by AV, 27-Dec-2018.) $)
    df-subma $a |- subMat = ( n e. _V , r e. _V |->
       ( m e. ( Base ` ( n Mat r ) ) |-> ( k e. n , l e. n |->
             ( i e. ( n \ { k } ) , j e. ( n \ { l } ) |-> ( i m j ) ) ) ) ) $.
  $}

  ${
    $d B i j $.  $d D i j $.  $d M i j $.  $d N i j $.  $d R i j $.
    submabas.a $e |- A = ( N Mat R ) $.
    submabas.b $e |- B = ( Base ` A ) $.
    $( Any subset of the index set of a square matrix defines a submatrix of
       the matrix.  (Contributed by AV, 1-Jan-2019.) $)
    submabas $p |- ( ( M e. B /\ D C_ N ) -> ( i e. D , j e. D |-> ( i M j ) )
                                             e. ( Base ` ( D Mat R ) ) ) $=
      ( wcel co cbs cfv cv cvv eqid cfn adantr wi wss wa cmat matrcl ssfi sylan
      simpld simprd w3a ssel adantl imp 3adant3 3adant2 eleq2i 3ad2ant1 syl3anc
      biimpi matecl matbas2d ) GBKZCHUAZUBZEFCDUCLZVDMNZEOZFOZGLZDDMNZCPVDQVIQZ
      VEQVAHRKZVBCRKVAVKDPKZABDHGIJUDZUGHCUEUFVAVLVBVAVKVLVMUHSVCVFCKZVGCKZUIVF
      HKZVGHKZGAMNZKZVHVIKVCVNVPVOVCVNVPVBVNVPTVACHVFUJUKULUMVCVOVQVNVCVOVQVBVO
      VQTVACHVGUJUKULUNVCVNVSVOVAVSVBVAVSBVRGJUOURSUPADVFVGVIGHIVJUSUQUT $.
  $}

  ${
    $d B m n r $.  $d N i j k l m n r $.  $d R i j k l m n r $.
    submafval.a $e |- A = ( N Mat R ) $.
    submafval.q $e |- Q = ( N subMat R ) $.
    submafval.b $e |- B = ( Base ` A ) $.
    $( First substitution for a submatrix.  (Contributed by AV,
       28-Dec-2018.) $)
    submafval $p |- Q = ( m e. B |-> ( k e. N , l e. N
           |-> ( i e. ( N \ { k } ) , j e. ( N \ { l } ) |-> ( i m j ) ) ) ) $=
      ( vn vr co cv cvv wceq cbs csubma csn cdif cmpt2 cmpt wcel wa cmat oveq12
      cfv syl6eqr fveq2d simpl difeq1 eqidd mpt2eq123dv mpteq12dv df-subma fvex
      adantr eqeltri mptex ovmpt2a wn c0 mpt2ndm0 fveq2i eqtri matbas0pc syl5eq
      mpt0 mpteq1d eqtr4d pm2.61i ) CIDUAPZHBGJIIEFIGQUBZUCZIJQUBZUCZEQFQHQPZUD
      ZUDZUEZLIRUFDRUFUGZVOWCSNOIDRRHNQZOQZUHPZTUJZGJWEWEEFWEVPUCZWEVRUCZVTUDZU
      DZUEZWCUAWEISZWFDSZUGZHWHWLBWBWPWHATUJZBWPWGATWPWGIDUHPZAWEIWFDUHUIKUKULM
      UKWPGJWEWEWKIIWAWNWOUMZWSWPEFWIWJVTVQVSVTWNWIVQSWOWEIVPUNUTWNWJVSSWOWEIVR
      UNUTWPVTUOUPUPUQEFGHNOJURZHBWBBWQRMATUSVAVBVCWDVDZVOHVEWBUEZWCXAVOVEXBNOW
      MUAIDRRWTVFHWBVKUKXAHBVEWBXABWRTUJZVEBWQXCMAWRTKVGVHDIVIVJVLVMVNVH $.

    $d M i j k l m $.
    $( Second substitution for a submatrix.  (Contributed by AV,
       28-Dec-2018.) $)
    submaval0 $p |- ( M e. B -> ( Q ` M ) = ( k e. N , l e. N
           |-> ( i e. ( N \ { k } ) , j e. ( N \ { l } ) |-> ( i M j ) ) ) ) $=
      ( vm wcel cv csn cmpt2 cvv cfn cdif co cfv matrcl simpld mpt2exga syl2anc
      wceq oveq mpt2eq3dv submafval fvmptg mpdan ) HBOZGJIIEFIGPQUAZIJPQUAZEPZF
      PZHUBZRZRZSOZHCUCVAUHUNITOZVCVBUNVCDSOABDIHKMUDUEZVDGJIIUTTTUFUGNHGJIIEFU
      OUPUQURNPZUBZRZRVABSCVEHUHZGJIIVGUTVHEFUOUPVFUSUQURVEHUIUJUJABCDEFGNIJKLM
      UKULUM $.

    $d B k l $.  $d K i j k l $.  $d L i j k l $.
    $( Third substitution for a submatrix.  (Contributed by AV,
       28-Dec-2018.) $)
    submaval $p |- ( ( M e. B /\ K e. N /\ L e. N ) -> ( K ( Q ` M ) L )
               = ( i e. ( N \ { K } ) , j e. ( N \ { L } ) |-> ( i M j ) ) ) $=
      ( vk vl wcel cv csn wceq cfn w3a cfv cdif co cmpt2 submaval0 3ad2ant1 cvv
      simp2 simpl3 wa matrcl simpld syl jca adantr mpt2exga sneq difeq2d adantl
      diffi eqidd mpt2eq123dv ovmpt2dv2 mpd ) IBPZGJPZHJPZUAZICUBZNOJJEFJNQZRZU
      CZJOQZRZUCZEQFQIUDZUEZUESZGHVJUDEFJGRZUCZJHRZUCZVQUEZSVFVGVSVHABCDEFNIJOK
      LMUFUGVINOGHJJVRWDVJUHVFVGVHUIVFVGVHVKGSZUJVIWEVNHSZUKZUKVMTPZVPTPZUKZVRU
      HPVIWJWGVFVGWJVHVFWHWIVFJTPZWHVFWKDUHPABDJIKMULUMZJVLVAUNVFWKWIWLJVOVAUNU
      OUGUPEFVMVPVQTTUQUNWGVRWDSVIWGEFVMVPVQWAWCVQWEVMWASWFWEVLVTJVKGURUSUPWFVP
      WCSWEWFVOWBJVNHURUSUTWGVQVBVCUTVDVE $.

    $d B i j $.  $d I i j $.  $d J i j $.
    $( An entry of a submatrix of a square matrix.  (Contributed by AV,
       28-Dec-2018.) $)
    submaeval $p |- ( ( M e. B /\ ( K e. N /\ L e. N ) /\
                        ( I e. ( N \ { K } ) /\ J e. ( N \ { L } ) ) )
                        -> ( I ( K ( Q ` M ) L ) J ) = ( I M J ) ) $=
      ( vi vj wcel wa csn co wceq cdif w3a cfv cmpt2 submaval 3expb 3adant3 cvv
      cv simp3l simpl3r ovexd oveq12 adantl ovmpt2dv2 mpd ) IBPZGJPZHJPZQZEJGRU
      AZPZFJHRUAZPZQZUBZGHICUCSZNOVAVCNUIZOUIZISZUDTZEFVGSEFISZTUQUTVKVEUQURUSV
      KABCDNOGHIJKLMUEUFUGVFNOEFVAVCVJVLVGUHUQUTVBVDUJVBVDUQUTVHETZUKVFVMVIFTQZ
      QVHVIIULVNVJVLTVFVHEVIFIUMUNUOUP $.
  $}

  ${
    $d I i j $.  $d N i j $.  $d R i j $.  $d V i j $.  $d X i j $.
    $d Z i j $.
    1marepvsma1.v $e |- V = ( ( Base ` R ) ^m N ) $.
    1marepvsma1.1 $e |- .1. = ( 1r ` ( N Mat R ) ) $.
    1marepvsma1.x $e |- X = ( ( .1. ( N matRepV R ) Z ) ` I ) $.
    $( The submatrix of the identity matrix with the ith column replaced by the
       vector obtained by removing the ith row and the ith column is an
       identity matrix.  (Contributed by AV, 14-Feb-2019.)  (Revised by AV,
       27-Feb-2019.) $)
    1marepvsma1 $p |- ( ( ( R e. Ring /\ N e. Fin ) /\ ( I e. N /\ Z e. V ) )
      -> ( I ( ( N subMat R ) ` X ) I ) = ( 1r ` ( ( N \ { I } ) Mat R ) ) ) $=
      ( vi vj wcel cfn wa cv co cfv wceq eqid crg csn cdif cmpt2 weq cur csubma
      c0g cif cmat w3a cmatrepV oveqi a1i cbs mat1bas adantr simprr simprl 3jca
      3ad2ant1 anim12i 3adant1 marepveval syl2anc wn eldifsni 3ad2ant3 iffalsed
      eldifi neneqd simp1lr simp1ll 3ad2ant2 mat1ov 3eqtrd mpt2eq3dva ma1repvcl
      eqtrd ancom2s syl5eqel submaval syl3anc diffi anim2i ancomd mat1 3eqtr4d
      syl ) AUAMZDNMZOZCDMZGEMZOZOZKLDCUBZUCZWRKPZLPZFQZUDZKLWRWRKLUEAUFRZAUHRZ
      UIZUDZCCFDAUGQZRQZWRAUJQZUFRZWPKLWRWRXAXEWPWSWRMZWTWRMZUKZXAWSWTCBGDAULQZ
      QRZQZWTCSZWSGRZWSWTBQZUIZXEXAXPSXMFXOWSWTJUMUNXMBDAUJQZUORZMZWNWMUKZWSDMZ
      WTDMZOZXPXTSWPXKYDXLWPYCWNWMWLYCWOYAYBABDYATZYBTZIUPUQWLWMWNURWLWMWNUSZUT
      VAXKXLYGWPXKYEXLYFWSDWQVJZWTDWQVJZVBVCYAYBGXNAWSWTCBDEYHYIXNTHVDVEXMXTXSX
      EXMXQXRXSXLWPXQVFXKXLWTCWTDCVGVKVHVIXMYAABXCWSWTDXDYHXCTZXDTZWJWKWOXKXLVL
      WJWKWOXKXLVMXKWPYEXLYKVNXLWPYFXKYLVHIVOVSVPVQWPFYBMWMWMXHXBSWPFXOYBJWLWNW
      MXOYBMYAYBGABCDEYHYIHIVRVTWAYJYJYAYBXGAKLCCFDYHXGTYIWBWCWPWRNMZWJOZXJXFSW
      LYPWOWLWJYOWKYOWJDWQWDWEWFUQXIAXCKLWRXDXITYMYNWGWIWH $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  The determinant
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c maDet $.

  $( Syntax for the matrix determinant function. $)
  cmdat $a class maDet $.

  ${
    $d n r m p x $.

    $( Determinant of a square matrix.  This definition is based on Leibniz'
       Formula (see ~ mdetleib ).  The properties of the axiomatic definition
       of a determinant according to [Weierstrass] p. 272 are derived from this
       definition as theorems:  "The determinant function is the unique
       multilinear, alternating and normalized function from the algebra of
       square matrices of the same dimension over a commutative ring to this
       ring".  The functionality is shown by ~ mdetf .  Multilineary means
       "linear for each row" - the additivity is shown by ~ mdetrlin , the
       homogeneity by ~ mdetrsca .  Furthermore, it is shown that the
       determinant function is alternating (see ~ mdetralt ) and normalized
       (see ~ mdet1 ).  Finally, the uniqueness is shown by ~ mdetuni .  As a
       consequence, the "determinant of a square matrix" is the function value
       of the determinant function for this square matrix, see ~ mdetleib .
       (Contributed by Stefan O'Rear, 9-Sep-2015.)  (Revised by SO,
       10-Jul-2018.) $)
    df-mdet $a |- maDet = ( n e. _V , r e. _V |-> ( m e. ( Base ` ( n Mat r )
        ) |-> ( r gsum ( p e. ( Base ` ( SymGrp ` n ) ) |-> ( ( ( ( ZRHom `
        r ) o. ( pmSgn ` n ) ) ` p ) ( .r ` r ) ( ( mulGrp ` r ) gsum ( x e.
        n |-> ( ( p ` x ) m x ) ) ) ) ) ) ) ) $.
  $}

  ${
    $d y z $.  $d m n r B $.  $d m p x M $.  $d m n p r x N $.  $d m n r P $.
    $d m n p r x R $.  $d m n r S $.  $d m n r .x. $.  $d m n r U $.
    $d m n r Y $.
    mdetfval.d $e |- D = ( N maDet R ) $.
    mdetfval.a $e |- A = ( N Mat R ) $.
    mdetfval.b $e |- B = ( Base ` A ) $.
    mdetfval.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    mdetfval.y $e |- Y = ( ZRHom ` R ) $.
    mdetfval.s $e |- S = ( pmSgn ` N ) $.
    mdetfval.t $e |- .x. = ( .r ` R ) $.
    mdetfval.u $e |- U = ( mulGrp ` R ) $.
    $( First substitution for the determinant definition.  (Contributed by
       Stefan O'Rear, 9-Sep-2015.)  (Revised by SO, 9-Jul-2018.) $)
    mdetfval $p |- D = ( m e. B |-> ( R gsum ( p e. P |-> ( ( ( Y o. S ) ` p )
        .x. ( U gsum ( x e. N |-> ( ( p ` x ) m x ) ) ) ) ) ) ) $=
      ( vn vr vy vz cmdat co cv ccom cfv cmpt cgsu cvv wcel wceq cmat cbs csymg
      wa czrh cpsgn cmulr oveq12 syl6eqr fveq2d simpr simpl fveq2 adantl adantr
      cmgp coeq12d fveq1d mpteq1d oveq12d oveq123d mpteq12dv df-mdet fvex mptex
      eqeltri ovmpt2a wn reldmmpt2 ovprc mpt0 cfn cxp cfrlm cnx cotp cmmul csts
      c0 cop df-mat syl5eq base0 3eqtr4g eqtr4d pm2.61i eqtri ) DKFUFUGZJCFMEMU
      HZLGUIZUJZIAKAUHZXDUJXGJUHUGZUKZULUGZHUGZUKZULUGZUKZNKUMUNFUMUNUSZXCXNUOU
      BUCKFUMUMJUBUHZUCUHZUPUGZUQUJZXQMXPURUJZUQUJZXDXQUTUJZXPVAUJZUIZUJZXQVKUJ
      ZAXPXHUKZULUGZXQVBUJZUGZUKZULUGZUKZXNUFXPKUOZXQFUOZUSZJXSYLCXMYPXSBUQUJZC
      YPXRBUQYPXRKFUPUGZBXPKXQFUPVCOVDVEPVDYPXQFYKXLULYNYOVFZYPMYAYJEXKYPYAKURU
      JZUQUJEYPXTYTUQYPXPKURYNYOVGZVEVEQVDYPYEXFYHXJYIHYPYIFVBUJZHYOYIUUBUOYNXQ
      FVBVHVITVDYPXDYDXEYPYBLYCGYPYBFUTUJLYPXQFUTYSVERVDYPYCKVAUJZGYNYCUUCUOYOX
      PKVAVHVJSVDVLVMYPYFIYGXIULYPYFFVKUJZIYOYFUUDUOYNXQFVKVHVIUAVDYPAXPKXHUUAV
      NVOVPVQVOVQAJUBUCMVRZJCXMCYQUMPBUQVSWAVTWBXOWCZXCJWNXMUKZXNUUFXCWNUUGKFUF
      UBUCUMUMYMUFUUEWDWEJXMWFVDUUFJCWNXMUUFYQWNUQUJCWNUUFBWNUQUUFBYRWNOKFUPUDU
      EWGUMUEUHZUDUHZUUIWHWIUGWJVBUJUUHUUIUUIUUIWKWLUGWOWMUGUPUDUEWPWDWEWQVEPWR
      WSVNWTXAXB $.

    $( Full substitution of our determinant definition (also known as Leibniz'
       Formula, expanding by columns).  Proposition 4.6 in [Lang] p. 514.
       (Contributed by Stefan O'Rear, 3-Oct-2015.)  (Revised by SO,
       9-Jul-2018.) $)
    mdetleib $p |- ( M e. B -> ( D ` M ) = ( R gsum ( p e. P |-> ( ( ( Y o. S )
        ` p ) .x. ( U gsum ( x e. N |-> ( ( p ` x ) M x ) ) ) ) ) ) ) $=
      ( vm cv ccom cfv cmpt cgsu wceq oveq mpteq2dv oveq2d mdetfval ovex fvmpt
      co ) UBJFMEMUCZLGUDUEZIAKAUCZUPUEZURUBUCZUOZUFZUGUOZHUOZUFZUGUOFMEUQIAKUS
      URJUOZUFZUGUOZHUOZUFZUGUOCDUTJUHZVEVJFUGVKMEVDVIVKVCVHUQHVKVBVGIUGVKAKVAV
      FUSURUTJUIUJUKUKUJUKABCDEFGHIUBKLMNOPQRSTUAULFVJUGUMUN $.

    $d B p q x y $.  $d M q x y $.  $d N p q x y $.  $d P p q x y $.
    $d R p q x y $.  $d S p q $.  $d U p q y $.  $d Y p q $.  $d .x. p q $.
    $( Leibniz' formula can also be expanded by rows.  (Contributed by Stefan
       O'Rear, 9-Jul-2018.)  (Proof shortened by AV, 23-Jul-2019.) $)
    mdetleib2 $p |- ( ( R e. CRing /\ M e. B ) -> ( D ` M ) = ( R gsum
        ( p e. P |-> ( ( ( Y o. S ) ` p ) .x. ( U gsum ( x e. N |->
        ( x M ( p ` x ) ) ) ) ) ) ) ) $=
      ( vq vy ccrg wcel wa cfv cv ccom co cmpt cgsu csymg cminusg wceq mdetleib
      adantl cbs eqid ccmn crg crngring ringcmn syl adantr cfn matrcl symgbasfi
      cvv simpld ad2antrr cmgp cmhm wf czrh coeq12i zrhpsgnmhm syl5eqel syl2anc
      cpsgn mgpbas mhmf ffvelrnda crngmgp cmap simpr matbas2i elmapi symgbasf1o
      cxp 3syl wf1o f1of fovrnd ralrimiva gsummptcl ringcl syl3anc cgrp symggrp
      grpinvf1o gsummptfif1o feqmptd eqidd fveq2 oveq1d mpteq2dv oveq2d oveq12d
      fveq1 fmptco ccnv symginv fveq2d zrhpsgninv eqtrd ad2antlr fveq1d eqeltrd
      f1ocnv syl6eleq id f1ocnvfv1 sylan mpteq2dva 3eqtrd ) FUDUEZJCUEZUFZJDUGZ
      FUBEUBUHZLGUIZUGZIUCKUCUHZYKUGZYNJUJZUKZULUJZHUJZUKZULUJZFYTKUMUGZUNUGZUI
      ZULUJFMEMUHZYLUGZIAKAUHZUUGUUEUGZJUJZUKZULUJZHUJZUKZULUJYHYJUUAUOYGUCBCDE
      FGHIJKLUBNOPQRSTUAUPUQYIFURUGZEUBYTFUUCEYSUUNUSZYGFUTUEZYHYGFVAUEZUUPFVBZ
      FVCVDVEYIKVFUEZEVFUEYIUUSFVIUEZYHUUSUUTUFYGBCFKJOPVGUQVJZKEUUBUUBUSZQVHVD
      YIYSUUNUEZUBEYIYKEUEZUFZUUQYMUUNUEYRUUNUEUVCYGUUQYHUVDUURVKYIEUUNYKYLYIYL
      UUBFVLUGZVMUJZUEZEUUNYLVNYIUUQUUSUVHYGUUQYHUURVEUVAUUQUUSUFYLFVOUGZKVTUGZ
      UIUVGLUVIGUVJRSVPKFVQVRVSEUUNUUBUVFYLQUUNFUVFUVFUSUUOWAWBVDWCUVEUUNUCIKYP
      UUNFIUAUUOWAZYGIUTUEZYHUVDFIUAWDZVKYIUUSUVDUVAVEUVEYPUUNUEUCKUVEYNKUEZUFY
      OYNUUNKKJYIKKWJZUUNJVNZUVDUVNYIYHJUUNUVOWEUJUEUVPYGYHWFBCFUUNJKOUUOPWGJUU
      NUVOWHWKZVKUVEKKYNYKUVEKKYKWLZKKYKVNUVDUVRYIKEYKUUBUVBQWIUQKKYKWMVDWCUVEU
      VNWFWNWOWPUUNFHYMYRUUOTWQWRWOYTUSYIEUUBUUCQUUCUSZYIUUSUUBWSUEUVAKUUBVFUVB
      WTVDXAZXBYIUUDUUMFULYIUUDMEUUEUUCUGZYLUGZIUCKYNUWAUGZYNJUJZUKZULUJZHUJZUK
      UUMYIMUBEEUWAYSUWGUUCYTYIEEUUEUUCYIEEUUCWLEEUUCVNUVTEEUUCWMVDZWCYIMEEUUCU
      WHXCYIYTXDYKUWAUOZYMUWBYRUWFHYKUWAYLXEUWIYQUWEIULUWIUCKYPUWDUWIYOUWCYNJYN
      YKUWAXJXFXGXHXIXKYIMEUWGUULYIUUEEUEZUFZUWBUUFUWFUUKHUWKUWBUUEXLZYLUGZUUFU
      WKUWAUWLYLUWJUWAUWLUOZYIKEUUEUUBUUCUVBQUVSXMZUQXNUWKUUQUUSUWJUWMUUFUOYGUU
      QYHUWJUURVKYIUUSUWJUVAVEZYIUWJWFEFGUUEKLQRSXOWRXPUWKUWFIUWEUUEUIZULUJUUKU
      WKIURUGZKUCUWEIUUEKUWDUWRUSYGUVLYHUWJUVMVKUWPUWKUWDUWRUEUCKUWKUVNUFZUWDUU
      NUWRUWSUWCYNUUNKKJYIUVPUWJUVNUVQVKUWSUWCYNUWLUGKUWSYNUWAUWLUWJUWNYIUVNUWO
      XQXRUWKKKYNUWLUWKKKUUEWLZKKUWLWLKKUWLVNUWJUWTYIKEUUEUUBUVBQWIUQZKKUUEXTKK
      UWLWMWKWCXSUWKUVNWFWNUVKYAWOUWEUSUXAXBUWKUWQUUJIULUWKUWQAKUUHUWAUGZUUHJUJ
      ZUKUUJUWKAUCKKUUHUWDUXCUUEUWEUWKKKUUGUUEUWKUWTKKUUEVNUXAKKUUEWMVDZWCUWKAK
      KUUEUXDXCUWKUWEXDYNUUHUOZUWCUXBYNUUHJYNUUHUWAXEUXEYBXIXKUWKAKUXCUUIUWKUUG
      KUEZUFZUXBUUGUUHJUXGUXBUUHUWLUGZUUGUXGUUHUWAUWLUWJUWNYIUXFUWOXQXRUWKUWTUX
      FUXHUUGUOUXAKKUUGUUEYCYDXPXFYEXPXHXPXIYEXPXHYF $.
  $}

  ${
    $d N m p x $.  $d R m p x $.
    nfimdetndef.d $e |- D = ( N maDet R ) $.
    $( The determinant is not defined for an infinite matrix.  (Contributed by
       AV, 27-Dec-2018.) $)
    nfimdetndef $p |- ( N e/ Fin -> D = (/) ) $=
      ( vm vp vx cfn wnel cmat co cbs cfv cv cmpt cgsu c0 eqid wcel wn mdetfval
      csymg czrh cpsgn ccom cmgp cvv wa wceq df-nel biimpi intnanrd matbas0 syl
      cmulr mpteq1d mpt0 syl6eq syl5eq ) CHIZAECBJKZLMZBFCUBMLMZFNZBUCMZCUDMZUE
      MBUFMZGCGNZVDMVHENKOPKBUOMZKOPKZOZQGVAVBAVCBVFVIVGECVEFDVARVBRVCRVERVFRVI
      RVGRUAUTVKEQVJOQUTEVBQVJUTCHSZBUGSZUHTVBQUIUTVLVMUTVLTCHUJUKULBCUMUNUPEVJ
      UQURUS $.
  $}

  ${
    $d m p B $.  $d m p x N $.  $d m p P $.  $d m p x R $.  $d m S $.
    $d m U $.  $d m Y $.  $d m .x. $.
    mdetfval1.d $e |- D = ( N maDet R ) $.
    mdetfval1.a $e |- A = ( N Mat R ) $.
    mdetfval1.b $e |- B = ( Base ` A ) $.
    mdetfval1.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    mdetfval1.y $e |- Y = ( ZRHom ` R ) $.
    mdetfval1.s $e |- S = ( pmSgn ` N ) $.
    mdetfval1.t $e |- .x. = ( .r ` R ) $.
    mdetfval1.u $e |- U = ( mulGrp ` R ) $.
    $( First substitution of an alternative determinant definition.
       (Contributed by Stefan O'Rear, 9-Sep-2015.)  (Revised by AV,
       27-Dec-2018.) $)
    mdetfval1 $p |- D = ( m e. B |-> ( R gsum ( p e. P |-> ( ( Y ` ( S ` p ) )
        .x. ( U gsum ( x e. N |-> ( ( p ` x ) m x ) ) ) ) ) ) ) $=
      ( cfn wcel cv cfv co cmpt cgsu wceq mdetfval zrhcofipsgn oveq1d mpteq2dva
      ccom wa oveq2d mpteq2dv syl5eq wn wnel df-nel nfimdetndef cmat cbs fveq2i
      c0 eqtri cvv biimpi intnanrd matbas0 mpteq1d syl6eq eqtr4d sylbir pm2.61i
      syl mpt0 ) KUBUCZDJCFMEMUDZGUELUEZIAKAUDZVTUEWBJUDUFUGUHUFZHUFZUGZUHUFZUG
      ZUIZVSDJCFMEVTLGUNUEZWCHUFZUGZUHUFZUGWGABCDEFGHIJKLMNOPQRSTUAUJVSJCWLWFVS
      WKWEFUHVSMEWJWDVSVTEUCUOWIWAWCHEVTFGKLQRSUKULUMUPUQURVSUSZKUBUTZWHKUBVAZW
      NDVFWGDFKNVBWNWGJVFWFUGVFWNJCVFWFWNCKFVCUFZVDUEZVFCBVDUEWQPBWPVDOVEVGWNVS
      FVHUCZUOUSWQVFUIWNVSWRWNWMWOVIVJFKVKVQURVLJWFVRVMVNVOVP $.

    $d m p x M $.
    $( Full substitution of an alternative determinant definition (also known
       as Leibniz' Formula).  (Contributed by Stefan O'Rear, 3-Oct-2015.)
       (Revised by AV, 26-Dec-2018.) $)
    mdetleib1 $p |- ( M e. B -> ( D ` M ) = ( R gsum ( p e. P |-> ( ( Y ` ( S `
        p ) ) .x. ( U gsum ( x e. N |-> ( ( p ` x ) M x ) ) ) ) ) ) ) $=
      ( vm cv cfv co cmpt cgsu wceq oveq mpteq2dv oveq2d mdetfval1 ovex fvmpt )
      UBJFMEMUCZGUDLUDZIAKAUCZUOUDZUQUBUCZUEZUFZUGUEZHUEZUFZUGUEFMEUPIAKURUQJUE
      ZUFZUGUEZHUEZUFZUGUECDUSJUHZVDVIFUGVJMEVCVHVJVBVGUPHVJVAVFIUGVJAKUTVEURUQ
      USJUIUJUKUKUJUKABCDEFGHIUBKLMNOPQRSTUAULFVIUGUMUN $.
  $}

  ${
    $d R m p x $.
    $( The determinant for 0-dimensional matrices is a singleton containing an
       ordered pair with the singleton containing the empty set as first
       component, and the singleton containing the 1 element of the underlying
       ring as second component.  (Contributed by AV, 28-Feb-2019.) $)
    mdet0pr $p |- ( R e. Ring
                    -> ( (/) maDet R ) = { <. (/) , ( 1r ` R ) >. } ) $=
      ( vm vp vx wcel c0 co cbs cfv cv cmpt cgsu csn wceq eqid a1i cvv mpteq2dv
      oveq2d 3eqtrd crg cmdat cmat csymg czrh cpsgn ccom cmulr cur cop mdetfval
      cmgp mat0dimbas0 mpteq1d 0ex ovex oveq fmptsng sylancl c0g mpt0 syl6eq wa
      ringidval eqcomi cfn 0fin zrhcopsgnelbas mp3an2 ringridm syldan mpteq2dva
      gsum0 eqtrd cevpm simpl c1 simpr elsni fveq2 psgn0fv0 syl symgbas0 eleq2s
      adantl wb psgnevpmb mpbir2and zrhpsgnevpm syl3anc ringmnd ringidcl gsumsn
      cmnd eqidd opeq2d sneqd eqtr3d ) AUAEZFAUBGZBFAUCGZHIZACFUDIZHIZCJZAUEIZF
      UFIZUGIZAULIZDFDJZXEIZXJBJZGZKZLGZAUHIZGZKZLGZKZBFMZXSKZFAUIIZUJZMZWTXTNW
      SDXAXBWTXDAXGXPXIBFXFCWTOXAOXBOXDOZXFOZXGOZXPOZXIOZUKPWSBXBYAXSAUAUMUNWSF
      ACXDXHXIDFXKXJFGZKZLGZXPGZKZLGZUJZMZYBYEWSFQEZYPQEYRYBNYSWSUOPZAYOLUPBFXS
      YPQQXLFNZXRYOALUUACXDXQYNUUAXOYMXHXPUUAXNYLXILUUADFXMYKXKXJXLFUQRSSRSURUS
      WSYQYDWSYPYCFWSYPACXDXHXIUTIZXPGZKZLGACXDXHKZLGZYCWSYOUUDALWSCXDYNUUCWSYM
      UUBXHXPWSYMXIFLGUUBWSYLFXILYLFNWSDYKVAPSXIUUBUUBOVMVBSRSWSUUDUUEALWSCXDUU
      CXHWSXEXDEZVCZUUCXHYCXPGZXHUUHUUBYCXHXPUUBYCNUUHYCUUBAYCXIYJYCOZVDVEPSWSU
      UGXHAHIZEZUUIXHNWSFVFEZUUGUULVGXDXEAXGFXFYFYHYGVHVIUUKAXPYCXHUUKOZYIUUJVJ
      VKVNVLSWSUUFACXDYCKZLGACYAYCKZLGZYCWSUUEUUOALWSCXDXHYCUUHWSUUMXEFVOIEZXHY
      CNWSUUGVPUUMUUHVGPZUUHUURUUGXEXGIZVQNZWSUUGVRUUGUVAWSUVAXEYAXDXEYAEXEFNZU
      VAXEFVSUVBUUTFXGIVQXEFXGVTWAVBWBWCWDWEUUHUUMUURUUGUVAVCWFUUSFXDXCXEXGXCOY
      FYHWGWBWHAXGYCXEFXFYGYHUUJWIWJVLSWSUUOUUPALWSCXDYAYCXDYANWSWCPUNSWSAWNEYS
      YCUUKEUUQYCNAWKYTUUKAYCUUNUUJWLYCUUKYCCAFQUUNUVBYCWOWMWJTTWPWQWRT $.

    $( The determinant for 0-dimensional matrices is a one-to-one function from
       the singleton containing the empty set onto the singleton containing the
       1 element of the underlying ring.function x is .  (Contributed by AV,
       28-Feb-2019.) $)
    mdet0f1o $p |- ( R e. Ring
                   -> ( (/) maDet R ) : { (/) } -1-1-onto-> { ( 1r ` R ) } ) $=
      ( crg wcel c0 cmdat co cur cfv cop csn wceq wf1o mdet0pr 0ex f1osn f1oeq1
      fvex mpbiri syl ) ABCDAEFZDAGHZIJZKZDJZUAJZTLZAMUCUFUDUEUBLDUANAGQOUDUETU
      BPRS $.

    $( The determinant of a 0-dimensional matrix is the 1 element of the
       underlying ring .  (Contributed by AV, 28-Feb-2019.) $)
    mdet0fv0 $p |- ( R e. Ring -> ( ( (/) maDet R ) ` (/) ) = ( 1r ` R ) ) $=
      ( crg wcel c0 cmdat cfv cur cop csn mdet0pr fveq1d 0ex fvex fvsn syl6eq
      co ) ABCZDDAEPZFDDAGFZHIZFSQDRTAJKDSLAGMNO $.
  $}

  ${
    $d D p c m $.  $d N p c m $.  $d K c p m $.  $d R c p m $.  $d B c p m $.
    mdetf.d $e |- D = ( N maDet R ) $.
    mdetf.a $e |- A = ( N Mat R ) $.
    mdetf.b $e |- B = ( Base ` A ) $.
    mdetf.k $e |- K = ( Base ` R ) $.
    $( Functionality of the determinant, see also definition in [Lang] p. 513.
       (Contributed by Stefan O'Rear, 9-Jul-2018.)  (Proof shortened by AV,
       23-Jul-2019.) $)
    mdetf $p |- ( R e. CRing -> D : B --> K ) $=
      ( vm vp vc wcel cfv cv co wa syl eqid ccrg csymg cbs czrh cpsgn ccom cmgp
      cmpt cgsu cmulr crg ccmn crngring adantr ringcmn cfn matrcl adantl simpld
      cvv symgbasfi ad2antrr cmhm wf zrhpsgnmhm syl2anc mgpbas mhmf crngmgp cxp
      ffvelrnda matbas2i ad3antlr elmapi symgbasf simpr fovrnd ralrimiva ringcl
      cmap gsummptcl syl3anc mdetfval fmptd ) DUANZKBDLFUBOZUCOZLPZDUDOZFUEOZUF
      ZOZDUGOZMFMPZWHOZWNKPZQZUHUIQZDUJOZQZUHUIQECWEWPBNZRZELDWGWTJXBDUKNZDULNW
      EXCXADUMZUNZDUOSXBFUPNZWGUPNXBXFDUTNZXAXFXGRWEABDFWPHIUQURUSZFWGWFWFTZWGT
      ZVASXBWTENZLWGXBWHWGNZRZXCWLENWRENXKWEXCXAXLXDVBXBWGEWHWKXBWKWFWMVCQNZWGE
      WKVDXBXCXFXNXEXHFDVEVFWGEWFWMWKXJEDWMWMTZJVGZVHSVKXMEMWMFWQXPWEWMULNXAXLD
      WMXOVIVBXBXFXLXHUNXMWQENMFXMWNFNZRZWOWNEFFWPXRWPEFFVJZVTQNZXSEWPVDXAXTWEX
      LXQABDEWPFHJIVLVMWPEXSVNSXMFFWNWHXLFFWHVDXBFWGWHWFXIXJVOURVKXMXQVPVQVRWAE
      DWSWLWRJWSTZVSWBVRWAMABCWGDWJWSWMKFWILGHIXJWITWJTYAXOWCWD $.

    $( The determinant evaluates to an element of the base ring.  (Contributed
       by Stefan O'Rear, 9-Sep-2015.)  (Revised by AV, 7-Feb-2019.) $)
    mdetcl $p |- ( ( R e. CRing /\ M e. B ) -> ( D ` M ) e. K ) $=
      ( ccrg wcel mdetf ffvelrnda ) DLMBEFCABCDEGHIJKNO $.
  $}

  ${
    mdetdiag.d $e |- D = ( N maDet R ) $.
    mdetdiag.a $e |- A = ( N Mat R ) $.
    mdetdiag.b $e |- B = ( Base ` A ) $.
    ${
      $d I b $.  $d I p x $.  $d I y $.  $d M p x $.  $d M y $.  $d N b $.
      $d N p x $.  $d R p x $.  $d R y $.  $d V x $.
      $( The determinant of a 1-dimensional matrix equals its (single) entry.
         (Contributed by AV, 6-Aug-2019.) $)
      m1detdiag $p |- ( ( R e. CRing /\ ( N = { I } /\ I e. V ) /\ M e. B )
                       -> ( D ` M ) = ( I M I ) ) $=
        ( vx wcel wceq cfv co cgsu eqid syl cvv vp vy vb ccrg csn w3a csymg cbs
        wa czrh cpsgn ccom cmgp cmulr cop mdetleib 3ad2ant3 fveq2 fveq2d adantr
        cv cmpt 3ad2ant2 simp2r symg1bas eqtrd mpteq1d snex ovex fveq1 mpteq2dv
        a1i oveq1d oveq2d oveq12d fmptsng eqcomd sylancl cur c1 wfn cid cdm cfn
        cdif crab psgnfn c0 adantl rabeq difeq1 dmeqd eleq1d rabsnif restidsing
        cif cres cxp xpsng anidms syl5req wb fnsng fnnfpeq0 mpbird 0fin iftrued
        syl6eqel 3eqtrrd fneq2d mpbiri fvco2 fveq1d snidg eleqtrrd ancli psgnsn
        snid mp1i crg crngring 3ad2ant1 zrh1 3eqtrd simp2l ringmgp eleq2 eleq2i
        biimpi simpl simpr syl2an 3adant1 matecl mgpbas syl2anc gsumsn syl3anc
        cmnd 3jca syl6eleq eqvisset fvsng ringlidm opeq2d sneqd eqidd ringmnd
        id ) DUDMZGEUEZNZEHMZUIZFBMZUFZFCOZDUAGUGOZUHOZUAVAZDUJOZGUKOZULZOZDUMO
        ZLGLVAZUUTOZUVFFPZVBZQPZDUNOZPZVBZQPZDUBEEUOZUEZUEZEEFPZVBZQPZUVRUUOUUJ
        UUQUVNNUUNLABCUUSDUVBUVKUVEFGUVAUAIJKUUSRZUVARZUVBRZUVKRZUVERZUPUQUUPUV
        MUVSDQUUPUVMUAUVQUVLVBZUVPUVPUVCOZUVELGUVFUVPOZUVFFPZVBZQPZUVKPZUOZUEZU
        VSUUPUAUUSUVQUVLUUPUUSUUKUGOZUHOZUVQUUNUUJUUSUWPNZUUOUULUWQUUMUULUURUWO
        UHGUUKUGURUSUTZVCUUPUUMUWPUVQNZUUJUULUUMUUOVDZUUKUWPUWOEHUWORZUWPRZUUKR
        ZVEZSVFVGUUPUVPTMZUWLTMZUWFUWNNUXEUUPUVOVHZVLZUWGUWKUVKVIUXEUXFUIUWNUWF
        UAUVPUVLUWLTTUUTUVPNZUVDUWGUVJUWKUVKUUTUVPUVCURUXIUVIUWJUVEQUXILGUVHUWI
        UXIUVGUWHUVFFUVFUUTUVPVJVMVKVNVOVPVQVRUUPUWNUVPUVRUOZUEZUVSUUPUWMUXJUUP
        UWLUVRUVPUUPUWLDVSOZUVRUVKPZUVRUUPUWGUXLUWKUVRUVKUUPUWGUVPUVBOZUVAOZVTU
        VAOZUXLUUPUVBUVQWAZUVPUVQMZUWGUXONUUPUXQUVBUCVAZWBWEZWCZWDMZUCUUSWFZWAU
        USGUYCUURUVBUCUURRUWAUYCRUWCWGUUPUVQUYCUVBUUPUYCUYBUCUVQWFZUVPWBWEZWCZW
        DMZUVQWHWPZUVQUUPUUSUVQNZUYCUYDNUUNUUJUYIUUOUUNUUSUWPUVQUWRUUMUWSUULUXD
        WIVFVCUYBUCUUSUVQWJSUYDUYHNUUPUYBUYGUCUVPUXSUVPNZUYAUYFWDUYJUXTUYEUXSUV
        PWBWKWLWMWNVLUUPUYGUVQWHUUNUUJUYGUUOUUMUYGUULUUMUYFWHWDUUMUYFWHNZUVPWBU
        UKWQZNZUUMUYLUUKUUKWRZUVPEWOUUMUYNUVPNEEHHWSWTXAUUMUVPUUKWAZUYKUYMXBUUM
        UYOEEHHXCWTUUKUVPXDSXEXFXHWIVCXGXIXJXKUVPUXGXRUVQUVAUVBUVPXLVRUUPUXNVTU
        VAUUPUXNUVPUUKUKOZOZVTUUPUVPUVBUYPUUNUUJUVBUYPNZUUOUULUYRUUMGUUKUKURUTV
        CXMUUPUUMUVPUWPMZUIZUYQVTNUUNUUJUYTUUOUUMUYTUULUUMUYSUUMUVPUVQUWPUXEUXR
        UUMUXGUVPTXNXSUXDXOXPWIVCEUWPUUKUWOUYPHUVPUXCUXAUXBUYPRXQSVFUSUUPDXTMZU
        XPUXLNUUJUUNVUAUUODYAZYBZDUXLUVAUWBUXLRZYCSYDUUPUWKUVELUUKUWIVBZQPZUVRU
        UPUWJVUEUVEQUUPLGUUKUWIUUJUULUUMUUOYEVGVNUUPUVEYSMZUUMUVRUVEUHOZMVUFUVR
        NUUJUUNVUGUUOUUJVUAVUGVUBDUVEUWEYFSYBUWTUUPUVRDUHOZVUHUUPEGMZVUJFAUHOZM
        ZUFZUVRVUIMZUUNUUOVUMUUJUUNVUJVULVUMUUOUUNVUJEUUKMZUUMVUOUULEHXNWIUULVU
        JVUOXBUUMGUUKEYGUTXEZUUOVULBVUKFKYHYIZVUJVULUIVUJVUJVULVUJVULYJZVURVUJV
        ULYKYTYLYMADEEVUIFGJVUIRZYNZSVUIDUVEUWEVUSYOUUAUWIVUHUVRLUVEEHVUHRUVFEN
        ZUWHEUVFEFVVAUWHEUVPOZEUVFEUVPURVVAETMZVVCVVBENLEUUBZVVDEETTUUCYPVFVVAU
        UIVOYQYRVFVOUUPVUAVUNUXMUVRNVUCUUPVUJVUJVULVUNUUNUUJVUJUUOVUPVCZVVEUUOU
        UJVULUUNVUQUQVUTYRZVUIDUVKUXLUVRVUSUWDVUDUUDYPVFUUEUUFUUPUXEUVRTMUXKUVS
        NUXHEEFVIUBUVPUVRUVRTTUBVAUVPNUVRUUGZVPVRVFYDVNUUPDYSMZUXEVUNUVTUVRNUUJ
        UUNVVHUUOUUJVUAVVHVUBDUUHSYBUXHVVFUVRVUIUVRUBDUVPTVUSVVGYQYRYD $.
    $}

    mdetdiag.g $e |- G = ( mulGrp ` R ) $.
    mdetdiag.0 $e |- .0. = ( 0g ` R ) $.
    ${
      $d B k s $.  $d G k s $.  $d H k s $.  $d M i j k s $.  $d N i j k s $.
      $d P i j k s $.  $d R k s $.  $d .0. i j k s $.
      mdetdiaglem.g $e |- H = ( Base ` ( SymGrp ` N ) ) $.
      mdetdiaglem.z $e |- Z = ( ZRHom ` R ) $.
      mdetdiaglem.s $e |- S = ( pmSgn ` N ) $.
      mdetdiaglem.t $e |- .x. = ( .r ` R ) $.
      $( Lemma for ~ mdetdiag .  Previously part of proof for ~ mdet1 .
         (Contributed by SO, 10-Jul-2018.)  (Revised by AV, 17-Aug-2019.) $)
      mdetdiaglem $p |- ( ( ( R e. CRing /\ N e. Fin /\ M e. B )
                          /\ A. i e. N A. j e. N ( i =/= j -> ( i M j ) = .0. )
                          /\ ( P e. H /\ P =/= ( _I |` N ) ) )
              -> ( ( ( Z o. S ) ` P )
                   .x. ( G gsum ( k e. N |-> ( ( P ` k ) M k ) ) ) ) = .0. ) $=
        ( vs ccrg wcel cfn w3a cv wne co wceq wi wral cid cres wa ccom cfv cmpt
        cgsu czrh cpsgn a1i coeq12d fveq1d cdif cdm c0 wb wf1o csymg symgbasf1o
        wfn eqid f1ofn syl fnnfpeq0 adantl bicomd necon3bid wex n0 csn mgpplusg
        cmulr cbs ccmn crngmgp 3ad2ant1 ad2antrr simpll2 cmap matbas2i 3ad2ant3
        cxp wf elmapi mgpbas eqcomi feq3d ad3antrrr symgbasf ad2antrl ffvelrnda
        mpbird simpr fovrnd cin disjdif cun wss difss dmss ax-mp syl5sseq sseld
        fdm impr snssd undif sylib eqcomd gsummptfidmsplit cmnd crngring adantr
        cvv crg ringmgp 3adant3 ffvelrnd oveq12d syl2anc eqeq1d imbi12d eqtrd
        weq vex fveq2 id gsumsn syl3anc simprr fnelnfp mpbid neeq1 oveq1 rspc2v
        neeq2 oveq2 impancom imp oveq1d simpl2 ssfi sylancl ralrimiva gsummptcl
        eldifi ad2ant2r ringlz 3eqtrd expr exlimdv syl5bi sylbid expimpd 3impia
        mpd 3simpa simpl cmgp cmhm zrhpsgnmhm sylan mhmf ringrz syl2an 3adant2
        ) EUGUHZNUIUHZMBUHZUJZHUKZIUKZULZUWGUWHMUMZOUNZUOZINUPHNUPZDLUHZDUQNURZ
        ULZUSZUJZDPFUTZVAZKJNJUKZDVAZUXAMUMZVBVCUMZGUMDEVDVAZNVEVAZUTZVAZOGUMZO
        UWRUWTUXHUXDOGUWRDUWSUXGUWRPUXEFUXFPUXEUNUWRUCVFFUXFUNUWRUDVFVGVHUWFUWM
        UWQUXDOUNZUWFUWMUSZUWNUWPUXJUXKUWNUSZUWPDUQVIZVJZVKULZUXJUXLDUWOUXNVKUX
        LUXNVKUNZDUWOUNZUWNUXPUXQVLZUXKUWNDNVPZUXRUWNNNDVMUXSNLDNVNVAZUXTVQZUBV
        ONNDVRVSZNDVTVSWAWBWCUXOUFUKZUXNUHZUFWDUXLUXJUFUXNWEUXLUYDUXJUFUXKUWNUY
        DUXJUXKUWNUYDUSZUSZUXDKJUYCWFZUXCVBVCUMZKJNUYGVIZUXCVBVCUMZEWHVAZUMOUYJ
        UYKUMZOUYFNKWIVAZUYGUYIUYKJKUXCUYMVQEUYKKTUYKVQZWGUWFKWJUHZUWMUYEUWCUWD
        UYOUWEEKTWKWLZWMUWCUWDUWEUWMUYEWNUYFUXANUHZUSUXBUXAUYMNNMUWFNNWRZUYMMWS
        ZUWMUYEUYQUWFUYSUYREWIVAZMWSZUWFMUYTUYRWOUMUHZVUAUWEUWCVUBUWDABEUYTMNRU
        YTVQZSWPWQMUYTUYRWTVSZUWFUYMUYTMUYRUYMUYTUNUWFUYTUYMUYTEKTVUCXAZXBVFXCX
        HXDUYFNNUXADUWNNNDWSZUXKUYDNLDUXTUYAUBXEZXFZXGUYFUYQXIXJUYGUYIXKVKUNUYF
        UYGNXLVFUYFUYGUYIXMZNUYFUYGNXNVUINUNUYFUYCNUXKUWNUYDUYCNUHZUXLUXNNUYCUX
        LDVJZUXNNUXMDXNUXNVUKXNDUQXOUXMDXPXQZUXLVUFVUKNUNZUWNVUFUXKVUGWANNDXTZV
        SXRXSYAZYBUYGNYCYDYEYFUYFUYHOUYJUYKUYFUYHUYCDVAZUYCMUMZOUYFKYGUHZUYCYJU
        HZVUQUYTUHUYHVUQUNUWFVURUWMUYEUWCUWDVURUWEUWCUWDUSZEYKUHZVURUWCVVAUWDEY
        HZYIEKTYLVSYMWMVUSUYFUFUUAVFUYFVUPUYCUYTNNMUWFVUAUWMUYEVUDWMUYFNNUYCDVU
        HVUOYNVUOXJUXCUYTVUQJKUYCYJVUEJUFYTZUXBVUPUXAUYCMUXAUYCDUUBVVCUUCYOUUDU
        UEUYFVUPUYCULZVUQOUNZUYFUYDVVDUXKUWNUYDUUFUYFUXSVUJUYDVVDVLUWNUXSUXKUYD
        UYBXFVUONDUYCUUGYPUUHUXKUYEVVDVVEUOZUWFUYEUWMVVFUWFUYEUSZVUPNUHVUJUWMVV
        FUOVVGNNUYCDUWNVUFUWFUYDVUGXFUWFUWNUYDVUJUWFUWNUSZUXNNUYCVVHVUKUXNNVULV
        VHVUFVUMUWNVUFUWFVUGWAZVUNVSXRXSYAZYNVVJUWLVVFVUPUWHULZVUPUWHMUMZOUNZUO
        HIVUPUYCNNUWGVUPUNZUWIVVKUWKVVMUWGVUPUWHUUIVVNUWJVVLOUWGVUPUWHMUUJYQYRI
        UFYTZVVKVVDVVMVVEUWHUYCVUPUULVVOVVLVUQOUWHUYCVUPMUUMYQYRUUKYPUUNUUOUVLY
        SUUPUYFVVAUYJUYTUHZUYLOUNUWFVVAUWMUYEUWCUWDVVAUWEVVBWLWMUWFUWNVVPUWMUYD
        VVHUYTJKUYIUXCVUEUWFUYOUWNUYPYIVVHUWDUYINXNUYIUIUHUWCUWDUWEUWNUUQNUYGXO
        NUYIUURUUSVVHUXCUYTUHJUYIVVHUXAUYIUHZUSZUXBUXAUYTNNMUWFVUAUWNVVQVUDWMVV
        RNNUXADVVHVUFVVQVVIYIVVQUYQVVHUXANUYGUVBWAZYNVVSXJUUTUVAUVCUYTEUYKUYJOV
        UCUYNUAUVDYPUVEUVFUVGUVHUVIUVJUVKYOUWFUWQUXIOUNZUWMUWFVUTUWNVVTUWQUWCUW
        DUWEUVMUWNUWPUVNVUTUWNUSVVAUXHEUVOVAZWIVAZUHVVTUWCVVAUWDUWNVVBWMVUTLVWB
        DUXGVUTUXGUXTVWAUVPUMUHZLVWBUXGWSUWCVVAUWDVWCVVBNEUVQUVRLVWBUXTVWAUXGUB
        VWBVQUVSVSXGVWBEGUXHOUYTVWBUYTEVWAVWAVQVUCXAXBUEUAUVTYPUWAUWBYS $.
    $}

    $d B k p $.  $d G k p $.  $d M i j k p $.  $d N i j k p $.  $d R k p $.
    $d .0. i j k p $.
    $( The determinant of a diagonal matrix is the product of the entries in
       the diagonal.  (Contributed by AV, 17-Aug-2019.) $)
    mdetdiag $p |- ( ( R e. CRing /\ N e. Fin /\ M e. B )
                 -> ( A. i e. N A. j e. N ( i =/= j -> ( i M j ) = .0. )
                      -> ( D ` M ) = ( G gsum ( k e. N |-> ( k M k ) ) ) ) ) $=
      ( wcel co wceq cfv vp ccrg cfn w3a cv wne wi wral cmpt cgsu wa csymg czrh
      cbs cpsgn ccom cmulr cid cres cif simpl3 eqid mdetleib syl ad2antrr simpr
      simpl1 madetsumid syl3anc iftrue eqcomd adantl wn simplll biimpri anim12i
      eqtrd df-ne mdetdiaglem iffalse pm2.61dan mpteq2dva cvv cmnd crg crngring
      oveq2d ringmnd 3ad2ant1 adantr fvexd symgid 3ad2ant2 cgrp symggrp grpidcl
      c0g eqeltrd mgpbas crngmgp simpl2 eleq2i biimpi 3ad2ant3 matecl ralrimiva
      ccmn gsummptcl gsummptif1n0 3eqtrd ex ) DUBQZJUCQZIBQZUDZEUEZFUEZUFXPXQIR
      KSUGFJUHEJUHZICTZHGJGUEZXTIRZUIUJRZSXOXRUKZXSDUAJULTZUNTZUAUEZDUMTZJUOTZU
      PTHGJXTYFTXTIRUIUJRDUQTZRZUIZUJRZDUAYEYFURJUSZSZYBKUTZUIZUJRYBYCXNXSYLSXL
      XMXNXRVAZGABCYEDYHYIHIJYGUALMNYEVBZYGVBZYHVBZYIVBZOVCVDYCYKYPDUJYCUAYEYJY
      OYCYFYEQZUKZYNYJYOSUUCYNUKZYJYBYOUUDXLXNYNYJYBSYCXLUUBYNXLXMXNXRVGVEYCXNU
      UBYNYQVEUUCYNVFABYFDYHYIHIJYGGMNOYSYTUUAVHVIYNYBYOSUUCYNYOYBYNYBKVJVKVLVQ
      UUCYNVMZUKZYJKYOUUFXOXRUUBYFYMUFZUKYJKSXOXRUUBUUEVNYCXRUUBUUEXOXRVFVEUUCU
      UBUUEUUGYCUUBVFUUGUUEYFYMVRVOVPABCYFDYHYIEFGHYEIJKYGLMNOPYRYSYTUUAVSVIUUF
      YOKUUEYOKSUUCYNYBKVTVLVKVQWAWBWGYCYBUAYPDYEWCYMKPXODWDQZXRXLXMUUHXNXLDWEQ
      UUHDWFDWHVDWIWJYCYDUNWKXOYMYEQXRXOYMYDWQTZYEXMXLYMUUISXNJYDUCYDVBZWLWMXOY
      DWNQZUUIYEQXMXLUUKXNJYDUCUUJWOWMYEYDUUIYRUUIVBWPVDWRWJYPVBYCDUNTZGHJYAUUL
      DHOUULVBZWSXOHXGQZXRXLXMUUNXNDHOWTWIWJXLXMXNXRXAYCYAUULQZGJYCXTJQZUKUUPUU
      PIAUNTZQZUUOYCUUPVFZUUSXOUURXRUUPXNXLUURXMXNUURBUUQINXBXCXDVEADXTXTUULIJM
      UUMXEVIXFXHXIXJXK $.

    $d B i j $.  $d C i j k $.  $d R i j $.  $d X i j k $.
    mdetdiagid.c $e |- C = ( Base ` R ) $.
    mdetdiagid.t $e |- .x. = ( .g ` G ) $.
    $( The determinant of a diagonal matrix with identical entries is the power
       of the entry in the diagonal.  (Contributed by AV, 17-Aug-2019.) $)
    mdetdiagid $p |- ( ( ( R e. CRing /\ N e. Fin ) /\ ( M e. B /\ X e. C ) )
                   -> ( A. i e. N A. j e. N ( i M j ) = if ( i = j , X , .0. )
                            -> ( D ` M ) = ( ( # ` N ) .x. X ) ) ) $=
      ( vk ccrg wcel cfn wa cv co weq cif wceq wral cfv chash cmpt cgsu w3a wne
      wi simpl adantr simpr adantl ifnefalse sylan9eqr exp31 com23 ralimdva imp
      3jca mdetdiag sylc oveq1 equequ1 ifbid eqeq12d oveq2 equequ2 rspc2v equid
      anidms iftruei syl6eq an32s mpteq2dva oveq2d cmnd ccmn crngmgp cmnmnd syl
      id mgpbas gsumconst syl3anc 3eqtrd ex ) EUBUCZKUDUCZUEZJBUCZLCUCZUEZUEZGU
      FZHUFZJUGZGHUHZLMUIZUJZHKUKZGKUKZJDULZKUMULLFUGZUJXCXKUEZXLIUAKUAUFZXOJUG
      ZUNZUOUGZIUAKLUNZUOUGZXMXNWQWRWTUPZXDXEUQZXFMUJZURZHKUKZGKUKZXLXRUJXCYAXK
      XCWQWRWTWSWQXBWQWRUSUTWSWRXBWQWRVAUTZXBWTWSWTXAUSVBVIUTXCXKYFXCXJYEGKXCXD
      KUCUEZXIYDHKYHXEKUCUEZYBXIYCYIYBXIYCXIYIYBUEXFXHMXIWKYBXHMUJYIXDXELMVCVBV
      DVEVFVGVGVHABDEGHUAIJKMNOPQRVJVKXNXQXSIUOXNUAKXPLXCXOKUCZXKXPLUJXCYJUEZXK
      UEXPUAUAUHZLMUIZLYKXKXPYMUJZYJXKYNURZXCYJYOXIYNXOXEJUGZUAHUHZLMUIZUJGHXOX
      OKKGUAUHZXFYPXHYRXDXOXEJVLYSXGYQLMGUAHVMVNVOHUAUHZYPXPYRYMXEXOXOJVPYTYQYL
      LMHUAUAVQVNVOVRVTVBVHYLLMUAVSWAWBWCWDWEXCXTXMUJZXKXCIWFUCZWRXAUUAWSUUBXBW
      QUUBWRWQIWGUCUUBEIQWHIWIWJUTUTYGXBXAWSWTXAVAVBKCFUAILCEIQSWLTWMWNUTWOWP
      $.
  $}

  ${
    $d A i j $.  $d N i j $.  $d I i j $.  $d R i j $.  $d .1. i j $.
    mdet1.d $e |- D = ( N maDet R ) $.
    mdet1.a $e |- A = ( N Mat R ) $.
    mdet1.n $e |- I = ( 1r ` A ) $.
    mdet1.o $e |- .1. = ( 1r ` R ) $.
    $( The determinant of the identity matrix is 1, i.e. the determinant
       function is normalized, see also definition in [Lang] p. 513.
       (Contributed by SO, 10-Jul-2018.)  (Proof shortened by AV,
       25-Nov-2019.) $)
    mdet1 $p |- ( ( R e. CRing /\ N e. Fin ) -> ( D ` I ) = .1. ) $=
      ( vi vj wcel wa cfv co cbs wceq eqid adantr ccrg cfn chash cmg cv weq c0g
      cmgp cif wral crg crngring anim1i ancomd matring ringidcl 3syl syl simplr
      id jca32 simprl simprr mat1ov ralrimivva mdetdiagid sylc csrg cn0 ringsrg
      hashcl srg1expzeq1 syl2an eqtrd ) CUAMZFUBMZNZEBOZFUCOZDCUHOZUDOZPZDVQVQE
      AQOZMZDCQOZMZNNKUEZLUEZEPKLUFDCUGOZUIRZLFUJKFUJVRWBRVQVQWDWFVQUTVQVPCUKMZ
      NAUKMWDVQWKVPVOWKVPCULZUMUNACFHUOWCAEWCSZIUPUQVOWFVPVOWKWFWLWECDWESZJUPUR
      TVAVQWJKLFFVQWGFMZWHFMZNZNACEDWGWHFWIHJWISZVOVPWQUSVQWKWQVOWKVPWLTTVQWOWP
      VBVQWOWPVCIVDVEAWCWEBCWAKLVTEFDWIGHWMVTSZWRWNWASZVFVGVOCVHMZVSVIMWBDRVPVO
      WKXAWLCVJURFVKCWADVTVSWSWTJVLVMVN $.
  $}

  ${
    $d B p r $.  $d I r $.  $d N p r $.  $d R p r $.  $d X p r $.  $d Y p r $.
    $d Z p r $.  $d ph p r $.  $d .+ p r $.
    mdetrlin.d $e |- D = ( N maDet R ) $.
    mdetrlin.a $e |- A = ( N Mat R ) $.
    mdetrlin.b $e |- B = ( Base ` A ) $.
    mdetrlin.p $e |- .+ = ( +g ` R ) $.
    mdetrlin.r $e |- ( ph -> R e. CRing ) $.
    mdetrlin.x $e |- ( ph -> X e. B ) $.
    mdetrlin.y $e |- ( ph -> Y e. B ) $.
    mdetrlin.z $e |- ( ph -> Z e. B ) $.
    mdetrlin.i $e |- ( ph -> I e. N ) $.
    mdetrlin.eq $e |- ( ph -> ( X |` ( { I } X. N ) ) =
        ( ( Y |` ( { I } X. N ) ) oF .+ ( Z |` ( { I } X. N ) ) ) ) $.
    mdetrlin.ne1 $e |- ( ph -> ( X |` ( ( N \ { I } ) X. N ) ) =
        ( Y |` ( ( N \ { I } ) X. N ) ) ) $.
    mdetrlin.ne2 $e |- ( ph -> ( X |` ( ( N \ { I } ) X. N ) ) =
        ( Z |` ( ( N \ { I } ) X. N ) ) ) $.
    $( The determinant function is additive for each row:  The matrices X, Y, Z
       are identical except for the I's row, and the I's row of the matrix X is
       the componentwise sum of the I's row of the matrices Y and Z. In this
       case the determinant of X is the sum of the determinants of Y and Z.
       (Contributed by SO, 9-Jul-2018.)  (Proof shortened by AV,
       23-Jul-2019.) $)
    mdetrlin $p |- ( ph -> ( D ` X ) = ( ( D ` Y ) .+ ( D ` Z ) ) ) $=
      ( vp vr csymg cfv cbs cv czrh cpsgn ccom cmgp co cmpt cgsu cmulr cof wcel
      cvv wfn wceq fvex ovex eqid fnmpti ofmpteq mp3an wa crg ccrg crngring syl
      adantr cmhm wf cfn matrcl simpld zrhpsgnmhm syl2anc mgpbas mhmf ffvelrnda
      ccmn crngmgp cxp cmap matbas2i elmapi 3syl ad2antrr simpr symgbasf adantl
      fovrnd ralrimiva gsummptcl ringdi syl13anc csn cdif cmnmnd ffvelrnd fveq2
      cmnd oveq12d gsumsn syl3anc eqeltrd wss difssd ssfi eldifi sylan2 ringdir
      id mgpplusg cin disjdif a1i cun snssd undif gsummptfidmsplit cres fssresd
      c0 oveqd ffn df-ov eqtrd ovres 3eqtr3rd mpteq2dva oveq2d eqtr3d mdetleib2
      3eqtr4d ringcl sylib eqcomd cop xpss1 xpexg sylancr snidg opelxp sylanbrc
      fnfvof syl22anc oveq12i 3eqtr4g 3eqtr3d oveq1d 3eqtr4rd ringcmn symgbasfi
      snex syl5eq gsummptfidmadd2 ) AFUDHUFUGZUHUGZUDUIZFUJUGZHUKUGZULZUGZFUMUG
      ZUEHUEUIZUVJUVDUGZIUNZUOUPUNZFUQUGZUNZUOZUPUNZFUDUVCUVHUVIUEHUVJUVKJUNZUO
      UPUNZUVNUNZUOZUPUNZFUDUVCUVHUVIUEHUVJUVKKUNZUOUPUNZUVNUNZUOZUPUNZEUNZIDUG
      ZJDUGZKDUGZEUNAFUWAUWFEURZUNZUPUNUVQUWHAUWMUVPFUPAUWMUDUVCUVTUWEEUNZUOZUV
      PUVCUTUSUWAUVCVAUWFUVCVAUWMUWOVBUVBUHVCUDUVCUVTUWAUVHUVSUVNVDUWAVEZVFUDUV
      CUWEUWFUVHUWDUVNVDUWFVEZVFUDUVCUVTUWEEUTVGVHAUDUVCUWNUVOAUVDUVCUSZVIZUVHU
      VSUWDEUNZUVNUNZUWNUVOUWSFVJUSZUVHFUHUGZUSZUVSUXCUSZUWDUXCUSZUXAUWNVBAUXBU
      WRAFVKUSZUXBPFVLZVMZVNZAUVCUXCUVDUVGAUVGUVBUVIVOUNUSZUVCUXCUVGVPAUXBHVQUS
      ZUXKUXIAUXLFUTUSZAJCUSZUXLUXMVIRBCFHJMNVRVMVSZHFVTWAUVCUXCUVBUVIUVGUVCVEZ
      UXCFUVIUVIVEZUXCVEZWBZWCVMWDZUWSUXCUEUVIHUVRUXSAUVIWEUSZUWRAUXGUYAPFUVIUX
      QWFVMVNZAUXLUWRUXOVNZUWSUVRUXCUSUEHUWSUVJHUSZVIZUVJUVKUXCHHJAHHWGZUXCJVPZ
      UWRUYDAUXNJUXCUYFWHUNZUSUYGRBCFUXCJHMUXRNWIJUXCUYFWJWKZWLUWSUYDWMZUWSHHUV
      JUVDUWRHHUVDVPAHUVCUVDUVBUVBVEZUXPWNWOZWDZWPZWQWRZUWSUXCUEUVIHUWCUXSUYBUY
      CUWSUWCUXCUSUEHUYEUVJUVKUXCHHKAUYFUXCKVPZUWRUYDAKCUSZKUYHUSUYPSBCFUXCKHMU
      XRNWIKUXCUYFWJWKZWLUYJUYMWPZWQWRZUXCEFUVNUVHUVSUWDUXROUVNVEZWSWTUWSUWTUVM
      UVHUVNUWSUVIUEGXAZUVRUOUPUNZUVIUEVUBUWCUOUPUNZEUNZUVIUEHVUBXBZUVLUOZUPUNZ
      UVNUNZVUCVUHUVNUNZVUDVUHUVNUNZEUNZUVMUWTUWSUXBVUCUXCUSVUDUXCUSVUHUXCUSVUI
      VULVBUXJUWSVUCGGUVDUGZJUNZUXCUWSUVIXFUSZGHUSZVUNUXCUSVUCVUNVBUWSUYAVUOUYB
      UVIXCVMZAVUPUWRTVNZUWSGVUMUXCHHJAUYGUWRUYIVNZVURUWSHHGUVDUYLVURXDZWPZUVRU
      XCVUNUEUVIGHUXSUVJGVBZUVJGUVKVUMJVVBXQZUVJGUVDXEZXGXHXIZVVAXJUWSVUDGVUMKU
      NZUXCUWSVUOVUPVVFUXCUSVUDVVFVBVUQVURUWSGVUMUXCHHKAUYPUWRUYRVNZVURVUTWPZUW
      CUXCVVFUEUVIGHUXSVVBUVJGUVKVUMKVVCVVDXGXHXIZVVHXJUWSUXCUEUVIVUFUVLUXSUYBU
      WSUXLVUFHXKVUFVQUSUYCUWSHVUBXLHVUFXMWAUWSUVLUXCUSZUEVUFUVJVUFUSZUWSUYDVVJ
      UVJHVUBXNZUYEUVJUVKUXCHHIAUYFUXCIVPZUWRUYDAICUSZIUYHUSVVMQBCFUXCIHMUXRNWI
      IUXCUYFWJWKZWLUYJUYMWPZXOWQWRUXCEFUVNVUCVUDVUHUXROVUAXPWTUWSUVMUVIUEVUBUV
      LUOUPUNZVUHUVNUNVUIUWSHUXCVUBVUFUVNUEUVIUVLUXSFUVNUVIUXQVUAXRZUYBUYCVVPVU
      BVUFXSYHVBUWSVUBHXTYAZUWSVUBVUFYBZHUWSVUBHXKZVVTHVBAVWAUWRAGHTYCVNZVUBHYD
      UUAUUBZYEUWSVVQVUEVUHUVNUWSGVUMIUNZVUNVVFEUNZVVQVUEUWSGVUMIVUBHWGZYFZUNZG
      VUMJVWFYFZUNZGVUMKVWFYFZUNZEUNZVWDVWEUWSVWHGVUMVWIVWKUWLUNZUNZVWMUWSVWGVW
      NGVUMAVWGVWNVBUWRUAVNYIUWSGVUMUUCZVWNUGZVWPVWIUGZVWPVWKUGZEUNZVWOVWMUWSVW
      IVWFVAZVWKVWFVAZVWFUTUSZVWPVWFUSZVWQVWTVBUWSVWFUXCVWIVPVXAUWSUYFUXCVWFJVU
      SUWSVWAVWFUYFXKVWBVUBHHUUDVMZYGVWFUXCVWIYJVMUWSVWFUXCVWKVPVXBUWSUYFUXCVWF
      KVVGVXEYGVWFUXCVWKYJVMUWSVUBUTUSUXLVXCGUUSUYCVUBHUTVQUUEUUFUWSGVUBUSZVUMH
      USZVXDUWSVUPVXFVURGHUUGVMZVUTGVUMVUBHUUHUUIVWFEVWIVWKUTVWPUUJUUKGVUMVWNYK
      VWJVWRVWLVWSEGVUMVWIYKGVUMVWKYKUULUUMYLUWSVXFVXGVWHVWDVBVXHVUTGVUMVUBHIYM
      WAUWSVWJVUNVWLVVFEUWSVXFVXGVWJVUNVBVXHVUTGVUMVUBHJYMWAUWSVXFVXGVWLVVFVBVX
      HVUTGVUMVUBHKYMWAXGUUNUWSVUOVUPVWDUXCUSVVQVWDVBVUQVURUWSGVUMUXCHHIAVVMUWR
      VVOVNVURVUTWPUVLUXCVWDUEUVIGHUXSVVBUVJGUVKVUMIVVCVVDXGXHXIUWSVUCVUNVUDVVF
      EVVEVVIXGYSUUOYLUWSUVSVUJUWDVUKEUWSUVSVUCUVIUEVUFUVRUOZUPUNZUVNUNVUJUWSHU
      XCVUBVUFUVNUEUVIUVRUXSVVRUYBUYCUYNVVSVWCYEUWSVXJVUHVUCUVNUWSVXIVUGUVIUPUW
      SUEVUFUVRUVLUWSVVKVIZUVJUVKIVUFHWGZYFZUNZUVJUVKJVXLYFZUNZUVLUVRVXKVXMVXOU
      VJUVKAVXMVXOVBUWRVVKUBWLYIVXKVVKUVKHUSZVXNUVLVBUWSVVKWMZVVKUWSUYDVXQVVLUY
      MXOZUVJUVKVUFHIYMWAZVXKVVKVXQVXPUVRVBVXRVXSUVJUVKVUFHJYMWAYNYOYPYPYLUWSUW
      DVUDUVIUEVUFUWCUOZUPUNZUVNUNVUKUWSHUXCVUBVUFUVNUEUVIUWCUXSVVRUYBUYCUYSVVS
      VWCYEUWSVYBVUHVUDUVNUWSVYAVUGUVIUPUWSUEVUFUWCUVLVXKVXNUVJUVKKVXLYFZUNZUVL
      UWCVXKVXMVYCUVJUVKAVXMVYCVBUWRVVKUCWLYIVXTVXKVVKVXQVYDUWCVBVXRVXSUVJUVKVU
      FHKYMWAYNYOYPYPYLXGUUPYPYQYOUUTYPAUDUVCUXCUVTUWEEUWAFUWFUXROAUXGUXBFWEUSP
      UXHFUUQWKAUXLUVCVQUSUXOHUVCUVBUYKUXPUURVMUWSUXBUXDUXEUVTUXCUSUXJUXTUYOUXC
      FUVNUVHUVSUXRVUAYTXIUWSUXBUXDUXFUWEUXCUSUXJUXTUYTUXCFUVNUVHUWDUXRVUAYTXIU
      WPUWQUVAYQAUXGVVNUWIUVQVBPQUEBCDUVCFUVFUVNUVIIHUVEUDLMNUXPUVEVEZUVFVEZVUA
      UXQYRWAAUWJUWBUWKUWGEAUXGUXNUWJUWBVBPRUEBCDUVCFUVFUVNUVIJHUVEUDLMNUXPVYEV
      YFVUAUXQYRWAAUXGUYQUWKUWGVBPSUEBCDUVCFUVFUVNUVIKHUVEUDLMNUXPVYEVYFVUAUXQY
      RWAXGYS $.
  $}

  ${
    $d B p r $.  $d I r $.  $d K p r $.  $d N p r $.  $d R p r $.  $d X p r $.
    $d Y p $.  $d Z p r $.  $d ph p r $.  $d .x. p r $.
    mdetrsca.d $e |- D = ( N maDet R ) $.
    mdetrsca.a $e |- A = ( N Mat R ) $.
    mdetrsca.b $e |- B = ( Base ` A ) $.
    mdetrsca.k $e |- K = ( Base ` R ) $.
    mdetrsca.t $e |- .x. = ( .r ` R ) $.
    mdetrsca.r $e |- ( ph -> R e. CRing ) $.
    mdetrsca.x $e |- ( ph -> X e. B ) $.
    mdetrsca.y $e |- ( ph -> Y e. K ) $.
    mdetrsca.z $e |- ( ph -> Z e. B ) $.
    mdetrsca.i $e |- ( ph -> I e. N ) $.
    mdetrsca.eq $e |- ( ph -> ( X |` ( { I } X. N ) ) =
        ( ( ( { I } X. N ) X. { Y } ) oF .x. ( Z |` ( { I } X. N ) ) ) ) $.
    mdetrsca.ne $e |- ( ph -> ( X |` ( ( N \ { I } ) X. N ) ) =
        ( Z |` ( ( N \ { I } ) X. N ) ) ) $.
    $( The determinant function is homogeneous for each row:  The matrices X
       and Z are identical except for the I's row, and the I's row of the
       matrix X is the componentwise product of the I's row of the matrix Z and
       the scalar Y. In this case the determinant of X is the determinant of Z
       multiplied by Y. (Contributed by SO, 9-Jul-2018.)  (Proof shortened by
       AV, 23-Jul-2019.) $)
    mdetrsca $p |- ( ph -> ( D ` X ) = ( Y .x. ( D ` Z ) ) ) $=
      ( vp vr csymg cfv cbs cv czrh cpsgn ccom cmgp cmpt cgsu wcel csn cdif cxp
      co wa cres cof wceq oveqd adantr snidg syl wf1o wf eqid symgbasf1o adantl
      f1of ffvelrnd syl2anc cop opelxpi cfn snfi cvv matrcl simpld xpfi sylancr
      ovres wfn wss cmap matbas2i 3syl ffn snssd xpss1 fnssres eqidd ofc1 mpdan
      elmapi df-ov oveq2i 3eqtr4g 3eqtr3d oveq2d eqtrd oveq1d crg ccrg crngring
      fovrnd mgpbas ccmn crngmgp difssd ssfi ad2antrr simpr ffvelrnda ralrimiva
      eldifi sylan2 gsummptcl ringass syl13anc mgpplusg cin c0 gsummptfidmsplit
      disjdif a1i cun undif oveq12d gsumsn syl3anc mpteq2dva 3eqtr4d mdetleib2
      c0g sylib eqcomd cmnd cmnmnd id fveq2 cmhm zrhpsgnmhm mhmf crngcom cplusg
      symgbasfi ringcl ovexd fvexd fsuppmptdm gsummulc2 ) AEUEIUGUHZUIUHZUEUJZE
      UKUHZIULUHZUMZUHZEUNUHZUFIUFUJZUVFUUTUHZJVAZUOUPVAZFVAZUOZUPVAZKEUEUUSUVD
      UVEUFIUVFUVGLVAZUOUPVAZFVAZUOZUPVAZFVAZJDUHZKLDUHZFVAAUVLEUEUUSKUVOFVAZUO
      ZUPVAUVRAUVKUWBEUPAUEUUSUVJUWAAUUTUUSUQZVBZUVJUVDKUVNFVAZFVAZUWAUWDUVIUWE
      UVDFUWDGGUUTUHZJVAZUVEUFIGURZUSZUVMUOZUPVAZFVAZKGUWGLVAZUWLFVAZFVAZUVIUWE
      UWDUWMKUWNFVAZUWLFVAZUWPUWDUWHUWQUWLFUWDUWHKGUWGLUWIIUTZVCZVAZFVAZUWQUWDG
      UWGJUWSVCZVAZGUWGUWSKURUTUWTFVDVAZVAZUWHUXBAUXDUXFVEUWCAUXCUXEGUWGUCVFVGU
      WDGUWIUQZUWGIUQZUXDUWHVEUWDGIUQZUXGAUXIUWCUBVGZGIVHVIZUWDIIGUUTUWDIIUUTVJ
      ZIIUUTVKUWCUXLAIUUSUUTUURUURVLZUUSVLZVMVNIIUUTVOVIZUXJVPZGUWGUWIIJWGVQUWD
      GUWGVRZUXEUHZKUXQUWTUHZFVAZUXFUXBUWDUXQUWSUQZUXRUXTVEUWDUXGUXHUYAUXKUXPGU
      WGUWIIVSVQUWDUWSKUXSFUWTVTHUXQUWDUWIVTUQIVTUQZUWSVTUQGWAAUYBUWCAUYBEWBUQZ
      AJCUQZUYBUYCVBSBCEIJNOWCVIWDZVGZUWIIWEWFAKHUQZUWCTVGZUWDLIIUTZWHZUWSUYIWI
      ZUWTUWSWHUWDUYIHLVKZUYJAUYLUWCALCUQZLHUYIWJVAZUQUYLUABCEHLINPOWKLHUYIWTWL
      ZVGZUYIHLWMVIUWDUWIIWIZUYKUWDGIUXJWNZUWIIIWOVIUYIUWSLWPVQUWDUYAVBUXSWQWRW
      SGUWGUXEXAUXAUXSKFGUWGUWTXAXBXCXDUWDUXAUWNKFUWDUXGUXHUXAUWNVEUXKUXPGUWGUW
      IILWGVQXEXFXGUWDEXHUQZUYGUWNHUQZUWLHUQUWRUWPVEAUYSUWCAEXIUQZUYSREXJVIZVGZ
      UYHUWDGUWGHIILUYPUXJUXPXKZUWDHUFUVEUWJUVMHEUVEUVEVLZPXLZAUVEXMUQZUWCAVUAV
      UGREUVEVUEXNVIVGZUWDUYBUWJIWIUWJVTUQUYFUWDIUWIXOIUWJXPVQUWDUVMHUQZUFUWJUV
      FUWJUQZUWDUVFIUQZVUIUVFIUWIYAZUWDVUKVBZUVFUVGHIILAUYLUWCVUKUYOXQUWDVUKXRZ
      UWDIIUVFUUTUXOXSZXKZYBXTYCHEFKUWNUWLPQYDYEXFUWDUVIUVEUFUWIUVHUOUPVAZUVEUF
      UWJUVHUOZUPVAZFVAUWMUWDIHUWIUWJFUFUVEUVHVUFEFUVEVUEQYFZVUHUYFVUMUVFUVGHII
      JAUYIHJVKZUWCVUKAUYDJUYNUQVVASBCEHJINPOWKJHUYIWTWLZXQVUNVUOXKUWIUWJYGYHVE
      UWDUWIIYJYKZUWDUWIUWJYLZIUWDUYQVVDIVEUYRUWIIYMUUAUUBZYIUWDVUQUWHVUSUWLFUW
      DUVEUUCUQZUXIUWHHUQVUQUWHVEUWDVUGVVFVUHUVEUUDVIZUXJUWDGUWGHIIJAVVAUWCVVBV
      GUXJUXPXKUVHHUWHUFUVEGIVUFUVFGVEZUVFGUVGUWGJVVHUUEZUVFGUUTUUFZYNYOYPUWDVU
      RUWKUVEUPUWDUFUWJUVHUVMUWDVUJVBZUVFUVGJUWJIUTZVCZVAZUVFUVGLVVLVCZVAZUVHUV
      MAVVNVVPVEUWCVUJAVVMVVOUVFUVGUDVFXQVVKVUJUVGIUQZVVNUVHVEUWDVUJXRZVUJUWDVU
      KVVQVULVUOYBZUVFUVGUWJIJWGVQVVKVUJVVQVVPUVMVEVVRVVSUVFUVGUWJILWGVQXDYQXEY
      NXFUWDUVNUWOKFUWDUVNUVEUFUWIUVMUOUPVAZUWLFVAUWOUWDIHUWIUWJFUFUVEUVMVUFVUT
      VUHUYFVUPVVCVVEYIUWDVVTUWNUWLFUWDVVFUXIUYTVVTUWNVEVVGUXJVUDUVMHUWNUFUVEGI
      VUFVVHUVFGUVGUWGLVVIVVJYNYOYPXGXFXEYRXEUWDUVDKFVAZUVNFVAZKUVDFVAZUVNFVAZU
      WFUWAUWDVWAVWCUVNFUWDVUAUVDHUQZUYGVWAVWCVEAVUAUWCRVGAUUSHUUTUVCAUVCUURUVE
      UUGVAUQZUUSHUVCVKAUYSUYBVWFVUBUYEIEUUHVQUUSHUURUVEUVCUXNVUFUUIVIXSZUYHHEF
      UVDKPQUUJYPXGUWDUYSVWEUYGUVNHUQZVWBUWFVEVUCVWGUYHUWDHUFUVEIUVMVUFVUHUYFUW
      DVUIUFIVUPXTYCZHEFUVDKUVNPQYDYEUWDUYSUYGVWEVWHVWDUWAVEVUCUYHVWGVWIHEFKUVD
      UVNPQYDYEXDXFYQXEAUUSHEUUKUHZEFUEVTUVOKEYTUHZPVWKVLVWJVLQVUBAUYBUUSVTUQUY
      EIUUSUURUXMUXNUULVIZTUWDUYSVWEVWHUVOHUQVUCVWGVWIHEFUVDUVNPQUUMYPAUEUUSUVP
      WBWBUVOVWKUVPVLVWLUWDUVDUVNFUUNAEYTUUOUUPUUQXFAVUAUYDUVSUVLVERSUFBCDUUSEU
      VBFUVEJIUVAUEMNOUXNUVAVLZUVBVLZQVUEYSVQAUVTUVQKFAVUAUYMUVTUVQVERUAUFBCDUU
      SEUVBFUVELIUVAUEMNOUXNVWMVWNQVUEYSVQXEYR $.
  $}

  ${
    $d ph i j $.  $d F i j $.  $d K i j $.  $d N i j $.  $d I i j $.
    $d .x. i j $.
    mdetrsca2.d $e |- D = ( N maDet R ) $.
    mdetrsca2.k $e |- K = ( Base ` R ) $.
    mdetrsca2.t $e |- .x. = ( .r ` R ) $.
    mdetrsca2.r $e |- ( ph -> R e. CRing ) $.
    mdetrsca2.n $e |- ( ph -> N e. Fin ) $.
    mdetrsca2.x $e |- ( ( ph /\ i e. N /\ j e. N ) -> X e. K ) $.
    mdetrsca2.y $e |- ( ( ph /\ i e. N /\ j e. N ) -> Y e. K ) $.
    mdetrsca2.f $e |- ( ph -> F e. K ) $.
    mdetrsca2.i $e |- ( ph -> I e. N ) $.
    $( The determinant function is homogeneous for each row (matrices are given
       explicitly by their entries).  (Contributed by SO, 16-Jul-2018.) $)
    mdetrsca2 $p |- ( ph -> ( D ` ( i e. N , j e. N |->
        if ( i = I , ( F .x. X ) , Y ) ) ) = ( F .x. ( D `
          ( i e. N , j e. N |-> if ( i = I , X , Y ) ) ) ) ) $=
      ( cmat co cbs cfv wceq cif cmpt2 eqid ccrg wcel w3a crg crngring 3ad2ant1
      syl ringcl syl3anc ifcld matbas2d csn cxp cof cres cvv cfn snex a1i snssd
      sselda 3adant3 syld3an2 fconstmpt2 eqidd offval22 mpt2snif oveq2i 3eqtr4g
      cv wss ssid resmpt2 sylancl oveq2d 3eqtr4rd cdif wn wne eldifsni 3ad2ant2
      neneqd iffalse eqtr4d mpt2eq3dva difss mp2an mdetrsca ) AJCUBUCZWRUDUEZBC
      DHIJEFJJEVSZHUFZGKDUCZLUGZUHZGEFJJXAKLUGZUHZMWRUIZWSUIZNOPAEFWRWSXCCIJUJX
      GNXHQPAWTJUKZFVSJUKZULZXAXBLIXKCUMUKZGIUKZKIUKZXBIUKAXIXLXJACUJUKXLPCUNUP
      UOAXIXMXJTUORICDGKNOUQURSUSUTTAEFWRWSXECIJUJXGNXHQPXKXAKLIRSUSUTUAAHVAZJV
      BZGVAVBZEFXOJXEUHZDVCZUCZEFXOJXCUHZXQXFXPVDZXSUCXDXPVDZAXQEFXOJKUHZXSUCEF
      XOJXBUHXTYAAEFXOJGKDXQYDVEVFIIXOVEUKAHVGVHQAWTXOUKZXMXJTUOAXIYEXJXNAYEXIX
      JAXOJWTAHJUAVIZVJVKRVLXQEFXOJGUHUFAEFXOJGVMVHAYDVNVOXRYDXQXSJKLEFHVPVQJXB
      LEFHVPVRAYBXRXQXSAXOJVTZJJVTZYBXRUFYFJWAZEFJJXOJXEWBWCWDAYGYHYCYAUFYFYIEF
      JJXOJXCWBWCWEAEFJXOWFZJXCUHZEFYJJXEUHZXDYJJVBZVDZXFYMVDZAEFYJJXCXEAWTYJUK
      ZXJULZXAWGZXCXEUFYQWTHYPAWTHWHXJWTJHWIWJWKYRXCLXEXAXBLWLXAKLWLWMUPWNYJJVT
      ZYHYNYKUFJXOWOZYIEFJJYJJXCWBWPYSYHYOYLUFYTYIEFJJYJJXEWBWPVRWQ $.
  $}

  ${
    $d ph i j $.  $d i j $.  $d K i j $.  $d N i j $.  $d I i j $.
    $d .0. i j $.  $d R i j $.
    mdetr0.d $e |- D = ( N maDet R ) $.
    mdetr0.k $e |- K = ( Base ` R ) $.
    mdetr0.z $e |- .0. = ( 0g ` R ) $.
    mdetr0.r $e |- ( ph -> R e. CRing ) $.
    mdetr0.n $e |- ( ph -> N e. Fin ) $.
    mdetr0.x $e |- ( ( ph /\ i e. N /\ j e. N ) -> X e. K ) $.
    mdetr0.i $e |- ( ph -> I e. N ) $.
    $( The determinant of a matrix with a row containing only 0's is 0.
       (Contributed by SO, 16-Jul-2018.) $)
    mdetr0 $p |- ( ph -> ( D ` ( i e. N , j e. N |->
        if ( i = I , .0. , X ) ) ) = .0. ) $=
      ( wceq cfv wcel cv cmulr co cif cmpt2 eqid crg ccrg crngring syl 3ad2ant1
      ring0cl mdetrsca2 ringlz syl2anc ifeq1d mpt2eq3dv fveq2d cbs wf mdetf w3a
      cmat ifcld matbas2d ffvelrnd 3eqtr3d ) ADEHHDUAZFRZJJCUBSZUCZIUDZUEZBSJDE
      HHVIJIUDZUEZBSZVJUCZVPJABCVJDEJFGHJIKLVJUFZNOAVHHTZJGTZEUAHTZACUGTZVTACUH
      TZWBNCUIUJZGCJLMULUJZUKZPWEQUMAVMVOBADEHHVLVNAVIVKJIAWBVTVKJRWDWEGCVJJJLV
      RMUNUOUPUQURAWBVPGTVQJRWDAHCVCUCZUSSZGVOBAWCWHGBUTNWGWHBCGHKWGUFZWHUFZLVA
      UJADEWGWHVNCGHUHWILWJONAVSWAVBVIJIGWFPVDVEVFGCVJVPJLVRMUNUOVG $.
  $}

  ${
    $d D i $.  $d N i x y $.  $d R i x y $.  $d .0. i x y $.  $d Z i $.
    mdet0.d $e |- D = ( N maDet R ) $.
    mdet0.a $e |- A = ( N Mat R ) $.
    mdet0.b $e |- B = ( Base ` A ) $.
    mdet0.z $e |- Z = ( 0g ` A ) $.
    mdet0.0 $e |- .0. = ( 0g ` R ) $.
    $( The determinant of the zero matrix (of dimension greater 0!) is 0.
       (Contributed by AV, 17-Aug-2019.) $)
    mdet0 $p |- ( ( R e. CRing /\ N e. Fin /\ N =/= (/) )
                  -> ( D ` Z ) = .0. ) $=
      ( vi vx vy wcel cfv wceq cv adantr cfn c0 wne wex wa n0 cmpt2 weq cif crg
      ccrg crngring anim1i ancomd c0g mat0op syl5eq syl fveq2d eqcomi mpt2eq3dv
      ifid a1i eqid simpll simpr cmnd ringmnd mndidcl 3ad2ant1 mdetr0 3eqtrd ex
      cbs exlimdv syl5bi 3impia ) DUKPZEUAPZEUBUCZGCQZFRZVTMSZEPZMUDVRVSUEZWBME
      UFWEWDWBMWEWDWBWEWDUEZWANOEEFUGZCQNOEENMUHZFFUIZUGZCQFWFGWGCWFVSDUJPZUEZG
      WGRWEWLWDWEWKVSVRWKVSDULZUMUNTWLGAUOQWGKADNOEFILUPUQURUSWFWGWJCWFNOEEFWIF
      WIRWFWIFWHFVBUTVCVAUSWFCDNOWCDVNQZEFFHWNVDZLVRVSWDVEWEVSWDVRVSVFTWFNSEPFW
      NPZOSEPWEWPWDWEDVGPZWPVRWQVSVRWKWQWMDVHURTWNDFWOLVIURTVJWEWDVFVKVLVMVOVPV
      Q $.
  $}

  ${
    $d ph i j $.  $d K i j $.  $d N i j $.  $d I i j $.  $d .+ i j $.
    mdetrlin2.d $e |- D = ( N maDet R ) $.
    mdetrlin2.k $e |- K = ( Base ` R ) $.
    mdetrlin2.p $e |- .+ = ( +g ` R ) $.
    mdetrlin2.r $e |- ( ph -> R e. CRing ) $.
    mdetrlin2.n $e |- ( ph -> N e. Fin ) $.
    mdetrlin2.x $e |- ( ( ph /\ i e. N /\ j e. N ) -> X e. K ) $.
    mdetrlin2.y $e |- ( ( ph /\ i e. N /\ j e. N ) -> Y e. K ) $.
    mdetrlin2.z $e |- ( ( ph /\ i e. N /\ j e. N ) -> Z e. K ) $.
    mdetrlin2.i $e |- ( ph -> I e. N ) $.
    $( The determinant function is additive for each row (matrices are given
       explicitly by their entries).  (Contributed by SO, 16-Jul-2018.) $)
    mdetrlin2 $p |- ( ph -> ( D ` ( i e. N , j e. N |->
        if ( i = I , ( X .+ Y ) , Z ) ) ) = ( ( D ` ( i e. N , j e. N |->
        if ( i = I , X , Z ) ) ) .+ ( D ` ( i e. N , j e. N |->
        if ( i = I , Y , Z ) ) ) ) ) $=
      ( cmat co cbs cfv wceq cif cmpt2 eqid ccrg wcel w3a crg crngring 3ad2ant1
      cv syl ringacl syl3anc ifcld matbas2d csn cof cxp cres cvv cfn snex snssd
      a1i wss simp2 sseldd syld3an2 eqidd offval22 eqcomd mpt2snif oveq12i ssid
      3eqtr4g resmpt2 sylancl oveq12d 3eqtr4d wn eldifsni neneqd iffalse eqtr4d
      cdif 3ad2ant2 mpt2eq3dva difss mp2an mdetrlin ) AIDUBUCZWQUDUEZBCDGIEFIIE
      UPZGUFZJKCUCZLUGZUHZEFIIWTJLUGZUHZEFIIWTKLUGZUHZMWQUIZWRUIZOPAEFWQWRXBDHI
      UJXHNXIQPAWSIUKZFUPIUKZULZWTXALHXLDUMUKZJHUKZKHUKZXAHUKAXJXMXKADUJUKXMPDU
      NUQUORSHCDJKNOURUSTUTVAAEFWQWRXDDHIUJXHNXIQPXLWTJLHRTUTVAAEFWQWRXFDHIUJXH
      NXIQPXLWTKLHSTUTVAUAAEFGVBZIXBUHZEFXPIXDUHZEFXPIXFUHZCVCZUCZXCXPIVDZVEZXE
      YBVEZXGYBVEZXTUCAEFXPIXAUHZEFXPIJUHZEFXPIKUHZXTUCZXQYAAYIYFAEFXPIJKCYGYHV
      FVGHHXPVFUKAGVHVJQAXJWSXPUKZXKXNAYJXKULXPIWSAYJXPIVKZXKAGIUAVIZUOAYJXKVLV
      MZRVNAXJYJXKXOYMSVNAYGVOAYHVOVPVQIXALEFGVRXRYGXSYHXTIJLEFGVRIKLEFGVRVSWAA
      YKIIVKZYCXQUFYLIVTZEFIIXPIXBWBWCAYDXRYEXSXTAYKYNYDXRUFYLYOEFIIXPIXDWBWCAY
      KYNYEXSUFYLYOEFIIXPIXFWBWCWDWEAEFIXPWKZIXBUHZEFYPIXDUHZXCYPIVDZVEZXEYSVEZ
      AEFYPIXBXDWSYPUKZAXBXDUFZXKUUBWTWFZUUCUUBWSGWSIGWGWHZUUDXBLXDWTXALWIZWTJL
      WIWJUQWLWMYPIVKZYNYTYQUFIXPWNZYOEFIIYPIXBWBWOZUUGYNUUAYRUFUUHYOEFIIYPIXDW
      BWOWAAYQEFYPIXFUHZYTXGYSVEZAEFYPIXBXFUUBAXBXFUFZXKUUBUUDUULUUEUUDXBLXFUUF
      WTKLWIWJUQWLWMUUIUUGYNUUKUUJUFUUHYOEFIIYPIXFWBWOWAWP $.
  $}

  ${
    $d ph c p q $.  $d I a c p q $.  $d J a c p q $.  $d N a c p q $.
    $d R c p q $.  $d X a c p q $.
    mdetralt.d $e |- D = ( N maDet R ) $.
    mdetralt.a $e |- A = ( N Mat R ) $.
    mdetralt.b $e |- B = ( Base ` A ) $.
    mdetralt.z $e |- .0. = ( 0g ` R ) $.
    mdetralt.r $e |- ( ph -> R e. CRing ) $.
    mdetralt.x $e |- ( ph -> X e. B ) $.
    mdetralt.i $e |- ( ph -> I e. N ) $.
    mdetralt.j $e |- ( ph -> J e. N ) $.
    mdetralt.ij $e |- ( ph -> I =/= J ) $.
    mdetralt.eq $e |- ( ph -> A. a e. N ( I X a ) = ( J X a ) ) $.
    $( The determinant function is alternating regarding rows: if a matrix has
       two identical rows, its determinant is 0.  Corollary 4.9 in [Lang]
       p. 515.  (Contributed by SO, 10-Jul-2018.)  (Proof shortened by AV,
       23-Jul-2018.) $)
    mdetralt $p |- ( ph -> ( D ` X ) = .0. ) $=
      ( vp vc vq cfv csymg cbs cv czrh cpsgn ccom cmgp co cmpt cgsu cmulr cevpm
      cres cdif cplusg wcel wceq eqid mdetleib syl crg crngring ringcmn cfn cvv
      ccmn ccrg wa matrcl simpld symgbasfi cmhm wf zrhpsgnmhm syl2anc ffvelrnda
      adantr mgpbas mhmf crngmgp cxp matbas2i elmapi ad2antrr symgbasf1o adantl
      cmap wf1o f1of simpr fovrnd ralrimiva gsummptcl ringcl syl3anc c0 disjdif
      cin a1i wss resmpt ax-mp oveq1d sylan2 eqtrd mpteq2dva syl5eq oveq2d cgrp
      eqidd fveq2 fmptco eqtr4d ssfi cpr wne wi weq oveq2 c1 cmul sylan oveq12d
      ccnfld mpteq2dv fveq1d pmtrprfv syl13anc eqeq12d oveq1 3ad2ant1 pm2.61dne
      syl5ibrcom wn 3eqtrd evpmss undif mpbi eqcomi gsummptfidmsplitres cminusg
      cun zrhpsgnevpm sseli ringlidm difss zrhpsgnodpm ringnegl ringgrp grpinvf
      cur eldifi feqmptd cabl ringabl difssd gsummptfidminv cpmtr crn c2o prssi
      cen pr2nelem pmtrrn pmtrodpm evpmodpmf1o gsummptfif1o eleq1 anbi2d eleq1d
      wbr imbi12d cneg symggrp symgtrf sseldi grpcl cghm psgnghm2 prex cnfldmul
      cress mgpplusg ressplusg ghmlin psgnpmtr psgnevpm neg1cn syl6eq psgnodpmr
      mulid1i chvarv fveq1 cbvmptv symgov fvco3 wral rspcv fveq2i fveq1i necomd
      sylc prcom a1dd w3a cid cdm wo neanior elpri orcomd con3i 3adant1 pmtrmvd
      sylbi neleqtrrd wb wfn pmtrf ffn fnelnfp necon2bbid mpbird fveq2d grprinv
      3exp ) AIDUEZEUBHUFUEZUGUEZUBUHZEUIUEZHUJUEZUKZUEZEULUEZUCHUCUHZUYOUEZVUA
[encoded data, 4880 characters]
      VWMXDUYNVUJXSVTAVVSUBVUJVXHWQWRVVDVUPEVWPVWOJVVEVVFOVXSUYJVTXJYT $.
  $}

  ${
    $d ph i j w $.  $d K i j w $.  $d N i j w $.  $d I i j w $.  $d J i j w $.
    $d X i w $.  $d Y w $.
    mdetralt2.d $e |- D = ( N maDet R ) $.
    mdetralt2.k $e |- K = ( Base ` R ) $.
    mdetralt2.z $e |- .0. = ( 0g ` R ) $.
    mdetralt2.r $e |- ( ph -> R e. CRing ) $.
    mdetralt2.n $e |- ( ph -> N e. Fin ) $.
    mdetralt2.x $e |- ( ( ph /\ j e. N ) -> X e. K ) $.
    mdetralt2.y $e |- ( ( ph /\ i e. N /\ j e. N ) -> Y e. K ) $.
    mdetralt2.i $e |- ( ph -> I e. N ) $.
    mdetralt2.j $e |- ( ph -> J e. N ) $.
    mdetralt2.ij $e |- ( ph -> I =/= J ) $.
    $( The determinant function is alternating regarding rows (matrix is given
       explicitly by its entries).  (Contributed by SO, 16-Jul-2018.) $)
    mdetralt2 $p |- ( ph -> ( D ` ( i e. N , j e. N |->
        if ( i = I , X , if ( i = J , X , Y ) ) ) ) = .0. ) $=
      ( vw cmat co cbs cfv wceq cif cmpt2 eqid ccrg wcel 3adant2 ifcld matbas2d
      cv w3a wa csb eqidd weq iftrue ad2antrl csbeq1a ad2antll eqtrd adantr nfv
      simpr nfcsb1v nfel1 nfim eleq1 anbi2d eleq1d imbi12d chvar nfcv ovmpt2dxf
      wi ifeq2d ifid syl6eq eqtr4d ralrimiva mdetralt ) AICUDUEZWHUFUGZBCFGIDEI
      IDUQZFUHZJWJGUHZJKUIZUIZUJZLUCMWHUKZWIUKZOPADEWHWIWNCHIULWPNWQQPAWJIUMZEU
      QZIUMZURZWKJWMHAWTJHUMZWRRUNZXAWLJKHXCSUOUOUPTUAUBAFUCUQZWOUEZGXDWOUEZUHU
      CIAXDIUMZUSZXEEXDJUTZXFXHDEFXDIIWNXIWOIHXHWOVAZXHWKEUCVBZUSUSWNJXIWKWNJUH
      ZXHXKWKJWMVCVDXKJXIUHZXHWKEXDJVEZVFVGXHWKUSIVAAFIUMXGTVHAXGVJZAWTUSZXBWAX
      HXIHUMZWAEUCXHXQEXHEVIZEXIHEXDJVKZVLVMXKXPXHXBXQXKWTXGAWSXDIVNVOXKJXIHXNV
      PVQRVRZXHDVIZXREFVSDXDVSZDXIVSZXSVTXHDEGXDIIWNXIWOIHXJXHWLXKUSUSWNJXIWLXL
      XHXKWLWNWKJJUIJWLWKWMJJWLJKVCWBWKJWCWDVDXKXMXHWLXNVFVGXHWLUSIVAAGIUMXGUAV
      HXOXTYAXREGVSYBYCXSVTWEWFWG $.
  $}

  ${
    $d ph i j $.  $d K i j $.  $d N i j $.  $d I i j $.  $d J i j $.  $d X i $.
    $d Y i $.  $d W i j $.  $d .x. i j $.  $d .+ i j $.
    mdetero.d $e |- D = ( N maDet R ) $.
    mdetero.k $e |- K = ( Base ` R ) $.
    mdetero.p $e |- .+ = ( +g ` R ) $.
    mdetero.t $e |- .x. = ( .r ` R ) $.
    mdetero.r $e |- ( ph -> R e. CRing ) $.
    mdetero.n $e |- ( ph -> N e. Fin ) $.
    mdetero.x $e |- ( ( ph /\ j e. N ) -> X e. K ) $.
    mdetero.y $e |- ( ( ph /\ j e. N ) -> Y e. K ) $.
    mdetero.z $e |- ( ( ph /\ i e. N /\ j e. N ) -> Z e. K ) $.
    mdetero.w $e |- ( ph -> W e. K ) $.
    mdetero.i $e |- ( ph -> I e. N ) $.
    mdetero.j $e |- ( ph -> J e. N ) $.
    mdetero.ij $e |- ( ph -> I =/= J ) $.
    $( The determinant function is multilinear (additive and homogeneous for
       each row (matrices are given explicitly by their entries).  Corollary
       4.9 in [Lang] p. 515.  (Contributed by SO, 16-Jul-2018.) $)
    mdetero $p |- ( ph -> ( D ` ( i e. N , j e. N |->
        if ( i = I , ( X .+ ( W .x. Y ) ) , if ( i = J , Y , Z ) ) ) ) =
        ( D ` ( i e. N , j e. N |-> if ( i = I , X ,
            if ( i = J , Y , Z ) ) ) ) ) $=
      ( cv wceq co cif cmpt2 cfv c0g wcel 3adant2 w3a crg crngring syl 3ad2ant1
      ccrg ringcl ifcld mdetrlin2 mdetrsca2 eqid mdetralt2 oveq2d ringrz 3eqtrd
      syl3anc syl2anc cgrp ringgrp cmat cbs wf mdetf matbas2d ffvelrnd grprid )
      AFGKKFUIZHUJZMLNEUKZCUKWDIUJZNOULZULUMBUNFGKKWEMWHULZUMZBUNZFGKKWEWFWHULU
      MBUNZCUKWKDUOUNZCUKZWKABCDFGHJKMWFWHPQRTUAAGUIKUPZMJUPWDKUPZUBUQZAWPWOURZ
      DUSUPZLJUPZNJUPZWFJUPAWPWSWOADVCUPZWSTDUTVAZVBAWPWTWOUEVBAWOXAWPUCUQZJDEL
      NQSVDVMWRWGNOJXDUDVEZUFVFAWLWMWKCAWLLFGKKWENWHULUMBUNZEUKLWMEUKZWMABDEFGL
      HJKNWHPQSTUAXDXEUEUFVGAXFWMLEABDFGHIJKNOWMPQWMVHZTUAUCUDUFUGUHVIVJAWSWTXG
      WMUJXCUEJDELWMQSXHVKVNVLVJADVOUPZWKJUPWNWKUJAWSXIXCDVPVAAKDVQUKZVRUNZJWJB
      AXBXKJBVSTXJXKBDJKPXJVHZXKVHZQVTVAAFGXJXKWIDJKVCXLQXMUATWRWEMWHJWQXEVEWAW
      BJCDWKWMQRXHWCVNVL $.
      $( [16-Jul-2018] $)
  $}

  ${
    $d D p x $.  $d A p x $.  $d B p x $.  $d M p x $.  $d N p x $.
    $d R p x $.
    mdettpos.d $e |- D = ( N maDet R ) $.
    mdettpos.a $e |- A = ( N Mat R ) $.
    mdettpos.b $e |- B = ( Base ` A ) $.
    $( Determinant is invariant under transposition.  Proposition 4.8 in [Lang]
       p. 514.  (Contributed by Stefan O'Rear, 9-Jul-2018.) $)
    mdettpos $p |- ( ( R e. CRing /\ M e. B ) ->
        ( D ` tpos M ) = ( D ` M ) ) $=
      ( vp vx wcel cfv cv co cmpt cgsu mpteq2i oveq2i eqid ccrg csymg cbs cpsgn
      czrh ccom cmgp ctpos cmulr ovtpos mattposcl adantl mdetleib syl mdetleib2
      wa wceq 3eqtr4a ) DUALZEBLZUPZDJFUBMUCMZJNZDUEMZFUDMZUFMZDUGMZKFKNZVCMZVH
      EUHZOZPZQOZDUIMZOZPZQOZDJVBVFVGKFVHVIEOZPZQOZVNOZPZQOVJCMZECMVPWBDQJVBVOW
      AVMVTVFVNVLVSVGQKFVKVRVIVHEUJRSSRSVAVJBLZWCVQUQUTWDUSABDEFHIUKULKABCVBDVE
      VNVGVJFVDJGHIVBTZVDTZVETZVNTZVGTZUMUNKABCVBDVEVNVGEFVDJGHIWEWFWGWHWIUOUR
      $.
  $}

  ${
    $d ph x y z w a b c d e f $.  $d B x y z w a b c d e f $.
    $d K x y z w a b c d e f $.  $d N x y z w a b c d e f $.
    $d D x y z w a b c d e f $.  $d Y a b c d e f $.  $d .x. x y z w e $.
    $d .+ a b e x y z w $.  $d .0. a b c d e x y z w $.
    $d .1. a b c d e x y z w $.  $d R e x y z w $.  $d A a b c d x y z w $.
    $d E x y z w $.  $d F x y z w $.  $d G x y z w $.  $d H x y z w $.
    mdetuni.a $e |- A = ( N Mat R ) $.
    mdetuni.b $e |- B = ( Base ` A ) $.
    mdetuni.k $e |- K = ( Base ` R ) $.
    mdetuni.0g $e |- .0. = ( 0g ` R ) $.
    mdetuni.1r $e |- .1. = ( 1r ` R ) $.
    mdetuni.pg $e |- .+ = ( +g ` R ) $.
    mdetuni.tg $e |- .x. = ( .r ` R ) $.
    mdetuni.n $e |- ( ph -> N e. Fin ) $.
    mdetuni.r $e |- ( ph -> R e. Ring ) $.
    mdetuni.ff $e |- ( ph -> D : B --> K ) $.
    mdetuni.al $e |- ( ph -> A. x e. B A. y e. N A. z e. N
        ( ( y =/= z /\ A. w e. N ( y x w ) = ( z x w ) ) ->
        ( D ` x ) = .0. ) ) $.
    mdetuni.li $e |- ( ph -> A. x e. B A. y e. B A. z e. B A. w e. N
        ( ( ( x |` ( { w } X. N ) ) = ( ( y |` ( { w } X. N ) ) oF .+
          ( z |` ( { w } X. N ) ) ) /\ ( x |` ( ( N \ { w } ) X. N ) ) =
          ( y |` ( ( N \ { w } ) X. N ) ) /\ ( x |` ( ( N \ { w } ) X. N ) ) =
          ( z |` ( ( N \ { w } ) X. N ) ) ) ->
        ( D ` x ) = ( ( D ` y ) .+ ( D ` z ) ) ) ) $.
    mdetuni.sc $e |- ( ph -> A. x e. B A. y e. K A. z e. B A. w e. N
        ( ( ( x |` ( { w } X. N ) ) = ( ( ( { w } X. N ) X. { y } ) oF .x.
          ( z |` ( { w } X. N ) ) ) /\ ( x |` ( ( N \ { w } ) X. N ) ) =
          ( z |` ( ( N \ { w } ) X. N ) ) ) ->
        ( D ` x ) = ( y .x. ( D ` z ) ) ) ) $.
    $( Lemma for ~ mdetuni .  (Contributed by SO, 14-Jul-2018.) $)
    mdetunilem1 $p |- ( ( ( ph /\ E e. B /\ A. w e. N ( F E w ) =
          ( G E w ) ) /\ ( F e. N /\ G e. N /\ F =/= G ) ) ->
        ( D ` E ) = .0. ) $=
      ( wcel cv co wceq wral w3a wne wa cfv simpr3 simpl3 wi neeq2 oveq1 eqeq2d
      ralbidv anbi12d imbi1d simpl2 simpr1 simpl1 syl oveq eqeq12d anbi2d fveq2
      eqeq1d imbi12d neeq1 rspc2va syl21anc simpr2 rspcdva mp2and ) AMGULZNEUMZ
      MUNZOWGMUNZUOZEQUPZUQZNQULZOQULZNOURZUQZUSZWOWKMHUTZRUOZWLWMWNWOVAAWFWKWP
      VBWQNDUMZURZWHWTWGMUNZUOZEQUPZUSZWSVCZWOWKUSZWSVCDQOWTOUOZXEXGWSXHXAWOXDW
      KWTONVDXHXCWJEQXHXBWIWHWTOWGMVEVFVGVHVIWQWFWMCUMZWTURZXIWGBUMZUNZWTWGXKUN
      ZUOZEQUPZUSZXKHUTZRUOZVCZDQUPZCQUPBGUPZXFDQUPZAWFWKWPVJWLWMWNWOVKWQAYAAWF
      WKWPVLUIVMXTYBXJXIWGMUNZXBUOZEQUPZUSZWSVCZDQUPBCMNGQXKMUOZXSYGDQYHXPYFXRW
      SYHXOYEXJYHXNYDEQYHXLYCXMXBXIWGXKMVNWTWGXKMVNVOVGVPYHXQWRRXKMHVQVRVSVGXIN
      UOZYGXFDQYIYFXEWSYIXJXAYEXDXINWTVTYIYDXCEQYIYCWHXBXINWGMVEVRVGVHVIVGWAWBW
      LWMWNWOWCWDWE $.

    ${
      $d ps a b x y z w $.  $d E a b $.  $d G a b $.  $d F a $.
      mdetunilem2.ph $e |- ( ps -> ph ) $.
      mdetunilem2.eg $e |- ( ps -> ( E e. N /\ G e. N /\ E =/= G ) ) $.
      mdetunilem2.f $e |- ( ( ps /\ b e. N ) -> F e. K ) $.
      mdetunilem2.h $e |- ( ( ps /\ a e. N /\ b e. N ) -> H e. K ) $.
      $( Lemma for ~ mdetuni .  (Contributed by SO, 15-Jul-2018.) $)
      mdetunilem2 $p |- ( ps -> ( D ` ( a e. N , b e. N |-> if ( a = E , F ,
                if ( a = G , F , H ) ) ) ) = .0. ) $=
        ( cv wceq cif cmpt2 wcel co wral wne w3a cfv crg cfn syl ifcld matbas2d
        3adant2 wa csb eqidd iftrue csbeq1a sylan9eq adantl simp1d adantr simpr
        weq wi nfv nfcsb1v nfel1 nfim eleq1 anbi2d imbi12d chvar nfcv ovmpt2dxf
        eleq1d simp3d neeq2 syl5ibrcom imp necomd neneqd adantrr iffalsed eqtrd
        wn simp2d eqtr4d ralrimiva mdetunilem1 syl31anc ) BAUAUBSSUAUTZNVAZOXNP
        VAZOQVBZVBZVCZHVDNFUTZXSVEZPXTXSVEZVAZFSVFNSVDZPSVDZNPVGZVHXSIVITVAUPBU
        AUBGHXRKRSVJUCUEUDBASVKVDUPUJVLBAKVJVDUPUKVLBXNSVDZUBUTZSVDZVHZXOOXQRBY
        IORVDZYGURVOZYJXPOQRYLUSVMVMVNBYCFSBXTSVDZVPZYAUBXTOVQZYBYNUAUBNXTSSXRY
        OXSSRYNXSVRZXOUBFWFZVPXRYOVAYNXOYQXROYOXOOXQVSUBXTOVTZWAWBYNXOVPSVRBYDY
        MBYDYEYFUQWCWDBYMWEZBYIVPZYKWGYNYORVDZWGUBFYNUUAUBYNUBWHZUBYORUBXTOWIZW
        JWKYQYTYNYKUUAYQYIYMBYHXTSWLWMYQOYORYRWRWNURWOZYNUAWHZUUBUBNWPUAXTWPZUA
        YOWPZUUCWQYNUAUBPXTSSXRYOXSSRYPYNXPYQVPZVPZXRXQYOUUIXOOXQYNXPXOXHYQYNXP
        VPZXNNUUJNXNYNXPNXNVGZYNUUKXPYFBYFYMBYDYEYFUQWSWDXNPNWTXAXBXCXDXEXFUUHX
        QYOVAYNXPYQXQOYOXPOQVSYRWAWBXGUUJSVRBYEYMBYDYEYFUQXIWDYSUUDUUEUUBUBPWPU
        UFUUGUUCWQXJXKUQACDEFGHIJKLMXSNPRSTUCUDUEUFUGUHUIUJUKULUMUNUOXLXM $.
    $}

    $( Lemma for ~ mdetuni .  (Contributed by SO, 15-Jul-2018.) $)
    mdetunilem3 $p |- ( ( ( ph /\ E e. B /\ F e. B ) /\ ( G e. B /\ H e. N /\
        ( E |` ( { H } X. N ) ) = ( ( F |` ( { H } X. N ) ) oF .+
          ( G |` ( { H } X. N ) ) ) ) /\ ( ( E |` ( ( N \ { H } ) X. N ) ) =
          ( F |` ( ( N \ { H } ) X. N ) ) /\ ( E |` ( ( N \ { H } ) X. N ) ) =
          ( G |` ( ( N \ { H } ) X. N ) ) ) ) ->
        ( D ` E ) = ( ( D ` F ) .+ ( D ` G ) ) ) $=
      ( wcel w3a csn cxp cres cof co wceq cdif wa cfv simp23 simp3l simp3r wral
      wi simprl simprr simpl2 simpl3 simpl1 syl reseq1 eqeq1d 3anbi123d imbi12d
      cv fveq2 2ralbidv oveq1d eqeq2d 3anbi12d rspc2va syl21anc oveq2d 3anbi13d
      xpeq1d reseq2d oveq12d eqeq12d difeq2d imbi1d 3adantr3 3adant3 mp3and
      sneq ) AMGUMZNGUMZUNZOGUMZPRUMZMPUOZRUPZUQZNXEUQZOXEUQZIURZUSZUTZUNZMRXDV
      AZRUPZUQZNXNUQZUTZXOOXNUQZUTZVBZUNXKXQXSMHVCZNHVCZOHVCZIUSZUTZXAXBXCXKXTV
      DXAXLXQXSVEXAXLXQXSVFXAXLXKXQXSUNZYEVHZXTXAXBXCYGXKXAXBXCVBZVBZXBXCMEVSZU
      OZRUPZUQZNYLUQZDVSZYLUQZXIUSZUTZMRYKVAZRUPZUQZNYTUQZUTZUUAYOYTUQZUTZUNZYA
      YBYOHVCZIUSZUTZVHZERVGDGVGZYGXAXBXCVIXAXBXCVJYIWSWTBVSZYLUQZCVSZYLUQZYPXI
      USZUTZUULYTUQZUUNYTUQZUTZUURUUDUTZUNZUULHVCZUUNHVCZUUGIUSZUTZVHZERVGDGVGZ
      CGVGBGVGZUUKAWSWTYHVKAWSWTYHVLYIAUVIAWSWTYHVMUKVNUVHUUKYMUUPUTZUUAUUSUTZU
      UEUNZYAUVEUTZVHZERVGDGVGBCMNGGUULMUTZUVGUVNDEGRUVOUVBUVLUVFUVMUVOUUQUVJUU
      TUVKUVAUUEUVOUUMYMUUPUULMYLVOVPUVOUURUUAUUSUULMYTVOZVPUVOUURUUAUUDUVPVPVQ
      UVOUVCYAUVEUULMHVTVPVRWAUUNNUTZUVNUUJDEGRUVQUVLUUFUVMUUIUVQUVJYRUVKUUCUUE
      UVQUUPYQYMUVQUUOYNYPXIUUNNYLVOWBWCUVQUUSUUBUUAUUNNYTVOWCWDUVQUVEUUHYAUVQU
      VDYBUUGIUUNNHVTWBWCVRWAWEWFUUJYGYMYNOYLUQZXIUSZUTZUUCUUAOYTUQZUTZUNZYEVHD
      EOPGRYOOUTZUUFUWCUUIYEUWDYRUVTUUEUWBUUCUWDYQUVSYMUWDYPUVRYNXIYOOYLVOWGWCU
      WDUUDUWAUUAYOOYTVOWCWHUWDUUHYDYAUWDUUGYCYBIYOOHVTWGWCVRYJPUTZUWCYFYEUWEUV
      TXKUUCXQUWBXSUWEYMXFUVSXJUWEYLXEMUWEYKXDRYJPWRZWIZWJUWEYNXGUVRXHXIUWEYLXE
      NUWGWJUWEYLXEOUWGWJWKWLUWEUUAXOUUBXPUWEYTXNMUWEYSXMRUWEYKXDRUWFWMWIZWJZUW
      EYTXNNUWHWJWLUWEUUAXOUWAXRUWIUWEYTXNOUWHWJWLVQWNWEWFWOWPWQ $.

    $( Lemma for ~ mdetuni .  (Contributed by SO, 15-Jul-2018.) $)
    mdetunilem4 $p |- ( ( ph /\ ( E e. B /\ F e. K /\ G e. B ) /\ ( H e. N /\
        ( E |` ( { H } X. N ) ) = ( ( ( { H } X. N ) X. { F } ) oF .x.
          ( G |` ( { H } X. N ) ) ) /\ ( E |` ( ( N \ { H } ) X. N ) ) =
          ( G |` ( ( N \ { H } ) X. N ) ) ) ) ->
        ( D ` E ) = ( F .x. ( D ` G ) ) ) $=
      ( wcel w3a csn cxp cres cof co wceq cdif cfv simp32 simp33 wa wi simp1 cv
      wral simp23 simp21 simp22 3ad2ant1 reseq1 eqeq1d anbi12d imbi12d 2ralbidv
      simp3 fveq2 sneq xpeq2d oveq1d eqeq2d anbi1d oveq1 syl21anc oveq2d xpeq1d
      rspc2va reseq2d oveq12d eqeq12d difeq2d imbi1d syl3an3 mp2and ) AMGUMZNQU
      MZOGUMZUNZPRUMZMPUOZRUPZUQZXDNUOZUPZOXDUQZKURZUSZUTZMRXCVAZRUPZUQZOXMUQZU
      TZUNZUNXKXPMHVBZNOHVBZKUSZUTZAXAXBXKXPVCAXAXBXKXPVDXQAXAXBXKXPVEZYAVFZXBX
      KXPVGAXAXBUNZWTXBMEVHZUOZRUPZUQZYGXFUPZDVHZYGUQZXIUSZUTZMRYFVAZRUPZUQZYJY
      OUQZUTZVEZXRNYJHVBZKUSZUTZVFZERVIDGVIZYCAWRWSWTXBVJAXAXBVSYDWRWSBVHZYGUQZ
      YGCVHZUOZUPZYKXIUSZUTZUUEYOUQZYQUTZVEZUUEHVBZUUGYTKUSZUTZVFZERVIDGVIZCQVI
      BGVIZUUDAWRWSWTXBVKAWRWSWTXBVLAXAUUTXBULVMUUSUUDYHUUJUTZYRVEZXRUUPUTZVFZE
      RVIDGVIBCMNGQUUEMUTZUURUVDDEGRUVEUUNUVBUUQUVCUVEUUKUVAUUMYRUVEUUFYHUUJUUE
      MYGVNVOUVEUULYPYQUUEMYOVNVOVPUVEUUOXRUUPUUEMHVTVOVQVRUUGNUTZUVDUUCDEGRUVF
      UVBYSUVCUUBUVFUVAYMYRUVFUUJYLYHUVFUUIYIYKXIUVFUUHXFYGUUGNWAWBWCWDWEUVFUUP
      UUAXRUUGNYTKWFWDVQVRWJWGUUCYCYHYIOYGUQZXIUSZUTZYPOYOUQZUTZVEZYAVFDEOPGRYJ
      OUTZYSUVLUUBYAUVMYMUVIYRUVKUVMYLUVHYHUVMYKUVGYIXIYJOYGVNWHWDUVMYQUVJYPYJO
      YOVNWDVPUVMUUAXTXRUVMYTXSNKYJOHVTWHWDVQYEPUTZUVLYBYAUVNUVIXKUVKXPUVNYHXEU
      VHXJUVNYGXDMUVNYFXCRYEPWAZWIZWKUVNYIXGUVGXHXIUVNYGXDXFUVPWIUVNYGXDOUVPWKW
      LWMUVNYPXNUVJXOUVNYOXMMUVNYNXLRUVNYFXCRUVOWNWIZWKUVNYOXMOUVQWKWMVPWOWJWGW
      PWQ $.

    ${
      $d ps a b x y z w $.  $d E a b $.
      mdetunilem5.ph $e |- ( ps -> ph ) $.
      mdetunilem5.e $e |- ( ps -> E e. N ) $.
      mdetunilem5.fgh $e |- ( ( ps /\ a e. N /\ b e. N ) ->
        ( F e. K /\ G e. K /\ H e. K ) ) $.
      $( Lemma for ~ mdetuni .  (Contributed by SO, 15-Jul-2018.) $)
      mdetunilem5 $p |- ( ps ->
          ( D ` ( a e. N , b e. N |-> if ( a = E , ( F .+ G ) , H ) ) ) =
            ( ( D ` ( a e. N , b e. N |-> if ( a = E , F , H ) ) ) .+
              ( D ` ( a e. N , b e. N |-> if ( a = E , G , H ) ) ) ) ) $=
        ( cv wceq cif cmpt2 wcel csn cxp cres cof cdif cfv crg cfn syl 3ad2ant1
        co w3a simp1d simp2d ringacl syl3anc simp3d ifcld matbas2d cvv snex a1i
        wss snssd simp2 sseldd syld3an2 eqidd offval22 mpt2snif oveq12i 3eqtr4g
        eqcomd ssid resmpt2 sylancl oveq12d 3eqtr4d wn eldifsni 3ad2ant2 neneqd
        wne iffalse eqtr4d mpt2eq3dva difss mp2an mdetunilem3 syl332anc ) BAUAU
        BSSUAUSZNUTZOPJVNZQVAZVBZHVCUAUBSSXOOQVAZVBZHVCUAUBSSXOPQVAZVBZHVCNSVCX
        RNVDZSVEZVFZXTYDVFZYBYDVFZJVGZVNZUTXRSYCVHZSVEZVFZXTYKVFZUTYLYBYKVFZUTX
        RIVIXTIVIYBIVIJVNUTUPBUAUBGHXQKRSVJUCUEUDBASVKVCUPUJVLZBAKVJVCZUPUKVLZB
        XNSVCZUBUSSVCZVOZXOXPQRYTYPORVCZPRVCZXPRVCBYRYPYSYQVMYTUUAUUBQRVCZURVPZ
        YTUUAUUBUUCURVQZRJKOPUEUHVRVSYTUUAUUBUUCURVTZWAWBBUAUBGHXSKRSVJUCUEUDYO
        YQYTXOOQRUUDUUFWAWBBUAUBGHYAKRSVJUCUEUDYOYQYTXOPQRUUEUUFWAWBUQBUAUBYCSX
        QVBZUAUBYCSXSVBZUAUBYCSYAVBZYHVNZYEYIBUAUBYCSXPVBZUAUBYCSOVBZUAUBYCSPVB
        ZYHVNZUUGUUJBUUNUUKBUAUBYCSOPJUULUUMWCVKRRYCWCVCBNWDWEYOBYRXNYCVCZYSUUA
        BUUOYSVOYCSXNBUUOYCSWFZYSBNSUQWGZVMBUUOYSWHWIZUUDWJBYRUUOYSUUBUURUUEWJB
        UULWKBUUMWKWLWPSXPQUAUBNWMUUHUULUUIUUMYHSOQUAUBNWMSPQUAUBNWMWNWOBUUPSSW
        FZYEUUGUTUUQSWQZUAUBSSYCSXQWRWSBYFUUHYGUUIYHBUUPUUSYFUUHUTUUQUUTUAUBSSY
        CSXSWRWSBUUPUUSYGUUIUTUUQUUTUAUBSSYCSYAWRWSWTXABUAUBYJSXQVBZUAUBYJSXSVB
        ZYLYMBUAUBYJSXQXSBXNYJVCZYSVOZXOXBZXQXSUTUVDXNNUVCBXNNXFYSXNSNXCXDXEZUV
        EXQQXSXOXPQXGZXOOQXGXHVLXIYJSWFZUUSYLUVAUTSYCXJZUUTUAUBSSYJSXQWRXKZUVHU
        USYMUVBUTUVIUUTUAUBSSYJSXSWRXKWOBUVAUAUBYJSYAVBZYLYNBUAUBYJSXQYAUVDUVEX
        QYAUTUVFUVEXQQYAUVGXOPQXGXHVLXIUVJUVHUUSYNUVKUTUVIUUTUAUBSSYJSYAWRXKWOA
        CDEFGHIJKLMXRXTYBNRSTUCUDUEUFUGUHUIUJUKULUMUNUOXLXM $.
    $}

    ${
      $d ps a b x y z w $.  $d E a b $.  $d F a b $.  $d G a $.  $d H a $.
      $d I x y z w $.
      mdetunilem6.ph $e |- ( ps -> ph ) $.
      mdetunilem6.ef $e |- ( ps -> ( E e. N /\ F e. N /\ E =/= F ) ) $.
      mdetunilem6.gh $e |- ( ( ps /\ b e. N ) -> ( G e. K /\ H e. K ) ) $.
      mdetunilem6.i $e |- ( ( ps /\ a e. N /\ b e. N ) -> I e. K ) $.
      $( Lemma for ~ mdetuni .  (Contributed by SO, 15-Jul-2018.) $)
      mdetunilem6 $p |- ( ps -> ( D ` ( a e. N , b e. N |-> if ( a = E , G ,
          if ( a = F , H , I ) ) ) ) = ( ( invg ` R ) ` ( D `
            ( a e. N , b e. N |-> if ( a = E , H ,
              if ( a = F , G , I ) ) ) ) ) ) $=
        ( cv wceq cif cmpt2 cfv cminusg co wcel wne simp1d w3a wa simprd simpld
        3adant2 cgrp ringgrp adantr grpcl syl3anc ifcld mdetunilem5 mdetunilem2
        crg 3syl 3jca simp2d simp3d necomd oveq1d wn neneqd eqtr2 nsyl 3ad2ant1
        ifcomnan syl mpt2eq3dva fveq2d wf cfn matbas2d ffvelrnd eqeltrrd grplid
        syl2anc 3eqtrd 3eqtr4d oveq2d grprid oveq12d 3eqtr3rd wb eqid grpinvid1
        mpbird eqcomd ) BUBUCTTUBVAZNVBZQXROVBZPRVCZVCZVDZIVEZKVFVEZVEZUBUCTTXS
        PXTQRVCZVCZVDZIVEZBYFYJVBZYDYJJVGZUAVBZBUBUCTTXSQPJVGZXTYNRVCZVCVDIVEUB
        UCTTXSQYOVCZVDZIVEZUBUCTTXSPYOVCZVDZIVEZJVGUAYLABCDEFGHIJKLMNQPYOSTUAUB
        UCUDUEUFUGUHUIUJUKULUMUNUOUPUQBNTVHZOTVHZNOVIZURVJZBXRTVHZUCVATVHZVKZQS
        VHZPSVHZYOSVHBUUGUUIUUFBUUGVLZUUJUUIUSVMZVOZBUUGUUJUUFUUKUUJUUIUSVNZVOZ
        UUHXTYNRSBUUGYNSVHZUUFUUKKVPVHZUUIUUJUUPBUUQUUGBAKWDVHUUQUQULKVQWEZVRUU
        LUUNSJKQPUFUIVSVTZVOUTWAWFWBABCDEFGHIJKLMNYNORSTUAUBUCUDUEUFUGUHUIUJUKU
        LUMUNUOUPUQURUUSUTWCBYRYDUUAYJJBUBUCTTXTYNXSQRVCZVCZVDZIVEZUBUCTTXTPUUT
        VCZVDZIVEZYRYDBUVCUBUCTTXTQUUTVCVDIVEZUVFJVGUAUVFJVGZUVFABCDEFGHIJKLMOQ
        PUUTSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQBUUBUUCUUDURWGZUUHUUIUUJUUTSVHU
        UMUUOUUHXSQRSUUMUTWAWFWBBUVGUAUVFJABCDEFGHIJKLMOQNRSTUAUBUCUDUEUFUGUHUI
        UJUKULUMUNUOUPUQBUUCUUBONVIUVIUUEBNOBUUBUUCUUDURWHZWIWFZUULUTWCWJBUUQUV
        FSVHUVHUVFVBUURBYDUVFSBYCUVEIBUBUCTTYBUVDUUHXSXTVLZWKZYBUVDVBBUUFUVMUUG
        BNOVBUVLBNOUVJWLXRNOWMWNWOZXSXTQPRWPWQWRWSZBHSYCIBAHSIWTUQUMWQZBUBUCGHY
        BKSTVPUDUFUEBATXAVHUQUKWQZUURUUHXSQYASUUMUUHXTPRSUUOUTWAWAXBXCZXDSJKUVF
        UAUFUIUGXEXFXGBYQUVBIBUBUCTTYPUVAUUHUVMYPUVAVBUVNXSXTQYNRWPWQWRWSUVOXHB
        UBUCTTXTYNXSPRVCZVCZVDZIVEZUBUCTTXTQUVSVCZVDZIVEZUUAYJBUWBUWEUBUCTTXTPU
        VSVCVDIVEZJVGUWEUAJVGZUWEABCDEFGHIJKLMOQPUVSSTUAUBUCUDUEUFUGUHUIUJUKULU
        MUNUOUPUQUVIUUHUUIUUJUVSSVHUUMUUOUUHXSPRSUUOUTWAWFWBBUWFUAUWEJABCDEFGHI
        JKLMOPNRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQUVKUUNUTWCXIBUUQUWESVHUWGUW
        EVBUURBYJUWESBYIUWDIBUBUCTTYHUWCUUHUVMYHUWCVBUVNXSXTPQRWPWQWRWSZBHSYIIU
        VPBUBUCGHYHKSTVPUDUFUEUVQUURUUHXSPYGSUUOUUHXTQRSUUMUTWAWAXBXCZXDSJKUWEU
        AUFUIUGXJXFXGBYTUWAIBUBUCTTYSUVTUUHUVMYSUVTVBUVNXSXTPYNRWPWQWRWSUWHXHXK
        XLBUUQYDSVHYJSVHYKYMXMUURUVRUWISJKYEYDYJUAUFUIUGYEXNXOVTXPXQ $.
    $}

    ${
      $d E a b c d e f $.  $d F a b c d e f $.  $d R c d f $.  $d .x. c d $.
      $( Lemma for ~ mdetuni .  (Contributed by SO, 15-Jul-2018.) $)
      mdetunilem7 $p |- ( ( ph /\ E : N -1-1-onto-> N /\ F e. B ) -> ( D `
          ( a e. N , b e. N |-> ( ( E ` a ) F b ) ) ) =
          ( ( ( ( ZRHom ` R ) o. ( pmSgn ` N ) ) ` E ) .x. ( D ` F ) ) ) $=
        ( vc vd ve vf wf1o wcel w3a cv cfv co cmpt2 czrh cpsgn ccom wceq cplusg
        csymg c0g cbs cpmtr crn weq fveq1 oveq1d mpt2eq3dv fveq2d fveq2 eqeq12d
        eqid cfn cgrp cmnd 3ad2ant1 symggrp grpmnd 3syl wss symgtrf a1i csubmnd
        cmrc symggen2 syl eqcomd crg simp3 ffvelrnd ringlidm syl2anc zrhpsgnmhm
        cmgp cmhm ringidval cid fveq1d simp2 eqtr3d mpt2eq3dva wfn 3ad2ant3 ffn
        wf eqtr4d wa eqtrd wne cpr wrex cif adantl adantr ad2antrr simpr fovrnd
        simprlr simprll pmtrprfv syl13anc sylan9eqr iftrue wn fveq2i wb syl3anc
        cdif mpbird iffalse pm2.61dan mhm0 cres symgid fvresi cxp cmap matbas2i
        elmapi fnov sylib 3eqtr4rd cminusg sseli symgbasf1o f1of fvco3 symgbasf
        symgov pmtrrn2 wi simpll1 df-3an biimpri simpllr jca mdetunilem6 simpl1
        simp1lr simprr prcom fveq1i simplrl simprd simpld simplrr necomd syl5eq
        adantlr cdm wo vex elpr notbii ioran sylbbr adantll c2o cen prssi pr2ne
        wbr pmtrmvd eleq2d notbid pmtrf fnelnfp 3adant3 sylan pm2.61i mpt2eq3ia
        necon2bbid 3eqtr4d eqeq1d syl5ibrcom expr impd rexlimdvva 3impia mgpbas
        syl5 syl3an2 mhmf simp13 ringmneg1 mgpplusg mhmlin pmtrodpm zrhpsgnodpm
        cevpm oveq2d rngnegr 3eqtrrd 3eqtrd elsymgbas mrcmndind ) APPMUQZNGURZU
[encoded data, 5520 characters]
        EVWBUYDWOYRUYE $.
    $}

    ${
      $d E a b c d $.
      mdetunilem8.id $e |- ( ph -> ( D ` ( 1r ` A ) ) = .0. ) $.
      $( Lemma for ~ mdetuni .  (Contributed by SO, 15-Jul-2018.) $)
      mdetunilem8 $p |- ( ( ph /\ E : N --> N ) -> ( D `
          ( a e. N , b e. N |-> if ( ( E ` a ) = b , .1. , .0. ) ) ) = .0. ) $=
        ( vc vd wf wa wf1 cv cfv wceq cif cmpt2 wi co czrh cpsgn ccom wf1o wcel
        cur simpl cen wbr cfn wb enrefg syl f1finf1o syl2anc biimpa crg matring
        eqid ringidcl adantr mdetunilem7 syl3anc 3ad2ant1 simp1r simp2 ffvelrnd
        w3a f1f simp3 mat1ov mpt2eq3dva fveq2d oveq2d csymg cbs cmgp zrhpsgnmhm
        cmhm mgpbas mhmf elsymgbas mpbird ringrz eqtrd 3eqtr3d ex wne wrex wral
        weq ibar adantl dff13 syl6rbbr notbid rexnal df-ne anbi2i bitr2i rexbii
        wn annim bitr3i syl6bb simprrl fveq2 eqeq1d ifbid iftrue eqtr4d iffalse
        eqcomd pm2.61i syl6reqr ifcld eqeq1 eqcoms ifeq1d ifeq2d syl5eq simprll
        mpt2eq3dv simprlr simprrr 3jca ring0cl ad3antrrr mdetunilem2 rexlimdvva
        simpll simp1ll expr sylbid pm2.61d ) AOOMUOZUPZOOMUQZQROOQURZMUSZRURZUT
        ZLPVAZVBZHUSZPUTZAUVBUVJVCUUTAUVBUVJAUVBUPZQROOUVDUVEFVJUSZVDZVBZHUSZMJ
        VEUSOVFUSVGZUSZUVLHUSZKVDZUVIPUVKAOOMVHZUVLGVIZUVOUVSUTAUVBVKAUVBUVTAOO
        VLVMZOVNVIZUVBUVTVOAUWCUWBUFOVNVPVQUFOOMVRVSVTZAUWAUVBAFWAVIZUWAAUWCJWA
        VIZUWEUFUGFJOSWBVSGFUVLTUVLWCZWDVQWEABCDEFGHIJKLMUVLNOPQRSTUAUBUCUDUEUF
        UGUHUIUJUKWFWGUVKUVNUVHHUVKQROOUVMUVGUVKUVCOVIZUVEOVIZWLZFJUVLLUVDUVEOP
        SUCUBUVKUWHUWCUWIAUWCUVBUFWEZWHUVKUWHUWFUWIAUWFUVBUGWEZWHUWJOOUVCMUWJUV
        BUUTAUVBUWHUWIWIOOMWMVQUVKUWHUWIWJWKUVKUWHUWIWNUWGWOWPWQUVKUVSUVQPKVDZP
        UVKUVRPUVQKAUVRPUTUVBULWEWRUVKUWFUVQNVIUWMPUTUWLUVKOWSUSZWTUSZNMUVPAUWO
        NUVPUOZUVBAUVPUWNJXAUSZXCVDVIZUWPAUWFUWCUWRUGUFOJXBVSUWONUWNUWQUVPUWOWC
        ZNJUWQUWQWCUAXDXEVQWEUVKMUWOVIZUVTUWDUVKUWCUWTUVTVOUWKOUWOMUWNVNUWNWCUW
        SXFVQXGWKNJKUVQPUAUEUBXHVSXIXJXKWEUVAUVBYFZUMURZMUSZUNURZMUSZUTZUXBUXDX
        LZUPZUNOXMZUMOXMZUVJUVAUXAUXFUMUNXOZVCZUNOXNZUMOXNZYFZUXJUVAUVBUXNUVAUX
        NUUTUXNUPZUVBUUTUXNUXPVOAUUTUXNXPXQUMUNOOMXRXSXTUXOUXMYFZUMOXMUXJUXMUMO
        YAUXQUXIUMOUXQUXLYFZUNOXMUXIUXLUNOYAUXRUXHUNOUXHUXFUXKYFZUPUXRUXGUXSUXF
        UXBUXDYBYCUXFUXKYGYDYEYHYEYHYIUVAUXHUVJUMUNOOUVAUXBOVIZUXDOVIZUPZUXHUVJ
        UVAUYBUXHUPZUPZUVIQROOQUMXOZUXCUVEUTZLPVAZQUNXOZUYGUVGVAZVAZVBZHUSZPUYD
        UXFUVIUYLUTUVAUYBUXFUXGYJUXFUVHUYKHUXFQROOUVGUYJUXFUVGUYEUYGUYHUXEUVEUT
        ZLPVAZUVGVAZVAZUYJUYEUVGUYPUTUYEUVGUYGUYPUYEUVFUYFLPUYEUVDUXCUVEUVCUXBM
        YKYLYMUYEUYGUYOYNYOUYEYFUYPUYOUVGUYEUYGUYOYPUYHUVGUYOUTUYHUVGUYNUYOUYHU
        VFUYMLPUYHUVDUXEUVEUVCUXDMYKYLYMUYHUYNUVGYNYOUYHYFUYOUVGUYHUYNUVGYPYQYR
        YSYRUXFUYEUYOUYIUYGUXFUYHUYNUYGUVGUXFUYMUYFLPUYMUYFVOUXEUXCUXEUXCUVEUUA
        UUBYMUUCUUDUUEUUGWQVQAUYDBCDEFGHIJKLUXBUYGUXDUVGNOPQRSTUAUBUCUDUEUFUGUH
        UIUJUKAUUTUYCUUOUYDUXTUYAUXGUVAUXTUYAUXHUUFUVAUXTUYAUXHUUHUVAUYBUXFUXGU
        UIUUJAUYGNVIUUTUYCUWIAUYFLPNAUWFLNVIUGNJLUAUCWDVQZAUWFPNVIUGNJPUAUBUUKV
        QZYTUULUYDUWHUWIWLAUVGNVIAUUTUYCUWHUWIUUPAUVFLPNUYQUYRYTVQUUMXIUUQUUNUU
        RUUS $.
    $}

    ${
      $d .+ c $.
      mdetunilem9.id $e |- ( ph -> ( D ` ( 1r ` A ) ) = .0. ) $.
      mdetunilem9.y $e |- Y = { x | A. y e. B A. z e. ( N ^m N ) ( A. w e. x
          ( y ` w ) = if ( w e. z , .1. , .0. ) -> ( D ` y ) = .0. ) } $.
      $( Lemma for ~ mdetuni .  (Contributed by SO, 15-Jul-2018.) $)
      mdetunilem9 $p |- ( ph -> D = ( B X. { .0. } ) ) $=
        ( va vb vc vd ve cv cfv cmpt csn cxp wcel wa cres cif wceq c0 co wel wi
        wral mp1i cfn mpbird adantr elmapi syl feqmptd fveq2d eqid adantl eleq1
        wf weq elequ2 ifbid eqeq1d imbi12d cop w3a 3ad2ant1 syl2anc eqtrd raleq
        wb imbi1d 2ralbidv wss sseq1 3anbi2d notbid ax-mp c1st cdif xp1st ifcld
        wn vex syl3anc eqcomd iftrue oveq12d eqtr4d iffalse pm2.61dan mpteq2dva
        cvv sylancr fvex eqeltri ifex resmptd 3eqtr4d resmpt fveq2 fmptd elmapg
        a1i cbs reseq1 oveq1d eqeq2d rspc2va syl21anc oveq2d reseq2d c2nd fveq1
        eqeq12d ralbidv ral0 cmap simpr wf1o f1oi f1of simplrl matbas2i mpteq12
        cid elmapd mpan mpteq2dv cmpt2 mpt2mpt wfn ffn simp2 fnopfvb mpt2eq3dva
        anbi2d bicomd syl5eq mdetunilem8 sylan2 chvarv adantrl 3eqtrd ex elab2g
        ralrimivva xpfi ssid cun simp3 ssun1 sstr2 3anim2i imim1i simpl1 simpl2
        csg simprll cof 3ad2ant3 reseq1d cgrp ringgrp unssbd sylibr snssd xpss1
        crg snss sselda ffvelrnd ringidcl ring0cl grpnpcan grplid snfi ovex c0g
        cur elsni 3syl mpteq2ia eqidd offval2 eldifsni neneqd iffalsed 3eqtr4rd
        difss nsyl ffvelrnda anidms matbas2 syl6eqr grpsubcl 3anbi123d 3anbi12d
        wne eleqtrd 3anbi13d sneq xpeq1d mp3and elequ1 ringridm ad2antrr ringrz
        difeq2d iftrued ovexd anbi12d xpeq2d anbi1d oveq1 mp2and simpl3 simprlr
        fconstmpt simprr csts ralss ibar wrel relxp 1st2nd xp2nd fsets fvsetsid
        eleq1d syl211anc mp3an syl6eq syl6bb 3bitr2rd ad3antrrr xpopth 3bitr3rd
        eqcom a1d wo con3i elun biimpi orel2 sylc adantll setsres df-ne biimpri
        eleq2d eldifsn sylanbrc opres 1st2nd2 bitr4d syl5ibrcom embantd equequ1
        syl2an ifeq2 ifbieq12d fvmpt sylibrd ralimdva syl5bi impr simpr2 simpr1
        3adantr1 ibi eleq2 mpd unssad ssel2 ifid ralunsn syl33anc expr cbvral2v
        simpr3 sylib elab2 3expia con3d 3adant3 syl5 findcard2s mpcom 3exp mt4d
        a2d mpi 0ex ) AULGULUQZHURZUSULGPUSZHGPUTVAZAULGVXTPAVXSGVBZVCZEUQZVXSU
[encoded data, 13600 characters]
        HLPWUNVYGVYEVWPWFYLYTWPYMYNVXQXPAULGMHUFVRVYBVYAVFAULGPVUCYHYC $.
    $}

    $d R a b c d e $.  $d .x. a b c d e $.  $d E a b c d e $.  $d F a $.
    $d A e $.  $d .+ c d $.
    mdetuni.e $e |- E = ( N maDet R ) $.
    mdetuni.cr $e |- ( ph -> R e. CRing ) $.
    mdetuni.f $e |- ( ph -> F e. B ) $.
    $( Lemma for ~ mdetuni .  (Contributed by SO, 15-Jul-2018.) $)
    mdetuni0 $p |- ( ph -> ( D ` F )
                           = ( ( D ` ( 1r ` A ) ) .x. ( E ` F ) ) ) $=
      ( va vb vc vd ve cfv cur co csg wceq cv cmpt csn cxp wel cif wral wi cmap
      cab wcel cgrp crg ringgrp syl adantr ffvelrnda cfn jca eqid ringidcl 3syl
      wa matring ffvelrnd wf mdetf ringcl syl3anc grpsubcl fmptd wne w3a simpr1
      ccrg fveq2 oveq2d oveq12d fvmpt 3adant3 simp1 simp21 simp3r oveq2 eqeq12d
      weq ovex cbvralv sylib simp22 simp23 simp3l mdetunilem1 syl33anc 3ad2ant1
      mdetralt syl2anc grpsubid eqtrd 3eqtrd 3expia cof simp2ll simp2lr simp2rl
      simp2rr simprll simprlr simprrl 3eqtr4d anassrs ralrimivva cvv c0g fvmptd
      cres syl13anc ringrz grpidcl ralrimivvva simp31 simp32 simp33 mdetunilem3
      cdif syl332anc mdetrlin cabl ringabl ablsub4 syl122anc ringdi mdetunilem4
      eqcomd 3eqtr2d syl133anc mdetrsca ringsubdi crngmgp mgpbas mgpplusg cmn12
      cmgp ccmn eqidd ringridm sylan9eqr fvex eqeltri mdetunilem9 fveq1d adantl
      mdet1 a1i ovexd fvconst2 3eqtr3d wb grpsubeq0 mpbid ) ANHUSZFUTUSZHUSZNMU
[encoded data, 4400 characters]
      MUXSUMWHOJKUWFUWGTUDWKWLOJUWIUWDUWHQTUAUXTUWBWLUWC $.

    mdetuni.no $e |- ( ph -> ( D ` ( 1r ` A ) ) = .1. ) $.
    $( According to the definition in [Weierstrass] p. 272, the determinant
       function is the unique multilinear, alternating and normalized function
       from the algebra of square matrices of the same dimension over a
       commutative ring to this ring.  So for any multilinear (mdetuni.li and
       mdetuni.sc), alternating (mdetuni.al) and normalized (mdetuni.no)
       function D (mdetuni.ff) from the algebra of square matrices (mdetuni.a)
       to their underlying commutative ring (mdetuni.cr), the function value of
       this function D for a matrix F (mdetuni.f) is the determinant of this
       matrix.  (Contributed by Stefan O'Rear, 15-Jul-2018.)  (Revised by
       Alexander van der Vekens, 8-Feb-2019.) $)
    mdetuni $p |- ( ph -> ( D ` F ) = ( E ` F ) ) $=
      ( cfv cur co mdetuni0 oveq1d crg wcel wceq mdetcl syl2anc ringlidm 3eqtrd
      ccrg ) ANHUOFUPUOHUOZNMUOZKUQLVIKUQZVIABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGU
      HUIUJUKULUMURAVHLVIKUNUSAJUTVAVIOVAZVJVIVBUFAJVGVANGVAVKULUMFGMJONPUKRSTV
      CVDOJKLVITUDUBVEVDVF $.
  $}

  ${
    $d B a b c d e $.  $d .xb a b c d e $.  $d D a b c d e $.
    $d G a b c d e $.  $d F a b c d e $.  $d R a b c d e $.
    $d .x. a b c d e $.  $d N a b c d e $.  $d A a b c d e $.
    mdetmul.a $e |- A = ( N Mat R ) $.
    mdetmul.b $e |- B = ( Base ` A ) $.
    mdetmul.d $e |- D = ( N maDet R ) $.
    mdetmul.t1 $e |- .x. = ( .r ` R ) $.
    mdetmul.t2 $e |- .xb = ( .r ` A ) $.
    $( Multiplicativity of the determinant function: the determinant of a
       matrix product of square matrices equals the product of their
       determinants.  Proposition 4.15 in [Lang] p. 517.  (Contributed by
       Stefan O'Rear, 16-Jul-2018.) $)
    mdetmul $p |- ( ( R e. CRing /\ F e. B /\ G e. B ) ->
        ( D ` ( F .xb G ) ) = ( ( D ` F ) .x. ( D ` G ) ) ) $=
      ( wcel co cfv wceq 3adant3 cres va vb vc vd ve ccrg w3a cv cur cplusg cbs
      cmpt c0g cfn cvv matrcl simpld 3ad2ant2 crg crngring 3ad2ant1 wa wf mdetf
      eqid adantr matring syl2anc simpr simpl3 ringcl syl3anc ffvelrnd wne wral
      fmptd wi simp21 weq oveq1 fveq2d fvmpt simp11 simpr1 simp22 simp23 simp3l
      fvex cgsu simpl3r ralimi mpteq12 sylancr oveq2d cmmul simp1 cmulr matmulr
      syl cotp syl6eqr ad2antrr oveqd simpll1 cxp cmap simplr1 matbas2i simplr2
      3ad2ant3 mamufv eqtr3d 3adantl3 simplr3 3eqtr4d ralrimiva mdetralt 3expia
      eqtrd ralrimivvva csn cof cdif simprll simprlr simprrl simp2rr oveq1d a1i
      simprrr snssd elmapssres reseq1d simpl1 mamures oveq12d difssd ralrimivva
      wss anassrs simp31 snfi xpss1 mamudi simp32 simp33 simp2lr mamuvs1 eqtr4d
      mdetrlin simp3r mdetrsca simp2ll simp2rl simp2 mdetuni0 ringidcl ringlidm
      3syl simp3 crngcom 3eqtr3d ) DUFOZGBOZHBOZUGZGUABUAUHZHEPZCQZULZQZAUIQZUV
[encoded data, 5680 characters]
      OWVTUVSRUYRUVFBUWBHCUWNWWDVMUVFBUWBGCUWNWVSVMUWBDFUVRUVNUWDMUVAVLXSUVB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Determinants of 2 x 2 -matrices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    m2detleiblem1.n $e |- N = { 1 , 2 } $.
    m2detleiblem1.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    m2detleiblem1.y $e |- Y = ( ZRHom ` R ) $.
    m2detleiblem1.s $e |- S = ( pmSgn ` N ) $.
    m2detleiblem1.o $e |- .1. = ( 1r ` R ) $.
    $( Lemma 1 for ~ m2detleib .  (Contributed by AV, 12-Dec-2018.) $)
    m2detleiblem1 $p |- ( ( R e. Ring /\ Q e. P )
           -> ( Y ` ( S ` Q ) ) = ( ( ( pmSgn ` N ) ` Q ) ( .g ` R ) .1. ) ) $=
      ( wcel cfv cz wceq c1 cop c2 cpr crg wa cmg co cpsgn wo elpri fveq2 cpmtr
      crn csymg eqid psgnprfval1 syl6eq 1z syl6eqel cneg psgnprfval2 neg1z jaoi
      syl cvv cn 1ex 2nn symg2bas mp2an eleq2s zrhmulg sylan2 a1i fveq1d oveq1d
      eqtrd ) CUAMZBAMZUBZBDNZGNZVRECUCNZUDZBFUENZNZEVTUDVPVOVROMZVSWAPWDBQQRSS
      RTZQSRSQRTZTZABWGMBWEPZBWFPZUFWDBWEWFUGWHWDWIWHVRQOWHVRWEDNQBWEDUHAFFUINU
      JZFUKNZDHWKULZIWJULZKUMUNUOUPWIVRQUQZOWIVRWFDNWNBWFDUHAFWJWKDHWLIWMKURUNU
      SUPUTVAQVBMSVCMAWGPVDVEFAWKQSVBVCWLIHVFVGVHCVTEGVRJVTULLVIVJVQVRWCEVTVQBD
      WBDWBPVQKVKVLVMVN $.

    $( Lemma 5 for ~ m2detleib .  (Contributed by AV, 20-Dec-2018.) $)
    m2detleiblem5 $p |- ( ( R e. Ring /\ Q = { <. 1 , 1 >. , <. 2 , 2 >. } )
                          -> ( Y ` ( S ` Q ) ) = .1. ) $=
      ( wcel c1 cop c2 cpr wceq cfv eqid crg wa cpsgn cmg co cvv 1ex prex prid1
      cn csymg symg2bas syl5eleqr mp2an eleq1 mpbiri m2detleiblem1 sylan2 fveq2
      2nn adantl cpmtr crn psgnprfval1 syl6eq oveq1d cbs ringidcl adantr 3eqtrd
      mulg1 syl ) CUAMZBNNOZPPOZQZRZUBZBDSGSZBFUCSZSZECUDSZUEZNEWBUEZEVQVMBAMZV
      SWCRVQWEVPAMZNUFMZPUJMZWFUGUTWGWHUBVPVPNPOPNOQZQAVPWIVNVOUHUIFAFUKSZNPUFU
      JWJTZIHULUMUNBVPAUOUPABCDEFGHIJKLUQURVRWANEWBVRWAVPVTSZNVQWAWLRVMBVPVTUSV
      AAFFVBSVCZWJVTHWKIWMTVTTVDVEVFVRECVGSZMZWDERVMWOVQWNCEWNTZLVHVIWNWBCEWPWB
      TVKVLVJ $.

    m2detleiblem1.i $e |- I = ( invg ` R ) $.
    $( Lemma 6 for ~ m2detleib .  (Contributed by AV, 20-Dec-2018.) $)
    m2detleiblem6 $p |- ( ( R e. Ring /\ Q = { <. 1 , 2 >. , <. 2 , 1 >. } )
                          -> ( Y ` ( S ` Q ) ) = ( I ` .1. ) ) $=
      ( wcel c1 c2 cop cfv eqid crg cpr wceq wa cpsgn cmg cneg cvv 1ex 2nn prex
      co prid2 csymg symg2bas syl5eleqr mp2an eleq1 mpbiri m2detleiblem1 sylan2
      cn fveq2 adantl cpmtr crn psgnprfval2 syl6eq oveq1d cgrp ringgrp ringidcl
      cbs mulgm1 syl2anc adantr 3eqtrd ) CUAOZBPQRZQPRZUBZUCZUDZBDSHSZBGUESZSZE
      CUFSZULZPUGZEWGULZEFSZWBVRBAOZWDWHUCWBWLWAAOZPUHOZQVBOZWMUIUJWNWOUDWAPPRQ
      QRUBZWAUBAWPWAVSVTUKUMGAGUNSZPQUHVBWQTZJIUOUPUQBWAAURUSABCDEGHIJKLMUTVAWC
      WFWIEWGWCWFWAWESZWIWBWFWSUCVRBWAWEVCVDAGGVESVFZWQWEIWRJWTTWETVGVHVIVRWJWK
      UCZWBVRCVJOECVMSZOXACVKXBCEXBTZMVLXBWGCFEXCWGTNVNVOVPVQ $.

    m2detleiblem1.t $e |- .x. = ( .r ` R ) $.
    m2detleiblem1.m $e |- .- = ( -g ` R ) $.
    $( Lemma 7 for ~ m2detleib .  (Contributed by AV, 20-Dec-2018.) $)
    m2detleiblem7 $p |- ( ( R e. Ring /\ X e. ( Base ` R )
                             /\ Z e. ( Base ` R ) )
                    -> ( X ( +g ` R ) ( ( I ` .1. ) .x. Z ) ) = ( X .- Z ) ) $=
      ( cfv crg wcel cbs w3a co cplusg wceq wa eqid simpl simpr ringnegl oveq2d
      3adant2 grpsubval 3adant1 eqtr4d ) BUAUBZIBUCTZUBZKUSUBZUDZIEFTKDUEZBUFTZ
      UEIKFTZVDUEZIKGUEZVBVCVEIVDURVAVCVEUGUTURVAUHUSBDEFKUSUIZRPQURVAUJURVAUKU
      LUNUMUTVAVGVFUGURUSVDBFGIKVHVDUIQSUOUPUQ $.
  $}

  ${
    $d n B $.  $d n M $.  $d n N $.  $d n P $.  $d n Q $.  $d n R $.
    m2detleiblem2.n $e |- N = { 1 , 2 } $.
    m2detleiblem2.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    m2detleiblem2.a $e |- A = ( N Mat R ) $.
    m2detleiblem2.b $e |- B = ( Base ` A ) $.
    m2detleiblem2.g $e |- G = ( mulGrp ` R ) $.
    $( Lemma 2 for ~ m2detleib .  (Contributed by AV, 16-Dec-2018.)  (Proof
       shortened by AV, 1-Jan-2019.) $)
    m2detleiblem2 $p |- ( ( R e. Ring /\ Q e. P /\ M e. B )
            -> ( G gsum ( n e. N |-> ( ( Q ` n ) M n ) ) ) e. ( Base ` R ) ) $=
      ( wcel cfv c1 c2 co cfz crg w3a cbs eqid mgpbas cmnd ringmgp 3ad2ant1 cuz
      cv 2eluzge1 a1i wceq caddc cpr cz 1z fzpr ax-mp 1p1e2 preq2i eqtri oveq2i
      df-2 3eqtr4ri matepmcl gsummptfzcl ) EUAOZDCOZHBOZUBZEUCPZFGIQRFUJZDPVMHS
      VLEGNVLUDUEVHVIGUFOVJEGNUGUHRQUIPOVKUKULIQRTSZUMVKQQQUNSZTSZQRUOZVNIVPQVO
      UOZVQQUPOVPVRUMUQQURUSVORQUTVAVBRVOQTVDVCJVEULABCDEFHILMKVFVG $.

    m2detleiblem3.m $e |- .x. = ( +g ` G ) $.
    $( Lemma 3 for ~ m2detleib .  (Contributed by AV, 16-Dec-2018.)  (Proof
       shortened by AV, 2-Jan-2019.) $)
    m2detleiblem3 $p |- ( ( R e. Ring /\ Q = { <. 1 , 1 >. , <. 2 , 2 >. }
                             /\ M e. B )
                           -> ( G gsum ( n e. N |-> ( ( Q ` n ) M n ) ) )
                              = ( ( 1 M 1 ) .x. ( 2 M 2 ) ) ) $=
      ( wcel c1 c2 cfv crg cop cpr wceq w3a cv co cmpt cgsu cbs cvv eqid mgpbas
      cmgp fvex eqeltri a1i wral wf cn 1ex 2nn wa prex prid1 symg2bas syl5eleqr
      csymg mp2an eleq1 mpbiri cmat oveq1i eqtri fveq2i matepmcl syl3an2 mpteq1
      ax-mp fmpt sylib gsumpr12val eleqtrri fveq2 oveq12d eleq1d rspcva sylancr
      fvmptg fveq1 wne 1ne2 fvpr1 syl6eq 3ad2ant2 oveq1d eqtrd 2ex prid2 fvpr2
      id ) EUAQZDRRUBZSSUBZUCZUDZIBQZUEZHGJGUFZDTZXIIUGZUHZUIUGRXLTZSXLTZFUGRRI
      UGZSSIUGZFUGXHEUJTZFXLHUKXQEHOXQULUMPHUKQXHHEUNTUKOEUNUOUPUQXHXKXQQZGRSUC
      ZURZXSXQXLUSXFXBDCQZXGXTXFYAXECQZRUKQZSUTQZYBVAVBYCYDVCXEXERSUBSRUBUCZUCC
      XEYEXCXDVDVEJCJVHTZRSUKUTYFULLKVFVGVIDXECVJVKZABCDEGIXSAJEVLUGXSEVLUGMJXS
      EVLKVMVNNCYFUJTXSVHTZUJTLYFYHUJJXSVHKVOVOVNVPVQGXSXQXKXLJXSUDXLGXSXKUHUDK
      GJXSXKVRVSVTWAWBXHXMXOXNXPFXHXMRDTZRIUGZXOXHRJQZYJXQQZXMYJUDRXSJRSVAVEKWC
      ZXHYKXRGJURZYLYMXFXBYAXGYNYGABCDEGIJMNLVPVQZXRYLGRJXIRUDZXKYJXQYPXJYIXIRI
      XIRDWDYPXAWEZWFWGWHGRXKYJJXQXLYQXLULZWIWHXHYIRRIXFXBYIRUDXGXFYIRXETZRRDXE
      WJRSWKZYSRUDWLRSRSVAVAWMVSWNWOWPWQXHXNSDTZSIUGZXPXHSJQZUUBXQQZXNUUBUDSXSJ
      RSWRWSKWCZXHUUCYNUUDUUEYOXRUUDGSJXISUDZXKUUBXQUUFXJUUAXISIXISDWDUUFXAWEZW
      FWGWHGSXKUUBJXQXLUUGYRWIWHXHUUASSIXFXBUUASUDXGXFUUASXETZSSDXEWJYTUUHSUDWL
      RSRSWRWRWTVSWNWOWPWQWEWQ $.

    $( Lemma 4 for ~ m2detleib .  (Contributed by AV, 20-Dec-2018.)  (Proof
       shortened by AV, 2-Jan-2019.) $)
    m2detleiblem4 $p |- ( ( R e. Ring /\ Q = { <. 1 , 2 >. , <. 2 , 1 >. }
                            /\ M e. B )
                          -> ( G gsum ( n e. N |-> ( ( Q ` n ) M n ) ) )
                             = ( ( 2 M 1 ) .x. ( 1 M 2 ) ) ) $=
      ( wcel c1 c2 cfv crg cop cpr wceq w3a cv co cmpt cgsu cbs cvv eqid mgpbas
      cmgp fvex eqeltri a1i wral wf cn 1ex 2nn wa prex prid2 symg2bas syl5eleqr
      csymg mp2an eleq1 mpbiri cmat oveq1i eqtri fveq2i matepmcl syl3an2 mpteq1
      ax-mp fmpt sylib gsumpr12val prid1 eleqtrri oveq12d eleq1d rspcva sylancr
      fveq2 fvmptg fveq1 wne 1ne2 2ex fvpr1 syl6eq 3ad2ant2 oveq1d eqtrd fvpr2
      id ) EUAQZDRSUBZSRUBZUCZUDZIBQZUEZHGJGUFZDTZXIIUGZUHZUIUGRXLTZSXLTZFUGSRI
      UGZRSIUGZFUGXHEUJTZFXLHUKXQEHOXQULUMPHUKQXHHEUNTUKOEUNUOUPUQXHXKXQQZGRSUC
      ZURZXSXQXLUSXFXBDCQZXGXTXFYAXECQZRUKQZSUTQZYBVAVBYCYDVCXERRUBSSUBUCZXEUCC
      YEXEXCXDVDVEJCJVHTZRSUKUTYFULLKVFVGVIDXECVJVKZABCDEGIXSAJEVLUGXSEVLUGMJXS
      EVLKVMVNNCYFUJTXSVHTZUJTLYFYHUJJXSVHKVOVOVNVPVQGXSXQXKXLJXSUDXLGXSXKUHUDK
      GJXSXKVRVSVTWAWBXHXMXOXNXPFXHXMRDTZRIUGZXOXHRJQZYJXQQZXMYJUDRXSJRSVAWCKWD
      ZXHYKXRGJURZYLYMXFXBYAXGYNYGABCDEGIJMNLVPVQZXRYLGRJXIRUDZXKYJXQYPXJYIXIRI
      XIRDWIYPXAWEZWFWGWHGRXKYJJXQXLYQXLULZWJWHXHYISRIXFXBYISUDXGXFYIRXETZSRDXE
      WKRSWLZYSSUDWMRSSRVAWNWOVSWPWQWRWSXHXNSDTZSIUGZXPXHSJQZUUBXQQZXNUUBUDSXSJ
      RSWNVEKWDZXHUUCYNUUDUUEYOXRUUDGSJXISUDZXKUUBXQUUFXJUUAXISIXISDWIUUFXAWEZW
      FWGWHGSXKUUBJXQXLUUGYRWJWHXHUUARSIXFXBUUARUDXGXFUUASXETZRSDXEWKYTUUHRUDWM
      RSSRWNVAWTVSWPWQWRWSWEWS $.
  $}

  ${
    $d k n B $.  $d k n M $.  $d k n N $.  $d k n R $.  $d k .x. $.
    m2detleib.n $e |- N = { 1 , 2 } $.
    m2detleib.d $e |- D = ( N maDet R ) $.
    m2detleib.a $e |- A = ( N Mat R ) $.
    m2detleib.b $e |- B = ( Base ` A ) $.
    m2detleib.m $e |- .- = ( -g ` R ) $.
    m2detleib.t $e |- .x. = ( .r ` R ) $.
    $( Leibniz' Formula for 2x2-matrices.  (Contributed by AV, 21-Dec-2018.)
       (Revised by AV, 26-Dec-2018.)  (Proof shortened by AV, 23-Jul-2019.) $)
    m2detleib $p |- ( ( R e. Ring /\ M e. B ) -> ( D ` M ) =
     ( ( ( 1 M 1 ) .x. ( 2 M 2 ) ) .- ( ( 2 M 1 ) .x. ( 1 M 2 ) ) ) ) $=
      ( wcel cfv co c1 c2 wceq vk vn crg wa csymg cbs cpsgn czrh cmgp cmpt cgsu
      cop cpr csn cplusg eqid mdetleib1 adantl ccmn ringcmn adantr prfi eqeltri
      cv cfn symgbasfi ax-mp a1i simpl zrhpsgnelbas adantlr simpr m2detleiblem2
      mp3an2 syl3anc ringcl cvv wne wo cin c0 opex pm3.2i 1ne2 1ex opthne mpbir
      olci orci prneimg imp disjsn2 3syl cun cn symg2bas mp2an gsummptfidmsplit
      2nn df-pr eqtri cur cminusg cmnd ringmnd prex prid1 eleqtrri sylan2 fveq2
      fveq2d fveq1 oveq1d mpteq2dv oveq2d oveq12d gsumsn m2detleiblem5 mgpplusg
      prid2 eqidd m2detleiblem3 eleq2i biimpi matecl prid2g eqtrd m2detleiblem6
      ringlidm syldan m2detleiblem4 m2detleiblem7 3eqtrd ) DUCOZFBOZUDZFCPZDUAH
      UEPZUFPZUAVDZHUGPZPZDUHPZPZDUIPZUBHUBVDZYTPZUUFFQZUJZUKQZEQZUJUKQZDUARRUL
      ZSSULZUMZUNZUUKUJUKQZDUARSULZSRULZUMZUNZUUKUJUKQZDUOPZQZRRFQZSSFQZEQZSRFQ
      ZRSFQZEQZGQZYOYQUULTYNUBABCYSDUUAEUUEFHUUCUAJKLYSUPZUUCUPZUUAUPZNUUEUPZUQ
      URYPYSDUFPZUUPUVAUVCUADUUKUVPUPZUVCUPYNDUSOYODUTVAYSVEOZYPHVEOZUVRHRSUMZV
      EIRSVBVCZHYSYRYRUPZUVLVFVGVHYPYTYSOZUDZYNUUDUVPOZUUJUVPOZUUKUVPOYPYNUWCYN
      YOVIZVAZYNUWCUWEYOYNUVSUWCUWEUWAYSYTDUUAHUUCUVLUVNUVMVJVNVKUWDYNUWCYOUWFU
      WHYPUWCVLYPYOUWCYNYOVLZVAABYSYTDUBUUEFHIUVLKLUVOVMVOUVPDEUUDUUJUVQNVPVOYP
      UUMVQOZUUNVQOZUDZUURVQOZUUSVQOZUDZUDZUUMUURVRZUUMUUSVRZUDZUUNUURVRUUNUUSV
      RUDZVSZUDZUUOUUTVRZUUPUVAVTWATUXBYPUWPUXAUWLUWOUWJUWKRRWBSSWBWCUWMUWNRSWB
      SRWBWCWCUWSUWTUWQUWRUWQRRVRZRSVRZVSUXEUXDWDWHRRRSWEWEWFWGUWRUXEUXDVSUXEUX
      DWDWIRRSRWEWEWFWGWCWIWCVHUWPUXAUXCUUMUUNUURUUSVQVQVQVQWJWKUUOUUTWLWMYSUUP
      UVAWNZTYPYSUUOUUTUMZUXFRVQOSWOOZYSUXGTWEWSHYSYRRSVQWOUWBUVLIWPWQZUUOUUTWT
      XAVHWRYPUVDUUOUUAPZUUCPZUUEUBHUUFUUOPZUUFFQZUJZUKQZEQZUUTUUAPZUUCPZUUEUBH
      UUFUUTPZUUFFQZUJZUKQZEQZUVCQUVGDXBPZDXCPZPZUVJEQZUVCQZUVKYPUUQUXPUVBUYCUV
      CYPDXDOZUUOVQOZUXPUVPOZUUQUXPTYNUYIYODXEVAZUYJYPUUMUUNXFZVHYPYNUXKUVPOZUX
      OUVPOZUYKUWGYOYNUUOYSOZUYNUYPYOUUOUXGYSUUOUUTUYMXGUXIXHZVHYNUVSUYPUYNUWAY
      SUUODUUAHUUCUVLUVNUVMVJVNXIYNUYPYOUYOUYQABYSUUODUBUUEFHIUVLKLUVOVMVNUVPDE
      UXKUXOUVQNVPVOUUKUVPUXPUADUUOVQUVQYTUUOTZUUDUXKUUJUXOEUYRUUBUXJUUCYTUUOUU
      AXJXKUYRUUIUXNUUEUKUYRUBHUUHUXMUYRUUGUXLUUFFUUFYTUUOXLXMXNXOXPXQVOYPUYIUU
      TVQOZUYCUVPOZUVBUYCTUYLUYSYPUURUUSXFZVHYPYNUXRUVPOZUYBUVPOZUYTUWGYOYNUUTY
      SOZVUBVUDYOUUTUXGYSUUOUUTVUAXTUXIXHZVHYNUVSVUDVUBUWAYSUUTDUUAHUUCUVLUVNUV
      MVJVNXIYNVUDYOVUCVUEABYSUUTDUBUUEFHIUVLKLUVOVMVNUVPDEUXRUYBUVQNVPVOUUKUVP
      UYCUADUUTVQUVQYTUUTTZUUDUXRUUJUYBEVUFUUBUXQUUCYTUUTUUAXJXKVUFUUIUYAUUEUKV
      UFUBHUUHUXTVUFUUGUXSUUFFUUFYTUUTXLXMXNXOXPXQVOXPYPUXPUVGUYCUYGUVCYPUXPUYD
      UVGEQZUVGYPUXKUYDUXOUVGEYOYNUUOUUOTZUXKUYDTYOUUOYAYSUUODUUAUYDHUUCIUVLUVM
      UVNUYDUPZXRXIYPYNVUHYOUXOUVGTUWGYPUUOYAUWIABYSUUODEUBUUEFHIUVLKLUVODEUUEU
      VONXSZYBVOXPYNYOUVGUVPOZVUGUVGTYPYNUVEUVPOZUVFUVPOZVUKUWGYPRHOZVUNFAUFPZO
      ZVULVUNYPRUVTHRSWEXGIXHVHZVUQYOVUPYNYOVUPBVUOFLYCYDURZADRRUVPFHKUVQYEVOYP
      SHOZVUSVUPVUMVUSYPSUVTHUXHSUVTOWSRSWOYFVGIXHVHZVUTVURADSSUVPFHKUVQYEVOUVP
      DEUVEUVFUVQNVPVOZUVPDEUYDUVGUVQNVUIYIYJYGYPUXRUYFUYBUVJEYOYNUUTUUTTZUXRUY
      FTYOUUTYAYSUUTDUUAUYDUYEHUUCIUVLUVMUVNVUIUYEUPZYHXIYPYNVVBYOUYBUVJTUWGYPU
      UTYAUWIABYSUUTDEUBUUEFHIUVLKLUVOVUJYKVOXPXPYPYNVUKUVJUVPOZUYHUVKTUWGVVAYP
      YNUVHUVPOZUVIUVPOZVVDUWGYPVUSVUNVUPVVEVUTVUQVURADSRUVPFHKUVQYEVOYPVUNVUSV
      UPVVFVUQVUTVURADRSUVPFHKUVQYEVOUVPDEUVHUVIUVQNVPVOYSDUUAEUYDUYEGHUVGUUCUV
      JIUVLUVMUVNVUIVVCNMYLVOYMYM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The matrix adjugate/adjunct
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c maAdju $.
  $c minMatR1 $.

  $( Syntax for the matrix adjugate/adjunct function. $)
  cmadu $a class maAdju $.

  $( Syntax for the minor matrices of a square matrix. $)
  cminmar1 $a class minMatR1 $.

  ${
    $d n r m i j k l $.
    $( Define the adjugate or adjunct (matrix of cofactors) of a square matrix.
       This definition gives the standard cofactors, however the internal
       minors are not the standard minors, see definition in [Lang] p. 518.
       (Contributed by Stefan O'Rear, 7-Sep-2015.)  (Revised by SO,
       10-Jul-2018.) $)
    df-madu $a |- maAdju = ( n e. _V , r e. _V |->
        ( m e. ( Base ` ( n Mat r ) ) |-> ( i e. n , j e. n |->
          ( ( n maDet r ) ` ( k e. n , l e. n |-> if ( k = j , if ( l = i ,
            ( 1r ` r ) , ( 0g ` r ) ) , ( k m l ) ) ) ) ) ) ) $.
  $}

  ${
    $d n r m i j k l $.
    $( Define the matrices whose determinants are the minors of a square
       matrix.  In contrast to the standard definition of minors, a row is
       replaced by 0's and one 1 instead of deleting the column and row (e.g.,
       definition in [Lang] p. 515).  By this, the determinant of such a matrix
       is equal to the minor determined in the standard way (as determinant of
       a submatrix, see ~ df-subma - note that the matrix is transposed
       compared with the submatrix defined in ~ df-subma , but this does not
       matter because the determinants are the same, see ~ mdettpos ).  Such
       matrices are used in the definition of an adjunct of a square matrix,
       see ~ df-madu .  (Contributed by AV, 27-Dec-2018.) $)
    df-minmar1 $a |- minMatR1 = ( n e. _V , r e. _V |->
       ( m e. ( Base ` ( n Mat r ) ) |-> ( k e. n , l e. n |->
         ( i e. n , j e. n |-> if ( i = k ,
                if ( j = l , ( 1r ` r ) , ( 0g ` r ) ) , ( i m j ) ) ) ) ) ) $.
  $}

  ${
    mndifsplit.b $e |- B = ( Base ` M ) $.
    mndifsplit.0g $e |- .0. = ( 0g ` M ) $.
    mndifsplit.pg $e |- .+ = ( +g ` M ) $.
    $( Lemma for ~ maducoeval2 .  (Contributed by SO, 16-Jul-2018.) $)
    mndifsplit $p |- ( ( M e. Mnd /\ A e. B /\ -. ( ph /\ ps ) ) ->
        if ( ( ph \/ ps ) , A , .0. ) = ( if ( ph , A , .0. ) .+
          if ( ps , A , .0. ) ) ) $=
      ( wcel wa wn cif co wceq adantr iftrue iffalse adantl cmnd w3a pm2.21 imp
      3ad2antl3 mndrid 3adant3 oveqan12d orcs ad2antrl 3eqtr4rd mndlid ad2antll
      wo olcs simp1 mndidcl syl syl2anc ioran sylbir 4casesdan ) FUAKZCDKZABLZM
      ZUBZABABUNZCGNZACGNZBCGNZEOZPZVFVCVEVMVDVFVEVMVEVMUCUDUEVGABMZLZLCGEOZCVL
      VIVGVPCPZVOVCVDVQVFDEFCGHJIUFUGQVOVLVPPVGAVNVJCVKGEACGRBCGSZUHTAVICPZVGVN
      ABVSVHCGRZUIUJUKVGAMZBLZLGCEOZCVLVIVGWCCPZWBVCVDWDVFDEFCGHJIULUGQWBVLWCPV
      GWABVJGVKCEACGSZBCGRUHTBVSVGWAABVSVTUOUMUKVGWAVNLZLGGEOZGVLVIVGWGGPZWFVGV
      CGDKZWHVCVDVFUPZVGVCWIWJDFGHIUQURDEFGGHJIULUSQWFVLWGPVGWAVNVJGVKGEWEVRUHT
      WFVIGPZVGWFVHMWKABUTVHCGSVATUKVB $.
  $}

  ${
    $d N n r m i j k l $.  $d R n r m i j k l $.  $d B m $.
    madufval.a $e |- A = ( N Mat R ) $.
    madufval.d $e |- D = ( N maDet R ) $.
    madufval.j $e |- J = ( N maAdju R ) $.
    madufval.b $e |- B = ( Base ` A ) $.
    madufval.o $e |- .1. = ( 1r ` R ) $.
    madufval.z $e |- .0. = ( 0g ` R ) $.
    $( First substitution for the adjunct (cofactor) matrix.  (Contributed by
       SO, 11-Jul-2018.) $)
    madufval $p |- J = ( m e. B |-> ( i e. N , j e. N |-> ( D `
        ( k e. N , l e. N |-> if ( k = j , if ( l = i , .1. , .0. ) ,
        ( k m l ) ) ) ) ) ) $=
      ( cfv vn vr cmadu co weq cif cv cmpt2 cmpt cvv wcel wceq cmat cbs cur c0g
      wa cmdat oveq1 id eqidd mpt2eq123dv fveq12d mpteq12dv oveq2 fveq2 ifeq12d
      fveq2d ifeq1d mpt2eq3dv df-madu fvex mptex ovmpt2 eqtri mpt2eq3ia fveq12i
      fveq2i a1i mpteq12i syl6eqr wn c0 reldmmpt2 ovprc cfn cxp cfrlm cnx cmulr
      cotp cmmul csts df-mat syl5eq base0 3eqtr4g mpteq1d syl6eq eqtr4d pm2.61i
      cop mpt0 ) JKDUCUDZIBFGKKHMKKHGUEZMFUEZELUFZHUGZMUGZIUGUDZUFZUHZCTZUHZUIZ
      PKUJUKDUJUKUQZXDXOULXPXDIKDUMUDZUNTZFGKKHMKKXEXFDUOTZDUPTZUFZXJUFZUHZKDUR
      UDZTZUHZUIZXOUAUBKDUJUJIUAUGZUBUGZUMUDZUNTZFGYHYHHMYHYHXEXFYIUOTZYIUPTZUF
      ZXJUFZUHZYHYIURUDZTZUHZUIZYGUCIKYIUMUDZUNTZFGKKHMKKYOUHZKYIURUDZTZUHZUIYH
      KULZIYKYSUUBUUFUUGYJUUAUNYHKYIUMUSVHUUGFGYHYHYRKKUUEUUGUTZUUHUUGYPUUCYQUU
      DYHKYIURUSUUGHMYHYHYOKKYOUUHUUHUUGYOVAVBVCVBVDYIDULZIUUBUUFXRYFUUIUUAXQUN
      YIDKUMVEVHUUIFGKKUUEYEUUIUUCYCUUDYDYIDKURVEUUIHMKKYOYBUUIXEYNYAXJUUIXFYLX
      SYMXTYIDUOVFYIDUPVFVGVIVJVCVJVDFGHIUAUBMVKZIXRYFXQUNVLVMVNIBXNXRYFBAUNTZX
      RQAXQUNNVRVOFGKKXMYEXMYEULFUGKUKGUGKUKUQXLYCCYDOHMKKXKYBXHKUKXIKUKUQZXEXG
      YAXJUULXFEXSLXTEXSULUULRVSLXTULUULSVSVGVIVPVQVSVPVTWAXPWBZXDWCXOKDUCUAUBU
      JUJYTUCUUJWDWEUUMXOIWCXNUIWCUUMIBWCXNUUMUUKWCUNTBWCUUMAWCUNUUMAXQWCNKDUMU
      AUBWFUJYIYHYHWGWHUDWIWJTYIYHYHYHWKWLUDXBWMUDUMUAUBWNWDWEWOVHQWPWQWRIXNXCW
      SWTXAVO $.

    $d M i j k l m $.  $d N m $.  $d D m $.  $d .1. m $.  $d .0. m $.
    $( Second substitution for the adjunct (cofactor) matrix.  (Contributed by
       SO, 11-Jul-2018.) $)
    maduval $p |- ( M e. B -> ( J ` M ) = ( i e. N , j e. N |-> ( D `
        ( k e. N , l e. N |-> if ( k = j , if ( l = i , .1. , .0. ) ,
        ( k M l ) ) ) ) ) ) $=
      ( wcel vm weq cif cv co cmpt2 cfv cvv wceq matrcl simpld mpt2exga syl2anc
      cfn w3a ifeq2d mpt2eq3dv 3ad2ant1 fveq2d mpt2eq3dva madufval fvmptg mpdan
      oveq ) JBTZFGKKHMKKHGUBZMFUBELUCZHUDZMUDZJUEZUCZUFZCUGZUFZUHTZJIUGVNUIVEK
      UNTZVPVOVEVPDUHTABDKJNQUJUKZVQFGKKVMUNUNULUMUAJFGKKHMKKVFVGVHVIUAUDZUEZUC
      ZUFZCUGZUFVNBUHIVRJUIZFGKKWBVMWCFUDKTZGUDKTZUOWAVLCWCWDWAVLUIWEWCHMKKVTVK
      WCVFVSVJVGVHVIVRJVDUPUQURUSUTABCDEFGHUAIKLMNOPQRSVAVBVC $.

    $d B i j $.  $d I i j k l $.  $d N i j $.  $d D i j $.  $d .1. i j $.
    $d .0. i j $.  $d H i j k l $.
    $( An entry of the adjunct (cofactor) matrix.  (Contributed by SO,
       11-Jul-2018.) $)
    maducoeval $p |- ( ( M e. B /\ I e. N /\ H e. N ) -> ( I ( J ` M ) H ) =
        ( D ` ( k e. N , l e. N |-> if ( k = H , if ( l = I , .1. , .0. ) ,
        ( k M l ) ) ) ) ) $=
      ( wceq vi vj wcel w3a weq cif cv co cmpt2 cfv cvv maduval 3ad2ant1 simp1r
      eqeq2d simp1l ifbid ifbieq1d mpt2eq3dva fveq2d adantl simp2 simp3 ovmpt2d
      wa fvexd ) JBUCZHKUCZGKUCZUDZUAUBHGKKFMKKFUBUEZMUAUEZELUFZFUGZMUGZJUHZUFZ
      UIZCUJZFMKKVNGTZVOHTZELUFZVPUFZUIZCUJZJIUJZUKVGVHWFUAUBKKVSUITVIABCDEUAUB
      FIJKLMNOPQRSULUMUAUGZHTZUBUGZGTZVEZVSWETVJWKVRWDCWKFMKKVQWCWKVNKUCZVOKUCZ
      UDZVKVTVMWBVPWNWIGVNWHWJWLWMUNUOWNVLWAELWNWGHVOWHWJWLWMUPUOUQURUSUTVAVGVH
      VIVBVGVHVIVCVJWDCVFVD $.

    $d B n r k l $.  $d D n r $.  $d H m n r $.  $d I m n r $.  $d J m n r $.
    $d M n r $.  $d .0. k n r $.  $d .1. k n r $.
    $( An entry of the adjunct (cofactor) matrix.  (Contributed by SO,
       17-Jul-2018.) $)
    maducoeval2 $p |- ( ( ( R e. CRing /\ M e. B ) /\ I e. N /\ H e. N ) ->
        ( I ( J ` M ) H ) = ( D ` ( k e. N , l e. N |-> if ( ( k = H \/ l = I
        ) , if ( ( l = I /\ k = H ) , .1. , .0. ) , ( k M l ) ) ) ) ) $=
      ( wceq vm vn vr ccrg wcel wa w3a cfv co cv cif csn cdif cmpt2 wo c0 eleq2
      wel cun ifbid ifeq2d mpt2eq3dv fveq2d eqeq2d weq maducoeval 3adant1l noel
      wn iffalse mp1i mpt2eq3ia fveq2i syl6eqr wss cmulr cplusg cbs simpl1l cfn
      eqid simp1r cvv matrcl simpld syl adantr simp1l ad2antrr crngring ring0cl
      crg cxp wf cmap simpl1r matbas2i elmapi 3syl eldifi ad2antll simpr fovrnd
      eldifad ifcld ringidcl 3adant2 fovrnda simpl2 simpl3 wne eldifsni mdetero
      3impb ifnot eqcomi a1i ovif2 ringridm syl2anc oveq2 adantl eqtr4d ifeq1da
      ringrz eqtrd syl5eq oveq12d id iftrue syl5ibrcom neneqd 3ad2ant1 iffalsed
      imp notbid eleq1 3eqtr4d pm2.61dan iftrued ringmnd imnan mndifsplit pm2.1
      cmnd wi mpbi syl3anc 3eqtr2d oveq1 eqeq1 eldifn mpt2eq3dva neeq2 biimparc
      necomd vsnid elun2 ax-mp mpbiri 3eqtr4rd orel2 impbid2 elun orbi2i bitr2i
      orc velsn syl6bb 3eqtr3d biimpd difss ssfi sylancl findcard2d orcs neqned
      anim2i adantlr eldifsn sylibr biorf intnand eqcomd ifbieq1d 3eqtrd syl6eq
      iba ) DUDUEZJBUEZUFZHKUEZGKUEZUGZHGJIUHUIZFMKKFUJZGTZMUJZHTZELUKZUWPKGULZ
      UMZUEZUWSLUWPUWRJUIZUKZUXDUKZUKZUNZCUHZFMKKUWQUWSUOZUWSUWQUFZELUKZUXDUKZU
      NZCUHUWNUWOFMKKUWQUWTFUAURZUXEUXDUKZUKZUNZCUHZTUWOFMKKUWQUWTUWPUPUEZUXEUX
      DUKZUKZUNZCUHZTUWOFMKKUWQUWTFUBURZUXEUXDUKZUKZUNZCUHZTZUWOFMKKUWQUWTUWPUB
      UJZUCUJZULZUSZUEZUXEUXDUKZUKZUNZCUHZTZUWOUXITUAUBUCUXBUAUJZUPTZUXSUYDUWOV
      UBUXRUYCCVUBFMKKUXQUYBVUBUWQUXPUYAUWTVUBUXOUXTUXEUXDVUAUPUWPUQUTVAVBVCVDU
      AUBVEZUXSUYIUWOVUCUXRUYHCVUCFMKKUXQUYGVUCUWQUXPUYFUWTVUCUXOUYEUXEUXDVUAUY
      KUWPUQUTVAVBVCVDVUAUYNTZUXSUYSUWOVUDUXRUYRCVUDFMKKUXQUYQVUDUWQUXPUYPUWTVU
      DUXOUYOUXEUXDVUAUYNUWPUQUTVAVBVCVDVUAUXBTZUXSUXIUWOVUEUXRUXHCVUEFMKKUXQUX
      GVUEUWQUXPUXFUWTVUEUXOUXCUXEUXDVUAUXBUWPUQUTVAVBVCVDUWNUWOFMKKUWQUWTUXDUK
      ZUNZCUHZUYDUWJUWLUWMUWOVUHTUWIABCDEFGHIJKLMNOPQRSVFVGUYCVUGCFMKKUYBVUFUWP
      KUEZUWRKUEZUFZUWQUYAUXDUWTUXTVIUYAUXDTVUKUWPVHUXTUXEUXDVJVKVAVLVMVNUWNUYK
      UXBVOZUYLUXBUYKUMUEZUFZUFZUYJUYTVUOUYIUYSUWOVUOFMKKFUCVEZUWSLUYLUWRJUIZUK
      ZUYLHJUIZUWTDVPUHZUIZDVQUHZUIZUYGUKZUNZCUHFMKKVUPVURUYGUKZUNZCUHZUYIUYSVU
      OCVVBDVUTFMUYLGDVRUHZKVUSVURUWTUYFOVVIWAZVVBWAZVUTWAZUWIUWJUWLUWMVUNVSUWN
      KVTUEZVUNUWNUWJVVMUWIUWJUWLUWMWBUWJVVMDWCUEABDKJNQWDWEWFZWGVUOVUJUFZUWSLV
      UQVVIVVODWLUEZLVVIUEZVVOUWIVVPUWNUWIVUNVUJUWIUWJUWLUWMWHWIDWJWFZVVIDLVVJS
      WKWFZVVOUYLUWRVVIKKJVUOKKWMZVVIJWNZVUJVUOUWJJVVIVVTWOUIUEVWAUWIUWJUWLUWMV
      UNWPABDVVIJKNVVJQWQJVVIVVTWRWSZWGVUOUYLKUEVUJVUOUYLKUXAVUMUYLUXBUEZUWNVUL
      UYLUXBUYKWTXAZXDZWGVUOVUJXBXCZXEVVOUWSELVVIVVOVVPEVVIUEVVRVVIDEVVJRXFWFVV
      SXEVUOVUIVUJUGZUYEUXEUXDVVIVWGUWSLUXDVVIVUOVUJVVQVUIVVSXGVUOVUIVUJUXDVVIU
      EVUOUWPUWRVVIKKJVWBXHXNZXEVWHXEVUOUYLHVVIKKJVWBVWEUWKUWLUWMVUNXIXCZVWEUWK
      UWLUWMVUNXJVUOVWCUYLGXKZVWDUYLKGXLWFZXMVUOVVEUYHCVUOFMKKVVDUYGVWGVUPVVDUY
      GTZVWGVUPUFZVVCUXDVVDUYGVWGVUPVVCUXDTZVWGVWNVUPVVCVUQTZVUOVUJVWOVUIVVOVVC
      UWSVIZVUQLUKZUWSVUQLUKZVVBUIZVWPUWSUOZVUQLUKZVUQVVOVURVWQVVAVWRVVBVURVWQT
      VVOVWQVURUWSVUQLXOXPXQVVOVVAUWSVUSEVUTUIZVUSLVUTUIZUKZVWRUWSVUSELVUTXRVVO
      VXDUWSVUQVXCUKVWRVVOUWSVXBVUQVXCVVOUWSUFVXBVUSVUQVVOVXBVUSTZUWSVVOVVPVUSV
      VIUEZVXEVVRVUOVXFVUJVWIWGZVVIDVUTEVUSVVJVVLRXSXTWGUWSVUQVUSTVVOUWRHUYLJYA
      YBYCYDVVOUWSVXCLVUQVVOVVPVXFVXCLTVVRVXGVVIDVUTVUSLVVJVVLSYEXTVAYFYGYHVVOD
      UUEUEZVUQVVIUEVWPUWSUFVIZVXAVWSTVVOVVPVXHVVRDUUAWFVWFVXIVVOVWPVWPUUFVXIVW
      PYIVWPUWSUUBUUGXQVWPUWSVUQVVIVVBDLVVJSVVKUUCUUHVWTVXAVUQTVVOUWSUUDVWTVUQL
      YJVKUUIXGVUPUXDVUQVVCUWPUYLUWRJUUJZVDYKYOVUPVVDVVCTVWGVUPVVCUYGYJYBVWMUYG
      UYFUXDVWMUWQUWTUYFVWGVUPUWQVIZVWGVXKVUPUYLGTZVIZVUOVUIVXMVUJVUOUYLGVWKYLY
      MVUPUWQVXLUWPUYLGUUKYPYKYOYNVWMUYEUXEUXDVWGVUPUYEVIZVWGVXNVUPUCUBURZVIZVU
      OVUIVXPVUJVUMVXPUWNVULUYLUXBUYKUULXAYMVUPUYEVXOUWPUYLUYKYQYPYKYOYNYFYRVUP
      VIZVWLVWGVUPVVCUYGVJYBYSUUMVCVUOVWJVVHUYSTVWKVWJVVGUYRCVWJFMKKVVFUYQVWJUW
      QVVFUYQTVWJUWQUFZVUPVURUWTUKUWTVVFUYQVXRVUPVURUWTVXRUWPUYLVXRUYLUWPUWQUYL
      UWPXKVWJUWPGUYLUUNUUOUUPYLYNVXRVUPUYGUWTVURUWQUYGUWTTVWJUWQUWTUYFYJYBVAUW
      QUYQUWTTVWJUWQUWTUYPYJYBYRVWJVXKUFZVUPVURUYFUKZUYPVVFUYQVXSVUPVXTUYPTZVUP
      VYAVXSVUPUXEVURUYPVXTVUPUWSUXDVUQLVXJVAVUPUYOUXEUXDVUPUYOUYLUYNUEZUYLUYMU
      EVYBUCUUQUYLUYMUYKUURUUSUWPUYLUYNYQUUTYTVUPVURUYFYJUVAYBVXQVYAVXSVXQVXTUY
      FUYPVUPVURUYFVJVXQUYEUYOUXEUXDVXQUYEUYEVUPUOZUYOVXQUYEVYCUYEVUPUVGVUPUYEU
      VBUVCUYOUYEUWPUYMUEZUOVYCUWPUYKUYMUVDVYDVUPUYEFUYLUVHUVEUVFUVIUTYFYBYSVXK
      VVFVXTTVWJVXKVUPUYGUYFVURUWQUWTUYFVJVAYBVXKUYQUYPTVWJUWQUWTUYPVJYBYRYSVBV
      CWFUVJVDUVKUWNVVMUXBKVOUXBVTUEVVNKUXAUVLKUXBUVMUVNUVOUXHUXNCFMKKUXGUXMVUK
      UWQUXGUXMTZUWQVYEVUKUWQUWTUXLUXGUXMUWQUWSUXKELUWQUWSUWHUTUWQUWTUXFYJUWQUW
      SUXMUXLTUXJUXLUXDYJUVPYRYBVUKVXKUFZUXGUXFUXEUXMVXKUXGUXFTVUKUWQUWTUXFVJYB
      VYFUXCUXEUXDVYFVUIUWPGXKZUFZUXCVUIVXKVYHVUJVXKVYGVUIVXKUWPGVXKYIZUVQUVRUV
      SUWPKGUVTUWAYTVXKUXEUXMTVUKVXKUWSUXJLUXLUXDUWQUWSUWBVXKUXLLVXKUXKELVXKUWQ
      UWSVYIUWCYNUWDUWEYBUWFYSVLVMUWG $.
  $}

  ${
    $d N i j k l m $.  $d R i j k l m $.  $d B i j k l m $.
    maduf.a $e |- A = ( N Mat R ) $.
    maduf.j $e |- J = ( N maAdju R ) $.
    maduf.b $e |- B = ( Base ` A ) $.
    $( Creating the adjunct of matrices is a function from the set of matrices
       into the set of matrices.  (Contributed by Stefan O'Rear,
       11-Jul-2018.) $)
    maduf $p |- ( R e. CRing -> J : B --> B ) $=
      ( vm vi vj vk vl ccrg wcel weq cfv cif cv eqid cur c0g co cmpt2 cmdat cbs
      wa cfn cvv matrcl adantl simpld simpl w3a wf mdetf adantr 3ad2ant1 simp1l
      simp11l crngring ringidcl ring0cl ifcld 3syl simp2 simp3 simp11r matbas2d
      crg matecld ffvelrnd madufval fmptd ) CNOZIBJKEELMEELKPZMJPZCUAQZCUBQZRZL
      SZMSZISZUCZRZUDZECUEUCZQZUDBDVOWCBOZUGZJKABWHCCUFQZENFWKTZHWJEUHOZCUIOZWI
      WMWNUGVOABCEWCFHUJUKULZVOWIUMWJJSEOZKSEOZUNZBWKWFWGWJWPBWKWGUOZWQVOWSWIAB
      WGCWKEWGTZFHWLUPUQURWRLMABWECWKENFWLHWJWPWMWQWOURVOWIWPWQUSWRWAEOZWBEOZUN
      ZVPVTWDWKXCVOCVJOZVTWKOVOWIWPWQXAXBUTCVAXDVQVRVSWKWKCVRWLVRTZVBWKCVSWLVST
      ZVCVDVEXCABCWAWBWKWCEFWLHWRXAXBVFWRXAXBVGVOWIWPWQXAXBVHVKVDVIVLVIABWGCVRJ
      KLIDEVSMFWTGHXEXFVMVN $.

    $d ph a b c d e i j $.  $d D a b c d e $.  $d J a b c d e i $.
    $d K a b c d e i j $.  $d M a b c d e i j $.  $d N a b c d e $.
    $d R a b c d e $.  $d X a b c d e j $.  $d L a b c d e $.
    $d .x. a b c d e i $.  $d L i j $.  $d B a b c d $.
    $( The adjuct of a transposed matrix is the transposition of the adjunct of
       the matrix.  (Contributed by Stefan O'Rear, 17-Jul-2018.) $)
    madutpos $p |- ( ( R e. CRing /\ M e. B ) ->
        ( J ` tpos M ) = tpos ( J ` M ) ) $=
      ( va vb vc vd wcel wa cfv wceq cv co eqid ccrg ctpos wral weq cur c0g cif
      wo cmpt2 cmdat tposmpt2 orcom a1i ancom ovtpos eqcomi ifbieq12d mpt2eq3dv
      ifbid syl5eq fveq2d simpll cbs cfn cvv matrcl simpld ad2antlr w3a simp1ll
      crg crngring ringidcl ring0cl ifcld 3syl cxp cmap matbas2i elmapi fovrnda
      wb wf syl matbas2d mdettpos syl2anc eqtr3d mattposcl adantl adantr simprl
      3impb simprr maducoeval2 syl211anc simplr 3eqtr4d ralrimivva wfn ffvelrnd
      syl6eqr maduf ffn ffvelrnda eqfnov2 mpbird ) CUANZEBNZOZEUBZDPZEDPZUBZQZJ
      RZKRZXLSZXPXQXNSZQZKFUCJFUCZXJXTJKFFXJXPFNZXQFNZOZOZXRXQXPXMSZXSYELMFFLKU
      DZMJUDZUHZYHYGOZCUEPZCUFPZUGZLRZMRZXKSZUGZUIZFCUJSZPZMLFFYHYGUHZYGYHOZYKY
      LUGZYOYNESZUGZUIZYSPZXRYFYEUUFUBZYSPZYTUUGYEUUHYRYSYEUUHLMFFUUEUIYRMLFFUU
      EUUFUUFTUKYELMFFUUEYQYEUUAYIUUCUUDYMYPUUAYIWBYEYHYGULUMYEUUBYJYKYLUUBYJWB
      YEYGYHUNUMUSUUDYPQYEYPUUDYNYOEUOUPUMUQURUTVAYEXHUUFBNUUIUUGQXHXIYDVBZYEML
      ABUUECCVCPZFUAGUUKTZIXIFVDNZXHYDXIUUMCVENABCFEGIVFVGVHUUJYEYOFNZYNFNZVIZU
      UAUUCUUDUUKUUPXHCVKNZUUCUUKNXHXIYDUUNUUOVJCVLUUQUUBYKYLUUKUUKCYKUULYKTZVM
      UUKCYLUULYLTZVNVOVPYEUUNUUOUUDUUKNYEYOYNUUKFFEXIFFVQZUUKEWCZXHYDXIEUUKUUT
      VRSZNUVAABCUUKEFGUULIVSEUUKUUTVTWDVHWAWMVOWEABYSCUUFFYSTZGIWFWGWHYEXHXKBN
      ZYBYCXRYTQUUJXJUVDYDXIUVDXHABCEFGIWIWJZWKXJYBYCWLZXJYBYCWNZABYSCYKLXQXPDX
      KFYLMGUVCHIUURUUSWOWPYEXHXIYCYBYFUUGQUUJXHXIYDWQUVGUVFABYSCYKMXPXQDEFYLLG
      UVCHIUURUUSWOWPWRXPXQXMUOXBWSXJXLUUTWTZXNUUTWTZXOYAWBXJXLUVBNZUUTUUKXLWCU
      VHXJXLBNUVJXJBBXKDXHBBDWCXIABCDFGHIXCZWKUVEXAABCUUKXLFGUULIVSWDXLUUKUUTVT
      UUTUUKXLXDVPXJXNUVBNZUUTUUKXNWCUVIXJXMBNXNBNUVLXHBBEDUVKXEABCXMFGIWIABCUU
      KXNFGUULIVSVPXNUUKUUTVTUUTUUKXNXDVPJKFFXLXNXFWGXG $.

    madugsum.d $e |- D = ( N maDet R ) $.
    madugsum.t $e |- .x. = ( .r ` R ) $.
    madugsum.k $e |- K = ( Base ` R ) $.
    madugsum.m $e |- ( ph -> M e. B ) $.
    madugsum.r $e |- ( ph -> R e. CRing ) $.
    madugsum.x $e |- ( ( ph /\ i e. N ) -> X e. K ) $.
    madugsum.l $e |- ( ph -> L e. N ) $.
    $( The determinant of a matrix with a row ` L ` consisting of the same
       element ` X ` is the sum of the elements of the ` L ` -th column of the
       adjunct of the matrix multiplied with ` X ` .  (Contributed by Stefan
       O'Rear, 16-Jul-2018.) $)
    madugsum $p |- ( ph
           -> ( R gsum ( i e. N |-> ( X .x. ( i ( J ` M ) L ) ) ) ) =
              ( D ` ( j e. N , i e. N |-> if ( j = L , X , ( j M i ) ) ) ) ) $=
      ( vb va vc vd ve cv csb cfv cmpt cgsu wceq wcel c0g cif cmpt2 wel csn cun
      co c0 mpteq1 oveq2d eleq2 ifbid ifeq1d mpt2eq3dv fveq2d eqeq12d weq wa wn
      noel iffalse mp1i mpt2eq3ia fveq2i eqid cfn cvv matrcl syl simpld cmap wf
      cxp matbas2i elmapi 3syl fovrnda 3impb mdetr0 syl5eq mpt0 oveq2i syl6reqr
      gsum0 eqtri wss cdif cplusg ccmn ccrg adantr crngring ringcmn simprl ssfi
      crg wral sselda ralrimiva ad2antrr rspcsbela maduf ffvelrnd fovrnd ringcl
      syl2anc syl3anc vex eldifn ad2antll eldifi csbeq1 oveq12d gsumunsn adantl
      a1i oveq1 cur wo wb 3ad2ant1 eqtr4d ifcld nfcv w3a elun velsn orbi2i ifbi
      bitri ax-mp cmnd ringmnd simp3 elequ1 biimpac mndifsplit ifeq1da ringridm
      nsyl ovif2 ringrz ifeq12d mpt2eq3dva ring0cl ringidcl mdetrlin2 mdetrsca2
      eqtrd maducoeval 3eqtrrd 3eqtrd ex findcard2d nfcsb1v nfov csbeq1a cbvmpt
      nfv nfif eqeq1 oveq12 ifbieq12d cbvmpt2 iftrue eqcomd 3eqtr4g ) AEUEMGUEU
      JZNUKZUWDKLIULZVCZFVCZUMZUNVCZUFUEMMUFUJZKUOZUWDMUPZUWEEUQULZURZUWKUWDLVC
      ZURZUSZDULZEGMNGUJZKUWFVCZFVCZUMZUNVCHGMMHUJZKUOZNUXDUWTLVCZURZUSZDULAEUE
      UGUJZUWHUMZUNVCZUFUEMMUWLUEUGUTZUWEUWNURZUWPURZUSZDULZUOEUEVDUWHUMZUNVCZU
      FUEMMUWLUWDVDUPZUWEUWNURZUWPURZUSZDULZUOEUEUHUJZUWHUMZUNVCZUFUEMMUWLUEUHU
      TZUWEUWNURZUWPURZUSZDULZUOZEUEUYDUIUJZVAZVBZUWHUMZUNVCZUFUEMMUWLUWDUYOUPZ
      UWEUWNURZUWPURZUSZDULZUOZUWJUWSUOUGUHUIMUXIVDUOZUXKUXRUXPUYCVUDUXJUXQEUNU
      EUXIVDUWHVEVFVUDUXOUYBDVUDUFUEMMUXNUYAVUDUWLUXMUXTUWPVUDUXLUXSUWEUWNUXIVD
      UWDVGVHVIVJVKVLUGUHVMZUXKUYFUXPUYKVUEUXJUYEEUNUEUXIUYDUWHVEVFVUEUXOUYJDVU
      EUFUEMMUXNUYIVUEUWLUXMUYHUWPVUEUXLUYGUWEUWNUXIUYDUWDVGVHVIVJVKVLUXIUYOUOZ
      UXKUYQUXPVUBVUFUXJUYPEUNUEUXIUYOUWHVEVFVUFUXOVUADVUFUFUEMMUXNUYTVUFUWLUXM
      UYSUWPVUFUXLUYRUWEUWNUXIUYOUWDVGVHVIVJVKVLUXIMUOZUXKUWJUXPUWSVUGUXJUWIEUN
      UEUXIMUWHVEVFVUGUXOUWRDVUGUFUEMMUXNUWQVUGUWLUXMUWOUWPVUGUXLUWMUWEUWNUXIMU
      WDVGVHVIVJVKVLAUYCUWNUXRAUYCUFUEMMUWLUWNUWPURZUSZDULUWNUYBVUIDUFUEMMUYAVU
      HUWKMUPZUWMVNZUWLUXTUWNUWPUXSVOUXTUWNUOVUKUWDVPUXSUWEUWNVQVRVIVSVTADEUFUE
      KJMUWPUWNRTUWNWAZUBAMWBUPZEWCUPZALCUPZVUMVUNVNUABCEMLOQWDWEWFZAVUJUWMUWPJ
      UPZAUWKUWDJMMLAVUOLJMMWIZWGVCZUPVURJLWHZUABCEJLMOTQWJLJVURWKWLZWMWNUDWOWP
      UXREVDUNVCUWNUXQVDEUNUEUWHWQWREUWNVULWTXAWSAUYDMXBZUYMMUYDXCUPZVNZVNZUYLV
      UCVVEUYLVNUYQUYFGUYMNUKZUYMKUWFVCZFVCZEXDULZVCZUYKVVHVVIVCZVUBVVEUYQVVJUO
      UYLVVEUYDJVVIUEEUYMWCUWHVVHTVVIWAZVVEEXLUPZEXEUPVVEEXFUPZVVMAVVNVVDUBXGZE
      XHWEZEXIWEVVEVUMVVBUYDWBUPAVUMVVDVUPXGZAVVBVVCXJZMUYDXKYBVVEUYGVNZVVMUWEJ
      UPZUWGJUPUWHJUPVVEVVMUYGVVPXGVVSUWMNJUPZGMXMZVVTVVEUYDMUWDVVRXNZAVWBVVDUY
      GAVWAGMUCXOZXPGUWDMNJXQZYBVVSUWDKJMMUWFAVURJUWFWHZVVDUYGAUWFCUPUWFVUSUPVW
      FACCLIAVVNCCIWHUBBCEIMOPQXRWEUAXSBCEJUWFMOTQWJUWFJVURWKWLZXPVWCAKMUPZVVDU
      YGUDXPXTJEFUWEUWGTSYAYCUYMWCUPVVEUIYDYLVVCUIUHUTZVOAVVBUYMMUYDYEYFZVVEVVM
      VVFJUPZVVGJUPVVHJUPVVPVVEUYMMUPZVWBVWKVVCVWLAVVBUYMMUYDYGYFZAVWBVVDVWDXGZ
      GUYMMNJXQYBZVVEUYMKJMMUWFAVWFVVDVWGXGVWMAVWHVVDUDXGZXTJEFVVFVVGTSYAYCUEUI
      VMZUWEVVFUWGVVGFGUWDUYMNYHZUWDUYMKUWFYMYIYJXGUYLVVJVVKUOVVEUYFUYKVVHVVIYM
      YKVVEVVKVUBUOUYLVVEVUBUFUEMMUWLUYHVVFVWQEYNULZUWNURZFVCZVVIVCZUWPURZUSZDU
      LUYKUFUEMMUWLVXAUWPURUSDULZVVIVCVVKVVEVUAVXDDVVEUFUEMMUYTVXCVVEVUJUWMUUAZ
      UWLUYSVXBUWPVXFUYSUYHVWQUWEUWNURZVVIVCZVXBVXFUYSUYGVWQYOZUWEUWNURZVXHUYRV
      XIYPUYSVXJUOUYRUYGUWDUYNUPZYOVXIUWDUYDUYNUUBVXKVWQUYGUEUYMUUCUUDUUFUYRVXI
      UWEUWNUUEUUGVXFEUUHUPZVVTUYGVWQVNZVOZVXJVXHUOVVEVUJVXLUWMVVEVVMVXLVVPEUUI
      WEYQVXFUWMVWBVVTVVEVUJUWMUUJVVEVUJVWBUWMVWNYQVWEYBZVVEVUJVXNUWMVVEVWIVXMV
      WJVWQUYGVWIUEUIUHUUKUULUUPYQUYGVWQUWEJVVIEUWNTVULVVLUUMYCWPVVEVUJVXHVXBUO
      UWMVVEVXGVXAUYHVVIVVEVXGVWQVVFUWNURZVXAVVEVWQUWEVVFUWNVWQUWEVVFUOVVEVWRYK
      UUNVVEVXAVWQVVFVWSFVCZVVFUWNFVCZURVXPVWQVVFVWSUWNFUUQVVEVWQVXQVVFVXRUWNVV
      EVVMVWKVXQVVFUOVVPVWOJEFVWSVVFTSVWSWAZUUOYBVVEVVMVWKVXRUWNUOVVPVWOJEFVVFU
      WNTSVULUURYBUUSWPYRVFYQUVEVIUUTVKVVEDVVIEUFUEKJMUYHVXAUWPRTVVLVVOVVQVXFUY
      GUWEUWNJVXOVVEVUJUWNJUPZUWMVVEVVMVXTVVPJEUWNTVULUVAWEZYQYSVVEVUJVXAJUPZUW
      MVVEVVMVWKVWTJUPZVYBVVPVWOVVEVWQVWSUWNJVVEVVMVWSJUPVVPJEVWSTVXSUVBWEVYAYS
      ZJEFVVFVWTTSYAYCYQVVEVUJUWMVUQVVEUWKUWDJMMLAVUTVVDVVAXGWMWNZVWPUVCVVEVXEV
      VHUYKVVIVVEVXEVVFUFUEMMUWLVWTUWPURUSDULZFVCVVHVVEDEFUFUEVVFKJMVWTUWPRTSVV
      OVVQVVEVUJVYCUWMVYDYQVYEVWOVWPUVDVVEVVGVYFVVFFVVEVUOVWLVWHVVGVYFUOAVUOVVD
      UAXGVWMVWPBCDEVWSUFKUYMILMUWNUEORPQVXSVULUVFYCVFYRVFUVGXGUVHUVIVUPUVJUXCU
      WIEUNGUEMUXBUWHUEUXBYTGUWEUWGFGUWDNUVKZGFYTGUWGYTUVLGUEVMZNUWEUXAUWGFGUWD
      NUVMZUWTUWDKUWFYMYIUVNWRUXHUWRDUXHUFUEMMUWLUWEUWPURZUSUWRHGUFUEMMUXGVYJUF
      UXGYTUEUXGYTHVYJYTUWLGUWEUWPUWLGUVOVYGGUWPYTUVPHUFVMZVYHVNUXEUWLNUXFUWEUW
      PVYKUXEUWLYPVYHUXDUWKKUVQXGVYHNUWEUOVYKVYIYKUXDUWKUWTUWDLUVRUVSUVTUFUEMMV
      YJUWQVUKUWLUWEUWOUWPUWMUWEUWOUOVUJUWMUWOUWEUWMUWEUWNUWAUWBYKVIVSXAVTUWC
      $.
  $}

  ${
    $d M a b c d $.  $d B a b c d $.  $d R a b c d $.  $d J a b c d $.
    $d .x. a b c d $.  $d .1. a b c d $.  $d .xb a b c d $.  $d N a b c d $.
    $d D a b c d $.  $d A a b $.
    madurid.a $e |- A = ( N Mat R ) $.
    madurid.b $e |- B = ( Base ` A ) $.
    madurid.j $e |- J = ( N maAdju R ) $.
    madurid.d $e |- D = ( N maDet R ) $.
    madurid.i $e |- .1. = ( 1r ` A ) $.
    madurid.t $e |- .x. = ( .r ` A ) $.
    madurid.s $e |- .xb = ( .s ` A ) $.
    $( Multiplying a matrix with its adjunct results in the identity matrix
       multiplied with the determinant of the matrix.  See Proposition 4.16 in
       [Lang] p. 518.  (Contributed by Stefan O'Rear, 16-Jul-2018.) $)
    madurid $p |- ( ( M e. B /\ R e. CRing ) -> ( M .x. ( J ` M ) ) =
        ( ( D ` M ) .xb .1. ) ) $=
      ( vc vd wcel va vb ccrg wa cfv cotp cmmul co cv cmulr cmpt cgsu cmpt2 cbs
      eqid simpr cfn cvv matrcl simpld adantr cxp cmap matbas2i wf maduf adantl
      simpl ffvelrnd syl mamuval matmulr sylan syl6eqr oveqd weq c0g cif simp1l
      wceq w3a simp1r elmapi 3ad2ant1 simpl2 fovrnd simp3 madugsum wfn ffn fnov
      iftrue sylib equtr2 oveq1d ifeq1da ifid syl6eq mpt2eq3dv eqtr4d 3ad2antl1
      fveq2d eqtr2d simpl1r ad2antrr simpll2 fovrnda 3impb simpl3 df-ne biimpri
      wne necomd mdetralt2 oveq1 syl5eqr ifeq2d iffalse 3eqtr4d pm2.61dan eqtrd
      wn mpt2eq3dva cur oveq2i crg crngring mdetf matsc syl3anc syl5eq 3eqtr3d
      ) IBTZDUCTZUDZIIHUEZDJJJUFUGUHZUHUAUBJJDRJUAUIZRUIZIUHZYSUBUIZYPUHDUJUEZU
      HUKULUHZUMZIYPFUHICUEZGEUHZYODUNUEZJDUUBUARUBYQJJUCIYPYQUOZUUGUOZUUBUOZYM
      YNUPYMJUQTZYNYMUUKDURTABDJIKLUSUTZVAZUUMUUMYMIUUGJJVBZVCUHZTZYNABDUUGIJKU
      UILVDVAZYOYPBTYPUUOTYOBBIHYNBBHVEYMABDHJKMLVFVGYMYNVHZVIABDUUGYPJKUUILVDV
      JVKYOYQFIYPYOYQAUJUEZFYMUUKYNYQUUSVTUULADYQJUCKUUHVLVMPVNVOYOUUDUAUBJJUAU
      BVPZUUEDVQUEZVRZUMZUUFYOUAUBJJUUCUVBYOYRJTZUUAJTZWAZUUCSRJJSUBVPZYTSUIZYS
      IUHZVRZUMZCUEZUVBUVFABCDUUBRSHUUGUUAIJYTKMLNUUJUUIYMYNUVDUVEVSYMYNUVDUVEW
      BUVFYSJTZUDYRYSUUGJJIUVFUUNUUGIVEZUVMYOUVDUVNUVEYOUUPUVNUUQIUUGUUNWCVJZWD
      ZVAYOUVDUVEUVMWEUVFUVMUPWFYOUVDUVEWGWHUVFUUTUVLUVBVTZYOUVDUUTUVQUVEYOUUTU
      DZUVBUUEUVLUUTUVBUUEVTYOUUTUUEUVAWLVGUVRIUVKCUVRISRJJUVIUMZUVKYOIUVSVTZUU
      TYOIUUNWIZUVTYOUVNUWAUVOUUNUUGIWJVJSRJJIWKWMVAUVRSRJJUVJUVIUUTUVJUVIVTYOU
      UTUVJUVGUVIUVIVRUVIUUTUVGYTUVIUVIUUTUVGUDYRUVHYSIUASUBWNWOWPUVGUVIWQWRVGW
      SWTXBXCXAUVFUUTYBZUDZSRJJUVGYTSUAVPZYTUVIVRZVRZUMZCUEUVAUVLUVBUWCCDSRUUAY
      RUUGJYTUVIUVANUUIUVAUOZYMYNUVDUVEUWBXDUVFUUKUWBYOUVDUUKUVEUUMWDVAUWCUVMUD
      YRYSUUGJJIUVFUVNUWBUVMUVPXEYOUVDUVEUWBUVMXFUWCUVMUPWFUWCUVHJTUVMUVIUUGTUW
      CUVHYSUUGJJIUVFUVNUWBUVPVAXGXHYOUVDUVEUWBXIYOUVDUVEUWBWEUWBUUAYRXLUVFUWBY
      RUUAYRUUAXLUWBYRUUAXJXKXMVGXNUWCUVKUWGCUWCSRJJUVJUWFUWCUVGUVIUWEYTUWCUVIU
      WDUVIUVIVRUWEUWDUVIWQUWCUWDUVIYTUVIUWDUVIYTVTUWCUVHYRYSIXOVGWPXPXQWSXBUWB
      UVBUVAVTUVFUUTUUEUVAXRVGXSXTYAYCYOUUFUUEAYDUEZEUHZUVCGUWIUUEEOYEYOUUKDYFT
      ZUUEUUGTUWJUVCVTUUMYNUWKYMDYGVGYOBUUGICYNBUUGCVEYMABCDUUGJNKLUUIYHVGUURVI
      ADEUAUBUUGUUEJUVAKUUIQUWHYIYJYKWTYL $.

    $( Multiplying the adjunct of a matrix with the matrix results in the
       identity matrix multiplied with the determinant of the matrix.  See
       Proposition 4.16 in [Lang] p. 518.  (Contributed by Stefan O'Rear,
       17-Jul-2018.) $)
    madulid $p |- ( ( M e. B /\ R e. CRing ) -> ( ( J ` M ) .x. M ) =
        ( ( D ` M ) .xb .1. ) ) $=
      ( wcel co wceq ccrg cfv ctpos simpr maduf ffvelrnda ancoms simpl mattposm
      wa syl3anc madutpos oveq2d mattposcl madurid sylan 3eqtr2d tposeqd matrcl
      crg cfn cvv simpld crngring matring syl2an ringcl mattpostpos syl wf eqid
      mdetf adantl adantr ffvelrnd ringidcl mattposvs syl2anc mdettpos mattpos1
      cbs oveq12d eqtrd 3eqtr3d ) IBRZDUARZUJZIHUBZIFSZUCZUCZIUCZCUBZGESZUCZWII
      CUBZGESZWGWJWNWGWJWLWHUCZFSZWLWLHUBZFSZWNWGWFWHBRZWEWJWSTWEWFUDWFWEXBWFBB
      IHABDHJKMLUEUFUGZWEWFUHZABDFJWHIKLPUIUKWGWTWRWLFWFWEWTWRTABDHIJKMLULUGUMW
      EWLBRZWFXAWNTABDIJKLUNZABCDEFGHWLJKLMNOPQUOUPUQURWGWIBRZWKWITWGAUTRZXBWEX
      GWEJVARZDUTRZXHWFWEXIDVBRABDJIKLUSVCZDVDZADJKVEVFZXCXDBAFWHILPVGUKABDWIJK
      LVHVIWGWOWMGUCZESZWQWGWMDWAUBZRGBRZWOXOTWGBXPWLCWFBXPCVJWEABCDXPJNKLXPVKZ
      VLVMWEXEWFXFVNVOWGXHXQXMBAGLOVPVIABDEXPJWMGKLXRQVQVRWGWMWPXNGEWFWEWMWPTAB
      CDIJNKLVSUGWEXIXJXNGTWFXKXLADGJKOVTVFWBWCWD $.
  $}

  ${
    $d B m n r $.  $d N i j k l m n r $.  $d R i j k l m n r $.  $d .1. n r $.
    $d .0. n r $.
    minmar1fval.a $e |- A = ( N Mat R ) $.
    minmar1fval.b $e |- B = ( Base ` A ) $.
    minmar1fval.q $e |- Q = ( N minMatR1 R ) $.
    minmar1fval.o $e |- .1. = ( 1r ` R ) $.
    minmar1fval.z $e |- .0. = ( 0g ` R ) $.
    $( First substitution for the definition of a matrix for a minor.
       (Contributed by AV, 31-Dec-2018.) $)
    minmar1fval $p |- Q = ( m e. B |-> ( k e. N , l e. N |->
                  ( i e. N , j e. N |-> if ( i = k , if ( j = l , .1. , .0. ) ,
                                                     ( i m j ) ) ) ) ) $=
      ( cvv cbs cfv vn vr cminmar1 co weq cif cmpt2 cmpt wcel wceq cmat cur c0g
      cv wa oveq12 syl6eqr fveq2d simpl fveq2 ifeq12d ifeq1d adantl mpt2eq123dv
      mpteq12dv df-minmar1 fvex eqeltri mptex ovmpt2a wn c0 mpt2ndm0 mpt0 eqtri
      fveq2i matbas0pc syl5eq mpteq1d eqtr4d pm2.61i ) CJDUCUDZIBHLJJFGJJFHUEZG
      LUEZEKUFZFUNGUNIUNUDZUFZUGZUGZUHZOJRUIDRUIUOZWBWJUJUAUBJDRRIUAUNZUBUNZUKU
      DZSTZHLWLWLFGWLWLWCWDWMULTZWMUMTZUFZWFUFZUGZUGZUHZWJUCWLJUJZWMDUJZUOZIWOX
      ABWIXEWOASTZBXEWNASXEWNJDUKUDZAWLJWMDUKUPMUQURNUQXEHLWLWLWTJJWHXCXDUSZXHX
      EFGWLWLWSJJWGXHXHXDWSWGUJXCXDWCWRWEWFXDWDWPEWQKXDWPDULTEWMDULUTPUQXDWQDUM
      TKWMDUMUTQUQVAVBVCVDVDVEFGHIUAUBLVFZIBWIBXFRNASVGVHVIVJWKVKZWBIVLWIUHZWJX
      JWBVLXKUAUBXBUCJDRRXIVMIWIVNUQXJIBVLWIXJBXGSTZVLBXFXLNAXGSMVPVODJVQVRVSVT
      WAVO $.

    $d M i j k l m $.  $d .1. m $.  $d .0. m $.
    $( Second substitution for the definition of a matrix for a minor.
       (Contributed by AV, 31-Dec-2018.) $)
    minmar1val0 $p |- ( M e. B -> ( Q ` M ) = ( k e. N , l e. N
              |-> ( i e. N , j e. N |-> if ( i = k , if ( j = l , .1. , .0. ) ,
                                                     ( i M j ) ) ) ) ) $=
      ( vm wcel cmpt2 weq cif cv co cvv cfv wceq matrcl simpld mpt2exga syl2anc
      cfn oveq ifeq2d mpt2eq3dv minmar1fval fvmptg mpdan ) IBSZHLJJFGJJFHUAZGLU
      AEKUBZFUCZGUCZIUDZUBZTZTZUESZICUFVGUGUSJULSZVIVHUSVIDUESABDJIMNUHUIZVJHLJ
      JVFULULUJUKRIHLJJFGJJUTVAVBVCRUCZUDZUBZTZTVGBUECVKIUGZHLJJVNVFVOFGJJVMVEV
      OUTVLVDVAVBVCVKIUMUNUOUOABCDEFGHRJKLMNOPQUPUQUR $.

    $d B k l $.  $d K i j k l $.  $d L i j k l $.  $d .1. k l $.  $d .0. k l $.
    $( Third substitution for the definition of a matrix for a minor.
       (Contributed by AV, 31-Dec-2018.) $)
    minmar1val $p |- ( ( M e. B /\ K e. N /\ L e. N ) -> ( K ( Q ` M ) L )
                = ( i e. N , j e. N |-> if ( i = K , if ( j = L , .1. , .0. ) ,
                                                     ( i M j ) ) ) ) $=
      ( vk wcel wceq vl w3a cfv weq cif cv cmpt2 minmar1val0 3ad2ant1 cvv simp2
      co simpl3 wa cfn matrcl simpld jca adantr mpt2exga syl eqeq2 ifbid adantl
      wb ifbieq1d mpt2eq3dv ovmpt2dv2 mpd ) JBSZHKSZIKSZUBZJCUCZRUAKKFGKKFRUDZG
      UAUDZELUEZFUFZGUFZJULZUEZUGZUGTZHIVNULFGKKVRHTZVSITZELUEZVTUEZUGZTVJVKWCV
      LABCDEFGRJKLUAMNOPQUHUIVMRUAHIKKWBWHVNUJVJVKVLUKVJVKVLRUFZHTZUMVMWJUAUFZI
      TZUNZUNKUOSZWNUNZWBUJSVMWOWMVJVKWOVLVJWNWNVJWNDUJSABDKJMNUPUQZWPURUIUSFGK
      KWAUOUOUTVAWMWBWHTVMWMFGKKWAWGWMVOWDVQWFVTWJVOWDVEWLWIHVRVBUSWLVQWFTWJWLV
      PWEELWKIVSVBVCVDVFVGVDVHVI $.

    $d B i j $.  $d I i j $.  $d J i j $.  $d .0. i j $.  $d .1. i j $.
    $( An entry of a matrix for a minor.  (Contributed by AV, 31-Dec-2018.) $)
    minmar1eval $p |- ( ( M e. B /\ ( K e. N /\ L e. N )
                          /\ ( I e. N /\ J e. N ) )
                  -> ( I ( K ( Q ` M ) L ) J )
                     = if ( I = K , if ( J = L , .1. , .0. ) , ( I M J ) ) ) $=
      ( vi wcel wceq vj wa w3a cfv co cv cif cmpt2 minmar1val 3expb 3adant3 cvv
      simp3l simpl3r cur fvex eqeltri c0g ifex a1i wb eqeq1 adantr adantl ifbid
      ovex oveq12 ifbieq12d ovmpt2dv2 mpd ) JBSZHKSZIKSZUBZFKSZGKSZUBZUCZHIJCUD
      UEZRUAKKRUFZHTZUAUFZITZELUGZVTWBJUEZUGZUHTZFGVSUEFHTZGITZELUGZFGJUEZUGZTV
      KVNWGVQVKVLVMWGABCDERUAHIJKLMNOPQUIUJUKVRRUAFGKKWFWLVSULVKVNVOVPUMVOVPVKV
      NVTFTZUNWFULSVRWMWBGTZUBZUBWAWDWEWCELEDUOUDULPDUOUPUQLDURUDULQDURUPUQUSVT
      WBJVFUSUTWOWFWLTVRWOWAWHWDWEWJWKWMWAWHVAWNVTFHVBVCWOWCWIELWNWCWIVAWMWBGIV
      BVDVEVTFWBGJVGVHVDVIVJ $.
  $}

  ${
    $d M i j k l $.  $d N i j k l $.  $d R i j k l $.  $d .1. i j k l $.
    minmar1marrep.a $e |- A = ( N Mat R ) $.
    minmar1marrep.b $e |- B = ( Base ` A ) $.
    minmar1marrep.q $e |- Q = ( N matRRep R ) $.
    minmar1marrep.o $e |- .1. = ( 1r ` R ) $.
    $( The minor matrix is a special case of a matrix with a replaced row.
       (Contributed by AV, 12-Feb-2019.) $)
    minmar1marrep $p |- ( ( R e. Ring /\ M e. B )
                   -> ( ( N minMatR1 R ) ` M ) = ( M ( N matRRep R ) .1. ) ) $=
      ( vk vl vi vj wcel co cfv weq eqid crg wa cminmar1 c0g cmpt2 cmarrep wceq
      cif cv minmar1val0 adantl simpr ringidcl adantr marrepval0 syl2anc eqtr4d
      cbs ) DUAPZFBPZUBZFGDUCQZRZLMGGNOGGNLSOMSEDUDRZUHNUIOUIFQUHUEUEZFEGDUFQZQ
      ZUTVCVEUGUSABVBDENOLFGVDMHIVBTKVDTZUJUKVAUTEDURRZPZVGVEUGUSUTULUSVJUTVIDE
      VITKUMUNABVFDENOLFGVDMHIVFTVHUOUPUQ $.
  $}

  ${
    minmar1cl.a $e |- A = ( N Mat R ) $.
    minmar1cl.b $e |- B = ( Base ` A ) $.
    $( Closure of the row replacement function for square matrices:  The matrix
       for a minor is a matrix.  (Contributed by AV, 13-Feb-2019.) $)
    minmar1cl $p |- ( ( ( R e. Ring /\ M e. B ) /\ ( K e. N /\ L e. N ) )
                     -> ( K ( ( N minMatR1 R ) ` M ) L ) e. B ) $=
      ( crg wcel wa cminmar1 co cfv cur cmarrep wceq eqid adantr oveqd ringidcl
      minmar1marrep cbs w3a simpl simpr 3jca marrepcl sylan eqeltrd ) CJKZFBKZL
      ZDGKEGKLZLZDEFGCMNOZNDEFCPOZGCQNZNZNZBUPUQUTDEUNUQUTRUOABUSCURFGHIUSSURSZ
      UCTUAUNULUMURCUDOZKZUEUOVABKUNULUMVDULUMUFULUMUGULVDUMVCCURVCSVBUBTUHABCU
      RDEFGHIUIUJUK $.
  $}

  ${
    maducoevalmin1.a $e |- A = ( N Mat R ) $.
    maducoevalmin1.b $e |- B = ( Base ` A ) $.
    maducoevalmin1.d $e |- D = ( N maDet R ) $.
    ${
      $d H i j $.  $d I i j $.  $d M i j $.  $d N i j $.  $d R i j $.
      maducoevalmin1.j $e |- J = ( N maAdju R ) $.
      $( The coefficients of an adjunct (matrix of cofactors) expressed as
         determinants of the minor matrices (alternative definition) of the
         original matrix.  (Contributed by AV, 31-Dec-2018.) $)
      maducoevalmin1 $p |- ( ( M e. B /\ I e. N /\ H e. N )
           -> ( I ( J ` M ) H ) = ( D ` ( H ( ( N minMatR1 R ) ` M ) I ) ) ) $=
        ( vi vj wcel cfv co wceq eqid w3a cur c0g cif cmpt2 cminmar1 maducoeval
        cv minmar1val 3com23 eqcomd fveq2d eqtrd ) HBPZFIPZEIPZUAZFEHGQRNOIINUH
        ZESOUHZFSDUBQZDUCQZUDURUSHRUDUEZCQEFHIDUFRZQRZCQABCDUTNEFGHIVAOJLMKUTTZ
        VATZUGUQVBVDCUQVDVBUNUPUOVDVBSABVCDUTNOEFHIVAJKVCTVEVFUIUJUKULUM $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Laplace expansion of determinants (special case)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  According to Wikipedia ("Laplace expansion", 08-Mar-2019,
  ~ https://en.wikipedia.org/wiki/Laplace_expansion ) "In linear algebra, the
  Laplace expansion, named after Pierre-Simon Laplace, also called cofactor
  expansion, is an expression for the determinant det(B) of an n x n -matrix B
  that is a weighted sum of the determinants of n sub-matrices of B, each of
  size (n-1) x (n-1)". The expansion is usually performed for a row of matrix B
  (alternately for a column of matrix B). The mentioned "sub-matrices" are the
  matrices resultung from deleting the i-th row and the j-th column of matrix
  B.  The mentioned "weights" (factors/coefficients) are the elements at
  position i and j in matrix B. If the expansion is performed for a row, the
  coefficients are the elements of the selected row.

  In the following, only the case where the row for the expansion contains only
  the zero element of the underlying ring except at the diagonal position. By
  this, the sum for the Laplace expansion is reduced to one summand, consisting
  of the element at the diagonal position multiplied with the determinant of
  the corresponding submatrix, see ~ smadiadetg or ~ smadiadetr .

$)

  ${
    $d k A $.  $d k B $.  $d k q L $.  $d k q K $.  $d k M $.  $d k N $.
    $d k q P $.  $d k q Q $.
    symgmatr01.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    $( Lemma for ~ symgmatr01 .  (Contributed by AV, 3-Jan-2019.) $)
    symgmatr01lem $p |- ( ( K e. N /\ L e. N )
                          -> ( Q e. ( P \ { q e. P | ( q ` K ) = L } )
        -> E. k e. N if ( k = K , if ( ( Q ` k ) = L , A , B ) ,
                                  ( k M ( Q ` k ) ) ) = B ) ) $=
      ( wcel wa cv cfv wceq cif co eqeq1d wn crab cdif simpll eqeq1 fveq2 ifbid
      wrex wb id oveq12d ifbieq12d adantl eqidd iftrued eldif wo wi ianor fveq1
      elrab xchnxbir pm2.21 ax-1 jaoi sylbi impcom iffalsed eqtrd rspcedvd ex )
      FILZGILZMZDCFJNZOZGPZJCUAZUBLZENZFPZVSDOZGPZABQZVSWAHRZQZBPZEIUGVMVRMZWFF
      FPZFDOZGPZABQZFWIHRZQZBPZEFIVKVLVRUCVTWFWNUHWGVTWEWMBVTVTWHWCWDWKWLVSFFUD
      VTWBWJABVTWAWIGVSFDUEZSUFVTVSFWAWIHVTUIWOUJUKSULWGWMWKBWGWHWKWLWGFUMUNWGW
      JABVRWJTZVMVRDCLZDVQLZTZMWPDCVQUOWSWQWPWSWQTZWPUPZWQWPUQZWQWJMXAWRWQWJURV
      PWJJDCVNDPVOWIGFVNDUSSUTVAWTXBWPWQWPVBWPWQVCVDVEVFVEULVGVHVIVJ $.

    $d i j k q L $.  $d i j K $.  $d i j k M $.  $d i j N $.  $d i j P $.
    $d i j Q $.  $d i j k .1. $.  $d i j k .0. $.
    symgmatr01.0 $e |- .0. = ( 0g ` R ) $.
    symgmatr01.1 $e |- .1. = ( 1r ` R ) $.
    $( Applying a permutation that does not fix a certain element of a set to a
       second element to an index of a matrix a row with 0's and a 1.
       (Contributed by AV, 3-Jan-2019.) $)
    symgmatr01 $p |- ( ( K e. N /\ L e. N )
                       -> ( Q e. ( P \ { q e. P | ( q ` K ) = L } )
                            -> E. k e. N ( k ( i e. N , j e. N
                      |-> if ( i = K , if ( j = L , .1. , .0. ) , ( i M j ) ) )
                                           ( Q ` k ) ) = .0. ) ) $=
      ( wcel wa cfv wceq cv crab cdif cif co cmpt2 wrex symgmatr01lem imp eqidd
      cvv weq wb eqeq1 adantr adantl ifbid oveq12 ifbieq12d simpr wi csymg eqid
      eldifi symgfv ex syl cur fvex eqeltri c0g ifex ovex ovmpt2d eqeq1d mpbird
      a1i rexbidva ) HKQIKQRZBAHMUASITMAUBZUCQZGUAZWBBSZEFKKEUAZHTZFUAZITZDLUDZ
      WDWFJUEZUDZUFZUEZLTZGKUGZVSWARZWNWBHTZWCITZDLUDZWBWCJUEZUDZLTZGKUGZVSWAXB
      DLABGHIJKMNUHUIWOWMXAGKWOWBKQZRZWLWTLXDEFWBWCKKWJWTWKUKXDWKUJEGULZWFWCTZR
      ZWJWTTXDXGWEWPWHWIWRWSXEWEWPUMXFWDWBHUNUOXGWGWQDLXFWGWQUMXEWFWCIUNUPUQWDW
      BWFWCJURUSUPWOXCUTWOXCWCKQZWAXCXHVAZVSWABAQZXIBAVTVDXJXCXHKABKVBSZWBXKVCN
      VEVFVGUPUIWTUKQXDWPWRWSWQDLDCVHSUKPCVHVIVJLCVKSUKOCVKVIVJVLWBWCJVMVLVQVNV
      OVRVPVF $.
  $}

  ${
    $d A i j n $.  $d B i j n $.  $d G i j n $.  $d K i j n $.  $d K r $.
    $d L i j n $.  $d L r $.  $d N i j n $.  $d P r $.  $d Q r $.
    $d Q i j n $.  $d R i j n $.  $d S i j n $.  $d X i j $.  $d .0. i j n $.
    gsummatr01.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    gsummatr01.r $e |- R = { r e. P | ( r ` K ) = L } $.
    $( Lemma A for ~ gsummatr01 .  (Contributed by AV, 8-Jan-2019.) $)
    gsummatr01lem1 $p |- ( ( Q e. R /\ X e. N ) -> ( Q ` X ) e. N ) $=
      ( wcel cfv wceq cv fveq1 eqeq1d elrab2 simplbi csymg eqid symgfv sylan )
      BCKZBAKZGFKGBLFKUCUDDBLZEMZDHNZLZEMUFHBACUGBMUHUEEDUGBOPJQRFABFSLZGUITIUA
      UB $.

    $( Lemma B for ~ gsummatr01 .  (Contributed by AV, 8-Jan-2019.) $)
    gsummatr01lem2 $p |- ( ( Q e. R /\ X e. N )
                           -> ( A. i e. N A. j e. N ( i A j ) e. ( Base ` G )
                                -> ( X A ( Q ` X ) ) e. ( Base ` G ) ) ) $=
      ( wcel wa cv co cfv wral cbs simpr gsummatr01lem1 jca ovrspc2v sylan ex )
      CDOZKJOZPZEQFQARGUASZOFJTEJTZKKCSZARUKOZUJUIUMJOZPULUNUJUIUOUHUIUBBCDHIJK
      LMNUCUDEFJJUKAKUMUEUFUG $.

    gsummatr01.0 $e |- .0. = ( 0g ` G ) $.
    gsummatr01.s $e |- S = ( Base ` G ) $.
    $( Lemma 1 for ~ gsummatr01 .  (Contributed by AV, 8-Jan-2019.) $)
    gsummatr01lem3 $p |- ( ( ( G e. CMnd /\ N e. Fin )
                            /\ ( A. i e. N A. j e. N ( i A j ) e. S /\ B e. S )
                            /\ ( K e. N /\ L e. N /\ Q e. R ) )
       -> ( G gsum ( n e. ( ( N \ { K } ) u. { K } )
            |-> ( n ( i e. N , j e. N |-> if ( i = K ,
                      if ( j = L , .0. , B ) , ( i A j ) ) ) ( Q ` n ) ) ) )
      = ( ( G gsum ( n e. ( N \ { K } )
            |-> ( n ( i e. N , j e. N |-> if ( i = K ,
                      if ( j = L , .0. , B ) , ( i A j ) ) ) ( Q ` n ) ) ) )
           ( +g ` G ) ( K ( i e. N , j e. N |-> if ( i = K ,
                      if ( j = L , .0. , B ) , ( i A j ) ) ) ( Q ` K ) ) ) ) $=
      ( wcel ccmn cfn wa cv co wral w3a csn cdif cbs cfv cplusg wceq cmpt2 eqid
      cif simpl 3ad2ant1 diffi adantl cvv eqidd wb eqeq1 adantr ifbid ifbieq12d
      oveq12 eldifsni neneqd iffalsed sylan9eqr eldifi wi gsummatr01lem1 expcom
      weq syl11 3ad2ant3 imp ovexd ovmpt2d eleq2i 2ralbii gsummatr01lem2 sylan2
      3ad2antl3 ex com3r sylbi imp31 3adantl1 eqeltrd simp31 neldifsnd sylan9eq
      iftrue simpr1 3adant2 c0g fvex eqeltri ifexg sylancr adantll 3adant1 cmnd
      ancoms cmnmnd mndidcl syl biimpi 3ad2ant2 ifcld id fveq2 oveq12d gsumunsn
      ) JUATZMUBTZUCZGUDZHUDZAUEZFTZHMUFGMUFZBFTZUCZKMTZLMTZDETZUGZUGZMKUHZUIZJ
      UJUKZJULUKZIJKMIUDZYRDUKZGHMMYBKUMZYCLUMZNBUPZYDUPZUNZUEZKKDUKZUUDUEZYPUO
      ZYQUOYAYHXSYLXSXTUQURYAYHYOUBTZYLXTUUIXSMYNUSUTURYMYRYOTZUCUUEYRYSAUEZYPY
      LYAUUJUUEUUKUMYHYLUUJUCZGHYRYSMMUUCUUKUUDVAUULUUDVBGIVQZYCYSUMZUCZUULUUCY
      RKUMZYSLUMZNBUPZUUKUPZUUKUUOYTUUPUUBYDUURUUKUUMYTUUPVCUUNYBYRKVDVEUUNUUBU
      URUMUUMUUNUUAUUQNBYCYSLVDVFUTYBYRYCYSAVHVGUUJUUSUUKUMYLUUJUUPUURUUKUUJYRK
      YRMKVIVJVKUTVLUUJYRMTZYLYRMYNVMZUTYLUUJYSMTZYKYIUUJUVBVNYJUUTYKUVBUUJYKUU
      TUVBCDEKLMYROPQVOVPUVAVRVSVTUULYRYSAWAWBWGYHYLUUJUUKYPTZYAYHYLUUJUVCYFYLU
      UJUVCVNVNZYGYFYDYPTZHMUFGMUFZUVDYEUVEGHMMFYPYDSWCWDYLUUJUVFUVCYKYIUUJUVFU
      VCVNZVNYJYKUUJUVGUUJYKUUTUVGUVAACDEGHJKLMYROPQWEWFWHVSWIWJVEWKWLWMYAYHYIY
      JYKWNYMKMWOYMUUGUUFLUMZNBUPZYPYHYLUUGUVIUMZYAYGYLUVJYFYGYLUCZGHKUUFMMUUCU
      VIUUDVAUVKUUDVBYTYCUUFUMZUCUUCUVIUMUVKYTUVLUUCUUBUVIYTUUBYDWQUVLUUAUVHNBY
      CUUFLVDVFWPUTYGYIYJYKWRYLUUFMTZYGYIYKUVMYJYKYIUVMCDEKLMKOPQVOXHWSUTUVKNVA
      TYGUVIVATNJWTUKVARJWTXAXBYGYLUQUVHNBVAFXCXDWBXEXFYMUVHNBYPYAYHNYPTZYLXSUV
      NXTXSJXGTUVNJXIYPJNUUHRXJXKVEURYHYABYPTZYLYGUVOYFYGUVOFYPBSWCXLUTXMXNWMUU
      PYRKYSUUFUUDUUPXOYRKDXPXQXR $.

    $( Lemma 2 for ~ gsummatr01 .  (Contributed by AV, 8-Jan-2019.) $)
    gsummatr01lem4 $p |- ( ( ( ( G e. CMnd /\ N e. Fin )
                    /\ ( A. i e. N A. j e. N ( i A j ) e. S /\ B e. S )
                    /\ ( K e. N /\ L e. N /\ Q e. R ) ) /\ n e. ( N \ { K } ) )
                -> ( n ( i e. N , j e. N |-> if ( i = K ,
                             if ( j = L , .0. , B ) , ( i A j ) ) ) ( Q ` n ) )
                   = ( n ( i e. ( N \ { K } ) , j e. ( N \ { L } )
                           |-> ( i A j ) ) ( Q ` n ) ) ) $=
      ( wcel ccmn cfn wa cv co wral w3a csn cdif cfv cif cmpt2 wi cvv eqidd weq
      wceq eqeq1 adantr adantl ifbid oveq12 ifbieq12d eldifsni neneqd sylan9eqr
      wb iffalsed eldifi gsummatr01lem1 sylan2 ovexd ovmpt2d 3ad2ant3 imp simpr
      ex wne fveq1 eqeq1d elrab2 simpll eqid symgfv syl2an simplrr 3jca simpllr
      csymg symgfvne syl3c jca exp42 sylbi com13 3imp eldifsn sylibr nfra1 nfcv
      nfv nfel2 nfan nf3an nfra2 ovmpt2dxf eqtr4d ) JUATMUBTUCZGUDZHUDZAUEZFTZH
      MUFZGMUFZBFTZUCZKMTZLMTZDETZUGZUGZIUDZMKUHZUIZTZUCZYBYBDUJZGHMMXIKUQZXJLU
      QZNBUKZXKUKZULZUEZYBYGAUEZYBYGGHYDMLUHUIZXKULZUEYAYEYMYNUQZXTXHYEYQUMZXPX
      SXQYRXRXSYEYQXSYEUCZGHYBYGMMYKYNYLUNYSYLUOGIUPZXJYGUQZUCZYSYKYBKUQZYGLUQZ
      NBUKZYNUKZYNUUBYHUUCYJXKUUEYNYTYHUUCVGUUAXIYBKURUSUUBYIUUDNBUUAYIUUDVGYTX
      JYGLURUTVAXIYBXJYGAVBZVCYEUUFYNUQXSYEUUCUUEYNYEYBKYBMKVDZVEVHUTVFYEYBMTZX
      SYBMYCVIZUTYEXSUUIYGMTZUUJCDEKLMYBOPQVJVKYSYBYGAVLVMVQVNVNVOYFGHYBYGYDYOX
      KYNYPYOUNYFYPUOUUBXKYNUQYFUUGUTYFYTUCYOUOYAYEVPYFUUKYGLVRZUCZYGYOTYAYEUUM
      XTXHYEUUMUMZXPXQXRXSUUNXSXRXQUUNXSDCTZKDUJZLUQZUCZXRXQUUNUMUMKOUDZUJZLUQU
      UQODCEUUSDUQUUTUUPLKUUSDVSVTQWAUURXRXQYEUUMUURXRXQUCZUCZYEUCZUUKUULUVBUUO
      UUIUUKYEUUOUUQUVAWBZUUJMCDMWIUJZYBUVEWCZPWDWEUVCUUOXQUUIUGUUQYBKVRZUULUVC
      UUOXQUUIUVBUUOYEUVDUSUURXRXQYEWFYEUUIUVBUUJUTWGUUOUUQUVAYEWHYEUVGUVBUUHUT
      MCDUVEKYBLUVFPWJWKWLWMWNWOWPVNVOYGMLWQWRYFYBYGAVLYAYEGXHXPXTGXHGXAXNXOGXM
      GMWSGBFGFWTXBXCXTGXAXDGYBYDGYDWTXBXCYAYEHXHXPXTHXHHXAXNXOHXLGHMMXEHBFHFWT
      XBXCXTHXAXDHYBYDHYDWTXBXCHYBWTGYGWTGYNWTHYNWTXFXG $.

    $( Lemma 1 for ~ smadiadetlem4 .  (Contributed by AV, 8-Jan-2019.) $)
    gsummatr01 $p |- ( ( ( G e. CMnd /\ N e. Fin )
                          /\ ( A. i e. N A. j e. N ( i A j ) e. S /\ B e. S )
                          /\ ( K e. N /\ L e. N /\ Q e. R ) )
           -> ( G gsum ( n e. N
                |-> ( n ( i e. N , j e. N
                      |-> if ( i = K , if ( j = L , .0. , B ) , ( i A j ) ) )
                      ( Q ` n ) ) ) )
            = ( G gsum ( n e. ( N \ { K } )
                |-> ( n ( i e. ( N \ { K } ) , j e. ( N \ { L } )
                      |-> ( i A j ) ) ( Q ` n ) ) ) ) ) $=
      ( wcel ccmn cfn wa cv co wral w3a cfv wceq cif cmpt2 cmpt cgsu csn cplusg
      cdif difsnid eqcomd 3ad2ant1 3ad2ant3 mpteq1d oveq2d gsummatr01lem3 eqidd
      cun cvv wb fveq1 eqeq1d elrab2 eqeq2 adantl anbi2d iftrue sylan9eq syl6bi
      sylbi imp gsummatr01lem1 ancoms 3adant2 c0g fvex eqeltri a1i ovmpt2d cmnd
      simp1 cbs cmnmnd adantr eqid simp1l diffi weq eqeq1 ifbid oveq12 eldifsni
      ifbieq12d neneqd iffalsed sylan9eqr eldifi simp3 syl2an 3ad2antl3 2ralbii
      ovexd wi eleq2i gsummatr01lem2 syl2anr ex com13 3adant1 eqeltrd ralrimiva
      syl5bi gsummptcl mndrid syl2anc gsummatr01lem4 mpteq2dva 3eqtrd ) JUATZMU
      BTZUCZGUDZHUDZAUEZFTZHMUFGMUFZBFTZUCZKMTZLMTZDETZUGZUGZJIMIUDZUUADUHZGHMM
      YIKUIZYJLUIZNBUJZYKUJZUKZUEZULZUMUEJIMKUNZUPZUUJVEZUUHULZUMUEJIUUKUUHULZU
      MUEZKKDUHZUUGUEZJUOUHZUEZJIUUKUUAUUBGHUUKMLUNUPYKUKUEZULZUMUEZYTUUIUUMJUM
      YTIMUULUUHYSYHMUULUIZYOYPYQUVCYRYPUULMMKUQURUSUTVAVBABCDEFGHIJKLMNOPQRSVC
      YTUUSUUONUURUEZUUOUVBYTUUQNUUOUURYSYHUUQNUIYOYSGHKUUPMMUUFNUUGVFYSUUGVDYS
      UUCYJUUPUIZUCZUUFNUIZYSUVFUUCUUDUCZUVGYRYPUVFUVHVGZYQYRDCTZUUPLUIZUCZUVIK
      OUDZUHZLUIUVKODCEUVMDUIUVNUUPLKUVMDVHVIQVJUVLUVEUUDUUCUVKUVEUUDVGUVJUUPLY
      JVKVLVMVQUTUUCUUDUUFUUENUUCUUEYKVNUUDNBVNVOVPVRYPYQYRWHYPYRUUPMTZYQYRYPUV
      OCDEKLMKOPQVSVTWANVFTYSNJWBUHVFRJWBWCWDWEWFUTVBYTJWGTZUUOJWIUHZTUVDUUOUIY
      HYOUVPYSYFUVPYGJWJWKUSYTUVQIJUUKUUHUVQWLZYFYGYOYSWMYHYOUUKUBTZYSYGUVSYFMU
      UJWNVLUSYTUUHUVQTIUUKYTUUAUUKTZUCUUHUUAUUBAUEZUVQYSYHUVTUUHUWAUIYOYSUVTUC
      ZGHUUAUUBMMUUFUWAUUGVFUWBUUGVDGIWOZYJUUBUIZUCZUWBUUFUUAKUIZUUBLUIZNBUJZUW
      AUJZUWAUWEUUCUWFUUEYKUWHUWAUWCUUCUWFVGUWDYIUUAKWPWKUWDUUEUWHUIUWCUWDUUDUW
      GNBYJUUBLWPWQVLYIUUAYJUUBAWRWTUVTUWIUWAUIYSUVTUWFUWHUWAUVTUUAKUUAMKWSXAXB
      VLXCUVTUUAMTZYSUUAMUUJXDZVLYSYRUWJUUBMTUVTYPYQYRXEZUWKCDEKLMUUAOPQVSXFUWB
      UUAUUBAXIWFXGYTUVTUWAUVQTZYOYSUVTUWMXJZYHYOYSUWNYMYSUWNXJYNUVTYSYMUWMUVTY
      SYMUWMXJZYSYRUWJUWOUVTUWLUWKYMYKUVQTZHMUFGMUFYRUWJUCUWMYLUWPGHMMFUVQYKSXK
      XHACDEGHJKLMUUAOPQXLXSXMXNXOWKVRXPVRXQXRXTUVQUURJUUONUVRUURWLRYAYBYTUUNUV
      AJUMYTIUUKUUHUUTABCDEFGHIJKLMNOPQRSYCYDVBYEYE $.
  $}

  ${
    $d k l B $.  $d k l M $.  $d k l N $.  $d k l R $.
    marep01ma.a $e |- A = ( N Mat R ) $.
    marep01ma.b $e |- B = ( Base ` A ) $.
    marep01ma.r $e |- R e. CRing $.
    marep01ma.0 $e |- .0. = ( 0g ` R ) $.
    marep01ma.1 $e |- .1. = ( 1r ` R ) $.
    $( Replacing a row of a square matrix by a row with 0's and a 1 results in
       a square matrix of the same dimension.  (Contributed by AV,
       30-Dec-2018.) $)
    marep01ma $p |- ( M e. B -> ( k e. N , l e. N |-> if ( k = H ,
                             if ( l = I , .1. , .0. ) , ( k M l ) ) ) e. B ) $=
      ( wcel cv wceq cif co cbs cfv ccrg eqid cfn cvv matrcl simpld a1i w3a crg
      crngring ringidcl ring0cl keepel simp2 simp3 id syl6eleq 3ad2ant1 syl3anc
      mp2b matecl ifcld matbas2d ) HBQZEKABERZFSZKRZGSZDJTZVHVJHUAZTCCUBUCZIUDL
      VNUEZMVGIUFQCUGQABCIHLMUHUICUDQZVGNUJVGVHIQZVJIQZUKZVIVLVMVNVLVNQVSVKDJVN
      VPCULQZDVNQNCUMZVNCDVOPUNVCVPVTJVNQNWAVNCJVOOUOVCUPUJVSVQVRHAUBUCZQZVMVNQ
      VGVQVRUQVGVQVRURVGVQWCVRVGHBWBVGUSMUTVAACVHVJVNHILVOVDVBVEVF $.

    $d i j m n B $.  $d i j m n q K $.  $d i j m n q L $.  $d i j m n M $.
    $d i j m n N $.  $d i j m n q P $.  $d i j m n q Q $.  $d i j m n R $.
    $d i j m n .1. $.  $d i j m n .0. $.  $d m n G $.
    smadiadetlem.p $e |- P = ( Base ` ( SymGrp ` N ) ) $.
    smadiadetlem.g $e |- G = ( mulGrp ` R ) $.
    $( Lemma 0 for ~ smadiadet :  The products of the Leibniz' formula vanish
       for all permutations fixing the index of the row containing the 0's and
       the 1 to the column with the 1.  (Contributed by AV, 3-Jan-2019.) $)
    smadiadetlem0 $p |- ( ( M e. B /\ K e. N /\ L e. N )
          -> ( Q e. ( P \ { q e. P | ( q ` K ) = L } ) -> ( G gsum ( n e. N
               |-> ( n ( i e. N , j e. N
                      |-> if ( i = K , if ( j = L , .1. , .0. ) , ( i M j ) ) )
                      ( Q ` n ) ) ) ) = .0. ) ) $=
      ( vm wcel w3a cv cfv wceq crab cdif cif co cmpt2 cmpt cgsu wa a1i cfn cvv
      ccrg matrcl simpld 3ad2ant1 adantr cbs wral wi crg crngring eldifi adantl
      mp1i marep01ma matepm2cl syl3anc weq fveq2 oveq12d eleq1d rspccv syl wrex
      id imp symgmatr01 3adant1 gsummgp0 ex ) MBUEZKNUEZLNUEZUFZDCKPUGUHLUIPCUJ
      ZUKUEZJINIUGZWPDUHZGHNNGUGZKUIHUGZLUIFOULWRWSMUMULUNZUMZUOUPUMOUIWMWOUQZX
      AUDUGZXCDUHZWTUMZEUDIJNOUCTEVAUEZXBSURWMNUSUEZWOWJWKXGWLWJXGEUTUEABENMQRV
      BVCVDVEXBWPNUEZXAEVFUHZUEZXBXEXIUEZUDNVGZXHXJVHXBEVIUEZDCUEZWTBUEZXLXFXMX
      BSEVJVMWOXNWMDCWNVKVLWMXOWOWJWKXOWLABEFGKLMNOHQRSTUAVNVDVEABCDEUDWTNQRUBV
      OVPXKXJUDWPNUDIVQZXEXAXIXPXCWPXDWQWTXPWDXCWPDVRVSVTWAWBWEIUDVQZXAXEUIXBXQ
      WPXCWQXDWTXQWDWPXCDVRVSVLWMWOXEOUIUDNWCZWKWLWOXRVHWJCDEFGHUDKLMNOPUBTUAWF
      WGWEWHWI $.

    $d n p $.
    madetminlem.y $e |- Y = ( ZRHom ` R ) $.
    madetminlem.s $e |- S = ( pmSgn ` N ) $.
    madetminlem.t $e |- .x. = ( .r ` R ) $.
    $( Lemma 1 for ~ smadiadet :  A summand of the determinant of a matrix
       belongs to the underlying ring.  (Contributed by AV, 1-Jan-2019.) $)
    smadiadetlem1 $p |- ( ( ( M e. B /\ K e. N ) /\ p e. P )
                   -> ( ( ( Y o. S ) ` p ) ( .r ` R ) ( G gsum ( n e. N |-> ( n
    ( i e. N , j e. N |-> if ( i = K , if ( j = K , .1. , .0. ) , ( i M j ) ) )
                                         ( p ` n ) ) ) ) ) e. ( Base ` R ) ) $=
      ( wcel wa cv ccrg wceq cif co cmpt2 ccom cfv cmpt cmulr cbs a1i marep01ma
      cgsu ad2antrr simpr madetsmelbas2 syl3anc ) MBUHZLNUHZUIZQUJZCUHZUIZDUKUH
      ZHINNHUJZLULIUJZLULGPUMVOVPMUNUMUOZBUHZVLVKOEUPUQKJNJUJZVSVKUQVQUNURVCUND
      USUQUNDUTUQUHVNVMTVAVHVRVIVLABDGHLLMNPIRSTUAUBVBVDVJVLVEABCVKDEJKVQNOUCUF
      UERSUDVFVG $.

    $d p B $.  $d p K $.  $d p L $.  $d p M $.  $d p N $.  $d p P $.  $d p R $.
    $d i j p q $.
    $( Lemma 1a for ~ smadiadet :  The summands of the Leibniz' formula vanish
       for all permutations fixing the index of the row containing the 0's and
       the 1 to the column with the 1.  (Contributed by AV, 3-Jan-2019.) $)
    smadiadetlem1a $p |- ( ( M e. B /\ K e. N /\ L e. N )
     -> ( R gsum ( p e. ( P \ { q e. P | ( q ` K ) = L } )
          |-> ( ( ( Y o. S ) ` p ) .x. ( G gsum ( n e. N
                |-> ( n ( i e. N , j e. N
                      |-> if ( i = K , if ( j = L , .1. , .0. ) , ( i M j ) ) )
                      ( p ` n ) ) ) ) ) ) ) = .0. ) $=
      ( wcel w3a cv cfv wceq crab cdif ccom co cmpt2 cmpt cgsu wa smadiadetlem0
      cif imp oveq2d mpteq2dva crg cbs ccrg crngring mp1i cfn cvv matrcl simpld
      3ad2ant1 adantr eldifi adantl zrhcopsgnelbas syl3anc eqid syl2anc ringmnd
      ringrz cmnd mp2b csymg fvex eqeltri difexg gsumz sylancr 3eqtrd ) NBUJZLO
      UJZMOUJZUKZDSCLRULUMMUNRCUOZUPZSULZPEUQUMZKJOJULZXDXBUMHIOOHULZLUNIULZMUN
      GQVDXEXFNURVDUSURUTVAURZFURZUTZVAURDSXAXCQFURZUTZVAURDSXAQUTZVAURZQWSXIXK
      DVAWSSXAXHXJWSXBXAUJZVBZXGQXCFWSXNXGQUNABCXBDGHIJKLMNOQRTUAUBUCUDUEUFVCVE
      VFVGVFWSXKXLDVAWSSXAXJQXODVHUJZXCDVIUMZUJZXJQUNDVJUJZXPXOUBDVKZVLZXOXPOVM
      UJZXBCUJZXRYAWSYBXNWPWQYBWRWPYBDVNUJABDONTUAVOVPVQVRXNYCWSXBCWTVSVTCXBDEO
      PUEUHUGWAWBXQDFXCQXQWCUIUCWFWDVGVFWSDWGUJZXAVNUJZXMQUNXSXPYDUBXTDWEWHCVNU
      JYEWSCOWIUMZVIUMVNUEYFVIWJWKCWTVNWLVLXASDVNQUCWMWNWO $.

    $( Lemma 2 for ~ smadiadet :  The summands of the Leibniz' formula vanish
       for all permutations fixing the index of the row containing the 0's and
       the 1 to itself.  (Contributed by AV, 31-Dec-2018.) $)
    smadiadetlem2 $p |- ( ( M e. B /\ K e. N )
     -> ( R gsum ( p e. ( P \ { q e. P | ( q ` K ) = K } )
          |-> ( ( ( Y o. S ) ` p ) .x. ( G gsum ( n e. N
                |-> ( n ( i e. N , j e. N
                      |-> if ( i = K , if ( j = K , .1. , .0. ) , ( i M j ) ) )
                      ( p ` n ) ) ) ) ) ) ) = .0. ) $=
      ( wcel cv cfv wceq crab cdif ccom cmpt2 cmpt cgsu smadiadetlem1a 3anidm23
      cif co ) MBUILNUIDRCLQUJUKLULQCUMUNRUJZOEUOUKKJNJUJZVDVCUKHINNHUJZLULIUJZ
      LULGPVAVEVFMVBVAUPVBUQURVBFVBUQURVBPULABCDEFGHIJKLLMNOPQRSTUAUBUCUDUEUFUG
      UHUSUT $.

    $d W n $.
    smadiadetlem.w $e |- W = ( Base ` ( SymGrp ` ( N \ { K } ) ) ) $.
    smadiadetlem.z $e |- Z = ( pmSgn ` ( N \ { K } ) ) $.
    $( Lemma 0 for ~ smadiadetlem3 .  (Contributed by AV, 12-Jan-2019.) $)
    smadiadetlem3lem0 $p |- ( ( ( M e. B /\ K e. N ) /\ Q e. W )
        -> ( ( ( Y o. Z ) ` Q ) ( .r ` R ) ( G gsum ( n e. ( N \ { K } )
               |-> ( n ( i e. ( N \ { K } ) , j e. ( N \ { K } )
                         |-> ( i M j ) ) ( Q ` n ) ) ) ) ) e. ( Base ` R ) ) $=
      ( wcel wa ccrg csn cdif cv co cmpt2 cmat cbs cfv ccom cmpt cgsu cmulr a1i
      wss difssd anim2i adantr submabas syl simpr eqid madetsmelbas2 syl3anc )
      NBULZMOULZUMZDPULZUMZEUNULZIJOMUOZUPZWEIUQJUQNURUSZWEEUTURZVAVBZULZWADQSV
      CVBLKWEKUQZWJDVBWFURVDVEUREVFVBUREVAVBULWCWBUBVGWBVRWEOVHZUMZWIVTWLWAVSWK
      VRVSOWDVIVJVKABWEEIJNOTUAVLVMVTWAVNWGWHPDESKLWFWEQUJUKUGWGVOWHVOUFVPVQ $.

    $d W p $.
    $( Lemma 1 for ~ smadiadetlem3 .  (Contributed by AV, 12-Jan-2019.) $)
    smadiadetlem3lem1 $p |- ( ( M e. B /\ K e. N )
      -> ( p e. W |-> ( ( ( Y o. Z ) ` p ) ( .r ` R )
          ( G gsum ( n e. ( N \ { K } )
              |-> ( n ( i e. ( N \ { K } ) , j e. ( N \ { K } ) |-> ( i M j ) )
                                  ( p ` n ) ) ) ) ) ) : W --> ( Base ` R ) ) $=
      ( wcel wa cv ccom cfv csn cdif co cmpt2 cmpt cgsu cmulr smadiadetlem3lem0
      cbs eqid fmptd ) MBULLNULUMSOSUNZPRUOUPKJNLUQURZJUNZVJVHUPHIVIVIHUNIUNMUS
      UTUSVAVBUSDVCUPUSZDVEUPSOVKVAZABCVHDEFGHIJKLMNOPQRTUAUBUCUDUEUFUGUHUIUJUK
      VDVLVFVG $.

    $( Lemma 2 for ~ smadiadetlem3 .  (Contributed by AV, 12-Jan-2019.) $)
    smadiadetlem3lem2 $p |- ( ( M e. B /\ K e. N )
       -> ran ( p e. W |-> ( ( ( Y o. Z ) ` p ) ( .r ` R )
                ( G gsum ( n e. ( N \ { K } )
                  |-> ( n ( i e. ( N \ { K } ) , j e. ( N \ { K } )
                        |-> ( i M j ) ) ( p ` n ) ) ) ) ) )
          C_ ( ( Cntz ` R ) ` ran ( p e. W |-> ( ( ( Y o. Z ) ` p ) ( .r ` R )
                ( G gsum ( n e. ( N \ { K } )
                  |-> ( n ( i e. ( N \ { K } ) , j e. ( N \ { K } )
                        |-> ( i M j ) ) ( p ` n ) ) ) ) ) ) ) ) $=
      ( wcel wa ccmn cv ccom cfv csn cdif co cmpt2 cmpt cmulr crn cbs wss ccntz
      cgsu ccrg crg crngring ringcmn mp2b wral smadiadetlem3lem0 ralrimiva eqid
      rnmptss syl cntzcmnss sylancr ) MBULLNULUMZDUNULZSOSUOZPRUPUQKJNLURUSZJUO
      ZWFWDUQHIWEWEHUOIUOMUTVAUTVBVHUTDVCUQUTZVBZVDZDVEUQZVFZWIWIDVGUQZUQVFDVIU
      LDVJULWCUBDVKDVLVMWBWGWJULZSOVNWKWBWMSOABCWDDEFGHIJKLMNOPQRTUAUBUCUDUEUFU
      GUHUIUJUKVOVPSOWGWJWHWHVQVRVSWJWIDWLWJVQWLVQVTWA $.

    $d G p y $.  $d K i j n y $.  $d M y $.  $d N y $.  $d R y $.  $d W y $.
    $d Y p y $.  $d Z p y $.
    $( Lemma 3 for ~ smadiadet .  (Contributed by AV, 31-Jan-2019.) $)
    smadiadetlem3 $p |- ( ( M e. B /\ K e. N )
                           -> ( R gsum ( p e. { q e. P | ( q ` K ) = K }
        |-> ( ( ( Y o. S ) ` p ) ( .r ` R ) ( G gsum ( n e. ( N \ { K } )
                              |-> ( n ( i e. ( N \ { K } ) , j e. ( N \ { K } )
                                    |-> ( i M j ) ) ( p ` n ) ) ) ) ) ) )
                            = ( R gsum ( p e. W
        |-> ( ( ( Y o. Z ) ` p ) ( .r ` R ) ( G gsum ( n e. ( N \ { K } )
                              |-> ( n ( i e. ( N \ { K } ) , j e. ( N \ { K } )
                                    |-> ( i M j ) ) ( p ` n ) ) ) ) ) ) ) ) $=
      ( vy wcel wa cv ccom cfv csn cdif co cmpt2 cmpt cgsu cmulr wceq crab cres
      cbs cvv ccntz eqid cmnd ccrg crg crngring ringmnd mp2b a1i csymg syl5eqel
      fvexd smadiadetlem3lem1 smadiadetlem3lem2 matrcl simpld adantr diffi 3syl
      cfn symgbasfi ovexd c0g fvex eqeltri fsuppmptdm wf1o fveq1 eqeq1d cbvrabv
      symgfixf1o sylan gsumzf1o symgfixelsi adantll eqidd fveq2 oveq2d mpteq2dv
      oveq12d cbvmptv fvres sylan9eq mpteq2dva fmptco wi zrhcopsgndif imp eqtrd
      oveq1d eqtr2d ) MBUNZLNUNZUOZDTOTUPZPRUQZURZKJNLUSZUTZJUPZYJYEURZHIYIYIHU
      PIUPMVAVBZVAZVCZVDVAZDVEURZVAZVCZVDVADYRTLSUPZURZLVFZSCVGZYEYIVHZVCZUQZVD
      VADTUUBYEPEUQURZYOYPVAZVCZVDVAYDODVIURZUUBYRDUUDVJQDVKURZUUIVLUDUUJVLDVMU
      NZYDDVNUNDVOUNUUKUCDVPDVQVRVSYDOYIVTURZVIURZVJUKYDUULVIWBWAABCDEFGHIJKLMN
      OPQRTUAUBUCUDUEUFUGUHUIUJUKULWCABCDEFGHIJKLMNOPQRTUAUBUCUDUEUFUGUHUIUJUKU
      LWDYDTOYRVJVJYQQYRVLYDOUUMWJUKYDNWJUNZYIWJUNUUMWJUNYBUUNYCYBUUNDVJUNABDNM
      UAUBWEWFZWGNYHWHYIUUMUULUULVLUUMVLWKWIWAYDYEOUNUOYGYOYPWLQVJUNYDQDWMURVJU
      DDWMWNWOVSWPYBUUNYCUUBOUUDWQUUOCUUBOUUDLNWJTUFUUALYEURZLVFSTCYSYEVFYTUUPL
      LYSYEWRWSWTUKUUDVLXAXBXCYDUUEUUHDVDYDUUETUUBUUCYFURZYOYPVAZVCUUHYDTUMUUBO
      UUCUMUPZYFURZKJYIYJYJUUSURZYLVAZVCZVDVAZYPVAZUURUUDYRYCYEUUBUNZUUCOUNYBYI
      CUUBOYELNSUFUUBVLUKYIVLXDXEYDUUDXFYRUMOUVEVCVFYDTUMOYQUVEYEUUSVFZYGUUTYOU
      VDYPYEUUSYFXGUVGYNUVCKVDUVGJYIYMUVBUVGYKUVAYJYLYJYEUUSWRXHXIXHXJXKVSUUSUU
      CVFZUUTUUQUVDYOYPUUSUUCYFXGUVHUVCYNKVDUVHJYIUVBYMUVHYJYIUNZUOUVAYKYJYLUVH
      UVIUVAYJUUCURYKYJUUSUUCWRYJYIYEXLXMXHXNXHXJXOYDTUUBUURUUGYDUVFUOUUQUUFYOY
      PYDUVFUUQUUFVFZYBUUNYCUVFUVJXPUUOCYEDELNPRSUFUIULUHXQXBXRXTXNXSXHYA $.

    $d G i j $.
    $( Lemma 4 for ~ smadiadet .  (Contributed by AV, 31-Jan-2019.) $)
    smadiadetlem4 $p |- ( ( M e. B /\ K e. N )
                            -> ( R gsum ( p e. { q e. P | ( q ` K ) = K }
              |-> ( ( ( Y o. S ) ` p ) ( .r ` R ) ( G gsum ( n e. N
                    |-> ( n ( i e. N , j e. N |-> if ( i = K ,
                 if ( j = K , .1. , .0. ) , ( i M j ) ) ) ( p ` n ) ) ) ) ) ) )
                            = ( R gsum ( p e. W
              |-> ( ( ( Y o. Z ) ` p ) ( .r ` R ) ( G gsum ( n e. ( N \ { K } )
                    |-> ( n ( i e. ( N \ { K } ) , j e. ( N \ { K } )
                          |-> ( i M j ) ) ( p ` n ) ) ) ) ) ) ) ) $=
      ( wcel wa cv cfv wceq crab ccom cif co cmpt2 cmpt cgsu cmulr csn cdif cfn
      ccmn cbs wral ccrg crngmgp mp1i matrcl simpld adantr simprl simprr eleq2i
      cvv jca biimpi eqid matecl syl3anc mgpbas syl6eleq ralrimivva crg ring0cl
      crngring mp2b jctir simpr ringidval gsummatr01 syl113anc oveq2d mpteq2dva
      eleqtri smadiadetlem3 eqtrd ) MBUMZLNUMZUNZDTLSUOUPLUQSCURZTUOZPEUSUPZKJN
      JUOZXJXHUPZHINNHUOZLUQIUOZLUQGQUTXLXMMVAZUTVBVAVCVDVAZDVEUPZVAZVCZVDVADTX
      GXIKJNLVFVGZXJXKHIXSXSXNVBVAVCVDVAZXPVAZVCZVDVADTOXHPRUSUPXTXPVAVCVDVAXFX
      RYBDVDXFTXGXQYAXFXHXGUMZUNZXOXTXIXPYDKVIUMZNVHUMZUNZXNKVJUPZUMZINVKHNVKZQ
      YHUMZUNXEXEYCXOXTUQXFYGYCXFYEYFDVLUMZYEXFUCDKUGVMVNXDYFXEXDYFDWAUMABDNMUA
      UBVOVPVQWBVQYDYJYKXFYJYCXFYIHINNXFXLNUMZXMNUMZUNZUNZXNDVJUPZYHYPYMYNMAVJU
      PZUMZXNYQUMXFYMYNVRXFYMYNVSXFYSYOXDYSXEXDYSBYRMUBVTWCVQVQADXLXMYQMNUAYQWD
      ZWEWFYQDKUGYTWGZWHWIVQQYQYHYLDWJUMQYQUMUCDWLYQDQYTUDWKWMUUAXAWNXFXEYCXDXE
      WOVQZUUBXFYCWOMQCXHXGYHHIJKLLNGSUFXGWDDGKUGUEWPYHWDWQWRWSWTWSABCDEFGHIJKL
      MNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULXBXC $.
  $}

  ${
    $d i j n p B $.  $d i j n p q K $.  $d i j n p M $.  $d i j n p q N $.
    $d i j n p R $.
    smadiadet.a $e |- A = ( N Mat R ) $.
    smadiadet.b $e |- B = ( Base ` A ) $.
    smadiadet.r $e |- R e. CRing $.
    smadiadet.d $e |- D = ( N maDet R ) $.
    smadiadet.h $e |- E = ( ( N \ { K } ) maDet R ) $.
    $( The determinant of a submatrix of a square matrix obtained by removing a
       row and a column at the same index equals the determinant of the
       original matrix with the row replaced with 0's and a 1 at the diagonal
       position.  (Contributed by AV, 31-Jan-2019.)  (Proof shortened by AV,
       24-Jul-2019.) $)
    smadiadet $p |- ( ( M e. B /\ K e. N )
         -> ( E ` ( K ( ( N subMat R ) ` M ) K ) )
            = ( D ` ( K ( ( N minMatR1 R ) ` M ) K ) ) ) $=
      ( vi vj vp wcel co cfv eqid vn vq wa csubma csn cdif cv cminmar1 submaval
      cmpt2 wceq 3anidm23 fveq2d cur c0g cif csymg cbs czrh ccom cmgp cmpt cgsu
      cpsgn minmar1val ccrg marep01ma mdetleib2 sylancr adantr crab cplusg ccmn
      cmulr crg crngring ringcmn mp2b a1i matrcl simpld symgbasfi smadiadetlem1
      cfn cvv syl cin c0 disjdif cun ssrab2 undif sylib eqcomd gsummptfidmsplit
      smadiadetlem4 smadiadetlem2 oveq12d cmnd ringmnd diffi cmat simpll difssd
      wss submabas syl2anc simpr madetsmelbas2 ralrimiva gsummptcl mndrid jctil
      syl3anc sylan2 eqtr4d 3eqtrd ) GBQZFHQZUCZFFGHDUDRZSRZESNOHFUEZUFZYDNUGZO
      UGZGRZUJZESZFFGHDUHRZSRZCSZXTYBYHEXRXSYBYHUKABYADNOFFGHIYATJUIULUMXTYLNOH
      HYEFUKYFFUKDUNSZDUOSZUPYGUPUJZCSZDPHUQSZURSZPUGZDUSSZHVDSZUTSDVASZUAHUAUG
      ZUUCYSSZYORVBVCRDVNSZRZVBVCRZYIXTYKYOCXRXSYKYOUKABYJDYMNOFFGHYNIJYJTYMTZY
      NTZVEULUMXRYPUUGUKZXSXRDVFQZYOBQUUJKABDYMNFFGHYNOIJKUUIUUHVGUAABCYRDUUAUU
      EUUBYOHYTPLIJYRTZYTTZUUATZUUETZUUBTZVHVIVJXTUUGDPFUBUGSFUKZUBYRVKZUUFVBVC
      RZDPYRUURUFZUUFVBVCRZDVLSZRDPYDUQSZURSZYSYTYDVDSZUTSUUBUAYDUUCUUDYHRVBVCR
      UUERZVBVCRZYNUVBRZYIXTYRDURSZUURUUTUVBPDUUFUVITZUVBTZDVMQZXTUUKDVOQZUVLKD
      VPZDVQVRVSZXRYRWDQZXSXRHWDQZUVPXRUVQDWEQABDHGIJVTWAZHYRYQYQTUULWBWFVJABYR
      DUUAUUEYMNOUAUUBFGHYTYNPIJKUUIUUHUULUUPUUMUUNUUOWCUURUUTWGWHUKXTUURYRWIVS
      XTUURUUTWJZYRXTUURYRXEZUVSYRUKUVTXTUUQUBYRWKVSUURYRWLWMWNWOXTUUSUVGUVAYNU
      VBABYRDUUAUUEYMNOUAUUBFGHUVDYTYNUVEUBPIJKUUIUUHUULUUPUUMUUNUUOUVDTZUVETZW
      PABYRDUUAUUEYMNOUAUUBFGHYTYNUBPIJKUUIUUHUULUUPUUMUUNUUOWQWRXTUVHUVGYIXTDW
      SQZUVGUVIQUVHUVGUKUUKUVMUWCKUVNDWTVRXTUVIPDUVDUVFUVJUVOXTYDWDQZUVDWDQXRUW
      DXSXRUVQUWDUVRHYCXAWFVJYDUVDUVCUVCTUWAWBWFXTUVFUVIQZPUVDXTYSUVDQZUCZUUKYH
      YDDXBRZURSZQZUWFUWEUUKUWGKVSUWGXRYDHXEZUWJXRXSUWFXCUWGHYCXDABYDDNOGHIJXFZ
      XGXTUWFXHUWHUWIUVDYSDUVEUAUUBYHYDYTUWAUWBUUMUWHTZUWITZUUPXIXNXJXKUVIUVBDU
      VGYNUVJUVKUUIXLVIXTUUKUWJUCZYIUVGUKXSXRUWKUWOXSHYCXDXRUWKUCUWJUUKUWLKXMXO
      UAUWHUWIEUVDDUVEUUEUUBYHYDYTPMUWMUWNUWAUUMUWBUUOUUPVHWFXPXQXQXP $.

    $d S i j $.
    $( Lemma 1 for ~ smadiadetg .  (Contributed by AV, 13-Feb-2019.) $)
    smadiadetglem1 $p |- ( ( M e. B /\ K e. N /\ S e. ( Base ` R ) )
       -> ( ( K ( M ( N matRRep R ) S ) K ) |` ( ( N \ { K } ) X. N ) )
          = ( ( K ( ( N minMatR1 R ) ` M ) K ) |` ( ( N \ { K } ) X. N ) ) ) $=
      ( vi vj wcel co cres wceq cbs cfv w3a cmarrep csn cxp cur cminmar1 cv c0g
      cdif cif cmpt2 mpt2difsnif eqtr4i wss wa ssid pm3.2i resmpt2 mp1i 3eqtr4a
      difss simp1 simp3 simp2 eqid marrepval syl22anc reseq1d ccrg crg crngring
      ringidcl syl 3eqtr4d ax-mp minmar1marrep sylancr eqcomd oveqd eqtrd ) HBQ
      ZGIQZEDUAUBZQZUCZGGHEIDUDRZRRZIGUEZUKZIUFZSZGGHDUGUBZWHRZRZWLSZGGHIDUHRUB
      ZRZWLSWGOPIIOUIZGTZPUIZGTZEDUJUBZULZWTXBHRZULZUMZWLSZOPIIXAXCWNXDULZXFULZ
      UMZWLSZWMWQWGOPWKIXGUMZOPWKIXKUMZXIXMXNOPWKIXFUMXOIIXEXFOPGUNIIXJXFOPGUNU
      OWKIUPZIIUPZUQZXIXNTWGXPXQIWJVCIURUSZOPIIWKIXGUTVAXRXMXOTWGXSOPIIWKIXKUTV
      AVBWGWIXHWLWGWCWFWDWDWIXHTWCWDWFVDZWCWDWFVEWCWDWFVFZYAABWHDEOPGGHIXDJKWHV
      GZXDVGZVHVIVJWGWPXLWLWGWCWNWEQZWDWDWPXLTXTDVKQZYDWGLYEDVLQZYDDVMZWEDWNWEV
      GWNVGZVNVOVAYAYAABWHDWNOPGGHIXDJKYBYCVHVIVJVPWGWPWSWLWGWOWRGGWGWRWOWGYFWC
      WRWOTYEYFLYGVQXTABWHDWNHIJKYBYHVRVSVTWAVJWB $.

    $d .x. i j $.
    smadiadetg.x $e |- .x. = ( .r ` R ) $.
    $( Lemma 2 for ~ smadiadetg .  (Contributed by AV, 14-Feb-2019.) $)
    smadiadetglem2 $p |- ( ( M e. B /\ K e. N /\ S e. ( Base ` R ) )
                       -> ( ( K ( M ( N matRRep R ) S ) K ) |` ( { K } X. N ) )
                          = ( ( ( { K } X. N ) X. { S } ) oF
              .x. ( ( K ( ( N minMatR1 R ) ` M ) K ) |` ( { K } X. N ) ) ) ) $=
      ( vi vj wcel wceq cbs cfv w3a csn cxp cur c0g cif cmpt2 cof cminmar1 cres
      cv co cmarrep cvv snex a1i cfn matrcl elex adantr syl 3ad2ant1 simp13 crg
      wa ccrg crngring mp1i ringidcl ring0cl ifcld fconstmpt2 offval22 ringridm
      eqid eqidd mpancom 3ad2ant3 ad2antrl iftrue oveq2d 3eqtr4d ringrz iffalse
      wn pm2.61ian 3adant2 mpt2eq3dva eqtrd simp2 minmar1val syld3an3 wss snssi
      reseq1d 3ad2ant2 resmpt2 sylancl mpt2snif 3eqtrd 3simpb syl12anc 3eqtr4rd
      ssid marrepval ) IBSZHJSZEDUAUBZSZUCZHUDZJUEZEUDUEZQRXMJRUMZHTZDUFUBZDUGU
      BZUHZUIZFUJZUNZQRXMJXQEXSUHZUIZXOHHIJDUKUNZUBUNZXNULZYBUNHHIEJDUOUNZUNUNZ
      XNULZXLYCQRXMJEXTFUNZUIYEXLQRXMJEXTFXOYAUPUPXJXJXMUPSXLHUQURXHXIJUPSZXKXH
      JUSSZDUPSZVGYMABDJIKLUTYNYMYOJUSVAVBVCVDXHXIXKQUMZXMSZXPJSZVEXLYQYRUCZDVF
      SZXTXJSDVHSZYTYSMDVIZVJYTXQXRXSXJXJDXRXJVQZXRVQZVKXJDXSUUCXSVQZVLVMVCXOQR
      XMJEUITXLQRXMJEVNURXLYAVRVOXLQRXMJYLYDXLYRYLYDTZYQXQXLYRVGZUUFXQUUGVGZEXR
      FUNZEYLYDXLUUIETZXQYRXKXHUUJXIYTXKUUJUUAYTXKMUUBVJZXJDFXREUUCPUUDVPVSVTWA
      UUHXTXREFXQXTXRTUUGXQXRXSWBVBWCXQYDETUUGXQEXSWBVBWDXQWGZUUGVGEXSFUNZXSYLY
      DXLUUMXSTZUULYRXKXHUUNXIYTXKUUNUUKXJDFEXSUUCPUUEWEVSVTWAUULYLUUMTUUGUULXT
      XSEFXQXRXSWFWCVBUULYDXSTUUGXQEXSWFVBWDWHWIWJWKXLYHYAXOYBXLYHQRJJYPHTZXTYP
      XPIUNZUHZUIZXNULZQRXMJUUQUIZYAXLYGUURXNXHXIXKXIYGUURTXHXIXKWLZABYFDXRQRHH
      IJXSKLYFVQUUDUUEWMWNWQXLXMJWOZJJWOZUUSUUTTXIXHUVBXKHJWPWRZJXFZQRJJXMJUUQW
      SWTUUTYATXLJXTUUPQRHXAURXBWCXLYKQRJJUUOYDUUPUHZUIZXNULZQRXMJUVFUIZYEXLYJU
      VGXNXLXHXKVGXIXIYJUVGTXHXIXKXCUVAUVAABYIDEQRHHIJXSKLYIVQUUEXGXDWQXLUVBUVC
      UVHUVITUVDUVEQRJJXMJUVFWSWTUVIYETXLJYDUUPQRHXAURXBXE $.

    $( The determinant of a square matrix with one row replaced with 0's and an
       arbitrary element of the underlying ring at the diagonal position equals
       the ring element multiplied with the determinant of a submatrix of the
       square matrix obtained by removing the row and the column at the same
       index.  (Contributed by AV, 14-Feb-2019.) $)
    smadiadetg $p |- ( ( M e. B /\ K e. N /\ S e. ( Base ` R ) )
                     -> ( D ` ( K ( M ( N matRRep R ) S ) K ) )
                        = ( S .x. ( E ` ( K ( ( N subMat R ) ` M ) K ) ) ) ) $=
      ( wcel cbs cfv co w3a cmarrep cminmar1 csubma eqid ccrg a1i crngring mp1i
      crg simp1 simp3 simp2 marrepcl syl32anc minmar1cl syl22anc smadiadetglem2
      smadiadetglem1 mdetrsca wceq smadiadet 3adant3 eqcomd oveq2d eqtrd ) IBQZ
      HJQZEDRSZQZUAZHHIEJDUBTTTZCSEHHIJDUCTSTZCSZFTEHHIJDUDTSTGSZFTVKABCDFHVIJV
      LEVMNKLVIUEPDUFQZVKMUGVKDUJQZVGVJVHVHVLBQVPVQVKMDUHUIZVGVHVJUKZVGVHVJULZV
      GVHVJUMZWAABDEHHIJKLUNUOVTVKVQVGVHVHVMBQVRVSWAWAABDHHIJKLUPUQWAABCDEFGHIJ
      KLMNOPURABCDEGHIJKLMNOUSUTVKVNVOEFVKVOVNVGVHVOVNVAVJABCDGHIJKLMNOVBVCVDVE
      VF $.
  $}

  ${
    smadiadetg0.r $e |- R e. CRing $.
    $( Lemma for ~ smadiadetr : version of ~ smadiadetg with all hypotheses
       defining class variables removed, i.e. all class variables defined in
       the hypotheses replaced in the theorem by their definition.
       (Contributed by AV, 15-Feb-2019.) $)
    smadiadetg0 $p |- ( ( M e. ( Base ` ( N Mat R ) ) /\ K e. N
                          /\ S e. ( Base ` R ) )
                       -> ( ( N maDet R ) ` ( K ( M ( N matRRep R ) S ) K ) )
                          = ( S ( .r ` R ) ( ( ( N \ { K } ) maDet R ) `
                                        ( K ( ( N subMat R ) ` M ) K ) ) ) ) $=
      ( cmat co cbs cfv cmdat cmulr csn cdif eqid smadiadetg ) EAGHZQIJZEAKHZAB
      ALJZECMNAKHZCDEQOROFSOUAOTOP $.
  $}

  ${
    $( The determinant of a square matrix with one row replaced with 0's and an
       arbitrary element of the underlying ring at the diagonal position equals
       the ring element multiplied with the determinant of a submatrix of the
       square matrix obtained by removing the row and the column at the same
       index.  Closed form of ~ smadiadetg .  Special case of the "Laplace
       expansion", see definition in [Lang] p. 515.  (Contributed by AV,
       15-Feb-2019.) $)
    smadiadetr $p |- ( ( ( R e. CRing /\ M e. ( Base ` ( N Mat R ) ) )
                         /\ ( K e. N /\ S e. ( Base ` R ) ) )
                       -> ( ( N maDet R ) ` ( K ( M ( N matRRep R ) S ) K ) )
                          = ( S ( .r ` R ) ( ( ( N \ { K } ) maDet R ) `
                                        ( K ( ( N subMat R ) ` M ) K ) ) ) ) $=
      ( ccrg wcel cmat co cbs cfv cmarrep cmdat csubma cmulr ccnfld oveq2 oveqd
      wa wceq csn cdif wi cif w3a 3anass fveq2d eleq2d 3anbi13d syl5bbr fveq12d
      fveq2 eqidd fveq1d oveq123d eqeq12d imbi12d cncrng smadiadetg0 dedth impl
      elimel ) AFGZDEAHIZJKZGZCEGZBAJKZGZSZCCDBEALIZIZIZEAMIZKZBCCDEANIZKZIZECU
      AUBZAMIZKZAOKZIZTZVCVFVJSZWDUCDEVCAPUDZHIZJKZGZVGBWFJKZGZUEZCCDBEWFLIZIZI
      ZEWFMIZKZBCCDEWFNIZKZIZVSWFMIZKZWFOKZIZTZUCAPAWFTZWEWLWDXEWEVFVGVIUEXFWLV
      FVGVIUFXFVFWIVIWKVGXFVEWHDXFVDWGJAWFEHQUGUHXFVHWJBAWFJULUHUIUJXFVOWQWCXDX
      FVMWOVNWPAWFEMQXFVLWNCCXFVKWMDBAWFELQRRUKXFBBWAXBWBXCAWFOULXFBUMXFVRWTVTX
      AAWFVSMQXFVQWSCCXFDVPWRAWFENQUNRUKUOUPUQWFBCDEAPFURVBUSUTVA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Inverse matrix
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    invrvald.b $e |- B = ( Base ` R ) $.
    invrvald.t $e |- .x. = ( .r ` R ) $.
    invrvald.o $e |- .1. = ( 1r ` R ) $.
    invrvald.u $e |- U = ( Unit ` R ) $.
    invrvald.i $e |- I = ( invr ` R ) $.
    invrvald.r $e |- ( ph -> R e. Ring ) $.
    invrvald.x $e |- ( ph -> X e. B ) $.
    invrvald.y $e |- ( ph -> Y e. B ) $.
    invrvald.xy $e |- ( ph -> ( X .x. Y ) = .1. ) $.
    invrvald.yx $e |- ( ph -> ( Y .x. X ) = .1. ) $.
    $( If a matrix multiplied with a given matrix (from the left as well as
       from the right) results in the identity matrix, this matrix is the
       inverse (matrix) of the given matrix.  (Contributed by Stefan O'Rear,
       17-Jul-2018.) $)
    invrvald $p |- ( ph -> ( X e. U /\ ( I ` X ) = Y ) ) $=
      ( cfv wcel wceq cdsr coppr co eqid dvdsrmul syl2anc breqtrd cmulr opprbas
      wbr opprmul syl5eq isunit sylanbrc cmgp cress c0g crg unitgrpid syl eqtrd
      cgrp wb unitgrp unitgrpbas cvv cplusg cui fvex eqeltri mgpplusg ressplusg
      ax-mp invrfval grpinvid1 syl3anc mpbird jca ) AHEUAZHGTIUBZAHFCUCTZULHFCU
      DTZUCTZULWAAHIHDUEZFWCAHBUAZIBUAZHWFWCULPQBWCCDHIJWCUFZKUGUHSUIAHIHWDUJTZ
      UEZFWEAWGWHHWKWEULPQBWEWDWJHIBCWDWDUFZJUKZWEUFZWJUFZUGUHAWKHIDUEZFBCWJDWD
      IHJKWLWOUMRUNUIWCCWDEFWEHMLWIWLWNUOUPZAWBWPCUQTZEURUEZUSTZUBZAWPFWTRACUTU
      AZFWTUBOCEFWSMWSUFZLVAVBVCAWSVDUAZWAIEUAZWBXAVEAXBXDOCEWSMXCVFVBWQAIFWCUL
      IFWEULXEAIWPFWCAWHWGIWPWCULQPBWCCDIHJWIKUGUHRUIAIHIWJUEZFWEAWHWGIXFWEULQP
      BWEWDWJIHWMWNWOUGUHAXFWFFBCWJDWDHIJKWLWOUMSUNUIWCCWDEFWEIMLWIWLWNUOUPEDWS
      GHIWTCEWSMXCVGEVHUADWSVITUBECVJTVHMCVJVKVLEDWRWSVHXCCDWRWRUFKVMVNVOWTUFCE
      WSGMXCNVPVQVRVSVT $.
  $}

  ${
    matinv.a $e |- A = ( N Mat R ) $.
    matinv.j $e |- J = ( N maAdju R ) $.
    matinv.d $e |- D = ( N maDet R ) $.
    matinv.b $e |- B = ( Base ` A ) $.
    matinv.u $e |- U = ( Unit ` A ) $.
    matinv.v $e |- V = ( Unit ` R ) $.
    matinv.h $e |- H = ( invr ` R ) $.
    matinv.i $e |- I = ( invr ` A ) $.
    matinv.t $e |- .xb = ( .s ` A ) $.
    $( The inverse of a matrix is the adjunct of the matrix multiplied with the
       inverse of the determinant of the matrix if the determinant is a unit in
       the underlying ring.  Proposition 4.16 in [Lang] p. 518.  (Contributed
       by Stefan O'Rear, 17-Jul-2018.) $)
    matinv $p |- ( ( R e. CRing /\ M e. B /\ ( D ` M ) e. V ) ->
        ( M e. U /\ ( I ` M ) = ( ( H ` ( D ` M ) ) .xb ( J ` M ) ) ) ) $=
      ( ccrg wcel cfv w3a cmulr cur co eqid casa crg cfn matrcl simpld 3ad2ant2
      cvv simp1 matassa syl2anc assaring syl simp2 clmod csca assalmod crngring
      3ad2ant1 simp3 ringinvcl wceq matsca2 fveq2d eleqtrd wf ffvelrnd lmodvscl
      cbs maduf syl3anc assaassr syl13anc madurid oveq2d unitlinv oveqd 3eqtr3d
      oveq1d unitcl 3ad2ant3 ringidcl lmodvsass lmodvs1 3eqtrd assaass invrvald
      madulid ) DUBUCZJBUCZJCUDZLUCZUEZBAAUFUDZFAUGUDZHJWSGUDZJIUDZEUHZPXBUIZXC
      UIZQTXAAUJUCZAUKUCZXAKULUCZWQXIWRWQXKWTWRXKDUPUCABDKJMPUMUNUOZWQWRWTUQZAD
      KMURUSZAUTVAZWQWRWTVBZXAAVCUCZXDAVDUDZVQUDZUCZXEBUCZXFBUCXAXIXQXNAVEVAZXA
      XDDVQUDZXSXADUKUCZWTXDYCUCWQWRYDWTDVFVGZWQWRWTVHZYCDLGWSRSYCUIZVIUSXADXRV
      QXAXKWQDXRVJXLXMADKUBMVKUSZVLZVMZXABBJIWQWRBBIVNWTABDIKMNPVRVGXPVOZXDEXRX
      SBAXEPXRUIZUAXSUIZVPVSXAJXFXBUHZXDJXEXBUHZEUHZXDWSXCEUHZEUHZXCXAXIXTWRYAY
      NYPVJXNYJXPYKXDXSEXBXRBAJXEPYLYMUAXGVTWAXAYOYQXDEXAWRWQYOYQVJXPXMABCDEXBX
      CIJKMPNOXHXGUAWBUSWCXAXDWSXRUFUDZUHZXCEUHZXRUGUDZXCEUHZYRXCXAYTUUBXCEXAXD
      WSDUFUDZUHZDUGUDZYTUUBXAYDWTUUEUUFVJYEYFDUUDLUUFGWSRSUUDUIUUFUIWDUSXAUUDY
      SXDWSXADXRUFYHVLWEXADXRUGYHVLWFWGXAXQXTWSXSUCXCBUCZUUAYRVJYBYJXAWSYCXSWTW
      QWSYCUCWRYCDLWSYGRWHWIYIVMXAXJUUGXOBAXCPXHWJVAZXDWSEYSXRXSBAXCPYLUAYMYSUI
      WKWAXAXQUUGUUCXCVJYBUUHEUUBXRBAXCPYLUAUUBUIWLUSWFZWMXAXFJXBUHZXDXEJXBUHZE
      UHZYRXCXAXIXTYAWRUUJUULVJXNYJYKXPXDXSEXBXRBAXEJPYLYMUAXGWNWAXAUUKYQXDEXAW
      RWQUUKYQVJXPXMABCDEXBXCIJKMPNOXHXGUAWPUSWCUUIWMWO $.
  $}

  ${
    matunit.a $e |- A = ( N Mat R ) $.
    matunit.d $e |- D = ( N maDet R ) $.
    matunit.b $e |- B = ( Base ` A ) $.
    matunit.u $e |- U = ( Unit ` A ) $.
    matunit.v $e |- V = ( Unit ` R ) $.
    $( A matrix is a unit in the ring of matrices iff its determinant is a unit
       in the underlying ring.  (Contributed by Stefan O'Rear, 17-Jul-2018.) $)
    matunit $p |- ( ( R e. CRing /\ M e. B ) ->
        ( M e. U <-> ( D ` M ) e. V ) ) $=
      ( wcel cfv wceq eqid simpld sylancom co ccrg cinvr cbs cmulr cur crngring
      wa crg ad2antrr mdetcl adantr wf mdetf cfn cvv ad2antlr matring ringinvcl
      matrcl syl2anc ffvelrnd unitrinv fveq2d mdetmul syl3anc unitlinv invrvald
      simpll simplr mdet1 3eqtr3d w3a cmadu cvsca matinv 3expa impbida ) DUANZF
      BNZUGZFENZFCOZHNZVTWAUGZWCWBDUBOZOZFAUBOZOZCOZPWDDUCOZDDUDOZHDUEOZWEWBWIW
      JQZWKQZWLQZMWEQZVRDUHNZVSWADUFUIZVTWBWJNWAABCDWJFGJIKWMUJUKWDBWJWHCVRBWJC
      ULVSWAABCDWJGJIKWMUMUIVTWAAUHNZWHBNZWDGUNNZWQWSVSXAVRWAVSXADUONABDGFIKUSR
      UPZWRADGIUQUTZBAEWGFLWGQZKURSZVAWDFWHAUDOZTZCOZAUEOZCOZWBWIWKTZWLWDXGXICV
      TWAWSXGXIPXCAXFEXIWGFLXDXFQZXIQZVBSVCWDVRVSWTXHXKPVRVSWAVHZVRVSWAVIZXEABC
      DXFWKFWHGIKJWNXLVDVEWDVRXAXJWLPXNXBACDWLXIGJIXMWOVJUTZVKWDWHFXFTZCOZXJWIW
      BWKTZWLWDXQXICVTWAWSXQXIPXCAXFEXIWGFLXDXLXMVFSVCWDVRWTVSXRXSPXNXEXOABCDXF
      WKWHFGIKJWNXLVDVEXPVKVGRVRVSWCWAVRVSWCVLWAWHWFFGDVMTZOAVNOZTPABCDYAEWEWGX
      TFGHIXTQJKLMWPXDYAQVORVPVQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cramer's rule
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In the following, Cramer's rule ~ cramer is proven.  According to Wikipedia
  "Cramer's rule", 21-Feb-2019,
  ~ https://en.wikipedia.org/wiki/Cramer%27s_rule :
  "[Cramer's rule] ... expresses the [[unique] solution [of a system of linear
  equations] in terms of the determinants of the (square) coefficient matrix
  and of matrices obtained from it by replacing one column by the column vector
  of right-hand sides of the equations."

  The outline of the proof for systems of linear equations with coefficients
  from a commutative ring, according to the proof in Wikipedia
  ( ~ https://en.wikipedia.org/wiki/Cramer's_rule#A_short_proof), is as
  follows:

  The system of linear equations ` A .X. X = B ` to be solved shall be given by
  the N x N coefficient matrix  ` A ` and the N-dimensional vector ` B `.
  Let ` ( A `` i ) ` be the matrix obtained by replacing the i-th column of the
  coefficient matrix ` A ` by the right-hand side vector ` B `.  Additionally,
  let ` ( X `` i ) ` be the matrix obtained by replacing the i-th column of the
  identity matrix by the solution vector ` X `, with ` X = ( x `` i ) `.
  Finally, it is assumed that det ` A ` is a unit in the underlying ring.

  With these definitions, it follows that ` A .X. ( X `` i ) = ( A ``  i ) `
  ( ~ cramerimplem2 ), using matrix multiplication ( ~ mamuval ) and
  multiplication of a vector with a matrix ( ~ mulmarep1gsum2 ). By using the
  multiplicativity of the determinant ( ~ mdetmul ) it follows that
  det ` ( A ``  i ) = ` det ` ( A .X. ( X `` i ) ) = ` det ` A .x. ` det
  ` ( X `` i ) ` ( ~ cramerimplem3 ).

  Furthermore, it follows that det ` ( X `` i ) = ( x `` i ) `
  ( ~ cramerimplem1 ). To show this, a special case of the Laplace expansion is
  used ( ~ smadiadetg ).

  From these equations and the cancellation law for division in a ring
  ( ~ dvrcan3 ) it follows that ` ( x `` i ) = ` det ` ( X `` i ) = `
  det ` ( A ``  i ) ./ ` det ` A ` .

  This is the right to left implication ( ~ cramerimp , ~ cramerlem1 ,
  ~ cramerlem2 ) of Cramer's rule ( ~ cramer ). The left to right implication
  is shown by ~ cramerlem3 , using the fact that a solution of the system of
  linear equations exists ( ~ slesolex ).

  Notice that for the special case of 0-dimensional matrices/vectors only the
  left to right implication is valid (see ~ cramer0 ), because assuming the
  right-hand side of the implication ( ` ( X .x. Z ) = Y ` ), ` Z ` could be
  anything (see ~ mavmul0g ).

$)

  ${
    slesolex.a $e |- A = ( N Mat R ) $.
    slesolex.b $e |- B = ( Base ` A ) $.
    slesolex.v $e |- V = ( ( Base ` R ) ^m N ) $.
    slesolex.x $e |- .x. = ( R maVecMul <. N , N >. ) $.
    $( Every solution of a system of linear equations represented by a matrix
       and a vector is a vector.  (Contributed by AV, 10-Feb-2019.)  (Revised
       by AV, 27-Feb-2019.) $)
    slesolvec $p |- ( ( ( N =/= (/) /\ R e. Ring ) /\ ( X e. B /\ Y e. V ) )
                      -> ( ( X .x. Z ) = Y -> Z e. V ) ) $=
      ( crg wcel wa co wi simpr adantr wne cfn w3a wceq cvv matrcl simpld simpl
      c0 3jca syl5com impcom anim12i cbs cfv cxp cmap eqid mavmulsolcl syl2anc
      ex ) EUIUAZCNOZPZGBOZHFOZPZPEUBOZVHVBUCZVCVFPGIDQHUDIFORVGVDVIVEVDVIRVFVE
      VHVDVIVEVHCUEOABCEGJKUFUGVBVHVIRVCVBVHVIVBVHPVHVHVBVBVHSZVJVBVHUHUJVATUKT
      ULVDVCVGVFVBVCSVEVFSUMGCUNUOZVKEEUPUQQZFCDFEENIHVKURVLURLMLUSUT $.

    slesolex.d $e |- D = ( N maDet R ) $.
    ${
      slesolinv.i $e |- I = ( invr ` A ) $.
      $( The solution of a system of linear equations represented by a matrix
         with a unit as determinant is the multiplication of the inverse of the
         matrix with the right-hand side vector.  (Contributed by AV,
         10-Feb-2019.)  (Revised by AV, 28-Feb-2019.) $)
      slesolinv $p |- ( ( ( N =/= (/) /\ R e. CRing ) /\ ( X e. B /\ Y e. V )
                          /\ ( ( D ` X ) e. ( Unit ` R ) /\ ( X .x. Z ) = Y ) )
                        -> Z = ( ( I ` X ) .x. Y ) ) $=
        ( wcel wa co wne ccrg cfv cui wceq w3a cotp cmmul cbs eqid crg crngring
        c0 adantl 3ad2ant1 cfn matrcl simpld adantr 3ad2ant2 cmap anim2i anim1i
        cvv 3adant3 simpr 3ad2ant3 slesolvec sylc syl6eleq anim12ci matring syl
        matunit bicomd ad2ant2lr biimpd adantrd 3impia ringinvcl syl2anc eleq2i
        wb biimpi mavmulass cur cmulr matmulr oveqd unitlinv eqtrd oveq1d oveq2
        1mavmul 3eqtr3d ) GUMUAZDUBRZSZIBRZJHRZSZICUCDUDUCZRZIKETZJUEZSZUFZIFUC
        ZIDGGGUGUHTZTZKETZXHXDETZKXHJETZXGADUIUCZDEXIGXHKILXNUJZOWRXADUKRZXFWQX
        PWPDULZUNZUOZXAWRGUPRZXFWSXTWTWSXTDVDRABDGILMUQURUSZUTZXGKHXNGVATXGWPXP
        SZXASZXEKHRWRXAYDXFWRYCXAWQXPWPXQVBVCVEXFWRXEXAXCXEVFVGABDEGHIJKLMNOVHV
        INVJZXIUJZXGAUKRZIAUDUCZRZXHAUIUCZRXGXTXPSZYGWRXAYKXFWRXPXAXTXRYAVKVEAD
        GLVLVMZWRXAXFYIWRXASZXCYIXEYMXCYIWQWSXCYIWCWPWTWQWSSYIXCABCDYHIGXBLPMYH
        UJZXBUJVNVOVPVQVRVSZYJAYHFIYNQYJUJVTWAXAWRIYJRZXFWSYPWTWSYPBYJIMWBWDUSU
        TWEXGXKAWFUCZKETKXGXJYQKEXGXJXHIAWGUCZTZYQXGXIYRXHIXGXTWQSZXIYRUEWRXAYT
        XFWRWQXAXTWPWQVFYAVKVEADXIGUBLYFWHVMWIXGYGYIYSYQUEYLYOAYRYHYQFIYNQYRUJY
        QUJWJWAWKWLXGAXNDEGKLXOOXSYBYEWNWKXFWRXLXMUEZXAXEUUAXCXDJXHEWMUNVGWO $.

      $( The solution of a system of linear equations represented by a matrix
         with a unit as determinant is the multiplication of the inverse of the
         matrix with the right-hand side vector.  (Contributed by AV,
         11-Feb-2019.)  (Revised by AV, 28-Feb-2019.) $)
      slesolinvbi $p |- ( ( ( N =/= (/) /\ R e. CRing )
                         /\ ( X e. B /\ Y e. V ) /\ ( D ` X ) e. ( Unit ` R ) )
                        -> ( ( X .x. Z ) = Y <-> Z = ( ( I ` X ) .x. Y ) ) ) $=
        ( wcel cfv co c0 wne ccrg wa cui w3a wceq simpl1 simpl2 simp3 slesolinv
        anim1i syl3anc oveq2 cmmul cur cmulr cfn simpr cvv matrcl simpld adantr
        cotp anim12ci 3adant3 eqid matmulr syl oveqd crngring adantl matring wb
        crg matunit ad2ant2lr biimp3ar unitrinv syl2anc eqtrd 3ad2ant1 3ad2ant2
        oveq1d cmap eleq2i biimpi ringinvcl mavmulass 1mavmul 3eqtr3d sylan9eqr
        cbs impbida ) GUAUBZDUCRZUDZIBRZJHRZUDZICSDUESZRZUFZIKETZJUGZKIFSZJETZU
        GZXCXEUDWQWTXBXEUDXHWQWTXBXEUHWQWTXBXEUIXCXBXEWQWTXBUJULABCDEFGHIJKLMNO
        PQUKUMXHXCXDIXGETZJKXGIEUNXCIXFDGGGVDUOTZTZJETAUPSZJETXIJXCXKXLJEXCXKIX
        FAUQSZTZXLXCXJXMIXFXCGURRZWPUDZXJXMUGWQWTXPXBWQWPWTXOWOWPUSWRXOWSWRXODU
        TRABDGILMVAVBVCZVEVFADXJGUCLXJVGZVHVIVJXCAVORZIAUESZRZXNXLUGXCXODVORZUD
        ZXSWQWTYCXBWQYBWTXOWPYBWODVKVLZXQVEVFADGLVMVIZWQWTYAXBWPWRYAXBVNWOWSABC
        DXTIGXALPMXTVGZXAVGVPVQVRZAXMXTXLFIYFQXMVGXLVGVSVTWAWDXCADWMSZDEXJGIJXF
        LYHVGZOWQWTYBXBYDWBZWTWQXOXBXQWCZWTWQJYHGWETZRZXBWSYMWRWSYMHYLJNWFWGVLW
        CZXRWTWQIAWMSZRZXBWRYPWSWRYPBYOIMWFWGVCWCXCXSYAXFYORYEYGYOAXTFIYFQYOVGW
        HVTWIXCAYHDEGJLYIOYJYKYNWJWKWLWN $.
    $}

    $d A z $.  $d B z $.  $d D z $.  $d N z $.  $d R z $.  $d V z $.  $d X z $.
    $d Y z $.  $d .x. z $.
    $( Every system of linear equations represented by a matrix with a unit as
       determinant has a solution.  (Contributed by AV, 11-Feb-2019.)  (Revised
       by AV, 28-Feb-2019.) $)
    slesolex $p |- ( ( ( N =/= (/) /\ R e. CRing ) /\ ( X e. B /\ Y e. V )
                       /\ ( D ` X ) e. ( Unit ` R ) )
                     -> E. z e. V ( X .x. z ) = Y ) $=
      ( wcel wa cfv co eqid c0 wne ccrg cui w3a cv wceq wrex cinvr cbs cmap crg
      cmulr crngring adantl 3ad2ant1 cfn matrcl simpld adantr 3ad2ant2 anim12ci
      cvv 3adant3 matring wb matunit bicomd ad2ant2lr biimp3a ringinvcl syl2anc
      syl eleq2i biimpi mavmulcl syl6eleqr slesolinvbi biimprd impancom pm2.43i
      rspcimedv ) GUAUBZEUCPZQZICPZJHPZQZIDREUDRZPZUEZIAUFZFSJUGZAHUHWKWMWKAIBU
      IRZRZJFSZHWKWPEUJRZGUKSZHWKBWQEEUMRZFGWOJKNWQTWSTWEWHEULPZWJWDWTWCEUNUOZU
      PWHWEGUQPZWJWFXBWGWFXBEVCPBCEGIKLURUSUTZVAWKBULPZIBUDRZPZWOBUJRZPWKXBWTQZ
      XDWEWHXHWJWEWTWHXBXAXCVBVDBEGKVEVMWEWHWJXFWDWFWJXFVFWCWGWDWFQXFWJBCDEXEIG
      WIKOLXETZWITVGVHVIVJXGBXEWNIXIWNTZXGTVKVLWHWEJWRPZWJWGXKWFWGXKHWRJMVNVOUO
      VAVPMVQWKWKWLWPUGZWMWKWKQWMXLWKWMXLVFWKBCDEFWNGHIJWLKLMNOXJVRUTVSVTWBWA
      $.
  $}

  ${
    cramerimplem1.a $e |- A = ( N Mat R ) $.
    cramerimplem1.b $e |- B = ( Base ` A ) $.
    cramerimplem1.v $e |- V = ( ( Base ` R ) ^m N ) $.
    cramerimplem1.e $e |- E = ( ( ( 1r ` A ) ( N matRepV R ) Z ) ` I ) $.
    cramerimplem1.d $e |- D = ( N maDet R ) $.
    $( Lemma 1 for ~ cramerimp :  The determinant of the identity matrix with
       the ith column replaced by a (column) vector equals the ith component of
       the vector.  (Contributed by AV, 15-Feb-2019.)  (Revised by AV,
       28-Feb-2019.) $)
    cramerimplem1 $p |- ( ( ( N e. Fin /\ R e. CRing /\ I e. N ) /\ Z e. V )
                          -> ( D ` E ) = ( Z ` I ) ) $=
      ( wcel wa cfv co wceq eqid cfn ccrg w3a cmarrep csubma csn cdif cmdat crg
      cmulr crngring anim2i ancomd adantr simp3 anim1i cur cmat 1marepvmarrepid
      3adant3 fveq2i syl2anc eqcomd fveq2d a1i fveq1d simpl2 cmatrepV ma1repvcl
      cbs eqcomi syl5eqel wi wf elmapi ffvelrn ex syl eleq2s com12 3ad2ant3 imp
      cmap smadiadetr syl22anc eqtrd 1marepvsma1 oveq2d diffi 3ad2ant2 ringridm
      mdet1 3eqtrd ) GUAOZDUBOZFGOZUCZIHOZPZECQFFEFIQZGDUDRRRZCQZWTFFEGDUERQRZG
      FUFZUGZDUHRZQZDUJQZRZWTWSEXACWSXAEWSDUIOZWNPZWPWRPZXAESWQXKWRWNWOXKWPWNWO
      PZWNXJWOXJWNDUKZULUMUTUNZWQWPWRWNWOWPUOZUPZDAUQQZFGHEILAGDURRZUQJVAZMUSVB
      VCVDWSXBXAGDUHRZQZXIWSXACYACYASWSNVEVFWSWOEXSVJQZOWPWTDVJQZOZYBXISWNWOWPW
      RVGWSEFXRIGDVHRRQZYCMWSXKWRWPPYFYCOXOWSWPWRXQUMAYCIDXRFGHJXSAVJAXSJVKVALX
      RTVIVBVLWQWPWRXPUNWQWRYEWPWNWRYEVMWOWRWPYEWPYEVMZIYDGWCRZHIYHOGYDIVNZYGIY
      DGVOYIWPYEGYDFIVPVQVRLVSVTWAWBZDWTFEGWDWEWFWSXIWTXEDURRZUQQZXFQZXHRWTDUQQ
      ZXHRZWTWSXGYMWTXHWSXCYLXFWSXKXLXCYLSXOXQDXRFGHEILXTMWGVBVDWHWSYMYNWTXHWSW
      OXEUAOZPZYMYNSWQYQWRWNWOYQWPXMYPWOWNYPWOGXDWIUPUMUTUNYKXFDYNYLXEXFTYKTYLT
      YNTZWLVRWHWSXJYEYOWTSWQXJWRWOWNXJWPXNWJUNYJYDDXHYNWTYDTXHTYRWKVBWMWM $.
  $}

  ${
    cramerimp.a $e |- A = ( N Mat R ) $.
    cramerimp.b $e |- B = ( Base ` A ) $.
    cramerimp.v $e |- V = ( ( Base ` R ) ^m N ) $.
    cramerimp.e $e |- E = ( ( ( 1r ` A ) ( N matRepV R ) Z ) ` I ) $.
    cramerimp.h $e |- H = ( ( X ( N matRepV R ) Y ) ` I ) $.
    cramerimp.x $e |- .x. = ( R maVecMul <. N , N >. ) $.

    ${
      $d A l $.  $d B i j l $.  $d E i j l $.  $d I i j l $.  $d N i j l $.
      $d R i j l $.  $d V i j l $.  $d X i j l $.  $d Y i j l $.  $d Z i j l $.
      $d .x. i j l $.
      cramerimp.m $e |- .X. = ( R maMul <. N , N , N >. ) $.
      $( Lemma 2 for ~ cramerimp :  The matrix of a system of linear equations
         multiplied with the identity matrix with the ith column replaced by
         the solution vector of the system of linear equations equals the
         matrix of the system of linear equations with the ith column replaced
         by the right-hand side vector of the system of linear equations.
         (Contributed by AV, 19-Feb-2019.)  (Revised by AV, 1-Mar-2019.) $)
      cramerimplem2 $p |- ( ( ( R e. CRing /\ I e. N ) /\ ( X e. B /\ Y e. V )
                              /\ ( X .x. Z ) = Y ) -> ( X .X. E ) = H ) $=
        ( vi vj vl ccrg wcel wa co wceq w3a cv cmulr cfv cmpt cgsu cif cbs eqid
        cmpt2 3ad2ant1 cfn cvv matrcl simpld adantr 3ad2ant2 cxp cmap wi anim2i
        simpl ancomd matbas2 syl syl6reqr eleq2d biimpd ex com12 pm2.43a impcom
        3adant3 crg crngring anim12i c0 wne ne0i adantl 3jca eleq2i mavmulsolcl
        biimpi simp3 syl21anc simpr cmatrepV ma1repvcl syl5eqel syl12anc eqcomd
        imp ad2ant2r eleqtrrd mamuval simp2 mulmarep1gsum2 syl113anc mpt2eq3dva
        cur c0g marepvval syl3anc syl5req 3eqtrd ) CUDUEZHIUEZUFZKBUEZLJUEZUFZK
        MDUGLUHZUIZKFEUGUAUBIICUCIUAUJZUCUJZKUGYDUBUJZFUGCUKULZUGUMUNUGZURUAUBI
        IYEHUHYCLULYCYEKUGUOZURZGYBCUPULZICYFUAUCUBEIIUDKFTYJUQZYFUQXQXTXOYAXOX
        PVJZUSXTXQIUTUEZYAXRYMXSXRYMCVAUEABCIKNOVBVCZVDZVEZYPYPXQXTKYJIIVFVGUGZ
        UEZYAXTXQYRXRXQYRVHXSXQXRYRXQXRXRYRVHZXOXRYSVHXPXOXRYSXOXRUFZXRYRYTBYQK
        YTYQAUPULZBYTYMXOUFYQUUAUHYTXOYMXRYMXOYNVIVKACYJIUDNYKVLVMOVNZVOVPVQVDV
        RVSVDVTWAYBFBYQYBCWBUEZYMUFZMJUEZXPFBUEXQXTUUDYAXQUUCXTYMXOUUCXPCWCVDZY
        OWDWAYBYMYMIWEWFZUIZXOLYJIVGUGZUEZUFZYAUUEYBYMYMUUGYPYPXQXTUUGYAXPUUGXO
        IHWGWHUSWIXQXTUUKYAXQXOXTUUJYLXSUUJXRXSUUJJUUILPWJWLWHWDWAXQXTYAWMZUUHU
        UKUFYAUUEKYJYQJCDUUIIIUDMLYKYQUQPSUUIUQWKXAWNZXQXTXPYAXOXPWOUSZUUDUUEXP
        UFUFFHAXIULZMICWPUGZUGULBQABMCUUOHIJNOPUUOUQZWQWRWSXQXTYQBUHZYAXOXRUURX
        PXSYTBYQUUBWTXBWAXCXDYBUAUBIIYGYHYBYCIUEZYEIUEZUIUUCXRUUEXPUIZUUSUUTYAY
        GYHUHYBUUSUUCUUTXQXTUUCYAUUFUSUSYBUUSUVAUUTYBXRUUEXPXTXQXRYAXRXSVJVEZUU
        MUUNWIUSYBUUSUUTXEYBUUSUUTWMYBUUSYAUUTUULUSABMCDUUOFYCYEHIJKCXJULZLUCNO
        PUUQUVCUQQSXFXGXHYBGHKLUUPUGULZYIRYBXRXSXPUVDYIUHUVBXTXQXSYAXRXSWOVEUUN
        ABLUUPCUAUBHKIJNOUUPUQPXKXLXMXN $.
    $}

    cramerimp.d $e |- D = ( N maDet R ) $.
    ${
      cramerimp.t $e |- .(x) = ( .r ` R ) $.
      $( Lemma 3 for ~ cramerimp :  The determinant of the matrix of a system
         of linear equations multiplied with the determinant of the identity
         matrix with the ith column replaced by the solution vector of the
         system of linear equations equals the determinant of the matrix of the
         system of linear equations with the ith column replaced by the
         right-hand side vector of the system of linear equations.
         (Contributed by AV, 19-Feb-2019.)  (Revised by AV, 1-Mar-2019.) $)
      cramerimplem3 $p |- ( ( ( R e. CRing /\ I e. N )
                              /\ ( X e. B /\ Y e. V ) /\ ( X .x. Z ) = Y )
                            -> ( ( D ` X ) .(x) ( D ` E ) ) = ( D ` H ) ) $=
        ( ccrg wcel wa co wceq w3a cotp cmmul cfv cmulr cfn simpl matrcl simpld
        cvv adantr anim12ci 3adant3 eqid matmulr syl oveqd fveq2d cramerimplem2
        simp1l simp2l cur cmatrepV crg crngring anim12i c0 ne0i slesolvec sylan
        wne 3impia simp1r ma1repvcl syl12anc syl5eqel mdetmul syl3anc 3eqtr3rd
        wi ) DUCUDZIJUDZUEZLBUDZMKUDZUEZLNEUFMUGZUHZLGDJJJUIUJUFZUFZCUKLGAULUKZ
        UFZCUKZHCUKLCUKGCUKFUFZWOWQWSCWOWPWRLGWOJUMUDZWHUEZWPWRUGWJWMXCWNWJWHWM
        XBWHWIUNWKXBWLWKXBDUQUDABDJLOPUOUPURZUSUTADWPJUCOWPVAZVBVCVDVEWOWQHCABD
        EWPGHIJKLMNOPQRSTXEVFVEWOWHWKGBUDWTXAUGWHWIWMWNVGWJWKWLWNVHWOGIAVIUKZNJ
        DVJUFUFUKZBRWODVKUDZXBUEZNKUDZWIXGBUDWJWMXIWNWJXHWMXBWHXHWIDVLZURXDVMUT
        WJWMWNXJWJJVNVRZXHUEWMWNXJWGWHXHWIXLXKJIVOUSABDEJKLMNOPQTVPVQVSWHWIWMWN
        VTABNDXFIJKOPQXFVAWAWBWCABCDWRFLGJOPUAUBWRVAWDWEWF $.
    $}

    cramerimp.q $e |- ./ = ( /r ` R ) $.
    $( One direction of Cramer's rule (according to Wikipedia "Cramer's rule",
       21-Feb-2019, ~ https://en.wikipedia.org/wiki/Cramer%27s_rule :
       "[Cramer's rule] ... expresses the solution [of a system of linear
       equations] in terms of the determinants of the (square) coefficient
       matrix and of matrices obtained from it by replacing one column by the
       column vector of right-hand sides of the equations."):  The ith
       component of the solution vector of a system of linear equations equals
       the determinant of the matrix of the system of linear equations with the
       ith column replaced by the righthand side vector of the system of linear
       equations divided by the determinant of the matrix of the system of
       linear equations.  (Contributed by AV, 19-Feb-2019.)  (Revised by AV,
       1-Mar-2019.) $)
    cramerimp $p |- ( ( ( R e. CRing /\ I e. N ) /\ ( X e. B /\ Y e. V )
                        /\ ( ( X .x. Z ) = Y /\ ( D ` X ) e. ( Unit ` R ) ) )
                          -> ( Z ` I ) = ( ( D ` H ) ./ ( D ` X ) ) ) $=
      ( ccrg wcel wa co wceq cfv cui w3a cmulr crg cbs crngring adantr 3ad2ant1
      wf eqid mdetf cur cmatrepV cfn cvv matrcl simpld anim12i 3adant3 wne ne0i
      c0 anim12ci anim1i simpl 3ad2ant3 slesolvec sylc simpr ma1repvcl syl12anc
      syl5eqel ffvelrnd dvrcan3 syl3anc unitcl adantl oveq1d 3jca cramerimplem1
      crngcom syl2anc 3eqtr3rd cramerimplem3 3adant3r eqtrd ) EUCUDZIJUDZUEZLBU
      DZMKUDZUEZLNFUFMUGZLCUHZEUIUHZUDZUEZUJZINUHZXBGCUHZEUKUHZUFZXBDUFZHCUHZXB
      DUFXFXHXBXIUFZXBDUFZXHXKXGXFEULUDZXHEUMUHZUDZXDXNXHUGWQWTXOXEWOXOWPEUNZUO
      ZUPXFBXPGCWQWTBXPCUQZXEWOXTWPABCEXPJUAOPXPURZUSUOUPXFGIAUTUHZNJEVAUFUFUHZ
      BRXFXOJVBUDZUEZNKUDZWPYCBUDWQWTYEXEWQXOWTYDXSWRYDWSWRYDEVCUDABEJLOPVDVEUO
      ZVFVGXFJVJVHZXOUEZWTUEZXAYFWQWTYJXEWQYIWTWOXOWPYHXRJIVIVKVLVGXEWQXAWTXAXD
      VMVNABEFJKLMNOPQTVOVPZWQWTWPXEWOWPVQZUPABNEYBIJKOPQYBURVRVSVTWAZXEWQXDWTX
      AXDVQVNXPDEXIXCXHXBYAXCURZUBXIURZWBWCXFXMXJXBDXFWOXQXBXPUDZXMXJUGWQWTWOXE
      WOWPVMZUPYMXEWQYPWTXDYPXAXPEXCXBYAYNWDWEVNXPEXIXHXBYAYOWIWCWFXFYDWOWPUJZY
      FXHXGUGWQWTYRXEWQWTUEYDWOWPWTYDWQYGWEWQWOWTYQUOWQWPWTYLUOWGVGYKABCEGIJKNO
      PQRUAWHWJWKXFXJXLXBDWQWTXAXJXLUGXDABCEFXIGHIJKLMNOPQRSTUAYOWLWMWFWN $.
  $}

  ${
    $d A a $.  $d B a i $.  $d D a i $.  $d N a i $.  $d R a i $.  $d V a i $.
    $d X a i $.  $d Y a i $.  $d Z a i $.  $d .x. a i $.  $d ./ a i $.
    cramer.a $e |- A = ( N Mat R ) $.
    cramer.b $e |- B = ( Base ` A ) $.
    cramer.v $e |- V = ( ( Base ` R ) ^m N ) $.
    cramer.d $e |- D = ( N maDet R ) $.
    cramer.x $e |- .x. = ( R maVecMul <. N , N >. ) $.
    cramer.q $e |- ./ = ( /r ` R ) $.
    $( Lemma 1 for ~ cramer .  (Contributed by AV, 21-Feb-2019.)  (Revised by
       AV, 1-Mar-2019.) $)
    cramerlem1 $p |- ( ( R e. CRing /\ ( X e. B /\ Y e. V )
                /\ ( ( D ` X ) e. ( Unit ` R ) /\ Z e. V /\ ( X .x. Z ) = Y ) )
                       -> Z = ( i e. N
            |-> ( ( D ` ( ( X ( N matRepV R ) Y ) ` i ) ) ./ ( D ` X ) ) ) ) $=
      ( wcel cfv va ccrg wa cui co wceq w3a cv cmatrepV cmpt wral anim1i simpl2
      simp1 pm3.22 3adant2 3ad2ant3 adantr cur eqid cramerimp syl3anc ralrimiva
      cvv wfn cbs cmap elmapfn eleq2s 3ad2ant2 weq fveq2 fveq2d oveq1d fnmptfvd
      ovexd mpbird ) EUBSZJBSKISUCZJCTZEUDTSZLISZJLFUEKUFZUGZUGZLGHGUHZJKHEUIUE
      ZUEZTZCTZVTDUEZUJUFUAUHZLTWLWHTZCTZVTDUEZUFZUAHUKWEWPUAHWEWLHSZUCZVRWQUCV
      SWCWAUCZWPWEVRWQVRVSWDUNULVRVSWDWQUMWEWSWQWDVRWSVSWAWCWSWBWAWCUOUPUQURABC
      DEFWLAUSTLWGUETZWMWLHIJKLMNOWTUTWMUTQPRVAVBVCWEHWKWOVDUALVDGWDVRLHVEZVSWB
      WAXAWCXALEVFTZHVGUEILXBHVHOVIVJUQUAGVKZWNWJVTDXCWMWICWLWFWHVLVMVNWRWNVTDV
      PWEWFHSUCWJVTDVPVOVQ $.

    $d B z $.  $d D z $.  $d N i z $.  $d R z $.  $d V z $.  $d X z $.
    $d Y z $.
    $( Lemma 2 for ~ cramer .  (Contributed by AV, 21-Feb-2019.)  (Revised by
       AV, 1-Mar-2019.) $)
    cramerlem2 $p |- ( ( R e. CRing /\ ( X e. B /\ Y e. V )
               /\ ( D ` X ) e. ( Unit ` R ) )
                       -> A. z e. V ( ( X .x. z ) = Y -> z = ( i e. N
          |-> ( ( D ` ( ( X ( N matRepV R ) Y ) ` i ) ) ./ ( D ` X ) ) ) ) ) $=
      ( wcel cfv ccrg wa cui w3a cv co wceq cmatrepV wi simpll1 simpll2 simpll3
      cmpt simplr simpr cramerlem1 syl113anc ex ralrimiva ) FUASZKCSLJSUBZKDTZF
      UCTSZUDZKAUEZGUFLUGZVEHIHUEKLIFUHUFUFTDTVBEUFUMUGZUIAJVDVEJSZUBZVFVGVIVFU
      BUTVAVCVHVFVGUTVAVCVHVFUJUTVAVCVHVFUKUTVAVCVHVFULVDVHVFUNVIVFUOBCDEFGHIJK
      LVEMNOPQRUPUQURUS $.

    $d A v z $.  $d B v $.  $d D v $.  $d N i v z $.  $d R v $.  $d V v $.
    $d X v $.  $d Y v $.  $d .x. v z $.  $d ./ v z $.
    $( Lemma 3 for ~ cramer .  (Contributed by AV, 21-Feb-2019.)  (Revised by
       AV, 1-Mar-2019.) $)
    cramerlem3 $p |- ( ( ( N =/= (/) /\ R e. CRing ) /\ ( X e. B /\ Y e. V )
                         /\ ( D ` X ) e. ( Unit ` R ) ) -> ( Z = ( i e. N
                 |-> ( ( D ` ( ( X ( N matRepV R ) Y ) ` i ) ) ./ ( D ` X ) ) )
                              -> ( X .x. Z ) = Y ) ) $=
      ( co wceq vv vz c0 wne ccrg wcel wa cfv cui w3a cv wrex cmatrepV slesolex
      cmpt wi wral cramerlem2 3adant1l weq oveq2 eqeq1d rexraleqim adantl simpl
      eqtrd ex a1d syl expcom com23 mpcom mpd ) HUCUDZEUEUFZUGJBUFKIUFUGZJCUHZE
      UIUHUFZUJZJUAUKZFSZKTZUAIULZLGHGUKJKHEUMSSUHCUHVQDSUOZTZJLFSZKTZUPZUAABCE
      FHIJKMNOQPUNJUBUKZFSZKTZWIWDTUPUBIUQZVSWCWHUPVOVPVRWLVNUBABCDEFGHIJKMNOPQ
      RURUSWLWCVSWHWCWLVSWHUPZWCWLUGJWDFSZKTZWMWBWKWOUBUAIWDUBUAUTWJWAKWIVTJFVA
      VBVTWDTWAWNKVTWDJFVAVBVCWOWHVSWOWEWGWOWEUGWFWNKWEWFWNTWOLWDJFVAVDWOWEVEVF
      VGVHVIVJVKVLVM $.

    $( Special case of Cramer's rule for 0-dimensional matrices/vectors.
       (Contributed by AV, 28-Feb-2019.) $)
    cramer0 $p |- ( ( ( N = (/) /\ R e. CRing ) /\ ( X e. B /\ Y e. V )
                      /\ ( D ` X ) e. ( Unit ` R ) ) -> ( Z = ( i e. N
                 |-> ( ( D ` ( ( X ( N matRepV R ) Y ) ` i ) ) ./ ( D ` X ) ) )
                              -> ( X .x. Z ) = Y ) ) $=
      ( c0 wceq ccrg wcel wa cfv cui cv cmatrepV co cmpt wi csn cmat cbs fveq2i
      eqtri oveq1 fveq2d syl5eq adantr eleq2d mat0dimbas0 adantl bitrd c1o cmap
      wb a1i oveq2 fvex map0e mp1i 3eqtrd el1o syl6bb anbi12d elsni mpteq1 mpt0
      cvv syl6eq eqeq2d ad2antrr simplrl oveq12d mavmul0 eqcomd ad2antlr sylbid
      simpr ex a1d sylani 3imp ) HSTZEUAUBZUCZJBUBZKIUBZUCZJCUDZEUEUDUBZLGHGUFJ
      KHEUGUHUHUDCUDWTDUHZUIZTZJLFUHZKTZUJZWPWSJSUKZUBZKSTZUCXAXGUJZWPWQXIWRXJW
      PWQJSEULUHZUMUDZUBZXIWPBXMJWNBXMTWOWNBHEULUHZUMUDZXMBAUMUDXPNAXOUMMUNUOWN
      XOXLUMHSEULUPUQURUSUTWOXNXIVFWNWOXMXHJEUAVAUTVBVCWPWRKVDUBXJWPIVDKWPIEUMU
      DZHVEUHZXQSVEUHZVDIXRTWPOVGWNXRXSTWOHSXQVEVHUSXQVSUBXSVDTWPEUMVIXQVSVJVKV
      LUTKVMVNVOXIWPJSTZXJXKJSVPWPXTXJUCZXKWPYAUCZXGXAYBXDLSTZXFWNXDYCVFWOYAWNX
      CSLWNXCGSXBUISGHSXBVQGXBVRVTWAWBYBYCXFYBYCUCZXESSFUHZSKYDJSLSFWPXTXJYCWCY
      BYCWIWDWPYESTYAYCEFHUAQWEWBYASKTWPYCYAKSXTXJWIWFWGVLWJWHWKWJWLWHWM $.

    $( Cramer's rule.  According to Wikipedia "Cramer's rule", 21-Feb-2019,
       ~ https://en.wikipedia.org/wiki/Cramer%27s_rule :  "[Cramer's rule] ...
       expresses the [[unique] solution [of a system of linear equations] in
       terms of the determinants of the (square) coefficient matrix and of
       matrices obtained from it by replacing one column by the column vector
       of right-hand sides of the equations."  If it is assumed that a (unique)
       solution exists, it can be obtained by Cramer's rule (see also
       ~ cramerimp ).  On the other hand, if a vector can be constructed by
       Cramer's rule, it is a solution of the system of linear equations, so at
       least one solution exists.  The uniqueness is ensured by considering
       only systems of linear equations whose matrix has a unit (of the
       underlying ring) as determinant, see ~ matunit or ~ slesolinv .  For
       fields as underlying rings, this requirement is equivalent with the
       determinant not being 0.  Theorem 4.4 in [Lang] p. 513.  This is
       Metamath 100 proof #97.  (Contributed by Alexander van der Vekens,
       21-Feb-2019.)  (Revised by Alexander van der Vekens, 1-Mar-2019.) $)
    cramer $p |- ( ( ( R e. CRing /\ N =/= (/) ) /\ ( X e. B /\ Y e. V )
                     /\ ( D ` X ) e. ( Unit ` R ) ) -> ( Z = ( i e. N
                 |-> ( ( D ` ( ( X ( N matRepV R ) Y ) ` i ) ) ./ ( D ` X ) ) )
                                                     <-> ( X .x. Z ) = Y ) ) $=
      ( wcel wa ccrg c0 wne cfv cui w3a cv cmatrepV cmpt wceq pm3.22 cramerlem3
      co wi syl3an1 simpl1l simpl2 simpl3 crg crngring anim1i 3adant3 slesolvec
      ancomd imp sylan simpr cramerlem1 syl113anc ex impbid ) EUASZHUBUCZTZJBSK
      ISTZJCUDZEUEUDSZUFZLGHGUGJKHEUHUMUMUDCUDVPDUMUIUJZJLFUMKUJZVNVMVLTVOVQVSV
      TUNVLVMUKABCDEFGHIJKLMNOPQRULUOVRVTVSVRVTTVLVOVQLISZVTVSVLVMVOVQVTUPVNVOV
      QVTUQVNVOVQVTURVRVMEUSSZTZVOTZVTWAVNVOWDVQVNWCVOVNWBVMVLWBVMEUTVAVDVAVBWD
      VTWAABEFHIJKLMNOQVCVEVFVRVTVGABCDEFGHIJKLMNOPQRVHVIVJVK $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Polynomial matrices
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  A _polynomial matrix_ or _matrix of polynomials_ is a matrix whose elements
  are univariate (or multivariate) polynomials. See Wikipedia "Polynomial
  matrix" ~ https://en.wikipedia.org/wiki/Polynomial_matrix (18-Nov-2019).  In
  this section, only square matrices whose elements are univariate polynomials
  are considered.  Usually, the ring of such matrices, the ring of n x n
  matrices over the polynomial ring over a ring ` R ` , is denoted by
  M(n, R[[t]).  The elements of this ring are called "polynomial matrices (over
  the ring ` R ` )" in the following.  In Metamath notation, this ring is
  defined by ` ( N Mat ( Poly1 `` R ) ) ` , usually represented by the class
  variable ` C ` (or ` Y ` , if ` C ` is already occupied): ` C = ( N Mat P ) `
  with ` P = ( Poly1 `` R ) ` .

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    pmatring.p $e |- P = ( Poly1 ` R ) $.
    pmatring.c $e |- C = ( N Mat P ) $.
    $( The set of polynomial matrices over a ring is a ring.  (Contributed by
       AV, 6-Nov-2019.) $)
    pmatring $p |- ( ( N e. Fin /\ R e. Ring ) -> C e. Ring ) $=
      ( crg wcel cfn ply1ring matring sylan2 ) CGHDIHBGHAGHBCEJABDFKL $.

    $( The set of polynomial matrices over a ring is a left module.
       (Contributed by AV, 6-Nov-2019.) $)
    pmatlmod $p |- ( ( N e. Fin /\ R e. Ring ) -> C e. LMod ) $=
      ( crg wcel cfn clmod ply1ring matlmod sylan2 ) CGHDIHBGHAJHBCEKABDFLM $.

    $d N i j $.  $d P i j $.
    pmat0op.z $e |- .0. = ( 0g ` P ) $.
    $( The zero polynomial matrix over a ring represented as operation.
       (Contributed by AV, 16-Nov-2019.) $)
    pmat0op $p |- ( ( N e. Fin /\ R e. Ring )
                      -> ( 0g ` C ) = ( i e. N , j e. N |-> .0. ) ) $=
      ( crg wcel cfn c0g cfv cmpt2 wceq ply1ring mat0op sylan2 ) CKLFMLBKLANODE
      FFGPQBCHRABDEFGIJST $.

    $d C i j $.  $d .0. i j $.  $d .1. i j $.
    pmat1op.o $e |- .1. = ( 1r ` P ) $.
    $( The identity polynomial matrix over a ring represented as operation.
       (Contributed by AV, 16-Nov-2019.) $)
    pmat1op $p |- ( ( N e. Fin /\ R e. Ring ) -> ( 1r ` C ) =
        ( i e. N , j e. N |-> if ( i = j , .1. , .0. ) ) ) $=
      ( crg wcel cfn cur cfv weq cif cmpt2 wceq ply1ring mat1 sylan2 ) CMNGONBM
      NAPQEFGGEFRDHSTUABCIUBABDEFGHJLKUCUD $.

    pmat1ovd.n $e |- ( ph -> N e. Fin ) $.
    pmat1ovd.r $e |- ( ph -> R e. Ring ) $.
    pmat1ovd.i $e |- ( ph -> I e. N ) $.
    pmat1ovd.j $e |- ( ph -> J e. N ) $.
    pmat1ovd.u $e |- U = ( 1r ` C ) $.
    $( Entries of the identity polynomial matrix over a ring, deduction form.
       (Contributed by AV, 16-Nov-2019.) $)
    pmat1ovd $p |- ( ph -> ( I U J ) = if ( I = J , .1. , .0. ) ) $=
      ( crg wcel ply1ring syl mat1ov ) ABCEFGHIJLNMOADTUACTUAPCDKUBUCQRSUD $.
  $}

  ${
    $d N i j $.  $d P i j $.  $d R i j $.
    pmat0opsc.p $e |- P = ( Poly1 ` R ) $.
    pmat0opsc.c $e |- C = ( N Mat P ) $.
    pmat0opsc.a $e |- A = ( algSc ` P ) $.
    pmat0opsc.z $e |- .0. = ( 0g ` R ) $.
    $( The zero polynomial matrix over a ring represented as operation with
       "lifted scalars" (i.e. elements of the ring underlying the polynomial
       ring embedded into the polynomial ring by the scalar injection/algebraic
       scalars function ` algSc ` ).  (Contributed by AV, 16-Nov-2019.) $)
    pmat0opsc $p |- ( ( N e. Fin /\ R e. Ring )
                      -> ( 0g ` C ) = ( i e. N , j e. N |-> ( A ` .0. ) ) ) $=
      ( cfn wcel crg wa c0g cfv cmpt2 eqid pmat0op wceq eqcomd adantl mpt2eq3dv
      ply1scl0 eqtrd ) GMNZDONZPZBQREFGGCQRZSEFGGHARZSBCDEFGUKIJUKTZUAUJEFGGUKU
      LUIUKULUBUHUIULUKACDUKHIKLUMUFUCUDUEUG $.

    $d C i j $.
    pmat1opsc.o $e |- .1. = ( 1r ` R ) $.
    $( The identity polynomial matrix over a ring represented as operation with
       "lifted scalars".  (Contributed by AV, 16-Nov-2019.) $)
    pmat1opsc $p |- ( ( N e. Fin /\ R e. Ring ) -> ( 1r ` C ) =
          ( i e. N , j e. N |-> if ( i = j , ( A ` .1. ) , ( A ` .0. ) ) ) ) $=
      ( wcel cur cfv cif cmpt2 eqid cfn crg wa weq pmat1op wceq ply1scl1 eqcomd
      c0g ply1scl0 ifeq12d adantl mpt2eq3dv eqtrd ) HUAOZDUBOZUCZBPQFGHHFGUDZCP
      QZCUIQZRZSFGHHUREAQZIAQZRZSBCDUSFGHUTJKUTTZUSTZUEUQFGHHVAVDUPVAVDUFUOUPUR
      USVBUTVCUPVBUSACDEUSJLNVFUGUHUPVCUTACDUTIJLMVEUJUHUKULUMUN $.

    pmat1ovscd.n $e |- ( ph -> N e. Fin ) $.
    pmat1ovscd.r $e |- ( ph -> R e. Ring ) $.
    pmat1ovscd.i $e |- ( ph -> I e. N ) $.
    pmat1ovscd.j $e |- ( ph -> J e. N ) $.
    pmat1ovscd.u $e |- U = ( 1r ` C ) $.
    $( Entries of the identity polynomial matrix over a ring represented with
       "lifted scalars", deduction form.  (Contributed by AV, 16-Nov-2019.) $)
    pmat1ovscd $p |- ( ph -> ( I U J )
                             = if ( I = J , ( A ` .1. ) , ( A ` .0. ) ) ) $=
      ( co wceq cur cfv c0g cif eqid pmat1ovd crg wcel ply1scl1 eqcomd ply1scl0
      syl ifeq12d eqtrd ) AHIFUBHIUCZDUDUEZDUFUEZUGURGBUEZKBUEZUGACDEFUSHIJUTLM
      UTUHZUSUHZQRSTUAUIAURUSVAUTVBAVAUSAEUJUKZVAUSUCRBDEGUSLNPVDULUOUMAVBUTAVE
      VBUTUCRBDEUTKLNOVCUNUOUMUPUQ $.
  $}

  ${
    $d B i j s v x $.  $d M i j s u w x z $.  $d M i j s v w x z $.
    $d N i j s u w x z $.  $d N i j s v w x z $.  $d R i j s v w x z $.
    $d .0. i j s v w x z $.
    pmatcoe1fsupp.p $e |- P = ( Poly1 ` R ) $.
    pmatcoe1fsupp.c $e |- C = ( N Mat P ) $.
    pmatcoe1fsupp.b $e |- B = ( Base ` C ) $.
    pmatcoe1fsupp.0 $e |- .0. = ( 0g ` R ) $.
    $( For a polynomial matrix there is an upper bound for the coefficients of
       all the polynomials being not 0.  (Contributed by AV, 3-Oct-2019.)
       (Proof shortened by AV, 28-Nov-2019.) $)
    pmatcoe1fsupp $p |- ( ( N e. Fin /\ R e. Ring /\ M e. B )
            -> E. s e. NN0 A. x e. NN0 ( s < x
               -> A. i e. N A. j e. N ( ( coe1 ` ( i M j ) ) ` x ) = .0. ) ) $=
      ( wcel cv cfv cn0 wa vz vw vu vv cfn crg w3a clt wbr wceq wi wral cxp csn
      cco1 ciun cfsupp cbs cmap co crab cin wrex wss cvv wo ssrab2 a1i olcd syl
      inss xpfi anidms snfi ralrimiva jca 3ad2ant1 iunfi infi 3syl fvex eqeltri
      c0g elin breq1 elrab simprbi simplbiim rgen fsuppmapnn0fiub0 imp syl31anc
      opelxpi df-ov fveq2i snid fveq2 fveq2d sneqd eliuni syl2anc adantl simprl
      cop eqid simprr eleq2i biimpi 3ad2ant3 ad3antrrr syl6eleqr matecld breq2d
      coe1fsupp wb rabbidv eleq2d mpbird elind simplr fveq1 eqeq1d imbi2d breq2
      imbi12d rspc2v ex com23 impancom ralrimdvv reximdva mpd ) IUEPZEUFPZHBPZU
      GZKQZUAQZUHUIZYRUBQZRZJUJZUKZUASULUBUCIIUMZUCQZHRZUORZUNZUPZUDQZJUQUIZUDE
      URRZSUSUTZVAZVBZULZKSVCZYQAQZUHUIZUURFQZGQZHUTZUORZRZJUJZGIULFIULUKZASULZ
      KSVCYPUUOUUMVDZUUOUEPZJVEPZYTJUQUIZUBUUOULZUUQYPUUIUUMVDZUUNUUMVDZVFUVHYP
      UVNUVMUVNYPUUKUDUUMVGVHVIUUIUUNUUMVKVJYPUUDUEPZUUHUEPZUCUUDULZTZUUIUEPUVI
      YMYNUVRYOYMUVOUVQYMUVOIIVLVMYMUVPUCUUDUVPYMUUEUUDPTUUGVNVHVOVPVQUCUUDUUHV
      RUUIUUNVSVTUVJYPJEWCRZVEOEWCWAWBVHUVLYPUVKUBUUOYTUUOPYTUUIPYTUUNPZUVKYTUU
      IUUNWDUVTYTUUMPUVKUUKUVKUDYTUUMUUJYTJUQWEWFWGWHWIVHUVHUVIUVJUGUVLUUQUAUUL
      UBKUUOVEJWJWKWLYPUUPUVGKSYPYQSPZTZUUPUVGUWBUUPTZUVFASUWCUURSPZTZUUSUVEFGI
      IUWEUUTIPZUVAIPZTZUUSUVEUWCUWDUWHUUSUVEUKZUKZUWBUWDUUPUWJUWBUWDTZUWHUUPUW
      IUWKUWHUUPUWIUKZUWKUWHTZUVCUUOPUWDUWLUWMUUIUUNUVCUWHUVCUUIPZUWKUWHUUTUVAX
      DZUUDPUVCUWOHRZUORZUNZPZUWNUUTUVAIIWMUWSUWHUVCUWQUWRUVBUWPUOUUTUVAHWNWOUW
      QUWPUOWAWPWBVHUCUWOUUHUWRUUDUVCUUEUWOUJZUUGUWQUWTUUFUWPUOUUEUWOHWQWRWSWTX
      AXBUWMUVCUUNPZUVCUUJUVSUQUIZUDUUMVAZPZUWMUVBDURRZPUXDUWMCBDUUTUVAUXEHIMUX
      EXEZNUWKUWFUWGXCUWKUWFUWGXFUWMHCURRZBYPHUXGPZUWAUWDUWHYOYMUXHYNYOUXHBUXGH
      NXGXHXIXJNXKXLUVCUXEDEUDUVBUULUVSUVCXEUXFLUVSXEUULXEXNVJYPUXAUXDXOUWAUWDU
      WHYPUUNUXCUVCYPUUKUXBUDUUMYPJUVSUUJUQJUVSUJYPOVHXMXPXQXJXRXSUWBUWDUWHXTUU
      CUWIYSYRUVCRZJUJZUKUBUAUVCUURUUOSYTUVCUJZUUBUXJYSUXKUUAUXIJYRYTUVCYAYBYCY
      RUURUJZYSUUSUXJUVEYRUURYQUHYDUXLUXIUVDJYRUURUVCWQYBYEYFXAYGYHYIWKYHYJVOYG
      YKYL $.
  $}

  ${
    1pmatscmul.p $e |- P = ( Poly1 ` R ) $.
    1pmatscmul.c $e |- C = ( N Mat P ) $.
    1pmatscmul.b $e |- B = ( Base ` C ) $.
    1pmatscmul.e $e |- E = ( Base ` P ) $.
    1pmatscmul.m $e |- .* = ( .s ` C ) $.
    1pmatscmul.1 $e |- .1. = ( 1r ` C ) $.
    $( The scalar product of the identity polynomial matrix with a polynomial
       is a polynomial matrix.  (Contributed by AV, 2-Nov-2019.)  (Revised by
       AV, 4-Dec-2019.) $)
    1pmatscmul $p |- ( ( N e. Fin /\ R e. Ring /\ Q e. E )
                       -> ( Q .* .1. ) e. B ) $=
      ( cfn wcel crg w3a 3adant3 wa ply1ring anim2i simp3 pmatring ringidcl syl
      co matvscl syl12anc ) IPQZERQZDGQZSZUKCRQZUAZUMFAQZDFHUHAQUKULUPUMULUOUKC
      EJUBUCTUKULUMUDUNBRQZUQUKULURUMBCEIJKUETABFLOUFUGBADCHGIFMKLNUIUJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Constant polynomial matrices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
A _constant polynomial matrix_ is a polynomial matrix whose elements are
constant polynomials, i.e. polynomials with no indeterminates. Constant
polynomials are obtained by "lifting" a "scalar" (i.e. an element of the
underlying ring) into the polynomial ring/algebra by a "scalar injection", i.e.
applying the "algebra scalar injection function" ` algSc ` (see ~ df-ascl ) to
a scalar ` A e. R `: ` ( ( algSc `` P ) `` A ) ` . In an analogous way,
constant polynomial matrices (over the ring ` R `) are obtained by "lifting"
matrices over the ring ` R ` by the function ` matToPolyMat ` (see
~ df-mat2pmat ), called "matrix transformation" in the following.

In this section it is shown that the set ` S = ( N ConstPolyMat R ) ` of
constant polynomial ` N ` x ` N ` matrices over the ring ` R ` is a subring of
the ring of polynomial ` N ` x ` N ` matrices over the ring ` R `
( ~ cpmatsrgpmat ) and that ` T = ( N matToPolyMat R ) ` is a ring isomorphism
between the ring of matrices over a ring ` R ` and the ring of constant
polynomial matrices over the ring ` R ` (see ~ m2cpmrngiso ). By this, it is
shown that the ring of matrices over a commutative ring is isomorphic to the
ring of scalar matrices over the same ring, see ~ matcpmric .  Finally
` I = ( N cPolyMatToMat R ) ` , the transformation of a constant polynomial
matrix into a matrix, is the inverse function of the matrix transformation
` T = ( N matToPolyMat R ) ` , see ~ m2cpminv .
$)

  $c ConstPolyMat $.
  $c matToPolyMat $.
  $c cPolyMatToMat $.

  $( Extend class notation with the set of all constant polynomial matrices. $)
  ccpmat $a class ConstPolyMat $.

  $( Extend class notation with the transformation of a matrix into a matrix of
     polynomials. $)
  cmat2pmat $a class matToPolyMat $.

  $( Extend class notation with the transformation of a constant polynomial
     matrix into a matrix. $)
  ccpmat2mat $a class cPolyMatToMat $.

  ${
    $d i j k m n r $.
    $( The set of all constant polynomial matrices, which are all matrices
       whose entries are constant polynomials (or "scalar polynomials", see
       ~ ply1sclf ).  (Contributed by AV, 15-Nov-2019.) $)
    df-cpmat $a |- ConstPolyMat = ( n e. Fin , r e. _V
                         |-> { m e. ( Base ` ( n Mat ( Poly1 ` r ) ) ) |
                               A. i e. n A. j e. n A. k e. NN
                               ( ( coe1 ` ( i m j ) ) ` k ) = ( 0g ` r ) } ) $.
  $}

  ${
    $d n m r x y $.
    $( Transformation of a matrix (over a ring) into a matrix over the
       corresponding polynomial ring.  (Contributed by AV, 31-Jul-2019.) $)
    df-mat2pmat $a |- matToPolyMat = ( n e. Fin , r e. _V
             |-> ( m e. ( Base ` ( n Mat r ) )
                   |-> ( x e. n , y e. n
                         |-> ( ( algSc ` ( Poly1 ` r ) ) ` ( x m y ) ) ) ) ) $.
  $}

  ${
    $d n m r x y $.
    $( Transformation of a constant polynomial matrix (over a ring) into a
       matrix over the corresponding ring.  Since this function is the inverse
       function of ` matToPolyMat ` , see ~ m2cpminv , it is also called
       "inverse matrix transformation" in the following.  (Contributed by AV,
       14-Dec-2019.) $)
    df-cpmat2mat $a |- cPolyMatToMat = ( n e. Fin , r e. _V
                          |-> ( m e. ( n ConstPolyMat r )
                                |-> ( x e. n , y e. n
                                      |-> ( ( coe1 ` ( x m y ) ) ` 0 ) ) ) ) $.
  $}

  ${
    $d B m n r $.  $d N i j k m n r $.  $d R i j k m n r $.  $d V n r $.
    cpmat.s $e |- S = ( N ConstPolyMat R ) $.
    cpmat.p $e |- P = ( Poly1 ` R ) $.
    cpmat.c $e |- C = ( N Mat P ) $.
    cpmat.b $e |- B = ( Base ` C ) $.
    $( Value of the constructor of the set of all constant polynomial matrices,
       i.e. the set of all ` N ` x ` N ` matrices of polynomials over a ring
       ` R ` .  (Contributed by AV, 15-Nov-2019.) $)
    cpmat $p |- ( ( N e. Fin /\ R e. V )
                     -> S = { m e. B | A. i e. N A. j e. N A. k e. NN
                              ( ( coe1 ` ( i m j ) ) ` k ) = ( 0g ` R ) } ) $=
      ( cv cfv wceq wral cvv vn vr cfn wcel wa ccpmat co cco1 cn crab cpl1 cmat
      c0g cbs cmpt2 df-cpmat a1i simpl fveq2 adantl oveq12d fveq2d oveq2i eqtri
      fveq2i syl6eqr ralbidv raleqbidv rabeqbidv elex fvex eqeltri mp1i ovmpt2d
      eqeq2d rabexg syl5eq ) JUCUDZDKUDZUEZEJDUFUGHPFPGPIPUGUHQQZDUMQZRZHUISZGJ
      SZFJSZIAUJZLVTUAUBJDUCTWAUBPZUMQZRZHUISZGUAPZSZFWLSZIWLWHUKQZULUGZUNQZUJZ
      WGUFTUFUAUBUCTWRUORVTFGHIUAUBUPUQWLJRZWHDRZUEZWRWGRVTXAWNWFIWQAXAWQJDUKQZ
      ULUGZUNQZAXAWPXCUNXAWLJWOXBULWSWTURZWTWOXBRWSWHDUKUSUTVAVBABUNQZXDOBXCUNB
      JCULUGXCNCXBJULMVCVDVEVDVFXAWMWEFWLJXEXAWKWDGWLJXEXAWJWCHUIXAWIWBWAWTWIWB
      RWSWHDUMUSUTVOVGVHVHVIUTVRVSURVSDTUDVRDKVJUTATUDWGTUDVTAXFTOBUNVKVLWFIATV
      PVMVNVQ $.

    $d M m $.
    $( A constant polynomial matrix is a polynomial matrix.  (Contributed by
       AV, 16-Nov-2019.) $)
    cpmatpmat $p |- ( ( N e. Fin /\ R e. V /\ M e. S ) -> M e. B ) $=
      ( vk vi vj vm wcel cv cfv wral cfn wa co cco1 c0g wceq crab eleq2d elrabi
      cn cpmat syl6bi 3impia ) GUAQZDHQZFEQZFAQZUNUOUBZUPFMRNRORPRUCUDSSDUESUFM
      UJTOGTNGTZPAUGZQUQUREUTFABCDENOMPGHIJKLUKUHUSPFAUIULUM $.

    $d M i j k $.
    $( Property of a constant polynomial matrix.  (Contributed by AV,
       15-Nov-2019.) $)
    cpmatel $p |- ( ( N e. Fin /\ R e. V /\ M e. B )
                       -> ( M e. S <-> A. i e. N A. j e. N A. k e. NN
                               ( ( coe1 ` ( i M j ) ) ` k ) = ( 0g ` R ) ) ) $=
      ( vm wcel cv cfv wral cfn co cco1 c0g wceq cn w3a wa cpmat 3adant3 eleq2d
      crab oveq fveq2d fveq1d eqeq1d ralbidv 2ralbidv elrab syl6bb 3anibar ) JU
      AQZDKQZIAQZIEQZHRZFRZGRZIUBZUCSZSZDUDSZUEZHUFTZGJTFJTZVBVCVDUGZVEIVFVGVHP
      RZUBZUCSZSZVLUEZHUFTZGJTFJTZPAULZQVDVOUHVPEWDIVBVCEWDUEVDABCDEFGHPJKLMNOU
      IUJUKWCVOPIAVQIUEZWBVNFGJJWEWAVMHUFWEVTVKVLWEVFVSVJWEVRVIUCVGVHVQIUMUNUOU
      PUQURUSUTVA $.

    $( Implication of a set being a constant polynomial matrix.  (Contributed
       by AV, 18-Nov-2019.) $)
    cpmatelimp $p |- ( ( N e. Fin /\ R e. Ring ) -> ( M e. S -> ( M e. B
                          /\ A. i e. N A. j e. N A. k e. NN
                             ( ( coe1 ` ( i M j ) ) ` k ) = ( 0g ` R ) ) ) ) $=
      ( wcel crg wa cv cfv wral cfn co cco1 c0g wceq cn cpmatpmat 3expa cpmatel
      wb biimpd impancom jcai ex ) JUAOZDPOZQZIEOZIAOZHRFRGRIUBUCSSDUDSUEHUFTGJ
      TFJTZQUQURQUSUTUOUPURUSABCDEIJPKLMNUGUHUQUSURUTUQUSQURUTUOUPUSURUTUJABCDE
      FGHIJPKLMNUIUHUKULUMUN $.

    $d A k l $.  $d B i j $.  $d K k l $.  $d M l $.  $d N i j l $.
    $d P k l $.  $d R l $.
    cpmatel2.k $e |- K = ( Base ` R ) $.
    cpmatel2.a $e |- A = ( algSc ` P ) $.
    $( Another property of a constant polynomial matrix.  (Contributed by AV,
       16-Nov-2019.)  (Proof shortened by AV, 27-Nov-2019.) $)
    cpmatel2 $p |- ( ( N e. Fin /\ R e. Ring /\ M e. B ) -> ( M e. S
                 <-> A. i e. N A. j e. N E. k e. K ( i M j ) = ( A ` k ) ) ) $=
      ( wcel cfv vl cfn crg w3a cv co cco1 c0g wceq cn wral wrex cpmatel wa cbs
      wb simpl2 eqid simprl simprr simpl3 matecld cply1coe0bi syl2anc 2ralbidva
      bicomd bitrd ) LUBSZEUCSZKBSZUDZKFSUAUEGUEZHUEZKUFZUGTTEUHTZUIUAUJUKZHLUK
      GLUKVNIUEATUIIJULZHLUKGLUKBCDEFGHUAKLUCMNOPUMVKVPVQGHLLVKVLLSZVMLSZUNZUNZ
      VQVPWAVIVNDUOTZSVQVPUPVHVIVJVTUQWACBDVLVMWBKLOWBURZPVKVRVSUSVKVRVSUTVHVIV
      JVTVAVBAWBDEUAJVNVOIQVOURNWCRVCVDVFVEVG $.

    $( Another implication of a set being a constant polynomial matrix.
       (Contributed by AV, 17-Nov-2019.) $)
    cpmatelimp2 $p |- ( ( N e. Fin /\ R e. Ring ) -> ( M e. S -> ( M e. B
                /\ A. i e. N A. j e. N E. k e. K ( i M j ) = ( A ` k ) ) ) ) $=
      ( wcel wa cfn crg cv co wceq wrex wral cpmatpmat 3expa wb cpmatel2 biimpd
      cfv impancom jcai ex ) LUASZEUBSZTZKFSZKBSZGUCHUCKUDIUCAUMUEIJUFHLUGGLUGZ
      TUSUTTVAVBUQURUTVABCDEFKLUBMNOPUHUIUSVAUTVBUSVATUTVBUQURVAUTVBUJABCDEFGHI
      JKLMNOPQRUKUIULUNUOUP $.
  $}

  ${
    $d C i j n $.  $d N i j n $.  $d R i j n $.
    cpmatsrngpmat.s $e |- S = ( N ConstPolyMat R ) $.
    cpmatsrngpmat.p $e |- P = ( Poly1 ` R ) $.
    cpmatsrngpmat.c $e |- C = ( N Mat P ) $.
    $( The identity of the ring of all polynomial matrices over the ring ` R `
       is a constant polynomial matrix.  (Contributed by AV, 16-Nov-2019.) $)
    1elcpmat $p |- ( ( N e. Fin /\ R e. Ring ) -> ( 1r ` C ) e. S ) $=
      ( vn vi vj wcel wa cfv cco1 wceq cn wral eqid mpbird cfn crg cur cv cascl
      co c0g cif cbs ringidcl ancli adantl ad2antrl cply1coe0 syl iftrue fveq2d
      wb fveq1d eqeq1d ralbidv adantr wn ring0cl pm2.61ian simpll simplr simprl
      iffalse ralrimivva simprr pmat1ovscd 2ralbidva pmatring cpmatel mpd3an3 )
      EUALZCUBLZMZAUCNZDLZIUDZJUDZKUDZVTUFZONZNZCUGNZPZIQRZKERJERZVSWKWBWCWDPZC
      UCNZBUENZNZWHWNNZUHZONZNZWHPZIQRZKERJERVSXAJKEEWLVSWCELZWDELZMZMZXAWLXEMZ
      XAWBWOONZNZWHPZIQRZXFVRWMCUINZLZMZXJVSXMWLXDVRXMVQVRXLXKCWMXKSZWMSZUJUKUL
      UMWNBUINZBCWMIXKWHXNWHSZGXPSZWNSZUNUOWLXAXJURXEWLWTXIIQWLWSXHWHWLWBWRXGWL
      WQWOOWLWOWPUPUQUSUTVAVBTWLVCZXEMZXAWBWPONZNZWHPZIQRZVSYEXTXDVSVRWHXKLZMZY
      EVRYGVQVRYFXKCWHXNXQVDUKULWNXPBCWHIXKWHXNXQGXRXSUNUOUMYAWTYDIQYAWSYCWHYAW
      BWRYBYAWQWPOXTWQWPPXEWLWOWPVIVBUQUSUTVATVEVJVSWJXAJKEEXEWIWTIQXEWGWSWHXEW
      BWFWRXEWEWQOXEWNABCVTWMWCWDEWHGHXSXQXOVQVRXDVFVQVRXDVGVSXBXCVHVSXBXCVKVTS
      ZVLUQUSUTVAVMTVQVRVTAUINZLZWAWKURVSAUBLYJABCEGHVNYIAVTYISZYHUJUOYIABCDJKI
      VTEUBFGHYKVOVPT $.

    $d C a b c $.  $d N a b c i j x y $.  $d P a b c $.  $d R a b c x y $.
    $d S y $.
    $( The set of all constant polynomial matrices over a ring ` R ` is closed
       under addition.  (Contributed by AV, 17-Nov-2019.)  (Proof shortened by
       AV, 28-Nov-2019.) $)
    cpmatacl $p |- ( ( N e. Fin /\ R e. Ring )
                        -> A. x e. S A. y e. S ( x ( +g ` C ) y ) e. S ) $=
      ( vi vj wcel wa cfv co wceq wral wi eqid vc va vb cfn crg cv cplusg cascl
      cbs wrex cpmatelimp2 r19.26-2 csca ringacl 3expb wb ply1sca eqcomd fveq2d
      oveqd eleq1d adantr mpbird ad3antlr imp fveq2 eqeq2d adantl ancomd anim1i
      ex simpr ad2antrr matplusgcell oveq12 ancoms cghm ply1ring ad4antlr clmod
      syl ply1lmod asclghm eleq2d biimpd adantrd adantld ghmlin sylan9eqr eqtrd
      syl3anc rspcedvd expd anassrs rexlimdva com23 impd ralimdvva syl5bir expr
      com34 syld imp32 simpl pmatring anim2i df-3an sylibr cpmatpmat ralrimivva
      w3a cpmatel2 ) GUDMZEUEMZNZAUFZBUFZCUGOZPZFMZABFFXOXPFMZXQFMZNZNZXTKUFZLU
      FZXSPZUAUFZDUHOZOZQZUAEUIOZUJZLGRKGRZXOYAYBYNXOYAXPCUIOZMZYEYFXPPZUBUFZYI
      OZQZUBYLUJZLGRKGRZNZYBYNSYIYOCDEFKLUBYLXPGHIJYOTZYLTZYITZUKXOYBUUCYNXOYBX
      QYOMZYEYFXQPZUCUFZYIOZQZUCYLUJZLGRKGRZNUUCYNSZYIYOCDEFKLUCYLXQGHIJUUDUUEU
      UFUKXOUUGUUMUUNXOUUGUUCUUMYNXOUUGUUCUUMYNSZSXOUUGNYPUUBUUOXOUUGYPUUBUUOSX
      OUUGYPNZNZUUBUUMYNUUBUUMNUUAUULNZLGRKGRUUQYNUUAUULKLGGULUUQUURYMKLGGUUQYE
      GMYFGMNZNZUUAUULYMUUTYTUULYMSUBYLUUTYRYLMZNZUULYTYMUVBUUKYTYMSZUCYLUUTUVA
      UUIYLMZUUKUVCSUUTUVAUVDNZNZUUKYTYMUVFUUKYTNZYMUVFUVGNZYKYGYRUUIDUMOZUGOZP
      ZYIOZQZUAUVKYLUVFUVKYLMZUVGUUTUVEUVNXNUVEUVNSXMUUPUUSXNUVEUVNXNUVENUVNYRU
      UIEUGOZPZYLMZXNUVAUVDUVQYLUVOEYRUUIUUEUVOTUNUOXNUVNUVQUPUVEXNUVKUVPYLXNUV
      JUVOYRUUIXNUVIEUGXNEUVIDEUEIUQZURUSUTVAVBVCVKVDVEVBYHUVKQZYKUVMUPUVHUVSYJ
      UVLYGYHUVKYIVFVGVHUVHYGYQUUHDUGOZPZUVLUVHYPUUGNZUUSNZYGUWAQUUTUWCUVEUVGUU
      QUWBUUSUUQUUGYPXOUUPVLVIVJVMCYOUVTXRDYEYFGXPXQJUUDXRTZUVTTZVNWAUVGUVFUWAY
      SUUJUVTPZUVLYTUUKUWAUWFQYQYSUUHUUJUVTVOVPUVFUVLUWFUVFYIUVIDVQPMYRUVIUIOZM
      ZUUIUWGMZUVLUWFQUVFYIUVIDUUFUVITXNDUEMXMUUPUUSUVEDEIVRVSXNDVTMXMUUPUUSUVE
      DEIWBVSWCUUTUVEUWHUUTUVAUWHUVDXOUVAUWHSUUPUUSXOUVAUWHXOYLUWGYRXOEUVIUIXNE
      UVIQZXMUVRVHUSWDWEVMWFVEUUTUVEUWIUUTUVDUWIUVAUUTUVDUWIUUTYLUWGUUIUUTEUVIU
      IXNUWJXMUUPUUSUVRVDUSWDWEWGVEUVJUVTUVIDYRYIUUIUWGUWGTUVJTUWEWHWKURWIWJWLV
      KWMWNWOWPWOWQWRWSWMWTWQVKXAWQXBWPXBXCYDXMXNXSYOMZXTYNUPXOXMYCXMXNXDVBXOXN
      YCXMXNVLVBYDCUEMZYPUUGUWKXOUWLYCCDEGIJXEVBYDXMXNYAXKZYPYDXOYANUWMYCYAXOYA
      YBXDXFXMXNYAXGXHYOCDEFXPGUEHIJUUDXIWAYDXMXNYBXKZUUGYDXOYBNUWNYCYBXOYAYBVL
      XFXMXNYBXGXHYOCDEFXQGUEHIJUUDXIWAYOXRCXPXQUUDUWDUNWKYIYOCDEFKLUAYLXSGHIJU
      UDUUEUUFXLWKVCXJ $.

    $( The set of all constant polynomial matrices over a ring ` R ` is closed
       under inversion.  (Contributed by AV, 17-Nov-2019.)  (Proof shortened by
       AV, 28-Nov-2019.) $)
    cpmatinvcl $p |- ( ( N e. Fin /\ R e. Ring )
                        -> A. x e. S ( ( invg ` C ) ` x ) e. S ) $=
      ( vi vj wcel crg wa cv cminusg cfv wceq eqid adantr vc va cfn co cbs wrex
      wral cpmatelimp2 csca wi ply1sca adantl eqcomd fveq2d fveq1d cgrp ringgrp
      cascl grpinvcl sylan eqeltrd ex ad2antrr imp wb fveq2 eqeq2d w3a ply1ring
      ad3antlr simplr simpr 3jca matinvgcell cghm clmod ply1lmod asclghm eleq2d
      syl biimpd ghminv syl2anc sylan9eqr eqtrd rspcedvd rexlimdva expimpd syld
      ralimdvva simpll pmatring cpmatpmat cpmatel2 syl3anc mpbird ralrimiva
      3expa ) FUCLZDMLZNZAOZBPQZQZELZAEXAXBELZNZXEJOZKOZXDUDZUAOZCURQZQZRZUADUE
      QZUFZKFUGJFUGZXAXFXQXAXFXBBUEQZLZXHXIXBUDZUBOZXLQZRZUBXOUFZKFUGJFUGZNXQXL
      XRBCDEJKUBXOXBFGHIXRSZXOSZXLSZUHXAXSYEXQXAXSNZYDXPJKFFYIXHFLXIFLNZNZYCXPU
      BXOYKYAXOLZNZYCXPYMYCNZXNXJYACUIQZPQZQZXLQZRZUAYQXOYMYQXOLZYCYKYLYTXAYLYT
      UJXSYJXAYLYTXAYLNZYQYADPQZQZXOUUAYAYPUUBUUAYODPUUADYOXADYORZYLWTUUDWSCDMH
      UKULZTUMUNUOXADUPLZYLUUCXOLWTUUFWSDUQULXODUUBYAYGUUBSUSUTVAVBVCVDTXKYQRZX
      NYSVEYNUUGXMYRXJXKYQXLVFVGULYNXJXTCPQZQZYRYNCMLZXSYJVHZXJUUIRYKUUKYLYCYKU
      UJXSYJWTUUJWSXSYJCDHVIVJZXAXSYJVKYIYJVLVMVCBXRCXHXIFUUHXCXBIYFUUHSZXCSZVN
      VTYCYMUUIYBUUHQZYRXTYBUUHVFYMYRUUOYMXLYOCVOUDLYAYOUEQZLZYRUUORYMXLYOCYHYO
      SYKUUJYLUULTYKCVPLZYLWTUURWSXSYJCDHVQVJTVRYKYLUUQXAYLUUQUJXSYJXAYLUUQXAXO
      UUPYAXADYOUEUUEUNVSWAVCVDUUPYOCXLYPUUHYAUUPSYPSUUMWBWCUMWDWEWFVBWGWJWHWIV
      DXGWSWTXDXRLZXEXQVEWSWTXFWKWSWTXFVKXGBUPLZXSUUSXAUUTXFXABMLUUTBCDFHIWLBUQ
      VTTWSWTXFXSXRBCDEXBFMGHIYFWMWRXRBXCXBYFUUNUSWCXLXRBCDEJKUAXOXDFGHIYFYGYHW
      NWOWPWQ $.

    $d C k $.  $d N c i j k l x y $.  $d P k $.  $d R k l $.
    $( Lemma for ~ cpmatmcl .  (Contributed by AV, 18-Nov-2019.) $)
    cpmatmcllem $p |- ( ( ( N e. Fin /\ R e. Ring )
                   /\ ( x e. S /\ y e. S ) ) -> A. i e. N A. j e. N A. c e. NN
           ( ( coe1 ` ( P gsum ( k e. N |->
               ( ( i x k ) ( .r ` P ) ( k y j ) ) ) ) ) ` c ) = ( 0g ` R ) ) $=
      ( vl wcel wa cfv cn wral cfn crg cv co cmulr cmpt cgsu cco1 c0g wceq eqid
      cbs wi cpmatelimp adantr ralcom r19.26-2 bitr3i nfv nfra1 simp-4r simplrl
      nfan simpr matecld simplrr jca32 adantlr oveq2 fveq2d fveq1d eqeq1d oveq1
      anbi12d rspcva exp4b com23 imp31 ralimdva impancom cply1mul sylc r19.21bi
      a1i imp an32s mpteq2dva oveq2d cmnd ringmnd anim2i ancomd gsumz syl eqtrd
      ad4antr ex ralrimi wb cn0 nnnn0 adantl ply1ring ad4antlr ringcl ralrimiva
      syl3anc simp-4l coe1fzgsumd ralbidva mpbird syl5bi expd expr impd imp32
      syld ) JUAPZEUBPZQZAUCZFPZBUCZFPZKUCZDIJGUCZIUCZYAUDZYGHUCZYCUDZDUERZUDZU
      FUGUDUHRRZEUIRZUJZKSTZHJTZGJTZXTYBYACULRZPZYEYFOUCZYAUDZUHRZRZYNUJZKSTOJT
      ZGJTZQYDYRUMZYSCDEFGOKYAJLMNYSUKZUNXTYTUUGUUHXTYTUUGUUHUMXTYTQZYDUUGYRUUJ
      YDYCYSPZYEUUAYIYCUDZUHRZRZYNUJZKSTZHJTOJTZQZUUGYRUMZXTYDUURUMYTYSCDEFOHKY
      CJLMNUUIUNUOUUJUUKUUQUUSXTYTUUKUUQUUSUMXTYTUUKQZQZUUQUUSUVAUUQQZUUFYQGJUV
      BYFJPZUUFYQUMZUVAUVCUUQUVDUVAUVCQZUUFUUQYQUVEUUFUUQYQUMUUQUUPOJTZHJTUVEUU
      FQZYQUUPOHJJUPUVGUVFYPHJUVEUUFYIJPZUVFYPUMZUVEUVHUUFUVIUVAUVCUVHUUFUVIUMU
      VAUVCUVHQZQZUUFUVFYPUUFUVFQZUUEUUOQZOJTZKSTZUVKYPUVLUVMKSTOJTUVOUUEUUOOKJ
      SUQUVMOKJSUPURUVKUVOYPUVKUVOQZYPEIJYEYLUHRRZUFZUGUDZYNUJZKSTZUVPUVTKSUVKU
      VOKUVKKUSUVNKSUTVCUVPYESPZUVTUVPUWBQZUVSEIJYNUFZUGUDZYNUWCUVRUWDEUGUWCIJU
      VQYNUVPYGJPZUWBUVQYNUJZUVPUWFQZUWGKSUWHXSYHDULRZPZYJUWIPZQQZYEYHUHRZRZYNU
      JZYEYJUHRZRZYNUJZQZKSTZUWGKSTUVKUWFUWLUVOUVKUWFQZXSUWJUWKXRXSUUTUVJUWFVAU
      XACYSDYFYGUWIYAJNUWIUKZUUIUVAUVCUVHUWFVBUVKUWFVDZUVKYTUWFXTYTUUKUVJVBUOVE
      ZUXACYSDYGYIUWIYCJNUXBUUIUXCUVAUVCUVHUWFVFUVKUUKUWFXTYTUUKUVJVFUOVEZVGVHU
      VPUWFUWTUVKUWFUVOUWTUXAUVNUWSKSUVKUWFUWBUVNUWSUMZUVKUWBUWFUXFUVKUWBUWFUVN
      UWSUWFUVNQUWSUMUVKUWBQZUVMUWSOYGJUUAYGUJZUUEUWOUUOUWRUXHUUDUWNYNUXHYEUUCU
      WMUXHUUBYHUHUUAYGYFYAVIVJVKVLUXHUUNUWQYNUXHYEUUMUWPUXHUULYJUHUUAYGYIYCVMV
      JVKVLVNVOWDVPVQVRVSVTWEUWIDEYKYHYJYNKMUXBYNUKZYKUKZWAWBWCWFWGWHXTUWEYNUJZ
      UUTUVJUVOUWBXTEWIPZXRQUXKXTXRUXLXSUXLXREWJWKWLJIEUAYNUXIWMWNWPWOWQWRUVKYP
      UWAWSUVOUVKYOUVTKSUXGYMUVSYNUXGIUWIDEYEYLJMUXBXRXSUUTUVJUWBVAUWBYEWTPUVKY
      EXAXBUVKYLUWIPZIJTUWBUVKUXMIJUXADUBPZUWJUWKUXMXSUXNXRUUTUVJUWFDEMXCXDUXDU
      XEUWIDYKYHYJUXBUXJXEXGXFUOXRXSUUTUVJUWBXHXIVLXJUOXKWQXLXMXNVQVRVSXLWQVQVT
      WEVSWQXNXOXQVQWQXOXQXP $.

    $d S c i j $.
    $( The set of all constant polynomial matrices over a ring ` R ` is closed
       under multiplication.  (Contributed by AV, 18-Nov-2019.) $)
    cpmatmcl $p |- ( ( N e. Fin /\ R e. Ring )
                        -> A. x e. S A. y e. S ( x ( .r ` C ) y ) e. S ) $=
      ( vc vi vj wcel crg wa cv cfv co wral vk cfn cmulr cco1 wceq cn cmpt cgsu
      cpmatmcllem ply1ring ad4antlr eqid cpmatpmat 3expa anim12dan adantr simpr
      c0g cbs anim1i matmulcell syl3anc fveq2d fveq1d eqeq1d ralbidva mpbird wb
      simpl pmatring w3a anim2i df-3an sylibr syl ringcl cpmatel ralrimivva ) G
      UBNZEONZPZAQZBQZCUCRZSZFNZABFFWAWBFNZWCFNZPZPZWFKQZLQZMQZWESZUDRZRZEURRZU
      EZKUFTZMGTZLGTZWJXAWKDUAGWLUAQZWBSXBWMWCSDUCRZSUGUHSZUDRZRZWQUEZKUFTZMGTZ
      LGTABCDEFLMUAGKHIJUIWJWTXILGWJWLGNZPZWSXHMGXKWMGNZPZWRXGKUFXMWKUFNZPZWPXF
      WQXOWKWOXEXMWOXEUEXNXMWNXDUDXMDONZWBCUSRZNZWCXQNZPZXJXLPWNXDUEVTXPVSWIXJX
      LDEIUJUKXKXTXLWJXTXJWAWGXRWHXSVSVTWGXRXQCDEFWBGOHIJXQULZUMZUNVSVTWHXSXQCD
      EFWCGOHIJYAUMZUNUOUPUPXKXJXLWJXJUQUTCXQDXCWDUAWLWMGWBWCJYAXCULWDULZVAVBVC
      UPVDVEVFVFVFVGWJVSVTWEXQNZWFXAVHWAVSWIVSVTVIUPWAVTWIVSVTUQUPWJCONZXRXSYEW
      AYFWICDEGIJVJUPWJVSVTWGVKZXRWJWAWGPYGWIWGWAWGWHVIVLVSVTWGVMVNYBVOWJVSVTWH
      VKZXSWJWAWHPYHWIWHWAWGWHUQVLVSVTWHVMVNYCVOXQCWDWBWCYAYDVPVBXQCDEFLMKWEGOH
      IJYAVQVBVGVR $.

    $d C m $.  $d C x y $.  $d N i j k m $.  $d R k m $.  $d S x $.
    $( The set of all constant polynomial matrices over a ring ` R ` is an
       additive subgroup of the ring of all polynomial matrices over the ring
       ` R ` .  (Contributed by AV, 15-Nov-2019.) $)
    cpmatsubgpmat $p |- ( ( N e. Fin /\ R e. Ring )
                             -> S e. ( SubGrp ` C ) ) $=
      ( vx vy vk vi vj vm wcel crg cfv cv wral eqid cfn wa csubg cbs wss c0 wne
      cplusg co cminusg cco1 c0g wceq cn crab ssrab2 syl6eqss cur 1elcpmat ne0i
      cpmat syl cpmatacl cpmatinvcl r19.26 sylanbrc cgrp w3a wb ringgrp issubg2
      pmatring 3syl mpbir3and ) EUAOCPOUBZDAUCQOZDAUDQZUEZDUFUGZIRZJRAUHQZUIDOJ
      DSZVTAUJQZQDOZUBIDSZVODKRLRMRNRUIUKQQCULQUMKUNSMESLESZNVQUOVQVQABCDLMKNEP
      FGHVQTZVAWFNVQUPUQVOAURQZDOVSABCDEFGHUSDWHUTVBVOWBIDSWDIDSWEIJABCDEFGHVCI
      ABCDEFGHVDWBWDIDVEVFVOAPOAVGOVPVRVSWEVHVIABCEGHVLAVJIJVQWADAWCWGWATWCTVKV
      MVN $.

    $( The set of all constant polynomial matrices over a ring ` R ` is a
       subring of the ring of all polynomial matrices over the ring ` R ` .
       (Contributed by AV, 18-Nov-2019.) $)
    cpmatsrgpmat $p |- ( ( N e. Fin /\ R e. Ring )
                             -> S e. ( SubRing ` C ) ) $=
      ( vx vy cfn wcel crg wa csubrg cfv csubg cv wral eqid cmulr cpmatsubgpmat
      cur co 1elcpmat cpmatmcl w3a wb pmatring cbs issubrg2 syl mpbir3and ) EKL
      CMLNZDAOPLZDAQPLZAUCPZDLZIRJRAUAPZUDDLJDSIDSZABCDEFGHUBABCDEFGHUEIJABCDEF
      GHUFUNAMLUOUPURUTUGUHABCEGHUIIJDAUJPZAUSUQVATUQTUSTUKULUM $.
  $}

  ${
    0elcpmat.s $e |- S = ( N ConstPolyMat R ) $.
    0elcpmat.p $e |- P = ( Poly1 ` R ) $.
    0elcpmat.c $e |- C = ( N Mat P ) $.
    $( The zero of the ring of all polynomial matrices over the ring ` R ` is a
       constant polynomial matrix.  (Contributed by AV, 27-Nov-2019.) $)
    0elcpmat $p |- ( ( N e. Fin /\ R e. Ring ) -> ( 0g ` C ) e. S ) $=
      ( cfn wcel crg wa csubg cfv c0g cpmatsubgpmat eqid subg0cl syl ) EIJCKJLD
      AMNJAONZDJABCDEFGHPDATTQRS $.
  $}

  ${
    $d m n r B $.  $d n m r x y N $.  $d n m r x y R $.  $d n r S $.
    $d n r V $.
    mat2pmatfval.t $e |- T = ( N matToPolyMat R ) $.
    mat2pmatfval.a $e |- A = ( N Mat R ) $.
    mat2pmatfval.b $e |- B = ( Base ` A ) $.
    mat2pmatfval.p $e |- P = ( Poly1 ` R ) $.
    mat2pmatfval.s $e |- S = ( algSc ` P ) $.
    $( Value of the matrix transformation.  (Contributed by AV,
       31-Jul-2019.) $)
    mat2pmatfval $p |- ( ( N e. Fin /\ R e. V )
           -> T = ( m e. B |-> ( x e. N , y e. N |-> ( S ` ( x m y ) ) ) ) ) $=
      ( wcel cfv cvv cbs vn vr cfn wa cmat2pmat co cv cmpt2 cmpt cmat cpl1 wceq
      cascl df-mat2pmat a1i oveq12 fveq2d fveq2i eqtr2i simpl fveq2 mpt2eq123dv
      syl6eq adantl fveq1d mpteq12dv elex fvex eqeltri mptexg ovmpt2d syl5eq
      mp1i ) JUCQZFKQZUDZHJFUEUFIDABJJAUGBUGIUGUFZGRZUHZUIZLVPUAUBJFUCSIUAUGZUB
      UGZUJUFZTRZABWAWAVQWBUKRZUMRZRZUHZUIZVTUESUEUAUBUCSWIUHULVPABIUAUBUNUOWAJ
      ULZWBFULZUDZWIVTULVPWLIWDWHDVSWLWDJFUJUFZTRZDWLWCWMTWAJWBFUJUPUQDCTRZWNNC
      WMTMURUSVCWLABWAWAWGJJVRWJWKUTZWPWLVQWFGWLWFFUKRZUMRZGWKWFWRULWJWKWEWQUMW
      BFUKVAUQVDGEUMRWRPEWQUMOURUSVCVEVBVFVDVNVOUTVOFSQVNFKVGVDDSQVTSQVPDWOSNCT
      VHVIIDVSSVJVMVKVL $.

    $d m x y M $.  $d m S $.  $d m V $.
    $( The result of a matrix transformation.  (Contributed by AV,
       31-Jul-2019.) $)
    mat2pmatval $p |- ( ( N e. Fin /\ R e. V /\ M e. B )
                  -> ( T ` M ) = ( x e. N , y e. N |-> ( S ` ( x M y ) ) ) ) $=
      ( vm cfn wcel cv w3a co cfv cmpt2 cvv cmpt wceq mat2pmatfval 3adant3 oveq
      fveq2d mpt2eq3dv adantl simp3 simp1 mpt2exga syl2anc fvmptd ) JRSZFKSZIDS
      ZUAZQIABJJATZBTZQTZUBZGUCZUDZABJJVCVDIUBZGUCZUDZDHUEUSUTHQDVHUFUGVAABCDEF
      GHQJKLMNOPUHUIVEIUGZVHVKUGVBVLABJJVGVJVLVFVIGVCVDVEIUJUKULUMUSUTVAUNVBUSU
      SVKUESUSUTVAUOZVMABJJVJRRUPUQUR $.

    $d x y B $.  $d x y S $.  $d x y V $.  $d x y X $.  $d x y Y $.
    $( A (matrix) element of the result of a matrix transformation.
       (Contributed by AV, 31-Jul-2019.) $)
    mat2pmatvalel $p |- ( ( ( N e. Fin /\ R e. V /\ M e. B )
                              /\ ( X e. N /\ Y e. N ) )
                            -> ( X ( T ` M ) Y ) = ( S ` ( X M Y ) ) ) $=
      ( vx vy wcel wceq cfn w3a wa cv co cmpt2 mat2pmatval adantr oveq12 fveq2d
      cfv cvv adantl simprl simprr fvexd ovmpt2d ) HUASDISGBSUBZJHSZKHSZUCZUCZQ
      RJKHHQUDZRUDZGUEZEUKZJKGUEZEUKZGFUKZULURVIQRHHVFUFTVAQRABCDEFGHILMNOPUGUH
      VCJTVDKTUCZVFVHTVBVJVEVGEVCJVDKGUIUJUMURUSUTUNURUSUTUOVBVGEUPUQ $.
  $}

  ${
    $d B x y $.  $d M x y $.  $d N x y $.  $d P x y $.  $d R x y $.
    mat2pmatbas.t $e |- T = ( N matToPolyMat R ) $.
    mat2pmatbas.a $e |- A = ( N Mat R ) $.
    mat2pmatbas.b $e |- B = ( Base ` A ) $.
    mat2pmatbas.p $e |- P = ( Poly1 ` R ) $.
    mat2pmatbas.c $e |- C = ( N Mat P ) $.
    $( The result of a matrix transformation is a polynomial matrix.
       (Contributed by AV, 1-Aug-2019.) $)
    mat2pmatbas $p |- ( ( N e. Fin /\ R e. Ring /\ M e. B )
                        -> ( T ` M ) e. ( Base ` C ) ) $=
      ( vx vy wcel crg cfv cbs eqid cfn w3a cv co cascl cmpt2 mat2pmatval simp1
      cvv cpl1 fvex eqeltri a1i ply1ring 3ad2ant2 3ad2ant1 clmod ply1lmod asclf
      wf csca wceq ply1sca fveq2d feq2d mpbird simp2 simp3 eleq2i biimpi matecl
      3ad2ant3 syl3anc ffvelrnd matbas2d eqeltrd ) HUAPZEQPZGBPZUBZGFRNOHHNUCZO
      UCZGUDZDUERZRZUFCSRZNOABDEWDFGHQIJKLWDTZUGVTNOCWFWEDDSRZHUIMWHTZWFTVQVRVS
      UHDUIPVTDEUJRUILEUJUKULUMVTWAHPZWBHPZUBZESRZWHWCWDWLWMWHWDUTDVARZSRZWHWDU
      TWLWDWHWNWODWGWNTVTWJDQPZWKVRVQWPVSDELUNUOUPVTWJDUQPZWKVRVQWQVSDELURUOUPW
      OTWIUSWLWMWOWHWDVTWJWMWOVBZWKVRVQWRVSVREWNSDEQLVCVDUOUPVEVFWLWJWKGASRZPZW
      CWMPVTWJWKVGVTWJWKVHVTWJWTWKVSVQWTVRVSWTBWSGKVIVJVLUPAEWAWBWMGHJWMTVKVMVN
      VOVP $.

    mat2pmatbas0.h $e |- H = ( Base ` C ) $.
    $( The result of a matrix transformation is a polynomial matrix.
       (Contributed by AV, 27-Oct-2019.) $)
    mat2pmatbas0 $p |- ( ( N e. Fin /\ R e. Ring /\ M e. B )
                        -> ( T ` M ) e. H ) $=
      ( cfn wcel crg w3a cfv cbs mat2pmatbas syl6eleqr ) IPQERQHBQSHFTCUATGABCD
      EFHIJKLMNUBOUC $.

    $d B m x y $.  $d H m $.  $d N m $.  $d R m $.  $d T m $.
    $( The matrix transformation is a function from the matrices to the
       polynomial matrices.  (Contributed by AV, 27-Oct-2019.) $)
    mat2pmatf $p |- ( ( N e. Fin /\ R e. Ring ) -> T : B --> H ) $=
      ( vm vx vy cfn wcel wa crg cv co cascl cfv cmpt2 cvv simpl jca adantr syl
      mpt2exga eqid mat2pmatfval mat2pmatbas0 3expa fmpt2d ) HRSZEUASZTZOOBPQHH
      PUBQUBOUBZUCDUDUEZUEZUFZGFUGUTVABSZTURURTZVDUGSUTVFVEUTURURURUSUHZVGUIUJP
      QHHVCRRULUKPQABDEVBFOHUAIJKLVBUMUNURUSVEVAFUEGSABCDEFGVAHIJKLMNUOUPUQ $.

    $d B i j $.  $d N i j $.  $d R i j $.  $d T i j x y $.
    $( The matrix transformation is a 1-1 function from the matrices to the
       polynomial matrices.  (Contributed by AV, 28-Oct-2019.)  (Proof
       shortened by AV, 27-Nov-2019.) $)
    mat2pmatf1 $p |- ( ( N e. Fin /\ R e. Ring ) -> T : B -1-1-> H ) $=
      ( vi vj wcel wa cfv wceq vx vy cfn crg wf cv wi wral wf1 mat2pmatf co w3a
      cascl simpl anim2i df-3an sylibr eqid mat2pmatvalel sylan simpr ply1sclf1
      eqeq12d ad3antlr simprl simprr simplrl matecld simplrr f1veqaeq ralimdvva
      cbs syl12anc sylbid wb mat2pmatbas0 syl syl2anc adantl 3imtr4d ralrimivva
      eqmat dff13 sylanbrc ) HUCQZEUDQZRZBGFUEUAUFZFSZUBUFZFSZTZWHWJTZUGZUBBUHU
      ABUHBGFUIABCDEFGHIJKLMNUJWGWNUAUBBBWGWHBQZWJBQZRZRZOUFZPUFZWIUKZWSWTWKUKZ
      TZPHUHOHUHZWSWTWHUKZWSWTWJUKZTZPHUHOHUHZWLWMWRXCXGOPHHWRWSHQZWTHQZRZRZXCX
      EDUMSZSZXFXMSZTZXGXLXAXNXBXOWRWEWFWOULZXKXAXNTWRWGWORXQWQWOWGWOWPUNUOWEWF
      WOUPUQZABDEXMFWHHUDWSWTIJKLXMURZUSUTWRWEWFWPULZXKXBXOTWRWGWPRXTWQWPWGWOWP
      VAUOWEWFWPUPUQZABDEXMFWJHUDWSWTIJKLXSUSUTVCXLEVLSZDVLSZXMUIZXEYBQXFYBQXPX
      GUGWFYDWEWQXKXMYCDEYBLXSYBURZYCURVBVDXLABEWSWTYBWHHJYEKWRXIXJVEZWRXIXJVFZ
      WGWOWPXKVGVHXLABEWSWTYBWJHJYEKYFYGWGWOWPXKVIVHYBYCXEXFXMVJVMVNVKWRWIGQZWK
      GQZWLXDVOWRXQYHXRABCDEFGWHHIJKLMNVPVQWRXTYIYAABCDEFGWJHIJKLMNVPVQCGDOPHWI
      WKMNWBVRWQWMXHVOWGABEOPHWHWJJKWBVSVTWAUAUBBGFWCWD $.

    $d A i j x y $.  $d C x y $.  $d H x y $.  $d P i j $.
    $( The transformation of matrices into polynomial matrices is an additive
       group homomorphism.  (Contributed by AV, 28-Oct-2019.)  (Proof shortened
       by AV, 28-Nov-2019.) $)
    mat2pmatghm $p |- ( ( N e. Fin /\ R e. Ring ) -> T e. ( A GrpHom C ) ) $=
      ( vi vj wcel crg cfv co vx vy wa cplusg eqid matgrp cgrp pmatring ringgrp
      cfn syl mat2pmatf cascl cmpt2 cof wceq cbs simpl adantr ply1ring ad2antlr
      cv simp1lr simp2 simp3 simp1rl matecld ply1sclcl syl2anc matbas2d simp1rr
      w3a matplusg2 cvv fvexd eqidd offval22 simpr 3ad2ant1 3simpc matplusgcell
      csca ply1sca adantl fveq2d oveqd eqtrd cghm clmod ply1lmod asclghm eqcomd
      eleq2d mpbird ghmlin syl3anc eqtr2d mpt2eq3dva cmnd matring anim1i 3anass
      wb ringmnd sylibr mndcl df-3an sylanbrc mat2pmatval anim2i oveq12d isghmd
      3eqtr4d ) HUJQZERQZUCZUAUBAUDSZCUDSZACFBGKNXQUEZXRUEZAEHJUFXPCRQCUGQCDEHL
      MUHCUIUKABCDEFGHIJKLMNULXPUAVBZBQZUBVBZBQZUCZUCZOPHHOVBZPVBZYAYCXQTZTZDUM
      SZSZUNZOPHHYGYHYATZYKSZUNZOPHHYGYHYCTZYKSZUNZXRTZYIFSZYAFSZYCFSZXRTYFYTYP
      YSDUDSZUOTZYMYFYPGQYSGQYTUUEUPYFOPCGYODDUQSZHRMUUFUEZNXPXNYEXNXOURUSZXODR
      QZXNYEDELUTVAZYFYGHQZYHHQZVLZXOYNEUQSZQZYOUUFQXNXOYEUUKUULVCZUUMABEYGYHUU
      NYAHJUUNUEZKYFUUKUULVDZYFUUKUULVEZYBYDXPUUKUULVFVGZYKUUFDEYNUUNLYKUEZUUQU
      UGVHVIVJYFOPCGYRDUUFHRMUUGNUUHUUJUUMXOYQUUNQZYRUUFQUUPUUMABEYGYHUUNYCHJUU
      QKUURUUSYBYDXPUUKUULVKVGZYKUUFDEYQUUNLUVAUUQUUGVHVIVJCGUUDXRDHYPYSMNXTUUD
      UEZVMVIYFUUEOPHHYOYRUUDTZUNYMYFOPHHYOYRUUDYPYSUJUJVNVNUUHUUHUUMYNYKVOUUMY
      QYKVOYFYPVPYFYSVPVQYFOPHHUVEYLUUMYLYNYQDWBSZUDSZTZYKSZUVEUUMYJUVHYKUUMYJY
      NYQEUDSZTZUVHUUMYEUUKUULUCYJUVKUPYFUUKYEUULXPYEVRVSYFUUKUULVTABUVJXQEYGYH
      HYAYCJKXSUVJUEWAVIYFUUKUVKUVHUPZUULXPUVLYEXPUVJUVGYNYQXPEUVFUDXOEUVFUPXND
      ERLWCWDZWEWFUSVSWGWEUUMYKUVFDWHTQYNUVFUQSZQZYQUVNQZUVIUVEUPUUMYKUVFDUVAUV
      FUEYFUUKUUIUULUUJVSYFUUKDWIQZUULXOUVQXNYEDELWJVAVSWKUUMUVOUUOUUTYFUUKUVOU
      UOXCZUULXPUVRYEXPUVNUUNYNXPUVFEUQXPEUVFUVMWLWEZWMUSVSWNUUMUVPUVBUVCYFUUKU
      VPUVBXCZUULXPUVTYEXPUVNUUNYQUVSWMUSVSWNUVGUUDUVFDYNYKYQUVNUVNUEUVGUEUVDWO
      WPWQWRWGWQYFXNXOYIBQZVLZUUAYMUPYFXPUWAUWBXPYEURYFAWSQZYBYDVLZUWAYFUWCYEUC
      UWDXPUWCYEXPARQUWCAEHJWTAXDUKXAUWCYBYDXBXEBXQAYAYCKXSXFUKXNXOUWAXGXHOPABD
      EYKFYIHRIJKLUVAXIUKYFUUBYPUUCYSXRYFXNXOYBVLZUUBYPUPYFXPYBUCUWEYEYBXPYBYDU
      RXJXNXOYBXGXEOPABDEYKFYAHRIJKLUVAXIUKYFXNXOYDVLZUUCYSUPYFXPYDUCUWFYEYDXPY
      BYDVRXJXNXOYDXGXEOPABDEYKFYCHRIJKLUVAXIUKXKXMXL $.

    $d A k l $.  $d B k l $.  $d N k l $.  $d P i j k l m x y $.  $d R k l $.
    $( The transformation of matrices into polynomial matrices preserves the
       multiplication.  (Contributed by AV, 29-Oct-2019.)  (Proof shortened by
       AV, 28-Nov-2019.) $)
    mat2pmatmul $p |- ( ( N e. Fin /\ R e. CRing )
               -> A. x e. B A. y e. B ( T ` ( x ( .r ` A ) y ) )
                                      = ( ( T ` x ) ( .r ` C ) ( T ` y ) ) ) $=
      ( vm wcel cfv co vk vl vi vj cfn ccrg wa cmulr wceq cascl cmpt2 cmpt cgsu
      cv w3a cvv cotp cmmul eqid matmulr eqcomd oveqdr crngring ad2antlr simpll
      cbs crg cxp cmap eleq2i biimpi adantr adantl matbas2 eleqtrrd ad2antll wb
      eleq2d mpbird mamuval eqtrd 3ad2ant1 oveq1 oveq2 oveqan12d mpteq2dv simp2
      weq oveq2d simp3 ovexd ovmpt2d c0g ccmn ringcmn syl cmnd ply1ring ringmnd
      fveq2d cmhm cghm csca clmod ply1lmod asclghm ply1sca oveq1d ghmmhm sylibr
      simpr matecld fveq2i eqtri ringcl syl3anc fvexd fsuppmptdm gsummptmhm crh
      cmat casa ply1assa asclrhm mpteq2dva 3eqtr2d mpt2eq3dva simp1rl ply1sclcl
      rhmmul syl2anc simp1rr oveq12 mpt2matmul eqtr4d sylan2 mat2pmatval anim2i
      matring df-3an anim1i 3anass simpl oveq12d 3eqtr4d ralrimivva ) JUERZGUFR
      ZUGZAUNZBUNZCUHSZTZHSZUUJHSZUUKHSZEUHSZTZUIABDDUUIUUJDRZUUKDRZUGZUGZUAUBJ
      JUAUNZUBUNZUUMTZFUJSZSZUKZUCUDJJUCUNZUDUNZUUJTZUVFSZUKZUCUDJJUVIUVJUUKTZU
      VFSZUKZUUQTZUUNUURUVBUVHUAUBJJFQJUVCQUNZUUJTZUVFSZUVRUVDUUKTZUVFSZFUHSZTZ
      ULZUMTZUKUVQUVBUAUBJJUVGUWFUVBUVCJRZUVDJRZUOZUVGGQJUVSUWAGUHSZTZULZUMTZUV
      FSFQJUWKUVFSZULZUMTUWFUWIUVEUWMUVFUWIUCUDUVCUVDJJGQJUVIUVRUUJTZUVRUVJUUKT
      ZUWJTZULZUMTZUWMUUMUPUVBUWGUUMUCUDJJUWTUKZUIUWHUVBUUMUUJUUKGJJJUQURTZTUXA
      UUIUVAABUULUXBUUIUXBUULCGUXBJUFLUXBUSZUTVAVBUVBGVFSZJGUWJUCQUDUXBJJVGUUJU
      UKUXCUXDUSZUWJUSZUUHGVGRZUUGUVAGVCZVDZUUGUUHUVAVEZUXJUXJUVBUUJCVFSZUXDJJV
      HVITZUVAUUJUXKRZUUIUUSUXMUUTUUSUXMDUXKUUJMVJZVKVLVMZUUIUXLUXKUIUVACGUXDJU
      FLUXEVNZVLVOUVBUUKUXLRZUUKUXKRZUUTUXRUUIUUSUUTUXRDUXKUUKMVJZVKVPZUUIUXQUX
      RVQUVAUUIUXLUXKUUKUXPVRVLVSVTWAWBUCUAWHZUDUBWHZUGZUWTUWMUIUWIUYCUWSUWLGUM
      UYCQJUWRUWKUYAUYBUWPUVSUWQUWAUWJUVIUVCUVRUUJWCUVJUVDUVRUUKWDWEWFWIVMUVBUW
      GUWHWGZUVBUWGUWHWJZUWIGUWLUMWKWLWTUWIQJUXDUWKGFUVFUEGWMSZUXEUYFUSUVBUWGGW
      NRZUWHUUHUYGUUGUVAUUHUXGUYGUXHGWOWPVDWBUVBUWGFWQRZUWHUUHUYHUUGUVAUUHFVGRZ
      UYHUUHUXGUYIUXHFGNWRWPZFWSWPVDWBUVBUWGUUGUWHUXJWBZUVBUWGUVFGFXATRZUWHUUIU
      YLUVAUUIUVFGFXBTZRUYLUUIUVFFXCSZFXBTUYMUUIUVFUYNFUVFUSZUYNUSZUUHUYIUUGUYJ
      VMUUHFXDRZUUGUUHUXGUYQUXHFGNXEWPVMXFUUIGUYNFXBUUHGUYNUIUUGFGUFNXGVMZXHVOG
      FUVFXIWPVLWBUWIUVRJRZUGZUXGUVSUXDRZUWAUXDRZUWKUXDRUWIUXGUYSUVBUWGUXGUWHUX
      IWBVLUYTCDGUVCUVRUXDUUJJLUXEMUWIUWGUYSUYDVLUWIUYSXKZUYTUXMUUSUWIUXMUYSUVB
      UWGUXMUWHUXOWBVLUXNXJXLZUYTCDGUVRUVDUXDUUKJLUXEMVUCUWIUWHUYSUYEVLZUYTUUKJ
      GYATZVFSZRZUUTUWIVUHUYSUVBUWGVUHUWHUUTVUHUUIUUSUUTVUHDVUGUUKDUXKVUGMCVUFV
      FLXMXNVJZVKVPWBVLVUIXJXLUXDGUWJUVSUWAUXEUXFXOXPUWIQJUWLUPUPUWKUYFUWLUSUYK
      UYTUVSUWAUWJWKUWIGWMXQXRXSUWIUWOUWEFUMUWIQJUWNUWDUYTUVFGFXTTZRZVUAVUBUWNU
      WDUIUWIVUKUYSUVBUWGVUKUWHUUIVUKUVAUUIUVFUYNFXTTZVUJUUIFYBRZUVFVULRUUHVUMU
      UGFGNYCVMUVFUYNFUYOUYPYDWPUUIGUYNFXTUYRXHVOVLWBVLVUDUYTCDGUVRUVDUXDUUKJLU
      XEMVUCVUEUYTUXRUUTUWIUXRUYSUVBUWGUXRUWHUXTWBVLUXSXJXLUVSUWAGFUWJUWCUVFUXD
      UXEUXFUWCUSZYJXPYEWIYFYGUVBEFVFSZUVLUVTFUWCUUQUPUCUDUAQUVOUWBJVGUPUVMUVPU
      BOVUOUSZUUQUSVUNUUHUYIUUGUVAUYJVDUXJUVMUSUVPUSUVBUVIJRZUVJJRZUOZUXGUVKUXD
      RUVLVUORUVBVUQUXGVURUXIWBZVUSCDGUVIUVJUXDUUJJLUXEMUVBVUQVURWGZUVBVUQVURWJ
      ZUUSUUTUUIVUQVURYHXLUVFVUOFGUVKUXDNUYOUXEVUPYIYKVUSUXGUVNUXDRUVOVUORVUTVU
      SCDGUVIUVJUXDUUKJLUXEMVVAVVBUUSUUTUUIVUQVURYLXLUVFVUOFGUVNUXDNUYOUXEVUPYI
      YKUAUCWHQUDWHUGZUVTUVLUIUVBVVCUVSUVKUVFUVCUVIUVRUVJUUJYMWTVMQUCWHUBUDWHUG
      ZUWBUVOUIUVBVVDUWAUVNUVFUVRUVIUVDUVJUUKYMWTVMUVBUWGUYSUOUVSUVFXQUVBUYSUWH
      UOUWAUVFXQYNYOUVBUUGUXGUUMDRZUUNUVHUIUXJUXIUVBCVGRZUUSUUTUOZVVEUVBVVFUVAU
      GVVGUUIVVFUVAUUHUUGUXGVVFUXHCGJLYSYPUUAVVFUUSUUTUUBXJDCUULUUJUUKMUULUSXOW
      PUAUBCDFGUVFHUUMJVGKLMNUYOYQXPUVBUUOUVMUUPUVPUUQUVBUUGUUHUUSUOZUUOUVMUIUV
      BUUIUUSUGVVHUVAUUSUUIUUSUUTUUCYRUUGUUHUUSYTXJUCUDCDFGUVFHUUJJUFKLMNUYOYQW
      PUVBUUGUUHUUTUOZUUPUVPUIUVBUUIUUTUGVVIUVAUUTUUIUUSUUTXKYRUUGUUHUUTYTXJUCU
      DCDFGUVFHUUKJUFKLMNUYOYQWPUUDUUEUUF $.

    $d C i j $.
    $( The transformation of the identity matrix results in the identity
       polynomial matrix.  (Contributed by AV, 29-Oct-2019.) $)
    mat2pmat1 $p |- ( ( N e. Fin /\ R e. Ring )
                            -> ( T ` ( 1r ` A ) ) = ( 1r ` C ) ) $=
      ( vi vj wcel crg cfv eqid cfn wa cur wceq cv wral cascl w3a simpl matring
      simpr ringidcl syl 3jca mat2pmatvalel sylan weq c0g cif ply1scl1 ad2antlr
      fvif ply1scl0 ifeq12d syl5eq adantr adantl mat1ov fveq2d ply1ring 3eqtr4d
      co eqtrd ralrimivva wb mat2pmatbas0 pmatring eqmat syl2anc mpbird ) HUAQZ
      ERQZUBZAUCSZFSZCUCSZUDZOUEZPUEZWEVLZWHWIWFVLZUDZPHUFOHUFZWCWLOPHHWCWHHQZW
      IHQZUBZUBZWJWHWIWDVLZDUGSZSZWKWCWAWBWDBQZUHZWPWJWTUDWCWAWBXAWAWBUIZWAWBUK
      ZWCARQXAAEHJUJBAWDKWDTZULUMUNZABDEWSFWDHRWHWIIJKLWSTZUOUPWQOPUQZEUCSZEURS
      ZUSZWSSZXHDUCSZDURSZUSZWTWKWQXLXHXIWSSZXJWSSZUSXOXHXIXJWSVBWQXHXPXMXQXNWB
      XPXMUDWAWPWSDEXIXMLXGXITZXMTZUTVAWBXQXNUDWAWPWSDEXNXJLXGXJTZXNTZVCVAVDVEW
      QWRXKWSWQAEWDXIWHWIHXJJXRXTWCWAWPXCVFZWCWBWPXDVFWPWNWCWNWOUIVGZWPWOWCWNWO
      UKVGZXEVHVIWQCDWFXMWHWIHXNMXSYAYBWBDRQWAWPDELVJVAYCYDWFTZVHVKVMVNWCWEGQZW
      FGQZWGWMVOWCXBYFXFABCDEFGWDHIJKLMNVPUMWCCRQYGCDEHLMVQGCWFNYEULUMCGDOPHWEW
      FMNVRVSVT $.

    $( The transformation of matrices into polynomial matrices is a
       homomorphism of multiplicative monoids.  (Contributed by AV,
       29-Oct-2019.) $)
    mat2pmatmhm $p |- ( ( N e. Fin /\ R e. CRing )
                        -> T e. ( ( mulGrp ` A ) MndHom ( mulGrp ` C ) ) ) $=
      ( vx vy wcel cfv crg eqid cfn ccrg wa cmgp cmnd wf cv cmulr wceq wral cur
      co w3a crngring matring sylan2 ringmgp syl ply1ring mat2pmatf mat2pmatmul
      cmhm jca mat2pmat1 3jca mgpbas mgpplusg ringidval ismhm sylanbrc ) HUAQZE
      UBQZUCZAUDRZUEQZCUDRZUEQZUCBGFUFZOUGZPUGZAUHRZULFRVSFRVTFRCUHRZULUIPBUJOB
      UJZAUKRZFRCUKRZUIZUMFVNVPVBULQVMVOVQVMASQZVOVLVKESQZWGEUNZAEHJUOUPAVNVNTZ
      UQURVMCSQZVQVLVKDSQZWKVLWHWLWIDELUSURCDHMUOUPCVPVPTZUQURVCVMVRWCWFVLVKWHV
      RWIABCDEFGHIJKLMNUTUPOPABCDEFGHIJKLMNVAVLVKWHWFWIABCDEFGHIJKLMNVDUPVEOPBG
      WAWBVNVPFWEWDBAVNWJKVFGCVPWMNVFAWAVNWJWATVGCWBVPWMWBTVGAWDVNWJWDTVHCWEVPW
      MWETVHVIVJ $.

    $( The transformation of matrices into polynomial matrices is a ring
       homomorphism.  (Contributed by AV, 29-Oct-2019.) $)
    mat2pmatrhm $p |- ( ( N e. Fin /\ R e. CRing ) -> T e. ( A RingHom C ) ) $=
      ( wcel wa crg co cmgp sylan2 cfn ccrg cghm cfv cmhm crh crngring ply1ring
      matring syl jca mat2pmatghm mat2pmatmhm eqid isrhm sylanbrc ) HUAOZEUBOZP
      ZAQOZCQOZPFACUCROZFASUDZCSUDZUEROZPFACUFROUSUTVAURUQEQOZUTEUGZAEHJUITURUQ
      DQOZVAURVFVHVGDELUHUJCDHMUITUKUSVBVEURUQVFVBVGABCDEFGHIJKLMNULTABCDEFGHIJ
      KLMNUMUKACFVCVDVCUNVDUNUOUP $.

    $d K i j $.  $d S i j $.  $d X i j $.  $d Y i j $.  $d .X. i j $.
    $d .x. i j $.
    mat2pmatlin.k $e |- K = ( Base ` R ) $.
    mat2pmatlin.s $e |- S = ( algSc ` P ) $.
    mat2pmatlin.m $e |- .x. = ( .s ` A ) $.
    mat2pmatlin.n $e |- .X. = ( .s ` C ) $.
    $( The transformation of matrices into polynomial matrices is "linear",
       analogous to ~ lmhmlin .  Since ` A ` and ` C ` have different scalar
       rings, ` T ` cannot be a left module homomorphism as defined in
       ~ df-lmhm , see ~ lmhmsca .  (Contributed by AV, 13-Nov-2019.)  (Proof
       shortened by AV, 28-Nov-2019.) $)
    mat2pmatlin $p |- ( ( ( N e. Fin /\ R e. CRing ) /\ ( X e. K /\ Y e. B ) )
                      -> ( T ` ( X .x. Y ) ) = ( ( S ` X ) .X. ( T ` Y ) ) ) $=
      ( vi vj cfn wcel ccrg wa co cfv wceq cv wral cmulr crh csca casa ply1assa
      cbs eqid asclrhm 3syl ply1sca adantl oveq1d eleqtrrd adantr eleq2i biimpi
      simpr ad2antlr simprl simplrr matecld rhmmul syl3anc crngring matvscacell
      crg fveq2d anim2i anim12i df-3an sylibr mat2pmatvalel sylan oveq2d simpll
      w3a 3eqtr4d matvscl syl31anc ply1ring simpl ply1sclcl syl2an mat2pmatbas0
      syl jca ralrimivva wb syl21anc eqmat syl2anc mpbird ) LUGUHZEUIUHZUJZMKUH
      ZNBUHZUJZUJZMNHUKZGULZMFULZNGULZIUKZUMZUEUNZUFUNZXPUKZYAYBXSUKZUMZUFLUOUE
      LUOZXNYEUEUFLLXNYALUHZYBLUHZUJZUJZYAYBXOUKZFULZXQYAYBXRUKZDUPULZUKZYCYDYJ
      MYAYBNUKZEUPULZUKZFULZXQYPFULZYNUKZYLYOYJFEDUQUKZUHZMEVAULZUHZYPUUDUHYSUU
      AUMXNUUCYIXJUUCXMXJFDURULZDUQUKZUUBXJXIDUSUHFUUGUHXHXIVLDERUTFUUFDUBUUFVB
      VCVDXJEUUFDUQXIEUUFUMXHDEUIRVEVFVGVHVIVIXMUUEXJYIXKUUEXLXKUUEKUUDMUAVJVKV
      IVMYJABEYAYBUUDNLPUUDVBZQXNYGYHVNYIYHXNYGYHVLVFXJXKXLYIVOVPMYPEDYQYNFUUDU
      UHYQVBZYNVBZVQVRYJYKYRFYJEWAUHZXMYIYKYRUMXNUUKYIXIUUKXHXMEVSZVMZVIZXNXMYI
      XJXMVLVIXNYIVLZABEHYQYAYBKLMNPQUAUCUUIVTVRWBYJYMYTXQYNXNXHUUKXLWKZYIYMYTU
      MXNXHUUKUJZXLUJUUPXJUUQXMXLXIUUKXHUULWCZXKXLVLWDXHUUKXLWEWFZABDEFGNLWAYAY
      BOPQRUBWGWHWIWLYJXHUUKXOBUHZYIYCYLUMXNXHYIXHXIXMWJZVIUUNXNUUTYIXJUUQXMUUT
      UURABMEHKLNUAPQUCWMWHZVIUUOABDEFGXOLWAYAYBOPQRUBWGWNYJDWAUHZXQDVAULZUHZXR
      JUHZUJZYIYDYOUMXNUVCYIXIUVCXHXMXIUUKUVCUULDERWOWTVMZVIXNUVGYIXNUVEUVFXJUU
      KXKUVEXMXIUUKXHUULVFXKXLWPFUVDDEMKRUBUAUVDVBZWQWRXNUUPUVFUUSABCDEGJNLOPQR
      STWSWTXAZVIUUOCJDIYNYAYBUVDLXQXRSTUVIUDUUJVTVRWLXBXNXPJUHZXSJUHZXTYFXCXNX
      HUUKUUTUVKUVAUUMUVBABCDEGJXOLOPQRSTWSVRXNXHUVCUVGUVLUVAUVHUVJCJXQDIUVDLXR
      UVISTUDWMXDCJDUEUFLXPXSSTXEXFXG $.
  $}

  ${
    idmatidpmat.t $e |- T = ( N matToPolyMat R ) $.
    idmatidpmat.p $e |- P = ( Poly1 ` R ) $.
    ${
      0mat2pmat.0 $e |- .0. = ( 0g ` ( N Mat R ) ) $.
      0mat2pmat.z $e |- Z = ( 0g ` ( N Mat P ) ) $.
      $( The transformed zero matrix is the zero polynomial matrix.
         (Contributed by AV, 5-Aug-2019.)  (Proof shortened by AV,
         19-Nov-2019.) $)
      0mat2pmat $p |- ( ( R e. Ring /\ N e. Fin ) -> ( T ` .0. ) = Z ) $=
        ( crg wcel cfn wa cmat co cghm cfv cbs eqid wceq mat2pmatghm ancoms syl
        ghmid ) BKLZDMLZNCDBOPZDAOPZQPLZECRFUAUGUFUJUHUHSRZUIABCUISRZDGUHTUKTHU
        ITULTUBUCUHUICEFIJUEUD $.
    $}

    idmatidpmat.1 $e |- .1. = ( 1r ` ( N Mat R ) ) $.
    idmatidpmat.i $e |- I = ( 1r ` ( N Mat P ) ) $.
    $( The transformed identity matrix is the identity polynomial matrix.
       (Contributed by AV, 1-Aug-2019.)  (Proof shortened by AV,
       19-Nov-2019.) $)
    idmatidpmat $p |- ( ( R e. Ring /\ N e. Fin ) -> ( T ` .1. ) = I ) $=
      ( cfn wcel crg cfv wceq cmat co cur cbs eqid wa mat2pmat1 fveq2i 3eqtr4g
      ancoms ) FKLZBMLZDCNZEOUFUGUAFBPQZRNZCNFAPQZRNUHEUIUISNZUKABCUKSNZFGUITUL
      THUKTUMTUBDUJCIUCJUDUE $.
  $}

  ${
    $d R x y $.
    $( The transformed empty set as matrix of dimenson 0 is the empty set (i.e.
       the polynomial matrix of dimension 0).  (Contributed by AV,
       4-Aug-2019.) $)
    d0mat2pmat $p |- ( R e. V -> ( ( (/) matToPolyMat R ) ` (/) ) = (/) ) $=
      ( vx vy wcel c0 cmat2pmat co cfv cv cpl1 cascl cfn cmat cbs wceq 0fin a1i
      cmpt2 eqid id csn 0ex snid mat0dimbas0 syl5eleqr mat2pmatval mpt20 syl6eq
      syl3anc ) ABEZFFAGHZIZCDFFCJDJFHAKIZLIZIZSZFUKFMEZUKFFANHZOIZEUMUQPURUKQR
      UKUAUKFFUBUTFUCUDABUEUFCDUSUTUNAUOULFFBULTUSTUTTUNTUOTUGUJCDFUPUHUI $.
  $}

  ${
    $d A i j $.  $d M i j $.  $d N i j $.  $d R i j $.  $d S i j $.
    $d V i j $.
    d1mat2pmat.t $e |- T = ( N matToPolyMat R ) $.
    d1mat2pmat.b $e |- B = ( Base ` ( N Mat R ) ) $.
    d1mat2pmat.p $e |- P = ( Poly1 ` R ) $.
    d1mat2pmat.s $e |- S = ( algSc ` P ) $.
    $( The transformation of a matrix of dimenson 1.  (Contributed by AV,
       4-Aug-2019.) $)
    d1mat2pmat $p |- ( ( R e. V /\ ( N = { A } /\ A e. V ) /\ M e. B )
                  -> ( T ` M ) = { <. <. A , A >. , ( S ` ( A M A ) ) >. } ) $=
      ( vi vj wcel wceq cfv co cfn csn wa w3a cv cmpt2 snfi eleq1 mpbiri adantr
      cop 3ad2ant2 simp1 simp3 cmat eqid mat2pmatval syl3anc cvv id 3jca adantl
      fvexd oveq1 fveq2d oveq2 mpt2sn syl mpt2eq12 eqeq1d anidms mpbird eqtrd
      wb ) DIPZHAUAZQZAIPZUBZGBPZUCZGFRZNOHHNUDZOUDZGSZERZUEZAAUJAAGSZERZUJUAZV
      THTPZVNVSWAWFQVRVNWJVSVPWJVQVPWJVOTPAUFHVOTUGUHUIUKVNVRVSULVNVRVSUMNOHDUN
      SZBCDEFGHIJWKUOKLMUPUQVTWFWIQZNOVOVOWEUEZWIQZVTVQVQWHURPZUCZWNVRVNWPVSVQW
      PVPVQVQVQWOVQUSZWQVQWGEVBUTVAUKNOAAWEAWCGSZERURWHWMIIWMUOWBAQWDWREWBAWCGV
      CVDWCAQWRWGEWCAAGVEVDVFVGVRVNWLWNVMZVSVPWSVQVPWSVPVPUBWFWMWINOHHVOVOWEVHV
      IVJUIUKVKVL $.
  $}

  ${
    mat2pmatscmxcl.a $e |- A = ( N Mat R ) $.
    mat2pmatscmxcl.k $e |- K = ( Base ` A ) $.
    mat2pmatscmxcl.t $e |- T = ( N matToPolyMat R ) $.
    mat2pmatscmxcl.p $e |- P = ( Poly1 ` R ) $.
    mat2pmatscmxcl.c $e |- C = ( N Mat P ) $.
    mat2pmatscmxcl.b $e |- B = ( Base ` C ) $.
    mat2pmatscmxcl.m $e |- .* = ( .s ` C ) $.
    mat2pmatscmxcl.e $e |- .^ = ( .g ` ( mulGrp ` P ) ) $.
    mat2pmatscmxcl.x $e |- X = ( var1 ` R ) $.
    $( A transformed matrix multiplied with a power of the variable of a
       polynomial is a polynomial matrix.  (Contributed by AV, 6-Nov-2019.)
       (Proof shortened by AV, 28-Nov-2019.) $)
    mat2pmatscmxcl $p |- ( ( ( N e. Fin /\ R e. Ring )
                             /\ ( M e. K /\ L e. NN0 ) )
                          -> ( ( L .^ X ) .* ( T ` M ) ) e. B ) $=
      ( cfn wcel crg wa cn0 co cbs simpll ply1ring ad2antlr cmgp eqid ply1moncl
      cfv ad2ant2l w3a simpl anim2i df-3an sylibr mat2pmatbas0 matvscl syl22anc
      syl ) LUCUDZEUEUDZUFZKIUDZJUGUDZUFZUFZVGDUEUDZJMGUHZDUIUPZUDZKFUPZBUDZVOV
      RHUHBUDVGVHVLUJVHVNVGVLDEQUKULVHVKVQVGVJVPJDEGDUMUPZMQUBVTUNUAVPUNZUOUQVM
      VGVHVJURZVSVMVIVJUFWBVLVJVIVJVKUSUTVGVHVJVAVBAICDEFBKLPNOQRSVCVFCBVODHVPL
      VRWARSTVDVE $.
  $}

  ${
    $d B i j k n $.  $d M i j k n $.  $d N i j k n $.  $d R i j k n $.
    $d T i j n $.
    m2cpm.s $e |- S = ( N ConstPolyMat R ) $.
    m2cpm.t $e |- T = ( N matToPolyMat R ) $.
    m2cpm.a $e |- A = ( N Mat R ) $.
    m2cpm.b $e |- B = ( Base ` A ) $.
    $( The result of a matrix transformation is a constant polynomial matrix.
       (Contributed by AV, 18-Nov-2019.)  (Proof shortened by AV,
       28-Nov-2019.) $)
    m2cpm $p |- ( ( N e. Fin /\ R e. Ring /\ M e. B )
                        -> ( T ` M ) e. S ) $=
      ( vn vi vj vk wcel cfv cv wceq eqid cfn crg w3a co cco1 c0g cn wral cascl
      cpl1 cc0 cif mat2pmatvalel adantr fveq2d fveq1d cn0 cvv cbs simpl2 simprl
      wa cmpt simprr simpl3 matecld jca coe1scl syl eqeq1 ifbid nnnn0 ovex fvex
      adantl ifex a1i fvmptd wn nnne0 neneqd iffalsed ralrimiva ralrimivva cmat
      3eqtrd wb mat2pmatbas cpmatel syld3an3 mpbird ) GUAPZCUBPZFBPZUCZFEQZDPZL
      RZMRZNRZWPUDZUEQZQZCUFQZSZLUGUHZNGUHMGUHZWOXFMNGGWOWSGPZWTGPZVBZVBZXELUGX
      KWRUGPZVBZXCWRWSWTFUDZCUJQZUIQZQZUEQZQWRUKSZXNXDULZXDXMWRXBXRXMXAXQUEXKXA
      XQSXLABXOCXPEFGUBWSWTIJKXOTZXPTZUMUNUOUPXMOWRORZUKSZXNXDULZXTUQXRURXMWMXN
      CUSQZPZVBZXROUQYEVCSXKYHXLXKWMYGWLWMWNXJUTXKABCWSWTYFFGJYFTZKWOXHXIVAWOXH
      XIVDWLWMWNXJVEVFVGUNOXPXOCYFXNXDYAYBYIXDTVHVIYCWRSZYEXTSXMYJYDXSXNXDYCWRU
      KVJVKVOXLWRUQPXKWRVLVOXTURPXMXSXNXDWSWTFVMCUFVNVPVQVRXMXSXNXDXLXSVSXKXLWR
      UKWRVTWAVOWBWFWCWDWLWMWNWPGXOWEUDZUSQZPWQXGWGABYKXOCEFGIJKYAYKTZWHYLYKXOC
      DMNLWPGUBHYAYMYLTWIWJWK $.

    $d B b $.  $d B i j m $.  $d N b $.  $d N m $.  $d R b $.  $d R m $.
    $d S b $.  $d T b $.
    $( The matrix transformation is a function from the matrices to the
       constant polynomial matrices.  (Contributed by AV, 18-Nov-2019.) $)
    m2cpmf $p |- ( ( N e. Fin /\ R e. Ring ) -> T : B --> S ) $=
      ( vm vb vi vj cfn wcel crg wa cv cfv co cpl1 cascl cmpt2 cvv simpl adantr
      jca mpt2exga syl eqid mat2pmatfval m2cpm 3expa fmpt2d ) FOPZCQPZRZKLBMNFF
      MSNSKSZUACUBTZUCTZTZUDZDEUEURUSBPZRUPUPRZVCUEPURVEVDURUPUPUPUQUFZVFUHUGMN
      FFVBOOUIUJMNABUTCVAEKFQHIJUTUKVAUKULUPUQLSZBPVGETDPABCDEVGFGHIJUMUNUO $.

    $( The matrix transformation is a 1-1 function from the matrices to the
       constant polynomial matrices.  (Contributed by AV, 18-Nov-2019.) $)
    m2cpmf1 $p |- ( ( N e. Fin /\ R e. Ring ) -> T : B -1-1-> S ) $=
      ( cfn wcel crg wa cpl1 cfv cmat co wf1 eqid cbs crn wss mat2pmatf1 m2cpmf
      wf frn syl f1ssr syl2anc ) FKLCMLNZBFCOPZQRZUAPZESEUBDUCZBDESABUMULCEUNFH
      IJULTUMTUNTUDUKBDEUFUOABCDEFGHIJUEBDEUGUHBUNDEUIUJ $.

    m2cpmghm.p $e |- P = ( Poly1 ` R ) $.
    m2cpmghm.c $e |- C = ( N Mat P ) $.
    m2cpmghm.u $e |- U = ( C |`s S ) $.
    $( The transformation of matrices into constant polynomial matrices is an
       additive group homomorphism.  (Contributed by AV, 18-Nov-2019.) $)
    m2cpmghm $p |- ( ( N e. Fin /\ R e. Ring )
                            -> T e. ( A GrpHom U ) ) $=
      ( wcel wa cghm co cfn crg cbs cfv mat2pmatghm csubg crn wss cpmatsubgpmat
      eqid wb wf m2cpmf frn syl resghm2b bicomd syl2anc mpbird ) IUAQEUBQRZGAHS
      TQZGACSTQZABCDEGCUCUDZIKLMNOVCUJUEUTFCUFUDQZGUGFUHZVAVBUKCDEFIJNOUIUTBFGU
      LVEABEFGIJKLMUMBFGUNUOVDVERVBVAACHGFPUPUQURUS $.

    $( The transformation of matrices into constant polynomial matrices is a
       homomorphism of multiplicative monoids.  (Contributed by AV,
       18-Nov-2019.) $)
    m2cpmmhm $p |- ( ( N e. Fin /\ R e. CRing )
                        -> T e. ( ( mulGrp ` A ) MndHom ( mulGrp ` U ) ) ) $=
      ( wcel cfv co cvv cfn ccrg cmgp cmhm cbs eqid mat2pmatmhm csubmnd crn wss
      wa wb crg csubrg crngring anim2i cpmatsrgpmat subrgsubm 3syl m2cpmf cress
      wf frn wceq cmat ovex eqeltri ccpmat mgpress mp2an resmhm2b syl2anc mpbid
      eqcomi ) IUAQZEUBQZUKZGAUCRZCUCRZUDSQZGVRHUCRZUDSQZABCDEGCUERZIKLMNOWCUFU
      GVQFVSUHRQZGUIFUJZVTWBULVQVOEUMQZUKZFCUNRQWDVPWFVOEUOUPZCDEFIJNOUQFCVSVSU
      FZURUSVQWGBFGVBWEWHABEFGIJKLMUTBFGVCUSVRVSWAGFVSFVASZWACTQFTQWJWAVDCIDVES
      TOIDVEVFVGFIEVHSTJIEVHVFVGFCHVSTTPWIVIVJVNVKVLVM $.

    $( The transformation of matrices into constant polynomial matrices is a
       ring homomorphism.  (Contributed by AV, 18-Nov-2019.) $)
    m2cpmrhm $p |- ( ( N e. Fin /\ R e. CRing )
                            -> T e. ( A RingHom U ) ) $=
      ( wcel wa crg co cfn ccrg cghm cmgp cfv crh crngring matring cpmatsrgpmat
      cmhm sylan2 csubrg subrgring syl m2cpmghm m2cpmmhm eqid isrhm sylanbrc
      jca ) IUAQZEUBQZRZASQZHSQZRGAHUCTQZGAUDUEZHUDUEZUJTQZRGAHUFTQVCVDVEVBVAES
      QZVDEUGZAEILUHUKVCFCULUEQZVEVBVAVJVLVKCDEFIJNOUIUKFCHPUMUNUTVCVFVIVBVAVJV
      FVKABCDEFGHIJKLMNOPUOUKABCDEFGHIJKLMNOPUPUTAHGVGVHVGUQVHUQURUS $.
  $}

  ${
    m2pmfzmap.a $e |- A = ( N Mat R ) $.
    m2pmfzmap.b $e |- B = ( Base ` A ) $.
    m2pmfzmap.p $e |- P = ( Poly1 ` R ) $.
    m2pmfzmap.y $e |- Y = ( N Mat P ) $.
    m2pmfzmap.t $e |- T = ( N matToPolyMat R ) $.
    $( The transformed values of a (finite) mapping of integers to matrices.
       (Contributed by AV, 4-Nov-2019.) $)
    m2pmfzmap $p |- ( ( ( N e. Fin /\ R e. Ring /\ S e. NN0 )
                         /\ ( b e. ( B ^m ( 0 ... S ) ) /\ I e. ( 0 ... S ) ) )
                           -> ( T ` ( b ` I ) ) e. ( Base ` Y ) ) $=
      ( cfn wcel co wa cfv crg cn0 w3a cv cc0 cfz cmap cbs simpl1 simpl2 elmapi
      ffvelrnda adantl mat2pmatbas syl3anc ) HPQZDUAQZEUBQZUCZJUDZBUEEUFRZUGRQZ
      GVAQSZSUPUQGUTTZBQZVDFTIUHTQUPUQURVCUIUPUQURVCUJVCVEUSVBVABGUTUTBVAUKULUM
      ABICDFVDHOKLMNUNUO $.

    $d B i $.  $d M i $.  $d N i $.  $d R i $.  $d Y i $.  $d b i $.  $d i s $.
    m2pmfzmapfsupp.x $e |- X = ( var1 ` R ) $.
    m2pmfzmapfsupp.e $e |- .^ = ( .g ` ( mulGrp ` P ) ) $.
    m2pmfzgsumcl.m $e |- .x. = ( .s ` Y ) $.
    $( Closure of the sum of scaled transformed matrices.  (Contributed by AV,
       4-Nov-2019.)  (Proof shortened by AV, 28-Nov-2019.) $)
    m2pmfzgsumcl $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                               /\ ( s e. NN0 /\ b e. ( B ^m ( 0 ... s ) ) ) )
                           -> ( Y gsum ( i e. ( 0 ... s )
              |-> ( ( i .^ X ) .x. ( T ` ( b ` i ) ) ) ) ) e. ( Base ` Y ) ) $=
      ( cfn wcel ccrg w3a cv cn0 cc0 cfz co cmap cbs cfv eqid ccmn crg crngring
      ply1ring syl matring sylan2 ringcmn 3adant3 adantr fzfid simpll1 3ad2ant2
      ad2antrr elfznn0 cmgp ply1moncl syl2an anim2i simpl anim12i df-3an sylibr
      wa simprr anim1i m2pmfzmap syl2anc matvscl syl22anc ralrimiva gsummptcl )
      JUCUDZDUEUDZIBUDZUFZMUGZUHUDZNUGZBUIWLUJUKZULUKUDZVSZVSZLUMUNZGLWOGUGZKHU
      KZWTWNUNEUNZFUKZWSUOZWKLUPUDZWQWHWIXEWJWHWIVSLUQUDZXEWIWHCUQUDZXFWIDUQUDZ
      XGDURZCDQUSUTZLCJRVAVBLVCUTVDVEWRUIWLVFWRXCWSUDZGWOWRWTWOUDZVSZWHXGXACUMU
      NZUDZXBWSUDZXKWHWIWJWQXLVGWKXGWQXLWIWHXGWJXJVHVIWRXHWTUHUDXOXLWKXHWQWIWHX
      HWJXIVHVEWTWLVJXNWTCDHCVKUNZKQTXQUOUAXNUOZVLVMXMWHXHWMUFZWPXLVSXPWRXSXLWR
      WHXHVSZWMVSXSWKXTWQWMWHWIXTWJWIXHWHXIVNVDWMWPVOVPWHXHWMVQVRVEWRWPXLWKWMWP
      VTWAABCDWLEWTJLNOPQRSWBWCLWSXACFXNJXBXRRXDUBWDWEWFWG $.
  $}

  ${
    $d N m n r x y $.  $d R m n r x y $.  $d S m n r $.  $d V n r $.
    cpm2mfval.i $e |- I = ( N cPolyMatToMat R ) $.
    cpm2mfval.s $e |- S = ( N ConstPolyMat R ) $.
    $( Value of the inverse matrix transformation.  (Contributed by AV,
       14-Dec-2019.) $)
    cpm2mfval $p |- ( ( N e. Fin /\ R e. V )
                -> I = ( m e. S |-> ( x e. N , y e. N
                                      |-> ( ( coe1 ` ( x m y ) ) ` 0 ) ) ) ) $=
      ( vn vr cfn wcel ccpmat2mat co cv cvv ccpmat wceq cc0 cco1 cfv cmpt2 cmpt
      wa df-cpmat2mat a1i oveq12 syl6eqr simpl eqidd mpt2eq123dv mpteq12dv elex
      adantl ovex eqeltri mptexg mp1i ovmpt2d syl5eq ) GMNZCHNZUFZFGCOPEDABGGUA
      AQBQEQPUBUCUCZUDZUEZIVEKLGCMREKQZLQZSPZABVIVIVFUDZUEZVHOROKLMRVMUDTVEABEK
      LUGUHVIGTZVJCTZUFZVMVHTVEVPEVKVLDVGVPVKGCSPZDVIGVJCSUIJUJVPABVIVIVFGGVFVN
      VOUKZVRVPVFULUMUNUPVCVDUKVDCRNVCCHUOUPDRNVHRNVEDVQRJGCSUQUREDVGRUSUTVAVB
      $.

    $d M m x y $.  $d V m $.
    $( The result of an inverse matrix transformation.  (Contributed by AV,
       12-Nov-2019.)  (Revised by AV, 14-Dec-2019.) $)
    cpm2mval $p |- ( ( N e. Fin /\ R e. V /\ M e. S )
                     -> ( I ` M ) = ( x e. N , y e. N
                                      |-> ( ( coe1 ` ( x M y ) ) ` 0 ) ) ) $=
      ( vm cfn wcel cc0 cv co cco1 cfv cmpt2 wceq w3a cvv cmpt cpm2mfval fveq2d
      3adant3 oveq fveq1d mpt2eq3dv adantl simp3 simp1 mpt2exga syl2anc fvmptd
      ) GLMZCHMZFDMZUAZKFABGGNAOZBOZKOZPZQRZRZSZABGGNUTVAFPZQRZRZSZDEUBUPUQEKDV
      FUCTURABCDKEGHIJUDUFVBFTZVFVJTUSVKABGGVEVIVKNVDVHVKVCVGQUTVAVBFUGUEUHUIUJ
      UPUQURUKUSUPUPVJUBMUPUQURULZVLABGGVILLUMUNUO $.

    $d S x y $.  $d V x y $.  $d X x y $.  $d Y x y $.
    $( A (matrix) element of the result of an inverse matrix transformation.
       (Contributed by AV, 14-Dec-2019.) $)
    cpm2mvalel $p |- ( ( ( N e. Fin /\ R e. V /\ M e. S )
                              /\ ( X e. N /\ Y e. N ) )
                       -> ( X ( I ` M ) Y ) = ( ( coe1 ` ( X M Y ) ) ` 0 ) ) $=
      ( vx vy wcel wa cc0 cv co cco1 cfv wceq cfn w3a cvv cmpt2 cpm2mval adantr
      oveq12 fveq2d fveq1d adantl simprl simprr fvexd ovmpt2d ) EUAMAFMDBMUBZGE
      MZHEMZNZNZKLGHEEOKPZLPZDQZRSZSZOGHDQZRSZSZDCSZUCUOVHKLEEVDUDTURKLABCDEFIJ
      UEUFUTGTVAHTNZVDVGTUSVIOVCVFVIVBVERUTGVAHDUGUHUIUJUOUPUQUKUOUPUQULUSOVFUM
      UN $.
  $}

  ${
    $d K m $.  $d N m x y $.  $d R m x y $.  $d S m x y $.
    cpm2mf.a $e |- A = ( N Mat R ) $.
    cpm2mf.k $e |- K = ( Base ` A ) $.
    cpm2mf.s $e |- S = ( N ConstPolyMat R ) $.
    cpm2mf.i $e |- I = ( N cPolyMatToMat R ) $.
    $( The inverse matrix transformation is a function from the constant
       polynomial matrices to the matrices over the base ring of the
       polynomials.  (Contributed by AV, 24-Nov-2019.)  (Revised by AV,
       15-Dec-2019.) $)
    cpm2mf $p |- ( ( N e. Fin /\ R e. Ring ) -> I : S --> K ) $=
      ( vm vx vy wcel crg cc0 cv cfv cbs eqid wa wf co cco1 cmpt2 simpll simplr
      cfn cmpt w3a cpl1 cn0 cmat simp2 simp3 cpmatpmat 3expa matecld coe1fvalcl
      3ad2ant1 0nn0 sylancl matbas2d fmptd cpm2mfval feq1d mpbird ) FUHNZBONZUA
      ZCEDUBCEKCLMFFPLQZMQZKQZUCZUDRZRZUEZUIZUBVJKCVQEVRVJVMCNZUAZLMAEVPBBSRZFO
      GWATZHVHVIVSUFVHVIVSUGVTVKFNZVLFNZUJZVNBUKRZSRZNPULNVPWANWEFWFUMUCZWHSRZW
      FVKVLWGVMFWHTZWGTZWITZVTWCWDUNVTWCWDUOVTWCVMWINZWDVHVIVSWMWIWHWFBCVMFOIWF
      TZWJWLUPUQUTURVAVOWGWFBVNWAPVOTWKWNWBUSVBVCVRTVDVJCEDVRLMBCKDFOJIVEVFVG
      $.
  $}

  ${
    $d K i j x y $.  $d M i j x y $.  $d N i j x y $.  $d R i j x y $.
    $d T x y $.
    m2cpminvid.i $e |- I = ( N cPolyMatToMat R ) $.
    m2cpminvid.a $e |- A = ( N Mat R ) $.
    m2cpminvid.k $e |- K = ( Base ` A ) $.
    m2cpminvid.t $e |- T = ( N matToPolyMat R ) $.
    $( The inverse transformation applied to the transformation of a matrix
       over a ring R results in the matrix itself.  (Contributed by AV,
       12-Nov-2019.)  (Revised by AV, 13-Dec-2019.) $)
    m2cpminvid $p |- ( ( N e. Fin /\ R e. Ring /\ M e. K )
                       -> ( I ` ( T ` M ) ) = M ) $=
      ( vx vy vi vj wcel crg cfv co wceq cfn w3a cc0 cv cco1 cmpt2 ccpmat m2cpm
      eqid cpm2mval syld3an3 cascl mat2pmatvalel 3impb fveq2d fveq1d cbs simp12
      cpl1 simp2 simp13 matecld ply1sclid syl2anc eqtr4d mpt2eq3dva wral wa cvv
      simp3 eqidd oveq12 adantl simprl simprr ovexd ovmpt2d ralrimivva wb simp1
      matbas2d eqmat mpbird 3eqtrd ) GUAPZBQPZFEPZUBZFCRZDRZLMGGUCLUDZMUDZWISZU
      ERZRZUFZLMGGWKWLFSZUFZFWEWFWGWIGBUGSZPWJWPTAEBWSCFGWSUIZKIJUHLMBWSDWIGQHW
      TUJUKWHLMGGWOWQWHWKGPZWLGPZUBZWOUCWQBUSRZULRZRZUERZRZWQXCUCWNXGXCWMXFUEWH
      XAXBWMXFTAEXDBXECFGQWKWLKIJXDUIZXEUIZUMUNUOUPXCWFWQBUQRZPWQXHTWEWFWGXAXBU
      RXCAEBWKWLXKFGIXKUIZJWHXAXBUTWHXAXBVJWEWFWGXAXBVAVBZXEXDBXKWQXIXJXLVCVDVE
      VFWHWRFTZNUDZOUDZWRSXOXPFSZTZOGVGNGVGZWHXRNOGGWHXOGPZXPGPZVHVHZLMXOXPGGWQ
      XQWRVIYBWRVKWKXOTWLXPTVHWQXQTYBWKXOWLXPFVLVMWHXTYAVNWHXTYAVOYBXOXPFVPVQVR
      WHWREPWGXNXSVSWHLMAEWQBXKGQIXLJWEWFWGVTWEWFWGUTXMWAWEWFWGVJAEBNOGWRFIJWBV
      DWCWD $.
  $}

  ${
    $d M i j k $.  $d M l n $.  $d N i j k $.  $d N l n $.  $d P l n $.
    $d R i j k $.  $d R l n $.  $d S l n $.  $d i j k x $.  $d j k y $.
    $d k n x $.  $d l n x $.  $d l n y $.
    m2cpminvid2lem.s $e |- S = ( N ConstPolyMat R ) $.
    m2cpminvid2lem.p $e |- P = ( Poly1 ` R ) $.
    $( Lemma for ~ m2cpminvid2 .  (Contributed by AV, 12-Nov-2019.)  (Revised
       by AV, 14-Dec-2019.) $)
    m2cpminvid2lem $p |- ( ( ( N e. Fin /\ R e. Ring /\ M e. S )
                          /\ ( x e. N /\ y e. N ) ) -> A. n e. NN0
            ( ( coe1 ` ( ( algSc ` P ) ` ( ( coe1 ` ( x M y ) ) ` 0 ) ) ) ` n )
            = ( ( coe1 ` ( x M y ) ) ` n ) ) $=
      ( vk wcel cv wa cc0 cfv wceq cn wral eqid vi vj vl cfn crg w3a cco1 cascl
      co csn cun cn0 c0g cbs cpmatelimp 3impia simpr syl adantr wi oveq1 fveq2d
      fveq1d eqeq1d ralbidv oveq2 rspc2v adantl fveq2 cbvralv cif simpl2 simprl
      cmat cmpt cpmatpmat matecld 0nn0 coe1fvalcl sylancl jca coe1scl cvv eqidd
      eqeq1 ifbid nnnn0 fvex ifex a1i fvmptd nnne0 neneqd iffalsed 3eqtrd eqcom
      wn biimpi sylan9eq ex ralimdva imp ply1sclid eqcomd syl5bi mpd wb eqeq12d
      syld c0ex ralunsn mp1i mpbird df-n0 raleqi sylibr ) HUDLZDUELZGELZUFZAMZH
      LZBMZHLZNZNZFMZOYAYCGUIZUGPZPZCUHPZPUGPZPZYGYIPZQZFROUJUKZSZYOFULSYFYQYOF
      RSZOYLPZYJQZNZYFKMZUAMZUBMZGUIZUGPZPZDUMPZQZKRSZUBHSUAHSZUUAXTUUKYEXTGHCV
      NUIZUNPZLZUUKNZUUKXQXRXSUUOUUMUULCDEUAUBKGHIJUULTZUUMTZUOUPUUNUUKUQURUSYF
      UUKUUBYIPZUUHQZKRSZUUAYEUUKUUTUTXTUUJUUTUUBYAUUDGUIZUGPZPZUUHQZKRSUAUBYAY
      CHHUUCYAQZUUIUVDKRUVEUUGUVCUUHUVEUUBUUFUVBUVEUUEUVAUGUUCYAUUDGVAVBVCVDVEU
      UDYCQZUVDUUSKRUVFUVCUURUUHUVFUUBUVBYIUVFUVAYHUGUUDYCYAGVFVBVCVDVEVGVHUUTY
      NUUHQZFRSZYFUUAUUSUVGKFRUUBYGQUURYNUUHUUBYGYIVIVDVJYFUVHUUAYFUVHNZYRYTYFU
      VHYRYFUVGYOFRYFYGRLZNZUVGYOUVKUVGYMUUHYNUVKYMYGUCULUCMZOQZYJUUHVKZVOZPYGO
      QZYJUUHVKZUUHUVKYGYLUVOUVKXRYJDUNPZLZNZYLUVOQYFUVTUVJYFXRUVSXQXRXSYEVLYFY
      HCUNPZLOULLUVSYFUULUUMCYAYCUWAGHUUPUWATZUUQXTYBYDVMYEYDXTYBYDUQVHXTUUNYEU
      UMUULCDEGHUEIJUUPUUQVPUSVQVRYIUWACDYHUVROYITUWBJUVRTZVSVTWAZUSUCYKCDUVRYJ
      UUHJYKTZUWCUUHTWBURVCUVKUCYGUVNUVQULUVOWCUVKUVOWDUVLYGQZUVNUVQQUVKUWFUVMU
      VPYJUUHUVLYGOWEWFVHUVJYGULLYFYGWGVHUVQWCLUVKUVPYJUUHOYIWHDUMWHWIWJWKUVKUV
      PYJUUHUVJUVPWQYFUVJYGOYGWLWMVHWNWOUVGUUHYNQYNUUHWPWRWSWTXAXBUVIUVTYTYFUVT
      UVHUWDUSUVTYJYSYKCDUVRYJJUWEUWCXCXDURWAWTXEXIXFOWCLYQUUAXGYFXJYOYTFROWCUV
      PYMYSYNYJYGOYLVIYGOYIVIXHXKXLXMYOFULYPXNXOXP $.
  $}

  ${
    $d M i j x y $.  $d M n x y $.  $d N i j x y $.  $d N n x y $.
    $d R i j x y $.  $d R n x y $.  $d S i j x y $.  $d S n x y $.
    m2cpminvid2.s $e |- S = ( N ConstPolyMat R ) $.
    m2cpminvid2.i $e |- I = ( N cPolyMatToMat R ) $.
    m2cpminvid2.t $e |- T = ( N matToPolyMat R ) $.
    $( The transformation applied to the inverse transformation of a constant
       polynomial matrix over the ring ` R ` results in the matrix itself.
       (Contributed by AV, 12-Nov-2019.)  (Revised by AV, 14-Dec-2019.) $)
    m2cpminvid2 $p |- ( ( N e. Fin /\ R e. Ring /\ M e. S )
                        -> ( T ` ( I ` M ) ) = M ) $=
      ( vx vy vi vj wcel cfv cc0 co wceq eqid wa vn cfn crg w3a cco1 cmpt2 cpl1
      cv cascl cpm2mval fveq2d cmat cbs simp1 simp2 cn0 simp3 cpmatpmat matecld
      3ad2ant1 coe1fvalcl sylancl matbas2d mat2pmatval syl3anc cvv eqidd oveq12
      0nn0 fveq1d adantl fvexd ovmpt2d mpt2eq3dva wral m2cpminvid2lem wb simpl2
      eqtrd simprl simprr adantr ply1sclcl syl2anc ply1coe1eq bicomd ralrimivva
      mpbird simplr simpr eqeq1d anasss 2ralbidva eqmat 3eqtrd ) FUBNZAUCNZEBNZ
      UDZEDOZCOJKFFPJUHZKUHZEQZUEOZOZUFZCOZLMFFPLUHZMUHZEQZUEOZOZAUGOZUIOZOZUFZ
      EWSWTXFCJKABDEFUCHGUJUKWSXGLMFFXHXIXFQZXNOZUFZXPWSWPWQXFFAULQZUMOZNXGXSRW
      PWQWRUNZWPWQWRUOZWSJKXTYAXEAAUMOZFUCXTSZYDSZYASZYBYCWSXAFNZXBFNZUDZXCXMUM
      OZNZPUPNZXEYDNZYJFXMULQZYOUMOZXMXAXBYKEFYOSZYKSZYPSZWSYHYIUOWSYHYIUQWSYHE
      YPNZYIYPYOXMABEFUCGXMSZYQYSURZUTUSVIXDYKXMAXCYDPXDSZYRUUAYFVAZVBVCLMXTYAX
      MAXNCXFFUCIYEYGUUAXNSZVDVEWSLMFFXRXOWSXHFNZXIFNZUDZXQXLXNUUHJKXHXIFFXEXLX
      FVFUUHXFVGXAXHRXBXIRTZXEXLRUUHUUIPXDXKUUIXCXJUEXAXHXBXIEVHUKVJVKWSUUFUUGU
      OZWSUUFUUGUQZUUHPXKVLVMUKVNVSWSXPERZXAXBXPQZXCRZKFVOJFVOZWSUUOXEXNOZXCRZK
      FVOJFVOWSUUQJKFFWSYHYITZTZUUQUAUHZUUPUEOZOUUTXDORUAUPVOZJKXMABUAEFGUUAVPU
      USWQUUPYKNZYLUUQUVBVQWPWQWRUURVRZUUSWQYNUVCUVDUUSYLYMYNUUSYOYPXMXAXBYKEFY
      QYRYSWSYHYIVTWSYHYIWAWSYTUURUUBWBUSZVIUUDVBXNYKXMAXEYDUUAUUEYFYRWCWDUVEWQ
      UVCYLUDUVBUUQUVAYKXDXMAUAUUPXCUUAYRUVASUUCWEWFVEWHWGWSUUNUUQJKFFWSYHYIUUN
      UUQVQWSYHTZYITZUUMUUPXCUVGLMXAXBFFXOUUPXPVFUVGXPVGXHXARXIXBRTZXOUUPRUVGUV
      HXLXEXNUVHPXKXDUVHXJXCUEXHXAXIXBEVHUKVJUKVKWSYHYIWIUVFYIWJUVGXEXNVLVMWKWL
      WMWHWSXPYPNYTUULUUOVQWSLMYOYPXOXMYKFVFYQYRYSYBWSAUGVLUUHWQXLYDNZXOYKNWSUU
      FWQUUGYCUTUUHXJYKNYMUVIUUHYOYPXMXHXIYKEFYQYRYSUUJUUKWSUUFYTUUGUUBUTUSVIXK
      YKXMAXJYDPXKSYRUUAYFVAVBXNYKXMAXLYDUUAUUEYFYRWCWDVCUUBYOYPXMJKFXPEYQYSWNW
      DWHWO $.
  $}

  ${
    $d K c m $.  $d K x $.  $d N c i j m $.  $d N c i j x $.  $d R c i j m $.
    $d R x $.  $d S c i j m x $.  $d S x $.  $d T c x $.
    m2cpmfo.s $e |- S = ( N ConstPolyMat R ) $.
    m2cpmfo.t $e |- T = ( N matToPolyMat R ) $.
    m2cpmfo.a $e |- A = ( N Mat R ) $.
    m2cpmfo.k $e |- K = ( Base ` A ) $.
    $( The matrix transformation is a function from the matrices onto the
       constant polynomial matrices.  (Contributed by AV, 19-Nov-2019.)  (Proof
       shortened by AV, 28-Nov-2019.) $)
    m2cpmfo $p |- ( ( N e. Fin /\ R e. Ring ) -> T : K -onto-> S ) $=
      ( vx vc vm vi vj wcel cv cfv wceq eqid cfn crg wa wf wrex wral wfo m2cpmf
      cc0 cco1 cmpt2 cmpt cbs simplll simpllr w3a cpl1 cn0 cmat simp2 cpmatpmat
      co simp3 3expa adantlr 3ad2ant1 matecld coe1fvalcl sylancl matbas2d fmptd
      simpr ffvelrnd wb fveq2 eqeq2d adantl ccpmat2mat cpm2mfval fveq1d 3adant3
      0nn0 eqcomd fveq2d m2cpminvid2 eqtrd rspcedvd ralrimiva dffo3 sylanbrc )
      FUAPZBUBPZUCZECDUDKQZLQZDRZSZLEUEZKCUFECDUGAEBCDFGHIJUHWMWRKCWMWNCPZUCZWQ
      WNWNMCNOFFUINQZOQZMQZVBZUJRZRZUKZULZRZDRZSZLXIEWTCEWNXHWTMCXGEXHWTXCCPZUC
      ZNOAEXFBBUMRZFUBIXNTZJWKWLWSXLUNWKWLWSXLUOXMXAFPZXBFPZUPZXDBUQRZUMRZPUIUR
      PXFXNPXRFXSUSVBZYAUMRZXSXAXBXTXCFYATZXTTZYBTZXMXPXQUTXMXPXQVCXMXPXCYBPZXQ
      WMXLYFWSWKWLXLYFYBYAXSBCXCFUBGXSTZYCYEVAVDVEVFVGWBXEXTXSBXDXNUIXETYDYGXOV
      HVIVJXHTVKWMWSVLVMWOXISZWQXKVNWTYHWPXJWNWOXIDVOVPVQWTXJWNWKWLWSXJWNSWKWLW
      SUPZXJWNFBVRVBZRZDRWNYIXIYKDYIYKXIWKWLYKXISWSWMWNYJXHNOBCMYJFUBYJTZGVSVTW
      AWCWDBCDYJWNFGYLHWEWFVDWCWGWHLKECDWIWJ $.

    $( The matrix transformation is a 1-1 function from the matrices onto the
       constant polynomial matrices.  (Contributed by AV, 19-Nov-2019.) $)
    m2cpmf1o $p |- ( ( N e. Fin /\ R e. Ring ) -> T : K -1-1-onto-> S ) $=
      ( cfn wcel crg wa wf1 wfo wf1o m2cpmf1 m2cpmfo df-f1o sylanbrc ) FKLBMLNE
      CDOECDPECDQAEBCDFGHIJRABCDEFGHIJSECDTUA $.

    $d C m $.
    m2cpmrngiso.p $e |- P = ( Poly1 ` R ) $.
    m2cpmrngiso.c $e |- C = ( N Mat P ) $.
    m2cpmrngiso.u $e |- U = ( C |`s S ) $.
    $( The transformation of matrices into constant polynomial matrices is a
       ring isomorphism.  (Contributed by AV, 19-Nov-2019.) $)
    m2cpmrngiso $p |- ( ( N e. Fin /\ R e. CRing )
                        -> T e. ( A RingIso U ) ) $=
      ( wcel wa crg syl vm cfn ccrg crs co crh cbs cfv m2cpmrhm crngring anim2i
      wf1o m2cpmf1o wceq wb wss cv eqid cpmatpmat 3expia ressbas2 eqcomd f1oeq3
      ssrdv mpbird cgrp matring csubg cpmatsubgpmat subggrp 3syl isrim syl2anc
      mpbir2and ) IUBQZDUCQZRZFAGUDUEQZFAGUFUEQZHGUGUHZFULZAHBCDEFGIJKLMNOPUIVQ
      VODSQZRZWAVPWBVODUJUKZWCWAHEFULZADEFHIJKLMUMWCVTEUNWAWEUOWCEVTWCEBUGUHZUP
      EVTUNWCUAEWFVOWBUAUQZEQWGWFQWFBCDEWGISJNOWFURZUSUTVDEWFGBPWHVATVBVTEHFVCT
      VETVQASQZGVFQZVRVSWARUOVQWCWIWDADILVGTVQWCEBVHUHQWJWDBCDEIJNOVIEBGPVJVKHV
      TAGFSVFMVTURVLVMVN $.
  $}

  ${
    matcpmric.a $e |- A = ( N Mat R ) $.
    matcpmric.p $e |- P = ( Poly1 ` R ) $.
    matcpmric.c $e |- C = ( N Mat P ) $.
    matcpmric.s $e |- S = ( N ConstPolyMat R ) $.
    matcpmric.u $e |- U = ( C |`s S ) $.
    $( The ring of matrices over a commutative ring is isomorphic to the ring
       of scalar matrices over the same ring.  (Contributed by AV,
       30-Dec-2019.) $)
    matcpmric $p |- ( ( N e. Fin /\ R e. CRing ) -> A ~=r U ) $=
      ( cfn wcel ccrg wa crs co c0 eqid wne cric wbr cmat2pmat m2cpmrngiso ne0i
      cbs cfv syl brric sylibr ) GMNDONPZAFQRZSUAZAFUBUCULGDUDRZUMNUNABCDEUOFAU
      GUHZGKUOTHUPTIJLUEUMUOUFUIAFUJUK $.
  $}

  ${
    $d I k $.  $d I s $.  $d K k $.  $d N k $.  $d N s $.  $d R k $.  $d R s $.
    $d S s $.  $d T k $.  $d T s $.
    m2cpminv.a $e |- A = ( N Mat R ) $.
    m2cpminv.k $e |- K = ( Base ` A ) $.
    m2cpminv.s $e |- S = ( N ConstPolyMat R ) $.
    m2cpminv.i $e |- I = ( N cPolyMatToMat R ) $.
    m2cpminv.t $e |- T = ( N matToPolyMat R ) $.
    $( The inverse matrix transformation is a 1-1 function from the constant
       polynomial matrices onto the matrices over the base ring of the
       polynomials.  (Contributed by AV, 27-Nov-2019.)  (Revised by AV,
       15-Dec-2019.) $)
    m2cpminv $p |- ( ( N e. Fin /\ R e. Ring )
                     -> ( I : S -1-1-onto-> K /\ `' I = T ) ) $=
      ( vs vk wcel wceq cv cfv 3expa ralrimiva cfn crg wa wf1o ccnv m2cpminvid2
      cpm2mf m2cpmf m2cpminvid 2fvidf1od 2fvidinvd jca ) GUAOZBUBOZUCZCFEUDEUED
      PUOCFEDMNABCEFGHIJKUGZAFBCDGJLHIUHZUOMQZERDRURPZMCUMUNURCOUSBCDEURGJKLUFS
      TZUONQZDRERVAPZNFUMUNVAFOVBABDEFVAGKHILUISTZUJUOCFEDMNUPUQUTVCUKUL $.
  $}

  ${
    m2cpminv0.a $e |- A = ( N Mat R ) $.
    m2cpminv0.i $e |- I = ( N cPolyMatToMat R ) $.
    m2cpminv0.p $e |- P = ( Poly1 ` R ) $.
    m2cpminv0.c $e |- C = ( N Mat P ) $.
    m2cpminv0.0 $e |- .0. = ( 0g ` A ) $.
    m2cpminv0.z $e |- Z = ( 0g ` C ) $.
    $( The inverse matrix transformation applied to the zero polynomial matrix
       results in the zero of the matrices over the base ring of the
       polynomials.  (Contributed by AV, 24-Nov-2019.)  (Revised by AV,
       15-Dec-2019.) $)
    m2cpminv0 $p |- ( ( N e. Fin /\ R e. Ring ) -> ( I ` Z ) = .0. ) $=
      ( wcel crg cfv co wceq c0g cfn cmat2pmat eqid cmat fveq2i eqtri 0mat2pmat
      wa ancoms eqcomd fveq2d cbs matring ring0cl syl m2cpminvid mpd3an3 eqtrd
      ) FUAOZDPOZUHZHEQGFDUBRZQZEQZGVAHVCEVAVCHUTUSVCHSCDVBFGHVBUCZKGATQFDUDRZT
      QMAVFTIUEUFHBTQFCUDRZTQNBVGTLUEUFUGUIUJUKUSUTGAULQZOZVDGSVAAPOVIADFIUMVHA
      GVHUCZMUNUOADVBEVHGFJIVJVEUPUQUR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Collecting coefficients of polynomial matrices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
In this section, the decomposition of polynomial matrices into (polynomial)
multiples of constant (polynomial) matrices is prepared by collecting the
coefficients of a polynomial matrix which belong to the same power of the
polynomial variable.  Such a collection is given by the function` decompPMat `
( see ~ df-decpmat ), which maps a polynomial matrix ` M ` to a constant matrix
consisting of the coefficients of the scaled monomials ` ( ( c `` k )
.* ( k .^ X ) ) ` , i.e. the coefficients belonging to the k-th power of the
polynomial variable ` X ` , of each entry in the polynomial matrix ` M `.  The
resulting decomposition is provided by theorem ~ pmatcollpw .
$)

  $c decompPMat $.

  $( Extend class notation to include the decomposition of polynomial
     matrices. $)
  cdecpmat $a class decompPMat $.

  ${
    $d i j k m $.
    $( Define the decomposition of polynomial matrices.  This function collects
       the coefficients of a polynomial matrix ` m ` belong to the ` k ` th
       power of the polynomial variable for each entry of ` m ` .  (Contributed
       by AV, 2-Dec-2019.) $)
    df-decpmat $a |- decompPMat = ( m e. _V , k e. NN0
                                    |-> ( i e. dom dom m , j e. dom dom m
                                        |-> ( ( coe1 ` ( i m j ) ) ` k ) ) ) $.
  $}

  ${
    $d K i j k m $.  $d M i j k m $.  $d V k m $.
    $( The matrix consisting of the coefficients in the polynomial entries of a
       polynomial matrix for the same power, most general version.
       (Contributed by AV, 2-Dec-2019.) $)
    decpmatval0 $p |- ( ( M e. V /\ K e. NN0 )
                      -> ( M decompPMat K ) = ( i e. dom dom M , j e. dom dom M
                                        |-> ( ( coe1 ` ( i M j ) ) ` K ) ) ) $=
      ( vm vk wcel cn0 wa cvv cv cdm co cco1 cfv cmpt2 cdecpmat wceq adantr a1i
      df-decpmat dmeq dmeqd oveq fveq2d simpr mpt2eq123dv adantl elex dmexg syl
      fveq12d jca mpt2exga ovmpt2d ) DEHZCIHZJZFGDCKIABFLZMZMZVBGLZALZBLZUTNZOP
      ZPZQZABDMZMZVKCVDVEDNZOPZPZQZRKRFGKIVIQSUSABGFUBUAUTDSZVCCSZJZVIVOSUSVRAB
      VBVBVHVKVKVNVRVAVJVPVAVJSVQUTDUCTUDZVSVRVCCVGVMVPVGVMSVQVPVFVLOVDVEUTDUEU
      FTVPVQUGUMUHUIUQDKHURDEUJTUQURUGUSVKKHZVTJZVOKHUQWAURUQVTVTUQVJKHVTDEUKVJ
      KUKULZWBUNTABVKVKVNKKUOULUP $.
  $}

  ${
    $d B i j $.  $d K i j $.  $d M i j $.
    decpmatval.a $e |- A = ( N Mat R ) $.
    decpmatval.b $e |- B = ( Base ` A ) $.
    $( The matrix consisting of the coefficients in the polynomial entries of a
       polynomial matrix for the same power, general version for arbitrary
       matrices.  (Contributed by AV, 28-Sep-2019.)  (Revised by AV,
       2-Dec-2019.) $)
    decpmatval $p |- ( ( M e. B /\ K e. NN0 )
                 -> ( M decompPMat K )
                    = ( i e. N , j e. N |-> ( ( coe1 ` ( i M j ) ) ` K ) ) ) $=
      ( wcel cn0 wa cdecpmat co cdm cv cco1 cfv cmpt2 decpmatval0 wceq cbs cmap
      cxp eqid matbas2i elmapi fdm dmeqd dmxpid syl6eq adantr eqidd mpt2eq123dv
      wf 3syl eqtrd ) GBKZFLKZMZGFNODEGPZPZVCFDQEQGORSSZTDEHHVDTDEFGBUAVADEVCVC
      VDHHVDUSVCHUBZUTUSGCUCSZHHUEZUDOKVGVFGUPZVEABCVFGHIVFUFJUGGVFVGUHVHVCVGPH
      VHVBVGVGVFGUIUJHUKULUQUMZVIVAVDUNUOUR $.
  $}

  ${
    $d B i j $.  $d K i j $.  $d M i j $.  $d N i j $.  $d R i j $.
    $d V i j $.
    decpmate.p $e |- P = ( Poly1 ` R ) $.
    decpmate.c $e |- C = ( N Mat P ) $.
    decpmate.b $e |- B = ( Base ` C ) $.
    ${
      $d I i j $.  $d J i j $.
      $( An entry of the matrix consisting of the coefficients in the entries
         of a polynomial matrix is the corresponding coefficient in the
         polynomial entry of the given matrix.  (Contributed by AV,
         28-Sep-2019.)  (Revised by AV, 2-Dec-2019.) $)
      decpmate $p |- ( ( ( R e. V /\ M e. B /\ K e. NN0 )
                       /\ ( I e. N /\ J e. N ) )
              -> ( I ( M decompPMat K ) J ) = ( ( coe1 ` ( I M J ) ) ` K ) ) $=
        ( vi vj wcel wa co cfv wceq cn0 w3a cv cco1 cdecpmat decpmatval 3adant1
        cmpt2 adantr oveq12 fveq2d fveq1d adantl simprl simprr fvexd ovmpt2d
        cvv ) DJPZHAPZGUAPZUBZEIPZFIPZQZQZNOEFIIGNUCZOUCZHRZUDSZSZGEFHRZUDSZSZH
        GUERZURVBVONOIIVKUHTZVEUTVAVPUSBACNOGHILMUFUGUIVGETVHFTQZVKVNTVFVQGVJVM
        VQVIVLUDVGEVHFHUJUKULUMVBVCVDUNVBVCVDUOVFGVMUPUQ $.
    $}

    decpmatcl.a $e |- A = ( N Mat R ) $.
    ${
      decpmatcl.d $e |- D = ( Base ` A ) $.
      $( Closure of the decomposition of a polynomial matrix:  The matrix
         consisting of the coefficients in the polynomial entries of a
         polynomial matrix for the same power is a matrix.  (Contributed by AV,
         28-Sep-2019.)  (Revised by AV, 2-Dec-2019.) $)
      decpmatcl $p |- ( ( R e. V /\ M e. B /\ K e. NN0 )
                        -> ( M decompPMat K ) e. D ) $=
        ( vi vj wcel cfv eqid cn0 w3a cdecpmat co cv cco1 cmpt2 wceq decpmatval
        3adant1 cbs cfn cvv matrcl simpld 3ad2ant2 simp1 simp2 3ad2ant1 matecld
        simp3 coe1fvalcl syl2anc matbas2d eqeltrd ) FJRZHBRZGUARZUBZHGUCUDZPQII
        GPUEZQUEZHUDZUFSZSZUGZDVGVHVJVPUHVFCBEPQGHILMUIUJVIPQADVOFFUKSZIJNVQTZO
        VGVFIULRZVHVGVSEUMRCBEIHLMUNUOUPVFVGVHUQVIVKIRZVLIRZUBZVMEUKSZRVHVOVQRW
        BCBEVKVLWCHILWCTZMVIVTWAURVIVTWAVAVIVTVGWAVFVGVHURUSUTVIVTVHWAVFVGVHVAU
        SVNWCEFVMVQGVNTWDKVRVBVCVDVE $.
    $}

    $d B a b k s x $.  $d M a b k s x $.  $d N a b i j s x $.
    $d R a b k s x $.  $d .0. i j s x $.
    decpmatfsupp.0 $e |- .0. = ( 0g ` A ) $.
    $( The matrix consisting of the coefficients in the polynomial entries of a
       polynomial matrix for the same power is 0 for almost all powers.
       (Contributed by AV, 3-Nov-2019.)  (Revised by AV, 3-Dec-2019.) $)
    decpmataa0 $p |- ( ( R e. Ring /\ M e. B )
          -> E. s e. NN0 A. x e. NN0 ( s < x -> ( M decompPMat x ) = .0. ) ) $=
      ( vi vj wcel wa cn0 va vb crg cv clt wbr cdecpmat wceq wral wrex cco1 cfv
      co wi c0g cfn matrcl simpld adantl simpl simpr eqid pmatcoe1fsupp syl3anc
      cvv cbs decpmatcl 3expa jca matring ring0cl 3syl adantr eqmat syl2anc w3a
      df-3an decpmate sylanbr cmpt2 mat0op syl5eq syl weq eqidd ovmpt2d eqeq12d
      wb fvexd 2ralbidva bitrd imbi2d ralbidva rexbidv mpbird ) FUCRZGCRZSZJUDA
      UDZUEUFZGWSUGUMZIUHZUNZATUIZJTUJWTWSPUDZQUDZGUMUKULULZFUOULZUHZQHUIPHUIZU
      NZATUIZJTUJZWRHUPRZWPWQXMWQXNWPWQXNEVERDCEHGLMUQURUSZWPWQUTZWPWQVAACDEFPQ
      GHXHJKLMXHVBZVCVDWRXDXLJTWRXCXKATWRWSTRZSZXBXJWTXSXBXEXFXAUMZXEXFIUMZUHZQ
      HUIPHUIZXJXSXABVFULZRZIYDRZXBYCWHWPWQXRYEBCDYDEFWSGHUCKLMNYDVBZVGVHWRYFXR
      WRXNWPSZBUCRYFWRXNWPXOXPVIZBFHNVJYDBIYGOVKVLVMBYDFPQHXAINYGVNVOXSYBXIPQHH
      XSXEHRZXFHRZSZSZXTXGYAXHXSWPWQXRVPYLXTXGUHWPWQXRVQCDEFXEXFWSGHUCKLMVRVSYM
      UAUBXEXFHHXHXHIVEYMYHIUAUBHHXHVTZUHXSYHYLWRYHXRYIVMVMYHIBUOULYNOBFUAUBHXH
      NXQWAWBWCYMUAPWDUBQWDSSXHWEYLYJXSYJYKUTUSYLYKXSYJYKVAUSYMFUOWIWFWGWJWKWLW
      MWNWO $.

    $( The mapping to the matrices consisting of the coefficients in the
       polynomial entries of a given matrix for the same power is finitely
       supported.  (Contributed by AV, 5-Oct-2019.)  (Revised by AV,
       3-Dec-2019.) $)
    decpmatfsupp $p |- ( ( R e. Ring /\ M e. B )
                        -> ( k e. NN0 |-> ( M decompPMat k ) ) finSupp .0. ) $=
      ( vx vs wcel wa cvv cdecpmat crg cv co c0g cfv fvex eqeltri a1i cn0 ovexd
      oveq2 decpmataa0 mptnn0fsuppd ) EUAQGBQRZOSGFUBZTUCGOUBZTUCFSIPISQUNIAUDU
      ESNAUDUFUGUHUNUOUIQRGUOTUJUOUPGTUKOABCDEGHIPJKLMNULUM $.
  $}

  ${
    $d A i j $.  $d C i j $.  $d I i j $.  $d K i j k $.  $d N i j k $.
    $d P k $.  $d R i j k $.
    decpmatid.p $e |- P = ( Poly1 ` R ) $.
    decpmatid.c $e |- C = ( N Mat P ) $.
    decpmatid.i $e |- I = ( 1r ` C ) $.
    decpmatid.a $e |- A = ( N Mat R ) $.
    decpmatid.0 $e |- .0. = ( 0g ` A ) $.
    decpmatid.1 $e |- .1. = ( 1r ` A ) $.
    $( The matrix consisting of the coefficients in the polynomial entries of
       the identity matrix is an identity or a zero matrix.  (Contributed by
       AV, 28-Sep-2019.)  (Revised by AV, 2-Dec-2019.) $)
    decpmatid $p |- ( ( N e. Fin /\ R e. Ring /\ K e. NN0 )
                      -> ( I decompPMat K ) = if ( K = 0 , .1. , .0. ) ) $=
      ( vi vj wcel cfv wceq vk cfn crg cn0 w3a cdecpmat co cv cco1 weq cc0 csca
      cmpt2 cur c0g cif cbs pmatring 3adant3 eqid ringidcl syl simp3 decpmatval
      syl2anc simp11 simp12 simp2 pmat1ovd fveq2d fveq1d fvif fveq1i iffv eqtri
      cv1 cmgp cmg cvsca ply1idvr1 3ad2ant2 clmod ply1lmod 0nn0 ply1moncl mpan2
      eqcomd lmodvs1 cvv cmpt ply1sca eqeltrd coe1tm syl3anc eqeq1 ifbid adantl
      a1i fvex ifex fvmptd 3eqtrd csn cxp coe1z fvconst2g eqtrd 3ad2ant1 syl5eq
      ifeq12d mpt2eq3dva wa ifeq1d mpt2eq3dv iftrue adantr mat1 3eqtr4d wn ifid
      iffalse 3simpa mat0op pm2.61ian ) HUBRZDUCRZGUDRZUEZFGUFUGZPQHHGPUHZQUHZF
      UGZUISZSZUMZPQHHPQUJZGUKTZCULSZUNSZDUOSZUPZYTUPZUMZYQEIUPZYHFBUQSZRZYGYIY
      OTYHBUCRZUUFYEYFUUGYGBCDHJKURUSUUEBFUUEUTZLVAVBYEYFYGVCZBUUECPQGFHKUUHVDV
      EYHPQHHYNUUBYHYJHRZYKHRZUEZYNGYPCUNSZCUOSZUPZUISZSZUUBUULGYMUUPUULYLUUOUI
      UULBCDFUUMYJYKHUUNJKUUNUTZUUMUTYEYFYGUUJUUKVFYEYFYGUUJUUKVGYHUUJUUKVHYHUU
      JUUKVCLVIVJVKUULUUQYPGUUMUISZSZGUUNUISZSZUPZUUBUUQGYPUUSUVAUPZSUVCGUUPUVD
      YPUUMUUNUIVLVMYPGUUSUVAVNVOYHUUJUVCUUBTUUKYHYPUUTUUAUVBYTYHUUTGUKDVPSZCVQ
      SZVRSZUGZUISZSGYSUVHCVSSZUGZUISZSUUAYHGUUSUVIYHUUMUVHUIYHUVHUUMYFYEUVHUUM
      TYGCDUVGUVFUVEJUVEUTZUVFUTZUVGUTZVTWAWGVJVKYHGUVIUVLYHUVHUVKUIYHUVKUVHYHC
      WBRZUVHCUQSZRZUVKUVHTYFYEUVPYGCDJWCWAYFYEUVRYGYFUKUDRZUVRWDUVQUKCDUVGUVFU
      VEJUVMUVNUVOUVQUTZWEWFWAUVJYSYRUVQCUVHUVTYRUTUVJUTZYSUTWHVEWGVJVKYHUAGUAU
      HZUKTZYSYTUPZUUAUDUVLWIYHYFYSDUQSZRUVSUVLUAUDUWDWJTYEYFYGVHYHYSDUNSZUWEYH
      YRDUNYHDYRYFYEDYRTZYGCDUCJWKWAZWGVJYFYEUWFUWERYGUWEDUWFUWEUTZUWFUTZVAWAWL
      UVSYHWDWRUAYSUKCDUVJUVGUWEUVFUVEYTYTUTZUWIJUVMUWAUVNUVOWMWNUWBGTZUWDUUATY
      HUWLUWCYQYSYTUWBGUKWOWPWQUUIUUAWIRYHYQYSYTYRUNWSDUOWSZWTWRXAXBYHUVBGUDYTX
      CXDZSZYTYHGUVAUWNYFYEUVAUWNTYGCDYTUUNJUURUWKXEWAVKYHYTWIRZYGUWOYTTUWPYHUW
      MWRUUIUDYTGWIXFVEXGXJXHXIXGXKYQYHUUCUUDTYQYHXLZUUCEUUDUWQPQHHYPYSYTUPZUMP
      QHHYPUWFYTUPZUMZUUCEUWQPQHHUWRUWSUWQYPYSUWFYTUWQYRDUNUWQDYRYHUWGYQUWHWQWG
      VJXMXNUWQPQHHUUBUWRYQUUBUWRTYHYQYPUUAYSYTYQYSYTXOXMXPXNYHEUWTTZYQYEYFUXAY
      GYEYFXLZEAUNSUWTOADUWFPQHYTMUWJUWKXQXIUSWQXRYQEUUDTYHYQUUDEYQEIXOWGXPXGYQ
      XSZYHXLZUUCIUUDUXDPQHHYPYTYTUPZUMPQHHYTUMZUUCIUXDPQHHUXEYTUXEYTTUXDYPYTXT
      WRXNUXDPQHHUUBUXEUXDYPUUAYTYTUXCUUAYTTYHYQYSYTYAXPXMXNUXDUXBIUXFTYHUXBUXC
      YEYFYGYBWQUXBIAUOSUXFNADPQHYTMUWKYCXIVBXRUXCIUUDTYHUXCUUDIYQEIYAWGXPXGYDX
      B $.
  $}

  ${
    $d B k t $.  $d I k l t $.  $d J k l t $.  $d K k l t $.  $d N k t $.
    $d P k t $.  $d R k l t $.  $d U k l t $.  $d W k l t $.
    decpmatmul.p $e |- P = ( Poly1 ` R ) $.
    decpmatmul.c $e |- C = ( N Mat P ) $.
    decpmatmul.b $e |- B = ( Base ` C ) $.
    $( Lemma for ~ decpmatmul .  (Contributed by AV, 20-Oct-2019.)  (Revised by
       AV, 3-Dec-2019.) $)
    decpmatmullem $p |- ( ( ( N e. Fin /\ R e. Ring )
                                   /\ ( U e. B /\ W e. B )
                                   /\ ( I e. N /\ J e. N /\ K e. NN0 ) )
                                 -> ( I ( ( U ( .r ` C ) W ) decompPMat K ) J )
             = ( R gsum ( t e. N |-> ( R gsum ( l e. ( 0 ... K ) |->
                          ( ( ( coe1 ` ( I U t ) ) ` l )
                 ( .r ` R ) ( ( coe1 ` ( t W J ) ) ` ( K - l ) ) ) ) ) ) ) ) $=
      ( wcel crg cfv co cgsu vk cfn wa cn0 w3a cmulr cdecpmat cco1 cmpt cc0 cfz
      cmin wceq simpr 3ad2ant1 pmatring adantr simpl adantl eqid ringcl syl3anc
      cv 3adant3 simp33 3simpa 3ad2ant3 decpmate syl31anc cotp ply1ring matmulr
      cmmul eqcomd sylan2 oveqd cbs cxp cmap wi matbas2 syl6reqr eleq2d biimpcd
      impcom simp31 simp32 mamufv eqtrd fveq2d fveq1d simpl2l matecld ralrimiva
      simpl2r coe1fzgsumd cvv simpl1r oveq2 oveq1 oveq2d mpteq12dv ovexd fvmptd
      coe1mul mpteq2dva 3eqtrd ) JUBPZEQPZUCZFBPZKBPZUCZGJPZHJPZIUDPZUEZUEZGHFK
      CUFRZSZIUGSSZIGHXTSZUHRZRZIDAJGAVCZFSZYEHKSZDUFRZSZUITSZUHRZRZEAJELUJIUKS
      ZLVCZYFUHRRZIYNULSZYGUHRZRZEUFRZSZUIZTSZUIZTSZXRXIXTBPZXPXNXOUCZYAYDUMXJX
      MXIXQXHXIUNUOZXJXMUUEXQXJXMUCCQPZXKXLUUEXJUUHXMCDEJMNUPUQXMXKXJXKXLURUSXM
      XLXJXKXLUNUSBCXSFKOXSUTVAVBVDXJXMXNXOXPVEZXQXJUUFXMXNXOXPVFVGBCDEGHIXTJQM
      NOVHVIXRIYCYKXRYBYJUHXRYBGHFKDJJJVJVMSZSZSYJXRXTUUKGHXRXSUUJFKXJXMXSUUJUM
      ZXQXIXHDQPZUULDEMVKZXHUUMUCZUUJXSCDUUJJQNUUJUTZVLVNVOUOVPVPXRDVQRZJDYHAUU
      JGHJJQFKUUPUUQUTZYHUTZXJXMUUMXQXIUUMXHUUNUSUOZXJXMXHXQXHXIURUOZUVAUVAXJXM
      FUUQJJVRVSSZPZXQXMXJUVCXKXJUVCVTXLXJXKUVCXJBUVBFXIXHUUMBUVBUMUUNUUOUVBCVQ
      RZBCDUUQJQNUURWAZOWBVOWCWDUQWEVDXJXMKUVBPZXQXMXJUVFXLXJUVFVTXKXJXLUVFXJBU
      VBKXJUVBUVDBXIXHUUMUVBUVDUMUUNUVEVOOWBWCWDUSWEVDXJXMXNXOXPWFZXJXMXNXOXPWG
      ZWHWIWJWKXRYLEAJIYIUHRZRZUIZTSUUDXRAUUQDEIYIJMUURUUGUUIXRYIUUQPZAJXRYEJPZ
      UCZUUMYFUUQPZYGUUQPZUVLXRUUMUVMUUTUQUVNCBDGYEUUQFJNUUROXRXNUVMUVGUQXRUVMU
      NZXKXLXJXQUVMWLWMZUVNCBDYEHUUQKJNUUROUVQXRXOUVMUVHUQXKXLXJXQUVMWOWMZUUQDY
      HYFYGUURUUSVAVBWNUVAWPXRUVKUUCETXRAJUVJUUBUVNUAIELUJUAVCZUKSZYOUVTYNULSZY
      QRZYSSZUIZTSZUUBUDUVIWQUVNXIUVOUVPUVIUAUDUWFUIUMXHXIXMXQUVMWRUVRUVSLUUQEY
      HYSUAYFYGDMUUSYSUTUURXEVBUVTIUMZUWFUUBUMUVNUWGUWEUUAETUWGLUWAUWDYMYTUVTIU
      JUKWSUWGUWCYRYOYSUWGUWBYPYQUVTIYNULWTWJXAXBXAUSXRXPUVMUUIUQUVNEUUATXCXDXF
      XAWIXG $.

    $d A i j k $.  $d B i j k $.  $d B i j k t x y $.  $d C i j $.
    $d K i j x y $.  $d N i j k $.  $d N i j x y $.  $d R i j x y $.
    $d U i j x y $.  $d W i j x y $.
    decpmatmul.a $e |- A = ( N Mat R ) $.
    $( The matrix consisting of the coefficients in the polynomial entries of
       the product of two polynomial matrices is a sum of products of the
       matrices consisting of the coefficients in the polynomial entries of the
       polynomial matrices for the same power.  (Contributed by AV,
       21-Oct-2019.)  (Revised by AV, 3-Dec-2019.) $)
    decpmatmul $p |- ( ( R e. Ring /\ ( U e. B /\ W e. B ) /\ K e. NN0 )
                      -> ( ( U ( .r ` C ) W ) decompPMat K )
                         = ( A gsum ( k e. ( 0 ... K ) |-> ( ( U decompPMat k )
                               ( .r ` A ) ( W decompPMat ( K - k ) ) ) ) ) ) $=
      ( wcel wa co cgsu adantr syl vi vj vx vy vt crg cn0 w3a cmulr cfv cc0 cfz
      cdecpmat cv cmin cmpt wceq cmpt2 cvv eqidd oveq1 oveq2 oveqan12d mpteq2dv
      wral oveq2d adantl simprl simprr ovexd ovmpt2d cmmul matrcl simpld anim2i
      cotp cfn ancomd 3adant3 eqid matmulr eqcomd oveqd cbs cxp simpl2l elfznn0
      simp1 cmap 3jca decpmatcl matbas2i simpl2r fznn0sub mamuval mpteq2dva c0g
      eqtrd ccmn ringcmn 3ad2ant1 simpl2 simpr matecld simpl3 syl3anc ralrimiva
      ringcl gsummptcl matbas2d fzfid simpl jca 3ad2ant2 mpt2exga fvexd matgsum
      fsuppmptdm decpmatmullem syl213anc simpll1 simplrl eleq2i biimpi ad2antll
      cco1 matecl coe1fvalcl syl2anc simplrr gsumcom3fi anim1i decpmate oveq12d
      3eqtrd 3eqtr4rd ralrimivva wb pmatring syld3an2 matring eqmat mpbird ) EU
      FOZFBOZJBOZPZHUGOZUHZFJCUIUJZQZHUMQZAGUKHULQZFGUNZUMQZJHUUNUOQZUMQZAUIUJZ
      QZUPZRQZUQZUAUNZUBUNZUULQZUVCUVDUVAQZUQZUBIVEUAIVEZUUIUVGUAUBIIUUIUVCIOZU
      VDIOZPZPZUVCUVDUCUDIIEGUUMEUEIUCUNZUEUNZUUOQZUVNUDUNZUUQQZEUIUJZQZUPZRQZU
      PZRQZURZQEGUUMEUEIUVCUVNUUOQZUVNUVDUUQQZUVRQZUPZRQZUPZRQZUVFUVEUVLUCUDUVC
      UVDIIUWCUWKUWDUSUVLUWDUTUVMUVCUQZUVPUVDUQZPZUWCUWKUQUVLUWNUWBUWJERUWNGUUM
      UWAUWIUWNUVTUWHERUWNUEIUVSUWGUWLUWMUVOUWEUVQUWFUVRUVMUVCUVNUUOVAUVPUVDUVN
      UUQVBVCVDVFVDVFVGUUIUVIUVJVHZUUIUVIUVJVIZUVLEUWJRVJVKUVLUVAUWDUVCUVDUVLUV
      AAGUUMUCUDIIUWAURZUPZRQUWDUVLUUTUWRARUVLGUUMUUSUWQUVLUUNUUMOZPZUUSUUOUUQE
      IIIVPVLQZQUWQUWTUURUXAUUOUUQUWTUXAUURUVLUXAUURUQZUWSUUIUXBUVKUUIIVQOZUUDP
      ZUXBUUDUUGUXDUUHUUDUUGPZUUDUXCUUGUXCUUDUUEUXCUUFUUEUXCDUSOZCBDIFLMVMZVNSV
      OVRZVSZAEUXAIUFNUXAVTZWATSSWBWCUWTEWDUJZIEUVRUCUEUDUXAIIUFUUOUUQUXJUXKVTZ
      UVRVTZUVLUUDUWSUUIUUDUVKUUDUUGUUHWHZSZSZUVLUXCUWSUUIUXCUVKUUIUXCUUDUXIVNS
      ZSZUXRUXRUWTUUOAWDUJZOZUUOUXKIIWEWIQZOUWTUUDUUEUUNUGOZUHZUXTUWTUUDUUEUYBU
      XPUVLUUEUWSUUEUUFUUDUUHUVKWFSUWSUYBUVLUUNHWGZVGWJZABCUXSDEUUNFIUFKLMNUXSV
      TZWKZTAUXSEUXKUUOINUXLUYFWLTUWTUUQUXSOZUUQUYAOUWTUUDUUFUUPUGOZUHZUYHUWTUU
      DUUFUYIUXPUVLUUFUWSUUEUUFUUDUUHUVKWMZSUWSUYIUVLUUNUKHWNZVGWJZABCUXSDEUUPJ
      IUFKLMNUYFWKZTZAUXSEUXKUUQINUXLUYFWLTWOWRWPVFUVLGAUXSEUWAUCUDUUMIUSAWQUJZ
      NUYFUYPVTUXQUVLUKHULVJUXOUWTUCUDAUXSUWAEUXKIUFNUXLUYFUXRUXPUWTUVMIOZUVPIO
      ZUHZUXKUEEIUVSUXLUWTUYQEWSOZUYRUVLUYTUWSUUIUYTUVKUUIUUDUYTUXNEWTTSZSXAUWT
      UYQUXCUYRUXRXAUYSUVSUXKOZUEIUYSUVNIOZPZUUDUVOUXKOUVQUXKOVUBUYSUUDVUCUWTUY
      QUUDUYRUXPXASVUDAUXSEUVMUVNUXKUUOINUXLUYFUWTUYQUYRVUCXBUYSVUCXCZVUDUYCUXT
      UYSUYCVUCUWTUYQUYCUYRUYEXASUYGTXDVUDAUXSEUVNUVPUXKUUQINUXLUYFVUEUWTUYQUYR
      VUCXEUYSUYHVUCUWTUYQUYHUYRUYOXASXDUXKEUVRUVOUVQUXLUXMXHXFXGXIXJUVLGUUMUWR
      USUSUWQUYPUWRVTUVLUKHXKZUWTUXCUXCPZUWQUSOUVLVUGUWSUUIVUGUVKUUGUUDVUGUUHUU
      EVUGUUFUUEUXCUXFPZVUGUXGVUHUXCUXCUXCUXFXLZVUIXMTSXNSSUCUDIIUWAVQVQXOTUVLA
      WQXPXRXQWRWCUVLUVEEUEIEGUUMUUNUVCUVNFQZYFUJZUJZUUPUVNUVDJQZYFUJZUJZUVRQZU
      PRQUPRQZEGUUMEUEIVUPUPZRQZUPZRQUWKUVLUXCUUDUUGUVIUVJUUHUVEVUQUQUXQUXOUUDU
      UGUUHUVKXBUWOUWPUUDUUGUUHUVKXEUEBCDEFUVCUVDHIJGKLMXSXTUVLIUXKUUMUEGEVUPUX
      LVUAUXQVUFUVLVUCUWSPZPZUUDVULUXKOZVUOUXKOZVUPUXKOUUDUUGUUHUVKVVAYAVVBVUJD
      WDUJZOZUYBVVCVVBUVIVUCFCWDUJZOZVVFUUIUVIUVJVVAYBUVLVUCUWSVHZUVLVVHVVAUUIV
      VHUVKUUGUUDVVHUUHUUEVVHUUFUUEVVHBVVGFMYCYDSXNSSCDUVCUVNVVEFILVVEVTZYGXFUW
      SUYBUVLVUCUYDYEVUKVVEDEVUJUXKUUNVUKVTVVJKUXLYHYIVVBVUMVVEOUYIVVDVVBCBDUVN
      UVDVVEJILVVJMVVIUUIUVIUVJVVAYJUVLUUFVVAUYKSXDUWSUYIUVLVUCUYLYEVUNVVEDEVUM
      UXKUUPVUNVTVVJKUXLYHYIUXKEUVRVULVUOUXLUXMXHXFYKUVLVUTUWJERUVLGUUMVUSUWIUW
      TVURUWHERUWTUEIVUPUWGUWTVUCPZUWGVUPVVKUWEVULUWFVUOUVRVVKUYCUVIVUCPUWEVULU
      QUWTUYCVUCUYESUWTUVIVUCUVLUVIUWSUWOSYLBCDEUVCUVNUUNFIUFKLMYMYIVVKUYJVUCUV
      JPUWFVUOUQUWTUYJVUCUYMSVVKUVJVUCUWTUVJVUCUUIUVIUVJUWSYJYLVRBCDEUVNUVDUUPJ
      IUFKLMYMYIYNWBWPVFWPVFYOYPYQUUIUULUXSOZUVAUXSOUVBUVHYRUUDUUKBOZUUGUUHVVLU
      UDUUGVVMUUHUXECUFOZUUEUUFVVMUXEUXDVVNUXHCDEIKLYSTUUDUUEUUFVHUUDUUEUUFVIBC
      UUJFJMUUJVTXHXFVSABCUXSDEHUUKIUFKLMNUYFWKYTUUIUXSGAUUMUUSUYFUUIAUFOZAWSOU
      UIUXDVVOUXIAEINUUATZAWTTUUIUKHXKUUIUUSUXSOZGUUMUUIUWSPZVVOUXTUYHVVQUUIVVO
      UWSVVPSVVRUYCUXTVVRUUDUUEUYBUUIUUDUWSUXNSZUUEUUFUUDUUHUWSWFUWSUYBUUIUYDVG
      WJUYGTVVRUYJUYHVVRUUDUUFUYIVVSUUEUUFUUDUUHUWSWMUWSUYIUUIUYLVGWJUYNTUXSAUU
      RUUOUUQUYFUURVTXHXFXGXIAUXSEUAUBIUULUVANUYFUUBYIUUC $.

    $d A k l n s $.  $d B a b i j n $.  $d B k l n s $.  $d C a b i j n $.
    $d C a b n s $.  $d N a b i j n $.  $d N k l n s $.  $d P k $.
    $d R a b i j n $.  $d R k l n s $.  $d a b i j n x $.  $d a b i j n y $.
    $d k l n s x $.  $d k l n s y $.  $d .0. n s $.  $d .x. l n s $.
    decpmatmulsumfsupp.m $e |- .x. = ( .r ` A ) $.
    decpmatmulsumfsupp.0 $e |- .0. = ( 0g ` A ) $.
    $( Lemma 0 for ~ pm2mpmhm .  (Contributed by AV, 21-Oct-2019.) $)
    decpmatmulsumfsupp $p |- ( ( ( N e. Fin /\ R e. Ring )
                           /\ ( x e. B /\ y e. B ) )
                         -> ( l e. NN0 |-> ( A gsum ( k e. ( 0 ... l )
                |-> ( ( x decompPMat k ) .x. ( y decompPMat ( l - k ) ) ) ) ) )
                            finSupp .0. ) $=
      ( co cn0 vn vs vi vj va vb cfn wcel crg wa cvv cc0 cfz cdecpmat cmin cmpt
      cgsu c0g cfv fvex eqeltri a1i ovexd wceq oveq2 oveq1 oveq2d mpteq12dv clt
      cv wbr wi wral wrex cmulr cco1 cmpt2 simpll simplr pmatring anim1i 3anass
      w3a sylibr eqid ringcl pmatcoe1fsupp syl3anc fveq2d fveq1d eqeq1d rspc2va
      syl expcom adantl 3impib mpt2eq3dva mat0op syl5eq ad3antrrr eqtr4d imim2d
      ralimdva reximdv oveqi mpteq2dv simpllr simpr decpmatmul decpmatval sylan
      ex mpd 3eqtr2d imbi2d ralbidva rexbidv mpbird mptnn0fsuppd ) JUGUHZGUIUHZ
      UJZAVJZDUHZBVJZDUHZUJZUJZUAUKCIULLVJZUMSZYCIVJZUNSZYEYIYKUOSZUNSZHSZUPZUQ
      SCIULUAVJZUMSZYLYEYQYKUOSZUNSZHSZUPZUQSZLUKKUBKUKUHYHKCURUSZUKRCURUTVAVBY
      HYITUHUJCYPUQVCYIYQVDZYPUUBCUQUUEIYJYOYRUUAYIYQULUMVEUUEYNYTYLHUUEYMYSYEU
      NYIYQYKUOVFVGVGVHVGYHUBVJYQVIVKZUUCKVDZVLZUATVMZUBTVNUUFUCUDJJYQUCVJZUDVJ
      ZYCYEEVOUSZSZSZVPUSZUSZVQZKVDZVLZUATVMZUBTVNZYHUUFYQUEVJZUFVJZUUMSZVPUSZU
      SZGURUSZVDZUFJVMUEJVMZVLZUATVMZUBTVNZUVAYHXTYAUUMDUHZUVLXTYAYGVRXTYAYGVSY
      HEUIUHZYDYFWCZUVMYHUVNYGUJUVOYBUVNYGEFGJMNVTWAUVNYDYFWBWDDEUULYCYEOUULWEW
      FWMZUADEFGUEUFUUMJUVGUBMNOUVGWEZWGWHYHUVKUUTUBTYHUVJUUSUATYHYQTUHZUJZUVIU
      URUUFUVSUVIUURUVSUVIUJZUUQUCUDJJUVGVQZKUVTUCUDJJUUPUVGUVTUUJJUHZUUKJUHZUU
      PUVGVDZUVIUWBUWCUJZUWDVLUVSUWEUVIUWDUVHUWDYQUUJUVCUUMSZVPUSZUSZUVGVDUEUFU
      UJUUKJJUVBUUJVDZUVFUWHUVGUWIYQUVEUWGUWIUVDUWFVPUVBUUJUVCUUMVFWIWJWKUVCUUK
      VDZUWHUUPUVGUWJYQUWGUUOUWJUWFUUNVPUVCUUKUUJUUMVEWIWJWKWLWNWOWPWQYBKUWAVDY
      GUVRUVIYBKUUDUWARCGUCUDJUVGPUVQWRWSWTXAXLXBXCXDXMYHUUIUUTUBTYHUUHUUSUATUV
      SUUGUURUUFUVSUUCUUQKUVSUUCCIYRYLYTCVOUSZSZUPZUQSZUUMYQUNSZUUQUVSUUBUWMCUQ
      UVSIYRUUAUWLUUAUWLVDUVSHUWKYLYTQXEVBXFVGUVSYAYGUVRUWOUWNVDXTYAYGUVRXGYBYG
      UVRVSYHUVRXHCDEFGYCIYQJYEMNOPXIWHYHUVMUVRUWOUUQVDUVPEDFUCUDYQUUMJNOXJXKXN
      WKXOXPXQXRXS $.
  $}

  ${
    $d B n s x $.  $d I n s x $.  $d J n s x $.  $d M n s x $.  $d N n s x $.
    $d P s x $.  $d R n s x $.  $d X n s x $.  $d .X. n s x $.  $d .^ n s x $.
    pmatcollpw1.p $e |- P = ( Poly1 ` R ) $.
    pmatcollpw1.c $e |- C = ( N Mat P ) $.
    pmatcollpw1.b $e |- B = ( Base ` C ) $.
    pmatcollpw1.m $e |- .X. = ( .s ` P ) $.
    pmatcollpw1.e $e |- .^ = ( .g ` ( mulGrp ` P ) ) $.
    pmatcollpw1.x $e |- X = ( var1 ` R ) $.
    $( Lemma 1 for ~ pmatcollpw1 .  (Contributed by AV, 28-Sep-2019.)  (Revised
       by AV, 3-Dec-2019.) $)
    pmatcollpw1lem1 $p |- ( ( ( N e. Fin /\ R e. Ring /\ M e. B )
                              /\ I e. N /\ J e. N )
              -> ( n e. NN0 |-> ( ( I ( M decompPMat n ) J ) .X. ( n .^ X ) ) )
                 finSupp ( 0g ` P ) ) $=
      ( wcel co vx vs cfn crg w3a cvv cv cdecpmat c0g cfv fvexd cn0 ovexd oveq2
      wa wceq oveqd oveq1 oveq12d clt wbr cco1 wral wrex cbs simp2 simp3 simp13
      wi eqid matecld coe1ae0 syl simpl12 adantr simpr 3simpc decpmate syl31anc
      eqtrd oveq1d cmgp ply1moncl syl2anc ply10s0 ralimdva reximdv mptnn0fsuppd
      ex imim2d mpd ) KUCSZDUDSZJASZUEZHKSZIKSZUEZUAUFHIJFUGZUHTZTZWSLGTZETHIJU
      AUGZUHTZTZXCLGTZETZFUFCUIUJZUBWRCUIUKWRWSULSUOXAXBEUMWSXCUPZXAXEXBXFEXIWT
      XDHIWSXCJUHUNUQWSXCLGURUSWRUBUGXCUTVAZXCHIJTZVBUJZUJZDUIUJZUPZVIZUAULVCZU
      BULVDZXJXGXHUPZVIZUAULVCZUBULVDWRXKCVEUJZSXRWRBACHIYBJKNYBVJZOWOWPWQVFWOW
      PWQVGWLWMWNWPWQVHZVKXLYBCDUAXKXNUBXLVJYCMXNVJZVLVMWRXQYAUBULWRXPXTUAULWRX
      CULSZUOZXOXSXJYGXOXSYGXOUOZXGXNXFETZXHYHXEXNXFEYHXEXMXNYGXEXMUPZXOYGWMWNY
      FWPWQUOZYJWLWMWNWPWQYFVNZWRWNYFYDVOWRYFVPZWRYKYFWOWPWQVQVOABCDHIXCJKUDMNO
      VRVSVOYGXOVPVTWAYGYIXHUPZXOYGWMXFYBSZYNYLYGWMYFYOYLYMYBXCCDGCWBUJZLMRYPVJ
      QYCWCWDYBCDEXFXNMYCPYEWEWDVOVTWIWJWFWGWKWH $.

    $d P n $.  $d a n $.  $d b n $.
    $( Lemma 2 for ~ pmatcollpw1 :  An entry of a polynomial matrix is the sum
       of the entries of the matrix consisting of the coefficients in the
       entries of the polynomial matrix multiplied with the corresponding power
       of the variable.  (Contributed by AV, 25-Sep-2019.)  (Revised by AV,
       3-Dec-2019.) $)
    pmatcollpw1lem2 $p |- ( ( ( N e. Fin /\ R e. Ring /\ M e. B )
                   /\ ( a e. N /\ b e. N ) ) -> ( a M b ) = ( P gsum ( n e. NN0
                     |-> ( ( a ( M decompPMat n ) b ) .X. ( n .^ X ) ) ) ) ) $=
      ( wcel co cfn crg w3a cv wa cn0 cco1 cfv cmgp cmg cmpt cgsu cdecpmat wceq
      cbs simpl2 eqid simprl simprr simpl3 matecld ply1coe syl2anc adantr simpr
      decpmate syl31anc eqcomd eqcomi oveqi a1i oveq12d mpteq2dva oveq2d eqtrd
      ) IUASZDUBSZHASZUCZKUDZISZLUDZISZUEZUEZVTWBHTZCFUFFUDZWFUGUHZUHZWGJCUIUHZ
      UJUHZTZETZUKZULTZCFUFVTWBHWGUMTTZWGJGTZETZUKZULTWEVQWFCUOUHZSWFWOUNVPVQVR
      WDUPZWEBACVTWBWTHINWTUQZOVSWAWCURVSWAWCUSVPVQVRWDUTZVAWHWTCDEFWKWFWJJMRXB
      PWJUQWKUQWHUQVBVCWEWNWSCULWEFUFWMWRWEWGUFSZUEZWIWPWLWQEXEWPWIXEVQVRXDWDWP
      WIUNWEVQXDXAVDWEVRXDXCVDWEXDVEWEWDXDVSWDVEVDABCDVTWBWGHIUBMNOVFVGVHWLWQUN
      XEWKGWGJGWKQVIVJVKVLVMVNVO $.

    $d B a b i j $.  $d M a b i j $.  $d N a b i j $.  $d P a b i j n $.
    $d R a b i j $.  $d X a b i j $.  $d .X. a b i j $.  $d .^ a b i j $.
    $( Write a polynomial matrix as a matrix of sums of scaled monomials.
       (Contributed by AV, 29-Sep-2019.)  (Revised by AV, 3-Dec-2019.) $)
    pmatcollpw1 $p |- ( ( N e. Fin /\ R e. Ring /\ M e. B )
                        -> M = ( i e. N , j e. N |-> ( P gsum ( n e. NN0
                   |-> ( ( i ( M decompPMat n ) j ) .X. ( n .^ X ) ) ) ) ) ) $=
      ( wcel co va vb cfn crg w3a cdecpmat cmpt cgsu cmpt2 wceq pmatcollpw1lem2
      cn0 cv wral wa cbs cfv oveq12 oveq1d mpteq2dv oveq2d adantl simprl simprr
      eqidd cvv c0g eqid ccmn ply1ring ringcmn syl 3ad2ant2 adantr nn0ex simpl2
      a1i cmat simplrl simpl3 simpr decpmatcl syl3anc matecld cmgp fmptd cfsupp
      ply1tmcl wbr pmatcollpw1lem1 3expb gsumcl ovmpt2d eqtr4d ralrimivva simp3
      wb simp1 3ad2ant1 simpl12 matbas2d eqmat syl2anc mpbird ) KUCSZDUDSZJASZU
      EZJFGKKCHULFUMZGUMZJHUMZUFTZTZXKLITZETZUGZUHTZUIZUJZUAUMZUBUMZJTZXTYAXRTZ
      UJZUBKUNUAKUNZXHYDUAUBKKXHXTKSZYAKSZUOZUOZYBCHULXTYAXLTZXNETZUGZUHTZYCABC
      DEHIJKLUAUBMNOPQRUKYIFGXTYAKKXQYMXRCUPUQZYIXRVEXIXTUJXJYAUJUOZXQYMUJYIYOX
      PYLCUHYOHULXOYKYOXMYJXNEXIXTXJYAXLURUSUTVAVBXHYFYGVCXHYFYGVDZYIULYNYLCVFC
      VGUQZYNVHZYQVHZXHCVISZYHXFXEYTXGXFCUDSZYTCDMVJZCVKVLVMZVNULVFSZYIVOVQYIHU
      LYKYNYLYIXKULSZUOZXFYJDUPUQZSUUEYKYNSYIXFUUEXEXFXGYHVPVNZUUFKDVRTZUUIUPUQ
      ZDXTYAUUGXLKUUIVHZUUGVHZUUJVHZXHYFYGUUEVSYIYGUUEYPVNUUFXFXGUUEXLUUJSZUUHY
      IXGUUEXEXFXGYHVTVNYIUUEWAZUUIABUUJCDXKJKUDMNOUUKUUMWBZWCWDUUOYNYJXKCDEIUU
      GCWEUQZLUULMRPUUQVHZQYRWHWCYLVHWFXHYFYGYLYQWGWIABCDEHIXTYAJKLMNOPQRWJWKWL
      WMWNWOXHXGXRASXSYEWQXEXFXGWPZXHFGBAXQCYNKUDNYROXEXFXGWRXFXEUUAXGUUBVMXHXI
      KSZXJKSZUEZULYNXPCVFYQYRYSXHUUTYTUVAUUCWSUUDUVBVOVQUVBHULXOYNXPUVBUUEUOZX
      FXMUUGSUUEXOYNSXEXFXGUUTUVAUUEWTZUVCUUIUUJDXIXJUUGXLKUUKUULUUMXHUUTUVAUUE
      VPXHUUTUVAUUEVTUVCXFXGUUEUUNUVDUVBXGUUEXHUUTXGUVAUUSWSVNUVBUUEWAZUUPWCWDU
      VEYNXMXKCDEIUUGUUQLUULMRPUURQYRWHWCXPVHWFABCDEHIXIXJJKLMNOPQRWJWLXABACUAU
      BKJXRNOXBXCXD $.

    $d B i j n x y $.  $d C x y $.  $d M y $.  $d N y $.  $d R y $.  $d X y $.
    $d .X. y $.  $d .^ y $.
    $( Lemma for ~ pmatcollpw2 .  (Contributed by AV, 3-Oct-2019.)  (Revised by
       AV, 3-Dec-2019.) $)
    pmatcollpw2lem $p |- ( ( N e. Fin /\ R e. Ring /\ M e. B )
                            -> ( n e. NN0 |-> ( i e. N , j e. N
                          |-> ( ( i ( M decompPMat n ) j ) .X. ( n .^ X ) ) ) )
                               finSupp ( 0g ` C ) ) $=
      ( vx cn0 vy cfn wcel crg w3a cv cdecpmat co cmpt2 cmpt c0g cfv cfsupp wbr
      csupp wne crab wfn wceq wral simp1 mpt2exga syl2anc ralrimivw fnmpt nn0ex
      cvv eqid syl a1i fvexd suppvalfn syl3anc wn wi wrex wa cco1 pmatcoe1fsupp
      clt oveq1 csca cvsca ply1sca 3ad2ant2 fveq2d eqidd oveq123d eqcomd oveq1d
      ad3antrrr cbs simpl2 cmgp ply1moncl 3ad2antl2 jca adantr 3eqtrd sylan9eqr
      ply10s0 ex anasss ralimdvva imim2d ralimdva reximdv mpd simpl3 simpr 3jca
      decpmate sylan eqeq1d 2ralbidva imbi2d ralbidva mpbird wb biantrur bicomi
      rexbidv ralbii bitr3i rexralbidv imim2i ralimi reximi oveq2 oveqd oveq12d
      mpt2eq123 mpt2eq3dv adantl id ancri 3ad2ant1 fvmptd ply1ring sylibr mptex
      anim2i 3adant3 mat0op eqeq12d nne imbi2i rexbii rabssnn0fi eqeltrd funmpt
      wfun funisfsupp ) KUBUCZDUDUCZJAUCZUEZHTFGKKFUFZGUFZJHUFZUGUHZUHZUUTLIUHZ
      EUHZUIZUJZBUKULZUMUNZUVFUVGUOUHZUBUCZUUQUVISUFZUVFULZUVGUPZSTUQZUBUUQUVFT
      URZTVGUCZUVGVGUCZUVIUVNUSUUQUVEVGUCZHTUTUVOUUQUVRHTUUQUUNUUNUVRUUNUUOUUPV
      AZUVSFGKKUVDUBUBVBVCVDHTUVEUVFVGUVFVHVEVIUVPUUQVFVJUUQBUKVKZSUVFVGVGTUVGV
      LVMUUQUAUFUVKVTUNZUVMVNZVOZSTUTZUATVPZUVNUBUCUUQUWAUVLUVGUSZVOZSTUTZUATVP
      ZUWEUUQUWIUWAFGKKUURUUSJUVKUGUHZUHZUVKLIUHZEUHZUIZFGKKCUKULZUIZUSZVOZSTUT
      ZUATVPZUUQUWAKKUSZUXAUWMUWOUSZGKUTZVQZFKUTZVQZVOZSTUTZUATVPZUWTUUQUXIUWAU
      XCFKUTZVOZSTUTZUATVPZUUQUXMUWAUVKUURUUSJUHVRULULZUWLEUHZUWOUSZGKUTFKUTZVO
      ZSTUTZUATVPZUUQUWAUXNDUKULZUSZGKUTFKUTZVOZSTUTZUATVPUXTSABCDFGJKUYAUAMNOU
      YAVHZVSUUQUYEUXSUATUUQUYDUXRSTUUQUVKTUCZVQZUYCUXQUWAUYHUYBUXPFGKKUYHUURKU
      CZUUSKUCZUYBUXPVOUYHUYIVQZUYJVQZUYBUXPUYBUYLUXOUYAUWLEUHZUWOUXNUYAUWLEWAU
      YLUYMCWBULZUKULZUWLCWCULZUHZUYAUWLUYPUHZUWOUUQUYMUYQUSUYGUYIUYJUUQUYAUYOU
      WLUWLEUYPEUYPUSUUQPVJUUQDUYNUKUUOUUNDUYNUSUUPCDUDMWDWEZWFUUQUWLWGWHWKUYLU
      YOUYAUWLUYPUYLUYNDUKUUQUYNDUSUYGUYIUYJUUQDUYNUYSWIWKWFWJUYLUUOUWLCWLULZUC
      ZVQZUYRUWOUSUYKVUBUYJUYHVUBUYIUYHUUOVUAUUNUUOUUPUYGWMZUUOUUNUYGVUAUUPUYTU
      VKCDICWNULZLMRVUDVHQUYTVHZWOWPWQWRWRUYTCDUYPUWLUYAMVUEUYPVHUYFXAVIWSWTXBX
      CXDXEXFXGXHUUQUXLUXSUATUUQUXKUXRSTUYHUXJUXQUWAUYHUXBUXPFGKKUYHUYIUYJVQZVQ
      ZUWMUXOUWOVUGUWKUXNUWLEUYHUUOUUPUYGUEVUFUWKUXNUSUYHUUOUUPUYGVUCUUNUUOUUPU
      YGXIUUQUYGXJZXKABCDUURUUSUVKJKUDMNOXLXMWJXNXOXPXQYBXRUUQUXGUXKUASTTUUQUXF
      UXJUWAUXFUXJXSUUQUXFUXEUXJUXAUXEKVHZXTUXDUXCFKUXCUXDUXAUXCVUIXTYAYCYDVJXP
      YEXRUXHUWSUATUXGUWRSTUXFUWQUWAFGKKUWMKKUWOYLYFYGYHVIUUQUWHUWSUATUUQUWGUWR
      STUYHUWFUWQUWAUYHUVLUWNUVGUWPUYHHUVKUVEUWNTUVFVGUYHUVFWGUUTUVKUSZUVEUWNUS
      UYHVUJFGKKUVDUWMVUJUVBUWKUVCUWLEVUJUVAUWJUURUUSUUTUVKJUGYIYJUUTUVKLIWAYKY
      MYNVUHUYHUUNUUNVQZUWNVGUCUUQVUKUYGUUNUUOVUKUUPUUNUUNUUNYOYPYQWRFGKKUWMUBU
      BVBVIYRUYHUUNCUDUCZVQZUVGUWPUSUUQVUMUYGUUNUUOVUMUUPUUOVULUUNCDMYSUUBUUCWR
      BCFGKUWONUWOVHUUDVIUUEXPXQYBXRUWDUWHUATUWCUWGSTUWBUWFUWAUVLUVGUUFUUGYCUUH
      YTUVMSUAUUIYTUUJUUQUVFUULZUVFVGUCZUVQUVHUVJXSVUNUUQHTUVEUUKVJVUOUUQHTUVEV
      FUUAVJUVTUVFVGVGUVGUUMVMXR $.

    $( Write a polynomial matrix as a sum of matrices whose entries are
       products of variable powers and constant polynomials collecting like
       powers.  (Contributed by AV, 3-Oct-2019.)  (Revised by AV,
       3-Dec-2019.) $)
    pmatcollpw2 $p |- ( ( N e. Fin /\ R e. Ring /\ M e. B )
                        -> M = ( C gsum ( n e. NN0 |-> ( i e. N , j e. N
                   |-> ( ( i ( M decompPMat n ) j ) .X. ( n .^ X ) ) ) ) ) ) $=
      ( wcel co cfn crg w3a cn0 cv cdecpmat cmpt cgsu cmpt2 pmatcollpw1 cvv c0g
      cfv eqid simp1 nn0ex a1i ply1ring 3ad2ant2 cbs adantr simp1l2 simp2 simp3
      wa cmat simpr 3jca 3ad2ant1 decpmatcl syl matecld simp1r ply1tmcl syl3anc
      cmgp matbas2d pmatcollpw2lem matgsum eqtr4d ) KUASZDUBSZJASZUCZJFGKKCHUDF
      UEZGUEZJHUEZUFTZTZWGLITETZUGUHTUIBHUDFGKKWJUIUGUHTABCDEFGHIJKLMNOPQRUJWDH
      BACWJFGUDKUKBULUMZNOWKUNWAWBWCUOZUDUKSWDUPUQWBWACUBSZWCCDMURUSZWDWGUDSZVE
      ZFGBAWJCCUTUMZKUBNWQUNZOWDWAWOWLVAWDWMWOWNVAWPWEKSZWFKSZUCZWBWIDUTUMZSWOW
      JWQSWAWBWCWOWSWTVBXAKDVFTZXCUTUMZDWEWFXBWHKXCUNZXBUNZXDUNZWPWSWTVCWPWSWTV
      DXAWBWCWOUCZWHXDSWPWSXHWTWPWBWCWOWDWBWOWAWBWCVCVAWDWCWOWAWBWCVDVAWDWOVGVH
      VIXCABXDCDWGJKUBMNOXEXGVJVKVLWDWOWSWTVMWQWIWGCDEIXBCVPUMZLXFMRPXIUNQWRVNV
      OVQABCDEFGHIJKLMNOPQRVRVSVT $.
  $}

  ${
    $d C i j $.  $d I i j l x y $.  $d I w x y z $.  $d K i j l x y $.
    $d K w x y z $.  $d L i j l x y $.  $d L w x y z $.  $d M i j l x y $.
    $d M w x y z $.  $d N i j l x y $.  $d N w x y z $.  $d P l $.
    $d R i j l x y $.  $d R w x y z $.  $d T i j $.  $d X i j l $.
    $d .0. x y $.  $d .^ i j l $.  $d .x. i j $.
    monmatcollpw.p $e |- P = ( Poly1 ` R ) $.
    monmatcollpw.c $e |- C = ( N Mat P ) $.
    monmatcollpw.a $e |- A = ( N Mat R ) $.
    monmatcollpw.k $e |- K = ( Base ` A ) $.
    monmatcollpw.0 $e |- .0. = ( 0g ` A ) $.
    monmatcollpw.e $e |- .^ = ( .g ` ( mulGrp ` P ) ) $.
    monmatcollpw.x $e |- X = ( var1 ` R ) $.
    monmatcollpw.m $e |- .x. = ( .s ` C ) $.
    monmatcollpw.t $e |- T = ( N matToPolyMat R ) $.
    $( The matrix consisting of the coefficients in the polynomial entries of a
       polynomial matrix having scaled monomials with the same power as entries
       is the matrix of the coefficients of the monomials or a zero matrix.
       Generalization of ~ decpmatid (but requires ` R ` to be commutative!).
       (Contributed by AV, 11-Nov-2019.)  (Revised by AV, 4-Dec-2019.) $)
    monmatcollpw $p |- ( ( ( N e. Fin /\ R e. CRing )
                           /\ ( M e. K /\ L e. NN0 /\ I e. NN0 ) )
                         -> ( ( ( L .^ X ) .x. ( T ` M ) ) decompPMat I )
                            = if ( I = L , M , .0. ) ) $=
      ( vi vj vl vx vy vz vw cfn wcel ccrg wa cn0 w3a co cdecpmat cv cco1 cmpt2
      cfv wceq c0g cif cmpt cbs crg simpll crngring ply1ring syl ad2antlr simp2
      adantl cmgp eqid ply1moncl syl2an anim2i simp1 anim12i df-3an mat2pmatbas
      sylibr jca matvscl syl21anc simpr3 decpmatval cmulr cvsca 3ad2ant1 3simpc
      syl2anc matvscacell syl3anc fveq2d fveq1d cascl mat2pmatvalel oveq2d casa
      csca ply1assa simp3 eleq2i biimpi matecld eqcomd adantr eleqtrrd asclmul2
      ply1sca eqtrd simp1r2 coe1tm 3eqtrd mpt2eq3dva wral cvv mat0op syl5eq weq
      eqidd simprl simprr fvexd ovmpt2d ifeq2d oveq12 mpteq2dv eqeq1 ifbid ovex
      ifeq1d a1i fvmptd ring0cl ifcld fvex ifex sylan9eqr 3eqtr4d ralrimivva wb
      ifov simplr eqeltrd matbas2d matring 3syl eqmat mpbird ) LUKULZDUMULZUNZK
      IULZJUOULZHUOULZUPZUNZJMGUQZKEVBZFUQZHURUQZUDUELLHUDUSZUEUSZUVEUQZUTVBZVB
      ZVAZUDUELLHUFUOUFUSZJVCZUVGUVHKUQZDVDVBZVEZVFZVBZVAZHJVCZKNVEZUVBUVEBVGVB
      ZULZUUTUVFUVLVCUVBUUOCVHULZUVCCVGVBZULZUVDUWCULZUNZUWDUUOUUPUVAVIZUUPUWEU
      UOUVAUUPDVHULZUWEDVJZCDOVKVLVMZUVBUWGUWHUUQUWKUUSUWGUVAUUPUWKUUOUWLVOZUUR
      UUSUUTVNUWFJCDGCVPVBZMOUAUWOVQZTUWFVQZVRVSZUVBUUOUWKUURUPZUWHUVBUUOUWKUNZ
      UURUNUWSUUQUWTUVAUURUUPUWKUUOUWLVTZUURUUSUUTWAZWBUUOUWKUURWCWEAIBCDEKLUCQ
      ROPWDVLWFZBUWCUVCCFUWFLUVDUWQPUWCVQZUBWGWHUUQUURUUSUUTWIZBUWCCUDUEHUVELPU
      XDWJWOUVBUDUELLUVKUVSUVBUVGLULZUVHLULZUPZUVKHUVCUVGUVHUVDUQZCWKVBZUQZUTVB
      ZVBHUVOUVCCWLVBZUQZUTVBZVBUVSUXHHUVJUXLUXHUVIUXKUTUXHUWEUWIUXFUXGUNZUVIUX
      KVCUVBUXFUWEUXGUWMWMUVBUXFUWIUXGUXCWMUVBUXFUXGWNZBUWCCFUXJUVGUVHUWFLUVCUV
      DPUXDUWQUBUXJVQZWPWQWRWSUXHHUXLUXOUXHUXKUXNUTUXHUXKUVCUVOCWTVBZVBZUXJUQZU
      XNUXHUXIUXTUVCUXJUXHUUOUUPUURUPZUXPUXIUXTVCUVBUXFUYBUXGUVBUUQUURUNUYBUVAU
      URUUQUXBVTUUOUUPUURWCWEWMUXQAICDUXSEKLUMUVGUVHUCQROUXSVQZXAWOXBUXHCXCULZU
      VOCXDVBZVGVBZULUWGUYAUXNVCUVBUXFUYDUXGUUPUYDUUOUVACDOXEVMWMUXHUVODVGVBZUY
      FUXHAAVGVBZDUVGUVHUYGKLQUYGVQZUYHVQUVBUXFUXGVNUVBUXFUXGXFUVBUXFKUYHULZUXG
      UVAUYJUUQUURUUSUYJUUTUURUYJIUYHKRXGZXHWMVOZWMXIZUVBUXFUYFUYGVCZUXGUUQUYNU
      VAUUQUYEDVGUUQDUYEUUPDUYEVCUUOCDUMOXNVOXJWRXKWMXLUVBUXFUWGUXGUWRWMUXSUVOU
      XMUXJUYEUYFUWFCUVCUYCUYEVQUYFVQUWQUXRUXMVQZXMWQXOWRWSUXHHUXOUVRUXHUWKUVOU
      YGULUUSUXOUVRVCUVBUXFUWKUXGUUPUWKUUOUVAUWLVMWMUYMUURUUSUUTUUQUXFUXGXPUFUV
      OJCDUXMGUYGUWOMUVPUVPVQZUYIOUAUYOUWPTXQWQWSXRXSUVBUVTUWBVCZUGUSZUHUSZUVTU
      QZUYRUYSUWBUQZVCZUHLXTUGLXTZUVBVUBUGUHLLUVBUYRLULZUYSLULZUNZUNZUWAUYRUYSK
      UQZUVPVEZUWAVUHUYRUYSNUQZVEZUYTVUAVUGUWAUVPVUJVUHVUGVUJUVPVUGUIUJUYRUYSLL
      UVPUVPNYAVUGNAVDVBZUIUJLLUVPVAZSVUGUWTVULVUMVCUVBUWTVUFUUQUWTUVAUXAXKXKAD
      UIUJLUVPQUYPYBVLYCVUGUIUGYDUJUHYDUNUNUVPYEUVBVUDVUEYFZUVBVUDVUEYGZVUGDVDY
      HYIXJYJVUGUDUEUYRUYSLLUVSVUIUVTYAVUGUVTYEUDUGYDUEUHYDUNZVUGUVSHUFUOUVNVUH
      UVPVEZVFZVBVUIVUPHUVRVURVUPUFUOUVQVUQVUPUVNUVOVUHUVPUVGUYRUVHUYSKYKYPYLWS
      VUGUFHVUQVUIUOVURYAVUGVURYEUVMHVCZVUQVUIVCVUGVUSUVNUWAVUHUVPUVMHJYMZYNVOU
      VBUUTVUFUXEXKVUIYAULVUGUWAVUHUVPUYRUYSKYODVDUUAUUBYQZYRUUCVUNVUOVVAYIVUAV
      UKVCVUGUWAUYRUYSKNUUGYQUUDUUEUVBUVTIULUWBIULUYQVUCUUFUVBUDUEAIUVSDUYGLUMQ
      UYIRUWJUUOUUPUVAUUHUXHUVSUWAUVOUVPVEZUYGUXHUFHUVQVVBUOUVRUYGUXHUVRYEVUSUV
      QVVBVCUXHVUSUVNUWAUVOUVPVUTYNVOUVBUXFUUTUXGUXEWMUXHUWAUVOUVPUYGUYMUVBUXFU
      VPUYGULZUXGUUQVVCUVAUUQUWKVVCUWNUYGDUVPUYIUYPYSVLXKWMYTZYRVVDUUIUUJUVBUWA
      KNIUVBUYJUURUYLUYKWEUUQNIULZUVAUUQUWTAVHULVVEUXAADLQUUKIANRSYSUULXKYTAIDU
      GUHLUVTUWBQRUUMWOUUNXR $.
  $}

  ${
    $d B i j $.  $d M i j $.  $d N i j $.  $d P i j $.  $d R i j $.
    $d a i j $.  $d b i j $.  $d i j n $.
    pmatcollpw.p $e |- P = ( Poly1 ` R ) $.
    pmatcollpw.c $e |- C = ( N Mat P ) $.
    pmatcollpw.b $e |- B = ( Base ` C ) $.
    pmatcollpw.m $e |- .* = ( .s ` C ) $.
    pmatcollpw.e $e |- .^ = ( .g ` ( mulGrp ` P ) ) $.
    pmatcollpw.x $e |- X = ( var1 ` R ) $.
    pmatcollpw.t $e |- T = ( N matToPolyMat R ) $.
    $( Lemma for ~ pmatcollpw .  (Contributed by AV, 26-Oct-2019.)  (Revised by
       AV, 4-Dec-2019.) $)
    pmatcollpwlem $p |- ( ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                               /\ n e. NN0 ) /\ a e. N /\ b e. N )
                 -> ( ( a ( M decompPMat n ) b ) ( .s ` P ) ( n .^ X ) )
                    = ( a ( ( n .^ X ) .* ( T ` ( M decompPMat n ) ) ) b ) ) $=
      ( vi vj cfn wcel ccrg w3a cv cn0 wa cdecpmat cvsca cascl cmpt2 cmulr casa
      cfv csca cbs wceq ply1assa 3ad2ant2 adantr 3ad2ant1 cmat eqid simp2 simp3
      co simpr decpmatcl syl3anc matecld crg crngring ply1sca syl eqcomd fveq2d
      eleq2d mpbird cmgp ply1moncl sylan asclmul2 cvv eqidd oveq12 adantl fvexd
      wb ovmpt2d oveq2d eqtr3d ply1ring simpl1 syl2anc matbas2d jca matvscacell
      ply1sclcl mat2pmatval oveqd 3eqtr2d ) JUCUDZDUEUDZIAUDZUFZFUGZUHUDZUIZLUG
      ZJUDZMUGZJUDZUFZXKXMIXHUJVHZVHZXHKGVHZCUKUPZVHZXRXKXMUAUBJJUAUGZUBUGZXPVH
      ZCULUPZUPZUMZVHZCUNUPZVHZXKXMXRYFHVHZVHZXKXMXRXPEUPZHVHZVHZXOXRXQYDUPZYHV
      HZXTYIXOCUOUDZXQCUQUPZURUPZUDZXRCURUPZUDZYPXTUSXJXLYQXNXGYQXIXEXDYQXFCDNU
      TVAVBVCXOYTXQDURUPZUDZXOJDVDVHZUUEURUPZDXKXMUUCXPJUUEVEZUUCVEZUUFVEZXJXLX
      NVFZXJXLXNVGZXJXLXPUUFUDZXNXJXEXFXIUULXGXEXIXDXEXFVFVBZXGXFXIXDXEXFVGVBXG
      XIVIUUEABUUFCDXHIJUENOPUUGUUIVJVKZVCVLXJXLYTUUDWJZXNXGUUOXIXGYSUUCXQXGYRD
      URXGDYRXGDVMUDZDYRUSXEXDUUPXFDVNZVAZCDVMNVOVPVQVRVSVBVCVTXJXLUUBXNXGUUPXI
      UUBUURUUAXHCDGCWAUPZKNSUUSVERUUAVEZWBWCZVCYDXQXSYHYRYSUUACXRYDVEZYRVEYSVE
      UUTYHVEZXSVEWDVKXOYOYGXRYHXOYGYOXOUAUBXKXMJJYEYOYFWEXOYFWFYAXKUSYBXMUSUIZ
      YEYOUSXOUVDYCXQYDYAXKYBXMXPWGVRWHUUJUUKXOXQYDWIWKVQWLWMXOCVMUDZUUBYFAUDZU
      IZXLXNUIYKYIUSXJXLUVEXNXGUVEXIXEXDUVEXFXEUUPUVEUUQCDNWNVPVAVBZVCXJXLUVGXN
      XJUUBUVFUVAXJUAUBBAYECUUAJVMOUUTPXDXEXFXIWOZUVHXJYAJUDZYBJUDZUFZUUPYCUUCU
      DYEUUAUDXJUVJUUPUVKXJXEUUPUUMUUQVPVCUVLUUEUUFDYAYBUUCXPJUUGUUHUUIXJUVJUVK
      VFXJUVJUVKVGXJUVJUULUVKUUNVCVLYDUUACDYCUUCNUVBUUHUUTWTWPWQWRVCXOXLXNUUJUU
      KWRBACHYHXKXMUUAJXRYFOPUUTQUVCWSVKXJXLYKYNUSXNXJYJYMXKXMXJYFYLXRHXJYLYFXJ
      XDUUPUULYLYFUSUVIXGUUPXIUURVBUUNUAUBUUEUUFCDYDEXPJVMTUUGUUINUVBXAVKVQWLXB
      VCXC $.

    $d B a b n $.  $d M a b n $.  $d N a b n $.  $d P a b n $.  $d R a b n $.
    $d T a b $.  $d X a b i j n $.  $d .* a b $.  $d .^ a b i j n $.
    $( Write a polynomial matrix (over a commutative ring) as a sum of products
       of variable powers and constant matrices with scalar entries.
       (Contributed by AV, 26-Oct-2019.)  (Revised by AV, 4-Dec-2019.) $)
    pmatcollpw $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
             -> M = ( C gsum ( n e. NN0
                      |-> ( ( n .^ X ) .* ( T ` ( M decompPMat n ) ) ) ) ) ) $=
      ( wcel co vi vj va vb cfn ccrg w3a cn0 cdecpmat cvsca cfv cmpt2 cmpt cgsu
      cv crg wceq crngring eqid pmatcollpw2 syl3an2 wa wral eqidd oveq12 oveq1d
      cbs adantl simprl simpr simp2 adantr cmat simp3 decpmatcl syl3anc matecld
      syl simplr cmgp ply1tmcl ovmpt2d pmatcollpwlem 3expb ralrimivva wb simpl1
      eqtrd ply1ring 3ad2ant2 3ad2ant1 matbas2d ply1moncl mat2pmatbas syl6eleqr
      sylan matvscl syl22anc eqmat syl2anc mpbird mpteq2dva oveq2d ) JUESZDUFSZ
      IASZUGZIBFUHUAUBJJUAUOZUBUOZIFUOZUITZTZXJKGTZCUJUKZTZULZUMZUNTZBFUHXMXKEU
      KZHTZUMZUNTXEXDDUPSZXFIXRUQDURZABCDXNUAUBFGIJKLMNXNUSZPQUTVAXGXQYABUNXGFU
      HXPXTXGXJUHSZVBZXPXTUQZUCUOZUDUOZXPTZYHYIXTTZUQZUDJVCUCJVCZYFYLUCUDJJYFYH
      JSZYIJSZVBZVBZYJYHYIXKTZXMXNTZYKYQUAUBYHYIJJXOYSXPCVGUKZYQXPVDXHYHUQXIYIU
      QVBZXOYSUQYQUUAXLYRXMXNXHYHXIYIXKVEVFVHYFYNYOVIZYPYOYFYNYOVJVHZYQYBYRDVGU
      KZSYEYSYTSYFYBYPYFXEYBXGXEYEXDXEXFVKVLZYCVRZVLYQJDVMTZUUGVGUKZDYHYIUUDXKJ
      UUGUSZUUDUSZUUHUSZUUBUUCYFXKUUHSZYPYFXEXFYEUULUUEXGXFYEXDXEXFVNVLXGYEVJZU
      UGABUUHCDXJIJUFLMNUUIUUKVOVPZVLVQXGYEYPVSYTYRXJCDXNGUUDCVTUKZKUUJLQYDUUOU
      SZPYTUSZWAVPWBYFYNYOYSYKUQABCDEFGHIJKUCUDLMNOPQRWCWDWHWEYFXPASXTASZYGYMWF
      YFUAUBBAXOCYTJUPMUUQNXDXEXFYEWGZXGCUPSZYEXEXDUUTXFXEYBUUTYCCDLWIVRWJVLZYF
      XHJSZXIJSZUGZYBXLUUDSYEXOYTSYFUVBYBUVCUUFWKUVDUUGUUHDXHXIUUDXKJUUIUUJUUKY
      FUVBUVCVKYFUVBUVCVNYFUVBUULUVCUUNWKVQYFUVBYEUVCUUMWKYTXLXJCDXNGUUDUUOKUUJ
      LQYDUUPPUUQWAVPWLYFXDUUTXMYTSZXSASUURUUSUVAXGYBYEUVEXEXDYBXFYCWJZYTXJCDGU
      UOKLQUUPPUUQWMWPYFXSBVGUKZAYFXDYBUULXSUVGSUUSXGYBYEUVFVLUUNUUGUUHBCDEXKJR
      UUIUUKLMWNVPNWOBAXMCHYTJXSUUQMNOWQWRBACUCUDJXPXTMNWSWTXAXBXCWH $.

    $d B n s $.  $d C n $.  $d M s $.  $d N s $.  $d R s $.
    $( Write a polynomial matrix (over a commutative ring) as a finite sum of
       products of variable powers and constant matrices with scalar entries.
       (Contributed by AV, 4-Nov-2019.)  (Revised by AV, 4-Dec-2019.) $)
    pmatcollpwfi $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                   -> E. s e. NN0 M = ( C gsum ( n e. ( 0 ... s )
                      |-> ( ( n .^ X ) .* ( T ` ( M decompPMat n ) ) ) ) ) ) $=
      ( wcel cfn ccrg w3a cv clt wbr cdecpmat co cmat c0g cfv wceq wi wral wrex
      cn0 cc0 cfz cmpt cgsu crg crngring 3ad2ant2 simp3 eqid decpmataa0 syl2anc
      wa pmatcollpw ad2antrr nfv nfra1 nfan ccmn simp1 pmatring ringcmn syl cbs
      adantr ply1ring anim1i cmgp ply1moncl simpl2 simpr decpmatcl mat2pmatbas0
      syl3anc matvscl syl22anc ralrimiva fveq2 0mat2pmat sylan9eqr oveq2d clmod
      jca csca pmatlmod adantlr ply1crng anim2i 3adant3 matsca2 eqcomd eleqtrrd
      fveq2d eqcomi fveq2i oveq2i lmodvs0 syl5eq eqtrd ex ralimdva gsummptnn0fz
      imim2d imp reximdva mpd ) JUATZDUBTZIATZUCZLUDZFUDZUEUFZIYGUGUHZJDUIUHZUJ
      UKZULZUMZFUPUNZLUPUOZIBFUQYFURUHYGKGUHZYIEUKZHUHZUSUTUHZULZLUPUOYEDVATZYD
      YOYCYBUUAYDDVBVCZYBYCYDVDZFYJABCDIJYKLMNOYJVEZYKVEZVFVGYEYNYTLUPYEYFUPTZV
      HZYNYTUUGYNVHZIBFUPYRUSUTUHZYSYEIUUIULUUFYNABCDEFGHIJKMNOPQRSVIVJUUHAYRYF
      FBBUJUKZUUGYNFUUGFVKYMFUPVLVMOUUJVEZYEBVNTZUUFYNYEBVATZUULYEYBUUAUUMYBYCY
      DVOZUUBBCDJMNVPVGBVQVRVJYEYRATZFUPUNUUFYNYEUUOFUPYEYGUPTZVHZYBCVATZYPCVSU
      KZTZYQATZUUOYEYBUUPUUNVTZUUQUUAUURYEUUAUUPUUBVTZCDMWAVRUUQUUAUUPVHZUUTYEU
      UAUUPUUBWBZUUSYGCDGCWCUKZKMRUVFVEQUUSVEZWDZVRUUQYBUUAYIYJVSUKZTZUVAUVBUVC
      UUQYCYDUUPUVJYBYCYDUUPWEYEYDUUPUUCVTYEUUPWFYJABUVICDYGIJUBMNOUUDUVIVEZWGW
      IYJUVIBCDEAYIJSUUDUVKMNOWHWIBAYPCHUUSJYQUVGNOPWJWKWLVJUUGUUFYNYEUUFWFVTUU
      GYNYHYRUUJULZUMZFUPUNUUGYMUVMFUPUUGUUPVHZYLUVLYHUVNYLUVLUVNYLVHZYRYPJCUIU
      HZUJUKZHUHZUUJUVOYQUVQYPHYLUVNYQYKEUKZUVQYIYKEWMUVNUUAYBVHZUVSUVQULYEUVTU
      UFUUPYEUUAYBUUBUUNWRVJCDEJYKUVQSMUUEUVQVEWNVRWOWPUVNUVRUUJULZYLUVNBWQTZYP
      BWSUKZVSUKZTZUWAYEUWBUUFUUPYEYBUUAUWBUUNUUBBCDJMNWTVGVJUVNYPUUSUWDUVNUVDU
      UTYEUUPUVDUUFUVEXAUVHVRUVNUWCCVSYEUWCCULUUFUUPYECUWCYEYBCUBTZVHZCUWCULYBY
      CUWGYDYCUWFYBCDMXBXCXDBCJUBNXEVRXFVJXHXGUWBUWEVHUVRYPUUJHUHUUJUVQUUJYPHUV
      PBUJBUVPNXIXJXKHUWCUWDBYPUUJUWCVEPUWDVEUUKXLXMVGVTXNXOXRXPXSXQXNXOXTYA $.

    $d B f i j $.  $d B k l x y $.  $d B m $.  $d C f $.  $d B f n x $.
    $d D f k $.  $d I i j k l x y $.  $d I f n k x $.  $d M k l x y $.
    $d M f $.  $d M i j k m $.  $d N f $.  $d N k l x y $.  $d N m $.
    $d R f $.  $d R k l x y $.  $d R m $.  $d T f $.  $d X f $.  $d .^ f $.
    $d .* f $.
    pmatcollpw3.a $e |- A = ( N Mat R ) $.
    pmatcollpw3.d $e |- D = ( Base ` A ) $.
    $( Lemma for ~ pmatcollpw3 and ~ pmatcollpw3fi :  Write a polynomial matrix
       (over a commutative ring) as a sum of products of variable powers and
       constant matrices with scalar entries.  (Contributed by AV,
       8-Dec-2019.) $)
    pmatcollpw3lem $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                             /\ ( I C_ NN0 /\ I =/= (/) ) )
                           -> ( M = ( C gsum ( n e. I |-> ( ( n .^ X )
                                            .* ( T ` ( M decompPMat n ) ) ) ) )
                       -> E. f e. ( D ^m I ) M = ( C gsum ( n e. I
                             |-> ( ( n .^ X ) .* ( T ` ( f ` n ) ) ) ) ) ) ) $=
      ( vx vk vi vj vm vl vy cfn wcel ccrg w3a cn0 wss c0 wne wa cv co cfv cmpt
      cgsu wceq cdecpmat cdm cco1 cmpt2 ccur cmap csb cvv weq dmeq dmeqd fveq2d
      oveq mpt2eq123dv fveq2 mpt2eq3dv cbvmpt2v dmexg syl jca ad2antrl mpt2exga
      fveq1d ralrimivva simprr nn0ex ssex adantr mpt2curryvald csbeq2dv 3imtr3i
      simp3 eqcom cbvcsbv syl6eq cbvmptv adantl csbied cbs cxp wf eqid matbas2i
      elmapi fdm dmxpid syl6req 3syl 3ad2ant3 simpr oveqd eqtr4d mpteq2dv eqtrd
      ad2antrr simpll1 simpll2 simp2 3ad2ant1 matecld wi imp coe1fvalcl syl2anc
      ssel matbas2d eqeltrd fmptd wb fvex eqeltri a1i cres oveq2d elmapg syl2an
      fveq1 fvmpt2curryd df-decpmat reseq1i ssv anim12i resmpt2 syl5req adantlr
      mpbird simpl ovres sylan mpteq2dva eqeq2d rspcedv ) NULUMZFUNUMZMBUMZUOZK
      UPUQZKURUSZUTZUTZMCIKIVAZOJVBZUVGHVAZVCZGVCZLVBZVDZVEVBZVFMCIKUVHMUVGVGVB
      ZGVCZLVBZVDZVEVBZVFHMUEUFBKUGUHUEVAZVHZVHZUWBUFVAZUGVAZUHVAZUVTVBZVIVCZVC
      ZVJZVJZVKVCZDKVLVBZUVFUWKUFKUIMUGUHNNUWCUWDUWEUIVAZVBZVIVCZVCZVJZVMZVDZUW
      LUVFUWKUFKUEMUWIVMZVDZUWSUVFUWKUJKUKMUGUHUKVAZVHZVHZUXDUJVAZUWDUWEUXBVBZV
      IVCZVCZVJZVMZVDUXAUVFUKUJMUXIUWJVNVNBKUEUFUKUJBKUWIUXIUGUHUXDUXDUWCUXGVCZ
      VJZUEUKVOZUGUHUWBUWBUWHUXDUXDUXKUXMUWAUXCUVTUXBVPVQZUXNUXMUWCUWGUXGUXMUWF
      UXFVIUWDUWEUVTUXBVSVRWIVTZUFUJVOUGUHUXDUXDUXKUXHUWCUXEUXGWAWBWCUVFUXIVNUM
      ZUKUJBKUVFUXBBUMZUXEKUMZUTUTUXDVNUMZUXSUTZUXPUXQUXTUVFUXRUXQUXSUXSUXQUXCV
      NUMUXSUXBBWDUXCVNWDWEZUYAWFWGUGUHUXDUXDUXHVNVNWHWEWJUVBUVCUVDWKUVCKVNUMZU
      VBUVDKUPWLWMZWGZUVBUVAUVEUUSUUTUVAWRZWNZWOUJUFKUXJUWTUJUFVOZUXJUKMUXLVMUW
      TUYGUKMUXIUXLUYGUGUHUXDUXDUXHUXKUXEUWCUXGWAWBWPUKUEMUXLUWIUXMUWIUXLVFUKUE
      VOUXLUWIVFUXOUVTUXBWSUWIUXLWSWQWTXAXBXAUVFUFKUWTUWRUVBUWTUWRVFUVEUVBUWTUG
      UHMVHZVHZUYIUWCUWDUWEMVBZVIVCZVCZVJZUWRUVBUEMUWIUYMBUYEUVTMVFZUWIUYMVFUVB
      UYNUGUHUWBUWBUWHUYIUYIUYLUYNUWAUYHUVTMVPVQZUYOUYNUWCUWGUYKUYNUWFUYJVIUWDU
      WEUVTMVSVRWIVTXCXDUVBUIMUWQUYMBUYEUVBUWMMVFZUTZUGUHNNUWPUYIUYIUYLUVBNUYIV
      FZUYPUVAUUSUYRUUTUVAMEXEVCZNNXFZVLVBUMUYTUYSMXGZUYRCBEUYSMNQUYSXHZRXIMUYS
      UYTXJVUAUYIUYTVHNVUAUYHUYTUYTUYSMXKVQNXLXMXNXOWNZVUCUYQUWCUWOUYKUYQUWNUYJ
      VIUYQUWMMUWDUWEUVBUYPXPXQVRWIVTXDXRWNXSXTUVFUWSUWLUMZKDUWSXGZUVFUFKUWRDUW
      SUVFUWCKUMZUTZUWRUGUHNNUYLVJZDUVBUWRVUHVFUVEVUFUVBUIMUWQVUHBUYEUYQUGUHNNU
      WPUYLUYQUWCUWOUYKUYQUWNUYJVIUYPUWNUYJVFUVBUWDUWEUWMMVSXCVRWIWBXDYAVUGUGUH
      ADUYLFFXEVCZNUNUCVUIXHZUDUUSUUTUVAUVEVUFYBUUSUUTUVAUVEVUFYCVUGUWDNUMZUWEN
      UMZUOZUYJUYSUMUWCUPUMZUYLVUIUMVUMCBEUWDUWEUYSMNQVUBRVUGVUKVULYDVUGVUKVULW
      RVUGVUKUVAVULUVFUVAVUFUYFWNYEYFVUGVUKVUNVULUVFVUFVUNUVCVUFVUNYGUVBUVDKUPU
      WCYKWGYHYEUYKUYSEFUYJVUIUWCUYKXHVUBPVUJYIYJYLYMUWSXHYNUVBDVNUMZUYBVUDVUEY
      OUVEVUOUVBDAXEVCVNUDAXEYPYQYRUVCUYBUVDUYCWNDKUWSVNVNUUAUUBUULYMUVFUVIUWKV
      FZUTZUVNUVSMVUQUVMUVRCVEVUQIKUVLUVQVUQUVGKUMZUTZUVKUVPUVHLVUSUVKMUVGVGBKX
      FZYSZVBZGVCUVPVUSUVJVVBGVUSUVJUVGUWKVCZVVBVUQUVJVVCVFZVURVUPVVDUVFUVGUVIU
      WKUUCXCWNUVFVURVVCVVBVFVUPUVFVURUTZVVCMUVGUWJVBVVBVVEUEUFMUVGUWIUWJVNVNBK
      UWJXHVVEUWIVNUMZUEUFBKVVEUVTBUMZVUFUTUTUWBVNUMZVVHUTZVVFVVGVVIVVEVUFVVGVV
      HVVHVVGUWAVNUMVVHUVTBWDUWAVNWDWEZVVJWFWGUGUHUWBUWBUWHVNVNWHWEWJUVFUYBVURU
      YDWNUVFUVAVURUYFWNUVFVURXPUUDVVEUWJVVAMUVGVVEVVAUEUFVNUPUWIVJZVUTYSZUWJVG
      VVKVUTUGUHUFUEUUEUUFVVEBVNUQZUVCUTZVVLUWJVFUVFVVNVURUVBVVMUVEUVCVVMUVBBUU
      GYRUVCUVDUUMUUHWNUEUFVNUPBKUWIUUIWEUUJXQXTUUKXTVRVUSVVBUVOGVUQUVAVURVVBUV
      OVFUVBUVAUVEVUPUYEYAMUVGBKVGUUNUUOVRXTYTUUPYTUUQUUR $.

    $( Write a polynomial matrix (over a commutative ring) as a sum of products
       of variable powers and constant matrices with scalar entries.
       (Contributed by AV, 27-Oct-2019.)  (Revised by AV, 4-Dec-2019.)  (Proof
       shortened by AV, 8-Dec-2019.) $)
    pmatcollpw3 $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                        -> E. f e. ( D ^m NN0 ) M = ( C gsum ( n e. NN0
                               |-> ( ( n .^ X ) .* ( T ` ( f ` n ) ) ) ) ) ) $=
      ( cfn wcel ccrg w3a cn0 cv co cdecpmat cfv cmpt cgsu wceq cmap pmatcollpw
      wrex wss c0 wne wi ssid cc0 0nn0 ne0ii pmatcollpw3lem mpanr12 mpd ) MUDUE
      FUFUELBUEUGZLCIUHIUIZNJUJZLVKUKUJGULKUJUMUNUJUOZLCIUHVLVKHUIULGULKUJUMUNU
      JUOHDUHUPUJURZBCEFGIJKLMNOPQRSTUAUQVJUHUHUSUHUTVAVMVNVBUHVCVDUHVEVFABCDEF
      GHIJUHKLMNOPQRSTUAUBUCVGVHVI $.

    $d f s $.
    $( Write a polynomial matrix (over a commutative ring) as a finite sum of
       products of variable powers and constant matrices with scalar entries.
       (Contributed by AV, 4-Nov-2019.)  (Revised by AV, 4-Dec-2019.)  (Proof
       shortened by AV, 8-Dec-2019.) $)
    pmatcollpw3fi $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                          -> E. s e. NN0 E. f e. ( D ^m ( 0 ... s ) )
                M = ( C gsum ( n e. ( 0 ... s )
                               |-> ( ( n .^ X ) .* ( T ` ( f ` n ) ) ) ) ) ) $=
      ( cfn wcel ccrg w3a cc0 cv cfz co cdecpmat cfv cmpt cgsu cn0 pmatcollpwfi
      wceq wrex cmap wss c0 wne cuz elnn0uz fzn0 sylbb2 fz0ssnn0 pmatcollpw3lem
      wa wi jctil sylan2 reximdva mpd ) MUEUFFUGUFLBUFUHZLCIUIOUJZUKULZIUJZNJUL
      ZLVTUMULGUNKULUOUPULUSZOUQUTLCIVSWAVTHUJUNGUNKULUOUPULUSHDVSVAULUTZOUQUTB
      CEFGIJKLMNOPQRSTUAUBURVQWBWCOUQVRUQUFZVQVSUQVBZVSVCVDZVKWBWCVLWDWFWEWDVRU
      IVEUNUFWFVRVFUIVRVGVHVRVIVMABCDEFGHIJVSKLMNPQRSTUAUBUCUDVJVNVOVP $.

    $d D l n $.  $d N l $.  $d R l $.
    ${
      $d A l $.  $d G l n $.
      pmatcollpw3fi1lem1.0 $e |- .0. = ( 0g ` A ) $.
      pmatcollpw3fi1lem1.h $e |- H = ( l e. ( 0 ... 1 )
                                       |-> if ( l = 0 , ( G ` 0 ) , .0. ) ) $.
      $( Lemma 1 for ~ pmatcollpw3fi1 .  (Contributed by AV, 6-Nov-2019.)
         (Revised by AV, 4-Dec-2019.) $)
      pmatcollpw3fi1lem1 $p |- ( ( ( N e. Fin /\ R e. Ring )
                         /\ G e. ( D ^m { 0 } )
                         /\ M = ( C gsum ( n e. { 0 }
                                  |-> ( ( n .^ X ) .* ( T ` ( G ` n ) ) ) ) ) )
                      -> M = ( C gsum ( n e. ( 0 ... 1 )
                               |-> ( ( n .^ X ) .* ( T ` ( H ` n ) ) ) ) ) ) $=
        ( cfn wcel crg wa cc0 csn cmap co cv cfv cmpt cgsu wceq c1 caddc cplusg
        w3a cfz simpr c0g cmnd pmatring ringmnd syl adantr ccmn ringcmn a1i cn0
        snfi simplll simpllr wf elmapi adantl ffvelrnda syl6eqel mat2pmatscmxcl
        elsni 0nn0 syl22anc ralrimiva gsummptcl eqid mndrid syl2anc cz 0z ax-mp
        fzsn eqcomi cif ad2antlr eqtrd iftrued fveq2 eqcomd 1nn0 nn0uz syl6eleq
        cuz eluzfz1 eleq1 mpbird wi ffvelrn imp fvmptd fveq2d oveq2d mpteq12dva
        ex cvv ovexd mndidcl wn 0p1e1 eqeq2i ax-1ne0 neii eqeq1 mtbiri sylbi wb
        notbid iffalsed syl6eq cmat fveq2i ad2antrr cbs oveq2i 0mat2pmat ancoms
        eluzfz2 fvexd clmod csca pmatlmod cmgp ply1moncl ply1ring sylan2 eleq2d
        matsca2 lmodvs0 gsumsnd oveq12d eqtr3d 3impa c0ex snid ffvelrnd matring
        ring0cl ifcld fmptd sylibr elfznn0 gsummptfzsplit 3adant3 eqtr4d mpteq1
        id feq2i ) NUIUJZFUKUJZULZJDUMUNZUOUPUJZMCHUVQHUQZOIUPZUVSJURZGURZLUPZU
        SZUTUPZVAZVEZMCHUMUMVBVCUPZVFUPZUVTUVSKURZGURZLUPZUSZUTUPZCHUMVBVFUPZUW
        LUSZUTUPUWGMCHUMUMVFUPZUWLUSZUTUPZCHUWHUNUWLUSUTUPZCVDURZUPZUWNUVPUVRUW
        FMUXBVAUVPUVRULZUWFULMUWEUXBUXCUWFVGUXCUWEUXBVAUWFUXCUWECVHURZUXAUPZUWE
        UXBUXCCVIUJZUWEBUJUXEUWEVAUVPUXFUVRUVPCUKUJZUXFCEFNRSVJZCVKVLZVMZUXCBHC
        UVQUWCTUVPCVNUJZUVRUVPUXGUXKUXHCVOVLVMZUVQUIUJUXCUMVRVPUXCUWCBUJZHUVQUX
        CUVSUVQUJZULZUVNUVOUWADUJZUVSVQUJZUXMUVNUVOUVRUXNVSUVNUVOUVRUXNVTUXCUVQ
        DUVSJUVRUVQDJWAZUVPJDUVQWBZWCWDUXNUXQUXCUXNUVSUMVQUVSUMWGZWHWEWCABCEFGI
        LDUVSUWANOUEUFUDRSTUAUBUCWFWIWJWKBUXACUWEUXDTUXAWLZUXDWLZWMWNUXCUWEUWSU
        XDUWTUXAUXCUWDUWRCUTUXCHUVQUWCUWQUWLUVQUWQVAUXCUWQUVQUMWOUJUWQUVQVAWPUM
        WRWQWSVPUXOUWBUWKUVTLUXOUWAUWJGUXOUWJUWAUXOQUVSQUQZUMVAZUMJURZPWTZUWAUW
        OKDKQUWOUYFUSVAZUXOUHVPUXOUYCUVSVAZULZUYFUYEUWAUYIUYDUYEPUYIUYCUVSUMUXO
        UYHVGUXNUVSUMVAZUXCUYHUXTXAXBXCUXNUYEUWAVAZUXCUYHUXNUYJUYKUXTUYJUWAUYEU
        VSUMJXDXEVLXAXBUXNUVSUWOUJZUXCUXNUYJUYLUXTUYJUYLUMUWOUJZUYJVBUMXIURZUJZ
        UYMUYJVBVQUYNVBVQUJZUYJXFVPXGXHUMVBXJVLUVSUMUWOXKXLVLWCUXCUXNUXPUVRUXNU
        XPXMZUVPUVRUXRUYQUXSUXRUXNUXPUVQDUVSJXNXTVLWCXOXPXEXQXRXSXRUXCUWTUXDUXC
        UWLBUXDHCUWHYATUXJUXCUMVBVCYBUVPUXDBUJZUVRUVPUXFUYRUXIBCUXDTUYBYCVLVMUX
        CUVSUWHVAZULZUWLUVTUXDLUPZUXDUYTUWKUXDUVTLUYTUWKAVHURZGURZUXDUYTUWJVUBG
        UYTQUVSUYFVUBUWOKYAUYGUYTUHVPUYTUYHULZUYFPVUBVUDUYDUYEPVUDUYDYDZUYJYDZU
        YSVUFUXCUYHUYSUVSVBVAZVUFUWHVBUVSYEYFZVUGUYJVBUMVAVBUMYGYHUVSVBUMYIYJYK
        XAUYHVUEVUFYLUYTUYHUYDUYJUYCUVSUMYIYMWCXLYNUGYOUYSUYLUXCUYSVUGUYLVUHVUG
        UYLVBUWOUJZVUGUYOVUIVUGVBVQUYNUYPVUGXFVPZXGXHUMVBUUCVLUVSVBUWOXKXLYKWCU
        YTAVHUUDXPXQUVPVUCUXDVAZUVRUYSUVOUVNVUKEFGNVUBUXDUDRANFYPUPVHUEYQCNEYPU
        PVHSYQUUAUUBYRXBXRUYTCUUEUJZUVTCUUFURZYSURZUJZVUAUXDVAUVPVULUVRUYSCEFNR
        SUUGYRUYTVUOUVTEYSURZUJZUYTUVOUXQVUQUVNUVOUVRUYSVTUYSUXQUXCUYSVUGUXQVUH
        VUGUXQUYPVUJUVSVBVQXKXLYKWCVUPUVSEFIEUUHURZORUCVURWLUBVUPWLUUIWNUVPVUOV
        UQYLUVRUYSUVPVUNVUPUVTUVPVUMEYSUVPEVUMUVOUVNEUKUJEVUMVAEFRUUJCENUKSUUMU
        UKXEXQUULYRXLLVUMVUNCUVTUXDVUMWLUAVUNWLUYBUUNWNXBUUOXEUUPUUQVMXBUURUVPU
        VRUWNUXBVAUWFUXCBUXAHCUMUWLTUYAUXLUMVQUJUXCWHVPUXCUVSUWIUJZULUVNUVOUWJD
        UJUXQUWLBUJUVNUVOUVRVUSVSUVNUVOUVRVUSVTUXCUWIDUVSKUXCUWODKWAUWIDKWAUXCQ
        UWOUYFDKUXCUYCUWOUJZULUYDUYEPDUVRUYEDUJZUVPVUTUVRUXRVVAUXSUXRUVQDUMJUXR
        UVLUMUVQUJUXRUMUUSUUTVPUVAVLXAUVPPDUJZUVRVUTUVPAUKUJVVBAFNUEUVBDAPUFUGU
        VCVLYRUVDUHUVEUWIUWODKUWHVBUMVFYEYTZUVMUVFWDVUSUXQUXCUVSUWHUVGWCABCEFGI
        LDUVSUWJNOUEUFUDRSTUAUBUCWFWIUVHUVIUVJUWMUWPCUTUWIUWOVAUWMUWPVAVVCHUWIU
        WOUWLUVKWQYTYO $.
    $}

    $d A f l n s $.  $d B g l n $.  $d C g s $.  $d D g l s $.  $d M g l $.
    $d N g $.  $d R f g l $.  $d T g s $.  $d X g s $.  $d .^ g s $.
    $d .* g s $.
    $( Lemma 2 for ~ pmatcollpw3fi1 .  (Contributed by AV, 6-Nov-2019.)
       (Revised by AV, 4-Dec-2019.) $)
    pmatcollpw3fi1lem2 $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                          -> ( E. f e. ( D ^m { 0 } ) M = ( C gsum ( n e. { 0 }
                                    |-> ( ( n .^ X ) .* ( T ` ( f ` n ) ) ) ) )
                    -> E. s e. NN E. f e. ( D ^m ( 0 ... s ) )
                       M = ( C gsum ( n e. ( 0 ... s )
                             |-> ( ( n .^ X ) .* ( T ` ( f ` n ) ) ) ) ) ) ) $=
      ( vg vl cc0 csn cv co cfv cmpt cgsu wceq cmap wrex cfn wcel w3a cfz fveq1
      ccrg cn fveq2d oveq2d mpteq2dv eqeq2d cbvrexv c0g cif crg crngring anim2i
      wa c1 3adant3 ad2antrr simplr simpr pmatcollpw3fi1lem1 syl3anc 1nn a1i wb
      eqid oveq2 mpteq1d rexeqbidv adantl wf wi elmapi c0ex snid ffvelrn sylan2
      ex syl imp matring ring0cl ifcld fmptd cvv cbs fvex eqeltri pm3.2i elmapg
      ovex mp1i mpbird adantr rspcedv rspcedvd mpdan rexlimdva syl5bi ) LCIUGUH
      ZIUIZNJUJZXTHUIZUKZGUKZKUJZULZUMUJZUNZHDXSUOUJZUPLCIXSYAXTUEUIZUKZGUKZKUJ
      ZULZUMUJZUNZUEYIUPMUQURZFVBURZLBURZUSZLCIUGOUIZUTUJZYEULZUMUJZUNZHDUUBUOU
      JZUPZOVCUPZYHYPHUEYIYBYJUNZYGYOLUUIYFYNCUMUUIIXSYEYMUUIYDYLYAKUUIYCYKGXTY
      BYJVAVDVEVFVEVGVHYTYPUUHUEYIYTYJYIURZVNZYPUUHUUKYPVNZLCIUGVOUTUJZYAXTUFUU
      MUFUIZUGUNZUGYJUKZAVIUKZVJZULZUKZGUKZKUJZULZUMUJZUNZUUHUULYQFVKURZVNZUUJY
      PUVEYTUVGUUJYPYQYRUVGYSYRUVFYQFVLZVMVPVQYTUUJYPVRUUKYPVSABCDEFGIJYJUUSKLM
      NUUQUFPQRSTUAUBUCUDUUQWEZUUSWEZVTWAUULUVEVNZUUGLCIUUMYEULZUMUJZUNZHDUUMUO
      UJZUPZOVOVCVOVCURUVKWBWCUUAVOUNZUUGUVPWDUVKUVQUUEUVNHUUFUVOUVQUUBUUMDUOUU
      AVOUGUTWFZVEUVQUUDUVMLUVQUUCUVLCUMUVQIUUBUUMYEUVRWGVEVGWHWIUULUVEUVPUULUV
      NUVEHUUSUVOUUKUUSUVOURZYPUUKUVSUUMDUUSWJZUUKUFUUMUURDUUSUUKUUNUUMURZVNUUO
      UUPUUQDUUKUWAUUPDURZUUJUWAUWBWKZYTUUJXSDYJWJZUWCYJDXSWLUWDUWAUWBUWAUWDUGX
      SURZUWBUWEUWAUGWMWNWCXSDUGYJWOWPWQWRWIWSYTUUQDURZUUJUWAYTAVKURZUWFYQYRUWG
      YSYRYQUVFUWGUVHAFMUCWTWPVPDAUUQUDUVIXAWRVQXBUVJXCDXDURZUUMXDURZVNUVSUVTWD
      UUKUWHUWIDAXEUKXDUDAXEXFXGUGVOUTXJXHDUUMUUSXDXDXIXKXLXMYBUUSUNZUVNUVEWDUU
      LUWJUVMUVDLUWJUVLUVCCUMUWJIUUMYEUVBUWJYDUVAYAKUWJYCUUTGXTYBUUSVAVDVEVFVEV
      GWIXNWSXOXPWQXQXR $.

    $( Write a polynomial matrix (over a commutative ring) as a finite sum of
       (at least two) products of variable powers and constant matrices with
       scalar entries.  (Contributed by AV, 6-Nov-2019.)  (Revised by AV,
       4-Dec-2019.) $)
    pmatcollpw3fi1 $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                          -> E. s e. NN E. f e. ( D ^m ( 0 ... s ) )
                M = ( C gsum ( n e. ( 0 ... s )
                               |-> ( ( n .^ X ) .* ( T ` ( f ` n ) ) ) ) ) ) $=
      ( cc0 cv cfz cfv cmpt cgsu wceq cmap wrex cn0 cfn wcel ccrg pmatcollpw3fi
      co w3a cn csn wo wi df-n0 rexeqi rexun bitri ax-1 c0ex oveq2 cz fzsn mp1i
      cun 0z eqtrd oveq2d eqeq2d rexeqbidv rexsn pmatcollpw3fi1lem2 com12 sylbi
      mpteq1d jaoi mpcom ) LCIUEOUFZUGUSZIUFZNJUSWJHUFUHGUHKUSZUIZUJUSZUKZHDWIU
      LUSZUMZOUNUMZMUOUPFUQUPLBUPUTZWPOVAUMZABCDEFGHIJKLMNOPQRSTUAUBUCUDURWQWSW
      POUEVBZUMZVCZWRWSVDZWQWPOVAWTVOZUMXBWPOUNXDVEVFWPOVAWTVGVHWSXCXAWSWRVIXAL
      CIWTWKUIZUJUSZUKZHDWTULUSZUMZXCWPXIOUEVJWHUEUKZWNXGHWOXHXJWIWTDULXJWIUEUE
      UGUSZWTWHUEUEUGVKUEVLUPXKWTUKXJVPUEVMVNVQZVRXJWMXFLXJWLXECUJXJIWIWTWKXLWE
      VRVSVTWAWRXIWSABCDEFGHIJKLMNOPQRSTUAUBUCUDWBWCWDWFWDWG $.
  $}

  ${
    pmatcollpwscmat.p $e |- P = ( Poly1 ` R ) $.
    pmatcollpwscmat.c $e |- C = ( N Mat P ) $.
    pmatcollpwscmat.b $e |- B = ( Base ` C ) $.
    pmatcollpwscmat.m1 $e |- .* = ( .s ` C ) $.
    pmatcollpwscmat.e1 $e |- .^ = ( .g ` ( mulGrp ` P ) ) $.
    pmatcollpwscmat.x $e |- X = ( var1 ` R ) $.
    pmatcollpwscmat.t $e |- T = ( N matToPolyMat R ) $.
    pmatcollpwscmat.a $e |- A = ( N Mat R ) $.
    pmatcollpwscmat.d $e |- D = ( Base ` A ) $.
    pmatcollpwscmat.u $e |- U = ( algSc ` P ) $.
    pmatcollpwscmat.k $e |- K = ( Base ` R ) $.
    pmatcollpwscmat.e2 $e |- E = ( Base ` P ) $.
    pmatcollpwscmat.s $e |- S = ( algSc ` P ) $.
    pmatcollpwscmat.1 $e |- .1. = ( 1r ` C ) $.
    pmatcollpwscmat.m2 $e |- M = ( Q .* .1. ) $.
    $( Lemma 1 for ~ pmatcollpwscmat .  (Contributed by AV, 2-Nov-2019.)
       (Revised by AV, 4-Dec-2019.) $)
    pmatcollpwscmatlem1 $p |- ( ( ( ( N e. Fin /\ R e. Ring )
                          /\ ( L e. NN0 /\ Q e. E ) ) /\ ( a e. N /\ b e. N ) )
             -> ( ( ( coe1 ` ( a M b ) ) ` L )
                        ( .s ` P ) ( 0 ( .g ` ( mulGrp ` P ) ) ( var1 ` R ) ) )
                = if ( a = b , ( U ` ( ( coe1 ` Q ) ` L ) ) , ( 0g ` P ) ) ) $=
      ( cfn wcel crg wa cn0 cv co cco1 cfv cc0 cv1 cmgp cmg cvsca c0g cif oveqi
      wceq ply1ring anim2i simpr anim12i df-3an sylibr scmatscmide sylan syl5eq
      w3a eqid fveq2d fveq1d fvif fveq1i iffv eqtri syl6eq oveq1d csn cxp coe1z
      ovif ad2antlr cvv fvexd simpl fvconst2g eqtrd csca clmod ply1lmod ringmgp
      syl cmnd 0nn0 a1i mgpbas mulgnn0cl syl3anc lmod0vs syl2anc ply1sca adantl
      vr1cl wb eqeq1d adantr mpbird ifeq2d cur ancomd coe1fvalcl eqcomd syl6eqr
      cbs eleq2d asclval ply1idvr1 oveq2d eqtr2d ifeq1d 3eqtrd ) RUQURZGUSURZUT
      ZPVAURZFLURZUTZUTZTVBZRURUAVBZRURUTZUTZPUUEUUFQVCZVDVEZVEZVFGVGVEZEVHVEZV
      IVEZVCZEVJVEZVCUUEUUFVNZPFVDVEZVEZPEVKVEZVDVEZVEZVLZUUOUUPVCZUUQUUSUUOUUP
      VCZUUTVLZUUQUUSJVEZUUTVLZUUHUUKUVCUUOUUPUUHUUKPUUQFUUTVLZVDVEZVEZUVCUUHPU
      UJUVJUUHUUIUVIVDUUHUUIUUEUUFFKNVCZVCZUVIQUVLUUEUUFUPVMUUDYREUSURZUUBWDZUU
      GUVMUVIVNUUDYRUVNUTZUUBUTUVOYTUVPUUCUUBYSUVNYREGUBVOZVPUUAUUBVQVRYRUVNUUB
      VSVTCLFEKUUENUUFRUUTUCUMUUTWEZUOUEWAWBWCWFWGUVKPUUQUURUVAVLZVEUVCPUVJUVSU
      UQFUUTVDWHWIUUQPUURUVAWJWKWLWMUUHUVDUUQUVEUVBUUOUUPVCZVLZUVFUUQUUSUVBUUOU
      UPWQUUDUWAUVFVNUUGUUDUUQUVTUUTUVEUUDUVTGVKVEZUUOUUPVCZUUTUUDUVBUWBUUOUUPU
      UDUVBPVAUWBWNWOZVEZUWBUUDPUVAUWDYSUVAUWDVNYRUUCEGUWBUUTUBUVRUWBWEWPWRWGUU
      DUWBWSURZUUAUTUWEUWBVNYTUWFUUCUUAYTGVKWTUUAUUBXAVRVAUWBPWSXBXHXCWMUUDUWCU
      UTVNZEXDVEZVKVEZUUOUUPVCZUUTVNZUUDEXEURZUUOLURZUWKYSUWLYRUUCEGUBXFWRYSUWM
      YRUUCYSUUMXIURZVFVAURZUULLURUWMYSUVNUWNUVQEUUMUUMWEZXGXHUWOYSXJXKLEGUULUU
      LWEZUBUMXSLUUNUUMVFUULLEUUMUWPUMXLUUNWEZXMXNWRUUPUWHUWILEUUOUUTUMUWHWEZUU
      PWEZUWIWEUVRXOXPYTUWGUWKXTUUCYTUWCUWJUUTYTUWBUWIUUOUUPYTGUWHVKYSGUWHVNYRE
      GUSUBXQZXRWFWMYAYBYCXCYDYBWCUUDUVFUVHVNUUGUUDUUQUVEUVGUUTUUDUVGUUSEYEVEZU
      UPVCZUVEUUDUUSUWHYJVEZURZUVGUXCVNUUDUXEUUSOURZUUDUUBUUAUTUXFUUDUUAUUBYTUU
      CVQYFUURLEGFOPUURWEUMUBULYGXHYTUXEUXFXTUUCYTUXDOUUSYTUXDGYJVEOYTUWHGYJYSU
      WHGVNYRYSGUWHUXAYHXRWFULYIYKYBYCJUUPUXBUWHUXDEUUSUKUWSUXDWEUWTUXBWEYLXHUU
      DUXBUUOUUSUUPYSUXBUUOVNYRUUCYSUUOUXBEGUUNUUMUULUBUWQUWPUWRYMYHWRYNYOYPYBY
      Q $.

    $d E a b i j $.  $d L a b i j $.  $d M a b i j $.  $d N a b i j $.
    $d P a b i j $.  $d Q a b i j $.  $d R a b i j $.  $d U a b $.
    $d .* a b $.  $d .1. a b $.
    $( Lemma 2 for ~ pmatcollpwscmat .  (Contributed by AV, 2-Nov-2019.)
       (Revised by AV, 4-Dec-2019.) $)
    pmatcollpwscmatlem2 $p |- ( ( ( N e. Fin /\ R e. Ring )
                                 /\ ( L e. NN0 /\ Q e. E ) )
                              -> ( T ` ( M decompPMat L ) )
                                 = ( ( U ` ( ( coe1 ` Q ) ` L ) ) .* .1. ) ) $=
      ( vi vj va vb cfn wcel crg wa cn0 cdecpmat co cfv cv cascl cmpt2 cco1 w3a
      simpl simpr adantr anim2i df-3an sylibr 1pmatscmul syl5eqel syl decpmatcl
      wceq simprl syl3anc sylanbrc mat2pmatval 3ad2ant1 3simpc decpmate syl2anc
      eqid 3jca fveq2d mpt2eq3dva cc0 cv1 cmg cvsca simp1lr simp2 simp3 matecld
      cmgp coe1fvalcl ply1scltm c0g cif pmatcollpwscmatlem1 eqidd oveq12 fveq1d
      cvv oveq1d adantl simprr ovexd ovmpt2d simpll ply1ring pm3.22 scmatscmide
      wral ply1sclcl sylan 3eqtr4d ralrimivva 0nn0 a1i ply1tmcl matbas2d mpbird
      wb eqmat eqtrd 3eqtrd ) RUSUTZGVAUTZVBZPVCUTZFLUTZVBZVBZQPVDVEZIVFZUOUPRR
      UOVGZUPVGZUUCVEZEVHVFZVFZVIZUOUPRRPUUEUUFQVEZVJVFZVFZUUHVFZVIZPFVJVFZVFZJ
      VFZKNVEZUUBYPYQUUCDUTZVKZUUDUUJWBUUBYRUUTUVAYRUUAVLUUBYQQBUTZYSUUTYRYQUUA
      YPYQVMVNZUUBYPYQYTVKZUVBUUBYRYTVBUVDUUAYTYRYSYTVMVOYPYQYTVPVQUVDQFKNVEBUN
      BCEFGKLNRTUAUBUKUCUMVRVSVTZYRYSYTWCZABCDEGPQRVATUAUBUGUHWAWDYPYQUUTVPWEUO
      UPADEGUUHIUUCRVAUFUGUHTUUHWKZWFVTUUBUOUPRRUUIUUNUUBUUERUTZUUFRUTZVKZUUGUU
      MUUHUVJYQUVBYSVKZUVHUVIVBUUGUUMWBUUBUVHUVKUVIUUBYQUVBYSUVCUVEUVFWLWGUUBUV
      HUVIWHBCEGUUEUUFPQRVATUAUBWIWJWMWNUUBUUOUOUPRRUUMWOGWPVFZEXCVFZWQVFZVEZEW
      RVFZVEZVIZUUSUUBUOUPRRUUNUVQUVJYQUUMOUTZUUNUVQWBYPYQUUAUVHUVIWSZUVJUUKLUT
      YSUVSUVJCBEUUEUUFLQRUAUKUBUUBUVHUVIWTUUBUVHUVIXAUUBUVHUVBUVIUVEWGXBUUBUVH
      YSUVIUVFWGUULLEGUUKOPUULWKUKTUJXDWJZUUHEGUVPUVNUUMOUVMUVLUJTUVLWKZUVPWKZU
      VMWKZUVNWKZUVGXEWJWNUUBUVRUUSWBZUQVGZURVGZUVRVEZUWGUWHUUSVEZWBZURRYBUQRYB
      ZUUBUWKUQURRRUUBUWGRUTZUWHRUTZVBZVBZPUWGUWHQVEZVJVFZVFZUVOUVPVEZUWGUWHWBU
      UREXFVFZXGZUWIUWJABCDEFGHIJKLMNOPQRSUQURTUAUBUCUDUEUFUGUHUIUJUKULUMUNXHUW
      PUOUPUWGUWHRRUVQUWTUVRXLUWPUVRXIUUEUWGWBUUFUWHWBVBZUVQUWTWBUWPUXCUUMUWSUV
      OUVPUXCPUULUWRUXCUUKUWQVJUUEUWGUUFUWHQXJWMXKXMXNUUBUWMUWNWCUUBUWMUWNXOUWP
      UWSUVOUVPXPXQUUBYPEVAUTZUURLUTZVKUWOUWJUXBWBUUBYPUXDUXEYPYQUUAXRZYRUXDUUA
      YQUXDYPEGTXSXNVNZUUBYQUUQOUTZUXEUVCUUBYTYSVBZUXHUUAUXIYRYSYTXTXNUUPLEGFOP
      UUPWKUKTUJXDVTJLEGUUQOTUIUJUKYCWJZWLCLUUREKUWGNUWHRUXAUAUKUXAWKUMUCYAYDYE
      YFUUBUVRBUTUUSBUTZUWFUWLYLUUBUOUPCBUVQELRVAUAUKUBUXFUXGUVJYQUVSWOVCUTZUVQ
      LUTUVTUWAUXLUVJYGYHLUUMWOEGUVPUVNOUVMUVLUJTUWBUWCUWDUWEUKYIWDYJUUBYPYQUXE
      UXKUXFUVCUXJBCEUURGKLNRTUAUBUKUCUMVRWDCBEUQURRUVRUUSUAUBYMWJYKYNYO $.

    $d B n $.  $d E n $.  $d M n $.  $d N n $.  $d P n $.  $d Q n $.  $d R n $.
    $d X n $.  $d .^ n $.
    $( Write a scalar matrix over polynomials (over a commutative ring) as a
       sum of the product of variable powers and constant scalar matrices with
       scalar entries.  (Contributed by AV, 2-Nov-2019.)  (Revised by AV,
       4-Dec-2019.) $)
    pmatcollpwscmat $p |- ( ( N e. Fin /\ R e. CRing /\ Q e. E )
                        -> M = ( C gsum ( n e. NN0
         |-> ( ( n .^ X ) .* ( ( U ` ( ( coe1 ` Q ) ` n ) ) .* .1. ) ) ) ) ) $=
      ( cfn wcel ccrg w3a cn0 cv co cdecpmat cfv cmpt cgsu cco1 wceq 1pmatscmul
      crg crngring syl5eqel syl3an2 pmatcollpw syld3an3 wa anim2i 3adant3 simp3
      adantr anim1i ancomd pmatcollpwscmatlem2 syl2anc oveq2d mpteq2dva eqtrd )
      RUOUPZGUQUPZFMUPZURZQCLUSLUTZSNVAZQWKVBVAIVCZOVAZVDZVEVAZCLUSWLWKFVFVCVCJ
      VCKOVAZOVAZVDZVEVAWGWHWIQBUPZQWPVGWHWGGVIUPZWIWTGVJZWGXAWIURQFKOVABUNBCEF
      GKMORTUAUBUKUCUMVHVKVLBCEGILNOQRSTUAUBUCUDUEUFVMVNWJWOWSCVEWJLUSWNWRWJWKU
      SUPZVOZWMWQWLOXDWGXAVOZXCWIVOWMWQVGWJXEXCWGWHXEWIWHXAWGXBVPVQVSXDWIXCWJWI
      XCWGWHWIVRVTWAABCDEFGHIJKMNOPWKQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNWBWCWDWEWD
      WF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ring isomorphism between polynomial matrices and polynomials over matrices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
<HTML>
The main result of this section is theorem ~ pmmpric , which shows that the
ring of polynomial matrices and the ring of polynomials having matrices as
coefficients (called "polynomials over matrices" in the following) are
isomorphic:<br>
` ( Poly1 `` ( N Mat R ) ) ~= ( N Mat ( Poly1 `` R ) ) `
<br><br>

Or in a more common notation:<br>
` ( N Mat ( Poly1 `` R ) ) ` corresponds to
M(n, R[[t]), the ring of n x n polynomial matrices over the ring R.<br>
` ( Poly1 `` ( N Mat R ) ) ` corresponds to M(n, R)[[t], the
polynomial ring over the ring of n x n matrices with entries in ring R.
<br><br>
` T = ( m e. B |-> ( Q gsum ( k e. NN0
|-> ( ( m decompPMat k ) .* ( k .^ X ) ) ) ) ) `
<br><br>
with ` B = ( Base `` ( N Mat ( Poly1 `` R ) ) ) ` and ` ( m decompPMat k )
= ( i e. N , j e. N |-> ( ( coe1 ` ( i m j ) ) ` k ) ) ) ` is an isomorphism
between these rings:<br>
<br>
` T : B -1-1-onto-> L ` with ` L = ( Base `` ( Poly1
`` ( N Mat R ) ) ) ` (see ~ pm2mpf1o and ~ pm2mprngiso ), and<br>
<br>
` I = ( p e. L |-> ( i e. N , j e. N |-> ( P gsum ( k e. NN0
|-> ( ( i ( ( coe1 ` p ) ` k ) j ) .x. ( k E Y ) ) ) ) ) ) `
<br><br>
is the corresponding inverse function:<br>
<br>
` ( T `` ( I `` O ) ) = O ) ` (see ~ mp2pm2mp ).
<br><br>

In this section, the following conventions are mostly used:
<ul>
<li>` R ` is a (unital) ring (see ~ df-ring )</li>
<li>` P = ( Poly1 `` R ) ` is the polynomial algebra over (the ring) ` R ` (see
      ~ df-ply1 )
  <ul>
  <li>` K = ( Base `` P ) ` is its base set (see ~ df-base )</li>
  <li>` Y = ( var1 `` R ) ` is its variable (see ~ df-vr1 )</li>
  <li>` .x. = ( .s `` P ) ` is its scalar multiplication (see ~ df-vsca or
        ~ lmodvscl )</li>
  <li>` E = ( .g `` ( mulGrp `` P ) ) ` is its exponentiation (see ~ df-mulg )
  </li>
  </ul></li>
<li>` A = ( N Mat R ) ` is the algebra of N x N matrices over (the ring) ` R `
      (see ~ df-mat )</li>
<li>` C = ( N Mat P ) ` is the algebra of N x N matrices over (the polynomial
 ring) ` P `.
  <ul>
  <li>` B = ( Base `` C ) ` is its base set</li>
  <li>` M e. B ` is a concrete polynomial matrix</li>
  </ul></li>
<li>` Q = ( Poly1 `` A ) ` is the polynomial algebra over (the matrix ring)
      ` A `.
  <ul>
  <li>` L = ( Base `` Q ) ` is its base set</li>
  <li>` O e. L ` is a concrete polynomial with matrix coefficients</li>
  <li>` X = ( var1 `` A ) ` is its variable</li>
  <li>` .* = ( .s `` Q ) ` is its scalar multiplication</li>
  <li>` .^ = ( .g `` ( mulGrp `` Q ) ) ` is its exponentiation</li></ul></li>
</ul></HTML>
$)

  $c pMatToMatPoly $.

  $( Extend class notation with the transformation of a polynomial matrix into
     a polynomial over matrices. $)
  cpm2mp $a class pMatToMatPoly $.

  ${
    $d a k n m q r $.
    $( Transformation of a polynomial matrix (over a ring) into a polynomial
       over matrices (over the same ring).  (Contributed by AV, 5-Dec-2019.) $)
    df-pm2mp $a |- pMatToMatPoly = ( n e. Fin , r e. _V
             |-> ( m e. ( Base ` ( n Mat ( Poly1 ` r ) ) )
                   |-> [_ ( n Mat r ) / a ]_ [_ ( Poly1 ` a ) / q ]_
                       ( q gsum ( k e. NN0 |-> ( ( m decompPMat k )
             ( .s ` q ) ( k ( .g ` ( mulGrp ` q ) ) ( var1 ` a ) ) ) ) ) ) ) $.
  $}

  ${
    $d A k $.  $d B k $.  $d K k $.  $d N k $.  $d Q k $.  $d R k $.  $d U k $.
    $d .* k $.  $d .^ k $.
    pm2mpf1lem.p $e |- P = ( Poly1 ` R ) $.
    pm2mpf1lem.c $e |- C = ( N Mat P ) $.
    pm2mpf1lem.b $e |- B = ( Base ` C ) $.
    pm2mpf1lem.m $e |- .* = ( .s ` Q ) $.
    pm2mpf1lem.e $e |- .^ = ( .g ` ( mulGrp ` Q ) ) $.
    pm2mpf1lem.x $e |- X = ( var1 ` A ) $.
    pm2mpf1lem.a $e |- A = ( N Mat R ) $.
    pm2mpf1lem.q $e |- Q = ( Poly1 ` A ) $.
    $( Lemma for ~ pm2mpf1 .  (Contributed by AV, 14-Oct-2019.)  (Revised by
       AV, 4-Dec-2019.) $)
    pm2mpf1lem $p |- ( ( ( N e. Fin /\ R e. Ring )
                               /\ ( U e. B /\ K e. NN0 ) )
           -> ( ( coe1 ` ( Q gsum ( k e. NN0
                           |-> ( ( U decompPMat k ) .* ( k .^ X ) ) ) ) ) ` K )
              = ( U decompPMat K ) ) $=
      ( cfn wcel crg wa cn0 cv cdecpmat cmpt cgsu cco1 cfv csb cbs eqid matring
      c0g adantr simpllr simplrl simpr decpmatcl syl3anc ralrimiva decpmatfsupp
      co cfsupp wbr ad2ant2lr simprr gsummoncoe1 csbov2g ad2antll oveq2d 3eqtrd
      wceq csbvarg ) LUBUCZFUDUCZUEZGBUCZKUFUCZUEZUEZKEHUFGHUGZUHVFZWEMIVFJVFUI
      UJVFUKULULHKWFUMZGHKWEUMZUHVFZGKUHVFWDWFEUNULZEAHIJAUNULZKMAUQULZUAWJUOSR
      VTAUDUCWCAFLTUPURWKUOZQWLUOZWDWFWKUCZHUFWDWEUFUCZUEVSWAWPWOVRVSWCWPUSVTWA
      WBWPUTWDWPVAABCWKDFWEGLUDNOPTWMVBVCVDVSWAHUFWFUIWLVGVHVRWBABCDFHGLWLNOPTW
      NVEVIVTWAWBVJVKWBWGWIVPVTWAHKGWEUHUFVLVMWDWHKGUHWBWHKVPVTWAHKUFVQVMVNVO
      $.
  $}

  ${
    $d B m n r $.  $d N k m n r $.  $d Q n r $.  $d R k m n r $.  $d V m n r $.
    $d X n r $.  $d a k m n q r $.  $d .* n r $.  $d .^ n r $.
    pm2mpval.p $e |- P = ( Poly1 ` R ) $.
    pm2mpval.c $e |- C = ( N Mat P ) $.
    pm2mpval.b $e |- B = ( Base ` C ) $.
    pm2mpval.m $e |- .* = ( .s ` Q ) $.
    pm2mpval.e $e |- .^ = ( .g ` ( mulGrp ` Q ) ) $.
    pm2mpval.x $e |- X = ( var1 ` A ) $.
    pm2mpval.a $e |- A = ( N Mat R ) $.
    pm2mpval.q $e |- Q = ( Poly1 ` A ) $.
    pm2mpval.t $e |- T = ( N pMatToMatPoly R ) $.
    $( Value of the transformation of a polynomial matrix into a polynomial
       over matrices.  (Contributed by AV, 5-Dec-2019.) $)
    pm2mpval $p |- ( ( N e. Fin /\ R e. V )
                   -> T = ( m e. B |-> ( Q gsum ( k e. NN0
                            |-> ( ( m decompPMat k ) .* ( k .^ X ) ) ) ) ) ) $=
      ( vn vr va vq cfn wcel wa cpm2mp cn0 cdecpmat cmpt cgsu cvv cpl1 cfv cmat
      co cbs cv1 cmgp cmg cvsca csb cmpt2 wceq df-pm2mp a1i simpl fveq2 oveq12d
      cv adantl fveq2d oveq2i eqtri fveq2i syl6eqr ovex fvexd simpr eqtrd eqidd
      adantr oveq123d mpteq2dv csbied oveq12 syl5eq mpteq12dv elex fvex eqeltri
      csbie mptex ovmpt2d ) LUHUIZFMUIZUJZGLFUKUTIBEHULIVNHVNZUMUTZXBNJUTZKUTZU
      NZUOUTZUNZUCXAUDUELFUHUPIUDVNZUEVNZUQURZUSUTZVAURZUFXIXJUSUTZUGUFVNZUQURZ
      UGVNZHULXCXBXOVBURZXQVCURZVDURZUTZXQVEURZUTZUNZUOUTZVFZVFZUNZXHUKUPUKUDUE
      UHUPYHVGVHXAHIUDUEUGUFVIVJXAXILVHZXJFVHZUJZUJZIXMYGBXGYKXMBVHXAYKXMLFUQUR
      ZUSUTZVAURZBYKXLYNVAYKXILXKYMUSYIYJVKYJXKYMVHYIXJFUQVLVOVMVPBCVAURZYOQCYN
      VACLDUSUTYNPDYMLUSOVQVRVSVRVTVOYLYGXNUQURZHULXCXBXNVBURZYQVCURZVDURZUTZYQ
      VEURZUTZUNZUOUTZXGUFXNYFUUEXIXJUSWAXOXNVHZUGXPYEUUEUPUUFXOUQWBUUFXQXPVHZU
      JZXQYQYDUUDUOUUHXQXPYQUUFUUGWCUUFXPYQVHUUGXOXNUQVLWFWDZUUHHULYCUUCUUHXCXC
      YAUUAYBUUBUUHXQYQVEUUIVPUUHXCWEUUHXBXBXRYRXTYTUUHXSYSVDUUHXQYQVCUUIVPVPUU
      HXBWEUUFXRYRVHUUGXOXNVBVLWFWGWGWHVMWIWPYKUUEXGVHXAYKYQEUUDXFUOYKYQLFUSUTZ
      UQURZEYKXNUUJUQXILXJFUSWJZVPZEAUQURUUKUBAUUJUQUAVSVRZVTYKHULUUCXEYKXCXCUU
      AXDUUBKYKUUBUUKVEURZKYKYQUUKVEUUMVPKEVEURUUOREUUKVEUUNVSVRVTYKXCWEYKXBXBY
      RNYTJYKYTUUKVCURZVDURZJYKYSUUPVDYKYQUUKVCUUMVPVPJEVCURZVDURUUQSUURUUPVDEU
      UKVCUUNVSVSVRVTYKXBWEYKYRUUJVBURZNYKXNUUJVBUULVPNAVBURUUSTAUUJVBUAVSVRVTW
      GWGWHVMVOWKWLWSWTVKWTFUPUIWSFMWMVOXHUPUIXAIBXGBYPUPQCVAWNWOWQVJWRWK $.

    $d M k m $.  $d Q m $.  $d X m $.  $d .* m $.  $d .^ m $.
    $( A polynomial matrix transformed into a polynomial over matrices.
       (Contributed by AV, 4-Oct-2019.)  (Revised by AV, 5-Dec-2019.) $)
    pm2mpfval $p |- ( ( N e. Fin /\ R e. V /\ M e. B )
             -> ( T ` M ) = ( Q gsum ( k e. NN0
                              |-> ( ( M decompPMat k ) .* ( k .^ X ) ) ) ) ) $=
      ( vm cfn wcel w3a cn0 cv cdecpmat co cmpt cgsu cvv pm2mpval 3adant3 oveq1
      wceq oveq1d mpteq2dv oveq2d adantl simp3 ovexd fvmptd ) LUEUFZFMUFZKBUFZU
      GZUDKEHUHUDUIZHUIZUJUKZVKNIUKZJUKZULZUMUKZEHUHKVKUJUKZVMJUKZULZUMUKZBGUNV
      FVGGUDBVPULURVHABCDEFGHUDIJLMNOPQRSTUAUBUCUOUPVJKURZVPVTURVIWAVOVSEUMWAHU
      HVNVRWAVLVQVMJVJKVKUJUQUSUTVAVBVFVGVHVCVIEVSUMVDVE $.

    ${
      $d A k $.  $d B b k $.  $d L k $.  $d N b k m $.  $d .* k $.
      $d b i k m $.  $d b j k m $.
      pm2mpcl.l $e |- L = ( Base ` Q ) $.
      $( The transformation of polynomial matrices into polynomials over
         matrices maps polynomial matrices to polynomials over matrices.
         (Contributed by AV, 5-Oct-2019.)  (Revised by AV, 5-Dec-2019.) $)
      pm2mpcl $p |- ( ( N e. Fin /\ R e. Ring /\ M e. B )
                      -> ( T ` M ) e. L ) $=
        ( vk cfn wcel crg w3a cfv cn0 cdecpmat cmpt cgsu pm2mpfval cvv c0g eqid
        cv co ccmn wa matring ply1ring ringcmn 3syl 3adant3 nn0ex adantr simpl2
        a1i cbs simpr decpmatcl syl3anc cmgp ply1tmcl fmptd csca clmod ply1lmod
        simpl3 syl eqidd ply1moncl cfsupp wbr decpmatfsupp 3adant1 wceq ply1sca
        sylan eqcomd fveq2d breqtrrd mptscmfsupp0 gsumcl eqeltrd ) LUEUFZFUGUFZ
        KBUFZUHZKGUIEUDUJKUDURZUKUSZXBMHUSZIUSZULZUMUSJABCDEFGUDHIKLUGMNOPQRSTU
        AUBUNXAUJJXFEUOEUPUIZUCXGUQZWRWSEUTUFZWTWRWSVAAUGUFZEUGUFXIAFLTVBZEAUAV
        CEVDVEVFUJUOUFXAVGVJZXAUDUJXEJXFXAXBUJUFZVAZXJXCAVKUIZUFZXMXEJUFXAXJXMW
        RWSXJWTXKVFZVHXNWSWTXMXPWRWSWTXMVIWRWSWTXMWAXAXMVLZABCXODFXBKLUGNOPTXOU
        QZVMVNZXRJXCXBEAIHXOEVOUIZMXSUASQYAUQZRUCVPVNXFUQVQXAXOUJEEVRUIZXCUDIJU
        OXDXGYCUPUIZXLXAXJEVSUFXQEAUAVTWBXAYCWCUCXTXAXJXMXDJUFXQJXBEAHYAMUASYBR
        UCWDWKXHYDUQQXAUDUJXCULZAUPUIZYDWEWSWTYEYFWEWFWRABCDFUDKLYFNOPTYFUQWGWH
        XAYCAUPXAXJYCAWIXQXJAYCEAUGUAWJWLWBWMWNWOWPWQ $.

      $d B b $.  $d L b $.  $d N b $.  $d R b $.  $d T b $.
      $( The transformation of polynomial matrices into polynomials over
         matrices is a function mapping polynomial matrices to polynomials over
         matrices.  (Contributed by AV, 5-Oct-2019.)  (Revised by AV,
         5-Dec-2019.) $)
      pm2mpf $p |- ( ( N e. Fin /\ R e. Ring ) -> T : B --> L ) $=
        ( vm vb vk cfn wcel crg wa cn0 cv cdecpmat cmpt cgsu cvv ovexd pm2mpval
        co cfv pm2mpcl 3expa fmpt2d ) KUFUGZFUHUGZUIZUCUDBEUEUJUCUKZUEUKZULURVG
        LHURIURUMZUNURJGUOVEVFBUGUIEVHUNUPABCDEFGUEUCHIKUHLMNOPQRSTUAUQVCVDUDUK
        ZBUGVIGUSJUGABCDEFGHIJVIKLMNOPQRSTUAUBUTVAVB $.

      $d A n $.  $d B a i j u w $.  $d L b n $.  $d N a i j u w x y $.
      $d Q k $.  $d P n $.  $d R a i j u w $.  $d T a b u w $.  $d T n $.
      $d .^ k $.  $d n u w x y $.  $d k u w $.  $d i j n $.  $d i j u x y $.
      $d b y $.
      $( The transformation of polynomial matrices into polynomials over
         matrices is a 1-1 function mapping polynomial matrices to polynomials
         over matrices.  (Contributed by AV, 14-Oct-2019.)  (Revised by AV,
         6-Dec-2019.) $)
      pm2mpf1 $p |- ( ( N e. Fin /\ R e. Ring ) -> T : B -1-1-> L ) $=
        ( vu vw vn va vb vk vx vy vi vj cfn wcel crg wa wf cv cfv wceq wral wf1
        wi pm2mpf cco1 cn0 wb matring adantr pm2mpcl adantrr 3expia adantld imp
        3expa w3a eqid ply1coe1eq bicomd syl3anc co cdecpmat cmpt simpll simplr
        cgsu simprl pm2mpfval ad2antrr fveq2d fveq1d simplll pm2mpf1lem syl2anc
        anim1i eqtrd simprr eqeq12d cmpt2 decpmatval sylan simpllr simp2 eleq2i
        cbs simp3 biimpi ad2antlr 3ad2ant1 syl6eleqr simp1r coe1fvalcl matbas2d
        matecld eqmat bitrd adantlr oveq1 oveq2 rspc2va cvv eqidd oveq12 adantl
        ad2antll fvexd ovmpt2d biimpd exp31 com14 syl ex com25 pm2.43i ralimdva
        impcom sylbid impancom mpbird ralrimivva dff13 sylanbrc ) KUMUNZFUOUNZU
        PZBJGUQUCURZGUSZUDURZGUSZUTZUUFUUHUTZVCZUDBVAUCBVABJGVBABCDEFGHIJKLMNOP
        QRSTUAUBVDUUEUULUCUDBBUUEUUFBUNZUUHBUNZUPZUPZUUJUEURZUUGVEUSZUSZUUQUUIV
        EUSZUSZUTZUEVFVAZUUKUUPAUOUNZUUGJUNZUUIJUNZUUJUVCVGUUEUVDUUOAFKSVHVIUUE
        UUMUVEUUNUUCUUDUUMUVEABCDEFGHIJUUFKLMNOPQRSTUAUBVJVOVKUUEUUOUVFUUEUUNUV
        FUUMUUCUUDUUNUVFABCDEFGHIJUUHKLMNOPQRSTUAUBVJVLVMVNUVDUVEUVFVPUVCUUJUUR
        JUUTEAUEUUGUUITUBUURVQUUTVQVRVSVTUUPUVCUUKUUPUVCUPZUUKUFURZUGURZUUFWAZU
        VHUVIUUHWAZUTZUGKVAUFKVAZUVGUVLUFUGKKUVGUVHKUNZUVIKUNZUPZUPZUVLUUQUVJVE
        USZUSZUUQUVKVEUSZUSZUTZUEVFVAZUVGUVPUWCUUPUVPUVCUWCUUPUVPUPZUVBUWBUEVFU
        WDUUQVFUNZUPZUVBUUFUUQWBWAZUUHUUQWBWAZUTZUWBUWFUUSUWGUVAUWHUWFUUSUUQEUH
        VFUUFUHURZWBWAUWJLHWAZIWAWCWFWAZVEUSZUSZUWGUWFUUQUURUWMUWFUUGUWLVEUUPUU
        GUWLUTZUVPUWEUUPUUCUUDUUMUWOUUCUUDUUOWDZUUCUUDUUOWEZUUEUUMUUNWGZABCDEFG
        UHHIUUFKUOLMNOPQRSTUAWHVTWIWJWKUWFUUEUUMUWEUPUWNUWGUTUUEUUOUVPUWEWLZUWD
        UUMUWEUUPUUMUVPUWRVIWOABCDEFUUFUHHIUUQKLMNOPQRSTWMWNWPUWFUVAUUQEUHVFUUH
        UWJWBWAUWKIWAWCWFWAZVEUSZUSZUWHUUPUVAUXBUTUVPUWEUUPUUQUUTUXAUUPUUIUWTVE
        UUPUUCUUDUUNUUIUWTUTUWPUWQUUEUUMUUNWQZABCDEFGUHHIUUHKUOLMNOPQRSTUAWHVTW
        JWKWIUWFUUEUUNUWEUPUXBUWHUTUWSUWDUUNUWEUUPUUNUVPUXCVIWOABCDEFUUHUHHIUUQ
        KLMNOPQRSTWMWNWPWRUWFUWIUIURZUJURZUKULKKUUQUKURZULURZUUFWAZVEUSZUSZWSZW
        AZUXDUXEUKULKKUUQUXFUXGUUHWAZVEUSZUSZWSZWAZUTZUJKVAUIKVAZUWBUUPUWEUWIUX
        SVGUVPUUPUWEUPZUWIUXKUXPUTZUXSUXTUWGUXKUWHUXPUUPUUMUWEUWGUXKUTUWRCBDUKU
        LUUQUUFKNOWTXAUUPUUNUWEUWHUXPUTUXCCBDUKULUUQUUHKNOWTXAWRUXTUXKAXEUSZUNU
        XPUYBUNUYAUXSVGUXTUKULAUYBUXJFFXEUSZKUOSUYCVQZUYBVQZUUCUUDUUOUWEWLZUUCU
        UDUUOUWEXBZUXTUXFKUNZUXGKUNZVPZUXHDXEUSZUNUWEUXJUYCUNUYJCBDUXFUXGUYKUUF
        KNUYKVQZOUXTUYHUYIXCZUXTUYHUYIXFZUYJUUFCXEUSZBUXTUYHUUFUYOUNZUYIUUOUYPU
        UEUWEUUMUYPUUNUUMUYPBUYOUUFOXDXGVIZXHXIOXJXNUUPUWEUYHUYIXKZUXIUYKDFUXHU
        YCUUQUXIVQUYLMUYDXLWNXMUXTUKULAUYBUXOFUYCKUOSUYDUYEUYFUYGUYJUXMUYKUNUWE
        UXOUYCUNUYJCBDUXFUXGUYKUUHKNUYLOUYMUYNUYJUUHUYOBUXTUYHUUHUYOUNZUYIUUPUY
        SUWEUUNUYSUUEUUMUUNUYSBUYOUUHOXDXGYEZVIXIOXJXNUYRUXNUYKDFUXMUYCUUQUXNVQ
        UYLMUYDXLWNXMAUYBFUIUJKUXKUXPSUYEXOWNXPXQUWDUWEUXSUWBVCZUVPUUPUWEVUAVCZ
        UVPUUPVUBVCUVPUXSUUPUWEUVPUWBUVPUXSUUPUWEUVPUWBVCVCVCZUVPUXSUPUVHUVIUXK
        WAZUVHUVIUXPWAZUTZVUCUXRVUFUVHUXEUXKWAZUVHUXEUXPWAZUTUIUJUVHUVIKKUXDUVH
        UTUXLVUGUXQVUHUXDUVHUXEUXKXRUXDUVHUXEUXPXRWRUXEUVIUTVUGVUDVUHVUEUXEUVIU
        VHUXKXSUXEUVIUVHUXPXSWRXTUVPUUPUWEVUFUWBUVPUUPUWEVUFUWBVCUVPUUPUPUWEUPZ
        VUFUWBVUIVUDUVSVUEUWAVUIUKULUVHUVIKKUXJUVSUXKYAVUIUXKYBUXFUVHUTUXGUVIUT
        UPZUXJUVSUTVUIVUJUUQUXIUVRVUJUXHUVJVEUXFUVHUXGUVIUUFYCWJWKYDUVNUVOUUPUW
        EWLZUVNUVOUUPUWEXBZVUIUUQUVRYFYGVUIUKULUVHUVIKKUXOUWAUXPYAVUIUXPYBVUJUX
        OUWAUTVUIVUJUUQUXNUVTVUJUXMUVKVEUXFUVHUXGUVIUUHYCWJWKYDVUKVULVUIUUQUVTY
        FYGWRYHYIYJYKYLYMYNYPVNYQYQYOYRVNUVQUUDUVJUYKUNZUVKUYKUNZUVLUWCVGUUPUUD
        UVCUVPUWQWIUVQCBDUVHUVIUYKUUFKNUYLOUVGUVNUVOWGZUVGUVNUVOWQZUVQUUFUYOBUV
        GUYPUVPUUOUYPUUEUVCUYQXHVIOXJXNUVQCBDUVHUVIUYKUUHKNUYLOVUOVUPUVQUUHUYOB
        UUPUYSUVCUVPUYTWIOXJXNUUDVUMVUNVPUWCUVLUVRUYKUVTDFUEUVJUVKMUYLUVRVQUVTV
        QVRVSVTYSYTUUOUUKUVMVGUUEUVCCBDUFUGKUUFUUHNOXOXHYSYLYQYTUCUDBJGUUAUUB
        $.
    $}

    $d A k $.  $d B k $.  $d K k $.  $d Q k $.  $d .* k $.  $d .^ k $.
    $( A coefficient of the polynomial over matrices which is the result of the
       transformation of a polynomial matrix is the matrix consisting of the
       coefficients in the polynomial entries of the polynomial matrix.
       (Contributed by AV, 20-Oct-2019.)  (Revised by AV, 5-Dec-2019.) $)
    pm2mpcoe1 $p |- ( ( ( N e. Fin /\ R e. Ring )
                              /\ ( M e. B /\ K e. NN0 ) )
                      -> ( ( coe1 ` ( T ` M ) ) ` K ) = ( M decompPMat K ) ) $=
      ( vk cfn wcel crg wa cn0 cfv cco1 cv cdecpmat cmpt cgsu csb simpll simplr
      co wceq simprl pm2mpfval syl3anc fveq2d fveq1d cbs c0g eqid matring simpr
      adantr decpmatcl ralrimiva wbr decpmatfsupp ad2ant2lr gsummoncoe1 csbov2g
      cfsupp adantl csbvarg oveq2d eqtrd 3eqtrd ) LUDUEZFUFUEZUGZKBUEZJUHUEZUGZ
      UGZJKGUIZUJUIZUIJEUCUHKUCUKZULURZWMMHURIURUMUNURZUJUIZUIUCJWNUOZKJULURZWJ
      JWLWPWJWKWOUJWJWDWEWGWKWOUSWDWEWIUPWDWEWIUQZWFWGWHUTZABCDEFGUCHIKLUFMNOPQ
      RSTUAUBVAVBVCVDWJWNEVEUIZEAUCHIAVEUIZJMAVFUIZUAXAVGSRWFAUFUEWIAFLTVHVJXBV
      GZQXCVGZWJWNXBUEZUCUHWJWMUHUEZUGWEWGXGXFWJWEXGWSVJWJWGXGWTVJWJXGVIABCXBDF
      WMKLUFNOPTXDVKVBVLWEWGUCUHWNUMXCVRVMWDWHABCDFUCKLXCNOPTXEVNVOWIWHWFWGWHVI
      VSVPWIWQWRUSZWFWHXHWGWHWQKUCJWMUOZULURWRUCJKWMULUHVQWHXIJKULUCJUHVTWAWBVS
      VSWC $.

    $d C k $.  $d X k $.
    $( The transformation of the identity polynomial matrix into polynomials
       over matrices results in the identity of the polynomials over matrices.
       (Contributed by AV, 18-Oct-2019.)  (Revised by AV, 5-Dec-2019.) $)
    idpm2idmp $p |- ( ( N e. Fin /\ R e. Ring )
                            -> ( T ` ( 1r ` C ) ) = ( 1r ` Q ) ) $=
      ( vk cfn wcel crg wa cur cfv cn0 cdecpmat cmpt cgsu cc0 wceq c0g pmatring
      cv co cif ringidcl syl pm2mpfval mpd3an3 decpmatid 3expa oveq1d mpteq2dva
      eqid oveq2d csb ovif csca matring ply1sca adantr fveq2d cbs ply1lmod cmgp
      clmod ply1moncl sylan lmodvs1 syl2anc lmod0vs ifeq12d syl5eq cvv ply1ring
      eqtrd cmnd ringmnd 3syl nn0ex 0nn0 ralrimiva gsummpt1n0 c0ex csbov1g mp1i
      a1i csbvarg ply1idvr1 3eqtrd ) JUBUCZFUDUCZUEZCUFUGZGUGZEUAUHXGUAUPZUIUQZ
      XIKHUQZIUQZUJZUKUQZEUAUHXIULUMZAUFUGZAUNUGZURZXKIUQZUJZUKUQZEUFUGZXDXEXGB
      UCZXHXNUMXFCUDUCYCCDFJLMUOBCXGNXGVGZUSUTABCDEFGUAHIXGJUDKLMNOPQRSTVAVBXFX
      MXTEUKXFUAUHXLXSXFXIUHUCZUEZXJXRXKIXDXEYEXJXRUMACDFXPXGXIJXQLMYDRXQVGXPVG
      VCVDVEVFVHXFYAEUAUHXOXKEUNUGZURZUJZUKUQUAULXKVIZYBXFXTYIEUKXFUAUHXSYHYFXS
      XOXPXKIUQZXQXKIUQZURYHXOXPXQXKIVJYFXOYKXKYLYGYFYKEVKUGZUFUGZXKIUQZXKYFXPY
      NXKIYFAYMUFXFAYMUMZYEXFAUDUCZYPAFJRVLZEAUDSVMUTVNZVOVEYFEVSUCZXKEVPUGZUCZ
      YOXKUMXFYTYEXFYQYTYREASVQUTVNZXFYQYEUUBYRUUAXIEAHEVRUGZKSQUUDVGZPUUAVGZVT
      WAZIYNYMUUAEXKUUFYMVGZOYNVGWBWCWIYFYLYMUNUGZXKIUQZYGYFXQUUIXKIYFAYMUNYSVO
      VEYFYTUUBUUJYGUMUUCUUGIYMUUIUUAEXKYGUUFUUHOUUIVGYGVGZWDWCWIWEWFVFVHXFXKUA
      YIEUHWGULYGUUKXFYQEUDUCEWJUCYREASWHEWKWLUHWGUCXFWMWTULUHUCXFWNWTYIVGXFUUB
      UAUHUUGWOWPXFYJUAULXIVIZKHUQZULKHUQZYBULWGUCZYJUUMUMXFWQUAULXIKHWGWRWSXFU
      ULULKHUUOUULULUMXFWQUAULWGXAWSVEXFYQUUNYBUMYREAHUUDKSQUUEPXBUTXCXCXC $.
  $}

  ${
    $d A c $.  $d A s x $.  $d L i j k $.  $d L k s x $.  $d I i j k $.
    $d I s x $.  $d J i j k $.  $d J s x $.  $d N i j k $.  $d N s x $.
    $d O c $.  $d O i j k $.  $d O s x $.  $d R i j k $.  $d R s x $.
    mptcoe1matfsupp.a $e |- A = ( N Mat R ) $.
    mptcoe1matfsupp.q $e |- Q = ( Poly1 ` A ) $.
    mptcoe1matfsupp.l $e |- L = ( Base ` Q ) $.
    $( The mapping extracting the entries of the coefficient matrices of a
       polynomial over matrices at a fixed position is finitely supported.
       (Contributed by AV, 6-Oct-2019.)  (Proof shortened by AV,
       23-Dec-2019.) $)
    mptcoe1matfsupp $p |- ( ( ( N e. Fin /\ R e. Ring /\ O e. L )
                                 /\ I e. N /\ J e. N )
                            -> ( k e. NN0 |-> ( I ( ( coe1 ` O ) ` k ) J ) )
                               finSupp ( 0g ` R ) ) $=
      ( vx vs wcel cfv cv cn0 wa wceq vc vi vj cfn crg w3a cbs co cvv c0g fvexd
      cco1 eqid simp2 adantr simp3 3ad2ant1 coe1fvalcl sylan matecld clt wbr wi
      wral wrex cmap cfsupp crab coe1fsupp elrabi 3syl fvex jctir fsuppmapnn0ub
      csb coe1sfi syl sylc csbov csbfv oveqi eqtri a1i oveq adantl cmpt2 mat0op
      3adant3 eqidd ovmpt2d ad4antr exp31 a2d ralimdva reximdva mpd mptnn0fsupp
      3eqtrd ) HUDOZCUEOZIGOZUFZEHOZFHOZUFZMCUGPZEFDQZIULPZPZUHZDUICUJPZNXECUJU
      KZXEXGROZSAAUGPZCEFXFXIHJXFUMXNUMZXEXCXMXBXCXDUNZUOXEXDXMXBXCXDUPZUOXEXAX
      MXIXNOXBXCXAXDWSWTXAUPUQZXHGBAIXNXGXHUMZLKXOURUSUTXENQZMQZVAVBZYAXHPZAUJP
      ZTZVCZMRVDZNRVEZYBDYAXJVOZXKTZVCZMRVDZNRVEXEXHXNRVFUHZOZYDUIOZSXHYDVGVBZY
      HXEYNYOXEXAXHUAQYDVGVBZUAYMVHOYNXRXHGBAUAIXNYDXSLKYDUMZXOVIYQUAXHYMVJVKAU
      JVLVMXEXAYPXRXHGBAIYDXSLKYRVPVQMXNNXHUIYDVNVRXEYGYLNRXEXTROZSZYFYKMRYTYAR
      OZSZYBYEYJUUBYBYEYJUUBYBSZYESZYIEFYCUHZEFYDUHZXKYIUUETUUDYIEFDYAXIVOZUHUU
      EDYAEFXIVSUUGYCEFDYAXHVTWAWBWCYEUUEUUFTUUCEFYCYDWDWEXEUUFXKTYSUUAYBYEXEUB
      UCEFHHXKXKYDUIXBXCYDUBUCHHXKWFTZXDWSWTUUHXAACUBUCHXKJXKUMWGWHUQXEUBQETUCQ
      FTSSXKWIXPXQXLWJWKWRWLWMWNWOWPWQ $.
  $}

  ${
    $d N i j p $.  $d E p $.  $d L p $.  $d P p $.  $d V p $.  $d Y p $.
    $d O i j k p $.  $d .x. k p $.
    mply1topmat.a $e |- A = ( N Mat R ) $.
    mply1topmat.q $e |- Q = ( Poly1 ` A ) $.
    mply1topmat.l $e |- L = ( Base ` Q ) $.
    mply1topmat.p $e |- P = ( Poly1 ` R ) $.
    mply1topmat.m $e |- .x. = ( .s ` P ) $.
    mply1topmat.e $e |- E = ( .g ` ( mulGrp ` P ) ) $.
    mply1topmat.y $e |- Y = ( var1 ` R ) $.
    ${
      $d I k $.  $d J k $.  $d L k $.  $d N k $.  $d P k $.  $d R k $.
      $( Lemma for ~ mply1topmatcl .  (Contributed by AV, 6-Oct-2019.) $)
      mply1topmatcllem $p |- ( ( ( N e. Fin /\ R e. Ring /\ O e. L )
                                 /\ I e. N /\ J e. N ) -> ( k e. NN0
                                |-> ( ( I ( ( coe1 ` O ) ` k ) J )
                                      .x. ( k E Y ) ) ) finSupp ( 0g ` P ) ) $=
        ( cfn wcel crg w3a cvv cn0 cv cco1 cfv cbs c0g nn0ex a1i clmod ply1lmod
        co 3ad2ant2 3ad2ant1 csca wceq simp12 ply1sca syl eqid wa cmgp ply1ring
        ovexd cmnd ringmgp adantr simpr vr1cl mulgnn0cl syl3anc mptcoe1matfsupp
        mgpbas mptscmfsupp0 ) KUAUBZDUCUBZLJUBZUDZHKUBZIKUBZUDZUEUFBDHIFUGZLUHU
        IUIZUPFEBUJUIZUEWFMGUPZBUKUIZDUKUIZUFUEUBWEULUMWBWCBUNUBZWDVTVSWLWABDQU
        OUQURWEVTDBUSUIUTVSVTWAWCWDVABDUCQVBVCWHVDZWEWFUFUBZVEZHIWGVHWOBVFUIZVI
        UBZWNMWHUBZWIWHUBWEWQWNWBWCWQWDVTVSWQWAVTBUCUBWQBDQVGBWPWPVDZVJVCUQURVK
        WEWNVLWEWRWNWBWCWRWDVTVSWRWAWHBDMTQWMVMUQURVKWHGWPWFMWHBWPWSWMVQSVNVOWJ
        VDWKVDRACDFHIJKLNOPVPVR $.
    $}

    mply1topmat.i $e |- I = ( p e. L |-> ( i e. N , j e. N |-> ( P gsum
                                  ( k e. NN0 |-> ( ( i ( ( coe1 ` p ) ` k ) j )
                                                   .x. ( k E Y ) ) ) ) ) ) $.
    $( A polynomial over matrices transformed into a polynomial matrix. ` I `
       is the inverse function of the transformation ` T ` of polynomial
       matrices into polynomials over matrices: ` ( T `` ( I `` O ) ) = O ) `
       (see ~ mp2pm2mp ).  (Contributed by AV, 6-Oct-2019.) $)
    mply1topmatval $p |- ( ( N e. V /\ O e. L )
             -> ( I ` O ) = ( i e. N , j e. N |-> ( P gsum
                                  ( k e. NN0 |-> ( ( i ( ( coe1 ` O ) ` k ) j )
                                                 .x. ( k E Y ) ) ) ) ) ) $=
      ( wcel wa cn0 cv cco1 cfv cmpt cgsu cmpt2 cvv wceq a1i fveq2 fveq1d oveqd
      co oveq1d mpteq2dv oveq2d mpt2eq3dv adantl simpr mpt2exga syldan fvmptd
      simpl ) LNUEZMKUEZUFZPMFGLLBHUGFUHZGUHZHUHZPUHZUIUJZUJZUTZVPOIUTZEUTZUKZU
      LUTZUMZFGLLBHUGVNVOVPMUIUJZUJZUTZWAEUTZUKZULUTZUMZKJUNJPKWEUKUOVMUDUPVQMU
      OZWEWLUOVMWMFGLLWDWKWMWCWJBULWMHUGWBWIWMVTWHWAEWMVSWGVNVOWMVPVRWFVQMUIUQU
      RUSVAVBVCVDVEVKVLVFVKVLVKWLUNUEVKVLVJFGLLWKNNVGVHVI $.

    $d L i j k $.  $d N k $.  $d P i j k $.  $d R i j k $.
    mply1topmatcl.c $e |- C = ( N Mat P ) $.
    mply1topmatcl.b $e |- B = ( Base ` C ) $.
    $( A polynomial over matrices transformed into a polynomial matrix is a
       polynomial matrix.  (Contributed by AV, 6-Oct-2019.) $)
    mply1topmatcl $p |- ( ( N e. Fin /\ R e. Ring /\ O e. L )
                          -> ( I ` O ) e. B ) $=
      ( cfn wcel crg w3a cfv cn0 cv cco1 co cmpt cgsu cmpt2 wceq mply1topmatval
      3adant2 cbs cvv eqid simp1 cpl1 fvex eqeltri a1i c0g ply1ring ringcmn syl
      ccmn 3ad2ant2 3ad2ant1 nn0ex wa clmod csca ply1lmod adantr simpl2 simpl13
      simpl3 wf coe1f ffvelrnd matecld ply1sca eqcomd fveq2d eleqtrrd cmgp cmnd
      simpr ringmgp vr1cl mgpbas syl3anc lmodvscl fmptd mply1topmatcllem gsumcl
      mulgnn0cl matbas2d eqeltrd ) NUHUIZFUJUIZOMUIZUKZOLULZHINNDJUMHUNZIUNZJUN
      ZOUOULZULZUPZXPPKUPZGUPZUQZURUPZUSZBXIXKXMYDUTXJADEFGHIJKLMNOUHPQRSTUAUBU
      CUDUEVAVBXLHICBYCDDVCULZNVDUFYEVEZUGXIXJXKVFDVDUIXLDFVGULVDUAFVGVHVIVJXLX
      NNUIZXONUIZUKZUMYEYBDVDDVKULZYFYJVEXLYGDVOUIZYHXJXIYKXKXJDUJUIZYKDFUAVLZD
      VMVNVPVQUMVDUIYIVRVJYIJUMYAYEYBYIXPUMUIZVSZDVTUIZXSDWAULZVCULZUIXTYEUIZYA
      YEUIYIYPYNXLYGYPYHXJXIYPXKDFUAWBVPVQWCYOXSFVCULZYRYOAAVCULZFXNXOYTXRNRYTV
      EUUAVEZXLYGYHYNWDXLYGYHYNWFYOUMUUAXPXQYOXKUMUUAXQWGXIXJXKYGYHYNWEXQMEAOUU
      AXQVETSUUBWHVNYIYNWQZWIWJYIYRYTUTZYNXLYGUUDYHXLYQFVCXJXIYQFUTXKXJFYQDFUJU
      AWKWLVPWMVQWCWNYODWOULZWPUIZYNPYEUIZYSYIUUFYNXLYGUUFYHXLYLUUFXJXIYLXKYMVP
      DUUEUUEVEZWRVNVQWCUUCYIUUGYNXLYGUUGYHXJXIUUGXKYEDFPUDUAYFWSVPVQWCYEKUUEXP
      PYEDUUEUUHYFWTUCXFXAXSGYQYRYEDXTYFYQVEUBYRVEXBXAYBVEXCADEFGJKXNXOMNOPRSTU
      AUBUCUDXDXEXGXH $.
  $}

  ${
    $d E p $.  $d L p $.  $d N i j p $.  $d O i j p $.  $d O k p $.  $d P p $.
    $d R p $.  $d Y p $.  $d .x. p $.
    mp2pm2mp.a $e |- A = ( N Mat R ) $.
    mp2pm2mp.q $e |- Q = ( Poly1 ` A ) $.
    mp2pm2mp.l $e |- L = ( Base ` Q ) $.
    mp2pm2mp.m $e |- .x. = ( .s ` P ) $.
    mp2pm2mp.e $e |- E = ( .g ` ( mulGrp ` P ) ) $.
    mp2pm2mp.y $e |- Y = ( var1 ` R ) $.
    mp2pm2mp.i $e |- I = ( p e. L |-> ( i e. N , j e. N |-> ( P gsum
                                  ( k e. NN0 |-> ( ( i ( ( coe1 ` p ) ` k ) j )
                                                   .x. ( k E Y ) ) ) ) ) ) $.
    $( Lemma 1 for ~ mp2pm2mp .  (Contributed by AV, 9-Oct-2019.)  (Revised by
       AV, 5-Dec-2019.) $)
    mp2pm2mplem1 $p |- ( ( N e. Fin /\ R e. Ring /\ O e. L )
                       -> ( I ` O ) = ( i e. N , j e. N |-> ( P gsum ( k e. NN0
                  |-> ( ( i ( ( coe1 ` O ) ` k ) j ) .x. ( k E Y ) ) ) ) ) ) $=
      ( cfn wcel crg w3a cn0 cv cco1 cfv co cmpt cgsu cmpt2 cvv wceq a1i fveq1d
      fveq2 oveqd oveq1d mpteq2dv oveq2d mpt2eq3dv simp3 simp1 mpt2exga syl2anc
      adantl fvmptd ) LUCUDZDUEUDZMKUDZUFZOMFGLLBHUGFUHZGUHZHUHZOUHZUIUJZUJZUKZ
      VQNIUKZEUKZULZUMUKZUNZFGLLBHUGVOVPVQMUIUJZUJZUKZWBEUKZULZUMUKZUNZKJUOJOKW
      FULUPVNUBUQVRMUPZWFWMUPVNWNFGLLWEWLWNWDWKBUMWNHUGWCWJWNWAWIWBEWNVTWHVOVPW
      NVQVSWGVRMUIUSURUTVAVBVCVDVIVKVLVMVEVNVKVKWMUOUDVKVLVMVFZWOFGLLWLUCUCVGVH
      VJ $.

    $d L k $.  $d P i j k $.  $d R k $.  $d .x. k $.
    mp2pm2mplem2.p $e |- P = ( Poly1 ` R ) $.
    ${
      $d L i j k $.  $d N k $.  $d R i j $.
      mp2pm2mplem2.c $e |- C = ( N Mat P ) $.
      mp2pm2mplem2.b $e |- B = ( Base ` C ) $.
      $( Lemma 2 for ~ mp2pm2mp .  (Contributed by AV, 10-Oct-2019.)  (Revised
         by AV, 5-Dec-2019.) $)
      mp2pm2mplem2 $p |- ( ( N e. Fin /\ R e. Ring /\ O e. L )
                           -> ( i e. N , j e. N |-> ( P gsum ( k e. NN0
             |-> ( ( i ( ( coe1 ` O ) ` k ) j ) .x. ( k E Y ) ) ) ) ) e. B ) $=
        ( cfn wcel crg w3a cn0 cv cco1 cfv co cmpt cgsu cbs eqid simp1 ply1ring
        3ad2ant2 cvv c0g ccmn ringcmn syl 3ad2ant1 a1i wa simpl12 simpl2 simpl3
        nn0ex simp13 coe1fvalcl sylan matecld simpr cmgp ply1tmcl syl3anc fmptd
        mply1topmatcllem gsumcl matbas2d ) NUHUIZFUJUIZOMUIZUKZHICBDJULHUMZIUMZ
        JUMZOUNUOZUOZUPZWNPKUPGUPZUQZURUPDDUSUOZNUJUFWTUTZUGWHWIWJVAWIWHDUJUIZW
        JDFUEVBZVCWKWLNUIZWMNUIZUKZULWTWSDVDDVEUOZXAXGUTWKXDDVFUIZXEWIWHXHWJWIX
        BXHXCDVGVHVCVIULVDUIXFVOVJXFJULWRWTWSXFWNULUIZVKZWIWQFUSUOZUIXIWRWTUIWH
        WIWJXDXEXIVLXJAAUSUOZFWLWMXKWPNRXKUTZXLUTZWKXDXEXIVMWKXDXEXIVNXFWJXIWPX
        LUIWHWIWJXDXEVPWOMEAOXLWNWOUTTSXNVQVRVSXFXIVTWTWQWNDFGKXKDWAUOZPXMUEUCU
        AXOUTUBXAWBWCWSUTWDADEFGJKWLWMMNOPRSTUEUAUBUCWEWFWG $.
    $}

    $d E i j $.  $d K a b i j $.  $d L a b i j $.  $d N a b k $.  $d O a b $.
    $d R a b i j $.  $d Y i j $.  $d .x. i j $.
    ${
      $d E a b $.  $d N i j k $.  $d P a b $.  $d Y a b $.  $d .x. a b $.
      $( Lemma 3 for ~ mp2pm2mp .  (Contributed by AV, 10-Oct-2019.)  (Revised
         by AV, 5-Dec-2019.) $)
      mp2pm2mplem3 $p |- ( ( ( N e. Fin /\ R e. Ring /\ O e. L )
                 /\ K e. NN0 ) -> ( ( I ` O ) decompPMat K )
                         = ( i e. N , j e. N |-> ( ( coe1 ` ( P gsum ( k e. NN0
          |-> ( ( i ( ( coe1 ` O ) ` k ) j ) .x. ( k E Y ) ) ) ) ) ` K ) ) ) $=
        ( va vb cfn wcel crg w3a cn0 wa cfv cdecpmat co cv cco1 cmpt cgsu cmpt2
        wceq mp2pm2mplem1 oveq1d adantr cmat eqid mp2pm2mplem2 decpmatval sylan
        cbs cvv eqidd weq oveq12 oveq2d adantl simp2 simp3 ovexd ovmpt2d fveq2d
        mpteq2dv fveq1d mpt2eq3dva oveq1 simpl mpteq2dva cbvmpt2v syl6eq 3eqtrd
        ) MUGUHDUIUHNLUHUJZKUKUHZULZNJUMZKUNUOZFGMMBHUKFUPZGUPZHUPZNUQUMUMZUOZW
        ROIUOZEUOZURZUSUOZUTZKUNUOZUEUFMMKUEUPZUFUPZXEUOZUQUMZUMZUTZFGMMKXDUQUM
        ZUMZUTZWKWOXFVAWLWKWNXEKUNABCDEFGHIJLMNOPQRSTUAUBUCVBVCVDWKXEMBVEUOZVJU
        MZUHWLXFXLVAAXQXPBCDEFGHIJLMNOPQRSTUAUBUCUDXPVFZXQVFZVGXPXQBUEUFKXEMXRX
        SVHVIWMXLUEUFMMKBHUKXGXHWSUOZXAEUOZURZUSUOZUQUMZUMZUTXOWMUEUFMMXKYEWMXG
        MUHZXHMUHZUJZKXJYDYHXIYCUQYHFGXGXHMMXDYCXEVKYHXEVLFUEVMGUFVMULZXDYCVAYH
        YIXCYBBUSYIHUKXBYAYIWTXTXAEWPXGWQXHWSVNVCWBVOVPWMYFYGVQWMYFYGVRYHBYBUSV
        SVTWAWCWDUEUFFGMMYEXNKBHUKWPXHWSUOZXAEUOZURZUSUOZUQUMZUMUEFVMZKYDYNYOYC
        YMUQYOYBYLBUSYOHUKYAYKYOXTYJXAEXGWPXHWSWEVCWBVOWAWCUFGVMZKYNXMYPYMXDUQY
        PYLXCBUSYPHUKYKXBYPWRUKUHZULZYJWTXAEYRXHWQWPWSYPYQWFVOVCWGVOWAWCWHWIWJ
        $.
    $}

    ${
      $d A i j k s x $.  $d E k s x $.  $d E l $.  $d K k s x $.  $d K l $.
      $d L l $.  $d L s x $.  $d N l s $.  $d N x $.  $d O l $.  $d O s x $.
      $d P l $.  $d P s x $.  $d R l $.  $d R s x $.  $d Y l $.  $d Y k s x $.
      $d .x. l $.  $d .x. s x $.  $d a b s $.  $d i j k l $.
      $( Lemma 4 for ~ mp2pm2mp .  (Contributed by AV, 12-Oct-2019.)  (Revised
         by AV, 5-Dec-2019.) $)
      mp2pm2mplem4 $p |- ( ( ( N e. Fin /\ R e. Ring /\ O e. L )
                               /\ K e. NN0 )
                      -> ( ( I ` O ) decompPMat K ) = ( ( coe1 ` O ) ` K ) ) $=
        ( vs vx va vb vl cfn wcel crg w3a cn0 wa cfv cdecpmat co cco1 cmpt cgsu
        cv cmpt2 mp2pm2mplem3 clt wbr c0g wceq wi wral cc0 cfz cif cbs ply1ring
        eqid ccmn 3ad2ant2 syl ad3antrrr 3ad2ant1 simpl2 ad2antrr adantr simpl3
        ringcmn coe1fvalcl matecld cmgp ply1tmcl syl3anc ralrimiva simp1lr oveq
        sylan simpr oveq1d csca cvv 3simpa mat0op simprl simprr ovmpt2d syl2anc
        weq fveq2d 3eqtrd exp31 a2d breq2 fveq2 oveqd eqeq1d imbi12d mpt2eq3dva
        eqtrd syl2an adantl ovex fvex a1i mpteq2dva oveq2d ad3antlr wn elfz2nn0
        cle cr nn0re ad2antlr wb mpbird ex imp sylancl impcom csb ovexd cfsupp
        eqidd fvexd ply1sca clmod ply1lmod ad4antr ply1moncl sylan9eqr ralimdva
        lmod0vs 3impib oveq1 oveq12d cbvralv sylibr gsummptnn0fzv fveq1d expcom
        impancom simpllr elfznn0 syl11 ralrimiv fzfid coe1fzgsumd eqeq1 simpl1r
        coe1tm ifbid ifex fvmptd rspcva eqcomd 3adant3 lelttr wo olcd wne df-ne
        lttri2 syl2anr syl5bbr exp4b com24 expimpd com23 3adant2 sylbi iffalsed
        syld com13 ringmnd gsumz 3eqtr4d com14 com25 pm2.43i imp31 com12 simpll
        cmnd expr lenlt simplr syl3anbrc sylbird adantll eqcom ax-mp gsummpt1n0
        ifbi sylan2 csbov csbfv syl5eq mpt2eq3dv oveq12 ralrimivva simpl1 oveqi
        mpteq2i eqtri simp2 simp3 3ad2antl3 syl5eqel eqmat pm2.61i wrex coe1sfi
        matbas2d cmap crab coe1fsupp elrabi 3syl fsuppmapnn0ub mpd r19.29a ) MU
[encoded data, 5360 characters]
        UYQYPUYRUYSXQ $.

      $d A l $.  $d l p $.  $d .* k $.
      mp2pm2mplem5.m $e |- .* = ( .s ` Q ) $.
      mp2pm2mplem5.e $e |- .^ = ( .g ` ( mulGrp ` Q ) ) $.
      mp2pm2mplem5.x $e |- X = ( var1 ` A ) $.
      $( Lemma 5 for ~ mp2pm2mp .  (Contributed by AV, 12-Oct-2019.)  (Revised
         by AV, 5-Dec-2019.) $)
      mp2pm2mplem5 $p |- ( ( N e. Fin /\ R e. Ring /\ O e. L )
               -> ( k e. NN0 |-> ( ( ( I ` O ) decompPMat k ) .* ( k .^ X ) ) )
                  finSupp ( 0g ` Q ) ) $=
        ( vl cfn wcel crg w3a cbs cfv cn0 cv cdecpmat co cvv c0g nn0ex clmod wa
        a1i matring ply1lmod syl 3adant3 csca wceq ply1sca simpl2 mply1topmatcl
        cmat eqid adantr simpr decpmatcl syl3anc cmgp ply1moncl sylan cmpt cco1
        cfsupp cmpt2 fveq2 oveqd oveq1 oveq12d cbvmptv oveq2i mpt2eq3ia mpteq2i
        cgsu eqtri mp2pm2mplem4 mpteq2dva wbr mptcoe1fsupp eqbrtrd mptscmfsupp0
        stoic3 ) NUKULZDUMULZOMULZUNZAUOUPZUQCAOKUPZHURZUSUTZHLMVAXLPJUTZCVBUPZ
        AVBUPZUQVAULXIVCVFXFXGCVDULZXHXFXGVEAUMULZXQADNSVGZCATVHVIVJXIXRACVKUPV
        LXFXGXRXHXSVJZCAUMTVMVIUAXIXLUQULZVEXGXKNBVPUTZUOUPZULZYAXMXJULXFXGXHYA
        VNXIYDYAAYCYBBCDEFGHIKMNOQRSTUAUFUBUCUDUEYBVQZYCVQZVOVRXIYAVSAYCYBXJBDX
        LXKNUMUFYEYFSXJVQVTWAXIXRYAXNMULXTMXLCAJCWBUPZPTUIYGVQUHUAWCWDXOVQXPVQZ
        UGXIHUQXMWEHUQXLOWFUPUPZWEZXPWGXIHUQXMYIABCDEFGUJIKXLMNOQRSTUAUBUCUDKRM
        FGNNBHUQFURZGURZXLRURWFUPZUPZUTZXLQIUTZEUTZWEZWQUTZWHZWERMFGNNBUJUQYKYL
        UJURZYMUPZUTZUUAQIUTZEUTZWEZWQUTZWHZWEUERMYTUUHFGNNYSUUGYSUUGVLYKNULYLN
        ULVEYRUUFBWQHUJUQYQUUEXLUUAVLZYOUUCYPUUDEUUIYNUUBYKYLXLUUAYMWIWJXLUUAQI
        WKWLWMWNVFWOWPWRUFWSWTXFXGXRXHYJXPWGXAXSMCAHOXPTUAYHXBXEXCXD $.
    $}

    $d A i j k n $.  $d A l $.  $d E k $.  $d E n p $.  $d I l n $.
    $d L l n $.  $d N l n $.  $d O l n $.  $d P n $.  $d Q l n $.  $d R l n $.
    $d Y k n $.  $d .x. n $.
    mp2pm2mp.t $e |- T = ( N pMatToMatPoly R ) $.
    $( A polynomial over matrices transformed into a polynomial matrix
       transformed back into the polynomial over matrices.  (Contributed by AV,
       12-Oct-2019.) $)
    mp2pm2mp $p |- ( ( N e. Fin /\ R e. Ring /\ O e. L )
                       -> ( T ` ( I ` O ) ) = O ) $=
      ( vn vl cfn wcel crg w3a cfv cn0 cv cdecpmat cv1 cmgp cmg cvsca cmpt cgsu
      cmat wceq eqid mply1topmatcl pm2mpfval syld3an3 cco1 wral matring 3adant3
      co cbs cvv c0g ccmn wa ply1ring ringcmn nn0ex a1i adantr simpl2 decpmatcl
      3syl simpr syl3anc ply1tmcl fmptd cmpt2 fveq2 oveqd oveq1 oveq12d cbvmptv
      oveq2d mpt2eq3ia eqtri mp2pm2mplem5 gsumcl simp3 3jca mp2pm2mplem4 oveq1d
      mpteq2i adantlr mpteq2dva fveq2d fveq1d ply1coe eqcomd eqtrd eqcoe1ply1eq
      jca syl ralrimiva sylc ) MUHUIZDUJUIZNLUIZUKZNKULZEULZCUFUMYBUFUNZUOVLZYD
      AUPULZCUQULZURULZVLZCUSULZVLZUTZVAVLZNXRXSXTYBMBVBVLZVMULZUIZYCYMVCAYOYNB
      CDFGHIJKLMNOPQRSUDTUAUBUCYNVDZYOVDZVEZAYOYNBCDEUFYHYJYBMUJYFUDYQYRYJVDZYH
      VDZYFVDZQRUEVFVGYAAUJUIZYMLUIZXTUKUGUNZYMVHULZULZUUENVHULZULZVCZUGUMVIYMN
      VCYAUUCUUDXTXRXSUUCXTADMQVJZVKZYAUMLYLCVNCVOULZSUUMVDXRXSCVPUIZXTXRXSVQUU
      CCUJUIUUNUUKCARVRCVSWEVKUMVNUIYAVTWAYAUFUMYKLYLYAYDUMUIZVQZUUCYEAVMULZUIZ
      UUOYKLUIYAUUCUUOUULWBUUPXSYPUUOUURXRXSXTUUOWCYAYPUUOYSWBYAUUOWFZAYOYNUUQB
      DYDYBMUJUDYQYRQUUQVDZWDWGUUSLYEYDCAYJYHUUQYGYFUUTRUUBYTYGVDZUUASWHWGYLVDW
      IABCDFGHUFJYHKYJLMNYFOPQRSTUAUBKPLGHMMBIUMGUNZHUNZIUNZPUNVHULZULZVLZUVDOJ
      VLZFVLZUTZVAVLZWJZUTPLGHMMBUFUMUVBUVCYDUVEULZVLZYDOJVLZFVLZUTZVAVLZWJZUTU
      CPLUVLUVSGHMMUVKUVRUVBMUIUVCMUIVQZUVJUVQBVAUVJUVQVCUVTIUFUMUVIUVPUVDYDVCZ
      UVGUVNUVHUVOFUWAUVFUVMUVBUVCUVDYDUVEWKWLUVDYDOJWMWNWOWAWPWQXEWRUDYTUUAUUB
      WSWTXRXSXTXAZXBYAUUJUGUMYAUUEUMUIZVQZUUGUUECUFUMYDUUHULZYIYJVLZUTZVAVLZVH
      ULZULUUIUWDUUEUUFUWIUWDYMUWHVHUWDYLUWGCVAUWDUFUMYKUWFYAUUOYKUWFVCUWCUUPYE
      UWEYIYJABCDFGHIJKYDLMNOPQRSTUAUBUCUDXCXDXFXGWPXHXIUWDUUEUWIUUHUWDUWHNVHUW
      DNUWHUWDUUCXTVQZNUWHVCYAUWJUWCYAUUCXTUULUWBXNWBUUHLCAYJUFYHNYGYFRUUBSYTUV
      AUUAUUHVDZXJXOXKXHXIXLXPUUFLUUHCAUGYMNRSUUFVDUWKXMXQXL $.
  $}

  ${
    pm2mpfo.p $e |- P = ( Poly1 ` R ) $.
    pm2mpfo.c $e |- C = ( N Mat P ) $.
    pm2mpfo.b $e |- B = ( Base ` C ) $.
    pm2mpfo.m $e |- .* = ( .s ` Q ) $.
    pm2mpfo.e $e |- .^ = ( .g ` ( mulGrp ` Q ) ) $.
    pm2mpfo.x $e |- X = ( var1 ` A ) $.
    pm2mpfo.a $e |- A = ( N Mat R ) $.
    pm2mpfo.q $e |- Q = ( Poly1 ` A ) $.
    ${
      $d A k $.  $d B k $.  $d M k $.  $d N k $.  $d Q k $.  $d R k $.
      $d .* k $.
      $( Lemma 2 for ~ pm2mpghm .  (Contributed by AV, 15-Oct-2019.)  (Revised
         by AV, 4-Dec-2019.) $)
      pm2mpghmlem2 $p |- ( ( N e. Fin /\ R e. Ring /\ M e. B )
                       -> ( k e. NN0 |-> ( ( M decompPMat k ) .* ( k .^ X ) ) )
                          finSupp ( 0g ` Q ) ) $=
        ( cfn wcel crg w3a cbs cfv cn0 cv cdecpmat co cvv c0g nn0ex a1i matring
        clmod 3adant3 ply1lmod syl csca wceq ply1sca wa simpl2 simpl3 decpmatcl
        eqid simpr syl3anc cmgp ply1moncl sylan cfsupp wbr decpmatfsupp 3adant1
        cmpt mptscmfsupp0 ) KUAUBZFUCUBZJBUBZUDZAUEUFZUGEAJGUHZUIUJZGIEUEUFZUKW
        DLHUJZEULUFZAULUFZUGUKUBWBUMUNWBAUCUBZEUPUBVSVTWJWAAFKSUOUQZEATURUSWBWJ
        AEUTUFVAWKEAUCTVBUSWFVGZWBWDUGUBZVCVTWAWMWEWCUBVSVTWAWMVDVSVTWAWMVEWBWM
        VHABCWCDFWDJKUCMNOSWCVGVFVIWBWJWMWGWFUBWKWFWDEAHEVJUFZLTRWNVGQWLVKVLWHV
        GWIVGZPVTWAGUGWEVQWIVMVNVSABCDFGJKWIMNOSWOVOVPVR $.
    $}

    pm2mpfo.l $e |- L = ( Base ` Q ) $.
    $( Lemma 1 for pm2mpghm .  (Contributed by AV, 15-Oct-2019.)  (Revised by
       AV, 4-Dec-2019.) $)
    pm2mpghmlem1 $p |- ( ( ( N e. Fin /\ R e. Ring /\ M e. B )
                                   /\ K e. NN0 )
                              -> ( ( M decompPMat K ) .* ( K .^ X ) ) e. L ) $=
      ( cfn crg w3a cn0 wa cdecpmat co cbs matring 3adant3 adantr simpl2 simpl3
      wcel cfv simpr eqid decpmatcl syl3anc cmgp ply1tmcl ) LUCUPZFUDUPZKBUPZUE
      ZIUFUPZUGZAUDUPZKIUHUIZAUJUQZUPZVHVKIMGUIHUIJUPVGVJVHVDVEVJVFAFLTUKULUMVI
      VEVFVHVMVDVEVFVHUNVDVEVFVHUOVGVHURZABCVLDFIKLUDNOPTVLUSZUTVAVNJVKIEAHGVLE
      VBUQZMVOUASQVPUSRUBVCVA $.

    pm2mpfo.t $e |- T = ( N pMatToMatPoly R ) $.
    ${
      $d A i j k $.  $d B f k p $.  $d L f i j k l p $.  $d N f i j k l p $.
      $d P f i j k l $.  $d R f i j k l p $.  $d T f p $.  $d X k $.
      $d .* k $.  $d .^ k $.
      $( The transformation of polynomial matrices into polynomials over
         matrices is a function mapping polynomial matrices onto polynomials
         over matrices.  (Contributed by AV, 12-Oct-2019.)  (Revised by AV,
         6-Dec-2019.) $)
      pm2mpfo $p |- ( ( N e. Fin /\ R e. Ring ) -> T : B -onto-> L ) $=
        ( vp vf vl vi vj vk cfn wcel crg wa wf cv cfv wceq wrex wral wfo pm2mpf
        cn0 cco1 cv1 cmgp cmg cvsca cmpt cgsu cmpt2 eqid mp2pm2mp mply1topmatcl
        co 3expa simpr fveq2d eqeq2d rspcedv com12 eqcoms mpcom ralrimiva dffo3
        wi sylanbrc ) KUIUJZFUKUJZULZBJGUMUCUNZUDUNZGUOZUPZUDBUQZUCJURBJGUSABCD
        EFGHIJKLMNOPQRSTUBUAUTWHWMUCJWIUEJUFUGKKDUHVAUFUNUGUNUHUNZUEUNVBUOUOVMW
        NFVCUOZDVDUOVEUOZVMDVFUOZVMVGVHVMVIVGZUOZGUOZWIUPZWHWIJUJZULZWMWFWGXBXA
        ADEFGWQUFUGUHWPWRJKWIWOUESTUAWQVJZWPVJZWOVJZWRVJZMUBVKVNXCWMWDWIWTXCWIW
        TUPZWMXCWLXHUDWSBWFWGXBWSBUJABCDEFWQUFUGUHWPWRJKWIWOUESTUAMXDXEXFXGNOVL
        VNXCWJWSUPZULZWKWTWIXJWJWSGXCXIVOVPVQVRVSVTWAWBUDUCBJGWCWE $.
    $}

    $( The transformation of polynomial matrices into polynomials over matrices
       is a 1-1 function mapping polynomial matrices onto polynomials over
       matrices.  (Contributed by AV, 14-Oct-2019.) $)
    pm2mpf1o $p |- ( ( N e. Fin /\ R e. Ring ) -> T : B -1-1-onto-> L ) $=
      ( cfn wcel crg wa wf1 wfo wf1o pm2mpf1 pm2mpfo df-f1o sylanbrc ) KUCUDFUE
      UDUFBJGUGBJGUHBJGUIABCDEFGHIJKLMNOPQRSTUBUAUJABCDEFGHIJKLMNOPQRSTUAUBUKBJ
      GULUM $.

    $d A k $.  $d B a b i j k $.  $d B a i j k l $.  $d B i j k l n $.
    $d C a b i j k $.  $d C a i j k l $.  $d C i j k l n $.  $d L a b k $.
    $d N a b i j k $.  $d N a i j k l $.  $d N i j k l n $.  $d Q a b k $.
    $d R a b i j k $.  $d T a b $.  $d .* k $.
    $( The transformation of polynomial matrices into polynomials over matrices
       is an additive group homomorphism.  (Contributed by AV, 16-Oct-2019.)
       (Revised by AV, 6-Dec-2019.) $)
    pm2mpghm $p |- ( ( N e. Fin /\ R e. Ring ) -> T e. ( C GrpHom Q ) ) $=
      ( va vb vk vi vj cfn wcel crg wa cplusg cfv eqid pmatring ringgrp matring
      cgrp syl ply1ring pm2mpf cv cn0 co cdecpmat cmpt cgsu csca cco1 wceq cmnd
      cmpt2 w3a ringmnd anim1i 3anass sylibr mndcl decpmatval sylan cof simplll
      cvv fvexd eqidd offval22 cbs simpllr simprl simprr eleq2i biimpi ad2antlr
      wi matecl syl3anc adantrr adantr 3impib simpr 3ad2ant1 coe1fvalcl syl2anc
      ex matbas2d adantrl matplusg2 simplr matplusgcell fveq2d fveq1d coe1addfv
      3impb syl31anc eqtrd mpt2eq3dva 3eqtr4rd ply1sca ad2antrr eqcomd oveq123d
      3eqtrd oveq1d clmod ply1lmod simpl decpmatcl eleqtrrd cmgp ringmgp mgpbas
      vr1cl mulgnn0cl anim2i df-3an pm2mpghmlem1 cfsupp pm2mpghmlem2 pm2mpfval
      wbr lmodvsdir syl13anc mpteq2dva oveq2d c0g ccmn ringcmn a1i gsummptfsadd
      nn0ex simpll oveq12d 3eqtr4d isghmd ) KUHUIZFUJUIZUKZUCUDCULUMZEULUMZCEGB
      JOUAUURUNZUUSUNZUUQCUJUIZCURUICDFKMNUOZCUPUSUUQEUJUIZEURUIUUQAUJUIZUVDAFK
      SUQZEATUTUSZEUPUSABCDEFGHIJKLMNOPQRSTUBUAVAUUQUCVBZBUIZUDVBZBUIZUKZUKZEUE
      VCUVHUVJUURVDZUEVBZVEVDZUVOLHVDZIVDZVFZVGVDZEUEVCUVHUVOVEVDZUVQIVDZVFZVGV
      DZEUEVCUVJUVOVEVDZUVQIVDZVFZVGVDZUUSVDZUVNGUMZUVHGUMZUVJGUMZUUSVDUVMUVTEU
      EVCUWBUWFUUSVDZVFZVGVDUWIUVMUVSUWNEVGUVMUEVCUVRUWMUVMUVOVCUIZUKZUVRUWAUWE
      EVHUMZULUMZVDZUVQIVDZUWMUWPUVPUWSUVQIUWPUVPUFUGKKUVOUFVBZUGVBZUVNVDZVIUMZ
      UMZVLZUFUGKKUVOUXAUXBUVHVDZVIUMZUMZVLZUFUGKKUVOUXAUXBUVJVDZVIUMZUMZVLZAUL
      UMZVDZUWSUVMUVNBUIZUWOUVPUXFVJUVMCVKUIZUVIUVKVMZUXQUVMUXRUVLUKUXSUUQUXRUV
      LUUQUVBUXRUVCCVNUSVOUXRUVIUVKVPVQBUURCUVHUVJOUUTVRUSZCBDUFUGUVOUVNKNOVSVT
      UWPUXJUXNFULUMZWAVDZUFUGKKUXIUXMUYAVDZVLUXPUXFUWPUFUGKKUXIUXMUYAUXJUXNUHU
      HWCWCUUOUUPUVLUWOWBZUYDUWPUXAKUIZUXBKUIZVMZUVOUXHWDUYGUVOUXLWDUWPUXJWEUWP
      UXNWEWFUWPUXJAWGUMZUIUXNUYHUIUXPUYBVJUWPUFUGAUYHUXIFFWGUMZKUJSUYIUNZUYHUN
      ZUYDUUOUUPUVLUWOWHZUYGUXGDWGUMZUIZUWOUXIUYIUIUWPUYEUYFUYNUVMUYEUYFUKZUYNW
      NZUWOUUQUVIUYPUVKUUQUVIUKZUYOUYNUYQUYOUKUYEUYFUVHCWGUMZUIZUYNUYQUYEUYFWIU
      YQUYEUYFWJUVIUYSUUQUYOUVIUYSBUYRUVHOWKWLWMCDUXAUXBUYMUVHKNUYMUNZWOWPXDWQW
      RWSZUWPUYEUWOUYFUVMUWOWTZXAZUXHUYMDFUXGUYIUVOUXHUNUYTMUYJXBXCXEUWPUFUGAUY
      HUXMFUYIKUJSUYJUYKUYDUYLUYGUXKUYMUIZUWOUXMUYIUIUWPUYEUYFVUDUVMUYOVUDWNZUW
      OUUQUVKVUEUVIUUQUVKUKZUYOVUDVUFUYOUKUYEUYFUVJUYRUIZVUDVUFUYEUYFWIVUFUYEUY
      FWJUVKVUGUUQUYOUVKVUGBUYRUVJOWKWLWMCDUXAUXBUYMUVJKNUYTWOWPXDXFWRWSZVUCUXL
      UYMDFUXKUYIUVOUXLUNUYTMUYJXBXCXEAUYHUYAUXOFKUXJUXNSUYKUXOUNUYAUNZXGXCUWPU
      FUGKKUXEUYCUYGUXEUVOUXGUXKDULUMZVDZVIUMZUMZUYCUYGUVOUXDVULUYGUXCVUKVIUYGU
      VLUYOUKZUXCVUKVJUWPUYEUYFVUNUWPUVLUYOUUQUVLUWOXHVOXMCBVUJUURDUXAUXBKUVHUV
      JNOUUTVUJUNZXIUSXJXKUYGUUPUYNVUDUWOVUMUYCVJUWPUYEUUPUYFUYLXAVUAVUHVUCUYMU
      YAVUJFUXGUXKUVODMUYTVUOVUIXLXNXOXPXQUWPUXJUWAUXNUWEUXOUWRUWPAUWQULUUQAUWQ
      VJZUVLUWOUUQUVEVUPUVFEAUJTXRUSZXSXJUWPUWAUXJUVMUVIUWOUWAUXJVJUUQUVIUVKWIZ
      CBDUFUGUVOUVHKNOVSVTXTUWPUWEUXNUVMUVKUWOUWEUXNVJUUQUVIUVKWJZCBDUFUGUVOUVJ
      KNOVSVTXTYAYBYCUWPEYDUIZUWAUWQWGUMZUIUWEVVAUIUVQJUIZUWTUWMVJUUQVUTUVLUWOU
      UQUVEVUTUVFEATYEUSXSUWPUWAUYHVVAUWPUUPUVIUWOUWAUYHUIUYLUVLUVIUUQUWOUVIUVK
      YFZWMVUBABCUYHDFUVOUVHKUJMNOSUYKYGWPUWPUWQAWGUUQUWQAVJUVLUWOUUQAUWQVUQXTX
      SXJZYHUWPUWEUYHVVAUWPUUPUVKUWOUWEUYHUIUYLUVLUVKUUQUWOUVIUVKWTZWMVUBABCUYH
      DFUVOUVJKUJMNOSUYKYGWPVVDYHUWPEYIUMZVKUIZUWOLJUIZVVBUUQVVGUVLUWOUUQUVDVVG
      UVGEVVFVVFUNZYJUSXSVUBUUQVVHUVLUWOUUQUVEVVHUVFJEALRTUAYLUSXSJHVVFUVOLJEVV
      FVVIUAYKQYMWPUUSUWRUWAUWEIUWQVVAJEUVQUAUVAUWQUNPVVAUNUWRUNUUAUUBXOUUCUUDU
      VMUEVCJUWBUWFUUSUWCEUWGWCEUUEUMZUAVVJUNUVAUUQEUUFUIZUVLUUQUVDVVKUVGEUUGUS
      WRVCWCUIUVMUUJUUHUVMUUOUUPUVIVMZUWOUWBJUIUVMUYQVVLUVLUVIUUQVVCYNUUOUUPUVI
      YOVQZABCDEFHIUVOJUVHKLMNOPQRSTUAYPVTUVMUUOUUPUVKVMZUWOUWFJUIUVMVUFVVNUVLU
      VKUUQVVEYNUUOUUPUVKYOVQZABCDEFHIUVOJUVJKLMNOPQRSTUAYPVTUVMUWCWEUVMUWGWEUV
      MVVLUWCVVJYQYTVVMABCDEFUEHIUVHKLMNOPQRSTYRUSUVMVVNUWGVVJYQYTVVOABCDEFUEHI
      UVJKLMNOPQRSTYRUSUUIXOUVMUUOUUPUXQUWJUVTVJUUOUUPUVLUUKZUUOUUPUVLXHZUXTABC
      DEFGUEHIUVNKUJLMNOPQRSTUBYSWPUVMUWKUWDUWLUWHUUSUVMUUOUUPUVIUWKUWDVJVVPVVQ
      VURABCDEFGUEHIUVHKUJLMNOPQRSTUBYSWPUVMUUOUUPUVKUWLUWHVJVVPVVQVUSABCDEFGUE
      HIUVJKUJLMNOPQRSTUBYSWPUULUUMUUN $.

    $( The transformation of polynomial matrices into polynomials over matrices
       is an additive group isomorphism.  (Contributed by AV, 17-Oct-2019.) $)
    pm2mpgrpiso $p |- ( ( N e. Fin /\ R e. Ring ) -> T e. ( C GrpIso Q ) ) $=
      ( cfn wcel crg wa cghm cbs cfv wf1o cgim pm2mpghm pm2mpf1o isgim sylanbrc
      co eqid ) KUCUDFUEUDUFGCEUGUPUDBEUHUIZGUJGCEUKUPUDABCDEFGHIJKLMNOPQRSTUAU
      BULABCDEFGHIURKLMNOPQRSTURUQZUBUMBURCEGOUSUNUO $.

    $d A l n s $.  $d B s $.  $d C s $.  $d N s $.  $d Q n s $.  $d P k $.
    $d R l n s $.  $d X l n s $.  $d .* l n s $.  $d .^ l n s $.
    $d a b i j s n x y $.  $d k l s x y $.
    $( Lemma 1 for ~ pm2mpmhm .  (Contributed by AV, 21-Oct-2019.)  (Revised by
       AV, 6-Dec-2019.) $)
    pm2mpmhmlem1 $p |- ( ( ( N e. Fin /\ R e. Ring )
                                 /\ ( x e. B /\ y e. B ) )
                  -> ( l e. NN0 |-> ( ( A gsum ( k e. ( 0 ... l )
           |-> ( ( x decompPMat k ) ( .r ` A ) ( y decompPMat ( l - k ) ) ) ) )
                         .* ( l .^ X ) ) ) finSupp ( 0g ` Q ) ) $=
      ( vn vs vi vj va vb cfn wcel crg wa cv cvv cc0 cfz co cdecpmat cmin cmulr
      cfv cmpt cgsu c0g fvexd cn0 ovexd wceq oveq2 oveq2d mpteq12dv oveq12d clt
      oveq1 wi wral wrex cco1 cmpt2 simpll simplr pmatring anim1i 3anass sylibr
      wbr w3a eqid ringcl syl pmatcoe1fsupp syl3anc fveq2d fveq1d eqeq1d expcom
      rspc2va adantl 3impib mpt2eq3dva mat0op ad3antrrr matring ply1sca 3eqtr2d
      csca oveq1d clmod ply1lmod adantr cmgp ply1moncl sylan lmod0vs syl2anc ex
      imim2d ralimdva reximdv decpmatval imbi2d ralbidva rexbidv mpbird simpllr
      eqtrd mpd simpr decpmatmul eqcomd mptnn0fsuppd ) NUMUNZHUOUNZUPZAUQZDUNZB
      UQZDUNZUPZUPZUGURCJUSPUQZUTVAZYSJUQZVBVAZUUAUUEUUGVCVAZVBVAZCVDVEZVAZVFZV
      GVAZUUEOKVAZLVACJUSUGUQZUTVAZUUHUUAUUPUUGVCVAZVBVAZUUKVAZVFZVGVAZUUPOKVAZ
      LVAZPURGVHVEZUHUUDGVHVIUUDUUEVJUNUPUUNUUOLVKUUEUUPVLZUUNUVBUUOUVCLUVFUUMU
      VACVGUVFJUUFUULUUQUUTUUEUUPUSUTVMUVFUUJUUSUUHUUKUVFUUIUURUUAVBUUEUUPUUGVC
      VRVNVNVOVNUUEUUPOKVRVPUUDUHUQUUPVQWJZUVDUVEVLZVSZUGVJVTZUHVJWAUVGYSUUAEVD
      VEZVAZUUPVBVAZUVCLVAZUVEVLZVSZUGVJVTZUHVJWAZUUDUVRUVGUIUJNNUUPUIUQZUJUQZU
      VLVAZWBVEZVEZWCZUVCLVAZUVEVLZVSZUGVJVTZUHVJWAZUUDUVGUUPUKUQZULUQZUVLVAZWB
      VEZVEZHVHVEZVLZULNVTUKNVTZVSZUGVJVTZUHVJWAZUWIUUDYPYQUVLDUNZUWTYPYQUUCWDY
      PYQUUCWEUUDEUOUNZYTUUBWKZUXAUUDUXBUUCUPUXCYRUXBUUCEFHNQRWFWGUXBYTUUBWHWID
      EUVKYSUUASUVKWLWMWNZUGDEFHUKULUVLNUWOUHQRSUWOWLZWOWPUUDUWSUWHUHVJUUDUWRUW
      GUGVJUUDUUPVJUNZUPZUWQUWFUVGUXGUWQUWFUXGUWQUPZUWEGXJVEZVHVEZUVCLVAZUVEUXH
      UWDUXJUVCLUXHUWDUIUJNNUWOWCZCVHVEZUXJUXHUIUJNNUWCUWOUXHUVSNUNZUVTNUNZUWCU
      WOVLZUWQUXNUXOUPZUXPVSUXGUXQUWQUXPUWPUXPUUPUVSUWKUVLVAZWBVEZVEZUWOVLUKULU
      VSUVTNNUWJUVSVLZUWNUXTUWOUYAUUPUWMUXSUYAUWLUXRWBUWJUVSUWKUVLVRWQWRWSUWKUV
      TVLZUXTUWCUWOUYBUUPUXSUWBUYBUXRUWAWBUWKUVTUVSUVLVMWQWRWSXAWTXBXCXDYRUXMUX
      LVLUUCUXFUWQCHUIUJNUWOUCUXEXEXFUXHCUXIVHYRCUXIVLZUUCUXFUWQYRCUOUNZUYCCHNU
      CXGZGCUOUDXHWNXFWQXIXKUXGUXKUVEVLZUWQUXGGXLUNZUVCMUNZUYFUUDUYGUXFYRUYGUUC
      YRUYDUYGUYEGCUDXMWNXNXNUUDUYDUXFUYHYRUYDUUCUYEXNMUUPGCKGXOVEZOUDUBUYIWLUA
      UEXPXQLUXIUXJMGUVCUVEUEUXIWLTUXJWLUVEWLXRXSXNYJXTYAYBYCYKUUDUVQUWHUHVJUUD
      UVPUWGUGVJUXGUVOUWFUVGUXGUVNUWEUVEUXGUVMUWDUVCLUUDUXAUXFUVMUWDVLUXDEDFUIU
      JUUPUVLNRSYDXQXKWSYEYFYGYHUUDUVJUVQUHVJUUDUVIUVPUGVJUXGUVHUVOUVGUXGUVDUVN
      UVEUXGUVBUVMUVCLUXGUVMUVBUXGYQUUCUXFUVMUVBVLYPYQUUCUXFYIYRUUCUXFWEUUDUXFY
      LCDEFHYSJUUPNUUAQRSUCYMWPYNXKWSYEYFYGYHYO $.
  $}

  ${
    pm2mpmhm.p $e |- P = ( Poly1 ` R ) $.
    pm2mpmhm.c $e |- C = ( N Mat P ) $.
    pm2mpmhm.a $e |- A = ( N Mat R ) $.
    pm2mpmhm.q $e |- Q = ( Poly1 ` A ) $.
    pm2mpmhm.t $e |- T = ( N pMatToMatPoly R ) $.
    ${
      $d A k l n r $.  $d A k l n z $.  $d B k l n r x y $.  $d B k z $.
      $d C k z $.  $d N k l n r x y $.  $d N k z $.  $d P z $.  $d Q k l n r $.
      $d Q k l n z $.  $d R k l n r x y $.  $d R k l n x y z $.
      pm2mpmhm.b $e |- B = ( Base ` C ) $.
      $( Lemma 2 for ~ pm2mpmhm .  (Contributed by AV, 22-Oct-2019.)  (Revised
         by AV, 6-Dec-2019.) $)
      pm2mpmhmlem2 $p |- ( ( N e. Fin /\ R e. Ring ) -> A. x e. B A. y e. B
           ( T ` ( x ( .r ` C ) y ) ) = ( ( T ` x ) ( .r ` Q ) ( T ` y ) ) ) $=
        ( vk wcel co cn0 vz vn vr vl cfn crg wa cv cmulr cfv wceq cdecpmat cmgp
        cv1 cmg cvsca cmpt cgsu cmin simpll simplr pmatring adantr simpl adantl
        cc0 cfz simpr eqid ringcl syl3anc pm2mpfval decpmatmul oveq1d mpteq2dva
        simpllr oveq2d cco1 wral csb cbs c0g matring ad2antrr ringcmn ad3antrrr
        syl fzfid simp-5r elfznn0 decpmatcl fznn0sub ralrimiva gsummptcl cfsupp
        wbr decpmatmulsumfsupp gsummoncoe1 csbov2g id weq oveq2 oveq1 mpteq12dv
        ccmn csbied eqtrd cvv eqidd fveq2d ovexd fvmptd ply1ring a1i w3a anim2i
        nn0ex df-3an sylibr pm2mpghmlem1 sylan pm2mpghmlem2 gsumcl 3jca coe1mul
        fmptd fveq1d oveq12d cbvmptv jca decpmatfsupp csbvarg ovex mp1i 3eqtrrd
        eqtr2d syl5eq 3eqtr4rd 3eqtrd wb clmod ply1lmod simp-4r simplrl simplrr
        csca ply1sca eqcomd eleqtrrd ply1moncl sylancom pm2mpmhmlem1 ply1coe1eq
        lmodvscl mpbid eqtr4d ralrimivva ) JUERZHUFRZUGZAUHZBUHZEUIUJZSZIUJZUVA
[encoded data, 4960 characters]
        XNUXOMNOVLVKYHUUPUUQ $.
    $}

    $d C x y $.  $d N x y $.  $d Q x y $.  $d R x y $.  $d T x y $.
    $( The transformation of polynomial matrices into polynomials over matrices
       is a homomorphism of multiplicative monoids.  (Contributed by AV,
       22-Oct-2019.)  (Revised by AV, 6-Dec-2019.) $)
    pm2mpmhm $p |- ( ( N e. Fin /\ R e. Ring )
                     -> T e. ( ( mulGrp ` C ) MndHom ( mulGrp ` Q ) ) ) $=
      ( vx vy wcel crg cfv cbs co eqid cfn wa cmgp cmnd wf cv wceq wral cur w3a
      cmulr cmhm pmatring ringmgp syl matring ply1ring jca cmg cvsca cv1 mgpbas
      3syl eqcomi pm2mpmhmlem2 idpm2idmp 3jca mgpplusg ringidval ismhm sylanbrc
      pm2mpf ) GUAOEPOUBZBUCQZUDOZDUCQZUDOZUBVNRQZVPRQZFUEZMUFZNUFZBUKQZSFQWAFQ
      WBFQDUKQZSUGNVRUHMVRUHZBUIQZFQDUIQZUGZUJFVNVPULSOVMVOVQVMBPOVOBCEGHIUMBVN
      VNTZUNUOVMAPODPOVQAEGJUPDAKUQDVPVPTZUNVCURVMVTWEWHAVRBCDEFVPUSQZDUTQZVSGA
      VAQZHIBRQZVRWNBVNWIWNTZVBVDZWLTZWKTZWMTZJKLDRQZVSWTDVPWJWTTVBVDVLMNAVRBCD
      EFGHIJKLWPVEAWNBCDEFWKWLGWMHIWOWQWRWSJKLVFVGMNVRVSWCWDVNVPFWGWFVRTVSTBWCV
      NWIWCTVHDWDVPWJWDTVHBWFVNWIWFTVIDWGVPWJWGTVIVJVK $.

    $( The transformation of polynomial matrices into polynomials over matrices
       is a ring homomorphism.  (Contributed by AV, 22-Oct-2019.) $)
    pm2mprhm $p |- ( ( N e. Fin /\ R e. Ring ) -> T e. ( C RingHom Q ) ) $=
      ( wcel crg wa co cmgp cfv jca eqid cfn cghm crh pmatring matring ply1ring
      cmhm syl cbs cmg cvsca cv1 pm2mpghm pm2mpmhm isrhm sylanbrc ) GUAMENMOZBN
      MZDNMZOFBDUBPMZFBQRZDQRZUGPMZOFBDUCPMUQURUSBCEGHIUDUQANMUSAEGJUEDAKUFUHSU
      QUTVCABUIRZBCDEFVBUJRZDUKRZDUIRZGAULRZHIVDTVFTVETVHTJKVGTLUMABCDEFGHIJKLU
      NSBDFVAVBVATVBTUOUP $.

    $( The transformation of polynomial matrices into polynomials over matrices
       is a ring isomorphism.  (Contributed by AV, 22-Oct-2019.) $)
    pm2mprngiso $p |- ( ( N e. Fin /\ R e. Ring ) -> T e. ( C RingIso Q ) ) $=
      ( cfn wcel crg wa co cbs cfv eqid crs crh wf1o pm2mprhm cmgp cmg pm2mpf1o
      cvsca cv1 wb pmatring matring ply1ring syl isrim syl2anc mpbir2and ) GMNE
      ONPZFBDUAQNZFBDUBQNZBRSZDRSZFUCZABCDEFGHIJKLUDAVABCDEFDUESUFSZDUHSZVBGAUI
      SZHIVATZVETVDTVFTJKVBTZLUGURBONDONZUSUTVCPUJBCEGHIUKURAONVIAEGJULDAKUMUNV
      AVBBDFOOVGVHUOUPUQ $.
  $}

  ${
    pmmpric.p $e |- P = ( Poly1 ` R ) $.
    pmmpric.c $e |- C = ( N Mat P ) $.
    pmmpric.a $e |- A = ( N Mat R ) $.
    pmmpric.q $e |- Q = ( Poly1 ` A ) $.
    $( The ring of polynomial matrices over a ring is isomorphic to the ring of
       polynomials over matrices of the same dimension over the same ring.
       (Contributed by AV, 30-Dec-2019.) $)
    pmmpric $p |- ( ( N e. Fin /\ R e. Ring ) -> C ~=r Q ) $=
      ( cfn wcel crg wa crs co c0 wne cric wbr cpm2mp eqid pm2mprngiso ne0i syl
      brric sylibr ) FKLEMLNZBDOPZQRZBDSTUHFEUAPZUILUJABCDEUKFGHIJUKUBUCUIUKUDU
      EBDUFUG $.
  $}

  ${
    $d B k $.  $d E k $.  $d K k $.  $d L k $.  $d M k $.  $d N k $.
    $d N x y $.  $d Q k $.  $d R k $.  $d T k $.  $d X k $.  $d Y k $.
    $d .* k $.  $d .^ k $.  $d .x. k $.
    monmat2matmon.p $e |- P = ( Poly1 ` R ) $.
    monmat2matmon.c $e |- C = ( N Mat P ) $.
    monmat2matmon.b $e |- B = ( Base ` C ) $.
    monmat2matmon.m1 $e |- .* = ( .s ` Q ) $.
    monmat2matmon.e1 $e |- .^ = ( .g ` ( mulGrp ` Q ) ) $.
    monmat2matmon.x $e |- X = ( var1 ` A ) $.
    monmat2matmon.a $e |- A = ( N Mat R ) $.
    monmat2matmon.k $e |- K = ( Base ` A ) $.
    monmat2matmon.q $e |- Q = ( Poly1 ` A ) $.
    monmat2matmon.i $e |- I = ( N pMatToMatPoly R ) $.
    monmat2matmon.e2 $e |- E = ( .g ` ( mulGrp ` P ) ) $.
    monmat2matmon.y $e |- Y = ( var1 ` R ) $.
    monmat2matmon.m2 $e |- .x. = ( .s ` C ) $.
    monmat2matmon.t $e |- T = ( N matToPolyMat R ) $.
    $( The transformation of a polynomial matrix having scaled monomials with
       the same power as entries into a scaled monomial as a polynomial over
       matrices.  (Contributed by AV, 11-Nov-2019.)  (Revised by AV,
       7-Dec-2019.) $)
    monmat2matmon $p |- ( ( ( N e. Fin /\ R e. CRing )
                            /\ ( M e. K /\ L e. NN0 ) )
                        -> ( I ` ( ( L E Y ) .x. ( T ` M ) ) )
                           = ( M .* ( L .^ X ) ) ) $=
      ( vk cfn wcel ccrg wa cn0 co cfv cdecpmat cmpt cgsu csb crg wceq crngring
      simpll simplr mat2pmatscmxcl pm2mpfval syl3anc sylanl2 c0g cif w3a anim1i
      cv simpr df-3an sylibr eqid monmatcollpw syl2anc oveq1d a1i anim2d anim1d
      wi imdistanri ovif matring ply1sca syl ad2antrr fveq2d clmod cbs ply1lmod
      csca cmgp cmnd ringmgp vr1cl mgpbas mulgnn0cl lmod0vs eqtrd ifeq2d syl5eq
      ply1ring mpteq2dva oveq2d cvv ringmnd adantr simprr eleq2d biimpcd impcom
      lmodvscl ralrimiva gsummpt1n0 csbov2g csbov1g csbvarg ad2antll 3eqtrd
      nn0ex ) PUNUOZFUPUOZUQZOMUOZNURUOZUQZUQZNRIUSOGUTHUSZKUTZEUMURYQUMVRZVAUS
      ZYSQJUSZLUSZVBZVCUSZUMNOUUALUSZVDZONQJUSZLUSZYKYJFVEUOZYOYRUUDVFZFVGZYJUU
      IUQZYOUQZYJUUIYQBUOUUJYJUUIYOVHYJUUIYOVIABCDFGIHMNOPRUEUFULSTUAUKUIUJVJAB
      CDEFKUMJLYQPVEQSTUAUBUCUDUEUGUHVKVLVMYPUUDEUMURYSNVFZUUEEVNUTZVOZVBZVCUSZ
      UUFYPUUCUUQEVCYPUMURUUBUUPYPYSURUOZUQZUUBUUNOAVNUTZVOZUUALUSZUUPUUTYTUVBU
      UALUUTYLYMYNUUSVPZYTUVBVFYLYOUUSVHUUTYOUUSUQUVDYPYOUUSYLYOVSVQYMYNUUSVTWA
      ACDFGHIYSMNOPRUVASTUEUFUVAWBUIUJUKULWCWDWEUUTUUMUUSUQZUVCUUPVFUUSYPUUMUUS
      YLUULYOUUSYKUUIYJYKUUIWIUUSUUKWFWGWHWJUVEUVCUUNUUEUVAUUALUSZVOUUPUUNOUVAU
      UALWKUVEUUNUVFUUOUUEUVEUVFEWTUTZVNUTZUUALUSZUUOUVEUVAUVHUUALUVEAUVGVNUULA
      UVGVFZYOUUSUULAVEUOZUVJAFPUEWLZEAVEUGWMWNZWOWPWEUVEEWQUOZUUAEWRUTZUOZUVIU
      UOVFUULUVNYOUUSUULUVKUVNUVLEAUGWSWNWOZUVEEXAUTZXBUOZUUSQUVOUOZUVPUULUVSYO
      UUSUULEVEUOZUVSUULUVKUWAUVLEAUGXKWNZEUVRUVRWBZXCWNWOUUMUUSVSUULUVTYOUUSUU
      LUVKUVTUVLUVOEAQUDUGUVOWBZXDWNWOUVOJUVRYSQUVOEUVRUWCUWDXEUCXFVLZLUVGUVHUV
      OEUUAUUOUWDUVGWBZUBUVHWBUUOWBZXGWDXHXIXJWNXHXLXMYKYJUUIYOUURUUFVFUUKUUMUU
      EUMUUQEURXNNUUOUWGUULEXBUOZYOUULUWAUWHUWBEXOWNXPURXNUOUUMYIWFUULYMYNXQUUQ
      WBUUMUUEUVOUOZUMURUVEUVNOUVGWRUTZUOZUVPUWIUVQUUMUWKUUSYOUULUWKYMUULUWKWIY
      NUULYMUWKUULMUWJOUULMAWRUTUWJUFUULAUVGWRUVMWPXJXRXSXPXTXPUWEOLUVGUWJUVOEU
      UAUWDUWFUBUWJWBYAVLYBYCVMXHYNUUFUUHVFYLYMYNUUFOUMNUUAVDZLUSUUHUMNOUUALURY
      DYNUWLUUGOLYNUWLUMNYSVDZQJUSUUGUMNYSQJURYEYNUWMNQJUMNURYFWEXHXMXHYGYH $.

    $d A n x y $.  $d B n $.  $d C x y $.  $d E n x y $.  $d I n $.
    $d K n x y $.  $d M n x y $.  $d N n x y $.  $d R n x y $.  $d T n x y $.
    $d Y n x y $.  $d .x. n x y $.
    $( The transformation of a sum of matrices having scaled monomials with the
       same power as entries into a sum of scaled monomials as a polynomial
       over matrices.  (Contributed by AV, 12-Nov-2019.)  (Revised by AV,
       7-Dec-2019.) $)
    pm2mp $p |- ( ( ( N e. Fin /\ R e. CRing )
                        /\ ( M e. ( K ^m NN0 ) /\ M finSupp ( 0g ` A ) ) )
                      -> ( I ` ( C gsum ( n e. NN0
                               |-> ( ( n E Y ) .x. ( T ` ( M ` n ) ) ) ) ) )
                         = ( Q gsum ( n e. NN0
                                       |-> ( ( M ` n ) .* ( n .^ X ) ) ) ) ) $=
      ( vx vy cfn wcel ccrg wa cn0 cmap co c0g cfv cfsupp wbr cv cmpt cgsu eqid
      cvv ccmn crngring anim2i pmatring ringcmn 3syl adantr cmnd matring sylan2
      crg ply1ring ringmnd nn0ex a1i cghm cbs pm2mpghm ghmmhm syl elmapi adantl
      cmhm wf ffvelrnda simpr mat2pmatscmxcl syl12anc fvexd ovexd clt wceq wral
      csb wrex fvex fsuppmapnn0ub sylancl csbov12g csbov1g csbvarg oveq1d eqtrd
      csbfv2g fveq2d oveq12d fveq2 oveq2d mat2pmatghm ad3antrrr mhm0 clmod csca
      wi matlmod ringmgp vr1cl mgpbas mulgnn0cl syl3anc ply1crng matsca2 eqcomd
      cmgp eleqtrrd lmodvs0 syl2anc sylan9eqr ex imim2d syld mptnn0fsupp simpll
      ralimdva reximdva impr gsummptmhm monmat2matmon mpteq2dva eqtr3d ) PUOUPZ
      FUQUPZURZONUSUTVAUPZOAVBVCZVDVEZURZURZEIUSIVFZRJVAZUUSOVCZGVCZHVAZLVCZVGZ
      VHVACIUSUVCVGVHVALVCEIUSUVAUUSQKVAMVAZVGZVHVAUURIUSBUVCCELVJCVBVCZUAUVHVI
      ZUUMCVKUPZUUQUUMUUKFWAUPZURZCWAUPUVJUULUVKUUKFVLZVMZCDFPSTVNCVOVPVQUUMEVR
      UPZUUQUUMAWAUPZEWAUPUVOUULUUKUVKUVPUVMAFPUEVSVTEAUGWBEWCVPVQUSVJUPUURWDWE
      UURLCEWFVAUPZLCEWMVAUPUUMUVQUUQUULUUKUVKUVQUVMABCDEFLKMEWGVCZPQSTUAUBUCUD
      UEUGUVRVIUHWHVTVQCELWIWJUURUUSUSUPZURZUVLUVANUPZUVSUVCBUPUURUVLUVSUUMUVLU
      UQUVNVQVQUURUSNUUSOUUQUSNOWNZUUMUUNUWBUUPONUSWKVQWLWOZUURUVSWPZABCDFGJHNU
      USUVAPRUEUFULSTUAUKUIUJWQWRUURUMVJUVCIVJUVHUNUURCVBWSUVTUUTUVBHWTUUMUUNUU
      PUNVFZUMVFZXAVEZIUWFUVCXDZUVHXBZYDZUMUSXCZUNUSXEZUUMUUNURZUUPUWGUWFOVCZUU
      OXBZYDZUMUSXCZUNUSXEZUWLUWMUUNUUOVJUPUUPUWRYDUUMUUNWPAVBXFUMNUNOVJUUOXGXH
      UWMUWQUWKUNUSUWMUWEUSUPZURZUWPUWJUMUSUWTUWFUSUPZURZUWOUWIUWGUXBUWOUWIUXBU
      WOURUWHUWFRJVAZUWNGVCZHVAZUVHUXBUWHUXEXBZUWOUXAUXFUWTUXAUWHIUWFUUTXDZIUWF
      UVBXDZHVAUXEIUWFUUTUVBHUSXIUXAUXGUXCUXHUXDHUXAUXGIUWFUUSXDZRJVAUXCIUWFUUS
      RJUSXJUXAUXIUWFRJIUWFUSXKZXLXMUXAUXHIUWFUVAXDZGVCUXDIUWFUVAUSGXNUXAUXKUWN
      GUXAUXKUXIOVCUWNIUWFUUSUSOXNUXAUXIUWFOUXJXOXMXOXMXPXMWLVQUWOUXBUXEUXCUUOG
      VCZHVAZUVHUWOUXDUXLUXCHUWNUUOGXQXRUXBUXMUXCUVHHVAZUVHUXBUXLUVHUXCHUXBGACW
      FVAUPZGACWMVAUPUXLUVHXBUUMUXOUUNUWSUXAUULUUKUVKUXOUVMANCDFGBPULUEUFSTUAXS
      VTXTACGWIACGUVHUUOUUOVIUVIYAVPXRUXBCYBUPZUXCCYCVCZWGVCZUPUXNUVHXBUUMUXPUU
      NUWSUXAUULUUKDWAUPZUXPUULUVKUXSUVMDFSWBWJZCDPTYEVTXTUXBUXCDWGVCZUXRUXBDYN
      VCZVRUPZUXARUYAUPZUXCUYAUPUUMUYCUUNUWSUXAUUMUXSUYCUULUXSUUKUXTWLDUYBUYBVI
      ZYFWJXTUWTUXAWPUUMUYDUUNUWSUXAUUMUVKUYDUULUVKUUKUVMWLUYADFRUJSUYAVIZYGWJX
      TUYAJUYBUWFRUYADUYBUYEUYFYHUIYIYJUXBUXQDWGUUMUXQDXBUUNUWSUXAUUMDUXQUULUUK
      DUQUPDUXQXBDFSYKCDPUQTYLVTYMXTXOYOHUXQUXRCUXCUVHUXQVIUKUXRVIUVIYPYQXMYRXM
      YSYTUUDUUEUUAUUFUUBUUGUURUVEUVGEVHUURIUSUVDUVFUVTUUMUWAUVSUVDUVFXBUUMUUQU
      VSUUCUWCUWDABCDEFGHJKLMNUUSUVAPQRSTUAUBUCUDUEUFUGUHUIUJUKULUUHWRUUIXRUUJ
      $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  The characteristic polynomial
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  According to Wikipedia ("Characteristic polynomial", 31-Jul-2019,
  ~ https://en.wikipedia.org/wiki/Characteristic_polynomial ):  "In linear
  algebra, the characteristic polynomial of a square matrix is a polynomial
  which is invariant under matrix similarity and has the eigenvalues as roots.
  It has the determinant and the trace of the matrix as coefficients.".  Based
  on the definition of the characteristic polynomial of a square matrix
  ( ~ df-chpmat ) the eigenvalues and corresponding eigenvectors can be
  defined.

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The _characteristic polynomial_ of a matrix ` A ` is the determinat of the
  _characteristic matrix_ of ` A ` : ` ( t I - A ) ` .

$)

  $c CharPlyMat $.

  $( Extend class notation with the characteristic polynomial. $)
  cchpmat $a class CharPlyMat $.

  ${
    $d m n r $.
    $( Define the characteristic polynomial of a square matrix.  According to
       Wikipedia ("Characteristic polynomial", 31-Jul-2019,
       ~ https://en.wikipedia.org/wiki/Characteristic_polynomial ):  "The
       characteristic polynomial of [an n x n matrix] A, denoted by p_A(t), is
       the polynomial defined by p_A ( t ) = det ( t I - A ) where I denotes
       the n-by-n identity matrix.".  In addition, however, the underlying ring
       must be commutative, see definition in [Lang], p. 561:  " Let k be a
       commutative ring ...  Let M be any n x n matrix in k ...  We define the
       characteristic polynomial P_M(t) to be the determinant det ( t I_n - M )
       where I_n is the unit n x n matrix."  To be more precise, the matrices A
       and I on the right hand side are matrices with coefficients of a
       polynomial ring.  Therefore, the original matrix A over a given
       commutative ring must be transformed into corresponding matrices over
       the polynomial ring over the given ring.  (Contributed by AV,
       2-Aug-2019.) $)
    df-chpmat $a |- CharPlyMat = ( n e. Fin , r e. _V
            |-> ( m e. ( Base ` ( n Mat r ) ) |-> ( ( n maDet ( Poly1 ` r ) ) `
     ( ( ( var1 ` r ) ( .s ` ( n Mat ( Poly1 ` r ) ) )
         ( 1r ` ( n Mat ( Poly1 ` r ) ) ) )
       ( -g ` ( n Mat ( Poly1 ` r ) ) ) ( ( n matToPolyMat r ) ` m ) ) ) ) ) $.
  $}

  ${
    chmatcl.a $e |- A = ( N Mat R ) $.
    chmatcl.b $e |- B = ( Base ` A ) $.
    chmatcl.p $e |- P = ( Poly1 ` R ) $.
    chmatcl.y $e |- Y = ( N Mat P ) $.
    chmatcl.x $e |- X = ( var1 ` R ) $.
    chmatcl.t $e |- T = ( N matToPolyMat R ) $.
    chmatcl.s $e |- .- = ( -g ` Y ) $.
    chmatcl.m $e |- .x. = ( .s ` Y ) $.
    chmatcl.1 $e |- .1. = ( 1r ` Y ) $.
    chmatcl.h $e |- H = ( ( X .x. .1. ) .- ( T ` M ) ) $.
    $( Closure of the characteristic matrix of a matrix.  (Contributed by AV,
       25-Oct-2019.)  (Proof shortened by AV, 29-Nov-2019.) $)
    chmatcl $p |- ( ( N e. Fin /\ R e. Ring /\ M e. B )
                   -> H e. ( Base ` Y ) ) $=
      ( cfn wcel crg w3a co cfv cbs cgrp wa pmatring ringgrp syl 3adant3 anim2i
      ply1ring 3ad2ant2 ringidcl matvscl syl12anc mat2pmatbas grpsubcl syl5eqel
      eqid vr1cl syl3anc ) KUDUEZDUFUEZIBUEZUGZHLGFUHZIEUIZJUHZMUJUIZUCVLMUKUEZ
      VMVPUEZVNVPUEVOVPUEVIVJVQVKVIVJULMUFUEZVQMCDKPQUMZMUNUOUPVLVICUFUEZULZLCU
      JUIZUEZGVPUEZVRVIVJWBVKVJWAVICDPURUQUPVJVIWDVKWCCDLRPWCVFZVGUSVLVSWEVIVJV
      SVKVTUPVPMGVPVFZUBUTUOMVPLCFWCKGWFQWGUAVAVBABMCDEIKSNOPQVCVPMJVMVNWGTVDVH
      VE $.

    $d B i j $.  $d I i j $.  $d J i j $.  $d M i j $.  $d N i j $.
    $d P i j $.  $d R i j $.  $d X i j $.  $d Y i j $.  $d .0. i j $.
    $d .x. i j $.
    chmatval.s $e |- .~ = ( -g ` P ) $.
    chmatval.0 $e |- .0. = ( 0g ` P ) $.
    $( The entries of the characteristic matrix of a matrix.  (Contributed by
       AV, 2-Aug-2019.)  (Proof shortened by AV, 10-Dec-2019.) $)
    chmatval $p |- ( ( ( N e. Fin /\ R e. Ring /\ M e. B )
                          /\ ( I e. N /\ J e. N ) )
                     -> ( I H J ) = if ( I = J , ( X .~ ( I ( T ` M ) J ) ) ,
                                            ( .0. .~ ( I ( T ` M ) J ) ) ) ) $=
      ( vi vj cfn wcel crg w3a wa co cfv cif oveqi cbs ply1ring 3ad2ant2 adantr
      wceq anim2i 3adant3 eqid vr1cl pmatring ringidcl syl syl12anc mat2pmatbas
      matvscl simpr matsubgcell syl121anc syl5eq cvv cur cmpt2 a1i oveq2d simpl
      adantl 3jca matsc eqtrd eqeq12 ifbid simprl cv1 fvex eqeltri ifex ovmpt2d
      cv c0g oveq1d ovif syl6eq ) NULUMZEUNUMZLBUMZUOZJNUMZKNUMZUPZUPZJKIUQZJKO
      HGUQZUQZJKLFURZUQZDUQZJKVEZOXODUQQXODUQUSZXJXKJKXLXNMUQZUQZXPIXSJKUGUTXJC
      UNUMZXLPVAURZUMZXNYBUMZXIXTXPVEXFYAXIXDXCYAXECETVBZVCVDXFYCXIXFXCYAUPZOCV
      AURZUMZHYBUMZYCXCXDYFXEXDYAXCYEVFVGXDXCYHXEYGCEOUBTYGVHZVIZVCXFPUNUMZYIXC
      XDYLXEPCENTUAVJVGYBPHYBVHZUFVKVLPYBOCGYGNHYJUAYMUEVOVMVDXFYDXIABPCEFLNUCR
      STUAVNVDXFXIVPPYBCMJKDNXLXNUAYMUDUHVQVRVSXJXPXQOQUSZXODUQXRXJXMYNXODXJUJU
      KJKNNUJWRZUKWRZVEZOQUSZYNXLVTXJXLOPWAURZGUQZUJUKNNYRWBZXJHYSOGHYSVEXJUFWC
      WDXJXCYAYHUOZYTUUAVEXFUUBXIXCXDUUBXEXCXDUPXCYAYHXCXDWEXDYAXCYEWFXDYHXCYKW
      FWGVGVDPCGUJUKYGONQUAYJUEUIWHVLWIYOJVEYPKVEUPZYRYNVEXJUUCYQXQOQYOJYPKWJWK
      WFXFXGXHWLXIXHXFXGXHVPWFYNVTUMXJXQOQOEWMURVTUBEWMWNWOQCWSURVTUICWSWNWOWPW
      CWQWTXQOQXODXAXBWI $.
  $}

  ${
    $d m n r B $.  $d m n r D $.  $d m n r .1. $.  $d m n r N $.  $d m n r R $.
    $d m n r X $.  $d m n r T $.  $d n r V $.  $d m n r .x. $.  $d m n r .- $.
    chpmatfval.c $e |- C = ( N CharPlyMat R ) $.
    chpmatfval.a $e |- A = ( N Mat R ) $.
    chpmatfval.b $e |- B = ( Base ` A ) $.
    chpmatfval.p $e |- P = ( Poly1 ` R ) $.
    chpmatfval.y $e |- Y = ( N Mat P ) $.
    chpmatfval.d $e |- D = ( N maDet P ) $.
    chpmatfval.s $e |- .- = ( -g ` Y ) $.
    chpmatfval.x $e |- X = ( var1 ` R ) $.
    chpmatfval.m $e |- .x. = ( .s ` Y ) $.
    chpmatfval.t $e |- T = ( N matToPolyMat R ) $.
    chpmatfval.i $e |- .1. = ( 1r ` Y ) $.
    $( Value of the characteristic polynomial function.  (Contributed by AV,
       2-Aug-2019.) $)
    chpmatfval $p |- ( ( N e. Fin /\ R e. V )
              -> C = ( m e. B |-> ( D ` ( ( X .x. .1. ) .- ( T ` m ) ) ) ) ) $=
      ( vn vr cfn wcel wa cchpmat co cv cfv cmpt cvv cmat cbs cv1 cur cmat2pmat
      cpl1 cvsca csg cmdat cmpt2 wceq df-chpmat a1i oveq12 syl6eqr fveq2d simpl
      simpr oveq12d fveq2 adantl oveq123d fveq1d fveq12d mpteq12dv elex eqeltri
      fvex mptexg mp1i ovmpt2d syl5eq ) LUIUJZFMUJZUKZCLFULUMJBNIHUMZJUNZGUOZKU
      MZDUOZUPZPWLUGUHLFUIUQJUGUNZUHUNZURUMZUSUOZWTUTUOZWSWTVCUOZURUMZVAUOZXEVD
      UOZUMZWNWSWTVBUMZUOZXEVEUOZUMZWSXDVFUMZUOZUPZWRULUQULUGUHUIUQXOVGVHWLJUGU
      HVIVJWSLVHZWTFVHZUKZXOWRVHWLXRJXBXNBWQXRXBAUSUOZBXRXAAUSXRXALFURUMAWSLWTF
      URVKQVLVMRVLXRXLWPXMDXRXMLEVFUMDXRWSLXDEVFXPXQVNZXRXDFVCUOZEXRWTFVCXPXQVO
      VMSVLVPUAVLXRXHWMXJWOXKKXRXKOVEUOKXRXEOVEXRXELEURUMOXRWSLXDEURXTXRXDYAEXQ
      XDYAVHXPWTFVCVQVRSVLVPTVLZVMUBVLXRXCNXFIXGHXRXGOVDUOHXRXEOVDYBVMUDVLXQXCN
      VHXPXQXCFUTUONWTFUTVQUCVLVRXRXFOVAUOIXRXEOVAYBVMUFVLVSXRWNXIGXRXILFVBUMGW
      SLWTFVBVKUEVLVTVSWAWBVRWJWKVNWKFUQUJWJFMWCVRBUQUJWRUQUJWLBXSUQRAUSWEWDJBW
      QUQWFWGWHWI $.

    $d m M $.  $d m V $.
    $( The characteristic polynomial of a (square) matrix (expressed with a
       determinant).  (Contributed by AV, 2-Aug-2019.) $)
    chpmatval $p |- ( ( N e. Fin /\ R e. V /\ M e. B )
               -> ( C ` M ) = ( D ` ( ( X .x. .1. ) .- ( T ` M ) ) ) ) $=
      ( vm cfn wcel w3a co cv cfv cvv cmpt wceq chpmatfval 3adant3 fveq2 oveq2d
      fveq2d adantl simp3 fvexd fvmptd ) LUHUIZFMUIZJBUIZUJZUGJNIHUKZUGULZGUMZK
      UKZDUMZVJJGUMZKUKZDUMZBCUNVFVGCUGBVNUOUPVHABCDEFGHIUGKLMNOPQRSTUAUBUCUDUE
      UFUQURVKJUPZVNVQUPVIVRVMVPDVRVLVOVJKVKJGUSUTVAVBVFVGVHVCVIVPDVDVE $.
  $}

  ${
    $d p x M $.  $d p x N $.
    chpmatply1.c $e |- C = ( N CharPlyMat R ) $.
    chpmatply1.a $e |- A = ( N Mat R ) $.
    chpmatply1.b $e |- B = ( Base ` A ) $.
    chpmatply1.p $e |- P = ( Poly1 ` R ) $.
    ${
      chpmatply1.e $e |- E = ( Base ` P ) $.
      $( The characteristic polynomial of a (square) matrix over a commutative
         ring is a polynomial, see also the following remark in [Lang], p. 561:
         "[the characteristic polynomial] is an element of k[[t]".
         (Contributed by AV, 2-Aug-2019.)  (Proof shortened by AV,
         29-Nov-2019.) $)
      chpmatply1 $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                        -> ( C ` M ) e. E ) $=
        ( cfn wcel ccrg w3a cfv co eqid cv1 cur cvsca cmat2pmat cmdat chpmatval
        cmat csg cbs ply1crng 3ad2ant2 crngring chmatcl syl3an2 syl2anc eqeltrd
        crg mdetcl ) HNOZEPOZGBOZQZGCREUARZHDUGSZUBRZVDUCRZSGHEUDSZRVDUHRZSZHDU
        ESZRZFABCVJDEVGVFVEGVHHPVCVDIJKLVDTZVJTZVHTZVCTZVFTZVGTZVETZUFVBDPOZVIV
        DUIRZOZVKFOUTUSVSVADELUJUKUTUSEUQOVAWAEULABDEVGVFVEVIGVHHVCVDJKLVLVOVQV
        NVPVRVITUMUNVDVTVJDFVIHVMVLVTTMURUOUP $.
    $}

    $d p x P $.  $d p x T $.  $d p x X $.  $d p x .x. $.  $d p x .1. $.
    $d p x .- $.
    chpmatval2.y $e |- Y = ( N Mat P ) $.
    chpmatval2.m1 $e |- .- = ( -g ` Y ) $.
    chpmatval2.x $e |- X = ( var1 ` R ) $.
    chpmatval2.t1 $e |- .x. = ( .s ` Y ) $.
    chpmatval2.t $e |- T = ( N matToPolyMat R ) $.
    chpmatval2.i $e |- .1. = ( 1r ` Y ) $.
    chpmatval2.g $e |- G = ( SymGrp ` N ) $.
    chpmatval2.h $e |- H = ( Base ` G ) $.
    chpmatval2.z $e |- Z = ( ZRHom ` P ) $.
    chpmatval2.s $e |- S = ( pmSgn ` N ) $.
    chpmatval2.u $e |- U = ( mulGrp ` P ) $.
    chpmatval2.rm $e |- .X. = ( .r ` P ) $.
    $( The characteristic polynomial of a (square) matrix (expressed with the
       Leibnitz formula for the determinant).  (Contributed by AV,
       2-Aug-2019.) $)
    chpmatval2 $p |- ( ( N e. Fin /\ R e. Ring /\ M e. B )
               -> ( C ` M ) = ( P gsum ( p e. H |-> ( ( ( Z o. S ) ` p )
          .X. ( U gsum ( x e. N |-> ( ( p ` x ) ( ( X .x. .1. )
                               .- ( T ` M ) ) x ) ) ) ) ) ) ) $=
      ( cfn wcel crg w3a cfv co cmdat cv ccom cmpt cgsu eqid chpmatval cmat cbs
      wceq csg fveq2i eqtri cvsca cur chmatcl eqcomi csymg mdetleib syl eqtrd )
      QURUSFUTUSOCUSVAZODVBRLIVCOHVBPVCZQEVDVCZVBZEUANUAVEZTGVFVBKAQAVEZWIVBWJW
      FVCVGVHVCJVCVGVHVCZBCDWGEFHILOPQUTRSUBUCUDUEUFWGVIZUGUHUIUJUKVJWEWFQEVKVC
      ZVLVBZUSWHWKVMBCEFHILWFOPQRWMUCUDUEWMVIUHUJPSVNVBWMVNVBUGSWMVNUFVOVPISVQV
      BWMVQVBUISWMVQUFVOVPLSVRVBWMVRVBUKSWMVRUFVOVPWFVIVSASWNWGNEGJKWFQTUAWLUFW
      MSVLSWMUFVTVONMVLVBQWAVBZVLVBUMMWOVLULVOVPUNUOUQUPWBWCWD $.
  $}

  ${
    chpmat0.c $e |- C = ( (/) CharPlyMat R ) $.
    $( The characteristic polynomial of the empty matrix.  (Contributed by AV,
       6-Aug-2019.) $)
    chpmat0d $p |- ( R e. Ring -> ( C ` (/) ) = ( 1r ` ( Poly1 ` R ) ) ) $=
      ( crg wcel c0 cfv cmat co cur cbs wceq 0fin csn 0ex mat0dimbas0 syl5eleqr
      eqid syl eqtrd cv1 cpl1 cvsca cmat2pmat csg cmdat cfn a1i id snid syl3anc
      chpmatval cop ply1ring mdet0pr fveq1d mat0dimid oveq2d mat0dimscm syl2anc
      c0g vr1cl d0mat2pmat oveq12d cgrp matring sylancr ringgrp grpsubid fveq2d
      mat0dim0 fvex fvsn syl6eq ) BDEZFAGZBUAGZFBUBGZHIZJGZVSUCGZIZFFBUDIZGZVSU
      EGZIZFVRUFIZGZVRJGZVOFUGEZVOFFBHIZKGZEVPWHLWJVOMUHVOUIVOFFNZWLFOUJZBDPQWK
      WLAWGVRBWCWAVTFWEFDVQVSCWKRWLRVRRZVSRZWGRWERZVQRZWARWCRVTRULUKVOWHWFFWIUM
      NZGZWIVOVRDEZWHWTLVRBWOUNZXAWFWGWSVRUOUPSVOWTVSVAGZWSGZWIVOWFXCWSVOWFFFWE
      IZXCVOWBFWDFWEVOWBVQFWAIZFVOVTFVQWAVOXAVTFLXBVSVRWPUQSURVOXAVQVRKGZEXFFLX
      BXGVRBVQWRWOXGRVBVSVRVQWPUSUTTBDVCVDVOVSVEEZFVSKGZEXEXCLVOVSDEZXHVOWJXAXJ
      MXBVSVRFWPVFVGVSVHSVOFWMXIWNVOXAXIWMLXBVRDPSQXIVSWEFXCXIRXCRWQVIUTTVJVOXD
      FWSGWIVOXCFWSVOXAXCFLXBVSVRWPVKSVJFWIOVRJVLVMVNTTT $.
  $}

  ${
    chpmat1d.c $e |- C = ( N CharPlyMat R ) $.
    chpmat1d.p $e |- P = ( Poly1 ` R ) $.
    chpmat1d.a $e |- A = ( N Mat R ) $.
    chpmat1d.b $e |- B = ( Base ` A ) $.
    chpmat1d.x $e |- X = ( var1 ` R ) $.
    chpmat1d.z $e |- .- = ( -g ` P ) $.
    chpmat1d.s $e |- S = ( algSc ` P ) $.

    ${
      chpmat1dlem.g $e |- G = ( N Mat P ) $.
      chpmat1dlem.x $e |- T = ( N matToPolyMat R ) $.
      $( Lemma for ~ chpmat1d .  (Contributed by AV, 7-Aug-2019.) $)
      chpmat1dlem $p |- ( ( R e. Ring /\ ( N = { I } /\ I e. V ) /\ M e. B )
                -> ( I ( ( X ( .s ` G ) ( 1r ` G ) ) ( -g ` G ) ( T ` M ) ) I )
                   = ( X .- ( S ` ( I M I ) ) ) ) $=
        ( crg wcel csn wceq wa w3a cur cfv cvsca co csg ply1ring 3ad2ant1 clmod
        cbs csca cfn snfi mpbiri adantr anim12i 3adant3 ancomd matlmod syl cpl1
        eleq1 eqid vr1cl 3ad2ant2 fvex cmat oveq2i eqtri matsca2 sylancl eqcomd
        cvv fveq2d eleqtrrd matring ringidcl 3jca simp1 simp3 mat2pmatbas snidg
        lmodvscl adantl wb eleq2 mpbird jccir matsubgcell syl121anc matvscacell
        cmulr c0g cif mat1ov eqidd iftrued eqtrd oveq2d ringridm syl2anc 3eqtrd
        id mat2pmatvalel oveq12d ) EUDUEZLIUFZUGZIMUEZUHZJBUEZUIZIINHUJUKZHULUK
        ZUMZJGUKZHUNUKZUMUMZIIYCUMZIIYDUMZKUMZNIIJUMFUKZKUMXTDUDUEZYCHURUKZUEZY
        DYLUEZILUEZYOUHZYFYIUGXNXRYKXSDEPUOZUPZXTHUQUEZNHUSUKZURUKZUEZYAYLUEZUI
        YMXTYSUUBUUCXTLUTUEZYKUHZYSXTYKUUDXNXRYKUUDUHXSXNYKXRUUDYQXPUUDXQXPUUDX
        OUTUEIVALXOUTVJVBVCZVDVEVFZHDLUBVGVHXTNEVIUKZURUKZUUAXNXRNUUIUEXSUUIUUH
        ENSUUHVKUUIVKVLUPXTYTUUHURXTUUHYTXTUUDUUHWAUEUUHYTUGXRXNUUDXSUUFVMZEVIV
        NHUUHLWAHLDVOUMLUUHVOUMUBDUUHLVOPVPVQVRVSVTWBWCXTHUDUEZUUCXTUUEUUKUUGHD
        LUBWDVHYLHYAYLVKZYAVKZWEVHZWFNYBYTUUAYLHYAUULYTVKYBVKZUUAVKWKVHXTUUDXNX
        SUIZYNXTUUDXNXSUUJXNXRXSWGXNXRXSWHWFZABHDEGJLUCQRPUBWIVHXRXNYPXSXRYOYOX
        RYOIXOUEZXQUURXPIMWJWLXPYOUURWMXQLXOIWNVCWOZYOXKWPVMZHYLDYEIIKLYCYDUBUU
        LYEVKTWQWRXTYGNYHYJKXTYGNIIYAUMZDWTUKZUMZNDUJUKZUVBUMZNXTYKNDURUKZUEZUU
        CYPYGUVCUGYRXNXRUVGXSUVFDENSPUVFVKZVLUPZUUNUUTHYLDYBUVBIIUVFLNYAUBUULUV
        HUUOUVBVKZWSWRXTUVAUVDNUVBXTUVAIIUGZUVDDXAUKZXBUVDXTHDYAUVDIILUVLUBUVDV
        KZUVLVKUUJYRXRXNYOXSUUSVMZUVNUUMXCXTUVKUVDUVLXTIXDXEXFXGXTYKUVGUVENUGYR
        UVIUVFDUVBUVDNUVHUVJUVMXHXIXJXTUUPYPYHYJUGUUQUUTABDEFGJLUDIIUCQRPUAXLXI
        XMXF $.
    $}

    $( The characteristic polynomial of a matrix with dimension 1.
       (Contributed by AV, 7-Aug-2019.) $)
    chpmat1d $p |- ( ( R e. CRing /\ ( N = { I } /\ I e. V ) /\ M e. B )
                    -> ( C ` M ) = ( X .- ( S ` ( I M I ) ) ) ) $=
      ( wcel ccrg csn wceq wa w3a cfv cv1 cmat co cur cvsca cmat2pmat csg cmdat
      cfn snfi eleq1 mpbiri adantr 3ad2ant2 simp1 simp3 eqid chpmatval ply1crng
      syl3anc cbs 3ad2ant1 simp2 cgrp crg crngring ply1ring syl matring syl2anc
      ringgrp clmod csca matlmod oveq2i matsca2 eqcomd fveq2d eleqtrrd ringidcl
      cpl1 vr1cl lmodvscl mat2pmatbas grpsubcl m1detdiag eqcomi a1i chpmat1dlem
      oveq1d oveqd syl3an1 eqtrd ) EUATZJGUBZUCZGKTZUDZHBTZUEZHCUFZEUGUFZJDUHUI
      ZUJUFZXIUKUFZUIZHJEULUIZUFZXIUMUFZUIZJDUNUIZUFZLGGHUIFUFIUIZXFJUOTZWTXEXG
      XRUCXDWTXTXEXBXTXCXBXTXAUOTGUPJXAUOUQURUSUTZWTXDXEVAWTXDXEVBZABCXQDEXMXKX
      JHXOJUAXHXIMOPNXIVCZXQVCZXOVCZXHVCZXKVCZXMVCZXJVCZVDVFXFXRGGXPUIZXSXFDUAT
      ZXDXPXIVGUFZTZXRYJUCWTXDYKXEDENVEVHWTXDXEVIXFXIVJTZXLYLTZXNYLTZYMXFXIVKTZ
      YNXFXTDVKTZYQYAWTXDYRXEWTEVKTZYREVLZDENVMVNVHZXIDJYCVOVPZXIVQVNXFXIVRTZXH
      XIVSUFZVGUFZTXJYLTZYOXFXTYRUUCYAUUAXIDJYCVTVPXFXHEWGUFZVGUFZUUEXFYSXHUUHT
      WTXDYSXEYTVHZUUHUUGEXHYFUUGVCZUUHVCWHVNXFUUDUUGVGXFUUGUUDXFXTUUGUATZUUGUU
      DUCYAWTXDUUKXEUUGEUUJVEVHXIUUGJUADUUGJUHNWAWBVPWCWDWEXFYQUUFUUBYLXIXJYLVC
      ZYIWFVNXHXKUUDUUEYLXIXJUULUUDVCYGUUEVCWIVFXFXTYSXEYPYAUUIYBABXIDEXMHJYHOP
      NYCWJVFYLXIXOXLXNUULYEWKVFXIYLXQDGXPJKYDYCUULWLVFXFYJGGLXJXKUIZXNXOUIZUIZ
      XSXFXPUUNGGXFXLUUMXNXOXFXHLXJXKXHLUCXFLXHQWMWNWPWPWQWTYSXDXEUUOXSUCYTABCD
      EFXMXIGHIJKLMNOPQRSYCYHWOWRWSWSWS $.
  $}

  ${
    chpdmat.c $e |- C = ( N CharPlyMat R ) $.
    chpdmat.p $e |- P = ( Poly1 ` R ) $.
    chpdmat.a $e |- A = ( N Mat R ) $.
    chpdmat.s $e |- S = ( algSc ` P ) $.
    chpdmat.b $e |- B = ( Base ` A ) $.
    chpdmat.x $e |- X = ( var1 ` R ) $.
    chpdmat.0 $e |- .0. = ( 0g ` R ) $.
    chpdmat.g $e |- G = ( mulGrp ` P ) $.
    chpdmat.m $e |- .- = ( -g ` P ) $.
    ${
      chpdmatlem.q $e |- Q = ( N Mat P ) $.
      chpdmatlem.1 $e |- .1. = ( 1r ` Q ) $.
      chpdmatlem.m $e |- .x. = ( .s ` Q ) $.
      $( Lemma 0 for ~ chpdmat .  (Contributed by AV, 18-Aug-2019.) $)
      chpdmatlem0 $p |- ( ( N e. Fin /\ R e. Ring )
                          -> ( X .x. .1. ) e. ( Base ` Q ) ) $=
        ( cfn wcel crg wa clmod csca cfv cbs co pmatlmod eqid vr1cl adantl wceq
        ply1ring matsca2 sylan2 eleqtrrd pmatring ringidcl syl lmodvscl syl3anc
        eqcomd fveq2d ) LUGUHZFUIUHZUJZEUKUHMEULUMZUNUMZUHIEUNUMZUHZMIHUOVQUHED
        FLPUDUPVNMDUNUMZVPVMMVSUHVLVSDFMTPVSUQURUSVNVODUNVNDVOVMVLDUIUHDVOUTDFP
        VAEDLUIUDVBVCVJVKVDVNEUIUHVREDFLPUDVEVQEIVQUQZUEVFVGMHVOVPVQEIVTVOUQUFV
        PUQVHVI $.

      chpdmatlem.z $e |- Z = ( -g ` Q ) $.
      chpdmatlem.t $e |- T = ( N matToPolyMat R ) $.
      $( Lemma 1 for ~ chpdmat .  (Contributed by AV, 18-Aug-2019.) $)
      chpdmatlem1 $p |- ( ( N e. Fin /\ R e. Ring /\ M e. B )
                         -> ( ( X .x. .1. ) Z ( T ` M ) ) e. ( Base ` Q ) ) $=
        ( cfn wcel crg w3a cgrp co cbs cfv pmatring 3adant3 ringgrp chpdmatlem0
        syl mat2pmatbas eqid grpsubcl syl3anc ) NULUMZFUNUMZLBUMZUOZEUPUMZOJIUQ
        ZEURUSZUMZLHUSZVOUMVNVQQUQVOUMVLEUNUMZVMVIVJVRVKEDFNSUGUTVAEVBVDVIVJVPV
        KABCDEFGIJKMNOPRSTUAUBUCUDUEUFUGUHUIVCVAABEDFHLNUKTUBSUGVEVOEQVNVQVOVFU
        JVGVH $.

      $( Lemma 2 for ~ chpdmat .  (Contributed by AV, 18-Aug-2019.) $)
      chpdmatlem2 $p |- ( ( ( ( ( ( N e. Fin /\ R e. Ring /\ M e. B )
                      /\ i e. N ) /\ j e. N ) /\ i =/= j ) /\ ( i M j ) = .0. )
                     -> ( i ( ( X .x. .1. ) Z ( T ` M ) ) j ) = ( 0g ` P ) ) $=
        ( cfn wcel crg w3a cv wa wne co wceq cfv cmulr c0g cbs ply1ring ad4antr
        3ad2ant2 chpdmatlem0 mat2pmatbas simpr anim1i ad2antrr eqid matsubgcell
        3adant3 syl121anc pmatring ringidcl syl jca 3jca matvscacell oveq1d weq
        vr1cl cur simpll1 adantr mat1ov ifnefalse sylan9eq oveq2d ringrz simpll
        eqtrd mat2pmatvalel oveq12d fveq2 adantl ply1scl0 ringgrp grpidcl jccir
        cif cgrp grpsubid 3eqtrd ) PUNUOZFUPUOZNBUOZUQZKURZPUOZUSZLURZPUOZUSZXN
        XQUTZUSZXNXQNVAZRVBZUSZXNXQQJIVAZNHVCZSVAVAZXNXQYEVAZXNXQYFVAZOVAZQXNXQ
        JVAZDVDVCZVAZYIOVAZDVEVCZYDDUPUOZYEEVFVCZUOZYFYQUOZXOXRUSZYGYJVBXMYPXOX
        RXTYCXKXJYPXLDFUAVGZVIZVHXMYRXOXRXTYCXJXKYRXLABCDEFGIJMOPQRTUAUBUCUDUEU
        FUGUHUIUJUKVJVQVHXMYSXOXRXTYCABEDFHNPUMUBUDUAUIVKVHXSYTXTYCXPXOXRXMXOVL
        ZVMZVNEYQDSXNXQOPYEYFUIYQVOZULUHVPVRYDYHYMYIOYDYPQDVFVCZUOZJYQUOZUSZYTU
        QZYHYMVBXSUUJXTYCXSYPUUIYTXMYPXOXRUUBVNZXMUUIXOXRXMUUGUUHXKXJUUGXLUUFDF
        QUEUAUUFVOZWGZVIXMEUPUOZUUHXJXKUUNXLEDFPUAUIVSVQYQEJUUEUJVTWAWBVNUUDWCV
        NEYQDIYLXNXQUUFPQJUIUUEUULUKYLVOZWDWAWEYDYNYOYBGVCZOVAYOYOOVAZYOYDYMYOY
        IUUPOYAYMYOVBYCYAYMQYOYLVAZYOYAYKYOQYLXSXTYKKLWFDWHVCZYOXFYOXSEDJUUSXNX
        QPYOUIUUSVOYOVOZXJXKXLXOXRWIUUKXPXOXRUUCWJXPXRVLUJWKXNXQUUSYOWLWMWNXPUU
        RYOVBZXRXTXMUVAXOXMYPUUGUSZUVAXKXJUVBXLXKYPUUGUUAUUMWBVIUUFDYLQYOUULUUO
        UUTWOWAWJVNWQWJYDXMYTUSZYIUUPVBXSUVCXTYCXSXMYTXMXOXRWPUUDWBVNABDFGHNPUP
        XNXQUMUBUDUAUCWRWAWSYDUUPYOYOOYDUUPRGVCZYOYCUUPUVDVBYAYBRGWTXAXMUVDYOVB
        ZXOXRXTYCXKXJUVEXLGDFYORUAUCUFUUTXBVIVHWQWNXMUUQYOVBZXOXRXTYCXMDXGUOZYO
        UUFUOZUSZUVFXKXJUVIXLXKUVGUVHXKYPUVGUUADXCWAUUFDYOUULUUTXDXEVIUUFDOYOYO
        UULUUTUHXHWAVHXIXI $.

      $( Lemma 3 for ~ chpdmat .  (Contributed by AV, 18-Aug-2019.) $)
      chpdmatlem3 $p |- ( ( ( N e. Fin /\ R e. Ring /\ M e. B ) /\ K e. N )
                         -> ( K ( ( X .x. .1. ) Z ( T ` M ) ) K )
                            = ( X .- ( S ` ( K M K ) ) ) ) $=
        ( cfn wcel crg w3a wa cfv cbs wceq ply1ring 3ad2ant2 adantr chpdmatlem0
        co 3adant3 mat2pmatbas jca simpr eqid matsubgcell syl112anc cmulr vr1cl
        cur adantl pmatring syl matvscacell c0g cif simpl1 mat1ov syl6eq oveq2d
        ringidcl iftruei ringridm 3eqtrd mat2pmatvalel anabsan2 oveq12d eqtrd )
        OUMUNZFUOUNZMBUNZUPZLOUNZUQZLLPJIVEZMHURZRVEVEZLLWTVEZLLXAVEZNVEZPLLMVE
        GURZNVEWSDUOUNZWTEUSURZUNZXAXHUNZUQZWRWRXBXEUTWQXGWRWOWNXGWPDFTVAZVBVCZ
        WQXKWRWQXIXJWNWOXIWPABCDEFGIJKNOPQSTUAUBUCUDUEUFUGUHUIUJVDVFABEDFHMOULU
        AUCTUHVGVHVCWQWRVIZXNEXHDRLLNOWTXAUHXHVJZUKUGVKVLWSXCPXDXFNWSXCPLLJVEZD
        VMURZVEZPDVOURZXQVEZPWSXGPDUSURZUNZJXHUNZUQZWRWRXCXRUTXMWQYDWRWNWOYDWPW
        NWOUQZYBYCWOYBWNYADFPUDTYAVJZVNZVPYEEUOUNYCEDFOTUHVQXHEJXOUIWFVRVHVFVCX
        NXNEXHDIXQLLYAOPJUHXOYFUJXQVJZVSVLWSXPXSPXQWSXPLLUTZXSDVTURZWAXSWSEDJXS
        LLOYJUHXSVJZYJVJWNWOWPWRWBXMXNXNUIWCYIXSYJLVJWGWDWEWQXTPUTZWRWQXGYBUQZY
        LWOWNYMWPWOXGYBXLYGVHVBYADXQXSPYFYHYKWHVRVCWIWQWRXDXFUTABDFGHMOUOLLULUA
        UCTUBWJWKWLWM $.
    $}

    $d B i j k $.  $d G k $.  $d M i j k $.  $d N i j k $.  $d P i j k $.
    $d R i j k $.  $d X i j k $.  $d .0. k $.
    $( The characteristic polynomial of a diagonal matrix.  (Contributed by AV,
       18-Aug-2019.)  (Proof shortened by AV, 21-Nov-2019.) $)
    chpdmat $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                      /\ A. i e. N A. j e. N ( i =/= j -> ( i M j ) = .0. ) )
      -> ( C ` M ) = ( G gsum ( k e. N |-> ( X .- ( S ` ( k M k ) ) ) ) ) ) $=
      ( cfn wcel ccrg w3a cv wne co wceq wi wral wa cfv cur cvsca cmat2pmat csg
      cmat cmdat cmpt cgsu chpmatval adantr cbs c0g ply1crng 3ad2ant2 simp1 crg
      eqid crngring 3anim2i chpdmatlem1 syl 3jca anim1i chpdmatlem2 sylanl1 a2d
      exp31 ralimdva mdetdiag chpdmatlem3 sylan adantlr mpteq2dva oveq2d 3eqtrd
      imp sylc ) MUEUFZEUGUFZKBUFZUHZGUIZHUIZUJZWRWSKUKOULZUMZHMUNZGMUNZUOZKCUP
      ZNMDVAUKZUQUPZXGURUPZUKKMEUSUKZUPXGUTUPZUKZMDVBUKZUPZJIMIUIZXOXLUKZVCZVDU
      KZJIMNXOXOKUKFUPLUKZVCZVDUKWQXFXNULXDABCXMDEXJXIXHKXKMUGNXGPRTQXGVMZXMVMZ
      XKVMZUAXIVMZXJVMZXHVMZVEVFXEDUGUFZWNXLXGVGUPZUFZUHZWTWRWSXLUKDVHUPZULZUMZ
      HMUNZGMUNZXNXRULWQYJXDWQYGWNYIWOWNYGWPDEQVIVJWNWOWPVKWQWNEVLUFZWPUHZYIWOY
      PWNWPEVNVOZABCDXGEFXJXIXHJKLMNOXKPQRSTUAUBUCUDYAYFYDYCYEVPVQVRVFWQXDYOWQX
      CYNGMWQWRMUFZUOZXBYMHMYTWSMUFZUOZWTXAYLUUBWTXAYLUUBYQYSUOZUUAUOWTXAYLYTUU
      CUUAWQYQYSYRVSVSABCDXGEFXJXIXHGHJKLMNOXKPQRSTUAUBUCUDYAYFYDYCYEVTWAWCWBWD
      WDWLXGYHXMDGHIJXLMYKYBYAYHVMUCYKVMWEWMXEXQXTJVDXEIMXPXSWQXOMUFZXPXSULZXDW
      QYQUUDUUEYRABCDXGEFXJXIXHJXOKLMNOXKPQRSTUAUBUCUDYAYFYDYCYEWFWGWHWIWJWK $.
  $}

  ${
    $d .0. i j k $.  $d A i j k $.  $d G k $.  $d N i j k x y $.  $d P i j k $.
    $d R i j k x y $.  $d X i j k $.
    chp0mat.c $e |- C = ( N CharPlyMat R ) $.
    chp0mat.p $e |- P = ( Poly1 ` R ) $.
    chp0mat.a $e |- A = ( N Mat R ) $.
    chp0mat.x $e |- X = ( var1 ` R ) $.
    chp0mat.g $e |- G = ( mulGrp ` P ) $.
    chp0mat.m $e |- .^ = ( .g ` G ) $.

    ${
      $d A c m $.  $d D k n $.  $d E k n $.  $d I k n $.  $d M c i j k m n $.
      $d N c m n $.  $d P n $.  $d R c m n $.  $d S k n $.  $d .- k $.
      chpscmat.d $e |- D = { m e. ( Base ` A ) | E. c e. ( Base ` R )
             A. i e. N A. j e. N ( i m j ) = if ( i = j , c , ( 0g ` R ) ) } $.
      chpscmat.s $e |- S = ( algSc ` P ) $.
      chpscmat.m $e |- .- = ( -g ` P ) $.
      $( The characteristic polynomial of a (nonempty!) scalar matrix.
         (Contributed by AV, 21-Aug-2019.) $)
      chpscmat $p |- ( ( ( N e. Fin /\ R e. CRing )
                        /\ ( M e. D /\ I e. N /\ A. n e. N ( n M n ) = E ) )
                      -> ( C ` M ) = ( ( # ` N ) .^ ( X .- ( S ` E ) ) ) ) $=
        ( vk cfn wcel ccrg wa cv co wceq wral w3a cfv cmpt chash cbs wne c0g wi
        cgsu simpll simplr weq cif wrex crab elrabi eleq2s 3ad2ant1 adantl oveq
        eqeq1d 2ralbidv rexbidv ifnefalse eqeq2d biimpcd a1i ralimdva rexlimdva
        elrab ex com23 imp sylbi impcom eqid chpdmat syl31anc id oveq12d rspccv
        3ad2ant3 fveq2d oveq2d mpteq2dva cmnd ccmn ply1crng crngmgp cmnmnd 3syl
        ad2antlr cgrp crg crngring ply1ring syl ringgrp vr1cl simpr csca adantr
        ad2antll clmod ply1lmod matecl syl3anc ply1sca eqcomd eleqtrrd ffvelrnd
        asclf fveq2 eqcoms eleq1d syl5ibrcom wb imbi1d mpbird rspcimdv grpsubcl
        com24 3imp mgpbas syl6eleq gsumconst 3eqtrd ) QUJUKZEULUKZUMZOCUKZNQUKZ
        JUNZUUJOUOZKUPZJQUQZURZUMZOBUSZMUIQRUIUNZUUQOUOZFUSZPUOZUTZVFUOZMUIQRKF
        USZPUOZUTZVFUOZQVAUSUVDLUOZUUOUUEUUFOAVBUSZUKZGUNZHUNZVCZUVJUVKOUOZEVDU
        SZUPZVEZHQUQZGQUQZUUPUVBUPUUEUUFUUNVGZUUEUUFUUNVHUUNUVIUUGUUHUUIUVIUUMU
        VIOUVJUVKIUNZUOZGHVISUNZUVNVJZUPZHQUQGQUQZSEVBUSZVKZIUVHVLZCUWGIOUVHVMU
        FVNZVOVPUUNUUGUVRUUHUUIUUGUVRVEZUUMUWJOUWHCOUWHUKUVIUVMUWCUPZHQUQZGQUQZ
        SUWFVKZUMUWJUWGUWNIOUVHUVTOUPZUWEUWMSUWFUWOUWDUWKGHQQUWOUWAUVMUWCUVJUVK
        UVTOVQVRVSVTWGUVIUWNUWJUVIUWMUWJSUWFUVIUWBUWFUKUMZUUGUWMUVRUWPUUGUWMUVR
        VEUWPUUGUMZUWLUVQGQUWQUVJQUKUMZUWKUVPHQUWKUVPVEUWRUVKQUKUMUVLUWKUVOUVLU
        WCUVNUVMUVJUVKUWBUVNWAWBWCWDWEWEWHWIWFWJWKUFVNVOWLAUVHBDEFGHUIMOPQRUVNT
        UAUBUGUVHWMUCUVNWMUDUHWNWOUUOUVAUVEMVFUUOUIQUUTUVDUUOUUQQUKZUMZUUSUVCRP
        UWTUURKFUUOUWSUURKUPZUUNUWSUXAVEZUUGUUMUUHUXBUUIUULUXAJUUQQJUIVIZUUKUUR
        KUXCUUJUUQUUJUUQOUXCWPZUXDWQVRWRWSVPWJWTXAXBXAUUOMXCUKZUUEUVDMVBUSZUKUV
        FUVGUPUUFUXEUUEUUNUUFDULUKMXDUKUXEDEUAXEDMUDXFMXGXHXIUVSUUOUVDDVBUSZUXF
        UUODXJUKZRUXGUKZUVCUXGUKZUVDUXGUKUUFUXHUUEUUNUUFDXKUKZUXHUUFEXKUKZUXKEX
        LZDEUAXMXNZDXOXNXIUUFUXIUUEUUNUUFUXLUXIUXMUXGDERUCUAUXGWMZXPXNXIUUNUUGU
        XJUUHUUIUUMUUGUXJVEUUHUUGUUMUUIUXJUUHUUGUUMUUIUXJVEVEUUHUUGUMZUUIUUMUXJ
        UXPUUIUUMUXJVEUXPUUIUMZUULUXJJNQUXPUUIXQZUXQUUJNUPZUMUULUXJVEZNNOUOZKUP
        ZUXJVEZUXQUYCUXSUXQUXJUYBUYAFUSZUXGUKUXQDXRUSZVBUSZUXGUYAFUXQFUXGUYEUYF
        DUGUYEWMUXPUXKUUIUUFUXKUUHUUEUXNXTXSUXPDYAUKZUUIUUFUYGUUHUUEUUFUXLUYGUX
        MDEUAYBXNXTXSUYFWMUXOYIUXQUYAUWFUYFUXQUUIUUIUVIUYAUWFUKUXRUXRUXPUVIUUIU
        UHUVIUUGUWIXSXSAENNUWFOQUBUWFWMYCYDUXQUYEEVBUXQEUYEUXPEUYEUPZUUIUUFUYHU
        UHUUEDEULUAYEXTXSYFWTYGYHUYBUVCUYDUXGUVCUYDUPKUYAKUYAFYJYKYLYMXSUXSUXTU
        YCYNUXQUXSUULUYBUXJUXSUUKUYAKUXSUUJNUUJNOUXSWPZUYIWQVRYOVPYPYQWHWIWHYSY
        TWLUXGDPRUVCUXOUHYRYDUXGDMUDUXOUUAUUBQUXFLUIMUVDUXFWMUEUUCYDUUD $.

      $d D l $.  $d F l $.  $d I l $.  $d J l n $.  $d M l $.  $d N l $.
      $d P l $.  $d R l $.  $d S l $.  $d X l $.  $d .^ l $.
      $( The characteristic polynomial of a (nonempty!) scalar matrix,
         expressed with its diagonal element.  (Contributed by AV,
         21-Aug-2019.) $)
      chpscmat0 $p |- ( ( ( N e. Fin /\ R e. CRing )
             /\ ( M e. D /\ I e. N /\ A. n e. N ( n M n ) = ( I M I ) ) )
                -> ( C ` M ) = ( ( # ` N ) .^ ( X .- ( S ` ( I M I ) ) ) ) ) $=
        ( co chpscmat ) ABCDEFGHIJMMNUHKLMNOPQRSTUAUBUCUDUEUFUGUI $.

      chpscmatgsum.f $e |- F = ( .g ` P ) $.
      chpscmatgsum.h $e |- H = ( mulGrp ` R ) $.
      chpscmatgsum.e $e |- E = ( .g ` H ) $.
      chpscmatgsum.i $e |- I = ( invg ` R ) $.
      chpscmatgsum.s $e |- .x. = ( .s ` P ) $.
      $( The characteristic polynomial of a (nonempty!) scalar matrix,
         expressed as finite group sum of binomials.  (Contributed by AV,
         2-Sep-2019.) $)
      chpscmatgsumbin $p |- ( ( ( N e. Fin /\ R e. CRing )
             /\ ( M e. D /\ J e. N /\ A. n e. N ( n M n ) = ( J M J ) ) )
                          -> ( C ` M ) = ( P gsum ( l e. ( 0 ... ( # ` N ) )
         |-> ( ( ( # ` N ) _C l ) F ( ( ( ( # ` N ) - l ) E ( I ` ( J M J ) ) )
                                       .x. ( l .^ X ) ) ) ) ) ) $=
        ( cfn wcel ccrg wa cv co wceq wral w3a cfv cplusg cc0 cfz cbc cmin cmpt
        chash cgsu chpscmat0 cminusg cbs crngring adantl eqid vr1cl adantr csca
        crg syl wf ad2antlr ply1ring ply1lmod asclf simpr2 wi weq c0g wrex crab
        cif elrabi eleq2s 3ad2ant1 impcom matecl syl3anc eqcomd fveq2d eleqtrrd
        ply1sca ffvelrnd grpsubval syl2anc clmod asclinvg syl5req fveq1d oveq2d
        a1d eqtrd cn0 simplr hashcl ad2antrr cgrp ringgrp grpinvcl lply1binomsc
        cmulr casa ply1assa cmnd fznn0sub mgpbas syl6eleq mulgnn0cl syl6eq 3syl
        ringmgp elfznn0 adantlr asclmul1 mpteq2dva 3eqtrd ) UAUSUTZEVAUTZVBZSCU
        TZRUAUTZKVCZUUISVDRRSVDZVEKUAVFZVGZVBZSBVHUAVOVHZUBUUJFVHZTVDZMVDUUNUBU
        UJQVHZFVHZDVIVHZVDZMVDZDUDVJUUNVKVDZUUNUDVCZVLVDZUUNUVCVMVDZUUQLVDZUVCU
        BMVDZGVDZNVDZVNZVPVDZABCDEFHIJKMORSTUAUBUCUEUFUGUHUIUJUKULUMVQUUMUUPUUT
        UUNMUUMUUPUBUUODVRVHZVHZUUSVDZUUTUUMUBDVSVHZUTZUUOUVOUTUUPUVNVEUUFUVPUU
        LUUFEWFUTZUVPUUEUVQUUDEVTZWAZUVODEUBUHUFUVOWBZWCWGZWDUUMDWEVHZVSVHZUVOU
        UJFUUMUVQUWCUVOFWHUUEUVQUUDUULUVRWIUVQFUVOUWBUWCDULUWBWBZDEUFWJZDEUFWKZ
        UWCWBZUVTWLWGUUMUUJEVSVHZUWCUUMUUHUUHSAVSVHZUTZUUJUWHUTZUUFUUGUUHUUKWMZ
        UWLUULUUFUWJUUGUUHUUFUWJWNZUUKUWMSHVCIVCJVCVDHIWOUCVCEWPVHWSVEIUAVFHUAV
        FUCUWHWQZJUWIWRZCSUWOUTUWJUUFUWNJSUWIWTXRUKXAXBXCAERRUWHSUAUGUWHWBZXDXE
        ZUUMUWBEVSUUFUWBEVEUULUUFEUWBUUEEUWBVEUUDDEVAUFXIWAZXFZWDXGXHZXJUVOUUSD
        UVLTUBUUOUVTUUSWBZUVLWBZUMXKXLUUMUVMUURUBUUSUUMUVMUUJUWBVRVHZVHZFVHZUUR
        UUMDXMUTZDWFUTZUUJUWCUTUVMUXEVEUUFUXFUULUUFUVQUXFUVSUWFWGWDUUFUXGUULUUF
        UVQUXGUVSUWEWGWDUWTFUWCUUJUWBUXCUVLDULUWDUWGUXCWBUXBXNXEUUMUXDUUQFUUMUU
        JUXCQUUMQEVRVHZUXCUQUUFUXHUXCVEUULUUFEUWBVRUWRXGWDXOXPXGXSXQXSXQUUMUVAD
        UDUVBUVDUVFFVHUVGDYHVHZVDZNVDZVNZVPVDZUVKUUMUUEUUNXTUTZUUQUWHUTZUVAUXMV
        EUUDUUEUULYAUUDUXNUUEUULUAYBYCUUMEYDUTZUWKUXOUUEUXPUUDUULUUEUVQUXPUVREY
        EWGWIUWQUWHEQUUJUWPUQYFXLZUUQDUUSEFNUXIUDLMOPUWHUUNUBUFUHUXAUXIWBZUNUIU
        JUWPULUOUPYGXEUUMUXLUVJDVPUUMUDUVBUXKUVIUUMUVCUVBUTZVBZUXJUVHUVDNUXTDYI
        UTZUVFUWCUTUVGUVOUTZUXJUVHVEUUFUYAUULUXSUUEUYAUUDDEUFYJWAYCUXTUVFPVSVHZ
        UWCUXTPYKUTZUVEXTUTZUUQUYCUTZUVFUYCUTUUFUYDUULUXSUUFUVQUYDUVSEPUOYRWGYC
        UXSUYEUUMUVCVJUUNYLWAUUMUYFUXSUUMUUQUWHUYCUXQUWHEPUOUWPYMZYNWDUYCLPUVEU
        UQUYCWBUPYOXEUUFUWCUYCVEUULUXSUUFUWCUWHUYCUUFUWBEVSUWSXGUYGYPYCXHUUFUXS
        UYBUULUUFUXSVBOYKUTZUVCXTUTZUVPUYBUUEUYHUUDUXSUUEUVQUXGUYHUVRUWEDOUIYRY
        QWIUXSUYIUUFUVCUUNYSWAUUFUVPUXSUWAWDUVOMOUVCUBUVODOUIUVTYMUJYOXEYTFUVFG
        UXIUWBUWCUVODUVGULUWDUWGUVTUXRURUUAXEXQUUBXQXSUUC $.

      chpscmatgsum.z $e |- Z = ( .g ` R ) $.
      $( The characteristic polynomial of a (nonempty!) scalar matrix,
         expressed as finite group sum of scaled monomials.  (Contributed by
         AV, 2-Sep-2019.) $)
      chpscmatgsummon $p |- ( ( ( N e. Fin /\ R e. CRing )
             /\ ( M e. D /\ J e. N /\ A. n e. N ( n M n ) = ( J M J ) ) )
                          -> ( C ` M ) = ( P gsum ( l e. ( 0 ... ( # ` N ) )
       |-> ( ( ( ( # ` N ) _C l ) Z ( ( ( # ` N ) - l ) E ( I ` ( J M J ) ) ) )
              .x. ( l .^ X ) ) ) ) ) $=
        ( cfn wcel ccrg wa cv co wceq wral w3a cfv cc0 chash cfz cmin cmpt cgsu
        cbc chpscmatgsumbin csca cmg clmod cbs cn0 crg crngring adantl ply1lmod
        syl ad2antrr cmnd ringmgp fznn0sub cgrp ringgrp adantr weq c0g cif wrex
        crab elrabi eleq2s 3ad2ant1 3jca eqid matecl grpinvcl syl2anc mulgnn0cl
        simp2 mgpbas syl3anc ply1sca eqcomd fveq2d eleqtrrd hashcl elfzelz bccl
        syl2an ply1ring 3syl elfznn0 vr1cl lmodvsmmulgdi syl13anc syl5req oveqd
        cz oveq1d eqtrd mpteq2dva oveq2d ) UAVAVBZEVCVBZVDZSCVBZRUAVBZKVEZYSSVF
        RRSVFZVGKUAVHZVIZVDZSBVJDUEVKUAVLVJZVMVFZUUDUEVEZVQVFZUUDUUFVNVFZYTQVJZ
        LVFZUUFUBMVFZGVFNVFZVOZVPVFDUEUUEUUGUUJUCVFZUUKGVFZVOZVPVFABCDEFGHIJKLM
        NOPQRSTUAUBUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSVRUUCUUMUUPDVPUUCUEUUEUULUUO
        UUCUUFUUEVBZVDZUULUUGUUJDVSVJZVTVJZVFZUUKGVFZUUOUURDWAVBZUUJUUSWBVJZVBU
        UGWCVBZUUKDWBVJZVBZUULUVBVGYPUVCUUBUUQYPEWDVBZUVCYOUVHYNEWEZWFZDEUGWGWH
        WIUURUUJEWBVJZUVDUURPWJVBZUUHWCVBZUUIUVKVBZUUJUVKVBYPUVLUUBUUQYPUVHUVLU
        VJEPUPWKWHWIUUQUVMUUCUUFVKUUDWLWFUUCUVNUUQUUCEWMVBZYTUVKVBZUVNYPUVOUUBY
        OUVOYNYOUVHUVOUVIEWNWHWFWOUUCYRYRSAWBVJZVBZVIZUVPUUBUVSYPUUBYRYRUVRYQYR
        UUAXJZUVTYQYRUVRUUAUVRSHVEIVEJVEVFHIWPUDVEEWQVJWRVGIUAVHHUAVHUDUVKWSZJU
        VQWTCUWAJSUVQXAULXBXCXDWFAERRUVKSUAUHUVKXEZXFWHUVKEQYTUWBURXGXHWOUVKLPU
        UHUUIUVKEPUPUWBXKUQXIXLYPUVDUVKVGUUBUUQYPUUSEWBYPEUUSYOEUUSVGYNDEVCUGXM
        WFZXNXOWIXPUUCUUDWCVBZUUFYIVBUVEUUQYNUWDYOUUBUAXQWIUUFVKUUDXRUUFUUDXSXT
        UUROWJVBZUUFWCVBZUBUVFVBZUVGYPUWEUUBUUQYOUWEYNYOUVHDWDVBUWEUVIDEUGYADOU
        JWKYBWFWIUUQUWFUUCUUFUUDYCWFYPUWGUUBUUQYPUVHUWGUVJUVFDEUBUIUGUVFXEZYDWH
        WIUVFMOUUFUBUVFDOUJUWHXKUKXIXLUUJGUUTNUUSUVDUUGUVFDUUKUWHUUSXEUSUVDXEUO
        UUTXEYEYFUURUVAUUNUUKGUURUUTUCUUGUUJYPUUTUCVGUUBUUQYPUCEVTVJUUTUTYPEUUS
        VTUWCXOYGWIYHYJYKYLYMYK $.
    $}

    ${
      chp0mat.0 $e |- .0. = ( 0g ` A ) $.
      $( The characteristic polynomial of the zero matrix.  (Contributed by AV,
         18-Aug-2019.) $)
      chp0mat $p |- ( ( N e. Fin /\ R e. CRing )
                     -> ( C ` .0. ) = ( ( # ` N ) .^ X ) ) $=
        ( vk wcel wa cfv vi vj vx vy cfn ccrg cv co cascl csg cmpt cgsu cbs wne
        chash c0g wceq wi wral simpl simpr cgrp crngring matring sylan2 ringgrp
        crg eqid grpidcl 3syl cvv cmpt2 mat0op syl5eq adantr eqidd adantl fvexd
        weq ovmpt2d a1d ralrimivva chpdmat syl31anc ply1scl0 syl eqtrd ply1ring
        fveq2d oveq2d jca grpsubid1 mpteq2dva cmnd ccmn ply1crng crngmgp cmnmnd
        vr1cl mgpbas syl6eleq gsumconst syl3anc 3eqtrd ) GUERZDUFRZSZIBTZFQGHQU
        GZXIIUHZCUITZTZCUJTZUHZUKZULUHZFQGHUKZULUHZGUOTHEUHZXGXEXFIAUMTZRZUAUGZ
        UBUGZUNZYBYCIUHDUPTZUQZURZUBGUSUAGUSXHXPUQXEXFUTZXEXFVAXGAVGRZAVBRYAXFX
        EDVGRZYIDVCZADGLVDVEAVFXTAIXTVHZPVIVJXGYGUAUBGGXGYBGRZYCGRZSZSZYFYDYPUC
        UDYBYCGGYEYEIVKXGIUCUDGGYEVLZUQZYOXFXEYJYRYKXEYJSIAUPTYQPADUCUDGYELYEVH
        ZVMVNVEZVOYPUCUAVSUDUBVSSSYEVPYOYMXGYMYNUTVQYOYNXGYMYNVAVQYPDUPVRVTWAWB
        AXTBCDXKUAUBQFIXMGHYEJKLXKVHZYLMYSNXMVHZWCWDXGXOXQFULXGQGXNHXGXIGRZSZXN
        HCUPTZXMUHZHUUDXLUUEHXMUUDXLYEXKTZUUEUUDXJYEXKUUDUCUDXIXIGGYEYEIVKXGYRU
        UCYTVOUUDUCQVSUDQVSSSYEVPXGUUCVAZUUHUUDDUPVRVTWIXGUUGUUEUQZUUCXGYJUUIXF
        YJXEYKVQZXKCDUUEYEKUUAYSUUEVHZWEWFVOWGWJUUDCVBRZHCUMTZRZSZUUFHUQXGUUOUU
        CXGUULUUNXFUULXEXFYJCVGRUULYKCDKWHCVFVJVQXGYJUUNUUJUUMCDHMKUUMVHZWSZWFW
        KVOUUMCXMHUUEUUPUUKUUBWLWFWGWMWJXGFWNRZXEHFUMTZRXRXSUQXFUURXEXFCUFRFWOR
        UURCDKWPCFNWQFWRVJVQYHXGHUUMUUSXFUUNXEXFYJUUNYKUUQWFVQUUMCFNUUPWTXAGUUS
        EQFHUUSVHOXBXCXD $.
    $}

    $d I i j k $.  $d S k $.  $d .1. k $.
    chpidmat.i $e |- I = ( 1r ` A ) $.
    chpidmat.s $e |- S = ( algSc ` P ) $.
    chpidmat.1 $e |- .1. = ( 1r ` R ) $.
    chpidmat.m $e |- .- = ( -g ` P ) $.
    $( The characteristic polynomial of the identity matrix.  (Contributed by
       AV, 19-Aug-2019.) $)
    chpidmat $p |- ( ( N e. Fin /\ R e. CRing )
                    -> ( C ` I ) = ( ( # ` N ) .^ ( X .- ( S ` .1. ) ) ) ) $=
      ( vk vi vj cfn wcel ccrg wa cfv cv co csg cmpt cgsu chash cbs wne wceq wi
      c0g wral simpl crg crngring matring sylan2 eqid ringidcl syl weq ad2antrr
      simpr adantl simplrl simplrr mat1ov ifnefalse eqtrd ex ralrimivva chpdmat
      syl31anc adantr iftruei syl6eq fveq2d oveq2d mpteq2dva cmnd ccmn ply1crng
      cif crngmgp cmnmnd 3syl cgrp w3a ply1ring ringgrp vr1cl cur ply1scl1 3jca
      eqeltrd grpsubcl mgpbas syl6eleq gsumconst eqcomi oveqi oveq2i syl3anc )
      KUFUGZDUHUGZUIZIBUJZHUCKLUCUKZXRIULZEUJZCUMUJZULZUNZUOULZKUPUJZLFEUJZJULZ
      GULZXPXNXOIAUQUJZUGZUDUKZUEUKZURZYKYLIULZDVAUJZUSZUTZUEKVBUDKVBXQYDUSXNXO
      VCZXNXOVMXPAVDUGZYJXOXNDVDUGZYSDVEZADKOVFVGYIAIYIVHZSVIVJXPYQUDUEKKXPYKKU
      GZYLKUGZUIZUIZYMYPUUFYMUIZYNUDUEVKFYOWMZYOUUGADIFYKYLKYOOUAYOVHZXPXNUUEYM
      YRVLXPYTUUEYMXOYTXNUUAVNZVLXPUUCUUDYMVOXPUUCUUDYMVPSVQYMUUHYOUSUUFYKYLFYO
      VRVNVSVTWAAYIBCDEUDUEUCHIYAKLYOMNOTUUBPUUIQYAVHZWBWCXPYDHUCKLYFYAULZUNZUO
      ULZYHXPYCUUMHUOXPUCKYBUULXPXRKUGZUIZXTYFLYAUUPXSFEUUPXSUCUCVKZFYOWMFUUPAD
      IFXRXRKYOOUAUUIXPXNUUOYRWDXPYTUUOUUJWDXPUUOVMZUURSVQUUQFYOXRVHWEWFWGWHWIW
      HXPHWJUGZXNUULHUQUJZUGZUUNYHUSXOUUSXNXOCUHUGHWKUGUUSCDNWLCHQWNHWOWPVNYRXP
      UULCUQUJZUUTXPCWQUGZLUVBUGZYFUVBUGZWRZUULUVBUGXOUVFXNXOYTUVFUUAYTUVCUVDUV
      EYTCVDUGZUVCCDNWSZCWTVJUVBCDLPNUVBVHZXAYTYFCXBUJZUVBECDFUVJNTUAUVJVHZXCYT
      UVGUVJUVBUGUVHUVBCUVJUVIUVKVIVJXEXDVJVNUVBCYALYFUVIUUKXFVJUVBCHQUVIXGXHUU
      SXNUVAWRUUNYEUULGULYHKUUTGUCHUULUUTVHRXIUULYGYEGYAJLYFJYAUBXJXKXLWFXMVSVS
      $.
  $}

  ${
    $d B c $.  $d C c $.  $d E c $.  $d M c $.  $d N c $.  $d P c $.  $d R c $.
    $d .1. c $.  $d .x. c $.
    chmaidscmat.a $e |- A = ( N Mat R ) $.
    chmaidscmat.b $e |- B = ( Base ` A ) $.
    chmaidscmat.c $e |- C = ( N CharPlyMat R ) $.
    chmaidscmat.p $e |- P = ( Poly1 ` R ) $.
    chmaidscmat.e $e |- E = ( Base ` P ) $.
    chmaidscmat.y $e |- Y = ( N Mat P ) $.
    chmaidscmat.k $e |- K = ( Base ` Y ) $.
    chmaidscmat.m $e |- .x. = ( .s ` Y ) $.
    chmaidscmat.0 $e |- .0. = ( 0g ` P ) $.
    chmaidscmat.1 $e |- .1. = ( 1r ` Y ) $.
    chmaidscmat.d $e |- S = ( N ScMat P ) $.
    $( The characteristic polynomial of a matrix multiplied with the identity
       matrix is a scalar matrix.  (Contributed by AV, 30-Oct-2019.)  (Revised
       by AV, 19-Dec-2019.) $)
    chmaidscmat $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                        -> ( ( C ` M ) .x. .1. ) e. S ) $=
      ( vc cfn wcel ccrg w3a cfv co cv wceq crg wa crngring ply1ring syl anim2i
      3adant3 chpmatply1 pmatring sylan2 ringidcl matvscl syl12anc risset oveq1
      wrex wi eqcoms a1i reximdva com12 sylbi mpcom wb scmatel mpbir2and ) LUGU
      HZEUIUHZKBUHZUJZKCUKZHGULZFUHZWFJUHZWFUFUMZHGULUNZUFIVJZWDWADUOUHZUPZWEIU
      HZHJUHZWHWAWBWMWCWBWLWAWBEUOUHZWLEUQZDERURUSUTVAZABCDEIKLQOPRSVBZWAWBWOWC
      WAWBUPMUOUHZWOWBWAWPWTWQMDELRTVCVDJMHUAUDVEUSVAMJWEDGILHSTUAUBVFVGWNWDWKW
      SWNWIWEUNZUFIVJZWDWKVKUFWEIVHWDXBWKWDXAWJUFIXAWJVKWDWIIUHUPWJWEWIWEWIHGVI
      VLVMVNVOVPVQWDWMWGWHWKUPVRWRMJDFGHIWFLUOUFSTUAUDUBUEVSUSVT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The characteristic factor function G
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
In this subsection the function ` G = ( n e. NN0 |-> if ( n = 0 ,
( .0. .- ( ( T `` M ) .X. ( T `` ( b `` 0 ) ) ) ) , if ( n = ( s + 1 ) ,
( T `` ( b `` s ) ) , if ( ( s + 1 ) < n , .0. , ( ( T `` ( b `` ( n - 1 ) ) )
.- ( ( T `` M ) .X. ( T `` ( b `` n ) ) ) ) ) ) ) ) ` is discussed.
This function is involved in the representation of the product of the
characteristic matrix of a given matrix and its adjunct as an infinite sum,
see ~ cpmadugsum .  Therefore, this function is called "characteristic factor
function" (in short "chfacf") in the following.  It plays an important role in
the proof of the Cayley-Hamilton theorem, see ~ cayhamlem1 , ~ cayhamlem3 and
~ cayhamlem4 .
$)

  ${
    $d N n $.  $d S n $.
    fvmptnn04if.g $e |- G = ( n e. NN0
            |-> if ( n = 0 , A , if ( n = S , C , if ( S < n , D , B ) ) ) ) $.
    fvmptnn04if.s $e |- ( ph -> S e. NN ) $.
    fvmptnn04if.n $e |- ( ph -> N e. NN0 ) $.
    ${
      fvmptnn04if.y $e |- ( ph -> Y e. V ) $.
      fvmptnn04if.a $e |- ( ( ph /\ N = 0 ) -> Y = [_ N / n ]_ A ) $.
      fvmptnn04if.b $e |- ( ( ph /\ 0 < N /\ N < S ) -> Y = [_ N / n ]_ B ) $.
      fvmptnn04if.c $e |- ( ( ph /\ N = S ) -> Y = [_ N / n ]_ C ) $.
      fvmptnn04if.d $e |- ( ( ph /\ S < N ) -> Y = [_ N / n ]_ D ) $.
      $( The function values of a mapping from the nonnegative integers with
         four distinct cases.  (Contributed by AV, 10-Nov-2019.) $)
      fvmptnn04if $p |- ( ph -> ( G ` N ) = Y ) $=
        ( wa cfv cv cc0 wceq clt wbr cif csb cn0 wcel wsbc csbif eqsbc3 sbcbr2g
        wb csbvarg breq2d bitrd ifbid syl5eq ifbieq2d adantr eqeltrrd wn eqcomd
        syl adantlr ad2antrr eqeltrd wi ex ad3antrrr simplll ancom anbi2i anass
        imp bicomi anbi1i 3bitri 3bitr4i an32 bitri wne df-ne cn elnnne0 sylbir
        nngt0 expcom mpan9 nn0red nnred lenltd biimprd adantld biimpri ad2antll
        cle cr ltlend mpbir2and w3a syl3anc ifclda fvmpts syl2anc ifeqda 3eqtrd
        nesym ) AIHUAZGIGUBZUCUDZBXLFUDZDFXLUEUFZECUGZUGZUGZUHZIUCUDZGIBUHZIFUD
        ZGIDUHZFIUEUFZGIEUHZGICUHZUGZUGZUGZKAIUIUJZXSJUJXKXSUDNAXSYIJAXSXMGIUKZ
        YAGIXQUHZUGYIXMGIBXQULAYKXTYLYHYAAYJYKXTUONGIUCUIUMVFAYLXNGIUKZYCGIXPUH
        ZUGYHXNGIDXPULAYMYBYNYGYCAYJYMYBUONGIFUIUMVFAYNXOGIUKZYEYFUGYGXOGIECULA
        YOYDYEYFAYOFGIXLUHZUEUFZYDAYJYOYQUONGIFXLUEUIUNVFAYPIFUEAYJYPIUDNGIUIUP
        VFUQURUSUTVAUTVAUTZAXTYAYHJAXTTZKYAJPAKJUJZXTOVBVCAXTVDZTZYBYCYGJUUBYBT
        YCKJAYBYCKUDUUAAYBTKYCRVEVGZAYTUUAYBOVHVIUUBYBVDZTZYDYEYFJUUEYDTYEKJUUE
        YDYEKUDZAYDUUFVJUUAUUDAYDUUFAYDTKYESVEVKVHVQZAYTUUAUUDYDOVLVIUUEYDVDZTZ
        YFKJUUIAUCIUEUFZIFUEUFZYFKUDAUUAUUDUUHVMUUIAUUAUUDUUHTZTZTZUUJUUNUUAUUD
        TZATZUUHTZUUIUUOUUHATZTZUUOAUUHTZTUUNUUQUURUUTUUOUUHAVNVOUUNUUMATUUOUUH
        TZATUUSAUUMVNUUMUVAAUVAUUMUUAUUDUUHVPVRVSUUOUUHAVPVTUUOAUUHVPWAUUPUUEUU
        HUUPUUAATZUUDTUUEUUAUUDAWBUVBUUBUUDUUAAVNVSWCVSWCZAYJUUMUUJNUUAYJUUJVJZ
        UULUUAIUCWDZUVDIUCWEYJUVEUUJYJUVETIWFUJUUJIWGIWIWHWJWHVBWKWHUUIUUNUUKUV
        CUUNUUKIFWSUFZFIWDZAUUMUVFAUULUVFUUAAUUHUVFUUDAUVFUUHAIFAINWLZAFMWMZWNW
        OWPWPVQUULUVGAUUAUUDUVGUUHUVGUUDFIXJWQVBWRUUNIFAIWTUJUUMUVHVBAFWTUJUUMU
        VIVBXAXBWHAUUJUUKXCKYFQVEXDZAYTUUAUUDUUHOVLVIXEXEXEVIGIXRUIHJLXFXGYRAXT
        YAYHKYSKYAPVEUUBYBYCYGKUUCUUEYDYEYFKUUGUVJXHXHXHXI $.
    $}

    $d A n $.  $d V n $.
    $( The function value of a mapping from the nonnegative integers with four
       distinct cases for the first case.  (Contributed by AV, 10-Nov-2019.) $)
    fvmptnn04ifa $p |- ( ( ph /\ N = 0 /\ [_ N / n ]_ A e. V )
                         -> ( G ` N ) = [_ N / n ]_ A ) $=
      ( cc0 wceq csb wcel wa clt wbr w3a cn 3ad2ant1 cn0 simp3 eqidd wi gt0ne0d
      simpr neneqd pm2.21d impancom 3adant3 3imp wne nnne0d necomd adantr neeq1
      wb adantl mpbird imp wn nnnn0 nn0nlt0 3syl breq2 notbid fvmptnn04if ) AIN
      OZGIBPZJQZUAZBCDEFGHIJVLKAVKFUBQZVMLUCAVKIUDQVMMUCAVKVMUEVNVKRVLUFVNNISTZ
      IFSTZVLGICPOZAVKVPVQVRUGZUGVMAVPVKVSAVPRZVKVSVTINVTIAVPUIUHUJUKULUMUNVNIF
      OZVLGIDPOZVNWAWBVNIFAVKIFUOZVMAVKRZWCNFUOZAWEVKAFNAFLUPUQURVKWCWEUTAINFUS
      VAVBUMUJUKVCVNFISTZVLGIEPOZVNWFWGAVKWFVDZVMWDWHFNSTZVDZAWJVKAVOFUDQWJLFVE
      FVFVGURVKWHWJUTAVKWFWIINFSVHVIVAVBUMUKVCVJ $.

    $( The function value of a mapping from the nonnegative integers with four
       distinct cases for the second case.  (Contributed by AV,
       10-Nov-2019.) $)
    fvmptnn04ifb $p |- ( ( ph /\ ( 0 < N /\ N < S ) /\ [_ N / n ]_ B e. V )
                         -> ( G ` N ) = [_ N / n ]_ B ) $=
      ( cc0 clt wbr csb wcel wceq wi wa w3a cn 3ad2ant1 cn0 simp3 wne cr cle wb
      nn0re nn0ge0 jca ne0gt0 3syl biimprcd adantr impcom 3adant3 df-ne pm2.21d
      wn biimpi syl eqidd simpr ltned neneqd adantrl nnred ltnsym syl2anc com12
      imp adantl fvmptnn04if ) ANIOPZIFOPZUAZGICQZJRZUBZBCDEFGHIJVTKAVSFUCRWALU
      DAVSIUERZWAMUDAVSWAUFWBINSZVTGIBQSZWBINUGZWDWETAVSWFWAVSAWFVQAWFTVRAWFVQA
      WCIUHRZNIUIPZUAWFVQUJMWCWGWHIUKZIULUMIUNUOUPUQURUSWFWDWEWFWDVBINUTVCVAVDV
      NWBVQVRUBVTVEWBIFSZVTGIDQSZWBWJWKAVSWJVBZWAAVRWLVQAVRUAZIFWMIFAWGVRAWCWGM
      WIVDZUQAVRVFVGVHVIUSVAVNWBFIOPZVTGIEQSZWBWOWPAVSWOVBZWAVSAWQVRAWQTVQAVRWQ
      AWGFUHRVRWQTWNAFLVJIFVKVLVMVOURUSVAVNVP $.

    $( The function value of a mapping from the nonnegative integers with four
       distinct cases for the third case.  (Contributed by AV, 10-Nov-2019.) $)
    fvmptnn04ifc $p |- ( ( ph /\ N = S /\ [_ N / n ]_ C e. V )
                         -> ( G ` N ) = [_ N / n ]_ C ) $=
      ( wceq csb wcel cc0 wn 3adant3 pm2.21d w3a cn 3ad2ant1 cn0 simp3 wa nnne0
      neneqd syl adantr wb eqeq1 notbid adantl mpbird imp clt wi nn0red lttri3d
      wbr nnred simprbda a1d 3imp eqidd simplbda fvmptnn04if ) AIFNZGIDOZJPZUAZ
      BCDEFGHIJVJKAVIFUBPZVKLUCAVIIUDPVKMUCAVIVKUEVLIQNZVJGIBONZVLVNVOAVIVNRZVK
      AVIUFZVPFQNZRZAVSVIAVMVSLVMFQFUGUHUIUJVIVPVSUKAVIVNVRIFQULUMUNUOSTUPVLQIU
      QVAZIFUQVAZVJGICONZVLWAWBURZVTAVIWCVKVQWAWBAVIWARZFIUQVAZRZAIFAIMUSAFLVBU
      TZVCTSVDVEVLVIUFVJVFVLWEVJGIEONZVLWEWHAVIWFVKAVIWDWFWGVGSTUPVH $.

    $( The function value of a mapping from the nonnegative integers with four
       distinct cases for the forth case.  (Contributed by AV, 10-Nov-2019.) $)
    fvmptnn04ifd $p |- ( ( ph /\ S < N /\ [_ N / n ]_ D e. V )
                         -> ( G ` N ) = [_ N / n ]_ D ) $=
      ( clt wbr csb wcel cc0 wceq wi w3a cn 3ad2ant1 cn0 simp3 wa wn 0red nnred
      nngt0d ltnsymd adantr breq2 notbid adantl mpbird pm2.21d impancom 3adant3
      wb imp nn0red ltnsym syl2anc a1d 3imp lttri3d simplbda eqidd fvmptnn04if
      cr ) AFINOZGIEPZJQZUAZBCDEFGHIJVMKAVLFUBQVNLUCAVLIUDQVNMUCAVLVNUEVOIRSZVM
      GIBPSZAVLVPVQTVNAVPVLVQAVPUFZVLVQVRVLUGZFRNOZUGZAWAVPARFAUHAFLUIZAFLUJUKU
      LVPVSWAUTAVPVLVTIRFNUMUNUOUPUQURUSVAVORINOZIFNOZVMGICPSZVOWDWETWCVOWDWEAV
      LWDUGZVNAVLWFAFVKQIVKQVLWFTWBAIMVBZFIVCVDVAUSUQVEVFVOIFSZVMGIDPSZAVLWHWIT
      VNAWHVLWIAWHUFVLWIAWHWFVSAIFWGWBVGVHUQURUSVAVOVLUFVMVIVJ $.
  $}

  ${
    $d B n $.  $d M n $.  $d N n $.  $d R n $.  $d Y n $.  $d b n $.  $d n s $.
    chfacfisf.a $e |- A = ( N Mat R ) $.
    chfacfisf.b $e |- B = ( Base ` A ) $.
    chfacfisf.p $e |- P = ( Poly1 ` R ) $.
    chfacfisf.y $e |- Y = ( N Mat P ) $.
    chfacfisf.r $e |- .X. = ( .r ` Y ) $.
    chfacfisf.s $e |- .- = ( -g ` Y ) $.
    chfacfisf.0 $e |- .0. = ( 0g ` Y ) $.
    chfacfisf.t $e |- T = ( N matToPolyMat R ) $.
    chfacfisf.g $e |- G = ( n e. NN0
          |-> if ( n = 0 , ( .0. .- ( ( T ` M ) .X. ( T ` ( b ` 0 ) ) ) ) ,
                   if ( n = ( s + 1 ) , ( T ` ( b ` s ) ) ,
                        if ( ( s + 1 ) < n , .0. ,
                          ( ( T ` ( b ` ( n - 1 ) ) )
                            .- ( ( T ` M ) .X. ( T ` ( b ` n ) ) ) ) ) ) ) ) $.
    $( The "characteristic factor function" is a function from the nonnegative
       integers to polynomial matrices.  (Contributed by AV, 8-Nov-2019.) $)
    chfacfisf $p |- ( ( ( N e. Fin /\ R e. Ring /\ M e. B )
                             /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) ) )
                    -> G : NN0 --> ( Base ` Y ) ) $=
      ( cfn wcel crg w3a cv cn cc0 cfz co cmap wa cn0 wceq cfv c1 caddc clt wbr
      cmin cif cbs cgrp pmatring 3adant3 ringgrp syl adantr ring0cl mat2pmatbas
      3simpa wf elmapi adantl cuz nnnn0 nn0uz syl6eleq eluzfz1 ffvelrnd anim12i
      eqid df-3an sylibr ringcl syl3anc grpsubcl ad2antrr eluzfz2 anim1i ancomd
      wn m2pmfzmap syl2anc ad4antr wi cle nn0re peano2nn nnred lenltd wne nesym
      cr wb ltlen syl2anr biimprd expcomd syl5bir com23 sylbird ex ad2antrl imp
      impd ad4antlr id necon3bi elnnne0 nnm1nn0 adantll simprbda 1red lesubaddd
      anim2i nnre mpbird exp31 elfz2nn0 syl3anbrc sylanbrc simprr simplr ifclda
      cz nn0z nnz zleltp1 biimpar imp31 syl12anc adantlr syld impl fmptd ) KUEU
      FZDUGUFZIBUFZUHZNUIZUJUFZOUIZBUKUUNULUMZUNUMUFZUOZUOZGUPGUIZUKUQZMIEURZUK
      UUPURZEURZFUMZJUMZUVAUUNUSUTUMZUQZUUNUUPUREURZUVHUVAVAVBZMUVAUSVCUMZUUPUR
      ZEURZUVCUVAUUPUREURZFUMZJUMZVDZVDZVDLVEURZHUUTUVAUPUFZUOZUVBUVGUVSUVTUUTU
      VGUVTUFZUWAUVBUUTLVFUFZMUVTUFZUVFUVTUFZUWCUUMUWDUUSUUMLUGUFZUWDUUJUUKUWGU
      ULLCDKRSVGZVHZLVIZVJVKUUMUWEUUSUUMUWGUWEUWIUVTLMUVTWEZUBVLVJVKZUUTUWGUVCU
      VTUFZUVEUVTUFZUWFUUMUWGUUSUWIVKZUUMUWMUUSABLCDEIKUCPQRSVMVKZUUTUUJUUKUVDB
      UFZUHZUWNUUTUUJUUKUOZUWQUOUWRUUMUWSUUSUWQUUJUUKUULVNZUUSUUQBUKUUPUURUUQBU
      UPVOZUUOUUPBUUQVPVQZUUOUKUUQUFZUURUUOUUNUKVRURZUFZUXCUUOUUNUPUXDUUNVSZVTW
      AZUKUUNWBVJVKWCWDUUJUUKUWQWFWGABLCDEUVDKUCPQRSVMVJUVTLFUVCUVEUWKTWHWIUVTL
      JMUVFUWKUAWJWIWKUWBUVBWOZUOZUVIUVJUVRUVTUWBUVJUVTUFZUXHUVIUUTUXJUWAUUTUUJ
      UUKUUNUPUFZUHZUURUUNUUQUFZUOZUXJUUTUWSUXKUOUXLUUMUWSUUSUXKUWTUUOUXKUURUXF
      VKZWDUUJUUKUXKWFWGZUUSUXNUUMUUSUXMUURUUOUXMUURUUOUXEUXMUXGUKUUNWLVJWMWNVQ
      ABCDUUNEUUNKLOPQRSUCWPWQVKWKUXIUVIWOZUOUVKMUVQUVTUUTUWEUWAUXHUXQUVKUWLWRU
      XIUXQUVKWOZUVQUVTUFZUXIUXQUXRUOZUVAUVHVAVBZUXSUWBUXTUYAWSZUXHUUTUWAUYBUUO
      UWAUYBWSUUMUURUUOUWAUYBUUOUWAUOZUXQUXRUYAUYCUXRUXQUYAUYCUXRUVAUVHWTVBZUXQ
      UYAWSUYCUVAUVHUWAUVAXGUFZUUOUVAXAZVQZUUOUVHXGUFZUWAUUOUVHUUNXBXCZVKXDUYCU
      XQUYDUYAUXQUVHUVAXEZUYCUYDUYAWSUVHUVAXFUYCUYDUYJUYAUYCUYAUYDUYJUOZUWAUYEU
      YHUYAUYKXHUUOUYFUYIUVAUVHXIXJZXKXLXMXNXOXNXSXPXQXRVKUXIUYAUXSUXIUYAUOZUWD
      UVNUVTUFZUVPUVTUFZUXSUUMUWDUUSUWAUXHUYAUUJUUKUWDUULUWSUWGUWDUWHUWJVJVHWRU
      YMUUJUUKUVMBUFZUHZUYNUYMUWSUYPUYQUUMUWSUUSUWAUXHUYAUWTWRUYMUUQBUVLUUPUUSU
      XAUUMUWAUXHUYAUXBXTUYMUVLUPUFZUXKUVLUUNWTVBZUVLUUQUFUXIUYRUYAUWAUXHUYRUUT
      UWAUXHUOZUVAUJUFZUYRUYTUWAUVAUKXEZUOVUAUXHVUBUWAUVBUVAUKUVBYAYBYIUVAYCWGU
      VAYDVJYEVKUUSUXKUUMUWAUXHUYAUXOXTUXIUYAUYSUWBUYAUYSWSZUXHUUTUWAVUCUUOUWAV
      UCWSUUMUURUUOUWAUYAUYSUYCUYAUOZUYSUYDUYCUYAUYDUYJUYLYFVUDUVAUSUUNUYCUYEUY
      AUYGVKVUDYGUUOUUNXGUFUWAUYAUUNYJWKYHYKYLXQXRVKXRUVLUUNYMYNWCUUJUUKUYPWFYO
      ABLCDEUVMKUCPQRSVMVJUWBUYAUYOUXHUWBUYAUOZUWGUWMUVOUVTUFZUYOUUTUWGUWAUYAUW
      OWKUUTUWMUWAUYAUWPWKVUEUXLUURUVAUUQUFZVUFUUTUXLUWAUYAUXPWKUUTUURUWAUYAUUM
      UUOUURYPWKUUTUWAUYAVUGUUOUWAUYAVUGWSWSUUMUURUUOUWAUYAVUGVUDUWAUXKUVAUUNWT
      VBZVUGUUOUWAUYAYQUUOUXKUWAUYAUXFWKUYCVUHUYAUWAUVAYSUFUUNYSUFVUHUYAXHUUOUV
      AYTUUNUUAUVAUUNUUBXJUUCUVAUUNYMYNYLXQUUDABCDUUNEUVAKLOPQRSUCWPUUEUVTLFUVC
      UVOUWKTWHWIUUFUVTLJUVNUVPUWKUAWJWIXPUUGUUHYRYRYRUDUUI $.

    ${
      $d S n $.
      chfacfisfcpmat.s $e |- S = ( N ConstPolyMat R ) $.
      $( The "characteristic factor function" is a function from the
         nonnegative integers to constant polynomial matrices.  (Contributed by
         AV, 19-Nov-2019.) $)
      chfacfisfcpmat $p |- ( ( ( N e. Fin /\ R e. Ring /\ M e. B )
                              /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) ) )
                             -> G : NN0 --> S ) $=
        ( cfn wcel crg w3a cv cn cc0 cfz co cmap wa cn0 wceq cfv caddc clt cmin
        c1 wbr csubg cpmatsubgpmat 3adant3 adantr csubmnd subgsubm subm0cl 3syl
        cif csubrg cpmatsrgpmat m2cpm 3simpa elmapi adantl nnnn0 nn0uz syl6eleq
        wf cuz eluzfz1 ffvelrnd anim12i df-3an sylibr subrgmcl syl3anc ad2antrr
        syl subgsubcl wn simpl1 simpl2 eluzfz2 ad2antrl ad4antr wi cle cr nn0re
        peano2nn nnred lenltd nesym ltlen syl2anr biimprd expcomd syl5bir com23
        wne wb sylbird impd ex imp ad4antlr id necon3bi elnnne0 nnm1nn0 adantll
        anim2i simprbda 1red lesubaddd mpbird exp31 elfz2nn0 syl3anbrc sylanbrc
        nnre simp1d cz ifclda simp2d simplr nn0z nnz zleltp1 biimpar imp31 syld
        adantlr impl fmptd ) LUGUHZDUIUHZJBUHZUJZOUKZULUHZPUKZBUMUUPUNUOZUPUOUH
        ZUQZUQZHURHUKZUMUSZNJFUTZUMUURUTZFUTZGUOZKUOZUVCUUPVDVAUOZUSZUUPUURUTZF
        UTZUVJUVCVBVEZNUVCVDVCUOZUURUTZFUTZUVEUVCUURUTZFUTZGUOZKUOZVNZVNZVNEIUV
        BUVCURUHZUQZUVDUVIUWCEUVBUVIEUHZUWDUVDUVBEMVFUTUHZNEUHZUVHEUHZUWFUUOUWG
        UVAUULUUMUWGUUNMCDELUFSTVGVHZVIUUOUWHUVAUUOUWGEMVJUTUHUWHUWJEMVKEMNUCVL
        VMVIZUVBEMVOUTUHZUVEEUHZUVGEUHZUWIUUOUWLUVAUULUUMUWLUUNMCDELUFSTVPVHVIZ
        UUOUWMUVAABDEFJLUFUDQRVQVIZUVBUULUUMUVFBUHZUJZUWNUVBUULUUMUQZUWQUQUWRUU
        OUWSUVAUWQUULUUMUUNVRZUVAUUSBUMUURUUTUUSBUURWDZUUQUURBUUSVSVTZUUQUMUUSU
        HZUUTUUQUUPUMWEUTZUHZUXCUUQUUPURUXDUUPWAZWBWCZUMUUPWFWNVIWGWHUULUUMUWQW
        IWJABDEFUVFLUFUDQRVQWNEMGUVEUVGUAWKWLEMKNUVHUBWOWLWMUWEUVDWPZUQZUVKUVMU
        WBEUWEUVMEUHZUXHUVKUVBUXJUWDUVBUULUUMUVLBUHUXJUULUUMUUNUVAWQUULUUMUUNUV
        AWRUVBUUSBUUPUURUVAUXAUUOUXBVTZUUQUUPUUSUHZUUOUUTUUQUXEUXLUXGUMUUPWSWNW
        TWGABDEFUVLLUFUDQRVQWLVIWMUXIUVKWPZUQUVNNUWAEUVBUWHUWDUXHUXMUVNUWKXAUXI
        UXMUVNWPZUWAEUHZUXIUXMUXNUQZUVCUVJVBVEZUXOUWEUXPUXQXBZUXHUVBUWDUXRUUQUW
        DUXRXBUUOUUTUUQUWDUXRUUQUWDUQZUXMUXNUXQUXSUXNUXMUXQUXSUXNUVCUVJXCVEZUXM
        UXQXBUXSUVCUVJUWDUVCXDUHZUUQUVCXEZVTZUUQUVJXDUHZUWDUUQUVJUUPXFXGZVIXHUX
        SUXMUXTUXQUXMUVJUVCXPZUXSUXTUXQXBUVJUVCXIUXSUXTUYFUXQUXSUXQUXTUYFUQZUWD
        UYAUYDUXQUYGXQUUQUYBUYEUVCUVJXJXKZXLXMXNXOXRXOXSXTWTYAVIUXIUXQUXOUXIUXQ
        UQZUWGUVQEUHZUVTEUHZUXOUUOUWGUVAUWDUXHUXQUWJXAUYIUULUUMUVPBUHZUJZUYJUYI
        UWSUYLUYMUUOUWSUVAUWDUXHUXQUWTXAUYIUUSBUVOUURUVAUXAUUOUWDUXHUXQUXBYBUYI
        UVOURUHZUUPURUHZUVOUUPXCVEZUVOUUSUHUXIUYNUXQUWDUXHUYNUVBUWDUXHUQZUVCULU
        HZUYNUYQUWDUVCUMXPZUQUYRUXHUYSUWDUVDUVCUMUVDYCYDYHUVCYEWJUVCYFWNYGVIUVA
        UYOUUOUWDUXHUXQUUQUYOUUTUXFVIZYBUXIUXQUYPUWEUXQUYPXBZUXHUVBUWDVUAUUQUWD
        VUAXBUUOUUTUUQUWDUXQUYPUXSUXQUQZUYPUXTUXSUXQUXTUYFUYHYIVUBUVCVDUUPUXSUY
        AUXQUYCVIVUBYJUUQUUPXDUHUWDUXQUUPYQWMYKYLYMWTYAVIYAUVOUUPYNYOWGUULUUMUY
        LWIYPABDEFUVPLUFUDQRVQWNUWEUXQUYKUXHUWEUXQUQZUWLUWMUVSEUHZUYKUVBUWLUWDU
        XQUWOWMUVBUWMUWDUXQUWPWMVUCUULUUMUVRBUHVUDVUCUULUUMUYOUVBUULUUMUYOUJZUW
        DUXQUVBUWSUYOUQVUEUUOUWSUVAUYOUWTUYTWHUULUUMUYOWIWJWMZYRVUCUULUUMUYOVUF
        UUAVUCUUSBUVCUURUVBUXAUWDUXQUXKWMUVBUWDUXQUVCUUSUHZUUQUWDUXQVUGXBXBUUOU
        UTUUQUWDUXQVUGVUBUWDUYOUVCUUPXCVEZVUGUUQUWDUXQUUBUUQUYOUWDUXQUXFWMUXSVU
        HUXQUWDUVCYSUHUUPYSUHVUHUXQXQUUQUVCUUCUUPUUDUVCUUPUUEXKUUFUVCUUPYNYOYMW
        TUUGWGABDEFUVRLUFUDQRVQWLEMGUVEUVSUAWKWLUUIEMKUVQUVTUBWOWLXTUUHUUJYTYTY
        TUEUUK $.
    $}

    $d B k l $.  $d M k l $.  $d N k l $.  $d R k l $.  $d T k l $.
    $d Y k l $.  $d b k l $.  $d k l n s $.  $d .X. k l $.  $d .0. k l $.
    $d .- k l $.
    $( The "characteristic factor function" is finitely supported.
       (Contributed by AV, 20-Nov-2019.)  (Proof shortened by AV,
       23-Dec-2019.) $)
    chfacffsupp $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                                /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) ) )
                              -> G finSupp ( 0g ` Y ) ) $=
      ( vk vl cfn wcel ccrg w3a cv cn cc0 cfz co cmap wa cn0 wceq cfv caddc clt
      c1 wbr cmin cif cmpt c0g cfsupp cvv fvexd ovex fvex eqeltri ifex a1i wral
      csb wi wrex nnnn0 peano2nn0 syl ad2antrl simplr 0red nnre peano2re adantr
      wn cr ad3antlr nn0re ad2antlr nn0p1gt0 simpr lttrd neneqd wb eqeq1 notbid
      gt0ne0d adantl mpbird iffalsed wne ltne sylan breq2 iftrued syl6eq 3eqtrd
      csbied ralrimiva breq1 imbi1d ralbidv rspcev syl2anc mptnn0fsupp syl5eqbr
      ex ) KUGUHDUIUHIBUHUJZNUKZULUHZOUKZBUMYDUNUOUPUOUHZUQZUQZHGURGUKZUMUSZMIE
      UTZUMYFUTEUTFUOZJUOZYJYDVCVAUOZUSZYDYFUTZEUTZYOYJVBVDZMYJVCVEUOYFUTEUTZYL
      YJYFUTEUTFUOZJUOZVFZVFZVFZVGLVHUTZVIUDYIUEVJUUEGVJUUFUFYILVHVKUUEVJUHYIYJ
      URUHUQYKYNUUDMYMJVLYPYRUUCYQEVMYSMUUBMUUFVJUBLVHVMVNYTUUAJVLVOVOVOVPYIYOU
      RUHZYOUEUKZVBVDZGUUHUUEVRUUFUSZVSZUEURVQZUFUKZUUHVBVDZUUJVSZUEURVQZUFURVT
      YEUUGYCYGYEYDURUHZUUGYDWAZYDWBWCWDYIUUKUEURYIUUHURUHZUQZUUIUUJUUTUUIUQZGU
      UHUUEUUFURYIUUSUUIWEUVAYJUUHUSZUQZUUEUUDUUCUUFUVCYKYNUUDUVCYKWJZUUHUMUSZW
      JZUVAUVFUVBUVAUUHUMUVAUUHUVAUMYOUUHUVAWFYHYOWKUHZYCUUSUUIYEUVGYGYEYDWKUHU
      VGYDWGYDWHWCWIZWLUUSUUHWKUHYIUUIUUHWMWNUUTUMYOVBVDZUUIUUTUUQUVIYHUUQYCUUS
      YEUUQYGUURWIWNYDWOWCWIUUTUUIWPWQXBWRWIUVBUVDUVFWSUVAUVBYKUVEYJUUHUMWTXAXC
      XDXEUVCYPYRUUCUVCYPWJZUUHYOUSZWJZUVAUVLUVBUVAUUHYOUUTUVGUUIUUHYOXFYHUVGYC
      UUSUVHWNYOUUHXGXHWRWIUVBUVJUVLWSUVAUVBYPUVKYJUUHYOWTXAXCXDXEUVCUUCMUUFUVC
      YSMUUBUVCYSUUIUUTUUIUVBWEUVBYSUUIWSUVAYJUUHYOVBXIXCXDXJUBXKXLXMYBXNUUPUUL
      UFYOURUUMYOUSZUUOUUKUEURUVMUUNUUIUUJUUMYOUUHVBXOXPXQXRXSXTYA $.

    chfacfscmulcl.x $e |- X = ( var1 ` R ) $.
    chfacfscmulcl.m $e |- .x. = ( .s ` Y ) $.
    chfacfscmulcl.e $e |- .^ = ( .g ` ( mulGrp ` P ) ) $.
    $( Closure of a scaled value of the "characteristic factor function".
       (Contributed by AV, 9-Nov-2019.) $)
    chfacfscmulcl $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                             /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) )
                             /\ K e. NN0 )
                          -> ( ( K .^ X ) .x. ( G ` K ) ) e. ( Base ` Y ) ) $=
      ( cfn wcel ccrg w3a cv cn cc0 cfz co cmap cn0 clmod csca cfv cbs crngring
      crg pmatlmod sylan2 3adant3 3ad2ant1 cmgp cmnd ply1ring syl 3ad2ant2 eqid
      ringmgp simp3 vr1cl mgpbas mulgnn0cl syl3anc wceq ply1crng anim2i matsca2
      wa eqcomd fveq2d eleqtrrd wf chfacfisf syl3anl2 ffvelrnd lmodvscl ) NULUM
      ZDUNUMZLBUMZUOZRUPZUQUMSUPBURXBUSUTVAUTUMWIZKVBUMZUOZPVCUMZKOIUTZPVDVEZVF
      VEZUMKJVEZPVFVEZUMXGXJFUTXKUMXAXCXFXDWRWSXFWTWSWRDVHUMZXFDVGZPCDNUBUCVIVJ
      VKVLXEXGCVFVEZXIXECVMVEZVNUMZXDOXNUMZXGXNUMXAXCXPXDXACVHUMZXPWSWRXRWTWSXL
      XRXMCDUBVOVPVQCXOXOVRZVSVPVLXAXCXDVTZXAXCXQXDXAXLXQWSWRXLWTXMVQXNCDOUIUBX
      NVRZWAVPVLXNIXOKOXNCXOXSYAWBUKWCWDXAXCXIXNWEXDXAXHCVFXACXHXAWRCUNUMZWIZCX
      HWEWRWSYCWTWSYBWRCDUBWFWGVKPCNUNUCWHVPWJWKVLWLXEVBXKKJXAXCVBXKJWMZXDWSWRX
      LWTXCYDXMABCDEGHJLMNPQRSTUAUBUCUDUEUFUGUHWNWOVKXTWPXGFXHXIXKPXJXKVRXHVRUJ
      XIVRWQWD $.

    $d B s $.  $d K n $.  $d .0. n $.
    $( A scaled value of the "characteristic factor function" is zero almost
       always.  (Contributed by AV, 9-Nov-2019.) $)
    chfacfscmul0 $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                             /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) )
                             /\ K e. ( ZZ>= ` ( s + 2 ) ) )
                           -> ( ( K .^ X ) .x. ( G ` K ) ) = .0. ) $=
      ( cfn wcel ccrg w3a cv cn cc0 cfz co cmap wa c2 caddc cuz cfv wceq cn0 c1
      clt wbr wi cz cle eluz2 simpll nngt0 cr nnre adantl crp 2rp ltaddrpd 0red
      a1i 2re readdcld syl3anc mpan2d ex com13 mpcom impcom zre adantr ltleletr
      lttr mpand imp elnn0z sylanbrc nncn add1p1 syl eqcomd breq1d nnz peano2zd
      cc wb anim2i ancomd zltp1le bicomd bitrd biimpa jca impancom com12 syl5bi
      3adant1 cmin cif cvv ad2antrr ad2antlr simpr neneqd eqeq1 notbid iffalsed
      wn mpbird simplr c0g cbs crg 3adant3 3ad2ant2 eqid cmpt peano2re nn0p1gt0
      nn0re nnnn0 lttrd gt0ne0d wne ltne sylan breq2 iftrued 3eqtrd fvex fvmptd
      eqeltri oveq2d clmod csca crngring pmatlmod sylan2 ply1ring ringmgp vr1cl
      cmgp cmnd mgpbas mulgnn0cl ply1crng matsca2 fveq2d eleq2d eqtrd expl syld
      lmodvs0 3impia ) NULUMZDUNUMZLBUMZUOZRUPZUQUMZSUPZBURUWCUSUTVAUTUMZVBZKUW
      CVCVDUTZVEVFUMZKOIUTZKJVFZFUTZQVGZUWBUWGVBZUWIKVHUMZUWCVIVDUTZKVJVKZVBZUW
      MUWGUWIUWRVLZUWBUWDUWSUWFUWIUWHVMUMZKVMUMZUWHKVNVKZUOZUWDUWRUWHKVOUXCUWDU
      WRUXAUXBUWDUWRVLUWTUXAUWDUXBUWRUXAUWDVBZUXBUWRUXDUXBVBZUWOUWQUXEUXAURKVNV
      KZUWOUXAUWDUXBVPUXDUXBUXFUXDURUWHVJVKZUXBUXFUWDUXAUXGURUWCVJVKZUWDUXAUXGV
      LUWCVQUXAUWDUXHUXGUXAUWDUXHUXGVLUXDUXHUWCUWHVJVKZUXGUXDUWCVCUWDUWCVRUMZUX
      AUWCVSZVTZVCWAUMUXDWBWEWCUXDURVRUMZUXJUWHVRUMZUXHUXIVBUXGVLUXDWDZUXLUXDUW
      CVCUXLVCVRUMUXDWFWEWGZURUWCUWHWQWHWIWJWKWLWMUXDUXMUXNKVRUMZUXGUXBVBUXFVLU
      XOUXPUXAUXQUWDKWNWOURUWHKWPWHWRWSKWTXAUXDUXBUWQUXDUXBUWPVIVDUTZKVNVKZUWQU
      XDUWHUXRKVNUXDUXRUWHUWDUXRUWHVGZUXAUWDUWCXIUMUXTUWCXBUWCXCXDVTXEXFUXDUWPV
      MUMZUXAVBZUXSUWQXJUXDUXAUYAUWDUYAUXAUWDUWCUWCXGXHXKXLUYBUWQUXSUWPKXMXNXDX
      OXPXQWJXRYAXSXTWOVTUWNUWOUWQUWMUWNUWOVBZUWQVBZUWLUWJQFUTZQUYDUWKQUWJFUYDH
      KHUPZURVGZQLEVFZURUWEVFEVFGUTMUTZUYFUWPVGZUWCUWEVFEVFZUWPUYFVJVKZQUYFVIYB
      UTUWEVFEVFUYHUYFUWEVFEVFGUTMUTZYCZYCZYCZQVHJYDJHVHUYPUUAVGUYDUHWEUYDUYFKV
      GZVBZUYPUYOUYNQUYRUYGUYIUYOUYRUYGYLZKURVGZYLZUYDVUAUYQUYDKURUYDKUYDURUWPK
      UYDWDUWNUWPVRUMZUWOUWQUWGVUBUWBUWDVUBUWFUWDUXJVUBUXKUWCUUBXDWOZVTYEUWOUXQ
      UWNUWQKUUDYFUYCURUWPVJVKZUWQUYCUWCVHUMZVUDUWGVUEUWBUWOUWDVUEUWFUWCUUEWOYF
      UWCUUCXDWOUYCUWQYGUUFUUGYHWOUYQUYSVUAXJUYDUYQUYGUYTUYFKURYIYJVTYMYKUYRUYJ
      UYKUYNUYRUYJYLZKUWPVGZYLZUYDVUHUYQUYDKUWPUYCVUBUWQKUWPUUHUWGVUBUWBUWOVUCY
      FUWPKUUIUUJYHWOUYQVUFVUHXJUYDUYQUYJVUGUYFKUWPYIYJVTYMYKUYRUYLQUYMUYRUYLUW
      QUYCUWQUYQYNUYQUYLUWQXJUYDUYFKUWPVJUUKVTYMUULUUMUWNUWOUWQYNQYDUMUYDQPYOVF
      YDUFPYOUUNUUPWEUUOUUQUYDPUURUMZUWJPUUSVFZYPVFZUMZVBZUYEQVGUYCVUMUWQUYCVUI
      VULUWBVUIUWGUWOUVSUVTVUIUWAUVTUVSDYQUMZVUIDUUTZPCDNUBUCUVAUVBYRYEUYCVULUW
      JCYPVFZUMZUYCCUVFVFZUVGUMZUWOOVUPUMZVUQUWBVUSUWGUWOUWBCYQUMZVUSUVTUVSVVAU
      WAUVTVUNVVAVUOCDUBUVCXDYSCVURVURYTZUVDXDYEUWNUWOYGUWBVUTUWGUWOUWBVUNVUTUV
      TUVSVUNUWAVUOYSVUPCDOUIUBVUPYTZUVEXDYEVUPIVURKOVUPCVURVVBVVCUVHUKUVIWHUWB
      VULVUQXJUWGUWOUWBVUKVUPUWJUWBVUJCYPUWBCVUJUWBUVSCUNUMZVBZCVUJVGUVSUVTVVEU
      WAUVTVVDUVSCDUBUVJXKYRPCNUNUCUVKXDXEUVLUVMYEYMXQWOFVUJVUKPUWJQVUJYTUJVUKY
      TUFUVQXDUVNUVOUVPUVR $.

    $d B i s $.  $d B k s z $.  $d G i k z $.  $d M i $.  $d M k z $.
    $d N i $.  $d N k z $.  $d R i $.  $d R k z $.  $d X k z $.  $d X i $.
    $d Y i $.  $d .0. k z $.  $d .^ i $.  $d .^ k z $.  $d .x. b k z $.
    $d .x. i $.  $d k n s $.  $d b i $.
    $( A mapping of scaled values of the "characteristic factor function" is
       finitely supported.  (Contributed by AV, 8-Nov-2019.) $)
    chfacfscmulfsupp $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                         /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) ) )
              -> ( i e. NN0 |-> ( ( i .^ X ) .x. ( G ` i ) ) ) finSupp .0. ) $=
      ( vk vz cfn wcel ccrg w3a cv cn cc0 cfz cmap cvv cfv c0g fvex eqeltri a1i
      co wa cn0 ovexd c1 caddc clt wbr csb wceq wi wral wrex peano2nn0 ad2antrl
      nnnn0 syl vex csbov12g csbov1g csbvarg oveq1d eqtrd csbfv oveq12d mp1i c2
      cuz simplll simpllr cz adantr ad2antlr nn0zd 2z zaddcld simplr wb zltp1le
      nn0z syl2an biimpa cc nncn add1p1 breq1d bicomd mpbird eluz2 chfacfscmul0
      cle syl3anbrc syl3anc ralrimiva imbi1d ralbidv rspcev syl2anc mptnn0fsupp
      ex breq1 ) NUNUODUPUOLBUOUQZRURZUSUOZSURBUTYKVAVIVBVIUOZVJZVJZULVCHURZOJV
      IZYPKVDZFVIZHVCQUMQVCUOYOQPVEVDVCUFPVEVFVGVHYOYPVKUOVJYQYRFVLYOYKVMVNVIZV
      KUOZYTULURZVOVPZHUUBYSVQZQVRZVSZULVKVTZUMURZUUBVOVPZUUEVSZULVKVTZUMVKWAYL
      UUAYJYMYLYKVKUOZUUAYKWDZYKWBWEWCZYOUUFULVKYOUUBVKUOZVJZUUCUUEUUPUUCVJZUUD
      UUBOJVIZUUBKVDZFVIZQUUBVCUOZUUDUUTVRUUQULWFUVAUUDHUUBYQVQZHUUBYRVQZFVIUUT
      HUUBYQYRFVCWGUVAUVBUURUVCUUSFUVAUVBHUUBYPVQZOJVIUURHUUBYPOJVCWHUVAUVDUUBO
      JHUUBVCWIWJWKUVCUUSVRUVAHUUBKWLVHWMWKWNUUQYJYNUUBYKWOVNVIZWPVDUOZUUTQVRYJ
      YNUUOUUCWQYJYNUUOUUCWRUUQUVEWSUOUUBWSUOZUVEUUBXSVPZUVFUUQYKWOUUPYKWSUOUUC
      UUPYKYNUULYJUUOYLUULYMUUMWTXAXBWTWOWSUOUUQXCVHXDUUQUUBYOUUOUUCXEXBUUQUVHY
      TVMVNVIZUUBXSVPZUUPUUCUVJYOYTWSUOUVGUUCUVJXFUUOYOYTUUNXBUUBXHYTUUBXGXIXJU
      UPUVHUVJXFZUUCYNUVKYJUUOYLUVKYMYLUVJUVHYLUVIUVEUUBXSYLYKXKUOUVIUVEVRYKXLY
      KXMWEXNXOWTXAWTXPUVEUUBXQXTABCDEFGIJKUUBLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKXR
      YAWKYHYBUUKUUGUMYTVKUUHYTVRZUUJUUFULVKUVLUUIUUCUUEUUHYTUUBVOYIYCYDYEYFYG
      $.

    $d T n $.  $d .- n $.  $d .X. n $.  $d i n $.
    chfacfscmulgsum.p $e |- .+ = ( +g ` Y ) $.
    $( Breaking up a sum of values of the "characteristic factor function"
       scaled by a polynomial.  (Contributed by AV, 9-Nov-2019.) $)
    chfacfscmulgsum $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                             /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) ) )
                    -> ( Y gsum ( i e. NN0 |-> ( ( i .^ X ) .x. ( G ` i ) ) ) )
                       = ( ( Y gsum ( i e. ( 1 ... s )
                               |-> ( ( i .^ X ) .x. ( ( T ` ( b ` ( i - 1 ) ) )
                                 .- ( ( T ` M ) .X. ( T ` ( b ` i ) ) ) ) ) ) )
                           .+ ( ( ( ( s + 1 ) .^ X ) .x. ( T ` ( b ` s ) ) )
                                .- ( ( T ` M ) .X. ( T ` ( b ` 0 ) ) ) ) ) ) $=
      ( cfn wcel ccrg w3a cv cn cc0 cfz co cmap wa cn0 cfv cmpt cgsu caddc cmin
      c1 cuz cbs cvv eqid ccmn crg crngring anim2i 3adant3 adantr simpll simplr
      syl a1i chfacfscmulcl wceq ad2antrl fveq2d syl3anc mpteq2dva oveq2d eqtrd
      fzfid elfznn0 ralrimiva gsummptcl syl2anc csn mpd3an3 oveq1 fveq2 oveq12d
      sylan2 gsumsn ovexd adantl clt wbr cif wne ad2antlr neeq1 mpbird eqneqall
      wb mpan9 wn cz cle wi 3adant1 cr zre 1red readdcld pm2.21d imp syl5ibrcom
      sylbi ad2antrr oveq1d ifeqda fvmptd iftrue wf ffvelrnd 3eqtrd mat2pmatbas
      cur pmatring ringcmn nn0ex simpr 3jca chfacfscmulfsupp cin c0 nn0disj cun
      nnnn0 peano2nn0 nn0split gsumsplit2 c2 cc nncn add1p1 eleq2d chfacfscmul0
      biimpa cmnd ringmnd fvex jctir mndrid gsummptfzsplit gsummptfzsplitl 0nn0
      gsumz 1nn0 nn0addcld elfznn nnnn0d mndass syl13anc nnne0d eqeq1 eqcoms wo
      elfz2 zleltp1 ancoms biimpcd impcom orcd lttri2 neneqd nnred eleq1 nn0red
      anim12ci breq1 ltnsymd nn0p1gt0 0red ltne sylan mpdan fvexd csca 3ad2ant2
      simp-4r vr1cl cmgp mgpbas ringidval mulg0 ply1crng matsca2 clmod pmatlmod
      syl3anl2 lmodvs1 cmncom cgrp ringgrp eqeltrrd syl3an2 simpl1 elmapi 0elfz
      chfacfisf ringcl grpsubadd0sub 3eqtr4d ) OUNUOZEUPUOZMBUOZUQZSURZUSUOZTUR
[encoded data, 5200 characters]
      CWMYRYR $.
  $}

  ${
    $d B n $.  $d M n $.  $d N n $.  $d R n $.  $d Y n $.  $d b n $.  $d n s $.
    cayhamlem1.a $e |- A = ( N Mat R ) $.
    cayhamlem1.b $e |- B = ( Base ` A ) $.
    cayhamlem1.p $e |- P = ( Poly1 ` R ) $.
    cayhamlem1.y $e |- Y = ( N Mat P ) $.
    cayhamlem1.r $e |- .X. = ( .r ` Y ) $.
    cayhamlem1.s $e |- .- = ( -g ` Y ) $.
    cayhamlem1.0 $e |- .0. = ( 0g ` Y ) $.
    cayhamlem1.t $e |- T = ( N matToPolyMat R ) $.
    cayhamlem1.g $e |- G = ( n e. NN0
          |-> if ( n = 0 , ( .0. .- ( ( T ` M ) .X. ( T ` ( b ` 0 ) ) ) ) ,
                   if ( n = ( s + 1 ) , ( T ` ( b ` s ) ) ,
                        if ( ( s + 1 ) < n , .0. ,
                          ( ( T ` ( b ` ( n - 1 ) ) )
                            .- ( ( T ` M ) .X. ( T ` ( b ` n ) ) ) ) ) ) ) ) $.
    cayhamlem1.e $e |- .^ = ( .g ` ( mulGrp ` Y ) ) $.
    $( Closure of the value of the "characteristic factor function" multiplied
       with a constant polynomial matrix.  (Contributed by AV, 23-Nov-2019.) $)
    chfacfpmmulcl $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                     /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) ) /\ K e. NN0 )
                   -> ( ( K .^ ( T ` M ) ) .X. ( G ` K ) ) e. ( Base ` Y ) ) $=
      ( cfn wcel ccrg w3a cv cn cc0 cfz co wa cn0 crg cfv cbs crngring pmatring
      cmap sylan2 3adant3 3ad2ant1 cmgp cmnd eqid ringmgp syl simp3 mat2pmatbas
      syl3an2 mgpbas mulgnn0cl syl3anc wf chfacfisf syl3anl2 ffvelrnd ringcl )
      MUHUIZDUJUIZKBUIZUKZPULZUMUIQULBUNWHUOUPVDUPUIUQZJURUIZUKZNUSUIZJKEUTZHUP
      ZNVAUTZUIZJIUTZWOUIWNWQFUPWOUIWGWIWLWJWDWEWLWFWEWDDUSUIZWLDVBZNCDMTUAVCVE
      VFZVGWKNVHUTZVIUIZWJWMWOUIZWPWGWIXBWJWGWLXBWTNXAXAVJZVKVLVGWGWIWJVMZWGWIX
      CWJWEWDWRWFXCWSABNCDEKMUERSTUAVNVOVGWOHXAJWMWONXAXDWOVJZVPUGVQVRWKURWOJIW
      GWIURWOIVSZWJWEWDWRWFWIXGWSABCDEFGIKLMNOPQRSTUAUBUCUDUEUFVTWAVFXEWBWONFWN
      WQXFUBWCVR $.

    $d K n $.  $d .0. n $.
    $( The value of the "characteristic factor function" multiplied with a
       constant polynomial matrix is zero almost always.  (Contributed by AV,
       23-Nov-2019.) $)
    chfacfpmmul0 $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                           /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) )
                           /\ K e. ( ZZ>= ` ( s + 2 ) ) )
                         -> ( ( K .^ ( T ` M ) ) .X. ( G ` K ) ) = .0. ) $=
      ( cfn wcel ccrg w3a cv cn cc0 cfz co cmap wa c2 caddc cuz cfv wceq cn0 c1
      clt wbr wi cz cle eluz2 simpll nngt0 cr nnre adantl crp 2rp ltaddrpd 0red
      a1i 2re readdcld syl3anc mpan2d ex com13 mpcom impcom zre adantr ltleletr
      lttr mpand imp elnn0z sylanbrc nncn add1p1 syl eqcomd breq1d nnz peano2zd
      cc wb anim2i ancomd zltp1le bicomd bitrd biimpa jca impancom com12 syl5bi
      3adant1 cmin cif cvv cmpt peano2re ad2antrr nn0re ad2antlr nnnn0 nn0p1gt0
      wn simpr lttrd gt0ne0d neneqd eqeq1 notbid mpbird iffalsed simplr c0g crg
      eqid wne ltne sylan breq2 iftrued 3eqtrd fvex eqeltri fvmptd cbs crngring
      oveq2d pmatring sylan2 3adant3 cmgp ringmgp mat2pmatbas syl3an2 mulgnn0cl
      cmnd mgpbas ringrz syl2anc eqtrd expl syld 3impia ) MUHUIZDUJUIZKBUIZUKZP
      ULZUMUIZQULZBUNUVMUOUPUQUPUIZURZJUVMUSUTUPZVAVBUIZJKEVBZHUPZJIVBZFUPZOVCZ
      UVLUVQURZUVSJVDUIZUVMVEUTUPZJVFVGZURZUWDUVQUVSUWIVHZUVLUVNUWJUVPUVSUVRVIU
      IZJVIUIZUVRJVJVGZUKZUVNUWIUVRJVKUWNUVNUWIUWLUWMUVNUWIVHUWKUWLUVNUWMUWIUWL
      UVNURZUWMUWIUWOUWMURZUWFUWHUWPUWLUNJVJVGZUWFUWLUVNUWMVLUWOUWMUWQUWOUNUVRV
      FVGZUWMUWQUVNUWLUWRUNUVMVFVGZUVNUWLUWRVHUVMVMUWLUVNUWSUWRUWLUVNUWSUWRVHUW
      OUWSUVMUVRVFVGZUWRUWOUVMUSUVNUVMVNUIZUWLUVMVOZVPZUSVQUIUWOVRWAVSUWOUNVNUI
      ZUXAUVRVNUIZUWSUWTURUWRVHUWOVTZUXCUWOUVMUSUXCUSVNUIUWOWBWAWCZUNUVMUVRWMWD
      WEWFWGWHWIUWOUXDUXEJVNUIZUWRUWMURUWQVHUXFUXGUWLUXHUVNJWJWKUNUVRJWLWDWNWOJ
      WPWQUWOUWMUWHUWOUWMUWGVEUTUPZJVJVGZUWHUWOUVRUXIJVJUWOUXIUVRUVNUXIUVRVCZUW
      LUVNUVMXEUIUXKUVMWRUVMWSWTVPXAXBUWOUWGVIUIZUWLURZUXJUWHXFUWOUWLUXLUVNUXLU
      WLUVNUVMUVMXCXDXGXHUXMUWHUXJUWGJXIXJWTXKXLXMWFXNXQXOXPWKVPUWEUWFUWHUWDUWE
      UWFURZUWHURZUWCUWAOFUPZOUXOUWBOUWAFUXOGJGULZUNVCZOUVTUNUVOVBEVBFUPLUPZUXQ
      UWGVCZUVMUVOVBEVBZUWGUXQVFVGZOUXQVEXRUPUVOVBEVBUVTUXQUVOVBEVBFUPLUPZXSZXS
      ZXSZOVDIXTIGVDUYFYAVCUXOUFWAUXOUXQJVCZURZUYFUYEUYDOUYHUXRUXSUYEUYHUXRYHZJ
      UNVCZYHZUXOUYKUYGUXOJUNUXOJUXOUNUWGJUXOVTUWEUWGVNUIZUWFUWHUVQUYLUVLUVNUYL
      UVPUVNUXAUYLUXBUVMYBWTWKZVPYCUWFUXHUWEUWHJYDYEUXNUNUWGVFVGZUWHUXNUVMVDUIZ
      UYNUVQUYOUVLUWFUVNUYOUVPUVMYFWKYEUVMYGWTWKUXNUWHYIYJYKYLWKUYGUYIUYKXFUXOU
      YGUXRUYJUXQJUNYMYNVPYOYPUYHUXTUYAUYDUYHUXTYHZJUWGVCZYHZUXOUYRUYGUXOJUWGUX
      NUYLUWHJUWGUUAUVQUYLUVLUWFUYMYEUWGJUUBUUCYLWKUYGUYPUYRXFUXOUYGUXTUYQUXQJU
      WGYMYNVPYOYPUYHUYBOUYCUYHUYBUWHUXNUWHUYGYQUYGUYBUWHXFUXOUXQJUWGVFUUDVPYOU
      UEUUFUWEUWFUWHYQOXTUIUXOONYRVBXTUDNYRUUGUUHWAUUIUULUXONYSUIZUWANUUJVBZUIZ
      UXPOVCUWEUYSUWFUWHUVLUYSUVQUVIUVJUYSUVKUVJUVIDYSUIZUYSDUUKZNCDMTUAUUMUUNU
      UOZWKYCUXNVUAUWHUXNNUUPVBZUVAUIZUWFUVTUYTUIZVUAUVLVUFUVQUWFUVLUYSVUFVUDNV
      UEVUEYTZUUQWTYCUWEUWFYIUVLVUGUVQUWFUVJUVIVUBUVKVUGVUCABNCDEKMUERSTUAUURUU
      SYCUYTHVUEJUVTUYTNVUEVUHUYTYTZUVBUGUUTWDWKUYTNFUWAOVUIUBUDUVCUVDUVEUVFUVG
      UVH $.

    $d B i k x $.  $d G i k x $.  $d M i k x $.  $d N i k x $.  $d R i k x $.
    $d T i k x $.  $d .X. i k x $.  $d .^ i k x $.  $d .0. k x $.
    $d i k s x $.  $d b i k x $.  $d k n $.
    $( A mapping of values of the "characteristic factor function" multiplied
       with a constant polynomial matrix is finitely supported.  (Contributed
       by AV, 23-Nov-2019.) $)
    chfacfpmmulfsupp $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                               /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) ) )
                       -> ( i e. NN0 |-> ( ( i .^ ( T ` M ) ) .X. ( G ` i ) ) )
                          finSupp .0. ) $=
      ( vk vx cfn wcel ccrg w3a cv cn cc0 cfz cmap cvv cfv c0g fvex eqeltri a1i
      co wa cn0 ovexd c1 caddc clt wbr csb wceq wi wral wrex ad2antrl nn0addcld
      nnnn0 1nn0 vex csbov12g nfcvd oveq1 csbiegf csbfv oveq12d mp1i c2 simplll
      eqtrd cuz simpllr cz adantr ad2antlr nn0zd 2z zaddcld simplr wb peano2nn0
      cle syl nn0z zltp1le syl2an biimpa nncn add1p1 breq1d bicomd mpbird eluz2
      cc syl3anbrc chfacfpmmul0 syl3anc ralrimiva imbi1d ralbidv rspcev syl2anc
      ex breq1 mptnn0fsupp ) MUJUKDULUKKBUKUMZPUNZUOUKZQUNBUPYIUQVEURVEUKZVFZVF
      ZUHUSGUNZKEUTZIVEZYNJUTZFVEZGUSOUIOUSUKYMONVAUTUSUDNVAVBVCVDYMYNVGUKVFYPY
      QFVHYMYIVIVJVEZVGUKZYSUHUNZVKVLZGUUAYRVMZOVNZVOZUHVGVPZUIUNZUUAVKVLZUUDVO
      ZUHVGVPZUIVGVQYMYIVIYJYIVGUKZYHYKYIVTZVRVIVGUKYMWAVDVSYMUUEUHVGYMUUAVGUKZ
      VFZUUBUUDUUNUUBVFZUUCUUAYOIVEZUUAJUTZFVEZOUUAUSUKZUUCUURVNUUOUHWBUUSUUCGU
      UAYPVMZGUUAYQVMZFVEUURGUUAYPYQFUSWCUUSUUTUUPUVAUUQFGUUAYPUUPUSUUSGUUPWDYN
      UUAYOIWEWFUVAUUQVNUUSGUUAJWGVDWHWLWIUUOYHYLUUAYIWJVJVEZWMUTUKZUUROVNYHYLU
      UMUUBWKYHYLUUMUUBWNUUOUVBWOUKUUAWOUKZUVBUUAXDVLZUVCUUOYIWJUUNYIWOUKUUBUUN
      YIYLUUKYHUUMYJUUKYKUULWPWQWRWPWJWOUKUUOWSVDWTUUOUUAYMUUMUUBXAWRUUOUVEYSVI
      VJVEZUUAXDVLZUUNUUBUVGYMYSWOUKUVDUUBUVGXBUUMYMYSYJYTYHYKYJUUKYTUULYIXCXEV
      RWRUUAXFYSUUAXGXHXIUUNUVEUVGXBZUUBYLUVHYHUUMYJUVHYKYJUVGUVEYJUVFUVBUUAXDY
      JYIXPUKUVFUVBVNYIXJYIXKXEXLXMWPWQWPXNUVBUUAXOXQABCDEFHIJUUAKLMNOPQRSTUAUB
      UCUDUEUFUGXRXSWLYEXTUUJUUFUIYSVGUUGYSVNZUUIUUEUHVGUVIUUHUUBUUDUUGYSUUAVKY
      FYAYBYCYDYG $.

    $d T i n $.  $d Y i $.  $d .X. n $.  $d .- n $.
    ${
      chfacfpmmulgsum.p $e |- .+ = ( +g ` Y ) $.
      $( Breaking up a sum of values of the "characteristic factor function"
         multiplied with a constant polynomial matrix.  (Contributed by AV,
         23-Nov-2019.) $)
      chfacfpmmulgsum $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                             /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) ) )
            -> ( Y gsum ( i e. NN0 |-> ( ( i .^ ( T ` M ) ) .X. ( G ` i ) ) ) )
               = ( ( Y gsum ( i e. ( 1 ... s )
                     |-> ( ( i .^ ( T ` M ) ) .X. ( ( T ` ( b ` ( i - 1 ) ) )
                                 .- ( ( T ` M ) .X. ( T ` ( b ` i ) ) ) ) ) ) )
                   .+ ( ( ( ( s + 1 ) .^ ( T ` M ) ) .X. ( T ` ( b ` s ) ) )
                        .- ( ( T ` M ) .X. ( T ` ( b ` 0 ) ) ) ) ) ) $=
        ( cfn wcel ccrg w3a cv cn cc0 cfz co cmap wa cn0 cfv cmpt cgsu c1 caddc
        cuz cmin cbs cvv eqid ccmn crg crngring anim2i 3adant3 pmatring ringcmn
        syl adantr nn0ex a1i simpll simplr simpr 3jca chfacfpmmulcl wceq fveq2d
        syl3anc mpteq2dva oveq2d sylan2 eqtrd fzfid elfznn0 ralrimiva gsummptcl
        syl2anc csn mpd3an3 oveq1 fveq2 oveq12d gsumsn ovexd adantl clt wbr cif
        ad2antrl wne ad2antlr wb neeq1 mpbird eqneqall mpan9 wn cle 3adant1 zre
        cz wi 1red readdcld sylbi pm2.21d imp syl5ibrcom ad2antrr oveq1d ifeqda
        cr fvmptd iftrue mat2pmatbas wf ffvelrnd 3eqtrd chfacfpmmulfsupp cin c0
        nn0disj cun nnnn0 peano2nn0 nn0split gsumsplit2 c2 add1p1 eleq2d biimpa
        cc nncn chfacfpmmul0 ringmnd jctir gsumz gsummptfzsplit gsummptfzsplitl
        cmnd fvex mndrid 0nn0 1nn0 nn0addcld elfznn nnnn0d mndass nnne0d eqcoms
        syl13anc eqeq1 elfz2 zleltp1 ancoms biimpcd impcom orcd anim12ci lttri2
        wo neneqd nnred eleq1 nn0red breq1 ltnsymd simp-4r nn0p1gt0 sylan mpdan
        0red ltne fvexd cur cmgp c0g syl3an2 mgpbas ringidval syl6eqr chfacfisf
        syl3anl2 ringlidm cmncom ringgrp eqeltrrd simpl1 3ad2ant2 elmapi ringcl
        mulg0 cgrp 0elfz grpsubadd0sub 3eqtr4d ) NUJUKZEULUKZLBUKZUMZQUNZUOUKZR
[encoded data, 5120 characters]
        VVDUEUDUIUXQWJUXRXDWNYTYT $.

      $( Breaking up a sum of values of the "characteristic factor function"
         multiplied with a constant polynomial matrix.  (Contributed by AV,
         23-Nov-2019.) $)
      chfacfpmmulgsum2 $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                             /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) ) )
            -> ( Y gsum ( i e. NN0 |-> ( ( i .^ ( T ` M ) ) .X. ( G ` i ) ) ) )
               = ( ( Y gsum ( i e. ( 1 ... s )
                     |-> ( ( ( i .^ ( T ` M ) ) .X. ( T ` ( b ` ( i - 1 ) ) ) )
                  .- ( ( ( i + 1 ) .^ ( T ` M ) ) .X. ( T ` ( b ` i ) ) ) ) ) )
                   .+ ( ( ( ( s + 1 ) .^ ( T ` M ) ) .X. ( T ` ( b ` s ) ) )
                        .- ( ( T ` M ) .X. ( T ` ( b ` 0 ) ) ) ) ) ) $=
        ( cfn wcel ccrg w3a cv cn cc0 cfz co cmap wa cn0 cfv cmpt cgsu c1 caddc
        cmin chfacfpmmulgsum cbs eqid crg crngring anim2i pmatring syl ad2antrr
        3adant3 cmgp cmgm cmnd ringmgp mndmgm elfznn adantl mat2pmatbas syl3an2
        mgpbas mulgnncl syl3anc wf elmapi adantr wi cle wbr 1nn0 nnnn0 elfz2nn0
        a1i nnge1 syl3anbrc fz0fzdiffz0 syl2anc ex imp ffvelrnd df-3an sylanbrc
        simpr simpl1 3ad2ant2 3jca cuz wss 1eluzge0 fzss1 ax-mp sseli m2pmfzmap
        anim12i ringcl ringsubdi wceq ringass syl13anc eqcomd syl6eleq mulgnnp1
        cplusg syl2anr mgpplusg eqcomi oveqd eqtrd oveq1d oveq2d mpteq2dva ) NU
        JUKZEULUKZLBUKZUMZQUNZUOUKZRUNZBUPUUBUQURZUSURUKZUTZUTZOHVAHUNZLFVBZJUR
        ZUUIKVBGURVCVDUROHVEUUBUQURZUUKUUIVEVGURZUUDVBZFVBZUUJUUIUUDVBFVBZGURZM
        URGURZVCZVDURZUUBVEVFURUUJJURUUBUUDVBFVBGURUUJUPUUDVBFVBGURMURZDUROHUUL
        UUKUUOGURZUUIVEVFURUUJJURZUUPGURZMURZVCZVDURZUVADURABCDEFGHIJKLMNOPQRST
        UAUBUCUDUEUFUGUHUIVHUUHUUTUVGUVADUUHUUSUVFOVDUUHHUULUURUVEUUHUUIUULUKZU
        TZUURUVBUUKUUQGURZMURUVEUVIOVIVBZOGMUUKUUOUUQUVKVJZUCUDUUAOVKUKZUUGUVHY
        RYSUVMYTYRYSUTYREVKUKZUTZUVMYSUVNYREVLZVMZOCENUAUBVNZVOVQZVPUVIOVRVBZVS
        UKZUUIUOUKZUUJUVKUKZUUKUVKUKZUUAUWAUUGUVHUUAUVMUWAUVSUVMUVTVTUKUWAOUVTU
        VTVJZWAUVTWBVOVOVPUVHUWBUUHUUIUUBWCZWDUUAUWCUUGUVHYSYRUVNYTUWCUVPABOCEF
        LNUFSTUAUBWEWFZVPZUVKJUVTUUIUUJUVKOUVTUWEUVLWGZUHWHWIZUVIYRUVNUUNBUKZUM
        ZUUOUVKUKUVIUVOUWKUWLUUAUVOUUGUVHYRYSUVOYTUVQVQZVPUVIUUEBUUMUUDUUHUUEBU
        UDWJZUVHUUGUWNUUAUUFUWNUUCUUDBUUEWKWDWDWLUUHUVHUUMUUEUKZUUGUVHUWOWMZUUA
        UUCUWPUUFUUCUVHUWOUUCUVHUTZVEUUEUKZUVHUWOUWQVEVAUKZUUBVAUKZVEUUBWNWOZUW
        RUWSUWQWPWSUUCUWTUVHUUBWQZWLUUCUXAUVHUUBWTWLVEUUBWRXAUUCUVHXIUUIVEUUBXB
        XCXDWLWDXEXFYRUVNUWKXGXHABOCEFUUNNUFSTUAUBWEVOUVIUVMUWCUUPUVKUKZUUQUVKU
        KUUAUVMUUGUVHUUAUVOUVMUWMUVRVOVPZUWHUVIYRUVNUWTUMZUUFUUIUUEUKZUTUXCUUHU
        XEUVHUUHYRUVNUWTYRYSYTUUGXJUUAUVNUUGYSYRUVNYTUVPXKWLUUGUWTUUAUUCUWTUUFU
        XBWLWDXLWLUUHUUFUVHUXFUUGUUFUUAUUCUUFXIWDUULUUEUUIVEUPXMVBUKUULUUEXNXOV
        EUPUUBXPXQXRXTABCEUUBFUUINORSTUAUBUFXSXCZUVKOGUUJUUPUVLUCYAWIYBUVIUVJUV
        DUVBMUVIUVJUUKUUJGURZUUPGURZUVDUVIUXIUVJUVIUVMUWDUWCUXCUXIUVJYCUXDUWJUW
        HUXGUVKOGUUKUUJUUPUVLUCYDYEYFUVIUXHUVCUUPGUVIUVCUXHUVIUVCUUKUUJUVTYIVBZ
        URZUXHUVHUWBUUJUVTVIVBZUKZUVCUXKYCUUHUWFUUAUXMUUGUUAUUJUVKUXLUWGUWIYGWL
        UXLUXJJUVTUUIUUJUXLVJUHUXJVJYHYJUVIUXJGUUKUUJUXJGYCUVIGUXJOGUVTUWEUCYKY
        LWSYMYNYFYOYNYPYNYQYPYOYN $.
    $}

    $d Y k $.  $d .- i $.
    $( Lemma 1 for ~ cayleyhamilton .  (Contributed by AV, 11-Nov-2019.) $)
    cayhamlem1 $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                         /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) ) )
                   -> ( Y gsum ( i e. NN0
                        |-> ( ( i .^ ( T ` M ) ) .X. ( G ` i ) ) ) ) = .0. ) $=
      ( vk cfn wcel ccrg w3a cv cn cc0 cfz co cmap wa cn0 cfv cmpt cgsu c1 cmin
      caddc cplusg eqid chfacfpmmulgsum2 wceq cc elfzelz zcnd pncan1 syl eqcomd
      adantl fveq2d oveq2d adantr cbs cabl crg crngring anim2i 3adant3 pmatring
      mpteq2dva ringabl cuz elnnuz biimpi ad2antrl cmgp cmgm cmnd mndmgm elfznn
      ringmgp mat2pmatbas syl3an2 mgpbas mulgnncl syl3anc simpl1 3ad2ant2 wf wi
      elmapi cz wb nnz peano2nn nnzd elfzm1b syl2an eleq2d biimpd sylbid expcom
      nncn com13 mpd com12 imp ffvelrnd ralrimiva oveq1 oveq12d telgsumfz eqtrd
      ringcl oveq1d mulg1 1cnd subidd pncand cgrp ringgrp nnnn0 0elfz peano2nnd
      simprl nn0fz0 sylib grpnpncan0 syl12anc 3eqtrd ) MUIUJZDUKUJZKBUJZULZPUMZ
      UNUJZQUMZBUOUUMUPUQZURUQUJZUSZUSZNGUTGUMZKEVAZIUQZUUTJVAFUQVBVCUQNGVDUUMU
      PUQZUVBUUTVDVEUQZUUOVAZEVAZFUQZUUTVDVFUQZUVAIUQZUUTUUOVAZEVAZFUQZLUQZVBZV
      CUQZUUMVDVFUQZUVAIUQZUUMUUOVAZEVAZFUQZUVAUOUUOVAZEVAZFUQZLUQZNVGVAZUQVDUV
      AIUQZVDVDVEUQZUUOVAZEVAZFUQZUVQUVPVDVEUQZUUOVAZEVAZFUQZLUQZUWDUWEUQZOABCU
      WEDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUWEVHZVIUUSUVOUWOUWDUWEUUSUVONGUVCUVGUVI
      UVHVDVEUQZUUOVAZEVAZFUQZLUQZVBZVCUQZUWOUULUVOUXDVJUURUULUVNUXCNVCUULGUVCU
      VMUXBUULUUTUVCUJZUSZUVLUXAUVGLUXFUVKUWTUVIFUXFUVJUWSEUXFUUTUWRUUOUXEUUTUW
      RVJUULUXEUWRUUTUXEUUTVKUJUWRUUTVJUXEUUTUUTVDUUMVLVMUUTVNVOVPVQVRVRVSVSWHV
      SVTUUSUHUMZUVAIUQZUXGVDVEUQZUUOVAZEVAZFUQZNWAVAZUXAUWJGUHUWNNUVGVDLUUMUXM
      VHZUULNWBUJZUURUULNWCUJZUXOUULUUIDWCUJZUSZUXPUUIUUJUXRUUKUUJUXQUUIDWDZWEZ
      WFNCDMTUAWGZVOZNWIVOVTUCUUNUUMVDWJVAUJZUULUUQUUNUYCUUMWKWLWMUUSUXLUXMUJZU
      HVDUVPUPUQZUUSUXGUYEUJZUSZUXPUXHUXMUJZUXKUXMUJZUYDUUSUXPUYFUULUXPUURUYBVT
      ZVTUYGNWNVAZWOUJZUXGUNUJZUVAUXMUJZUYHUYGUYKWPUJZUYLUUSUYOUYFUULUYOUURUULU
      XPUYOUUIUUJUXPUUKUUIUUJUSUXRUXPUXTUYAVOWFNUYKUYKVHZWSVOVTZVTUYKWQZVOUYFUY
      MUUSUXGUVPWRZVQUUSUYNUYFUULUYNUURUUJUUIUXQUUKUYNUXSABNCDEKMUERSTUAWTXAZVT
      ZVTUXMIUYKUXGUVAUXMNUYKUYPUXNXBZUGXCXDUYGUUIUXQUXJBUJUYIUUSUUIUYFUUIUUJUU
      KUURXEZVTUUSUXQUYFUULUXQUURUUJUUIUXQUUKUXSXFVTZVTUYGUUPBUXIUUOUUSUUPBUUOX
      GZUYFUURVUEUULUUQVUEUUNUUOBUUPXIVQVQZVTUUSUYFUXIUUPUJZUUNUYFVUGXHZUULUUQU
      YFUUNVUGUYFUYMUUNVUGXHUYSUUNUYMUYFVUGUYMUUNVUHUYMUUNUSZUYFUXIUOUWKUPUQZUJ
      ZVUGUYMUXGXJUJUVPXJUJUYFVUKXKUUNUXGXLUUNUVPUUMXMXNUXGUVPXOXPVUIVUKVUGVUIV
      UJUUPUXIVUIUWKUUMUOUPUUNUWKUUMVJZUYMUUNUUMVKUJZVULUUMYAZUUMVNVOVQVSXQXRXS
      XTYBYCYDWMYEYFABNCDEUXJMUERSTUAWTXDUXMNFUXHUXKUXNUBYLXDYGUXGUUTVJZUXHUVBU
      XKUVFFUXGUUTUVAIYHVUOUXJUVEEVUOUXIUVDUUOUXGUUTVDVEYHVRVRYIUXGUVHVJZUXHUVI
      UXKUWTFUXGUVHUVAIYHVUPUXJUWSEVUPUXIUWRUUOUXGUVHVDVEYHVRVRYIUXGVDVJZUXHUWF
      UXKUWIFUXGVDUVAIYHVUQUXJUWHEVUQUXIUWGUUOUXGVDVDVEYHVRVRYIUXGUVPVJZUXHUVQU
      XKUWMFUXGUVPUVAIYHVURUXJUWLEVURUXIUWKUUOUXGUVPVDVEYHVRVRYIYJYKYMUUSUWPUWC
      UVTLUQZUWDUWEUQZOUUSUWOVUSUWDUWEUUSUWJUWCUWNUVTLUUSUWFUVAUWIUWBFUULUWFUVA
      VJZUURUULUYNVVAUYTUXMIUYKUVAVUBUGYNVOVTUUSUWHUWAEUUSUWGUOUUOUUSVDUUSYOZYP
      VRVRYIUUSUWMUVSUVQFUUSUWLUVREUUSUWKUUMUUOUUSUUMVDUUNVUMUULUUQVUNWMVVBYQVR
      VRVSYIYMUUSNYRUJZUWCUXMUJZUVTUXMUJZVUTOVJUULVVCUURUULUXPVVCUYBNYSVOVTUUSU
      XPUYNUWBUXMUJZVVDUYJVUAUUSUUIUXQUWABUJVVFVUCVUDUUSUUPBUOUUOVUFUUNUOUUPUJZ
      UULUUQUUNUUMUTUJZVVGUUMYTZUUMUUAVOWMYFABNCDEUWAMUERSTUAWTXDUXMNFUVAUWBUXN
      UBYLXDUUSUXPUVQUXMUJZUVSUXMUJZVVEUYJUUSUYLUVPUNUJUYNVVJUUSUYOUYLUYQUYRVOU
      USUUMUULUUNUUQUUCUUBVUAUXMIUYKUVPUVAVUBUGXCXDUUSUUIUXQUVRBUJVVKVUCVUDUUSU
      UPBUUMUUOVUFUUNUUMUUPUJZUULUUQUUNVVHVVLVVIUUMUUDUUEWMYFABNCDEUVRMUERSTUAW
      TXDUXMNFUVQUVSUXNUBYLXDUXMUWENLUWCUVTOUXNUWQUCUDUUFUUGYKUUH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The Cayley-Hamilton theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
In this section, a direct algebraic proof for the Cayley-Hamilton theorem is
provided, according to Wikipedia ("Cayley-Hamilton theorem", 09-Nov-2019,
~ https://en.wikipedia.org/wiki/Cayley%E2%80%93Hamilton_theorem , section
"A direct algebraic proof" (this approach is also used for proving Lemma 1.9 in
[Hefferon] p. 427):
<br><br>
"This proof uses just the kind of objects needed to formulate the
Cayley-Hamilton theorem: matrices with polynomials as entries.  The matrix
(t * I_n - A) whose determinant is the characteristic polynomial of A is such a
matrix, and since polynomials [over a commutative ring] form a commutative
ring, it has an adjugate
<br><br>
(1) B = adj(t * I_n - A) .
<br><br>
Then, according to the right-hand fundamental relation of the adjugate, one has
<br><br>
(2) ( t * I_n - A ) x B = det(t * I_n - A) x I_n = p(t) * I_n .
<br><br>
Since B is also a matrix with polynomials in t as entries, one can, for each i,
collect the coefficients of t^i in each entry to form a matrix B_i of numbers,
such that one has
<br><br>
(3) B = sum<sub>i = 0 to (n-1)</sub> t^i B_i .
<br><br>
(The way the entries of B are defined makes clear that no powers higher than
t^(n-1) occur). While this looks like a polynomial with matrices as
coefficients, we shall not consider such a notion; it is just a way to write a
matrix with polynomial entries as a linear combination of n constant matrices,
and the coefficient t^i has been written to the left of the matrix to stress
this point of view.
<br><br>
Now, one can expand the matrix product in our equation by bilinearity
<br><br>
(4) p(t) * I_n = ( t * I_n - A ) x B<br>
= ( t * I_n - A ) x sum<sub>i = 0 to (n-1)</sub> t^i * B_i<br>
= sum<sub>i = 0 to (n-1)</sub> t * I_n x t^i B_i
  - sum<sub>i = 0 to (n-1)</sub> A * t^i B_i<br>
= sum<sub>i = 0 to (n-1)</sub> t^(i+1) * B_i
  - sum<sub>i = 0 to (n-1)</sub> t^i * A x B_i<br>
= t^n B<sub>n-1</sub>
  + sum<sub>i = 1 to (n-1)</sub> t^i * ( B<sub>i-1</sub> - A x B_i )
  - A x B_0 .
<br><br>
Writing
<br><br>
(5) p(t) I_n = t^n * I_n + t^(n-1) * c_(n-1) x I_n + ...
+ t * c_1 I_n + c_0 I_n ,
<br><br>
one obtains an equality of two matrices with polynomial entries, written as
linear combinations of constant matrices with powers of t as coefficients.
Such an equality can hold only if in any matrix position the entry that is
multiplied by a given power t^i is the same on both sides; it follows that the
constant matrices with coefficient t^i in both expressions must be equal.
Writing these equations then for i from n down to 0, one finds
<br><br>
(6) B<sub>n-1</sub> = I_n ,
    B<sub>i-1</sub> - A x B_i = c_i * I_n for 1 <= i <= n-1 ,
    - A x B_0 = c_0 * I_n .
<br><br>
Finally, multiply the equation of the coefficients of t^i from the left by A^i,
and sum up:
<br><br>
(7) A^n B<sub>n-1</sub> + sum<sub>i
= 1 to (n-1)</sub> ( A^i x B<sub>i-1</sub> - A^(i+1) x B_i )
- A x B_0 = A^n + c<sub>n-1</sub> * A^(n-1) + ... + c_1 * A + c_0 * I_n .
<br><br>
The left-hand sides form a telescoping sum and cancel completely; the
right-hand sides add up to p(A):
<br><br>
(8) 0 = p(A) .
<br><br>
This completes the proof."
<br><br>
To formalize this approach, the steps mentioned in Wikipedia must be elaborated
in more detail.
<br><br>
The first step is to formalize the preliminaries and the objective of the
theorem. In Wikipedia, the Cayley-Hamilton theorem is stated as follows:
"... the Cayley-Hamilton theorem ... states that every square matrix over a
commutative ring ... satisfies its own characteristic equation." Or in more
detail: "If A is a given n x n matrix and I_n is the n x n identity matrix,
then the characteristic polynomial of A is defined as p(t) = det(t * I_n - A),
where det is the determinant operation and t is a variable for a scalar element
of the base ring. Since the entries of the matrix (t * I_n - A) are (linear or
constant) polynomials in t, the determinant is also an n-th order monic
polynomial in t. The Cayley-Hamilton theorem states that if one defines an
analogous matrix equation, p(A), consisting of the replacement of the scalar
eigenvalues t with the matrix A, then this polynomial in the matrix A results
in the zero matrix,
<br><br>
        p(A) = 0.
<br><br>
The powers of A, obtained by substitution from powers of t, are defined by
repeated matrix multiplication; the constant term of p(t) gives a multiple of
the power A^0, which is defined as the identity matrix. The theorem allows A^n
to be expressed as a linear combination of the lower matrix powers of A. When
the ring is a field, the Cayley-Hamilton theorem is equivalent to the statement
that the minimal polynomial of a square matrix divides its characteristic
polynomial."
<br><br>
Actually, the definition of the characteristic polynomial of a square matrix
requires some attention. According to ~ df-chpmat , the characteristic
polynomial of an ` N ` x ` N ` matrix ` M ` over a ring ` R ` is defined as
<br><br>
` ( ( N CharPlyMat R ) `` M ) = ( D `` ( ( X .x. .1. ) .- ( T `` M ) ) ) ) `
<br><br>
where ` D = ( N maDet P ) ` is the function mapping an ` N ` x ` N ` matrix
over the polynomial ring over the ring ` R ` to its determinant,
` X = ( var1 `` R ) ` is the variable of the polynomials over ` R ` , ` .1. `
is the ` N ` x ` N ` identity matrix as matrix over the polynomial ring over
the ring ` R ` (not the ` N ` x ` N ` identity matrix of the matrices over the
ring ` R ` !) and ` ( T `` M ) = ( ( N matToPolyMat R ) `` M ) ` is the matrix
` M ` over a ring ` R ` transformed into a constant matrix over the polynomial
ring over the ring ` R ` . Thus ` .x. ` is the multiplication of a polynomial
matrix with a "scalar", i.e. a polynomial (see ~ chpmatval ).
<br><br>
By this definition, it is ensured that ` ( ( X .x. .1. ) .- ( T `` M ) ) ` ,
the matrix whose determinat is the characteristic polynomial of the matrix
` M ` , is actually a matrix over the polynomial ring over the ring ` R ` ,
as stated in Wikipedia ("matrix with polynomials as entries").  This matrix is
called the _characteristic matrix_ of matrix ` M ` (see Wikipedia "Polynomial
matrix", 16-Nov-2019, ~ https://en.wikipedia.org/wiki/Polynomial_matrix ).
Following the notation in Wikipedia, we denote the characteristic polynomial of
the matrix ` M ` , formally defined by ` ( ( N CharPlyMat R ) `` M ) ` as
"p(M)" in the comments.  The characteristric matrix ` ( ( X .x. .1. )
.- ( T `` M ) ) ` will be denoted by "c(M)", so that "p(M) = det( c(M) )".
<br><br>
After the preliminaries are clarified, the objective of the Cayley-Hamilton
theorem must be considered. As described in Wikipedia, the matrix ` M ` must be
"inserted" into its characteristic polynomial in an appropriate way. Since
every polynomial can be represented as infinite, but finitely supported sum
of monomials scaled by the corresponding coefficients (see ~ ply1coe ), also
the characteristic polynomial can be written in this way:
<br><br>
p(M) = sum_i ( p_i * M^i )
<br><br>
Here, * is the scalar multiplication in the algebra of the polynomials over the
ring ` R ` , and the coefficients are elements of the ring ` R `.
<br><br>
By this, we can "define" the insertion of the matrix M into its characteristic
polynomial by "p(M) = sum( p_i * M^i)", see also ~ cayleyhamilton1 .
Here, * is the scalar multiplication in the algebra of the matrices over the
ring ` R ` .
<br><br>
To prove the Cayley-Hamilton theorem, we have to show that "p(M) = 0", where 0
is the zero matrix.
<br><br>
In this section, the following class variables and informal identifiers
(acronyms in the form "A(B)" or "A<sub>B</sub>") are used:
<br><br>
<HTML>
 <table>
  <tr>
    <th>class variable/ informal identifier</th>
    <th>definiens</th>
    <th>explanation</th>
  </tr>
  <tr>
    <td> ` N ` </td>
    <td></td>
    <td>An arbitrary finite set, used as dimension for matrices</td>
  </tr>
  <tr>
    <td> ` R ` </td>
    <td></td>
    <td>An arbitrary (commutative) ring: ` R e. CRing ` </td>
  </tr>
  <tr>
    <td> B(R) </td>
    <td> ` ( Base `` R ) ` </td>
    <td>Base set of (the ring) ` R ` </td>
  </tr>
  <tr>
    <td> ` A ` </td>
    <td> ` ( N Mat R ) ` </td>
    <td>Algebra of ` N ` x ` N ` matrices over (the ring) ` R ` </td>
  </tr>
  <tr>
    <td> ` B ` </td>
    <td> ` ( Base `` A ) ` </td>
    <td>Base set of the algebra of ` N ` x ` N ` matrices, i .e. the set of all
        ` N ` x ` N ` matrices</td>
  </tr>
  <tr>
    <td> ` M ` </td>
    <td></td>
    <td>An arbitrary ` N ` x ` N ` matrix</td>
  </tr>
  <tr>
    <td> ` P ` </td>
    <td> ` ( Poly1 `` R ) ` </td>
    <td>The algebra of polynomials over (the ring) ` R ` </td>
  </tr>
  <tr>
    <td> B(P) </td>
    <td> ` ( Base `` P ) ` </td>
    <td>Base set of the algebra of polynomials, i .e. the set of all
        polynomials</td>
  </tr>
  <tr>
    <td> ` X ` , X<sub>R</sub> </td>
    <td> ` ( var1 `` R ) ` </td>
    <td>The variable of polynomials over (the ring) ` R ` </td>
  </tr>
  <tr>
    <td> ` Y ` , X<sub>A</sub> </td>
    <td> ` ( var1 `` A ) ` </td>
    <td>The variable of polynomials over matrices of the algebra  ` A ` </td>
  </tr>
  <tr>
    <td> ` .^ ` </td>
    <td> ` ( .g `` ( mulGrp `` P ) ) ` </td>
    <td>The group exponentiation for polynomials over (the ring) ` R ` </td>
  </tr>
  <tr>
    <td> ^ </td>
    <td>  </td>
    <td>Arbitrary group exponentiation</td>
  </tr>
  <tr>
    <td> ` U ` </td>
    <td> ` ( algSc `` P ) ` </td>
    <td>The injection of scalars, i.e. elements of (the ring) ` R ` into the
        base set of the algebra of polynomials over ` R ` </td>
  </tr>
  <tr>
    <td> ` ( U `` p ) ` , S(p) </td>
    <td> ` ( ( algSc `` P ) `` p ) ` </td>
    <td>The element ` p ` of (the ring) ` R ` represented as polynomial over
        ` R ` </td>
  </tr>
  <tr>
    <td> ` Y ` </td>
    <td> ` ( N Mat P ) ` </td>
    <td>Algebra of ` N ` x ` N ` matrices over (the polynomial ring) ` P `
        over the ring ` R `</td>
  </tr>
  <tr>
    <td> B(Y) </td>
    <td> ` ( Base `` Y ) ` </td>
    <td>Base set of the algebra of polynomial ` N ` x ` N ` matrices, i .e. the
        set of all polynomial ` N ` x ` N ` matrices</td>
  </tr>
  <tr>
    <td> ` Q ` </td>
    <td> ` ( Poly1 `` A ) ` </td>
    <td>Algebra of polynomials over the ring of ` N ` x ` N ` matrices over
        the ring ` R `</td>
  </tr>
  <tr>
    <td> B(Q) </td>
    <td> ` ( Base `` Q ) ` </td>
    <td>Base set of the algebra of polynomials over the ring of ` N ` x ` N `
        matrices over the ring ` R `, i .e. the set of all polynomials having
        ` N ` x ` N ` matrices as coefficients</td>
  </tr>
  <tr>
    <td> ` .+ ` , +</td>
    <td> ` ( +g `` Y ) ` </td>
    <td>The addition of polynomial matrices</td>
  </tr>
  <tr>
    <td> ` .- ` , -</td>
    <td> ` ( -g `` Y ) ` </td>
    <td>The subtraction of polynomial matrices</td>
  </tr>
  <tr>
    <td> ` .x. ` , *<sub>Y</sub> </td>
    <td> ` ( .s `` Y ) ` </td>
    <td>The multiplication of a polynomial matrix with a scalar
        ( i. e. a polynomial)</td>
  </tr>
  <tr>
    <td> *<sub>A</sub> </td>
    <td> ` ( .s `` A ) ` </td>
    <td>The multiplication of a matrix with a scalar ( i. e. an element of the
        underlying ring)</td>
  </tr>
  <tr>
    <td> *<sub>Q</sub> </td>
    <td> ` ( .s `` Q ) ` </td>
    <td>The multiplication of a polynomial over matrices with a scalar ( i. e.
        a matrix)</td>
  </tr>
  <tr>
    <td> ` .X. ` , x<sub>Y</sub> </td>
    <td> ` ( .r `` Y ) ` </td>
    <td>The multiplication of polynomial matrices</td>
  </tr>
  <tr>
    <td> x<sub>A</sub> </td>
    <td> ` ( .r `` A ) ` </td>
    <td>The multiplication of matrices</td>
  </tr>
  <tr>
    <td> x<sub>Q</sub> </td>
    <td> ` ( .r `` Q ) ` </td>
    <td>The multiplication of polynomials over matrices</td>
  </tr>
  <tr>
    <td> ` .1. ` , 1<sub>Y</sub> </td>
    <td> ` ( 1r `` Y ) ` </td>
    <td>The identity matrix in the algebra of polynomial matrices over ` R `
        </td>
  </tr>
  <tr>
    <td> 1<sub>A</sub> </td>
    <td> ` ( 1r `` A ) ` </td>
    <td>The identity matrix in the algebra of matrices over ` R ` </td>
  </tr>
  <tr>
    <td> ` .0. ` , 0<sub>Y</sub> </td>
    <td> ` ( 0g `` Y ) ` </td>
    <td>The zero matrix in the algebra of matrices consisting of
        polynomials</td>
  </tr>
  <tr>
    <td> ` T ` </td>
    <td> ` ( N matToPolyMat R ) ` </td>
    <td>The transformation of an ` N ` x ` N ` matrix over ` R ` into a
        polynomial ` N ` x ` N ` matrix over ` R ` </td>
  </tr>
  <tr>
    <td> T<sub>1</sub>(M) </td>
    <td> ` ( T `` M ) ` </td>
    <td>The matrix M transformed into a polynomial ` N ` x ` N ` matrix over
        ` R ` </td>
  </tr>
  <tr>
    <td> U(M) </td>
    <td> ` ( U `` M ) ` </td>
    <td>The (constant) polynomial ` N ` x ` N ` matrix M transformed into a
        matrix over the ring ` R ` . Inverse function of ` T ` :
        ` ( T `` ( U `` M ) ) = M ` (see ~ m2cpminvid2  )</td>
  </tr>
  <tr>
    <td> T<sub>2</sub>(M) </td>
    <td> ` ( ( N pMatToMatPoly R ) `` M ) ` </td>
    <td>The polynomial ` N ` x ` N `  matrix M transformed into a polynomial
        over the ` N ` x ` N ` matrices over ` R ` </td>
  </tr>
  <tr>
    <td> ` I ` , c(M) </td>
    <td> ` ( ( X .x. .1. ) .- ( T `` M ) ) ` </td>
    <td>The characteristic matrix of a matrix ` M `, i.e. the matrix whose
        determinant is the characteristic polynomial of the matrix ` M ` </td>
  </tr>
  <tr>
    <td> ` C ` </td>
    <td> ` ( N CharPlyMat R ) ` </td>
    <td>The function mapping a matrix over (a ring) ` R `  to its
        characteristic polynomial</td>
  </tr>
  <tr>
    <td> ` K ` , p(M) </td>
    <td> ` ( C `` M ) ` </td>
    <td>The characteristic polynomial of a matrix over (a ring) ` R ` </td>
  </tr>
  <tr>
    <td> ` H ` </td>
    <td> ` ( K .x. .1. ) ` </td>
    <td>The scalar matrix (diagonal matrix) with the characteristic polynomial
        of a matrix as diagional elements</td>
  </tr>
  <tr>
    <td> ` J ` </td>
    <td> ` ( N maAdju P ) ` </td>
    <td>The function mapping a matrix consisting of polynomials to its
        adjugate ("matrix of cofactors")</td>
  </tr>
  <tr>
    <td> ` W ` , adj(cm(M)) </td>
    <td> ` ( J `` I ) ` </td>
    <td>The adjugate of the characteristic matrix of the matrix ` M ` </td>
  </tr>
</table>
</HTML>
<br><br>
Using this notation, we have:
<HTML>
 <ol type="a">
  <li>"c(M) e. B(Y)", or ` I e. ( Base `` Y ) ` , see ~ chmatcl </li>
  <li>"p(M) e. B(P)", or ` K e. ( Base `` P ) ` , see ~ chpmatply1 </li>
  <li>"T(M) e. B(Y)", or ` ( T `` M ) e. ( Base `` Y ) ` ,
      see ~ mat2pmatbas </li>
  <li> ` J : ( Base `` Y ) --> ( Base `` Y ) ` , see ~ maduf </li>
  <li>"adj(cm(M)) e. B(Y)", or ` W e. ( Base `` Y ) ` </li>
</ol>
</HTML>
<br><br>
Following the proof shown in Wikipedia, the following steps are performed:
<HTML>
 <ol>
  <li>Write ` W ` , the adjugate of the characteristic matrix, as a finite sum
      of scaled monomials, see ~ pmatcollpw3fi1 :<br>
      adj(cm(M)) = sum<sub>i=0 to s</sub> ( X_R ^i *_Y T_1(b(i)) )<br>
      where b(i) are matrices over the ring ` R ` , so T_1(b(i)) are constant
      polynomial matrices.<br>
      This step corresponds to (3) in Wikipedia. In contrast to Wikipedia, we
      write ` W ` as finite sum of not exactly determined number of summands,
      which may be greater than needed (including summands of value 0).  This
      will be sufficient to provide a representation of ` ( I .X. W ) ` as
      infinite, but finitely supported sum, see step 3.</li>
  <li>Write ` ( I .X. W ) ` , the product of the characteristic matrix and its
      adjugate as finite sum of scaled monomials, see ~ cpmadugsumfi . This
      representation is obtained by replacing ` W ` by the representation
      resulting from step 1. and performing calculation rules available for the
      associative algebra of matrices over polynomials over a commutative ring:
      <br>
      cm(M) *_Y adj(cm(M))
      = sum<sub>i=0 to s</sub> ( X_R ^i *_Y ( T_1(b(i-1))
                                 - T_1(M) x_Y T_1(b(i)) ) )
        + X_R ^(s+1) *_Y ( T_1(b(s)) - T_1(M) x_Y T_1(b(0))<br>
      where b(i) are matrices over ` R `, so T_1(b(i)) are constant polynomial
      matrices:<br>
      cm(M) *_Y adj(cm(M))<br>
      = cm(M) *_Y sum<sub>i=0 to s</sub> ( X_R ^i *_Y T_1(b(i)) )
                                      [see ~ pmatcollpw3fi1 (step 1.)]<br>
      = ( ( X_A *_Y 1_Y ) - T_1(M) )
        *_Y sum<sub>i=0 to s</sub> ( X_R ^i *_Y T_1(b(i)) )
                                      [def. of cm(M)]<br>
      = ( X_A *_Y 1_Y ) *_Y sum<sub>i=0 to s</sub> ( X_R ^i *_Y T_1(b(i)) )
        - T_1(M) *_Y sum<sub>i=0 to s</sub> ( X_R ^i *_Y T_1(b(i)) )
                                      [see ~ rngsubdir ]<br>
      = sum<sub>i=0 to s</sub> ( X_R ^i *_Y ( T_1(b(i-1))
                                 - T_1(M) x_Y T_1(b(i)) ) )
        + X_R ^(s+1) *_Y ( T_1(b(s)) - T_1(M) x_Y T_1(b(0))
                                      [see ~ cpmadugsumlemF ]<br>
      This step corresponds partially to (4) in Wikipedia.</li>
  <li>Write ` ( I .X. W ) ` as infinite, but finitely supported sum of scaled
      monomials, see ~ cpmadugsum :<br>
      cm(M) * adj(cm(M)) = sum_i ( X_R ^i *_Y G(i) )<br>
      This representation is obtained by defining a function _G_ for the
      coefficients, which we call "characteristic factor function", see
      ~ chfacfisf , which covers the special terms and the padding with 0.
      G(i) is a constant polynomial matrix (see ~ chfacfisfcpmat ).  This step
      corresponds partially to (4) in Wikipedia, with summands of value 0
      added.</li>
  <li>Write ` H = ( K .x. .1. ) ` , the scalar matrix (diagonal matrix) with
      the characteristic polynomial of a matrix as diagional elements, as
      infinite, but finitely supported sum of scaled monomials.  See
      ~ cpmidgsum :<br>
      p(m) *_Y I_Y = sum_i ( X_R ^i *_Y ( S(p_i) *_Y I_Y ) )<br>
      The proof of ~ cpmidgsum is making use of ~ pmatcollpwscmat , because
      ` H = ( K .x. .1. ) ` is a scalar/diagonal polynomial matrix with the
      characteristic polynomial "p(M)" as diagonal entries (since p_i is
      an element of the ring ` R `, S(p_i) is a (constant) polynomial).  This
      corresponds to (5) in Wikipedia, with summands of value 0 added. </li>
  <li>Transform the sum representation of ` ( I .X. W ) ` from step 3. into
      polynomials over matrices:<br>
      T_2(cm(M) * adj(cm(M))) = sum_i ( U(G(i)) *_Q X_A ^i )
                                                 [see ~ cpmadumatpoly ]<br>
      where U(G(i)) is a matrix over the ring ` R ` .</li>
  <li>Transform the sum representation of ` H ` from step 4. into polynomials
      over matrices:<br>
      T_2(p(m) *_Y I_Y) = sum_i ( p_i *_A I_A ) *_Q X_A ^i )
                                                 [see ~ cpmidpmat ]</li>
  <li>Equate the sum representations resulting from steps 5. and 6. by using
      ~ cpmadurid to obtain the equation<br>
      sum_i ( U(G(i)) *_Q X_A ^i ) = sum_i ( p_i *_A I_A ) *_Q X_A ^i ):<br>
      sum_i ( U(G(i)) *_Q X_A ^i )<br>
      = T_2(cm(M) * adj(cm(M))) [see step 5.]<br>
      = T_2(p(m) *_Y I_Y) [see ~ cpmadurid ]<br>
      = sum_i ( p_i *_A I_A ) *_Q X_A ^i ) [see step 6.]<br>
      <it>Note that this step is contained in the proof of ~ chcoeffeq , see
      step 9.</it>  This step corresponds to the conclusion from (4)  and (5)
      in Wikipedia, with summands of value 0 added.</li>
  <li>Compare the sum representations of step 7. to obtain the equations
      U(G(i)) = p_i *_A I_A , see ~ chcoeffeqlem .  This corresponds to (6) in
      Wikipedia.  Since the coefficients of the transformed representations and
      the original representations are identical, the equations of the
      coefficients are also valid for the original representations of steps 3.
      and 4.</li>
  <li>Multiply the equations of the coefficients from step 8. from the left by
      M^i, and sum up, see ~ chcoeffeq :<br>
      sum_i ( M^i x_A U(G(i)) ) = sum_i ( M^i x_A ( p_i *_A I_A) )<br>
      This corresponds to (7) in Wikipedia.</li>
  <li>Transform the right hand side of the equation in step 9. into an
      appropriate form, see ~ cayhamlem3 :<br>
      sum_i ( p_i *_A M^i )<br>
      = sum_i ( M^i x_A ( p_i *_A I_A) )  [see ~ cayhamlem2 ]<br>
      = sum_i ( M^i x_A U(G(i)) ) [see ~ chcoeffeq ]</li>
  <li>Apply the theorem for telescoping sums, see ~ telgsumfz , to the sum
      sum_i ( T_1(M)^i x_Y G(i) ), which results in an equation to 0:<br>
      sum_i ( T_1(M)^i x_Y G(i) ) = 0_Y, see ~ cayhamlem1 :<br>
      sum_i ( T_1(M)^i x_Y G(i) )<br>
      = sum<sub>i=1 to s</sub>
        ( T_1(M)^i x_Y T_1(b(i-1)) - T_1(M)^(i+1) x_Y T_1(b(i)) )<br>
        + ( T_1(M)^(s+1) x_Y T_1(b(s)) - T_1(M) x_Y T_1(b(0)) )
                                                  [see ~ chfacfpmmulgsum2 ]<br>
      = ( T_1(M) x_Y T_1(b(0)) - T_1(M)^(s+1) x_Y T_1(b(s)) )
        + ( T_1 M)^(s+1) x_Y T_1(b(s)) - T_1(M) x_Y T_1(b(0)) )
                                                  [see ~ telgsumfz ]<br>
      = 0_Y [see ~ grpnpncan0 ]
      This step corresponds partially to (8) in Wikipedia.</li>
  <li>Since ` T ` is a ring homomorphism (see ~ mat2pmatrhm ), the left hand
      side of the equation in step 10. can be transformed into a representation
      appropriate to apply the result of step 11., see ~ cayhamlem4 :<br>
      sum_i ( p_i *_A M^i ) <br>
      = sum_i ( M^i x_A U(G(i)) ) [see ~ cayhamlem3 (step 10.)] <br>
      = U(T_1(sum_i ( M^i x_A U(G(i)) ))) [see ~ m2cpminvid ] <br>
      = U(sum_i T_1( M^i x_A U(G(i)) )) [see ~ gsummptmhm ] <br>
      = U(sum_i ( T_1(M^i) x_Y T_1(U(G(i))) )) [see ~ rhmmul ] <br>
      = U(sum_i ( T_1(M)^i x_Y T_1(U(G(i))) )) [see ~ mhmmulg ] <br>
      = U(sum_i ( T_1(M)^i x_Y G(i) )) [see ~ m2cpminvid2  ] <br>
  </li>
  <li>Finally, combine the results of steps 11. and 12., and use the fact that
      ` T ` (and therefore also its inverse ` U ` ) is an injective ring
      homomorphism (see ~ mat2pmatf1 and ~ mat2pmatrhm ) to transform the
      equality resulting from steps 11. and 12. into the desired equation
      sum_i ( p_i *_A M^i ) = 0_A , see ~ cayleyhamilton resp.
      ~ cayleyhamilton0 :<br>
      sum_i ( p_i *_A M^i ) <br>
      = U(sum_i ( T_1(M)^i x_Y G(i) )) [see ~ cayhamlem4 (step 12.)]<br>
      = U(0_Y ) [see ~ cayhamlem1 (step 11.)]<br>
      = 0_A [see ~ m2cpminv0 ]</li>
</ol>
</HTML>
The transformations in steps 5., 6., 10., 12. and 13. are not mentioned in the
proof provided in Wikipedia, since it makes no distinction between a matrix
over a ring ` R ` and its representation as matrix over the polynomial ring
over the ring ` R ` in general!
$)

  ${
    cpmadurid.a $e |- A = ( N Mat R ) $.
    cpmadurid.b $e |- B = ( Base ` A ) $.
    cpmadurid.c $e |- C = ( N CharPlyMat R ) $.
    cpmadurid.p $e |- P = ( Poly1 ` R ) $.
    cpmadurid.y $e |- Y = ( N Mat P ) $.
    cpmadurid.x $e |- X = ( var1 ` R ) $.
    cpmadurid.t $e |- T = ( N matToPolyMat R ) $.
    cpmadurid.s $e |- .- = ( -g ` Y ) $.
    cpmadurid.m1 $e |- .x. = ( .s ` Y ) $.
    cpmadurid.1 $e |- .1. = ( 1r ` Y ) $.
    cpmadurid.i $e |- I = ( ( X .x. .1. ) .- ( T ` M ) ) $.
    cpmadurid.j $e |- J = ( N maAdju P ) $.
    cpmadurid.m2 $e |- .X. = ( .r ` Y ) $.
    $( The right-hand fundamental relation of the adjugate (see ~ madurid )
       applied to the characteristic matrix of a matrix.  (Contributed by AV,
       25-Oct-2019.) $)
    cpmadurid $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                      -> ( I .X. ( J ` I ) ) = ( ( C ` M ) .x. .1. ) ) $=
      ( cfn wcel ccrg w3a cfv co cbs wceq crg crngring chmatcl syl3an2 ply1crng
      cmdat 3ad2ant2 eqid madurid syl2anc chpmatval eqcomd fveq2d eqtr2d oveq1d
      a1i eqtrd ) NUJUKZEULUKZLBUKZUMZJJKUNHUOZJNDVCUOZUNZIGUOZLCUNZIGUOVRJPUPU
      NZUKZDULUKZVSWBUQVPVOEURUKVQWEEUSABDEFGIJLMNOPQRTUAUBUCUDUEUFUGUTVAVPVOWF
      VQDETVBVDPWDVTDGHIKJNUAWDVEUHVTVEZUFUIUEVFVGVRWAWCIGVRWCOIGUOLFUNMUOZVTUN
      WAABCVTDEFGILMNULOPSQRTUAWGUDUBUEUCUFVHVRWHJVTVRJWHJWHUQVRUGVMVIVJVKVLVN
      $.
  $}

  ${
    $d A n $.  $d B k n $.  $d H k n $.  $d K n $.  $d X n $.  $d N k l n x $.
    $d P k n $.  $d R k n $.  $d Y k l n $.  $d .^ n $.
    cpmidgsum.a $e |- A = ( N Mat R ) $.
    cpmidgsum.b $e |- B = ( Base ` A ) $.
    cpmidgsum.p $e |- P = ( Poly1 ` R ) $.
    cpmidgsum.y $e |- Y = ( N Mat P ) $.
    cpmidgsum.x $e |- X = ( var1 ` R ) $.
    cpmidgsum.e $e |- .^ = ( .g ` ( mulGrp ` P ) ) $.
    cpmidgsum.m $e |- .x. = ( .s ` Y ) $.
    cpmidgsum.1 $e |- .1. = ( 1r ` Y ) $.
    cpmidgsum.u $e |- U = ( algSc ` P ) $.
    cpmidgsum.c $e |- C = ( N CharPlyMat R ) $.
    cpmidgsum.k $e |- K = ( C ` M ) $.
    cpmidgsum.h $e |- H = ( K .x. .1. ) $.
    $( Representation of the identity matrix multiplied with the characteristic
       polynomial of a matrix as group sum.  (Contributed by AV,
       7-Nov-2019.) $)
    cpmidgsum $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
               -> H = ( Y gsum ( n e. NN0 |-> ( ( n .^ X )
                        .x. ( ( U ` ( ( coe1 ` K ) ` n ) ) .x. .1. ) ) ) ) ) $=
      ( cfn wcel ccrg cbs cfv cn0 cv co cco1 cmpt cgsu wceq w3a eqid chpmatply1
      syl5eqel cmat2pmat pmatcollpwscmat syld3an3 ) NUIUJZEUKUJZMBUJZLDULUMZUJK
      PIUNIUOZOJUPVLLUQUMUMGUMHFUPFUPURUSUPUTVHVIVJVALMCUMVKUGABCDEVKMNUFQRSVKV
      BZVCVDAPULUMZPBDLEGNEVEUPZGHIVKJFEULUMZKNOSTVNVBUCUBUAVOVBQRUEVPVBVMUEUDU
      HVFVG $.

    $d M n $.
    cpmidgsumm2pm.o $e |- O = ( 1r ` A ) $.
    cpmidgsumm2pm.m $e |- .* = ( .s ` A ) $.
    cpmidgsumm2pm.t $e |- T = ( N matToPolyMat R ) $.
    $( Representation of the identity matrix multiplied with the characteristic
       polynomial of a matrix as group sum with a matrix to polynomial matrix
       transformation.  (Contributed by AV, 13-Nov-2019.) $)
    cpmidgsumm2pm $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                   -> H = ( Y gsum ( n e. NN0 |-> ( ( n .^ X )
                           .x. ( T ` ( ( ( coe1 ` K ) ` n ) .* O ) ) ) ) ) ) $=
      ( cfn wcel ccrg w3a cn0 cv co cco1 cfv cmpt cgsu cpmidgsum wa wceq 3simpa
      cbs adantr eqid chpmatply1 syl5eqel coe1fvalcl sylan crg crngring matring
      anim2i ringidcl 3syl 3adant3 mat2pmatlin syl12anc mat2pmatrhm rhm1 oveq2d
      crh eqtr2d mpteq2dva eqtrd ) PUOUPZEUQUPZOBUPZURZLSJUSJUTZRKVAZWQNVBVCZVC
      ZHVCZIGVAZGVAZVDZVEVASJUSWRWTQMVAFVCZGVAZVDZVEVAABCDEGHIJKLNOPRSTUAUBUCUD
      UEUFUGUHUIUJUKVFWPXDXGSVEWPJUSXCXFWPWQUSUPZVGZXBXEWRGXIXEXAQFVCZGVAZXBXIW
      MWNVGZWTEVJVCZUPZQBUPZXEXKVHWPXLXHWMWNWOVIZVKWPNDVJVCZUPXHXNWPNOCVCXQUJAB
      CDEXQOPUITUAUBXQVLZVMVNWSXQDENXMWQWSVLXRUBXMVLZVOVPWPXOXHWMWNXOWOXLWMEVQU
      PZVGAVQUPXOWNXTWMEVRVTAEPTVSBAQUAULWAWBWCVKABSDEHFMGSVJVCZXMPWTQUNTUAUBUC
      YAVLZXSUHUMUFWDWEXIXJIXAGWPXJIVHZXHWPXLFASWIVAUPYCXPABSDEFYAPUNTUAUBUCYBW
      FASQFIULUGWGWBVKWHWJWHWKWHWL $.

    ${
      $d K k $.  $d L k $.  $d O k $.  $d .* k $.
      cpmidpmat.g $e |- G = ( k e. NN0 |-> ( ( ( coe1 ` K ) ` k ) .* O ) ) $.
      $( Lemma 1 for ~ cpmidpmat .  (Contributed by AV, 13-Nov-2019.) $)
      cpmidpmatlem1 $p |- ( L e. NN0
                          -> ( G ` L ) = ( ( ( coe1 ` K ) ` L ) .* O ) ) $=
        ( cv cco1 cfv co cn0 wceq fveq2 oveq1d ovex fvmpt ) JPJURZOUSUTZUTZSNVA
        PVIUTZSNVAVBLVHPVCVJVKSNVHPVIVDVEUQVKSNVFVG $.

      $d M k $.
      $( Lemma 2 for ~ cpmidpmat .  (Contributed by AV, 14-Nov-2019.)  (Proof
         shortened by AV, 7-Dec-2019.) $)
      cpmidpmatlem2 $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                            -> G e. ( B ^m NN0 ) ) $=
        ( cfn wcel ccrg w3a cn0 cmap co wf cv cco1 cfv wa crg crngring 3ad2ant2
        simpl1 adantr eqid chpmatply1 syl5eqel coe1fvalcl sylan anim2i ringidcl
        cbs matring 3syl 3adant3 matvscl syl22anc fmptd cvv fvex eqeltri pm3.2i
        wb nn0ex elmapg mp1i mpbird ) QUQURZEUSURZPBURZUTZLBVAVBVCURZVABLVDZWTJ
        VAJVEZOVFVGZVGZRNVCZBLWTXCVAURZVHWQEVIURZXEEWAVGZURZRBURZXFBURWQWRWSXGV
        LWTXHXGWRWQXHWSEVJZVKVMWTODWAVGZURXGXJWTOPCVGXMUKABCDEXMPQUJUAUBUCXMVNZ
        VOVPXDXMDEOXIXCXDVNXNUCXIVNZVQVRWTXKXGWQWRXKWSWQWRVHWQXHVHAVIURXKWRXHWQ
        XLVSAEQUAWBBARUBUMVTWCWDVMABXEENXIQRXOUAUBUNWEWFUPWGBWHURZVAWHURZVHXAXB
        WLWTXPXQBAWAVGWHUBAWAWIWJWMWKBVALWHWHWNWOWP $.

      $d A l s $.  $d B l s $.  $d K l s $.  $d M l s $.  $d N k n s $.
      $d O l s $.  $d R l s $.  $d .* l s $.
      $( Lemma 3 for ~ cpmidpmat .  (Contributed by AV, 14-Nov-2019.)  (Proof
         shortened by AV, 7-Dec-2019.) $)
      cpmidpmatlem3 $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                            -> G finSupp ( 0g ` A ) ) $=
        ( vl vs vn cfn wcel ccrg w3a cn0 cv cco1 cfv co c0g cfsupp cvv fvexd wa
        cmpt ovexd wceq fveq2 oveq1d clt wbr csb wi wral wrex cbs eqid syl5eqel
        chpmatply1 coe1fvalcl sylan crngring 3ad2ant2 mptcoe1fsupp mptnn0fsuppr
        crg syl2anc csca csbfv a1i eqeq1d biimpa matsca2 3adant3 ad2antrr eqtrd
        fveq2d clmod matlmod sylan2 matring ringidcl lmod0vs ex imim2d ralimdva
        syl reximdv mpd mptnn0fsuppd syl5eqbr ) QUTVAZEVBVAZPBVAZVCZLJVDJVEZOVF
        VGZVGZRNVHZVNAVIVGZVJUPYDUQVKYHUQVEZYFVGZRNVHZJVKYIURYDAVIVLYDYEVDVAVMY
        GRNVOYEYJVPYGYKRNYEYJYFVQVRYDURVEYJVSVTZUSYJUSVEZYFVGZWAZEVIVGZVPZWBZUQ
        VDWCZURVDWDYMYLYIVPZWBZUQVDWCZURVDWDYDUQEWEVGZYOUSVKYQURYDEVIVLYDODWEVG
        ZVAZYNVDVAYOUUDVAYDOPCVGUUEUKABCDEUUEPQUJUAUBUCUUEWFZWHWGZYFUUEDEOUUDYN
        YFWFUUGUCUUDWFWIWJYDEWOVAZUUFUSVDYOVNYQVJVTYBYAUUIYCEWKZWLUUHUUEDEUSOYQ
        UCUUGYQWFWMWPWNYDYTUUCURVDYDYSUUBUQVDYDYJVDVAZVMZYRUUAYMUULYRUUAUULYRVM
        ZYLAWQVGZVIVGZRNVHZYIUUMYKUUORNUUMYKYQUUOUULYRYKYQVPUULYPYKYQYPYKVPUULU
        SYJYFWRWSWTXAUUMEUUNVIYDEUUNVPZUUKYRYAYBUUQYCAEQVBUAXBXCXDXFXEVRYDUUPYI
        VPZUUKYRYDAXGVAZRBVAZUURYAYBUUSYCYBYAUUIUUSUUJAEQUAXHXIXCYAYBUUTYCYAYBV
        MAWOVAZUUTYBYAUUIUVAUUJAEQUAXJXIBARUBUMXKXPXCNUUNUUOBARYIUBUUNWFUNUUOWF
        YIWFXLWPXDXEXMXNXOXQXRXSXT $.
    $}

    $d I n $.  $d K k x $.  $d M k $.  $d O k n x $.  $d T n $.  $d W n $.
    $d .* k n x $.  $d .x. n $.
    cpmidgsum.w $e |- W = ( Base ` Y ) $.
    cpmidpmat.p $e |- Q = ( Poly1 ` A ) $.
    cpmidpmat.z $e |- Z = ( var1 ` A ) $.
    cpmidpmat.m $e |- .xb = ( .s ` Q ) $.
    cpmidpmat.e $e |- E = ( .g ` ( mulGrp ` Q ) ) $.
    cpmidpmat.i $e |- I = ( N pMatToMatPoly R ) $.
    $( Representation of the identity matrix multiplied with the characteristic
       polynomial of a matrix as polynomial over the ring of matrices.
       (Contributed by AV, 14-Nov-2019.)  (Revised by AV, 7-Dec-2019.) $)
    cpmidpmat $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                      -> ( I ` H ) = ( Q gsum ( n e. NN0
                                       |-> ( ( ( ( coe1 ` K ) ` n ) .* O )
                                             .xb ( n E Z ) ) ) ) ) $=
      ( vk vx cfn wcel ccrg w3a cfv cn0 cv co cco1 cmpt cpmidgsumm2pm fveq2d wa
      cgsu wceq eqid cpmidpmatlem1 eqcomd adantl oveq2d mpteq2dva cfsupp 3simpa
      cmap c0g cpmidpmatlem2 cpmidpmatlem3 oveq1d cbvmptv eleq1i breq1i anbi12i
      wbr fveq2 pm2mp sylan2b fveq1i fveq2i oveq2i mpteq2i oveq1i 3eqtr4g eqtrd
      syl12anc 3eqtrd ) TVIVJZFVKVJZSBVJZVLZOPVMUDLVNLVOZUCNVPZXRRVQVMZVMUAQVPZ
      HVMZIVPZVRZWBVPZPVMZELVNXRVGVNVGVOZXTVMZUAQVPZVRZVMZXRUEMVPZGVPZVRZWBVPZE
      LVNYAYLGVPZVRZWBVPXQOYEPABCDFHIJKLNOQRSTUAUCUDUFUGUHUIUJUKULUMUNUOUPUQURU
      SUTVSVTXQYFUDLVNXSYKHVMZIVPZVRZWBVPZPVMZYOXQYEUUAPXQYDYTUDWBXQLVNYCYSXQXR
      VNVJZWAZYBYRXSIUUDYAYKHUUCYAYKWCXQUUCYKYAABCDFHIJKVGNYJOQRXRSTUAUCUDUFUGU
      HUIUJUKULUMUNUOUPUQURUSUTYJWDZWEZWFWGVTWHWIWHVTXQUDLVNXSXRVHVNVHVOZXTVMZU
      AQVPZVRZVMZHVMZIVPZVRZWBVPZPVMZELVNUUKYLGVPZVRZWBVPZUUBYOXQXNXOWAZYJBVNWL
      VPZVJZYJAWMVMZWJXAZUUPUUSWCZXNXOXPWKABCDFHIJKVGNYJOQRSTUAUCUDUFUGUHUIUJUK
      ULUMUNUOUPUQURUSUTUUEWNABCDFHIJKVGNYJOQRSTUAUCUDUFUGUHUIUJUKULUMUNUOUPUQU
      RUSUTUUEWOUVBUVDWAUUTUUJUVAVJZUUJUVCWJXAZWAUVEUVBUVFUVDUVGYJUUJUVAVGVHVNY
      IUUIYGUUGWCYHUUHUAQYGUUGXTXBWPWQZWRYJUUJUVCWJUVHWSWTAUBUDDEFHILNMPGBUUJTU
      EUCUHUIVAVDVEVCUFUGVBVFUKUJULUTXCXDXLUUAUUOPYTUUNUDWBLVNYSUUMYRUULXSIYKUU
      KHXRYJUUJUVHXEZXFXGXHXGXFYNUUREWBLVNYMUUQYKUUKYLGUVIXIXHXGXJXKXQYNYQEWBXQ
      LVNYMYPUUDYKYAYLGUUCYKYAWCXQUUFWGWPWIWHXM $.
  $}

  ${
    $d B i $.  $d M i $.  $d N i $.  $d R i $.  $d X i $.  $d Y i $.
    $d .X. i $.  $d .x. i $.  $d .1. i $.  $d b i $.  $d i s $.
    cpmadugsum.a $e |- A = ( N Mat R ) $.
    cpmadugsum.b $e |- B = ( Base ` A ) $.
    cpmadugsum.p $e |- P = ( Poly1 ` R ) $.
    cpmadugsum.y $e |- Y = ( N Mat P ) $.
    cpmadugsum.t $e |- T = ( N matToPolyMat R ) $.
    cpmadugsum.x $e |- X = ( var1 ` R ) $.
    cpmadugsum.e $e |- .^ = ( .g ` ( mulGrp ` P ) ) $.
    cpmadugsum.m $e |- .x. = ( .s ` Y ) $.
    cpmadugsum.r $e |- .X. = ( .r ` Y ) $.
    cpmadugsum.1 $e |- .1. = ( 1r ` Y ) $.
    $( Lemma B for ~ cpmadugsum .  (Contributed by AV, 2-Nov-2019.) $)
    cpmadugsumlemB $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                               /\ ( s e. NN0 /\ b e. ( B ^m ( 0 ... s ) ) ) )
                           -> ( ( X .x. .1. ) .X. ( Y gsum ( i e. ( 0 ... s )
                      |-> ( ( i .^ X ) .x. ( T ` ( b ` i ) ) ) ) ) )
                              = ( Y gsum ( i e. ( 0 ... s )
                      |-> ( ( ( i + 1 ) .^ X ) .x. ( T ` ( b ` i ) ) ) ) ) ) $=
      ( cfn wcel ccrg w3a cv cn0 cc0 cfz co cmap wa c1 caddc cfv cmpt cgsu csca
      cmulr cmgp cmnd cbs wceq crg crngring ply1ring syl 3ad2ant2 eqid ad2antrr
      ringmgp elfznn0 adantl 1nn0 a1i vr1cl mgpbas mgpplusg mulgnn0dir syl13anc
      ply1crng anim2i 3adant3 matsca2 fveq2d eqidd mulg1 oveq123d eqtrd matring
      simpll1 simplrl simprr anim1i m2pmfzmap syl31anc ringlidm syl2anc oveq12d
      eqcomd casa matassa eleqtrrd mulgnn0cl ringidcl assa2ass syl122anc oveq2d
      syl3anc mpteq2dva cplusg cvv c0g adantr ovexd clmod matlmod eleq2d mpbird
      lmodvscl cfsupp wbr simpl1 simprl fzfid fvexd fsuppmptdm gsummulc2 eqtr2d
      wb ) LUGUHZDUIUHZKBUHZUJZOUKZULUHZPUKZBUMYTUNUOZUPUOUHZUQZUQZNIUUCIUKZURU
      SUOMJUOZUUGUUBUTEUTZFUOZVAZVBUONIUUCMHFUOZUUGMJUOZUUIFUOZGUOZVAZVBUOUULNI
      UUCUUNVAZVBUOGUOUUFUUKUUPNVBUUFIUUCUUJUUOUUFUUGUUCUHZUQZUUJUUMMNVCUTZVDUT
      ZUOZHUUIGUOZFUOZUUOUUSUUHUVBUUIUVCFUUSUUHUUMURMJUOZCVDUTZUOZUVBUUSCVEUTZV
      FUHZUUGULUHZURULUHZMCVGUTZUHZUUHUVGVHYSUVIUUEUURYSCVIUHZUVIYQYPUVNYRYQDVI
      UHZUVNDVJZCDSVKVLZVMCUVHUVHVNZVPVLVOZUURUVJUUFUUGYTVQVRZUVKUUSVSVTYSUVMUU
      EUURYSUVOUVMYQYPUVOYRUVPVMZUVLCDMUBSUVLVNZWAZVLZVOZUVLUVFJUVHUUGURMUVLCUV
      HUVRUWBWBZUCCUVFUVHUVRUVFVNWCWDWEUUSUUMUUMUVEMUVFUVAUUSCUUTVDYSCUUTVHZUUE
      UURYSYPCUIUHZUQZUWGYPYQUWIYRYQUWHYPCDSWFWGZWHZNCLUITWIZVLZVOWJUUSUUMWKYSU
      VEMVHZUUEUURYSUVMUWNUWDUVLJUVHMUWFUCWLVLVOWMWNUUSUVCUUIUUSNVIUHZUUINVGUTZ
      UHZUVCUUIVHYSUWOUUEUURYSYPUVNUQZUWOYPYQUWRYRYQUVNYPUVQWGZWHNCLTWOZVLZVOUU
      SYPUVOUUAUUDUURUQUWQYPYQYRUUEUURWPYSUVOUUEUURUWAVOYSUUAUUDUURWQUUFUUDUURY
      SUUAUUDWRZWSABCDYTEUUGLNPQRSTUAWTXAZUWPNGHUUIUWPVNZUEUFXBXCXEXDUUSUUOUVDU
      USNXFUHZMUUTVGUTZUHZUUMUXFUHZHUWPUHZUWQUUOUVDVHYSUXEUUEUURYPYQUXEYRYPYQUQ
      ZUWIUXEUWJNCLTXGVLWHVOYSUXGUUEUURYSMUVLUXFUWDYSUUTCVGYSCUUTUWMXEWJZXHVOUU
      SUUMUVLUXFUUSUVIUVJUVMUUMUVLUHZUVSUVTUWEUVLJUVHUUGMUWFUCXIXNZYSUXFUVLVHZU
      UEUURUXKVOXHYSUXIUUEUURYSUWOUXIYPYQUWOYRUXJUWRUWOUWSUWTVLWHZUWPNHUXDUFXJZ
      VLVOUXCMUXFUUMFGUUTUVAUWPNHUUIUXDUUTVNZUXFVNZUVAVNUDUEXKXLXEWNXOXMUUFUUCU
      WPNXPUTZNGIXQUUNUULNXRUTZUXDUXTVNUXSVNUEYSUWOUUEUXOXSUUFUMYTUNXTYSUULUWPU
      HZUUEYSNYAUHZUXGUXIUYAYPYQUYBYRUXJUWRUYBUWSNCLTYBVLWHZYPYQUXGYRUXJMUVLUXF
      UXJUVOUVMYQUVOYPUVPVRUWCVLUXJUUTCVGUXJCUUTUXJUWIUWGUWJUWLVLXEWJXHWHYSUWOU
      XIUXAUXPVLMFUUTUXFUWPNHUXDUXQUDUXRYEXNXSUUSUYBUXHUWQUUNUWPUHYSUYBUUEUURUY
      CVOUUSUXHUXLUXMYSUXHUXLYOUUEUURYSUXFUVLUUMYSUWIUXNUWKUWIUUTCVGUWICUUTUWLX
      EWJVLYCVOYDUXCUUMFUUTUXFUWPNUUIUXDUXQUDUXRYEXNUUFYPUVOUUAUUDUUQUXTYFYGYPY
      QYRUUEYHYSUVOUUEUWAXSYSUUAUUDYIUXBYPUVOUUAUJUUDUQZIUUCUUQXQXQUUNUXTUUQVNU
      YDUMYTYJUYDUURUQUUMUUIFXTUYDNXRYKYLXAYMYN $.

    $d T i $.
    $( Lemma C for ~ cpmadugsum .  (Contributed by AV, 2-Nov-2019.) $)
    cpmadugsumlemC $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                               /\ ( s e. NN0 /\ b e. ( B ^m ( 0 ... s ) ) ) )
                           -> ( ( T ` M ) .X. ( Y gsum ( i e. ( 0 ... s )
            |-> ( ( i .^ X ) .x. ( T ` ( b ` i ) ) ) ) ) )
                              = ( Y gsum ( i e. ( 0 ... s )
            |-> ( ( i .^ X ) .x. ( ( T ` M ) .X. ( T ` ( b ` i ) ) ) ) ) ) ) $=
      ( cfn wcel ccrg w3a cv cn0 cc0 cfz co cmap wa cfv cmpt cbs cplusg cvv c0g
      cgsu eqid crg crngring ply1ring anim2i matring 3adant3 adantr mat2pmatbas
      syl ovexd syl3an2 csca matlmod ad2antrr cmgp cmnd 3ad2ant2 ringmgp adantl
      clmod elfznn0 vr1cl mgpbas mulgnn0cl syl3anc wceq ply1crng matsca2 eqcomd
      wb fveq2d eleq2d mpbird simpll1 simprr anim1i m2pmfzmap syl31anc lmodvscl
      simplrl cfsupp wbr simpl1 simprl fzfid fvexd fsuppmptdm gsummulc2 matassa
      casa eleqtrrd assaassr syl13anc mpteq2dva oveq2d eqtr3d ) LUGUHZDUIUHZKBU
      HZUJZOUKZULUHZPUKZBUMYFUNUOZUPUOUHZUQZUQZNIYIKEURZIUKZMJUOZYNYHUREURZFUOZ
      GUOZUSZVDUOYMNIYIYQUSZVDUOGUONIYIYOYMYPGUOFUOZUSZVDUOYLYINUTURZNVAURZNGIV
      BYQYMNVCURZUUCVEZUUEVEUUDVEUEYENVFUHZYKYBYCUUGYDYBYCUQZYBCVFUHZUQZUUGYCUU
      IYBYCDVFUHZUUIDVGZCDSVHVNZVIZNCLTVJVNVKVLYLUMYFUNVOYEYMUUCUHZYKYCYBUUKYDU
      UOUULABNCDEKLUAQRSTVMVPZVLYLYNYIUHZUQZNWEUHZYONVQURZUTURZUHZYPUUCUHZYQUUC
      UHYEUUSYKUUQYEUUJUUSYBYCUUJYDUUNVKNCLTVRVNVSUURUVBYOCUTURZUHZUURCVTURZWAU
      HZYNULUHZMUVDUHZUVEYEUVGYKUUQYEUUIUVGYCYBUUIYDUUMWBCUVFUVFVEZWCZVNVSUUQUV
      HYLYNYFWFWDZYEUVIYKUUQYEUUKUVIYCYBUUKYDUULWBZUVDCDMUBSUVDVEZWGVNVSZUVDJUV
      FYNMUVDCUVFUVJUVNWHUCWIZWJYEUVBUVEWOYKUUQYEUVAUVDYOYEUUTCUTYECUUTYEYBCUIU
      HZUQZCUUTWKYBYCUVRYDYCUVQYBCDSWLVIZVKNCLUITWMVNWNWPZWQVSWRUURYBUUKYGYJUUQ
      UQUVCYBYCYDYKUUQWSYEUUKYKUUQUVMVSYEYGYJUUQXEYLYJUUQYEYGYJWTZXAABCDYFEYNLN
      PQRSTUAXBXCZYOFUUTUVAUUCNYPUUFUUTVEZUDUVAVEZXDWJYLYBUUKYGYJYTUUEXFXGYBYCY
      DYKXHYEUUKYKUVMVLYEYGYJXIUWAYBUUKYGUJYJUQZIYIYTVBVBYQUUEYTVEUWEUMYFXJUWEU
      UQUQYOYPFVOUWENVCXKXLXCXMYLYSUUBNVDYLIYIYRUUAUURNXOUHZUVBUUOUVCYRUUAWKYEU
      WFYKUUQYBYCUWFYDUUHUVRUWFUVSNCLTXNVNVKVSUURYOUVDUVAUURUVGUVHUVIUVEYEUVGYK
      UUQYBYCUVGYDUUHUUIUVGYCUUIYBUUMWDUVKVNVKVSUVLUVOUVPWJYEUVAUVDWKYKUUQUVTVS
      XPYEUUOYKUUQUUPVSUWBYOUVAFGUUTUUCNYMYPUUFUWCUWDUDUEXQXRXSXTYA $.

    $d B x $.  $d M x $.  $d N x $.  $d R x $.  $d T x $.  $d X x $.
    $d .x. x $.  $d .^ i x $.  $d .- i $.  $d b x $.  $d s x $.
    cpmadugsum.g $e |- .+ = ( +g ` Y ) $.
    cpmadugsum.s $e |- .- = ( -g ` Y ) $.
    $( Lemma F for ~ cpmadugsum .  (Contributed by AV, 7-Nov-2019.) $)
    cpmadugsumlemF $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                               /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) ) )
      -> ( ( ( X .x. .1. ) .X. ( Y gsum ( i e. ( 0 ... s )
                                 |-> ( ( i .^ X ) .x. ( T ` ( b ` i ) ) ) ) ) )
                   .- ( ( T ` M ) .X. ( Y gsum ( i e. ( 0 ... s )
                               |-> ( ( i .^ X ) .x. ( T ` ( b ` i ) ) ) ) ) ) )
             = ( ( Y gsum ( i e. ( 1 ... s ) |-> ( ( i .^ X ) .x.
                               ( ( T ` ( b ` ( i - 1 ) ) )
                                 .- ( ( T ` M ) .X. ( T ` ( b ` i ) ) ) ) ) ) )
                 .+ ( ( ( ( s + 1 ) .^ X ) .x. ( T ` ( b ` s ) ) )
                      .- ( ( T ` M ) .X. ( T ` ( b ` 0 ) ) ) ) ) ) $=
      ( vx cfn wcel ccrg w3a cv cn cc0 cfz co cmap wa cfv cmpt cgsu c1 cmin cn0
      caddc wceq nnnn0 cpmadugsumlemB sylanr1 cpmadugsumlemC oveq12d csn npcan1
      nncn eqcomd syl oveq2d mpteq1d ad2antrl cbs eqid ccmn crg crngring anim2i
      cc 3adant3 pmatring ringcmn adantr nnm1nn0 simpll1 3ad2ant2 elmapi impcom
      wf feq2d adantl elfznn0 1nn0 nn0addcld mat2pmatscmxcl syl22anc cmnd sylib
      a1i oveq1 oveq1d fveq2 fveq2d gsumsnd 3eqtrd wb eleq2d mat2pmatbas ringcl
      syl3anc cur c0g mulg0 wi ffvelrnd ex eqtrd fzfid cz nnz elfzofz ralrimiva
      syl6bi imp gsummptcl cmncom grpaddsubass syl13anc mpteq2dva syl5ibcom cvv
      ffvelrnda gsummptfzsplit ringmnd ovexd simpl1 nn0fz0 ffvelrn jca syl21anc
      syl2anr sylan9eqr clmod csca pmatlmod cmgp ringmgp vr1cl mgpbas mulgnn0cl
      ply1ring ply1crng matsca2 mpbird simpll3 simprr anim1i m2pmfzmap syl31anc
      lmodvscl gsummptfzsplitl 0nn0 ringidval syl3an2 simpl cuz elnn0uz eluzfz1
      lmodvs1 syl2anc eqeltrd cfzo fzoval adantll ringgrp elfznn nnnn0d eleqtrd
      cgrp wss 1eluzge0 fzss1 mp1i sseld cbvmptv nncnd syl5eq nn0zd gsummptshft
      1zzd 0zd 0p1e1 ringabl elfzm1b syl2an sylbid expimpd mpcom gsummptfidmsub
      cabl 3eqtr4d grpsubcl mndcl ablsubsub4 3eqtr3d lmodsubdi ) NULUMZEUNUMZLB
[encoded data, 6560 characters]
      UEVVDVWAUMWXNWXOXUKABPCEFVVCNUCSTUAUBXSYAWXQUXQVSYTWAXLXPXP $.

    $d A b n s $.  $d B b n s $.  $d I b $.  $d I i n s $.  $d J b $.
    $d J i n s $.  $d M b n s $.  $d N b $.  $d N n s $.  $d P i n $.
    $d R b $.  $d R n s $.  $d T b n s $.  $d X b $.  $d X n s $.  $d Y b $.
    $d Y n s $.  $d .^ i n s $.  $d .^ b $.  $d .x. b n s $.
    cpmadugsum.i $e |- I = ( ( X .x. .1. ) .- ( T ` M ) ) $.
    cpmadugsum.j $e |- J = ( N maAdju P ) $.
    $( The product of the characteristic matrix of a given matrix and its
       adjunct represented as finite sum.  (Contributed by AV, 7-Nov-2019.)
       (Proof shortened by AV, 29-Nov-2019.) $)
    cpmadugsumfi $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                         -> E. s e. NN E. b e. ( B ^m ( 0 ... s ) )
           ( I .X. ( J ` I ) ) = ( ( Y gsum ( i e. ( 1 ... s )
                               |-> ( ( i .^ X ) .x. ( ( T ` ( b ` ( i - 1 ) ) )
                                 .- ( ( T ` M ) .X. ( T ` ( b ` i ) ) ) ) ) ) )
                           .+ ( ( ( ( s + 1 ) .^ X ) .x. ( T ` ( b ` s ) ) )
                                .- ( ( T ` M ) .X. ( T ` ( b ` 0 ) ) ) ) ) ) $=
      ( vn cfn wcel ccrg w3a cfv cc0 cv co cmpt cgsu wceq c1 cmin caddc cn cmap
      cfz wa oveq2 a1i oveq1d cbs crg crngring anim2i 3adant3 ad2antrr pmatring
      eqid syl clmod csca pmatlmod sylan2 adantl vr1cl ply1crng matsca2 eleqtrd
      fveq2d ringidcl lmodvscl syl3anc mat2pmatbas syl3an2 ccmn fzfid ad3antrrr
      ringcmn cn0 wi wf elmapi ffvelrn ex imp mat2pmatscmxcl syl12anc ralrimiva
      elfznn0 gsummptcl rngsubdir weq oveq1 fveq2 oveq12d oveq2i cpmadugsumlemF
      cbvmptv oveq12i anassrs syl5eq 3eqtrd sylan9eqr 3ad2ant2 chmatcl ffvelrnd
      wrex maduf pmatcollpw3fi1 syld3an3 reximddv2 ) PUPUQZEURUQZNBUQZUSZLMUTZR
      UOVASVBZVLVCZUOVBZQKVCZUUETVBZUTZFUTZGVCZVDZVEVCZVFZLUUBHVCZRJVGUUCVLVCJV
      BZQKVCZUUOVGVHVCUUGUTFUTNFUTZUUOUUGUTZFUTZHVCOVCGVCVDVEVCUUCVGVIVCQKVCUUC
      UUGUTFUTGVCUUQVAUUGUTFUTHVCOVCDVCZVFSTVJBUUDVKVCZUUMUUAUUCVJUQZVMZUUGUVAU
      QZVMZUUNLUULHVCZUUTUUBUULLHVNUVEUVFQIGVCZUUQOVCZUULHVCUVGUULHVCZUUQUULHVC
      ZOVCZUUTUVELUVHUULHLUVHVFUVEUMVOVPUVERVQUTZRHOUVGUUQUULUVLWDZUIULUVEYREVR
      UQZVMZRVRUQZUUAUVOUVBUVDYRYSUVOYTYSUVNYREVSZVTWAZWBRCEPUCUDWCZWEUUAUVGUVL
      UQZUVBUVDYRYSUVTYTYRYSVMZRWFUQZQRWGUTZVQUTZUQIUVLUQZUVTYSYRUVNUWBUVQRCEPU
      CUDWHWIUWAQCVQUTZUWDUWAUVNQUWFUQYSUVNYRUVQWJUWFCEQUFUCUWFWDWKWEUWACUWCVQY
      SYRCURUQZCUWCVFCEUCWLZRCPURUDWMWIWOWNUWAUVPUWEYSYRUVNUVPUVQUVSWIZUVLRIUVM
      UJWPWEQGUWCUWDUVLRIUVMUWCWDUHUWDWDWQWRWAWBUUAUUQUVLUQZUVBUVDYSYRUVNYTUWJU
      VQABRCEFNPUEUAUBUCUDWSWTWBUVEUVLUORUUDUUJUVMUUARXAUQZUVBUVDYRYSUWKYTUWAUV
      PUWKUWIRXDWEWAWBUVEVAUUCXBUVEUUJUVLUQZUOUUDUVEUUEUUDUQZVMUVOUUHBUQZUUEXEU
      QZUWLUUAUVOUVBUVDUWMUVRXCUVEUWMUWNUVDUWMUWNXFZUVCUVDUUDBUUGXGZUWPUUGBUUDX
      HUWQUWMUWNUUDBUUEUUGXIXJWEWJXKUWMUWOUVEUUEUUCXOWJAUVLRCEFKGBUUEUUHPQUAUBU
      EUCUDUVMUHUGUFXLXMXNXPXQUVEUVKUVGRJUUDUUPUUSGVCZVDZVEVCZHVCZUUQUWTHVCZOVC
      ZUUTUVIUXAUVJUXBOUULUWTUVGHUUKUWSRVEUOJUUDUUJUWRUOJXRZUUFUUPUUIUUSGUUEUUO
      QKXSUXDUUHUURFUUEUUOUUGXTWOYAYDYBZYBUULUWTUUQHUXEYBYEUUAUVBUVDUXCUUTVFABC
      DEFGHIJKNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULYCYFYGYHYIYRYSYTUUBUVLUQUUMTUVAYMS
      VJYMUUAUVLUVLLMYSYRUVLUVLMXGZYTYSUWGUXFUWHRUVLCMPUDUNUVMYNWEYJYSYRUVNYTLU
      VLUQUVQABCEFGILNOPQRUAUBUCUDUFUEULUHUJUMYKWTYLAUVLRBCEFTUOKGUUBPQSUCUDUVM
      UHUGUFUEUAUBYOYPYQ $.

    $d G i $.  $d .X. n $.  $d .0. n $.  $d .- n $.
    cpmadugsum.0 $e |- .0. = ( 0g ` Y ) $.
    cpmadugsum.g2 $e |- G = ( n e. NN0
          |-> if ( n = 0 , ( .0. .- ( ( T ` M ) .X. ( T ` ( b ` 0 ) ) ) ) ,
                   if ( n = ( s + 1 ) , ( T ` ( b ` s ) ) ,
                        if ( ( s + 1 ) < n , .0. ,
                          ( ( T ` ( b ` ( n - 1 ) ) )
                            .- ( ( T ` M ) .X. ( T ` ( b ` n ) ) ) ) ) ) ) ) $.
    $( The product of the characteristic matrix of a given matrix and its
       adjunct represented as an infinite sum.  (Contributed by AV,
       10-Nov-2019.) $)
    cpmadugsum $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                         -> E. s e. NN E. b e. ( B ^m ( 0 ... s ) )
              ( I .X. ( J ` I ) ) = ( Y gsum ( i e. NN0
                                      |-> ( ( i .^ X ) .x. ( G ` i ) ) ) ) ) $=
      ( cfn wcel ccrg w3a cfv co c1 cfz cmin cmpt cgsu caddc cc0 wceq cmap wrex
      cv cn cpmadugsumfi wa simpr chfacfscmulgsum eqcomd adantr eqtrd reximdvva
      cn0 ex mpd ) RUTVAEVBVAPBVAVCZNNOVDHVEZTJVFUBVPZVGVEJVPZSLVEZWLVFVHVEUCVP
      ZVDFVDPFVDZWLWNVDFVDHVEQVEGVEVIVJVEWKVFVKVESLVEWKWNVDFVDGVEWOVLWNVDFVDHVE
      QVEDVEZVMZUCBVLWKVGVEVNVEZVOUBVQVOWJTJWFWMWLMVDGVEVIVJVEZVMZUCWRVOUBVQVOA
      BCDEFGHIJLNOPQRSTUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQVRWIWQWTUBUCVQWRWIWKVQVA
      WNWRVAVSVSZWQWTXAWQVSWJWPWSXAWQVTXAWPWSVMWQXAWSWPABCDEFGHJKLMPQRSTUAUBUCU
      DUEUFUGULUOURUHUSUIUKUJUNWAWBWCWDWGWEWH $.

    cpmidgsum2.c $e |- C = ( N CharPlyMat R ) $.
    cpmidgsum2.k $e |- K = ( C ` M ) $.
    ${
      cpmidgsum2.h $e |- H = ( K .x. .1. ) $.
      $( Representation of the identity matrix multiplied with the
         characteristic polynomial of a matrix as another group sum.
         (Contributed by AV, 10-Nov-2019.) $)
      cpmidgsum2 $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
           -> E. s e. NN E. b e. ( B ^m ( 0 ... s ) )
              H = ( Y gsum ( i e. NN0 |-> ( ( i .^ X ) .x. ( G ` i ) ) ) ) ) $=
        ( cfn wcel ccrg w3a cfv cn0 cmpt cgsu wceq cc0 cfz cmap wrex cpmadugsum
        co cv cn wa cmdat cbs cgrp crg crngring anim2i 3adant3 pmatring ringgrp
        3syl clmod csca pmatlmod sylan2 adantl eqid syl ply1crng matsca2 fveq2d
        eleqtrd ringidcl lmodvscl syl3anc mat2pmatbas syl3an2 grpsubcl 3ad2ant2
        vr1cl madurid syl2anc id fveq2 oveq12d chpmatval syl5eq oveq1d 3eqtr4rd
        mp1i adantr simpr eqtrd ex reximdv mpd ) UAVFVGZFVHVGZSBVGZVIZPPQVJZIVT
        ZUCKVKKWAZUBMVTYONVJHVTVLVMVTZVNZUFBVOUEWAVPVTVQVTZVRZUEWBVROYPVNZUFYRV
        RZUEWBVRABDEFGHIJKLMNPQSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTVAVBVS
        YLYSUUAUEWBYLYQYTUFYRYLYQYTYLYQWCOYNYPYLOYNVNYQYLUBJHVTZSGVJZTVTZUUDQVJ
        ZIVTZUUDUADWDVTZVJZJHVTZYNOYLUUDUCWEVJZVGZDVHVGZUUFUUIVNYLUCWFVGZUUBUUJ
        VGZUUCUUJVGZUUKYLYIFWGVGZWCZUCWGVGZUUMYIYJUUQYKYJUUPYIFWHZWIZWJUCDFUAUI
        UJWKZUCWLWMYIYJUUNYKYIYJWCZUCWNVGZUBUCWOVJZWEVJZVGJUUJVGZUUNYJYIUUPUVCU
        USUCDFUAUIUJWPWQUVBUBDWEVJZUVEUVBUUPUBUVGVGYJUUPYIUUSWRUVGDFUBULUIUVGWS
        XLWTUVBDUVDWEYJYIUULDUVDVNDFUIXAZUCDUAVHUJXBWQXCXDUVBUUQUURUVFUUTUVAUUJ
        UCJUUJWSZUPXEWMUBHUVDUVEUUJUCJUVIUVDWSUNUVEWSXFXGWJYJYIUUPYKUUOUUSABUCD
        FGSUAUKUGUHUIUJXHXIUUJUCTUUBUUCUVIURXJXGYJYIUULYKUVHXKUCUUJUUGDHIJQUUDU
        AUJUVIUTUUGWSZUPUOUNXMXNPUUDVNZYNUUFVNYLUSUVKPUUDYMUUEIUVKXOPUUDQXPXQYB
        YLORJHVTUUIVEYLRUUHJHYLRSCVJUUHVDABCUUGDFGHJSTUAVHUBUCVCUGUHUIUJUVJURUL
        UNUKUPXRXSXTXSYAYCYLYQYDYEYFYGYGYH $.
    $}

    $d A i $.  $d K i $.
    cpmidg2sum.u $e |- U = ( algSc ` P ) $.
    $( Equality of two sums representing the identity matrix multiplied with
       the characteristic polynomial of a matrix.  (Contributed by AV,
       11-Nov-2019.) $)
    cpmidg2sum $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
             -> E. s e. NN E. b e. ( B ^m ( 0 ... s ) )
                ( Y gsum ( i e. NN0 |-> ( ( i .^ X )
                             .x. ( ( U ` ( ( coe1 ` K ) ` i ) ) .x. .1. ) ) ) )
                = ( Y gsum ( i e. NN0 |-> ( ( i .^ X ) .x. ( G ` i ) ) ) ) ) $=
      ( cfn wcel ccrg w3a co cn0 cv cfv cmpt cgsu wceq cco1 cn cc0 cmap wa eqid
      cfz cpmidgsum eqcomd ad3antrrr simpr eqtrd cpmidgsum2 reximddv2 ) UAVFVGF
      VHVGSBVGVIZRKHVJZUCLVKLVLZUBNVJZWMOVMHVJVNVOVJZVPZUCLVKWNWMRVQVMVMJVMKHVJ
      HVJVNVOVJZWOVPUEUFVRBVSUEVLZWCVJVTVJZWKWRVRVGZWAUFVLWSVGZWAZWPWAWQWLWOWKW
      QWLVPWTXAWPWKWLWQABCDFHJKLNWLRSUAUBUCUGUHUIUJULUMUNUPVEVCVDWLWBZWDWEWFXBW
      PWGWHABCDEFGHIKLMNOWLPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTVAVBVCV
      DXCWIWJ $.
  $}

  ${
    $d B n $.  $d M n $.  $d N n $.  $d R n $.  $d S n $.  $d Y n $.  $d b n $.
    $d s n $.
    cpmadumatpoly.a $e |- A = ( N Mat R ) $.
    cpmadumatpoly.b $e |- B = ( Base ` A ) $.
    cpmadumatpoly.p $e |- P = ( Poly1 ` R ) $.
    cpmadumatpoly.y $e |- Y = ( N Mat P ) $.
    cpmadumatpoly.t $e |- T = ( N matToPolyMat R ) $.
    cpmadumatpoly.r $e |- .X. = ( .r ` Y ) $.
    cpmadumatpoly.m0 $e |- .- = ( -g ` Y ) $.
    cpmadumatpoly.0 $e |- .0. = ( 0g ` Y ) $.
    cpmadumatpoly.g $e |- G = ( n e. NN0
          |-> if ( n = 0 , ( .0. .- ( ( T ` M ) .X. ( T ` ( b ` 0 ) ) ) ) ,
                   if ( n = ( s + 1 ) , ( T ` ( b ` s ) ) ,
                        if ( ( s + 1 ) < n , .0. ,
                          ( ( T ` ( b ` ( n - 1 ) ) )
                            .- ( ( T ` M ) .X. ( T ` ( b ` n ) ) ) ) ) ) ) ) $.
    cpmadumatpoly.s $e |- S = ( N ConstPolyMat R ) $.
    cpmadumatpoly.m1 $e |- .x. = ( .s ` Y ) $.
    cpmadumatpoly.1 $e |- .1. = ( 1r ` Y ) $.
    cpmadumatpoly.z $e |- Z = ( var1 ` R ) $.
    cpmadumatpoly.d $e |- D = ( ( Z .x. .1. ) .- ( T ` M ) ) $.
    cpmadumatpoly.j $e |- J = ( N maAdju P ) $.
    cpmadumatpoly.w $e |- W = ( Base ` Y ) $.
    cpmadumatpoly.q $e |- Q = ( Poly1 ` A ) $.
    cpmadumatpoly.x $e |- X = ( var1 ` A ) $.
    cpmadumatpoly.m2 $e |- .* = ( .s ` Q ) $.
    cpmadumatpoly.e $e |- .^ = ( .g ` ( mulGrp ` Q ) ) $.
    cpmadumatpoly.u $e |- U = ( N cPolyMatToMat R ) $.
    $( Lemma 1 for ~ cpmadumatpoly .  (Contributed by AV, 20-Nov-2019.)
       (Revised by AV, 15-Dec-2019.) $)
    cpmadumatpolylem1 $p |- ( ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                                  /\ s e. NN ) /\ b e. ( B ^m ( 0 ... s ) ) )
                              -> ( U o. G ) e. ( B ^m NN0 ) ) $=
      ( cfn wcel ccrg w3a cv cn wa cc0 cfz co cmap cn0 wf crg crngring 3ad2ant2
      simp1 jca ad2antrr cpm2mf syl chfacfisfcpmat syl3anl2 anassrs fco syl2anc
      ccom cvv wb cbs cfv fvex eqeltri nn0ex pm3.2i elmapg mp1i mpbird ) TVIVJZ
      FVKVJZRBVJZVLZUFVMZVNVJZVOUGVMBVPXKVQVRVSVRVJZVOZKOWOZBVTVSVRVJZVTBXOWAZX
      NGBKWAZVTGOWAZXQXNXGFWBVJZVOZXRXJYAXLXMXJXGXTXGXHXIWEXHXGXTXIFWCZWDWFWGAF
      GKBTUHUIUQVHWHWIXJXLXMXSXHXGXTXIXLXMVOXSYBABDFGHJMORSTUCUDUFUGUHUIUJUKUMU
      NUOULUPUQWJWKWLVTGBKOWMWNBWPVJZVTWPVJZVOXPXQWQXNYCYDBAWRWSWPUIAWRWTXAXBXC
      BVTXOWPWPXDXEXF $.

    $( Lemma 2 for ~ cpmadumatpoly .  (Contributed by AV, 20-Nov-2019.)
       (Revised by AV, 15-Dec-2019.) $)
    cpmadumatpolylem2 $p |- ( ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                                  /\ s e. NN ) /\ b e. ( B ^m ( 0 ... s ) ) )
                              -> ( U o. G ) finSupp ( 0g ` A ) ) $=
      ( cfn wcel ccrg w3a cv cn wa cc0 cfz co cmap cn0 cvv c0g cfv crg crngring
      fvexd anim2i 3adant3 ad2antrr 0elcpmat wf chfacfisfcpmat syl3anl2 anassrs
      syl cpm2mf wss ssid a1i nn0ex ccpmat ovex eqeltri cfsupp chfacffsupp wceq
      wbr eqid m2cpminv0 sylan2 fsuppcor ) TVIVJZFVKVJZRBVJZVLZUFVMZVNVJZVOUGVM
      BVPXPVQVRVSVRVJZVOZVTGGBWAOKWAWAAWBWCZUCWBWCZXSAWBWFXSXLFWDVJZVOZYAGVJXOY
      CXQXRXLXMYCXNXMYBXLFWEZWGWHWIZUCDFGTUQUJUKWJWOXOXQXRVTGOWKZXMXLYBXNXQXRVO
      YFYDABDFGHJMORSTUCUDUFUGUHUIUJUKUMUNUOULUPUQWLWMWNXSYCGBKWKYEAFGKBTUHUIUQ
      VHWPWOGGWQXSGWRWSVTWAVJXSWTWSGWAVJXSGTFXAVRWAUQTFXAXBXCWSXOXQXROYAXDXGABD
      FHJMORSTUCUDUFUGUHUIUJUKUMUNUOULUPXEWNXOYAKWCXTXFZXQXRXLXMYGXNXMXLYBYGYDA
      UCDFKTXTYAUHVHUJUKXTXHYAXHXIXJWHWIXK $.

    $d A b s z $.  $d A n $.  $d B b s z $.  $d D b s z $.  $d D n $.
    $d G n $.  $d I n $.  $d J b s z $.  $d J n $.  $d M b s z $.
    $d N b s z $.  $d P n $.  $d P b s z $.  $d R b s z $.  $d T b s z $.
    $d T n $.  $d U n $.  $d W n $.  $d Y b s z $.  $d Z b s z $.  $d Z n $.
    $d .X. n z $.  $d .x. b s z $.  $d .x. n $.  $d .1. n $.  $d .0. n z $.
    $d .- n z $.  $d .1. n $.  $d .x. b n s z $.  $d .- n z $.
    cpmadumatpoly.i $e |- I = ( N pMatToMatPoly R ) $.
    $( The product of the characteristic matrix of a given matrix and its
       adjunct represented as a polynomial over matrices.  (Contributed by AV,
       20-Nov-2019.)  (Revised by AV, 7-Dec-2019.) $)
    cpmadumatpoly $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                         -> E. s e. NN E. b e. ( B ^m ( 0 ... s ) )
                              ( I ` ( D .X. ( J ` D ) ) ) = ( Q gsum ( n e. NN0
                               |-> ( ( U ` ( G ` n ) ) .* ( n .^ X ) ) ) ) ) $=
      ( vz cfn wcel ccrg w3a cfv co cn0 cv cmgp cmg cmpt cgsu wceq cc0 cfz cmap
      wrex cn cplusg eqid caddc clt wbr cmin cif eqeq1 breq2 oveq1 fveq2d fveq2
      c1 oveq2d oveq12d ifbieq2d cbvmptv eqtri cpmadugsum wa crg simp1 crngring
      ad3antrrr 3ad2ant2 wf chfacfisfcpmat syl3anl2 anassrs m2cpminvid2 syl3anc
      ffvelrnda eqcomd eqeq2d ccom c0g cfsupp 3simpa ad2antrr cpmadumatpolylem1
      mpteq2dva cpmadumatpolylem2 pm2mp syl12anc fvco3 oveq1d 3eqtr4d sylan9eqr
      sylan ex reximdva sylbid mpd ) UAVLVMZFVNVMZSBVMZVOZCCRVPJVQZUDMVRMVSZUFD
      VTVPWAVPZVQZUUHOVPZIVQZWBZWCVQZWDZUHBWEUGVSZWFVQWGVQZWHZUGWIWHUUGPVPZEMVR
      UUKKVPZUUHUCNVQZQVQZWBZWCVQZWDZUHUUQWHZUGWIWHABDUDWJVPZFHIJLMVKUUIOCRSTUA
      UFUDUEUGUHUIUJUKULUMVAUUIWKZUSUNUTUVGWKUOVBVCUPOMVRUUHWEWDZUESHVPZWEUHVSZ
      VPHVPJVQTVQZUUHUUPXBWLVQZWDZUUPUVKVPHVPZUVMUUHWMWNZUEUUHXBWOVQZUVKVPZHVPZ
      UVJUUHUVKVPZHVPZJVQZTVQZWPZWPZWPZWBVKVRVKVSZWEWDZUVLUWGUVMWDZUVOUVMUWGWMW
      NZUEUWGXBWOVQZUVKVPZHVPZUVJUWGUVKVPZHVPZJVQZTVQZWPZWPZWPZWBUQMVKVRUWFUWTU
      UHUWGWDZUVIUWHUWEUWSUVLUUHUWGWEWQUXAUVNUWIUWDUWRUVOUUHUWGUVMWQUXAUVPUWJUW
      CUWQUEUUHUWGUVMWMWRUXAUVSUWMUWBUWPTUXAUVRUWLHUXAUVQUWKUVKUUHUWGXBWOWSWTWT
      UXAUWAUWOUVJJUXAUVTUWNHUUHUWGUVKXAWTXCXDXEXEXEXFXGXHUUFUURUVFUGWIUUFUUPWI
      VMZXIZUUOUVEUHUUQUXCUVKUUQVMZXIZUUOUUGUDMVRUUJUUTHVPZIVQZWBZWCVQZWDZUVEUX
      EUUNUXIUUGUXEUUMUXHUDWCUXEMVRUULUXGUXEUUHVRVMZXIZUUKUXFUUJIUXLUXFUUKUXLUU
      CFXJVMZUUKGVMUXFUUKWDUUFUUCUXBUXDUXKUUCUUDUUEXKXMUUFUXMUXBUXDUXKUUDUUCUXM
      UUEFXLZXNXMUXEVRGUUHOUUFUXBUXDVRGOXOZUUDUUCUXMUUEUXBUXDXIUXOUXNABDFGHJMOS
      TUAUDUEUGUHUIUJUKULUNUOUPUMUQURXPXQXRZYAFGHKUUKUAURVIUMXSXTYBXCYJXCYCUXEU
      XJUVEUXJUXEUUSUXIPVPZUVDUUGUXIPXAUXEUDMVRUUJUUHKOYDZVPZHVPZIVQZWBZWCVQZPV
      PZEMVRUXSUVAQVQZWBZWCVQZUXQUVDUXEUUCUUDXIZUXRBVRWGVQVMUXRAYEVPYFWNUYDUYGW
      DUUFUYHUXBUXDUUCUUDUUEYGYHABCDEFGHIJKLMNOQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUN
      UOUPUQURUSUTVAVBVCVDVEVFVGVHVIYIABCDEFGHIJKLMNOQRSTUAUBUCUDUEUFUGUHUIUJUK
      ULUMUNUOUPUQURUSUTVAVBVCVDVEVFVGVHVIYKAUBUDDEFHIMUUINPQBUXRUAUCUFUKULVDVG
      VHVFUIUJVEVJUVHVAUSUMYLYMUXEUXIUYCPUXEUXHUYBUDWCUXEMVRUXGUYAUXLUXFUXTUUJI
      UXLUUTUXSHUXEUXOUXKUUTUXSWDUXPUXOUXKXIUXSUUTVRGUUHKOYNYBYRZWTXCYJXCWTUXEU
      VCUYFEWCUXEMVRUVBUYEUXLUUTUXSUVAQUYIYOYJXCYPYQYSUUAYTYTUUB $.
  $}

  ${
    cayhamlem2.k $e |- K = ( Base ` R ) $.
    cayhamlem2.a $e |- A = ( N Mat R ) $.
    cayhamlem2.b $e |- B = ( Base ` A ) $.
    cayhamlem2.1 $e |- .1. = ( 1r ` A ) $.
    cayhamlem2.m $e |- .* = ( .s ` A ) $.
    cayhamlem2.e $e |- .^ = ( .g ` ( mulGrp ` A ) ) $.
    cayhamlem2.r $e |- .x. = ( .r ` A ) $.
    $( Lemma for ~ cayhamlem3 .  (Contributed by AV, 24-Nov-2019.) $)
    cayhamlem2 $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                           /\ ( H e. ( K ^m NN0 ) /\ L e. NN0 ) )
                         -> ( ( H ` L ) .* ( L .^ M ) )
                            = ( ( L .^ M ) .x. ( ( H ` L ) .* .1. ) ) ) $=
      ( wcel cfn ccrg w3a cn0 cmap co wa cfv cascl csca elmapi ffvelrnda adantl
      cbs wceq matsca2 3adant3 fveq2d syl5req eleq2d adantr mpbird eqid asclval
      syl eqcomd oveq2d casa matassa cmgp cmnd crg crngring anim2i matring 3syl
      wb ringmgp simprr simpl3 mgpbas mulgnn0cl syl3anc asclmul2 eqtr2d ) LUATZ
      CUBTZKBTZUCZGIUDUEUFTZJUDTZUGZUGZJKFUFZJGUHZEHUFZDUFWNWOAUIUHZUHZDUFZWOWN
      HUFZWMWPWRWNDWMWRWPWMWOAUJUHZUNUHZTZWRWPUOWMXCWOITZWLXDWIWJUDIJGGIUDUKULU
      MWIXCXDVQWLWIXBIWOWIICUNUHXBMWICXAUNWFWGCXAUOWHACLUBNUPUQURUSUTVAVBZWQHEX
      AXBAWOWQVCZXAVCZXBVCZQPVDVEVFVGWMAVHTZXCWNBTZWSWTUOWIXIWLWFWGXIWHACLNVIUQ
      VAXEWMAVJUHZVKTZWKWHXJWIXLWLWIWFCVLTZUGZAVLTXLWFWGXNWHWGXMWFCVMVNUQACLNVO
      AXKXKVCZVRVPVAWIWJWKVSWFWGWHWLVTBFXKJKBAXKXOOWARWBWCWQWOHDXAXBBAWNXFXGXHO
      SQWDWCWE $.
  $}

  ${
    $d A l n $.  $d B l n $.  $d G l n $.  $d K l n $.  $d M l n $.
    $d N l n $.  $d R l n $.  $d U l n $.  $d Y n $.  $d .1. l n $.
    $d .* l n $.  $d b l n $.  $d l n s $.
    chcoeffeq.a $e |- A = ( N Mat R ) $.
    chcoeffeq.b $e |- B = ( Base ` A ) $.
    chcoeffeq.p $e |- P = ( Poly1 ` R ) $.
    chcoeffeq.y $e |- Y = ( N Mat P ) $.
    chcoeffeq.r $e |- .X. = ( .r ` Y ) $.
    chcoeffeq.s $e |- .- = ( -g ` Y ) $.
    chcoeffeq.0 $e |- .0. = ( 0g ` Y ) $.
    chcoeffeq.t $e |- T = ( N matToPolyMat R ) $.
    chcoeffeq.c $e |- C = ( N CharPlyMat R ) $.
    chcoeffeq.k $e |- K = ( C ` M ) $.
    chcoeffeq.g $e |- G = ( n e. NN0
          |-> if ( n = 0 , ( .0. .- ( ( T ` M ) .X. ( T ` ( b ` 0 ) ) ) ) ,
                   if ( n = ( s + 1 ) , ( T ` ( b ` s ) ) ,
                        if ( ( s + 1 ) < n , .0. ,
                          ( ( T ` ( b ` ( n - 1 ) ) )
                            .- ( ( T ` M ) .X. ( T ` ( b ` n ) ) ) ) ) ) ) ) $.
    chcoeffeq.w $e |- W = ( Base ` Y ) $.
    chcoeffeq.1 $e |- .1. = ( 1r ` A ) $.
    chcoeffeq.m $e |- .* = ( .s ` A ) $.
    chcoeffeq.u $e |- U = ( N cPolyMatToMat R ) $.
    $( Lemma for ~ chcoeffeq .  (Contributed by AV, 21-Nov-2019.)  (Proof
       shortened by AV, 7-Dec-2019.)  (Revised by AV, 15-Dec-2019.) $)
    chcoeffeqlem $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                             /\ ( s e. NN /\ b e. ( B ^m ( 0 ... s ) ) ) )
      -> ( ( ( Poly1 ` A ) gsum ( n e. NN0
             |-> ( ( U ` ( G ` n ) ) ( .s ` ( Poly1 ` A ) )
                   ( n ( .g ` ( mulGrp ` ( Poly1 ` A ) ) ) ( var1 ` A ) ) ) ) )
           = ( ( Poly1 ` A ) gsum ( n e. NN0
               |-> ( ( ( ( coe1 ` K ) ` n ) .* .1. ) ( .s ` ( Poly1 ` A ) )
                   ( n ( .g ` ( mulGrp ` ( Poly1 ` A ) ) ) ( var1 ` A ) ) ) ) )
                         -> A. n
                            e. NN0
                                 ( U ` ( G ` n ) )
                               = ( ( ( coe1 ` K ) ` n ) .* .1. ) ) ) $=
      ( vl cfn wcel ccrg w3a cv cn cc0 cfz co cmap wa cpl1 cfv cn0 cv1 cmgp cmg
      cvsca cmpt cgsu cco1 wceq wral c0g eqid crg matring sylan2 3adant3 adantr
      crngring ccom cur ccpmat cmadu cpmadumatpolylem1 anasss wf chfacfisfcpmat
      fvco3 eqcomd sylan elmapi adantl ffvelrnda eqeltrd ralrimiva mpdan cfsupp
      syl3anl2 anim2i cpm2mf syl syl2anc wbr cpmadumatpolylem2 eqbrtrrd simpll1
      fcompt cbs 3ad2ant2 ad2antrr chpmatply1 syl5eqel adantlr ringidcl matvscl
      coe1fvalcl syl22anc cvv csca nn0ex a1i clmod matlmod eqidd matsca2 fveq2d
      fvexd fveq2 oveq12d cbvmptv oveq2i eqeltrrd syl6eqr eleqtrrd mptcoe1fsupp
      mptscmfsupp0 oveq1 oveq1d gsumply1eq biimpa eqeq12d cbvralv sylibr ex ) P
      URUSZEUTUSZNBUSZVAZTVBZVCUSZUAVBBVDUURVEVFVGVFUSZVHZVHZAVIVJZJVKJVBZKVJZH
      VJZUVDAVLVJZUVCVMVJVNVJZVFZUVCVOVJZVFZVPZVQVFZUVCJVKUVDMVRVJZVJZILVFZUVIU
      VJVFZVPZVQVFZVSZUVFUVPVSZJVKVTZUVBUVTVHUQVBZKVJZHVJZUWCUVNVJZILVFZVSZUQVK
      VTZUWBUVBUVTUWIUVBUWEUWGUVCUVSAUQUVHUVJBUVMUVGAWAVJZUVCWBZUVGWBZUVHWBZUUQ
      AWCUSZUVAUUNUUOUWNUUPUUOUUNEWCUSZUWNEWHZAEPUBWDWEWFZWGUCUVJWBZUWJWBZUVBHK
      WIZBVKVGVFUSZUWEBUSZUQVKVTUUQUUSUUTUXAABEVLVJZRWJVJZRVOVJZVFNFVJOVFZDUVCE
      PEWKVFZFUXEGHUXDJUVHKUVJPDWLVFZNOPQUVGRSUXCTUAUBUCUDUEUIUFUGUHULUXGWBZUXE
      WBZUXDWBZUXCWBZUXFWBZUXHWBZUMUWKUWLUWRUWMUPWMWNUVBUXAVHZUXBUQVKUXOUWCVKUS
      ZVHUWEUWCUWTVJZBUXOVKUXGKWOZUXPUWEUXQVSUVBUXRUXAUUOUUNUWOUUPUVAUXRUWPABDE
      UXGFGJKNOPRSTUAUBUCUDUEUFUGUHUIULUXIWPXGZWGUXRUXPVHUXQUWEVKUXGUWCHKWQWRWS
      UXOVKBUWCUWTUXAVKBUWTWOUVBUWTBVKWTXAXBXCXDXEUVBUWTUQVKUWEVPZUWJXFUVBUXGBH
      WOZUXRUWTUXTVSUVBUUNUWOVHZUYAUUQUYBUVAUUNUUOUYBUUPUUOUWOUUNUWPXHWFWGAEUXG
      HBPUBUCUXIUPXIXJUXSUQHKVKUXGBXPXKUUQUUSUUTUWTUWJXFXLABUXFDUVCEUXGFUXEGHUX
      DJUVHKUVJUXHNOPQUVGRSUXCTUAUBUCUDUEUIUFUGUHULUXIUXJUXKUXLUXMUXNUMUWKUWLUW
      RUWMUPXMWNXNUVBUWGBUSZUQVKUVBUXPVHZUUNUWOUWFEXQVJZUSZIBUSZUYCUUNUUOUUPUVA
      UXPXOUUQUWOUVAUXPUUOUUNUWOUUPUWPXRZXSUUQUXPUYFUVAUUQMDXQVJZUSUXPUYFUUQMNC
      VJUYIUKABCDEUYINPUJUBUCUDUYIWBZXTYAZUVNUYIDEMUYEUWCUVNWBUYJUDUYEWBZYEWSYB
      UUQUYGUVAUXPUUQUWNUYGUWQBAIUCUNYCXJXSZABUWFELUYEPIUYLUBUCUOYDYFXDUVBYGVKA
      AYHVJZUWFUQLBYGIUWJUYNWAVJZVKYGUSUVBYIYJUUQAYKUSZUVAUUNUUOUYPUUPUUOUUNUWO
      UYPUWPAEPUBYLWEWFWGUVBUYNYMUCUYDUWCUVNYPUYMUWSUYOWBZUOUUQUQVKUWFVPUYOXFXL
      ZUVAUUQUYNWCUSMUYNVIVJZXQVJZUSUYRUUQEUYNWCUUNUUOEUYNVSUUPAEPUTUBYNWFZUYHU
      UAUUQMUYIUYTUYKUUQUYSDXQUUQUYSEVIVJDUUQUYNEVIUUQEUYNVUAWRYOUDUUBYOUUCUYTU
      YSUYNUQMUYOUYSWBUYTWBUYQUUDXKWGUUEUVMUVCUQVKUWEUWCUVGUVHVFZUVJVFZVPZVQVFV
      SUVBUVLVUDUVCVQJUQVKUVKVUCUVDUWCVSZUVFUWEUVIVUBUVJVUEUVEUWDHUVDUWCKYQYOZU
      VDUWCUVGUVHUUFZYRYSYTYJUVSUVCUQVKUWGVUBUVJVFZVPZVQVFVSUVBUVRVUIUVCVQJUQVK
      UVQVUHVUEUVPUWGUVIVUBUVJVUEUVOUWFILUVDUWCUVNYQUUGZVUGYRYSYTYJUUHUUIUWAUWH
      JUQVKVUEUVFUWEUVPUWGVUFVUJUUJUUKUULUUM $.

    $d A b s $.  $d B b s $.  $d M b s $.  $d N b s $.  $d P b n s $.
    $d R b s $.  $d T b n s $.  $d W n $.  $d Y b n s $.  $d .0. n $.
    $d .X. n $.  $d .- b n s $.
    $( The coefficients of the characteristic polynomial multiplied with the
       identity matrix represented by (transformed) ring elements obtained from
       the adjunct of the characteristic matrix.  (Contributed by AV,
       21-Nov-2019.)  (Proof shortened by AV, 8-Dec-2019.)  (Revised by AV,
       15-Dec-2019.) $)
    chcoeffeq $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                    -> E. s e. NN E. b e. ( B ^m ( 0 ... s ) ) A. n e. NN0
                       ( U ` ( G ` n ) ) = ( ( ( coe1 ` K ) ` n ) .* .1. ) ) $=
      ( cfn wcel ccrg w3a cv1 cfv cur cvsca cmadu cpm2mp cpl1 cn0 cmgp cmg cmpt
      co cv cgsu wceq cc0 cfz cmap wrex cn cco1 wral ccpmat cpmadumatpoly wa wi
      eqid cascl cpmidpmat cpmadurid fveq1i eqtri a1i eqcomd oveq1d eqtrd fveq2
      cchpmat simpr adantr eqeq12d chcoeffeqlem sylbid exp31 com24 syl5 ex mp2d
      impl reximdva mpd ) PUQUREUSURNBURUTZEVAVBZRVCVBZRVDVBZVLNFVBOVLZXPPDVEVL
      ZVBGVLZPEVFVLZVBZAVGVBZJVHJVMZKVBHVBZYBAVAVBZYAVIVBVJVBZVLZYAVDVBZVLVKVNV
      LZVOZUABVPTVMZVQVLVRVLZVSZTVTVSYCYBMWAVBVBILVLZVOJVHWBZUAYKVSZTVTVSABXPDY
      AEPEWCVLZFXOGHXNJYEKXSYGXQNOPQYDRSXMTUAUBUCUDUEUIUFUGUHULYPWGXOWGZXNWGZXM
      WGZXPWGZXQWGZUMYAWGZYDWGZYGWGZYEWGZUPXSWGZWDXLYLYOTVTXLYJVTURZWEYIYNUAYKX
      LUUGUAVMYKURZYIYNWFZXLMXNXOVLZXSVBZYAJVHYMYFYGVLVKVNVLZVOZXRUUJVOZUUGUUHW
      EZUUIWFABCDYAEYGFXODWHVBZXNJYEDVIVBVJVBZUUJXSLMNPIQXMRYDUBUCUDUEYSUUQWGYQ
      YRUUPWGUJUKUUJWGUNUOUIUMUUBUUCUUDUUEUUFWIXLXRNPEWRVLZVBZXNXOVLUUJABUURDEF
      XOGXNXPXQNOPXMRUBUCUURWGUDUEYSUIUGYQYRYTUUAUFWJXLUUSMXNXOXLMUUSMUUSVOXLMN
      CVBUUSUKNCUURUJWKWLWMWNWOWPXLUUOUUNUUMUUIXLUUOUUNUUMUUIWFZWFUUNXTUUKVOZXL
      UUOWEZUUTXRUUJXSWQUVBYIUUMUVAYNUVBYIUUMUVAYNWFUVBYIWEZUUMWEZUVAYHUULVOZYN
      UVDXTYHUUKUULUVCYIUUMUVBYIWSWTUVCUUMWSXAUVCUVEYNWFZUUMUVBUVFYIABCDEFGHIJK
      LMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPXBWTWTXCXDXEXFXGXEXHXIXJXJXK $.

    cayhamlem.e1 $e |- .^ = ( .g ` ( mulGrp ` A ) ) $.
    ${
      cayhamlem.r $e |- .x. = ( .r ` A ) $.
      $( Lemma for ~ cayhamlem4 .  (Contributed by AV, 24-Nov-2019.)  (Revised
         by AV, 15-Dec-2019.) $)
      cayhamlem3 $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                         -> E. s e. NN E. b e. ( B ^m ( 0 ... s ) )
        ( A gsum ( n e. NN0 |-> ( ( ( coe1 ` K ) ` n ) .* ( n .^ M ) ) ) )
        = ( A gsum ( n e. NN0 |-> ( ( n .^ M ) .x. ( U ` ( G ` n ) ) ) ) ) ) $=
        ( vl cfn wcel ccrg w3a cv cfv cco1 wceq cn0 wral cc0 cfz cmap wrex cmpt
        co cn cgsu chcoeffeq wa fveq2 fveq2d oveq1d eqeq12d cbvralv rspccva cbs
        wi simprll wf eqid chpmatply1 syl syl5eqel coe1f cvv fvex pm3.2i elmapg
        nn0ex mpbird simpl cayhamlem2 syl12anc adantl oveq2 adantr eqtr4d exp32
        wb mp1i com12 mpd impl mpteq2dva oveq2d ex syl5bi reximdva ) RVBVCEVDVC
        PBVCVEZKVFZMVGZIVGZYBOVHVGZVGZJNVQZVIZKVJVKZUCBVLUBVFZVMVQVNVQZVOZUBVRV
        OAKVJYFYBPLVQZNVQZVPZVSVQAKVJYMYDGVQZVPZVSVQVIZUCYKVOZUBVRVOABCDEFHIJKM
        NOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURVTYAYLYSUBVRYAYJVRVCZWAZYIYR
        UCYKYIVAVFZMVGZIVGZUUBYEVGZJNVQZVIZVAVJVKZUUAUCVFYKVCZWAZYRYHUUGKVAVJYB
        UUBVIZYDUUDYGUUFUUKYCUUCIYBUUBMWBWCUUKYFUUEJNYBUUBYEWBWDWEWFUUJUUHYRUUJ
        UUHWAZYOYQAVSUULKVJYNYPUUJUUHYBVJVCZYNYPVIZUUHUUMWAZUUJUUNUUOYHUUJUUNWI
        ZUUGYHVAYBVJUUBYBVIZUUDYDUUFYGUUQUUCYCIUUBYBMWBWCUUQUUEYFJNUUBYBYEWBWDW
        EWGUUMYHUUPWIUUHYHUUMUUPYHUUMUUJUUNYHUUMUUJWAZWAYNYMYGGVQZYPUURYNUUSVIZ
        YHUURYAYEEWHVGZVJVNVQVCZUUMUUTUUMYAYTUUIWJZUURUVBVJUVAYEWKZUURODWHVGZVC
        UVDUUROPCVGZUVEUMUURYAUVFUVEVCUVCABCDEUVEPRULUDUEUFUVEWLZWMWNWOYEUVEDEO
        UVAYEWLUVGUFUVAWLZWPWNUVAWQVCZVJWQVCZWAUVBUVDXKUURUVIUVJEWHWRXAWSUVAVJY
        EWQWQWTXLXBUUMUUJXCABEGJLYENUVAYBPRUVHUDUEUPUQUSUTXDXEXFYHYPUUSVIUURYDY
        GYMGXGXHXIXJXMXFXNXMXOXPXQXRXSXTXTXN $.
    $}

    $d A b s w z $.  $d B w z $.  $d G w z $.  $d M w z $.  $d N w z $.
    $d R w z $.  $d U w z $.  $d Y w z $.  $d .^ n w z $.
    cayhamlem.e2 $e |- E = ( .g ` ( mulGrp ` Y ) ) $.
    $( Lemma for ~ cayleyhamilton .  (Contributed by AV, 25-Nov-2019.)
       (Revised by AV, 15-Dec-2019.) $)
    cayhamlem4 $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
                      -> E. s e. NN E. b e. ( B ^m ( 0 ... s ) )
             ( A gsum ( n e. NN0 |-> ( ( ( coe1 ` K ) ` n ) .* ( n .^ M ) ) ) )
             = ( U ` ( Y gsum ( n e. NN0
                       |-> ( ( n E ( T ` M ) ) .X. ( G ` n ) ) ) ) ) ) $=
      ( vz vw cfn wcel ccrg w3a cn0 cv cco1 cfv co cmpt cgsu cmulr wceq cc0 cfz
      cn cmap wa crg simp1 ad2antrr crngring 3ad2ant2 cvv c0g eqid ccmn matring
      id sylan2 ringcmn syl 3adant3 nn0ex syl2anc adantr cmgp ringmgp ad3antrrr
      a1i cmnd simpll3 mgpbas mulgnn0cl syl3anc ccpmat wf cpm2mf chfacfisfcpmat
      simpr simplr syl32anc ffvelrnda ffvelrnd ringcl fmptd fvexd ovexd wbr clt
      cfsupp csb wi wral wrex chfacffsupp anassrs wb ovex pm3.2i fveq2d oveq12d
      eqtrd jca sylan9eqr oveq2d cmhm eqtr3d elmapg mp1i fsuppmapnn0ub csbov12g
      mpbird fvex sylancl csbov1g csbvarg oveq1d csbfv ad2antlr fveq2 m2cpminv0
      csbfv2g ringrz 3eqtrd ex adantlr imim2d ralimdva reximdva mpd mptnn0fsupp
      syld gsumcl m2cpminvid pmatring ringmnd mat2pmatghm ghmmhm gsummptmhm crh
      mat2pmatrhm rhmmul mat2pmatmhm m2cpminvid2 mpteq2dva cayhamlem3 reximddv2
      cghm mhmmulg ) RVCVDZEVEVDZPBVDZVFZAJVGJVHZOVIVJVJUWGPLVKZNVKVLVMVKZAJVGU
      WHUWGMVJZHVJZAVNVJZVKZVLZVMVKZVOZUWITJVGUWGPFVJKVKZUWJGVKZVLZVMVKZHVJZVOU
      BUCVRBVPUBVHZVQVKVSVKZUWPUWFUXBVRVDZVTZUCVHUXCVDZVTZUWIUWOUXAUWPWKUXGUWOF
      VJZHVJZUWOUXAUXGUWCEWAVDZUWOBVDUXIUWOVOUWFUWCUXDUXFUWCUWDUWEWBZWCZUWFUXJU
      XDUXFUWDUWCUXJUWEEWDZWEZWCZUXGVGBUWNAWFAWGVJZUEUXPWHZUWFAWIVDZUXDUXFUWCUW
      DUXRUWEUWCUWDVTAWAVDZUXRUWDUWCUXJUXSUXMAERUDWJZWLAWMWNWOWCZVGWFVDZUXGWPXB
      ZUXGJVGUWMBUWNUXGUWGVGVDZVTZUXSUWHBVDZUWKBVDZUWMBVDZUXGUXSUYDUXGUWCUXJUXS
      UXLUXOUXTWQZWRUYEAWSVJZXCVDZUYDUWEUYFUWFUYKUXDUXFUYDUWFUXSUYKUWFUWCUXJUXS
      UXKUXNUXTWQZAUYJUYJWHZWTWNZXAUXGUYDXLZUXGUWEUYDUWCUWDUWEUXDUXFXDZWRZBLUYJ
      UWGPBAUYJUYMUEXEZUSXFXGZUYEREXHVKZBUWJHUWFUYTBHXIZUXDUXFUYDUWFUWCUXJVUAUX
      KUXNAEUYTHBRUDUEUYTWHZURXJZWQXAUXGVGUYTUWGMUXGUWCUXJUWEUXDUXFVGUYTMXIZUXL
      UXOUYPUWFUXDUXFXMUXEUXFXLABDEUYTFGJMPQRTUAUBUCUDUEUFUGUHUIUJUKUNVUBXKXNZX
      OZXPBAUWLUWHUWKUEUWLWHZXQZXGUWNWHXRUXGVAWFUWMJWFUXPVBUXGAWGXSUYEUWHUWKUWL
      XTUXGMTWGVJZYCYAZVBVHZVAVHZYBYAZJVULUWMYDZUXPVOZYEZVAVGYFZVBVGYGZUWFUXDUX
      FVUJABDEFGJMPQRTUAUBUCUDUEUFUGUHUIUJUKUNYHYIUXGVUJVUMVULMVJZVUIVOZYEZVAVG
      YFZVBVGYGZVURUXGMUYTVGVSVKVDZVUIWFVDVUJVVCYEUXGVVDVUDVUEUYTWFVDZUYBVTVVDV
      UDYJUXGVVEUYBREXHYKWPYLUYTVGMWFWFUUAUUBUUETWGUUFVAUYTVBMWFVUIUUCUUGUXGVVB
      VUQVBVGUXGVUKVGVDZVTZVVAVUPVAVGVVGVULVGVDZVTVUTVUOVUMUXGVVHVUTVUOYEVVFUXG
      VVHVTZVUTVUOVVIVUTVTZVUNVULPLVKZVUSHVJZUWLVKZVVKUXPUWLVKZUXPVVHVUNVVMVOUX
      GVUTVVHVUNJVULUWHYDZJVULUWKYDZUWLVKVVMJVULUWHUWKUWLVGUUDVVHVVOVVKVVPVVLUW
      LVVHVVOJVULUWGYDZPLVKVVKJVULUWGPLVGUUHVVHVVQVULPLJVULVGUUIUUJYOVVHVVPJVUL
      UWJYDZHVJVVLJVULUWJVGHUUOVVHVVRVUSHVVRVUSVOVVHJVULMUUKXBYMYOYNYOUULVVJVVL
      UXPVVKUWLVUTVVIVVLVUIHVJZUXPVUSVUIHUUMUXEVVSUXPVOZUXFVVHUXEUWCUXJVTZVVTUW
      FVWAUXDUWFUWCUXJUXKUXNYPWRATDEHRUXPVUIUDURUFUGUXQVUIWHUUNWNWCYQYRVVJUXSVV
      KBVDZVTZVVNUXPVOVVIVWCVUTVVIUXSVWBUXGUXSVVHUYIWRVVIUYKVVHUWEVWBUWFUYKUXDU
      XFVVHUYNXAUXGVVHXLUXGUWEVVHUYPWRBLUYJVULPUYRUSXFXGYPWRBAUWLVVKUXPUEVUGUXQ
      UUPWNUUQUURUUSUUTUVAUVBUVEUVCUVDZUVFAEFHBUWORURUDUEUKUVGXGUXGUXHUWTHUXGTJ
      VGUWMFVJZVLZVMVKUXHUWTUXGJVGBUWMATFWFUXPUEUXQUYAUWFTXCVDZUXDUXFUWFTWAVDZV
      WGUWFUWCUXJVWHUXKUXNTDERUFUGUVHWQTUVIWNWCUYCUXGFATUWAVKVDZFATYSVKVDUXGUWC
      UXJVWIUXLUXOABTDEFSRUKUDUEUFUGUOUVJWQATFUVKWNUYEUXSUYFUYGUYHUWFUXSUXDUXFU
      YDUYLXAUYSUYEUYTBUWJHUWFVUAUXDUXFUYDUWCUWDVUAUWEUWDUWCUXJVUAUXMVUCWLWOXAV
      UFXPZVUHXGVWDUVLUXGVWFUWSTVMUXGJVGVWEUWRUYEVWEUWHFVJZUWKFVJZGVKZUWRUYEFAT
      UVMVKVDZUYFUYGVWEVWMVOUWFVWNUXDUXFUYDUWCUWDVWNUWEABTDEFSRUKUDUEUFUGUOUVNW
      OXAUYSVWJUWHUWKATUWLGFBUEVUGUHUVOXGUYEVWKUWQVWLUWJGUYEFUYJTWSVJZYSVKVDZUY
      DUWEVWKUWQVOUWFVWPUXDUXFUYDUWCUWDVWPUWEABTDEFSRUKUDUEUFUGUOUVPWOXAUYOUYQB
      LKFUYJVWOUWGPUYRUSUTUWBXGUYEUWCUXJUWJUYTVDVWLUWJVOUWFUWCUXDUXFUYDUXKXAUWF
      UXJUXDUXFUYDUXNXAVUFEUYTFHUWJRVUBURUKUVQXGYNYOUVRYRYTYMYTYQABCDEFUWLGHIJL
      MNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSVUGUVSUVT $.
  $}

  ${
    $d A b n s $.  $d B b l n s $.  $d C n $.  $d E l n $.  $d G l n $.
    $d K b s $.  $d M b l n s $.  $d N b l n s $.  $d P b n s $.
    $d R b l n s $.  $d T b l n s $.  $d U n $.  $d W n $.  $d Y b l n s $.
    $d Z n $.  $d .* b n s $.  $d .- b l n s $.  $d .0. b s $.  $d .1. n $.
    $d .X. l n $.  $d .^ b n s $.
    cayleyhamilton0.a $e |- A = ( N Mat R ) $.
    cayleyhamilton0.b $e |- B = ( Base ` A ) $.
    cayleyhamilton0.0 $e |- .0. = ( 0g ` A ) $.
    cayleyhamilton0.1 $e |- .1. = ( 1r ` A ) $.
    cayleyhamilton0.m $e |- .* = ( .s ` A ) $.
    cayleyhamilton0.e1 $e |- .^ = ( .g ` ( mulGrp ` A ) ) $.
    cayleyhamilton0.c $e |- C = ( N CharPlyMat R ) $.
    cayleyhamilton0.k $e |- K = ( coe1 ` ( C ` M ) ) $.
    cayleyhamilton0.p $e |- P = ( Poly1 ` R ) $.
    cayleyhamilton0.y $e |- Y = ( N Mat P ) $.
    cayleyhamilton0.r $e |- .X. = ( .r ` Y ) $.
    cayleyhamilton0.s $e |- .- = ( -g ` Y ) $.
    cayleyhamilton0.z $e |- Z = ( 0g ` Y ) $.
    cayleyhamilton0.w $e |- W = ( Base ` Y ) $.
    cayleyhamilton0.e2 $e |- E = ( .g ` ( mulGrp ` Y ) ) $.
    cayleyhamilton0.t $e |- T = ( N matToPolyMat R ) $.
    cayleyhamilton0.g $e |- G = ( n e. NN0
          |-> if ( n = 0 , ( Z .- ( ( T ` M ) .X. ( T ` ( b ` 0 ) ) ) ) ,
                   if ( n = ( s + 1 ) , ( T ` ( b ` s ) ) ,
                        if ( ( s + 1 ) < n , Z ,
                          ( ( T ` ( b ` ( n - 1 ) ) )
                            .- ( ( T ` M ) .X. ( T ` ( b ` n ) ) ) ) ) ) ) ) $.
    cayleyhamilton0.u $e |- U = ( N cPolyMatToMat R ) $.
    $( The Cayley-Hamilton theorem:  A matrix over a commutative ring
       "satisfies its own characteristic equation".  This version of
       ~ cayleyhamilton provides definitions not used in the theorem itself,
       but in its proof to make it clearer, more readable and shorter compared
       with a proof without them (see ~ cayleyhamiltonALT )!  (Contributed by
       AV, 25-Nov-2019.)  (Revised by AV, 15-Dec-2019.) $)
    cayleyhamilton0 $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
          -> ( A gsum ( n e. NN0 |-> ( ( K ` n ) .* ( n .^ M ) ) ) ) = .0. ) $=
      ( vl cfn wcel ccrg w3a cn0 cv cfv cco1 co cmpt cgsu wceq cc0 cmap wrex cn
      cfz cayhamlem4 wa eqcomi a1i fveq1d oveq1d mpteq2dva oveq2d eqeq1d biimpa
      eqid oveq1 fveq2 oveq12d cbvmptv oveq2i cayhamlem1 syl5eq crngring anim2i
      c0g crg 3adant3 m2cpminv0 syl6eqr adantr sylan9eqr mpdan eqtrd rexlimdvva
      syl ex mpd ) RVDVEZEVFVEZPBVEZVGZAJVHJVIZPCVJZVKVJZVJZXRPLVLZNVLZVMZVNVLZ
      TJVHXRPFVJZKVLZXRMVJZGVLZVMZVNVLZHVJZVOZUDBVPUCVIZVTVLVQVLZVRUCVSVRAJVHXR
      OVJZYBNVLZVMZVNVLZUAVOZABCDEFGHIJKLMNXSPQRSTUBUCUDUEUFUMUNUOUPUQUTUKXSWKV
      AURUHUIVBUJUSWAXQYMYTUCUDVSYOXQYNVSVEUDVIYOVEWBZWBZYMYTUUBYMWBYSYLUAUUBYM
      YSYLVOUUBYEYSYLUUBYDYRAVNUUBJVHYCYQUUBXRVHVEWBZYAYPYBNUUCXRXTOXTOVOUUCOXT
      ULWCWDWEWFWGWHWIWJUUBYLUAVOZYMUUBYKUBVOZUUDUUBYKTVCVHVCVIZYFKVLZUUFMVJZGV
      LZVMZVNVLUBYJUUJTVNJVCVHYIUUIXRUUFVOYGUUGYHUUHGXRUUFYFKWLXRUUFMWMWNWOWPAB
      DEFGVCJKMPQRTUBUCUDUEUFUMUNUOUPUQUTVAUSWQWRUUEUUBYLUBHVJZUAYKUBHWMXQUUKUA
      VOUUAXQUUKAXAVJZUAXQXNEXBVEZWBZUUKUULVOXNXOUUNXPXOUUMXNEWSWTXCATDEHRUULUB
      UEVBUMUNUULWKUQXDXKUGXEXFXGXHXFXIXLXJXM $.
  $}

  ${
    $d A b m n s x y $.  $d B b m n s x y $.  $d C n $.  $d K b s x y $.
    $d M b m n s x y $.  $d M b l n s x y $.  $d N b m n s x y $.  $d N l $.
    $d R b m n s x y $.  $d R l $.  $d .0. b s x y $.  $d .* m n s x y $.
    $d .* b $.  $d .^ b m n s x y $.
    cayleyhamilton.a $e |- A = ( N Mat R ) $.
    cayleyhamilton.b $e |- B = ( Base ` A ) $.
    cayleyhamilton.0 $e |- .0. = ( 0g ` A ) $.
    cayleyhamilton.c $e |- C = ( N CharPlyMat R ) $.
    cayleyhamilton.k $e |- K = ( coe1 ` ( C ` M ) ) $.
    cayleyhamilton.m $e |- .* = ( .s ` A ) $.
    cayleyhamilton.e $e |- .^ = ( .g ` ( mulGrp ` A ) ) $.
    $( The Cayley-Hamilton theorem:  A matrix over a commutative ring
       "satisfies its own characteristic equation", see theorem 7.8 in [Roman]
       p. 170 (without proof!), or theorem 3.1 in [Lang] p. 561.  In other
       words, a matrix over a commutative ring "inserted" into its
       characteristic polynomial results in zero.  This is Metamath 100 proof
       #49.  (Contributed by Alexander van der Vekens, 25-Nov-2019.) $)
    cayleyhamilton $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
          -> ( A gsum ( n e. NN0 |-> ( ( K ` n ) .* ( n .^ M ) ) ) ) = .0. ) $=
      ( cfv co vl vy vx cpl1 cmat2pmat cmat cmulr ccpmat2mat cur cmg cn0 cv cc0
      cmgp wceq c0g csg caddc clt wbr cmin cif cmpt cbs eqid eqeq1 breq2 fveq2d
      c1 oveq1 fveq2 oveq2d oveq12d ifbieq2d cbvmptv cayleyhamilton0 ) ABCDUDSZ
      DJDUETZJVQUFTZUGSZJDUHTZAUISZEVSUNSUJSZFUAUKUAULZUMUOZVSUPSZIVRSZUMUBULZS
      VRSVTTVSUQSZTZWDUCULZVIURTZUOZWKWHSVRSZWLWDUSUTZWFWDVIVATZWHSZVRSZWGWDWHS
      ZVRSZVTTZWITZVBZVBZVBZVCGHIWIJVSVDSZVSKWFUCUBLMNWBVEQROPVQVEVSVEVTVEWIVEW
      FVEXFVEWCVEVRVEUAEUKXEEULZUMUOZWJXGWLUOZWNWLXGUSUTZWFXGVIVATZWHSZVRSZWGXG
      WHSZVRSZVTTZWITZVBZVBZVBWDXGUOZWEXHXDXSWJWDXGUMVFXTWMXIXCXRWNWDXGWLVFXTWO
      XJXBXQWFWDXGWLUSVGXTWRXMXAXPWIXTWQXLVRXTWPXKWHWDXGVIVAVJVHVHXTWTXOWGVTXTW
      SXNVRWDXGWHVKVHVLVMVNVNVNVOWAVEVP $.

    ${
      $d B j $.  $d M j $.  $d N j $.  $d R j $.  $d b j l n s $.
      $( Alternate proof of ~ cayleyhamilton , the Cayley-Hamilton theorem.
         This proof does not use ~ cayleyhamilton0 directly, but has the same
         structure as the proof of ~ cayleyhamilton0 .  In contrast to the
         proof of ~ cayleyhamilton0 , only the definitions required to
         formulate the theorem itself are used, causing the definitions used in
         the lemmas being expanded, which makes the proof longer and more
         difficult to read.  (Contributed by AV, 25-Nov-2019.)
         (New usage is discouraged.)  (Proof modification is discouraged.) $)
      cayleyhamiltonALT $p |- ( ( N e. Fin /\ R e. CRing /\ M e. B )
          -> ( A gsum ( n e. NN0 |-> ( ( K ` n ) .* ( n .^ M ) ) ) ) = .0. ) $=
        ( cfv co vl vb vs vm vx vy vj cfn wcel ccrg w3a cn0 cco1 cmpt cgsu cpl1
        cv cmat cmat2pmat cmgp cmg cc0 wceq c0g cmulr csg c1 caddc clt wbr cmin
        cif ccpmat cmpt2 cfz cmap wrex cn ccpmat2mat cur eqid eqeq1 breq2 oveq1
        cbs fveq2d fveq2 oveq2d oveq12d ifbieq2d cayhamlem4 wa cpm2mfval eqcomd
        cbvmptv 3adant3 fveq1d eqeq2d mpbird eqcomi a1i oveq1d mpteq2dva eqeq1d
        2rexbidv biimpa oveq2i cayhamlem1 crg crngring anim2i m2cpminv0 syl6eqr
        eqtrd syl adantr sylan9eqr mpdan ex rexlimdvva mpd ) JUHUIZDUJUIZIBUIZU
        KZAEULEUQZICSZUMSZSZYFIFTZGTZUNZUOTZJDUPSZURTZEULYFIJDUSTZSZYOUTSVASZTZ
        YFUAULUAUQZVBVCZYOVDSZYQVBUBUQZSYPSYOVESZTYOVFSZTZYTUCUQZVGVHTZVCZUUGUU
        CSYPSZUUHYTVIVJZUUBYTVGVKTZUUCSZYPSZYQYTUUCSZYPSZUUDTZUUETZVLZVLZVLZUNZ
        SZUUDTZUNZUOTZUDJDVMTZUEUFJJVBUEUQUFUQUDUQTUMSSVNUNZSZVCZUBBVBUUGVOTVPT
        ZVQUCVRVQZAEULYFHSZYJGTZUNZUOTZKVCZYEUVLYMUVFJDVSTZSZVCZUBUVKVQUCVRVQAB
        CYNDYPUUDUVRAVTSZEYRFUVBGYGIUUEJYOWESZYOUUBUCUBLMYNWAZYOWAZUUDWAZUUEWAZ
        UUBWAZYPWAZOYGWAUAEULUVAYFVBVCZUUFYFUUHVCZUUJUUHYFVIVJZUUBYFVGVKTZUUCSZ
        YPSZYQYFUUCSZYPSZUUDTZUUETZVLZVLZVLYTYFVCZUUAUWIUUTUWTUUFYTYFVBWBUXAUUI
        UWJUUSUWSUUJYTYFUUHWBUXAUUKUWKUURUWRUUBYTYFUUHVIWCUXAUUNUWNUUQUWQUUEUXA
        UUMUWMYPUXAUULUWLUUCYTYFVGVKWDWFWFUXAUUPUWPYQUUDUXAUUOUWOYPYTYFUUCWGWFW
        HWIWJWJWJWOZUWBWAUWAWAQUVRWAZRYRWAZWKYEUVJUVTUCUBVRUVKYEUVIUVSYMYEUVFUV
        HUVRYBYCUVHUVRVCYDYBYCWLUVRUVHUEUFDUVGUDUVRJUJUXCUVGWAZWMWNWPWQWRXEWSYE
        UVJUVQUCUBVRUVKYEUUGVRUIUUCUVKUIWLZWLZUVJUVQUXGUVJWLUVPUVIKUXGUVJUVPUVI
        VCUXGYMUVPUVIUXGYLUVOAUOUXGEULYKUVNUXGYFULUIWLZYIUVMYJGUXHYFYHHYHHVCUXH
        HYHPWTXAWQXBXCWHXDXFUXGUVIKVCZUVJUXGUVFUUBVCZUXIUXGUVFYOUGULUGUQZYQYRTZ
        UXKUVBSZUUDTZUNZUOTZUUBUVFUXPVCUXGUVEUXOYOUOEUGULUVDUXNYFUXKVCYSUXLUVCU
        XMUUDYFUXKYQYRWDYFUXKUVBWGWIWOXGXAABYNDYPUUDUGEYRUVBIUUEJYOUUBUCUBLMUWC
        UWDUWEUWFUWGUWHUXBUXDXHXNUXJUXGUVIUUBUVHSZKUVFUUBUVHWGYEUXQKVCUXFYEUXQA
        VDSZKYEYBDXIUIZWLZUXQUXRVCYBYCUXTYDYCUXSYBDXJXKWPUXTUXQUUBUVRSUXRUXTUUB
        UVHUVRUXTUVRUVHUEUFDUVGUDUVRJXIUXCUXEWMWNWQAYOYNDUVRJUXRUUBLUXCUWCUWDUX
        RWAUWGXLXNXONXMXPXQXRXPXNXSXTYA $.
    $}

    $d B i $.  $d C m n $.  $d E i m n $.  $d F i m n $.  $d K m $.
    $d L i n $.  $d M i $.  $d N i $.  $d P i m n $.  $d R i $.  $d X i m n $.
    $d Z i n $.  $d .x. i m n $.
    cayleyhamilton1.l $e |- L = ( Base ` R ) $.
    cayleyhamilton1.x $e |- X = ( var1 ` R ) $.
    cayleyhamilton1.p $e |- P = ( Poly1 ` R ) $.
    cayleyhamilton1.m $e |- .x. = ( .s ` P ) $.
    cayleyhamilton1.e $e |- E = ( .g ` ( mulGrp ` P ) ) $.
    cayleyhamilton1.z $e |- Z = ( 0g ` R ) $.
    $( The Cayley-Hamilton theorem:  A matrix over a commutative ring
       "satisfies its own characteristic equation", or, in other words, a
       matrix over a commutative ring "inserted" into its characteristic
       polynomial results in zero.  In this variant of ~ cayleyhamilton , the
       meaning of "inserted" is made more transparent:  If the characteristic
       polynomial is a polynomial with coefficients ` ( F `` n ) ` , then a
       matrix over a commutative ring "inserted" into its characteristic
       polynomial is the sum of these coefficients multiplied with the
       corresponding power of the matrix.  (Contributed by AV, 25-Nov-2019.) $)
    cayleyhamilton1 $p |- ( ( ( N e. Fin /\ R e. CRing /\ M e. B )
                              /\ ( F e. ( L ^m NN0 ) /\ F finSupp Z ) )
     -> ( ( C ` M ) = ( P gsum ( n e. NN0 |-> ( ( F ` n ) .x. ( n E X ) ) ) )
        -> ( A gsum ( n e. NN0 |-> ( ( F ` n ) .* ( n .^ M ) ) ) ) = .0. ) ) $=
      ( vm vi cfn wcel ccrg w3a cn0 cmap co cfsupp wbr wa cfv cv cmpt cgsu wceq
      cayleyhamilton adantr wi nfv nfcv nfmpt1 nfov nfeq2 nfan cco1 wral crg wb
      cbs crngring 3ad2ant2 eqid chpmatply1 c0g wf elmapi ffvelrn ralrimiva syl
      ad2antrl feqmptd breq12d biimpa adantl gsumsmonply1 fveq2 oveq12d cbvmptv
      a1i oveq1 oveq2i fveq2i ply1coe1eq syl3anc eqeq12d rspcva csb gsummoncoe1
      simpl breq1d csbfv syl6eq eqtrd exp32 mpd expcomd sylbird oveq1d mpteq2da
      com12 imp31 oveq2d eqeq1d biimpd ex mpid ) OUNUOZEUPUOZNBUOZUQZJMURUSUTUO
      ZJRVAVBZVCZVCZNCVDZDGURGVEZJVDZYSPHUTZFUTZVFZVGUTZVHZAGURYSLVDZYSNIUTZKUT
      ZVFZVGUTZQVHZAGURYTUUGKUTZVFZVGUTZQVHZYMUUKYPABCEGIKLNOQSTUAUBUCUDUEVIVJY
      QUUEUUKUUOVKYQUUEVCZUUKUUOUUPUUJUUNQUUPUUIUUMAVGUUPGURUUHUULYQUUEGYQGVLGY
      RUUDGDUUCVGGDVMGVGVMGURUUBVNVOVPVQUUPYSURUOZVCUUFYTUUGKYQUUEUUQUUFYTVHZYQ
      UUEULVEZLVDZUUSDUMURUMVEZJVDZUVAPHUTZFUTZVFZVGUTZVRVDZVDZVHZULURVSZUUQUUR
      VKYQEVTUOZYRDWBVDZUOZUUDUVLUOUVJUUEWAYMUVKYPYKYJUVKYLEWCWDZVJZYMUVMYPABCD
      EUVLNOUBSTUHUVLWEZWFVJYQYTUVLDEGHFMPEWGVDZUHUVPUGUJUVOUFUIUVQWEYNYTMUOZGU
      RVSZYMYOYNURMJWHZUVSJMURWIZUVTUVRGURURMYSJWJWKWLWMYPGURYTVFZUVQVAVBZYMYNY
      OUWCYNJUWBRUVQVAYNGURMJUWAWNRUVQVHYNUKXBWOWPWQWRLUVLUVGDEULYRUUDUHUVPUCUV
      FUUDVRUVEUUCDVGUMGURUVDUUBUVAYSVHUVBYTUVCUUAFUVAYSJWSUVAYSPHXCWTXAXDXEXFX
      GYQUUQUVJUURUUQUVJVCZYQUURUWDUUFYSUVGVDZVHZYQUURVKZUVIUWFULYSURUUSYSVHUUT
      UUFUVHUWEUUSYSLWSUUSYSUVGWSXHXIUUQUWFUWGVKUVJUWFUUQUWGUWFUUQYQUURUWFUUQYQ
      VCZVCUUFUWEYTUWFUWHXLUWHUWEYTVHUWFUWHUWEUMYSUVBXJYTUWHUVBUVLDEUMHFMYSPRUH
      UVPUGUJYMUVKUUQYPUVNWMUFUIUKYQUVBMUOZUMURVSZUUQYNUWJYMYOYNUVTUWJUWAUVTUWI
      UMURURMUVAJWJWKWLWMWQYQUMURUVBVFZRVAVBZUUQYPUWLYMYNYOUWLYNJUWKRVAYNUMURMJ
      UWAWNXMWPWQWQUUQYQXLXKUMYSJXNXOWQXPXQYCVJXRYCXSXTYDYAYBYEYFYGYHYI $.
  $}


$(
###############################################################################
  BASIC TOPOLOGY
###############################################################################
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Topology
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Topological spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  A topology on a set is a set of subsets of that set, called open sets, which
  satisfy certain conditions.  One condition is that the whole set be an open
  set.  Therefore, a set is recoverable from a topology on it (as its union,
  see ~ toponuni ), and it may sometimes be more convenient to consider
  topologies without reference to the underlying set.  This is why we define
  successively the class of topologies ( ~ df-top ), then the function which
  associates with a set the set of topologies on it ( ~ df-topon ), and finally
  the class of topological spaces, as extensible structures having an
  underlying set and a topology on it ( ~ df-topsp ).  Of course, a topology is
  the same thing as a topology on a set (see ~ toprntopon ).

$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Topologies
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Token for the class of topologies. $)
  $c Top $.

  $( Syntax for the class of topologies. $)
  ctop $a class Top $.

  ${
    $d b j x y z $.
    $( Define the class of topologies.  It is a proper class (see ~ topnex ).
       See ~ istopg and ~ istop2g for the corresponding characterizations,
       using respectively binary intersections like in this definition and
       nonempty finite intersections.

       The final form of the definition is due to Bourbaki (Def. 1 of
       [BourbakiTop1] p.  I.1), while the idea of defining a topology in terms
       of its open sets is due to Aleksandrov.  For the convoluted history of
       the definitions of these notions, see

       Gregory H. Moore, _The emergence of open sets, closed sets, and limit
       points in analysis and topology_, Historia Mathematica 35 (2008)
       220--241.

       (Contributed by NM, 3-Mar-2006.)  (Revised by BJ, 20-Oct-2018.) $)
    df-top $a |- Top = { x | ( A. y e. ~P x U. y e. x /\
                             A. y e. x A. z e. x ( y i^i z ) e. x ) } $.
  $}

  ${
    $d x y z J $.  $d x A $.
    $( Express the predicate " ` J ` is a topology."  See ~ istop2g for another
       characterization using nonempty finite intersections instead of binary
       intersections.

       Note:  In the literature, a topology is often represented by a
       calligraphic letter T, which resembles the letter J. This confusion may
       have led to J being used by some authors (e.g., K. D. Joshi,
       _Introduction to General Topology_ (1983), p. 114) and it is convenient
       for us since we later use ` T ` to represent linear transformations
       (operators).  (Contributed by Stefan Allan, 3-Mar-2006.)  (Revised by
       Mario Carneiro, 11-Nov-2013.) $)
    istopg $p |- ( J e. A -> ( J e. Top <-> ( A. x ( x C_ J -> U. x e. J )
                  /\ A. x e. J A. y e. J ( x i^i y ) e. J ) ) ) $=
      ( vz wcel ctop cv cuni cpw wral cin wa wss wal wceq pweq eleq2 raleqbi1dv
      wi anbi12d df-top elab2g df-ral elpw2g imbi1d albidv syl5bb anbi1d bitrd
      raleqbidv ) DCFZDGFAHZIZDFZADJZKZUMBHLZDFZBDKZADKZMZUMDNZUOTZAOZVAMUNEHZF
      ZAVFJZKZURVFFZBVFKZAVFKZMVBEDGCVFDPZVIUQVLVAVMVGUOAVHUPVFDQVFDUNRUKVKUTAV
      FDVJUSBVFDVFDURRSSUAEABUBUCULUQVEVAUQUMUPFZUOTZAOULVEUOAUPUDULVOVDAULVNVC
      UOUMDCUEUFUGUHUIUJ $.

    $( Express the predicate " ` J ` is a topology," using nonempty finite
       intersections instead of binary intersections as in ~ istopg .
       (Contributed by NM, 19-Jul-2006.) $)
    istop2g $p |- ( J e. A -> ( J e. Top <-> ( A. x ( x C_ J -> U. x e. J )
         /\ A. x ( ( x C_ J /\ x =/= (/) /\ x e. Fin ) -> |^| x e. J ) ) ) ) $=
      ( vy wcel ctop cv wss cuni wi wal cin wral wa c0 wne cfn w3a cint istopg
      fiint anbi2i syl6bb ) CBECFEAGZCHZUDICEJAKZUDDGLCEDCMACMZNUFUEUDOPUDQERUD
      SCEJAKZNADBCTUGUHUFADCUAUBUC $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y J $.
    $( The union of a subset of a topology (that is, the union of any family of
       open sets of a topology) is an open set.  (Contributed by Stefan Allan,
       27-Feb-2006.) $)
    uniopn $p |- ( ( J e. Top /\ A C_ J ) -> U. A e. J ) $=
      ( vx vy ctop wcel wss cuni cv wi wal cin wral wa istopg ibi simpld elpw2g
      cpw biimpar wceq sseq1 unieq eleq1d imbi12d spcgv syl ex pm2.43d mpid imp
      com23 ) BEFZABGZAHZBFZUMUNCIZBGZUQHZBFZJZCKZUPUMVBUQDILBFDBMCBMZUMVBVCNCD
      EBOPQUMUNVBUPJZUMUNUNVDJUMUNNZVBUNUPVEABSZFZVBUNUPJZJUMVGUNABERTVAVHCAVFU
      QAUAZURUNUTUPUQABUBVIUSUOBUQAUCUDUEUFUGULUHUIUJUK $.

    $( The indexed union of a subset of a topology is an open set.
       (Contributed by NM, 5-Oct-2006.) $)
    iunopn $p |- ( ( J e. Top /\ A. x e. A B e. J ) -> U_ x e. A B e. J ) $=
      ( vy ctop wcel wral wa ciun cv wceq wrex cab dfiun2g adantl wss uniiunlem
      cuni ibi uniopn sylan2 eqeltrd ) DFGZCDGABHZIABCJZEKCLABMENZSZDUEUFUHLUDA
      EBCDOPUEUDUGDQZUHDGUEUIAEBCDDRTUGDUAUBUC $.

    $( The intersection of two open sets of a topology is an open set.
       (Contributed by NM, 17-Jul-2006.) $)
    inopn $p |- ( ( J e. Top /\ A e. J /\ B e. J ) -> ( A i^i B ) e. J ) $=
      ( vx vy ctop wcel cin cv wral wa wss cuni wi wal istopg ibi simprd eleq1d
      wceq ineq1 ineq2 rspc2v syl5com 3impib ) CFGZACGZBCGZABHZCGZUFDIZEIZHZCGZ
      ECJDCJZUGUHKUJUFUKCLUKMCGNDOZUOUFUPUOKDEFCPQRUNUJAULHZCGDEABCCUKATUMUQCUK
      AULUASULBTUQUICULBAUBSUCUDUE $.

    $( A topology is closed under finite intersections.  (Contributed by Jeff
       Hankins, 7-Oct-2009.) $)
    fitop $p |- ( J e. Top -> ( fi ` J ) = J ) $=
      ( vx vy ctop wcel cv cin wral cfi cfv inopn 3expib ralrimivv inficl mpbid
      wceq ) ADEZBFZCFZGAEZCAHBAHAIJAPQTBCAAQRAESAETRSAKLMBCADNO $.

    $( The intersection of a nonempty finite family of open sets is open.
       (Contributed by FL, 20-Apr-2012.) $)
    fiinopn $p |- ( J e. Top -> ( ( A C_ J /\ A =/= (/) /\ A e. Fin )
        -> |^| A e. J ) ) $=
      ( vx wss c0 wne cfn wcel w3a ctop cint wi elpwg cv wceq sseq1 neeq1 com12
      cpw wal eleq1 3anbi123d inteq eleq1d imbi2d imbi12d cuni wa sp adantl ibi
      istop2g syl11 vtoclg 3exp com3r com4r syl6bir pm2.43a com4l pm2.43i 3imp
      ) ABDZAEFZAGHZIZBJHZAKZBHZVCVDVEVGVILZVCVDVEVJLLVEVCVCVDVJVCVEVCVDVJLLZVE
      VCABSZHZVEVKLABGMVEVCVDVMVJVCVDVEVMVJLZVCVDVEVNVMVFVJCNZBDZVOEFZVOGHZIZVG
      VOKZBHZLZLVFVJLCAVLVOAOZVSVFWBVJWCVPVCVQVDVRVEVOABPVOAEQVOAGUAUBWCWAVIVGW
      CVTVHBVOAUCUDUEUFVPVOUGBHLCTZVSWALZCTZUHZVSWAVGWFWEWDWECUIUJVGWGCJBULUKUM
      UNRUOUPUQURUSUTVAVBR $.

    $( The intersection of a nonempty finite family of open sets is open.
       (Contributed by Mario Carneiro, 14-Sep-2014.) $)
    iinopn $p |- ( ( J e. Top /\ ( A e. Fin /\ A =/= (/) /\
      A. x e. A B e. J ) ) -> |^|_ x e. A B e. J ) $=
      ( vy ctop wcel cfn c0 wne wral w3a wa ciin cv wceq wrex syl wss sylib cab
      cint simpr3 dfiin2g simpl cmpt crn eqid rnmpt wf frn syl5eqssr cdm simpr2
      fmpt fdm eqnetrd dm0rn0 eqeq1i bitri necon3bii simpr1 abrexfi fiinopn imp
      syl13anc eqeltrd ) DFGZBHGZBIJZCDGABKZLZMZABCNZEOCPABQEUAZUBZDVMVKVNVPPVH
      VIVJVKUCZAEBCDUDRVMVHVODSZVOIJZVOHGZVPDGZVHVLUEVMVOABCUFZUGZDAEBCWBWBUHZU
      IZVMBDWBUJZWCDSVMVKWFVQABDCWBWDUOTZBDWBUKRULVMWBUMZIJVSVMWHBIVMWFWHBPWGBD
      WBUPRVHVIVJVKUNUQWHIVOIWHIPWCIPVOIPWBURWCVOIWEUSUTVATVMVIVTVHVIVJVKVBAEBC
      VCRVHVRVSVTLWAVODVDVEVFVG $.
  $}

  $( The union of two open sets is open.  (Contributed by Jeff Madsen,
     2-Sep-2009.) $)
  unopn $p |- ( ( J e. Top /\ A e. J /\ B e. J ) -> ( A u. B ) e. J ) $=
    ( ctop wcel w3a cpr cuni cun wceq uniprg 3adant1 wa wss prssi uniopn sylan2
    3impb eqeltrrd ) CDEZACEZBCEZFABGZHZABIZCUAUBUDUEJTABCCKLTUAUBUDCEZUAUBMTUC
    CNUFABCOUCCPQRS $.

  $( The empty set is an open subset of a topology.  (Contributed by Stefan
     Allan, 27-Feb-2006.) $)
  0opn $p |- ( J e. Top -> (/) e. J ) $=
    ( ctop wcel c0 cuni uni0 wss 0ss uniopn mpan2 syl5eqelr ) ABCZDDEZAFLDAGMAC
    AHDAIJK $.

  $( The empty set is not a topology.  (Contributed by FL, 1-Jun-2008.) $)
  0ntop $p |- -. (/) e. Top $=
    ( c0 ctop wcel noel 0opn mto ) ABCAACADAEF $.

  ${
    $d x A $.  $d x J $.  $d x X $.
    1open.1 $e |- X = U. J $.
    $( The underlying set of a topology is an open set.  (Contributed by NM,
       17-Jul-2006.) $)
    topopn $p |- ( J e. Top -> X e. J ) $=
      ( ctop wcel cuni wss ssid uniopn mpan2 syl5eqel ) ADEZBAFZACLAAGMAEAHAAIJ
      K $.

    $( A member of a topology is a subset of its underlying set.  (Contributed
       by NM, 12-Sep-2006.) $)
    eltopss $p |- ( ( J e. Top /\ A e. J ) -> A C_ X ) $=
      ( wcel wss ctop cuni elssuni syl6sseqr adantl ) ABEZACFBGELABHCABIDJK $.

    $( A finite indexed relative intersection of open sets is open.
       (Contributed by Mario Carneiro, 22-Aug-2015.) $)
    riinopn $p |- ( ( J e. Top /\ A e. Fin /\ A. x e. A B e. J ) ->
        ( X i^i |^|_ x e. A B ) e. J ) $=
      ( ctop wcel cfn wral w3a ciin cin c0 wceq wa riin0 adantl simpl1 eqeltrd
      topopn syl wne wss wi eltopss ex adantr ralimdv 3impia riinn0 sylan 3exp2
      iinopn com34 3imp1 pm2.61dane ) DGHZBIHZCDHZABJZKZEABCLZMZDHBNVBBNOZPZVDE
      DVEVDEOVBAECBQRVFUREDHURUSVAVESDEFUAUBTVBBNUCZPVDVCDVBCEUDZABJZVGVDVCOURU
      SVAVIURUSPUTVHABURUTVHUEUSURUTVHCDEFUFUGUHUIUJAECBUKULURUSVAVGVCDHZURUSVG
      VAVJURUSVGVAVJABCDUNUMUOUPTUQ $.

    $( A finite relative intersection of open sets is open.  (Contributed by
       Mario Carneiro, 22-Aug-2015.) $)
    rintopn $p |- ( ( J e. Top /\ A C_ J /\ A e. Fin ) ->
        ( X i^i |^| A ) e. J ) $=
      ( vx ctop wcel wss cfn w3a cint cin ciin intiin ineq2i wral dfss3 riinopn
      cv 3com23 syl3an2b syl5eqel ) BFGZABHZAIGZJCAKZLCEAESZMZLZBUFUHCEANOUDUCU
      GBGEAPZUEUIBGZEABQUCUEUJUKEAUGBCDRTUAUB $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Topologies on sets
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Token for the function of topologies on sets. $)
  $c TopOn $.

  $( Syntax for the function of topologies on sets. $)
  ctopon $a class TopOn $.

  ${
    $d b j $.
    $( Define the function that associates with a set the set of topologies on
       it.  (Contributed by Stefan O'Rear, 31-Jan-2015.) $)
    df-topon $a |- TopOn = ( b e. _V |-> { j e. Top | b = U. j } ) $.
  $}

  ${
    $d B b j $.  $d J b j $.
    $( Property of being a topology with a given base set.  (Contributed by
       Stefan O'Rear, 31-Jan-2015.)  (Revised by Mario Carneiro,
       13-Aug-2015.) $)
    istopon $p |- ( J e. ( TopOn ` B ) <-> ( J e. Top /\ B = U. J ) ) $=
      ( vj vb ctopon cfv wcel cvv ctop cuni wceq elfvex uniexg eleq1 syl5ibrcom
      wa cv crab cpw wss imp eqeq1 rabbidv df-topon vpwex pwex rabss pwuni pweq
      wi syl5sseqr selpw sylibr mprgbir ssexi fvmpt3i eleq2d unieq eqeq2d elrab
      a1i syl6bb pm5.21nii ) BAEFZGZAHGZBIGZABJZKZPZBAELVGVIVFVGVFVIVHHGBIMAVHH
      NOUAVFVEBACQZJZKZCIRZGVJVFVDVNBDADQZVLKZCIRZVNHEVOAKVPVMCIVOAVLUBUCCDUDVQ
      VOSZSZVRDUEUFVQVSTVPVKVSGZUJZCIVPCIVSUGWAVKIGVPVKVRTVTVPVLSVKVRVKUHVOVLUI
      UKCVRULUMVAUNUOUPUQVMVICBIVKBKVLVHAVKBURUSUTVBVC $.
  $}

  $( A topology on a given base set is a topology.  (Contributed by Mario
     Carneiro, 13-Aug-2015.) $)
  topontop $p |- ( J e. ( TopOn ` B ) -> J e. Top ) $=
    ( ctopon cfv wcel ctop cuni wceq istopon simplbi ) BACDEBFEABGHABIJ $.

  $( The base set of a topology on a given base set.  (Contributed by Mario
     Carneiro, 13-Aug-2015.) $)
  toponuni $p |- ( J e. ( TopOn ` B ) -> B = U. J ) $=
    ( ctopon cfv wcel ctop cuni wceq istopon simprbi ) BACDEBFEABGHABIJ $.

  ${
    topontopi.1 $e |- J e. ( TopOn ` B ) $.
    $( A topology on a given base set is a topology.  (Contributed by Mario
       Carneiro, 13-Aug-2015.) $)
    topontopi $p |- J e. Top $=
      ( ctopon cfv wcel ctop topontop ax-mp ) BADEFBGFCABHI $.

    $( The base set of a topology on a given base set.  (Contributed by Mario
       Carneiro, 13-Aug-2015.) $)
    toponunii $p |- B = U. J $=
      ( ctopon cfv wcel cuni wceq toponuni ax-mp ) BADEFABGHCABIJ $.
  $}

  ${
    toptopon.1 $e |- X = U. J $.
    $( Alternative definition of ` Top ` in terms of ` TopOn ` .  (Contributed
       by Mario Carneiro, 13-Aug-2015.) $)
    toptopon $p |- ( J e. Top <-> J e. ( TopOn ` X ) ) $=
      ( ctopon cfv wcel ctop cuni wceq istopon mpbiran2 bicomi ) ABDEFZAGFZMNBA
      HICBAJKL $.
  $}

  $( A topology is the same thing as a topology on the union of its open sets.
     (Contributed by BJ, 27-Apr-2021.) $)
  toptopon2 $p |- ( J e. Top <-> J e. ( TopOn ` U. J ) ) $=
    ( cuni eqid toptopon ) AABZECD $.

  $( A topology on a set is a topology on the union of its open sets.
     (Contributed by BJ, 27-Apr-2021.) $)
  topontopon $p |- ( J e. ( TopOn ` X ) -> J e. ( TopOn ` U. J ) ) $=
    ( ctopon cfv wcel ctop cuni topontop toptopon2 sylib ) ABCDEAFEAAGCDEBAHAIJ
    $.

  ${
    $d x y $.
    $( The class ` TopOn ` is a function.  (Contributed by BJ, 29-Apr-2021.) $)
    funtopon $p |- Fun TopOn $=
      ( vy vx cvv cv cuni wceq ctop crab ctopon df-topon funmpt2 ) ACADBDEFBGHI
      BAJK $.
  $}

  ${
    $d A x y $.
    $( The set of topologies on a set is included in the double power set of
       that set.  (Contributed by BJ, 29-Apr-2021.) $)
    toponsspwpw $p |- ( TopOn ` A ) C_ ~P ~P A $=
      ( vy vx cvv wcel ctopon cfv cpw wss cuni wceq ctop crab cab rabssab eqcom
      cv abbii pwexg syl6eqss sseqtri pwpwssunieq sstri syl ssexg sylancr eqeq1
      rabbidv df-topon fvmptg mpdan wn c0 fvprc 0ss pm2.61i ) ADEZAFGZAHZHZIUQU
      RABQJZKZBLMZUTUQVCDEZURVCKUQVCUTIUTDEZVDVCVAAKZBNZUTVCVBBNVGVBBLOVBVFBAVA
      PRUABAUBUCZUQUSDEVEADSUSDSUDVCUTDUEUFCACQZVAKZBLMVCDDFVIAKVJVBBLVIAVAUGUH
      BCUIUJUKVHTUQULURUMUTAFUNUTUOTUP $.
  $}

  ${
    $d x y $.
    $( The domain of ` TopOn ` is ` _V ` .  (Contributed by BJ,
       29-Apr-2021.) $)
    dmtopon $p |- dom TopOn = _V $=
      ( vx vy cvv cv cuni wceq ctop crab ctopon cpw vpwex pwex wb eqcom rabbiia
      wcel a1i cab rabssab pwpwssunieq sstri eqsstri ssexi df-topon dmmpti ) AC
      ADZBDZEZFZBGHZIUJUFJZJZUKAKLUJUHUFFZBGHZULUIUMBGUIUMMUGGPUFUHNQOUNUMBRULU
      MBGSBUFTUAUBUCBAUDUE $.

    $( The class ` TopOn ` is a function with domain ` _V ` .  Analogue for
       topologies of ~ fnmre for Moore collections.  (Contributed by BJ,
       29-Apr-2021.) $)
    fntopon $p |- TopOn Fn _V $=
      ( ctopon cvv wfn wfun cdm wceq funtopon dmtopon df-fn mpbir2an ) ABCADAEB
      FGHABIJ $.
  $}

  ${
    $d x y z $.
    $( A topology is the same thing as a topology on a set (variable-free
       version).  (Contributed by BJ, 27-Apr-2021.) $)
    toprntopon $p |- Top = U. ran TopOn $=
      ( vx vy vz ctop ctopon crn cuni cv wcel wex cfv toptopon2 biimpi wceq cvv
      wa ax-mp impbii syl eximi eleq2 eleq1 anbi12d wb simpl wfn fntopon vuniex
      fvex pm3.2i fnfvelrn jctr a1i bitrd spcev wrex wfun wi funtopon elrnrexdm
      cdm rexex anim2i 19.42v biimpri eqimss sseld com12 topontop exlimiv eluni
      imp ax5e bicomi bitri eqriv ) ADEFZGZAHZDIZVSBHZIZWAVQIZPZBJZVSVRIZVTWEVT
      VSVSGZEKZIZWEVTWIVSLMWDWIBWHWGEUIWAWHNZWDWIWHVQIZPZWIWJWBWIWCWKWAWHVSUAWA
      WHVQUBUCWLWIUDWJWLWIWIWKUEWIWKEOUFZWGOIZPWKWMWNUGAUHUJOWGEUKQULRUMUNUOSWD
      VTBWDVSCHZEKZIZCJZVTWDWBWAWPNZCJZPZWRWCWTWBWCWSCEVAZUPZWTEUQWCXCURUSCEWAU
      TQWSCXBVBSVCXAWBWSPZCJZWRXEXAWBWSCVDVEXDWQCWBWSWQWSWBWQWSWAWPVSWAWPVFVGVH
      VLTSSWRVTCJVTWQVTCWOVSVITVTCVMSSVJRWFWEBVSVQVKVNVOVP $.
  $}

  $( The base set of a topology is an open set.  (Contributed by Mario
     Carneiro, 13-Aug-2015.) $)
  toponmax $p |- ( J e. ( TopOn ` B ) -> B e. J ) $=
    ( ctopon cfv wcel cuni toponuni ctop topontop eqid topopn syl eqeltrd ) BAC
    DEZABFZBABGNBHEOBEABIBOOJKLM $.

  $( A member of a topology is a subset of its underlying set.  (Contributed by
     Mario Carneiro, 21-Aug-2015.) $)
  toponss $p |- ( ( J e. ( TopOn ` X ) /\ A e. J ) -> A C_ X ) $=
    ( ctopon cfv wcel wa cuni wss elssuni adantl wceq toponuni adantr sseqtr4d
    ) BCDEFZABFZGABHZCQARIPABJKPCRLQCBMNO $.

  $( If ` K ` is a topology on the base set of topology ` J ` , then ` J ` is a
     topology on the base of ` K ` .  (Contributed by Mario Carneiro,
     22-Aug-2015.) $)
  toponcom $p |- ( ( J e. Top /\ K e. ( TopOn ` U. J ) ) ->
      J e. ( TopOn ` U. K ) ) $=
    ( ctop wcel cuni ctopon cfv wa wceq toponuni eqcomd anim2i istopon sylibr )
    ACDZBAEZFGDZHOBEZPIZHARFGDQSOQPRPBJKLRAMN $.

  $( Biconditional form of ~ toponcom .  (Contributed by BJ, 5-Dec-2021.) $)
  toponcomb $p |- ( ( J e. Top /\ K e. Top ) ->
                       ( J e. ( TopOn ` U. K ) <-> K e. ( TopOn ` U. J ) ) ) $=
    ( ctop wcel wa cuni ctopon cfv wi toponcom ex adantl adantr impbid ) ACDZBC
    DZEABFGHDZBAFGHDZPQRIOPQRBAJKLORQIPORQABJKMN $.

  $( The topologies over the same set have the greatest element (the discrete
     topology) and the least element (the indiscrete topology).  (Contributed
     by FL, 18-Apr-2010.)  (Revised by Mario Carneiro, 16-Sep-2015.) $)
  topgele $p |- ( J e. ( TopOn ` X ) -> ( { (/) , X } C_ J /\ J C_ ~P X ) ) $=
    ( ctopon cfv wcel c0 cpr wss cpw ctop topontop 0opn syl toponmax cvv wa 0ex
    wb prssg sylancr mpbi2and cuni wceq toponuni eqimss2 sspwuni sylibr jca ) A
    BCDEZFBGAHZABIHZUIFAEZBAEZUJUIAJEULBAKALMBANZUIFOEUMULUMPUJRQUNFBAOASTUAUIA
    UBZBHZUKUIBUOUCUPBAUDUOBUEMABUFUGUH $.

  $( The only topology on a singleton is the discrete topology (which is also
     the indiscrete topology by ~ pwsn ).  (Contributed by FL, 5-Jan-2009.)
     (Revised by Mario Carneiro, 16-Sep-2015.) $)
  topsn $p |- ( J e. ( TopOn ` { A } ) -> J = ~P { A } ) $=
    ( csn ctopon cfv wcel cpw cpr wss topgele simprd pwsn simpld syl5eqss eqssd
    c0 ) BACZDEFZBQGZRPQHZBIZBSIZBQJZKRSTBALRUAUBUCMNO $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Topological spaces
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Token for the class of topological spaces. $)
  $c TopSp $.

  $( Syntax for the class of topological spaces. $)
  ctps $a class TopSp $.

  $( Define the class of topological spaces (as extensible structures).
     (Contributed by Stefan O'Rear, 13-Aug-2015.) $)
  df-topsp $a |- TopSp = { f | ( TopOpen ` f ) e. ( TopOn ` ( Base ` f ) ) } $.

  ${
    $d f A $.  $d f J $.  $d f K $.
    istps.a $e |- A = ( Base ` K ) $.
    istps.j $e |- J = ( TopOpen ` K ) $.
    $( Express the predicate "is a topological space."  (Contributed by Mario
       Carneiro, 13-Aug-2015.) $)
    istps $p |- ( K e. TopSp <-> J e. ( TopOn ` A ) ) $=
      ( vf ctps wcel cv ctopn cfv cbs ctopon df-topsp eleq2i ctop fveq2 syl6eqr
      cab c0 cvv topontop wn 0ntop fvprc syl5eq eleq1d mtbiri con4i wceq fveq2d
      syl eleq12d elab3 bitri ) CGHCFIZJKZUPLKZMKZHZFSZHBAMKZHZGVACFNOUTVCFCVCB
      PHZCUAHZABUBVEVDVEUCZVDTPHUDVFBTPVFBCJKZTECJUEUFUGUHUIULUPCUJZUQBUSVBVHUQ
      VGBUPCJQERVHURAMVHURCLKAUPCLQDRUKUMUNUO $.

    $( Express the predicate "is a topological space."  (Contributed by NM,
       20-Oct-2012.) $)
    istps2 $p |- ( K e. TopSp <-> ( J e. Top /\ A = U. J ) ) $=
      ( ctps wcel ctopon cfv ctop cuni wceq wa istps istopon bitri ) CFGBAHIGBJ
      GABKLMABCDENABOP $.

    $( The base set of a topological space.  (Contributed by FL,
       27-Jun-2014.) $)
    tpsuni $p |- ( K e. TopSp -> A = U. J ) $=
      ( ctps wcel ctop cuni wceq istps2 simprbi ) CFGBHGABIJABCDEKL $.
  $}

  ${
    tpstop.j $e |- J = ( TopOpen ` K ) $.
    $( The topology extractor on a topological space is a topology.
       (Contributed by FL, 27-Jun-2014.) $)
    tpstop $p |- ( K e. TopSp -> J e. Top ) $=
      ( ctps wcel ctop cbs cfv cuni wceq eqid istps2 simplbi ) BDEAFEBGHZAIJNAB
      NKCLM $.
  $}

  ${
    tpspropd.1 $e |- ( ph -> ( Base ` K ) = ( Base ` L ) ) $.
    tpspropd.2 $e |- ( ph -> ( TopOpen ` K ) = ( TopOpen ` L ) ) $.
    $( A topological space depends only on the base and topology components.
       (Contributed by NM, 18-Jul-2006.)  (Revised by Mario Carneiro,
       13-Aug-2015.) $)
    tpspropd $p |- ( ph -> ( K e. TopSp <-> L e. TopSp ) ) $=
      ( ctopn cfv cbs ctopon wcel ctps fveq2d eleq12d eqid istps 3bitr4g ) ABFG
      ZBHGZIGZJCFGZCHGZIGZJBKJCKJAQTSUBEARUAIDLMRQBRNQNOUATCUANTNOP $.
  $}

  ${
    tpsprop2d.1 $e |- ( ph -> ( Base ` K ) = ( Base ` L ) ) $.
    tpsprop2d.2 $e |- ( ph -> ( TopSet ` K ) = ( TopSet ` L ) ) $.
    $( A topological space depends only on the base and topology components.
       (Contributed by Mario Carneiro, 13-Aug-2015.) $)
    tpsprop2d $p |- ( ph -> ( K e. TopSp <-> L e. TopSp ) ) $=
      ( topnpropd tpspropd ) ABCDABCDEFG $.
  $}

  ${
    tsettps.a $e |- A = ( Base ` K ) $.
    tsettps.j $e |- J = ( TopSet ` K ) $.
    $( Express the predicate "is a topological space."  (Contributed by Mario
       Carneiro, 13-Aug-2015.) $)
    topontopn $p |- ( J e. ( TopOn ` A ) -> J = ( TopOpen ` K ) ) $=
      ( ctopon cfv wcel cpw wss ctopn wceq cuni toponuni eqimss2 sspwuni sylibr
      syl topnid ) BAFGHZBAIJZBCKGLTBMZAJZUATAUBLUCABNUBAORBAPQABCDESR $.

    $( If the topology component is already correctly truncated, then it forms
       a topological space (with the topology extractor function coming out the
       same as the component).  (Contributed by Mario Carneiro,
       13-Aug-2015.) $)
    tsettps $p |- ( J e. ( TopOn ` A ) -> K e. TopSp ) $=
      ( ctopon cfv wcel ctopn ctps topontopn id eqeltrrd eqid istps sylibr ) BA
      FGZHZCIGZQHCJHRBSQABCDEKRLMASCDSNOP $.
  $}

  ${
    istpsi.b $e |- ( Base ` K ) = A $.
    istpsi.j $e |- ( TopOpen ` K ) = J $.
    istpsi.1 $e |- A = U. J $.
    istpsi.2 $e |- J e. Top $.
    $( Properties that determine a topological space.  (Contributed by NM,
       20-Oct-2012.) $)
    istpsi $p |- K e. TopSp $=
      ( ctps wcel ctop cuni wceq cbs cfv eqcomi ctopn istps2 mpbir2an ) CHIBJIA
      BKLGFABCCMNADOCPNBEOQR $.
  $}

  ${
    eltpsi.k $e |- K
         = { <. ( Base ` ndx ) , A >. , <. ( TopSet ` ndx ) , J >. } $.
    $( Properties that determine a topological space from a construction (using
       no explicit indices).  (Contributed by Mario Carneiro, 13-Aug-2015.) $)
    eltpsg $p |- ( J e. ( TopOn ` A ) -> K e. TopSp ) $=
      ( ctopon cfv wcel cts cbs ctps c9 df-tset 9nn 2strop toponmax 2strbas syl
      1lt9 wceq eqid fveq2d eleq12d ibi tsettps ) BAEFZGZCHFZCIFZEFZGZCJGUFUJUF
      BUGUEUIABHCKUEDLRMNUFAUHEUFABGAUHSABOABHCKBDLRMPQUAUBUCUHUGCUHTUGTUDQ $.

    eltpsi.u $e |- A = U. J $.
    eltpsi.j $e |- J e. Top $.
    $( Properties that determine a topological space from a construction (using
       no explicit indices).  (Contributed by NM, 20-Oct-2012.)  (Revised by
       Mario Carneiro, 13-Aug-2015.) $)
    eltpsi $p |- K e. TopSp $=
      ( ctopon cfv wcel ctps ctop toptopon mpbi eltpsg ax-mp ) BAGHIZCJIBKIPFBA
      ELMABCDNO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Topological bases
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Token for the class of topological bases. $)
  $c TopBases $.

  $( Syntax for the class of topological bases. $)
  ctb $a class TopBases $.

  ${
    $d x y z $.
    $( Define the class of topological bases.  Equivalent to definition of
       basis in [Munkres] p. 78 (see ~ isbasis2g ).  Note that "bases" is the
       plural of "basis."  (Contributed by NM, 17-Jul-2006.) $)
    df-bases $a |- TopBases =
      { x | A. y e. x A. z e. x ( y i^i z ) C_ U. ( x i^i ~P ( y i^i z ) ) } $.
  $}

  ${
    $d w x y z B $.
    $( Express the predicate " ` B ` is a basis for a topology."  (Contributed
       by NM, 17-Jul-2006.) $)
    isbasisg $p |- ( B e. C -> ( B e. TopBases <->
          A. x e. B A. y e. B ( x i^i y ) C_ U. ( B i^i ~P ( x i^i y ) ) ) ) $=
      ( vz cv cin cpw cuni wss wral ctb ineq1 unieqd sseq2d raleqbi1dv df-bases
      wceq elab2g ) AFBFGZEFZTHZGZIZJZBUAKZAUAKTCUBGZIZJZBCKZACKECLDUFUJAUACUEU
      IBUACUACRZUDUHTUKUCUGUACUBMNOPPEABQS $.

    $( Express the predicate " ` B ` is a basis for a topology."  (Contributed
       by NM, 17-Jul-2006.) $)
    isbasis2g $p |- ( B e. C -> ( B e. TopBases <->
           A. x e. B A. y e. B A. z e. ( x i^i y )
              E. w e. B ( z e. w /\ w C_ ( x i^i y ) ) ) ) $=
      ( wcel ctb cv cin cpw cuni wss wral wa wrex isbasisg wex anbi2i bitri
      dfss3 elin selpw an12 exbii eluni df-rex 3bitr4i ralbii 2ralbii syl6bb )
      EFGEHGAIBIJZEULKZJZLZMZBENAENCIZDIZGZURULMZOZDEPZCULNZBENAENABEFQUPVCABEE
      UPUQUOGZCULNVCCULUOUAVDVBCULUSURUNGZOZDRUREGZVAOZDRVDVBVFVHDVFUSVGUTOZOVH
      VEVIUSVEVGURUMGZOVIUREUMUBVJUTVGDULUCSTSUSVGUTUDTUEDUQUNUFVADEUGUHUITUJUK
      $.

    $( Express the predicate " ` B ` is a basis for a topology."  Definition of
       basis in [Munkres] p. 78.  (Contributed by NM, 17-Jul-2006.) $)
    isbasis3g $p |- ( B e. C -> ( B e. TopBases <-> ( A. x e. B x C_ U. B /\
     A. x e. U. B E. y e. B x e. y /\ A. x e. B A. y e. B A. z e. ( x i^i y )
     E. w e. B ( z e. w /\ w C_ ( x i^i y ) ) ) ) ) $=
      ( wcel ctb wel cv cin wss wa wrex wral cuni w3a isbasis2g elssuni rgen
      eluni2 biimpi pm3.2i biantrur df-3an bitr4i syl6bb ) EFGEHGCDIDJAJZBJKZLM
      DENCUIOBEOAEOZUHEPZLZAEOZABIBENZAUKOZUJQZABCDEFRUJUMUOMZUJMUPUQUJUMUOULAE
      UHESTUNAUKUHUKGUNBUHEUAUBTUCUDUMUOUJUEUFUG $.
  $}

  ${
    $d w x A $.  $d w x y z B $.  $d w x y z C $.  $d w x y z D $.
    $( Property of a basis.  (Contributed by NM, 16-Jul-2006.) $)
    basis1 $p |- ( ( B e. TopBases /\ C e. B /\ D e. B ) ->
                    ( C i^i D ) C_ U. ( B i^i ~P ( C i^i D ) ) ) $=
      ( vx vy ctb wcel cin cpw cuni wss cv wral wa isbasisg pweqd ineq2d unieqd
      wceq sseq12d ibi ineq1 ineq2 rspc2v syl5com 3impib ) AFGZBAGZCAGZBCHZAUJI
      ZHZJZKZUGDLZELZHZAUQIZHZJZKZEAMDAMZUHUINUNUGVBDEAFOUAVAUNBUPHZAVCIZHZJZKD
      EBCAAUOBSZUQVCUTVFUOBUPUBZVGUSVEVGURVDAVGUQVCVHPQRTUPCSZVCUJVFUMUPCBUCZVI
      VEULVIVDUKAVIVCUJVJPQRTUDUEUF $.

    $( Property of a basis.  (Contributed by NM, 17-Jul-2006.) $)
    basis2 $p |- ( ( ( B e. TopBases /\ C e. B ) /\ ( D e. B /\
          A e. ( C i^i D ) ) ) -> E. x e. B ( A e. x /\ x C_ ( C i^i D ) ) ) $=
      ( vw vy vz ctb wcel cin cv wss wa wrex wi wral wceq rexbidv syl isbasis2g
      wb ineq1 sseq2 anbi2d raleqbi1dv ineq2 rspc2v eleq1 anbi1d rspccv syl6com
      ibi expd imp43 ) CIJZDCJZECJZBDEKZJZBALZJZVAUSMZNZACOZUPUQURUTVEPZUPFLZVA
      JZVAGLZHLZKZMZNZACOZFVKQZHCQGCQZUQURNZVFPUPVPGHFACIUAUMVQVPVHVCNZACOZFUSQ
      ZVFVOVTVHVADVJKZMZNZACOZFWAQZGHDECCVIDRVKWARZVOWEUBVIDVJUCVNWDFVKWAWFVMWC
      ACWFVLWBVHVKWAVAUDUESUFTVJERWAUSRZWEVTUBVJEDUGWDVSFWAUSWGWCVRACWGWBVCVHWA
      USVAUDUESUFTUHVSVEFBUSVGBRZVRVDACWHVHVBVCVGBVAUIUJSUKULTUNUO $.
  $}

  ${
    $d B w x y z $.  $d C w x y z $.
    $( If a set is closed under finite intersection, then it is a basis for a
       topology.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    fiinbas $p |- ( ( B e. C /\ A. x e. B A. y e. B ( x i^i y ) e. B )
                       -> B e. TopBases ) $=
      ( vz vw wcel cv cin wral ctb wss wa wrex wi ssid wceq eleq2 sseq1 ralimdv
      anbi12d rspcev mpanr2 ralrimiva a1i isbasis2g sylibrd imp ) CDGZAHBHIZCGZ
      BCJZACJZCKGZUIUMEHZFHZGZUPUJLZMZFCNZEUJJZBCJZACJUNUIULVBACUIUKVABCUKVAOUI
      UKUTEUJUKUOUJGZUJUJLZUTUJPUSVCVDMFUJCUPUJQUQVCURVDUPUJUORUPUJUJSUAUBUCUDU
      ETTABEFCDUFUGUH $.

    $( A basis is not affected by the addition or removal of the empty set.
       (Contributed by Mario Carneiro, 28-Aug-2015.) $)
    basdif0 $p |- ( ( B \ { (/) } ) e. TopBases <-> B e. TopBases ) $=
      ( vx vy c0 cdif ctb wcel cvv cun wss cv cin cuni wral wb inss2 wceq sseli
      ralbii syl csn ssun1 undif1 sseqtr4i snex unexg mpan2 sylancr elex indif1
      ssexg cpw unieqi unidif0 eqtri sseq2i syl6eqss syl5ss rgen ralunb mpbiran
      elsni 0ss inundif raleqi 3bitr2i inss1 ralrimivw difexg 3bitr4d pm5.21nii
      a1i isbasisg ) ADUAZEZFGZAHGZAFGZVPAVOVNIZJVSHGZVQAAVNIVSAVNUBAVNUCUDVPVN
      HGVTDUEVOVNFHUFUGAVSHUKUHAFUIVQBKZCKZLZVOWCULZLZMZJZCVONZBVONZWCAWDLZMZJZ
      CANZBANZVPVRWIWNOVQWIWMBVONZWMBAVNLZVOIZNZWNWHWMBVOWHWLCVONZWLCWQNZWMWGWL
      CVOWFWKWCWFWJVNEZMWKWEXAAWDVNUJUMWJUNUOUPSWTWLCWPNWSWLCWPWBWPGZWCWBWKWAWB
      PXBWBDWKXBWBVNGWBDQWPVNWBAVNPZRWBDVBTWKVCZUQURUSWLCWPVOUTVAWLCWQAAVNVDZVE
      VFSWRWMBWPNWOWMBWPWAWPGZWLCAXFWCWAWKWAWBVGXFWADWKXFWAVNGWADQWPVNWAXCRWADV
      BTXDUQURVHUSWMBWPVOUTVAWMBWQAXEVEVFVLVQVOHGVPWIOAVNHVIBCVOHVMTBCAHVMVJVK
      $.
  $}

  ${
    $d P x y $.
    $( A disjoint system of sets is a basis for a topology.  (Contributed by
       Stefan O'Rear, 22-Feb-2015.) $)
    baspartn $p |- ( ( P e. V /\ A. x e. P A. y e. P
              ( x = y \/ ( x i^i y ) = (/) ) ) -> P e. TopBases ) $=
      ( wcel weq cv cin c0 wceq wo wral wa ctb cpw cuni wss id pwidg elind jaod
      elssuni syl inidm ineq2 syl5eqr pweqd ineq2d unieqd sseq12d syl5ibcom 0ss
      wi sseq1 mpbiri a1i ralimdv ralimia adantl wb isbasisg adantr mpbird ) CD
      EZABFZAGZBGZHZIJZKZBCLZACLZMCNEZVHCVHOZHZPZQZBCLZACLZVLVSVDVKVRACVFCEZVJV
      QBCVTVEVQVIVTVFCVFOZHZPZQZVEVQVTVFWBEWDVTCWAVFVTRVFCSTVFWBUBUCVEVFVHWCVPV
      EVFVFVFHVHVFUDVFVGVFUEUFZVEWBVOVEWAVNCVEVFVHWEUGUHUIUJUKVIVQUMVTVIVQIVPQV
      PULVHIVPUNUOUPUAUQURUSVDVMVSUTVLABCDVAVBVC $.
  $}

  ${
    $d x y z A $.  $d t u v w x y z B $.  $d w x y z J $.  $d x y z V $.
    $d x y C $.
    $( The topology generated by a basis.  See also ~ tgval2 and ~ tgval3 .
       (Contributed by NM, 16-Jul-2006.)  (Revised by Mario Carneiro,
       10-Jan-2015.) $)
    tgval $p |- ( B e. V -> ( topGen ` B ) =
                  { x | x C_ U. ( B i^i ~P x ) } ) $=
      ( vy wcel cvv cv cpw cin cuni wss cab ctg cfv wceq elex wa uniexg abssexg
      uniin sstr mpan2 ssin sylibr ss2abi ssexg mpan ineq1 unieqd sseq2d abbidv
      3syl df-topgen fvmptg syl2anc ) BCEZBFEAGZBUQHZIZJZKZALZFEZBMNVBOBCPUPBJZ
      FEUQVDKUQURJZKZQZALZFEZVCBCRVFAVDFSVBVHKVIVCVAVGAVAUQVDVEIZKZVGVAUTVJKVKB
      URTUQUTVJUAUBUQVDVEUCUDUEVBVHFUFUGULDBUQDGZURIZJZKZALVBFFMVLBOZVOVAAVPVNU
      TUQVPVMUSVLBURUHUIUJUKDAUMUNUO $.

    $( Definition of a topology generated by a basis in [Munkres] p. 78.  Later
       we show (in ~ tgcl ) that ` ( topGen `` B ) ` is indeed a topology (on
       ` U. B ` , see ~ unitg ).  See also ~ tgval and ~ tgval3 .  (Contributed
       by NM, 15-Jul-2006.)  (Revised by Mario Carneiro, 10-Jan-2015.) $)
    tgval2 $p |- ( B e. V -> ( topGen ` B ) =
         { x | ( x C_ U. B /\ A. y e. x E. z e. B ( y e. z /\ z C_ x ) ) } ) $=
      ( wcel ctg cv cuni wss cab wa wrex wral ralbii bitri dfss3 anbi2i 3bitr4i
      wex cfv cpw cin tgval inss1 unissi sseli pm4.71ri r19.26 elin exbii eluni
      an12 df-rex selpw rexbii bitr2i anbi12i abbii syl6eq ) DEFDGUAAHZDVAUBZUC
      ZIZJZAKVADIZJZBHZCHZFZVIVAJZLZCDMZBVANZLZAKADEUDVEVOAVHVDFZBVANZVHVFFZBVA
      NZVQLZVEVOVQVRVPLZBVANVTVPWABVAVPVRVDVFVHVCDDVBUEUFUGUHOVRVPBVAUIPBVAVDQV
      GVSVNVQBVAVFQVMVPBVAVPVJVIVBFZLZCDMZVMVJVIVCFZLZCTVIDFZWCLZCTVPWDWFWHCWFV
      JWGWBLZLWHWEWIVJVIDVBUJRVJWGWBUMPUKCVHVCULWCCDUNSWCVLCDWBVKVJCVAUORUPUQOU
      RSUSUT $.

    $( Membership in a topology generated by a basis.  (Contributed by NM,
       16-Jul-2006.)  (Revised by Mario Carneiro, 10-Jan-2015.) $)
    eltg $p |- ( B e. V -> ( A e. ( topGen ` B ) <->
           A C_ U. ( B i^i ~P A ) ) ) $=
      ( vx wcel ctg cfv cv cpw cin cuni wss cab tgval eleq2d elex adantl inex1g
      cvv uniexg syl ssexg sylan2 ancoms wceq id ineq2d unieqd sseq12d pm5.21nd
      pweq elabg bitrd ) BCEZABFGZEADHZBUPIZJZKZLZDMZEZABAIZJZKZLZUNUOVAADBCNOU
      NVBVFASEZVBVGUNAVAPQVFUNVGUNVFVESEZVGUNVDSEVHBVCCRVDSTUAAVESUBUCUDUTVFDAS
      UPAUEZUPAUSVEVIUFVIURVDVIUQVCBUPAUKUGUHUIULUJUM $.

    $( Membership in a topology generated by a basis.  (Contributed by NM,
       15-Jul-2006.)  (Revised by Mario Carneiro, 10-Jan-2015.) $)
    eltg2 $p |- ( B e. V -> ( A e. ( topGen ` B ) <->
           ( A C_ U. B /\ A. x e. A E. y e. B ( x e. y /\ y C_ A ) ) ) ) $=
      ( vz wcel ctg cfv cv cuni wss wa wrex wral cab tgval2 eleq2d cvv elex
      adantl uniexg ssexg sylan2 ancoms adantrr wceq sseq1 sseq2 anbi2d rexbidv
      raleqbi1dv anbi12d elabg pm5.21nd bitrd ) DEGZCDHIZGCFJZDKZLZAJBJZGZVBUSL
      ZMZBDNZAUSOZMZFPZGZCUTLZVCVBCLZMZBDNZACOZMZUQURVICFABDEQRUQVJVPCSGZVJVQUQ
      CVITUAUQVKVQVOVKUQVQUQVKUTSGVQDEUBCUTSUCUDUEUFVHVPFCSUSCUGZVAVKVGVOUSCUTU
      HVFVNAUSCVRVEVMBDVRVDVLVCUSCVBUIUJUKULUMUNUOUP $.

    $( Membership in a topology generated by a basis.  (Contributed by Mario
       Carneiro, 17-Jun-2014.)  (Revised by Mario Carneiro, 10-Jan-2015.) $)
    eltg2b $p |- ( B e. V -> ( A e. ( topGen ` B ) <->
                   A. x e. A E. y e. B ( x e. y /\ y C_ A ) ) ) $=
      ( wcel ctg cfv cuni wss cv wa wrex wral eltg2 reximi eluni2 sylibr ralimi
      simpl dfss3 pm4.71ri syl6bbr ) DEFCDGHFCDIZJZAKZBKZFZUGCJZLZBDMZACNZLULAB
      CDEOULUEULUFUDFZACNUEUKUMACUKUHBDMUMUJUHBDUHUITPBUFDQRSACUDUARUBUC $.

    $( An open set in a topology generated by a basis is the union of all basic
       open sets contained in it.  (Contributed by Stefan O'Rear,
       22-Feb-2015.) $)
    eltg4i $p |- ( A e. ( topGen ` B ) -> A = U. ( B i^i ~P A ) ) $=
      ( ctg cfv wcel cpw cin cuni wss cdm wb elfvdm eltg syl inss2 unissi unipw
      ibi sseqtri a1i eqssd ) ABCDEZABAFZGZHZUBAUEIZUBBCJZEUBUFKABCLABUGMNRUEAI
      UBUEUCHAUDUCBUCOPAQSTUA $.

    $( The union of a set of basic open sets is in the generated topology.
       (Contributed by Mario Carneiro, 30-Aug-2015.) $)
    eltg3i $p |- ( ( B e. V /\ A C_ B ) -> U. A e. ( topGen ` B ) ) $=
      ( wcel wss wa cuni ctg cfv cpw cin simpr pwuni jctir ssin sylib unissd wb
      eltg adantr mpbird ) BCDZABEZFZAGZBHIDZUEBUEJZKZGEZUDAUHUDUCAUGEZFAUHEUDU
      CUJUBUCLAMNABUGOPQUBUFUIRUCUEBCSTUA $.

    $( Membership in a topology generated by a basis.  (Contributed by NM,
       15-Jul-2006.)  (Proof shortened by Mario Carneiro, 30-Aug-2015.) $)
    eltg3 $p |- ( B e. V -> ( A e. ( topGen ` B ) <->
           E. x ( x C_ B /\ A = U. x ) ) ) $=
      ( wcel ctg cfv cv wss cuni wceq wa wex cpw cin cvv cdm elfvdm inex1g syl
      eltg4i inss1 sseq1 mpbiri biantrurd unieq eqeq2d bitr3d spcegv sylc eleq1
      eltg3i syl5ibrcom expimpd exlimdv impbid2 ) CDEZBCFGZEZAHZCIZBUTJZKZLZAMZ
      USCBNZOZPEZBVGJZKZVEUSCFQZEVHBCFRCVFVKSTBCUAVDVJAVGPUTVGKZVCVDVJVLVAVCVLV
      AVGCICVFUBUTVGCUCUDUEVLVBVIBUTVGUFUGUHUIUJUQVDUSAUQVAVCUSUQVALUSVCVBUREUT
      CDULBVBURUKUMUNUOUP $.

    $( Alternate expression for the topology generated by a basis.  Lemma 2.1
       of [Munkres] p. 80.  See also ~ tgval and ~ tgval2 .  (Contributed by
       NM, 17-Jul-2006.)  (Revised by Mario Carneiro, 30-Aug-2015.) $)
    tgval3 $p |- ( B e. V ->
               ( topGen ` B ) = { x | E. y ( y C_ B /\ x = U. y ) } ) $=
      ( wcel cv wss cuni wceq wa wex ctg cfv eltg3 abbi2dv ) CDEBFZCGAFZPHIJBKA
      CLMBQCDNO $.

    $( Property of a member of a topology generated by a basis.  (Contributed
       by NM, 20-Jul-2006.) $)
    tg1 $p |- ( A e. ( topGen ` B ) -> A C_ U. B ) $=
      ( vx vy ctg cdm wcel cfv cuni wss elfvdm cv wa wrex wral simprbda mpancom
      eltg2 ) BEFZGZABEHGZABIJZABEKTUAUBCLDLZGUCAJMDBNCAOCDABSRPQ $.

    $( Property of a member of a topology generated by a basis.  (Contributed
       by NM, 20-Jul-2006.) $)
    tg2 $p |- ( ( A e. ( topGen ` B ) /\ C e. A ) ->
               E. x e. B ( C e. x /\ x C_ A ) ) $=
      ( vy ctg cfv wcel cv wss wa wrex cdm elfvdm wral eltg2b wceq eleq1 anbi1d
      wi rexbidv rspccv syl6bi mpcom imp ) BCFGHZDBHZDAIZHZUHBJZKZACLZCFMZHZUFU
      GULTZBCFNUNUFEIZUHHZUJKZACLZEBOUOEABCUMPUSULEDBUPDQZURUKACUTUQUIUJUPDUHRS
      UAUBUCUDUE $.

    $( A member of a basis is a subset of the topology it generates.
       (Contributed by NM, 16-Jul-2006.)  (Revised by Mario Carneiro,
       10-Jan-2015.) $)
    bastg $p |- ( B e. V -> B C_ ( topGen ` B ) ) $=
      ( vx wcel ctg cfv cv cpw cin cuni wss wa simpr vex pwid a1i elind elssuni
      syl ex eltg sylibrd ssrdv ) ABDZCAAEFZUDCGZADZUFAUFHZIZJKZUFUEDUDUGUJUDUG
      LZUFUIDUJUKAUHUFUDUGMUFUHDUKUFCNOPQUFUIRSTUFABUAUBUC $.

    $( The topology generated by a basis ` B ` is a topology on ` U. B ` .
       Importantly, this theorem means that we don't have to specify separately
       the base set for the topological space generated by a basis.  In other
       words, any member of the class ` TopBases ` completely specifies the
       basis it corresponds to.  (Contributed by NM, 16-Jul-2006.)  (Proof
       shortened by OpenAI, 30-Mar-2020.) $)
    unitg $p |- ( B e. V -> U. ( topGen ` B ) = U. B ) $=
      ( vx wcel ctg cfv cuni wss cpw cv tg1 selpw sylibr ssriv sspwuni mpbi a1i
      bastg unissd eqssd ) ABDZAEFZGZAGZUCUDHZUAUBUDIZHUECUBUFCJZUBDUGUDHUGUFDU
      GAKCUDLMNUBUDOPQUAAUBABRST $.

    $( Subset relation for generated topologies.  (Contributed by NM,
       7-May-2007.) $)
    tgss $p |- ( ( C e. V /\ B C_ C ) -> ( topGen ` B ) C_ ( topGen ` C ) ) $=
      ( vx wcel wss wa ctg cfv cv cpw cin cuni wi ssrin unissd sstr2 cvv eltg
      wb syl5com adantl ssexg ancoms syl adantr 3imtr4d ssrdv ) BCEZABFZGZDAHIZ
      BHIZUKDJZAUNKZLZMZFZUNBUOLZMZFZUNULEZUNUMEZUJURVANUIUJUQUTFURVAUJUPUSABUO
      OPUNUQUTQUAUBUKAREZVBURTUJUIVDABCUCUDUNARSUEUIVCVATUJUNBCSUFUGUH $.

    $( Show that a basis generates a topology.  Remark in [Munkres] p. 79.
       (Contributed by NM, 17-Jul-2006.) $)
    tgcl $p |- ( B e. TopBases -> ( topGen ` B ) e. Top ) $=
      ( vu vv vx vy vt vz vw ctb wcel cv wss cuni wi wral wel wa wrex rsp eltg2
      ctg cfv wal cin ctop uniss adantl wceq unitg adantr sseqtrd eluni2 eltg2b
      ssel2 syl6bi imp31 an32s sylan2 an42s elssuni syl5com anim2d ad2antrl mpd
      sstr2 reximdv rexlimdvaa syl5bi ralrimiv jca ex sylibrd alrimiv inss1 tg1
      syl5ss simplbda syl im2anan9 reeanv 3imtr4g anandis biimpri ss2in anim12i
      elin basis2 adantllr adantrrr com12 ad2antll sylanr2 rexlimdva a2d syldan
      an4s imp ralrimivv cvv wb fvex istopg ax-mp sylanbrc ) AIJZBKZAUAUBZLZXFM
      ZXGJZNZBUCZXFCKZUDZXGJZCXGOBXGOZXGUEJZXEXKBXEXHXIAMZLZDEPZEKZXILZQZEARZDX
      IOZQZXJXEXHYFXEXHQZXSYEYGXIXGMZXRXHXIYHLXEXFXGUFUGXEYHXRUHXHAIUIUJUKYGYDD
      XIDKZXIJDFPZFXFRYGYDFYIXFULYGYJYDFXFYGFBPZYJQQXTYAFKZLZQZEARZYDXEYJXHYKYO
      XHYKQXEYJQYLXGJZYOXFXGYLUNXEYPYJYOXEYPYJYOXEYPYODYLOYJYONDEYLAIUMYODYLSUO
      UPUQURUSYKYOYDNYGYJYKYNYCEAYKYMYBXTYKYLXILYMYBYLXFUTYAYLXIVEVAVBVFVCVDVGV
      HVIVJVKDEXIAITVLVMXEXOBCXGXGXEXFXGJZXMXGJZQZXNXRLZYJYLXNLZQZFARZDXNOZQZXO
      XEYSUUEXEYSQZYTUUDYQYTXEYRYQXNXFXRXFXMVNXFAVOVPVCUUFUUCDXNXEYSYIXNJZDGPZG
      KZXFLZQZDHPZHKZXMLZQZQZHARZGARZNZUUGUUCNZXEYQYRUUSXEYQQZXEYRQZQDBPZDCPZQU
      UKGARZUUOHARZQUUGUURUVAUVCUVEUVBUVDUVFUVAUVEDXFOZUVCUVENXEYQXFXRLUVGDGXFA
      ITVQUVEDXFSVRUVBUVFDXMOZUVDUVFNXEYRXMXRLUVHDHXMAITVQUVFDXMSVRVSYIXFXMWFUU
      KUUOGHAAVTWAWBXEUUSUUTXEUUGUURUUCXEUUGUURUUCNXEUUGQZUUQUUCGAUVIUUIAJZQZUU
      PUUCHAUUPUVKUUMAJZYIUUIUUMUDZJZUVMXNLZQZUUCUUHUULUUJUUNUVPUUHUULQZUVNUUJU
      UNQUVOUVNUVQYIUUIUUMWFWCUUIXFUUMXMWDWEWPUVKUVLUVPQQYJYLUVMLZQZFARZUUCUVKU
      VLUVNUVTUVOXEUVJUVLUVNQUVTUUGFYIAUUIUUMWGWHWIUVPUVTUUCNZUVKUVLUVOUWAUVNUV
      OUVSUUBFAUVOUVRUUAYJUVRUVOUUAYLUVMXNVEWJVBVFUGWKVDWLVGWMVKWNWQWOVIVJVKDFX
      NAITVLWRXGWSJXQXLXPQWTAUAXABCWSXGXBXCXD $.

    $( The property ~ tgcl can be reversed: if the topology generated by ` B `
       is actually a topology, then ` B ` must be a topological basis.  This
       yields an alternative definition of ` TopBases ` .  (Contributed by
       Mario Carneiro, 2-Sep-2015.) $)
    tgclb $p |- ( B e. TopBases <-> ( topGen ` B ) e. Top ) $=
      ( vz vw vx vy ctb wcel ctg cfv ctop tgcl cin wss wrex wral cvv syl sselda
      cv wa c0 0opn bastg anim12dan inopn 3expb syldan tg2 ralrimiva ralrimivva
      elfvexd wb isbasis2g mpbird impbii ) AFGZAHIZJGZAKURUPBSZCSZGUTDSZESZLZMT
      CANZBVCOZEAODAOZURVEDEAAURVAAGZVBAGZTZTVCUQGZVEURVIVAUQGZVBUQGZTVJURVGVKV
      HVLURAUQVAURAPGZAUQMURUAHAUQUBUKZAPUCQZRURAUQVBVORUDURVKVLVJVAVBUQUEUFUGV
      JVDBVCCVCAUSUHUIQUJURVMUPVFULVNDEBCAPUMQUNUO $.

    $( A basis generates a topology on ` U. B ` .  (Contributed by Mario
       Carneiro, 14-Aug-2015.) $)
    tgtopon $p |- ( B e. TopBases -> ( topGen ` B ) e. ( TopOn ` U. B ) ) $=
      ( ctb wcel ctg ctop cuni wceq ctopon tgcl unitg eqcomd istopon sylanbrc
      cfv ) ABCZADNZECAFZPFZGPQHNCAIORQABJKQPLM $.

    $( A topology is its own basis.  (Contributed by NM, 17-Jul-2006.) $)
    topbas $p |- ( J e. Top -> J e. TopBases ) $=
      ( vz vw vx vy ctop wcel ctb cv cin wrex wral inopn 3expb simpr ssid jctir
      wss wa wceq eleq2 sseq1 anbi12d rspcev syl2an2r exp31 ralrimivv isbasis2g
      ralrimdv mpbird ) AFGZAHGBIZCIZGZUMDIZEIZJZRZSZCAKZBUQLZEALDALUKVADEAAUKU
      OAGZUPAGZSZUTBUQUKVDULUQGZUTUKVDSZUQAGZVEVEUQUQRZSZUTUKVBVCVGUOUPAMNVFVES
      VEVHVFVEOUQPQUSVICUQAUMUQTUNVEURVHUMUQULUAUMUQUQUBUCUDUEUFUIUGDEBCAFUHUJ
      $.

    $( A topology is its own basis.  (Contributed by NM, 18-Jul-2006.) $)
    tgtop $p |- ( J e. Top -> ( topGen ` J ) = J ) $=
      ( vx vy ctop wcel ctg cfv cv wss cuni wceq wex eltg3 simpr uniopn eqeltrd
      wa adantr expl exlimdv sylbid ssrdv bastg eqssd ) ADEZAFGZAUEBUFAUEBHZUFE
      CHZAIZUGUHJZKZQZCLUGAEZCUGADMUEULUMCUEUIUKUMUEUIQZUKQUGUJAUNUKNUNUJAEUKUH
      AORPSTUAUBADUCUD $.

    $( Membership in a topology, expressed without quantifiers.  (Contributed
       by NM, 19-Jul-2006.) $)
    eltop $p |- ( J e. Top -> ( A e. J <-> A C_ U. ( J i^i ~P A ) ) ) $=
      ( ctop wcel ctg cfv cpw cin cuni wss tgtop eleq2d eltg bitr3d ) BCDZABEFZ
      DABDABAGHIJOPBABKLABCMN $.

    $( Membership in a topology.  (Contributed by NM, 19-Jul-2006.) $)
    eltop2 $p |- ( J e. Top -> ( A e. J <->
                   A. x e. A E. y e. J ( x e. y /\ y C_ A ) ) ) $=
      ( ctop wcel ctg cfv cv wss wa wrex wral tgtop eleq2d eltg2b bitr3d ) DEFZ
      CDGHZFCDFAIBIZFTCJKBDLACMRSDCDNOABCDEPQ $.

    $( Membership in a topology.  (Contributed by NM, 19-Jul-2006.) $)
    eltop3 $p |- ( J e. Top -> ( A e. J <-> E. x ( x C_ J /\ A = U. x ) ) ) $=
      ( ctop wcel ctg cfv cv wss cuni wceq wa wex tgtop eleq2d eltg3 bitr3d ) C
      DEZBCFGZEBCEAHZCIBTJKLAMRSCBCNOABCDPQ $.

    $( A collection of finite intersections is a basis.  The initial set is a
       subbasis for the topology.  (Contributed by Jeff Hankins, 25-Aug-2009.)
       (Revised by Mario Carneiro, 24-Nov-2013.) $)
    fibas $p |- ( fi ` A ) e. TopBases $=
      ( vx vy cfi cfv cvv wcel cv cin wral ctb fvex fiin rgen2a fiinbas mp2an )
      ADEZFGBHZCHZIQGZCQJBQJQKGADLTBCQRSAMNBCQFOP $.

    $( A space has no more open sets than subsets of a basis.  (Contributed by
       Stefan O'Rear, 22-Feb-2015.)  (Revised by Mario Carneiro,
       9-Apr-2015.) $)
    tgdom $p |- ( B e. V -> ( topGen ` B ) ~<_ ~P B ) $=
      ( vx vy wcel cpw cvv ctg cfv cdom wbr pwexg cv cin wss inss1 wa wceq cuni
      eltg4i vpwex inex2 elpw mpbir unieq adantl ad2antrr ad2antlr 3eqtr4d pweq
      a1i ex ineq2d impbid1 dom2 syl ) ABEAFZGEAHIZUQJKABLCDURUQACMZFZNZADMZFZN
      ZGVAUQEZUSUREZVEVAAOAUTPVAAUTACUAUBUCUDUKVFVBUREZQZVAVDRZUSVBRZVHVIVJVHVI
      QVASZVDSZUSVBVIVKVLRVHVAVDUEUFVFUSVKRVGVIUSATUGVGVBVLRVFVIVBATUHUIULVJUTV
      CAUSVBUJUMUNUOUP $.
  $}

  ${
    $d x A $.  $d x y z B $.  $d x y z V $.
    $( The indexed union of a set of basic open sets is in the generated
       topology.  (Contributed by Mario Carneiro, 2-Sep-2015.) $)
    tgiun $p |- ( ( B e. V /\ A. x e. A C e. B ) ->
      U_ x e. A C e. ( topGen ` B ) ) $=
      ( wcel wral wa ciun cmpt crn cuni ctg cfv wceq dfiun3g adantl wss rnmptss
      eqid eltg3i sylan2 eqeltrd ) CEFZDCFABGZHABDIZABDJZKZLZCMNZUEUFUIOUDABDCP
      QUEUDUHCRUIUJFABDCUGUGTSUHCEUAUBUC $.

    $( The topology generator function is idempotent.  (Contributed by NM,
       18-Jul-2006.)  (Revised by Mario Carneiro, 2-Sep-2015.) $)
    tgidm $p |- ( B e. V ->
                 ( topGen ` ( topGen ` B ) ) = ( topGen ` B ) ) $=
      ( vx vy vz wcel ctg cfv cv wss cuni wceq wa wex cvv fvex eltg3 ax-mp ciun
      wb cpw cin uniiun simpr sselda eltg4i iuneq2dv syl5eq iuncom4 syl6eq wral
      syl inss1 rgenw iunss mpbir a1i eltg3i eqeltrd syl5ibrcom expimpd exlimdv
      sylan2 eleq1 syl5bi ssrdv bastg tgss sylancr eqssd ) ABFZAGHZGHZVLVKCVMVL
      CIZVMFZDIZVLJZVNVPKZLZMZDNZVKVNVLFZVLOFZVOWATAGPZDVNVLOQRVKVTWBDVKVQVSWBV
      KVQMZWBVSVRVLFWEVREVPAEIZUAZUBZSZKZVLWEVREVPWHKZSZWJWEVREVPWFSWLEVPUCWEEV
      PWFWKWEWFVPFMWFVLFWFWKLWEVPVLWFVKVQUDUEWFAUFULUGUHEVPWHUIUJVQVKWIAJZWJVLF
      WMVQWMWHAJZEVPUKWNEVPAWGUMUNEVPWHAUOUPUQWIABURVCUSVNVRVLVDUTVAVBVEVFVKWCA
      VLJVLVMJWDABVGAVLOVHVIVJ $.
  $}

  $( Two ways to express that a basis is a topology.  (Contributed by NM,
     18-Jul-2006.) $)
  bastop $p |- ( B e. TopBases -> ( B e. Top <-> ( topGen ` B ) = B ) ) $=
    ( ctb wcel ctop ctg cfv wceq tgtop tgcl eleq1 syl5ibcom impbid2 ) ABCZADCZA
    EFZAGZAHMODCPNAIOADJKL $.

  $( The topology generation function is one-to-one when applied to completed
     topologies.  (Contributed by NM, 18-Jul-2006.) $)
  tgtop11 $p |- ( ( J e. Top /\ K e. Top /\ ( topGen ` J ) = ( topGen ` K ) )
                 -> J = K ) $=
    ( ctop wcel ctg cfv wceq tgtop eqeqan12d biimp3a ) ACDZBCDZAEFZBEFZGABGKLMA
    NBAHBHIJ $.

  $( The singleton of the empty set is the only topology possible for an empty
     underlying set.  (Contributed by NM, 9-Sep-2006.) $)
  0top $p |- ( J e. Top -> ( U. J = (/) <-> J = { (/) } ) ) $=
    ( ctop wcel c0 csn wceq wo cuni olc wn 0opn n0i syl pm2.21d idd impbid2 wss
    jaod uni0b sssn bitr2i syl6rbb ) ABCZADEZFZADFZUEGZAHDFZUCUEUGUEUFIUCUFUEUE
    UCUFUEUCDACUFJAKADLMNUCUEORPUHAUDQUGASADTUAUB $.

  $( ` { (/) } ` is the only topology with one element.  (Contributed by FL,
     18-Aug-2008.) $)
  en1top $p |- ( J e. Top -> ( J ~~ 1o <-> J = { (/) } ) ) $=
    ( ctop wcel c1o cen wbr c0 csn wceq wi en1eqsn ex syl id 0ex ensn1 syl6eqbr
    0opn impbid1 ) ABCZADEFZAGHZIZTGACZUAUCJARUDUAUCGAKLMUCAUBDEUCNGOPQS $.

  ${
    $d x J $.  $d x X $.
    $( If a topology has two elements, it is the indiscrete topology.
       (Contributed by FL, 11-Aug-2008.)  (Revised by Mario Carneiro,
       10-Sep-2015.) $)
    en2top $p |- ( J e. ( TopOn ` X ) ->
      ( J ~~ 2o <-> ( J = { (/) , X } /\ X =/= (/) ) ) ) $=
      ( vx wcel c2o cen wbr c0 wceq wne wa c1o simprl sylibr syl 0ex mpd necomd
      adantr syl3anc ctopon cfv cpr simpr wn csdm wo csn cv wss ad2ant2rl sseq0
      toponss syl2anc velsn expr ssrdv ctop topontop ad2antrr snssd eqssd ensn1
      0opn syl6eqbr olcd sdom2en01 sdomnen ex necon2ad toponmax en2eqpr jca cvv
      wi a1i simprr pr2nelem eqbrtrd impbida ) ABUAUBDZAEFGZAHBUCZIZBHJZKZWAWBK
      ZWDWEWGHBJZWDWGBHWGWBWEWAWBUDZWGWBBHWGBHIZWBUEZWGWJKZAEUFGZWKWLAHIZALFGZU
      GWMWLWOWNWLAHUHZLFWLAWPWLCAWPWGWJCUIZADZWQWPDZWGWJWRKKZWQHIZWSWTWQBUJZWJX
      AWAWRXBWBWJWQABUMUKWGWJWRMWQBULUNCHUONUPUQWLHAWAHADZWBWJWAAURDXCBAUSAVDOZ
      UTVAVBHPVCVEVFAVGNAEVHOVIVJQZRWGWBXCBADZWHWDVOWIWAXCWBXDSWAXFWBBAVKZSHBAV
      LTQXEVMWAWFKZAWCEFWAWDWEMXHHVNDZXFWHWCEFGXIXHPVPWAXFWFXGSXHBHWAWDWEVQRHBV
      NAVRTVSVT $.
  $}

  ${
    $d x y z B $.  $d x y z C $.  $d x y z J $.  $d x y V $.
    $( A criterion for determining whether one topology is finer than another.
       Lemma 2.2 of [Munkres] p. 80 using abbreviations.  (Contributed by NM,
       20-Jul-2006.)  (Proof shortened by Mario Carneiro, 2-Sep-2015.) $)
    tgss3 $p |- ( ( B e. V /\ C e. W ) ->
      ( ( topGen ` B ) C_ ( topGen ` C ) <-> B C_ ( topGen ` C ) ) ) $=
      ( wcel wa ctg cfv wss wi bastg adantr sstr2 syl fvex tgss mpan wceq tgidm
      cvv adantl sseq2d syl5ib impbid ) ACEZBDEZFZAGHZBGHZIZAUIIZUGAUHIZUJUKJUE
      ULUFACKLAUHUIMNUKUHUIGHZIZUGUJUITEUKUNBGOAUITPQUGUMUIUHUFUMUIRUEBDSUAUBUC
      UD $.

    $( A criterion for determining whether one topology is finer than another,
       based on a comparison of their bases.  Lemma 2.2 of [Munkres] p. 80.
       (Contributed by NM, 20-Jul-2006.)  (Proof shortened by Mario Carneiro,
       2-Sep-2015.) $)
    tgss2 $p |- ( ( B e. V /\ U. B = U. C ) ->
                    ( ( topGen ` B ) C_ ( topGen ` C ) <->
     A. x e. U. B A. y e. B ( x e. y -> E. z e. C ( x e. z /\ z C_ y ) ) ) ) $=
      ( wcel cuni wa ctg cfv wss wel cv wi wral cvv wb syl ralbidva wceq uniexg
      wrex simpr adantr eqeltrrd uniexb sylibr tgss3 syldan eltg2b elunii biimt
      ancoms sylan9bb ralcom3 syl6bb dfss3 ralcom 3bitr4g bitrd ) DFGZDHZEHZUAZ
      IZDJKEJKZLZDVGLZABMZACMCNBNZLICEUCZOZBDPAVCPZVBVEEQGZVHVIRVFVDQGVOVFVCVDQ
      VBVEUDVBVCQGVEDFUBUEUFEUGUHZDEFQUIUJVFVKVGGZBDPVMAVCPZBDPVIVNVFVQVRBDVFVK
      DGZIVQANZVCGZVLOZAVKPZVRVFVQVLAVKPZVSWCVFVOVQWDRVPACVKEQUKSVSVLWBAVKVSVJI
      WAVLWBRVJVSWAVTVKDULUNWAVLUMSTUOVLAVKVCUPUQTBDVGURVMABVCDUSUTVA $.

    $( Given a topology ` J ` , show that a subset ` B ` satisfying the third
       antecedent is a basis for it.  Lemma 2.3 of [Munkres] p. 81 using
       abbreviations.  (Contributed by NM, 22-Jul-2006.)  (Revised by Mario
       Carneiro, 2-Sep-2015.) $)
    basgen $p |- ( ( J e. Top /\ B C_ J /\ J C_ ( topGen ` B ) ) ->
      ( topGen ` B ) = J ) $=
      ( ctop wcel wss ctg cfv w3a tgss 3adant3 wceq tgtop 3ad2ant1 simp3 eqssd
      sseqtrd ) BCDZABEZBAFGZEZHZSBUASBFGZBQRSUBETABCIJQRUBBKTBLMPQRTNO $.

    $( Given a topology ` J ` , show that a subset ` B ` satisfying the third
       antecedent is a basis for it.  Lemma 2.3 of [Munkres] p. 81.
       (Contributed by NM, 20-Jul-2006.)  (Proof shortened by Mario Carneiro,
       2-Sep-2015.) $)
    basgen2 $p |- ( ( J e. Top /\ B C_ J /\ A. x e. J A. y e. x E. z e. B
            ( y e. z /\ z C_ x ) ) -> ( topGen ` B ) = J ) $=
      ( ctop wcel wss cv wa wrex wral ctg cfv wceq dfss3 cvv wb ssexg ancoms
      eltg2b syl ralbidv syl5bb biimp3ar basgen syld3an3 ) EFGZDEHZBICIZGUJAIZH
      JCDKBUKLZAELZEDMNZHZUNEOUHUIUOUMUOUKUNGZAELUHUIJZUMAEUNPUQUPULAEUQDQGZUPU
      LRUIUHURDEFSTBCUKDQUAUBUCUDUEDEUFUG $.

    $( Conditions that determine the equality of two generated topologies.
       (Contributed by NM, 8-May-2007.)  (Revised by Mario Carneiro,
       2-Sep-2015.) $)
    2basgen $p |- ( ( B C_ C /\ C C_ ( topGen ` B ) ) ->
      ( topGen ` B ) = ( topGen ` C ) ) $=
      ( wss ctg cfv wa cvv wcel fvex ssex adantl simpl tgss syl2anc simpr ssexg
      wb sylan2 tgss3 mpbird eqssd ) ABCZBADEZCZFZUCBDEZUEBGHZUBUCUFCUDUGUBBUCA
      DIJZKZUBUDLABGMNUEUFUCCZUDUBUDOUEUGAGHZUJUDQUIUDUBUGUKUHABGPRBAGGSNTUA $.

    $( If a subbase is included into a topology, so is the generated topology.
       (Contributed by FL, 20-Apr-2012.)  (Proof shortened by Mario Carneiro,
       10-Jan-2015.) $)
    tgfiss $p |- ( ( J e. Top /\ A C_ J ) -> ( topGen ` ( fi ` A ) ) C_ J ) $=
      ( ctop wcel wss wa cfi cfv ctg fiss wceq fitop adantr sseqtrd tgss syldan
      tgtop ) BCDZABEZFZAGHZIHZBIHZBRSUABEUBUCETUABGHZBABCJRUDBKSBLMNUABCOPRUCB
      KSBQMN $.

    $( A generated topology is not affected by the addition or removal of the
       empty set from the base.  (Contributed by Mario Carneiro,
       28-Aug-2015.) $)
    tgdif0 $p |- ( topGen ` ( B \ { (/) } ) ) = ( topGen ` B ) $=
      ( vx cvv wcel c0 csn cdif ctg cfv wceq cv cpw cin wss cab tgval syl fvprc
      cuni wn indif1 unieqi unidif0 eqtri sseq2i difexg 3eqtr4a difsnexi eqtr4d
      abbii con3i pm2.61i ) ACDZAEFZGZHIZAHIZJUMBKZUOURLZMZSZNZBOZURAUSMZSZNZBO
      UPUQVBVFBVAVEURVAVDUNGZSVEUTVGAUSUNUAUBVDUCUDUEUJUMUOCDZUPVCJAUNCUFBUOCPQ
      BACPUGUMTZUPEUQVIVHTUPEJVHUMEAUHUKUOHRQAHRUIUL $.
  $}

  ${
    $d x y B $.  $d x y J $.
    $( A subset of a topology is a basis for the topology iff every member of
       the topology is a union of members of the basis.  We use the
       idiom " ` ( topGen `` B ) = J ` " to express " ` B ` is a basis for
       topology ` J ` ," since we do not have a separate notation for this.
       Definition 15.35 of [Schechter] p. 428.  (Contributed by NM,
       2-Feb-2008.)  (Proof shortened by Mario Carneiro, 2-Sep-2015.) $)
    bastop1 $p |- ( ( J e. Top /\ B C_ J ) -> ( ( topGen ` B ) = J <->
      A. x e. J E. y ( y C_ B /\ x = U. y ) ) ) $=
      ( ctop wcel wss wa ctg cfv wceq cv wral cuni wex wb tgss tgtop syl cvv
      adantr sseqtrd eqss baib dfss3 syl6bb ssexg ancoms eltg3 ralbidv bitrd )
      DEFZCDGZHZCIJZDKZALZUOFZADMZBLZCGUQUTNKHBOZADMUNUPDUOGZUSUNUODGZUPVBPUNUO
      DIJZDCDEQULVDDKUMDRUAUBUPVCVBUODUCUDSADUOUEUFUNURVAADUNCTFZURVAPUMULVECDE
      UGUHBUQCTUISUJUK $.

    $( A version of ~ bastop1 that doesn't have ` B C_ J ` in the antecedent.
       (Contributed by NM, 3-Feb-2008.) $)
    bastop2 $p |- ( J e. Top -> ( ( topGen ` B ) = J <->
           ( B C_ J /\ A. x e. J E. y ( y C_ B /\ x = U. y ) ) ) ) $=
      ( ctop wcel ctg cfv wceq wss wa cv cuni wex wral ctb eleq1 biimparc tgclb
      sylibr bastg syl simpr sseqtrd ex pm4.71rd bastop1 pm5.32da bitrd ) DEFZC
      GHZDIZCDJZULKUMBLZCJALUNMIKBNADOZKUJULUMUJULUMUJULKZCUKDUPCPFZCUKJUPUKEFZ
      UQULURUJUKDEQRCSTCPUAUBUJULUCUDUEUFUJUMULUOABCDUGUHUI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Examples of topologies
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y A $.  $d x y V $.
    $( The discrete topology on a set ` A ` .  Part of Example 2 in [Munkres]
       p. 77.  (Contributed by FL, 17-Jul-2006.)  (Revised by Mario Carneiro,
       19-Mar-2015.) $)
    distop $p |- ( A e. V -> ~P A e. Top ) $=
      ( vx vy wcel cpw ctop cv wss cuni wal cin wral uniss elpw a1i selpw sylbi
      wi cvv unipw syl6sseq vuniex sylibr ax-gen ssinss1 inex2 syl6ibr ralrimiv
      vex com12 rgen wa wb pwexg istopg syl mpbir2and ) ABEZAFZGEZCHZUTIZVBJZUT
      EZSZCKZVBDHZLZUTEZDUTMZCUTMZVGUSVFCVCVDAIVEVCVDUTJAVBUTNAUAUBVDACUCOUDUEP
      VLUSVKCUTVBUTEZVJDUTVMVBAIZVHUTEZVJSCAQVOVNVJVOVHAIZVNVJSDAQVPVNVIAIZVJVN
      VQSVPVBVHAUFPVIAVHVBDUJUGOUHRUKRUIULPUSUTTEVAVGVLUMUNABUOCDTUTUPUQUR $.

    ${
      $d x y $.
      $( The class of all topologies is a proper class.  The proof uses
         discrete topologies and ~ pwnex ; an alternate proof uses indiscrete
         topologies (see ~ indistop ) and the analogue of ~ pwnex with pairs
         ` { (/) , x } ` instead of power sets ` ~P x ` (that analogue is also
         a consequence of ~ abnex ).  (Contributed by BJ, 2-May-2021.) $)
      topnex $p |- Top e/ _V $=
        ( vy vx ctop cvv wcel cv cpw wceq wex cab pwnex neli distop ax-mp eleq1
        wss vex mpbiri exlimiv abssi ssexg mpan mto nelir ) CDCDEZAFZBFZGZHZBIZ
        AJZDEZUKDABKLUKCPUEULUJACUIUFCEZBUIUMUHCEZUGDEUNBQUGDMNUFUHCORSTUKCDUAU
        BUCUD $.
    $}

    $( The discrete topology on a set ` A ` , with base set.  (Contributed by
       Mario Carneiro, 13-Aug-2015.) $)
    distopon $p |- ( A e. V -> ~P A e. ( TopOn ` A ) ) $=
      ( wcel cpw ctop cuni wceq ctopon cfv distop unipw eqcomi istopon sylanbrc
      a1i ) ABCZADZECAQFZGZQAHICABJSPRAAKLOAQMN $.

    $( The singleton of the empty set is a topology on the empty set.
       (Contributed by Mario Carneiro, 13-Aug-2015.) $)
    sn0topon $p |- { (/) } e. ( TopOn ` (/) ) $=
      ( c0 cpw csn ctopon cfv pw0 cvv wcel 0ex distopon ax-mp eqeltrri ) ABZACA
      DEZFAGHMNHIAGJKL $.

    $( The singleton of the empty set is a topology.  (Contributed by Stefan
       Allan, 3-Mar-2006.)  (Proof shortened by Mario Carneiro,
       13-Aug-2015.) $)
    sn0top $p |- { (/) } e. Top $=
      ( c0 csn sn0topon topontopi ) AABCD $.

    $( A lemma to eliminate some sethood hypotheses when dealing with the
       indiscrete topology.  (Contributed by Mario Carneiro, 14-Aug-2015.) $)
    indislem $p |- { (/) , ( _I ` A ) } = { (/) , A } $=
      ( cvv wcel c0 cid cfv cpr wceq fvi preq2d csn dfsn2 eqcomi prprc2 3eqtr4a
      wn fvprc pm2.61i ) ABCZDAEFZGZDAGZHSTADABIJSPZDDGZDKZUAUBUEUDDLMUCTDDAEQJ
      DANOR $.

    $( The indiscrete topology on a set ` A ` .  Part of Example 2 in [Munkres]
       p. 77.  (Contributed by Mario Carneiro, 13-Aug-2015.) $)
    indistopon $p |- ( A e. V -> { (/) , A } e. ( TopOn ` A ) ) $=
      ( vx vy wcel c0 cuni wceq wi cin wo unieq 0ex syl6eqel a1i jaod wa ex cvv
      syl6eq cpr ctop ctopon cfv wss wal wral csn sspr uni0 prid1 eqeltri unisn
      cv unisng sylan9eqr prid2g adantr eqeltrd cun uniprg mpan uncom un0 eqtri
      syl5bi alrimiv vex elpr simpr ineq2d in0 simpl ineq1d ineq12 adantl inidm
      0in ccased expdimp ralrimiv wb prex istopg mp1i mpbir2and eqcomd sylanbrc
      istopon ) ABEZFAUAZUBEZAWKGZHWKAUCUDEWJWLCUNZWKUEZWNGZWKEZIZCUFZWNDUNZJZW
      KEZDWKUGZCWKUGZWJWRCWOWNFHZWNFUHZHZKZWNAUHZHZWNWKHZKZKWJWQWNFAUIWJXHWQXLW
      JXEWQXGXEWQIWJXEWPFGZWKWNFLXMFWKUJFAMUKZULNOXGWQIWJXGWPXFGZWKWNXFLXOFWKFM
      UMXNULNOPWJXJWQXKWJXJWQWJXJQWPAWKXJWJWPXIGAWNXILABUOUPWJAWKEZXJFABUQZURUS
      RWJXKWQWJXKQWPAWKXKWJWPWMAWNWKLWJWMFAUTZAFSEWJWMXRHMFASBVAVBXRAFUTAFAVCAV
      DVETZUPWJXPXKXQURUSRPPVFVGWJXCCWKWNWKEXEWNAHZKZWJXCWNFACVHVIWJYAXCWJYAQZX
      BDWKWTWKEWTFHZWTAHZKZYBXBWTFADVHVIWJYAYEXBWJXEYCXTYDXBXEYCQZXBIWJYFXAFWKY
      FXAWNFJZFYFWTFWNXEYCVJVKWNVLZTXNNOXTYCQZXBIWJYIXAFWKYIXAYGFYIWTFWNXTYCVJV
      KYHTXNNOXEYDQZXBIWJYJXAFWKYJXAFWTJFYJWNFWTXEYDVMVNWTVRTXNNOWJXTYDQZXBWJYK
      QZXAAWKYLXAAAJZAYKXAYMHWJWNAWTAVOVPAVQTWJXPYKXQURUSRVSVTVFWARVFWAWKSEWLWS
      XDQWBWJFAWCCDSWKWDWEWFWJWMAXSWGAWKWIWH $.

    $( The indiscrete topology on a set ` A ` .  Part of Example 2 in [Munkres]
       p. 77.  (Contributed by FL, 16-Jul-2006.)  (Revised by Stefan Allan,
       6-Nov-2008.)  (Revised by Mario Carneiro, 13-Aug-2015.) $)
    indistop $p |- { (/) , A } e. Top $=
      ( c0 cid cfv cpr ctop indislem cvv wcel ctopon indistopon ax-mp topontopi
      fvex eqeltrri ) BACDZEZBAEFAGPQPHIQPJDIACNPHKLMO $.

    $( The base set of the indiscrete topology.  (Contributed by Mario
       Carneiro, 14-Aug-2015.) $)
    indisuni $p |- ( _I ` A ) = U. { (/) , A } $=
      ( cid cfv c0 cpr ctopon indislem cvv wcel fvex indistopon ax-mp toponunii
      eqeltrri ) ABCZDAEZDOEZPOFCZAGOHIQRIABJOHKLNM $.
  $}

  ${
    $d x y z A $.
    $( The finite complement topology on a set ` A ` .  Example 3 in [Munkres]
       p. 77.  (Contributed by FL, 15-Aug-2006.)  (Revised by Mario Carneiro,
       13-Aug-2015.) $)
    fctop $p |- ( A e. V ->
        { x e. ~P A | ( ( A \ x ) e. Fin \/ x = (/) ) } e. ( TopOn ` A ) ) $=
      ( vy vz wcel cv cdif cfn c0 wceq wo wss difeq2 eleq1d eqeq1 orbi12d elrab
      wa cvv cpw crab ctop cuni ctopon cfv wi wal cin wral uniss ssrab2 sspwuni
      mpbi syl6ss vuniex elpw sylibr wn uni0c notbii rexnal bitr4i ssel2 simprd
      wrex sylib ord con1d imp elssuni sscond ssfi sylan2 expcom ad2antlr exp31
      mpd rexlimdv syl5bi orrd sylanbrc ax-gen ssinss1 vex 3imtr4i ad2antrr cun
      inex1 difindi unfi syl5eqel orcd ineq1 0in syl6eq olcd ineq2 in0 ad2ant2l
      ccase2 jca anbi12i rgen2a pm3.2i wb pwexg rabexg istopg 3syl mpbiri pwidg
      0fin orci a1i difid syl eqssd istopon ) BCFZBAGZHZIFZYAJKZLZABUAZUBZUCFZB
      YGUDZKYGBUEUFFXTYHDGZYGMZYJUDZYGFZUGZDUHZYJEGZUIZYGFZEYGUJDYGUJZSZYOYSYND
      YKYLYFFZBYLHZIFZYLJKZLZYMYKYLBMUUAYKYLYIBYJYGUKYGYFMYIBMZYEAYFULYGBUMUNZU
      OYLBDUPUQURYKUUCUUDYKUUDUUCUUDUSZYPJKZUSZEYJVFZYKUUCUUHUUIEYJUJZUSUUKUUDU
      ULEYJUTVAUUIEYJVBVCYKUUJUUCEYJYKYPYJFZUUJUUCYKUUMSZUUJSBYPHZIFZUUCUUNUUJU
      UPUUNUUPUUIUUNUUPUUIUUNYPYFFZUUPUUILZUUNYPYGFZUUQUURSZYJYGYPVDYEUURAYPYFY
      AYPKZYCUUPYDUUIUVAYBUUOIYAYPBNOYAYPJPQRZVGVEVHVIVJUUMUUPUUCUGYKUUJUUPUUMU
      UCUUMUUPUUBUUOMUUCUUMYPYLBYPYJVKVLUUOUUBVMVNVOVPVRVQVSVTVIWAYEUUEAYLYFYAY
      LKZYCUUCYDUUDUVCYBUUBIYAYLBNOYAYLJPQRWBWCYRDEYGYJYFFZBYJHZIFZYJJKZLZSZUUT
      SZYQYFFZBYQHZIFZYQJKZLZSYJYGFZUUSSYRUVJUVKUVOUVDUVKUVHUUTYJBMYQBMUVDUVKYJ
      YPBWDYJBDWEZUQYQBYJYPUVQWIUQWFWGUVHUURUVOUVDUUQUVFUUPUVGUUIUVOUVFUUPSZUVM
      UVNUVRUVLUVEUUOWHIBYJYPWJUVEUUOWKWLWMUVGUVNUVMUVGYQJYPUIJYJJYPWNYPWOWPWQU
      UIUVNUVMUUIYQYJJUIJYPJYJWRYJWSWPWQXAWTXBUVPUVIUUSUUTYEUVHAYJYFYAYJKZYCUVF
      YDUVGUVSYBUVEIYAYJBNOYAYJJPQRUVBXCYEUVOAYQYFYAYQKZYCUVMYDUVNUVTYBUVLIYAYQ
      BNOYAYQJPQRWFXDXEXTYFTFYGTFYHYTXFBCXGYEAYFTXHDETYGXIXJXKXTBYIXTBYGFZBYIMX
      TBYFFJIFZBJKZLZUWABCXLUWDXTUWBUWCXMXNXOYEUWDABYFYABKZYCUWBYDUWCUWEYBJIUWE
      YBBBHJYABBNBXPWPOYABJPQRWBBYGVKXQUUFXTUUGXOXRBYGXSWB $.

    $( The finite complement topology on a set ` A ` .  Example 3 in [Munkres]
       p. 77.  (This version of ~ fctop requires the Axiom of Infinity.)
       (Contributed by FL, 20-Aug-2006.) $)
    fctop2 $p |- ( A e. V ->
        { x e. ~P A | ( ( A \ x ) ~< _om \/ x = (/) ) } e. ( TopOn ` A ) ) $=
      ( wcel cv cdif com csdm wbr c0 wceq wo cpw cfn ctopon cfv isfinite orbi1i
      crab wb a1i rabbiia fctop syl5eqelr ) BCDBAEZFZGHIZUEJKZLZABMZSUFNDZUHLZA
      UJSBOPULUIAUJULUITUEUJDUKUGUHUFQRUAUBABCUCUD $.

    $( The countable complement topology on a set ` A ` .  Example 4 in
       [Munkres] p. 77.  (Contributed by FL, 23-Aug-2006.)  (Revised by Mario
       Carneiro, 13-Aug-2015.) $)
    cctop $p |- ( A e. V ->
        { x e. ~P A | ( ( A \ x ) ~<_ _om \/ x = (/) ) } e. ( TopOn ` A ) ) $=
      ( vy vz wcel cdif com cdom wbr c0 wceq wo wss difeq2 breq1d eqeq1 orbi12d
      wa cvv cv cpw crab ctop cuni ctopon cfv wal cin wral uniss ssrab2 sspwuni
      wi mpbi syl6ss vuniex elpw sylibr wn wrex uni0c notbii rexnal ssel2 elrab
      bitr4i sylib simprd ord con1d imp ctex adantl simpllr elssuni 3syl ssdomg
      sscon sylc domtr sylancom mpdan exp31 rexlimdv syl5bi orrd ax-gen ssinss1
      sylanbrc vex inex1 3imtr4i ad2antrr cun difindi unctb syl5eqbr orcd ineq1
      0in syl6eq olcd ineq2 in0 ccase2 ad2ant2l jca syl2anb rgen2a pm3.2i pwexg
      wb rabexg istopg mpbiri pwidg omex 0dom orci a1i difid syl eqssd istopon
      ) BCFZBAUAZGZHIJZYGKLZMZABUBZUCZUDFZBYMUEZLYMBUFUGFYFYNDUAZYMNZYPUEZYMFZU
      NZDUHZYPEUAZUIZYMFZEYMUJDYMUJZSZUUAUUEYTDYQYRYLFZBYRGZHIJZYRKLZMZYSYQYRBN
      UUGYQYRYOBYPYMUKYMYLNYOBNZYKAYLULYMBUMUOZUPYRBDUQURUSYQUUIUUJYQUUJUUIUUJU
      TZUUBKLZUTZEYPVAZYQUUIUUNUUOEYPUJZUTUUQUUJUUREYPVBVCUUOEYPVDVGYQUUPUUIEYP
      YQUUBYPFZUUPUUIYQUUSSZUUPSZBUUBGZHIJZUUIUUTUUPUVCUUTUVCUUOUUTUVCUUOUUTUUB
      YLFZUVCUUOMZUUTUUBYMFZUVDUVESZYPYMUUBVEYKUVEAUUBYLYGUUBLZYIUVCYJUUOUVHYHU
      VBHIYGUUBBOPYGUUBKQRVFZVHVIVJVKVLUVAUVCUUHUVBIJZUUIUVAUVCSZUVBTFZUUHUVBNZ
      UVJUVCUVLUVAUVBVMVNUVKUUSUUBYRNUVMYQUUSUUPUVCVOUUBYPVPUUBYRBVSVQUUHUVBTVR
      VTUUHUVBHWAWBWCWDWEWFVKWGYKUUKAYRYLYGYRLZYIUUIYJUUJUVNYHUUHHIYGYRBOPYGYRK
      QRVFWJWHUUDDEYMYPYMFZUVFSUUCYLFZBUUCGZHIJZUUCKLZMZSZUUDUVOYPYLFZBYPGZHIJZ
      YPKLZMZSZUVGUWAUVFYKUWFAYPYLYGYPLZYIUWDYJUWEUWHYHUWCHIYGYPBOPYGYPKQRVFUVI
      UWGUVGSUVPUVTUWBUVPUWFUVGYPBNUUCBNUWBUVPYPUUBBWIYPBDWKZURUUCBYPUUBUWIWLUR
      WMWNUWFUVEUVTUWBUVDUWDUVCUWEUUOUVTUWDUVCSZUVRUVSUWJUVQUWCUVBWOHIBYPUUBWPU
      WCUVBWQWRWSUWEUVSUVRUWEUUCKUUBUIKYPKUUBWTUUBXAXBXCUUOUVSUVRUUOUUCYPKUIKUU
      BKYPXDYPXEXBXCXFXGXHXIYKUVTAUUCYLYGUUCLZYIUVRYJUVSUWKYHUVQHIYGUUCBOPYGUUC
      KQRVFUSXJXKYFYLTFYMTFYNUUFXMBCXLYKAYLTXNDETYMXOVQXPYFBYOYFBYMFZBYONYFBYLF
      KHIJZBKLZMZUWLBCXQUWOYFUWMUWNHXRXSXTYAYKUWOABYLYGBLZYIUWMYJUWNUWPYHKHIUWP
      YHBBGKYGBBOBYBXBPYGBKQRVFWJBYMVPYCUULYFUUMYAYDBYMYEWJ $.
  $}

  ${
    $d v w x y z A $.  $d v w x y z P $.  $d w x y z V $.
    $( The particular point topology.  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    ppttop $p |- ( ( A e. V /\ P e. A ) ->
        { x e. ~P A | ( P e. x \/ x = (/) ) } e. ( TopOn ` A ) ) $=
      ( vy vz wcel wa c0 wceq wo wss wn syl syl5bi eleq2 eqeq1 orbi12d sylanbrc
      elrab cv cpw crab ctop cuni ctopon cfv wi wal cin wral ssrab simprl sylib
      sspwuni vuniex elpw sylibr wex neq0 wrex eluni2 r19.29 n0i simpl ord mt3d
      adantl elunii syl2anc rexlimiva ex ad2antll exlimdv con1d alrimiv anbi12i
      orrd inss1 simprll elpwid syl5ss vex inex1 ianor xchnxbir simprlr simprrr
      elin orim12d inss ss0b orbi12i 3imtr3i syl6 ralrimivv cvv wb pwexg adantr
      rabexg istopg mpbir2and pwidg simpr orcd elssuni ssrab2 a1i eqssd istopon
      mpbi ) BDGZCBGZHZCAUAZGZXPIJZKZABUBZUCZUDGZBYAUEZJYABUFUGGXOYBEUAZYALZYDU
      EZYAGZUHZEUIZYDFUAZUJZYAGZFYAUKEYAUKZXOYHEYEYDXTLZXSAYDUKZHZXOYGXSAXTYDUL
      XOYPYGXOYPHZYFXTGZCYFGZYFIJZKZYGYQYFBLZYRYQYNUUBXOYNYOUMYDBUOUNYFBEUPUQUR
      YQYSYTYQYTYSYTMYJYFGZFUSYQYSFYFUTYQUUCYSFUUCYJXPGZAYDVAZYQYSAYJYDVBYOUUEY
      SUHXOYNYOUUEYSYOUUEHXSUUDHZAYDVAYSXSUUDAYDVCUUFYSAYDXPYDGZUUFHXQUUGYSUUFX
      QUUGUUFXQXRUUDXRMXSXPYJVDVHUUFXQXRXSUUDVEVFVGVHUUGUUFVECXPYDVIVJVKNVLVMOV
      NOVOVRXSUUAAYFXTXPYFJXQYSXRYTXPYFCPXPYFIQRTSVLOVPXOYLEFYAYAYDYAGZYJYAGZHY
      DXTGZCYDGZYDIJZKZHZYJXTGZCYJGZYJIJZKZHZHZXOYLUUHUUNUUIUUSXSUUMAYDXTXPYDJX
      QUUKXRUULXPYDCPXPYDIQRTXSUURAYJXTXPYJJXQUUPXRUUQXPYJCPXPYJIQRTVQXOUUTYLXO
      UUTHZYKXTGZCYKGZYKIJZKZYLUVAYKBLUVBUVAYKYDBYDYJVSUVAYDBXOUUJUUMUUSVTWAWBY
      KBYDYJEWCWDUQURUVAUVCUVDUVAUVCMZUULUUQKZUVDUVFUUKMZUUPMZKZUVAUVGUUKUUPHUV
      JUVCUUKUUPWECYDYJWIWFUVAUVHUULUVIUUQUVAUUKUULXOUUJUUMUUSWGVFUVAUUPUUQXOUU
      NUUOUURWHVFWJOYDILZYJILZKYKILUVGUVDYDYJIWKUVKUULUVLUUQYDWLYJWLWMYKWLWNWOV
      RXSUVEAYKXTXPYKJXQUVCXRUVDXPYKCPXPYKIQRTSVLOWPXOYAWQGZYBYIYMHWRXOXTWQGZUV
      MXMUVNXNBDWSWTXSAXTWQXANEFWQYAXBNXCXOBYCXOBYAGZBYCLXOBXTGZXNBIJZKZUVOXMUV
      PXNBDXDWTXOXNUVQXMXNXEXFXSUVRABXTXPBJXQXNXRUVQXPBCPXPBIQRTSBYAXGNYCBLZXOY
      AXTLUVSXSAXTXHYABUOXLXIXJBYAXKS $.

    $( The particular point topology is generated by a basis consisting of
       pairs ` { x , P } ` for each ` x e. A ` .  (Contributed by Mario
       Carneiro, 3-Sep-2015.) $)
    pptbas $p |- ( ( A e. V /\ P e. A ) ->
        { x e. ~P A | ( P e. x \/ x = (/) ) } =
        ( topGen ` ran ( x e. A |-> { x , P } ) ) ) $=
      ( vy vw vv vz wcel wa cv cpr c0 wceq wo wss wral eleq2 eqeq1 orbi12d cmpt
      crn ctg cfv cpw crab ctop wrex ctopon ppttop topontop syl wf simpr simplr
      prssi prex elpw sylibr prid2g ad2antlr orcd elrab sylanbrc eqid fmptd frn
      syl2anc elpwi ad2antrl sselda prid1g adantl wn n0i simplrr ord mt3d preq1
      eleq2d sseq1d rspcev syl12anc cvv wb rgenw sseq1 rexrnmpt ax-mp ralrimiva
      anbi12d ex syl5bi ralrimiv basgen2 syl3anc cbvrabv syl6req ) BDIZCBIZJZAB
      AKZCLZUAZUBZUCUDZCEKZIZXGMNZOZEBUEZUFZCXBIZXBMNZOZAXKUFXAXLUGIZXEXLPZFKZG
      KZIZXSHKZPZJZGXEUHZFYAQZHXLQXFXLNXAXLBUIUDIXPEBCDUJBXLUKULXABXLXDUMXQXAAB
      XCXLXDXAXBBIZJZXCXKIZCXCIZXCMNZOZXCXLIYGXCBPZYHYGYFWTYLXAYFUNWSWTYFUOXBCB
      UPVHXCBXBCUQZURUSYGYIYJWTYIWSYFXBCBUTVAVBXJYKEXCXKXGXCNXHYIXIYJXGXCCRXGXC
      MSTVCVDXDVEZVFBXLXDVGULXAYEHXLYAXLIYAXKIZCYAIZYAMNZOZJZXAYEXJYREYAXKXGYAN
      XHYPXIYQXGYACRXGYAMSTVCXAYSYEXAYSJZYDFYAYTXRYAIZJZXRXCIZXCYAPZJZABUHZYDUU
      BXRBIXRXRCLZIZUUGYAPZUUFYTYABXRYOYABPXAYRYABVIVJVKUUAUUHYTXRCYAVLVMUUBUUA
      YPUUIYTUUAUNUUBYPYQUUAYQVNYTYAXRVOVMUUBYPYQXAYOYRUUAVPVQVRXRCYAUPVHUUEUUH
      UUIJAXRBXBXRNZUUCUUHUUDUUIUUJXCUUGXRXBXRCVSZVTUUJXCUUGYAUUKWAWKWBWCXCWDIZ
      ABQYDUUFWEUULABYMWFYCUUEAGBXCXDWDYNXSXCNXTUUCYBUUDXSXCXRRXSXCYAWGWKWHWIUS
      WJWLWMWNHFGXEXLWOWPXJXOEAXKXGXBNXHXMXIXNXGXBCRXGXBMSTWQWR $.
  $}

  ${
    $d x y z A $.  $d x y z P $.  $d y z V $.
    $( The excluded point topology.  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    epttop $p |- ( ( A e. V /\ P e. A ) ->
        { x e. ~P A | ( P e. x -> x = A ) } e. ( TopOn ` A ) ) $=
      ( vy vz wcel wa cv wceq wss wral adantr syl eleq2 eqeq1 imbi12d elrab cvv
      wi cpw crab ctop cuni ctopon cfv wal cin ssrab simprl sspwuni vuniex elpw
      sylib sylibr wrex eluni2 r19.29 simpr elssuni eqsstr3d rexlimiva ad2antll
      impr ex syl5bi jctild eqss syl6ibr sylanbrc alrimiv simprll elpwid syl5ss
      inss1 vex inex1 elin simprlr simprrr anim12d ineq12 inidm syl6eq syl6 jca
      anbi12i ralrimivv wb pwexg rabexg istopg mpbir2and pwidg eqidd a1d ssrab2
      3imtr4g mpbi a1i eqssd istopon ) BDGZCBGZHZCAIZGZXFBJZTZABUAZUBZUCGZBXKUD
      ZJXKBUEUFGXEXLEIZXKKZXNUDZXKGZTZEUGZXNFIZUHZXKGZFXKLEXKLZXEXREXOXNXJKZXIA
      XNLZHZXEXQXIAXJXNUIXEYFXQXEYFHZXPXJGZCXPGZXPBJZTZXQYGXPBKZYHYGYDYLXEYDYEU
      JXNBUKUNZXPBEULUMUOYGYIYLBXPKZHYJYGYIYNYLYIXGAXNUPZYGYNACXNUQYEYOYNTXEYDY
      EYOYNYEYOHXIXGHZAXNUPYNXIXGAXNURYPYNAXNXFXNGZYPHBXFXPYQXIXGXHYQXIUSVDYQXF
      XPKYPXFXNUTMVAVBNVEVCVFYMVGXPBVHVIXIYKAXPXJXFXPJXGYIXHYJXFXPCOXFXPBPQRVJV
      EVFVKXEYBEFXKXKXEXNXJGZCXNGZXNBJZTZHZXTXJGZCXTGZXTBJZTZHZHZYAXJGZCYAGZYAB
      JZTZHZXNXKGZXTXKGZHYBXEUUHUUMXEUUHHZUUIUULUUPYABKUUIUUPYAXNBXNXTVOUUPXNBX
      EYRUUAUUGVLVMVNYABXNXTEVPVQUMUOUUJYSUUDHZUUPUUKCXNXTVRUUPUUQYTUUEHZUUKUUP
      YSYTUUDUUEXEYRUUAUUGVSXEUUBUUCUUFVTWAUURYABBUHBXNBXTBWBBWCWDWEVFWFVEUUNUU
      BUUOUUGXIUUAAXNXJXFXNJXGYSXHYTXFXNCOXFXNBPQRXIUUFAXTXJXFXTJXGUUDXHUUEXFXT
      COXFXTBPQRWGXIUULAYAXJXFYAJXGUUJXHUUKXFYACOXFYABPQRWRWHXEXKSGZXLXSYCHWIXE
      XJSGZUUSXCUUTXDBDWJMXIAXJSWKNEFSXKWLNWMXEBXMXEBXKGZBXMKXEBXJGZXDBBJZTZUVA
      XCUVBXDBDWNMXEUVCXDXEBWOWPXIUVDABXJXHXGXDXHUVCXFBCOXFBBPQRVJBXKUTNXMBKZXE
      XKXJKUVEXIAXJWQXKBUKWSWTXABXKXBVJ $.
  $}

  ${
    indistpsx.a $e |- A e. _V $.
    indistpsx.k $e |- K = { <. 1 , A >. , <. 9 , { (/) , A } >. } $.
    $( The indiscrete topology on a set ` A ` expressed as a topological space,
       using explicit structure component references.  Compare with ~ indistps
       and ~ indistps2 .  The advantage of this version is that the actual
       function for the structure is evident, and ~ df-ndx is not needed, nor
       any other special definition outside of basic set theory.  The
       disadvantage is that if the indices of the component definitions
       ~ df-base and ~ df-tset are changed in the future, this theorem will
       also have to be changed.  Note:  This theorem has hard-coded structure
       indices for demonstration purposes.  It is not intended for general use;
       use ~ indistps instead.  (New usage is discouraged.)  (Contributed by
       FL, 19-Jul-2006.) $)
    indistpsx $p |- K e. TopSp $=
      ( c0 cpr c1 cop cnx cbs cfv cts basendx opeq1i tsetndx preq12i eqtr4i cvv
      c9 wcel ctopon indistopon ax-mp toponunii indistop eltpsi ) AEAFZBBGAHZSU
      GHZFIJKZAHZILKZUGHZFDUKUHUMUIUJGAMNULSUGONPQAUGARTUGAUAKTCARUBUCUDAUEUF
      $.
  $}

  ${
    indistps.a $e |- A e. _V $.
    indistps.k $e |- K
      = { <. ( Base ` ndx ) , A >. , <. ( TopSet ` ndx ) , { (/) , A } >. } $.
    $( The indiscrete topology on a set ` A ` expressed as a topological space,
       using implicit structure indices.  The advantage of this version over
       ~ indistpsx is that it is independent of the indices of the component
       definitions ~ df-base and ~ df-tset , and if they are changed in the
       future, this theorem will not be affected.  The advantage over
       ~ indistps2 is that it is easy to eliminate the hypotheses with ~ eqid
       and ~ vtoclg to result in a closed theorem.  Theorems ~ indistpsALT and
       ~ indistps2ALT show that the two forms can be derived from each other.
       (Contributed by FL, 19-Jul-2006.) $)
    indistps $p |- K e. TopSp $=
      ( c0 cpr cuni cun 0ex unipr uncom un0 3eqtrri indistop eltpsi ) AEAFZBDPG
      EAHAEHAEAICJEAKALMANO $.
  $}

  ${
    indistps2.a $e |- ( Base ` K ) = A $.
    indistps2.j $e |- ( TopOpen ` K ) = { (/) , A } $.
    $( The indiscrete topology on a set ` A ` expressed as a topological space,
       using direct component assignments.  Compare with ~ indistps .  The
       advantage of this version is that it is the shortest to state and
       easiest to work with in most situations.  Theorems ~ indistpsALT and
       ~ indistps2ALT show that the two forms can be derived from each other.
       (Contributed by NM, 24-Oct-2012.) $)
    indistps2 $p |- K e. TopSp $=
      ( cpr cuni cun 0ex cbs cfv cvv fvex eqeltrri unipr uncom 3eqtrri indistop
      c0 un0 istpsi ) ARAEZBCDUAFRAGARGARAHBIJAKCBILMNRAOASPAQT $.
  $}

  ${
    indistpsALT.a $e |- A e. _V $.
    indistpsALT.k $e |- K
      = { <. ( Base ` ndx ) , A >. , <. ( TopSet ` ndx ) , { (/) , A } >. } $.
    $( The indiscrete topology on a set ` A ` expressed as a topological space.
       Here we show how to derive the structural version ~ indistps from the
       direct component assignment version ~ indistps2 .  (Contributed by NM,
       24-Oct-2012.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    indistpsALT $p |- K e. TopSp $=
      ( cvv wcel c0 cpr ctopon cfv ctps indistopon cbs wceq cts c9 df-tset 1lt9
      9nn ax-mp 2strbas prex 2strop tsettps mp2b ) AEFZGAHZAIJFBKFCAELAUGBUFABM
      JNCAUGOBPEDQRSUATUGEFUGBOJNGAUBAUGOBPEDQRSUCTUDUE $.
  $}

  ${
    indistps2ALT.a $e |- ( Base ` K ) = A $.
    indistps2ALT.j $e |- ( TopOpen ` K ) = { (/) , A } $.
    $( The indiscrete topology on a set ` A ` expressed as a topological space,
       using direct component assignments.  Here we show how to derive the
       direct component assignment version ~ indistps2 from the structural
       version ~ indistps .  (Contributed by NM, 24-Oct-2012.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    indistps2ALT $p |- K e. TopSp $=
      ( ctps wcel cpr ctopon cfv cvv cbs eqeltrri indistopon ax-mp eqcomi ctopn
      c0 fvex istps mpbir ) BEFQAGZAHIFZAJFUBBKIZAJCBKRLAJMNAUABUCACOBPIUADOST
      $.
  $}

  ${
    distps.a $e |- A e. _V $.
    distps.k $e |- K
             = { <. ( Base ` ndx ) , A >. , <. ( TopSet ` ndx ) , ~P A >. } $.
    $( The discrete topology on a set ` A ` expressed as a topological space.
       (Contributed by FL, 20-Aug-2006.) $)
    distps $p |- K e. TopSp $=
      ( cpw cuni unipw eqcomi cvv wcel ctop distop ax-mp eltpsi ) AAEZBDOFAAGHA
      IJOKJCAILMN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Closure and interior
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c int $.
  $c cls $.
  $c Clsd $.

  $( Extend class notation with the set of closed sets of a topology. $)
  ccld $a class Clsd $.

  $( Extend class notation with interior of a subset of a topology base set. $)
  cnt $a class int $.

  $( Extend class notation with closure of a subset of a topology base set. $)
  ccl $a class cls $.

  ${
    $d j x y $.
    $( Define a function on topologies whose value is the set of closed sets of
       the topology.  (Contributed by NM, 2-Oct-2006.) $)
    df-cld $a |- Clsd =
                 ( j e. Top |-> { x e. ~P U. j | ( U. j \ x ) e. j } ) $.

    $( Define a function on topologies whose value is the interior function on
       the subsets of the base set.  See ~ ntrval .  (Contributed by NM,
       10-Sep-2006.) $)
    df-ntr $a |- int = ( j e. Top |->
                        ( x e. ~P U. j |-> U. ( j i^i ~P x ) ) ) $.

    $( Define a function on topologies whose value is the closure function on
       the subsets of the base set.  See ~ clsval .  (Contributed by NM,
       3-Oct-2006.) $)
    df-cls $a |- cls = ( j e. Top |-> ( x e. ~P U. j |->
                        |^| { y e. ( Clsd ` j ) | x C_ y } ) ) $.

    $( The closed-set generator is a well-behaved function.  (Contributed by
       Stefan O'Rear, 1-Feb-2015.) $)
    fncld $p |- Clsd Fn Top $=
      ( vj vx ctop cuni cdif wcel cpw crab ccld vuniex pwex rabex df-cld fnmpti
      cv ) ACAOZDZBOEPFZBQGZHIRBSQAJKLBAMN $.
  $}

  ${
    $d x y j J $.  $d x j X $.
    cldval.1 $e |- X = U. J $.
    $( The set of closed sets of a topology.  (Note that the set of open sets
       is just the topology itself, so we don't have a separate definition.)
       (Contributed by NM, 2-Oct-2006.)  (Revised by Mario Carneiro,
       11-Nov-2013.) $)
    cldval $p |- ( J e. Top ->
               ( Clsd ` J ) = { x e. ~P X | ( X \ x ) e. J } ) $=
      ( vj ctop wcel cv cdif cpw crab cvv ccld cfv wceq topopn rabexg 3syl cuni
      pwexg unieq syl6eqr pweqd wb difeq1d eleq12 rabeqbidv df-cld fvmptg mpdan
      mpancom ) BFGZCAHZIZBGZACJZKZLGZBMNUQOULCBGUPLGURBCDPCBTUOAUPLQREBEHZSZUM
      IZUSGZAUTJZKUQFLMUSBOZVBUOAVCUPVDUTCVDUTBSCUSBUADUBZUCVAUNOVDVBUOUDVDUTCU
      MVEUEVAUNUSBUFUKUGAEUHUIUJ $.

    $( The interior function on the subsets of a topology's base set.
       (Contributed by NM, 10-Sep-2006.)  (Revised by Mario Carneiro,
       11-Nov-2013.) $)
    ntrfval $p |- ( J e. Top -> ( int ` J ) = ( x e. ~P X |->
                     U. ( J i^i ~P x ) ) ) $=
      ( vj ctop wcel cpw cv cin cuni cmpt cvv cnt wceq topopn pwexg mptexg 3syl
      cfv unieq syl6eqr pweqd ineq1 unieqd mpteq12dv df-ntr fvmptg mpdan ) BFGZ
      ACHZBAIHZJZKZLZMGZBNTUOOUJCBGUKMGUPBCDPCBQAUKUNMRSEBAEIZKZHZUQULJZKZLUOFM
      NUQBOZAUSVAUKUNVBURCVBURBKCUQBUADUBUCVBUTUMUQBULUDUEUFAEUGUHUI $.

    $( The closure function on the subsets of a topology's base set.
       (Contributed by NM, 3-Oct-2006.)  (Revised by Mario Carneiro,
       11-Nov-2013.) $)
    clsfval $p |- ( J e. Top -> ( cls ` J ) = ( x e. ~P X |->
                     |^| { y e. ( Clsd ` J ) | x C_ y } ) ) $=
      ( vj ctop wcel cpw cv wss ccld cfv crab cint cmpt cvv ccl wceq cuni pwexg
      topopn mptexg unieq syl6eqr pweqd fveq2 rabeq syl inteqd mpteq12dv df-cls
      3syl fvmptg mpdan ) CGHZADIZAJBJKZBCLMZNZOZPZQHZCRMVBSUPDCHUQQHVCCDEUBDCU
      AAUQVAQUCUMFCAFJZTZIZURBVDLMZNZOZPVBGQRVDCSZAVFVIUQVAVJVEDVJVECTDVDCUDEUE
      UFVJVHUTVJVGUSSVHUTSVDCLUGURBVGUSUHUIUJUKABFULUNUO $.
  $}

  $( Reverse closure of the closed set operation.  (Contributed by Stefan
     O'Rear, 22-Feb-2015.) $)
  cldrcl $p |- ( C e. ( Clsd ` J ) -> J e. Top ) $=
    ( ccld cfv wcel cdm ctop elfvdm wfn wceq fncld fndm ax-mp syl6eleq ) ABCDEB
    CFZGABCHCGIOGJKGCLMN $.

  ${
    $d x y J $.  $d x y S $.  $d x y X $.
    iscld.1 $e |- X = U. J $.
    $( The predicate " ` S ` is a closed set."  (Contributed by NM,
       2-Oct-2006.)  (Revised by Mario Carneiro, 11-Nov-2013.) $)
    iscld $p |- ( J e. Top -> ( S e. ( Clsd ` J ) <->
                 ( S C_ X /\ ( X \ S ) e. J ) ) ) $=
      ( vx ctop wcel ccld cfv cpw cdif wa wss cv crab cldval eleq2d wceq difeq2
      eleq1d elrab syl6bb wb topopn elpw2g syl anbi1d bitrd ) BFGZABHIZGZACJZGZ
      CAKZBGZLZACMZUOLUIUKACENZKZBGZEULOZGUPUIUJVAAEBCDPQUTUOEAULURARUSUNBURACS
      TUAUBUIUMUQUOUICBGUMUQUCBCDUDACBUEUFUGUH $.

    $( A subset of the underlying set of a topology is closed iff its
       complement is open.  (Contributed by NM, 4-Oct-2006.) $)
    iscld2 $p |- ( ( J e. Top /\ S C_ X ) ->
                  ( S e. ( Clsd ` J ) <-> ( X \ S ) e. J ) ) $=
      ( ctop wcel ccld cfv wss cdif iscld baibd ) BEFABGHFACICAJBFABCDKL $.

    $( A closed set is a subset of the underlying set of a topology.
       (Contributed by NM, 5-Oct-2006.)  (Revised by Stefan O'Rear,
       22-Feb-2015.) $)
    cldss $p |- ( S e. ( Clsd ` J ) -> S C_ X ) $=
      ( ctop wcel ccld cfv wss cldrcl cdif iscld simprbda mpancom ) BEFZABGHFZA
      CIZABJOPQCAKBFABCDLMN $.

    $( The set of closed sets is contained in the powerset of the base.
       (Contributed by Mario Carneiro, 6-Jan-2014.) $)
    cldss2 $p |- ( Clsd ` J ) C_ ~P X $=
      ( vx ccld cfv cpw cv wcel wss cldss selpw sylibr ssriv ) DAEFZBGZDHZOIQBJ
      QPIQABCKDBLMN $.

    $( The complement of a closed set is open.  (Contributed by NM,
       5-Oct-2006.)  (Revised by Stefan O'Rear, 22-Feb-2015.) $)
    cldopn $p |- ( S e. ( Clsd ` J ) -> ( X \ S ) e. J ) $=
      ( ctop wcel ccld cfv cdif cldrcl wss iscld simplbda mpancom ) BEFZABGHFZC
      AIBFZABJOPACKQABCDLMN $.

    $( A subset of the underlying set of a topology is open iff its complement
       is closed.  (Contributed by NM, 4-Oct-2006.) $)
    isopn2 $p |- ( ( J e. Top /\ S C_ X ) ->
                  ( S e. J <-> ( X \ S ) e. ( Clsd ` J ) ) ) $=
      ( ctop wcel wss wa cdif ccld cfv wb difss iscld2 mpan2 wceq biimpi eleq1d
      dfss4 sylan9bb bicomd ) BEFZACGZHCAIZBJKFZABFZUBUECUDIZBFZUCUFUBUDCGUEUHL
      CAMUDBCDNOUCUGABUCUGAPACSQRTUA $.

    $( The complement of an open set is closed.  (Contributed by NM,
       6-Oct-2006.) $)
    opncld $p |- ( ( J e. Top /\ S e. J ) -> ( X \ S ) e. ( Clsd ` J ) ) $=
      ( ctop wcel wa cdif ccld cfv simpr wss wb eltopss isopn2 syldan mpbid ) B
      EFZABFZGSCAHBIJFZRSKRSACLSTMABCDNABCDOPQ $.

    $( The difference of a closed set with an open set is open.  (Contributed
       by Mario Carneiro, 6-Jan-2014.) $)
    difopn $p |- ( ( A e. J /\ B e. ( Clsd ` J ) ) -> ( A \ B ) e. J ) $=
      ( wcel ccld cfv wa cin cdif wss wceq elssuni syl6sseqr adantr df-ss sylib
      cuni adantl difeq1d indif2 cldrcl simpl cldopn syl3anc syl5eqelr eqeltrrd
      ctop inopn ) ACFZBCGHFZIZADJZBKZABKCUMUNABUMADLZUNAMUKUPULUKACSDACNEOPADQ
      RUAUMUOADBKZJZCADBUBUMCUIFZUKUQCFZURCFULUSUKBCUCTUKULUDULUTUKBCDEUETAUQCU
      JUFUGUH $.

    $( The underlying set of a topology is closed.  Part of Theorem 6.1(1) of
       [Munkres] p. 93.  (Contributed by NM, 3-Oct-2006.) $)
    topcld $p |- ( J e. Top -> X e. ( Clsd ` J ) ) $=
      ( ctop wcel ccld cfv wss cdif wa c0 difid 0opn syl5eqel ssid jctil mpbird
      iscld ) ADEZBAFGEBBHZBBIZAEZJSUBTSUAKABLAMNBOPBABCRQ $.

    $( The interior of a subset of a topology's base set is the union of all
       the open sets it includes.  Definition of interior of [Munkres] p. 94.
       (Contributed by NM, 10-Sep-2006.)  (Revised by Mario Carneiro,
       11-Nov-2013.) $)
    ntrval $p |- ( ( J e. Top /\ S C_ X ) -> ( ( int ` J ) ` S ) =
                 U. ( J i^i ~P S ) ) $=
      ( vx ctop wcel wss wa cnt cfv cpw cv cin cuni cmpt wceq adantr cvv syl wb
      ntrfval fveq1d topopn elpw2g inex1g uniexg pweq ineq2d unieqd eqid fvmptg
      biimpar syl2anc eqtrd ) BFGZACHZIZABJKZKZAECLZBEMZLZNZOZPZKZBALZNZOZUPUTV
      GQUQUPAUSVFEBCDUBUCRURAVAGZVJSGZVGVJQUPVKUQUPCBGVKUQUABCDUDACBUETUMURVISG
      ZVLUPVMUQBVHFUFRVISUGTEAVEVJVASVFVBAQZVDVIVNVCVHBVBAUHUIUJVFUKULUNUO $.

    $( The closure of a subset of a topology's base set is the intersection of
       all the closed sets that include it.  Definition of closure of [Munkres]
       p. 94.  (Contributed by NM, 10-Sep-2006.)  (Revised by Mario Carneiro,
       11-Nov-2013.) $)
    clsval $p |- ( ( J e. Top /\ S C_ X ) -> ( ( cls ` J ) ` S ) =
                 |^| { x e. ( Clsd ` J ) | S C_ x } ) $=
      ( vy ctop wcel wss wa ccl cfv cpw cv ccld crab cint cmpt wceq cvv clsfval
      fveq1d adantr wb topopn elpw2g syl biimpar wrex topcld sseq2 rspcev sylan
      intexrab sylib sseq1 rabbidv inteqd eqid fvmptg syl2anc eqtrd ) CGHZBDIZJ
      ZBCKLZLZBFDMZFNZANZIZACOLZPZQZRZLZBVJIZAVLPZQZVCVGVPSVDVCBVFVOFACDEUAUBUC
      VEBVHHZVSTHZVPVSSVCVTVDVCDCHVTVDUDCDEUEBDCUFUGUHVEVQAVLUIZWAVCDVLHVDWBCDE
      UJVQVDADVLVJDBUKULUMVQAVLUNUOFBVNVSVHTVOVIBSZVMVRWCVKVQAVLVIBVJUPUQURVOUS
      UTVAVB $.
  $}

  $( The empty set is closed.  Part of Theorem 6.1(1) of [Munkres] p. 93.
     (Contributed by NM, 4-Oct-2006.) $)
  0cld $p |- ( J e. Top -> (/) e. ( Clsd ` J ) ) $=
    ( ctop wcel c0 ccld cfv cuni cdif dif0 topopn wss wb 0ss eqid iscld2 mpbird
    mpan2 ) ABCZDAEFCZAGZDHZACZAUATIJRDTKSUBLTMDATTNOQP $.

  ${
    $d x A $.  $d x J $.  $d x S $.
    $( The indexed intersection of a collection ` B ( x ) ` of closed sets is
       closed.  Theorem 6.1(2) of [Munkres] p. 93.  (Contributed by NM,
       5-Oct-2006.)  (Revised by Mario Carneiro, 3-Sep-2015.) $)
    iincld $p |- ( ( A =/= (/) /\ A. x e. A B e. ( Clsd ` J ) ) ->
                  |^|_ x e. A B e. ( Clsd ` J ) ) $=
      ( c0 wne ccld cfv wcel wral wa ciin cuni cdif ciun wceq ralimi syl adantl
      syl2anc wss eqid cldss dfss4 sylib iineq2 iindif2 adantr eqtr3d ctop wrex
      r19.2z cldrcl rexlimivw cldopn iunopn opncld eqeltrd ) BEFZCDGHZIZABJZKZA
      BCLZDMZABVECNZOZNZUTVCABVEVFNZLZVDVHVBVJVDPZUSVBVICPZABJVKVAVLABVACVEUAVL
      CDVEVEUBZUCCVEUDUEQABVICUFRSUSVJVHPVBABVEVFUGUHUIVCDUJIZVGDIZVHUTIVCVAABU
      KVNVAABULVAVNABCDUMUNRZVCVNVFDIZABJZVOVPVBVRUSVAVQABCDVEVMUOQSABVFDUPTVGD
      VEVMUQTUR $.

    $( The intersection of a set of closed sets is closed.  (Contributed by NM,
       5-Oct-2006.) $)
    intcld $p |- ( ( A =/= (/) /\ A C_ ( Clsd ` J ) ) ->
                  |^| A e. ( Clsd ` J ) ) $=
      ( vx c0 wne ccld cfv wss wa cint cv ciin intiin wcel dfss3 iincld sylan2b
      wral syl5eqel ) ADEZABFGZHZIAJCACKZLZUACAMUBTUCUANCARUDUANCAUAOCAUCBPQS
      $.

    $( The union of two closed sets is closed.  Equivalent to Theorem 6.1(3) of
       [Munkres] p. 93.  (Contributed by NM, 5-Oct-2006.) $)
    uncld $p |- ( ( A e. ( Clsd ` J ) /\ B e. ( Clsd ` J ) ) ->
                 ( A u. B ) e. ( Clsd ` J ) ) $=
      ( ccld cfv wcel wa cun cuni cdif difundi ctop cldrcl adantr cldopn adantl
      cin eqid wss cldss inopn syl3anc syl5eqel wb anim12i sylib iscld2 syl2anc
      unss mpbird ) ACDEZFZBUKFZGZABHZUKFZCIZUOJZCFZUNURUQAJZUQBJZQZCUQABKUNCLF
      ZUTCFZVACFZVBCFULVCUMACMNZULVDUMACUQUQRZONUMVEULBCUQVGOPUTVACUAUBUCUNVCUO
      UQSZUPUSUDVFUNAUQSZBUQSZGVHULVIUMVJACUQVGTBCUQVGTUEABUQUIUFUOCUQVGUGUHUJ
      $.

    $( A closed subset equals its own closure.  (Contributed by NM,
       15-Mar-2007.) $)
    cldcls $p |- ( S e. ( Clsd ` J ) ->
                 ( ( cls ` J ) ` S ) = S ) $=
      ( vx ccld cfv wcel ccl cv wss crab cint ctop cuni wceq cldrcl eqid clsval
      cldss syl2anc intmin eqtrd ) ABDEZFZABGEEZACHICUBJKZAUCBLFABMZIUDUENABOAB
      UFUFPZRCABUFUGQSCAUBTUA $.
  $}

  $( The intersection of two closed sets is closed.  (Contributed by Jeff
     Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 3-Sep-2015.) $)
  incld $p |- ( ( A e. ( Clsd ` J ) /\ B e. ( Clsd ` J ) )
                                    -> ( A i^i B ) e. ( Clsd ` J ) ) $=
    ( ccld cfv wcel wa cpr cint cin intprg c0 wne wss prnzg adantr prssi intcld
    syl2anc eqeltrrd ) ACDEZFZBUAFZGZABHZIZABJUAABUAUAKUDUELMZUEUANUFUAFUBUGUCA
    BUAOPABUAQUECRST $.

  ${
    $d x y z J $.  $d x P $.  $d x y z S $.  $d x U $.  $d x y z X $.
    $d x T $.  $d x A $.
    clscld.1 $e |- X = U. J $.
    $( An indexed relative intersection of closed sets is closed.  (Contributed
       by Stefan O'Rear, 22-Feb-2015.) $)
    riincld $p |- ( ( J e. Top /\ A. x e. A B e. ( Clsd ` J ) ) ->
        ( X i^i |^|_ x e. A B ) e. ( Clsd ` J ) ) $=
      ( ctop wcel ccld cfv wral wa ciin cin wceq riin0 adantl ad2antrr syl2anc
      c0 topcld eqeltrd wne simpr simplr iincld incld pm2.61dane ) DGHZCDIJZHAB
      KZLZEABCMZNZUJHZBTULBTOZLUNEUJUPUNEOULAECBPQUIEUJHZUKUPDEFUAZRUBULBTUCZLZ
      UQUMUJHZUOUIUQUKUSURRUTUSUKVAULUSUDUIUKUSUEABCDUFSEUMDUGSUH $.

    $( A finite indexed union of closed sets is closed.  (Contributed by Mario
       Carneiro, 19-Sep-2015.) $)
    iuncld $p |- ( ( J e. Top /\ A e. Fin /\ A. x e. A B e. ( Clsd ` J ) ) ->
        U_ x e. A B e. ( Clsd ` J ) ) $=
      ( ctop wcel cfn ccld cfv wral w3a cdif ciin cin ciun difin wceq ralimi
      iundif2 eqtr4i wss cldss dfss4 sylib 3ad2ant3 iuneq2 syl5eq simp1 riinopn
      syl cldopn syl3an3 opncld syl2anc eqeltrrd ) DGHZBIHZCDJKZHZABLZMZEEABECN
      ZOZPZNZABCQZUTVCVGABEVDNZQZVHVGEVENVJEVERABEVDUAUBVCVICSZABLZVJVHSVBURVLU
      SVAVKABVACEUCVKCDEFUDCEUEUFTUGABVICUHULUIVCURVFDHZVGUTHURUSVBUJVBURUSVDDH
      ZABLVMVAVNABCDEFUMTABVDDEFUKUNVFDEFUOUPUQ $.

    $( A finite union of closed sets is closed.  (Contributed by Mario
       Carneiro, 19-Sep-2015.) $)
    unicld $p |- ( ( J e. Top /\ A e. Fin /\ A C_ ( Clsd ` J ) ) ->
        U. A e. ( Clsd ` J ) ) $=
      ( vx ctop wcel cfn ccld cfv wss w3a cuni cv ciun uniiun wral dfss3 iuncld
      syl3an3b syl5eqel ) BFGZAHGZABIJZKZLAMEAENZOZUDEAPUEUBUCUFUDGEAQUGUDGEAUD
      REAUFBCDSTUA $.

    $( The closure of a subset of a topology's underlying set is closed.
       (Contributed by NM, 4-Oct-2006.) $)
    clscld $p |- ( ( J e. Top /\ S C_ X ) ->
                 ( ( cls ` J ) ` S ) e. ( Clsd ` J ) ) $=
      ( vx ctop wcel wss wa ccl cfv cv ccld crab cint clsval wne topcld anim1i
      c0 sseq2 elrab sylibr ne0i syl ssrab2 intcld sylancl eqeltrd ) BFGZACHZIZ
      ABJKKAELZHZEBMKZNZOZUOEABCDPULUPTQZUPUOHUQUOGULCUPGZURULCUOGZUKIUSUJUTUKB
      CDRSUNUKECUOUMCAUAUBUCUPCUDUEUNEUOUFUPBUGUHUI $.

    $( The closure function is a function from subsets of the base to closed
       sets.  (Contributed by Mario Carneiro, 11-Apr-2015.) $)
    clsf $p |- ( J e. Top -> ( cls ` J ) : ~P X --> ( Clsd ` J ) ) $=
      ( vx vy ctop wcel cpw cv wss ccld cfv crab ccl cvv elpwi wa clsval sylan2
      cint fvex syl6eqelr clsfval clscld fmpt2d ) AFGZDEBHZDIZEIZJEAKLZMTZUJANL
      ZOUHUGGUFUHBJZUKOGUHBPUFUMQUKUHULLOEUHABCRUHULUAUBSDEABCUCUIUGGUFUIBJUIUL
      LUJGUIBPUIABCUDSUE $.

    $( The interior of a subset of a topology's underlying set is open.
       (Contributed by NM, 11-Sep-2006.)  (Revised by Mario Carneiro,
       11-Nov-2013.) $)
    ntropn $p |- ( ( J e. Top /\ S C_ X ) -> ( ( int ` J ) ` S ) e. J ) $=
      ( ctop wcel wss wa cnt cfv cpw cin cuni ntrval inss1 uniopn mpan2 eqeltrd
      adantr ) BEFZACGZHABIJJBAKZLZMZBABCDNTUDBFZUATUCBGUEBUBOUCBPQSR $.

    $( Express closure in terms of interior.  (Contributed by NM, 10-Sep-2006.)
       (Revised by Mario Carneiro, 11-Nov-2013.) $)
    clsval2 $p |- ( ( J e. Top /\ S C_ X ) -> ( ( cls ` J ) ` S ) =
                 ( X \ ( ( int ` J ) ` ( X \ S ) ) ) ) $=
      ( vz vx wcel wss wa cfv cdif cv cint wceq cab ad2antrl cvv 3syl eqtr4d c0
      ctop ccl cpw cin cuni ccld crab ciin wrex df-rab cldopn sscon ad2antll wb
      topopn difexg elpwg ad2antrr mpbird elind cldss dfss4 sylib eqcomd difeq2
      cnt eqeq2d rspcev syl2anc simpl elin simplbi opncld syl2an simprbi adantl
      elpwid difss2d simplr ssconb mpbid jca eleq1 anbi12d syl5ibrcom rexlimdva
      ex sseq2 impbid abbidv syl5eq inteqd wral ralrimivw dfiin2g adantr clsval
      ciun uniiun difeq2i a1i wne 0opn 0elpw ne0i iindif2 3eqtr4d difssd ntrval
      sylan2 difeq2d ) BUAGZACHZIZABUBJJZCBCAKZUCZUDZUEZKZCXPBVFJJZKXNAELZHZEBU
      FJZUGZMZFXRCFLZKZUHZXOXTXNYFYBYHNZFXRUIZEOZMZYIXNYEYLXNYEYBYDGZYCIZEOYLYC
      EYDUJXNYOYKEXNYOYKXNYOYKXNYOIZCYBKZXRGYBCYQKZNZYKYPBXQYQYNYQBGXNYCYBBCDUK
      PYPYQXQGZYQXPHZYCUUAXNYNAYBCULUMXLYTUUAUNZXMYOXLCBGZYQQGUUBBCDUOZCYBBUPYQ
      XPQUQRURUSUTYPYRYBYPYBCHZYRYBNYNUUEXNYCYBBCDVAPYBCVBVCVDYJYSFYQXRYGYQNYHY
      RYBYGYQCVEVGVHVIWGXNYJYOFXRXNYGXRGZIZYOYJYHYDGZAYHHZIUUGUUHUUIXNXLYGBGZUU
      HUUFXLXMVJUUFUUJYGXQGZYGBXQVKZVLYGBCDVMVNUUGYGXPHZUUIUUGYGXPUUFUUKXNUUFUU
      JUUKUULVOVPVQZUUGYGCHXMUUMUUIUNUUGYGCAUUNVRXLXMUUFVSYGACVTVIWAWBYJYNUUHYC
      UUIYBYHYDWCYBYHAWHWDWEWFWIWJWKWLXLYIYMNZXMXLUUCYHQGZFXRWMUUOUUDUUCUUPFXRC
      YGBUPWNFEXRYHQWORWPSEABCDWQXNXTCFXRYGWRZKZYIXTUURNXNXSUUQCFXRWSWTXAXNTXRG
      XRTXBYIUURNXNBXQTXLTBGXMBXCWPTXQGXNXPXDXAUTXRTXEFXRCYGXFRSXGXNYAXSCXMXLXP
      CHYAXSNXMCAXHXPBCDXIXJXKS $.

    $( Interior expressed in terms of closure.  (Contributed by NM,
       1-Oct-2007.) $)
    ntrval2 $p |- ( ( J e. Top /\ S C_ X ) ->
                 ( ( int ` J ) ` S ) = ( X \ ( ( cls ` J ) ` ( X \ S ) ) ) ) $=
      ( ctop wcel wss wa cdif ccl cfv cnt wceq difss clsval2 mpan2 adantr dfss4
      biimpi difeq2d fveq2d adantl eqtrd ntropn eltopss syldan sylib eqtr2d ) B
      EFZACGZHZCCAIZBJKKZICCABLKZKZIZIZUOUKUMUPCUKUMCCULIZUNKZIZUPUIUMUTMZUJUIU
      LCGVACANULBCDOPQUKUSUOCUJUSUOMUIUJURAUNUJURAMACRSUAUBTUCTUKUOCGZUQUOMUIUJ
      UOBFVBABCDUDUOBCDUEUFUOCRUGUH $.

    $( An interior of a complement is the complement of the closure.  This set
       is also known as the exterior of ` A ` .  (Contributed by Jeff Hankins,
       31-Aug-2009.) $)
    ntrdif $p |- ( ( J e. Top /\ A C_ X ) -> ( ( int ` J ) ` ( X \ A ) )
                                             = ( X \ ( ( cls ` J ) ` A ) ) ) $=
      ( ctop wcel wss wa cdif cnt cfv ccl wceq difss ntrval2 mpan2 adantr simpr
      dfss4 sylib fveq2d difeq2d eqtrd ) BEFZACGZHZCAIZBJKKZCCUGIZBLKZKZIZCAUJK
      ZIUDUHULMZUEUDUGCGUNCANUGBCDOPQUFUKUMCUFUIAUJUFUEUIAMUDUERACSTUAUBUC $.

    $( A closure of a complement is the complement of the interior.
       (Contributed by Jeff Hankins, 31-Aug-2009.) $)
    clsdif $p |- ( ( J e. Top /\ A C_ X ) -> ( ( cls ` J ) ` ( X \ A ) ) = ( X
    \ ( ( int ` J ) ` A ) ) ) $=
      ( ctop wcel wss wa cdif ccl cfv cnt wceq difss clsval2 mpan2 adantr simpr
      dfss4 sylib fveq2d difeq2d eqtrd ) BEFZACGZHZCAIZBJKKZCCUGIZBLKZKZIZCAUJK
      ZIUDUHULMZUEUDUGCGUNCANUGBCDOPQUFUKUMCUFUIAUJUFUEUIAMUDUERACSTUAUBUC $.

    $( Subset relationship for closure.  (Contributed by NM, 10-Feb-2007.) $)
    clsss $p |- ( ( J e. Top /\ S C_ X /\ T C_ S ) -> ( ( cls ` J ) ` T ) C_
                 ( ( cls ` J ) ` S ) ) $=
      ( vx ctop wcel wss w3a cv ccld cfv crab cint ccl wi sstr2 wceq clsval syl
      adantr ss2rabdv intss 3ad2ant3 impcom 3adant1 syl2anc 3adant3 3sstr4d
      simp1 ) CGHZADIZBAIZJZBFKZIZFCLMZNZOZAUPIZFURNZOZBCPMZMZAVDMZUNULUTVCIZUM
      UNVBUSIVGUNVAUQFURUNVAUQQUPURHBAUPRUBUCVBUSUDUAUEUOULBDIZVEUTSULUMUNUKUMU
      NVHULUNUMVHBADRUFUGFBCDETUHULUMVFVCSUNFACDETUIUJ $.

    $( Subset relationship for interior.  (Contributed by NM, 3-Oct-2007.) $)
    ntrss $p |- ( ( J e. Top /\ S C_ X /\ T C_ S ) -> ( ( int ` J ) ` T ) C_
                 ( ( int ` J ) ` S ) ) $=
      ( ctop wcel wss cnt cfv wa cdif ccl sscon adantl difss jctil wceq ntrval2
      sylan2 clsss 3expb sscond sstr2 impcom adantrr 3sstr4d 3impb ) CFGZADHZBA
      HZBCIJZJZAULJZHUIUJUKKZKZDDBLZCMJZJZLZDDALZURJZLZUMUNUPVBUSDUOUIUQDHZVAUQ
      HZKVBUSHZUOVEVDUKVEUJBADNODBPQUIVDVEVFUQVACDEUAUBTUCUOUIBDHZUMUTRUKUJVGBA
      DUDUEBCDESTUIUJUNVCRUKACDESUFUGUH $.

    $( A subset of a topology's underlying set is included in its closure.
       (Contributed by NM, 22-Feb-2007.) $)
    sscls $p |- ( ( J e. Top /\ S C_ X ) -> S C_ ( ( cls ` J ) ` S ) ) $=
      ( vx ctop wcel wss wa cv ccld cfv crab cint ccl ssintub clsval syl5sseqr
      ) BFGACHIAEJHEBKLZMNAABOLLEASPEABCDQR $.

    $( A subset includes its interior.  (Contributed by NM, 3-Oct-2007.)
       (Revised by Mario Carneiro, 11-Nov-2013.) $)
    ntrss2 $p |- ( ( J e. Top /\ S C_ X ) -> ( ( int ` J ) ` S ) C_ S ) $=
      ( ctop wcel wss wa cnt cfv cpw cin cuni ntrval inss2 unissi unipw sseqtri
      syl6eqss ) BEFACGHABIJJBAKZLZMZAABCDNUBTMAUATBTOPAQRS $.

    $( An open subset of a set is a subset of the set's interior.  (Contributed
       by Jeff Hankins, 31-Aug-2009.)  (Revised by Mario Carneiro,
       11-Nov-2013.) $)
    ssntr $p |- ( ( ( J e. Top /\ S C_ X ) /\ ( O e. J /\ O C_ S ) ) -> O C_ (
    ( int ` J ) ` S ) ) $=
      ( ctop wcel wss wa cpw cin cuni cnt cfv elin elpwg pm5.32i bitr2i elssuni
      sylbi adantl wceq ntrval adantr sseqtr4d ) BFGADHIZCBGZCAHZIZICBAJZKZLZAB
      MNNZUICULHZUFUICUKGZUNUOUGCUJGZIUICBUJOUGUPUHCABPQRCUKSTUAUFUMULUBUIABDEU
      CUDUE $.

    $( The closure of a subset of a topological space is included in the space.
       (Contributed by NM, 26-Feb-2007.) $)
    clsss3 $p |- ( ( J e. Top /\ S C_ X ) -> ( ( cls ` J ) ` S ) C_ X ) $=
      ( ctop wcel wss wa ccl cfv ccld clscld cldss syl ) BEFACGHABIJJZBKJFOCGAB
      CDLOBCDMN $.

    $( The interior of a subset of a topological space is included in the
       space.  (Contributed by NM, 1-Oct-2007.) $)
    ntrss3 $p |- ( ( J e. Top /\ S C_ X ) -> ( ( int ` J ) ` S ) C_ X ) $=
      ( ctop wcel wss cnt cfv ntropn eltopss syldan ) BEFACGABHIIZBFMCGABCDJMBC
      DKL $.

    $( A pairwise intersection of interiors is the interior of the
       intersection.  This does not always hold for arbitrary intersections.
       (Contributed by Jeff Hankins, 31-Aug-2009.) $)
    ntrin $p |- ( ( J e. Top /\ A C_ X /\ B C_ X ) -> ( ( int ` J ) ` ( A i^i B
    ) ) = ( ( ( int ` J ) ` A ) i^i ( ( int ` J ) ` B ) ) ) $=
      ( ctop wcel wss cin inss1 ntrss mp3an3 3adant3 inss2 3adant2 ssind ntropn
      cfv ntrss2 syl5ss w3a simp1 ssinss1 3ad2ant2 inopn syl3anc ssntr syl22anc
      cnt eqssd ) CFGZADHZBDHZUAZABIZCUIRZRZAUPRZBUPRZIZUNUQURUSUKULUQURHZUMUKU
      LUOAHVAABJAUOCDEKLMUKUMUQUSHZULUKUMUOBHVBABNBUOCDEKLOPUNUKUODHZUTCGZUTUOH
      UTUQHUKULUMUBZULUKVCUMABDUCUDUNUKURCGZUSCGZVDVEUKULVFUMACDEQMUKUMVGULBCDE
      QOURUSCUEUFUNUTABUNUTURAURUSJUKULURAHUMACDESMTUNUTUSBURUSNUKUMUSBHULBCDES
      OTPUOCUTDEUGUHUJ $.

    $( The complement of a closure is open.  (Contributed by NM,
       11-Sep-2006.) $)
    cmclsopn $p |- ( ( J e. Top /\ S C_ X ) ->
                 ( X \ ( ( cls ` J ) ` S ) ) e. J ) $=
      ( ctop wcel wss wa ccl cfv cdif clsval2 difeq2d wceq difss ntropn eltopss
      cnt mpan2 eqeltrd mpdan dfss4 sylib adantr ) BEFZACGZHZCABIJJZKCCCAKZBRJJ
      ZKZKZBUGUHUKCABCDLMUEULBFUFUEULUJBUEUJCGZULUJNUEUJBFZUMUEUICGUNCAOUIBCDPS
      ZUJBCDQUAUJCUBUCUOTUDT $.

    $( The complement of an interior is closed.  (Contributed by NM,
       1-Oct-2007.)  (Proof shortened by OpenAI, 3-Jul-2020.) $)
    cmntrcld $p |- ( ( J e. Top /\ S C_ X ) ->
                 ( X \ ( ( int ` J ) ` S ) ) e. ( Clsd ` J ) ) $=
      ( ctop wcel wss wa cnt cfv cdif ccld simpl ntropn opncld syl2anc ) BEFZAC
      GZHQABIJJZBFCSKBLJFQRMABCDNSBCDOP $.

    $( A subset is closed iff it equals its own closure.  (Contributed by NM,
       2-Oct-2006.) $)
    iscld3 $p |- ( ( J e. Top /\ S C_ X ) -> ( S e. ( Clsd ` J ) <->
                 ( ( cls ` J ) ` S ) = S ) ) $=
      ( ctop wcel wss ccld cfv ccl wceq cldcls clscld eleq1 syl5ibcom impbid2
      wa ) BEFACGQZABHIZFZABJIIZAKZABLRUASFUBTABCDMUAASNOP $.

    $( A subset is closed iff it contains its own closure.  (Contributed by NM,
       31-Jan-2008.) $)
    iscld4 $p |- ( ( J e. Top /\ S C_ X ) -> ( S e. ( Clsd ` J ) <->
                 ( ( cls ` J ) ` S ) C_ S ) ) $=
      ( ctop wcel wss wa ccld cfv ccl wceq iscld3 sscls biantrud syl6rbbr bitrd
      eqss ) BEFACGHZABIJFABKJJZALZTAGZABCDMSUBUBATGZHUASUCUBABCDNOTARPQ $.

    $( A subset is open iff it equals its own interior.  (Contributed by NM,
       9-Oct-2006.)  (Revised by Mario Carneiro, 11-Nov-2013.) $)
    isopn3 $p |- ( ( J e. Top /\ S C_ X ) -> ( S e. J <->
                 ( ( int ` J ) ` S ) = S ) ) $=
      ( ctop wcel wss wa cnt cfv wceq cpw cin ntrval inss2 unissi unipw sseqtri
      cuni a1i id pwidg elind elssuni syl eqssd sylan9eq ntropn eleq1 syl5ibcom
      ex impbid ) BEFACGHZABFZABIJJZAKZUMUNUPUMUNUOBALZMZSZAABCDNUNUSAUSAGUNUSU
      QSAURUQBUQOPAQRTUNAURFAUSGUNBUQAUNUAABUBUCAURUDUEUFUGUKUMUOBFUPUNABCDUHUO
      ABUIUJUL $.

    $( The closure operation is idempotent.  (Contributed by NM,
       2-Oct-2007.) $)
    clsidm $p |- ( ( J e. Top /\ S C_ X ) ->
               ( ( cls ` J ) ` ( ( cls ` J ) ` S ) ) = ( ( cls ` J ) ` S ) ) $=
      ( ctop wcel wss wa ccl cfv ccld wceq clscld wb clsss3 iscld3 syldan mpbid
      ) BEFZACGZHABIJZJZBKJFZUBUAJUBLZABCDMSTUBCGUCUDNABCDOUBBCDPQR $.

    $( The interior operation is idempotent.  (Contributed by NM,
       2-Oct-2007.) $)
    ntridm $p |- ( ( J e. Top /\ S C_ X ) ->
               ( ( int ` J ) ` ( ( int ` J ) ` S ) ) = ( ( int ` J ) ` S ) ) $=
      ( ctop wcel wss wa cnt cfv wceq ntropn wb ntrss3 isopn3 syldan mpbid ) BE
      FZACGZHABIJZJZBFZUATJUAKZABCDLRSUACGUBUCMABCDNUABCDOPQ $.

    $( The closure of a topology's underlying set is entire set.  (Contributed
       by NM, 5-Oct-2007.) $)
    clstop $p |- ( J e. Top -> ( ( cls ` J ) ` X ) = X ) $=
      ( ctop wcel ccld cfv ccl wceq topcld wss wb ssid iscld3 mpan2 mpbid ) ADE
      ZBAFGEZBAHGGBIZABCJQBBKRSLBMBABCNOP $.

    $( The interior of a topology's underlying set is entire set.  (Contributed
       by NM, 12-Sep-2006.) $)
    ntrtop $p |- ( J e. Top -> ( ( int ` J ) ` X ) = X ) $=
      ( ctop wcel cnt cfv wceq topopn wss wb ssid isopn3 mpan2 mpbid ) ADEZBAEZ
      BAFGGBHZABCIPBBJQRKBLBABCMNO $.

    $( A subset with an empty interior cannot cover a whole (nonempty)
       topology.  (Contributed by NM, 12-Sep-2006.) $)
    0ntr $p |- ( ( ( J e. Top /\ X =/= (/) ) /\ ( S C_ X
               /\ ( ( int ` J ) ` S ) = (/) ) ) -> ( X \ S ) =/= (/) ) $=
      ( ctop wcel wss cnt cfv c0 wceq wa wne cdif ssdif0 wi eqss ntrtop syl5bir
      fveq2 sylan9eqr eqeq1d biimpd ex expd com34 imp32 necon3d imp an32s ) BEF
      ZACGZABHIZIZJKZLZCJMZCANZJMZUKUPLZUQUSUTURJCJURJKCAGZUTCJKZCAOUKULUOVAVBP
      UKULVAUOVBUKULVAUOVBPZULVALACKZUKVCACQUKVDVCUKVDLZUOVBVEUNCJVDUKUNCUMICAC
      UMTBCDRUAUBUCUDSUEUFUGSUHUIUJ $.

    $( If a subset is included in a closed set, so is the subset's closure.
       (Contributed by NM, 22-Feb-2007.) $)
    clsss2 $p |- ( ( C e. ( Clsd ` J ) /\ S C_ C ) ->
                 ( ( cls ` J ) ` S ) C_ C ) $=
      ( ccld cfv wcel wss ccl ctop cldrcl adantr cldss simpr clsss syl3anc wceq
      wa cldcls sseqtrd ) ACFGHZBAIZSZBCJGZGZAUEGZAUDCKHZADIZUCUFUGIUBUHUCACLMU
      BUIUCACDENMUBUCOABCDEPQUBUGARUCACTMUA $.

    $( Membership in a closure.  Theorem 6.5(a) of [Munkres] p. 95.
       (Contributed by NM, 22-Feb-2007.) $)
    elcls $p |- ( ( J e. Top /\ S C_ X /\ P e. X ) -> ( P e. ( ( cls ` J ) ` S
                ) <-> A. x e. J ( P e. x -> ( x i^i S ) =/= (/) ) ) ) $=
      ( wcel wss cfv cin c0 wne wi wn wa cdif 3adant3 adantr wceq reldisj eldif
      ctop w3a ccl wral wrex cmclsopn biimpri 3ad2antl3 simpr sscls ssind dfin4
      cv syl6sseq wb adantl mpbird incom eqeq1i bitri sylibr eleq2 ineq1 neeq1d
      notbid anbi12d rspcev syl12anc con2bii ccld opncld adantlr biimpa adantll
      nne df-ne clsss2 syl2anc sseld eldifn con2d sylan2br exp31 com34 rexlimdv
      syl6 imp4a imp 3adantl3 impbida rexanali syl6bb con4bid ) DUBGZCEHZBEGZUC
      ZBCDUDIIZGZBAUNZGZXACJZKLZMADUEZWRWTNZXBXDNZOZADUFZXENWRXFXIWRXFOEWSPZDGZ
      BXJGZXJCJZKLZNZXIWRXKXFWOWPXKWQCDEFUGQRWQWOXFXLWPXLWQXFOBEWSUAUHUIWRXOXFW
      OWPXOWQWOWPOZCXJJZKSZXOXPXRCEXJPZHZXPCEWSJXSXPCEWSWOWPUJCDEFUKULEWSUMUOWP
      XRXTUPWOCXJETUQURXOXMKSXRXMKVPXMXQKXJCUSUTVAVBQRXHXLXOOAXJDXAXJSZXBXLXGXO
      XAXJBVCYAXDXNYAXCXMKXAXJCVDVEVFVGVHVIWOWPXIXFWQXPXIXFXPXHXFADXPXADGZXBXGX
      FXPYBXGXBXFXPYBXGXBXFMZXGXPYBOZCXAJZKSZYCYFXCKSZXGYEXCKCXAUSUTXDYGXCKVQVJ
      VAYDYFOZWTXBYHWTBEXAPZGXBNYHWSYIBYHYIDVKIGZCYIHZWSYIHYDYJYFWOYBYJWPXADEFV
      LVMRXPYFYKYBWPYFYKWOWPYFYKCXAETVNVOVMYICDEFVRVSVTBEXAWAWGWBWCWDWEWHWFWIWJ
      WKXBXDADWLWMWN $.

    $( Membership in a closure.  (Contributed by NM, 5-Mar-2007.) $)
    elcls2 $p |- ( ( J e. Top /\ S C_ X ) -> ( P e. ( ( cls ` J ) ` S
         ) <-> ( P e. X /\ A. x e. J ( P e. x -> ( x i^i S ) =/= (/) ) ) ) ) $=
      ( ctop wcel wss wa ccl cfv cv cin c0 wne wi wral wb clsss3 pm4.71rd elcls
      ssel syl 3expa pm5.32da bitrd ) DGHZCEIZJZBCDKLLZHZBEHZULJZUMBAMZHUOCNOPQ
      ADRZJUJUKEIZULUNSCDEFTUQULUMUKEBUCUAUDUJUMULUPUHUIUMULUPSABCDEFUBUEUFUG
      $.

    $( Any open set containing a point that belongs to the closure of a subset
       intersects the subset.  One direction of Theorem 6.5(a) of [Munkres]
       p. 95.  (Contributed by NM, 26-Feb-2007.) $)
    clsndisj $p |- ( ( ( J e. Top /\ S C_ X /\ P e. ( ( cls ` J ) ` S ) ) /\
               ( U e. J /\ P e. U ) ) -> ( U i^i S ) =/= (/) ) $=
      ( vx ctop wcel wss ccl cfv w3a cv cin c0 wne wi wral wa simp1 simp2 sseld
      clsss3 3impia simp3 elcls biimpa syl31anc wceq eleq2 ineq1 neeq1d imbi12d
      rspccv imp32 sylan ) DHIZBEJZABDKLLZIZMZAGNZIZVCBOZPQZRZGDSZCDIZACIZTCBOZ
      PQZVBURUSAEIZVAVHURUSVAUAURUSVAUBURUSVAVMURUSTUTEABDEFUDUCUEURUSVAUFURUSV
      MMVAVHGABDEFUGUHUIVHVIVJVLVGVJVLRGCDVCCUJZVDVJVFVLVCCAUKVNVEVKPVCCBULUMUN
      UOUPUQ $.

    $( A subset whose closure has an empty interior also has an empty interior.
       (Contributed by NM, 4-Oct-2007.) $)
    ntrcls0 $p |- ( ( J e. Top /\ S C_ X /\ ( ( int ` J ) `
                ( ( cls ` J ) ` S ) ) = (/) ) -> ( ( int ` J ) ` S ) = (/) ) $=
      ( ctop wcel wss ccl cfv cnt c0 wceq wa simpl clsss3 sscls syl3anc 3adant3
      w3a ntrss wb sseq2 3ad2ant3 mpbid ss0 syl ) BEFZACGZABHIIZBJIZIZKLZSZAUJI
      ZKGZUNKLUMUNUKGZUOUGUHUPULUGUHMUGUICGAUIGUPUGUHNABCDOABCDPUIABCDTQRULUGUP
      UOUAUHUKKUNUBUCUDUNUEUF $.

    $( Two ways to say that a subset has an empty interior.  (Contributed by
       NM, 3-Oct-2007.)  (Revised by Mario Carneiro, 11-Nov-2013.) $)
    ntreq0 $p |- ( ( J e. Top /\ S C_ X ) -> ( ( ( int ` J ) ` S ) = (/) <->
               A. x e. J ( x C_ S -> x = (/) ) ) ) $=
      ( vy wcel wss wa cfv c0 wceq cv wi wral wex wrex wn neq0 con1bii ctop cnt
      cpw cuni ntrval eqeq1d ancom elin anbi1i anass 3bitri exbii eluni 3bitr4i
      df-rex rexcom4 19.42v rexbii 3bitr2i notbii bitr3i ralinexa selpw imbi12i
      cin ralbii syl6bb ) CUAGBDHIZBCUBJJZKLCBUCZVEZUDZKLZAMZBHZVNKLZNZACOZVHVI
      VLKBCDEUEUFVMVNVJGZFMZVNGZFPZIZACQZRZVSWBRZNZACOVRVMVTVLGZFPZRWEVMWIFVLST
      WIWDWIVSWAIZACQZFPWJFPZACQWDWHWKFWAVNVKGZIZAPVNCGZWJIZAPWHWKWNWPAWNWMWAIW
      OVSIZWAIWPWAWMUGWMWQWAVNCVJUHUIWOVSWAUJUKULAVTVKUMWJACUOUNULWJAFCUPWLWCAC
      VSWAFUQURUSUTVAVSWBACVBWGVQACVSVOWFVPABVCVPWBFVNSTVDVFUSVG $.

    $( The closed sets of a topology comprise a Moore system on the points of
       the topology.  (Contributed by Stefan O'Rear, 31-Jan-2015.) $)
    cldmre $p |- ( J e. Top -> ( Clsd ` J ) e. ( Moore ` X ) ) $=
      ( vx ctop wcel ccld cfv cpw wss cldss2 a1i topcld cv c0 wne intcld ancoms
      cint 3adant1 ismred ) AEFZAGHZBDUCBIJUBABCKLABCMDNZUCJZUDOPZUDSUCFZUBUFUE
      UGUDAQRTUA $.
  $}

  ${
    $d J a b $.  $d F a b $.
    mrccls.f $e |- F = ( mrCls ` ( Clsd ` J ) ) $.
    $( Moore closure generalizes closure in a topology.  (Contributed by Stefan
       O'Rear, 31-Jan-2015.) $)
    mrccls $p |- ( J e. Top -> ( cls ` J ) = F ) $=
      ( va ctop wcel ccl cfv cuni cpw wss ccld crab cint cmpt eqid clsfval cmre
      vb cv wceq cldmre mrcfval syl eqtr4d ) BEFZBGHDBIZJDTSTKSBLHZMNOZADSBUGUG
      PZQUFUHUGRHFAUIUABUGUJUBDUHAUGSCUCUDUE $.
  $}

  $( The closure of the empty set.  (Contributed by NM, 2-Oct-2007.) $)
  cls0 $p |- ( J e. Top -> ( ( cls ` J ) ` (/) ) = (/) ) $=
    ( ctop wcel c0 ccld cfv ccl wceq 0cld cuni wss 0ss eqid iscld3 mpan2 mpbid
    wb ) ABCZDAEFCZDAGFFDHZAIRDAJZKSTQUALDAUAUAMNOP $.

  $( The interior of the empty set.  (Contributed by NM, 2-Oct-2007.) $)
  ntr0 $p |- ( J e. Top -> ( ( int ` J ) ` (/) ) = (/) ) $=
    ( ctop wcel c0 cnt cfv wceq 0opn cuni wss wb 0ss eqid isopn3 mpan2 mpbid )
    ABCZDACZDAEFFDGZAHQDAIZJRSKTLDATTMNOP $.

  $( An open subset equals its own interior.  (Contributed by Mario Carneiro,
     30-Dec-2016.) $)
  isopn3i $p |- ( ( J e. Top /\ S e. J ) -> ( ( int ` J ) ` S ) = S ) $=
    ( ctop wcel wa cnt cfv wceq simpr cuni wss elssuni eqid isopn3 sylan2 mpbid
    wb ) BCDZABDZESABFGGAHZRSISRABJZKSTQABLABUAUAMNOP $.

  ${
    $d x y z B $.  $d y J $.  $d x y z P $.  $d y ph $.  $d x y z S $.
    elcls3.1 $e |- ( ph -> J = ( topGen ` B ) ) $.
    elcls3.2 $e |- ( ph -> X = U. J ) $.
    elcls3.3 $e |- ( ph -> B e. TopBases ) $.
    elcls3.4 $e |- ( ph -> S C_ X ) $.
    elcls3.5 $e |- ( ph -> P e. X ) $.
    $( Membership in a closure in terms of the members of a basis.  Theorem
       6.5(b) of [Munkres] p. 95.  (Contributed by NM, 26-Feb-2007.)  (Revised
       by Mario Carneiro, 3-Sep-2015.) $)
    elcls3 $p |- ( ph -> ( P e. ( ( cls ` J ) ` S ) <->
      A. x e. B ( P e. x -> ( x i^i S ) =/= (/) ) ) ) $=
      ( vy vz cfv wcel c0 wi wceq wa ccl cv cin wne wral ctop cuni wss ctg tgcl
      wb ctb syl eqeltrd sseqtrd eleqtrd eqid elcls bastg sseqtr4d sseld imim1d
      syl3anc ralimdv2 eleq2 neeq1d imbi12d cbvralv syl6ib wrex simprl ad2antrr
      ineq1 simprr tg2 syl2anc rspccva ssdisj ex necon3d syl5com exp31 rexlimdv
      imp imp4a ad2antlr mpd exp43 ralrimdv impbid bitrd ) ADEFUAOOPZDMUBZPZWME
      UCZQUDZRZMFUEZDBUBZPZWSEUCZQUDZRZBCUEZAFUFPEFUGZUHDXEPWLWRUKAFCUIOZUFHACU
      LPZXFUFPJCUJUMUNAEGXEKIUOADGXELIUPMDEFXEXEUQURVCAWRXDAWRWQMCUEXDAWQWQMFCA
      WMCPWMFPZWQACFWMACXFFAXGCXFUHJCULUSUMHUTVAVBVDWQXCMBCWMWSSZWNWTWPXBWMWSDV
      EXIWOXAQWMWSEVMVFVGVHVIAXDWQMFAXDXHWNWPAXDTZXHWNTZTZDNUBZPZXMWMUHZTZNCVJZ
      WPXLWMXFPWNXQXLWMFXFXJXHWNVKAFXFSXDXKHVLUPXJXHWNVNNWMCDVOVPXDXQWPRAXKXDXP
      WPNCXDXMCPZXNXOWPXDXRXNXOWPRXDXRTZXNTXMEUCZQUDZXOWPXSXNYAXCXNYARBXMCWSXMS
      ZWTXNXBYAWSXMDVEYBXAXTQWSXMEVMVFVGVQWDXOWOQXTQXOWOQSXTQSXMWMEVRVSVTWAWBWE
      WCWFWGWHWIWJWK $.
  $}

  ${
    $d u A $.  $d x B $.  $d x F $.  $d u x J $.  $d u x X $.
    opncldf.1 $e |- X = U. J $.
    opncldf.2 $e |- F = ( u e. J |-> ( X \ u ) ) $.
    $( A bijection useful for converting statements about open sets to
       statements about closed sets and vice versa.  (Contributed by Jeff
       Hankins, 27-Aug-2009.)  (Proof shortened by Mario Carneiro,
       1-Sep-2015.) $)
    opncldf1 $p |- ( J e. Top -> ( F : J -1-1-onto-> ( Clsd ` J ) /\
        `' F = ( x e. ( Clsd ` J ) |-> ( X \ x ) ) ) ) $=
      ( ctop wcel cv cdif wceq wss dfss4 sylib eqcomd difeq2 eqeq2d syl5ibrcom
      wa ccld cfv opncld cldopn adantl ad2antll eltopss adantrr impbid f1ocnv2d
      cldss ) DHIZBADDUAUBZEBJZKZEAJZKZCGUNDEFUCUPUMIZUQDIULUPDEFUDUEULUNDIZURT
      TZUNUQLZUPUOLZUTVBVAUPEUQKZLUTVCUPUTUPEMZVCUPLURVDULUSUPDEFUKUFUPENOPVAUO
      VCUPUNUQEQRSUTVAVBUNEUOKZLUTVEUNUTUNEMZVEUNLULUSVFURUNDEFUGUHUNENOPVBUQVE
      UNUPUOEQRSUIUJ $.

    $( The values of the open-closed bijection.  (Contributed by Jeff Hankins,
       27-Aug-2009.)  (Proof shortened by Mario Carneiro, 1-Sep-2015.) $)
    opncldf2 $p |- ( ( J e. Top /\ A e. J ) -> ( F ` A ) = ( X \ A ) ) $=
      ( ctop wcel wa cdif ccld cfv wceq simpr opncld cv difeq2 fvmptg syl2anc )
      DHIZBDIZJUBEBKZDLMZIBCMUCNUAUBOBDEFPABEAQZKUCDUDCUEBERGST $.

    $( The values of the converse/inverse of the open-closed bijection.
       (Contributed by Jeff Hankins, 27-Aug-2009.)  (Proof shortened by Mario
       Carneiro, 1-Sep-2015.) $)
    opncldf3 $p |- ( B e. ( Clsd ` J ) -> ( `' F ` B ) = ( X \ B ) ) $=
      ( vx ccld cfv wcel ccnv cv cdif cmpt ctop wceq cldrcl wf1o opncldf1 mpdan
      simprd syl fveq1d cldopn difeq2 eqid fvmptg eqtrd ) BDIJZKZBCLZJBHUJEHMZN
      ZOZJZEBNZUKBULUOUKDPKZULUOQZBDRURDUJCSUSHACDEFGTUBUCUDUKUQDKUPUQQBDEFUEHB
      UNUQUJDUOUMBEUFUOUGUHUAUI $.
  $}

  ${
    $d w x y z A $.  $d x y z J $.  $d x y z X $.
    isclo.1 $e |- X = U. J $.
    $( A set ` A ` is clopen iff for every point ` x ` in the space there is a
       neighborhood ` y ` such that all the points in ` y ` are in ` A ` iff
       ` x ` is.  (Contributed by Mario Carneiro, 10-Mar-2015.) $)
    isclo $p |- ( ( J e. Top /\ A C_ X ) -> ( A e. ( J i^i ( Clsd ` J ) ) <->
      A. x e. X E. y e. J ( x e. y /\ A. z e. y ( x e. A <-> z e. A ) ) ) ) $=
      ( wcel wa wss cv wb wral wrex anbi2d eltop2 dfss3 syl5bb ralbiia syl6bb
      ccld cfv cin ctop elin cdif iscld2 pm5.501 ralbidv rexbidv wn cuni elunii
      id simpr syl2anr syl6eleqr eldif baib eldifn nbn2 ad2antrr bitrd ralbidva
      syl rexbidva anbi12d adantr cun ralunb undif sylib raleqdv syl5bbr 3bitrd
      wceq ) DEEUAUBZUCHDEHZDVQHZIZEUDHZDFJZIZAKZBKZHZWDDHZCKZDHZLZCWEMZIZBENZA
      FMZDEVQUEWCVTVRFDUFZEHZIZWMADMZWMAWOMZIZWNWCVSWPVRDEFGUGOWAWQWTLWBWAVRWRW
      PWSWAVRWFWEDJZIZBENZADMWRABDEPXCWMADWGXBWLBEWGXAWKWFXAWICWEMWGWKCWEDQWGWI
      WJCWEWGWIUHUIROUJSTWAWPWFWEWOJZIZBENZAWOMWSABWOEPXFWMAWOWDWOHZXEWLBEXGWEE
      HZIZXDWKWFXDWHWOHZCWEMXIWKCWEWOQXIXJWJCWEXIWHWEHZIZXJWIUKZWJXLWHFHZXJXMLX
      LWHEULZFXKXKXHWHXOHXIXKUNXGXHUOWHWEEUMUPGUQXJXNXMWHFDURUSVEXGXMWJLZXHXKXG
      WGUKXPWDFDUTWGWIVAVEVBVCVDROVFSTVGVHWTWMADWOVIZMWCWNWMADWOVJWCWMAXQFWCWBX
      QFVPWAWBUODFVKVLVMVNVOR $.

    $( A set ` A ` is clopen iff for every point ` x ` in the space there is a
       neighborhood ` y ` of ` x ` which is either disjoint from ` A ` or
       contained in ` A ` .  (Contributed by Mario Carneiro, 7-Jul-2015.) $)
    isclo2 $p |- ( ( J e. Top /\ A C_ X ) -> ( A e. ( J i^i ( Clsd ` J ) ) <->
      A. x e. X E. y e. J ( x e. y /\ A. z e. y ( z e. A -> y C_ A ) ) ) ) $=
      ( vw wcel wss wa cv wb wral wrex wi weq eleq1 ralimdv com12 ctop ccld cfv
      cin isclo bibi2d cbvralv anbi2i pm4.24 raaanv 3bitr4i bibi1 biimpcd dfss3
      biimpa syl6ibr ralimi sylbi imbi1d rspcv imbi2i bitr4i syl6ib ssel imim2d
      r19.21v jcad ralbiim impbid2 pm5.32i rexbii ralbii syl6bb ) EUAIDFJKDEEUB
      UCUDIALZBLZIZVNDIZCLZDIZMZCVONZKZBEOZAFNVPVSVODJZPZCVONZKZBEOZAFNABCDEFGU
      EWCWHAFWBWGBEVPWAWFVPWAWFWAVTVQHLZDIZMZKZHVONZCVONZWFWAWAKWAWKHVONZKWAWNW
      AWOWAVTWKCHVOCHQVSWJVQVRWIDRUFUGUHWAUIVTWKCHVOUJUKWMWECVOWMVSWJHVONZWDVSW
      MWPVSWLWJHVOWLVSWJVTWKVSWJMVQVSWJULUOUMSTHVODUNUPUQURVPWFVQVSPCVONZVSVQPZ
      CVONZKWAVPWFWQWSVPWFVQWDPZWQWEWTCVNVOCAQVSVQWDVRVNDRUSUTWTVQVSCVONZPWQWDX
      AVQCVODUNVAVQVSCVOVFVBVCVPWEWRCVOVPWDVQVSWDVPVQVODVNVDTVESVGVQVSCVOVHUPVI
      VJVKVLVM $.
  $}

  ${
    $d x A $.  $d x V $.
    $( The open sets of a discrete topology are closed and its closed sets are
       open.  (Contributed by FL, 7-Jun-2007.)  (Revised by Mario Carneiro,
       7-Apr-2015.) $)
    discld $p |- ( A e. V -> ( Clsd ` ~P A ) = ~P A ) $=
      ( vx wcel cpw ccld cfv cv wss cdif wa ctop distop cuni unipw eqcomi iscld
      wb syl difss elpw2g mpbiri biantrud bitr4d selpw syl6bbr eqrdv ) ABDZCAEZ
      FGZUIUHCHZUJDZUKAIZUKUIDUHULUMAUKJZUIDZKZUMUHUILDULUPRABMUKUIAUINAAOPQSUH
      UOUMUHUOUNAIAUKTUNABUAUBUCUDCAUEUFUG $.

    $( The closed sets of the topology ` { (/) } ` .  (Contributed by FL,
       5-Jan-2009.) $)
    sn0cld $p |- ( Clsd ` { (/) } ) = { (/) } $=
      ( c0 cpw ccld cfv csn cvv wcel wceq 0ex discld ax-mp pw0 fveq2i 3eqtr3i )
      ABZCDZOAEZCDQAFGPOHIAFJKOQCLMLN $.

    $( The closed sets of an indiscrete topology.  (Contributed by FL,
       5-Jan-2009.)  (Revised by Mario Carneiro, 14-Aug-2015.) $)
    indiscld $p |- ( Clsd ` { (/) , A } ) = { (/) , A } $=
      ( vx c0 cpr ccld cfv cv wcel cid wss cdif wa ctop wb indistop wceq difeq2
      ax-mp syl6eq syl6eqel indisuni iscld simpl dfss4 sylib wo simpr syl6eleqr
      indislem elpri dif0 fvex prid2 eleqtri difid 0ex prid1 jaoi 3syl eqeltrrd
      sylbi ssriv 0cld topcld prssi mp2an eqsstr3i eqssi ) CADZEFZVIBVJVIBGZVJH
      ZVKAIFZJZVMVKKZVIHZLZVKVIHVIMHZVLVQNAOZVKVIVMAUAZUBRVQVMVOKZVKVIVQVNWAVKP
      VNVPUCVKVMUDUEVQVOCVMDZHVOCPZVOVMPZUFWAVIHZVQVOVIWBVNVPUGAUIZUHVOCVMUJWCW
      EWDWCWAVMVIWCWAVMCKVMVOCVMQVMUKSVMWBVICVMAIULUMWFUNTWDWACVIWDWAVMVMKCVOVM
      VMQVMUOSCAUPUQTURUSUTVAVBVIWBVJWFCVJHZVMVJHZWBVJJVRWGVSVIVCRVRWHVSVIVMVTV
      DRCVMVJVEVFVGVH $.
  $}

  ${
    $d ph a b x y z $.  $d M a b x y z $.  $d J a b x y $.  $d B a b x y z $.
    mretopd.m $e |- ( ph -> M e. ( Moore ` B ) ) $.
    mretopd.z $e |- ( ph -> (/) e. M ) $.
    mretopd.u $e |- ( ( ph /\ x e. M /\ y e. M ) -> ( x u. y ) e. M ) $.
    mretopd.j $e |- J = { z e. ~P B | ( B \ z ) e. M } $.
    $( A Moore collection which is closed under finite unions called
       _topological_; such a collection is the closed sets of a canonically
       associated topology.  (Contributed by Stefan O'Rear, 1-Feb-2015.) $)
    mretopd $p |- ( ph -> ( J e. ( TopOn ` B ) /\ M = ( Clsd ` J ) ) ) $=
      ( va vb wcel wceq wss wa c0 eleq1d cdif ctopon cfv ccld ctop cuni wal cin
      cv wral unieq uni0 syl6eq wne cpw crab ssrab2 eqsstri sstr adantl sspwuni
      wi mpan2 sylib vuniex elpw sylibr adantr ciun uniiun difeq2i ciin iindif2
      cmre ad2antrr simpr weq difeq2 elrab2 simprbi ssralv mpi mreiincl syl3anc
      rgen eqeltrrd syl5eqel sylanbrc 0elpw a1i mre1cl dif0 pm2.61ne ex alrimiv
      syl inss1 simplbi elpwid ad2antrl syl5ss vex inex1 difindi ad2antll simpl
      cun uneq1 imbi2d uneq2 3expb expcom vtocl2ga syl21anc ralrimivva wb pwexg
      imp cvv rabexd istopg mpbir2and unipw sseqtri pwidg difid unissel sylancr
      unissi eqcomd istopon cldval pweqd difeq1d rabeqbidv eleq2i elpw2g mpbiri
      eqid difss elrab3 syl5bb elpwi dfss4 bitrd rabbidva incom mresspw syl5eqr
      dfin5 eqtri df-ss eqtrd 3eqtrrd jca ) AFEUAUBNZGFUCUBZOAFUDNZEFUEZOUUOAUU
      QLUHZFPZUUSUEZFNZVAZLUFZUUSMUHZUGZFNZMFUILFUIZAUVCLAUUTUVBAUUTQZUVBRFNZUU
      SRUUSROZUVARFUVKUVARUERUUSRUJUKULSUVIUUSRUMZQZUVAEUNZNZEUVATZGNZUVBUVIUVO
      UVLUVIUVAEPZUVOUVIUUSUVNPZUVRUUTUVSAUUTFUVNPUVSFEDUHZTZGNZDUVNUOZUVNKUWBD
      UVNUPUQZUUSFUVNURVBUSUUSEUTVCUVAELVDVEVFVGUVMUVPEMUUSUVEVHZTZGUVAUWEEMUUS
      VIVJUVMMUUSEUVETZVKZUWFGUVLUWHUWFOUVIMUUSEUVEVLUSUVMGEVMUBNZUVLUWGGNZMUUS
      UIZUWHGNAUWIUUTUVLHVNUVIUVLVOUVIUWKUVLUVIUWJMFUIZUWKUWJMFUVEFNZUVEUVNNUWJ
      UWBUWJDUVEUVNFDMVPUWAUWGGUVTUVEEVQSKVRVSZWDUUTUWLUWKVAAUWJMUUSFVTUSWAVGMG
      UWGUUSEWBWCWEWFUWBUVQDUVAUVNFUVTUVAOUWAUVPGUVTUVAEVQSKVRWGAUVJUUTARUVNNZE
      GNZUVJUWOAEWHWIAUWIUWPHGEWJWOZUWBUWPDRUVNFUVTROZUWAEGUWRUWAERTEUVTREVQEWK
      ULSKVRWGVGWLWMWNAUVGLMFFAUUSFNZUWMQZQZUVFUVNNZEUVFTZGNZUVGUXAUVFEPUXBUXAU
      VFUUSEUUSUVEWPUWSUUSEPAUWMUWSUUSEUWSUUSUVNNZEUUSTZGNZUWBUXGDUUSUVNFDLVPUW
      AUXFGUVTUUSEVQSKVRZWQWRWSWTUVFEUUSUVELXAXBVEVFUXAUXCUXFUWGXFZGEUUSUVEXCUX
      AUXGUWJAUXIGNZUWSUXGAUWMUWSUXEUXGUXHVSWSUWMUWJAUWSUWNXDAUWTXEUXGUWJQAUXJA
      BUHZCUHZXFZGNZVAAUXFUXLXFZGNZVAAUXJVABCUXFUWGGGUXKUXFOZUXNUXPAUXQUXMUXOGU
      XKUXFUXLXGSXHUXLUWGOZUXPUXJAUXRUXOUXIGUXLUWGUXFXISXHAUXKGNZUXLGNZQUXNAUXS
      UXTUXNJXJXKXLXQXMWFUWBUXDDUVFUVNFUVTUVFOUWAUXCGUVTUVFEVQSKVRWGXNAFXRNUUQU
      VDUVHQXOAUWBDUVNFXRKAUWPUVNXRNUWQEGXPWOXSLMXRFXTWOYAZAUUREAUUREPEFNZUUREO
      UURUVNUEEFUVNUWDYHEYBYCAEUVNNZEETZGNZUYBAUWPUYCUWQEGYDWOAUYDRGEYEIWFUWBUY
      EDEUVNFUVTEOUWAUYDGUVTEEVQSKVRWGFEYFYGZYIEFYJWGAUUPUURUXKTZFNZBUURUNZUOZE
      UXKTZFNZBUVNUOZGAUUQUUPUYJOUYABFUURUURYRYKWOAUYHUYLBUYIUVNAUUREUYFYLAUYGU
      YKFAUUREUXKUYFYMSYNAUYMUXSBUVNUOZGAUYLUXSBUVNAUXKUVNNZQZUYLEUYKTZGNZUXSUY
      LUYKUWCNZUYPUYRFUWCUYKKYOAUYSUYRXOZUYOAUYKUVNNZUYTAVUAUYKEPZEUXKYSAUWPVUA
      VUBXOUWQUYKEGYPWOYQUWBUYRDUYKUVNUVTUYKOUWAUYQGUVTUYKEVQSYTWOVGUUAUYPUYQUX
      KGUYOUYQUXKOZAUYOUXKEPVUCUXKEUUBUXKEUUCVCUSSUUDUUEAUYNGUVNUGZGVUDUVNGUGUY
      NGUVNUUFBUVNGUUIUUJAGUVNPZVUDGOAUWIVUEHGEUUGWOGUVNUUKVCUUHUULUUMUUN $.
  $}

  ${
    $d B a b c x y $.  $d V a b c x y $.  $d K x y $.
    $( The topologies over a given base set form a Moore collection: the
       intersection of any family of them is a topology, including the empty
       (relative) intersection which gives the discrete topology ~ distop .
       (Contributed by Stefan O'Rear, 31-Jan-2015.)  (Revised by Mario
       Carneiro, 5-May-2015.) $)
    toponmre $p |- ( B e. V -> ( TopOn ` B ) e. ( Moore ` ~P B ) ) $=
      ( vb vc vx vy wcel wss cuni wceq toponuni sylibr syl ctop wral wel sselda
      cv wa adantl ctopon cfv cpw eqimss2 sspwuni selpw a1i distopon c0 wne w3a
      ssriv cint wi wal simpl adantrl topontop intss1 sstrd uniopn syl2anc expr
      cin ralrimiv vuniex elint2 ex alrimiv simpll simplrl sseldd simplrr inopn
      syl3anc ralrimiva vex inex1 ralrimivva cvv wb intex biimpi istopg 3adant1
      mpbir2and wex n0 ad2antlr ancoms elssuni sseqtr4d exlimdv mpd unissb eqid
      topopn 3syl eqeltrd elintg 3ad2ant1 mpbird unissel eqcomd sylanbrc ismred
      istopon ) ABGZAUAUBZAUCZCXIXJUCZHXHCXIXKCRZXIGZXLXJHZXLXKGXMAXLIZJZXNAXLK
      XPXOAHXNXOAUDXLAUELMCXJUFLULUGABUHXHXLXIHZXLUIUJZUKZXLUMZNGZAXTIZJXTXIGXQ
      XRYAXHXQXRSZYADRZXTHZYDIZXTGZUNZDUOZYDERZVDZXTGZEXTODXTOZYCYHDYCYEYGYCYES
      ZYFYJGZEXLOYGYNYOEXLYCYEECPZYOYCYEYPSZSZYJNGZYDYJHZYOYRYJXIGZYSYCYPUUAYEY
      CXLXIYJXQXRUPZQZUQAYJURMYQYTYCYQYDXTYJYEYPUPYPXTYJHYEYJXLUSZTUTTYDYJVAVBV
      CVEEYFXLDVFVGLVHVIYCYLDEXTXTYCYDXTGZYJXTGZSZSZYKFRZGZFXLOYLUUHUUJFXLUUHFC
      PZSZUUINGZDFPEFPUUJUULUUIXIGUUMUUHXLXIUUIXQXRUUGVJQAUUIURMUULXTUUIYDUUKXT
      UUIHUUHUUIXLUSTZYCUUEUUFUUKVKVLUULXTUUIYJUUNYCUUEUUFUUKVMVLYDYJUUIVNVOVPF
      YKXLYDYJDVQVRVGLVSYCXTVTGZYAYIYMSWAXRUUOXQXRUUOXLWBWCTDEVTXTWDMWFWEXSYBAX
      SYBAHZAXTGZYBAJXQXRUUPXHYCYDAHZDXTOUUPYCUURDXTYCUUESZYPEWGZUURXRUUTXQUUEX
      RUUTEXLWHWCWIUUSYPUUREYCUUEYPUURYCUUEYPSZSZYDYJIZAUVAYDUVCHZYCUVADEPZUVDY
      PUUEUVEYPXTYJYDUUDQWJYDYJWKMTUVBUUAAUVCJYCYPUUAUUEUUCUQAYJKMWLVCWMWNVPDXT
      AWOLWEXSUUQAYDGZDXLOZXQXRUVGXHYCUVFDXLYCDCPSZAYFYDUVHYDXIGZAYFJYCXLXIYDUU
      BQZAYDKMUVHUVIYDNGYFYDGUVJAYDURYDYFYFWPWQWRWSVPWEXHXQUUQUVGWAXRDAXLBWTXAX
      BXTAXCVBXDAXTXGXEXF $.

    $( The closed sets of a topology over a set are a Moore collection over the
       same set.  (Contributed by Stefan O'Rear, 31-Jan-2015.) $)
    cldmreon $p |- ( J e. ( TopOn ` B ) -> ( Clsd ` J ) e. ( Moore ` B ) ) $=
      ( ctopon cfv wcel ccld cuni cmre ctop topontop cldmre syl toponuni fveq2d
      eqid eleqtrrd ) BACDEZBFDZBGZHDZAHDQBIERTEABJBSSOKLQASHABMNP $.

    $d K a b c $.
    $( A family is the closed sets of a topology iff it is a Moore collection
       and closed under finite union.  (Contributed by Stefan O'Rear,
       1-Feb-2015.) $)
    iscldtop $p |- ( K e. ( Clsd " ( TopOn ` B ) ) <-> ( K e. ( Moore ` B ) /\
          (/) e. K /\ A. x e. K A. y e. K ( x u. y ) e. K ) ) $=
      ( va vb vc ccld cfv wcel c0 cv cun wral w3a wceq ctop fncld ax-mp syl wfn
      ctopon cima cmre wrex wfun fnfun fvelima mpan cldmreon topontop wa adantl
      0cld uncld ralrimivva eleq1 eleq2 raleqbi1dv 3anbi123d syl5ibcom rexlimiv
      3jca cdif cpw simp1 simp2 uneq1 eleq1d uneq2 rspc2v com12 3ad2ant3 3impib
      crab wi eqid mretopd simprd simpld cdm wss ssriv sseqtr4i funfvima2 mp2an
      fndm eqeltrd impbii ) DHCUBIZUCZJZDCUDIZJZKDJZALZBLZMZDJZBDNZADNZOZWLELZH
      IZDPZEWJUEZXBHUFZWLXFHQUAZXGRQHUGSZEDWJHUHUIXEXBEWJXCWJJZXDWMJZKXDJZWRXDJ
      ZBXDNZAXDNZOXEXBXJXKXLXOCXCUJXJXCQJXLCXCUKZXCUNTXJXMABXDXDWPXDJWQXDJULXMX
      JWPWQXCUOUMUPVCXEXKWNXLWOXOXAXDDWMUQXDDKURXNWTAXDDXMWSBXDDXDDWRURUSUSUTVA
      VBTXBDCXCVDDJECVEVOZHIZWKXBXQWJJZDXRPZXBFGECXQDWNWOXAVFWNWOXAVGXBFLZDJZGL
      ZDJZYAYCMZDJZXAWNYBYDULZYFVPWOYGXAYFWSYFYAWQMZDJABYAYCDDWPYAPWRYHDWPYAWQV
      HVIWQYCPYHYEDWQYCYAVJVIVKVLVMVNXQVQVRZVSXBXSXRWKJZXBXSXTYIVTXGWJHWAZWBXSY
      JVPXIWJQYKEWJQXPWCXHYKQPRQHWGSWDWJXQHWEWFTWHWI $.
  $}

  ${
    mreclatBAD. $e |- ( ( ( LSubSp ` W ) i^i ( Clsd ` ( TopOpen ` W ) ) )
          e. ( Moore ` U. ( TopOpen ` W ) ) -> ( toInc ` ( ( LSubSp ` W )
              i^i ( Clsd ` ( TopOpen ` W ) ) ) ) e. CLat ) $.
    $( The closed subspaces of a topology-bearing module form a complete
       lattice.  Demonstration for ~ mreclatBAD .  (Contributed by Stefan
       O'Rear, 31-Jan-2015.)  TODO ( ~ df-riota update):  This proof uses the
       old ~ df-clat and references the required instance of ~ mreclatBAD as a
       hypothesis.  When ~ mreclatBAD is corrected to become mreclat, delete
       this theorem and uncomment the mreclatdemo below. $)
    mreclatdemoBAD $p |- ( W e. ( TopSp i^i LMod ) -> ( toInc `
          ( ( LSubSp ` W ) i^i ( Clsd ` ( TopOpen ` W ) ) ) ) e. CLat ) $=
      ( ctps clmod cin wcel clss cfv ccld cuni cmre cipo ccla cpw cvv fvex eqid
      ctopn sseli syl uniex mremre mp1i inss2 lssmre wceq tpsuni fveq2d eleqtrd
      cbs inss1 ctop tpstop cldmre 3syl mreincl syl3anc ) ACDEZFZAGHZARHZIHZEZV
      AJZKHZFZVCLHMFUSVEVDNZKHFZUTVEFVBVEFZVFVDOFVHUSVAARPUAOVDUBUCUSUTAUJHZKHZ
      VEUSADFUTVKFURDACDUDSVJUTAVJQZUTQUETUSACFZVKVEUFURCACDUKSZVMVJVDKVJVAAVLV
      AQZUGUHTUIUSVMVAULFVIVNVAAVOUMVAVDVDQUNUOUTVBVEVGUPUQBT $.
  $}

$( TODO ( ~ df-riota update):  uncomment the following proof and delete the one
   above when ~ mreclat is finished.

  @( The closed subspaces of a topology-bearing module form a complete
     lattice.  Demonstration for ~ mreclat .  (Contributed by Stefan O'Rear,
     31-Jan-2015.) @)
  mreclatdemo @p |- ( W e. ( TopSp i^i LMod ) -> ( toInc `
        ( ( LSubSp ` W ) i^i ( Clsd ` ( TopOpen ` W ) ) ) ) e. CLat ) @=
    ( ctps clmod cin wcel clss cfv ctopn ccld cuni cmre cipo ccla cpw cvv uniex
    fvex sseli eqid syl mremre mp1i cbs inss2 lssmre wceq tpsuni fveq2d eleqtrd
    inss1 ctop tpstop cldmre 3syl mreincl syl3anc mreclat ) ABCDZEZAFGZAHGZIGZD
    ZVAJZKGZEZVCLGZMEUSVEVDNZKGEZUTVEEVBVEEZVFVDOEVIUSVAAHQPOVDUAUBUSUTAUCGZKGZ
    VEUSACEUTVLEURCABCUDRVKUTAVKSZUTSUETUSABEZVLVEUFURBABCUJRZVNVKVDKVKVAAVMVAS
    ZUGUHTUIUSVNVAUKEVJVOVAAVPULVAVDVDSUMUNUTVBVEVHUOUPVCVGVDVGSUQT @.
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Neighborhoods
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c nei $.

  $( Extend class notation with neighborhood relation for topologies. $)
  cnei $a class nei $.

  ${
    $d g j x y $.
    $( Define a function on topologies whose value is a map from a subset to
       its neighborhoods.  (Contributed by NM, 11-Feb-2007.) $)
    df-nei $a |- nei = ( j e. Top |-> ( x e. ~P U. j |->
                   { y e. ~P U. j | E. g e. j ( x C_ g /\ g C_ y ) } ) ) $.
  $}

  ${
    $d g j v x J $.  $d g v N $.  $d g P $.  $d g v x S $.  $d g j v x X $.
    neifval.1 $e |- X = U. J $.
    $( The neighborhood function on the subsets of a topology's base set.
       (Contributed by NM, 11-Feb-2007.)  (Revised by Mario Carneiro,
       11-Nov-2013.) $)
    neifval $p |- ( J e. Top -> ( nei ` J ) = ( x e. ~P X |->
                   { v e. ~P X | E. g e. J ( x C_ g /\ g C_ v ) } ) ) $=
      ( vj ctop wcel cpw cv wss wa wrex crab cmpt cvv cnei wceq cuni cfv topopn
      pwexg mptexg 3syl unieq syl6eqr pweqd rexeq rabeqbidv df-nei fvmptg mpdan
      mpteq12dv ) DHIZAEJZAKCKZLUQBKLMZCDNZBUPOZPZQIZDRUAVASUOEDIUPQIVBDEFUBEDU
      CAUPUTQUDUEGDAGKZTZJZURCVCNZBVEOZPVAHQRVCDSZAVEVGUPUTVHVDEVHVDDTEVCDUFFUG
      UHZVHVFUSBVEUPVIURCVCDUIUJUNABCGUKULUM $.

    $( The neighborhood function is a function of the subsets of a topology's
       base set.  (Contributed by NM, 12-Feb-2007.)  (Revised by Mario
       Carneiro, 11-Nov-2013.) $)
    neif $p |- ( J e. Top -> ( nei ` J ) Fn ~P X ) $=
      ( vx vg vv ctop wcel cnei cfv cpw wfn cv wss wa wrex crab cmpt cvv wral
      topopn pwexg rabexg 3syl ralrimivw eqid fnmpt syl neifval fneq1d mpbird )
      AGHZAIJZBKZLDUNDMEMZNUOFMNOEAPZFUNQZRZUNLZULUQSHZDUNTUSULUTDUNULBAHUNSHUT
      ABCUABAUBUPFUNSUCUDUEDUNUQURSURUFUGUHULUNUMURDFEABCUIUJUK $.

    $( A set with a neighborhood is a subset of the topology's base set.  (This
       theorem depends on a function's value being empty outside of its domain,
       but it will make later theorems simpler to state.)  (Contributed by NM,
       12-Feb-2007.) $)
    neiss2 $p |- ( ( J e. Top /\ N e. ( ( nei ` J ) ` S ) ) -> S C_ X ) $=
      ( ctop wcel cnei cfv wa cdm cpw elfvdm adantl wb wfn wceq neif fndm syl
      eleq2d adantr mpbid elpwid ) BFGZCABHIZIGZJZADUHAUFKZGZADLZGZUGUJUECAUFMN
      UEUJULOUGUEUIUKAUEUFUKPUIUKQBDERUKUFSTUAUBUCUD $.

    $( The set of neighborhoods of a subset of the base set of a topology.
       (Contributed by NM, 11-Feb-2007.)  (Revised by Mario Carneiro,
       11-Nov-2013.) $)
    neival $p |- ( ( J e. Top /\ S C_ X ) -> ( ( nei ` J ) ` S ) =
                 { v e. ~P X | E. g e. J ( S C_ g /\ g C_ v ) } ) $=
      ( vx ctop wcel wss wa cnei cfv cpw cv wrex crab wceq adantr cvv fveq1d wb
      cmpt neifval topopn elpw2g biimpar pwexg rabexg 3syl sseq1 anbi1d rexbidv
      syl rabbidv eqid fvmptg syl2anc eqtrd ) DHIZBEJZKZBDLMZMZBGENZGOZCOZJZVGA
      OJZKZCDPZAVEQZUCZMZBVGJZVIKZCDPZAVEQZUTVDVNRVAUTBVCVMGACDEFUDUASVBBVEIZVR
      TIZVNVRRUTVSVAUTEDIZVSVAUBDEFUEZBEDUFUNUGUTVTVAUTWAVETIVTWBEDUHVQAVETUIUJ
      SGBVLVRVETVMVFBRZVKVQAVEWCVJVPCDWCVHVOVIVFBVGUKULUMUOVMUPUQURUS $.

    $( The predicate " ` N ` is a neighborhood of ` S ` ."  (Contributed by FL,
       25-Sep-2006.)  (Revised by Mario Carneiro, 11-Nov-2013.) $)
    isnei $p |- ( ( J e. Top /\ S C_ X ) -> ( N e. ( ( nei ` J ) ` S ) <->
                 ( N C_ X /\ E. g e. J ( S C_ g /\ g C_ N ) ) ) ) $=
      ( vv ctop wcel wss wa cnei cfv cv wrex cpw crab neival eleq2d wb wceq syl
      sseq2 anbi2d rexbidv elrab topopn elpw2g anbi1d syl5bb adantr bitrd ) CHI
      ZAEJZKZDACLMMZIDABNZJZUQGNZJZKZBCOZGEPZQZIZDEJZURUQDJZKZBCOZKZUOUPVDDGABC
      EFRSUMVEVJTUNVEDVCIZVIKUMVJVBVIGDVCUSDUAZVAVHBCVLUTVGURUSDUQUCUDUEUFUMVKV
      FVIUMECIVKVFTCEFUGDECUHUBUIUJUKUL $.

    $( An intuitive definition of a neighborhood in terms of interior.
       (Contributed by Szymon Jaroszewicz, 18-Dec-2007.)  (Revised by Mario
       Carneiro, 11-Nov-2013.) $)
    neiint $p |- ( ( J e. Top /\ S C_ X /\ N C_ X ) ->
           ( N e. ( ( nei ` J ) ` S ) <-> S C_ ( ( int ` J ) ` N ) ) ) $=
      ( vv ctop wcel wss w3a cnei cfv cv wa wrex cnt wb isnei 3adant3 syl2anc
      3anibar simprrl ssntr 3adantl2 adantrrl sstrd simpl1 simpl3 ntropn ntrss2
      rexlimdvaa simpr wceq sseq2 sseq1 anbi12d rspcev syl12anc ex impbid bitrd
      ) BGHZADIZCDIZJZCABKLLHZAFMZIZVGCIZNZFBOZACBPLLZIZVBVCVDVFVKVBVCVFVDVKNQV
      DAFBCDERSUAVEVKVMVEVJVMFBVEVGBHZVJNNAVGVLVEVNVHVIUBVEVNVIVGVLIZVHVBVDVNVI
      NVOVCCBVGDEUCUDUEUFUKVEVMVKVEVMNZVLBHZVMVLCIZVKVPVBVDVQVBVCVDVMUGZVBVCVDV
      MUHZCBDEUITVEVMULVPVBVDVRVSVTCBDEUJTVJVMVRNFVLBVGVLUMVHVMVIVRVGVLAUNVGVLC
      UOUPUQURUSUTVA $.

    $( The predicate " ` N ` is a neighborhood of point ` P ` ."  (Contributed
       by NM, 26-Feb-2007.) $)
    isneip $p |- ( ( J e. Top /\ P e. X ) -> ( N e. ( ( nei ` J ) ` { P } ) <->
                 ( N C_ X /\ E. g e. J ( P e. g /\ g C_ N ) ) ) ) $=
      ( ctop wcel wa csn cnei cfv wss cv wrex wb snssi isnei sylan2 snssg
      anbi1d rexbidv anbi2d adantl bitr4d ) CGHZAEHZIDAJZCKLLHZDEMZUHBNZMZUKDMZ
      IZBCOZIZUJAUKHZUMIZBCOZIZUGUFUHEMUIUPPAEQUHBCDEFRSUGUTUPPUFUGUSUOUJUGURUN
      BCUGUQULUMAUKETUAUBUCUDUE $.

    $( A neighborhood is included in the topology's base set.  (Contributed by
       NM, 12-Feb-2007.) $)
    neii1 $p |- ( ( J e. Top /\ N e. ( ( nei ` J ) ` S ) ) -> N C_ X ) $=
      ( vg ctop wcel cnei cfv wa wss neiss2 cv wrex isnei simpl syl6bi impancom
      mpd ) BGHZCABIJJHZKADLZCDLZABCDEMUAUCUBUDUAUCKUBUDAFNZLUECLKFBOZKUDAFBCDE
      PUDUFQRST $.

    $( The neighborhoods of any set are subsets of the base set.  (Contributed
       by Stefan O'Rear, 6-Aug-2015.) $)
    neisspw $p |- ( J e. Top -> ( ( nei ` J ) ` S ) C_ ~P X ) $=
      ( vv ctop wcel cnei cfv cpw cv wa wss neii1 selpw sylibr ex ssrdv ) BFGZE
      ABHIIZCJZSEKZTGZUBUAGZSUCLUBCMUDABUBCDNECOPQR $.
  $}

  ${
    $d g J $.  $d g N $.  $d g R $.  $d g S $.
    $( Property of a neighborhood.  (Contributed by NM, 12-Feb-2007.) $)
    neii2 $p |- ( ( J e. Top /\ N e. ( ( nei ` J ) ` S ) ) ->
                 E. g e. J ( S C_ g /\ g C_ N ) ) $=
      ( ctop wcel cnei cfv wa cuni wss cv wrex eqid neiss2 isnei simpr impancom
      syl6bi mpd ) CEFZDACGHHFZIACJZKZABLZKUEDKIBCMZACDUCUCNZOUAUDUBUFUAUDIUBDU
      CKZUFIUFABCDUCUGPUHUFQSRT $.

    $( Any neighborhood of a set ` S ` is also a neighborhood of any subset
       ` R C_ S ` .  Theorem of [BourbakiTop1] p.  I.2.  (Contributed by FL,
       25-Sep-2006.) $)
    neiss $p |- ( ( J e. Top /\ N e. ( ( nei ` J ) ` S ) /\ R C_ S ) ->
                 N e. ( ( nei ` J ) ` R ) ) $=
      ( vg ctop wcel cnei cfv wss w3a cuni cv wa wrex eqid neii1 3adant3 neii2
      wi sstr2 anim1d reximdv 3ad2ant3 mpd wb simp1 simp3 sstrd isnei mpbir2and
      neiss2 syl2anc ) CFGZDBCHIZIGZABJZKZDAUOIGZDCLZJZAEMZJZVBDJZNZECOZUNUPVAU
      QBCDUTUTPZQRURBVBJZVDNZECOZVFUNUPVJUQBECDSRUQUNVJVFTUPUQVIVEECUQVHVCVDABV
      BUAUBUCUDUEURUNAUTJUSVAVFNUFUNUPUQUGURABUTUNUPUQUHUNUPBUTJUQBCDUTVGULRUIA
      ECDUTVGUJUMUK $.

    $( A set is included in its neighborhoods.  Proposition Viii of
       [BourbakiTop1] p.  I.3 .  (Contributed by FL, 16-Nov-2006.) $)
    ssnei $p |- ( ( J e. Top /\ N e. ( ( nei ` J ) ` S ) ) -> S C_ N ) $=
      ( vg ctop wcel cnei cfv wa cv wss wrex neii2 sstr rexlimivw syl ) BEFCABG
      HHFIADJZKQCKIZDBLACKZADBCMRSDBAQCNOP $.
  $}

  $( A point belongs to any of its neighborhoods.  Proposition Viii of
     [BourbakiTop1] p.  I.3.  (Contributed by FL, 28-Sep-2006.) $)
  elnei $p |- ( ( J e. Top /\ P e. A /\ N e. ( ( nei ` J ) ` { P } ) ) ->
              P e. N ) $=
    ( ctop wcel csn cnei cfv w3a wss ssnei 3adant2 wb snssg 3ad2ant2 mpbird ) C
    EFZBAFZDBGZCHIIFZJBDFZTDKZRUAUCSTCDLMSRUBUCNUABDAOPQ $.

  $( The empty set is not a neighborhood of a nonempty set.  (Contributed by
     FL, 18-Sep-2007.) $)
  0nnei $p |- ( ( J e. Top /\ S =/= (/) ) -> -. (/) e. ( ( nei ` J ) ` S ) ) $=
    ( ctop wcel c0 wne cnei cfv wn wceq wa wss ssnei ss0b sylib ex necon3ad imp
    ) BCDZAEFEABGHHDZISTAESTAEJZSTKAELUAABEMANOPQR $.

  ${
    $d g h p v J $.  $d g M $.  $d g h p v N $.  $d g P $.  $d g h p S $.
    $d g h p X $.
    neips.1 $e |- X = U. J $.
    $( A neighborhood of a set is a neighborhood of every point in the set.
       Proposition of [BourbakiTop1] p.  I.2.  (Contributed by FL,
       16-Nov-2006.) $)
    neips $p |- ( ( J e. Top /\ S C_ X /\ S =/= (/) ) ->
                ( N e. ( ( nei ` J ) ` S ) <->
                A. p e. S N e. ( ( nei ` J ) ` { p } ) ) ) $=
      ( vg vh vv wcel wss cfv cv wral wi wa wrex wb sseq1 3adant3 ctop wne cnei
      w3a csn snssi neiss syl3an3 3exp ralrimdv 3ad2ant1 r19.28zv 3ad2ant3 crab
      ssrab2 uniopn mpan2 ad2antrr elrab elunii sylan2br an12s rexlimiva ralimi
      cuni dfss3 sylibr adantl unissb simprbi mprgbir jctir wceq anbi12d rspcev
      c0 sseq2 syl2anc anim2d sylbid ssel2 isneip sylan2 anassrs ralbidva isnei
      ex 3imtr4d impbid ) BUAJZADKZAVPUBZUDZCABUCLZLJZCEMZUEZWNLJZEANZWJWKWOWSO
      WLWJWOWREAWJWOWPAJZWRWTWJWOWQAKWRWPAUFWQABCUGUHUIUJUKWMCDKZWPGMZJZXBCKZPZ
      GBQZPZEANZXAAHMZKZXICKZPZHBQZPZWSWOWMXHXAXFEANZPZXNWLWJXHXPRWKXAXFEAULUMW
      JWKXPXNOWLWJWKPZXOXMXAXQXOXMXQXOPZIMZCKZIBUNZVEZBJZAYBKZYBCKZPZXMWJYCWKXO
      WJYABKYCXTIBUOYABUPUQURXRYDYEXOYDXQXOWPYBJZEANYDXFYGEAXEYGGBXCXBBJZXDYGYH
      XDPXCXBYAJYGXTXDIXBBXSXBCSUSWPXBYAUTVAVBVCVDEAYBVFVGVHYEXKHYAHYACVIXIYAJX
      IBJXKXTXKIXIBXSXICSUSVJVKVLXLYFHYBBXIYBVMXJYDXKYEXIYBAVQXIYBCSVNVOVRWGVST
      VTWJWKWSXHRWLXQWRXGEAWJWKWTWRXGRZWKWTPWJWPDJYIADWPWAWPGBCDFWBWCWDWETWJWKW
      OXNRWLAHBCDFWFTWHWI $.

    $( An open set is a neighborhood of any of its subsets.  (Contributed by
       FL, 2-Oct-2006.) $)
    opnneissb $p |- ( ( J e. Top /\ N e. J /\ S C_ X ) ->
                   ( S C_ N <-> N e. ( ( nei ` J ) ` S ) ) ) $=
      ( vg ctop wcel wss w3a cnei cfv wi wa cv wrex eltopss adantr ssid wceq wb
      sseq2 sseq1 anbi12d rspcev mpanr2 ad2ant2l isnei ad2ant2r mpbir2and exp43
      3imp ssnei ex 3ad2ant1 impbid ) BGHZCBHZADIZJACIZCABKLLHZUQURUSUTVAMUQURU
      SUTVAUQURNZUSUTNZNVACDIZAFOZIZVECIZNZFBPZVBVDVCCBDEQRURUTVIUQUSURUTCCIZVI
      CSVHUTVJNFCBVECTVFUTVGVJVECAUBVECCUCUDUEUFUGUQUSVAVDVINUAURUTAFBCDEUHUIUJ
      UKULUQURVAUTMUSUQVAUTABCUMUNUOUP $.

    $( Any superset of an open set is a neighborhood of it.  (Contributed by
       NM, 14-Feb-2007.) $)
    opnssneib $p |- ( ( J e. Top /\ S e. J /\ N C_ X ) ->
                   ( S C_ N <-> N e. ( ( nei ` J ) ` S ) ) ) $=
      ( vg ctop wcel wss w3a cnei cfv cv wa wrex wi simplr wceq sseq2 ex rspcev
      sseq1 anbi12d ssid biantrur syl6bbr adantlr jca 3adant1 wb eltopss syldan
      isnei 3adant3 sylibrd ssnei 3ad2ant1 impbid ) BGHZABHZCDIZJZACIZCABKLLHZV
      BVCVAAFMZIZVECIZNZFBOZNZVDUTVAVCVJPUSUTVANZVCVJVKVCNVAVIUTVAVCQUTVCVIVAVH
      VCFABVEARZVHAAIZVCNVCVLVFVMVGVCVEAASVEACUBUCVMVCAUDUEUFUAUGUHTUIUSUTVDVJU
      JZVAUSUTADIVNABDEUKAFBCDEUMULUNUOUSUTVDVCPVAUSVDVCABCUPTUQUR $.

    $( Any subset of ` X ` containing a neighborhood of a set is a neighborhood
       of this set.  Proposition Vi of [BourbakiTop1] p.  I.3.  (Contributed by
       FL, 2-Oct-2006.) $)
    ssnei2 $p |- ( ( ( J e. Top /\ N e. ( ( nei ` J ) ` S ) ) /\
                 ( N C_ M /\ M C_ X ) ) -> M e. ( ( nei ` J ) ` S ) ) $=
      ( vg ctop wcel cnei cfv wa wss cv wrex simprr neii2 sstr2 com12 anim2d wb
      reximdv mpan9 adantrr neiss2 isnei syldan adantr mpbir2and ) BHIZDABJKKZI
      ZLZDCMZCEMZLZLCUKIZUOAGNZMZURCMZLZGBOZUMUNUOPUMUNVBUOUMUSURDMZLZGBOUNVBAG
      BDQUNVDVAGBUNVCUTUSVCUNUTURDCRSTUBUCUDUMUQUOVBLUAZUPUJULAEMVEABDEFUEAGBCE
      FUFUGUHUI $.

    $( Any neighborhood of an element in the closure of a subset intersects the
       subset.  Part of proof of Theorem 6.6 of [Munkres] p. 97.  (Contributed
       by NM, 26-Feb-2007.) $)
    neindisj $p |- ( ( ( J e. Top /\ S C_ X ) /\ ( P e. ( ( cls ` J ) ` S ) /\
                   N e. ( ( nei ` J ) ` { P } ) ) ) -> ( N i^i S ) =/= (/) ) $=
      ( vg ctop wcel wss ccl cfv csn cin c0 wne wi wa wceq ex cnei cv wb clsss3
      wrex sseld impr isneip syldan w3a 3anass clsndisj sylanbr anassrs adantrr
      adantllr ssdisj necon3d ad2antll mpd rexlimdva expimpd sylbid exp32 imp43
      ) CHIZBEJZABCKLLZIZDAMCUALLIZDBNZOPZVFVGVIVJVLQVFVGVIRZRZVJDEJZAGUBZIZVPD
      JZRZGCUEZRZVLVFVMAEIZVJWAUCVFVGVIWBVFVGRVHEABCEFUDUFUGAGCDEFUHUIVNVOVTVLV
      NVORZVSVLGCWCVPCIZRZVSVLWEVSRVPBNZOPZVLWEVQWGVRVNWDVQWGVOVNWDVQWGVNVFVGVI
      UJWDVQRWGVFVGVIUKABVPCEFULUMUNUPUOVRWGVLQWEVQVRVKOWFOVRVKOSWFOSVPDBUQTURU
      SUTTVAVBVCVDVE $.
  $}

  $( An open set is a neighborhood of any of its subsets.  (Contributed by NM,
     13-Feb-2007.) $)
  opnneiss $p |- ( ( J e. Top /\ N e. J /\ S C_ N ) ->
                  N e. ( ( nei ` J ) ` S ) ) $=
    ( ctop wcel wss w3a cnei simp3 cuni wb eqid eltopss ancoms stoic3 opnneissb
    cfv sstr syld3an3 mpbid ) BDEZCBEZACFZGUCCABHQQEZUAUBUCIUAUBUCABJZFZUCUDKUA
    UBCUEFZUCUFCBUEUELZMUCUGUFACUERNOABCUEUHPST $.

  $( An open set is a neighborhood of any of its members.  (Contributed by NM,
     8-Mar-2007.) $)
  opnneip $p |- ( ( J e. Top /\ N e. J /\ P e. N ) ->
                  N e. ( ( nei ` J ) ` { P } ) ) $=
    ( wcel ctop csn wss cnei cfv snssi opnneiss syl3an3 ) ACDBEDCBDAFZCGCMBHIID
    ACJMBCKL $.

  ${
    $d x J $.  $d x S $.
    $( A set is open iff it is a neighborhood of all of its points.
       (Contributed by Jeff Hankins, 15-Sep-2009.) $)
    opnnei $p |- ( J e. Top -> ( S e. J <-> A. x e. S S e. ( (
    nei ` J ) ` { x } ) ) ) $=
      ( ctop wcel c0 wceq cv csn cnei cfv wral wb wa adantr adantl wi wss snss
      ex 0opn eleq1 mpbird rzal 2thd wn opnneip 3expia ralrimiv cuni wrex df-ne
      wne r19.2z sylbir neii1 rexlimdvw sylan9r cnt ntrss2 ralbii dfss3 biimpri
      eqid vex sylan2br eqssd sstr2 com12 syl5bi imp neiint 3com23 3expa syldan
      ralbidva isopn3 3imtr4d com23 mpdd impbid pm2.61dan ) CDEZBFGZBCEZBAHZIZC
      JKKEZABLZMWCWDNZWEWIWJWEFCEZWCWKWDCUAOWDWEWKMWCBFCUBPUCWDWIWCWHABUDPUEWCW
      DUFZNZWEWIWCWEWIQWLWCWEWIWCWENWHABWCWEWFBEZWHWFCBUGUHUITOWMWIBCUJZRZWEWLW
      IWHABUKZWCWPWLBFUMZWIWQQBFULWRWIWQWHABUNTUOWCWHWPABWCWHWPWGCBWOWOVDZUPTUQ
      URWCWIWPWEQQWLWCWPWIWEWCWPWIWEQWCWPNZWGBCUSKKZRZABLZXABGZWIWEWTXCXDWTXCNX
      ABWTXABRXCBCWOWSUTOXCWTWFXAEZABLZBXARZXEXBABWFXAAVEZSVAXFXGWTXGXFABXAVBVC
      PVFVGTWTWHXBABWTWNWGWORZWHXBMZWTWNXIWNWGBRZWTXIWFBXHSWPXKXIQWCXKWPXIWGBWO
      VHVIPVJVKWCWPXIXJWCXIWPXJWGCBWOWSVLVMVNVOVPBCWOWSVQVRTVSOVTWAWB $.
  $}

  ${
    $d J x n $.  $d K x $.  $d P x n $.  $d S x n $.  $d X x n $.  $d Y x $.
    tpnei.1 $e |- X = U. J $.
    $( The underlying set of a topology is a neighborhood of any of its
       subsets.  Special case of ~ opnneiss .  (Contributed by FL,
       2-Oct-2006.) $)
    tpnei $p |- ( J e. Top -> ( S C_ X <-> X e. ( ( nei ` J ) ` S ) ) ) $=
      ( ctop wcel wss cnei cfv wi topopn opnneiss 3exp mpd ssnei ex impbid ) BE
      FZACGZCABHIIFZRCBFZSTJBCDKRUASTABCLMNRTSABCOPQ $.

    $( The union of the neighborhoods of a set equals the topology's underlying
       set.  (Contributed by FL, 18-Sep-2007.)  (Revised by Mario Carneiro,
       9-Apr-2015.) $)
    neiuni $p |- ( ( J e. Top /\ S C_ X ) -> X = U. ( ( nei ` J ) ` S ) ) $=
      ( vx ctop wcel wss wa cnei cfv cuni tpnei biimpa elssuni cv wral wi neii1
      syl ex adantr ralrimiv unissb sylibr eqssd ) BFGZACHZIZCABJKKZLZUICUJGZCU
      KHUGUHULABCDMNCUJOTUIEPZCHZEUJQUKCHUIUNEUJUGUMUJGZUNRUHUGUOUNABUMCDSUAUBU
      CEUJCUDUEUF $.

    $( A point ` P ` belongs to the closure of a set ` S ` iff every
       neighborhood of ` P ` meets ` S ` .  (Contributed by FL,
       15-Sep-2013.) $)
    neindisj2 $p |- ( ( J e. Top /\ S C_ X /\ P e. X ) ->
        ( P e. ( ( cls ` J ) ` S ) <->
          A. n e. ( ( nei ` J ) ` { P } ) ( n i^i S ) =/= (/) ) ) $=
      ( vx wcel wss w3a cfv cv cin c0 wne wi wral wa wrex ex ctop ccl csn elcls
      cnei isneip r19.29r pm3.35 ssrin sseq2 syl6bi syl5com necon3d com23 imp31
      wceq ss0 rexlimivw syl adantl 3adant2 imp ralrimiv opnneip neeq1d rspccva
      weq ineq1 idd 3exp com14 com3l mpcom 3expia com25 3imp1 impbida bitrd ) D
      UAHZBEIZAEHZJZABDUBKKHAGLZHZWCBMZNOZPZGDQZCLZBMZNOZCAUCDUEKKZQZGABDEFUDWB
      WHWMWBWHRWKCWLWBWHWIWLHZWKPWBWNWHWKVSWAWNWHWKPZPVTVSWARWNWIEIZWDWCWIIZRZG
      DSZRWOAGDWIEFUFWSWOWPWSWHWKWSWHRWRWGRZGDSWKWRWGGDUGWTWKGDWDWQWGWKWDWGWQWK
      WDWGWQWKPWDWGRWFWQWKWDWFUHWQWJNWENWQWEWJIZWJNUPZWENUPZWCWIBUIXBXAWENIXCWJ
      NWEUJWEUQUKULUMULTUNUOURUSTUTUKVAUNVBVCWBWMRWGGDVSVTWAWMWCDHZWGPVSXDWAWMV
      TWGVSXDWAWMVTWGPPPVSXDRWDWMVTWAWFVSXDWDWMVTWAWFPPZPZWCWLHZVSXDWDJZXFADWCV
      DWMXGXHXEWMXGXHXEPZWMXGRWFXIWKWFCWCWLCGVGWJWENWIWCBVHVEVFWAXHVTWFWFWAXHVT
      WFWFPWAXHVTJWFVIVJVKUSTVLVMVNVOTVOVPVCVQVR $.

    topssnei.2 $e |- Y = U. K $.
    $( A finer topology has more neighborhoods.  (Contributed by Mario
       Carneiro, 9-Apr-2015.) $)
    topssnei $p |- ( ( ( J e. Top /\ K e. Top /\ X = Y ) /\ J C_ K ) ->
       ( ( nei ` J ) ` S ) C_ ( ( nei ` K ) ` S ) ) $=
      ( vx ctop wcel wceq w3a wss wa cnei cfv cv cnt syl2anc syl3anc wb sseqtrd
      simpl2 simprl simpl1 simprr ntropn sseldd neiss2 neiint opnneiss syl22anc
      neii1 mpbid ntrss2 simpl3 ssnei2 expr ssrdv ) BIJZCIJZDEKZLZBCMZNHABOPPZA
      COPPZVCVDHQZVEJZVGVFJZVCVDVHNZNZVAVGBRPPZVFJZVLVGMZVGEMVIUTVAVBVJUCZVKVAV
      LCJAVLMZVMVOVKBCVLVCVDVHUDVKUTVGDMZVLBJUTVAVBVJUEZVKUTVHVQVRVCVDVHUFZABVG
      DFUMSZVGBDFUGSUHVKVHVPVSVKUTADMZVQVHVPUAVRVKUTVHWAVRVSABVGDFUISVTABVGDFUJ
      TUNACVLUKTVKUTVQVNVRVTVGBDFUOSVKVGDEVTUTVAVBVJUPUBACVGVLEGUQULURUS $.
  $}

  ${
    $d g h v x y J $.  $d g h v M $.  $d g h v x y N $.  $d g h v x y S $.
    $( The intersection of two neighborhoods of a set is also a neighborhood of
       the set.  Proposition Vii of [BourbakiTop1] p.  I.3 .  (Contributed by
       FL, 28-Sep-2006.) $)
    innei $p |- ( ( J e. Top /\ N e. ( ( nei ` J ) ` S )
   /\ M e. ( ( nei ` J ) ` S ) ) -> ( N i^i M ) e. ( ( nei ` J ) ` S ) ) $=
      ( vg vh vv ctop wcel cfv cin cv wa wrex 3adant3 neii2 wi rexlimdva syldan
      wss cnei w3a cuni eqid neii1 ssinss1 syl anim12dan inopn 3expa ssin ss2in
      biimpi anim12i an4s wceq sseq2 sseq1 anbi12d rspcev syl2an an32s ex imp32
      expr 3impb wb neiss2 isnei mpbir2and ) BHIZDABUAJJZIZCVLIZUBDCKZVLIZVOBUC
      ZTZAELZTZVSVOTZMZEBNZVKVMVRVNVKVMMDVQTVRABDVQVQUDZUEDCVQUFUGOVKVMVNWCVKVM
      VNMAFLZTZWEDTZMZFBNZAGLZTZWJCTZMZGBNZMWCVKVMWIVNWNAFBDPAGBCPUHVKWIWNWCVKW
      HWNWCQZFBVKWEBIZMZWHWOWQWHMWMWCGBWQWJBIZWHWMWCQWQWRMZWHWMWCWSWEWJKZBIZAWT
      TZWTVOTZMZWCWHWMMVKWPWRXAWEWJBUIUJWFWKWGWLXDWFWKMZXBWGWLMXCXEXBAWEWJUKUMW
      EDWJCULUNUOWBXDEWTBVSWTUPVTXBWAXCVSWTAUQVSWTVOURUSUTVAVEVBRVCRVDSVFVKVMVP
      VRWCMVGZVNVKVMAVQTXFABDVQWDVHAEBVOVQWDVISOVJ $.

    $( Only an open set is a neighborhood of itself.  (Contributed by FL,
       2-Oct-2006.) $)
    opnneiid $p |- ( J e. Top -> ( N e. ( ( nei ` J ) ` N ) <-> N e. J ) ) $=
      ( vx ctop wcel cnei cfv wa cv wss wrex neii2 wceq eleq1a syl5bir rexlimiv
      eqss syl ex ssid opnneiss 3exp mpii impbid ) ADEZBBAFGGEZBAEZUEUFUGUEUFHB
      CIZJUHBJHZCAKUGBCABLUIUGCAUIBUHMUHAEUGBUHQUHABNOPRSUEUGBBJZUFBTUEUGUJUFBA
      BUAUBUCUD $.

    $( For any neighborhood ` N ` of ` S ` , there is a neighborhood ` x ` of
       ` S ` such that ` N ` is a neighborhood of all subsets of ` x ` .
       Proposition Viv of [BourbakiTop1] p.  I.3 .  (Contributed by FL,
       2-Oct-2006.) $)
    neissex $p |- ( ( J e. Top /\ N e. ( ( nei ` J ) ` S ) ) ->
   E. x e. ( ( nei ` J ) ` S ) A. y ( y C_ x -> N e. ( ( nei ` J ) ` y ) ) ) $=
      ( ctop wcel cnei cfv wa cv wss wrex wi wal neii2 simpr adantr syl3anc ex
      opnneiss 3expb adantrrr adantlr simplll cuni simpll eqid opnssneib biimpa
      wb neii1 anasss neiss adantrrl alrimiv jca reximdv2 mpd ) DFGZECDHIZIZGZJ
      ZCAKZLZVEELZJZADMBKZVELZEVIVAIGZNZBOZAVBMCADEPVDVHVMADVBVDVEDGZVHJZVEVBGZ
      VMJVDVOJZVPVMUTVOVPVCUTVNVFVPVGUTVNVFVPCDVEUAUBUCUDVQVLBVDVNVGVLVFVDVNVGJ
      ZJZVJVKVSVJJUTEVEVAIGZVJVKUTVCVRVJUEVSVTVJVDVNVGVTVDVNJZVGVTWAUTVNEDUFZLZ
      VGVTUKUTVCVNUGVDVNQVDWCVNCDEWBWBUHZULRVEDEWBWDUISUJUMRVSVJQVIVEDEUNSTUOUP
      UQTURUS $.
  $}

  $( The empty set is a neighborhood of itself.  (Contributed by FL,
     10-Dec-2006.) $)
  0nei $p |- ( J e. Top -> (/) e. ( ( nei ` J ) ` (/) ) ) $=
    ( ctop wcel c0 cnei cfv 0opn opnneiid mpbird ) ABCDDAEFFCDACAGADHI $.

  ${
    $d a p C $.  $d a N $.  $d a X $.
    neiptop.o $e |- J = { a e. ~P X | A. p e. a a e. ( N ` p ) } $.
    $( Lemma for ~ neiptopreu .  (Contributed by Thierry Arnoux,
       6-Jan-2018.) $)
    neipeltop $p |- ( C e. J <-> ( C C_ X /\ A. p e. C C e. ( N ` p ) ) ) $=
      ( wcel cpw cv cfv wral wa wss eleq1 raleqbi1dv elrab2 cvv wb c0 wceq elex
      0ex mpbiri adantl wne ralimi r19.3rzv biimparc sylan pm2.61dane elpwg syl
      pm5.32ri bitri ) ABHADIZHZAEJCKZHZEALZMADNZUTMFJZURHZEVBLUTFAUPBVCUSEVBAV
      BAUROPGQUTUQVAUTARHZUQVASUTVDATATUAZVDUTVEVDTRHUCATROUDUEUTVDEALZATUFZVDU
      SVDEAAURUBUGVGVDVFVDEAUHUIUJUKADRULUMUNUO $.

    $d a b p $.  $d a p J $.  $d a p X $.  $d p ph $.
    neiptop.0 $e |- ( ph -> N : X --> ~P ~P X ) $.
    neiptop.1 $e |- ( ( ( ( ph /\ p e. X ) /\ a C_ b /\ b C_ X )
                                     /\ a e. ( N ` p ) ) -> b e. ( N ` p ) ) $.
    neiptop.2 $e |- ( ( ph /\ p e. X ) -> ( fi ` ( N ` p ) ) C_ ( N ` p ) ) $.
    neiptop.3 $e |- ( ( ( ph /\ p e. X ) /\ a e. ( N ` p ) ) -> p e. a ) $.
    neiptop.4 $e |- ( ( ( ph /\ p e. X ) /\ a e. ( N ` p ) )
                      -> E. b e. ( N ` p ) A. q e. b a e. ( N ` q ) ) $.
    neiptop.5 $e |- ( ( ph /\ p e. X ) -> X e. ( N ` p ) ) $.
    $( Lemma for ~ neiptopreu .  (Contributed by Thierry Arnoux,
       6-Jan-2018.) $)
    neiptopuni $p |- ( ph -> X = U. J ) $=
      ( cuni wss wcel cv wa wceq cpw elpwi ad2antlr simpr sseldd wral wrex crab
      wi cfv unieqi eleq2i elunirab bitri simpl reximi sylbi r19.29a ssrdv ssid
      a1i ralrimiva neipeltop sylanbrc unissel syl2anc eqcomd ) ABPZDAVIDQDBRZV
      IDUAAFVIDFSZVIRZVKDRZUJAVLVKGSZRZVMGDUBZVLVNVPRZTZVOTVNDVKVQVNDQVLVOVNDUC
      UDVRVOUEUFVLVOVNVKCUKZRFVNUGZTZGVPUHZVOGVPUHVLVKVTGVPUIZPZRWBVIWDVKBWCIUL
      UMVTGVKVPUNUOWAVOGVPVOVTUPUQURUSVBUTADDQZDVSRZFDUGVJWEADVAVBAWFFDOVCDBCDF
      GIVDVEBDVFVGVH $.

    $d a c e f p J $.  $d a b c N $.  $d a b p X $.  $d a b c e f p ph $.
    $( Lemma for ~ neiptopreu .  (Contributed by Thierry Arnoux,
       7-Jan-2018.) $)
    neiptoptop $p |- ( ph -> J e. Top ) $=
      ( wcel wss wral wa cvv ve vf vc ctop cv cuni wi wal cin uniss adantl wceq
      cfv neiptopuni adantr sseqtr4d w3a simp-4l ad3antrrr simpllr jca ad2antlr
      sseldd elssuni simpr sselda neipeltop simprbi syl r19.21bi adantllr sseq1
      3jca 3anbi2d eleq1 anbi12d imbi1d imbi2d cpw crab ssid ralrimiva sylanbrc
      a1i pwexg rabexg 3syl syl5eqel ssexd uniexg sseq2 3anbi23d anbi1d imbi12d
      vtoclg chvarv mp2and eluni2 sylib r19.29a ex alrimiv inss1 simplbi syl5ss
      wrex cfi simplll sseldi syl2anc simplr inss2 fvex inelfi mp3an1 wb istopg
      mpbir2and ) ABUDPZUAUEZBQZXTUFZBPZUGZUAUHZXTUBUEZUIZBPZUBBRZUABRZAYDUAAYA
      YCAYASZYBDQZYBFUEZCUMZPZFYBRYCYKYBBUFZDYAYBYPQAXTBUJUKADYPULYAABCDEFGHIJK
      LMNOUNUOUPZYKYOFYBYKYMYBPZSZYMUCUEZPZYOUCXTYSYTXTPZSUUASZAYMDPZSZYTYBQZYL
      UQZYTYNPZYOUUCUUEUUFYLUUCAUUDAYAYRUUBUUAURUUCYBDYMYKYLYRUUBUUAYQUSZYKYRUU
      BUUAUTVCVAUUBUUFYSUUAYTXTVDVBUUIVMYKUUBUUAUUHYRYKUUBSZUUHFYTUUJYTBPZUUHFY
      TRZYKXTBYTAYAVEZVFUUKYTDQUULYTBCDFGIVGVHVIVJVKYKUUGUUHSZYOUGZYRUUBUUAYKUU
      EGUEZYBQZYLUQZUUPYNPZSZYOUGZUGYKUUOUGGUCUUPYTULZUVAUUOYKUVBUUTUUNYOUVBUUR
      UUGUUSUUHUVBUUQUUFUUEYLUUPYTYBVLVNUUPYTYNVOVPVQVRYKXTTPYBTPUVAYKXTBTABTPZ
      YAABUUSFUUPRZGDVSZVTZTIADBPZUVETPUVFTPADDQZDYNPZFDRUVGUVHADWAWDAUVIFDOWBD
      BCDFGIVGWCDBWEUVDGUVETWFWGWHZUOUUMWIXTTWJUUEUUPHUEZQZUVKDQZUQZUUSSZUVKYNP
      ZUGUVAHYBTUVKYBULZUVOUUTUVPYOUVQUVNUURUUSUVQUVLUUQUVMYLUUEUVKYBUUPWKUVKYB
      DVLWLWMUVKYBYNVOWNKWOWGWPUSWQYSYRUUAUCXTXFYKYRVEUCYMXTWRWSWTWBYBBCDFGIVGW
      CXAXBAYIUABAXTBPZSZYHUBBUVSYFBPZSZYGDQYGYNPZFYGRYHUWAYGXTDXTYFXCZUVRXTDQZ
      AUVTUVRUWDXTYNPZFXTRZXTBCDFGIVGZXDZVBXEUWAUWBFYGUWAYMYGPZSZYNXGUMZYNYGUWJ
      AUUDUWKYNQAUVRUVTUWIXHUWJXTDYMUWJUVRUWDAUVRUVTUWIUTZUWHVIUWJYGXTYMUWCUWAU
      WIVEZXIZVCLXJUWJUWEYFYNPZYGUWKPZUWJUVRYMXTPUWEUWLUWNUVRUWEFXTUVRUWDUWFUWG
      VHVJXJUWJUVTYMYFPUWOUVSUVTUWIXKUWJYGYFYMXTYFXLUWMXIUVTUWOFYFUVTYFDQUWOFYF
      RYFBCDFGIVGVHVJXJYNTPUWEUWOUWPYMCXMXTYFTYNXNXOXJVCWBYGBCDFGIVGWCWBWBAUVCX
      SYEYJSXPUVJUAUBTBXQVIXR $.

    $d a c d p J $.  $d a b c d p q r s N $.  $d a b c d p q r s X $.
    $d a b c d p q r s ph $.
    $( Lemma for ~ neiptopreu .  (Contributed by Thierry Arnoux,
       7-Jan-2018.) $)
    neiptopnei $p |- ( ph -> N = ( p e. X |-> ( ( nei ` J ) ` { p } ) ) ) $=
      ( vc vd wcel wa wi vr vs cfv cmpt csn cnei cpw feqmptd cuni wss ffvelrnda
      cv wel wrex adantr elpwid sseldd wceq neiptopuni sseqtrd crab wral ssrab2
      simpr a1i weq fveq2 eleq2d elrab simp-5l simpr1l simplr w3a sseq1 3anbi2d
      3anassrs anbi12d imbi1d simpl1l cvv ctop neiptoptop uniexg eqeltrd rabexg
      eleq1 syl sseq2 3anbi23d anbi1d imbi12d anbi2d 3anbi1d chvarv vtoclg 3syl
      mpcom 3an1rs syl211anc simplll simprl simprr cbvralv rexeqbidv rexralbidv
      mpan2 sselda a1d ancrd ralimdva reximdva mpd ralbii rexbii sylibr biimpri
      dfss3 reximi syl21anc r19.29a sylan2b ralrimiva neipeltop sylanbrc anim1i
      wb nfv nfrab1 nfcv rabid elequ1 elequ2 ex syl5bi ssrd rspcev syl12anc jca
      eleq2 nfan nfre1 sseqtr4d syl31anc simprbi anasss reximi2 impbida eleqtrd
      r19.21bi ad2antll r19.29af isneip syl2anc bitr4d eqrdv mpteq2dva eqtrd
      eqid ) ACFDFULZCUCZUDFDUUSUEBUFUCUCZUDAFDDUGZUGZCJUHAFDUUTUVAAUUSDRZSZPUU
      TUVAUVEPULZUUTRZUVFBUIZUJZFQUMZQULZUVFUJZSZQBUNZSZUVFUVARZUVEUVGUVOUVEUVG
      SZUVIUVNUVQUVFDUVHUVQUVFDUVQUUTUVBUVFUVQUUTUVBUVEUUTUVCRUVGADUVCUUSCJUKUO
      UPUVEUVGVDUQUPUVEDUVHURZUVGAUVRUVDABCDEFGHIJKLMNOUSZUOZUOUTUVQUVFEULZCUCZ
      RZEDVAZBRZUUSUWDRZUWDUVFUJZUVNUVQUWDDUJZUWDUUTRZFUWDVBZUWEUWHUVQUWCEDVCZV
      EUVQUWDUAULZCUCZRZUAUWDVBUWJUVQUWNUAUWDUWLUWDRUVQUWLDRZUVFUWMRZSZUWNUWCUW
      PEUWLDEUAVFUWBUWMUVFUWAUWLCVGVHVIUVQUWQSZHULZUWDUJZUWNHUWMUWRUWSUWMRZSZUW
      TSAUWOUWTUXAUWNAUVDUVGUWQUXAUWTVJUVQUWQUXAUWTUWOUWOUWPUXAUWTUVQVKVPUXBUWT
      VDUWRUXAUWTVLAUWOSZUWTUXAVMUWHUWNUWKUXCUWTUWHUXAUWNUXCGULZUWDUJZUWHVMZUXD
      UWMRZSZUWNTZUXCUWTUWHVMZUXASZUWNTGHGHVFZUXHUXKUWNUXLUXFUXJUXGUXAUXLUXEUWT
      UXCUWHUXDUWSUWDVNVOUXDUWSUWMWFVQVRAUXHUWNAUWOUXEUWHUXGVSADVTRUWDVTRUXIADU
      VHVTUVSABWARZUVHVTRABCDEFGHIJKLMNOWBZBWAWCWGWDUWCEDVTWEUXCUXDUWSUJZUWSDUJ
      ZVMZUXGSZUXATZUXIHUWDVTUWSUWDURZUXRUXHUXAUWNUXTUXQUXFUXGUXTUXOUXEUXPUWHUX
      CUWSUWDUXDWHUWSUWDDVNWIWJUWSUWDUWMWFWKUVEUXOUXPVMZUXDUUTRZSZUWSUUTRZTZUXS
      FUAFUAVFZUYCUXRUYDUXAUYFUYAUXQUYBUXGUYFUVEUXCUXOUXPUYFUVDUWOAUUSUWLDWFWLZ
      WMUYFUUTUWMUXDUUSUWLCVGZVHVQUYFUUTUWMUWSUYHVHWKKWNWOWPWQWNWRXFWSUWRAUWOUW
      PUWTHUWMUNZAUVDUVGUWQWTUVQUWOUWPXAUVQUWOUWPXBUXCUWPSZUBULZUWDRZUBUWSVBZHU
      WMUNZUYIUYJUYKDRZUVFUYKCUCZRZSZUBUWSVBZHUWMUNZUYNUYJUYQUBUWSVBZHUWMUNZUYT
      UVQUWCEUWSVBZHUUTUNZTZUYJVUBTFUAUYFUVQUYJVUDVUBUYFUVEUXCUVGUWPUYGUYFUUTUW
      MUVFUYHVHVQUYFVUCVUAHUUTUWMUYHVUCVUAYFUYFUWCUYQEUBUWSEUBVFUWBUYPUVFUWAUYK
      CVGVHZXCVEXDWKUVEUYBSZUXDUWBRZEUWSVBHUUTUNZTVUEGPGPVFZVUGUVQVUIVUDVUJUYBU
      VGUVEUXDUVFUUTWFWLZVUJVUHUWCHEUUTUWSUXDUVFUWBWFXEWKNWNWNUXCVUBUYTTUWPUXCV
      UAUYSHUWMUXCUXASZUYQUYRUBUWSVULUBHUMSZUYQUYOVUMUYOUYQVULUWSDUYKVULUWSDUXC
      UWMUVBUWSUXCUWMUVBADUVCUWLCJUKUPXGUPXGXHXIXJXKUOXLUYMUYSHUWMUYLUYRUBUWSUW
      CUYQEUYKDVUFVIXMXNXOUYMUWTHUWMUWTUYMUBUWSUWDXQXPXRWGXSXTYAYBUWIUWNFUAUWDU
      YFUUTUWMUWDUYHVHXCXOUWDBCDFGIYCYDUVQUVDUVGSUWFUVEUVDUVGAUVDVDZYEUWCUVGEUU
      SDEFVFUWBUUTUVFUWAUUSCVGVHVIXOUVQEUWDUVFUVQEYGUWCEDYHEUVFYIUWAUWDRUWADRZU
      WCSZUVQEPUMZUWCEDYJUVQVUPVUQUVQVUPSAVUOUWCVUQAUVDUVGVUPWTUVQVUOUWCXAUVQVU
      OUWCXBUVQFPUMZTZAVUOSZUWCSZVUQTFEFEVFZUVQVVAVURVUQVVBUVEVUTUVGUWCVVBUVDVU
      OAUUSUWADWFWLVVBUUTUWBUVFUUSUWACVGVHVQFEPYKWKVUGFGUMZTVUSGPVUJVUGUVQVVCVU
      RVUKGPFYLWKMWNWNXSYMYNYOUVMUWFUWGSQUWDBUVKUWDURUVJUWFUVLUWGUVKUWDUUSYSUVK
      UWDUVFVNVQYPYQYRUVEUVOSZUVLUVGQUUTUVEUVOQUVEQYGUVIUVNQUVIQYGUVMQBUUAYTYTV
      VDUVKUUTRZSZUVLSZUVEUVLUVFDUJZVVEUVGUVEUVOVVEUVLWTZVVFUVLVDVVGUVFUVHDUVEU
      VOVVEUVLUVIUVIUVNVVEUVLUVEVKVPVVGUVEUVRVVIUVTWGUUBVVDVVEUVLVLUVEUXDUVFUJZ
      VVHVMZUYBSZUVGTZUVEUVLVVHVMZVVESZUVGTGQGQVFZVVLVVOUVGVVPVVKVVNUYBVVEVVPVV
      JUVLUVEVVHUXDUVKUVFVNVOUXDUVKUUTWFVQVRUYEVVMHPHPVFZUYCVVLUYDUVGVVQUYAVVKU
      YBVVQUXOVVJUXPVVHUVEUWSUVFUXDWHUWSUVFDVNWIWJUWSUVFUUTWFWKKWNWNUUCUVNUVLQU
      UTUNUVEUVIUVMUVLQBUUTUVKBRZUVJUVLVVEUVLSVVRUVJSVVEUVLVVRVVEFUVKVVRUVKDUJV
      VEFUVKVBUVKBCDFGIYCUUDUUIYEUUEUUFUUJUUKUUGUVEUXMUUSUVHRUVPUVOYFAUXMUVDUXN
      UOUVEUUSDUVHVUNUVTUUHUUSQBUVFUVHUVHUURUULUUMUUNUUOUUPUUQ $.

    $d a b j p J $.  $d a b j p q N $.  $d a b j p q X $.  $d a b j p q ph $.
    $( If, to each element ` P ` of a set ` X ` , we associate a set
       ` ( N `` P ) ` fulfilling the properties V_i, V_ii, V_iii and property
       V_iv of [BourbakiTop1] p.  I.2. , corresponding to ~ ssnei , ~ innei ,
       ~ elnei and ~ neissex , then there is a unique topology ` j ` such that
       for any point ` p ` , ` ( N `` p ) ` is the set of neighborhoods of
       ` p ` .  Proposition 2 of [BourbakiTop1] p.  I.3.  This can be used to
       build a topology from a set of neighborhoods.  Note that the additional
       condition that ` X ` is a neighborhood of all points was added.
       (Contributed by Thierry Arnoux, 6-Jan-2018.) $)
    neiptopreu $p |- ( ph ->
      E! j e. ( TopOn ` X ) N = ( p e. X |-> ( ( nei ` j ) ` { p } ) ) ) $=
      ( cfv wcel wceq wa ctopon cv csn cnei cmpt wral wreu cuni ctop neiptoptop
      wi eqid toptopon sylib neiptopuni fveq2d eleqtrrd neiptopnei nfmpt1 nfeq2
      wss nfv nfan simpllr simpr sselda cvv fvexd fvmpt2d syl2anc eqcomd eleq2d
      id ralbida pm5.32da toponss wb topontop opnnei syl biimpa biimpar adantrl
      ad2antlr jca impbida neipeltop 3bitr4d eqrdv ex ralrimiva simpl mpteq2dva
      a1i fveq1d eqeq2d eqreu syl3anc ) ACEUAQZRDGEGUBZUCZCUDQZQZUEZSZDGEXABUBZ
      UDQZQZUEZSZXFCSZUKZBWSUFXJBWSUGACCUHZUAQZWSACUIRCXNRACDEFGHIJKLMNOPUJCXMX
      MULUMUNAEXMUAACDEFGHIJKLMNOPUOUPUQACDEFGHIJKLMNOPURAXLBWSAXFWSRZTZXJXKXPX
      JTZIXFCXQIUBZEVAZXRXHRZGXRUFZTZXSXRWTDQZRZGXRUFZTZXRXFRZXRCRZXQXSYAYEXQXS
      TZXTYDGXRXQXSGXPXJGXPGVBGDXIGEXHUSUTVCXSGVBVCYIWTXRRZTZXHYCXRYKYCXHYKXJWT
      ERZYCXHSXPXJXSYJVDYIXREWTXQXSVEVFXJGEXHDVGXJVMXJYLTXAXGVHVIVJVKVLVNVOXQYG
      YBXQYGTZXSYAYMXOYGXSAXOXJYGVDXQYGVEXRXFEVPVJXQYGYAXQXFUIRZYGYAVQXOYNAXJEX
      FVRWDGXRXFVSVTZWAWEXQYAYGXSXQYGYAYOWBWCWFYHYFVQXQXRCDEGHJWGWNWHWIWJWKXJXE
      BWSCXKXIXDDXKGEXHXCXKYLTZXAXGXBYPXFCUDXKYLWLUPWOWMWPWQWR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Limit points and perfect sets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c limPt $.
  $c Perf $.

  $( Extend class notation with the limit point function for topologies. $)
  clp $a class limPt $.

  $( Extend class notation with the class of all perfect spaces. $)
  cperf $a class Perf $.

  ${
    $d j x y $.
    $( Define a function on topologies whose value is the set of limit points
       of the subsets of the base set.  See ~ lpval .  (Contributed by NM,
       10-Feb-2007.) $)
    df-lp $a |- limPt = ( j e. Top |-> ( x e. ~P U. j |->
                  { y | y e. ( ( cls ` j ) ` ( x \ { y } ) ) } ) ) $.
  $}

  $( Define the class of all perfect spaces.  A perfect space is one for which
     every point in the set is a limit point of the whole space.  (Contributed
     by Mario Carneiro, 24-Dec-2016.) $)
  df-perf $a |- Perf = { j e. Top | ( ( limPt ` j ) ` U. j ) = U. j } $.

  ${
    $d j n x y J $.  $d n x y P $.  $d n x y S $.  $d x T $.  $d j n x y X $.
    lpfval.1 $e |- X = U. J $.
    $( The limit point function on the subsets of a topology's base set.
       (Contributed by NM, 10-Feb-2007.)  (Revised by Mario Carneiro,
       11-Nov-2013.) $)
    lpfval $p |- ( J e. Top -> ( limPt ` J ) = ( x e. ~P X |->
                  { y | y e. ( ( cls ` J ) ` ( x \ { y } ) ) } ) ) $=
      ( vj ctop wcel cpw cv csn cdif ccl cfv cab cmpt cvv clp wceq cuni syl6eqr
      topopn pwexg mptexg 3syl unieq pweqd fveq2 fveq1d eleq2d abbidv mpteq12dv
      df-lp fvmptg mpdan ) CGHZADIZBJZAJURKLZCMNZNZHZBOZPZQHZCRNVDSUPDCHUQQHVEC
      DEUBDCUCAUQVCQUDUEFCAFJZTZIZURUSVFMNZNZHZBOZPVDGQRVFCSZAVHVLUQVCVMVGDVMVG
      CTDVFCUFEUAUGVMVKVBBVMVJVAURVMUSVIUTVFCMUHUIUJUKULABFUMUNUO $.

    $( The set of limit points of a subset of the base set of a topology.
       Alternate definition of limit point in [Munkres] p. 97.  (Contributed by
       NM, 10-Feb-2007.)  (Revised by Mario Carneiro, 11-Nov-2013.) $)
    lpval $p |- ( ( J e. Top /\ S C_ X ) -> ( ( limPt ` J ) ` S ) =
                 { x | x e. ( ( cls ` J ) ` ( S \ { x } ) ) } ) $=
      ( vy ctop wcel wss wa clp cfv cpw cv csn cdif cab wceq adantr cvv cmpt wb
      ccl lpfval fveq1d topopn elpw2g syl biimpar wi clsss3 sseld sylan2 abssdv
      ssdifss ssexd difeq1 fveq2d eleq2d abbidv eqid fvmptg syl2anc eqtrd ) CGH
      ZBDIZJZBCKLZLZBFDMZANZFNZVKOZPZCUCLZLZHZAQZUAZLZVKBVMPZVOLZHZAQZVEVIVTRVF
      VEBVHVSFACDEUDUESVGBVJHZWDTHVTWDRVEWEVFVEDCHZWEVFUBCDEUFZBDCUGUHUIVGWDDCV
      EWFVFWGSVGWCADVFVEWADIZWCVKDHUJBDVMUOVEWHJWBDVKWACDEUKULUMUNUPFBVRWDVJTVS
      VLBRZVQWCAWIVPWBVKWIVNWAVOVLBVMUQURUSUTVSVAVBVCVD $.

    $( The predicate " ` P ` is a limit point of ` S ` ."  (Contributed by NM,
       10-Feb-2007.) $)
    islp $p |- ( ( J e. Top /\ S C_ X ) -> ( P e. ( ( limPt ` J ) ` S ) <->
               P e. ( ( cls ` J ) ` ( S \ { P } ) ) ) ) $=
      ( vx ctop wcel wss wa clp cfv cv csn cdif ccl cab lpval eleq2d elex elab3
      wceq id sneq difeq2d fveq2d eleq12d syl6bb ) CGHBDIJZABCKLLZHAFMZBUKNZOZC
      PLZLZHZFQZHABANZOZUNLZHZUIUJUQAFBCDERSUPVAFAAUTTUKAUBZUKAUOUTVBUCVBUMUSUN
      VBULURBUKAUDUEUFUGUAUH $.

    $( The limit points of a subset are included in the subset's closure.
       (Contributed by NM, 26-Feb-2007.) $)
    lpsscls $p |- ( ( J e. Top /\ S C_ X ) -> ( ( limPt ` J ) ` S ) C_
               ( ( cls ` J ) ` S ) ) $=
      ( vx ctop wcel wss wa clp cfv csn cdif ccl cab lpval difss clsss mp3an3
      cv sseld abssdv eqsstrd ) BFGZACHZIZABJKKETZAUGLZMZBNKZKZGZEOAUJKZEABCDPU
      FULEUMUFUKUMUGUDUEUIAHUKUMHAUHQAUIBCDRSUAUBUC $.

    $( The limit points of a subset are included in the base set.  (Contributed
       by NM, 9-Nov-2007.) $)
    lpss $p |- ( ( J e. Top /\ S C_ X ) -> ( ( limPt ` J ) ` S ) C_ X ) $=
      ( ctop wcel wss wa clp cfv ccl lpsscls clsss3 sstrd ) BEFACGHABIJJABKJJCA
      BCDLABCDMN $.

    $( ` P ` is a limit point of ` S ` iff it is a limit point of
       ` S \ { P } ` .  (Contributed by Mario Carneiro, 25-Dec-2016.) $)
    lpdifsn $p |- ( ( J e. Top /\ S C_ X ) -> ( P e. ( ( limPt ` J ) ` S ) <->
               P e. ( ( limPt ` J ) ` ( S \ { P } ) ) ) ) $=
      ( ctop wcel wss wa clp cfv csn cdif ccl islp ssdifss sylan2 difabs fveq2i
      wb eleq2i syl6bb bitr4d ) CFGZBDHZIZABCJKZKGABALZMZCNKZKZGZAUIUGKGZABCDEO
      UFUMAUIUHMZUJKZGZULUEUDUIDHUMUPTBDUHPAUICDEOQUOUKAUNUIUJBUHRSUAUBUC $.

    $( Subset relationship for limit points.  (Contributed by Mario Carneiro,
       25-Dec-2016.) $)
    lpss3 $p |- ( ( J e. Top /\ S C_ X /\ T C_ S ) ->
      ( ( limPt ` J ) ` T ) C_ ( ( limPt ` J ) ` S ) ) $=
      ( vx ctop wcel wss w3a clp cfv cv csn cdif ccl simp1 wb islp syl2anc
      simp2 ssdifssd simp3 ssdifd clsss syl3anc sseld sstrd 3imtr4d ssrdv ) CGH
      ZADIZBAIZJZFBCKLZLZAUOLZUNFMZBURNZOZCPLZLZHZURAUSOZVALZHZURUPHZURUQHZUNVB
      VEURUNUKVDDIUTVDIVBVEIUKULUMQZUNADUSUKULUMUAZUBUNBAUSUKULUMUCZUDVDUTCDEUE
      UFUGUNUKBDIVGVCRVIUNBADVKVJUHURBCDESTUNUKULVHVFRVIVJURACDESTUIUJ $.

    $( The predicate " ` P ` is a limit point of ` S ` ," in terms of
       neighborhoods.  Definition of limit point in [Munkres] p. 97.  Although
       Munkres uses open neighborhoods, it also works for our more general
       neighborhoods.  (Contributed by NM, 26-Feb-2007.)  (Proof shortened by
       Mario Carneiro, 25-Dec-2016.) $)
    islp2 $p |- ( ( J e. Top /\ S C_ X /\ P e. X ) ->
                ( P e. ( ( limPt ` J ) ` S ) <->
         A. n e. ( ( nei ` J ) ` { P } ) ( n i^i ( S \ { P } ) ) =/= (/) ) ) $=
      ( ctop wcel wss w3a clp cfv csn cdif ccl cv cin c0 wne wb 3adant3 ssdifss
      cnei wral islp neindisj2 syl3an2 bitrd ) DGHZBEIZAEHZJABDKLLHZABAMZNZDOLL
      HZCPUNQRSCUMDUCLLUDZUIUJULUOTUKABDEFUEUAUJUIUNEIUKUOUPTBEUMUBAUNCDEFUFUGU
      H $.

    $( The predicate " ` P ` is a limit point of ` S ` " in terms of open sets.
       see ~ islp2 , ~ elcls , ~ islp .  (Contributed by FL, 31-Jul-2009.) $)
    islp3 $p |- ( ( J e. Top /\ S C_ X /\ P e. X ) ->
     ( P e. ( ( limPt ` J ) ` S ) <->
        A. x e. J ( P e. x -> ( x i^i ( S \ { P } ) ) =/= (/) ) ) ) $=
      ( ctop wcel wss w3a clp cfv csn cdif ccl cv cin c0 wne wb wi wral 3adant3
      islp simp2 ssdifssd elcls syld3an2 bitrd ) DGHZCEIZBEHZJZBCDKLLHZBCBMZNZD
      OLLHZBAPZHURUPQRSUAADUBZUJUKUNUQTULBCDEFUDUCUJUPEIUKULUQUSTUMCEUOUJUKULUE
      UFABUPDEFUGUHUI $.

    $( A point is a limit point of the whole space iff the singleton of the
       point is not open.  (Contributed by Mario Carneiro, 24-Dec-2016.) $)
    maxlp $p |- ( J e. Top ->
      ( P e. ( ( limPt ` J ) ` X ) <-> ( P e. X /\ -. { P } e. J ) ) ) $=
      ( ctop wcel clp cfv wa csn wn wss cdif wb wceq snssi sylan2 adantl adantr
      bitrd ssid lpss mpan2 sseld pm4.71rd ccl simpl islp sylancl clsdif eleq2d
      cnt eldif baib ntrss2 eqssd ntropn eqeltrd snidg ad2antlr isopn3i adantlr
      eleqtrrd impbida notbid 3bitrd pm5.32da ) BEFZACBGHHZFZACFZVJIVKAJZBFZKZI
      VHVJVKVHVICAVHCCLZVICLCUAZCBCDUBUCUDUEVHVKVJVNVHVKIZVJACVLMBUFHHZFZACVLBU
      LHHZMZFZVNVQVHVOVJVSNVHVKUGVPACBCDUHUIVQVRWAAVKVHVLCLZVRWAOACPZVLBCDUJQUK
      VQWBAVTFZKZVNVKWBWFNVHWBVKWFACVTUMUNRVQWEVMVQWEVMVQWEIZVLVTBWGVLVTWEVLVTL
      VQAVTPRVQVTVLLZWEVKVHWCWHWDVLBCDUOQSUPVQVTBFZWEVKVHWCWIWDVLBCDUQQSURVQVMI
      AVLVTVKAVLFVHVMACUSUTVHVMVTVLOVKVLBVAVBVCVDVETVFVGT $.

    $( The closure of a subset of a topological space is the subset together
       with its limit points.  Theorem 6.6 of [Munkres] p. 97.  (Contributed by
       NM, 26-Feb-2007.) $)
    clslp $p |- ( ( J e. Top /\ S C_ X ) -> ( ( cls ` J ) ` S ) =
                ( S u. ( ( limPt ` J ) ` S ) ) ) $=
      ( vx vn ctop wcel wss wa ccl cfv cv cin c0 wne wi wb sylibrd ex clp wo wn
      cun csn cdif cnei wral neindisj expr adantr ineq2d neeq1d adantl ralrimdv
      difsn simpll simplr clsss3 sselda islp2 syl3anc orrd sylibr ssrdv lpsscls
      elun sscls unssd eqssd ) BGHZACIZJZABKLLZAABUALLZUDZVMEVNVPVMEMZVNHZVQVPH
      ZVMVRJZVQAHZVQVOHZUBVSVTWAWBVTWAUCZFMZAVQUEZUFZNZOPZFWEBUGLLZUHZWBVTWCWHF
      WIVTWCWDWIHZWHQVTWCJWKWDANZOPZWHVTWKWMQWCVMVRWKWMVQABWDCDUIUJUKWCWHWMRVTW
      CWGWLOWCWFAWDVQAUPULUMUNSTUOVTVKVLVQCHWBWJRVKVLVRUQVKVLVRURVMVNCVQABCDUSU
      TVQAFBCDVAVBSVCVQAVOVGVDTVEVMAVOVNABCDVHABCDVFVIVJ $.

    $( A point belonging to a set's closure but not the set itself is a limit
       point.  (Contributed by NM, 8-Nov-2007.) $)
    islpi $p |- ( ( ( J e. Top /\ S C_ X ) /\ ( P e. ( ( cls ` J ) ` S ) /\
       -. P e. S ) ) -> P e. ( ( limPt ` J ) ` S ) ) $=
      ( ctop wcel wss wa ccl cfv wn clp wi cun clslp eleq2d wo elun df-or bitri
      syl6bb biimpd imp32 ) CFGBDHIZABCJKKZGZABGZLZABCMKKZGZUEUGUIUKNZUEUGABUJO
      ZGZULUEUFUMABCDEPQUNUHUKRULABUJSUHUKTUAUBUCUD $.

    $( A subset of a topological space is closed iff it contains all its limit
       points.  Corollary 6.7 of [Munkres] p. 97.  (Contributed by NM,
       26-Feb-2007.) $)
    cldlp $p |- ( ( J e. Top /\ S C_ X ) -> ( S e. ( Clsd ` J ) <->
                 ( ( limPt ` J ) ` S ) C_ S ) ) $=
      ( ctop wcel wss wa ccld cfv ccl wceq clp iscld3 cun clslp ssequn2 syl6bbr
      eqeq1d bitrd ) BEFACGHZABIJFABKJJZALZABMJJZAGZABCDNUAUCAUDOZALUEUAUBUFAAB
      CDPSUDAQRT $.

    $( Definition of a perfect space.  (Contributed by Mario Carneiro,
       24-Dec-2016.) $)
    isperf $p |- ( J e. Perf <-> ( J e. Top /\ ( ( limPt ` J ) ` X ) = X ) ) $=
      ( vj cuni clp wceq ctop cperf fveq2 unieq syl6eqr fveq12d eqeq12d df-perf
      cv cfv elrab2 ) DPZEZSFQZQZTGBAFQZQZBGDAHISAGZUBUDTBUETBUAUCSAFJUETAEBSAK
      CLZMUFNDOR $.

    $( Definition of a perfect space.  (Contributed by Mario Carneiro,
       24-Dec-2016.) $)
    isperf2 $p |- ( J e. Perf <->
      ( J e. Top /\ X C_ ( ( limPt ` J ) ` X ) ) ) $=
      ( cperf wcel ctop clp cfv wceq wa wss isperf wb ssid lpss mpan2 eqss baib
      syl pm5.32i bitri ) ADEAFEZBAGHHZBIZJUBBUCKZJABCLUBUDUEUBUCBKZUDUEMUBBBKU
      FBNBABCOPUDUFUEUCBQRSTUA $.

    $( A perfect space is a topology which has no open singletons.
       (Contributed by Mario Carneiro, 24-Dec-2016.) $)
    isperf3 $p |- ( J e. Perf <->
      ( J e. Top /\ A. x e. X -. { x } e. J ) ) $=
      ( cperf wcel ctop clp cfv wss wa cv csn wn wral isperf2 dfss3 maxlp baibd
      ralbidva syl5bb pm5.32i bitri ) BEFBGFZCCBHIIZJZKUDALZMBFNZACOZKBCDPUDUFU
      IUFUGUEFZACOUDUIACUEQUDUJUHACUDUJUGCFUHUGBCDRSTUAUBUC $.

    $( The limit points of a perfect space.  (Contributed by Mario Carneiro,
       24-Dec-2016.) $)
    perflp $p |- ( J e. Perf -> ( ( limPt ` J ) ` X ) = X ) $=
      ( cperf wcel ctop clp cfv wceq isperf simprbi ) ADEAFEBAGHHBIABCJK $.

    $( Property of a perfect space.  (Contributed by Mario Carneiro,
       24-Dec-2016.) $)
    perfi $p |- ( ( J e. Perf /\ P e. X ) -> -. { P } e. J ) $=
      ( vx cperf wcel cv csn wral ctop isperf3 simprbi wceq sneq eleq1d rspccva
      wn notbid sylan ) BFGZEHZIZBGZRZECJZACGAIZBGZRZUABKGUFEBCDLMUEUIEACUBANZU
      DUHUJUCUGBUBAOPSQT $.
  $}

  $( A perfect space is a topology.  (Contributed by Mario Carneiro,
     25-Dec-2016.) $)
  perftop $p |- ( J e. Perf -> J e. Top ) $=
    ( cperf wcel ctop cuni clp cfv wceq eqid isperf simplbi ) ABCADCAEZAFGGLHAL
    LIJK $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subspace topologies
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Reverse closure for the subspace topology.  (Contributed by Mario
     Carneiro, 19-Mar-2015.)  (Revised by Mario Carneiro, 1-May-2015.) $)
  restrcl $p |- ( ( J |`t A ) e. Top -> ( J e. _V /\ A e. _V ) ) $=
    ( crest co ctop wcel c0 wceq cvv wa wn 0opn n0i syl cxp wfn cdm restfn fndm
    ax-mp ndmov nsyl2 ) BACDZEFZUCGHZBIFAIFJUDGUCFUEKUCLUCGMNBAICCIIOZPCQUFHRUF
    CSTUAUB $.

  ${
    $d a b c u v w x y z A $.  $d a b c u v w x y z B $.  $d x J $.  $d x X $.
    $d w x y z V $.  $d w x y z W $.
    $( A subspace topology basis is a basis. ` Y ` is normally a subset of the
       base set of ` J ` .  (Contributed by Mario Carneiro, 19-Mar-2015.) $)
    restbas $p |- ( B e. TopBases -> ( B |`t A ) e. TopBases ) $=
      ( vc vw va vb vu vv vz ctb wcel cvv crest wa cv cin wss wrex wceq c0 wral
      elrest anbi12d reeanv syl6bbr simplll simplrl simplrr inss1 sseldi basis2
      co simpr syl22anc simpld simprd simprl elrestr syl3anc inss2 simplr elind
      simprrl simprrr ssrin syl eleq2 sseq1 rspcev syl12anc rexlimddv ralrimiva
      ineq12 inindir syl6eqr sseq2d anbi2d rexbidv syl5ibrcom rexlimdvva sylbid
      raleqbidv ralrimivv wb ovex isbasis2g ax-mp sylibr cdm wrel cxp relxp wfn
      wn restfn fndm releqi mpbir ovprc2 adantl cfi cfv fibas eqeltrri syl6eqel
      fi0 pm2.61dan ) BJKZALKZBAMULZJKZXHXINZCOZDOZKZXNEOZFOZPZQZNZDXJRZCXRUAZF
      XJUAEXJUAZXKXLYBEFXJXJXLXPXJKZXQXJKZNZXPGOZAPZSZXQHOZAPZSZNZHBRGBRZYBXLYF
      YIGBRZYLHBRZNYNXLYDYOYEYPGXPABJLUBHXQABJLUBUCYIYLGHBBUDUEXLYMYBGHBBXLYGBK
      ZYJBKZNZNZYBYMXOXNYGYJPZAPZQZNZDXJRZCUUBUAYTUUECUUBYTXMUUBKZNZXMIOZKZUUHU
      UAQZNZUUEIBUUGXHYQYRXMUUAKUUKIBRXHXIYSUUFUFXLYQYRUUFUGXLYQYRUUFUHUUGUUBUU
      AXMUUAAUIYTUUFUMUJIXMBYGYJUKUNUUGUUHBKZUUKNZNZUUHAPZXJKZXMUUOKZUUOUUBQZUU
      EUUNXHXIUULUUPUUNXHXIXLYSUUFUUMUFZUOUUNXHXIUUSUPUUGUULUUKUQUUHABJLURUSUUN
      UUHAXMUUGUULUUIUUJVCUUNUUBAXMUUAAUTYTUUFUUMVAUJVBUUNUUJUURUUGUULUUIUUJVDU
      UHUUAAVEVFUUDUUQUURNDUUOXJXNUUOSXOUUQUUCUURXNUUOXMVGXNUUOUUBVHUCVIVJVKVLY
      MYAUUECXRUUBYMXRYHYKPUUBXPYHXQYKVMYGYJAVNVOZYMXTUUDDXJYMXSUUCXOYMXRUUBXNU
      UTVPVQVRWBVSVTWAWCXJLKXKYCWDBAMWEEFCDXJLWFWGWHXHXIWNZNXJTJUVAXJTSXHBAMMWI
      ZWJLLWKZWJLLWLUVBUVCMUVCWMUVBUVCSWOUVCMWPWGWQWRWSWTTXAXBTJXFTXCXDXEXG $.

    $( A subspace can be generated by restricted sets from a basis for the
       original topology.  (Contributed by Mario Carneiro, 19-Mar-2015.)
       (Proof shortened by Mario Carneiro, 30-Aug-2015.) $)
    tgrest $p |- ( ( B e. V /\ A e. W ) ->
      ( topGen ` ( B |`t A ) ) = ( ( topGen ` B ) |`t A ) ) $=
      ( vx vy vz vw wcel wa crest ctg cv wss cuni wceq wex cvv cin crn cfv ovex
      co wb eltg3 ax-mp cmpt cima wfun simpll funmpt restval sseq2d biimpa wral
      a1i wfn inex1 rgenw eqid fnmpt fnima mp2b syl6sseqr ssimaexg syl3anc ciun
      vex wi cres df-ima resmpt adantl rneqd syl5eq unieqd dfiun3 iunin1 syl6eq
      syl6eqr fvex simpr adantr uniiun eltg3i syl5eqelr adantlr elrestr eqeltrd
      unieq eleq1d syl5ibrcom expimpd exlimdv mpd eleq1 syl5bi ssrdv sylancr wf
      ineq1i eqtr4i simplll simpllr sselda fmptd frn syl syl5eqel ineq1 eqsstrd
      sylbid imp eqssd ) BCIZADIZJZBAKUCZLUAZBLUAZAKUCZXQEXSYAEMZXSIZFMZXRNZYBY
      DOZPZJZFQZXQYBYAIZXRRIZYCYIUDBAKUBZFYBXRRUEUFXQYHYJFXQYEYGYJXQYEJZYJYGYFY
      AIZYMGMZBNZYDEBYBASZUGZYOUHZPZJZGQZYNYMXOYRUIZYDYRBUHZNUUBXOXPYEUJUUCYMEB
      YQUKUPYMYDYRTZUUDXQYEYDUUENXQXRUUEYDEABCDULUMUNYQRIZEBUOYRBUQUUDUUEPUUFEB
      YBAEVHURZUSEBYQYRRYRUTVABYRVBVCVDGBYDCYRVEVFXQUUBYNVIYEXQUUAYNGXQYPYTYNXQ
      YPJZYNYTYSOZYAIUUHUUIEYOYBVGZASZYAUUHUUIEYOYQVGZUUKUUHUUIEYOYQUGZTZOZUULU
      UHYSUUNUUHYSYRYOVJZTUUNYRYOVKUUHUUPUUMYPUUPUUMPXQEBYOYQVLVMVNVOVPEYOYQUUG
      VQZVTEYOAYBVRZVSUUHXTRIZXPUUJXTIZUUKYAIUUSUUHBLWAZUPXQXPYPXOXPWBZWCXOYPUU
      TXPXOYPJUUJYOOZXTEYOWDZYOBCWEWFWGUUJAXTRDWHVFWIYTYFUUIYAYDYSWJWKWLWMWNWCW
      OYBYFYAWPWLWMWNWQWRXQYAHXTHMZASZUGZTZXSXQUUSXPYAUVHPUVAUVBHAXTRDULWSXQXTX
      SUVGWTUVHXSNXQHXTUVFXSUVGXQUVEXTIZUVFXSIZXQUVIYPUVEUVCPZJZGQZUVJXOUVIUVMU
      DXPGUVEBCUEWCXQUVLUVJGXQYPUVKUVJUUHUVJUVKUVCASZXSIUUHUVNUULXSUVNUUKUULUVC
      UUJAUVDXAUURXBUUHUULUUOXSUUQUUHYKUUNXRNZUUOXSIYLUUHYOXRUUMWTUVOUUHEYOYQXR
      UUMUUHYBYOIZJXOXPYBBIYQXRIXOXPYPUVPXCXOXPYPUVPXDUUHYOBYBXQYPWBXEYBABCDWHV
      FUUMUTXFYOXRUUMXGXHUUNXRRWEWSXIXIUVKUVFUVNXSUVEUVCAXJWKWLWMWNXLXMUVGUTXFX
      TXSUVGXGXHXKXN $.

    $( A subspace topology is a topology.  Definition of subspace topology in
       [Munkres] p. 89. ` A ` is normally a subset of the base set of ` J ` .
       (Contributed by FL, 15-Apr-2007.)  (Revised by Mario Carneiro,
       1-May-2015.) $)
    resttop $p |- ( ( J e. Top /\ A e. V ) -> ( J |`t A ) e. Top ) $=
      ( ctop wcel wa crest co ctg cfv tgrest wceq tgtop adantr oveq1d eqtrd ctb
      topbas restbas tgcl 3syl eqeltrrd ) BDEZACEZFZBAGHZIJZUFDUEUGBIJZAGHUFABD
      CKUEUHBAGUCUHBLUDBMNOPUEBQEZUFQEUGDEUCUIUDBRNABSUFTUAUB $.

    $( A subspace topology is a topology on the base set.  (Contributed by
       Mario Carneiro, 13-Aug-2015.) $)
    resttopon $p |- ( ( J e. ( TopOn ` X ) /\ A C_ X ) ->
        ( J |`t A ) e. ( TopOn ` A ) ) $=
      ( vx ctopon cfv wcel wss wa crest co ctop cuni wceq topontop adantr sylib
      cvv cin syl id toponmax ssexg syl2anr resttop syl2anc simpr sseqin2 simpl
      elrestr syl3anc eqeltrrd elssuni cpw cv cmpt crn restval syldan inss2 vex
      wf inex1 elpw mpbir a1i eqid fmptd eqsstrd sspwuni eqssd istopon sylanbrc
      frn ) BCEFZGZACHZIZBAJKZLGZAVSMZNVSAEFGVRBLGZARGZVTVPWBVQCBOPVQVQCBGZWCVP
      VQUACBUBZACBUCUDZABRUEUFVRAWAVRAVSGAWAHVRCASZAVSVRVQWGANVPVQUGACUHQVRVPWC
      WDWGVSGVPVQUIWFVPWDVQWEPCABVORUJUKULAVSUMTVRVSAUNZHWAAHVRVSDBDUOZASZUPZUQ
      ZWHVPVQWCVSWLNWFDABVORURUSVRBWHWKVBWLWHHVRDBWJWHWKWJWHGZVRWIBGIWMWJAHWIAU
      TWJAWIADVAVCVDVEVFWKVGVHBWHWKVNTVIVSAVJQVKAVSVLVM $.

    restuni.1 $e |- X = U. J $.
    $( The underlying set of a subspace topology.  (Contributed by FL,
       5-Jan-2009.)  (Revised by Mario Carneiro, 13-Aug-2015.) $)
    restuni $p |- ( ( J e. Top /\ A C_ X ) -> A = U. ( J |`t A ) ) $=
      ( ctop wcel wss wa crest ctopon cfv cuni wceq toptopon resttopon toponuni
      co sylanb syl ) BEFZACGZHBAIQZAJKFZAUBLMTBCJKFUAUCBCDNABCORAUBPS $.

    $( The topological space built with a subspace topology.  (Contributed by
       FL, 5-Jan-2009.)  (Proof shortened by Mario Carneiro, 1-May-2015.) $)
    stoig $p |- ( ( J e. Top /\ A C_ X ) ->
     { <. ( Base ` ndx ) , A >. ,
         <. ( TopSet ` ndx ) , ( J |`t A ) >. } e. TopSp ) $=
      ( ctop wcel wss wa crest co ctopon cfv cnx cbs cop cts cpr ctps resttopon
      toptopon sylanb eqid eltpsg syl ) BEFZACGZHBAIJZAKLFZMNLAOMPLUGOQZRFUEBCK
      LFUFUHBCDTABCSUAAUGUIUIUBUCUD $.
  $}

  ${
    $d w x y z A $.  $d x y z B $.  $d w x y z J $.
    $( Composition of subspaces.  (Contributed by Mario Carneiro, 15-Dec-2013.)
       (Revised by Mario Carneiro, 1-May-2015.) $)
    restco $p |- ( ( J e. V /\ A e. W /\ B e. X ) ->
                     ( ( J |`t A ) |`t B ) = ( J |`t ( A i^i B ) ) ) $=
      ( vx vy vz vw wcel cv cin cmpt crn crest co wceq wrex cvv w3a inex1 ineq1
      cab inass syl6eq abrexco eqid rnmpt mpteq1 3eqtr4i restval 3adant3 oveq1d
      ax-mp ovex syl6eqelr simp3 syl2anc eqtrd simp1 inex1g 3ad2ant2 3eqtr4a
      vex ) CDKZAEKZBFKZUAZGHCHLZAMZNZOZGLZBMZNZOZHCVJABMZMZNZOZCAPQZBPQZCVRPQZ
      ILZVORGJLVKRHCSJUDZSIUDWEVSRHCSIUDVQWAIGJHCVKVOVSVJAHVEUBVNVKRVOVKBMVSVNV
      KBUCVJABUEUFUGGIWFVOVPVMWFRVPGWFVONRHJCVKVLVLUHUIGVMWFVOUJUOUIHICVSVTVTUH
      UIUKVIWCVMBPQZVQVIWBVMBPVFVGWBVMRVHHACDEULUMZUNVIVMTKVHWGVQRVIVMWBTWHCAPU
      PUQVFVGVHURGBVMTFULUSUTVIVFVRTKZWDWARVFVGVHVAVGVFWIVHABEVBVCHVRCDTULUSVD
      $.
  $}

  $( Equivalence of being a subspace of a subspace and being a subspace of the
     original.  (Contributed by Jeff Hankins, 11-Jul-2009.)  (Proof shortened
     by Mario Carneiro, 1-May-2015.) $)
  restabs $p |- ( ( J e. V /\ S C_ T /\ T e. W ) ->
                  ( ( J |`t T ) |`t S ) = ( J |`t S ) ) $=
    ( wcel wss w3a crest co cin cvv wceq simp1 simp3 ssexg 3adant1 restco simp2
    syl3anc sseqin2 sylib oveq2d eqtrd ) CDFZABGZBEFZHZCBIJAIJZCBAKZIJZCAIJUHUE
    UGALFZUIUKMUEUFUGNUEUFUGOUFUGULUEABEPQBACDELRTUHUJACIUHUFUJAMUEUFUGSABUAUBU
    CUD $.

  ${
    restin.1 $e |- X = U. J $.
    $( When the subspace region is not a subset of the base of the topology,
       the resulting set is the same as the subspace restricted to the base.
       (Contributed by Mario Carneiro, 15-Dec-2013.) $)
    restin $p |- ( ( J e. V /\ A e. W ) ->
      ( J |`t A ) = ( J |`t ( A i^i X ) ) ) $=
      ( wcel wa crest co cin cvv wceq cuni uniexg syl5eqel adantr restco 3com23
      mpd3an3 restid oveq1d incom oveq2i a1i 3eqtr3d ) BCGZADGZHZBEIJZAIJZBEAKZ
      IJZBAIJBAEKZIJZUGUHELGZUKUMMZUGUPUHUGEBNLFBCOPQUGUPUHUQEABCLDRSTUIUJBAIUG
      UJBMUHBCEFUAQUBUMUOMUIULUNBIEAUCUDUEUF $.

    $( The underlying set of a subspace topology.  (Contributed by Mario
       Carneiro, 21-Mar-2015.) $)
    restuni2 $p |- ( ( J e. Top /\ A e. V ) ->
                   ( A i^i X ) = U. ( J |`t A ) ) $=
      ( ctop wcel wa cin crest cuni wss wceq simpl inss2 restuni sylancl restin
      co unieqd eqtr4d ) BFGZACGZHZADIZBUEJSZKZBAJSZKUDUBUEDLUEUGMUBUCNADOUEBDE
      PQUDUHUFABFCDERTUA $.
  $}

  $( The underlying set of a subspace topology.  (Contributed by Mario
     Carneiro, 13-Aug-2015.) $)
  resttopon2 $p |- ( ( J e. ( TopOn ` X ) /\ A e. V ) ->
                 ( J |`t A ) e. ( TopOn ` ( A i^i X ) ) ) $=
    ( ctopon cfv wcel wa crest co ctop cin cuni topontop resttop sylan toponuni
    wceq ineq2d adantr eqid restuni2 eqtrd istopon sylanbrc ) BDEFGZACGZHZBAIJZ
    KGZADLZUIMZRUIUKEFGUFBKGZUGUJDBNZABCOPUHUKABMZLZULUFUKUPRUGUFDUOADBQSTUFUMU
    GUPULRUNABCUOUOUAUBPUCUKUIUDUE $.

  ${
    $d x J $.
    $( The subspace topology induced by the topology ` J ` on the empty set.
       (Contributed by FL, 22-Dec-2008.)  (Revised by Mario Carneiro,
       1-May-2015.) $)
    rest0 $p |- ( J e. Top -> ( J |`t (/) ) = { (/) } ) $=
      ( vx ctop wcel c0 crest co csn cv cin cmpt crn cvv wceq 0ex restval mpan2
      wf wss syl in0 elsn2 mpbir a1i eqid fmptd frn eqsstrd resttop snssd eqssd
      wa 0opn ) ACDZAEFGZEHZUNUOBABIZEJZKZLZUPUNEMDZUOUTNOBEACMPQUNAUPUSRUTUPSU
      NBAURUPUSURUPDZUNUQADULVBURENUQUAUREOUBUCUDUSUEUFAUPUSUGTUHUNEUOUNUOCDZEU
      ODUNVAVCOEAMUIQUOUMTUJUK $.
  $}

  ${
    $d A x y $.  $d V x $.
    $( The only subspace topology induced by the topology ` { (/) } ` .
       (Contributed by FL, 5-Jan-2009.)  (Revised by Mario Carneiro,
       15-Dec-2013.) $)
    restsn $p |- ( A e. V -> ( { (/) } |`t A ) = { (/) } ) $=
      ( vx vy wcel c0 csn crest co cv cin wceq wrex ctop sn0top elrest mpan 0ex
      wb ineq1 0in syl6eq eqeq2d rexsn velsn bitr4i syl6bb eqrdv ) ABEZCFGZAHIZ
      UJUICJZUKEZULDJZAKZLZDUJMZULUJEZUJNEUIUMUQSODULAUJNBPQUQULFLZURUPUSDFRUNF
      LZUOFULUTUOFAKFUNFATAUAUBUCUDCFUEUFUGUH $.
  $}

  ${
    $( The subspace topology induced by a singleton.  (Contributed by FL,
       5-Jan-2009.)  (Revised by Mario Carneiro, 16-Sep-2015.) $)
    restsn2 $p |- ( ( J e. ( TopOn ` X ) /\ A e. X ) ->
      ( J |`t { A } ) = ~P { A } ) $=
      ( ctopon cfv wcel wa csn crest co cpw wceq wss snssi resttopon sylan2 syl
      topsn ) BCDEFZACFZGBAHZIJZUADEFZUBUAKLTSUACMUCACNUABCOPAUBRQ $.
  $}

  ${
    $d o x A $.  $d o x J $.  $d o x S $.  $d o x X $.
    restcld.1 $e |- X = U. J $.
    $( A closed set of a subspace topology is a closed set of the original
       topology intersected with the subset.  (Contributed by FL, 11-Jul-2009.)
       (Proof shortened by Mario Carneiro, 15-Dec-2013.) $)
    restcld $p |- ( ( J e. Top /\ S C_ X ) ->
                   ( A e. ( Clsd ` ( J |`t S ) ) <->
                     E. x e. ( Clsd ` J ) A = ( x i^i S ) ) ) $=
      ( vo ctop wcel wss wa ccld cdif cin wceq cvv adantr cun c0 adantl co cuni
      crest cfv cv wrex wb id topopn ssexg syl2anr resttop syldan iscld restuni
      eqid syl sseq2d difeq1d eleq1d anbi12d elrest anbi2d opncld adantlr incom
      df-ss biimpi syl5eq ad4antlr difeq2 difindi difid uneq2i un0 3eqtri dfss4
      syl6eq ad3antlr 3eqtr2rd difeq1i indif2 3eqtr2i ineq1 eqeq2d ex rexlimdva
      rspcev syl2anc expimpd sylbid difin2 simpll elrestr syl3anc eqeltrd inss2
      cldopn jctil sseq1 syl5ibrcom impbid 3bitr2d ) DHIZCEJZKZBDCUCUAZLUDIZBXG
      UBZJZXIBMZXGIZKZBCJZCBMZXGIZKZBAUEZCNZOZADLUDZUFZXFXGHIZXHXMUGXDXECPIZYCX
      EXEEDIYDXDXEUHDEFUICEDUJUKZCDPULUMBXGXIXIUPUNUQXFXNXJXPXLXFCXIBCDEFUOZURX
      FXOXKXGXFCXIBYFUSUTVAXFXQYBXFXQXNXOGUEZCNZOZGDUFZKYBXFXPYJXNXDXEYDXPYJUGY
      EGXOCDHPVBUMVCXFXNYJYBXFXNKZYIYBGDYKYGDIZKZYIYBYMYIKZEYGMZYAIZBYOCNZOZYBY
      MYPYIXFYLYPXNXDYLYPXEYGDEFVDVEVEQYNBECNZYGMZYQYNYTCYGMZCXOMZBYNYSCYGXEYSC
      OXDXNYLYIXEYSCENZCECVFZXEUUCCOCEVGVHVIVJUSYIUUBUUAOYMYIUUBCYHMZUUAXOYHCVK
      UUEUUACCMZRUUASRUUACYGCVLUUFSUUACVMZVNUUAVOVPVRTXNUUBBOZXFYLYIXNUUHBCVQVH
      VSVTYTUUCYGMCYONYQYSUUCYGUUDWACEYGWBCYOVFWCVRXTYRAYOYAXRYOOXSYQBXRYOCWDWE
      WHWIWFWGWJWKXFXTXQAYAXFXRYAIZKZXQXTXSCJZCXSMZXGIZKUUJUUMUUKUUJUULEXRMZCNZ
      XGXFUULUUOOUUIXFUULCXRMZUUOUULUUPUUFRUUPSRUUPCXRCVLUUFSUUPUUGVNUUPVOVPXEU
      UPUUOOXDCXREWLTVIQUUJXDYDUUNDIZUUOXGIXDXEUUIWMXFYDUUIYEQUUIUUQXFXRDEFWRTU
      UNCDHPWNWOWPXRCWQWSXTXNUUKXPUUMBXSCWTXTXOUULXGBXSCVKUTVAXAWGXBXC $.
  $}

  ${
    $d J v $.  $d X v $.  $d A v $.  $d B v $.
    restcldi.1 $e |- X = U. J $.
    $( A closed set is closed in the subspace topology.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    restcldi $p |- ( ( A C_ X /\ B e. ( Clsd ` J ) /\ B C_ A ) ->
      B e. ( Clsd ` ( J |`t A ) ) ) $=
      ( vv wss ccld cfv wcel w3a crest co cv cin wceq wrex simp2 dfss syl2anc
      biimpi 3ad2ant3 ineq1 eqeq2d rspcev ctop wb cldrcl 3ad2ant2 simp1 restcld
      mpbird ) ADGZBCHIZJZBAGZKZBCALMHIJZBFNZAOZPZFUNQZUQUOBBAOZPZVBUMUOUPRUPUM
      VDUOUPVDBASUAUBVAVDFBUNUSBPUTVCBUSBAUCUDUETUQCUFJZUMURVBUGUOUMVEUPBCUHUIU
      MUOUPUJFBACDEUKTUL $.
  $}

  ${
    $d v x y A $.  $d v B $.  $d v x y J $.  $d x y K $.  $d v x V $.
    $d v C $.
    $( A set which is closed in the subspace topology induced by a closed set
       is closed in the original topology.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    restcldr $p |- ( ( A e. ( Clsd ` J ) /\ B e. ( Clsd ` ( J |`t A ) ) ) ->
      B e. ( Clsd ` J ) ) $=
      ( vv ccld cfv wcel crest co cv cin wceq wrex ctop cuni wss wb cldrcl eqid
      cldss restcld syl2anc incld ancoms eleq1 syl5ibrcom rexlimdva sylbid imp
      wa ) ACEFZGZBCAHIEFGZBUKGZULUMBDJZAKZLZDUKMZUNULCNGACOZPUMURQACRACUSUSSZT
      DBACUSUTUAUBULUQUNDUKULUOUKGZUJUNUQUPUKGZVAULVBUOACUCUDBUPUKUEUFUGUHUI $.

    $( If ` B ` is an open subset of the subspace base set ` A ` , then any
       subset of ` B ` is open iff it is open in ` A ` .  (Contributed by Mario
       Carneiro, 2-Mar-2015.) $)
    restopnb $p |- ( ( ( J e. Top /\ A e. V ) /\ ( B e. J /\ B C_ A /\
        C C_ B ) ) -> ( C e. J <-> C e. ( J |`t A ) ) ) $=
      ( vv ctop wcel wa wss w3a cv cin wceq wrex crest co df-ss sylib adantrr
      wi simpr3 simpr2 sstrd eqcomd ineq1 eqeq2d rspcev expcom syl inass simprr
      ineq1d simplr3 eqtr3d simplr2 sseqin2 ineq2d 3eqtr3a simplll simprl inopn
      simplr1 syl3anc eqeltrd rexlimdvaa impbid wb elrest adantr bitr4d ) DGHZA
      EHZIZBDHZBAJZCBJZKZIZCDHZCFLZAMZNZFDOZCDAPQHZVSVTWDVSCCAMZNZVTWDUAVSWFCVS
      CAJWFCNVSCBAVNVOVPVQUBVNVOVPVQUCUDCARSUEVTWGWDWCWGFCDWACNWBWFCWACAUFUGUHU
      IUJVSWCVTFDVSWADHZWCIZIZCWABMZDWJWBBMZWAABMZMZCWKWAABUKWJCBMZWLCWJCWBBVSW
      HWCULUMVSWHWOCNZWCVSWHIZVQWPVOVPVQVNWHUNCBRSTUOVSWHWNWKNWCWQWMBWAWQVPWMBN
      VOVPVQVNWHUPBAUQSURTUSWJVLWHVOWKDHVLVMVRWIUTVSWHWCVAVOVPVQVNWIVCWABDVBVDV
      EVFVGVNWEWDVHVRFCADGEVIVJVK $.

    $( If ` K ` is a finer topology than ` J ` , then the subspace topologies
       induced by ` A ` maintain this relationship.  (Contributed by Mario
       Carneiro, 21-Mar-2015.)  (Revised by Mario Carneiro, 1-May-2015.) $)
    ssrest $p |- ( ( K e. V /\ J C_ K ) -> ( J |`t A ) C_ ( K |`t A ) ) $=
      ( vx vy wcel wss wa crest co cv simpr cin wceq wrex wi cvv wb elrest fndm
      ssrexv ad2antlr c0 n0i cxp wfn cdm restfn ax-mp ndmov nsyl2 adantl simpll
      syl simprd syl2anc 3imtr4d mpd ex ssrdv ) CDGZBCHZIZEBAJKZCAJKZVDELZVEGZV
      GVFGZVDVHIZVHVIVDVHMVJVGFLANOZFBPZVKFCPZVHVIVCVLVMQVBVHVKFBCUBUCVJBRGZARG
      ZIZVHVLSVHVPVDVHVEUDOVPVEVGUEBARJJRRUFZUGJUHVQOUIVQJUAUJUKULUMZFVGABRRTUO
      VJVBVOVIVMSVBVCVHUNVJVNVOVRUPFVGACDRTUQURUSUTVA $.
  $}

  $( The if ` A ` is open, then ` B ` is open in ` A ` iff it is an open subset
     of ` A ` .  (Contributed by Mario Carneiro, 2-Mar-2015.) $)
  restopn2 $p |- ( ( J e. Top /\ A e. J ) ->
    ( B e. ( J |`t A ) <-> ( B e. J /\ B C_ A ) ) ) $=
    ( ctop wcel wa crest co wss cuni elssuni wceq restuni sylan2 sseq2d syl5ibr
    eqid pm4.71rd wb simpll simplr ssid simpr restopnb syl23anc pm5.32da bitr4d
    a1i ancom syl6bb ) CDEZACEZFZBCAGHZEZBAIZBCEZFZUQUPFUMUOUPUOFURUMUOUPUOUPUM
    BUNJZIBUNKUMAUSBULUKACJZIAUSLACKACUTUTQMNOPRUMUPUQUOUMUPFZUKULULAAIZUPUQUOS
    UKULUPTUKULUPUAZVCVBVAAUBUHUMUPUCAABCCUDUEUFUGUPUQUIUJ $.

  ${
    $d x A $.  $d x B $.  $d x V $.
    $( A subspace of a discrete topology is discrete.  (Contributed by Mario
       Carneiro, 19-Mar-2015.) $)
    restdis $p |- ( ( A e. V /\ B C_ A ) -> ( ~P A |`t B ) = ~P B ) $=
      ( vx wcel wss wa cpw crest co cv wb distop adantr elpw2g biimpar restopn2
      ctop syl2anc selpw wi expcom adantl syl6ibr pm4.71rd syl5bb bitr4d eqrdv
      sstr ) ACEZBAFZGZDAHZBIJZBHZULDKZUNEZUPUMEZUPBFZGZUPUOEZULUMREZBUMEZUQUTL
      UJVBUKACMNUJVCUKBACOPBUPUMQSVAUSULUTDBTULUSURULUSUPAFZURUKUSVDUAUJUSUKVDU
      PBAUIUBUCDATUDUEUFUGUH $.

    $( The restriction of the set of finite subsets of ` A ` is the set of
       finite subsets of ` B ` .  (Contributed by Mario Carneiro,
       18-Sep-2015.) $)
    restfpw $p |- ( ( A e. V /\ B C_ A ) ->
      ( ( ~P A i^i Fin ) |`t B ) = ( ~P B i^i Fin ) ) $=
      ( vx wcel wss wa cpw cfn cin crest co cvv adantr syl elfpw simprbi adantl
      wceq sylanbrc cv cmpt crn pwexg inex1g ssexg ancoms restval syl2anc inss2
      wf a1i inss1 ssfi sylancl eqid fmptd frn eqsstrd df-ss sylib simplr sstrd
      simplbi elrestr syl3anc eqeltrrd ex ssrdv eqssd ) ACEZBAFZGZAHZIJZBKLZBHI
      JZVMVPDVODUAZBJZUBZUCZVQVMVOMEZBMEZVPWASVMVNMEZWBVKWDVLACUDNVNIMUEOZVLVKW
      CBACUFUGZDBVOMMUHUIVMVOVQVTUKWAVQFVMDVOVSVQVTVMVRVOEZGZVSBFZVSIEZVSVQEWIW
      HVRBUJULWHVRIEZVSVRFWJWGWKVMWGVRAFZWKVRAPZQRVRBUMVRVSUNUOVSBPTVTUPUQVOVQV
      TUROUSVMDVQVPVMVRVQEZVRVPEVMWNGZVSVRVPWOVRBFZVSVRSWNWPVMWNWPWKVRBPZVDRZVR
      BUTVAWOWBWCWGVSVPEVMWBWNWENVMWCWNWFNWOWLWKWGWOVRBAWRVKVLWNVBVCWNWKVMWNWPW
      KWQQRWMTVRBVOMMVEVFVGVHVIVJ $.
  $}

  ${
    $d a b c d e A $.  $d a b c d e B $.  $d a b c d e J $.  $d a b c d e X $.
    neitr.1 $e |- X = U. J $.
    $( The neighborhood of a trace is the trace of the neighborhood.
       (Contributed by Thierry Arnoux, 17-Jan-2018.) $)
    neitr $p |- ( ( J e. Top /\ A C_ X /\ B C_ A ) ->
      ( ( nei ` ( J |`t A ) ) ` B ) = ( ( ( nei ` J ) ` B ) |`t A ) ) $=
      ( vd va vb ve ctop wcel wss cv wa wrex cin wceq syl2anc syl cvv w3a crest
      vc cnei cfv cuni wex nfv nfre1 nfan simpl anim2i cdif simp-5r simp1 simp2
      cun restuni ad5antr sseqtr4d sstrd simplr eltopss ssdifssd unssd 3anassrs
      simpr1l simpr sseqtrd inss1 syl6ss inundif eqsstr3d unss1 syl5eqssr sseq2
      co simpr1r sseq1 anbi12d rspcev syl12anc c0 indir incom eqtr3i uneq2i un0
      disjdif 3eqtri df-ss biimpi syl5req vex difexg ax-mp anbi2d rexbidv ineq1
      unex eqeq2d spcev syl21anc ad3antrrr uniexg syl5eqel ssexd elrest r19.29a
      biimpa sylanl1 simprr r19.29af inss2 mpbiri adantl exlimiv adantr ad4antr
      elrestr syl3anc simprl simp3 ssind ssrin simp-4r jca32 reximdva impr expl
      ex an32s exlimdv imp rexlimivw jca impbida wb eqid isnei resttop cmpt crn
      fvex restval sylancr eleq2d df-rex bitri anbi1d exbidv syl5bb bitrd eqrdv
      elrnmpt 3bitr4d ) CJKZADLZBALZUAZUCBCAUBVQZUDUEUEZBCUDUEZUEZAUBVQZUUTUCMZ
      UVAUFZLZBFMZLZUVIUVFLZNZFUVAOZNZGMZDLZBHMZLZUVQUVOLZNZHCOZNZUVFUVOAPZQZNZ
      GUGZUVFUVBKZUVFUVEKZUUTUVNUWFUUTUVNNZUVLUWFFUVAUUTUVNFUUTFUHUVHUVMFUVHFUH
      UVLFUVAUIUJUJUWIUUTUVHNZUVIUVAKZUVLUWFUVNUVHUUTUVHUVMUKULUWJUWKNZUVLNZUVI
      IMZAPZQZUWFICUWMUWNCKZNZUWPNZUVFUWNAUMZUQZDLZUVRUVQUXALZNZHCOZUVFUXAAPZQZ
      UWFUWSUVFUWTDUWSUVFADUWSUVFUVGAUUTUVHUWKUVLUWQUWPUNUUTAUVGQZUVHUWKUVLUWQU
      WPUUTUUQUURUXHUUQUURUUSUOZUUQUURUUSUPZACDEURRZUSUTZUUTUURUVHUWKUVLUWQUWPU
      XJUSVAUWSUWNDAUWSUUQUWQUWNDLUUTUUQUVHUWKUVLUWQUWPUXIUSUWMUWQUWPVBZUWNCDEV
      CRVDVEUWSUWQBUWNLZUWNUXALZUXEUXMUWSBUWOUWNUWSBUVIUWOUWLUVLUWQUWPUVJUVJUVK
      UWQUWPUWLVGVFUWRUWPVHZVIUWNAVJVKUWSUWNUWOUWTUQZUXAUWNAVLUWSUWOUVFLUXQUXAL
      UWSUWOUVIUVFUXPUWLUVLUWQUWPUVKUVJUVKUWQUWPUWLVRVFVMUWOUVFUWTVNSVOUXDUXNUX
      ONHUWNCUVQUWNQUVRUXNUXCUXOUVQUWNBVPUVQUWNUXAVSVTWAWBUWSUVFALZUXGUXLUXRUXF
      UVFAPZUVFUXFUXSUWTAPZUQUXSWCUQUXSUVFUWTAWDUXTWCUXSAUWTPUXTWCAUWTWEAUWNWIW
      FWGUXSWHWJUXRUXSUVFQUVFAWKWLWMSUWEUXBUXENZUXGNGUXAUVFUWTUCWNZUWNTKUWTTKIW
      NUWNATWOWPWTUVOUXAQZUWBUYAUWDUXGUYCUVPUXBUWAUXEUVOUXADVSUYCUVTUXDHCUYCUVS
      UXCUVRUVOUXAUVQVPWQWRVTUYCUWCUXFUVFUVOUXAAWSXAVTXBXCUWMUUQATKZUWKUWPICOZU
      UTUUQUVHUWKUVLUXIXDUUTUYDUVHUWKUVLUUTADTUUTDCUFZTEUUTUUQUYFTKUXICJXESXFUX
      JXGZXDUWJUWKUVLVBUUQUYDNUWKUYEIUVIACJTXHXJXCXIXKUUTUVHUVMXLXMUUTUWFNZUVHU
      VMUYHUVFAUVGUWFUXRUUTUWEUXRGUWDUXRUWBUWDUXRUWCALUVOAXNUVFUWCAVSXOXPXQXPUU
      TUXHUWFUXKXRVIUYHUVQAPZUVAKZBUYILZUYIUVFLZNZNZHCOZUVMUUTUWFUYOUUTUWEUYOGU
      UTUWBUWDUYOUUTUWDUWBUYOUUTUWDNZUVPUWAUYOUYPUVPNZUVTUYNHCUYQUVQCKZNZUVTUYN
      UYSUVTNZUYJUYKUYLUYTUUQUYDUYRUYJUUTUUQUWDUVPUYRUVTUXIXSUUTUYDUWDUVPUYRUVT
      UYGXSUYQUYRUVTVBUVQACJTXTYAUYTBUVQAUYSUVRUVSYBUUTUUSUWDUVPUYRUVTUUQUURUUS
      YCZXSYDUYTUYIUWCUVFUYTUVSUYIUWCLUYSUVRUVSXLUVQUVOAYESUUTUWDUVPUYRUVTYFUTY
      GYKYHYIYLYJYMYNUYNUVMHCUVLUYMFUYIUVAUVIUYIQUVJUYKUVKUYLUVIUYIBVPUVIUYIUVF
      VSVTWAYOSYPYQUUTUVAJKZBUVGLUWGUVNYRUUTUUQUYDVUBUXIUYGACTUUARUUTBAUVGVUAUX
      KVIBFUVAUVFUVGUVGYSYTRUUTUWHUVFGUVDUWCUUBZUUCZKZUWFUUTUVEVUDUVFUUTUVDTKUY
      DUVEVUDQBUVCUUDUYGGAUVDTTUUEUUFUUGUUTUUQBDLZVUEUWFYRUXIUUTBADVUAUXJVAVUEU
      VOUVDKZUWDNZGUGZUUQVUFNZUWFVUEUWDGUVDOZVUIUVFTKVUEVUKYRUYBGUVDUWCUVFVUCTV
      UCYSUUOWPUWDGUVDUUHUUIVUJVUHUWEGVUJVUGUWBUWDBHCUVODEYTUUJUUKUULRUUMUUPUUN
      $.
  $}

  ${
    $d o x J $.  $d o x K $.  $d o x S $.  $d o x X $.  $d o x Y $.
    restcls.1 $e |- X = U. J $.
    restcls.2 $e |- K = ( J |`t Y ) $.
    $( A closure in a subspace topology.  (Contributed by Jeff Hankins,
       22-Jan-2010.)  (Revised by Mario Carneiro, 15-Dec-2013.) $)
    restcls $p |- ( ( J e. Top /\ Y C_ X /\ S C_ Y ) ->
      ( ( cls ` K ) ` S ) = ( ( ( cls ` J ) ` S ) i^i Y ) ) $=
      ( vx ctop wcel wss ccl cfv cin ccld wceq syl2anc eqid 3adant3 wa w3a wrex
      simp1 sstr ancoms 3adant1 clscld ineq1 eqeq2d rspcev sylancl crest fveq2i
      cv co eleq2i wb restcld syl5bb mpbird sscls simp3 ssind clsss2 fveq1i cvv
      cuni id topopn ssexg syl2anr resttop syldan restuni syl5eqel mpbid unieqi
      eqcomi adantr inss1 sseq1 mpbiri ad2antll sstrd wi adantl ssrin syl sseq2
      sseqtrd syl5ibrcom expr com23 impr mpd rexlimddv eqssd ) BIJZEDKZAEKZUAZA
      CLMZMZABLMMZENZXAXECOMZJZAXEKXCXEKXAXGXEHUNZENZPZHBOMZUBZXAXDXKJZXEXEPZXL
      XAWRADKZXMWRWSWTUCZWSWTXOWRWTWSXOAEDUDUEUFZABDFUGQXERXJXNHXDXKXHXDPXIXEXE
      XHXDEUHUIUJUKXGXEBEULUOZOMZJZXAXLXFXSXECXROGUMUPWRWSXTXLUQWTHXEEBDFURSUSU
      TXAAXDEXAWRXOAXDKXPXQABDFVAQWRWSWTVBZVCXEACCVGZYBRVDQXAXCXIPZXEXCKZHXKXAX
      CXSJZYCHXKUBZXAXCAXRLMZMZXSAXBYGCXRLGUMVEXAXRIJZAXRVGZKZYHXSJWRWSYIWTWRWS
      EVFJZYIWSWSDBJYLWRWSVHBDFVIEDBVJVKEBVFVLVMZSXAAEYJYAWRWSEYJPWTEBDFVNSWJZA
      XRYJYJRUGQVOWRWSYEYFUQWTHXCEBDFURSVPXAXHXKJZYCTZTZAXHKZYDYQAXCXHXAAXCKZYP
      XACIJZYKYSWRWSYTWTWRWSTCXRIGYMVOSYNACYJYBYJCXRGVQVRVAQVSYCXCXHKZXAYOYCUUA
      XIXHKXHEVTXCXIXHWAWBWCWDXAYOYCYRYDWEXAYOTYRYCYDXAYOYRYCYDWEXAYOYRTZTZYDYC
      XEXIKZUUCXDXHKZUUDUUBUUEXAXHABDFVDWFXDXHEWGWHXCXIXEWIWKWLWMWNWOWPWQ $.

    $( An interior in a subspace topology.  Willard in _General Topology_ says
       that there is no analogue of ~ restcls for interiors.  In some sense,
       that is true.  (Contributed by Jeff Hankins, 23-Jan-2010.)  (Revised by
       Mario Carneiro, 15-Dec-2013.) $)
    restntr $p |- ( ( J e. Top /\ Y C_ X /\ S C_ Y ) ->
      ( ( int ` K ) ` S ) = ( ( ( int ` J ) ` ( S u. ( X \ Y ) ) ) i^i Y ) ) $=
      ( vo vx ctop wcel wss cnt cfv cvv wa syl2anc syl5eqel wi syl w3a cdif cun
      cin cv wceq crest co wrex fveq2i fveq1i topopn ssexg ancoms sylan resttop
      cuni syldan 3adant3 restuni sseq2d biimp3a ntropn wb uniexg sylan2 elrest
      eqid simp1 mpbid wo eltopss sseld adantrr 3ad2antl1 wn simplbi2 orrd syl6
      eldif elin eleq2 elun1 syl6bir ad2antll syl5bir expdimp elun2 a1i jaod ex
      mpdd ssrdv adantr unieqi eqcomi ntrss2 unss1 sstrd simpl1 sstr difss unss
      3adant1 sylanblc simprl simprr ssntr syl22anc ssrin sseq1 syl5ibrcom expr
      com23 impr mpd rexlimddv elrestr syl3anc syl6eleqr elun orcom df-or bitri
      anbi1i elndif pm2.27 impcom syl5bi eqssd ) BJKZEDLZAELZUAZACMNZNZADEUBZUC
      ZBMNNZEUDZYNYPHUEZEUDZUFZYPYTLZHBYNYPBEUGUHZKZUUCHBUIZYNYPAUUEMNZNZUUEAYO
      UUHCUUEMGUJUKYNUUEJKZAUUEUQZLZUUIUUEKYKYLUUJYMYKYLEOKZUUJYKDBKZYLUUMBDFUL
      YLUUNUUMEDBUMUNUOZEBOUPURUSZYKYLYMUULYKYLPEUUKAEBDFUTVAVBZAUUEUUKUUKVHVCQ
      RYNYKUUMUUFUUGVDYKYLYMVIZYKYLUUMYMYLYKUUMYKYLDOKUUMYKDBUQOFBJVEREDOUMVFUN
      USHYPEBJOVGQVJYNUUABKZUUCPZPZUUAYRLZUUDUVAUUAYPYQUCZYRUVAIUUAUVCUVAIUEZUU
      AKZUVDEKZUVDYQKZVKZUVDUVCKZUVAUVEUVDDKZUVHYKYLUUTUVEUVJSZYMYKUUSUVKUUCYKU
      USPUUADUVDUUABDFVLVMVNVOUVJUVFUVGUVGUVJUVFVPUVDDEVTVQVRVSUVAUVEUVHUVISUVA
      UVEPZUVFUVIUVGUVAUVEUVFUVIUVEUVFPUVDUUBKZUVAUVIUVDUUAEWAUUCUVMUVISYNUUSUU
      CUVMUVDYPKUVIYPUUBUVDWBUVDYPYQWCWDWEWFWGUVGUVISUVLUVDYQYPWHWIWJWKWLWMUVAY
      PALZUVCYRLUVACJKZUULUVNUVACUUEJGYNUUJUUTUUPWNRYNUULUUTUUQWNACUUKCUQUUKCUU
      EGWOWPZWQQYPAYQWRTWSYNUUSUUCUVBUUDSYNUUSPUVBUUCUUDYNUUSUVBUUCUUDSYNUUSUVB
      PZPZUUDUUCUUBYTLZUVRUUAYSLZUVSUVRYKYRDLZUUSUVBUVTYKYLYMUVQWTUVRADLZYQDLZU
      WAYNUWBUVQYLYMUWBYKYMYLUWBAEDXAUNXDZWNDEXBZAYQDXCZXEYNUUSUVBXFYNUUSUVBXGY
      RBUUADFXHXIUUAYSEXJTYPUUBYTXKXLXMXNXOXPXQYNUVOUULYTCKYTALYTYPLYNCUUEJGUUP
      RUUQYNYTUUECYNYKUUMYSBKZYTUUEKUURYKYLUUMYMUUOUSYNYKUWAUWGUURYNUWBUWCUWAUW
      DUWEUWFXEZYRBDFVCQYSEBJOXRXSGXTYNYTYREUDZAYNYSYRLZYTUWILYNYKUWAUWJUURUWHY
      RBDFWQQYSYREXJTYNIUWIAUVDUWIKZUVGVPZUVDAKZSZUVFPZYNUWMUWKUVDYRKZUVFPUWOUV
      DYREWAUWPUWNUVFUWPUWMUVGVKZUWNUVDAYQYAUWQUVGUWMVKUWNUWMUVGYBUVGUWMYCYDYDY
      EYDUWOUWMSYNUVFUWNUWMUVFUWLUWNUWMSUVDEDYFUWLUWMYGTYHWIYIWMWSACYTUUKUVPXHX
      IYJ $.

    $( The limit points of a subset restrict naturally in a subspace.
       (Contributed by Mario Carneiro, 25-Dec-2016.) $)
    restlp $p |- ( ( J e. Top /\ Y C_ X /\ S C_ Y ) ->
      ( ( limPt ` K ) ` S ) = ( ( ( limPt ` J ) ` S ) i^i Y ) ) $=
      ( vx ctop wcel wss clp cfv cin ccl wa wceq elin wb syl2anc w3a cdif simp3
      cv csn ssdifssd restcls syld3an3 eleq2d syl6bb cuni ctopon crest co simp1
      toptopon sylib resttopon syl5eqel topontop syl toponuni sseqtrd eqid islp
      simp2 sstrd anbi1d syl5bb 3bitr4d eqrdv ) BIJZEDKZAEKZUAZHACLMMZABLMMZENZ
      VOHUDZAVSUEZUBZCOMMZJZVSWABOMMZJZVSEJZPZVSVPJZVSVRJZVOWCVSWDENZJWGVOWBWJV
      SVLVMVNWAEKWBWJQVOAEVTVLVMVNUCZUFWABCDEFGUGUHUIVSWDERUJVOCIJZACUKZKWHWCSV
      OCEULMZJZWLVOCBEUMUNZWNGVOBDULMJZVMWPWNJVOVLWQVLVMVNUOZBDFUPUQVLVMVNVFZEB
      DURTUSZECUTVAVOAEWMWKVOWOEWMQWTECVBVAVCVSACWMWMVDVETWIVSVQJZWFPVOWGVSVQER
      VOXAWEWFVOVLADKXAWESWRVOAEDWKWSVGVSABDFVETVHVIVJVK $.

    $( Perfection of a subspace.  Note that the term "perfect set" is reserved
       for _closed_ sets which are perfect in the subspace topology.
       (Contributed by Mario Carneiro, 25-Dec-2016.) $)
    restperf $p |- ( ( J e. Top /\ Y C_ X ) ->
      ( K e. Perf <-> Y C_ ( ( limPt ` J ) ` Y ) ) ) $=
      ( ctop wcel wss wa cperf cuni clp cfv wceq wb ctopon crest co syl sseqin2
      toptopon resttopon sylanb syl5eqel topontop eqid isperf cin restlp mp3an3
      baib ssid toponuni fveq2d eqtr3d eqeq12d syl5bb bitr4d ) AGHZDCIZJZBKHZBL
      ZBMNZNZVDOZDDAMNNZIZVBBGHZVCVGPVBBDQNZHZVJVBBADRSZVKFUTACQNHVAVMVKHACEUBD
      ACUCUDUEZDBUFTVCVJVGBVDVDUGUHULTVIVHDUIZDOVBVGDVHUAVBVOVFDVDVBDVENZVOVFUT
      VADDIVPVOODUMDABCDEFUJUKVBDVDVEVBVLDVDOVNDBUNTZUOUPVQUQURUS $.

    $( An open subset of a perfect space is perfect.  (Contributed by Mario
       Carneiro, 25-Dec-2016.) $)
    perfopn $p |- ( ( J e. Perf /\ Y e. J ) -> K e. Perf ) $=
      ( vx cperf wcel wa ctop cv wn cuni wral ctopon cfv wss adantr syl perftop
      csn crest co toptopon elssuni adantl syl6sseqr resttopon syl2anc syl5eqel
      sylib topontop sselda perfi adantlr syldan eleq2i wb restopn2 sylan simpl
      syl6bi syl5bi mtod ralrimiva wceq toponuni raleqdv mpbid isperf3 sylanbrc
      eqid ) AHIZDAIZJZBKIZGLZUBZBIZMZGBNZOZBHIVPBDPQZIZVQVPBADUCUDZWDFVPACPQIZ
      DCRWFWDIVPAKIZWGVNWHVOAUAZSACEUEULVPDANZCVODWJRVNDAUFUGEUHZDACUIUJUKZDBUM
      TVPWAGDOWCVPWAGDVPVRDIZJZVTVSAIZVPWMVRCIZWOMZVPDCVRWKUNVNWPWQVOVRACEUOUPU
      QVTVSWFIZWNWOBWFVSFURWNWRWOVSDRZJZWOVPWRWTUSZWMVNWHVOXAWIDVSAUTVASWOWSVBV
      CVDVEVFVPWAGDWBVPWEDWBVGWLDBVHTVIVJGBWBWBVMVKVL $.
  $}

  ${
    resstopn.1 $e |- H = ( K |`s A ) $.
    resstopn.2 $e |- J = ( TopOpen ` K ) $.
    $( The topology of a restricted structure.  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    resstopn $p |- ( J |`t A ) = ( TopOpen ` H ) $=
      ( cvv wcel crest co ctopn cfv wceq cts cbs cin fvex eqid syl5eq c0 restco
      mp3an12 resstset incom ressbas oveq12d eqtrd topnval eqtr4i 3eqtr3g wn wa
      oveq1i simpr con3i cxp wfn restfn fndm ax-mp ndmov cress reldmress ovprc2
      cdm syl fveq2d c9 df-tset str0 syl6eqr oveq1d 0rest eqtr4d pm2.61i ) AGHZ
      CAIJZBKLZMVPDNLZDOLZIJZAIJZBNLZBOLZIJZVQVRVPWBVSVTAPZIJZWEVSGHVTGHVPWBWGM
      DNQDOQVTAVSGGGUAUBVPVSWCWFWDIADBVSGEVSRZUCVPWFAVTPWDVTAUDAVTBGDEVTRZUESUF
      UGWACAIWADKLCVTVSDWIWHUHFUIUMWDWCBWDRWCRUHZUJVPUKZVQTVRWKCGHZVPULZUKVQTMW
      MVPWLVPUNUOCAGIIGGUPZUQIVEWNMURWNIUSUTVAVFWKWETWDIJVRTWKWCTWDIWKWCTNLTWKB
      TNWKBDAVBJTEDAVBVCVDSVGNVHVIVJVKVLWJWDVMUJVNVO $.
  $}

  $( A restricted topological space is a topological space.  Note that this
     theorem would not be true if ` TopSp ` was defined directly in terms of
     the ` TopSet ` slot instead of the ` TopOpen ` derived function.
     (Contributed by Mario Carneiro, 13-Aug-2015.) $)
  resstps $p |- ( ( K e. TopSp /\ A e. V ) -> ( K |`s A ) e. TopSp ) $=
    ( ctps wcel wa ctopn cfv crest cress cbs ctopon cin istps resttopon2 sylanb
    co eqid wceq ressbas adantl fveq2d eleqtrd resstopn sylibr ) BDEZACEZFZBGHZ
    AIQZBAJQZKHZLHZEUKDEUHUJABKHZMZLHZUMUFUIUNLHEUGUJUPEUNUIBUNRZUIRZNAUICUNOPU
    HUOULLUGUOULSUFAUNUKCBUKRZUQTUAUBUCULUJUKULRAUKUIBUSURUDNUE $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Order topology
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d a b m n r w z A $.  $d a b m n r w x y z R $.  $d a b m n r w x y z X $.
    $d a b m n r z B $.  $d m n z C $.  $d x V $.
    ordtval.1 $e |- X = dom R $.
    ordtval.2 $e |- A = ran ( x e. X |-> { y e. X | -. y R x } ) $.
    $( Lemma for ~ ordtbas .  In a total order, unbounded-above intervals are
       closed under intersection.  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    ordtbaslem $p |- ( R e. TosetRel -> ( fi ` A ) = A ) $=
      ( vz vw vb va wcel cv wral wceq wbr wn wa cvv syl ctsr cin cfi cfv crn wo
      crab cmpt cif wb 3anrot tsrlemax sylan2br 3exp2 imp42 notbid ioran syl6bb
      w3a rabbidva ifcl ancoms adantl dmexg syl5eqel adantr rabexg eqeltrd eqid
      cdm breq2 rabbidv elrnmpt1s syl6eleqr syl2anc eqeltrrd ralrimivva cbvmptv
      ralrimivw ineq1 inrab syl6eq eleq1d ralrnmpt mpbird ineq2 raleqi raleqbii
      ralbidv sylibr cpw pwexg wf wss ssrab2 elpw2g mpbiri fmptd syl5eqss ssexd
      frn inficl mpbid ) DUALZHMZIMZUBZCLZICNZHCNZCUCUDCOZXDXHIAEBMZAMZDPZQZBEU
      GZUHZUEZNZHXRNZXJXDXTXEXLJMZDPZQZBEUGZUBZCLZJENZHXRNZXDYHXLKMZDPZQZYCRZBE
      UGZCLZJENZKENZXDYNKJEEXDYIELZYAELZRZRZXLYIYADPZYAYIUIZDPZQZBEUGZYMCYTUUDY
      LBEYTXLELZRZUUDYJYBUFZQYLUUGUUCUUHXDYQYRUUFUUCUUHUJZXDYQYRUUFUUIYQYRUUFUS
      XDUUFYQYRUSUUIUUFYQYRUKXLYIYADEFULUMUNUOUPYJYBUQURUTZYTUUBELZUUESLZUUECLY
      SUUKXDYRYQUUKUUAYAYIEVAVBVCYTUUEYMSUUJYTESLZYMSLXDUUMYSXDEDVJSFDUAVDVEZVF
      YLBESVGTVHUUKUULRUUEXRCAEXPUUEUUBXQSXQVIZXMUUBOZXOUUDBEUUPXNUUCXMUUBXLDVK
      UPVLVMGVNVOVPVQXDYKBEUGZSLZKENYHYPUJXDUURKEXDUUMUURUUNYKBESVGTVSYGYOKHEUU
      QXQSAKEXPUUQXMYIOZXOYKBEUUSXNYJXMYIXLDVKUPVLVRXEUUQOZYFYNJEUUTYEYMCUUTYEU
      UQYDUBYMXEUUQYDVTYKYCBEWAWBWCWIWDTWEXDXSYGHXRXDYDSLZJENXSYGUJXDUVAJEXDUUM
      UVAUUNYCBESVGTVSXHYFJIEYDXQSAJEXPYDXMYAOZXOYCBEUVBXNYBXMYAXLDVKUPVLVRXFYD
      OXGYECXFYDXEWFWCWDTWIWEXIXSHCXRGXHICXRGWGWHWJXDCSLXJXKUJXDCEWKZSXDUUMUVCS
      LUUNESWLTXDCXRUVCGXDEUVCXQWMXRUVCWNXDAEXPUVCXQXDXMELZRZXPUVCLZXPEWNZXOBEW
      OUVEUUMUVFUVGUJXDUUMUVDUUNVFXPESWPTWQUUOWREUVCXQXATWSWTHICSXBTXC $.

    ordtval.3 $e |- B = ran ( x e. X |-> { y e. X | -. x R y } ) $.
    $( Value of the order topology.  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    ordtval $p |- ( R e. V -> ( ordTop ` R ) =
      ( topGen ` ( fi ` ( { X } u. ( A u. B ) ) ) ) ) $=
      ( vr cfv cun cfi ctg wbr wn crab cmpt crn wcel cvv cordt csn wceq elex cv
      cdm dmeq syl6eqr sneqd rnun breq notbid rabeqbidv mpteq12dv rneqd uneq12d
      syl5eq fveq2d df-ordt fvex fvmpt syl ) EFUAEUBUAEUCLGUDZCDMZMZNLZOLZUEEFU
      FKEKUGZUHZUDZAVKBUGZAUGZVJPZQZBVKRZSZAVKVNVMVJPZQZBVKRZSZMTZMZNLZOLVIUBUC
      VJEUEZWEVHOWFWDVGNWFVLVEWCVFWFVKGWFVKEUHGVJEUIHUJZUKWFWCVRTZWBTZMVFVRWBUL
      WFWHCWIDWFWHAGVMVNEPZQZBGRZSZTCWFVRWMWFAVKVQGWLWGWFVPWKBVKGWGWFVOWJVMVNVJ
      EUMUNUOUPUQIUJWFWIAGVNVMEPZQZBGRZSZTDWFWBWQWFAVKWAGWPWGWFVTWOBVKGWGWFVSWN
      VNVMVJEUMUNUOUPUQJUJURUSURUTUTABKVAVHOVBVCVD $.

    $( Value of the order topology.  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    ordtuni $p |- ( R e. V -> X = U. ( { X } u. ( A u. B ) ) ) $=
      ( wcel cuni cun cvv wceq syl wss cv wbr wn csn cdm syl5eqel unisng uneq1d
      dmexg cpw crab cmpt crn wf wa ssrab2 wb adantr elpw2g eqid fmptd syl5eqss
      mpbiri frn unssd sspwuni sylib ssequn2 eqtr2d uniun syl6eqr ) EFKZGGUAZLZ
      CDMZLZMZVJVLMLVIVNGVMMZGVIVKGVMVIGNKZVKGOVIGEUBNHEFUFUCZGNUDPUEVIVMGQZVOG
      OVIVLGUGZQVRVICDVSVICAGBRZARZESTZBGUHZUIZUJZVSIVIGVSWDUKWEVSQVIAGWCVSWDVI
      WAGKZULZWCVSKZWCGQZWBBGUMWGVPWHWIUNVIVPWFVQUOZWCGNUPPUTWDUQURGVSWDVAPUSVI
      DAGWAVTESTZBGUHZUIZUJZVSJVIGVSWMUKWNVSQVIAGWLVSWMWGWLVSKZWLGQZWKBGUMWGVPW
      OWPUNWJWLGNUPPUTWMUQURGVSWMVAPUSVBVLGVCVDVMGVEVDVFVJVLVGVH $.

    ordtval.4 $e |- C = ran ( a e. X , b e. X |->
      { y e. X | ( -. y R a /\ -. b R y ) } ) $.
    $( Lemma for ~ ordtbas .  (Contributed by Mario Carneiro, 3-Sep-2015.) $)
    ordtbas2 $p |- ( R e. TosetRel -> ( fi ` ( A u. B ) ) =
      ( ( A u. B ) u. C ) ) $=
      ( wcel cv wceq wrex cvv wb wa vz vm vn ctsr cun cfi cfv cin w3o wss ssun1
      csn ssun2 ordtuni cdm dmexg syl5eqel eqeltrrd uniexb sylibr ssexg sylancr
      cuni elfiun syl2anc ordtbaslem syl6eqss syl6ss sseld crn ccnv wbr wn crab
      cmpt cnvtsr df-rn eqid syl cps tsrps psrn vex bicomi notbii a1i rabeqbidv
      brcnv mpteq12dv rneqd syl5eq fveq2d 3eqtr4d cmpt2 syl6eq eleq2d weq breq2
      notbid rabbidv cbvmptv elrnmpt syl6bb anbi12d reeanv ineq12 reximi sylbir
      ax-mp breq1 inrab syl6bi imp inex1 elrnmpt2g sseldi syl5ibrcom rexlimdvva
      syl6eleqr eleq1 3jaod sylbid ssrdv ssfii cxp wf wral adantr simprl eqeq2d
      eqidd rspcev rabexg 3syl mpbird sseldd simprr fiin syl5eqelr ralrimivva
      fmpt2 sylib frn syl5eqss unssd eqssd ) FUDNZCDUEZUFUGZUUHEUEZUUGUAUUIUUJU
      UGUAOZUUINZUUKCUFUGZNZUUKDUFUGZNZUUKUBOZUCOZUHZPZUCUUOQUBUUMQZUIZUUKUUJNZ
      UUGCRNZDRNZUULUVBSUUGCUUHUJUUHRNZUVDCDUKZUUGUUHGULZUUHUEZUJUVIRNZUVFUUHUV
      HUMUUGUVIVCZRNUVJUUGGUVKRABCDFUDGJKLUNUUGGFUORJFUDUPUQZURUVIUSUTUUHUVIRVA
      VBZCUUHRVAVBUUGDUUHUJUVFUVEDCUMZUVMDUUHRVAVBUBUCUUKCDRRVDVEUUGUUNUVCUUPUV
      AUUGUUMUUJUUKUUGUUMUUHUUJUUGUUMCUUHABCFGJKVFZUVGVGUUHEUKZVHVIUUGUUOUUJUUK
      UUGUUOUUHUUJUUGUUODUUHUUGAFVJZBOZAOZFVKZVLZVMZBUVQVNZVOZVJZUFUGZUWEUUODUU
      GUVTUDNUWFUWEPFVPABUWEUVTUVQFVQUWEVRVFVSUUGDUWEUFUUGDAGUVSUVRFVLZVMZBGVNZ
      VOZVJZUWELUUGUWJUWDUUGAGUWIUVQUWCUUGFVTNGUVQPFWAFGJWBVSZUUGUWHUWBBGUVQUWL
      UWHUWBSUUGUWGUWAUWAUWGUVRUVSFBWCAWCWHWDWEWFWGWIWJWKZWLUWMWMZUVNVGUVPVHVIU
      UGUUTUVCUBUCUUMUUOUUGUUQUUMNZUURUUONZTZTZUVCUUTUUSUUJNUWREUUJUUSEUUHUMUWR
      UUSHIGGUVRHOZFVLZVMZIOZUVRFVLZVMZTBGVNZWNZVJZEUWRUUSUXEPZIGQZHGQZUUSUXGNZ
      UUGUWQUXJUUGUWQUUQUXABGVNZPZHGQZUURUXDBGVNZPZIGQZTZUXJUUGUWOUXNUWPUXQUUGU
      WOUUQAGUVRUVSFVLZVMZBGVNZVOZVJZNZUXNUUGUUMUYCUUQUUGUUMCUYCUVOKWOWPUUQRNUY
      DUXNSUBWCZHGUXLUUQUYBRAHGUYAUXLAHWQZUXTUXABGUYFUXSUWTUVSUWSUVRFWRWSWTZXAX
      BXIXCUUGUWPUURUWKNZUXQUUGUUOUWKUURUUGUUODUWKUWNLWOWPUURRNUYHUXQSUCWCIGUXO
      UURUWJRAIGUWIUXOAIWQZUWHUXDBGUYIUWGUXCUVSUXBUVRFXJWSWTZXAXBXIXCXDUXRUXMUX
      PTZIGQZHGQUXJUXMUXPHIGGXEUYLUXIHGUYKUXHIGUYKUUSUXLUXOUHZUXEUUQUXLUURUXOXF
      UXAUXDBGXKZWOXGXGXHXLXMUUSRNUXKUXJSUUQUURUYEXNHIGGUXEUUSUXFRUXFVRZXOXIUTM
      XSXPUUKUUSUUJXTXQXRYAYBYCUUGUUHEUUIUUGUVFUUHUUIUJZUVMUUHRYDVSZUUGEUXGUUIM
      UUGGGYEZUUIUXFYFZUXGUUIUJUUGUXEUUINZIGYGHGYGUYSUUGUYTHIGGUUGUWSGNZUXBGNZT
      ZTZUXEUYMUUIUYNVUDUXLUUINUXOUUINUYMUUINVUDUUHUUIUXLUUGUYPVUCUYQYHZVUDCUUH
      UXLUVGVUDUXLUYCCVUDUXLUYCNZUXLUYAPZAGQZVUDVUAUXLUXLPZVUHUUGVUAVUBYIVUDUXL
      YKVUGVUIAUWSGUYFUYAUXLUXLUYGYJYLVEVUDGRNZUXLRNVUFVUHSUUGVUJVUCUVLYHZUXABG
      RYMAGUYAUXLUYBRUYBVRXBYNYOKXSXPYPVUDUUHUUIUXOVUEVUDDUUHUXOUVNVUDUXOUWKDVU
      DUXOUWKNZUXOUWIPZAGQZVUDVUBUXOUXOPZVUNUUGVUAVUBYQVUDUXOYKVUMVUOAUXBGUYIUW
      IUXOUXOUYJYJYLVEVUDVUJUXORNVULVUNSVUKUXDBGRYMAGUWIUXOUWJRUWJVRXBYNYOLXSXP
      YPUXLUXOUUHYRVEYSYTHIGGUXEUUIUXFUYOUUAUUBUYRUUIUXFUUCVSUUDUUEUUF $.

    $( In a total order, the finite intersections of the open rays generates
       the set of open intervals, but no more - these four collections form a
       subbasis for the order topology.  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    ordtbas $p |- ( R e. TosetRel -> ( fi ` ( { X } u. ( A u. B ) ) ) =
      ( ( { X } u. ( A u. B ) ) u. C ) ) $=
      ( vm vn ctsr wcel cun cvv wss vz csn cfi cfv cv cin wceq wrex w3o wb snex
      ssun2 cuni ordtuni cdm dmexg syl5eqel eqeltrrd uniexb sylibr ssexg elfiun
      sylancr wi ssun1 eqsstri sseli a1i ordtbas2 syl6eqss sseld wa cpw fipwuni
      fisn elpwid ad2antll unissi syl5sseqr adantr simprl syl6eleq syl sseqtr4d
      sstrd elsni sseqin2 sylib sselda eleq1 syl5ibrcom rexlimdvva 3jaod sylbid
      adantrl eqeltrd ssrdv ssfii unssad fiss sylancl unssd eqssd unass syl6eqr
      eqsstr3d ) FPQZGUBZCDRZRZUCUDZXHXIERZRZXJERXGXKXMXGUAXKXMXGUAUEZXKQZXNXHU
      CUDZQZXNXIUCUDZQZXNNUEZOUEZUFZUGZOXRUHNXPUHZUIZXNXMQZXGXHSQXISQZXOYEUJGUK
      XGXIXJTZXJSQZYGXIXHULZXGXJUMZSQYIXGGYKSABCDFPGJKLUNZXGGFUOSJFPUPUQURXJUSU
      TZXIXJSVAVCNOXNXHXISSVBVCXGXQYFXSYDXQYFVDXGXPXMXNXPXHXMGVOZXHXLVEVFVGVHXG
      XRXMXNXGXRXLXMABCDEFGHIJKLMVIZXLXHULVJZVKXGYCYFNOXPXRXGXTXPQZYAXRQZVLZVLZ
      YFYCYBXMQYTYBYAXMYTYAXTTYBYAUGYTYAGXTYTYAXIUMZGYRYAUUATXGYQYRYAUUAXRUUAVM
      YAXIVNVGVPVQXGUUAGTYSXGYKUUAGXIXJYJVRYLVSVTWEYTXTXHQXTGUGYTXTXPXHXGYQYRWA
      YNWBXTGWFWCWDYAXTWGWHXGYRYAXMQYQXGXRXMYAYPWIWOWPXNYBXMWJWKWLWMWNWQXGXHXLX
      KXGXHXIXKXGYIXJXKTYMXJSWRWCWSXGXLXRXKYOXGYIYHXRXKTYMYJXIXJSWTXAXFXBXCXHXI
      EXDXE $.
  $}

  ${
    $d x A $.  $d x B $.  $d x y P $.  $d x y R $.  $d x y V $.  $d x y X $.
    ordttopon.3 $e |- X = dom R $.
    $( Value of the order topology.  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    ordttopon $p |- ( R e. V -> ( ordTop ` R ) e. ( TopOn ` X ) ) $=
      ( vx vy wcel cordt cfv cv wbr wn crab cmpt crn cun cuni ctopon eqid cvv
      csn cfi ctg ordtval ctb fibas tgtopon ax-mp syl6eqel ordtuni cdm syl5eqel
      wceq dmexg eqeltrrd uniexb sylibr fiuni syl eqtrd fveq2d eleqtrrd ) ABGZA
      HIZCUAECFJZEJZAKLFCMNOZECVFVEAKLFCMNOZPPZUBIZQZRIZCRIVCVDVJUCIZVLEFVGVHAB
      CDVGSZVHSZUDVJUEGVMVLGVIUFVJUGUHUIVCCVKRVCCVIQZVKEFVGVHABCDVNVOUJZVCVITGZ
      VPVKUMVCVPTGVRVCCVPTVQVCCAUKTDABUNULUOVIUPUQVITURUSUTVAVB $.

    $( An upward ray ` ( P , +oo ) ` is open.  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    ordtopn1 $p |- ( ( R e. V /\ P e. X ) ->
      { x e. X | -. x R P } e. ( ordTop ` R ) ) $=
      ( vy wcel cv wbr wn crab cmpt crn cun cfv cvv wceq eqid adantr wa csn cfi
      cordt ctg wss ordtuni cdm dmexg syl5eqel eqeltrrd uniexb sylibr ssfii syl
      cuni ctb fibas bastg ax-mp syl6ss ordtval sseqtr4d ssun2 ssun1 wrex simpr
      eqidd breq2 notbid rabbidv eqeq2d rspcev syl2anc wb rabexg elrnmpt mpbird
      3syl sseldi sseldd ) CDHZBEHZUAZEUBZGEAIZGIZCJZKZAELZMZNZGEWGWFCJKAELMNZO
      ZOZCUDPZWFBCJZKZAELZWDWOWOUCPZUEPZWPWDWOWTXAWDWOQHZWOWTUFWDWOUPZQHXBWDEXC
      QWBEXCRWCGAWLWMCDEFWLSZWMSZUGTWBEQHZWCWBECUHQFCDUIUJTZUKWOULUMWOQUNUOWTUQ
      HWTXAUFWOURWTUQUSUTVAWBWPXARWCGAWLWMCDEFXDXEVBTVCWDWNWOWSWNWEVDWDWLWNWSWL
      WMVEWDWSWLHZWSWJRZGEVFZWDWCWSWSRZXJWBWCVGWDWSVHXIXKGBEWGBRZWJWSWSXLWIWRAE
      XLWHWQWGBWFCVIVJVKVLVMVNWDXFWSQHXHXJVOXGWRAEQVPGEWJWSWKQWKSVQVSVRVTVTWA
      $.

    $( A downward ray ` ( -oo , P ) ` is open.  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    ordtopn2 $p |- ( ( R e. V /\ P e. X ) ->
      { x e. X | -. P R x } e. ( ordTop ` R ) ) $=
      ( vy wcel cv wbr wn crab cmpt crn cun cfv cvv wceq eqid adantr wa csn cfi
      cordt ctg wss ordtuni cdm dmexg syl5eqel eqeltrrd uniexb sylibr ssfii syl
      cuni ctb fibas bastg ax-mp syl6ss ordtval sseqtr4d ssun2 wrex simpr eqidd
      notbid rabbidv eqeq2d rspcev syl2anc wb rabexg elrnmpt 3syl mpbird sseldi
      breq1 sseldd ) CDHZBEHZUAZEUBZGEAIZGIZCJKAELMNZGEWFWECJZKZAELZMZNZOZOZCUD
      PZBWECJZKZAELZWCWNWNUCPZUEPZWOWCWNWSWTWCWNQHZWNWSUFWCWNUPZQHXAWCEXBQWAEXB
      RWBGAWGWLCDEFWGSZWLSZUGTWAEQHZWBWAECUHQFCDUIUJTZUKWNULUMWNQUNUOWSUQHWSWTU
      FWNURWSUQUSUTVAWAWOWTRWBGAWGWLCDEFXCXDVBTVCWCWMWNWRWMWDVDWCWLWMWRWLWGVDWC
      WRWLHZWRWJRZGEVEZWCWBWRWRRZXIWAWBVFWCWRVGXHXJGBEWFBRZWJWRWRXKWIWQAEXKWHWP
      WFBWECVSVHVIVJVKVLWCXEWRQHXGXIVMXFWQAEQVNGEWJWRWKQWKSVOVPVQVRVRVT $.

    $( An open interval ` ( A , B ) ` is open.  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    ordtopn3 $p |- ( ( R e. V /\ A e. X /\ B e. X ) ->
      { x e. X | ( -. x R A /\ -. B R x ) } e. ( ordTop ` R ) ) $=
      ( wcel w3a cv wbr wn wa crab cin cordt cfv inrab ctop ctopon 3ad2ant1 syl
      ordttopon topontop ordtopn1 3adant3 ordtopn2 3adant2 syl3anc syl5eqelr
      inopn ) DEHZBFHZCFHZIZAJZBDKLZCUPDKLZMAFNUQAFNZURAFNZOZDPQZUQURAFRUOVBSHZ
      USVBHZUTVBHZVAVBHUOVBFTQHZVCULUMVFUNDEFGUCUAFVBUDUBULUMVDUNABDEFGUEUFULUN
      VEUMACDEFGUGUHUSUTVBUKUIUJ $.

    $( A downward ray ` ( -oo , P ] ` is closed.  (Contributed by Mario
       Carneiro, 3-Sep-2015.) $)
    ordtcld1 $p |- ( ( R e. V /\ P e. X ) ->
      { x e. X | x R P } e. ( Clsd ` ( ordTop ` R ) ) ) $=
      ( wcel wa cv wbr crab cordt cfv ccld cuni wss cdif ssrab2 ctopon wceq syl
      ordttopon adantr toponuni syl5sseq difeq1d syl5eqr ordtopn1 eqeltrrd ctop
      wn notrab wb topontop eqid iscld 3syl mpbir2and ) CDGZBEGZHZAIBCJZAEKZCLM
      ZNMGZVCVDOZPZVFVCQZVDGZVAEVCVFVBAERVAVDESMGZEVFTUSVJUTCDEFUBUCZEVDUDUAZUE
      VAVBUKAEKZVHVDVAVMEVCQVHVBAEULVAEVFVCVLUFUGABCDEFUHUIVAVJVDUJGVEVGVIHUMVK
      EVDUNVCVDVFVFUOUPUQUR $.

    $( An upward ray ` [ P , +oo ) ` is closed.  (Contributed by Mario
       Carneiro, 3-Sep-2015.) $)
    ordtcld2 $p |- ( ( R e. V /\ P e. X ) ->
      { x e. X | P R x } e. ( Clsd ` ( ordTop ` R ) ) ) $=
      ( wcel wa cv wbr crab cordt cfv ccld cuni wss cdif ssrab2 ctopon wceq syl
      ordttopon adantr toponuni syl5sseq difeq1d syl5eqr ordtopn2 eqeltrrd ctop
      wn notrab wb topontop eqid iscld 3syl mpbir2and ) CDGZBEGZHZBAICJZAEKZCLM
      ZNMGZVCVDOZPZVFVCQZVDGZVAEVCVFVBAERVAVDESMGZEVFTUSVJUTCDEFUBUCZEVDUDUAZUE
      VAVBUKAEKZVHVDVAVMEVCQVHVBAEULVAEVFVCVLUFUGABCDEFUHUIVAVJVDUJGVEVGVIHUMVK
      EVDUNVCVDVFVFUOUPUQUR $.

    $( A closed interval ` [ A , B ] ` is closed.  (Contributed by Mario
       Carneiro, 3-Sep-2015.) $)
    ordtcld3 $p |- ( ( R e. V /\ A e. X /\ B e. X ) ->
      { x e. X | ( A R x /\ x R B ) } e. ( Clsd ` ( ordTop ` R ) ) ) $=
      ( wcel w3a cv wbr wa crab cin cordt cfv ccld inrab ordtcld2 3adant3 incld
      ordtcld1 3adant2 syl2anc syl5eqelr ) DEHZBFHZCFHZIZBAJZDKZUJCDKZLAFMUKAFM
      ZULAFMZNZDOPZQPZUKULAFRUIUMUQHZUNUQHZUOUQHUFUGURUHABDEFGSTUFUHUSUGACDEFGU
      BUCUMUNUPUAUDUE $.
  $}

  $( The order topology is a topology.  (Contributed by Mario Carneiro,
     3-Sep-2015.) $)
  ordttop $p |- ( R e. V -> ( ordTop ` R ) e. Top ) $=
    ( wcel cordt cfv cdm ctopon ctop eqid ordttopon topontop syl ) ABCADEZAFZGE
    CMHCABNNIJNMKL $.

  ${
    $d v w x y z A $.  $d v w x y z ph $.  $d v w x y z R $.  $d v w x y z X $.
    $d x y V $.
    $( The order dual generates the same topology as the original order.
       (Contributed by Mario Carneiro, 3-Sep-2015.) $)
    ordtcnv $p |- ( R e. PosetRel -> ( ordTop ` `' R ) = ( ordTop ` R ) ) $=
      ( vx vy cps wcel crn csn cv wbr wn crab cmpt cun cfi cfv ctg cordt wb vex
      eqid ccnv cdm eqcomd sneqd brcnv notbid rabeqbidv mpteq12dv rneqd uneq12d
      psrn a1i uncom syl6eq fveq2d wceq cnvps df-rn ordtval syl 3eqtr4d ) ADEZA
      FZGZBVCCHZBHZAUAZIZJZCVCKZLZFZBVCVFVEVGIZJZCVCKZLZFZMZMZNOZPOZAUBZGZBWBVE
      VFAIZJZCWBKZLZFZBWBVFVEAIZJZCWBKZLZFZMZMZNOZPOVGQOZAQOVBVTWPPVBVSWONVBVDW
      CVRWNVBVCWBVBWBVCAWBWBTZUKUCZUDVBVRWMWHMWNVBVLWMVQWHVBVKWLVBBVCVJWBWKWSVB
      VIWJCVCWBWSVBVHWIVHWIRVBVEVFACSZBSZUEULUFUGUHUIVBVPWGVBBVCVOWBWFWSVBVNWEC
      VCWBWSVBVMWDVMWDRVBVFVEAXAWTUEULUFUGUHUIUJWMWHUMUNUJUOUOVBVGDEWQWAUPAUQBC
      VLVQVGDVCAURVLTVQTUSUTBCWHWMADWBWRWHTWMTUSVA $.

    $( The subspace topology of an order topology is in general finer than the
       topology generated by the restricted order, but we do have inclusion in
       one direction.  (Contributed by Mario Carneiro, 9-Sep-2015.) $)
    ordtrest $p |- ( ( R e. PosetRel /\ A e. V ) ->
      ( ordTop ` ( R i^i ( A X. A ) ) ) C_ ( ( ordTop ` R ) |`t A ) ) $=
      ( vx vy cps wcel cin cfv wbr crab cmpt crn wceq adantr eqid syl ctop wss
      wn wa cxp cordt cdm csn cv cun cfi ctg cvv inex1g ordtval ordttop resttop
      crest sylan psssdm2 simpr ctopon ordttopon toponmax elrestr syl3anc snssd
      co eqeltrd rabeq mpteq12dv rneqd wf inrab2 wb inss2 sseldi brinxp syl2anc
      notbid rabbidva syl5eq simpl inss1 sseli ordtopn1 syl2an eqeltrrd eqsstrd
      fmptd frn ordtopn2 unssd tgfiss ) BFGZACGZUAZBAAUBZHZUCIZWPUDZUEZDWREUFZD
      UFZWPJZTZEWRKZLZMZDWRXAWTWPJZTZEWRKZLZMZUGZUGZUHIUIIZBUCIZAUOVEZWNWPUJGZW
      QXNNWLXQWMBWOFUKODEXFXKWPUJWRWRPXFPXKPULQWNXPRGZXMXPSXNXPSWLXORGZWMXRBFUM
      ZAXOCUNUPWNWSXLXPWNWRXPWNWRBUDZAHZXPWLWRYBNZWMABYAYAPZUQOZWNXSWMYAXOGZYBX
      PGWLXSWMXTOZWLWMURZWNXOYAUSIGZYFWLYIWMBFYAYDUTOYAXOVAQYAAXORCVBVCVFVDWNXF
      XKXPWNXFDYBXCEYBKZLZMZXPWNXEYKWNDWRXDYBYJYEWNYCXDYJNYEXCEWRYBVGQVHVIWNYBX
      PYKVJYLXPSWNDYBYJXPYKWNXAYBGZUAZWTXABJZTZEYAKZAHZYJXPYNYRYPEYBKYJYPEYAAVK
      YNYPXCEYBYNWTYBGZUAZYOXBYTWTAGZXAAGZYOXBVLYTYBAWTYAAVMZYNYSURVNZYNUUBYSYN
      YBAXAUUCWNYMURVNOZWTXAAABVOVPVQVRVSYNXSWMYQXOGZYRXPGWNXSYMYGOZWNWMYMYHOZW
      NWLXAYAGZUUFYMWLWMVTZYBYAXAYAAWAWBZEXABFYAYDWCWDYQAXORCVBVCWEYKPWGYBXPYKW
      HQWFWNXKDYBXHEYBKZLZMZXPWNXJUUMWNDWRXIYBUULYEWNYCXIUULNYEXHEWRYBVGQVHVIWN
      YBXPUUMVJUUNXPSWNDYBUULXPUUMYNXAWTBJZTZEYAKZAHZUULXPYNUURUUPEYBKUULUUPEYA
      AVKYNUUPXHEYBYTUUOXGYTUUBUUAUUOXGVLUUEUUDXAWTAABVOVPVQVRVSYNXSWMUUQXOGZUU
      RXPGUUGUUHWNWLUUIUUSYMUUJUUKEXABFYAYDWIWDUUQAXORCVBVCWEUUMPWGYBXPUUMWHQWF
      WJWJXMXPWKVPWF $.

    ordtrest2.1 $e |- X = dom R $.
    ordtrest2.2 $e |- ( ph -> R e. TosetRel ) $.
    ordtrest2.3 $e |- ( ph -> A C_ X ) $.
    ordtrest2.4 $e |- ( ( ph /\ ( x e. A /\ y e. A ) ) ->
       { z e. X | ( x R z /\ z R y ) } C_ A ) $.
    $( Lemma for ~ ordtrest2 .  (Contributed by Mario Carneiro, 9-Sep-2015.) $)
    ordtrest2lem $p |- ( ph -> A. v e. ran ( z e. X |-> { w e. X | -. w R z } )
      ( v i^i A ) e. ( ordTop ` ( R i^i ( A X. A ) ) ) ) $=
      ( cv wcel crab wa wceq syl cvv cin cxp cordt cfv wbr cmpt crn wral inrab2
      wn wss sseqin2 sylib adantr rabeq syl5eq ctopon cdm ctsr inex1g ordttopon
      eqid cps tsrps psssdm syl2anc fveq2d eleqtrd toponmax rabid2 eleq1 sylbir
      wb syl5ibcom wrex dfrex2 breq1 cbvrexv bitr3i ctop ordttop syl5ibrcom wne
      c0 rabn0 notbid bitri wo ad3antrrr ad2antrr sselda simpllr tsrlin syl3anc
      0opn ord an4 wi rabss r19.21bi impr sylan2b brinxp ancoms rabbidva eqtr4d
      an32s eleqtrrd eqeltrd anassrs expr rexlimdva syl5bi pm2.61dne rexlimdvaa
      ordtopn1 pm2.61d ralrimiva dmexg syl5eqel rabexg ralrimivw ineq1 ralrnmpt
      syld eleq1d mpbird ) AFNZGUAZHGGUBZUAZUCUDZOZFDIENZDNZHUEZUJZEIPZUFZUGUHZ
      YRGUAZYLOZDIUHZAUUBDIAYOIOZQZUUAYQEGPZYLUUEUUAYQEIGUAZPZUUFYQEIGUIUUEUUGG
      RZUUHUUFRAUUIUUDAGIUKZUUILGIULUMUNYQEUUGGUOSUPUUEYQEGUHZUUFYLOZUUEGYLOZUU
      KUULAUUMUUDAYLGUQUDZOUUMAYLYKURZUQUDZUUNAYKTOZYLUUPOAHUSOZUUQKHYJUSUTSZYK
      TUUOUUOVBZVASAUUOGUQAHVCOZUUJUUOGRZAUURUVAKHVDSLGHIJVEVFZVGVHGYLVISUNUUKG
      UUFRUUMUULVMYQEGVJGUUFYLVKVLVNUUKUJZBNZYOHUEZBGVOZUUEUULUVDYPEGVOUVGYPEGV
      PYPUVFEBGYNUVEYOHVQVRVSUUEUVFUULBGUUEUVEGOZUVFQZQZUULUUFWDUVJUULUUFWDRWDY
      LOZUUEUVKUVIUUEYLVTOZUVKAUVLUUDAUUQUVLUUSYKTWASUNYLWOSUNUUFWDYLVKWBUUFWDW
      CZCNZYOHUEZUJZCGVOZUVJUULUVMYQEGVOUVQYQEGWEYQUVPECGYNUVNRYPUVOYNUVNYOHVQW
      FVRWGUVJUVPUULCGUVJUVNGOZQZUVPYOUVNHUEZUULUVSUVOUVTUVSUURUVNIOUUDUVOUVTWH
      AUURUUDUVIUVRKWIUVJGIUVNAUUJUUDUVILWJWKAUUDUVIUVRWLUVNYOHIJWMWNWPUVJUVRUV
      TUULUUEUVIUVRUVTQZUULUUEUVIUWAQZQZUUFYNYOYKUEZUJZEUUOPZYLUWCUUFUWEEGPZUWF
      UWCYOGOZUUFUWGRUWBUUEUVHUVRQZUVFUVTQZQUWHUVHUVFUVRUVTWQUUEUWIUWJUWHAUWIUU
      DUWJUWHWRZAUWIQZUWKDIUWLUWJDIPGUKUWKDIUHMUWJDIGWSUMWTXGXAXBZUWHYQUWEEGUWH
      YNGOZQYPUWDUWNUWHYPUWDVMYNYOGGHXCXDWFXESUWCUVBUWFUWGRAUVBUUDUWBUVCWJZUWEE
      UUOGUOSXFUWCUUQYOUUOOUWFYLOAUUQUUDUWBUUSWJUWCYOGUUOUWMUWOXHEYOYKTUUOUUTXP
      VFXIXJXKYEXLXMXNXOXMXQXIXRAYRTOZDIUHYTUUCVMAUWPDIAITOUWPAIHURZTJAUURUWQTO
      KHUSXSSXTYQEITYASYBYMUUBDFIYRYSTYSVBYHYRRYIUUAYLYHYRGYCYFYDSYG $.

    $( An interval-closed set ` A ` in a total order has the same subspace
       topology as the restricted order topology.  (An interval-closed set is
       the same thing as an open or half-open or closed interval in ` RR ` ,
       but in other sets like ` QQ ` there are interval-closed sets like
       ` ( _pi , +oo ) i^i QQ ` that are not intervals.)  (Contributed by Mario
       Carneiro, 9-Sep-2015.) $)
    ordtrest2 $p |- ( ph ->
      ( ordTop ` ( R i^i ( A X. A ) ) ) = ( ( ordTop ` R ) |`t A ) ) $=
      ( vw vv cfv wcel cvv wss syl wbr wceq cxp cin cordt crest co cps ctsr cdm
      tsrps dmexg syl5eqel ssexd ordtrest syl2anc csn crab cmpt crn cun cfi ctg
      cv wn eqid ordtval oveq1d ctb tgrest sylancr eqtr4d firest fveq2i syl6eqr
      fibas ctop inex1g ordttop cuni ordtuni eqeltrrd uniexb restval wf sseqin2
      sylibr wral sylib ctopon ordttopon psssdm fveq2d eleqtrd toponmax eqeltrd
      elsni ineq1d eleq1d syl5ibrcom ralrimiv ordtrest2lem df-rn cnvtsr sseqtrd
      ccnv psrn wa adantr rabeq vex brcnv anbi12ci a1i rabbiia eqsstr3d ancom2s
      wb bicomi notbid rabeqbidv mpteq12dv rneqd cnvin cnvxp eqtri psss ordtcnv
      ineq2i syl5reqr eleq2d raleqbidv mpbird ralunb sylanbrc frn eqsstrd eqssd
      fmpt tgfiss ) AFEEUAZUBZUCNZFUCNZEUDUEZAFUFOZEPOZUUAUUCQAFUGOZUUDIFUIRZAE
      GPAGFUHZPHAUUFUUHPOIFUGUJRUKZJULZEFPUMUNAUUCGUOZDGLVBZDVBZFSVCLGUPUQURZDG
      UUMUULFSZVCZLGUPZUQZURZUSZUSZEUDUEZUTNZVANZUUAAUUCUVAUTNZEUDUEZVANZUVDAUU
      CUVEVANZEUDUEZUVGAUUBUVHEUDAUUFUUBUVHTIDLUUNUUSFUGGHUUNVDZUUSVDZVERVFAUVE
      VGOUUEUVGUVITUVAVNUUJEUVEVGPVHVIVJUVCUVFVAEUVAVKVLVMAUUAVOOZUVBUUAQUVDUUA
      QAYTPOZUVLAUUFUVMIFYSUGVPRZYTPVQRAUVBMUVAMVBZEUBZUQZURZUUAAUVAPOZUUEUVBUV
      RTAUVAVRZPOUVSAGUVTPAUUFGUVTTIDLUUNUUSFUGGHUVJUVKVSRUUIVTUVAWAWEUUJMEUVAP
      PWBUNAUVAUUAUVQWCZUVRUUAQAUVPUUAOZMUVAWFZUWAAUWBMUUKWFUWBMUUTWFZUWCAUWBMU
      UKAUWBUVOUUKOZGEUBZUUAOAUWFEUUAAEGQZUWFETJEGWDWGAUUAEWHNZOEUUAOAUUAYTUHZW
      HNZUWHAUVMUUAUWJOUVNYTPUWIUWIVDWIRAUWIEWHAUUDUWGUWIETUUGJEFGHWJUNWKWLEUUA
      WMRWNUWEUVPUWFUUAUWEUVOGEUVOGWOWPWQWRWSAUWBMUUNWFUWBMUUSWFZUWDABCDLMEFGHI
      JKWTAUWKUVPFXDZYSUBZUCNZOZMDFURZUULUUMUWLSZVCZLUWPUPZUQZURZWFACBDLMEUWLUW
      PFXAAUUFUWLUGOIFXBRAEGUWPJAUUDGUWPTZUUGFGHXERZXCABVBZEOZCVBZEOZUXFUUMUWLS
      ZUUMUXDUWLSZXFZDUWPUPZEQAUXEUXGXFZXFZUXKUXDUUMFSZUUMUXFFSZXFZDGUPZEUXMUXQ
      UXPDUWPUPZUXKUXMUXBUXQUXRTAUXBUXLUXCXGUXPDGUWPXHRUXJUXPDUWPUXJUXPXPUUMUWP
      OUXHUXOUXIUXNUXFUUMFCXIDXIZXJUUMUXDFUXSBXIXJXKXLXMVMKXNXOWTAUWBUWOMUUSUXA
      AUURUWTADGUUQUWPUWSUXCAUUPUWRLGUWPUXCAUUOUWQUUOUWQXPAUWQUUOUULUUMFLXIUXSX
      JXQXLXRXSXTYAAUUAUWNUVPAUWNYTXDZUCNZUUAUXTUWMUCUXTUWLYSXDZUBUWMFYSYBUYBYS
      UWLEEYCYGYDVLAYTUFOZUYAUUATAUUDUYCUUGEFYERYTYFRYHYIYJYKUWBMUUNUUSYLYMUWBM
      UUKUUTYLYMMUVAUUAUVPUVQUVQVDYQWGUVAUUAUVQYNRYOUVBUUAYRUNYOYP $.
  $}

  $( The topology of the extended reals.  (Contributed by Mario Carneiro,
     3-Sep-2015.) $)
  letopon $p |- ( ordTop ` <_ ) e. ( TopOn ` RR* ) $=
    ( cle ctsr wcel cordt cfv cxr ctopon letsr ledm ordttopon ax-mp ) ABCADEFGE
    CHABFIJK $.

  $( The topology of the extended reals.  (Contributed by Mario Carneiro,
     3-Sep-2015.) $)
  letop $p |- ( ordTop ` <_ ) e. Top $=
    ( cxr cle cordt cfv letopon topontopi ) ABCDEF $.

  $( The topology of the extended reals.  (Contributed by Mario Carneiro,
     3-Sep-2015.) $)
  letopuni $p |- RR* = U. ( ordTop ` <_ ) $=
    ( cxr cle cordt cfv letopon toponunii ) ABCDEF $.

  $( The topology component of the extended real number structure.
     (Contributed by Mario Carneiro, 21-Aug-2015.) $)
  xrstopn $p |- ( ordTop ` <_ ) = ( TopOpen ` RR*s ) $=
    ( cle cordt cfv cxr ctopon wcel cxrs ctopn letopon xrsbas xrstset topontopn
    wceq ax-mp ) ABCZDECFOGHCMIDOGJKLN $.

  $( The extended real number structure is a topological space.  (Contributed
     by Mario Carneiro, 21-Aug-2015.) $)
  xrstps $p |- RR*s e. TopSp $=
    ( cle cordt cfv ctopon wcel cxrs ctps letopon xrsbas xrstset tsettps ax-mp
    cxr ) ABCZMDCEFGEHMNFIJKL $.

  ${
    $d a b w x y z $.  $d a b A $.  $d a b B $.
    leordtval.1 $e |- A = ran ( x e. RR* |-> ( x (,] +oo ) ) $.
    $( Lemma for ~ leordtval .  (Contributed by Mario Carneiro, 3-Sep-2015.) $)
    leordtvallem1 $p |- A = ran ( x e. RR* |-> { y e. RR* | -. y <_ x } ) $=
      ( cxr cv cpnf cioc co cmpt crn cle wbr wn crab wcel cin wss wceq wa simpl
      iocssxr sseqin2 mpbi clt w3a wb pnfxr sylancl simpr pnfge jccir biantrurd
      elioc1 3anan32 syl6bbr xrltnle 3bitr2d rabbi2dva syl5eqr mpteq2ia rneqi
      eqtri ) CAEAFZGHIZJZKAEBFZVDLMNZBEOZJZKDVFVJAEVEVIVDEPZVEEVEQZVIVEERVLVES
      VDGUBVEEUCUDVKVHBEVEVKVGEPZTZVGVEPZVMVDVGUEMZVGGLMZUFZVPVHVNVKGEPVOVRUGVK
      VMUAUHVDGVGUNUIVNVPVMVQTZVPTVRVNVSVPVNVMVQVKVMUJVGUKULUMVMVPVQUOUPVDVGUQU
      RUSUTVAVBVC $.

    leordtval.2 $e |- B = ran ( x e. RR* |-> ( -oo [,) x ) ) $.
    $( Lemma for ~ leordtval .  (Contributed by Mario Carneiro, 3-Sep-2015.) $)
    leordtvallem2 $p |- B = ran ( x e. RR* |-> { y e. RR* | -. x <_ y } ) $=
      ( cxr cmnf cv cico co cmpt crn cle wbr wn crab wcel wa wb cin wss icossxr
      wceq sseqin2 mpbi clt w3a mnfxr simpl sylancr simpr mnfle jccir biantrurd
      elico1 df-3an syl6bbr xrltnle ancoms 3bitr2d syl5eqr mpteq2ia rneqi eqtri
      rabbi2dva ) DAGHAIZJKZLZMAGVGBIZNOPZBGQZLZMFVIVMAGVHVLVGGRZVHGVHUAZVLVHGU
      BVOVHUDHVGUCVHGUEUFVNVKBGVHVNVJGRZSZVJVHRZVPHVJNOZVJVGUGOZUHZVTVKVQHGRVNV
      RWATUIVNVPUJHVGVJUPUKVQVTVPVSSZVTSWAVQWBVTVQVPVSVNVPULVJUMUNUOVPVSVTUQURV
      PVNVTVKTVJVGUSUTVAVFVBVCVDVE $.

    $( The topology of the extended reals.  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    leordtval2 $p |- ( ordTop ` <_ ) = ( topGen ` ( fi ` ( A u. B ) ) ) $=
      ( vy cle cfv cxr wcel wceq ax-mp wss cvv cpnf cmnf mp2an cc0 c1 clt vz vw
      cordt csn cun cfi ctg ctsr letsr ledm leordtvallem1 leordtvallem2 ordtval
      snex cpw xrex pwex cv cioc co cmpt crn eqid iocssxr elpw2 mpbir a1i fmpti
      frn eqsstri cico icossxr unssi ssexi unex ssun2 fiss fvex cuni ovex unipr
      wf cpr mnfxr 0xr pnfxr w3a wbr mnflt0 0lepnf df-icc df-ioc xrltnle xrletr
      cicc wa xrlttr wi xrltle 3adant2 syld ixxun mpanr12 mp3an 1re 0lt1 df-ico
      rexri xrlelttr ixxss2 unss1 eqsstr3i uncom 3sstr3i eqssi eqtri ssun1 wrex
      iccmax oveq1 eqeq2d rspcev elrnmpti sselii oveq2 prssi ssfii sstri eltg3i
      eleqtrri eqeltrri snssi bastg ctb ctop fibas tgcl fitop mp2b sseqtri
      2basgen eqtr4i ) GUCHZIUDZBCUEZUEZUFHZUGHZUUEUFHZUGHZGUHJUUCUUHKUIAFBCGUH
      IUJAFBDUKAFBCDEULUMLUUIUUGMZUUGUUJMUUJUUHKUUFNJUUEUUFMUUKUUDUUEIUNUUEIUOZ
      IUPUQBCUULBAIAURZOUSUTZVAZVBZUULDIUULUUOWBUUPUULMAIUULUUNUUOUUOVCZUUNUULJ
      ZUUMIJZUURUUNIMUUMOVDUUNIUPVEVFVGVHIUULUUOVILVJCAIPUUMVKUTZVAZVBZUULEIUUL
      UVAWBUVBUULMAIUULUUTUVAUVAVCZUUTUULJZUUSUVDUUTIMPUUMVLUUTIUPVEVFVGVHIUULU
      VAVILVJVMVNZVOUUEUUDVPUUEUUFNVQQUUGUUJUFHZUUJUUJNJUUFUUJMUUGUVFMUUIUGVRUU
      DUUEUUJIUUJJUUDUUJMROUSUTZPSVKUTZWCZVSZIUUJUVJUVGUVHUEZIUVGUVHROUSVTPSVKV
      TWAUVKIUVGUVHIROVDPSVLVMPOWOUTZUVHUVGUEZIUVKUVLPRWOUTZUVGUEZUVMPIJZRIJZOI
      JZUVOUVLKZWDWEWFUVPUVQUVRWGPRTWHZROGWHUVSWIWJAFUAUBPROUSWOGGTGWOTGAFUAWKZ
      AFUAWLRUBURZWMUWAUWBROWNUVPUVQUWBIJZWGUVTRUWBTWHWPPUWBTWHZPUWBGWHZPRUWBWQ
      UVPUWCUWDUWEWRUVQPUWBWSWTXAXBXCXDUVNUVHMZUVOUVMMSIJZRSTWHUWFSXEXHZXFAFUAU
      BPRSWOGTGVKTAFUAXGUWAUWBRSXIXJQUVNUVHUVGXKLXLXSUVHUVGXMXNXOXPUUINJZUVIUUI
      MUVJUUJJUUEUFVRZUVIUUEUUIUVGUUEJUVHUUEJUVIUUEMBUUEUVGBCXQUVGUUPBUVGUUPJUV
      GUUNKZAIXRZUVQUVGUVGKZUWLWEUVGVCUWKUWMARIUUMRKUUNUVGUVGUUMROUSXTYAYBQAIUU
      NUVGUUOUUQUUMOUSVTYCVFDYJYDCUUEUVHCBVPUVHUVBCUVHUVBJUVHUUTKZAIXRZUWGUVHUV
      HKZUWOUWHUVHVCUWNUWPASIUUMSKUUTUVHUVHUUMSPVKYEYAYBQAIUUTUVHUVAUVCPUUMVKVT
      YCVFEYJYDUVGUVHUUEYFQUUENJUUEUUIMUVEUUENYGLZYHUVIUUINYIQYKIUUJYLLUUEUUIUU
      JUWQUWIUUIUUJMUWJUUINYMLYHVMUUFUUJNVQQUUIYNJUUJYOJUVFUUJKUUEYPUUIYQUUJYRY
      SYTUUIUUGUUAQUUB $.

    leordtval.3 $e |- C = ran (,) $.
    $( The topology of the extended reals.  (Contributed by Mario Carneiro,
       3-Sep-2015.) $)
    leordtval $p |- ( ordTop ` <_ ) = ( topGen ` ( ( A u. B ) u. C ) ) $=
      ( vy va vb cle cfv ctg wcel cxr cioo cv wbr wa eqtri cordt cun leordtval2
      cfi ctsr wceq letsr ledm leordtvallem1 leordtvallem2 wn crab cmpt2 df-ioo
      crn wb xrltnle adantlr ancoms adantll anbi12d rabbidva mpt2eq3ia ordtbas2
      clt rneqi ax-mp fveq2i ) KUALBCUBZUDLZMLVIDUBZMLABCEFUCVJVKMKUENVJVKUFUGA
      HBCDKOIJUHAHBEUIAHBCEFUJDPUOIJOOHQZIQZKRUKZJQZVLKRUKZSZHOULZUMZUOGPVSPIJO
      OVMVLVERZVLVOVERZSZHOULZUMVSIJHUNIJOOWCVRVMONZVOONZSZWBVQHOWFVLONZSVTVNWA
      VPWDWGVTVNUPWEVMVLUQURWEWGWAVPUPZWDWGWEWHVLVOUQUSUTVAVBVCTVFTVDVGVHT $.
  $}

  ${
    $d x y z $.  $d x A $.
    $( A closed interval is closed in the order topology of the extended reals.
       (Contributed by Mario Carneiro, 3-Sep-2015.) $)
    iccordt $p |- ( A [,] B ) e. ( Clsd ` ( ordTop ` <_ ) ) $=
      ( vx vz vy cicc co cop cfv cle cordt ccld df-ov cxr cxp cv wcel wral ctsr
      wbr wa crab wf letsr ledm ordtcld3 mp3an1 rgen2a fmpt2 mpbi ctop c0 letop
      df-icc 0cld ax-mp f0cli eqeltri ) ABFGABHZFIJKIZLIZABFMNNOZVAUSFCPZDPZJTV
      DEPZJTUADNUBZVAQZENRCNRVBVAFUCVGCENJSQVCNQVENQVGUDDVCVEJSNUEUFUGUHCENNVFV
      AFCEDUNUIUJUTUKQULVAQUMUTUOUPUQUR $.

    $( An unbounded above open interval is open in the order topology of the
       extended reals.  (Contributed by Mario Carneiro, 3-Sep-2015.) $)
    iocpnfordt $p |- ( A (,] +oo ) e. ( ordTop ` <_ ) $=
      ( vx vy vz cxr wcel cpnf cioc co cle cfv cmpt crn cun ctb ctop eqid letop
      wceq sseldi wa cordt cv cmnf cico cioo ctg leordtval eqeltrri tgclb mpbir
      wss bastg ax-mp sseqtr4i ssun1 wrex oveq1 eqeq2d rspcev mpan2 ovex sylibr
      elrnmpti adantr wn c0 cxp cpw clt df-ioc ixxf fdmi ndmov syl6eqel pm2.61i
      0opn ) AEFZGEFZUAZAGHIZJUBKZFZVRWCVSVRBEBUCZGHIZLZMZBEUDWDUEILMZNZUFMZNZW
      BWAWKWKUGKZWBWKOFZWKWLULWMWLPFWBWLPBWGWHWJWGQWHQWJQUHZRUIWKUJUKWKOUMUNWNU
      OVRWIWKWAWIWJUPVRWGWIWAWGWHUPVRWAWESZBEUQZWAWGFVRWAWASZWPWAQWOWQBAEWDASWE
      WAWAWDAGHURUSUTVABEWEWAWFWFQWDGHVBVDVCTTTVEVTVFWAVGWBAGEHEEVHEVIHBCDVJJHB
      CDVKVLVMVNWBPFVGWBFRWBVQUNVOVP $.

    $( An unbounded above open interval is open in the order topology of the
       extended reals.  (Contributed by Mario Carneiro, 3-Sep-2015.) $)
    icomnfordt $p |- ( -oo [,) A ) e. ( ordTop ` <_ ) $=
      ( vx vy vz cmnf cxr wcel cico co cle cfv cmpt crn cun ctb ctop eqid letop
      wceq sseldi wa cordt cv cpnf cioc cioo ctg leordtval eqeltrri tgclb mpbir
      wss bastg ax-mp sseqtr4i ssun1 ssun2 wrex oveq2 eqeq2d rspcev ovex sylibr
      mpan2 elrnmpti adantl wn cxp cpw clt df-ico ixxf fdmi ndmov 0opn syl6eqel
      c0 pm2.61i ) EFGZAFGZUAZEAHIZJUBKZGZVTWDVSVTBFBUCZUDUEILMZBFEWEHIZLZMZNZU
      FMZNZWCWBWLWLUGKZWCWLOGZWLWMULWNWMPGWCWMPBWFWIWKWFQWIQWKQUHZRUIWLUJUKWLOU
      MUNWOUOVTWJWLWBWJWKUPVTWIWJWBWIWFUQVTWBWGSZBFURZWBWIGVTWBWBSZWQWBQWPWRBAF
      WEASWGWBWBWEAEHUSUTVAVDBFWGWBWHWHQEWEHVBVEVCTTTVFWAVGWBVQWCEAFHFFVHFVIHBC
      DJVJHBCDVKVLVMVNWCPGVQWCGRWCVOUNVPVR $.
  $}

  $( An open interval is open in the order topology of the extended reals.
     (Contributed by Mario Carneiro, 3-Sep-2015.) $)
  iooordt $p |- ( A (,) B ) e. ( ordTop ` <_ ) $=
    ( vx cxr cv cpnf cioc co cmpt crn cmnf cico cun cioo cfv ctb wcel ctop eqid
    sselii cle cordt ctg leordtval letop eqeltrri tgclb mpbir bastg ax-mp ssun2
    wss sseqtr4i ioorebas ) CDCEZFGHIJZCDKUOLHIJZMZNJZMZUAUBOZABNHZUTUTUCOZVAUT
    PQZUTVCULVDVCRQVAVCRCUPUQUSUPSUQSUSSUDZUEUFUTUGUHUTPUIUJVEUMUSUTVBUSURUKABU
    NTT $.

  $( The real numbers are an open set in the topology of the extended reals.
     (Contributed by Mario Carneiro, 3-Sep-2015.) $)
  reordt $p |- RR e. ( ordTop ` <_ ) $=
    ( cmnf cpnf cioo co cr cle cordt cfv ioomax iooordt eqeltrri ) ABCDEFGHIABJ
    K $.

  ${
    $d a b c x y z $.  $d y F $.
    lecldbas.1 $e |- F = ( x e. ran [,] |-> ( RR* \ x ) ) $.
    $( The set of closed intervals forms a closed subbasis for the topology on
       the extended reals.  Since our definition of a basis is in terms of open
       sets, we express this by showing that the complements of closed
       intervals form an open subbasis for the topology.  (Contributed by Mario
       Carneiro, 3-Sep-2015.) $)
    lecldbas $p |- ( ordTop ` <_ ) = ( topGen ` ( fi ` ran F ) ) $=
      ( vy va vb vc cle cfv cxr cpnf cmnf cvv wcel wss cicc wceq ax-mp wbr clt
      vz cordt crn cfi ctg cv cioc cmpt cico cun eqid leordtval2 fvex cdif wrex
      co wf cxp wfn wb cpw iccf ffn ovelrn difeq2 ccld letopuni cldopn syl6eqel
      iccordt rexlimivw sylbi fmpti frn ssexi mnfxr fnovrn mp3an12 a1i id pnfxr
      mnfle pnfge df-icc df-ioc xrltnle xrletr w3a xrlelttr xrltle 3adant2 syld
      wa wi ixxun syl32anc iccmax syl6eq cin c0 iccssxr ixxdisj mp3an13 sylancr
      uneqdifeq eqcomd eqeq2d rspcev syl2anc xrex difexg elrnmpti sylibr df-ico
      mpbid xrlenlt xrltletr uncom 3eqtr3g incom syl5eq unssi fiss tgss eqsstri
      mp2an ctop letop tgfiss eqssi ) HUBIZBUCZUDIZUEIZYKDJDUFZKUGUPZUHZUCZDJLY
      OUIUPZUHZUCZUJZUDIZUEIZYNDYRUUAYRUKUUAUKULYMMNUUCYMOZUUDYNOYLUDUMYLMNUUBY
      LOUUEYLYKHUBUMPUCZYKBUQYLYKOZAUUFYKJAUFZUNZBCUUHUUFNZUUHEUFZFUFZPUPZQZFJU
      OZEJUOZUUIYKNZPJJURZUSZUUJUUPUTUURJVAZPUQUUSVBUURUUTPVCRZEFJJUUHPVDRUUOUU
      QEJUUNUUQFJUUNUUIJUUMUNZYKUUHUUMJVEUUMYKVFINUVBYKNUUKUULVJUUMYKJVGVHRVIVK
      VKVLVMUUFYKBVNRZVOYRUUAYLJYLYQUQYRYLODJYLYPYQYQUKYOJNZYPUUIQZAUUFUOZYPYLN
      UVDLYOPUPZUUFNZYPJUVGUNZQZUVFUUSLJNZUVDUVHUVAVPJJLYOPVQVRUVDUVIYPUVDUVGYP
      UJZJQZUVIYPQZUVDUVLLKPUPZJUVDUVKUVDKJNZLYOHSZYOKHSZUVLUVOQUVKUVDVPVSZUVDV
      TZUVPUVDWAVSZYOWBZYOWCZEFGUALYOKUGPHHTHPHHEFGWDZEFGWEZYOUAUFZWFZUWDUWFYOK
      WGUVKUVDUWFJNZWHUVQYOUWFTSWMLUWFTSZLUWFHSZLYOUWFWIUVKUWHUWIUWJWNUVDLUWFWJ
      WKWLWOWPWQWRUVDUVGJOUVGYPWSWTQZUVMUVNUTLYOXAUVKUVDUVPUWKVPWAEFGUALYOKUGHH
      THPUWDUWEUWGXBXCUVGYPJXEXDXOXFUVEUVJAUVGUUFUUHUVGQUUIUVIYPUUHUVGJVEXGXHXI
      AUUFUUIYPBCJMNUUIMNXJJUUHMXKRZXLXMVMJYLYQVNRJYLYTUQUUAYLODJYLYSYTYTUKUVDY
      SUUIQZAUUFUOZYSYLNUVDYOKPUPZUUFNZYSJUWOUNZQZUWNUUSUVDUVPUWPUVAWAJJYOKPVQX
      CUVDUWQYSUVDUWOYSUJZJQZUWQYSQZUVDYSUWOUJZUVOUWSJUVDUVKUVDUVPUVQUVRUXBUVOQ
      UVSUVTUWAUWBUWCEFGUALYOKPPHTHHUIHHEFGXNZUWDYOUWFXPZUWDUWHUVDUVPWHUWFYOTSU
      VRWMUWFKTSZUWFKHSZUWFYOKXQUWHUVPUXEUXFWNUVDUWFKWJWKWLLYOUWFWGWOWPYSUWOXRW
      QXSUVDUWOJOUWOYSWSZWTQUWTUXAUTYOKXAUVDUXGYSUWOWSZWTUWOYSXTUVKUVDUVPUXHWTQ
      VPWAEFGUALYOKPHTHHUIUXCUWDUXDXBXCYAUWOYSJXEXDXOXFUWMUWRAUWOUUFUUHUWOQUUIU
      WQYSUUHUWOJVEXGXHXIAUUFUUIYSBCUWLXLXMVMJYLYTVNRYBUUBYLMYCYFUUCYMMYDYFYEYK
      YGNUUGYNYKOYHUVCYLYKYIYFYJ $.
  $}

  ${
    $d a b c u x y z A $.
    $( A neighborhood of ` +oo ` contains an unbounded interval based at a real
       number.  Together with ~ xrtgioo (which describes neighborhoods of
       ` RR ` ) and ~ mnfnei , this gives all "negative" topological
       information ensuring that it is not too fine (and of course ~ iooordt
       and similar ensure that it has all the sets we want).  (Contributed by
       Mario Carneiro, 3-Sep-2015.) $)
    pnfnei $p |- ( ( A e. ( ordTop ` <_ ) /\ +oo e. A ) ->
        E. x e. RR ( x (,] +oo ) C_ A ) $=
      ( vy vu cle wcel cxr cpnf cioc co cmnf wss cr wrex eqid wa wb cc0 wbr clt
      va vb vc cordt cfv cv cmpt crn cico cun cioo ctg leordtval eleq2i wo elun
      tg2 wi wceq cvv vex elrnmpt ax-mp cif mnfxr a1i simprl ifcl sylancl pnfxr
      0xr xrmax1 sylancr ge0gtmnf syl2anc w3a simpll simprr elioc1 mpbid simp2d
      eleqtrd 0ltpnf breq1 ifboth syl32anc xrmax2 df-ioc xrlelttr ixxss1 simplr
      xrre2 eqsstr3d sstrd oveq1 sseq1d rspcev rexlimdvaa com12 sylbi wn pnfnlt
      elico1 mpan simp3 syl6bi eleq2 notbid syl5ibrcom rexlimiv pm2.21d adantrd
      mtod jaoi pnfnre neli cuni elssuni unirnioo syl6sseqr sseld mtoi sylanb
      syl ) BEUDUEZFBCGCUFZHIJZUGZUHZCGKYFUIJZUGZUHZUJZUKUHZUJZULUEZFZHBFZAUFZH
      IJZBLZAMNZYEYPBCYIYLYNYIOYLOYNOUMUNYQYRPHDUFZFZUUCBLZPZDYONUUBDBYOHUQUUFU
      UBDYOUUCYOFUUCYMFZUUCYNFZUOUUFUUBURZUUCYMYNUPUUGUUIUUHUUGUUCYIFZUUCYLFZUO
      UUIUUCYIYLUPUUJUUIUUKUUJUUCYGUSZCGNZUUIUUCUTFZUUJUUMQDVAZCGYGUUCYHUTYHOVB
      VCUUFUUMUUBUUFUULUUBCGUUFYFGFZUULPZPZRYFESZYFRVDZMFZUUTHIJZBLZUUBUURKGFZU
      UTGFZHGFZKUUTTSZUUTHTSZUVAUVDUURVEVFUURUUPRGFZUVEUUFUUPUULVGZVKUUSYFRGVHV
      IZUVFUURVJVFUURUVERUUTESZUVGUVKUURUVIUUPUVLVKUVJRYFVLVMUUTVNVOUURYFHTSZRH
      TSZUVHUURUVFUVMHHESZUURHYGFZUVFUVMUVOVPZUURHUUCYGUUDUUEUUQVQUUFUUPUULVRZW
      BUURUUPUVFUVPUVQQUVJVJYFHHVSVIVTWAWCUUSUVMUVNUVHYFRYFUUTHTWDRUUTHTWDWEVIK
      UUTHWLWFUURUVBYGBUURUUPYFUUTESZUVBYGLUVJUURUVIUUPUVSVKUVJRYFWGVMUAUBUCAYF
      UUTHITETIEUAUBUCWHZUVTYFUUTYSWIWJVOUURYGUUCBUVRUUDUUEUUQWKWMWNUUAUVCAUUTM
      YSUUTUSYTUVBBYSUUTHIWOWPWQVOWRWSWTUUKUUCYJUSZCGNZUUIUUNUUKUWBQUUOCGYJUUCY
      KUTYKOVBVCUWBUUDUUBUUEUWBUUDUUBUWAUUDXAZCGUUPUWCUWAHYJFZXAUUPUWDHYFTSZYFX
      BUUPUWDUVFKHESZUWEVPZUWEUVDUUPUWDUWGQVEKYFHXCXDUVFUWFUWEXEXFXMUWAUUDUWDUU
      CYJHXGXHXIXJXKXLWTXNWTUUHUUDUUBUUEUUHUUDUUBUUHUUDHMFHMXOXPUUHUUCMHUUHUUCY
      NXQMUUCYNXRXSXTYAYBXKXLXNWTXJYDYC $.

    $( A neighborhood of ` -oo ` contains an unbounded interval based at a real
       number.  (Contributed by Mario Carneiro, 3-Sep-2015.) $)
    mnfnei $p |- ( ( A e. ( ordTop ` <_ ) /\ -oo e. A ) ->
        E. x e. RR ( -oo [,) x ) C_ A ) $=
      ( vy vu cle wcel cxr cpnf co cmnf cico wss cr wrex wa clt wbr cc0 sylancr
      eqid va vb vc cordt cfv cv cioc cmpt crn cun cioo ctg leordtval eleq2i wo
      tg2 wi elun wceq cvv wb vex elrnmpt ax-mp wn nltmnf w3a pnfxr mpan2 simp2
      elioc1 syl6bi mtod eleq2 notbid syl5ibrcom rexlimiv pm2.21d adantrd sylbi
      cif mnfxr a1i 0xr simprl mnflt0 simpll simprr eleqtrd elico1 mpbid simp3d
      ifcl breq2 ifboth xrmin1 0re ltpnf xrlelttrd xrre2 syl32anc xrmin2 df-ico
      mp1i xrltletr ixxss2 simplr eqsstr3d sstrd oveq2 sseq1d rspcev rexlimdvaa
      syl2anc com12 jaoi mnfnre neli cuni elssuni unirnioo syl6sseqr sseld mtoi
      syl sylanb ) BEUDUEZFBCGCUFZHUGIZUHZUIZCGJYHKIZUHZUIZUJZUKUIZUJZULUEZFZJB
      FZJAUFZKIZBLZAMNZYGYRBCYKYNYPYKTYNTYPTUMUNYSYTOJDUFZFZUUEBLZOZDYQNUUDDBYQ
      JUPUUHUUDDYQUUEYQFUUEYOFZUUEYPFZUOUUHUUDUQZUUEYOYPURUUIUUKUUJUUIUUEYKFZUU
      EYNFZUOUUKUUEYKYNURUULUUKUUMUULUUEYIUSZCGNZUUKUUEUTFZUULUUOVADVBZCGYIUUEY
      JUTYJTVCVDUUOUUFUUDUUGUUOUUFUUDUUNUUFVEZCGYHGFZUURUUNJYIFZVEUUSUUTYHJPQZY
      HVFUUSUUTJGFZUVAJHEQZVGZUVAUUSHGFZUUTUVDVAVHYHHJVKVIUVBUVAUVCVJVLVMUUNUUF
      UUTUUEYIJVNVOVPVQVRVSVTUUMUUEYLUSZCGNZUUKUUPUUMUVGVAUUQCGYLUUEYMUTYMTVCVD
      UUHUVGUUDUUHUVFUUDCGUUHUUSUVFOZOZRYHEQZRYHWAZMFZJUVKKIZBLZUUDUVIUVBUVKGFZ
      UVEJUVKPQZUVKHPQUVLUVBUVIWBWCUVIRGFZUUSUVOWDUUHUUSUVFWEZUVJRYHGWMSZUVEUVI
      VHWCZUVIJRPQZJYHPQZUVPWFUVIUVBJJEQZUWBUVIJYLFZUVBUWCUWBVGZUVIJUUEYLUUFUUG
      UVHWGUUHUUSUVFWHZWIUVIUVBUUSUWDUWEVAWBUVRJYHJWJSWKWLUVJUWAUWBUVPRYHRUVKJP
      WNYHUVKJPWNWOSUVIUVKRHUVSUVQUVIWDWCUVTUVIUVQUUSUVKREQWDUVRRYHWPSRMFRHPQUV
      IWQRWRXDWSJUVKHWTXAUVIUVMYLBUVIUUSUVKYHEQZUVMYLLUVRUVIUVQUUSUWGWDUVRRYHXB
      SUAUBUCAJUVKYHKEPPKEUAUBUCXCZUWHUUAUVKYHXEXFXNUVIYLUUEBUWFUUFUUGUVHXGXHXI
      UUCUVNAUVKMUUAUVKUSUUBUVMBUUAUVKJKXJXKXLXNXMXOVTXPVTUUJUUFUUDUUGUUJUUFUUD
      UUJUUFJMFJMXQXRUUJUUEMJUUJUUEYPXSMUUEYPXTYAYBYCYDVRVSXPVTVQYEYF $.

    ordtrestixx.1 $e |- A C_ RR* $.
    ordtrestixx.2 $e |- ( ( x e. A /\ y e. A ) -> ( x [,] y ) C_ A ) $.
    $( The restriction of the less than order to an interval gives the same
       topology as the subspace topology.  (Contributed by Mario Carneiro,
       9-Sep-2015.) $)
    ordtrestixx $p |- ( ( ordTop ` <_ ) |`t A ) =
      ( ordTop ` ( <_ i^i ( A X. A ) ) ) $=
      ( vz cle cordt cfv co wceq wtru cxr wcel a1i wss cv wa wbr sseli cxp ledm
      crest ctsr letsr crab cicc iccval syl2an eqsstr3d adantl ordtrest2 eqcomd
      cin trud ) GHICUCJZGCCUAUNHIZKLUQUPLABFCGMUBGUDNLUEOCMPLDOAQZCNZBQZCNZRZU
      RFQZGSVCUTGSRFMUFZCPLVBVDURUTUGJZCUSURMNUTMNVEVDKVACMURDTCMUTDTFURUTUHUIE
      UJUKULUMUO $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The restriction of the less than order to a closed interval gives the
       same topology as the subspace topology.  (Contributed by Mario Carneiro,
       9-Sep-2015.) $)
    ordtresticc $p |- ( ( ordTop ` <_ ) |`t ( A [,] B ) ) =
      ( ordTop ` ( <_ i^i ( ( A [,] B ) X. ( A [,] B ) ) ) ) $=
      ( vx vy cicc co iccssxr cv iccss2 ordtrestixx ) CDABEFABGABCHDHIJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Limits and continuity in topological spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Cn $.
  $c CnP $.
  $c ~~>t $.  $( Limit arrow. $)

  $( Extend class notation with the class of continuous functions between
     topologies. $)
  ccn $a class Cn $.

  $( Extend class notation with the class of functions between topologies
     continuous at a given point. $)
  ccnp $a class CnP $.

  $( Extend class notation with a function on topological spaces whose value is
     the convergence relation for limit sequences in the space. $)
  clm $a class ~~>t $.

  ${
    $d j k f x y g u J $.
    $( Define a function on two topologies whose value is the set of continuous
       mappings from the first topology to the second.  Based on definition of
       continuous function in [Munkres] p. 102.  See ~ iscn for the predicate
       form.  (Contributed by NM, 17-Oct-2006.) $)
    df-cn $a |- Cn = ( j e. Top , k e. Top |->
                   { f e. ( U. k ^m U. j ) | A. y e. k ( `' f " y ) e. j } ) $.

    $( Define a function on two topologies whose value is the set of continuous
       mappings at a specified point in the first topology.  Based on Theorem
       7.2(g) of [Munkres] p. 107.  (Contributed by NM, 17-Oct-2006.) $)
    df-cnp $a |- CnP = ( j e. Top , k e. Top |-> ( x e. U. j |->
                  { f e. ( U. k ^m U. j ) | A. y e. k
          ( ( f ` x ) e. y -> E. g e. j ( x e. g /\ ( f " g ) C_ y ) ) } ) ) $.

    $( Define a function on topologies whose value is the convergence relation
       for sequences into the given topological space.  Although ` f ` is
       typically a sequence (a function from an upperset of integers) with
       values in the topological space, it need not be.  Note, however, that
       the limit property concerns only values at integers, so that the
       real-valued function ` ( x e. RR |-> ( sin `` ( _pi x. x ) ) ) `
       converges to zero (in the standard topology on the reals) with this
       definition.  (Contributed by NM, 7-Sep-2006.) $)
    df-lm $a |- ~~>t = ( j e. Top |-> { <. f , x >. |
       ( f e. ( U. j ^pm CC ) /\ x e. U. j /\
         A. u e. j ( x e. u -> E. y e. ran ZZ>= ( f |` y ) : y --> u ) ) } ) $.

    $( The topological space convergence relation is a relation.  (Contributed
       by NM, 7-Dec-2006.)  (Revised by Mario Carneiro, 14-Nov-2013.) $)
    lmrel $p |- Rel ( ~~>t ` J ) $=
      ( vf vj vx vu vy cv cuni cc cpm co wcel cres wf cuz crn wrex wi wral w3a
      ctop clm df-lm relmptopab ) BGZCGZHZIJKLDGZUGLUHEGZLFGZUIUEUJMNFOPQREUFST
      CBDUAAUBDFEBCUCUD $.

    $( Reverse closure for the convergence relation.  (Contributed by Mario
       Carneiro, 7-Sep-2015.) $)
    lmrcl $p |- ( F ( ~~>t ` J ) P -> J e. Top ) $=
      ( vj vf vx vu vy clm cfv wbr cdm ctop cv cuni cc cpm co wcel cres cuz crn
      wf wrex wi wral w3a copab df-lm dmmptss cop df-br elfvdm sylbi sseldi ) B
      ACIJZKZILZMCDMENZDNZOZPQRSFNZVASVBGNZSHNZVCUSVDTUCHUAUBUDUEGUTUFUGEFUHIFH
      GEDUIUJUQBAUKZUPSCURSBAUPULVECIUMUNUO $.
  $}

  ${
    $d f j k w x y K $.  $d f j k w x y X $.  $d f j k w x y Y $.
    $d f j k u v w x y J $.
    $( The relation "sequence ` f ` converges to point ` y ` " in a metric
       space.  (Contributed by NM, 7-Sep-2006.)  (Revised by Mario Carneiro,
       21-Aug-2015.) $)
    lmfval $p |- ( J e. ( TopOn ` X ) -> ( ~~>t ` J ) =
      { <. f , x >. | ( f e. ( X ^pm CC ) /\ x e. X /\
        A. u e. J ( x e. u -> E. y e. ran ZZ>= ( f |` y ) : y --> u ) ) } ) $=
      ( vj wcel cv cuni cc cpm co wral w3a copab ctop cvv wceq wa ctopon cfv wf
      cres cuz crn wrex wi clm cmpt df-lm a1i simpr unieqd adantr eqtr4d oveq1d
      toponuni eleq2d raleqdv opabbidv topontop cxp wss df-3an opabbii opabssxp
      3anbi123d eqsstri ovex toponmax xpexg sylancr ssexg fvmptd ) EFUAUBHZGEDI
      ZGIZJZKLMZHZAIZVSHZWBCIZHBIZWDVQWEUDUCBUEUFUGUHZCVRNZOZDAPZVQFKLMZHZWBFHZ
      WFCENZOZDAPZQUIRUIGQWIUJSVPABCDGUKULVPVRESZTZWHWNDAWQWAWKWCWLWGWMWQVTWJVQ
      WQVSFKLWQVSEJZFWQVREVPWPUMZUNVPFWRSWPFEURUOUPZUQUSWQVSFWBWTUSWQWFCVREWSUT
      VHVAFEVBVPWOWJFVCZVDXARHZWORHWOWKWLTWMTZDAPXAWNXCDAWKWLWMVEVFWMDAWJFVGVIV
      PWJRHFEHXBFKLVJFEVKWJFREVLVMWOXARVNVMVO $.

    $( The set of all continuous functions from topology ` J ` to topology
       ` K ` .  (Contributed by NM, 17-Oct-2006.)  (Revised by Mario Carneiro,
       21-Aug-2015.) $)
    cnfval $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) ->
      ( J Cn K ) = { f e. ( Y ^m X ) | A. y e. K ( `' f " y ) e. J } ) $=
      ( vj vk ctopon cfv wcel wa ctop cv wral cuni cmap co crab wceq ccnv cmpt2
      cima ccn cvv df-cn simprr unieqd toponuni ad2antlr eqtr4d simprl ad2antrr
      a1i oveq12d eleq2d raleqbidv rabeqbidv topontop adantr ovex rabex ovmpt2d
      adantl ) CEIJKZDFIJKZLZGHCDMMBNUAANUCZGNZKZAHNZOZBVKPZVIPZQRZSZVHCKZADOZB
      FEQRZSZUDUEUDGHMMVPUBTVGABGHUFUNVGVICTZVKDTZLZLZVLVRBVOVSWDVMFVNEQWDVMDPZ
      FWDVKDVGWAWBUGZUHVFFWETVEWCFDUIUJUKWDVNCPZEWDVICVGWAWBULZUHVEEWGTVFWCECUI
      UMUKUOWDVJVQAVKDWFWDVICVHWHUPUQURVECMKVFECUSUTVFDMKVEFDUSVDVTUEKVGVRBVSFE
      QVAVBUNVC $.

    $( The function mapping the points in a topology ` J ` to the set of all
       functions from ` J ` to topology ` K ` continuous at that point.
       (Contributed by NM, 17-Oct-2006.)  (Revised by Mario Carneiro,
       21-Aug-2015.) $)
    cnpfval $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) ->
        ( J CnP K ) = ( x e. X |-> { f e. ( Y ^m X ) | A. w e. K
        ( ( f ` x ) e. w -> E. v e. J ( x e. v /\ ( f " v ) C_ w ) ) } ) ) $=
      ( vj vk cfv wcel wa ctop cv cuni cmap cvv wceq a1i ctopon cima wrex wi co
      wss wral crab cmpt ccnp cmpt2 df-cnp simprl unieqd toponuni eqtr4d simprr
      ad2antrr ad2antlr oveq12d rexeqdv imbi2d raleqbidv topontop adantr adantl
      rabeqbidv mpteq12dv cpw wf ovex elpw2 mpbir eqid fmptd toponmax pwex fex2
      ssrab2 syl3anc ovmpt2d ) EGUAKLZFHUAKLZMZIJEFNNAIOZPZAOZDOZKBOZLZWGCOZLWH
      WKUBWIUFMZCWEUCZUDZBJOZUGZDWOPZWFQUEZUHZUIZAGWJWLCEUCZUDZBFUGZDHGQUEZUHZU
      IZUJRUJIJNNWTUKSWDABDCIJULTWDWEESZWOFSZMZMZAWFWSGXEXJWFEPZGXJWEEWDXGXHUMZ
      UNWBGXKSWCXIGEUOURUPZXJWPXCDWRXDXJWQHWFGQXJWQFPZHXJWOFWDXGXHUQZUNWCHXNSWB
      XIHFUOUSUPXMUTXJWNXBBWOFXOXJWMXAWJXJWLCWEEXLVAVBVCVGVHWBENLWCGEVDVEWCFNLW
      BHFVDVFWDGXDVIZXFVJGELZXPRLZXFRLWDAGXEXPXFXEXPLZWDWGGLMXSXEXDUFXCDXDVSXEX
      DHGQVKZVLVMTXFVNVOWBXQWCGEVPVEXRWDXDXTVQTGXPXFERVRVTWA $.
  $}

  ${
    $d f g j k v w x y J $.  $d f j k v w x y K $.  $d f j k v w x y X $.
    $d f x y F $.  $d f v x y P $.  $d f j k v w x y Y $.
    $( The predicate " ` F ` is a continuous function from topology ` J ` to
       topology ` K ` ."  Definition of continuous function in [Munkres]
       p. 102.  (Contributed by NM, 17-Oct-2006.)  (Revised by Mario Carneiro,
       21-Aug-2015.) $)
    iscn $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) ->
    ( F e. ( J Cn K ) <-> ( F : X --> Y /\ A. y e. K ( `' F " y ) e. J ) ) ) $=
      ( vf ctopon cfv wcel wa ccn co cv ccnv cima wral cmap crab toponmax cnveq
      wf cnfval eleq2d wceq imaeq1d eleq1d ralbidv elmapg syl2anr anbi1d syl5bb
      elrab wb bitrd ) CEHIJZDFHIJZKZBCDLMZJBGNZOZANZPZCJZADQZGFERMZSZJZEFBUBZB
      OZVBPZCJZADQZKZURUSVGBAGCDEFUCUDVHBVFJZVMKURVNVEVMGBVFUTBUEZVDVLADVPVCVKC
      VPVAVJVBUTBUAUFUGUHUMURVOVIVMUQFDJECJVOVIUNUPFDTECTFEBDCUIUJUKULUO $.

    $( The set of all functions from topology ` J ` to topology ` K ` that are
       continuous at a point ` P ` .  (Contributed by NM, 17-Oct-2006.)
       (Revised by Mario Carneiro, 11-Nov-2013.) $)
    cnpval $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) /\ P e. X ) ->
      ( ( J CnP K ) ` P ) = { f e. ( Y ^m X ) | A. y e. K
            ( ( f ` P ) e. y -> E. x e. J ( P e. x /\ ( f " x ) C_ y ) ) } ) $=
      ( vv ctopon cfv wcel co cv wa wrex wi wral cmap crab ccnp cima wss fveq1d
      wceq cmpt cnpfval fveq2 eleq1d eleq1 rexbidv imbi12d ralbidv rabbidv eqid
      anbi1d ovex rabex fvmpt sylan9eq 3impa ) EGJKLZFHJKLZCGLZCEFUAMZKZCDNZKZB
      NZLZCANZLZVGVKUBVIUCZOZAEPZQZBFRZDHGSMZTZUEVBVCOZVDVFCIGINZVGKZVILZWAVKLZ
      VMOZAEPZQZBFRZDVRTZUFZKVSVTCVEWJIBADEFGHUGUDICWIVSGWJWACUEZWHVQDVRWKWGVPB
      FWKWCVJWFVOWKWBVHVIWACVGUHUIWKWEVNAEWKWDVLVMWACVKUJUPUKULUMUNWJUOVQDVRHGS
      UQURUSUTVA $.

    $( The predicate " ` F ` is a continuous function from topology ` J ` to
       topology ` K ` at point ` P ` ."  Based on Theorem 7.2(g) of [Munkres]
       p. 107.  (Contributed by NM, 17-Oct-2006.)  (Revised by Mario Carneiro,
       21-Aug-2015.) $)
    iscnp $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) /\ P e. X ) ->
      ( F e. ( ( J CnP K ) ` P ) <-> ( F : X --> Y /\ A. y e. K
          ( ( F ` P ) e. y -> E. x e. J ( P e. x /\ ( F " x ) C_ y ) ) ) ) ) $=
      ( vf ctopon cfv wcel co cv cima wss wa wrex wi wral w3a ccnp cmap crab wf
      cnpval eleq2d wb wceq eleq1d imaeq1 sseq1d anbi2d rexbidv imbi12d ralbidv
      fveq1 elrab toponmax elmapg syl2anr anbi1d syl5bb 3adant3 bitrd ) EGJKLZF
      HJKLZCGLZUAZDCEFUBMKZLDCINZKZBNZLZCANZLZVKVOOZVMPZQZAERZSZBFTZIHGUCMZUDZL
      ZGHDUEZCDKZVMLZVPDVOOZVMPZQZAERZSZBFTZQZVIVJWDDABCIEFGHUFUGVFVGWEWOUHVHWE
      DWCLZWNQVFVGQZWOWBWNIDWCVKDUIZWAWMBFWRVNWHVTWLWRVLWGVMCVKDUQUJWRVSWKAEWRV
      RWJVPWRVQWIVMVKDVOUKULUMUNUOUPURWQWPWFWNVGHFLGELWPWFUHVFHFUSGEUSHGDFEUTVA
      VBVCVDVE $.

    iscn.1 $e |- X = U. J $.
    iscn.2 $e |- Y = U. K $.
    $( The predicate " ` F ` is a continuous function from topology ` J ` to
       topology ` K ` ."  Definition of continuous function in [Munkres]
       p. 102.  (Contributed by Mario Carneiro, 21-Aug-2015.) $)
    iscn2 $p |- ( F e. ( J Cn K ) <-> ( ( J e. Top /\ K e. Top ) /\
               ( F : X --> Y /\ A. y e. K ( `' F " y ) e. J ) ) ) $=
      ( vj vk vf ccn co wcel ctop wa ccnv cv cima wral cuni cmap df-cn elmpt2cl
      wf crab ctopon cfv wb toptopon iscn syl2anb biadan2 ) BCDLMNZCONZDONZPEFB
      UEBQARZSCNADTPZIJOOKRQUQSIRZNAJRZTKUTUAUSUAUBMUFCDLBAKIJUCUDUOCEUGUHNDFUG
      UHNUNURUIUPCEGUJDFHUJABCDEFUKULUM $.

    $( The predicate " ` F ` is a continuous function from topology ` J ` to
       topology ` K ` at point ` P ` ."  Based on Theorem 7.2(g) of [Munkres]
       p. 107.  (Contributed by Mario Carneiro, 21-Aug-2015.) $)
    iscnp2 $p |- ( F e. ( ( J CnP K ) ` P ) <->
      ( ( J e. Top /\ K e. Top /\ P e. X ) /\ ( F : X --> Y /\ A. y e. K
          ( ( F ` P ) e. y -> E. x e. J ( P e. x /\ ( F " x ) C_ y ) ) ) ) ) $=
      ( vf ccnp cfv wcel ctop cv wa wral c0 cvv vj vk vg vw vv co w3a cima wrex
      wf wss wi cop cxp cdm wceq n0i df-ov ndmfv syl5eq fveq1d 0fv syl6eq nsyl2
      wn cuni cmap crab cmpt df-cnp cpw ssrab2 ovex elpw2 mpbir rgenw eqid fmpt
      mpbi vuniex pwex mp3an dmmpt2 syl6eleq opelxp simpld simprd elfvdm ctopon
      fex2 sylib toptopon cnpfval syl2anb dmeqd rabex dmmptg ax-mp eleqtrd 3jca
      syl wb biid iscnp syl3anb biadan2 ) DCEFLUFZMZNZEONZFONZCGNZUGGHDUJCDMBPZ
      NCAPZNDXNUHXMUKQAEUIULBFRQZXIXJXKXLXIXJXKXIEFUMZOOUNZNXJXKQZXIXPLUOZXQXIX
      HSUPXPXSNZXHDUQXTVEZXHCSMSYACXGSYAXGXPLMSEFLURXPLUSUTVACVBVCVDUAUBOOAUAPZ
      VFZXNKPZMZXMNXNUCPZNYDYFUHXMUKQUCYBUIULBUBPZRZKYGVFZYCVGUFZVHZVIZLABKUCUA
      UBVJYCYJVKZYLUJZYCTNYMTNYLTNYKYMNZAYCRYNYOAYCYOYKYJUKYHKYJVLYKYJYIYCVGVMZ
      VNVOVPAYCYMYKYLYLVQVRVSUAVTYJYPWAYCYMYLTTWJWBWCWDEFOOWEWKZWFXIXJXKYQWGXIC
      XGUOZGDCXGWHXIYRAGYEUDPZNXNUEPZNYDYTUHYSUKQUEEUIULUDFRZKHGVGUFZVHZVIZUOZG
      XIXGUUDXIXRXGUUDUPZYQXJEGWIMNZFHWIMNZUUFXKEGIWLZFHJWLZAUDUEKEFGHWMWNXAWOU
      UCTNZAGRUUEGUPUUKAGUUAKUUBHGVGVMWPVPAGUUCTWQWRVCWSWTXJUUGXKUUHXLXLXIXOXBU
      UIUUJXLXCABCDEFGHXDXEXF $.
  $}

  ${
    $d x y F $.  $d x y J $.  $d x y K $.  $d x y X $.  $d x y Y $.
    $d P x y $.
    $( Reverse closure for a continuous function.  (Contributed by Mario
       Carneiro, 21-Aug-2015.) $)
    cntop1 $p |- ( F e. ( J Cn K ) -> J e. Top ) $=
      ( vx ccn co wcel ctop wa cuni wf ccnv cima wral eqid iscn2 simplbi simpld
      cv ) ABCEFGZBHGZCHGZTUAUBIBJZCJZAKALDSMBGDCNIDABCUCUDUCOUDOPQR $.

    $( Reverse closure for a continuous function.  (Contributed by Mario
       Carneiro, 21-Aug-2015.) $)
    cntop2 $p |- ( F e. ( J Cn K ) -> K e. Top ) $=
      ( vx ccn co wcel ctop wa cuni wf ccnv cima wral eqid iscn2 simplbi simprd
      cv ) ABCEFGZBHGZCHGZTUAUBIBJZCJZAKALDSMBGDCNIDABCUCUDUCOUDOPQR $.

    $( Reverse closure for a function continuous at a point.  (Contributed by
       Mario Carneiro, 21-Aug-2015.) $)
    cnptop1 $p |- ( F e. ( ( J CnP K ) ` P ) -> J e. Top ) $=
      ( vy vx ccnp co cfv wcel ctop cuni w3a wf cv cima wss wa wrex eqid iscnp2
      wi wral simplbi simp1d ) BACDGHIJZCKJZDKJZACLZJZUFUGUHUJMUIDLZBNABIEOZJAF
      OZJBUMPULQRFCSUBEDUCRFEABCDUIUKUITUKTUAUDUE $.

    $( Reverse closure for a function continuous at a point.  (Contributed by
       Mario Carneiro, 21-Aug-2015.) $)
    cnptop2 $p |- ( F e. ( ( J CnP K ) ` P ) -> K e. Top ) $=
      ( vy vx ccnp co cfv wcel ctop cuni w3a wf cv cima wss wa wrex eqid iscnp2
      wi wral simplbi simp2d ) BACDGHIJZCKJZDKJZACLZJZUFUGUHUJMUIDLZBNABIEOZJAF
      OZJBUMPULQRFCSUBEDUCRFEABCDUIUKUITUKTUAUDUE $.

    $( The predicate " ` F ` is a continuous function from topology ` J ` to
       topology ` K ` at point ` P ` ."  (Contributed by NM, 15-May-2007.) $)
    iscnp3 $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) /\ P e. X ) ->
                   ( F e. ( ( J CnP K ) ` P ) <-> ( F : X --> Y /\ A. y e. K
       ( ( F ` P ) e. y -> E. x e. J ( P e. x /\ x C_ ( `' F " y ) ) ) ) ) ) $=
      ( ctopon cfv wcel cv cima wss wa wrex wi wral wb ad2antlr ccnp co wf ccnv
      w3a iscnp wfun cdm ffun toponss adantlr wceq fdm funimass3 syl2anc anbi2d
      sseqtr4d rexbidva imbi2d ralbidv pm5.32da 3ad2ant1 bitrd ) EGIJKZFHIJKZCG
      KZUEDCEFUAUBJKGHDUCZCDJBLZKZCALZKZDVJMVHNZOZAEPZQZBFRZOZVGVIVKVJDUDVHMNZO
      ZAEPZQZBFRZOZABCDEFGHUFVDVEVQWCSVFVDVGVPWBVDVGOZVOWABFWDVNVTVIWDVMVSAEWDV
      JEKZOZVLVRVKWFDUGZVJDUHZNVLVRSVGWGVDWEGHDUITWFVJGWHVDWEVJGNVGVJEGUJUKVGWH
      GULVDWEGHDUMTUQVJVHDUNUOUPURUSUTVAVBVC $.

    iscnp2.1 $e |- X = U. J $.
    $( Reverse closure for a function continuous at a point.  (Contributed by
       Mario Carneiro, 21-Aug-2015.) $)
    cnprcl $p |- ( F e. ( ( J CnP K ) ` P ) -> P e. X ) $=
      ( vy vx ccnp co cfv wcel ctop w3a cuni wf cv cima wss wa wrex wral iscnp2
      wi eqid simplbi simp3d ) BACDIJKLZCMLZDMLZAELZUHUIUJUKNEDOZBPABKGQZLAHQZL
      BUNRUMSTHCUAUDGDUBTHGABCDEULFULUEUCUFUG $.

    iscnp2.2 $e |- Y = U. K $.
    $( A continuous function is a mapping.  (Contributed by FL, 8-Dec-2006.)
       (Revised by Mario Carneiro, 21-Aug-2015.) $)
    cnf $p |- ( F e. ( J Cn K ) -> F : X --> Y ) $=
      ( vx ccn co wcel wf ccnv cv cima wral ctop wa iscn2 simprbi simpld ) ABCI
      JKZDEALZAMHNOBKHCPZUBBQKCQKRUCUDRHABCDEFGSTUA $.

    $( A continuous function at point ` P ` is a mapping.  (Contributed by FL,
       17-Nov-2006.)  (Revised by Mario Carneiro, 21-Aug-2015.) $)
    cnpf $p |- ( F e. ( ( J CnP K ) ` P ) -> F : X --> Y ) $=
      ( vy vx ccnp co cfv wcel wf cv cima wss wa ctop wrex wi w3a iscnp2 simpld
      wral simprbi ) BACDKLMNZEFBOZABMIPZNAJPZNBUKQUJRSJCUAUBIDUFZUHCTNDTNAENUC
      UIULSJIABCDEFGHUDUGUE $.

    $( The value of a continuous function from ` J ` to ` K ` at point ` P `
       belongs to the underlying set of topology ` K ` .  (Contributed by FL,
       27-Dec-2006.)  (Revised by Mario Carneiro, 21-Aug-2015.) $)
    cnpcl $p |- ( ( F e. ( ( J CnP K ) ` P ) /\ A e. X ) -> ( F ` A ) e. Y ) $=
      ( ccnp co cfv wcel cnpf ffvelrnda ) CBDEJKLMFGACBCDEFGHINO $.
  $}

  ${
    $d x F $.  $d x J $.  $d x K $.  $d x X $.  $d x Y $.
    $( A continuous function is a mapping.  (Contributed by Mario Carneiro,
       21-Aug-2015.) $)
    cnf2 $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) /\
        F e. ( J Cn K ) ) -> F : X --> Y ) $=
      ( vx ctopon cfv wcel ccn co wf wa ccnv cv cima wral iscn simprbda 3impa )
      BDGHIZCEGHIZABCJKIZDEALZUAUBMUCUDANFOPBIFCQFABCDERST $.

    $( A continuous function at point ` P ` is a mapping.  (Contributed by
       Mario Carneiro, 21-Aug-2015.) $)
    cnpf2 $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) /\
        F e. ( ( J CnP K ) ` P ) ) -> F : X --> Y ) $=
      ( ctopon cfv wcel ccnp co wf cuni eqid cnpf toponuni feq2d feq3d sylan9bb
      wa syl5ibr 3impia ) CEGHIZDFGHIZBACDJKHIZEFBLZUEUFUCUDTCMZDMZBLZABCDUGUHU
      GNUHNOUCUFUGFBLUDUIUCEUGFBECPQUDFUHBUGFDPRSUAUB $.

    $( Reverse closure for a function continuous at a point.  (Contributed by
       Mario Carneiro, 21-Aug-2015.) $)
    cnprcl2 $p |- ( ( J e. ( TopOn ` X ) /\ F e. ( ( J CnP K ) ` P ) ) ->
        P e. X ) $=
      ( ctopon cfv wcel ccnp co wa cuni eqid cnprcl adantl wceq toponuni adantr
      eleqtrrd ) CEFGHZBACDIJGHZKACLZEUAAUBHTABCDUBUBMNOTEUBPUAECQRS $.
  $}

  ${
    $d x y z B $.  $d x y z F $.  $d x y z J $.  $d x y z K $.  $d x y z P $.
    $d x z ph $.  $d x y z X $.  $d x y z Y $.
    tgcn.1 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    tgcn.3 $e |- ( ph -> K = ( topGen ` B ) ) $.
    tgcn.4 $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    $( The continuity predicate when the range is given by a basis for a
       topology.  (Contributed by Mario Carneiro, 7-Feb-2015.)  (Revised by
       Mario Carneiro, 22-Aug-2015.) $)
    tgcn $p |- ( ph -> ( F e. ( J Cn K ) <->
      ( F : X --> Y /\ A. y e. B ( `' F " y ) e. J ) ) ) $=
      ( vx vz wcel cv wral wa wi ctop syl ccn co wf ccnv cima ctopon wb syl2anc
      cfv iscn wss ctg ctb topontop eqeltrrd tgclb sylibr bastg sseqtr4d ssralv
      cuni wceq wex eleq2d eltg3 bitrd ciun iunopn sylan9r imaeq2 imauni syl6eq
      eleq1d imbi2d syl5ibrcom expimpd exlimdv sylbid imp cbvralv syl6ib impbid
      ex ralrimdva anbi2d ) ADEFUAUBNZGHDUCZDUDZBOZUEZENZBFPZQZWGWKBCPZQAEGUFUI
      NZFHUFUINZWFWMUGIKBDEFGHUJUHAWLWNWGAWLWNACFUKWLWNRACCULUIZFACUMNZCWQUKAWQ
      SNWRAFWQSJAWPFSNKHFUNTUOCUPUQZCUMURTJUSWKBCFUTTAWNWHLOZUEZENZLFPWLAWNXBLF
      AWTFNZWNXBRZAXCMOZCUKZWTXEVAZVBZQZMVCZXDAXCWTWQNZXJAFWQWTJVDAWRXKXJUGWSMW
      TCUMVETVFAXIXDMAXFXHXDAXFQXDXHWNBXEWJVGZENZRXFWNWKBXEPZAXMWKBXECUTAESNZXN
      XMRAWOXOIGEUNTXOXNXMBXEWJEVHWCTVIXHXBXMWNXHXAXLEXHXAWHXGUEXLWTXGWHVJBWHXE
      VKVLVMVNVOVPVQVRVSWDXBWKLBFWTWIVBXAWJEWTWIWHVJVMVTWAWBWEVF $.

    tgcnp.5 $e |- ( ph -> P e. X ) $.
    $( The "continuous at a point" predicate when the range is given by a basis
       for a topology.  (Contributed by Mario Carneiro, 3-Feb-2015.)  (Revised
       by Mario Carneiro, 22-Aug-2015.) $)
    tgcnp $p |- ( ph ->
                   ( F e. ( ( J CnP K ) ` P ) <-> ( F : X --> Y /\ A. y e. B
       ( ( F ` P ) e. y -> E. x e. J ( P e. x /\ ( F " x ) C_ y ) ) ) ) ) $=
      ( cfv wcel wss wa wi syl vz ccnp co wf cv cima wrex wral wb iscnp syl3anc
      ctopon ctg ctb ctop topontop eqeltrrd tgclb sylibr sseqtr4d ssralv anim2d
      bastg sylbid eleq2d biimpa tg2 r19.29 sstr expcom reximdv com12 rexlimivw
      imim2i imp32 ex com23 ralrimdva sylibrd impbid ) AFEGHUBUCOPZIJFUDZEFOZCU
      EZPZEBUEZPZFWFUFZWDQZRZBGUGZSZCDUHZRZAWAWBWLCHUHZRZWNAGIULOPZHJULOPZEIPZW
      AWPUIKMNBCEFGHIJUJUKAWOWMWBADHQWOWMSADDUMOZHADUNPZDWTQAWTUOPXAAHWTUOLAWRH
      UOPMJHUPTUQDURUSDUNVCTLUTWLCDHVATVBVDAWNWBWCUAUEZPZWGWHXBQZRZBGUGZSZUAHUH
      ZRZWAAWMXHWBAWMXGUAHAXBHPZRXBWTPZWMXGSAXJXKAHWTXBLVEVFXKXCWMXFXKXCWMXFSZX
      KXCRWEWDXBQZRZCDUGZXLCXBDWCVGWMXOXFWMXORWLXNRZCDUGXFWLXNCDVHXPXFCDWLWEXMX
      FWKXMXFSWEXMWKXFXMWJXEBGXMWIXDWGWIXMXDWHWDXBVIVJVBVKVLVNVOVMTVJTVPVQTVRVB
      AWQWRWSWAXIUIKMNBUAEFGHIJUJUKVSVT $.
  $}

  ${
    $d x y z B $.  $d x y z F $.  $d x y z J $.  $d x y z X $.  $d x y z Y $.
    $d y K $.  $d x z ph $.  $d z V $.
    subbascn.1 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    subbascn.2 $e |- ( ph -> B e. V ) $.
    subbascn.3 $e |- ( ph -> K = ( topGen ` ( fi ` B ) ) ) $.
    subbascn.4 $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    $( The continuity predicate when the range is given by a subbasis for a
       topology.  (Contributed by Mario Carneiro, 7-Feb-2015.)  (Revised by
       Mario Carneiro, 22-Aug-2015.) $)
    subbascn $p |- ( ph -> ( F e. ( J Cn K ) <-> ( F : X --> Y /\
        A. y e. B ( `' F " y ) e. J ) ) ) $=
      ( vx vz wcel wral wa cfn cvv ccn co wf ccnv cv cima cfi cfv wss wi adantr
      tgcn ssfii ssralv 3syl cint wceq cpw cin wrex vex elfi sylancr w3a simpr2
      wb ciin imaeq2d wfun wne ffun ad2antlr syl6eqelr sylibr intpreima syl2anc
      intex eqtrd ctopon topontop syl ad2antrr inss2 simpr1 sseldi inss1 elpwid
      c0 ctop simpr3 sylc iinopn syl13anc eqeltrd 3exp2 rexlimdv com23 ralrimdv
      sylbid imaeq2 eleq1d cbvralv syl6ibr impbid pm5.32da bitrd ) ADEFUAUBPHID
      UCZDUDZBUEZUFZEPZBCUGUHZQZRXGXKBCQZRABXLDEFHIJLMULAXGXMXNAXGRZXMXNXOCGPZC
      XLUIXMXNUJAXPXGKUKZCGUMXKBCXLUNUOXOXNXHNUEZUFZEPZNXLQXMXOXNXTNXLXOXRXLPZX
      NXTXOYAXROUEZUPZUQZOCURZSUSZUTZXNXTUJZXOXRTPXPYAYGVFNVAZXQOXRCTGVBVCXOYDY
      HOYFXOYBYFPZYDXNXTXOYJYDXNVDZRZXSBYBXJVGZEYLXSXHYCUFZYMYLXRYCXHXOYJYDXNVE
      ZVHYLDVIZYBWHVJZYNYMUQXGYPAYKHIDVKVLYLYCTPYQYLYCXRTYOYIVMYBVQVNZBYBDVOVPV
      RYLEWIPZYBSPYQXKBYBQZYMEPAYSXGYKAEHVSUHPYSJHEVTWAWBYLYFSYBYESWCXOYJYDXNWD
      ZWEYRYLYBCUIXNYTYLYBCYLYFYEYBYESWFUUAWEWGXOYJYDXNWJXKBYBCUNWKBYBXJEWLWMWN
      WOWPWSWQWRXKXTBNXLXIXRUQXJXSEXIXRXHWTXAXBXCXDXEXF $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y J $.  $d x y K $.  $d x y P $.  $d x X $.
    $( The identity function is a continuous function from one topology to
       another topology on the same set iff the domain is finer than the
       codomain.  (Contributed by Mario Carneiro, 21-Mar-2015.)  (Revised by
       Mario Carneiro, 21-Aug-2015.) $)
    ssidcn $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` X ) ) ->
      ( ( _I |` X ) e. ( J Cn K ) <-> K C_ J ) ) $=
      ( vx ctopon cfv wcel wa cid cres ccn co ccnv cv cima wral wf syl6bbr wceq
      wss iscn wf1o f1oi f1of biantrur cnvresid imaeq1i elssuni adantl toponuni
      ax-mp cuni ad2antlr sseqtr4d resiima syl5eq eleq1d ralbidva dfss3 bitrd
      syl ) ACEFZGZBVBGZHZICJZABKLGZVFMZDNZOZAGZDBPZBATZVEVGCCVFQZVLHVLDVFABCCU
      AVNVLCCVFUBVNCUCCCVFUDUKUERVEVLVIAGZDBPVMVEVKVODBVEVIBGZHZVJVIAVQVJVFVIOZ
      VIVHVFVICUFUGVQVICTVRVISVQVIBULZCVPVIVSTVEVIBUHUIVDCVSSVCVPCBUJUMUNCVIUOV
      AUPUQURDBAUSRUT $.

    $( Property of a function continuous at a point.  (Contributed by FL,
       31-Dec-2006.) $)
    cnpimaex $p |- ( ( F e. ( ( J CnP K ) ` P ) /\ A e. K /\ ( F ` P ) e. A )
       -> E. x e. J ( P e. x /\ ( F " x ) C_ A ) ) $=
      ( vy ccnp co cfv wcel cv cima wss wa wrex wi cuni ctop eqid wf w3a iscnp2
      wral simprbi simprd wceq eleq2 sseq2 anbi2d rexbidv imbi12d rspccv 3imp
      syl ) DCEFHIJKZBFKZCDJZBKZCALZKZDUTMZBNZOZAEPZUPURGLZKZVAVBVFNZOZAEPZQZGF
      UDZUQUSVEQZQUPERZFRZDUAZVLUPESKFSKCVNKUBVPVLOAGCDEFVNVOVNTVOTUCUEUFVKVMGB
      FVFBUGZVGUSVJVEVFBURUHVQVIVDAEVQVHVCVAVFBVBUIUJUKULUMUOUN $.

    $( A restricted identity function is a continuous function.  (Contributed
       by FL, 27-Dec-2006.)  (Proof shortened by Mario Carneiro,
       21-Mar-2015.) $)
    idcn $p |- ( J e. ( TopOn ` X ) -> ( _I |` X ) e. ( J Cn J ) ) $=
      ( ctopon cfv wcel cid cres ccn co wss ssid wb ssidcn anidms mpbiri ) ABCD
      EZFBGAAHIEZAAJZAKPQRLAABMNO $.
  $}

  ${
    $d f j k u x y z F $.  $d f j k u x y z J $.  $d j k u ph $.  $d j k u Z $.
    $d j M $.  $d f j k u x z P $.  $d f j k u x y z X $.
    lmbr.2 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    $( Express the binary relation "sequence ` F ` converges to point
       ` P ` " in a topological space.  Definition 1.4-1 of [Kreyszig] p. 25.
       The condition ` F C_ ( CC X. X ) ` allows us to use objects more general
       than sequences when convenient; see the comment in ~ df-lm .
       (Contributed by Mario Carneiro, 14-Nov-2013.) $)
    lmbr $p |- ( ph -> ( F ( ~~>t ` J ) P <->
      ( F e. ( X ^pm CC ) /\ P e. X /\ A. u e. J ( P e. u ->
        E. y e. ran ZZ>= ( F |` y ) : y --> u ) ) ) ) $=
      ( vf vx cfv wbr cv wcel cres wf wi wral wceq wa clm cc cpm co cuz crn w3a
      wrex copab ctopon lmfval breqd reseq1 feq1d rexbidv imbi2d ralbidv imbi1d
      syl eleq1 sylan9bb df-3an opabbii brab2a bitr4i syl6bb ) AEDFUAKZLEDIMZGU
      BUCUDZNZJMZGNZVKCMZNZBMZVMVHVOOZPZBUEUFZUHZQZCFRZUGZIJUIZLZEVINZDGNZDVMNZ
      VOVMEVOOZPZBVRUHZQZCFRZUGZAVGWCEDAFGUJKNVGWCSHJBCIFGUKUSULWDWEWFTWLTWMWAW
      LIJEDVIGWCVHESZWAVNWJQZCFRVKDSZWLWNVTWOCFWNVSWJVNWNVQWIBVRWNVOVMVPWHVHEVO
      UMUNUOUPUQWPWOWKCFWPVNWGWJVKDVMUTURUQVAWBVJVLTWATIJVJVLWAVBVCVDWEWFWLVBVE
      VF $.

    lmbr2.4 $e |- Z = ( ZZ>= ` M ) $.
    lmbr2.5 $e |- ( ph -> M e. ZZ ) $.
    $( Express the binary relation "sequence ` F ` converges to point
       ` P ` " in a metric space using an arbitrary upper set of integers.
       (Contributed by Mario Carneiro, 14-Nov-2013.) $)
    lmbr2 $p |- ( ph -> ( F ( ~~>t ` J ) P <->
            ( F e. ( X ^pm CC ) /\ P e. X /\ A. u e. J ( P e. u -> E. j e. Z
              A. k e. ( ZZ>= ` j ) ( k e. dom F /\ ( F ` k ) e. u ) ) ) ) ) $=
      ( vz wcel cv cuz wrex wa cz clm cfv wbr cc cpm co cres wf crn wi wral w3a
      cdm lmbr cpw wfn wb uzf ffn wceq reseq2 id rexrn mp2b wfun pmfun ad2antrl
      feq12d ffvresb rexbidv adantr rexuz3 bitr4d syl5bb imbi2d pm5.32da df-3an
      syl ralbidv 3bitr4g bitrd ) AFCGUAUBUCFIUDUEUFOZCIOZCBPZOZNPZWDFWFUGZUHZN
      QUIRZUJZBGUKZULZWBWCWEEPZFUMOWMFUBWDOSZEDPQUBZUKZDJRZUJZBGUKZULZANBCFGIKU
      NAWBWCSZWKSXAWSSWLWTAXAWKWSAXASZWJWRBGXBWIWQWEWIWOWDFWOUGZUHZDTRZXBWQTTUO
      ZQUHQTUPWIXEUQURTXFQUSWHXDNDTQWFWOUTZWFWOWDWGXCWFWOFVAXGVBVHVCVDXBXEWPDTR
      ZWQXBXDWPDTXBFVEZXDWPUQWBXIAWCIUDFVFVGEWOWDFVIVRVJXBHTOZWQXHUQAXJXAMVKWND
      EHJLVLVRVMVNVOVSVPWBWCWKVQWBWCWSVQVTWA $.

    lmbrf.6 $e |- ( ph -> F : Z --> X ) $.
    lmbrf.7 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    $( Express the binary relation "sequence ` F ` converges to point
       ` P ` " in a metric space using an arbitrary upper set of integers.
       This version of ~ lmbr2 presupposes that ` F ` is a function.
       (Contributed by Mario Carneiro, 14-Nov-2013.) $)
    lmbrf $p |- ( ph -> ( F ( ~~>t ` J ) P <-> ( P e. X /\
         A. u e. J ( P e. u -> E. j e. Z A. k e. ( ZZ>= ` j ) A e. u ) ) ) ) $=
      ( cfv cc wcel wa clm wbr cpm co cv cdm cuz wral wrex wi w3a 3anass uztrn2
      lmbr2 wb eleq1d wf fdm syl eleq2d biimpar biantrurd bitr3d sylan2 anassrs
      wceq ralbidva rexbidva imbi2d ralbidv anbi2d cvv wss ctopon toponmax cnex
      jctir cz uzssz zsscn sstri eqsstri elpm2r syl2anc bitr2d syl5bb bitrd ) A
      GDHUAQUBGJRUCUDSZDJSZDBUEZSZFUEZGUFZSZWLGQZWJSZTZFEUEZUGQZUHZEKUIZUJZBHUH
      ZUKZWIWKCWJSZFWSUHZEKUIZUJZBHUHZTZABDEFGHIJKLMNUNXDWHWIXCTZTZAXJWHWIXCULA
      XJXKXLAXIXCWIAXHXBBHAXGXAWKAXFWTEKAWRKSZTXEWQFWSAXMWLWSSZXEWQUOZXMXNTAWLK
      SZXOIWLWRKMUMAXPTZWPXEWQXQWOCWJPUPXQWNWPAWNXPAWMKWLAKJGUQZWMKVFOKJGURUSUT
      VAVBVCVDVEVGVHVIVJVKAWHXKAJHSZRVLSZTXRKRVMZTWHAXSXTAHJVNQSXSLJHVOUSVPVQAX
      RYAOKIUGQZRMYBVRRIVSVTWAWBVQJRKGHVLWCWDVBWEWFWG $.
  $}

  ${
    $d j k u J $.  $d j k u M $.  $d j k u P $.  $d j k u X $.  $d j k u Z $.
    lmconst.2 $e |- Z = ( ZZ>= ` M ) $.
    $( A constant sequence converges to its value.  (Contributed by NM,
       8-Nov-2007.)  (Revised by Mario Carneiro, 14-Nov-2013.) $)
    lmconst $p |- ( ( J e. ( TopOn ` X ) /\ P e. X /\ M e. ZZ ) ->
                   ( Z X. { P } ) ( ~~>t ` J ) P ) $=
      ( vu vk vj ctopon cfv wcel cz w3a csn cv cuz wral syl wceq cxp clm wbr wi
      wrex simp2 simp3 uzid syl6eleqr idd ralrimdva fveq2 raleqdv rspcev syl6an
      wa ralrimivw simp1 wf fconst6g fvconst2g sylan lmbrf mpbir2and ) BDJKLZAD
      LZCMLZNZEAOUAZABUBKUCVFAGPLZVJHIPZQKZRZIEUEZUDZGBRVEVFVGUFZVHVOGBVHCELVJV
      JHCQKZRZVNVHCVQEVHVGCVQLVEVFVGUGZCUHSFUIVHVJVJHVQVHHPZVQLUPVJUJUKVMVRICEV
      KCTVJHVLVQVKCQULUMUNUOUQVHGAAIHVIBCDEVEVFVGURFVSVHVFEDVIUSVPEADUTSVHVFVTE
      LVTVIKATVPEAVTDVAVBVCVD $.
  $}

  ${
    $d j k u F $.  $d j k u J $.  $d j k u P $.  $d j k u ph $.  $d j k u U $.
    $d j M $.  $d j k u Z $.
    lmcvg.1 $e |- Z = ( ZZ>= ` M ) $.
    lmcvg.3 $e |- ( ph -> P e. U ) $.
    lmcvg.4 $e |- ( ph -> M e. ZZ ) $.
    lmcvg.5 $e |- ( ph -> F ( ~~>t ` J ) P ) $.
    lmcvg.6 $e |- ( ph -> U e. J ) $.
    $( Convergence property of a converging sequence.  (Contributed by Mario
       Carneiro, 14-Nov-2013.) $)
    lmcvg $p |- ( ph -> E. j e. Z A. k e. ( ZZ>= ` j ) ( F ` k ) e. U ) $=
      ( vu wcel cv cfv wral wrex cuz wi cdm wa cuni cpm clm wbr w3a ctop ctopon
      cc lmrcl syl toptopon sylib lmbr2 mpbid simp3d simpr ralimi reximi imim2i
      co eqid wceq eleq2 rexralbidv imbi12d rspcv syl3c ) ACGPBOQZPZEQZFRZVLPZE
      DQUARZSZDITZUBZOGSZBCPZVOCPZEVQSDITZNAVMVNFUCPZVPUDZEVQSZDITZUBZOGSZWAAFG
      UEZULUFVDPZBWKPZWJAFBGUGRUHZWLWMWJUIMAOBDEFGHWKIAGUJPZGWKUKRPAWNWOMBFGUMU
      NGWKWKVEUOUPJLUQURUSWIVTOGWHVSVMWGVRDIWFVPEVQWEVPUTVAVBVCVAUNKVTWBWDUBOCG
      VLCVFZVMWBVSWDVLCBVGWPVPWCDEIVQVLCVOVGVHVIVJVK $.
  $}

  ${
    $d x y z F $.  $d x y z J $.  $d x y z K $.  $d x y z P $.  $d x y z X $.
    $d x y z Y $.
    $( The predicate " ` F ` is a continuous function from topology ` J ` to
       topology ` K ` at point ` P ` ." in terms of neighborhoods.
       (Contributed by FL, 18-Jul-2011.)  (Revised by Mario Carneiro,
       10-Sep-2015.) $)
    iscnp4 $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) /\ P e. X ) ->
      ( F e. ( ( J CnP K ) ` P ) <-> ( F : X --> Y
          /\ A. y e. ( ( nei ` K ) ` { ( F ` P ) } )
          E. x e. ( ( nei ` J ) ` { P } ) ( F " x ) C_ y ) ) ) $=
      ( vz cfv wcel cv cima wss wrex wa syl syl2anc wb syl3anc ctopon w3a co wf
      ccnp csn cnei wral cnpf2 3expa 3adantl3 simplr ctop cuni simpll2 topontop
      cnt eqid neii1 sylancom ntropn simpr adantr simpll3 ffvelrnd wceq eleqtrd
      toponuni snssd neiint fvex sylibr cnpimaex simpl1 ad2antrr simprl simprrl
      mpbid snss opnneip simprrr ntrss2 sstrd jca reximdv2 mpd ralrimiva simprr
      ex wi snssg mpbird imass2 eleq2 imaeq2 sseq1d anbi12d syl12anc rexlimdvaa
      rspcev embantd com23 exp4a ralimdv2 imdistanda iscnp sylibrd impbid ) EGU
      AJKZFHUAJKZCGKZUBZDCEFUEUCJKZGHDUDZDALZMZBLZNZACUFZEUGJJZOZBCDJZUFZFUGJJZ
      UHZPZXLXMYFXLXMPZXNYEXIXJXMXNXKXIXJXMXNCDEFGHUIUJUKZYGYABYDYGXQYDKZPZCXOK
      ZXPXQFUQJJZNZPZAEOZYAYJXMYLFKZYBYLKZYOXLXMYIULYJFUMKZXQFUNZNZYPYJXJYRXIXJ
      XKXMYIUOZHFUPZQZYGYIYRYTUUCYCFXQYSYSURZUSUTZXQFYSUUDVARYJYCYLNZYQYJYIUUFY
      GYIVBYJYRYCYSNYTYIUUFSUUCYJYBYSYJYBHYSYJGHCDYGXNYIYHVCXIXJXKXMYIVDVEYJXJH
      YSVFUUAHFVHQVGVIUUEYCFXQYSUUDVJTVRYBYLCDVKVSVLAYLCDEFVMTYJYNXRAEXTYJXOEKZ
      YNPZXOXTKZXRPZYJUUHPZUUIXRUUKEUMKZUUGYKUUIUUKXIUULYGXIYIUUHXIXJXKXMVNVOGE
      UPZQYJUUGYNVPYJUUGYKYMVQCEXOVTTUUKXPYLXQYJUUGYKYMWAYJYLXQNZUUHYJYRYTUUNUU
      CUUEXQFYSUUDWBRVCWCWDWIWEWFWGWDWIXLYFXNYBXQKZCILZKZDUUPMZXQNZPZIEOZWJZBFU
      HZPXMXLXNYEUVCXLXNPZYAUVBBYDFUVDYIYAWJZXQFKZUUOUVAUVDUVFUUOPZUVEUVAUVDUVG
      UVEUVAWJUVDUVGPZYIYAUVAUVHYRUVFUUOYIUVHXJYRXIXJXKXNUVGUOUUBQUVDUVFUUOVPUV
      DUVFUUOWHYBFXQVTTUVHXRUVAAXTUVHUUJPZXOEUQJJZEKZCUVJKZDUVJMZXQNZUVAUVIUULX
      OEUNZNZUVKUVIXIUULUVDXIUVGUUJXIXJXKXNVNVOZUUMQZUVIUULUUIUVPUVRUVHUUIXRVPZ
      XSEXOUVOUVOURZUSRZXOEUVOUVTVARUVIUVLXSUVJNZUVIUUIUWBUVSUVIUULXSUVONUVPUUI
      UWBSUVRUVICUVOUVICGUVOUVHXKUUJXIXJXKXNUVGVDVCZUVIXIGUVOVFUVQGEVHQVGVIUWAX
      SEXOUVOUVTVJTVRUVIXKUVLUWBSUWCCUVJGWKQWLUVIUVMXPXQUVIUVJXONZUVMXPNUVIUULU
      VPUWDUVRUWAXOEUVOUVTWBRUVJXODWMQUVHUUIXRWHWCUUTUVLUVNPIUVJEUUPUVJVFZUUQUV
      LUUSUVNUUPUVJCWNUWEUURUVMXQUUPUVJDWOWPWQWTWRWSXAWIXBXCXDXEIBCDEFGHXFXGXH
      $.
  $}

  ${
    $d g o y A $.  $d g o y F $.  $d g o y J $.  $d g o y K $.  $d g o y X $.
    $d g o y Y $.
    cnpnei.1 $e |- X = U. J $.
    cnpnei.2 $e |- Y = U. K $.
    $( A condition for continuity at a point in terms of neighborhoods.
       (Contributed by Jeff Hankins, 7-Sep-2009.) $)
    cnpnei $p |- ( ( ( J e. Top /\ K e. Top /\ F : X --> Y ) /\ A e. X ) ->
      ( F e. ( ( J CnP K ) ` A ) <-> A. y e. ( ( nei ` K ) ` { ( F ` A ) } )
        ( `' F " y ) e. ( ( nei ` J ) ` { A } ) ) ) $=
      ( vo vg wcel w3a wa cfv wss wrex wi wb adantlr ctop wf ccnp ccnv cima csn
      cnei wral cdm cnvimass fdm syl5sseq 3ad2ant3 ad2antrr 3ad2antl2 ad2ant2rl
      co cv neii2 simpll simprl fvex snss biimpri adantr ad2antll 3jca cnpimaex
      adantll syl sstr2 com12 ad2antlr wfun ffun eltopss sseq2d mpbird 3adantl2
      funimass3 sylibd anim2d reximdva mpd rexlimddv isneip 3ad2antl1 mpbir2and
      syl2anc exp32 ralrimdv simpll3 opnneip imaeq2 eleq1d rspcv 3expb 3ad2ant1
      weq 3com23 ex snssg ad3antlr ad3antrrr biimpar syldan anbi12d 3syld com24
      biimprd imp ralrimiv iscnp2 baib 3expa 3adantl3 impbid ) DUALZEUALZFGCUBZ
      MZBFLZNZCBDEUCUQOLZCUDZAURZUEZBUFZDUGOOZLZABCOZUFZEUGOOZUHZYCYDYJAYMYCYDY
      FYMLZYJYCYDYONZNZYJYGFPZBJURZLZYSYGPZNZJDQZYAYRYBYPXTXRYRXSXTCUIZYGFCYFUJ
      FGCUKZULUMUNYQYLKURZPZUUFYFPZNZUUCKEYAYOUUIKEQZYBYDXSXRYOUUJXTYLKEYFUSUOU
      PYQUUFELZUUINZNZYTCYSUEZUUFPZNZJDQZUUCUUMYDUUKYKUUFLZMZUUQYPUULUUSYCYPUUL
      NYDUUKUURYDYOUULUTYPUUKUUIVAUUIUURYPUUKUUGUURUUHUURUUGYKUUFBCVBVCVDVEVFVG
      VIJUUFBCDEVHVJUUMUUPUUBJDUUMYSDLZNZUUOUUAYTUVAUUOUUNYFPZUUAUULUUOUVBRZYQU
      UTUUHUVCUUKUUGUUOUUHUVBUUNUUFYFVKVLVFVMUVACVNZYSUUDPZUVBUUASYQUVDUULUUTYA
      UVDYBYPXTXRUVDXSFGCVOUMZUNUNYQUUTUVEUULYCUUTUVEYPYAUUTUVEYBXRXTUUTUVEXSXR
      XTNUUTNUVEYSFPZXRUUTUVGXTYSDFHVPTXTUVEUVGSXRUUTXTUUDFYSUUEVQVMVRVSTTTYSYF
      CVTWIWAWBWCWDWEYCYJYRUUCNSZYPXRXSYBUVHXTBJDYGFHWFWGVEWHWJWKYCYNYDYCYNNZYD
      XTYKYSLZBUUFLZCUUFUEYSPZNZKDQZRZJEUHZXRXSXTYBYNWLUVIUVOJEYCYNYSELZUVORYCU
      VJUVQYNUVNYCUVJUVQYNUVNRYCUVJUVQNZNZYNYEYSUEZYILZYHUUFPZUUFUVTPZNZKDQZUVN
      YAUVRYNUWARZYBXSXRUVRUWFXTXSUVJUVQUWFXSUVQUVJUWFXSUVQUVJMYSYMLUWFYKEYSWMY
      JUWAAYSYMAJWSYGUVTYIYFYSYEWNWOWPVJWTWQUOTYAUWAUWERZYBUVRXRXSUWGXTXRUWAUWE
      YHKDUVTUSXAWRUNUVSUWDUVMKDUVSUUFDLZNZUVMUWDUWIUVKUWBUVLUWCYBUVKUWBSYAUVRU
      WHBUUFFXBXCUWIUVDUUFUUDPZUVLUWCSYAUVDYBUVRUWHUVFXDYCUWHUWJUVRYAUWHUWJYBYA
      UWHUUFFPZUWJXRXSUWHUWKXTUUFDFHVPWGYAUWJUWKXTXRUWJUWKSXSXTUUDFUUFUUEVQUMXE
      XFTTUUFYSCVTWIXGXJWCXHWJXIXKXLYCYDXTUVPNZSZYNXRXSYBUWMXTXRXSYBUWMYDXRXSYB
      MUWLKJBCDEFGHIXMXNXOXPVEWHXAXQ $.
  $}

  ${
    $d x A $.  $d x F $.  $d x J $.  $d x K $.
    $( An open subset of the codomain of a continuous function has an open
       preimage.  (Contributed by FL, 15-Dec-2006.) $)
    cnima $p |- ( ( F e. ( J Cn K ) /\ A e. K ) -> ( `' F " A ) e. J ) $=
      ( vx ccn co wcel ccnv cv cima wral cuni wf ctop eqid iscn2 simprbi simprd
      wa wceq imaeq2 eleq1d rspccva sylan ) BCDFGHZBIZEJZKZCHZEDLZADHUGAKZCHZUF
      CMZDMZBNZUKUFCOHDOHTUPUKTEBCDUNUOUNPUOPQRSUJUMEADUHAUAUIULCUHAUGUBUCUDUE
      $.
  $}

  ${
    $d x F $.  $d x G $.  $d x J $.  $d x K $.  $d x L $.
    $( The composition of two continuous functions is a continuous function.
       (Contributed by FL, 8-Dec-2006.)  (Revised by Mario Carneiro,
       21-Aug-2015.) $)
    cnco $p |- ( ( F e. ( J Cn K ) /\ G e. ( K Cn L ) ) ->
        ( G o. F ) e. ( J Cn L ) ) $=
      ( vx ccn co wcel wa ctop cuni ccom wf ccnv cv cima eqid cnf cnima anim12i
      wral cntop1 cntop2 fco syl2anr cnvco imaeq1i imaco simpll adantll syl2anc
      eqtri syl5eqel ralrimiva jca iscn2 sylanbrc ) ACDGHIZBDEGHIZJZCKIZEKIZJCL
      ZELZBAMZNZVFOZFPZQZCIZFEUBZJVFCEGHIUSVBUTVCACDUCBDEUDUAVAVGVLUTDLZVEBNVDV
      MANVGUSBDEVMVEVMRZVERZSACDVDVMVDRZVNSVDVMVEBAUEUFVAVKFEVAVIEIZJZVJAOZBOZV
      IQZQZCVJVSVTMZVIQWBVHWCVIBAUGUHVSVTVIUIUMVRUSWADIZWBCIUSUTVQUJUTVQWDUSVIB
      DETUKWAACDTULUNUOUPFVFCEVDVEVPVOUQUR $.
  $}

  ${
    $d x y z F $.  $d x y z G $.  $d x y z J $.  $d x y z K $.  $d x y z L $.
    $d x y z P $.
    $( The composition of two continuous functions at point ` P ` is a
       continuous function at point ` P ` .  Proposition of [BourbakiTop1] p.
       I.9.  (Contributed by FL, 16-Nov-2006.)  (Proof shortened by Mario
       Carneiro, 27-Dec-2014.) $)
    cnpco $p |- ( ( F e. ( ( J CnP K ) ` P ) /\
                    G e. ( ( K CnP L ) ` ( F ` P ) ) ) ->
                  ( G o. F ) e. ( ( J CnP L ) ` P ) ) $=
      ( vz vx vy ccnp co cfv wcel wa cuni wf cv cima wss adantr ctop wi cnptop1
      w3a ccom wrex wral cnptop2 adantl eqid cnprcl 3jca cnpf fco simplr simprl
      syl2anc wceq fvco3 simprr eqeltrrd cnpimaex syl3anc simplll simprrl imaco
      imass2 syl5eqss simprrr sstr2 syl2imc anim2d mpd rexlimddv expr ralrimiva
      reximdv jca iscnp2 sylanbrc ) BADEJKLMZCABLZEFJKLMZNZDUAMZFUAMZADOZMZUDWG
      FOZCBUEZPZAWJLZGQZMZAHQZMZWJWORZWMSZNZHDUFZUBZGFUGZNWJADFJKLMWDWEWFWHWAWE
      WCABDEUCTWCWFWAWBCEFUHUIWAWHWCABDEWGWGUJZUKTZULWDWKXBWDEOZWICPZWGXEBPZWKW
      CXFWAWBCEFXEWIXEUJZWIUJZUMUIWAXGWCABDEWGXEXCXHUMTZWGXEWICBUNUQWDXAGFWDWMF
      MZWNWTWDXKWNNZNZWBIQZMZCXNRZWMSZNZWTIEXMWCXKWBCLZWMMXRIEUFWAWCXLUOWDXKWNU
      PXMWLXSWMWDWLXSURZXLWDXGWHXTXJXDWGXEACBUSUQTWDXKWNUTVAIWMWBCEFVBVCXMXNEMZ
      XRNZNZWPBWORZXNSZNZHDUFZWTYCWAYAXOYGWAWCXLYBVDXMYAXRUPXMYAXOXQVEHXNABDEVB
      VCYCYFWSHDYCYEWRWPYEWQXPSYCXQWRYEWQCYDRXPCBWOVFYDXNCVGVHXMYAXOXQVIWQXPWMV
      JVKVLVQVMVNVOVPVRHGAWJDFWGWIXCXIVSVT $.
  $}

  $( A closed subset of the codomain of a continuous function has a closed
     preimage.  (Contributed by NM, 15-Mar-2007.)  (Revised by Mario Carneiro,
     21-Aug-2015.) $)
  cnclima $p |- ( ( F e. ( J Cn K ) /\ A e. ( Clsd ` K ) ) ->
    ( `' F " A ) e. ( Clsd ` J ) ) $=
    ( ccn co wcel ccld cfv wa ccnv cima cuni cdif wf wceq eqid adantr wfun syl
    cnf ffun funcnvcnv imadif 3syl fimacnv difeq1d eqtr2d cldopn sylan2 eqeltrd
    cnima ctop wss wb cntop1 cdm cnvimass fdm syl5sseq iscld2 syl2anc mpbird )
    BCDEFGZADHIGZJZBKZALZCHIGZCMZVHNZCGZVFVKVGDMZANZLZCVFVJVMBOZVKVOPVDVPVEBCDV
    JVMVJQZVMQZUARZVPVOVGVMLZVHNZVKVPBSVGKSVOWAPVJVMBUBBUCVMAVGUDUEVPVTVJVHVJVM
    BUFUGUHTVEVDVNDGVOCGADVMVRUIVNBCDULUJUKVFCUMGZVHVJUNVIVLUOVDWBVEBCDUPRVFBUQ
    ZVHVJBAURVFVPWCVJPVSVJVMBUSTUTVHCVJVQVAVBVC $.

  ${
    $d F x y $.  $d J x y $.  $d K x y $.  $d X x y $.  $d Y x y $.
    $( A definition of a continuous function using closed sets.  Theorem 1 (d)
       of [BourbakiTop1] p.  I.9.  (Contributed by FL, 19-Nov-2006.)  (Proof
       shortened by Mario Carneiro, 21-Aug-2015.) $)
    iscncl $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) ->
      ( F e. ( J Cn K ) <-> ( F : X --> Y /\
        A. y e. ( Clsd ` K ) ( `' F " y ) e. ( Clsd ` J ) ) ) ) $=
      ( vx ctopon cfv wcel wa ccnv cv cima ccld wral ralrimiva cuni cdif wceq
      ccn co wf cnf2 3expa cnclima adantl jca simprl toponuni ad3antrrr simplrl
      fimacnv eqcomd syl eqtr3d wfun ffun funcnvcnv imadif 4syl eqtr4d ad3antlr
      difeq1d ctop topontop opncld sylancom eqeltrd simplrr imaeq2 eleq1d rspcv
      eqid sylc wss wb cdm cnvimass syl5sseq sseqtrd isopn2 syl2anc mpbird iscn
      fdm adantr mpbir2and impbida ) CEHIJZDFHIJZKZBCDUAUBJZEFBUCZBLZAMZNZCOIZJ
      ZADOIZPZKZWLWMKWNXAWJWKWMWNBCDEFUDUEWMXAWLWMWSAWTWPBCDUFQUGUHWLXBKZWMWNWO
      GMZNZCJZGDPZWLWNXAUIXCXFGDXCXDDJZKZXFCRZXESZWRJZXIXKWOFXDSZNZWRXIXKWOFNZX
      ESZXNXIXJXOXEXIEXJXOWJEXJTWKXBXHECUJUKZXIWNEXOTWLWNXAXHULZWNXOEEFBUMUNUOU
      PVDXIWNBUQWOLUQXNXPTXREFBURBUSFXDWOUTVAVBXIXMWTJXAXNWRJZXIXMDRZXDSZWTXIFX
      TXDWKFXTTWJXBXHFDUJVCVDXCXHDVEJZYAWTJWKYBWJXBXHFDVFVCXDDXTXTVNVGVHVIWLWNX
      AXHVJWSXSAXMWTWPXMTWQXNWRWPXMWOVKVLVMVOVIXICVEJZXEXJVPXFXLVQWJYCWKXBXHECV
      FUKXIXEEXJXIBVRZXEEBXDVSXIWNYDETXREFBWFUOVTXQWAXECXJXJVNWBWCWDQWLWMWNXGKV
      QXBGBCDEFWEWGWHWI $.
  $}

  ${
    cncls2i.1 $e |- Y = U. K $.
    $( Property of the preimage of a closure.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    cncls2i $p |- ( ( F e. ( J Cn K ) /\ S C_ Y ) ->
      ( ( cls ` J ) ` ( `' F " S ) ) C_ ( `' F " ( ( cls ` K ) ` S ) ) ) $=
      ( ccn co wcel wss wa ccnv ccl cfv cima ccld ctop cntop2 clscld sylan cuni
      cnclima syldan sscls imass2 syl eqid clsss2 syl2anc ) BCDGHIZAEJZKZBLZADM
      NNZOZCPNIZUMAOZUOJZUQCMNNUOJUJUKUNDPNIZUPUJDQIZUKUSBCDRZADEFSTUNBCDUBUCUL
      AUNJZURUJUTUKVBVAADEFUDTAUNUMUEUFUOUQCCUAZVCUGUHUI $.

    $( Property of the preimage of an interior.  (Contributed by Mario
       Carneiro, 25-Aug-2015.) $)
    cnntri $p |- ( ( F e. ( J Cn K ) /\ S C_ Y ) ->
      ( `' F " ( ( int ` K ) ` S ) ) C_ ( ( int ` J ) ` ( `' F " S ) ) ) $=
      ( ccn co wcel wss wa ctop ccnv cima cuni cnt cfv adantr syl sylan wceq wf
      cntop1 cdm cnvimass eqid cnf fdm cntop2 ntropn cnima syldan ntrss2 imass2
      syl5sseq ssntr syl22anc ) BCDGHIZAEJZKZCLIZBMZANZCOZJVBADPQQZNZCIZVFVCJZV
      FVCCPQQJURVAUSBCDUCRUTBUDZVCVDBAUEURVIVDUAZUSURVDEBUBVJBCDVDEVDUFZFUGVDEB
      UHSRUOURUSVEDIZVGURDLIZUSVLBCDUIZADEFUJTVEBCDUKULUTVEAJZVHURVMUSVOVNADEFU
      MTVEAVBUNSVCCVFVDVKUPUQ $.
  $}

  ${
    cnclsi.1 $e |- X = U. J $.
    $( Property of the image of a closure.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    cnclsi $p |- ( ( F e. ( J Cn K ) /\ S C_ X ) ->
        ( F " ( ( cls ` J ) ` S ) ) C_ ( ( cls ` K ) ` ( F " S ) ) ) $=
      ( ccn co wcel wss wa ccl cfv cima ccnv ctop adantr wceq syl sseqtr4d cuni
      cntop1 cdm cnvimass wf cnf fdm syl5sseq cin simpr sseqin2 sylib syl6eqssr
      eqid dminss clsss syl3anc crn imassrn syl5ss cncls2i syldan sstrd wfun wb
      frn ffun clsss3 sylan funimass3 syl2anc mpbird ) BCDGHIZAEJZKZBACLMZMZNBA
      NZDLMMZJZVQBOZVSNZJZVOVQWAVRNZVPMZWBVOCPIZWDEJAWDJVQWEJVMWFVNBCDUBZQVOBUC
      ZWDEBVRUDVOEDUAZBUEZWHERVMWJVNBCDEWIFWIUNZUFQZEWIBUGSZUHVOAWHAUIZWDVOAWHJ
      WNARVOAEWHVMVNUJWMTAWHUKULABUOUMWDACEFUPUQVMVNVRWIJWEWBJVOVRBURZWIBAUSVOW
      JWOWIJWLEWIBVFSUTVRBCDWIWKVAVBVCVOBVDZVQWHJVTWCVEVOWJWPWLEWIBVGSVOVQEWHVM
      WFVNVQEJWGACEFVHVIWMTVQVSBVJVKVL $.
  $}

  ${
    $d x y F $.  $d x y J $.  $d x y K $.  $d x y X $.  $d x y Y $.
    $( Continuity in terms of closure.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    cncls2 $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) ->
      ( F e. ( J Cn K ) <-> ( F : X --> Y /\ A. x e. ~P Y
      ( ( cls ` J ) ` ( `' F " x ) ) C_ ( `' F " ( ( cls ` K ) ` x ) ) ) ) ) $=
      ( ctopon cfv wcel wa cima ccl wss cpw wral cuni wi wceq toponuni ad2antlr
      ccn co wf ccnv cv cnf2 3expia elpwi adantl sseqtrd eqid cncls2i ralrimdva
      expcom syl jcad ccld cldss2 pweqd syl5sseqr sseld imim1d ad2antll imaeq2d
      cldcls sseq2d ctop topontop ad2antrr cdm cnvimass ad2antrl eqtrd syl5sseq
      fdm iscld4 syl2anc bitr4d expr pm5.74d sylibd ralimdv2 imdistanda sylibrd
      wb iscncl impbid ) CEGHIZDFGHIZJZBCDUAUBIZEFBUCZBUDZAUEZKZCLHHZWMWNDLHHZK
      ZMZAFNZOZJZWJWKWLXAWHWIWKWLBCDEFUFUGWJWKWSAWTWJWNWTIZJZWNDPZMZWKWSQXDWNFX
      EXCWNFMWJWNFUHUIWIFXERZWHXCFDSZTUJWKXFWSWNBCDXEXEUKZULUNUOUMUPWJXBWLWOCUQ
      HIZADUQHZOZJWKWJWLXAXLWJWLJZWSXJAWTXKXMXCWSQWNXKIZWSQXNXJQXMXNXCWSXMXKWTW
      NXMXENXKWTDXEXIURXMFXEWIXGWHWLXHTUSUTVAVBXMXNWSXJWJWLXNWSXJWEWJWLXNJZJZWS
      WPWOMZXJXPWRWOWPXPWQWNWMXNWQWNRWJWLWNDVEVCVDVFXPCVGIZWOCPZMXJXQWEWHXRWIXO
      ECVHVIXPBVJZWOXSBWNVKXPXTEXSWLXTERWJXNEFBVOVLWHEXSRWIXOECSVIVMVNWOCXSXSUK
      VPVQVRVSVTWAWBWCABCDEFWFWDWG $.

    $( Continuity in terms of closure.  (Contributed by Jeff Hankins,
       1-Oct-2009.)  (Proof shortened by Mario Carneiro, 25-Aug-2015.) $)
    cncls $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) ->
      ( F e. ( J Cn K ) <-> ( F : X --> Y /\ A. x e. ~P X
        ( F " ( ( cls ` J ) ` x ) ) C_ ( ( cls ` K ) ` ( F " x ) ) ) ) ) $=
      ( vy ctopon cfv wcel wa cv ccl cima wss cpw wral wceq syl ad3antrrr co wf
      ccn cnf2 3expia cuni elpwi adantl toponuni ad2antrr sseqtrd cnclsi expcom
      wi eqid ralrimdva jcad cdm cnvimass fdm ad2antlr syl5sseq toponmax elpw2g
      ccnv wb mpbird fveq2 imaeq2d imaeq2 fveq2d sseq12d ctop topontop ad3antlr
      rspcv crn cin wfun ffun funimacnv inss1 clsss syl3anc sstr2 syl5com eqtrd
      syl6eqss clsss3 syl2anc sseqtr4d funimass3 sylibd syld imdistanda sylibrd
      cncls2 impbid ) CEHIJZDFHIJZKZBCDUCUAJZEFBUBZBALZCMIZIZNZBXDNZDMIZIZOZAEP
      ZQZKZXAXBXCXMWSWTXBXCBCDEFUDUEXAXBXKAXLXAXDXLJZKZXDCUFZOZXBXKUNXPXDEXQXOX
      DEOXAXDEUGUHWSEXQRZWTXOECUIZUJUKXBXRXKXDBCDXQXQUOZULUMSUPUQXAXNXCBVEZGLZN
      ZXEIZYBYCXIIZNOZGFPZQZKXBXAXCXMYIXAXCKZXMYGGYHYJYCYHJZKZXMBYENZBYDNZXIIZO
      ZYGYLYDXLJZXMYPUNYLYQYDEOZYLBURZYDEBYCUSZXCYSERXAYKEFBUTVAZVBYLECJZYQYRVF
      WSUUBWTXCYKECVCTYDECVDSVGXKYPAYDXLXDYDRZXGYMXJYOUUCXFYEBXDYDXEVHVIUUCXHYN
      XIXDYDBVJVKVLVPSYLYPYMYFOZYGYLYOYFOZYPUUDYLDVMJZYCDUFZOYNYCOUUEWTUUFWSXCY
      KFDVNVOYLYCFUUGYKYCFOYJYCFUGUHWTFUUGRWSXCYKFDUIVOUKYLYNYCBVQZVRZYCYLBVSZY
      NUUIRXCUUJXAYKEFBVTVAZYCBWASYCUUHWBWHYCYNDUUGUUGUOWCWDYMYOYFWEWFYLUUJYEYS
      OUUDYGVFUUKYLYEXQYSYLCVMJZYDXQOYEXQOWSUULWTXCYKECVNTYLYSYDXQYTYLYSEXQUUAW
      SXSWTXCYKXTTWGZVBYDCXQYAWIWJUUMWKYEYFBWLWJWMWNUPWOGBCDEFWQWPWR $.

    $( Continuity in terms of interior.  (Contributed by Jeff Hankins,
       2-Oct-2009.)  (Proof shortened by Mario Carneiro, 25-Aug-2015.) $)
    cnntr $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) ->
      ( F e. ( J Cn K ) <-> ( F : X --> Y /\ A. x e. ~P Y
      ( `' F " ( ( int ` K ) ` x ) ) C_ ( ( int ` J ) ` ( `' F " x ) ) ) ) ) $=
      ( ctopon cfv wcel wa cnt cima wss wral cuni wceq toponuni ad2antlr eqid
      wi ccn co wf ccnv cv cpw cnf2 3expia elpwi adantl cnntri expcom ralrimdva
      sseqtrd syl jcad toponss selpw sylibr ex imim1d wb topontop ad3antrrr cdm
      ctop cnvimass fdm eqtrd syl5sseq ntrss2 syl2anc eqss baib isopn3 ad3antlr
      isopn3i sylancom sseq1d 3bitr4rd pm5.74da sylibd ralimdv2 imdistanda iscn
      imaeq2d sylibrd impbid ) CEGHIZDFGHIZJZBCDUAUBIZEFBUCZBUDZAUEZDKHHZLZWNWO
      LZCKHHZMZAFUFZNZJZWKWLWMXBWIWJWLWMBCDEFUGUHWKWLWTAXAWKWOXAIZJZWODOZMZWLWT
      TXEWOFXFXDWOFMZWKWOFUIUJWJFXFPWIXDFDQRUNWLXGWTWOBCDXFXFSUKULUOUMUPWKXCWMW
      RCIZADNZJWLWKWMXBXJWKWMJZWTXIAXADXKXDWTTWODIZWTTXLXITXKXLXDWTWJXLXDTWIWMW
      JXLXDWJXLJXHXDWODFUQAFURUSUTRVAXKXLWTXIXKXLJZWSWRPZWRWSMZXIWTXMWSWRMZXNXO
      VBXMCVFIZWRCOZMZXPWIXQWJWMXLECVCVDZXMBVEZWRXRBWOVGXMYAEXRWMYAEPWKXLEFBVHR
      WIEXRPWJWMXLECQVDVIVJZWRCXRXRSZVKVLXNXPXOWSWRVMVNUOXMXQXSXIXNVBXTYBWRCXRY
      CVOVLXMWQWRWSXMWPWOWNXKXLDVFIZWPWOPWJYDWIWMXLFDVCVPWODVQVRWFVSVTWAWBWCWDA
      BCDEFWEWGWH $.
  $}

  ${
    $d f x J $.  $d f x K $.  $d f x L $.  $d f x X $.
    cnss1.1 $e |- X = U. J $.
    $( If the topology ` K ` is finer than ` J ` , then there are more
       continuous functions from ` K ` than from ` J ` .  (Contributed by Mario
       Carneiro, 19-Mar-2015.)  (Revised by Mario Carneiro, 21-Aug-2015.) $)
    cnss1 $p |- ( ( K e. ( TopOn ` X ) /\ J C_ K ) ->
        ( J Cn L ) C_ ( K Cn L ) ) $=
      ( vf vx ctopon cfv wcel wss wa ccn co cv cuni wf ccnv cima adantl simpllr
      wral eqid cnf cnima adantll sseldd ralrimiva simpll cntop2 toptopon sylib
      wb ctop iscn syl2anc mpbir2and ex ssrdv ) BDHIJZABKZLZFACMNZBCMNZVBFOZVCJ
      ZVEVDJZVBVFLZVGDCPZVEQZVERGOZSZBJZGCUBZVFVJVBVEACDVIEVIUCZUDTVHVMGCVHVKCJ
      ZLABVLUTVAVFVPUAVFVPVLAJVBVKVEACUEUFUGUHVHUTCVIHIJZVGVJVNLUMUTVAVFUIVHCUN
      JZVQVFVRVBVEACUJTCVIVOUKULGVEBCDVIUOUPUQURUS $.
  $}

  ${
    $d f x J $.  $d f x K $.  $d f x L $.  $d f x Y $.
    cnss2.1 $e |- Y = U. K $.
    $( If the topology ` K ` is finer than ` J ` , then there are fewer
       continuous functions into ` K ` than into ` J ` from some other space.
       (Contributed by Mario Carneiro, 19-Mar-2015.)  (Revised by Mario
       Carneiro, 21-Aug-2015.) $)
    cnss2 $p |- ( ( L e. ( TopOn ` Y ) /\ L C_ K ) ->
        ( J Cn K ) C_ ( J Cn L ) ) $=
      ( vf vx ctopon cfv wcel wss wa ccn co cv cuni wf ccnv wral adantl cima wb
      eqid simplr cnima ralrimiva ssralv sylc ctop cntop1 toptopon sylib simpll
      cnf iscn syl2anc mpbir2and ex ssrdv ) CDHIJZCBKZLZFABMNZACMNZVBFOZVCJZVEV
      DJZVBVFLZVGAPZDVEQZVERGOZUAAJZGCSZVFVJVBVEABVIDVIUCZEUNTVHVAVLGBSZVMUTVAV
      FUDVFVOVBVFVLGBVKVEABUEUFTVLGCBUGUHVHAVIHIJZUTVGVJVMLUBVHAUIJZVPVFVQVBVEA
      BUJTAVIVNUKULUTVAVFUMGVEACVIDUOUPUQURUS $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d f x y J $.  $d f x y K $.  $d f x y X $.
    $d f P $.
    cnsscnp.1 $e |- X = U. J $.
    $( A continuous function is continuous at all points.  One direction of
       Theorem 7.2(g) of [Munkres] p. 107.  (Contributed by Raph Levien,
       20-Nov-2006.)  (Proof shortened by Mario Carneiro, 21-Aug-2015.) $)
    cncnpi $p |- ( ( F e. ( J Cn K ) /\ A e. X ) ->
        F e. ( ( J CnP K ) ` A ) ) $=
      ( vy vx co wcel wa cfv cv adantr wb mpbir2and ctopon ctop toptopon sylib
      ccn ccnp cuni wf ccnv cima wss wrex wi wral eqid cnf cnima ad2ant2r simpr
      simprr wfn ad2antrr ffn elpreima 3syl eqimss biantrud eleq2 bitr3d rspcev
      wceq syl2anc expr ralrimiva cntop1 cntop2 iscnp3 syl3anc ) BCDUAIJZAEJZKZ
      BACDUBILJZEDUCZBUDZABLGMZJZAHMZJZWCBUEWAUFZUGZKZHCUHZUIZGDUJZVOVTVPBCDEVS
      FVSUKZULZNVQWIGDVQWADJZWBWHVQWMWBKZKZWECJZAWEJZWHVOWMWPVPWBWABCDUMUNWOWQV
      PWBVQVPWNVOVPUOZNVQWMWBUPWOVTBEUQWQVPWBKOVOVTVPWNWLUREVSBUSEAWABUTVAPWGWQ
      HWECWCWEVGZWDWGWQWSWFWDWCWEVBVCWCWEAVDVEVFVHVIVJVQCEQLJZDVSQLJZVPVRVTWJKO
      VQCRJZWTVOXBVPBCDVKNCEFSTVQDRJZXAVOXCVPBCDVLNDVSWKSTWRHGABCDEVSVMVNP $.

    $( The set of continuous functions is a subset of the set of continuous
       functions at a point.  (Contributed by Raph Levien, 21-Oct-2006.)
       (Revised by Mario Carneiro, 21-Aug-2015.) $)
    cnsscnp $p |- ( P e. X -> ( J Cn K ) C_ ( ( J CnP K ) ` P ) ) $=
      ( vf wcel ccn co ccnp cfv cv cncnpi expcom ssrdv ) ADGZFBCHIZABCJIKZFLZQG
      PSRGASBCDEMNO $.
  $}

  ${
    $d u x y F $.  $d u x y J $.  $d u x y K $.  $d u x y X $.  $d u x y Y $.
    $( A continuous function is continuous at all points.  Theorem 7.2(g) of
       [Munkres] p. 107.  (Contributed by NM, 15-May-2007.)  (Proof shortened
       by Mario Carneiro, 21-Aug-2015.) $)
    cncnp $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) ->
      ( F e. ( J Cn K ) <-> ( F : X --> Y /\
        A. x e. X F e. ( ( J CnP K ) ` x ) ) ) ) $=
      ( vy vu ctopon cfv wcel wa co cv wral cima ralrimiva wss syl wb ccnp ccnv
      ccn wf iscn simprbda cuni eqid cncnpi adantl wceq toponuni raleqdv mpbird
      ad2antrr jca simprl wrex cdm cnvimass fdm syl5sseq ssralv simpllr wfn ffn
      wi simprr ad2antlr elpreima simplbda syl2anc syl3anc wfun simp-4l toponss
      cnpimaex ffun sylan sseqtr4d funimass3 anbi2d rexbidva expr ralimdva syld
      mpbid impr an32s ctop topontop ad3antrrr eltop2 adantr mpbir2and impbida
      ) CEIJKZDFIJKZLZBCDUCMKZEFBUDZBANZCDUAMJKZAEOZLZWSWTLZXAXDWSWTXABUBGNZPZC
      KZGDOZGBCDEFUEZUFXFXDXCACUGZOZWTXMWSWTXCAXLXBBCDXLXLUHUIQUJXFXCAEXLWQEXLU
      KWRWTECULUOUMUNUPWSXELZWTXAXJWSXAXDUQXNXIGDXNXGDKZLZXIXBHNZKZXQXHRZLZHCUR
      ZAXHOZWSXOXEYBWSXOLZXAXDYBYCXALZXDXCAXHOZYBYDXHERXDYEVGYDBUSZXHEBXGUTXAYF
      EUKZYCEFBVAZUJVBXCAXHEVCSYDXCYAAXHYDXBXHKZXCYAYDYIXCLZLZXRBXQPXGRZLZHCURZ
      YAYKXCXOXBBJXGKZYNYDYIXCVHWSXOXAYJVDYKBEVEZYIYOXAYPYCYJEFBVFVIYDYIXCUQYPY
      IXBEKYOEXBXGBVJVKVLHXGXBBCDVQVMYKYMXTHCYKXQCKZLZYLXSXRYRBVNZXQYFRYLXSTYRX
      AYSYCXAYJYQVDZEFBVRSYRXQEYFYKWQYQXQERWQWRXOXAYJVOXQCEVPVSYRXAYGYTYHSVTXQX
      GBWAVLWBWCWGWDWEWFWHWIXPCWJKZXIYBTWQUUAWRXEXOECWKWLAHXHCWMSUNQWSWTXAXJLTX
      EXKWNWOWP $.

    cncnp.1 $e |- X = U. J $.
    cncnp.2 $e |- Y = U. K $.
    $( A continuous function is continuous at all points.  Theorem 7.2(g) of
       [Munkres] p. 107.  (Contributed by Raph Levien, 20-Nov-2006.)  (Proof
       shortened by Mario Carneiro, 21-Aug-2015.) $)
    cncnp2 $p |- ( X =/= (/) -> ( F e. ( J Cn K ) <->
        A. x e. X F e. ( ( J CnP K ) ` x ) ) ) $=
      ( c0 wne ccn co wcel cfv ctopon wa ctop toptopon sylib jca31 cv ccnp wral
      cntop1 cntop2 cnf adantl wrex r19.2z cnptop1 cnptop2 cnpf rexlimivw cncnp
      wf syl baibd pm5.21nd ) EIJZBCDKLMZBAUAZCDUBLNMZAEUCZCEONMZDFONMZPZEFBUOZ
      PZUTVHUSUTVDVEVGUTCQMZVDBCDUDCEGRZSUTDQMZVEBCDUEDFHRZSBCDEFGHUFTUGUSVCPVB
      AEUHVHVBAEUIVBVHAEVBVDVEVGVBVIVDVABCDUJVJSVBVKVEVABCDUKVLSVABCDEFGHULTUMU
      PVFUTVGVCABCDEFUNUQUR $.
  $}

  ${
    $d p v w F $.  $d p v w J $.  $d p v w K $.  $d p v w X $.  $d p v w Y $.
    cnnei.x $e |- X = U. J $.
    cnnei.y $e |- Y = U. K $.
    $( Continuity in terms of neighborhoods.  (Contributed by Thierry Arnoux,
       3-Jan-2018.) $)
    cnnei $p |- ( ( J e. Top /\ K e. Top /\ F : X --> Y ) ->
      ( F e. ( J Cn K ) <-> A. p e. X A. w e. ( ( nei ` K ) ` { ( F ` p ) } )
         E. v e. ( ( nei ` J ) ` { p } ) ( F " v ) C_ w ) ) $=
      ( ctop wcel co cv csn cnei cfv wral wb wa ccn cima wss wrex ccnp toptopon
      ctopon anbi12i cncnp baibd sylanb anbi1i 3expa an32s ralbidva bitrd 3impa
      wf iscnp4 ) DKLZEKLZFGCURZCDEUAMLZCBNUBANUCBHNZODPQQUDAVDCQOEPQQRZHFRZSUT
      VATZVBTZVCCVDDEUEMQLZHFRZVFVGDFUGQLZEGUGQLZTZVBVCVJSUTVKVAVLDFIUFEGJUFUHZ
      VMVCVBVJHCDEFGUIUJUKVHVIVEHFVHVMVBTVDFLZVIVESZVGVMVBVNULVMVOVBVPVMVOTVIVB
      VEVKVLVOVIVBVETSBAVDCDEFGUSUMUJUNUKUOUPUQ $.
  $}

  ${
    $d u x y B $.  $d u x y J $.  $d u x y K $.  $d u x y X $.  $d u x y Y $.
    $( A constant function is continuous.  (Contributed by Mario Carneiro,
       19-Mar-2015.) $)
    cnconst2 $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) /\ B e. Y ) ->
      ( X X. { B } ) e. ( J Cn K ) ) $=
      ( vx vy vu ctopon cfv wcel co cv wral wa cima wss wceq simplr crn w3a csn
      cxp ccn wf ccnp fconst6g 3ad2ant3 wrex wi adantr simpll3 fvconst2g eleq1d
      syl2anc simpll1 toponmax syl cres df-ima ssid xpssres ax-mp rneqi eqsstri
      rnxpss simprr snssd syl5ss syl5eqss imaeq2 sseq1d anbi12d rspcev syl12anc
      eleq2 expr sylbid ralrimiva wb simpl1 simpr iscnp syl3anc mpbir2and cncnp
      simpl2 3adant3 ) BDIJKZCEIJKZAEKZUAZDAUBZUCZBCUDLKZDEWNUEZWNFMZBCUFLJKZFD
      NZWKWIWPWJDAEUGUHZWLWRFDWLWQDKZOZWRWPWQWNJZGMZKZWQHMZKZWNXFPZXDQZOZHBUIZU
      JZGCNZWLWPXAWTUKXBXLGCXBXDCKZOZXEAXDKZXKXOXCAXDXOWKXAXCARWIWJWKXAXNULWLXA
      XNSDAWQEUMUOUNXBXNXPXKXBXNXPOZOZDBKZXAWNDPZXDQZXKXRWIXSWIWJWKXAXQUPDBUQUR
      WLXAXQSXRXTWNDUSZTZXDWNDUTXRYCWMXDYCWNTWMYBWNDDQYBWNRDVADWMDVBVCVDDWMVFVE
      XRAXDXBXNXPVGVHVIVJXJXAYAOHDBXFDRZXGXAXIYAXFDWQVPYDXHXTXDXFDWNVKVLVMVNVOV
      QVRVSXBWIWJXAWRWPXMOVTWIWJWKXAWAWIWJWKXAWGWLXAWBHGWQWNBCDEWCWDWEVSWIWJWOW
      PWSOVTWKFWNBCDEWFWHWE $.

    $( A constant function is continuous.  (Contributed by FL, 15-Jan-2007.)
       (Proof shortened by Mario Carneiro, 19-Mar-2015.) $)
    cnconst $p |- ( ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) /\
      ( B e. Y /\ F : X --> { B } ) ) -> F e. ( J Cn K ) ) $=
      ( ctopon cfv wcel wa csn wf ccn co cxp wceq wb fconst2g adantl cnconst2
      3expa eleq1 syl5ibrcom sylbid impr ) CEGHIZDFGHIZJZAFIZEAKZBLZBCDMNZIZUHU
      IJZUKBEUJOZPZUMUIUKUPQUHEAFBRSUNUMUPUOULIZUFUGUIUQACDEFTUABUOULUBUCUDUE
      $.
  $}

  ${
    $d o A $.  $d o F $.  $d o J $.  $d o K $.  $d o X $.
    cnrest.1 $e |- X = U. J $.
    $( Continuity of a restriction from a subspace.  (Contributed by Jeff
       Hankins, 11-Jul-2009.)  (Revised by Mario Carneiro, 21-Aug-2015.) $)
    cnrest $p |- ( ( F e. ( J Cn K ) /\ A C_ X ) ->
        ( F |` A ) e. ( ( J |`t A ) Cn K ) ) $=
      ( vo ccn co wcel wa wf ccnv cima adantr ctop cvv sylan ctopon cfv cres cv
      wss crest cuni wral eqid cnf simpr fssresd cnvresima cntop1 topopn ancoms
      cin ssexg cnima adantlr elrestr syl3anc syl5eqel ralrimiva toptopon sylib
      wb resttopon cntop2 iscn syl2anc mpbir2and ) BCDHIJZAEUCZKZBAUAZCAUDIZDHI
      JZADUEZVNLZVNMGUBZNZVOJZGDUFZVMEVQABVKEVQBLVLBCDEVQFVQUGZUHOVKVLUIUJVMWAG
      DVMVSDJZKZVTBMVSNZAUOZVOAVSBUKWECPJZAQJZWFCJZWGVOJVMWHWDVKWHVLBCDULZOOVMW
      IWDVKWHVLWIWKWHECJZVLWICEFUMVLWLWIAECUPUNRROVKWDWJVLVSBCDUQURWFACPQUSUTVA
      VBVMVOASTJZDVQSTJZVPVRWBKVEVKCESTJZVLWMVKWHWOWKCEFVCVDACEVFRVMDPJZWNVKWPV
      LBCDVGODVQWCVCVDGVNVODAVQVHVIVJ $.
  $}

  ${
    $d f x y B $.  $d x y F $.  $d f x y J $.  $d f x y K $.  $d x y Y $.
    $( Equivalence of continuity in the parent topology and continuity in a
       subspace.  (Contributed by Jeff Hankins, 10-Jul-2009.)  (Proof shortened
       by Mario Carneiro, 21-Aug-2015.) $)
    cnrest2 $p |- ( ( K e. ( TopOn ` Y ) /\ ran F C_ B /\ B C_ Y ) ->
        ( F e. ( J Cn K ) <-> F e. ( J Cn ( K |`t B ) ) ) ) $=
      ( vx vy ctopon cfv wcel wss wf wa co a1i syl sylib wb cima cvv ctop crest
      crn w3a cuni ccn cntop1 wfn eqid cnf ffn simp2 jctird df-f syl6ibr adantl
      wi jcad toptopon resttopon 3adant2 adantr simpr cnf2 syl3anc ex ccnv wral
      jca cv cin vex inex1 wceq wrex simpl1 toponmax simpl3 ssexd elrest imaeq2
      syl2anc eleq1d ralxfr2d wfun simplrr ffun inpreima 3syl cnvimass sseqtr4i
      cdm cnvimarndm simpll2 imass2 syl5ss df-ss ralbidva simprr fssd biantrurd
      eqtrd 3bitrrd bitrd simprl iscn 3bitr4d pm5.21ndd ) DEHIZJZBUCZAKZAEKZUDZ
      CUAJZCUEZABLZMZBCDUFNJZBCDAUBNZUFNJZXNXSXOXQXSXOUQXNBCDUGOXNXSBXPUHZXLMXQ
      XNXSYBXLXSYBUQXNXSXPDUEZBLYBBCDXPYCXPUIZYCUIUJXPYCBUKPOXJXLXMULUMXPABUNUO
      URXNYAXRXNYAMZXOXQYAXOXNBCXTUGUPZYECXPHIJZXTAHIJZYAXQYEXOYGYFCXPYDUSZQXNY
      HYAXJXMYHXLADEUTVAZVBXNYAVCBCXTXPAVDVEVIVFXNXRXSYARXNXRMZXPEBLZBVGZFVJZSZ
      CJZFDVHZMZXQYMGVJZSZCJZGXTVHZMZXSYAYKYRUUBUUCYKUUBYMYNAVKZSZCJZFDVHYQYRYK
      UUAUUFGFUUDXTDTUUDTJYKYNDJZMZYNAFVLVMOYKXJATJYSXTJYSUUDVNZFDVORXJXLXMXRVP
      ZYKAEDYKXJEDJUUJEDVQPXJXLXMXRVRZVSFYSADXITVTWBUUIUUAUUFRYKUUIYTUUECYSUUDY
      MWAWCUPWDYKUUFYPFDUUHUUEYOCUUHUUEYOYMASZVKZYOUUHXQBWEUUEUUMVNXNXOXQUUGWFX
      PABWGYNABWHWIUUHYOUULKUUMYOVNUUHYOYMXKSZUULYOBWLUUNBYNWJBWMWKUUHXLUUNUULK
      XJXLXMXRUUGWNXKAYMWOPWPYOUULWQQXBWCWRYKYLYQYKXPAEBXNXOXQWSZUUKWTXAXCYKXQU
      UBUUOXAXDYKYGXJXSYRRYKXOYGXNXOXQXEYIQZUUJFBCDXPEXFWBYKYGYHYAUUCRUUPXNYHXR
      YJVBGBCXTXPAXFWBXGVFXH $.

    $( Equivalence of continuity in the parent topology and continuity in a
       subspace.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario
       Carneiro, 7-Jun-2014.) $)
    cnrest2r $p |- ( K e. Top -> ( J Cn ( K |`t B ) ) C_ ( J Cn K ) ) $=
      ( vf ctop wcel crest co ccn wa cuni cvv adantl eqid ctopon toptopon sylib
      cfv wss syl3anc cv cin wceq cntop2 restrcl restin 3syl oveq2d eleqtrd crn
      simpr wb simpl wf cntop1 inss2 resttopon sylancl cnf2 frn syl a1i cnrest2
      mpbird ex ssrdv ) CEFZDBCAGHZIHZBCIHZVGDUAZVIFZVKVJFZVGVLJZVMVKBCACKZUBZG
      HZIHZFZVNVKVIVRVGVLUKVNVHVQBIVNVHEFZCLFALFJVHVQUCVLVTVGVKBVHUDMACUEACLLVO
      VONZUFUGUHUIZVNCVOORFZVKUJVPSZVPVOSZVMVSULVNVGWCVGVLUMCVOWAPQZVNBKZVPVKUN
      ZWDVNBWGORFZVQVPORFZVSWHVNBEFZWIVLWKVGVKBVHUOMBWGWGNPQVNWCWEWJWFAVOUPZVPC
      VOUQURWBVKBVQWGVPUSTWGVPVKUTVAWEVNWLVBVPVKBCVOVCTVDVEVF $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z F $.  $d x y z J $.  $d x y z K $.
    $d x y z P $.  $d x y z X $.  $d x y z Y $.
    cnprest.1 $e |- X = U. J $.
    $( One direction of ~ cnprest under the weaker condition that the point is
       in the subset rather than the interior of the subset.  (Contributed by
       Mario Carneiro, 9-Feb-2015.)  (Revised by Mario Carneiro,
       1-May-2015.) $)
    cnpresti $p |- ( ( A C_ X /\ P e. A /\ F e. ( ( J CnP K ) ` P ) ) ->
      ( F |` A ) e. ( ( ( J |`t A ) CnP K ) ` P ) ) $=
      ( vy vz vx wss wcel co cfv cima wa wrex wi cvv ctop ccnp w3a cres cuni wf
      crest cv wral eqid cnpf 3ad2ant3 simp1 fssresd wceq simpl2 fvres cnpimaex
      syl eleq1d 3expia 3ad2antl3 cin idd simp2 jctird elin syl6ibr inss1 ax-mp
      imass2 id syl5ss a1i anim12d reximdv vex inex1 wb cnptop1 uniexg syl6sseq
      ssexd elrest syl2anc simpr eleq2d imaeq2d resima2 syl6eq anbi12d rexxfr2d
      inss2 sseq1d adantr syld sylbid ralrimiva ctopon toptopon sylib resttopon
      sylibrd cnptop2 iscnp syl3anc mpbir2and ) AFKZBALZCBDEUAMNLZUBZCAUCZBDAUF
      MZEUAMNLZAEUDZXKUEZBXKNZHUGZLZBIUGZLZXKXSOZXQKZPZIXLQZRZHEUHZXJFXNACXIXGF
      XNCUEXHBCDEFXNGXNUIZUJUKXGXHXIULZUMXJYEHEXJXQELZPZXRBCNZXQLZYDYJXPYKXQYJX
      HXPYKUNXGXHXIYIUOBACUPURUSYJYLBJUGZLZCYMOZXQKZPZJDQZYDXIXGYIYLYRRXHXIYIYL
      YRJXQBCDEUQUTVAXJYRYDRYIXJYRBYMAVBZLZCYSOZXQKZPZJDQYDXJYQUUCJDXJYNYTYPUUB
      XJYNYNXHPYTXJYNYNXHXJYNVCXGXHXIVDZVEBYMAVFVGYPUUBRXJYPUUAYOXQYSYMKUUAYOKY
      MAVHYSYMCVJVIYPVKVLVMVNVOXJYCUUCIJYSXLDSYSSLXJYMDLPYMAJVPVQVMXJDTLZASLXSX
      LLXSYSUNZJDQVRXIXGUUEXHBCDEVSUKZXJADUDZSXJUUEUUHSLUUGDTVTURXJAFUUHYHGWAWB
      JXSADTSWCWDXJUUFPZXTYTYBUUBUUIXSYSBXJUUFWEZWFUUIYAUUAXQUUIYAXKYSOZUUAUUIX
      SYSXKUUJWGYSAKUUKUUAUNYMAWLCYSAWHVIWIWMWJWKXBWNWOWPWQXJXLAWRNLZEXNWRNLZXH
      XMXOYFPVRXJDFWRNLZXGUULXJUUEUUNUUGDFGWSWTYHADFXAWDXJETLZUUMXIXGUUOXHBCDEX
      CUKEXNYGWSWTUUDIHBXKXLEAXNXDXEXF $.

    cnprest.2 $e |- Y = U. K $.
    $( Equivalence of continuity at a point and continuity of the restricted
       function at a point.  (Contributed by Mario Carneiro, 8-Aug-2014.) $)
    cnprest $p |- ( ( ( J e. Top /\ A C_ X ) /\
                      ( P e. ( ( int ` J ) ` A ) /\ F : X --> Y ) ) ->
      ( F e. ( ( J CnP K ) ` P ) <->
        ( F |` A ) e. ( ( ( J |`t A ) CnP K ) ` P ) ) ) $=
      ( vy vx vz wcel wss wa cfv wi cima syl cvv ctop cnt wf ccnp co cres crest
      cnptop2 a1i wb w3a cv wrex wral wceq ntrss2 3ad2ant1 simp2l sseldd eqcomd
      fvres eleq1d inss1 imass2 sstr2 anim2i reximi simp1l ntropn 3com23 3expia
      cin mp2b inopn syl2anc elin simplbi2com sslin anim12d eleq2 imaeq2 sseq1d
      anbi12d rspcev syl6 expdimp rexlimdva cbvrexv syl6ib impbid2 inex1 uniexg
      vex cuni simp1r syl6sseq ssexd elrest rbaib sylan9bbr simpr imaeq2d inss2
      resima2 ax-mp syl6eq rexxfr2d bitr4d imbi12d ralbidv simp3 iscnp2 syl3anc
      baib simp2r biantrurd ctopon toptopon resttopon fssresd 3bitr4d pm5.21ndd
      sylib iscnp ) DUAMZAFNZOZBADUBPPZMZFGCUCZOZOZEUAMZCBDEUDUEPMZCAUFZBDAUGUE
      ZEUDUEPMZYNYMQYLBCDEUHUIYQYMQYLBYOYPEUHUIYGYKYMYNYQUJYGYKYMUKZBCPZJULZMZB
      KULZMZCUUBRZYTNZOZKDUMZQZJEUNZBYOPZYTMZBLULZMZYOUULRZYTNZOZLYPUMZQZJEUNZY
      NYQYRUUHUURJEYRUUAUUKUUGUUQYRYSUUJYTYRUUJYSYRBAMZUUJYSUOYRYHABYGYKYHANZYM
      ADFHUPUQZYGYIYJYMURZUSZBACVASUTVBYRUUGUUCCUUBAVLZRZYTNZOZKDUMZUUQYRUUGUVI
      UUFUVHKDUUEUVGUUCUVEUUBNUVFUUDNUUEUVGQUUBAVCUVEUUBCVDUVFUUDYTVEVMVFVGYRUV
      IUUMCUULRZYTNZOZLDUMZUUGYRUVHUVMKDYRUUBDMZUVHUVMYRUVNUVHOUUBYHVLZDMZBUVOM
      ZCUVORZYTNZOZOUVMYRUVNUVPUVHUVTYRYEYHDMZUVNUVPQYEYFYKYMVHZYGYKUWAYMADFHVI
      UQYEUWAUVNUVPYEUVNUWAUVPUUBYHDVNVJVKVOYRUUCUVQUVGUVSYRYIUUCUVQQUVCUVQUUCY
      IBUUBYHVPVQSYRUVRUVFNZUVGUVSQYRUVOUVENZUWCYRUVAUWDUVBYHAUUBVRSUVOUVECVDSU
      VRUVFYTVESVSVSUVLUVTLUVODUULUVOUOZUUMUVQUVKUVSUULUVOBVTUWEUVJUVRYTUULUVOC
      WAWBWCWDWEWFWGUVLUUFLKDUULUUBUOZUUMUUCUVKUUEUULUUBBVTUWFUVJUUDYTUULUUBCWA
      WBWCWHWIWJYRUUPUVHLKUVEYPDTUVETMYRUVNOUUBAKWMWKUIYRYEATMUULYPMUULUVEUOZKD
      UMUJUWBYRADWNZTYRYEUWHTMUWBDUAWLSYRAFUWHYEYFYKYMWOZHWPWQKUULADUATWRVOYRUW
      GOZUUMUUCUUOUVGUWGUUMBUVEMZYRUUCUULUVEBVTYRUUTUWKUUCUJUVDUWKUUCUUTBUUBAVP
      WSSWTUWJUUNUVFYTUWJUUNYOUVERZUVFUWJUULUVEYOYRUWGXAXBUVEANUWLUVFUOUUBAXCCU
      VEAXDXEXFWBWCXGXHXIXJYRYNYJUUIOZUUIYRYEYMBFMZYNUWMUJUWBYGYKYMXKZYRAFBUWIU
      VDUSYNYEYMUWNUKUWMKJBCDEFGHIXLXNXMYRYJUUIYGYIYJYMXOZXPXHYRYQAGYOUCZUUSOZU
      USYRYPAXQPMZEGXQPMZUUTYQUWRUJYRDFXQPMZYFUWSYRYEUXAUWBDFHXRYCUWIADFXSVOYRY
      MUWTUWOEGIXRYCUVDLJBYOYPEAGYDXMYRUWQUUSYRFGACUWPUWIXTXPXHYAVKYB $.

    $( Equivalence of point-continuity in the parent topology and
       point-continuity in a subspace.  (Contributed by Mario Carneiro,
       9-Aug-2014.)  (Revised by Mario Carneiro, 21-Aug-2015.) $)
    cnprest2 $p |- ( ( K e. Top /\ F : X --> B /\ B C_ Y ) ->
       ( F e. ( ( J CnP K ) ` P ) <-> F e. ( ( J CnP ( K |`t B ) ) ` P ) ) ) $=
      ( vx vy vz ctop wcel wss wa cfv wi wb cvv wf ccnp co crest cnptop1 cnprcl
      w3a jca a1i cv cima wrex wral cin simpl2 simprr ffvelrnd biantrud syl6bbr
      elin crn imassrn frn syl syl5ss syl6bb anbi2d rexbidv imbi12d ralbidv vex
      ssin inex1 simpl1 uniexg syl5eqel simpl3 ssexd elrest syl2anc eleq2 sseq2
      wceq cuni adantl ralxfr2d bitr4d simprl iscnp2 baib fssd biantrurd ctopon
      syl3anc toptopon sylib resttopon iscnp 3bitr4d ex pm5.21ndd ) EMNZFACUAZA
      GOZUGZDMNZBFNZPZCBDEUBUCQNZCBDEAUDUCZUBUCQNZXIXHRXEXIXFXGBCDEUEBCDEFHUFUH
      UIXKXHRXEXKXFXGBCDXJUEBCDXJFHUFUHUIXEXHXIXKSXEXHPZBCQZJUJZNZBKUJZNZCXPUKZ
      XNOZPZKDULZRZJEUMZXMLUJZNZXQXRYDOZPZKDULZRZLXJUMZXIXKXLYCXMXNAUNZNZXQXRYK
      OZPZKDULZRZJEUMYJXLYBYPJEXLXOYLYAYOXLXOXOXMANZPYLXLYQXOXLFABCXBXCXDXHUOZX
      EXFXGUPZUQURXMXNAUTUSXLXTYNKDXLXSYMXQXLXSXSXRAOZPYMXLYTXSXLXRCVAZACXPVBXL
      XCUUAAOYRFACVCVDVEURXRXNAVLVFVGVHVIVJXLYIYPLJYKXJETYKTNXLXNENPXNAJVKVMUIX
      LXBATNYDXJNYDYKWCZJEULSXBXCXDXHVNZXLAGTXLXBGTNUUCXBGEWDTIEMVOVPVDXBXCXDXH
      VQZVRJYDAEMTVSVTUUBYIYPSXLUUBYEYLYHYOYDYKXMWAUUBYGYNKDUUBYFYMXQYDYKXRWBVG
      VHVIWEWFWGXLXIFGCUAZYCPZYCXLXFXBXGXIUUFSXEXFXGWHZUUCYSXIXFXBXGUGUUFKJBCDE
      FGHIWIWJWNXLUUEYCXLFAGCYRUUDWKWLWGXLXKXCYJPZYJXLDFWMQNZXJAWMQNZXGXKUUHSXL
      XFUUIUUGDFHWOWPXLEGWMQNZXDUUJXLXBUUKUUCEGIWOWPUUDAEGWQVTYSKLBCDXJFAWRWNXL
      XCYJYRWLWGWSWTXA $.
  $}

  ${
    $d f x y A $.  $d f x y J $.  $d f x y K $.  $d f x y X $.  $d f x y Y $.
    $d f x V $.
    $( Every function is continuous when the domain is discrete.  (Contributed
       by Mario Carneiro, 19-Mar-2015.)  (Revised by Mario Carneiro,
       21-Aug-2015.) $)
    cndis $p |- ( ( A e. V /\ J e. ( TopOn ` X ) ) ->
        ( ~P A Cn J ) = ( X ^m A ) ) $=
      ( vf vx wcel ctopon cfv wa cpw ccn co cmap cv wf ccnv cima wral wb adantl
      wss cdm cnvimass fdm syl5sseq elpw2g ad2antrr mpbird ralrimivw ex pm4.71d
      wceq toponmax id elmapg syl2anr distopon iscn sylan 3bitr4rd eqrdv ) ACGZ
      BDHIGZJZEAKZBLMZDANMZVEADEOZPZVJVIQFOZRZVFGZFBSZJZVIVHGZVIVGGZVEVJVNVEVJV
      NVEVJJZVMFBVRVMVLAUBZVRVIUCZVLAVIVKUDVJVTAUMVEADVIUEUAUFVCVMVSTVDVJVLACUG
      UHUIUJUKULVDDBGVCVPVJTVCDBUNVCUODAVIBCUPUQVCVFAHIGVDVQVOTACURFVIVFBADUSUT
      VAVB $.

    $( Every function is continuous when the codomain is indiscrete (trivial).
       (Contributed by Mario Carneiro, 9-Apr-2015.)  (Revised by Mario
       Carneiro, 21-Aug-2015.) $)
    cnindis $p |- ( ( J e. ( TopOn ` X ) /\ A e. V ) ->
      ( J Cn { (/) , A } ) = ( A ^m X ) ) $=
      ( vf vx ctopon cfv wcel wa c0 cima wceq ad2antrr imaeq2 eleq1d syl5ibrcom
      co cv wb cpr ccn cmap wf ccnv wral wo elpri ctop topontop 0opn syl syl6eq
      ima0 fimacnv adantl toponmax eqeltrd jaod syl5 ralrimiv ex pm4.71d elmapg
      id syl2anr indistopon iscn sylan2 3bitr4rd eqrdv ) BDGHIZACIZJZEBKAUAZUBR
      ZADUCRZVNDAESZUDZVSVRUEZFSZLZBIZFVOUFZJZVRVQIZVRVPIZVNVSWDVNVSWDVNVSJZWCF
      VOWAVOIWAKMZWAAMZUGWHWCWAKAUHWHWIWCWJWHWCWIKBIZWHBUIIZWKVLWLVMVSDBUJNBUKU
      LWIWBKBWIWBVTKLKWAKVTOVTUNUMPQWHWCWJVTALZBIWHWMDBVSWMDMVNDAVRUOUPVLDBIZVM
      VSDBUQZNURWJWBWMBWAAVTOPQUSUTVAVBVCVMVMWNWFVSTVLVMVEWOADVRCBVDVFVMVLVOAGH
      IWGWETACVGFVRBVODAVHVIVJVK $.

    $( If ` A ` is an isolated point in ` X ` (or equivalently, the singleton
       ` { A } ` is open in ` X ` ), then every function is continuous at
       ` A ` .  (Contributed by Mario Carneiro, 9-Sep-2015.) $)
    cnpdis $p |- ( ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) /\ A e. X ) /\
       { A } e. J ) -> ( ( J CnP K ) ` A ) = ( Y ^m X ) ) $=
      ( vf vx vy ctopon cfv wcel w3a wa co cv wss syl wb expr toponmax csn ccnp
      cmap wf ccnv cima wrex wral simplrl simpll3 snidg simprr simplrr elpreima
      wi wfn ffn 3syl mpbir2and snssd wceq eleq2 sseq1 anbi12d rspcev ralrimiva
      syl12anc pm4.71d simpl2 simpl1 elmapd iscnp3 adantr 3bitr4rd eqrdv ) BDIJ
      KZCEIJKZADKZLZAUAZBKZMZFABCUBNJZEDUCNZWBDEFOZUDZWFAWEJGOZKZAHOZKZWIWEUEWG
      UFZPZMZHBUGZUOZGCUHZMZWEWDKWEWCKZWBWFWPVSWAWFWPVSWAWFMZMZWOGCWTWGCKZWHWNW
      TXAWHMZMZWAAVTKZVTWKPZWNVSWAWFXBUIXCVRXDVPVQVRWSXBUJZADUKQXCAWKXCAWKKZVRW
      HXFWTXAWHULXCWFWEDUPXGVRWHMRVSWAWFXBUMDEWEUQDAWGWEUNURUSUTWMXDXEMHVTBWIVT
      VAWJXDWLXEWIVTAVBWIVTWKVCVDVEVGSVFSVHWBEDWECBWBVQECKVPVQVRWAVIECTQWBVPDBK
      VPVQVRWAVJDBTQVKVSWRWQRWAHGAWEBCDEVLVMVNVO $.
  $}

  ${
    $d y F $.  $d y J $.  $d y K $.  $d y ph $.  $d y X $.  $d y Y $.
    paste.1 $e |- X = U. J $.
    paste.2 $e |- Y = U. K $.
    paste.4 $e |- ( ph -> A e. ( Clsd ` J ) ) $.
    paste.5 $e |- ( ph -> B e. ( Clsd ` J ) ) $.
    paste.6 $e |- ( ph -> ( A u. B ) = X ) $.
    paste.7 $e |- ( ph -> F : X --> Y ) $.
    paste.8 $e |- ( ph -> ( F |` A ) e. ( ( J |`t A ) Cn K ) ) $.
    paste.9 $e |- ( ph -> ( F |` B ) e. ( ( J |`t B ) Cn K ) ) $.
    $( Pasting lemma.  If ` A ` and ` B ` are closed sets in ` X ` with
       ` A u. B = X ` , then any function whose restrictions to ` A ` and ` B `
       are continuous is continuous on all of ` X ` .  (Contributed by Jeff
       Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
       21-Aug-2015.) $)
    paste $p |- ( ph -> F e. ( J Cn K ) ) $=
      ( co wcel cfv syl vy ccn wf ccnv cv cima ccld wral wa cres cun cin ineq2d
      wceq wfun ffun respreima uneq12d syl6reqr wss crn imassrn cdm fdm syl5eqr
      dfdm4 syl5sseq df-ss sylib 3eqtr3rd adantr crest cnclima restcldr syl2anc
      indi sylan eqeltrd ralrimiva ctop wb cldrcl cntop2 ctopon toptopon iscncl
      uncld syl2anb mpbir2and ) ADEFUBQRZGHDUCZDUDZUAUEZUFZEUGSZRZUAFUGSZUHZNAW
      PUAWQAWMWQRZUIZWNDBUJZUDWMUFZDCUJZUDWMUFZUKZWOAWNXEUNWSAWNBCUKZULZWNGULZX
      EWNAXFGWNMUMAXEWNBULZWNCULZUKZXGADUOZXEXKUNAWKXLNGHDUPTXLXBXIXDXJWMBDUQWM
      CDUQURTWNBCVPUSAWNGUTZXHWNUNAWKXMNWKWLVAZWNGWLWMVBWKXNDVCGDVFGHDVDVEVGTWN
      GVHVIVJVKWTXBWORZXDWORZXEWORWTBWORZXBEBVLQZUGSRZXOAXQWSKVKAXAXRFUBQRZWSXS
      OWMXAXRFVMVQBXBEVNVOWTCWORZXDECVLQZUGSRZXPAYAWSLVKAXCYBFUBQRWSYCPWMXCYBFV
      MVQCXDEVNVOXBXDEWGVOVRVSAEVTRZFVTRZWJWKWRUIWAZAXQYDKBEWBTAXTYEOXAXRFWCTYD
      EGWDSRFHWDSRYFYEEGIWEFHJWEUADEFGHWFWHVOWI $.
  $}

  ${
    $d u y F $.  $d u y J $.  $d u P $.  $d u y X $.
    $( If ` F ` converges, then ` F ` is a partial function.  (Contributed by
       Mario Carneiro, 23-Dec-2013.) $)
    lmfpm $p |- ( ( J e. ( TopOn ` X ) /\ F ( ~~>t ` J ) P ) ->
      F e. ( X ^pm CC ) ) $=
      ( vu vy ctopon cfv wcel clm wbr wa cc cpm co cv cres wf cuz crn wrex wral
      wi w3a id lmbr biimpa simp1d ) CDGHIZBACJHKZLBDMNOIZADIZAEPZIFPZUMBUNQRFS
      TUAUCECUBZUIUJUKULUOUDUIFEABCDUIUEUFUGUH $.

    $( Inclusion of a function having a limit (used to ensure the limit
       relation is a set, under our definition).  (Contributed by NM,
       7-Dec-2006.)  (Revised by Mario Carneiro, 23-Dec-2013.) $)
    lmfss $p |- ( ( J e. ( TopOn ` X ) /\ F ( ~~>t ` J ) P ) ->
      F C_ ( CC X. X ) ) $=
      ( ctopon cfv wcel clm wbr wa wfun cc cxp wss cpm co lmfpm wb cvv toponmax
      cnex elpmg sylancl adantr mpbid simprd ) CDEFGZBACHFIZJZBKZBLDMNZUIBDLOPG
      ZUJUKJZABCDQUGULUMRZUHUGDCGLSGUNDCTUADLBCSUBUCUDUEUF $.

    $( Closure of a limit.  (Contributed by NM, 19-Dec-2006.)  (Revised by
       Mario Carneiro, 23-Dec-2013.) $)
    lmcl $p |- ( ( J e. ( TopOn ` X ) /\ F ( ~~>t ` J ) P ) -> P e. X ) $=
      ( vu vy ctopon cfv wcel clm wbr wa cc cpm co cv cres wf cuz crn wrex wral
      wi w3a id lmbr biimpa simp2d ) CDGHIZBACJHKZLBDMNOIZADIZAEPZIFPZUMBUNQRFS
      TUAUCECUBZUIUJUKULUOUDUIFEABCDUIUEUFUGUH $.
  $}

  ${
    $d j k u v F $.  $d j k u v J $.  $d j k u v K $.  $d j k u v ph $.
    $d j k M $.  $d j k u v P $.  $d j k u v Y $.  $d j k u v Z $.
    lmss.1 $e |- K = ( J |`t Y ) $.
    lmss.2 $e |- Z = ( ZZ>= ` M ) $.
    lmss.3 $e |- ( ph -> Y e. V ) $.
    lmss.4 $e |- ( ph -> J e. Top ) $.
    lmss.5 $e |- ( ph -> P e. Y ) $.
    lmss.6 $e |- ( ph -> M e. ZZ ) $.
    lmss.7 $e |- ( ph -> F : Z --> Y ) $.
    $( Limit on a subspace.  (Contributed by NM, 30-Jan-2008.)  (Revised by
       Mario Carneiro, 30-Dec-2013.) $)
    lmss $p |- ( ph -> ( F ( ~~>t ` J ) P <-> F ( ~~>t ` K ) P ) ) $=
      ( vu wcel wa adantr vk cuni crn wss clm cfv wbr ctopon ctop eqid toptopon
      vj vv sylib lmcl sylan cc cxp lmfss rnss syl rnxpss syl6ss ex inss2 crest
      jca cin co resttopon2 syl2anc syl5eqel sseldi wb cv cuz wral simprl elind
      wrex 2thd wceq eleq2i elrest biimpa sylan2b r19.29r biantrud elin syl6bbr
      wi uztrn2 ffvelrnda sylan2 anassrs ralbidva rexbidva imbi12d biimpd eleq2
      rexralbidv imbi2d syl5ibrcom impd rexlimdva syl5 expdimp syldan ralrimdva
      wf simpr elrestr syl3anc syl6eleqr rspcv sylibrd impbid anbi12d cz simprr
      wfn ffn df-f sylanbrc eqidd lmbrf frn ssind 3bitr4d pm5.21ndd ) ABDUBZRZC
      UCZYKUDZSZCBDUEUFUGZCBEUEUFUGZAYPYOAYPSZYLYNADYKUHUFRZYPYLADUIRZYSMDYKYKU
      JUKZUNZBCDYKUOUPYRYMUQYKURZUCZYKYRCUUCUDZYMUUDUDAYSYPUUEUUBBCDYKUSUPCUUCU
      TVAUQYKVBVCVGVDAYQYOAYQSZYLYNUUFHYKVHZYKBHYKVEZAEUUGUHUFZRZYQBUUGRZAEDHVF
      VIZUUIJAYSHGRZUULUUIRUUBLHDGYKVJVKVLZBCEUUGUOUPVMUUFYMUUGYKUUFYMUQUUGURZU
      CZUUGUUFCUUOUDZYMUUPUDAUUJYQUUQUUNBCEUUGUSUPCUUOUTVAUQUUGVBVCUUHVCVGVDAYO
      YPYQVNAYOSZYLBQVOZRZUAVOZCUFZUUSRZUAULVOZVPUFZVQZULIVTZWKZQDVQZSUUKBUMVOZ
      RZUVBUVJRZUAUVEVQULIVTZWKZUMEVQZSYPYQUURYLUUKUVIUVOUURYLUUKAYLYNVRZUURHYK
      BABHRZYONTZUVPVSWAUURUVIUVOUURUVIUVNUMEUURUVJERZUVJUUSHVHZWBZQDVTZUVIUVNW
      KUVSUURUVJUULRZUWBEUULUVJJWCUURUWCUWBUURYTUUMUWCUWBVNAYTYOMTZAUUMYOLTZQUV
      JHDUIGWDVKWEWFUURUWBUVIUVNUWBUVISUWAUVHSZQDVTUURUVNUWAUVHQDWGUURUWFUVNQDU
      URUUSDRZSZUWAUVHUVNUWHUVHUVNWKUWAUVHBUVTRZUVBUVTRZUAUVEVQZULIVTZWKZWKUWHU
      VHUWMUURUVHUWMVNUWGUURUUTUWIUVGUWLUURUUTUUTUVQSUWIUURUVQUUTUVRWHBUUSHWIWJ
      UURUVFUWKULIUURUVDIRZSUVCUWJUAUVEUURUWNUVAUVERZUVCUWJVNZUWNUWOSUURUVAIRZU
      WPFUVAUVDIKWLUURUWQSZUVCUVCUVBHRZSUWJUWRUWSUVCUURIHUVACAIHCXJZYOPTZWMWHUV
      BUUSHWIWJWNWOWPWQWRTZWSUWAUVNUWMUVHUWAUVKUWIUVMUWLUVJUVTBWTUWAUVLUWJULUAI
      UVEUVJUVTUVBWTXAWRZXBXCXDXEXFXGXHXIUURUVOUVHQDUWHUVOUWMUVHUWHUVTERUVOUWMW
      KUWHUVTUULEUWHYTUUMUWGUVTUULRUURYTUWGUWDTUURUUMUWGUWETUURUWGXKUUSHDUIGXLX
      MJXNUVNUWMUMUVTEUXCXOVAUXBXPXIXQXRUURQUVBBULUACDFYKIUURYTYSUWDUUAUNKAFXSR
      YOOTZUURCIYAZYNIYKCXJUURUWTUXEUXAIHCYBVAZAYLYNXTZIYKCYCYDUWRUVBYEZYFUURUM
      UVBBULUACEFUUGIAUUJYOUUNTKUXDUURUXEYMUUGUDIUUGCXJUXFUURYMHYKUURUWTYMHUDUX
      AIHCYGVAUXGYHIUUGCYCYDUXHYFYIVDYJ $.
  $}

  ${
    $d f u x y J $.  $d f u x y K $.  $d f x y X $.
    $( A finer topology has fewer convergent sequences (but the sequences that
       do converge, converge to the same value).  (Contributed by Mario
       Carneiro, 15-Sep-2015.) $)
    sslm $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` X ) /\ J C_ K ) ->
                 ( ~~>t ` K ) C_ ( ~~>t ` J ) ) $=
      ( vf vx vu vy ctopon cfv wcel wss w3a cv wral copab clm idd wceq lmfval
      cc cpm co cres wf cuz crn wi ssralv 3anim123d ssopab2dv 3ad2ant3 3ad2ant2
      wrex 3ad2ant1 3sstr4d ) ACHIZJZBUPJZABKZLDMZCTUAUBJZEMZCJZVBFMZJGMZVDUTVE
      UCUDGUEUFUMUGZFBNZLZDEOZVAVCVFFANZLZDEOZBPIZAPIZUSUQVIVLKURUSVHVKDEUSVAVA
      VCVCVGVJUSVAQUSVCQVFFABUHUIUJUKURUQVMVIRUSEGFDBCSULUQURVNVLRUSEGFDACSUNUO
      $.
  $}

  ${
    $d j k u F $.  $d j k u J $.  $d j k u M $.  $d j k u P $.  $d j k u ph $.
    $d j k u X $.
    lmres.2 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    lmres.4 $e |- ( ph -> F e. ( X ^pm CC ) ) $.
    lmres.5 $e |- ( ph -> M e. ZZ ) $.
    $( A function converges iff its restriction to an upper integers set
       converges.  (Contributed by Mario Carneiro, 31-Dec-2013.) $)
    lmres $p |- ( ph -> ( F ( ~~>t ` J ) P <->
                          ( F |` ( ZZ>= ` M ) ) ( ~~>t ` J ) P ) ) $=
      ( vu vk vj cuz cfv cc wcel cv wa wral cvv cres cpm co cdm wrex wi w3a clm
      wbr wss ctopon toponmax syl cnex ssid uzssz zsscn pmss12g mpanl12 sylancl
      cz sstri fvex pmresg sylancr sseldd 2thd wb eqid uztrn2 dmres elin2 fvres
      eleq1d anbi12d ralbidva rexbiia imbi2i ralbii a1i 3anbi13d lmbr2 3bitr4rd
      baib ) ACEMNZUAZFOUBUCZPZBFPZBJQZPZKQZWFUDZPZWLWFNZWJPZRZKLQZMNZSZLWEUEZU
      FZJDSZUGCWGPZWIWKWLCUDZPZWLCNZWJPZRZKWSSZLWEUEZUFZJDSZUGWFBDUHNZUICBXNUIA
      WHXDXCXMWIAWHXDAFWEUBUCZWGWFAFDPZOTPZXOWGUJZADFUKNPXPGFDULUMUNFFUJWEOUJXP
      XQRXRFUOWEVAOEUPUQVBFWEFODTURUSUTAWETPXDWFXOPEMVCHFWEOCTVDVEVFHVGXCXMVHAX
      BXLJDXAXKWKWTXJLWEWRWEPZWQXIKWSXSWLWSPRWLWEPZWQXIVHEWLWRWEWEVIZVJXTWNXFWP
      XHWNXTXFWLWEXEWMCWEVKVLWDXTWOXGWJWLWECVMVNVOUMVPVQVRVSVTWAAJBLKWFDEFWEGYA
      IWBAJBLKCDEFWEGYAIWBWC $.
  $}

  ${
    $d j k u x y F $.  $d j k u x y J $.  $d j k M $.  $d j k u P $.
    $d k u S $.  $d j k u y ph $.  $d j k u x y X $.  $d j k u x Z $.
    lmff.1 $e |- Z = ( ZZ>= ` M ) $.
    lmff.3 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    lmff.4 $e |- ( ph -> M e. ZZ ) $.
    ${
      lmff.5 $e |- ( ph -> F e. dom ( ~~>t ` J ) ) $.
      $( If ` F ` converges, there is some upper integer set on which ` F ` is
         a total function.  (Contributed by Mario Carneiro, 31-Dec-2013.) $)
      lmff $p |- ( ph ->
                   E. j e. Z ( F |` ( ZZ>= ` j ) ) : ( ZZ>= ` j ) --> X ) $=
        ( vx vy cuz cfv wf wrex cz wcel syl cres crn clm wbr cop wex cdm eldm2g
        cv ibi df-br exbii sylibr wa wi wral ctopon toponmax adantr cc cpm lmbr
        co biimpa simp3d lmcl sylan wceq eleq2 feq3 rexbidv imbi12d rspcv syl3c
        w3a exlimddv cpw wfn wb uzf ffn reseq2 id feq12d rexrn mp2b rexuz3 wfun
        sylib simp1d pmfun ffvresb 3bitr4d mpbird ) ABUIZNOZFCWPUAZPZBGQZWRBRQZ
        ALUIZFCXAUAZPZLNUBZQZWTACMUIZDUCOZUDZXEMACXFUEXGSZMUFZXHMUFACXGUGZSZXJK
        XLXJMCXGXKUHUJTXHXIMCXFXGUKULUMZAXHUNZFDSZXFWOSZXAWOXBPZLXDQZUOZBDUPZXF
        FSZXEAXOXHADFUQOSZXOIFDURTUSXNCFUTVAVCSZYAXTAXHYCYAXTVOALBXFCDFIVBVDZVE
        AYBXHYAIXFCDFVFVGXSYAXEUOBFDWOFVHZXPYAXRXEWOFXFVIYEXQXCLXDWOFXAXBVJVKVL
        VMVNVPRRVQZNPNRVRXEWTVSVTRYFNWAXCWRLBRNXAWPVHZXAWPFXBWQXAWPCWBYGWCWDWEW
        FWIAXACUGSXACOFSUNZLWPUPZBGQZYIBRQZWSWTAERSYJYKVSJYHBLEGHWGTAWRYIBGACWH
        ZWRYIVSAYCYLAXHYCMXMXNYCYAXTYDWJVPFUTCWKTLWPFCWLTZVKAWRYIBRYMVKWMWN $.
    $}

    lmcls.5 $e |- ( ph -> F ( ~~>t ` J ) P ) $.
    lmcls.7 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. S ) $.
    ${
      lmcls.8 $e |- ( ph -> S C_ X ) $.
      $( Any convergent sequence of points in a subset of a topological space
         converges to a point in the closure of the subset.  (Contributed by
         Mario Carneiro, 30-Dec-2013.)  (Revised by Mario Carneiro,
         1-May-2014.) $)
      lmcls $p |- ( ph -> P e. ( ( cls ` J ) ` S ) ) $=
        ( vu vj cfv wcel cv ccl cin c0 wne wi wral cdm wa cuz cc cpm co clm wbr
        wrex w3a lmbr2 mpbid simp3d r19.2uz inelcm a1i mpan2d adantld rexlimdva
        syl5 imim2d ralimdv mpd ctop cuni wss ctopon topontop syl wceq toponuni
        wb sseqtrd lmcl syl2anc eleqtrd eqid elcls syl3anc mpbird ) ABCFUARRSZB
        PTZSZWHCUBUCUDZUEZPFUFZAWIDTZEUGSZWMERZWHSZUHZDQTUIRUFQIUOZUEZPFUFZWLAE
        HUJUKULSZBHSZWTAEBFUMRUNZXAXBWTUPMAPBQDEFGHIKJLUQURUSAWSWKPFAWRWJWIWRWQ
        DIUOAWJWQQDGIJUTAWQWJDIAWMISUHZWPWJWNXDWPWOCSZWJNWPXEUHWJUEXDWOWHCVAVBV
        CVDVEVFVGVHVIAFVJSZCFVKZVLBXGSWGWLVRAFHVMRSZXFKHFVNVOACHXGOAXHHXGVPKHFV
        QVOZVSABHXGAXHXCXBKMBEFHVTWAXIWBPBCFXGXGWCWDWEWF $.
    $}

    lmcld.8 $e |- ( ph -> S e. ( Clsd ` J ) ) $.
    $( Any convergent sequence of points in a closed subset of a topological
       space converges to a point in the set.  (Contributed by Mario Carneiro,
       30-Dec-2013.) $)
    lmcld $p |- ( ph -> P e. S ) $=
      ( ccl cfv wcel syl wceq cuni ccld wss eqid cldss ctopon toponuni sseqtr4d
      lmcls cldcls eleqtrd ) ABCFPQQZCABCDEFGHIJKLMNACFUAZHACFUBQRZCUMUCOCFUMUM
      UDUESAFHUFQRHUMTKHFUGSUHUIAUNULCTOCFUJSUK $.
  $}

  ${
    $d j k u v F $.  $d j k u v G $.  $d j k u v K $.  $d j k u v ph $.
    $d j k v J $.  $d j k u v P $.
    lmcnp.3 $e |- ( ph -> F ( ~~>t ` J ) P ) $.
    ${
      lmcnp.4 $e |- ( ph -> G e. ( ( J CnP K ) ` P ) ) $.
      $( The image of a convergent sequence under a continuous map is
         convergent to the image of the original point.  (Contributed by Mario
         Carneiro, 3-May-2014.) $)
      lmcnp $p |- ( ph -> ( G o. F ) ( ~~>t ` K ) ( G ` P ) ) $=
        ( vu vk vj vv cfv cc wcel wa cn wrex syl cvv ccom clm wbr cpm co cv cdm
        cuni cuz wral wi wf wss ccnp eqid cnpf w3a ctop ctopon cnptop1 toptopon
        c1 sylib nnuz 1zzd lmbr2 mpbid simp1d uniexg cnex elpm2g sylancl simpld
        wb fco syl2anc fdm feq2d mpbird simprd eqsstrd cnptop2 mpbir2and simp2d
        wceq ffvelrnd cima simp3d adantr cnpimaex 3expb sylan r19.29 pm3.45 imp
        reximi wfn ad3antrrr ffn simplrl elssuni fnfvima 3expia ad2antrr eleq1d
        fvco3 sylibrd simplrr sseld syld simpr eleqtrrd expimpd ralimdv reximdv
        jctild expr com23 impd rexlimdva syl5 mp2and ralrimiva mpbir3and ) ADCU
        AZBDMZFUBMUCYEFUHZNUDUEOZYFYGOYFIUFZOZJUFZYEUGZOZYKYEMZYIOZPZJKUFUIMZUJ
        ZKQRZUKZIFUJAYHYLYGYEULZYLNUMZAUUACUGZYGYEULZAEUHZYGDULZUUCUUECULZUUDAD
        BEFUNUEMOZUUFHBDEFUUEYGUUEUOZYGUOZUPSZAUUGUUCNUMZACUUENUDUEOZUUGUULPZAU
        UMBUUEOZBLUFZOZYKUUCOZYKCMZUUPOZPZJYQUJZKQRZUKZLEUJZACBEUBMUCUUMUUOUVEU
        QGALBKJCEVBUUEQAEUROZEUUEUSMOAUUHUVFHBDEFUTSZEUUEUUIVAVCVDAVEZVFVGZVHAU
        UETOZNTOZUUMUUNVNAUVFUVJUVGEURVISVJUUENCTTVKVLVGZVMZUUCUUEYGDCVOVPZAYLU
        UCYGYEAUUDYLUUCWEZUVNUUCYGYEVQSZVRVSAYLUUCNUVPAUUGUULUVLVTWAAYGTOZUVKYH
        UUAUUBPVNAFUROZUVQAUUHUVRHBDEFWBSZFURVISVJYGNYETTVKVLWCAUUEYGBDUUKAUUMU
        UOUVEUVIWDWFAYTIFAYIFOZYJYSAUVTYJPZPZUVEUUQDUUPWGZYIUMZPZLERZYSAUVEUWAA
        UUMUUOUVEUVIWHWIAUUHUWAUWFHUUHUVTYJUWFLYIBDEFWJWKWLUVEUWFPZUVCUWDPZLERZ
        UWBYSUWGUVDUWEPZLERUWIUVDUWELEWMUWJUWHLEUVDUWEUWHUUQUVCUWDWNWOWPSUWBUWH
        YSLEUWBUUPEOZPZUVCUWDYSUWLUWDUVCYSUWBUWKUWDUVCYSUKUWBUWKUWDPZPZUVBYRKQU
        WNUVAYPJYQUWNUURUUTYPUWNUURPZUUTYOYMUWOUUTYNUWCOZYOUWOUUTUUSDMZUWCOZUWP
        UWODUUEWQZUUPUUEUMZUUTUWRUKUWOUUFUWSAUUFUWAUWMUURUUKWRUUEYGDWSSUWOUWKUW
        TUWBUWKUWDUURWTUUPEXASUWSUWTUUTUWRUUEUUPDUUSXBXCVPUWOYNUWQUWCUWNUUGUURY
        NUWQWEAUUGUWAUWMUVMXDUUCUUEYKDCXFWLXEXGUWOUWCYIYNUWBUWKUWDUURXHXIXJUWOY
        KUUCYLUWNUURXKAUVOUWAUWMUURUVPWRXLXPXMXNXOXQXRXSXTYAYBXQYCAIYFKJYEFVBYG
        QAUVRFYGUSMOUVSFYGUUJVAVCVDUVHVFYD $.
    $}

    lmcn.4 $e |- ( ph -> G e. ( J Cn K ) ) $.
    $( The image of a convergent sequence under a continuous map is convergent
       to the image of the original point.  (Contributed by Mario Carneiro,
       3-May-2014.) $)
    lmcn $p |- ( ph -> ( G o. F ) ( ~~>t ` K ) ( G ` P ) ) $=
      ( ccn co wcel cuni ccnp cfv ctopon clm wbr ctop cntop1 syl2anc eqid sylib
      syl toptopon lmcl cncnpi lmcnp ) ABCDEFGADEFIJKZBELZKZDBEFMJNKHAEUIONKZCB
      EPNQUJAERKZUKAUHULHDEFSUCEUIUIUAZUDUBGBCEUIUETBDEFUIUMUFTUG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Separated spaces: T0, T1, T2 (Hausdorff) ...
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Kol2 $.
  $c Fre $. $( The class of all the T1-spaces. $)
  $c Haus $. $( Declare new symbol for Hausdorff space. $)
  $c Reg $.
  $c Nrm $.
  $c CNrm $.
  $c PNrm $.

  $( Extend class notation with the class of all T0 spaces. $)
  ct0 $a class Kol2 $.

  $( Extend class notation to include T_1 spaces (also called Fr&eacute;chet
     spaces). $)
  ct1 $a class Fre $.

  $( Extend class notation with the class of all Hausdorff spaces. $)
  cha $a class Haus $.

  $( Extend class notation with the class of all regular topologies. $)
  creg $a class Reg $.

  $( Extend class notation with the class of all normal topologies. $)
  cnrm $a class Nrm $.

  $( Extend class notation with the class of all completely normal
     topologies. $)
  ccnrm $a class CNrm $.

  $( Extend class notation with the class of all perfectly normal
     topologies. $)
  cpnrm $a class PNrm $.

  ${
    $d a f j m n o x y z $.
    $( Define T0 or Kolmogorov spaces.  A T_0 space satisfies a kind of
       "topological extensionality" principle (compare ~ ax-ext ): any two
       points which are members of the same open sets are equal, or in
       contraposition, for any two distinct points there is an open set which
       contains one point but not the other.  This differs from T_1 spaces (see
       ~ ist1-2 ) in that in a T_1 space you can choose which point will be in
       the open set and which outside; in a T_0 space you only know that one of
       the two points is in the set.  (Contributed by Jeff Hankins,
       1-Feb-2010.) $)
    df-t0 $a |- Kol2 = { j e. Top | A. x e. U. j A. y e. U. j
      ( A. o e. j ( x e. o <-> y e. o ) -> x = y ) } $.

    $( The class of all T_1 spaces, also called Fr&eacute;chet spaces.  Morris,
       Topology without tears, p. 30 ex. 3.  (Contributed by FL,
       18-Jun-2007.) $)
    df-t1 $a |- Fre = { x e. Top | A. a e. U. x { a } e. ( Clsd ` x ) } $.

    $( Define the class of all Hausdorff spaces.  A Hausdorff space is a
       topology in which distinct points have disjoint open neighborhoods.
       Definition of Hausdorff space in [Munkres] p. 98.  (Contributed by NM,
       8-Mar-2007.) $)
    df-haus $a |- Haus = { j e. Top | A. x e. U. j A. y e. U. j ( x =/= y ->
           E. n e. j E. m e. j ( x e. n /\ y e. m /\ ( n i^i m ) = (/) ) ) } $.

    $( Define regular spaces.  A space is regular if a point and a closed set
       can be separated by neighborhoods.  (Contributed by Jeff Hankins,
       1-Feb-2010.) $)
    df-reg $a |- Reg = { j e. Top | A. x e. j A. y e. x
      E. z e. j ( y e. z /\ ( ( cls ` j ) ` z ) C_ x ) } $.

    $( Define normal spaces.  A space is normal if disjoint closed sets can be
       separated by neighborhoods.  (Contributed by Jeff Hankins,
       1-Feb-2010.) $)
    df-nrm $a |- Nrm = { j e. Top | A. x e. j A. y e. ( ( Clsd ` j ) i^i ~P x )
      E. z e. j ( y C_ z /\ ( ( cls ` j ) ` z ) C_ x ) } $.

    $( Define completely normal spaces.  A space is completely normal if all
       its subspaces are normal.  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    df-cnrm $a |- CNrm = { j e. Top | A. x e. ~P U. j ( j |`t x ) e. Nrm } $.

    $( Define perfectly normal spaces.  A space is perfectly normal if it is
       normal and every closed set is a G_&delta; set, meaning that it is a
       countable intersection of open sets.  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    df-pnrm $a |- PNrm = { j e. Nrm | ( Clsd ` j ) C_
      ran ( f e. ( j ^m NN ) |-> |^| ran f ) } $.
  $}

  ${
    $d o x y z A $.  $d o x z B $.  $d a j m n o x y z J $.  $d j o x y z X $.
    $d m n x y P $.  $d m n y Q $.
    ist0.1 $e |- X = U. J $.
    $( The predicate "is a T_0 space."  Every pair of distinct points is
       topologically distinguishable.  For the way this definition is usually
       encountered, see ~ ist0-3 .  (Contributed by Jeff Hankins,
       1-Feb-2010.) $)
    ist0 $p |- ( J e. Kol2 <-> ( J e. Top /\ A. x e. X A. y e. X
      ( A. o e. J ( x e. o <-> y e. o ) -> x = y ) ) ) $=
      ( vj wel wb cv wral wceq wi cuni ctop ct0 unieq syl6eqr raleq raleqbidv
      imbi1d df-t0 elrab2 ) ACHBCHIZCGJZKZAJBJLZMZBUENZKZAUIKUDCDKZUGMZBEKZAEKG
      DOPUEDLZUJUMAUIEUNUIDNEUEDQFRZUNUHULBUIEUOUNUFUKUGUDCUEDSUATTABGCUBUC $.

    $( The predicate ` J ` is T_1.  (Contributed by FL, 18-Jun-2007.) $)
    ist1 $p |- ( J e. Fre <->
      ( J e. Top /\ A. a e. X { a } e. ( Clsd ` J ) ) ) $=
      ( vx csn ccld cfv wcel cuni wral ctop ct1 wceq unieq syl6eqr eleq2d fveq2
      cv imbi12d ralbidv2 df-t1 elrab2 ) CSZFZESZGHZIZCUFJZKUEAGHZIZCBKEALMUFAN
      ZUHUKCUIBULUDUIIUDBIUHUKULUIBUDULUIAJBUFAODPQULUGUJUEUFAGRQTUAECUBUC $.

    $( Express the predicate " ` J ` is a Hausdorff space."  (Contributed by
       NM, 8-Mar-2007.) $)
    ishaus $p |- ( J e. Haus <-> ( J e. Top /\ A. x e. X A. y e. X ( x =/= y ->
               E. n e. J E. m e. J ( x e. n /\ y e. m /\
                   ( n i^i m ) = (/) ) ) ) ) $=
      ( vj cv wne wel cin c0 wceq w3a wrex wi cuni wral raleqbidv unieq syl6eqr
      ctop cha rexeq rexeqbi1dv imbi2d df-haus elrab2 ) AIBIJZADKBCKDICILMNOZCH
      IZPZDULPZQZBULRZSZAUPSUJUKCEPZDEPZQZBFSZAFSHEUCUDULENZUQVAAUPFVBUPERFULEU
      AGUBZVBUOUTBUPFVCVBUNUSUJUMURDULEUKCULEUEUFUGTTABHCDUHUI $.

    $( The property of being completely or hereditarily normal.  (Contributed
       by Mario Carneiro, 26-Aug-2015.) $)
    iscnrm $p |- ( J e. CNrm <->
        ( J e. Top /\ A. x e. ~P X ( J |`t x ) e. Nrm ) ) $=
      ( vj cv crest cnrm wcel cuni cpw wral ctop ccnrm wceq unieq syl6eqr pweqd
      co oveq1 eleq1d raleqbidv df-cnrm elrab2 ) EFZAFZGSZHIZAUEJZKZLBUFGSZHIZA
      CKZLEBMNUEBOZUHULAUJUMUNUICUNUIBJCUEBPDQRUNUGUKHUEBUFGTUAUBAEUCUD $.

    $( Any two topologically indistinguishable points in a T_0 space are
       identical.  (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    t0sep $p |- ( ( J e. Kol2 /\ ( A e. X /\ B e. X ) ) ->
      ( A. x e. J ( A e. x <-> B e. x ) -> A = B ) ) $=
      ( vy vz ct0 wcel cv wb wral wceq wi wa ctop eleq1 ralbidv imbi12d simprbi
      ist0 bibi1d eqeq1 bibi2d eqeq2 rspc2va ancoms sylan ) DIJZGKZAKZJZHKZULJZ
      LZADMZUKUNNZOZHEMGEMZBEJCEJPZBULJZCULJZLZADMZBCNZOZUJDQJUTGHADEFUBUAVAUTV
      GUSVGVBUOLZADMZBUNNZOGHBCEEUKBNZUQVIURVJVKUPVHADVKUMVBUOUKBULRUCSUKBUNUDT
      UNCNZVIVEVJVFVLVHVDADVLUOVCVBUNCULRUESUNCBUFTUGUHUI $.

    $( Any two distinct points in a T_0 space are topologically
       distinguishable.  (Contributed by Jeff Hankins, 1-Feb-2010.) $)
    t0dist $p |- ( ( J e. Kol2 /\ ( A e. X /\ B e. X /\ A =/= B ) ) -> E. o e.
    J -. ( A e. o <-> B e. o ) ) $=
      ( ct0 wcel wne w3a wa cv wb wral wn wrex wi t0sep necon3ad exp32 rexnal
      3imp2 sylibr ) DGHZAEHZBEHZABIZJKACLZHBUHHMZCDNZOZUIOCDPUDUEUFUGUKUDUEUFU
      GUKQUDUEUFKKUJABCABDEFRSTUBUICDUAUC $.

    $( In a T_1 space, one-point sets are closed.  (Contributed by Jeff
       Hankins, 1-Feb-2010.) $)
    t1sncld $p |- ( ( J e. Fre /\ A e. X ) -> { A } e. ( Clsd ` J ) ) $=
      ( vx ct1 wcel csn ccld cfv ctop cv wral ist1 wceq eleq1d rspccv simplbiim
      wi sneq imp ) BFGZACGZAHZBIJZGZUBBKGELZHZUEGZECMUCUFSBCEDNUIUFEACUGAOUHUD
      UEUGATPQRUA $.

    $( In a T_1 space, finite sets are closed.  (Contributed by Mario Carneiro,
       25-Dec-2016.) $)
    t1ficld $p |- ( ( J e. Fre /\ A C_ X /\ A e. Fin ) ->
      A e. ( Clsd ` J ) ) $=
      ( vx ct1 wcel wss cfn w3a csn ciun ccld cfv iunid ctop wral ist1 simplbi
      cv 3ad2ant1 simp3 simprbi ssralv mpan9 3adant3 iuncld syl3anc syl5eqelr )
      BFGZACHZAIGZJZAEAETKZLZBMNZEAOUMBPGZULUNUPGZEAQZUOUPGUJUKUQULUJUQURECQZBC
      EDRZSUAUJUKULUBUJUKUSULUJUTUKUSUJUQUTVAUCUREACUDUEUFEAUNBCDUGUHUI $.

    $( Neighborhood property of a Hausdorff space.  (Contributed by NM,
       8-Mar-2007.) $)
    hausnei $p |- ( ( J e. Haus /\ ( P e. X /\ Q e. X /\ P =/= Q ) ) ->
           E. n e. J E. m e. J ( P e. n /\ Q e. m /\
                   ( n i^i m ) = (/) ) ) $=
      ( vx vy wcel wne cv wceq w3a wrex wi wral eleq1 2rexbidv imbi12d cha ctop
      cin c0 wa ishaus simprbi neeq1 3anbi1d neeq2 3anbi2d rspc2v syl5 ex com3r
      3imp2 ) EUAJZAFJZBFJZABKZADLZJZBCLZJZVAVCUCUDMZNZCEODEOZURUSUQUTVGPZURUSU
      QVHPUQHLZILZKZVIVAJZVJVCJZVENZCEODEOZPZIFQHFQZURUSUEVHUQEUBJVQHICDEFGUFUG
      VPVHAVJKZVBVMVENZCEODEOZPHIABFFVIAMZVKVRVOVTVIAVJUHWAVNVSDCEEWAVLVBVMVEVI
      AVARUISTVJBMZVRUTVTVGVJBAUJWBVSVFDCEEWBVMVDVBVEVJBVCRUKSTULUMUNUOUP $.
  $}

  ${
    $d f g x y z A $.  $d x z B $.  $d x y C $.  $d x y D $.  $d u v w x y K $.
    $d m n u v w x y z F $.  $d c d f g j m n o u v w x y z J $.  $d x y z U $.
    $d x V $.  $d o u v w x y X $.  $d u v w x y Y $.
    $( A T_0 space is a topological space.  (Contributed by Jeff Hankins,
       1-Feb-2010.) $)
    t0top $p |- ( J e. Kol2 -> J e. Top ) $=
      ( vx vo vy ct0 wcel ctop wel wb wral weq wi cuni eqid ist0 simplbi ) AEFA
      GFBCHDCHICAJBDKLDAMZJBQJBDCAQQNOP $.

    $( A T_1 space is a topological space.  (Contributed by Jeff Hankins,
       1-Feb-2010.) $)
    t1top $p |- ( J e. Fre -> J e. Top ) $=
      ( vx ct1 wcel ctop cv csn ccld cfv cuni wral eqid ist1 simplbi ) ACDAEDBF
      GAHIDBAJZKAOBOLMN $.

    $( A Hausdorff space is a topology.  (Contributed by NM, 5-Mar-2007.) $)
    haustop $p |- ( J e. Haus -> J e. Top ) $=
      ( vx vy vn vm cha wcel ctop cv wne wel cin c0 wceq wrex wi cuni wral eqid
      w3a ishaus simplbi ) AFGAHGBICIJBDKCEKDIEILMNTEAODAOPCAQZRBUCRBCEDAUCUCSU
      AUB $.

    $( The predicate "is a regular space."  In a regular space, any open
       neighborhood has a closed subneighborhood.  Note that some authors
       require the space to be Hausdorff (which would make it the same as T_3),
       but we reserve the phrase "regular Hausdorff" for that as many
       topologists do.  (Contributed by Jeff Hankins, 1-Feb-2010.)  (Revised by
       Mario Carneiro, 25-Aug-2015.) $)
    isreg $p |- ( J e. Reg <-> ( J e. Top /\ A. x e. J A. y e. x
      E. z e. J ( y e. z /\ ( ( cls ` J ) ` z ) C_ x ) ) ) $=
      ( vj wel cv ccl cfv wss wa wrex wral ctop creg fveq2 fveq1d sseq1d anbi2d
      wceq rexeqbi1dv ralbidv raleqbi1dv df-reg elrab2 ) BCFZCGZEGZHIZIZAGZJZKZ
      CUHLZBUKMZAUHMUFUGDHIZIZUKJZKZCDLZBUKMZADMEDNOUOVAAUHDUHDTZUNUTBUKUMUSCUH
      DVBULURUFVBUJUQUKVBUGUIUPUHDHPQRSUAUBUCABCEUDUE $.

    $( A regular space is a topological space.  (Contributed by Jeff Hankins,
       1-Feb-2010.) $)
    regtop $p |- ( J e. Reg -> J e. Top ) $=
      ( vy vz vx creg wcel ctop cv ccl cfv wss wa wrex wral isreg simplbi ) AEF
      AGFBHCHZFQAIJJDHZKLCAMBRNDANDBCAOP $.

    $( In a regular space, every neighborhood of a point contains a closed
       subneighborhood.  (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    regsep $p |- ( ( J e. Reg /\ U e. J /\ A e. U ) ->
      E. x e. J ( A e. x /\ ( ( cls ` J ) ` x ) C_ U ) ) $=
      ( vz vy creg wcel cv ccl cfv wss wa wrex wral wi ctop wceq rexbidv rspccv
      isreg sseq2 anbi2d raleqbi1dv simplbiim eleq1 anbi1d syl6 3imp ) DGHZCDHZ
      BCHZBAIZHZUMDJKKZCLZMZADNZUJUKEIZUMHZUPMZADNZECOZULURPUJDQHUTUOFIZLZMZADN
      ZEVDOZFDOUKVCPFEADUAVHVCFCDVGVBEVDCVDCRZVFVAADVIVEUPUTVDCUOUBUCSUDTUEVBUR
      EBCUSBRZVAUQADVJUTUNUPUSBUMUFUGSTUHUI $.

    $( The predicate "is a normal space."  Much like the case for regular
       spaces, normal does not imply Hausdorff or even regular.  (Contributed
       by Jeff Hankins, 1-Feb-2010.)  (Revised by Mario Carneiro,
       24-Aug-2015.) $)
    isnrm $p |- ( J e. Nrm <-> ( J e. Top /\
      A. x e. J A. y e. ( ( Clsd ` J ) i^i ~P x ) E. z e. J
        ( y C_ z /\ ( ( cls ` J ) ` z ) C_ x ) ) ) $=
      ( vj cv wss ccl cfv wa wrex ccld cpw cin wral ctop cnrm wceq fveq2 ineq1d
      fveq1d sseq1d anbi2d rexeqbi1dv raleqbidv raleqbi1dv df-nrm elrab2 ) BFCF
      ZGZUIEFZHIZIZAFZGZJZCUKKZBUKLIZUNMZNZOZAUKOUJUIDHIZIZUNGZJZCDKZBDLIZUSNZO
      ZADOEDPQVAVIAUKDUKDRZUQVFBUTVHVJURVGUSUKDLSTUPVECUKDVJUOVDUJVJUMVCUNVJUIU
      LVBUKDHSUAUBUCUDUEUFABCEUGUH $.

    $( A normal space is a topological space.  (Contributed by Jeff Hankins,
       1-Feb-2010.) $)
    nrmtop $p |- ( J e. Nrm -> J e. Top ) $=
      ( vy vz vx cnrm wcel ctop cv wss ccl cfv wrex ccld cpw wral isnrm simplbi
      wa cin ) AEFAGFBHCHZITAJKKDHZIRCALBAMKUANSODAODBCAPQ $.

    $( A completely normal space is a topological space.  (Contributed by Mario
       Carneiro, 26-Aug-2015.) $)
    cnrmtop $p |- ( J e. CNrm -> J e. Top ) $=
      ( vx ccnrm wcel ctop cv crest co cnrm cuni cpw wral eqid iscnrm simplbi )
      ACDAEDABFGHIDBAJZKLBAPPMNO $.

    $( The property of being completely or hereditarily normal.  (Contributed
       by Mario Carneiro, 26-Aug-2015.) $)
    iscnrm2 $p |- ( J e. ( TopOn ` X ) ->
        ( J e. CNrm <-> A. x e. ~P X ( J |`t x ) e. Nrm ) ) $=
      ( ctopon cfv wcel ccnrm cv crest co cnrm cuni cpw wral ctop topontop eqid
      wb iscnrm baib syl toponuni pweqd raleqdv bitr4d ) BCDEFZBGFZBAHIJKFZABLZ
      MZNZUHACMZNUFBOFZUGUKRCBPUGUMUKABUIUIQSTUAUFUHAULUJUFCUICBUBUCUDUE $.

    $( The property of being perfectly normal.  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    ispnrm $p |- ( J e. PNrm <-> ( J e. Nrm /\
        ( Clsd ` J ) C_ ran ( f e. ( J ^m NN ) |-> |^| ran f ) ) ) $=
      ( vj cv ccld cfv cn cmap co crn cint cmpt wss cnrm cpnrm wceq fveq2 oveq1
      mpteq1d rneqd sseq12d df-pnrm elrab2 ) CDZEFZAUDGHIZADJKZLZJZMBEFZABGHIZU
      GLZJZMCBNOUDBPZUEUJUIUMUDBEQUNUHULUNAUFUKUGUDBGHRSTUAACUBUC $.

    $( A perfectly normal space is normal.  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    pnrmnrm $p |- ( J e. PNrm -> J e. Nrm ) $=
      ( vx cpnrm wcel cnrm ccld cfv cn cmap co crn cint cmpt wss ispnrm simplbi
      cv ) ACDAEDAFGBAHIJBQKLMKNBAOP $.

    $( A perfectly normal space is a topological space.  (Contributed by Mario
       Carneiro, 26-Aug-2015.) $)
    pnrmtop $p |- ( J e. PNrm -> J e. Top ) $=
      ( cpnrm wcel cnrm ctop pnrmnrm nrmtop syl ) ABCADCAECAFAGH $.

    $( A closed set in a perfectly normal space is a countable intersection of
       open sets.  (Contributed by Mario Carneiro, 26-Aug-2015.) $)
    pnrmcld $p |- ( ( J e. PNrm /\ A e. ( Clsd ` J ) ) ->
        E. f e. ( J ^m NN ) A = |^| ran f ) $=
      ( cpnrm wcel ccld cfv wa cn cmap co cv crn cint cmpt wceq wrex wss ispnrm
      cnrm simprbi sselda wb eqid elrnmpt adantl mpbid ) CDEZACFGZEZHABCIJKZBLM
      NZOZMZEZAULPBUKQZUHUIUNAUHCTEUIUNRBCSUAUBUJUOUPUCUHBUKULAUMUIUMUDUEUFUG
      $.

    $( An open set in a perfectly normal space is a countable union of closed
       sets.  (Contributed by Mario Carneiro, 26-Aug-2015.) $)
    pnrmopn $p |- ( ( J e. PNrm /\ A e. J ) ->
        E. f e. ( ( Clsd ` J ) ^m NN ) A = U. ran f ) $=
      ( vg vx cpnrm wcel wa cuni cdif cv crn wceq ccld cfv cn cmap co wrex cvv
      cint ctop pnrmtop eqid opncld sylan pnrmcld syldan ad2antrr elmapi adantl
      cmpt ffvelrnda syl2anc fmptd fvex nnex elmap sylibr ciun ciin iundif2 wfn
      wf ffn fniinfv 3syl difeq2d syl5eq cab uniexg difexg syl ralrimivw adantr
      wral dfiun2g rnmpt unieqi syl6eqr eqtr3d rneq unieqd eqeq2d rspcev difeq2
      ad2ant2r eqcomd wss elssuni dfss4 sylib sylan9eqr ad2ant2l eqeq1d rexbidv
      mpbid rexlimddv ) CFGZACGZHZCIZAJZDKZLUAZMZABKZLZIZMZBCNOZPQRZSZDCPQRZWSW
      TXCXKGZXFDXNSWSCUBGZWTXOCUCZACXBXBUDZUEUFXCDCUGUHXAXDXNGZXFHHZXBXEJZXIMZB
      XLSZXMWSXSYCWTXFWSXSHZEPXBEKZXDOZJZULZXLGZYAYHLZIZMZYCYDPXKYHVDYIYDEPYGXK
      YHYDYEPGZHXPYFCGYGXKGWSXPXSYMXQUIYDPCYEXDXSPCXDVDZWSXDCPUJUKZUMYFCXBXRUEU
      NYHUDZUOXKPYHCNUPUQURUSYDEPYGUTZYAYKYDYQXBEPYFVAZJYAEPXBYFVBYDYRXEXBYDYNX
      DPVCYRXEMYOPCXDVEEPXDVFVGVHVIYDYQXGYGMEPSBVJZIZYKYDYGTGZEPVPZYQYTMWSUUBXS
      WSUUAEPWSXBTGUUACFVKXBYFTVLVMVNVOEBPYGTVQVMYJYSEBPYGYHYPVRVSVTWAYBYLBYHXL
      XGYHMZXIYKYAUUCXHYJXGYHWBWCWDWEUNWGXTYBXJBXLXTYAAXIWTXFYAAMWSXSXFWTYAXBXC
      JZAXFUUDYAXCXEXBWFWHWTAXBWIUUDAMACWJAXBWKWLWMWNWOWPWQWR $.

    $( The predicate "is a T_0 space".  (Contributed by Mario Carneiro,
       24-Aug-2015.) $)
    ist0-2 $p |- ( J e. ( TopOn ` X ) -> ( J e. Kol2 <-> A. x e. X A. y e. X
        ( A. o e. J ( x e. o <-> y e. o ) -> x = y ) ) ) $=
      ( ctopon cfv wcel ct0 wel wb wral weq cuni ctop topontop eqid ist0 baib
      wi syl toponuni raleqdv raleqbidv bitr4d ) DEFGHZDIHZACJBCJKCDLABMTZBDNZL
      ZAUILZUHBELZAELUFDOHZUGUKKEDPUGUMUKABCDUIUIQRSUAUFULUJAEUIEDUBZUFUHBEUIUN
      UCUDUE $.

    $( The predicate "is a T_0 space," expressed in more familiar terms.
       (Contributed by Jeff Hankins, 1-Feb-2010.) $)
    ist0-3 $p |- ( J e. ( TopOn ` X ) -> ( J e. Kol2 <->
       A. x e. X A. y e. X ( x =/= y -> E. o e. J
         ( ( x e. o /\ -. y e. o ) \/ ( -. x e. o /\ y e. o ) ) ) ) ) $=
      ( ctopon cfv wcel ct0 wel wb wral weq wi cv wne wn wa wo wrex df-ne ancom
      ist0-2 con34b xor orbi2i bitri rexbii rexnal bitr3i imbi12i bitr4i syl6bb
      2ralbii ) DEFGHDIHACJZBCJZKZCDLZABMZNZBELAELAOZBOZPZUOUPQRZUOQZUPRZSZCDTZ
      NZBELAELABCDEUCUTVIABEEUTUSQZURQZNVIURUSUDVCVJVHVKVAVBUAVHUQQZCDTVKVLVGCD
      VLVDUPVERZSVGUOUPUEVMVFVDUPVEUBUFUGUHUQCDUIUJUKULUNUM $.

    $( The preimage of a T_0 topology under an injective map is T_0.
       (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    cnt0 $p |- ( ( K e. Kol2 /\ F : X -1-1-> Y /\ F e. ( J Cn K ) ) ->
        J e. Kol2 ) $=
      ( vx vz vy vw ct0 wcel cv wb wral wceq wi cuni wa cfv syl wf1 ccn co ctop
      w3a cntop1 3ad2ant3 ccnv cima simpl3 cnima sylan eleq2 bibi12d rspcv eqid
      wfn cnf ffn simprl biantrurd bitr4d simprr adantr sylibd ralrimdva simpl1
      wf elpreima ffvelrnd t0sep syl12anc syld simpl2 cdm eqtr3d eleqtrd f1fveq
      fdm f1dm ralrimivva ist0 sylanbrc ) CJKZDEAUAZABCUBUCKZUEZBUDKZFLZGLZKZHL
      ZWJKZMZGBNZWIWLOZPZHBQZNFWRNBJKWFWDWHWEABCUFUGWGWQFHWRWRWGWIWRKZWLWRKZRZR
      ZWOWIASZWLASZOZWPXBWOXCILZKZXDXFKZMZICNZXEXBWOXIICXBXFCKZRZWOWIAUHXFUIZKZ
      WLXMKZMZXIXLXMBKZWOXPPXBWFXKXQWDWEWFXAUJZXFABCUKULWNXPGXMBWJXMOWKXNWMXOWJ
      XMWIUMWJXMWLUMUNUOTXBXPXIMXKXBXNXGXOXHXBXNWSXGRZXGXBAWRUQZXNXSMXBWRCQZAVH
      ZXTXBWFYBXRABCWRYAWRUPZYAUPZURTZWRYAAUSTZWRWIXFAVITXBWSXGWGWSWTUTZVAVBXBX
      OWTXHRZXHXBXTXOYHMYFWRWLXFAVITXBWTXHWGWSWTVCZVAVBUNVDVEVFXBWDXCYAKXDYAKXJ
      XEPWDWEWFXAVGXBWRYAWIAYEYGVJXBWRYAWLAYEYIVJIXCXDCYAYDVKVLVMXBWEWIDKWLDKXE
      WPMWDWEWFXAVNZXBWIWRDYGXBAVOZWRDXBYBYKWROYEWRYAAVSTXBWEYKDOYJDEAVTTVPZVQX
      BWLWRDYIYLVQDEWIWLAVRVLVEWAFHGBWRYCWBWC $.

    $( An alternate characterization of T_1 spaces.  (Contributed by Jeff
       Hankins, 31-Jan-2010.)  (Proof shortened by Mario Carneiro,
       24-Aug-2015.) $)
    ist1-2 $p |- ( J e. ( TopOn ` X ) -> ( J e. Fre <-> A. x e. X A. y e. X
        ( A. o e. J ( x e. o -> y e. o ) -> x = y ) ) ) $=
      ( cfv wcel cv wral wi wceq wb syl wa wss wrex adantr eleq2d wn imbi1i ct1
      ctopon csn ccld cuni ctop topontop eqid ist1 baib toponuni raleqdv eltop2
      cdif biimpa snssd iscld2 syl2anc wne imbi1d con1b df-ne c0 disjsn elssuni
      cin reldisj syl5bbr anbi2d rexbiia rexanali bitr3i con2bii imbi2i eldifsn
      3bitr4ri impexp 3bitr4g ralbidv2 3bitr4d ralbidva ralcom syl6bb 3bitr2d
      bitri ) DEUBFGZDUAGZBHZUCZDUDFGZBDUEZIZWJBEIZAHZCHZGZWHWOGZJCDIZWNWHKZJZB
      EIAEIZWFDUFGZWGWLLEDUGZWGXBWLDWKBWKUHZUIUJMWFWJBEWKEDUKZULWFWMWTAEIZBEIXA
      WFWJXFBEWFWHEGZNZWKWIUNZDGZWPWOXIOZNZCDPZAXIIZWJXFXHXBXJXNLWFXBXGXCQZACXI
      DUMMXHXBWIWKOWJXJLXOXHWHWKWFXGWHWKGWFEWKWHXERUOUPWIDWKXDUQURXHWTXMAEXIXHW
      NEGZWNWHUSZXMJZJWNWKGZXRJZXPWTJWNXIGZXMJZXHXPXSXRXHEWKWNWFEWKKXGXEQRUTWTX
      RXPWSSZXMJXMSZWSJXRWTWSXMVAXQYCXMWNWHVBTWRYDWSXMWRXMWPWQSZNZCDPWRSYFXLCDW
      ODGZYEXKWPYEWOWIVFVCKZYGXKWOWHVDYGWOWKOYHXKLWODVEWOWIWKVGMVHVIVJWPWQCDVKV
      LVMTVPVNYBXSXQNZXMJXTYAYIXMWNWKWHVOTXSXQXMVQWEVRVSVTWAWTBAEEWBWCWD $.

    $( A T_1 space is a T_0 space.  (Contributed by Jeff Hankins,
       1-Feb-2010.) $)
    t1t0 $p |- ( J e. Fre -> J e. Kol2 ) $=
      ( vx vo vy cuni ctopon cfv wcel ct1 ct0 ctop t1top eqid toptopon sylib wi
      wel wral weq ralimi wb biimp imim1i a1i ist1-2 ist0-2 3imtr4d mpcom ) AAE
      ZFGHZAIHZAJHZUKAKHUJALAUIUIMNOUJBCQZDCQZPZCARZBDSZPZDUIRZBUIRZUMUNUAZCARZ
      UQPZDUIRZBUIRZUKULUTVEPUJUSVDBUIURVCDUIVBUPUQVAUOCAUMUNUBTUCTTUDBDCAUIUEB
      DCAUIUFUGUH $.

    $( A space is T_1 iff every point is the only point in the intersection of
       all open sets containing that point.  (Contributed by Jeff Hankins,
       31-Jan-2010.)  (Proof shortened by Mario Carneiro, 24-Aug-2015.) $)
    ist1-3 $p |- ( J e. ( TopOn ` X ) -> ( J e. Fre <->
      A. x e. X |^| { o e. J | x e. o } = { x } ) ) $=
      ( vy ctopon cfv wcel ct1 wel wi wral cv wceq wa wss ralbidva vex elintrab
      bitri crab cint csn ist1-2 toponmax eleq2 intminss sylan sselda biimt syl
      wb id rgenw mpbir snssi ax-mp mpbiran2 dfss3 velsn equcom imbi12i ralcom3
      eqss ralbii bitr3i 3bitr4g bitr4d ) CDFGHZCIHABJZEBJKBCLZAMZEMZNZKZEDLZAD
      LVJBCUAUBZVLUCZNZADLAEBCDUDVIVSVPADVIVLDHZOZVMVRHZEVQLZVMDHZWBKZEVQLZVSVP
      WAWBWEEVQWAVMVQHZOWDWBWEULWAVQDVMVIDCHVTVQDPDCUEVJVTBDCBMDVLUFUGUHUIWDWBU
      JUKQVSVQVRPZWCVSWHVRVQPZVLVQHZWIWJVJVJKZBCLWKBCVJUMUNVJBVLCARSUOVLVQUPUQV
      QVRVDUREVQVRUSTVPWGWBKZEDLWFWLVOEDWGVKWBVNVJBVMCERSWBVMVLNVNEVLUTEAVATVBV
      EWBEDVQVCVFVGQVH $.

    $( The preimage of a T_1 topology under an injective map is T_1.
       (Contributed by Mario Carneiro, 26-Aug-2015.) $)
    cnt1 $p |- ( ( K e. Fre /\ F : X -1-1-> Y /\ F e. ( J Cn K ) ) ->
        J e. Fre ) $=
      ( ct1 wcel wf1 ccn csn ccld cfv cuni 3ad2ant3 cima wceq eqid syl syl2anc
      vx co w3a ctop cv wral cntop1 wa ccnv wfn wf cnf ffn fnsnfv sylan imaeq2d
      wss simpl2 f1dm 3ad2ant2 eqtr3d eleq2d biimpa snssd f1imacnv eqtrd simpl3
      cdm fdm simpl1 ffvelrnda t1sncld cnclima eqeltrrd ralrimiva ist1 sylanbrc
      ) CFGZDEAHZABCIUAGZUBZBUCGZTUDZJZBKLZGZTBMZUEBFGVSVQWAVRABCUFNVTWETWFVTWB
      WFGZUGZAUHZWBALZJZOZWCWDWHWLWIAWCOZOZWCWHWKWMWIVTAWFUIZWGWKWMPVTWFCMZAUJZ
      WOVSVQWQVRABCWFWPWFQZWPQZUKNZWFWPAULRWFWBAUMUNUOWHVRWCDUPWNWCPVQVRVSWGUQW
      HWBDVTWGWBDGVTWFDWBVTAVGZWFDVTWQXAWFPWTWFWPAVHRVRVQXADPVSDEAURUSUTVAVBVCD
      EWCAVDSVEWHVSWKCKLGZWLWDGVQVRVSWGVFWHVQWJWPGXBVQVRVSWGVIVTWFWPWBAWTVJWJCW
      PWSVKSWKABCVLSVMVNBWFTWRVOVP $.

    $( Express the predicate " ` J ` is a Hausdorff space."  (Contributed by
       NM, 8-Mar-2007.) $)
    ishaus2 $p |- ( J e. ( TopOn ` X ) -> ( J e. Haus <-> A. x e. X A. y e. X
      ( x =/= y -> E. n e. J E. m e. J ( x e. n /\ y e. m /\
                   ( n i^i m ) = (/) ) ) ) ) $=
      ( ctopon cfv wcel cha cv wne wel cin c0 wceq w3a wrex wi wral wb topontop
      cuni ctop eqid ishaus baib syl toponuni raleqdv raleqbidv bitr4d ) EFGHIZ
      EJIZAKBKLADMBCMDKCKNOPQCERDERSZBEUCZTZAUPTZUOBFTZAFTUMEUDIZUNURUAFEUBUNUT
      URABCDEUPUPUEUFUGUHUMUSUQAFUPFEUIZUMUOBFUPVAUJUKUL $.

    $( A Hausdorff space is a T_1 space.  (Contributed by FL, 11-Jun-2007.)
       (Proof shortened by Mario Carneiro, 24-Aug-2015.) $)
    haust1 $p |- ( J e. Haus -> J e. Fre ) $=
      ( vx vz vy vw cha wcel ct1 wel wi wral cv wceq wa wn w3a wrex syl sylib
      c0 cuni wne cin hausnei simprr1 simprr3 eleq2d mtbiri simprr2 simplbi2com
      eqid noel elin mtod jca rexlimdvaa reximdva rexanali 3exp2 imp32 necon4ad
      mpd ralrimivva ctopon cfv wb ctop haustop toptopon ist1-2 mpbird ) AFGZAH
      GZBCIZDCIZJCAKZBLZDLZMJZDAUAZKBVTKZVLVSBDVTVTVLVQVTGZVRVTGZNNVPVQVRVLWBWC
      VQVRUBZVPOZJVLWBWCWDWEVLWBWCWDPNZVNVOOZNZCAQZWEWFVNDEIZCLZELZUCZTMZPZEAQZ
      CAQWIVQVRECAVTVTUKZUDWFWPWHCAWFWKAGNZWOWHEAWRWLAGZWONNZVNWGVNWJWNWSWRUEWT
      VOVRWMGZWTXAVRTGVRULWTWMTVRVNWJWNWSWRUFUGUHWTWJVOXAJVNWJWNWSWRUIXAVOWJVRW
      KWLUMUJRUNUOUPUQVBVNVOCAURSUSUTVAVCVLAVTVDVEGZVMWAVFVLAVGGXBAVHAVTWQVISBD
      CAVTVJRVK $.

    $( The Hausdorff condition still holds if one considers general
       neighborhoods instead of open sets.  (Contributed by Jeff Hankins,
       5-Sep-2009.) $)
    hausnei2 $p |- ( J e. ( TopOn ` X ) -> ( J e. Haus <->
                     A. x e. X A. y e. X ( x =/= y ->
               E. u e. ( ( nei ` J ) ` { x } ) E. v e. ( ( nei ` J ) ` { y } )
                  ( u i^i v ) = (/) ) ) ) $=
      ( vm vn cfv wcel cv c0 wceq w3a wrex wi wral wa ex wss ctopon cha wne cin
      csn cnei ishaus2 ctop wb topontop simp1 adantr simp2 adantl opnneip simp3
      syl3anc ineq1 eqeq1d ineq2 rspc2ev 3expib rexlimdvv neii2 vex snss anbi1i
      simp1l simp2l ss2in ssn0 necon4d syl ad2ant2l 3jca 3exp syl5bir com3r imp
      3impia 3adant1 reximdv com34 3imp com24 impd impbid imbi2d 2ralbidv bitrd
      syl2and ) EFUAIJZEUBJAKZBKZUCZWMGKZJZWNHKZJZWPWRUDZLMZNZHEOZGEOZPZBFQAFQZ
      WODKZCKZUDZLMZCWNUEZEUFIZIZODWMUEZXLIZOZPZBFQAFQZABHGEFUGWLEUHJZXFXRUIFEU
      JXSXEXQABFFXSXDXPWOXSXDXPXSXBXPGHEEXSWPEJZWREJZXBXPPXSXTYANZXBXPYBXBRZWPX
      OJZWRXMJZXAXPYCXSXTWQYDYBXSXBXSXTYAUKULZYBXTXBXSXTYAUMULXBWQYBWQWSXAUKUNW
      MEWPUOUQYCXSYAWSYEYFYBYAXBXSXTYAUPULXBWSYBWQWSXAUMUNWNEWRUOUQXBXAYBWQWSXA
      UPUNXJXAWPXHUDZLMDCWPWRXOXMXGWPMXIYGLXGWPXHURUSXHWRMYGWTLXHWRWPUTUSVAUQSV
      BVCXSXJXDDCXOXMXSXGXOJZXNWPTZWPXGTZRZGEOZXHXMJZXKWRTZWRXHTZRZHEOZXJXDPZXS
      YHYLXNGEXGVDSXSYMYQXKHEXHVDSXSYLYQYRXSXJYQYLXDXSXJYQYLXDPXSXJYQNZYKXCGEYK
      WQYJRZYSXCWQYIYJWMWPAVEVFVGXSXJYQYTXCPXSXJYTYQXCXSXJYTYQXCPXSXJYTNYPXBHEX
      JYTYPXBPZXSXJYTUUAYTYPXJXBYPWSYORZYTXJXBPWSYNYOWNWRBVEVFVGYTUUBXJXBYTUUBX
      JNWQWSXAWQYJUUBXJVHYTWSYOXJVIYTUUBXJXAYJYOXJXAPZWQWSYJYORWTXITZUUCWPXGWRX
      HVJUUDWTLXILUUDWTLUCXILUCWTXIVKSVLVMVNVTVOVPVQVRVSWAWBVPWCWDVQWBVPWEWFWKV
      CWGWHWIVMWJ $.

    $( The preimage of a Hausdorff topology under an injective map is
       Hausdorff.  (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    cnhaus $p |- ( ( K e. Haus /\ F : X -1-1-> Y /\ F e. ( J Cn K ) ) ->
        J e. Haus ) $=
      ( vx vy vm vn vu vv wcel w3a cv cin c0 wceq wrex wa syl cha wf1 ccn co wi
      ctop wne cuni wral cntop1 3ad2ant3 cfv simpl1 wf simpl3 eqid cnf ffvelrnd
      simprll simprlr simprr simpl2 cdm fdm f1dm eqtr3d eleqtrd f1fveq syl12anc
      necon3bid mpbird hausnei syl13anc ccnv cima simpll3 cnima syl2anc simprr1
      adantr wfn ffn elpreima mpbir2and simprr2 wfun ffun inpreima 3syl simprr3
      wb imaeq2d ima0 syl6eq eleq2 ineq1 eqeq1d 3anbi13d ineq2 3anbi23d rspc2ev
      syl113anc expr rexlimdvva mpd ralrimivva ishaus sylanbrc ) CUALZDEAUBZABC
      UCUDLZMZBUFLZFNZGNZUGZXNHNZLZXOINZLZXQXSOZPQZMZIBRHBRZUEZGBUHZUIFYFUIBUAL
      XKXIXMXJABCUJUKXLYEFGYFYFXLXNYFLZXOYFLZSZXPYDXLYIXPSZSZXNAULZJNZLZXOAULZK
      NZLZYMYPOZPQZMZKCRJCRZYDYKXIYLCUHZLYOUUBLYLYOUGZUUAXIXJXKYJUMYKYFUUBXNAYK
      XKYFUUBAUNZXIXJXKYJUOABCYFUUBYFUPZUUBUPZUQTZXLYGYHXPUSZURYKYFUUBXOAUUGXLY
      GYHXPUTZURYKUUCXPXLYIXPVAYKYLYOXNXOYKXJXNDLXODLYLYOQXNXOQWKXIXJXKYJVBZYKX
      NYFDUUHYKAVCZYFDYKUUDUUKYFQUUGYFUUBAVDTYKXJUUKDQUUJDEAVETVFZVGYKXOYFDUUIU
      ULVGDEXNXOAVHVIVJVKYLYOKJCUUBUUFVLVMYKYTYDJKCCYKYMCLZYPCLZSZYTYDYKUUOYTSZ
      SZAVNZYMVOZBLZUURYPVOZBLZXNUUSLZXOUVALZUUSUVAOZPQZYDUUQXKUUMUUTXIXJXKYJUU
      PVPZYKUUMUUNYTUSYMABCVQVRUUQXKUUNUVBUVGYKUUMUUNYTUTYPABCVQVRUUQUVCYGYNYKY
      GUUPUUHVTYNYQYSUUOYKVSUUQAYFWAZUVCYGYNSWKUUQUUDUVHYKUUDUUPUUGVTZYFUUBAWBT
      ZYFXNYMAWCTWDUUQUVDYHYQYKYHUUPUUIVTYNYQYSUUOYKWEUUQUVHUVDYHYQSWKUVJYFXOYP
      AWCTWDUUQUURYRVOZUVEPUUQUUDAWFUVKUVEQUVIYFUUBAWGYMYPAWHWIUUQUVKUURPVOPUUQ
      YRPUURYNYQYSUUOYKWJWLUURWMWNVFYCUVCUVDUVFMUVCXTUUSXSOZPQZMHIUUSUVABBXQUUS
      QZXRUVCYBUVMXTXQUUSXNWOUVNYAUVLPXQUUSXSWPWQWRXSUVAQZXTUVDUVMUVFUVCXSUVAXO
      WOUVOUVLUVEPXSUVAUUSWSWQWTXAXBXCXDXEXCXFFGIHBYFUUEXGXH $.

    $( In a normal space, given a closed set ` B ` inside an open set ` A ` ,
       there is an open set ` x ` such that ` B C_ x C_ cls ( x ) C_ A ` .
       (Contributed by Mario Carneiro, 24-Aug-2015.) $)
    nrmsep3 $p |- ( ( J e. Nrm /\ ( A e. J /\ B e. ( Clsd ` J ) /\ B C_ A ) )
      -> E. x e. J ( B C_ x /\ ( ( cls ` J ) ` x ) C_ A ) ) $=
      ( vz vy cnrm wcel cfv wss cv wa wrex cpw cin wral wi wceq rexbidv rspccv
      ccld ctop isnrm pweq ineq2d sseq2 anbi2d raleqbidv simplbiim elin pm5.32i
      ccl elpwg bitri cleq1lem syl5bir syl6 exp4a 3imp2 ) DGHZBDHZCDUAIZHZCBJZC
      AKZJVEDULIIZBJZLZADMZUTVAVCVDVIUTVAEKZVEJZVGLZADMZEVBBNZOZPZVCVDLZVIQUTDU
      BHVKVFFKZJZLZADMZEVBVRNZOZPZFDPVAVPQFEADUCWDVPFBDVRBRZWAVMEWCVOWEWBVNVBVR
      BUDUEWEVTVLADWEVSVGVKVRBVFUFUGSUHTUIVQCVOHZVPVIWFVCCVNHZLVQCVBVNUJVCWGVDC
      BVBUMUKUNVMVIECVOVJCRVLVHADVGVJCVEUOSTUPUQURUS $.

    $( In a normal space, any two disjoint closed sets have the property that
       each one is a subset of an open set whose closure is disjoint from the
       other.  (Contributed by Jeff Hankins, 1-Feb-2010.)  (Revised by Mario
       Carneiro, 24-Aug-2015.) $)
    nrmsep2 $p |- ( ( J e. Nrm /\ ( C e. ( Clsd ` J ) /\ D e. ( Clsd ` J ) /\
      ( C i^i D ) = (/) ) ) -> E. x e. J ( C C_ x /\
        ( ( ( cls ` J ) ` x ) i^i D ) = (/) ) ) $=
      ( cnrm wcel ccld cfv cin c0 wceq w3a wa cv wss ccl cuni cdif wrex syl wb
      simpl simpr2 eqid cldopn simpr1 cldss reldisj 3syl mpbid nrmsep3 syl13anc
      simpr3 ssdifin0 anim2i reximi ) DEFZBDGHZFZCURFZBCIJKZLZMZBANZOZVDDPHHZDQ
      ZCRZOZMZADSZVEVFCIJKZMZADSVCUQVHDFZUSBVHOZVKUQVBUBVCUTVNUQUSUTVAUCCDVGVGU
      DZUETUQUSUTVAUFZVCVAVOUQUSUTVAUMVCUSBVGOVAVOUAVQBDVGVPUGBCVGUHUIUJAVHBDUK
      ULVJVMADVIVLVEVFVGCUNUOUPT $.

    $( In a normal space, disjoint closed sets are separated by open sets.
       (Contributed by Jeff Hankins, 1-Feb-2010.) $)
    nrmsep $p |- ( ( J e. Nrm /\ ( C e. ( Clsd ` J ) /\ D e. ( Clsd ` J ) /\
        ( C i^i D ) = (/) ) ) -> E. x e. J E. y e. J
      ( C C_ x /\ D C_ y /\ ( x i^i y ) = (/) ) ) $=
      ( cnrm wcel ccld cfv cin c0 wceq w3a wa cv wss ccl wrex syl2anc syl incom
      cuni cdif ctop nrmtop ad2antrr elssuni eqid clscld cldopn simprrl simprrr
      ad2antrl syl5eq wb simplr2 cldss reldisj 3syl mpbid sscls disjdif sylancl
      ssrin sseq0 sseq2 ineq2 eqeq1d 3anbi23d rspcev syl13anc nrmsep2 reximddv
      ) EFGZCEHIZGZDVOGZCDJKLZMZNZCAOZPZWAEQIIZDJZKLZNZWBDBOZPZWAWGJZKLZMZBERZA
      EVTWAEGZWFNZNZEUBZWCUCZEGZWBDWQPZWAWQJZKLZWLWOWCVOGZWRWOEUDGZWAWPPZXBVNXC
      VSWNEUEUFZWMXDVTWFWAEUGUMZWAEWPWPUHZUISWCEWPXGUJTVTWMWBWEUKWODWCJZKLZWSWO
      XHWDKDWCUAVTWMWBWEULUNWOVQDWPPXIWSUOVPVQVRVNWNUPDEWPXGUQDWCWPURUSUTWOWTWC
      WQJZPZXJKLXAWOWAWCPZXKWOXCXDXLXEXFWAEWPXGVASWAWCWQVDTWCWPVBWTXJVEVCWKWBWS
      XAMBWQEWGWQLZWHWSWJXAWBWGWQDVFXMWIWTKWGWQWAVGVHVIVJVKACDEVLVM $.

    $( An alternate characterization of normality.  This is the important
       property in the proof of Urysohn's lemma.  (Contributed by Jeff Hankins,
       1-Feb-2010.)  (Proof shortened by Mario Carneiro, 24-Aug-2015.) $)
    isnrm2 $p |- ( J e. Nrm <-> ( J e. Top /\
      A. c e. ( Clsd ` J ) A. d e. ( Clsd ` J ) ( ( c i^i d ) = (/) ->
        E. o e. J ( c C_ o /\ ( ( ( cls ` J ) ` o ) i^i d ) = (/) ) ) ) ) $=
      ( vx wcel cv cin c0 wceq wss cfv wa wrex wral ineq2 eqeq1d anbi2d imbi12d
      wi cnrm ctop ccl ccld nrmtop nrmsep2 3exp2 impd ralrimivv simpl cuni cdif
      jca cpw opncld adantr rexbidv rspcv syl inssdif0 cldss adantl df-ss sylib
      eqid sseq1d syl5bbr simpll elssuni clsss3 syl2an rexbidva sylibd ralimdva
      elin selpw anbi2i bitri imbi1i impexp ralbii2 syl6ibr ralrimdva imp isnrm
      sylanbrc impbii ) BUAFZBUBFZCGZDGZHZIJZWJAGZKZWNBUCLLZWKHZIJZMZABNZTZDBUD
      LZOZCXBOZMZWHWIXDBUEWHXACDXBXBWHWJXBFZWKXBFZXAWHXFXGWMWTAWJWKBUFUGUHUIUMX
      EWIWOWPEGZKZMZABNZCXBXHUNZHZOZEBOZWHWIXDUJWIXDXOWIXDXNEBWIXHBFZMZXDWJXHKZ
      XKTZCXBOXNXQXCXSCXBXQXFMZXCWJBUKZXHULZHZIJZWOWPYBHZIJZMZABNZTZXSXTYBXBFZX
      CYITXQYJXFXHBYAYAVEZUOUPXAYIDYBXBWKYBJZWMYDWTYHYLWLYCIWKYBWJPQYLWSYGABYLW
      RYFWOYLWQYEIWKYBWPPQRUQSURUSXTYDXRYHXKYDWJYAHZXHKXTXRWJYAXHUTXTYMWJXHXTWJ
      YAKZYMWJJXFYNXQWJBYAYKVAVBWJYAVCVDVFVGXTYGXJABXTWNBFZMZYFXIWOYFWPYAHZXHKY
      PXIWPYAXHUTYPYQWPXHYPWPYAKZYQWPJXTWIWNYAKYRYOWIXPXFVHWNBVIWNBYAYKVJVKWPYA
      VCVDVFVGRVLSVMVNXKXSCXMXBWJXMFZXKTXFXRMZXKTXFXSTYSYTXKYSXFWJXLFZMYTWJXBXL
      VOUUAXRXFCXHVPVQVRVSXFXRXKVTVRWAWBWCWDECABWEWFWG $.

    $( A topological space is normal iff any two disjoint closed sets are
       separated by open sets.  (Contributed by Mario Carneiro,
       24-Aug-2015.) $)
    isnrm3 $p |- ( J e. Nrm <-> ( J e. Top /\ A. c e. ( Clsd ` J ) A. d e. (
    Clsd ` J ) ( ( c i^i d ) = (/) -> E. x e. J E. y e. J ( c C_ x /\ d C_ y /\
    ( x i^i y ) = (/) ) ) ) ) $=
      ( wcel cv cin c0 wceq wss wrex wi cfv wral wa jca syl syl2anc ralimdv w3a
      cnrm ctop ccld nrmtop nrmsep 3exp2 impd ralrimivv ccl simpl simpr1 simpr2
      sslin cuni cdif simplll simplr eqid opncld simpr3 simpllr elssuni reldisj
      wb 3syl mpbid clsss2 ssdifin0 sseq0 ex rexlimdva reximdva imim2d sylanbrc
      imp isnrm2 impbii ) CUBFZCUCFZDGZEGZHIJZWAAGZKZWBBGZKZWDWFHIJZUAZBCLZACLZ
      MZECUDNZOZDWMOZPZVSVTWOCUEVSWLDEWMWMVSWAWMFZWBWMFZWLVSWQWRWCWKABWAWBCUFUG
      UHUIQWPVTWCWEWDCUJNNZWBHZIJZPZACLZMZEWMOZDWMOZVSVTWOUKVTWOXFVTWNXEDWMVTWL
      XDEWMVTWKXCWCVTWJXBACVTWDCFZPZWIXBBCXHWFCFZPZWIXBXJWIPZWEXAXJWEWGWHULXKWT
      WSWFHZKZXLIJZXAXKWGXMXJWEWGWHUMWBWFWSUNRXKCUOZWFUPZWMFZWDXPKZXNXKVTXIXQVT
      XGXIWIUQXHXIWIURWFCXOXOUSZUTSXKWHXRXJWEWGWHVAXKXGWDXOKWHXRVEVTXGXIWIVBWDC
      VCWDWFXOVDVFVGXQXRPWSXPKXNXPWDCXOXSVHWSXOWFVIRSWTXLVJSQVKVLVMVNTTVPACDEVQ
      VOVR $.

    $( A subspace of a completely normal space is normal.  (Contributed by
       Mario Carneiro, 26-Aug-2015.) $)
    cnrmi $p |- ( ( J e. CNrm /\ A e. V ) -> ( J |`t A ) e. Nrm ) $=
      ( vx ccnrm wcel wa crest co cuni cin cnrm eqid restin cpw cv wral wss cvv
      inss2 wb inex1g elpwg mpbiri adantl ctop iscnrm simprbi adantr wceq oveq2
      syl eleq1d rspcv sylc eqeltrd ) BEFZACFZGZBAHIBABJZKZHIZLABECUTUTMZNUSVAU
      TOZFZBDPZHIZLFZDVDQZVBLFZURVEUQURVEVAUTRZAUTTURVASFVEVKUAAUTCUBVAUTSUCULU
      DUEUQVIURUQBUFFVIDBUTVCUGUHUIVHVJDVAVDVFVAUJVGVBLVFVABHUKUMUNUOUP $.

    $( A completely normal space is normal.  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    cnrmnrm $p |- ( J e. CNrm -> J e. Nrm ) $=
      ( ccnrm wcel cuni crest cnrm eqid restid cvv uniexg cnrmi mpdan eqeltrrd
      co ) ABCZAADZENZAFABPPGHOPICQFCABJPAIKLM $.

    $( A subspace of a completely normal space is completely normal.
       (Contributed by Mario Carneiro, 26-Aug-2015.) $)
    restcnrm $p |- ( ( J e. CNrm /\ A e. V ) -> ( J |`t A ) e. CNrm ) $=
      ( vx ccnrm wcel wa crest cuni cin eqid restin cnrm wss cvv eqeltrd ctopon
      co cv cfv cpw wral wceq simpll elpwi adantl inex1g ad2antlr restabs cnrmi
      syl3anc adantlr ralrimiva wb ctop cnrmtop adantr toptopon sylib resttopon
      inss2 sylancl iscnrm2 syl mpbird ) BEFZACFZGZBAHRBABIZJZHRZEABECVIVIKZLVH
      VKEFZVKDSZHRZMFZDVJUAZUBZVHVPDVQVHVNVQFZGZVOBVNHRZMVTVFVNVJNZVJOFZVOWAUCV
      FVGVSUDVSWBVHVNVJUEUFVGWCVFVSAVICUGUHVNVJBEOUIUKVFVSWAMFVGVNBVQUJULPUMVHV
      KVJQTFZVMVRUNVHBVIQTFZVJVINWDVHBUOFZWEVFWFVGBUPUQBVIVLURUSAVIVAVJBVIUTVBD
      VKVJVCVDVEP $.
  $}

  ${
    resthauslem.1 $e |- ( J e. A -> J e. Top ) $.
    resthauslem.2 $e |- ( ( J e. A /\
      ( _I |` ( S i^i U. J ) ) : ( S i^i U. J ) -1-1-> ( S i^i U. J ) /\
    ( _I |` ( S i^i U. J ) ) e. ( ( J |`t S ) Cn J ) ) -> ( J |`t S ) e. A ) $.
    $( Lemma for ~ resthaus and similar theorems.  If the topological property
       ` A ` is preserved under injective preimages, then property ` A ` passes
       to subspaces.  (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    resthauslem $p |- ( ( J e. A /\ S e. V ) -> ( J |`t S ) e. A ) $=
      ( wcel wa cuni cin cid cres wf1 crest co ccn simpl wf1o f1oi f1of1 ctopon
      mp1i wss wceq inss2 resabs1 ax-mp cfv ctop adantr eqid toptopon sylib syl
      idcn cnrest sylancl syl5eqelr restin oveq1d eleqtrrd syl3anc ) CAGZBDGZHZ
      VCBCIZJZVGKVGLZMZVHCBNOZCPOZGVJAGVCVDQVGVGVHRVIVEVGSVGVGVHTUBVEVHCVGNOZCP
      OZVKVEVHKVFLZVGLZVMVGVFUCZVOVHUDBVFUEZKVGVFUFUGVEVNCCPOGZVPVOVMGVECVFUAUH
      GZVRVECUIGZVSVCVTVDEUJCVFVFUKZULUMCVFUOUNVQVGVNCCVFWAUPUQURVEVJVLCPBCADVF
      WAUSUTVAFVB $.
  $}

  ${
    $d x J $.  $d x S $.  $d x X $.
    lpcls.1 $e |- X = U. J $.
    $( The limit points of the closure of a subset are the same as the limit
       points of the set in a T_1 space.  (Contributed by Mario Carneiro,
       26-Dec-2016.) $)
    lpcls $p |- ( ( J e. Fre /\ S C_ X ) ->
      ( ( limPt ` J ) ` ( ( cls ` J ) ` S ) ) = ( ( limPt ` J ) ` S ) ) $=
      ( vx wcel wss cfv cdif clsss3 ssdifssd syldan sylan syl2an adantr syl2anc
      wa sseld sscls ssundif ct1 ccl clp csn ctop t1top ccld ssdifss clscld cun
      cv wi t1sncld adantlr uncld sylibr clsss2 sylib com23 mpdd ssdifd syl3anc
      ex clsss impbid wb islp 3bitr4d eqrdv ) BUAFZACGZQZEABUBHZHZBUCHZHZAVOHZV
      LEUKZVNVRUDZIZVMHZFZVRAVSIZVMHZFZVRVPFZVRVQFZVLWBWEVLWBVRCFZWEVLWACVRVJBU
      EFZVKWACGZBUFZWIVKVTCGZWJWIVKQVNCVSABCDJZKVTBCDJLMRVLWHWBWEVLWHWBWEULVLWH
      QZWAWDVRWNWDBUGHZFZVTWDGZWAWDGVLWPWHVJWIWCCGZWPVKWKACVSUHZWCBCDUINOZWNVNV
      SWDUJZGZWQWNXAWOFZAXAGZXBWNVSWOFZWPXCVJWHXEVKVRBCDUMUNWTVSWDBUOPVLXDWHVLW
      CWDGZXDVJWIWRXFVKWKWSWCBCDSNAVSWDTUPOXAABCDUQPVNVSWDTURWDVTBCDUQPRVCUSUTV
      LWDWAVRVLWIWLWCVTGWDWAGVJWIVKWKOVLVNCVSVJWIVKVNCGZWKWMMKVLAVNVSVJWIVKAVNG
      WKABCDSMVAVTWCBCDVDVBRVEVJWIVKWFWBVFZWKWIVKXGXHWMVRVNBCDVGLMVJWIVKWGWEVFW
      KVRABCDVGMVHVI $.

    $( A subset of a perfect space is perfect iff its closure is perfect (and
       the closure is an actual perfect set, since it is both closed and
       perfect in the subspace topology).  (Contributed by Mario Carneiro,
       26-Dec-2016.) $)
    perfcls $p |- ( ( J e. Fre /\ S C_ X ) ->
      ( ( J |`t S ) e. Perf <-> ( J |`t ( ( cls ` J ) ` S ) ) e. Perf ) ) $=
      ( ct1 wcel wss wa clp cfv ccl crest co cperf lpcls wceq sylan wb restperf
      eqid sseq2d cun ctop t1top clslp sseq1d ssequn1 ssun2 eqss mpbiran2 bitri
      syl6bbr bitr2d clsss3 syldan 3bitr4d ) BEFZACGZHZAABIJZJZGZABKJJZVCUTJZGZ
      BALMZNFZBVCLMZNFZUSVEVCVAGZVBUSVDVAVCABCDOUAUSVJAVAUBZVAGZVBUSVCVKVAUQBUC
      FZURVCVKPBUDZABCDUEQUFVBVKVAPZVLAVAUGVOVLVAVKGVAAUHVKVAUIUJUKULUMUQVMURVG
      VBRVNBVFCADVFTSQUQVMURVIVERZVNVMURVCCGVPABCDUNBVHCVCDVHTSUOQUP $.
  $}

  $( A subspace of a T_0 topology is T_0.  (Contributed by Mario Carneiro,
     25-Aug-2015.) $)
  restt0 $p |- ( ( J e. Kol2 /\ A e. V ) -> ( J |`t A ) e. Kol2 ) $=
    ( ct0 t0top cid cuni cin cres crest co cnt0 resthauslem ) DABCBEFABGHZIBAJK
    BNNLM $.

  $( A subspace of a T_1 topology is T_1.  (Contributed by Mario Carneiro,
     25-Aug-2015.) $)
  restt1 $p |- ( ( J e. Fre /\ A e. V ) -> ( J |`t A ) e. Fre ) $=
    ( ct1 t1top cid cuni cin cres crest co cnt1 resthauslem ) DABCBEFABGHZIBAJK
    BNNLM $.

  $( A subspace of a Hausdorff topology is Hausdorff.  (Contributed by Mario
     Carneiro, 2-Mar-2015.)  (Proof shortened by Mario Carneiro,
     25-Aug-2015.) $)
  resthaus $p |- ( ( J e. Haus /\ A e. V ) -> ( J |`t A ) e. Haus ) $=
    ( cha haustop cid cuni cin cres crest co cnhaus resthauslem ) DABCBEFABGHZI
    BAJKBNNLM $.

  ${
    $d o x y A $.  $d o y B $.  $d x y C $.  $d o x y J $.  $d o x y X $.
    t1sep.1 $e |- X = U. J $.
    $( Any two points in a T_1 space which have no separation are equal.
       (Contributed by Jeff Hankins, 1-Feb-2010.) $)
    t1sep2 $p |- ( ( J e. Fre /\ A e. X /\ B e. X ) ->
      ( A. o e. J ( A e. o -> B e. o ) -> A = B ) ) $=
      ( vx vy ct1 wcel cv wi wral wceq wa ctopon cfv eleq1 ralbidv imbi12d ctop
      wb t1top toptopon sylib ist1-2 syl imbi1d eqeq1 imbi2d eqeq2 rspc2v mpan9
      ibi 3impb ) DIJZAEJZBEJZACKZJZBUSJZLZCDMZABNZLZUPGKZUSJZHKZUSJZLZCDMZVFVH
      NZLZHEMGEMZUQUROVEUPVNUPDEPQJZUPVNUBUPDUAJVODUCDEFUDUEGHCDEUFUGUNVMVEUTVI
      LZCDMZAVHNZLGHABEEVFANZVKVQVLVRVSVJVPCDVSVGUTVIVFAUSRUHSVFAVHUITVHBNZVQVC
      VRVDVTVPVBCDVTVIVAUTVHBUSRUJSVHBAUKTULUMUO $.

    $( Any two distinct points in a T_1 space are separated by an open set.
       (Contributed by Jeff Hankins, 1-Feb-2010.) $)
    t1sep $p |- ( ( J e. Fre /\ ( A e. X /\ B e. X /\ A =/= B ) ) ->
      E. o e. J ( A e. o /\ -. B e. o ) ) $=
      ( ct1 wcel wne w3a wa cv wi wral wn wrex simpr3 wceq t1sep2 3adant3r3 mpd
      necon3ad rexanali sylibr ) DGHZAEHZBEHZABIZJKZACLZHZBUJHZMCDNZOZUKULOKCDP
      UIUHUNUEUFUGUHQUIUMABUEUFUGUMABRMUHABCDEFSTUBUAUKULCDUCUD $.

    $( A singleton is closed in a Hausdorff space.  (Contributed by NM,
       5-Mar-2007.)  (Revised by Mario Carneiro, 24-Aug-2015.) $)
    sncld $p |- ( ( J e. Haus /\ P e. X ) -> { P } e. ( Clsd ` J ) ) $=
      ( cha wcel ct1 csn ccld cfv haust1 t1sncld sylan ) BEFBGFACFAHBIJFBKABCDL
      M $.

    ${
      sshauslem.2 $e |- ( J e. A -> J e. Top ) $.
      sshauslem.3 $e |- ( ( J e. A /\
        ( _I |` X ) : X -1-1-> X /\ ( _I |` X ) e. ( K Cn J ) ) -> K e. A ) $.
      $( Lemma for ~ sshaus and similar theorems.  If the topological property
         ` A ` is preserved under injective preimages, then a topology finer
         than one with property ` A ` also has property ` A ` .  (Contributed
         by Mario Carneiro, 25-Aug-2015.) $)
      sshauslem $p |- ( ( J e. A /\ K e. ( TopOn ` X ) /\ J C_ K ) ->
        K e. A ) $=
        ( wcel ctopon cfv wss w3a cid cres wf1 ccn co simp1 wf1o f1oi mp1i ctop
        f1of1 simp3 simp2 3ad2ant1 toptopon sylib ssidcn syl2anc mpbird syl3anc
        wb ) BAHZCDIJZHZBCKZLZUNDDMDNZOZUSCBPQHZCAHUNUPUQRDDUSSUTURDTDDUSUCUAUR
        VAUQUNUPUQUDURUPBUOHZVAUQUMUNUPUQUEURBUBHZVBUNUPVCUQFUFBDEUGUHCBDUIUJUK
        GUL $.
    $}

    $( A topology finer than a T_0 topology is T_0.  (Contributed by Mario
       Carneiro, 25-Aug-2015.) $)
    sst0 $p |- ( ( J e. Kol2 /\ K e. ( TopOn ` X ) /\ J C_ K ) ->
      K e. Kol2 ) $=
      ( ct0 t0top cid cres cnt0 sshauslem ) EABCDAFGCHBACCIJ $.

    $( A topology finer than a T_1 topology is T_1.  (Contributed by Mario
       Carneiro, 25-Aug-2015.) $)
    sst1 $p |- ( ( J e. Fre /\ K e. ( TopOn ` X ) /\ J C_ K ) ->
      K e. Fre ) $=
      ( ct1 t1top cid cres cnt1 sshauslem ) EABCDAFGCHBACCIJ $.

    $( A topology finer than a Hausdorff topology is Hausdorff.  (Contributed
       by Mario Carneiro, 2-Mar-2015.) $)
    sshaus $p |- ( ( J e. Haus /\ K e. ( TopOn ` X ) /\ J C_ K ) ->
      K e. Haus ) $=
      ( cha haustop cid cres cnhaus sshauslem ) EABCDAFGCHBACCIJ $.

    $( In a regular space, a closed set is separated by open sets from a point
       not in it.  (Contributed by Jeff Hankins, 1-Feb-2010.)  (Revised by
       Mario Carneiro, 25-Aug-2015.) $)
    regsep2 $p |- ( ( J e. Reg /\
      ( C e. ( Clsd ` J ) /\ A e. X /\ -. A e. C ) ) ->
        E. x e. J E. y e. J ( C C_ x /\ A e. y /\ ( x i^i y ) = (/) ) ) $=
      ( wcel cfv w3a wa cv wss cin c0 wceq wrex cdif syl2anc syl creg ccld ctop
      ccl regtop ad2antrr cuni elssuni syl6sseqr ad2antrl clscld cldopn simprrr
      wn wb clsss3 simplr1 cldss ssconb mpbid simprrl sscls sslin incom disjdif
      eqtri sseq0 sseq2 ineq1 eqeq1d 3anbi13d rspcev simpl simpr1 simpr2 simpr3
      sylancl syl13anc eldifd regsep syl3anc reximddv rexcom sylib ) EUAHZDEUBI
      ZHZCFHZCDHUNZJZKZDALZMZCBLZHZWLWNNZOPZJZAEQZBEQWRBEQAEQWKWOWNEUDIIZFDRZMZ
      KZWSBEWKWNEHZXCKZKZFWTRZEHZDXGMZWOXGWNNZOPZWSXFWTWFHZXHXFEUCHZWNFMZXLWEXM
      WJXEEUEUFZXDXNWKXCXDWNEUGFWNEUHGUIUJZWNEFGUKSWTEFGULTXFXBXIWKXDWOXBUMXFWT
      FMZDFMZXBXIUOXFXMXNXQXOXPWNEFGUPSXFWGXRWGWHWIWEXEUQDEFGURTWTDFUSSUTWKXDWO
      XBVAXFXJXGWTNZMZXSOPXKXFWNWTMZXTXFXMXNYAXOXPWNEFGVBSWNWTXGVCTXSWTXGNOXGWT
      VDWTFVEVFXJXSVGVQWRXIWOXKJAXGEWLXGPZWMXIWQXKWOWLXGDVHYBWPXJOWLXGWNVIVJVKV
      LVRWKWEXAEHZCXAHXCBEQWEWJVMWKWGYCWEWGWHWIVNDEFGULTWKCFDWEWGWHWIVOWEWGWHWI
      VPVSBCXAEVTWAWBWRBAEEWCWD $.
  $}

  ${
    $d c o p x y J $.  $d c o p x y X $.
    $( A topological space is regular if any closed set is separated from any
       point not in it by neighborhoods.  (Contributed by Jeff Hankins,
       1-Feb-2010.)  (Revised by Mario Carneiro, 25-Aug-2015.) $)
    isreg2 $p |- ( J e. ( TopOn ` X ) -> ( J e. Reg <-> A. c e. ( Clsd ` J )
      A. x e. X ( -. x e. c -> E. o e. J E. p e. J
        ( c C_ o /\ x e. p /\ ( o i^i p ) = (/) ) ) ) ) $=
      ( vy cfv wcel cv wn wss c0 wceq w3a wrex wi wral wa cdif ctopon creg ccld
      cin cuni simp1r simp2l simp2r simp1l toponuni eleqtrd simp3 eqid syl13anc
      syl regsep2 3expia ralrimivva ctop topontop adantr difeq1d opncld eqeltrd
      ccl sylan eleq2 notbid eldif baibr con1bid sylan9bb simpl sseq1d 2rexbidv
      3anbi1d imbi12d ralbidva ralcom3 toponss sselda simprr2 ad3antrrr simprll
      rspcv syl2anc incom simprr3 syl5eq simplll simprlr reldisj clsss2 simprr1
      mpbid difcom sylib sstrd expr anassrs reximdva rexlimdva embantd ralimdva
      wb jca syl5bi syld ralrimdva imp isreg sylanbrc impbida ) CDUAHIZCUBIZAJZ
      FJZIZKZXQBJZLZXPEJZIZXTYBUDZMNZOZECPBCPZQZADRZFCUCHZRZXNXOSZYHFAYJDYLXQYJ
      IZXPDIZSZXSYGYLYOXSOZXOYMXPCUEZIXSYGXNXOYOXSUFYLYMYNXSUGYPXPDYQYLYMYNXSUH
      YPXNDYQNZXNXOYOXSUIDCUJZUOUKYLYOXSULBEXPXQCYQYQUMZUPUNUQURXNYKSCUSIZYCYBC
      VEHHZGJZLZSZECPZAUUCRZGCRZXOXNUUAYKDCUTZVAXNYKUUHXNYKUUGGCXNUUCCIZSZYKXPU
      UCIZDUUCTZXTLZYCYEOZECPZBCPZQZADRZUUGUUKUUMYJIYKUUSQUUKUUMYQUUCTZYJUUKDYQ
      UUCXNYRUUJYSVAVBXNUUAUUJUUTYJIUUIUUCCYQYTVCVFVDYIUUSFUUMYJXQUUMNZYHUURADU
      VAYNSZXSUULYGUUQUVAXSXPUUMIZKYNUULUVAXRUVCXQUUMXPVGVHYNUULUVCUVCYNUULKXPD
      UUCVIVJVKVLUVBYFUUOBECCUVBYAUUNYCYEUVBXQUUMXTUVAYNVMVNVPVOVQVRWEUOUUSYNUU
      QQZAUUCRUUKUUGUUQADUUCVSUUKUVDUUFAUUCUUKUULSZYNUUQUUFUUKUUCDXPUUCCDVTWAUV
      EUUPUUFBCUVEXTCIZSUUOUUEECUVEUVFYBCIZUUOUUEQUVEUVFUVGSZUUOUUEUVEUVHUUOSZS
      ZYCUUDUUNYCYEUVHUVEWBUVJUUBDXTTZUUCUVJUVKYJIYBUVKLZUUBUVKLUVJUVKYQXTTZYJU
      VJDYQXTXNYRUUJUULUVIYSWCVBUVJUUAUVFUVMYJIXNUUAUUJUULUVIUUIWCUVEUVFUVGUUOW
      DXTCYQYTVCWFVDUVJYBXTUDZMNZUVLUVJUVNYDMYBXTWGUUNYCYEUVHUVEWHWIUVJYBDLZUVO
      UVLXEUVJXNUVGUVPXNUUJUULUVIWJUVEUVFUVGUUOWKYBCDVTWFYBXTDWLUOWOUVKYBCYQYTW
      MWFUVJUUNUVKUUCLUUNYCYEUVHUVEWNDUUCXTWPWQWRXFWSWTXAXBXCXDXGXHXIXJGAECXKXL
      XM $.
  $}

  ${
    dnsconst.1 $e |- X = U. J $.
    dnsconst.2 $e |- Y = U. K $.
    $( If a continuous mapping to a T_1 space is constant on a dense subset, it
       is constant on the entire space.  Note that
       ` ( ( cls `` J ) `` A ) = X ` means " ` A ` is dense in ` X ` " and
       ` A C_ ( ``' F " { P } ) ` means " ` F ` is constant on ` A ` " (see
       ~ funconstss ).  (Contributed by NM, 15-Mar-2007.)  (Proof shortened by
       Mario Carneiro, 21-Aug-2015.) $)
    dnsconst $p |- ( ( ( K e. Fre /\ F e. ( J Cn K ) ) /\
      ( P e. Y /\ A C_ ( `' F " { P } ) /\ ( ( cls ` J ) ` A ) = X ) ) ->
        F : X --> { P } ) $=
      ( ct1 wcel ccn co wa ccnv wss cfv wf ccld syl2anc csn cima ccl w3a simplr
      wceq wfn cnf ffn 3syl simpr3 simpll simpr1 t1sncld simpr2 clsss2 eqsstr3d
      cnclima fconst3 sylanbrc ) EJKZCDELMKZNZBGKZACOBUAZUBZPZADUCQQZFUFZUDZNZC
      FUGZFVFPFVECRVKVBFGCRVLVAVBVJUEZCDEFGHIUHFGCUIUJVKFVHVFVCVDVGVIUKVKVFDSQK
      ZVGVHVFPVKVBVEESQKZVNVMVKVAVDVOVAVBVJULVCVDVGVIUMBEGIUNTVECDEURTVCVDVGVIU
      OVFADFHUPTUQFBCUSUT $.
  $}

  ${
    $d x y R $.
    $( The order topology is T_1 for any poset.  (Contributed by Mario
       Carneiro, 3-Sep-2015.) $)
    ordtt1 $p |- ( R e. PosetRel -> ( ordTop ` R ) e. Fre ) $=
      ( vx vy cps wcel cordt cfv ctop cv csn ccld cuni wral ct1 ordttop cdm wbr
      wa wceq eqid crab cin snssi adantl sseqin2 sylib velsn psref adantr breq2
      wss jca breq1 anbi12d syl5ibrcom w3a psasym eqcomd 3expib ad2antrr impbid
      wi syl5bb rabbi2dva eqtr3d ordtcld3 3anidm23 ralrimiva ordttopon toponuni
      eqeltrd ctopon syl raleqdv mpbid ist1 sylanbrc ) ADEZAFGZHEBIZJZVSKGZEZBV
      SLZMZVSNEADOVRWCBAPZMWEVRWCBWFVRVTWFEZRZWAVTCIZAQZWIVTAQZRZCWFUAZWBWHWFWA
      UBZWAWMWHWAWFUKZWNWASWGWOVRVTWFUCUDWAWFUEUFWHWLCWFWAWIWAEWIVTSZWHWIWFEZRZ
      WLCVTUGWRWPWLWRWLWPVTVTAQZWSRWRWSWSWHWSWQVTAWFWFTZUHUIZXAULWPWJWSWKWSWIVT
      VTAUJWIVTVTAUMUNUOVRWLWPVBWGWQVRWJWKWPVRWJWKUPVTWIVTWIAUQURUSUTVAVCVDVEVR
      WGWMWBECVTVTADWFWTVFVGVKVHVRWCBWFWDVRVSWFVLGEWFWDSADWFWTVIWFVSVJVMVNVOVSW
      DBWDTVPVQ $.
  $}

  ${
    $d j k x y A $.  $d j k x y B $.  $d j k x y J $.  $d j k x y ph $.
    $d j k F $.
    lmmo.1 $e |- ( ph -> J e. Haus ) $.
    lmmo.4 $e |- ( ph -> F ( ~~>t ` J ) A ) $.
    lmmo.5 $e |- ( ph -> F ( ~~>t ` J ) B ) $.
    $( A sequence in a Hausdorff space converges to at most one limit.  Part of
       Lemma 1.4-2(a) of [Kreyszig] p. 26.  (Contributed by NM, 31-Jan-2008.)
       (Proof shortened by Mario Carneiro, 1-May-2014.) $)
    lmmo $p |- ( ph -> A = B ) $=
      ( vx vy vk vj cv wcel wrex wn wa cfv wral cn cin c0 wceq w3a an4 cuz nnuz
      wi c1 simprr 1zzd clm wbr adantr simprl lmcvg ex anim12d rexanuz2 wne nnz
      cz uzid ne0i 3syl r19.2z elin n0i sylbir rexlimivw sylan rexlimiva syl5bi
      syl syl6 expdimp imnan df-3an sylnibr anassrs nrexdv cha cuni ctopon ctop
      sylib haustop eqid toptopon lmcl syl2anc hausnei 3exp2 syl3c necon1bd mpd
      ) ABIMZNZCJMZNZWQWSUAZUBUCZUDZJEOZIEOZPBCUCAXDIEAWQENZQXCJEAXFWSENZXCPAXF
      XGQZQZWRWTQZXBQZXCXIXJXBPZUHXKPAXHXJXLXHXJQXFWRQZXGWTQZQZAXLXFXGWRWTUEAXO
      KMDRZWQNZKLMZUFRZSLTOZXPWSNZKXSSLTOZQZXLAXMXTXNYBAXMXTAXMQZBWQLKDEUITUGAX
      FWRUJYDUKADBEULRZUMZXMGUNAXFWRUOUPUQAXNYBAXNQZCWSLKDEUITUGAXGWTUJYGUKADCY
      EUMZXNHUNAXGWTUOUPUQURYCXQYAQZKXSSZLTOXLXQYALKUITUGUSYJXLLTXRTNZXSUBUTZYJ
      XLYKXRVBNXRXSNYLXRVAXRVCXSXRVDVEYLYJQYIKXSOXLYIKXSVFYIXLKXSYIXPXANXLXPWQW
      SVGXAXPVHVIVJVNVKVLVIVOVMVPXJXBVQWFWRWTXBVRVSVTWAWAAXEBCAEWBNZBEWCZNZCYNN
      ZBCUTZXEUHFAEYNWDRNZYFYOAEWENZYRAYMYSFEWGVNEYNYNWHZWIWFZGBDEYNWJWKAYRYHYP
      UUAHCDEYNWJWKYMYOYPYQXEBCJIEYNYTWLWMWNWOWP $.
  $}

  ${
    $d x y z J $.
    $( The convergence relation is function-like in a Hausdorff space.
       (Contributed by Mario Carneiro, 26-Dec-2013.) $)
    lmfun $p |- ( J e. Haus -> Fun ( ~~>t ` J ) ) $=
      ( vx vy vz cha wcel clm cfv wrel cv wbr wa weq wal wfun lmrel a1i alrimiv
      wi simpl simprl simprr lmmo ex dffun2 sylanbrc ) AEFZAGHZIZBJZCJZUHKZUJDJ
      ZUHKZLZCDMZSZDNZCNZBNUHOUIUGAPQUGUSBUGURCUGUQDUGUOUPUGUOLUKUMUJAUGUOTUGUL
      UNUAUGULUNUBUCUDRRRBCDUHUEUF $.
  $}

  ${
    $d u v x y A $.  $d x y V $.
    $( A discrete topology is Hausdorff.  Morris, Topology without tears, p.72,
       ex. 13.  (Contributed by FL, 24-Jun-2007.)  (Proof shortened by Mario
       Carneiro, 8-Apr-2015.) $)
    dishaus $p |- ( A e. V -> ~P A e. Haus ) $=
      ( vx vy vu vv wcel cv cin c0 wceq w3a wrex wral csn wss snssd snex elpw
      wa cpw ctop wne wi cha distop simplrl sylibr simplrr vsnid disjsn2 adantl
      a1i eleq2 ineq1 3anbi13d ineq2 3anbi23d rspc2ev syl113anc ralrimivva cuni
      eqeq1d ex unipw eqcomi ishaus sylanbrc ) ABGZAUAZUBGCHZDHZUCZVKEHZGZVLFHZ
      GZVNVPIZJKZLZFVJMEVJMZUDZDANCANVJUEGABUFVIWBCDAAVIVKAGZVLAGZTTZVMWAWEVMTZ
      VKOZVJGZVLOZVJGZVKWGGZVLWIGZWGWIIZJKZWAWFWGAPWHWFVKAVIWCWDVMUGQWGAVKRSUHW
      FWIAPWJWFVLAVIWCWDVMUIQWIAVLRSUHWKWFCUJUMWLWFDUJUMVMWNWEVKVLUKULVTWKWLWNL
      WKVQWGVPIZJKZLEFWGWIVJVJVNWGKZVOWKVSWPVQVNWGVKUNWQVRWOJVNWGVPUOVCUPVPWIKZ
      VQWLWPWNWKVPWIVLUNWRWOWMJVPWIWGUQVCURUSUTVDVACDFEVJAVJVBAAVEVFVGVH $.
  $}

  ${
    $d m n x y A $.  $d m n x y B $.  $d m n x y R $.  $d m n x y X $.
    ordthauslem.1 $e |- X = dom R $.
    $( Lemma for ~ ordthaus .  (Contributed by Mario Carneiro, 13-Sep-2015.) $)
    ordthauslem $p |- ( ( R e. TosetRel /\ A e. X /\ B e. X ) -> ( A R B ->
      ( A =/= B -> E. m e. ( ordTop ` R ) E. n e. ( ordTop ` R )
        ( A e. m /\ B e. n /\ ( m i^i n ) = (/) ) ) ) ) $=
      ( vx vy ctsr wcel w3a wbr cin c0 wceq wa wn crab syl2anc wne cv cordt cfv
      wrex simpll1 simpll3 ordtopn2 simpll2 ordtopn1 simprr cps wi simpl1 tsrps
      syl simprl psasym 3expia necon3ad adantr breq2 elrab sylanbrc breq1 simpr
      notbid eleq2 ineq1 eqeq1d 3anbi13d ineq2 inrab 3anbi23d rspc2ev syl113anc
      mpd syl6eq ex rabn0 simprrr simprrl wral wo tsrlin 3expa sylan oran sylib
      jca ralrimiva rabeq0 sylibr rexlimdvaa syl5bi pm2.61dne exp32 ) CJKZAFKZB
      FKZLZABCMZABUAZADUBZKZBEUBZKZXDXFNZOPZLZECUCUDZUEDXKUEZXAXBXCQZQZXLBHUBZC
      MZRZXOACMZRZQZHFSZOXNYAOPZXLXNYBQZXQHFSZXKKZXSHFSZXKKZAYDKZBYFKZYBXLYCWRW
      TYEWRWSWTXMYBUFZWRWSWTXMYBUGZHBCJFGUHTYCWRWSYGYJWRWSWTXMYBUIZHACJFGUJTYCW
      SBACMZRZYHYLXNYNYBXNXCYNXAXBXCUKXNYMABXNCULKZXBYMABPZUMXNWRYOWRWSWTXMUNCU
      OUPXAXBXCUQYOXBYMYPABCURUSTUTVQVAZXQYNHAFXOAPXPYMXOABCVBVGVCVDYCWTYNYIYKY
      QXSYNHBFXOBPXRYMXOBACVEVGVCVDXNYBVFXJYHYIYBLYHXGYDXFNZOPZLDEYDYFXKXKXDYDP
      ZXEYHXIYSXGXDYDAVHYTXHYROXDYDXFVIVJVKXFYFPZXGYIYSYBYHXFYFBVHUUAYRYAOUUAYR
      YDYFNYAXFYFYDVLXQXSHFVMVRVJVNVOVPVSYAOUAXTHFUEXNXLXTHFVTXNXTXLHFXNXOFKZXT
      QZQZXOIUBZCMZRZIFSZXKKZUUEXOCMZRZIFSZXKKZAUUHKZBUULKZUUGUUKQZIFSZOPZXLUUD
      WRUUBUUIWRWSWTXMUUCUFZXNUUBXTUQZIXOCJFGUHTUUDWRUUBUUMUUSUUTIXOCJFGUJTUUDW
      SXSUUNWRWSWTXMUUCUIXNUUBXQXSWAUUGXSIAFUUEAPUUFXRUUEAXOCVBVGVCVDUUDWTXQUUO
      WRWSWTXMUUCUGXNUUBXQXSWBUUKXQIBFUUEBPUUJXPUUEBXOCVEVGVCVDUUDUUPRZIFWCUURU
      UDUVAIFUUDUUEFKZQUUFUUJWDZUVAUUDWRUUBQUVBUVCUUDWRUUBUUSUUTWJWRUUBUVBUVCXO
      UUECFGWEWFWGUUFUUJWHWIWKUUPIFWLWMXJUUNUUOUURLUUNXGUUHXFNZOPZLDEUUHUULXKXK
      XDUUHPZXEUUNXIUVEXGXDUUHAVHUVFXHUVDOXDUUHXFVIVJVKXFUULPZXGUUOUVEUURUUNXFU
      ULBVHUVGUVDUUQOUVGUVDUUHUULNUUQXFUULUUHVLUUGUUKIFVMVRVJVNVOVPWNWOWPWQ $.
  $}

  ${
    $d m n x y R $.
    $( The order topology of a total order is Hausdorff.  (Contributed by Mario
       Carneiro, 13-Sep-2015.) $)
    ordthaus $p |- ( R e. TosetRel -> ( ordTop ` R ) e. Haus ) $=
      ( vx vy vm vn ctsr wcel cfv cv wne cin wceq w3a wrex wral wbr ordthauslem
      c0 wi bitri cordt cha cdm eqid necom 3ancoma incom eqeq1i 3anbi3i 2rexbii
      rexcom imbi12i syl6ib 3com23 tsrlin mpjaod ralrimivva ctopon wb ordttopon
      3expb ishaus2 syl mpbird ) AFGZAUAHZUBGZBIZCIZJZVHDIZGZVIEIZGZVKVMKZRLZMZ
      EVFNDVFNZSZCAUCZOBVTOZVEVSBCVTVTVEVHVTGZVIVTGZVSVEWBWCMVHVIAPVSVIVHAPZVHV
      IADEVTVTUDZQVEWCWBWDVSSVEWCWBMWDVIVHJZVNVLVMVKKZRLZMZDVFNEVFNZSVSVIVHAEDV
      TWEQWFVJWJVRVIVHUEWJVQDVFNEVFNVRWIVQEDVFVFWIVLVNWHMVQVNVLWHUFWHVPVLVNWGVO
      RVMVKUGUHUITUJVQEDVFVFUKTULUMUNVHVIAVTWEUOUPVAUQVEVFVTURHGVGWAUSAFVTWEUTB
      CEDVFVTVBVCVD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Compactness
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Comp $.

  $( Extend class notation with the class of all compact spaces. $)
  ccmp $a class Comp $.

  ${
    $d x y z $.
    $( Definition of a compact topology.  A topology is compact iff any open
       covering of its underlying set contains a finite sub-covering
       (Heine-Borel property).  Definition C''' of [BourbakiTop1] p.  I.59.
       Note:  Bourbaki uses the term quasi-compact topology but it is not the
       modern usage (which we follow).  (Contributed by FL, 22-Dec-2008.) $)
    df-cmp $a |- Comp = { x e. Top | A. y e. ~P x ( U. x = U. y
      -> E. z e. ( ~P y i^i Fin ) U. x = U. z ) } $.
  $}

  ${
    $d f s u x y z A $.  $d r s u x y z J $.  $d f s u x ph $.  $d s u z ps $.
    $d r s S $.  $d r u x X $.
    iscmp.1 $e |- X = U. J $.
    $( The predicate "is a compact topology".  (Contributed by FL,
       22-Dec-2008.)  (Revised by Mario Carneiro, 11-Feb-2015.) $)
    iscmp $p |- ( J e. Comp <-> ( J e. Top /\ A. y e. ~P J
      ( X = U. y -> E. z e. ( ~P y i^i Fin ) X = U. z ) ) ) $=
      ( vx cv cuni wceq cpw cfn cin wrex wi wral ctop ccmp pweq unieq eqeq1d
      syl6eqr rexbidv imbi12d raleqbidv df-cmp elrab2 ) FGZHZAGZHZIZUHBGHZIZBUI
      JKLZMZNZAUGJZODUJIZDULIZBUNMZNZACJZOFCPQUGCIZUPVAAUQVBUGCRVCUKURUOUTVCUHD
      UJVCUHCHDUGCSEUAZTVCUMUSBUNVCUHDULVDTUBUCUDFABUEUF $.

    $( An open cover of a compact topology has a finite subcover.  (Contributed
       by Jeff Hankins, 29-Jun-2009.) $)
    cmpcov $p |- ( ( J e. Comp /\ S C_ J /\ X = U. S ) ->
                    E. s e. ( ~P S i^i Fin ) X = U. s ) $=
      ( vr ccmp wcel wss cuni wceq cv cpw cfn cin wrex wa wi unieq cvv iscmp wb
      eqeq2d pweq ineq1d rexeqdv imbi12d wral simprbi adantr simpr ssexg ancoms
      ctop elpwg syl mpbird rspcdva 3impia ) BGHZABIZCAJZKZCDLJKZDAMZNOZPZUTVAQ
      ZCFLZJZKZVDDVIMZNOZPZRZVCVGRFBMZAVIAKZVKVCVNVGVQVJVBCVIASUCVQVDDVMVFVQVLV
      ENVIAUDUEUFUGUTVOFVPUHZVAUTBUNHVRFDBCEUAUIUJVHAVPHZVAUTVAUKVHATHZVSVAUBVA
      UTVTABGULUMABTUOUPUQURUS $.

    $( Rewrite ~ cmpcov for the cover ` { y e. J | ph } ` .  (Contributed by
       Mario Carneiro, 11-Sep-2015.) $)
    cmpcov2 $p |- ( ( J e. Comp /\ A. x e. X E. y e. J ( x e. y /\ ph ) ) ->
                    E. s e. ( ~P J i^i Fin ) ( X = U. s /\ A. y e. s ph ) ) $=
      ( wcel cv wa wrex wral cuni wceq cpw cfn cin wss anbi1i an32 dfss3 ralbii
      ccmp crab elunirab sylbbr ssrab2 unissi sseqtr4i a1i cmpcov mp3an2 sylan2
      eqssd ssrab anass 3bitri 3bitr4i elfpw rexbii2 sylib ) DUCHZBIZCIHAJCDKZB
      ELZJEFIZMNZFACDUDZOPQZKZVGACVFLZJZFDOPQZKVEVBEVHMZNZVJVEEVNEVNRVCVNHZBELV
      EBEVNUAVPVDBEACVCDUEUBUFVNERVEVNDMEVHDACDUGZUHGUIUJUNVBVHDRVOVJVQVHDEFGUK
      ULUMVGVLFVIVMVFVHRZVFPHZJZVGJZVFDRZVSJZVLJZVFVIHZVGJVFVMHZVLJVRVGJZVSJWBV
      LJZVSJWAWDWGWHVSWGWBVKJZVGJWBVGJVKJWHVRWIVGACDVFUOSWBVKVGTWBVGVKUPUQSVRVS
      VGTWBVSVLTURWEVTVGVFVHUSSWFWCVLVFDUSSURUTVA $.

    $d s X $.
    cmpcovf.2 $e |- ( z = ( f ` y ) -> ( ph <-> ps ) ) $.
    $( Combine ~ cmpcov with ~ ac6sfi to show the existence of a function that
       indexes the elements that are generating the open cover.  (Contributed
       by Mario Carneiro, 14-Sep-2014.) $)
    cmpcovf $p |- ( ( J e. Comp /\
      A. x e. X E. y e. J ( x e. y /\ E. z e. A ph ) ) ->
      E. s e. ( ~P J i^i Fin ) ( X = U. s /\
        E. f ( f : s --> A /\ A. y e. s ps ) ) ) $=
      ( vu wcel cv wrex wa wral wceq cfn ccmp cuni cpw cin wf wex simpl cmpcov2
      wss elfpw simplrl selpw sylibr simplrr elind simprl simprr ac6sfi syl2anc
      wi unieq eqeq2d raleq anbi12d exbidv rspcev syl12anc ex sylan2b rexlimdva
      feq2 sylc ) HUANZCODONAEFPZQDHPCIRZQVMIMOZUBZSZVNDVPRZQZMHUCZTUDZPIJOZUBZ
      SZWCFGOZUEZBDWCRZQZGUFZQZJWBPZVMVOUGVNCDHIMKUHVMVTWLMWBVPWBNZVMVPHUIZVPTN
      ZQZVTWLUTVPHUJVMWPQZVTWLWQVTQZWMVRVPFWFUEZBDVPRZQZGUFZWLWRWATVPWRWNVPWANV
      MWNWOVTUKMHULUMVMWNWOVTUNZUOWQVRVSUPWRWOVSXBXCWQVRVSUQABDEVPFGLURUSWKVRXB
      QJVPWBWCVPSZWEVRWJXBXDWDVQIWCVPVAVBXDWIXAGXDWGWSWHWTWCVPFWFVKBDWCVPVCVDVE
      VDVFVGVHVIVJVL $.
  $}

  ${
    $d c d s u v x y F $.  $d c d s u v x y J $.  $d c d s u v x y K $.
    $d c d s u v x y X $.  $d c d s u v x y Y $.
    cncmp.2 $e |- Y = U. K $.
    $( Compactness is respected by a continuous onto map.  (Contributed by Jeff
       Hankins, 12-Jul-2009.)  (Proof shortened by Mario Carneiro,
       22-Aug-2015.) $)
    cncmp $p |- ( ( J e. Comp /\ F : X -onto-> Y /\ F e. ( J Cn K ) ) ->
        K e. Comp ) $=
      ( vu vy vc vd wcel cv cuni wceq cfn wral wss wa cima syl vv vs vx wfo ccn
      ccmp co w3a ctop cpw cin wrex wi cntop2 3ad2ant3 elpwi ccnv crn simpl1 wf
      cmpt simprl sselda simpl3 cnima sylan syldan fmptd frn simprr imaeq2d cnf
      eqid fimacnv ralrimiva dfiun2g imauni rnmpt unieqi 3eqtr4g 3eqtr3d cmpcov
      ciun cab syl3anc elfpw simprll simpll2 elssuni syl6sseqr foimacnv syl2anc
      eqeltrd wb imaeq2 eleq1d ralrnmpt mpbird adantr r19.21bi simprlr syl5eqel
      simpr abrexfi sylanbrc cdm fdm fof 3syl foima unieq eqeq2d rspcev sylan2b
      expr rexlimdva mpd sylan2 iscmp ) BUFKZDEAUDZABCUEUGKZUHZCUIKZEGLZMZNZEUA
      LZMZNZUAYEUJOUKZULZUMZGCUJZPCUFKYBXTYDYAABCUNUOYCYMGYNYEYNKYCYECQZYMYECUP
      YCYOYGYLYCYOYGRZRZBMZUBLZMZNZUBHYEAUQZHLZSZVAZURZUJOUKZULZYLYQXTUUFBQZYRU
      UFMZNUUHXTYAYBYPUSYQYEBUUEUTUUIYQHYEUUDBUUEYQUUCYEKZUUCCKZUUDBKZYQYECUUCY
      CYOYGVBVCZYQYBUULUUMXTYAYBYPVDZUUCABCVEVFVGZUUEVMZVHYEBUUEVITYQUUBESZUUBY
      FSZYRUUJYQEYFUUBYCYOYGVJVKYQYREAUTZUURYRNYQYBUUTUUOABCYREYRVMZFVLTZYREAVN
      TYQHYEUUDWCZUCLUUDNHYEULUCWDZMZUUSUUJYQUUMHYEPZUVCUVENYQUUMHYEUUPVOZHUCYE
      UUDBVPTHUUBYEVQUUFUVDHUCYEUUDUUEUUQVRVSVTWAUUFBYRUBUVAWBWEYQUUAYLUBUUGYSU
      UGKYQYSUUFQZYSOKZRZUUAYLUMYSUUFWFYQUVJUUAYLYQUVJUUARZRZIYSAILZSZVAZURZYKK
      ZEUVPMZNZYLUVLUVPYEQZUVPOKZUVQUVLYSYEUVOUTUVTUVLIYSUVNYEUVOUVLUVMYSKUVMUU
      FKUVNYEKZUVLYSUUFUVMYQUVHUVIUUAWGVCUVLUWBIUUFYQUWBIUUFPZUVKYQUWCAUUDSZYEK
      ZHYEPZYQUWEHYEYQUUKRZUWDUUCYEUWGYAUUCEQZUWDUUCNXTYAYBYPUUKWHUWGUULUWHUUNU
      ULUUCCMEUUCCWIFWJTDEUUCAWKWLYQUUKXCWMVOYQUVFUWCUWFWNUVGUWBUWEHIYEUUDUUEBU
      UQUVMUUDNUVNUWDYEUVMUUDAWOWPWQTWRWSWTVGZUVOVMZVHYSYEUVOVITUVLUVIUWAYQUVHU
      VIUUAXAUVIUVPJLUVNNIYSULJWDZOIJYSUVNUVOUWJVRZIJYSUVNXDXBTUVPYEWFXEUVLADSZ
      AYTSZEUVRUVLDYTAUVLAXFZYRDYTUVLUUTUWOYRNYQUUTUVKUVBWSYREAXGTUVLYADEAUTUWO
      DNXTYAYBYPUVKWHZDEAXHDEAXGXIYQUVJUUAVJWAVKUVLYAUWMENUWPDEAXJTUVLIYSUVNWCZ
      UWKMZUWNUVRUVLUWBIYSPUWQUWRNUVLUWBIYSUWIVOIJYSUVNYEVPTIAYSVQUVPUWKUWLVSVT
      WAYJUVSUAUVPYKYHUVPNYIUVREYHUVPXKXLXMWLXOXNXPXQXOXRVOGUACEFXSXE $.
  $}

  ${
    $d J y z $.
    $( A finite topology is compact.  (Contributed by FL, 22-Dec-2008.) $)
    fincmp $p |- ( J e. ( Top i^i Fin ) -> J e. Comp ) $=
      ( vy vz ctop cfn cin wcel cuni cv wceq cpw wrex wi wral inss1 sseli inss2
      ccmp wa vex pwid wss selpw ssfi sylan2b elin eqeq2d rspcev sylbir sylancr
      unieq ex ralrimiva syl eqid iscmp sylanbrc ) ADEFZGZADGAHZBIZHZJZUTCIZHZJ
      ZCVAKZEFZLZMZBAKZNZARGURDADEOPUSAEGZVLUREADEQPVMVJBVKVMVAVKGZSVAVGGZVAEGZ
      VJVABTUAVNVMVAAUBVPBAUCAVAUDUEVOVPSVAVHGZVJVAVGEUFVQVCVIVFVCCVAVHVDVAJVEV
      BUTVDVAUKUGUHULUIUJUMUNBCAUTUTUOUPUQ $.
  $}

  $( The singleton of the empty set is compact.  (Contributed by FL,
     2-Aug-2009.) $)
  0cmp $p |- { (/) } e. Comp $=
    ( c0 csn ctop cfn cin wcel ccmp sn0top snfi elin mpbir2an fincmp ax-mp ) AB
    ZCDEFZNGFONCFNDFHAINCDJKNLM $.

  ${
    $d r s J $.
    $( A compact topology is a topology.  (Contributed by Jeff Hankins,
       29-Jun-2009.) $)
    cmptop $p |- ( J e. Comp -> J e. Top ) $=
      ( vr vs ccmp wcel ctop cuni cv wceq cpw cfn cin wrex wi wral eqid simplbi
      iscmp ) ADEAFEAGZBHZGISCHGICTJKLMNBAJOBCASSPRQ $.
  $}

  $( The image of a compact set under a continuous function is compact.
     (Contributed by Mario Carneiro, 21-Mar-2015.) $)
  rncmp $p |- ( ( J e. Comp /\ F e. ( J Cn K ) ) ->
    ( K |`t ran F ) e. Comp ) $=
    ( ccmp wcel ccn co wa cuni crn crest wfo eqid adantl syl sylib wb wss mpbid
    syl3anc simpl wfn wf cnf ffn dffn4 wceq ctop cntop2 frn restuni foeq3 simpr
    syl2anc ctopon cfv toptopon ssid a1i cnrest2 cncmp ) BDEZABCFGEZHZVBBIZCAJZ
    KGZIZALZABVGFGEZVGDEVBVCUAVDVEVFALZVIVDAVEUBZVKVDVECIZAUCZVLVCVNVBABCVEVMVE
    MVMMZUDNZVEVMAUEOVEAUFPVDVFVHUGZVKVIQVDCUHEZVFVMRZVQVCVRVBABCUINZVDVNVSVPVE
    VMAUJOZVFCVMVOUKUNVFVHVEAULOSVDVCVJVBVCUMVDCVMUOUPEZVFVFRZVSVCVJQVDVRWBVTCV
    MVOUQPWCVDVFURUSWAVFABCVMUTTSABVGVEVHVHMVAT $.

  $( The image of a compact set under a continuous function is compact.
     (Contributed by Mario Carneiro, 18-Feb-2015.)  (Revised by Mario Carneiro,
     22-Aug-2015.) $)
  imacmp $p |- ( ( F e. ( J Cn K ) /\ ( J |`t A ) e. Comp ) ->
      ( K |`t ( F " A ) ) e. Comp ) $=
    ( ccn co wcel crest ccmp wa cima cres crn cuni cin eqid cdm wceq 3syl cvv
    df-ima oveq2i simpr wss simpl inss2 cnrest sylancl resdmres dmres wf ineq2d
    cnf syl5eq reseq2d syl5eqr ctop cmptop adantl restrcl restin oveq1d 3eltr4d
    fdm rncmp syl2anc syl5eqel ) BCDEFGZCAHFZIGZJZDBAKZHFDBALZMZHFZIVLVNDHBAUAU
    BVKVJVMVIDEFZGVOIGVHVJUCVKBACNZOZLZCVRHFZDEFZVMVPVKVHVRVQUDVSWAGVHVJUEZAVQU
    FVRBCDVQVQPZUGUHVKVMBVMQZLVSBAUIVKWDVRBVKWDABQZOVRBAUJVKWEVQAVKVHVQDNZBUKWE
    VQRWBBCDVQWFWCWFPUMVQWFBVDSULUNUOUPVKVIVTDEVKVIUQGZCTGATGJVIVTRVJWGVHVIURUS
    ACUTACTTVQWCVASVBVCVMVIDVEVFVG $.

  ${
    $d x y A $.  $d c d f s t u v w y z J $.  $d c d f s t u v w x y z S $.
    $d c d f s t u w y z X $.
    $( A discrete topology is compact iff the base set is finite.  (Contributed
       by Mario Carneiro, 19-Mar-2015.) $)
    discmp $p |- ( A e. Fin <-> ~P A e. Comp ) $=
      ( vy cfn wcel cpw ccmp ctop cin distop pwfi biimpi syl cuni wceq wrex wss
      vx cv wf frn elind fincmp csn cmpt crn simpr snssd snex elpw sylibr fmptd
      wa eqid cab ciun rnmpt unieqi dfiun2 iunid 3eqtr2ri unipw eqcomi mpd3an23
      a1i cmpcov elin simprbi elpwid wral snfi rgenw fmpt mpbi mp1i sstrd unifi
      simplbi syl2anc eleq1 syl5ibrcom rexlimiv impbii ) ACDZAEZFDZWCWDGCHDWEWC
      GCWDACIWCWDCDAJKUAWDUBLWEABRZMZNZBQAQRZUCZUDZUEZEZCHZOZWCWEWLWDPZAWLMZNZW
      OWEAWDWKSWPWEQAWJWDWKWEWIADZULZWJAPWJWDDWTWIAWEWSUFUGWJAWIUHZUIUJWKUMZUKA
      WDWKTLWRWEWQWFWJNQAOBUNZMQAWJUOAWLXCQBAWJWKXBUPUQQBAWJXAURQAUSUTVDWLWDABW
      DMAAVAVBVEVCWHWCBWNWFWNDZWCWHWGCDZXDWFCDZWFCPXEXDWFWMDZXFWFWMCVFZVGXDWFWL
      CXDWFWLXDXGXFXHVQVHACWKSZWLCPXDWJCDZQAVIXIXJQAWIVJVKQACWJWKXBVLVMACWKTVNV
      OWFVPVRAWGCVSVTWALWB $.

    cmpsub.1 $e |- X = U. J $.
    $( Lemma for ~ cmpsub .  (Contributed by Jeff Hankins, 28-Jun-2009.) $)
    cmpsublem $p |- ( ( J e. Top /\ S C_ X ) ->
    ( A. c e. ~P J ( S C_ U. c -> E. d e. ( ~P c i^i Fin ) S C_ U. d ) ->
      A. s e. ~P ( J |`t S ) ( U. ( J |`t S ) = U. s ->
      E. t e. ( ~P s i^i Fin ) U. ( J |`t S ) = U. t ) ) ) $=
      ( vy vw vz wcel wss wa cv cuni cfn cin wi wceq vv vu ctop wrex wral crest
      vx cpw crab cvv rabexg ad2antrr ssrab2 elpwg mpbiri syl unieq sseq2d pweq
      co ineq1d rexeqdv imbi12d rspcva sylan ex restuni adantr eqeq1d wel selpw
      wex wb eleq2 eluni syl6bb adantl ssel sseq2i uniexg ancoms sylan2b elrest
      ssexg syldan w3a inss1 sseq1 sselda 3ad2antl3 3adant2 simp12 eleq1 biimpa
      3adant3 weq ineq1 eleq1d elrab sylanbrc vex anbi12d spcev 3exp rexlimdv3a
      syl2anc sylbid com23 com4l sylcom com24 impcom impd exlimdv syl6ibr ssrdv
      imp pm2.27 elin cab eqeq1 rexbidv elab eleq1a sylbi syl6 2a1d sylanb 3imp
      rexlimdv syl5bi abrexex elpw sylibr abrexfi ad2antlr elind ciun dfss a1i
      biimpi uniiun ineq2i iunin2 incom iuneq2i 3eqtr2i syl6eq 3ad2ant2 3adant1
      ad2antrl inex1 dfiun2 3eqtr3d eqeq2d rexlimiv com3r mpd sylbird ralrimdva
      rspcev syld ) CUCLZBDMZNZBFOZPZMZBGOZPZMZGUVFUHZQRZUDZSZFCUHZUEZCBUFUTZPZ
      EOZPZTZUVSAOZPZTZAUVTUHZQRZUDZSZEUVRUHZUVEUVTUWJLZNZUVQBIOZBRZUVTLZICUIZP
      ZMZUVKGUWPUHZQRZUDZSZUWIUWLUVQUXBUWLUWPUVPLZUVQUXBUWLUWPUJLZUXCUVCUXDUVDU
      WKUWOICUCUKULUXDUXCUWPCMUWOICUMUWPCUJUNUOUPUVOUXBFUWPUVPUVFUWPTZUVHUWRUVN
      UXAUXEUVGUWQBUVFUWPUQURUXEUVKGUVMUWTUXEUVLUWSQUVFUWPUSVAVBVCVDVEVFUWLUWBU
      XBUWHUWLUWBBUWATZUXBUWHSZUWLBUVSUWAUVEBUVSTZUWKBCDHVGVHZVIUWLUXFUXGUWLUXF
      NZUWRUXGUXJABUWQUXJUWCBLZAUAVJZUAOZUWPLZNZUAVLZUWCUWQLUWLUXFUXKUXPSZUWKUV
      EUVTUVRMZUXFUXQSEUVRVKUVEUXRNZUXFUXQUXSUXFNUXKAUBVJZUBEVJZNZUBVLZUXPUXFUX
      KUYCVMUXSUXFUXKUWCUWALUYCBUWAUWCVNUBUWCUVTVOVPVQUXSUYCUXPSUXFUXSUYBUXPUBU
      XSUXTUYAUXPUXRUVEUXTUYAUXPSSUXRUYAUXTUVEUXPUXRUYAUBOZUVRLZUXTUVEUXPSSUVTU
      VRUYDVRUVEUYAUYEUXTUXPUVEUYEUYAUXTUXPSZUVEUYEUYDJOZBRZTZJCUDZUYAUYFSZUVCU
      VDBUJLZUYEUYJVMUVDUVCBCPZMZUYLDUYMBHVSUVCUYMUJLZUYNUYLCUCVTUYNUYOUYLBUYMU
      JWDWAVEWBJUYDBCUCUJWCWEUVEUYIUYKJCUVEUYGCLZUYIWFZUYAUXTUXPUYQUYAUXTWFZAJV
      JZUYGUWPLZUXPUYQUXTUYSUYAUYIUVEUXTUYSUYPUYIUYDUYGUWCUYIUYDUYGMUYHUYGMUYGB
      WGUYDUYHUYGWHUOWIWJWKUYRUYPUYHUVTLZUYTUVEUYPUYIUYAUXTWLUYQUYAVUAUXTUYIUVE
      UYAVUAUYPUYIUYAVUAUYDUYHUVTWMWNWJWOUWOVUAIUYGCIJWPUWNUYHUVTUWMUYGBWQWRWSW
      TUXOUYSUYTNUAUYGJXAUAJWPUXLUYSUXNUYTUXMUYGUWCVNUXMUYGUWPWMXBXCXFXDXEXGXHX
      IXJXKXLXMXNVHXGVFWBXQUAUWCUWPVOXOXPUWRUXBUXJUWHUWRUXBUXAUXJUWHSZUWRUXAXRU
      VKVUBGUWTUVIUWTLUVIUWSLZUVIQLZNZUVKVUBSUVIUWSQXSVUEUVKUXJUWHVUEUVKUXJWFZU
      GOZKOZBRZTZKUVIUDZUGXTZUWGLUVSVULPZTZUWHVUFUWFQVULVUFVULUVTMVULUWFLVUFAVU
      LUVTUWCVULLUWCVUITZKUVIUDZVUFAEVJZVUKVUPUGUWCAXAUGAWPVUJVUOKUVIVUGUWCVUIY
      AYBYCVUFVUOVUQKUVIVUEUVKUXJKGVJZVUOVUQSZSZVUCUVIUWPMZVUDUVKUXJVUTSSZGUWPV
      KVVAVVBVUDVVAVUTUVKUXJVVAVURVUHUWPLZVUSUVIUWPVUHVRVVCVUHCLZVUIUVTLZNVUSUW
      OVVEIVUHCIKWPUWNVUIUVTUWMVUHBWQWRWSVVEVUSVVDVUIUVTUWCYDVQYEYFYGVHYHYIYJYK
      XPVULUVTKUGUVIVUIGXAYLYMYNVUEUVKVULQLZUXJVUDVVFVUCUVKKUGUVIVUIYOYPWOYQVUF
      BKUVIVUIYRZUVSVUMUVKVUEBVVGTUXJUVKBBUVJRZVVGUVKBVVHTBUVJYSUUAVVHBKUVIVUHY
      RZRKUVIBVUHRZYRVVGUVJVVIBKUVIUUBUUCKUVIBVUHUUDKUVIVVJVUIVVJVUITVURBVUHUUE
      YTUUFUUGUUHUUIUVKUXJUXHVUEUWLUXHUVKUXFUXIUUKUUJVVGVUMTVUFKUGUVIVUIVUHBKXA
      UULUUMYTUUNUWEVUNAVULUWGUWCVULTUWDVUMUVSUWCVULUQUUOUVAXFXDYEUUPYFUUQUURVF
      UUSXHUVBUUT $.

    $( Two equivalent ways of describing a compact subset of a topological
       space.  Inspired by Sue E. Goodman's _Beginning Topology_.  (Contributed
       by Jeff Hankins, 22-Jun-2009.)  (Revised by Mario Carneiro,
       15-Dec-2013.) $)
    cmpsub $p |- ( ( J e. Top /\ S C_ X ) ->
                   ( ( J |`t S ) e. Comp <-> A. c e. ~P J
                 ( S C_ U. c -> E. d e. ( ~P c i^i Fin ) S C_ U. d ) ) ) $=
      ( vs vt vx vy wcel wss wa cuni cv wceq cfn cin wrex wi vf vw vu ctop ccmp
      vv crest co cpw wral eqid iscmp wb id topopn ssexg syl2anr resttop syldan
      cvv ibar bicomd syl syl5bb cab vex weq eqeq1 rexbidv elab wel selpw ssel2
      ineq1 eqeq2d rspcev ex adantl rexlimdv simpll sseq2i uniexg sylan2 ancoms
      sylbi sylan2b adantr elrest syl2anc sylibrd syl5bi ssrdv elpw sylibr pweq
      abrexex unieq ineq1d rexeqdv imbi12d rspcva sylan restuni ad2antrr dfiun2
      ciun inex1 incom a1i iuneq2dv syl5eqr iunin2 uniiun eqcomi ineq2d sseqin2
      biimpi syl5eq eqtrd eqtr2d eqeq12d eqeq1d a1bi dfss3 ralbii 3bitri anbi1i
      elin bitri wf cfv wex ac6sfi crn frn adantll sseq1 syld eluni com23 dffn4
      ad2antrl rnex cdom wbr simprr wfo wfn ffn sylib fodomfi domfi elind fveq2
      ad2ant2r rspccv pm2.27 w3a mpbiri ssel a1dd 3imp fnfvelrn expcom 3ad2ant1
      inss1 syl5 jcad 3exp com3r imp com3l impcom fvex eleq2 eleq1 anbi12d syl6
      spcev exlimdv 3imtr4g ad2antlr mpbird jca eximdv sseq2d exlimiv rexlimdva
      syl8 mpd syl5bir sylbird ralrimdva cmpsublem impbid bitrd ) BUDKZACLZMZBA
      UGUHZUEKZUWTNZGOZNZPZUXBHOZNZPZHUXCUIZQRZSZTZGUWTUIZUJZADOZNZLZAEOZNZLZEU
      XOUIZQRZSZTZDBUIZUJZUXAUWTUDKZUXNMZUWSUXNGHUWTUXBUXBUKULUWSUYGUYHUXNUMUWQ
      UWRAUTKZUYGUWRUWRCBKUYIUWQUWRUNBCFUOACBUPUQABUTURUSUYGUXNUYHUYGUXNVAVBVCV
      DUWSUXNUYFUWSUXNUYDDUYEUWSUXOUYEKZMZUXNUXBIOZJOZARZPZJUXOSZIVEZNZPZUXHHUY
      QUIZQRZSZTZUYDUYKUXNVUCUYKUYQUXMKZUXNVUCUYKUYQUWTLVUDUYKHUYQUWTUXFUYQKUXF
      UYNPZJUXOSZUYKUXFUWTKZUYPVUFIUXFHVFIHVGUYOVUEJUXOUYLUXFUYNVHVIVJUYKVUFUXF
      UXRARZPZEBSZVUGUYKVUEVUJJUXOUYJJDVKZVUEVUJTZTZUWSUYJUXOBLZVUMDBVLVUNVUKVU
      LVUNVUKMUYMBKZVULUXOBUYMVMVUOVUEVUJVUIVUEEUYMBEJVGVUHUYNUXFUXRUYMAVNVOVPV
      QVCVQWEVRVSUYKUWQUYIVUGVUJUMUWQUWRUYJVTUWSUYIUYJUWRUWQABNZLZUYICVUPAFWAVU
      QUWQUYIUWQVUQVUPUTKUYIBUDWBAVUPUTUPWCWDWFWGEUXFABUDUTWHWIWJWKWLUYQUWTJIUX
      OUYNDVFWPWMWNUXLVUCGUYQUXMUXCUYQPZUXEUYSUXKVUBVURUXDUYRUXBUXCUYQWQVOVURUX
      HHUXJVUAVURUXIUYTQUXCUYQWOWRWSWTXAXBVQUYKUXQVUCUYCUYKUXQVUCUYCTUYKUXQMZVU
      CAAPZAUXGPZHVUASZTZUYCVUSVUTUYSVVBVUBVUSAUXBAUYRUWSAUXBPUYJUXQABCFXCXDZVU
      SUYRJUXOAUYMRZXFZAVUSUYRJUXOUYNXFVVFJIUXOUYNUYMAJVFXGXEVUSJUXOUYNVVEUYNVV
      EPVUSVUKMUYMAXHXIXJXKVUSVVFAJUXOUYMXFZRZAJUXOAUYMXLVUSVVHAUXPRZAVUSVVGUXP
      AVVGUXPPVUSUXPVVGJUXOXMXNXIXOUXQVVIAPUYKUXQVVIUXPARZAAUXPXHUXQVVJAPAUXPXP
      XQXRVRXSXRXTYAVUSVVAUXHHVUAVUSAUXBUXGVVDYBVIWTVVCVVBVUSUYCVUTVVBAUKYCVUSV
      VAUYCHVUAUXFVUAKZVUSUXCUYNPZJUXOSZGUXFUJZUXFQKZMZVVAUYCTZVVKUXFUYTKZVVOMV
      VPUXFUYTQYHVVRVVNVVOVVRUXFUYQLUXCUYQKZGUXFUJVVNHUYQVLGUXFUYQYDVVSVVMGUXFU
      YPVVMIUXCGVFIGVGUYOVVLJUXOUYLUXCUYNVHVIVJYEYFYGYIVUSVVPMZUXFUXOUAOZYJZUXC
      UXCVWAYKZARZPZGUXFUJZMZUAYLZVVQVVPVWHVUSVVOVVNVWHVVLVWEGJUXFUXOUAUYMVWCPU
      YNVWDUXCUYMVWCAVNVOYMWDVRVVTVWHVVAVWAYNZUYBKZAVWINZLZMZUAYLZUYCVVTVVAVWHV
      WNVVTVVAVWHVWNTVVTVVAMZVWGVWMUAVWOVWGVWMVWOVWGMZVWJVWLVWPUYAQVWIVWPVWIUXO
      LZVWIUYAKVWBVWQVWOVWFUXFUXOVWAYOUUBVWIUXOVWAUAVFUUCWMWNVWPVVOVWIUXFUUDUUE
      ZVWIQKVVTVVOVVAVWGVUSVVNVVOUUFXDVVTVWBVWRVVAVWFVVPVWBVWRVUSVVOVWBVWRVVNVW
      BVVOUXFVWIVWAUUGZVWRVWBVWAUXFUUHZVWSUXFUXOVWAUUIZUXFVWAUUAUUJUXFVWIVWAUUK
      WCYPYPUUOUXFVWIUULWIUUMVWPVWLUXGVWKLZVWGVXBVWOVWGUBUXGVWKVWGUBUCVKZUCHVKZ
      MZUCYLUBUFVKZUFOZVWIKZMZUFYLZUBOZUXGKVXKVWKKVWGVXEVXJUCVWGVXEVXKUCOZVWAYK
      ZKZVXMVWIKZMZVXJVWFVWBVXDVXLVXMARZPZTZVXEVXPTZVWEVXRGVXLUXFGUCVGZUXCVXLVW
      DVXQVYAUNVYAVWCVXMAUXCVXLVWAUUNWRYAUUPVXSVWBVXTVXEVXSVWBVXPVXCVXDVXSVWBVX
      PTZTVXDVXSVXCVYBVXDVXSVXRVXCVYBTVXDVXRUUQVXDVXRVXCVYBVXDVXRVXCUURZVWBVXNV
      XOVXDVXRVXCVWBVXNTZVXRVXCVYDTZTVXDVXRVXLVXMLZVYEVXRVYFVXQVXMLVXMAUVFVXLVX
      QVXMYQUUSVYFVXCVXNVWBVXLVXMVXKUUTUVAVCXIUVBVWBVWTVYCVXOVXAVXDVXRVWTVXOTVX
      CVWTVXDVXOUXFVXLVWAUVCUVDUVEUVGUVHUVIYRUVJUVKUVLUVMWCVXIVXPUFVXMVXLVWAUVN
      VXGVXMPVXFVXNVXHVXOVXGVXMVXKUVOVXGVXMVWIUVPUVQUVSUVRUVTUCVXKUXFYSUFVXKVWI
      YSUWAWLVRVVAVWLVXBUMVVTVWGAUXGVWKYQUWBUWCUWDVQUWEVQYTVWMUYCUAUXTVWLEVWIUY
      BUXRVWIPUXSVWKAUXRVWIWQUWFVPUWGUWIUWJWFUWHUWKUWLVQYTYRUWMHABCGDEFUWNUWOUW
      P $.
  $}

  ${
    $d f t u v w y z B $.  $d f t u v y z X $.
    $( A topology generated by a basis is compact iff open covers drawn from
       the basis have finite subcovers.  (See also ~ alexsub , which further
       specializes to subbases, assuming the ultrafilter lemma.)  (Contributed
       by Mario Carneiro, 26-Aug-2015.) $)
    tgcmp $p |- ( ( B e. TopBases /\ X = U. B ) -> ( ( topGen ` B ) e. Comp <->
      A. y e. ~P B ( X = U. y -> E. z e. ( ~P y i^i Fin ) X = U. z ) ) ) $=
      ( vu vv vw vt wcel cuni wceq wa cv cpw cfn wrex wi wral wss syl ccmp ctop
      vf ctb ctg cfv cin iscmp simprbi unitg eqtr3 sylan eqeq1d rexbidv imbi12d
      eqid ralbidv bastg adantr sspwb sylib ssralv sylbid syl5 elpwi simprr wel
      simprl sselda adantrr tg2 syl2anc reximdva eluni2 elunirab r19.42v rexbii
      crab expr rexcom 3bitr2i 3imtr4g ssrdv eqsstrd ssrab2 unissi simplr eqssd
      syl5sseqr wb elpw2g ad2antrr mpbiri unieq eqeq2d pweq ineq1d rexeqdv mpid
      rspcv wex elfpw ad2antrl simplbi ssrab sseq2 ac6sfi crn frn wfo wfn dffn4
      wf ffn fofi syl2an sylanbrc simplrr ciun uniiun syl5eqss ad2antll fniunfv
      ss2iun sseqtrd unissd sseqtr4d rspcev exlimddv rexlimdvaa com23 ralrimdva
      syld sylan2 tgcl baib bitrd sylibrd impbid ) CUDIZDCJZKZLZCUEUFZUAIZDAMZJ
      ZKZDBMZJZKZBUUFNZOUGZPZQZACNZRZUUEUUDJZUUGKZUURUUJKZBUUMPZQZAUUDNZRZUUCUU
      QUUEUUDUBIZUVDABUUDUURUURUPZUHUIUUCUVDUUOAUVCRZUUQUUCUVBUUOAUVCUUCUUSUUHU
      VAUUNUUCUURDUUGYTUURUUAKUUBUURDKCUDUJUURDUUAUKULZUMUUCUUTUUKBUUMUUCUURDUU
      JUVHUMUNUOUQUUCUUPUVCSZUVGUUQQUUCCUUDSZUVIYTUVJUUBCUDURUSCUUDUTVAUUOAUUPU
      VCVBTVCVDUUCUUQDEMZJZKZDFMZJZKZFUVKNOUGZPZQZEUVCRZUUEUUCUUQUVSEUVCUVKUVCI
      UUCUVKUUDSZUUQUVSQUVKUUDVEUUCUWALUVMUUQUVRUUCUWAUVMUUQUVRQUUCUWAUVMLZLZUU
      QUUKBGMZHMZSZHUVKPZGCVRZNZOUGZPZUVRUWCUUQDUWHJZKZUWKUWCDUWLUWCDUVLUWLUUCU
      WAUVMVFZUWCAUVLUWLUWCAHVGZHUVKPAGVGZUWFLZGCPZHUVKPZUUFUVLIUUFUWLIZUWCUWOU
      WRHUVKUWCHEVGZUWOUWRUWCUXAUWOLLUWEUUDIZUWOUWRUWCUXAUXBUWOUWCUVKUUDUWEUUCU
      WAUVMVHVIVJUWCUXAUWOVFGUWECUUFVKVLVSVMHUUFUVKVNUWTUWPUWGLZGCPUWQHUVKPZGCP
      UWSUWGGUUFCVOUXDUXCGCUWPUWFHUVKVPVQUWQGHCUVKVTWAWBWCWDUWCUUAUWLDUWHCUWGGC
      WEZWFYTUUBUWBWGWIWHUWCUWHUUPIZUUQUWMUWKQZQUWCUXFUWHCSZUXEYTUXFUXHWJUUBUWB
      UWHCUDWKWLWMUUOUXGAUWHUUPUUFUWHKZUUHUWMUUNUWKUXIUUGUWLDUUFUWHWNWOUXIUUKBU
      UMUWJUXIUULUWIOUUFUWHWPWQWRUOWTTWSUWCUUKUVRBUWJUWCUUIUWJIZUUKLZLZUUIUVKUC
      MZXMZUWDUWDUXMUFZSZGUUIRZLZUVRUCUXLUUIOIZUWGGUUIRZUXRUCXAUXJUXSUWCUUKUXJU
      UIUWHSZUXSUUIUWHXBZUIXCZUXLUYAUXTUXJUYAUWCUUKUXJUYAUXSUYBXDXCUYAUUICSUXTU
      WGGCUUIXEUITUWFUXPGHUUIUVKUCUWEUXOUWDXFXGVLUXLUXRLZUXMXHZUVQIZDUYEJZKZUVR
      UYDUYEUVKSZUYEOIZUYFUXNUYIUXLUXQUUIUVKUXMXIXCZUXLUXSUUIUYEUXMXJZUYJUXRUYC
      UXNUYLUXQUXNUXMUUIXKZUYLUUIUVKUXMXNZUUIUXMXLVAUSUUIUYEUXMXOXPUYEUVKXBXQUY
      DDUYGUYDDUUJUYGUWCUXJUUKUXRXRUYDUUJGUUIUXOXSZUYGUXQUUJUYOSUXLUXNUXQUUJGUU
      IUWDXSUYOGUUIXTGUUIUWDUXOYDYAYBUXNUYOUYGKZUXLUXQUXNUYMUYPUYNGUUIUXMYCTXCY
      EWDUYDUYGUVLDUYDUYEUVKUYKYFUWCUVMUXKUXRUWNWLYGWHUVPUYHFUYEUVQUVNUYEKUVOUY
      GDUVNUYEWNWOYHVLYIYJYMVSYKYNYLUUCUUEUURUVLKZUURUVOKZFUVQPZQZEUVCRZUVTUUCU
      VEUUEVUAWJYTUVEUUBCYOUSUUEUVEVUAEFUUDUURUVFUHYPTUUCUYTUVSEUVCUUCUYQUVMUYS
      UVRUUCUURDUVLUVHUMUUCUYRUVPFUVQUUCUURDUVOUVHUMUNUOUQYQYRYS $.
  $}

  ${
    $d s t u v w J $.  $d s t u v w S $.
    $( A closed subset of a compact space is compact.  (Contributed by Jeff
       Hankins, 29-Jun-2009.) $)
    cmpcld $p |- ( ( J e. Comp /\ S e. ( Clsd ` J ) ) ->
                   ( J |`t S ) e. Comp ) $=
      ( vs vt vu vw ccmp wcel wa cv cuni wss cpw cfn wi wceq cun 3ad2ant1 sylib
      cvv vv ccld cfv crest co cin wrex wral selpw w3a cdif simp1l simp2 cldopn
      csn adantl snssd unssd simp3 uniss 3ad2ant2 sstrd undif 3ad2ant3 eqsstr3d
      eqid unss1 difss unss sylanblc uniexg ad2antrr 3adant3 difexg unisng 3syl
      eqssd uneq2d eqtr4d uniun syl6eqr cmpcov syl3anc elfpw simp2l uncom diffi
      syl6sseq ssundif ad2antll sylanbrc wex sseqtrd sselda eluni a1i wn elndif
      simpl simpr ad2antlr eleq2 biimpd com23 imp mtod ex adantrd velsn syl6ibr
      notbii jcad eldif eximdv mpd ssrdv unieq sseq2d rspcev syl2anc rexlimdv3a
      syl3an2b 3exp syl5bi ralrimiv ctop wb cmptop cldss cmpsub syl2an mpbird )
      BGHZABUBUCHZIZBAUDUEGHZACJZKZLZADJZKZLZDYQMNUFZUGZOZCBMZUHZYOUUECUUFYQUUF
      HYQBLZYOUUECBUIYOUUHYSUUDYOUUHYSUJZBKZEJZKZPZEYQUUJAUKZUOZQZMNUFZUGZUUDUU
      IYMUUPBLUUJUUPKZPUURYMYNUUHYSULUUIYQUUOBYOUUHYSUMUUIUUNBYOUUHUUNBHZYSYNUU
      TYMABUUJUUJVFZUNUPRUQURUUIUUJYRUUOKZQZUUSUUIUUJYRUUNQZUVCUUIUUJUVDUUIUUJA
      UUNQZUVDUUIAUUJLZUVEUUJPUUIAYRUUJYOUUHYSUSZUUHYOYRUUJLZYSYQBUTVAZVBAUUJVC
      SYSYOUVEUVDLUUHAYRUUNVGVDVEUUIUVHUUNUUJLUVDUUJLUVIUUJAVHYRUUNUUJVIVJVQUUI
      UVBUUNYRUUIUUJTHZUUNTHUVBUUNPYOUUHUVJYSYMUVJYNUUHBGVKVLVMUUJATVNUUNTVOVPV
      RVSYQUUOVTWAUUPBUUJEUVAWBWCUUIUUMUUDEUUQUUKUUQHUUIUUKUUPLZUUKNHZIZUUMUUDU
      UKUUPWDUUIUVMUUMUJZUUKUUOUKZUUCHZAUVOKZLZUUDUVNUVOYQLZUVONHZUVPUVNUUKUUOY
      QQZLUVSUVNUUKUUPUWAUUIUVKUVLUUMWEYQUUOWFWHUUKUUOYQWISUUIUVMUVTUUMUVLUVTUU
      IUVKUUKUUOWGWJVMUVOYQWDWKUVNUAAUVQUVNUAJZAHZUWBFJZHZUWDUVOHZIZFWLZUWBUVQH
      UVNUWCUWHUVNUWCIZUWEUWDUUKHZIZFWLZUWHUWIUWBUULHUWLUVNAUULUWBUVNAYRUULUUIU
      VMYSUUMUVGRUVNYRUUJUULUUIUVMUVHUUMUVIRUUIUVMUUMUSWMVBWNFUWBUUKWOSUWIUWKUW
      GFUWIUWKUWEUWFUWKUWEOUWIUWEUWJWSWPUWIUWKUWJUWDUUOHZWQZIUWFUWIUWKUWJUWNUWK
      UWJOUWIUWEUWJWTWPUWIUWKUWDUUNPZWQZUWNUWIUWEUWPUWJUWIUWEUWPUWIUWEIUWOUWBUU
      NHZUWCUWQWQUVNUWEUWBAUUJWRXAUWIUWEUWOUWQOUWIUWOUWEUWQUWOUWEUWQOOUWIUWOUWE
      UWQUWDUUNUWBXBXCWPXDXEXFXGXHUWMUWOFUUNXIXKXJXLUWDUUKUUOXMXJXLXNXOXGFUWBUV
      OWOXJXPUUBUVRDUVOUUCYTUVOPUUAUVQAYTUVOXQXRXSXTYBYAXOYCYDYEYMBYFHUVFYPUUGY
      GYNBYHABUUJUVAYIABUUJCDUVAYJYKYL $.
  $}

  ${
    $d c d m n r s J $.  $d c d m n r s S $.  $d c d m n r s T $.
    $d c d m n r s X $.
    uncmp.1 $e |- X = U. J $.
    $( The union of two compact sets is compact.  (Contributed by Jeff Hankins,
       30-Jan-2010.) $)
    uncmp $p |- ( ( ( J e. Top /\ X = ( S u. T ) ) /\
      ( ( J |`t S ) e. Comp /\ ( J |`t T ) e. Comp ) ) -> J e. Comp ) $=
      ( vc vd vn vs vm vr wcel wceq wa cv cuni cfn wrex wi wss ctop cun co ccmp
      crest cpw cin simpll wb ssun1 sseq2 mpbiri ad2antlr cmpsub syl2anc simprr
      wral sseqtrd unieq sseq2d pweq ineq1d rexeqdv imbi12d rspcv ad2antrl mpid
      sylbid ssun2 reeanv elin simplbi elpwid anim12i unss sylib simprbi syl2an
      unfi jca vex elpw2 anbi1i bitr2i simpllr ssun3 ad2antll eqsstrd syl6sseqr
      ssun4 uniun elpwi adantr sstrd uniss eqssd eqeq2d exp32 rexlimdvv syl5bir
      syl rspcev syl2and impancom expd ralrimiv iscmp sylanbrc ) CUALZDABUBZMZN
      ZCAUEUCUDLZCBUEUCUDLZNZNZXIDFOZPZMZDGOZPZMZGXQUFZQUGZRZSZFCUFZUQCUDLXIXKX
      OUHXPYFFYGXPXQYGLZXSYEXLYHXSNZXOYEXLYINZXMAHOZPZTZHYDRZXNBIOZPZTZIYDRZYEY
      JXMAJOZPZTZYMHYSUFZQUGZRZSZJYGUQZYNYJXIADTZXMUUFUIXIXKYIUHZXKUUGXIYIXKUUG
      AXJTABUJDXJAUKULUMZACDJHEUNUOYJUUFAXRTZYNYJADXRUUIXLYHXSUPZURYHUUFUUJYNSZ
      SXLXSUUEUULJXQYGYSXQMZUUAUUJUUDYNUUMYTXRAYSXQUSUTUUMYMHUUCYDUUMUUBYCQYSXQ
      VAVBVCVDVEVFVGVHYJXNBKOZPZTZYQIUUNUFZQUGZRZSZKYGUQZYRYJXIBDTZXNUVAUIUUHXK
      UVBXIYIXKUVBBXJTBAVIDXJBUKULUMZBCDKIEUNUOYJUVABXRTZYRYJBDXRUVCUUKURYHUVAU
      VDYRSZSXLXSUUTUVEKXQYGUUNXQMZUUPUVDUUSYRUVFUUOXRBUUNXQUSUTUVFYQIUURYDUVFU
      UQYCQUUNXQVAVBVCVDVEVFVGVHYNYRNYMYQNZIYDRHYDRYJYEYMYQHIYDYDVJYJUVGYEHIYDY
      DYJYKYDLZYOYDLZNZUVGYEYJUVJUVGNZNZYKYOUBZYDLZDUVMPZMZYEUVLUVMXQTZUVMQLZNZ
      UVNUVLUVQUVRUVLYKXQTZYOXQTZNZUVQUVJUWBYJUVGUVHUVTUVIUWAUVHYKXQUVHYKYCLZYK
      QLZYKYCQVKZVLVMUVIYOXQUVIYOYCLZYOQLZYOYCQVKZVLVMVNVFYKYOXQVOVPZUVJUVRYJUV
      GUVHUWDUWGUVRUVIUVHUWCUWDUWEVQUVIUWFUWGUWHVQYKYOVSVRVFVTUVNUVMYCLZUVRNUVS
      UVMYCQVKUWJUVQUVRUVMXQFWAWBWCWDVPUVLDUVOUVLDYLYPUBZUVOUVLDXJUWKXIXKYIUVKW
      EUVLAUWKTZBUWKTZNZXJUWKTUVGUWNYJUVJYMUWLYQUWMAYLYPWFBYPYLWJVNWGABUWKVOVPW
      HYKYOWKWIUVLUVMCTZUVODTUVLUVMXQCUWIYIXQCTZXLUVKYHUWPXSXQCWLWMUMWNUWOUVOCP
      DUVMCWOEWIXAWPYBUVPGUVMYDXTUVMMYAUVODXTUVMUSWQXBUOWRWSWTXCXDXEXFFGCDEXGXH
      $.
  $}

  ${
    $d t x y z A $.  $d t y z B $.  $d t x y z J $.
    fiuncmp.1 $e |- X = U. J $.
    $( A finite union of compact sets is compact.  (Contributed by Mario
       Carneiro, 19-Mar-2015.) $)
    fiuncmp $p |- ( ( J e. Top /\ A e. Fin /\ A. x e. A ( J |`t B ) e. Comp )
      -> ( J |`t U_ x e. A B ) e. Comp ) $=
      ( vt ctop wcel crest co ccmp wss ciun wi c0 wceq oveq2d eleq1d cvv vy cfn
      vz wral w3a ssid simp2 cv csn cun sseq1 iuneq1 0iun syl6eq imbi12d imbi2d
      rest0 0cmp syl6eqel 3ad2ant1 a1d ssun1 id syl5ss imim1i wa cin csb simpl1
      cuni iunxun simprr cmptop restrcl simprd 3syl nfcv nfcsb1v csbeq1a cbviun
      vex csbeq1 iunxsn eqtri ssun2 simprl snss sylibr simpl3 nfov nfel1 cbvral
      nfv sylib rspcv sylc syl5eqel syl2anc resttop eqid restin unieqd sseqtr4i
      unexg inss2 restuni sylancl eqtr4d uneq2i indir inss1 a1i restabs syl3anc
      ineq1i sstri eqeltrd eqsstr3i uncmp syl22anc exp32 a2d syl5 a2i findcard2
      mpcom mpi ) DHIZBUBIZDCJKZLIZABUDZUEZBBMZDABCNZJKZLIZBUFYIYMYNYQOZYHYIYLU
      GYMGUHZBMZDAYSCNZJKZLIZOZOYMPBMZDPJKZLIZOZOYMUAUHZBMZDAUUICNZJKZLIZOZOZYM
      UUIUCUHZUIZUJZBMZDAUURCNZJKZLIZOZOZYMYROGUAUCBYSPQZUUDUUHYMUVEYTUUEUUCUUG
      YSPBUKUVEUUBUUFLUVEUUAPDJUVEUUAAPCNPAYSPCULACUMUNRSUOUPYSUUIQZUUDUUNYMUVF
      YTUUJUUCUUMYSUUIBUKUVFUUBUULLUVFUUAUUKDJAYSUUICULRSUOUPYSUURQZUUDUVCYMUVG
      YTUUSUUCUVBYSUURBUKUVGUUBUVALUVGUUAUUTDJAYSUURCULRSUOUPYSBQZUUDYRYMUVHYTY
      NUUCYQYSBBUKUVHUUBYPLUVHUUAYODJAYSBCULRSUOUPYMUUGUUEYHYIUUGYLYHUUFPUILDUQ
      URUSUTVAUUOUVDOUUIUBIYMUUNUVCUUNUUSUUMOYMUVCUUSUUJUUMUUSUUIUURBUUIUUQVBUU
      SVCVDVEYMUUSUUMUVBYMUUSUUMUVBYMUUSUUMVFZVFZUVAHIZUVAVJZUUKDVJZVGZAUUPCVHZ
      UVMVGZUJZQUVAUVNJKZLIUVAUVPJKZLIUVBUVJYHUUTTIZUVKYHYIYLUVIVIZUVJUUTUUKAUU
      QCNZUJZTAUUIUUQCVKZUVJUUKTIZUWBTIUWCTIUVJUUMUULHIZUWEYMUUSUUMVLZUULVMUWFD
      TIZUWEUUKDVNVOVPZUVJUWBUVOTUWBGUUQAYSCVHZNUVOAGUUQCUWJGCVQAYSCVRZAYSCVSZV
      TGUUPUWJUVOUCWAZAYSUUPCWBZWCWDZUVJDUVOJKZLIZUWPHIZUVOTIZUVJUUPBIZDUWJJKZL
      IZGBUDZUWQUVJUUQBMUWTUVJUUQUURBUUQUUIWEYMUUSUUMWFVDUUPBUWMWGWHUVJYLUXCYHY
      IYLUVIWIYKUXBAGBYKGWMAUXALADUWJJADVQAJVQUWKWJWKAUHYSQZYJUXALUXDCUWJDJUWLR
      SWLWNUXBUWQGUUPBYSUUPQZUXAUWPLUXEUWJUVODJUWNRSWOWPZUWPVMUWRUWHUWSUVODVNVO
      VPZWQUUKUWBTTXDWRWQZUUTDTWSWRUVJUVLUUTUVMVGZUVQUVJUVLDUXIJKZVJZUXIUVJUVAU
      XJUVJYHUVTUVAUXJQUWAUXHUUTDHTUVMUVMWTZXAWRXBUVJYHUXIEMUXIUXKQUWAUXIUVMEUU
      TUVMXEFXCUXIDEFXFXGXHUXIUUKUVOUJZUVMVGUVQUUTUXMUVMUUTUWCUXMUWDUWBUVOUUKUW
      OXIWDXOUUKUVOUVMXJWDUNUVJUVRUULLUVJUVRDUVNJKZUULUVJYHUVNUUTMZUVTUVRUXNQUW
      AUXOUVJUVNUUKUUTUUKUVMXKUUKUWCUUTUUKUWBVBUWDXCXPXLUXHUVNUUTDHTXMXNUVJYHUW
      EUULUXNQUWAUWIUUKDHTUVMUXLXAWRXHUWGXQUVJUVSUWPLUVJUVSDUVPJKZUWPUVJYHUVPUU
      TMZUVTUVSUXPQUWAUXQUVJUVPUVOUUTUVOUVMXKUVOUWBUUTUWOUWBUWCUUTUWBUUKWEUWDXC
      XRXPXLUXHUVPUUTDHTXMXNUVJYHUWSUWPUXPQUWAUXGUVODHTUVMUXLXAWRXHUXFXQUVNUVPU
      VAUVLUVLWTXSXTYAYBYCYDXLYEYFYG $.
  $}

  ${
    $d x y J $.  $d x y K $.  $d x y X $.
    sscmp.1 $e |- X = U. K $.
    $( A subset of a compact topology (i.e. a coarser topology) is compact.
       (Contributed by Mario Carneiro, 20-Mar-2015.) $)
    sscmp $p |- ( ( J e. ( TopOn ` X ) /\ K e. Comp /\ J C_ K ) ->
      J e. Comp ) $=
      ( vx vy ctopon cfv wcel ccmp wss w3a ctop cuni cv wceq cpw cfn wrex wa wi
      cin wral topontop 3ad2ant1 elpwi simpl2 simprl simpl3 simpl1 toponuni syl
      sstrd simprr eqtrd cmpcov syl3anc eqeq1d mpbid expr sylan2 ralrimiva eqid
      rexbidv iscmp sylanbrc ) ACGHIZBJIZABKZLZAMIZANZEOZNZPZVLFONZPZFVMQRUBZSZ
      UAZEAQZUCAJIVGVHVKVICAUDUEVJVTEWAVMWAIVJVMAKZVTVMAUFVJWBVOVSVJWBVOTZTZCVP
      PZFVRSZVSWDVHVMBKCVNPWFVGVHVIWCUGWDVMABVJWBVOUHVGVHVIWCUIUMWDCVLVNWDVGCVL
      PVGVHVIWCUJCAUKULZVJWBVOUNUOVMBCFDUPUQWDWEVQFVRWDCVLVPWGURVDUSUTVAVBEFAVL
      VLVCVEVF $.
  $}

  ${
    $d f w x y z A $.  $d f w x y z J $.  $d f w x y z ph $.  $d f w x y z S $.
    $d f x z O $.  $d f w x y z X $.
    hauscmp.1 $e |- X = U. J $.
    ${
      hauscmplem.2 $e |- O = { y e. J |
        E. w e. J ( A e. w /\ ( ( cls ` J ) ` w ) C_ ( X \ y ) ) } $.
      hauscmplem.3 $e |- ( ph -> J e. Haus ) $.
      hauscmplem.4 $e |- ( ph -> S C_ X ) $.
      hauscmplem.5 $e |- ( ph -> ( J |`t S ) e. Comp ) $.
      hauscmplem.6 $e |- ( ph -> A e. ( X \ S ) ) $.
      $( Lemma for ~ hauscmp .  (Contributed by Mario Carneiro,
         27-Nov-2013.) $)
      hauscmplem $p |- ( ph ->
        E. z e. J ( A e. z /\ ( ( cls ` J ) ` z ) C_ ( X \ S ) ) ) $=
        ( wss wcel wa c0 wceq vx vf cuni ccl cfv cdif wrex cpw cfn cin ctop cha
        cv haustop syl ad3antrrr topopn eldifad clstop simplr unieq uni0 syl6eq
        adantl sseqtrd ss0 difeq2d dif0 eqtr4d eqimss eleq2 fveq2 sseq1d rspcev
        anbi12d syl12anc wne wf wral wex elin elpwi sseld difeq2 sseq2d rexbidv
        id anbi2d elrab2 simprbi syl6 ralrimiv ac6sfi syl2anr ad2antlr crn cint
        sylbi frn ad2antrl simprr simpl cdm dm0rn0 fdm eqeq1d necon3bid biimpac
        syl5rbbr syl2an wfo wfn ffn dffn4 adantr w3a syl13anc ad2antll wb eliin
        ciin elssuni syl6sseqr syl2anc ralrimiva adantrr ssel ral2imi cvv ax-mp
        3imtr4g ssrdv eqsstrd clsss2 wi sstrd ex anim2d reximdva mpd sylib fofi
        fiinopn imp ralimi mpbird cab fnrnfv inteqd fvex dfiin2 syl6eqr ad4antr
        eleqtrrd ffvelrn adantll clscld iincld sscls vex iindif2 simplrl uniiun
        ccld sseq2i sscon exlimddv anassrs pm2.61dane sselda wn eldifbd hausnei
        nelne2 3anass eqeq1i reldisj syl5bb opncld sylbid syl5bi r19.42v syl6ib
        ciun incom sylan crab unieqi eleq2i elunirab bitri sylibr ssrab2 elpw2g
        eqsstri mpbiri crest co ccmp cmpsub biimp3a syl3anc pweq ineq1d rexeqdv
        imbi12d rspcva r19.29a ) AFUAUMZUCZPZECUMZQZUXLGUDUEZUEZIFUFZPZRZCGUGZU
        AHUHZUIUJZAUXIUYAQZRZUXKRZUXSUXISUYDUXISTZRZIGQZEIQZIUXNUEZUXPPZUXSUYFG
        UKQZUYGAUYKUYBUXKUYEAGULQZUYKLGUNZUOZUPZGIJUQUOAUYHUYBUXKUYEAEIFOURZUPU
        YFUYIUXPTUYJUYFUYIIUXPUYFUYKUYIITUYOGIJUSUOUYFUXPISUFIUYFFSIUYFFSPFSTUY
        FFUXJSUYCUXKUYEUTUYEUXJSTUYDUYEUXJSUCSUXISVAVBVCVDVEFVFUOVGIVHVCVIUYIUX
        PVJUOUXRUYHUYJRCIGUXLITZUXMUYHUXQUYJUXLIEVKUYQUXOUYIUXPUXLIUXNVLVMVOVNV
        PUYCUXKUXISVQZUXSUYCUXKUYRRZRZUXIGUBUMZVRZEUXLVUAUEZQZVUCUXNUEZIUXLUFZP
        ZRZCUXIVSZRZUXSUBUYBVUJUBVTZAUYSUYBUXIUXTQZUXIUIQZRVUKUXIUXTUIWAZVUMVUM
        EDUMZQZVUOUXNUEZVUFPZRZDGUGZCUXIVSVUKVULVUMWGVULVUTCUXIVULUXLUXIQZUXLHQ
        ZVUTVULUXIHUXLUXIHWBWCVVBUXLGQVUTVUPVUQIBUMZUFZPZRZDGUGZVUTBUXLGHVVCUXL
        TZVVFVUSDGVVHVVEVURVUPVVHVVDVUFVUQVVCUXLIWDWEWHWFKWIWJWKWLVUSVUHCDUXIGU
        BVUOVUCTZVUPVUDVURVUGVUOVUCEVKVVIVUQVUEVUFVUOVUCUXNVLVMVOWMWNWRWOUYTVUJ
        RZVUAWPZWQZGQZEVVLQZVVLUXNUEZUXPPZUXSVVJUYKVVKGPZVVKSVQZVVKUIQZVVMAUYKU
        YBUYSVUJUYNUPVUBVVQUYTVUIUXIGVUAWSWTUYTUYRVUBVVRVUJUYCUXKUYRXAZVUBVUIXB
        VUBUYRVVRVUBUXISVVKSVVKSTVUAXCZSTVUBUYEVUAXDVUBVWAUXISUXIGVUAXEXFXIXGXH
        XJUYTVUMUXIVVKVUAXKZVVSVUJUYBVUMAUYSUYBVULVUMVUNWJWOVUBVWBVUIVUBVUAUXIX
        LZVWBUXIGVUAXMZUXIVUAXNUUAXOUXIVVKVUAUUBXJUYKVVQVVRVVSXPVVMVVKGUUCUUDXQ
        VVJECUXIVUCYAZVVLVVJEVWEQZVUDCUXIVSZVUIVWGUYTVUBVUHVUDCUXIVUDVUGXBUUEXR
        VVJEUXPQZVWFVWGXSAVWHUYBUYSVUJOUPCEUXIVUCUXPXTUOUUFVVJVWCVVLVWETVUBVWCU
        YTVUIVWDWTVWCVVLVVCVUCTCUXIUGBUUGZWQVWEVWCVVKVWICBUXIVUAUUHUUICBUXIVUCU
        XLVUAUUJUUKUULUOZUUNVVJVVOCUXIVUEYAZUXPVVJVWKGUVDUEZQZVVLVWKPVVOVWKPVVJ
        UYRVUEVWLQZCUXIVSZVWMUYTUYRVUJVVTXOZUYTVUBVWOVUIUYTVUBRZVWNCUXIVWQVVARZ
        UYKVUCIPZVWNAUYKUYBUYSVUBVVAUYNUUMZVWRVUCGUCZIVWRVUCGQZVUCVXAPVUBVVAVXB
        UYTUXIGUXLVUAUUOUUPVUCGYBUOJYCZVUCGIJUUQYDYEYFCUXIVUEGUURYDVVJVVLVWEVWK
        VWJUYTVUBVWEVWKPZVUIVWQVUCVUEPZCUXIVSZVXDVWQVXECUXIVWRUYKVWSVXEVWTVXCVU
        CGIJUUSYDYEVXFBVWEVWKVXFVVCVUCQZCUXIVSZVVCVUEQZCUXIVSZVVCVWEQZVVCVWKQZV
        XEVXGVXICUXIVUCVUEVVCYGYHVVCYIQZVXKVXHXSBUUTZCVVCUXIVUCYIXTYJVXMVXLVXJX
        SVXNCVVCUXIVUEYIXTYJZYKYLUOYFYMVWKVVLGIJYNYDVVJVWKCUXIVUFYAZUXPVUIVWKVX
        PPUYTVUBVUIBVWKVXPVUIVXJVVCVUFQZCUXIVSZVXLVVCVXPQZVUHVXIVXQCUXIVUGVXIVX
        QYOVUDVUEVUFVVCYGVDYHVXOVXMVXSVXRXSVXNCVVCUXIVUFYIXTYJYKYLXRVVJVXPICUXI
        UXLUWDZUFZUXPVVJUYRVXPVYATVWPCUXIIUXLUVAUOVVJUXKVYAUXPPZUYCUXKUYRVUJUVB
        UXKFVXTPVYBUXJVXTFCUXIUVCUVEFVXTIUVFWRUOYMYPYPUXRVVNVVPRCVVLGUXLVVLTZUX
        MVVNUXQVVPUXLVVLEVKVYCUXOVVOUXPUXLVVLUXNVLVMVOVNVPUVGUVHUVIAFHUCZPZUXKU
        AUYAUGZAUAFVYDAUXIFQZUXIVYDQZAVYGRZUXIVVCQZVVGRZBGUGZVYHVYIVYJVUPVVCVUO
        UJZSTZXPZDGUGZBGUGZVYLVYIUYLUXIIQUYHUXIEVQZVYQAUYLVYGLXOZAFIUXIMUVJAUYH
        VYGUYPXOVYGVYGEFQUVKVYRAVYGWGAEIFOUVLUXIEFUVNWNUXIEDBGIJUVMXQVYIVYPVYKB
        GVYIVVCGQZRZVYPVYJVVFRZDGUGVYKWUAVYOWUBDGVYOVYJVUPVYNRZRWUAVUOGQZRZWUBV
        YJVUPVYNUVOWUEWUCVVFVYJWUEVYNVVEVUPWUEVYNVUOVVDPZVVEWUEVUOIPZVYNWUFXSWU
        DWUGWUAWUDVUOVXAIVUOGYBJYCVDVYNVUOVVCUJZSTWUGWUFVYMWUHSVVCVUOUWEUVPVUOV
        VCIUVQUVRUOWUEVVDVWLQZWUFVVEYOWUAWUIWUDVYIUYKVYTWUIVYIUYLUYKVYSUYMUOVVC
        GIJUVSUWFXOWUIWUFVVEVVDVUOGIJYNYQUOUVTYRYRUWAYSVYJVVFDGUWBUWCYSYTVYHUXI
        VVGBGUWGZUCZQVYLVYDWUKUXIHWUJKUWHUWIVVGBUXIGUWJUWKUWLYQYLAHGUHZQZFUXLUC
        ZPZUXKUAUXLUHZUIUJZUGZYOZCWULVSZVYEVYFYOZAWUMHGPZHWUJGKVVGBGUWMUWOAUYLW
        UMWVBXSLHGULUWNUOUWPAUYKFIPZGFUWQUWRUWSQZWUTUYNMNUYKWVCWVDWUTFGICUAJUWT
        UXAUXBWUSWVACHWULUXLHTZWUOVYEWURVYFWVEWUNVYDFUXLHVAWEWVEUXKUAWUQUYAWVEW
        UPUXTUIUXLHUXCUXDUXEUXFUXGYDYTUXH $.
    $}

    $( A compact subspace of a T2 space is closed.  (Contributed by Jeff
       Hankins, 16-Jan-2010.)  (Proof shortened by Mario Carneiro,
       14-Dec-2013.) $)
    hauscmp $p |- ( ( J e. Haus /\ S C_ X /\
                    ( J |`t S ) e. Comp ) -> S e. ( Clsd ` J ) ) $=
      ( vx vz vy vw cha wcel wss cfv cdif wel cv wa wrex wi syl wb crest co w3a
      ccmp ccld simp2 wral crab eqid simpl1 simpl2 simpl3 simpr hauscmplem ctop
      ccl haustop 3ad2ant1 elssuni syl6sseqr sscls syl2an sstr2 anim2d reximdva
      cuni adantr mpd ralrimiva eltop2 mpbird iscld mpbir2and ) BIJZACKZBAUAUBU
      DJZUCZABUELJZVOCAMZBJZVNVOVPUFVQVTEFNZFOZVSKZPZFBQZEVSUGZVQWEEVSVQEOZVSJZ
      PZWAWBBUPLZLZVSKZPZFBQZWEWIGFHWGABEHNHOWJLCGOMKPHBQGBUHZCDWOUIVNVOVPWHUJV
      NVOVPWHUKVNVOVPWHULVQWHUMUNVQWNWERWHVQWMWDFBVQWBBJZPZWLWCWAWQWBWKKZWLWCRV
      QBUOJZWBCKWRWPVNVOWSVPBUQURZWPWBBVFCWBBUSDUTWBBCDVAVBWBWKVSVCSVDVEVGVHVIV
      QWSVTWFTWTEFVSBVJSVKVQWSVRVOVTPTWTABCDVLSVM $.
  $}

  ${
    $d r v w x y z J $.
    $( If a topology is compact and a collection of closed sets has the finite
       intersection property, its intersection is nonempty.  (Contributed by
       Jeff Hankins, 25-Aug-2009.)  (Proof shortened by Mario Carneiro,
       1-Sep-2015.) $)
    cmpfi $p |- ( J e. Top -> ( J e. Comp <-> A. x e. ~P ( Clsd ` J )
                  ( -. (/) e. ( fi ` x ) -> |^| x =/= (/) ) ) ) $=
      ( vy vz vr wcel cv wceq cfn wrex c0 cdif cint wne wss wb cvv adantl syl
      wa vw vv ctop cuni cpw cin wi wral cmpt cima cfi cfv ccmp ccld elpwi ciin
      wn 0ss 0fin elfpw mpbir2an simprr simprl unieqd eqtrd unieq eqeq2d rspcev
      sylancr expr vn0 iineq1 0iin syl6eq eqeq1d necon3bbid mpbiri pm2.21d 2thd
      uniss ad2antlr eqss baib eqcom ssdif0 3bitr3g ciun iindif2 uniiun difeq2i
      syl6eqr bitr4d imassrn cres df-ima resmpt rneqd syl5eq ad2antrr syl5sseqr
      crn wfun funmpt simprbi imafi sylanbrc eqid topopn difexg ralrimivw fnmpt
      wfn ad3antrrr simpr simpld sseqtrd simprd fipreima syl3anc rexbii rexxfrd
      sylib inteqd 0ex wfo wf1o opncldf1 f1ofo sylibr a1i eldifsn bitri dfiin3g
      ccnv bitrd neeq1d syl6bbr imbi12d adantr wex forn syl5sseq fvex elpw2 csn
      elfi wo cun inundif rexeqi rexun bitr3i inss2 sseli elsni biimpd rexlimiv
      uni0 ssid syl6eqss eqssd eqtr3d syl6eqel pwfi pwuni ssfi sylancl syl5 idd
      syl2anc jaod impbid1 syl5bb eldifi simpllr sstrd resmptd 3eqtr2d rexbidva
      unissd imaeq2 ima0 int0 necomd necon2i rbaibr pm5.32ri rexbii2 pm2.61dane
      olc 3bitr4rd eqtr4d imbi1d con1b syl6bb sylan2 ralbidva iscmp simpl foima
      nne sseq2d syl5ibr imp ssimaexg df-rex selpw anbi1i fveq2d eleq2d ralxfrd
      exbii notbid 3bitr4d ) BUCFZBUDZCGZUDZHZUXPDGZUDZHZDUXQUEIUFZJZUGZCBUEZUH
      ZKEBUXPEGZLZUIZUXQUJZUKULZFZUQZUYKMZKNZUGZCUYFUHBUMFZKAGZUKULZFZUQZUYSMZK
      NZUGZABUNULZUEZUHUXOUYEUYQCUYFUXQUYFFZUXOUXQBOZUYEUYQPUXQBUOUXOVUITZUYEUY
      PUQZUYMUGZUYQVUJUYEEUXQUYIUPZKHZUYMUGZVULVUJUYEVUOPUXQKVUJUXQKHZTZUYEVUOV
      UJVUPUXSUYDVUJVUPUXSTTZKUYCFZUXPKUDZHZUYDVUSKUXQOKIFUXQURUSKUXQUTVAVURUXP
      UXRVUTVUJVUPUXSVBVURUXQKVUJVUPUXSVCVDVEUYBVVADKUYCUXTKHZUYAVUTUXPUXTKVFVG
      VHVIVJVUQVUNUYMVUQVUNUQQKNZVKVUQVUNQKVUQVUMQKVUQVUMEKUYIUPZQVUPVUMVVDHVUJ
      EUXQKUYIVLREUYIVMVNVOVPVQVRVSVUJUXQKNZTZUXSVUNUYDUYMVVFUXSUXPUXRLZKHZVUNV
      VFUXRUXPHZUXPUXROZUXSVVHVVFUXRUXPOZVVIVVJPVUIVVKUXOVVEUXQBVTZWAVVIVVKVVJU
      XRUXPWBWCSUXRUXPWDUXPUXRWEWFVVFVUMVVGKVVFVUMUXPEUXQUYHWGZLZVVGVVEVUMVVNHV
      UJEUXQUXPUYHWHRUXRVVMUXPEUXQWIWJWKVOWLVVFKUAGZMZHZUAUYKUEIUFZJZKEUXQUYIUI
      ZUXTUJZMZHZDUYCJZUYMUYDVVFVVQVWCUADVWAVVRUYCVVFUXTUYCFZTZVWAUYKOVWAIFZVWA
      VVRFVWFVVTXAZVWAUYKVVTUXTWMVUJUYKVWHHZVVEVWEVUJUYKUYJUXQWNZXAVWHUYJUXQWOV
      UJVWJVVTVUIVWJVVTHUXOEBUXQUYIWPRWQWRZWSWTVWFVVTXBUXTIFZVWGEUXQUYIXCVWEVWL
      VVFVWEUXTUXQOZVWLUXTUXQUTZXDRVVTUXTXEVIVWAUYKUTXFVVFVVOVVRFZTZVWAVVOHZDUY
      CJZVVOVWAHZDUYCJVWPVVTUXQXLZVVOVWHOVVOIFZVWRUXOVWTVUIVVEVWOUXOUYIQFZEUXQU
      HZVWTUXOVXBEUXQUXOUXPBFVXBBUXPUXPXGZXHUXPUYHBXISZXJZEUXQUYIVVTQVVTXGXKSXM
      VWPVVOUYKVWHVWPVVOUYKOZVXAVWPVWOVXGVXATVVFVWOXNVVOUYKUTYBZXOVUJVWIVVEVWOV
      WKWSXPVWPVXGVXAVXHXQVVOUXQVVTDXRXSVWQVWSDUYCVWAVVOWDXTYBVVFVWSTZVVPVWBKVX
      IVVOVWAVVFVWSXNYCVGYAVVFKQFUYKVUGFZUYMVVSPYDUXOVXJVUIVVEUXOUYKVUFOVXJUXOU
      YJXAZUYKVUFUYJUXQWMUXOBVUFUYJYEZVXKVUFHUXOBVUFUYJYFZVXLUXOVXMUYJYNUBVUFUX
      PUBGLUIHUBEUYJBUXPVXDUYJXGYGXOBVUFUYJYHSZBVUFUYJUUASUUBUYKVUFBUNUUCUUDYIZ
      WSUAKUYKQVUGUUFVIVVFUYDVWCDUYCKUUEZLZJZVWDVVFUYDUYBDVXQJZVXRUYDUYBDUYCVXP
      UFZJZVXSUUGZVVFVXSUYDUYBDVXTVXQUUHZJVYBUYBDVYCUYCUYCVXPUUIUUJUYBDVXTVXQUU
      KUULVVFVYBVXSVVFVYAVXSVXSVYAUXPKHZVVFVXSUYBVYDDVXTUXTVXTFZUYBVYDVYEUYAKUX
      PVYEUYAVUTKVYEUXTKVYEUXTVXPFVVBVXTVXPUXTUYCVXPUUMUUNUXTKUUOSVDUURVNVGUUPU
      UQVUJVVEVYDVXSVUJVVEVYDTZTZUXQVXQFZUXSVXSVYGUXQUYCFZVVEVYHVYGUXQUXQOZUXQI
      FZVYIVYJVYGUXQUUSYJVYGUXRUEZIFZUXQVYLOVYKVYGUXRIFVYMVYGUXRKIVYGUXPUXRKVYG
      UXPUXRVYGUXPKUXRVUJVVEVYDVBZUXRURUUTVUIVVKUXOVYFVVLWAUVAZVYNUVBUSUVCUXRUV
      DYBUXQUVEVYLUXQUVFUVGUXQUXQUTXFVUJVVEVYDVCUXQUYCKYKXFVYOUYBUXSDUXQVXQUXTU
      XQHUYAUXRUXPUXTUXQVFVGVHUVJVJUVHVVFVXSUVIUVKVXSVYAUWJUVLUVMVVFUYBVWCDVXQV
      VFUXTVXQFZTZUYBKUXPUYALZHZVWCVYQUYAUXPHZUXPUYAOZUYBVYSVYQUYAUXPOZVYTWUAPV
      YQUXTBVYQUXTUXQBVYQVWMVWLVYQVWEVWMVWLTVYPVWEVVFUXTUYCVXPUVNRVWNYBXOZUXOVU
      IVVEVYPUVOUVPUVTVYTWUBWUAUYAUXPWBWCSUYAUXPWDWUAVYRKHVYSUXPUYAWEVYRKWDYLWF
      VYQVWBVYRKVYQVWBUXPEUXTUYHWGZLZVYRVYQVWBEUXTUYIUIZXAZMZEUXTUYIUPZWUEVYQVW
      AWUGVYQVWAVVTUXTWNZXAWUGVVTUXTWOVYQWUJWUFVYQEUXQUXTUYIWUCUVQWQWRYCVYQVXBE
      UXTUHZWUIWUHHUXOWUKVUIVVEVYPUXOVXBEUXTVXEXJXMEUXTUYIQYMSVYQUXTKNZWUIWUEHV
      YPWULVVFVYPVWEWULUXTUYCKYKZXDREUXTUXPUYHWHSUVRUYAWUDUXPEUXTWIWJWKVGWLUVSY
      OVWCVWCDUYCVXQVWCVWEVYPVWCWULVWEVYPPUXTKKVWBVVBVWBKVVBVWBKNVVCVKVVBVWBQKV
      VBVWBKMQVVBVWAKVVBVWAVVTKUJKUXTKVVTUWAVVTUWBVNYCUWCVNYPVQUWDUWEVYPVWEWULW
      UMUWFSUWGUWHYQUWKYRUWIVUJVUNVUKUYMVUJVUNUYOKHVUKVUJVUMUYOKVUJVUMVWHMZUYOV
      UJVXCVUMWUNHUXOVXCVUIVXFYSEUXQUYIQYMSVUJUYKVWHVWKYCUWLVOUYOKUXAYQUWMYOUYP
      UYMUWNUWOUWPUWQUYRUXOUYGCDBUXPVXDUWRWCUXOVUEUYQACUYKVUGUYFUXOVXJVUHVXOYSU
      XOUYSVUGFZTZVUIUYSUYKHZTZCYTZWUQCUYFJZWUPUXOUYJXBZUYSUYJBUJZOZWUSUXOWUOUW
      SWVAWUPEBUYIXCYJUXOWUOWVCWUOWVCUXOUYSVUFOUYSVUFUOUXOWVBVUFUYSUXOVXLWVBVUF
      HVXNBVUFUYJUWTSUXBUXCUXDCBUYSUCUYJUXEXSWUTVUHWUQTZCYTWUSWUQCUYFUXFWVDWURC
      VUHVUIWUQCBUXGUXHUXLYLYIUXOWUQTZVUBUYNVUDUYPWVEVUAUYMWVEUYTUYLKWVEUYSUYKU
      KUXOWUQXNZUXIUXJUXMWVEVUCUYOKWVEUYSUYKWVFYCYPYRUXKUXN $.
  $}

  ${
    $d J x $.  $d X x $.
    $( In a compact topology, a system of closed sets with nonempty finite
       intersections has a nonempty intersection.  (Contributed by Stefan
       O'Rear, 22-Feb-2015.) $)
    cmpfii $p |- ( ( J e. Comp /\ X C_ ( Clsd ` J ) /\ -. (/) e. ( fi ` X ) )
        -> |^| X =/= (/) ) $=
      ( vx ccmp wcel ccld cfv wss c0 cfi wn cint wne cv wral fvex elpw2 biimpri
      cpw wi ctop wb cmptop cmpfi syl ibi wceq fveq2 eleq2d notbid inteq neeq1d
      imbi12d rspcva syl2anr 3impia ) ADEZBAFGZHZIBJGZEZKZBLZIMZUSBURSZEZICNZJG
      ZEZKZVGLZIMZTZCVEOZVBVDTZUQVFUSBURAFPQRUQVNUQAUAEUQVNUBAUCCAUDUEUFVMVOCBV
      EVGBUGZVJVBVLVDVPVIVAVPVHUTIVGBJUHUIUJVPVKVCIVGBUKULUMUNUOUP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Bolzano-Weierstrass theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d b o x z A $.  $d b o x z J $.  $d b o x z X $.
    bwt2.1 $e |- X = U. J $.
    $( The glorious Bolzano-Weierstrass theorem.  The first general topology
       theorem ever proved.  The first mention of this theorem can be found in
       a course by Weierstrass from 1865.  In his course Weierstrass called it
       a lemma.  He didn't know how famous this theorem would be.  He used a
       Euclidean space instead of a general compact space.  And he was not
       aware of the Heine-Borel property.  But the concepts of neighborhood and
       limit point were already there although not precisely defined.  Cantor
       was one of his students.  He published and used the theorem in an
       article from 1872.  The rest of the general topology followed from that.
       (Contributed by FL, 2-Aug-2009.)  (Revised by Mario Carneiro,
       15-Dec-2013.)  Revised by BL to significantly shorten the proof and
       avoid infinity, regularity, and choice.  (Revised by Brendan Leahy,
       26-Dec-2018.) $)
    bwth $p |- ( ( J e. Comp /\ A C_ X /\ -. A e. Fin ) ->
     E. x e. X x e. ( ( limPt ` J ) ` A ) ) $=
      ( vb vz vo wcel wss cfn wn cv wrex cin wral wa c0 wi cun ccmp w3a clp cfv
      cpw wel pm3.24 a1i nrex r19.29 mto cuni wceq csn cdif wex wne ralnex ctop
      wb cmptop islp3 3expa notbid ralbidva sylan syl5bbr rexanali nne vex sneq
      weq difeq2d ineq2d eqeq1d spcev sylbi anim2i reximi sylbir ralimi cmpcov2
      ex syl5 adantr sylbid 3adant3 inss2 sseli biimpac infssuni ancoms anassrs
      sseq2 an42s sylanl2 0fin eleq1 mpbiri sylancl ssun1 undif1 sseqtr4i ss2in
      snfi unfi mp2an incom 3sstr4i ssfi exlimiv anim12ci expl reximdva 3adant1
      undir syld mt3i ) CUAIZBDJZBKILZUBZAMZBCUCUDUDIZADNZBFMZOZKIZFGMZPZYHLZFY
      INZQZGCUEZKOZNZYMGYOYMLYIYOIZYMYHYKQZFYINYRFYIYRLFGUFYHUGUHUIYHYKFYIUJUKU
      HUIYBYELZDYIULZUMZYFBHMZUNZUOZOZRUMZHUPZFYIPZQZGYONZYPXSXTYSUUJSYAXSXTQZY
      SAFUFZYFBYCUNZUOZOZRUQZSFCPZLZADPZUUJYSYDLZADPZUUKUUSYDADURXSCUSIZXTUVAUU
      SUTCVAUVBXTQZUUTUURADUVCYCDIZQYDUUQUVBXTUVDYDUUQUTFYCBCDEVBVCVDVEVFVGXSUU
      SUUJSXTUUSUULUUGQZFCNZADPZXSUUJUURUVFADUURUULUUPLZQZFCNUVFUULUUPFCVHUVIUV
      EFCUVHUUGUULUVHUUORUMZUUGUUORVIUUFUVJHYCAVJHAVLZUUEUUORUVKUUDUUNYFUVKUUCU
      UMBUUBYCVKVMVNVOVPVQVRVSVTWAXSUVGUUJUUGAFCDGEWBWCWDWEWFWGXTYAUUJYPSXSXTYA
      QZUUIYMGYOUVLYQQZUUAUUHYMUVMUUAQYLUUHYJYQUVLYIKIZUUAYLYOKYIYNKWHWIUVLUVNU
      UAYLXTUUAYAUVNYLXTUUAQBYTJZYAUVNQZYLUUAXTUVODYTBWNWJUVPUVOYLYAUVNUVOYLFBY
      IWKVCWLVFWOWMWPUUGYHFYIUUFYHHUUFUUEUUCTZKIZYGUVQJYHUUFUUEKIZUUCKIUVRUUFUV
      SRKIWQUUERKWRWSUUBXEUUEUUCXFWTYFBOZYFUUCTZUUDUUCTZOZYGUVQYFUWAJBUWBJUVTUW
      CJYFUUCXABBUUCTUWBBUUCXABUUCXBXCYFUWABUWBXDXGBYFXHYFUUDUUCXPXIUVQYGXJWTXK
      WAXLXMXNXOXQXR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Connectedness
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Conn $.
  $( Extend class notation with the class of all connected topologies. $)
  cconn $a class Conn $.

  $( Topologies are connected when only ` (/) ` and ` U. j ` are both open and
     closed.  (Contributed by FL, 17-Nov-2008.) $)
  df-conn $a |-
               Conn = { j e. Top | ( j i^i ( Clsd ` j ) ) = { (/) , U. j } } $.

  ${
    $d j J $.  $d j X $.
    isconn.1 $e |- X = U. J $.
    $( The predicate ` J ` is a connected topology .  (Contributed by FL,
       17-Nov-2008.) $)
    isconn $p |- ( J e. Conn <->
                      ( J e. Top /\ ( J i^i ( Clsd ` J ) ) = { (/) , X } ) ) $=
      ( vj cv ccld cfv cin c0 cuni cpr wceq ctop cconn id fveq2 ineq12d syl6eqr
      unieq preq2d eqeq12d df-conn elrab2 ) DEZUDFGZHZIUDJZKZLAAFGZHZIBKZLDAMNU
      DALZUFUJUHUKULUDAUEUIULOUDAFPQULUGBIULUGAJBUDASCRTUADUBUC $.

    $( The predicate ` J ` is a connected topology .  (Contributed by Mario
       Carneiro, 10-Mar-2015.) $)
    isconn2 $p |- ( J e. Conn <->
                     ( J e. Top /\ ( J i^i ( Clsd ` J ) ) C_ { (/) , X } ) ) $=
      ( cconn wcel ctop ccld cfv cin c0 cpr wceq wa wss isconn 0opn 0cld topopn
      elind topcld prssi syl2anc biantrud eqss syl6rbbr pm5.32i bitri ) ADEAFEZ
      AAGHZIZJBKZLZMUHUJUKNZMABCOUHULUMUHUMUMUKUJNZMULUHUNUMUHJUJEBUJEUNUHAUIJA
      PAQSUHAUIBABCRABCTSJBUJUAUBUCUJUKUDUEUFUG $.

    connclo.1 $e |- ( ph -> J e. Conn ) $.
    connclo.2 $e |- ( ph -> A e. J ) $.
    connclo.3 $e |- ( ph -> A =/= (/) ) $.
    ${
      connclo.4 $e |- ( ph -> A e. ( Clsd ` J ) ) $.
      $( The only nonempty clopen set of a connected topology is the whole
         space.  (Contributed by Mario Carneiro, 10-Mar-2015.) $)
      connclo $p |- ( ph -> A = X ) $=
        ( c0 wceq wn neneqd cpr wcel wo ccld cfv cin syl isconn simprbi eleqtrd
        elind cconn ctop elpri ord mpd ) ABJKZLBDKZABJHMAUJUKABJDNZOUJUKPABCCQR
        ZSZULACUMBGIUDACUEOZUNULKZFUOCUFOUPCDEUAUBTUCBJDUGTUHUI $.
    $}

    conndisj.4 $e |- ( ph -> B e. J ) $.
    conndisj.5 $e |- ( ph -> B =/= (/) ) $.
    conndisj.6 $e |- ( ph -> ( A i^i B ) = (/) ) $.
    $( If a topology is connected, its underlying set can't be partitioned into
       two nonempty non-overlapping open sets.  (Contributed by FL,
       16-Nov-2008.)  (Proof shortened by Mario Carneiro, 10-Mar-2015.) $)
    conndisj $p |- ( ph -> ( A u. B ) =/= X ) $=
      ( c0 wne wceq cdif wss cin wcel adantr cun wb elssuni syl6sseqr uneqdifeq
      cuni syl syl2anc simpr difeq2d dfss4 sylib cconn ccld cfv ctop cpr isconn
      wa simplbi opncld eqeltrrd connclo difid syl6eq 3eqtr3d ex sylbid necon3d
      mpd ) ABMNBCUAZENIAVKEBMAVKEOZEBPZCOZBMOZABEQZBCRMOVLVNUBABDUFZEABDSZBVQQ
      HBDUCUGFUDZLBCEUEUHAVNVOAVNUSZEVMPZECPZBMVTVMCEAVNUIZUJAWABOZVNAVPWDVSBEU
      KULTVTWBEEPMVTCEEVTCDEFADUMSZVNGTACDSVNJTACMNVNKTVTVMCDUNUOZWCAVMWFSZVNAD
      UPSZVRWGAWEWHGWEWHDWFRMEUQODEFURUTUGHBDEFVAUHTVBVCUJEVDVEVFVGVHVIVJ $.
  $}

  $( A connected topology is a topology.  (Contributed by FL, 22-Dec-2008.)
     (Revised by Mario Carneiro, 14-Dec-2013.) $)
  conntop $p |- ( J e. Conn -> J e. Top ) $=
    ( cconn wcel ctop ccld cfv cin c0 cuni cpr wceq eqid isconn simplbi ) ABCAD
    CAAEFGHAIZJKAOOLMN $.

  $( The indiscrete topology (or trivial topology) on any set is connected.
     (Contributed by FL, 5-Jan-2009.)  (Revised by Mario Carneiro,
     14-Aug-2015.) $)
  indisconn $p |- { (/) , A } e. Conn $=
    ( cpr cconn wcel ctop ccld cfv cin cid wss indistop inss1 indislem sseqtr4i
    c0 indisuni isconn2 mpbir2an ) OABZCDSEDSSFGZHZOAIGZBZJAKUASUCSTLAMNSUBAPQR
    $.

  ${
    $d x y J $.  $d x y X $.
    $( An alternate definition of connectedness.  (Contributed by Jeff Hankins,
       9-Jul-2009.)  (Proof shortened by Mario Carneiro, 10-Mar-2015.) $)
    dfconn2 $p |- ( J e. ( TopOn ` X ) -> ( J e. Conn <-> A. x e. J A. y e. J
 ( ( x =/= (/) /\ y =/= (/) /\ ( x i^i y ) = (/) ) -> ( x u. y ) =/= X ) ) ) $=
      ( cfv wcel cv c0 wne cin wceq cun wi wral wa ex wss wal adantl bitri cuni
      ctopon cconn w3a simpll simplrl simpr1 simplrr simpr2 conndisj ralrimivva
      eqid simpr3 ctop topontop ccld cdif cldopn df-3an disjdif syl6eq biantrud
      cpr ineq2 neeq1 anbi2d bitr3d syl5bb uneq2 undif2 neeq1d imbi12d rspcv wo
      syl cldss ssequn1 sylib ssdif0 jctild eqss syl6ibr syl5bir embantd orim2d
      idd impexp wn df-ne id necon4d necon3d impbii imbi12i pm4.64 elpr 3imtr4g
      syld com23 imim2d elin imbi1i alimdv df-ral dfss2 isconn2 sylibrd impbid2
      vex baib toponuni neeq2d imbi2d 2ralbidv bitr4d ) CDUBEFZCUCFZAGZHIZBGZHI
      ZXRXTJZHKZUDZXRXTLZCUAZIZMZBCNZACNZYDYEDIZMZBCNACNXPXQYJXQYHABCCXQXRCFZXT
      CFZOZOZYDYGYPYDOXRXTCYFYFULZXQYOYDUEXQYMYNYDUFYPXSYAYCUGXQYMYNYDUHYPXSYAY
      CUIYPXSYAYCUMUJPUKXPCUNFZYJXQMDCUOYRYJCCUPEZJZHYFVCZQZXQYRYMYIMZARXRYTFZX
      RUUAFZMZARYJUUBYRUUCUUFAYRUUCYMXRYSFZUUEMZMZUUFYRYIUUHYMYRUUGYIUUEYRUUGYI
      UUEMYRUUGOZYIXSYFXRUQZHIZOZXRYFLZYFIZMZUUEUUJUUKCFZYIUUPMUUGUUQYRXRCYFYQU
      RSYHUUPBUUKCXTUUKKZYDUUMYGUUOYDXSYAOZYCOZUURUUMXSYAYCUSUURUUSUUTUUMUURYCU
      USUURYBXRUUKJHXTUUKXRVDXRYFUTVAVBUURYAUULXSXTUUKHVEVFVGVHUURYEUUNYFUURYEX
      RUUKLUUNXTUUKXRVIXRYFVJVAVKVLVMVOUUJXRHKZUUNYFKZUUKHKZMZVNZUVAXRYFKZVNUUP
      UUEUUJUVDUVFUVAUUJUVBUVCUVFUUJXRYFQZUVBUUGUVGYRXRCYFYQVPSZXRYFVQVRUVCYFXR
      QZUUJUVFYFXRVSUUJUVIUVGUVIOUVFUUJUVIUVIUVGUUJUVIWFUVHVTXRYFWAWBWCWDWEUUPX
      SUULUUOMZMZUVEXSUULUUOWGUVKUVAWHZUVDMUVEXSUVLUVJUVDXRHWIUVJUVDUVJUUKHUUNY
      FUVJWJWKUVDUUNYFUUKHUVDWJWLWMWNUVAUVDWOTTXRHYFAXIWPWQWRPWSWTUUFYMUUGOZUUE
      MUUIUUDUVMUUEXRCYSXAXBYMUUGUUEWGTWBXCYIACXDAYTUUAXEWQXQYRUUBCYFYQXFXJXGVO
      XHXPYLYHABCCXPYKYGYDXPDYFYEDCXKXLXMXNXO $.
  $}

  ${
    $d u v x y A $.  $d u v x y J $.  $d x y S $.  $d u v x y X $.
    $( Connectedness for a subspace.  See ~ connsub .  (Contributed by FL,
       29-May-2014.)  (Proof shortened by Mario Carneiro, 10-Mar-2015.) $)
    connsuba $p |- ( ( J e. ( TopOn ` X ) /\ A C_ X ) -> ( ( J |`t A ) e. Conn
                 <-> A. x e. J A. y e. J ( ( ( x i^i A ) =/= (/) /\
                     ( y i^i A ) =/= (/) /\ ( ( x i^i y ) i^i A ) = (/) )
                                         -> ( ( x u. y ) i^i A ) =/= A ) ) ) $=
      ( vu vv ctopon wcel wa cv c0 wne cin wceq cun wral wb cvv neeq1d crest co
      cfv wss cconn w3a wi resttopon dfconn2 syl vex inex1 wrex toponmax adantr
      simpr ssexd elrest syldan simplr ineq12d inindir syl6eqr eqeq1d 3anbi123d
      a1i uneq12d indir imbi12d ralxfr2d bitrd ) DEHUCZIZCEUDZJZDCUAUBZUEIZFKZL
      MZGKZLMZVRVTNZLOZUFZVRVTPZCMZUGZGVPQZFVPQZAKZCNZLMZBKZCNZLMZWJWMNCNZLOZUF
      ZWJWMPCNZCMZUGZBDQZADQVOVPCHUCIVQWIRCDEUHFGVPCUIUJVOWHXBFAWKVPDSWKSIVOWJD
      IJWJCAUKULVFVMVNCSIZVRVPIVRWKOZADUMRVOCEDVMEDIVNEDUNUOVMVNUPUQZAVRCDVLSUR
      USVOXDJZWGXAGBWNVPDSWNSIXFWMDIJWMCBUKULVFVOVTVPIVTWNOZBDUMRZXDVMVNXCXHXEB
      VTCDVLSURUSUOXFXGJZWDWRWFWTXIVSWLWAWOWCWQXIVRWKLVOXDXGUTZTXIVTWNLXFXGUPZT
      XIWBWPLXIWBWKWNNWPXIVRWKVTWNXJXKVAWJWMCVBVCVDVEXIWEWSCXIWEWKWNPWSXIVRWKVT
      WNXJXKVGWJWMCVHVCTVIVJVJVK $.

    $( Two equivalent ways of saying that a subspace topology is connected.
       (Contributed by Jeff Hankins, 9-Jul-2009.)  (Proof shortened by Mario
       Carneiro, 10-Mar-2015.) $)
    connsub $p |- ( ( J e. ( TopOn ` X ) /\ S C_ X ) -> ( ( J |`t S ) e. Conn
      <-> A. x e. J A. y e. J ( ( ( x i^i S ) =/= (/) /\ ( y i^i S ) =/= (/) /\
                      ( x i^i y ) C_ ( X \ S ) ) -> -. S C_ ( x u. y ) ) ) ) $=
      ( ctopon cfv wcel wss wa crest cv cin c0 wne wceq w3a wi wral wb co cconn
      cun wn connsuba inss1 toponss ad2ant2r syl5ss reldisj syl 3anbi3d sseqin2
      cdif a1i bicomd necon3abid imbi12d 2ralbidva bitrd ) DEFGHZCEIZJZDCKUAUBH
      ALZCMNOZBLZCMNOZVDVFMZCMNPZQZVDVFUCZCMZCOZRZBDSADSVEVGVHECUNIZQZCVKIZUDZR
      ZBDSADSABCDEUEVCVNVSABDDVCVDDHZVFDHZJJZVJVPVMVRWBVIVOVEVGWBVHEIVIVOTWBVHV
      DEVDVFUFVAVTVDEIVBWAVDDEUGUHUIVHCEUJUKULWBVQVLCWBVQVLCPZVQWCTWBCVKUMUOUPU
      QURUSUT $.
  $}

  ${
    $d x F $.  $d x J $.  $d x K $.  $d x X $.  $d x Y $.
    cnconn.2 $e |- Y = U. K $.
    $( Connectedness is respected by a continuous onto map.  (Contributed by
       Jeff Hankins, 12-Jul-2009.)  (Proof shortened by Mario Carneiro,
       10-Mar-2015.) $)
    cnconn $p |- ( ( J e. Conn /\ F : X -onto-> Y /\ F e. ( J Cn K ) ) ->
        K e. Conn ) $=
      ( vx cconn wcel ccld cfv cin c0 wss wa wceq wne cima syl2anc syl wfo ctop
      ccn co w3a cpr cntop2 3ad2ant3 cv wo wn df-ne ccnv cuni cdm simpl1 simpl3
      eqid inss1 simprl sseldi cnima crn elssuni syl6sseqr simpl2 forn sseqtr4d
      df-rn sseqin2 sylib simprr eqnetrd imadisj necon3bii sylibr inss2 cnclima
      syl6sseq connclo cnf fdm 3syl 3eqtr2d imaeq2d foimacnv foima 3eqtr3d expr
      wf fof syl5bir orrd vex elpr ex ssrdv isconn2 sylanbrc ) BHIZDEAUAZABCUCU
      DIZUEZCUBIZCCJKZLZMEUFZNCHIXBWTXDXAABCUGUHXCGXFXGXCGUIZXFIZXHXGIZXCXIOZXH
      MPZXHEPZUJXJXKXLXMXLUKXHMQZXKXMXHMULXCXIXNXMXCXIXNOZOZAAUMZXHRZRZADRZXHEX
      PXRDAXPXRBUNZAUOZDXPXRBYAYAURZWTXAXBXOUPXPXBXHCIZXRBIWTXAXBXOUQZXPXFCXHCX
      EUSXCXIXNUTZVAZXHABCVBSXPXQUOZXHLZMQXRMQXPYIXHMXPXHYHNYIXHPXPXHAVCZYHXPXH
      EYJXPXHCUNZEXPYDXHYKNYGXHCVDTFVEZXPXAYJEPWTXAXBXOVFZDEAVGTVHAVIVSXHYHVJVK
      XCXIXNVLVMXRMYIMXQXHVNVOVPXPXBXHXEIXRBJKIYEXPXFXEXHCXEVQYFVAXHABCVRSVTXPX
      BYAEAWJYBYAPYEABCYAEYCFWAYAEAWBWCXPXADEAWJYBDPYMDEAWKDEAWBWCWDWEXPXAXHENX
      SXHPYMYLDEXHAWFSXPXAXTEPYMDEAWGTWHWIWLWMXHMEGWNWOVPWPWQCEFWRWS $.
  $}

  ${
    $d x y A $.  $d x y J $.  $d x y U $.  $d y V $.  $d x y X $.
    nconnsubb.2 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    nconnsubb.3 $e |- ( ph -> A C_ X ) $.
    nconnsubb.4 $e |- ( ph -> U e. J ) $.
    nconnsubb.5 $e |- ( ph -> V e. J ) $.
    nconnsubb.6 $e |- ( ph -> ( U i^i A ) =/= (/) ) $.
    nconnsubb.7 $e |- ( ph -> ( V i^i A ) =/= (/) ) $.
    nconnsubb.8 $e |- ( ph -> ( ( U i^i V ) i^i A ) = (/) ) $.
    nconnsubb.9 $e |- ( ph -> A C_ ( U u. V ) ) $.
    $( Disconnectedness for a subspace.  (Contributed by FL, 29-May-2014.)
       (Proof shortened by Mario Carneiro, 10-Mar-2015.) $)
    nconnsubb $p |- ( ph -> -. ( J |`t A ) e. Conn ) $=
      ( vx vy cin c0 wne wceq crest co cconn wcel cun wss cv w3a wi wral ctopon
      wn cfv wb connsuba syl2anc 3jca ineq1 neeq1d ineq1d eqeq1d 3anbi13d uneq1
      imbi12d ineq2 3anbi23d sseqin2 necon3bbii uneq2 sseq2d notbid rspc2v mpid
      syl5bbr sylbid mt2d ) ADBUAUBUCUDZBCEUEZUFZNAVQOUGZBQZRSZPUGZBQZRSZVTWCQZ
      BQZRTZUHZVTWCUEZBQZBSZUIZPDUJODUJZVSULZADFUKUMUDBFUFVQWNUNGHOPBDFUOUPAWNC
      BQZRSZEBQZRSZCEQZBQZRTZUHZWOAWQWSXBKLMUQACDUDEDUDWNXCWOUIZUIIJWMXDWQWECWC
      QZBQZRTZUHZCWCUEZBQZBSZUIOPCEDDVTCTZWIXHWLXKXLWBWQWHXGWEXLWAWPRVTCBURUSXL
      WGXFRXLWFXEBVTCWCURUTVAVBXLWKXJBXLWJXIBVTCWCVCUTUSVDWCETZXHXCXKWOXMWEWSXG
      XBWQXMWDWRRWCEBURUSXMXFXARXMXEWTBWCECVEUTVAVFXKBXIUFZULXMWOXNXJBBXIVGVHXM
      XNVSXMXIVRBWCECVIVJVKVNVDVLUPVMVOVP $.
  $}

  ${
    $d x A $.  $d x B $.  $d x J $.  $d x X $.
    connsubclo.1 $e |- X = U. J $.
    connsubclo.3 $e |- ( ph -> A C_ X ) $.
    connsubclo.4 $e |- ( ph -> ( J |`t A ) e. Conn ) $.
    connsubclo.5 $e |- ( ph -> B e. J ) $.
    connsubclo.6 $e |- ( ph -> ( B i^i A ) =/= (/) ) $.
    connsubclo.7 $e |- ( ph -> B e. ( Clsd ` J ) ) $.
    $( If a clopen set meets a connected subspace, it must contain the entire
       subspace.  (Contributed by Mario Carneiro, 10-Mar-2015.) $)
    connsubclo $p |- ( ph -> A C_ B ) $=
      ( vx cin wceq wss eqid ctop wcel cvv ccld crest co cuni cfv cldrcl topopn
      ssexd elrestr syl3anc cv wrex ineq1 eqeq2d rspcev sylancl restcld syl2anc
      syl wb mpbird connclo restuni eqtr4d sseqin2 sylibr ) ACBMZBNBCOAVFDBUAUB
      ZUCZBAVFVGVHVHPHADQRZBSRCDRVFVGRACDTUDZRZVIKCDUEURZABEDAVIEDRVLDEFUFURGUG
      ICBDQSUHUIJAVFVGTUDRZVFLUJZBMZNZLVJUKZAVKVFVFNZVQKVFPVPVRLCVJVNCNVOVFVFVN
      CBULUMUNUOAVIBEOZVMVQUSVLGLVFBDEFUPUQUTVAAVIVSBVHNVLGBDEFVBUQVCBCVDVE $.
  $}

  ${
    connima.x $e |- X = U. J $.
    connima.f $e |- ( ph -> F e. ( J Cn K ) ) $.
    connima.a $e |- ( ph -> A C_ X ) $.
    connima.c $e |- ( ph -> ( J |`t A ) e. Conn ) $.
    $( The image of a connected set is connected.  (Contributed by Mario
       Carneiro, 7-Jul-2015.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
    connima $p |- ( ph -> ( K |`t ( F " A ) ) e. Conn ) $=
      ( crest co cconn wcel cuni ccn wss syl wceq syl2anc cima cres wfo wfun wf
      cdm eqid cnf ffun fdm sseqtr4d fores wb cntop2 crn imassrn syl5ss restuni
      ctop frn foeq3 mpbid cnrest ctopon cfv toptopon sylib df-ima eqimss2 mp1i
      cnrest2 syl3anc cnconn ) ADBKLZMNBECBUAZKLZOZCBUBZUCZVRVNVPPLNZVPMNJABVOV
      RUCZVSACUDZBCUFZQWAAFEOZCUEZWBACDEPLNZWEHCDEFWDGWDUGZUHRZFWDCUIRABFWCIAWE
      WCFSWHFWDCUJRUKBCULTAVOVQSZWAVSUMAEUSNZVOWDQZWIAWFWJHCDEUNRZAVOCUOZWDCBUP
      AWEWMWDQWHFWDCUTRUQZVOEWDWGURTVOVQBVRVARVBAVRVNEPLNZVTAWFBFQWOHIBCDEFGVCT
      AEWDVDVENZVRUOZVOQZWKWOVTUMAWJWPWLEWDWGVFVGVOWQSWRACBVHWQVOVIVJWNVOVRVNEW
      DVKVLVBVRVNVPBVQVQUGVMVL $.
  $}

  ${
    conncn.x $e |- X = U. J $.
    conncn.j $e |- ( ph -> J e. Conn ) $.
    conncn.f $e |- ( ph -> F e. ( J Cn K ) ) $.
    conncn.u $e |- ( ph -> U e. K ) $.
    conncn.c $e |- ( ph -> U e. ( Clsd ` K ) ) $.
    conncn.a $e |- ( ph -> A e. X ) $.
    conncn.1 $e |- ( ph -> ( F ` A ) e. U ) $.
    $( A continuous function from a connected topology with one point in a
       clopen set must lie entirely within the set.  (Contributed by Mario
       Carneiro, 16-Feb-2015.) $)
    conncn $p |- ( ph -> F : X --> U ) $=
      ( wss wf co wcel syl syl2anc wfn crn cuni ccn cnf ffn frn cconn crest wfo
      eqid dffn4 sylib wceq ctop cntop2 restuni foeq3 mpbid ctopon cfv toptopon
      wb ssid a1i cnrest2 syl3anc cnconn cin c0 fnfvelrn inelcm connsubclo df-f
      wne sylanbrc ) ADGUAZDUBZCOGCDPAGFUCZDPZVQADEFUDQRZVTJDEFGVSHVSUKZUESZGVS
      DUFSZAVRCFVSWBAVTVRVSOZWCGVSDUGSZAEUHRGFVRUIQZUCZDUJZDEWGUDQRZWGUHRIAGVRD
      UJZWIAVQWKWDGDULUMAVRWHUNZWKWIVCAFUORZWEWLAWAWMJDEFUPSZWFVRFVSWBUQTVRWHGD
      URSUSAWAWJJAFVSUTVARZVRVROZWEWAWJVCAWMWOWNFVSWBVBUMWPAVRVDVEWFVRDEFVSVFVG
      USDEWGGWHWHUKVHVGKABDVAZCRWQVRRZCVRVIVJVONAVQBGRWRWDMGBDVKTWQCVRVLTLVMGCD
      VNVP $.
  $}

  ${
    $d k u v x A $.  $d u v x B $.  $d k u v J $.  $d k x P $.  $d k u v x X $.
    $d u v x ph $.  $d k x U $.  $d k x V $.
    iunconn.2 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    iunconn.3 $e |- ( ( ph /\ k e. A ) -> B C_ X ) $.
    iunconn.4 $e |- ( ( ph /\ k e. A ) -> P e. B ) $.
    iunconn.5 $e |- ( ( ph /\ k e. A ) -> ( J |`t B ) e. Conn ) $.
    ${
      iunconn.6 $e |- ( ph -> U e. J ) $.
      iunconn.7 $e |- ( ph -> V e. J ) $.
      iunconn.8 $e |- ( ph -> ( V i^i U_ k e. A B ) =/= (/) ) $.
      iunconn.9 $e |- ( ph -> ( U i^i V ) C_ ( X \ U_ k e. A B ) ) $.
      iunconn.10 $e |- ( ph -> U_ k e. A B C_ ( U u. V ) ) $.
      iunconn.11 $e |- F/ k ph $.
      $( Lemma for ~ iunconn .  (Contributed by Mario Carneiro,
         11-Jun-2014.) $)
      iunconnlem $p |- ( ph -> -. P e. U ) $=
        ( wcel vx cv ciun cin wex wn c0 wne n0 sylib elin wrex eliun nfan crest
        wa nfv co adantr ctopon cfv ad2antrr wss simprr inelcm syl2anc ad2antrl
        cconn wceq ssiun2 ad2antlr sscond sstrd wb inss1 toponss syl5ss reldisj
        cdif syl mpbird nconnsubb expr mt2d an4s rexlimd syl5bi expimpd exlimdv
        cun exp32 mpd ) AUAUBZHFBCUCZUDZTZUAUEZDETZUFZAWOUGUHWQPUAWOUIUJAWPWSUA
        WPWMHTZWMWNTZUPAWSWMHWNUKAWTXAWSXAWMCTZFBULAWTUPZWSFWMBCUMXCXBWSFBAWTFS
        WTFUQUNWSFUQXCFUBBTZXBWSAXDWTXBWSAXDUPZWTXBUPZUPWRGCUOURVHTZXEXGXFMUSXE
        XFWRXGUFXEXFWRUPZUPZCEGHIAGIUTVATZXDXHJVBZXECIVCXHKUSAEGTZXDXHNVBZAHGTX
        DXHOVBXIWRDCTZECUDUGUHXEXFWRVDXEXNXHLUSDECVEVFXFHCUDUGUHXEWRWMHCVEVGXIE
        HUDZCUDUGVIZXOICVSZVCZXIXOIWNVSZXQAXOXSVCXDXHQVBXICWNIXDCWNVCAXHFBCVJVK
        ZVLVMXIXOIVCXPXRVNXIXOEIEHVOXIXJXLEIVCXKXMEGIVPVFVQXOCIVRVTWAXICWNEHWJZ
        XTAWNYAVCXDXHRVBVMWBWCWDWEWKWFWGWHWGWIWL $.
    $}

    $d k ph $.
    $( The indexed union of connected overlapping subspaces sharing a common
       point is connected.  (Contributed by Mario Carneiro, 11-Jun-2014.) $)
    iunconn $p |- ( ph -> ( J |`t U_ k e. A B ) e. Conn ) $=
      ( vu vv wcel cin c0 wss wn wral nfcv ciun crest co cconn wne cdif w3a cun
      cv wi wa wo simpr wrex simplr1 wex n0 inss2 sseli eliun rexn0 syl exlimiv
      sylbi simplll ralrimiva r19.2z syl2anc sylibr sseldd elun sylib cfv sylan
      ctopon simpllr simpld simprd simplr2 nfv nfiu1 nfin nfne nfdif nfss nf3an
      simplr3 nfan nfun iunconnlem incom syl5eqss uncom syl6sseq ioran sylanbrc
      pm2.65da ex ralrimivva wb iunss connsub mpbird ) AFEBCUAZUBUCUDNZLUIZXDOZ
      PUEZMUIZXDOZPUEZXFXIOZGXDUFZQZUGZXDXFXIUHZQZRZUJZMFSLFSZAXSLMFFAXFFNZXIFN
      ZUKZUKZXOXRYDXOUKZXQDXFNZDXINZULZYEXQUKZDXPNYHYIXDXPDYEXQUMZYIDCNZEBUNZDX
      DNYIBPUEZYKEBSZYLYIXHYMXHXKXNYDXQUOZXHXIXGNZMUPYMMXGUQYPYMMYPXIXDNZYMXGXD
      XIXFXDURUSYQXICNZEBUNYMEXIBCUTYREBVAVDVBVCVDVBYIAYNAYCXOXQVEZAYKEBJVFVBYK
      EBVGVHEDBCUTVIVJDXFXIVKVLYIYFRYGRYHRYIBCDXFEFXIGYIAFGVOVMNZYSHVBZYIAEUIBN
      ZCGQZYSIVNZYIAUUBYKYSJVNZYIAUUBFCUBUCUDNYSKVNZYIYAYBAYCXOXQVPZVQZYIYAYBUU
      GVRZXHXKXNYDXQVSXHXKXNYDXQWGZYJYEXQEYDXOEYDEVTXHXKXNEEXGPEXFXDEXFTZEBCWAZ
      WBEPTZWCEXJPEXIXDEXITZUULWBUUMWCEXLXMEXLTEGXDEGTUULWDWEWFWHEXDXPUULEXFXIU
      UKUUNWIWEWHZWJYIBCDXIEFXFGUUAUUDUUEUUFUUIUUHYOYIXIXFOXLXMXIXFWKUUJWLYIXDX
      PXIXFUHYJXFXIWMWNUUOWJYFYGWOWPWQWRWSAYTXDGQZXEXTWTHAUUCEBSUUPAUUCEBIVFEBC
      GXAVILMXDFGXBVHXC $.
  $}

  ${
    $d k x y z A $.  $d k x B $.  $d k x y z J $.  $d y T $.  $d k x y z X $.
    $( The union of two connected overlapping subspaces is connected.
       (Contributed by FL, 29-May-2014.)  (Proof shortened by Mario Carneiro,
       11-Jun-2014.) $)
    unconn $p |- ( ( J e. ( TopOn ` X ) /\ ( A C_ X /\ B C_ X ) /\
                     ( A i^i B ) =/= (/) ) ->
                   ( ( ( J |`t A ) e. Conn /\ ( J |`t B ) e. Conn ) ->
                                            ( J |`t ( A u. B ) ) e. Conn ) ) $=
      ( vx vk wcel wss wa crest co cconn cv cvv wceq ssexd biimprd jaoa sylan2b
      mpan9 ctopon cfv cin c0 wne cun wi wex n0 w3a cpr ciun cuni uniiun simpl1
      toponmax syl simpl2l simpl2r uniprg syl2anc syl5eqr oveq2d wo elpr simpl2
      vex sseq1 simpl3 elin sylib eleq2 simpr eleq1d iunconn eqeltrrd ex 3expia
      oveq2 exlimdv syl5bi 3impia ) CDUAUBGZADHZBDHZIZABUCZUDUEZCAJKZLGZCBJKZLG
      ZIZCABUFZJKZLGZUGZWHEMZWGGZEUHWCWFIZWQEWGUIWTWSWQEWCWFWSWQWCWFWSUJZWMWPXA
      WMIZCFABUKZFMZULZJKWOLXBXEWNCJXBXEXCUMZWNFXCUNXBANGBNGXFWNOXBADCXBWCDCGWC
      WFWSWMUOZDCUPUQZWDWEWCWSWMURPXBBDCXHWDWEWCWSWMUSPABNNUTVAVBVCXBXCXDWRFCDX
      GXDXCGZXBXDAOZXDBOZVDZXDDHZXDABFVGVEZXBWFXLXMWCWFWSWMVFXJWDXMXKWEXJXMWDXD
      ADVHQXKXMWEXDBDVHQRTSXIXBXLWRXDGZXNXBWRAGZWRBGZIZXLXOXBWSXRWCWFWSWMVIWRAB
      VJVKXJXPXOXKXQXJXOXPXDAWRVLQXKXOXQXDBWRVLQRTSXIXBXLCXDJKZLGZXNXBWMXLXTXAW
      MVMXJWJXTXKWLXJXTWJXJXSWILXDACJVSVNQXKXTWLXKXSWKLXDBCJVSVNQRTSVOVPVQVRVTW
      AWB $.

    $( The closure of a connected set is connected.  (Contributed by Mario
       Carneiro, 19-Mar-2015.) $)
    clsconn $p |- ( ( J e. ( TopOn ` X ) /\ A C_ X /\ ( J |`t A ) e. Conn ) ->
                                     ( J |`t ( ( cls ` J ) ` A ) ) e. Conn ) $=
      ( vx vy vz cfv wcel wss cv cin c0 wne cdif adantr syl sseqtrd sseldi cvv
      wa ctopon crest co cconn w3a ccl cun wral simpll3 simpll1 simpll2 simplrl
      wn wi simplrr wex simprl1 n0 sylib ctop cuni topontop wceq toponuni inss2
      simpr inss1 eqid clsndisj syl32anc exlimddv simprl2 simprl3 sscls syl2anc
      sscond sstrd ssv ssdif ax-mp syl6ss disj2 sylibr simprr nconnsubb expr ex
      mt2d ralrimivva simp1 sseq2d biimpa clsss3 sylan sseqtr4d 3adant3 connsub
      wb syldan mpbird ) BCUAGHZACIZBAUBUCUDHZUEZBABUFGGZUBUCUDHZDJZXEKZLMZEJZX
      EKZLMZXGXJKZCXENZIZUEZXEXGXJUGZIZUMZUNZEBUHDBUHZXDXTDEBBXDXGBHZXJBHZTZTZX
      PXSYEXPTXRXCXAXBXCYDXPUIYEXPXRXCUMYEXPXRTZTZAXGBXJCXAXBXCYDYFUJZXAXBXCYDY
      FUKZXDYBYCYFULZXDYBYCYFUOZYGFJZXHHZXGAKLMZFYGXIYMFUPXIXLXOXRYEUQFXHURUSYG
      YMTZBUTHZABVAZIZYLXEHZYBYLXGHYNYOXAYPYGXAYMYHOZCBVBZPYOACYQYGXBYMYIOYOXAC
      YQVCZYTCBVDZPQYOXHXEYLXGXEVEYGYMVFZRYGYBYMYJOYOXHXGYLXGXEVGUUDRYLAXGBYQYQ
      VHZVIVJVKYGYLXKHZXJAKLMZFYGXLUUFFUPXIXLXOXRYEVLFXKURUSYGUUFTZYPYRYSYCYLXJ
      HUUGUUHXAYPYGXAUUFYHOZUUAPUUHACYQYGXBUUFYIOUUHXAUUBUUIUUCPQUUHXKXEYLXJXEV
      EYGUUFVFZRYGYCUUFYKOUUHXKXJYLXJXEVGUUJRYLAXJBYQUUEVIVJVKYGXMSANZIXMAKLVCY
      GXMCANZUUKYGXMXNUULXIXLXOXRYEVMYGAXECYGYPYRAXEIYGXAYPYHUUAPYGACYQYIYGXAUU
      BYHUUCPQABYQUUEVNVOZVPVQCSIUULUUKICVRCSAVSVTWAXMAWBWCYGAXEXQUUMYEXPXRWDVQ
      WEWFWHWGWIXDXAXECIZXFYAWRXAXBXCWJXAXBUUNXCXAXBTXEYQCXAXBYRXEYQIZXAXBYRXAC
      YQAUUCWKWLXAYPYRUUOUUAABYQUUEWMWNWSXAUUBXBUUCOWOWPDEXEBCWQVOWT $.

    conncomp.2 $e |-
                    S = U. { x e. ~P X | ( A e. x /\ ( J |`t x ) e. Conn ) } $.
    $( The connected component containing ` A ` contains ` A ` .  (Contributed
       by Mario Carneiro, 19-Mar-2015.) $)
    conncompid $p |- ( ( J e. ( TopOn ` X ) /\ A e. X ) -> A e. S ) $=
      ( ctopon cfv wcel wa cv crest co cconn cpw crab cuni wrex sylibr anbi12d
      csn wss simpr snssd snex elpw snidg adantl restsn2 pwsn indisconn eqeltri
      c0 cpr syl6eqel jca eleq2 oveq2 eleq1d rspcev syl12anc elunirab syl6eleqr
      wceq ) DEGHIZBEIZJZBBAKZIZDVHLMZNIZJZAEOZPQZCVGVIVLJZAVMRZBVNIVGBUAZVMIZB
      VQIZVSDVQLMZNIZJZVPVGVQEUBVRVGBEVEVFUCUDVQEBUEUFSVFVSVEBEUGUHZVGVSWAWCVGV
      TVQOZNBDEUIWDUMVQUNNBUJVQUKULUOUPVOVSWBJAVQVMVHVQVDZVIVSVLWBVHVQBUQZWEVIV
      SVKWAWFWEVJVTNVHVQDLURUSTTUTVAVLABVMVBSFVC $.

    $( The connected component containing ` A ` is connected.  (Contributed by
       Mario Carneiro, 19-Mar-2015.) $)
    conncompconn $p |- ( ( J e. ( TopOn ` X ) /\ A e. X ) ->
                                                       ( J |`t S ) e. Conn ) $=
      ( vy ctopon cfv wcel wa crest co cv cconn cpw crab ciun simpld simprd weq
      uniiun eqtri oveq2i simpl simpr eleq2 oveq2 eleq1d anbi12d elpwid iunconn
      cuni elrab sylib syl5eqel ) DEHIJZBEJZKZDCLMDGBANZJZDUTLMZOJZKZAEPZQZGNZR
      ZLMOCVHDLCVFUMVHFGVFUBUCUDUSVFVGBGDEUQURUEUSVGVFJZKZVGEVJVGVEJZBVGJZDVGLM
      ZOJZKZVJVIVKVOKUSVIUFVDVOAVGVEAGUAZVAVLVCVNUTVGBUGVPVBVMOUTVGDLUHUIUJUNUO
      ZSUKVJVLVNVJVKVOVQTZSVJVLVNVRTULUP $.

    $( The connected component containing ` A ` is a superset of any other
       connected set containing ` A ` .  (Contributed by Mario Carneiro,
       19-Mar-2015.) $)
    conncompss $p |-
                   ( ( T C_ X /\ A e. T /\ ( J |`t T ) e. Conn ) -> T C_ S ) $=
      ( vy wss wcel crest co cconn cv wa cvv wceq eleq2 oveq2 eleq1d crab simp1
      w3a cuni ctop wb conntop 3ad2ant3 restrcl simprd elpwg 3syl mpbird 3simpc
      cpw anbi12d cbvrabv elrab2 sylanbrc elssuni syl syl6sseqr ) DFIZBDJZEDKLZ
      MJZUCZDBANZJZEVHKLZMJZOZAFUOZUAZUDZCVGDVNJZDVOIVGDVMJZVDVFOZVPVGVQVCVCVDV
      FUBVGVEUEJZDPJZVQVCUFVFVCVSVDVEUGUHVSEPJVTDEUIUJDFPUKULUMVCVDVFUNBHNZJZEW
      AKLZMJZOZVRHDVMVNWADQZWBVDWDVFWADBRWFWCVEMWADEKSTUPVLWEAHVMVHWAQZVIWBVKWD
      VHWABRWGVJWCMVHWAEKSTUPUQURUSDVNUTVAGVB $.

    $( The connected component containing ` A ` is a closed set.  (Contributed
       by Mario Carneiro, 19-Mar-2015.) $)
    conncompcld $p |-
                   ( ( J e. ( TopOn ` X ) /\ A e. X ) -> S e. ( Clsd ` J ) ) $=
      ( ctopon cfv wcel wa ccld ccl wss crest cconn cuni adantr syl2anc syl3anc
      co ctop topontop cpw crab ssrab2 sspwuni mpbi wceq toponuni syl5sseq eqid
      cv eqsstri clsss3 sseqtr4d sscls conncompid sseldd simpl a1i conncompconn
      clsconn conncompss wb iscld4 mpbird ) DEGHIZBEIZJZCDKHIZCDLHHZCMZVIVKEMBV
      KIDVKNTOIZVLVIVKDPZEVIDUAIZCVNMZVKVNMVGVOVHEDUBQZVIECVNCBAULZIDVRNTOIJZAE
      UCZUDZPZEFWAVTMWBEMVSAVTUEWAEUFUGUMZVGEVNUHVHEDUIQZUJZCDVNVNUKZUNRWDUOVIC
      VKBVIVOVPCVKMVQWECDVNWFUPRABCDEFUQURVIVGCEMZDCNTOIVMVGVHUSWGVIWCUTABCDEFV
      ACDEVBSABCVKDEFVCSVIVOVPVJVLVDVQWECDVNWFVERVF $.

    $( The connected component containing ` A ` is a subset of any clopen set
       containing ` A ` .  (Contributed by Mario Carneiro, 20-Sep-2015.) $)
    conncompclo $p |- ( ( J e. ( TopOn ` X ) /\ T e. ( J i^i ( Clsd ` J ) ) /\
                                                        A e. T ) -> S C_ T ) $=
      ( ctopon cfv wcel ccld cin w3a cuni eqid wss simp1 inss1 sseldi syl2anc
      simp2 toponss simp3 sseldd conncompcld cldss syl crest cconn conncompconn
      co c0 wne conncompid inelcm inss2 connsubclo ) EFHIJZDEEKIZLZJZBDJZMZCDEE
      NZVDOZVCCUSJZCVDPVCURBFJZVFURVAVBQZVCDFBVCURDEJDFPVHVCUTEDEUSRURVAVBUAZSZ
      DEFUBTURVAVBUCZUDZABCEFGUETCEVDVEUFUGVCURVGECUHUKUIJVHVLABCEFGUJTVJVCVBBC
      JZDCLULUMVKVCURVGVMVHVLABCEFGUNTBDCUOTVCUTUSDEUSUPVISUQ $.
  $}

  ${
    $d x J $.  $d x X $.
    t1connperf.1 $e |- X = U. J $.
    $( A connected T_1 space is perfect, unless it is the topology of a
       singleton.  (Contributed by Mario Carneiro, 26-Dec-2016.) $)
    t1connperf $p |-
                    ( ( J e. Fre /\ J e. Conn /\ -. X ~~ 1o ) -> J e. Perf ) $=
      ( vx ct1 wcel cconn c1o cen wbr wn cperf wa cv wral wrex simplr simprr c0
      csn wne vex snnz a1i ccld cfv t1sncld ad2ant2r ensn1 syl6eqbrr rexlimdvaa
      connclo con3d ralnex syl6ibr ctop wb t1top adantr isperf3 baib syl 3impia
      sylibrd ) AEFZAGFZBHIJZKZALFZVEVFMZVHDNZTZAFZKDBOZVIVJVHVMDBPZKVNVJVOVGVJ
      VMVGDBVJVKBFZVMMZMZBVLHIVRVLABCVEVFVQQVJVPVMRVLSUAVRVKDUBZUCUDVEVPVLAUEUF
      FVFVMVKABCUGUHULVKVSUIUJUKUMVMDBUNUOVJAUPFZVIVNUQVEVTVFAURUSVIVTVNDABCUTV
      AVBVDVC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  First- and second-countability
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c 1stc $.
  $( Extend class definition to include the class of all first-countable
     topologies. $)
  c1stc $a class 1stc $.

  $c 2ndc $.
  $( Extend class definition to include the class of all second-countable
     topologies. $)
  c2ndc $a class 2ndc $.

  ${
    $d j x y z $.
    $( Define the class of all first-countable topologies.  (Contributed by
       Jeff Hankins, 22-Aug-2009.) $)
    df-1stc $a |- 1stc = { j e. Top | A. x e. U. j E. y e. ~P j
      ( y ~<_ _om /\ A. z e. j ( x e. z -> x e. U. ( y i^i ~P z ) ) ) } $.

    $( Define the class of all second-countable topologies.  (Contributed by
       Jeff Hankins, 17-Jan-2010.) $)
    df-2ndc $a |- 2ndc = { j | E. x e. TopBases ( x ~<_ _om
       /\ ( topGen ` x ) = j ) } $.
  $}

  ${
    $d w x y z $.  $d j x y z J $.  $d j x X $.
    is1stc.1 $e |- X = U. J $.
    $( The predicate "is a first-countable topology."  This can be described as
       "every point has a countable local basis" - that is, every point has a
       countable collection of open sets containing it such that every open set
       containing the point has an open set from this collection as a subset.
       (Contributed by Jeff Hankins, 22-Aug-2009.) $)
    is1stc $p |- ( J e. 1stc <-> ( J e. Top /\ A. x e. X E. y e. ~P J
      ( y ~<_ _om /\ A. z e. J ( x e. z -> x e. U. ( y i^i ~P z ) ) ) ) ) $=
      ( vj cv com cdom wbr wcel cpw cin cuni wi wral wa wrex ctop c1stc syl6eqr
      wceq unieq pweq raleq anbi2d rexeqbidv raleqbidv df-1stc elrab2 ) BHZIJKZ
      AHZCHZLUNULUOMNOLPZCGHZQZRZBUQMZSZAUQOZQUMUPCDQZRZBDMZSZAEQGDTUAUQDUCZVAV
      FAVBEVGVBDOEUQDUDFUBVGUSVDBUTVEUQDUEVGURVCUMUPCUQDUFUGUHUIABCGUJUK $.

    $( An equivalent way of saying "is a first-countable topology."
       (Contributed by Jeff Hankins, 22-Aug-2009.)  (Revised by Mario Carneiro,
       21-Mar-2015.) $)
    is1stc2 $p |- ( J e. 1stc <-> ( J e. Top /\ A. x e. X E. y e. ~P J
 ( y ~<_ _om /\ A. z e. J ( x e. z -> E. w e. y ( x e. w /\ w C_ z ) ) ) ) ) $=
      ( c1stc wcel cv wel cpw wi wral wa wrex wex anbi2i bitri ralbii ctop cdom
      com wbr cin cuni is1stc elin selpw an12 exbii eluni df-rex 3bitr4i imbi2i
      wss rexbii ) EHIEUAIZBJZUCUBUDZACKZAJZUSCJZLZUEZUFIZMZCENZOZBELZPZAFNZOUR
      UTVAADKZDJZVCUPZOZDUSPZMZCENZOZBVJPZAFNZOABCEFGUGVLWBURVKWAAFVIVTBVJVHVSU
      TVGVRCEVFVQVAVMVNVEIZOZDQDBKZVPOZDQVFVQWDWFDWDVMWEVOOZOWFWCWGVMWCWEVNVDIZ
      OWGVNUSVDUHWHVOWEDVCUIRSRVMWEVOUJSUKDVBVEULVPDUSUMUNUOTRUQTRS $.
  $}

  ${
    $d x y z J $.
    $( A first-countable topology is a topology.  (Contributed by Jeff Hankins,
       22-Aug-2009.) $)
    1stctop $p |- ( J e. 1stc -> J e. Top ) $=
      ( vy vx vz c1stc wcel ctop cv com cdom wbr cpw cin cuni wi wral wrex eqid
      wa is1stc simplbi ) AEFAGFBHZIJKCHZDHZFUCUBUDLMNFODAPSBALQCANZPCBDAUEUERT
      UA $.
  $}

  ${
    $d a f g k n w x y z A $.  $d f g k n w x y z J $.  $d g k n w x y z X $.
    1stcclb.1 $e |- X = U. J $.
    $( A property of points in a first-countable topology.  (Contributed by
       Jeff Hankins, 22-Aug-2009.) $)
    1stcclb $p |- ( ( J e. 1stc /\ A e. X ) -> E. x e. ~P J ( x ~<_ _om /\
      A. y e. J ( A e. y -> E. z e. x ( A e. z /\ z C_ y ) ) ) ) $=
      ( vw c1stc wcel cv com cdom wbr wa wrex wi wral eleq1 rexbidv wss is1stc2
      cpw ctop simprbi wceq anbi1d imbi12d ralbidv anbi2d rspcv mpan9 ) EIJZAKZ
      LMNZHKZBKZJZUPCKZJZUSUQUAZOZCUNPZQZBERZOZAEUCZPZHFRZDFJUODUQJZDUSJZVAOZCU
      NPZQZBERZOZAVGPZUMEUDJVIHABCEFGUBUEVHVQHDFUPDUFZVFVPAVGVRVEVOUOVRVDVNBEVR
      URVJVCVMUPDUQSVRVBVLCUNVRUTVKVAUPDUSSUGTUHUIUJTUKUL $.

    $( For any point ` A ` in a first-countable topology, there is a function
       ` f : NN --> J ` enumerating neighborhoods of ` A ` which is decreasing
       and forms a local base.  (Contributed by Mario Carneiro,
       21-Mar-2015.) $)
    1stcfb $p |- ( ( J e. 1stc /\ A e. X ) -> E. f ( f : NN --> J /\
       A. k e. NN ( A e. ( f ` k ) /\ ( f ` ( k + 1 ) ) C_ ( f ` k ) ) /\
       A. y e. J ( A e. y -> E. k e. NN ( f ` k ) C_ y ) ) ) $=
      ( vw va vn wcel wa cv wss wrex wi wral cn c1 c0 vx vz vg c1stc com wbr wf
      cdom cfv caddc co w3a wex cpw 1stcclb crab wfo csdm ctop 1stctop ad2antrr
      wne topopn syl simprrr simplr wceq eleq2 sseq2 anbi2d rexbidv rspcv syl3c
      imbi12d simpl reximi cbvrexv sylib rabn0 sylibr rabex 0sdom ssrab2 ssdomg
      vex cvv mp2 cen simprrl nnenom ensymi domentr sylancl sylancr syl2anc cfz
      domtr fodomr cima cint cmpt cfn ad3antrrr crn imassrn forn simprll elpwid
      ad2antll syl5ss eqsstrd adantr cdm cin elfznn ssriv fof syl5sseqr sseqin2
      fdm elfz1end ne0i adantl sylan2b eqnetrd imadisj imp wb ralrimiva imaeq2d
      weq oveq2 inteqd eleq1d rspccva sylan fvmptg sseq1d fveq1 ralbidv fiinopn
      necon3bii cres fzfid wfun ffun fores fofi syl13anc eqid fmptd syl5sseq id
      rgenw ralrab mpbir ssralv mpisyl elintg ad3antlr mpbird simpr fzssp1 mp1i
      eleqtrrd imass2 intss peano2nn syl2an 3sstr4d simprlr rexrab rexeqdv fofn
      jca wfn sseq1 rexrn bitr3d funfvima2 intss1 sstr2 reximdva sylbid syl5bir
      3syl syld sylibrd nnex mptex feq1 eleq2d sseq12d anbi12d imbi2d 3anbi123d
      rexbidva spcev syl3anc expr adantrrl exlimdv mpd rexlimddv ) EUDKZBFKZLZU
      AMZUEUHUFZBUBMZKZBHMZKZUXLUXJNZLZHUXHOZPZUBEQZLZRECMZUGZBDMZUXTUIZKZUYBSU
      JUKZUXTUIZUYCNZLZDRQZBAMZKZUYCUYJNZDROZPZAEQZULZCUMZUAEUNZUAUBHBEFGUOUXGU
      XHUYRKZUXSLZLZRBIMZKZIUXHUPZUCMZUQZUCUMZUYQVUATVUDURUFZVUDRUHUFZVUGVUAVUD
      TVBZVUHVUAVUCIUXHOZVUJVUAUXMHUXHOZVUKVUAUXMUXLFNZLZHUXHOZVULVUAFEKZUXRUXF
      VUOVUAEUSKZVUPUXEVUQUXFUYTEUTZVAEFGVCVDUXGUYSUXIUXRVEUXEUXFUYTVFUXQUXFVUO
      PUBFEUXJFVGZUXKUXFUXPVUOUXJFBVHVUSUXOVUNHUXHVUSUXNVUMUXMUXJFUXLVIVJVKVNVL
      VMVUNUXMHUXHUXMVUMVOVPVDUXMVUCHIUXHUXLVUBBVHVQVRVUCIUXHVSVTVUDVUCIUXHUAWE
      ZWAWBVTVUAVUDUXHUHUFZUXHRUHUFZVUIUXHWFKVUDUXHNVVAVUTVUCIUXHWCZVUDUXHWFWDW
      GVUAUXIUERWHUFVVBUXGUYSUXIUXRWIRUEWJWKUXHUERWLWMVUDUXHRWQWNRVUDUCWRWOVUAV
      UFUYQUCUXGUYSUXRVUFUYQPUXIUXGUYSUXRLZVUFUYQUXGVVDVUFLZLZREJRVUESJMZWPUKZW
      SZWTZXAZUGZBUYBVVKUIZKZUYEVVKUIZVVMNZLZDRQZUYKVVMUYJNZDROZPZAEQZUYQVVFJRV
      VJEVVKVVFVVGRKZLZVUQVVIENZVVITVBZVVIXBKZVVJEKZUXEVUQUXFVVEVWCVURXCVWDVVIV
      UEXDZEVUEVVHXEVVFVWIENVWCVVFVWIVUDEVUFVWIVUDVGZUXGVVDRVUDVUEXFXIZVVFVUDUX
      HEVVCVVFUXHEUXGUYSUXRVUFXGXHXJXKXLXJVWDVUEXMZVVHXNZTVBVWFVWDVWMVVHTVWDVVH
      VWLNZVWMVVHVGVVFVWNVWCVVFRVVHVWLDVVHRUYBVVGXOXPVVFRVUDVUEUGZVWLRVGZVUFVWO
      UXGVVDRVUDVUEXQXIZRVUDVUEXTVDZXRXLZVVHVWLXSVRVWCVVFVVGVVHKZVVHTVBZVVGYAVW
      TVXAVVFVVHVVGYBYCYDYEVVITVWMTVUEVVHYFUUBVTVWDVVHXBKVVHVVIVUEVVHUUCZUQZVWG
      VWDSVVGUUDVWDVUEUUEZVWNVXCVVFVXDVWCVVFVWOVXDVWQRVUDVUEUUFVDZXLVWSVVHVUEUU
      GWOVVHVVIVXBUUHWOVUQVWEVWFVWGULVWHVVIEUUAYGUUIZVVKUUJZUUKVVFVVQDRVVFUYBRK
      ZLZVVNVVPVXIBVUESUYBWPUKZWSZWTZVVMVXIBVXLKZBVVGKZJVXKQZVXIVXKVUDNVXNJVUDQ
      ZVXOVXIVWIVXKVUDVUEVXJXEVVFVWJVXHVWKXLUULVXPVXNVXNPZJUXHQVXQJUXHVXNUUMUUN
      VUCVXNVXNJIUXHVUBVVGBVHUUOUUPVXNJVXKVUDUUQUURUXFVXMVXOYHUXEVVEVXHJBVXKFUU
      SUUTUVAVXIVXHVXLEKZVVMVXLVGVVFVXHUVBVVFVWHJRQZVXHVXRVVFVWHJRVXFYIZVWHVXRJ
      UYBRJDYKZVVJVXLEVYAVVIVXKVYAVVHVXJVUEVVGUYBSWPYLYJYMZYNYOYPJUYBVVJVXLREVV
      KVYBVXGYQWOZUVEVXIVUESUYEWPUKZWSZWTZVXLVVOVVMVXIVXKVYENZVYFVXLNVXJVYDNVYG
      VXISUYBUVCVXJVYDVUEUVFUVDVXKVYEUVGVDVXIUYERKZVYFEKZVVOVYFVGVXHVYHVVFUYBUV
      HZYCVVFVXSVYHVYIVXHVXTVYJVWHVYIJUYERVVGUYEVGZVVJVYFEVYKVVIVYEVYKVVHVYDVUE
      VVGUYESWPYLYJYMZYNYOUVIJUYEVVJVYFREVVKVYLVXGYQWOVYCUVJUVOYIVVFVWAAEVVFUYJ
      EKZLZUYKVXLUYJNZDROZVVTVYNUYKUXMUXLUYJNZLZHUXHOZVYPVVFUXRVYMUYKVYSPZUXGUY
      SUXRVUFUVKUXQVYTUBUYJEUBAYKZUXKUYKUXPVYSUXJUYJBVHWUAUXOVYRHUXHWUAUXNVYQUX
      MUXJUYJUXLVIVJVKVNYOYPVYSVYQHVUDOZVYNVYPVUCUXMVYQHIUXHVUBUXLBVHUVLVYNWUBU
      YBVUEUIZUYJNZDROZVYPVVFWUBWUEYHVYMVVFVYQHVWIOZWUBWUEVVFVYQHVWIVUDVWKUVMVV
      FVUERUVPZWUFWUEYHVUFWUGUXGVVDRVUDVUEUVNXIVYQWUDHDRVUEUXLWUCUYJUVQUVRVDUVS
      XLVYNWUDVYODRVYNVXHLWUCVXKKZVXLWUCNWUDVYOPVXHVYNUYBVXJKZWUHUYBYAVYNWUIWUH
      VYNVXDVXJVWLNWUIWUHPVVFVXDVYMVXEXLVYNRVXJVWLJVXJRVVGUYBXOXPVVFVWPVYMVWRXL
      XRVXJUYBVUEUVTWOYGYDWUCVXKUWAVXLWUCUYJUWBUWFUWCUWDUWEUWGVVFVVTVYPYHVYMVVF
      VVSVYODRVXIVVMVXLUYJVYCYRUWQXLUWHYIUYPVVLVVRVWBULCVVKJRVVJUWIUWJUXTVVKVGZ
      UYAVVLUYIVVRUYOVWBREUXTVVKUWKWUJUYHVVQDRWUJUYDVVNUYGVVPWUJUYCVVMBUYBUXTVV
      KYSZUWLWUJUYFVVOUYCVVMUYEUXTVVKYSWUKUWMUWNYTWUJUYNVWAAEWUJUYMVVTUYKWUJUYL
      VVSDRWUJUYCVVMUYJWUKYRVKUWOYTUWPUWRUWSUWTUXAUXBUXCUXD $.
  $}

  ${
    $d j x y J $.  $d x B $.
    $( The property of being second-countable.  (Contributed by Jeff Hankins,
       17-Jan-2010.)  (Revised by Mario Carneiro, 21-Mar-2015.) $)
    is2ndc $p |- ( J e. 2ndc <-> E. x e. TopBases ( x ~<_ _om /\
      ( topGen ` x ) = J ) ) $=
      ( vj c2ndc wcel com cdom wbr ctg cfv wceq ctb wrex cab df-2ndc eleq2i cvv
      cv wa simpr fvex syl6eqelr rexlimivw eqeq2 anbi2d rexbidv elab3 bitri ) B
      DEBARZFGHZUIIJZCRZKZSZALMZCNZEUJUKBKZSZALMZDUPBACOPUOUSCBURBQEALURBUKQUJU
      QTUIIUAUBUCULBKZUNURALUTUMUQUJULBUKUDUEUFUGUH $.

    $( A second-countable topology is a topology.  (Contributed by Jeff
       Hankins, 17-Jan-2010.)  (Revised by Mario Carneiro, 21-Mar-2015.) $)
    2ndctop $p |- ( J e. 2ndc -> J e. Top ) $=
      ( vx c2ndc wcel cv com cdom wbr ctg cfv wceq wa ctb wrex ctop is2ndc tgcl
      simprr adantr eqeltrrd rexlimiva sylbi ) ACDBEZFGHZUCIJZAKZLZBMNAODZBAPUG
      UHBMUCMDZUGLUEAOUIUDUFRUIUEODUGUCQSTUAUB $.

    $( A countable basis generates a second-countable topology.  (Contributed
       by Mario Carneiro, 21-Mar-2015.) $)
    2ndci $p |- ( ( B e. TopBases /\ B ~<_ _om ) -> ( topGen ` B ) e. 2ndc ) $=
      ( vx ctb wcel com cdom wbr wa ctg wceq wrex c2ndc simpl simpr eqidd breq1
      cv cfv fveq2 eqeq1d anbi12d rspcev syl12anc is2ndc sylibr ) ACDZAEFGZHZBQ
      ZEFGZUIIRZAIRZJZHZBCKZULLDUHUFUGULULJZUOUFUGMUFUGNUHULOUNUGUPHBACUIAJZUJU
      GUMUPUIAEFPUQUKULULUIAISTUAUBUCBULUDUE $.

    $( Having a countable subbase is a sufficient condition for
       second-countability.  (Contributed by Jeff Hankins, 17-Jan-2010.)
       (Proof shortened by Mario Carneiro, 21-Mar-2015.) $)
    2ndcsb $p |- ( J e. 2ndc <-> E. x ( x ~<_ _om /\
      ( topGen ` ( fi ` x ) ) = J ) ) $=
      ( vy wcel cv com cdom wbr cfi cfv ctg wceq wex ctb wrex is2ndc wss adantr
      wa cvv c2ndc df-rex ssfii fvex bastg fiss sylancr ctop tgcl fitop sseqtrd
      simprl syl 2basgen syl2anc simprr eqtr3d eximi sylbi fibas simpl wb fictb
      jca vex ax-mp sylib simpr breq1 fveq2 eqeq1d anbi12d rspcev sylibr impbii
      exlimiv ) BUADZAEZFGHZVRIJZKJZBLZSZAMZVQVSVRKJZBLZSZANOZWDABPWHVRNDZWGSZA
      MWDWGANUBWJWCAWJVSWBWIVSWFULWJWEWABWJVRVTQZVTWEQWEWALWIWKWGVRNUCRWJVTWEIJ
      ZWEWJWETDVRWEQZVTWLQVRKUDWIWMWGVRNUERVRWETUFUGWJWEUHDZWLWELWIWNWGVRUIRWEU
      JUMUKVRVTUNUOWIVSWFUPUQVDURUSUSWCVQAWCCEZFGHZWOKJZBLZSZCNOZVQWCVTNDVTFGHZ
      WBSZWTVRUTWCXAWBWCVSXAVSWBVAVRTDVSXAVBAVEVRTVCVFVGVSWBVHVDWSXBCVTNWOVTLZW
      PXAWRWBWOVTFGVIXCWQWABWOVTKVJVKVLVMUGCBPVNVPVO $.

    $( A second-countable space has at most the cardinality of the continuum.
       (Contributed by Mario Carneiro, 9-Apr-2015.) $)
    2ndcredom $p |- ( J e. 2ndc -> J ~<_ RR ) $=
      ( vx c2ndc wcel cv com cdom wbr ctg cfv wceq wa ctb cr cpw cn cen domentr
      ensymi sylancl wrex is2ndc tgdom adantr simpr nnenom pwdom rpnnen syl2anc
      syl domtr breq1 syl5ibcom expimpd rexlimiv sylbi ) ACDBEZFGHZUQIJZAKZLZBM
      UAANGHZBAUBVAVBBMUQMDZURUTVBVCURLZUSNGHZUTVBVDUSUQOZGHZVFNGHZVEVCVGURUQMU
      CUDVDVFPOZGHZVINQHVHVDUQPGHZVJVDURFPQHVKVCURUEPFUFSUQFPRTUQPUGUJNVIUHSVFV
      INRTUSVFNUKUIUSANGULUMUNUOUP $.
  $}

  ${
    $d b o p q s t x y J $.
    $( A second-countable space is first-countable.  (Contributed by Jeff
       Hankins, 17-Jan-2010.) $)
    2ndc1stc $p |- ( J e. 2ndc -> J e. 1stc ) $=
      ( vs vx vo vp vb vq vy vt wcel cv com cdom wbr wss wa wrex wi wral ctb wb
      c2ndc ctop cpw cuni c1stc 2ndctop ctg cfv wceq is2ndc w3a ssrab2 3ad2ant1
      crab bastg syl5ss fvex elpw2 sylibr cvv vex ssdomg mp2 simp2 domtr eltg2b
      sylancr elequ1 anbi1d rexbidv rspccv id adantrr elequ2 elrab adantl sseq1
      simprr anbi12d rspcev rexlimdvaa syl9r sylbid ralrimiv breq1 rexeq imbi2d
      syl2anc ralbidv syl12anc 3expia unieq eleq2d pweq raleq rexeqbidv imbi12d
      anbi2d syl5ibcom expimpd rexlimiv sylbi eqid is1stc2 sylanbrc ) AUBJZAUCJ
      BKZLMNZCKZDKZJZXJEKZJZXMXKOZPZEXHQZRZDASZPZBAUDZQZCAUEZSAUFJAUGXGYBCYCXGF
      KZLMNZYDUHUIZAUJZPZFTQXJYCJZYBRZFAUKYHYJFTYDTJZYEYGYJYKYEPXJYFUEZJZXIXRDY
      FSZPZBYFUDZQZRYGYJYKYEYMYQYKYEYMULZXJGKJZGYDUOZYPJZYTLMNZXLXPEYTQZRZDYFSZ
      YQYRYTYFOUUAYRYTYDYFYSGYDUMZYKYEYDYFOYMYDTUPUNUQYTYFYDUHURUSUTYRYTYDMNZYE
      UUBYDVAJYTYDOUUGFVBUUFYTYDVAVCVDYKYEYMVEYTYDLVFVHYRUUDDYFYRXKYFJZHKZIKZJZ
      UUJXKOZPZIYDQZHXKSZUUDYKYEUUHUUOUAYMHIXKYDTVGUNUUOXLXJUUJJZUULPZIYDQZYRUU
      CUUNUURHXJXKUUIXJUJZUUMUUQIYDUUSUUKUUPUULHCIVIVJVKVLYRUUQUUCIYDYRUUJYDJZU
      UQPZPUUJYTJZUUQUUCUVAUVBYRUVAUUTUUPPZUVBUUTUUPUVCUULUVCVMVNYSUUPGUUJYDGIC
      VOVPUTVQYRUUTUUQVSXPUUQEUUJYTXMUUJUJXNUUPXOUULEICVOXMUUJXKVRVTWAWIWBWCWDW
      EYOUUBUUEPBYTYPXHYTUJZXIUUBYNUUEXHYTLMWFUVDXRUUDDYFUVDXQUUCXLXPEXHYTWGWHW
      JVTWAWKWLYGYMYIYQYBYGYLYCXJYFAWMWNYGYOXTBYPYAYFAWOYGYNXSXIXRDYFAWPWSWQWRW
      TXAXBXCWECBDEAYCYCXDXEXF $.
  $}

  ${
    $d a t v w x y z A $.  $d x B $.  $d a t w x y z J $.  $d a t w x y z V $.
    $( Lemma for ~ 1stcrest .  (Contributed by Mario Carneiro, 21-Mar-2015.)
       (Revised by Mario Carneiro, 30-Apr-2015.) $)
    1stcrestlem $p |- ( B ~<_ _om -> ran ( x e. B |-> C ) ~<_ _om ) $=
      ( com cdom wbr cmpt crn cdm ccrd wcel wfo wss con0 word cvv reldom mpisyl
      mpancom domtr ordom brrelex2i elong syl mpbiri ondomen eqid dmmptss ssnum
      wb sylancl wfun funmpt funforn mpbi fodomnum brrelexi ssdomg syl2anc ) BD
      EFZABCGZHZVAIZEFZVCDEFZVBDEFUTVCJIZKZVCVBVALZVDUTBVFKZVCBMZVGDNKZUTVIUTVK
      DOZUAUTDPKVKVLUJBDEQUBDPUCUDUEDBUFSABCVAVAUGUHZBVCUIUKVAULVHABCUMVAUNUOVC
      VBVAUPRVCBEFZUTVEUTBPKVJVNBDEQUQVMVCBPURRVCBDTSVBVCDTUS $.

    $( A subspace of a first-countable space is first-countable.  (Contributed
       by Mario Carneiro, 21-Mar-2015.) $)
    1stcrest $p |- ( ( J e. 1stc /\ A e. V ) -> ( J |`t A ) e. 1stc ) $=
      ( vy vx vz vw vt va vv wcel wa cv com cdom wss wrex wi wceq cvv c1stc wbr
      crest co ctop wral cpw cuni 1stctop resttop sylan cin eqid eleq2d biimpar
      restuni2 simpl inss2 sseli 1stcclb syl2an simplll ad2antrl ssrest syl2anc
      elpwi ovex elpw2 cmpt crn vex simpllr restval sylancr simprrl 1stcrestlem
      sylibr syl eqbrtrd wb ad3antrrr elrest r19.29 simprr a1d ancld elin ssrin
      syl6ibr anim12d reximdv inex1 simp-4r eleq2 sseq1 anbi12d adantl rexxfr2d
      sylibrd com23 imim2d imp4b syl6bb sseq2 anbi2d rexbidv imbi12d syl5ibrcom
      a1i expr expimpd rexlimdva syl5 expd adantrrl sylbid ralrimiv breq1 rexeq
      impr imbi2d ralbidv rspcev syl12anc rexlimddv ralrimiva is1stc2 sylanbrc
      syldan ) BUAKZACKZLZBAUCUDZUEKZDMZNOUBZEMZFMZKZYQGMZKZYTYRPZLZGYOQZRZFYMU
      FZLZDYMUGZQZEYMUHZUFYMUAKYJBUEKZYKYNBUIZABCUJUKYLUUIEUUJYLYQUUJKZYQABUHZU
      LZKZUUIYLUUPUUMYLUUOUUJYQYJUUKYKUUOUUJSUULABCUUNUUNUMZUPUKUNUOYLUUPLZHMZN
      OUBZYQIMZKZYQYOKZYOUVAPZLZDUUSQZRZIBUFZLZUUIHBUGZYLYJYQUUNKUVIHUVJQUUPYJY
      KUQUUOUUNYQAUUNURUSHIDYQBUUNUUQUTVAUURUUSUVJKZUVILZLZUUSAUCUDZUUHKZUVNNOU
      BZYSUUCGUVNQZRZFYMUFZUUIUVMUVNYMPZUVOUVMYJUUSBPZUVTYJYKUUPUVLVBUVKUWAUURU
      VIUUSBVFVCAUUSBUAVDVEUVNYMBAUCVGVHVQUVMUVNJUUSJMAULZVIVJZNOUVMUUSTKZYKUVN
      UWCSHVKZYJYKUUPUVLVLZJAUUSTCVMVNUVMUUTUWCNOUBUURUVKUUTUVHVOJUUSUWBVPVRVSU
      VMUVRFYMUVMYRYMKZYRUVAAULZSZIBQZUVRUVMUUKYKUWGUWJVTYJUUKYKUUPUVLUULWAUWFI
      YRABUECWBVEUURUVKUVHUWJUVRRZUUTUURUVKUVHUWKUURUVKLZUVHUWJUVRUVHUWJLUVGUWI
      LZIBQUWLUVRUVGUWIIBWCUWLUWMUVRIBUWLUVABKZLZUVGUWIUVRUWOUVGLUVRUWIUVBYQAKZ
      LZUUAYTUWHPZLZGUVNQZRUWOUVGUVBUWPUWTUWOUVFUWPUWTRUVBUWOUWPUVFUWTUWLUWNUWP
      UVFUWTRUWLUWNUWPLZLZUVFYQYOAULZKZUXCUWHPZLZDUUSQUWTUXBUVEUXFDUUSUXBUVCUXD
      UVDUXEUXBUVCUVCUWPLUXDUXBUVCUWPUXBUWPUVCUWLUWNUWPWDWEWFYQYOAWGWIUVDUXERUX
      BYOUVAAWHXIWJWKUXBUWSUXFGDUXCUVNUUSTUXCTKUXBYOUUSKLYOADVKWLXIUXBUWDYKYTUV
      NKYTUXCSZDUUSQVTUWEYJYKUUPUVKUXAWMDYTAUUSTCWBVNUXGUWSUXFVTUXBUXGUUAUXDUWR
      UXEYTUXCYQWNYTUXCUWHWOWPWQWRWSXJWTXAXBUWIYSUWQUVQUWTUWIYSYQUWHKUWQYRUWHYQ
      WNYQUVAAWGXCUWIUUCUWSGUVNUWIUUBUWRUUAYRUWHYTXDXEXFXGXHXKXLXMXNXTXOXPXQUUG
      UVPUVSLDUVNUUHYOUVNSZYPUVPUUFUVSYOUVNNOXRUXHUUEUVRFYMUXHUUDUVQYSUUCGYOUVN
      XSYAYBWPYCYDYEYIYFEDFGYMUUJUUJUMYGYH $.

    $( A subspace of a second-countable space is second-countable.
       (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    2ndcrest $p |- ( ( J e. 2ndc /\ A e. V ) -> ( J |`t A ) e. 2ndc ) $=
      ( vx vy wcel c2ndc crest co cv com cdom wbr ctg cfv wceq ctb wrex syl2anc
      wa is2ndc simplr simpll restbas ad2antlr cin cmpt crn restval 1stcrestlem
      tgrest adantl eqbrtrd 2ndci eqeltrrd oveq1 eleq1d syl5ibcom syl5bi impcom
      expimpd rexlimdva ) ACFZBGFZBAHIZGFZVDDJZKLMZVGNOZBPZTZDQRVCVFDBUAVCVKVFD
      QVCVGQFZTZVHVJVFVMVHTZVIAHIZGFVJVFVNVGAHIZNOZVOGVNVLVCVQVOPVCVLVHUBZVCVLV
      HUCZAVGQCUKSVNVPQFZVPKLMVQGFVLVTVCVHAVGUDUEVNVPEVGEJAUFZUGUHZKLVNVLVCVPWB
      PVRVSEAVGQCUISVHWBKLMVMEVGWAUJULUMVPUNSUOVJVOVEGVIBAHUPUQURVAVBUSUT $.
  $}

  ${
    $d b c d f m n o t u v w x B $.  $d b c d f m n o t x J $.
    $d d f m n o t x S $.
    2ndcctbss.1 $e |- X = U. B $.
    2ndcctbss.2 $e |- J = ( topGen ` B ) $.
    2ndcctbss.3 $e |- S = { <. u , v >. |
      ( u e. c /\ v e. c /\ E. w e. B ( u C_ w /\ w C_ v ) ) } $.
    $( If a topology is second-countable, every base has a countable subset
       which is a base.  Exercise 16B2 in Willard.  (Contributed by Jeff
       Hankins, 28-Jan-2010.)  (Proof shortened by Mario Carneiro,
       21-Mar-2015.) $)
    2ndcctbss $p |- ( ( B e. TopBases /\ J e. 2ndc ) -> E. b e. TopBases
      ( b ~<_ _om /\ b C_ B /\ J = ( topGen ` b ) ) ) $=
      ( wcel wa cv com cdom wbr wceq wss vf vx vt vo vd vm vn ctb c2ndc ctg cfv
      w3a wrex simpr is2ndc sylib cid c1st c2nd wral wex cxp cvv vex xpex copab
      wel 3simpa ssopab2i df-xp 3sstr4i ssdomg mp2 cen xpdom1 omex xpdom2 domtr
      wf syl2anc xpomen domentr sylancl adantr ad2antll sylancr cop wrel 1st2nd
      relopabi eqeltrrd df-br fvex simpl sseq1 sseq2 bi2anan9 rexbidv 3anbi123d
      eleq1d bitr3i simp3bi syl fvi ad3antrrr rexeqdv mpbird ralrimiva axcc4dom
      braba anbi12d ad2antrr feq3d anbi1d crn 2ndctop adantl frn ad2antrl bastg
      ctop sstrd simprrl simprr ad2antlr simprrr tg2 sseqtrd simprl simplrl weq
      sseldd rspcev syl12anc syl3anbrc wi fveq2 sseq12d ex rexlimddv eqeq2i wfn
      syl6sseqr eleqtrrd biimpi syl6req ffn fnfvelrn simplll rspcv op1st sseq1i
      op2nd sseq2i anbi12i simplrr jca syl5bi syldc exp4c imp41 eleq2 ralrimivv
      expr basgen2 syl3anc eqeltrd tgclb sylibr ccrd cdm wfo con0 ondomen dffn4
      omelon fodomnum sylc eqcomd breq1 eqeq2d syl13anc sylbid exlimdv mpd ) DU
      HMZFUIMZNZIOZPQRZUWIUJUKZFSZNZHOZPQRZUWNDTZFUWNUJUKZSZULZHUHUMZIUHUWHUWGU
      WMIUHUMUWFUWGUNIFUOUPUWHUWIUHMZUWMNZNZEDUQUKZUAOZVSZUBOZURUKZUXGUXEUKZTZU
      XIUXGUSUKZTZNZUBEUTZNZUAVAZUWTUXCEPQRZUXHAOZTZUXRUXKTZNZAUXDUMZUBEUTUXPUX
      CEUWIUWIVBZQRZUYCPQRZUXQUYCVCMEUYCTUYDUWIUWIIVDZUYFVECIVGZBIVGZCOZUXRTZUX
      RBOZTZNZADUMZULZCBVFUYGUYHNZCBVFEUYCUYOUYPCBUYGUYHUYNVHVILCBUWIUWIVJVKEUY
      CVCVLVMUWMUYEUWHUXAUWJUYEUWLUWJUYCPPVBZQRZUYQPVNRUYEUWJUYCPUWIVBZQRUYSUYQ
      QRUYRUWIPUWIUYFVOUWIPPVPVQUYCUYSUYQVRVTWAUYCUYQPWBWCWDWEEUYCPVRWFZUXCUYBU
      BEUXCUXGEMZNZUYBUYAADUMZVUBUXHUXKWGZEMZVUCVUBUXGVUDEVUBEWHVUAUXGVUDSUYOCB
      ELWJUXCVUAUNZUXGEWIWFVUFWKVUEUXHUWIMZUXKUWIMZVUCVUEUXHUXKERVUGVUHVUCULZUX
      HUXKEWLUYOVUICBUXHUXKEUXGURWMUXGUSWMUYIUXHSZUYKUXKSZNZUYGVUGUYHVUHUYNVUCV
      ULUYIUXHUWIVUJVUKWNWTVULUYKUXKUWIVUJVUKUNWTVULUYMUYAADVUJUYJUXSVUKUYLUXTU
      YIUXHUXRWOUYKUXKUXRWPWQWRWSLXJXAXBXCVUBUYAAUXDDUWFUXDDSZUWGUXBVUADUHXDZXE
      XFXGXHUYAUXMAUXDUAUBEDUQWMUXRUXISUXSUXJUXTUXLUXRUXIUXHWPUXRUXIUXKWOXKXIVT
      UXCUXOUWTUAUXCUXOEDUXEVSZUXNNZUWTUXCUXFVUOUXNUXCUXDDUXEEUWFVUMUWGUXBVUNXL
      XMXNUXCVUPUWTUXCVUPNZUXEXOZUHMZVURPQRZVURDTZFVURUJUKZSZUWTVUQVVBYAMVUSVUQ
      VVBFYAVUQFYAMZVURFTUCHVGZUWNUDOZTZNZHVURUMZUCVVFUTUDFUTVVBFSUWHVVDUXBVUPU
      WGVVDUWFFXPXQXLZVUQVURDFVUOVVAUXCUXNEDUXEXRXSZVUQDDUJUKZFUWFDVVLTZUWGUXBV
      UPDUHXTZXEKUUCYBVUQVVIUDUCFVVFUXCVUPVVFFMZUCUDVGZNZVVIUXCVUPVVQNZNZUCUEVG
      ZUEOZVVFTZNZVVIUEUWIVVSVVFUWKMVVPVWCUEUWIUMVVSVVFFUWKUXCVUPVVOVVPYCUXBUWL
      UWHVVRUXAUWJUWLYDYEZUUDUXCVUPVVOVVPYFUEVVFUWIUCOZYGVTVVSUEIVGZVWCNZNZUCUF
      VGZUFOZVWATZNZVVIUFDVWHVWAVVLMVVTVWLUFDUMVWHUWIVVLVWAVWHUWIUWKVVLUXCUWIUW
      KTZVVRVWGUXAVWMUWHUWMUWIUHXTXSXLUXCUWKVVLSZVVRVWGUWMVWNUWHUXAUWLVWNUWJUWL
      VWNFVVLUWKKUUAUUEXQWEXLYHVVSVWFVWCYIZYLVVSVWFVVTVWBYCUFVWADVWEYGVTVWHVWJD
      MZVWLNZNZUCUGVGZUGOZVWJTZNZVVIUGUWIVWRVWJUWKMVWIVXBUGUWIUMVWRDUWKVWJVWRDV
      VLUWKVVSVVMVWGVWQUWFVVMUWGUXBVVRVVNXEXLVWRUWKFVVLVVSUWLVWGVWQVWDXLKUUFYHV
      WHVWPVWLYIYLVWHVWPVWIVWKYCUGVWJUWIVWEYGVTVWRUGIVGZVXBNZNZVWTVWAWGZUXEUKZV
      URMZVWEVXGMZVXGVVFTZNZVVIVXEUXEEUUBZVXFEMZVXHVWHVXLVWQVXDVVRVXLUXCVWGVUOV
      XLUXNVVQEDUXEUUGZXLYEXLVXEVXCVWFVWTUXRTZUXRVWATZNZADUMZVXMVWRVXCVXBYIVWHV
      WFVWQVXDVWOXLVXEVWPVXAVWKVXRVWHVWPVWLVXDYJVWRVXCVWSVXAYFVWQVWKVWHVXDVWPVW
      IVWKYDZYEVXQVXAVWKNAVWJDAUFYKVXOVXAVXPVWKUXRVWJVWTWPUXRVWJVWAWOXKYMZYNVXM
      VWTVWAERVXCVWFVXRULZVWTVWAEWLUYOVYACBVWTVWAEUGVDZUEVDZCUGYKZBUEYKZNZUYGVX
      CUYHVWFUYNVXRVYFUYIVWTUWIVYDVYEWNWTVYFUYKVWAUWIVYDVYEUNWTVYFUYMVXQADVYDUY
      JVXOVYEUYLVXPUYIVWTUXRWOUYKVWAUXRWPWQWRWSLXJXAZYOEVXFUXEUUHVTVVSVWGVWQVXD
      VXKVVRVWGVWQVXDVXKYPYPYPZUXCUXNVYHVUOVVQUXNVWGVWQVXDVXKVWGVWQNZVXDNZUXNVX
      FURUKZVXGTZVXGVXFUSUKZTZNZVXKVYJVXMUXNVYOYPVYJVXCVWFVXRVXMVYIVXCVXBYIVWFV
      WCVWQVXDUUIVYJVWPVXAVWKVXRVWGVWPVWLVXDYJVYIVXCVWSVXAYFVWQVWKVWGVXDVXSYEVX
      TYNVYGYOUXMVYOUBVXFEUXGVXFSZUXJVYLUXLVYNVYPUXHVYKUXIVXGUXGVXFURYQUXGVXFUX
      EYQZYRVYPUXIVXGUXKVYMVYQUXGVXFUSYQYRXKUUJXCVYOVWTVXGTZVXGVWATZNZVYJVXKVYL
      VYRVYNVYSVYKVWTVXGVWTVWAVYBVYCUUKUULVYMVWAVXGVWTVWAVYBVYCUUMUUNUUOVYJVYTV
      XKVYJVYTNZVXIVXJWUAVWTVXGVWEVYJVYRVYSYIVXDVWSVYIVYTVXCVWSVXAYIYEYLWUAVXGV
      WAVVFVYJVYRVYSYDVYIVWBVXDVYTVWFVVTVWBVWQUUPXLYBUUQYSUURUUSUUTYEXQUVAVVHVX
      KHVXGVURUWNVXGSVVEVXIVVGVXJUWNVXGVWEUVBUWNVXGVVFWOXKYMVTYTYTYTUVDUVCUDUCH
      VURFUVEUVFZVVJUVGVURUVHUVIVUQVUREQRZUXQVUTVUQEUVJUVKMZEVURUXEUVLZWUCVUQPU
      VMMUXQWUDUVPUXCUXQVUPUYTWDZPEUVNWFVUQVXLWUEVUOVXLUXCUXNVXNXSEUXEUVOUPEVUR
      UXEUVQUVRWUFVUREPVRVTVVKVUQVVBFWUBUVSUWSVUTVVAVVCULHVURUHUWNVURSZUWOVUTUW
      PVVAUWRVVCUWNVURPQUVTUWNVURDWOWUGUWQVVBFUWNVURUJYQUWAWSYMUWBYSUWCUWDUWEYT
      $.
  $}

  ${
    $d b f w x y z A $.  $d b f n w y z B $.  $d b f x J $.
    $( Any disjoint family of open sets in a second-countable space is
       countable.  (The sets are required to be nonempty because otherwise
       there could be many empty sets in the family.)  (Contributed by Mario
       Carneiro, 21-Mar-2015.)  (Proof shortened by Mario Carneiro,
       9-Apr-2015.)  (Revised by NM, 17-Jun-2017.) $)
    2ndcdisj $p |- ( ( J e. 2ndc /\ A. x e. A B e. ( J \ { (/) } ) /\
        A. y E* x e. A y e. B ) -> A ~<_ _om ) $=
      ( vb vf vn vw vz wcel c0 wral cv com cfv wa wi wne c1o c2ndc csn cdif wal
      wrmo cdom wbr ctg wceq ctb wrex is2ndc wf1 wex omex cvv ccnv cpw crn crab
      brdom cint cmpt wf wmo wss ssrab2 f1f frn adantl syl5ss adantr eldifsn n0
      syl wel tg2 con0 omsson syl6ss ad2antrr wfn f1fn ad3antlr simprl fnfvelrn
      syl2anc wf1o f1f1orn f1ocnvfv1 simprrr selpw sylibr simprrl ne0i sylanbrc
      eqeltrd fveq2 eleq1d rspcev rabn0 onint rexlimdvaa expdimp exlimdv syl5bi
      syl5 expimpd impr expr ralimdva imp adantrr eqid fmpt sylib cif neeq1 1n0
      sseldd elimhyp mpbi 19.29r mpan eleq1 syl5ibrcom weq elrab simprbi simprd
      iftrued simpld elpwid eqsstrd sseld exp31 com23 exp4a nfcv ex com25 imp31
      an32s rmoim nfmpt1 nfbr nfv breq1 copab df-br df-mpt eleq2i opabid 3bitri
      cop syl6bb cbvmo df-rmo bitr4i alrimiv dff12 f1domg difeq1 eleq2d ralbidv
      mpsyl anbi1d imbi1d syl5ibcom impd rexlimiv sylbi 3impib ) EUAKZDELUBZUCZ
      KZACMZBNZDKZACUEZBUDZCOUFUGZUVNFNZOUFUGZUWDUHPZEUIZQZFUJUKUVRUWBQZUWCRZFE
      ULUWHUWJFUJUWDUJKZUWEUWGUWJUWEUWDOGNZUMZGUNUWKUWGUWJRZUWDOGUOVAUWKUWMUWNG
      UWKUWMUWNUWKUWMQZDUWFUVOUCZKZACMZUWBQZUWCRUWGUWJUWOUWSUWCOUPKUWOUWSQZCOAC
      HNZUWLUQZPZDURZUVOUCZKZHUWLUSZUTZVBZVCZUMZUWCUOUWTCOUXJVDZINZJNZUXJUGZIVE
      ZJUDUXKUWTUXIOKZACMZUXLUWOUWRUXRUWBUWOUWRUXRUWOUWQUXQACUWOANZCKZUWQUXQUWO
      UXTUWQQZQZUXHOUXIUWOUXHOVFUYAUWOUXHUXGOUXFHUXGVGUWMUXGOVFZUWKUWMUWDOUWLVD
      UYCUWDOUWLVHUWDOUWLVIVOVJVKZVLUWOUXTUWQUXIUXHKZUWQDUWFKZDLSZQUWOUXTQZUYED
      UWFLVMUYHUYFUYGUYEUYGUVTBUNUYHUYFQZUYEBDVNUYIUVTUYEBUYHUYFUVTUYEUYFUVTQBJ
      VPZUXNDVFZQZJUWDUKUYHUYEJDUWDUVSVQUYHUYLUYEJUWDUYHJFVPZUYLQZQZUXHVRVFZUXH
      LSZUYEUWOUYPUXTUYNUWOUXHOVRUYDVSVTWAUYOUXFHUXGUKZUYQUYOUXNUWLPZUXGKZUYSUX
      BPZUXEKZUYRUYOUWLUWDWBZUYMUYTUWMVUCUWKUXTUYNUWDOUWLWCWDUYHUYMUYLWEZUWDUXN
      UWLWFWGUYOVUAUXNUXEUYOUWDUXGUWLWHZUYMVUAUXNUIUWMVUEUWKUXTUYNUWDOUWLWIWDVU
      DUWDUXGUXNUWLWJWGUYOUXNUXDKZUXNLSZUXNUXEKUYOUYKVUFUYHUYMUYJUYKWKJDWLWMUYO
      UYJVUGUYHUYMUYJUYKWNUXNUVSWOVOUXNUXDLVMWPWQUXFVUBHUYSUXGUXAUYSUIUXCVUAUXE
      UXAUYSUXBWRWSWTWGUXFHUXGXAWMUXHXBWGXCXGXDXEXFXHXFXIZXTXJXKXLXMACOUXIUXJUX
      JXNXOXPUWTUXPJUWTUXNUXIUIZACUEZUXPUWOUWRUWBVUJUWBUVSUXNUXBPZLSZVUKTXQZKZU
      WAQZBUNZUWOUWRQZVUJVUNBUNZUWBVUPVUMLSZVURVULVUSTLSVUKTVUKVUMLXRTVUMLXRXSY
      ABVUMVNYBVUNUWABYCYDVUQVUOVUJBVUQVUNUWAVUJVUQVUNQVUIUVTRZACMZUWAVUJRUWOVU
      NUWRVVAUWOVUNQZUWRVVAVVBUWQVUTACUWOVUNUXTUWQVUTRUWOVUIUXTUWQVUNUVTUWOVUIU
      XTUWQVUNUVTRZUWOUYAVUIVVCUWOUYAVUIVVCUYBVUIQZVUMDUVSVVDVUMVUKDVVDVULVUKTV
      VDVUKUXDKZVULVVDVUKUXEKZVVEVULQVVDUXNUXHKZVVFUYBVUIVVGUYBVVGVUIUYEVUHUXNU
      XIUXHYEYFXLVVGUXNUXGKVVFUXFVVFHUXNUXGHJYGUXCVUKUXEUXAUXNUXBWRWSYHYIVOVUKU
      XDLVMXPZYJYKVVDVUKDVVDVVEVULVVHYLYMYNYOYPYQYRUUAUUBXKXLUUCVUIUVTACUUDVOXH
      XEXGXIUXPUXTVUIQZAVEVUJUXOVVIIAAUXMUXNUXJAUXMYSACUXIUUEAUXNYSUUFVVIIUUGIA
      YGUXOUXSUXNUXJUGZVVIUXMUXSUXNUXJUUHVVJUXSUXNUUOZUXJKVVKVVIAJUUIZKVVIUXSUX
      NUXJUUJUXJVVLVVKAJCUXIUUKUULVVIAJUUMUUNUUPUUQVUIACUURUUSWMUUTIJCOUXJUVAWP
      COUPUXJUVBUVFYTUWGUWSUWIUWCUWGUWRUVRUWBUWGUWQUVQACUWGUWPUVPDUWFEUVOUVCUVD
      UVEUVGUVHUVIYTXEXFUVJUVKUVLUVM $.

    $( Any disjoint collection of open sets in a second-countable space is
       countable.  (Contributed by Mario Carneiro, 21-Mar-2015.)  (Proof
       shortened by Mario Carneiro, 9-Apr-2015.)  (Revised by NM,
       17-Jun-2017.) $)
    2ndcdisj2 $p |- ( ( J e. 2ndc /\ A C_ J /\ A. y E* x e. A y e. x )
        -> A ~<_ _om ) $=
      ( wrmo wal wcel wss wa wmo com cdom wbr df-rmo albii cun cvv cdif ssdomg
      c0 wel c2ndc cv w3a csn undif2 omex peano1 snssi ax-mp mp2 id ssdif dfss3
      sylib eldifi anim1i moimi alimi 2ndcdisj syl3an3br syl3an unctb syl5eqbrr
      wral sylancr reldom brrelexi syl ssun2 mpisyl domtr syl2anc syl3an3b ) BA
      UAZACEZBFDUBGZCDHZAUCZCGZVOIZAJZBFZCKLMZVPWBBVOACNOVQVRWCUDZCTUEZCPZLMZWG
      KLMZWDWEWGQGZCWGHWHWEWIWJWEWGWFCWFRZPZKLWFCUFWEWFKLMZWKKLMZWLKLMKQGWFKHZW
      MUGTKGWOUHTKUIUJWFKQSUKVQVQVRVSDWFRZGAWKVEZWCVSWKGZVOIZAJZBFZWNVQULVRWKWP
      HWQCDWFUMAWKWPUNUOWBWTBWSWAAWRVTVOVSCWFUPUQURUSXAVQWQVOAWKEZBFWNXBWTBVOAW
      KNOABWKVSDUTVAVBWFWKVCVFVDZWGKLVGVHVICWFVJCWGQSVKXCCWGKVLVMVN $.
  $}

  ${
    $d k m t w x z F $.  $d b k m t x z J $.  $d b k m t x z ph $.
    $d b k m t w x z K $.
    2ndcomap.2 $e |- Y = U. K $.
    2ndcomap.3 $e |- ( ph -> J e. 2ndc ) $.
    2ndcomap.5 $e |- ( ph -> F e. ( J Cn K ) ) $.
    2ndcomap.6 $e |- ( ph -> ran F = Y ) $.
    2ndcomap.7 $e |- ( ( ph /\ x e. J ) -> ( F " x ) e. K ) $.
    $( A surjective continuous open map maps second-countable spaces to
       second-countable spaces.  (Contributed by Mario Carneiro,
       9-Apr-2015.) $)
    2ndcomap $p |- ( ph -> K e. 2ndc ) $=
      ( vb vz vk cv wceq wa wcel syl syl2anc vw vt vm com wbr ctg cfv c2ndc ctb
      cdom cima cmpt crn ctop wss wel wrex wral ccn co cntop2 ad2antrr wf bastg
      simplll ad2antlr simprr sseqtrd sselda eqid fmptd elunii syl6eleqr ancoms
      frn cuni adantl ad3antrrr eleqtrrd wfn wb cnf ffn fvelrnb 3syl mpbid ccnv
      simprll adantr simprrl simprrr simprlr eqeltrd adantrr elpreima mpbir2and
      cnima tg2 simprl imaeq2 eqeq2d sylancl cvv wfun fnfun funimass2 vex ssexg
      rspcev elrnmpt mpbird cdm wi cnvimass syl6ss funfvima2 mpd eqeltrrd eleq2
      sseq1 anbi12d syl12anc rexlimddv anassrs ralrimivva basgen2 syl3anc tgclb
      sylibr ccrd con0 omelon ondomen sylancr dffn4 sylib fodomnum sylc domtr
      wfo 2ndci is2ndc r19.29a ) ALOZUDUJUEZUUDUFUGZDPZQZEUHRLUIAUUDUIRZQZUUHQZ
      BUUDCBOZUKZULZUMZUFUGZEUHUUKEUNRZUUOEUOZMUAUPZUAOZNOZUOZQZUAUUOUQZMUVAURN
      EURUUPEPAUUQUUIUUHACDEUSUTRZUUQICDEVASVBZUUKUUDEUUNVCZUURUUKBUUDUUMEUUNUU
      KBLUPZQAUULDRUUMERAUUIUUHUVHVEUUKUUDDUULUUKUUDUUFDUUIUUDUUFUOAUUHUUDUIVDV
      FUUJUUEUUGVGZVHVIKTUUNVJZVKZUUDEUUNVOSUUKUVDNMEUVAUUKUVAERZMNUPZQZQZUBOZC
      UGZMOZPZUVDUBDVPZUVOUVRCUMZRZUVSUBUVTUQZUVOUVRFUWAUVNUVRFRZUUKUVMUVLUWDUV
      MUVLQUVREVPFUVRUVAEVLGVMVNVQAUWAFPUUIUUHUVNJVRVSUVOUVTFCVCZCUVTVTZUWBUWCW
      AAUWEUUIUUHUVNAUVEUWEICDEUVTFUVTVJGWBSVRZUVTFCWCZUBUVTUVRCWDWEWFUUKUVNUVP
      UVTRZUVSQZUVDUUKUVNUWJQZQZUBUCUPZUCOZCWGUVAUKZUOZQZUVDUCUUDUWLUWOUUFRUVPU
      WORZUWQUCUUDUQUWLUWODUUFUWLUVEUVLUWODRAUVEUUIUUHUWKIVRUUKUVLUVMUWJWHUVACD
      EWQTUUKUUGUWKUVIWIVSUWLUWRUWIUVQUVARZUUKUVNUWIUVSWJUWLUVQUVRUVAUUKUVNUWIU
      VSWKZUUKUVLUVMUWJWLWMUWLUWFUWRUWIUWSQWAUUKUVNUWFUWJUVOUWEUWFUWGUWHSWNZUVT
      UVPUVACWOSWPUCUWOUUDUVPWRTUWLUCLUPZUWQQZQZCUWNUKZUUORZUVRUXERZUXEUVAUOZUV
      DUXDUXFUXEUUMPZBUUDUQZUXDUXBUXEUXEPZUXJUWLUXBUWQWSUXEVJUXIUXKBUWNUUDUULUW
      NPUUMUXEUXEUULUWNCWTXAXIXBUXDUXEXCRZUXFUXJWAUXDUXHUVAXCRUXLUXDCXDZUWPUXHU
      XDUWFUXMUWLUWFUXCUXAWIUVTCXESZUWLUXBUWMUWPWKZUWNUVACXFTZNXGUXEUVAXCXHXBBU
      UDUUMUXEUUNXCUVJXJSXKUXDUVQUVRUXEUWLUVSUXCUWTWIUXDUWMUVQUXERZUWLUXBUWMUWP
      WJUXDUXMUWNCXLZUOUWMUXQXMUXNUXDUWNUWOUXRUXOCUVAXNXOUWNUVPCXPTXQXRUXPUVCUX
      GUXHQUAUXEUUOUUTUXEPUUSUXGUVBUXHUUTUXEUVRXSUUTUXEUVAXTYAXIYBYCYDYCYENMUAU
      UOEYFYGZUUKUUOUIRZUUOUDUJUEZUUPUHRUUKUUPUNRUXTUUKUUPEUNUXSUVFWMUUOYHYIUUK
      UUOUUDUJUEZUUEUYAUUKUUDYJXLRZUUDUUOUUNYTZUYBUUKUDYKRUUEUYCYLUUJUUEUUGWSZU
      DUUDYMYNUUKUUNUUDVTZUYDUUKUVGUYFUVKUUDEUUNWCSUUDUUNYOYPUUDUUOUUNYQYRUYEUU
      OUUDUDYSTUUOUUATXRADUHRUUHLUIUQHLDUUBYPUUC $.
  $}

  ${
    $d b f x y z $.  $d b x J $.  $d b x X $.
    2ndcsep.1 $e |- X = U. J $.
    $( A second-countable topology is separable, which is to say it contains a
       countable dense subset.  (Contributed by Mario Carneiro,
       13-Apr-2015.) $)
    2ndcsep $p |- ( J e. 2ndc ->
      E. x e. ~P X ( x ~<_ _om /\ ( ( cls ` J ) ` x ) = X ) ) $=
      ( vb vf vy vz wcel cv com cdom wbr cfv wceq wa ctb wrex ccl c0 ctg is2ndc
      c2ndc cpw cuni csn cdif wral wel wex cvv wss vex difss ssdomg simpr domtr
      wf mp2 sylancr wne eldifsn n0 elunii jca expcom eximdv imp df-rex sylan2b
      simpl sylibr sylbi rgen eleq1 axcc4dom sylancl crn frn ad2antrl rnex elpw
      vuniex ccrd cdm wfo con0 omelon adantr ondomen ssnum dffn4 sylib fodomnum
      wfn ffn sylc syl2anc ctop tgcl ad2antrr unitg ax-mp eqcomi clsss3 wi ne0i
      cin anim2i fnfvelrn sylan inelcm syl ex a2d exp4a ralimdv2 ad2antlr eqidd
      a1i simplll elcls3 mpbird ssrdv eqssd breq1 fveq2 eqeq1d anbi12d syl12anc
      syl7 rspcev exlimddv unieq 3eqtr4g pweqd fveq1d eqeq12d anbi2d rexeqbidv
      syl5ibcom impr rexlimiva ) BUCIEJZKLMZUUDUANZBOZPZEQRAJZKLMZUUIBSNZNZCOZP
      ZACUDZRZEBUBUUHUUPEQUUDQIZUUEUUGUUPUUQUUEPZUUJUUIUUFSNZNZUUDUEZOZPZAUVAUD
      ZRZUUGUUPUURUUDTUFZUGZUVAFJZURZGJZUVHNZUVJIZGUVGUHZPZUVEFUURUVGKLMZHGUIZH
      UVARZGUVGUHUVNFUJUURUVGUUDLMZUUEUVOUUDUKIZUVGUUDULZUVREUMZUUDUVFUNZUVGUUD
      UKUOUSUUQUUEUPZUVGUUDKUQUTZUVQGUVGUVJUVGIZGEUIZUVJTVAZPZUVQUVJUUDTVBZUWGU
      WFUVPHUJZUVQHUVJVCUWFUWJPHJZUVAIZUVPPZHUJZUVQUWFUWJUWNUWFUVPUWMHUVPUWFUWM
      UVPUWFPUWLUVPUWKUVJUUDVDUVPUWFVKVEVFVGVHUVPHUVAVIVLVJVMVNUVPUVLHUVAFGUVGE
      WCUWKUVKUVJVOVPVQUURUVNPZUVHVRZUVDIZUWPKLMZUWPUUSNZUVAOZUVEUWOUWPUVAULZUW
      QUVIUXAUURUVMUVGUVAUVHVSVTZUWPUVAUVHFUMWAWBVLUWOUWPUVGLMZUVOUWRUWOUVGWDWE
      ZIZUVGUWPUVHWFZUXCUWOUUDUXDIZUVTUXEUWOKWGIUUEUXGWHUURUUEUVNUWCWIKUUDWJUTU
      WBUUDUVGWKVQUWOUVHUVGWOZUXFUVIUXHUURUVMUVGUVAUVHWPZVTUVGUVHWLWMUVGUWPUVHW
      NWQUURUVOUVNUWDWIUWPUVGKUQWRUWOUWSUVAUWOUUFWSIZUXAUWSUVAULUUQUXJUUEUVNUUD
      WTXAUXBUWPUUFUVAUUFUEZUVAUVSUXKUVAOUWAUUDUKXBXCXDZXEWRUWOAUVAUWSUWOUUIUVA
      IZUUIUWSIZUWOUXMPZUXNAGUIZUVJUWPXHTVAZXFZGUUDUHZUVNUXSUURUXMUVIUVMUXSUVIU
      VLUXRGUVGUUDUVIUWEUVLXFZUWFUXPUXQUWFUXPPZUWEUVIUXTUXQUYAUWHUWEUXPUWGUWFUV
      JUUIXGXIUWIVLUVIUWEUVLUXQUVIUWEUVLUXQXFZUVIUWEPUVKUWPIZUYBUVIUXHUWEUYCUXI
      UVGUVJUVHXJXKUVLUYCUXQUVKUVJUWPXLVFXMXNXOYKXPXQVHXRUXOGUUDUUIUWPUUFUVAUXO
      UUFXSUVAUXKOUXOUXLXTUUQUUEUVNUXMYAUWOUXAUXMUXBWIUWOUXMUPYBYCXNYDYEUVCUWRU
      WTPAUWPUVDUUIUWPOZUUJUWRUVBUWTUUIUWPKLYFUYDUUTUWSUVAUUIUWPUUSYGYHYIYLYJYM
      UUGUVCUUNAUVDUUOUUGUVACUUGUXKBUEUVACUUFBYNUXLDYOZYPUUGUVBUUMUUJUUGUUTUULU
      VACUUGUUIUUSUUKUUFBSYGYQUYEYRYSYTUUAUUBUUCVM $.
  $}

  ${
    $d b w x y z X $.
    $( A discrete space is second-countable iff it is countable.  (Contributed
       by Mario Carneiro, 13-Apr-2015.) $)
    dis2ndc $p |- ( X ~<_ _om <-> ~P X e. 2ndc ) $=
      ( vx vy vz vw vb com cdom wbr cvv wcel c2ndc cv wceq syl wss wel wrex ctb
      wa cpw reldom brrelexi pwexr csn cmpt crn cen wf1o elex wf1 snex 2a1i vex
      sneqr sneq impbii dom2lem f1f1orn f1oeng syl2anc domen1 ctg cfv ctop wral
      wb distop simpr snelpw sylib fmptd frn elpwi ad2antrl simprr sseldd eqidd
      wf eqeq2d rspcev elrnmpt ax-mp sylibr vsnid a1i snssd eleq2 sseq1 anbi12d
      eqid syl12anc ralrimivva basgen2 syl3anc adantr eqeltrd tgclb 2ndci sylan
      eqeltrrd is2ndc simplrr eleqtrrd tg2 sylancl simprrl simprrr eqssd simprl
      rexlimddv ssdomg mpsyl domtr rexlimdva syl5bi imp impbida bitrd pm5.21nii
      ex ) AGHIZAJKZAUAZLKZAGHUBUCALUDYCYBBABMZUEZUFZUGZGHIZYEYCAYIUHIZYBYJVGYC
      YCAYIYHUIZYKAJUJYCAJYHUKYLYCBCAJYGCMZUEZYGJKYCYFAKZYFULUMYGYNNZYFYMNZVGYC
      YOYMAKTYPYQYFYMBUNZUOYFYMUPUQUMURAJYHUSOAYIJYHUTVAAYIGVBOYCYJYEYCYJTYIVCV
      DZYDLYCYSYDNZYJYCYDVEKYIYDPZDEQZEMZYMPZTZEYIRZDYMVFCYDVFYTAJVHZYCAYDYHVSU
      UAYCBAYGYDYHYCYOTYOYGYDKZYCYOVIYFAYRVJZVKYHWKZVLAYDYHVMOYCUUFCDYDYMYCYMYD
      KZDCQZTTZDMZUEZYIKZUUNUUOKZUUOYMPZUUFUUMUUOYGNZBARZUUPUUMUUNAKUUOUUONZUUT
      UUMYMAUUNUUKYMAPYCUULYMAVNVOYCUUKUULVPZVQUUMUUOVRUUSUVABUUNAYFUUNNYGUUOUU
      OYFUUNUPVTWAVAUUOJKUUPUUTVGUUNULBAYGUUOYHJUUJWBWCWDUUQUUMDWEWFUUMUUNYMUVB
      WGUUEUUQUURTEUUOYIUUCUUONUUBUUQUUDUURUUCUUOUUNWHUUCUUOYMWIWJWAWLWMCDEYIYD
      WNWOZWPYCYISKZYJYSLKYCYSVEKUVDYCYSYDVEUVCUUGWQYIWRWDYIWSWTXAYCYEYJYEFMZGH
      IZUVEVCVDZYDNZTZFSRYCYJFYDXBYCUVIYJFSYCUVESKTZUVIYJUVJUVITZYIUVEHIZUVFYJU
      VEJKUVKYIUVEPZUVLFUNUVKAUVEYHVSUVMUVKBAYGUVEYHUVKYOTZBCQZYMYGPZTZYGUVEKCU
      VEUVNYGUVGKYFYGKUVQCUVERUVNYGYDUVGUVNYOUUHUVKYOVIUUIVKUVJUVFUVHYOXCXDBWEC
      YGUVEYFXEXFUVNCFQZUVQTTZYGYMUVEUVSYGYMUVSYFYMUVNUVRUVOUVPXGWGUVNUVRUVOUVP
      XHXIUVNUVRUVQXJWQXKUUJVLAUVEYHVMOYIUVEJXLXMUVJUVFUVHXJYIUVEGXNVAYAXOXPXQX
      RXSXT $.
  $}

  ${
    $d f g j k m n x y J $.  $d f g j k m n x y P $.  $d f g j k m n x y S $.
    $d f g j k m n x y X $.
    1stcelcls.1 $e |- X = U. J $.
    $( A point belongs to the closure of a subset iff there is a sequence in
       the subset converging to it.  Theorem 1.4-6(a) of [Kreyszig] p. 30.
       This proof uses countable choice ~ ax-cc .  A space satisfying the
       conclusion of this theorem is called a sequential space, so the theorem
       can also be stated as "every first-countable space is a sequential
       space".  (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    1stcelcls $p |- ( ( J e. 1stc /\ S C_ X ) -> ( P e. ( ( cls ` J ) ` S ) <->
        E. f ( f : NN --> S /\ f ( ~~>t ` J ) P ) ) ) $=
      ( vk vx vn vy vm vj wcel wss wa cfv cn cv wral wi vg c1stc ccl wf clm wbr
      wex c1 caddc co wrex w3a simpll ctop 1stctop clsss3 sselda 1stcfb syl2anc
      sylan cid cin wne simpr1 ffvelrnda elcls2 simplbda ad2antrr simpr2 ralimi
      c0 wb simpl syl weq fveq2 eleq2d rspccva eleq2 ineq1 neeq1d imbi12d rspcv
      wceq syl3c elin ancom bitri exbii n0 df-rex sylib cvv topopn simplr ssexd
      3bitr4i fvi rexeqdv mpbird ralrimiva fvex nnenom eleq1 axcc4 feq3d biimpd
      adantr cuz simplr3 sseq1d cbvrexv sseq2 rexbidv syl5bb simpr simprrr ssid
      imbi2d cz 2a1i eluznn oveq1 fveq2d sseq12d sylan2 sstr2 expcom a2d uzind4
      anassrs com12 ralrimiv ad2antlr eleq12d sylc nnuz 1zzd simprl ex sylanbrc
      r19.26 ssel2 ssel ralimdv syl5com reximdva syld toptopon fssd eqidd lmbrf
      ctopon mpbir2and expr imdistanda syland eximdv mpd exlimddv lmcls exlimdv
      simprr impbid ) DUBMZBENZOZABDUCPPZMZQBCRZUDZUVJADUEPUFZOZCUGZUVGUVIUVNUV
      GUVIOZQDUARZUDZAGRZUVPPZMZUVRUHUIUJZUVPPZUVSNZOZGQSZAHRZMZUVSUWFNZGQUKZTZ
      HDSZULZUVNUAUVOUVEAEMZUWLUAUGUVEUVFUVIUMUVGUVHEAUVEDUNMZUVFUVHENDUOZBDEFU
      PUTUQZHAUAGDEFURUSUVOUWLOZQBVAPZUVJUDZIRZUVJPZUWTUVPPZMZIQSZOZCUGZUVNUWQU
      WFUXBMZHUWRUKZIQSUXFUWQUXHIQUWQUWTQMZOZUXHUXGHBUKZUXJUXBBVBZVKVCZUXKUXJUX
      BDMAJRZMZUXNBVBZVKVCZTZJDSZAUXBMZUXMUWQQDUWTUVPUVOUVQUWEUWKVDVEUVOUXSUWLU
      XIUVGUVIUWMUXSUVEUWNUVFUVIUWMUXSOVLUWOJABDEFVFUTVGVHUWQUVTGQSZUXIUXTUWQUW
      EUYAUVOUVQUWEUWKVIZUWDUVTGQUVTUWCVMVJVNUVTUXTGUWTQGIVOUVSUXBAUVRUWTUVPVPV
      QVRUTUXRUXTUXMTJUXBDUXNUXBWDZUXOUXTUXQUXMUXNUXBAVSUYCUXPUXLVKUXNUXBBVTWAW
      BWCWEUWFUXLMZHUGUWFBMZUXGOZHUGUXMUXKUYDUYFHUYDUXGUYEOUYFUWFUXBBWFUXGUYEWG
      WHWIHUXLWJUXGHBWKWQWLUXJUXGHUWRBUVOUWRBWDZUWLUXIUVOBWMMUYGUVOBEDUVOUWNEDM
      UVEUWNUVFUVIUWOVHZDEFWNVNUVEUVFUVIWOZWPBWMWRVNZVHWSWTXAUXGUXCHUWRCIQBVAXB
      XCUWFUXAUXBXDXEVNUWQUXEUVMCUWQUWSUVKUXDUVMUVOUWSUVKTUWLUVOUWSUVKUVOUWRBUV
      JQUYJXFXGXHUWQUVKUXDUVLUWQUVKUXDUVLUWQUVKUXDOZOZUVLUWMUXOKRZUVJPZUXNMZKLR
      ZXIPZSZLQUKZTZJDSUVOUWMUWLUYKUWPVHUYLUYTJDUYLUXNDMZOZUXOUYPUVPPZUXNNZLQUK
      ZUYSUYLUWKVUAUXOVUETZUVQUWEUWKUVOUYKXJUWJVUFHUXNDHJVOZUWGUXOUWIVUEUWFUXNA
      VSUWIVUCUWFNZLQUKVUGVUEUWHVUHGLQGLVOUVSVUCUWFUVRUYPUVPVPXKXLVUGVUHVUDLQUW
      FUXNVUCXMXNXOWBVRUTVUBVUDUYRLQUYLVUAUYPQMZVUDUYRTZUWQUYKVUAVUIOZVUJUWQUYK
      VUKOZOZUYNVUCMZKUYQSZVUDUYRVUMUYMUVPPZVUCNZUYNVUPMZOZKUYQSZVUOVUMVUQKUYQS
      ZVURKUYQSVUTVUMUWCGQSZVUIVVAUWQVVBVULUWQUWEVVBUYBUWDUWCGQUVTUWCXPVJVNXHUW
      QUYKVUAVUIXQZVVBVUIOZVUQKUYQUYMUYQMZVVDVUQVVDUXBVUCNZTVVDVUCVUCNZTVVDVUQT
      ZVVDUYMUHUIUJZUVPPZVUCNZTVVHIKUYPUYMILVOZVVFVVGVVDVVLUXBVUCVUCUWTUYPUVPVP
      XKXSIKVOZVVFVUQVVDVVMUXBVUPVUCUWTUYMUVPVPZXKXSZUWTVVIWDZVVFVVKVVDVVPUXBVV
      JVUCUWTVVIUVPVPXKXSVVOVVGUYPXTMVVDVUCXRYAVVEVVDVUQVVKVVDVVEVUQVVKTZVVDVVE
      OVVJVUPNZVVQVVBVUIVVEVVRVUIVVEOVVBUYMQMZVVRUYMUYPYBZUWCVVRGUYMQGKVOZUWBVV
      JUVSVUPVWAUWAVVIUVPUVRUYMUHUIYCYDUVRUYMUVPVPYEVRYFYKVVJVUPVUCYGVNYHYIYJYL
      YMUSVUMVURKUYQVUMVVEOVVSUXDVURVUMVUIVVEVVSVVCVVTUTVULUXDUWQVVEUVKUXDVUKWO
      YNUXCVURIUYMQVVMUXAUYNUXBVUPUWTUYMUVJVPVVNYOWCYPXAVUQVURKUYQUUBUUAVUSVUNK
      UYQVUPVUCUYNUUCVJVNVUDVUNUYOKUYQVUCUXNUYNUUDUUEUUFYKYKUUGUUHXAUYLJUYNALKU
      VJDUHEQUYLUWNDEUUMPMZUVOUWNUWLUYKUYHVHDEFUUIZWLYQUYLYRUYLQBEUVJUWQUVKUXDY
      SUVOUVFUWLUYKUYIVHUUJUYLVVSOUYNUUKUULUUNUUOUUPUUQUURUUSUUTYTUVGUVMUVICUVG
      UVMUVIUVGUVMOZABGUVJDUHEQYQVWDUWNVWBUVEUWNUVFUVMUWOVHVWCWLVWDYRUVGUVKUVLU
      VCVWDQBUVRUVJUVGUVKUVLYSVEUVEUVFUVMWOUVAYTUVBUVD $.
  $}

  ${
    $d f j k u v x F $.  $d f j k u v x J $.  $d f j k u v x ph $.
    $d f j k u v x K $.  $d f j k u v x X $.  $d f j k u v x Y $.
    $d f j k u v P $.
    1stccnp.1 $e |- ( ph -> J e. 1stc ) $.
    1stccnp.2 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    1stccnp.3 $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    ${
      1stccnp.4 $e |- ( ph -> P e. X ) $.
      $( A mapping is continuous at ` P ` in a first-countable space ` X ` iff
         it is sequentially continuous at ` P ` , meaning that the image under
         ` F ` of every sequence converging at ` P ` converges to ` F ( P ) ` .
         This proof uses ~ ax-cc , but only via ~ 1stcelcls , so it could be
         refactored into a proof that continuity and sequential continuity are
         the same in sequential spaces.  (Contributed by Mario Carneiro,
         7-Sep-2015.) $)
      1stccnp $p |- ( ph -> ( F e. ( ( J CnP K ) ` P ) <-> ( F : X --> Y /\
                      A. f ( ( f : NN --> X /\ f ( ~~>t ` J ) P ) ->
                             ( F o. f ) ( ~~>t ` K ) ( F ` P ) ) ) ) ) $=
        ( vv vk cfv wcel cn wa wss wfal vu vj ccnp co wf cv clm wbr ccom wi wal
        ctopon jca cnpf2 3expa sylan simprr simplr lmcnp alrimiv cima wrex wral
        ex simprl ccnv cin c0 wne wn ccl wex fal 19.29 difss fss sylancl cuz c1
        cdif nnuz simplrr 1zzd simplrl lmcvg r19.2uz wfn wceq simprll ffn fvco2
        eleq1d ffvelrnda eldifad ad2antrr elpreima 3syl eldifbd pm2.21d sylbird
        syl wb mpand sylbid rexlimdva syl5 mpd expr embantd com23 exlimdv exp4b
        impd impr imp mtoi cuni toponuni syl5sseq eqid 1stcelcls syl2anc mtbird
        c1stc ctop topontop eleqtrd elcls syl3anc wfun cdm toponss fdm sseqtr4d
        mtbid ffun funimass3 df-ss sylib sseq1d bitr4d inssdif0 bitr4i rexbidva
        syl6bbr anbi2d rexanali syl6bb mpbird ralrimiva iscnp mpbir2and impbida
        nne adantr ) ADBEFUCUDOPZGHDUEZQGCUFZUEZUURBEUGOUHZRZDUURUIZBDOZFUGOUHZ
        UJZCUKZRZAUUPRZUUQUVFAEGULOPZFHULOPZRUUPUUQAUVIUVJJKUMUVIUVJUUPUUQBDEFG
        HUNUOUPUVHUVECUVHUVAUVDUVHUVARBUURDEFUVHUUSUUTUQAUUPUVAURUSVDUTUMAUVGRZ
        UUPUUQUVCUAUFZPZBMUFZPZDUVNVAUVLSZRZMEVBZUJZUAFVCZAUUQUVFVEZUVKUVSUAFUV
        KUVLFPZUVMUVRUVKUWBUVMRZRZUVRUVOUVNGDVFUVLVAZVTZVGZVHVIZUJMEVCZVJZUWDBU
        WFEVKOOPZUWIUWDUWKQUWFUURUEZUUTRZCVLZUWDUWNTVMUVKUWCUWNTUJZAUUQUVFUWCUW
        OUJAUUQRZUWCUVFUWOUWPUWCUVFUWNTUVFUWNRUVEUWMRZCVLUWPUWCRZTUVEUWMCVNUWRU
        WQTCUWRUVEUWMTUWRUWMUVETUWRUWMUVETUJUWRUWMRZUVAUVDTUWSUUSUUTUWSUWLUWFGS
        UUSUWRUWLUUTVEGUWEVOZQUWFGUURVPVQUWRUWLUUTUQUMUWRUWMUVDTUWRUWMUVDRZRZNU
        FZUVBOZUVLPZNUBUFVROVCUBQVBZTUXBUVCUVLUBNUVBFVSQWAUWPUWBUVMUXAWBUXBWCUW
        RUWMUVDUQUWPUWBUVMUXAWDWEUXFUXENQVBUXBTUXEUBNVSQWAWFUXBUXETNQUXBUXCQPZR
        ZUXEUXCUUROZDOZUVLPZTUXHUXDUXJUVLUXBUURQWGZUXGUXDUXJWHUXBUWLUXLUWRUWLUU
        TUVDWIZQUWFUURWJXAQDUURUXCWKUPWLUXHUXIGPZUXKTUXHUXIGUWEUXBQUWFUXCUURUXM
        WMZWNUXHUXNUXKRZUXIUWEPZTUXHUUQDGWGUXQUXPXBUWRUUQUXAUXGAUUQUWCURWOGHDWJ
        GUXIUVLDWPWQUXHUXQTUXHUXIGUWEUXOWRWSWTXCXDXEXFXGXHXIVDXJXMXKXFXLXJXNXOX
        PUWDEYDPZUWFEXQZSZUWKUWNXBAUXRUVGUWCIWOUWDGUWFUXSUWTUWDUVIGUXSWHAUVIUVG
        UWCJWOZGEXRXAZXSZBUWFCEUXSUXSXTZYAYBYCUWDEYEPZUXTBUXSPUWKUWIXBUWDUVIUYE
        UYAGEYFXAUYCUWDBGUXSABGPZUVGUWCLWOUYBYGMBUWFEUXSUYDYHYIYOUWDUVRUVOUWHVJ
        ZRZMEVBUWJUWDUVQUYHMEUWDUVNEPZRZUVPUYGUVOUYJUVPUVNGVGZUWESZUYGUYJUVPUVN
        UWESZUYLUYJDYJZUVNDYKZSUVPUYMXBUYJUUQUYNUVKUUQUWCUYIUWAWOZGHDYPXAUYJUVN
        GUYOUWDUVIUYIUVNGSZUYAUVNEGYLUPZUYJUUQUYOGWHUYPGHDYMXAYNUVNUVLDYQYBUYJU
        YKUVNUWEUYJUYQUYKUVNWHUYRUVNGYRYSYTUUAUYGUWGVHWHUYLUWGVHUUNUVNGUWEUUBUU
        CUUEUUFUUDUVOUWHMEUUGUUHUUIXHUUJAUUPUUQUVTRXBZUVGAUVIUVJUYFUYSJKLMUABDE
        FGHUUKYIUUOUULUUM $.
    $}

    1stccn.7 $e |- ( ph -> F : X --> Y ) $.
    $( A mapping ` X --> Y ` , where ` X ` is first-countable, is continuous
       iff it is sequentially continuous, meaning that for any sequence
       ` f ( n ) ` converging to ` x ` , its image under ` F ` converges to
       ` F ( x ) ` .  (Contributed by Mario Carneiro, 7-Sep-2015.) $)
    1stccn $p |- ( ph -> ( F e. ( J Cn K ) <-> A. f ( f : NN --> X ->
        A. x ( f ( ~~>t ` J ) x -> ( F o. f ) ( ~~>t ` K ) ( F ` x ) ) ) ) ) $=
      ( wcel cfv wral wa wi wal adantr syl5bb ccn co cv ccnp cn wf clm wbr ccom
      ctopon cncnp syl2anc biantrurd bitr4d c1stc simpr 1stccnp ralbidva impexp
      wb ralcom4 ralbii r19.21v bitri df-ral lmcl sylan pm4.71rd imbi1d syl6rbb
      ex albidv imbi2d 3bitrd ) ADEFUAUBMZDBUCZEFUDUBNMZBGOZUEGCUCZUFZVSVPEUGNU
      HZPDVSUIVPDNFUGNUHZQZCRZBGOZVTWAWBQZBRZQZCRZAVOGHDUFZVRPZVRAEGUJNMZFHUJNM
      ZVOWKUTJKBDEFGHUKULAWJVRLUMUNAVQWDBGAVPGMZPZVQWJWDPWDWOVPCDEFGHAEUOMWNISA
      WLWNJSAWMWNKSAWNUPUQWOWJWDAWJWNLSUMUNURWEWCBGOZCRAWIWCBCGVAAWPWHCWPVTWFBG
      OZQZAWHWPVTWFQZBGOWRWCWSBGVTWAWBUSVBVTWFBGVCVDAWQWGVTWQWNWFQZBRAWGWFBGVEA
      WTWFBAWFWNWAPZWBQWTAWAXAWBAWAWNAWAWNAWLWAWNJVPVSEGVFVGVKVHVIWNWAWBUSVJVLT
      VMTVLTVN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Local topological properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Locally $.
  $c N-Locally $.

  $( Extend class notation with the "locally ` A ` " predicate of a topological
     space. $)
  clly $a class Locally A $.

  $( Extend class notation with the "N-locally ` A ` " predicate of a
     topological space. $)
  cnlly $a class N-Locally A $.

  ${
    $d j u x y A $.
    $( Define a space that is locally ` A ` , where ` A ` is a topological
       property like "compact", "connected", or "path-connected".  A
       topological space is locally ` A ` if every neighborhood of a point
       contains an open sub-neighborhood that is ` A ` in the subspace
       topology.  (Contributed by Mario Carneiro, 2-Mar-2015.) $)
    df-lly $a |- Locally A = { j e. Top | A. x e. j A. y e. x
      E. u e. ( j i^i ~P x ) ( y e. u /\ ( j |`t u ) e. A ) } $.

    $( Define a space that is n-locally ` A ` , where ` A ` is a topological
       property like "compact", "connected", or "path-connected".  A
       topological space is n-locally ` A ` if every neighborhood of a point
       contains a sub-neighborhood that is ` A ` in the subspace topology.

       The terminology "n-locally", where 'n' stands for "neighborhood", is not
       standard, although this is sometimes called "weakly locally ` A ` ".
       The reason for the distinction is that some notions only make sense for
       arbitrary neighborhoods (such as "locally compact", which is actually
       ` N-Locally Comp ` in our terminology - open compact sets are not very
       useful), while others such as "locally connected" are strictly weaker
       notions if the neighborhoods are not required to be open.  (Contributed
       by Mario Carneiro, 2-Mar-2015.) $)
    df-nlly $a |- N-Locally A = { j e. Top | A. x e. j A. y e. x
      E. u e. ( ( ( nei ` j ) ` { y } ) i^i ~P x ) ( j |`t u ) e. A } $.
  $}

  ${
    $d j s u w x y z A $.  $d j u w x y z B $.  $d s u y P $.  $d s u x y U $.
    $d j s u w x y z J $.  $d u w x y z V $.
    $( The property of being a locally ` A ` topological space.  (Contributed
       by Mario Carneiro, 2-Mar-2015.) $)
    islly $p |- ( J e. Locally A <-> ( J e. Top /\ A. x e. J A. y e. x
      E. u e. ( J i^i ~P x ) ( y e. u /\ ( J |`t u ) e. A ) ) ) $=
      ( vj cv wcel crest co wa cpw cin wrex wral ctop clly wceq ineq1 oveq1
      eleq1d anbi2d rexeqbidv ralbidv raleqbi1dv df-lly elrab2 ) BGCGZHZFGZUHIJ
      ZDHZKZCUJAGZLZMZNZBUNOZAUJOUIEUHIJZDHZKZCEUOMZNZBUNOZAEOFEPDQURVDAUJEUJER
      ZUQVCBUNVEUMVACUPVBUJEUOSVEULUTUIVEUKUSDUJEUHITUAUBUCUDUEABCDFUFUG $.

    $( The property of being an n-locally ` A ` topological space.
       (Contributed by Mario Carneiro, 2-Mar-2015.) $)
    isnlly $p |- ( J e. N-Locally A <-> ( J e. Top /\
      A. x e. J A. y e. x E. u e. ( ( ( nei ` J ) ` { y } ) i^i ~P x )
        ( J |`t u ) e. A ) ) $=
      ( vj cv crest co wcel csn cnei cfv cpw cin wrex wral ctop cnlly wceq
      fveq2 fveq1d ineq1d eleq1d rexeqbidv ralbidv raleqbi1dv df-nlly elrab2
      oveq1 ) FGZCGZHIZDJZCBGKZUKLMZMZAGZNZOZPZBURQZAUKQEULHIZDJZCUOELMZMZUSOZP
      ZBURQZAEQFERDSVBVIAUKEUKETZVAVHBURVJUNVDCUTVGVJUQVFUSVJUOUPVEUKELUAUBUCVJ
      UMVCDUKEULHUJUDUEUFUGABCDFUHUI $.

    $( Equality theorem for the ` Locally A ` predicate.  (Contributed by Mario
       Carneiro, 2-Mar-2015.) $)
    llyeq $p |- ( A = B -> Locally A = Locally B ) $=
      ( vy vu vj vx wceq cv wcel crest co wa cpw cin wrex wral ctop crab df-lly
      clly eleq2 anbi2d rexbidv 2ralbidv rabbidv 3eqtr4g ) ABGZCHDHZIZEHZUHJKZA
      IZLZDUJFHZMNZOZCUNPFUJPZEQRUIUKBIZLZDUOOZCUNPFUJPZEQRATBTUGUQVAEQUGUPUTFC
      UJUNUGUMUSDUOUGULURUIABUKUAUBUCUDUEFCDAESFCDBESUF $.

    $( Equality theorem for the ` Locally A ` predicate.  (Contributed by Mario
       Carneiro, 2-Mar-2015.) $)
    nllyeq $p |- ( A = B -> N-Locally A = N-Locally B ) $=
      ( vj vu vy vx wceq cv crest wcel csn cnei cfv wrex wral ctop crab df-nlly
      co cnlly cpw cin eleq2 rexbidv 2ralbidv rabbidv 3eqtr4g ) ABGZCHZDHISZAJZ
      DEHKUILMMFHZUAUBZNZEULOFUIOZCPQUJBJZDUMNZEULOFUIOZCPQATBTUHUOURCPUHUNUQFE
      UIULUHUKUPDUMABUJUCUDUEUFFEDACRFEDBCRUG $.

    $( A locally ` A ` space is a topological space.  (Contributed by Mario
       Carneiro, 2-Mar-2015.) $)
    llytop $p |- ( J e. Locally A -> J e. Top ) $=
      ( vy vu vx clly wcel ctop cv crest co wa cpw cin wrex wral islly simplbi
      ) BAFGBHGCIDIZGBSJKAGLDBEIZMNOCTPEBPECDABQR $.

    $( A locally ` A ` space is a topological space.  (Contributed by Mario
       Carneiro, 2-Mar-2015.) $)
    nllytop $p |- ( J e. N-Locally A -> J e. Top ) $=
      ( vu vy vx cnlly wcel ctop cv crest csn cnei cfv cpw cin wrex wral isnlly
      co simplbi ) BAFGBHGBCIJSAGCDIKBLMMEIZNOPDUAQEBQEDCABRT $.

    $( The property of a locally ` A ` topological space.  (Contributed by
       Mario Carneiro, 2-Mar-2015.) $)
    llyi $p |- ( ( J e. Locally A /\ U e. J /\ P e. U ) -> E. u e. J
      ( u C_ U /\ P e. u /\ ( J |`t u ) e. A ) ) $=
      ( vy vx clly wcel cv crest co wa cpw cin wrex wral wceq rspccva anbi2i
      wss ctop islly simprbi pweq ineq2d rexeqdv raleqbi1dv sylan anbi1d anbi2d
      eleq1 anass elin selpw bitri anbi1i 3anass 3bitr4i syl6bb rexbidv2 stoic3
      w3a ) EBHIZDEIZFJZAJZIZEVGKLBIZMZAEDNZOZPZFDQZCDIVGDUAZCVGIZVIVCZAEPZVDVJ
      AEGJZNZOZPZFVSQZGEQZVEVNVDEUBIWDGFABEUCUDWCVNGDEWBVMFVSDVSDRZVJAWAVLWEVTV
      KEVSDUEUFUGUHSUIVMVRFCDVFCRZVJVQAVLEWFVGVLIZVJMWGVPVIMZMZVGEIZVQMZWFVJWHW
      GWFVHVPVIVFCVGULUJUKWJVOMZWHMWJVOWHMZMWIWKWJVOWHUMWGWLWHWGWJVGVKIZMWLVGEV
      KUNWNVOWJADUOTUPUQVQWMWJVOVPVIURTUSUTVASVB $.

    $( The property of an n-locally ` A ` topological space.  (Contributed by
       Mario Carneiro, 2-Mar-2015.) $)
    nllyi $p |- ( ( J e. N-Locally A /\ U e. J /\ P e. U ) -> E. u e.
      ( ( nei ` J ) ` { P } ) ( u C_ U /\ ( J |`t u ) e. A ) ) $=
      ( vy vx cnlly wcel cv crest csn cfv cpw cin wrex wral wa wceq rspccva wss
      cnei ctop isnlly simprbi pweq ineq2d rexeqdv raleqbi1dv sylan elin fveq2d
      co eleq2d wb selpw a1i anbi12d syl5bb anbi1d anass syl6bb rexbidv2 stoic3
      sneq ) EBHIZDEIZEAJZKUMBIZAFJZLZEUBMZMZDNZOZPZFDQZCDIVHDUAZVIRZACLZVLMZPZ
      VFVIAVMGJZNZOZPZFWCQZGEQZVGVQVFEUCIWHGFABEUDUEWGVQGDEWFVPFWCDWCDSZVIAWEVO
      WIWDVNVMWCDUFUGUHUITUJVPWBFCDVJCSZVIVSAVOWAWJVHVOIZVIRVHWAIZVRRZVIRWLVSRW
      JWKWMVIWKVHVMIZVHVNIZRWJWMVHVMVNUKWJWNWLWOVRWJVMWAVHWJVKVTVLVJCVEULUNWOVR
      UOWJADUPUQURUSUTWLVRVIVAVBVCTVD $.

    $( Eliminate the neighborhood symbol from ~ nllyi .  (Contributed by Mario
       Carneiro, 2-Mar-2015.) $)
    nlly2i $p |- ( ( J e. N-Locally A /\ U e. J /\ P e. U ) -> E. s e. ~P U
      E. u e. J ( P e. u /\ u C_ s /\ ( J |`t s ) e. A ) ) $=
      ( cnlly wcel w3a cv wss crest co wa cfv wrex syl simprl ex mpd cnei nllyi
      csn cpw simprrl selpw sylibr ctop simpl1 nllytop neii2 syl2anc wb simpll3
      snssg mpbird simprr simprrr adantr 3jca reximdv jca reximdv2 ) EBGHZDEHZC
      DHZIZFJZDKZEVHLMBHZNZFCUCZEUAOOZPCAJZHZVNVHKZVJIZAEPZFDUDZPFBCDEUBVGVKVRF
      VMVSVGVHVMHZVKNZVHVSHZVRNVGWANZWBVRWCVIWBVGVTVIVJUEFDUFUGWCVLVNKZVPNZAEPZ
      VRWCEUHHZVTWFWCVDWGVDVEVFWAUIBEUJQVGVTVKRVLAEVHUKULWCWEVQAEWCWEVQWCWENZVO
      VPVJWHVOWDWCWDVPRWHVFVOWDUMVDVEVFWAWEUNCVNDUOQUPWCWDVPUQWCVJWEVGVTVIVJURU
      SUTSVATVBSVCT $.

    $( A locally ` A ` space is n-locally ` A ` : the "n-locally" predicate is
       the weaker notion.  (Contributed by Mario Carneiro, 2-Mar-2015.) $)
    llynlly $p |- ( J e. Locally A -> J e. N-Locally A ) $=
      ( vu vy vx clly wcel ctop cv crest co csn cnei cfv cpw cin wrex wral w3a
      wa cnlly llytop wss llyi simpl1 syl simprr2 opnneip syl3anc simprr1 selpw
      simprl sylibr elind simprr3 jca ex reximdv2 mpd 3expb ralrimivva sylanbrc
      isnlly ) BAFGZBHGZBCIZJKAGZCDIZLBMNNZEIZOZPZQZDVJREBRBAUAGABUBZVDVMEDBVJV
      DVJBGZVHVJGZVMVDVOVPSZVFVJUCZVHVFGZVGSZCBQVMCAVHVJBUDVQVTVGCBVLVQVFBGZVTT
      ZVFVLGZVGTVQWBTZWCVGWDVIVKVFWDVEWAVSVFVIGWDVDVEVDVOVPWBUEVNUFVQWAVTULVRVS
      VGWAVQUGVHBVFUHUIWDVRVFVKGVRVSVGWAVQUJCVJUKUMUNVRVSVGWAVQUOUPUQURUSUTVAED
      CABVCVB $.

    $( A locally ` A ` space is n-locally ` A ` .  (Contributed by Mario
       Carneiro, 2-Mar-2015.) $)
    llyssnlly $p |- Locally A C_ N-Locally A $=
      ( vj clly cnlly cv llynlly ssriv ) BACADABEFG $.

    $( The "locally" predicate respects inclusion.  (Contributed by Mario
       Carneiro, 2-Mar-2015.) $)
    llyss $p |- ( A C_ B -> Locally A C_ Locally B ) $=
      ( vj vy vu vx wss clly cv ctop wcel crest co cpw wrex wral anim2d ralimdv
      wa islly cin ssel reximdv 3imtr4g ssrdv ) ABGZCAHZBHZUFCIZJKZDIEIZKZUIUKL
      MZAKZSZEUIFIZNUAZOZDUPPZFUIPZSUJULUMBKZSZEUQOZDUPPZFUIPZSUIUGKUIUHKUFUTVE
      UJUFUSVDFUIUFURVCDUPUFUOVBEUQUFUNVAULABUMUBQUCRRQFDEAUITFDEBUITUDUE $.

    $( The "n-locally" predicate respects inclusion.  (Contributed by Mario
       Carneiro, 2-Mar-2015.) $)
    nllyss $p |- ( A C_ B -> N-Locally A C_ N-Locally B ) $=
      ( vj vu vy vx wss cnlly cv ctop wcel crest co csn cfv wrex wral wa isnlly
      ralimdv cnei cpw cin ssel reximdv anim2d 3imtr4g ssrdv ) ABGZCAHZBHZUICIZ
      JKZULDILMZAKZDEINULUAOOFIZUBUCZPZEUPQZFULQZRUMUNBKZDUQPZEUPQZFULQZRULUJKU
      LUKKUIUTVDUMUIUSVCFULUIURVBEUPUIUOVADUQABUNUDUETTUFFEDAULSFEDBULSUGUH $.

    $( The property of a subspace being locally ` A ` .  (Contributed by Mario
       Carneiro, 10-Mar-2015.) $)
    subislly $p |- ( ( J e. Top /\ B e. V ) ->
      ( ( J |`t B ) e. Locally A <-> A. x e. J A. y e. ( x i^i B )
        E. u e. J ( ( u i^i B ) C_ x /\ y e. u /\
          ( J |`t ( u i^i B ) ) e. A ) ) ) $=
      ( vw vz ctop wcel wa crest co cv cin wrex wral wss cvv cpw w3a wb resttop
      clly islly baib syl vex inex1 elrest wceq simpr raleqdv elin anbi1i anass
      bitri rexbii2 ad2antrr 3anass simpllr sseq12d selpw inss2 biantru 3bitr4g
      ssin eleq2d simplr sseldi biantrud syl6bbr bitr4d simp-4l restabs syl3anc
      a1i oveq2d eqtrd eleq1d 3anbi123d rexxfr2d syl5bb ralbidva bitrd ralxfr2d
      syl5bbr ) FJKZEGKZLZFEMNZDUEKZBOZHOZKZWLWOMNZDKZLZHWLIOZUAZPZQZBWTRZIWLRZ
      COZEPZAOZSZWNXFKZFXGMNZDKZUBZCFQZBXHEPZRZAFRWKWLJKZWMXEUCEFGUDWMXQXEIBHDW
      LUFUGUHWKXDXPIAXOWLFTXOTKWKXHFKLXHEAUIUJVRAWTEFJGUKWKWTXOULZLZXDXCBXORXPX
      SXCBWTXOWKXRUMUNXSXCXNBXOXCWOXAKZWSLZHWLQXSWNXOKZLZXNWSYAHXBWLWOXBKZWSLWO
      WLKZXTLZWSLYEYALYDYFWSWOWLXAUOUPYEXTWSUQURUSYCYAXMHCXGWLFTXGTKYCXFFKLXFEC
      UIUJVRWKYEWOXGULZCFQUCXRYBCWOEFJGUKUTYAXTWPWRUBYCYGLZXMXTWPWRVAYHXTXIWPXJ
      WRXLYHWOWTSXGXOSZXTXIYHWOXGWTXOYCYGUMZWKXRYBYGVBVCHWTVDXIXIXGESZLYIYKXIXF
      EVEZVFXGXHEVHURVGYHWPWNXGKZXJYHWOXGWNYJVIYHXJXJWNEKZLYMYHYNXJYHXOEWNXHEVE
      XSYBYGVJVKVLWNXFEUOVMVNYHWQXKDYHWQWLXGMNZXKYHWOXGWLMYJVSYHWIYKWJYOXKULWIW
      JXRYBYGVOYKYHYLVRXSWJYBYGWIWJXRVJUTXGEFJGVPVQVTWAWBWHWCWDWEWFWGWF $.
  $}

  ${
    $d j k s u v x y z A $.  $d j u v x y z J $.  $d j k s u x y z ph $.
    $d u y z X $.
    restlly.1 $e |- ( ( ph /\ ( j e. A /\ x e. j ) ) -> ( j |`t x ) e. A ) $.
    $( If the property ` A ` passes to open subspaces, then a space is
       n-locally ` A ` iff it is locally ` A ` .  (Contributed by Mario
       Carneiro, 2-Mar-2015.) $)
    restnlly $p |- ( ph -> N-Locally A = Locally A ) $=
      ( vk vu vy vs cv wcel wa ctop wel crest co wrex wral wss wceq cpw nllytop
      cnlly clly cin adantl w3a nlly2i simprl simprr2 simplr elpwid sstrd selpw
      3adant1l sylibr simprr1 simpll1 simprd syl restabs syl3anc simprr3 simpld
      elind wi expr ralrimiva df-ss sylib elrestr eqeltrrd eleq2 eleq1d imbi12d
      oveq1 rspcv syl3c jca32 reximdv2 rexlimdva mpd 3expb islly sylanbrc ssrdv
      ex ralrimivva llyssnlly a1i eqssd ) ACUCZCUDZAFWLWMAFJZWLKZWNWMKZAWOLZWNM
      KZGBNZWNBJZOPZCKZLZBWNHJZUAZUEZQZGXDRHWNRWPWOWRACWNUBZUFWQXGHGWNXDWQHFNZG
      HNZXGWQXIXJUGZWSWTIJZSZWNXLOPZCKZUGZBWNQZIXEQZXGWOXIXJXRABCGJXDWNIUHUOXKX
      QXGIXEXKXLXEKZLZXPXCBWNXFXTBFNZXPLZWTXFKZXCLXTYBLZYCWSXBYDWNXEWTXTYAXPUIZ
      YDWTXDSWTXEKYDWTXLXDWSXMXOYAXTUJZYDXLXDXKXSYBUKZULUMBXDUNUPVEWSXMXOYAXTUQ
      YDXNWTOPZXACYDWRXMXSYHXATYDWOWRYDAWOWQXIXJXSYBURZUSXHUTZYFYGWTXLWNMXEVAVB
      YDXOBDNZDJZWTOPZCKZVFZDCRZWTXNKZYHCKZWSXMXOYAXTVCYDAYPYDAWOYIVDAYODCAYLCK
      YKYNEVGVHUTYDWTXLUEZWTXNYDXMYSWTTYFWTXLVIVJYDWRXSYAYSXNKYJYGYEWTXLWNMXEVK
      VBVLYOYQYRVFDXNCYLXNTZYKYQYNYRYLXNWTVMYTYMYHCYLXNWTOVPVNVOVQVRVLVSWGVTWAW
      BWCWHHGBCWNWDWEWGWFWMWLSACWIWJWK $.

    ${
      restlly.2 $e |- ( ph -> A C_ Top ) $.
      $( If the property ` A ` passes to open subspaces, then a space which is
         ` A ` is also locally ` A ` .  (Contributed by Mario Carneiro,
         2-Mar-2015.) $)
      restlly $p |- ( ph -> A C_ Locally A ) $=
        ( vy vu clly cv wcel wa ctop wel crest co cpw cin wrex wral sselda pwid
        simprl vex a1i elind simprr anassrs adantrr elequ2 oveq2 eleq1d anbi12d
        weq rspcev syl12anc ralrimivva islly sylanbrc ex ssrdv ) ADCCIZADJZCKZV
        CVBKZAVDLZVCMKGHNZVCHJZOPZCKZLZHVCBJZQZRZSZGVLTBVCTVEACMVCFUAVFVOBGVCVL
        VFBDNZGBNZLLZVLVNKVQVCVLOPZCKZVOVRVCVMVLVFVPVQUCVLVMKVRVLBUDUBUEUFVFVPV
        QUGVFVPVTVQAVDVPVTEUHUIVKVQVTLHVLVNHBUNZVGVQVJVTHBGUJWAVIVSCVHVLVCOUKUL
        UMUOUPUQBGHCVCURUSUTVA $.
    $}

    islly2.2 $e |- X = U. J $.
    $( An alternative expression for ` J e. Locally A ` when ` A ` passes to
       open subspaces:  A space is locally ` A ` if every point is contained in
       an open neighborhood with property ` A ` .  (Contributed by Mario
       Carneiro, 2-Mar-2015.) $)
    islly2 $p |- ( ph -> ( J e. Locally A <-> ( J e. Top /\ A. y e. X
      E. u e. J ( y e. u /\ ( J |`t u ) e. A ) ) ) ) $=
      ( vv vz wcel cv crest co wa wral wss syl3anc clly ctop wrex llytop adantl
      w3a simplr adantr topopn syl simpr 3simpc reximi ralrimiva jca cpw simprl
      llyi cin wi cuni elssuni syl6sseqr ssralv simpllr simplrl inopn inss1 vex
      elpw2 mpbir elind simplrr simprrl wceq restabs elrestr simprrr ralrimivva
      inss2 ad3antrrr oveq1 eleq1d raleqbi1dv rspcv sylc oveq2 eqeltrrd anbi12d
      a1i eleq2 rspcev syl12anc rexlimdvaa anassrs ralimdva syld ralrimdva impr
      islly sylanbrc impbida ) AGEUAMZGUBMZCNZDNZMZGXFOPZEMZQZDGUCZCHRZQZAXCQZX
      DXLXCXDAEGUDUEZXNXKCHXNXEHMZQZXFHSZXGXIUFZDGUCZXKXQXCHGMZXPXTAXCXPUGXQXDY
      AXNXDXPXOUHGHJUIUJXNXPUKDEXEHGURTXSXJDGXRXGXIULUMUJUNUOAXMQXDXEKNZMZGYBOP
      ZEMZQZKGLNZUPZUSZUCZCYGRZLGRZXCAXDXLUQAXDXLYLAXDQZXLYKLGYMYGGMZQZXLXKCYGR
      ZYKYOYGHSZXLYPUTYNYQYMYNYGGVAHYGGVBJVCUEXKCYGHVDUJYOXKYJCYGYMYNXEYGMZXKYJ
      UTYMYNYRQZQZXJYJDGYTXFGMZXJQZQZYGXFUSZYIMXEUUDMZGUUDOPZEMZYJUUCGYHUUDUUCX
      DYNUUAUUDGMAXDYSUUBVEZYMYNYRUUBVFZYTUUAXJUQZYGXFGVGTUUDYHMZUUCUUKUUDYGSYG
      XFVHUUDYGLVIVJVKWJVLUUCYGXFXEYMYNYRUUBVMYTUUAXGXIVNVLUUCXHUUDOPZUUFEUUCXD
      UUDXFSZUUAUULUUFVOUUHUUMUUCYGXFVTWJUUJUUDXFGUBGVPTUUCUUDXHMZXHBNZOPZEMZBX
      HRZUULEMZUUCXDUUAYNUUNUUHUUJUUIYGXFGUBGVQTUUCXIFNZUUOOPZEMZBUUTRZFERZUURY
      TUUAXGXIVRAUVDXDYSUUBAUVBFBEUUTIVSWAUVCUURFXHEUVBUUQBUUTXHUUTXHVOUVAUUPEU
      UTXHUUOOWBWCWDWEWFUUQUUSBUUDXHUUOUUDVOUUPUULEUUOUUDXHOWGWCWEWFWHYFUUEUUGQ
      KUUDYIYBUUDVOZYCUUEYEUUGYBUUDXEWKUVEYDUUFEYBUUDGOWGWCWIWLWMWNWOWPWQWRWSLC
      KEGWTXAXB $.
  $}

  ${
    $d j s u v x y z A $.  $d s u v x y B $.  $d s u v x y J $.
    $( An open subspace of a locally ` A ` space is also locally ` A ` .
       (Contributed by Mario Carneiro, 2-Mar-2015.) $)
    llyrest $p |- ( ( J e. Locally A /\ B e. J ) ->
      ( J |`t B ) e. Locally A ) $=
      ( vy vv vx wcel wa crest co ctop wrex wral sylan wss restopn2 w3a syl3anc
      cv wb clly cpw cin llytop resttop simp1l simp2l simp3 llyi simprl simprr1
      simpl2r sstrd adantr simpl1r syl2anc mpbir2and selpw sylibr elind simprr2
      syl wceq restabs simprr3 eqeltrd jca32 ex reximdv2 3expa ralrimiva sylbid
      mpd ralrimiv islly sylanbrc ) CAUAZGZBCGZHZCBIJZKGZDSZESZGZWAWDIJZAGZHZEW
      AFSZUBZUCZLZDWIMZFWAMWAVQGVRCKGZVSWBACUDZBCCUENVTWMFWAVTWIWAGZWICGZWIBOZH
      ZWMVRWNVSWPWSTWOBWICPNVTWSWMVTWSHWLDWIVTWSWCWIGZWLVTWSWTQZWDWIOZWECWDIJZA
      GZQZECLZWLXAVRWQWTXFVRVSWSWTUFZVTWQWRWTUGVTWSWTUHEAWCWICUIRXAXEWHECWKXAWD
      CGZXEHZWDWKGZWHHXAXIHZXJWEWGXKWAWJWDXKWDWAGZXHWDBOZXAXHXEUJXKWDWIBXBWEXDX
      HXAUKZWQWRVTWTXIULUMZXKWNVSXLXHXMHTXAWNXIXAVRWNXGWOVBUNZVRVSWSWTXIUOZBWDC
      PUPUQXKXBWDWJGXNEWIURUSUTXBWEXDXHXAVAXKWFXCAXKWNXMVSWFXCVCXPXOXQWDBCKCVDR
      XBWEXDXHXAVEVFVGVHVIVMVJVKVHVLVNFDEAWAVOVP $.

    $( An open subspace of an n-locally ` A ` space is also n-locally ` A ` .
       (Contributed by Mario Carneiro, 2-Mar-2015.) $)
    nllyrest $p |- ( ( J e. N-Locally A /\ B e. J ) ->
      ( J |`t B ) e. N-Locally A ) $=
      ( vs vy vx vu wcel wa crest co ctop cv cfv wrex wral wss syl3anc 3ad2ant1
      w3a cnlly csn cnei cpw cin nllytop resttop sylan wb restopn2 simp1l simp3
      simp2l nlly2i cuni simp3l simp3r2 simp2 simp12r sstrd syl simp11r syl2anc
      elpwid mpbir2and simp3r1 opnneip wceq elssuni eqid restuni sseqtrd ssnei2
      syl22anc elind restabs simp3r3 eqeltrd 3expa rexlimdvaa expimpd ralrimiva
      jca reximdv2 mpd ex sylbid ralrimiv isnlly sylanbrc ) CAUAZHZBCHZIZCBJKZL
      HZWODMZJKZAHZDEMZUBZWOUCNNZFMZUDZUEZOZEXCPZFWOPWOWKHWLCLHZWMWPACUFZBCCUGU
      HZWNXGFWOWNXCWOHZXCCHZXCBQZIZXGWLXHWMXKXNUIXIBXCCUJUHWNXNXGWNXNIXFEXCWNXN
      WTXCHZXFWNXNXOTZWTGMZHZXQWQQZCWQJKZAHZTZGCOZDXDOZXFXPWLXLXOYDWLWMXNXOUKZW
      NXLXMXOUMWNXNXOULGAWTXCCDUNRXPYCWSDXDXEXPWQXDHZYCWQXEHZWSIZXPYFIYBYHGCXPY
      FXQCHZYBIZYHXPYFYJTZYGWSYKXBXDWQYKWPXQXBHZXSWQWOUOZQWQXBHXPYFWPYJWNXNWPXO
      XJSSZYKWPXQWOHZXRYLYNYKYOYIXQBQZXPYFYIYBUPYKXQWQBXRXSYAYIXPYFUQZYKWQXCBYK
      WQXCXPYFYJURZVDXLXMWNXOYFYJUSUTZUTYKXHWMYOYIYPIUIYKWLXHXPYFWLYJYESXIVAZWL
      WMXNXOYFYJVBZBXQCUJVCVEXRXSYAYIXPYFVFWTWOXQVGRYQYKWQBYMYSYKXHBCUOZQZBYMVH
      YTYKWMUUCUUABCVIVABCUUBUUBVJVKVCVLXAWOWQXQYMYMVJVMVNYRVOYKWRXTAYKXHWQBQWM
      WRXTVHYTYSUUAWQBCLCVPRXRXSYAYIXPYFVQVRWCVSVTWAWDWEVSWBWFWGWHFEDAWOWIWJ $.

    $( If ` A ` is a local property, then both ` Locally A ` and
       ` N-Locally A ` simplify to ` A ` .  (Contributed by Mario Carneiro,
       2-Mar-2015.) $)
    loclly $p |- ( Locally A = A <-> N-Locally A = A ) $=
      ( vx vj clly wceq cnlly cv wcel wa crest co simprl simpl eleqtrrd llyrest
      simprr syl2anc eleqtrd restnlly id eqtrd nllyrest eqtr3d impbii ) ADZAEZA
      FZAEZUFUGUEAUFBACUFCGZAHZBGZUIHZIZIZUIUKJKZUEAUNUIUEHULUOUEHUNUIAUEUFUJUL
      LUFUMMZNUFUJULPAUKUIOQUPRSUFTUAUHUGUEAUHBACUHUMIZUOUGAUQUIUGHULUOUGHUQUIA
      UGUHUJULLUHUMMZNUHUJULPAUKUIUBQURRSUHTUCUD $.

    $( Idempotence of the "locally" predicate, i.e. being "locally ` A ` " is a
       local property.  (Contributed by Mario Carneiro, 2-Mar-2015.) $)
    llyidm $p |- Locally Locally A = Locally A $=
      ( vj vy vv vx vu clly cv wcel ctop wel crest co wa wrex wral w3a wss wtru
      adantr cpw cin llytop llyi simprr3 simprl a1i 3ad2ant1 restopn2 mpbir2and
      ssid syl2anc simprr2 syl3anc simpl syl6bi simprr1 sstrd selpw sylibr wceq
      wb elind simplrl restabs eqeltrrd jca32 ex syland reximdv2 mpd ralrimivva
      rexlimddv 3expb islly sylanbrc ssriv llyrest adantl restlly trud eqssi )
      AGZGZWCBWDWCBHZWDIZWEJIZCDKZWEDHZLMZAIZNZDWEEHZUAZUBZOZCWMPEWEPWEWCIZWCWE
      UCZWFWPECWEWMWFEBKZCEKZWPWFWSWTQZFHZWMRZCFKZWEXBLMZWCIZQZWPFWEFWCCHZWMWEU
      DXAFBKZXGNZNZWIXBRZWHXEWILMZAIZQZDXEOZWPXKXFXBXEIZXDXPXCXDXFXIXAUEXKXQXIX
      BXBRZXAXIXGUFZXRXKXBUKUGXKWGXIXQXIXRNVBXAWGXJWFWSWGWTWRUHTZXSXBXBWEUIULUJ
      XCXDXFXIXAUMDAXHXBXEUDUNXKXOWLDXEWOXKWIXEIZDBKZXOWIWOIZWLNZXKYAYBXLNZYBXK
      WGXIYAYEVBXTXSXBWIWEUIULYBXLUOUPXKYBXONZYDXKYFNZYCWHWKYGWEWNWIXKYBXOUFYGW
      IWMRWIWNIYGWIXBWMXLWHXNYBXKUQZXKXCYFXCXDXFXIXAUQTURDWMUSUTVCXLWHXNYBXKUMY
      GXMWJAYGWGXLXIXMWJVAXKWGYFXTTYHXAXIXGYFVDWIXBWEJWEVEUNXLWHXNYBXKUEVFVGVHV
      IVJVKVMVNVLECDAWEVOVPVQWCWDRSEWCBWQWSNWEWMLMWCISAWMWEVRVSWCJRSBWCJAWEUCVQ
      UGVTWAWB $.

    $( Idempotence of the "n-locally" predicate, i.e. being "n-locally
       ` A ` " is a local property.  (Use ~ loclly to show
       ` N-Locally N-Locally A = N-Locally A ` .)  (Contributed by Mario
       Carneiro, 2-Mar-2015.) $)
    nllyidm $p |- Locally N-Locally A = N-Locally A $=
      ( vj vv vy vx vu vz cv wcel ctop crest co wrex wel w3a wss syl3anc adantr
      wa wtru cnlly clly csn cnei cfv cpw cin wral llytop llyi simprr3 ssid a1i
      simprl wb simpl1 syl restopn2 syl2anc mpbir2and simprr2 nlly2i wi simpr2l
      cuni simpr31 opnneip simpr32 simpr1 elpwid elssuni sstrd syl22anc simprr1
      eqid ssnei2 selpw sylibr elind wceq restabs simpr33 eqeltrrd 3exp2 sylbid
      jca imp rexlimdv expimpd reximdv2 mpd rexlimddv 3expb ralrimivva sylanbrc
      isnlly ssriv nllyrest adantl nllytop restlly trud eqssi ) AUAZUBZXDBXEXDB
      HZXEIZXFJIZXFCHZKLZAIZCDHZUCZXFUDUEUEZEHZUFZUGZMZDXOUHEXFUHXFXDIZXDXFUIZX
      GXREDXFXOXGEBNZDENZXRXGYAYBOZFHZXOPZDFNZXFYDKLZXDIZOZXRFXFFXDXLXOXFUJYCFB
      NZYISZSZDGNZGHZXIPZYGXIKLZAIZOZGYGMZCYDUFZMZXRYLYHYDYGIZYFUUAYEYFYHYJYCUK
      YLUUBYJYDYDPZYCYJYIUNZUUCYLYDULUMYLXHYJUUBYJUUCSUOYLXGXHXGYAYBYKUPXTUQZUU
      DYDYDXFURUSUTYEYFYHYJYCVAGAXLYDYGCVBQYLYSXKCYTXQYLXIYTIZYSXIXQIZXKSZYLUUF
      SZYRUUHGYGUUIYNYGIZGBNZYNYDPZSZYRUUHVCZYLUUJUUMUOZUUFYLXHYJUUOUUEUUDYDYNX
      FURUSRYLUUFUUMUUNVCYLUUFUUMYRUUHYLUUFUUMYROZSZUUGXKUUQXNXPXIUUQXHYNXNIZYO
      XIXFVEZPXIXNIYLXHUUPUUERZUUQXHUUKYMUURUUTUUKUULUUFYRYLVDYMYOYQUUFUUMYLVFX
      LXFYNVGQYMYOYQUUFUUMYLVHUUQXIYDUUSUUQXIYDYLUUFUUMYRVIVJZUUQYJYDUUSPYLYJUU
      PUUDRZYDXFVKUQVLXMXFXIYNUUSUUSVOVPVMUUQXIXOPXIXPIUUQXIYDXOUVAYLYEUUPYEYFY
      HYJYCVNRVLCXOVQVRVSUUQYPXJAUUQXHXIYDPYJYPXJVTUUTUVAUVBXIYDXFJXFWAQYMYOYQU
      UFUUMYLWBWCWFWDWGWEWHWIWJWKWLWMWNEDCAXFWPWOWQXDXEPTEXDBXSYASXFXOKLXDITAXO
      XFWRWSXDJPTBXDJAXFWTWQUMXAXBXC $.
  $}

  ${
    $d a j n t u v w x y z $.  $d s u v w x y A $.  $d x y V $.  $d u x y X $.
    $d s u v w x y z J $.
    $( A topology is locally a topology.  (Contributed by Mario Carneiro,
       2-Mar-2015.) $)
    toplly $p |- Locally Top = Top $=
      ( vj vx ctop clly cv llytop ssriv wss wtru wcel crest resttop adantl ssid
      wa co a1i restlly trud eqssi ) CDZCAUACCAEZFGCUAHIBCAUBCJBEZUBJOUBUCKPCJI
      UCUBUBLMCCHICNQRST $.

    $( A topology is n-locally a topology.  (Contributed by Mario Carneiro,
       2-Mar-2015.) $)
    topnlly $p |- N-Locally Top = Top $=
      ( ctop clly wceq cnlly toplly loclly mpbi ) ABACADACEAFG $.

    $( A Hausdorff space is locally Hausdorff.  (Contributed by Mario Carneiro,
       2-Mar-2015.) $)
    hauslly $p |- ( J e. Haus -> J e. Locally Haus ) $=
      ( vx vj cha clly wss wtru cv wcel wa crest co resthaus ctop haustop ssriv
      adantl a1i restlly trud sseli ) DDEZADUBFGBDCCHZDIBHZUCIJUCUDKLDIGUDUCUCM
      QDNFGCDNUCOPRSTUA $.

    $( A Hausdorff space is n-locally Hausdorff iff it is locally Hausdorff
       (both notions are thus referred to as "locally Hausdorff").
       (Contributed by Mario Carneiro, 2-Mar-2015.) $)
    hausnlly $p |- ( J e. N-Locally Haus <-> J e. Locally Haus ) $=
      ( vx vj cnlly clly wceq wtru cv wcel wa crest co resthaus adantl restnlly
      cha trud eleq2i ) PDZPEZASTFGBPCCHZPIBHZUAIJUAUBKLPIGUBUAUAMNOQR $.

    $( A compact Hausdorff space is locally compact.  (Contributed by Mario
       Carneiro, 2-Mar-2015.) $)
    hausllycmp $p |- ( ( J e. Haus /\ J e. Comp ) -> J e. N-Locally Comp ) $=
      ( vv vy vx vu vz wcel ccmp wa cv crest cfv wrex wral adantr wss cdif eqid
      co syl2anc cha ctop csn cnei cpw cin cnlly haustop ccl cuni simpll difssd
      crab ccld simplr ad2antrr simprl opncld cmpcld simprr wceq ad2antrl dfss4
      elssuni eleqtrrd hauscmplem sseq2d anbi2d rexbidv simprrl opnneip syl3anc
      sylib mpbid sscls clsss3 ssnei2 syl22anc simprrr elpw2 sylibr elind oveq2
      vex clscld eleq1d rspcev rexlimddv ralrimivva isnlly sylanbrc ) AUAGZAHGZ
      IZAUBGZABJZKSZHGZBCJZUCZAUDLLZDJZUEZUFZMZCXBNDANAHUGGWLWOWMAUHZOWNXEDCAXB
      WNXBAGZWSXBGZIZIZWSEJZGZXKAUILZLZXBPZIZXEEAXJXLXNAUJZXQXBQZQZPZIZEAMXPEAM
      XJFEBWSXRAWSWPGWPXMLXQFJQPIBAMFAUMZXQXQRZYBRWLWMXIUKXJXQXBULXJWMXRAUNLZGZ
      AXRKSHGWLWMXIUOZXJWOXGYEWLWOWMXIXFUPZWNXGXHUQXBAXQYCURTXRAUSTXJWSXBXSWNXG
      XHUTXJXBXQPZXSXBVAXGYHWNXHXBAVDVBXBXQVCVMZVEVFXJYAXPEAXJXTXOXLXJXSXBXNYIV
      GVHVIVNXJXKAGZXPIZIZXNXDGAXNKSZHGZXEYLXAXCXNYLWOXKXAGZXKXNPZXNXQPZXNXAGXJ
      WOYKYGOZYLWOYJXLYOYRXJYJXPUQXJYJXLXOVJWSAXKVKVLYLWOXKXQPZYPYRYJYSXJXPXKAV
      DVBZXKAXQYCVOTYLWOYSYQYRYTXKAXQYCVPTWTAXNXKXQYCVQVRYLXOXNXCGXJYJXLXOVSXNX
      BDWDVTWAWBYLWMXNYDGZYNXJWMYKYFOYLWOYSUUAYRYTXKAXQYCWETXNAUSTWRYNBXNXDWPXN
      VAWQYMHWPXNAKWCWFWGTWHWIDCBHAWJWK $.

    $( A closed subspace of a locally compact space is also locally compact.
       (The analogous result for open subspaces follows from the more general
       ~ nllyrest .)  (Contributed by Mario Carneiro, 2-Mar-2015.) $)
    cldllycmp $p |- ( ( J e. N-Locally Comp /\ A e. ( Clsd ` J ) ) ->
      ( J |`t A ) e. N-Locally Comp ) $=
      ( vv vy vx vu vw vs ccmp wcel wa crest co ctop cin wrex wceq wss syl3anc
      cv cnlly ccld cfv csn cnei cpw nllytop resttop sylan elrest simpll simprl
      wral w3a inss1 simprr sseldi nlly2i cuni ad2antrr simpllr simprlr elrestr
      ad3antrrr simprr1 inss2 simplrr elind opnneip simprr2 ssrin cldss restuni
      syl eqid syl2anc syl5sseq ssnei2 syl22anc simprll elpwid vex inex1 sylibr
      elpw a1i restabs eqtr4d simprr3 incom ineq1 eqeq2d rspcev sylancl simplrl
      wb elssuni sstrd restcld mpbird syl5eqel cmpcld eqeltrd oveq2 eleq1d expr
      rexlimdvva mpd anassrs ralrimiva pweq ineq2d rexeqdv raleqbi1dv rexlimdva
      syl5ibrcom sylbid ralrimiv isnlly sylanbrc ) BIUAZJZABUBUCZJZKZBALMZNJZYF
      CTZLMZIJZCDTZUDZYFUEUCUCZETZUFZOZPZDYNUMZEYFUMYFYAJYBBNJZYDYGIBUGZABYCUHU
      IZYEYREYFYEYNYFJYNFTZAOZQZFBPYRFYNABYAYCUJYEUUDYRFBYEUUBBJZKZYRUUDYJCYMUU
      CUFZOZPZDUUCUMUUFUUIDUUCYEUUEYKUUCJZUUIYEUUEUUJKZKZYKGTZJZUUMHTZRZBUUOLMZ
      IJZUNZGBPHUUBUFZPZUUIUULYBUUEYKUUBJUVAYBYDUUKUKYEUUEUUJULUULUUCUUBYKUUBAU
      OYEUUEUUJUPUQGIYKUUBBHURSUULUUSUUIHGUUTBUULUUOUUTJZUUMBJZKZUUSUUIUULUVDUU
      SKZKZUUOAOZUUHJYFUVGLMZIJZUUIUVFYMUUGUVGUVFYGUUMAOZYMJZUVJUVGRZUVGYFUSZRU
      VGYMJYEYGUUKUVEUUAUTZUVFYGUVJYFJZYKUVJJUVKUVNUVFYSYDUVCUVOYBYSYDUUKUVEYTV
      DZYBYDUUKUVEVAZUULUVBUVCUUSVBUUMABNYCVCSUVFUUMAYKUUNUUPUURUVDUULVEUVFUUCA
      YKUUBAVFYEUUEUUJUVEVGUQVHYKYFUVJVISUVFUUPUVLUUNUUPUURUVDUULVJUUMUUOAVKVNU
      VFAUVGUVMUUOAVFZUVFYSABUSZRZAUVMQUVPUVFYDUVTUVQABUVSUVSVOZVLVNABUVSUWAVMV
      PVQYLYFUVGUVJUVMUVMVOVRVSUVFUVGUUCRZUVGUUGJUVFUUOUUBRUWBUVFUUOUUBUULUVBUV
      CUUSVTZWAZUUOUUBAVKVNUVGUUCUUOAHWBWCWEWDVHUVFUVHUUQUVGLMZIUVFUVHBUVGLMZUW
      EUVFYSUVGARZYDUVHUWFQUVPUWGUVFUVRWFUVQUVGABNYCWGSUVFYSUVGUUORZUVBUWEUWFQU
      VPUWHUVFUUOAUOWFUWCUVGUUOBNUUTWGSWHUVFUURUVGUUQUBUCZJUWEIJUUNUUPUURUVDUUL
      WIUVFUVGAUUOOZUWIUUOAWJUVFUWJUWIJZUWJYHUUOOZQZCYCPZUVFYDUWJUWJQZUWNUVQUWJ
      VOUWMUWOCAYCYHAQUWLUWJUWJYHAUUOWKWLWMWNUVFYSUUOUVSRUWKUWNWPUVPUVFUUOUUBUV
      SUWDUVFUUEUUBUVSRYEUUEUUJUVEWOUUBBWQVNWRCUWJUUOBUVSUWAWSVPWTXAUVGUUQXBVPX
      CYJUVICUVGUUHYHUVGQYIUVHIYHUVGYFLXDXEWMVPXFXGXHXIXJYQUUIDYNUUCUUDYJCYPUUH
      UUDYOUUGYMYNUUCXKXLXMXNXPXOXQXREDCIYFXSXT $.

    $( First-countability is a local property (unlike second-countability).
       (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    lly1stc $p |- Locally 1stc = 1stc $=
      ( vj vy vx vz vw vu vt vv vn c1stc cv wcel wel wss wa wrex wi wral adantr
      wceq va clly ctop com cdom wbr cpw cuni llytop crest co w3a simprr simprl
      ad3antrrr elssuni ad2antlr eqid restuni syl2anc eleqtrd 1stcclb cin elpwi
      cmpt crn wf adantl sselda wb simpllr restopn2 simplbda syldan df-ss sylib
      simprbda eqeltrd ineq1 cbvmptv fmptd frn syl adantrr elpw2 sylibr simprrl
      vex 1stcrestlem ad2antrr elrestr syl3anc simprrr elind eleq2 sseq2 anbi2d
      rexbidv imbi12d rspcv syl3c elin simplbi2com biantrud ssin syl6bb ssinss1
      syl6bir anim12d reximdva inex1 rgenw sseq1 anbi12d rexrnmpt ax-mp syl6ibr
      cvv expr ralrimiva breq1 rexeq imbi2d ralbidv syl12anc rexlimddv 3adantr1
      mpd rspcev simpl topopn simpr llyi r19.29a is1stc2 sylanbrc wtru 1stcrest
      ssriv 1stctop a1i restlly trud eqssi ) JUBZJAUUEJAKZUUELZUUFUCLZBKZUDUEUF
      ZCDMZCEMZEKZDKZNZOZEUUIPZQZDUUFRZOZBUUFUGZPZCUUFUHZRUUFJLZJUUFUIZUUGUVBCU
      VCUUGCKZUVCLZOZFKZUVCNZCFMZUUFUVIUJUKZJLZULZUVBFUUFUVHFAMZOZUVKUVMUVBUVJU
      VPUVKUVMOZOZGKZUDUEUFZCHMZCIMZIKZHKZNZOZIUVSPZQZHUVLRZOZUVBGUVLUGZUVRUVMU
      VFUVLUHZLUWJGUWKPUVPUVKUVMUMUVRUVFUVIUWLUVPUVKUVMUNZUVRUUHUVJUVIUWLTUUGUU
      HUVGUVOUVQUVEUOZUVOUVJUVHUVQUVIUUFUPUQUVIUUFUVCUVCURZUSUTVAGHIUVFUVLUWLUW
      LURVBUTUVRUVSUWKLZUWJOZOZUAUVSUAKZUVIVCZVEZVFZUVALZUXBUDUEUFZUUKUUPEUXBPZ
      QZDUUFRZUVBUWRUXBUUFNZUXCUVRUWPUXHUWJUVRUWPOZUVSUUFUXAVGUXHUXIIUVSUWCUVIV
      CZUUFUXAUXIIGMZOZUXJUWCUUFUXLUWCUVINZUXJUWCTUXIUXKUWCUVLLZUXMUXIUVSUVLUWC
      UWPUVSUVLNUVRUVSUVLVDVHVIZUXIUXNIAMZUXMUXIUUHUVOUXNUXPUXMOVJUVRUUHUWPUWNS
      UVHUVOUVQUWPVKUVIUWCUUFVLUTZVMVNZUWCUVIVOVPUXIUXKUXNUXPUXOUXIUXNUXPUXMUXQ
      VQVNVRUAIUVSUWTUXJUWSUWCUVIVSVTZWAUVSUUFUXAWBWCWDUXBUUFAWHWEWFUWRUVTUXDUV
      RUWPUVTUWIWGUAUVSUWTWIWCUWRUXFDUUFUWRDAMZUUKUXEUWRUXTUUKOZOZUWBUWCUUNUVIV
      CZNZOZIUVSPZUXEUYBUYCUVLLZUWIUVFUYCLZUYFUYBUUHUVOUXTUYGUVRUUHUWQUYAUWNWJU
      WRUVOUYAUVHUVOUVQUWQVKSUWRUXTUUKUNUUNUVIUUFUCUUFWKWLUWRUWIUYAUVRUWPUVTUWI
      WMSUYBUUNUVIUVFUWRUXTUUKUMUVRUVKUWQUYAUWMWJWNUWHUYHUYFQHUYCUVLUWDUYCTZUWA
      UYHUWGUYFUWDUYCUVFWOUYIUWFUYEIUVSUYIUWEUYDUWBUWDUYCUWCWPWQWRWSWTXAUWRUYFU
      XEQZUYAUVRUWPUYJUWJUXIUYFUVFUXJLZUXJUUNNZOZIUVSPZUXEUXIUYEUYMIUVSUXLUWBUY
      KUYDUYLUXLUVKUWBUYKQUVRUVKUWPUXKUWMWJUYKUWBUVKUVFUWCUVIXBXCWCUXLUYDUWCUUN
      NZUYLUXLUYOUYOUXMOUYDUXLUXMUYOUXRXDUWCUUNUVIXEXFUWCUVIUUNXGXHXIXJUXJXRLZI
      UVSRUXEUYNVJUYPIUVSUWCUVIIWHXKXLUUPUYMIEUVSUXJUXAXRUXSUUMUXJTUULUYKUUOUYL
      UUMUXJUVFWOUUMUXJUUNXMXNXOXPXQWDSYHXSXTUUTUXDUXGOBUXBUVAUUIUXBTZUUJUXDUUS
      UXGUUIUXBUDUEYAUYQUURUXFDUUFUYQUUQUXEUUKUUPEUUIUXBYBYCYDXNYIYEYFYGUVHUUGU
      VCUUFLZUVGUVNFUUFPUUGUVGYJUVHUUHUYRUUGUUHUVGUVESUUFUVCUWOYKWCUUGUVGYLFJUV
      FUVCUUFYMWLYNXTCBDEUUFUVCUWOYOYPYSJUUENYQCJAUVDCAMOUUFUVFUJUKJLYQUVFUUFUU
      FYRVHJUCNYQAJUCUUFYTYSUUAUUBUUCUUD $.

    $( The discrete space ` ~P X ` is locally ` A ` if and only if every
       singleton space has property ` A ` .  (Contributed by Mario Carneiro,
       20-Mar-2015.) $)
    dislly $p |- ( X e. V -> ( ~P X e. Locally A <->
      A. x e. X ~P { x } e. A ) ) $=
      ( vy vu wcel cpw cv wral wa wss crest co wrex simplr snssd wceq ralrimiva
      syl2anc clly csn w3a simpr vex snelpw sylib vsnid a1i llyi syl3anc simpr1
      simpr2 eqssd oveq2d simplll restdis simpr3 eqeltrrd ex rexlimdvw mpd ctop
      eqtrd cin distop adantr wi elpwi adantl ssralv syl simprl sstrd snex elpw
      sylibr elind snidg ad2antrl simpll simprr eqeltrd eleq1d anbi12d syl12anc
      eleq2 oveq2 rspcev expr ralimdva syld imp an32s islly sylanbrc impbida )
      DCGZDHZBUAGZAIZUBZHZBGZADJZWRWTKZXDADXFXADGZKZEIZXBLZXAXIGZWSXIMNZBGZUCZE
      WSOZXDXHWTXBWSGZXAXBGZXOWRWTXGPXHXGXPXFXGUDXADAUEUFUGXQXHAUHUIEBXAXBWSUJU
      KXHXNXDEWSXHXNXDXHXNKZXLXCBXRXLWSXBMNZXCXRXIXBWSMXRXIXBXHXJXKXMULXRXAXIXH
      XJXKXMUMQUNUOXRWRXBDLZXSXCRZWRWTXGXNUPXRXADXFXGXNPQDXBCUQZTVDXHXJXKXMURUS
      UTVAVBSWRXEKZWSVCGZXAFIZGZWSYEMNZBGZKZFWSXIHZVEZOZAXIJZEWSJWTWRYDXEDCVFVG
      YCYMEWSWRXIWSGZXEYMWRYNKZXEYMYOXEXDAXIJZYMYOXIDLZXEYPVHYNYQWRXIDVIVJZXDAX
      IDVKVLYOXDYLAXIYOXKXDYLYOXKXDKZKZXBYKGXQXSBGZYLYTWSYJXBYTXTXPYTXBXIDYTXAX
      IYOXKXDVMQZYOYQYSYRVGVNZXBDXAVOZVPVQYTXBXILXBYJGUUBXBXIUUDVPVQVRXKXQYOXDX
      AXIVSVTYTXSXCBYTWRXTYAWRYNYSWAUUCYBTYOXKXDWBWCYIXQUUAKFXBYKYEXBRZYFXQYHUU
      AYEXBXAWGUUEYGXSBYEXBWSMWHWDWEWIWFWJWKWLWMWNSEAFBWSWOWPWQ $.

    $( A discrete space is locally compact.  (Contributed by Mario Carneiro,
       20-Mar-2015.) $)
    disllycmp $p |- ( X e. V -> ~P X e. Locally Comp ) $=
      ( vx wcel cpw ccmp clly csn wral cfn snfi discmp mpbi rgenw dislly mpbiri
      cv ) BADBEFGDCQZHZEFDZCBITCBSJDTRKSLMNCFABOP $.

    $( A discrete space is first-countable.  (Contributed by Mario Carneiro,
       21-Mar-2015.) $)
    dis1stc $p |- ( X e. V -> ~P X e. 1stc ) $=
      ( vx wcel cpw c1stc clly cv csn wral c2ndc ctg cfv ctop cvv ax-mp com wbr
      cfn mpbi wceq snex distop ctb cdom topbas csdm snfi pwfi isfinite sdomdom
      tgtop 2ndci mp2an eqeltrri 2ndc1stc rgenw dislly mpbiri lly1stc syl6eleq
      ) BADZBEZFGZFVBVCVDDCHZIZEZFDZCBJVHCBVGKDVHVGLMZVGKVGNDZVIVGUAVFODVJVEUBV
      FOUCPZVGULPVGUDDZVGQUERZVIKDVJVLVKVGUFPVGQUGRZVMVGSDZVNVFSDVOVEUHVFUITVGU
      JTVGQUKPVGUMUNUOVGUPPUQCFABURUSUTVA $.
  $}

  ${
    $d f x A $.  $d f x J $.  $d f x X $.
    hauspwdom.1 $e |- X = U. J $.
    $( If ` X ` is a first-countable Hausdorff space, then the cardinality of
       the closure of a set ` A ` is bounded by ` NN ` to the power ` A ` .  In
       particular, a first-countable Hausdorff space with a dense subset ` A `
       has cardinality at most ` A ^ NN ` , and a separable first-countable
       Hausdorff space has cardinality at most ` ~P NN ` .  (Compare
       ~ hauspwpwdom to see a weaker result if the assumption of
       first-countability is omitted.)  (Contributed by Mario Carneiro,
       9-Apr-2015.) $)
    hausmapdom $p |- ( ( J e. Haus /\ J e. 1stc /\ A C_ X ) ->
      ( ( cls ` J ) ` A ) ~<_ ( A ^m NN ) ) $=
      ( vx vf cha wcel cfv cn cmap cdom cv wbr wa wex wb cvv 3ad2ant1 syl6bbr
      c1stc wss w3a ccl clm co cima wrex 1stcelcls 3adant1 cuni uniexg syl5eqel
      wf simp3 ssexd elmapg sylancl anbi1d exbidv bitr4d df-rex vex elima eqrdv
      nnex wfun ovex lmfun imadomg mpsyl eqbrtrd ) BGHZBUAHZACUBZUCZABUDIIZBUEI
      ZAJKUFZUGZVSLVPEVQVTVPEMZVQHZFMZWAVRNZFVSUHZWAVTHVPWBWCVSHZWDOZFPZWEVPWBJ
      AWCUNZWDOZFPZWHVNVOWBWKQVMWAAFBCDUIUJVPWGWJFVPWFWIWDVPARHJRHWFWIQVPACRVPC
      BUKZRDVMVNWLRHVOBGULSUMVMVNVOUOUPVFAJWCRRUQURUSUTVAWDFVSVBTFWAVRVSEVCVDTV
      EVSRHVPVRVGZVTVSLNAJKVHVMVNWMVOBVISVSRVRVJVKVL $.

    $( Simplify the cardinal ` A ^ NN ` of ~ hausmapdom to ` ~P B = 2 ^ B `
       when ` B ` is an infinite cardinal greater than ` A ` .  (Contributed by
       Mario Carneiro, 9-Apr-2015.)  (Revised by Mario Carneiro,
       30-Apr-2015.) $)
    hauspwdom $p |- ( ( ( J e. Haus /\ J e. 1stc /\ A C_ X ) /\
      ( A ~<_ ~P B /\ NN ~<_ B ) ) -> ( ( cls ` J ) ` A ) ~<_ ~P B ) $=
      ( wcel cdom wbr cn wa cmap adantr c0 c1 c2o cen syl cvv cfn com cha c1stc
      wss w3a cpw ccl cfv co hausmapdom wceq wn simprr 1nn eleq2 mtbiri mapdom2
      noel sylancl csdm sdomdom adantl mapdom1 reldom brrelex2i ad2antll pw2eng
      mt2 ensym 3syl domentr syl2anc wb con0 onfin2 inss2 eqsstri sselii simprl
      cin 2onn brrelexi fidomtri sylancr biimpar ccrd cdm numth3 nnenom endomtr
      ensymi simpr mappwen syl22anc endom syldan pm2.61dan domtr ) CUAFCUBFADUC
      UDZABUEZGHZIBGHZJZJZACUFUGUGZAIKUHZGHZXEWSGHZXDWSGHWRXFXBACDEUILXCXEABKUH
      ZGHZXHWSGHZXGXCXAIMUJZAMUJZJZUKXIWRWTXAULZXMNIFZUMXKXOUKXLXKXONMFNUQIMNUN
      UOLVGIBAUPURXCAOUSHZXJXCXPJZXHOBKUHZGHZXRWSPHZXJXQAOGHZXSXPYAXCAOUTVAAOBV
      BQXCXTXPXCBRFZWSXRPHXTXAYBWRWTIBGVCVDVEZBRVFWSXRVHVILXHXRWSVJVKXCXPUKZOAG
      HZXJXCYEYDXCOSFARFZYEYDVLTSOTVMSVSSVNVMSVOVPVTVQXCWTYFWRWTXAVRZAWSGVCWAQO
      ARWBWCWDXCYEJZXHWSPHZXJYHBWEWFFZTBGHZYEWTYIXCYJYEXCYBYJYCBRWGQLXCYKYEXCTI
      PHXAYKITWHWJXNTIBWIWCLXCYEWKXCWTYEYGLABWLWMXHWSWNQWOWPXEXHWSWQVKXDXEWSWQV
      K $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Refinements
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Ref $.
  $( Extend class definition to include the refinement relation. $)
  cref $a class Ref $.

  $c PtFin $.
  $( Extend class definition to include the class of point-finite covers. $)
  cptfin $a class PtFin $.

  $c LocFin $.
  $( Extend class definition to include the class of locally finite covers. $)
  clocfin $a class LocFin $.

  ${
    $d w x y z $.
    $( Define the refinement relation.  (Contributed by Jeff Hankins,
       18-Jan-2010.) $)
    df-ref $a |- Ref = { <. x , y >. | ( U. y = U. x /\ A. z e. x E. w e. y z
    C_ w ) } $.
  $}

  ${
    $d x y z $.
    $( Define "point-finite."  (Contributed by Jeff Hankins, 21-Jan-2010.) $)
    df-ptfin $a |- PtFin = { x | A. y e. U. x { z e. x | y e. z } e. Fin } $.
  $}

  ${
    $d n p s x y $.
    $( Define "locally finite."  (Contributed by Jeff Hankins, 21-Jan-2010.)
       (Revised by Thierry Arnoux, 3-Feb-2020.) $)
    df-locfin $a |- LocFin = ( x e. Top |-> { y | ( U. x = U. y /\ A. p e. U. x
      E. n e. x ( p e. n /\ { s e. y | ( s i^i n ) =/= (/) } e. Fin ) ) } ) $.
  $}

  ${
    $d w x y z $.
    $( Refinement is a relation.  (Contributed by Jeff Hankins, 18-Jan-2010.)
       (Revised by Thierry Arnoux, 3-Feb-2020.) $)
    refrel $p |- Rel Ref $=
      ( vy vx vz vw cv cuni wceq wss wrex wral wa cref df-ref relopabi ) AEZFBE
      ZFGCEDEHDOICPJKBALBACDMN $.
  $}

  ${
    $d a b x A $.  $d a b x y B $.  $d a b C $.  $d a b X $.  $d a b Y $.
    isref.1 $e |- X = U. A $.
    isref.2 $e |- Y = U. B $.
    $( The property of being a refinement of a cover.  Dr.  Nyikos once
       commented in class that the term "refinement" is actually misleading and
       that people are inclined to confuse it with the notion defined in
       ~ isfne .  On the other hand, the two concepts do seem to have a dual
       relationship.  (Contributed by Jeff Hankins, 18-Jan-2010.)  (Revised by
       Thierry Arnoux, 3-Feb-2020.) $)
    isref $p |- ( A e. C -> ( A Ref B <-> ( Y = X /\ A. x e. A E. y e. B x C_ y
      ) ) ) $=
      ( vb va wcel cref wceq cv wrex wral wa cvv cuni wbr brrelex2i simpl simpr
      wss refrel anim2i 3eqtr3g uniexg adantr eqeltrd uniexb sylibr adantrr jca
      unieq syl6eqr eqeq2d raleq anbi12d eqeq1d rexeq ralbidv df-ref pm5.21nd
      brabg ) CELZCDMUAZGFNZAOBOUEZBDPZACQZRZVGDSLZRVHVNVGCDMUFUBUGVGVMRVGVNVGV
      MUCVGVIVNVLVGVIRZDTZSLVNVOVPCTZSVOGFVPVQVGVIUDIHUHVGVQSLVICEUIUJUKDULUMUN
      UOJOZTZKOZTZNZVJBVRPZAVTQZRVSFNZWCACQZRVMKJCDESMVTCNZWBWEWDWFWGWAFVSWGWAV
      QFVTCUPHUQURWCAVTCUSUTVRDNZWEVIWFVLWHVSGFWHVSVPGVRDUPIUQVAWHWCVKACVJBVRDV
      BVCUTKJABVDVFVE $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y X $.  $d x y Y $.
    refbas.1 $e |- X = U. A $.
    refbas.2 $e |- Y = U. B $.
    $( A refinement covers the same set.  (Contributed by Jeff Hankins,
       18-Jan-2010.)  (Revised by Thierry Arnoux, 3-Feb-2020.) $)
    refbas $p |- ( A Ref B -> Y = X ) $=
      ( vx vy cvv wcel cref wbr wceq refrel brrelexi cv wss wrex wral isref
      simprbda mpancom ) AIJZABKLZDCMZABKNOUCUDUEGPHPQHBRGASGHABICDEFTUAUB $.
  $}

  ${
    $d y A $.  $d x y B $.  $d x y S $.
    $( Every set in a refinement has a superset in the original cover.
       (Contributed by Jeff Hankins, 18-Jan-2010.)  (Revised by Thierry Arnoux,
       3-Feb-2020.) $)
    refssex $p |- ( ( A Ref B /\ S e. A ) -> E. x e. B S C_ x ) $=
      ( vy cref wbr wcel cv wss wrex wral wi cvv refrel brrelexi cuni wceq eqid
      isref simplbda mpancom sseq1 rexbidv rspccv syl imp ) BCFGZDBHZDAIZJZACKZ
      UHEIZUJJZACKZEBLZUIULMBNHZUHUPBCFOPUQUHCQZBQZRUPEABCNUSURUSSURSTUAUBUOULE
      DBUMDRUNUKACUMDUJUCUDUEUFUG $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y X $.  $d x y Y $.
    ssref.1 $e |- X = U. A $.
    ssref.2 $e |- Y = U. B $.
    $( A subcover is a refinement of the original cover.  (Contributed by Jeff
       Hankins, 18-Jan-2010.)  (Revised by Thierry Arnoux, 3-Feb-2020.) $)
    ssref $p |- ( ( A e. C /\ A C_ B /\ X = Y ) -> A Ref B ) $=
      ( vx vy wcel wss wceq w3a cref wbr cv wrex wral eqcom wa biimpi 3ad2antl2
      3ad2ant3 ssel2 sseq2 rspcev sylancl ralrimiva wb isref 3ad2ant1 mpbir2and
      ssid ) ACJZABKZDELZMZABNOZEDLZHPZIPZKZIBQZHARZUPUNUSUOUPUSDESUAUCUQVCHAUQ
      UTAJZTUTBJZUTUTKZVCUOUNVEVFUPABUTUDUBUTUMVBVGIUTBVAUTUTUEUFUGUHUNUOURUSVD
      TUIUPHIABCDEFGUJUKUL $.
  $}

  ${
    $d x y A $.  $d x y V $.
    $( Reflexivity of refinement.  (Contributed by Jeff Hankins,
       18-Jan-2010.) $)
    refref $p |- ( A e. V -> A Ref A ) $=
      ( vx vy wcel cref wbr cuni wceq cv wss wrex wral wa eqid ssid sseq2 mpan2
      rspcev rgen pm3.2i isref mpbiri ) ABEAAFGAHZUDIZCJZDJZKZDALZCAMZNUEUJUDOZ
      UICAUFAEUFUFKZUIUFPUHULDUFAUGUFUFQSRTUACDAABUDUDUKUKUBUC $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( Refinement is transitive.  (Contributed by Jeff Hankins, 18-Jan-2010.)
       (Revised by Thierry Arnoux, 3-Feb-2020.) $)
    reftr $p |- ( ( A Ref B /\ B Ref C ) -> A Ref C ) $=
      ( vx vz vy cref wbr wa cuni cv wss wrex eqid refbas wi refssex adantr cvv
      wcel wceq wral sylan9eqr ad2ant2lr sstr2 reximdv ad2antll rexlimdvaa syld
      ex mpd ralrimiv wb refrel brrelexi isref syl mpbir2and ) ABGHZBCGHZIZACGH
      ZCJZAJZUAZDKZEKZLZECMZDAUBZUTUSVCBJZVDBCVKVCVKNZVCNZOABVDVKVDNZVLOUCVAVID
      AVAVFATZVFFKZLZFBMZVIUSVOVRPUTUSVOVRFABVFQUJRVAVQVIFBVAVPBTZVQIIVPVGLZECM
      ZVIUTVSWAUSVQEBCVPQUDVQWAVIPVAVSVQVTVHECVFVPVGUEUFUGUKUHUIULVAASTZVBVEVJI
      UMUSWBUTABGUNUORDEACSVDVCVNVMUPUQUR $.

    $( Adding the empty set preserves refinements.  (Contributed by Thierry
       Arnoux, 31-Jan-2020.) $)
    refun0 $p |- ( ( A Ref B /\ B =/= (/) ) -> ( A u. { (/) } ) Ref B ) $=
      ( vx vy cref wbr c0 wa cun cuni wceq cv wss wrex eqid adantr wcel syl cvv
      wb wne csn wral refbas elun refssex adantlr 0ss a1i reximdva0 elsni sseq1
      rexbidv adantl mpbird jaodan sylan2b ralrimiva refrel brrelexi p0ex unexg
      wo sylancl uniun 0ex unisn uneq2i un0 3eqtrri isref mpbir2and ) ABEFZBGUA
      ZHZAGUBZIZBEFZBJZAJZKZCLZDLZMZDBNZCVQUCZVMWAVNABVTVSVTOVSOZUDPVOWECVQWBVQ
      QVOWBAQZWBVPQZVCWEWBAVPUEVOWHWEWIVMWHWEVNDABWBUFUGVOWIHWEGWCMZDBNZVOWKWIV
      MWJDBWJVMWCBQHWCUHUIUJPWIWEWKTZVOWIWBGKZWLWBGUKWMWDWJDBWBGWCULUMRUNUOUPUQ
      URVMVRWAWFHTZVNVMVQSQZWNVMASQVPSQWOABEUSUTVAAVPSSVBVDCDVQBSVTVSVQJVTVPJZI
      VTGIVTAVPVEWPGVTGVFVGVHVTVIVJWGVKRPVL $.
  $}

  ${
    $d a x y A $.  $d a B $.  $d a x X $.
    isptfin.1 $e |- X = U. A $.
    $( The statement "is a point-finite cover."  (Contributed by Jeff Hankins,
       21-Jan-2010.) $)
    isptfin $p |- ( A e. B -> ( A e. PtFin <-> A. x e. X { y e. A | x e. y }
    e. Fin ) ) $=
      ( va cv wcel crab cfn cuni wral cptfin wceq unieq syl6eqr rabeq raleqbidv
      eleq1d df-ptfin elab2g ) AHBHIZBGHZJZKIZAUDLZMUCBCJZKIZAEMGCNDUDCOZUFUIAU
      GEUJUGCLEUDCPFQUJUEUHKUCBUDCRTSGABUAUB $.
  $}

  ${
    $d j n s x y A $.  $d j n x y J $.  $d j x y X $.  $d y Y $.
    islocfin.1 $e |- X = U. J $.
    islocfin.2 $e |- Y = U. A $.
    $( The statement "is a locally finite cover."  (Contributed by Jeff
       Hankins, 21-Jan-2010.) $)
    islocfin $p |- ( A e. ( LocFin ` J ) <-> ( J e. Top /\ X = Y /\ A. x e. X
      E. n e. J ( x e. n /\ { s e. A | ( s i^i n ) =/= (/) } e. Fin ) ) ) $=
      ( vj vy clocfin wcel ctop wceq cv cfn wa cuni cvv cfv cin c0 wne crab w3a
      wrex wral cdm cab df-locfin dmmptss elfvdm sseldi cpw wss eqimss2 sspwuni
      sylibr selpw adantr abssi topopn pwexg ssexg sylancr unieq syl6eqr eqeq1d
      3syl rexeq raleqbidv anbi12d abbidv fvmptg mpdan eleq2d elex adantl simpr
      syl6eq eqeltrrd uniexb adantrr eqeq2d rabeq eleq1d anbi2d rexbidv ralbidv
      syl elabg pm5.21nd bitrd biadan2 3anass bitr4i ) BDLUAZMZDNMZEFOZAPCPZMZG
      PXBUBUCUDZGBUEZQMZRZCDUGZAEUHZRZRWTXAXIUFWSWTXJWSLUINDJNJPZSZKPZSZOZXCXDG
      XMUEZQMZRZCXKUGZAXLUHZRZKUJZLJKCGAUKZULBDLUMUNWTWSBEXNOZXRCDUGZAEUHZRZKUJ
      ZMZXJWTWRYHBWTYHTMZWRYHOWTYHEUOZUOZUPYLTMZYJYGKYLYDXMYLMZYFYDXMYKUPZYNYDX
      NEUPYOXNEUQXMEURUSKYKUTUSVAVBWTEDMZYKTMYMDEHVCZEDVDYKTVDVJYHYLTVEVFJDYBYH
      NTLXKDOZYAYGKYRXOYDXTYFYRXLEXNYRXLDSEXKDVGHVHZVIYRXSYEAXLEYSXRCXKDVKVLVMV
      NYCVOVPVQWTYIXJBTMZYIYTWTBYHVRVSWTXAYTXIWTXARZBSZTMZYTUUAUUBDMUUCUUAEUUBD
      UUAEFUUBWTXAVTIWAWTYPXAYQVAWBUUBDVRWKBWCUSWDYGXJKBTXMBOZYDXAYFXIUUDXNFEUU
      DXNUUBFXMBVGIVHWEUUDYEXHAEUUDXRXGCDUUDXQXFXCUUDXPXEQXDGXMBWFWGWHWIWJVMWLW
      MWNWOWTXAXIWPWQ $.
  $}

  ${
    $d x y A $.
    $( A finite cover is a point-finite cover.  (Contributed by Jeff Hankins,
       21-Jan-2010.) $)
    finptfin $p |- ( A e. Fin -> A e. PtFin ) $=
      ( vx vy cfn wcel cptfin wel crab cuni wral rabfi ralrimivw isptfin mpbird
      eqid ) ADEZAFEBCGZCAHDEZBAIZJPRBSQCAKLBCADSSOMN $.
  $}

  ${
    $d p x A $.  $d p x P $.  $d p x X $.
    ptfinfin.1 $e |- X = U. A $.
    $( A point covered by a point-finite cover is only covered by finitely many
       elements.  (Contributed by Jeff Hankins, 21-Jan-2010.) $)
    ptfinfin $p |- ( ( A e. PtFin /\ P e. X )
        -> { x e. A | P e. x } e. Fin ) $=
      ( vp cptfin wcel cv crab cfn wral wi isptfin ibi wceq eleq1 eleq1d rspccv
      rabbidv syl imp ) BGHZCDHZCAIZHZABJZKHZUCFIZUEHZABJZKHZFDLZUDUHMUCUMFABGD
      ENOULUHFCDUICPZUKUGKUNUJUFABUICUEQTRSUAUB $.
  $}

  ${
    $d n s x A $.  $d n s x J $.  $d n s x X $.  $d n s x Y $.
    finlocfin.1 $e |- X = U. J $.
    finlocfin.2 $e |- Y = U. A $.
    $( A finite cover of a topological space is a locally finite cover.
       (Contributed by Jeff Hankins, 21-Jan-2010.) $)
    finlocfin $p |- ( ( J e. Top /\ A e. Fin /\ X = Y ) ->
      A e. ( LocFin ` J ) ) $=
      ( vx vn vs ctop wcel cfn wceq w3a cv cin c0 wne crab wa wrex wral clocfin
      cfv simp1 simp3 simpl1 topopn syl simpr simpl2 ssrab2 sylancl eleq2 ineq2
      wss ssfi neeq1d rabbidv eleq1d anbi12d rspcev syl12anc ralrimiva islocfin
      syl3anbrc ) BJKZALKZCDMZNZVGVIGOZHOZKZIOZVLPZQRZIASZLKZTZHBUAZGCUBABUCUDK
      VGVHVIUEVGVHVIUFVJVTGCVJVKCKZTZCBKZWAVNCPZQRZIASZLKZVTWBVGWCVGVHVIWAUGBCE
      UHUIVJWAUJWBVHWFAUPWGVGVHVIWAUKWEIAULAWFUQUMVSWAWGTHCBVLCMZVMWAVRWGVLCVKU
      NWHVQWFLWHVPWEIAWHVOWDQVLCVNUOURUSUTVAVBVCVDGAHBCDIEFVEVF $.
  $}

  ${
    $d n s x A $.  $d n s x J $.  $d n s x X $.  $d n s x Y $.
    $( A locally finite cover covers a topological space.  (Contributed by Jeff
       Hankins, 21-Jan-2010.) $)
    locfintop $p |- ( A e. ( LocFin ` J ) -> J e. Top ) $=
      ( vs vn vx clocfin cfv wcel ctop cuni wceq cv cin c0 wne crab cfn wa wrex
      eqid wral islocfin simp1bi ) ABFGHBIHBJZAJZKCLDLZHELUFMNOEAPQHRDBSCUDUACA
      DBUDUEEUDTUETUBUC $.

    locfinbas.1 $e |- X = U. J $.
    locfinbas.2 $e |- Y = U. A $.
    $( A locally finite cover must cover the base set of its corresponding
       topological space.  (Contributed by Jeff Hankins, 21-Jan-2010.) $)
    locfinbas $p |- ( A e. ( LocFin ` J ) -> X = Y ) $=
      ( vs vn vx clocfin cfv wcel ctop wceq cv cin c0 wne crab cfn wa wrex wral
      islocfin simp2bi ) ABJKLBMLCDNGOHOZLIOUFPQRIASTLUAHBUBGCUCGAHBCDIEFUDUE
      $.
  $}

  ${
    $d n s x A $.  $d n x J $.  $d n x P $.  $d x X $.
    locfinnei.1 $e |- X = U. J $.
    $( A point covered by a locally finite cover has a neighborhood which
       intersects only finitely many elements of the cover.  (Contributed by
       Jeff Hankins, 21-Jan-2010.) $)
    locfinnei $p |- ( ( A e. ( LocFin ` J ) /\ P e. X ) ->
      E. n e. J ( P e. n /\ { s e. A | ( s i^i n ) =/= (/) } e. Fin ) ) $=
      ( vx clocfin cfv wcel cv cin c0 wne crab cfn wa wrex wceq wral ctop eleq1
      cuni eqid islocfin simp3bi anbi1d rexbidv rspccva sylan ) ADIJKZHLZCLZKZF
      LUNMNOFAPQKZRZCDSZHEUAZBEKBUNKZUPRZCDSZULDUBKEAUDZTUSHACDEVCFGVCUEUFUGURV
      BHBEUMBTZUQVACDVDUOUTUPUMBUNUCUHUIUJUK $.
  $}

  ${
    $d n s x A $.  $d n s x B $.  $d n s x J $.
    $( A locally finite cover is point-finite.  (Contributed by Jeff Hankins,
       21-Jan-2010.)  (Proof shortened by Mario Carneiro, 11-Sep-2015.) $)
    lfinpfin $p |- ( A e. ( LocFin ` J ) -> A e. PtFin ) $=
      ( vx vs vn clocfin cfv wcel cptfin cv crab cfn cuni wral wa cin c0 expcom
      eqid wi wne locfinbas eleq2d biimpar locfinnei syldan wss inelcm ad2antlr
      wrex ss2rabdv ssfi syl expimpd rexlimdvw mpd ralrimiva isptfin mpbird ) A
      BFGZHZAIHCJZDJZHZDAKZLHZCAMZNVAVFCVGVAVBVGHZOZVBEJZHZVCVJPQUAZDAKZLHZOZEB
      UJZVFVAVHVBBMZHZVPVAVRVHVAVQVGVBABVQVGVQSZVGSZUBUCUDAVBEBVQDVSUEUFVIVOVFE
      BVIVKVNVFVIVKOZVEVMUGZVNVFTWAVDVLDAVKVDVLTVIVCAHVDVKVLVBVCVJUHRUIUKVNWBVF
      VMVEULRUMUNUOUPUQCDAUTVGVTURUS $.

    $( Adding a finite set preserves locally finite covers.  (Contributed by
       Thierry Arnoux, 31-Jan-2020.) $)
    lfinun $p |- ( ( A e. ( LocFin ` J ) /\ B e. Fin /\ U. B C_ U. J )
      -> ( A u. B ) e. ( LocFin ` J ) ) $=
      ( vx vn vs clocfin wcel cfn cuni w3a cun wceq cv crab wa ad2antrr adantlr
      wrex eqid cfv wss ctop cin c0 wne wral locfintop ssequn2 biimpi locfinbas
      adantl uneq1d eqtr3d uniun syl6eqr locfinnei wi simpr rabfi ad2antlr unfi
      rabun2 syl5eqel syl2anc ex anim2d reximdv mpd ralrimiva 3jca 3impa sylibr
      islocfin ) ACGUAZHZBIHZBJZCJZUBZKCUCHZVSABLZJZMZDNZENZHZFNWFUDUEUFZFWBOZI
      HZPZECSZDVSUGZKZWBVOHVPVQVTWNVPVQPZVTPZWAWDWMVPWAVQVTACUHQWPVSAJZVRLZWCWP
      VSVRLZVSWRVTWSVSMZWOVTWTVRVSUIUJULWPVSWQVRVPVSWQMVQVTACVSWQVSTZWQTUKQUMUN
      ABUOUPWPWLDVSWPWEVSHZPZWGWHFAOZIHZPZECSZWLWOXBXGVTVPXBXGVQAWEECVSFXAUQRRX
      CXFWKECXCXEWJWGWOXEWJURVTXBWOXEWJWOXEPXEWHFBOZIHZWJWOXEUSVQXIVPXEWHFBUTVA
      XEXIPWIXDXHLIWHFABVCXDXHVBVDVEVFQVGVHVIVJVKVLDWBECVSWCFXAWCTVNVM $.
  $}

  ${
    $d c o s x y C $.  $d c o s x y J $.  $d o s x y X $.
    locfincmp.1 $e |- X = U. J $.
    locfincmp.2 $e |- Y = U. C $.
    $( For a compact space, the locally finite covers are precisely the finite
       covers.  Sadly, this property does not properly characterize all compact
       spaces.  (Contributed by Jeff Hankins, 22-Jan-2010.)  (Proof shortened
       by Mario Carneiro, 11-Sep-2015.) $)
    locfincmp $p |- ( J e. Comp ->
        ( C e. ( LocFin ` J ) <-> ( C e. Fin /\ X = Y ) ) ) $=
      ( vc vs vo vx vy wcel cfn wceq wa c0 wss cv wrex wel ccmp clocfin cfv csn
      cdif cun cuni cin wne crab wral cpw locfinnei ralrimiva cmpcov2 sylan2 wi
      elfpw ciun simplrr eldifsn wex simplrl simprr inelcm syl2anc ineq1 neeq1d
      elrab sylanbrc elunii syl6eleqr ancoms adantl locfinbas ad3antrrr eleqtrd
      eleqtrrd simplr eluni2 sylib reximddv expr exlimdv 3imtr4g expimpd syl5bi
      n0 eliun ssrdv iunfi ex ssfi expcom sylan9 sylan2b rexlimdva snfi sylancl
      mpd unfi ssun1 undif1 sseqtr4i jca ctop cmptop finlocfin 3expib impbid
      syl ) BUALZABUBUCLZAMLZCDNZOZXLXMXPXLXMOZXNXOXQAPUDZUEZXRUFZMLZAXTQXNXQXS
      MLZXRMLYAXQCGRZUGZNZHRZIRZUHZPUIZHAUJZMLZIYCUKZOZGBULMUHZSZYBXMXLJITYKOIB
      SZJCUKYOXMYPJCAJRZIBCHEUMUNYKJIBCGEUOUPXQYMYBGYNYCYNLXQYCBQZYCMLZOZYMYBUQ
      YCBURXQYTOZYEYLYBUUAYEOZYSXSIYCYJUSZQZYLYBUQXQYRYSYEUTUUBJXSUUCYQXSLYQALZ
      YQPUIZOUUBYQUUCLZYQAPVAUUBUUEUUFUUGUUBUUEOZKJTZKVBYQYJLZIYCSZUUFUUGUUHUUI
      UUKKUUBUUEUUIUUKUUBUUEUUIOZOZKITZUUJIYCUUMIGTZUUNOZOZUUEYQYGUHZPUIZUUJUUB
      UUEUUIUUPVCUUQUUIUUNUUSUUBUUEUUIUUPUTUUMUUOUUNVDKRZYQYGVEVFYIUUSHYQAYFYQN
      YHUURPYFYQYGVGVHVIVJUUMUUTYDLUUNIYCSUUMUUTCYDUUMUUTDCUULUUTDLZUUBUUIUUEUV
      AUUIUUEOUUTAUGDUUTYQAVKFVLVMVNXQXOYTYEUULXMXOXLABCDEFVOVNZVPVRUUAYEUULVSV
      QIUUTYCVTWAWBWCWDKYQWHIYQYCYJWIWEWFWGWJYSYLUUCMLZUUDYBYSYLUVCIYCYJWKWLUVC
      UUDYBUUCXSWMWNWOVFWFWPWQWTPWRXSXRXAWSAAXRUFXTAXRXBAXRXCXDXTAWMWSUVBXEWLXL
      BXFLZXPXMUQBXGUVDXNXOXMABCDEFXHXIXKXJ $.
  $}

  ${
    $d C u x y z $.  $d V u x y z $.  $d X u x y z $.  $d Y u x y $.
    dissnref.c $e |- C = { u | E. x e. X u = { x } } $.
    $( Taking the union of the set of singletons recovers the initial set.
       (Contributed by Thierry Arnoux, 9-Jan-2020.) $)
    unisngl $p |- X = U. C $=
      ( vy cuni cv csn wceq wrex cab unieqi wcel wa simpl simpr eleqtrd exlimiv
      wex eqid snex eleq2 eqeq1 anbi12d spcev mpan2 impbii equcom 3bitri rexbii
      velsn r19.42v exbii rexcom4 eluniab 3bitr4ri risset 3bitr4i eqriv eqtr2i
      ) CGBHZAHZIZJZADKZBLZGZDCVGEMFVHDFHZVBNZVEOZBTZADKZVCVIJZADKVIVHNZVIDNVLV
      NADVLVIVDNZVIVCJVNVLVPVKVPBVKVIVBVDVJVEPVJVEQRSVPVDVDJZVLVDUAVKVPVQOBVDVC
      UBVEVJVPVEVQVBVDVIUCVBVDVDUDUEUFUGUHFVCULFAUIUJUKVKADKZBTVJVFOZBTVMVOVRVS
      BVJVEADUMUNVKABDUOVFBVIUPUQAVIDURUSUTVA $.

    $( The set of singletons is a refinement of any open covering of the
       discrete topology.  (Contributed by Thierry Arnoux, 9-Jan-2020.) $)
    dissnref $p |- ( ( X e. V /\ U. Y = X ) -> C Ref Y ) $=
      ( vy wcel cuni wceq wa cv wss wrex simpr simplr r19.29a cvv eqid cref wbr
      wral unisngl syl6eq simprr snssd eqsstrd simp-4r eleqtrrd eluni2 reximddv
      csn sylib abeq2i biimpi adantl ralrimiva cpw pwexg snelpwi ad2antlr ssriv
      wb eqeltrd a1i ssexd adantr isref syl mpbir2and ) EDIZFJZEKZLZCFUAUBZVMCJ
      ZKZBMZHMZNZHFOZBCUCZVOVMEVQVLVNPABCEGUDUEVOWBBCVOVSCIZLZVSAMZUMZKZWBAEWEW
      FEIZLZWHLZWFVTIZWAHFWKVTFIZWLLZLZVSWGVTWJWHWNQWOWFVTWKWMWLUFUGUHWKWFVMIWL
      HFOWKWFEVMWEWIWHQVLVNWDWIWHUIUJHWFFUKUNULWDWHAEOZVOWDWPWPBCGUOUPZUQRURVOC
      SIZVPVRWCLVDVLWRVNVLCEUSZSEDUTCWSNVLBCWSWDWHVSWSIAEWDWILZWHLVSWGWSWTWHPWI
      WGWSIWDWHWFEVAVBVEWQRVCVFVGVHBHCFSVQVMVQTVMTVIVJVK $.

    $( The set of singletons is locally finite in the discrete topology.
       (Contributed by Thierry Arnoux, 9-Jan-2020.) $)
    dissnlocfin $p |- ( X e. V -> C e. ( LocFin ` ~P X ) ) $=
      ( vz vy wcel wceq cv cin c0 wne crab cfn wa wrex csn adantl cpw ctop wral
      clocfin cfv distop eqidd snelpwi vsnid a1i nfv nfrab1 abeq2i anbi1i simpr
      wn simplr ineq1d disjsn2 eqtrd simp-4r neneqd pm2.65da nne sylib r19.29an
      nfcv sneqd an32s anasss sneq eqeq2d rspcev adantll inidm vex snnz eqnetrd
      syl6eq impbida syl5bb rabid velsn 3bitr4g eqrd snfi syl6eqel eleq2 neeq1d
      ineq2 rabbidv eleq1d anbi12d syl12anc ralrimiva cuni unipw eqcomi unisngl
      jca islocfin syl3anbrc ) EDIZEUAZUBIEEJGKZHKZIZBKZXFLZMNZBCOZPIZQZHXDRZGE
      UCCXDUDUEIEDUFXCEUGXCXNGEXCXEEIZQZXESZXDIZXEXQIZXHXQLZMNZBCOZPIZXNXOXRXCX
      EEUHTXSXPGUIUJXPYBXQSZPXPBYBYDXPBUKYABCULBYDVGXPXHCIZYAQZXHXQJZXHYBIXHYDI
      YFXHAKZSZJZAERZYAQZXPYGYEYKYAYKBCFUMUNXPYLYGXPYKYAYGXPYAYKYGXPYAQZYJYGAEY
      MYHEIZQZYJQZXHYIXQYOYJUOYPYHXEYPYHXENZUPYHXEJZYPYQXTMJYPYQQZXTYIXQLZMYSXH
      YIXQYOYJYQUQURYQYTMJYPYHXEUSTUTYSXTMXPYAYNYJYQVAVBVCYHXEVDVEVHUTVFVIVJXPY
      GQZYKYAXOYGYKXCYJYGAXEEYRYIXQXHYHXEVKVLVMVNUUAXTXQMUUAXTXQXQLXQUUAXHXQXQX
      PYGUOURXQVOVSXQMNUUAXEGVPVQUJVRWTVTWAYABCWBBXQWCWDWEXQWFWGXMXSYCQHXQXDXFX
      QJZXGXSXLYCXFXQXEWHUUBXKYBPUUBXJYABCUUBXIXTMXFXQXHWJWIWKWLWMVMWNWOGCHXDEE
      BXDWPEEWQWRABCEFWSXAXB $.
  $}

  ${
    $d s x y C $.  $d x y X $.  $d s x Y $.
    locfindis.1 $e |- Y = U. C $.
    $( The locally finite covers of a discrete space are precisely the
       point-finite covers.  (Contributed by Jeff Hankins, 22-Jan-2010.)
       (Proof shortened by Mario Carneiro, 11-Sep-2015.) $)
    locfindis $p |- ( C e. ( LocFin ` ~P X ) <-> ( C e. PtFin /\ X = Y ) ) $=
      ( vx vy vs wcel cptfin wceq wa cuni cv cin c0 wne crab cfn cvv adantl cpw
      clocfin cfv lfinpfin unipw eqcomi locfinbas ctop wrex wral simpr syl5eqel
      jca uniexg adantr eqeltrd distop syl snelpwi snidg simpll eleq2d ptfinfin
      csn biimpa syl2anc eleq2 neeq1d disjsn necon2abii syl6bbr rabbidv anbi12d
      ineq2 eleq1d rspcev syl12anc ralrimiva islocfin syl3anbrc impbii ) ABUAZU
      BUCHZAIHZBCJZKZWCWDWEAWBUDAWBBCWBLBBUEUFZDUGUMWFWBUHHZWEEMZFMZHZGMZWJNZOP
      ZGAQZRHZKZFWBUIZEBUJWCWFBSHWHWFBCSWDWEUKZWDCSHWEWDCALSDAIUNULUOUPBSUQURWS
      WFWREBWFWIBHZKZWIVDZWBHZWIXBHZWIWLHZGAQZRHZWRWTXCWFWIBUSTWTXDWFWIBUTTXAWD
      WICHZXGWDWEWTVAWFWTXHWFBCWIWSVBVEGAWICDVCVFWQXDXGKFXBWBWJXBJZWKXDWPXGWJXB
      WIVGXIWOXFRXIWNXEGAXIWNWLXBNZOPXEXIWMXJOWJXBWLVNVHXEXJOWLWIVIVJVKVLVOVMVP
      VQVREAFWBBCGWGDVSVTWA $.
  $}

  ${
    $d n s x y J $.  $d n x y K $.  $d n s x y X $.
    locfincf.1 $e |- X = U. J $.
    $( A locally finite cover in a coarser topology is locally finite in a
       finer topology.  (Contributed by Jeff Hankins, 22-Jan-2010.)  (Proof
       shortened by Mario Carneiro, 11-Sep-2015.) $)
    locfincf $p |- ( ( K e. ( TopOn ` X ) /\ J C_ K ) ->
      ( LocFin ` J ) C_ ( LocFin ` K ) ) $=
      ( vx vy vn vs cfv wcel wa clocfin cv cuni wceq wrex ad2antrr eqid adantl
      ex ctopon wss ctop cin c0 wne crab cfn topontop toponuni locfinbas eqtr3d
      wral eleq2d locfinnei wi ssrexv sylan9r ralrimiv islocfin syl3anbrc ssrdv
      sylbird ) BCUAIJZABUBZKZEALIZBLIZVFEMZVGJZVIVHJZVFVJKZBUCJZBNZVINZOFMZGMZ
      JHMVQUDUEUFHVIUGUHJKZGBPZFVNUMVKVDVMVEVJCBUIQVLCVNVOVDCVNOVEVJCBUJQZVJCVO
      OVFVIACVODVORZUKSULVLVSFVNVLVPVNJVPCJZVSVLCVNVPVTUNVJWBVRGAPZVFVSVJWBWCVI
      VPGACHDUOTVEWCVSUPVDVRGABUQSURVCUSFVIGBVNVOHVNRWAUTVATVB $.
  $}

  ${
    $d a b c d f p q s x z J $.  $d a b c d f p q s x z X $.
    comppfsc.1 $e |- X = U. J $.
    $( A space where every open cover has a point-finite subcover is compact.
       This is significant in part because it shows half of the proposition
       that if only half the generalization in the definition of
       metacompactness (and consequently paracompactness) is performed, one
       does not obtain any more spaces.  (Contributed by Jeff Hankins,
       21-Jan-2010.)  (Proof shortened by Mario Carneiro, 11-Sep-2015.) $)
    comppfsc $p |- ( J e. Top -> ( J e. Comp <->
      A. c e. ~P J ( X = U. c -> E. d e. PtFin ( d C_ c /\ X = U. d ) ) ) ) $=
      ( vs vp vz vq wcel cv cuni wceq wss wa wi wral cfn syl c0 va vb ctop ccmp
      vx vf cptfin wrex cpw elpwi w3a cin cmpcov elfpw finptfin anassrs ancom1s
      anim1i sylanb reximi2 3exp syl5 ralrimiv 0elpw 0fin mpbir2an unieq syl6eq
      elin uni0 eqeq2d rspcev a1d a1i wne wex simp2 eleq2d biimpd eluni2 syl6ib
      mpan n0 cun cmpt crn ciun simpl3 simprl elssuni syl6sseqr ralrimivw iunss
      sseldd sylibr ssequn1 sylib simpl2 uniiun uneq2d eqtr3d iunun unex dfiun3
      vex eqtr3i wf simpll1 adantr sselda unopn syl3anc eqid fmptd frn 3ad2ant1
      elpw2g mpbird sseq2 anbi1d rexbidv imbi12d rspcv mpid crab simprr syl2anc
      wb ssel2 expcom ad2antll rgenw ax-mp ad2antrr snssd unssd exlimdv ex syld
      cvv 3ad2antl3 adantrr elunii eleqtrd ptfinfin elun1 eleq2 ralrnmpt ssralv
      syl6eleqr sylc rabid2 eleq1d biimprd cfv cab rnmpt syl6sseq ssabral uneq2
      ac6sfi csn wfo wfn simprrl ffn fofi snfi sylancl sylanbrc simplrr simprrr
      dffn4 iuneq2 syl5eq eqtrd ssun2 vsnid sselii fvssunirn ssun1 unissi sstri
      unfi unssi mpbir syl6eqss sstrd uniss eqssd expr mpdd rexlimdv rexlimdvaa
      3syld com23 syl5bi pm2.61dne syl3an3 com24 ralrimdv iscmp sylibd impbid2
      baibr ) AUCJZAUDJZBCKZLZMZDKZUXHNZBUXKLZMZOZDUGUHZPZCAUIZQZUXGUXQCUXRUXHU
      XRJUXHANZUXGUXQUXHAUJUXGUXTUXJUXPUXGUXTUXJUKUXNDUXHUIRULZUHUXPUXHABDEUMUX
      NUXODUYAUGUXKUYAJUXLUXKRJZOUXNUXKUGJZUXOOZUXKUXHUNUYBUXLUXNUYDUYBUXLUXNUY
      DUYBUYCUXOUXKUOURUPUQUSUTSVAVBVCUXFUXSBUAKZLZMZBUBKZLZMZUBUYEUIZRULZUHZPZ
      UAUXRQZUXGUXFUXSUYNUAUXRUXFUYGUYEUXRJZUXSUYMUXFUYGUYPUXSUYMPZUYPUXFUYGUYE
      ANZUYQUYEAUJUXFUYGUYRUKZUYQBTBTMZUYQPUYSUYTUYMUXSTUYLJZUYTUYMVUATUYKJTRJU
      YEVDVETUYKRVIVFUYJUYTUBTUYLUYHTMZUYITBVUBUYITLTUYHTVGVJVHVKVLWBVMVNBTVOUE
      KZBJZUEVPUYSUYQUEBWCUYSVUDUYQUEUYSVUDVUCFKZJZFUYEUHZUYQUYSVUDVUCUYFJZVUGU
      YSVUDVUHUYSBUYFVUCUXFUYGUYRVQVRVSFVUCUYEVTWAUYSVUFUYQFUYEUYSVUEUYEJZVUFOZ
      OZUXSUXKGUYEVUEGKZWDZWEZWFZNZUXNOZDUGUHZUYMVUKUXSBVUOLZMZVURVUKBGUYEVUEWG
      ZGUYEVULWGZWDZVUSVUKVVABWDZBVVCVUKVVABNZVVDBMVUKVUEBNZGUYEQVVEVUKVVFGUYEV
      UKVUEAJZVVFVUKUYEAVUEUXFUYGUYRVUJWHZUYSVUIVUFWIZWNZVVGVUEALZBVUEAWJEWKSWL
      GUYEVUEBWMWOVVABWPWQVUKBVVBVVAVUKBUYFVVBUXFUYGUYRVUJWRGUYEWSVHWTXAGUYEVUM
      WGVVCVUSGUYEVUEVULXBGUYEVUMVUEVULFXEGXEXCZXDXFVHVUKVUOUXRJZUXSVUTVURPZPVU
      KVVMVUOANZVUKUYEAVUNXGVVOVUKGUYEVUMAVUNVUKVULUYEJZOUXFVVGVULAJVUMAJUXFUYG
      UYRVUJVVPXHVUKVVGVVPVVJXIVUKUYEAVULVVHXJVUEVULAXKXLVUNXMZXNUYEAVUNXOSUYSV
      VMVVOYHZVUJUXFUYGVVRUYRVUOAUCXQXPXIXRUXQVVNCVUOUXRUXHVUOMZUXJVUTUXPVURVVS
      UXIVUSBUXHVUOVGVKVVSUXOVUQDUGVVSUXLVUPUXNUXHVUOUXKXSXTYAYBYCSYDVUKVUQUYMD
      UGVUKVUQUYCUYMVUKVUQUYCUYMPVUKVUQOZUYCVUCHKZJZHUXKYEZRJZUYBUYMVVTVUCUXMJZ
      UYCVWDPVVTVUCBUXMVUKVUDVUQVUKVUCVVKBVUKVUFVVGVUCVVKJUYSVUIVUFYFUYSVUIVVGV
      UFUYRUXFVUIVVGUYGUYEAVUEYIUUAUUBVUCVUEAUUCYGEUUJXIVUKVUPUXNYFUUDUYCVWEVWD
      HUXKVUCUXMUXMXMUUEYJSVVTUYBVWDVVTUXKVWCRVVTVWBHUXKQZUXKVWCMVVTVUPVWBHVUOQ
      ZVWFVUKVUPUXNWIZVUKVWGVUQVUKVUCVUMJZGUYEQZVWGVUKVWIGUYEVUFVWIUYSVUIVUCVUE
      VULUUFYKWLVUMYTJZGUYEQVWGVWJYHVWKGUYEVVLYLVWBVWIGHUYEVUMVUNYTVVQVWAVUMVUC
      UUGUUHYMWOXIVWBHUXKVUOUUIUUKVWBHUXKUULWOUUMUUNVVTUYBUXKUYEUFKZXGZIKZVUEVW
      NVWLUUOZWDZMZIUXKQZOZUFVPZUYMVVTVWNVUMMZGUYEUHZIUXKQZUYBVWTPVVTUXKVXBIUUP
      ZNVXCVVTUXKVUOVXDVWHGIUYEVUMVUNVVQUUQUURVXBIUXKUUSWQUYBVXCVWTVXAVWQIGUXKU
      YEUFVULVWOMVUMVWPVWNVULVWOVUEUUTVKUVAYJSVVTUYBVWTUYMPVVTUYBOVWSUYMUFVVTUY
      BVWSUYMVVTUYBVWSOZOZVWLWFZVUEUVBZWDZUYLJZBVXILZMZUYMVXFVXIUYENVXIRJZVXJVX
      FVXGVXHUYEVWSVXGUYENZVVTUYBVWMVXNVWRUXKUYEVWLXOXIYKZVXFVUEUYEVUKVUIVUQVXE
      VVIYNYOYPVXFVXGRJZVXHRJVXMVXFUYBUXKVXGVWLUVCZVXPVVTUYBVWSWIVXFVWLUXKUVDZV
      XQVXFVWMVXRVVTUYBVWMVWRUVEUXKUYEVWLUVFSUXKVWLUVMWQUXKVXGVWLUVGYGVUEUVHVXG
      VXHUWDUVIVXIUYEUNUVJVXFBVXKVXFBIUXKVWPWGZVXKVXFBUXMVXSVUKVUPUXNVXEUVKVXFU
      XMIUXKVWNWGZVXSIUXKWSVXFVWRVXTVXSMVVTUYBVWMVWRUVLIUXKVWNVWPUVNSUVOUVPVXSV
      XKNVWPVXKNZIUXKQVYAIUXKVUEVWOVXKVUEVXIJVUEVXKNVXHVXIVUEVXHVXGUVQFUVRUVSVU
      EVXIWJYMVWOVXGLVXKVWLVWNUVTVXGVXIVXGVXHUWAUWBUWCUWEYLIUXKVWPVXKWMUWFUWGVX
      FVXIANZVXKBNVXFVXGVXHAVXFVXGUYEAVXOVUKUYRVUQVXEVVHYNUWHVXFVUEAVUKVVGVUQVX
      EVVJYNYOYPVYBVXKVVKBVXIAUWIEWKSUWJUYJVXLUBVXIUYLUYHVXIMUYIVXKBUYHVXIVGVKV
      LYGUWKYQYRUWLUWOYRUWPUWMYSUWNYSYQUWQUWRUWSVAUWTUXAUXGUXFUYOUAUBABEUXBUXEU
      XCUXD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Compactly generated spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c kGen $.

  $( Extend class notation with the compact generator operation. $)
  ckgen $a class kGen $.

  ${
    $d j k x $.
    $( Define the "compact generator", the functor from topological spaces to
       compactly generated spaces.  Also known as the k-ification operation.  A
       set is k-open, i.e. ` x e. ( kGen `` j ) ` , iff the preimage of ` x `
       is open in all compact Hausdorff spaces.  (Contributed by Mario
       Carneiro, 20-Mar-2015.) $)
    df-kgen $a |- kGen = ( j e. Top |-> { x e. ~P U. j | A. k e. ~P U. j
      ( ( j |`t k ) e. Comp -> ( x i^i k ) e. ( j |`t k ) ) } ) $.
  $}

  ${
    $d k x A $.  $d j k x J $.  $d j k x X $.
    $( Value of the compact generator.  (The "k" in ` kGen ` comes from the
       name "k-space" for these spaces, after the German word kompakt.)
       (Contributed by Mario Carneiro, 20-Mar-2015.) $)
    kgenval $p |- ( J e. ( TopOn ` X ) -> ( kGen ` J ) = { x e. ~P X |
      A. k e. ~P X ( ( J |`t k ) e. Comp -> ( x i^i k ) e. ( J |`t k ) ) } ) $=
      ( vj ctopon wcel cv crest co ccmp cuni cpw wral crab ctop ckgen cvv wceq
      wi cfv cin cmpt df-kgen wa unieq toponuni eqcomd sylan9eqr pweqd wb oveq1
      eleq1d eleq2d imbi12d adantl raleqbidv rabeqbidv topontop toponmax rabexg
      a1i pwexg 3syl fvmptd ) CDFUAGZECEHZBHZIJZKGZAHVHUBZVIGZTZBVGLZMZNZAVOOZC
      VHIJZKGZVKVRGZTZBDMZNZAWBOZPQRQEPVQUCSVFAEBUDVBVFVGCSZUEZVPWCAVOWBWFVNDWE
      VFVNCLZDVGCUFVFDWGDCUGUHUIUJZWFVMWABVOWBWHWEVMWAUKVFWEVJVSVLVTWEVIVRKVGCV
      HIULZUMWEVIVRVKWIUNUOUPUQURDCUSVFDCGWBRGWDRGDCUTDCVCWCAWBRVAVDVE $.

    $( Value of the compact generator.  (Contributed by Mario Carneiro,
       20-Mar-2015.) $)
    elkgen $p |- ( J e. ( TopOn ` X ) -> ( A e. ( kGen ` J ) <-> ( A C_ X /\
    A. k e. ~P X ( ( J |`t k ) e. Comp -> ( A i^i k ) e. ( J |`t k ) ) ) ) ) $=
      ( vx ctopon cfv wcel ckgen cv crest co ccmp cin wi cpw wral crab wss wa
      kgenval eleq2d wceq ineq1 eleq1d imbi2d ralbidv elrab toponmax elpw2g syl
      wb anbi1d syl5bb bitrd ) CDFGHZACIGZHACBJZKLZMHZEJZURNZUSHZOZBDPZQZEVERZH
      ZADSZUTAURNZUSHZOZBVEQZTZUPUQVGAEBCDUAUBVHAVEHZVMTUPVNVFVMEAVEVAAUCZVDVLB
      VEVPVCVKUTVPVBVJUSVAAURUDUEUFUGUHUPVOVIVMUPDCHVOVIULDCUIADCUJUKUMUNUO $.
  $}

  ${
    $d y A $.  $d k x y J $.  $d y K $.  $d j k x y X $.
    $( Property of the open sets in the compact generator.  (Contributed by
       Mario Carneiro, 20-Mar-2015.) $)
    kgeni $p |- ( ( A e. ( kGen ` J ) /\ ( J |`t K ) e. Comp ) ->
      ( A i^i K ) e. ( J |`t K ) ) $=
      ( vy vj vx ckgen cfv wcel crest co ccmp wa cin cuni wceq cv wi ctop cvv
      inass in32 eqtr3i wss cpw ctopon cdm df-kgen dmmptss elfvdm sseldi adantr
      wral crab toptopon sylib simpl elkgen biimpa syl2anc simpld ineq1d syl5eq
      eqid df-ss inss2 wb cmptop adantl restrcl simprd inex1g elpwg 3syl mpbiri
      syl restin simpr eqeltrrd oveq2 eleq1d ineq2 eleq12d rspcv syl3c eleqtrrd
      imbi12d ) ABGHIZBCJKZLIZMZACNZBCBOZNZJKZWIWKAWNNZWLWOWKWPAWMNZCNZWLWLWMNW
      PWRACWMUAACWMUBUCWKWQACWKAWMUDZWQAPWKWSBDQZJKZLIZAWTNZXAIZRZDWMUEZUMZWKBW
      MUFHIZWHWSXGMZWKBSIZXHWHXJWJWHGUGSBESEQZWTJKZLIFQWTNXLIRDXKOUEZUMFXMUNGFE
      DUHUIABGUJUKULZBWMWMVDZUOUPWHWJUQXHWHXIADBWMURUSUTZVAAWMVEUPVBVCWKWNXFIZX
      GWOLIZWPWOIZWKXQWNWMUDZCWMVFWKCTIZWNTIXQXTVGWKWISIZYAWJYBWHWIVHVIYBBTIYAC
      BVJVKVPZCWMTVLWNWMTVMVNVOWKWSXGXPVKWKWIWOLWKXJYAWIWOPXNYCCBSTWMXOVQUTZWHW
      JVRVSXEXRXSRDWNXFWTWNPZXBXRXDXSYEXAWOLWTWNBJVTZWAYEXCWPXAWOWTWNAWBYFWCWGW
      DWEVSYDWF $.

    $( The compact generator generates a topology.  (Contributed by Mario
       Carneiro, 22-Aug-2015.) $)
    kgentopon $p |- ( J e. ( TopOn ` X ) -> ( kGen ` J ) e. ( TopOn ` X ) ) $=
      ( vx vy vk cfv wcel cv wss wi cin wral wa syl2anc ralrimiva elkgen adantr
      expr wb mpbir2and ctopon ckgen ctop cuni wceq wal crest co ccmp cpw uniss
      crab kgenval ssrab2 syl6eqss sspwuni sylib sylan9ssr iunin2 uniiun ineq2i
      ciun incom 3eqtr2i cmptop ad2antll simplr sselda simplrr syl5eqelr iunopn
      kgeni ex alrimiv inss1 elssuni ad2antrl ssid a1i sseqin2 resttopon sylan2
      elpwi toponmax eqeltrd eqssd sseqtr4d syl5ss inindir simplrl simprr inopn
      syl syl3anc syl5eqel ralrimivva cvv fvex istopg ax-mp sylanbrc istopon )
      ABUAFZGZAUBFZUCGZBXEUDZUEZXEXCGXDCHZXEIZXIUDZXEGZJZCUFZXIDHZKZXEGZDXELCXE
      LZXFXDXMCXDXJXLXDXJMZXLXKBIZAEHZUGUHZUIGZXKYAKZYBGZJZEBUJZLZXJXDXKXGBXIXE
      UKXDXEYGIXGBIXDXEYCXIYAKZYBGZJEYGLZCYGULYGCEABUMYKCYGUNUOXEBUPUQZURXSYFEY
      GXSYAYGGZYCYEXSYMYCMZMZYDDXIYAXOKZVBZYBYQYADXIXOVBZKYAXKKYDDXIYAXOUSXKYRY
      ADXIUTVAYAXKVCVDYOYBUCGZYPYBGZDXILYQYBGYCYSXSYMYBVEZVFYOYTDXIYOXOXIGZMZYP
      XOYAKZYBXOYAVCUUCXOXEGZYCUUDYBGZYOXIXEXOXDXJYNVGVHXSYMYCUUBVIXOAYAVLZNVJO
      DXIYPYBVKNVJROXDXLXTYHMSXJXKEABPQTVMVNXDXQCDXEXEXDXIXEGZUUEMZMZXQXPBIZYCX
      PYAKZYBGZJZEYGLZUUJXPXIBXIXOVOUUJXIXGBUUHXIXGIXDUUEXIXEVPVQXDXHUUIXDBXGXD
      BXEGZBXGIXDUUPBBIZYCBYAKZYBGZJZEYGLUUQXDBVRVSXDUUTEYGXDYMYCUUSXDYNMZUURYA
      YBUVAYABIZUURYAUEYMUVBXDYCYABWCZVQYABVTUQUVAYBYAUAFGZYAYBGYNXDUVBUVDYMUVB
      YCUVCQYAABWAWBYAYBWDWMWEROBEABPTBXEVPWMYLWFZQWGWHUUJUUNEYGUUJYMYCUUMUUJYN
      MZUULYIUUDKZYBXIXOYAWIUVFYSYJUUFUVGYBGYCYSUUJYMUUAVFUVFUUHYCYJXDUUHUUEYNW
      JUUJYMYCWKZXIAYAVLNUVFUUEYCUUFXDUUHUUEYNVIUVHUUGNYIUUDYBWLWNWOROXDXQUUKUU
      OMSUUIXPEABPQTWPXEWQGXFXNXRMSAUBWRCDWQXEWSWTXAUVEBXEXBXA $.
  $}

  ${
    kgenuni.1 $e |- X = U. J $.
    $( The base set of the compact generator is the same as the original
       topology.  (Contributed by Mario Carneiro, 20-Mar-2015.) $)
    kgenuni $p |- ( J e. Top -> X = U. ( kGen ` J ) ) $=
      ( ctop wcel ckgen cfv ctopon cuni wceq toptopon kgentopon sylbi toponuni
      syl ) ADEZAFGZBHGZEZBQIJPARESABCKABLMBQNO $.
  $}

  ${
    $d j k x J $.  $d x K $.
    $( The compact generator generates a topology.  (Contributed by Mario
       Carneiro, 20-Mar-2015.) $)
    kgenftop $p |- ( J e. Top -> ( kGen ` J ) e. Top ) $=
      ( ctop wcel ckgen cfv cuni ctopon eqid toptopon kgentopon sylbi topontop
      syl ) ABCZADEZAFZGEZCZOBCNAQCRAPPHIAPJKPOLM $.

    $( The compact generator is a function on topologies.  (Contributed by
       Mario Carneiro, 20-Mar-2015.) $)
    kgenf $p |- kGen : Top --> Top $=
      ( vj vx vk ctop ckgen wf wtru cv crest co ccmp wcel cin wi cuni wral crab
      cpw cvv a1i wa vuniex pwex rabex cmpt wceq df-kgen kgenftop adantl fmpt2d
      cfv trud ) DDEFGABDAHZCHZIJZKLBHZUNMUOLNCUMOZRZPZBURQZDESUTSLGUMDLUAUSBUR
      UQAUBUCUDTEADUTUEUFGBACUGTUPDLUPEUKDLGUPUHUIUJUL $.

    $( A compactly generated space is a topology.  (Note: henceforth we will
       use the idiom " ` J e. ran kGen ` " to denote " ` J ` is compactly
       generated", since as we will show a space is compactly generated iff it
       is in the range of the compact generator.)  (Contributed by Mario
       Carneiro, 20-Mar-2015.) $)
    kgentop $p |- ( J e. ran kGen -> J e. Top ) $=
      ( ckgen crn ctop wf wss kgenf frn ax-mp sseli ) BCZDADDBEKDFGDDBHIJ $.

    $( The compact generator generates a finer topology than the original.
       (Contributed by Mario Carneiro, 20-Mar-2015.) $)
    kgenss $p |- ( J e. Top -> J C_ ( kGen ` J ) ) $=
      ( vx vk ctop wcel ckgen cfv cv cuni wss crest co ccmp cin wi wral elssuni
      cpw wa a1i elrestr 3expa an32s a1d ralrimiva ex jcad ctopon eqid toptopon
      wb elkgen sylbi sylibrd ssrdv ) ADEZBAAFGZUPBHZAEZURAIZJZACHZKLZMEZURVBNV
      CEZOZCUTRZPZSZURUQEZUPUSVAVHUSVAOUPURAQTUPUSVHUPUSSZVFCVGVKVBVGEZSVEVDUPV
      LUSVEUPVLUSVEURVBADVGUAUBUCUDUEUFUGUPAUTUHGEVJVIUKAUTUTUIUJURCAUTULUMUNUO
      $.

    $( The compact generator generates another Hausdorff topology given a
       Hausdorff topology to start from.  (Contributed by Mario Carneiro,
       21-Mar-2015.) $)
    kgenhaus $p |- ( J e. Haus -> ( kGen ` J ) e. Haus ) $=
      ( cha wcel ckgen cfv cuni ctopon wss ctop haustop eqid toptopon kgentopon
      sylib syl kgenss sshaus mpd3an23 ) ABCZADEZAFZGEZCZATHZTBCSAUBCZUCSAICZUE
      AJZAUAUAKZLNAUAMOSUFUDUGAPOATUAUHQR $.

    $( The compact generator topology is the same as the original topology on
       compact subspaces.  (Contributed by Mario Carneiro, 20-Mar-2015.) $)
    kgencmp $p |- ( ( J e. Top /\ ( J |`t K ) e. Comp )
      -> ( J |`t K ) = ( ( kGen ` J ) |`t K ) ) $=
      ( vx ctop wcel crest co ccmp ckgen cfv wss kgenftop adantr kgenss syl2anc
      wa ssrest cv cvv syl cin cmpt crn cmptop adantl restrcl simprd restval wf
      wceq simpr simplr kgeni eqid fmptd frn eqsstrd eqssd ) ADEZABFGZHEZPZUTAI
      JZBFGZVBVCDEZAVCKZUTVDKUSVEVAALMZUSVFVAANMBAVCDQOVBVDCVCCRZBUAZUBZUCZUTVB
      VEBSEZVDVKUJVGVBUTDEZVLVAVMUSUTUDUEVMASEVLBAUFUGTCBVCDSUHOVBVCUTVJUIVKUTK
      VBCVCVIUTVJVBVHVCEZPVNVAVIUTEVBVNUKUSVAVNULVHABUMOVJUNUOVCUTVJUPTUQUR $.

    $( The compact generator topology has the same compact sets as the original
       topology.  (Contributed by Mario Carneiro, 20-Mar-2015.) $)
    kgencmp2 $p |- ( J e. Top -> ( ( J |`t K ) e. Comp <->
        ( ( kGen ` J ) |`t K ) e. Comp ) ) $=
      ( ctop wcel crest co ccmp cfv wa cuni ctopon wss cvv sylan2 eqid cin wceq
      simpr adantr restuni2 kgencmp eqeltrrd cmptop restrcl simprd syl toptopon
      ckgen resttop sylib kgenuni ineq2d kgenftop syl2an 3eqtr3d fveq2d eleqtrd
      kgenss ssrest syl2anc sscmp syl3anc impbida ) ACDZABEFZGDZAUHHZBEFZGDZVDV
      FIVEVHGABUAVDVFRUBVDVIIZVEVHJZKHZDVIVEVHLZVFVJVEVEJZKHZVLVJVECDZVEVODVIVD
      BMDZVPVIVHCDZVQVHUCVRVGMDVQBVGUDUEUFZBAMUINVEVNVNOUGUJVJVNVKKVJBAJZPZBVGJ
      ZPZVNVKVJVTWBBVDVTWBQVIAVTVTOZUKSULVIVDVQWAVNQVSBAMVTWDTNVDVGCDZVQWCVKQVI
      AUMZVSBVGMWBWBOTUNUOUPUQVDVIRVJWEAVGLZVMVDWEVIWFSVDWGVIAURSBAVGCUSUTVEVHV
      KVKOVAVBVC $.

    $( The compact generator is idempotent on compactly generated spaces.
       (Contributed by Mario Carneiro, 20-Mar-2015.) $)
    kgenidm $p |- ( J e. ran kGen -> ( kGen ` J ) = J ) $=
      ( vj vx vk ckgen wcel cfv cv wceq ctop wss wb wa crest co kgentopon sylbi
      ccmp syl ad2ant2rl crn wrex wf wfn kgenf ffn fvelrnb mp2b cuni cin wi cpw
      wral ctopon toptopon toponss sylan simplr kgencmp2 biimpa syl2anc kgencmp
      eqid kgeni eleqtrrd ralrimiva simpl sylib elkgen mpbir2and ex ssrdv fveq2
      expr id sseq12d syl5ibcom rexlimiv kgentop kgenss eqssd ) AEUAFZAEGZAWBBH
      ZEGZAIZBJUBZWCAKZJJEUCEJUDWBWGLUEJJEUFBJAEUGUHWFWHBJWDJFZWEEGZWEKWFWHWICW
      JWEWICHZWJFZWKWEFZWIWLMZWMWKWDUIZKZWDDHZNOZRFZWKWQUJZWRFZUKZDWOULZUMZWIWJ
      WOUNGZFZWLWPWIWEXEFZXFWIWDXEFZXGWDWOWOVCUOZWDWOPQWEWOPSWKWJWOUPUQWNXBDXCW
      NWQXCFZWSXAWNXJWSMZMZWTWEWQNOZWRXLWLXMRFZWTXMFWIWLXKURWIWSXNWLXJWIWSXNWDW
      QUSUTTWKWEWQVDVAWIWSWRXMIWLXJWDWQVBTVEVNVFWNXHWMWPXDMLWNWIXHWIWLVGXIVHWKD
      WDWOVISVJVKVLWFWJWCWEAWEAEVMWFVOVPVQVRQWBAJFAWCKAVSAVTSWA $.

    $( A space is compactly generated iff it contains its image under the
       compact generator.  (Contributed by Mario Carneiro, 20-Mar-2015.) $)
    iskgen2 $p |- ( J e. ran kGen <-> ( J e. Top /\ ( kGen ` J ) C_ J ) ) $=
      ( ckgen crn wcel ctop cfv wss wa kgentop wceq kgenidm eqimss simpr kgenss
      syl jca adantr eqssd wfn wf kgenf ffn ax-mp fnfvelrn mpan eqeltrrd impbii
      ) ABCZDZAEDZABFZAGZHZUIUJULAIUIUKAJULAKUKALOPUMUKAUHUMUKAUJULMUJAUKGULANQ
      RUJUKUHDZULBESZUJUNEEBTUOUAEEBUBUCEABUDUEQUFUG $.
  $}

  ${
    $d k u x z J $.  $d k u x ph $.  $d k z X $.
    iskgen3.1 $e |- X = U. J $.
    $( Derive the usual definition of "compactly generated".  A topology is
       compactly generated if every subset of ` X ` that is open in every
       compact subset is open.  (Contributed by Mario Carneiro,
       20-Mar-2015.) $)
    iskgen3 $p |- ( J e. ran kGen <-> ( J e. Top /\ A. x e. ~P X ( A. k e. ~P X
      ( ( J |`t k ) e. Comp -> ( x i^i k ) e. ( J |`t k ) ) -> x e. J ) ) ) $=
      ( ckgen crn wcel ctop cfv wss wa cv crest co ccmp cin wi wral wal iskgen2
      cpw ctopon wb toptopon elkgen sylbi vex elpw anbi1i syl6bbr imbi1d impexp
      syl6bb albidv dfss2 df-ral 3bitr4g pm5.32i bitri ) CFGHCIHZCFJZCKZLVACBMZ
      NOZPHAMZVDQVEHRBDUBZSZVFCHZRZAVGSZLCUAVAVCVKVAVFVBHZVIRZATVFVGHZVJRZATVCV
      KVAVMVOAVAVMVNVHLZVIRVOVAVLVPVIVAVLVFDKZVHLZVPVACDUCJHVLVRUDCDEUEVFBCDUFU
      GVNVQVHVFDAUHUIUJUKULVNVHVIUMUNUOAVBCUPVJAVGUQURUSUT $.

    llycmpkgen2.2 $e |- ( ph -> J e. Top ) $.
    llycmpkgen2.3 $e |- ( ( ph /\ x e. X ) ->
      E. k e. ( ( nei ` J ) ` { x } ) ( J |`t k ) e. Comp ) $.
    $( A locally compact space is compactly generated.  (This variant of
       ~ llycmpkgen uses the weaker definition of locally compact, "every point
       has a compact neighborhood", instead of "every point has a local base of
       compact neighborhoods".)  (Contributed by Mario Carneiro,
       21-Mar-2015.) $)
    llycmpkgen2 $p |- ( ph -> J e. ran kGen ) $=
      ( vz wcel cfv wss cv wa wceq syl cdif cin syl2anc wb ctop ckgen wrex wral
      vu crn crest co ccmp csn cnei cuni elssuni adantl kgenuni adantr sseqtr4d
      sselda adantlr syldan ad3antrrr difss ntropn sylancl simprl neii1 syl3anc
      cnt inopn inss1 simplr ntrss2 snssd neiint mpbid snss sylibr sseldd elind
      cun vex simpllr simprr kgeni cvv resttop restuni syl5sseq eqid isopn3 a1i
      inss2 restntr eqtr3d eleqtrd sseldi undif3 incom difin eqtri syl5ss sylib
      difeq2i ssequn1 difeq1d syl5eq fveq2d sslin difss2d mpbird inssdif0 sstrd
      c0 reldisj eleq2 sseq1 anbi12d rspcev syl12anc rexlimddv ralrimiva eltop2
      ex sylibrd ssrdv iskgen2 sylanbrc ) ADUAJZDUBKZDLDUBUFJGAUEYIDAUEMZYIJZBM
      ZIMZJZYMYJLZNZIDUCZBYJUDZYJDJZAYKYRAYKNZYQBYJYTYLYJJZNZDCMZUGUHZUIJZYQCYL
      UJZDUKKKZYTUUAYLEJZUUECUUGUCZYTYJEYLYTYJYIULZEYKYJUUJLAYJYIUMUNAEUUJOZYKA
      YHUUKGDEFUOPUPUQURZAUUHUUIYKHUSUTUUBUUCUUGJZUUENZNZEUUCYJQZQZDVHKZKZUUCUU
      RKZRZDJZYLUVAJZUVAYJLZYQUUOYHUUSDJZUUTDJZUVBAYHYKUUAUUNGVAZUUOYHUUQELZUVE
      UVGEUUPVBZUUQDEFVCVDUUOYHUUCELZUVFUVGUUOYHUUMUVJUVGUUBUUMUUEVEZUUFDUUCEFV
      FSZUUCDEFVCSUUSUUTDVIVGUUOUUSUUTYLUUOYLYJUUCRZEUUCQVTZUURKZUUSUUOUVOUUCRZ
      UVOYLUVOUUCVJUUOYLUVMUVPUUOYJUUCYLYTUUAUUNVKUUOUUTUUCYLUUOYHUVJUUTUUCLZUV
      GUVLUUCDEFVLSZUUOUUFUUTLZYLUUTJUUOUUMUVSUVKUUOYHUUFELUVJUUMUVSTUVGUUOYLEU
      UBUUHUUNUULUPVMUVLUUFDUUCEFVNVGVOYLUUTBWAVPVQZVRVSUUOUVMUUDVHKKZUVMUVPUUO
      UVMUUDJZUWAUVMOZUUOYKUUEUWBAYKUUAUUNWBUUBUUMUUEWCYJDUUCWDSUUOUUDUAJZUVMUU
      DULZLUWBUWCTUUOYHUUCWEJUWDUVGCWAUUCDWEWFVDUUOUUCUVMUWEYJUUCWLZUUOYHUVJUUC
      UWEOUVGUVLUUCDEFWGSWHUVMUUDUWEUWEWIWJSVOUUOYHUVJUVMUUCLZUWAUVPOUVGUVLUWGU
      UOUWFWKUVMDUUDEUUCFUUDWIWMVGWNWOWPUUOUVNUUQUURUUOUVNUVMEVTZUUPQZUUQUVNUWH
      UUCUVMQZQUWIUVMEUUCWQUWJUUPUWHUWJUUCUUCYJRZQUUPUVMUWKUUCYJUUCWRXCUUCYJWSW
      TXCWTUUOUWHEUUPUUOUVMELUWHEOUUOUVMUUCEUWFUVLXAUVMEXDXBXEXFXGWOUVTVSUUOUVA
      UUSUUCRZYJUUOUVQUVAUWLLUVRUUTUUCUUSXHPUUOUUSUUPRXMOZUWLYJLUUOUWMUUSUUQLZU
      UOYHUVHUWNUVGUVIUUQDEFVLVDZUUOUUSELUWMUWNTUUOUUSEUUPUWOXIUUSUUPEXNPXJUUSU
      UCYJXKVQXLYPUVCUVDNIUVADYMUVAOYNUVCYOUVDYMUVAYLXOYMUVAYJXPXQXRXSXTYAYCAYH
      YSYRTGBIYJDYBPYDYEDYFYG $.
  $}

  ${
    $d j k n s u v w A $.  $d j k n s u v w F $.  $d f j k n s u v w x y J $.
    $d j k n s u w ph $.
    $( A compact space is compactly generated.  (Contributed by Mario Carneiro,
       21-Mar-2015.) $)
    cmpkgen $p |- ( J e. Comp -> J e. ran kGen ) $=
      ( vx vk ccmp wcel cuni eqid cmptop cv wa csn cnei cfv crest wrex ctop wss
      co syl wceq adantr topopn simpr snssd opnneiss syl3anc restid simpl oveq2
      eqeltrd eleq1d rspcev syl2anc llycmpkgen2 ) ADEZBCAAFZUPGZAHZUOBIZUPEZJZU
      PUSKZALMMZEZAUPNRZDEZACIZNRZDEZCVCOVAAPEZUPAEZVBUPQVDUOVJUTURUAZVAVJVKVLA
      UPUQUBSVAUSUPUOUTUCUDVBAUPUEUFVAVEADVAVJVEATVLAPUPUQUGSUOUTUHUJVIVFCUPVCV
      GUPTVHVEDVGUPANUIUKULUMUN $.

    $( A locally compact space is compactly generated.  (Contributed by Mario
       Carneiro, 21-Mar-2015.) $)
    llycmpkgen $p |- ( J e. N-Locally Comp -> J e. ran kGen ) $=
      ( vx vk ccmp cnlly wcel cuni eqid nllytop cv wa wss crest co csn cnei cfv
      wrex syl simpr simpl ctop topopn adantr nllyi syl3anc reximi llycmpkgen2
      ) ADEFZBCAAGZUJHZDAIZUIBJZUJFZKZCJZUJLZAUPMNDFZKZCUMOAPQQZRZURCUTRUOUIUJA
      FZUNVAUIUNUAUIVBUNUIAUBFVBULAUJUKUCSUDUIUNTCDUMUJAUEUFUSURCUTUQURTUGSUH
      $.

    ${
      1stckgen.1 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
      1stckgen.2 $e |- ( ph -> F : NN --> X ) $.
      1stckgen.3 $e |- ( ph -> F ( ~~>t ` J ) A ) $.
      $( The one-point compactification of ` NN ` is compact.  (Contributed by
         Mario Carneiro, 21-Mar-2015.) $)
      1stckgenlem $p |- ( ph -> ( J |`t ( ran F u. { A } ) ) e. Comp ) $=
        ( vu vn wcel cv cuni wss cfn wa cfv syl2anc syl cn vv vw vk crn csn cun
        vj vs crest co ccmp cpw cin wrex wi wral simprr ssun2 wb ctopon clm wbr
        lmcl snssg mpbiri adantr sseldd eluni2 sylib nnuz 1zzd ad2antrr simplrl
        cuz c1 elpwid simprl lmcvg cfz cima imassrn ssun1 sstri syl5ss ctop frn
        id wf resttopon topontop cres wfo fzfid wfun cdm ffun elfznn ssriv wceq
        syl5sseqr fores fofi pwfi restsspw ssfi sylancl fincmp toponuni sseqtrd
        fdm elind eqid cmpsub mpbid r19.21bi syl5 impr inss1 sseldi snssd unssd
        simprll vex elpw2 inss2 snfi unfi wfn ffn ad3antrrr simprrr sylan elun2
        sylibr anassrs ad2antlr cz nnz ralrimiva rexlimddv fveq2 eleq1d rspccva
        adantlr elnnuz anbi1i elfzuzb bitr4i funimass4 sylan2b wo uztric syl2an
        elun1 mpjaodan fnfvrnss uniun unisn uneq2i eqtri syl6sseqr unieq sseq2d
        rspcev expr mpbird ) ADCUDZBUEZUFZUIUJUKKZUVIILZMZNZUVIUALZMZNZUAUVKULZ
        OUMZUNZUOZIDULZUPZAUVTIUWAAUVKUWAKZUVMUVSAUWCUVMPZPZBUBLZKZUVSUBUVKUWEB
        UVLKUWGUBUVKUNUWEUVIUVLBAUWCUVMUQABUVIKZUWDAUWHUVHUVINZUVHUVGURABEKZUWH
        UWIUSADEUTQKZCBDVAQVBZUWJFHBCDEVCRZBUVIEVDSVEVFVGUBBUVKVHVIUWEUWFUVKKZU
        WGPZPZUCLZCQZUWFKZUCUGLZVNQZUPZUVSUGTUWPBUWFUGUCCDVOTVJUWEUWNUWGUQUWPVK
        AUWLUWDUWOHVLUWPUVKDUWFUWPUVKDAUWCUVMUWOVMVPUWEUWNUWGVQVGVRUWEUWOUWTTKZ
        UXBPZUVSUWEUWOUXDPZPZCVOUWTVSUJZVTZUHLZMZNZUVSUHUVRUWEUXKUHUVRUNZUXEAUW
        CUVMUXLUVMUXHUVLNZAUWCPUXLUVMUXHUVIUVLUXHUVGUVICUXGWAZUVGUVHWBWCUVMWGWD
        AUXMUXLUOZIUWAADUXHUIUJZUKKZUXOIUWAUPZAUXPWEOUMKUXQAWEOUXPAUXPUXHUTQKZU
        XPWEKAUWKUXHENUXSFAUXHUVGEUXNATECWHZUVGENGTECWFSZWDZUXHDEWIRUXHUXPWJSAU
        XHULZOKZUXPUYCNUXPOKAUXHOKZUYDAUXGOKUXGUXHCUXGWKZWLZUYEAVOUWTWMACWNZUXG
        CWOZNZUYGAUXTUYHGTECWPSZATUXGUYIJUXGTJLZUWTWQWRAUXTUYITWSGTECXJSWTZUXGC
        XARUXGUXHUYFXBRUXHXCVIUXHDXDUYCUXPXEXFXKUXPXGSADWEKZUXHDMZNUXQUXRUSAUWK
        UYNFEDWJSZAUXHEUYOUYBAUWKEUYOWSFEDXHSZXIUXHDUYOIUHUYOXLZXMRXNXOXPXQVFUX
        FUXIUVRKZUXKPZPZUXIUWFUEZUFZUVRKUVIVUCMZNZUVSVUAUVQOVUCVUAVUCUVKNVUCUVQ
        KVUAUXIVUBUVKVUAUXIUVKVUAUVRUVQUXIUVQOXRUXFUYSUXKVQZXSVPVUAUWFUVKUXFUWN
        UYTUWEUWNUWGUXDYBVFXTYAVUCUVKIYCYDYNVUAUXIOKVUBOKVUCOKVUAUVROUXIUVQOYEV
        UFXSUWFYFUXIVUBYGXFXKVUAUVIUXJUWFUFZVUDVUAUVGUVHVUGVUACTYHZUYLCQZVUGKZJ
        TUPUVGVUGNAVUHUWDUXEUYTAUXTVUHGTECYISYJVUAVUJJTVUAUYLTKZPUYLUXAKZVUJUWT
        UYLVNQKZVUAVULVUJVUKVUAVULPVUIUWFKZVUJVUAUXBVULVUNUXFUXBUYTUWEUWOUXCUXB
        YKVFUWSVUNUCUYLUXAUWQUYLWSUWRVUIUWFUWQUYLCUUAUUBUUCYLVUIUWFUXJYMSUUDVUA
        VUKVUMVUJVUKVUMPZVUAUYLUXGKZVUJVUOUYLVOVNQKZVUMPVUPVUKVUQVUMUYLUUEUUFUY
        LVOUWTUUGUUHVUAVUPPVUIUXJKZVUJVUAVURJUXGVUAUXKVURJUXGUPZUXFUYSUXKUQAUXK
        VUSUSZUWDUXEUYTAUYHUYJVUTUYKUYMJUXGUXJCUUIRYJXNXOVUIUXJUWFUUNSUUJYOVUAU
        XCVUKVULVUMUUKZUXEUXCUWEUYTUWOUXCUXBVQYPUXCUWTYQKUYLYQKVVAVUKUWTYRUYLYR
        UWTUYLUULUUMYLUUOYSJTVUGCUUPRVUABVUGUXEBVUGKZUWEUYTUWGVVBUWNUXDBUWFUXJY
        MYPYPXTYAVUDUXJVUBMZUFVUGUXIVUBUUQVVCUWFUXJUWFUBYCUURUUSUUTUVAUVPVUEUAV
        UCUVRUVNVUCWSUVOVUDUVIUVNVUCUVBUVCUVDRYTYOYTYTUVEYSAUYNUVIUYONUVJUWBUSU
        YPAUVIEUYOAUVGUVHEUYAABEUWMXTYAUYQXIUVIDUYOIUAUYRXMRUVF $.
    $}

    $( A first-countable space is compactly generated.  (Contributed by Mario
       Carneiro, 21-Mar-2015.) $)
    1stckgen $p |- ( J e. 1stc -> J e. ran kGen ) $=
      ( vx vy vf wcel cfv wss cv wa cuni cdif cn wf wb adantr sylib syl2anc cvv
      eqid sylancl vk c1stc ctop ckgen crn 1stctop ccld ccl clm difss 1stcelcls
      wbr wex mpan2 ctopon toptopon simprr lmcl csn cun crest co nnuz rnex snex
      c1 vex unex resttop 1zzd a1i ssun2 mpbir wfn ffn ad2antrl dffn3 ssun1 fss
      snss lmss mpbid ffvelrnda simprl eldifbd cin difin wceq frn difss2d snssd
      eldifd unssd restuni difeq1d incom ccmp simplr 1stckgenlem kgeni syl5eqel
      syl5eqr opncld eqeltrd lmcld ex exlimdv sylbid ssrdv iscld4 mpbird adantl
      elssuni kgenuni syl sseqtr4d isopn2 iskgen2 sylanbrc ) AUBEZAUCEZAUDFZAGA
      UDUEEAUFZXTBYBAXTBHZYBEZYDAEZXTYEIZYFAJZYDKZAUGFEZYGYJYIAUHFFZYIGZYGCYKYI
      YGCHZYKEZLYIDHZMZYOYMAUIFULZIZDUMZYMYIEZXTYNYSNZYEXTYIYHGZUUAYHYDUJZYMYID
      AYHYHSZUKUNOYGYRYTDYGYRYTYGYRIZYMYHYDUUEAYHUOFEZYQYMYHEUUEYAUUFYGYAYRXTYA
      YEYCOZOZAYHUUDUPPZYGYPYQUQZYMYOAYHURQZUUEYMYOUEZYMUSZUTZYDUUEYMUUNYDKZUAY
      OAUUNVAVBZVFUUPJZLVCUUEUUPUCEZUUPUUQUOFEUUEYAUUNREZUURUUHUULUUMYODVGVDYMV
      EVHZUUNARVITZUUPUUQUUQSZUPPUUEVJZUUEYQYOYMUUPUIFULUUJUUEYMYOAUUPVFRUUNLUU
      PSVCUUSUUEUUTVKUUHYMUUNEZUUEUVDUUMUUNGUUMUULVLYMUUNCVGVTVMVKUVCUUELUULYOM
      ZUULUUNGLUUNYOMUUEYOLVNZUVEYPUVFYGYQLYIYOVOVPLYOVQPUULUUMVRLUULUUNYOVSTZW
      AWBUUEUAHZLEIZUVHYOFZUUNYDUUELUUNUVHYOUVGWCUVIUVJYHYDUUELYIUVHYOYGYPYQWDZ
      WCWEWLUUEUUOUUQUUNYDWFZKZUUPUGFZUUEUUOUUNUVLKUVMUUNYDWGUUEUUNUUQUVLUUEYAU
      UNYHGUUNUUQWHUUHUUEUULUUMYHUUEUULYHYDYPUULYIGYGYQLYIYOWIVPWJUUEYMYHUUKWKW
      MUUNAYHUUDWNQWOXBUUEUURUVLUUPEUVMUVNEUVAUUEUVLYDUUNWFZUUPUUNYDWPUUEYEUUPW
      QEUVOUUPEXTYEYRWRUUEYMYOAYHUUIUUEYPUUBLYHYOMUVKUUCLYIYHYOVSTUUJWSYDAUUNWT
      QXAUVLUUPUUQUVBXCQXDXEWEWLXFXGXHXIYGYAUUBYJYLNUUGUUCYIAYHUUDXJTXKYGYAYDYH
      GYFYJNUUGYGYDYBJZYHYEYDUVPGXTYDYBXMXLYGYAYHUVPWHUUGAYHUUDXNXOXPYDAYHUUDXQ
      QXKXFXIAXRXS $.
  $}

  ${
    $d g k x z F $.  $d g k x z J $.  $d g k x z K $.  $d g k x z X $.
    $d g k x z Y $.
    $( The compact generator preserves the subset (fineness) relationship on
       topologies.  (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    kgen2ss $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` X ) /\ J C_ K ) ->
      ( kGen ` J ) C_ ( kGen ` K ) ) $=
      ( vx vk ctopon cfv wcel wss ckgen cv crest co ccmp wi wa resttopon syl2an
      wral syl w3a cin cuni simp1 elpwi wceq simp2 toponuni fveq2d eleqtrd ctop
      cpw simpl2 topontop simpl3 ssrest syl2anc eqid sscmp 3com23 sseld imim12d
      3expia ralimdva anim2d wb elkgen 3ad2ant1 3ad2ant2 3imtr4d ssrdv ) ACFGZH
      ZBVLHZABIZUAZDAJGZBJGZVPDKZCIZAEKZLMZNHZVSWAUBZWBHZOZECULZSZPZVTBWALMZNHZ
      WDWJHZOZEWGSZPZVSVQHZVSVRHZVPWHWNVTVPWFWMEWGVPWAWGHZPZWKWCWEWLWSWBWJUCZFG
      ZHZWBWJIZWKWCOWSWBWAFGZXAVPVMWACIZWBXDHWRVMVNVOUDWACUEZWAACQRWSWAWTFWSWJX
      DHZWAWTUFVPVNXEXGWRVMVNVOUGXFWABCQRWAWJUHTUIUJWSBUKHZVOXCWSVNXHVMVNVOWRUM
      CBUNTVMVNVOWRUOWAABUKUPUQZXBXCWKWCXBWKXCWCWBWJWTWTURUSUTVCUQWSWBWJWDXIVAV
      BVDVEVMVNWPWIVFVOVSEACVGVHVNVMWQWOVFVOVSEBCVGVIVJVK $.

    $( A function from a compactly generated space is continuous iff it is
       continuous "on compacta".  (Contributed by Mario Carneiro,
       21-Mar-2015.) $)
    kgencn $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) ->
      ( F e. ( ( kGen ` J ) Cn K ) <->
        ( F : X --> Y /\ A. k e. ~P X ( ( J |`t k ) e. Comp ->
          ( F |` k ) e. ( ( J |`t k ) Cn K ) ) ) ) ) $=
      ( vx ctopon cfv wcel wa ccn co wf ccnv cv cima wral wi wb ckgen ccmp cres
      crest cpw kgentopon iscn cin wss elkgen ad2antrr cdm cnvimass wceq adantl
      sylan fdm syl5sseq biantrurd bitr4d ralbidv simpll elpwi resttopon syl2an
      simpllr syl2anc simpr fssres eleq1i ralbii syl6bb imbi2d r19.21v ralbidva
      cnvresima syl6bbr ralcom syl6rbbr bitrd pm5.32da ) CEHIZJZDFHIJZKZBCUAIZD
      LMJZEFBNZBOGPZQZWFJZGDRZKZWHCAPZUDMZUBJZBWNUCZWODLMJZSZAEUEZRZKWCWFWBJWDW
      GWMTCEUFGBWFDEFUGUPWEWHWLXAWEWHKZWLWPWJWNUHZWOJZSZAWTRZGDRZXAXBWKXFGDXBWK
      WJEUIZXFKZXFWCWKXITWDWHWJACEUJUKXBXHXFXBBULZWJEBWIUMWHXJEUNWEEFBUQUOURUSU
      TVAXBXAXEGDRZAWTRXGXBWSXKAWTXBWNWTJZKZWSWPXDGDRZSXKXMWRXNWPXMWRWQOWIQZWOJ
      ZGDRZXNXMWRWNFWQNZXQKZXQXMWOWNHIJZWDWRXSTXBWCWNEUIZXTXLWCWDWHVBWNEVCZWNCE
      VDVEWCWDWHXLVFGWQWODWNFUGVGXMXRXQXBWHYAXRXLWEWHVHYBEFWNBVIVEUSUTXPXDGDXOX
      CWOWNWIBVPVJVKVLVMWPXDGDVNVQVOXEGADWTVRVSVTWAVT $.

    $( A function ` F : J --> K ` from a compactly generated space is
       continuous iff for all compact spaces ` z ` and continuous
       ` g : z --> J ` , the composite ` F o. g : z --> K ` is continuous.
       (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    kgencn2 $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) ->
      ( F e. ( ( kGen ` J ) Cn K ) <-> ( F : X --> Y /\
        A. z e. Comp A. g e. ( z Cn J ) ( F o. g ) e. ( z Cn K ) ) ) ) $=
      ( vk cfv wcel wa ccn co cv ccmp cres wi wral wss wceq ctopon ckgen wf cpw
      crest ccom kgencn crn rncmp adantl cuni simprr eqid cnf frn 3syl toponuni
      ad3antrrr sseqtr4d rnex sylibr oveq2 eleq1d reseq2 oveq1d eleq12d imbi12d
      vex elpw rspcv syl mpid wb simplll ssid a1i cnrest2 syl3anc mpbid cnco ex
      cores ax-mp eleq1i syl6ib syld ralrimdvva oveq1 eleq2d raleqbidv resabs1d
      cid elpwi idcn sseqtrd cnrest syl2anc coeq2 coires1 syl9r com23 ralrimdva
      eqeltrrd impbid pm5.32da bitrd ) DFUAIJZEGUAIJZKZCDUBIELMJFGCUCZDHNZUEMZO
      JZCXKPZXLELMZJZQZHFUDZRZKXJCBNZUFZANZELMZJZBYBDLMZRZAORZKHCDEFGUGXIXJXSYG
      XIXJKZXSYGYHXSYDABOYEYHYBOJZXTYEJZKZKZXSCXTUHZPZDYMUEMZELMZJZYDYLXSYOOJZY
      QYKYRYHXTYBDUIUJYLYMXRJZXSYRYQQZQYLYMFSZYSYLYMDUKZFYLYJYBUKZUUBXTUCYMUUBS
      YHYIYJULZXTYBDUUCUUBUUCUMUUBUMZUNUUCUUBXTUOUPXGFUUBTZXHXJYKFDUQZURUSZYMFX
      TBVHUTVIVAXQYTHYMXRXKYMTZXMYRXPYQUUIXLYOOXKYMDUEVBZVCUUIXNYNXOYPXKYMCVDUU
      IXLYOELUUJVEVFVGVJVKVLYLYQYNXTUFZYCJZYDYLXTYBYOLMJZYQUULQYLYJUUMUUDYLXGYM
      YMSZUUAYJUUMVMXGXHXJYKVNUUNYLYMVOZVPUUHYMXTYBDFVQVRVSUUMYQUULXTYNYBYOEVTW
      AVKUUKYAYCUUNUUKYATUUOCXTYMWBWCWDWEWFWGYHYGXQHXRYHXKXRJZKZXMYGXPXMYGYAXOJ
      ZBXLDLMZRZUUQXPYFUUTAXLOYBXLTZYDUURBYEUUSYBXLDLWHUVAYCXOYAYBXLELWHWIWJVJU
      UQUUTCWLXKPZUFZXOJZXPUUQUVBUUSJUUTUVDQUUQWLFPZXKPZUVBUUSUUQWLXKFUUPXKFSYH
      XKFWMUJZWKUUQUVEDDLMJZXKUUBSUVFUUSJXGUVHXHXJUUPDFWNURUUQXKFUUBUVGXGUUFXHX
      JUUPUUGURWOXKUVEDDUUBUUEWPWQXCUURUVDBUVBUUSXTUVBTYAUVCXOXTUVBCWRVCVJVKUVC
      XNXOCXKWSWDWEWTXAXBXDXEXF $.
  $}

  ${
    $d f x y J $.  $d f x y K $.
    $( The set of continuous functions from ` J ` to ` K ` is unaffected by
       k-ification of ` K ` , if ` J ` is already compactly generated.
       (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    kgencn3 $p |- ( ( J e. ran kGen /\ K e. Top ) ->
      ( J Cn K ) = ( J Cn ( kGen ` K ) ) ) $=
      ( vx vy ckgen crn wcel wa ccn co cfv cv cuni cima eqid wss cin wceq sylib
      syl2anc vf ctop wf ccnv wral cnf adantl crest wi cpw cdm cnvimass fdm syl
      ccmp adantr syl5sseq cres cnvresima wfun ad2antrr ffun inpreima 3syl in32
      ineq1d ssrin ax-mp dminss sstri a1i df-ss syl5eq eqtrd simpr elpwi cnrest
      ad2antrl ctopon wb ad3antrrr toptopon df-ima eqimss2i imassrn frn cnrest2
      syl5ss syl3anc mpbid simplr simprr kgeni cnima eqeltrrd ralrimiva kgentop
      imacmp expr elkgen mpbir2and kgenidm eleqtrd kgentopon sylbi syl2an ssrdv
      iscn ex toponcom kgenss cnss2 eqssd ) AEFGZBUBGZHZABIJZABEKZIJZXPUAXQXSXP
      UALZXQGZXTXSGZXPYAHZYBAMZBMZXTUCZXTUDZCLZNZAGZCXRUEZYAYFXPXTABYDYEYDOZYEO
      ZUFUGZYCYJCXRYCYHXRGZHZYIAEKZAYPYIYQGZYIYDPZADLZUHJZUOGZYIYTQZUUAGZUIZDYD
      UJZUEZYPXTUKZYIYDXTYHULZYCUUHYDRZYOYCYFUUJYNYDYEXTUMUNUPUQYPUUEDUUFYPYTUU
      FGZUUBUUDYPUUKUUBHZHZXTYTURZUDYHXTYTNZQZNZUUCUUAUUMUUQYGUUPNZYTQZUUCYTUUP
      XTUSUUMUUSYIYGUUONZQZYTQZUUCUUMUURUVAYTUUMYFXTUTUURUVARYCYFYOUULYNVAZYDYE
      XTVBYHUUOXTVCVDVFUUMUVBUUCUUTQZUUCYIUUTYTVEUUMUUCUUTPZUVDUUCRUVEUUMUUCUUH
      YTQZUUTYIUUHPUUCUVFPUUIYIUUHYTVGVHYTXTVIVJVKUUCUUTVLSVMVNVMUUMUUNUUABUUOU
      HJZIJGZUUPUVGGZUUQUUAGUUMUUNUUABIJGZUVHUUMYAYTYDPZUVJYCYAYOUULXPYAVOVAZUU
      KUVKYPUUBYTYDVPVRYTXTABYDYLVQTUUMBYEVSKZGZUUNFZUUOPZUUOYEPUVJUVHVTUUMXOUV
      NXPXOYAYOUULXNXOVOZWABYEYMWBZSUVPUUMUUOUVOXTYTWCWDVKUUMUUOXTFZYEXTYTWEUUM
      YFUVSYEPUVCYDYEXTWFUNWHUUOUUNUUABYEWGWIWJUUMYOUVGUOGZUVIYCYOUULWKUUMYAUUB
      UVTUVLYPUUKUUBWLYTXTABWRTYHBUUOWMTUUPUUNUUAUVGWNTWOWSWPYPAYDVSKGZYRYSUUGH
      VTYPAUBGZUWAXNUWBXOYAYOAWQZWAAYDYLWBZSYIDAYDWTUNXAXNYQARXOYAYOAXBWAXCWPXP
      YBYFYKHVTZYAXNUWAXRUVMGZUWEXOXNUWBUWAUWCUWDSXOUVNUWFUVRBYEXDXEZCXTAXRYDYE
      XHXFUPXAXIXGXPBXRMZVSKGZBXRPZXSXQPXPXOUWFUWIUVQXOUWFXNUWGUGBXRXJTXOUWJXNB
      XKUGAXRBUWHUWHOXLTXM $.

    $( A continuous function is also continuous with the domain and codomain
       replaced by their compact generator topologies.  (Contributed by Mario
       Carneiro, 21-Mar-2015.) $)
    kgen2cn $p |- ( F e. ( J Cn K ) ->
      F e. ( ( kGen ` J ) Cn ( kGen ` K ) ) ) $=
      ( ccn wcel ckgen cfv cuni ctopon wss ctop cntop1 toptopon sylib kgentopon
      co eqid syl kgenss syl2anc cnss1 crn wceq wfn wf kgenf ffn ax-mp fnfvelrn
      sylancr cntop2 kgencn3 sseqtrd id sseldd ) ABCDPZEZUPBFGZCFGDPZAUQUPURCDP
      ZUSUQURBHZIGZEZBURJZUPUTJUQBVBEZVCUQBKEZVEABCLZBVAVAQZMNBVAORUQVFVDVGBSRB
      URCVAVHUATUQURFUBEZCKEUTUSUCUQFKUDZVFVIKKFUEVJUFKKFUGUHVGKBFUIUJABCUKURCU
      LTUMUQUNUO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Product topologies
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c tX $.
  $c ^ko $.

  $( Extend class notation with the binary topological product operation. $)
  ctx $a class tX $.

  $( Extend class notation with a function whose value is the compact-open
     topology. $)
  cxko $a class ^ko $.

  ${
    $d f k r s v x y $.
    $( Define the binary topological product, which is homeomorphic to the
       general topological product over a two element set, but is more
       convenient to use.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    df-tx $a |- tX = ( r e. _V , s e. _V |->
             ( topGen ` ran ( x e. r , y e. s |-> ( x X. y ) ) ) ) $.

    $( Define the compact-open topology, which is the natural topology on the
       set of continuous functions between two topological spaces.
       (Contributed by Mario Carneiro, 19-Mar-2015.) $)
    df-xko $a |- ^ko = ( s e. Top , r e. Top |-> ( topGen ` ( fi `
       ran ( k e. { x e. ~P U. r | ( r |`t x ) e. Comp } , v e. s |->
         { f e. ( r Cn s ) | ( f " k ) C_ v } ) ) ) ) $.
  $}

  ${
    $d a b c d p r s t u v x y z R $.  $d a b c d p r s t u v x y z S $.
    $d a b c d p r s t u v w z B $.  $d w x y z X $.  $d w x y z Y $.
    txval.1 $e |- B = ran ( x e. R , y e. S |-> ( x X. y ) ) $.
    $( Value of the binary topological product operation.  (Contributed by Jeff
       Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 30-Aug-2015.) $)
    txval $p |- ( ( R e. V /\ S e. W ) -> ( R tX S ) = ( topGen ` B ) ) $=
      ( vr vs wcel cvv ctx ctg cfv wceq elex cv cmpt2 crn co cxp mpt2eq12 rneqd
      wa syl6eqr fveq2d df-tx fvex ovmpt2a syl2an ) DFKDLKELKDEMUACNOZPEGKDFQEG
      QIJDELLABIRZJRZARBRUBZSZTZNOULMUMDPUNEPUEZUQCNURUQABDEUOSZTCURUPUSABUMUND
      EUOUCUDHUFUGABJIUHCNUIUJUK $.

    ${
      txuni2.1 $e |- X = U. R $.
      txuni2.2 $e |- Y = U. S $.
      $( The underlying set of the product of two topologies.  (Contributed by
         Mario Carneiro, 31-Aug-2015.) $)
      txuni2 $p |- ( X X. Y ) = U. B $=
        ( vz vr vs cxp cv wcel wa wrex wss wceq vw cuni relxp cop eleq2i eluni2
        bitri anbi12i opelxp reeanv 3bitr4i eqid xpeq1 eqeq2d xpeq2 rspc2ev vex
        mp3an3 xpex eqeq1 2rexbidv cmpt2 crn cab rnmpt2 eqtri elab2 elssuni syl
        sylibr sseld syl5bir rexlimivv sylbi relssi cpw syl6sseqr xpss12 syl2an
        wf wral elpw rgen2 fmpt2 mpbi frn ax-mp eqsstri sspwuni eqssi ) FGNZCUB
        ZKUAWKWLFGUCKOZUAOZUDZWKPZWMLOZPZWNMOZPZQZMERLDRZWOWLPZWMFPZWNGPZQWRLDR
        ZWTMERZQWPXBXDXFXEXGXDWMDUBZPXFFXHWMIUELWMDUFUGXEWNEUBZPXGGXIWNJUEMWNEU
        FUGUHWMWNFGUIWRWTLMDEUJUKXAXCLMDEXAWOWQWSNZPWQDPZWSEPZQZXCWMWNWQWSUIXMX
        JWLWOXMXJCPZXJWLSXMXJAOZBOZNZTZBERADRZXNXKXLXJXJTZXSXJULXRXTXJWQXPNZTAB
        WQWSDEXOWQTXQYAXJXOWQXPUMUNXPWSTYAXJXJXPWSWQUOUNUPURWMXQTZBERADRZXSKXJC
        WQWSLUQMUQUSWMXJTYBXRABDEWMXJXQUTVACABDEXQVBZVCZYCKVDHABKDEXQYDYDULZVEV
        FVGVJXJCVHVIVKVLVMVNVOCWKVPZSWLWKSCYEYGHDENZYGYDVTZYEYGSXQYGPZBEWAADWAY
        IYJABDEXODPZXPEPZQXQWKSZYJYKXOFSXPGSYMYLYKXOXHFXODVHIVQYLXPXIGXPEVHJVQX
        OFXPGVRVSXQWKXOXPAUQBUQUSWBVJWCABDEXQYGYDYFWDWEYHYGYDWFWGWHCWKWIWEWJ $.
    $}

    $( The basis for the product topology is a set.  (Contributed by Mario
       Carneiro, 2-Sep-2015.) $)
    txbasex $p |- ( ( R e. V /\ S e. W ) -> B e. _V ) $=
      ( wcel wa cuni cvv cxp eqid txuni2 uniexg xpexg syl2an syl5eqelr uniexb
      sylibr ) DFIZEGIZJZCKZLICLIUDUEDKZEKZMZLABCDEUFUGHUFNUGNOUBUFLIUGLIUHLIUC
      DFPEGPUFUGLLQRSCTUA $.

    $( The set of Cartesian products of elements from two topological bases is
       a basis.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario
       Carneiro, 31-Aug-2015.) $)
    txbas $p |- ( ( R e. TopBases /\ S e. TopBases ) -> B e. TopBases ) $=
      ( vt vu vv va vb vc vd vz wcel wa cv wrex wral cxp ctb cin wss wceq cmpt2
      vp crn cab xpeq1 xpeq2 cbvmpt2v rnmpt2 eqtri abeq2i anbi12i reeanv bitr4i
      basis2 exp43 imp42 opelxpi xpss12 anim12i reximi sylbir syl2an ralrimivva
      an4s eleq1 anbi1d 2rexbidv ralxp sylibr anassrs ineq12 inxp syl6eq sseq2d
      cop anbi2d rexbidv c1st cfv c2nd rexeqi cvv wb fvex xpex rgenw vex op1std
      cmpt op2ndd xpeq12d mpt2mpt eqcomi eleq2 sseq1 anbi12d ax-mp eleq2d rexxp
      rexrnmpt sseq1d 3bitri syl6bb raleqbidv syl5ibrcom syl5bir syl5bi txbasex
      rexlimdvva ralrimivv isbasis2g syl mpbird ) DUAOZEUAOZPZCUAOZUFQZGQZOZYCH
      QZIQZUBZUCZPZGCRZUFYGSZICSHCSZXTYKHICCYECOZYFCOZPZYEJQZKQZTZUDZKERZYFLQZM
      QZTZUDZMERZPZLDRJDRZXTYKYOYTJDRZUUELDRZPUUGYMUUHYNUUIUUHHCCABDEAQZBQZTZUE
      ZUGZUUHHUHFJKHDEYRUUMABJKDEUULYRYPUUKTUUJYPUUKUIUUKYQYPUJUKULUMUNUUIICCUU
      NUUIIUHFLMIDEUUCUUMABLMDEUULUUCUUAUUKTUUJUUAUUKUIUUKUUBUUAUJUKULUMUNUOYTU
      UEJLDDUPUQXTUUFYKJLDDUUFYSUUDPZMERKERXTYPDOZUUADOZPZPZYKYSUUDKMEEUPUUSUUO
      YKKMEEUUSYQEOZUUBEOZPZPYKUUOYBUULOZUULYPUUAUBZYQUUBUBZTZUCZPZBERADRZUFUVF
      SZXTUURUVBUVJXRUURXSUVBUVJXRUURPZXSUVBPZPZYEYFVSZUULOZUVGPZBERZADRZIUVESH
      UVDSUVJUVMUVRHIUVDUVEUVKYEUVDOZUVLYFUVEOZUVRUVKUVSPYEUUJOZUUJUVDUCZPZADRZ
      YFUUKOZUUKUVEUCZPZBERZUVRUVLUVTPXRUUPUUQUVSUWDXRUUPUUQUVSUWDAYEDYPUUAURUS
      UTXSUUTUVAUVTUWHXSUUTUVAUVTUWHBYFEYQUUBURUSUTUWDUWHPUWCUWGPZBERZADRUVRUWC
      UWGABDEUPUWJUVQADUWIUVPBEUWAUWEUWBUWFUVPUWAUWEPUVOUWBUWFPUVGYEYFUUJUUKVAU
      UJUVDUUKUVEVBVCVHVDVDVEVFVHVGUVIUVRUFHIUVDUVEYBUVNUDZUVHUVPABDEUWKUVCUVOU
      VGYBUVNUULVIVJVKVLVMVHVNUUOYJUVIUFYGUVFUUOYGYRUUCUBUVFYEYRYFUUCVOYPYQUUAU
      UBVPVQZUUOYJYDYCUVFUCZPZGCRZUVIUUOYIUWNGCUUOYHUWMYDUUOYGUVFYCUWLVRVTWAUWO
      UWNGUUNRZYBNQZWBWCZUWQWDWCZTZOZUWTUVFUCZPZNDETZRZUVIUWNGCUUNFWEUWTWFOZNUX
      DSUWPUXEWGUXFNUXDUWRUWSUWQWBWHUWQWDWHWIWJUWNUXCNGUXDUWTUUMWFNUXDUWTWMUUMA
      BNDEUWTUULUWQUUJUUKVSUDZUWRUUJUWSUUKUUJUUKUWQAWKZBWKZWLUUJUUKUWQUXHUXIWNW
      OZWPWQYCUWTUDYDUXAUWMUXBYCUWTYBWRYCUWTUVFWSWTXDXAUXCUVHNABDEUXGUXAUVCUXBU
      VGUXGUWTUULYBUXJXBUXGUWTUULUVFUXJXEWTXCXFXGXHXIXMXJXMXKXNXTCWFOYAYLWGABCD
      EUAUAFXLHIUFGCWFXOXPXQ $.
  $}

  ${
    $d p x y z J $.  $d p x y z K $.  $d p x y z S $.
    $( A set in a product is open iff each point is surrounded by an open
       rectangle.  (Contributed by Stefan O'Rear, 25-Jan-2015.) $)
    eltx $p |- ( ( J e. V /\ K e. W ) -> ( S e. ( J tX K ) <-> A. p e. S
          E. x e. J E. y e. K ( p e. ( x X. y ) /\ ( x X. y ) C_ S ) ) ) $=
      ( vz wcel wa ctx cv wss wrex wral eqid cvv wb vex cxp cmpt2 crn ctg txval
      co cfv eleq2d txbasex eltg2b syl xpex rgen2w wceq eleq2 anbi12d rexrnmpt2
      sseq1 ax-mp ralbii syl6bb bitrd ) DFJEGJKZCDELUFZJCABDEAMZBMZUAZUBZUCZUDU
      GZJZHMZVGJZVGCNZKZBEOADOZHCPZVCVDVJCABVIDEFGVIQZUEUHVCVKVLIMZJZVSCNZKZIVI
      OZHCPZVQVCVIRJVKWDSABVIDEFGVRUIHICVIRUJUKWCVPHCVGRJZBEPADPWCVPSWEABDEVEVF
      ATBTULUMWBVOABIDEVGVHRVHQVSVGUNVTVMWAVNVSVGVLUOVSVGCURUPUQUSUTVAVB $.
  $}

  ${
    $d R u v $.  $d S u v $.
    $( The product of two topologies is a topology.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    txtop $p |- ( ( R e. Top /\ S e. Top ) -> ( R tX S ) e. Top ) $=
      ( vu vv ctop wcel wa ctx co cv cxp cmpt2 crn ctg cfv eqid txval ctb txbas
      topbas syl2an tgcl syl eqeltrd ) AEFZBEFZGZABHICDABCJDJKLMZNOZECDUHABEEUH
      PZQUGUHRFZUIEFUEARFBRFUKUFATBTCDUHABUJSUAUHUBUCUD $.
  $}

  ${
    $d f g x y z A $.  $d f B $.  $d f g x y z F $.  $d f g x y z V $.
    ptval.1 $e |- B = { x | E. g ( ( g Fn A /\ A. y e. A ( g ` y ) e. ( F ` y )
    /\ E. z e. Fin A. y e. ( A \ z ) ( g ` y ) = U. ( F ` y ) ) /\
      x = X_ y e. A ( g ` y ) ) } $.
    $( The value of the product topology function.  (Contributed by Mario
       Carneiro, 3-Feb-2015.) $)
    ptval $p |- ( ( A e. V /\ F Fn A ) -> ( Xt_ ` F ) = ( topGen ` B ) ) $=
      ( vf wcel wfn wa cv cfv wral wceq cfn ctg cvv cdm cuni cdif wrex w3a cixp
      wex cab cpt cmpt df-pt a1i simpr dmeqd fndm ad2antlr fneq2d fveq1d eleq2d
      raleqbidv difeq1d unieqd eqeq2d rexbidv 3anbi123d ixpeq1d anbi12d syl6eqr
      eqtrd exbidv abbidv fveq2d fnex ancoms fvexd fvmptd ) DHKZGDLZMZJGFNZJNZU
      AZLZBNZVTOZWDWAOZKZBWBPZWEWFUBZQZBWBCNZUCZPZCRUDZUEZANZBWBWEUFZQZMZFUGZAU
      HZSOZESOTUITUIJTXBUJQVSABCJFUKULVSWAGQZMZXAESXDXAVTDLZWEWDGOZKZBDPZWEXFUB
      ZQZBDWKUCZPZCRUDZUEZWPBDWEUFZQZMZFUGZAUHEXDWTXRAXDWSXQFXDWOXNWRXPXDWCXEWH
      XHWNXMXDWBDVTXDWBGUAZDXDWAGVSXCUMZUNVRXSDQVQXCDGUOUPVIZUQXDWGXGBWBDYAXDWF
      XFWEXDWDWAGXTURZUSUTXDWMXLCRXDWJXJBWLXKXDWBDWKYAVAXDWIXIWEXDWFXFYBVBVCUTV
      DVEXDWQXOWPXDBWBDWEYAVFVCVGVJVKIVHVLVRVQGTKDHGVMVNVSESVOVP $.
  $}

  ${
    $d k w z A $.  $d k w z F $.  $d k w z I $.  $d k w z U $.  $d k w z V $.
    $d w z X $.
    ptpjpre1.1 $e |- X = X_ k e. A U. ( F ` k ) $.
    $( The preimage of a projection function can be expressed as an indexed
       cartesian product.  (Contributed by Mario Carneiro, 6-Feb-2015.) $)
    ptpjpre1 $p |- ( ( ( A e. V /\ F : A --> Top ) /\
      ( I e. A /\ U e. ( F ` I ) ) ) -> ( `' ( w e. X |-> ( w ` I ) ) " U ) =
        X_ k e. A if ( k = I , U , U. ( F ` k ) ) ) $=
      ( vz wcel wa cfv cv wfn wral elixp fveq2 bitri syl5ibrcom ctop wf cmpt wb
      ccnv cima wceq cuni cif cixp simplrl simprbi eleq2s adantl unieqd eleq12d
      vex rspcv sylc eqid fmptd elpreima 3syl fveq1 fvmpt eleq1d pm5.32i eleq2i
      ffn fvex anbi1i anass simprl iftrue wn simprr iffalse eleq2d pm2.61d expr
      ralimdv expimpd ancomsd wss elssuni ad2antll ssid syl6eqss pm2.61d1 sseld
      sseq12d wi ad2antrl jcad impbid anbi2d syl5bb bitrd syl6bbr eqrdv ) BGKBU
      AEUBLZFBKZCFEMZKZLLZJAHFANZMZUCZUECUFZDBDNZFUGZCXJEMZUHZUIZUJZXEJNZXIKZXP
      BOZXJXPMZXNKZDBPZLZXPXOKXEXQXPHKZXPXHMZCKZLZYBXEHXCUHZXHUBXHHOXQYFUDXEAHX
      GYGXHXEXFHKZLXBXJXFMZXMKZDBPZXGYGKZXAXBXDYHUKYHYKXEYKXFDBXMUJZHXFYMKXFBOY
      KDBXMXFAUQQULIUMUNYJYLDFBXKYIXGXMYGXJFXFRXKXLXCXJFERUOZUPURUSXHUTZVAHYGXH
      VIHXPCXHVBVCYFXRXSXMKZDBPZFXPMZCKZLZLZXEYBYFYCYSLZUUAYCYEYSYCYDYRCAXPXGYR
      HXHFXFXPVDYOFXPVJVEVFVGUUBXRYQLZYSLUUAYCUUCYSYCXPYMKUUCHYMXPIVHDBXMXPJUQZ
      QSVKXRYQYSVLSSXEYTYAXRXEYTYAXEYSYQYAXEYSYQYAXEYSLYPXTDBXEYSYPXTXEYSYPLLZX
      KXTUUEXTXKYSXEYSYPVMXKXSYRXNCXJFXPRXKCXMVNZUPZTUUEXTXKVOZYPXEYSYPVPUUHXNX
      MXSXKCXMVQZVRTVSVTWAWBWCXEYAYQYSXEXTYPDBXEXNXMXSXEXKXNXMWDZXEUUJXKCYGWDZX
      DUUKXAXBCXCWEWFXKXNCXMYGUUFYNWKTUUHXNXMXMUUIXMWGWHWIWJWAXBYAYSWLXAXDXTYSD
      FBUUGURWMWNWOWPWQWRDBXNXPUUDQWSWT $.
  $}

  ${
    $d a b c d k n s u v B $.  $d g h w x y G $.  $d g n w x y I $.  $d k ph $.
    $d a b c d g h k m n s u v w x y z A $.  $d g n w x y U $.  $d a b g x Y $.
    $d a b c d g h k m n s u v w x y z F $.  $d a b g h k m s u w x z X $.
    $d g h x S $.  $d a b c d g h k m n s u v w x y z V $.  $d k w y W $.
    ptbas.1 $e |- B = { x | E. g ( ( g Fn A /\ A. y e. A ( g ` y ) e. ( F ` y )
    /\ E. z e. Fin A. y e. ( A \ z ) ( g ` y ) = U. ( F ` y ) ) /\
      x = X_ y e. A ( g ` y ) ) } $.
    $( Elementhood in the bases of a product topology.  (Contributed by Mario
       Carneiro, 3-Feb-2015.) $)
    elpt $p |- ( S e. B <-> E. h ( ( h Fn A /\ A. y e. A ( h ` y ) e. ( F ` y )
    /\ E. w e. Fin A. y e. ( A \ w ) ( h ` y ) = U. ( F ` y ) ) /\
      S = X_ y e. A ( h ` y ) ) ) $=
      ( wcel cv cfv wral wceq cfn wrex wa cvv wfn cuni cdif w3a cixp wex eleq2i
      cab simpr ixpexg fvexd mprg exlimiv eqeq1 anbi2d exbidv elab3 fneq1 fveq1
      syl6eqel eleq1d ralbidv eqeq1d rexralbidv difeq2 raleqdv syl6bb 3anbi123d
      cbvrexv ixpeq2dv eqeq2d anbi12d cbvexv 3bitri ) GFLGHMZEUAZBMZVONZVQJNZLZ
      BEOZVRVSUBZPZBECMZUCZOCQRZUDZAMZBEVRUEZPZSZHUFZAUHZLWGGWIPZSZHUFZIMZEUAZV
      QWQNZVSLZBEOZWSWBPZBEDMZUCZOZDQRZUDZGBEWSUEZPZSZIUFFWMGKUGWLWPAGWOGTLHWOG
      WITWGWNUIVRTLWITLBEBEVRTUJVQELVQVOUKULUTUMWHGPZWKWOHXKWJWNWGWHGWIUNUOUPUQ
      WOXJHIVOWQPZWGXGWNXIXLVPWRWAXAWFXFEVOWQURXLVTWTBEXLVRWSVSVQVOWQUSZVAVBXLW
      FXBBWEOZCQRXFXLWCXBCBQWEXLVRWSWBXMVCVDXNXECDQWDXCPXBBWEXDWDXCEVEVFVIVGVHX
      LWIXHGXLBEVRWSXMVJVKVLVMVN $.

    $( A basic open set in the product topology.  (Contributed by Mario
       Carneiro, 3-Feb-2015.) $)
    elptr $p |- ( ( A e. V /\ ( G Fn A /\ A. y e. A ( G ` y ) e. ( F ` y ) )
    /\ ( W e. Fin /\ A. y e. ( A \ W ) ( G ` y ) = U. ( F ` y ) ) ) ->
      X_ y e. A ( G ` y ) e. B ) $=
      ( vh vw wcel cv cfv wral wa cfn wceq wfn cuni cdif w3a wrex wex cvv simp1
      cixp simp2l fnex syl2anc simp2r difeq2 raleqdv rspcev 3ad2ant3 3jca fveq1
      eqcomd ixpeq2dv biantrud fneq1 eleq1d ralbidv eqeq1d rexralbidv 3anbi123d
      bitr3d spcegv sylc elpt sylibr ) DINZHDUAZBOZHPZVPGPZNZBDQZRZJSNVQVRUBZTZ
      BDJUCZQZRZUDZLOZDUAZVPWHPZVRNZBDQZWJWBTZBDMOZUCZQMSUEZUDZBDVQUIZBDWJUITZR
      ZLUFZWRENWGHUGNZVOVTWCBWOQZMSUEZUDZXAWGVOVNXBVNVOVTWFUJZVNWAWFUHDIHUKULWG
      VOVTXDXFVNVOVTWFUMWFVNXDWAXCWEMJSWNJTWCBWOWDWNJDUNUOUPUQURWTXELHUGWHHTZWQ
      WTXEXGWSWQXGBDVQWJXGWJVQVPWHHUSZUTVAVBXGWIVOWLVTWPXDDWHHVCXGWKVSBDXGWJVQV
      RXHVDVEXGWMWCMBSWOXGWJVQWBXHVFVGVHVIVJVKABCMDEWRFLGKVLVM $.

    ${
      $d y S $.
      elptr2.1 $e |- ( ph -> A e. V ) $.
      elptr2.2 $e |- ( ph -> W e. Fin ) $.
      elptr2.3 $e |- ( ( ph /\ k e. A ) -> S e. ( F ` k ) ) $.
      elptr2.4 $e |- ( ( ph /\ k e. ( A \ W ) ) -> S = U. ( F ` k ) ) $.
      $( A basic open set in the product topology.  (Contributed by Mario
         Carneiro, 3-Feb-2015.) $)
      elptr2 $p |- ( ph -> X_ k e. A S e. B ) $=
        ( cfv wcel wral cv cmpt cixp nffvmpt1 nfcv fveq2 cbvixp wceq simpr eqid
        wa fvmpt2 syl2anc ixpeq2dva syl5eq wfn cfn cuni ralrimiva fnmpt eqeltrd
        cdif syl nfel1 eleq12d cbvral sylibr eldifi sylan2 eqtrd unieqd eqeq12d
        nfv nfeq1 elptr syl122anc eqeltrrd ) ACECUAZIEGUBZRZUCZIEGUCZFAWAIEIUAZ
        VSRZUCWBCIEVTWDIEGVRUDZCWDUEVRWCVSUFZUGAIEWDGAWCESZUKZWGGWCJRZSZWDGUHZA
        WGUIPIEGWIVSVSUJZULUMZUNUOAEKSVSEUPZVTVRJRZSZCETZLUQSVTWOURZUHZCELVBZTZ
        WAFSNAWJIETWNAWJIEPUSIEGVSWIWLUTVCAWDWISZIETWQAXBIEWHWDGWIWMPVAUSWPXBCI
        EIVTWOWEVDXBCVMVRWCUHZVTWDWOWIWFVRWCJUFZVEVFVGOAWDWIURZUHZIWTTXAAXFIWTA
        WCWTSZUKWDGXEXGAWGWKWCELVHWMVIQVJUSWSXFCIWTIVTWRWEVNXFCVMXCVTWDWRXEWFXC
        WOWIXDVKVLVFVGBCDEFHJVSKLMVOVPVQ $.
    $}

    $( The base set of the product topology is a basic open set.  (Contributed
       by Mario Carneiro, 3-Feb-2015.) $)
    ptbasid $p |- ( ( A e. V /\ F : A --> Top ) ->
      X_ k e. A U. ( F ` k ) e. B ) $=
      ( wcel ctop wf wa cv cfv cuni c0 simpl cfn a1i ffvelrn adantll topopn syl
      0fin eqid cdif eqidd elptr2 ) DIKZDLHMZNZABCDEGOZHPZQZFGHIRJUKULSRTKUMUFU
      AUMUNDKZNUOLKZUPUOKULUQURUKDLUNHUBUCUOUPUPUGUDUEUMUNDRUHKNUPUIUJ $.

    $( The base set for the product topology.  (Contributed by Mario Carneiro,
       3-Feb-2015.) $)
    ptuni2 $p |- ( ( A e. V /\ F : A --> Top ) ->
      X_ k e. A U. ( F ` k ) = U. B ) $=
      ( wcel wa cv cfv cuni cixp wss elssuni wral wceq ctop ptbasid syl cpw wfn
      cdif cfn wrex w3a wex cab simpr2 ralimi ss2ixp 3syl fveq2 unieqd syl6sseq
      wf cbvixpv selpw sseq1 syl5bb syl5ibrcom expimpd exlimdv syl5eqss sspwuni
      abssdv sylib eqssd ) DIKDUAHUSLZGDGMZHNZOZPZEOZVLVPEKVPVQQABCDEFGHIJUBVPE
      RUCVLEVPUDZQVQVPQVLEFMZDUEZBMZVSNZWAHNZKZBDSZWBWCOZTBDCMUFSCUGUHZUIZAMZBD
      WBPZTZLZFUJZAUKVRJVLWMAVRVLWLWIVRKZFVLWHWKWNVLWHLZWNWKWJVPQZWOWJBDWFPZVPW
      OWEWBWFQZBDSWJWQQVLVTWEWGULWDWRBDWBWCRUMBDWBWFUNUOBGDWFVOWAVMTWCVNWAVMHUP
      UQUTURWNWIVPQWKWPAVPVAWIWJVPVBVCVDVEVFVIVGEVPVHVJVK $.

    $( The basis for a product topology is closed under intersections.
       (Contributed by Mario Carneiro, 3-Feb-2015.) $)
    ptbasin $p |- ( ( ( A e. V /\ F : A --> Top ) /\ ( X e. B /\ Y e. B ) ) ->
      ( X i^i Y ) e. B ) $=
      ( va vc vb vd wcel wa cv wceq cfn vk ctop cin wfn cfv wral cuni cdif wrex
      wf w3a cixp wex anbi12i eeanv bitr4i an4 an6 df-3an bitri wi reeanv fveq2
      elpt ineq12d cbvixpv cun simpl1l ad2antrl simpl1r simpl3l eleq12d rspccva
      ffvelrnda sylan simpl3r inopn syl3anc simprrl wss ssun1 sscon ax-mp sseli
      unfi unieqd eqeq12d syl2an simprrr ssun2 inidm syl6eq syl5eqel rexlimdvva
      elptr2 expr syl5bir 3expb sylan2b ineq12 ixpin syl6eqr syl5ibrcom expimpd
      impr eleq1d syl5bi exlimdvv imp ) DHPZDUBGUJZQZIEPZJEPZQZIJUCZEPZXOLRZDUD
      ZBRZXRUEZXTGUEZPZBDUFZYAYBUGZSZBDMRZUHZUFZMTUIZUKZIBDYAULZSZQZNRZDUDZXTYO
      UEZYBPZBDUFZYQYESZBDORZUHZUFZOTUIZUKZJBDYQULZSZQZQZNUMLUMZXLXQXOYNLUMZUUH
      NUMZQUUJXMUUKXNUULABCMDEIFLGKVDABCODEJFNGKVDUNYNUUHLNUOUPXLUUIXQLNUUIYKUU
      EQZYMUUGQZQXLXQYKYMUUEUUGUQXLUUMUUNXQXLUUMQXQUUNBDYAYQUCZULZEPZUUMXLXSYPQ
      ZYDYSQZQZYJUUDQZQZUUQUUMUURUUSUVAUKUVBXSYDYJYPYSUUDURUURUUSUVAUSUTXLUUTUV
      AUUQXLUURUUSUVAUUQVAUVAYIUUCQZOTUIMTUIXLUURUUSUKZUUQYIUUCMOTTVBUVDUVCUUQM
      OTTUVDYGTPUUATPQZUVCUUQUVDUVEUVCQZQZUUPUADUARZXRUEZUVHYOUEZUCZULEBUADUUOU
      VKXTUVHSZYAUVIYQUVJXTUVHXRVCZXTUVHYOVCZVEVFUVGABCDEUVKFUAGHYGUUAVGZKXJXKU
      URUUSUVFVHUVEUVOTPUVDUVCYGUUAWEVIUVGUVHDPZQUVHGUEZUBPUVIUVQPZUVJUVQPZUVKU
      VQPUVGDUBUVHGXJXKUURUUSUVFVJVNUVGYDUVPUVRYDYSXLUURUVFVKYCUVRBUVHDUVLYAUVI
      YBUVQUVMXTUVHGVCZVLVMVOUVGYSUVPUVSYDYSXLUURUVFVPYRUVSBUVHDUVLYQUVJYBUVQUV
      NUVTVLVMVOUVIUVJUVQVQVRUVGUVHDUVOUHZPZQZUVKUVQUGZUWDUCUWDUWCUVIUWDUVJUWDU
      VGYIUVHYHPUVIUWDSZUWBUVDUVEYIUUCVSUWAYHUVHYGUVOVTUWAYHVTYGUUAWAYGUVODWBWC
      WDYFUWEBUVHYHUVLYAUVIYEUWDUVMUVLYBUVQUVTWFZWGVMWHUVGUUCUVHUUBPUVJUWDSZUWB
      UVDUVEYIUUCWIUWAUUBUVHUUAUVOVTUWAUUBVTUUAYGWJUUAUVODWBWCWDYTUWGBUVHUUBUVL
      YQUVJYEUWDUVNUWFWGVMWHVEUWDWKWLWOWMWPWNWQWRXEWSUUNXPUUPEUUNXPYLUUFUCUUPIY
      LJUUFWTBDYAYQXAXBXFXCXDXGXHXGXI $.

    $( The basis for a product topology is closed under intersections.
       (Contributed by Mario Carneiro, 19-Mar-2015.) $)
    ptbasin2 $p |- ( ( A e. V /\ F : A --> Top ) -> ( fi ` B ) = B ) $=
      ( vu vv vk wcel ctop wf cv wral cfv cvv cuni wa cin ptbasin ralrimivva wb
      cfi wceq cixp ptuni2 ixpexg fvex uniex a1i syl6eqelr uniexb sylibr inficl
      mprg syl mpbid ) DHMDNGOUAZJPZKPZUBEMZKEQJEQZEUFREUGZVAVDJKEEABCDEFGHVBVC
      IUCUDVAESMZVEVFUEVAETZSMVGVAVHLDLPZGRZTZUHZSABCDEFLGHIUIVKSMZVLSMLDLDVKSU
      JVMVIDMVJVIGUKULUMURUNEUOUPJKESUQUSUT $.

    $( The basis for a product topology is a basis.  (Contributed by Mario
       Carneiro, 3-Feb-2015.) $)
    ptbas $p |- ( ( A e. V /\ F : A --> Top ) -> B e. TopBases ) $=
      ( wcel ctop wf wa cfi cfv ctb ptbasin2 fibas syl6eqelr ) DHJDKGLMEENOPABC
      DEFGHIQERS $.

    ptbasfi.2 $e |- X = X_ n e. A U. ( F ` n ) $.
    $( The basis for a product topology is a basis.  (Contributed by Mario
       Carneiro, 3-Feb-2015.) $)
    ptpjpre2 $p |- ( ( ( A e. V /\ F : A --> Top ) /\
      ( I e. A /\ U e. ( F ` I ) ) ) ->
      ( `' ( w e. X |-> ( w ` I ) ) " U ) e. B ) $=
      ( wcel ctop wa cfv cv wf cmpt ccnv cima wceq cuni cif ptpjpre1 csn simpll
      cixp cfn snfi a1i simprr ad2antrr simpr fveq2d eleqtrrd wn ffvelrnda eqid
      simplr topopn adantr ifclda cdif eldifsni neneqd adantl iffalsed eqeltrd
      syl elptr2 ) ELPZEQJUAZRZKEPZGKJSZPZRZRZDMKDTSUBUCGUDIEITZKUEZGWCJSZUFZUG
      ZUKFDEGIJKLMOUHWBABCEFWGHIJLKUIZNVOVPWAUJWHULPWBKUMUNWBWCEPZRZWDGWFWEWJWD
      RZGVSWEWBVTWIWDVQVRVTUOUPWKWCKJWJWDUQURUSWJWFWEPZWDUTZWJWEQPWLWBEQWCJVOVP
      WAVCVAWEWFWFVBVDVMVEVFWBWCEWHVGPZRWDGWFWNWMWBWNWCKWCEKVHVIVJVKVNVL $.

    $( The basis for the product topology can also be written as the set of
       finite intersections of "cylinder sets", the preimages of projections
       into one factor from open sets in the factor.  (We have to add ` X `
       itself to the list because if ` A ` is empty we get
       ` ( fi `` (/) ) = (/) ` while ` B = { (/) } ` .)  (Contributed by Mario
       Carneiro, 3-Feb-2015.) $)
    ptbasfi $p |- ( ( A e. V /\ F : A --> Top ) -> B = ( fi ` ( { X } u. ran
   ( k e. A , u e. ( F ` k ) |-> ( `' ( w e. X |-> ( w ` k ) ) " u ) ) ) ) ) $=
      ( wcel wa wceq wss cvv vs vh vm ctop wf csn cv cfv cmpt ccnv cima crn cun
      cmpt2 cfi wfn wral cuni cdif cfn wrex w3a cixp wex elpt df-3an cin simprr
      ciin disjdif2 raleqdv biimpac ixpeq2 syl weq fveq2 unieqd cbvixpv syl6eqr
      c0 eqtri sylan ssv iineq1 0iin syl6eq syl5sseqr adantl df-ss sylib eqtr4d
      wne cif simplll inss1 simpr ad2antrr eleq12d rspcv sylc ptpjpre1 syl12anc
      sseldi adantlr iineq2dv cnvimass eqid dmmptss sstri sseqtri rgenw sylancl
      iinss wi wn elssuni syl5ibrcom sylibr eqtrd adantr eqssd eleq1 pm2.61dane
      cdm sylanbrc cint a1i syl5eq ctb cxp ciun eqeltrd ad3antrrr nfcv syl5eqel
      syl2anc snssd sspwuni unssd sseqtrd r19.2z syl6sseqr sseqin2 ssralv ax-mp
      iffalse sseq2d ssid iftrue pm2.61d2 ralrimivw ssiin equcoms sseq1d rspcev
      mpan2 ralimiaa eldifn ad2antlr inss2 iinconst eqtr2d eqeq1 ralimdva mpan9
      3syl mtod raleqi ralunb bitr3i ixpiin 3eqtr4rd cab ixpexg fvex uniex mprg
      inundif eqeltri mptex cnvex imaex dfiin2 inteq int0 ineq2d ptbas ptpjpre2
      inv1 snex ralrimivva fmpt2x frn ssexd unexg ssfii ssun1 snss mpbir sseldd
      sylancr nfv nfixp1 nfcxfr nfmpt nfcnv nfima nfmpt2 nfrn nfcri co mpteq2dv
      cop cnveqd imaeq1d imaeq2 sylan9eq ovmpt2x syl3anc syl5eqr ffnd opeliunxp
      df-ov xpeq12d cbviunv syl6eleq fnfvelrn eqeltrrd ex rexlimd abssdv syl6ss
      sneq ssun2 simplrl ssfi abrexfi elfir syl13anc fiuni ptuni2 eqimss2 sstrd
      cpw pwid mp1i eqtr3d rexlimdvaa impr sylan2b expimpd exlimdv syl5bi ssrdv
      ptbasid fiss ptbasin2 ) FLPFUDKUEQZGMUFZIEFIUGZKUHZDMVUTDUGZUHZUIZUJZEUGZ
      UKZUNZULZUMZUOUHZVURUAGVVKUAUGZGPUBUGZFUPZBUGZVVMUHZVVOKUHZPZBFUQZVVPVVQU
      RZRZBFUCUGZUSZUQZUCUTVAZVBZVVLBFVVPVCZRZQZUBVDVURVVLVVKPZABCUCFGVVLHUBKNV
      EVURVWIVWJUBVURVWFVWHVWJVURVWFQVWJVWHVWGVVKPZVWFVURVVNVVSQZVWEQVWKVVNVVSV
      WEVFVURVWLVWEVWKVURVWLQZVWDVWKUCUTVWMVWBUTPZVWDQZQZVWGMJFVWBVGZDMJUGZVVBU
      HZUIZUJZVWRVVMUHZUKZVIZVGZVVKVWPVWGVXERVWQVTVWPVWQVTRZQZVWGMVXEVWPVWDVXFV
      WGMRVWMVWNVWDVHZVWDVXFQZVWGBFVVTVCZMVXIVWABFUQZVWGVXJRVXFVWDVXKVXFVWABVWC
      FFVWBVJVKVLBFVVPVVTVMVNMJFVWRKUHZURZVCZVXJOJBFVXMVVTJBVOZVXLVVQVWRVVOKVPV
      QVRWAZVSWBVXGMVXDSZVXEMRZVXFVXQVWPVXFTMVXDMWCVXFVXDJVTVXCVITJVWQVTVXCWDJV
      XCWEWFWGWHMVXDWIWJWKVWPVWQVTWLZQZVXDJVWQBFBJVOZVXBVVTWMZVCZVIZVXEVWGVXTJV
      WQVXCVYCVWPVWRVWQPZVXCVYCRZVXSVWPVYEQZVURVWRFPZVXBVXLPZVYFVURVWLVWOVYEWNV
      YGVWQFVWRFVWBWOZVWPVYEWPXCZVYGVYHVVSVYIVYKVWMVVSVWOVYEVURVVNVVSVHZWQVVRVY
      IBVWRFVYAVVPVXBVVQVXLVVOVWRVVMVPZVVOVWRKVPWRWSWTZDFVXBBKVWRLMVXPXAXBXDXEV
      XTVXDMSZVXEVXDRZVXTVXDVXJMVXTVXCVXJSZJVWQVAZVXDVXJSVXTVXSVYQJVWQUQVYRVWPV
      XSWPVYQJVWQVXCMVXJVXCVWTYDMVWTVXBXFDMVWSVWTVWTXGXHXIVXPXJXKVYQJVWQUUAXLJV
      WQVXCVXJXMVNVXPUUBVXDMUUCZWJVXTVWGBFJVWQVYBVIZVCZVYDVXTVVPVYTRZBFUQZVWGWU
      ARVXTWUBBVWQUQZWUBBVWCUQZWUCVXTVVSVVRBVWQUQZWUDVWMVVSVWOVXSVYLWQVWQFSVVSW
      UFXNVYJVVRBVWQFUUDUUEVVRWUBBVWQVVOVWQPZVVRQVVPVYTVVRVVPVYTSZWUGVVRVVPVYBS
      ZJVWQUQWUHVVRWUIJVWQVVRVYAWUIVVRWUIVYAXOZVVPVVTSVVPVVQXPWUJVYBVVTVVPVYAVX
      BVVTUUFZUUGXQVYAVVPVVPVYBVVPUUHZVYAVYBVXBVVPVYAVXBVVTUUIZVYMWKWGUUJUUKJVW
      QVYBVVPUULXRWHWUGVYTVVPSZVVRWUGVYBVVPSZJVWQVAZWUNWUGVVPVVPSZWUPWULWUOWUQJ
      VVOVWQVXOVYBVVPVVPVXOVYBVXBVVPVYBVXBRBJWUMUUMVWRVVOVVMVPXSUUNUUOUUPJVWQVY
      BVVPXMVNXTYAUUQUVFVWPVWDVXSWUEVXHVXSVWAWUBBVWCVXSVVOVWCPZQZWUBVWAVVTVYTRW
      USVYTJVWQVVTVIZVVTWUSJVWQVYBVVTWUSVYEQZWUJVYBVVTRWVAVYAVVOVWBPZWURWVBXOVX
      SVYEVVOFVWBUURUUSWVAWVBVYAVWRVWBPWVAVWQVWBVWRFVWBUUTZWUSVYEWPXCVVOVWRVWBY
      BXQUVGWUKVNXEVXSWUTVVTRWURJVWQVVTUVAXTUVBVVPVVTVYTUVCXQUVDUVEWUCWUBBVWQVW
      CUMZUQWUDWUEQWUBBWVDFFVWBUVRUVHWUBBVWQVWCUVIUVJYEBFVVPVYTVMVNVXSWUAVYDRVW
      PBJFVWQVYBUVKWHXSUVLYCVWPVXEVVKPCUGZVXCRZJVWQVAZCUVMZVTVWPWVHVTRZQVXEMVVK
      WVIVXRVWPWVIVXEMTVGMWVIVXDTMWVIVXDVTYFZTWVIVXDWVHYFZWVJJCVWQVXCVXAVXBVWTD
      MVWSMVXNTOVXMTPZVXNTPJFJFVXMTUVNWVLVYHVXLVWRKUVOUVPYGUVQUVSZUVTUWAUWBZUWC
      ZWVHVTUWDYHUWEWFUWFMUWIWFWHVWPMVVKPWVIVWPVVJVVKMVURVVJVVKSZVWLVWOVURVVJTP
      ZWVPVURVUSTPVVITPWVQMUWJVURVVIGYIABCFGHKLNUWGZVURIFVUTUFZVVAYJZYKZGVVHUEZ
      VVIGSVURVVGGPZEVVAUQIFUQWWBVURWWCIEFVVAABCDFGVVFHJKVUTLMNOUWHUWKIEFVVAVVG
      GVVHVVHXGZUWLWJZWWAGVVHUWMVNZUWNVUSVVITTUWOUXAZVVJTUWPVNWQMVVJPZVWPWWHVUS
      VVJSVUSVVIUWQMVVJWVMUWRUWSZYGUWTXTYLVWPWVHVTWLZQZVXEVXDVVKWWKVYOVYPWWKVXD
      VVKURZMWWKVXDVVKPVXDWWLSWWKVXDWVKVVKWVOWWKWVQWVHVVJSZWWJWVHUTPZWVKVVKPVUR
      WVQVWLVWOWWJWWGYMVWPWWMWWJVWPWVHVVIVVJVWPWVGCVVIVWPWVFWVEVVIPZJVWQVWPJUXB
      JCVVIJVVHIEJFVVAVVGJFYNJVVAYNJVVEVVFJVVDJDMVVCJMVXNOJFVXMUXCUXDJVVCYNUXEU
      XFJVVFYNUXGUXHUXIUXJVWPVYEWVFWWOXNVYGWWOWVFVXCVVIPVYGVWRVXBUXMZVVHUHZVXCV
      VIVYGWWQVWRVXBVVHUXKZVXCVWRVXBVVHUYCVYGVYHVYIVXCTPZWWRVXCRVYKVYNWWSVYGWVN
      YGIEVWRVXBFVVAVVGVXCVVHTVXLIJVOZVVFVXBRVVGVXAVVFUKVXCWWTVVEVXAVVFWWTVVDVW
      TWWTDMVVCVWSVUTVWRVVBVPUXLUXNUXOVVFVXBVXAUXPUXQVUTVWRKVPWWDUXRUXSUXTVYGVV
      HWWAUPWWPWWAPWWQVVIPVYGWWAGVVHVURWWBVWLVWOVYEWWEYMUYAVYGWWPJFVWRUFZVXLYJZ
      YKZWWAVYGVYHVYIWWPWXCPVYKVYNJFVXLVXBUYBYEJIFWXBWVTJIVOWXAWVSVXLVVAVWRVUTU
      YMVWRVUTKVPUYDUYEUYFWWAWWPVVHUYGYPUYHWVEVXCVVIYBXQUYIUYJUYKVVIVUSUYNUYLXT
      VWPWWJWPWWKVWQUTPZWWNWWKVWNVWQVWBSWXDVWMVWNVWDWWJUYOWVCVWBVWQUYPXLJCVWQVX
      CUYQVNWVHVVJTUYRUYSYOZVXDVVKXPVNVURWWLMRVWLVWOWWJVURVVJURZWWLMVURWVQWXFWW
      LRWWGVVJTUYTVNVURWXFMVURVVJMVUDZSWXFMSVURVUSVVIWXGVURMWXGMWXGPVURMWVMVUEY
      GYQVURVVIGWXGWWFVURGURZMSZGWXGSVURMWXHRWXIVURMVXNWXHOABCFGHJKLNVUAYHWXHMV
      UBVNGMYRXRVUCYSVVJMYRWJWWHMWXFSVURWWIMVVJXPVUFYAVUGYMYTVYSWJWXEYLYCYLVUHV
      UIVUJVVLVWGVVKYBXQVUKVULVUMVUNVURVVKGUOUHZGVURGYIPVVJGSVVKWXJSWVRVURVUSVV
      IGVURMGVURMVXNGOABCFGHJKLNVUOYOYQWWFYSVVJGYIVUPYPABCFGHKLNVUQYTYA $.
  $}

  ${
    $d g x y z A $.  $d g x y z F $.  $d g x y z V $.
    $( The product topology is a topology.  (Contributed by Mario Carneiro,
       3-Feb-2015.) $)
    pttop $p |- ( ( A e. V /\ F : A --> Top ) -> ( Xt_ ` F ) e. Top ) $=
      ( vg vy vz vx wcel ctop wf wa cpt cfv cv wfn wral cuni wceq cdif cfn wrex
      w3a cixp wex cab ctg ffn eqid ptval sylan2 ctb ptbas tgcl syl eqeltrd ) A
      CHZAIBJZKZBLMZDNZAOENZUTMZVABMZHEAPVBVCQREAFNSPFTUAUBGNEAVBUCRKDUDGUEZUFM
      ZIUQUPBAOUSVERAIBUGGEFAVDDBCVDUHZUIUJURVDUKHVEIHGEFAVDDBCVFULVDUMUNUO $.
  $}

  ${
    $d g k x y z A $.  $d g k x y z F $.  $d g x y S $.  $d g k x y z V $.
    $d k ph $.  $d k y W $.
    ptopn.1 $e |- ( ph -> A e. V ) $.
    ptopn.2 $e |- ( ph -> F : A --> Top ) $.
    ptopn.3 $e |- ( ph -> W e. Fin ) $.
    ptopn.4 $e |- ( ( ph /\ k e. A ) -> S e. ( F ` k ) ) $.
    ptopn.5 $e |- ( ( ph /\ k e. ( A \ W ) ) -> S = U. ( F ` k ) ) $.
    $( A basic open set in the product topology.  (Contributed by Mario
       Carneiro, 3-Feb-2015.) $)
    ptopn $p |- ( ph -> X_ k e. A S e. ( Xt_ ` F ) ) $=
      ( vg vy vz vx cv cfv wcel wceq wfn wral cuni cdif cfn wrex w3a wa wex cab
      cixp cpt ctg ctb wss ctop eqid ptbas syl2anc bastg syl ffn ptval sseqtr4d
      wf elptr2 sseldd ) AMQZBUANQZVHRZVIERZSNBUBVJVKUCTNBOQUDUBOUEUFUGPQNBVJUK
      TUHMUIPUJZEULRZDBCUKAVLVLUMRZVMAVLUNSZVLVNUOABFSZBUPEVEZVOHIPNOBVLMEFVLUQ
      ZURUSVLUNUTVAAVPEBUAZVMVNTHAVQVSIBUPEVBVAPNOBVLMEFVRVCUSVDAPNOBVLCMDEFGVR
      HJKLVFVG $.
  $}

  ${
    $d ph k $.  $d A k $.  $d F k $.  $d V k $.  $d Y k $.
    ptopn2.a $e |- ( ph -> A e. V ) $.
    ptopn2.f $e |- ( ph -> F : A --> Top ) $.
    ptopn2.o $e |- ( ph -> O e. ( F ` Y ) ) $.
    $( A sub-basic open set in the product topology.  (Contributed by Stefan
       O'Rear, 22-Feb-2015.) $)
    ptopn2 $p |- ( ph ->
        X_ k e. A if ( k = Y , O , U. ( F ` k ) ) e. ( Xt_ ` F ) ) $=
      ( cv wceq cfv cuni cif csn cfn wcel adantr ctop snfi a1i fveq2 syl5ibrcom
      wa eleq2d imp ffvelrnda eqid topopn syl ifclda cdif eldifn velsn iffalsed
      wn sylnib adantl ptopn ) ABCKZGLZEVADMZNZOZCDFGPZHIVFQRAGUAUBAVABRZUEZVBE
      VDVCVHVBEVCRZVHVIVBEGDMZRZAVKVGJSVBVCVJEVAGDUCUFUDUGVHVDVCRZVBUQVHVCTRVLA
      BTVADIUHVCVDVDUIUJUKSULVABVFUMRZVEVDLAVMVBEVDVMVAVFRVBVABVFUNCGUOURUPUSUT
      $.
  $}

  ${
    $d k s v K $.  $d f k r s v x R $.  $d f k r s v x S $.  $d r s T $.
    $d k x X $.
    xkoval.x $e |- X = U. R $.
    xkoval.k $e |- K = { x e. ~P X | ( R |`t x ) e. Comp } $.
    xkoval.t $e |- T = ( k e. K , v e. S |->
      { f e. ( R Cn S ) | ( f " k ) C_ v } ) $.
    $( Functionality of function ` T ` .  (Contributed by Mario Carneiro,
       19-Mar-2015.) $)
    xkotf $p |- T : ( K X. S ) --> ~P ( R Cn S ) $=
      ( cv cima wss ccn co crab cpw wral wcel wf ssrab2 ovex elpw2 mpbir rgen2w
      cxp fmpt2 mpbi ) FMGMNBMOZFCDPQZRZULSZUAZBDTGHTHDUHUNEUBUOGBHDUOUMULOUKFU
      LUCUMULCDPUDUEUFUGGBHDUMUNELUIUJ $.

    $( Alternative expression for the subbase of the compact-open topology.
       (Contributed by Mario Carneiro, 23-Mar-2015.) $)
    xkobval $p |- ran T = { s | E. k e. ~P X E. v e. S
      ( ( R |`t k ) e. Comp /\ s = { f e. ( R Cn S ) | ( f " k ) C_ v } ) } $=
      ( cv co crab wceq wrex crest ccmp crn cima wss ccn cab wcel wa cpw rnmpt2
      oveq2 eleq1d rexrab rexeqi r19.42v rexbii 3bitr4i abbii eqtri ) EUAJNFNGN
      ZUBBNUCFCDUDOPZQZBDRZGHRZJUECUSSOZTUFZVAUGBDRZGIUHZRZJUEGBJHDUTEMUIVCVHJV
      BGCANZSOZTUFZAVGPZRVEVBUGZGVGRVCVHVKVEVBGAVGVIUSQVJVDTVIUSCSUJUKULVBGHVLL
      UMVFVMGVGVEVABDUNUOUPUQUR $.

    $( Value of the compact-open topology.  (Contributed by Mario Carneiro,
       19-Mar-2015.) $)
    xkoval $p |- ( ( R e. Top /\ S e. Top ) ->
      ( S ^ko R ) = ( topGen ` ( fi ` ran T ) ) ) $=
      ( ctop wcel co cfv ctg wceq cv crab vs vr cxko crn cfi ccmp cuni cpw cima
      crest wss ccn cmpt2 wa simpr unieqd syl6eqr pweqd oveq1d eleq1d rabeqbidv
      simpl oveq12d rabeq mpt2eq123dv rneqd fveq2d df-xko fvex ovmpt2a ancoms
      syl ) DMNCMNDCUCOEUDZUEPZQPZRUAUBDCMMGBUBSZASZUJOZUFNZAVPUGZUHZTZUASZFSGS
      UIBSUKZFVPWCULOZTZUMZUDZUEPZQPVOUCWCDRZVPCRZUNZWIVNQWLWHVMUEWLWGEWLWGGBHD
      WDFCDULOZTZUMEWLGBWBWCWFHDWNWLWBCVQUJOZUFNZAIUHZTHWLVSWPAWAWQWLVTIWLVTCUG
      IWLVPCWJWKUOZUPJUQURWLVRWOUFWLVPCVQUJWRUSUTVAKUQWJWKVBZWLWEWMRWFWNRWLVPCW
      CDULWRWSVCWDFWEWMVDVLVELUQVFVGVGABFGUAUBVHVNQVIVJVK $.
  $}

  ${
    $d f k v x y A $.  $d f k v x y R $.  $d f k v x y S $.  $d f k v y U $.
    $d k v x y X $.
    $( The compact-open topology is a topology.  (Contributed by Mario
       Carneiro, 19-Mar-2015.) $)
    xkotop $p |- ( ( R e. Top /\ S e. Top ) -> ( S ^ko R ) e. Top ) $=
      ( vk vv vx vf ctop wcel wa cxko co crest ccmp cuni cpw crab cima cfv eqid
      cv wss ccn cmpt2 crn cfi ctg xkoval ctb fibas tgcl ax-mp syl6eqel ) AGHBG
      HIBAJKCDAETLKMHEANZOPZBFTCTQDTUAFABUBKPUCZUDZUERZUFRZGEDABUOFCUNUMUMSUNSU
      OSUGUQUHHURGHUPUIUQUJUKUL $.

    xkoopn.x $e |- X = U. R $.
    xkoopn.r $e |- ( ph -> R e. Top ) $.
    xkoopn.s $e |- ( ph -> S e. Top ) $.
    xkoopn.a $e |- ( ph -> A C_ X ) $.
    xkoopn.c $e |- ( ph -> ( R |`t A ) e. Comp ) $.
    xkoopn.u $e |- ( ph -> U e. S ) $.
    $( A basic open set of the compact-open topology.  (Contributed by Mario
       Carneiro, 19-Mar-2015.) $)
    xkoopn $p |- ( ph ->
      { f e. ( R Cn S ) | ( f " A ) C_ U } e. ( S ^ko R ) ) $=
      ( vk vv vx cv wss wcel wceq vy cima ccn crab crest ccmp cpw cmpt2 crn cfi
      co cfv ctg cxko cvv ovex pwex cxp eqid xkotf ax-mp ssexi ssfii fvex bastg
      wf frn sstri wrex ctop wb topopn elpw2g 3syl mpbird oveq2 eleq1d sylanbrc
      elrab eqidd imaeq2 sseq1d rabbidv eqeq2d sseq2 rspc2ev rabex eqeq1 rnmpt2
      syl3anc 2rexbidv elab2 sylibr sseldi xkoval syl2anc eleqtrrd ) AFQZBUBZER
      ZFCDUCUKZUDZNOCPQZUEUKZUFSZPGUGZUDZDWRNQZUBZOQZRZFXAUDZUHZUIZUJULZUMULZDC
      UNUKZAXNXPXBXNXOXPXNUOSXNXORXNXAUGZXACDUCUPZUQXGDURZXRXMVFXNXRRPOCDXMFNXG
      GHXGUSZXMUSZUTXTXRXMVGVAVBXNUOVCVAXOUOSXOXPRXNUJVDXOUOVEVAVHAXBXLTZODVINX
      GVIZXBXNSABXGSZEDSXBXBTZYDABXFSZCBUEUKZUFSZYEAYGBGRZKACVJSZGCSYGYJVKICGHV
      LBGCVMVNVOLXEYIPBXFXCBTXDYHUFXCBCUEVPVQVSVRMAXBVTYCYFXBWSXJRZFXAUDZTNOBEX
      GDXHBTZXLYMXBYNXKYLFXAYNXIWSXJXHBWRWAWBWCWDXJETZYMXBXBYOYLWTFXAXJEWSWEWCW
      DWFWJUAQZXLTZODVINXGVIYDUAXBXNWTFXAXSWGYPXBTYQYCNOXGDYPXBXLWHWKNOUAXGDXLX
      MYBWIWLWMWNAYKDVJSXQXPTIJPOCDXMFNXGGHYAYBWOWPWQ $.
  $}

  ${
    txtopi.1 $e |- R e. Top $.
    txtopi.2 $e |- S e. Top $.
    $( The product of two topologies is a topology.  (Contributed by Jeff
       Madsen, 15-Jun-2010.) $)
    txtopi $p |- ( R tX S ) e. Top $=
      ( ctop wcel ctx co txtop mp2an ) AEFBEFABGHEFCDABIJ $.
  $}

  ${
    $d u v R $.  $d u v S $.
    $( The underlying set of the product of two topologies.  (Contributed by
       Mario Carneiro, 22-Aug-2015.)  (Revised by Mario Carneiro,
       2-Sep-2015.) $)
    txtopon $p |- ( ( R e. ( TopOn ` X ) /\ S e. ( TopOn ` Y ) ) ->
      ( R tX S ) e. ( TopOn ` ( X X. Y ) ) ) $=
      ( vu vv ctopon cfv wcel wa ctop cxp cuni wceq topontop syl2an cv toponuni
      eqid cvv ctx co txtop cmpt2 crn ctg txuni2 xpeq12 txbasex unitg syl txval
      3eqtr4a unieqd eqtr4d istopon sylanbrc ) ACGHZIZBDGHZIZJZABUAUBZKIZCDLZVC
      MZNVCVEGHIUSAKIBKIVDVACAODBOABUCPVBVEEFABEQFQLUDUEZUFHZMZVFVBAMZBMZLZVGMZ
      VEVIEFVGABVJVKVGSZVJSVKSUGUSCVJNDVKNVEVLNVACARDBRCVJDVKUHPVBVGTIVIVMNEFVG
      ABURUTVNUIVGTUJUKUMVBVCVHEFVGABURUTVNULUNUOVEVCUPUQ $.
  $}

  ${
    txuni.1 $e |- X = U. R $.
    txuni.2 $e |- Y = U. S $.
    $( The underlying set of the product of two topologies.  (Contributed by
       Jeff Madsen, 2-Sep-2009.) $)
    txuni $p |- ( ( R e. Top /\ S e. Top ) -> ( X X. Y ) = U. ( R tX S ) ) $=
      ( ctop wcel wa ctx cxp ctopon cuni wceq toptopon txtopon syl2anb toponuni
      co cfv syl ) AGHZBGHZIABJSZCDKZLTHZUEUDMNUBACLTHBDLTHUFUCACEOBDFOABCDPQUE
      UDRUA $.
  $}

  ${
    txunii.1 $e |- R e. Top $.
    txunii.2 $e |- S e. Top $.
    txunii.3 $e |- X = U. R $.
    txunii.4 $e |- Y = U. S $.
    $( The underlying set of the product of two topologies.  (Contributed by
       Jeff Madsen, 15-Jun-2010.) $)
    txunii $p |- ( X X. Y ) = U. ( R tX S ) $=
      ( ctop wcel cxp ctx co cuni wceq txuni mp2an ) AIJBIJCDKABLMNOEFABCDGHPQ
      $.
  $}

  ${
    $d g k x y z A $.  $d g k x y z F $.  $d g k x y z V $.
    ptuni.1 $e |- J = ( Xt_ ` F ) $.
    $( The base set for the product topology.  (Contributed by Mario Carneiro,
       3-Feb-2015.) $)
    ptuni $p |- ( ( A e. V /\ F : A --> Top ) ->
      X_ x e. A U. ( F ` x ) = U. J ) $=
      ( vg vy vz vk wcel ctop wa cv wfn cfv wral cuni wceq cixp wf cdif cfn w3a
      wrex wex cab ctg ctb eqid ptbas unitg syl cpt sylan2 syl5eq unieqd ptuni2
      ffn ptval 3eqtr4rd ) BEKZBLCUAZMZGNZBOHNZVEPZVFCPZKHBQVGVHRSHBINUBQIUCUEU
      DJNHBVGTSMGUFJUGZUHPZRZVIRZDRABANCPRTVDVIUIKVKVLSJHIBVIGCEVIUJZUKVIUIULUM
      VDDVJVDDCUNPZVJFVCVBCBOVNVJSBLCUSJHIBVIGCEVMUTUOUPUQJHIBVIGACEVMURVA $.
  $}

  ${
    $d A x y $.  $d K y $.  $d V y $.
    ptunimpt.j $e |- J = ( Xt_ ` ( x e. A |-> K ) ) $.
    $( Base set of a product topology given by substitution.  (Contributed by
       Stefan O'Rear, 22-Feb-2015.) $)
    ptunimpt $p |- ( ( A e. V /\ A. x e. A K e. Top ) ->
        X_ x e. A U. K = U. J ) $=
      ( vy wcel ctop wral wa cuni cixp cv cmpt cfv wceq eqid fvmpt2 unieqd nfcv
      eqcomd ralimiaa adantl ixpeq2 nffvmpt1 nfuni fveq2 cbvixp syl6eqr wf fmpt
      syl ptuni sylan2b eqtrd ) BEHZDIHZABJZKZABDLZMZGBGNZABDOZPZLZMZCLZUTVBABA
      NZVDPZLZMZVGUTVAVKQZABJZVBVLQUSVNUQURVMABVIBHURKZDVJVOVJDABDIVDVDRZSUBTUC
      UDABVAVKUEUMGABVFVKAVEABDVCUFUGGVKUAVCVIQVEVJVCVIVDUHTUIUJUSUQBIVDUKVGVHQ
      ABIDVDVPULGBVDCEFUNUOUP $.

    $( The base set for the product topology.  (Contributed by Mario Carneiro,
       22-Aug-2015.) $)
    pttopon $p |- ( ( A e. V /\ A. x e. A K e. ( TopOn ` B ) ) ->
      J e. ( TopOn ` X_ x e. A B ) ) $=
      ( wcel ctopon cfv wral wa ctop cixp cuni wceq cmpt wf ralimi sylan2 sylib
      topontop eqid fmpt cpt pttop syl5eqel toponuni ixpeq2 syl adantl ptunimpt
      eqtrd istopon sylanbrc ) BFHZECIJHZABKZLZDMHZABCNZDOZPDVAIJHURUPBMABEQZRZ
      UTUREMHZABKZVDUQVEABCEUBSZABMEVCVCUCUDUAUPVDLDVCUEJMGBVCFUFUGTUSVAABEOZNZ
      VBURVAVIPZUPURCVHPZABKVJUQVKABCEUHSABCVHUIUJUKURUPVFVIVBPVGABDEFGULTUMVAD
      UNUO $.
  $}

  ${
    $d x A $.  $d x R $.  $d x V $.  $d x X $.
    ptuniconst.2 $e |- J = ( Xt_ ` ( A X. { R } ) ) $.
    $( The base set for a product topology when all factors are the same.
       (Contributed by Mario Carneiro, 22-Aug-2015.) $)
    pttoponconst $p |- ( ( A e. V /\ R e. ( TopOn ` X ) ) ->
        J e. ( TopOn ` ( X ^m A ) ) ) $=
      ( vx wcel ctopon cfv wa cixp cmap co wral id ralrimivw csn cpt sylan2 cxp
      cmpt fconstmpt fveq2i eqtri pttopon toponmax ixpconstg fveq2d eleqtrd
      wceq ) ADHZBEIJHZKZCGAELZIJZEAMNZIJUMULUMGAOCUPHUMUMGAUMPQGAECBDCABRUAZSJ
      GABUBZSJFURUSSGABUCUDUEUFTUNUOUQIUMULEBHUOUQUKEBUGGAEDBUHTUIUJ $.

    ptuniconst.1 $e |- X = U. R $.
    $( The base set for a product topology when all factors are the same.
       (Contributed by Mario Carneiro, 3-Feb-2015.) $)
    ptuniconst $p |- ( ( A e. V /\ R e. Top ) -> ( X ^m A ) = U. J ) $=
      ( wcel ctop wa cmap co ctopon cfv cuni wceq toptopon pttoponconst sylan2b
      toponuni syl ) ADHZBIHZJCEAKLZMNHZUDCOPUCUBBEMNHUEBEGQABCDEFRSUDCTUA $.
  $}

  ${
    $d f k v x R $.  $d f k v x S $.
    xkouni.1 $e |- J = ( S ^ko R ) $.
    $( The base set of the compact-open topology.  (Contributed by Mario
       Carneiro, 19-Mar-2015.) $)
    xkouni $p |- ( ( R e. Top /\ S e. Top ) -> ( R Cn S ) = U. J ) $=
      ( vf vk vv vx wcel co cuni wss cv c0 crab wceq a1i eqid cvv ax-mp ctop wa
      ccn cxko cima wral ima0 eqsstri ralrimiva rabid2 sylibr simpl simpr crest
      0ss csn ccmp rest0 adantr syl6eqel topopn adantl xkoopn eqeltrd syl6eleqr
      0cmp elssuni syl cpw cmpt2 crn cfi cfv ctg xkoval unieqd unieqi ovex pwex
      cxp xkotf frn ssexi fiuni fvex unitg eqtr4i 3eqtr4g sspwuni sylib eqsstrd
      wf eqssd ) AUAIZBUAIZUBZABUCJZCKZWPWQCIWQWRLWPWQBAUDJZCWPWQEMZNUEZBKZLZEW
      QOZWSWPXCEWQUFWQXDPWPXCEWQXCWPWTWQIUBXANXBWTUGXBUOUHQUIXCEWQUJUKWPNABXBEA
      KZXERZWNWOULWNWOUMNXELWPXEUOQWPANUNJZNUPZUQWNXGXHPWOAURUSVFUTWOXBBIWNBXBX
      BRVAVBVCVDDVEWQCVGVHWPWRFGAHMUNJUQIHXEVIOZBWTFMUEGMLEWQOVJZVKZKZWQWPWSKXK
      VLVMZVNVMZKZWRXLWPWSXNHGABXJEFXIXEXFXIRZXJRZVOVPCWSDVQXLXMKZXOXKSIXLXRPXK
      WQVIZWQABUCVRVSXIBVTZXSXJWLXKXSLZHGABXJEFXIXEXFXPXQWAXTXSXJWBTZWCXKSWDTXM
      SIXOXRPXKVLWEXMSWFTWGWHWPYAXLWQLYAWPYBQXKWQWIWJWKWM $.

    $( The base set of the compact-open topology.  (Contributed by Mario
       Carneiro, 22-Aug-2015.) $)
    xkotopon $p |- ( ( R e. Top /\ S e. Top ) ->
        J e. ( TopOn ` ( R Cn S ) ) ) $=
      ( ctop wcel wa ccn co cuni wceq ctopon cfv xkotop syl5eqel xkouni istopon
      cxko sylanbrc ) AEFBEFGZCEFABHIZCJKCUALMFTCBARIEDABNOABCDPUACQS $.
  $}

  ${
    $d g k n u w x y z A $.  $d g k n u w x y z F $.  $d g k n u w x y z V $.
    $d w X $.
    ptval2.1 $e |- J = ( Xt_ ` F ) $.
    ptval2.2 $e |- X = U. J $.
    ptval2.3 $e |- G =
      ( k e. A , u e. ( F ` k ) |-> ( `' ( w e. X |-> ( w ` k ) ) " u ) ) $.
    $( The value of the product topology function.  (Contributed by Mario
       Carneiro, 7-Feb-2015.) $)
    ptval2 $p |- ( ( A e. V /\ F : A --> Top ) -> J =
      ( topGen ` ( fi ` ( { X } u. ran G ) ) ) ) $=
      ( vg vy vz vx vn wcel cv cfv ctop wf wfn wral cuni wceq cdif cfn wrex w3a
      wa cixp wex cab ctg csn crn cun cfi ffn cpt eqid ptval syl5eq sylan2 cmpt
      ccnv cmpt2 ptbasfi ptuni syl6eqr sneqd 3ad2ant1 mpteq1d cnveqd mpt2eq3dva
      cima imaeq1d rneqd uneq12d fveq2d eqtrd ) CHRZCUAEUBZUKZGMSZCUCNSZWFTZWGE
      TZRNCUDWHWIUEUFNCOSUGUDOUHUIUJPSNCWHULUFUKMUMPUNZUOTZIUPZFUQZURZUSTZUOTWD
      WCECUCZGWKUFCUAEUTWCWPUKGEVATWKJPNOCWJMEHWJVBZVCVDVEWEWJWOUOWEWJQCQSETUEU
      LZUPZDBCDSZETZAWRWTASTZVFZVGZBSZVQZVHZUQZURZUSTWOPNOABCWJMDQEHWRWQWRVBVIW
      EXIWNUSWEWSWLXHWMWEWRIWEWRGUEIQCEGHJVJKVKZVLWEXGFWEXGDBCXAAIXBVFZVGZXEVQZ
      VHFWEDBCXAXFXMWEWTCRZXEXARZUJZXDXLXEXPXCXKXPAWRIXBWEXNWRIUFXOXJVMVNVOVRVP
      LVKVSVTWAWBWAWB $.
  $}

  ${
    $d R u v $.  $d S u v $.  $d A u v $.  $d B u v $.
    $( The product of two open sets is open in the product topology.
       (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    txopn $p |- ( ( ( R e. V /\ S e. W ) /\ ( A e. R /\ B e. S ) )
                                               -> ( A X. B ) e. ( R tX S ) ) $=
      ( vu vv wcel wa cxp cv cmpt2 cvv eqid syl adantr wceq wrex eqeq2d crn ctg
      cfv ctx co wss txbasex bastg xpeq1 xpeq2 mp3an3 wb xpexg elrnmpt2g mpbird
      rspc2ev adantl sseldd txval eleqtrrd ) CEIDFIJZACIZBDIZJZJZABKZGHCDGLZHLZ
      KZMZUAZUBUCZCDUDUEZVEVKVLVFVAVKVLUFZVDVAVKNIVNGHVKCDEFVKOZUGVKNUHPQVDVFVK
      IZVAVDVPVFVIRZHDSGCSZVBVCVFVFRZVRVFOVQVSVFAVHKZRGHABCDVGARVIVTVFVGAVHUITV
      HBRVTVFVFVHBAUJTUPUKVDVFNIVPVRULABCDUMGHCDVIVFVJNVJOUNPUOUQURVAVMVLRVDGHV
      KCDEFVOUSQUT $.
  $}

  $( The product of two closed sets is closed in the product topology.
     (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro,
     3-Sep-2015.) $)
  txcld $p |- ( ( A e. ( Clsd ` R ) /\ B e. ( Clsd ` S ) ) ->
      ( A X. B ) e. ( Clsd ` ( R tX S ) ) ) $=
    ( ccld cfv wcel wa cxp cuni wss cdif eqid cldss syl2an cldrcl adantr adantl
    ctop syl ctx co xpss12 txuni sseqtrd cun difxp difeq1d syl5eqr txtop cldopn
    wceq topopn txopn syl22anc unopn syl3anc eqeltrrd wb iscld mpbir2and ) ACEF
    GZBDEFGZHZABIZCDUAUBZEFGZVEVFJZKZVHVELZVFGZVDVECJZDJZIZVHVBAVLKBVMKVEVNKVCA
    CVLVLMZNBDVMVMMZNAVLBVMUCOVBCSGZDSGZVNVHULVCACPZBDPZCDVLVMVOVPUDOZUEVDVLALZ
    VMIZVLVMBLZIZUFZVJVFVDWFVNVELVJABVLVMUGVDVNVHVEWAUHUIVDVFSGZWCVFGZWEVFGZWFV
    FGVBVQVRWGVCVSVTCDUJOZVDVQVRWBCGZVMDGZWHVBVQVCVSQZVCVRVBVTRZVBWKVCACVLVOUKQ
    VDVRWLWNDVMVPUMTWBVMCDSSUNUOVDVQVRVLCGZWDDGZWIWMWNVDVQWOWMCVLVOUMTVCWPVBBDV
    MVPUKRVLWDCDSSUNUOWCWEVFUPUQURVDWGVGVIVKHUSWJVEVFVHVHMUTTVA $.

  ${
    $d r s u w x y z A $.  $d r s u w x y z B $.  $d r s u w x y z R $.
    $d r s u w x y z S $.  $d r s u w x y z X $.  $d r s u w x y z Y $.
    $( Closure of a rectangle in the product topology.  (Contributed by Mario
       Carneiro, 17-Sep-2015.) $)
    txcls $p |- ( ( ( R e. ( TopOn ` X ) /\ S e. ( TopOn ` Y ) ) /\
      ( A C_ X /\ B C_ Y ) ) -> ( ( cls ` ( R tX S ) ) ` ( A X. B ) ) =
        ( ( ( cls ` R ) ` A ) X. ( ( cls ` S ) ` B ) ) ) $=
      ( vu vz vr vs vw cfv wcel wa wss cxp ad2antrr wceq syl2anc cv ctopon ccld
      vx vy ctx co ccl ctop cuni topontop simprl toponuni sseqtrd eqid ad2antlr
      clscld simprr txcld sscls xpss12 clsss2 wrel relxp a1i cop opelxp cin wne
      c0 wi wral wrex wb eltx eleq1 anbi1d 2rexbidv rspccva wex simplrl simprll
      simprrl sylib simpld clsndisj syl32anc simplrr simprlr simprd eeanv inss1
      opelxpi inxp syl6eleqr sseldi simprrr sselda sylan2 inss2 adantl exlimdvv
      n0 inelcm ex syl5bir mp2and expr rexlimdvva syl5 expd sylbid ralrimiv syl
      txtopon clsss3 sseqtr4d adantrr adantrl eleqtrd elcls mpbird syl5bi eqssd
      syl3anc relssdv ) CEUALZMZDFUALZMZNZAEOZBFOZNZNZABPZCDUEUFZUGLLZACUGLLZBD
      UGLLZPZYNYTYPUBLMZYOYTOZYQYTOYNYRCUBLMZYSDUBLMZUUAYNCUHMZACUIZOZUUCYGUUEY
      IYMECUJQZYNAEUUFYJYKYLUKYGEUUFRYIYMECULQZUMZACUUFUUFUNZUPSYNDUHMZBDUIZOZU
      UDYIUULYGYMFDUJUOZYNBFUUMYJYKYLUQYIFUUMRYGYMFDULUOZUMZBDUUMUUMUNZUPSYRYSC
      DURSYNAYROZBYSOZUUBYNUUEUUGUUSUUHUUJACUUFUUKUSSYNUULUUNUUTUUOUUQBDUUMUURU
      SSAYRBYSUTSYTYOYPYPUIZUVAUNZVASYNUCUDYTYQYTVBYNYRYSVCVDUCTZUDTZVEZYTMUVCY
      RMZUVDYSMZNZYNUVEYQMZUVCUVDYRYSVFYNUVHUVIYNUVHNZUVIUVEGTZMZUVKYOVGVIVHZVJ
      ZGYPVKZUVJUVNGYPUVJUVKYPMZHTZITZJTZPZMZUVTUVKOZNZJDVLICVLZHUVKVKZUVNYJUVP
      UWEVMYMUVHIJUVKCDYFYHHVNQUVJUWEUVLUVMUWEUVLNUVEUVTMZUWBNZJDVLICVLZUVJUVMU
      WDUWHHUVEUVKUVQUVERZUWCUWGIJCDUWIUWAUWFUWBUVQUVEUVTVOVPVQVRUVJUWGUVMIJCDU
      VJUVRCMZUVSDMZNZUWGUVMUVJUWLUWGNZNZUVQUVRAVGZMZHVSZKTZUVSBVGZMZKVSZUVMUWN
      UWOVIVHZUWQUWNUUEUUGUVFUWJUVCUVRMZUXBYNUUEUVHUWMUUHQYNUUGUVHUWMUUJQYNUVFU
      VGUWMVTUVJUWJUWKUWGWAUWNUXCUVDUVSMZUWNUWFUXCUXDNUVJUWLUWFUWBWBUVCUVDUVRUV
      SVFWCZWDUVCAUVRCUUFUUKWEWFHUWOXBWCUWNUWSVIVHZUXAUWNUULUUNUVGUWKUXDUXFYNUU
      LUVHUWMUUOQYNUUNUVHUWMUUQQYNUVFUVGUWMWGUVJUWJUWKUWGWHUWNUXCUXDUXEWIUVDBUV
      SDUUMUURWEWFKUWSXBWCUWQUXANUWPUWTNZKVSHVSUWNUVMUWPUWTHKWJUWNUXGUVMHKUWNUX
      GUVMUWNUXGNUVQUWRVEZUVKMZUXHYOMZUVMUXGUWNUXHUVTMUXIUXGUVTYOVGZUVTUXHUVTYO
      WKUXGUXHUWOUWSPUXKUVQUWRUWOUWSWLUVRUVSABWMWNZWOUWNUVTUVKUXHUVJUWLUWFUWBWP
      WQWRUXGUXJUWNUXGUXKYOUXHUVTYOWSUXLWOWTUXHUVKYOXCSXDXAXEXFXGXHXIXJXKXLUVJY
      PUHMZYOUVAOUVEUVAMUVIUVOVMUVJYPEFPZUALMZUXMYJUXOYMUVHCDEFXNQZUXNYPUJXMUVJ
      YOUXNUVAYMYOUXNOYJUVHAEBFUTUOUVJUXOUXNUVARUXPUXNYPULXMZUMUVJUVEUXNUVAUVJU
      VCEMZUVDFMZUVEUXNMYNUVFUXRUVGYNYREUVCYNYRUUFEYNUUEUUGYRUUFOUUHUUJACUUFUUK
      XOSUUIXPWQXQYNUVGUXSUVFYNYSFUVDYNYSUUMFYNUULUUNYSUUMOUUOUUQBDUUMUURXOSUUP
      XPWQXRUVCUVDEFWLSUXQXSGUVEYOYPUVAUVBXTYDYAXDYBYEYC $.
  $}

  ${
    $d x y A $.  $d m n u v x y R $.  $d m n u v x y S $.  $d m n u v x y V $.
    $d x y B $.  $d x y C $.  $d x y D $.  $d m n u v x y W $.
    $( Subset property of the topological product.  (Contributed by Mario
       Carneiro, 2-Sep-2015.) $)
    txss12 $p |- ( ( ( B e. V /\ D e. W ) /\ ( A C_ B /\ C C_ D ) ) ->
      ( A tX C ) C_ ( B tX D ) ) $=
      ( vx vy wcel wa wss cv cxp cmpt2 crn ctg cfv ctx co cvv eqid txbasex cres
      adantr resmpt2 resss syl6eqssr adantl rnss tgss syl2anc wceq ssexg syl2an
      syl txval an4s ancoms 3sstr4d ) BEIZDFIZJZABKZCDKZJZJZGHACGLHLMZNZOZPQZGH
      BDVGNZOZPQZACRSZBDRSZVFVLTIZVIVLKZVJVMKVBVPVEGHVLBDEFVLUAZUBUDVFVHVKKZVQV
      EVSVBVEVHVKACMZUCVKGHBDACVGUEVKVTUFUGUHVHVKUIUOVIVLTUJUKVEVBVNVJULZVCUTVD
      VAWAVCUTJATICTIWAVDVAJABEUMCDFUMGHVIACTTVIUAUPUNUQURVBVOVMULVEGHVLBDEFVRU
      PUDUS $.

    $( It is sufficient to consider products of the bases for the topologies in
       the topological product.  (Contributed by Mario Carneiro,
       25-Aug-2014.) $)
    txbasval $p |- ( ( R e. V /\ S e. W ) ->
      ( ( topGen ` R ) tX ( topGen ` S ) ) = ( R tX S ) ) $=
      ( vu vv vm vn vx vy wcel wa cv cxp ctg cfv wss wceq ciun cvv ctx co cmpt2
      crn eqid txval cres bastg resmpt2 syl2an resss syl6eqssr rnss syl wf wral
      cuni wex eltg3 bi2anan9 eeanv an4 uniiun xpeq12i xpiundir xpiundi iuneq2i
      a1i 3eqtri ovex ssel2 anim12i an4s txopn sylan2 anassrs ralrimiva sylancr
      tgiun txbasex tgidm fveq2d 3eqtr4d adantr eleqtrd syl5eqel xpeq12 expimpd
      eleq1d syl5ibrcom syl5bi syl5bir sylbid ralrimivv fmpt2 sylib frn sseqtrd
      exlimdvv 2basgen syl2anc fvex mp2an syl6eqr eqtr2d ) ACKZBDKZLZABUAUBZEFA
      BEMZFMZNZUCZUDZOPZAOPZBOPZUAUBZEFXNABCDXNUEZUFZXHXOEFXPXQXLUCZUDZOPZXRXHX
      NYBQZYBXOQXOYCRXHXMYAQYDXHXMYAABNZUGZYAXFAXPQBXQQYFXMRXGACUHBDUHEFXPXQABX
      LUIUJYAYEUKULXMYAUMUNXHYBXIXOXHXPXQNZXIYAUOZYBXIQXHXLXIKZFXQUPEXPUPYHXHYI
      EFXPXQXHXJXPKZXKXQKZLGMZAQZXJYLUQZRZLZGURZHMZBQZXKYRUQZRZLZHURZLZYIXFYJYQ
      XGYKUUCGXJACUSHXKBDUSUTUUDYPUUBLZHURGURXHYIYPUUBGHVAXHUUEYIGHUUEYMYSLZYOU
      UALZLXHYIYMYOYSUUAVBXHUUFUUGYIXHUUFLZYIUUGYNYTNZXIKUUHUUIIYLJYRIMZJMZNZSZ
      SZXIUUIIYLUUJSZJYRUUKSZNIYLUUJUUPNZSUUNYNUUOYTUUPIYLVCJYRVCVDIYLUUJUUPVEI
      YLUUQUUMUUQUUMRUUJYLKZJYRUUKUUJVFVHVGVIUUHUUNXIOPZXIUUHXITKZUUMXIKZIYLUPU
      UNUUSKABUAVJZUUHUVAIYLUUHUURLZUUMUUSXIUVCUUTUULXIKZJYRUPUUMUUSKUVBUVCUVDJ
      YRUUHUURUUKYRKZUVDXHUUFUURUVELZUVDUUFUVFLXHUUJAKZUUKBKZLZUVDYMUURYSUVEUVI
      YMUURLUVGYSUVELUVHYLAUUJVKYRBUUKVKVLVMUUJUUKABCDVNVOVPVPVQJYRXIUULTVSVRUU
      HUUSXIRZUURXHUVJUUFXHXOOPZXOUUSXIXHXNTKUVKXOREFXNABCDXSVTXNTWAUNXHXIXOOXT
      WBXTWCWDZWDWEVQIYLXIUUMTVSVRUVLWEWFUUGXLUUIXIXJYNXKYTWGWIWJWHWKWSWLWMWNEF
      XPXQXLXIYAYAUEWOWPYGXIYAWQUNXTWRXNYBWTXAXPTKXQTKXRYCRAOXBBOXBEFYBXPXQTTYB
      UEUFXCXDXE $.
  $}

  ${
    $d a b c A $.  $d a b c B $.  $d a b c C $.  $d a b c D $.  $d a b c J $.
    $d a b c K $.  $d a X $.  $d b Y $.
    neitx.x $e |- X = U. J $.
    neitx.y $e |- Y = U. K $.
    $( The Cartesian product of two neighborhoods is a neighborhood in the
       product topology.  (Contributed by Thierry Arnoux, 13-Jan-2018.) $)
    neitx $p |- ( ( ( J e. Top /\ K e. Top ) /\
      ( A e. ( ( nei ` J ) ` C ) /\ B e. ( ( nei ` K ) ` D ) ) )
      -> ( A X. B ) e. ( ( nei ` ( J tX K ) ) ` ( C X. D ) ) ) $=
      ( vc va vb ctop wcel wa cfv cxp wss syl2anc cnei co cuni cv wrex ad2ant2r
      ctx neii1 ad2ant2l xpss12 wceq txuni adantr sseqtrd simp-5l simp-4r txopn
      simplr syl12anc simpr1l 3anassrs simprl simpr1r simprr sseq2 sseq1 rspcev
      anbi12d neii2 ad2antrr r19.29a wb txtop neiss2 eqid isnei mpbir2and ) ENO
      ZFNOZPZACEUAQQOZBDFUAQQOZPZPZABRZCDRZEFUGUBZUAQQOZWEWGUCZSZWFKUDZSZWKWESZ
      PZKWGUEZWDWEGHRZWIWDAGSZBHSZWEWPSVRWAWQVSWBCEAGIUHUFVSWBWRVRWADFBHJUHUIAG
      BHUJTVTWPWIUKWCEFGHIJULUMZUNWDCLUDZSZWTASZPZWOLEWDWTEOZPZXCPZDMUDZSZXGBSZ
      PZWOMFXFXGFOZPZXJPZWTXGRZWGOZWFXNSZXNWESZWOXMVTXDXKXOVTWCXDXCXKXJUOWDXDXC
      XKXJUPXFXKXJURWTXGEFNNUQUSXMXAXHXPXEXCXKXJXAXAXBXKXJXEUTVAXLXHXIVBCWTDXGU
      JTXMXBXIXQXEXCXKXJXBXAXBXKXJXEVCVAXLXHXIVDWTAXGBUJTWNXPXQPKXNWGWKXNUKWLXP
      WMXQWKXNWFVEWKXNWEVFVHVGUSWDXJMFUEZXDXCVSWBXRVRWADMFBVIUIVJVKVRWAXCLEUEVS
      WBCLEAVIUFVKWDWGNOZWFWISWHWJWOPVLVTXSWCEFVMUMWDWFWPWIWDCGSZDHSZWFWPSVRWAX
      TVSWBCEAGIVNUFVSWBYAVRWADFBHJVNUICGDHUJTWSUNWFKWGWEWIWIVOVPTVQ $.
  $}

  ${
    $d u v w z A $.  $d u v w z B $.  $d u v w F $.  $d u v w z J $.  $d w L $.
    $d u v w z K $.  $d w ph $.  $d u v w U $.
    txcnpi.1 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    txcnpi.2 $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    txcnpi.3 $e |- ( ph -> F e. ( ( ( J tX K ) CnP L ) ` <. A , B >. ) ) $.
    txcnpi.4 $e |- ( ph -> U e. L ) $.
    txcnpi.5 $e |- ( ph -> A e. X ) $.
    txcnpi.6 $e |- ( ph -> B e. Y ) $.
    txcnpi.7 $e |- ( ph -> ( A F B ) e. U ) $.
    $( Continuity of a two-argument function at a point.  (Contributed by Mario
       Carneiro, 20-Sep-2015.) $)
    txcnpi $p |- ( ph -> E. u e. J E. v e. K
        ( A e. u /\ B e. v /\ ( u X. v ) C_ ( `' F " U ) ) ) $=
      ( wcel vw vz cop cv cima wss wa ctx co wrex cxp ccnv ccnp df-ov syl5eqelr
      w3a cfv cnpimaex syl3anc wfun cdm wb cuni wf eqid cnpf syl adantr elssuni
      ffun wceq fdm sseq2d biimpar sylan2 funimass3 syl2anc anbi2d wral wi eltx
      ctopon biimpa eleq1 anbi1d rspccv sstr2 com12 anim2d opelxp anbi1i df-3an
      2rexbidv 3imtr4g reximdv syl6 impd sylbid rexlimdva mpd ) ADEUCZUAUDZTZGX
      BUEFUFZUGZUAHIUHUIZUJZDCUDZTZEBUDZTZXHXJUKZGULFUEZUFZUPZBIUJZCHUJZAGXAXFJ
      UMUIUQTZFJTXAGUQZFTXGOPAXSDEGUIFDEGUNSUOUAFXAGXFJURUSAXEXQUAXFAXBXFTZUGZX
      EXCXBXMUFZUGZXQYAXDYBXCYAGUTZXBGVAZUFZXDYBVBYAXFVCZJVCZGVDZYDAYIXTAXRYIOX
      AGXFJYGYHYGVEYHVEVFVGZVHYGYHGVJVGXTAXBYGUFZYFXBXFVIAYFYKAYEYGXBAYIYEYGVKY
      JYGYHGVLVGVMVNVOXBFGVPVQVRYAUBUDZXLTZXLXBUFZUGZBIUJCHUJZUBXBVSZYCXQVTAXTY
      QAHKWBUQZTILWBUQZTXTYQVBMNCBXBHIYRYSUBWAVQWCYQXCYBXQYQXCXAXLTZYNUGZBIUJZC
      HUJZYBXQVTYPUUCUBXAXBYLXAVKZYOUUACBHIUUDYMYTYNYLXAXLWDWEWMWFYBUUCXQYBUUBX
      PCHYBUUAXOBIYBXIXKUGZYNUGUUEXNUGUUAXOYBYNXNUUEYNYBXNXLXBXMWGWHWIYTUUEYNDE
      XHXJWJWKXIXKXNWLWNWOWOWHWPWQVGWRWSWT $.
  $}

  ${
    $d R w z $.  $d S w z $.  $d X w z $.  $d Y w z $.
    $( Continuity of the first projection map of a topological product.
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario
       Carneiro, 22-Aug-2015.) $)
    tx1cn $p |- ( ( R e. ( TopOn ` X ) /\ S e. ( TopOn ` Y ) ) ->
                  ( 1st |` ( X X. Y ) ) e. ( ( R tX S ) Cn R ) ) $=
      ( vw vz ctopon cfv wcel wa c1st cxp cres ctx co ccn cv wss wb syl2anc a1i
      wf ccnv cima wral f1stres toponss adantlr xpss1 syl pm4.71rd wfn elpreima
      sseld ffn mp2b fvres c2nd cop wceq 1st2nd2 xp2nd elxp6 anass an32 3bitr2i
      eleq1d baib bitr4d pm5.32i bitri syl6rbbr eqrdv toponmax ad2antlr anassrs
      txopn mpdan eqeltrd ralrimiva txtopon simpl iscn mpbir2and ) ACGHZIZBDGHZ
      IZJZKCDLZMZABNOZAPOIZWJCWKUBZWKUCEQZUDZWLIZEAUEZWNWICDUFZUAWIWQEAWIWOAIZJ
      ZWPWODLZWLXAFWPXBXAFQZXBIZXCWJIZXDJZXCWPIZXAXDXEXAXBWJXCXAWOCRZXBWJRWFWTX
      HWHWOACUGUHWOCDUIUJUNUKXGXEXCWKHZWOIZJZXFWNWKWJULXGXKSWSWJCWKUOWJXCWOWKUM
      UPXEXJXDXEXJXCKHZWOIZXDXEXIXLWOXCWJKUQVGXEXCXLXCURHZUSUTZXNDIZXDXMSXCCDVA
      XCCDVBXDXOXPJZXMXDXOXMXPJJXOXMJXPJXQXMJXCWODVCXOXMXPVDXOXMXPVEVFVHTVIVJVK
      VLVMXADBIZXBWLIZWHXRWFWTDBVNVOWIWTXRXSWODABWEWGVQVPVRVSVTWIWLWJGHIWFWMWNW
      RJSABCDWAWFWHWBEWKWLAWJCWCTWD $.
  $}

  ${
    $d R w z $.  $d S w z $.  $d X w z $.  $d Y w z $.
    $( Continuity of the second projection map of a topological product.
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario
       Carneiro, 22-Aug-2015.) $)
    tx2cn $p |- ( ( R e. ( TopOn ` X ) /\ S e. ( TopOn ` Y ) ) ->
                  ( 2nd |` ( X X. Y ) ) e. ( ( R tX S ) Cn S ) ) $=
      ( vw vz ctopon cfv wcel wa c2nd cxp cres ctx co ccn wf cv wss wb ccnv a1i
      cima wral f2ndres toponss adantll xpss2 syl sseld pm4.71rd elpreima fvres
      wfn ffn mp2b eleq1d c1st cop wceq 1st2nd2 xp1st elxp6 bitr4i baib syl2anc
      anass bitr4d pm5.32i bitri syl6rbbr eqrdv wi toponmax expr mpidan eqeltrd
      txopn imp ralrimiva txtopon iscn sylancom mpbir2and ) ACGHZIZBDGHZIZJZKCD
      LZMZABNOZBPOIZWJDWKQZWKUAERZUCZWLIZEBUDZWNWICDUEZUBWIWQEBWIWOBIZJZWPCWOLZ
      WLXAFWPXBXAFRZXBIZXCWJIZXDJZXCWPIZXAXDXEXAXBWJXCXAWODSZXBWJSWHWTXHWFWOBDU
      FUGWODCUHUIUJUKXGXEXCWKHZWOIZJZXFWNWKWJUNXGXKTWSWJDWKUOWJXCWOWKULUPXEXJXD
      XEXJXCKHZWOIZXDXEXIXLWOXCWJKUMUQXEXCXCURHZXLUSUTZXNCIZXDXMTXCCDVAXCCDVBXD
      XOXPJZXMXDXOXPXMJJXQXMJXCCWOVCXOXPXMVGVDVEVFVHVIVJVKVLWIWTXBWLIZWFWHCAIZW
      TXRVMCAVNWIXSWTXRCWOABWEWGVRVOVPVSVQVTWFWHWLWJGHIWMWNWRJTABCDWAEWKWLBWJDW
      BWCWD $.
  $}

  ${
    $d g k n s u w x y z A $.  $d g k n s u w x y z F $.  $d g k n s u w J $.
    $d g k n s u w x y z I $.  $d g k n s u w x y z V $.  $d u x Y $.
    $d g k n s w x y z U $.
    ptpjcn.1 $e |- Y = U. J $.
    ptpjcn.2 $e |- J = ( Xt_ ` F ) $.
    $( Continuity of a projection map into a topological product.  (Contributed
       by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro,
       3-Feb-2015.) $)
    ptpjcn $p |- ( ( A e. V /\ F : A --> Top /\ I e. A ) ->
      ( x e. Y |-> ( x ` I ) ) e. ( J Cn ( F ` I ) ) ) $=
      ( vk vg vy vz vw wcel ctop cv cfv wceq wa vu wf w3a cmpt cuni cixp ccn co
      ptuni 3adant3 syl6reqr mpteq1d ccnv cima cpt syl5eqel ffvelrn 3adant1 jca
      wral pttop wfn elixp simprbi fveq2 unieqd eleq12d rspcva sylan2 3ad2antl3
      vex eqid fmptd feq2d mpbird cdif cfn wrex wex cab wss ctg ctb ptbas bastg
      syl ffn ptval syl5eq sseqtr4d adantr ptpjpre2 sseldd ralrimiv 3impa iscn2
      expr sylanbrc eqeltrd ) BFOZBPCUBZDBOZUCZAGDAQZRZUDAJBJQZCRZUEZUFZXEUDZED
      CRZUGUHZXCAGXIXEXCXIEUEZGWTXAXIXMSXBJBCEFIUIUJHUKZULXCEPOZXKPOZTGXKUEZXJU
      BZXJUMUAQZUNZEOZUAXKUTZTXJXLOXCXOXPXCECUORZPIWTXAYCPOXBBCFVAUJUPXAXBXPWTB
      PDCUQURUSXCXRYBXCXRXIXQXJUBXCAXIXEXQXJXBWTXDXIOZXEXQOZXAYDXBXFXDRZXHOZJBU
      TZYEYDXDBVBYHJBXHXDAVKVCVDYGYEJDBXFDSZYFXEXHXQXFDXDVEYIXGXKXFDCVEVFVGVHVI
      VJXJVLVMXCGXIXQXJXNVNVOWTXAXBYBWTXATZXBTYAUAXKYJXBXSXKOZYAYJXBYKTZTKQZBVB
      LQZYMRZYNCRZOLBUTYOYPUESLBMQVPUTMVQVRUCNQLBYOUFSTKVSNVTZEXTYJYQEWAYLYJYQY
      QWBRZEYJYQWCOYQYRWANLMBYQKCFYQVLZWDYQWCWEWFXAWTCBVBZEYRSBPCWGWTYTTEYCYRIN
      LMBYQKCFYSWHWIVIWJWKNLMABYQXSKJCDFXIYSXIVLWLWMWQWNWOUSUAXJEXKGXQHXQVLWPWR
      WS $.

    $( The projection map is an open map.  (Contributed by Mario Carneiro,
       2-Sep-2015.) $)
    ptpjopn $p |- ( ( ( A e. V /\ F : A --> Top /\ I e. A ) /\ U e. J ) ->
      ( ( x e. Y |-> ( x ` I ) ) " U ) e. ( F ` I ) ) $=
      ( vy vz vs vw vn wcel wa cv cfv wceq vg vk ctop wf w3a cmpt cima crn cres
      df-ima wss cuni elssuni syl6sseqr adantl resmptd syl5eq wel wrex wral wfn
      rneqd cdif cfn cixp wex cab ctg cpt ffn eqid sylan2 3adant3 eleq2d biimpa
      ptval tg2 sylan vex weq eqeq1 anbi2d exbidv elab simpl3 ad3antrrr simplr2
      wi fveq2 eleq12d rspcv sylc simprbi ad2antrl cif simplrr simplrl eleqtrrd
      elixp simprr syl adantr ifclda anassrs ralrimiva simpll1 mptelixpg mpbird
      wn wb cbvixpv syl6eleq sseldd iftrue fvmpt eqcomd fveq1 eqeq2d rspcev cvv
      syl2anc elrnmpt ax-mp sylibr ex ssrdv eleq2 sseq1 anbi12d syl12anc imbi1d
      syl5ibrcom expimpd exlimdv syl5bi rexlimdv mpd fvex rgenw cbvmptv rexbidv
      eleq1 anbi1d ralrnmpt simpl2 ffvelrnd eltop2 eqeltrd ) BGPZBUCDUDZEBPZUEZ
      CFPZQZAHEARZSZUFZCUGZACUUPUFZUHZEDSZUUNUURUUQCUIZUHUUTUUQCUJUUNUVBUUSUUNA
      HCUUPUUMCHUKUULUUMCFULHCFUMIUNUOUPVBUQUUNUUTUVAPZKLURZLRZUUTUKZQZLUVAUSZK
      UUTUTZUUNEMRZSZUVEPZUVFQZLUVAUSZMCUTZUVIUUNUVNMCUUNUVJCPZQZMNURZNRZCUKZQZ
      NUARZBVAZKRZUWBSZUWDDSZPZKBUTZUWEUWFULTKBUVEVCUTLVDUSZUEZUVJKBUWEVEZTZQZU
      AVFZMVGZUSZUVNUUNCUWOVHSZPZUVPUWPUULUUMUWRUULFUWQCUUIUUJFUWQTUUKUUIUUJQFD
      VISZUWQJUUJUUIDBVAUWSUWQTBUCDVJMKLBUWOUADGUWOVKVPVLUQVMVNVONCUWOUVJVQVRUV
      QUWAUVNNUWOUVSUWOPUWJUVSUWKTZQZUAVFZUVQUWAUVNWHZUWNUXBMUVSNVSMNVTZUWMUXAU
      AUXDUWLUWTUWJUVJUVSUWKWAWBWCWDUVQUXAUXCUAUVQUWJUWTUXCUVQUWJQZUXCUWTUVJUWK
      PZUWKCUKZQZUVNWHUXEUXHUVNUXEUXHQZEUWBSZUVAPZUVKUXJPZUXJUUTUKZUVNUXIUUKUWH
      UXKUUNUUKUVPUWJUXHUUIUUJUUKUUMWEZWFZUWCUWHUWIUVQUXHWGUWGUXKKEBUWDETZUWEUX
      JUWFUVAUWDEUWBWIZUWDEDWIWJWKWLUXIUUKUWDUVJSZUWEPZKBUTZUXLUXOUXFUXTUXEUXGU
      XFUVJBVAUXTKBUWEUVJMVSWSWMZWNUXSUXLKEBUXPUXRUVKUWEUXJUWDEUVJWIUXQWJWKWLUX
      IUBUXJUUTUXIUBRZUXJPZUYBUUTPZUXIUYCQZUYBUUPTZACUSZUYDUYEOBORZETZUYBUYHUVJ
      SZWOZUFZCPUYBEUYLSZTZUYGUYEUWKCUYLUXEUXFUXGUYCWPUYEUYLOBUYHUWBSZVEZUWKUYE
      UYLUYPPZUYKUYOPZOBUTZUYEUYROBUXIUYCUYHBPZUYRUXIUYCUYTQZQZUYIUYBUYJUYOVUBU
      YIQUYBUXJUYOUXIUYCUYTUYIWQUYIUYOUXJTVUBUYHEUWBWIUOWRVUBUYJUYOPZUYIXIVUBUY
      TUXTVUCUXIUYCUYTWTVUBUXFUXTUXEUXFUXGVUAWQUYAXAUXSVUCKUYHBKOVTUXRUYJUWEUYO
      UWDUYHUVJWIUWDUYHUWBWIWJWKWLXBXCXDXEUYEUUIUYQUYSXJUVQUUIUWJUXHUYCUUIUUJUU
      KUUMUVPXFWFOBUYKUYOGXGXAXHOKBUYOUWEUYHUWDUWBWIXKXLXMUYEUYMUYBUYEUUKUYMUYB
      TUXIUUKUYCUXOXBOEUYKUYBBUYLUYIUYBUYJXNUYLVKUBVSZXOXAXPUYFUYNAUYLCUUOUYLTU
      UPUYMUYBEUUOUYLXQXRXSYAUYBXTPUYDUYGXJVUDACUUPUYBUUSXTUUSVKYBYCYDYEYFUVMUX
      LUXMQLUXJUVAUVEUXJTUVLUXLUVFUXMUVEUXJUVKYGUVEUXJUUTYHYIXSYJYEUWTUWAUXHUVN
      UWTUVRUXFUVTUXGUVSUWKUVJYGUVSUWKCYHYIYKYLYMYNYOYPYQXEUVKXTPZMCUTUVIUVOXJV
      UEMCEUVJYRYSUVHUVNMKCUVKUUSXTAMCUUPUVKEUUOUVJXQYTUWDUVKTZUVGUVMLUVAVUFUVD
      UVLUVFUWDUVKUVEUUBUUCUUAUUDYCYDUUNUVAUCPUVCUVIXJUUNBUCEDUUIUUJUUKUUMUUEUX
      NUUFKLUUTUVAUUGXAXHUUH $.
  $}

  ${
    $d ph k x $.  $d A k x $.  $d C x $.  $d F k x $.  $d V k $.
    ptcld.a $e |- ( ph -> A e. V ) $.
    ptcld.f $e |- ( ph -> F : A --> Top ) $.
    ptcld.c $e |- ( ( ph /\ k e. A ) -> C e. ( Clsd ` ( F ` k ) ) ) $.
    $( A closed box in the product topology.  (Contributed by Stefan O'Rear,
       22-Feb-2015.) $)
    ptcld $p |- ( ph -> X_ k e. A C e. ( Clsd ` ( Xt_ ` F ) ) ) $=
      ( vx cixp cfv wceq ccld wss wral wcel wa eqid adantr cv cuni cif ciin cin
      cpt cldss ralrimiva boxriin ctop wf ptuni syl2anc ineq1d pttop cdif sseq1
      syl simpl ssid a1i ifbothda ralimi ss2ixp 3syl sseqtrd csb eqcomd difeq1d
      wn simpr boxcutc ixpeq2 fveq2 unieqd csbeq1a difeq12d adantl ifeq1da mprg
      3eqtrd nfcsb1v nfel1 fveq2d eleq12d cbvral r19.21bi cldopn ptopn2 eqeltrd
      nfv sylib wb iscld mpbir2and riincld ) ADBCKZDBDUAZELZUBZKZJBDBWRJUAZMZCW
      TUCZKZUDZUEZEUFLZNLZACWTOZDBPZWQXGMAXJDBAWRBQZRCWSNLZQZXJICWSWTWTSUGURUHZ
      DJCWTBUIURAXGXHUBZXFUEZXIAXAXPXFABFQZBUJEUKZXAXPMZGHDBEXHFXHSULUMZUNAXHUJ
      QZXEXIQZJBPXQXIQAXRXSYBGHBEFUOUMZAYCJBAXBBQZRZYCXEXPOZXPXEUPZXHQZYFXEXAXP
      AXEXAOZYEAXKXDWTOZDBPYJXOXJYKDBXCXJWTWTOZYKXJCWTCXDWTUQWTXDWTUQXJXCUSYLXJ
      XCVJRWTUTVAVBVCDBXDWTVDVETAXTYEYATVFYFYHDBXCXBELZUBZDXBCVGZUPZWTUCZKZXHYF
      YHXAXEUPZDBXCWTCUPZWTUCZKZYRAYHYSMYEAXPXAXEAXAXPYAVHVITYFYEXKYSUUBMAYEVKA
      XKYEXOTBWTCDXBVLUMUUBYRMZYFUUAYQMUUCDBDBUUAYQVMXLXCYTYPWTXCYTYPMXLXCWTYNC
      YOXCWSYMWRXBEVNZVODXBCVPZVQVRVSVTVAWAYFBDEYPFXBAXRYEGTAXSYEHTYFYOYMNLZQZY
      PYMQAUUGJBAXNDBPUUGJBPAXNDBIUHXNUUGDJBXNJWKDYOUUFDXBCWBWCXCCYOXMUUFUUEXCW
      SYMNUUDWDWEWFWLWGYOYMYNYNSWHURWIWJAYCYGYIRWMZYEAYBUUHYDXEXHXPXPSZWNURTWOU
      HJBXEXHXPUUIWPUMWJWJ $.
  $}

  ${
    $d ph k l $.  $d A k l $.  $d C l $.  $d J l $.  $d V l $.
    ptcldmpt.a $e |- ( ph -> A e. V ) $.
    ptcldmpt.j $e |- ( ( ph /\ k e. A ) -> J e. Top ) $.
    ptcldmpt.c $e |- ( ( ph /\ k e. A ) -> C e. ( Clsd ` J ) ) $.
    $( A closed box in the product topology.  (Contributed by Stefan O'Rear,
       22-Feb-2015.) $)
    ptcldmpt $p |- ( ph -> X_ k e. A C e.
          ( Clsd ` ( Xt_ ` ( k e. A |-> J ) ) ) ) $=
      ( vl cixp cv cfv ccld nfcv ctop wcel wa wi wceq csb cmpt cpt nfcsb1v eqid
      csbeq1a cbvixp fmptd nffvmpt1 nffv nfel eleq1 anbi2d fveq2 fveq2d eleq12d
      nfv nfim imbi12d simpr fvmpt2 syl2anc eleqtrrd chvar ptcld syl5eqel ) ADB
      CKJBDJLZCUAZKDBEUBZUCMNMDJBCVHJCODVGCUDZDVGCUFZUGABVHJVIFGADBEPVIHVIUEZUH
      ADLZBQZRZCVMVIMZNMZQZSAVGBQZRZVHVGVIMZNMZQZSDJVTWCDVTDUQDVHWBVJDWANDNODBE
      VGUIUJUKURVMVGTZVOVTVRWCWDVNVSAVMVGBULUMWDCVHVQWBVKWDVPWANVMVGVIUNUOUPUSV
      OCENMVQIVOVPENVOVNEPQVPETAVNUTHDBEPVIVLVAVBUOVCVDVEVF $.
  $}

  ${
    $d f g k u ph $.  $d f g u x y z R $.  $d f g h u y z S $.  $d g x y z V $.
    $d f g h k u x y z A $.  $d f J $.
    ptcls.2 $e |- J = ( Xt_ ` ( k e. A |-> R ) ) $.
    ptcls.a $e |- ( ph -> A e. V ) $.
    ptcls.j $e |- ( ( ph /\ k e. A ) -> R e. ( TopOn ` X ) ) $.
    ptcls.c $e |- ( ( ph /\ k e. A ) -> S C_ X ) $.
    ${
      ptclsg.1 $e |- ( ph -> U_ k e. A S e. AC_ A ) $.
      $( The closure of a box in the product topology is the box formed from
         the closures of the factors.  The proof uses the axiom of choice; the
         last hypothesis is the choice assumption.  (Contributed by Mario
         Carneiro, 3-Sep-2015.) $)
      ptclsg $p |- ( ph ->
        ( ( cls ` J ) ` X_ k e. A S ) = X_ k e. A ( ( cls ` R ) ` S ) ) $=
        ( vy vz cfv wcel wss wa wral vf vu vg vx vh cixp ccl ccld cpt cv ctopon
        cmpt ctop topontop syl cuni wceq toponuni sseqtrd eqid syl2anc ptcldmpt
        clscld fveq2i syl6eleqr sscls ralrimiva ss2ixp clsss2 cin c0 wne wi wfn
        cdif cfn wrex w3a wex cab vex weq eqeq1 anbi2d exbidv wb nffvmpt1 nfel2
        elab nfv fveq2 cbvral simpr fvmpt2 eleq2d ralbidva syl5bb adantr biimpa
        eleq12d ciun wf wacn ad2antrr simpll elixp simprbi ad2antlr clsndisj ex
        csb 3expia ralimdva sylc simprlr simprr cbvixpv syl6eleq sylanbrc ralim
        r19.26 rabn0 dfin5 ssiun2 syl5ss sseqin2 syl5eqr neeq1d syl5bbr ralbiia
        crab inss2 sylib sylibr nfiu1 nfcv nfcsb1v nfin nfrex ffn csbeq1a eleq1
        ineq12d rexbidv acni3 ixpin ineq1i eqtr4i neeq1i 3imtr3i sylan2br sylan
        ne0i exlimiv expr syldan eleq2 ineq1 imbi12d syl5ibrcom expimpd exlimdv
        3adantr3 syl5bi ralrimiv ctg fmptd ptval syl5eq pttopon clsss3 sseqtr4d
        ctb ptbas sselda elcls3 mpbird ssrdv eqssd ) AEBDUFZFUGPPZEBDCUGPPZUFZA
        UWCFUHPZQUVTUWCRZUWAUWCRAUWCEBCULZUIPZUHPUWDABUWBECGJAEUJZBQZSZCHUKPZQZ
        CUMQZKHCUNUOZUWJUWMDCUPZRZUWBCUHPQUWNUWJDHUWOLUWJUWLHUWOUQKHCURUOZUSZDC
        UWOUWOUTZVCVAVBFUWGUHIVDVEADUWBRZEBTUWEAUWTEBUWJUWMUWPUWTUWNUWRDCUWOUWS
        VFVAVGEBDUWBVHUOUWCUVTFFUPZUXAUTVIVAAUAUWCUWAAUAUJZUWCQZUXBUWAQZAUXCSZU
        XDUXBUBUJZQZUXFUVTVJZVKVLZVMZUBUCUJZBVNZNUJZUXKPZUXMUWFPZQZNBTZUXNUXOUP
        UQNBOUJZVOTOVPVQZVRZUDUJZNBUXNUFZUQZSZUCVSZUDVTZTUXEUXJUBUYFUXFUYFQUXTU
        XFUYBUQZSZUCVSZUXEUXJUYEUYIUDUXFUBWAUDUBWBZUYDUYHUCUYJUYCUYGUXTUYAUXFUY
        BWCWDWEWIUXEUYHUXJUCUXEUXTUYGUXJUXEUXTSUXJUYGUXBUYBQZUYBUVTVJZVKVLZVMZU
        XEUXLUXQUYNUXSUXEUXLUXQSZUXLUWHUXKPZCQZEBTZSZUYNUXEUYOUYSAUYOUYSWFUXCAU
        XQUYRUXLUXQUYPUWHUWFPZQZEBTAUYRUXPVUANEBEUXNUXOEBCUXMWGWHVUANWJNEWBUXNU
        YPUXOUYTUXMUWHUXKWKZUXMUWHUWFWKWTWLAVUAUYQEBUWJUYTCUYPUWJUWIUWLUYTCUQAU
        WIWMKEBCUWKUWFUWFUTZWNVAWOWPWQWDWRWSUXEUYSUYKUYMUXEUYSUYKSZSZBEBDXAZUEU
        JZXBZUXMVUGPZUXNEUXMDXKZVJZQZNBTZSZUEVSZUYMVUEVUFBXCQZUXRVUKQZOVUFVQZNB
        TZVUOAVUPUXCVUDMXDVUEUXRUYPDVJZQZOVUFVQZEBTZVUSVUEVUTVKVLZEBTZVVCVUEUYQ
        UWHUXBPZUYPQZSZVVDVMZEBTZVVHEBTZVVEVUEAVVFUWBQZEBTZVVJAUXCVUDXEUXCVVMAV
        UDUXCUXBBVNZVVMEBUWBUXBUAWAZXFXGXHAVVLVVIEBUWJUWMUWPVVLVVIVMUWNUWRUWMUW
        PVVLVVIUWMUWPVVLVRVVHVVDVVFDUYPCUWOUWSXIXJXLVAXMXNVUEUYRVVGEBTZVVKUXEUX
        LUYRUYKXOVUEUXBEBUYPUFZQZVVPVUEUXBUYBVVQUXEUYSUYKXPNEBUXNUYPVUBXQZXRVVR
        VVNVVPEBUYPUXBVVOXFXGUOUYQVVGEBYAXSVVHVVDEBXTXNVVBVVDEBVVBVVAOVUFYKZVKV
        LUWIVVDVVAOVUFYBUWIVVTVUTVKUWIVVTVUFVUTVJZVUTOVUFVUTYCUWIVUTVUFRVWAVUTU
        QUWIVUTDVUFUYPDYLEBDYDYEVUTVUFYFYMYGYHYIYJYNVVBVURENBVVBNWJVUQEOVUFEBDY
        OEUXRVUKEUXNVUJEUXNYPEUXMDYQYRZWHYSENWBZVVAVUQOVUFVWCVUTVUKUXRVWCUYPUXN
        DVUJUWHUXMUXKWKEUXMDUUAUUCZWOUUDWLYMVUQVULNOBUEVUFUXRVUIVUKUUBUUEVAVUNU
        YMUEVUHVUGBVNZVUMUYMBVUFVUGYTVUMVWEUWHVUGPZVUTQZEBTZUYMVWGVULENBVWGNWJE
        VUIVUKVWBWHVWCVWFVUIVUTVUKUWHUXMVUGWKVWDWTWLVUGEBVUTUFZQVWIVKVLVWEVWHSU
        YMVWIVUGUUMEBVUTVUGUEWAXFVWIUYLVKVWIVVQUVTVJUYLEBUYPDUUFUYBVVQUVTVVSUUG
        UUHUUIUUJUUKUULUUNUOUUOUUPUVCUYGUXGUYKUXIUYMUXFUYBUXBUUQUYGUXHUYLVKUXFU
        YBUVTUURYHUUSUUTUVAUVBUVDUVEUXEUBUYFUXBUVTFEBHUFZAFUYFUVFPZUQUXCAFUWGVW
        KIABGQZUWFBVNZUWGVWKUQJABUMUWFXBZVWMAEBCUMUWFUWNVUCUVGZBUMUWFYTUOUDNOBU
        YFUCUWFGUYFUTZUVHVAUVIWRAVWJUXAUQZUXCAFVWJUKPQZVWQAVWLUWLEBTVWRJAUWLEBK
        VGEBHFCGIUVJVAVWJFURUOWRAUYFUVMQZUXCAVWLVWNVWSJVWOUDNOBUYFUCUWFGVWPUVNV
        AWRAUVTVWJRZUXCADHRZEBTVWTAVXAEBLVGEBDHVHUOWRAUWCVWJUXBAUWBHRZEBTUWCVWJ
        RAVXBEBUWJUWBUWOHUWJUWMUWPUWBUWORUWNUWRDCUWOUWSUVKVAUWQUVLVGEBUWBHVHUOU
        VOUVPUVQXJUVRUVS $.
    $}

    $( The closure of a box in the product topology is the box formed from the
       closures of the factors.  This theorem is an AC equivalent.
       (Contributed by Mario Carneiro, 2-Sep-2015.) $)
    ptcls $p |- ( ph ->
      ( ( cls ` J ) ` X_ k e. A S ) = X_ k e. A ( ( cls ` R ) ` S ) ) $=
      ( ciun cvv wacn wcel wral cv wa ctopon cfv toponmax syl ralrimiva syl2anc
      ssexd iunexg wac wceq axac3 acacni sylancr eleqtrrd ptclsg ) ABCDEFGHIJKL
      AEBDMZNBOZABGPZDNPZEBQUONPJAUREBAERBPSZDHCUSCHTUAPHCPKHCUBUCLUFUDEBDGNUGU
      EAUHUQUPNUIUJJBGUKULUMUN $.
  $}

  ${
    $d x z I $.  $d y z P $.  $d x z ph $.  $d z R $.  $d y z S $.
    dfac14lem.i $e |- ( ph -> I e. V ) $.
    dfac14lem.s $e |- ( ( ph /\ x e. I ) -> S e. W ) $.
    dfac14lem.0 $e |- ( ( ph /\ x e. I ) -> S =/= (/) ) $.
    dfac14lem.p $e |- P = ~P U. S $.
    dfac14lem.r $e |- R = { y e. ~P ( S u. { P } ) |
      ( P e. y -> y = ( S u. { P } ) ) } $.
    dfac14lem.j $e |- J = ( Xt_ ` ( x e. I |-> R ) ) $.
    dfac14lem.c $e |- ( ph ->
      ( ( cls ` J ) ` X_ x e. I S ) = X_ x e. I ( ( cls ` R ) ` S ) ) $.
    $( Lemma for ~ dfac14 .  By equipping ` S u. { P } ` for some ` P e/ S `
       with the particular point topology, we can show that ` P ` is in the
       closure of ` S ` ; hence the sequence ` P ( x ) ` is in the product of
       the closures, and we can utilize this instance of ~ ptcls to extract an
       element of the closure of ` X_ k e. I S ` .  (Contributed by Mario
       Carneiro, 2-Sep-2015.) $)
    dfac14lem $p |- ( ph -> X_ x e. I S =/= (/) ) $=
      ( c0 wcel cvv vz cixp ccl cfv wne cmpt wral cv wa cin wi csn cun cpw wceq
      eleq2 eqeq1 imbi12d elrab2 adantr ineq1 wss ssun1 sseqin2 mpbi syl5ibrcom
      syl6eq neeq1d imim2d expimpd syl5bi ralrimiv ctop cuni wb crab snex unexg
      ctopon sylancl ssun2 uniexg pwexg 3syl syl5eqel syl sseldi epttop syl2anc
      snidg topontop toponuni syl5sseq eleqtrd eqid syl3anc ralrimiva mptelixpg
      elcls mpbird ne0i pttopon cls0 3netr4d fveq2 necon3i ) ABGFUBZHUCUDZUDZRX
      HUDZUEXGRUEABGFEUCUDUDZUBZRXIXJABGDUFZXLSZXLRUEAXNDXKSZBGUGZAXOBGABUHGSUI
      ZXODUAUHZSZXRFUJZRUEZUKZUAEUGZXQYBUAEXRESXRFDULZUMZUNZSZXSXRYEUOZUKZUIXQY
      BDCUHZSZYJYEUOZUKZYICXRYFEYJXRUOYKXSYLYHYJXRDUPYJXRYEUQUROUSXQYGYIYBXQYGU
      IZYHYAXSYNYAYHFRUEZXQYOYGMUTYHXTFRYHXTYEFUJZFXRYEFVAFYEVBYPFUOFYDVCZFYEVD
      VEVGVHVFVIVJVKVLXQEVMSZFEVNZVBDYSSXOYCVOXQEYEVSUDZSZYRXQEYMCYFVPZYTOXQYET
      SZDYESUUBYTSXQFJSZYDTSUUCLDVQFYDJTVRVTXQYDYEDYDFWAXQDTSDYDSXQDFVNZUNZTNXQ
      UUDUUETSUUFTSLFJWBUUETWCWDWEDTWJWFWGZCYEDTWHWIWEZYEEWKWFXQYEFYSYQXQUUAYEY
      SUOUUHYEEWLWFZWMXQDYEYSUUGUUIWNUADFEYSYSWOWSWPWTWQAGISZXNXPVOKBGDXKIWRWFW
      TXLXMXAWFQAHBGYEUBZVSUDSZHVMSXJRUOAUUJUUABGUGUULKAUUABGUUHWQBGYEHEIPXBWIU
      UKHWKHXCWDXDXGRXIXJXGRXHXEXFWF $.
  $}

  ${
    $d f g k s x y $.
    $( Theorem ~ ptcls is an equivalent of the axiom of choice.  (Contributed
       by Mario Carneiro, 3-Sep-2015.) $)
    dfac14 $p |- ( CHOICE <-> A. f ( f : dom f --> Top ->
      A. s e. X_ k e. dom f ~P U. ( f ` k )
        ( ( cls ` ( Xt_ ` f ) ) ` X_ k e. dom f ( s ` k ) ) =
        X_ k e. dom f ( ( cls ` ( f ` k ) ) ` ( s ` k ) ) ) ) $=
      ( vx vg vy wac cv ctop cfv cixp ccl wceq cpw wa wcel pweqd fveq2d cvv c0
      cdm wf cpt cuni wral wi wal weq unieqd cbvixpv eleq2i cmpt simplr feqmptd
      fveq2 fveq1d eqid vex dmex a1i ctopon ffvelrnda toptopon sylib sylibr wfn
      simpr elixp simprbi r19.21bi elpwid ciun wacn iunex simpll acacni sylancl
      syl fvex syl5eleqr ptclsg eqtrd sylan2b ralrimiva ex alrimiv wfun crn wne
      wnel csn cun crab simplrr df-nel wfo funforn fof sylbi ad2antrl syl5ibcom
      wn eleq1 necon3bd mpd simprl funfn ssun1 elpw mpbir rgenw sylanblrc simpl
      snex unex ssun2 uniex pwex snid sselii epttop mp2an topontopi fmptd rabex
      wss syl6eq ixpeq1d fveq1 sneqd uneq12d eleq1d imbi12d rabeqbidv ixpeq2dva
      eqeq2d fveq12d eqeq12d sylc ixpeq2dv mptex id dmeq dmmpti feq12d sylan9eq
      fvmpt toponunii syl6eqr raleqbidv spcv rspcv dfac14lem dfac9 impbii ) GAH
      ZUAZIUUPUBZBUUQBHZCHZJZKZUUPUCJZLJZJZBUUQUVAUUSUUPJZLJZJZKZMZCBUUQUVFUDZN
      ZKZUEZUFZAUGZGUVOAGUURUVNGUUROZUVJCUVMUUTUVMPZUVQUUTDUUQDHZUUPJZUDZNZKZPZ
      UVJUVMUWCUUTBDUUQUVLUWBBDUHZUVKUWAUWEUVFUVTUUSUVSUUPUOUIQUJUKZUVQUWDOZUVE
      UVBBUUQUVFULZUCJZLJZJUVIUWGUVBUVDUWJUWGUVCUWILUWGUUPUWHUCUWGBUUQIUUPGUURU
      WDUMZUNRRUPUWGUUQUVFUVABUWISUVKUWIUQUUQSPZUWGUUPAURUSZUTUWGUUSUUQPOZUVFIP
      UVFUVKVAJPUWGUUQIUUSUUPUWKVBUVFUVKUVKUQVCVDUWNUVAUVKUWGUVAUVLPZBUUQUWGUVR
      UWOBUUQUEZUWGUWDUVRUVQUWDVGUWFVEUVRUUTUUQVFUWPBUUQUVLUUTCURVHVIVRVJVKUWGB
      UUQUVAVLSUUQVMZBUUQUVAUWMUUSUUTVSVNUWGGUWLUWQSMGUURUWDVOUWMUUQSVPVQVTWAWB
      WCWDWEWFUVPEHZWGZTUWRWHZWJZOZDUWRUAZUVSUWRJZKZTWIZUFZEUGGUVPUXGEUVPUXBUXF
      UVPUXBOZDFUXDUDZNZUXJFHZPZUXKUXDUXJWKZWLZMZUFZFUXNNZWMZUXDUXCDUXCUXRULZUC
      JZSSUXCSPUXHUWREURZUSZUTUXDSPUXHUVSUXCPZOZUVSUWRVSZUTUYDTUWTPZXBZUXDTWIUY
      DUXAUYGUVPUWSUXAUYCWNTUWTWOVDUYDUYFUXDTUYDUXDUWTPUXDTMUYFUXHUXCUWTUVSUWRU
      WSUXCUWTUWRUBZUVPUXAUWSUXCUWTUWRWPUYHUWRWQUXCUWTUWRWRWSWTVBUXDTUWTXCXAXDX
      EUXJUQUXRUQUXTUQUXHUWRBUXCUUSUWRJZUYIUDZNZWKZWLZNZKZPZBUXCUVAKZUXTLJZJZBU
      XCUVAUYKUXKPZUXKUYMMZUFZFUYNWMZLJZJZKZMZCUYOUEZUXEUYRJZDUXCUXDUXRLJZJZKZM
      ZUXHUWRUXCVFZUYIUYNPZBUXCUEUYPUXHUWSVUNUVPUWSUXAXFUWRXGVDVUOBUXCVUOUYIUYM
      YFUYIUYLXHUYIUYMUUSUWRVSZXIXJXKBUXCUYNUWRUYAVHXLUXHUVPUXCIUXSUBZVUHUVPUXB
      XMUXHDUXCUXRIUXSUXRIPUYDUXNUXRUXNSPUXJUXNPUXRUXNVAJPUXDUXMUYEUXJXNXOZUXMU
      XNUXJUXMUXDXPUXJUXIUXDUYEXQXRXSXTFUXNUXJSYAYBYCUTUXSUQZYDUVOVUQVUHUFAUXSD
      UXCUXRUYBUUAUUPUXSMZUURVUQUVNVUHVUTUUQUXCIUUPUXSVUTUUBVUTUUQUXSUAUXCUUPUX
      SUUCDUXCUXRUXSUXPFUXQUXNVURXRYEVUSUUDYGZUUEVUTUVJVUGCUVMUYOVUTUVMBUXCUVLK
      UYOVUTBUUQUXCUVLVVAYHVUTBUXCUVLUYNVUTUUSUXCPZOZUVKUYMVVCUVKVUCUDUYMVVCUVF
      VUCVUTVVBUVFUUSUXSJVUCUUSUUPUXSYIDUUSUXRVUCUXCUXSDBUHZUXPVUBFUXQUYNVVDUXN
      UYMVVDUXDUYIUXMUYLUVSUUSUWRUOZVVDUXJUYKVVDUXIUYJVVDUXDUYIVVEUIQZYJYKZQVVD
      UXLUYTUXOVUAVVDUXJUYKUXKVVFYLVVDUXNUYMUXKVVGYPYMYNVUSVUBFUYNUYMUYIUYLVUPU
      YKXNXOZXRYEUUGUUFZUIUYMVUCUYMSPUYKUYMPVUCUYMVAJPVVHUYLUYMUYKUYLUYIXPUYKUY
      JUYIVUPXQXRXSXTFUYMUYKSYAYBUUHUUIQYOWBVUTUVEUYSUVIVUFVUTUVBUYQUVDUYRVUTUV
      CUXTLUUPUXSUCUORVUTBUUQUXCUVAVVAYHYQVUTUVIBUXCUVHKVUFVUTBUUQUXCUVHVVAYHVU
      TBUXCUVHVUEVVCUVAUVGVUDVVCUVFVUCLVVIRUPYOWBYRUUJYMUUKYSVUGVUMCUWRUYOCEUHZ
      UYSVUIVUFVULVVJUYQUXEUYRVVJUYQBUXCUYIKUXEVVJBUXCUVAUYIUUSUUTUWRYIZYTBDUXC
      UYIUXDUUSUVSUWRUOZUJYGRVVJVUFBUXCUYIVUDJZKVULVVJBUXCVUEVVMVVJUVAUYIVUDVVK
      RYTBDUXCVVMVUKUWEUYIUXDVUDVUJUWEVUCUXRLUWEVUBUXPFUYNUXQUWEUYMUXNUWEUYIUXD
      UYLUXMVVLUWEUYKUXJUWEUYJUXIUWEUYIUXDVVLUIQZYJYKZQUWEUYTUXLVUAUXOUWEUYKUXJ
      UXKVVNYLUWEUYMUXNUXKVVOYPYMYNRVVLYQUJYGYRUULYSUUMWEWFDEUUNVEUUO $.
  $}

  ${
    $d f k v x y z R $.  $d f k v x y z S $.  $d f k v x y z X $.
    $d k v x y Y $.
    $( The "constant function" function which maps ` x e. Y ` to the constant
       function ` z e. X |-> x ` is a continuous function from ` X ` into the
       space of continuous functions from ` Y ` to ` X ` .  This can also be
       understood as the currying of the first projection function.  (The
       currying of the second projection function is
       ` x e. Y |-> ( z e. X |-> z ) ` , which we already know is continuous
       because it is a constant function.)  (Contributed by Mario Carneiro,
       19-Mar-2015.) $)
    xkoccn $p |- ( ( R e. ( TopOn ` X ) /\ S e. ( TopOn ` Y ) ) ->
      ( x e. Y |-> ( X X. { x } ) ) e. ( S Cn ( S ^ko R ) ) ) $=
      ( vy vk vv vz vf cfv wcel wa cv co cima wss eqid wceq c0 ctopon cmpt cxko
      csn cxp ccn ccnv crest ccmp cuni cpw crab cmpt2 wral cnconst2 3expa fmptd
      wf crn wrex xkobval abeq2i adantlr simplr imaeq2d ima0 0ss eqsstri imaeq1
      syl6eqss sseq1d elrab sylanbrc ralrimiva rabid2 sylibr simpllr syl adantr
      toponmax eqeltrrd wne cin cif ifnefalse ad2antlr eleq2d vex syl6bb df-ima
      snss cres simplrl ad2antrr elpwid toponuni ad5antr sseqtr4d xpssres rneqd
      syl5eq biantrurd 3bitr2d bitr3d syl6bbr rabbi2dva simplrr toponss syl2anc
      rnxp eqtrd sseqin2 sylib eqtr3d pm2.61dane imaeq2 mptpreima syl6eq eleq1d
      eqeltrd syl5ibrcom expimpd rexlimdvva syl5bi ralrimiv cvv simpr ovex pwex
      xkotf frn ax-mp ssexi a1i ctop cfi ctg topontop xkoval syl2an mpbir2and
      xkotopon subbascn ) BDUAKLZCEUAKLZMZAEDANZUDZUEZUBZCCBUCOZUFOLEBCUFOZUUJU
      RUUJUGZFNZPZCLZFGHBINUHOUILIBUJZUKZULZCJNZGNZPZHNZQZJUULULZUMZUSZUNUUFAEU
      UIUULUUJUUDUUEUUGELZUUIUULLZUUGBCDEUOUPZUUJRZUQUUFUUPFUVGUUNUVGLBUVAUHOUI
      LZUUNUVESZMZHCUTGUURUTZUUFUUPUVOFUVGIHBCUVFJGUUSUUQFUUQRZUUSRZUVFRZVAVBUU
      FUVNUUPGHUURCUUFUVAUURLZUVCCLZMZMZUVLUVMUUPUWBUVLMZUUPUVMUUIUVELZAEULZCLZ
      UWCUWFUVATUWCUVATSZMZEUWECUWHUWDAEUNEUWESUWHUWDAEUWHUVHMZUVIUUIUVAPZUVCQZ
      UWDUWCUVHUVIUWGUWBUVHUVIUVLUUFUVHUVIUWAUVJVCVCZVCUWIUWJUUITPZUVCUWIUVATUU
      IUWCUWGUVHVDVEUWMTUVCUUIVFUVCVGVHVJUVDUWKJUUIUULUUTUUISUVBUWJUVCUUTUUIUVA
      VIVKVLZVMVNUWDAEVOVPUWCECLZUWGUWCUUEUWOUUDUUEUWAUVLVQZECVTVRVSWAUWCUVATWB
      ZMZUWEUVCCUWREUVCWCZUWEUVCUWRUWDAEUVCUWRUVHMZUUGUVCLZUVIUWKMZUWDUWTUUGUWG
      EUVCWDZLZUXAUXBUWTUXCUVCUUGUWQUXCUVCSUWCUVHUVATEUVCWEWFWGZUWTUXDUUHUVCQZU
      WKUXBUWTUXDUXAUXFUXEUUGUVCAWHWKWIUWTUWJUUHUVCUWTUWJUVAUUHUEZUSZUUHUWTUWJU
      UIUVAWLZUSUXHUUIUVAWJUWTUXIUXGUWTUVADQUXIUXGSUWTUVAUUQDUWTUVAUUQUWCUVSUWQ
      UVHUUFUVSUVTUVLWMWNWOUUDDUUQSUUEUWAUVLUWQUVHDBWPWQWRDUUHUVAWSVRWTXAUWQUXH
      UUHSUWCUVHUVAUUHXJWFXKVKUWTUVIUWKUWCUVHUVIUWQUWLVCXBXCXDUWNXEXFUWRUVCEQZU
      WSUVCSUWCUXJUWQUWCUUEUVTUXJUWPUUFUVSUVTUVLXGZUVCCEXHXIVSUVCEXLXMXNUWCUVTU
      WQUXKVSXTXOUVMUUOUWECUVMUUOUUMUVEPUWEUUNUVEUUMXPAEUUIUVEUUJUVKXQXRXSYAYBY
      CYDYEUUFFUVGUUJCUUKYFEUULUUDUUEYGUVGYFLUUFUVGUULUKZUULBCUFYHYIUUSCUEZUXLU
      VFURUVGUXLQIHBCUVFJGUUSUUQUVPUVQUVRYJUXMUXLUVFYKYLYMYNUUDBYOLZCYOLZUUKUVG
      YPKYQKSUUEDBYRZECYRZIHBCUVFJGUUSUUQUVPUVQUVRYSYTUUDUXNUXOUUKUULUAKLUUEUXP
      UXQBCUUKUUKRUUBYTUUCUUA $.
  $}

  ${
    $d r s t v w y z A $.  $d r s t v w x z ph $.  $d x y z Y $.  $d x y z Z $.
    $d r s t v w y z B $.  $d r s v w x y z D $.  $d r s t v w x y z X $.
    $d r s v w y z J $.  $d r s v w y z K $.  $d r s v w y z L $.
    txcnp.4 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    txcnp.5 $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    txcnp.6 $e |- ( ph -> L e. ( TopOn ` Z ) ) $.
    txcnp.7 $e |- ( ph -> D e. X ) $.
    txcnp.8 $e |- ( ph -> ( x e. X |-> A ) e. ( ( J CnP K ) ` D ) ) $.
    txcnp.9 $e |- ( ph -> ( x e. X |-> B ) e. ( ( J CnP L ) ` D ) ) $.
    $( If two functions are continuous at ` D ` , then the ordered pair of them
       is continuous at ` D ` into the product topology.  (Contributed by Mario
       Carneiro, 9-Aug-2014.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
    txcnp $p |- ( ph -> ( x e. X |-> <. A , B >. ) e.
      ( ( J CnP ( K tX L ) ) ` D ) ) $=
      ( cfv wcel wa vy vz vv vw vr vs vt cop cmpt ctx co ccnp cxp cima wss wrex
      wf cv wi cmpt2 crn wral ctopon cnpf2 syl3anc eqid sylibr r19.21bi opelxpi
      fmpt syl2anc fmptd wb wceq cvv simpr opex fvmpt2 sylancl eqtr4d ralrimiva
      opeq12d nffvmpt1 nfop nfeq fveq2 eqeq12d rspc sylc eleq1d adantr ad2antrr
      simplrl simprl simplrr simprr jca ex opelxp reeanv 3imtr4g sylbid cin an4
      cnpimaex elin biimpri a1i simpl toponss syl2an adantl sselda inss1 sseldi
      ssinss1 wfun cdm syl fdm sseqtr4d sseldd funfvima inss2 eqeltrd funimass4
      ffun mpd mpbird syldan adantlr xpss12 syl2im anim12d syl5bi ctop topontop
      sstr2 eleq2 vex inopn 3expb sylan jctild expimpd imaeq2 anbi12d syl6 expd
      sseq1d rspcev rexlimdvv syld ralrimivva xpex rgen2w sseq2 rexbidv imbi12d
      anbi2d ralrnmpt2 ax-mp ctg txval txtopon tgcnp mpbir2and ) ABICDUHZUIZEFG
      HUJUKZULUKRSIJKUMZUVIUQZEUVIRZUAURZSZEUBURZSZUVIUVPUNZUVNUOZTZUBFUPZUSZUA
      UCUDGHUCURZUDURZUMZUTZVAZVBZABIUVHUVKUVIABURZISZTZCJSZDKSZUVHUVKSAUWLBIAI
      JBICUIZUQZUWLBIVBAFIVCRSZGJVCRSZUWNEFGULUKRSZUWOLMPEUWNFGIJVDVEZBIJCUWNUW
      NVFZVJVGVHZAUWMBIAIKBIDUIZUQZUWMBIVBAUWPHKVCRSZUXBEFHULUKRSZUXCLNQEUXBFHI
      KVDVEZBIKDUXBUXBVFZVJVGVHZCDJKVIVKUVIVFZVLZAUVMUWESZUVQUVRUWEUOZTZUBFUPZU
      SZUDHVBUCGVBZUWHAUXOUCUDGHAUWCGSZUWDHSZTZTZUXKEUEURZSZUWNUYAUNZUWCUOZTZEU
      FURZSZUXBUYFUNZUWDUOZTZTZUFFUPUEFUPZUXNUXTUXKEUWNRZEUXBRZUHZUWESZUYLAUXKU
      YPVMUXSAUVMUYOUWEAEISUWIUVIRZUWIUWNRZUWIUXBRZUHZVNZBIVBZUVMUYOVNZOAVUABIU
      WKUYQUVHUYTUWKUWJUVHVOSUYQUVHVNAUWJVPZCDVQBIUVHVOUVIUXIVRVSUWKUYRCUYSDUWK
      UWJUWLUYRCVNVUDUXABICJUWNUWTVRVKUWKUWJUWMUYSDVNVUDUXHBIDKUXBUXGVRVKWBVTWA
      ZVUAVUCBEIBUVMUYOBIUVHEWCBUYMUYNBICEWCBIDEWCWDWEUWIEVNZUYQUVMUYTUYOUWIEUV
      IWFVUFUYRUYMUYSUYNUWIEUWNWFUWIEUXBWFWBWGWHWIWJWKUXTUYMUWCSZUYNUWDSZTZUYEU
      EFUPZUYJUFFUPZTZUYPUYLUXTVUIVULUXTVUITZVUJVUKVUMUWRUXQVUGVUJAUWRUXSVUIPWL
      AUXQUXRVUIWMUXTVUGVUHWNUEUWCEUWNFGXEVEVUMUXEUXRVUHVUKAUXEUXSVUIQWLAUXQUXR
      VUIWOUXTVUGVUHWPUFUWDEUXBFHXEVEWQWRUYMUYNUWCUWDWSUYEUYJUEUFFFWTXAXBUXTUYK
      UXNUEUFFFUXTUYAFSZUYFFSZTZUYKUXNUXTVUPUYKTUYAUYFXCZFSZEVUQSZUVIVUQUNZUWEU
      OZTZTZUXNUXTVUPUYKVVCUXTVUPTZUYKVVBVURUYKUYBUYGTZUYDUYITZTVVDVVBUYBUYDUYG
      UYIXDVVDVVEVUSVVFVVAVVEVUSUSVVDVUSVVEEUYAUYFXFXGXHVVDVUTUYCUYHUMZUOZVVFVV
      GUWEUOVVAAVUPVVHUXSAVUPUYAIUOZVVHAUWPVUNVVIVUPLVUNVUOXIUYAFIXJXKAVVITZVVH
      UGURZUVIRZVVGSZUGVUQVBZVVJVVMUGVUQVVJVVKVUQSZTZVVLVVKUWNRZVVKUXBRZUHZVVGV
      VPVVKISVUBVVLVVSVNZVVJVUQIVVKVVIVUQIUOZAUYAUYFIXPXLZXMAVUBVVIVVOVUEWLVUAV
      VTBVVKIBVVLVVSBIUVHVVKWCBVVQVVRBICVVKWCBIDVVKWCWDWEUWIVVKVNZUYQVVLUYTVVSU
      WIVVKUVIWFVWCUYRVVQUYSVVRUWIVVKUWNWFUWIVVKUXBWFWBWGWHWIVVPVVQUYCSZVVRUYHS
      ZVVSVVGSVVPVVKUYASZVWDVVPVUQUYAVVKUYAUYFXNVVJVVOVPZXOVVPUWNXQZVVKUWNXRZSV
      WFVWDUSVVPUWOVWHAUWOVVIVVOUWSWLZIJUWNYGXSVVPVUQVWIVVKVVPVUQIVWIVVJVWAVVOV
      WBWKZVVPUWOVWIIVNVWJIJUWNXTXSYAVWGYBUYAVVKUWNYCVKYHVVPVVKUYFSZVWEVVPVUQUY
      FVVKUYAUYFYDVWGXOVVPUXBXQZVVKUXBXRZSVWLVWEUSVVPUXCVWMAUXCVVIVVOUXFWLZIKUX
      BYGXSVVPVUQVWNVVKVVPVUQIVWNVWKVVPUXCVWNIVNVWOIKUXBXTXSYAVWGYBUYFVVKUXBYCV
      KYHVVQVVRUYCUYHVIVKYEWAVVJUVIXQZVUQUVIXRZUOVVHVVNVMAVWPVVIAUVLVWPUXJIUVKU
      VIYGXSWKVVJVUQIVWQVWBAVWQIVNZVVIAUVLVWRUXJIUVKUVIXTXSWKYAUGVUQVVGUVIYFVKY
      IYJYKUYCUWCUYHUWDYLVUTVVGUWEYRYMYNYOAVUPVURUXSAFYPSZVUPVURAUWPVWSLIFYQXSV
      WSVUNVUOVURUYAUYFFUUAUUBUUCYKUUDUUEUXMVVBUBVUQFUVPVUQVNZUVQVUSUXLVVAUVPVU
      QEYSVWTUVRVUTUWEUVPVUQUVIUUFUUJUUGUUKUUHUUIUULUUMUUNUWEVOSZUDHVBUCGVBUWHU
      XPVMVXAUCUDGHUWCUWDUCYTUDYTUUOUUPUWBUXOUCUDUAGHUWEUWFVOUWFVFUVNUWEVNZUVOU
      XKUWAUXNUVNUWEUVMYSVXBUVTUXMUBFVXBUVSUXLUVQUVNUWEUVRUUQUUTUURUUSUVAUVBVGA
      UBUAUWGEUVIFUVJIUVKLAGYPSZHYPSZUVJUWGUVCRVNAUWQVXCMJGYQXSAUXDVXDNKHYQXSUC
      UDUWGGHYPYPUWGVFUVDVKAUWQUXDUVJUVKVCRSMNGHJKUVEVKOUVFUVG $.
  $}

  ${
    $d f g t u w z A $.  $d f g k u w x z D $.  $d a f g k n t w x z I $.
    $d f t u x z G $.  $d f g k u w z J $.  $d f z K $.  $d f g k w x z ph $.
    $d a f g k n u w x z F $.  $d f ps $.  $d a g k n w x V $.  $d f k z W $.
    $d f g k t u w x z X $.
    ptcnp.2 $e |- K = ( Xt_ ` F ) $.
    ptcnp.3 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    ptcnp.4 $e |- ( ph -> I e. V ) $.
    ptcnp.5 $e |- ( ph -> F : I --> Top ) $.
    ptcnp.6 $e |- ( ph -> D e. X ) $.
    ptcnp.7 $e |- ( ( ph /\ k e. I ) ->
      ( x e. X |-> A ) e. ( ( J CnP ( F ` k ) ) ` D ) ) $.
    ${
      ptcnplem.1 $e |- F/ k ps $.
      ptcnplem.2 $e |- ( ( ph /\ ps ) -> G Fn I ) $.
      ptcnplem.3 $e |- ( ( ( ph /\ ps ) /\ k e. I ) ->
                         ( G ` k ) e. ( F ` k ) ) $.
      ptcnplem.4 $e |- ( ( ph /\ ps ) -> W e. Fin ) $.
      ptcnplem.5 $e |- ( ( ( ph /\ ps ) /\ k e. ( I \ W ) ) ->
                         ( G ` k ) = U. ( F ` k ) ) $.
      ptcnplem.6 $e |- ( ( ph /\ ps ) ->
        ( ( x e. X |-> ( k e. I |-> A ) ) ` D ) e. X_ k e. I ( G ` k ) ) $.
      $( Lemma for ~ ptcnp .  (Contributed by Mario Carneiro, 3-Feb-2015.)
         (Revised by Mario Carneiro, 22-Aug-2015.) $)
      ptcnplem $p |- ( ( ph /\ ps ) -> E. z e. J ( D e. z /\
        ( ( x e. X |-> ( k e. I |-> A ) ) " z ) C_ X_ k e. I ( G ` k ) ) ) $=
        ( vf vu vt wa cin cv wf cfv wcel cmpt cima wss wral cixp wrex cfn inss2
        wex ssfi sylancl nfv nfan inss1 sseli ccnp co adantlr wceq adantr simpr
        cuni ctopon ctop ffvelrnda toptopon sylib cnpf2 syl3anc sylibr r19.21bi
        eqid fmpt fvmpt2 syl2anc mpteq2dva cvv mptexg syl eqtr4d ralrimiva nfcv
        an32s nffvmpt1 nfmpt nfeq fveq2 mpteq2dv eqeq12d rspc eqeltrd mptelixpg
        sylc wb mpbid cnpimaex sylan2 ex ralrimi eleq2 imaeq2 sseq1d ac6sfi crn
        anbi12d cint ad2antrr toponuni ineq1d ad2antrl mpbird sylanbrc wfun cdm
        simpl funmpt dmmptg funimass4 sylancr eleq1d cbvral ssralv expimpd
        nfel1 topontop frn wfo wfn ffn dffn4 fofi rintopn ralimi ad2antll ralrn
        elrint cdif simp-4l simpllr simplr ffvelrnd toponss sseldi syl6bb mpsyl
        sseqtr4d intss1 syl5ss r19.26 sylan biimpd ralimia sylbir syl6an sylbid
        wi fnfvelrn ralimdaa eldifi syl2an ralbidv inundif raleqi ralunb bitr3i
        impr cun ralcom syl2anr bitrd ralbidva syl5bb ralrimivw rspcev syl12anc
        syl5sseqr exlimddv ) ABUKZJNULZKUHUMZUNZFGUMZUWPUOZUPZCOEUQZUWSURZUWRIU
        OZUSZUKZGUWOUTZUKZFDUMZUPZCOGJEUQZUQZUXHURZGJUXCVAZUSZUKZDKVBZUHUWNUWOV
        CUPZFUIUMZUPZUXAUXRURZUXCUSZUKZUIKVBZGUWOUTUXGUHVEUWNNVCUPUWONUSUXQUEJN
        VDNUWOVFVGZUWNUYCGUWOABGAGVHUBVIZUWNUWRUWOUPZUYCUYFUWNUWRJUPZUYCUWOJUWR
        JNVJZVKUWNUYGUKUXAFKUWRHUOZVLVMUOUPZUXCUYIUPFUXAUOZUXCUPZUYCAUYGUYJBUAV
        NUDUWNUYLGJUWNGJUYKUQZUXMUPZUYLGJUTZUWNUYMFUXKUOZUXMUWNFOUPZGJCUMZUXAUO
        ZUQZUYRUXKUOZVOZCOUTZUYMUYPVOZAUYQBTVPAVUCBAVUBCOAUYROUPZUKZUYTUXJVUAVU
        FGJUYSEAUYGVUEUYSEVOZAUYGUKZVUEUKVUEEUYIVRZUPZVUGVUHVUEVQVUHVUJCOVUHOVU
        IUXAUNZVUJCOUTZVUHKOVSUOUPZUYIVUIVSUOUPZUYJVUKAVUMUYGQVPVUHUYIVTUPVUNAJ
        VTUWRHSWAUYIVUIVUIWHWBWCUAFUXAKUYIOVUIWDWECOVUIEUXAUXAWHZWIWFZWGZCOEVUI
        UXAVUOWJZWKWSWLVUFVUEUXJWMUPZVUAUXJVOZAVUEVQVUFJMUPZVUSAVVAVUERVPGJEMWN
        ZWOCOUXJWMUXKUXKWHWJZWKWPWQVPVUBVUDCFOCUYMUYPCGJUYKCJWRCOEFWTXACOUXJFWT
        XBUYRFVOZUYTUYMVUAUYPVVDGJUYSUYKUYRFUXAXCXDUYRFUXKXCXEXFXIUGXGUWNVVAUYN
        UYOXJAVVABRVPGJUYKUXCMXHWOXKWGUIUXCFUXAKUYIXLWEXMXNXOUYBUXEGUIUWOKUHUXR
        UWSVOZUXSUWTUYAUXDUXRUWSFXPVVEUXTUXBUXCUXRUWSUXAXQXRYAXSWKUWNUXGUKZOUWP
        XTZYBZULZKUPFVVIUPZUXKVVIURZUXMUSZUXPVVFVVIKVRZVVHULZKVVFOVVMVVHVVFVUMO
        VVMVOAVUMBUXGQYCOKYDWOYEVVFKVTUPZVVGKUSZVVGVCUPZVVNKUPAVVOBUXGAVUMVVOQO
        KUUAWOYCUWQVVPUWNUXFUWOKUWPUUBYFVVFUXQUWOVVGUWPUUCZVVQUWNUXQUXGUYDVPVVF
        UWPUWOUUDZVVRUWQVVSUWNUXFUWOKUWPUUEZYFZUWOUWPUUFWCUWOVVGUWPUUGWKVVGKVVM
        VVMWHUUHWEXGVVFUYQUXIDVVGUTZVVJAUYQBUXGTYCVVFVWBUWTGUWOUTZUXFVWCUWNUWQU
        XEUWTGUWOUWTUXDYKUUIUUJVVFVVSVWBVWCXJVWAUXIUWTDGUWOUWPUXHUWSFXPUUKWOYGD
        OVVGFUULYHVVFVVLUJUMZUXKUOZUXMUPZUJVVIUTZVVFVWGEUXCUPZGJUTZCVVIUTZVVFVW
        HCVVIUTZGJUTZVWJVVFVWKGUWOUTZVWKGJNUUMZUTZVWLUWNUWQUXFVWMUWNUWQUKZUXEVW
        KGUWOUWNUWQGUYEUWQGVHVIVWPUYFUKZUWTUXDVWKVWQUWTUKZUXDUYSUXCUPZCUWSUTZVW
        KVWRUXDVWDUXAUOZUXCUPZUJUWSUTZVWTVWRUXAYIUWSUXAYJZUSUXDVXCXJCOEYLVWRUWS
        OVXDVWRVUMUWSKUPUWSOUSVWRAVUMABUWQUYFUWTUUNZQWOVWRUWOKUWRUWPUWNUWQUYFUW
        TUUOZVWPUYFUWTUUPZUUQUWSKOUURWKVWRVULVXDOVOVWRAUYGVULVXEVWRUWOJUWRUYHVX
        GUUSVUPWKZCOEVUIYMWOUVBUJUWSUXCUXAYNYOVXBVWSUJCUWSCVXAUXCCOEVWDWTYTVWSU
        JVHVWDUYRVOZVXAUYSUXCVWDUYRUXAXCYPYQUUTVWRVUJCVVIUTZVWTVWSCVVIUTZVWKVVI
        OUSVWRVULVXJOVVHVJZVXHVUJCVVIOYRUVAVWRVVIUWSUSVWTVXKUVLVWRVVIVVHUWSOVVH
        VDVWRUWSVVGUPZVVHUWSUSVWRVVSUYFVXMVWRUWQVVSVXFVVTWOVXGUWOUWRUWPUVMWKUWS
        VVGUVCWOUVDVWSCVVIUWSYRWOVXJVXKUKVUJVWSUKZCVVIUTVWKVUJVWSCVVIUVEVXNVWHC
        VVIUYRVVIUPZVUJVWSVWHVXOVUJUKZVWSVWHVXPUYSEUXCVXOVUEVUJVUGVVIOUYRVXLVKZ
        VURUVFYPUVGYSUVHUVIUVJUVKYSUVNUWBUWNVWOUXGUWNVWKGVWNUYEUWNUWRVWNUPZVWKU
        WNVXRUKZVWKVXJUWNAUYGVXJVXRABYKUWRJNUVOVUHVUJCVVIVXOVUHVUEVUJVXQVUQXMWQ
        UVPVXSUXCVUIVOZVWKVXJXJUFVXTVWHVUJCVVIUXCVUIEXPUVQWOYGXNXOVPVWLVWKGUWOV
        WNUWCZUTVWMVWOUKVWKGVYAJJNUVRUVSVWKGUWOVWNUVTUWAYHVWHCGVVIJUWDWFVVFVVAV
        WGVWJXJAVVABUXGRYCVWGVUAUXMUPZCVVIUTVVAVWJVWFVYBUJCVVICVWEUXMCOUXJVWDWT
        YTVYBUJVHVXIVWEVUAUXMVWDUYRUXKXCYPYQVVAVYBVWICVVIVVAVXOUKZVYBUXJUXMUPZV
        WIVYCVUAUXJUXMVXOVUEVUSVUTVVAVXQVVBVVCUWEYPVVAVYDVWIXJVXOGJEUXCMXHVPUWF
        UWGUWHWOYGVVFUXKYIVVIUXKYJZUSVVLVWGXJCOUXJYLVVFOVVIVYEVXLVVFVUSCOUTZVYE
        OVOAVYFBUXGAVUSCOAVVAVUSRVVBWOUWIYCCOUXJWMYMWOUWLUJVVIUXMUXKYNYOYGUXOVV
        JVVLUKDVVIKUXHVVIVOZUXIVVJUXNVVLUXHVVIFXPVYGUXLVVKUXMUXHVVIUXKXQXRYAUWJ
        UWKUWM $.
    $}

    $( If every projection of a function is continuous at ` D ` , then the
       function itself is continuous at ` D ` into the product topology.
       (Contributed by Mario Carneiro, 3-Feb-2015.)  (Revised by Mario
       Carneiro, 22-Aug-2015.) $)
    ptcnp $p |- ( ph -> ( x e. X |-> ( k e. I |-> A ) ) e.
      ( ( J CnP K ) ` D ) ) $=
      ( cfv wcel wa vf vz vg vn vw va cmpt ccnp co cv cuni cixp wf cima wrex wi
      wss wfn wral wceq cdif cfn w3a ctopon adantr ctop ffvelrnda eqid toptopon
      wex sylib cnpf2 syl3anc fmpt sylibr r19.21bi an32s ralrimiva wb mptelixpg
      cab syl mpbird fmptd wal df-3an nfcv nfmpt1 nfmpt nffv nfel1 nfan simprll
      simprlr fveq2 eleq12d rspccva sylan simprrl simpld simprd eqeq12d simprrr
      nfv unieqd cbvixpv syl6eleq ptcnplem anassrs expr rexlimdvaa impr sylan2b
      eleq2 eqeq2i biimpi sseq2d anbi2d rexbidv imbi12d expimpd exlimdv alrimiv
      syl5ibrcom eqeq1 exbidv ralab cpt ctg ptval syl2anc syl5eq feqmptd fveq2d
      ffn pttopon eqeltrd tgcnp mpbir2and ) ABKEGCUGZUGZDHIUHUIRSKEGEUJZFRZUKZU
      LZUUAUMDUUARZUAUJZSZDUBUJZSZUUAUUIUNZUUGUQZTZUBHUOZUPZUAUCUJZGURZUDUJZUUP
      RZUURFRZSZUDGUSZUUSUUTUKZUTZUDGUEUJZVAZUSZUEVBUOZVCZUFUJZUDGUUSULZUTZTZUC
      VJZUFWAZUSZABKYTUUEUUAABUJKSZTZYTUUESZCUUDSZEGUSZUVRUVTEGAUUBGSZUVQUVTAUW
      BTZUVTBKUWCKUUDBKCUGZUMZUVTBKUSUWCHKVDRSZUUCUUDVDRSZUWDDHUUCUHUIRSUWEAUWF
      UWBMVEUWCUUCVFSUWGAGVFUUBFOVGUUCUUDUUDVHVIVKZQDUWDHUUCKUUDVLVMBKUUDCUWDUW
      DVHVNVOVPVQVRUVRGJSZUVSUWAVSAUWIUVQNVEEGCUUDJVTWBWCUUAVHWDAUVIUUGUVKUTZTZ
      UCVJZUUOUPZUAWEUVPAUWMUAAUWKUUOUCAUVIUWJUUOAUVITUUOUWJUUFUVKSZUUJUUKEGUUB
      UUPRZULZUQZTZUBHUOZUPZUVIAUUQUVBTZUVHTUWTUUQUVBUVHWFAUXAUVHUWTAUXATZUVGUW
      TUEVBUXBUVEVBSZUVGTZUWNUWSAUXAUXDUWNTZUWSAUXAUXETZBUBCDEFUUPGHIJUVEKLMNOP
      QUXAUXEEUXAEXDUXDUWNEUXDEXDEUUFUVKEDUUAEBKYTEKWGEGCWHWIEDWGWJWKWLWLAUUQUV
      BUXEWMAUXFTZUVBUWBUWOUUCSZAUUQUVBUXEWNUVAUXHUDUUBGUURUUBUTZUUSUWOUUTUUCUU
      RUUBUUPWOZUURUUBFWOZWPWQWRUXGUXCUVGAUXAUXDUWNWSZWTUXGUVGUUBUVFSUWOUUDUTZU
      XGUXCUVGUXLXAUVDUXMUDUUBUVFUXIUUSUWOUVCUUDUXJUXIUUTUUCUXKXEXBWQWRUXGUUFUV
      KUWPAUXAUXDUWNXCUDEGUUSUWOUXJXFZXGXHXIXJXKXLXMUWJUUHUWNUUNUWSUUGUVKUUFXNU
      WJUUMUWRUBHUWJUULUWQUUJUWJUUGUWPUUKUWJUUGUWPUTUVKUWPUUGUXNXOXPXQXRXSXTYDY
      AYBYCUVNUWLUUOUAUFUVJUUGUTZUVMUWKUCUXOUVLUWJUVIUVJUUGUVKYEXRYFYGVOAUBUAUV
      ODUUAHIKUUEMAIFYHRZUVOYIRZLAUWIFGURZUXPUXQUTNAGVFFUMUXROGVFFYOWBUFUDUEGUV
      OUCFJUVOVHYJYKYLAIEGUUCUGZYHRZUUEVDRZAIUXPUXTLAFUXSYHAEGVFFOYMYNYLAUWIUWG
      EGUSUXTUYASNAUWGEGUWHVREGUUDUXTUUCJUXTVHYPYKYQPYRYS $.
  $}

  ${
    $d h x z A $.  $d h x z B $.  $d h x z C $.  $d h x z F $.  $d h x z G $.
    $d h z D $.  $d z P $.  $d z Q $.
    upxp.1 $e |- P = ( 1st |` ( B X. C ) ) $.
    upxp.2 $e |- Q = ( 2nd |` ( B X. C ) ) $.
    $( Universal property of the Cartesian product considered as a categorical
       product in the category of sets.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by Mario Carneiro, 27-Dec-2014.) $)
    upxp $p |- ( ( A e. D /\ F : A --> B /\ G : A --> C ) ->
        E! h ( h : A --> ( B X. C ) /\ F = ( P o. h ) /\ G = ( Q o. h ) ) ) $=
      ( wcel ccom wceq cfv cvv wa wfn c1st c2nd vx vz wf w3a cxp weu cop mptexg
      cmpt eueq sylib 3ad2ant1 ffn adantl wral ffvelrn opelxpi syl2an ralrimiva
      anandirs 3adant1 eqid fmpt syl adantr xpss sseldi 3ad2antl1 adantll fveq1
      cv cres coeq1i fveq1i syl6eq 3ad2ant2 ad2antlr simpr1 fvco3 sylan 3eqtrrd
      fvres 3ad2ant3 eqopi syl12anc fveq2 opeq12d opex fvmpt eqtr4d eqfnfvd crn
      ex wss wfo fo1st fofn ax-mp ssv fnssres mp2an a1i frn fnco syl3anc fveq2d
      3adantl1 fvex op1st syl6eqr fo2nd op2nd 3jca feq1 coeq2 eqeq2d syl5ibrcom
      3anbi123d impbid eubidv mpbird ) ADLZABHUCZACIUCZUDZABCUEZGVKZUCZHEYGMZNZ
      IFYGMZNZUDZGUFYGUAAUAVKZHOZYNIOZUGZUIZNZGUFZYBYCYTYDYBYRPLYTUAAYQDUHGYRUJ
      UKULYEYMYSGYEYMYSYEYMYSYEYMQZUBAYGYRYMYGARZYEYHYJUUBYLAYFYGUMULUNYEYRARZY
      MYEAYFYRUCZUUCYEYQYFLZUAAUOZUUDYCYDUUFYBYCYDQUUEUAAYCYDYNALZUUEYCUUGQYOBL
      YPCLUUEYDUUGQABYNHUPACYNIUPYOYPBCUQURUTUSVAUAAYFYQYRYRVBZVCUKZAYFYRUMVDZV
      EUUAUBVKZALZQZUUKYGOZUUKHOZUUKIOZUGZUUKYROZUUMUUNPPUEZLZUUNSOZUUONUUNTOZU
      UPNUUNUUQNYMUULUUTYEYHYJUULUUTYLYHUULQYFUUSUUNBCVFAYFUUKYGUPZVGVHVIUUMUUO
      UUKSYFVLZYGMZOZUUNUVDOZUVAYMUUOUVFNZYEUULYJYHUVHYLYJUUOUUKYIOUVFUUKHYIVJU
      UKYIUVEEUVDYGJVMVNVOVPVQUUAYHUULUVFUVGNYEYHYJYLVRZAYFUUKUVDYGVSVTUUMUUNYF
      LZUVGUVANYMUULUVJYEYHYJUULUVJYLUVCVHVIZUUNYFSWBVDWAUUMUUPUUKTYFVLZYGMZOZU
      UNUVLOZUVBYMUUPUVNNZYEUULYLYHUVPYJYLUUPUUKYKOUVNUUKIYKVJUUKYKUVMFUVLYGKVM
      VNVOWCVQUUAYHUULUVNUVONUVIAYFUUKUVLYGVSVTUUMUVJUVOUVBNUVKUUNYFTWBVDWAUUNU
      UOUUPPPWDWEUULUURUUQNZUUAUAUUKYQUUQAYRYNUUKNYOUUOYPUUPYNUUKHWFYNUUKIWFWGU
      UHUUOUUPWHWIZUNWJWKWMYEYMYSUUDHEYRMZNZIFYRMZNZUDYEUUDUVTUWBUUIYEHUVDYRMZU
      VSYEUBAHUWCYCYBHARYDABHUMVPYEUVDYFRZUUCYRWLYFWNZUWCARUWDYESPRZYFPWNZUWDPP
      SWOUWFWPPPSWQWRYFWSZPYFSWTXAXBUUJYEUUDUWEUUIAYFYRXCVDZYFAUVDYRXDXEYEUULQZ
      UUKUWCOZUURUVDOZUUQUVDOZUUOYEUUDUULUWKUWLNUUIAYFUUKUVDYRVSVTUWJUURUUQUVDU
      ULUVQYEUVRUNZXFUWJUWMUUQSOZUUOUWJUUQYFLZUWMUWONYCYDUULUWPYBYCYDUULUWPYCUU
      LQUUOBLUUPCLUWPYDUULQABUUKHUPACUUKIUPUUOUUPBCUQURUTXGZUUQYFSWBVDUUOUUPUUK
      HXHZUUKIXHZXIVOWAWKEUVDYRJVMXJYEIUVLYRMZUWAYEUBAIUWTYDYBIARYCACIUMWCYEUVL
      YFRZUUCUWEUWTARUXAYETPRZUWGUXAPPTWOUXBXKPPTWQWRUWHPYFTWTXAXBUUJUWIYFAUVLY
      RXDXEUWJUUKUWTOZUURUVLOZUUQUVLOZUUPYEUUDUULUXCUXDNUUIAYFUUKUVLYRVSVTUWJUU
      RUUQUVLUWNXFUWJUXEUUQTOZUUPUWJUWPUXEUXFNUWQUUQYFTWBVDUUOUUPUWRUWSXLVOWAWK
      FUVLYRKVMXJXMYSYHUUDYJUVTYLUWBAYFYGYRXNYSYIUVSHYGYREXOXPYSYKUWAIYGYRFXOXP
      XRXQXSXTYA $.
  $}

  ${
    $d r s x z F $.  $d r s x z G $.  $d r s x z R $.  $d r s x z S $.
    $d r s z H $.  $d r s x z U $.  $d x z W $.
    txcnmpt.1 $e |- W = U. U $.
    txcnmpt.2 $e |- H = ( x e. W |-> <. ( F ` x ) , ( G ` x ) >. ) $.
    $( A map into the product of two topological spaces is continuous if both
       of its projections are continuous.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
    txcnmpt $p |- ( ( F e. ( U Cn R ) /\ G e. ( U Cn S ) )
                 -> H e. ( U Cn ( R tX S ) ) ) $=
      ( vz vr vs co wcel wa wral cfv wb ctop ccn ctx cuni wf ccnv cv cima cmpt2
      cxp crn cop eqid cnf adantr ffvelrnda opelxpi syl2anc fmptd cin mptpreima
      adantl crab wfn elpreima 3syl ibar bitr4d ad2antrr anbi12d opelxp 3bitr4g
      ffn elin rabbi2dva wss wceq cdm inss1 cnvimass sstri fdm syl5sseq sseqin2
      syl sylib eqtr3d syl5eq cntop1 cnima ad2ant2r ad2ant2l syl3anc ralrimivva
      inopn eqeltrd cvv xpex rgen2w imaeq2 eleq1d ralrnmpt2 ax-mp sylibr ctopon
      vex toptopon ctg cntop2 txval syl2an txtopon tgcn mpbir2and ) EDBUANOZFDC
      UANOZPZGDBCUBNZUANOHBUCZCUCZUIZGUDGUEZKUFZUGZDOZKLMBCLUFZMUFZUIZUHZUJZQZX
      PAHAUFZERZYKFRZUKZXTGXPYKHOZPYLXROYMXSOYNXTOXPHXRYKEXNHXREUDZXOEDBHXRIXRU
      LZUMUNZUOXPHXSYKFXOHXSFUDZXNFDCHXSIXSULZUMVAZUOYLYMXRXSUPUQJURXPYAYGUGZDO
      ZMCQLBQZYJXPUUCLMBCXPYEBOZYFCOZPZPZUUBEUEYEUGZFUEYFUGZUSZDUUHUUBYNYGOZAHV
      BZUUKAHYNYGGJUTUUHHUUKUSZUUMUUKUUHUULAHUUKUUHYOPZYKUUIOZYKUUJOZPYLYEOZYMY
      FOZPYKUUKOUULUUOUUPUURUUQUUSUUOUUPYOUURPZUURUUOYPEHVCUUPUUTSUUHYPYOXPYPUU
      GYRUNZUNHXREVLHYKYEEVDVEYOUURUUTSUUHYOUURVFVAVGUUOUUQYOUUSPZUUSUUOYSFHVCU
      UQUVBSXPYSUUGYOUUAVHHXSFVLHYKYFFVDVEYOUUSUVBSUUHYOUUSVFVAVGVIYKUUIUUJVMYL
      YMYEYFVJVKVNUUHUUKHVOUUNUUKVPUUHEVQZUUKHUUKUUIUVCUUIUUJVREYEVSVTUUHYPUVCH
      VPUVAHXREWAWDWBUUKHWCWEWFWGUUHDTOZUUIDOZUUJDOZUUKDOXPUVDUUGXOUVDXNFDCWHVA
      ZUNXNUUEUVEXOUUFYEEDBWIWJXOUUFUVFXNUUEYFFDCWIWKUUIUUJDWNWLWOWMYGWPOZMCQLB
      QYJUUDSUVHLMBCYEYFLXEMXEWQWRYDUUCLMKBCYGYHWPYHULYBYGVPYCUUBDYBYGYAWSWTXAX
      BXCXPKYIGDXQHXTXPUVDDHXDROUVGDHIXFWEXNBTOZCTOZXQYIXGRVPXOEDBXHZFDCXHZLMYI
      BCTTYIULXIXJXNBXRXDROZCXSXDROZXQXTXDROXOXNUVIUVMUVKBXRYQXFWEXOUVJUVNUVLCX
      SYTXFWEBCXRXSXKXJXLXM $.
  $}

  ${
    $d h x z F $.  $d h x z G $.  $d h P $.  $d h Q $.  $d h x R $.  $d h T $.
    $d h x S $.  $d h x z U $.  $d h x z X $.  $d h x z Y $.
    uptx.1 $e |- T = ( R tX S ) $.
    uptx.2 $e |- X = U. R $.
    uptx.3 $e |- Y = U. S $.
    uptx.4 $e |- Z = ( X X. Y ) $.
    uptx.5 $e |- P = ( 1st |` Z ) $.
    uptx.6 $e |- Q = ( 2nd |` Z ) $.
    $( Universal property of the binary topological product.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
       22-Aug-2015.) $)
    uptx $p |- ( ( F e. ( U Cn R ) /\ G e. ( U Cn S ) ) ->
                  E! h e. ( U Cn T ) ( F = ( P o. h ) /\ G = ( Q o. h ) ) ) $=
      ( wcel cvv vx vz ccn co ccom wceq wex wmo wreu cuni cfv cop cmpt ctx eqid
      wa cv txcnmpt oveq2i syl6eleqr wf cnf c1st cxp wfn ffn adantr crn wss wfo
      cres fo1st fofn ax-mp ssv fnssres mp2an a1i ffvelrn syl2an anandirs fmptd
      opelxpi syl frn fnco syl3anc fvco3 sylan fveq2 opeq12d opex adantl fveq2d
      fvmpt fvres fvex op1st syl6eq 3eqtrrd eqfnfvd reseq2i coeq1i syl6eqr c2nd
      eqtri fo2nd op2nd jca32 eleq1 coeq2 eqeq2d anbi12d spcegv sylc w3a wi wal
      ctop cntop2 txuni unieqi syl6reqr feq3d syl5ib anim1d syl6ibr alrimiv weu
      3anass cntop1 uniexg upxp eumo moim df-reu eu5 bitri sylanbrc ) HFCUCUDSZ
      IFDUCUDSZUPZGUQZFEUCUDZSZHAUUCUEZUFZIBUUCUEZUFZUPZUPZGUGZUUKGUHZUUJGUUDUI
      ZUUBUAFUJZUAUQZHUKZUUPIUKZULZUMZUUDSZUVAHAUUTUEZUFZIBUUTUEZUFZUPZUPZUULUU
      BUUTFCDUNUDZUCUDUUDUACDFHIUUTUUOUUOUOZUUTUOZUREUVHFUCMUSUTZUUBUVAUVCUVEUV
      KYTUUOJHVAZUUOKIVAZUVCUUAHFCUUOJUVINVBZIFDUUOKUVIOVBZUVLUVMUPZHVCJKVDZVKZ
      UUTUEZUVBUVPUBUUOHUVSUVLHUUOVEUVMUUOJHVFVGUVPUVRUVQVEZUUTUUOVEZUUTVHUVQVI
      ZUVSUUOVEUVTUVPVCTVEZUVQTVIZUVTTTVCVJUWCVLTTVCVMVNUVQVOZTUVQVCVPVQVRUVPUU
      OUVQUUTVAZUWAUVPUAUUOUUSUVQUUTUVLUVMUUPUUOSZUUSUVQSZUVLUWGUPUUQJSUURKSUWH
      UVMUWGUPUUOJUUPHVSUUOKUUPIVSUUQUURJKWCVTWAUVJWBZUUOUVQUUTVFWDZUVPUWFUWBUW
      IUUOUVQUUTWEWDZUVQUUOUVRUUTWFWGUVPUBUQZUUOSZUPZUWLUVSUKZUWLUUTUKZUVRUKZUW
      LHUKZUWLIUKZULZUVRUKZUWRUVPUWFUWMUWOUWQUFUWIUUOUVQUWLUVRUUTWHWIUWNUWPUWTU
      VRUWMUWPUWTUFUVPUAUWLUUSUWTUUOUUTUUPUWLUFUUQUWRUURUWSUUPUWLHWJUUPUWLIWJWK
      UVJUWRUWSWLWOWMZWNUWNUXAUWTVCUKZUWRUWNUWTUVQSZUXAUXCUFUVLUVMUWMUXDUVLUWMU
      PUWRJSUWSKSUXDUVMUWMUPUUOJUWLHVSUUOKUWLIVSUWRUWSJKWCVTWAZUWTUVQVCWPWDUWRU
      WSUWLHWQZUWLIWQZWRWSWTXAAUVRUUTAVCLVKUVRQLUVQVCPXBXFZXCXDVTYTUVLUVMUVEUUA
      UVNUVOUVPIXEUVQVKZUUTUEZUVDUVPUBUUOIUXJUVMIUUOVEUVLUUOKIVFWMUVPUXIUVQVEZU
      WAUWBUXJUUOVEUXKUVPXETVEZUWDUXKTTXEVJUXLXGTTXEVMVNUWETUVQXEVPVQVRUWJUWKUV
      QUUOUXIUUTWFWGUWNUWLUXJUKZUWPUXIUKZUWTUXIUKZUWSUVPUWFUWMUXMUXNUFUWIUUOUVQ
      UWLUXIUUTWHWIUWNUWPUWTUXIUXBWNUWNUXOUWTXEUKZUWSUWNUXDUXOUXPUFUXEUWTUVQXEW
      PWDUWRUWSUXFUXGXHWSWTXABUXIUUTBXELVKUXIRLUVQXEPXBXFZXCXDVTXIUUKUVGGUUTUUD
      UUCUUTUFZUUEUVAUUJUVFUUCUUTUUDXJUXRUUGUVCUUIUVEUXRUUFUVBHUUCUUTAXKXLUXRUU
      HUVDIUUCUUTBXKXLXMXMXNXOUUBUUKUUOUVQUUCVAZUUGUUIXPZXQZGXRUXTGUHZUUMUUBUYA
      GUUBUUKUXSUUJUPUXTUUBUUEUXSUUJUUEUUOEUJZUUCVAUUBUXSUUCFEUUOUYCUVIUYCUOVBU
      UBUYCUVQUUCUUOYTCXSSZDXSSZUYCUVQUFUUAHFCXTIFDXTUYDUYEUPUVQUVHUJUYCCDJKNOY
      AEUVHMYBYCVTYDYEYFUXSUUGUUIYJYGYHUUBUXTGYIZUYBUUBUUOTSZUVLUVMUYFYTUYGUUAY
      TFXSSUYGHFCYKFXSYLWDVGYTUVLUUAUVNVGUUAUVMYTUVOWMUUOJKTABGHIUXHUXQYMWGUXTG
      YNWDUUKUXTGYOXOUUNUUKGYIUULUUMUPUUJGUUDYPUUKGYQYRYS $.
  $}

  ${
    $d R h $.  $d S h $.  $d U h $.  $d W h $.  $d X h $.  $d Y h $.  $d Z h $.
    $d P h $.  $d Q h $.  $d F h $.
    txcn.1 $e |- X = U. R $.
    txcn.2 $e |- Y = U. S $.
    txcn.3 $e |- Z = ( X X. Y ) $.
    txcn.4 $e |- W = U. U $.
    txcn.5 $e |- P = ( 1st |` Z ) $.
    txcn.6 $e |- Q = ( 2nd |` Z ) $.
    $( A map into the product of two topological spaces is continuous iff both
       of its projections are continuous.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Proof shortened by Mario Carneiro, 22-Aug-2015.) $)
    txcn $p |- ( ( R e. Top /\ S e. Top /\ F : W --> Z ) ->
         ( F e. ( U Cn ( R tX S ) ) <-> ( ( P o. F ) e. ( U Cn R ) /\
                                          ( Q o. F ) e. ( U Cn S ) ) ) ) $=
      ( vh wcel wf wa ctop w3a ctx co ccn ccom wi ctopon cfv toptopon c1st cres
      cxp reseq2i eqtri tx1cn syl5eqel c2nd tx2cn cnco anim12dan expcom syl2anc
      syl2anb 3adant3 wceq weu wex cntop1 ad2antrl topopn syl cnf ad2antll upxp
      cv wb feq3 ax-mp 3anbi1i eubii sylibr syl3anc euex cvv wmo simpll3 adantr
      xpexg syl2an ad2antrr fex2 eumo simpr 3anass coeq2 eqcoms biantrud bitr3d
      feq1 syl5bb moi2 syl22anc wreu eqid uptx adantl df-reu sylbi txuni syl5eq
      jca cuni feq3d syl5ibr anim1d syl6ibr a1i jcad eximdv syl5 mpd eupick imp
      simpl eqeltrrd exlimddv ex impbid ) CUARZDUARZGJFSZUBZFECDUCUDZUEUDZRZAFU
      FZECUEUDRZBFUFZEDUEUDRZTZYJYKYPUUAUGZYLYJCHUHUIRZDIUHUIRZUUBYKCHKUJDILUJU
      UCUUDTZAYNCUEUDZRZBYNDUEUDZRZUUBUUEAUKHIUMZULZUUFAUKJULUUKOJUUJUKMUNUOZCD
      HIUPUQUUEBURUUJULZUUHBURJULUUMPJUUJURMUNUOZCDHIUSUQYPUUGUUITUUAYPUUGYRUUI
      YTFAEYNCUTFBEYNDUTVAVBVCVDVEYMUUAYPYMUUATZGJQVPZSZYQAUUPUFVFZYSBUUPUFVFZU
      BZYPQUUOUUTQVGZUUTQVHUUOGERZGHYQSZGIYSSZUVAUUOEUARZUVBYRUVEYMYTYQECVIVJEG
      NVKVLZYRUVCYMYTYQECGHNKVMVJYTUVDYMYRYSEDGINLVMVNUVBUVCUVDUBGUUJUUPSZUURUU
      SUBZQVGUVAGHIEABQYQYSUULUUNVOUUTUVHQUUQUVGUURUUSJUUJVFUUQUVGVQMJUUJGUUPVR
      VSVTWAWBWCZUUTQWDVLUUOUUTTZUUPFYOUVJFWERZUUTQWFZUUTYLUUPFVFZUVJYLUVBJWERZ
      UVKYJYKYLUUAUUTWGZUUOUVBUUTUVFWHYMUVNUUAUUTYJYKUVNYLYJHCRZIDRZUVNYKCHKVKD
      ILVKUVPUVQTJUUJWEMHICDWIUQWJVEWKGJFEWEWLWCUUOUVLUUTUUOUVAUVLUVIUUTQWMVLWH
      UUOUUTWNUVOUUTYLQFWEUUTUUQUURUUSTZTZUVMYLUUQUURUUSWOZUVMUUQUVSYLUVMUVRUUQ
      UVRFUUPFUUPVFUURUUSFUUPAWPFUUPBWPXLWQWRGJUUPFWTWSXAXBXCUUOUUTUUPYORZUUOUV
      AUUTUWATZQVHZUUTUWAUGUVIUUOUVRQYOXDZUWCUUAUWDYMABCDYNEQYQYSHIJYNXEKLMOPXF
      XGUWDUWAUVRTZQVHZUUOUWCUWDUWEQVGUWFUVRQYOXHUWEQWDXIUUOUWEUWBQUUOUWEUUTUWA
      UUOUWEUVSUUTUUOUWAUUQUVRUWAUUQUUOGYNXMZUUPSUUPEYNGUWGNUWGXEVMUUOJUWGUUPGY
      MJUWGVFZUUAYJYKUWHYLYJYKTJUUJUWGMCDHIKLXJXKVEWHXNXOXPUVTXQUWEUWAUGUUOUWAU
      VRYEXRXSXTYAYBUUTUWAQYCVCYDYFYGYHYI $.
  $}

  ${
    $d k x F $.  $d k x z I $.  $d k z J $.  $d k x z ph $.  $d k x z X $.
    $d z A $.  $d x z K $.  $d k x V $.
    ptcn.2 $e |- K = ( Xt_ ` F ) $.
    ptcn.3 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    ptcn.4 $e |- ( ph -> I e. V ) $.
    ptcn.5 $e |- ( ph -> F : I --> Top ) $.
    ptcn.6 $e |- ( ( ph /\ k e. I ) ->
      ( x e. X |-> A ) e. ( J Cn ( F ` k ) ) ) $.
    $( If every projection of a function is continuous, then the function
       itself is continuous into the product topology.  (Contributed by Mario
       Carneiro, 3-Feb-2015.) $)
    ptcn $p |- ( ph -> ( x e. X |-> ( k e. I |-> A ) ) e. ( J Cn K ) ) $=
      ( wcel cfv wa adantr ctop vz cmpt ccn co cuni wf cv ccnp wral cixp ctopon
      ffvelrnda eqid toptopon sylib cnf2 syl3anc fmpt sylibr r19.21bi ralrimiva
      an32s mptelixpg syl mpbird wceq ptuni syl2anc eleqtrd fmptd simpr adantlr
      simplr toponuni ad2antrr cncnpi ptcnp cpt pttop syl5eqel cncnp mpbir2and
      wb ) ABJDFCUBZUBZGHUCUDPZJHUEZWEUFZWEUAUGZGHUHUDQPZUAJUIZABJWDWGWEABUGJPZ
      RZWDDFDUGZEQZUEZUJZWGWMWDWQPZCWPPZDFUIZWMWSDFAWNFPZWLWSAXARZWSBJXBJWPBJCU
      BZUFZWSBJUIXBGJUKQPZWOWPUKQPZXCGWOUCUDPZXDAXEXALSXBWOTPXFAFTWNENULWOWPWPU
      MUNUOOXCGWOJWPUPUQBJWPCXCXCUMURUSUTVBVAWMFIPZWRWTWCAXHWLMSDFCWPIVCVDVEAWQ
      WGVFZWLAXHFTEUFZXIMNDFEHIKVGVHSVIWEUMVJAWJUAJAWIJPZRZBCWIDEFGHIJKAXEXKLSA
      XHXKMSAXJXKNSAXKVKXLXARZXGWIGUEZPXCWIGWOUHUDQPAXAXGXKOVLXMWIJXNAXKXAVMAJX
      NVFZXKXAAXEXOLJGVNVDVOVIWIXCGWOXNXNUMVPVHVQVAAXEHWGUKQPZWFWHWKRWCLAHTPXPA
      HEVRQZTKAXHXJXQTPMNFEIVSVHVTHWGWGUMUNUOUAWEGHJWGWAVHWB $.
  $}

  ${
    $d g x y z I $.  $d g x y z R $.  $d y V $.  $d g x y z W $.  $d g x y Y $.
    $d g x y ph $.  $d x y S $.
    prdstopn.y $e |- Y = ( S Xs_ R ) $.
    prdstopn.s $e |- ( ph -> S e. V ) $.
    prdstopn.i $e |- ( ph -> I e. W ) $.
    ${
      prdstopn.r $e |- ( ph -> R Fn I ) $.
      prdstopn.o $e |- O = ( TopOpen ` Y ) $.
      $( Topology of a structure product.  (Contributed by Mario Carneiro,
         27-Aug-2015.) $)
      prdstopn $p |- ( ph -> O = ( Xt_ ` ( TopOpen o. R ) ) ) $=
        ( vy cfv ctopn wss wceq cvv wcel vg vz vx cts ccom cpt cbs cpw cdm fnex
        wfn syl2anc eqid eqidd prdstset cuni cv wral cdif cfn wrex w3a cixp wex
        wa cab ctg wf topnfn dffn2 sylib fnfco sylancr ptval unieqd fvco2 sylan
        simpl2 crest co topnval restsspw eqsstr3i syl6eqss fvex syl6ib ralimdva
        sseld elpw imp sylan2 ss2ixp syl simprr prdsbas2 adantr 3sstr4d exlimdv
        selpw syl6ibr abssdv pwex ssex unitg 3syl sspwuni eqsstrd sylibr topnid
        ex eqtrd syl6eqr eqtr3d ) AHUDOZEPBUEZUFOZAXNHPOZEAXNHUGOZUHZQXNXQRAXNX
        PXSAXRHBCBUIZXNFSIJABDUKZDGTZBSTLKDGBUJULXRUMZAXTUNXNUMZUOZAXPUPZXRQXPX
        SQAYFUAUQZDUKZNUQZYGOZYIXOOZTZNDURZYJYKUPRNDUBUQUSURUBUTVAZVBZUCUQZNDYJ
        VCZRZVEZUAVDZUCVFZUPZXRAYFUUAVGOZUPZUUBAXPUUCAYBXODUKZXPUUCRKAPSUKDSBVH
        ZUUEVIAYAUUFLDBVJVKSDPBVLVMUCNUBDUUAUAXOGUUAUMVNULVOAUUAXSQZUUASTUUDUUB
        RAYTUCXSAYTYPXRQZYPXSTAYSUUHUAAYSUUHAYSVEZYQNDYIBOZUGOZVCZYPXRUUIYJUUKQ
        ZNDURZYQUULQYSAYMUUNYHYMYNYRVRAYMUUNAYLUUMNDAYIDTZVEZYLYJUUKUHZTUUMUUPY
        KUUQYJUUPYKUUJPOZUUQAYAUUOYKUURRLDPBYIVPVQUURUUJUDOZUUKVSVTUUQUUKUUSUUJ
        UUKUMUUSUMWAUUKUUSWBWCWDWHYJUUKYIYGWEWIWFWGWJWKNDYJUUKWLWMAYOYRWNAXRUUL
        RYSANXRBCDFGHIYCJKLWOWPWQXJWRUCXRWSWTXAZUUAXSXRHUGWEXBXCUUASXDXEXKAUUGU
        UBXRQUUTUUAXRXFVKXGXPXRXFXHXGXRXNHYCYDXIWMMXLYEXM $.
    $}

    prdstps.r $e |- ( ph -> R : I --> TopSp ) $.
    $( A structure product of topologies is a topological space.  (Contributed
       by Mario Carneiro, 27-Aug-2015.) $)
    prdstps $p |- ( ph -> Y e. TopSp ) $=
      ( vx cfv ctopon wcel ctps ctopn cpt eqid cvv cts cbs cv cmpt cixp wral wa
      ffvelrnda istps sylib ralrimiva pttopon syl2anc ccom fex cdm wceq fdm syl
      wf prdstset wfn topnfn dffn2 mpbi wss ssv fss sylancl fcompt fveq2d eqtrd
      sylancr prdsbas 3eltr4d tsettps ) AGUAMZGUBMZNMZOGPOALDLUCZBMZQMZUDZRMZLD
      WAUBMZUEZNMZVQVSADFOZWBWENMOZLDUFWDWGOJAWILDAVTDOUGWAPOWIADPVTBKUHWEWBWAW
      ESWBSUIUJUKLDWEWDWBFWDSULUMAVQQBUNZRMWDAVRGBCDVQETHIADPBUTZWHBTOKJDPFBUOU
      MZVRSZAWKBUPDUQKDPBURUSZVQSZVAAWJWCRATTQUTZDTBUTZWJWCUQQTVBWPVCTQVDVEAWKP
      TVFWQKPVGDPTBVHVILQBDTTVJVMVKVLAVRWFNALVRGBCDETHIWLWMWNVNVKVOVRVQGWMWOVPU
      S $.
  $}

  ${
    pwstps.y $e |- Y = ( R ^s I ) $.
    $( A structure product of topologies is a topological space.  (Contributed
       by Mario Carneiro, 27-Aug-2015.) $)
    pwstps $p |- ( ( R e. TopSp /\ I e. V ) -> Y e. TopSp ) $=
      ( ctps wcel wa csca cfv csn cxp cprds co eqid pwsval cvv fvexd simpr wf
      fconst6g adantr prdstps eqeltrd ) AFGZBCGZHZDAIJZBAKLZMNZFAUHBFCDEUHOPUGU
      IUHBQCUJUJOUGAIRUEUFSUEBFUITUFBAFUAUBUCUD $.
  $}

  ${
    $d r s u v x V $.  $d r s u v x W $.  $d r s u v x X $.  $d r s u v x Y $.
    $d r s u v w x A $.  $d r s u v w x B $.  $d r s u v w x R $.
    $d r s u v w x S $.
    $( The subspace of a topological product space induced by a subset with a
       Cartesian product representation is a topological product of the
       subspaces induced by the subspaces of the terms of the products.
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario
       Carneiro, 2-Sep-2015.) $)
    txrest $p |- ( ( ( R e. V /\ S e. W ) /\ ( A e. X /\ B e. Y ) ) ->
      ( ( R tX S ) |`t ( A X. B ) ) = ( ( R |`t A ) tX ( S |`t B ) ) ) $=
      ( vu vv vr vs wcel wa co crest cv wceq cvv wrex vx vw ctx cxp crn ctg cfv
      cmpt2 eqid txval adantr oveq1d txbasex xpexg tgrest syl2an cab cin elrest
      wb vex inex1 ad2ant2r xpeq1 eqeq2d rexbidv ad2ant2l xpeq2 adantl rexxfr2d
      a1i sylan9bbr wral xpex rgen2w ineq1 inxp syl6eq rexrnmpt2 syl6bbr bitr4d
      ax-mp abbi2dv rnmpt2 syl6eqr fveq2d 3eqtr2d ovex mp2an ) CEMZDFMZNZAGMZBH
      MZNZNZCDUCOZABUDZPOZIJCAPOZDBPOZIQZJQZUDZUHZUEZUFUGZWTXAUCOZWPWSKLCDKQZLQ
      ZUDZUHZUEZUFUGZWRPOZXMWRPOZUFUGZXGWPWQXNWRPWLWQXNRWOKLXMCDEFXMUIZUJUKULWL
      XMSMZWRSMZXQXORWOKLXMCDEFXRUMZABGHUNZWRXMSSUOUPWPXPXFUFWPXPUAQZXDRZJXATZI
      WTTZUAUQXFWPYFUAXPWPYCXPMZYCUBQZWRURZRZUBXMTZYFWLXSXTYGYKUTWOYAYBUBYCWRXM
      SSUSUPWPYFYCXIAURZXJBURZUDZRZLDTZKCTZYKWPYEYPIKYLWTCSYLSMWPXICMNXIAKVAZVB
      VKWJWMXBWTMXBYLRZKCTUTWKWNKXBACEGUSVCYSYEYCYLXCUDZRZJXATWPYPYSYDUUAJXAYSX
      DYTYCXBYLXCVDVEVFWPUUAYOJLYMXADSYMSMWPXJDMNXJBLVAZVBVKWKWNXCXAMXCYMRZLDTU
      TWJWMLXCBDFHUSVGUUCUUAYOUTWPUUCYTYNYCXCYMYLVHVEVIVJVLVJXKSMZLDVMKCVMYKYQU
      TUUDKLCDXIXJYRUUBVNVOYJYOKLUBCDXKXLSXLUIYHXKRZYIYNYCUUEYIXKWRURYNYHXKWRVP
      XIXJABVQVRVEVSWBVTWAWCIJUAWTXAXDXEXEUIWDWEWFWGWTSMXASMXHXGRCAPWHDBPWHIJXF
      WTXASSXFUIUJWIWE $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d x y V $.  $d x y W $.
    $( The topological product of discrete spaces is discrete.  (Contributed by
       Mario Carneiro, 14-Aug-2015.) $)
    txdis $p |- ( ( A e. V /\ B e. W ) -> ( ~P A tX ~P B ) = ~P ( A X. B ) ) $=
      ( vx vy vz vw wcel wa cpw cxp cuni wss wceq ctop distop unipw cv csn wrex
      ctx eqcomi txuni syl2an eqimss2 syl sspwuni sylibr wral c1st cfv c2nd cop
      co elelpwi adantl xp1st snelpwi xp2nd vsnid 1st2nd2 sneqd syl5eleq simprl
      3syl eqeltrrd snssd xpeq1 eleq2d sseq1d anbi12d xpeq2 fvex syl6eq rspc2ev
      xpsn syl112anc expr ralrimdva wb eltx sylibrd ssrdv eqssd ) ACIZBDIZJZAKZ
      BKZUBUOZABLZKZWHWKMZWLNZWKWMNWHWLWNOZWOWFWIPIZWJPIZWPWGACQZBDQZWIWJABWIMA
      ARUCWJMBBRUCUDUEWNWLUFUGWKWLUHUIWHEWMWKWHESZWMIZFSZGSZHSZLZIZXFXANZJZHWJU
      AGWIUAZFXAUJZXAWKIZWHXBXJFXAWHXCXAIZXBXJWHXMXBJZJZXCUKULZTZWIIZXCUMULZTZW
      JIZXCXPXSUNZTZIZYCXANZXJXOXCWLIZXPAIXRXNYFWHXCXAWLUPUQZXCABURXPAUSVFXOYFX
      SBIYAYGXCABUTXSBUSVFXOXCXCTYCFVAXOXCYBXOYFXCYBOYGXCABVBUGZVCVDXOYBXAXOXCY
      BXAYHWHXMXBVEVGVHXIYDYEJXCXQXELZIZYIXANZJGHXQXTWIWJXDXQOZXGYJXHYKYLXFYIXC
      XDXQXEVIZVJYLXFYIXAYMVKVLXEXTOZYJYDYKYEYNYIYCXCYNYIXQXTLYCXEXTXQVMXPXSXCU
      KVNXCUMVNVQVOZVJYNYIYCXAYOVKVLVPVRVSVTWFWQWRXLXKWAWGWSWTGHXAWIWJPPFWBUEWC
      WDWE $.

    $( Lemma for ~ txindis .  (Contributed by Mario Carneiro, 14-Aug-2015.) $)
    txindislem $p |- ( ( _I ` A ) X. ( _I ` B ) ) = ( _I ` ( A X. B ) ) $=
      ( cvv wcel cid cfv cxp wceq wn c0 0xp fvprc xpeq1d wa simpr xpeq2d syl6eq
      xp0 fvi syl fveq2d 0ex ax-mp wne cdm dmexg eleq1d syl5ib con3d pm2.61dane
      dmxp impcom 3eqtr4a crn rnexg rnxp xpeq12 syl2an xpexg eqtr4d ecase ) ACD
      ZBCDZAEFZBEFZGZABGZEFZHVBIZJVEGJVFVHVEKVIVDJVEAELMVIVHJHZBJVIBJHZNZVHJEFZ
      JVLVGJEVLVGAJGJVLBJAVIVKOPARQUAJCDVMJHUBJCSUCZQVIBJUDZNVGCDZIZVJVOVIVQVOV
      PVBVPVGUEZCDVOVBVGCUFVOVRACABUKUGUHUIULVGELZTUJUMVCIZVDJGJVFVHVDRVTVEJVDB
      ELPVTVJAJVTAJHZNZVHVMJWBVGJEWBVGJBGJWBAJBVTWAOMBKQUAVNQVTAJUDZNVQVJWCVTVQ
      WCVPVCVPVGUNZCDWCVCVGCUOWCWDBCABUPUGUHUIULVSTUJUMVBVCNZVFVGVHVBVDAHVEBHVF
      VGHVCACSBCSVDAVEBUQURWEVPVHVGHABCCUSVGCSTUTVA $.

    $( The topological product of indiscrete spaces is indiscrete.
       (Contributed by Mario Carneiro, 14-Aug-2015.) $)
    txindis $p |- ( { (/) , A } tX { (/) , B } ) = { (/) , ( A X. B ) } $=
      ( vx vy vz vw c0 cpr cid cfv cxp cv wcel wceq wo wn wss wa ctop wne co wi
      ctx wex neq0 wrex wral wb indistop eltx mp2an sylbi cuni elssuni indisuni
      rsp txunii syl6sseqr ad2antrr ne0i ad2antrl sylibr simpld neneqd indislem
      xpnz simpll syl6eleqr elpri syl ord simprd simplr xpeq12d simprr eqsstr3d
      mpd adantll eqssd ex rexlimdvva syld exlimdv syl5bi orrd vex ssriv ctopon
      elpr toptopon txtopon topgele ax-mp simpli eqssi txindislem preq2i 3eqtri
      cpw mpbi ) GAHZGBHZUCUAZGAIJZBIJZKZHZGABKZIJZHGXHHXCXGCXCXGCLZXCMZXJGNZXJ
      XFNZOXJXGMXKXLXMXLPDLZXJMZDUDXKXMDXJUEXKXOXMDXKXOXNELZFLZKZMZXRXJQZRZFXBU
      FEXAUFZXMXKYBDXJUGZXOYBUBXASMZXBSMZXKYCUHAUIZBUIZEFXJXAXBSSDUJUKYBDXJUPUL
      XKYAXMEFXAXBXKXPXAMZXQXBMZRZRZYAXMYKYARXJXFXKXJXFQYJYAXKXJXCUMXFXJXCUNXAX
      BXDXEYFYGAUOZBUOZUQURUSYJYAXFXJQXKYJYARZXFXRXJYNXPXDXQXEYNXPGNZPXPXDNZYNX
      PGYNXPGTZXQGTZYNXRGTZYQYRRXSYSYJXTXRXNUTVAXPXQVFVBZVCVDYNYOYPYNXPGXDHZMYO
      YPOYNXPXAUUAYHYIYAVGAVEVHXPGXDVIVJVKVQYNXQGNZPXQXENZYNXQGYNYQYRYTVLVDYNUU
      BUUCYNXQGXEHZMUUBUUCOYNXQXBUUDYHYIYAVMBVEVHXQGXEVIVJVKVQVNYJXSXTVOVPVRVSV
      TWAWBWCWDWEXJGXFCWFWIVBWGXGXCQZXCXFWSQZXCXFWHJMZUUEUUFRXAXDWHJMZXBXEWHJMZ
      UUGYDUUHYFXAXDYLWJWTYEUUIYGXBXEYMWJWTXAXBXDXEWKUKXCXFWLWMWNWOXFXIGABWPWQX
      HVEWR $.
  $}

  ${
    $d a b m n u v x y z F $.  $d a b u v x z J $.  $d a b m n u v x y z X $.
    $d m n u x y z K $.  $d m n u x z ph $.  $d b m n u x y Y $.
    txdis1cn.x $e |- ( ph -> X e. V ) $.
    txdis1cn.j $e |- ( ph -> J e. ( TopOn ` Y ) ) $.
    txdis1cn.k $e |- ( ph -> K e. Top ) $.
    txdis1cn.f $e |- ( ph -> F Fn ( X X. Y ) ) $.
    txdis1cn.1 $e |- ( ( ph /\ x e. X ) ->
      ( y e. Y |-> ( x F y ) ) e. ( J Cn K ) ) $.
    $( A function is jointly continuous on a discrete left topology iff it is
       continuous as a function of its right argument, for each fixed left
       value.  (Contributed by Mario Carneiro, 19-Sep-2015.) $)
    txdis1cn $p |- ( ph -> F e. ( ( ~P X tX J ) Cn K ) ) $=
      ( vv va co wcel cv wa vu vb vz vn cpw ctx ccn cxp cuni ccnv cima wral wfn
      vm wf cmpt ctopon cfv adantr ctop eqid toptopon sylib cnf2 syl3anc sylibr
      fmpt ralrimiva sylanbrc wss wrex cab wrel cdm cnvimass wceq fndm syl5sseq
      ffnov syl relxp relss mpisyl cop wb elpreima opelxp eqcomi eleq1i anbi12i
      df-ov csn simprll snelpwi mptpreima adantrr ad2ant2r simplr cnima syl2anc
      syl5eqelr simprlr simprr vsnid mpbiran weq oveq2 eleq1d elrab bitri snssd
      crab sselda elrabi ad2antll elsni ad2antrl oveq1d syl5eqr simprbi eqeltrd
      ad3antrrr mpbir2and ex syl5bi relssdv xpeq1 eleq2d sseq1d anbi12d rspc2ev
      a1i xpeq2 syl112anc opex eleq1 anbi1d 2rexbidv elab sylbid ssabral mpbird
      distopon eltx txtopon iscn ) ADHUEZEUFQZFUGQRZHIUHZFUIZDUOZDUJUASZUKZUUHR
      ZUAFULZADUUJUMZBSZCSZDQZUUKRCIULZBHULUULMAUVABHAUURHRZTZIUUKCIUUTUPZUOZUV
      AUVCEIUQURZRZFUUKUQURRZUVDEFUGQRZUVEAUVGUVBKUSAUVHUVBAFUTRUVHLFUUKUUKVAVB
      VCZUSNUVDEFIUUKVDVECIUUKUUTUVDUVDVAZVGVFVHBCHIUUKDVSVIAUUOUAFAUUMFRZTZUUO
      OSZPSZUBSZUHZRZUVQUUNVJZTZUBEVKPUUGVKZOUUNULZUVMUUNUWAOVLZVJUWBUVMBUCUUNU
      WCUVMUUNUUJVJUUJVMUUNVMUVMDVNZUUNUUJDUUMVOUVMUUQUWDUUJVPAUUQUVLMUSZUUJDVQ
      VTVRHIWAUUNUUJWBWCUVMUURUCSZWDZUUNRZUWGUUJRZUWGDURZUUMRZTZUWGUWCRZUVMUUQU
      WHUWLWEUWEUUJUWGUUMDWFVTUWLUVBUWFIRZTZUURUWFDQZUUMRZTZUVMUWMUWIUWOUWKUWQU
      URUWFHIWGUWJUWPUUMUWPUWJUURUWFDWKWHWIWJUVMUWRUWMUVMUWRTZUWGUVQRZUVSTZUBEV
      KPUUGVKZUWMUWSUURWLZUUGRZUUTUUMRZCIXLZERUWGUXCUXFUHZRZUXGUUNVJZUXBUWSUVBU
      XDUVMUVBUWNUWQWMZUURHWNVTUWSUXFUVDUJUUMUKZECIUUTUUMUVDUVKWOUWSUVIUVLUXKER
      AUWOUVIUVLUWQAUVBUVIUWNNWPWQAUVLUWRWRUUMUVDEFWSWTXAUWSUWNUWQUXHUVMUVBUWNU
      WQXBUVMUWOUWQXCUXHUWFUXFRZUWNUWQTUXHUURUXCRUXLBXDUURUWFUXCUXFWGXEUXEUWQCU
      WFICUCXFUUTUWPUUMUUSUWFUURDXGXHXIXJVIUWSUDUNUXGUUNUXGVMUWSUXCUXFWAYLUDSZU
      NSZWDZUXGRUXMUXCRZUXNUXFRZTZUWSUXOUUNRZUXMUXNUXCUXFWGUWSUXRUXSUWSUXRTZUXS
      UXOUUJRZUXODURZUUMRZUXTUXMHRZUXNIRZUYAUWSUXPUYDUXQUWSUXCHUXMUWSUURHUXJXKX
      MWPUXQUYEUWSUXPUXECUXNIXNXOUXMUXNHIWGVIUXTUYBUURUXNDQZUUMUXTUYBUXMUXNDQUY
      FUXMUXNDWKUXTUXMUURUXNDUXPUDBXFUWSUXQUXMUURXPXQXRXSUXQUYFUUMRZUWSUXPUXQUY
      EUYGUXEUYGCUXNICUNXFUUTUYFUUMUUSUXNUURDXGXHXIXTXOYAAUXSUYAUYCTWEZUVLUWRUX
      RAUUQUYHMUUJUXOUUMDWFVTYBYCYDYEYFUXAUXHUXITUWGUXCUVPUHZRZUYIUUNVJZTPUBUXC
      UXFUUGEUVOUXCVPZUWTUYJUVSUYKUYLUVQUYIUWGUVOUXCUVPYGZYHUYLUVQUYIUUNUYMYIYJ
      UVPUXFVPZUYJUXHUYKUXIUYNUYIUXGUWGUVPUXFUXCYMZYHUYNUYIUXGUUNUYOYIYJYKYNUWA
      UXBOUWGUURUWFYOUVNUWGVPZUVTUXAPUBUUGEUYPUVRUWTUVSUVNUWGUVQYPYQYRYSVFYDYEY
      TYFUWAOUUNUUAVCUVMUUGHUQURZRZUVGUUOUWBWEAUYRUVLAHGRUYRJHGUUCVTZUSAUVGUVLK
      USPUBUUNUUGEUYQUVFOUUDWTUUBVHAUUHUUJUQURRZUVHUUIUULUUPTWEAUYRUVGUYTUYSKUU
      GEHIUUEWTUVJUADUUHFUUJUUKUUFWTYC $.
  $}

  ${
    $d a b j k r s u v x y z A $.  $d a b j k r s u v x y z R $.
    $d a b k r s u v x y z S $.
    txlly.1 $e |- ( ( j e. A /\ k e. A ) -> ( j tX k ) e. A ) $.
    $( If the property ` A ` is preserved under topological products, then so
       is the property of being locally ` A ` .  (Contributed by Mario
       Carneiro, 10-Mar-2015.) $)
    txlly $p |- ( ( R e. Locally A /\ S e. Locally A ) ->
      ( R tX S ) e. Locally A ) $=
      ( vy vz vx vu vr vs wcel wa co ctop cv crest wrex wss vv clly ctx cpw cin
      wral llytop txtop syl2an cxp eltx c1st cfv w3a c2nd simprll simprrl xp1st
      simpll syl llyi syl3anc simplr simprlr reeanv ad3antrrr ad3antlr syl22anc
      xp2nd txopn simprl1 simprr1 xpss12 syl2anc simprrr sylan9ssr elpw2 sylibr
      vex cop wceq 1st2nd2 adantr simprl2 simprr2 opelxpi adantl eqeltrd txrest
      elind simprl3 simprr3 caovcl eleq2 oveq2 eleq1d anbi12d rspcev rexlimdvva
      syl12anc expr syl5bir mp2and ralimdv sylbid ralrimiv islly sylanbrc ) BAU
      BZMZCXIMZNZBCUCOZPMZGQZHQZMZXMXPROZAMZNZHXMIQZUDZUEZSZGYAUFZIXMUFXMXIMXJB
      PMZCPMZXNXKABUGZACUGZBCUHUIXLYEIXMXLYAXMMXOJQZUAQZUJZMZYLYATZNZUACSJBSZGY
      AUFYEJUAYABCXIXIGUKXLYPYDGYAXLYOYDJUABCXLYJBMZYKCMZNZYOYDXLYSYONZNZKQZYJT
      ZXOULUMZUUBMZBUUBROZAMZUNZKBSZLQZYKTZXOUOUMZUUJMZCUUJROZAMZUNZLCSZYDUUAXJ
      YQUUDYJMZUUIXJXKYTUSXLYQYRYOUPUUAYMUURXLYSYMYNUQZXOYJYKURUTKAUUDYJBVAVBUU
      AXKYRUULYKMZUUQXJXKYTVCXLYQYRYOVDUUAYMUUTUUSXOYJYKVIUTLAUULYKCVAVBUUIUUQN
      UUHUUPNZLCSKBSUUAYDUUHUUPKLBCVEUUAUVAYDKLBCUUAUUBBMZUUJCMZNZUVAYDUUAUVDUV
      ANZNZUUBUUJUJZYCMXOUVGMZXMUVGROZAMZYDUVFXMYBUVGUVFYFYGUVBUVCUVGXMMXJYFXKY
      TUVEYHVFZXKYGXJYTUVEYIVGZUUAUVBUVCUVAUPZUUAUVBUVCUVAVDZUUBUUJBCPPVJVHUVFU
      VGYATUVGYBMUVEUUAUVGYLYAUVEUUCUUKUVGYLTUUCUUEUUGUUPUVDVKUUKUUMUUOUUHUVDVL
      UUBYJUUJYKVMVNXLYSYMYNVOVPUVGYAIVSVQVRWJUVFXOUUDUULVTZUVGUUAXOUVOWAZUVEUU
      AYMUVPUUSXOYJYKWBUTWCUVEUVOUVGMZUUAUVEUUEUUMUVQUUCUUEUUGUUPUVDWDUUKUUMUUO
      UUHUVDWEUUDUULUUBUUJWFVNWGWHUVFUVIUUFUUNUCOZAUVFYFYGUVBUVCUVIUVRWAUVKUVLU
      VMUVNUUBUUJBCPPBCWIVHUVEUVRAMZUUAUVEUUGUUOUVSUUCUUEUUGUUPUVDWKUUKUUMUUOUU
      HUVDWLDEUUFUUNAUCFWMVNWGWHXTUVHUVJNHUVGYCXPUVGWAZXQUVHXSUVJXPUVGXOWNUVTXR
      UVIAXPUVGXMRWOWPWQWRWTXAWSXBXCXAWSXDXEXFIGHAXMXGXH $.

    $( If the property ` A ` is preserved under topological products, then so
       is the property of being n-locally ` A ` .  (Contributed by Mario
       Carneiro, 13-Apr-2015.) $)
    txnlly $p |- ( ( R e. N-Locally A /\ S e. N-Locally A ) ->
      ( R tX S ) e. N-Locally A ) $=
      ( vy vr va vs vb wcel wa co ctop cv wrex wss ad2antrr syl2anc vz vx vu vv
      cnlly ctx crest csn cnei cfv cpw cin wral nllytop txtop cxp eltx c1st w3a
      syl2an c2nd simpll simprll simprrl xp1st syl nlly2i syl3anc simprlr xp2nd
      simplr reeanv wi cuni ad3antrrr adantr simprrr txopn syl22anc cop 1st2nd2
      wceq simprl1 simprr1 opelxpi eqeltrd opnneip simprl2 simprr2 xpss12 sstrd
      elpwid elssuni txuni sseqtrd ssnei2 vex elpw2 sylibr elind txrest simprl3
      eqid simprr3 caovcl oveq2 eleq1d rspcev anassrs rexlimdvva syl5bir mp2and
      ex expr ralimdv sylbid ralrimiv isnlly sylanbrc ) BAUEZLZCXTLZMZBCUFNZOLZ
      YDUAPZUGNZALZUAGPZUHZYDUIUJUJZUBPZUKZULZQZGYLUMZUBYDUMYDXTLYABOLZCOLZYEYB
      ABUNZACUNZBCUOUTZYCYPUBYDYCYLYDLYIUCPZUDPZUPZLZUUDYLRZMZUDCQUCBQZGYLUMYPU
      CUDYLBCXTXTGUQYCUUHYOGYLYCUUGYOUCUDBCYCUUBBLZUUCCLZMZUUGYOYCUUKUUGMZMZYIU
      RUJZHPZLZUUOIPZRZBUUQUGNZALZUSZHBQZIUUBUKZQZYIVAUJZJPZLZUVFKPZRZCUVHUGNZA
      LZUSZJCQZKUUCUKZQZYOUUMYAUUIUUNUUBLZUVDYAYBUULVBYCUUIUUJUUGVCZUUMUUEUVPYC
      UUKUUEUUFVDZYIUUBUUCVEVFHAUUNUUBBIVGVHUUMYBUUJUVEUUCLZUVOYAYBUULVKZYCUUIU
      UJUUGVIZUUMUUEUVSUVRYIUUBUUCVJVFJAUVEUUCCKVGVHUVDUVOMUVBUVMMZKUVNQIUVCQUU
      MYOUVBUVMIKUVCUVNVLUUMUWBYOIKUVCUVNUWBUVAUVLMZJCQHBQUUMUUQUVCLZUVHUVNLZMZ
      MZYOUVAUVLHJBCVLUWGUWCYOHJBCUUMUWFUUOBLZUVFCLZMZUWCYOVMUUMUWFUWJMZMZUWCYO
      UWLUWCMZUUQUVHUPZYNLYDUWNUGNZALZYOUWMYKYMUWNUWMYEUUOUVFUPZYKLZUWQUWNRZUWN
      YDVNZRUWNYKLYCYEUULUWKUWCUUAVOZUWMYEUWQYDLZYIUWQLUWRUXAUWMYQYRUWHUWIUXBUU
      MYQUWKUWCYAYQYBUULYSSSZUUMYRUWKUWCUUMYBYRUVTYTVFSZUWLUWHUWCUUMUWFUWHUWIVD
      VPUWLUWIUWCUUMUWFUWHUWIVQVPUUOUVFBCOOVRVSUWMYIUUNUVEVTZUWQUWMUUEYIUXEWBUU
      MUUEUWKUWCUVRSYIUUBUUCWAVFUWMUUPUVGUXEUWQLUUPUURUUTUVLUWLWCUVGUVIUVKUVAUW
      LWDUUNUVEUUOUVFWETWFYIYDUWQWGVHUWMUURUVIUWSUUPUURUUTUVLUWLWHUVGUVIUVKUVAU
      WLWIUUOUUQUVFUVHWJTUWMUWNBVNZCVNZUPZUWTUWMUUQUXFRUVHUXGRUWNUXHRUWMUUQUUBU
      XFUWMUUQUUBUWLUWDUWCUUMUWDUWEUWJVCVPZWLZUWMUUIUUBUXFRUUMUUIUWKUWCUVQSUUBB
      WMVFWKUWMUVHUUCUXGUWMUVHUUCUWLUWEUWCUUMUWDUWEUWJVIVPZWLZUWMUUJUUCUXGRUUMU
      UJUWKUWCUWASUUCCWMVFWKUUQUXFUVHUXGWJTUWMYQYRUXHUWTWBUXCUXDBCUXFUXGUXFXCUX
      GXCWNTWOYJYDUWNUWQUWTUWTXCWPVSUWMUWNYLRUWNYMLUWMUWNUUDYLUWMUUQUUBRUVHUUCR
      UWNUUDRUXJUXLUUQUUBUVHUUCWJTUUMUUFUWKUWCYCUUKUUEUUFVQSWKUWNYLUBWQWRWSWTUW
      MUWOUUSUVJUFNZAUWMYQYRUWDUWEUWOUXMWBUXCUXDUXIUXKUUQUVHBCOOUVCUVNXAVSUWMUU
      TUVKUXMALUUPUURUUTUVLUWLXBUVGUVIUVKUVAUWLXDDEUUSUVJAUFFXETWFYHUWPUAUWNYNY
      FUWNWBYGUWOAYFUWNYDUGXFXGXHTXMXIXJXKXJXKXLXNXJXOXPXQUBGUAAYDXRXS $.
  $}

  ${
    $d k m n x y z A $.  $d k m n u v x y z F $.  $d k m n x y z V $.
    $( The product of a collection of Hausdorff spaces is Hausdorff.
       (Contributed by Mario Carneiro, 2-Sep-2015.) $)
    pthaus $p |- ( ( A e. V /\ F : A --> Haus ) -> ( Xt_ ` F ) e. Haus ) $=
      ( vx vy vu vv vk vz wcel cha wa cfv ctop cv c0 wceq wrex wral syl cpt wne
      vm vn wf cin w3a wi cuni wss haustop ssriv fss mpan2 pttop sylan2 wfn weq
      wn cixp simprl eqid ptuni adantr eleqtrrd ixpfn simprr syl2anc necon3abid
      wb eqfnfv rexnal df-ne simpllr ffvelrnd vex elixp simprbi adantrr hausnei
      r19.21bi syl13anc crab cmpt ccn simp-4l ad4antlr ptpjcn syl3anc ccnv cima
      co simprll mptpreima cnima syl5eqelr simprlr ad2antrr simprr1 fveq1 elrab
      eleq1d sylanbrc simprr2 inrab simprr3 inelcm necon2bi rabeq0 sylibr eleq2
      ralrimivw syl5eq ineq1 eqeq1d 3anbi13d ineq2 rspc2ev syl113anc rexlimdvva
      3anbi23d expr mpd syl5bir rexlimdva sylbid ralrimivva ishaus ) ACJZAKBUEZ
      LZBUAMZNJZDOZEOZUBZYNFOZJZYOGOZJZYQYSUFZPQZUGZGYLRFYLRZUHZEYLUIZSDUUFSYLK
      JYJYIANBUEZYMYJKNUJUUGDKNYNUKULAKNBUMUNZABCUOUPYKUUEDEUUFUUFYKYNUUFJZYOUU
      FJZLZLZYPHOZYNMZUUMYOMZQZHASZUSZUUDUULUUQYNYOUULYNAUQZYOAUQZDEURUUQVJUULY
      NHAUUMBMZUIZUTZJZUUSUULYNUUFUVCYKUUIUUJVAZYKUVCUUFQZUUKYJYIUUGUVFUUHHABYL
      CYLVBZVCUPVDZVEZHAUVBYNVFTUULYOUVCJZUUTUULYOUUFUVCYKUUIUUJVGZUVHVEZHAUVBY
      OVFTHAYNYOVKVHVIUURUUPUSZHARUULUUDUUPHAVLUULUVMUUDHAUVMUUNUUOUBZUULUUMAJZ
      LUUDUUNUUOVMUULUVOUVNUUDUULUVOUVNLZLZUUNUCOZJZUUOUDOZJZUVRUVTUFZPQZUGZUDU
      VARUCUVARZUUDUVQUVAKJUUNUVBJZUUOUVBJZUVNUWEUVQAKUUMBYIYJUUKUVPVNUULUVOUVN
      VAZVOUULUVOUWFUVNUULUWFHAUULUVDUWFHASZUVIUVDUUSUWIHAUVBYNDVPVQVRTWAVSUULU
      VOUWGUVNUULUWGHAUULUVJUWGHASZUVLUVJUUTUWJHAUVBYOEVPVQVRTWAVSUULUVOUVNVGUU
      NUUOUDUCUVAUVBUVBVBVTWBUVQUWDUUDUCUDUVAUVAUVQUVRUVAJZUVTUVAJZLZUWDUUDUVQU
      WMUWDLZLZUUMIOZMZUVRJZIUUFWCZYLJZUWQUVTJZIUUFWCZYLJZYNUWSJZYOUXBJZUWSUXBU
      FZPQZUUDUWOIUUFUWQWDZYLUVAWEWLJZUWKUWTUWOYIUUGUVOUXIYIYJUUKUVPUWNWFYJUUGY
      IUUKUVPUWNUUHWGUVQUVOUWNUWHVDIABUUMYLCUUFUUFVBZUVGWHWIZUVQUWKUWLUWDWMUXIU
      WKLUWSUXHWJZUVRWKYLIUUFUWQUVRUXHUXHVBZWNUVRUXHYLUVAWOWPVHUWOUXIUWLUXCUXKU
      VQUWKUWLUWDWQUXIUWLLUXBUXLUVTWKYLIUUFUWQUVTUXHUXMWNUVTUXHYLUVAWOWPVHUWOUU
      IUVSUXDUULUUIUVPUWNUVEWRUVSUWAUWCUWMUVQWSUWRUVSIYNUUFIDURUWQUUNUVRUUMUWPY
      NWTXBXAXCUWOUUJUWAUXEUULUUJUVPUWNUVKWRUVSUWAUWCUWMUVQXDUXAUWAIYOUUFIEURUW
      QUUOUVTUUMUWPYOWTXBXAXCUWOUXFUWRUXALZIUUFWCZPUWRUXAIUUFXEUWOUXNUSZIUUFSUX
      OPQUWOUXPIUUFUWOUWCUXPUVSUWAUWCUWMUVQXFUXNUWBPUWQUVRUVTXGXHTXLUXNIUUFXIXJ
      XMUUCUXDUXEUXGUGUXDYTUWSYSUFZPQZUGFGUWSUXBYLYLYQUWSQZYRUXDUUBUXRYTYQUWSYN
      XKUXSUUAUXQPYQUWSYSXNXOXPYSUXBQZYTUXEUXRUXGUXDYSUXBYOXKUXTUXQUXFPYSUXBUWS
      XQXOYAXRXSYBXTYCYBYDYEYDYFYGDEGFYLUUFUXJYHXC $.
  $}

  ${
    $d k u v x A $.  $d k u v x y z B $.  $d k u v x y z F $.  $d v x y z K $.
    $d k u v J $.  $d k u v x V $.  $d k u v x X $.
    ptrescn.1 $e |- X = U. J $.
    ptrescn.2 $e |- J = ( Xt_ ` F ) $.
    ptrescn.3 $e |- K = ( Xt_ ` ( F |` B ) ) $.
    $( Restriction is a continuous function on product topologies.
       (Contributed by Mario Carneiro, 7-Feb-2015.) $)
    ptrescn $p |- ( ( A e. V /\ F : A --> Top /\ B C_ A ) ->
      ( x e. X |-> ( x |` B ) ) e. ( J Cn K ) ) $=
      ( vv vk vu vy wcel ctop cfv wceq cvv vz wf wss w3a cv cres cmpt cuni ccnv
      ccn co cima csn cmpt2 crn cun wral wa simpl3 ptuni 3adant3 syl6eqr eleq2d
      cixp biimpar resixp syl2anc ixpeq2 fvres unieqd mprg ssexg ancoms 3adant2
      fssres 3adant1 syl5eqr adantr eleqtrd eqid fmptd fimacnv syl cpt syl5eqel
      pttop topopn eqeltrd elsni imaeq2d eleq1d syl5ibrcom ralrimiv wrex wi wal
      ccom imaco cnvco adantlr eqidd fveq1 fmptco ad2antrl eqtrd cnveqd imaeq1d
      simpl1 simpl2 simprl sseldd ptpjcn syl3anc simprr cnima imaeq2 rexlimdvva
      mpteq2dv alrimiv cab rnmpt2 raleqi rexeqdv eqeq1 sylan9bbr rexbidva ralab
      rexbidv bitri sylibr ralunb sylanbrc ctopon sylib snex fvex abrexex rgenw
      toptopon abrexex2g sylancl unexg sylancr cfi ptval2 subbascn mpbir2and
      ctg ) BGPZBQDUBZCBUCZUDZAHAUEZCUFZUGZEFUJUKPHFUHZUUOUBZUUOUIZLUEZULZEPZLU
      UPUMZMNCMUEZDCUFZRZUAUUPUVCUAUEZRZUGZUIZNUEZULZUNZUOZUPZUQZUULAHUUNUUPUUO
      UULUUMHPZURZUUNMCUVCDRZUHZVDZUUPUVQUUKUUMMBUVSVDZPZUUNUVTPUUIUUJUUKUVPUSU
      ULUWBUVPUULUWAHUUMUULUWAEUHZHUUIUUJUWAUWCSUUKMBDEGJUTVAIVBVCVEMBCUVSUUMVF
      VGUULUVTUUPSUVPUULUVTMCUVEUHZVDZUUPUWDUVSSUWEUVTSMCMCUWDUVSVHUVCCPZUVEUVR
      UVCCDVIZVJVKUULCTPZCQUVDUBZUWEUUPSUUIUUKUWHUUJUUKUUIUWHCBGVLVMVNZUUJUUKUW
      IUUIBQCDVOVPZMCUVDFTKUTVGVQVRVSZUUOVTWAZUULUVALUVBUQUVALUVMUQZUVOUULUVALU
      VBUULUVAUUSUVBPZUURUUPULZEPUULUWPHEUULUUQUWPHSUWMHUUPUUOWBWCUULEQPZHEPUUI
      UUJUWQUUKUUIUUJUREDWDRQJBDGWFWEVAZEHIWGWCWHUWOUUTUWPEUWOUUSUUPUURUUSUUPWI
      WJWKWLWMUULUUSUVKSZNUVRWNZMCWNZUVAWOZLWPZUWNUULUXBLUULUWSUVAMNCUVRUULUWFU
      VJUVRPZURZURZUVAUWSUURUVKULZEPUXFUXGAHUVCUUMRZUGZUIZUVJULZEUXFUXGUURUVIWQ
      ZUVJULUXKUURUVIUVJWRUXFUXLUXJUVJUXFUXLUVHUUOWQZUIUXJUVHUUOWSUXFUXMUXIUXFU
      XMAHUVCUUNRZUGUXIUXFAUAHUUPUUNUVGUXNUUOUVHUULUVPUUNUUPPUXEUWLWTUXFUUOXAUX
      FUVHXAUVCUVFUUNXBXCUXFAHUXNUXHUWFUXNUXHSUULUXDUVCCUUMVIXDXRXEXFVQXGVQUXFU
      XIEUVRUJUKPZUXDUXKEPUXFUUIUUJUVCBPUXOUUIUUJUUKUXEXHUUIUUJUUKUXEXIUXFCBUVC
      UUIUUJUUKUXEUSUULUWFUXDXJXKABDUVCEGHIJXLXMUULUWFUXDXNUVJUXIEUVRXOVGWHUWSU
      UTUXGEUUSUVKUURXPWKWLXQXSUWNUVALOUEZUVKSZNUVEWNZMCWNZOXTZUQUXCUVALUVMUXTM
      NOCUVEUVKUVLUVLVTZYAZYBUXSUXAUVALOUXPUUSSZUXRUWTMCUWFUXRUXQNUVRWNUYCUWTUW
      FUXQNUVEUVRUWGYCUYCUXQUWSNUVRUXPUUSUVKYDYHYEYFYGYIYJUVALUVBUVMYKYLUULLUVN
      UUOEFTHUUPUULUWQEHYMRPUWREHIYSYNUULUVBTPUVMTPUVNTPUUPYOUULUVMUXTTUYBUULUW
      HUXROXTTPZMCUQUXTTPUWJUYDMCNOUVEUVKUVCUVDYPYQYRUXRMOCTTYTUUAWEUVBUVMTTUUB
      UUCUULUWHUWIFUVNUUDRUUHRSUWJUWKUANCMUVDUVLFTUUPKUUPVTZUYAUUEVGUULFQPFUUPY
      MRPUULFUVDWDRZQKUULUWHUWIUYFQPUWJUWKCUVDTWFVGWEFUUPUYEYSYNUUFUUG $.
  $}

  ${
    $d f t u v x y A $.  $d f t u v x y R $.  $d f t u v x y S $.  $d u Y $.
    $d f t u v x ph $.  $d f t u v x y U $.  $d f t u v x X $.
    txtube.x $e |- X = U. R $.
    txtube.y $e |- Y = U. S $.
    txtube.r $e |- ( ph -> R e. Comp ) $.
    txtube.s $e |- ( ph -> S e. Top ) $.
    txtube.w $e |- ( ph -> U e. ( R tX S ) ) $.
    txtube.u $e |- ( ph -> ( X X. { A } ) C_ U ) $.
    txtube.a $e |- ( ph -> A e. Y ) $.
    $( The "tube lemma".  If ` X ` is compact and there is an open set ` U `
       containing the line ` X X. { A } ` , then there is a "tube" ` X X. u `
       for some neighborhood ` u ` of ` A ` which is entirely contained within
       ` U ` .  (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    txtube $p |- ( ph -> E. u e. S ( A e. u /\ ( X X. u ) C_ U ) ) $=
      ( vv wcel wss wa wrex vt vf vx vy cv cuni wceq wf cfv cxp wex cpw cfn cin
      wral ccmp cop csn adantr id snidg syl opelxpi syl2anr sseldd co ctop eltx
      ctx wb syl2anc mpbid eleq1 anbi1d 2rexbidv rspcv sylc opelxp anbi1i anass
      bitri rexbii r19.42v sylib ralrimiva eleq2 xpeq2 anbi12d cmpcovf crn cint
      sseq1d c0 rint0 adantl topopn ad3antrrr eqeltrd wne simprrl frn simpr wfo
      inss2 simplr sseldi wfn ffn dffn4 fofi w3a fiinopn imp syl13anc syl6sseqr
      elssuni sseqin2 pm2.61dane ciin simprrr simpl ralimi eliin mpbird fniinfv
      ad2antrr eleqtrd elind ciun simprl uniiun syl6eq xpeq1d xpiundir eqsstr3d
      wi iinss2 syl5ss xpss2 sstr2 3syl ralimdva sylibr eqsstrd rspcev syl12anc
      iunss expr exlimdv expimpd rexlimdva mpd ) AGUAUEZUFZUGZUUMEUBUEZUHZCBUEZ
      UUPUIZQZUURUUSUJZFRZSZBUUMUOZSZUBUKZSZUADULZUMUNZTZCUURQZGUURUJZFRZSZBETZ
      ADUPQZUCUEZUURQZCPUEZQZUURUVSUJZFRZSZPETSZBDTZUCGUOUVJKAUWEUCGAUVQGQZSZUV
      QCUQZUWAQZUWBSZPETZBDTZUWEUWGUWHFQUDUEZUWAQZUWBSZPETBDTZUDFUOZUWLUWGGCURZ
      UJZFUWHAUWSFRUWFNUSUWFUWFCUWRQZUWHUWSQAUWFUTACHQZUWTOCHVAVBUVQCGUWRVCVDVE
      AUWQUWFAFDEVIVFQZUWQMAUVPEVGQZUXBUWQVJKLBPFDEUPVGUDVHVKVLUSUWPUWLUDUWHFUW
      MUWHUGZUWOUWJBPDEUXDUWNUWIUWBUWMUWHUWAVMVNVOVPVQUWKUWDBDUWKUVRUWCSZPETUWD
      UWJUXEPEUWJUVRUVTSZUWBSUXEUWIUXFUWBUVQCUURUVSVRVSUVRUVTUWBVTWAWBUVRUWCPEW
      CWAWBWDWEUWCUVCUCBPEUBDGUAIUVSUUSUGZUVTUUTUWBUVBUVSUUSCWFUXGUWAUVAFUVSUUS
      UURWGWLWHWIVKAUVGUVOUAUVIAUUMUVIQZSZUUOUVFUVOUXIUUOSUVEUVOUBUXIUUOUVEUVOU
      XIUUOUVESZSZHUUPWJZWKZUNZEQZCUXNQZGUXNUJZFRZUVOUXKUXOUXLWMUXKUXLWMUGZSUXN
      HEUXSUXNHUGUXKHUXLWNWOAHEQZUXHUXJUXSAUXCUXTLEHJWPVBWQWRUXKUXLWMWSZSZUXNUX
      MEUYBUXMHRUXNUXMUGUYBUXMEUFZHUYBUXMEQZUXMUYCRUYBUXCUXLERZUYAUXLUMQZUYDAUX
      CUXHUXJUYALWQUXKUYEUYAUXKUUQUYEUXIUUOUUQUVDWTZUUMEUUPXAVBUSUXKUYAXBUXKUYF
      UYAUXKUUMUMQUUMUXLUUPXCZUYFUXKUVIUMUUMUVHUMXDAUXHUXJXEXFUXKUUPUUMXGZUYHUX
      KUUQUYIUYGUUMEUUPXHVBZUUMUUPXIWDUUMUXLUUPXJVKUSUXCUYEUYAUYFXKUYDUXLEXLXMX
      NZUXMEXPVBJXOUXMHXQWDUYKWRXRUXKHUXMCAUXAUXHUXJOYFZUXKCBUUMUUSXSZUXMUXKCUY
      MQZUUTBUUMUOZUXKUVDUYOUXIUUOUUQUVDXTZUVCUUTBUUMUUTUVBYAYBVBUXKUXAUYNUYOVJ
      UYLBCUUMUUSHYCVBYDUXKUYIUYMUXMUGZUYJBUUMUUPYEZVBYGYHUXKUXQBUUMUURUXNUJZYI
      ZFUXKUXQBUUMUURYIZUXNUJUYTUXKGVUAUXNUXKGUUNVUAUXIUUOUVEYJBUUMYKYLYMBUUMUU
      RUXNYNYLUXKUYSFRZBUUMUOZUYTFRUXKUYIUVBBUUMUOZVUCUYJUXKUVDVUDUYPUVCUVBBUUM
      UUTUVBXBYBVBUYIUVBVUBBUUMUYIUURUUMQZSZUXNUUSRUYSUVARUVBVUBYPVUFUXNUXMUUSH
      UXMXDVUFUXMUYMUUSUYIUYQVUEUYRUSVUEUYMUUSRUYIBUUMUUSYQWOYOYRUXNUUSUURYSUYS
      UVAFYTUUAUUBVQBUUMUYSFUUGUUCUUDUVNUXPUXRSBUXNEUURUXNUGZUVKUXPUVMUXRUURUXN
      CWFVUGUVLUXQFUURUXNGWGWLWHUUEUUFUUHUUIUUJUUKUUL $.
  $}

  ${
    $d f k r s t u x y A $.  $d f r s t u v w x y z S $.  $d f u v w x z Y $.
    $d f k r s t u v w x z W $.  $d f k r s t u v w x z X $.
    $d f k r s t u w x z ph $.  $d f k r s t u x y R $.
    txcmp.x $e |- X = U. R $.
    txcmp.y $e |- Y = U. S $.
    txcmp.r $e |- ( ph -> R e. Comp ) $.
    txcmp.s $e |- ( ph -> S e. Comp ) $.
    txcmp.w $e |- ( ph -> W C_ ( R tX S ) ) $.
    txcmp.u $e |- ( ph -> ( X X. Y ) = U. W ) $.
    ${
      txcmp.a $e |- ( ph -> A e. Y ) $.
      $( Lemma for ~ txcmp .  (Contributed by Mario Carneiro, 14-Sep-2014.) $)
      txcmplem1 $p |- ( ph -> E. u e. S ( A e. u /\
        E. v e. ( ~P W i^i Fin ) ( X X. u ) C_ U. v ) ) $=
        ( vr wa wrex wcel vt vf vx vk vs vy cv cuni wceq wf csn cxp cfv wss wex
        wral cpw cfn cin ccmp id opelxpi syl2anr adantr eleqtrd eluni2 sylib wi
        cop ctx co sselda wb syl2anc biimpa syldan eleq1 anbi1d 2rexbidv rspccv
        eltx syl opelxp1 ad2antrl opelxp2 snssd xpss2 simprr sstrd ex rexlimdvw
        jca reximdv syld reximdva rexcom r19.42v rexbii bitri ralrimiva cmpcovf
        mpd sseq2 crn ad2antrr ctop cmptop txtop simprrl frn uniopn ciun ss2iun
        simprrr simprl uniiun syl6eq xpeq1d xpiundir syl6req wfn fniunfv txtube
        ffn 3sstr3d rnex elpw sylibr inss2 simplr sseldi dffn4 fofi elind unieq
        vex wfo sseq2d rspcev anim2d expr exlimdv expimpd rexlimdva ) AHUAUGZUH
        ZUIZUUEGUBUGZUJZQUGZDUKZULZUUJUUHUMZUNZQUUEUPZRZUBUOZRZUAEUQZURUSZSZDCU
        GZTZHUVBULZBUGZUHZUNZBGUQZURUSZSZRZCFSZAEUTTZUCUGZUUJTZUULUDUGZUNZUDGSR
        ZQESZUCHUPUVALAUVSUCHAUVNHTZRZUVOUVQRZQESZUDGSZUVSUWAUVNDVIZUVPTZUDGSZU
        WDUWAUWEGUHZTUWGUWAUWEHIULZUWHUVTUVTDITZUWEUWITAUVTVAPUVNDHIVBVCAUWIUWH
        UIUVTOVDVEUDUWEGVFVGUWAUWFUWCUDGUWAUVPGTZRZUWFUWEUUJUEUGZULZTZUWNUVPUNZ
        RZUEFSZQESZUWCUWLUFUGZUWNTZUWPRZUEFSQESZUFUVPUPZUWFUWSVHUWAUWKUVPEFVJVK
        ZTZUXDUWAGUXEUVPAGUXEUNZUVTNVDVLUWAUXFUXDAUXFUXDVMZUVTAUVMFUTTZUXHLMQUE
        UVPEFUTUTUFWAVNVDVOVPUXCUWSUFUWEUVPUWTUWEUIZUXBUWQQUEEFUXJUXAUWOUWPUWTU
        WEUWNVQVRVSVTWBUWLUWRUWBQEUWLUWQUWBUEFUWLUWQUWBUWLUWQRZUVOUVQUWOUVOUWLU
        WPUVNDUUJUWMWCWDUXKUULUWNUVPUXKUUKUWMUNUULUWNUNUXKDUWMUWODUWMTUWLUWPUVN
        DUUJUWMWEWDWFUUKUWMUUJWGWBUWLUWOUWPWHWIWLWJWKWMWNWOXBUWDUWBUDGSZQESUVSU
        WBUDQGEWPUXLUVRQEUVOUVQUDGWQWRWSVGWTUVQUUNUCQUDGUBEHUAJUVPUUMUULXCXAVNA
        UURUVLUAUUTAUUEUUTTZRZUUGUUQUVLUXNUUGRUUPUVLUBUXNUUGUUPUVLUXNUUGUUPRZRZ
        UVCUVDUUHXDZUHZUNZRZCFSUVLUXPCDEFUXRHIJKAUVMUXMUXOLXEZAFXFTZUXMUXOAUXIU
        YBMFXGWBXEZUXPUXEXFTZUXQUXEUNUXRUXETUXPEXFTZUYBUYDUXPUVMUYEUYAEXGWBUYCE
        FXHVNUXPUXQGUXEUXPUUIUXQGUNZUXNUUGUUIUUOXIZUUEGUUHXJWBZAUXGUXMUXONXEWIU
        XQUXEXKVNUXPQUUEUULXLZQUUEUUMXLZHUUKULZUXRUXPUUOUYIUYJUNUXNUUGUUIUUOXNQ
        UUEUULUUMXMWBUXPUYKQUUEUUJXLZUUKULUYIUXPHUYLUUKUXPHUUFUYLUXNUUGUUPXOQUU
        EXPXQXRQUUEUUJUUKXSXTUXPUUHUUEYAZUYJUXRUIUXPUUIUYMUYGUUEGUUHYDWBZQUUEUU
        HYBWBYEAUWJUXMUXOPXEYCUXPUXTUVKCFUXPUXSUVJUVCUXPUXQUVITZUXSUVJVHUXPUVHU
        RUXQUXPUYFUXQUVHTUYHUXQGUUHUBYPYFYGYHUXPUUEURTUUEUXQUUHYQZUXQURTUXPUUTU
        RUUEUUSURYIAUXMUXOYJYKUXPUYMUYPUYNUUEUUHYLVGUUEUXQUUHYMVNYNUYOUXSUVJUVG
        UXSBUXQUVIUVEUXQUIUVFUXRUVDUVEUXQYOYRYSWJWBYTWMXBUUAUUBUUCUUDXB $.
    $}

    $( Lemma for ~ txcmp .  (Contributed by Mario Carneiro, 14-Sep-2014.) $)
    txcmplem2 $p |- ( ph -> E. v e. ( ~P W i^i Fin ) ( X X. Y ) = U. v ) $=
      ( vz cuni wceq cfn wss wa wcel vw vf vu vx cv cpw cin wf cxp cfv wral wex
      wrex adantr ctx co simpr txcmplem1 ralrimiva unieq sseq2d cmpcovf syl2anc
      ccmp ciun crn wfn simprrl ffn fniunfv 3syl frn inss1 syl6ss sspwuni sylib
      syl eqsstrd vex fvex iunex sylibr inss2 simplr sseldi fss sylancl ffvelrn
      elpw iunfi elind simprl uniiun syl6eq xpeq2d xpiundi simprrr xpeq2 unieqd
      fveq2 sseq12d ss2iun ffvelrnda elpwi uniss ad3antrrr sseqtr4d iunss eqssd
      cbvralv iuncom4 eqeq2d rspcev expr exlimdv expimpd rexlimdva mpd ) AGUAUE
      ZOZPZXSEUFZQUGZUBUEZUHZFUCUEZUIZYFYDUJZOZRZUCXSUKZSZUBULZSZUADUFZQUGZUMZF
      GUIZBUEZOZPZBYCUMZADVDTZUDUEZYFTYGYTRZBYCUMSUCDUMZUDGUKYQKAUUFUDGAUUDGTZS
      BUCUUDCDEFGHIACVDTUUGJUNAUUCUUGKUNAECDUOUPRUUGLUNAYREOZPZUUGMUNAUUGUQURUS
      UUEYJUDUCBYCUBDGUAIYSYHPYTYIYGYSYHUTVAVBVCAYNUUBUAYPAXSYPTZSZYAYMUUBUUKYA
      SYLUUBUBUUKYAYLUUBUUKYAYLSZSZNXSNUEZYDUJZVEZYCTYRUUPOZPZUUBUUMYBQUUPUUMUU
      PERUUPYBTUUMUUPYDVFZOZEUUMYEYDXSVGUUPUUTPUUKYAYEYKVHZXSYCYDVINXSYDVJVKUUM
      UUSYBRUUTERUUMUUSYCYBUUMYEUUSYCRUVAXSYCYDVLVQYBQVMZVNUUSEVOVPVRUUPENXSUUO
      UAVSUUNYDVTWAWIWBUUMXSQTUUOQTZNXSUKZUUPQTUUMYPQXSYOQWCAUUJUULWDWEUUMXSQYD
      UHZUVDUUMYEYCQRUVEUVAYBQWCXSYCQYDWFWGUVEUVCNXSXSQUUNYDWHUSVQNXSUUOWJVCWKU
      UMYRNXSUUOOZVEZUUQUUMYRUVGUUMYRNXSFUUNUIZVEZUVGUUMYRFNXSUUNVEZUIUVIUUMGUV
      JFUUMGXTUVJUUKYAYLWLNXSWMWNWONXSUUNFWPWNUUMUVHUVFRZNXSUKZUVIUVGRUUMYKUVLU
      UKYAYEYKWQYJUVKUCNXSYFUUNPZYGUVHYIUVFYFUUNFWRUVMYHUUOYFUUNYDWTWSXAXJVPNXS
      UVHUVFXBVQVRUUMUVFYRRZNXSUKUVGYRRUUMUVNNXSUUMUUNXSTZSZUVFUUHYRUVPUUOYBTUU
      OERUVFUUHRUVPYCYBUUOUVBUUMXSYCUUNYDUVAXCWEUUOEXDUUOEXEVKAUUIUUJUULUVOMXFX
      GUSNXSUVFYRXHWBXINXSUUOXKWNUUAUURBUUPYCYSUUPPYTUUQYRYSUUPUTXLXMVCXNXOXPXQ
      XR $.
  $}

  ${
    $d v w R $.  $d v w S $.
    $( The topological product of two compact spaces is compact.  (Contributed
       by Mario Carneiro, 14-Sep-2014.)  (Proof shortened 21-Mar-2015.) $)
    txcmp $p |- ( ( R e. Comp /\ S e. Comp ) -> ( R tX S ) e. Comp ) $=
      ( vw vv ccmp wcel wa ctx co ctop cuni wceq cpw cfn cin wrex cmptop syl2an
      cv eqid wi txtop cxp simpll simplr wss elpwi ad2antrl txuni adantr simprr
      wral eqtrd txcmplem2 eqeq1d rexbidv mpbid expr ralrimiva iscmp sylanbrc )
      AEFZBEFZGZABHIZJFZVEKZCSZKZLZVGDSKZLZDVHMNOZPZUAZCVEMZULVEEFVBAJFZBJFZVFV
      CAQZBQZABUBRVDVOCVPVDVHVPFZVJVNVDWAVJGZGZAKZBKZUCZVKLZDVMPVNWCDABVHWDWEWD
      TZWETZVBVCWBUDVBVCWBUEWAVHVEUFVDVJVHVEUGUHWCWFVGVIVDWFVGLZWBVBVQVRWJVCVSV
      TABWDWEWHWIUIRUJZVDWAVJUKUMUNWCWGVLDVMWCWFVGVKWKUOUPUQURUSCDVEVGVGTUTVA
      $.
  $}

  ${
    txcmpb.1 $e |- X = U. R $.
    txcmpb.2 $e |- Y = U. S $.
    $( The topological product of two nonempty topologies is compact iff the
       component topologies are both compact.  (Contributed by Mario Carneiro,
       14-Sep-2014.) $)
    txcmpb $p |- ( ( ( R e. Top /\ S e. Top ) /\ ( X =/= (/) /\ Y =/= (/) ) )
      -> ( ( R tX S ) e. Comp <-> ( R e. Comp /\ S e. Comp ) ) ) $=
      ( ctop wcel wa c0 wne co ccmp cres wfo ccn syl wb ad2antrr foeq2 ctx cuni
      c1st cxp simpr simplrr fo1stres wceq txuni mpbid ctopon cfv tx1cn syl2anb
      toptopon cncmp syl3anc c2nd simplrl fo2ndres tx2cn jca ex txcmp impbid1 )
      AGHZBGHZIZCJKZDJKZIZIZABUALZMHZAMHZBMHZIZVLVNVQVLVNIZVOVPVRVNVMUBZCUCCDUD
      ZNZOZWAVMAPLHZVOVLVNUEZVRVTCWAOZWBVRVJWEVHVIVJVNUFCDUGQVRVTVSUHZWEWBRVHWF
      VKVNABCDEFUISZVTVSCWATQUJVHWCVKVNVFACUKULHZBDUKULHZWCVGACEUOZBDFUOZABCDUM
      UNSWAVMAVSCEUPUQVRVNVSDURVTNZOZWLVMBPLHZVPWDVRVTDWLOZWMVRVIWOVHVIVJVNUSCD
      UTQVRWFWOWMRWGVTVSDWLTQUJVHWNVKVNVFWHWIWNVGWJWKABCDVAUNSWLVMBVSDFUPUQVBVC
      ABVDVE $.
  $}

  ${
    $d X a b c d e $.  $d J a b c d e $.
    hausdiag.x $e |- X = U. J $.
    $( A topology is Hausdorff iff the diagonal set is closed in the topology's
       product with itself. _EDITORIAL_: very clumsy proof, can probably be
       shortened substantially.  (Contributed by Stefan O'Rear,
       25-Jan-2015.) $)
    hausdiag $p |- ( J e. Haus <-> ( J e. Top /\ ( _I |` X ) e.
        ( Clsd ` ( J tX J ) ) ) ) $=
      ( va vb vc vd ve wcel ctop cv cin wceq wrex wi wral wa cid wss wb cha wne
      c0 w3a cres ctx ccld cfv ishaus cuni cdif cxp txtop anidms wf1o f1oi f1of
      co wf fssxp mp2b txuni syl5sseq eqid iscld2 syl2anc eltx cop eldif eqcomd
      eleq2d anbi1d syl5bb imbi1d impexp syl6bb ralbidv2 eleq1 2rexbidv imbi12d
      notbid ralxp vex opelres wbr df-br ideq bitr3i iba adantr syl5rbbr adantl
      wn necon3bbid elssuni xpss12 syl2an xpeq12i syl6sseqr sseqtrd reldisj syl
      ad2antrr cvv df-res ineq2i inass inss1 syl5ss ssv xpss2 ax-mp df-ss sylib
      syl6ss syl5eqr syl5eq eqeq1d wal opelxp elin 3bitr4i notbii intirr bitr3d
      albii eq0 anbi2d anbi1i 3bitr4g 2rexbidva 2ralbidva bitrd 3bitrrd pm5.32i
      df-3an bitri ) AUAIAJIZDKZEKZUBZYSFKZIZYTGKZIZUUBUUDLZUCMZUDZGANFANZOZEBP
      DBPZQYRRBUEZAAUFURZUGUHIZQDEGFABCUIYRUUKUUNYRUUNUUMUJZUULUKZUUMIZHKZUUBUU
      DULZIZUUSUUPSZQZGANFANZHUUPPZUUKYRUUMJIZUULUUOSUUNUUQTYRUVEAAUMUNYRBBULZU
      ULUUOBBUULUOBBUULUSUULUVFSBUPBBUULUQBBUULUTVAYRUVFUUOMZAABBCCVBUNZVCUULUU
      MUUOUUOVDVEVFYRUUQUVDTFGUUPAAJJHVGUNYRUVDYSYTVHZUULIZWMZUVIUUSIZUVAQZGANF
      ANZOZEBPDBPZUUKYRUVDUURUULIZWMZUVCOZHUVFPUVPYRUVCUVSHUUPUVFYRUURUUPIZUVCO
      UURUVFIZUVRQZUVCOUWAUVSOYRUVTUWBUVCUVTUURUUOIZUVRQYRUWBUURUUOUULVIYRUWCUW
      AUVRYRUUOUVFUURYRUVFUUOUVHVJVKVLVMVNUWAUVRUVCVOVPVQUVSUVOHDEBBUURUVIMZUVR
      UVKUVCUVNUWDUVQUVJUURUVIUULVRWAUWDUVBUVMFGAAUWDUUTUVLUVAUURUVIUUSVRVLVSVT
      WBVPYRUVOUUJDEBBYRYSBIZYTBIZQZQZUVKUUAUVNUUIUWHUVJYSYTUWGUVJYSYTMZTYRUVJU
      VIRIZUWEQZUWGUWIYSYTRBEWCZWDUWIUWJUWGUWKUWJYSYTRWEUWIYSYTRWFYSYTUWLWGWHUW
      EUWJUWKTUWFUWEUWJWIWJWKVMWLWNUWHUVMUUHFGAAUWHUUBAIZUUDAIZQZQZUUCUUEQZUVAQ
      UWQUUGQUVMUUHUWPUVAUUGUWQUWPUUSUULLZUCMZUVAUUGUWPUUSUUOSUWSUVATUWPUUSUVFU
      UOUWOUUSUVFSUWHUWOUUSAUJZUWTULZUVFUWMUUBUWTSUUDUWTSUUSUXASUWNUUBAWOUUDAWO
      UUBUWTUUDUWTWPWQBUWTBUWTCCWRWSWLZYRUVGUWGUWOUVHXCWTUUSUULUUOXAXBUWPUWSUUS
      RLZUCMZUUGUWPUWRUXCUCUWPUWRUUSRBXDULZLZLZUXCUULUXFUUSRBXEXFUWPUXGUXCUXELZ
      UXCUUSRUXEXGUWPUXCUXESUXHUXCMUWPUXCUVFUXEUWPUXCUUSUVFUUSRXHUXBXIBXDSUVFUX
      ESBXJBXDBXKXLXOUXCUXEXMXNXPXQXRYSYSUUSWEZWMZDXSYSUUFIZWMZDXSUXDUUGUXJUXLD
      UXIUXKYSYSVHUUSIUUCYSUUDIQUXIUXKYSYSUUBUUDXTYSYSUUSWFYSUUBUUDYAYBYCYFDUUS
      YDDUUFYGYBVPYEYHUVLUWQUVAYSYTUUBUUDXTYIUUCUUEUUGYPYJYKVTYLYMYNYOYQ $.
  $}

  ${
    $d J a b $.  $d K a b $.  $d F a b $.  $d G a b $.  $d ph a b $.
    hauseqlcld.k $e |- ( ph -> K e. Haus ) $.
    hauseqlcld.f $e |- ( ph -> F e. ( J Cn K ) ) $.
    hauseqlcld.g $e |- ( ph -> G e. ( J Cn K ) ) $.
    $( In a Hausdorff topology, the equalizer of two continuous functions is
       closed (thus, two continuous functions which agree on a dense set agree
       everywhere).  (Contributed by Stefan O'Rear, 25-Jan-2015.)  (Revised by
       Mario Carneiro, 22-Aug-2015.) $)
    hauseqlcld $p |- ( ph -> dom ( F i^i G ) e. ( Clsd ` J ) ) $=
      ( va vb cfv cid wcel wceq wa co eqid syl wfn syl2anc cin cdm cuni cv cmpt
      cop ccnv cres cima ccld ccn wf cnf ffvelrnda biantrud wbr fvex ideq df-br
      bitr3i opelres 3bitr4g fveq2 opeq12d opex fvmpt adantl eleq1d bitr4d crab
      pm5.32da fndmin eleq2d rabid syl6bb wb fnmpti elpreima mp1i 3bitr4d eqrdv
      ffn ctx txcnmpt cha ctop hausdiag simprbi cnclima eqeltrd ) ABCUAUBZIDUCZ
      IUDZBKZWMCKZUFZUEZUGLEUCZUHZUIZDUJKZAJWKWTAJUDZWLMZXBBKZXBCKZNZOZXCXBWQKZ
      WSMZOZXBWKMZXBWTMZAXCXFXIAXCOZXFXDXEUFZWSMZXIXMXNLMZXPXDWRMZOXFXOXMXQXPAW
      LWRXBBABDEUKPZMZWLWRBULZGBDEWLWRWLQZWRQZUMRZUNUOXFXDXELUPXPXDXEXBCUQZURXD
      XELUSUTXDXELWRYDVAVBXMXHXNWSXCXHXNNAIXBWPXNWLWQWMXBNWNXDWOXEWMXBBVCWMXBCV
      CVDWQQZXDXEVEVFVGVHVIVKAXKXBXFJWLVJZMXGAWKYFXBABWLSZCWLSZWKYFNAXTYGYCWLWR
      BWBRAWLWRCULZYHACXRMZYIHCDEWLWRYAYBUMRWLWRCWBRJWLBCVLTVMXFJWLVNVOWQWLSXLX
      JVPAIWLWPWQWNWOVEYEVQWLXBWSWQVRVSVTWAAWQDEEWCPZUKPMZWSYKUJKMZWTXAMAXSYJYL
      GHIEEDBCWQWLYAYEWDTAEWEMZYMFYNEWFMYMEWRYBWGWHRWSWQDYKWITWJ $.
  $}

  ${
    $d u v w x y z R $.  $d u v w x y z S $.
    $( The topological product of two Hausdorff spaces is Hausdorff.
       (Contributed by Mario Carneiro, 23-Mar-2015.) $)
    txhaus $p |- ( ( R e. Haus /\ S e. Haus ) -> ( R tX S ) e. Haus ) $=
      ( vx vy vz vw vu vv wcel wa ctop cv cin c0 wceq w3a cxp ad2antrr sylanbrc
      wrex cha ctx co wne wi cuni wral haustop txtop syl2an eqid eleq2d anbi12d
      txuni c1st cfv c2nd wo wn neorian xpopth adantl necon3bbid syl5bb simplll
      wb xp1st ad2antrl adantr ad2antll simpr hausnei syl13anc ad4antlr simprll
      topopn syl txopn syl22anc simprlr cop 1st2nd2 simprr1 xp2nd elxp6 simprr2
      jca simprr3 xpeq1d xpindir 0xp eleq2 ineq1 eqeq1d 3anbi13d ineq2 3anbi23d
      3eqtr3g rspc2ev syl113anc rexlimdvva mpd simpllr xpeq2d xpindi xp0 jaodan
      expr ex sylbird ralrimivv ishaus ) AUAIZBUAIZJZABUBUCZKIZCLZDLZUDZXRELZIZ
      XSFLZIZYAYCMZNOZPZFXPTEXPTZUEZDXPUFZUGCYJUGXPUAIXMAKIZBKIZXQXNAUHZBUHZABU
      IUJXOYICDYJYJXOXRYJIZXSYJIZJXRAUFZBUFZQZIZXSYSIZJZYIXOYTYOUUAYPXOYSYJXRXM
      YKYLYSYJOXNYMYNABYQYRYQUKZYRUKZUNUJZULXOYSYJXSUUEULUMXOUUBYIXOUUBJZXTXRUO
      UPZXSUOUPZUDZXRUQUPZXSUQUPZUDZURZYHUUMUUGUUHOUUJUUKOJZUSUUFXTUUGUUHUUJUUK
      UTUUFUUNXRXSUUBUUNXRXSOVFXOXRXSYQYRYQYRVAVBVCVDUUFUUMYHUUFUUIYHUULUUFUUIJ
      ZUUGGLZIZUUHHLZIZUUPUURMZNOZPZHATGATZYHUUOXMUUGYQIZUUHYQIZUUIUVCXMXNUUBUU
      IVEUUFUVDUUIYTUVDXOUUAXRYQYRVGVHZVIUUFUVEUUIUUAUVEXOYTXSYQYRVGVJZVIUUFUUI
      VKUUGUUHHGAYQUUCVLVMUUOUVBYHGHAAUUOUUPAIZUURAIZJZUVBYHUUOUVJUVBJZJZUUPYRQ
      ZXPIZUURYRQZXPIZXRUVMIZXSUVOIZUVMUVOMZNOZYHUVLYKYLUVHYRBIZUVNUUFYKUUIUVKX
      MYKXNUUBYMRZRZXNYLXMUUBUUIUVKYNVNZUUOUVHUVIUVBVOUVLYLUWAUWDBYRUUDVPVQZUUP
      YRABKKVRVSUVLYKYLUVIUWAUVPUWCUWDUUOUVHUVIUVBVTUWEUURYRABKKVRVSUVLXRUUGUUJ
      WAOZUUQUUJYRIZJUVQUUFUWFUUIUVKYTUWFXOUUAXRYQYRWBVHZRUVLUUQUWGUUQUUSUVAUVJ
      UUOWCUUFUWGUUIUVKYTUWGXOUUAXRYQYRWDVHZRWGXRUUPYRWESUVLXSUUHUUKWAOZUUSUUKY
      RIZJUVRUUFUWJUUIUVKUUAUWJXOYTXSYQYRWBVJZRUVLUUSUWKUUQUUSUVAUVJUUOWFUUFUWK
      UUIUVKUUAUWKXOYTXSYQYRWDVJZRWGXSUURYRWESUVLUUTYRQNYRQUVSNUVLUUTNYRUUQUUSU
      VAUVJUUOWHWIUUPUURYRWJYRWKWRYGUVQUVRUVTPUVQYDUVMYCMZNOZPEFUVMUVOXPXPYAUVM
      OZYBUVQYFUWOYDYAUVMXRWLUWPYEUWNNYAUVMYCWMWNWOYCUVOOZYDUVRUWOUVTUVQYCUVOXS
      WLUWQUWNUVSNYCUVOUVMWPWNWQWSWTXHXAXBUUFUULJZUUJUUPIZUUKUURIZUVAPZHBTGBTZY
      HUWRXNUWGUWKUULUXBXMXNUUBUULXCUUFUWGUULUWIVIUUFUWKUULUWMVIUUFUULVKUUJUUKH
      GBYRUUDVLVMUWRUXAYHGHBBUWRUUPBIZUURBIZJZUXAYHUWRUXEUXAJZJZYQUUPQZXPIZYQUU
      RQZXPIZXRUXHIZXSUXJIZUXHUXJMZNOZYHUXGYKYLYQAIZUXCUXIUUFYKUULUXFUWBRZXNYLX
      MUUBUULUXFYNVNZUXGYKUXPUXQAYQUUCVPVQZUWRUXCUXDUXAVOYQUUPABKKVRVSUXGYKYLUX
      PUXDUXKUXQUXRUXSUWRUXCUXDUXAVTYQUURABKKVRVSUXGUWFUVDUWSJUXLUUFUWFUULUXFUW
      HRUXGUVDUWSUUFUVDUULUXFUVFRUWSUWTUVAUXEUWRWCWGXRYQUUPWESUXGUWJUVEUWTJUXMU
      UFUWJUULUXFUWLRUXGUVEUWTUUFUVEUULUXFUVGRUWSUWTUVAUXEUWRWFWGXSYQUURWESUXGY
      QUUTQYQNQUXNNUXGUUTNYQUWSUWTUVAUXEUWRWHXDYQUUPUURXEYQXFWRYGUXLUXMUXOPUXLY
      DUXHYCMZNOZPEFUXHUXJXPXPYAUXHOZYBUXLYFUYAYDYAUXHXRWLUYBYEUXTNYAUXHYCWMWNW
      OYCUXJOZYDUXMUYAUXOUXLYCUXJXSWLUYCUXTUXNNYCUXJUXHWPWNWQWSWTXHXAXBXGXIXJXI
      XJXKCDFEXPYJYJUKXLS $.
  $}

  ${
    $d j k n u v w x F $.  $d j k u v w H $.  $d n x O $.  $d j k n u v w ph $.
    $d j k n u v w x G $.  $d j k M $.  $d j k t u v w R $.
    $d j k t u v w S $.  $d j k n t u v w J $.  $d j k n t u v w K $.
    $d j k n u v w x X $.  $d j k n u v w x Y $.  $d j k n u v w Z $.
    txlm.z $e |- Z = ( ZZ>= ` M ) $.
    txlm.m $e |- ( ph -> M e. ZZ ) $.
    txlm.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    txlm.k $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    txlm.f $e |- ( ph -> F : Z --> X ) $.
    txlm.g $e |- ( ph -> G : Z --> Y ) $.
    ${
      txlm.h $e |- H = ( n e. Z |-> <. ( F ` n ) , ( G ` n ) >. ) $.
      $( Two sequences converge iff the sequence of their ordered pairs
         converges.  Proposition 14-2.6 of [Gleason] p. 230.  (Contributed by
         NM, 16-Jul-2007.)  (Revised by Mario Carneiro, 5-May-2014.) $)
      txlm $p |- ( ph -> ( ( F ( ~~>t ` J ) R /\ G ( ~~>t ` K ) S ) <->
                           H ( ~~>t ` ( J tX K ) ) <. R , S >. ) ) $=
        ( vu vk vj vv vw vt wcel wa cv cfv cuz wral wrex wi cop cxp ctx clm wbr
        co r19.27v r19.28v ralimi syl wss cmpt2 crn ctg simprl wceq ctop ctopon
        topontop eqid txval syl2anc adantr eleqtrd simprr tg2 cvv wb vex rgen2w
        eleq2 sseq1 anbi12d rexrnmpt2 ax-mp sylib r19.29 opelxp pm2.27 im2anan9
        xpex ex rexanuz2 uztrn2 opelxpi fveq2 opeq12d opex fvmpt eleq1d syl5ibr
        adantl simplrr sseld syld sylan2 anassrs ralimdva reximdva syl5bir impd
        com23 rexlimdva syl5 expcomd expdimp toponmax txopn syl22anc rexralbidv
        ralrimdva imbi12d rspcv expcom opelxp1 reximia imim12d adantrl ad2antrl
        syl6bi a1i opelxp2 adantrr eqidd lmbrf ffvelrnda impbid pm5.32da anbi1i
        jcad syl6bbr an4 syl6bb txtopon fmptd 3bitr4d ) ABKUGZCLUGZUHZBUAUIZUGZ
        UBUIZEUJZUUNUGZUBUCUIZUKUJZULZUCMUMZUNZUAHULZCUDUIZUGZUUPFUJZUVEUGZUBUU
        TULZUCMUMZUNZUDIULZUHZUHZBCUOZKLUPZUGZUVOUEUIZUGZUUPGUJZUVRUGZUBUUTULZU
        CMUMZUNZUEHIUQUTZULZUHZEBHURUJUSZFCIURUJUSZUHZGUVOUWEURUJUSAUVNUUMUWFUH
        UWGAUUMUVMUWFAUUMUHZUVMUWFAUVMUWFUNUUMUVMUVCUVKUHZUDIULZUAHULZAUWFUVMUV
        CUVLUHZUAHULUWNUVCUVLUAHVAUWOUWMUAHUVCUVKUDIVBVCVDAUWNUWDUEUWEAUVRUWEUG
        ZUHUVSUWNUWCAUWPUVSUWNUWCUNZAUWPUVSUHZUVOUUNUVEUPZUGZUWSUVRVEZUHZUDIUMZ
        UAHUMZUWQAUWRUXDAUWRUHZUVOUFUIZUGZUXFUVRVEZUHZUFUAUDHIUWSVFZVGZUMZUXDUX
        EUVRUXKVHUJZUGUVSUXLUXEUVRUWEUXMAUWPUVSVIAUWEUXMVJZUWRAHVKUGZIVKUGZUXNA
        HKVLUJUGZUXOPKHVMVDZAILVLUJUGZUXPQLIVMVDZUAUDUXKHIVKVKUXKVNVOVPVQVRAUWP
        UVSVSUFUVRUXKUVOVTVPUWSWAUGZUDIULUAHULUXLUXDWBUYAUAUDHIUUNUVEUAWCUDWCWO
        WDUXIUXBUAUDUFHIUWSUXJWAUXJVNUXFUWSVJUXGUWTUXHUXAUXFUWSUVOWEUXFUWSUVRWF
        WGWHWIWJWPAUWNUXDUWCUWNUXDUHUWMUXCUHZUAHUMAUWCUWMUXCUAHWKAUYBUWCUAHUYBU
        WLUXBUHZUDIUMAUUNHUGZUHZUWCUWLUXBUDIWKUYEUYCUWCUDIUYEUVEIUGZUHZUWLUXBUW
        CUYGUXBUWLUWCUYGUXBUWLUWCUNUYGUXBUHZUWLUVBUVJUHZUWCUYHUUOUVFUHZUWLUYIUN
        UYHUWTUYJUYGUWTUXAVIBCUUNUVEWLWJUUOUVCUVBUVFUVKUVJUUOUVBWMUVFUVJWMWNVDU
        YIUURUVHUHZUBUUTULZUCMUMUYHUWCUURUVHUCUBJMNWQUYHUYLUWBUCMUYHUUSMUGZUHUY
        KUWAUBUUTUYHUYMUUPUUTUGZUYKUWAUNZUYMUYNUHZUYHUUPMUGZUYOJUUPUUSMNWRZUYHU
        YQUHZUYKUVTUWSUGZUWAUYQUYKUYTUNUYHUYKUYTUYQUUQUVGUOZUWSUGUUQUVGUUNUVEWS
        UYQUVTVUAUWSDUUPDUIZEUJZVUBFUJZUOZVUAMGVUBUUPVJVUCUUQVUDUVGVUBUUPEWTVUB
        UUPFWTXATUUQUVGXBXCZXDXEXFUYSUWSUVRUVTUYGUWTUXAUYQXGXHXIXJXKXLXMXNXIWPX
        PXOXQXRXQXRXSXIXTXPYEXRVQUWKUWFUVDUVLAUULUWFUVDUNUUKAUULUHUWFUVCUAHAUUL
        UYDUWFUVCUNAUULUYDUHZUHZUWFUVOUUNLUPZUGZUVTVUIUGZUBUUTULZUCMUMZUNZUVCVU
        HVUIUWEUGZUWFVUNUNVUHUXOUXPUYDLIUGZVUOAUXOVUGUXRVQAUXPVUGUXTVQAUULUYDVS
        AVUPVUGAUXSVUPQLIYAVDVQUUNLHIVKVKYBYCUWDVUNUEVUIUWEUVRVUIVJZUVSVUJUWCVU
        MUVRVUIUVOWEVUQUWAVUKUCUBMUUTUVRVUIUVTWEYDYFYGVDVUHUUOVUJVUMUVBUUOVUHVU
        JVUHUUOUULVUJAUULUYDVIBCUUNLWSXJYHVUMUVBUNVUHVULUVAUCMUYMVUKUURUBUUTUYP
        UYQVUKUURUNUYRUYQVUKVUAVUIUGUURUYQUVTVUAVUIVUFXDUUQUVGUUNLYIYNVDXLYJYOY
        KXIXKYEYLAUUKUWFUVLUNUULAUUKUHUWFUVKUDIAUUKUYFUWFUVKUNAUUKUYFUHZUHZUWFU
        VOKUVEUPZUGZUVTVUTUGZUBUUTULZUCMUMZUNZUVKVUSVUTUWEUGZUWFVVEUNVUSUXOUXPK
        HUGZUYFVVFAUXOVURUXRVQAUXPVURUXTVQAVVGVURAUXQVVGPKHYAVDVQAUUKUYFVSKUVEH
        IVKVKYBYCUWDVVEUEVUTUWEUVRVUTVJZUVSVVAUWCVVDUVRVUTUVOWEVVHUWAVVBUCUBMUU
        TUVRVUTUVTWEYDYFYGVDVUSUVFVVAVVDUVJUUKUVFVVAUNAUYFUUKUVFVVABCKUVEWSWPYM
        VVDUVJUNVUSVVCUVIUCMUYMVVBUVHUBUUTUYPUYQVVBUVHUNUYRUYQVVBVUAVUTUGUVHUYQ
        UVTVUAVUTVUFXDUUQUVGKUVEYPYNVDXLYJYOYKXIXKYEYQUUDUUAUUBUVQUUMUWFBCKLWLU
        UCUUEAUWJUUKUVDUHZUULUVLUHZUHUVNAUWHVVIUWIVVJAUAUUQBUCUBEHJKMPNORAUYQUH
        ZUUQYRYSAUDUVGCUCUBFIJLMQNOSVVKUVGYRYSWGUUKUVDUULUVLUUFUUGAUEUVTUVOUCUB
        GUWEJUVPMAUXQUXSUWEUVPVLUJUGPQHIKLUUHVPNOADMVUEUVPGAVUBMUGUHVUCKUGVUDLU
        GVUEUVPUGAMKVUBERYTAMLVUBFSYTVUCVUDKLWSVPTUUIVVKUVTYRYSUUJ $.
    $}

    lmcn2.fl $e |- ( ph -> F ( ~~>t ` J ) R ) $.
    lmcn2.gl $e |- ( ph -> G ( ~~>t ` K ) S ) $.
    lmcn2.o $e |- ( ph -> O e. ( ( J tX K ) Cn N ) ) $.
    lmcn2.h $e |- H = ( n e. Z |-> ( ( F ` n ) O ( G ` n ) ) ) $.
    $( The image of a convergent sequence under a continuous map is convergent
       to the image of the original point.  Binary operation version.
       (Contributed by Mario Carneiro, 15-May-2014.) $)
    lmcn2 $p |- ( ph -> H ( ~~>t ` N ) ( R O S ) ) $=
      ( vx cop cfv co clm cv cmpt ccom cxp wcel ffvelrnda opelxpi syl2anc eqidd
      wa cuni ctx ctopon ccn wf txtopon ctop cntop2 eqid toptopon sylib syl3anc
      syl cnf2 feqmptd wceq fveq2 df-ov syl6eqr wbr txlm mpbi2and lmcn eqbrtrrd
      fmptco syl6breqr ) AGBCUGZLUHZBCLUIKUJUHZALDODUKZEUHZWJFUHZUGZULZUMZGWHWI
      AWODOWKWLLUIZULGADUFOMNUNZWMUFUKZLUHZWPWNLAWJOUOUTWKMUOWLNUOWMWQUOAOMWJET
      UPAONWJFUAUPWKWLMNUQURAWNUSAUFWQKVAZLAHIVBUIZWQVCUHUOZKWTVCUHUOZLXAKVDUIU
      OZWQWTLVEAHMVCUHUOINVCUHUOXBRSHIMNVFURAKVGUOZXCAXDXEUDLXAKVHVMKWTWTVIVJVK
      UDLXAKWQWTVNVLVOWRWMVPWSWMLUHWPWRWMLVQWKWLLVRVSWEUEVSAWGWNLXAKAEBHUJUHVTF
      CIUJUHVTWNWGXAUJUHVTUBUCABCDEFWNHIJMNOPQRSTUAWNVIWAWBUDWCWDBCLVRWF $.
  $}

  ${
    $d a b m n p q r s u v w x y z R $.  $d a b m n p q r s u v w x y z S $.
    $( The topological product of two first-countable spaces is
       first-countable.  (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    tx1stc $p |- ( ( R e. 1stc /\ S e. 1stc ) -> ( R tX S ) e. 1stc ) $=
      ( vx vz vw vr vp vs vq vm vn wcel wa cv com cdom wbr wrex wral wceq vy vu
      vv va vb c1stc ctx co ctop wel wss cpw cuni 1stctop txtop syl2an cxp eqid
      wi cop 1stcclb ad2ant2r ad2ant2l reeanv an4 cmpt2 crn wf txopn ralrimivva
      adantr elpwi ssralv syl ralimdv sylan9 mpan9 fmpt2 sylib frn elpw2 sylibr
      ovex ccrd cdm wfo con0 omelon cen xpdom1 omex xpdom2 domtr xpomen domentr
      vex sylancl ondomen sylancr wfn xpex fnmpt2i mpbi fodomnum mpisyl syl2anc
      dffn4 ad2antrl anim12i ad3antrrr eltx eleq1 anbi1d 2rexbidv rspccv r19.29
      wb r19.27v opelxp pm3.35 an4s sylanb anim1i anasss expl reximdv syl5 impl
      an12s reximi sylan weq eqeq2d anbi12d syl12anc syl5bir rexlimdvva ralbidv
      rspcev rexbidv w3a simpr1l simpr1r eqidd xpeq1 xpeq2 rspc2ev syl3anc elab
      cab eqeq1 rnmpt2 syl6eleqr simpr2 opelxpi xpss12 simpr3 sstrd eleq2 sseq1
      3exp2 rexlimdvv impd expd syl9r sylbid ralrimiv breq1 rexeq imbi2d syl5bi
      impr ex mp2and imbi12d anbi2d ralxp txuni raleqdv mpbid is1stc2 sylanbrc
      ) AUFLZBUFLZMZABUGUHZUILZUANZOPQZCDUJZCEUJZENZDNZUKZMZEUWHRZUSZDUWFSZMZUA
      UWFULZRZCUWFUMZSZUWFUFLUWCAUILZBUILZUWGUWDAUNZBUNZABUOUPUWEUXACAUMZBUMZUQ
      ZSZUXCUWEUWIUBNZUCNZUTZUWMLZUXNUWLLZUWNMZEUWHRZUSZDUWFSZMZUAUWTRZUCUXISUB
      UXHSUXKUWEUYBUBUCUXHUXIUWEUXLUXHLZUXMUXILZMZMZUDNZOPQZUBFUJZUBGUJZGNZFNZU
      KZMZGUYGRZUSZFASZMZUDAULZRZUENZOPQZUCHUJZUCIUJZINZHNZUKZMZIVUARZUSZHBSZMZ
      UEBULZRZUYBUWCUYCUYTUWDUYDUDFGUXLAUXHUXHURZVAVBUWDUYDVUNUWCUYCUEHIUXMBUXI
      UXIURZVAVCUYTVUNMUYRVULMZUEVUMRUDUYSRUYFUYBUYRVULUDUEUYSVUMVDUYFVUQUYBUDU
      EUYSVUMVUQUYHVUBMZUYQVUKMZMZUYFUYGUYSLZVUAVUMLZMZMZUYBUYHUYQVUBVUKVEVVDVU
      TUYBVVDVUTMZJKUYGVUAJNZKNZUQZVFZVGZUWTLZVVJOPQZUXOUXQEVVJRZUSZDUWFSZUYBVV
      DVVKVUTVVDVVJUWFUKZVVKVVDUYGVUAUQZUWFVVIVHZVVPVVDVVHUWFLZKVUASZJUYGSZVVRU
      YFVVSKBSZJASZVVCVWAUWEVWCUYEUWCUXDUXEVWCUWDUXFUXGUXDUXEMZVVSJKABVVFVVGABU
      IUIVIVJUPVKVVAVWCVWBJUYGSZVVBVWAVVAUYGAUKVWCVWEUSUYGAVLVWBJUYGAVMVNVVBVWB
      VVTJUYGVVBVUABUKVWBVVTUSVUABVLVVSKVUABVMVNVOVPVQJKUYGVUAVVHUWFVVIVVIURZVR
      VSVVQUWFVVIVTVNVVJUWFABUGWCWAWBVKVURVVLVVDVUSVURVVJVVQPQZVVQOPQZVVLVURVVQ
      WDWELZVVQVVJVVIWFZVWGVUROWGLVWHVWIWHVURVVQOOUQZPQZVWKOWIQVWHUYHVVQOVUAUQZ
      PQVWMVWKPQVWLVUBUYGOVUAUEWPWJVUAOOWKWLVVQVWMVWKWMUPWNVVQVWKOWOWQZOVVQWRWS
      VVIVVQWTVWJJKUYGVUAVVHVVIVWFVVFVVGJWPKWPXAXBVVQVVIXGXCVVQVVJVVIXDXEVWNVVJ
      VVQOWMXFXHVVEVVNDUWFVVEUWMUWFLZUWLUYLVUFUQZLZVWPUWMUKZMZHBRFARZEUWMSZVVNV
      VEVWDVWOVXAXQUWEVWDUYEVVCVUTUWCUXDUWDUXEUXFUXGXIXJFHUWMABUIUIEXKVNVXAUXOU
      XNVWPLZVWRMZHBRZFARZVVEVVMVWTVXEEUXNUWMUWLUXNTZVWSVXCFHABVXFVWQVXBVWRUWLU
      XNVWPXLXMXNXOVVDVURVUSVXEVVMUSVVDVURMZVUSVXEVVMVUSVXEMUYOVUIMZVWRMZHBRZFA
      RZVXGVVMVUSUYPVUKMZFASZVXEVXKUYPVUKFAXRVXMVXEMVXLVXDMZFARVXKVXLVXDFAXPVXN
      VXJFAUYPVUKVXDVXJVUKVXDMVUJVXCMZHBRUYPVXJVUJVXCHBXPUYPVXOVXIHBUYPVUJVXCVX
      IVXBUYPVUJMZVWRVXIVXBVXPVWRVXIVXBVXPMVXHVWRVXBUYIVUCMVXPVXHUXLUXMUYLVUFXS
      UYIUYPVUCVUJVXHUYIUYPMUYOVUCVUJMVUIUYIUYOXTVUCVUIXTXIYAYBYCYDYIYEYFYGYHYJ
      VNYKVXGVXIVVMFHABVXGUYLALVUFBLMMZVXHVWRVVMVXHUYNVUHMZIVUARGUYGRVXQVWRVVMU
      SZUYNVUHGIUYGVUAVDVXQVXRVXSGIUYGVUAVXQGUDUJZIUEUJZMZVXRVWRVVMVXQVYBVXRVWR
      UUAMZUYKVUEUQZVVJLUXNVYDLZVYDUWMUKZVVMVYCVYDCNZVVHTZKVUARJUYGRZCUUJZVVJVY
      CVYDVVHTZKVUARJUYGRZVYDVYJLVYCVXTVYAVYDVYDTZVYLVXTVYAVXRVWRVXQUUBVXTVYAVX
      RVWRVXQUUCVYCVYDUUDVYKVYMVYDUYKVVGUQZTJKUYKVUEUYGVUAJGYLVVHVYNVYDVVFUYKVV
      GUUEYMKIYLVYNVYDVYDVVGVUEUYKUUFYMUUGUUHVYIVYLCVYDUYKVUEGWPIWPXAVYGVYDTVYH
      VYKJKUYGVUAVYGVYDVVHUUKXNUUIWBJKCUYGVUAVVHVVIVWFUULUUMVYCVXRVYEVXQVYBVXRV
      WRUUNZUYJVUDVYEUYMVUGUXLUXMUYKVUEUUOVBVNVYCVYDVWPUWMVYCVXRVYDVWPUKZVYOUYM
      VUGVYPUYJVUDUYKUYLVUEVUFUUPVCVNVXQVYBVXRVWRUUQUURUXQVYEVYFMEVYDVVJUWLVYDT
      UXPVYEUWNVYFUWLVYDUXNUUSUWLVYDUWMUUTYNYSYOUVAUVBYPUVCYQYGUVDUVLUVEUVFUVGU
      YAVVLVVOMUAVVJUWTUWHVVJTZUWIVVLUXTVVOUWHVVJOPUVHVYQUXSVVNDUWFVYQUXRVVMUXO
      UXQEUWHVVJUVIUVJYRYNYSYOUVMUVKYQYPUVNVJUXAUYBCUBUCUXHUXIVYGUXNTZUWSUYAUAU
      WTVYRUWRUXTUWIVYRUWQUXSDUWFVYRUWJUXOUWPUXRVYGUXNUWMXLVYRUWOUXQEUWHVYRUWKU
      XPUWNVYGUXNUWLXLXMYTUVOYRUVPYTUVQWBUWEUXACUXJUXBUWCUXDUXEUXJUXBTUWDUXFUXG
      ABUXHUXIVUOVUPUVRUPUVSUVTCUADEUWFUXBUXBURUWAUWB $.
  $}

  ${
    $d r s x y $.  $d r s R $.  $d r s S $.
    $( The topological product of two second-countable spaces is
       second-countable.  (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    tx2ndc $p |- ( ( R e. 2ndc /\ S e. 2ndc ) -> ( R tX S ) e. 2ndc ) $=
      ( vr vs vx vy c2ndc wcel cv com cdom wbr ctg cfv wceq wa ctb wrex ctx cxp
      co is2ndc reeanv an4 cmpt2 crn txbasval eqid txval eqtrd adantr txbas cdm
      ccrd wfo con0 omelon cen xpdom1 xpdom2 domtr syl2an adantl xpomen domentr
      vex omex sylancl ondomen sylancr wfn xpex fnmpt2i a1i dffn4 fodomnum sylc
      sylib syl2anc 2ndci eqeltrd oveq12 eleq1d syl5ibcom expimpd syl5bi sylbir
      rexlimivv syl2anb ) AGHCIZJKLZWJMNZAOZPZCQRZDIZJKLZWPMNZBOZPZDQRZABSUAZGH
      ZBGHCAUBDBUBWOXAPWNWTPZDQRCQRXCWNWTCDQQUCXDXCCDQQXDWKWQPZWMWSPZPWJQHWPQHP
      ZXCWKWMWQWSUDXGXEXFXCXGXEPZWLWRSUAZGHXFXCXHXIEFWJWPEIZFIZTZUEZUFZMNZGXGXI
      XOOXEXGXIWJWPSUAXOWJWPQQUGEFXNWJWPQQXNUHZUIUJUKXHXNQHZXNJKLZXOGHXGXQXEEFX
      NWJWPXPULUKXHXNWJWPTZKLZXSJKLZXRXHXSUNUMHZXSXNXMUOZXTXHJUPHYAYBUQXHXSJJTZ
      KLZYDJURLYAXEYEXGWKXSJWPTZKLYFYDKLYEWQWJJWPDVFUSWPJJVGUTXSYFYDVAVBVCVDXSY
      DJVEVHZJXSVIVJXHXMXSVKZYCYHXHEFWJWPXLXMXMUHXJXKEVFFVFVLVMVNXSXMVOVRXSXNXM
      VPVQYGXNXSJVAVSXNVTVSWAXFXIXBGWLAWRBSWBWCWDWEWFWHWGWI $.
  $}

  ${
    $d a b k s t u x y R $.  $d a b k s t u v x y S $.
    $( The topological product of a locally compact space and a compactly
       generated Hausdorff space is compactly generated.  (The condition on
       ` S ` can also be replaced with either "compactly generated weak
       Hausdorff (CGWH)" or "compact Hausdorff-ly generated (CHG)", where WH
       means that all images of compact Hausdorff spaces are closed and CHG
       means that a set is open iff it is open in all compact Hausdorff
       spaces.)  (Contributed by Mario Carneiro, 23-Mar-2015.) $)
    txkgen $p |- ( ( R e. N-Locally Comp /\ S e. ( ran kGen i^i Haus ) ) ->
      ( R tX S ) e. ran kGen ) $=
      ( vt vu vk vb va ccmp wcel wa co ctop cfv wss cv wrex syl2anc wceq adantr
      syl vx vy vs vv cnlly ckgen crn cha cin ctx nllytop elinel1 kgentop txtop
      syl2an wel wral c1st crest w3a c2nd cop cuni crab cpw cmpt ccnv cima eqid
      simplll mptpreima ccn cres csn cxp ctopon ad3antrrr toptopon sylib simplr
      simpr eqtrd syl3anc ad2antrr eleqtrd eqeltrrd opeq1 eleq1d elrab sylanbrc
      ssrab2 a1i incom cdif ccld eldif bitri eqeq1d eleq1 notbid anbi12d syl5bb
      wn weq sselda opelxpd vex rexbidva opeq2 syl6bb wb wf f2ndres syl5ss sneq
      ax-mp xpeq2d difin restuni difeq1d syl5eqr sstri eqsstri syl22anc eqeltrd
      sseq1d resttop sylancl syl5eqel mpbird expr ralrimiva wrel opelxp simprbi
      cvv relxp expimpd syl5bi relssdv cid idcn simpllr elunii kgenuni eleqtrrd
      txuni xp2nd cnconst2 fvresi fvex fvconst2 opeq12d mpteq2ia eqcomi txcnmpt
      llycmpkgen kgencn3 cnima syl5eqelr xp1st 1st2nd2 nlly2i simprlr wi elpwid
      simprll syl6ss elpwi ad2antrl anbi1i anass ancom fveq2 rexxp simpl fvresd
      rexbii2 op2nd syl6eq anbi1d ceqsrexbv r19.42v wfn xpss12 fvelimab sylancr
      ffn difss dfss3 ralxp ralsn ralbii 3bitri elrab3 syl6bbr pm5.32da 3bitr4d
      rexnal eqrdv elin2d df-ima resres inss2 ssres2 rnss frn tx2cn xpex simprl
      restabs txrest simprr3 simprr txcmp sseqtrd opncld cmpcld imacmp restcldi
      kgeni hauscmp inss1 syl5sseq isopn2 mpbir2and kgenidm txopn simprr1 elsni
      elkgen opeq2d syl5ibrcom simprr2 vsnid opelxpi syl2imc eleq2 sseq1 rspcev
      ssel syl12anc rexlimdvva mpd eltop2 ex ssrdv iskgen2 ) AHUEIZBUFUGZUHUIIZ
[encoded data, 5520 characters]
      UETYJVUFVUGVUMVUHWJ $.
  $}

  ${
    $d a b f g h u v x R $.  $d a b f g h u v x S $.
    $( If the codomain space is Hausdorff, then the compact-open topology of
       continuous functions is also Hausdorff.  (Contributed by Mario Carneiro,
       19-Mar-2015.) $)
    xkohaus $p |- ( ( R e. Top /\ S e. Haus ) -> ( S ^ko R ) e. Haus ) $=
      ( vf vg vu vv vx va vb vh wcel wa cv cin c0 wceq w3a wrex syl wss ctop co
      cha cxko wne wel wi cuni wral haustop xkotop sylan2 xkouni eleq2d anbi12d
      ccn eqid cfv wn wfn weq wb wf simprl cnf simprr eqfnfv syl2anc necon3abid
      ffn rexnal simpllr adantr ffvelrnd hausnei syl13anc expr syl5bir csn cima
      df-ne crab simp-4l ad4antlr simplr snssd crest ccmp ctopon toptopon sylib
      cpw restsn2 cfn snfi discmp mpbi syl6eqel simprll xkoopn simprlr ad2antrr
      fnsnfv simprr1 eqsstr3d imaeq1 sseq1d elrab sylanbrc simprr2 inrab adantl
      cdm fdm eleqtrrd simprr3 sseq0 expcom imadisj disjsn bitri syl6ib sylnibr
      mt2d ssin rabeq0 sylibr syl5eq eleq2 ineq1 eqeq1d 3anbi13d ineq2 3anbi23d
      ralrimiva rspc2ev syl113anc rexlimdvva syld rexlimdva sylbid ex ralrimivv
      sylbird ishaus ) AUAKZBUCKZLZBAUDUBZUAKZCMZDMZUEZCEUFZDFUFZEMZFMZNZOPZQZF
      UUIREUUIRZUGZDUUIUHZUICUVCUIUUIUCKUUGUUFBUAKZUUJBUJZABUKULUUHUVBCDUVCUVCU
      UHUUKUVCKZUULUVCKZLUUKABUPUBZKZUULUVHKZLZUVBUUHUVIUVFUVJUVGUUHUVHUVCUUKUU
      GUUFUVDUVHUVCPUVEABUUIUUIUQUMULZUNUUHUVHUVCUULUVLUNUOUUHUVKUVBUUHUVKLZUUM
      GMZUUKURZUVNUULURZPZGAUHZUIZUSZUVAUVMUVSUUKUULUVMUUKUVRUTZUULUVRUTZCDVAUV
      SVBUVMUVRBUHZUUKVCZUWAUVMUVIUWDUUHUVIUVJVDZUUKABUVRUWCUVRUQZUWCUQZVESZUVR
      UWCUUKVJSZUVMUVRUWCUULVCZUWBUVMUVJUWJUUHUVIUVJVFZUULABUVRUWCUWFUWGVESZUVR
      UWCUULVJSZGUVRUUKUULVGVHVIUVTUVQUSZGUVRRUVMUVAUVQGUVRVKUVMUWNUVAGUVRUVMUV
      NUVRKZLZUWNUVOHMZKZUVPIMZKZUWQUWSNZOPZQZIBRHBRZUVAUWNUVOUVPUEZUWPUXDUVOUV
      PWAUVMUWOUXEUXDUVMUWOUXELZLZUUGUVOUWCKUVPUWCKUXEUXDUUFUUGUVKUXFVLUXGUVRUW
      CUVNUUKUVMUWDUXFUWHVMUVMUWOUXEVDZVNUXGUVRUWCUVNUULUVMUWJUXFUWLVMUXHVNUVMU
      WOUXEVFUVOUVPIHBUWCUWGVOVPVQVRUWPUXCUVAHIBBUWPUWQBKZUWSBKZLZUXCUVAUWPUXKU
      XCLZLZJMZUVNVSZVTZUWQTZJUVHWBZUUIKUXPUWSTZJUVHWBZUUIKUUKUXRKZUULUXTKZUXRU
      XTNZOPZUVAUXMUXOABUWQJUVRUWFUUFUUGUVKUWOUXLWCZUUGUVDUUFUVKUWOUXLUVEWDZUXM
      UVNUVRUVMUWOUXLWEZWFZUXMAUXOWGUBZUXOWLZWHUXMAUVRWIURKZUWOUYIUYJPUXMUUFUYK
      UYEAUVRUWFWJWKUYGUVNAUVRWMVHUXOWNKUYJWHKUVNWOUXOWPWQWRZUWPUXIUXJUXCWSWTUX
      MUXOABUWSJUVRUWFUYEUYFUYHUYLUWPUXIUXJUXCXAWTUXMUVIUUKUXOVTZUWQTZUYAUVMUVI
      UWOUXLUWEXBUXMUYMUVOVSZUWQUXMUWAUWOUYOUYMPUVMUWAUWOUXLUWIXBUYGUVRUVNUUKXC
      VHUXMUVOUWQUWRUWTUXBUXKUWPXDWFXEUXQUYNJUUKUVHJCVAUXPUYMUWQUXNUUKUXOXFXGXH
      XIUXMUVJUULUXOVTZUWSTZUYBUVMUVJUWOUXLUWKXBUXMUYPUVPVSZUWSUXMUWBUWOUYRUYPP
      UVMUWBUWOUXLUWMXBUYGUVRUVNUULXCVHUXMUVPUWSUWRUWTUXBUXKUWPXJWFXEUXSUYQJUUL
      UVHJDVAUXPUYPUWSUXNUULUXOXFXGXHXIUXMUYCUXQUXSLZJUVHWBZOUXQUXSJUVHXKUXMUYS
      USZJUVHUIUYTOPUXMVUAJUVHUXMUXNUVHKZLZUXPUXATZUYSVUCVUDUVNUXNXMZKZVUCUVNUV
      RVUEUVMUWOUXLVUBVLVUBVUEUVRPZUXMVUBUVRUWCUXNVCVUGUXNABUVRUWCUWFUWGVEUVRUW
      CUXNXNSXLXOVUCVUDUXPOPZVUFUSZVUCUXBVUDVUHUGUXMUXBVUBUWRUWTUXBUXKUWPXPVMVU
      DUXBVUHUXPUXAXQXRSVUHVUEUXONOPVUIUXNUXOXSVUEUVNXTYAYBYDUXPUWQUWSYEYCYOUYS
      JUVHYFYGYHUUTUYAUYBUYDQUYAUUOUXRUUQNZOPZQEFUXRUXTUUIUUIUUPUXRPZUUNUYAUUSV
      UKUUOUUPUXRUUKYIVULUURVUJOUUPUXRUUQYJYKYLUUQUXTPZUUOUYBVUKUYDUYAUUQUXTUUL
      YIVUMVUJUYCOUUQUXTUXRYMYKYNYPYQVQYRYSYTVRUUAUUBUUDUUCCDFEUUIUVCUVCUQUUEXI
      $.
  $}

  ${
    $d f g k n u w x y z R $.  $d f g k n u w x y z S $.
    $d f g k n u w x y z X $.
    xkoptsub.x $e |- X = U. R $.
    xkoptsub.j $e |- J = ( Xt_ ` ( X X. { S } ) ) $.
    $( The compact-open topology is finer than the product topology restricted
       to continuous functions.  (Contributed by Mario Carneiro,
       19-Mar-2015.) $)
    xkoptsub $p |- ( ( R e. Top /\ S e. Top ) ->
      ( J |`t ( R Cn S ) ) C_ ( S ^ko R ) ) $=
      ( vk vu vw vx ctop wcel wa co cv cfv wceq eqid cvv wss vg vy vz vn vf ccn
      crest cuni cmap csn cmpt ccnv cima cmpt2 crn cun cfi ctg cxko cxp cpt wfn
      wral cdif cfn wrex w3a cixp wex cab topopn adantr wf fconstg adantl ptval
      ffn syl syl2anc simpr snssd ptbasfi fvconst2g adantll ixpeq2dva ixpconstg
      fssd unieqd syl2an eqtrd sneqd mpteq1d cnveqd imaeq1d ralrimivw ralrimiva
      jca mpt2eq123 sylancr rneqd uneq12d fveq2d syl5eq oveq1d firest fvex ovex
      fveq2i tgrest mp2an eqtri syl6eqr xkotop cin mpt2exga sylan rnexg restval
      snex unexg sylancl wo elun wb elmapg syl2anr syl5ibr ssrdv elsni sseqtr4d
      cnf sseqin2 sylib xkouni eqeltrd eleq1d bitrd ccmp sylan2b eqsstrd rnmpt2
      crab cres cnvresima resmptd syl5eqr rgenw fnmpt mp1i elpreima fveq1 fvmpt
      abeq2i sselda elmapi simplrl fnsnfv sseq1d syl5bb pm5.32da abbi2dv df-rab
      snss 3syl simpll simprl ctopon toptopon restsn2 snfi discmp mpbi syl6eqel
      cpw simprr xkoopn ineq1 syl5ibrcom rexlimdvva imp jaodan fmptd frn tgfiss
      ) AKLZBKLZMZCABUFNZUGNZBUHZDUINZUJZGHDBIUWKGOZIOZPZUKZULZHOZUMZUNZUOZUPZU
      WHUGNZUQPZURPZBAUSNZUWGUWIUXBUQPZURPZUWHUGNZUXEUWGCUXHUWHUGUWGCDBUJZUTZVA
      PZUXHFUWGUXLUAOZDVBUBOZUXMPZUXNUXKPZLUBDVCUXOUXPUHQUBDUCOVDVCUCVEVFVGJOZU
      BDUXOVHQMUAVIJVJZURPZUXHUWGDALZUXKDVBZUXLUXSQUWEUXTUWFADEVKZVLZUWGDUXJUXK
      VMZUYAUWFUYDUWEDBKVNVOZDUXJUXKVQVRJUBUCDUXRUAUXKAUXRRZVPVSUWGUXRUXGURUWGU
      XRUDDUDOZUXKPZUHZVHZUJZGHDUWMUXKPZIUYJUWOUKZULZUWRUMZUNZUOZUPZUQPZUXGUWGU
      XTDKUXKVMUXRUYSQUYCUWGDUXJKUXKUYEUWGBKUWEUWFVTZWAWGJUBUCIHDUXRUAGUDUXKAUY
      JUYFUYJRWBVSUWGUYRUXBUQUWGUYKUWLUYQUXAUWGUYJUWKUWGUYJUDDUWJVHZUWKUWGUDDUY
      IUWJUWGUYGDLZMUYHBUWFVUBUYHBQUWEDBUYGKWCWDWHWEUWEUXTUWJBLZVUAUWKQUWFUYBBU
      WJUWJRZVKZUDDUWJABWFWIWJZWKUWGUYPUWTUWGDDQUYLBQZUYOUWSQZHUYLVCZMZGDVCUYPU
      WTQDRUWGVUJGDUWGUWMDLZMZVUGVUIUWFVUKVUGUWEDBUWMKWCWDVULVUHHUYLVULUYNUWQUW
      RVULUYMUWPVULIUYJUWKUWOUWGUYJUWKQVUKVUFVLWLWMWNWOWQWPGHDUYLUYODBUWSWRWSWT
      XAXBWJXBWJXCXDUXEUXGUWHUGNZURPZUXIUXDVUMURUWHUXBXEXHUXGSLUWHSLZVUNUXIQUXB
      UQXFABUFXGZUWHUXGSSXIXJXKXLUWGUXFKLZUXCUXFTUXEUXFTABXMZUWGUXCJUXBUXQUWHXN
      ZUKZUOZUXFUWGUXBSLZVUOUXCVVAQUWGUWLSLUXASLZVVBUWKXSUWGUWTSLZVVCUWEUXTUWFV
      VDUYBGHDBUWSAKXOXPUWTSXQVRUWLUXASSXTWSVUPJUWHUXBSSXRYAUWGUXBUXFVUTVMVVAUX
      FTUWGJUXBVUSUXFVUTUXQUXBLUWGUXQUWLLZUXQUXALZYBVUSUXFLZUXQUWLUXAYCUWGVVEVV
      GVVFUWGVVEMZVUSUWHUXFVVHUWHUXQTVUSUWHQVVHUWHUWKUXQUWGUWHUWKTZVVEUWGJUWHUW
      KUXQUWHLUXQUWKLZUWGDUWJUXQVMZUXQABDUWJEVUDYKUWFVUCUXTVVJVVKYDUWEVUEUYBUWJ
      DUXQBAYEYFYGYHZVLVVEUXQUWKQUWGUXQUWKYIVOYJUWHUXQYLYMUWGUWHUXFLVVEUWGUWHUX
      FUHZUXFABUXFUXFRYNUWGVUQVVMUXFLVURUXFVVMVVMRVKVRYOVLYOVVFUWGUXQUWSQZHBVFG
      DVFZVVGVVOJUXAGHJDBUWSUWTUWTRUUAUUMUWGVVOVVGUWGVVNVVGGHDBUWGVUKUWRBLZMZMZ
      VVGVVNUWSUWHXNZUXFLVVRVVSUEOZUWMUJZUMZUWRTZUEUWHUUBZUXFVVRVVSIUWHUWOUKZUL
      ZUWRUMZVWDVVRVVSUWPUWHUUCZULZUWRUMVWGUWHUWRUWPUUDVVRVWIVWFUWRVVRVWHVWEVVR
      IUWKUWHUWOUWGVVIVVQVVLVLZUUEWMWNUUFVVRVWGVVTUWHLZVWCMZUEVJVWDVVRVWLUEVWGV
      VRVVTVWGLZVWKVVTVWEPZUWRLZMZVWLVVRVWEUWHVBZVWMVWPYDUWOSLZIUWHVCVWQVVRVWRI
      UWHUWMUWNXFUUGIUWHUWOVWESVWERZUUHUUIUWHVVTUWRVWEUUJVRVVRVWKVWOVWCVVRVWKMZ
      VWOUWMVVTPZUWRLZVWCVWTVWNVXAUWRVWKVWNVXAQVVRIVVTUWOVXAUWHVWEUWMUWNVVTUUKV
      WSUWMVVTXFZUULVOYPVXBVXAUJZUWRTVWTVWCVXAUWRVXCUVCVWTVXDVWBUWRVWTVVTDVBZVU
      KVXDVWBQVWTVVTUWKLDUWJVVTVMVXEVVRUWHUWKVVTVWJUUNVVTUWJDUUODUWJVVTVQUVDUWG
      VUKVVPVWKUUPDUWMVVTUUQVSUURUUSYQUUTYQUVAVWCUEUWHUVBXLWJVVRVWAABUWRUEDEUWE
      UWFVVQUVEZUWGUWFVVQUYTVLVVRUWMDUWGVUKVVPUVFZWAVVRAVWAUGNZVWAUVNZYRVVRADUV
      GPLZVUKVXHVXIQVVRUWEVXJVXFADEUVHYMVXGUWMADUVIVSVWAVELVXIYRLUWMUVJVWAUVKUV
      LUVMUWGVUKVVPUVOUVPYOVVNVUSVVSUXFUXQUWSUWHUVQYPUVRUVSUVTYSUWAYSVUTRUWBUXB
      UXFVUTUWCVRYTUXCUXFUWDVSYT $.
  $}

  ${
    $d f k v x A $.  $d f k v x R $.  $d f k v x V $.
    $( The compact-open topology on a discrete set coincides with the product
       topology where all the factors are the same.  (Contributed by Mario
       Carneiro, 19-Mar-2015.)  (Revised by Mario Carneiro, 12-Sep-2015.) $)
    xkopt $p |- ( ( R e. Top /\ A e. V ) ->
      ( R ^ko ~P A ) = ( Xt_ ` ( A X. { R } ) ) ) $=
      ( vk vv vx vf ctop wcel wa co cfv cv wss wceq adantl eqid syl2anc cfn wb
      cpw cxko csn cxp cpt crest ccmp crab cima ccn cmpt2 crn distop simpl cuni
      cfi ctg unipw eqcomi xkoval simpr fconst6g adantr pttop cmap wrex cin cab
      elpwi restdis sylan2 adantll eleq1d discmp syl6bbr rabbidva dfin5 syl6eqr
      wf eqidd ctopon toptopon cndis ancoms sylanb rabeq syl mpt2eq123dv rnmpt2
      rneqd syl6eq cif cixp elmapi wral eleq2 imbi2d bibi1d inss1 simprl sseldi
      wi elpwid sselda 2thd imbi1d ffvelrn pm2.21 ifbothda ralbidv2 wfn ffn vex
      wn ex baib wfun cdm ffun fdm sseqtr4d funimass4 3bitr4d rabbi2dva elssuni
      elixp ad2antll ssid sseq1 ifboth sylancl ralrimivw ss2ixp simplr ad2antrr
      cvv uniexg ixpconstg eqsstrd eqtrd sseqtrd sseqin2 sylib eqtr3d ad3antrrr
      inss2 simplrr topopn ifcld simpll fvconst2g eleqtrrd cdif eldifn iffalsed
      sylan eldifi unieqd eqtr4d ptopn eqeltrd syl5ibrcom rexlimdvva ptuniconst
      eleq1 abssdv tgfiss oveq2d restid xkoptsub eqsstr3d eqssd ) BHIZACIZJZBAU
      AZUBKZABUCUDZUELZUVOUVQDEUVPFMZUFKZUGIZFUVPUHZBGMZDMZUIEMZNZGUVPBUJKZUHZU
      KZULZUPLUQLZUVSUVOUVPHIZUVMUVQUWLOUVNUWMUVMACUMPZUVMUVNUNZFEUVPBUWJGDUWCA
      UVPUOAAURUSZUWCQUWJQUTRUVOUVSHIZUWKUVSNUWLUVSNUVOUVNAHUVRVSZUWQUVMUVNVAUV
      MUWRUVNABHVBZVCAUVRCVDRZUVOUWKUVTUWGGBUOZAVEKZUHZOZEBVFDUVPSVGZVFZFVHZUVS
      UVOUWKDEUXEBUXCUKZULUXGUVOUWJUXHUVODEUWCBUWIUXEBUXCUVOUWCUVTSIZFUVPUHUXEU
      VOUWBUXIFUVPUVOUVTUVPIZJZUWBUVTUAZUGIUXIUXKUWAUXLUGUVNUXJUWAUXLOZUVMUXJUV
      NUVTANUXMUVTAVIAUVTCVJVKVLVMUVTVNVOVPFUVPSVQVRUVOBVTUVOUWHUXBOZUWIUXCOUVM
      BUXAWALIZUVNUXNBUXAUXAQZWBUVNUXOUXNABCUXAWCWDWEZUWGGUWHUXBWFWGWHWJDEFUXEB
      UXCUXHUXHQWIWKUVOUXFFUVSUVOUXDUVTUVSIZDEUXEBUVOUWEUXEIZUWFBIZJZJZUXRUXDUX
      CUVSIUYBUXCFAUVTUWEIZUWFUXAWLZWMZUVSUYBUXBUYEVGZUXCUYEUYBUWGGUXBUYEUWDUXB
      IUYBAUXAUWDVSZUWDUYEIZUWGTUWDUXAAWNUYBUYGJZUVTUWDLZUYDIZFAWOZUYJUWFIZFUWE
      WOZUYHUWGUYIUYKUYMFAUWEUYCUVTAIZUYMXBZUYCUYMXBZTUYOUYJUXAIZXBZUYQTUYOUYKX
      BZUYQTUYIUWFUXAUWFUYDOZUYPUYTUYQVUAUYMUYKUYOUWFUYDUYJWPWQWRUXAUYDOZUYSUYT
      UYQVUBUYRUYKUYOUXAUYDUYJWPWQWRUYIUYCJZUYOUYCUYMVUCUYOUYCUYIUWEAUVTUYBUWEA
      NUYGUYBUWEAUYBUXEUVPUWEUVPSWSUVOUXSUXTWTZXAXCVCZXDUYIUYCVAXEXFUYIUYCXNZJU
      YSUYQUYIUYSVUFUYGUYSUYBUYGUYOUYRAUXAUVTUWDXGXOPVCVUFUYQUYIUYCUYMXHPXEXIXJ
      UYIUWDAXKZUYHUYLTUYGVUGUYBAUXAUWDXLPUYHVUGUYLFAUYDUWDGXMYFXPWGUYIUWDXQZUW
      EUWDXRZNUWGUYNTUYGVUHUYBAUXAUWDXSPUYIUWEAVUIVUEUYGVUIAOUYBAUXAUWDXTPYAFUW
      EUWFUWDYBRYCVKYDUYBUYEUXBNUYFUYEOUYBUYEFAUXAWMZUXBUYBUYDUXANZFAWOUYEVUJNU
      YBVUKFAUYBUWFUXANZUXAUXANZVUKUXTVULUVOUXSUWFBYEYGUXAYHUYCVULVUMVUKUWFUXAU
      WFUYDUXAYIUXAUYDUXAYIYJYKYLFAUYDUXAYMWGUYBUVNUXAYPIZVUJUXBOUVMUVNUYAYNZUV
      MVUNUVNUYABHYQYOFAUXACYPYRRUUAUYEUXBUUBUUCUUDUYBAUYDFUVRCUWEVUOUVMUWRUVNU
      YAUWSYOUYBUXESUWEUVPSUUFVUDXAUYBUYOJZUYDBUVTUVRLZVUPUYCUWFUXABUVOUXSUXTUY
      OUUGUVMUXABIUVNUYAUYOBUXAUXPUUHUUEUUIUYBUVMUYOVUQBOZUVMUVNUYAUUJABUVTHUUK
      UUPZUULUYBUVTAUWEUUMIZJZUYDUXAVUQUOVUTUYDUXAOUYBVUTUYCUWFUXAUVTAUWEUUNUUO
      PVVAVUQBVUTUYBUYOVURUVTAUWEUUQVUSVKUURUUSUUTUVAUVTUXCUVSUVEUVBUVCUVFYSUWK
      UVSUVGRYSUVOUVSUVSUWHUFKZUVQUVOVVBUVSUVSUOZUFKZUVSUVOUWHVVCUVSUFUVOUWHUXB
      VVCUXQUVNUVMUXBVVCOABUVSCUXAUVSQZUXPUVDWDYTUVHUVOUWQVVDUVSOUWTUVSHVVCVVCQ
      UVIWGYTUVOUWMUVMVVBUVQNUWNUWOUVPBUVSAUWPVVEUVJRUVKUVL $.
  $}

  ${
    $d f A $.  $d f R $.  $d f S $.  $d f X $.
    xkopjcn.1 $e |- X = U. R $.
    $( Continuity of a projection map from the space of continuous functions.
       (This theorem can be strengthened, to joint continuity in both ` f ` and
       ` A ` as a function on ` ( S ^ko R ) tX R ` , but not without stronger
       assumptions on ` R ` ; see ~ xkofvcn .)  (Contributed by Mario Carneiro,
       3-Feb-2015.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
    xkopjcn $p |- ( ( R e. Top /\ S e. Top /\ A e. X ) ->
      ( f e. ( R Cn S ) |-> ( f ` A ) ) e. ( ( S ^ko R ) Cn S ) ) $=
      ( ctop wcel cfv ccn co cmpt cuni ctopon wss eqid 3adant3 wceq wf syl2anc
      w3a csn cxp cpt crest cv xkotopon topopn 3ad2ant1 fconst6g 3ad2ant2 pttop
      cxko cnf cvv uniexg elmapd syl5ibr ssrdv simp2 ptuniconst sseqtrd restuni
      cmap fveq2d eleqtrd xkoptsub cnss1 resmptd simp3 ptpjcn syl3anc fvconst2g
      cres 3adant1 oveq2d cnrest eqeltrrd sseldd ) BGHZCGHZAEHZUAZECUBUCZUDIZBC
      JKZUEKZCJKZCBUMKZCJKZDWFADUFZIZLZWCWIWGMZNIZHWGWIOZWHWJOWCWIWFNIZWOVTWAWI
      WQHWBBCWIWIPUGQWCWFWNNWCWEGHZWFWEMZOZWFWNRWCEBHZEGWDSZWRVTWAXAWBBEFUHUIZW
      AVTXBWBECGUJUKZEWDBULTWCWFCMZEVDKZWSWCDWFXFWKWFHWKXFHWCEXEWKSWKBCEXEFXEPZ
      UNWCXEEWKUOBWAVTXEUOHWBCGUPUKXCUQURUSWCXAWAXFWSRXCVTWAWBUTECWEBXEWEPZXGVA
      TVBZWFWEWSWSPZVCTVEVFVTWAWPWBBCWEEFXHVGQWGWICWNWNPVHTWCDWSWLLZWFVNZWMWHWC
      DWSWFWLXIVIWCXKWECJKZHWTXLWHHWCXKWEAWDIZJKZXMWCXAXBWBXKXOHXCXDVTWAWBVJDEW
      DAWEBWSXJXHVKVLWCXNCWEJWAWBXNCRVTECAGVMVOVPVFXIWFXKWECWSXJVQTVRVS $.
  $}

  ${
    $d g k v x ph $.  $d g h k v x y R $.  $d g k v x S $.  $d g h k v x y T $.
    $d g h k v x F $.
    xkoco1cn.t $e |- ( ph -> T e. Top ) $.
    xkoco1cn.f $e |- ( ph -> F e. ( R Cn S ) ) $.
    $( If ` F ` is a continuous function, then ` g |-> g o. F ` is a continuous
       function on function spaces.  (The reason we prove this and ~ xkoco2cn
       independently of the more general ~ xkococn is because that requires
       some inconvenient extra assumptions on ` S ` .)  (Contributed by Mario
       Carneiro, 20-Mar-2015.) $)
    xkoco1cn $p |- ( ph ->
      ( g e. ( S Cn T ) |-> ( g o. F ) ) e. ( ( T ^ko S ) Cn ( T ^ko R ) ) ) $=
      ( vx vk vv vy vh ccn co cv wcel cima eqid wa ccom cmpt cxko wf ccnv crest
      ccmp cuni cpw crab wss cmpt2 crn wral cnco sylan wceq wrex xkobval abeq2i
      fmptd ad2antrr imaeq1 imaco syl6eq sseq1d elrab3 syl rabbidva ctop cntop2
      imassrn cnf frn 3syl syl5ss imacmp sylancom simplrr xkoopn eqeltrd imaeq2
      mptpreima eleq1d syl5ibrcom expimpd rexlimdvva syl5bi ralrimiv cvv ctopon
      wb cfv xkotopon syl2anc ovex pwex cxp xkotf ax-mp ssexi a1i cntop1 xkoval
      cfi ctg subbascn mpbir2and ) AECDNOZEPZFUAZUBZDCUCOZDBUCOZNOQXIBDNOZXLUDX
      LUEZIPZRZXMQZIJKBLPUFOUGQLBUHZUIZUJZDMPZJPZRZKPZUKZMXOUJZULZUMZUNAEXIXKXO
      XLAFBCNOQZXJXIQZXKXOQZHFXJBCDUOZUPXLSZVAAXSIYJXQYJQBYDUFOUGQZXQYHUQZTZKDU
      RJYAURZAXSYSIYJLKBDYIMJYBXTIXTSZYBSZYISZUSUTAYRXSJKYADAYDYAQZYFDQZTZTZYPY
      QXSUUFYPTZXSYQXKYHQZEXIUJZXMQUUGUUIXJFYDRZRZYFUKZEXIUJXMUUGUUHUULEXIUUGYL
      TYMUUHUULWLUUGYKYLYMAYKUUEYPHVBZYNUPYGUULMXKXOYCXKUQZYEUUKYFUUNYEXKYDRUUK
      YCXKYDVCXJFYDVDVEVFVGVHVIUUGUUJCDYFECUHZUUOSZACVJQZUUEYPAYKUUQHFBCVKVHZVB
      ADVJQZUUEYPGVBUUGUUJFUMZUUOFYDVLUUGYKXTUUOFUDUUTUUOUKUUMFBCXTUUOYTUUPVMXT
      UUOFVNVOVPUUFYPYKCUUJUFOUGQUUMYDFBCVQVRAUUCUUDYPVSVTWAYQXRUUIXMYQXRXPYHRU
      UIXQYHXPWBEXIXKYHXLYOWCVEWDWEWFWGWHWIAIYJXLXMXNWJXIXOAUUQUUSXMXIWKWMQUURG
      CDXMXMSWNWOYJWJQAYJXOUIZXOBDNWPWQYBDWRZUVAYIUDYJUVAUKLKBDYIMJYBXTYTUUAUUB
      WSUVBUVAYIVNWTXAXBABVJQZUUSXNYJXEWMXFWMUQAYKUVCHFBCXCVHZGLKBDYIMJYBXTYTUU
      AUUBXDWOAUVCUUSXNXOWKWMQUVDGBDXNXNSWNWOXGXH $.
  $}

  ${
    $d g k v x ph $.  $d g h k v x y R $.  $d g k v x S $.  $d g h k v x y T $.
    $d g h k v x F $.
    xkoco2cn.r $e |- ( ph -> R e. Top ) $.
    xkoco2cn.f $e |- ( ph -> F e. ( S Cn T ) ) $.
    $( If ` F ` is a continuous function, then ` g |-> F o. g ` is a continuous
       function on function spaces.  (Contributed by Mario Carneiro,
       23-Mar-2015.) $)
    xkoco2cn $p |- ( ph ->
      ( g e. ( R Cn S ) |-> ( F o. g ) ) e. ( ( S ^ko R ) Cn ( T ^ko R ) ) ) $=
      ( vx vk vv vh co cv wcel cima wss syl2anc eqid syl vy ccom cmpt cxko ccnv
      ccn wf crest ccmp cuni cpw crab cmpt2 crn wral wa simpr adantr cnco fmptd
      wceq wrex xkobval abeq2i ad3antrrr imaeq1 imaco syl6eq sseq1d elrab3 wfun
      wb cdm cnf ffun imassrn frn syl5ss sseqtr4d funimass3 bitrd rabbidva ctop
      fdm ad2antrr cntop1 simplrl elpwid simplrr cnima xkoopn eqeltrd mptpreima
      imaeq2 eleq1d syl5ibrcom expimpd rexlimdvva syl5bi ralrimiv xkotopon ovex
      cvv ctopon cfv pwex cxp xkotf ax-mp ssexi a1i cfi cntop2 xkoval mpbir2and
      ctg subbascn ) AEBCUFMZFENZUBZUCZCBUDMZDBUDMZUFMOXRBDUFMZYAUGYAUEZINZPZYB
      OZIJKBUANUHMUIOUABUJZUKZULZDLNZJNZPZKNZQZLYDULZUMZUNZUOAEXRXTYDYAAXSXROZU
      PYTFCDUFMOZXTYDOZAYTUQAUUAYTHURXSFBCDUSZRYASZUTAYHIYSYFYSOBYMUHMUIOZYFYQV
      AZUPZKDVBJYJVBZAYHUUHIYSUAKBDYRLJYKYIIYISZYKSZYRSZVCVDAUUGYHJKYJDAYMYJOZY
      ODOZUPZUPZUUEUUFYHUUOUUEUPZYHUUFXTYQOZEXRULZYBOUUPUURXSYMPZFUEYOPZQZEXRUL
      YBUUPUUQUVAEXRUUPYTUPZUUQFUUSPZYOQZUVAUVBUUBUUQUVDVLUVBYTUUAUUBUUPYTUQZAU
      UAUUNUUEYTHVEUUCRYPUVDLXTYDYLXTVAZYNUVCYOUVFYNXTYMPUVCYLXTYMVFFXSYMVGVHVI
      VJTUVBFVKZUUSFVMZQUVDUVAVLUVBCUJZDUJZFUGZUVGAUVKUUNUUEYTAUUAUVKHFCDUVIUVJ
      UVISZUVJSVNTVEZUVIUVJFVOTUVBUUSUVIUVHUVBUUSXSUNZUVIXSYMVPUVBYIUVIXSUGZUVN
      UVIQUVBYTUVOUVEXSBCYIUVIUUIUVLVNTYIUVIXSVQTVRUVBUVKUVHUVIVAUVMUVIUVJFWDTV
      SUUSYOFVTRWAWBUUPYMBCUUTEYIUUIABWCOZUUNUUEGWEACWCOZUUNUUEAUUAUVQHFCDWFTZW
      EUUPYMYIAUULUUMUUEWGWHUUOUUEUQUUPUUAUUMUUTCOAUUAUUNUUEHWEAUULUUMUUEWIYOFC
      DWJRWKWLUUFYGUURYBUUFYGYEYQPUURYFYQYEWNEXRXTYQYAUUDWMVHWOWPWQWRWSWTAIYSYA
      YBYCXCXRYDAUVPUVQYBXRXDXEOGUVRBCYBYBSXARYSXCOAYSYDUKZYDBDUFXBXFYKDXGZUVSY
      RUGYSUVSQUAKBDYRLJYKYIUUIUUJUUKXHUVTUVSYRVQXIXJXKAUVPDWCOZYCYSXLXEXPXEVAG
      AUUAUWAHFCDXMTZUAKBDYRLJYKYIUUIUUJUUKXNRAUVPUWAYCYDXDXEOGUWBBDYCYCSXARXQX
      O $.
  $}

  ${
    $d a k s u v w x y z A $.  $d b k s u v w x y z B $.  $d k s u v w x ph $.
    $d a b f g h k u v w x y z R $.  $d a b f g k s u v w x y z S $.
    $d b h k s u v w x y z K $.  $d a b f g h k u v w x y z T $.
    $d a b k u v w x y z F $.  $d a h k s u v w x y z V $.
    xkococn.1 $e |- F = ( f e. ( S Cn T ) , g e. ( R Cn S ) |-> ( f o. g ) ) $.
    ${
      xkococn.s $e |- ( ph -> S e. N-Locally Comp ) $.
      xkococn.k $e |- ( ph -> K C_ U. R ) $.
      xkococn.c $e |- ( ph -> ( R |`t K ) e. Comp ) $.
      xkococn.v $e |- ( ph -> V e. T ) $.
      xkococn.a $e |- ( ph -> A e. ( S Cn T ) ) $.
      xkococn.b $e |- ( ph -> B e. ( R Cn S ) ) $.
      xkococn.i $e |- ( ph -> ( ( A o. B ) " K ) C_ V ) $.
      $( Continuity of the composition operation as a function on continuous
         function spaces.  (Contributed by Mario Carneiro, 20-Mar-2015.)
         (Revised by Mario Carneiro, 22-Aug-2015.) $)
      xkococnlem $p |- ( ph -> E. z e. ( ( T ^ko S ) tX ( S ^ko R ) )
        ( <. A , B >. e. z /\
          z C_ ( `' F " { h e. ( R Cn T ) | ( h " K ) C_ V } ) ) ) $=
        ( vw vk vy vx vs vu va vb vv cima crest co cuni cv wceq ccnv cpw wf cfv
        cnt wss ccmp wcel wa wral wex cfn cin wrex cop ccn crab cxko ctx imacmp
        wel syl2anc w3a cnlly adantr cnima ccom imaco syl5eqssr wfun cdm wb cnf
        eqid ffun 3syl crn imassrn frn syl5ss fdm funimass3 mpbid sselda nlly2i
        sseqtr4d syl3anc ctop cvv nllytop ad3antrrr simprl sstrd syl22anc eleq2
        syl sseq1 anbi12d rspcev syl12anc mpd sylib cxp ad2antrr xkotop simprrl
        ciun simprrr ralimi xkoopn eqsstrd iunss ex ralimdv imaeq1 sseq1d elrab
        sylc sylanbrc ss2iun vex coex ssrab2 mp2an imaexg elrestr simprr1 elind
        simpllr inss1 elpwi elssuni simprr2 ssntr simprr3 jca anbi1d rexlimdvaa
        ad2antlr reximdva rexcom r19.42v rexbii bitri ralrimiva restuni raleqdv
        fveq2 sseq2d eleq1d cmpcovf wi eqeq1d biimpar cntop2 cntop1 sspwuni wfn
        oveq2 fniunfv oveq2d inss2 simplr sseldi fiuncmp eqeltrrd ntropn iunopn
        ffn simpr txopn imaiun imaeq2d syl5eqr 3ad2ant2 simp3 r19.21bi ralbidva
        simpl1 3bitr4g mpbird uniiun syl6eq simpl opelxpi anbi12i simprll coeq1
        eqsstr3d coeq2 ovmpt2 ntrss2 sseqtrd imass2 simprlr syl5eqss ralrimivva
        cnco eqeltrd sylan2b mpt2fun xpss12 dmmpt2 sseqtr4i sylibr expr exlimdv
        funimassov syldan expimpd rexlimdva ) AFDLUKZULUMZUNZUBUOZUNZUPZUYKCUQM
[encoded data, 4880 characters]
        UNWUOVUMXKVUNWUOVVAXMXNXOXPUYBUYCUYEUYFUYGXQ $.
    $}

    $( Continuity of the composition operation as a function on continuous
       function spaces.  (Contributed by Mario Carneiro, 20-Mar-2015.)
       (Revised by Mario Carneiro, 22-Aug-2015.) $)
    xkococn $p |- ( ( R e. Top /\ S e. N-Locally Comp /\ T e. Top ) ->
      F e. ( ( ( T ^ko S ) tX ( S ^ko R ) ) Cn ( T ^ko R ) ) ) $=
      ( vx vk vv vy vh vz wcel co cv wral wa syl2anc cfv va ctop ccmp cnlly w3a
      vb cxko ctx ccn cxp wf ccnv cima crest cuni cpw crab wss cmpt2 crn simprr
      ccom simprl cnco ralrimivva fmpt2 sylib wceq wrex eqid rnmpt2 eleq2i abid
      cab oveq2 eleq1d rexrab 3bitri wi wfn wb ad2antrr ffn elpreima 3syl coeq1
      cop coeq2 ovmpt2 adantl imaeq1 sseq1d elrab simprbi simp2 ad3antrrr elpwi
      vex coex ad2antrl simplr simprll simprlr xkococnlem expr syl5 fveq2 df-ov
      sylbid syl6eqr eleq1 anbi1d rexbidv imbi12d ralxp sylibr r19.21bi expimpd
      ralrimiv nllytop 3ad2ant2 simp3 xkotop simp1 eltop2 syl mpbird syl5ibrcom
      txtop imaeq2 rexlimdva anassrs syl5bi cvv ctopon xkotopon txtopon 3adant2
      ovex pwex xkotf frn ax-mp ssexi a1i cfi ctg xkoval subbascn mpbir2and ) A
      UBNZBUCUDNZCUBNZUEZFCBUGOZBAUGOZUHOZCAUGOZUIONBCUIOZABUIOZUJZACUIOZFUKZFU
      LZHPZUMZUUQNZHIJAKPZUNOZUCNZKAUOZUPZUQZCLPZIPZUMZJPZURZLUVBUQZUSZUTZQUUND
      PZEPZVBZUVBNZEUUTQDUUSQUVCUUNUWEDEUUSUUTUUNUWBUUSNZUWCUUTNZRRUWGUWFUWEUUN
      UWFUWGVAUUNUWFUWGVCUWCUWBABCVDSVEDEUUSUUTUWDUVBFGVFVGZUUNUVGHUWAUVEUWANZA
      UVOUNOZUCNZUVEUVSVHZJCVIZRZIUVLVIZUUNUVGUWIUVEUWMIUVMVIZHVNZNUWPUWOUWAUWQ
      UVEIJHUVMCUVSUVTUVTVJZVKVLUWPHVMUVJUWKUWMIKUVLUVHUVOVHUVIUWJUCUVHUVOAUNVO
      VPVQVRUUNUWNUVGIUVLUUNUVOUVLNZRUWKUWMUVGUUNUWSUWKUWMUVGVSUUNUWSUWKRZRZUWL
      UVGJCUXAUVQCNZRZUVGUWLUVDUVSUMZUUQNZUXCUXEUVHMPZNZUXFUXDURZRZMUUQVIZKUXDQ
      ZUXCUXJKUXDUXCUVHUXDNZUVHUVANZUVHFTZUVSNZRZUXJUXCUVCFUVAVTUXLUXPWAUUNUVCU
      WTUXBUWHWBUVAUVBFWCUVAUVHUVSFWDWEUXCUXMUXOUXJUXCUXOUXJVSZKUVAUXCUAPZUFPZF
      OZUVSNZUXRUXSWGZUXFNZUXHRZMUUQVIZVSZUFUUTQUAUUSQUXQKUVAQUXCUYFUAUFUUSUUTU
      XCUXRUUSNZUXSUUTNZRZRZUYAUXRUXSVBZUVSNZUYEUYJUXTUYKUVSUYIUXTUYKVHUXCDEUXR
      UXSUUSUUTUWDUYKFUXRUWCVBUWBUXRUWCWFUWCUXSUXRWHGUXRUXSUAWRUFWRWSWIWJVPUYLU
      YKUVOUMZUVQURZUYJUYEUYLUYKUVBNUYNUVRUYNLUYKUVBUVNUYKVHUVPUYMUVQUVNUYKUVOW
      KWLWMWNUXCUYIUYNUYEUXCUYIUYNRZRMUXRUXSABCDELFUVOUVQGUUNUULUWTUXBUYOUUKUUL
      UUMWOWPUXAUVOUVKURZUXBUYOUWSUYPUUNUWKUVOUVKWQWTWBUXAUWKUXBUYOUUNUWSUWKVAW
      BUXAUXBUYOXAUXCUYGUYHUYNXBUXCUYGUYHUYNXCUXCUYIUYNVAXDXEXFXIVEUXQUYFKUAUFU
      USUUTUVHUYBVHZUXOUYAUXJUYEUYQUXNUXTUVSUYQUXNUYBFTUXTUVHUYBFXGUXRUXSFXHXJV
      PUYQUXIUYDMUUQUYQUXGUYCUXHUVHUYBUXFXKXLXMXNXOXPXQXRXIXSUXCUUQUBNZUXEUXKWA
      UUNUYRUWTUXBUUNUUOUBNZUUPUBNZUYRUUNBUBNZUUMUYSUULUUKVUAUUMUCBXTYAZUUKUULU
      UMYBZBCYCSUUNUUKVUAUYTUUKUULUUMYDZVUBABYCSUUOUUPYISWBKMUXDUUQYEYFYGUWLUVF
      UXDUUQUVEUVSUVDYJVPYHYKYLXRYKYMXSUUNHUWAFUUQUURYNUVAUVBUUNUUOUUSYOTNZUUPU
      UTYOTNZUUQUVAYOTNUUNVUAUUMVUEVUBVUCBCUUOUUOVJYPSUUNUUKVUAVUFVUDVUBABUUPUU
      PVJYPSUUOUUPUUSUUTYQSUWAYNNUUNUWAUVBUPZUVBACUIYSYTUVMCUJZVUGUVTUKUWAVUGUR
      KJACUVTLIUVMUVKUVKVJZUVMVJZUWRUUAVUHVUGUVTUUBUUCUUDUUEUUKUUMUURUWAUUFTUUG
      TVHUULKJACUVTLIUVMUVKVUIVUJUWRUUHYRUUKUUMUURUVBYOTNUULACUURUURVJYPYRUUIUU
      J $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Continuous function-builders
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d y z A $.  $d z B $.  $d y z D $.  $d x y F $.  $d x ph $.  $d x y J $.
    $d x y z M $.  $d x y z X $.  $d x y z Y $.  $d x y z Z $.  $d x y K $.
    $d x y L $.  $d x y P $.
    cnmptid.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    $( The identity function is continuous.  (Contributed by Mario Carneiro,
       5-May-2014.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
    cnmptid $p |- ( ph -> ( x e. X |-> x ) e. ( J Cn J ) ) $=
      ( vy cv cmpt cid cres ccn co cvv weq copab equcom opabbii dfid3 mptv wcel
      3eqtr4i reseq1i wss wceq ssv resmpt ax-mp eqtri ctopon cfv idcn syl5eqelr
      syl ) ABDBGZHZIDJZCCKLZUPBMUNHZDJZUOIURDBFNZBFOFBNZBFOIURUTVABFBFPQBFRBFU
      NSUAUBDMUCUSUOUDDUEBMDUNUFUGUHACDUIUJTUPUQTECDUKUMUL $.

    ${
      cnmptc.k $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
      cnmptc.p $e |- ( ph -> P e. Y ) $.
      $( A constant function is continuous.  (Contributed by Mario Carneiro,
         5-May-2014.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
      cnmptc $p |- ( ph -> ( x e. X |-> P ) e. ( J Cn K ) ) $=
        ( cmpt csn cxp ccn co fconstmpt ctopon cfv wcel cnconst2 syl5eqelr
        syl3anc ) ABFCKFCLMZDENOZBFCPADFQRSEGQRSCGSUCUDSHIJCDEFGTUBUA $.
    $}

    cnmpt11.a $e |- ( ph -> ( x e. X |-> A ) e. ( J Cn K ) ) $.
    ${
      $d x B $.  $d y z C $.
      cnmpt11.k $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
      cnmpt11.b $e |- ( ph -> ( y e. Y |-> B ) e. ( K Cn L ) ) $.
      cnmpt11.c $e |- ( y = A -> B = C ) $.
      $( The composition of continuous functions is continuous.  (Contributed
         by Mario Carneiro, 5-May-2014.)  (Revised by Mario Carneiro,
         22-Aug-2015.) $)
      cnmpt11 $p |- ( ph -> ( x e. X |-> C ) e. ( J Cn L ) ) $=
        ( wceq cfv wcel syl2anc vz cmpt ccom co cv wral wa simpr wf ctopon cnf2
        ccn syl3anc eqid fmpt sylibr r19.21bi fvmpt2 fveq2d cntop2 syl toptopon
        cuni ctop sylib adantr eleq1d rspcv sylc fvmptg eqtrd 3eqtr4d ralrimiva
        fvco3 sylan nfv nfcv nfmpt1 nfco nffv nfeq fveq2 eqeq12d cbvral wfn fco
        wb ffn fmptd eqfnfv mpbird cnco eqeltrrd ) ACKEUBZBJDUBZUCZBJFUBZGIULUD
        ZAWPWQQZUAUEZWPRZWTWQRZQZUAJUFZABUEZWPRZXEWQRZQZBJUFXDAXHBJAXEJSZUGZXEW
        ORZWNRZFXFXGXJXLDWNRZFXJXKDWNXJXIDKSZXKDQAXIUHZAXNBJAJKWOUIZXNBJUFAGJUJ
        RSHKUJRSZWOGHULUDSZXPLNMWOGHJKUKUMZBJKDWOWOUNZUOUPUQZBJDKWOXTURTUSXJXNF
        IVCZSZXMFQYAXJXNEYBSZCKUFZYCYAAYEXIAKYBWNUIZYEAXQIYBUJRSZWNHIULUDSZYFNA
        IVDSZYGAYHYIOWNHIUTVAIYBYBUNVBVEOWNHIKYBUKUMZCKYBEWNWNUNZUOUPVFYDYCCDKC
        UEDQEFYBPVGVHVIZCDEFKYBWNPYKVJTVKAXPXIXFXLQXSJKXEWNWOVNVOXJXIYCXGFQXOYL
        BJFYBWQWQUNZURTVLVMXHXCBUAJXHUAVPBXAXBBWTWPBWNWOBWNVQBJDVRVSBWTVQZVTBWT
        WQBJFVRYNVTWAXEWTQXFXAXGXBXEWTWPWBXEWTWQWBWCWDVEAWPJWEZWQJWEZWSXDWGAJYB
        WPUIZYOAYFXPYQYJXSJKYBWNWOWFTJYBWPWHVAAJYBWQUIYPABJFYBWQYLYMWIJYBWQWHVA
        UAJWPWQWJTWKAXRYHWPWRSMOWOWNGHIWLTWM $.
    $}

    ${
      cnmpt11f.f $e |- ( ph -> F e. ( K Cn L ) ) $.
      $( The composition of continuous functions is continuous.  (Contributed
         by Mario Carneiro, 5-May-2014.)  (Revised by Mario Carneiro,
         22-Aug-2015.) $)
      cnmpt11f $p |- ( ph -> ( x e. X |-> ( F ` A ) ) e. ( J Cn L ) ) $=
        ( vy cfv cuni wcel cmpt ccn co syl eqid cv ctopon cntop2 toptopon sylib
        ctop wf cnf feqmptd eqeltrrd fveq2 cnmpt11 ) ABLCLUAZDMZCDMEFGHFNZIJAFU
        FOZFUOUBMOABHCPZEFQROUPJUQEFUCSFUOUOTZUDUEADLUOUNPFGQRZALUOGNZDADUSOUOU
        TDUGKDFGUOUTURUTTUHSUIKUJUMCDUKUL $.
    $}

    $d y B $.  $d x C $.
    cnmpt1t.b $e |- ( ph -> ( x e. X |-> B ) e. ( J Cn L ) ) $.
    $( The composition of continuous functions is continuous.  (Contributed by
       Mario Carneiro, 5-May-2014.)  (Revised by Mario Carneiro,
       22-Aug-2015.) $)
    cnmpt1t $p |- ( ph ->
                    ( x e. X |-> <. A , B >. ) e. ( J Cn ( K tX L ) ) ) $=
      ( vy cuni cmpt cfv cop co wcel wceq eqid cv ctx ctopon toponuni mpteq1 wa
      ccn 3syl simpr wf wral ctop cntop2 syl toptopon sylib cnf2 syl3anc sylibr
      fmpt r19.21bi fvmpt2 syl2anc opeq12d mpteq2dva eqtr3d nfcv nffvmpt1 fveq2
      nfop cbvmpt txcnmpt eqeltrrd ) ABEMZBUAZBHCNZOZVOBHDNZOZPZNZBHCDPZNZEFGUB
      QUGQZABHVTNZWAWCAEHUCORZHVNSWEWASIHEUDBHVNVTUEUHABHVTWBAVOHRZUFZVQCVSDWHW
      GCFMZRZVQCSAWGUIZAWJBHAHWIVPUJZWJBHUKAWFFWIUCORZVPEFUGQRZWLIAFULRZWMAWNWO
      JVPEFUMUNFWIWITUOUPJVPEFHWIUQURBHWICVPVPTZUTUSVABHCWIVPWPVBVCWHWGDGMZRZVS
      DSWKAWRBHAHWQVRUJZWRBHUKAWFGWQUCORZVREGUGQRZWSIAGULRZWTAXAXBKVREGUMUNGWQW
      QTUOUPKVREGHWQUQURBHWQDVRVRTZUTUSVABHDWQVRXCVBVCVDVEVFAWNXAWAWDRJKLFGEVPV
      RWAVNVNTBLVNVTLUAZVPOZXDVROZPLVTVGBXEXFBHCXDVHBHDXDVHVJVOXDSVQXEVSXFVOXDV
      PVIVOXDVRVIVDVKVLVCVM $.

    ${
      cnmpt12f.f $e |- ( ph -> F e. ( ( K tX L ) Cn M ) ) $.
      $( The composition of continuous functions is continuous.  (Contributed
         by Mario Carneiro, 5-May-2014.)  (Revised by Mario Carneiro,
         22-Aug-2015.) $)
      cnmpt12f $p |- ( ph -> ( x e. X |-> ( A F B ) ) e. ( J Cn M ) ) $=
        ( co cmpt cop cfv ccn df-ov mpteq2i ctx cnmpt1t cnmpt11f syl5eqel ) ABJ
        CDEOZPBJCDQZERZPFISOBJUFUHCDETUAABUGEFGHUBOIJKABCDFGHJKLMUCNUDUE $.
    $}

    cnmpt12.k $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    cnmpt12.l $e |- ( ph -> L e. ( TopOn ` Z ) ) $.
    cnmpt12.c $e |- ( ph ->
                      ( y e. Y , z e. Z |-> C ) e. ( ( K tX L ) Cn M ) ) $.
    cnmpt12.d $e |- ( ( y = A /\ z = B ) -> C = D ) $.
    $( The composition of continuous functions is continuous.  (Contributed by
       Mario Carneiro, 12-Jun-2014.)  (Revised by Mario Carneiro,
       22-Aug-2015.) $)
    cnmpt12 $p |- ( ph -> ( x e. X |-> D ) e. ( J Cn M ) ) $=
      ( cmpt2 co cmpt ccn cv wcel wa cuni wceq wf wral ctopon cnf2 syl3anc eqid
      cfv fmpt sylibr r19.21bi wi wal jca cxp ctx txtopon syl2anc ctop toptopon
      cntop2 sylib fmpt2 r2al adantr eleq1 bi2anan9 eleq1d imbi12d spc2gv syl3c
      syl ovmpt2ga mpteq2dva cnmpt12f eqeltrrd ) ABMEFCDNOGUCZUDZUEBMHUEILUFUDA
      BMWHHABUGMUHZUIZENUHZFOUHZHLUJZUHZWHHUKAWKBMAMNBMEUEZULZWKBMUMAIMUNURUHZJ
      NUNURUHZWOIJUFUDUHWPPSQWOIJMNUOUPBMNEWOWOUQUSUTVAZAWLBMAMOBMFUEZULZWLBMUM
      AWQKOUNURUHZWTIKUFUDUHXAPTRWTIKMOUOUPBMOFWTWTUQUSUTVAZWJWKWLUIZCUGZNUHZDU
      GZOUHZUIZGWMUHZVBZDVCCVCZXDWNWJWKWLWSXCVDZAXLWIAXJDOUMCNUMZXLANOVEZWMWGUL
      ZXNAJKVFUDZXOUNURUHZLWMUNURUHZWGXQLUFUDUHZXPAWRXBXRSTJKNOVGVHALVIUHZXSAXT
      YAUAWGXQLVKWBLWMWMUQVJVLUAWGXQLXOWMUOUPCDNOGWMWGWGUQZVMUTXJCDNOVNVLVOXMXK
      XDWNVBCDEFNOXEEUKZXGFUKZUIZXIXDXJWNYCXFWKYDXHWLXEENVPXGFOVPVQYEGHWMUBVRVS
      VTWACDEFNOGHWGWMUBYBWCUPWDABEFWGIJKLMPQRUAWEWF $.
  $}

  ${
    $d u v w z A $.  $d u v w B $.  $d u v C $.  $d w z D $.  $d v z J $.
    $d w x y z F $.  $d v w x y z L $.  $d v x y z ph $.  $d u v w x y z X $.
    $d v w x y z M $.  $d v w x y z N $.  $d x y z P $.  $d u v w x y z Y $.
    $d v z K $.  $d v w x y z W $.  $d u v w x y z Z $.
    cnmpt21.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    cnmpt21.k $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    $( The projection onto the first coordinate is continuous.  (Contributed by
       Mario Carneiro, 6-May-2014.)  (Revised by Mario Carneiro,
       22-Aug-2015.) $)
    cnmpt1st $p |- ( ph ->
                     ( x e. X , y e. Y |-> x ) e. ( ( J tX K ) Cn J ) ) $=
      ( vz cv c1st co cfv cmpt wfn cvv vex ctopon wcel cxp cres ctx ccn wss wfo
      cmpt2 wceq fo1st fofn ax-mp ssv fnssres mp2an dffn5 fvres mpteq2ia op1std
      mpbi mpt2mpt 3eqtri tx1cn syl2anc syl5eqelr ) ABCFGBKZUGZLFGUAZUBZDEUCMDU
      DMZVHJVGJKZVHNZOZJVGVJLNZOVFVHVGPZVHVLUHLQPZVGQUEVNQQLUFVOUIQQLUJUKVGULQV
      GLUMUNJVGVHUOUSJVGVKVMVJVGLUPUQBCJFGVMVEVECKVJBRCRURUTVAADFSNTEGSNTVHVITH
      IDEFGVBVCVD $.

    $( The projection onto the second coordinate is continuous.  (Contributed
       by Mario Carneiro, 6-May-2014.)  (Revised by Mario Carneiro,
       22-Aug-2015.) $)
    cnmpt2nd $p |- ( ph ->
                     ( x e. X , y e. Y |-> y ) e. ( ( J tX K ) Cn K ) ) $=
      ( vz cv c2nd co cfv cmpt wfn cvv vex ctopon wcel cxp cres ctx ccn wss wfo
      cmpt2 wceq fo2nd fofn ax-mp ssv fnssres mp2an dffn5 fvres mpteq2ia op2ndd
      mpbi mpt2mpt 3eqtri tx2cn syl2anc syl5eqelr ) ABCFGCKZUGZLFGUAZUBZDEUCMEU
      DMZVHJVGJKZVHNZOZJVGVJLNZOVFVHVGPZVHVLUHLQPZVGQUEVNQQLUFVOUIQQLUJUKVGULQV
      GLUMUNJVGVHUOUSJVGVKVMVJVGLUPUQBCJFGVMVEBKVEVJBRCRURUTVAADFSNTEGSNTVHVITH
      IDEFGVBVCVD $.

    ${
      cnmpt2c.l $e |- ( ph -> L e. ( TopOn ` Z ) ) $.
      cnmpt2c.p $e |- ( ph -> P e. Z ) $.
      $( A constant function is continuous.  (Contributed by Mario Carneiro,
         5-May-2014.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
      cnmpt2c $p |- ( ph -> ( x e. X , y e. Y |-> P ) e.
                            ( ( J tX K ) Cn L ) ) $=
        ( vz co cv ctopon cfv wcel cmpt2 cxp cmpt ctx ccn eqidd mpt2mpt txtopon
        cop wceq syl2anc cnmptc syl5eqelr ) ABCHIDUAOHIUBZDUCEFUDPZGUEPBCOHIDDO
        QBQCQUIUJDUFUGAODUOGUNJAEHRSTFIRSTUOUNRSTKLEFHIUHUKMNULUM $.
    $}

    cnmpt21.a $e |- ( ph ->
                      ( x e. X , y e. Y |-> A ) e. ( ( J tX K ) Cn L ) ) $.
    ${
      $d x y B $.  $d w z C $.
      cnmpt21.l $e |- ( ph -> L e. ( TopOn ` Z ) ) $.
      cnmpt21.b $e |- ( ph -> ( z e. Z |-> B ) e. ( L Cn M ) ) $.
      cnmpt21.c $e |- ( z = A -> B = C ) $.
      $( The composition of continuous functions is continuous.  (Contributed
         by Mario Carneiro, 5-May-2014.)  (Revised by Mario Carneiro,
         22-Aug-2015.) $)
      cnmpt21 $p |- ( ph ->
                      ( x e. X , y e. Y |-> C ) e. ( ( J tX K ) Cn M ) ) $=
        ( vw vu vv cmpt cmpt2 ccom ctx co ccn wceq cv cfv cxp wral cop wa df-ov
        wcel simprl simprr wi wf ctopon txtopon syl2anc cnf2 syl3anc eqid fmpt2
        sylibr rsp2 syl imp ovmpt4g fveq2d cuni ctop cntop2 toptopon sylib fmpt
        syl5eqr adantr eleq1d rspcv sylc fvmptg eqtrd opelxpi syl2an ralrimivva
        fvco3 3eqtr4d nfcv nfmpt21 nfco nffv nfral nfmpt22 opeq2 eqeq12d cbvral
        nfv nfeq opeq1 ralbidv syl5bb fveq2 ralxp wfn wb fco eqfnfv mpbird cnco
        ffn eqeltrrd ) ADNFUDZBCLMEUEZUFZBCLMGUEZHIUGUHZKUIUHZAXTYAUJZUAUKZXTUL
        ZYEYAULZUJZUALMUMZUNZAUBUKZUCUKZUOZXTULZYMYAULZUJZUCMUNZUBLUNZYJABUKZCU
        KZUOZXTULZUUAYAULZUJZCMUNZBLUNYRAUUDBCLMAYSLURZYTMURZUPZUPZUUAXSULZXRUL
        ZGUUBUUCUUIUUKEXRULZGUUIUUJEXRUUIUUJYSYTXSUHZEYSYTXSUQUUIUUFUUGENURZUUM
        EUJAUUFUUGUSZAUUFUUGUTZAUUHUUNAUUNCMUNBLUNZUUHUUNVAAYINXSVBZUUQAYBYIVCU
        LURZJNVCULURZXSYBJUIUHURZUURAHLVCULURIMVCULURUUSOPHILMVDVERQXSYBJYINVFV
        GZBCLMENXSXSVHZVIVJUUNBCLMVKVLVMZBCLMEXSNUVCVNVGWBVOUUIUUNGKVPZURZUULGU
        JUVDUUIUUNFUVEURZDNUNZUVFUVDAUVHUUHANUVEXRVBZUVHAUUTKUVEVCULURZXRJKUIUH
        URZUVIRAKVQURZUVJAUVKUVLSXRJKVRVLKUVEUVEVHVSVTSXRJKNUVEVFVGZDNUVEFXRXRV
        HZWAVJWCUVGUVFDENDUKEUJFGUVETWDWEWFZDEFGNUVEXRTUVNWGVEWHAUURUUAYIURUUBU
        UKUJUUHUVBYSYTLMWIYINUUAXRXSWLWJUUIUUCYSYTYAUHZGYSYTYAUQUUIUUFUUGUVFUVP
        GUJUUOUUPUVOBCLMGYAUVEYAVHZVNVGWBWMWKUUEYQBUBLUUEUBXCYPBUCMBMWNBYNYOBYM
        XTBXRXSBXRWNBCLMEWOWPBYMWNZWQBYMYABCLMGWOUVRWQXDWRUUEYSYLUOZXTULZUVSYAU
        LZUJZUCMUNYSYKUJZYQUUDUWBCUCMUUDUCXCCUVTUWACUVSXTCXRXSCXRWNBCLMEWSWPCUV
        SWNZWQCUVSYABCLMGWSUWDWQXDYTYLUJZUUBUVTUUCUWAUWEUUAUVSXTYTYLYSWTZVOUWEU
        UAUVSYAUWFVOXAXBUWCUWBYPUCMUWCUVTYNUWAYOUWCUVSYMXTYSYKYLXEZVOUWCUVSYMYA
        UWGVOXAXFXGXBVTYHYPUAUBUCLMYEYMUJYFYNYGYOYEYMXTXHYEYMYAXHXAXIVJAXTYIXJZ
        YAYIXJZYDYJXKAYIUVEXTVBZUWHAUVIUURUWJUVMUVBYINUVEXRXSXLVEYIUVEXTXPVLAYI
        UVEYAVBZUWIAUVFCMUNBLUNUWKAUVFBCLMUVOWKBCLMGUVEYAUVQVIVTYIUVEYAXPVLUAYI
        XTYAXMVEXNAUVAUVKXTYCURQSXSXRYBJKXOVEXQ $.
    $}

    ${
      cnmpt21f.f $e |- ( ph -> F e. ( L Cn M ) ) $.
      $( The composition of continuous functions is continuous.  (Contributed
         by Mario Carneiro, 5-May-2014.)  (Revised by Mario Carneiro,
         22-Aug-2015.) $)
      cnmpt21f $p |- ( ph ->
                  ( x e. X , y e. Y |-> ( F ` A ) ) e. ( ( J tX K ) Cn M ) ) $=
        ( vz cfv cuni wcel syl cv ctop ctopon ccn co cntop1 eqid toptopon sylib
        cmpt wf cnf feqmptd eqeltrrd fveq2 cnmpt21 ) ABCPDPUAZEQZDEQFGHIJKHRZLM
        NAHUBSZHUSUCQSAEHIUDUEZSZUTOEHIUFTHUSUSUGZUHUIAEPUSURUJVAAPUSIRZEAVBUSV
        DEUKOEHIUSVDVCVDUGULTUMOUNUQDEUOUP $.
    $}

    $d z B $.  $d x y C $.
    cnmpt2t.b $e |- ( ph ->
                      ( x e. X , y e. Y |-> B ) e. ( ( J tX K ) Cn M ) ) $.
    $( The composition of continuous functions is continuous.  (Contributed by
       Mario Carneiro, 5-May-2014.)  (Revised by Mario Carneiro,
       22-Aug-2015.) $)
    cnmpt2t $p |- ( ph ->
       ( x e. X , y e. Y |-> <. A , B >. ) e. ( ( J tX K ) Cn ( L tX M ) ) ) $=
      ( vz co cfv wceq wcel vu vv ctx cuni cmpt2 cop cmpt ccn cxp fveq2 syl6eqr
      cv df-ov opeq12d mpt2mpt nfcv nfmpt21 nfov nfop nfmpt22 wa oveq12 cbvmpt2
      eqtri ctopon txtopon syl2anc toponuni mpteq1 3syl w3a simp2 simp3 wral wi
      ctop cntop2 syl eqid toptopon sylib cnf2 syl3anc fmpt2 sylibr rsp2 3impib
      wf ovmpt4g mpt2eq3dva 3eqtr3a txcnmpt eqeltrrd ) APFGUCQZUDZPULZBCJKDUEZR
      ZWPBCJKEUEZRZUFZUGZBCJKDEUFZUEZWNHIUCQUHQZAPJKUIZXAUGZBCJKBULZCULZWQQZXHX
      IWSQZUFZUEZXBXDXGUAUBJKUAULZUBULZWQQZXNXOWSQZUFZUEXMUAUBPJKXAXRWPXNXOUFZS
      ZWRXPWTXQXTWRXSWQRXPWPXSWQUJXNXOWQUMUKXTWTXSWSRXQWPXSWSUJXNXOWSUMUKUNUOUA
      UBBCJKXRXLBXPXQBXNXOWQBXNUPZBCJKDUQBXOUPZURBXNXOWSYABCJKEUQYBURUSCXPXQCXN
      XOWQCXNUPZBCJKDUTCXOUPZURCXNXOWSYCBCJKEUTYDURUSUAXLUPUBXLUPXNXHSXOXISVAXP
      XJXQXKXNXHXOXIWQVBXNXHXOXIWSVBUNVCVDAWNXFVERTZXFWOSXGXBSAFJVERTGKVERTYELM
      FGJKVFVGZXFWNVHPXFWOXAVIVJABCJKXLXCAXHJTZXIKTZVKZXJDXKEYIYGYHDHUDZTZXJDSA
      YGYHVLZAYGYHVMZAYGYHYKAYKCKVNBJVNZYGYHVAZYKVOAXFYJWQWHZYNAYEHYJVERTZWQWNH
      UHQTZYPYFAHVPTZYQAYRYSNWQWNHVQVRHYJYJVSVTWANWQWNHXFYJWBWCBCJKDYJWQWQVSZWD
      WEYKBCJKWFVRWGBCJKDWQYJYTWIWCYIYGYHEIUDZTZXKESYLYMAYGYHUUBAUUBCKVNBJVNZYO
      UUBVOAXFUUAWSWHZUUCAYEIUUAVERTZWSWNIUHQTZUUDYFAIVPTZUUEAUUFUUGOWSWNIVQVRI
      UUAUUAVSVTWAOWSWNIXFUUAWBWCBCJKEUUAWSWSVSZWDWEUUBBCJKWFVRWGBCJKEWSUUAUUHW
      IWCUNWJWKAYRUUFXBXETNOPHIWNWQWSXBWOWOVSXBVSWLVGWM $.

    ${
      cnmpt22.l $e |- ( ph -> L e. ( TopOn ` Z ) ) $.
      cnmpt22.m $e |- ( ph -> M e. ( TopOn ` W ) ) $.
      cnmpt22.c $e |- ( ph ->
                        ( z e. Z , w e. W |-> C ) e. ( ( L tX M ) Cn N ) ) $.
      cnmpt22.d $e |- ( ( z = A /\ w = B ) -> C = D ) $.
      $( The composition of continuous functions is continuous.  (Contributed
         by Mario Carneiro, 5-May-2014.)  (Revised by Mario Carneiro,
         22-Aug-2015.) $)
      cnmpt22 $p |- ( ph ->
                      ( x e. X , y e. Y |-> D ) e. ( ( J tX K ) Cn N ) ) $=
        ( cop cmpt2 cfv ctx co ccn cv wcel w3a df-ov cuni wceq wa wi cxp ctopon
        wral txtopon syl2anc cnf2 syl3anc eqid fmpt2 sylibr rsp2 syl 3impib wal
        wf jca ctop cntop2 toptopon sylib r2al 3ad2ant1 bi2anan9 eleq1d imbi12d
        eleq1 spc2gv ovmpt2ga syl5eqr mpt2eq3dva cnmpt2t cnmpt21f eqeltrrd
        syl3c ) ABCPQFGUGZDEROHUHZUIZUHBCPQIUHJKUJUKZNULUKABCPQWQIABUMPUNZCUMQU
        NZUOZWQFGWPUKZIFGWPUPXAFRUNZGOUNZINUQZUNZXBIURAWSWTXCAXCCQVCBPVCZWSWTUS
        ZXCUTAPQVAZRBCPQFUHZVOZXGAWRXIVBUIUNZLRVBUIUNZXJWRLULUKUNXKAJPVBUIUNKQV
        BUIUNXLSTJKPQVDVEZUCUAXJWRLXIRVFVGBCPQFRXJXJVHVIVJXCBCPQVKVLVMZAWSWTXDA
        XDCQVCBPVCZXHXDUTAXIOBCPQGUHZVOZXPAXLMOVBUIUNZXQWRMULUKUNXRXNUDUBXQWRMX
        IOVFVGBCPQGOXQXQVHVIVJXDBCPQVKVLVMZXAXCXDUSZDUMZRUNZEUMZOUNZUSZHXEUNZUT
        ZEVNDVNZYAXFXAXCXDXOXTVPZAWSYIWTAYGEOVCDRVCZYIAROVAZXEWPVOZYKALMUJUKZYL
        VBUIUNZNXEVBUIUNZWPYNNULUKUNZYMAXMXSYOUCUDLMROVDVEANVQUNZYPAYQYRUEWPYNN
        VRVLNXEXEVHVSVTUEWPYNNYLXEVFVGDEROHXEWPWPVHZVIVJYGDEROWAVTWBYJYHYAXFUTD
        EFGROYBFURZYDGURZUSZYFYAYGXFYTYCXCUUAYEXDYBFRWFYDGOWFWCUUBHIXEUFWDWEWGW
        NDEFGROHIWPXEUFYSWHVGWIWJABCWOWPJKYNNPQSTABCFGJKLMPQSTUAUBWKUEWLWM $.
    $}

    cnmpt22f.f $e |- ( ph -> F e. ( ( L tX M ) Cn N ) ) $.
    $( The composition of continuous functions is continuous.  (Contributed by
       Mario Carneiro, 5-May-2014.)  (Revised by Mario Carneiro,
       22-Aug-2015.) $)
    cnmpt22f $p |- ( ph -> ( x e. X , y e. Y |-> ( A F B ) ) e.
                           ( ( J tX K ) Cn N ) ) $=
      ( co wcel vz vw cv cuni ctop ctopon cfv cmpt2 ctx ccn cntop2 syl toptopon
      eqid sylib cxp wfn wceq wf txtopon syl2anc cnf2 syl3anc ffn fnov eqeltrrd
      oveq12 cnmpt22 ) ABCUAUBDEUAUCZUBUCZFSZDEFSGHIJKJUDZLMIUDZNOPQAIUETZIVMUF
      UGTZABCLMDUHZGHUISZIUJSTVNPVPVQIUKULIVMVMUNUMUOZAJUETZJVLUFUGTZABCLMEUHZV
      QJUJSTVSQWAVQJUKULJVLVLUNUMUOZAFUAUBVMVLVKUHZIJUISZKUJSZAFVMVLUPZUQZFWCUR
      AWFKUDZFUSZWGAWDWFUFUGTZKWHUFUGTZFWETZWIAVOVTWJVRWBIJVMVLUTVAAKUETZWKAWLW
      MRFWDKUKULKWHWHUNUMUORFWDKWFWHVBVCWFWHFVDULUAUBVMVLFVEUORVFVIDVJEFVGVH $.
  $}

  ${
    $d x y W $.  $d x y X $.  $d x y Y $.  $d x y Z $.
    cnmpt1res.2 $e |- K = ( J |`t Y ) $.
    cnmpt1res.3 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    cnmpt1res.5 $e |- ( ph -> Y C_ X ) $.
    ${
      cnmpt1res.6 $e |- ( ph -> ( x e. X |-> A ) e. ( J Cn L ) ) $.
      $( The restriction of a continuous function to a subset is continuous.
         (Contributed by Mario Carneiro, 5-Jun-2014.) $)
      cnmpt1res $p |- ( ph -> ( x e. Y |-> A ) e. ( K Cn L ) ) $=
        ( cmpt cres ccn co resmptd crest wcel cuni wss ctopon cfv wceq toponuni
        syl sseqtrd eqid cnrest syl2anc oveq1i syl6eleqr eqeltrrd ) ABGCMZHNZBH
        CMEFOPZABGHCKQAUODHRPZFOPZUPAUNDFOPSHDTZUAUOURSLAHGUSKADGUBUCSGUSUDJGDU
        EUFUGHUNDFUSUSUHUIUJEUQFOIUKULUM $.
    $}

    cnmpt2res.7 $e |- N = ( M |`t W ) $.
    cnmpt2res.8 $e |- ( ph -> M e. ( TopOn ` Z ) ) $.
    cnmpt2res.9 $e |- ( ph -> W C_ Z ) $.
    cnmpt2res.10 $e |- ( ph -> ( x e. X , y e. Z |-> A ) e.
                               ( ( J tX M ) Cn L ) ) $.
    $( The restriction of a continuous function to a subset is continuous.
       (Contributed by Mario Carneiro, 6-Jun-2014.) $)
    cnmpt2res $p |- ( ph -> ( x e. Y , y e. W |-> A ) e.
                            ( ( K tX N ) Cn L ) ) $=
      ( cmpt2 cxp cres ctx co crest ccn wcel cuni wss xpss12 syl2anc ctopon cfv
      wceq txtopon toponuni syl sseqtrd eqid resmpt2 ctop cvv topontop toponmax
      cnrest ssexd txrest syl22anc oveq12i syl6eqr oveq1d 3eltr3d ) ABCKMDUAZLJ
      UBZUCZEHUDUEZVOUFUEZGUGUEZBCLJDUAZFIUDUEZGUGUEAVNVQGUGUEUHVOVQUIZUJVPVSUH
      TAVOKMUBZWBALKUJZJMUJZVOWCUJPSLKJMUKULAVQWCUMUNUHZWCWBUOAEKUMUNUHZHMUMUNU
      HZWFOREHKMUPULWCVQUQURUSVOVNVQGWBWBUTVFULAWDWEVPVTUOPSBCKMLJDVAULAVRWAGUG
      AVRELUFUEZHJUFUEZUDUEZWAAEVBUHZHVBUHZLVCUHJVCUHVRWKUOAWGWLOKEVDURAWHWMRMH
      VDURALKEAWGKEUHOKEVEURPVGAJMHAWHMHUHRMHVEURSVGLJEHVBVBVCVCVHVIFWIIWJUDNQV
      JVKVLVM $.
  $}

  ${
    $d w z A $.  $d w z J $.  $d w z K $.  $d w x y z L $.  $d w x y z X $.
    $d w x y z ph $.  $d w x y z Y $.
    cnmptcom.3 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    cnmptcom.4 $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    cnmptcom.6 $e |- ( ph ->
                       ( x e. X , y e. Y |-> A ) e. ( ( J tX K ) Cn L ) ) $.
    $( The argument converse of a continuous function is continuous.
       (Contributed by Mario Carneiro, 6-Jun-2014.) $)
    cnmptcom $p |- ( ph ->
                     ( y e. Y , x e. X |-> A ) e. ( ( K tX J ) Cn L ) ) $=
      ( vz vw cmpt2 cv co wceq wcel wral ctx ccn cxp wfn cuni wf ctopon txtopon
      cfv syl2anc ctop cntop2 syl eqid toptopon sylib cnf2 syl3anc fmpt2 ralcom
      bitr3i ffn fnov wa wi nfcv nfv nfmpt22 nfov nfmpt21 nfeq nfim oveq2 oveq1
      eqeq12d imbi2d rsp2 syl11 w3a ovmpt4g 3com12 eqtr4d 3expia syld vtocl2gaf
      com12 3impib mpt2eq3dva cnmpt2nd cnmpt1st cnmpt22f eqeltrd ) ACBIHDOZMNIH
      NPZMPZBCHIDOZQZOZFEUAQGUBQAWMMNIHWOWNWMQZOZWRAWMIHUCZUDZWMWTRAXAGUEZWMUFZ
      XBADXCSZBHTCITZXDAHIUCZXCWPUFZXFAEFUAQZXGUGUISZGXCUGUISZWPXIGUBQSZXHAEHUG
      UISFIUGUISXJJKEFHIUHUJAGUKSZXKAXLXMLWPXIGULUMGXCXCUNUOUPLWPXIGXGXCUQURXHX
      ECITBHTXFBCHIDXCWPWPUNZUSXEBCHIUTVAUPZCBIHDXCWMWMUNZUSUPXAXCWMVBUMMNIHWMV
      CUPAMNIHWQWSAWOISZWNHSZWQWSRZXQXRVDAXSABPZCPZWPQZYAXTWMQZRZVEAXTWOWPQZWOX
      TWMQZRZVEAXSVECBWOWNIHCWOVFZBWOVFZBWNVFZAYGCACVGCYEYFCXTWOWPCXTVFZBCHIDVH
      YHVICWOXTWMYHCBIHDVJYKVIVKVLAXSBABVGBWQWSBWNWOWPYJBCHIDVJYIVIBWOWNWMYICBI
      HDVHYJVIVKVLYAWORZYDYGAYLYBYEYCYFYAWOXTWPVMYAWOXTWMVNVOVPXTWNRZYGXSAYMYEW
      QYFWSXTWNWOWPVNXTWNWOWMVMVOVPYAISZXTHSZVDZAXEYDXFYPXEAXECBIHVQXOVRYNYOXEY
      DYNYOXEVSYBDYCYOYNXEYBDRBCHIDWPXCXNVTWACBIHDWMXCXPVTWBWCWDWEWFWGWHWBAMNWN
      WOWPFEEFGIHKJAMNFEIHKJWIAMNFEIHKJWJLWKWL $.
  $}

  ${
    $d w x y J $.  $d w x y K $.  $d w x y L $.  $d w x y M $.  $d w x y z Z $.
    $d w z A $.  $d w x B $.  $d w x y ph $.  $d w x y X $.  $d w x y Y $.
    $d z C $.
    cnmptk1.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    cnmptk1.k $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    $( The curried first projection function is continuous.  (Contributed by
       Mario Carneiro, 23-Mar-2015.)  (Revised by Mario Carneiro,
       22-Aug-2015.) $)
    cnmptkc $p |- ( ph ->
      ( x e. X |-> ( y e. Y |-> x ) ) e. ( J Cn ( J ^ko K ) ) ) $=
      ( cv cmpt csn cxp cxko co ccn fconstmpt ctopon cfv wcel mpteq2i syl5eqelr
      xkoccn syl2anc ) ABFCGBJZKZKBFGUELMZKZDDENOPOZBFUGUFCGUEQUAAEGRSTDFRSTUHU
      ITIHBEDGFUCUDUB $.

    cnmptk1.l $e |- ( ph -> L e. ( TopOn ` Z ) ) $.
    ${
      $d y B $.  $d y C $.
      cnmptkp.a $e |- ( ph ->
        ( x e. X |-> ( y e. Y |-> A ) ) e. ( J Cn ( L ^ko K ) ) ) $.
      cnmptkp.b $e |- ( ph -> B e. Y ) $.
      cnmptkp.c $e |- ( y = B -> A = C ) $.
      $( The evaluation of the inner function in a curried function is
         continuous.  (Contributed by Mario Carneiro, 23-Mar-2015.)  (Revised
         by Mario Carneiro, 22-Aug-2015.) $)
      cnmptkp $p |- ( ph -> ( x e. X |-> C ) e. ( J Cn L ) ) $=
        ( cfv wcel vw cmpt ccn co cv cuni wceq adantr wral ctopon ctop topontop
        wa wf syl eqid toptopon sylib cxko xkotopon syl2anc cnf2 syl3anc sylibr
        fmpt r19.21bi eleq1d rspcv sylc fvmptg mpteq2dva toponuni eleqtrd fveq1
        xkopjcn cnmpt11 eqeltrrd ) ABJECKDUBZSZUBBJFUBGIUCUDABJVSFABUEJTZUMZEKT
        ZFIUFZTZVSFUGAWBVTQUHZWAWBDWCTZCKUIZWDWEWAKWCVRUNZWGWAHKUJSTZIWCUJSTZVR
        HIUCUDZTZWHAWIVTNUHWAIUKTZWJAWMVTAILUJSTWMOLIULUOZUHIWCWCUPUQURAWLBJAJW
        KBJVRUBZUNZWLBJUIAGJUJSTIHUSUDZWKUJSTZWOGWQUCUDTWPMAHUKTZWMWRAWIWSNKHUL
        UOZWNHIWQWQUPUTVAZPWOGWQJWKVBVCBJWKVRWOWOUPVEVDVFVRHIKWCVBVCCKWCDVRVRUP
        ZVEVDWFWDCEKCUEEUGDFWCRVGVHVICEDFKWCVRRXBVJVAVKABUAVREUAUEZSZVSGWQIJWKM
        PXAAWSWMEHUFZTUAWKXDUBWQIUCUDTWTWNAEKXEQAWIKXEUGNKHVLUOVMEHIUAXEXEUPVOV
        CEXCVRVNVPVQ $.
    $}

    ${
      $d y B $.
      cnmptk1.a $e |- ( ph ->
        ( x e. X |-> ( y e. Y |-> A ) ) e. ( J Cn ( L ^ko K ) ) ) $.
      cnmptk1.b $e |- ( ph -> ( z e. Z |-> B ) e. ( L Cn M ) ) $.
      cnmptk1.c $e |- ( z = A -> B = C ) $.
      $( The composition of a curried function with a one-arg function is
         continuous.  (Contributed by Mario Carneiro, 23-Mar-2015.) $)
      cnmptk1 $p |- ( ph ->
        ( x e. X |-> ( y e. Y |-> C ) ) e. ( J Cn ( M ^ko K ) ) ) $=
        ( vw cmpt ccom cxko co ccn cv wcel wral ctopon cfv adantr ctop topontop
        wa wf syl eqid xkotopon syl2anc cnf2 syl3anc fmpt sylibr r19.21bi eqidd
        fmptcof mpteq2dva xkoco2cn coeq2 cnmpt11 eqeltrrd ) ABLDNFUBZCMEUBZUCZU
        BBLCMGUBZUBHKIUDUEZUFUEABLVOVPABUGLUHZUOZCDMNEFGVNVMVSMNVNUPZENUHCMUIVS
        IMUJUKUHZJNUJUKUHZVNIJUFUEZUHZVTAWAVRPULAWBVRQULAWDBLALWCBLVNUBZUPZWDBL
        UIAHLUJUKUHJIUDUEZWCUJUKUHZWEHWGUFUEUHWFOAIUMUHZJUMUHZWHAWAWIPMIUNUQZAW
        BWJQNJUNUQIJWGWGURUSUTZRWEHWGLWCVAVBBLWCVNWEWEURVCVDVEVNIJMNVAVBCMNEVNV
        NURVCVDVSVNVFVSVMVFTVGVHABUAVNVMUAUGZUCVOHWGVQLWCORWLAIJKUAVMWKSVIWMVNV
        MVJVKVL $.
    $}

    ${
      $d y A $.
      cnmpt1k.m $e |- ( ph -> M e. ( TopOn ` W ) ) $.
      cnmpt1k.a $e |- ( ph -> ( x e. X |-> A ) e. ( J Cn L ) ) $.
      cnmpt1k.b $e |- ( ph ->
        ( y e. Y |-> ( z e. Z |-> B ) ) e. ( K Cn ( M ^ko L ) ) ) $.
      cnmpt1k.c $e |- ( z = A -> B = C ) $.
      $( The composition of a one-arg function with a curried function is
         continuous.  (Contributed by Mario Carneiro, 23-Mar-2015.)  (Revised
         by Mario Carneiro, 22-Aug-2015.) $)
      cnmpt1k $p |- ( ph ->
        ( y e. Y |-> ( x e. X |-> C ) ) e. ( K Cn ( M ^ko J ) ) ) $=
        ( vw cmpt ccom cxko co ccn cv wcel wa wral ctopon cfv cnf2 syl3anc eqid
        wf fmpt sylibr adantr eqidd fmptcof mpteq2dva ctop topontop syl syl2anc
        xkotopon xkoco1cn coeq1 cnmpt11 eqeltrrd ) ACNDOFUDZBMEUDZUEZUDCNBMGUDZ
        UDIKHUFUGZUHUGACNVPVQACUINUJZUKZBDMOEFGVOVNAEOUJBMULZVSAMOVOURZWAAHMUMU
        NUJJOUMUNUJZVOHJUHUGUJWBPRTVOHJMOUOUPBMOEVOVOUQUSUTVAVTVOVBVTVNVBUBVCVD
        ACUCVNUCUIZVOUEVPIKJUFUGZVRNJKUHUGZQUAAJVEUJZKVEUJZWEWFUMUNUJAWCWGROJVF
        VGAKLUMUNUJWHSLKVFVGZJKWEWEUQVIVHAHJKUCVOWITVJWDVNVOVKVLVM $.
    $}
  $}

  ${
    $d f g z A $.  $d f g y B $.  $d f g x K $.  $d f g x L $.  $d f g x y X $.
    $d f x J $.  $d f g x M $.  $d x y ph $.  $d f g y Y $.  $d f g y z Z $.
    $d z C $.
    cnmptkk.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    cnmptkk.k $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    cnmptkk.l $e |- ( ph -> L e. ( TopOn ` Z ) ) $.
    cnmptkk.m $e |- ( ph -> M e. ( TopOn ` W ) ) $.
    cnmptkk.n $e |- ( ph -> L e. N-Locally Comp ) $.
    cnmptkk.a $e |- ( ph ->
      ( x e. X |-> ( y e. Y |-> A ) ) e. ( J Cn ( L ^ko K ) ) ) $.
    cnmptkk.b $e |- ( ph ->
      ( x e. X |-> ( z e. Z |-> B ) ) e. ( J Cn ( M ^ko L ) ) ) $.
    cnmptkk.c $e |- ( z = A -> B = C ) $.
    $( The composition of two curried functions is jointly continuous.
       (Contributed by Mario Carneiro, 23-Mar-2015.)  (Revised by Mario
       Carneiro, 22-Aug-2015.) $)
    cnmptkk $p |- ( ph ->
      ( x e. X |-> ( y e. Y |-> C ) ) e. ( J Cn ( M ^ko K ) ) ) $=
      ( vf vg cmpt ccom cxko co ccn cv wcel wa wf wral ctopon cfv ctop topontop
      adantr syl ccmp cnlly nllytop eqid xkotopon syl2anc cnf2 syl3anc r19.21bi
      fmpt sylibr eqidd fmptcof mpteq2dva cmpt2 ctx xkococn wceq coeq1 sylan9eq
      coeq2 cnmpt12 eqeltrrd ) ABMDOFUFZCNEUFZUGZUFBMCNGUFZUFHKIUHUIZUJUIABMWGW
      HABUKMULZUMZCDNOEFGWFWEWKNOWFUNZEOULCNUOWKINUPUQULZJOUPUQULZWFIJUJUIZULZW
      LAWMWJQUTAWNWJRUTAWPBMAMWOBMWFUFZUNZWPBMUOAHMUPUQULJIUHUIZWOUPUQULZWQHWSU
      JUIULWRPAIURULZJURULZWTAWMXAQNIUSVAZAJVBVCULZXBTVBJVDVAZIJWSWSVEVFVGZUAWQ
      HWSMWOVHVIBMWOWFWQWQVEVKVLVJWFIJNOVHVICNOEWFWFVEVKVLWKWFVMWKWEVMUCVNVOABU
      DUEWEWFUDUKZUEUKZUGZWGHKJUHUIZWSWIMJKUJUIZWOPUBUAAXBKURULZXJXKUPUQULXEAKL
      UPUQULXLSLKUSVAZJKXJXJVEVFVGXFAXAXDXLUDUEXKWOXIVPZXJWSVQUIWIUJUIULXCTXMIJ
      KUDUEXNXNVEVRVIXGWEVSXHWFVSXIWEXHUGWGXGWEXHVTXHWFWEWBWAWCWD $.
  $}

  ${
    $d f g h x y R $.  $d f g h x y S $.  $d f g h x y X $.
    xkofvcn.1 $e |- X = U. R $.
    xkofvcn.2 $e |- F = ( f e. ( R Cn S ) , x e. X |-> ( f ` x ) ) $.
    $( Joint continuity of the function value operation as a function on
       continuous function spaces.  (Compare ~ xkopjcn .)  (Contributed by
       Mario Carneiro, 20-Mar-2015.)  (Revised by Mario Carneiro,
       22-Aug-2015.) $)
    xkofvcn $p |- ( ( R e. N-Locally Comp /\ S e. Top ) ->
      F e. ( ( ( S ^ko R ) tX R ) Cn S ) ) $=
      ( vg vh vy wcel ccn co cv cfv c1o c0 ctopon wceq ccmp cnlly ctop wa cmpt2
      cxko ctx csn cxp ccom cpw nllytop xkotopon sylan adantr toptopon cnmpt1st
      eqid sylib cnmpt2nd cmpt con0 distopon mp1i xkoccn syl2anc xpeq2d cnmpt21
      1on distop simpl simpr xkococn syl3anc coeq1 coeq2 sylan9eq cnmpt22 0lt1o
      sneq cuni unipw eqcomi xkopjcn fveq1 wf fconst fvco3 mp2an fvconst2 ax-mp
      a1i vex fveq2i eqtri syl6eq syl5eqel ) BUAUBLZCUCLZUDZEDABCMNZFAOZDOZPZUE
      CBUFNZBUGNCMNHWTDAIXCQXBUHZUIZUJZRIOZPZXDXEBCQUKZUFNZCXAFXKCMNZWRBUCLZWSX
      EXASPLUABULZBCXEXEURUMUNZWTXNBFSPLZWRXNWSXOUOZBFGUPUSZWTDAIJXCXGXIJOZUJZX
      HXEBXEBXKUFNZXLXKBMNZXAFXAXPXSWTDAXEBXAFXPXSUQWTDAKXBQKOZUHZUIZXGXEBBYBXA
      FFXPXSWTDAXEBXAFXPXSUTXSWTXKQSPLZXQKFYFVABYBMNLQVBLZYGWTVIQVBVCVDXSKXKBQF
      VEVFYDXBTYEXFQYDXBVTVGVHXPWTXKUCLZXNYBYCSPLYHYIWTVIQVBVJVDZXRXKBYBYBURUMV
      FWTYIWRWSIJXAYCYAUEZXEYBUGNXLMNLYJWRWSVKWRWSVLZXKBCIJYKYKURVMVNXIXCTXTXGT
      YAXCXTUJXHXIXCXTVOXTXGXCVPVQVRWTYIWSXLXMSPLYJYLXKCXLXLURUMVFWTYIWSRQLZIXM
      XJVAXLCMNLYJYLYMWTVSWLRXKCIQXKWAQQWBWCWDVNXIXHTXJRXHPZXDRXIXHWEYNRXGPZXCP
      ZXDQXFXGWFYMYNYPTQXBAWMZWGVSQXFRXCXGWHWIYOXBXCYMYOXBTVSQXBRYQWJWKWNWOWPVH
      WQ $.
  $}

  ${
    $d f k w z A $.  $d f k w x z J $.  $d f k w x z K $.  $d f k w x z L $.
    $d f y z B $.  $d y C $.  $d f k w x y z X $.  $d f k w x y z Y $.
    $d f k w x y z ph $.  $d y Z $.
    cnmptk1p.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    cnmptk1p.k $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    cnmptk1p.l $e |- ( ph -> L e. ( TopOn ` Z ) ) $.
    cnmptk1p.n $e |- ( ph -> K e. N-Locally Comp ) $.
    ${
      cnmptk1p.a $e |- ( ph ->
        ( x e. X |-> ( y e. Y |-> A ) ) e. ( J Cn ( L ^ko K ) ) ) $.
      cnmptk1p.b $e |- ( ph -> ( x e. X |-> B ) e. ( J Cn K ) ) $.
      cnmptk1p.c $e |- ( y = B -> A = C ) $.
      $( The evaluation of a curried function by a one-arg function is jointly
         continuous.  (Contributed by Mario Carneiro, 23-Mar-2015.)  (Revised
         by Mario Carneiro, 22-Aug-2015.) $)
      cnmptk1p $p |- ( ph -> ( x e. X |-> C ) e. ( J Cn L ) ) $=
        ( wcel vf vz cmpt cfv ccn co cv wceq wral ctopon cnf2 syl3anc eqid fmpt
        wa wf sylibr r19.21bi adantr cxko ctop ccmp cnlly syl topontop xkotopon
        nllytop eleq1d rspcv sylc fvmptg mpteq2dva cmpt2 cuni toponuni mpt2eq12
        syl2anc sylancr xkofvcn eqeltrd fveq1 fveq2 sylan9eq cnmpt12 eqeltrrd
        ctx ) ABJECKDUCZUDZUCBJFUCGIUEUFABJWHFABUGJTZUOZEKTZFLTZWHFUHAWKBJAJKBJ
        EUCZUPZWKBJUIAGJUJUDTZHKUJUDTZWMGHUEUFTWNMNRWMGHJKUKULBJKEWMWMUMUNUQURZ
        WJWKDLTZCKUIZWLWQWJKLWGUPZWSWJWPILUJUDTZWGHIUEUFZTZWTAWPWINUSAXAWIOUSAX
        CBJAJXBBJWGUCZUPZXCBJUIAWOIHUTUFZXBUJUDTZXDGXFUEUFTXEMAHVATZIVATZXGAHVB
        VCTZXHPVBHVGVDAXAXIOLIVEVDZHIXFXFUMVFVQZQXDGXFJXBUKULBJXBWGXDXDUMUNUQUR
        WGHIKLUKULCKLDWGWGUMZUNUQWRWLCEKCUGEUHDFLSVHVIVJCEDFKLWGSXMVKVQVLABUAUB
        WGEUBUGZUAUGZUDZWHGXFHIJXBKMQRXLNAUAUBXBKXPVMZUAUBXBHVNZXPVMZXFHWFUFIUE
        UFZAXBXBUHKXRUHZXQXSUHXBUMAWPYANKHVOVDUAUBXBKXBXRXPVPVRAXJXIXSXTTPXKUBH
        IUAXSXRXRUMXSUMVSVQVTXOWGUHXNEUHXPXNWGUDWHXNXOWGWAXNEWGWBWCWDWE $.
    $}

    cnmptk2.a $e |- ( ph ->
      ( x e. X |-> ( y e. Y |-> A ) ) e. ( J Cn ( L ^ko K ) ) ) $.
    $( The uncurrying of a curried function is continuous.  (Contributed by
       Mario Carneiro, 23-Mar-2015.)  (Revised by Mario Carneiro,
       22-Aug-2015.) $)
    cnmptk2 $p |- ( ph -> ( x e. X , y e. Y |-> A ) e. ( ( J tX K ) Cn L ) ) $=
      ( vw vk cfv wceq wcel vf vz cv cmpt cmpt2 ctx co ccn nffvmpt1 nfcv nfmpt1
      nffv nfmpt fveq2 fveq1d sylan9eq cbvmpt2 wa simplr wf wral cxko ctop ccmp
      ctopon cnlly nllytop syl topontop eqid xkotopon syl2anc cnf2 syl3anc fmpt
      sylibr r19.21bi adantr fvmpt2 simpr mpt2eq3dva cnmpt1st cnmpt21f cnmpt2nd
      eqtrd 3impa syl5eq cuni toponuni mpt2eq12 sylancr xkofvcn eqeltrd cnmpt22
      fveq1 eqeltrrd ) APQHIQUCZPUCZBHCIDUDZUDZRZRZUEZBCHIDUEZEFUFUGGUHUGAXCBCH
      ICUCZBUCZWTRZRZUEXDPQBCHIXBXHBWQXABHWSWRUIBWQUJULCWQXACWRWTCBHWSCHUJCIDUK
      UMCWRUJULCWQUJULPXHUJQXHUJWRXFSZWQXESXBWQXGRXHXIWQXAXGWRXFWTUNUOWQXEXGUNU
      PUQABCHIXHDAXFHTZXEITZXHDSAXJURZXKURZXHXEWSRZDXMXEXGWSXMXJWSFGUHUGZTZXGWS
      SAXJXKUSXLXPXKAXPBHAHXOWTUTZXPBHVAAEHVERTGFVBUGZXOVERTZWTEXRUHUGTXQKAFVCT
      ZGVCTZXSAFVDVFTZXTNVDFVGVHAGJVERTZYAMJGVIVHZFGXRXRVJVKVLZOWTEXRHXOVMVNBHX
      OWSWTWTVJZVOVPVQZVRBHWSXOWTYFVSVLUOXMXKDJTZXNDSXLXKVTXLYHCIXLIJWSUTZYHCIV
      AXLFIVERTZYCXPYIAYJXJLVRAYCXJMVRYGWSFGIJVMVNCIJDWSWSVJZVOVPVQCIDJWSYKVSVL
      WEWFWAWGAPQUAUBXAWQUBUCZUAUCZRZXBEFXRFGIHIXOKLAPQWRWTEFEXRHIKLAPQEFHIKLWB
      OWCAPQEFHIKLWDYELAUAUBXOIYNUEZUAUBXOFWHZYNUEZXRFUFUGGUHUGZAXOXOSIYPSZYOYQ
      SXOVJAYJYSLIFWIVHUAUBXOIXOYPYNWJWKAYBYAYQYRTNYDUBFGUAYQYPYPVJYQVJWLVLWMYM
      XASYLWQSYNYLXARXBYLYMXAWOYLWQXAUNUPWNWP $.
  $}

  ${
    $d f k r v w x y z R $.  $d f k r v w x y z S $.  $d f k r v w x y z Y $.
    $d k t v w x z $.  $d k v z F $.  $d k r v w x y z X $.
    xkoinjcn.3 $e |- F = ( x e. X |-> ( y e. Y |-> <. y , x >. ) ) $.
    $( Continuity of "injection", i.e. currying, as a function on continuous
       function spaces.  (Contributed by Mario Carneiro, 23-Mar-2015.) $)
    xkoinjcn $p |- ( ( R e. ( TopOn ` X ) /\ S e. ( TopOn ` Y ) ) ->
      F e. ( R Cn ( ( S tX R ) ^ko S ) ) ) $=
      ( vz vk vv vw wcel wa co cv wss wceq syl cvv vf vt vr ctopon cfv ctx cxko
      ccn wf ccnv cima crest ccmp cuni cpw crab cmpt2 crn wral cop cmpt cnmptid
      simplr simpll simpr cnmptc cnmpt1t fmptd wrex eqid xkobval abeq2i csn cxp
      sylan imaeq1 sseq1d elrab3 wfun cdm funmpt simplrl elpwid simprd toponuni
      wb sseqtr4d adantr dmmptg opex a1i syl6sseqr funimass4 sylancr wel sselda
      opeq1 fvmpt eleq1d vex weq opeq2 ralsn syl6bbr ralbidva dfss3 eleq1 ralxp
      mprg bitri 3bitrd rabbidva sneq xpeq2d elrab cin ad2antrr topontop adantl
      ctop txtop syl2anc ad3antrrr toponmax xpexg simprr elrestr syl3anc txrest
      syl22anc oveq2d restid eqtrd eleqtrd resttopon xpeq1d simprl xpss2 mpbird
      ciun snssd ssind eqsstr3d txtube toponss ssrab baib biantrud iunid xpeq2i
      xpiundi eqtr3i sseq1i iunss ssin 3bitr3g anbi2d rexbidva ralrimiva eltop2
      sylan2b 3syl eqeltrd imaeq2 mptpreima syl6eq syl5ibrcom rexlimdvva syl5bi
      expimpd ralrimiv simpl ovex xkotf frn ax-mp ssexi cfi ctg xkoval xkotopon
      pwex subbascn mpbir2and ) CFUDUEZMZDGUDUEMZNZECDCUFOZDUGOZUHOMFDUWIUHOZEU
      IEUJZIPZUKZCMZIJKDLPZULOUMMLDUNZUOZUPZUWIUAPZJPZUKZKPZQZUAUWKUPZUQZURZUSU
      WHAFBGBPZAPZUTZVAZUWKEUWHUXIFMZNZBUXHUXIDDCGUWFUWGUXLVCZUXMBDGUXNVBUXMBUX
      IDCGFUXNUWFUWGUXLVDUWHUXLVEVFVGZHVHUWHUWOIUXGUWMUXGMDUXAULOZUMMZUWMUXERZN
      ZKUWIVIJUWRVIZUWHUWOUXTIUXGLKDUWIUXFUAJUWSUWQIUWQVJZUWSVJZUXFVJZVKVLUWHUX
      SUWOJKUWRUWIUWHUXAUWRMZUXCUWIMZNZNZUXQUXRUWOUYGUXQNZUWOUXRUXKUXEMZAFUPZCM
      UYHUYJUXAUXIVMZVNZUXCQZAFUPZCUYHUYIUYMAFUYHUXLNZUYIUXKUXAUKZUXCQZUWMUXKUE
      ZUXCMZIUXAUSZUYMUYOUXKUWKMZUYIUYQWFUYHUWHUXLVUAUWHUYFUXQVDZUXOVOUXDUYQUAU
      XKUWKUWTUXKRUXBUYPUXCUWTUXKUXAVPVQVRSUYOUXKVSUXAUXKVTZQUYQUYTWFBGUXJWAUYO
      UXAGVUCUYHUXAGQZUXLUYHUXAUWQGUYHUXAUWQUWHUYDUYEUXQWBWCUYHUWGGUWQRUYHUWFUW
      GVUBWDZGDWESWGZWHZUXJTMZVUCGRBGBGUXJTWIVUHUXHGMUXHUXIWJWKXIWLIUXAUXCUXKWM
      WNUYOUYTUWMUWPUTZUXCMZLUYKUSZIUXAUSZUYMUYOUYSVUKIUXAUYOIJWONZUYSUWMUXIUTZ
      UXCMZVUKVUMUYRVUNUXCVUMUWMGMUYRVUNRUYOUXAGUWMVUGWPBUWMUXJVUNGUXKUXHUWMUXI
      WQUXKVJUWMUXIWJWRSWSVUJVUOLUXIAWTLAXAVUIVUNUXCUWPUXIUWMXBWSXCXDXEUYMUBKWO
      ZUBUYLUSVULUBUYLUXCXFVUPVUJUBILUXAUYKUBPVUIUXCXGXHXJXDXKXLUYHUYNCMZLUCWOZ
      UCPZUYNQZNZUCCVIZLUYNUSZUYHVVBLUYNUWPUYNMUYHUWPFMZUXAUWPVMZVNZUXCQZNZVVBU
      YMVVGAUWPFALXAZUYLVVFUXCVVIUYKVVEUXAUXIUWPXMXNVQXOUYHVVHNZVVBVURUXPUNZVUS
      VNZUXCUXAFVNZXPZQZNZUCCVIVVJUCUWPUXPCVVNVVKCUNZVVKVJVVQVJZUYGUXQVVHVCVVJU
      WFCXTMZUYGUWFUXQVVHUWFUWGUYFVDXQZFCXRZSZVVJVVNUWIVVMULOZUXPCUFOZVVJUWIXTM
      ZVVMTMZUYEVVNVWCMUWHVWEUYFUXQVVHUWHDXTMZVVSVWEUWGVWGUWFGDXRXSZUWFVVSUWGVW
      AWHZDCYAYBZYCVVJUXATMZFCMZVWFJWTZVVJUWFVWLVVTFCYDSZUXAFTCYEWNUYGUYEUXQVVH
      UWHUYDUYEYFXQUXCVVMUWIXTTYGYHVVJVWCUXPCFULOZUFOZVWDVVJVWGVVSVWKVWLVWCVWPR
      UWHVWGUYFUXQVVHVWHYCVWBVWKVVJVWMWKVWNUXAFDCXTXTTCYIYJVVJVWOCUXPUFVVJVWOCV
      VQULOZCVVJFVVQCULVVJUWFFVVQRVVTFCWESZYKVVJUWFVWQCRVVTCUWEVVQVVRYLSYMYKYMY
      NVVJVVKVVEVNVVFVVNVVJUXAVVKVVEVVJUXPUXAUDUEMZUXAVVKRZVVJUWGVUDVWSUYHUWGVV
      HVUEWHUYHVUDVVHVUFWHUXADGYOYBUXAUXPWESZYPVVJVVFUXCVVMUYHVVDVVGYFVVJVVEFQV
      VFVVMQVVJUWPFUYHVVDVVGYQZUUAVVEFUXAYRSUUBUUCVVJUWPFVVQVXBVWRYNUUDVVJVVAVV
      PUCCVVJVUSCMZNZVUTVVOVURVXDVUTUYMAVUSUSZUXAVUSVNZVVNQZVVOVXDVUSFQZVUTVXEW
      FVVJUWFVXCVXHVVTVUSCFUUEVOZVUTVXHVXEUYMAFVUSUUFUUGSVXDVXFUXCQZVXJVXFVVMQZ
      NVXEVXGVXDVXKVXJVXDVXHVXKVXIVUSFUXAYRSUUHVXJAVUSUYLYTZUXCQVXEVXFVXLUXCUXA
      AVUSUYKYTZVNVXFVXLVXMVUSUXAAVUSUUIUUJAVUSUYKUXAUUKUULUUMAVUSUYLUXCUUNXJVX
      FUXCVVMUUOUUPVXDVXFVVLVVNVXDUXAVVKVUSVVJVWTVXCVXAWHYPVQXKUUQUURYSUVAUUSUY
      HUWHVVSVUQVVCWFVUBVWILUCUYNCUUTUVBYSUVCUXRUWNUYJCUXRUWNUWLUXEUKUYJUWMUXEU
      WLUVDAFUXKUXEEHUVEUVFWSUVGUVJUVHUVIUVKUWHIUXGECUWJTFUWKUWFUWGUVLUXGTMUWHU
      XGUWKUOZUWKDUWIUHUVMUWBUWSUWIVNZVXNUXFUIUXGVXNQLKDUWIUXFUAJUWSUWQUYAUYBUY
      CUVNVXOVXNUXFUVOUVPUVQWKUWHVWGVWEUWJUXGUVRUEUVSUERVWHVWJLKDUWIUXFUAJUWSUW
      QUYAUYBUYCUVTYBUWHVWGVWEUWJUWKUDUEMVWHVWJDUWIUWJUWJVJUWAYBUWCUWD $.
  $}

  ${
    $d v w x y L $.  $d v w x y ph $.  $d v w x y z X $.  $d v w x y z Y $.
    $d v w z A $.  $d v w z J $.  $d v w z K $.
    cnmpt2k.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    cnmpt2k.k $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    cnmpt2k.a $e |- ( ph ->
      ( x e. X , y e. Y |-> A ) e. ( ( J tX K ) Cn L ) ) $.
    $( The currying of a two-argument function is continuous.  (Contributed by
       Mario Carneiro, 23-Mar-2015.) $)
    cnmpt2k $p |- ( ph ->
      ( x e. X |-> ( y e. Y |-> A ) ) e. ( J Cn ( L ^ko K ) ) ) $=
      ( vw vv cv co cmpt nfcv wcel cfv vz cmpt2 cxko nfmpt22 nfov nfmpt nfmpt21
      ccn wceq oveq1 cbvmpt oveq2 mpteq2dv syl5eq wa cuni simpr simplr wral cxp
      wf ctx ctopon txtopon syl2anc ctop cntop2 syl eqid toptopon cnmptcom cnf2
      sylib syl3anc fmpt2 r19.21bi an32s ovmpt4g mpteq2dva cop xkoinjcn feqmptd
      sylibr eqeltrrd fveq2 df-ov syl6eqr cnmptk1 ) AMHNINOZMOZCBIHDUBZPZQZQZBH
      CIDQZQZEGFUCPUHPAWNBHCICOZBOZWKPZQZQWPMBHWMWTBNIWLBIRBWIWJWKBWIRCBIHDUDBW
      JRUEUFMWTRWJWRUIZWMCIWQWJWKPZQWTNCIWLXBCWIWJWKCWIRCBIHDUGCWJRUENXBRWIWQWJ
      WKUJUKXACIXBWSWJWRWQWKULUMUNUKABHWTWOAWRHSZUOZCIWSDXDWQISZUOXEXCDGUPZSZWS
      DUIXDXEUQAXCXEURAXEXCXGAXEUOXGBHAXGBHUSZCIAIHUTZXFWKVAZXHCIUSAFEVBPZXIVCT
      SZGXFVCTSZWKXKGUHPZSXJAFIVCTSZEHVCTSZXLKJFEIHVDVEZAGVFSZXMABCHIDUBZEFVBPZ
      GUHPSXRLXSXTGVGVHGXFXFVIVJVMABCDEFGHIJKLVKZWKXKGXIXFVLVNZCBIHDXFWKWKVIZVO
      WCVPVPVQCBIHDWKXFYCVRVNVSVSUNAMNUAWIWJVTZUAOZWKTZWLEFXKGHIXIJKXQAXPXOMHNI
      YDQQZEXKFUCPUHPSJKMNEFYGHIYGVIWAVEAWKUAXIYFQXNAUAXIXFWKYBWBYAWDYEYDUIYFYD
      WKTWLYEYDWKWEWIWJWKWFWGWHWD $.
  $}

  ${
    $d a w x z R $.  $d a w x z S $.
    $( The topological product of two connected spaces is connected.
       (Contributed by Mario Carneiro, 29-Mar-2015.) $)
    txconn $p |- ( ( R e. Conn /\ S e. Conn ) -> ( R tX S ) e. Conn ) $=
      ( vx vz va cconn wcel wa co cfv c0 cv wceq syl cop eqid syl2anc syl5eqelr
      eleqtrrd eleq1d vw ctx ctop ccld cin cuni cpr wss conntop txtop syl2an wo
      wex neq0 inss1 simplr sseldi elssuni c1st c2nd cxp simprr simplll simpllr
      wn txuni 1st2nd2 crab xp2nd cmpt ccnv mptpreima ccn ctopon toptopon sylib
      cima xp1st cnmptc cnmptid cnmpt1t cnima wrex simprl elunii eqeltrrd opeq1
      wne rspcev rabn0 sylibr inss2 cnclima connclo elrab simprbi opeq2 eqeltrd
      expr ssrdv eqssd ex exlimdv syl5bi orrd vex elpr syl6ibr isconn2 sylanbrc
      ) AFGZBFGZHZABUBIZUCGZXNXNUDJZUEZKXNUFZUGZUHXNFGXKAUCGZBUCGZXOXLAUIZBUIZA
      BUJUKXMCXQXSXMCLZXQGZYDKMZYDXRMZULZYDXSGXMYEYHXMYEHZYFYGYFVEDLZYDGZDUMYIY
      GDYDUNYIYKYGDYIYKYGYIYKHZYDXRYLYDXNGZYDXRUHYLXQXNYDXNXPUOZXMYEYKUPUQYDXNU
      RNYLUAXRYDYIYKUALZXRGZYOYDGYIYKYPHZHZYOYOUSJZYOUTJZOZYDYRYOAUFZBUFZVAZGZY
      OUUAMYRYOXRUUDYIYKYPVBYRXTYAUUDXRMYRXKXTXKXLYEYQVCZYBNZYRXLYAXKXLYEYQVDZY
      CNZABUUBUUCUUBPZUUCPZVFQZSZYOUUBUUCVGNYRYTYSELZOZYDGZEUUCVHZGZUUAYDGZYRYT
      UUCUUQYRUUEYTUUCGZUUMYOUUBUUCVINYRUUQBUUCUUKUUHYRUUQEUUCUUOVJZVKYDVQZBEUU
      CUUOYDUVAUVAPVLZYRUVABXNVMIGZYMUVBBGYREYSUUNBABUUCYRYABUUCVNJGUUIBUUCUUKV
      OVPZYREYSBAUUCUUBUVEYRXTAUUBVNJGUUGAUUBUUJVOVPZYRUUEYSUUBGZUUMYOUUBUUCVRN
      ZVSYREBUUCUVEVTWAZYRXQXNYDYNXMYEYQUPZUQZYDUVABXNWBQRYRUUPEUUCWCZUUQKWHYRY
      JUTJZUUCGZYSUVMOZYDGZUVLYRYJUUDGZUVNYRYJXRUUDYRYKYMYJXRGYIYKYPWDZUVKYJYDX
      NWEQUULSZYJUUBUUCVINZYRYSUUNUVMOZYDGZEUUBVHZGZUVPYRYSUUBUWCUVHYRUWCAUUBUU
      JUUFYRUWCEUUBUWAVJZVKYDVQZAEUUBUWAYDUWEUWEPVLZYRUWEAXNVMIGZYMUWFAGYREUUNU
      VMAABUUBUVFYREAUUBUVFVTYREUVMABUUBUUCUVFUVEUVTVSWAZUVKYDUWEAXNWBQRYRUWBEU
      UBWCZUWCKWHYRYJUSJZUUBGZUWKUVMOZYDGZUWJYRUVQUWLUVSYJUUBUUCVRNYRYJUWMYDYRU
      VQYJUWMMUVSYJUUBUUCVGNUVRWFUWBUWNEUWKUUBUUNUWKMUWAUWMYDUUNUWKUVMWGTWIQUWB
      EUUBWJWKYRUWCUWFAUDJZUWGYRUWHYDXPGZUWFUWOGUWIYRXQXPYDXNXPWLUVJUQZYDUWEAXN
      WMQRWNSUWDUVGUVPUWBUVPEYSUUBUUNYSMUWAUVOYDUUNYSUVMWGTWOWPNUUPUVPEUVMUUCUU
      NUVMMUUOUVOYDUUNUVMYSWQTWIQUUPEUUCWJWKYRUUQUVBBUDJZUVCYRUVDUWPUVBUWRGUVIU
      WQYDUVABXNWMQRWNSUURUUTUUSUUPUUSEYTUUCUUNYTMUUOUUAYDUUNYTYSWQTWOWPNWRWSWT
      XAXBXCXDXEXBYDKXRCXFXGXHWTXNXRXRPXIXJ $.
  $}

  ${
    $d y A $.  $d y J $.  $d y K $.  $d y R $.  $d y X $.
    imasnopn.1 $e |- X = U. J $.
    $( If a relation graph is open, then an image set of a singleton is also
       open.  Corollary of proposition 4 of [BourbakiTop1] p.  I.26.
       (Contributed by Thierry Arnoux, 14-Jan-2018.) $)
    imasnopn $p |- ( ( ( J e. Top /\ K e. Top ) /\ ( R e. ( J tX K ) /\
      A e. X ) ) -> ( R " { A } ) e. K ) $=
      ( vy ctop wcel wa co cima cuni wss adantr eqid syl2anc wceq ad2antll cvv
      ctx csn cop cmpt ccnv crab nfv nfcv nfrab1 cxp txtop simprl eltopss txuni
      cv sseqtr4d imass1 syl xpimasn sseqtrd sseld pm4.71rd vex elimasng anbi2d
      wb mpan2 bitrd rabid syl6bbr eqrd mptpreima syl6eqr ccn ctopon cfv biimpi
      toptopon ad2antlr ad2antrr simprr cnmptc cnmptid cnmpt1t cnima eqeltrd )
      CHIZDHIZJZBCDUAKZIZAEIZJZJZBAUBZLZGDMZAGUOZUCZUDZUEBLZDWNWPWSBIZGWQUFZXAW
      NGWPXCWNGUGGWPUHXBGWQUIWNWRWPIZWRWQIZXBJZWRXCIWNXDXEXDJXFWNXDXEWNWPWQWRWN
      WPEWQUJZWOLZWQWNBXGNWPXHNWNBWJMZXGWNWJHIZWKBXINWIXJWMCDUKOWIWKWLULZBWJXIX
      IPUMQWIXGXIRWMCDEWQFWQPZUNOUPBXGWOUQURWLXHWQRWIWKEWQAUSSUTVAVBWNXDXBXEWLX
      DXBVFZWIWKWLWRTIXMGVCBAWRETVDVGSVEVHXBGWQVIVJVKGWQWSBWTWTPVLVMWNWTDWJVNKI
      WKXADIWNGAWRDCDWQWHDWQVOVPIZWGWMWHXNDWQXLVRVQVSZWNGADCWQEXOWGCEVOVPIZWHWM
      WGXPCEFVRVQVTWIWKWLWAWBWNGDWQXOWCWDXKBWTDWJWEQWF $.

    $( If a relation graph is closed, then an image set of a singleton is also
       closed.  Corollary of proposition 4 of [BourbakiTop1] p.  I.26.
       (Contributed by Thierry Arnoux, 14-Jan-2018.) $)
    imasncld $p |- ( ( ( J e. Top /\ K e. Top ) /\ ( R e. ( Clsd ` ( J tX K ) )
      /\ A e. X ) ) -> ( R " { A } ) e. ( Clsd ` K ) ) $=
      ( vy ctop wcel wa co ccld cfv cima cuni wss eqid syl wceq ad2antll ctx cv
      csn cop cmpt ccnv crab nfv nfcv nfrab1 simprl cldss txuni adantr sseqtr4d
      cxp imass1 xpimasn sseqtrd sseld pm4.71rd wb cvv vex elimasng mpan2 bitrd
      anbi2d syl6bbr eqrd mptpreima syl6eqr ccn ctopon toptopon biimpi ad2antlr
      rabid ad2antrr simprr cnmptc cnmptid cnmpt1t cnclima syl2anc eqeltrd ) CH
      IZDHIZJZBCDUAKZLMIZAEIZJZJZBAUCZNZGDOZAGUBZUDZUEZUFBNZDLMZWNWPWSBIZGWQUGZ
      XAWNGWPXDWNGUHGWPUIXCGWQUJWNWRWPIZWRWQIZXCJZWRXDIWNXEXFXEJXGWNXEXFWNWPWQW
      RWNWPEWQUPZWONZWQWNBXHPWPXIPWNBWJOZXHWNWKBXJPWIWKWLUKZBWJXJXJQULRWIXHXJSW
      MCDEWQFWQQZUMUNUOBXHWOUQRWLXIWQSWIWKEWQAURTUSUTVAWNXEXCXFWLXEXCVBZWIWKWLW
      RVCIXMGVDBAWREVCVEVFTVHVGXCGWQVRVIVJGWQWSBWTWTQVKVLWNWTDWJVMKIWKXAXBIWNGA
      WRDCDWQWHDWQVNMIZWGWMWHXNDWQXLVOVPVQZWNGADCWQEXOWGCEVNMIZWHWMWGXPCEFVOVPV
      SWIWKWLVTWAWNGDWQXOWBWCXKBWTDWJWDWEWF $.

    $d y Y $.
    imasnopn.2 $e |- Y = U. K $.
    $( If a relation graph is closed, then an image set of a singleton is also
       closed.  Corollary of proposition 4 of [BourbakiTop1] p.  I.26.
       (Contributed by Thierry Arnoux, 14-Jan-2018.) $)
    imasncls $p |- ( ( ( J e. Top /\ K e. Top ) /\ ( R C_ ( X X. Y )
      /\ A e. X ) ) -> ( ( cls ` K ) ` ( R " { A } ) )
        C_ ( ( ( cls ` ( J tX K ) ) ` R ) " { A } ) ) $=
      ( vy ctop wcel wa wss cima ccl cfv co sseqtrd ad2antll cvv cxp cv cop ctx
      cmpt ccnv csn cuni ctopon toptopon biimpi ad2antlr ad2antrr simprr cnmptc
      ccn cnmptid cnmpt1t simprl wceq adantr eqid cncls2i syl2anc crab nfv nfcv
      txuni nfrab1 imass1 xpimasn sseld pm4.71rd wb elimasng mpan2 anbi2d bitrd
      syl vex rabid syl6bbr eqrd mptpreima syl6eqr fveq2d txtop clsss3 sseqtr4d
      3sstr4d ) CJKZDJKZLZBEFUAZMZAEKZLZLZIFAIUBZUCZUEZUFZBNZDOPZPZXBBCDUDQZOPP
      ZNZBAUGZNZXDPXGXINZWRXADXFUPQKBXFUHZMZXEXHMWRIAWSDCDFWLDFUIPKZWKWQWLXNDFH
      UJUKULZWRIADCFEXOWKCEUIPKZWLWQWKXPCEGUJUKUMWMWOWPUNUOWRIDFXOUQURWRBWNXLWM
      WOWPUSZWMWNXLUTWQCDEFGHVHVAZRZBXADXFXLXLVBZVCVDWRXJXCXDWRXJWTBKZIFVEZXCWR
      IXJYBWRIVFZIXJVGYAIFVIWRWSXJKZWSFKZYALZWSYBKWRYDYEYDLYFWRYDYEWRXJFWSWRXJW
      NXINZFWRWOXJYGMXQBWNXIVJVSWPYGFUTWMWOEFAVKSZRVLVMWRYDYAYEWPYDYAVNZWMWOWPW
      STKZYIIVTZBAWSETVOVPSVQVRYAIFWAWBWCIFWTBXAXAVBZWDWEWFWRXKWTXGKZIFVEZXHWRI
      XKYNYCIXKVGYMIFVIWRWSXKKZYEYMLZWSYNKWRYOYEYOLYPWRYOYEWRXKFWSWRXKYGFWRXGWN
      MXKYGMWRXGXLWNWRXFJKZXMXGXLMWMYQWQCDWGVAXSBXFXLXTWHVDXRWIXGWNXIVJVSYHRVLV
      MWRYOYMYEWPYOYMVNZWMWOWPYJYRYKXGAWSETVOVPSVQVRYMIFWAWBWCIFWTXGXAYLWDWEWJ
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Quotient maps and quotient topology
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c KQ $.

  $( Extend class notation with the Kolmogorov quotient function. $)
  ckq $a class KQ $.

  ${
    $d j x y $.
    $( Define the Kolmogorov quotient.  This is a function on topologies which
       maps a topology to its quotient under the topological distinguishability
       map, which takes a point to the set of open sets that contain it.  Two
       points are mapped to the same image under this function iff they are
       topologically indistinguishable.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    df-kq $a |- KQ = ( j e. Top |-> ( j qTop
      ( x e. U. j |-> { y e. j | x e. y } ) ) ) $.
  $}

  ${
    $d s A $.  $d f j s F $.  $d f j s J $.  $d s V $.  $d s Y $.  $d s Z $.
    $d f j s X $.
    qtopval.1 $e |- X = U. J $.
    $( Value of the quotient topology function.  (Contributed by Mario
       Carneiro, 23-Mar-2015.) $)
    qtopval $p |- ( ( J e. V /\ F e. W ) ->
      ( J qTop F ) = { s e. ~P ( F " X ) | ( ( `' F " s ) i^i X ) e. J } ) $=
      ( vj vf wcel cvv cqtop ccnv cv cima cin cpw crab wceq elex co imaexg 3syl
      pwexg rabexg adantl cuni simpr simpl unieqd syl6eqr imaeq12d pweqd cnveqd
      wa imaeq1d ineq12d eleq12d rabeqbidv df-qtop ovmpt2ga mpd3an3 syl2an ) BC
      JBKJZAKJZBALUAAMZFNZOZEPZBJZFAEOZQZRZSZADJBCTADTVDVEVMKJZVNVEVOVDVEVKKJVL
      KJVOAEKUBVKKUDVJFVLKUEUCUFHIBAKKINZMZVGOZHNZUGZPZVSJZFVPVTOZQZRVMLKVSBSZV
      PASZUOZWBVJFWDVLWGWCVKWGVPAVTEWEWFUHZWGVTBUGEWGVSBWEWFUIZUJGUKZULUMWGWAVI
      VSBWGVRVHVTEWGVQVFVGWGVPAWHUNUPWJUQWIURUSIHFUTVAVBVC $.

    $( Value of the quotient topology function when ` F ` is a function on the
       base set.  (Contributed by Mario Carneiro, 23-Mar-2015.) $)
    qtopval2 $p |- ( ( J e. V /\ F : Z -onto-> Y /\ Z C_ X ) ->
      ( J qTop F ) = { s e. ~P Y | ( `' F " s ) e. J } ) $=
      ( wcel wfo wss cima cpw crab cvv wceq 3ad2ant2 syl2anc syl5sseq syl cqtop
      w3a co ccnv cv cin simp1 wf fof cuni uniexg 3ad2ant1 syl5eqel simp3 ssexd
      fex qtopval crn imassrn forn foima imass2 eqsstr3d eqssd cdm cnvimass fdm
      pweqd sstrd df-ss sylib eleq1d rabeqbidv eqtrd ) BCIZFEAJZFDKZUBZBAUAUCZA
      UDGUEZLZDUFZBIZGADLZMZNZWABIZGEMZNVRVOAOIZVSWFPVOVPVQUGVRFEAUHZFOIWIVPVOW
      JVQFEAUIQZVRFDOVRDBUJZOHVOVPWLOIVQBCUKULUMVOVPVQUNZUOFEOAUPRABCODGHUQRVRW
      CWGGWEWHVRWDEVRWDEVRAURZWDEADUSVPVOWNEPVQFEAUTQSVREAFLZWDVPVOWOEPVQFEAVAQ
      VRVQWOWDKWMFDAVBTVCVDVHVRWBWABVRWADKWBWAPVRWAFDVRAVEZWAFAVTVFVRWJWPFPWKFE
      AVGTSWMVIWADVJVKVLVMVN $.

    $( Value of the quotient topology function.  (Contributed by Mario
       Carneiro, 23-Mar-2015.) $)
    elqtop $p |- ( ( J e. V /\ F : Z -onto-> Y /\ Z C_ X ) ->
      ( A e. ( J qTop F ) <-> ( A C_ Y /\ ( `' F " A ) e. J ) ) ) $=
      ( vs wcel wfo wss w3a cqtop co ccnv cv cima wa cvv cpw crab qtopval2 wceq
      eleq2d imaeq2 eleq1d elrab wb uniexg syl5eqel 3ad2ant1 simp3 ssexd fornex
      cuni simp2 sylc elpw2g syl anbi1d syl5bb bitrd ) CDJZGFBKZGELZMZACBNOZJAB
      PZIQZRZCJZIFUAZUBZJZAFLZVIARZCJZSZVGVHVNABCDEFGIHUCUEVOAVMJZVRSVGVSVLVRIA
      VMVJAUDVKVQCVJAVIUFUGUHVGVTVPVRVGFTJZVTVPUIVGGTJVEWAVGGETVDVEETJVFVDECUPT
      HCDUJUKULVDVEVFUMUNVDVEVFUQGFTBUOURAFTUSUTVAVBVC $.

    $( The quotient topology is unaffected by restriction to the base set.
       This property makes it slightly more convenient to use, since we don't
       have to require that ` F ` be a function with domain ` X ` .
       (Contributed by Mario Carneiro, 23-Mar-2015.) $)
    qtopres $p |- ( F e. V -> ( J qTop F ) = ( J qTop ( F |` X ) ) ) $=
      ( vs vj vf wcel cvv cqtop co cres wceq ccnv cv cima cin cpw crab wa pweqi
      resima rabeq ax-mp residm cnveqi imaeq1i cnvresima 3eqtr3i eleq1i rabbiia
      wb a1i eqtr2i qtopval resexg sylan2 3eqtr4a expcom cuni df-qtop reldmmpt2
      wn c0 ovprc1 eqtr4d pm2.61d1 ) ACIZBJIZBAKLZBADMZKLZNZVJVIVNVJVIUAAOFPZQD
      RZBIZFADQZSZTZVLOZVOQZDRZBIZFVLDQZSZTZVKVMWGWDFVSTZVTWFVSNWGWHNWEVRADUCUB
      WDFWFVSUDUEWDVQFVSWDVQUMVOVSIWCVPBVLDMZOZVOQWBWCVPWJWAVOWIVLADUFUGUHDVOVL
      UIDVOAUIUJUKUNULUOABJCDFEUPVIVJVLJIVMWGNADCUQVLBJJDFEUPURUSUTVJVDVKVEVMBA
      KGHJJHPZOVOQGPZVAZRWLIFWKWMQSTKHGFVBVCZVFBVLKWNVFVGVH $.
  $}

  ${
    $d x y F $.  $d x y V $.  $d x y X $.  $d x Y $.  $d x y J $.
    $( The quotient topology is a topology.  (Contributed by Mario Carneiro,
       23-Mar-2015.) $)
    qtoptop2 $p |- ( ( J e. Top /\ F e. V /\ Fun F ) ->
      ( J qTop F ) e. Top ) $=
      ( vx vy ctop wcel wfun cqtop cuni wss cin wral cima elqtop syl3anc adantr
      co wa wb w3a cres wceq eqid qtopres 3ad2ant2 cv wi wal crn ccnv cpw simp1
      cdm wfo funres 3ad2ant3 funforn sylib dmres inss1 eqsstri simprbda sylibr
      a1i selpw ssrdv sstr2 syl5com sspwuni syl6ib ciun imauni simpl1 ralrimiva
      simplbda ssralv mpan9 iunopn syl2anc syl5eqel jcad sylibrd alrimiv biimpa
      adantrr simpld syl5ss inpreima syl simprd adantrl inopn eqeltrd mpbir2and
      ex ralrimivva cvv ovex istopg ax-mp sylanbrc ) BFGZACGZAHZUAZBAIRZBABJZUB
      ZIRZFXDXCXGXJUCXEABCXHXHUDZUEUFXFDUGZXJKZXLJZXJGZUHZDUIZXLEUGZLZXJGZEXJMD
      XJMZXJFGZXFXPDXFXMXNXIUJZKZXIUKZXNNZBGZSZXOXFXMYDYGXFXMXLYCULZKZYDXFXJYIK
      XMYJXFEXJYIXFXRXJGZXRYIGZXFYKSXRYCKZYLXFYKYMYEXRNZBGZXFXCXIUNZYCXIUOZYPXH
      KZYKYMYOSTXCXDXEUMZXFXIHZYQXEXCYTXDXHAUPUQZXIURUSZYRXFYPXHAUNZLXHAXHUTXHU
      UCVAVBVEZXRXIBFXHYCYPXKOPZVCEYCVFVDWPVGXLXJYIVHVIXLYCVJVKXFXMYGXFXMSZYFEX
      LYNVLZBEYEXLVMUUFXCYOEXLMZUUGBGXCXDXEXMVNXFYOEXJMXMUUHXFYOEXJXFYKYMYOUUEV
      PZVOYOEXLXJVQVREXLYNBVSVTWAWPWBXFXCYQYRXOYHTYSUUBUUDXNXIBFXHYCYPXKOPWCWDX
      FXTDEXJXJXFXLXJGZYKSZSZXTXSYCKZYEXSNZBGZUULXSXLYCXLXRVAUULXLYCKZYEXLNZBGZ
      XFUUJUUPUURSZYKXFUUJUUSXFXCYQYRUUJUUSTYSUUBUUDXLXIBFXHYCYPXKOPWEWFZWGWHUU
      LUUNUUQYNLZBUULYTUUNUVAUCXFYTUUKUUAQXLXRXIWIWJUULXCUURYOUVABGXFXCUUKYSQUU
      LUUPUURUUTWKXFYKYOUUJUUIWLUUQYNBWMPWNXFXTUUMUUOSTZUUKXFXCYQYRUVBYSUUBUUDX
      SXIBFXHYCYPXKOPQWOWQXJWRGYBXQYASTBXIIWSDEWRXJWTXAXBWN $.

    qtoptop.1 $e |- X = U. J $.
    $( The quotient topology is a topology.  (Contributed by Mario Carneiro,
       23-Mar-2015.) $)
    qtoptop $p |- ( ( J e. Top /\ F Fn X ) -> ( J qTop F ) e. Top ) $=
      ( ctop wcel wfn wa cvv wfun cqtop co simpl id topopn syl2anr fnfun adantl
      fnex qtoptop2 syl3anc ) BEFZACGZHUBAIFZAJZBAKLEFUBUCMUCUCCBFUDUBUCNBCDOCB
      ASPUCUEUBCAQRABITUA $.

    $( Value of the quotient topology function.  (Contributed by Mario
       Carneiro, 9-Apr-2015.) $)
    elqtop2 $p |- ( ( J e. V /\ F : X -onto-> Y ) ->
      ( A e. ( J qTop F ) <-> ( A C_ Y /\ ( `' F " A ) e. J ) ) ) $=
      ( wcel wfo wss cqtop co ccnv cima wa wb ssid elqtop mp3an3 ) CDHEFBIEEJAC
      BKLHAFJBMANCHOPEQABCDEFEGRS $.

    $( The base set of the quotient topology.  (Contributed by Mario Carneiro,
       23-Mar-2015.) $)
    qtopuni $p |- ( ( J e. Top /\ F : X -onto-> Y ) ->
      Y = U. ( J qTop F ) ) $=
      ( vx ctop wcel wfo wa cqtop co cuni wss ccnv cima ssid a1i syl elqtop2 wf
      wceq fof adantl fimacnv topopn adantr eqeltrd mpbir2and elssuni cpw simpl
      cv selpw sylibr syl6bi ssrdv sspwuni sylib eqssd ) BGHZCDAIZJZDBAKLZMZVCD
      VDHZDVENVCVFDDNZAOZDPZBHVGVCDQRVCVICBVCCDAUAZVICUBVBVJVACDAUCUDCDAUESVACB
      HVBBCEUFUGUHDABGCDETUIDVDUJSVCVDDUKZNVEDNVCFVDVKVCFUMZVDHVLDNZVHVLPBHZJZV
      LVKHZVLABGCDETVOVMVPVMVNULFDUNUOUPUQVDDURUSUT $.
  $}

  $( Value of the quotient topology function.  (Contributed by Mario Carneiro,
     9-Apr-2015.) $)
  elqtop3 $p |- ( ( J e. ( TopOn ` X ) /\ F : X -onto-> Y ) ->
    ( A e. ( J qTop F ) <-> ( A C_ Y /\ ( `' F " A ) e. J ) ) ) $=
    ( ctopon cfv wcel wfo cuni wss cqtop co ccnv cima wa wceq toponuni eqimss
    wb syl adantr eqid elqtop mpd3an3 ) CDFGZHZDEBIZDCJZKZACBLMHAEKBNAOCHPTUGUJ
    UHUGDUIQUJDCRDUISUAUBABCUFUIEDUIUCUDUE $.

  $( The base set of the quotient topology.  (Contributed by Mario Carneiro,
     22-Aug-2015.) $)
  qtoptopon $p |- ( ( J e. ( TopOn ` X ) /\ F : X -onto-> Y ) ->
    ( J qTop F ) e. ( TopOn ` Y ) ) $=
    ( ctopon cfv wcel wfo wa cqtop co ctop cuni wceq wfn wb toponuni syl syldan
    sylan foeq2 biimpa fofn topontop eqid qtoptop qtopuni istopon sylanbrc ) BC
    EFGZCDAHZIZBAJKZLGZDUMMNZUMDEFGUJUKABMZOZUNULUPDAHZUQUJUKURUJCUPNUKURPCBQCU
    PDAUARUBZUPDAUCRUJBLGZUQUNCBUDZABUPUPUEZUFTSUJUKURUOUSUJUTURUOVAABUPDVBUGTS
    DUMUHUI $.

  ${
    $d w x y z F $.  $d w x y z J $.  $d w x y z X $.  $d w x y z Y $.
    $( A quotient map is a continuous function into its quotient topology.
       (Contributed by Mario Carneiro, 23-Mar-2015.) $)
    qtopid $p |- ( ( J e. ( TopOn ` X ) /\ F Fn X ) ->
        F e. ( J Cn ( J qTop F ) ) ) $=
      ( vx ctopon cfv wcel wfn wa cqtop co ccn crn wf ccnv cv cima wral syldan
      wb wfo simpr dffn4 sylib fof syl wss elqtop3 simplbda ralrimiva qtoptopon
      iscn mpbir2and ) BCEFGZACHZIZABBAJKZLKGZCAMZANZAODPZQBGZDUQRZUPCUSAUAZUTU
      PUOVDUNUOUBCAUCUDZCUSAUEUFUPVBDUQUPVAUQGZVAUSUGZVBUNUOVDVFVGVBITVEVAABCUS
      UHSUIUJUNUOUQUSEFGZURUTVCITUNUOVDVHVEABCUSUKSDABUQCUSULSUM $.

    $( The quotient topology induced by the identity function is the original
       topology.  (Contributed by Mario Carneiro, 30-Aug-2015.) $)
    idqtop $p |- ( J e. ( TopOn ` X ) -> ( J qTop ( _I |` X ) ) = J ) $=
      ( vx ctopon cfv wcel cid cres cqtop co cv ccnv cima cnvresid imaeq1i wceq
      wss wa resiima adantl syl5eq eleq1d pm5.32da wf1o f1oi f1ofo mp1i elqtop3
      wfo wb mpdan toponss ex pm4.71rd 3bitr4d eqrdv ) ABDEFZCAGBHZIJZAUQCKZBQZ
      URLZUTMZAFZRZVAUTAFZRUTUSFZVFUQVAVDVFUQVARZVCUTAVHVCURUTMZUTVBURUTBNOVAVI
      UTPUQBUTSTUAUBUCUQBBURUIZVGVEUJBBURUDVJUQBUEBBURUFUGUTURABBUHUKUQVFVAUQVF
      VAUTABULUMUNUOUP $.

    qtopcmp.1 $e |- X = U. J $.
    ${
      qtopcmplem.1 $e |- ( J e. A -> J e. Top ) $.
      qtopcmplem.2 $e |- ( ( J e. A /\ F : X -onto-> U. ( J qTop F ) /\
         F e. ( J Cn ( J qTop F ) ) ) -> ( J qTop F ) e. A ) $.
      $( Lemma for ~ qtopcmp and ~ qtopconn .  (Contributed by Mario Carneiro,
         24-Mar-2015.) $)
      qtopcmplem $p |- ( ( J e. A /\ F Fn X ) -> ( J qTop F ) e. A ) $=
        ( wcel wfn wa cqtop co cuni wfo ccn simpl crn simpr sylib sylan wceq wb
        dffn4 ctop qtopuni sylan2b foeq3 syl ctopon cfv toptopon qtopid syl3anc
        mpbid ) CAHZBDIZJZUODCBKLZMZBNZBCUROLHZURAHUOUPPUQDBQZBNZUTUQUPVCUOUPRD
        BUCZSUQVBUSUAZVCUTUBUPUOVCVEVDUOCUDHZVCVEFBCDVBEUETUFVBUSDBUGUHUNUOCDUI
        UJHZUPVAUOVFVGFCDEUKSBCDULTGUM $.
    $}

    $( A quotient of a compact space is compact.  (Contributed by Mario
       Carneiro, 24-Mar-2015.) $)
    qtopcmp $p |- ( ( J e. Comp /\ F Fn X ) -> ( J qTop F ) e. Comp ) $=
      ( ccmp cmptop cqtop co cuni eqid cncmp qtopcmplem ) EABCDBFABBAGHZCMIZNJK
      L $.

    $( A quotient of a connected space is connected.  (Contributed by Mario
       Carneiro, 24-Mar-2015.) $)
    qtopconn $p |- ( ( J e. Conn /\ F Fn X ) -> ( J qTop F ) e. Conn ) $=
      ( cconn conntop cqtop co cuni eqid cnconn qtopcmplem ) EABCDBFABBAGHZCMIZ
      NJKL $.

    $( A quotient of a compactly generated space is compactly generated.
       (Contributed by Mario Carneiro, 9-Apr-2015.) $)
    qtopkgen $p |- ( ( J e. ran kGen /\ F Fn X ) ->
      ( J qTop F ) e. ran kGen ) $=
      ( vx ckgen crn wcel wa co ctop cfv wss cuni wceq syl sseqtr4d syl2anc ccn
      sylib cqtop kgentop qtoptop sylan cv ccnv cima elssuni adantl adantr eqid
      wfn kgenuni wfo simpll simplr dffn4 qtopuni ctopon qtopid kgencn3 eleqtrd
      toptopon cnima sylancom wb elqtop2 mpbir2and ex ssrdv iskgen2 sylanbrc )
      BFGZHZACULZIZBAUAJZKHZVQFLZVQMVQVMHVNBKHZVOVRBUBZABCDUCUDZVPEVSVQVPEUEZVS
      HZWCVQHZVPWDIZWEWCAGZMZAUFWCUGBHZWFWCVQNZWGWFWCVSNZWJWDWCWKMVPWCVSUHUIWFV
      RWJWKOVPVRWDWBUJZVQWJWJUKUMPQWFVTCWGAUNZWGWJOWFVNVTVNVOWDUOZWAPZWFVOWMVNV
      OWDUPZCAUQTZABCWGDURRQVPWDABVSSJZHWIWFABVQSJZWRWFBCUSLHZVOAWSHWFVTWTWOBCD
      VCTWPABCUTRWFVNVRWSWROWNWLBVQVARVBWCABVSVDVEWFVNWMWEWHWIIVFWNWQWCABVMCWGD
      VGRVHVIVJVQVKVL $.

    $( An injection maps bases to bases.  (Contributed by Mario Carneiro,
       27-Aug-2015.) $)
    basqtop $p |- ( ( J e. TopBases /\ F : X -1-1-onto-> Y ) ->
      ( J qTop F ) e. TopBases ) $=
      ( vx vy vw ctb wcel wa cv cin wss cima wb elqtop2 wceq syl2anc syl vz cpw
      wf1o cqtop co cuni wral ccnv wfo f1ofo anbi12d sylan2 w3a simpl1l simpl2r
      cfv wrex simpl3r wfn simpl1r f1ocnv f1ofn 3syl simpl2l inss1 simpr sseldi
      fnfvima syl3anc simpl3l inss2 basis2 syl22anc adantr simp2l syl5ss sselda
      elind f1ocnvfv2 simprrr syl6ss cdm cnvimass f1odm syl5sseq sstrd eqeltrrd
      simprrl crn imassrn forn wf1 f1of1 f1imacnv simprl eqeltrd mpbir2and wfun
      fnfun inpreima sseqtr4d funimass3 mpbird vex inex1 elpw2 sylibr rexlimddv
      elunii ex ssrdv 3expib sylbid ralrimivv cvv ovex isbasisg ax-mp ) BIJZCDA
      UCZKZFLZGLZMZBAUDUEZYDUBZMZUFZNZGYEUGFYEUGZYEIJZYAYIFGYEYEYAYBYEJZYCYEJZK
      ZYBDNZAUHZYBOZBJZKZYCDNZYPYCOZBJZKZKZYIXTXSCDAUIZYNUUDPCDAUJZXSUUEKYLYSYM
      UUCYBABICDEQYCABICDEQUKULYAYSUUCYIYAYSUUCUMZUAYDYHUUGUALZYDJZUUHYHJZUUGUU
      IKZUUHYPUPZHLZJZUUMYQUUAMZNZKZUUJHBUUKXSYRUUBUULUUOJUUQHBUQXSXTYSUUCUUIUN
      ZYOYRYAUUCUUIUOYTUUBYAYSUUIURUUKYQUUAUULUUKYPDUSZYOUUHYBJUULYQJUUKXTDCYPU
      CUUSXSXTYSUUCUUIUTZCDAVADCYPVBVCZYOYRYAUUCUUIVDUUKYDYBUUHYBYCVEZUUGUUIVFZ
      VGDYBYPUUHVHVIUUKUUSYTUUHYCJUULUUAJUVAYTUUBYAYSUUIVJUUKYDYCUUHYBYCVKUVCVG
      DYCYPUUHVHVIVRHUULBYQUUAVLVMUUKUUMBJZUUQKZKZUUHAUUMOZJUVGYGJUUJUVFUULAUPZ
      UUHUVGUVFXTUUHDJZUVHUUHRUUKXTUVEUUTVNZUUKUVIUVEUUGYDDUUHUUGYDYBDUVBYAYOYR
      UUCVOVPVQVNCDUUHAVSSUVFACUSZUUMCNZUUNUVHUVGJUVFXTUVKUVJCDAVBTZUVFUUMYQCUV
      FUUMUUOYQUUKUVDUUNUUPVTZYQUUAVEWAZUVFAWBZYQCAYBWCZUVFXTUVPCRUVJCDAWDTWEWF
      ZUUKUVDUUNUUPWHCUUMAUULVHVIWGUVFYEYFUVGUVFUVGYEJZUVGDNZYPUVGOZBJZUVFAWIZU
      VGDAUUMWJUVFUUEUWCDRUVFXTUUEUVJUUFTZCDAWKTWEUVFUWAUUMBUVFCDAWLZUVLUWAUUMR
      UVFXTUWEUVJCDAWMTUVRCDUUMAWNSUUKUVDUUQWOWPUVFXSUUEUVSUVTUWBKPUUKXSUVEUURV
      NUWDUVGABICDEQSWQUVFUVGYDNZUVGYFJUVFUWFUUMYPYDOZNZUVFUUMUUOUWGUVNUVFUVKAW
      RZUWGUUORUVMCAWSZYBYCAWTVCXAUVFUWIUUMUVPNUWFUWHPUVFUVKUWIUVMUWJTUVFUUMYQU
      VPUVOUVQWAUUMYDAXBSXCUVGYDYBYCFXDXEXFXGVRUUHUVGYGXISXHXJXKXLXMXNYEXOJYKYJ
      PBAUDXPFGYEXOXQXRXG $.

    $( An injection maps generated topologies to each other.  (Contributed by
       Mario Carneiro, 27-Aug-2015.) $)
    tgqtop $p |- ( ( J e. TopBases /\ F : X -1-1-onto-> Y ) ->
      ( ( topGen ` J ) qTop F ) = ( topGen ` ( J qTop F ) ) ) $=
      ( vx vy vz vw ctb wcel wa cfv cv wss cima cuni wb syl syl2anc wf1o ctg co
      cqtop ccnv cpw cin wral wfun cdm f1ocnv ad2antlr simpr crn df-rn wfo wceq
      f1ofun f1ofo syl5eqr sseqtr4d funimass4 dfss3 inss1 simprl sseldi elqtop2
      forn sylan2 ad3antrrr mpbid simprd inss2 elpwid imass2 elpwg mpbird elind
      wrex wfn simp-4r f1ofn ad2antrr sstrd simprr fnfvima syl3anc eleq2 rspcev
      rexlimdvaa funimass2 wf1 elssuni syl6sseqr f1imacnv eqeltrd mpbir2and vex
      f1of1 elpw2 sylibr sselda adantr f1ocnvfv2 adantl eqeltrrd impbid 3bitr4g
      eluni2 ralbidva syl5bb bitr4d eltg cvv ovex mp1i 3bitr4d pm5.32da tgtopon
      ctopon fveq2i syl6eleqr elqtop3 unitg ax-mp simpl syl6bi sspwuni syl5eqss
      selpw ssrdv sylib sseld syl6ib pm4.71rd eqrdv ) BJKZCDAUAZLZFBUBMZAUDUCZB
      AUDUCZUBMZYSFNZDOZAUEZUUDPZYTKZLZUUEUUDUUCKZLUUDUUAKZUUJYSUUEUUHUUJYSUUEL
      ZUUGBUUGUFZUGZQZOZUUDUUBUUDUFZUGZQZOZUUHUUJUULUUPGNZUUFMZUUOKZGUUDUHZUUTU
      ULUUFUIZUUDUUFUJZOUUPUVDRYRUVEYQUUEYRDCUUFUAZUVECDAUKZDCUUFURSULUULUUDDUV
      FYSUUEUMZUULUVFAUNZDAUOUULCDAUPZUVJDUQYRUVKYQUUECDAUSZULCDAVHSUTVAGUUDUUO
      UUFVBTUUTUVAUUSKZGUUDUHUULUVDGUUDUUSVCUULUVMUVCGUUDUULUVAUUDKZLZUVAHNZKZH
      UURVSZUVBINZKZIUUNVSZUVMUVCUVOUVRUWAUVOUVQUWAHUURUVOUVPUURKZUVQLZLZUUFUVP
      PZUUNKUVBUWEKZUWAUWDBUUMUWEUWDUVPDOZUWEBKZUWDUVPUUBKZUWGUWHLZUWDUURUUBUVP
      UUBUUQVDUVOUWBUVQVEZVFYSUWIUWJRZUUEUVNUWCYRYQUVKUWLUVLUVPABJCDEVGVIVJVKVL
      ZUWDUWEUUMKZUWEUUGOZUWDUVPUUDOUWOUWDUVPUUDUWDUURUUQUVPUUBUUQVMUWKVFVNZUVP
      UUDUUFVOSUWDUWHUWNUWORUWMUWEUUGBVPSVQVRUWDUUFDVTZUWGUVQUWFUWDUVGUWQUWDYRU
      VGYQYRUUEUVNUWCWAUVHSDCUUFWBSUWDUVPUUDDUWPUULUUEUVNUWCUVIWCWDUVOUWBUVQWED
      UVPUUFUVAWFWGUVTUWFIUWEUUNUVSUWEUVBWHWITWJUVOUVTUVRIUUNUVOUVSUUNKZUVTLZLZ
      AUVSPZUURKUVAUXAKZUVRUWTUUBUUQUXAUWTUXAUUBKZUXADOZUUFUXAPZBKZUWTUXAUUDDUW
      TAUIZUVSUUGOUXAUUDOZUWTYRUXGYQYRUUEUVNUWSWAZCDAURSUWTUVSUUGUWTUUNUUMUVSBU
      UMVMUVOUWRUVTVEZVFVNUVSUUDAWKTZUULUUEUVNUWSUVIWCWDUWTUXEUVSBUWTCDAWLZUVSC
      OZUXEUVSUQUWTYRUXLUXICDAWSSUWTUVSBKZUXMUWTUUNBUVSBUUMVDUXJVFZUXNUVSBQZCUV
      SBWMEWNSZCDUVSAWOTUXOWPYSUXCUXDUXFLRZUUEUVNUWSYRYQUVKUXRUVLUXAABJCDEVGVIV
      JWQUWTUXHUXAUUQKUXKUXAUUDFWRWTXAVRUWTUVBAMZUVAUXAUWTYRUVADKZUXSUVAUQUXIUV
      OUXTUWSUULUUDDUVAUVIXBXCCDUVAAXDTUWTACVTZUXMUVTUXSUXAKYSUYAUUEUVNUWSYRUYA
      YQCDAWBXEVJUXQUVOUWRUVTWECUVSAUVBWFWGXFUVQUXBHUXAUURUVPUXAUVAWHWITWJXGHUV
      AUURXIIUVBUUNXIXHXJXKXLYQUUHUUPRYRUUEUUGBJXMWCUUBXNKZUUJUUTRUULBAUDXOZUUD
      UUBXNXMXPXQXRYSYTCXTMZKUVKUUKUUIRYSYTUXPXTMZUYDYQYTUYEKYRBXSXCCUXPXTEYAYB
      YRUVKYQUVLXEUUDAYTCDYCTYSUUJUUEYSUUJUUDDUFZKZUUEYSUUCUYFUUDYSUUCQZDOUUCUY
      FOYSUYHUUBQZDUYBUYHUYIUQUYCUUBXNYDYEYSUUBUYFOUYIDOYSFUUBUYFYSUUDUUBKZUUEU
      UGBKZLZUYGYRYQUVKUYJUYLRUVLUUDABJCDEVGVIUYLUUEUYGUUEUYKYFFDYJZXAYGYKUUBDY
      HYLYIUUCDYHXAYMUYMYNYOXQYP $.
  $}

  $( The property of being a closed set in the quotient topology.  (Contributed
     by Mario Carneiro, 24-Mar-2015.) $)
  qtopcld $p |- ( ( J e. ( TopOn ` X ) /\ F : X -onto-> Y ) ->
    ( A e. ( Clsd ` ( J qTop F ) ) <->
      ( A C_ Y /\ ( `' F " A ) e. ( Clsd ` J ) ) ) ) $=
    ( ctopon cfv wcel wa ccld cuni wss cdif ccnv cima ctop wb wceq syl ad2antlr
    wfo cqtop qtoptopon topontop eqid iscld 3syl toponuni sseq2d difeq1d eleq1d
    co anbi12d elqtop3 adantr difss biantrur wfun fofun funcnvcnv imadif wf fof
    fimacnv ad2antrr cdm cnvimass wfn fofn fndm syl5sseq sseqtrd iscld2 syl2anc
    eqtrd bitr4d syl5bbr bitrd pm5.32da 3bitr2d ) CDFGHZDEBUAZIZACBUBULZJGHZAWD
    KZLZWFAMZWDHZIZAELZEAMZWDHZIWKBNZAOZCJGHZIWCWDEFGHZWDPHWEWJQBCDEUCZEWDUDAWD
    WFWFUEUFUGWCWKWGWMWIWCEWFAWCWQEWFRWREWDUHSZUIWCWLWHWDWCEWFAWSUJUKUMWCWKWMWP
    WCWKIZWMWLELZWNWLOZCHZIZWPWCWMXDQWKWLBCDEUNUOXDXCWTWPXAXCEAUPUQWTXCCKZWOMZC
    HZWPWTXBXFCWTXBWNEOZWOMZXFWTBURZWNNURXBXIRWBXJWAWKDEBUSTBUTEAWNVAUGWTXHXEWO
    WTXHDXEWBXHDRZWAWKWBDEBVBXKDEBVCDEBVDSTWADXERWBWKDCUHVEZVOUJVOUKWTCPHZWOXEL
    WPXGQWAXMWBWKDCUDVEWTWODXEWTBVFZWODBAVGWBXNDRZWAWKWBBDVHXODEBVIDBVJSTVKXLVL
    WOCXEXEUEVMVNVPVQVRVSVT $.

  ${
    $d f g w x y F $.  $d f g x J $.  $d f g w x K $.  $d w x y X $.  $d x Z $.
    $d f g w x y G $.  $d f g x y ph $.  $d f w x Y $.
    $( Universal property of a quotient map.  (Contributed by Mario Carneiro,
       23-Mar-2015.) $)
    qtopcn $p |- ( ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Z ) ) /\
      ( F : X -onto-> Y /\ G : Y --> Z ) ) ->
      ( G e. ( ( J qTop F ) Cn K ) <-> ( G o. F ) e. ( J Cn K ) ) ) $=
      ( vx ctopon cfv wcel wa wf ccnv cima co wral wb syl2anc biantrurd cv ccom
      wfo ccn wss simplll simplrl elqtop3 cdm cnvimass simplrr fdm syl syl5sseq
      cqtop bitr4d cnvco imaeq1i imaco eqtri eleq1i syl6bbr ralbidva simprr fof
      wceq ad2antrl fco 3bitr3d qtoptopon ad2ant2r simplr iscn adantr 3bitr4d )
      CEIJKZDGIJKZLZEFAUCZFGBMZLZLZVTBNZHUAZOZCAUOPZKZHDQZLZEGBAUBZMZWJNZWDOZCK
      ZHDQZLZBWFDUDPKZWJCDUDPKZWBWHWOWIWPWBWGWNHDWBWDDKZLZWGANZWEOZCKZWNWTWGWEF
      UEZXCLZXCWTVPVSWGXERVPVQWAWSUFVRVSVTWSUGWEACEFUHSWTXDXCWTBUIZWEFBWDUJWTVT
      XFFVFVRVSVTWSUKFGBULUMUNTUPWMXBCWMXAWCUBZWDOXBWLXGWDBAUQURXAWCWDUSUTVAVBV
      CWBVTWHVRVSVTVDZTWBWKWOWBVTEFAMZWKXHVSXIVRVTEFAVEVGEFGBAVHSTVIWBWFFIJKZVQ
      WQWIRVPVSXJVQVTACEFVJVKVPVQWAVLHBWFDFGVMSVRWRWPRWAHWJCDEGVMVNVO $.

    $( A surjective continuous function from ` J ` to ` K ` induces a topology
       ` J qTop F ` on the base set of ` K ` .  This topology is in general
       finer than ` K ` .  Together with ~ qtopid , this implies that
       ` J qTop F ` is the finest topology making ` F ` continuous, i.e. the
       final topology with respect to the family ` { F } ` .  (Contributed by
       Mario Carneiro, 24-Mar-2015.) $)
    qtopss $p |- ( ( F e. ( J Cn K ) /\ K e. ( TopOn ` Y ) /\ ran F = Y ) ->
        K C_ ( J qTop F ) ) $=
      ( vx ccn co wcel ctopon cfv crn wceq w3a cqtop cv wa wss ccnv cima syl wb
      3ad2antl2 cnima 3ad2antl1 cuni wfo ctop simpl1 cntop1 eqid toptopon sylib
      toponss wfn simpl2 cnf2 syl3anc ffn simpl3 df-fo sylanbrc elqtop3 syl2anc
      wf mpbir2and ex ssrdv ) ABCFGHZCDIJHZAKDLZMZECBANGZVKEOZCHZVMVLHZVKVNPZVO
      VMDQZARVMSBHZVIVHVNVQVJVMCDUMUBVHVIVNVRVJVMABCUCUDVPBBUEZIJHZVSDAUFZVOVQV
      RPUAVPBUGHZVTVPVHWBVHVIVJVNUHZABCUITBVSVSUJUKULZVPAVSUNZVJWAVPVSDAVDZWEVP
      VTVIVHWFWDVHVIVJVNUOWCABCVSDUPUQVSDAURTVHVIVJVNUSVSDAUTVAVMABVSDVBVCVEVFV
      G $.

    qtopeu.1 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    qtopeu.3 $e |- ( ph -> F : X -onto-> Y ) $.
    qtopeu.4 $e |- ( ph -> G e. ( J Cn K ) ) $.
    qtopeu.5 $e |- ( ( ph /\ ( x e. X /\ y e. X /\ ( F ` x ) = ( F ` y ) ) )
      -> ( G ` x ) = ( G ` y ) ) $.
    $( Universal property of the quotient topology.  If ` G ` is a function
       from ` J ` to ` K ` which is equal on all equivalent elements under
       ` F ` , then there is a unique continuous map ` f : ( J / F ) --> K `
       such that ` G = f o. F ` , and we say that ` G ` "passes to the
       quotient".  (Contributed by Mario Carneiro, 24-Mar-2015.) $)
    qtopeu $p |- ( ph -> E! f e. ( ( J qTop F ) Cn K ) G = ( f o. F ) ) $=
      ( vw wceq wa wcel cfv syl vg cv ccom cqtop co ccn wrex wral wreu ccnv csn
      wi cima cuni cmpt wfn wb wfo fofn adantr fniniseg w3a eqcom 3anbi3i bitri
      3anass sylan2br eqcomd expr sylbid ralrimiv wss wf ctopon cntop2 toptopon
      ctop eqid sylib cnf2 syl3anc ffn cdm cnvimass fof syl5sseq ralima syl2anc
      fdm eqeq1 mpbird c0 wne cin eleq2d biimpar simpr mpbir2and inelcm imadisj
      eqidd necon3bii sylibr eqsn unieqd fvex unisn syl6req mpteq2dva ffvelrnda
      feqmptd sneq imaeq2d fmptco 3eqtr4d eqeltrrd ralrimiva eqcoms cbvfo mpbid
      eleq1d qtopcn syl22anc coeq1 eqeq2d rspcev qtoptopon simprl simprr cocan2
      fmpt eqtr2 syl5ib ralrimivva reu4 sylanbrc ) AFDUBZEUCZPZDGEUDUEZHUFUEZUG
      ZYSFUAUBZEUCZPZQZYQUUCPZULZUAUUAUHDUUAUHYSDUUAUIAOJFEUJZOUBZUKZUMZUMZUNZU
      OZUUARZFUUOEUCZPZUUBAUUPUUQGHUFUEZRZAFUUQUUSABIBUBZFSZUOBIFUUIUVAESZUKZUM
      ZUMZUNZUOFUUQABIUVBUVGAUVAIRZQZUVGUVBUKZUNUVBUVIUVFUVJUVIUVFUVJPZUUJUVBPZ
      OUVFUHZUVIUVMCUBZFSZUVBPZCUVEUHZUVIUVPCUVEUVIUVNUVERZUVNIRZUVNESZUVCPZQZU
      VPUVIEIUPZUVRUWBUQAUWCUVHAIJEURZUWCLIJEUSTUTZIUVCUVNEVATAUVHUWBUVPAUVHUWB
      QZQUVBUVOUWFAUVHUVSUVCUVTPZVBZUVBUVOPUWHUVHUVSUWAVBUWFUWGUWAUVHUVSUVCUVTV
      CVDUVHUVSUWAVFVENVGVHVIVJVKUVIFIUPZUVEIVLUVMUVQUQAUWIUVHAIHUNZFVMZUWIAGIV
      NSRZHUWJVNSRZFUUSRZUWKKAHVQRZUWMAUWNUWOMFGHVOTHUWJUWJVRVPVSZMFGHIUWJVTWAZ
      IUWJFWBTUTUVIEWCZUVEIEUVDWDAUWRIPZUVHAIJEVMZUWSAUWDUWTLIJEWETZIJEWITUTWFU
      VLUVPOCIUVEFUUJUVOUVBWJWGWHWKUVIUVFWLWMZUVKUVMUQUVIFWCZUVEWNZWLWMZUXBUVIU
      VAUXCRZUVAUVERZUXEAUXFUVHAUXCIUVAAUWKUXCIPUWQIUWJFWITWOWPUVIUXGUVHUVCUVCP
      ZAUVHWQUVIUVCXAUVIUWCUXGUVHUXHQUQUWEIUVCUVAEVATWRUVAUXCUVEWSWHUVFWLUXDWLF
      UVEWTXBXCOUVFUVBXDTWKXEUVBUVAFXFXGXHZXIABIUWJFUWQXKABOIJUVCUUNUVGEUUOAIJU
      VAEUXAXJABIJEUXAXKAUUOXAUUJUVCPZUUMUVFUXJUULUVEFUXJUUKUVDUUIUUJUVCXLXMXMX
      EZXNXOZMXPAUWLUWMUWDJUWJUUOVMZUUPUUTUQKUWPLAUUNUWJRZOJUHZUXMAUVGUWJRZBIUH
      ZUXOAUXPBIUVIUVBUVGUWJUXIAIUWJUVAFUWQXJXPXQAUWDUXQUXOUQLUXPUXNBOIJEUVCUUJ
      PUVGUUNUWJUVGUUNPUUJUVCUXJUUNUVGUXKVHXRYAXSTXTOJUWJUUNUUOUUOVRYKVSEUUOGHI
      JUWJYBYCWKUXLYSUURDUUOUUAYQUUOPYRUUQFYQUUOEYDYEYFWHAUUHDUAUUAUUAUUFYRUUDP
      ZAYQUUARZUUCUUARZQZQZUUGFYRUUDYLUYBUWDYQJUPZUUCJUPZUXRUUGUQAUWDUYALUTUYBJ
      UWJYQVMZUYCUYBYTJVNSRZUWMUXSUYEAUYFUYAAUWLUWDUYFKLEGIJYGWHUTZAUWMUYAUWPUT
      ZAUXSUXTYHYQYTHJUWJVTWAJUWJYQWBTUYBJUWJUUCVMZUYDUYBUYFUWMUXTUYIUYGUYHAUXS
      UXTYIUUCYTHJUWJVTWAJUWJUUCWBTIJEYQUUCYJWAYMYNYSUUEDUAUUAUUGYRUUDFYQUUCEYD
      YEYOYP $.
  $}

  ${
    $d x A $.  $d x F $.  $d x J $.  $d x ph $.  $d x U $.
    qtoprest.2 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    qtoprest.3 $e |- ( ph -> F : X -onto-> Y ) $.
    qtoprest.4 $e |- ( ph -> U C_ Y ) $.
    qtoprest.5 $e |- ( ph -> A = ( `' F " U ) ) $.
    qtoprest.6 $e |- ( ph -> ( A e. J \/ A e. ( Clsd ` J ) ) ) $.
    $( If ` A ` is a saturated open or closed set (where saturated means that
       ` A = ( ``' F " U ) ` for some ` U ` ), then the restriction of the
       quotient map ` F ` to ` A ` is a quotient map.  (Contributed by Mario
       Carneiro, 24-Mar-2015.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
    qtoprest $p |- ( ph -> ( ( J qTop F ) |`t U ) =
      ( ( J |`t A ) qTop ( F |` A ) ) ) $=
      ( wcel cfv wceq wss syl syl2anc wa ad2antrr vx cqtop co crest cres ctopon
      ccn crn cuni wfn wfo fofn qtopid ccnv cima cnvimass fndm syl5sseq eqsstrd
      toponuni sseqtrd eqid cnrest wb qtoptopon df-ima imaeq2d foimacnv syl5eqr
      cdm eqtrd eqimss cnrest2 syl3anc mpbid resttopon qtopss cv fnfun sseqtr4d
      fores foeq3 elqtop3 cin cnvresima imass2 adantl adantr df-ss sylib syl5eq
      wfun eleq1d ccld simplrl ctop cvv topontop toponmax fornex ssexd restopn2
      sylc sstrd sylan simprbda adantrl mpbir2and elrestr eqeltrrd cdif difeq1d
      an32s ssdifssd funcnvcnv imadif 3syl eqtr4d simpr simplrr opncld restcldr
      eqeltrd qtopcld difssd restcldi isopn2 mpbird mpjaodan expr expimpd ssrdv
      wo sylbid eqssd ) AEDUBUCZCUDUCZEBUDUCZDBUEZUBUCZAYSYRYQUGUCMZYQCUFNMZYSU
      HZCOZYQYTPAYSYRYPUGUCMZUUAADEYPUGUCMZBEUIZPUUEAEFUFNMZDFUJZUUFHAFGDUKZUUI
      IFGDULQZDEFUMRABFUUGABDUNZCUOZFKADVJZUUMFDCUPAUUIUUNFOUUKFDUQQZURUSZAUUHF
      UUGOHFEUTQVABDEYPUUGUUGVBVCRAYPGUFNMZUUCCPZCGPZUUEUUAVDAUUHUUJUUQHIDEFGVE
      RZAUUDUURAUUCDBUOZCDBVFAUVADUUMUOZCABUUMDKVGAUUJUUSUVBCOIJFGCDVHRVKZVIZUU
      CCVLQJCYSYRYPGVMVNVOAUUQUUSUUBUUTJCYPGVPRZUVDYSYRYQCVQVNAUAYTYQAUAVRZYTMZ
      UVFCPZYSUNUVFUOZYRMZSZUVFYQMZAYRBUFNMZBCYSUKZUVGUVKVDAUUHBFPUVMHUUPBEFVPR
      ZABUVAYSUKZUVNADWLZBUUNPUVPAUUIUVQUUKFDVSQZABFUUNUUPUUOVTBDWARAUVACOUVPUV
      NVDUVCUVACBYSWBQVOUVFYSYRBCWCRAUVHUVJUVLAUVHSZUVJUULUVFUOZYRMZUVLUVSUVIUV
      TYRUVSUVIUVTBWDZUVTBUVFDWEUVSUVTBPZUWBUVTOUVSUVTUUMBUVHUVTUUMPAUVFCUULWFW
      GABUUMOZUVHKWHVTUVTBWIWJWKWMAUVHUWAUVLAUVHUWASZSZBEMZUVLBEWNNZMZUWFUWGSZU
      VFCWDZUVFYQUWJUVHUWKUVFOAUVHUWAUWGWOZUVFCWIWJUWJYPWPMZCWQMZUVFYPMZUWKYQMA
      UWMUWEUWGAUUQUWMUUTGYPWRQTAUWNUWEUWGACGWQAFEMZUUJGWQMAUUHUWPHFEWSQIFGEDWT
      XCJXATUWJUWOUVFGPZUVTEMZUWJUVFCGUWLAUUSUWEUWGJTXDAUWGUWEUWRAUWGSZUWAUWRUV
      HUWSUWAUWRUWCAEWPMZUWGUWAUWRUWCSVDAUUHUWTHFEWRQBUVTEXBXEXFXGXMAUWOUWQUWRS
      VDZUWEUWGAUUHUUJUXAHIUVFDEFGWCRTXHUVFCYPWPWQXIVNXJUWFUWISZUVLYQUIZUVFXKZY
      QWNNZMZUXBCUVFXKZUXDUXEUXBCUXCUVFUXBUUBCUXCOAUUBUWEUWIUVETZCYQUTQZXLUXBCY
      PUIZPUXGYPWNNMZUXGCPUXGUXEMUXBCGUXJAUUSUWEUWIJTZUXBUUQGUXJOAUUQUWEUWIUUTT
      GYPUTQVAUXBUXKUXGGPZUULUXGUOZUWHMZUXBCGUVFUXLXNUXBUXNBUVTXKZUWHUXBUXNUUMU
      VTXKZUXPUXBUVQUULUNWLUXNUXQOAUVQUWEUWIUVRTDXOCUVFUULXPXQUXBBUUMUVTAUWDUWE
      UWIKTXLXRUXBUWIUXPYRWNNZMUXPUWHMUWFUWIXSUXBUXPYRUIZUVTXKZUXRUXBBUXSUVTUXB
      UVMBUXSOAUVMUWEUWIUVOTZBYRUTQXLUXBYRWPMZUWAUXTUXRMUXBUVMUYBUYABYRWRQAUVHU
      WAUWIXTUVTYRUXSUXSVBYARYCBUXPEYBRYCAUXKUXMUXOSVDZUWEUWIAUUHUUJUYCHIUXGDEF
      GYDRTXHUXBCUVFYECUXGYPUXJUXJVBYFVNXJUXBYQWPMZUVFUXCPUVLUXFVDUXBUUBUYDUXHC
      YQWRQUXBUVFCUXCAUVHUWAUWIWOUXIVAUVFYQUXCUXCVBYGRYHAUWGUWIYMUWELWHYIYJYNYK
      YNYLYO $.
  $}

  ${
    $d x y F $.  $d x y J $.  $d x y K $.  $d x y ph $.  $d x Y $.
    qtopomap.4 $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    qtopomap.5 $e |- ( ph -> F e. ( J Cn K ) ) $.
    qtopomap.6 $e |- ( ph -> ran F = Y ) $.
    ${
      qtopomap.7 $e |- ( ( ph /\ x e. J ) -> ( F " x ) e. K ) $.
      $( If ` F ` is a surjective continuous open map, then it is a quotient
         map.  (An open map is a function that maps open sets to open sets.)
         (Contributed by Mario Carneiro, 24-Mar-2015.) $)
      qtopomap $p |- ( ph -> K = ( J qTop F ) ) $=
        ( vy co wcel ctopon cfv wceq wss syl3anc cv cima ccn crn qtopss ccnv wa
        cqtop cuni wfo wb ctop cntop1 syl eqid toptopon sylib wfn wf cnf2 df-fo
        sylanbrc elqtop3 syl2anc foimacnv sylan adantrr simprr ralrimiva adantr
        ffn wral imaeq2 eleq1d rspcv sylc eqeltrrd ex sylbid ssrdv eqssd ) AEDC
        UFLZACDEUALMZEFNOMZCUBFPZEVTQHGICDEFUCRAKVTEAKSZVTMZWDFQZCUDWDTZDMZUEZW
        DEMZADDUGZNOMZWKFCUHZWEWIUIADUJMZWLAWAWNHCDEUKULDWKWKUMUNUOZACWKUPZWCWM
        AWKFCUQZWPAWLWBWAWQWOGHCDEWKFURRWKFCVIULIWKFCUSUTZWDCDWKFVAVBAWIWJAWIUE
        ZCWGTZWDEAWFWTWDPZWHAWMWFXAWRWKFWDCVCVDVEWSWHCBSZTZEMZBDVJZWTEMZAWFWHVF
        AXEWIAXDBDJVGVHXDXFBWGDXBWGPXCWTEXBWGCVKVLVMVNVOVPVQVRVS $.
    $}

    qtopcmap.7 $e |- ( ( ph /\ x e. ( Clsd ` J ) ) ->
      ( F " x ) e. ( Clsd ` K ) ) $.
    $( If ` F ` is a surjective continuous closed map, then it is a quotient
       map.  (A closed map is a function that maps closed sets to closed sets.)
       (Contributed by Mario Carneiro, 24-Mar-2015.) $)
    qtopcmap $p |- ( ph -> K = ( J qTop F ) ) $=
      ( wcel cfv wceq wss cima ctop syl syl2anc cdif adantr vy cqtop ccn ctopon
      co crn qtopss syl3anc cv ccnv wa cuni wfo wb cntop1 wfn wf toptopon sylib
      eqid cnf2 ffn df-fo sylanbrc elqtop2 ccld difss foimacnv sylancl toponuni
      difeq1d eqtrd wral wfun fofun funcnvcnv imadif 4syl fimacnv simprr opncld
      eqeltrd ralrimiva imaeq2 eleq1d rspcv sylc eqeltrrd simprl sseqtrd isopn2
      topontop mpbird ex sylbid ssrdv eqssd ) AEDCUBUEZACDEUCUEKZEFUDLKZCUFFMZE
      WRNHGICDEFUGUHAUAWREAUAUIZWRKZXBFNZCUJZXBOZDKZUKZXBEKZADPKZDULZFCUMZXCXHU
      NAWSXJHCDEUOQZACXKUPZXAXLAXKFCUQZXNADXKUDLKZWTWSXOAXJXPXMDXKXKUTZURUSGHCD
      EXKFVAUHZXKFCVBQIXKFCVCVDZXBCDPXKFXQVERAXHXIAXHUKZXIEULZXBSZEVFLZKZXTCXEF
      XBSZOZOZYBYCXTYGYEYBXTXLYEFNYGYEMAXLXHXSTZFXBVGXKFYECVHVIXTFYAXBXTWTFYAMA
      WTXHGTZFEVJQZVKVLXTYFDVFLZKCBUIZOZYCKZBYKVMZYGYCKZXTYFXKXFSZYKXTYFXEFOZXF
      SZYQXTXLCVNXEUJVNYFYSMYHXKFCVOCVPFXBXEVQVRXTYRXKXFXTXOYRXKMAXOXHXRTXKFCVS
      QVKVLXTXJXGYQYKKAXJXHXMTAXDXGVTXFDXKXQWARWBAYOXHAYNBYKJWCTYNYPBYFYKYLYFMY
      MYGYCYLYFCWDWEWFWGWHXTEPKZXBYANXIYDUNXTWTYTYIFEWLQXTXBFYAAXDXGWIYJWJXBEYA
      YAUTWKRWMWNWOWPWQ $.
  $}

  ${
    $d x F $.  $d x J $.
    imastps.u $e |- ( ph -> U = ( F "s R ) ) $.
    imastps.v $e |- ( ph -> V = ( Base ` R ) ) $.
    imastps.f $e |- ( ph -> F : V -onto-> B ) $.
    ${
      imastopn.r $e |- ( ph -> R e. W ) $.
      imastopn.j $e |- J = ( TopOpen ` R ) $.
      imastopn.o $e |- O = ( TopOpen ` U ) $.
      $( The topology of an image structure.  (Contributed by Mario Carneiro,
         27-Aug-2015.) $)
      imastopn $p |- ( ph -> O = ( J qTop F ) ) $=
        ( vx cfv ctopn wcel cvv cts cqtop co cbs cpw wss wceq ccnv cv cima cuni
        cin crab eqid imastset fvex eqeltri wfn wfo syl syl2anc qtopval sylancr
        fofn syl6eqel fnex eqtrd ssrab2 crn imassrn forn imasbas syl5sseq sspwb
        sylib syl5ss eqsstrd topnid syl6eqr eqtr3d ) ADUAQZGFEUBUCZAWADRQZGAWAD
        UDQZUEZUFWAWCUGAWAEUHPUIUJFUKZULFSZPEWFUJZUEZUMZWEAWAWBWJABCDEFWAHIJKLM
        NWAUNZUOZAFTSETSZWBWJUGFCRQTNCRUPUQAEHURZHTSWMAHBEUSZWNLHBEVDUTAHCUDQTK
        CUDUPVEHTEVFVAEFTTWFPWFUNVBVCVGAWJWIWEWGPWIVHAWHWDUFWIWEUFAEVIZWHWDEWFV
        JAWPBWDAWOWPBUGLHBEVKUTABCDEHIJKLMVLVGVMWHWDVNVOVPVQWDWADWDUNWKVRUTOVSW
        LVT $.
    $}

    imastps.r $e |- ( ph -> R e. TopSp ) $.
    $( The image of a topological space under a function is a topological
       space.  (Contributed by Mario Carneiro, 27-Aug-2015.) $)
    imastps $p |- ( ph -> U e. TopSp ) $=
      ( ctopn cfv cbs ctopon wcel ctps cqtop eqid istps fveq2d co wfo qtoptopon
      imastopn sylib eleqtrrd syl2anc imasbas eleqtrd eqeltrd sylibr ) ADKLZDML
      ZNLZODPOAULCKLZEQUAZUNABCDEUOULFPGHIJUORZULRZUDAUPBNLZUNAUOFNLZOFBEUBUPUS
      OAUOCMLZNLZUTACPOUOVBOJVAUOCVARUQSUEAFVANHTUFIEUOFBUCUGABUMNABCDEFPGHIJUH
      TUIUJUMULDUMRURSUK $.
  $}

  ${
    $d x E $.  $d x ph $.  $d x R $.  $d x V $.
    qustps.u $e |- ( ph -> U = ( R /s E ) ) $.
    qustps.v $e |- ( ph -> V = ( Base ` R ) ) $.
    qustps.e $e |- ( ph -> E e. W ) $.
    qustps.r $e |- ( ph -> R e. TopSp ) $.
    $( A quotient structure is a topological space.  (Contributed by Mario
       Carneiro, 27-Aug-2015.) $)
    qustps $p |- ( ph -> U e. TopSp ) $=
      ( vx cqs cv cec cmpt ctps eqid qusval quslem imastps ) AEDLBCKEKMDNOZEAKD
      BCUAEFPGHUAQZIJRHAKDBCUAEFPGHUBIJSJT $.
  $}

  ${
    $d m n o w x y z A $.  $d m n w x y z B $.  $d a b j m n o u v w x y z J $.
    $d a b m n o u v w z F $.  $d w z ph $.  $d a b m n o u v w x y z X $.
    $d w z U $.  $d x V $.
    kqval.2 $e |- F = ( x e. X |-> { y e. J | x e. y } ) $.
    $( Value of the function appearing in ~ df-kq .  (Contributed by Mario
       Carneiro, 25-Aug-2015.) $)
    kqfval $p |- ( ( J e. V /\ A e. X ) ->
        ( F ` A ) = { y e. J | A e. y } ) $=
      ( wcel cv crab cvv cfv wceq id rabexg eleq1 rabbidv fvmptg syl2anr ) CGIZ
      UACBJZIZBEKZLICDMUDNEFIUAOUCBEFPACAJZUBIZBEKUDGLDUECNUFUCBEUECUBQRHST $.

    $( Two points in the Kolmogorov quotient are equal iff the original points
       are topologically indistinguishable.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    kqfeq $p |- ( ( J e. V /\ A e. X /\ B e. X ) ->
        ( ( F ` A ) = ( F ` B ) <-> A. y e. J ( A e. y <-> B e. y ) ) ) $=
      ( wcel w3a cfv wceq cv crab wb wral kqfval 3adant3 3adant2 eqeq12d rabbi
      syl6bbr ) FGJZCHJZDHJZKZCELZDELZMCBNZJZBFOZDUJJZBFOZMUKUMPBFQUGUHULUIUNUD
      UEUHULMUFABCEFGHIRSUDUFUIUNMUEABDEFGHIRTUAUKUMBFUBUC $.

    $( The topological indistinguishability map is a function on the base.
       (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    kqffn $p |- ( J e. V -> F Fn X ) $=
      ( wcel cpw wf wfn cv crab wss ssrab2 elpw2g mpbiri adantr fmptd ffn syl )
      DEHZFDIZCJCFKUBAFALZBLHZBDMZUCCUBUFUCHZUDFHUBUGUFDNUEBDOUFDEPQRGSFUCCTUA
      $.

    $( Value of the quotient topology function.  (Contributed by Mario
       Carneiro, 25-Aug-2015.) $)
    kqval $p |- ( J e. ( TopOn ` X ) -> ( KQ ` J ) = ( J qTop F ) ) $=
      ( vj ctopon cfv wcel ckq cuni cv crab cmpt cqtop co ctop wceq topontop id
      unieq rabeq mpteq12dv oveq12d df-kq ovex fvmpt syl toponuni syl5eq oveq2d
      mpteq1d eqtr4d ) DEHIJZDKIZDADLZAMBMJZBDNZOZPQZDCPQUODRJUPVASEDTGDGMZAVBL
      ZURBVBNZOZPQVARKVBDSZVBDVEUTPVFUAVFAVCVDUQUSVBDUBURBVBDUCUDUEABGUFDUTPUGU
      HUIUOCUTDPUOCAEUSOUTFUOAEUQUSEDUJUMUKULUN $.

    $( The Kolmogorov quotient is a topology on the quotient set.  (Contributed
       by Mario Carneiro, 25-Aug-2015.) $)
    kqtopon $p |- ( J e. ( TopOn ` X ) ->
        ( KQ ` J ) e. ( TopOn ` ran F ) ) $=
      ( ctopon cfv wcel ckq cqtop crn kqval wfo wfn kqffn dffn4 sylib qtoptopon
      co mpdan eqeltrd ) DEGHZIZDJHDCKTZCLZGHZABCDEFMUDEUFCNZUEUGIUDCEOUHABCDUC
      EFPECQRCDEUFSUAUB $.

    $( The topological indistinguishability map is a continuous function into
       the Kolmogorov quotient.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    kqid $p |- ( J e. ( TopOn ` X ) -> F e. ( J Cn ( KQ ` J ) ) ) $=
      ( ctopon cfv wcel cqtop co ccn ckq wfn kqffn qtopid mpdan oveq2d eleqtrrd
      kqval ) DEGHZIZCDDCJKZLKZDDMHZLKUBCENCUDIABCDUAEFOCDEPQUBUEUCDLABCDEFTRS
      $.

    $( The topological indistinguishability map is injective iff the space is
       T_0.  (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    ist0-4 $p |- ( J e. ( TopOn ` X ) -> ( J e. Kol2 <-> F : X -1-1-> _V ) ) $=
      ( vz vw ctopon cfv wcel cv wceq wi wral wel wb cvv wf1 wa ct0 kqfeq 3expb
      imbi1d 2ralbidva wf wfn kqffn dffn2 sylib dff13 baib syl ist0-2 3bitr4rd
      ) DEIJZKZGLZCJHLZCJMZURUSMZNZHEOGEOZGBPHBPQBDOZVANZHEOGEOERCSZDUAKUQVBVEG
      HEEUQUREKZUSEKZTTUTVDVAUQVGVHUTVDQABURUSCDUPEFUBUCUDUEUQERCUFZVFVCQUQCEUG
      VIABCDUPEFUHECUIUJVFVIVCGHERCUKULUMGHBDEUNUO $.

    $( When the image set is open, the quotient map satisfies a partial
       converse to ~ fnfvima , which is normally only true for injective
       functions.  (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    kqfvima $p |- ( ( J e. ( TopOn ` X ) /\ U e. J /\ A e. X ) ->
        ( A e. U <-> ( F ` A ) e. ( F " U ) ) ) $=
      ( vz vw ctopon cfv wcel wi cv wceq wb wral eleq2 bibi12d w3a cima wfn wss
      kqffn 3ad2ant1 toponss 3adant3 fnfvima syl2anc wrex wfun fnfun fvelima ex
      3expia 3syl wa simpl1 sselda simpl3 kqfeq syl3anc syl6bb simpl2 rspcv syl
      cbvralv sylbid simpr biimp syl6ci rexlimdva syld impbid ) FGKLZMZDFMZCGMZ
      UAZCDMZCELZEDUBMZVTEGUCZDGUDZWAWCNVQVRWDVSABEFVPGHUEUFZVQVRWEVSDFGUGUHZWD
      WEWAWCGDECUIUPUJVTWCIOZELWBPZIDUKZWAVTWDEULZWCWJNWFGEUMWKWCWJIWBDEUNUOUQV
      TWIWAIDVTWHDMZURZWIWLWAQZWLWAWMWIWHJOZMZCWOMZQZJFRZWNWMWIWHBOZMZCWTMZQZBF
      RZWSWMVQWHGMVSWIXDQVQVRVSWLUSVTDGWHWGUTVQVRVSWLVAABWHCEFVPGHVBVCXCWRBJFWT
      WOPXAWPXBWQWTWOWHSWTWOCSTVHVDWMVRWSWNNVQVRVSWLVEWRWNJDFWODPWPWLWQWAWODWHS
      WODCSTVFVGVIVTWLVJWLWAVKVLVMVNVO $.

    $( Any open set is saturated with respect to the topological
       indistinguishability map (in the terminology of ~ qtoprest ).
       (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    kqsat $p |- ( ( J e. ( TopOn ` X ) /\ U e. J ) ->
        ( `' F " ( F " U ) ) = U ) $=
      ( vz ctopon cfv wcel wa ccnv cima cv wb wfn syl adantr wceq kqffn kqfvima
      elpreima 3expa biimprd expimpd sylbid ssrdv cdm cin toponss fndm sseqtr4d
      wss sseqin2 sylib dminss syl6eqssr eqssd ) EFIJZKZCEKZLZDMDCNZNZCVCHVECVC
      HOZVEKZVFFKZVFDJVDKZLZVFCKZVAVGVJPZVBVADFQZVLABDEUTFGUAZFVFVDDUCRSVCVHVIV
      KVCVHLVKVIVAVBVHVKVIPABVFCDEFGUBUDUEUFUGUHVCCDUIZCUJZVEVCCVOUNVPCTVCCFVOC
      EFUKVAVOFTZVBVAVMVQVNFDULRSUMCVOUOUPCDUQURUS $.

    $( A version of ~ imain for the topological indistinguishability map.
       (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    kqdisj $p |- ( ( J e. ( TopOn ` X ) /\ U e. J ) ->
        ( ( F " U ) i^i ( F " ( A \ U ) ) ) = (/) ) $=
      ( vz vw cfv wcel wa cima cdif cin wss c0 wceq wn ctopon cres cdm imadmres
      dmres wfn kqffn adantr fndm syl ineq2d syl5eq imaeq2d syl5eqr inss2 ssdif
      indif1 ax-mp eqsstri imass2 mp1i eqsstrd sslin cv eldifn adantl wb simpll
      simplr eldifi kqfvima syl3anc mtbid ralrimiva difss notbid ralima sylancl
      wral eleq1 mpbird disjr sylibr sseq0 syl2anc ) FGUAKZLZDFLZMZEDNZECDOZNZP
      ZWJEGDOZNZPZQZWPRSZWMRSWIWLWOQWQWIWLEWKGPZNZWOWIWLEEWKUBUCZNWTEWKUDWIXAWS
      EWIXAWKEUCZPWSEWKUEWIXBGWKWIEGUFZXBGSWGXCWHABEFWFGHUGUHZGEUIUJUKULUMUNWSW
      NQWTWOQWIWSCGPZDOZWNCGDUQXEGQXFWNQCGUOXEGDUPURUSWSWNEUTVAVBWLWOWJVCUJWIIV
      DZWJLZTZIWOVSZWRWIXJJVDZEKZWJLZTZJWNVSZWIXNJWNWIXKWNLZMZXKDLZXMXPXRTWIXKG
      DVEVFXQWGWHXKGLZXRXMVGWGWHXPVHWGWHXPVIXPXSWIXKGDVJVFABXKDEFGHVKVLVMVNWIXC
      WNGQXJXOVGXDGDVOXIXNIJGWNEXGXLSXHXMXGXLWJVTVPVQVRWAIWJWOWBWCWMWPWDWE $.

    $( Any closed set is saturated with respect to the topological
       indistinguishability map (in the terminology of ~ qtoprest ).
       (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    kqcldsat $p |- ( ( J e. ( TopOn ` X ) /\ U e. ( Clsd ` J ) ) ->
        ( `' F " ( F " U ) ) = U ) $=
      ( cfv wcel wa cima wb adantr cdif wn c0 cin wss wceq adantl vz ctopon wfn
      ccld ccnv cv kqffn elpreima syl wi noel elin incom cdm cuni eqid toponuni
      cldss fndm eqtrd sseqtrd dfss4 sylib imaeq2d ineq2d simpll difeq1d cldopn
      sseqtr4d eqeltrd kqdisj syl2anc eqtr3d syl5eq eleq2d syl5bbr mtbiri imnan
      sylibr eldif baibr simpr kqfvima syl3anc bitrd sylibd sylbid ssrdv dminss
      con1bid expimpd sseqin2 syl6eqssr eqssd ) EFUBHZIZCEUDHIZJZDUEDCKZKZCWRUA
      WTCWRUAUFZWTIZXAFIZXADHZWSIZJZXACIZWPXBXFLZWQWPDFUCZXHABDEWOFGUGZFXAWSDUH
      UIMWRXCXEXGWRXCJZXEXDDFCNZKZIZOZXGXKXEXNJZOXEXOUJXKXPXDPIZXDUKXPXDWSXMQZI
      XKXQXDWSXMULXKXRPXDXKXRXMWSQZPWSXMUMXKXMDFXLNZKZQZXSPXKYAWSXMXKXTCDXKCFRZ
      XTCSWRYCXCWRCDUNZFWRCEUOZYDWQCYERWPCEYEYEUPZURTWPYDYESWQWPYDFYEWPXIYDFSZX
      JFDUSUIZFEUQZUTMVIZWPYGWQYHMVAMCFVBVCVDVEXKWPXLEIZYBPSWPWQXCVFZWRYKXCWRXL
      YECNZEWRFYECWPFYESWQYIMVGWQYMEIWPCEYEYFVHTVJMZABFXLDEFGVKVLVMVNVOVPVQXEXN
      VRVSXKXGXNXKXGOZXAXLIZXNXCYOYPLWRYPXCYOXAFCVTWATXKWPYKXCYPXNLYLYNWRXCWBAB
      XAXLDEFGWCWDWEWJWFWKWGWHWRCYDCQZWTWRCYDRYQCSYJCYDWLVCCDWIWMWN $.

    $( The topological indistinguishability map is an open map.  (Contributed
       by Mario Carneiro, 25-Aug-2015.) $)
    kqopn $p |- ( ( J e. ( TopOn ` X ) /\ U e. J ) ->
        ( F " U ) e. ( KQ ` J ) ) $=
      ( ctopon cfv wcel wa cima cqtop co ckq crn wss ccnv imassrn adantr a1i wb
      kqsat simpr eqeltrd wfo wfn kqffn dffn4 sylib syldan mpbir2and wceq kqval
      elqtop3 eleqtrrd ) EFHIZJZCEJZKZDCLZEDMNZEOIZUTVAVBJZVADPZQZDRVALZEJZVFUT
      DCSUAUTVGCEABCDEFGUCURUSUDUEURUSFVEDUFZVDVFVHKUBURVIUSURDFUGVIABDEUQFGUHF
      DUIUJTVADEFVEUOUKULURVCVBUMUSABDEFGUNTUP $.

    $( The topological indistinguishability map is a closed map.  (Contributed
       by Mario Carneiro, 25-Aug-2015.) $)
    kqcld $p |- ( ( J e. ( TopOn ` X ) /\ U e. ( Clsd ` J ) ) ->
        ( F " U ) e. ( Clsd ` ( KQ ` J ) ) ) $=
      ( ctopon cfv wcel ccld wa cima cqtop co ckq crn wss ccnv adantr a1i simpr
      imassrn kqcldsat eqeltrd wb wfo kqffn dffn4 sylib qtopcld mpdan mpbir2and
      wfn wceq kqval fveq2d eleqtrrd ) EFHIZJZCEKIZJZLZDCMZEDNOZKIZEPIZKIVCVDVF
      JZVDDQZRZDSVDMZVAJZVJVCDCUCUAVCVKCVAABCDEFGUDUTVBUBUEUTVHVJVLLUFZVBUTFVID
      UGZVMUTDFUNVNABDEUSFGUHFDUIUJVDDEFVIUKULTUMVCVGVEKUTVGVEUOVBABDEFGUPTUQUR
      $.

    $( Lemma for ~ kqt0 .  (Contributed by Mario Carneiro, 23-Mar-2015.) $)
    kqt0lem $p |- ( J e. ( TopOn ` X ) -> ( KQ ` J ) e. Kol2 ) $=
      ( vu vz vv va vb vw cfv wcel wel wb wral cv wceq wa ctopon ckq ct0 wi crn
      kqopn adantlr eleq2 bibi12d rspcv syl kqfvima 3expa adantrr adantrl an32s
      cima sylibrd ralrimdva kqfeq 3expb elequ2 cbvralv syl6bb ralrimivva kqffn
      eleq1 bibi1d ralbidv eqeq1 imbi12d ralrn bibi2d eqeq2 bitrd mpbird ist0-2
      wfn kqtopon ) DEUAMZNZDUBMZUCNZGHOZIHOZPZHWBQZGRZIRZSZUDZICUEZQZGWLQZWAWN
      JRZCMZHRZNZKRZCMZWQNZPZHWBQZWPWTSZUDZKEQZJEQZWAXEJKEEWAWOENZWSENZTZTZXCJL
      OZKLOZPZLDQZXDXKXCXNLDXKLRZDNZTZXCWPCXPUQZNZWTXSNZPZXNXRXSWBNZXCYBUDWAXQY
      CXJABXPCDEFUFUGXBYBHXSWBWQXSSWRXTXAYAWQXSWPUHWQXSWTUHUIUJUKWAXQXJXNYBPWAX
      QTZXJTXLXTXMYAYDXHXLXTPZXIWAXQXHYEABWOXPCDEFULUMUNYDXIXMYAPZXHWAXQXIYFABW
      SXPCDEFULUMUOUIUPURUSXKXDJBOZKBOZPZBDQZXOWAXHXIXDYJPABWOWSCDVTEFUTVAYIXNB
      LDBRXPSYGXLYHXMBLJVBBLKVBUIVCVDURVEWACEVRZWNXGPABCDVTEFVFYKWNWRWEPZHWBQZW
      PWISZUDZIWLQZJEQXGWMYPGJECWHWPSZWKYOIWLYQWGYMWJYNYQWFYLHWBYQWDWRWEWHWPWQV
      GVHVIWHWPWIVJVKVIVLYKYPXFJEYOXEIKECWIWTSZYMXCYNXDYRYLXBHWBYRWEXAWRWIWTWQV
      GVMVIWIWTWPVNVKVLVIVOUKVPWAWBWLUAMNWCWNPABCDEFVSGIHWBWLVQUKVP $.

    $( The property " ` J ` is an R_0 space".  A space is R_0 if any two
       topologically distinguishable points are separated (there is an open set
       containing each one and disjoint from the other).  Or in contraposition,
       if every open set which contains ` x ` also contains ` y ` , so there is
       no separation, then ` x ` and ` y ` are members of the same open sets.
       We have chosen not to give this definition a name, because it turns out
       that a space is R_0 if and only if its Kolmogorov quotient is T_1, so
       that is what we prove here.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    isr0 $p |- ( J e. ( TopOn ` X ) ->
         ( ( KQ ` J ) e. Fre <-> A. z e. X A. w e. X
   ( A. o e. J ( z e. o -> w e. o ) -> A. o e. J ( z e. o <-> w e. o ) ) ) ) $=
      ( vv vb wcel cv wi wral wb wa wceq eleq2 syl ctopon cfv ckq ct1 ccnv cima
      va ccn co kqid ad2antrr cnima sylan imbi12d rspcv wfun kqffn adantr fnfun
      cdm simprl fndm eleqtrrd fvimacnv syl2anc simprr sylibrd ralrimdva simplr
      wfn cuni fnfvelrn kqtopon toponuni eleqtrd eqid t1sep2 syl3anc syld kqfeq
      crn w3a bibi12d cbvralv syl6bbr 3expb adantlr sylibd ralrimivva ex simpll
      kqopn kqfvima 3expa an32s crab kqfval eqeq12d rabbi bitri biimprd imim12d
      adantllr ralimdva eleq1 imbi1d ralbidv eqeq1 ralrn imbi2d ist1-2 impbid
      eqeq2 bitrd ) GHUAUBZLZGUCUBZUDLZCMZEMZLZDMZXTLZNZEGOZYAYCPZEGOZNZDHOZCHO
      ZXPXRYJXPXRQZYHCDHHYKXSHLZYBHLZQZQZYEXSFUBZYBFUBZRZYGYOYEYPJMZLZYQYSLZNZJ
      XQOZYRYOYEUUBJXQYOYSXQLZQZYEXSFUEYSUFZLZYBUUFLZNZUUBUUEUUFGLZYEUUINYOFGXQ
      UHUILZUUDUUJXPUUKXRYNABFGHIUJUKYSFGXQULUMYDUUIEUUFGXTUUFRYAUUGYCUUHXTUUFX
      SSXTUUFYBSUNUOTUUEYTUUGUUAUUHUUEFUPZXSFUTZLYTUUGPUUEFHVJZUULYOUUNUUDXPUUN
      XRYNABFGXOHIUQZUKZURZHFUSTZUUEXSHUUMYOYLUUDYKYLYMVAZURUUEUUNUUMHRUUQHFVBT
      ZVCXSYSFVDVEUUEUULYBUUMLUUAUUHPUURUUEYBHUUMYOYMUUDYKYLYMVFZURUUTVCYBYSFVD
      VEUNVGVHYOXRYPXQVKZLYQUVBLUUCYRNZXPXRYNVIYOYPFWAZUVBYOUUNYLYPUVDLUUPUUSHX
      SFVLVEYOXQUVDUAUBLZUVDUVBRXPUVEXRYNABFGHIVMZUKUVDXQVNTZVOYOYQUVDUVBYOUUNY
      MYQUVDLUUPUVAHYBFVLVEUVGVOYPYQJXQUVBUVBVPVQVRVSXPYNYRYGPZXRXPYLYMUVHXPYLY
      MWBYRXSBMZLZYBUVILZPZBGOZYGABXSYBFGXOHIVTYFUVLEBGXTUVIRYAUVJYCUVKXTUVIXSS
      XTUVIYBSWCWDZWEWFWGWHWIWJXPYJUGMZYSLZKMZYSLZNZJXQOZUVOUVQRZNZKUVDOZUGUVDO
      ZXRXPYJUVCDHOZCHOZUWDXPYIUWECHXPYLQZYHUVCDHUWGYMQZUUCYEYGYRUWHUUCYDEGUWHX
      TGLZQZUUCYPFXTUFZLZYQUWKLZNZYDUWJUWKXQLZUUCUWNNUWHXPUWIUWOXPYLYMWKABXTFGH
      IWLUMUUBUWNJUWKXQYSUWKRYTUWLUUAUWMYSUWKYPSYSUWKYQSUNUOTUWJYAUWLYCUWMUWGUW
      IYAUWLPZYMXPUWIYLUWPXPUWIYLUWPABXSXTFGHIWMWNWOWGXPYMUWIYCUWMPZYLXPUWIYMUW
      QXPUWIYMUWQABYBXTFGHIWMWNWOXCUNVGVHUWHYRYGUWHYRUVJBGWPZUVKBGWPZRZYGUWHYPU
      WRYQUWSUWGYPUWRRYMABXSFGXOHIWQURXPYMYQUWSRYLABYBFGXOHIWQWGWRYGUVMUWTUVNUV
      JUVKBGWSWTWEXAXBXDXDXPUUNUWDUWFPUUOUUNUWDYTUVRNZJXQOZYPUVQRZNZKUVDOZCHOUW
      FUWCUXEUGCHFUVOYPRZUWBUXDKUVDUXFUVTUXBUWAUXCUXFUVSUXAJXQUXFUVPYTUVRUVOYPY
      SXEXFXGUVOYPUVQXHUNXGXIUUNUXEUWECHUXDUVCKDHFUVQYQRZUXBUUCUXCYRUXGUXAUUBJX
      QUXGUVRUUAYTUVQYQYSXEXJXGUVQYQYPXMUNXIXGXNTVGXPUVEXRUWDPUVFUGKJXQUVDXKTVG
      XL $.

    $( The analogue of the T_1 axiom (singletons are closed) for an R_0 space.
       In an R_0 space the set of all points topologically indistinguishable
       from ` A ` is closed.  (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    r0cld $p |- ( ( J e. ( TopOn ` X ) /\ ( KQ ` J ) e. Fre /\ A e. X ) ->
      { z e. X | A. o e. J ( z e. o <-> A e. o ) } e. ( Clsd ` J ) ) $=
      ( ctopon cfv wcel w3a cv wb wral crab wceq 3ad2ant1 syl2anc ckq ccnv cima
      ct1 csn ccld wfn kqffn fncnvima2 syl fvex simpl1 simpr simpl3 kqfeq eleq2
      wa elsn bibi12d cbvralv syl6bb syl3anc syl5bb rabbidva eqtrd co kqid cuni
      ccn simp2 fnfvelrn kqtopon toponuni eleqtrd eqid t1sncld cnclima eqeltrrd
      crn simp3 ) GHJKZLZGUAKZUDLZDHLZMZFUBDFKZUEZUCZCNZENZLZDWKLZOZEGPZCHQZGUF
      KZWFWIWJFKZWHLZCHQZWPWFFHUGZWIWTRWBWDXAWEABFGWAHIUHSZCHWHFUIUJWFWSWOCHWSW
      RWGRZWFWJHLZUQZWOWRWGWJFUKURXEWBXDWEXCWOOWBWDWEXDULWFXDUMWBWDWEXDUNWBXDWE
      MXCWJBNZLZDXFLZOZBGPWOABWJDFGWAHIUOXIWNBEGXFWKRXGWLXHWMXFWKWJUPXFWKDUPUSU
      TVAVBVCVDVEWFFGWCVIVFLZWHWCUFKLZWIWQLWBWDXJWEABFGHIVGSWFWDWGWCVHZLXKWBWDW
      EVJWFWGFVSZXLWFXAWEWGXMLXBWBWDWEVTHDFVKTWFWCXMJKLZXMXLRWBWDXNWEABFGHIVLSX
      MWCVMUJVNWGWCXLXLVOVPTWHFGWCVQTVR $.

    ${
      regr1lem.2 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
      regr1lem.3 $e |- ( ph -> J e. Reg ) $.
      regr1lem.4 $e |- ( ph -> A e. X ) $.
      regr1lem.5 $e |- ( ph -> B e. X ) $.
      regr1lem.6 $e |- ( ph -> U e. J ) $.
      regr1lem.7 $e |- ( ph -> -. E. m e. ( KQ ` J ) E. n e. ( KQ ` J )
        ( ( F ` A ) e. m /\ ( F ` B ) e. n /\ ( m i^i n ) = (/) ) ) $.
      $( Lemma for ~ regr1 .  (Contributed by Mario Carneiro, 25-Aug-2015.) $)
      regr1lem $p |- ( ph -> ( A e. U -> B e. U ) ) $=
        ( wcel cfv vz wa ccl wss creg wrex adantr simpr regsep syl3anc cin wceq
        cv c0 w3a ckq ad2antrr cima cdif ctopon ad3antrrr simplrl kqopn syl2anc
        cuni toponuni syl difeq1d ccld ctop topontop elssuni eqid clscld cldopn
        wn eqeltrd simprrl wb kqfvima mpbid simprrr sseld con3dimp eldifd sscls
        sscond imass2 sslin 3syl kqdisj sseq0 eleq2 ineq1 eqeq1d 3anbi13d ineq2
        3anbi23d rspc2ev syl113anc ex mt3d rexlimddv ) ADFSZEFSZAXDUBZDUAUMZSZX
        GJUCTTZFUDZUBZXEUAJXFJUESZFJSZXDXKUAJUFAXLXDNUGAXMXDQUGAXDUHUADFJUIUJXF
        XGJSZXKUBZUBZXEDITZGUMZSZEITZHUMZSZXRYAUKZUNULZUOZHJUPTZUFGYFUFZAYGVPXD
        XORUQXPXEVPZYGXPYHUBZIXGURZYFSZIKXIUSZURZYFSZXQYJSZXTYMSZYJYMUKZUNULZYG
        YIJKUTTSZXNYKAYSXDXOYHMVAZXFXNXKYHVBZBCXGIJKLVCVDYIYSYLJSZYNYTYIYLJVEZX
        IUSZJYIKUUCXIYIYSKUUCULYTKJVFVGVHYIXIJVITSZUUDJSYIJVJSZXGUUCUDZUUEYIYSU
        UFYTKJVKVGZYIXNUUGUUAXGJVLVGZXGJUUCUUCVMZVNVDXIJUUCUUJVOVGVQZBCYLIJKLVC
        VDYIXHYOXPXHYHXFXNXHXJVRUGYIYSXNDKSZXHYOVSYTUUAAUULXDXOYHOVABCDXGIJKLVT
        UJWAYIEYLSZYPYIEKXIAEKSZXDXOYHPVAZXPEXISXEXPXIFEXFXNXHXJWBWCWDWEYIYSUUB
        UUNUUMYPVSYTUUKUUOBCEYLIJKLVTUJWAYIYQYJIKXGUSZURZUKZUDZUURUNULZYRYIYLUU
        PUDYMUUQUDUUSYIXGXIKYIUUFUUGXGXIUDUUHUUIXGJUUCUUJWFVDWGYLUUPIWHYMUUQYJW
        IWJYIYSXNUUTYTUUABCKXGIJKLWKVDYQUURWLVDYEYOYPYRUOYOYBYJYAUKZUNULZUOGHYJ
        YMYFYFXRYJULZXSYOYDUVBYBXRYJXQWMUVCYCUVAUNXRYJYAWNWOWPYAYMULZYBYPUVBYRY
        OYAYMXTWMUVDUVAYQUNYAYMYJWQWOWRWSWTXAXBXCXA $.
    $}

    $( A Kolmogorov quotient of a regular space is Hausdorff.  (Contributed by
       Mario Carneiro, 25-Aug-2015.) $)
    regr1lem2 $p |- ( ( J e. ( TopOn ` X ) /\ J e. Reg ) ->
        ( KQ ` J ) e. Haus ) $=
      ( va vb vm vn vz vw cfv wcel cv wel wceq w3a wrex wral ctopon creg wa ckq
      cha wne cin c0 wi crn wn wb simplll simpllr simplrl simplrr simprl simprr
      3ancoma incom eqeq1i 3anbi3i bitri 2rexbii rexcom sylnib impbid ralrimdva
      regr1lem expr kqfeq elequ2 bibi12d cbvralv 3expb adantlr sylibrd necon1ad
      syl6bb ralrimivva wfn kqffn adantr neeq1 3anbi1d 2rexbidv imbi12d ralbidv
      eleq1 ralrn neeq2 3anbi2d bitrd syl mpbird kqtopon ishaus2 ) DEUAMZNZDUBN
      ZUCZDUDMZUENZGOZHOZUFZGIPZHJPZIOZJOZUGZUHQZRZJXBSIXBSZUIZHCUJZTZGXPTZXAXR
      KOZCMZLOZCMZUFZXTXINZYBXJNZXLRZJXBSIXBSZUIZLETZKETZXAYHKLEEXAXSENZYAENZUC
      ZUCZYGXTYBYNYGUKZKGPZLGPZULZGDTZXTYBQZYNYOYRGDYNXDDNZYOYRYNUUAYOUCZUCZYPY
      QUUCABXSYAXDIJCDEFWSWTYMUUBUMZWSWTYMUUBUNZXAYKYLUUBUOZXAYKYLUUBUPZYNUUAYO
      UQZYNUUAYOURZVIUUCABYAXSXDJICDEFUUDUUEUUGUUFUUHUUCYGYEYDXJXIUGZUHQZRZIXBS
      JXBSZUUIYGUULJXBSIXBSUUMYFUULIJXBXBYFYEYDXLRUULYDYEXLUSXLUUKYEYDXKUUJUHXI
      XJUTVAVBVCVDUULIJXBXBVEVCVFVIVGVJVHWSYMYTYSULZWTWSYKYLUUNWSYKYLRYTKBPZLBP
      ZULZBDTYSABXSYACDWREFVKUUQYRBGDBOXDQUUOYPUUPYQBGKVLBGLVLVMVNVSVOVPVQVRVTX
      ACEWAZXRYJULWSUURWTABCDWREFWBWCUURXRXTXEUFZYDXHXLRZJXBSIXBSZUIZHXPTZKETYJ
      XQUVCGKECXDXTQZXOUVBHXPUVDXFUUSXNUVAXDXTXEWDUVDXMUUTIJXBXBUVDXGYDXHXLXDXT
      XIWIWEWFWGWHWJUURUVCYIKEUVBYHHLECXEYBQZUUSYCUVAYGXEYBXTWKUVEUUTYFIJXBXBUV
      EXHYEYDXLXEYBXJWIWLWFWGWJWHWMWNWOXAXBXPUAMNZXCXRULWSUVFWTABCDEFWPWCGHJIXB
      XPWQWNWO $.

    $( A Kolmogorov quotient of a regular space is regular.  (Contributed by
       Mario Carneiro, 25-Aug-2015.) $)
    kqreglem1 $p |- ( ( J e. ( TopOn ` X ) /\ J e. Reg ) ->
        ( KQ ` J ) e. Reg ) $=
      ( vb vm va vz vw cfv wcel wa cv wss wrex adantr syl syl2anc creg ckq ctop
      ctopon ccl wral crn kqtopon topontop wceq toponss sselda wfn wb ad3antrrr
      sylan kqffn fvelrnb mpbid wi ccnv cima simpllr ccn co kqid cnima elpreima
      simplr biimpar regsep syl3anc simp-4l simprl simprrl simplrl kqfvima ccld
      kqopn cuni elssuni ad2antrl eqid clscld kqcld sscls imass2 clsss2 simprrr
      wfun fnfun funimass2 sstrd eleq2 sseq1d anbi12d rspcev syl12anc rexlimddv
      fveq2 expr eleq1 anbi1d rexbidv imbi12d syl5ibcom com23 imp rexlimdva mpd
      an32s anasss ralrimivva isreg sylanbrc ) DEUDLZMZDUAMZNZDUBLZUCMZGOZHOZMZ
      YCXTUELZLZIOZPZNZHXTQZGYGUFIXTUFXTUAMXSXTCUGZUDLMZYAXQYLXRABCDEFUHRZYKXTU
      ISXSYJIGXTYGXSYGXTMZYBYGMZYJXSYNNZYONZJOZCLZYBUJZJEQZYJYQYBYKMZUUAYPYGYKY
      BXSYLYNYGYKPYMYGXTYKUKUPULYQCEUMZUUBUUAUNXQUUCXRYNYOABCDXPEFUQZUOJEYBCURS
      USYQYTYJJEYPYREMZYOYTYJUTZYPUUENZYOUUFUUGYTYOYJUUGYSYGMZYSYCMZYHNZHXTQZUT
      YTYOYJUTYPUUEUUHUUKYPUUEUUHNZNZYRKOZMZUUNDUELLZCVAYGVBZPZNZUUKKDUUMXRUUQD
      MZYRUUQMZUUSKDQXQXRYNUULVCUUMCDXTVDVEMZYNUUTXQUVBXRYNUULABCDEFVFUOXSYNUUL
      VIYGCDXTVGTYPUVAUULYPUUCUVAUULUNXSUUCYNXQUUCXRUUDRZREYRYGCVHSVJKYRUUQDVKV
      LUUMUUNDMZUUSNZNZCUUNVBZXTMZYSUVGMZUVGYELZYGPZUUKUVFXQUVDUVHXQXRYNUULUVEV
      MZUUMUVDUUSVNZABUUNCDEFVSTUVFUUOUVIUUMUVDUUOUURVOUVFXQUVDUUEUUOUVIUNUVLUV
      MYPUUEUUHUVEVPABYRUUNCDEFVQVLUSUVFUVJCUUPVBZYGUVFUVNXTVRLMZUVGUVNPZUVJUVN
      PUVFXQUUPDVRLMZUVOUVLUVFDUCMZUUNDVTZPZUVQUVFXQUVRUVLEDUISZUVDUVTUUMUUSUUN
      DWAWBZUUNDUVSUVSWCZWDTABUUPCDEFWETUVFUUNUUPPZUVPUVFUVRUVTUWDUWAUWBUUNDUVS
      UWCWFTUUNUUPCWGSUVNUVGXTXTVTZUWEWCWHTUVFCWJZUURUVNYGPUVFUUCUWFXSUUCYNUULU
      VEUVCUOECWKSUUMUVDUUOUURWIUUPYGCWLTWMUUJUVIUVKNHUVGXTYCUVGUJZUUIUVIYHUVKY
      CUVGYSWNUWGYFUVJYGYCUVGYEWTWOWPWQWRWSXAYTUUHYOUUKYJYSYBYGXBYTUUJYIHXTYTUU
      IYDYHYSYBYCXBXCXDXEXFXGXHXKXIXJXLXMIGHXTXNXO $.

    $( If the Kolmogorov quotient of a space is regular then so is the original
       space.  (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    kqreglem2 $p |- ( ( J e. ( TopOn ` X ) /\ ( KQ ` J ) e. Reg ) ->
        J e. Reg ) $=
      ( vw vm vz vn ctopon cfv wcel wa cv wss adantr cima syl2anc syl creg ctop
      ckq ccl wrex topontop simplr simpll simprl kqopn simprr wb toponss sseldd
      wral kqfvima syl3anc mpbid regsep ccnv ccn co kqid cnima simprrl elpreima
      wfn kqffn 3syl mpbir2and ccld crn kqtopon elssuni ad2antrl clscld cnclima
      cuni eqid sscls imass2 clsss2 simprrr wceq kqsat sstrd eleq2 fveq2 sseq1d
      sseqtrd anbi12d rspcev syl12anc rexlimddv ralrimivva isreg sylanbrc ) DEK
      LZMZDUCLZUAMZNZDUBMZGOZHOZMZXEDUDLZLZIOZPZNZHDUEZGXIUOIDUODUAMWSXCXAEDUFQ
      XBXLIGDXIXBXIDMZXDXIMZNZNZXDCLZJOZMZXRWTUDLLZCXIRZPZNZXLJWTXPXAYAWTMZXQYA
      MZYCJWTUEWSXAXOUGXPWSXMYDWSXAXOUHZXBXMXNUIZABXICDEFUJSXPXNYEXBXMXNUKZXPWS
      XMXDEMZXNYEULYFYGXPXIEXDXPWSXMXIEPYFYGXIDEUMSYHUNZABXDXICDEFUPUQURJXQYAWT
      USUQXPXRWTMZYCNZNZCUTZXRRZDMZXDYOMZYOXGLZXIPZXLYMCDWTVAVBMZYKYPYMWSYTXPWS
      YLYFQZABCDEFVCTZXPYKYCUIXRCDWTVDSYMYQYIXSXPYIYLYJQXPYKXSYBVEYMWSCEVGYQYIX
      SNULUUAABCDWREFVHEXDXRCVFVIVJYMYRYNXTRZXIYMUUCDVKLMZYOUUCPZYRUUCPYMYTXTWT
      VKLMZUUDUUBYMWTUBMZXRWTVRZPZUUFYMWSWTCVLZKLMUUGUUAABCDEFVMUUJWTUFVIZYKUUI
      XPYCXRWTVNVOZXRWTUUHUUHVSZVPSXTCDWTVQSYMXRXTPZUUEYMUUGUUIUUNUUKUULXRWTUUH
      UUMVTSXRXTYNWATUUCYODDVRZUUOVSWBSYMUUCYNYARZXIYMYBUUCUUPPXPYKXSYBWCXTYAYN
      WATYMWSXMUUPXIWDUUAXPXMYLYGQABXICDEFWESWJWFXKYQYSNHYODXEYOWDZXFYQXJYSXEYO
      XDWGUUQXHYRXIXEYOXGWHWIWKWLWMWNWOIGHDWPWQ $.

    $( A Kolmogorov quotient of a normal space is normal.  (Contributed by
       Mario Carneiro, 25-Aug-2015.) $)
    kqnrmlem1 $p |- ( ( J e. ( TopOn ` X ) /\ J e. Nrm ) ->
        ( KQ ` J ) e. Nrm ) $=
      ( vw vm vz vu cfv wcel wa cv wss syl cima syl2anc 3syl wceq cnrm ckq ctop
      ctopon ccl wrex ccld cpw cin wral crn kqtopon adantr topontop ccnv simplr
      ccn co kqid ad2antrr simprl cnima inss1 simprr sseldi cnclima inss2 elpwi
      imass2 nrmsep3 syl13anc simplll kqopn simprrl wfun wi wfn kqffn cuni eqid
      fnfun cldss toponuni sseqtr4d funimass1 mpd elssuni ad2antrl clscld kqcld
      sscls clsss2 simprrr cdm wb clsss3 fndm eqtrd funimass3 sstrd sseq2 fveq2
      mpbird sseq1d anbi12d rspcev syl12anc rexlimddv ralrimivva isnrm sylanbrc
      ) DEUDKZLZDUALZMZDUBKZUCLZGNZHNZOZXSXPUEKZKZINZOZMZHXPUFZGXPUGKZYCUHZUIZU
      JIXPUJXPUALXOXPCUKZUDKLZXQXMYKXNABCDEFULZUMYJXPUNPXOYFIGXPYIXOYCXPLZXRYIL
      ZMZMZCUOZXRQZJNZOZYSDUEKKZYQYCQZOZMZYFJDYPXNUUBDLZYRDUGKZLZYRUUBOZUUDJDUF
      XMXNYOUPYPCDXPUQURLZYMUUEXMUUIXNYOABCDEFUSUTZXOYMYNVAYCCDXPVBRYPUUIXRYGLZ
      UUGUUJYPYIYGXRYGYHVCXOYMYNVDZVEZXRCDXPVFRYPXRYHLXRYCOUUHYPYIYHXRYGYHVGUUL
      VEXRYCVHXRYCYQVISJUUBYRDVJVKYPYSDLZUUDMZMZCYSQZXPLZXRUUQOZUUQYAKZYCOZYFUU
      PXMUUNUURXMXNYOUUOVLZYPUUNUUDVAABYSCDEFVMRUUPYTUUSYPUUNYTUUCVNUUPCVOZXRYJ
      OYTUUSVPUUPXMCEVQZUVCUVBABCDXLEFVRZECWASZUUPXRXPVSZYJUUPUUKXRUVGOYPUUKUUO
      UUMUMXRXPUVGUVGVTZWBPUUPXMYKYJUVGTUVBYLYJXPWCSWDXRYSCWERWFUUPUUTCUUAQZYCU
      UPUVIYGLZUUQUVIOZUUTUVIOUUPXMUUAUUFLZUVJUVBUUPDUCLZYSDVSZOZUVLUUPXMUVMUVB
      EDUNPZUUNUVOYPUUDYSDWGWHZYSDUVNUVNVTZWIRABUUACDEFWJRUUPYSUUAOZUVKUUPUVMUV
      OUVSUVPUVQYSDUVNUVRWKRYSUUACVIPUVIUUQXPUVGUVHWLRUUPUVIYCOZUUCYPUUNYTUUCWM
      UUPUVCUUACWNZOUVTUUCWOUVFUUPUUAUVNUWAUUPUVMUVOUUAUVNOUVPUVQYSDUVNUVRWPRUU
      PUWAEUVNUUPXMUVDUWAETUVBUVEECWQSUUPXMEUVNTUVBEDWCPWRWDUUAYCCWSRXCWTYEUUSU
      VAMHUUQXPXSUUQTZXTUUSYDUVAXSUUQXRXAUWBYBUUTYCXSUUQYAXBXDXEXFXGXHXIIGHXPXJ
      XK $.

    $( If the Kolmogorov quotient of a space is normal then so is the original
       space.  (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    kqnrmlem2 $p |- ( ( J e. ( TopOn ` X ) /\ ( KQ ` J ) e. Nrm ) ->
        J e. Nrm ) $=
      ( vw vu vz vm cfv wcel wa cv wss cima syl2anc 3syl syl wceq ckq cnrm ctop
      ctopon ccl wrex ccld cpw cin wral adantr simplr simpll simprl kqopn inss1
      topontop simprr sseldi kqcld inss2 elpwi imass2 nrmsep3 syl13anc ccnv ccn
      co simplll kqid cnima simprrl wfun cdm wb wfn kqffn fnfun cuni eqid cldss
      fndm toponuni eqtrd sseqtr4d funimass3 mpbid crn kqtopon elssuni ad2antrl
      clscld cnclima sscls clsss2 simprrr kqsat sstrd sseq2 fveq2 sseq1d rspcev
      sseqtrd anbi12d syl12anc rexlimddv ralrimivva isnrm sylanbrc ) DEUDKZLZDU
      AKZUBLZMZDUCLZGNZHNZOZXQDUEKZKZINZOZMZHDUFZGDUGKZYAUHZUIZUJIDUJDUBLXKXOXM
      EDUQUKXNYDIGDYGXNYADLZXPYGLZMZMZCXPPZJNZOZYMXLUEKKZCYAPZOZMZYDJXLYKXMYPXL
      LZYLXLUGKZLZYLYPOZYRJXLUFXKXMYJULYKXKYHYSXKXMYJUMZXNYHYIUNZABYACDEFUOQYKX
      KXPYELZUUAUUCYKYGYEXPYEYFUPXNYHYIURZUSZABXPCDEFUTQYKXPYFLXPYAOUUBYKYGYFXP
      YEYFVAUUFUSXPYAVBXPYACVCRJYPYLXLVDVEYKYMXLLZYRMZMZCVFZYMPZDLZXPUULOZUULXS
      KZYAOZYDUUJCDXLVGVHLZUUHUUMUUJXKUUQXKXMYJUUIVIZABCDEFVJSZYKUUHYRUNYMCDXLV
      KQUUJYNUUNYKUUHYNYQVLUUJCVMZXPCVNZOYNUUNVOUUJXKCEVPZUUTUURABCDXJEFVQZECVR
      RUUJXPDVSZUVAUUJUUEXPUVDOYKUUEUUIUUGUKXPDUVDUVDVTZWASUUJUVAEUVDUUJXKUVBUV
      AETUURUVCECWBRUUJXKEUVDTUUREDWCSWDWEXPYMCWFQWGUUJUUOUUKYOPZYAUUJUVFYELZUU
      LUVFOZUUOUVFOUUJUUQYOYTLZUVGUUSUUJXLUCLZYMXLVSZOZUVIUUJXKXLCWHZUDKLUVJUUR
      ABCDEFWIUVMXLUQRZUUHUVLYKYRYMXLWJWKZYMXLUVKUVKVTZWLQYOCDXLWMQUUJYMYOOZUVH
      UUJUVJUVLUVQUVNUVOYMXLUVKUVPWNQYMYOUUKVCSUVFUULDUVDUVEWOQUUJUVFUUKYPPZYAU
      UJYQUVFUVROYKUUHYNYQWPYOYPUUKVCSUUJXKYHUVRYATUURYKYHUUIUUDUKABYACDEFWQQXC
      WRYCUUNUUPMHUULDXQUULTZXRUUNYBUUPXQUULXPWSUVSXTUUOYAXQUULXSWTXAXDXBXEXFXG
      IGHDXHXI $.
  $}

  ${
    $d o x y A $.  $d o y B $.  $d a b j o w x y z J $.  $d o w x y z X $.
    $( The Kolmogorov quotient is a topology on the quotient set.  (Contributed
       by Mario Carneiro, 25-Aug-2015.) $)
    kqtop $p |- ( J e. Top <-> ( KQ ` J ) e. Top ) $=
      ( vx vy ctop wcel ckq cfv cuni crab cmpt crn ctopon eqid toptopon kqtopon
      vj cv syl c0 cqtop sylbi topontop cdm 0opn elfvdm co ovex dmmpti syl6eleq
      df-kq impbii ) ADEZAFGZDEZULUMBAHZBQCQEZCAIJZKZLGEZUNULAUOLGEUSAUOUOMNBCU
      QAUOUQMOUAURUMUBRUNAFUCZDUNSUMEAUTEUMUDSAFUERPDPQZBVAHUPCVAIJZTUFFVAVBTUG
      BCPUJUHUIUK $.

    $( The Kolmogorov quotient is T_0 even if the original topology is not.
       (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    kqt0 $p |- ( J e. Top <-> ( KQ ` J ) e. Kol2 ) $=
      ( vx vy ctop wcel ckq cfv ct0 cuni ctopon eqid toptopon crab cmpt kqt0lem
      wel sylbi t0top kqtop sylibr impbii ) ADEZAFGZHEZUBAAIZJGEUDAUEUEKLBCBUEB
      CPCAMNZAUEUFKOQUDUCDEUBUCRASTUA $.

    $( The Kolmogorov quotient is a topology on the quotient set.  (Contributed
       by Mario Carneiro, 25-Aug-2015.) $)
    kqf $p |- KQ : Top --> Kol2 $=
      ( vx vj vy ctop ct0 ckq wf wfn cv cfv wcel wral cuni crab cmpt cqtop ovex
      co df-kq fnmpti kqt0 biimpi rgen ffnfv mpbir2an ) DEFGFDHAIZFJEKZADLBDBIZ
      AUHMUFCIKCUHNOZPRFUHUIPQACBSTUGADUFDKUGUFUAUBUCADEFUDUE $.

    $( The separation property of an R_0 space.  (Contributed by Mario
       Carneiro, 25-Aug-2015.) $)
    r0sep $p |- ( ( ( J e. ( TopOn ` X ) /\ ( KQ ` J ) e. Fre ) /\
      ( A e. X /\ B e. X ) ) -> ( A. o e. J ( A e. o -> B e. o ) ->
                                  A. o e. J ( A e. o <-> B e. o ) ) ) $=
      ( vx vy vz vw cfv wcel wa wel wi wral wb cv wceq eleq1 ralbidv ctopon ckq
      ct1 crab cmpt eqid isr0 biimpa imbi1d bibi1d imbi12d imbi2d bibi2d rspc2v
      mpan9 ) DEUAJKZDUBJUCKZLFCMZGCMZNZCDOZURUSPZCDOZNZGEOFEOZAEKBEKLACQZKZBVF
      KZNZCDOZVGVHPZCDOZNZUPUQVEHIFGCHEHIMIDUDUEZDEVNUFUGUHVDVMVGUSNZCDOZVGUSPZ
      CDOZNFGABEEFQZARZVAVPVCVRVTUTVOCDVTURVGUSVSAVFSZUITVTVBVQCDVTURVGUSWAUJTU
      KGQZBRZVPVJVRVLWCVOVICDWCUSVHVGWBBVFSZULTWCVQVKCDWCUSVHVGWDUMTUKUNUO $.

    $( A normal R_0 space is also regular.  These spaces are usually referred
       to as normal regular spaces.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    nrmr0reg $p |- ( ( J e. Nrm /\ ( KQ ` J ) e. Fre ) -> J e. Reg ) $=
      ( vy vz vx va vb vw wcel cfv wa wel cv wss wrex wral adantr crab eqid weq
      wb cnrm ckq ct1 ctop ccl creg nrmtop cuni ccld simpll simprl ctopon sylib
      toptopon simplr simprr elunii syl2anc r0cld syl3anc w3a simp1rr wi elequ2
      cmpt bibi12d rspcv 3impia mpbird rabssdv nrmsep3 syl13anc biidd ralrimivw
      syl elequ1 bibi1d ralbidv sylanbrc ssel syl5com anim1d reximdv ralrimivva
      elrab mpd isreg ) AUAHZAUBIUCHZJZAUDHZBCKZCLZAUEIIDLZMZJZCANZBWNODAOAUFHW
      HWKWIAUGPZWJWQDBAWNWJWNAHZBDKZJZJZEFKZBFKZTZFAOZEAUHZQZWMMZWOJZCANZWQXBWH
      WSXHAUIIHZXHWNMXKWHWIXAUJWJWSWTUKZXBAXGULIHZWIBLZXGHZXLXBWKXNWJWKXAWRPAXG
      XGRUNUMWHWIXAUOXBWTWSXPWJWSWTUPXMXOWNAUQURZCGEXOFCXGCGKGAQVEZAXGXRRUSUTXB
      XFEXGWNXBELXGHZXFVAEDKZWTWSWTWJXSXFVBXBXSXFXTWTTZXBXSJWSXFYAVCXBWSXSXMPXE
      YAFWNAFDSXCXTXDWTFDEVDFDBVDVFVGVOVHVIVJCWNXHAVKVLXBXJWPCAXBXIWLWOXBXOXHHZ
      XIWLXBXPXDXDTZFAOZYBXQXBYCFAXBXDVMVNXFYDEXOXGEBSZXEYCFAYEXCXDXDEBFVPVQVRW
      EVSXHWMXOVTWAWBWCWFWDDBCAWGVS $.

    $( A regular space is R_1, which means that any two topologically distinct
       points can be separated by neighborhoods.  (Contributed by Mario
       Carneiro, 25-Aug-2015.) $)
    regr1 $p |- ( J e. Reg -> ( KQ ` J ) e. Haus ) $=
      ( vx vy cuni ctopon cfv wcel creg ckq cha ctop regtop eqid toptopon sylib
      wel crab cmpt regr1lem2 mpancom ) AADZEFGZAHGZAIFJGUCAKGUBALAUAUAMNOBCBUA
      BCPCAQRZAUAUDMST $.

    $( The Kolmogorov quotient of a regular space is regular.  By ~ regr1 it is
       also Hausdorff, so we can also say that a space is regular iff the
       Kolmogorov quotient is regular Hausdorff (T_3).  (Contributed by Mario
       Carneiro, 25-Aug-2015.) $)
    kqreg $p |- ( J e. Reg <-> ( KQ ` J ) e. Reg ) $=
      ( vx vy creg wcel ckq cfv cuni ctopon ctop regtop eqid toptopon sylib wel
      crab cmpt kqreglem1 mpancom kqtop sylibr kqreglem2 impbii ) ADEZAFGZDEZAA
      HZIGEZUDUFUDAJEZUHAKAUGUGLMZNBCBUGBCOCAPQZAUGUKLZRSUHUFUDUFUIUHUFUEJEUIUE
      KATUAUJNBCUKAUGULUBSUC $.

    $( The Kolmogorov quotient of a normal space is normal.  (Contributed by
       Mario Carneiro, 25-Aug-2015.) $)
    kqnrm $p |- ( J e. Nrm <-> ( KQ ` J ) e. Nrm ) $=
      ( vx vy cnrm wcel ckq cfv cuni ctopon ctop nrmtop eqid toptopon sylib wel
      crab cmpt kqnrmlem1 mpancom kqtop sylibr kqnrmlem2 impbii ) ADEZAFGZDEZAA
      HZIGEZUDUFUDAJEZUHAKAUGUGLMZNBCBUGBCOCAPQZAUGUKLZRSUHUFUDUFUIUHUFUEJEUIUE
      KATUAUJNBCUKAUGULUBSUC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Homeomorphisms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Homeo $. $( Class of all homeomorphisms. $)
  $c ~= $. $( The relation "is homeomorphic to." $)

  $( Extend class notation with the class of all homeomorphisms. $)
  chmeo $a class Homeo $.

  $( Extend class notation with the relation "is homeomorphic to.". $)
  chmph $a class ~= $.

  ${
    $d f j k J $.  $d f j k K $.
    $( Function returning all the homeomorphisms from topology ` j ` to
       topology ` k ` .  (Contributed by FL, 14-Feb-2007.) $)
    df-hmeo $a |- Homeo = ( j e. Top , k e. Top |->
            { f e. ( j Cn k ) | `' f e. ( k Cn j ) } ) $.

    $( Definition of the relation ` x ` is homeomorphic to ` y ` .
       (Contributed by FL, 14-Feb-2007.) $)
    df-hmph $a |- ~= = ( `' Homeo " ( _V \ 1o ) ) $.

    $( The set of homeomorphisms is a function on topologies.  (Contributed by
       Mario Carneiro, 23-Aug-2015.) $)
    hmeofn $p |- Homeo Fn ( Top X. Top ) $=
      ( vj vk vf ctop cv ccnv ccn co wcel crab chmeo df-hmeo ovex rabex fnmpt2i
      ) ABDDCEFBEZAEZGHIZCQPGHZJKCABLRCSQPGMNO $.

    $( The set of all the homeomorphisms between two topologies.  (Contributed
       by FL, 14-Feb-2007.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
    hmeofval $p |- ( J Homeo K ) = { f e. ( J Cn K ) | `' f e. ( K Cn J ) } $=
      ( vj vk ctop wcel wa chmeo co cv ccnv ccn crab oveq12 ancoms eleq2d wn c0
      wceq rabeqbidv df-hmeo ovex rabex ovmpt2a mpt2ndm0 wral cntop1 cntop2 jca
      a1d con3rr3 ralrimiv rabeq0 sylibr eqtr4d pm2.61i ) BFGZCFGZHZBCIJZAKZLZC
      BMJZGZABCMJZNZTDEBCFFVCEKZDKZMJZGZAVIVHMJZNZVGIVIBTZVHCTZHZVKVEAVLVFVIBVH
      CMOVPVJVDVCVOVNVJVDTVHCVIBMOPQUAADEUBZVEAVFBCMUCUDUEUTRZVASVGDEVMIBCFFVQU
      FVRVERZAVFUGVGSTVRVSAVFVBVFGZVEUTVTUTVEVTURUSVBBCUHVBBCUIUJUKULUMVEAVFUNU
      OUPUQ $.
  $}

  ${
    $d F f $.  $d J f $.  $d K f $.
    $( The predicate F is a homeomorphism between topology ` J ` and topology
       ` K ` .  Proposition of [BourbakiTop1] p.  I.2.  (Contributed by FL,
       14-Feb-2007.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
    ishmeo $p |- ( F e. ( J Homeo K ) <->
        ( F e. ( J Cn K ) /\ `' F e. ( K Cn J ) ) ) $=
      ( vf cv ccnv ccn co wcel chmeo wceq cnveq eleq1d hmeofval elrab2 ) DEZFZC
      BGHZIAFZRIDABCGHBCJHPAKQSRPALMDBCNO $.
  $}

  $( A homeomorphism is continuous.  (Contributed by Mario Carneiro,
     22-Aug-2015.) $)
  hmeocn $p |- ( F e. ( J Homeo K ) -> F e. ( J Cn K ) ) $=
    ( chmeo co wcel ccn ccnv ishmeo simplbi ) ABCDEFABCGEFAHCBGEFABCIJ $.

  $( The converse of a homeomorphism is continuous.  (Contributed by Mario
     Carneiro, 22-Aug-2015.) $)
  hmeocnvcn $p |- ( F e. ( J Homeo K ) -> `' F e. ( K Cn J ) ) $=
    ( chmeo co wcel ccn ccnv ishmeo simprbi ) ABCDEFABCGEFAHCBGEFABCIJ $.

  $( The converse of a homeomorphism is a homeomorphism.  (Contributed by FL,
     5-Mar-2007.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
  hmeocnv $p |- ( F e. ( J Homeo K ) -> `' F e. ( K Homeo J ) ) $=
    ( chmeo co wcel ccnv ccn hmeocnvcn wrel wceq cuni hmeocn eqid cnf frel 3syl
    wf dfrel2 sylib eqeltrd ishmeo sylanbrc ) ABCDEFZAGZCBHEFUEGZBCHEZFUECBDEFA
    BCIUDUFAUGUDAJZUFAKUDAUGFBLZCLZARUHABCMZABCUIUJUINUJNOUIUJAPQASTUKUAUECBUBU
    C $.

  $( A homeomorphism is a 1-1-onto mapping.  (Contributed by Mario Carneiro,
     22-Aug-2015.) $)
  hmeof1o2 $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) /\
    F e. ( J Homeo K ) ) -> F : X -1-1-onto-> Y ) $=
    ( ctopon cfv wcel chmeo co w3a wfn ccnv wf1o wf ccn cnf2 syl3an3 ffn syl
    hmeocn hmeocnvcn 3com12 dff1o4 sylanbrc ) BDFGHZCEFGHZABCIJHZKZADLZAMZELZDE
    ANUIDEAOZUJUHUFUGABCPJHUMABCUAABCDEQRDEASTUIEDUKOZULUHUFUGUKCBPJHZUNABCUBUG
    UFUOUNUKCBEDQUCREDUKSTDEAUDUE $.

  ${
    hmeof1o.1 $e |- X = U. J $.
    hmeof1o.2 $e |- Y = U. K $.
    $( A homeomorphism is a 1-1-onto mapping.  (Contributed by FL, 5-Mar-2007.)
       (Revised by Mario Carneiro, 30-May-2014.) $)
    hmeof1o $p |- ( F e. ( J Homeo K ) -> F : X -1-1-onto-> Y ) $=
      ( ctopon cfv wcel wa chmeo co wf1o ccn hmeocn ctop cntop1 toptopon sylib
      cntop2 jca syl hmeof1o2 3expia mpcom ) BDHIJZCEHIJZKZABCLMJZDEANZUJABCOMJ
      ZUIABCPULUGUHULBQJUGABCRBDFSTULCQJUHABCUACEGSTUBUCUGUHUJUKABCDEUDUEUF $.
  $}

  $( The image of an open set by a homeomorphism is an open set.  (Contributed
     by FL, 5-Mar-2007.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
  hmeoima $p |- ( ( F e. ( J Homeo K ) /\ A e. J ) -> ( F " A ) e. K ) $=
    ( chmeo co wcel ccnv ccn cima hmeocnvcn wa imacnvcnv cnima syl5eqelr sylan
    ) BCDEFGBHZDCIFGZACGZBAJZDGBCDKRSLTQHAJDBAMAQDCNOP $.

  ${
    hmeoopn.1 $e |- X = U. J $.
    $( Homeomorphisms preserve openness.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Proof shortened by Mario Carneiro, 25-Aug-2015.) $)
    hmeoopn $p |- ( ( F e. ( J Homeo K ) /\ A C_ X ) ->
        ( A e. J <-> ( F " A ) e. K ) ) $=
      ( chmeo co wcel wss wa cima wi hmeoima ex adantr ccnv ccn hmeocn syl cuni
      cnima wceq wf1o eqid hmeof1o f1of1 f1imacnv sylan eleq1d sylibd impbid
      wf1 ) BCDGHIZAEJZKZACIZBALZDIZUNUQUSMUOUNUQUSABCDNOPUPUSBQURLZCIZUQUNUSVA
      MZUOUNBCDRHIZVBBCDSVCUSVAURBCDUBOTPUPUTACUNEDUAZBUMZUOUTAUCUNEVDBUDVEBCDE
      VDFVDUEUFEVDBUGTEVDABUHUIUJUKUL $.

    $( Homeomorphisms preserve closedness.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Proof shortened by Mario Carneiro, 25-Aug-2015.) $)
    hmeocld $p |- ( ( F e. ( J Homeo K ) /\ A C_ X ) ->
        ( A e. ( Clsd ` J ) <-> ( F " A ) e. ( Clsd ` K ) ) ) $=
      ( chmeo co wcel wa ccld cfv cima ccnv ccn wi adantr cnclima ex syl hmeocn
      wss hmeocnvcn imacnvcnv syl5eqelr cuni wceq wf1o eqid hmeof1o f1of1 sylan
      wf1 f1imacnv eleq1d sylibd impbid ) BCDGHIZAEUBZJZACKLZIZBAMZDKLZIZUTBNZD
      COHIZVBVEPURVGUSBCDUCQVGVBVEVGVBJVCVFNAMVDBAUDAVFDCRUESTUTVEVFVCMZVAIZVBU
      TBCDOHIZVEVIPURVJUSBCDUAQVJVEVIVCBCDRSTUTVHAVAUREDUFZBUMZUSVHAUGUREVKBUHV
      LBCDEVKFVKUIUJEVKBUKTEVKABUNULUOUPUQ $.

    $( Homeomorphisms preserve closures.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    hmeocls $p |- ( ( F e. ( J Homeo K ) /\ A C_ X ) ->
        ( ( cls ` K ) ` ( F " A ) ) = ( F " ( ( cls ` J ) ` A ) ) ) $=
      ( chmeo co wcel wss wa cima ccl cfv ccn hmeocnvcn cncls2i sylan imacnvcnv
      ccnv fveq2i 3sstr3g hmeocn cnclsi eqssd ) BCDGHIZAEJZKZBALZDMNZNZBACMNNZL
      ZUHBTZTZALZUJNZUOULLZUKUMUFUNDCOHIUGUQURJBCDPAUNDCEFQRUPUIUJBASUABULSUBUF
      BCDOHIUGUMUKJBCDUCABCDEFUDRUE $.

    $( Homeomorphisms preserve interiors.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    hmeontr $p |- ( ( F e. ( J Homeo K ) /\ A C_ X ) ->
        ( ( int ` K ) ` ( F " A ) ) = ( F " ( ( int ` J ) ` A ) ) ) $=
      ( wcel wss cima cnt cfv ccnv ccn adantr wceq cnntri syl2anc syl imacnvcnv
      co chmeo wa cuni hmeocn crn imassrn wf1o wfo eqid hmeof1o f1ofo forn 3syl
      syl5sseq wf1 f1of1 f1imacnv sylancom fveq2d sseqtrd wfun wi f1ofun cntop2
      ctop ntrss3 sseqtr4d funimass1 mpd hmeocnvcn sylan fveq2i 3sstr3g eqssd )
      BCDUATGZAEHZUBZBAIZDJKZKZBACJKZKZIZVQBLZVTIZWBHZVTWCHZVQWEWDVRIZWAKZWBVQB
      CDMTGZVRDUCZHZWEWIHVOWJVPBCDUDNZVQBUEZVRWKBAUFVQEWKBUGZEWKBUHWNWKOVOWOVPB
      CDEWKFWKUIZUJNZEWKBUKEWKBULUMZUNZVRBCDWKWPPQVQWHAWAVOVPEWKBUOZWHAOVQWOWTW
      QEWKBUPREWKABUQURUSUTVQBVAZVTWNHWFWGVBVQWOXAWQEWKBVCRVQVTWKWNVQDVEGZWLVTW
      KHVQWJXBWMBCDVDRWSVRDWKWPVFQWRVGVTWBBVHQVIVQWDLZWBIZXCAIZVSKZWCVTVOWDDCMT
      GVPXDXFHBCDVJAWDDCEFPVKBWBSXEVRVSBASVLVMVN $.
  $}

  ${
    $d x y F $.  $d x y J $.  $d x y K $.
    hmeoimaf1o.1 $e |- G = ( x e. J |-> ( F " x ) ) $.
    $( The function mapping open sets to their images under a homeomorphism is
       a bijection of topologies.  (Contributed by Mario Carneiro,
       10-Sep-2015.) $)
    hmeoimaf1o $p |- ( F e. ( J Homeo K ) -> G : J -1-1-onto-> K ) $=
      ( vy chmeo co wcel cv cima ccnv wa wceq cuni wss eqid syl elssuni hmeoima
      ccn hmeocn cnima sylan wf1 wb wf1o hmeof1o adantr f1of1 ad2antrl cnvimass
      cdm f1dm syl5sseq f1imaeq syl12anc f1ofo ad2antll foimacnv syl2anc eqeq2d
      wfo eqcom syl6bb bitr3d f1o2d ) BDEHIJZAGDEBAKZLZBMGKZLZCFVJBDEUAVIBDEUBI
      JVLEJZVMDJBDEUCVLBDEUDUEVIVJDJZVNNZNZVKBVMLZOZVJVMOZVLVKOZVQDPZEPZBUFZVJW
      BQZVMWBQVSVTUGVQWBWCBUHZWDVIWFVPBDEWBWCWBRWCRUIUJZWBWCBUKSZVOWEVIVNVJDTUL
      VQBUNZVMWBBVLUMVQWDWIWBOWHWBWCBUOSUPWBWCVJVMBUQURVQVSVKVLOWAVQVRVLVKVQWBW
      CBVDZVLWCQZVRVLOVQWFWJWGWBWCBUSSVNWKVIVOVLETUTWBWCVLBVAVBVCVKVLVEVFVGVH
      $.
  $}

  ${
    hmeores.1 $e |- X = U. J $.
    $( The restriction of a homeomorphism is a homeomorphism.  (Contributed by
       Mario Carneiro, 14-Sep-2014.)  (Proof shortened by Mario Carneiro,
       22-Aug-2015.) $)
    hmeores $p |- ( ( F e. ( J Homeo K ) /\ Y C_ X ) ->
      ( F |` Y ) e. ( ( J |`t Y ) Homeo ( K |`t ( F " Y ) ) ) ) $=
      ( chmeo co wcel wss cres crest ccn ccnv adantr cnrest crn syl wf wceq cfv
      wa cima hmeocn sylancom cuni ctopon wb ctop cntop2 eqid toptopon eqimss2i
      sylib df-ima a1i imassrn cnf frn syl5ss cnrest2 mpbid wfun hmeocnvcn ffun
      syl3anc funcnvres 4syl syl2anc eqeltrd cntop1 cdm dfdm4 fssres fdm eqimss
      syl5eqr simpr ishmeo sylanbrc ) ABCGHIZEDJZUBZAEKZBELHZCAEUCZLHZMHIZWDNZW
      GWEMHIZWDWEWGGHIWCWDWECMHIZWHWAWBABCMHIZWKWAWLWBABCUDOZEABCDFPUEWCCCUFZUG
      UAIZWDQZWFJZWFWNJZWKWHUHWCCUIIZWOWCWLWSWMABCUJRCWNWNUKZULUNWQWCWFWPAEUOUM
      UPWCWFAQZWNAEUQWCDWNASZXAWNJWCWLXBWMABCDWNFWTURRZDWNAUSRUTZWFWDWECWNVAVFV
      BWCWIWGBMHZIZWJWCWIANZWFKZXEWCXGCBMHIZWNDXGSXGVCWIXHTWAXIWBABCVDOZXGCBWND
      WTFURWNDXGVEEAVGVHWCXIWRXHXEIXJXDWFXGCBWNWTPVIVJWCBDUGUAIZWIQZEJZWBXFWJUH
      WCBUIIZXKWCWLXNWMABCVKRBDFULUNWCXLETXMWCXLWDVLZEWDVMWCEWNWDSZXOETWAWBXBXP
      XCDWNEAVNUEEWNWDVORVQXLEVPRWAWBVREWIWGBDVAVFVBWDWEWGVSVT $.
  $}

  $( The composite of two homeomorphisms is a homeomorphism.  (Contributed by
     FL, 9-Mar-2007.)  (Proof shortened by Mario Carneiro, 23-Aug-2015.) $)
  hmeoco $p |- ( ( F e. ( J Homeo K ) /\ G e. ( K Homeo L ) ) ->
      ( G o. F ) e. ( J Homeo L ) ) $=
    ( chmeo co wcel wa ccom ccn ccnv hmeocn cnco syl2an cnvco hmeocnvcn syl2anr
    syl5eqel ishmeo sylanbrc ) ACDFGHZBDEFGHZIZBAJZCEKGHZUELZECKGZHUECEFGHUBACD
    KGHBDEKGHUFUCACDMBDEMABCDENOUDUGALZBLZJZUHBAPUCUJEDKGHUIDCKGHUKUHHUBBDEQACD
    QUJUIEDCNRSUECETUA $.

  $( The identity function is a homeomorphism.  (Contributed by FL,
     14-Feb-2007.)  (Proof shortened by Mario Carneiro, 23-Aug-2015.) $)
  idhmeo $p |- ( J e. ( TopOn ` X ) -> ( _I |` X ) e. ( J Homeo J ) ) $=
    ( ctopon cfv wcel cid cres ccn ccnv chmeo cnvresid syl5eqel ishmeo sylanbrc
    co idcn ) ABCDEZFBGZAAHOZERIZSERAAJOEABPZQTRSBKUALRAAMN $.

  $( The converse of a homeomorphism is a homeomorphism.  (Contributed by FL,
     5-Mar-2007.)  (Revised by Mario Carneiro, 23-Aug-2015.) $)
  hmeocnvb $p |- ( Rel F ->
    ( `' F e. ( J Homeo K ) <-> F e. ( K Homeo J ) ) ) $=
    ( wrel ccnv chmeo co wcel hmeocnv wceq wb dfrel2 eleq1 sylbi syl5ib impbid1
    ) ADZAEZBCFGHZACBFGZHZSREZTHZQUARBCIQUBAJUCUAKALUBATMNOACBIP $.

  ${
    $d F x $.  $d J x $.  $d K x $.
    $( A homeomorphism is a quotient map.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    hmeoqtop $p |- ( F e. ( J Homeo K ) -> K = ( J qTop F ) ) $=
      ( vx chmeo wcel cuni ctop ctopon cfv ccn hmeocn cntop2 syl toptopon sylib
      co eqid wf1o wfo crn wceq hmeof1o f1ofo forn 3syl cv hmeoima qtopomap ) A
      BCEQFZDABCCGZUJCHFZCUKIJFUJABCKQFULABCLZABCMNCUKUKRZOPUMUJBGZUKASUOUKATAU
      AUKUBABCUOUKUORUNUCUOUKAUDUOUKAUEUFDUGABCUHUI $.
  $}

  $( Express the predicate ` J ` is homeomorphic to ` K ` .  (Contributed by
     FL, 14-Feb-2007.)  (Revised by Mario Carneiro, 22-Aug-2015.) $)
  hmph $p |- ( J ~= K <-> ( J Homeo K ) =/= (/) ) $=
    ( chmph chmeo ctop cxp df-hmph hmeofn brwitnlem ) ABCDEEFGHI $.

  $( If there is a homeomorphism between spaces, then the spaces are
     homeomorphic.  (Contributed by Mario Carneiro, 23-Aug-2015.) $)
  hmphi $p |- ( F e. ( J Homeo K ) -> J ~= K ) $=
    ( chmeo co wcel c0 wne chmph wbr ne0i hmph sylibr ) ABCDEZFNGHBCIJNAKBCLM
    $.

  $( Reverse closure for the homeomorphic predicate.  (Contributed by Mario
     Carneiro, 22-Aug-2015.) $)
  hmphtop $p |- ( J ~= K -> ( J e. Top /\ K e. Top ) ) $=
    ( ctop chmph chmeo ccnv cvv c1o cdif cima cxp df-hmph cdm cnvimass wfn wceq
    hmeofn fndm ax-mp sseqtri eqsstri brel ) ABCCDDEFGHIZJZCCKZLUDEMZUEEUCNEUEO
    UFUEPQUEERSTUAUB $.

  $( The relation "being homeomorphic to" implies the operands are topologies.
     (Contributed by FL, 23-Mar-2007.)  (Revised by Mario Carneiro,
     23-Aug-2015.) $)
  hmphtop1 $p |- ( J ~= K -> J e. Top ) $=
    ( chmph wbr ctop wcel hmphtop simpld ) ABCDAEFBEFABGH $.

  $( The relation "being homeomorphic to" implies the operands are topologies.
     (Contributed by FL, 23-Mar-2007.)  (Revised by Mario Carneiro,
     23-Aug-2015.) $)
  hmphtop2 $p |- ( J ~= K -> K e. Top ) $=
    ( chmph wbr ctop wcel hmphtop simprd ) ABCDAEFBEFABGH $.

  $( "Is homeomorphic to" is reflexive.  (Contributed by FL, 25-Feb-2007.)
     (Proof shortened by Mario Carneiro, 23-Aug-2015.) $)
  hmphref $p |- ( J e. Top -> J ~= J ) $=
    ( ctop wcel cid cuni cres chmeo co chmph wbr ctopon cfv eqid toptopon sylbi
    idhmeo hmphi syl ) ABCZDAEZFZAAGHCZAAIJSATKLCUBATTMNATPOUAAAQR $.

  ${
    $d x y z $.  $d f g x J $.  $d f g x K $.  $d f g L $.
    $( "Is homeomorphic to" is symmetric.  (Contributed by FL, 8-Mar-2007.)
       (Proof shortened by Mario Carneiro, 30-May-2014.) $)
    hmphsym $p |- ( J ~= K -> K ~= J ) $=
      ( vf chmph wbr cv chmeo co wcel wex c0 wne hmph n0 bitri ccnv hmeocnv syl
      hmphi exlimiv sylbi ) ABDEZCFZABGHZIZCJZBADEZUBUDKLUFABMCUDNOUEUGCUEUCPZB
      AGHIUGUCABQUHBASRTUA $.

    $( "Is homeomorphic to" is transitive.  (Contributed by FL, 9-Mar-2007.)
       (Revised by Mario Carneiro, 23-Aug-2015.) $)
    hmphtr $p |- ( ( J ~= K /\ K ~= L ) -> J ~= L ) $=
      ( vf vg chmph wbr chmeo co c0 wne hmph cv wcel wex n0 eeanv ccom syl2anb
      wa hmeoco hmphi syl exlimivv sylbir ) ABFGABHIZJKZBCHIZJKZACFGZBCFGABLBCL
      UGDMZUFNZDOZEMZUHNZEOZUJUIDUFPEUHPUMUPTULUOTZEODOUJULUODEQUQUJDEUQUNUKRZA
      CHINUJUKUNABCUAURACUBUCUDUESS $.

    $( "Is homeomorphic to" is an equivalence relation.  (Contributed by FL,
       22-Mar-2007.)  (Revised by Mario Carneiro, 23-Aug-2015.) $)
    hmpher $p |- ~= Er Top $=
      ( vx vy ctop chmph wer wtru wrel cxp wss chmeo ccnv cvv c1o cdif cima a1i
      vz cv wbr adantl df-hmph cdm cnvimass wfn wceq fndm ax-mp sseqtri eqsstri
      hmeofn relxp relss mp2 hmphsym wa hmphtr wb hmphref hmphtop1 impbii iserd
      wcel trud ) CDEFABQCDDGZFDCCHZIVEGVDDJKLMNZOZVEUAVGJUBZVEJVFUCJVEUDVHVEUE
      UJVEJUFUGUHUICCUKDVEULUMPARZBRZDSZVJVIDSFVIVJUNTVKVJQRZDSUOVIVLDSFVIVJVLU
      PTVICVBZVIVIDSZUQFVMVNVIURVIVIUSUTPVAVC $.

    $( Homeomorphisms preserve the cardinality of the topologies.  (Contributed
       by FL, 1-Jun-2008.)  (Revised by Mario Carneiro, 10-Sep-2015.) $)
    hmphen $p |- ( J ~= K -> J ~~ K ) $=
      ( vf vx chmph wbr chmeo co c0 wne cen hmph cv wcel wex n0 ctop cima sylbi
      syl cmpt wf1o ccn hmeocn cntop1 cntop2 hmeoimaf1o f1oen2g syl3anc exlimiv
      eqid ) ABEFABGHZIJZABKFZABLUMCMZULNZCOUNCULPUPUNCUPAQNZBQNZABDAUODMRUAZUB
      UNUPUOABUCHNZUQUOABUDZUOABUETUPUTURVAUOABUFTDUOUSABUSUKUGABUSQQUHUIUJSS
      $.
  $}

  $( "Is homeomorphic to" is symmetric.  (Contributed by FL, 22-Feb-2007.) $)
  hmphsymb $p |- ( J ~= K <-> K ~= J ) $=
    ( chmph wbr hmphsym impbii ) ABCDBACDABEBAEF $.

  ${
    $d f A $.  $d f J $.  $d f K $.
    haushmphlem.1 $e |- ( J e. A -> J e. Top ) $.
    haushmphlem.2 $e |- ( ( J e. A /\
      f : U. K -1-1-> U. J /\ f e. ( K Cn J ) ) -> K e. A ) $.
    $( Lemma for ~ haushmph and similar theorems.  If the topological property
       ` A ` is preserved under injective preimages, then property ` A ` is
       preserved under homeomorphisms.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    haushmphlem $p |- ( J ~= K -> ( J e. A -> K e. A ) ) $=
      ( chmph wbr wcel wi hmphsym chmeo co c0 wne cuni eqid adantl syl sylbi cv
      hmph wex n0 wa wf1 simpl wf1o hmeof1o f1of1 hmeocn syl3anc expcom exlimiv
      ccn ) CDGHDCGHZCAIZDAIZJZCDKUPDCLMZNOZUSDCUBVABUAZUTIZBUCUSBUTUDVCUSBUQVC
      URUQVCUEZUQDPZCPZVBUFZVBDCUOMIZURUQVCUGVDVEVFVBUHZVGVCVIUQVBDCVEVFVEQVFQU
      IRVEVFVBUJSVCVHUQVBDCUKRFULUMUNTTS $.
  $}

  ${
    $d f w x y J $.  $d f w x y z K $.
    $( Compactness is a topological property-that is, for any two homeomorphic
       topologies, either both are compact or neither is.  (Contributed by Jeff
       Hankins, 30-Jun-2009.)  (Revised by Mario Carneiro, 23-Aug-2015.) $)
    cmphmph $p |- ( J ~= K -> ( J e. Comp -> K e. Comp ) ) $=
      ( vf chmph wbr chmeo co c0 wne ccmp wcel wi hmph cv wex n0 cuni wfo sylbi
      eqid ccn wf1o hmeof1o f1ofo syl hmeocn cncmp 3expb expcom syl2anc exlimiv
      wa ) ABDEABFGZHIZAJKZBJKZLZABMUNCNZUMKZCOUQCUMPUSUQCUSAQZBQZURRZURABUAGKZ
      UQUSUTVAURUBVBURABUTVAUTTVATZUCUTVAURUDUEURABUFUOVBVCULUPUOVBVCUPURABUTVA
      VDUGUHUIUJUKSS $.

    $( Connectedness is a topological property.  (Contributed by Jeff Hankins,
       3-Jul-2009.) $)
    connhmph $p |- ( J ~= K -> ( J e. Conn -> K e. Conn ) ) $=
      ( vf chmph wbr chmeo co c0 wne cconn wcel wi hmph cv wex n0 cuni wfo eqid
      sylbi ccn hmeof1o f1ofo syl hmeocn wa cnconn 3expb expcom syl2anc exlimiv
      wf1o ) ABDEABFGZHIZAJKZBJKZLZABMUNCNZUMKZCOUQCUMPUSUQCUSAQZBQZURRZURABUAG
      KZUQUSUTVAURULVBURABUTVAUTSVASZUBUTVAURUCUDURABUEUOVBVCUFUPUOVBVCUPURABUT
      VAVDUGUHUIUJUKTT $.

    $( T_0 is a topological property.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    t0hmph $p |- ( J ~= K -> ( J e. Kol2 -> K e. Kol2 ) ) $=
      ( vf ct0 t0top cv cuni cnt0 haushmphlem ) DCABAECFBABGAGHI $.

    $( T_1 is a topological property.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    t1hmph $p |- ( J ~= K -> ( J e. Fre -> K e. Fre ) ) $=
      ( vf ct1 t1top cv cuni cnt1 haushmphlem ) DCABAECFBABGAGHI $.

    $( Hausdorff-ness is a topological property.  (Contributed by Mario
       Carneiro, 25-Aug-2015.) $)
    haushmph $p |- ( J ~= K -> ( J e. Haus -> K e. Haus ) ) $=
      ( vf cha haustop cv cuni cnhaus haushmphlem ) DCABAECFBABGAGHI $.

    $( Regularity is a topological property.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    reghmph $p |- ( J ~= K -> ( J e. Reg -> K e. Reg ) ) $=
      ( vf vy vz vx vw co creg wcel cv wa ctop cfv wss cima adantr syl2anc wceq
      syl chmph wbr chmeo c0 wne wi hmph wex n0 ccl wrex wral ccn hmeocn adantl
      cntop2 ccnv simpll simprl cnima cuni wfn wf1o eqid hmeof1o ad2antlr f1ofn
      f1ocnv 3syl elssuni ad2antrl simprr fnfvima syl3anc regsep simpllr sseldd
      hmeoima simprrl elpreima mpbir2and imacnvcnv syl6eleq hmeocls simprrr cdm
      wb wfun f1ofun regtop clsss3 f1odm sseqtr4d funimass3 eqsstrd eleq2 fveq2
      mpbird sseq1d anbi12d rspcev syl12anc rexlimddv ralrimivva isreg sylanbrc
      expcom exlimiv sylbi ) ABUAUBABUCHZUDUEZAIJZBIJZUFZABUGXKCKZXJJZCUHXNCXJU
      IXPXNCXLXPXMXLXPLZBMJZDKZEKZJZXTBUJNZNZFKZOZLZEBUKZDYDULFBULXMXQXOABUMHJZ
      XRXPYHXLXOABUNUOZXOABUPTXQYGFDBYDXQYDBJZXSYDJZLZLZXSXOUQZNZGKZJZYPAUJNNZY
      NYDPZOZLZYGGAYMXLYSAJZYOYSJZUUAGAUKXLXPYLURZYMYHYJUUBXQYHYLYIQXQYJYKUSYDX
      OABUTRYMYNBVAZVBZYDUUEOZYKUUCYMAVAZUUEXOVCZUUEUUHYNVCUUFXPUUIXLYLXOABUUHU
      UEUUHVDZUUEVDVEVFZUUHUUEXOVHUUEUUHYNVGVIZYJUUGXQYKYDBVJVKZXQYJYKVLZUUEYDY
      NXSVMVNGYOYSAVOVNYMYPAJZUUALZLZXOYPPZBJZXSUURJZUURYBNZYDOZYGUUQXPUUOUUSXL
      XPYLUUPVPZYMUUOUUAUSYPXOABVRRUUQXSYNUQYPPZUURUUQXSUVDJZXSUUEJZYQYMUVFUUPY
      MYDUUEXSUUMUUNVQQYMUUOYQYTVSUUQUUFUVEUVFYQLWGYMUUFUUPUULQUUEXSYPYNVTTWAXO
      YPWBWCUUQUVAXOYRPZYDUUQXPYPUUHOZUVAUVGSUVCUUOUVHYMUUAYPAVJVKZYPXOABUUHUUJ
      WDRUUQUVGYDOZYTYMUUOYQYTWEUUQXOWHZYRXOWFZOUVJYTWGUUQUUIUVKYMUUIUUPUUKQZUU
      HUUEXOWITUUQYRUUHUVLUUQAMJZUVHYRUUHOUUQXLUVNYMXLUUPUUDQAWJTUVIYPAUUHUUJWK
      RUUQUUIUVLUUHSUVMUUHUUEXOWLTWMYRYDXOWNRWRWOYFUUTUVBLEUURBXTUURSZYAUUTYEUV
      BXTUURXSWPUVOYCUVAYDXTUURYBWQWSWTXAXBXCXDFDEBXEXFXGXHXIXI $.

    $( Normality is a topological property.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    nrmhmph $p |- ( J ~= K -> ( J e. Nrm -> K e. Nrm ) ) $=
      ( vf vy vz vx vw co cnrm wcel wi cv wa ctop wss cfv syl cima syl2anc wceq
      chmph wbr chmeo wne hmph wex ccl wrex ccld cpw cin wral ccn hmeocn adantl
      c0 n0 cntop2 simpll adantr simprl cnima inss1 simprr sseldi cnclima inss2
      ccnv elpwid imass2 nrmsep3 syl13anc simpllr hmeoima simprrl wfun crn cuni
      wf1o eqid hmeof1o f1ofun cldss wfo f1ofo forn 3syl sseqtr4d funimass1 mpd
      elssuni ad2antrl hmeocls simprrr cdm wb nrmtop ad3antrrr clsss3 funimass3
      f1odm mpbird eqsstrd sseq2 fveq2 sseq1d anbi12d rspcev syl12anc rexlimddv
      ralrimivva isnrm sylanbrc expcom exlimiv sylbi ) ABUAUBABUCHZUPUDZAIJZBIJ
      ZKZABUEXRCLZXQJZCUFYACXQUQYCYACXSYCXTXSYCMZBNJZDLZELZOZYGBUGPZPZFLZOZMZEB
      UHZDBUIPZYKUJZUKZULFBULXTYDYBABUMHJZYEYCYRXSYBABUNUOZYBABURQYDYNFDBYQYDYK
      BJZYFYQJZMZMZYBVHZYFRZGLZOZUUFAUGPPZUUDYKRZOZMZYNGAUUCXSUUIAJZUUEAUIPJZUU
      EUUIOZUUKGAUHXSYCUUBUSUUCYRYTUULYDYRUUBYSUTZYDYTUUAVAYKYBABVBSUUCYRYFYOJZ
      UUMUUOUUCYQYOYFYOYPVCYDYTUUAVDZVEZYFYBABVFSUUCYFYKOUUNUUCYFYKUUCYQYPYFYOY
      PVGUUQVEVIYFYKUUDVJQGUUIUUEAVKVLUUCUUFAJZUUKMZMZYBUUFRZBJZYFUVBOZUVBYIPZY
      KOZYNUVAYCUUSUVCXSYCUUBUUTVMZUUCUUSUUKVAUUFYBABVNSUVAUUGUVDUUCUUSUUGUUJVO
      UVAYBVPZYFYBVQZOUUGUVDKUVAAVRZBVRZYBVSZUVHUVAYCUVLUVGYBABUVJUVKUVJVTZUVKV
      TZWAQZUVJUVKYBWBQZUVAYFUVKUVIUVAUUPYFUVKOUUCUUPUUTUURUTYFBUVKUVNWCQUVAUVL
      UVJUVKYBWDUVIUVKTUVOUVJUVKYBWEUVJUVKYBWFWGWHYFUUFYBWISWJUVAUVEYBUUHRZYKUV
      AYCUUFUVJOZUVEUVQTUVGUUSUVRUUCUUKUUFAWKWLZUUFYBABUVJUVMWMSUVAUVQYKOZUUJUU
      CUUSUUGUUJWNUVAUVHUUHYBWOZOUVTUUJWPUVPUVAUUHUVJUWAUVAANJZUVRUUHUVJOXSUWBY
      CUUBUUTAWQWRUVSUUFAUVJUVMWSSUVAUVLUWAUVJTUVOUVJUVKYBXAQWHUUHYKYBWTSXBXCYM
      UVDUVFMEUVBBYGUVBTZYHUVDYLUVFYGUVBYFXDUWCYJUVEYKYGUVBYIXEXFXGXHXIXJXKFDEB
      XLXMXNXOXPXP $.
  $}

  $( A topology homeomorphic to the empty set is empty.  (Contributed by FL,
     18-Aug-2008.)  (Revised by Mario Carneiro, 10-Sep-2015.) $)
  hmph0 $p |- ( J ~= { (/) } <-> J = { (/) } ) $=
    ( c0 csn chmph wbr wceq c1o cen hmphen df1o2 syl6breqr ctop hmphtop1 en1top
    wcel wb syl mpbid id sn0top hmphref ax-mp syl6eqbr impbii ) ABCZDEZAUEFZUFA
    GHEZUGUFAUEGHAUEIJKUFALOUHUGPAUEMANQRUGAUEUEDUGSUELOUEUEDETUEUAUBUCUD $.

  ${
    $d f x A $.  $d f x J $.  $d f x X $.
    hmphdis.1 $e |- X = U. J $.
    $( Homeomorphisms preserve topological discretion.  (Contributed by Mario
       Carneiro, 10-Sep-2015.) $)
    hmphdis $p |- ( J ~= ~P A -> J = ~P X ) $=
      ( vf vx cpw chmph wbr wss cuni pwuni pweqi sseqtr4i a1i chmeo co cv sylbi
      wcel c0 wne hmph wex n0 elpwi wa cima crn imassrn wf unipw eqcomi hmeof1o
      wf1o f1of frn 3syl adantr syl5ss imaex elpw sylibr hmeoopn mpbird ex syl5
      vex ssrdv exlimiv eqssd ) BAGZHIZBCGZBVNJVMBBKZGVNBLCVODMNOVMBVLPQZUAUBZV
      NBJZBVLUCVQERZVPTZEUDVREVPUEVTVREVTFVNBFRZVNTWACJZVTWABTZWACUFVTWBWCVTWBU
      GZWCVSWAUHZVLTZWDWEAJWFWDWEVSUIZAVSWAUJVTWGAJZWBVTCAVSUOCAVSUKWHVSBVLCADV
      LKAAULUMUNCAVSUPCAVSUQURUSUTWEAVSWAEVHVAVBVCWAVSBVLCDVDVEVFVGVIVJSSVK $.

    $( Homeomorphisms preserve topological indiscretion.  (Contributed by FL,
       18-Aug-2008.)  (Revised by Mario Carneiro, 10-Sep-2015.) $)
    hmphindis $p |- ( J ~= { (/) , A } -> J = { (/) , X } ) $=
      ( c0 cpr chmph wbr wceq cid cfv wa sylib cuni 0ex wne c2o cen cvv wcel wb
      csn dfsn2 indislem preq2 syl6eqr syl5eqr breq2d hmph0 unieqd unisn eqcomi
      biimpac 3eqtr4g preq2d 3eqtr4a hmphen adantr necom pr2nelem mp3an12 sylbi
      fvex adantl syl5eqbrr entr ctopon ctop hmphtop1 toptopon en2top syl mpbid
      syl2anc simpld pm2.61dane ) BEAFZGHZBECFZIZAJKZEVRWAEIZLZEUBZEEFZBVSEUCZW
      CBWDGHZBWDIWBVRWGWBVQWDBGWBVQEWAFZWDAUDZWBWHWEWDWAEEUEWFUFUGUHUMBUIMZWCCE
      EWCBNWDNZCEWCBWDWJUJDWKEEOUKULUNUOUPVRWAEPZLZVTCEPZWMBQRHZVTWNLZWMBVQRHZV
      QQRHWOVRWQWLBVQUQURWMVQWHQRWIWLWHQRHZVRWLEWAPZWRWAEUSESTWASTWSWROAJVCEWAS
      SUTVAVBVDVEBVQQVFVNWMBCVGKTZWOWPUAWMBVHTZWTVRXAWLBVQVIURBCDVJMBCVKVLVMVOV
      P $.
  $}

  ${
    $d A f $.  $d B f $.
    $( Equinumerous sets equipped with their indiscrete topologies are
       homeomorphic (which means in that particular case that a segment is
       homeomorphic to a circle contrary to what Wikipedia claims).
       (Contributed by FL, 17-Aug-2008.)  (Proof shortened by Mario Carneiro,
       10-Sep-2015.) $)
    indishmph $p |- ( A ~~ B -> { (/) , A } ~= { (/) , B } ) $=
      ( vf wbr wf1o c0 cpr wcel ccn cmap f1of cvv elmapd mpbird ctopon cfv wceq
      co wf syl cen wex chmph bren chmeo ccnv wfo cdm f1odm vex syl6eqelr f1ofo
      cv dmex fornex indistopon cnindis syl2anc eleqtrrd f1ocnv ishmeo sylanbrc
      sylc hmphi exlimiv sylbi ) ABUADABCUMZEZCUBFAGZFBGZUCDZABCUDVHVKCVHVGVIVJ
      UERHZVKVHVGVIVJIRZHVGUFZVJVIIRZHVLVHVGBAJRZVMVHVGVPHABVGSABVGKVHBAVGLLVHA
      LHZABVGUGBLHZVHAVGUHLABVGUIVGCUJUNUKZABVGULABLVGUOVCZVSMNVHVIAOPHZVRVMVPQ
      VHVQWAVSALUPTVTBVILAUQURUSVHVNABJRZVOVHVNWBHBAVNSZVHBAVNEWCABVGUTBAVNKTVH
      ABVNLLVSVTMNVHVJBOPHZVQVOWBQVHVRWDVTBLUPTVSAVJLBUQURUSVGVIVJVAVBVGVIVJVDT
      VEVF $.
  $}

  ${
    $d x F $.  $d f x J $.  $d f x K $.  $d f x X $.  $d f x Y $.
    cmphaushmeo.1 $e |- X = U. J $.
    cmphaushmeo.2 $e |- Y = U. K $.
    $( Homeomorphisms preserve the cardinality of the underlying sets.
       (Contributed by FL, 17-Aug-2008.)  (Revised by Mario Carneiro,
       10-Sep-2015.) $)
    hmphen2 $p |- ( J ~= K -> X ~~ Y ) $=
      ( vf chmph wbr chmeo co c0 wne cen hmph cv wcel wex n0 sylbi wf1o hmeof1o
      f1oen3g mpdan exlimiv ) ABHIABJKZLMZCDNIZABOUGGPZUFQZGRUHGUFSUJUHGUJCDUIU
      AUHUIABCDEFUBCDUIUFUCUDUETT $.

    $( A continuous bijection from a compact space to a Hausdorff space is a
       homeomorphism.  (Contributed by Mario Carneiro, 17-Feb-2015.) $)
    cmphaushmeo $p |- ( ( J e. Comp /\ K e. Haus /\ F e. ( J Cn K ) ) ->
      ( F e. ( J Homeo K ) <-> F : X -1-1-onto-> Y ) ) $=
      ( vx ccmp wcel ccn co wf1o ccnv wa cima cfv syl sylib syl2anc cha hmeof1o
      w3a chmeo wf cv ccld wral wi f1ocnv f1of wrel wceq f1orel ad2antll dfrel2
      a1i imaeq1d wss crest simp2 adantr crn imassrn f1ofo forn syl5sseq simpl3
      wfo simp1 simprl cmpcld imacmp hauscmp syl3anc expr ralrimdva jcad ctopon
      eqeltrd ctop haustop toptopon cmptop iscncl sylibrd jctild ishmeo syl6ibr
      wb simp3 impbid2 ) BIJZCUAJZABCKLJZUCZABCUDLJZDEAMZABCDEFGUBWPWRWOANZCBKL
      JZOWQWPWRWTWOWPWREDWSUEZWSNZHUFZPZCUGQZJZHBUGQZUHZOZWTWPWRXAXHWRXAUIWPWRE
      DWSMXADEAUJEDWSUKRUQWPWRXFHXGWPXCXGJZWRXFWPXJWROZOZXDAXCPZXEXLXBAXCXLAULZ
      XBAUMWRXNWPXJDEAUNUOAUPSURXLWNXMEUSCXMUTLIJZXMXEJWPWNXKWMWNWOVAZVBXLAVCZX
      MEAXCVDXLDEAVIZXQEUMWRXRWPXJDEAVEUODEAVFRVGXLWOBXCUTLIJZXOWMWNWOXKVHXLWMX
      JXSWPWMXKWMWNWOVJZVBWPXJWRVKXCBVLTXCABCVMTXMCEGVNVOVTVPVQVRWPCEVSQJZBDVSQ
      JZWTXIWJWPCWAJZYAWPWNYCXPCWBRCEGWCSWPBWAJZYBWPWMYDXTBWDRBDFWCSHWSCBEDWETW
      FWMWNWOWKWGABCWHWIWL $.
  $}

  ${
    $d x y z F $.  $d x z R $.  $d x y z S $.  $d x z V $.  $d x y z Y $.
    $d x z W $.  $d x z X $.
    ordthmeo.1 $e |- X = dom R $.
    ordthmeo.2 $e |- Y = dom S $.
    $( Lemma for ~ ordthmeo .  (Contributed by Mario Carneiro, 9-Sep-2015.) $)
    ordthmeolem $p |- ( ( R e. V /\ S e. W /\ F Isom R , S ( X , Y ) ) ->
      F e. ( ( ordTop ` R ) Cn ( ordTop ` S ) ) ) $=
      ( vz vx vy wcel cfv wbr wral syl wceq wb cvv wiso w3a cordt co wf ccnv cv
      ccn cima csn wn crab cmpt crn wf1o isof1o 3ad2ant3 f1of fimacnv ordttopon
      ctopon 3ad2ant1 toponmax eqeltrd elsni imaeq2d eleq1d syl5ibrcom ralrimiv
      cun cin wss cdm cnvimass f1odm adantr syl5sseq sseqin2 sylib wfn ad2antrr
      f1ofn elpreima simpr biantrurd ffvelrnda breq1 notbid elrab3 simpll3 3syl
      wa f1ocnv isorel syl12anc f1ocnvfv2 sylan breq2d bitr4d 3bitr2d rabbi2dva
      bitrd eqtr3d ordtopn1 syl2anc ralrimiva dmexg syl5eqel 3ad2ant2 ralrimivw
      simpl1 rabexg eqid imaeq2 ralrnmpt mpbird breq1d ordtopn2 ralunb sylanbrc
      breq2 cuni ordtuni eqeltrrd uniexb sylibr cfi ordtval subbascn mpbir2and
      ctg ) ADMZBEMZFGABCUAZUBZCAUCNZBUCNZUHUDMFGCUEZCUFZJUGZUIZYPMZJGUJZKGLUGZ
      KUGZBOZUKZLGULZUMZUNZKGUUEUUDBOZUKZLGULZUMZUNZVJZVJZPZYOFGCUOZYRYNYLUUSYM
      FGABCUPUQZFGCURQZYOUUBJUUCPUUBJUUPPZUURYOUUBJUUCYOUUBYTUUCMZYSGUIZYPMYOUV
      DFYPYOYRUVDFRUVAFGCUSQYOYPFVANMZFYPMYLYMUVEYNADFHUTVBZFYPVCQVDUVCUUAUVDYP
      UVCYTGYSYTGVEVFVGVHVIYOUUBJUUJPZUUBJUUOPZUVBYOUVGYSUUHUIZYPMZKGPZYOUVJKGY
      OUUEGMZWLZUVIYTUUEYSNZAOZUKZJFULZYPUVMFUVIVKZUVIUVQUVMUVIFVLUVRUVIRUVMCVM
      ZUVIFCUUHVNYOUVSFRZUVLYOUUSUVTUUTFGCVOQVPZVQUVIFVRVSUVMUVPJFUVIUVMYTFMZWL
      ZYTUVIMZUWBYTCNZUUHMZWLZUWFUVPUWCCFVTZUWDUWGSUWCUUSUWHYOUUSUVLUWBUUTWAFGC
      WBQZFYTUUHCWCQUWCUWBUWFUVMUWBWDZWEUWCUWFUWEUUEBOZUKZUVPUWCUWEGMZUWFUWLSUV
      MFGYTCYOYRUVLUVAVPWFZUUGUWLLUWEGUUDUWERZUUFUWKUUDUWEUUEBWGWHWIQUWCUVOUWKU
      WCUVOUWEUVNCNZBOZUWKUWCYNUWBUVNFMZUVOUWQSYLYMYNUVLUWBWJZUWJUVMUWRUWBYOGFU
      UEYSYOUUSGFYSUOGFYSUEUUTFGCWMGFYSURWKWFZVPZFGYTUVNABCWNWOUWCUWPUUEUWEBUVM
      UWPUUERZUWBYOUUSUVLUXBUUTFGUUECWPWQVPZWRXBWHWSWTXAXCUVMYLUWRUVQYPMYLYMYNU
      VLXKZUWTJUVNADFHXDXEVDXFYOUUHTMZKGPUVGUVKSYOUXEKGYOGTMZUXEYMYLUXFYNYMGBVM
      TIBEXGXHZXIZUUGLGTXLQXJUUBUVJKJGUUHUUITUUIXMYTUUHRUUAUVIYPYTUUHYSXNVGXOQX
      PYOUVHYSUUMUIZYPMZKGPZYOUXJKGUVMUXIUVNYTAOZUKZJFULZYPUVMFUXIVKZUXIUXNUVMU
      XIFVLUXOUXIRUVMUVSUXIFCUUMVNUWAVQUXIFVRVSUVMUXMJFUXIUWCYTUXIMZUWBUWEUUMMZ
      WLZUXQUXMUWCUWHUXPUXRSUWIFYTUUMCWCQUWCUWBUXQUWJWEUWCUXQUUEUWEBOZUKZUXMUWC
      UWMUXQUXTSUWNUULUXTLUWEGUWOUUKUXSUUDUWEUUEBYAWHWIQUWCUXLUXSUWCUXLUWPUWEBO
      ZUXSUWCYNUWRUWBUXLUYASUWSUXAUWJFGUVNYTABCWNWOUWCUWPUUEUWEBUXCXQXBWHWSWTXA
      XCUVMYLUWRUXNYPMUXDUWTJUVNADFHXRXEVDXFYOUUMTMZKGPUVHUXKSYOUYBKGYOUXFUYBUX
      HUULLGTXLQXJUUBUXJKJGUUMUUNTUUNXMYTUUMRUUAUXIYPYTUUMYSXNVGXOQXPUUBJUUJUUO
      XSXTUUBJUUCUUPXSXTYOJUUQCYPYQTFGUVFYMYLUUQTMZYNYMUUQYBZTMUYCYMGUYDTKLUUJU
      UOBEGIUUJXMZUUOXMZYCUXGYDUUQYEYFXIYMYLYQUUQYGNYKNRYNKLUUJUUOBEGIUYEUYFYHX
      IYMYLYQGVANMYNBEGIUTXIYIYJ $.

    $( An order isomorphism is a homeomorphism on the respective order
       topologies.  (Contributed by Mario Carneiro, 9-Sep-2015.) $)
    ordthmeo $p |- ( ( R e. V /\ S e. W /\ F Isom R , S ( X , Y ) ) ->
      F e. ( ( ordTop ` R ) Homeo ( ordTop ` S ) ) ) $=
      ( wcel wiso w3a cordt cfv ccn co ccnv chmeo ordthmeolem isocnv sylanbrc
      3com12 syl3an3 ishmeo ) ADJZBEJZFGABCKZLCAMNZBMNZOPJCQZUIUHOPJZCUHUIRPJAB
      CDEFGHISUGUEUFGFBAUJKZUKFGABCTUFUEULUKBAUJEDGFIHSUBUCCUHUIUDUA $.
  $}

  ${
    $d u v w x y z F $.  $d w x y z J $.  $d w x y z K $.  $d u v w x y z ph $.
    $d u v w x y z G $.  $d u v w x y z L $.  $d u v x y X $.  $d u v x y Y $.
    $d u v w x y z M $.
    txhmeo.1 $e |- X = U. J $.
    txhmeo.2 $e |- Y = U. K $.
    txhmeo.3 $e |- ( ph -> F e. ( J Homeo L ) ) $.
    txhmeo.4 $e |- ( ph -> G e. ( K Homeo M ) ) $.
    $( Lift a pair of homeomorphisms on the factors to a homeomorphism of
       product topologies.  (Contributed by Mario Carneiro, 2-Sep-2015.) $)
    txhmeo $p |- ( ph -> ( x e. X , y e. Y |-> <. ( F ` x ) , ( G ` y ) >. ) e.
                         ( ( J tX K ) Homeo ( L tX M ) ) ) $=
      ( cfv co wcel syl wceq vz vw vv vu cv cop cmpt2 ctx ccn ccnv chmeo ctopon
      ctop hmeocn cntop1 toptopon sylib cnmpt1st cnmpt21f cnmpt2nd cnmpt2t cuni
      cxp c1st c2nd cmpt wf1o op1std fveq2d op2ndd opeq12d mpt2mpt eqcomi wa wf
      vex eqid cnf xp1st ffvelrn syl2an xp2nd opelxpi syl2anc hmeof1o f1of 3syl
      f1ocnv wb adantr ad2antrl ad2antll f1ocnvfvb syl3anc 3bitr4g anbi12d eqop
      3bitr4rd f1ocnv2d simprd syl6eq cntop2 hmeocnvcn eqeltrd ishmeo sylanbrc
      eqcom ) ABCJKBUEZDPZCUEZEPZUFZUGZFGUHQZHIUHQZUIQRXMUJZXOXNUIQZRXMXNXOUKQR
      ABCXIXKFGHIJKAFUMRZFJULPRADFHUIQRZXRADFHUKQRZXSNDFHUNSZDFHUOSFJLUPUQZAGUM
      RZGKULPRAEGIUIQRZYCAEGIUKQRZYDOEGIUNSZEGIUOSGKMUPUQZABCXHDFGFHJKYBYGABCFG
      JKYBYGURYAUSABCXJEFGGIJKYBYGABCFGJKYBYGUTYFUSVAAXPUAUBHVBZIVBZUAUEZDUJZPZ
      UBUEZEUJZPZUFZUGZXQAXPUCYHYIVCZUCUEZVDPZYKPZYSVEPZYNPZUFZVFZYQAJKVCZYRXMV
      GXPUUETAUDUCUUFYRUDUEZVDPZDPZUUGVEPZEPZUFZUUDXMUDUUFUULVFXMBCUDJKUULXLUUG
      XHXJUFTZUUIXIUUKXKUUMUUHXHDXHXJUUGBVPZCVPZVHVIUUMUUJXJEXHXJUUGUUNUUOVJVIV
      KVLVMAUUGUUFRZVNUUIYHRZUUKYIRZUULYRRAJYHDVOZUUHJRZUUQUUPAXSUUSYADFHJYHLYH
      VQZVRSUUGJKVSZJYHUUHDVTWAAKYIEVOZUUJKRZUURUUPAYDUVCYFEGIKYIMYIVQZVRSUUGJK
      WBZKYIUUJEVTWAUUIUUKYHYIWCWDAYSYRRZVNUUAJRZUUCKRZUUDUUFRAYHJYKVOZYTYHRZUV
      HUVGAJYHDVGZYHJYKVGUVJAXTUVLNDFHJYHLUVAWESZJYHDWHYHJYKWFWGYSYHYIVSZYHJYTY
      KVTWAAYIKYNVOZUUBYIRZUVIUVGAKYIEVGZYIKYNVGUVOAYEUVQOEGIKYIMUVEWESZKYIEWHY
      IKYNWFWGYSYHYIWBZYIKUUBYNVTWAUUAUUCJKWCWDAUUPUVGVNZVNZYTUUITZUUBUUKTZVNZU
      UHUUATZUUJUUCTZVNZYSUULTZUUGUUDTZUWAUWBUWEUWCUWFUWAUUIYTTZUUAUUHTZUWBUWEU
      WAUVLUUTUVKUWJUWKWIAUVLUVTUVMWJUUPUUTAUVGUVBWKUVGUVKAUUPUVNWLJYHUUHYTDWMW
      NYTUUIXGUUHUUAXGWOUWAUUKUUBTZUUCUUJTZUWCUWFUWAUVQUVDUVPUWLUWMWIAUVQUVTUVR
      WJUUPUVDAUVGUVFWKUVGUVPAUUPUVSWLKYIUUJUUBEWMWNUUBUUKXGUUJUUCXGWOWPUVGUWHU
      WDWIAUUPYSUUIUUKYHYIWQWLUUPUWIUWGWIAUVGUUGUUAUUCJKWQWKWRWSWTUAUBUCYHYIUUD
      YPYSYJYMUFTZUUAYLUUCYOUWNYTYJYKYJYMYSUAVPZUBVPZVHVIUWNUUBYMYNYJYMYSUWOUWP
      VJVIVKVLXAAUAUBYLYOHIFGYHYIAHUMRZHYHULPRAXSUWQYADFHXBSHYHUVAUPUQZAIUMRZIY
      IULPRAYDUWSYFEGIXBSIYIUVEUPUQZAUAUBYJYKHIHFYHYIUWRUWTAUAUBHIYHYIUWRUWTURA
      XTYKHFUIQRNDFHXCSUSAUAUBYMYNHIIGYHYIUWRUWTAUAUBHIYHYIUWRUWTUTAYEYNIGUIQRO
      EGIXCSUSVAXDXMXNXOXEXF $.
  $}

  ${
    $d x y J $.  $d x y K $.  $d x y z X $.  $d x y z Y $.
    $( Show inverse for the "swap components" operation on a Cartesian product.
       (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    txswaphmeolem $p |- ( ( y e. Y , x e. X |-> <. x , y >. ) o.
        ( x e. X , y e. Y |-> <. y , x >. ) ) = ( _I |` ( X X. Y ) ) $=
      ( vz cv cop cmpt2 ccom cxp cmpt cid cres wceq wtru ccnv cuni wcel mpt2mpt
      csn wa opelxpi ancoms adantl eqidd cnveqd unieqd opswap syl6eq eqcomi a1i
      sneq fmpt2co trud id mptresid 3eqtr2i ) BADCAFZBFZGZHZABCDUSURGZHZIZABCDU
      THZECDJZEFZKLVFMVDVENOABECDDCJZVBVGTZPZQZUTVCVAURCRZUSDRZUAVBVHRZOVMVLVNU
      SURDCUBUCUDOVCUEVAEVHVKKZNOVOVABAEDCVKUTVGVBNZVKVBTZPZQUTVPVJVRVPVIVQVGVB
      ULUFUGUSURUHUIZSUJUKVSUMUNABECDVGUTVGUTNUOSEVFUPUQ $.

    $( There is a homeomorphism from ` X X. Y ` to ` Y X. X ` .  (Contributed
       by Mario Carneiro, 21-Mar-2015.) $)
    txswaphmeo $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) ->
    ( x e. X , y e. Y |-> <. y , x >. ) e. ( ( J tX K ) Homeo ( K tX J ) ) ) $=
      ( ctopon cfv wcel wa cv cop cmpt2 ctx co ccn cnmpt2nd cnmpt1st wceq wral
      ccnv chmeo simpl simpr cnmpt2t cxp wf1o wf opelxpi ancoms ralrimivva eqid
      adantl fmpt2 sylib ccom cres txswaphmeolem fcof1o mpanr12 syl2anc eqeltrd
      cid simprd ishmeo sylanbrc ) CEGHIZDFGHIZJZABEFBKZAKZLZMZCDNOZDCNOZPOIVMU
      AZVOVNPOZIVMVNVOUBOIVIABVJVKCDDCEFVGVHUCZVGVHUDZVIABCDEFVRVSQVIABCDEFVRVS
      RUEVIVPBAFEVKVJLZMZVQVIEFUFZFEUFZVMUGZVPWASZVIWBWCVMUHZWCWBWAUHZWDWEJZVIV
      LWCIZBFTAETWFVIWIABEFVKEIZVJFIZJWIVIWKWJWIVJVKFEUIUJUMUKABEFVLWCVMVMULUNU
      OVIVTWBIZAETBFTWGVIWLBAFEWKWJJWLVIWJWKWLVKVJEFUIUJUMUKBAFEVTWBWAWAULUNUOW
      FWGJVMWAUPVCWCUQSWAVMUPVCWBUQSWHBAFEURABEFURWBWCVMWAUSUTVAVDVIBAVKVJDCCDF
      EVSVRVIBADCFEVSVRQVIBADCFEVSVRRUEVBVMVNVOVEVF $.
  $}

  ${
    $d k x y A $.  $d k x y J $.  $d x y K $.  $d k x y ph $.  $d k x y X $.
    pt1hmeo.j $e |- K = ( Xt_ ` { <. A , J >. } ) $.
    pt1hmeo.a $e |- ( ph -> A e. V ) $.
    pt1hmeo.r $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    $( The canonical homeomorphism from a topological product on a singleton to
       the topology of the factor.  (Contributed by Mario Carneiro,
       3-Feb-2015.)  (Proof shortened by AV, 18-Apr-2021.) $)
    pt1hmeo $p |- ( ph -> ( x e. X |-> { <. A , x >. } ) e. ( J Homeo K ) ) $=
      ( vk vy csn ccn co wcel wa wceq adantr cfv cv cop cmpt ccnv cxp fconstmpt
      chmeo sneq xpeq1d opeq1 eqeq12d vex xpsn vtoclg syl syl5eqr mpteq2dva cvv
      sneqd snex ctop ctopon topontop fsnd cnmptid elsni fveq2d fvsng sylan9eqr
      a1i syl2anc oveq2d eleqtrrd ptcn eqeltrrd cuni cmap simprr adantrr eqtr4d
      wf simprl eqid fmptd toponmax elmapg sylancl mpbird eqeltrd fveq1d eqtr2d
      wb jca mpbid snidg ffvelrnd fsn2g simprd opeq2d impbida mptcnv cpt eqcomd
      xpsng syl5eq pttoponconst toponuni mpteq1d eqtrd mp3an2i eleqtrd sylanbrc
      ptpjcn ishmeo ) ABGCBUAZUBZMZUCZDENOZPXRUDZEDNOZPXRDEUGOPABGKCMZXOUCZUCXR
      XSABGYCXQAXOGPZQZYCYBXOMZUEZXQKYBXOUFYECFPZYGXQRZAYHYDISKUAZMZYFUEZYJXOUB
      ZMZRYIKCFYJCRZYLYGYNXQYOYKYBYFYJCUHUIYOYMXPYJCXOUJUSUKYJXOKULBULUMUNUOUPZ
      UQABXOKCDUBMZYBDEURGHJYBURPZACUTZVJZACDFVAIADGVBTZPZDVAPJGDVCUOVDZAYJYBPZ
      QZBGXOUCZDDNOZDYJYQTZNOAUUFUUGPUUDABDGJVESUUEUUHDDNUUDAUUHCYQTZDUUDYJCYQY
      JCVFVGAYHUUBUUIDRIJCDFUUAVHVKZVIVLVMVNVOAXTLEVPZCLUAZTZUCZYAAXTLGYBVQOZUU
      MUCUUNABLGXQUUOUUMAYDUULXQRZQZUULUUOPZXOUUMRZQZAUUQQZUURUUSUVAUULYCUUOUVA
      UULXQYCAYDUUPVRZAYDYCXQRUUPYPVSVTUVAYCUUOPZYBGYCWAZUVAKYBXOGYCUVAYDUUDAYD
      UUPWBZSYCWCWDUVAGDPZYRUVCUVDWLAUVFUUQAUUBUVFJGDWEUOZSYSGYBYCDURWFWGWHWIUV
      AUUMCXQTZXOUVACUULXQUVBWJUVAYHYDUVHXORAYHUUQISUVECXOFGVHVKWKWMAUUTQZYDUUP
      UVIXOUUMGAUURUUSVRZUVIYBGCUULUVIUURYBGUULWAZAUURUUSWBUVIUVFYRUURUVKWLAUVF
      UUTUVGSYSGYBUULDURWFWGWNZACYBPZUUTAYHUVMICFWOUOZSWPWIUVIUULCUUMUBZMZXQUVI
      UUMGPZUULUVPRZUVIUVKUVQUVRQZUVLUVIYHUVKUVSWLAYHUUTISCGUULFWQUOWNWRUVIXPUV
      OUVIXOUUMCUVJWSUSVTWMWTXAALUUOUUKUUMAEUUOVBTZPUUOUUKRAEYBDMUEZXBTZUVTAEYQ
      XBTUWBHAYQUWAXBAUWAYQAYHUUBUWAYQRIJCDFUUAXDVKXCVGXEAYRUUBUWBUVTPYTJYBDUWB
      URGUWBWCXFVKWIUUOEXGUOXHXIAUUNEUUINOZYAYRAYBVAYQWAUVMUUNUWCPYSUUCUVNLYBYQ
      CEURUUKUUKWCHXMXJAUUIDENUUJVLXKWIXRDEXNXL $.
  $}

  ${
    $d f k n w x y z A $.  $d f k n w x y z B $.  $d z G $.  $d k w x y z ph $.
    $d k n x y z C $.  $d f k n x y z F $.  $d w x y z J $.  $d f k x y z K $.
    $d f k x y z L $.  $d k z V $.  $d f k w x y z X $.  $d f k w x y z Y $.
    ptunhmeo.x $e |- X = U. K $.
    ptunhmeo.y $e |- Y = U. L $.
    ptunhmeo.j $e |- J = ( Xt_ ` F ) $.
    ptunhmeo.k $e |- K = ( Xt_ ` ( F |` A ) ) $.
    ptunhmeo.l $e |- L = ( Xt_ ` ( F |` B ) ) $.
    ptunhmeo.g $e |- G = ( x e. X , y e. Y |-> ( x u. y ) ) $.
    ptunhmeo.c $e |- ( ph -> C e. V ) $.
    ptunhmeo.f $e |- ( ph -> F : C --> Top ) $.
    ptunhmeo.u $e |- ( ph -> C = ( A u. B ) ) $.
    ptunhmeo.i $e |- ( ph -> ( A i^i B ) = (/) ) $.
    $( Exhibit the converse function of the map ` G ` which joins two product
       topologies on disjoint index sets.  (Contributed by Mario Carneiro,
       8-Feb-2015.)  (Proof shortened by Mario Carneiro, 23-Aug-2015.) $)
    ptuncnv $p |- ( ph ->
      `' G = ( z e. U. J |-> <. ( z |` A ) , ( z |` B ) >. ) ) $=
      ( vw vk cxp cuni wf1o ccnv cres cop cmpt wceq c1st cfv c2nd cun cmpt2 vex
      cv op1std op2ndd uneq12d mpt2mpt eqtr4i wcel cixp wss xp1st adantl ixpeq2
      wa cdif fvres unieqd mprg cvv ctop wf ssun1 syl5sseqr ssexd fssresd ptuni
      syl2anc syl5eqr syl6eqr adantr eleqtrrd xp2nd eqcomd c0 uneqdifeq ixpeq1d
      cin wb mpbid ssun2 undifixp syl3anc eleqtrd eleq2d biimpar resixp opelxpi
      eqtrd eqop ad2antrl wfn adantrl ixpfn fnresdm 3syl reseq2d eqtr3d resundi
      syl6eq uneq12 syl5ibrcom syl adantrr dffn2 sylib res0 3eqtr4a fresaunres1
      eqeq2d fresaunres2 jca reseq1 anbi12d impbid bitrd f1ocnv2d simprd ) ANOU
      HZJUIZIUJIUKDYSDVBZEULZYTFULZUMZUNUOAUFDYRYSUFVBZUPUQZUUDURUQZUSZUUCIIBCN
      OBVBZCVBZUSZUTUFYRUUGUNUABCUFNOUUGUUJUUDUUHUUIUMUOUUEUUHUUFUUIUUHUUIUUDBV
      AZCVAZVCUUHUUIUUDUUKUULVDVEVFVGAUUDYRVHZVNZUUGUGGUGVBZHUQZUIZVIZYSUUNUUEU
      GEUUQVIZVHZUUFUGGEVOZUUQVIZVHEGVJZUUGUURVHUUNUUENUUSUUMUUENVHAUUDNOVKVLAU
      USNUOZUUMAUUSKUIZNAUUSUGEUUOHEULZUQZUIZVIZUVEUVHUUQUOUVIUUSUOUGEUGEUVHUUQ
      VMUUOEVHUVGUUPUUOEHVPVQVRAEVSVHEVTUVFWAUVIUVEUOAEGMUBAEFUSZEGEFWBUDWCZWDA
      GVTEHUCUVKWEUGEUVFKVSSWFWGWHPWIZWJWKZUUNUUFOUVBUUMUUFOVHAUUDNOWLVLZAUVBOU
      OUUMAUVBUGFUUQVIZOAUGUVAFUUQAUVJGUOZUVAFUOZAGUVJUDWMAUVCEFWQZWNUOZUVPUVQW
      RUVKUEEFGWOWGWSWPAUVOLUIZOAUVOUGFUUOHFULZUQZUIZVIZUVTUWCUUQUOUWDUVOUOUGFU
      GFUWCUUQVMUUOFVHUWBUUPUUOFHVPVQVRAFVSVHFVTUWAWAUWDUVTUOAFGMUBAUVJFGFEWTUD
      WCZWDAGVTFHUCUWEWEUGFUWALVSTWFWGWHQWIZXHWJWKAUVCUUMUVKWJUGGEUUQUUEUUFXAXB
      AUURYSUOZUUMAGMVHGVTHWAUWGUBUCUGGHJMRWFWGZWJXCAYTYSVHZVNZUUANVHUUBOVHUUCY
      RVHUWJUUAUUSNUWJUVCYTUURVHZUUAUUSVHAUVCUWIUVKWJAUWKUWIAUURYSYTUWHXDXEZUGG
      EUUQYTXFWGAUVDUWIUVLWJXCUWJUUBUVOOUWJFGVJZUWKUUBUVOVHAUWMUWIUWEWJUWLUGGFU
      UQYTXFWGAUVOOUOZUWIUWFWJXCUUAUUBNOXGWGAUUMUWIVNZVNZUUDUUCUOZUUEUUAUOZUUFU
      UBUOZVNZYTUUGUOZUUMUWQUWTWRAUWIUUDUUAUUBNOXIXJUWPUWTUXAUWPUXAUWTYTUUAUUBU
      SZUOUWPYTYTUVJULZUXBUWPYTGULZYTUXCUWPUWKYTGXKUXDYTUOAUWIUWKUUMUWLXLUGGUUQ
      YTXMGYTXNXOAUXDUXCUOUWOAGUVJYTUDXPWJXQYTEFXRXSUWTUUGUXBYTUUEUUAUUFUUBXTYI
      YAUWPUWTUXAUUEUUGEULZUOZUUFUUGFULZUOZVNUWPUXFUXHUWPUXEUUEUWPEVSUUEWAZFVSU
      UFWAZUUEUVRULZUUFUVRULZUOZUXEUUEUOUWPUUEEXKZUXIAUUMUXNUWIUUNUUTUXNUVMUGEU
      UQUUEXMYBYCEUUEYDYEZUWPUUFFXKZUXJAUUMUXPUWIUUNUUFUVOVHUXPUUNUUFOUVOUVNAUW
      NUUMUWFWJWKUGFUUQUUFXMYBYCFUUFYDYEZUWPUUEWNULZUUFWNULZUXKUXLUXRWNUXSUUEYF
      UUFYFVGUWPUVRWNUUEAUVSUWOUEWJZXPUWPUVRWNUUFUXTXPYGZEFVSUUEUUFYHXBWMUWPUXG
      UUFUWPUXIUXJUXMUXGUUFUOUXOUXQUYAEFVSUUEUUFYJXBWMYKUXAUWRUXFUWSUXHUXAUUAUX
      EUUEYTUUGEYLYIUXAUUBUXGUUFYTUUGFYLYIYMYAYNYOYPYQ $.

    $( Define a homeomorphism from a binary product of indexed product
       topologies to an indexed product topology on the union of the index
       sets.  This is the topological analogue of
       ` ( A ^ B ) x. ( A ^ C ) = A ^ ( B + C ) ` .  (Contributed by Mario
       Carneiro, 8-Feb-2015.)  (Proof shortened by Mario Carneiro,
       23-Aug-2015.) $)
    ptunhmeo $p |- ( ph -> G e. ( ( K tX L ) Homeo J ) ) $=
      ( vz vk vn vf ctx co ccn wcel ccnv chmeo cxp c1st cfv c2nd cun cmpt cmpt2
      cv cop wceq vex op1std op2ndd uneq12d mpt2mpt eqtr4i wa wfn cuni cixp wss
      cdif xp1st adantl cres ixpeq2 fvres unieqd mprg cvv ssun1 syl5sseqr ssexd
      wf fssresd ptuni syl2anc syl5eqr syl6eqr adantr eleqtrrd xp2nd eqcomd cin
      ctop c0 wb uneqdifeq mpbid ixpeq1d ssun2 eqtrd undifixp syl3anc ixpfn syl
      dffn5 sylib mpteq2dva syl5eq ctopon cpt pttop syl5eqel toptopon wo eleq2d
      txtopon biimpa elun ad2antrr simplr fvun1 syl112anc cnmpt1st simpr ptpjcn
      adantlr oveq2d eleqtrd fveq1 cnmpt11 eqeltrd fvun2 cnmpt2nd ptrescn ptcn
      jaodan syldan ptuncnv eqid cnmpt1t ishmeo sylanbrc ) AHJKUIUJZIUKUJZULHUM
      ZIUUIUKUJZULHUUIIUNUJULAHUEMNUOZUFFUFVBZUEVBZUPUQZUUOURUQZUSZUQZUTZUTZUUJ
      AHUEUUMUURUTZUVAHBCMNBVBZCVBZUSZVAUVBTBCUEMNUURUVEUUOUVCUVDVCVDUUPUVCUUQU
      VDUVCUVDUUOBVEZCVEZVFZUVCUVDUUOUVFUVGVGZVHVIVJAUEUUMUURUUTAUUOUUMULZVKZUU
      RFVLZUURUUTVDUVKUURUGFUGVBZGUQZVMZVNULZUVLUVKUUPUGDUVOVNZULZUUQUGFDVPZUVO
      VNZULDFVOZUVPUVKUUPMUVQUVJUUPMULAUUOMNVQVRAUVQMVDUVJAUVQJVMZMAUVQUGDUVMGD
      VSZUQZVMZVNZUWBUWEUVOVDUWFUVQVDUGDUGDUWEUVOVTUVMDULUWDUVNUVMDGWAWBWCADWDU
      LZDWSUWCWHZUWFUWBVDADFLUAADEUSZDFDEWEUCWFZWGZAFWSDGUBUWJWIZUGDUWCJWDRWJWK
      WLOWMWNWOZUVKUUQNUVTUVJUUQNULAUUOMNWPVRZAUVTNVDUVJAUVTUGEUVOVNZNAUGUVSEUV
      OAUWIFVDZUVSEVDZAFUWIUCWQAUWADEWRWTVDZUWPUWQXAUWJUDDEFXBWKXCXDAUWOKVMZNAU
      WOUGEUVMGEVSZUQZVMZVNZUWSUXBUVOVDUXCUWOVDUGEUGEUXBUVOVTUVMEULUXAUVNUVMEGW
      AWBWCAEWDULZEWSUWTWHZUXCUWSVDAEFLUAAUWIEFEDXEUCWFZWGZAFWSEGUBUXFWIZUGEUWT
      KWDSWJWKWLPWMZXFWNWOAUWAUVJUWJWNUGFDUVOUUPUUQXGXHUGFUVOUURXIXJUFFUURXKXLX
      MXNAUEUUSUFGFUUIILUUMQAJMXOUQULZKNXOUQULZUUIUUMXOUQULZAJWSULUXJAJUWCXPUQZ
      WSRAUWGUWHUXMWSULUWKUWLDUWCWDXQWKXRJMOXSXLZAKWSULUXKAKUWTXPUQZWSSAUXDUXEU
      XOWSULUXGUXHEUWTWDXQWKXRKNPXSXLZJKMNYBWKZUAUBAUUNFULZUUNDULZUUNEULZXTZUEU
      UMUUSUTZUUIUUNGUQZUKUJZULZAUXRVKUUNUWIULZUYAAUXRUYFAFUWIUUNUCYAYCUUNDEYDX
      LAUXSUYEUXTAUXSVKZUYBUEUUMUUNUUPUQZUTUYDUYGUEUUMUUSUYHUYGUVJVKUUPDVLZUUQE
      VLZUWRUXSUUSUYHVDAUVJUYIUXSUVKUVRUYIUWMUGDUVOUUPXIXJZYLAUVJUYJUXSUVKUUQUW
      OULUYJUVKUUQNUWOUWNAUWONVDUVJUXIWNWOUGEUVOUUQXIXJZYLAUWRUXSUVJUDYEAUXSUVJ
      YFDEUUPUUQUUNYGYHXMUYGUEUHUUPUUNUHVBZUQZUYHUUIJUYCUUMMAUXLUXSUXQWNUYGUEUU
      MUUPUTBCMNUVCVAUUIJUKUJBCUEMNUUPUVCUVHVIUYGBCJKMNAUXJUXSUXNWNZAUXKUXSUXPW
      NYIXRUYOUYGUHMUYNUTZJUUNUWCUQZUKUJZJUYCUKUJUYGUWGUWHUXSUYPUYRULAUWGUXSUWK
      WNAUWHUXSUWLWNAUXSYJUHDUWCUUNJWDMORYKXHUYGUYQUYCJUKUXSUYQUYCVDAUUNDGWAVRY
      MYNUUNUYMUUPYOYPYQAUXTVKZUYBUEUUMUUNUUQUQZUTUYDUYSUEUUMUUSUYTUYSUVJVKUYIU
      YJUWRUXTUUSUYTVDAUVJUYIUXTUYKYLAUVJUYJUXTUYLYLAUWRUXTUVJUDYEAUXTUVJYFDEUU
      PUUQUUNYRYHXMUYSUEUHUUQUYNUYTUUIKUYCUUMNAUXLUXTUXQWNUYSUEUUMUUQUTBCMNUVDV
      AUUIKUKUJBCUEMNUUQUVDUVIVIUYSBCJKMNAUXJUXTUXNWNAUXKUXTUXPWNZYSXRVUAUYSUHN
      UYNUTZKUUNUWTUQZUKUJZKUYCUKUJUYSUXDUXEUXTVUBVUDULAUXDUXTUXGWNAUXEUXTUXHWN
      AUXTYJUHEUWTUUNKWDNPSYKXHUYSVUCUYCKUKUXTVUCUYCVDAUUNEGWAVRYMYNUUNUYMUUQYO
      YPYQUUBUUCUUAYQAUUKUEIVMZUUODVSZUUOEVSZVCUTUULABCUEDEFGHIJKLMNOPQRSTUAUBU
      CUDUUDAUEVUFVUGIJKVUEAIWSULIVUEXOUQULAIGXPUQZWSQAFLULZFWSGWHZVUHWSULUAUBF
      GLXQWKXRIVUEVUEUUEZXSXLAVUIVUJUWAUEVUEVUFUTIJUKUJULUAUBUWJUEFDGIJLVUEVUKQ
      RYTXHAVUIVUJEFVOUEVUEVUGUTIKUKUJULUAUBUXFUEFEGIKLVUEVUKQSYTXHUUFYQHUUIIUU
      GUUH $.
  $}

  ${
    $d x y z J $.  $d x y z K $.  $d x y z ph $.  $d x y z X $.  $d x y z Y $.
    xpstopnlem1.f $e |- F = ( x e. X , y e. Y |-> `' ( { x } +c { y } ) ) $.
    xpstopnlem1.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    xpstopnlem1.k $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    $( The function ` F ` used in ~ xpsval is a homeomorphism from the binary
       product topology to the indexed product topology.  (Contributed by Mario
       Carneiro, 2-Sep-2015.) $)
    xpstopnlem1 $p |- ( ph ->
      F e. ( ( J tX K ) Homeo ( Xt_ ` `' ( { J } +c { K } ) ) ) ) $=
      ( c0 csn cfv c1o co wcel eqid wceq c2o vz cop cpt cuni cun cmpt2 ccom ctx
      cv ccda ccnv chmeo cxp c1st c2nd wa wral ctopon txtopon syl2anc ctop cmpt
      wf ccn cvv 0ex pt1hmeo hmeocn cntop2 3syl toptopon sylib con0 opeq2 sneqd
      a1i 1on snex opeq12 syl2an mpt2eq3ia toponuni syl mpt2eq12 syl5eqr txhmeo
      fvmpt eqeltrd cnf2 syl3anc fmpt2 sylibr r19.21bi anasss vex op1std op2ndd
      eqidd uneq12d mpt2mpt eqcomi cpr xpscg mp2an df-pr eqtri syl6eqr syl6reqr
      fmpt2co cres 2on topontop xpscf sylanbrc df2o3 wne cin 1n0 necomi disjsn2
      mp1i ptunhmeo wfn xpscfn prid1 eleqtrri fnressn xpsc0 opeq2d eqtrd fveq2d
      sylancl unieqd elexi prid2 xpsc1 mpt2eq123dv oveq12d oveq1d 3eltr3d
      hmeoco ) ADBCLEUBZMZUCNZUDZOFUBZMZUCNZUDZBUIZCUIZUEZUFZBCGHLUUJUBZMZOUUKU
      BZMZUBZUFZUGZEFUHPZEMFMUJPUKZUCNZULPZAUUTBCGHUUJMUUKMUJPUKZUFDABCUAGHUUEU
      UIUMZUURUAUIZUNNZUVGUONZUEZUVEUUSUUMAUUJGQZUUKHQZUURUVFQZAUVKUPUVMCHAUVMC
      HUQZBGAGHUMZUVFUUSVCZUVNBGUQAUVAUVOURNQZUUDUUHUHPZUVFURNQZUUSUVAUVRVDPQZU
      VPAEGURNZQZFHURNZQZUVQJKEFGHUSUTAUUDUUEURNQZUUHUUIURNQZUVSAUUDVAQZUWEAUAG
      LUVGUBZMZVBZEUUDULPQUWJEUUDVDPQUWGAUALEUUDVEGUUDRLVEQAVFVPJVGZUWJEUUDVHUW
      JEUUDVIVJUUDUUEUUERVKVLAUUHVAQZUWFAUAHOUVGUBZMZVBZFUUHULPQUWOFUUHVDPQUWLA
      UAOFUUHVMHUUHROVMQAVQVPKVGZUWOFUUHVHUWOFUUHVIVJUUHUUIUUIRVKVLUUDUUHUUEUUI
      USUTAUUSUVAUVRULPZQZUVTAUUSBCEUDZFUDZUUJUWJNZUUKUWONZUBZUFZUWQAUUSBCGHUXC
      UFZUXDBCGHUXCUURUVKUXAUUOSUXBUUQSUXCUURSUVLUAUUJUWIUUOGUWJUVGUUJSUWHUUNUV
      GUUJLVNVOUWJRUUNVRZWGUAUUKUWNUUQHUWOUVGUUKSUWMUUPUVGUUKOVNVOUWORUUPVRZWGU
      XAUXBUUOUUQVSVTWAAGUWSSZHUWTSZUXEUXDSAUWBUXHJGEWBWCAUWDUXIKHFWBWCBCGHUWSU
      WTUXCWDUTWEABCUWJUWOEFUUDUUHUWSUWTUWSRUWTRUWKUWPWFWHZUUSUVAUVRVHWCUUSUVAU
      VRUVOUVFWIWJBCGHUURUVFUUSUUSRWKWLWMWMWNAUUSWRUUMUAUVFUVJVBZSAUXKUUMBCUAUU
      EUUIUVJUULUVGUUJUUKUBSUVHUUJUVIUUKUUJUUKUVGBWOZCWOZWPUUJUUKUVGUXLUXMWQWSW
      TXAVPUVGUURSZUVJUUOUUQUEZUVEUXNUVHUUOUVIUUQUUOUUQUVGUXFUXGWPUUOUUQUVGUXFU
      XGWQWSUVEUUNUUPXBZUXOUUJVEQUUKVEQUVEUXPSUXLUXMUUJUUKVEVEXCXDUUNUUPXEXFXGX
      IIXHAUWRUUMUVRUVCULPZQUUTUVDQUXJABCUVBLMZXJZUCNZUDZUVBOMZXJZUCNZUDZUULUFZ
      UXTUYDUHPZUVCULPUUMUXQABCUXRUYBTUVBUYFUVCUXTUYDVMUYAUYEUYARUYERUVCRUXTRUY
      DRUYFRTVMQAXKVPAEVAQZFVAQZTVAUVBVCAUWBUYHJGEXLWCAUWDUYIKHFXLWCVAEFXMXNTUX
      RUYBUEZSATLOXBZUYJXOLOXEXFVPLOXPUXRUYBXQLSAOLXRXSLOXTYAYBABCUYAUYEUULUUEU
      UIUULAUXTUUDAUXSUUCUCAUXSLLUVBNZUBZMZUUCAUVBTYCZLTQUXSUYNSAUWBUWDUYOJKEFU
      WAUWCYDUTZLUYKTLOVFYEXOYFTLUVBYGYLAUYMUUBAUYLELAUWBUYLESJEFUWAYHWCYIVOYJY
      KZYMAUYDUUHAUYCUUGUCAUYCOOUVBNZUBZMZUUGAUYOOTQUYCUYTSUYPOUYKTLOOVMVQYNYOX
      OYFTOUVBYGYLAUYSUUFAUYRFOAUWDUYRFSKEFUWCYPWCYIVOYJYKZYMAUULWRYQAUYGUVRUVC
      ULAUXTUUDUYDUUHUHUYQVUAYRYSYTUUSUUMUVAUVRUVCUUAUTWH $.
  $}

  ${
    $d x y J $.  $d x y K $.  $d x y R $.  $d x y S $.  $d x y X $.
    $d x y Y $.
    xpstps.t $e |- T = ( R Xs. S ) $.
    $( A binary product of topologies is a topological space.  (Contributed by
       Mario Carneiro, 27-Aug-2015.) $)
    xpstps $p |- ( ( R e. TopSp /\ S e. TopSp ) -> T e. TopSp ) $=
      ( vx vy ctps wcel cbs cfv csca csn ccda co ccnv cv eqid wf1o a1i c2o 3syl
      wa cxp cprds cmpt2 crn simpl simpr xpsval xpslem wfo xpsff1o2 f1ocnv con0
      f1ofo cvv fvexd 2on wf xpscf biimpri prdstps imastps ) AGHZBGHZUBZAIJZBIJ
      ZUCZAKJZALBLMNOZUDNZCEFVGVHEPLFPLMNOUEZOZVMUFZVFEFABCVLVMVJGGVGVHDVGQZVHQ
      ZVDVEUGZVDVEUHZVMQZVJQZVLQZUIVFEFABCVLVMVJGGVGVHDVPVQVRVSVTWAWBUJVFVIVOVM
      RZVOVIVNRVOVIVNUKWCVFEFVGVHVMVTULSVIVOVMUMVOVIVNUOUAVFVKVJTUPUNVLWBVFAKUQ
      TUNHVFURSTGVKUSVFGABUTVAVBVC $.

    xpstopn.j $e |- J = ( TopOpen ` R ) $.
    xpstopn.k $e |- K = ( TopOpen ` S ) $.
    xpstopn.o $e |- O = ( TopOpen ` T ) $.
    ${
      xpstopnlem.x $e |- X = ( Base ` R ) $.
      xpstopnlem.y $e |- Y = ( Base ` S ) $.
      xpstopnlem.f $e |- F = ( x e. X , y e. Y |-> `' ( { x } +c { y } ) ) $.
      $( Lemma for ~ xpstopn .  (Contributed by Mario Carneiro,
         27-Aug-2015.) $)
      xpstopnlem2 $p |- ( ( R e. TopSp /\ S e. TopSp ) -> O = ( J tX K ) ) $=
        ( cfv c2o ctps wcel wa csca csn ccda co ccnv cprds ctopn cqtop cpt ccom
        ctx cvv con0 eqid fvexd 2on a1i xpscfn prdstopn c0 c1o wfn topnfn dffn2
        wceq wf sylib fnfco sylancr xpsfeq syl cpr prid1 df2o3 eleqtrri sylancl
        0ex fvco2 xpsc0 adantr fveq2d syl6eqr eqtrd sneqd 1on elexi prid2 xpsc1
        adantl oveq12d cnveqd eqtr3d oveq1d cxp crn simpl simpr xpsval wf1o wfo
        xpslem xpsff1o2 f1ocnv mp1i f1ofo ovexd chmeo istps xpstopnlem1 hmeocnv
        imastopn ctopon hmeoqtop 3syl 3eqtr4d ) CUAUBZDUAUBZUCZCUDSZCUEDUEUFUGU
        HZUIUGZUJSZFUHZUKUGGUEZHUEZUFUGZUHZULSZYFUKUGZIGHUNUGZYAYEYKYFUKYAYEUJY
        CUMZULSYKYAYCYBTYEUOUPYDYDUQZYACUDURTUPUBYAUSUTCDUAUAVAZYEUQZVBYAYNYJUL
        YAVCYNSZUEZVDYNSZUEZUFUGZUHZYNYJYAYNTVEZUUCYNVHYAUJUOVETUOYCVIZUUDVFYAY
        CTVEZUUEYPTYCVGVJUOTUJYCVKVLYNVMVNYAUUBYIYAYSYGUUAYHUFYAYRGYAYRVCYCSZUJ
        SZGYAUUFVCTUBYRUUHVHYPVCVCVDVOZTVCVDVTVPVQVRTUJYCVCWAVSYAUUHCUJSGYAUUGC
        UJXSUUGCVHXTCDUAWBWCWDMWEWFWGYAYTHYAYTVDYCSZUJSZHYAUUFVDTUBYTUUKVHYPVDU
        UITVCVDVDUPWHWIWJVQVRTUJYCVDWAVSYAUUKDUJSHYAUUJDUJXTUUJDVHXSCDUAWKWLWDN
        WEWFWGWMWNWOWDWFWPYAJKWQZYDEYFYEIFWRZUOYAABCDEYDFYBUAUAJKLPQXSXTWSZXSXT
        WTZRYBUQZYOXAYAABCDEYDFYBUAUAJKLPQUUNUUORUUPYOXDYAUUMUULYFXBZUUMUULYFXC
        UULUUMFXBUUQYAABJKFRXEUULUUMFXFXGUUMUULYFXHVNYAYBYCUIXIYQOXNYAFYMYKXJUG
        UBYFYKYMXJUGUBYMYLVHYAABFGHJKRYAXSGJXOSUBUUNJGCPMXKVJYAXTHKXOSUBUUOKHDQ
        NXKVJXLFYMYKXMYFYKYMXPXQXR $.
    $}

    $( The topology on a binary product of topological spaces, as we have
       defined it (transferring the indexed product topology on functions on
       ` { (/) , 1o } ` to ` ( X X. Y ) ` by the canonical bijection),
       coincides with the usual topological product (generated by a base of
       rectangles).  (Contributed by Mario Carneiro, 27-Aug-2015.) $)
    xpstopn $p |- ( ( R e. TopSp /\ S e. TopSp ) -> O = ( J tX K ) ) $=
      ( vx vy cbs cfv cv csn ccda co ccnv eqid cmpt2 xpstopnlem2 ) KLABCKLAMNZB
      MNZKOPLOPQRSUAZDEFUCUDGHIJUCTUDTUETUB $.
  $}

  ${
    $d u v x y z A $.  $d u v x y z F $.
    $( A topological product of finitely many compact spaces is compact.  This
       weak version of Tychonoff's theorem does not require the axiom of
       choice.  (Contributed by Mario Carneiro, 8-Feb-2015.) $)
    ptcmpfi $p |- ( ( A e. Fin /\ F : A --> Comp ) -> ( Xt_ ` F ) e. Comp ) $=
      ( vx cfn wcel ccmp cres cpt cfv wceq syl fveq2d wss wi ctop cvv cuni eqid
      cv c0 vy vz vu vv wf wa wfn ffn fnresdm adantl ssid csn sseq1 reseq2 res0
      cun syl6eq eleq1d imbi2d imbi12d cin 0ex pttop mp2an cpw cixp ptuni ixp0x
      f0 snfi eqeltri eqeltrri pwfi mpbi pwuni ssfi elin mpbir2an ax-mp 2a1i wn
      fincmp ssun1 id syl5ss imim1i ctx co chmph wbr cmpt2 chmeo resabs1 eqcomi
      fveq2i ssun2 vex snex unex a1i simplr cmptop ssriv sylancl simprr fssresd
      fss eqidd simprl disjsn sylibr ptunhmeo cop ad2antlr snss fnressn syl2anc
      hmphi ctopon ffvelrnd sseldi toptopon sylib pt1hmeo cmphmph eqeltrd txcmp
      cmpt sylc expcom sylsyld a2d ex syl5 findcard2s mpi anabsi5 eqeltrrd ) AD
      EZAFBUEZUFZBAGZHIZBHIFUUAUUBBHYTUUBBJZYSYTBAUGZUUDAFBUHZABUIKUJLYSYTUUCFE
      ZYSAAMZUUAUUGNZAUKCSZAMZUUABUUJGZHIZFEZNZNTAMZUUATHIZFEZNZNUASZAMZUUABUUT
      GZHIZFEZNZNZUUTUBSZULZUPZAMZUUABUVIGZHIZFEZNZNZUUHUUINCUAUBAUUJTJZUUKUUPU
      UOUUSUUJTAUMUVPUUNUURUUAUVPUUMUUQFUVPUULTHUVPUULBTGTUUJTBUNBUOUQLURUSUTUU
      JUUTJZUUKUVAUUOUVEUUJUUTAUMUVQUUNUVDUUAUVQUUMUVCFUVQUULUVBHUUJUUTBUNLURUS
      UTUUJUVIJZUUKUVJUUOUVNUUJUVIAUMUVRUUNUVMUUAUVRUUMUVLFUVRUULUVKHUUJUVIBUNL
      URUSUTUUJAJZUUKUUHUUOUUIUUJAAUMUVSUUNUUGUUAUVSUUMUUCFUVSUULUUBHUUJABUNLUR
      USUTUURUUPUUAUUQODVAEZUURUVTUUQOEZUUQDEZTPEZTOTUEZUWAVBOVIZTTPVCVDUUQQZVE
      ZDEZUUQUWGMUWBUWFDEUWHCTUUJTIQZVFZUWFDUWCUWDUWJUWFJVBUWECTTUUQPUUQRVGVDUW
      JTULDCUWIVHTVJVKVLUWFVMVNUUQVOUWGUUQVPVDUUQODVQVRUUQWBVSVTUVGUUTEWAZUVFUV
      ONUUTDEUVFUVJUVENUWKUVOUVJUVAUVEUVJUUTUVIAUUTUVHWCZUVJWDWEWFUWKUVJUVEUVNU
      WKUVJUVEUVNNUWKUVJUFZUUAUVDUVMUUAUWMUVDUVMNUUAUWMUFZUVCBUVHGZHIZWGWHZUVLW
      IWJZUVDUWQFEZUVMUWNUCUDUVCQZUWPQZUCSUDSUPWKZUWQUVLWLWHEUWRUWNUCUDUUTUVHUV
      IUVKUXBUVLUVCUWPPUWTUXAUWTRUXARUVLRUVBUVKUUTGZHUXCUVBUUTUVIMUXCUVBJUWLBUU
      TUVIWMVSWNWOUWOUVKUVHGZHUXDUWOUVHUVIMUXDUWOJUVHUUTWPZBUVHUVIWMVSWNWOUXBRU
      VIPEUWNUUTUVHUAWQUVGWRWSWTUWNAOUVIBUWNYTFOMAOBUEYSYTUWMXAZCFOUUJXBXCZAFOB
      XGXDUUAUWKUVJXEZXFUWNUVIXHUWNUWKUUTUVHVATJUUAUWKUVJXIUUTUVGXJXKXLUXBUWQUV
      LXRKUWNUWPFEZUVDUWSNUWNUWPUVGUVGBIZXMULZHIZFUWNUWOUXKHUWNUUEUVGAEZUWOUXKJ
      YTUUEYSUWMUUFXNUWNUVHAMUXMUWNUVHUVIAUXEUXHWEUVGAUBWQZXOXKZAUVGBXPXQLUWNUX
      JUXLWIWJZUXJFEUXLFEUWNCUXJQZUVGUUJXMULYHZUXJUXLWLWHEUXPUWNCUVGUXJUXLPUXQU
      XLRUVGPEUWNUXNWTUWNUXJOEUXJUXQXSIEUWNFOUXJUXGUWNAFUVGBUXFUXOXTZYAUXJUXQUX
      QRYBYCYDUXRUXJUXLXRKUXSUXJUXLYEYIYFUVDUXIUWSUVCUWPYGYJKUWQUVLYEYKYJYLYMYL
      YNUJYOYPYQYR $.
  $}

  ${
    $d f g t u w x y z J $.  $d f g t u w x y z K $.  $d f g t u w x y z ph $.
    $d f g t u w x y z L $.  $d f g t u w x y z X $.  $d f g t u w x y z Y $.
    $d f g x y F $.
    xkohmeo.x $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    xkohmeo.y $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    xkohmeo.f $e |- F = ( f e. ( ( J tX K ) Cn L ) |->
      ( x e. X |-> ( y e. Y |-> ( x f y ) ) ) ) $.
    xkohmeo.j $e |- ( ph -> J e. N-Locally Comp ) $.
    xkohmeo.k $e |- ( ph -> K e. N-Locally Comp ) $.
    xkohmeo.l $e |- ( ph -> L e. Top ) $.
    $( The inverse of the "currying" function ` F ` is the uncurrying function.
       (Contributed by Mario Carneiro, 13-Apr-2015.) $)
    xkocnv $p |- ( ph -> `' F = ( g e. ( J Cn ( L ^ko K ) ) |->
      ( x e. X , y e. Y |-> ( ( g ` x ) ` y ) ) ) ) $=
      ( wcel wceq wa cv ctx co ccn cmpt copab cxko cfv cmpt2 ccnv simprr ctopon
      adantr cxp cuni wf txtopon syl2anc ctop eqid toptopon sylib simpr syl3anc
      wfn cnf2 ffn fnov eqeltrrd cnmpt2k adantrr eqeltrd wral nfmpt1 nfeq2 nfan
      syl nfv nfcv nfmpt simplrr fveq1d cvv simprl toponmax mptexg fvmpt2 eqtrd
      ad2antrr ovex sylancl expr ralrimi jctil ex mpt2eq123 sylancr eqtr4d ccmp
      jca cnlly nllytop xkotopon feqmptd ffvelrnda cnmptk2 nfmpt21 nfmpt22 fvex
      mpteq2dva oveqd ovmpt4g mp3an3 sylan9eq mpteq12 mpteq2da impbida opabbidv
      df-mpt eqtri cnveqi cnvopab 3eqtr4g ) ADUAZGHUBUCZIUDUCZRZEUAZBJCKBUAZCUA
      ZYDUCZUEZUEZSZTZEDUFZYHGIHUGUCZUDUCZRZYDBCJKYJYIYHUHZUHZUIZSZTZEDUFFUJZEY
      RUUBUEAYOUUDEDAYOUUDAYOTZYSUUCUUFYHYMYRAYGYNUKAYGYMYRRYNAYGTZBCYKGHIJKAGJ
      ULUHRZYGLUMAHKULUHRZYGMUMUUGYDBCJKYKUIZYFUUGYDJKUNZVEZYDUUJSZUUGUUKIUOZYD
      UPZUULUUGYEUUKULUHRZIUUNULUHRZYGUUOAUUPYGAUUHUUIUUPLMGHJKUQURUMAUUQYGAIUS
      RZUUQQIUUNUUNUTVAVBZUMAYGVCZYDYEIUUKUUNVFVDUUKUUNYDVGVQBCJKYDVHVBZUUTVIVJ
      VKVLUUFYDUUJUUBAYGUUMYNUVAVKUUFJJSKKSZUUAYKSZCKVMZTZBJVMUUBUUJSJUTUUFUVEB
      JAYOBABVRZYGYNBYGBVRBYHYMBJYLVNVOVPVPUUFYIJRZUVEUUFUVGTZUVDUVBUVHUVCCKUUF
      UVGCAYOCACVRZYGYNCYGCVRCYHYMCBJYLCJVSCKYKVNVTVOVPVPUVGCVRZVPUUFUVGYJKRZUV
      CUUFUVGUVKTZTZUUAYJYLUHZYKUVMYJYTYLUVMYTYIYMUHZYLUVMYIYHYMAYGYNUVLWAWBUVM
      UVGYLWCRZUVOYLSUUFUVGUVKWDUVMKHRZUVPAUVQYOUVLAUUIUVQMKHWEVQWICKYKHWFVQBJY
      LWCYMYMUTWGURWHWBUVMUVKYKWCRUVNYKSUUFUVGUVKUKYIYJYDWJCKYKWCYLYLUTWGWKWHWL
      WMKUTZWNWOWMBCJKUUAJKYKWPWQWRWTAUUDTZYGYNUVSYDUUBYFAYSUUCUKZAYSUUBYFRUUCA
      YSTZBCUUAGHIJKUUNAUUHYSLUMZAUUIYSMUMAUUQYSUUSUMAHWSXARZYSPUMZUWAYHBJCKUUA
      UEZUEZYRUWAYHBJYTUEUWFUWABJHIUDUCZYHUWAUUHYQUWGULUHRZYSJUWGYHUPUWBUWAHUSR
      ZUURUWHUWAUWCUWIUWDWSHXBVQAUURYSQUMHIYQYQUTXCURAYSVCZYHGYQJUWGVFVDZXDUWAB
      JYTUWEUWAUVGTZCKUUNYTUWLUUIUUQYTUWGRKUUNYTUPAUUIYSUVGMWIAUUQYSUVGUUSWIUWA
      JUWGYIYHUWKXEYTHIKUUNVFVDXDXJWHZUWJVIXFVKVLUVSYHUWFYMAYSYHUWFSUUCUWMVKUVS
      BJYLUWEAUUDBUVFYSUUCBYSBVRBYDUUBBCJKUUAXGVOVPVPUVSUVGTZUVBYKUUASZCKVMYLUW
      ESUVRUWNUWOCKUVSUVGCAUUDCUVIYSUUCCYSCVRCYDUUBBCJKUUAXHVOVPVPUVJVPUVSUVGUV
      KUWOUVSUVLYKYIYJUUBUCZUUAUVSYDUUBYIYJUVTXKUVGUVKUUAWCRUWPUUASYJYTXIBCJKUU
      AUUBWCUUBUTXLXMXNWLWMCKYKKUUAXOWQXPWRWTXQXRUUEYODEUFZUJYPFUWQFDYFYMUEUWQN
      DEYFYMXSXTYAYODEYBXTEDYRUUBXSYC $.

    $( The Exponential Law for topological spaces.  The "currying" function
       ` F ` is a homeomorphism on function spaces when ` J ` and ` K ` are
       exponentiable spaces (by ~ xkococn , it is sufficient to assume that
       ` J , K ` are locally compact to ensure exponentiability).  (Contributed
       by Mario Carneiro, 13-Apr-2015.)  (Proof shortened by Mario Carneiro,
       23-Aug-2015.) $)
    xkohmeo $p |- ( ph ->
      F e. ( ( L ^ko ( J tX K ) ) Homeo ( ( L ^ko K ) ^ko J ) ) ) $=
      ( vz co cmpt cfv vw vu vt vg ctx cxko ccn wcel ccnv chmeo ctop ctopon cxp
      cv txtopon syl2anc topontop syl eqid xkotopon cmpt2 c2nd c1st wceq op1std
      cop vex op2ndd eqidd oveq123d mpteq2dv mpt2mpt fveq2d cuni toptopon sylib
      ccmp cnlly txcmp txnlly wa wf adantr xp1st cnf2 syl3anc feqmptd mpteq2dva
      syl5eqr cnmpt1st fveq2 cbvmptv syl5eqel cnmpt21 eqeltrrd cnmpt2nd cnmpt1t
      adantl df-ov syl6eqr cnmptk1p cnmpt2k xkocnv fveq12d mpteq2i xkotop xp2nd
      syl5eqelr nllytop ffvelrnd eqeltrd ishmeo sylanbrc ) AEHFGUERZUFRZHGUFRZF
      UFRZUGRZUHEUIZXQXOUGRZUHEXOXQUJRUHAEDXNHUGRZBICJBUNZCUNZDUNZRZSZSSXRMADBY
      FXOFXPYAIAXNUKUHZHUKUHZXOYAULTUHZAXNIJUMZULTUHZYGAFIULTUHZGJULTUHZYKKLFGI
      JUOUPZYJXNUQURPXNHXOXOUSUTUPZKADBYAIYFVAQYAIUMZCJQUNZVBTZYCYQVCTZRZSZSXOF
      UERZXPUGRDBQYAIUUAYFYQYDYBVFVDZCJYTYEUUCYRYBYCYCYSYDYDYBYQDVGZBVGZVEZYDYB
      YQUUDUUEVHZUUCYCVIVJVKVLAQCYTUUBGHYPJAYIYLUUBYPULTUHZYOKXOFYAIUOUPZLAQCYP
      JYTVAUAYPJUMZUAUNZVCTZVBTZUUKVBTZUULVCTZRZSUUBGUERZHUGRQCUAYPJUUPYTUUKYQY
      CVFVDZUUMYRUUNYCUUOYSUURUULYQVCYQYCUUKQVGZCVGZVEZVMZUURUULYQVBUVAVMZYQYCU
      UKUUSUUTVHZVJVLAUAUBUBUNZUUOTZUUMUUNVFZUUPUUQXNHUUJYJHVNZAUUHYMUUQUUJULTU
      HUUILUUBGYPJUOUPZYNAYHHUVHULTUHZPHUVHUVHUSVOVPZAFVQVRZUHZGUVLUHZXNUVLUHNO
      VQFGBCYBYCVSVTUPAQCYPJYSVAZUAUUJUBYJUVFSZSZUUQXOUGRAUVOUAUUJUUOSUVQQCUAYP
      JUUOYSUVBVLAUAUUJUUOUVPAUUKUUJUHZWAZUBYJUVHUUOUVSYKUVJUUOYAUHZYJUVHUUOWBA
      YKUVRYNWCAUVJUVRUVKWCUVSUULYPUHZUVTUVRUWAAUUKYPJWDWRUULYAIWDURUUOXNHYJUVH
      WEWFWGWHWIAQCUCYQUCUNZVCTZYSUUBGUUBXOYPJYPUUILAQCUUBGYPJUUILWJZUUIAUCYPUW
      CSQYPYSSZUUBXOUGRZUCQYPUWCYSUWBYQVCWKZWLAUWEDBYAIYDVAUWFDBQYAIYSYDUUFVLAD
      BXOFYAIYOKWJWMWMUWGWNWOAUAUUMUUNUUQFGUUJUVIAUAUUJUUMSQCYPJYRVAUUQFUGRQCUA
      YPJUUMYRUVCVLAQCUCYQUWBVBTZYRUUBGUUBFYPJYPUUILUWDUUIAUCYPUWHSQYPYRSZUUBFU
      GRZUCQYPUWHYRUWBYQVBWKZWLAUWIDBYAIYBVAUWJDBQYAIYRYBUUGVLADBXOFYAIYOKWPWMW
      MUWKWNWMAUAUUJUUNSQCYPJYCVAUUQGUGRQCUAYPJUUNYCUVDVLAQCUUBGYPJUUILWPWMWQUV
      EUVGVDUVFUVGUUOTUUPUVEUVGUUOWKUUMUUNUUOWSWTXAXHXBXHXBWMAXSUDFXPUGRZQYJYRY
      SUDUNZTZTZSZSZXTAXSUDUWLBCIJYCYBUWMTZTZVAZSUWQABCDUDEFGHIJKLMNOPXCUDUWLUW
      PUWTBCQIJUWOUWSYQYBYCVFVDZYRYCUWNUWRUXAYSYBUWMYBYCYQUUEUUTVEZVMYBYCYQUUEU
      UTVHZXDVLXEWTAUDQUWOXQXNHUWLYJAFUKUHZXPUKUHZXQUWLULTUHZAUVMUXDNVQFXIURAGU
      KUHZYHUXEAUVNUXGOVQGXIURZPGHXFUPFXPXQXQUSUTUPZYNAUDQUWLYJUWOVAUAUWLYJUMZU
      UNVBTZUUNVCTZUULTZTZSXQXNUERZHUGRUDQUAUWLYJUXNUWOUUKUWMYQVFVDZUXKYRUXMUWN
      UXPUXLYSUULUWMUWMYQUUKUDVGZUUSVEZUXPUUNYQVCUWMYQUUKUXQUUSVHZVMZXDUXPUUNYQ
      VBUXSVMZXDVLAUACYCUXMTZUXKUXNUXOGHUXJJUVHAUXFYKUXOUXJULTUHUXIYNXQXNUWLYJU
      OUPZLUVKOAUAUXJUXMSUAUXJCJUYBSZSUXOXPUGRAUAUXJUXMUYDAUUKUXJUHZWAZCJUVHUXM
      UYFYMUVJUXMGHUGRZUHJUVHUXMWBAYMUYELWCAUVJUYEUVKWCUYFIUYGUXLUULUYFYLXPUYGU
      LTUHZUULUWLUHZIUYGUULWBAYLUYEKWCAUYHUYEAUXGYHUYHUXHPGHXPXPUSUTUPZWCUYEUYI
      AUUKUWLYJWDWRUULFXPIUYGWEWFZUYFUUNYJUHZUXLIUHUYEUYLAUUKUWLYJXGWRUUNIJWDUR
      XJUXMGHJUVHWEWFWGWHAUABYBUULTZUXLUXMUXOFXPUXJIUYGUYCKUYJNAUDQUWLYJUWMVAZU
      AUXJBIUYMSZSZUXOXQUGRAUYNUAUXJUULSUYPUDQUAUWLYJUULUWMUXRVLAUAUXJUULUYOUYF
      BIUYGUULUYKWGWHWIAUDQXQXNUWLYJUXIYNWJWOAUAUXJUXLSUDQUWLYJYSVAUXOFUGRUDQUA
      UWLYJUXLYSUXTVLAUDQUCYQUWCYSXQXNXNFUWLYJYJUXIYNAUDQXQXNUWLYJUXIYNWPZYNAUC
      YJUWCSQYJYSSZXNFUGRZUCQYJUWCYSUWGWLAUYRBCIJYBVAUYSBCQIJYSYBUXBVLABCFGIJKL
      WJWMWMUWGWNWMYBUXLUULWKXAWOAUAUXJUXKSUDQUWLYJYRVAUXOGUGRUDQUAUWLYJUXKYRUY
      AVLAUDQUCYQUWHYRXQXNXNGUWLYJYJUXIYNUYQYNAUCYJUWHSQYJYRSZXNGUGRZUCQYJUWHYR
      UWKWLAUYTBCIJYCVAVUABCQIJYRYCUXCVLABCFGIJKLWPWMWMUWKWNWMYCUXKUXMWKXAXHXBX
      KEXOXQXLXM $.
  $}

  ${
    $d x F $.  $d x J $.  $d x ph $.  $d x X $.  $d x Y $.
    qtopf1.1 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    qtopf1.2 $e |- ( ph -> F : X -1-1-> Y ) $.
    $( If a quotient map is injective, then it is a homeomorphism.
       (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    qtopf1 $p |- ( ph -> F e. ( J Homeo ( J qTop F ) ) ) $=
      ( vx co ccn wcel ccnv ctopon cfv syl2anc cima wf1o wa wss adantr wfn f1fn
      cqtop chmeo wf1 syl qtopid crn wf wral f1f1orn f1ocnv f1of 4syl imacnvcnv
      cv imassrn a1i wceq toponss sylan f1imacnv simpr eqeltrd wb dffn4 elqtop3
      wfo sylib mpbir2and syl5eqel ralrimiva qtoptopon iscn ishmeo sylanbrc ) A
      BCCBUCIZJIKZBLZVQCJIKZBCVQUDIKACDMNKZBDUAZVRFADEBUEZWBGDEBUBUFZBCDUGOAVTB
      UHZDVSUIZVSLHUPZPZVQKZHCUJZAWCDWEBQWEDVSQWFGDEBUKDWEBULWEDVSUMUNAWIHCAWGC
      KZRZWHBWGPZVQBWGUOWLWMVQKZWMWESZVSWMPZCKZWOWLBWGUQURWLWPWGCWLWCWGDSZWPWGU
      SAWCWKGTAWAWKWRFWGCDUTVADEWGBVBOAWKVCVDAWNWOWQRVEZWKAWADWEBVHZWSFAWBWTWDD
      BVFVIZWMBCDWEVGOTVJVKVLAVQWEMNKZWAVTWFWJRVEAWAWTXBFXABCDWEVMOFHVSVQCWEDVN
      OVJBCVQVOVP $.
  $}

  ${
    $d f g h x y F $.  $d f g h x y G $.  $d f g h x y J $.  $d f g h x y ph $.
    $d x y X $.  $d f g h x Y $.
    qtophmeo.2 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    qtophmeo.3 $e |- ( ph -> F : X -onto-> Y ) $.
    qtophmeo.4 $e |- ( ph -> G : X -onto-> Y ) $.
    qtophmeo.5 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
      ( ( F ` x ) = ( F ` y ) <-> ( G ` x ) = ( G ` y ) ) ) $.
    $( If two functions on a base topology ` J ` make the same identifications
       in order to create quotient spaces ` J qTop F ` and ` J qTop G ` , then
       not only are ` J qTop F ` and ` J qTop G ` homeomorphic, but there is a
       unique homeomorphism that makes the diagram commute.  (Contributed by
       Mario Carneiro, 24-Mar-2015.)  (Proof shortened by Mario Carneiro,
       23-Aug-2015.) $)
    qtophmeo $p |- ( ph -> E! f e. ( ( J qTop F ) Homeo ( J qTop G ) )
      G = ( f o. F ) ) $=
      ( vg ccom wceq co wa wcel syl vh cv cqtop chmeo wrex weq wi wral wreu ccn
      ctopon cfv wfn wfo qtopid syl2anc w3a df-3an biimpd sylan2b qtopeu reurex
      fofn impr simprl biimprd adantr wf qtoptopon ad2antrr simplrl syl3anc cid
      ccnv cnf2 cres coeq1 eqeq2d simpr3 cnco simprr simplrr coeq2d eqtrd coass
      idcn syl6eqr fof fcoi2 eqcomd reu2eqd 2fcoidinvd eqeltrd rexlimddv ishmeo
      sylanbrc jca ex reximdv2 mpd eqtr2 wf1o hmeof1o2 cocan2 syl5ib ralrimivva
      wb f1ofn reu4 ) AFDUBZEOZPZDGEUCQZGFUCQZUDQZUEZXLFNUBZEOZPZRZDNUFZUGZNXOU
      HDXOUHXLDXOUIAXLDXMXNUJQZUEZXPAXLDYCUIYDABCDEFGXNHIJKAGHUKULSZFHUMZFGXNUJ
      QSJAHIFUNZYFLHIFVCTFGHUOUPZBUBZHSZCUBZHSZYIEULYKEULPZUQAYJYLRZYMRYIFULYKF
      ULPZYJYLYMURAYNYMYOAYNRZYMYOMUSVDUTVAXLDYCVBTAXLXLDYCXOAXJYCSZXLRZXJXOSZX
      LRAYRRZYSXLYTYQXJVNZXNXMUJQZSZYSAYQXLVEYTEXQFOZPZUUCNUUBYTUUENUUBUIZUUENU
      UBUEAUUFYRABCNFEGXMHIJLAYEEHUMZEGXMUJQSJAHIEUNZUUGKHIEVCTEGHUOUPZYJYLYOUQ
      AYNYORYMYJYLYOURAYNYOYMYPYMYOMVFVDUTVAVGUUENUUBVBTYTXQUUBSZUUERZRZUUAXQUU
      BUULIIXJXQUULXMIUKULZSZXNUUMSZYQIIXJVHAUUNYRUUKAYEUUHUUNJKEGHIVIUPZVJZAUU
      OYRUUKAYEYGUUOJLFGHIVIUPZVJZAYQXLUUKVKZXJXMXNIIVOVLUULUUOUUNUUJIIXQVHUUSU
      UQYTUUJUUEVEZXQXNXMIIVOVLUULEUAUBZEOZPZEXQXJOZEOZPEVMIVPZEOZPUAXMXMUJQZUV
      EUVGUVBUVEPUVCUVFEUVBUVEEVQVRUVBUVGPZUVCUVHEUVBUVGEVQVRAUVDUAUVIUIYRUUKAB
      CUAEEGXMHIJKUUIAYJYLYMVSVAVJUULYQUUJUVEUVISUUTUVAXJXQXMXNXMVTUPAUVGUVISZY
      RUUKAUUNUVKUUPXMIWFTVJUULEXQXKOZUVFUULEUUDUVLYTUUJUUEWAZUULFXKXQAYQXLUUKW
      BZWCWDXQXJEWEWGUULUVHEUULHIEVHZUVHEPAUVOYRUUKAUUHUVOKHIEWHTVJHIEWITWJWKUU
      LFUVBFOZPZFXJXQOZFOZPFUVGFOZPUAXNXNUJQZUVRUVGUVBUVRPUVPUVSFUVBUVRFVQVRUVJ
      UVPUVTFUVBUVGFVQVRAUVQUAUWAUIYRUUKABCUAFFGXNHIJLYHAYJYLYOVSVAVJUULUUJYQUV
      RUWASUVAUUTXQXJXNXMXNVTUPAUVGUWASZYRUUKAUUOUWBUURXNIWFTVJUULFXJUUDOZUVSUU
      LFXKUWCUVNUULEUUDXJUVMWCWDXJXQFWEWGUULUVTFUULHIFVHZUVTFPAUWDYRUUKAYGUWDLH
      IFWHTVJHIFWITWJWKWLUVAWMWNXJXMXNWOWPAYQXLWAWQWRWSWTAYBDNXOXOXTXKXRPZAYSXQ
      XOSZRZRZYAFXKXRXAUWHUUHXJIUMZXQIUMZUWEYAXGAUUHUWGKVGUWHIIXJXBZUWIUWHUUNUU
      OYSUWKAUUNUWGUUPVGZAUUOUWGUURVGZAYSUWFVEXJXMXNIIXCVLIIXJXHTUWHIIXQXBZUWJU
      WHUUNUUOUWFUWNUWLUWMAYSUWFWAXQXMXNIIXCVLIIXQXHTHIEXJXQXDVLXEXFXLXSDNXOYAX
      KXRFXJXQEVQVRXIWP $.
  $}

  ${
    $d x y J $.  $d x y X $.
    t0kq.1 $e |- F = ( x e. X |-> { y e. J | x e. y } ) $.
    $( A topological space is T_0 iff the quotient map is a homeomorphism onto
       the space's Kolmogorov quotient.  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    t0kq $p |- ( J e. ( TopOn ` X ) ->
        ( J e. Kol2 <-> F e. ( J Homeo ( KQ ` J ) ) ) ) $=
      ( ctopon cfv wcel ct0 ckq chmeo co wa cqtop cvv simpl wf1 chmph wbr kqval
      ist0-4 biimpa qtopf1 wceq adantr oveq2d eleqtrrd hmphi hmphsym syl t0hmph
      kqt0lem syl2im impcom impbida ) DEGHIZDJIZCDDKHZLMZIZUQURNZCDDCOMZLMUTVBC
      DEPUQURQUQUREPCRABCDEFUBUCUDVBUSVCDLUQUSVCUEURABCDEFUAUFUGUHVAUQURVAUSDST
      ZUQUSJIURVADUSSTVDCDUSUIDUSUJUKABCDEFUMUSDULUNUOUP $.
  $}

  ${
    $d x y J $.
    $( A topological space is T_0 iff it is homeomorphic to its Kolmogorov
       quotient.  (Contributed by Mario Carneiro, 25-Aug-2015.) $)
    kqhmph $p |- ( J e. Kol2 <-> J ~= ( KQ ` J ) ) $=
      ( vx vy ct0 wcel ckq cfv chmph wbr cuni crab cmpt chmeo co ctopon wb eqid
      wel sylib syl ctop t0top toptopon t0kq hmphi hmphsym hmphtop1 kqt0 t0hmph
      ibi sylc impbii ) ADEZAAFGZHIZUMBAJZBCRCAKLZAUNMNEZUOUMURUMAUPOGEZUMURPUM
      AUAEZUSAUBAUPUPQUCSBCUQAUPUQQUDTUJUQAUNUETUOUNAHIUNDEZUMAUNUFUOUTVAAUNUGA
      UHSUNAUIUKUL $.
  $}

  ${
    ist1-5lem.1 $e |- ( J e. A -> J e. Kol2 ) $.
    ist1-5lem.2 $e |- ( J ~= ( KQ ` J ) ->
      ( J e. A -> ( KQ ` J ) e. A ) ) $.
    ist1-5lem.3 $e |- ( ( KQ ` J ) ~= J ->
      ( ( KQ ` J ) e. A -> J e. A ) ) $.
    $( Lemma for ~ ist1-5 and similar theorems.  If ` A ` is a topological
       property which implies T_0, such as T_1 or T_2, the property can be
       "decomposed" into T_0 and a non-T_0 version of property ` A ` (which is
       defined as stating that the Kolmogorov quotient of the space has
       property ` A ` ).  For example, if ` A ` is T_1, then the theorem states
       that a space is T_1 iff it is T_0 and its Kolmogorov quotient is T_1 (we
       call this property R_0).  (Contributed by Mario Carneiro,
       25-Aug-2015.) $)
    ist1-5lem $p |- ( J e. A <-> ( J e. Kol2 /\ ( KQ ` J ) e. A ) ) $=
      ( wcel ct0 ckq cfv wa chmph wbr kqhmph sylib mpcom jca hmphsym sylbi syl
      wi imp impbii ) BAFZBGFZBHIZAFZJUCUDUFCBUEKLZUCUFUCUDUGCBMZNDOPUDUFUCUDUE
      BKLZUFUCTUDUGUIUHBUEQRESUAUB $.
  $}

  $( A T_1 space is R_0.  That is, the Kolmogorov quotient of a T_1 space is
     also T_1 (because they are homeomorphic).  (Contributed by Mario Carneiro,
     25-Aug-2015.) $)
  t1r0 $p |- ( J e. Fre -> ( KQ ` J ) e. Fre ) $=
    ( ckq cfv chmph wbr ct1 wcel ct0 t1t0 kqhmph sylib t1hmph mpcom ) AABCZDEZA
    FGZNFGPAHGOAIAJKANLM $.

  $( A topological space is T_1 iff it is both T_0 and R_0.  (Contributed by
     Mario Carneiro, 25-Aug-2015.) $)
  ist1-5 $p |- ( J e. Fre <-> ( J e. Kol2 /\ ( KQ ` J ) e. Fre ) ) $=
    ( ct1 t1t0 ckq cfv t1hmph ist1-5lem ) BAACAADEZFHAFG $.

  $( A topological space is Hausdorff iff it is both T_0 and R_1 (where R_1
     means that any two topologically distinct points are separated by
     neighborhoods).  (Contributed by Mario Carneiro, 25-Aug-2015.) $)
  ishaus3 $p |- ( J e. Haus <-> ( J e. Kol2 /\ ( KQ ` J ) e. Haus ) ) $=
    ( cha wcel ct1 ct0 haust1 t1t0 syl ckq cfv haushmph ist1-5lem ) BAABCADCAEC
    AFAGHAAIJZKMAKL $.

  $( A normal T_1 space is regular Hausdorff.  In other words, a T_4 space is
     T_3 .  One can get away with slightly weaker assumptions; see ~ nrmr0reg .
     (Contributed by Mario Carneiro, 25-Aug-2015.) $)
  nrmreg $p |- ( ( J e. Nrm /\ J e. Fre ) -> J e. Reg ) $=
    ( ct1 wcel cnrm ckq cfv creg t1r0 nrmr0reg sylan2 ) ABCADCAEFBCAGCAHAIJ $.

  $( A regular T_0 space is Hausdorff.  In other words, a T_3 space is T_2 .  A
     regular Hausdorff or T_0 space is also known as a T_3 space.  (Contributed
     by Mario Carneiro, 24-Aug-2015.) $)
  reghaus $p |- ( J e. Reg -> ( J e. Haus <-> J e. Kol2 ) ) $=
    ( creg wcel cha ct0 ct1 haust1 t1t0 syl ckq cfv regr1 anim2i ishaus3 sylibr
    wa expcom impbid2 ) ABCZADCZAECZTAFCUAAGAHIUASTUASPUAAJKDCZPTSUBUAALMANOQR
    $.

  $( A T_1 normal space is Hausdorff.  A Hausdorff or T_1 normal space is also
     known as a T_4 space.  (Contributed by Mario Carneiro, 24-Aug-2015.) $)
  nrmhaus $p |- ( J e. Nrm -> ( J e. Haus <-> J e. Fre ) ) $=
    ( cnrm wcel cha ct1 haust1 creg nrmreg ex reghaus syl5ibrcom sylcom impbid2
    ct0 t1t0 ) ABCZADCZAECZAFPRAGCZQPRSAHIRQSANCAOAJKLM $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Filters and filter bases
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Filter bases
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d w x y z X $.  $d w y z B $.  $d x y C $.  $d x z D $.  $d x y V $.
    $d w z ph $.  $d w x y Y $.  $d x y ps $.
    elmptrab.f $e |- F = ( x e. D |-> { y e. B | ph } ) $.
    elmptrab.s1 $e |- ( ( x = X /\ y = Y ) -> ( ph <-> ps ) ) $.
    elmptrab.s2 $e |- ( x = X -> B = C ) $.
    elmptrab.ex $e |- ( x e. D -> B e. V ) $.
    $( Membership in a one-parameter class of sets.  (Contributed by Stefan
       O'Rear, 28-Jul-2015.) $)
    elmptrab $p |- ( Y e. ( F ` X ) <-> ( X e. D /\ Y e. C /\ ps ) ) $=
      ( vw vz wcel wsbc nfv cfv w3a crab mptrcl simp1 cv csb wa cvv wceq csbeq1
      dfsbcq rabeqbidv cmpt nfcv nfsbc1v nfcsb1v nfrab csbeq1a sbceq1a nfsbc wb
      weq equcoms sbccom syl6rbbr cbvrab syl6eqr cbvmpt eqtri nfel1 nfim eleq1d
      wi eleq1 imbi12d chvar rabexg syl fvmpt3 eleq2d sbcbidv elrab a1i csbiegf
      nfcvd anbi1d sbc2iegf pm5.32da 3bitrd 3anass baibr pm5.21nii ) KJHUAZRZJG
      RZWPKFRZBUBZCGADEUCZHKJLUDWPWQBUEWPWOKADPUFZSZCJSZPCJEUGZUCZRZWQBUHZWRWPW
      NXDKQJXACQUFZSZPCXGEUGZUCZXDGHUIXGJUJXHXBPXIXCCXGJEUKXACXGJULUMHCGWSUNQGX
      JUNLCQGWSXJQWSUOXHCPXIXACXGUPCXGEUQZURCQVCZWSACXGSZDXIUCXJXLAXMDEXICXGEUS
      ZACXGUTUMXHXMPDXIPXIUODXIUOXADCXGDXGUOADWTUPVAXMPTPDVCXMXMDWTSZXHXMXOVBDP
      XMDWTUTVDACDXGWTVEVFVGVHVIVJXGGRZXIIRZXJUIRCUFZGRZEIRZVNXPXQVNCQXPXQCXPCT
      CXIIXKVKVLXLXSXPXTXQXRXGGVOXLEXIIXNVMVPOVQXHPXIIVRVSVTWAWPXEKXCRZADKSZCJS
      ZUHZWQYCUHXFXEYDVBWPXBYCPKXCWTKUJXAYBCJADWTKULWBWCWDWPYAWQYCWPXCFKCJEFGWP
      CFWFNWEWAWGWPWQYCBABCDJKGFBCTBDTWQCTMWHWIWJWRWPXFWPWQBWKWLWJWM $.
  $}

  ${
    $d x y ps $.  $d x y X $.  $d x y Y $.  $d x y C $.  $d x y V $.
    $d x y W $.  $d y B $.
    elmptrab2.f $e |- F = ( x e. _V |-> { y e. B | ph } ) $.
    elmptrab2.s1 $e |- ( ( x = X /\ y = Y ) -> ( ph <-> ps ) ) $.
    elmptrab2.s2 $e |- ( x = X -> B = C ) $.
    ${
      elmptrab2OLD.ex $e |- B e. V $.
      elmptrab2OLD.rc $e |- ( Y e. C -> X e. W ) $.
      $( Obsolete version of ~ elmptrab2 as of 26-Mar-2021.  (Contributed by
         Stefan O'Rear, 28-Jul-2015.)  (Proof modification is discouraged.)
         (New usage is discouraged.) $)
      elmptrab2OLD $p |- ( Y e. ( F ` X ) <-> ( Y e. C /\ ps ) ) $=
        ( cfv wcel cvv w3a wa cv a1i elmptrab 3simpc elex syl adantr simpl 3jca
        simpr impbii bitri ) KJGQRJSRZKFRZBTZUOBUAZABCDEFSGHJKLMNEHRCUBSROUCUDU
        PUQUNUOBUEUQUNUOBUOUNBUOJIRUNPJIUFUGUHUOBUIUOBUKUJULUM $.
    $}

    elmptrab2.ex $e |- B e. _V $.
    elmptrab2.rc $e |- ( Y e. C -> X e. W ) $.
    $( Membership in a one-parameter class of sets, indexed by arbitrary base
       sets.  (Contributed by Stefan O'Rear, 28-Jul-2015.)  (Revised by AV,
       26-Mar-2021.) $)
    elmptrab2 $p |- ( Y e. ( F ` X ) <-> ( Y e. C /\ ps ) ) $=
      ( cfv wcel cvv w3a wa cv a1i elmptrab 3simpc elex adantr simpl simpr 3jca
      syl impbii bitri ) JIGPQIRQZJFQZBSZUNBTZABCDEFRGRIJKLMERQCUARQNUBUCUOUPUM
      UNBUDUPUMUNBUNUMBUNIHQUMOIHUEUJUFUNBUGUNBUHUIUKUL $.
  $}

  ${
    $d x y z w F $.  $d x y z w B $.
    $( The predicate " ` F ` is a filter base."  Note that some authors require
       filter bases to be closed under pairwise intersections, but that is not
       necessary under our definition.  One advantage of this definition is
       that tails in a directed set form a filter base under our meaning.
       (Contributed by Jeff Hankins, 1-Sep-2009.)  (Revised by Mario Carneiro,
       28-Jul-2015.) $)
    isfbas $p |- ( B e. A -> ( F e. ( fBas ` B ) <->
          ( F C_ ~P B /\ ( F =/= (/) /\ (/) e/ F /\
              A. x e. F A. y e. F ( F i^i ~P ( x i^i y ) ) =/= (/) ) ) ) ) $=
      ( vw vz wcel cpw c0 wne wnel cv cin wral w3a wa cvv cfbas wb pwexg elpw2g
      wss cfv syl anbi1d elex biantrurd bitr3d df-fbas wceq neeq1 neleq2 neeq1d
      ineq1 raleqbi1dv 3anbi123d adantl pweq pweqd vpwex pwex elmptrab syl6rbbr
      a1i 3anass bitri ) DCHZEDIZUCZEJKZJELZEAMBMNIZNZJKZBEOZAEOZPZQZDRHZEVIIZH
      ZVRQZQZEDSUDHZVHWCVSWDVHWBVJVRVHVIRHWBVJTDCUAEVIRUBUEUFVHVTWCDCUGUHUIWEVT
      WBVRPWDFMZJKZJWFLZWFVMNZJKZBWFOZAWFOZPZVRGFGMZIZIZWARSRDEFABGUJWFEUKZWMVR
      TWNDUKZWQWGVKWHVLWLVQWFEJULWFEJUMWKVPAWFEWJVOBWFEWQWIVNJWFEVMUOUNUPUPUQUR
      WRWOVIWNDUSUTWPRHWNRHWOGVAVBVEVCVTWBVRVFVGVD $.
  $}

  ${
    $d x y F $.  $d x y B $.
    $( There are no empty filter bases.  (Contributed by Jeff Hankins,
       1-Sep-2009.)  (Revised by Mario Carneiro, 28-Jul-2015.) $)
    fbasne0 $p |- ( F e. ( fBas ` B ) -> F =/= (/) ) $=
      ( vx vy cfbas cfv wcel cpw wss c0 wne wnel cv cin wral w3a wa cdm wb syl
      elfvdm isfbas ibi simpr1 ) BAEFGZBAHIZBJKZJBLZBCMDMNHNJKDBOCBOZPQZUGUEUJU
      EAERZGUEUJSBAEUACDUKABUBTUCUFUGUHUIUDT $.
  $}

  ${
    $d x y F $.  $d x y B $.
    $( No filter base contains the empty set.  (Contributed by Jeff Hankins,
       1-Sep-2009.)  (Revised by Mario Carneiro, 28-Jul-2015.) $)
    0nelfb $p |- ( F e. ( fBas ` B ) -> -. (/) e. F ) $=
      ( vx vy cfbas cfv wcel c0 wnel wn cpw wss wne cv cin wral w3a wa cdm syl
      wb elfvdm isfbas ibi simpr2 df-nel sylib ) BAEFGZHBIZHBGJUHBAKLZBHMZUIBCN
      DNOKOHMDBPCBPZQRZUIUHUMUHAESZGUHUMUABAEUBCDUNABUCTUDUJUKUIULUETHBUFUG $.
  $}

  ${
    $d F x y $.  $d B x y $.
    $( A filter base on a set is a subset of the power set.  (Contributed by
       Stefan O'Rear, 28-Jul-2015.) $)
    fbsspw $p |- ( F e. ( fBas ` B ) -> F C_ ~P B ) $=
      ( vx vy cfbas cfv wcel cpw wss c0 wne wnel cv cin wral w3a wa cdm elfvdm
      wb isfbas syl ibi simpld ) BAEFGZBAHIZBJKJBLBCMDMNHNJKDBOCBOPZUEUFUGQZUEA
      ERZGUEUHTBAESCDUIABUAUBUCUD $.

    $( An element of the filter base is a subset of the base set.  (Contributed
       by Stefan O'Rear, 28-Jul-2015.) $)
    fbelss $p |- ( ( F e. ( fBas ` B ) /\ X e. F ) -> X C_ B ) $=
      ( cfbas cfv wcel wa cpw fbsspw sselda elpwid ) BADEFZCBFGCALBAHCABIJK $.

    $( The domain of a filter base is nonempty.  (Contributed by Mario
       Carneiro, 28-Nov-2013.)  (Revised by Stefan O'Rear, 28-Jul-2015.) $)
    fbdmn0 $p |- ( F e. ( fBas ` B ) -> B =/= (/) ) $=
      ( vx cfbas cfv wcel c0 wn wne 0nelfb wceq fveq2 eleq2d biimpd wex fbasne0
      cv n0 sylib wa wss fbelss ss0 syl eqeltrrd exlimddv syl6com necon3bd mpd
      simpr ) BADEZFZGBFZHAGIABJULUMAGAGKZULBGDEZFZUMUNULUPUNUKUOBAGDLMNUPCQZBF
      ZUMCUPBGIURCOGBPCBRSUPURTZUQGBUSUQGUAUQGKGBUQUBUQUCUDUPURUJUEUFUGUHUI $.
  $}

  ${
    $d x y z F $.  $d x y z B $.
    $( The predicate " ` F ` is a filter base."  (Contributed by Jeff Hankins,
       1-Sep-2009.)  (Revised by Stefan O'Rear, 28-Jul-2015.) $)
    isfbas2 $p |- ( B e. A -> ( F e. ( fBas ` B ) <->
          ( F C_ ~P B /\ ( F =/= (/) /\ (/) e/ F /\
              A. x e. F A. y e. F E. z e. F z C_ ( x i^i y ) ) ) ) ) $=
      ( wcel cfbas cfv cpw wss c0 wne cv cin wral w3a wa wex anbi2i wnel isfbas
      wrex elin selpw bitri exbii n0 df-rex 3bitr4i 2ralbii 3anbi3i syl6bb ) ED
      GFEHIGFEJKZFLMZLFUAZFANBNOZJZOZLMZBFPAFPZQZRUNUOUPCNZUQKZCFUCZBFPAFPZQZRA
      BDEFUBVBVGUNVAVFUOUPUTVEABFFVCUSGZCSVCFGZVDRZCSUTVEVHVJCVHVIVCURGZRVJVCFU
      RUDVKVDVICUQUETUFUGCUSUHVDCFUIUJUKULTUM $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z F $.  $d x y z X $.
    $( A filter base contains subsets of its pairwise intersections.
       (Contributed by Jeff Hankins, 1-Sep-2009.)  (Revised by Jeff Hankins,
       1-Dec-2010.) $)
    fbasssin $p |- ( ( F e. ( fBas ` X ) /\ A e. F /\ B e. F ) ->
        E. x e. F x C_ ( A i^i B ) ) $=
      ( vy vz cfbas cfv wcel cv cin wss wrex wral wa c0 wceq sseq2d rexbidv wne
      wnel cpw w3a cdm elfvdm isfbas2 syl ibi simprd simp3d ineq1 ineq2 syl5com
      wb rspc2v 3impib ) DEHIJZBDJZCDJZAKZBCLZMZADNZURVAFKZGKZLZMZADNZGDOFDOZUS
      UTPVDURDQUAZQDUBZVJURDEUCMZVKVLVJUDZURVMVNPZUREHUEZJURVOUODEHUFFGAVPEDUGU
      HUIUJUKVIVDVABVFLZMZADNFGBCDDVEBRZVHVRADVSVGVQVAVEBVFULSTVFCRZVRVCADVTVQV
      BVAVFCBUMSTUPUNUQ $.
  $}

  ${
    $d t x A $.  $d t u v x y z F $.  $d u v x y z X $.
    $( A filter base contains subsets of its finite intersections.
       (Contributed by Mario Carneiro, 26-Nov-2013.)  (Revised by Stefan
       O'Rear, 28-Jul-2015.) $)
    fbssfi $p |- ( ( F e. ( fBas ` X ) /\ A e. ( fi ` F ) ) ->
        E. x e. F x C_ A ) $=
      ( vt vz vu vv vy wcel wa cv wss wrex wral wi wceq sseq2 rexbidv cvv cfbas
      cfv cfi cuni cpw crab cin cab cint dffi2 inss1 simp1r elpwid syl5ss inex1
      w3a vex elpw sylibr simpl fbasssin syl3an ss2in ad2ant2l 3adant1 sstr syl
      expcom reximdv mpd elrab sylanbrc 3expa rexlimdvaa ralrimivw sseq1 syl6bb
      ralrab ralrimiva pwuni ssid rspcev mpan2 rgen ssrab mpbir2an jctil uniexg
      cbvrexv wb pwexg rabexg eleq2 raleqbi1dv anbi12d elabg 4syl mpbird intss1
      eqsstrd sselda simprbi ) CDUAUBZJZBCUCUBZJKBALZELZMZACNZECUDZUEZUFZJZXFBM
      ZACNZXDXEXLBXDXECFLZMZGLZHLZUGZXPJZHXPOZGXPOZKZFUHZUIZXLGHFCXCUJXDXLYEJZY
      FXLMXDYGCXLMZXTXLJZHXLOZGXLOZKZXDYKYHXDILZXRMZICNZYJPZGXKOYKXDYPGXKXDXRXK
      JZKZYNYJICYRYMCJZYNKZKZXPXSMZFCNZYIPZHXKOYJUUAUUDHXKUUAUUBYIFCYRYTXPCJZUU
      BKZYIYRYTUUFUPZXTXKJZXFXTMZACNZYIUUGXTXJMUUHUUGXTXRXJXRXSUKUUGXRXJXDYQYTU
      UFULUMUNXTXJXRXSGUQUOURUSUUGXFYMXPUGZMZACNZUUJYRXDYTYSUUFUUEUUMXDYQUTYSYN
      UTUUEUUBUTAYMXPCDVAVBUUGUULUUIACUUGUUKXTMZUULUUIPYTUUFUUNYRYNUUBUUNYSUUEY
      MXRXPXSVCVDVEUULUUNUUIXFUUKXTVFVHVGVIVJXIUUJEXTXKXGXTQXHUUIACXGXTXFRSVKVL
      VMVNVOXIUUCYIHEXKXGXSQZXIXFXSMZACNUUCUUOXHUUPACXGXSXFRSUUPUUBAFCXFXPXSVPW
      IVQVRUSVNVSXIYOYJGEXKXGXRQZXIXFXRMZACNYOUUQXHUURACXGXRXFRSUURYNAICXFYMXRV
      PWIVQVRUSYHCXKMXIECOCVTXIECXGCJXGXGMZXIXGWAXHUUSAXGCXFXGXGVPWBWCWDXIEXKCW
      EWFWGXDXJTJXKTJXLTJYGYLWJCXCWHXJTWKXIEXKTWLYDYLFXLTXPXLQXQYHYCYKXPXLCRYBY
      JGXPXLYAYIHXPXLXPXLXTWMWNWNWOWPWQWRXLYEWSVGWTXAXMBXKJXOXIXOEBXKXGBQXHXNAC
      XGBXFRSVKXBVG $.
  $}

  ${
    $d x A $.  $d x F $.  $d x B $.
    $( A filter base contains subsets of its finite intersections.
       (Contributed by Jeff Hankins, 1-Sep-2009.)  (Revised by Stefan O'Rear,
       28-Jul-2015.) $)
    fbssint $p |- ( ( F e. ( fBas ` B ) /\ A C_ F /\ A e. Fin ) ->
        E. x e. F x C_ |^| A ) $=
      ( cfbas cfv wcel wss cfn w3a cv cint wrex c0 wceq wi cvv wex wne wa sylib
      fbasne0 ssv jctr eximi df-rex sylibr syl inteq int0 syl6eq sseq2d rexbidv
      syl5ibrcom 3ad2ant1 cfi simpl1 simpl2 simpr simpl3 elfir syl13anc syl2anc
      n0 fbssfi ex pm2.61dne ) DCEFZGZBDHZBIGZJZAKZBLZHZADMZBNVIVJBNOZVPPVKVIVP
      VQVMQHZADMZVIVMDGZARZVSVIDNSWACDUBADVDUAWAVTVRTZARVSVTWBAVTVRVMUCUDUEVRAD
      UFUGUHVQVOVRADVQVNQVMVQVNNLQBNUIUJUKULUMUNUOVLBNSZVPVLWCTZVIVNDUPFGZVPVIV
      JVKWCUQZWDVIVJWCVKWEWFVIVJVKWCURVLWCUSVIVJVKWCUTBDVHVAVBAVNDCVEVCVFVG $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.  $d x X $.
    $( A filter base does not contain complements of its elements.
       (Contributed by Mario Carneiro, 26-Nov-2013.)  (Revised by Stefan
       O'Rear, 28-Jul-2015.) $)
    fbncp $p |- ( ( F e. ( fBas ` X ) /\ A e. F ) -> -. ( B \ A ) e. F ) $=
      ( vx cfbas cfv wcel wa cdif c0 wn 0nelfb adantr w3a cin wss wrex fbasssin
      cv wceq disjdif sseq2i ss0 sylbi biimpac sylan2 rexlimiva syl 3expia mtod
      eleq1 ) CDFGHZACHZIBAJZCHZKCHZUMUQLUNDCMNUMUNUPUQUMUNUPOETZAUOPZQZECRUQEA
      UOCDSUTUQECUTURCHZURKUAZUQUTURKQVBUSKURABUBUCURUDUEVBVAUQURKCULUFUGUHUIUJ
      UK $.
  $}

  ${
    $d w x y z G $.  $d w x y z F $.  $d w x y z X $.
    $( A necessary and sufficient condition for the union of two filter bases
       to also be a filter base.  (Contributed by Mario Carneiro, 28-Nov-2013.)
       (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    fbun $p |- ( ( F e. ( fBas ` X ) /\ G e. ( fBas ` X ) ) ->
        ( ( F u. G ) e. ( fBas ` X ) <->
          A. x e. F A. y e. G E. z e. ( F u. G ) z C_ ( x i^i y ) ) ) $=
      ( vw cfbas wcel wa cv cin wss wrex wral fbasssin 3expb c0 adantr wn elun1
      cfv cun elun2 anim12i sylan2 ralrimivva cpw wne wnel w3a fbsspw unssd a1d
      adantl ssun1 fbasne0 ssn0 sylancr 0nelfb df-nel elun notbii ioran biimpri
      wo 3bitri syl2an ssrexv mpsyl pm3.2 syl r19.26 ralun ralimi sylbir ralcom
      wi syl6 weq ineq1 sseq2d rexbidv cbvralv ralbii ineq2 incom syl6eq biimpi
      cbvral2v ssun2 expcom jcad 3jcad cdm wb elfvdm isfbas2 sylibrd impbid2 )
      DFHUBZIZEXAIZJZDEUCZXAIZCKZAKZBKZLZMZCXENZBEOZADOZXFXLABDEXHDIZXIEIZJXFXH
      XEIZXIXEIZJXLXOXQXPXRXHDEUAXIEDUDUEXFXQXRXLCXHXIXEFPQUFUGXDXNXEFUHZMZXERU
      IZRXEUJZXLBXEOZAXEOZUKZJZXFXDXNXTYEXDXTXNXDDEXSXBDXSMXCFDULSXCEXSMXBFEULU
      OUMUNXDXNYAYBYDXDYAXNXBYAXCXBDXEMZDRUIYADEUPZFDUQDXEURUSSUNXDYBXNXBRDIZTZ
      REIZTZYBXCFDUTFEUTYBYJYLJZYBRXEIZTYIYKVFZTYMRXEVAYNYORDEVBVCYIYKVDVGVEVHU
      NXDXNYCADOZYCAEOZJYDXDXNYPYQXDXNXLBDOZADOZXNJZYPXDYSXNYTVRXBYSXCXBXLABDDX
      BXOXIDIZXLYGXBXOUUAUKXKCDNXLYHCXHXIDFPXKCDXEVIVJQUGSYSXNVKVLYTYRXMJZADOYP
      YRXMADVMUUBYCADXLBDEVNZVOVPVSXDXNYRAEOZXMAEOZJZYQXNXDUUFXNUUDXDUUEXNUUDXN
      XLADOZBEOXGGKZXILZMZCXENZGDOZBEOUUDXLABDEVQUUGUULBEXLUUKAGDAGVTZXKUUJCXEU
      UMXJUUIXGXHUUHXIWAWBWCWDWEUUKXLXGUUHXHLZMZCXENBGABEDBAVTZUUJUUOCXEUUPUUIU
      UNXGXIXHUUHWFWBWCGBVTZUUOXKCXEUUQUUNXJXGUUQUUNXIXHLXJUUHXIXHWAXIXHWGWHWBW
      CWJVGWIXCUUEXBXCXLABEEXCXHEIZXPXLEXEMXCUURXPUKXKCENXLEDWKCXHXIEFPXKCEXEVI
      VJQUGUOUEWLUUFUUBAEOYQYRXMAEVMUUBYCAEUUCVOVPVSWMYCADEVNVSWNWMXDFHWOZIZXFY
      FWPXBUUTXCDFHWQSABCUUSFXEWRVLWSWT $.
  $}

  ${
    $d x y z F $.  $d x S $.  $d x y z B $.
    $( No filter base containing a finite element is free.  (Contributed by
       Jeff Hankins, 5-Dec-2009.)  (Revised by Stefan O'Rear, 28-Jul-2015.) $)
    fbfinnfr $p |- ( ( F e. ( fBas ` B ) /\ S e. F /\ S e. Fin ) ->
        |^| F =/= (/) ) $=
      ( vx vy vz wcel cfn c0 wne wa cv wi wceq eleq1 anbi2d imbi1d wss wn wrex
      cfbas cfv cint wpss wal wral wb ibar adantr bi2.04 syl6rbbr albidv df-ral
      syl6bbr 0nelfb notbid syl5ibrcom necon2ad imp ssn0 ex syl5com a1dd notbii
      rexnal bitr4i w3a fbasssin nssinpss sspsstr sylan2b expcom reximdv 3expia
      ssint cin rexlimdv syl5bi r19.29 id rexlimivw syl syl6 pm2.61d sylbid a1i
      com12 findcard3 3impia ) CAUAUBGZBCGZBHGZCUCZIJZWLWJWKKZWNWJDLZCGZKZWNMZW
      JELZCGZKZWNMZWOWNMDEBWPWTNZWRXBWNXDWQXAWJWPWTCOPQWPBNZWRWOWNXEWQWKWJWPBCO
      PQWPWTUDZWSMZDUEZXCMWTHGXBXHWNXBXHXFWNMZDCUFZWNXBXHWQXIMZDUEXJXBXGXKDXBXK
      WRXIMXGXBWQWRXIWJWQWRUGXAWJWQUHUIQXFWRWNUJUKULXIDCUMUNXBWTWMRZXJWNMZXBXLW
      NXJXBWTIJZXLWNWJXAXNWJXAWTIWJXASWTINZICGZSACUOXOXAXPWTICOUPUQURUSXLXNWNWT
      WMUTVAVBVCXBXLSZXFDCTZXMXQWTFLZRZSZFCTZXBXRXQXTFCUFZSYBXLYCFWTCVOVDXTFCVE
      VFXBYAXRFCWJXAXSCGZYAXRMWJXAYDVGWPWTXSVPZRZDCTYAXRDWTXSCAVHYAYFXFDCYFYAXF
      YAYFYEWTUDXFWTXSVIWPYEWTVJVKVLVMVBVNVQVRXJXRWNXJXRKXIXFKZDCTWNXIXFDCVSYGW
      NDCXIXFWNXIVTUSWAWBVLWCWDWEWGWFWHWGWI $.
  $}

  ${
    $d r s t x J $.  $d r s t x S $.  $d r s t x X $.
    opnfbas.1 $e |- X = U. J $.
    $( The collection of open supersets of a nonempty set in a topology is a
       neighborhoods of the set, one of the motivations for the filter concept.
       (Contributed by Jeff Hankins, 2-Sep-2009.)  (Revised by Mario Carneiro,
       7-Aug-2015.) $)
    opnfbas $p |- ( ( J e. Top /\ S C_ X /\ S =/= (/) ) ->
        { x e. J | S C_ x } e. ( fBas ` X ) ) $=
      ( vt vr vs wcel wss c0 wne w3a cv wral wa sseq2 elrab sylibr wn ctop crab
      cfbas cfv cpw wnel cin wrex ssrab2 cuni eqimss2i sspwuni mpbir a1i topopn
      sstri anim1i 3adant3 ne0i syl ss0 necon3ai 3ad2ant3 intnand df-nel notbii
      bitr2i sylib anbi12i simpl simprll simprrl syl3anc biimpi ad2ant2l adantl
      inopn ssin jca 3ad2antl1 ssid sseq1 rspcev sylancl ex syl5bi ralrimivv wb
      3jca isfbas2 3ad2ant1 mpbir2and ) CUAIZBDJZBKLZMZBANZJZACUBZDUCUDIZWSDUEZ
      JZWSKLZKWSUFZFNZGNZHNZUGZJZFWSUHZHWSOGWSOZMZXBWPWSCXAWRACUICXAJCUJZDJDXME
      UKCDULUMUPUNWPXCXDXKWPDWSIZXCWPDCIZWNPZXNWMWNXPWOWMXOWNCDEUOZUQURWRWNADCW
      QDBQRSWSDUSUTWPKCIZBKJZPZTZXDWPXSXRWOWMXSTWNXSBKBVAVBVCVDXDKWSIZTYAKWSVEY
      BXTWRXSAKCWQKBQRVFVGVHWPXJGHWSWSXFWSIZXGWSIZPXFCIZBXFJZPZXGCIZBXGJZPZPZWP
      XJYCYGYDYJWRYFAXFCWQXFBQRWRYIAXGCWQXGBQRVIWPYKXJWPYKPZXHWSIZXHXHJZXJYLXHC
      IZBXHJZPZYMWMWNYKYQWOWMYKPZYOYPYRWMYEYHYOWMYKVJWMYEYFYJVKWMYGYHYIVLXFXGCV
      QVMYKYPWMYFYIYPYEYHYFYIPYPBXFXGVRVNVOVPVSVTWRYPAXHCWQXHBQRSXHWAXIYNFXHWSX
      EXHXHWBWCWDWEWFWGWIWMWNWTXBXLPWHZWOWMXOYSXQGHFCDWSWJUTWKWL $.
  $}

  ${
    $d v w x y z A $.  $d v w x y z F $.  $d w x y z Y $.
    $( Conditions for the trace of a filter base ` F ` to be a filter base.
       (Contributed by Mario Carneiro, 13-Oct-2015.) $)
    trfbas2 $p |- ( ( F e. ( fBas ` Y ) /\ A C_ Y ) ->
      ( ( F |`t A ) e. ( fBas ` A ) <-> -. (/) e. ( F |`t A ) ) ) $=
      ( vx vy vz vw cfbas wcel wss wa c0 cvv cpw wne cv cin wral wb a1i co wnel
      cfv crest wn cdm elfvdm ssexg ancoms sylan restsspw wex fbasne0 adantr n0
      sylib elrestr 3expia syldan ne0i syl6 exlimdv wrex fbasssin 3expb adantlr
      wi mpd simplll ad2antrr simprl syl3anc ssrin ad2antll inex1 sylibr inelcm
      vex elpw syl2anc rexlimddv ralrimivva elrest ineq12 inindir syl6eqr pweqd
      wceq ineq2d neeq1d adantll ralxfr2d mpbird isfbas 3anan32 syl6bb syl22anc
      w3a baibd df-nel ) BCHUCZIZACJZKZBAUDUAZAHUCIZLXEUBZLXEIUEXDAMIZXEANJZXEL
      OZXEDPZEPZQZNZQZLOZEXERZDXERZXFXGSXBCHUFZIZXCXHBCHUGXCXTXHACXSUHUIUJZXIXD
      ABUKTXDXKBIZDULZXJXDBLOZYCXBYDXCCBUMUNDBUOUPXDYBXJDXDYBXKAQZXEIZXJXBXCXHY
      BYFVGYAXBXHYBYFXKABXAMUQZURUSXEYEUTVAVBVHXDXRXEFPZGPZQZAQZNZQZLOZGBRZFBRX
      DYNFGBBXDYHBIZYIBIZKZKZXKYJJZYNDBXBYRYTDBVCZXCXBYPYQUUADYHYIBCVDVEVFYSYBY
      TKZKZYFYEYLIZYNUUCXBXHYBYFXBXCYRUUBVIXDXHYRUUBYAVJYSYBYTVKYGVLUUCYEYKJZUU
      DYTUUEYSYBXKYJAVMVNYEYKXKADVRVOVSVPYEXEYLVQVTWAWBXDXQYODFYHAQZXEBMUUFMIXD
      YPKYHAFVRVOTXBXCXHXKXEIXKUUFWHZFBVCSYAFXKABXAMWCUSXDUUGKZXPYNEGYIAQZXEBMU
      UIMIUUHYQKYIAGVRVOTXDXLXEIXLUUIWHZGBVCSZUUGXBXCXHUUKYAGXLABXAMWCUSUNUUGUU
      JXPYNSXDUUGUUJKZXOYMLUULXNYLXEUULXMYKUULXMUUFUUIQYKXKUUFXLUUIWDYHYIAWEWFW
      GWIWJWKWLWLWMXHXIKZXFXJXRKZXGUUMXFXJXGXRWRZUUNXGKXHXFXIUUODEMAXEWNWSXJXGX
      RWOWPWSWQLXEWTWP $.

    $( Conditions for the trace of a filter base ` F ` to be a filter base.
       (Contributed by Mario Carneiro, 13-Oct-2015.) $)
    trfbas $p |- ( ( F e. ( fBas ` Y ) /\ A C_ Y ) ->
      ( ( F |`t A ) e. ( fBas ` A ) <-> A. v e. F ( v i^i A ) =/= (/) ) ) $=
      ( cfbas cfv wcel wss wa crest co c0 wn cv cin wne wral trfbas2 wceq cvv
      wb cdm elfvdm ssexg ancoms sylan elrest syldan notbid nesym ralbii ralnex
      wrex bitri syl6bbr bitrd ) CDEFZGZBDHZIZCBJKZBEFGLVAGZMZANBOZLPZACQZBCDRU
      TVCLVDSZACUMZMZVFUTVBVHURUSBTGZVBVHUAURDEUBZGZUSVJCDEUCUSVLVJBDVKUDUEUFAL
      BCUQTUGUHUIVFVGMZACQVIVEVMACVDLUJUKVGACULUNUOUP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Filters
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Fil $. $( The class of all filters. $)

  $( Extend class notation with the set of filters on a set. $)
  cfil $a class Fil $.

  ${
    $d f x z $.
    $( The set of filters on a set.  Definition 1 (axioms FI, FIIa, FIIb, FIII)
       of [BourbakiTop1] p.  I.36.  Filters are used to define the concept of
       limit in the general case.  They are a generalization of the idea of
       neighborhoods.  Suppose you are in ` RR ` .  With neighborhoods you can
       express the idea of a variable that tends to a specific number but you
       can't express the idea of a variable that tends to infinity.  Filters
       relax the "axioms" of neighborhoods and then succeed in expressing the
       idea of something that tends to infinity.  Filters were invented by
       Cartan in 1937 and made famous by Bourbaki in his treatise.  A notion
       similar to the notion of filter is the concept of net invented by Moore
       and Smith in 1922.  (Contributed by FL, 20-Jul-2007.)  (Revised by
       Stefan O'Rear, 28-Jul-2015.) $)
    df-fil $a |- Fil = ( z e. _V |-> { f e. ( fBas ` z ) |
      A. x e. ~P z ( ( f i^i ~P x ) =/= (/) -> x e. f ) } ) $.
  $}

  ${
    $d F f x z $.  $d X f x z $.
    $( The predicate "is a filter."  (Contributed by FL, 20-Jul-2007.)
       (Revised by Mario Carneiro, 28-Jul-2015.) $)
    isfil $p |- ( F e. ( Fil ` X ) <-> ( F e. ( fBas ` X ) /\
          A. x e. ~P X ( ( F i^i ~P x ) =/= (/) -> x e. F ) ) ) $=
      ( vf vz cv cpw cin c0 wne wel wi wral wcel cfbas cfv cfil cdm df-fil wceq
      wa pweq adantr wb ineq1 neeq1d eleq2 imbi12d adantl raleqbidv fvex elfvdm
      fveq2 elmptrab2 ) DFZAFZGZHZIJZADKZLZAEFZGZMBUQHZIJZUPBNZLZACGZMEDVBOPCOP
      QORCBAEDSVBCTZUOBTZUAVAVGAVCVHVIVCVHTVJVBCUBUCVJVAVGUDVIVJUSVEUTVFVJURVDI
      UOBUQUEUFUOBUPUGUHUIUJVBCOUMVBOUKBCOULUN $.
  $}

  ${
    $d x F $.  $d x X $.
    $( A filter is a filter base.  (Contributed by Jeff Hankins, 2-Sep-2009.)
       (Revised by Mario Carneiro, 28-Jul-2015.) $)
    filfbas $p |- ( F e. ( Fil ` X ) -> F e. ( fBas ` X ) ) $=
      ( vx cfil cfv wcel cfbas cv cpw cin c0 wne wi wral isfil simplbi ) ABDEFA
      BGEFACHZIJKLQAFMCBINCABOP $.
  $}

  $( The empty set doesn't belong to a filter.  (Contributed by FL,
     20-Jul-2007.)  (Revised by Mario Carneiro, 28-Jul-2015.) $)
  0nelfil $p |- ( F e. ( Fil ` X ) -> -. (/) e. F ) $=
    ( cfil cfv wcel cfbas c0 wn filfbas 0nelfb syl ) ABCDEABFDEGAEHABIBAJK $.

  $( An element of a filter is nonempty.  (Contributed by FL, 24-May-2011.)
     (Revised by Mario Carneiro, 28-Jul-2015.) $)
  fileln0 $p |- ( ( F e. ( Fil ` X ) /\ A e. F ) -> A =/= (/) ) $=
    ( wcel c0 wn wne cfil cfv id 0nelfil nelne2 syl2anr ) ABDZNEBDFAEGBCHIDNJBC
    KAEBLM $.

  $( A filter is a subset of the power set of the base set.  (Contributed by
     Stefan O'Rear, 28-Jul-2015.) $)
  filsspw $p |- ( F e. ( Fil ` X ) -> F C_ ~P X ) $=
    ( cfil cfv wcel cfbas cpw wss filfbas fbsspw syl ) ABCDEABFDEABGHABIBAJK $.

  $( An element of a filter is a subset of the base set.  (Contributed by
     Stefan O'Rear, 28-Jul-2015.) $)
  filelss $p |- ( ( F e. ( Fil ` X ) /\ A e. F ) -> A C_ X ) $=
    ( cfil cfv wcel cfbas wss filfbas fbelss sylan ) BCDEFBCGEFABFACHBCICBAJK
    $.

  ${
    $d B x $.  $d F x $.  $d X x $.
    $( A filter is closed under taking supersets.  (Contributed by FL,
       20-Jul-2007.)  (Revised by Stefan O'Rear, 28-Jul-2015.) $)
    filss $p |- ( ( F e. ( Fil ` X ) /\ ( A e. F /\ B C_ X /\ A C_ B ) ) ->
        B e. F ) $=
      ( vx cfil cfv wcel wss w3a wa cv cpw cin c0 wne wi wral cfbas isfil simp2
      simprbi adantr elfvdm elpw2g biimpar syl2an simpr1 simpr3 wb elpwg mpbird
      cdm syl inelcm syl2anc wceq pweq ineq2d neeq1d eleq1 imbi12d rspccv syl3c
      ) CDFGHZACHZBDIZABIZJZKZCELZMZNZOPZVKCHZQZEDMZRZBVQHZCBMZNZOPZBCHZVEVRVIV
      ECDSGHVRECDTUBUCVEDFUMZHZVGVSVICDFUDVFVGVHUAWEVSVGBDWDUEUFUGVJVFAVTHZWBVE
      VFVGVHUHZVJWFVHVEVFVGVHUIVJVFWFVHUJWGABCUKUNULACVTUOUPVPWBWCQEBVQVKBUQZVN
      WBVOWCWHVMWAOWHVLVTCVKBURUSUTVKBCVAVBVCVD $.
  $}

  ${
    $d A x $.  $d B x $.  $d F x $.  $d X x $.
    $( A filter is closed under taking intersections.  (Contributed by FL,
       20-Jul-2007.)  (Revised by Stefan O'Rear, 28-Jul-2015.) $)
    filin $p |- ( ( F e. ( Fil ` X ) /\ A e. F /\ B e. F ) ->
        ( A i^i B ) e. F ) $=
      ( vx cfil cfv wcel w3a cv cin wss cfbas filfbas fbasssin syl3an1 wi inss1
      wrex wa filelss syl5ss filss 3exp2 com23 imp rexlimdv syldan 3adant3 mpd
      ) CDFGHZACHZBCHZIEJZABKZLZECSZUOCHZUKCDMGHULUMUQCDNEABCDOPUKULUQURQZUMUKU
      LUODLZUSUKULTUOADABRACDUAUBUKUTTUPURECUKUTUNCHZUPURQZQUKVAUTVBUKVAUTUPURU
      NUOCDUCUDUEUFUGUHUIUJ $.
  $}

  ${
    $d F x $.  $d X x $.
    $( The underlying set belongs to the filter.  (Contributed by FL,
       20-Jul-2007.)  (Revised by Stefan O'Rear, 28-Jul-2015.) $)
    filtop $p |- ( F e. ( Fil ` X ) -> X e. F ) $=
      ( vx cfil cfv wcel c0 wne cfbas filfbas fbasne0 syl cv wex n0 wss filelss
      wa wi mpd ssid filss 3exp2 imp mpi ex exlimdv syl5bi ) ABDEFZAGHZBAFZUIAB
      IEFUJABJBAKLUJCMZAFZCNUIUKCAOUIUMUKCUIUMUKUIUMRZULBPZUKULABQUNBBPZUOUKSZB
      UAUIUMUPUQSUIUMUPUOUKULBABUBUCUDUETUFUGUHT $.
  $}

  ${
    $d F x y z $.  $d X x y z $.
    $( Derive the standard axioms of a filter.  (Contributed by Mario Carneiro,
       27-Nov-2013.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    isfil2 $p |- ( F e. ( Fil ` X ) <->
        ( ( F C_ ~P X /\ -. (/) e. F /\ X e. F ) /\
          A. x e. ~P X ( E. y e. F y C_ x -> x e. F ) /\
          A. x e. F A. y e. F ( x i^i y ) e. F ) ) $=
      ( vz cfv wcel cpw wss c0 w3a cv wrex wi wral cin 3jca elpwi wa ralimi imp
      cfil wn filsspw 0nelfil filtop filss 3exp2 com23 rexlimdv ralrimiva filin
      sylan2 3expb ralrimivva cfbas wne wnel simp11 simp13 simp12 df-nel sylibr
      ne0i syl ssid sseq1 rspcev mpan2 3ad2ant3 wb isfbas2 mpbir2and wex anim2i
      n0 elin sylbi eximi df-rex imim1i 3ad2ant2 isfil sylanbrc impbii ) CDUBFG
      ZCDHZIZJCGUCZDCGZKZBLZALZIZBCMZWMCGZNZAWGOZWMWLPZCGZBCOZACOZKZWFWKWRXBWFW
      HWIWJCDUDCDUECDUFQWFWQAWGWMWGGWFWMDIZWQWMDRWFXDSWNWPBCWFXDWLCGZWNWPNZNWFX
      EXDXFWFXEXDWNWPWLWMCDUGUHUIUAUJUMUKWFWTABCCWFWPXEWTWMWLCDULUNUOQXCCDUPFGZ
      CWMHZPZJUQZWPNZAWGOZWFXCXGWHCJUQZJCURZELZWSIZECMZBCOZACOZKZWHWIWJWRXBUSXC
      XMXNXSXCWJXMWHWIWJWRXBUTZCDVDVEXCWIXNWHWIWJWRXBVAJCVBVCXBWKXSWRXAXRACWTXQ
      BCWTWSWSIZXQWSVFXPYBEWSCXOWSWSVGVHVITTVJQXCWJXGWHXTSVKYAABECDCVLVEVMWRWKX
      LXBWQXKAWGXJWOWPXJXEWNSZBVNZWOXJWLXIGZBVNYDBXIVPYEYCBYEXEWLXHGZSYCWLCXHVQ
      YFWNXEWLWMRVOVRVSVRWNBCVTVCWATWBACDWCWDWE $.
  $}

  ${
    $d x y A $.  $d z A $.  $d x y F $.  $d y z F $.  $d x y ph $.
    $d y z ph $.  $d y ps $.  $d y B $.
    isfild.1 $e |- ( ph -> ( x e. F <-> ( x C_ A /\ ps ) ) ) $.
    isfild.2 $e |- ( ph -> A e. _V ) $.
    $( Lemma for ~ isfild .  (Contributed by Mario Carneiro, 1-Dec-2013.) $)
    isfildlem $p |- ( ph -> ( B e. F <-> ( B C_ A /\ [. B / x ]. ps ) ) ) $=
      ( vy cvv wcel wss wsbc wa wi wb cv eleq1 sseq1 nfv elex a1i ssexg adantrd
      expcom syl wceq dfsbcq anbi12d bibi12d nfsbc1v nfan nfbi nfim weq sbceq1a
      imbi2d chvar vtoclg com12 pm5.21ndd ) AEJKZEFKZEDLZBCEMZNZVCVBOAEFUAUBAVD
      VBVEADJKZVDVBOHVDVGVBEDJUCUEUFUDVBAVCVFPZAIQZFKZVIDLZBCVIMZNZPZOZAVHOIEJV
      IEUGZVNVHAVPVJVCVMVFVIEFRVPVKVDVLVEVIEDSBCVIEUHUIUJUQACQZFKZVQDLZBNZPZOVO
      CIAVNCACTVJVMCVJCTVKVLCVKCTBCVIUKULUMUNCIUOZWAVNAWBVRVJVTVMVQVIFRWBVSVKBV
      LVQVIDSBCVIUPUIUJUQGURUSUTVA $.

    isfild.3 $e |- ( ph -> [. A / x ]. ps ) $.
    isfild.4 $e |- ( ph -> -. [. (/) / x ]. ps ) $.
    isfild.5 $e |- ( ( ph /\ y C_ A /\ z C_ y ) ->
                     ( [. z / x ]. ps -> [. y / x ]. ps ) ) $.
    isfild.6 $e |- ( ( ph /\ y C_ A /\ z C_ A )
      -> ( ( [. y / x ]. ps /\ [. z / x ]. ps )
          -> [. ( y i^i z ) / x ]. ps ) ) $.
    $( Sufficient condition for a set of the form ` { x e. ~P A | ph } ` to be
       a filter.  (Contributed by Mario Carneiro, 1-Dec-2013.)  (Revised by
       Stefan O'Rear, 2-Aug-2015.) $)
    isfild $p |- ( ph -> F e. ( Fil ` A ) ) $=
      ( wss c0 wcel wi wa wsbc isfildlem cpw wn w3a cv wrex wral cin cfil selpw
      biimpri adantr syl6bi ssrdv simpr mtod ssid jctil mpbird 3jca elpwi simp2
      jctild adantld wb 3ad2ant1 3imtr4d 3expa impancom rexlimdva syl5 ralrimiv
      cfv ex ssinss1 ad2antrr a1i 3expb expimpd syl5bi anbi12d ralrimivv isfil2
      an4 jcad syl3anbrc ) AGFUAZNZOGPZUBZFGPZUCEUDZDUDZNZEGUEWLGPZQZDWFUFWLWKU
      GZGPZEGUFDGUFGFUHVLPAWGWIWJACGWFACUDZGPWRFNZBRWRWFPZHWSWTBWTWSCFUIUJUKULU
      MAWHBCOSZKAWHOFNZXARXAABCFOGHITXBXAUNULUOAWJFFNZBCFSZRAXDXCJFUPUQABCFFGHI
      TURUSAWODWFWLWFPWLFNZAWOWLFUTAXEWOAXERZWMWNEGXFWMWKGPZWNAXEWMXGWNQAXEWMUC
      ZWKFNZBCWKSZRZXEBCWLSZRZXGWNXHXJXMXIXHXJXLXELAXEWMVAVBVCAXEXGXKVDWMABCFWK
      GHITZVEAXEWNXMVDWMABCFWLGHITZVEVFVGVHVIVMVJVKAWQDEGGAXMXKRZWPFNZBCWPSZRWN
      XGRWQAXPXQXRXPXQQAXEXQXLXKWLWKFVNVOVPXPXEXIRZXLXJRZRAXRXEXLXIXJWCAXSXTXRA
      XEXIXTXRQMVQVRVSWDAWNXMXGXKXOXNVTABCFWPGHITVFWADEGFWBWE $.
  $}

  ${
    $d F x y $.  $d X x y $.
    $( A filter is closed under taking intersections.  (Contributed by Mario
       Carneiro, 27-Nov-2013.)  (Revised by Stefan O'Rear, 28-Jul-2015.) $)
    filfi $p |- ( F e. ( Fil ` X ) -> ( fi ` F ) = F ) $=
      ( vx vy cfil cfv wcel cv cin wral cfi filin 3expib ralrimivv inficl mpbid
      wceq ) ABEFZGZCHZDHZIAGZDAJCAJAKFAQSUBCDAASTAGUAAGUBTUAABLMNCDAROP $.
  $}

  $( The intersection of two elements of a filter can't be empty.  (Contributed
     by FL, 16-Sep-2007.)  (Revised by Stefan O'Rear, 28-Jul-2015.) $)
  filinn0 $p |- ( ( F e. ( Fil ` X ) /\ A e. F /\ B e. F ) ->
      ( A i^i B ) =/= (/) ) $=
    ( cfil cfv wcel w3a cin c0 wne simp1 filin fileln0 syl2anc ) CDEFGZACGZBCGZ
    HPABIZCGSJKPQRLABCDMSCDNO $.

  $( A filter has the finite intersection property.  Remark below definition 1
     of [BourbakiTop1] p.  I.36.  (Contributed by FL, 20-Sep-2007.)  (Revised
     by Stefan O'Rear, 28-Jul-2015.) $)
  filintn0 $p |- ( ( F e. ( Fil ` X ) /\ ( A C_ F /\ A =/= (/) /\
          A e. Fin ) ) -> |^| A =/= (/) ) $=
    ( cfil cfv wcel wss c0 wne cfn w3a cint cfi elfir wceq filfi adantr eleqtrd
    wa fileln0 syldan ) BCDEZFZABGAHIAJFKZALZBFUEHIUCUDSUEBMEZBABUBNUCUFBOUDBCP
    QRUEBCTUA $.

  $( The empty set is not a filter.  Remark below def. 1 of [BourbakiTop1] p.
     I.36.  (Contributed by FL, 30-Oct-2007.)  (Revised by Stefan O'Rear,
     28-Jul-2015.) $)
  filn0 $p |- ( F e. ( Fil ` X ) -> F =/= (/) ) $=
    ( cfil cfv wcel c0 wne filtop ne0i syl ) ABCDEBAEAFGABHABIJ $.

  ${
    $d F x y $.  $d G x y $.  $d X x y $.
    $( The intersection of two filters is a filter.  Use ~ fiint to extend this
       property to the intersection of a finite set of filters.  Paragraph 3 of
       [BourbakiTop1] p.  I.36.  (Contributed by FL, 17-Sep-2007.)  (Revised by
       Stefan O'Rear, 2-Aug-2015.) $)
    infil $p |- ( ( F e. ( Fil ` X ) /\ G e. ( Fil ` X ) ) ->
        ( F i^i G ) e. ( Fil ` X ) ) $=
      ( vy vx wcel wa cin wss c0 wn w3a cv wral adantr sseli filtop elind syl
      wi cfil cfv cpw wrex inss1 filsspw syl5ss 0nelfil nsyl adantl 3jca simpll
      simpr2 simpr1 elpwid simpr3 filss syl13anc inss2 3exp2 rexlimdv ralrimiva
      simplr simpl anim12i filin 3expb syl2an simpr ralrimivva isfil2 syl3anbrc
      imp ) ACUAUBZFZBVNFZGZABHZCUCZIZJVRFZKZCVRFZLDMZEMZIZDVRUDWEVRFZTZEVSNWEW
      DHZVRFZDVRNEVRNVRVNFVQVTWBWCVQVRAVSABUEZVOAVSIVPACUFOUGVQJAFZWAVOWLKVPACU
      HOVRAJWKPUIVQABCVOCAFVPACQOVPCBFVOBCQUJRUKVQWHEVSVQWEVSFZGWFWGDVRVQWMWDVR
      FZWFWGTTVQWMWNWFWGVQWMWNWFLZGZABWEWPVOWDAFZWECIZWFWEAFZVOVPWOULWPWNWQVQWM
      WNWFUMZVRAWDWKPZSWPWECVQWMWNWFUNUOZVQWMWNWFUPZWDWEACUQURWPVPWDBFZWRWFWEBF
      ZVOVPWOVCWPWNXDWTVRBWDABUSZPZSXBXCWDWEBCUQURRUTVMVAVBVQWJEDVRVRVQWGWNGZGA
      BWIVQVOWSWQGWIAFZXHVOVPVDWGWSWNWQVRAWEWKPXAVEVOWSWQXIWEWDACVFVGVHVQVPXEXD
      GWIBFZXHVOVPVIWGXEWNXDVRBWEXFPXGVEVPXEXDXJWEWDBCVFVGVHRVJEDVRCVKVL $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( A singleton is a filter.  Example 1 of [BourbakiTop1] p.  I.36.
       (Contributed by FL, 16-Sep-2007.)  (Revised by Stefan O'Rear,
       2-Aug-2015.) $)
    snfil $p |- ( ( A e. B /\ A =/= (/) ) -> { A } e. ( Fil ` A ) ) $=
      ( vx vy wcel c0 wa cv wceq wss wb a1i cvv adantr wsbc eqsbc3 ax-mp w3a wi
      cin wne csn velsn eqimss pm4.71ri bitri elex eqid mpbiri simpr necomd 0ex
      neneqd sylnibr sseq1 anbi2d eqss biimpri syl6bi com12 3adant1 vex 3imtr4g
      sbcid ineq12 inidm syl6eq syl2anb inex1 sylibr isfild ) ABEZAFUAZGZCHZAIZ
      CDCAAUBZVOVQEZVOAJZVPGZKVNVRVPVTCAUCVPVSVOAUDUEUFLVLAMEVMABUGNVLVPCAOZVMV
      LWAAAIAUHCAABPUINVNFAIZVPCFOZVNFAVNAFVLVMUJUKUMFMEWCWBKULCFAMPQUNVNDHZAJZ
      VOWDJZRVPWDAIZVPCVOOZVPCWDOZWEWFVPWGSVNVPWEWFGZWGVPWJWEAWDJZGZWGVPWFWKWEV
      OAWDUOUPWGWLWDAUQURUSUTVAVPCVDZWDMEWIWGKDVBZCWDAMPQZVCWIWHGZVPCWDVOTZOZSV
      NWEVSRWPWQAIZWRWIWGVPWSWHWOWMWGVPGWQAATAWDAVOAVEAVFVGVHWQMEWRWSKWDVOWNVIC
      WQAMPQVJLVK $.
  $}

  ${
    $d x y F $.  $d x y X $.  $d x y Y $.
    $( A filter base on any set is also a filter base on any larger set.
       (Contributed by Stefan O'Rear, 2-Aug-2015.) $)
    fbasweak $p |- ( ( F e. ( fBas ` X ) /\ F C_ ~P Y /\ Y e. V ) ->
        F e. ( fBas ` Y ) ) $=
      ( vx vy cfbas cfv wcel cpw wss w3a c0 wne cv cin wral wa wb isfbas elfvdm
      wnel simp2 simp1 cdm 3ad2ant1 syl mpbid simprd 3ad2ant3 mpbir2and ) ACGHI
      ZADJKZDBIZLZADGHIZUMAMNMAUBAEOFOPJPMNFAQEAQLZULUMUNUCUOACJKZUQUOULURUQRZU
      LUMUNUDUOCGUEZIZULUSSULUMVAUNACGUAUFEFUTCATUGUHUIUNULUPUMUQRSUMEFBDATUJUK
      $.

    $( Condition for a singleton to be a filter base.  (Contributed by Stefan
       O'Rear, 2-Aug-2015.) $)
    snfbas $p |- ( ( A C_ B /\ A =/= (/) /\ B e. V ) ->
        { A } e. ( fBas ` B ) ) $=
      ( wss wne wcel w3a csn cfbas cfv cpw cfil cvv ssexg 3adant2 simp2 syl2anc
      c0 snfil filfbas syl simp1 wb elpw2g 3ad2ant3 mpbird snssd simp3 fbasweak
      syl3anc ) ABDZAREZBCFZGZAHZAIJFZUOBKZDUMUOBIJFUNUOALJFZUPUNAMFZULURUKUMUS
      ULABCNOUKULUMPAMSQUOATUAUNAUQUNAUQFZUKUKULUMUBUMUKUTUKUCULABCUDUEUFUGUKUL
      UMUHUOCABUIUJ $.
  $}

  ${
    $d x y z A $.  $d x y V $.  $d x y z X $.
    $( A condition for a set to generate a filter base.  (Contributed by Jeff
       Hankins, 2-Sep-2009.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    fsubbas $p |- ( X e. V -> ( ( fi ` A ) e. ( fBas ` X ) <->
          ( A C_ ~P X /\ A =/= (/) /\ -. (/) e. ( fi ` A ) ) ) ) $=
      ( vz vx vy wcel cfi cfv wss c0 wne w3a cvv syl syl2anc 3jca wa cv wral wn
      cfbas cpw fbasne0 fvprc ssfii fbsspw sstrd fieq0 necon3bid biimpar 0nelfb
      necon1ai wnel wrex simpr1 fipwss pwexg adantr simpr2 biimpa simpr3 df-nel
      cin ssexd sylibr fiin ssid rspcev sylancl rgen2a a1i wb isfbas2 mpbir2and
      sseq1 ex impbid2 ) CBGZAHIZCUBIGZACUCZJZAKLZKVTGUAZMZWAWCWDWEWAAVTWBWAANG
      ZAVTJWAVTKLZWGCVTUDZWGVTKAHUEUMOZANUFOCVTUGUHWAWGWHWDWJWIWGWDWHWGAKVTKANU
      IUJZUKPCVTULQVSWFWAVSWFRZWAVTWBJZWHKVTUNZDSZESZFSZVDZJZDVTUOZFVTTEVTTZMZW
      LWCWMVSWCWDWEUPZACUQOWLWHWNXAWLWGWDWHWLAWBNVSWBNGWFCBURUSXCVEVSWCWDWEUTWG
      WDWHWKVAPWLWEWNVSWCWDWEVBKVTVCVFXAWLWTEFVTWPVTGWQVTGRWRVTGWRWRJZWTWPWQAVG
      WRVHWSXDDWRVTWOWRWRVPVIVJVKVLQVSWAWMXBRVMWFEFDBCVTVNUSVOVQVR $.
  $}

  ${
    $d y z F $.  $d y z X $.
    $( A filter base has the finite intersection property.  (Contributed by
       Jeff Hankins, 2-Sep-2009.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    fbasfip $p |- ( F e. ( fBas ` X ) -> -. (/) e. ( fi ` F ) ) $=
      ( vy vz cfbas cfv wcel c0 cfi cv cint wceq cfn wrex wa wss wn wi mtod cvv
      cpw cin elin elpwi anim1i sylbi fbssint 3expb sylan2 0nelfb eleq1 biimpcd
      ad2antrr adantl ss0 nsyl adantrr sseq2 biimprcd ad2antll rexlimddv nrexdv
      wb 0ex elfi mpan mtbird ) ABEFZGZHAIFGZHCJZKZLZCAUAZMUBZNZVIVMCVOVIVKVOGZ
      OZDJZVLPZVMQDAVQVIVKAPZVKMGZOZVTDANZVQVKVNGZWBOWCVKVNMUCWEWAWBVKAUDUEUFVI
      WAWBWDDVKBAUGUHUIVRVSAGZVTOOVMVSHPZVRWFWGQVTVRWFOZVSHLZWGWHWIHAGZVIWJQVQW
      FBAUJUMWFWIWJRVRWIWFWJVSHAUKULUNSVSUOUPUQVTVMWGRVRWFVMWGVTHVLVSURUSUTSVAV
      BHTGVIVJVPVCVDCHATVHVEVFVG $.
  $}

  ${
    $d w x y z G $.  $d x y z F $.  $d w x y z X $.  $d w x y z Y $.
    $( A helpful lemma for showing that certain sets generate filters.
       (Contributed by Jeff Hankins, 3-Sep-2009.)  (Revised by Stefan O'Rear,
       2-Aug-2015.) $)
    fbunfip $p |- ( ( F e. ( fBas ` X ) /\ G e. ( fBas ` Y ) ) ->
                    ( -. (/) e. ( fi ` ( F u. G ) ) <->
                      A. x e. F A. y e. G ( x i^i y ) =/= (/) ) ) $=
      ( vz vw cfv wcel wa c0 wn cv wceq wrex wral wss wi syl cun cfi cin elfiun
      cfbas wne w3o notbid w3a 3ioran df-3an bitr2i syl6bbr nesym ralbii ralnex
      bitri fbasfip anim12i biantrurd syl5rbb ssfii ssralv ralimdv sylan9 ineq1
      neeq1d ineq2 cbvral2v fbssfi r19.29 ss2in sseq2 syl6bi syl5com necon3d ex
      ss0 com13 rexlimivw impancom expimpd syl2an an4s ralrimdvva syl5bi impbid
      imp com12 3bitrd ) CEUEIZJZDFUEIZJZKZLCDUAUBIJZMZLCUBIZJZMZLDUBIZJZMZKZLA
      NZBNZUCZOZBXAPZAWRPZMZKZXGLUFZBXAQZAWRQZXMBDQZACQZWOWQWSXBXJUGZMZXLWOWPXR
      ABLCDWKWMUDUHXSWTXCXKUIXLWSXBXJUJWTXCXKUKULUMXOXKWOXLXOXIMZAWRQXKXNXTAWRX
      NXHMZBXAQXTXMYABXAXGLUNUOXHBXAUPUQUOXIAWRUPUQWOXDXKWLWTWNXCCEURDFURUSUTVA
      WOXOXQWLXOXNACQZWNXQWLCWRRXOYBSCWKVBXNACWRVCTWNXNXPACWNDXARXNXPSDWMVBXMBD
      XAVCTVDVEXQGNZHNZUCZLUFZHDQZGCQZWOXOXMYFYCXFUCZLUFABGHCDXEYCOXGYILXEYCXFV
      FVGXFYDOYIYELXFYDYCVHVGVIWOYHXMABWRXAWLXEWRJZWNXFXAJZYHXMSZWLYJKYCXERZGCP
      ZYDXFRZHDPZYLWNYKKGXECEVJHXFDFVJYHYNYPKXMYHYNYPXMYHYNKYGYMKZGCPYPXMSZYGYM
      GCVKYQYRGCYGYPYMXMYGYPKYFYOKZHDPYMXMSZYFYOHDVKYSYTHDYFYOYTYMYOYFXMYMYOYFX
      MSYMYOKZXGLYELUUAYEXGRZXGLOZYELOZYCXEYDXFVLUUCUUBYELRUUDXGLYEVMYEVRVNVOVP
      VQVSWHVTTWAVTTWBWIWCWDWEWFWGWJ $.
  $}

  ${
    $d f v x F $.  $d f v x X $.
    $( The filter generating class gives a filter for every filter base.
       (Contributed by Jeff Hankins, 3-Sep-2009.)  (Revised by Stefan O'Rear,
       2-Aug-2015.) $)
    fgval $p |- ( F e. ( fBas ` X ) -> ( X filGen F ) =
          { x e. ~P X | ( F i^i ~P x ) =/= (/) } ) $=
      ( vv vf cfbas cfv wcel cvv cv cpw cin c0 wne crab cmpt2 wceq df-fg adantl
      cfg wa pweq adantr wb ineq1 neeq1d rabeqbidv fveq2 elfvex id elfvdm pwexg
      a1i cdm rabexg 3syl ovmpt2dx ) BCFGZHZDECBIDJZFGZEJZAJKZLZMNZAUTKZOZBVCLZ
      MNZACKZOZTURITDEIVAVGPQUSEADRUMUTCQZVBBQZUAZVGVKQUSVNVEVIAVFVJVLVFVJQVMUT
      CUBUCVMVEVIUDVLVMVDVHMVBBVCUEUFSUGSVLVAURQUSUTCFUHSBCFUIUSUJUSCFUNZHVJIHV
      KIHBCFUKCVOULVIAVJIUOUPUQ $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d y X $.
    $( A condition for elements of a generated filter.  (Contributed by Jeff
       Hankins, 3-Sep-2009.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    elfg $p |- ( F e. ( fBas ` X ) -> ( A e. ( X filGen F ) <->
          ( A C_ X /\ E. x e. F x C_ A ) ) ) $=
      ( vy cfbas cfv wcel cfg co cv cpw cin c0 wne crab wss wa wb wex wrex wceq
      fgval eleq2d pweq ineq2d neeq1d elrab cdm elfvdm elpw2g elin selpw anbi2i
      syl bitri exbii n0 df-rex 3bitr4i a1i anbi12d syl5bb bitrd ) CDFGHZBDCIJZ
      HBCEKZLZMZNOZEDLZPZHZBDQZAKZBQZACUAZRZVEVFVLBECDUCUDVMBVKHZCBLZMZNOZRVEVR
      VJWBEBVKVGBUBZVIWANWCVHVTCVGBUEUFUGUHVEVSVNWBVQVEDFUIZHVSVNSCDFUJBDWDUKUO
      WBVQSVEVOWAHZATVOCHZVPRZATWBVQWEWGAWEWFVOVTHZRWGVOCVTULWHVPWFABUMUNUPUQAW
      AURVPACUSUTVAVBVCVD $.
  $}

  ${
    $d t x F $.  $d t x X $.
    $( A filter base is a subset of its generated filter.  (Contributed by Jeff
       Hankins, 3-Sep-2009.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    ssfg $p |- ( F e. ( fBas ` X ) -> F C_ ( X filGen F ) ) $=
      ( vt vx cfbas cfv wcel cfg co cv wss wrex wa fbelss ex sseq1 rspcev mpan2
      wi ssid a1i jcad elfg sylibrd ssrdv ) ABEFGZCABAHIZUFCJZAGZUHBKZDJZUHKZDA
      LZMUHUGGUFUIUJUMUFUIUJBAUHNOUIUMSUFUIUHUHKZUMUHTULUNDUHAUKUHUHPQRUAUBDUHA
      BUCUDUE $.
  $}

  ${
    $d t x F $.  $d t x G $.  $d t x X $.
    $( A bigger base generates a bigger filter.  (Contributed by NM,
       5-Sep-2009.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    fgss $p |- ( ( F e. ( fBas ` X ) /\ G e. ( fBas ` X ) /\ F C_ G ) ->
        ( X filGen F ) C_ ( X filGen G ) ) $=
      ( vt vx cfbas cfv wcel wss w3a cfg co cv wrex wa wi ssrexv anim2d wb elfg
      3ad2ant3 3ad2ant1 3ad2ant2 3imtr4d ssrdv ) ACFGZHZBUFHZABIZJZDCAKLZCBKLZU
      JDMZCIZEMUMIZEANZOZUNUOEBNZOZUMUKHZUMULHZUIUGUQUSPUHUIUPURUNUOEABQRUAUGUH
      UTUQSUIEUMACTUBUHUGVAUSSUIEUMBCTUCUDUE $.
  $}

  ${
    $d t u v x y F $.  $d t u v x y G $.  $d t u v x y X $.
    $( A condition for a filter to be finer than another involving their filter
       bases.  (Contributed by Jeff Hankins, 3-Sep-2009.)  (Revised by Stefan
       O'Rear, 2-Aug-2015.) $)
    fgss2 $p |- ( ( F e. ( fBas ` X ) /\ G e. ( fBas ` X ) ) ->
        ( ( X filGen F ) C_ ( X filGen G ) <->
          A. x e. F E. y e. G y C_ x ) ) $=
      ( vt vu vv wcel wa cfg co wss cv wrex adantr wi elfg adantl rexlimdv wral
      cfbas cfv ssfg sseld ssel2 simpr syl6bi syl5 syl5d ralrimdv sseq2 rexbidv
      expd weq rspcv sstr sseq1 rspcev a1d ancld exp45 syld impancom com23 impd
      sylanr2 wb 3imtr4d ssrdv ex impbid ) CEUBUCZIZDVMIZJZECKLZEDKLZMZBNZANZMZ
      BDOZACUAZVPVSWCACVPWACIWAVQIZVSWCVPCVQWAVNCVQMVOCEUDPUEVPVSWEWCVSWEJWAVRI
      ZVPWCVQVRWAUFVOWFWCQVNVOWFWAEMZWCJWCBWADERWGWCUGUHSUIUNUJUKVPWDVSVPWDJZFV
      QVRWHFNZEMZGNZWIMZGCOZJZWJHNZWIMZHDOZJZWIVQIZWIVRIZWHWJWMWRWHWMWJWRWHWLWJ
      WRQZGCVPWKCIZWDWLXAQZVPXBJZWDVTWKMZBDOZXCXBWDXFQVPWCXFAWKCAGUOWBXEBDWAWKV
      TULUMUPSXDXEXCBDXDVTDIZXEWLXAXDXGXEWLJZJJWJWQXHXDXGVTWIMZWJWQQVTWKWIUQXDX
      GXIJZJWQWJXJWQXDWPXIHVTDWOVTWIURUSSUTVGVAVBTVCVDTVEVFVPWSWNVHZWDVNXKVOGWI
      CERPPVPWTWRVHZWDVOXLVNHWIDERSPVIVJVKVL $.
  $}

  ${
    $d t x F $.  $d t x X $.  $d t A $.
    $( A filter generates itself.  (Contributed by Jeff Hankins, 5-Sep-2009.)
       (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    fgfil $p |- ( F e. ( Fil ` X ) -> ( X filGen F ) = F ) $=
      ( vt vx cfil cfv wcel cfg co cv wss wrex wa cfbas wb filfbas syl wi filss
      elfg 3exp2 com34 rexlimdv com23 impd sylbid ssrdv ssfg eqssd ) ABEFGZBAHI
      ZAUJCUKAUJCJZUKGZULBKZDJZULKZDALZMZULAGZUJABNFGZUMUROABPZDULABTQUJUNUQUSU
      JUQUNUSUJUPUNUSRDAUJUOAGZUNUPUSUJVBUNUPUSUOULABSUAUBUCUDUEUFUGUJUTAUKKVAA
      BUHQUI $.

    $( An element belongs to a filter iff any element below it does.
       (Contributed by Stefan O'Rear, 2-Aug-2015.) $)
    elfilss $p |- ( ( F e. ( Fil ` X ) /\ A C_ X ) ->
        ( A e. F <-> E. t e. F t C_ A ) ) $=
      ( cfil cfv wcel wss wa cv wrex cfg co wb ibar adantl cfbas filfbas adantr
      elfg syl fgfil eleq2d 3bitr2rd ) CDEFGZBDHZIAJBHACKZUFUGIZBDCLMZGZBCGZUFU
      GUHNUEUFUGOPUEUJUHNZUFUECDQFGULCDRABCDTUASUEUJUKNUFUEUICBCDUBUCSUD $.
  $}

  ${
    $( No filter containing a finite element is free.  (Contributed by Jeff
       Hankins, 5-Dec-2009.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    filfinnfr $p |- ( ( F e. ( Fil ` X ) /\ S e. F /\ S e. Fin ) ->
        |^| F =/= (/) ) $=
      ( cfil cfv wcel cfbas cfn cint c0 wne filfbas fbfinnfr syl3an1 ) BCDEFBCG
      EFABFAHFBIJKBCLCABMN $.
  $}

  ${
    $d u v w x y z F $.  $d u v w x y z X $.  $d x y z Y $.
    $( A generated filter is a filter.  (Contributed by Jeff Hankins,
       3-Sep-2009.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    fgcl $p |- ( F e. ( fBas ` X ) -> ( X filGen F ) e. ( Fil ` X ) ) $=
      ( vy vz vu vv vw cfbas wcel cv wss wrex wsbc wa c0 sseq2 rexbidv sbcie wi
      wceq cfv cfg co elfg elfvex wex wne fbasne0 n0 sylib fbelss ex eximdv mpd
      ancld df-rex sylibr cdm wb elfvdm sbcieg syl mpbird 0nelfb 0ex ss0 eleq1d
      biimpac rexlimiva sylbi nsyl w3a sstr expcom reximdv 3ad2ant3 vex 3imtr4g
      weq cin fbasssin 3expib sstr2 com12 ss2in syl11 syl6 exp5c imp31 impancom
      rexlimdv rexlimdva impd 3ad2ant1 sseq1 cbvrexv bitri anbi12i inex1 isfild
      ) ABHUAIZCJZDJZKZCALZDEFBBAUBUCCXCABUDABHUEXAXEDBMZXBBKZCALZXAXBAIZXGNZCU
      FZXHXAXICUFZXKXAAOUGXLBAUHCAUIUJXAXIXJCXAXIXGXAXIXGBAXBUKULUOUMUNXGCAUPUQ
      XABHURZIXFXHUSABHUTXEXHDBXMXCBTXDXGCAXCBXBPQVAVBVCXAOAIZXEDOMZBAVDXOXBOKZ
      CALZXNXEXQDOVEXCOTXDXPCAXCOXBPQRXPXNCAXPXIXNXPXBOAXBVFVGVHVIVJVKXAEJZBKZF
      JZXRKZVLXBXTKZCALZXBXRKZCALZXEDXTMZXEDXRMZYAXAYCYESXSYAYBYDCAYBYAYDXBXTXR
      VMVNVOVPXEYCDXTFVQDFVSXDYBCAXCXTXBPQRZXEYEDXREVQZDEVSXDYDCAXCXRXBPQRZVRXA
      XSXTBKZVLXCXRKZDALZGJZXTKZGALZNZXBXRXTVTZKZCALZYGYFNXEDYRMXAXSYQYTSYKXAYM
      YPYTXAYLYPYTSZDAXAXCAIZNZYLUUAUUCYLNYOYTGAUUCYNAIZYLYOYTSZXAUUBUUDYLUUESX
      AUUBUUDYLYOYTXAUUBUUDNXBXCYNVTZKZCALZYLYONZYTSXAUUBUUDUUHCXCYNABWAWBUUFYR
      KZUUHYTUUIUUJUUGYSCAUUGUUJYSXBUUFYRWCWDVOXCXRYNXTWEWFWGWHWIWJWKULWLWMWNYG
      YMYFYPYGYEYMYJYDYLCDAXBXCXRWOWPWQYFYCYPYHYBYOCGAXBYNXTWOWPWQWRXEYTDYRXRXT
      YIWSXCYRTXDYSCAXCYRXBPQRVRWT $.

    $( Absorption law for filter generation.  (Contributed by Mario Carneiro,
       15-Oct-2015.) $)
    fgabs $p |- ( ( F e. ( fBas ` Y ) /\ Y C_ X ) ->
        ( X filGen ( Y filGen F ) ) = ( X filGen F ) ) $=
      ( vx vy vz vw cfbas cfv wcel wss wa cvv cfg co cv cpw syl sstrd syl3anc
      wceq wrex cfil simpll fgcl filfbas 3syl fbsspw sspwb sylib simpr fbasweak
      wb simplr elfg adantr ad2antrr ssfg sselda adantrr simplrl simprlr simprr
      filss syl13anc expr rexlimdvaa anassrs expimpd sylbid rexlimdv ssrdv fgss
      wi eqssd ex wn c0 cin wne crab df-fg reldmmpt2 ovprc1 eqtr4d pm2.61d1 ) A
      CHIZJZCBKZLZBMJZBCANOZNOZBANOZUAZWJWKWOWJWKLZWMWNWPDWMWNWPDPZWMJZWQBKZEPZ
      WQKZEWLUBZLZWQWNJZWPWLBHIZJZWRXCUMWPWLWGJZWLBQZKWKXFWPWHWLCUCIJXGWHWIWKUD
      ZACUEWLCUFUGZWPWLCQZXHWPXGWLXKKXJCWLUHRWPWIXKXHKWHWIWKUNCBUIUJZSWJWKUKZWL
      MCBULTZEWQWLBUORWPWSXBXDWPWSLZXAXDEWLXOWTWLJZWTCKZFPZWTKZFAUBZLZXAXDVNZXO
      WHXPYAUMWPWHWSXIUPFWTACUORXOXQXTYBWPWSXQXTYBVNWPWSXQLZLZXSYBFAYDXRAJZXSLZ
      XAXDYDYFXALZLZWNBUCIJZXRWNJZWSXRWQKXDWPYIYCYGWPAXEJZYIWPWHAXHKWKYKXIWPAXK
      XHWPWHAXKKXICAUHRXLSXMAMCBULTZABUERUQYDYFYJXAYDYEYJXSYDAWNXRWPAWNKZYCWPYK
      YMYLABURRUPUSUTUTWPWSXQYGVAYHXRWTWQYDYEXSXAVBYDYFXAVCSXRWQWNBVDVEVFVGVHVI
      VJVKVIVJVLWPYKXFAWLKZWNWMKYLXNWHYNWIWKACURUQAWLBVMTVOVPWKVQWMVRWNBWLNGDMG
      PZHIWQWTQVSVRVTEYOQWANDEGWBWCZWDBANYPWDWEWF $.
  $}

  ${
    $d J x y $.  $d S x y $.  $d X x y $.
    $( The neighborhoods of a nonempty set is a filter.  Example 2 of
       [BourbakiTop1] p.  I.36.  (Contributed by FL, 18-Sep-2007.)  (Revised by
       Mario Carneiro, 23-Aug-2015.) $)
    neifil $p |- ( ( J e. ( TopOn ` X ) /\ S C_ X /\ S =/= (/) ) ->
      ( ( nei ` J ) ` S ) e. ( Fil ` X ) ) $=
      ( vy vx cfv wcel wss c0 cv wi wral wa cuni adantr sseqtrd syl2anc 3adant3
      w3a wceq ctopon wne cnei cpw wn wrex cin cfil toponuni ctop topontop eqid
      simpr neiuni eqtrd eqimss2 syl sspwuni sylibr 0nnei sylan 3adant2 eqeltrd
      tpnei biimpa 3jca elpwi ad2antrr simprl simprr simplr syl22anc rexlimdvaa
      ssnei2 sylan2 ralrimiva innei 3expib 3ad2ant1 ralrimivv isfil2 syl3anbrc
      ) BCUAFGZACHZAIUBZSZABUCFFZCUDZHZIWGGUEZCWGGZSDJZEJZHZDWGUFWMWGGZKZEWHLZW
      MWLUGWGGZDWGLEWGLWGCUHFGWFWIWJWKWCWDWIWEWCWDMZWGNZCHZWIWSCWTTXAWSCBNZWTWC
      CXBTZWDCBUIOZWSBUJGZAXBHZXBWTTWCXEWDCBUKZOZWSACXBWCWDUMXDPZABXBXBULZUNQUO
      WTCUPUQWGCURUSRWCWEWJWDWCXEWEWJXGABUTVAVBWCWDWKWEWSCXBWGXDWSXEXFXBWGGZXHX
      IXEXFXKABXBXJVDVEQVCRVFWCWDWQWEWSWPEWHWMWHGWSWMCHZWPWMCVGWSXLMZWNWODWGXMW
      LWGGZWNMZMZXEXNWNWMXBHWOWSXEXLXOXHVHXMXNWNVIXMXNWNVJXPWMCXBWSXLXOVKWSXCXL
      XOXDVHPABWMWLXBXJVNVLVMVOVPRWFWREDWGWGWCWDWOXNMWRKZWEWCXEXQXGXEWOXNWRABWL
      WMVQVRUQVSVTEDWGCWAWB $.
  $}

  ${
    $d w y z $.  $d x F $.
    $( Recover the base set from a filter.  (Contributed by Stefan O'Rear,
       2-Aug-2015.) $)
    filunibas $p |- ( F e. ( Fil ` X ) -> U. F = X ) $=
      ( cfil cfv wcel cuni wss cpw filsspw sspwuni sylib filtop unissel syl2anc
      wceq ) ABCDEZAFZBGZBAEQBOPABHGRABIABJKABLABMN $.

    $( Two ways to express a filter on an unspecified base.  (Contributed by
       Stefan O'Rear, 2-Aug-2015.) $)
    filunirn $p |- ( F e. U. ran Fil <-> F e. ( Fil ` U. F ) ) $=
      ( vx vy vw vz cfil crn cuni wcel cfv cv cvv wrex wfn wb cpw cin wne cfbas
      c0 wi wral crab rabex df-fil fnmpti fnunirn ax-mp filunibas fveq2d eleq2d
      fvex ibir rexlimivw sylbi fvssunirn sseli impbii ) AFGHZIZAAHZFJZIZUTABKZ
      FJZIZBLMZVCFLNUTVGOCLDKZEKZPQTRVIVHIUAECKZPUBZDVJSJZUCFVKDVLVJSULUDECDUEU
      FBAFLUGUHVFVCBLVFVCVFVBVEAVFVAVDFAVDUIUJUKUMUNUOVBUSAFVAUPUQUR $.
  $}

  ${
    $d x y F $.
    $( A filter gives rise to a connected topology.  (Contributed by Jeff
       Hankins, 6-Dec-2009.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    filconn $p |- ( F e. ( Fil ` X ) -> ( F u. { (/) } ) e. Conn ) $=
      ( vx vy cfil cfv wcel cuni c0 cun cin wss wral wa wn wo elun syl wceq cvv
      csn cconn id filunibas fveq2d eleqtrrd ctop ccld cpr cv wi wal wex simpll
      nss ssel2 adantll sylib orcomd ord impr uniss ad2antlr uniun unisn uneq2i
      0ex un0 3eqtrri syl6sseqr elssuni ad2antrl filss syl13anc elun1 ex syl5bi
      exlimdv uni0b ssun2 sselii eleq1 mpbiri sylbir pm2.61d2 alrimiv w3a filin
      snid 3expa ralrimiva elsni ineq2 syl6eq syl6eqel rgen ralun sylancl ineq1
      in0 0in ralrimivw wb p0ex unexg mpan2 istopg mpbir2and cdif cfbas filfbas
      cldopn fbncp sylan pm2.21d a1i13 jaod adantl ssdif0 biimpri eqss simplbi2
      imp syl2im syl5 orim12d expimpd elin elpr 3imtr4g ssrdv isconn2 sylanbrc
      vex ) ABEFZGZAAHZEFZGZAIUAZJZUBGZYPAYOYRYPUCYPYQBEABUDUEUFYSUUAUGGZUUAUUA
      UHFZKZIYQUIZLUUBYSUUCCUJZUUALZUUGHZUUAGZUKZCULZUUGDUJZKZUUAGZDUUAMZCUUAMZ
      YSUUKCYSUUHUUJYSUUHNZUUGYTLZUUJUUSOUUMUUGGZUUMYTGZOZNZDUMUURUUJDUUGYTUOUU
      RUVCUUJDUURUVCUUJUURUVCNZUUIAGZUUJUVDYSUUMAGZUUIYQLUUMUUILZUVEYSUUHUVCUNU
      URUUTUVBUVFUURUUTNZUVAUVFUVHUVFUVAUVHUUMUUAGZUVFUVAPUUHUUTUVIYSUUGUUAUUMU
      PUQUUMAYTQURUSUTVAUVDUUIUUAHZYQUUHUUIUVJLYSUVCUUGUUAVBVCUVJYQYTHZJYQIJYQA
      YTVDUVKIYQIVGVEVFYQVHVIZVJUUTUVGUURUVBUUMUUGVKVLUUMUUIAYQVMVNUUIAYTVORVPV
      RVQUUSUUIISZUUJUUGVSUVMUUJIUUAGYTUUAIYTAVTIVGWIWAZUUIIUUAWBWCWDWEVPWFYSUU
      PCAMUUPCYTMUUQYSUUPCAYSUUGAGZNZUUODAMUUODYTMUUPUVPUUODAYSUVOUVFUUOYSUVOUV
      FWGUUNAGUUOUUGUUMAYQWHUUNAYTVORWJWKUUODYTUVAUUMISZUUOUUMIWLUVQUUNIUUAUVQU
      UNUUGIKIUUMIUUGWMUUGWTWNUVNWORWPUUODAYTWQWRWKUUPCYTUUGYTGZUUGISZUUPUUGIWL
      ZUVSUUODUUAUVSUUNIUUAUVSUUNIUUMKIUUGIUUMWSUUMXAWNUVNWOXBRWPUUPCAYTWQWRYSU
      UATGZUUCUULUUQNXCYSYTTGUWAXDAYTYRTXEXFCDTUUAXGRXHYSCUUEUUFYSUUGUUAGZUUGUU
      DGZNUVSUUGYQSZPZUUGUUEGUUGUUFGYSUWBUWCUWEUWCYQUUGXIZAGZUWFYTGZPZYSUWBNZUW
      EUWCUWFUUAGUWIUUGUUAYQUVLXLUWFAYTQURUWJUWGUVSUWHUWDYSUWBUWGUVSUKZUWBUVOUV
      RPYSUWKUUGAYTQYSUVOUWKUVRYSUVOUWKUVPUWGUVSYSAYQXJFGUVOUWGOAYQXKUUGYQAYQXM
      XNXOVPYSUVRUWGUVSUVTXPXQVQYCUWHUWFISZUWJUWDUWFIWLUWJUUGYQLZUWLYQUUGLZUWDU
      WBUWMYSUWBUUGUVJYQUUGUUAVKUVLVJXRUWNUWLYQUUGXSXTUWDUWMUWNUUGYQYAYBYDYEYFY
      EYGUUGUUAUUDYHUUGIYQCYNYIYJYKUUAYQUVLYLYMR $.
  $}

  ${
    $d r s u v w x z B $.  $d r s u v w z C $.  $d r s u v w x z F $.
    $d r s u v w x V $.  $d r s u v w x X $.  $d r s u v w x z Y $.
    fbasrn.c $e |- C = ran ( x e. B |-> ( F " x ) ) $.
    $( Given a filter on a domain, produce a filter on the range.  (Contributed
       by Jeff Hankins, 7-Sep-2009.)  (Revised by Stefan O'Rear,
       6-Aug-2015.) $)
    fbasrn $p |- ( ( B e. ( fBas ` X ) /\ F : X --> Y /\ Y e. V ) ->
        C e. ( fBas ` Y ) ) $=
      ( vu vv wcel wss c0 cv wrex wa wb wceq cvv wn vz vr vs vw cfv w3a cpw wne
      cfbas wf wnel cin wral cima cmpt crn simpl2 imassrn frn syl5ss syl simpl3
      elpw2g eqid fmptd syl5eqss a1i cdm wfun ffun 3ad2ant2 funimaexg ralrimiva
      mpbird dmmptg 3syl fbasne0 3ad2ant1 eqnetrd dm0rn0 necon3bii sylib fbelss
      wi ex 0nelfb eleq1 notbid syl5ibrcom con2d jcad fdm sseq2d biimpar eqeq1d
      sseqin2 biimpd con3d expimpd eqcom imadisj notbii syl6ibr ralrimiv eleq2i
      bitri syld 0ex elrnmpt ax-mp df-nel ralnex 3bitr4i sylibr cbvmptv anbi12i
      imaeq2 reeanv bitr4i fbasssin 3expb 3ad2antl1 adantrr eqeq2d rspcev mpan2
      vex ad2antrl funimaex syl5bb ad2antrr ad2antll inss1 inss2 ssini ad2antlr
      imass2 ineq12 syl5sseqr sstrd syl2anc adantlrl rexlimddv rexlimdvv syl5bi
      sseq1 exp32 ralrimivv 3jca isfbas2 3ad2ant3 mpbir2and ) BFUIUEKZFGDUJZGEK
      ZUFZCGUIUEKZCGUGZLZCMUHZMCUKZUANZUBNZUCNZULZLZUACOZUCCUMUBCUMZUFZUUPCABDA
      NZUNZUOZUPZUURHUUPBUURUVLUJUVMUURLUUPABUVKUURUVLUUPUVJBKZPZUVKUURKZUVKGLZ
      UVOUUNUVQUUMUUNUUOUVNUQUUNUVKDUPGDUVJURFGDUSUTVAUVOUUOUVPUVQQUUMUUNUUOUVN
      VBUVKGEVCVAVNUVLVDZVEBUURUVLUSVAVFUUPUUTUVAUVHUUPCUVMMCUVMRUUPHVGUUPUVLVH
      ZMUHUVMMUHUUPUVSBMUUPDVIZUVKSKZABUMUVSBRUUNUUMUVTUUOFGDVJVKZUVTUWAABDUVJB
      VLVMABUVKSVOVPUUMUUNBMUHUUOFBVQVRVSUVSMUVMMUVLVTWAWBVSUUPMUVKRZTZABUMZUVA
      UUPUWDABUUPUVNUVJFLZUVJMRZTZPZUWDUUPUVNUWFUWHUUMUUNUVNUWFWDUUOUUMUVNUWFFB
      UVJWCWEVRUUMUUNUVNUWHWDUUOUUMUWGUVNUUMUVNTUWGMBKZTFBWFUWGUVNUWJUVJMBWGWHW
      IWJVRWKUUPUWIDVHZUVJULZMRZTZUWDUUPUWFUWHUWNUUPUWFPZUWMUWGUWOUWMUWGUWOUWLU
      VJMUWOUVJUWKLZUWLUVJRUUPUWPUWFUUPUWKFUVJUUNUUMUWKFRUUOFGDWLVKWMWNUVJUWKWP
      WBWOWQWRWSUWCUWMUWCUVKMRUWMMUVKWTDUVJXAXFXBXCXGXDMCKZTUWCABOZTUVAUWEUWQUW
      RUWQMUVMKZUWRCUVMMHXEMSKUWSUWRQXHABUVKMUVLSUVRXIXJXFXBMCXKUWCABXLXMXNUUPU
      VGUBUCCCUVCCKZUVDCKZPZUVCDINZUNZRZUVDDJNZUNZRZPZJBOIBOZUUPUVGUXBUXEIBOZUX
      HJBOZPUXJUWTUXKUXAUXLUWTUVCUVMKZUXKCUVMUVCHXEUVCSKUXMUXKQUBYGIBUXDUVCUVLS
      AIBUVKUXDUVJUXCDXQXOXIXJXFUXAUVDUVMKZUXLCUVMUVDHXEUVDSKUXNUXLQUCYGJBUXGUV
      DUVLSAJBUVKUXGUVJUXFDXQXOXIXJXFXPUXEUXHIJBBXRXSUUPUXIUVGIJBBUUPUXCBKZUXFB
      KZPZUXIUVGUUPUXQUXIPPUDNZUXCUXFULZLZUVGUDBUUPUXQUXTUDBOZUXIUUMUUNUXQUYAUU
      OUUMUXOUXPUYAUDUXCUXFBFXTYAYBYCUUPUXIUXRBKZUXTPZUVGUXQUUPUXIPZUYCPZDUXRUN
      ZCKZUYFUVELZUVGUYEUYGUYFUVKRZABOZUYBUYJUYDUXTUYBUYFUYFRZUYJUYFVDUYIUYKAUX
      RBUVJUXRRUVKUYFUYFUVJUXRDXQYDYEYFYHUUPUYGUYJQUXIUYCUYGUYFUVMKZUUPUYJCUVMU
      YFHXEUUPUVTUYFSKUYLUYJQUWBDUXRUDYGYIABUVKUYFUVLSUVRXIVPYJYKVNUYEUYFDUXSUN
      ZUVEUXTUYFUYMLUYDUYBUXRUXSDYQYLUYEUXDUXGULZUYMUVEUYMUXDUXGUXSUXCLUYMUXDLU
      XCUXFYMUXSUXCDYQXJUXSUXFLUYMUXGLUXCUXFYNUXSUXFDYQXJYOUXIUVEUYNRUUPUYCUVCU
      XDUVDUXGYRYPYSYTUVFUYHUAUYFCUVBUYFUVEUUFYEUUAUUBUUCUUGUUDUUEUUHUUIUUOUUMU
      UQUUSUVIPQUUNUBUCUAEGCUUJUUKUUL $.
  $}

  ${
    $d f g h x y F $.  $d f g h x y X $.
    $( The union of a nonempty set of filters with a common base and closed
       under pairwise union is a filter.  (Contributed by Mario Carneiro,
       28-Nov-2013.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    filuni $p |- ( ( F C_ ( Fil ` X ) /\ F =/= (/) /\ A. f e. F A. g e. F
              ( f u. g ) e. F ) -> U. F e. ( Fil ` X ) ) $=
      ( vx vy vh c0 cv wcel wel wrex eluni2 wi wa ex syl wsbc sbcel1v bitri cfv
      cfil wss wne cun wral w3a cuni filelss rexlimdva 3ad2ant1 syl5bi pm4.71rd
      ssel2 cvv fvprc necon1ai 3adant3 filtop a1d ralimdva r19.2z sylan9 3impia
      ssn0 sylibr wn 0nelfil ralrimiva notbii ralnex bitr4i simp13 r19.29 simp1
      simpl syl2an simprrr simpl2 simpl3 syl13anc expr reximdva syl3an1 3imtr4g
      filss syld cin simp11 elun1 elun2 anim12i wceq eleq2 anbi12d rspcev an12s
      sylan2 ad2antlr syl9r impr ancom2s rexlimiva 3expib syl2im syland anbi12i
      imp filin isfild ) CDUBUAZUCZCHUDZAIZBIZUEZCJZBCUFZACUFZUGZEIZCUHZJZEFEDY
      BXTYCYADUCZYCEAKZACLZXTYDAYACMZXLXMYFYDNXSXLYEYDACXLXNCJZOZXNXKJZYEYDNCXK
      XNUNZYJYEYDYAXNDUIPQUJUKULUMXLXMDUOJZXSXLXMOXKHUDYLCXKVEYLXKHDUBUPUQQURXT
      DYBJZYCEDRXTDXNJZACLZYMXLXMXSYOXLXSYNACUFZXMYOXLXRYNACYIYNXRYIYJYNYKXNDUS
      QUTVAXMYPYOYNACVBPVCVDADCMVFEDYBSVFXTHXNJZVGZACUFZYCEHRZVGZXLXMYSXSXLYRAC
      YIYJYRYKXNDVHQVIUKUUAYQACLZVGYSYTUUBYTHYBJUUBEHYBSAHCMTVJYQACVKVLVFXTFIZD
      UCZYAUUCUCZUGZYFFAKZACLZYCEYARZYCEUUCRZUUFYFXRYEOZACLZUUHUUFXSYFUULNXLXMX
      SUUDUUEVMXSYFUULXRYEACVNPQXTXLUUDUUEUULUUHNXLXMXSVOXLUUDUUEUGZUUKUUGACUUM
      YHUUKUUGUUMYHUUKOZOYJYEUUDUUEUUGUUMXLYHYJUUNXLUUDUUEVOYHUUKVPYKVQUUMYHXRY
      EVRXLUUDUUEUUNVSXLUUDUUEUUNVTYAUUCXNDWFWAWBWCWDWGUUIYCYFEYAYBSZYGTUUJUUCY
      BJUUHEUUCYBSAUUCCMTZWEXTUUDYDUGZUUHEBKZBCLZOUUCYAWHZGIZJZGCLZUUJUUIOYCEUU
      TRZUUQUUHXRUUGOZACLZUUSUVCUUQXSUUHUVFNXLXMXSUUDYDVMXSUUHUVFXRUUGACVNPQUUQ
      XLUVFUUSOFGKZEGKZOZGCLZUVCXLXMXSUUDYDWIUVFUUSUVJUVEUUSUVJNZACYHUUGXRUVKYH
      UUGXRUVKXRUUSXQUUROZBCLZYHUUGOZUVJXRUUSUVMXQUURBCVNPUVNUVLUVJBCUUGUVLUVJN
      YHXOCJUUGUVLUVJXQUUGUURUVJUUGUUROXQUUCXPJZYAXPJZOZUVJUUGUVOUURUVPUUCXNXOW
      JYAXOXNWKWLUVIUVQGXPCUVAXPWMUVGUVOUVHUVPUVAXPUUCWNUVAXPYAWNWOWPWRWQPWSUJW
      TXAXBXCXHXLUVIUVBGCXLUVACJOUVAXKJZUVIUVBNCXKUVAUNUVRUVGUVHUVBUUCYAUVADXIX
      DQWCXEXFUUJUUHUUIUUSUUPUUIYCUUSUUOBYACMTXGUVDUUTYBJUVCEUUTYBSGUUTCMTWEXJ
      $.
  $}

  ${
    $d u v x y z A $.  $d u v x y z L $.  $d u v x y z Y $.
    $( Conditions for the trace of a filter ` L ` to be a filter.  (Contributed
       by FL, 2-Sep-2013.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    trfil1 $p |- ( ( L e. ( Fil ` Y ) /\ A C_ Y ) -> A = U. ( L |`t A ) ) $=
      ( cfil cfv wcel wss wa crest co cuni cin simpr sseqin2 sylib cvv simpl id
      wceq filtop ssexg syl2anr adantr elrestr syl3anc eqeltrrd elssuni syl cpw
      restsspw sspwuni mpbi a1i eqssd ) BCDEZFZACGZHZABAIJZKZURAUSFAUTGURCALZAU
      SURUQVAASUPUQMACNOURUPAPFZCBFZVAUSFUPUQQUQUQVCVBUPUQRBCTZACBUAUBUPVCUQVDU
      CCABUOPUDUEUFAUSUGUHUTAGZURUSAUIGVEABUJUSAUKULUMUN $.

    $( Conditions for the trace of a filter ` L ` to be a filter.  (Contributed
       by FL, 2-Sep-2013.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    trfil2 $p |- ( ( L e. ( Fil ` Y ) /\ A C_ Y ) ->
      ( ( L |`t A ) e. ( Fil ` A ) <-> A. v e. L ( v i^i A ) =/= (/) ) ) $=
      ( vy vx vu vz wcel wss wa c0 cv cin wral wrex wb wceq cvv adantr cfil cfv
      crest co wn wne wi cpw simpr sseqin2 sylib simpl id ssexg syl2anr elrestr
      filtop syl3anc eqeltrrd elpwi vex inex1 a1i elrest syldan sseq1d rexxfr2d
      cun indir simplr df-ss uneq2d simprr ssequn1 eqtrd syl5eq simplll simpllr
      syl2anc simprl filelss sstrd unssd ssun1 filss syl13anc rexlimdvaa sylbid
      ex ralrimiv simpll filin 3expb adantlr ralrimivva inindir syl6eqr adantll
      syl5 ineq12 eleq1d ralxfr2d mpbird isfil2 restsspw 3anass mpbiran 3anbi1i
      w3a 3bitri anass ancom syl12anc nesym ralbii dfrex2 syl6bb con2bid syl5bb
      baib bitr4d ) CDUAUBZIZBDJZKZCBUCUDZBUAUBIZLYFIZUEZAMBNZLUFZACOZYEBYFIZEM
      ZFMZJZEYFPZYOYFIZUGZFBUHZOZYOYNNZYFIZEYFOZFYFOZYGYIQYEDBNZBYFYEYDUUFBRYCY
      DUIBDUJUKYEYCBSIZDCIZUUFYFIYCYDULYDYDUUHUUGYCYDUMCDUQZBDCUNUOZYCUUHYDUUIT
      DBCYBSUPURUSYEYSFYTYOYTIYOBJZYEYSYOBUTYEUUKYSYEUUKKZYQGMZBNZYOJZGCPYRUULY
      PUUOEGUUNYFCSUUNSIZUULUUMCIZKUUMBGVAVBZVCYEYNYFIYNUUNRZGCPQZUUKYCYDUUGUUT
      UUJGYNBCYBSVDVEZTUULUUSKYNUUNYOUULUUSUIVFVGUULUUOYRGCUULUUQUUOKZKZUUMYOVH
      ZBNZYOYFUVCUVEUUNYOBNZVHZYOUUMYOBVIUVCUVGUUNYOVHZYOUVCUVFYOUUNUVCUUKUVFYO
      RYEUUKUVBVJZYOBVKUKVLUVCUUOUVHYORUULUUQUUOVMUUNYOVNUKVOVPUVCYCUUGUVDCIZUV
      EYFIYCYDUUKUVBVQZUVCYCYDUUGUVKYCYDUUKUVBVRZUUJVSUVCYCUUQUVDDJUUMUVDJZUVJU
      VKUULUUQUUOVTZUVCUUMYODUVCYCUUQUUMDJUVKUVNUUMCDWAVSUVCYOBDUVIUVLWBWCUVMUV
      CUUMYOWDVCUUMUVDCDWEWFUVDBCYBSUPURUSWGWHWIWSWJYEUUEHMZUUMNZBNZYFIZGCOZHCO
      YEUVRHGCCYEUVOCIZUUQKZKYCUUGUVPCIZUVRYCYDUWAWKYEUUGUWAUUJTYCUWAUWBYDYCUVT
      UUQUWBUVOUUMCDWLWMWNUVPBCYBSUPURWOYEUUDUVSFHUVOBNZYFCSUWCSIYEUVTKUVOBHVAV
      BVCYCYDUUGYRYOUWCRZHCPQUUJHYOBCYBSVDVEYEUWDKZUUCUVREGUUNYFCSUUPUWEUUQKUUR
      VCYEUUTUWDUVATUWEUUSKUUBUVQYFUWDUUSUUBUVQRYEUWDUUSKUUBUWCUUNNUVQYOUWCYNUU
      NWTUVOUUMBWPWQWRXAXBXBXCYGYMUUAUUEKZKZYIYGYIYMKZUWFKZYIUWGKUWGYIKYGYFYTJZ
      YIYMXIZUUAUUEXIUWHUUAUUEXIUWIFEYFBXDUWKUWHUUAUUEUWKUWJUWHBCXEUWJYIYMXFXGX
      HUWHUUAUUEXFXJYIYMUWFXKYIUWGXLXJXTXMYLLYJRZUEZACOZYEYIYKUWMACYJLXNXOYEYHU
      WNYEYHUWLACPZUWNUEYCYDUUGYHUWOQUUJALBCYBSVDVEUWLACXPXQXRXSYA $.

    $( Conditions for the trace of a filter ` L ` to be a filter.  (Contributed
       by Stefan O'Rear, 2-Aug-2015.) $)
    trfil3 $p |- ( ( L e. ( Fil ` Y ) /\ A C_ Y ) ->
      ( ( L |`t A ) e. ( Fil ` A ) <-> -. ( Y \ A ) e. L ) ) $=
      ( vv cfil cfv wcel wss wa crest co cv cin c0 wne wral wn wrex wb syl5bb
      cdif trfil2 dfral2 nne filelss reldisj syl rexbidva adantr difssd elfilss
      wceq sylan2 bitr4d notbid bitrd ) BCEFGZACHZIZBAJKAEFGDLZAMZNOZDBPZCAUAZB
      GZQZDABCUBVCVBQZDBRZQUSVFVBDBUCUSVHVEUSVHUTVDHZDBRZVEUQVHVJSURUQVGVIDBVGV
      ANULZUQUTBGIZVIVANUDVLUTCHVKVISUTBCUEUTACUFUGTUHUIURUQVDCHVEVJSURCAUJDVDB
      CUKUMUNUOTUP $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y V $.  $d x y X $.
    $( If ` A ` is a member of the filter, then the filter truncated to ` A `
       is a subset of the original filter.  (Contributed by Mario Carneiro,
       15-Oct-2015.) $)
    trfilss $p |- ( ( F e. ( Fil ` X ) /\ A e. F ) -> ( F |`t A ) C_ F ) $=
      ( vx cfil cfv wcel wa crest co cv cin cmpt crn restval wf wss filin 3expa
      an32s eqid fmptd frn syl eqsstrd ) BCEFZGZABGZHZBAIJDBDKZALZMZNZBDABUFBOU
      IBBULPUMBQUIDBUKBULUGUJBGZUHUKBGZUGUNUHUOUJABCRSTULUAUBBBULUCUDUE $.

    $( If ` A ` is a member of the filter, then truncating ` F ` to ` A ` and
       regenerating the behavior outside ` A ` using ` filGen ` recovers the
       original filter.  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    fgtr $p |- ( ( F e. ( Fil ` X ) /\ A e. F ) ->
      ( X filGen ( F |`t A ) ) = F ) $=
      ( vx vy cfil cfv wcel wa co cfg cfbas wss cpw filfbas filelss syl syl3anc
      wb adantr crest wn fbncp sylan trfil3 syldan mpbird restsspw sspwb syl5ss
      cdif sylib filtop fbasweak trfilss fgss wceq fgfil sseqtrd cv wrex wi cin
      ex elrestr 3expa inss1 sseq1 rspcev sylancl jcad elfg sylibrd ssrdv eqssd
      ) BCFGZHZABHZIZCBAUAJZKJZBVSWACBKJZBVSVTCLGZHZBWCHZVTBMWAWBMVSVTALGHZVTCN
      ZMCBHZWDVSVTAFGHZWFVSWICAUKBHUBZVQWEVRWJBCOZACBCUCUDVQVRACMZWIWJSABCPZABC
      UEUFUGVTAOQVSVTANZWGABUHVSWLWNWGMWMACUIULUJVQWHVRBCUMTVTBACUNRZVQWEVRWKTA
      BCUOVTBCUPRVQWBBUQVRBCURTUSVSDBWAVSDUTZBHZWPCMZEUTZWPMZEVTVAZIZWPWAHZVSWQ
      WRXAVQWQWRVBVRVQWQWRWPBCPVDTVSWQXAVSWQIWPAVCZVTHZXDWPMZXAVQVRWQXEWPABVPBV
      EVFWPAVGWTXFEXDVTWSXDWPVHVIVJVDVKVSWDXCXBSWOEWPVTCVLQVMVNVO $.

    $( The trace operation and the ` filGen ` operation are inverses to one
       another in some sense, with ` filGen ` growing the base set and ` |``t `
       shrinking it.  See ~ fgtr for the converse cancellation law.
       (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    trfg $p |- ( ( F e. ( Fil ` A ) /\ A C_ X /\ X e. V ) ->
      ( ( X filGen F ) |`t A ) = F ) $=
      ( vx vy cfil cfv wcel wss co cv wceq cfbas cpw 3ad2ant1 sylib syl3anc syl
      wa w3a cfg crest cin crn filfbas filsspw simp2 sspwb sstrd simp3 fbasweak
      cmpt fgcl filtop restval syl2anc wf wrex wb simplbda simpll1 simprl inss2
      elfg a1i simprr filelss 3ad2antl1 ad2ant2r ssind filss syl13anc rexlimddv
      eqid fmptd frn eqsstrd df-ss adantr ssfg sselda elrestr eqeltrrd ex ssrdv
      eqssd ) BAGHIZADJZDCIZUAZDBUBKZAUCKZBWKWMEWLELZAUDZUMZUEZBWKWLDGHZIZABIZW
      MWQMWKBDNHIZWSWKBANHIZBDOZJWJXAWHWIXBWJBAUFPWKBAOZXCWHWIBXDJWJBAUGPWKWIXD
      XCJWHWIWJUHADUIQUJWHWIWJUKBCADULRZBDUNSZWHWIWTWJBAUOPZEAWLWRBUPUQWKWLBWPU
      RWQBJWKEWLWOBWPWKWNWLIZTZFLZWNJZWOBIZFBWKXHWNDJZXKFBUSZWKXAXHXMXNTUTXEFWN
      BDVESVAXIXJBIZXKTZTZWHXOWOAJZXJWOJXLWHWIWJXHXPVBXIXOXKVCXRXQWNAVDVFXQXJWN
      AXIXOXKVGWKXOXJAJZXHXKWHWIXOXSWJXJBAVHVIVJVKXJWOBAVLVMVNWPVOVPWLBWPVQSVRW
      KEBWMWKWNBIZWNWMIWKXTTZWOWNWMYAWNAJZWOWNMWHWIXTYBWJWNBAVHVIWNAVSQYAWSWTXH
      WOWMIWKWSXTXFVTWKWTXTXGVTWKBWLWNWKXABWLJXEBDWASWBWNAWLWRBWCRWDWEWFWG $.
  $}

  ${
    $d v A $.  $d v P $.  $d v J $.  $d v Y $.
    $( The trace, over a set ` A ` , of the filter of the neighborhoods of a
       point ` P ` is a filter iff ` P ` belongs to the closure of ` A ` .
       (This is ~ trfil2 applied to a filter of neighborhoods.)  (Contributed
       by FL, 15-Sep-2013.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    trnei $p |- ( ( J e. ( TopOn ` Y ) /\ A C_ Y /\ P e. Y ) ->
        ( P e. ( ( cls ` J ) ` A ) <->
          ( ( ( nei ` J ) ` { P } ) |`t A ) e. ( Fil ` A ) ) ) $=
      ( vv ctopon cfv wcel wss w3a ccl cv cin c0 wne csn cfil 3ad2ant1 syl3anc
      wb cnei wral crest ctop cuni topontop simp2 wceq toponuni sseqtrd eleqtrd
      co simp3 eqid neindisj2 simp1 snssd 3ad2ant3 neifil trfil2 syl2anc bitr4d
      snnzg ) CDFGHZADIZBDHZJZBACKGGHZELAMNOEBPZCUAGGZUBZVJAUCULAQGHZVGCUDHZACU
      EZIBVNHVHVKTVDVEVMVFDCUFRVGADVNVDVEVFUGZVDVEDVNUHVFDCUIRZUJVGBDVNVDVEVFUM
      ZVPUKBAECVNVNUNUOSVGVJDQGHZVEVLVKTVGVDVIDIVINOZVRVDVEVFUPVGBDVQUQVFVDVSVE
      BDVCURVICDUSSVOEAVJDUTVAVB $.
  $}

  ${
    $d w x y z A $.  $d w y z V $.  $d w x y z X $.
    $( Relative complements of the finite parts of an infinite set is a filter.
       When ` A = NN ` the set of the relative complements is called Frechet's
       filter and is used to define the concept of limit of a sequence.
       (Contributed by FL, 14-Jul-2008.)  (Revised by Stefan O'Rear,
       2-Aug-2015.) $)
    cfinfil $p |- ( ( X e. V /\ A C_ X /\ -. A e. Fin ) ->
        { x e. ~P X | ( A \ x ) e. Fin } e. ( Fil ` X ) ) $=
      ( vy vz vw wcel wss cfn cv cdif wa wceq difeq2 eleq1d wsbc c0 sbcie wi wn
      w3a cpw crab wb elrab selpw anbi1i bitri a1i cvv elex 3ad2ant1 0fin eleq1
      ssdif0 mpbiri sylbi sbcieg biimpar sylan2 3adant3 dif0 eleq1i sylbb con3i
      0ex 3ad2ant3 ssfi expcom syl vex 3imtr4g cin cun difindi syl5eqel anbi12i
      sscon unfi inex1 isfild ) DCHZBDIZBJHZUAZUBZBEKZLZJHZEFGDBAKZLZJHZADUCZUD
      ZWHWOHZWHDIZWJMZUEWGWPWHWNHZWJMWRWMWJAWHWNWKWHNWLWIJWKWHBOPUFWSWQWJEDUGUH
      UIUJWCWDDUKHWFDCULUMWCWDWJEDQZWFWDWCBDLZJHZWTWDXARNZXBBDUPXCXBRJHUNXARJUO
      UQURWCWTXBWJXBEDCWHDNWIXAJWHDBOPUSUTVAVBWFWCWJERQZUAWDXDWEXDBRLZJHZWEWJXF
      ERVGWHRNWIXEJWHRBOPSXEBJBVCVDVEVFVHGKZFKZIZWGWJEXGQZWJEXHQZTXHDIZXIBXGLZJ
      HZBXHLZJHZXJXKXIXOXMIZXNXPTXGXHBVSXNXQXPXMXOVIVJVKWJXNEXGGVLWHXGNWIXMJWHX
      GBOPSZWJXPEXHFVLZWHXHNWIXOJWHXHBOPSZVMVHWGXLXGDIUBZXPXNMZBXHXGVNZLZJHZXKX
      JMWJEYCQYBYETYAYBYDXOXMVOJBXHXGVPXOXMVTVQUJXKXPXJXNXTXRVRWJYEEYCXHXGXSWAW
      HYCNWIYDJWHYCBOPSVMWB $.
  $}

  ${
    $d w x y z X $.
    $( The set of all elements whose complement is dominated by the base set is
       a filter.  (Contributed by Mario Carneiro, 14-Dec-2013.)  (Revised by
       Stefan O'Rear, 2-Aug-2015.) $)
    csdfil $p |- ( ( X e. dom card /\ _om ~<_ X ) ->
        { x e. ~P X | ( X \ x ) ~< X } e. ( Fil ` X ) ) $=
      ( vy vz vw wcel wbr wa cv cdif csdm wss wb wceq difeq2 breq1d cvv wsbc c0
      sbcie ccrd cdm com cdom cpw crab elrab selpw anbi1i bitri a1i elex adantr
      difid wne adantl 0sdomg mpbird syl5eqbr sbcieg sdomirr dif0 syl6eq mtbiri
      infn0 0ex w3a wi simp1l difexg syl sscon 3ad2ant3 ssdomg domsdomtr ex vex
      sylc 3imtr4g cin infunsdom difindi breq1i syl6ibr 3ad2ant1 anbi12i isfild
      cun inex1 ) BUAUBZFZUCBUDGZHZBCIZJZBKGZCDEBBAIZJZBKGZABUEZUFZWNXAFZWNBLZW
      PHZMWMXBWNWTFZWPHXDWSWPAWNWTWQWNNWRWOBKWQWNBOPUGXEXCWPCBUHUIUJUKWKBQFWLBW
      JULUMWMWPCBRZBBJZBKGZWMXGSBKBUNWMSBKGZBSUOZWLXJWKBVEUPWKXIXJMWLBWJUQUMURU
      SWKXFXHMWLWPXHCBWJWNBNWOXGBKWNBBOPUTUMURWMWPCSRZBBKGZBVAXKXLMWMWPXLCSVFWN
      SNZWOBBKXMWOBSJBWNSBOBVBVCPTUKVDWMDIZBLZEIZXNLZVGZBXPJZBKGZBXNJZBKGZWPCXP
      RZWPCXNRZXRYAXSUDGZXTYBVHXRXSQFZYAXSLZYEXRWKYFWKWLXOXQVIBXPWJVJVKXQWMYGXO
      XPXNBVLVMYAXSQVNVRYEXTYBYAXSBVOVPVKWPXTCXPEVQWNXPNWOXSBKWNXPBOPTZWPYBCXND
      VQZWNXNNWOYABKWNXNBOPTZVSWMXOXPBLZVGYBXTHZBXNXPVTZJZBKGZYDYCHWPCYMRWMXOYL
      YOVHYKWMYLYAXSWHZBKGZYOWMYLYQYAXSBWAVPYNYPBKBXNXPWBWCWDWEYDYBYCXTYJYHWFWP
      YOCYMXNXPYIWIWNYMNWOYNBKWNYMBOPTVSWG $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w y z V $.
    $( The supersets of a nonempty set which are also subsets of a given base
       set form a filter.  (Contributed by Jeff Hankins, 12-Nov-2009.)
       (Revised by Stefan O'Rear, 7-Aug-2015.) $)
    supfil $p |- ( ( A e. V /\ B C_ A /\ B =/= (/) ) ->
        { x e. ~P A | B C_ x } e. ( Fil ` A ) ) $=
      ( vy vz vw wcel wss c0 w3a cv wa wb sseq2 a1i cvv wsbc 3ad2ant3 sbcie wne
      cpw crab elrab selpw anbi1i bitri 3ad2ant1 simp2 sbcieg syl mpbird wn ss0
      elex necon3ai 0ex sylnibr sstr expcom vex 3imtr4g cin ssin biimpi syl2anb
      wi inex1 sylibr isfild ) BDHZCBIZCJUAZKZCELZIZEFGBCALZIZABUBZUCZVOVTHZVOB
      IZVPMZNVNWAVOVSHZVPMWCVRVPAVOVSVQVOCOUDWDWBVPEBUEUFUGPVKVLBQHZVMBDUOUHZVN
      VPEBRZVLVKVLVMUIVNWEWGVLNWFVPVLEBQVOBCOUJUKULVNCJIZVPEJRVMVKWHUMVLWHCJCUN
      UPSVPWHEJUQVOJCOTURGLZFLZIZVNVPEWIRZVPEWJRZVGWJBIZWKCWIIZCWJIZWLWMWOWKWPC
      WIWJUSUTVPWOEWIGVAVOWICOTZVPWPEWJFVAZVOWJCOTZVBSWMWLMZVPEWJWIVCZRZVGVNWNW
      IBIKWTCXAIZXBWMWPWOXCWLWSWQWPWOMXCCWJWIVDVEVFVPXCEXAWJWIWRVHVOXACOTVIPVJ
      $.
  $}

  ${
    $d x y M $.  $d x y Z $.
    $( The set of upper sets of integers is a filter base on ` ZZ ` , which
       corresponds to convergence of sequences on ` ZZ ` .  (Contributed by
       Mario Carneiro, 13-Oct-2015.) $)
    zfbas $p |- ran ZZ>= e. ( fBas ` ZZ ) $=
      ( vx vy cuz crn cz cfbas cfv wcel cpw c0 wne cv cin wral uzf ax-mp c1 cvv
      wb wa wss wnel w3a wf frn wfn ffn fnfvelrn mp2an ne0ii wceq wrex uzid n0i
      1z wn syl nrex fvelrnb mtbir nelir uzin2 inex1 pwid inelcm sylancl rgen2a
      vex 3pm3.2i zex isfbas mpbir2an ) CDZEFGHZVMEIZUAZVMJKZJVMUBZVMALZBLZMZIZ
      MJKZBVMNAVMNZUCZEVOCUDZVPOEVOCUEPVQVRWDQCGZVMCEUFZQEHWGVMHWFWHOEVOCUGPZUO
      EQCUHUIUJJVMJVMHZVSCGZJUKZAEULZWLAEVSEHVSWKHWLUPVSUMWKVSUNUQURWHWJWMSWIAE
      JCUSPUTVAWCABVMVSVMHVTVMHTWAVMHWAWBHWCVSVTVBWAVSVTAVHVCVDWAVMWBVEVFVGVIER
      HVNVPWETSVJABREVMVKPVL $.

    uzfbas.1 $e |- Z = ( ZZ>= ` M ) $.
    $( The restriction of the set of upper sets of integers to an upper set of
       integers is the set of upper sets of integers based at a point above the
       cutoff.  (Contributed by Mario Carneiro, 13-Oct-2015.) $)
    uzrest $p |- ( M e. ZZ -> ( ran ZZ>= |`t Z ) = ( ZZ>= " Z ) ) $=
      ( vx vy cz wcel cuz crn cv cin cvv wceq wf wss uzf ax-mp cfv wral a1i cpw
      crest cima cmpt zex pwex frn ssexi fvex eqeltri restval mp2an cle wbr cif
      co wa ineq2i uzin ancoms syl5eq wfn ffn uzssz eqsstri inss2 ifcl uzid syl
      eleqtrrd sseldi fnfvima syl3anc eqeltrd ralrimiva ineq1 eleq1d ralrn eqid
      wb sylibr fmpt sylib syl5eqss uztrn2 ex ssrdv adantl df-ss sseli fnfvelrn
      sylancr elrestr eqeltrrd wfun cdm ffun fdmi sseqtr4i funimass4 eqssd ) AF
      GZHIZBUBUPZHBUCZXBXDDXCDJZBKZUDZIZXEXCLGZBLGZXDXIMXCFUAZFUEUFFXLHNZXCXLOP
      FXLHUGQUHZBAHRZLCAHUIUJZDBXCLLUKULXBXCXEXHNZXIXEOXBXGXEGZDXCSZXQXBEJZHRZB
      KZXEGZEFSZXSXBYCEFXBXTFGZUQZYBXTAUMUNZAXTUOZHRZXEYFYBYAXOKZYIBXOYACURYEXB
      YJYIMXTAUSUTVAZYFHFVBZBFOZYHBGYIXEGYLYFXMYLPFXLHVCQZTYMYFBXOFCAVDVEZTYFYB
      BYHYABVFYFYHYIYBYFYHFGYHYIGYGAXTFVGYHVHVIYKVJVKFBHYHVLVMVNVOYLXSYDVTYNXRY
      CDEFHXFYAMXGYBXEXFYABVPVQVRQWADXCXEXGXHXHVSWBWCXCXEXHUGVIWDXBXFHRZXDGZDBS
      ZXEXDOZXBYQDBXBXFBGZUQZYPBKZYPXDUUAYPBOZUUBYPMYTUUCXBYTEYPBYTXTYPGXTBGAXT
      XFBCWEWFWGWHYPBWIWCUUAXJXKYPXCGZUUBXDGXJUUAXNTXKUUAXPTUUAYLXFFGZUUDYNYTUU
      EXBBFXFYOWJWHFXFHWKWLYPBXCLLWMVMWNVOHWOZBHWPZOYSYRVTXMUUFPFXLHWQQBFUUGYOF
      XLHPWRWSDBXDHWTULWAXA $.

    $( The set of upper sets of integers based at a point in a fixed upper
       integer set like ` NN ` is a filter base on ` NN ` , which corresponds
       to convergence of sequences on ` NN ` .  (Contributed by Mario Carneiro,
       13-Oct-2015.) $)
    uzfbas $p |- ( M e. ZZ -> ( ZZ>= " Z ) e. ( fBas ` Z ) ) $=
      ( cz wcel cuz crn crest co cima cfbas cfv uzrest c0 wn zfbas 0nelfb ax-mp
      imassrn syl6eqss sseld wss wb uzssz eqsstri trfbas2 mp2an sylibr eqeltrrd
      mtoi ) ADEZFGZBHIZFBJZBKLZABCMZUKNUMEZOZUMUOEZUKUQNULEZULDKLEZUTOPDULQRUK
      UMULNUKUMUNULUPFBSTUAUJVABDUBUSURUCPBAFLDCAUDUEBULDUFUGUHUI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ultrafilters
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c UFil $.
  $c UFL $.

  $( Extend class notation with the ultrafilters-on-a-set function. $)
  cufil $a class UFil $.

  $( Extend class notation with the ultrafilter lemma. $)
  cufl $a class UFL $.

  ${
    $d f g x $.
    $( Define the set of ultrafilters on a set.  An ultrafilter is a filter
       that gives a definite result for every subset.  (Contributed by Jeff
       Hankins, 30-Nov-2009.) $)
    df-ufil $a |- UFil = ( g e. _V |-> { f e. ( Fil ` g ) |
            A. x e. ~P g ( x e. f \/ ( g \ x ) e. f ) } ) $.

    $( Define the class of base sets for which the ultrafilter lemma
       ~ filssufil holds.  (Contributed by Mario Carneiro, 26-Aug-2015.) $)
    df-ufl $a |- UFL = { x | A. f e. ( Fil ` x )
      E. g e. ( UFil ` x ) f C_ g } $.
  $}

  ${
    $d x y z F $.  $d x y z X $.
    $( The property of being an ultrafilter.  (Contributed by Jeff Hankins,
       30-Nov-2009.)  (Revised by Mario Carneiro, 29-Jul-2015.) $)
    isufil $p |- ( F e. ( UFil ` X ) <-> ( F e. ( Fil ` X ) /\
          A. x e. ~P X ( x e. F \/ ( X \ x ) e. F ) ) ) $=
      ( vz vy wel cv cdif wcel wo cpw wral cfil cfv cufil cdm df-ufil wceq wa
      wb adantr eleq2 adantl difeq1 eleq12 sylan orbi12d raleqbidv fveq2 elfvdm
      pweq fvex elmptrab2 ) ADFZEGZAGZHZDGZIZJZAUOKZLUPBIZCUPHZBIZJZACKZLEDUOMN
      CMNOMPCBADEQUOCRZURBRZSZUTVEAVAVFVGVAVFRVHUOCUKUAVIUNVBUSVDVHUNVBTVGURBUP
      UBUCVGUQVCRVHUSVDTUOCUPUDUQVCURBUEUFUGUHUOCMUIUOMULBCMUJUM $.
  $}

  ${
    $d x F $.  $d x X $.
    $( An ultrafilter is a filter.  (Contributed by Jeff Hankins, 1-Dec-2009.)
       (Revised by Mario Carneiro, 29-Jul-2015.) $)
    ufilfil $p |- ( F e. ( UFil ` X ) -> F e. ( Fil ` X ) ) $=
      ( vx cufil cfv wcel cfil cv cdif wo cpw wral isufil simplbi ) ABDEFABGEFC
      HZAFBOIAFJCBKLCABMN $.
  $}

  ${
    $d f x y F $.  $d x S $.  $d f x y X $.  $d x G $.
    $( For any subset of the base set of an ultrafilter, either the set is in
       the ultrafilter or the complement is.  (Contributed by Jeff Hankins,
       1-Dec-2009.)  (Revised by Mario Carneiro, 29-Jul-2015.) $)
    ufilss $p |- ( ( F e. ( UFil ` X ) /\ S C_ X ) ->
        ( S e. F \/ ( X \ S ) e. F ) ) $=
      ( vx cufil cfv wcel wss cdif wo cpw cdm wb elfvdm elpw2g syl cv wral cfil
      wi isufil simprbi wceq eleq1 difeq2 eleq1d orbi12d rspccv sylbird imp ) B
      CEFGZACHZABGZCAIZBGZJZUKULACKZGZUPUKCELZGURULMBCENACUSOPUKDQZBGZCUTIZBGZJ
      ZDUQRZURUPTUKBCSFGVEDBCUAUBVDUPDAUQUTAUCZVAUMVCUOUTABUDVFVBUNBUTACUEUFUGU
      HPUIUJ $.

    $( The complement is in an ultrafilter iff the set is not.  (Contributed by
       Mario Carneiro, 11-Dec-2013.)  (Revised by Mario Carneiro,
       29-Jul-2015.) $)
    ufilb $p |- ( ( F e. ( UFil ` X ) /\ S C_ X ) ->
                  ( -. S e. F <-> ( X \ S ) e. F ) ) $=
      ( cufil cfv wcel wss wa wn cdif ufilss ord wi cfbas ufilfil filfbas fbncp
      cfil ex con2d 3syl adantr impbid ) BCDEFZACGZHZABFZIZCAJBFZUFUGUIABCKLUDU
      IUHMZUEUDBCREFBCNEFZUJBCOBCPUKUGUIUKUGUIIACBCQSTUAUBUC $.

    $( Any filter finer than an ultrafilter is actually equal to it.
       (Contributed by Jeff Hankins, 1-Dec-2009.)  (Revised by Mario Carneiro,
       29-Jul-2015.) $)
    ufilmax $p |- ( ( F e. ( UFil ` X ) /\ G e. ( Fil ` X ) /\ F C_ G ) ->
        F = G ) $=
      ( vx cufil cfv wcel cfil wss w3a simp3 cv wi filelss ex 3ad2ant2 wa wn wb
      cdif ufilb 3ad2antl1 simpl3 sseld cfbas filfbas fbncp con2d adantr sylbid
      syl syld con4d com23 mpdd ssrdv eqssd ) ACEFGZBCHFGZABIZJZABURUSUTKVADBAV
      ADLZBGZVBCIZVBAGZUSURVCVDMUTUSVCVDVBBCNOPVAVDVCVEVAVDVCVEMVAVDQZVEVCVFVER
      ZCVBTZAGZVCRZURUSVDVGVISUTVBACUAUBVFVIVHBGZVJVFABVHURUSUTVDUCUDVAVKVJMZVD
      USURVLUTUSVCVKUSBCUEFGZVCVKRZMBCUFVMVCVNVBCBCUGOUKUHPUIULUJUMOUNUOUPUQ $.

    $( The maximal property of an ultrafilter.  (Contributed by Jeff Hankins,
       30-Nov-2009.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    isufil2 $p |- ( F e. ( UFil ` X ) <-> ( F e. ( Fil ` X ) /\
          A. f e. ( Fil ` X ) ( F C_ f -> F = f ) ) ) $=
      ( vx vy cfv wcel cv wss wceq wi wral wa wn cin c0 wne cvv syl ad2antrr wo
      cufil cfil ufilfil ufilmax ralrimiva jca cdif cpw simpl selpw csn cun cfi
      3expia cfg simpll snex unexg sylancl ssfii cfbas filsspw biimpri ad2antlr
      snssd unssd ssun2 vex snnz ssn0 mp2an a1i simpr ineq2 neeq1d ralsn ralbii
      co sylibr wb filfbas simplr inss2 filtop adantr ineq1 rspcva sylan snfbas
      sylancr syl3anc fbunfip syl2anc mpbird w3a fsubbas mpbir3and sstrd unssad
      ssfg fgcl sseq2 eqeq2 rspcv 3syl mpid vsnid sselii sseldd syl5ibrcom syld
      imbi12d eleq2 impancom an32s con3d rexnal nne filelss reldisj difss filss
      wrex 3exp2 mpii imp sylbid syl5bi rexlimdva syl5bir orrd sylan2b sylanbrc
      isufil impbii ) BCUBFGZBCUCFZGZBAHZIZBYTJZKZAYRLZMZYQYSUUDBCUDYQUUCAYRYQY
      TYRGUUAUUBBYTCUEUOUFUGUUEYSDHZBGZCUUFUHZBGZUAZDCUIZLYQYSUUDUJUUEUUJDUUKUU
      FUUKGZUUEUUFCIZUUJDCUKZUUEUUMMZUUGUUIUUOUUGNEHZUUFOZPQZEBLZNZUUIUUOUUSUUG
      YSUUMUUDUUSUUGKYSUUMMZUUSUUDUUGUVAUUSMZUUDBCBUUFULZUMZUNFZUPVSZJZUUGUVBUU
      DBUVFIZUVGUVBBUVCUVFUVBUVDUVEUVFUVBUVDRGZUVDUVEIUVBYSUVCRGUVIYSUUMUUSUQUU
      FURBUVCYRRUSUTUVDRVASUVBUVECVBFZGZUVEUVFIUVBUVKUVDUUKIZUVDPQZPUVEGNZUVBBU
      VCUUKYSBUUKIUUMUUSBCVCTUVBUUFUUKUUMUULYSUUSUULUUMUUNVDVEVFVGUVMUVBUVCUVDI
      UVCPQUVMUVCBVHZUUFDVIZVJUVCUVDVKVLVMUVBUVNUUPYTOZPQZAUVCLZEBLZUVBUUSUVTUV
      AUUSVNUVSUUREBUVRUURAUUFUVPYTUUFJUVQUUQPYTUUFUUPVOVPVQVRVTUVBBUVJGZUVCUVJ
      GZUVNUVTWAYSUWAUUMUUSBCWBTUVBUUMUUFPQZCBGZUWBYSUUMUUSWCUVBCUUFOZUUFIUWEPQ
      ZUWCCUUFWDUVAUWDUUSUWFYSUWDUUMBCWEZWFUURUWFECBUUPCJUUQUWEPUUPCUUFWGVPWHWI
      UWEUUFVKWKYSUWDUUMUUSUWGTZUUFCBWJWLEABUVCCCWMWNWOUVBUWDUVKUVLUVMUVNWPWAUW
      HUVDBCWQSWRZUVECXASWSZWTUVBUVKUVFYRGUUDUVHUVGKZKUWIUVECXBUUCUWKAUVFYRYTUV
      FJUUAUVHUUBUVGYTUVFBXCYTUVFBXDXMXEXFXGUVBUUGUVGUUFUVFGUVBUVDUVFUUFUWJUUFU
      VDGUVBUVCUVDUUFUVODXHXIVMXJBUVFUUFXNXKXLXOXPXQYSUUTUUIKUUDUUMUUTUURNZEBYD
      YSUUIUUREBXRYSUWLUUIEBUWLUUQPJZYSUUPBGZMZUUIUUQPXSUWOUWMUUPUUHIZUUIUWOUUP
      CIUWMUWPWAUUPBCXTUUPUUFCYASYSUWNUWPUUIKZYSUWNUUHCIZUWQCUUFYBYSUWNUWRUWPUU
      IUUPUUHBCYCYEYFYGYHYIYJYKTXLYLYMUFDBCYOYNYP $.

    $( An ultrafilter is a prime filter.  (Contributed by Jeff Hankins,
       1-Jan-2010.)  (Revised by Mario Carneiro, 2-Aug-2015.) $)
    ufprim $p |- ( ( F e. ( UFil ` X ) /\ A C_ X /\ B C_ X ) ->
        ( ( A e. F \/ B e. F ) <-> ( A u. B ) e. F ) ) $=
      ( cfv wcel wss w3a cun wa 3ad2ant1 adantr simpr a1i filss syl13anc ex cin
      cdif indifcom cufil wo cfil ufilfil unss biimpi 3adant1 ssun1 ssun2 wn wb
      ufilb 3adant3 difun2 uncom difeq1i eqtr3i ineq2i 3eqtr4i syl3an1 syl5eqel
      jaod filin simp13 inss1 3expia sylbid orrd impbid ) CDUAEFZADGZBDGZHZACFZ
      BCFZUBZABIZCFZVMVNVRVOVMVNVRVMVNJZCDUCEFZVNVQDGZAVQGZVRVMVTVNVJVKVTVLCDUD
      KZLVMVNMVMWAVNVKVLWAVJVKVLJWAABDUEUFUGZLWBVSABUHNAVQCDOPQVMVOVRVMVOJZVTVO
      WABVQGZVRVMVTVOWCLVMVOMVMWAVOWDLWFWEBAUINBVQCDOPQVBVMVRVPVMVRJZVNVOWGVNUJ
      ZDASZCFZVOVMWHWJUKZVRVJVKWKVLACDULUMLVMVRWJVOVMVRWJHZVTBWIRZCFVLWMBGZVOVM
      VRVTWJWCKWLWMVQWIRZCDBASZRDVQASZRWMWOWPWQDBAIZASWPWQBAUNWRVQABAUOUPUQURBD
      ATVQDATUSVMVTVRWJWOCFWCVQWICDVCUTVAVJVKVLVRWJVDWNWLBWIVENWMBCDOPVFVGVHQVI
      $.
  $}

  ${
    $d x A $.  $d x L $.  $d x Y $.
    $( Conditions for the trace of an ultrafilter ` L ` to be an ultrafilter.
       (Contributed by Mario Carneiro, 27-Aug-2015.) $)
    trufil $p |- ( ( L e. ( UFil ` Y ) /\ A C_ Y ) ->
      ( ( L |`t A ) e. ( UFil ` A ) <-> A e. L ) ) $=
      ( vx cufil cfv wcel wss wa cdif cfil ufilfil wo simpll simplr cin elrestr
      cvv adantr wceq crest co wn wb trfil3 sylan syl5ib cpw wral biimprd elpwi
      cv simpr sstrd ufilss syl2anc wi cdm id elfvdm ssexg syl2anr 3expia df-ss
      syldan sylib eleq1d sylibd indif1 sseqin2 difeq1d syl5eq syl3anc eqeltrrd
      simprr expr orim12d sylan2 ralrimiva jctird isufil syl6ibr impbid con1bid
      mpd ufilb bitrd ) BCEFZGZACHZIZBAUAUBZAEFGZCAJBGZUCZABGZWKWMWOWMWLAKFGZWK
      WOWLALWIBCKFGWJWQWOUDBCLABCUEUFZUGWKWOWQDULZWLGZAWSJZWLGZMZDAUHZUIZIWMWKW
      OWQXEWKWQWOWRUJWKXCDXDWSXDGWKWSAHZXCWSAUKWKXFIZWSBGZCWSJZBGZMZXCXGWIWSCHX
      KWIWJXFNXGWSACWKXFUMZWIWJXFOUNWSBCUOUPXGXHWTXJXBXGXHWSAPZWLGZWTWKXHXNUQZX
      FWIWJARGZXOWJWJCEURZGXPWIWJUSBCEUTACXQVAVBZWIXPXHXNWSABWHRQVCVESXGXMWSWLX
      GXFXMWSTXLWSAVDVFVGVHWKXFXJXBWKXFXJIZIZXIAPZXAWLXTYACAPZWSJXACAWSVIXTYBAW
      SXTWJYBATWIWJXSOACVJVFVKVLXTWIXPXJYAWLGWIWJXSNWKXPXSXRSWKXFXJVOXIABWHRQVM
      VNVPVQWEVRVSVTDWLAWAWBWCWKWPWNABCWFWDWG $.
  $}

  ${
    $d f g h x F $.  $d f g h x X $.
    $( A filter is contained in some ultrafilter.  This version of ~ filssufil
       contains the choice as a hypothesis (in the assumption that ` ~P ~P X `
       is well-orderable).  (Contributed by Mario Carneiro, 24-May-2015.)
       (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    filssufilg $p |- ( ( F e. ( Fil ` X ) /\ ~P ~P X e. dom card ) ->
        E. f e. ( UFil ` X ) F C_ f ) $=
      ( vh vg vx cfv wcel cpw wa cv wss wral wrex c0 wne wi sseq2 elrab syl cdm
      cfil ccrd wpss wn crab cufil crpss wor w3a cuni simpr rabss filsspw selpw
      wal sylibr mprgbir ssnum sylancl ssid jctr ne0i adantr simpr1 ssrab sylib
      a1d cun simpld simpr2 simpr3 sorpssun ralrimivva filuni syl3anc wex ssel2
      simprd ssuni sylancom exlimdv syl5bi sylc sylanbrc alrimiv zornn0g ralrab
      n0 ex weq simpll imim1d df-pss simplbi2 necon1bd a2i syl6 ralimdv adantll
      sstr2 imp isufil2 simplr jca syl2anb reximi2 ) BCUBGZHZCIZIZUCUAZHZJZAKZD
      KZUDZUEZDBEKZLZEXHUFZMZAYANZBXOLZACUGGZNXNYAXLHZYAOPZFKZYALZYHOPZYHUHUIZU
      JZYHUKZYAHZQZFUPZYCXNXMYAXKLZYFXIXMULYQXTXSXKHZQEXHXTEXHXKUMXSXHHZYRXTYSX
      SXJLYRXSCUNEXJUOUQVHURXKYAUSUTXIYGXMXIBYAHZYGXIXIBBLZJYTXIUUABVAVBXTUUAEB
      XHXSBBRSUQYABVCTVDXIYPXMXIYOFXIYLYNXIYLJZYMXHHZBYMLZYNUUBYHXHLZYJXSXPVIYH
      HZDYHMEYHMZUUCUUBUUEXTEYHMZUUBYIUUEUUHJXIYIYJYKVEZXTEXHYHVFVGVJXIYIYJYKVK
      ZUUBYKUUGXIYIYJYKVLYKUUFEDYHYHYHXSXPVMVNTEDYHCVOVPUUBYIYJUUDUUIUUJYJXPYHH
      ZDVQYIUUDDYHWIYIUUKUUDDYIUUKUUDYIUUKBXPLZUUDYIUUKJZXPXHHZUULUUMXPYAHUUNUU
      LJYHYAXPVRXTUULEXPXHXSXPBRZSVGVSBXPYHVTWAWJWBWCWDXTUUDEYMXHXSYMBRSWEWJWFV
      DADFYAWGVPYBYDAYAYEXOYAHXOXHHZYDJZUULXRQZDXHMZXOYEHZYDJYBXTYDEXOXHXSXOBRS
      XTUULXRDEXHUUOWHUUQUUSJZUUTYDUVAUUPXOXPLZADWKZQZDXHMZUUTUUPYDUUSWLYDUUSUV
      EUUPYDUUSUVEYDUURUVDDXHYDUURUVBXRQUVDYDUVBUULXRBXOXPXAWMUVBXRUVCUVBXQXOXP
      XQUVBXOXPPXOXPWNWOWPWQWRWSXBWTDXOCXCWEUUPYDUUSXDXEXFXGT $.

    $( A filter is contained in some ultrafilter.  (Requires the Axiom of
       Choice, via ~ numth3 .)  (Contributed by Jeff Hankins, 2-Dec-2009.)
       (Revised by Stefan O'Rear, 29-Jul-2015.) $)
    filssufil $p |- ( F e. ( Fil ` X ) -> E. f e. ( UFil ` X ) F C_ f ) $=
      ( cfil cfv wcel cpw ccrd cdm cv cufil wrex filtop pwexg numth3 filssufilg
      wss cvv 4syl mpdan ) BCDEFZCGZGZHIFZBAJQACKELUACBFUBRFUCRFUDBCMCBNUBRNUCR
      OSABCPT $.
  $}

  ${
    $d f g F $.  $d f g u x X $.  $d f g u Y $.
    $( Define the (strong) ultrafilter lemma, parameterized over base sets.  A
       set ` X ` satisfies the ultrafilter lemma if every filter on ` X ` is a
       subset of some ultrafilter.  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    isufl $p |- ( X e. V -> ( X e. UFL <->
      A. f e. ( Fil ` X ) E. g e. ( UFil ` X ) f C_ g ) ) $=
      ( vx cv wss cufil wrex cfil wral cufl wceq fveq2 rexeqdv raleqbidv df-ufl
      cfv elab2g ) AFBFGZBEFZHRZIZAUAJRZKTBDHRZIZADJRZKEDLCUADMZUCUFAUDUGUADJNU
      HTBUBUEUADHNOPEABQS $.

    $( Property of a set that satisfies the ultrafilter lemma.  (Contributed by
       Mario Carneiro, 26-Aug-2015.) $)
    ufli $p |- ( ( X e. UFL /\ F e. ( Fil ` X ) ) ->
        E. f e. ( UFil ` X ) F C_ f ) $=
      ( vg cufl wcel cv wss cufil cfv wrex cfil wral isufl wceq rexbidv rspccva
      ibi sseq1 sylan ) CEFZDGZAGZHZACIJZKZDCLJZMZBUGFBUCHZAUEKZUAUHDAECNRUFUJD
      BUGUBBOUDUIAUEUBBUCSPQT $.

    $( Consequence of ~ filssufilg : a set whose double powerset is
       well-orderable satisfies the ultrafilter lemma.  (Contributed by Mario
       Carneiro, 26-Aug-2015.) $)
    numufl $p |- ( ~P ~P X e. dom card -> X e. UFL ) $=
      ( vf vg cpw ccrd cdm wcel cufl cv wss cufil cfv wrex cfil wral filssufilg
      ancoms ralrimiva cvv wb pwexr pwexb sylibr isufl syl mpbird ) ADZDEFZGZAH
      GZBIZCIJCAKLMZBANLZOZUIULBUMUKUMGUIULCUKAPQRUIASGZUJUNTUIUGSGUOUGUHUAAUBU
      CBCSAUDUEUF $.

    $( A finite set satisfies the ultrafilter lemma.  (Contributed by Mario
       Carneiro, 26-Aug-2015.) $)
    fiufl $p |- ( X e. Fin -> X e. UFL ) $=
      ( cfn wcel cpw cufl pwfi ccrd cdm finnum numufl syl sylbi ) ABCADZBCZAECZ
      AFNMDZBCZOMFQPGHCOPIAJKLL $.

    $( The axiom of choice implies the ultrafilter lemma.  (Contributed by
       Mario Carneiro, 26-Aug-2015.) $)
    acufl $p |- ( CHOICE -> UFL = _V ) $=
      ( vx wac cufl cvv wcel cpw ccrd cdm vex pwex wceq dfac10 biimpi syl5eleqr
      cv numufl syl a1i 2thd eqrdv ) BACDBAOZCEZUADEZBUAFZFZGHZEUBBUEDUFUDUAAIZ
      JJBUFDKLMNUAPQUCBUGRST $.

    $( If ` Y ` is a subset of ` X ` and filters extend to ultrafilters in
       ` X ` , then they still do in ` Y ` .  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    ssufl $p |- ( ( X e. UFL /\ Y C_ X ) -> Y e. UFL ) $=
      ( vf vg vu cufl wcel wss wa cv cufil cfv wrex co cfbas cpw syl2anc adantr
      cfil syl wral cfg simpll filfbas adantl simplr sspwb sylib sstrd fbasweak
      filsspw syl3anc fgcl ufli crest ssfg simprr filtop ad2antlr sseldd simprl
      wb trufil mpbird restid2 ssrest eqsstr3d sseq2 rspcev rexlimddv ralrimiva
      wceq cvv ssexg ancoms isufl ) AFGZBAHZIZBFGZCJZDJZHZDBKLZMZCBSLZUAZVSWECW
      FVSWAWFGZIZAWAUBNZEJZHZWEEAKLZWIVQWJASLGZWLEWMMVQVRWHUCZWIWAAOLGZWNWIWABO
      LGZWAAPZHVQWPWHWQVSWABUDUEWIWABPZWRWHWAWSHZVSWABUKUEZWIVRWSWRHVQVRWHUFZBA
      UGUHUIWOWAFBAUJULZWAAUMTEWJAUNQWIWKWMGZWLIZIZWKBUONZWDGZWAXGHZWEXFXHBWKGZ
      XFWAWKBXFWAWJWKWIWAWJHZXEWIWPXKXCWAAUPTRWIXDWLUQUIZWHBWAGZVSXEWABURUSZUTX
      FXDVRXHXJVBWIXDWLVAZWIVRXEXBRBWKAVCQVDXFWAWABUONZXGXFXMWTXPWAVLXNWIWTXEXA
      RBWAWAVEQXFXDWAWKHXPXGHXOXLBWAWKWMVFQVGWCXIDXGWDWBXGWAVHVIQVJVKVSBVMGZVTW
      GVBVRVQXQBAFVNVOCDVMBVPTVD $.
  $}

  ${
    $d f g x F $.  $d f g x X $.
    $( If the ultrafilter containing a given filter is unique, the filter is an
       ultrafilter.  (Contributed by Jeff Hankins, 3-Dec-2009.)  (Revised by
       Mario Carneiro, 2-Oct-2015.) $)
    ufileu $p |- ( F e. ( Fil ` X ) ->
        ( F e. ( UFil ` X ) <-> E! f e. ( UFil ` X ) F C_ f ) ) $=
      ( vg cfv wcel cv wss wceq wi wral wa ex wb syl wn c0 wne ad2antrr cvv csn
      cfil cufil wreu ufilfil ufilmax 3expa eqcomd sylan2 ralrimiva sseq2 eqreu
      ssid mp3an2 mpdan wrex reu6 ibibr pm5.74ri bitr3d rspcva adantll ad2antlr
      vx filelss cdif cun cfi cfg co cfbas cpw difss filtop difexg elpwg mpbiri
      filsspw snssd unssd ssun1 filn0 ssn0 sylancr ad2ant2rl df-ss sylib sseq1d
      cin filss 3exp2 com23 impd adantr imp sylbid con3d expr impr ineq2 neeq1d
      ralsng inssdif0 syl6bbr mpbird filfbas difssd ssdif0 eqss simplbi2 notbid
      necon3bbii eleq1 biimpcd sylan9 adantl syl5bir mpd snfbas syl3anc fbunfip
      necon2ad syl2anc w3a fsubbas mpbir3and fgcl filssufil r19.29 biimp simpll
      snex unexg sylancl ssfii ssfg sstrd unssad sstr2 sseldd imim1d syl56 syl5
      a2i rexlimdvw mpan2d an32s snidg elun2 adantlr simpllr simprl ufilb con4d
      mpdd ssrdv eqssd simplr eqeltrd rexlimdva syl5bi impbid2 ) BCUBEZFZBCUCEZ
      FZBAGZHZAUVEUDZUVFUVHUVGBIZJZAUVEKZUVIUVFUVKAUVEUVGUVEFUVFUVGUVCFZUVKUVGC
      UEUVFUVMLZUVHUVJUVNUVHLBUVGUVFUVMUVHBUVGIBUVGCUFUGUHMUIUJUVFBBHZUVLUVIBUM
      UVHUVOAUVEBUVGBBUKULUNUOUVIUVHUVGDGZIZNZAUVEKZDUVEUPUVDUVFUVHADUVEUQUVDUV
      SUVFDUVEUVDUVPUVEFZLZUVSUVFUWAUVSLZBUVPUVEUWBBUVPUVTUVSBUVPHZUVDUVRUWCAUV
      PUVEUVQUVHUVRUWCUVQUVHUVRUVQUVHURUSUVGUVPBUKUTVAVBUWBVDUVPBUWBVDGZUVPFZUW
      DCHZUWDBFZUVTUWEUWFJZUVDUVSUVTUVPUVCFZUWHUVPCUEUWIUWEUWFUWDUVPCVEMOVCUWBU
      WFUWEUWGUWBUWFUWEUWGJUWBUWFLUWGUWEUWBUWFUWGPZUWEPZUWBUWFUWJLZLZUWKCUWDVFZ
      UVPFZUWMCBUWNUAZVGZVHEZVIVJZUVPUWNUWAUWLUVSUWSUVPHZUWAUWLLZUVSUWTUXAUVSUW
      SUVGHZAUVEUPZUWTUXAUWSUVCFZUXCUXAUWRCVKEZFZUXDUXAUXFUWQCVLZHZUWQQRZQUWRFP
      ZUXABUWPUXGUVDBUXGHUVTUWLBCVRSUXAUWNUXGUXAUWNUXGFZUWNCHZCUWDVMUXAUWNTFZUX
      KUXLNUXACBFZUXMUVDUXNUVTUWLBCVNSZCUWDBVOOZUWNCTVPOVQVSVTUXABUWQHBQRZUXIBU
      WPWAUVDUXQUVTUWLBCWBSBUWQWCWDUXAUXJUVGUVPWIZQRZDUWPKZABKZUXAUXTABUXAUVGBF
      ZLUXTUVGCWIZUWDHZPZUXAUYBUYEUWAUWFUWJUYBUYEJUWAUWFLUYBUWJUYEUWAUWFUYBUWJU
      YEJUWAUWFUYBLZLZUYDUWGUYGUYDUVGUWDHZUWGUYGUYCUVGUWDUYGUVGCHZUYCUVGIUVDUYB
      UYIUVTUWFUVGBCVEWEUVGCWFWGWHUWAUYFUYHUWGJZUVDUYFUYJJUVTUVDUWFUYBUYJUVDUYB
      UWFUYJUVDUYBUWFUYHUWGUVGUWDBCWJWKWLWMWNWOWPWQWRWLWSWOUXAUXTUYENZUYBUXAUXM
      UYKUXPUXMUXTUVGUWNWIZQRZUYEUXSUYMDUWNTUVPUWNIUXRUYLQUVPUWNUVGWTXAXBUYDUYL
      QUVGCUWDXCXLXDOWNXEUJUXABUXEFZUWPUXEFZUXJUYANUVDUYNUVTUWLBCXFSUXAUXLUWNQR
      ZUXNUYOUXACUWDXGUXAUXNUYPUXOUXAUXNUWNQUWNQICUWDHZUXAUXNPZCUWDXHUWLUYQUYRJ
      UWAUWFUYQUWDCIZUWJUYRUYSUWFUYQUWDCXIXJUYSUWJUYRUYSUWGUXNUWDCBXMXKXNXOXPXQ
      YBXRUXOUWNCBXSXTADBUWPCCYAYCXEUXAUXNUXFUXHUXIUXJYDNUXOUWQBCYEOYFZUWRCYGOA
      UWSCYHOUVSUXCLUVRUXBLZAUVEUPUXAUWTUVRUXBAUVEYIUXAVUAUWTAUVEUXAUVRUXBUWTUV
      RUVHUVQJUXAUXBUVQJUXBUWTJUVHUVQYJUXAUXBUVHUVQUXABUWSHUXBUVHJUXABUWPUWSUXA
      UWQUWRUWSUXAUWQTFZUWQUWRHUXAUVDUWPTFVUBUVDUVTUWLYKUWNYLBUWPUVCTYMYNUWQTYO
      OUXAUXFUWRUWSHUYTUWRCYPOYQZYRBUWSUVGYSOUUAUXBUVQUWTUVQUXBUWTUVGUVPUWSUKXN
      UUDUUBWMUUEUUCUUFWOUUGUWAUWLUWNUWSFUVSUXAUWQUWSUWNVUCUXAUWNUWPFZUWNUWQFUX
      AUXMVUDUXPUWNTUUHOUWNUWPBUUIOYTUUJYTUWMUVTUWFUWKUWONUVDUVTUVSUWLUUKUWBUWF
      UWJUULUWDUVPCUUMYCXEWRUUNMWLUUOUUPUUQUVDUVTUVSUURUUSMUUTUVAUVB $.
  $}

  ${
    $d f x y z F $.  $d f x y z X $.
    $( A filter is equal to the intersection of the ultrafilters containing it.
       (Contributed by Jeff Hankins, 1-Jan-2010.)  (Revised by Stefan O'Rear,
       2-Aug-2015.) $)
    filufint $p |- ( F e. ( Fil ` X ) ->
        |^| { f e. ( UFil ` X ) | F C_ f } = F ) $=
      ( vy vz cfv wcel cv wss wi wn wa w3a c0 wne 3ad2ant1 cvv wb syl wceq cfil
      vx cufil crab cint wral vex elintrab wrex cdif csn cun cfi cfg co filsspw
      cfbas cpw difss filtop difexg elpwg mpbiri snssd unssd ssun1 ssn0 sylancr
      filn0 cin elsni filelss 3adant3 reldisj dfss4 biimpi 3ad2ant3 bitrd filss
      sseq2d 3exp2 3imp sylbid 3exp com24 3imp1 ineq2 neeq1d syl5ibrcom expimpd
      necon3bd sylan2i ralrimivv filfbas a1i 3ad2ant2 difeq2 dif0 syl6eq eqtr3d
      eqeltrd 3expia ex snfbas syl3anc fbunfip syl2anc mpbird fsubbas mpbir3and
      com23 fgcl filssufil snex unexg mpan2 ssfii unssad sstrd ad2antrr ufilfil
      ssfg simpr 0nelfil disjdif simprr unssbd adantr simprl snidg sseldd filin
      ad2antlr syl5eqelr expr mtod jca exp31 reximdvai syl5 mpd con3d a1d ancld
      impcom reximdva syl5com pm2.61d rexanali syl6ib con4d ssrdv ssintub eqssd
      syl5bi ) BCUAFZGZBAHZIZACUCFZUDUEZBUUQUBUVABUBHZUVAGUUSUVBUURGZJAUUTUFZUU
      QUVBBGZUUSAUVBUUTUBUGUHUUQUVEUVDUUQUVEKZUUSUVCKZLZAUUTUIZUVDKUUQUVFUVIUUQ
      UVFLUVBCIZUVIUUQUVFUVJUVIUUQUVFUVJMZCBCUVBUJZUKZULZUMFZUNUOZUUPGZUVIUVKUV
      OCUQFZGZUVQUVKUVSUVNCURZIZUVNNOZNUVOGKZUVKBUVMUVTUUQUVFBUVTIUVJBCUPPUVKUV
      LUVTUVKUVLUVTGZUVLCIZCUVBUSZUVKUVLQGZUWDUWERUUQUVFUWGUVJUUQCBGZUWGBCUTZCU
      VBBVASZPUVLCQVBSVCVDVEUUQUVFUWBUVJUUQBUVNIBNOUWBBUVMVFBCVIBUVNVGVHPUVKUWC
      DHZEHZVJZNOZEUVMUFDBUFZUVKUWNDEBUVMUWLUVMGUVKUWKBGZUWLUVLTZUWNUWLUVLVKUVK
      UWPUWQUWNUVKUWPLUWNUWQUWKUVLVJZNOZUUQUVFUVJUWPUWSUUQUWPUVJUVFUWSUUQUWPUVJ
      UVFUWSJUUQUWPUVJMZUVEUWRNUWTUWRNTZUWKUVBIZUVEUWTUXAUWKCUVLUJZIZUXBUWTUWKC
      IZUXAUXDRUUQUWPUXEUVJUWKBCVLVMUWKUVLCVNSUVJUUQUXDUXBRUWPUVJUXCUVBUWKUVJUX
      CUVBTZUVBCVOVPZVTVQVRUUQUWPUVJUXBUVEJUUQUWPUVJUXBUVEUWKUVBBCVSWAWBWCWKWDW
      EWFUWQUWMUWRNUWLUVLUWKWGWHWIWJWLWMUVKBUVRGZUVMUVRGZUWCUWORUUQUVFUXHUVJBCW
      NPUVKUWEUVLNOZUWHUXIUWEUVKUWFWOUUQUVFUVJUXJUUQUVJUVFUXJUUQUVJUVFUXJJUUQUV
      JLUVEUVLNUUQUVJUVLNTZUVEUUQUVJUXKMZUVBCBUXLUXCUVBCUVJUUQUXFUXKUXGWPUXKUUQ
      UXCCTUVJUXKUXCCNUJCUVLNCWQCWRWSVQWTUUQUVJUWHUXKUWIPXAXBWKXCXKWBUUQUVFUWHU
      VJUWIPUVLCBXDXEDEBUVMCCXFXGXHUUQUVFUVSUWAUWBUWCMRZUVJUUQUWHUXMUWIUVNBCXIS
      PXJZUVOCXLSUVQUVPUURIZAUUTUIUVKUVIAUVPCXMUVKUXOUVHAUUTUVKUURUUTGZUXOUVHUV
      KUXPLZUXOLZUUSUVGUXRBUVPUURUVKBUVPIUXPUXOUVKBUVOUVPUVKBUVMUVOUUQUVFUVNUVO
      IZUVJUUQUVNQGZUXSUUQUVMQGUXTUVLXNBUVMUUPQXOXPUVNQXQSZPXRUVKUVSUVOUVPIZUXN
      UVOCYBZSXSXTUXQUXOYCXSUXRUVCNUURGZUXPUYDKZUVKUXOUXPUURUUPGZUYEUURCYAZUURC
      YDSYMUXQUXOUVCUYDUXQUXOUVCLZLZNUVBUVLVJZUURUVBCYEUYIUYFUVCUVLUURGUYJUURGU
      XPUYFUVKUYHUYGYMUXQUXOUVCYFUYIUVMUURUVLUYIUVMUVPUURUXQUVMUVPIUYHUXQUVMUVO
      UVPUVKUVMUVOIZUXPUUQUVFUYKUVJUUQBUVMUVOUYAYGPYHUXQUVSUYBUVKUVSUXPUXNYHUYC
      SXSYHUXQUXOUVCYIXSUVKUVLUVMGZUXPUYHUUQUVFUYLUVJUUQUWGUYLUWJUVLQYJSPXTYKUV
      BUVLUURCYLXEYNYOYPYQYRYSYTUUAXBUUQUVJKZUVIJUVFUUQUUSAUUTUIUYMUVIABCXMUYMU
      USUVHAUUTUYMUXPLZUUSUVGUYNUVGUUSUXPUYMUVGUXPUVCUVJUXPUYFUVCUVJJUYGUYFUVCU
      VJUVBUURCVLXCSUUBUUEUUCUUDUUFUUGYHUUHXCUUSUVCAUUTUUIUUJUUKUUOUULBUVAIUUQA
      BUUTUUMWOUUN $.
  $}

  ${
    $d x y A $.  $d x y X $.  $d x y V $.
    $( Lemma for ~ fixufil and ~ uffixfr .  (Contributed by Mario Carneiro,
       12-Dec-2013.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    uffix $p |- ( ( X e. V /\ A e. X ) -> ( { { A } } e. ( fBas ` X ) /\
          { x e. ~P X | A e. x } = ( X filGen { { A } } ) ) ) $=
      ( vy wcel wa csn cfbas cfv cv cpw crab cfg wss snssi adantl wb a1i syl co
      wceq c0 wne snnzg simpl snfbas syl3anc wrex selpw snex snid sseq1 sylancr
      rspcev cint wi sstr2 snidg intsn syl6eleqr ssel syl5com sylan9r rexlimdva
      intss1 impbid2 anbi12d eleq2 elrab elfg 3bitr4d eqrdv jca ) DCFZBDFZGZBHZ
      HZDIJFZBAKZFZADLZMZDVSNUAZUBVQVRDOZVRUCUDZVOVTVPWFVOBDPQVPWGVOBDUEQVOVPUF
      VRDCUGUHZVQEWDWEVQEKZWCFZBWIFZGZWIDOZWAWIOZAVSUIZGZWIWDFZWIWEFZVQWJWMWKWO
      WJWMRVQEDUJSVQWKWOWKVRVSFVRWIOZWOVRBUKZULBWIPWNWSAVRVSWAVRWIUMUOUNVQWNWKA
      VSWAVSFZWNVSUPZWIOZVQWKXAXBWAOWNXCUQWAVSVFXBWAWIURTVQBXBFXCWKVQBVRXBVPBVR
      FVOBDUSQVRWTUTVAXBWIBVBVCVDVEVGVHWQWLRVQWBWKAWIWCWAWIBVIVJSVQVTWRWPRWHAWI
      VSDVKTVLVMVN $.

    $( The condition describing a fixed ultrafilter always produces an
       ultrafilter.  (Contributed by Jeff Hankins, 9-Dec-2009.)  (Revised by
       Mario Carneiro, 12-Dec-2013.)  (Revised by Stefan O'Rear,
       29-Jul-2015.) $)
    fixufil $p |- ( ( X e. V /\ A e. X ) ->
        { x e. ~P X | A e. x } e. ( UFil ` X ) ) $=
      ( vy wcel wa cv cpw crab cfv wo wral csn wceq cun wss sylib eleq2 elrab
      cfil cdif cufil cfg co cfbas uffix simprd simpld syl eqeltrd undif2 elpwi
      fgcl ssequn1 syl5req eleq2d biimpac elun adantll ibar adantl difss elpw2g
      wb mpbiri ad2antrr biantrurd orbi12d mpbid ralrimiva ralbii sylibr isufil
      orbi12i sylanbrc ) DCFZBDFZGZBAHZFZADIZJZDUAKZFEHZWCFZDWEUBZWCFZLZEWBMZWC
      DUCKFVSWCDBNNZUDUEZWDVSWKDUFKFZWCWLOZABCDUGZUHVSWMWLWDFVSWMWNWOUIWKDUNUJU
      KVSWEWBFZBWEFZGZWGWBFZBWGFZGZLZEWBMWJVSXBEWBVSWPGZWQWTLZXBVRWPXDVQVRWPGBW
      EWGPZFZXDWPVRXFWPDXEBWPXEWEDPZDWEDULWPWEDQXGDOWEDUMWEDUORUPUQURBWEWGUSRUT
      XCWQWRWTXAWPWQWRVEVSWPWQVAVBXCWSWTVQWSVRWPVQWSWGDQDWEVCWGDCVDVFVGVHVIVJVK
      WIXBEWBWFWRWHXAWAWQAWEWBVTWEBSTWAWTAWGWBVTWGBSTVOVLVMEWCDVNVP $.
  $}

  ${
    $d x A $.  $d x y F $.  $d x y X $.
    $( An ultrafilter is either fixed or free.  A fixed ultrafilter is called
       principal (generated by a single element ` A ` ), and a free ultrafilter
       is called nonprincipal (having empty intersection).  Note that examples
       of free ultrafilters cannot be defined in ZFC without some form of
       global choice.  (Contributed by Jeff Hankins, 4-Dec-2009.)  (Revised by
       Stefan O'Rear, 2-Aug-2015.) $)
    uffixfr $p |- ( F e. ( UFil ` X ) -> ( A e. |^| F <->
          F = { x e. ~P X | A e. x } ) ) $=
      ( cufil cfv wcel cint cv wceq wa wss csn syl adantr elintg adantl simprbi
      3syl eleq2 cpw crab cfil simpl cfg co cfbas ufilfil filtop cuni wne filn0
      intssuni filunibas sseqtrd sselda syl2anc simprd simpld fgcl eqeltrd wral
      c0 uffix filsspw ibi ssrab sylanbrc ufilmax syl3anc eqimss wb sylan elrab
      biimpac mpbird impbida ) CDEFGZBCHZGZCBAIZGZADUAZUBZJZVRVTKZVRWDDUCFZGCWD
      LZWEVRVTUDWFWDDBMMZUEUFZWGWFWIDUGFGZWDWJJZWFDCGZBDGZWKWLKVRWMVTVRCWGGZWMC
      DUHZCDUINZOVRVSDBVRVSCUJZDVRWOCVCUKVSWRLWPCDULCUMSVRWOWRDJWPCDUNNUOUPABCD
      VDUQZURWFWKWJWGGWFWKWLWSUSWIDUTNVAWFCWCLZWBACVBZWHWFWOWTVRWOVTWPOCDVENVTX
      AVRVTXAABCVSPVFQWBAWCCVGZVHCWDDVIVJVRWEKZVTXAXCWHXAWEWHVRCWDVKQWHWTXAXBRN
      XCDWDGZWNVTXAVLVRWMWEXDWQWEWMXDCWDDTVOVMXDDWCGWNWBWNADWCWADBTVNRABCDPSVPV
      Q $.

    $( A classification of fixed ultrafilters.  (Contributed by Mario Carneiro,
       24-May-2015.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    uffix2 $p |- ( F e. ( UFil ` X ) -> ( |^| F =/= (/) <->
          E. x e. X F = { y e. ~P X | x e. y } ) ) $=
      ( cufil cfv wcel cv cint wex cpw crab wceq wa c0 wne wrex cuni cfil wss
      ufilfil filn0 intssuni 3syl filunibas syl sseqtrd pm4.71rd uffixfr anbi2d
      sseld bitrd exbidv n0 df-rex 3bitr4g ) CDEFGZAHZCIZGZAJURDGZCURBHGBDKLMZN
      ZAJUSOPVBADQUQUTVCAUQUTVAUTNVCUQUTVAUQUSDURUQUSCRZDUQCDSFGZCOPUSVDTCDUAZC
      DUBCUCUDUQVEVDDMVFCDUEUFUGUKUHUQUTVBVABURCDUIUJULUMAUSUNVBADUOUP $.
  $}

  ${
    $d x A $.  $d x y F $.  $d x y X $.
    $( The singleton of the generator of a fixed ultrafilter is in the filter.
       (Contributed by Mario Carneiro, 24-May-2015.)  (Revised by Stefan
       O'Rear, 2-Aug-2015.) $)
    uffixsn $p |- ( ( F e. ( UFil ` X ) /\ A e. |^| F ) -> { A } e. F ) $=
      ( vx cufil cfv wcel cint wa csn cv cpw crab wss cuni cfil c0 ufilfil wceq
      wne filn0 intssuni 3syl filunibas syl sselda snssd snex elpw sylibr snidg
      sseqtrd adantl eleq2 elrab sylanbrc uffixfr biimpa eleqtrrd ) BCEFGZABHZG
      ZIZAJZADKZGZDCLZMZBVCVDVGGZAVDGZVDVHGVCVDCNVIVCACUTVACAUTVABOZCUTBCPFGZBQ
      TVAVKNBCRZBCUABUBUCUTVLVKCSVMBCUDUEULUFUGVDCAUHUIUJVBVJUTAVAUKUMVFVJDVDVG
      VEVDAUNUOUPUTVBBVHSDABCUQURUS $.

    $( An ultrafilter is generated by at most one element (because free
       ultrafilters have no generators and fixed ultrafilters have exactly
       one).  (Contributed by Mario Carneiro, 24-May-2015.)  (Revised by Stefan
       O'Rear, 2-Aug-2015.) $)
    ufildom1 $p |- ( F e. ( UFil ` X ) -> |^| F ~<_ 1o ) $=
      ( vx cufil cfv wcel cint c1o cdom wbr c0 breq1 wne wa cen cv wex csn con0
      syl wceq wss uffixsn intss1 simpr snssd eqssd ex eximdv en1 3imtr4g endom
      n0 imp 1on 0domg mp1i pm2.61ne ) ABDEFZAGZHIJZKHIJZUTKUTKHILUSUTKMZNUTHOJ
      ZVAUSVCVDUSCPZUTFZCQUTVERZUAZCQVCVDUSVFVHCUSVFVHUSVFNZUTVGVIVGAFUTVGUBVEA
      BUCVGAUDTVIVEUTUSVFUEUFUGUHUICUTUMCUTUJUKUNUTHULTHSFVBUSUOHSUPUQUR $.

    $( An ultrafilter containing a finite element is fixed.  (Contributed by
       Jeff Hankins, 5-Dec-2009.)  (Revised by Stefan O'Rear, 2-Aug-2015.) $)
    uffinfix $p |- ( ( F e. ( UFil ` X ) /\ S e. F /\ S e. Fin ) ->
        E. x e. X F = { y e. ~P X | x e. y } ) $=
      ( cufil cfv wcel cfn w3a cint c0 wne wel cpw crab wceq wrex cfil ufilfil
      filfinnfr syl3an1 wb uffix2 3ad2ant1 mpbid ) DEFGHZCDHZCIHZJDKLMZDABNBEOP
      QAERZUGDESGHUHUIUJDETCDEUAUBUGUHUJUKUCUIABDEUDUEUF $.

    $( An ultrafilter is free iff it contains the Fr&eacute;chet filter
       ~ cfinfil as a subset.  (Contributed by NM, 14-Jul-2008.)  (Revised by
       Stefan O'Rear, 2-Aug-2015.) $)
    cfinufil $p |- ( F e. ( UFil ` X ) -> ( |^| F = (/) <->
          { x e. ~P X | ( X \ x ) e. Fin } C_ F ) ) $=
      ( vy cfv wcel c0 wceq cv cdif cfn wi wss wa wn wb ufilb adantr com23 syl
      cufil cint cpw wral crab elpwi wne cfil ufilfil filfinnfr 3exp imp sylbid
      necon4bd ex sylan2 ralrimdva csn uffixsn filelss syl2anc dfss4 sylib snfi
      syl6eqel difss filtop elpw2g 3syl mpbiri difeq2 eleq1d eleq1 imbi12d mpid
      rspcv syldan pm2.24d sylbird impancom pm2.01d eq0rdv impbid rabss syl6bbr
      syld ) BCUAEFZBUBZGHZCAIZJZKFZWJBFZLZACUCZUDZWLAWOUEBMWGWIWPWGWIWNAWOWJWO
      FWGWJCMZWIWNLWJCUFWGWQNZWLWIWMWRWLWIWMLWRWLNZWMWHGWSWMOZWKBFZWHGUGZWRWTXA
      PWLWJBCQRWRWLXAXBLZWRBCUHEFZWLXCLWGXDWQBCUIZRXDXAWLXBXDXAWLXBWKBCUJUKSTUL
      UMUNUOSUPUQWGWPWIWGWPNZDWHXFDIZWHFZWGXHWPXHOZWGXHNZWPCXGURZJZBFZXIXJWPCXL
      JZKFZXMXJXNXKKXJXKCMZXNXKHXJXDXKBFZXPWGXDXHXERZXGBCUSZXKBCUTVAZXKCVBVCXGV
      DVEXJXLWOFZWPXOXMLZLXJYAXLCMZCXKVFXJXDCBFYAYCPXRBCVGXLCBVHVIVJWNYBAXLWOWJ
      XLHZWLXOWMXMYDWKXNKWJXLCVKVLWJXLBVMVNVPTVOXJXMXQOZXIWGXHXPYEXMPXTXKBCQVQX
      JXQXIXSVRVSWFVTWAWBUOWCWLAWOBWDWE $.
  $}

  ${
    $d f x y A $.  $d f y B $.  $d f x y X $.
    $( An infinite subset is contained in a free ultrafilter.  (Contributed by
       Jeff Hankins, 6-Dec-2009.)  (Revised by Mario Carneiro, 4-Dec-2013.) $)
    ufinffr $p |- ( ( X e. B /\ A C_ X /\ _om ~<_ A ) ->
        E. f e. ( UFil ` X ) ( A e. f /\ |^| f = (/) ) ) $=
      ( vx vy wcel wss com cv cdif cfn cfv wrex cint c0 wceq wa wn mtoi wbr w3a
      cdom cpw crab cufil cfil ominf domfi expcom cfinfil syl3an3 filssufil syl
      elpw2g biimpar 3adant3 0fin a1i difeq2 difid syl6eq eleq1d elrab sylanbrc
      ssel syl5com intss neldifsn elinti simp2 ssdifssd wb 3ad2ant1 mpbird snfi
      csn wi eldif notbii iman bitr4i anbi2i bitri sylbi ssriv ssfi mp2an nsyl3
      pm3.35 eq0rdv sseq2d syl5ib ss0 syl6 jcad reximdv mpd ) DBGZADHZIAUCUAZUB
      ZAEJZKZLGZEDUDZUEZCJZHZCDUFMZNZAXHGZXHOZPQZRZCXJNXBXGDUGMGZXKXAWSWTALGZSX
      PXAXQILGZUHXQXAXRAIUIUJTEABDUKULCXGDUMUNXBXIXOCXJXBXIXLXNXBAXGGZXIXLXBAXF
      GZPLGZXSWSWTXTXAWSXTWTADBUOUPUQYAXBURUSXEYAEAXFXCAQZXDPLYBXDAAKPXCAAUTAVA
      VBVCVDVEXGXHAVFVGXBXIXMPHZXNXIXMXGOZHXBYCXGXHVHXBYDPXMXBFYDFJZYDGZAYEVQZK
      ZXGGZXBYFYIYEYHGYEAVIYEXGYHVJTXBYHXFGZAYHKZLGZYIXBYJYHDHZXBADYGWSWTXAVKVL
      WSWTYJYMVMXAYHDBUOVNVOYLXBYGLGYKYGHYLYEVPEYKYGXCYKGZXCAGZYOXCYGGZVRZRZYPY
      NYOXCYHGZSZRYRXCAYHVSYTYQYOYTYOYPSRZSYQYSUUAXCAYGVSVTYOYPWAWBWCWDYOYPWJWE
      WFYGYKWGWHUSXEYLEYHXFXCYHQXDYKLXCYHAUTVCVDVEWIWKWLWMXMWNWOWPWQWR $.
  $}

  ${
    $d f x y X $.
    $( Any infinite set has an ultrafilter on it whose elements are of the same
       cardinality as the set.  Any such ultrafilter is necessarily free.
       (Contributed by Jeff Hankins, 7-Dec-2009.)  (Revised by Stefan O'Rear,
       3-Aug-2015.) $)
    ufilen $p |- ( _om ~<_ X -> E. f e. ( UFil ` X ) A. x e. f x ~~ X ) $=
      ( vy com cdom wbr cv cdif csdm wss cufil cfv wrex wcel cvv syl wa sylan
      wn cpw crab cen wral cfil ccrd cdm reldom brrelex2i numth3 csdfil mpancom
      filssufil elfvex ad2antlr ufilfil filelss adantll ssdomg wi cfbas filfbas
      sylc adantl fbncp w3a difss elpw2g mpbiri 3ad2ant1 wceq simp2 dfss4 sylib
      simp3 eqbrtrd difeq2 breq1d elrab sylanbrc ssel syl5com impancom syl21anc
      3expa con3d bren2 simplbi2 sylsyld ralrimdva reximdva mpd ) ECFGZCDHZIZCJ
      GZDCUAZUBZBHZKZBCLMZNZAHZCUCGZAWSUDZBXANWMWRCUEMZOZXBCUFUGOZWMXGWMCPOZXHE
      CFUHUICPUJQDCUKULBWRCUMQWMWTXEBXAWMWSXAOZRZWTXDAWSXKXCWSOZRZXCCFGZWTXCCJG
      ZTZXDXMXIXCCKZXNXJXIWMXLWSCLUNUOZXJXLXQWMXJWSXFOZXLXQWSCUPZXCWSCUQSURZXCC
      PUSVCXMXIXQCXCIZWSOZTZWTXPUTXRYAXKWSCVAMOZXLYDXJYEWMXJXSYEXTWSCVBQVDXCCWS
      CVESXIXQRZWTYDXPYFWTRXOYCYFXOWTYCXIXQXOWTYCUTXIXQXOVFZYBWROZWTYCYGYBWQOZC
      YBIZCJGZYHXIXQYIXOXIYIYBCKCXCVGYBCPVHVIVJYGYJXCCJYGXQYJXCVKXIXQXOVLXCCVMV
      NXIXQXOVOVPWPYKDYBWQWNYBVKWOYJCJWNYBCVQVRVSVTWRWSYBWAWBWEWCWFWCWDXDXNXPXC
      CWGWHWIWJWKWL $.
  $}

  ${
    $d x F $.  $d x J $.  $d x X $.
    ufildr.1 $e |- J = ( F u. { (/) } ) $.
    $( An ultrafilter gives rise to a connected door topology.  (Contributed by
       Jeff Hankins, 6-Dec-2009.)  (Revised by Stefan O'Rear, 3-Aug-2015.) $)
    ufildr $p |- ( F e. ( UFil ` X ) -> ( J u. ( Clsd ` J ) ) = ~P X ) $=
      ( vx cufil cfv wcel ccld cun wo cuni c0 syl5ibr cdif sseld ctop wb adantr
      wss cpw cv elssuni csn unieqi uniun 0ex unisn uneq2i un0 3eqtri cfil wceq
      eqtr2i ufilfil filunibas syl syl5reqr sseq2d eqid cldss jaod ufilss ssun1
      wa sseqtr4i a1i cconn filconn conntop 3syl syl5eqel biimpa iscld2 syl2anc
      difeq1d eleq1d bitr4d sylibrd orim12d mpd impbid elun selpw 3bitr4g eqrdv
      ex ) ACFGHZEBBIGZJZCUAZWHEUBZBHZWLWIHZKZWLCTZWLWJHWLWKHWHWOWPWHWMWPWNWMWP
      WHWLBLZTZWLBUCWHCWQWLWHWQALZCWQAMUDZJZLZWSBXADUEXBWSWTLZJWSMJWSAWTUFXCMWS
      MUGUHUIWSUJUKUNWHACULGHZWSCUMACUOZACUPUQURZUSZNWNWPWHWRWLBWQWQUTZVAXGNVBW
      HWPWOWHWPVEZWLAHZCWLOZAHZKWOWLACVCXIXJWMXLWNXIABWLABTXIAXABAWTVDDVFVGZPXI
      XLXKBHZWNXIABXKXMPXIWNWQWLOZBHZXNXIBQHZWRWNXPRWHXQWPWHBXAQDWHXDXAVHHXAQHX
      EACVIXAVJVKVLSWHWPWRXGVMWLBWQXHVNVOWHXNXPRWPWHXKXOBWHCWQWLXFVPVQSVRVSVTWA
      WGWBWLBWIWCECWDWEWF $.
  $}

  ${
    $d x y z F $.  $d x y z X $.
    fin1aufil.1 $e |- F = ( ~P X \ Fin ) $.
    $( There are no definable free ultrafilters in ZFC. However, there are free
       ultrafilters in some choice-denying constructions.  Here we show that
       given an amorphous set (a.k.a. a Ia-finite I-infinite set) ` X ` , the
       set of infinite subsets of ` X ` is a free ultrafilter on ` X ` .
       (Contributed by Mario Carneiro, 20-May-2015.) $)
    fin1aufil $p |- ( X e. ( Fin1a \ Fin ) ->
        ( F e. ( UFil ` X ) /\ |^| F = (/) ) ) $=
      ( vx vy cfin1a cfn cdif wcel c0 wceq wo wn wss wa wsbc eleq1 notbid sbcie
      wb vz cufil cfv cint cfil cv cpw wral eleq2i eldif anbi1i 3bitri a1i elex
      selpw eldifn sbcieg mpbird 0fin 0ex con2bii mpbi w3a ssfi expcom 3ad2ant3
      wi con3d vex 3imtr4g cin eldifi fin1ai sylan 3adant3 inundif incom simprl
      cun syl5eqel simprr simpl3 ssdifd syl2anc unfi syl5eqelr expr orim2d mpid
      ex anbi12i ioran bitr4i inex1 isfild adantr ssun2 undif2 sseqtr4i sylancl
      nsyl ianor sylib elpwi adantl baib syl difss elpw2g mpbiri syl5bb orbi12d
      ralrimiva isufil sylanbrc csn snfi eleq2s mt2 uffixsn mtoi eq0rdv jca ) B
      FGHZIZABUBUCIZAUDZJKYEABUEUCIDUFZAIZBYHHZAIZLZDBUGZUHYFYEYHGIZMZDEUABAYIY
      HBNZYOOZTYEYIYHYMGHZIYHYMIZYOOYQAYRYHCUIYHYMGUJYSYPYODBUOUKULZUMBYDUNYEYO
      DBPBGIZMZBFGUPZYOUUBDBYDYHBKYNUUAYHBGQRUQURYODJPZMZYEJGIZUUEUSUUDUUFYOUUF
      MDJUTYHJKYNUUFYHJGQRSVAVBUMYEEUFZBNZUAUFZUUGNZVCZUUIGIZMZUUGGIZMZYODUUIPZ
      YODUUGPZUUKUUNUULUUJYEUUNUULVGUUHUUNUUJUULUUGUUIVDVEVFVHYOUUMDUUIUAVIYHUU
      IKYNUULYHUUIGQRSZYOUUODUUGEVIZYHUUGKYNUUNYHUUGGQRSZVJYEUUHUUIBNZVCZUUNUUL
      LZMZUUGUUIVKZGIZMZUUQUUPOZYODUVEPUVBUVFUVCUVBUVFUUNBUUGHZGIZLZUVCYEUUHUVK
      UVAYEBFIUUHUVKBFGVLBUUGVMVNVOUVBUVFUVKUVCVGUVBUVFOUVJUULUUNUVBUVFUVJUULUV
      BUVFUVJOZOZUUIUUIUUGVKZUUIUUGHZVSZGUUIUUGVPUVMUVNGIUVOGIZUVPGIUVMUVNUVEGU
      UIUUGVQUVBUVFUVJVRVTUVMUVJUVOUVINUVQUVBUVFUVJWAUVMUUIBUUGYEUUHUVAUVLWBWCU
      VIUVOVDWDUVNUVOWEWDWFWGWHWJWIVHUVHUUOUUMOUVDUUQUUOUUPUUMUUTUURWKUUNUULWLW
      MYOUVGDUVEUUGUUIUUSWNYHUVEKYNUVFYHUVEGQRSVJWOYEYLDYMYEYSOZYLYOYJGIZMZLZUV
      RYNUVSOZMUWAUVRUUAUWBYEUUBYSUUCWPUWBYHYJVSZGIBUWCNUUAYHYJWEBYHBVSUWCBYHWQ
      YHBWRWSUWCBVDWTXAYNUVSXBXCUVRYIYOYKUVTUVRYPYIYOTYSYPYEYHBXDXEYIYPYOYTXFXG
      YKYJYRIZUVRUVTAYRYJCUIUVRYJYMIZUWDUVTTUVRUWEYJBNZBYHXHYEUWEUWFTYSYJBYDXIW
      PXJUWDUWEUVTYJYMGUJXFXGXKXLURXMDABXNXOZYEDYGYEYHYGIZYHXPZAIZUWJUWIGIZYHXQ
      UWKMUWIYRAUWIYMGUPCXRXSYEUWHUWJYEYFUWHUWJUWGYHABXTVNWJYAYBYC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Filter limits
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c FilMap $.
  $c fLimf $.

  $c fLim $.
  $c fClus $.
  $c fClusf $.

  $( Extend class definition to include the neighborhood filter mapping
     function. $)
  cfm $a class FilMap $.

  $( Extend class notation with a function returning the limit of a filter. $)
  cflim $a class fLim $.

  $( Extend class definition to include the function for filter-based function
     limits. $)
  cflf $a class fLimf $.

  $( Extend class definition to include the cluster point function on
     filters. $)
  cfcls $a class fClus $.

  $( Extend class definition to include the function for cluster points of a
     function. $)
  cfcf $a class fClusf $.

  ${
    $d f g j t x y $.
    $( Define a function that takes a filter to a neighborhood filter of the
       range.  (Since we now allow filter bases to have support smaller than
       the base set, the function has to come first to ensure that curryings
       are sets.)  (Contributed by Jeff Hankins, 5-Sep-2009.)  (Revised by
       Stefan O'Rear, 20-Jul-2015.) $)
    df-fm $a |- FilMap = ( x e. _V , f e. _V |-> ( y e. ( fBas ` dom f ) |->
         ( x filGen ran ( t e. y |-> ( f " t ) ) ) ) ) $.

    $( Define a function (indexed by a topology ` j ` ) whose value is the
       limits of a filter ` f ` .  (Contributed by Jeff Hankins,
       4-Sep-2009.) $)
    df-flim $a |- fLim = ( j e. Top , f e. U. ran Fil |->
     { x e. U. j | ( ( ( nei ` j ) ` { x } ) C_ f /\ f C_ ~P U. j ) } ) $.

    $( Define a function that gives the limits of a function ` f ` in the
       filter sense.  (Contributed by Jeff Hankins, 14-Oct-2009.) $)
    df-flf $a |- fLimf = ( x e. Top , y e. U. ran Fil |->
        ( f e. ( U. x ^m U. y ) |-> ( x fLim ( ( U. x FilMap f ) ` y ) ) ) ) $.

    $( Define a function that takes a filter in a topology to its set of
       cluster points.  (Contributed by Jeff Hankins, 10-Nov-2009.) $)
    df-fcls $a |- fClus = ( j e. Top , f e. U. ran Fil |->
      if ( U. j = U. f , |^|_ x e. f ( ( cls ` j ) ` x ) , (/) ) ) $.

    $( Define a function that gives the cluster points of a function.
       (Contributed by Jeff Hankins, 24-Nov-2009.) $)
    df-fcf $a |- fClusf = ( j e. Top , f e. U. ran Fil |->
      ( g e. ( U. j ^m U. f ) |-> ( j fClus ( ( U. j FilMap g ) ` f ) ) ) ) $.
  $}

  ${
    $d b f x y B $.  $d b f x y F $.  $d b f x y X $.  $d b f x y Y $.
    $d f x y A $.
    $( Introduce a function that takes a function from a filtered domain to a
       set and produces a filter which consists of supersets of images of
       filter elements.  The functions which are dealt with by this function
       are similar to nets in topology.  For example, suppose we have a
       sequence filtered by the filter generated by its tails under the usual
       positive integer ordering.  Then the elements of this filter are
       precisely the supersets of tails of this sequence.  Under this
       definition, it is not too difficult to see that the limit of a function
       in the filter sense captures the notion of convergence of a sequence.
       As a result, the notion of a filter generalizes many ideas associated
       with sequences, and this function is one way to make that relationship
       precise in Metamath.  (Contributed by Jeff Hankins, 5-Sep-2009.)
       (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    fmval $p |- ( ( X e. A /\ B e. ( fBas ` Y ) /\ F : Y --> X ) ->
        ( ( X FilMap F ) ` B ) = ( X filGen ran ( y e. B |-> ( F " y ) ) ) ) $=
      ( vb vx vf wcel cfbas cfv cfm co cv cmpt crn cfg cvv wceq wf w3a cima cdm
      cmpt2 df-fm a1i wa dmeq fveq2d adantl imaeq1 mpteq2dv oveqan12d mpteq12dv
      rneqd fdm mpteq1d 3ad2ant3 sylan9eqr 3ad2ant1 simp3 elfvdm 3ad2ant2 simp1
      elex fex2 syl3anc fvex mptex ovmpt2d fveq1d mpteq1 oveq2d eqid ovex fvmpt
      id eqtrd ) EBJZCFKLZJZFEDUAZUBZCEDMNZLCGWAEAGOZDAOZUCZPZQZRNZPZLZEACWHPZQ
      ZRNZWDCWEWLWDHIEDSSGIOZUDZKLZHOZAWFWQWGUCZPZQZRNZPZWLMSMHISSXEUETWDHGAIUF
      UGWTETZWQDTZUHZWDXEGDUDZKLZWKPZWLXHGWSXDXJWKXGWSXJTXFXGWRXIKWQDUIUJUKXFXG
      WTEXCWJRXFVRXGXBWIXGAWFXAWHWQDWGULUMUPUNUOWCVTXKWLTWBWCGXJWAWKWCXIFKFEDUQ
      UJURUSUTVTWBESJWCEBVFVAWDWCFKUDZJZVTDSJVTWBWCVBWBVTXMWCCFKVCVDVTWBWCVEFED
      XLBVGVHWLSJWDGWAWKFKVIVJUGVKVLWBVTWMWPTWCGCWKWPWAWLWFCTZWJWOERXNWIWNAWFCW
      HVMUPVNWLVOEWORVPVQVDVS $.

    $( A mapping filter is a filter.  (Contributed by Jeff Hankins,
       18-Sep-2009.)  (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    fmfil $p |- ( ( X e. A /\ B e. ( fBas ` Y ) /\ F : Y --> X ) ->
        ( ( X FilMap F ) ` B ) e. ( Fil ` X ) ) $=
      ( vy wcel cfbas cfv wf w3a cfm co cv cima cmpt crn cfg cfil fmval eqeltrd
      eqid fbasrn 3comr fgcl syl ) DAGZBEHIGZEDCJZKZBDCLMIDFBCFNOPQZRMZDSIZFABC
      DETUJUKDHIGZULUMGUHUIUGUNFBUKCAEDUKUBUCUDUKDUEUFUA $.

    $d b f x y A $.  $d b f x y B $.  $d b f x y F $.  $d b f x y X $.
    $d b f x y Y $.
    $( Pushing-forward via a function induces a mapping on filters.
       (Contributed by Stefan O'Rear, 8-Aug-2015.) $)
    fmf $p |- ( ( X e. A /\ Y e. B /\ F : Y --> X ) ->
        ( X FilMap F ) : ( fBas ` Y ) --> ( Fil ` X ) ) $=
      ( vb vy vx vf wcel cfm co cfbas cfv cv cmpt cfg cvv wceq wa w3a cfil wral
      wf wfn cima crn ovex eqid fnmpti cdm cmpt2 df-fm a1i dmeq adantl 3ad2ant3
      fdm sylan9eqr fveq2d id imaeq1 mpteq2dv oveqan12d mpteq12dv elex 3ad2ant1
      rneqd fex2 3com13 mptex ovmpt2d fneq1d mpbiri simpl1 simpr simpl3 syl3anc
      fvex fmfil ralrimiva ffnfv sylanbrc ) DAJZEBJZEDCUDZUAZDCKLZEMNZUEZFOZWHN
      DUBNZJZFWIUCWIWLWHUDWGWJFWIDGWKCGOZUFZPZUGZQLZPZWIUEFWIWRWSDWQQUHWSUIUJWG
      WIWHWSWGHIDCRRFIOZUKZMNZHOZGWKWTWNUFZPZUGZQLZPZWSKRKHIRRXHULSWGHFGIUMUNWG
      XCDSZWTCSZTZTZFXBXGWIWRXLXAEMXKWGXACUKZEXJXAXMSXIWTCUOUPWFWDXMESWEEDCURUQ
      USUTXKXGWRSWGXIXJXCDXFWQQXIVAXJXEWPXJGWKXDWOWTCWNVBVCVHVDUPVEWDWEDRJWFDAV
      FVGWFWEWDCRJEDCBAVIVJWSRJWGFWIWREMVSVKUNVLVMVNWGWMFWIWGWKWIJZTWDXNWFWMWDW
      EWFXNVOWGXNVPWDWEWFXNVQAWKCDEVTVRWAFWIWLWHWBWC $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y F $.  $d y X $.  $d y Y $.
    $( A finer filter produces a finer image filter.  (Contributed by Jeff
       Hankins, 16-Nov-2009.)  (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    fmss $p |- ( ( ( X e. A /\ B e. ( fBas ` Y ) /\ C e. ( fBas ` Y ) ) /\
          ( F : Y --> X /\ B C_ C ) ) ->
        ( ( X FilMap F ) ` B ) C_ ( ( X FilMap F ) ` C ) ) $=
      ( vy wcel cfbas cfv wss wa cmpt crn cfg co eqid fbasrn syl3anc wceq wf cv
      w3a cima simpl2 simprl simpl1 simpl3 cres resmpt ad2antll resss syl6eqssr
      cfm rnss syl fgss fmval 3sstr4d ) EAHZBFIJZHZCVAHZUCZFEDUAZBCKZLZLZEGBDGU
      BUDZMZNZOPZEGCVIMZNZOPZBEDUNPZJZCVPJZVHVKEIJZHZVNVSHZVKVNKZVLVOKVHVBVEUTV
      TUTVBVCVGUEZVDVEVFUFZUTVBVCVGUGZGBVKDAFEVKQRSVHVCVEUTWAUTVBVCVGUHZWDWEGCV
      NDAFEVNQRSVHVJVMKWBVHVJVMBUIZVMVFWGVJTVDVEGCBVIUJUKVMBULUMVJVMUOUPVKVNEUQ
      SVHUTVBVEVQVLTWEWCWDGABDEFURSVHUTVCVEVRVOTWEWFWDGACDEFURSUS $.
  $}

  ${
    $d s t x y z B $.  $d s t x y C $.  $d s t x y F $.  $d s t x y X $.
    $d x y A $.  $d s x y L $.  $d s t x y Y $.
    $( An element of a mapping filter.  (Contributed by Jeff Hankins,
       8-Sep-2009.)  (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    elfm $p |- ( ( X e. C /\ B e. ( fBas ` Y ) /\ F : Y --> X ) ->
        ( A e. ( ( X FilMap F ) ` B ) <->
          ( A C_ X /\ E. x e. B ( F " x ) C_ A ) ) ) $=
      ( vt vy wcel cfbas cfv co cv cima wss wrex wa eqid wceq wf w3a cmpt fmval
      cfm crn cfg eleq2d wb fbasrn 3comr syl simpr imaeq2 eqeq2d rspcev sylancl
      elfg cvv simpl1 imassrn frn 3ad2ant3 adantr syl5ss elrnmpt mpbird cbvmptv
      ssexd ibi adantl sseq1d rexxfrd anbi2d 3bitrd ) FDJZCGKLJZGFEUAZUBZBCFEUE
      MLZJBFHCEHNZOZUCZUFZUGMZJZBFPZINZBPZIWDQZRZWGEANZOZBPZACQZRVSVTWEBHDCEFGU
      DUHVSWDFKLJZWFWKUIVQVRVPWPHCWDEDGFWDSUJUKIBWDFURULVSWJWOWGVSWIWNIAWMWDCVS
      WLCJZRZWMWDJZWMWBTZHCQZWRWQWMWMTZXAVSWQUMWMSWTXBHWLCWAWLTWBWMWMWAWLEUNZUO
      UPUQWRWMUSJWSXAUIWRWMFDVPVQVRWQUTWRWMEUFZFEWLVAVSXDFPZWQVRVPXEVQGFEVBVCVD
      VEVIHCWBWMWCUSWCSVFULVGWHWDJZWHWMTZACQZVSXFXHACWMWHWCWDHACWBWMXCVHVFVJVKV
      SXGRWHWMBVSXGUMVLVMVNVO $.

    elfm2.l $e |- L = ( Y filGen B ) $.
    $( An element of a mapping filter.  (Contributed by Jeff Hankins,
       26-Sep-2009.)  (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    elfm2 $p |- ( ( X e. C /\ B e. ( fBas ` Y ) /\ F : Y --> X ) ->
        ( A e. ( ( X FilMap F ) ` B ) <->
          ( A C_ X /\ E. x e. L ( F " x ) C_ A ) ) ) $=
      ( vy wcel cfbas cfv co wss cv cima wrex wa wi w3a cfm elfm ssfg syl6sseqr
      wf cfg sselda adantrr 3ad2antl2 simprr imaeq2 sseq1d rspcev rexlimdvaa wb
      weq syl2anc eleq2i elfg syl5bb 3ad2ant2 sstr2 com12 ad2antll syl5 reximdv
      imass2 expr com23 expimpd sylbid rexlimdv impbid anbi2d bitrd ) GDKZCHLMK
      ZHGEUFZUAZBCGEUBNMKBGOZEJPZQZBOZJCRZSWAEAPZQZBOZAFRZSJBCDEGHUCVTWEWIWAVTW
      EWIVTWDWIJCVTWBCKZWDSZSWBFKZWDWIVRVQWKWLVSVRWJWLWDVRCFWBVRCHCUGNZFCHUDIUE
      UHUIUJVTWJWDUKWHWDAWBFAJUQWGWCBWFWBEULUMUNURUOVTWHWEAFVTWFFKZWFHOZWBWFOZJ
      CRZSZWHWETZVRVQWNWRUPVSWNWFWMKVRWRFWMWFIUSJWFCHUTVAVBVTWOWQWSVTWOSWHWQWEV
      TWOWHWQWETVTWOWHSSZWPWDJCWPWCWGOZWTWDWBWFEVHWHXAWDTVTWOXAWHWDWCWGBVCVDVEV
      FVGVIVJVKVLVMVNVOVP $.

    $( The image filter of a filter base is the same as the image filter of its
       generated filter.  (Contributed by Jeff Hankins, 18-Nov-2009.)  (Revised
       by Stefan O'Rear, 6-Aug-2015.) $)
    fmfg $p |- ( ( X e. C /\ B e. ( fBas ` Y ) /\ F : Y --> X ) ->
        ( ( X FilMap F ) ` B ) = ( ( X FilMap F ) ` L ) ) $=
      ( vx vs wcel cfbas cfv wf w3a cfm co cv wss cima wrex elfm2 cfil cfg fgcl
      wa wb syl5eqel filfbas syl elfm syl3an2 bitr4d eqrdv ) EBJZAFKLZJZFECMZNZ
      HAECOPZLZDUSLZURHQZUTJVBERCIQSVBRIDTUEZVBVAJZIVBABCDEFGUAUPUNDUOJZUQVDVCU
      FUPDFUBLZJVEUPDFAUCPVFGAFUDUGDFUHUIIVBDBCEFUJUKULUM $.

    $( An alternate formulation of elementhood in a mapping filter that
       requires ` F ` to be onto.  (Contributed by Jeff Hankins, 1-Oct-2009.)
       (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    elfm3 $p |- ( ( B e. ( fBas ` Y ) /\ F : Y -onto-> X ) ->
        ( A e. ( ( X FilMap F ) ` B ) <-> E. x e. L A = ( F " x ) ) ) $=
      ( vy vz cfbas cfv wcel cvv cv cima wceq wb wa wss wfo cfm co foima adantl
      wrex cdm fofun elfvdm funimaexg syl2anr eqeltrrd w3a wf fof elfm2 syl3an3
      wfun ccnv cfil cfg fgcl syl5eqel 3ad2ant2 ad2antrr cnvimass wfn fofn fndm
      simprl syl5sseq 3ad2ant3 eleq2i elfg adantr syl5bb simprbda sseq2 biimpar
      syl sylan 3ad2antl3 adantlr syldan funimass3 syl2anc biimpd impr syl13anc
      filss foimacnv eqcomd imaeq2 eqeq2d rspcev rexlimdvaa expimpd crn imassrn
      simprr forn eqsstrd eqimss2 sseq1d sylan2 jca impbid bitrd 3coml mpd3an3
      ) CGKLMZGFDUAZFNMZBCFDUBUCLMZBDAOZPZQZAEUFZRZXKXLSDGPZFNXLXTFQXKGFDUDUEXL
      DURZGKUGZMXTNMXKGFDUHZCGKUIDGYBUJUKULXMXKXLXSXMXKXLUMZXNBFTZDIOZPZBTZIEUF
      ZSZXRXLXMXKGFDUNXNYJRGFDUOIBCNDEFGHUPUQYDYJXRYDYEYIXRYDYESZYHXRIEYKYFEMZY
      HSZSZDUSBPZEMZBDYOPZQZXRYNEGUTLZMZYLYOGTZYFYOTZYPYDYTYEYMXKXMYTXLXKEGCVAU
      CZYSHCGVBVCVDVEYKYLYHVJYDUUAYEYMXLXMUUAXKXLDUGZYOGDBVFXLDGVGUUDGQZGFDVHGD
      VIVTZVKVLVEYKYLYHUUBYKYLSZYHUUBUUGYAYFUUDTZYHUUBRYDYAYEYLXLXMYAXKYCVLVEYK
      YLYFGTZUUHYKYLUUIJOYFTJCUFZYLYFUUCMZYKUUIUUJSZEUUCYFHVMYDUUKUULRZYEXKXMUU
      MXLJYFCGVNVDVOVPVQYDUUIUUHYEXLXMUUIUUHXKXLUUEUUIUUHUUFUUEUUHUUIUUDGYFVRVS
      WAWBWCWDYFBDWEWFWGWHYFYOEGWJWIYKYRYMXLXMYEYRXKXLYESYQBGFBDWKWLWBVOXQYRAYO
      EXOYOQXPYQBXOYODWMWNWOWFWPWQYDXQYJAEYDXOEMZXQSZSZYEYIUUPBXPFYDUUNXQWTUUPD
      WRZXPFDXOWSYDUUQFQZUUOXLXMUURXKGFDXAVLVOVKXBUUOYIYDXQUUNXPBTZYIXPBXCYHUUS
      IXOEYFXOQYGXPBYFXODWMXDWOXEUEXFWPXGXHXIXJ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.  $d x L $.  $d x S $.  $d x X $.  $d x Y $.
    imaelfm.l $e |- L = ( Y filGen B ) $.
    $( An image of a filter element is in the image filter.  (Contributed by
       Jeff Hankins, 5-Oct-2009.)  (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    imaelfm $p |- ( ( ( X e. A /\ B e. ( fBas ` Y ) /\ F : Y --> X ) /\
          S e. L ) -> ( F " S ) e. ( ( X FilMap F ) ` B ) ) $=
      ( vx wcel cfbas cfv wf w3a wa cima cfm co wss cv crn imassrn frn 3ad2ant3
      wrex syl5ss ssid wceq imaeq2 sseq1d rspcev mpan2 anim12i wb adantr mpbird
      elfm2 ) FAJZBGKLJZGFDMZNZCEJZODCPZBFDQRLJZVCFSZDITZPZVCSZIEUEZOZVAVEVBVIU
      TURVEUSUTVCDUAFDCUBGFDUCUFUDVBVCVCSZVIVCUGVHVKICEVFCUHVGVCVCVFCDUIUJUKULU
      MVAVDVJUNVBIVCBADEFGHUQUOUP $.
  $}

  ${
    $d b r s t u v x y z A $.  $d b r s t u v x y z F $.
    $d b r s t u v x y z L $.  $d b r s t u v x y z L $.
    $d b r s t u v x y z X $.  $d b r s t u v x y z Y $.
    $( Lemma for ~ rnelfm .  (Contributed by Jeff Hankins, 14-Nov-2009.) $)
    rnelfmlem $p |- ( ( ( Y e. A /\ L e. ( Fil ` X ) /\ F : Y --> X ) /\
          ran F e. L ) -> ran ( x e. L |-> ( `' F " x ) ) e. ( fBas ` Y ) ) $=
      ( vr vs vy vu vv wcel wa cv c0 wrex syl wb wceq cvv vt vz cfil cfv wf w3a
      crn ccnv cima cmpt cpw wss wne wnel cin wral simpl3 cdm cnvimass syl5sseq
      cfbas fdm simpl1 elpw2g mpbird adantr eqid filtop 3ad2ant2 fimacnv eqcomd
      fmptd 3ad2ant3 imaeq2 eqeq2d rspcev syl2anc elrnmpt 3ad2ant1 ne0i 0nelfil
      frn wn 0ex ax-mp wal wfn fvelrnb ad2antrr eleq1 biimparc ad2ant2l adantll
      wi wfun ffun ad3antrrr eleq2d biimpar 3ad2antl3 adantlr ad2ant2r fvimacnv
      ffn mpbid n0i eqcom sylnib rexlimdvaa con2d expr com23 impr alrimiv imnan
      sylbid elin xchbinxr albii eq0 3bitr2i sylib simpll2 simprl filin syl3anc
      simplr eqeltrd syl5bi mtod df-nel sylibr vex cbvrexv bitri anbi12i reeanv
      weq bitr4i 3expb eqidd 3adantl1 simpll1 simprrl simprrr ineq12d funcnvcnv
      ssexd imain 3syl eqtr4d eqimss2 sseq1 exp32 rexlimdvv ralrimivv mpbir2and
      3jca isfbas2 ) FBLZDEUCUDLZFECUEZUFZCUGZDLZMZADCUHZANZUIZUJZUGZFVAUDLZUVK
      FUKZULZUVKOUMZOUVKUNZUANZGNZHNZUOZULZUAUVKPZHUVKUPGUVKUPZUFZUVFDUVMUVJUEU
      VNUVFADUVIUVMUVJUVFUVIUVMLZUVHDLZUVFUWEUVIFULZUVFUVBUWGUUTUVAUVBUVEUQUVBC
      URZUVIFCUVHUSFECVBZUTQUVFUUTUWEUWGRUUTUVAUVBUVEVCZUVIFBVDQVEVFUVJVGZVLDUV
      MUVJWBQUVFUVOUVPUWCUVFFUVKLZUVOUVFUWLFUVISZADPZUVFEDLZFUVGEUIZSZUWNUVCUWO
      UVEUVAUUTUWOUVBDEVHVIVFUVCUWQUVEUVBUUTUWQUVAUVBUWPFFECVJVKVMVFUWMUWQAEDUV
      HESUVIUWPFUVHEUVGVNVOVPVQUVCUWLUWNRZUVEUUTUVAUWRUVBADUVIFUVJBUWKVRVSVFVEU
      VKFVTQUVFOUVKLZWCUVPUVFUWSODLZUVCUWTWCZUVEUVAUUTUXAUVBDEWAVIVFUWSOUVISZAD
      PZUVFUWTOTLUWSUXCRWDADUVIOUVJTUWKVRWEUVFUXBUWTADUVFUWFUXBMZMZOUVHUVDUOZDU
      XEINZUVHLZUXGUVDLZWCZWNZIWFZOUXFSZUXEUXKIUVFUWFUXBUXKUVFUWFMUXHUXBUXJUVFU
      WFUXHUXBUXJWNUVFUWFUXHMZMZUXIUXBUXOUXIUBNZCUDZUXGSZUBFPZUXBWCZUVCUXIUXSRZ
      UVEUXNUVBUUTUYAUVAUVBCFWGUYAFECXDUBFUXGCWHQVMWIUXOUXRUXTUBFUXOUXPFLZUXRMZ
      MZUXPUVILZUXTUYDUXQUVHLZUYEUXNUYCUYFUVFUXHUXRUYFUWFUYBUXRUYFUXHUXQUXGUVHW
      JWKWLWMUYDCWOZUXPUWHLZUYFUYERUVCUYGUVEUXNUYCUVBUUTUYGUVAFECWPZVMWQUVFUYBU
      YHUXNUXRUVCUYBUYHUVEUVBUUTUYBUYHUVAUVBUYHUYBUVBUWHFUXPUWIWRWSWTXAXBUXPUVH
      CXCVQXEUYEUVIOSUXBUVIUXPXFUVIOXGXHQXIXPXJXKXLXMXNUXLUXGUXFLZWCZIWFUXFOSUX
      MUXKUYKIUXKUXHUXIMUYJUXHUXIXOUXGUVHUVDXQXRXSIUXFXTUXFOXGYAYBUXEUVAUWFUVEU
      XFDLUUTUVAUVBUVEUXDYCUVFUWFUXBYDUVCUVEUXDYGUVHUVDDEYEYFYHXIYIYJOUVKYKYLUV
      FUWBGHUVKUVKUVRUVKLZUVSUVKLZMZUVRUVGJNZUIZSZUVSUVGKNZUIZSZMZKDPJDPZUVFUWB
      UYNUYQJDPZUYTKDPZMVUBUYLVUCUYMVUDUYLUVRUVISZADPZVUCUVRTLUYLVUFRGYMADUVIUV
      RUVJTUWKVRWEVUEUYQAJDAJYRUVIUYPUVRUVHUYOUVGVNVOYNYOUYMUVSUVISZADPZVUDUVST
      LUYMVUHRHYMADUVIUVSUVJTUWKVRWEVUGUYTAKDAKYRUVIUYSUVSUVHUYRUVGVNVOYNYOYPUY
      QUYTJKDDYQYSUVFVUAUWBJKDDUVFUYODLZUYRDLZMZVUAUWBUVFVUKVUAMZMZUVGUYOUYRUOZ
      UIZUVKLZVUOUVTULZUWBVUMVUPVUOUVISZADPZUVCVUKVUSUVEVUAUVAUVBVUKVUSUUTUVAUV
      BMVUKMZVUNDLZVUOVUOSZVUSUVAVUKVVAUVBUVAVUIVUJVVAUYOUYRDEYEYTXAVUTVUOUUAVU
      RVVBAVUNDUVHVUNSUVIVUOVUOUVHVUNUVGVNVOVPVQUUBXBVUMVUOTLVUPVUSRVUMVUOFBUUT
      UVAUVBUVEVULUUCUVCVUOFULZUVEVULUVBUUTVVCUVAUVBUWHVUOFCVUNUSUWIUTVMWIUUHAD
      UVIVUOUVJTUWKVRQVEVUMUVTVUOSVUQVUMUVTUYPUYSUOZVUOVUMUVRUYPUVSUYSUVFVUKUYQ
      UYTUUDUVFVUKUYQUYTUUEUUFUVCVUOVVDSZUVEVULUVBUUTVVEUVAUVBUYGUVGUHWOVVEUYIC
      UUGUYOUYRUVGUUIUUJVMWIUUKVUOUVTUULQUWAVUQUAVUOUVKUVQVUOUVTUUMVPVQUUNUUOYI
      UUPUURUVFUUTUVLUVNUWDMRUWJGHUABFUVKUUSQUUQ $.

    $( A condition for a filter to be an image filter for a given function.
       (Contributed by Jeff Hankins, 14-Nov-2009.)  (Revised by Stefan O'Rear,
       8-Aug-2015.) $)
    rnelfm $p |- ( ( Y e. A /\ L e. ( Fil ` X ) /\ F : Y --> X ) ->
        ( L e. ran ( X FilMap F ) <-> ran F e. L ) ) $=
      ( vx vs wcel cfv cv wceq wrex wb syl wi wa cima ex wss adantr vb vt vz vy
      cfil wf w3a cfm crn cfbas wfn filtop 3ad2ant2 simp1 simp3 fmf syl3anc ffn
      co fvelrnb wfo dffn4 sylib foima ad2antlr simpll simpr simplr fgcl adantl
      cfg eqid imaelfm syl31anc eqeltrrd eleq2 syl5ibcom sylan 3adant1 rexlimdv
      sylbid ccnv cmpt simpl2 filelss eqidd imaeq2 eqeq2d rspcev syl2anc simpl1
      cvv cdm cnvimass fdm syl5sseq 3ad2ant3 ssexd elrnmpt mpbird ssid ad2antrr
      wfun ffun funimass3 sylancl mpbiri sseq1d vex ax-mp cin ad3antrrr imassrn
      jcad ssin sylanblc elin jctir eleq2d fvimacnv biimpa funfvima2 sylc eleq1
      biimpar imbi12d rexlimdva com23 impd ssrdv eqssd filin 3exp imp31 eqeltrd
      syl5bi exp32 eleq1d imbi2d impbid syl5ibrcom imp44 simprlr filss syl13anc
      simprr exp44 rnelfmlem simpl3 elfm bitr4d eqrdv fnfvelrn ) EAHZCDUEIZHZED
      BUFZUGZCDBUHUSZUIZHZBUIZCHZUURUVAUAJZUUSIZCKZUAEUJIZLZUVCUURUUSUVGUKZUVAU
      VHMUURUVGUUOUUSUFZUVIUURDCHZUUNUUQUVJUUPUUNUVKUUQCDULZUMZUUNUUPUUQUNUUNUU
      PUUQUOCABDEUPUQUVGUUOUUSURNZUAUVGCUUSUTNUURUVFUVCUAUVGUUPUUQUVDUVGHZUVFUV
      COZOZUUNUUPUVKUUQUVQUVLUVKUUQPZUVOUVPUVRUVOPZUVBUVEHUVFUVCUVSBEQZUVBUVEUU
      QUVTUVBKZUVKUVOUUQEUVBBVAZUWAUUQBEUKZUWBEDBURZEBVBVCEUVBBVDNVEUVSUVKUVOUU
      QEEUVDVKUSZHZUVTUVEHUVKUUQUVOVFUVRUVOVGUVKUUQUVOVHUVOUWFUVRUVOUWEEUEIHUWF
      UVDEVIUWEEULNVJCUVDEBUWEDEUWEVLVMVNVOUVECUVBVPVQRVRVSVTWAUURUVCUVAUURUVCP
      ZCFCBWBZFJZQZWCZUIZUUSIZUUTUWGUBCUWMUWGUBJZCHZUWNDSZBGJZQZUWNSZGUWLLZPZUW
      NUWMHZUWGUWOUXAUWGUWOUWPUWTUWGUUPUWOUWPOUUNUUPUUQUVCWDZUUPUWOUWPUWNCDWERN
      UWGUWOUWTUWGUWOPZUWHUWNQZUWLHZBUXEQZUWNSZUWTUXDUXFUXEUWJKZFCLZUXDUWOUXEUX
      EKZUXJUWGUWOVGUXDUXEWFUXIUXKFUWNCUWIUWNKUWJUXEUXEUWIUWNUWHWGWHWIWJUWGUXFU
      XJMZUWOUWGUXEWLHUXLUWGUXEEAUUNUUPUUQUVCWKUURUXEESZUVCUUQUUNUXMUUPUUQBWMZU
      XEEBUWNWNZEDBWOZWPWQTWRFCUWJUXEUWKWLUWKVLZWSNTWTUXDUXHUXEUXESZUXEXAUXDBXC
      ZUXEUXNSUXHUXRMUURUXSUVCUWOUUQUUNUXSUUPEDBXDWQZXBUXOUXEUWNBXEXFXGUWSUXHGU
      XEUWLUWQUXEKUWRUXGUWNUWQUXEBWGXHWIWJRXNUWGUWPUWTUWOUWGUWTUWPUWOUWGUWSUWPU
      WOOGUWLUWGUWQUWLHZUWSUWPUWOUWGUYAUWSPZUWPPZPUUPUWRCHZUWPUWSUWOUWGUUPUYCUX
      CTUWGUYAUWSUWPUYDUYAUWQUWJKZFCLZUWGUWSUWPUYDOZOZUWQWLHUYAUYFMGXIFCUWJUWQU
      WKWLUXQWSXJUWGUYEUYHFCUWGUWICHZPZUYHUYEBUWJQZUWNSZUWPUYKCHZOZOUYJUYLUWPUY
      MUYJUYLUWPPZPZUYKUWIUVBXKZCUYPUYKUYQUYPUYKUWISZUYKUVBSUYKUYQSUYPUYRUWJUWJ
      SZUWJXAUYPUXSUWJUXNSZUYRUYSMUURUXSUVCUYIUYOUXTXLZBUWIWNZUWJUWIBXEXFXGBUWJ
      XMUYKUWIUVBXOXPUYPUCUYQUYKUCJZUYQHVUCUWIHZVUCUVBHZPUYPVUCUYKHZVUCUWIUVBXQ
      UYPVUDVUEVUFUYPVUEVUDVUFUYPVUEUDJZBIZVUCKZUDELZVUDVUFOZUURVUEVUJMZUVCUYIU
      YOUUQUUNVULUUPUUQUWCVULUWDUDEVUCBUTNWQXLUYPVUIVUKUDEUYPVUGEHZPZVUHUWIHZVU
      HUYKHZOVUIVUKVUNVUOVUPVUNVUOPZUXSUYTPVUGUWJHZVUPVUQUXSUYTUYPUXSVUMVUOVUAX
      BVUBXRVUNVUOVURVUNUXSVUGUXNHZVUOVURMUYJUXSUYOVUMUURUXSUVCUYIUXTXBXBUYPVUS
      VUMUYPUXNEVUGUURUXNEKZUVCUYIUYOUUQUUNVUTUUPUXPWQXLXSYEVUGUWIBXTWJYAUWJVUG
      BYBYCRVUIVUOVUDVUPVUFVUHVUCUWIYDVUHVUCUYKYDYFVQYGWAYHYIYPYJYKUYJUYQCHZUYO
      UURUVCUYIVVAUUPUUNUVCUYIVVAOOUUQUUPUYIUVCVVAUUPUYIUVCVVAUWIUVBCDYLYMYHUMY
      NTYOYQUYEUWSUYLUYGUYNUYEUWRUYKUWNUWQUWJBWGZXHUYEUYDUYMUWPUYEUWRUYKCVVBYRY
      SYFUUAYGYPUUBUWGUYBUWPUUFUWGUYAUWSUWPUUCUWRUWNCDUUDUUEUUGVTYHYIYTUWGUVKUW
      LUVGHZUUQUXBUXAMUURUVKUVCUVMTFABCDEUUHZUUNUUPUUQUVCUUIGUWNUWLCBDEUUJUQUUK
      UULUWGUVIVVCUWMUUTHUURUVIUVCUVNTVVDUVGUWLUUSUUMWJYORYT $.
  $}

  ${
    $d f s t w x y z B $.  $d f s t w x y z F $.  $d f s t w x y z L $.
    $d s t w x y z ph $.  $d f s t w x y z X $.  $d f s t w x z Y $.
    fmfnfm.b $e |- ( ph -> B e. ( fBas ` Y ) ) $.
    fmfnfm.l $e |- ( ph -> L e. ( Fil ` X ) ) $.
    fmfnfm.f $e |- ( ph -> F : Y --> X ) $.
    fmfnfm.fm $e |- ( ph -> ( ( X FilMap F ) ` B ) C_ L ) $.
    $( Lemma for ~ fmfnfm .  (Contributed by Jeff Hankins, 18-Nov-2009.)
       (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    fmfnfmlem1 $p |- ( ph -> ( s e. ( fi ` B ) ->
                       ( ( F " s ) C_ t -> ( t C_ X -> t e. L ) ) ) ) $=
      ( vw cv cfv wcel cima wss wi wa cfi cfbas fbssfi sylan sstr2 imass2 syl11
      wrex reximdv syl5com cfm co wf cfil filtop syl elfm syl3anc sseld sylbird
      wb expcomd adantr syld ex ) AHNZCUAOPZDVFQZBNZRZVIFRZVIEPZSZSAVGTZVJDMNZQ
      ZVIRZMCUHZVMVNVOVFRZMCUHZVJVRACGUBOPZVGVTIMVFCGUCUDVJVSVQMCVPVHRVJVQVSVPV
      HVIUEVOVFDUFUGUIUJAVRVMSVGAVKVRVLAVKVRTZVICFDUKULOZPZVLAFEPZWAGFDUMWDWBVA
      AEFUNOPWEJEFUOUPIKMVICEDFGUQURAWCEVILUSUTVBVCVDVE $.

    $( Lemma for ~ fmfnfm .  (Contributed by Jeff Hankins, 19-Nov-2009.)
       (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    fmfnfmlem2 $p |- ( ph -> ( E. x e. L s = ( `' F " x ) ->
                       ( ( F " s ) C_ t -> ( t C_ X -> t e. L ) ) ) ) $=
      ( cv wss wcel wi wa cfv ad2antrr vy vz ccnv cima wceq cfil crn cin simplr
      cfm co wf wfo wfn ffn dffn4 sylib foima 3syl cfbas cfg filtop syl imaelfm
      fgcl eqid syl31anc eqeltrrd sseldd filin syl3anc simprr elin wrex fvelrnb
      wb wfun cdm ffun fdm eleqtrrd fvimacnv syl2anc cnvimass funfvima2 sylancl
      ssel ad2antrl syld sylbid eleq1 imbi12d syl5ibcom expr com23 impd adantrr
      rexlimdv syl5bi ssrdv filss syl13anc exp32 imaeq2 sseq1d imbi1d rexlimdva
      syl5ibrcom ) AINZEUCBNZUDZUEZEXIUDZCNZOZXNGOZXNFPZQZQZBFAXJFPZRZXSXLEXKUD
      ZXNOZXRQYAYCXPXQYAYCXPRZRZFGUFSPZXJEUGZUHZFPZXPYHXNOXQAYFXTYDKTZYEYFXTYGF
      PZYIYJAXTYDUIAYKXTYDADGEUJUKSZFYGMAEHUDZYGYLAHGEULZHYGEUMZYMYGUELYNEHUNZY
      OHGEUOZHEUPUQHYGEURUSAGFPZDHUTSPZYNHHDVAUKZPZYMYLPAYFYRKFGVBVCJLAYSYTHUFS
      PUUAJDHVEYTHVBUSFDHEYTGHYTVFVDVGVHVITXJYGFGVJVKYAYCXPVLYEUAYHXNUANZYHPUUB
      XJPZUUBYGPZRZYEUUBXNPZUUBXJYGVMYAYCUUEUUFQXPYAYCRZUUCUUDUUFUUGUUDUUCUUFUU
      GUUDUBNZESZUUBUEZUBHVNZUUCUUFQZAUUDUUKVPZXTYCAYNYPUUMLYQUBHUUBEVOUSTUUGUU
      JUULUBHYAYCUUHHPZUUJUULQYAYCUUNRZRZUUIXJPZUUIXNPZQUUJUULUUPUUQUUHXKPZUURU
      UPEVQZUUHEVRZPUUQUUSVPAUUTXTUUOAYNUUTLHGEVSVCTZUUPUUHHUVAYAYCUUNVLAUVAHUE
      ZXTUUOAYNUVCLHGEVTVCTWAUUHXJEWBWCUUPUUSUUIYBPZUURUUPUUTXKUVAOUUSUVDQUVBEX
      JWDXKUUHEWEWFYCUVDUURQYAUUNYBXNUUIWGWHWIWJUUJUUQUUCUURUUFUUIUUBXJWKUUIUUB
      XNWKWLWMWNWRWJWOWPWQWSWTYHXNFGXAXBXCXLXOYCXRXLXMYBXNXIXKEXDXEXFXHXG $.

    $( Lemma for ~ fmfnfm .  (Contributed by Jeff Hankins, 19-Nov-2009.)
       (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    fmfnfmlem3 $p |- ( ph -> ( fi ` ran ( x e. L |-> ( `' F " x ) ) ) =
                                    ran ( x e. L |-> ( `' F " x ) ) ) $=
      ( vs vt vy vz wcel wceq wa wrex cvv cin ccnv cima cmpt crn wral cfi filin
      cv cfv cfil 3expb sylan wf wfun ffun funcnvcnv imain eqcomd adantr imaeq2
      eqeq2d rspcev syl2anc ineq12 eqeq1d rexbidv syl5ibrcom rexlimdvva cbvrexv
      4syl anbi12i wb eqid elrnmpt ax-mp reeanv 3bitr4i inex1 3imtr4g ralrimivv
      vex mptexg rnexg inficl mpbid ) ALUIZMUIZUAZBEDUBZBUIZUCZUDZUEZPZMWNUFLWN
      UFZWNUGUJWNQZAWOLMWNWNAWGWJNUIZUCZQZWHWJOUIZUCZQZRZOESNESZWIWLQZBESZWGWNP
      ZWHWNPZRZWOAXDXGNOEEAWREPZXAEPZRZRZXGXDWSXBUAZWLQZBESZXNWRXAUAZEPZXOWJXRU
      CZQZXQAEFUKUJZPZXMXSIYCXKXLXSWRXAEFUHULUMAYAXMAGFDUNDUOWJUBUOZYAJGFDUPDUQ
      YDXTXOWRXAWJURUSVKUTXPYABXREWKXRQWLXTXOWKXRWJVAVBVCVDXDXFXPBEXDWIXOWLWGWS
      WHXBVEVFVGVHVIWGWLQZBESZWHWLQZBESZRWTNESZXCOESZRXJXEYFYIYHYJYEWTBNEWKWRQW
      LWSWGWKWRWJVAVBVJYGXCBOEWKXAQWLXBWHWKXAWJVAVBVJVLXHYFXIYHWGTPXHYFVMLWBZBE
      WLWGWMTWMVNZVOVPWHTPXIYHVMMWBBEWLWHWMTYLVOVPVLWTXCNOEEVQVRWITPWOXGVMWGWHY
      KVSBEWLWIWMTYLVOVPVTWAAYCWMTPWNTPWPWQVMIBEWLYBWCWMTWDLMWNTWEVKWF $.

    $( Lemma for ~ fmfnfm .  (Contributed by Jeff Hankins, 19-Nov-2009.)
       (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    fmfnfmlem4 $p |- ( ph -> ( t e. L <-> ( t C_ X /\
      E. s e. ( fi ` ( B u. ran ( x e. L |-> ( `' F " x ) ) ) )
              ( F " s ) C_ t ) ) ) $=
      ( wcel wss wa wi syl cvv adantr vz vw cima ccnv cmpt crn cun cfi cfv wrex
      vy cv cfil filelss ex cfbas mptexg rnexg unexg syl2anc unssbd wceq imaeq2
      ssfii eqid eqeq2d rspcev mpan2 adantl wb cdm elfvdm cnvimass fdm syl5sseq
      wf elrnmpt mpbird sseldd wfun ffun ssid funimass2 sylancl sseq1d jcad cin
      ssexd w3o elfiun fmfnfmlem1 fmfnfmlem3 eleq2d vex ax-mp fmfnfmlem2 syl5bi
      sylbid syl6bb fbssfi sylan ad3antrrr cfm w3a cfg filtop 3jca ssfg imaelfm
      co sselda adantrr jca filin 3expa simprr wel fvelima simplrr simprl ssel2
      elin syl2an ad2antrr fbelss sseqtr4d fvimacnv biimpd impr ad2ant2rl elind
      inss2 sstri funfvima2 sylc eleq1 rexlimdva impd imbi1d syl5ibrcom anassrs
      expr imbi12d syl5ibcom syld adantrl ssrdv sstrd filss exp32 ineq2 imaeq2d
      syl13anc rexlimdvaa imp syldan rexlimdvva 3jaod rexlimdv com23 impbid ) A
      CULZFNZUVBGOZEIULZUCZUVBOZIDBFEUDZBULZUCZUEZUFZUGZUHUIZUJZPAUVCUVDUVOAFGU
      MUIZNZUVCUVDQKUVQUVCUVDUVBFGUNUORAUVCUVOAUVCPZUVHUVBUCZUVNNEUVSUCZUVBOZUV
      OUVRUVLUVNUVSAUVLUVNOZUVCAUVMSNZUWBADHUPUIZNZUVLSNZUWCJAUVQUWFKUVQUVKSNUW
      FBFUVJUVPUQUVKSURRRZDUVLUWDSUSUTUWCDUVLUVNUVMSVDVARTUVRUVSUVLNZUVSUVJVBZB
      FUJZUVCUWJAUVCUVSUVSVBZUWJUVSVEUWIUWKBUVBFUVIUVBVBUVJUVSUVSUVIUVBUVHVCVFV
      GVHVIUVRUVSSNZUWHUWJVJAUWLUVCAUVSHUPVKZAUWEHUWMNJDHUPVLRAEVKZUVSHEUVBVMAH
      GEVPZUWNHVBZLHGEVNRZVOWHTBFUVJUVSUVKSUVKVEZVQRVRVSAUWAUVCAUWOUWALUWOEVTZU
      VSUVSOUWAHGEWAZUVSWBUVSUVBEWCWDRTUVGUWAIUVSUVNUVEUVSVBUVFUVTUVBUVEUVSEVCW
      EVGUTUOWFAUVDUVOUVCAUVOUVDUVCAUVGUVDUVCQZIUVNAUVEUVNNZUVEDUHUIZNZUVEUVLUH
      UIZNZUVEUAULZUBULZWGZVBZUBUXEUJUAUXCUJZWIZUVGUXAQZAUWEUWFUXBUXLVJJUWGUAUB
      UVEDUVLUWDSWJUTAUXDUXMUXFUXKACDEFGHIJKLMWKAUXFUVEUVLNZUXMAUXEUVLUVEABDEFG
      HJKLMWLZWMUXNUVEUVJVBBFUJZAUXMUVESNUXNUXPVJIWNBFUVJUVEUVKSUWRVQWOABCDEFGH
      IJKLMWPWQWRAUXJUXMUAUBUXCUXEAUXGUXCNZUXHUXENZPPUXMUXJEUXIUCZUVBOZUXAQZAUX
      QUXRUYAAUXQPUXRUXHUVJVBZBFUJZUYAAUXRUYCVJUXQAUXRUXHUVLNZUYCAUXEUVLUXHUXOW
      MUXHSNUYDUYCVJUBWNBFUVJUXHUVKSUWRVQWOWSTAUXQUVEUXGOZIDUJZUYCUYAQZAUWEUXQU
      YFJIUXGDHWTXAAUYFUYGAUYEUYGIDAUVEDNZUYEPZPZUYBUYABFUYJUVIFNZPZUYAUYBEUXGU
      VJWGZUCZUVBOZUXAQUYLUYOUVDUVCUYLUYOUVDPZPZUVQUVFUVIWGZFNZUVDUYRUVBOUVCAUV
      QUYIUYKUYPKXBUYLUYSUYPUYJUVQUVFFNZPUYKUYSUYJUVQUYTAUVQUYIKTAUYHUYTUYEAUYH
      PZDGEXCXJUIZFUVFAVUBFOUYHMTVUAGFNZUWEUWOXDZUVEHDXEXJZNUVFVUBNAVUDUYHAVUCU
      WEUWOAUVQVUCKFGXFRJLXGTADVUEUVEAUWEDVUEOJDHXHRXKFDUVEEVUEGHVUEVEXIUTVSXLX
      MUVQUYTUYKUYSUVFUVIFGXNXOXATUYLUYOUVDXPUYQUYRUYNUVBUYQUBUYRUYNUYLUVDUXHUY
      RNZUXHUYNNZQUYOVUFUXHUVFNZUBBXQZPUYLUVDPZVUGUXHUVFUVIYBVUJVUHVUIVUGVUJVUH
      UKULZEUIZUXHVBZUKUVEUJZVUIVUGQZAVUHVUNQZUYIUYKUVDAUWSVUPAUWOUWSLUWTRZUWSV
      UHVUNUKUXHUVEEXRUORXBVUJVUMVUOUKUVEVUJUKIXQZPVULUVINZVULUYNNZQVUMVUOVUJVU
      RVUSVUTUYLUVDVURVUSPZVUTUYLUVDVVAPZPZUWSVUKUYMNZVUTAUWSUYIUYKVVBVUQXBVVCU
      XGUVJVUKUYLUYEVURUKUAXQVVBAUYHUYEUYKXSUVDVURVUSXTUVEUXGVUKYAYCUYJVVAVUKUV
      JNZUYKUVDUYJVURVUSVVEUYJVURPZVUSVVEVVFUWSVUKUWNNVUSVVEVJAUWSUYIVURVUQYDUY
      JUVEUWNVUKAUYHUVEUWNOUYEVUAUVEHUWNAUWEUYHUVEHOJHDUVEYEXAAUWPUYHUWQTYFXLXK
      VUKUVIEYGUTYHYIYJYKUWSUYMUWNOVVDVUTQUYMUVJUWNUXGUVJYLEUVIVMYMUYMVUKEYNVHY
      OUUAUUBVUMVUSVUIVUTVUGVULUXHUVIYPVULUXHUYNYPUUCUUDYQUUEYRWQUUFUUGUYLUYOUV
      DXTUUHUYRUVBFGUUIUUMUUJUYBUXTUYOUXAUYBUXSUYNUVBUYBUXIUYMEUXHUVJUXGUUKUULW
      EYSYTYQUUNUUOUUPWRYIUXJUVGUXTUXAUXJUVFUXSUVBUVEUXIEVCWEYSYTUUQUURWRUUSUUT
      YRUVA $.

    $( A filter finer than an image filter is an image filter of the same
       function.  (Contributed by Jeff Hankins, 13-Nov-2009.)  (Revised by
       Stefan O'Rear, 8-Aug-2015.) $)
    fmfnfm $p |- ( ph -> E. f e. ( Fil ` Y ) ( B C_ f /\
            L = ( ( X FilMap F ) ` f ) ) ) $=
      ( vx vt cfv wcel wss wceq wa c0 syl vs vy ccnv cv cima crn cun cfi cfg co
      cmpt cfil cfm wrex cfbas cpw wne wn fbsspw cdm elfvdm wfo wfn dffn4 sylib
      wf foima 3syl filtop fgcl eqid imaelfm syl31anc eqeltrrd sseldd rnelfmlem
      ffn unssd ssun1 fbasne0 ssn0 sylancr cin cvv wb vex elrnmpt ax-mp 0nelfil
      wral ad2antrr adantr w3a 3jca ssfg sselda syl2anc filin 3expa sylan eleq1
      jca syl5ibcom mtod wex neq0 elin wi wfun ffun fvelima ex ad3antrrr fbelss
      sseqtr4d fvimacnv inelcm adantl sylbid imbi1d rexlimdva syld impd exlimdv
      fdm syl5bi mpd neeq1d syl5ibrcom expimpd ralrimivv fbunfip mpbird fsubbas
      ineq2 mpbir3and unexg ssfii unssad syl3anc sstrd bitr4d eqrdv eqtrd sseq2
      fmfnfmlem4 elfm fmfg fveq2 eqeq2d anbi12d rspcev syl12anc ) AGBLEDUCLUDZU
      EZUKZUFZUGZUHNZUIUJZGULNZOZBUUTPZEUUTFDUMUJZNZQZBCUDZPZEUVGUVDNZQZRZCUVAU
      NAUUSGUONZOZUVBAUVMUURGUPZPZUURSUQZSUUSOURZABUUQUVNABUVLOZBUVNPHGBUSTAUUQ
      UVLOZUUQUVNPAGUOUTZOZEFULNOZGFDVFZDUFZEOUVSAUVRUWAHBGUOVAZTIJABUVDNZEUWDK
      ADGUEZUWDUWFAUWCGUWDDVBZUWGUWDQJUWCDGVCUWHGFDVQGDVDVEGUWDDVGVHAFEOZUVRUWC
      GGBUIUJZOZUWGUWFOAUWBUWIIEFVITZHJAUVRUWJUVAOUWKHBGVJUWJGVIVHEBGDUWJFGUWJV
      KZVLVMVNVOLUVTDEFGVPVMZGUUQUSTVRABUURPBSUQZUVPBUUQVSAUVRUWOHGBVTTBUURWAWB
      AUVQUAUDZMUDZWCZSUQZMUUQWJUABWJZAUWSUAMBUUQAUWPBOZUWQUUQOZUWSUXBUWQUUOQZL
      EUNZAUXARZUWSUWQWDOUXBUXDWEMWFLEUUOUWQUUPWDUUPVKWGWHUXEUXCUWSLEUXEUUNEOZR
      ZUWSUXCUWPUUOWCZSUQZUXGDUWPUEZUUNWCZSQZURZUXIUXGUXLSEOZAUXNURZUXAUXFAUWBU
      XOIEFWITWKUXGUXKEOZUXLUXNUXEUWBUXJEOZRUXFUXPUXEUWBUXQAUWBUXAIWLUXEUWFEUXJ
      AUWFEPUXAKWLUXEUWIUVRUWCWMZUWPUWJOUXJUWFOAUXRUXAAUWIUVRUWCUWLHJWNWLABUWJU
      WPAUVRBUWJPHBGWOTWPEBUWPDUWJFGUWMVLWQVOXBUWBUXQUXFUXPUXJUUNEFWRWSWTUXKSEX
      AXCXDUXMUWQUXKOZMXEUXGUXIMUXKXFUXGUXSUXIMUXSUWQUXJOZUWQUUNOZRUXGUXIUWQUXJ
      UUNXGUXGUXTUYAUXIUXGUXTUBUDZDNZUWQQZUBUWPUNZUYAUXIXHZAUXTUYEXHZUXAUXFAUWC
      DXIZUYGJGFDXJZUYHUXTUYEUBUWQUWPDXKXLVHWKUXGUYDUYFUBUWPUXGUYBUWPOZRZUYCUUN
      OZUXIXHUYDUYFUYKUYLUYBUUOOZUXIUYKUYHUYBDUTZOUYLUYMWEAUYHUXAUXFUYJAUWCUYHJ
      UYITXMUXGUWPUYNUYBUXEUWPUYNPUXFUXEUWPGUYNAUVRUXAUWPGPHGBUWPXNWTAUYNGQZUXA
      AUWCUYOJGFDYETWLXOWLWPUYBUUNDXPWQUYJUYMUXIXHUXGUYJUYMUXIUYBUWPUUOXQXLXRXS
      UYDUYLUYAUXIUYCUWQUUNXAXTXCYAYBYCYFYDYFYGUXCUWRUXHSUWQUUOUWPYOYHYIYAYFYJY
      KAUVRUVSUVQUWTWEHUWNUAMBUUQGGYLWQYMAUVRUWAUVMUVOUVPUVQWMWEHUWEUURUVTGYNVH
      YPZUUSGVJTABUUSUUTABUUQUUSAUURWDOZUURUUSPAUVRUVSUYQHUWNBUUQUVLUVLYQWQUURW
      DYRTYSAUVMUUSUUTPUYPUUSGWOTUUAAEUUSUVDNZUVEAMEUYRAUWQEOUWQFPUXJUWQPUAUUSU
      NRZUWQUYROZALMBDEFGUAHIJKUUFAUWIUVMUWCUYTUYSWEUWLUYPJUAUWQUUSEDFGUUGYTUUB
      UUCAUWIUVMUWCUYRUVEQUWLUYPJUUSEDUUTFGUUTVKUUHYTUUDUVKUVCUVFRCUUTUVAUVGUUT
      QZUVHUVCUVJUVFUVGUUTBUUEVUAUVIUVEEUVGUUTUVDUUIUUJUUKUULUUM $.
  $}

  ${
    $d f g A $.  $d f g F $.  $d f g L $.  $d f g X $.  $d f g Y $.
    $( An image filter of an ultrafilter is an ultrafilter.  (Contributed by
       Jeff Hankins, 11-Dec-2009.)  (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    fmufil $p |- ( ( X e. A /\ L e. ( UFil ` Y ) /\ F : Y --> X ) ->
        ( ( X FilMap F ) ` L ) e. ( UFil ` X ) ) $=
      ( vf vg wcel cufil cfv wf w3a cfm co cfil cv wss wceq wa simprl cfbas syl
      wi wral ufilfil filfbas fmfil syl3an2 simpl2 simpl3 simprr fmfnfm simprrl
      3syl adantr ufilmax syl3anc fveq2d simprrr eqtr4d rexlimddv expr sylanbrc
      ralrimiva isufil2 ) DAHZCEIJHZEDBKZLZCDBMNZJZDOJZHZVKFPZQZVKVNRZUCZFVLUDV
      KDIJHVGVFCEUAJHZVHVMVGCEOJZHZVRCEUEZCEUFZUBACBDEUGUHVIVQFVLVIVNVLHZVOVPVI
      WCVOSZSZCGPZQZVNWFVJJZRZSZVPGVSWECGBVNDEWEVGVTVRVFVGVHWDUIZWAWBUNVIWCVOTV
      FVGVHWDUJVIWCVOUKULWEWFVSHZWJSZSZVKWHVNWNCWFVJWNVGWLWGCWFRWEVGWMWKUOWEWLW
      JTWEWLWGWIUMCWFEUPUQURWEWLWGWIUSUTVAVBVDFVKDVEVC $.
  $}

  ${
    $d s t u B $.  $d s t u F $.  $d s t u G $.  $d s t u V $.  $d s t u x X $.
    $d s t u W $.  $d f g s t u x y Y $.  $d s t u Z $.
    $( The filter map applied to the identity.  (Contributed by Jeff Hankins,
       8-Nov-2009.)  (Revised by Mario Carneiro, 27-Aug-2015.) $)
    fmid $p |- ( F e. ( Fil ` X ) -> ( ( X FilMap ( _I |` X ) ) ` F ) = F ) $=
      ( vt vs cfil cfv wcel cid cres cfm co cv cima wceq cfg wrex cfbas syl6bbr
      wfo wb filfbas wf1o f1oi f1ofo ax-mp eqid elfm3 sylancl fgfil rexeqdv wss
      wa filelss resiima syl eqeq2d equcom rexbidva risset 3bitrd eqrdv ) ABEFG
      ZCABHBIZJKFZAVBCLZVDGZVEVCDLZMZNZDBAOKZPZVIDAPZVEAGZVBABQFGBBVCSZVFVKTABU
      ABBVCUBVNBUCBBVCUDUEDVEAVCVJBBVJUFUGUHVBVIDVJAABUIUJVBVLVGVENZDAPVMVBVIVO
      DAVBVGAGULZVIVEVGNVOVPVHVGVEVPVGBUKVHVGNVGABUMBVGUNUOUPDCUQRURDVEAUSRUTVA
      $.

    $( Composition of image filters.  (Contributed by Mario Carneiro,
       27-Aug-2015.) $)
    fmco $p |- ( ( ( X e. V /\ Y e. W /\ B e. ( fBas ` Z ) ) /\
        ( F : Y --> X /\ G : Z --> Y ) ) ->
      ( ( X FilMap ( F o. G ) ) ` B ) =
      ( ( X FilMap F ) ` ( ( Y FilMap G ) ` B ) ) ) $=
      ( vu vt wcel cfv wf wa cfm co cv wss cima syl3anc cfbas w3a ccom wrex cfg
      vs wi simpl3 ssfg syl sseld simpl2 simprr eqid imaelfm ex syld imp imaeq2
      wceq imaco syl6eqr sseq1d rspcev rexlimdva wb sstr2 imass2 syl5eqss syl11
      elfm reximdv com12 adantl syl6bi rexlimdv impbid anbi2d simpl1 cfil fmfil
      fco filfbas simprl 3bitr4d eqrdv ) FDKZGEKZAHUALKZUBZGFBMZHGCMZNZNZUFAFBC
      UCZOPLZAGCOPLZFBOPLZWNUFQZFRZWOIQZSZWSRZIAUDZNZWTBJQZSZWSRZJWQUDZNZWSWPKZ
      WSWRKZWNXDXIWTWNXDXIWNXCXIIAWNXAAKZNCXASZWQKZXCXIUGWNXMXOWNXMXAHAUEPZKZXO
      WNAXPXAWNWIAXPRWGWHWIWMUHZAHUIUJUKWNWHWIWLXQXOUGWGWHWIWMULZXRWJWKWLUMZWHW
      IWLUBXQXOEAXACXPGHXPUNUOUPTUQURXOXCXIXHXCJXNWQXFXNUTZXGXBWSYAXGBXNSZXBXFX
      NBUSBCXAVAZVBVCVDUPUJVEWNXHXDJWQWNXFWQKZXFGRZXNXFRZIAUDZNZXHXDUGZWNWHWIWL
      YDYHVFXSXRXTIXFAECGHVKTYGYIYEXHYGXDXHYFXCIAXBXGRXHXCYFXBXGWSVGYFXBYBXGYCX
      NXFBVHVIVJVLVMVNVOVPVQVRWNWGWIHFWOMZXKXEVFWGWHWIWMVSZXRWMYJWJHGFBCWBVNIWS
      ADWOFHVKTWNWGWQGUALKZWKXLXJVFYKWNWQGVTLKZYLWNWHWIWLYMXSXRXTEACGHWATWQGWCU
      JWJWKWLWDJWSWQDBFGVKTWEWF $.

    $( The ultrafilter lemma property is a cardinal invariant, so since it
       transfers to subsets it also transfers over set dominance.  (Contributed
       by Mario Carneiro, 26-Aug-2015.) $)
    ufldom $p |- ( ( X e. UFL /\ Y ~<_ X ) -> Y e. UFL ) $=
      ( vx vf vg vu vy cufl wcel cv wss wa cfv cfm filfbas cvv wceq adantr syl
      co cdom wbr cen wex domeng wf1o bren biimpi ssufl wi cufil wrex cfil wral
      simplr cfbas wf adantl f1of ad2antrr fmfil syl3anc ufli syl2anc cdm f1odm
      ccnv vex dmex syl6eqelr simprl f1ocnv ad3antrrr fmufil ccom cid f1ococnv1
      cres oveq2d fveq1d fmco syl32anc fmid 3eqtr3d ufilfil 3syl eqsstr3d sseq2
      simprr fmss rspcev rexlimddv ralrimiva wb isufl mpbird exlimiv imp syl2an
      ex an12s exlimdv sylbid ) AHIZBAUAUBZBHIZXDXEBCJZUCUBZXGAKZLZCUDXFCBAHUEX
      DXJXFCXDXJXFXHXDXIXFXHBXGDJZUFZDUDZXGHIZXFXDXILXHXMBXGDUGUHAXGUIXMXNXFXLX
      NXFUJDXLXNXFXLXNLZXFEJZFJZKZFBUKMZULZEBUMMZUNZXOXTEYAXOXPYAIZLZXPXGXKNTMZ
      GJZKZXTGXGUKMZYDXNYEXGUMMZIZYGGYHULXLXNYCUOZYDXNXPBUPMIZBXGXKUQZYJYKYCYLX
      OXPBOURZXLYMXNYCBXGXKUSZUTHXPXKXGBVAVBZGYEXGVCVDYDYFYHIZYGLZLZYFBXKVGZNTZ
      MZXSIZXPUUBKZXTYSBPIZYQXGBYTUQZUUCXOUUEYCYRXOBXKVEZPXLUUGBQXNBXGXKVFRXKDV
      HVIVJZUTZYDYQYGVKZYSXGBYTUFZUUFXLUUKXNYCYRBXGXKVLVMXGBYTUSSZPYTYFBXGVNVBY
      SXPYEUUAMZUUBYSXPBYTXKVOZNTZMZXPBVPBVRZNTZMZUUMXPYSXPUUOUURYSUUNUUQBNXLUU
      NUUQQXNYCYRBXGXKVQVMVSVTYSUUEXNYLUUFYMUUPUUMQUUIYDXNYRYKRYDYLYRYNRUULXLYM
      XNYCYRYOVMXPYTXKPHBXGBWAWBYSYCUUSXPQXOYCYRUOXPBWCSWDYSUUEYEXGUPMZIZYFUUTI
      ZUUFYGUUMUUBKUUIYSYJUVAYDYJYRYPRYEXGOSYSYQYFYIIUVBUUJYFXGWEYFXGOWFUULYDYQ
      YGWIPYEYFYTBXGWJWBWGXRUUDFUUBXSXQUUBXPWHWKVDWLWMXOUUEXFYBWNUUHEFPBWOSWPWT
      WQWRWSXAWTXBXCWR $.
  $}

  ${
    $d x A $.  $d f j x F $.  $d f j x J $.  $d f j x X $.
    flimval.1 $e |- X = U. J $.
    $( The set of limit points of a filter.  (Contributed by Jeff Hankins,
       4-Sep-2009.)  (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    flimval $p |- ( ( J e. Top /\ F e. U. ran Fil ) ->
      ( J fLim F ) = { x e. X |
        ( ( ( nei ` J ) ` { x } ) C_ F /\ F C_ ~P X ) } ) $=
      ( vj vf ctop wcel cuni cv cnei cfv wss cpw wa crab cvv cflim wceq crn csn
      cfil co topopn adantr rabexg syl simpl unieqd syl6eqr fveq2d fveq1d simpr
      sseq12d pweqd anbi12d rabeqbidv df-flim ovmpt2ga mpd3an3 ) CHIZBUCUAJZIZA
      KUBZCLMZMZBNZBDOZNZPZADQZRIZCBSUDVLTVBVDPDCIZVMVBVNVDCDEUEUFVKADCUGUHFGCB
      HVCVEFKZLMZMZGKZNZVRVOJZOZNZPZAVTQVLSRVOCTZVRBTZPZWCVKAVTDWFVTCJDWFVOCWDW
      EUIZUJEUKZWFVSVHWBVJWFVQVGVRBWFVEVPVFWFVOCLWGULUMWDWEUNZUOWFVRBWAVIWIWFVT
      DWHUPUOUQURAGFUSUTVA $.

    $( The predicate "is a limit point of a filter."  (Contributed by Mario
       Carneiro, 9-Apr-2015.)  (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    elflim2 $p |- ( A e. ( J fLim F ) <->
      ( ( J e. Top /\ F e. U. ran Fil /\ F C_ ~P X ) /\
        ( A e. X /\ ( ( nei ` J ) ` { A } ) C_ F ) ) ) $=
      ( vj vf vx ctop wcel cuni wa cpw wss csn cnei cfv cflim cv crab crn anass
      cfil w3a df-3an anbi1i df-flim elmpt2cl flimval eleq2d wceq fveq2d sseq1d
      co sneq anbi1d ancom syl6bb elrab an12 bitri biadan2 3bitr4ri ) CIJZBUCUA
      KZJZLZBDMNZLZADJZAOZCPQZQZBNZLZLVGVHVOLZLVDVFVHUDZVOLACBRUNZJZVGVHVOUBVQV
      IVOVDVFVHUEUFVSVGVPFGIVEHSZOZFSZPQQGSZNWCWBKZMNLHWDTCBRAHGFUGUHVGVSAWAVLQ
      ZBNZVHLZHDTZJZVPVGVRWHAHBCDEUIUJWIVJVHVNLZLVPWGWJHADVTAUKZWGVNVHLWJWKWFVN
      VHWKWEVMBWKWAVKVLVTAUOULUMUPVNVHUQURUSVJVHVNUTVAURVBVC $.
  $}

  $( Reverse closure for the limit point predicate.  (Contributed by Mario
     Carneiro, 9-Apr-2015.)  (Revised by Stefan O'Rear, 9-Aug-2015.) $)
  flimtop $p |- ( A e. ( J fLim F ) -> J e. Top ) $=
    ( cflim co wcel ctop cfil crn cuni cpw wss w3a csn cnei cfv wa eqid elflim2
    simplbi simp1d ) ACBDEFZCGFZBHIJFZBCJZKLZUBUCUDUFMAUEFANCOPPBLQABCUEUERSTUA
    $.

  $( A filter contains the neighborhood filter as a subfilter.  (Contributed by
     Mario Carneiro, 9-Apr-2015.)  (Revised by Stefan O'Rear, 9-Aug-2015.) $)
  flimneiss $p |- ( A e. ( J fLim F ) -> ( ( nei ` J ) ` { A } ) C_ F ) $=
    ( cflim co wcel cuni csn cnei cfv wss ctop cfil crn cpw w3a wa eqid elflim2
    simprbi simprd ) ACBDEFZACGZFZAHCIJJBKZUBCLFBMNGFBUCOKPUDUEQABCUCUCRSTUA $.

  $( A filter contains all of the neighborhoods of its limit points.
     (Contributed by Jeff Hankins, 4-Sep-2009.)  (Revised by Mario Carneiro,
     9-Apr-2015.) $)
  flimnei $p |- ( ( A e. ( J fLim F ) /\ N e. ( ( nei ` J ) ` { A } ) ) ->
    N e. F ) $=
    ( cflim co wcel csn cnei cfv flimneiss sselda ) ACBEFGAHCIJJBDABCKL $.

  ${
    flimuni.1 $e |- X = U. J $.
    $( A limit point of a filter belongs to its base set.  (Contributed by Jeff
       Hankins, 4-Sep-2009.)  (Revised by Mario Carneiro, 9-Apr-2015.) $)
    flimelbas $p |- ( A e. ( J fLim F ) -> A e. X ) $=
      ( cflim co wcel csn cnei cfv wss ctop cfil crn cuni cpw w3a wa elflim2
      simprbi simpld ) ACBFGHZADHZAICJKKBLZUCCMHBNOPHBDQLRUDUESABCDETUAUB $.

    $( Reverse closure for the limit point predicate.  (Contributed by Mario
       Carneiro, 9-Apr-2015.)  (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    flimfil $p |- ( A e. ( J fLim F ) -> F e. ( Fil ` X ) ) $=
      ( cflim co wcel cuni cfil cfv crn ctop cpw wss w3a csn cnei sylib syl wa
      elflim2 simplbi simp2d filunirn simp3d sspwuni flimneiss topopn flimelbas
      flimtop opnneip syl3anc sseldd elssuni eqssd fveq2d eleqtrd ) ACBFGHZBBIZ
      JKZDJKUSBJLIHZBVAHUSCMHZVBBDNOZUSVCVBVDPADHZAQCRKKZBOUAABCDEUBUCZUDBUESUS
      UTDJUSUTDUSVDUTDOUSVCVBVDVGUFBDUGSUSDBHDUTOUSVFBDABCUHUSVCDCHZVEDVFHABCUK
      ZUSVCVHVICDEUITABCDEUJACDULUMUNDBUOTUPUQUR $.
  $}

  $( Reverse closure for the limit point predicate.  (Contributed by Mario
     Carneiro, 26-Aug-2015.) $)
  flimtopon $p |- ( A e. ( J fLim F ) ->
      ( J e. ( TopOn ` X ) <-> F e. ( Fil ` X ) ) ) $=
    ( cflim co wcel ctopon cfv cuni wceq cfil ctop wb flimtop istopon baib eqid
    syl filunibas flimfil fveq2 eleq2d syl5ibrcom eqeq1d syl5ibcom impbid bitrd
    ) ACBEFGZCDHIGZDCJZKZBDLIZGZUICMGZUJULNABCOUJUOULDCPQSUIULUNUIUNULBUKLIZGZA
    BCUKUKRUAZULUMUPBDUKLUBUCUDUIBJZUKKZUNULUIUQUTURBUKTSUNUSDUKBDTUEUFUGUH $.

  $( The predicate "is a limit point of a filter."  (Contributed by Jeff
     Hankins, 4-Sep-2009.)  (Revised by Mario Carneiro, 23-Aug-2015.) $)
  elflim $p |- ( ( J e. ( TopOn ` X ) /\ F e. ( Fil ` X ) ) ->
                 ( A e. ( J fLim F ) <->
                   ( A e. X /\ ( ( nei ` J ) ` { A } ) C_ F ) ) ) $=
    ( ctopon cfv wcel cfil wa cflim co cuni csn cnei wss ctop crn adantr adantl
    cpw wb topontop fvssunirn sseli filsspw wceq toponuni pweqd sseqtrd elflim2
    w3a eqid baib syl3anc eleq2d anbi1d bitr4d ) CDEFGZBDHFZGZIZACBJKGZACLZGZAM
    CNFFBOZIZADGZVEIVACPGZBHQLZGZBVCTZOZVBVFUAURVHUTDCUBRUTVJURUSVIBHDUCUDSVABD
    TZVKUTBVMOURBDUESVADVCURDVCUFUTDCUGRZUHUIVBVHVJVLUKVFABCVCVCULUJUMUNVAVGVDV
    EVADVCAVNUOUPUQ $.

  ${
    $d x y A $.  $d x y F $.  $d x G $.  $d x y J $.  $d x K $.  $d x y X $.
    $( A limit point of a filter is a limit point of a finer filter.
       (Contributed by Jeff Hankins, 5-Sep-2009.)  (Revised by Stefan O'Rear,
       8-Aug-2015.) $)
    flimss2 $p |- ( ( J e. ( TopOn ` X ) /\ F e. ( Fil ` X ) /\ G C_ F ) ->
        ( J fLim G ) C_ ( J fLim F ) ) $=
      ( vx ctopon cfv wcel cfil wss w3a cflim co cv csn cnei cuni eqid adantl
      wa flimelbas wceq simpl1 toponuni syl eleqtrrd flimneiss simpl3 wb simpl2
      sstrd elflim syl2anc mpbir2and ex ssrdv ) CDFGHZADIGHZBAJZKZECBLMZCALMZUT
      ENZVAHZVCVBHZUTVDTZVEVCDHZVCOCPGGZAJZVFVCCQZDVDVCVJHUTVCBCVJVJRUASVFUQDVJ
      UBUQURUSVDUCZDCUDUEUFVFVHBAVDVHBJUTVCBCUGSUQURUSVDUHUKVFUQURVEVGVITUIVKUQ
      URUSVDUJVCACDULUMUNUOUP $.

    $( A limit point of a filter is a limit point in a coarser topology.
       (Contributed by Mario Carneiro, 9-Apr-2015.)  (Revised by Stefan O'Rear,
       8-Aug-2015.) $)
    flimss1 $p |- ( ( J e. ( TopOn ` X ) /\ F e. ( Fil ` X ) /\ J C_ K ) ->
      ( K fLim F ) C_ ( J fLim F ) ) $=
      ( vx cfv wcel cfil wss cflim co wa cnei cuni eqid adantl filunibas eqtr3d
      wceq syl ctopon w3a csn flimelbas simpl2 flimfil eleqtrrd simpl1 topontop
      cv ctop flimtop toponuni simpl3 topssnei syl31anc flimneiss sstrd syl2anc
      wb elflim mpbir2and ex ssrdv ) BDUAFGZADHFGZBCIZUBZECAJKZBAJKZVHEUJZVIGZV
      KVJGZVHVLLZVMVKDGZVKUCZBMFFZAIZVNVKCNZDVLVKVSGVHVKACVSVSOZUDPVNANZDVSVNVF
      WADSVEVFVGVLUEZADQTVNAVSHFGZWAVSSVLWCVHVKACVSVTUFPAVSQTRZUGVNVQVPCMFFZAVN
      BUKGZCUKGZBNZVSSVGVQWEIVNVEWFVEVFVGVLUHZDBUITVLWGVHVKACULPVNDWHVSVNVEDWHS
      WIDBUMTWDRVEVFVGVLUNVPBCWHVSWHOVTUOUPVLWEAIVHVKACUQPURVNVEVFVMVOVRLUTWIWB
      VKABDVAUSVBVCVD $.

    $( A point is a limit point of its neighborhood filter.  (Contributed by
       Jeff Hankins, 7-Sep-2009.)  (Revised by Stefan O'Rear, 9-Aug-2015.) $)
    neiflim $p |- ( ( J e. ( TopOn ` X ) /\ A e. X ) ->
      A e. ( J fLim ( ( nei ` J ) ` { A } ) ) ) $=
      ( ctopon cfv wcel wa csn cnei cflim co wss ssid jctr adantl cfil wb simpl
      c0 wne snssi snnzg neifil syl3anc elflim syldan mpbird ) BCDEFZACFZGZABAH
      ZBIEEZJKFZUIULULLZGZUIUOUHUIUNULMNOUHUIULCPEFZUMUOQUJUHUKCLZUKSTZUPUHUIRU
      IUQUHACUAOUIURUHACUBOUKBCUCUDAULBCUEUFUG $.

    $( The condition for being a limit point of a filter still holds if one
       only considers open neighborhoods.  (Contributed by Jeff Hankins,
       4-Sep-2009.)  (Proof shortened by Mario Carneiro, 9-Apr-2015.) $)
    flimopn $p |- ( ( J e. ( TopOn ` X ) /\ F e. ( Fil ` X ) ) ->
    ( A e. ( J fLim F ) <-> ( A e. X /\ A. x e. J ( A e. x -> x e. F ) ) ) ) $=
      ( vy cfv wcel wa wss cv wi wral sylan eleq1 rspcv syl ralrimdva ad3antrrr
      wb ctopon cfil cflim csn cnei elflim dfss3 ctop topontop ad2antrr opnneip
      co 3expb expr com23 cnt simpr cuni wceq toponuni eleqtrd snssd eqid neii1
      simplr neiint syl3anc mpbid snssg ad2antlr mpbird syl2anc imbi12d simpllr
      ntropn eleq2 mpid ntrss2 sseqtr4d filss 3exp2 com24 syl3c impbid pm5.32da
      syld syl5bb bitrd ) DEUAGHZCEUBGHZIZBDCUCULHBEHZBUDZDUEGGZCJZIWLBAKZHZWPC
      HZLZADMZIBCDEUFWKWLWOWTWOFKZCHZFWNMZWKWLIZWTFWNCUGXDXCWTXDXCWSADXDWPDHZIW
      QXCWRXDXEWQXCWRLZXDXEWQIZIWPWNHZXFXDDUHHZXGXHWIXIWJWLEDUIZUJZXIXEWQXHBDWP
      UKUMNXBWRFWPWNXAWPCOPQUNUORXDWTXBFWNXDXAWNHZIZWTXADUPGGZCHZXBXMWTBXNHZXOX
      MXPWMXNJZXMXLXQXDXLUQXMXIWMDURZJXAXRJZXLXQTWIXIWJWLXLXJSZXMBXRXMBEXRWKWLX
      LVEWIEXRUSWJWLXLEDUTSZVAVBXDXIXLXSXKWMDXAXRXRVCZVDNZWMDXAXRYBVFVGVHWLXPXQ
      TWKXLBXNEVIVJVKXMXNDHZWTXPXOLZLXMXIXSYDXTYCXADXRYBVOVLWSYEAXNDWPXNUSWQXPW
      RXOWPXNBVPWPXNCOVMPQVQXMWJXNXAJZXAEJZXOXBLWIWJWLXLVNXMXIXSYFXTYCXADXRYBVR
      VLXMXAXREYCYAVSWJXOYGYFXBWJXOYGYFXBXNXACEVTWAWBWCWFRWDWGWEWH $.
  $}

  ${
    $d n x y A $.  $d n x y B $.  $d n x y J $.  $d n x y X $.  $d x y F $.
    fbflim.3 $e |- F = ( X filGen B ) $.
    $( A condition for a filter to converge to a point involving one of its
       bases.  (Contributed by Jeff Hankins, 4-Sep-2009.)  (Revised by Stefan
       O'Rear, 6-Aug-2015.) $)
    fbflim $p |- ( ( J e. ( TopOn ` X ) /\ B e. ( fBas ` X ) ) ->
      ( A e. ( J fLim F ) <->
          ( A e. X /\ A. x e. J ( A e. x -> E. y e. B y C_ x ) ) ) ) $=
      ( ctopon cfv wcel cfbas wa cflim co cv wi wral wss wb cfg syl5eqel sylan2
      wrex cfil fgcl flimopn eleq2i elfg ad3antlr syl5bb simpll sylan biantrurd
      toponss bitr4d imbi2d ralbidva pm5.32da bitrd ) FGIJKZDGLJKZMZCFENOKZCGKZ
      CAPZKZVFEKZQZAFRZMZVEVGBPVFSBDUDZQZAFRZMVBVAEGUEJZKVDVKTVBEGDUAOZVOHDGUFU
      BACEFGUGUCVCVEVJVNVCVEMZVIVMAFVQVFFKZMZVHVLVGVSVHVFGSZVLMZVLVHVFVPKZVSWAE
      VPVFHUHVBWBWATVAVEVRBVFDGUIUJUKVSVTVLVQVAVRVTVAVBVEULVFFGUOUMUNUPUQURUSUT
      $.

    $( A condition for a filter base ` B ` to converge to a point ` A ` .  Use
       neighborhoods instead of open neighborhoods.  Compare ~ fbflim .
       (Contributed by FL, 4-Jul-2011.)  (Revised by Stefan O'Rear,
       6-Aug-2015.) $)
    fbflim2 $p |- ( ( J e. ( TopOn ` X ) /\ B e. ( fBas ` X ) ) ->
        ( A e. ( J fLim F ) <-> ( A e. X /\
            A. n e. ( ( nei ` J ) ` { A } ) E. x e. B x C_ n ) ) ) $=
      ( vy cfv wcel wa cv wss wrex wi wral ad2antrr simpr syl ctopon cfbas cnei
      cflim co csn fbflim cuni ctop topontop wceq toponuni eleqtrd eqid syl2anc
      isneip syl6bi r19.29 pm3.45 imp sstr2 com12 reximdv impcom rexlimivw syl9
      wb ralrimdv adantr simprl simprr opnneip syl3anc sseq2 rexbidv rspcv expr
      ex com23 ralrimdva impbid pm5.32da bitrd ) FGUAJKZCGUBJKZLZBFEUDUEKBGKZBI
      MZKZAMZWHNZACOZPZIFQZLWGWJDMZNZACOZDBUFFUCJJZQZLIABCEFGHUGWFWGWNWSWFWGLZW
      NWSWTWNWQDWRWTWOWRKZWIWHWONZLZIFOZWNWQWTXAWOFUHZNZXDLZXDWTFUIKZBXEKXAXGVG
      WDXHWEWGGFUJRZWTBGXEWFWGSWDGXEUKWEWGGFULRUMBIFWOXEXEUNUPUOXFXDSUQWNXDWQWN
      XDLWMXCLZIFOWQWMXCIFURXJWQIFXJWLXBLZWQWMXCXKWIWLXBUSUTXBWLWQXBWKWPACWKXBW
      PWJWHWOVAVBVCVDTVETVRVFVHWTWSWMIFWTWHFKZLWIWSWLWTXLWIWSWLPZWTXLWILZLZWHWR
      KZXMXOXHXLWIXPWTXHXNXIVIWTXLWIVJWTXLWIVKBFWHVLVMWQWLDWHWRWOWHUKWPWKACWOWH
      WJVNVOVPTVQVSVTWAWBWC $.
  $}

  ${
    $d u v x y F $.  $d f u v w x y z J $.  $d x y S $.  $d f u v w x z X $.
    $( The convergent points of a filter are a subset of the closure of any of
       the filter sets.  (Contributed by Mario Carneiro, 9-Apr-2015.)  (Revised
       by Stefan O'Rear, 9-Aug-2015.) $)
    flimclsi $p |- ( S e. F -> ( J fLim F ) C_ ( ( cls ` J ) ` S ) ) $=
      ( vx vy wcel cflim co ccl cfv cv wa cin wne csn cnei wral syl3anc adantl
      c0 cuni cfil eqid flimfil ad2antlr flimnei adantll filinn0 ralrimiva ctop
      simpll wss wb flimtop filelss ancoms sylan2 flimelbas neindisj2 mpbird ex
      ssrdv ) ABFZDCBGHZACIJJZVCDKZVDFZVFVEFZVCVGLZVHEKZAMTNZEVFOCPJJZQZVIVKEVL
      VIVJVLFZLBCUAZUBJFZVJBFZVCVKVGVPVCVNVFBCVOVOUCZUDZUEVGVNVQVCVFBCVJUFUGVCV
      GVNUKVJABVOUHRUIVICUJFZAVOULZVFVOFZVHVMUMVGVTVCVFBCUNSVGVCVPWAVSVPVCWAABV
      OUOUPUQVGWBVCVFBCVOVRURSVFAECVOVRUSRUTVAVB $.

    $( If ` A ` and ` B ` are both limits of the same filter, then all
       neighborhoods of ` A ` and ` B ` intersect.  (Contributed by Mario
       Carneiro, 21-Sep-2015.) $)
    hausflimlem $p |- ( ( ( A e. ( J fLim F ) /\ B e. ( J fLim F ) ) /\
     ( U e. J /\ V e. J ) /\ ( A e. U /\ B e. V ) ) -> ( U i^i V ) =/= (/) ) $=
      ( cflim co wcel w3a cuni cfil cfv syl csn opnneip syl3anc flimnei syl2anc
      wa cin c0 wne simp1l eqid flimfil cnei simp2l simp3l simp1r simp2r simp3r
      ctop flimtop filinn0 ) AEDGHZIZBUPIZTZCEIZFEIZTZACIZBFIZTZJZDEKZLMIZCDIZF
      DIZCFUAUBUCVFUQVHUQURVBVEUDZADEVGVGUEUFNVFUQCAOEUGMZMIZVIVKVFEUMIZUTVCVMV
      FUQVNVKADEUNNZUSUTVAVEUHUSVBVCVDUIAECPQADECRSVFURFBOVLMIZVJUQURVBVEUJVFVN
      VAVDVPVOUSUTVAVEUKUSVBVCVDULBEFPQBDEFRSCFDVGUOQ $.

    $( One direction of ~ hausflim .  A filter in a Hausdorff space has at most
       one limit.  (Contributed by FL, 14-Nov-2010.)  (Revised by Mario
       Carneiro, 21-Sep-2015.) $)
    hausflimi $p |- ( J e. Haus -> E* x x e. ( J fLim F ) ) $=
      ( vy vu vv cha wcel cv cflim co wa wceq wi wal wne c0 wrex flimelbas syl
      wmo cin w3a cuni simpl simprll eqid simprlr simprr syl13anc df-3an simprl
      hausnei hausflimlem 3expa sylanl1 a1d necon4d expimpd rexlimdvva mpd expr
      syl5bi necon1bd pm2.18d ex alrimivv eleq1 mo4 sylibr ) CGHZAIZCBJKZHZDIZV
      MHZLZVLVOMZNZDOAOVNAUAVKVSADVKVQVRVKVQLZVRVTVRVLVOVKVQVLVOPZVRVKVQWALZLZV
      LEIZHZVOFIZHZWDWFUBZQMZUCZFCRECRZVRWCVKVLCUDZHZVOWLHZWAWKVKWBUEWCVNWMVKVN
      VPWAUFVLBCWLWLUGZSTWCVPWNVKVNVPWAUHVOBCWLWOSTVKVQWAUIVLVOFECWLWOUMUJWCWJV
      REFCCWJWEWGLZWILWCWDCHWFCHLZLZVRWEWGWIUKWRWPWIVRWRWPLZVLVOWHQWSWHQPZWAWCV
      QWQWPWTVKVQWAULVQWQWPWTVLVOWDBCWFUNUOUPUQURUSVCUTVAVBVDVEVFVGVNVPADVLVOVM
      VHVIVJ $.

    flimcf.1 $e |- X = U. J $.
    $( A condition for a topology to be Hausdorff in terms of filters.  A
       topology is Hausdorff iff every filter has at most one limit point.
       (Contributed by Jeff Hankins, 5-Sep-2009.)  (Revised by Stefan O'Rear,
       6-Aug-2015.) $)
    hausflim $p |- ( J e. Haus <-> ( J e. Top /\
      A. f e. ( Fil ` X ) E* x x e. ( J fLim f ) ) ) $=
      ( vz vu vv wcel cv cfv wral wa wne c0 wn wb wss syl adantr cha ctop cflim
      vw co wmo cfil haustop hausflimi ralrimivw jca cin wceq csn cnei wrex cun
      cfi cfbas ctopon simpl toptopon sylib simprll snssd snnzg syl3anc filfbas
      neifil simprlr fbunfip syl2anc cpw w3a neisspw unssd a1d ssun1 filn0 ssn0
      wi sylancr idd 3jcad topopn fsubbas cfg fgcl adantl simplrr cvv fvex unex
      ssfii ax-mp ssfg syl5ss elflim mpbir2and unssbd eleq1 moi 3com23 syl22anc
      3expia necon3ad mpd oveq2 eleq2d mobidv notbid rspcev sylbird syld ralbii
      ex df-ne ralnex bitri rexnal 3imtr3g con4d an32s expr ralrimivva hausnei2
      imp mpbird impbii ) CUAIZCUBIZAJZCBJZUCUEZIZAUFZBDUGKZLZMZYJYKYRCUHYJYPBY
      QAYMCUIUJUKYSYJFJZUDJZNZGJHJULZOUMZHUUAUNZCUOKZKZUPZGYTUNZUUFKZUPZWAZUDDL
      FDLZYSUULFUDDDYSYTDIZUUADIZMZUUBUUKYKUUPUUBMZYRUUKYKUUQMZYRUUKUURUUKYRUUR
      UUCONZHUUGLZGUUJLZYPPZBYQUPZUUKPZYRPUURUVAOUUJUUGUQZURKZIPZUVCUURUUJDUSKZ
      IZUUGUVHIZUVGUVAQUURUUJYQIZUVIUURCDUTKIZUUIDRUUIONZUVKUURYKUVLYKUUQVACDEV
      BZVCZUURYTDYKUUNUUOUUBVDZVEUURUUNUVMUVPYTDVFSUUICDVIVGZUUJDVHSUURUUGYQIZU
      VJUURUVLUUEDRUUEONZUVRUVOUURUUADYKUUNUUOUUBVJZVEUURUUOUVSUVTUUADVFSUUECDV
      IVGUUGDVHSGHUUJUUGDDVKVLUURUVGUVEDVMZRZUVEONZUVGVNZUVCUURUVGUWBUWCUVGUURU
      WBUVGYKUWBUUQYKUUJUUGUWAUUICDEVOUUECDEVOVPTVQUURUWCUVGUURUUJUVERUUJONZUWC
      UUJUUGVRZUURUVKUWEUVQUUJDVSSUUJUVEVTWBVQUURUVGWCWDUURUWDUVFUVHIZUVCUURDCI
      ZUWGUWDQYKUWHUUQCDEWETUVECDWFSUURUWGUVCUURUWGMZDUVFWGUEZYQIZYLCUWJUCUEZIZ
      AUFZPZUVCUWGUWKUURUVFDWHWIZUWIUUBUWOYKUUPUUBUWGWJUWIUWNYTUUAUWIUUNUUOYTUW
      LIZUUAUWLIZUWNYTUUAUMZWAUURUUNUWGUVPTZUURUUOUWGUVTTZUWIUWQUUNUUJUWJRZUWTU
      WIUUJUVEUWJUWFUWIUVEUVFUWJUVEWKIUVEUVFRUUJUUGUUIUUFWLUUEUUFWLWMUVEWKWNWOU
      WGUVFUWJRUURUVFDWPWIWQZWQUWIUVLUWKUWQUUNUXBMQUURUVLUWGUVOTZUWPYTUWJCDWRVL
      WSUWIUWRUUOUUGUWJRZUXAUWIUUJUUGUWJUXCWTUWIUVLUWKUWRUUOUXEMQUXDUWPUUAUWJCD
      WRVLWSUUPUWQUWRMZUWNUWSUUPUWNUXFUWSUWMUWQUWRAYTUUADDYLYTUWLXAYLUUAUWLXAXB
      XCXEXDXFXGUVBUWOBUWJYQYMUWJUMZYPUWNUXGYOUWMAUXGYNUWLYLYMUWJCUCXHXIXJXKXLV
      LXPXMXNXMUVAUUHPZGUUJLUVDUUTUXHGUUJUUTUUDPZHUUGLUXHUUSUXIHUUGUUCOXQXOUUDH
      UUGXRXSXOUUHGUUJXRXSYPBYQXTYAYBYGYCYDYEYSUVLYJUUMQYSYKUVLYKYRVAUVNVCFUDHG
      CDYFSYHYI $.
  $}

  ${
    $d x y z F $.  $d f x y z J $.  $d f x y K $.  $d f x y z X $.
    $d x y z Y $.
    $( Fineness is properly characterized by the property that every limit
       point of a filter in the finer topology is a limit point in the coarser
       topology.  (Contributed by Jeff Hankins, 28-Sep-2009.)  (Revised by
       Mario Carneiro, 23-Aug-2015.) $)
    flimcf $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` X ) ) -> ( J C_ K <->
      A. f e. ( Fil ` X ) ( K fLim f ) C_ ( J fLim f ) ) ) $=
      ( vx vy cfv wcel wa cv cflim co wral simplll simprl simplr syl3anc sseldd
      wss syl ctopon cfil flimss1 simprr expr ralrimiva csn cnei c0 wne simpllr
      ssrdv toponss syl2anc snssd snnzg neifil wceq oveq2 sseq12d rspcv neiflim
      sylc flimneiss ctop topontop opnneip anassrs wb opnnei mpbird ex impbida
      3syl ) BDUAGZHZCVOHZIZBCSZCAJZKLZBVTKLZSZADUBGZMZVRVSIZWCAWDWFVTWDHZIEWAW
      BWFWGEJZWAHZWHWBHWFWGWIIZIZWAWBWHWKVPWGVSWCVPVQVSWJNWFWGWIOVRVSWJPVTBCDUC
      QWFWGWIUDRUEULUFVRWEIZEBCWLWHBHZWHCHZWLWMIZWNWHFJZUGZCUHGGZHZFWHMZWOWSFWH
      WLWMWPWHHZWSWLWMXAIZIZWQBUHGGZWRWHXCWPBWRKLZHXDWRSXCCWRKLZXEWPXCWRWDHZWEX
      FXESZXCVQWQDSWQUIUJZXGVPVQWEXBUKZXCWPDXCWHDWPXCVPWMWHDSVPVQWEXBNZWLWMXAOZ
      WHBDUMUNWLWMXAUDZRZUOXCWPDHZXIXNWPDUPTWQCDUQQVRWEXBPWCXHAWRWDVTWRURWAXFWB
      XEVTWRCKUSVTWRBKUSUTVAVCXCVQXOWPXFHXJXNWPCDVBUNRWPWRBVDTXCBVEHZWMXAWHXDHX
      CVPXPXKDBVFTXLXMWPBWHVGQRVHUFWOVQCVEHWNWTVIVPVQWEWMUKDCVFFWHCVJVNVKVLULVM
      $.

    $( The set of limit points in a restricted topological space.  (Contributed
       by Mario Carneiro, 15-Oct-2015.) $)
    flimrest $p |- ( ( J e. ( TopOn ` X ) /\ F e. ( Fil ` X ) /\ Y e. F ) ->
        ( ( J |`t Y ) fLim ( F |`t Y ) ) = ( ( J fLim F ) i^i Y ) ) $=
      ( vx vy vz ctopon cfv wcel cfil crest co cv wa wi wral wb wss syl2anc w3a
      cflim cin simp1 filelss 3adant1 resttopon wn cfbas filfbas 3ad2ant2 simp3
      cdif fbncp simp2 trfil3 mpbird flimopn simpll2 simpll3 3expia sseld inss1
      elrestr trfilss simpl1 toponss sylan filss 3exp2 com24 syld impbid imbi2d
      a1i syl3c ralbidva simpl2 sselda baibd syl21anc cvv vex inex1 wceq simpl3
      wrex elrest eleq2 elin adantl sylan9bbr imbi12d ralxfr2d 3bitr4d pm5.32da
      rbaib eleq1 bitr4d ancom bitr4i syl6bb eqrdv ) BCHIZJZACKIZJZDAJZUAZEBDLM
      ZADLMZUBMZBAUBMZDUCZXIENZXLJZXODJZXOXMJZOZXOXNJZXIXPXQXOFNZJZYAXKJZPZFXJQ
      ZOZXSXIXJDHIJZXKDKIJZXPYFRXIXEDCSZYGXEXGXHUDXGXHYIXEDACUEUFZDBCUGTXIYHCDU
      MAJUHZXIACUIIJZXHYKXGXEYLXHACUJUKXEXGXHULDCACUNTXIXGYIYHYKRXEXGXHUOYJDACU
      PTUQFXOXKXJDURTXIXQXRYEXIXQOZXOGNZJZYNAJZPZGBQZYOYNDUCZXKJZPZGBQXRYEYMYQU
      UAGBYMYNBJZOZYPYTYOUUCYPYTUUCXGXHYPYTPXEXGXHXQUUBUSZXEXGXHXQUUBUTZXGXHYPY
      TYNDAXFAVDVATUUCYTYSAJZYPUUCXKAYSUUCXGXHXKASUUDUUEDACVETVBUUCXGYSYNSZYNCS
      ZUUFYPPUUDUUGUUCYNDVCVOYMXEUUBUUHXEXGXHXQVFZYNBCVGVHXGUUFUUHUUGYPXGUUFUUH
      UUGYPYSYNACVIVJVKVPVLVMVNVQYMXEXGXOCJZXRYRRUUIXEXGXHXQVRXIDCXOYJVSXEXGOXR
      UUJYRGXOABCURVTWAYMYDUUAFGYSXJBWBYSWBJUUCYNDGWCWDVOYMXEXHYAXJJYAYSWEZGBWG
      RUUIXEXGXHXQWFGYADBXDAWHTYMUUKOYBYOYCYTUUKYBXOYSJZYMYOYAYSXOWIXQUULYORXIU
      ULYOXQXOYNDWJWQWKWLUUKYCYTRYMYAYSXKWRWKWMWNWOWPWSXSXRXQOXTXQXRWTXOXMDWJXA
      XBXC $.
  $}

  ${
    $d x y A $.  $d x y J $.  $d x y S $.  $d x y X $.
    flimcls.2 $e |- F = ( X filGen ( fi `
      ( ( ( nei ` J ) ` { A } ) u. { S } ) ) ) $.
    $( Lemma for ~ flimcls .  (Contributed by Mario Carneiro, 9-Apr-2015.)
       (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    flimclslem $p |- ( ( J e. ( TopOn ` X ) /\ S C_ X /\
      A e. ( ( cls ` J ) ` S ) ) ->
        ( F e. ( Fil ` X ) /\ S e. F /\ A e. ( J fLim F ) ) ) $=
      ( vx vy cfv wcel wss w3a c0 wne 3ad2ant1 syl wb cvv wa syl2anc ctopon ccl
      cfil cflim csn cnei cun cfi cfg cfbas cpw cuni ctop topontop eqid neisspw
      co wn toponuni pweqd sseqtr4d toponmax elpw2g biimpar 3adant3 snssd unssd
      wceq ssun2 simp2 ssexd snnzg ssn0 sylancr cv cin wral wi sseqtrd neindisj
      simp3 expr syl21anc imp elsni ineq2d neeq1d syl5ibrcom ralrimiv ralrimiva
      clsss3 sseldd eleqtrrd 3ad2ant3 neifil syl3anc filfbas ne0i cls0 neeqtrrd
      simp1 fveq2 necon3i snfbas fbunfip mpbird fsubbas mpbir3and fgcl syl5eqel
      fvex snex unex ssfii ax-mp syl6sseqr syl5ss snssg mpbiri unssad mpbir2and
      ssfg elflim 3jca ) DEUAIJZBEKZABDUBIZIZJZLZCEUCIZJZBCJADCUDUQJZYJCEAUEZDU
      FIZIZBUEZUGZUHIZUIUQZYKFYJYSEUJIZJZYTYKJYJUUBYREUKZKZYRMNZMYSJURZYJYPYQUU
      CYJYPDULZUKZUUCYJDUMJZYPUUHKYEYFUUIYIEDUNOZYNDUUGUUGUOZUPPYJEUUGYEYFEUUGV
      HYIEDUSOZUTVAYJBUUCYEYFBUUCJZYIYEUUMYFYEEDJZUUMYFQEDVBZBEDVCPVDVEVFVGYJYQ
      YRKZYQMNZUUEYQYPVIZYJBRJZUUQYJBEDYEYFUUNYIUUOOZYEYFYIVJZVKZBRVLPYQYRVMVNY
      JUUFGVOZHVOZVPZMNZHYQVQZGYPVQZYJUVGGYPYJUVCYPJZSZUVFHYQUVJUVFUVDYQJZUVCBV
      PZMNZYJUVIUVMYJUUIBUUGKZYIUVIUVMVRUUJYJBEUUGUVAUULVSZYEYFYIWAZUUIUVNSYIUV
      IUVMABDUVCUUGUUKVTWBWCWDUVKUVEUVLMUVKUVDBUVCUVDBWEWFWGWHWIWJYJYPUUAJZYQUU
      AJZUUFUVHQYJYPYKJZUVQYJYEYNEKYNMNZUVSYEYFYIXAZYJAEYJAUUGEYJYHUUGAYJUUIUVN
      YHUUGKUUJUVOBDUUGUUKWKTUVPWLUULWMZVFYIYEUVTYFAYHVLWNYNDEWOWPYPEWQPYJYFBMN
      ZUUNUVRUVAYJYHMYGIZNUWCYJYHMUWDYIYEYHMNYFYHAWRWNYJUUIUWDMVHUUJDWSPWTBMYHU
      WDBMYGXBXCPUUTBEDXDWPGHYPYQEEXETXFYJUUNUUBUUDUUEUUFLQUUTYRDEXGPXHZYSEXIPX
      JZYJYRCBYJYRYSCYRRJYRYSKYPYQYNYOXKBXLXMYRRXNXOYJYSYTCYJUUBYSYTKUWEYSEYBPF
      XPXQZYJBYRJZUUPUURYJUUSUWHUUPQUVBBYRRXRPXSWLYJYMAEJZYPCKZUWBYJYPYQCUWGXTY
      JYEYLYMUWIUWJSQUWAUWFACDEYCTYAYD $.
  $}

  ${
    $d f A $.  $d f J $.  $d f S $.  $d f X $.
    $( Closure in terms of filter convergence.  (Contributed by Jeff Hankins,
       28-Nov-2009.)  (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    flimcls $p |- ( ( J e. ( TopOn ` X ) /\ S C_ X ) ->
      ( A e. ( ( cls ` J ) ` S ) <->
        E. f e. ( Fil ` X ) ( S e. f /\ A e. ( J fLim f ) ) ) ) $=
      ( ctopon cfv wcel wss wa ccl cv cflim co cfil wrex w3a csn cnei cun sylib
      cfi cfg eqid flimclslem 3anass wceq eleq2 oveq2 eleq2d anbi12d rspcev syl
      3expia flimclsi sselda rexlimivw impbid1 ) DEFGHZBEIZJABDKGGZHZBCLZHZADVC
      MNZHZJZCEOGZPZUSUTVBVIUSUTVBQZEARDSGGBRTUBGUCNZVHHZBVKHZADVKMNZHZJZJZVIVJ
      VLVMVOQVQABVKDEVKUDUEVLVMVOUFUAVGVPCVKVHVCVKUGZVDVMVFVOVCVKBUHVRVEVNAVCVK
      DMUIUJUKULUMUNVGVBCVHVDVEVAABVCDUOUPUQUR $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y J $.
    $( If ` A ` is a limit point of the filter ` F ` , then all the points
       which specialize ` A ` (in the specialization preorder) are also limit
       points.  Thus, the set of limit points is a union of closed sets
       (although this is only nontrivial for non-T1 spaces).  (Contributed by
       Mario Carneiro, 20-Sep-2015.) $)
    flimsncls $p |- ( A e. ( J fLim F ) ->
      ( ( cls ` J ) ` { A } ) C_ ( J fLim F ) ) $=
      ( vx vy cflim co wcel csn ccl cfv cv wa cuni wi wral wss syl2anc adantr
      c0 ctop flimtop eqid flimelbas snssd clsss3 sselda cnei simpll syl simprl
      w3a simpr cin wne clsndisj disjsn necon2abii sylibr sylan opnneip syl3anc
      3jca flimnei expr ralrimiva ctopon cfil wb toptopon sylib flimfil flimopn
      mpbir2and ex ssrdv ) ACBFGZHZDAIZCJKKZVQVRDLZVTHZWAVQHZVRWBMZWCWACNZHZWAE
      LZHZWGBHZOZECPZVRVTWEWAVRCUAHZVSWEQZVTWEQABCUBZVRAWEABCWEWEUCZUDUEZVSCWEW
      OUFRUGWDWJECWDWGCHZWHWIWDWQWHMZMZVRWGVSCUHKKHZWIVRWBWRUIZWSWLWQAWGHZWTWSV
      RWLXAWNUJWDWQWHUKWDWLWMWBULZWRXBWDWLWMWBVRWLWBWNSZVRWMWBWPSVRWBUMVCXCWRMW
      GVSUNZTUOXBWAVSWGCWEWOUPXBXETWGAUQURUSUTACWGVAVBABCWGVDRVEVFWDCWEVGKHZBWE
      VHKHZWCWFWKMVIWDWLXFXDCWEWOVJVKVRXGWBABCWEWOVLSEWABCWEVMRVNVOVP $.
  $}

  ${
    $d a j k l x y A $.  $d a j k l x y J $.  $d j k l x y z A $.
    $d j k l x y z X $.  $d z J $.
    hauspwpwf1.x $e |- X = U. J $.
    ${
      hauspwpwf1.f $e |- F = ( x e. ( ( cls ` J ) ` A ) |->
            { a | E. j e. J ( x e. j /\ a = ( j i^i A ) ) } ) $.
      $( Lemma for ~ hauspwpwdom .  Points in the closure of a set in a
         Hausdorff space are characterized by the open neighborhoods they
         extend into the generating set.  (Contributed by Mario Carneiro,
         28-Jul-2015.) $)
      hauspwpwf1 $p |- ( ( J e. Haus /\ A C_ X ) ->
          F : ( ( cls ` J ) ` A ) -1-1-> ~P ~P A ) $=
        ( vy vk vl vz wcel wa wel cv cin wceq wrex cha wss ccl cfv cpw cab cmpt
        wf1 inss2 vex inex1 elpw mpbir eleq1 mpbiri adantl rexlimivw abssi ctop
        cvv wb haustop topopn syl ssexg sylan2 ancoms pwexg elpw2g 3syl a1d weq
        wne c0 w3a simplll clsss3 sylan ad2antrr simplrl sseldd simplrr hausnei
        simpr syl13anc simprll simprr1 eqidd elequ2 ineq1 eqeq2d anbi12d rspcev
        wn syl12anc eqeq1 anbi2d rexbidv elab sylibr wi ad3antrrr simplr simprr
        ad2antlr simprl inopn syl3anc simpr2 elind clsndisj syl32anc sylib elin
        n0 anbi1i bitri biimpri adantll ad2antll simpll simpr3 minel inss1 nsyl
        wex sseli syl2anc nelneq2 sylnib expr syl5bi exlimdv mpd anassrs nrexdv
        eqcom nan sylnibr ex nelne1 necon4d anbi1d abbidv impbid1 dom2lem f1eq1
        rexlimdvva ax-mp ) EUANZBFUBZOZBEUCUDUDZBUEZUEZAUUMACPZGQZCQZBRZSZOZCET
        ZGUFZUGZUHZUUMUUODUHZUULAJUUMUUOUVCJCPZUUTOZCETZGUFZUULUVCUUONZAQZUUMNZ
        UULUVKUVCUUNUBZUVBGUUNUVAUUQUUNNZCEUUTUVOUUPUUTUVOUUSUUNNZUVPUUSBUBUURB
        UIUUSBUURBCUJUKULUMUUQUUSUUNUNUOUPUQURUULBUTNZUUNUTNUVKUVNVAUUKUUJUVQUU
        JUUKFENZUVQUUJEUSNZUVREVBZEFHVCVDBFEVEVFVGBUTVHUVCUUNUTVIVJUOVKUULUVMJQ
        ZUUMNZOZUVCUVJSZAJVLZVAUULUWCOZUWDUWEUWFUVLUWAUVCUVJUWFUVLUWAVMZUVCUVJV
        MZUWFUWGOZAKPZJLPZKQZLQZRVNSZVOZLETKETZUWHUWIUUJUVLFNUWAFNUWGUWPUUJUUKU
        WCUWGVPUWIUUMFUVLUULUUMFUBZUWCUWGUUJUVSUUKUWQUVTBEFHVQVRVSZUULUVMUWBUWG
        VTWAUWIUUMFUWAUWRUULUVMUWBUWGWBWAUWFUWGWDUVLUWALKEFHWCWEUWIUWOUWHKLEEUW
        IUWLENZUWMENZOZUWOUWHUWIUXAUWOOZOZUWLBRZUVCNZUXDUVJNZWNUWHUXCUUPUXDUUSS
        ZOZCETZUXEUXCUWSUWJUXDUXDSZUXIUWIUWSUWTUWOWFUWJUWKUWNUXAUWIWGUXCUXDWHUX
        HUWJUXJOCUWLECKVLZUUPUWJUXGUXJCKAWIUXKUUSUXDUXDUURUWLBWJWKWLWMWOUVBUXIG
        UXDUWLBKUJUKZUUQUXDSZUVAUXHCEUXMUUTUXGUUPUUQUXDUUSWPZWQWRWSWTUXCUVGUXGO
        ZCETZUXFUXCUXOCEUXCUURENZOZUXOWNXAUXRUVGOUXGWNZXAUXCUXQUVGUXSUXCUXQUVGO
        ZOZMQZUWMUURRZBRZNZMYFZUXSUYAUYDVNVMZUYFUYAUVSUUKUWBUYCENZUWAUYCNUYGUWF
        UVSUWGUXBUXTUUJUVSUUKUWCUVTVSXBZUWFUUKUWGUXBUXTUUJUUKUWCXCXBUWFUWBUWGUX
        BUXTUULUVMUWBXDXBUYAUVSUWTUXQUYHUYIUXBUWTUWIUXTUWSUWTUWOXCXEUXCUXQUVGXF
        UWMUUREXGXHUYAUWMUURUWAUXBUWKUWIUXTUXAUWJUWKUWNXIXEUXCUXQUVGXDXJUWABUYC
        EFHXKXLMUYDXOXMUYAUYEUXSMUYEMLPZMCPZOZUYBBNZOZUYAUXSUYEUYBUYCNZUYMOUYNU
        YBUYCBXNUYOUYLUYMUYBUWMUURXNXPXQUXCUXTUYNUXSUXCUXTUYNOZOZUUSUXDSZUXGUYQ
        UYBUUSNZUYBUXDNZWNZUYRWNUYNUYSUXCUXTUYKUYMUYSUYJUYSUYKUYMOUYBUURBXNXRXS
        XTUYQUYJUWNVUAUYNUYJUXCUXTUYJUYKUYMYAXTUXBUWNUWIUYPUXAUWJUWKUWNYBXEUYJU
        WNOMKPUYTUYBUWMUWLYCUXDUWLUYBUWLBYDYGYEYHUYBUUSUXDYIYHUUSUXDYQYJYKYLYMY
        NYOUXRUVGUXGYRUMYPUVIUXPGUXDUXLUXMUVHUXOCEUXMUUTUXGUVGUXNWQWRWSYSUXDUVC
        UVJUUAYHYKUUHYNYTUUBUWEUVBUVIGUWEUVAUVHCEUWEUUPUVGUUTUVLUWAUURUNUUCWRUU
        DUUEYTUUFDUVDSUVFUVEVAIUUMUUODUVDUUGUUIWT $.
    $}

    $( If ` X ` is a Hausdorff space, then the cardinality of the closure of a
       set ` A ` is bounded by the double powerset of ` A ` .  In particular, a
       Hausdorff space with a dense subset ` A ` has cardinality at most
       ` ~P ~P A ` , and a separable Hausdorff space has cardinality at most
       ` ~P ~P NN ` .  (Contributed by Mario Carneiro, 9-Apr-2015.)  (Revised
       by Mario Carneiro, 28-Jul-2015.) $)
    hauspwpwdom $p |- ( ( J e. Haus /\ A C_ X ) ->
        ( ( cls ` J ) ` A ) ~<_ ~P ~P A ) $=
      ( vx vy vz cha wcel wss wa ccl cfv cvv cpw cv cin wceq wrex pwexg cab wf1
      cmpt cdom wbr fvexd ctop haustop topopn syl adantr simpr ssexd hauspwpwf1
      3syl eqid f1dom2g syl3anc ) BHIZACJZKZABLMZMZNIAOZOZNIZVCVEEVCEPFPZIGPVGA
      QRKFBSGUAUCZUBVCVEUDUEVAAVBUFVAANIVDNIVFVAACBUSCBIZUTUSBUGIVIBUHBCDUIUJUK
      USUTULUMANTVDNTUOEAFVHBCGDVHUPUNVCVEVHNNUQUR $.
  $}

  ${
    $d f x y J $.  $d f F $.  $d f x y X $.  $d f x y Y $.  $d f x y L $.
    $( Given a topology and a filtered set, return the convergence function on
       the functions from the filtered set to the base set of the topological
       space.  (Contributed by Jeff Hankins, 14-Oct-2009.)  (Revised by Mario
       Carneiro, 15-Dec-2013.)  (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    flffval $p |- ( ( J e. ( TopOn ` X ) /\ L e. ( Fil ` Y ) ) -> ( J fLimf L )
        = ( f e. ( X ^m Y ) |-> ( J fLim ( ( X FilMap f ) ` L ) ) ) ) $=
      ( vx vy cfv wcel cfil wa cflf co cuni cmap cv cfm cflim cmpt wceq fveq12d
      ctopon ctop crn fvssunirn sseli unieq oveqan12d simpl adantr oveq1d simpr
      topontop oveq12d mpteq12dv df-flf mptex ovmpt2a syl2an toponuni filunibas
      ovex eqcomd fveq1d oveq2d eqtrd ) BDUBHIZCEJHZIZKZBCLMZABNZCNZOMZBCVLAPZQ
      MZHZRMZSZADEOMZBCDVOQMZHZRMZSVGBUCICJUDNZIVKVSTVIDBUMVHWDCJEUEUFFGBCUCWDA
      FPZNZGPZNZOMZWEWGWFVOQMZHZRMZSVSLWEBTZWGCTZKZAWIWLVNVRWMWNWFVLWHVMOWEBUGZ
      WGCUGUHWOWEBWKVQRWMWNUIWOWGCWJVPWOWFVLVOQWMWFVLTWNWPUJUKWMWNULUAUNUOFGAUP
      AVNVRVLVMOVBUQURUSVJAVNVRVTWCVGVIVLDVMEOVGDVLDBUTVCZCEVAUHVJVQWBBRVJCVPWA
      VJVLDVOQVGVLDTVIWQUJUKVDVEUOVF $.

    $( Given a function from a filtered set to a topological space, define the
       set of limit points of the function.  (Contributed by Jeff Hankins,
       8-Nov-2009.)  (Revised by Stefan O'Rear, 6-Aug-2015.) $)
    flfval $p |- ( ( J e. ( TopOn ` X ) /\ L e. ( Fil ` Y ) /\ F : Y --> X ) ->
        ( ( J fLimf L ) ` F ) = ( J fLim ( ( X FilMap F ) ` L ) ) ) $=
      ( vf ctopon cfv wcel cfil wf cflf co cfm cflim wceq wa cmap wb fveq1d cv
      toponmax filtop elmapg syl2an biimpar cmpt flffval oveq2 oveq2d eqid ovex
      fvmpt sylan9eq syldan 3impa ) BDGHIZCEJHIZEDAKZABCLMZHZBCDANMZHZOMZPZUQUR
      QZUSADERMZIZVEVFVHUSUQDBIECIVHUSSURDBUBCEUCDEABCUDUEUFVFVHVAAFVGBCDFUAZNM
      ZHZOMZUGZHVDVFAUTVMFBCDEUHTFAVLVDVGVMVIAPZVKVCBOVNCVJVBVIADNUITUJVMUKBVCO
      ULUMUNUOUP $.
  $}

  ${
    $d n s F $.  $d n A $.  $d n s J $.  $d n s L $.  $d n s X $.  $d n s Y $.
    $( The property of being a limit point of a function in terms of
       neighborhoods.  (Contributed by Jeff Hankins, 9-Nov-2009.)  (Revised by
       Stefan O'Rear, 6-Aug-2015.) $)
    flfnei $p |- ( ( J e. ( TopOn ` X ) /\ L e. ( Fil ` Y ) /\ F : Y --> X ) ->
        ( A e. ( ( J fLimf L ) ` F ) <-> ( A e. X /\
            A. n e. ( ( nei ` J ) ` { A } ) E. s e. L ( F " s ) C_ n ) ) ) $=
      ( ctopon cfv wcel cfil co wss wa cv wral wb 3ad2ant1 syl3anc w3a cflf cfm
      wf cflim csn cnei cima wrex flfval eleq2d simp1 toponmax filfbas 3ad2ant2
      cfbas simp3 fmfil elflim syl2anc dfss3 cuni ctop topontop eqid neii1 wceq
      sylan toponuni adantr sseqtr4d baibd syldan ralbidva syl5bb anbi2d 3bitrd
      elfm ) DFIJKZEGLJKZGFCUDZUAZACDEUBMJZKADEFCUCMJZUEMZKZAFKZAUFZDUGJJZWDNZO
      ZWGCHPUHBPZNHEUIZBWIQZOWBWCWEACDEFGUJUKWBVSWDFLJKZWFWKRVSVTWAULWBFDKZEGUP
      JKZWAWOVSVTWPWAFDUMSZVTVSWQWAEGUNUOZVSVTWAUQZDECFGURTAWDDFUSUTWBWJWNWGWJW
      LWDKZBWIQWBWNBWIWDVAWBXAWMBWIWBWLWIKZWLFNZXAWMRWBXBOWLDVBZFWBDVCKZXBWLXDN
      VSVTXEWAFDVDSWHDWLXDXDVEVFVHWBFXDVGZXBVSVTXFWAFDVISVJVKWBXAXCWMWBWPWQWAXA
      XCWMORWRWSWTHWLEDCFGVRTVLVMVNVOVPVQ $.
  $}

  ${
    $d n s F $.  $d n A $.  $d n s J $.  $d n s L $.  $d n s N $.  $d n s X $.
    $d n s Y $.
    flfneii.x $e |- X = U. J $.
    $( A neighborhood of a limit point of a function contains the image of a
       filter element.  (Contributed by Jeff Hankins, 11-Nov-2009.)  (Revised
       by Stefan O'Rear, 6-Aug-2015.) $)
    flfneii $p |- ( ( ( J e. Top /\ L e. ( Fil ` Y ) /\ F : Y --> X ) /\
          A e. ( ( J fLimf L ) ` F ) /\ N e. ( ( nei ` J ) ` { A } ) ) ->
        E. s e. L ( F " s ) C_ N ) $=
      ( vn ctop wcel cfil cfv wf w3a cflf cv wss wrex csn cnei cima wral ctopon
      co wa wb toptopon flfnei syl3an1b simplbda 3adant3 wi sseq2 rexbidv rspcv
      wceq 3ad2ant3 mpd ) CKLZDGMNLZGFBOZPZABCDQUFNLZEAUACUBNNZLZPBHRUCZJRZSZHD
      TZJVFUDZVHESZHDTZVDVEVLVGVDVEAFLZVLVACFUENLVBVCVEVOVLUGUHCFIUIAJBCDFGHUJU
      KULUMVGVDVLVNUNVEVKVNJEVFVIEURVJVMHDVIEVHUOUPUQUSUT $.
  $}

  ${
    $d o A $.  $d o s F $.  $d o s J $.  $d o s L $.  $d o s X $.  $d o s Y $.
    $( The property of being a limit point of a function.  (Contributed by Jeff
       Hankins, 8-Nov-2009.)  (Revised by Stefan O'Rear, 7-Aug-2015.) $)
    isflf $p |- ( ( J e. ( TopOn ` X ) /\ L e. ( Fil ` Y ) /\ F : Y --> X ) ->
        ( A e. ( ( J fLimf L ) ` F ) <-> ( A e. X /\
            A. o e. J ( A e. o -> E. s e. L ( F " s ) C_ o ) ) ) ) $=
      ( ctopon cfv wcel cfil co cv wi wral wa wss wb syl3anc w3a cflf cfm cflim
      wf cima wrex flfval eleq2d simp1 cfbas toponmax 3ad2ant1 filfbas 3ad2ant2
      simp3 fmfil flimopn syl2anc elfm adantr toponss biantrurd bitr4d ralbidva
      sylan imbi2d anbi2d 3bitrd ) DFIJKZEGLJKZGFCUEZUAZACDEUBMJZKADEFCUCMJZUDM
      ZKZAFKZABNZKZVSVOKZOZBDPZQZVRVTCHNUFVSRHEUGZOZBDPZQVMVNVPACDEFGUHUIVMVJVO
      FLJKZVQWDSVJVKVLUJZVMFDKZEGUKJKZVLWHVJVKWJVLFDULUMZVKVJWKVLEGUNUOZVJVKVLU
      PZDECFGUQTBAVODFURUSVMWCWGVRVMWBWFBDVMVSDKZQZWAWEVTWPWAVSFRZWEQZWEVMWAWRS
      ZWOVMWJWKVLWSWLWMWNHVSEDCFGUTTVAWPWQWEVMVJWOWQWIVSDFVBVFVCVDVGVEVHVI $.

    $( A limit point of a function is in the topological space.  (Contributed
       by Jeff Hankins, 10-Nov-2009.)  (Revised by Stefan O'Rear,
       7-Aug-2015.) $)
    flfelbas $p |- ( ( ( J e. ( TopOn ` X ) /\ L e. ( Fil ` Y ) /\
       F : Y --> X ) /\ A e. ( ( J fLimf L ) ` F ) ) -> A e. X ) $=
      ( vo vs ctopon cfv wcel cfil wf w3a cflf co cv cima wss wrex wi simprbda
      wral isflf ) CEIJKDFLJKFEBMNABCDOPJKAEKAGQZKBHQRUESHDTUAGCUCAGBCDEFHUDUB
      $.
  $}

  ${
    $d o s t A $.  $d o s t B $.  $d o s t F $.  $d o s t J $.  $d o s t L $.
    $d o s t X $.  $d o s t Y $.
    flffbas.l $e |- L = ( Y filGen B ) $.
    $( Limit points of a function can be defined using filter bases.
       (Contributed by Jeff Hankins, 9-Nov-2009.)  (Revised by Mario Carneiro,
       26-Aug-2015.) $)
    flffbas $p |- ( ( J e. ( TopOn ` X ) /\ B e. ( fBas ` Y ) /\ F : Y --> X )
      -> ( A e. ( ( J fLimf L ) ` F ) <-> ( A e. X /\
            A. o e. J ( A e. o -> E. s e. B ( F " s ) C_ o ) ) ) ) $=
      ( vt cfv wcel co cv cima wss wrex wi wa ctopon cfbas wf cflf wral cfil wb
      w3a cfg fgcl syl5eqel isflf syl3an2 eleq2i elfg sstr2 imass2 syl11 adantl
      3ad2ant2 reximdv ex com23 adantld sylbid adantr syl5bi rexlimdv syl6sseqr
      ssfg sselda 3ad2antl2 ad2ant2r simprr weq imaeq2 sseq1d rspcev rexlimdvaa
      syl2anc impbid imbi2d ralbidv pm5.32da bitrd ) EGUALMZBHUBLMZHGDUCZUHZADE
      FUDNLMZAGMZACOZMZDKOZPZWLQZKFRZSZCEUEZTZWKWMDIOZPZWLQZIBRZSZCEUEZTWGWFFHU
      FLZMWHWJWTUGWGFHBUINZXGJBHUJUKACDEFGHKULUMWIWKWSXFWIWKTZWRXECEXIWQXDWMXIW
      QXDXIWPXDKFWNFMWNXHMZXIWPXDSZFXHWNJUNWIXJXKSWKWIXJWNHQZXAWNQZIBRZTZXKWGWF
      XJXOUGWHIWNBHUOUTWIXNXKXLWIWPXNXDWIWPXNXDSWIWPTXMXCIBWPXMXCSWIXBWOQWPXCXM
      XBWOWLUPXAWNDUQURUSVAVBVCVDVEVFVGVHXIXCWQIBXIXABMZXCTTXAFMZXCWQWIXPXQWKXC
      WGWFXPXQWHWGBFXAWGBXHFBHVJJVIVKVLVMXIXPXCVNWPXCKXAFKIVOWOXBWLWNXADVPVQVRV
      TVSWAWBWCWDWE $.
  $}

  ${
    $d o s u A $.  $d o u B $.  $d o s u F $.  $d s u J $.  $d o s u L $.
    $d s u X $.  $d s u Y $.
    flftg.l $e |- J = ( topGen ` B ) $.
    $( Limit points of a function can be defined using topological bases.
       (Contributed by Mario Carneiro, 19-Sep-2015.) $)
    flftg $p |- ( ( J e. ( TopOn ` X ) /\ L e. ( Fil ` Y ) /\ F : Y --> X )
      -> ( A e. ( ( J fLimf L ) ` F ) <-> ( A e. X /\
            A. o e. B ( A e. o -> E. s e. L ( F " s ) C_ o ) ) ) ) $=
      ( vu cfv wcel cv wss wrex wi wral wa ctop ctopon cfil wf w3a cflf co cima
      isflf ctg raleqi ctb simpl1 topontop syl syl5eqelr tgclb sylibr bastg weq
      eleq2 sseq2 rexbidv imbi12d cbvralv ssralv syl5bi 3syl r19.29 simpl simpr
      tg2 sstr2 syl5com reximdv embantd impcom rexlimivw syl5 expdimp ralrimiva
      ex impbid1 syl5bb pm5.32da bitrd ) EGUALMZFHUBLMZHGDUCZUDZADEFUEUFLMAGMZA
      KNZMZDINUGZWKOZIFPZQZKERZSWJACNZMZWMWROZIFPZQZCBRZSAKDEFGHIUHWIWJWQXCWQWP
      KBUILZRZWIWJSZXCWPKEXDJUJXFXEXCXFBUKMZBXDOZXEXCQXFXDTMXGXFXDETJXFWFETMWFW
      GWHWJULGEUMUNUOBUPUQBUKURXEXBCXDRXHXCWPXBKCXDKCUSZWLWSWOXAWKWRAUTXIWNWTIF
      WKWRWMVAVBVCVDXBCBXDVEVFVGXCWPKXDXCWKXDMZWLWOXJWLSWSWRWKOZSZCBPZXCWOCWKBA
      VKXCXMWOXCXMSXBXLSZCBPWOXBXLCBVHXNWOCBXLXBWOXLWSXAWOWSXKVIXLWTWNIFXLXKWTW
      NWSXKVJWMWRWKVLVMVNVOVPVQUNWAVRVSVTWBWCWDWE $.
  $}

  ${
    $d x F $.  $d x J $.  $d x L $.  $d x X $.  $d x Y $.
    hausflf.x $e |- X = U. J $.
    $( If a function has its values in a Hausdorff space, then it has at most
       one limit value.  (Contributed by FL, 14-Nov-2010.)  (Revised by Stefan
       O'Rear, 6-Aug-2015.) $)
    hausflf $p |- ( ( J e. Haus /\ L e. ( Fil ` Y ) /\ F : Y --> X ) ->
        E* x x e. ( ( J fLimf L ) ` F ) ) $=
      ( cha wcel cfil cfv wf w3a cv cflf co wmo cfm cflim hausflimi ctopon wceq
      3ad2ant1 ctop haustop toptopon sylib flfval syl3an1 eleq2d mobidv mpbird
      ) CHIZDFJKIZFEBLZMZANZBCDOPKZIZAQUQCDEBRPKZSPZIZAQZUMUNVCUOAUTCTUCUPUSVBA
      UPURVAUQUMCEUAKIZUNUOURVAUBUMCUDIVDCUECEGUFUGBCDEFUHUIUJUKUL $.

    $( If a convergent function has its values in a Hausdorff space, then it
       has a unique limit.  (Contributed by FL, 14-Nov-2010.)  (Revised by
       Stefan O'Rear, 6-Aug-2015.) $)
    hausflf2 $p |- ( ( ( J e. Haus /\ L e. ( Fil ` Y ) /\ F : Y --> X ) /\
        ( ( J fLimf L ) ` F ) =/= (/) ) -> ( ( J fLimf L ) ` F ) ~~ 1o ) $=
      ( vx cflf co cfv c0 wne cv wcel wex wmo c1o cen wbr biimpi cha cfil wf n0
      w3a hausflf wa weu euen1b eu5 bitr2i syl2anr ) ABCHIJZKLZGMUMNZGOZUOGPZUM
      QRSZBUANCEUBJNEDAUCUEUNUPGUMUDTGABCDEFUFUPUQUGZURURUOGUHUSGUMUIUOGUJUKTUL
      $.
  $}

  ${
    $d f u v x y z A $.  $d u x y z L $.  $d f u v x z X $.  $d f u v x z Y $.
    $d f u v x y z F $.  $d f u v x y z J $.  $d f u v x y z K $.
    $( Forward direction of ~ cnpflf .  (Contributed by Mario Carneiro,
       9-Apr-2015.)  (Revised by Stefan O'Rear, 9-Aug-2015.) $)
    cnpflfi $p |- ( ( A e. ( J fLim L ) /\ F e. ( ( J CnP K ) ` A ) ) ->
      ( F ` A ) e. ( ( K fLimf L ) ` F ) ) $=
      ( vx vy co wcel cfv wa cuni cv wrex wi wral eqid adantl adantr syl3anc wf
      cflim ccnp cflf cima wss flimelbas ffvelrnd simplr simprl simprr cnpimaex
      cnpf anass simpl ctopon wb flimtop toptopon sylib flimfil flimopn syl2anc
      cfil ctop mpbid simprd r19.21bi expimpd anim1d syl5bir reximdv2 ralrimiva
      mpd expr cnptop2 isflf mpbir2and ) ACEUBHIZBACDUCHJIZKZABJZBDEUDHJIZWBDLZ
      IZWBFMZIZBGMZUEWFUFZGENZOZFDPZWACLZWDABVTWMWDBUAZVSABCDWMWDWMQZWDQZUMRZVS
      AWMIZVTAECWMWOUGSUHWAWKFDWAWFDIZWGWJWAWSWGKZKZAWHIZWIKZGCNZWJXAVTWSWGXDVS
      VTWTUIWAWSWGUJWAWSWGUKGWFABCDULTXAXCWIGCEWHCIZXCKXEXBKZWIKXAWHEIZWIKXEXBW
      IUNXAXFXGWIXAXEXBXGXAXBXGOZGCWAXHGCPZWTWAWRXIWAVSWRXIKZVSVTUOWACWMUPJIZEW
      MVDJIZVSXJUQWACVEIZXKVSXMVTAECURSCWMWOUSUTVSXLVTAECWMWOVASZGAECWMVBVCVFVG
      SVHVIVJVKVLVNVOVMWADWDUPJIZXLWNWCWEWLKUQWADVEIZXOVTXPVSABCDVPRDWDWPUSUTXN
      WQWBFBDEWDWMGVQTVR $.

    ${
      cnpflf2.3 $e |- L = ( ( nei ` J ) ` { A } ) $.
      $( ` F ` is continuous at point ` A ` iff a limit of ` F ` when ` x `
         tends to ` A ` is ` ( F `` A ) ` .  Proposition 9 of [BourbakiTop1]
         p.  TG I.50.  (Contributed by FL, 29-May-2011.)  (Revised by Mario
         Carneiro, 9-Apr-2015.) $)
      cnpflf2 $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) /\ A e. X ) ->
        ( F e. ( ( J CnP K ) ` A ) <-> ( F : X --> Y /\
          ( F ` A ) e. ( ( K fLimf L ) ` F ) ) ) ) $=
        ( vu vz vv cfv wcel co wa cflim syl2anc cv wss wrex ctopon ccnp wf cflf
        w3a cnpf2 3expa 3adantl3 simpl1 simpl3 csn cnei neiflim syl6eleqr simpr
        oveq2i cnpflfi jca cima wi wral cuni ctop wb topontop syl wceq toponuni
        eleq2i eqid isneip syl5bb sstr2 imass2 syl11 anim2d com12 adantl syl6bi
        eleqtrd reximdv rexlimdv imim2d ralimdv jctild adantld simpl2 wne snssd
        cfil c0 snnzg neifil syl3anc syl5eqel isflf adantr 3imtr4d impr impbida
        iscnp ) CFUALMZDGUALMZAFMZUEZBACDUBNLMZFGBUCZABLZBDEUDNLMZOXEXFOZXGXIXB
        XCXFXGXDXBXCXFXGABCDFGUFUGUHXJACEPNZMZXFXIXJXBXDXLXBXCXDXFUIXBXCXDXFUJX
        BXDOACAUKZCULLLZPNXKACFUMEXNCPHUPUNQXEXFUOABCDEUQQURXEXGXIXFXEXGOZXHGMZ
        XHIRZMZBJRZUSZXQSZJETZUTZIDVAZOZXGXRAKRZMZBYFUSZXQSZOZKCTZUTZIDVAZOZXIX
        FXOYDYNXPXOYDYMXGXOYCYLIDXOYBYKXRXOYAYKJEXOXSEMZXSCVBZSZYGYFXSSZOZKCTZO
        ZYAYKUTZXOCVCMZAYPMZYOUUAVDXOXBUUCXBXCXDXGUIZFCVEVFXOAFYPXBXCXDXGUJZXOX
        BFYPVGUUEFCVHVFVTYOXSXNMUUCUUDOUUAEXNXSHVIAKCXSYPYPVJVKVLQYTUUBYQYAYTYK
        YAYSYJKCYAYRYIYGYHXTSYAYIYRYHXTXQVMYFXSBVNVOVPWAVQVRVSWBWCWDXEXGUOZWEWF
        XOXCEFWJLZMXGXIYEVDXBXCXDXGWGXOEXNUUHHXOXBXMFSXMWKWHZXNUUHMUUEXOAFUUFWI
        XOXDUUIUUFAFWLVFXMCFWMWNWOUUGXHIBDEGFJWPWNXEXFYNVDXGKIABCDFGXAWQWRWSWT
        $.
    $}

    $( Continuity of a function at a point in terms of filter limits.
       (Contributed by Jeff Hankins, 7-Sep-2009.)  (Revised by Stefan O'Rear,
       7-Aug-2015.) $)
    cnpflf $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) /\ A e. X ) ->
        ( F e. ( ( J CnP K ) ` A ) <-> ( F : X --> Y /\
            A. f e. ( Fil ` X ) ( A e. ( J fLim f ) ->
                ( F ` A ) e. ( ( K fLimf f ) ` F ) ) ) ) ) $=
      ( ctopon cfv wcel w3a ccnp co cflim cflf wi wa syl oveq2 eleq2d cfil wral
      wf cv cnpf2 3expa 3adantl3 cnpflfi expcom ralrimivw adantl jca csn simpl1
      ex cnei simpl3 neiflim syl2anc wss c0 wne snssd snnzg neifil syl3anc wceq
      fveq1d imbi12d rspcv mpid imdistanda eqid cnpflf2 sylibrd impbid ) DFHIJZ
      EGHIJZAFJZKZCADELMIJZFGCUCZADBUDZNMZJZACIZCEWCOMZIZJZPZBFUAIZUBZQZVTWAWMV
      TWAQWBWLVQVRWAWBVSVQVRWAWBACDEFGUEUFUGWAWLVTWAWJBWKWEWAWIACDEWCUHUIUJUKUL
      UOVTWMWBWFCEAUMZDUPIIZOMZIZJZQWAVTWBWLWRVTWBQZWLADWONMZJZWRWSVQVSXAVQVRVS
      WBUNZVQVRVSWBUQZADFURUSWSWOWKJZWLXAWRPZPWSVQWNFUTWNVAVBZXDXBWSAFXCVCWSVSX
      FXCAFVDRWNDFVEVFWJXEBWOWKWCWOVGZWEXAWIWRXGWDWTAWCWODNSTXGWHWQWFXGCWGWPWCW
      OEOSVHTVIVJRVKVLACDEWOFGWOVMVNVOVP $.

    $( A function is continuous iff it respects filter limits.  (Contributed by
       Jeff Hankins, 6-Sep-2009.)  (Revised by Stefan O'Rear, 7-Aug-2015.) $)
    cnflf $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) ->
      ( F e. ( J Cn K ) <-> ( F : X --> Y /\ A. f e. ( Fil ` X )
        A. x e. ( J fLim f ) ( F ` x ) e. ( ( K fLimf f ) ` F ) ) ) ) $=
      ( ctopon cfv wcel wa ccn co wf cv ccnp wral wi bitr4d syl6bb cflf cfil wb
      cflim cncnp cnpflf 3expa adantlr simplr biantrurd ralbidva cuni flimelbas
      eqid wceq toponuni ad2antrr eleq2d syl5ibr pm4.71rd imbi1d impexp ralbidv
      ralbidv2 ralcom pm5.32da bitrd ) DFHIJZEGHIJZKZCDELMJFGCNZCAOZDEPMIJZAFQZ
      KVKVLCICEBOZUAMIJZADVOUDMZQZBFUBIZQZKACDEFGUEVJVKVNVTVJVKKZVNVLVQJZVPRZBV
      SQZAFQZVTWAVMWDAFWAVLFJZKZVMVKWDKZWDVJWFVMWHUCZVKVHVIWFWIVLBCDEFGUFUGUHWG
      VKWDVJVKWFUIUJSUKWAVTWCAFQZBVSQWEWAVRWJBVSWAVPWCAVQFWAWCWFWBKZVPRWFWCRWAW
      BWKVPWAWBWFWBWFWAVLDULZJVLVODWLWLUNUMWAFWLVLVHFWLUOVIVKFDUPUQURUSUTVAWFWB
      VPVBTVDVCWCBAVSFVETSVFVG $.

    $( A function is continuous iff it respects filter limits.  (Contributed by
       Mario Carneiro, 9-Apr-2015.)  (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    cnflf2 $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) )
      -> ( F e. ( J Cn K ) <-> ( F : X --> Y /\ A. f e. ( Fil ` X )
        ( F " ( J fLim f ) ) C_ ( ( K fLimf f ) ` F ) ) ) ) $=
      ( vx ctopon cfv wcel wa ccn co wf cv cflf wral wss adantl wceq cflim cfil
      cima cnflf wfun wb ffun cuni eqid flimelbas ssriv toponuni ad2antrr eqtrd
      cdm fdm syl5sseqr funimass4 syl2anc ralbidv pm5.32da bitr4d ) CEHIJZDFHIJ
      ZKZBCDLMJEFBNZGOZBIBDAOZPMIZJGCVHUAMZQZAEUBIZQZKVFBVJUCVIRZAVLQZKGABCDEFU
      DVEVFVOVMVEVFKZVNVKAVLVPBUEZVJBUOZRVNVKUFVFVQVEEFBUGSVPCUHZVJVRGVJVSVGVHC
      VSVSUIUJUKVPVREVSVFVRETVEEFBUPSVCEVSTVDVFECULUMUNUQGVJVIBURUSUTVAVB $.
  $}

  $( A continuous function preserves filter limits.  (Contributed by Mario
     Carneiro, 18-Sep-2015.) $)
  flfcnp $p |- ( ( ( J e. ( TopOn ` X ) /\ L e. ( Fil ` Y ) /\
     F : Y --> X ) /\
       ( A e. ( ( J fLimf L ) ` F ) /\ G e. ( ( J CnP K ) ` A ) ) ) ->
    ( G ` A ) e. ( ( K fLimf L ) ` ( G o. F ) ) ) $=
    ( ctopon cfv wcel wf cflf co cfm cflim wceq flfval syl syl3anc cfil ccnp wa
    w3a ccom simprl adantr eleqtrd simprr cnpflfi syl2anc cuni cnptop2 ad2antll
    cfbas ctop eqid toptopon sylib toponmax simpl1 simpl2 cnpf2 simpl3 syl32anc
    filfbas fmco oveq2d fco fmfil 3eqtr4d eleqtrrd ) DGIJKZFHUAJKZHGBLZUDZABDFM
    NJZKZCADEUBNJKZUCZUCZACJZCEFGBONJZMNJZCBUEZEFMNJZWAADWCPNZKVSWBWDKWAAVQWGVP
    VRVSUFVPVQWGQVTBDFGHRUGUHVPVRVSUIZACDEWCUJUKWAEFEULZWEONJZPNZEWCWICONJZPNZW
    FWDWAWJWLEPWAWIEKZGDKZFHUOJKZGWICLZVOWJWLQWAEWIIJKZWNWAEUPKZWRVSWSVPVRACDEU
    MUNEWIWIUQURUSZWIEUTSWAVMWOVMVNVOVTVAZGDUTSZWAVNWPVMVNVOVTVBZFHVFSZWAVMWRVS
    WQXAWTWHACDEGWIVCTZVMVNVOVTVDZFCBEDWIGHVGVEVHWAWRVNHWIWELZWFWKQWTXCWAWQVOXG
    XEXFHGWICBVIUKWEEFWIHRTWAWRWCGUAJKZWQWDWMQWTWAWOWPVOXHXBXDXFDFBGHVJTXECEWCW
    IGRTVKVL $.

  ${
    $d j k x y F $.  $d j k x y J $.  $d j k x y P $.  $d j k x y X $.
    $d x y L $.  $d j k x M $.  $d j k x y Z $.
    lmflf.1 $e |- Z = ( ZZ>= ` M ) $.
    lmflf.2 $e |- L = ( Z filGen ( ZZ>= " Z ) ) $.
    $( The topological limit relation on functions can be written in terms of
       the filter limit along the filter generated by the upper integer sets.
       (Contributed by Mario Carneiro, 13-Oct-2015.) $)
    lmflf $p |- ( ( J e. ( TopOn ` X ) /\ M e. ZZ /\ F : Z --> X ) ->
      ( F ( ~~>t ` J ) P <-> P e. ( ( J fLimf L ) ` F ) ) ) $=
      ( vx vk vj vy cfv wcel cz cv cuz wa wss ctopon w3a wral wrex cima clm wbr
      wf wi cflf co wfn wb cpw uzf ffn ax-mp uzssz eqsstri imaeq2 sseq1d rexima
      wceq mp2an wfun cdm simpl3 ffun syl uzss eleq2s adantl sseqtr4d funimass4
      fdm syl6eq syl2anc rexbidva syl5rbb imbi2d anbi2d simp1 simp2 simp3 eqidd
      ralbidv lmbrf cfbas uzfbas flffbas syl3an2 3bitr4d ) CFUANOZEPOZGFBUHZUBZ
      AFOZAJQZOZKQZBNZWROKLQZRNZUCZLGUDZUIZJCUCZSWQWSBMQZUEZWRTZMRGUEZUDZUIZJCU
      CZSZBACUFNUGABCDUJUKNOZWPXGXNWQWPXFXMJCWPXEXLWSXLBXCUEZWRTZLGUDZWPXERPULZ
      GPTXLXSUMPPUNZRUHXTUOPYARUPUQGERNZPHEURUSXJXRMLPGRXHXCVCXIXQWRXHXCBUTVAVB
      VDWPXRXDLGWPXBGOZSZBVEZXCBVFZTXRXDUMYDWOYEWMWNWOYCVGZGFBVHVIYDXCYBYFYCXCY
      BTZWPYHXBYBGEXBVJHVKVLYDYFGYBYDWOYFGVCYGGFBVOVIHVPVMKXCWRBVNVQVRVSVTWFWAW
      PJXAALKBCEFGWMWNWOWBHWMWNWOWCWMWNWOWDWPWTGOSXAWEWGWNWMXKGWHNOWOXPXOUMEGHW
      IAXKJBCDFGMIWJWKWL $.
  $}

  ${
    $d h u v z H $.  $d f g h n u v ph $.  $d h u v x z R $.  $d h u v x z S $.
    $d f g h n u v F $.  $d f g h n u v G $.  $d f h u v x z J $.
    $d g h u v x z K $.  $d f g h u v z L $.  $d f g h n u v Z $.
    $d f h n u x X $.  $d g h n v x Y $.
    txflf.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    txflf.k $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    txflf.l $e |- ( ph -> L e. ( Fil ` Z ) ) $.
    txflf.f $e |- ( ph -> F : Z --> X ) $.
    txflf.g $e |- ( ph -> G : Z --> Y ) $.
    txflf.h $e |- H = ( n e. Z |-> <. ( F ` n ) , ( G ` n ) >. ) $.
    $( Two sequences converge in a filter iff the sequence of their ordered
       pairs converges.  (Contributed by Mario Carneiro, 19-Sep-2015.) $)
    txflf $p |- ( ph -> ( <. R , S >. e. ( ( ( J tX K ) fLimf L ) ` H ) <->
      ( R e. ( ( J fLimf L ) ` F ) /\ S e. ( ( K fLimf L ) ` G ) ) ) ) $=
      ( wcel vz vh vu vv vf vg vx cop cxp cv cima wss wrex wi cmpt2 crn wral wa
      ctx co cflf cfv cvv vex xpex rgen2w eqid wceq eleq2 sseq2 rexbidv imbi12d
      wb ralrnmpt2 ax-mp crab opelxp ancom bitri a1i r19.40 raleq cbvrexv sylib
      anbi12i reeanv cfil filin 3expb sylan inss1 ssralv anim12i anbi12d rspcev
      cin syl2an ex rexlimdvva syl5bir impbid2 cmpt cres df-ima filelss reseq1i
      inss2 resmpt syl5eq syl rneqd sseq1d ralbii fmpt wfn opex syl6bb rexbidva
      wf wfun cdm adantr ffun sseqtr4d funimass4 syl2anc 3bitr4d ralbidv ralrab
      fdm c0 wne ctopon toponmax rabn0 sylibr bitrd ffvelrnda syl3anc isflf an4
      fnmpti df-f mpbiran r19.26 3bitr3i impexp r19.21v bitr3i syl6bbr r19.28zv
      anim12dan r19.27zv sylan9bbr syl5bb pm5.32da anbi1i 3bitr4g oveq1d fveq1d
      ctg txval eleq2d txtopon eqeltrrd opelxpi fmptd flftg ) ABCUHZKLUIZTZUVIU
      AUJZTZGUBUJZUKZUVLULZUBJUMZUNZUAUCUDHIUCUJZUDUJZUIZUOZUPZUQZURZBKTZBUVSTZ
      EUEUJZUKUVSULZUEJUMZUNUCHUQZURZCLTZCUVTTZFUFUJZUKUVTULZUFJUMZUNUDIUQZURZU
      RZUVIGHIUSUTZJVAUTZVBZTZBEHJVAUTVBTZCFIJVAUTVBTZURAUWFUWMURZUWDURUXGUWKUW
      RURZURUWEUWTAUXGUWDUXHUWDUVIUWATZUVOUWAULZUBJUMZUNZUDIUQZUCHUQZAUXGURZUXH
      UWAVCTZUDIUQUCHUQUWDUXNVMUXPUCUDHIUVSUVTUCVDUDVDVEVFUVRUXLUCUDUAHIUWAUWBV
      CUWBVGUVLUWAVHZUVMUXIUVQUXKUVLUWAUVIVIUXQUVPUXJUBJUVLUWAUVOVJVKVLVNVOUXOU
      XNUWJUCBUGUJZTZUGHVPZUQZUWQUDCUXRTZUGIVPZUQZURZUXHUXOUXNUWJUWQURZUDUYCUQZ
      UCUXTUQZUYEAUXNUYHVMUXGAUXNUWGUYGUNZUCHUQUYHAUXMUYIUCHAUXMUWNUWGUYFUNZUNZ
      UDIUQZUYIAUXLUYKUDIAUXLUWNUWGURZUYFUNUYKAUXIUYMUXKUYFUXIUYMVMAUXIUWGUWNUR
      UYMBCUVSUVTVQUWGUWNVRVSVTADUJZEVBZUVSTZDUVNUQZUYNFVBZUVTTZDUVNUQZURZUBJUM
      ZUYPDUWHUQZUEJUMZUYSDUWOUQZUFJUMZURZUXKUYFAVUBVUGVUBUYQUBJUMZUYTUBJUMZURV
      UGUYQUYTUBJWAVUHVUDVUIVUFUYQVUCUBUEJUYPDUVNUWHWBWCUYTVUEUBUFJUYSDUVNUWOWB
      WCWEWDVUGVUCVUEURZUFJUMUEJUMAVUBVUCVUEUEUFJJWFAVUJVUBUEUFJJAUWHJTZUWOJTZU
      RZURZVUJVUBVUNUWHUWOWPZJTZUYPDVUOUQZUYSDVUOUQZURZVUBVUJAJMWGVBTZVUMVUPPVU
      TVUKVULVUPUWHUWOJMWHWIWJVUCVUQVUEVURVUOUWHULVUCVUQUNUWHUWOWKUYPDVUOUWHWLV
      OVUOUWOULVUEVURUNUWHUWOXGUYSDVUOUWOWLVOWMVUAVUSUBVUOJUVNVUOVHUYQVUQUYTVUR
      UYPDUVNVUOWBUYSDUVNVUOWBWNWOWQWRWSWTXAAUXJVUAUBJAUVNJTZURZUXJDUVNUYOUYRUH
      ZXBZUPZUWAULZVUAVVBUVOVVEUWAVVBUVOGUVNXCZUPVVEGUVNXDVVBVVGVVDVVBUVNMULZVV
      GVVDVHAVUTVVAVVHPUVNJMXEWJVVHVVGDMVVCXBZUVNXCVVDGVVIUVNSXFDMUVNVVCXHXIXJX
      KXIXLVVCUWATZDUVNUQZUYPUYSURZDUVNUQVVFVUAVVJVVLDUVNUYOUYRUVSUVTVQXMVVKUVN
      UWAVVDXSZVVFDUVNUWAVVCVVDVVDVGZXNVVMVVDUVNXOVVFDUVNVVCVVDUYOUYRXPVVNUUBUV
      NUWAVVDUUCUUDVSUYPUYSDUVNUUEUUFXQXRAUWJVUDUWQVUFAUWIVUCUEJAVUKURZEXTZUWHE
      YAZULUWIVUCVMVVOMKEXSZVVPAVVRVUKQYBZMKEYCXJVVOUWHMVVQAVUTVUKUWHMULPUWHJMX
      EWJVVOVVRVVQMVHVVSMKEYJXJYDDUWHUVSEYEYFXRAUWPVUEUFJAVULURZFXTZUWOFYAZULUW
      PVUEVMVVTMLFXSZVWAAVWCVULRYBZMLFYCXJVVTUWOMVWBAVUTVULUWOMULPUWOJMXEWJVVTV
      WCVWBMVHVWDMLFYJXJYDDUWOUVTFYEYFXRWNYGVLUWNUWGUYFUUGXQYHUYLUYJUDUYCUQUYIU
      YBUWNUYJUDUGIUXRUVTCVIZYIUWGUYFUDUYCUUHUUIXQYHUXSUWGUYGUCUGHUXRUVSBVIZYIU
      UJYBUXOUXTYKYLZUYCYKYLZURUYHUYEVMAUWFVWGUWMVWHAKHTZUWFVWGAHKYMVBZTZVWINKH
      YNXJVWIUWFURUXSUGHUMVWGUXSUWFUGKHUXRKBVIWOUXSUGHYOYPWJALITZUWMVWHAILYMVBZ
      TZVWLOLIYNXJVWLUWMURUYBUGIUMVWHUYBUWMUGLIUXRLCVIWOUYBUGIYOYPWJUULVWHUYHUW
      JUYDURZUCUXTUQVWGUYEVWHUYGVWOUCUXTUWJUWQUDUYCUUKYHUWJUYDUCUXTUUMUUNXJYQUY
      AUWKUYDUWRUXSUWGUWJUCUGHVWFYIUYBUWNUWQUDUGIVWEYIWEXQUUOUUPUVKUXGUWDBCKLVQ
      UUQUWFUWKUWMUWRUUAUURAUXDUVIGUWCUVAVBZJVAUTZVBZTZUWEAUXCVWRUVIAGUXBVWQAUX
      AVWPJVAAVWKVWNUXAVWPVHNOUCUDUWCHIVWJVWMUWCVGUVBYFZUUSUUTUVCAVWPUVJYMVBZTV
      UTMUVJGXSVWSUWEVMAUXAVWPVXAVWTAVWKVWNUXAVXATNOHIKLUVDYFUVEPADMVVCUVJGAUYN
      MTURUYOKTUYRLTVVCUVJTAMKUYNEQYRAMLUYNFRYRUYOUYRKLUVFYFSUVGUVIUWCUAGVWPJUV
      JMUBVWPVGUVHYSYQAUXEUWLUXFUWSAVWKVUTVVRUXEUWLVMNPQBUCEHJKMUEYTYSAVWNVUTVW
      CUXFUWSVMOPRCUDFIJLMUFYTYSWNYG $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y O $.  $d x y ph $.  $d x y Z $.  $d x y X $.
    $d x y Y $.
    flfcnp2.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    flfcnp2.k $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    flfcnp2.l $e |- ( ph -> L e. ( Fil ` Z ) ) $.
    flfcnp2.a $e |- ( ( ph /\ x e. Z ) -> A e. X ) $.
    flfcnp2.b $e |- ( ( ph /\ x e. Z ) -> B e. Y ) $.
    flfcnp2.r $e |- ( ph -> R e. ( ( J fLimf L ) ` ( x e. Z |-> A ) ) ) $.
    flfcnp2.s $e |- ( ph -> S e. ( ( K fLimf L ) ` ( x e. Z |-> B ) ) ) $.
    flfcnp2.o $e |- ( ph -> O e. ( ( ( J tX K ) CnP N ) ` <. R , S >. ) ) $.
    $( The image of a convergent sequence under a continuous map is convergent
       to the image of the original point.  Binary operation version.
       (Contributed by Mario Carneiro, 19-Sep-2015.) $)
    flfcnp2 $p |- ( ph ->
      ( R O S ) e. ( ( N fLimf L ) ` ( x e. Z |-> ( A O B ) ) ) ) $=
      ( vy co cop cfv cmpt cflf df-ov ccom ctx ctopon wcel cfil wf ccnp txtopon
      cxp syl2anc cv wa opelxpi eqid fmptd nfcv nffvmpt1 nfop wceq fveq2 cbvmpt
      opeq12d txflf mpbir2and simpr fvmpt2 fveq2d eleqtrd flfcnp syl32anc eqidd
      mpteq2dva cuni ctop cnptop2 toptopon sylib syl3anc feqmptd syl6eqr fmptco
      syl cnpf2 syl5eqel ) AEFKUDEFUEZKUFZBNCDKUDZUGZJIUHUDZUFZEFKUIAWOKBNCDUEZ
      UGZUJZWRUFZWSAGHUKUDZLMURZULUFUMZINUNUFUMNXEXAUOWNXAXDIUHUDZUFZUMKWNXDJUP
      UDUFUMZWOXCUMAGLULUFUMHMULUFUMXFOPGHLMUQUSZQABNWTXEXAABUTZNUMZVAZCLUMZDMU
      MZWTXEUMRSCDLMVBUSZXAVCVDAWNBNXKBNCUGZUFZXKBNDUGZUFZUEZUGZXGUFZXHAWNYCUME
      XQGIUHUDUFUMFXSHIUHUDUFUMTUAAEFUCXQXSYBGHILMNOPQABNCLXQRXQVCZVDABNDMXSSXS
      VCZVDBUCNYAUCUTZXQUFZYFXSUFZUEUCYAVEBYGYHBNCYFVFBNDYFVFVGXKYFVHXRYGXTYHXK
      YFXQVIXKYFXSVIVKVJVLVMAYBXAXGABNYAWTXMXRCXTDXMXLXNXRCVHAXLVNZRBNCLXQYDVOU
      SXMXLXOXTDVHYISBNDMXSYEVOUSVKWAVPVQUBWNXAKXDJIXENVRVSAXBWQWRABUCNXEWTYFKU
      FZWPXAKXPAXAVTAUCXEJWBZKAXFJYKULUFUMZXIXEYKKUOXJAJWCUMZYLAXIYMUBWNKXDJWDW
      KJYKYKVCWEWFUBWNKXDJXEYKWLWGWHYFWTVHYJWTKUFWPYFWTKVICDKUIWIWJVPVQWM $.
  $}

  ${
    $d f j x $.  $d s A $.  $d f j s t F $.  $d f j s X $.  $d f j s Y $.
    $d f j s t J $.
    fclsval.x $e |- X = U. J $.
    $( The set of all cluster points of a filter.  (Contributed by Jeff
       Hankins, 10-Nov-2009.)  (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    fclsval $p |- ( ( J e. Top /\ F e. ( Fil ` Y ) ) -> ( J fClus F ) =
          if ( X = Y , |^|_ t e. F ( ( cls ` J ) ` t ) , (/) ) ) $=
      ( vj vf wcel cfil cfv wa cuni wceq cv ccl ciin c0 cvv adantl cfcls co cif
      ctop crn simpl fvssunirn sseli wne wral filn0 fvex rgenw sylancl 0ex ifcl
      iinexg unieq syl6eqr eqeqan12d iineq1 simpll fveq2d fveq1d iineq2dv eqtrd
      ifbieq1d df-fcls ovmpt2ga syl3anc wb filunibas eqeq2d ifbid ) CUDIZBEJKZI
      ZLZCBUAUBZDBMZNZABAOZCPKZKZQZRUCZDENZWERUCVRVOBJUEMZIZWFSIZVSWFNVOVQUFVQW
      IVOVPWHBJEUGUHTVRWESIZRSIWJVRBRUIZWDSIZABUJWKVQWLVOBEUKTWMABWBWCULUMABWDS
      UQUNUOWAWERSUPUNGHCBUDWHGOZMZHOZMZNZAWPWBWNPKZKZQZRUCWFUASWNCNZWPBNZLZWRW
      AXAWERXBXCWODWQVTXBWOCMDWNCURFUSWPBURUTXDXAABWTQZWEXCXAXENXBAWPBWTVATXDAB
      WTWDXDWBBIZLZWBWSWCXGWNCPXBXCXFVBVCVDVEVFVGAHGVHVIVJVRWAWGWERVQWAWGVKVOVQ
      VTEDBEVLVMTVNVF $.

    $( A cluster point of a filter.  (Contributed by Jeff Hankins,
       10-Nov-2009.)  (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    isfcls $p |- ( A e. ( J fClus F ) <-> ( J e. Top /\ F e. ( Fil ` X ) /\
          A. s e. F A e. ( ( cls ` J ) ` s ) ) ) $=
      ( vj vf vx wcel cfil cuni wa wceq cv cfv eleq2d c0 wi a1i ctop wral cfcls
      crn ccl co anass fvssunirn sseli filunibas eqcomd filunirn fveq2 biimparc
      w3a jca sylanb impbii anbi2i anbi1i 3bitr4i ciin df-fcls elmpt2cl fclsval
      df-3an cif sylan2b n0i iffalse nsyl2 pm4.71rd iftrue adantl cvv elex wrex
      wne filn0 sylbi ad2antlr r19.2z ex syl rexlimivw wb eliin pm5.21ndd bitrd
      syl6 pm5.32da 3bitrd biadan2 3bitr4ri ) CUAJZBKUDLZJZMZDBLZNZMZAEOCUEPPZJ
      ZEBUBZMZWRWTXDMZMWOBDKPZJZXDUOZACBUCUFZJZWRWTXDUGWOXHMZXDMWOWQWTMZMZXDMXI
      XEXLXNXDXHXMWOXHXMXHWQWTXGWPBKDUHUIXHWSDBDUJUKUPWQBWSKPZJZWTXHBULZWTXHXPW
      TXGXOBDWSKUMQUNUQURUSUTWOXHXDVFXAXNXDWOWQWTUGUTVAXKWRXFGHUAWPGOZLHOZLNIXS
      IOXRUEPPVBRVGCBUCAIHGVCVDWRXKAWTEBXBVBZRVGZJZWTYBMXFWRXJYAAWQWOXPXJYANXQE
      BCDWSFVEVHQWRYBWTYBWTSWRYBYARNWTYAAVIWTXTRVJVKTVLWRWTYBXDXAYBAXTJZXDXAYAX
      TAWTYAXTNWRWTXTRVMVNQXAAVOJZYCXDYCYDSXAAXTVPTXAXDXCEBVQZYDXABRVRZXDYESWQY
      FWOWTWQXPYFXQBWSVSVTWAYFXDYEXCEBWBWCWDXCYDEBAXBVPWEWJYDYCXDWFSXAEABXBVOWG
      TWHWIWKWLWMWN $.

    $( Reverse closure for the cluster point predicate.  (Contributed by Mario
       Carneiro, 11-Apr-2015.)  (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    fclsfil $p |- ( A e. ( J fClus F ) -> F e. ( Fil ` X ) ) $=
      ( vs cfcls co wcel ctop cfil cfv cv ccl wral isfcls simp2bi ) ACBGHICJIBD
      KLIAFMCNLLIFBOABCDFEPQ $.
  $}

  ${
    $d o s A $.  $d o s F $.  $d o s J $.  $d o s U $.  $d s S $.  $d o s X $.
    $( Reverse closure for the cluster point predicate.  (Contributed by Mario
       Carneiro, 11-Apr-2015.)  (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    fclstop $p |- ( A e. ( J fClus F ) -> J e. Top ) $=
      ( vs cfcls co wcel ctop cuni cfil cfv cv ccl wral eqid isfcls simp1bi ) A
      CBEFGCHGBCIZJKGADLCMKKGDBNABCRDROPQ $.

    $( Reverse closure for the cluster point predicate.  (Contributed by Mario
       Carneiro, 26-Aug-2015.) $)
    fclstopon $p |- ( A e. ( J fClus F ) ->
        ( J e. ( TopOn ` X ) <-> F e. ( Fil ` X ) ) ) $=
      ( cfcls wcel ctopon cfv cuni wceq cfil ctop fclstop istopon baib syl eqid
      co wb filunibas fclsfil fveq2 eleq2d syl5ibrcom eqeq1d syl5ibcom impbid
      bitrd ) ACBERFZCDGHFZDCIZJZBDKHZFZUICLFZUJULSABCMUJUOULDCNOPUIULUNUIUNULB
      UKKHZFZABCUKUKQUAZULUMUPBDUKKUBUCUDUIBIZUKJZUNULUIUQUTURBUKTPUNUSDUKBDTUE
      UFUGUH $.

    $( A cluster point of a filter.  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    isfcls2 $p |- ( ( J e. ( TopOn ` X ) /\ F e. ( Fil ` X ) ) ->
      ( A e. ( J fClus F ) <-> A. s e. F A e. ( ( cls ` J ) ` s ) ) ) $=
      ( ctopon cfv wcel cfil wa ctop cuni cfcls co cv ccl wral topontop adantr
      wb toponuni fveq2d eleq2d biimpa eqid isfcls df-3an bitri baib syl2anc
      w3a ) CDFGHZBDIGZHZJCKHZBCLZIGZHZACBMNHZAEOCPGGHEBQZTULUOUNDCRSULUNURULUM
      UQBULDUPIDCUAUBUCUDUSUOURJZUTUSUOURUTUKVAUTJABCUPEUPUEUFUOURUTUGUHUIUJ $.

    $( Write the cluster point condition in terms of open sets.  (Contributed
       by Jeff Hankins, 10-Nov-2009.)  (Revised by Mario Carneiro,
       26-Aug-2015.) $)
    fclsopn $p |- ( ( J e. ( TopOn ` X ) /\ F e. ( Fil ` X ) ) ->
      ( A e. ( J fClus F ) <-> ( A e. X /\
        A. o e. J ( A e. o -> A. s e. F ( o i^i s ) =/= (/) ) ) ) ) $=
      ( ctopon cfv wcel cfil wa cfcls cv wral c0 wne wi wss ad2antrr ad3antrrr
      co ccl cin isfcls2 wrex filn0 adantl r19.2z ex cuni ctop topontop filelss
      syl adantll wceq toponuni sseqtrd clsss3 syl2anc sseqtr4d sseld rexlimdva
      eqid syld pm4.71rd wb adantlr simplr eleqtrd elcls syl3anc ralcom r19.21v
      ralbidva ralbii bitri syl6bb pm5.32da 3bitrd ) DEGHIZCEJHIZKZADCLUAIAFMZD
      UBHHZIZFCNZAEIZWGKWHABMZIZWIWDUCOPZFCNQZBDNZKACDEFUDWCWGWHWCWGWFFCUEZWHWC
      COPZWGWNQWBWOWACEUFUGWOWGWNWFFCUHUIUNWCWFWHFCWCWDCIZKZWEEAWQWEDUJZEWQDUKI
      ZWDWRRZWEWRRWAWSWBWPEDULZSWQWDEWRWBWPWDERWAWDCEUMUOWAEWRUPZWBWPEDUQZSZURZ
      WDDWRWRVDZUSUTXDVAVBVCVEVFWCWHWGWMWCWHKZWGWJWKQZBDNZFCNZWMXGWFXIFCXGWPKZW
      SWTAWRIWFXIVGWAWSWBWHWPXATWCWPWTWHXEVHXKAEWRWCWHWPVIWAXBWBWHWPXCTVJBAWDDW
      RXFVKVLVOXJXHFCNZBDNWMXHFBCDVMXLWLBDWJWKFCVNVPVQVRVSVT $.

    $( An open neighborhood of a cluster point of a filter intersects any
       element of that filter.  (Contributed by Mario Carneiro, 11-Apr-2015.)
       (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    fclsopni $p |- ( ( A e. ( J fClus F ) /\ ( U e. J /\ A e. U /\ S e. F ) )
      -> ( U i^i S ) =/= (/) ) $=
      ( vs vo cfcls co wcel cin c0 wne cv wral wi cfv wceq neeq1d rspccv ctopon
      cuni wa cfil wb fclsfil fclstopon mpbird fclsopn syl2anc ibi simprd eleq2
      eqid ineq1 ralbidv imbi12d syl ineq2 syl8 3imp2 ) AEDHIJZCEJZACJZBDJZCBKZ
      LMZVBVCVDCFNZKZLMZFDOZVEVGPVBAGNZJZVLVHKZLMZFDOZPZGEOZVCVDVKPZPVBAEUBZJZV
      RVBWAVRUCZVBEVTUAQJZDVTUDQJZVBWBUEVBWCWDADEVTVTUNUFZADEVTUGUHWEAGDEVTFUIU
      JUKULVQVSGCEVLCRZVMVDVPVKVLCAUMWFVOVJFDWFVNVILVLCVHUOSUPUQTURVJVGFBDVHBRV
      IVFLVHBCUSSTUTVA $.

    fclselbas.1 $e |- X = U. J $.
    $( A cluster point is in the base set.  (Contributed by Jeff Hankins,
       11-Nov-2009.)  (Revised by Mario Carneiro, 26-Aug-2015.) $)
    fclselbas $p |- ( A e. ( J fClus F ) -> A e. X ) $=
      ( vo vs cfcls co wcel cv cin c0 wne wral wi wa ctopon cfv cfil wb fclsfil
      fclstopon mpbird fclsopn syl2anc ibi simpld ) ACBHIJZADJZAFKZJUKGKLMNGBOP
      FCOZUIUJULQZUICDRSJZBDTSJZUIUMUAUIUNUOABCDEUBZABCDUCUDUPAFBCDGUEUFUGUH $.
  $}

  $( A neighborhood of a cluster point of a filter intersects any element of
     that filter.  (Contributed by Jeff Hankins, 11-Nov-2009.)  (Revised by
     Stefan O'Rear, 8-Aug-2015.) $)
  fclsneii $p |- ( ( A e. ( J fClus F ) /\ N e. ( ( nei ` J ) ` { A } ) /\
    S e. F ) -> ( N i^i S ) =/= (/) ) $=
    ( cfcls co wcel csn cnei cfv w3a cnt cin wss c0 wne syl syl2anc wb fclsopni
    ctop cuni simp1 simp2 eqid neii1 ntrss2 ssrin ntropn fclselbas snssd neiint
    fclstop syl3anc mpbid snssg mpbird simp3 syl13anc ssn0 ) ADCFGHZEAIZDJKKHZB
    CHZLZEDMKKZBNZEBNZOZVHPQZVIPQVFVGEOZVJVFDUBHZEDUCZOZVLVFVBVMVBVDVEUDZACDUNR
    ZVFVMVDVOVQVBVDVEUEZVCDEVNVNUFZUGSZEDVNVSUHSVGEBUIRVFVBVGDHZAVGHZVEVKVPVFVM
    VOWAVQVTEDVNVSUJSVFWBVCVGOZVFVDWCVRVFVMVCVNOVOVDWCTVQVFAVNVFVBAVNHZVPACDVNV
    SUKRZULVTVCDEVNVSUMUOUPVFWDWBWCTWEAVGVNUQRURVBVDVEUSABVGCDUAUTVHVIVAS $.

  ${
    $d n o s A $.  $d n o s x F $.  $d n o s x J $.  $d s x S $.  $d o s x X $.
    $d x U $.
    $( The set of cluster points is a subset of the closure of any filter
       element.  (Contributed by Mario Carneiro, 11-Apr-2015.)  (Revised by
       Stefan O'Rear, 8-Aug-2015.) $)
    fclssscls $p |- ( S e. F -> ( J fClus F ) C_ ( ( cls ` J ) ` S ) ) $=
      ( vx vs wcel cfcls co ccl cv wral ctop cuni cfil eqid isfcls simp3bi wceq
      cfv fveq2 eleq2d rspcv syl5 ssrdv ) ABFZDCBGHZACISZSZDJZUFFZUIEJZUGSZFZEB
      KZUEUIUHFZUJCLFBCMZNSFUNUIBCUPEUPOPQUMUOEABUKARULUHUIUKAUGTUAUBUCUD $.

    $( Cluster points in terms of neighborhoods.  (Contributed by Jeff Hankins,
       11-Nov-2009.)  (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    fclsnei $p |- ( ( J e. ( TopOn ` X ) /\ F e. ( Fil ` X ) ) ->
      ( A e. ( J fClus F ) <-> ( A e. X /\
        A. n e. ( ( nei ` J ) ` { A } ) A. s e. F ( n i^i s ) =/= (/) ) ) ) $=
      ( vo ctopon cfv wcel cfil wa cfcls cv cin c0 wne wral wceq wi co csn cnei
      cuni eqid fclselbas toponuni adantr syl5ibr fclsneii 3expb ralrimivva a1i
      eleq2d jcad topontop ad3antrrr simprl simprr opnneip syl3anc ineq1 neeq1d
      ctop ralbidv rspcv expr com23 ralrimdva imdistanda fclsopn sylibrd impbid
      syl ) DEHIJZCEKIJZLZADCMUAJZAEJZBNZFNZOZPQZFCRZBAUBDUCIIZRZLZVQVRVSWFVRVS
      VQADUDZJACDWHWHUEUFVQEWHAVOEWHSVPEDUGUHUNUIVRWFTVQVRWCBFWECVRVTWEJWACJWCA
      WACDVTUJUKULUMUOVQWGVSAGNZJZWIWAOZPQZFCRZTZGDRZLVRVQVSWFWOVQVSLZWFWNGDWPW
      IDJZLWJWFWMWPWQWJWFWMTZWPWQWJLZLZWIWEJZWRWTDVDJZWQWJXAVOXBVPVSWSEDUPUQWPW
      QWJURWPWQWJUSADWIUTVAWDWMBWIWEVTWISZWCWLFCXCWBWKPVTWIWAVBVCVEVFVNVGVHVIVJ
      AGCDEFVKVLVM $.

    $( The filter of supersets of ` X \ U ` does not cluster at any point of
       the open set ` U ` .  (Contributed by Mario Carneiro, 11-Apr-2015.)
       (Revised by Mario Carneiro, 26-Aug-2015.) $)
    supnfcls $p |- ( ( J e. ( TopOn ` X ) /\ U e. J /\ A e. U ) ->
      -. A e. ( J fClus { x e. ~P X | ( X \ U ) C_ x } ) ) $=
      ( ctopon cfv wcel w3a cdif cin c0 wceq cv wss cpw crab cfcls co wn wne wa
      disjdif simpr simpl2 simpl3 difss simpl1 toponmax elpw2g 3syl mpbiri ssid
      wb a1i sseq2 elrab sylanbrc fclsopni syl13anc ex necon2bd mpi ) DEFGHZCDH
      ZBCHZIZCECJZKZLMBDVHANZOZAEPZQZRSHZTCEUCVGVNVILVGVNVILUAZVGVNUBZVNVEVFVHV
      MHZVOVGVNUDVDVEVFVNUEVDVEVFVNUFVPVHVLHZVHVHOZVQVPVRVHEOZECUGVPVDEDHVRVTUN
      VDVEVFVNUHEDUIVHEDUJUKULVSVPVHUMUOVKVSAVHVLVJVHVHUPUQURBVHCVMDUSUTVAVBVC
      $.
  $}

  ${
    $d o t A $.  $d o s t B $.  $d o t F $.  $d o t J $.  $d o t X $.
    fclsbas.f $e |- F = ( X filGen B ) $.
    $( Cluster points in terms of filter bases.  (Contributed by Jeff Hankins,
       13-Nov-2009.)  (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    fclsbas $p |- ( ( J e. ( TopOn ` X ) /\ B e. ( fBas ` X ) ) ->
      ( A e. ( J fClus F ) <-> ( A e. X /\
        A. o e. J ( A e. o -> A. s e. B ( o i^i s ) =/= (/) ) ) ) ) $=
      ( vt cfv wcel wa co cv c0 wral wi wb wss syl cfbas cfcls cin wne cfil cfg
      ctopon fgcl adantl syl5eqel fclsopn syldan ssfg ad3antlr syl6sseqr ssralv
      weq ineq2 neeq1d cbvralv syl6ib wrex eleq2i syl5bb simplbda r19.29r sslin
      elfg ssn0 sylan rexlimivw ex ralrimdva anassrs pm5.74da ralbidva pm5.32da
      impbid bitrd ) EFUGJKZBFUAJKZLZAEDUBMKZAFKZACNZKZWEINZUCZOUDZIDPZQZCEPZLZ
      WDWFWEGNZUCZOUDZGBPZQZCEPZLVTWADFUEJZKWCWMRWBDFBUFMZWTHWAXAWTKVTBFUHUIUJA
      CDEFIUKULWBWDWLWSWBWDLZWKWRCEXBWEEKZLWFWJWQXBXCWFWJWQRXBXCWFLZLZWJWQXEWJW
      IIBPZWQXEBDSWJXFQXEBXADWABXASVTWDXDBFUMUNHUOWIIBDUPTWIWPIGBIGUQWHWOOWGWNW
      EURUSUTVAXEWQWIIDXEWGDKZLWNWGSZGBVBZWQWIQXEXGWGFSZXIXGWGXAKZXEXJXILZDXAWG
      HVCWAXKXLRVTWDXDGWGBFVHUNVDVEXIWQWIXIWQLXHWPLZGBVBWIXHWPGBVFXMWIGBXHWOWHS
      WPWIWNWGWEVGWOWHVIVJVKTVLTVMVRVNVOVPVQVS $.
  $}

  ${
    $d o s t u x y z F $.  $d s x G $.  $d o s t u x y z J $.  $d o s x K $.
    $d o s t u x y z X $.  $d s t u x y z Y $.
    $( A finer topology has fewer cluster points.  (Contributed by Jeff
       Hankins, 11-Nov-2009.)  (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    fclsss1 $p |- ( ( J e. ( TopOn ` X ) /\ F e. ( Fil ` X ) /\ J C_ K ) ->
        ( K fClus F ) C_ ( J fClus F ) ) $=
      ( vx vo vs ctopon cfv wcel cfil cfcls co cv wi wa wral wb fclsopn syl2anc
      wss w3a cin c0 simpl3 ssralv anim2d simpl2 fclstopon adantl mpbird simpl1
      wne syl 3imtr4d ex pm2.43d ssrdv ) BDHIZJZADKIJZBCUAZUBZECALMZBALMZVCENZV
      DJZVFVEJZVCVGVGVHOVCVGPZVFDJZVFFNZJVKGNUCUDUMGAQOZFCQZPZVJVLFBQZPZVGVHVIV
      BVNVPOUTVAVBVGUEVBVMVOVJVLFBCUFUGUNVICUSJZVAVGVNRVIVQVAUTVAVBVGUHZVGVQVAR
      VCVFACDUIUJUKVRVFFACDGSTVIUTVAVHVPRUTVAVBVGULVRVFFABDGSTUOUPUQUR $.

    $( A finer filter has fewer cluster points.  (Contributed by Jeff Hankins,
       11-Nov-2009.)  (Revised by Mario Carneiro, 26-Aug-2015.) $)
    fclsss2 $p |- ( ( J e. ( TopOn ` X ) /\ F e. ( Fil ` X ) /\ F C_ G ) ->
        ( J fClus G ) C_ ( J fClus F ) ) $=
      ( vx vs ctopon cfv wcel cfil wss w3a cfcls co cv wi wral isfcls2 syl2anc
      wb wa ccl simpl3 ssralv syl simpl1 fclstopon adantl mpbid 3imtr4d pm2.43d
      simpl2 ex ssrdv ) CDGHIZADJHZIZABKZLZECBMNZCAMNZUSEOZUTIZVBVAIZUSVCVCVDPU
      SVCUAZVBFOCUBHHIZFBQZVFFAQZVCVDVEURVGVHPUOUQURVCUCVFFABUDUEVEUOBUPIZVCVGT
      UOUQURVCUFZVEUOVIVJVCUOVITUSVBBCDUGUHUIVBBCDFRSVEUOUQVDVHTVJUOUQURVCULVBA
      CDFRSUJUMUKUN $.

    $( The set of cluster points in a restricted topological space.
       (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    fclsrest $p |- ( ( J e. ( TopOn ` X ) /\ F e. ( Fil ` X ) /\ Y e. F ) ->
        ( ( J |`t Y ) fClus ( F |`t Y ) ) = ( ( J fClus F ) i^i Y ) ) $=
      ( vy vz vu vs vt cfv wcel co cin cv wa c0 wne wral wb wceq vx ctopon cfil
      w3a crest cfcls wi wss simp1 filelss 3adant1 resttopon syl2anc cdif cfbas
      wn filfbas 3ad2ant2 simp3 fbncp simp2 trfil3 mpbird fclsopn syl5eq neeq1d
      in32 ineq2 rspccv inss1 ssrin ax-mp ssn0 mpan syl6 ralrimiv simpr syl3anc
      ad3antrrr filin inass syl6eqr rspcv syl ralrimdva impbid2 imbi2d ralbidva
      cvv vex inex1 a1i wrex elrest 3adant2 adantr eleq2 rbaib adantl sylan9bbr
      elin ralxfr2d ineq1 inindir ralbidv sylan9bb imbi12d sselda baibd 3bitr4d
      syl21anc pm5.32da bitrd ancom bitri syl6bbr eqrdv ) BCUBJZKZACUCJZKZDAKZU
      DZUABDUELZADUELZUFLZBAUFLZDMZYCUANZYFKZYIDKZYIYGKZOZYIYHKZYCYJYKYIENZKZYO
      FNZMZPQZFYERZUGZEYDRZOZYMYCYDDUBJKZYEDUCJKZYJUUCSYCXSDCUHZUUDXSYAYBUIZYAY
      BUUFXSDACUJUKZDBCULUMYCUUECDUNAKUPZYCACUOJKZYBUUIYAXSUUJYBACUQURXSYAYBUSZ
      DCACUTUMYCYAUUFUUEUUISXSYAYBVAZUUHDACVBUMVCYIEYEYDDFVDUMYCYKUUBYLYCYKOZYI
      GNZKZUUNHNZMDMZPQZHARZUGZGBRUUOUUNINZMZPQZIARZUGZGBRZUUBYLUUMUUTUVEGBUUMU
      UNBKZOZUUSUVDUUOUVHUUSUVDUUSUVCIAUUSUVAAKUUNDMZUVAMZPQZUVCUURUVKHUVAAUUPU
      VATZUUQUVJPUVLUUQUVIUUPMUVJUUNUUPDVGUUPUVAUVIVHVEVFVIUVJUVBUHZUVKUVCUVIUU
      NUHUVMUUNDVJUVIUUNUVAVKVLUVJUVBVMVNVOVPUVHUVDUURHAUVHUUPAKZOZUUPDMZAKZUVD
      UURUGUVOYAUVNYBUVQYCYAYKUVGUVNUULVSUVHUVNVQYCYBYKUVGUVNUUKVSUUPDACVTVRUVC
      UURIUVPAUVAUVPTZUVBUUQPUVRUVBUUNUVPMUUQUVAUVPUUNVHUUNUUPDWAWBVFWCWDWEWFWG
      WHUUMUUAUUTEGUVIYDBWIUVIWIKUVHUUNDGWJWKWLYCYOYDKYOUVITZGBWMSZYKXSYBUVTYAG
      YODBXRAWNWOWPUUMUVSOYPUUOYTUUSUVSYPYIUVIKZUUMUUOYOUVIYIWQYKUWAUUOSYCUWAUU
      OYKYIUUNDXAWRWSWTUUMYTYOUVPMZPQZHARUVSUUSUUMYSUWCFHUVPYEAWIUVPWIKUUMUVNOU
      UPDHWJWKWLYCYQYEKYQUVPTZHAWMSZYKYAYBUWEXSHYQDAXTAWNUKWPUUMUWDOYRUWBPUWDYR
      UWBTUUMYQUVPYOVHWSVFXBUVSUWCUURHAUVSUWBUUQPUVSUWBUVIUVPMUUQYOUVIUVPXCUUNU
      UPDXDWBVFXEXFXGXBUUMXSYAYICKZYLUVFSYCXSYKUUGWPYCYAYKUULWPYCDCYIUUHXHXSYAO
      YLUWFUVFYIGABCIVDXIXKXJXLXMYNYLYKOYMYIYGDXAYLYKXNXOXPXQ $.
  $}

  ${
    $d f n u x y J $.  $d f n u x y K $.  $d f n u x y X $.
    $( Characterization of fineness of topologies in terms of cluster points.
       (Contributed by Jeff Hankins, 12-Nov-2009.)  (Revised by Stefan O'Rear,
       8-Aug-2015.) $)
    fclscf $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` X ) ) ->
      ( J C_ K <-> A. f e. ( Fil ` X ) ( K fClus f ) C_ ( J fClus f ) ) ) $=
      ( vy vu vn wcel wa wss cv cfcls co wral wrex wi wceq wne c0 wn ctopon cfv
      vx cfil simpll simplr wb fclstopon ad2antll simprl fclsss1 syl3anc simprr
      mpbid sseldd expr ssrdv ralrimivw simpllr ssid eleq2 sseq1 anbi12d rspcev
      toponmax mpanr2 3syl sseq2 anbi2d rexbidv imbi12d syl5ibrcom cin cdif cpw
      crab simplll simprrr supnfcls syl difssd toponss syl2anc simprrl pssdifn0
      ex supfil fclsopn biantrurd bitr4d oveq2 sseq12d rspcv sylc sseld sylbird
      rexanali rexnal elrab simprbi sslin necon1bd inssdif0 syl6ibr sylan df-ss
      mtod ssn0 sylib sseq1d biimpd syl9r syl5 rexlimdv syl5bir anim2d reximdva
      mpd anassrs exp32 pm2.61dne ralrimiv ctop topontop eltop2 mpbird impbida
      ) BDUAUBZHZCYHHZIZBCJZCAKZLMZBYMLMZJZADUDUBZNZYKYLIZYPAYQYSUCYNYOYKYLUCKZ
      YNHZYTYOHYKYLUUAIZIZYNYOYTUUCYIYMYQHZYLYPYIYJUUBUEUUCYJUUDYIYJUUBUFUUAYJU
      UDUGYKYLYTYMCDUHUIUNYKYLUUAUJYMBCDUKULYKYLUUAUMUOUPUQURYKYRIZUCBCUUEYTBHZ
      YTCHZUUEUUFIZUUGEKZFKZHZUUJYTJZIZFCOZEYTNZUUHUUNEYTUUHUUIYTHZUUNPZYTDUUHU
      UQYTDQZUUIDHZUUKUUJDJZIZFCOZPZUUHYJDCHZUVCYIYJYRUUFUSZDCVEUVDUUSUVBUVDUUS
      DDJZUVBDUTUVAUUSUVFIFDCUUJDQUUKUUSUUTUVFUUJDUUIVAUUJDDVBVCVDVFWFVGUURUUPU
      USUUNUVBYTDUUIVAUURUUMUVAFCUURUULUUTUUKYTDUUJVHVIVJVKVLUUHYTDRZUUPUUNUUEU
      UFUVGUUPIZUUNUUEUUFUVHIZIZUUKUUJGKZVMZSRZGDYTVNZUUIJZEDVOZVPZNZPFCNZTZUUN
      UVJUVSUUIBUVQLMZHZUVJYIUUFUUPUWBTYIYJYRUVIVQZUUEUUFUVHUJZUUEUUFUVGUUPVRZE
      UUIYTBDVSULUVJUVSUUICUVQLMZHZUWBUVJUWGUUSUVSIZUVSUVJYJUVQYQHZUWGUWHUGYIYJ
      YRUVIUSZUVJDBHZUVNDJUVNSRZUWIUVJYIUWKUWCDBVEVTUVJDYTWAUVJYTDJZUVGUWLUVJYI
      UUFUWMUWCUWDYTBDWBWCZUUEUUFUVGUUPWDYTDWEWCEDUVNBWGULZUUIFUVQCDGWHWCUVJUUS
      UVSUVJYTDUUIUWNUWEUOWIWJUVJUWFUWAUUIUVJUWIYRUWFUWAJZUWOYKYRUVIUFYPUWPAUVQ
      YQYMUVQQYNUWFYOUWAYMUVQCLWKYMUVQBLWKWLWMWNWOWPXGUVTUUKUVRTZIZFCOUVJUUNUUK
      UVRFCWQUVJUWRUUMFCUVJUUJCHZIZUWQUULUUKUWQUVMTZGUVQOUWTUULUVMGUVQWRUWTUXAU
      ULGUVQUVKUVQHZUUJUVNVMZUVLJZUWTUXAUULPUXBUVNUVKJZUXDUXBUVKUVPHUXEUVOUXEEU
      VKUVPUUIUVKUVNVHWSWTUVNUVKUUJXAVTUXDUXAUUJDVMZYTJZUWTUULUXDUXAUXCSQUXGUXD
      UVMUXCSUXDUXCSRUVMUXCUVLXHWFXBUUJDYTXCXDUWTUXGUULUWTUXFUUJYTUWTUUTUXFUUJQ
      UVJYJUWSUUTUWJUUJCDWBXEUUJDXFXIXJXKXLXMXNXOXPXQXOXRXSXTYAYBUUHYJCYCHUUGUU
      OUGUVEDCYDEFYTCYEVGYFWFUQYG $.
  $}

  ${
    $d a x F $.  $d a x J $.
    $( A limit point is a cluster point.  (Contributed by Jeff Hankins,
       12-Nov-2009.)  (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    flimfcls $p |- ( J fLim F ) C_ ( J fClus F ) $=
      ( va vx cflim cfcls wcel ctop cuni cfil cfv ccl wral flimtop eqid flimfil
      co cv flimclsi sseld com12 ralrimiv isfcls syl3anbrc ssriv ) CBAEQZBAFQZC
      RZUFGZBHGABIZJKGUHDRZBLKKZGZDAMUHUGGUHABNUHABUJUJOZPUIUMDAUKAGZUIUMUOUFUL
      UHUKABSTUAUBUHABUJDUNUCUDUE $.
  $}

  ${
    $d g o x y z A $.  $d g o x y z F $.  $d g o x y z J $.  $d g o x y z X $.
    $( A filter clusters at a point iff a finer filter converges to it.
       (Contributed by Jeff Hankins, 12-Nov-2009.)  (Revised by Mario Carneiro,
       26-Aug-2015.) $)
    fclsfnflim $p |- ( F e. ( Fil ` X ) -> ( A e. ( J fClus F ) <->
          E. g e. ( Fil ` X ) ( F C_ g /\ A e. ( J fLim g ) ) ) ) $=
      ( vx vy cfv wcel co cv wss cflim wa c0 wne adantr syl wb cvv cfil csn cun
      cfcls wrex cnei cfi cfg cfbas wn filsspw cuni ctop fclstop adantl neisspw
      cpw eqid filunibas wceq fclsfil sylan9req pweqd sseqtr4d unssd ssun1 ssn0
      filn0 sylancr cin wral incom fclsneii syl5eqner 3com23 adantll ralrimivva
      w3a 3expb filfbas ctopon istopon sylanbrc fclselbas eleqtrrd snssd neifil
      snnzg syl3anc fbunfip syl2anc mpbird filtop fsubbas mpbir3and unexg mpan2
      fgcl fvex ssfii unssad sstrd unssbd elflim mpbir2and sseq2 eleq2d anbi12d
      ssfg oveq2 rspcev syl12anc simprl simprrr flimtopon simpl simprrl fclsss2
      ex flimfcls sseldi sseldd rexlimdvaa impbid ) CEUAHZIZADCUDJZIZCBKZLZADYI
      MJZIZNZBYEUEZYFYHYNYFYHNZECAUBZDUFHZHZUCZUGHZUHJZYEIZCUUALZADUUAMJZIZYNYO
      YTEUIHZIZUUBYOUUGYSEUQZLZYSOPZOYTIUJZYOCYRUUHYFCUUHLYHCEUKQYOYRDULZUQZUUH
      YODUMIZYRUUMLYHUUNYFACDUNUOZYPDUULUULURZUPRYOEUULYFYHECULZUULCEUSYHCUULUA
      HIUUQUULUTACDUULUUPVACUULUSRVBZVCVDVEYFUUJYHYFCYSLCOPUUJCYRVFCEVHCYSVGVIQ
      YOUUKFKZGKZVJZOPZGYRVKFCVKZYOUVBFGCYRYHUUSCIZUUTYRIZNUVBYFYHUVDUVEUVBYHUV
      EUVDUVBYHUVEUVDVRUVAUUTUUSVJOUUTUUSVLAUUSCDUUTVMVNVOVSVPVQYOCUUFIZYRUUFIZ
      UUKUVCSYFUVFYHCEVTQYOYRYEIZUVGYODEWAHIZYPELYPOPZUVHYOUUNEUULUTUVIUUOUURED
      WBWCZYOAEYOAUULEYHAUULIYFACDUULUUPWDUOUURWEZWFYHUVJYFAYGWHUOYPDEWGWIYREVT
      RFGCYREEWJWKWLYFUUGUUIUUJUUKVRSZYHYFECIUVMCEWMYSCEWNRQWOZYTEWRRZYOCYTUUAY
      OCYRYTYFYSYTLZYHYFYSTIZUVPYFYRTIUVQYPYQWSCYRYETWPWQYSTWTRQZXAYOUUGYTUUALU
      VNYTEXIRZXBYOUUEAEIZYRUUALZUVLYOYRYTUUAYOCYRYTUVRXCUVSXBYOUVIUUBUUEUVTUWA
      NSUVKUVOAUUADEXDWKXEYMUUCUUENBUUAYEYIUUAUTZYJUUCYLUUEYIUUACXFUWBYKUUDAYIU
      UADMXJXGXHXKXLXSYFYMYHBYEYFYIYEIZYMNZNZDYIUDJZYGAUWEUVIYFYJUWFYGLUWEUVIUW
      CYFUWCYMXMUWEYLUVIUWCSYFUWCYJYLXNZAYIDEXORWLYFUWDXPYFUWCYJYLXQCYIDEXRWIUW
      EYKUWFAYIDXTUWGYAYBYCYD $.

    flimfnfcls.x $e |- X = U. J $.
    $( A filter converges to a point iff every finer filter clusters there.
       Along with ~ fclsfnflim , this theorem illustrates the duality between
       convergence and clustering.  (Contributed by Jeff Hankins, 12-Nov-2009.)
       (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    flimfnfcls $p |- ( F e. ( Fil ` X ) -> ( A e. ( J fLim F ) <->
          A. g e. ( Fil ` X ) ( F C_ g -> A e. ( J fClus g ) ) ) ) $=
      ( vx wcel co cv wss cfcls wi wa wceq syl c0 wne cvv syl2anc vo vy vz cfil
      cfv cflim wral flimfcls ctopon ctop flimtop toptopon sylib ad2antrr simpr
      simplr flimss2 syl3anc simpll sseldd sseldi ralrimiva sseq2 oveq2 imbi12d
      ex eleq2d rspcv ssid id mpi fclstop fclselbas jca syl6 wn cin disjdif cpw
      cdif crab cun cfi cfg simplrl topopn pwexg 3syl unexg ssfii cfbas filsspw
      rabexg ssrab2 a1i unssd ssun2 difss wb elpw2g elrab sylanbrc ne0i simprbi
      mpbiri ad2antll sslin simprrr adantr inssdif0 simplll simprl df-ss sseq1d
      filelss elssuni syl6sseqr ad2antrl filss syl13anc sylbid syl5bir necon3bd
      cuni mpd ssn0 ralrimivva filfbas filtop eleq1 syl5ibrcom pssdifn0 fbunfip
      supfil mpbird w3a fsubbas mpbir3and ssfg com23 sstrd unssad fgcl fclsopni
      mpid simprrl syld necon2bd anassrs expr con4d simprr jctild simpl flimopn
      ralrimdva sylibrd mpdd impbid2 ) CEUDUEZHZADCUFIZHZCBJZKZADUVDLIZHZMZBUUT
      UGZUVCUVHBUUTUVCUVDUUTHZNZUVEUVGUVKUVENZDUVDUFIZUVFAUVDDUHUVLUVBUVMAUVLDE
      UIUEHZUVJUVEUVBUVMKUVCUVNUVJUVEUVCDUJHZUVNACDUKDEFULZUMUNUVCUVJUVEUPUVKUV
      EUOUVDCDEUQURUVCUVJUVEUSUTVAVFVBUVAUVIUVOAEHZNZUVCUVAUVICCKZADCLIZHZMZUVR
      UVHUWBBCUUTUVDCOZUVEUVSUVGUWAUVDCCVCUWCUVFUVTAUVDCDLVDVGVEVHUWBUWAUVRUWBU
      VSUWACVIUWBVJVKUWAUVOUVQACDVLACDEFVMVNPVOUVAUVRUVIUVCUVAUVRUVIUVCMUVAUVRN
      ZUVIUVQAUAJZHZUWECHZMZUADUGZNZUVCUWDUVIUWIUVQUWDUVIUWHUADUWDUWEDHZNZUWFUV
      IUWGUWLUWFUVIUWGMUWLUWFNUWGUVIUWLUWFUWGVPZUVIVPZUWDUWKUWFUWMNZUWNUWDUWKUW
      ONZNZUWEEUWEVTZVQZQOUWNUWEEVRUWQUVIUWSQUWQUVIADECUWRGJZKZGEVSZWAZWBZWCUEZ
      WDIZLIZHZUWSQRZUWQUVICUXFKZUXHUWQCUXCUXFUWQUXDUXEUXFUWQUXDSHZUXDUXEKUWQUV
      AUXCSHZUXKUVAUVRUWPUSZUWQEDHZUXBSHUXLUWQUVOUXNUVAUVOUVQUWPWEDEFWFPZEDWGUX
      AGUXBSWMWHCUXCUUTSWITUXDSWJPUWQUXEEWKUEZHZUXEUXFKUWQUXQUXDUXBKZUXDQRZQUXE
      HVPZUVAUXRUVRUWPUVACUXCUXBCEWLUXCUXBKUVAUXAGUXBWNWOWPUNUWQUWRUXDHUXSUWQUX
      CUXDUWRUXCCWQUWQUWRUXBHZUWRUWRKZUWRUXCHUWQUYAUWREKZEUWEWRZUWQUXNUYAUYCWSU
      XOUWREDWTPXEUYBUWQUWRVIWOUXAUYBGUWRUXBUWTUWRUWRVCXAXBVAZUXDUWRXCPUWQUXTUB
      JZUCJZVQZQRZUCUXCUGUBCUGZUWQUYIUBUCCUXCUWQUYFCHZUYGUXCHZNZNZUYFUWRVQZUYHK
      ZUYOQRZUYIUYNUWRUYGKZUYPUYLUYRUWQUYKUYLUYGUXBHUYRUXAUYRGUYGUXBUWTUYGUWRVC
      XAXDXFUWRUYGUYFXGPUYNUWMUYQUWQUWMUYMUWDUWKUWFUWMXHZXIUYNUWGUYOQUYOQOUYFEV
      QZUWEKZUYNUWGUYFEUWEXJUYNVUAUYFUWEKZUWGUYNUYTUYFUWEUYNUYFEKZUYTUYFOUYNUVA
      UYKVUCUVAUVRUWPUYMXKUWQUYKUYLXLUYFCEXOTUYFEXMUMXNUYNVUBUWGUYNVUBNUVAUYKUW
      EEKZVUBUWGUWQUVAUYMVUBUXMUNUWQUYKUYLVUBWEUWQVUDUYMVUBUWKVUDUWDUWOUWKUWEDY
      DEUWEDXPFXQXRZUNUYNVUBUOUYFUWECEXSXTVFYAYBYCYEUYOUYHYFTYGUWQCUXPHZUXCUXPH
      ZUXTUYJWSUWQUVAVUFUXMCEYHPUWQUXCUUTHZVUGUWQUXNUYCUWRQRZVUHUXOUYCUWQUYDWOU
      WQVUDUWEERZVUIVUEUWQUWMVUJUYSUWQUWGUWEEUWQUWGUWEEOECHZUWQUVAVUKUXMCEYIPZU
      WEECYJYKYCYEUWEEYLTGEUWRDYNURUXCEYHPUBUCCUXCEEYMTYOUWQVUKUXQUXRUXSUXTYPWS
      VULUXDCEYQPYRZUXEEYSPUUAZUUBUWQUXFUUTHZUVIUXJUXHMZMUWQUXQVUOVUMUXEEUUCPUV
      HVUPBUXFUUTUVDUXFOZUVEUXJUVGUXHUVDUXFCVCVUQUVFUXGAUVDUXFDLVDVGVEVHPUUEUWQ
      UXHUXIUWQUXHNUXHUWKUWFUWRUXFHZUXIUWQUXHUOUWDUWKUWOUXHWEUWQUWFUXHUWDUWKUWF
      UWMUUFXIUWQVURUXHUWQUXDUXFUWRVUNUYEUTXIAUWRUWEUXFDUUDXTVFUUGUUHVKUUIUUJUU
      KVFYTUUPUVAUVOUVQUULUUMUWDUVNUVAUVCUWJWSUWDUVOUVNUVAUVOUVQXLUVPUMUVAUVRUU
      NUAACDEUUOTUUQVFYTUURUUS $.

    $( Forward direction of ~ fclscmp .  Every filter clusters in a compact
       space.  (Contributed by Mario Carneiro, 11-Apr-2015.)  (Revised by
       Stefan O'Rear, 8-Aug-2015.) $)
    fclscmpi $p |- ( ( J e. Comp /\ F e. ( Fil ` X ) ) ->
        ( J fClus F ) =/= (/) ) $=
      ( vx wcel cfv wa c0 wceq eqid syl6eq wss cfi wn adantr syl syl2anc fmptd
      wf ccmp cfil cfcls ccl cmpt crn cint ciin ctop cmptop cif fclsval iftruei
      co cv sylan fvex dfiin3 wne simpl filelss adantll clscld frn simpr clsss3
      sscls filss syl13anc filfi sseqtrd 0nelfil ssneldd cmpfii syl3anc eqnetrd
      ccld fiss ) BUAFZACUBGZFZHZBAUCUNZEAEUOZBUDGZGZUEZUFZUGZIWBWCEAWFUHZWIVSB
      UIFZWAWCWJJBUJZWKWAHWCCCJZWJIUKWJEABCCDULWMWJICKUMLUPEAWFWDWEUQURLWBVSWHB
      VQGZMZIWHNGZFOWIIUSVSWAUTZWBAWNWGTWOWBEAWFWNWGWBWDAFZHZWKWDCMZWFWNFWSVSWK
      WBVSWRWQPWLQZWAWRWTVSWDACVAVBZWDBCDVCRWGKZSAWNWGVDQWBWPAIWBWPANGZAWBWAWHA
      MZWPXDMVSWAVEZWBAAWGTXEWBEAWFAWGWSWAWRWFCMZWDWFMZWFAFWBWAWRXFPWBWRVEWSWKW
      TXGXAXBWDBCDVFRWSWKWTXHXAXBWDBCDVGRWDWFACVHVIXCSAAWGVDQWHAVTVRRWBWAXDAJXF
      ACVJQVKWBWAIAFOXFACVLQVMBWHVNVOVP $.
  $}

  ${
    $d n o x A $.  $d f g j n o s x y J $.  $d f g j n o s x L $.  $d n s N $.
    $d f g n o s x F $.  $d f g j n o s x y X $.  $d f g j n o s x Y $.
    $d s S $.
    $( A space is compact iff every filter clusters.  (Contributed by Jeff
       Hankins, 20-Nov-2009.)  (Revised by Stefan O'Rear, 8-Aug-2015.) $)
    fclscmp $p |- ( J e. ( TopOn ` X ) -> ( J e. Comp <->
          A. f e. ( Fil ` X ) ( J fClus f ) =/= (/) ) ) $=
      ( vx vy cfv wcel cv cfcls co c0 wne cfil wral wi wa wss wceq cvv syl ccmp
      ctopon cuni eqid fclscmpi ralrimiva toponuni fveq2d raleqdv cfi cint ccld
      syl5ibr wn cpw elpwi vn0 inteqd int0 syl6eq neeq1d mpbiri a1d cfg ccl vex
      simpr ssfii ax-mp cfbas simplrl cldss2 ad2antrr pweqd syl5sseqr sstrd w3a
      simplrr wb toponmax fsubbas mpbir3and ssfg syl5ss sselda fclssscls cldcls
      sseqtrd ssint sylibr fgcl oveq2 rspcv 3syl syl6an pm2.61dane sylan2 com23
      ssn0 expr ralrimdva ctop topontop cmpfi sylibrd impbid ) BCUBFGZBUAGZBAHZ
      IJZKLZACMFZNZXHXMXGXKABUCZMFZNXHXKAXOXIBXNXNUDZUEUFXGXKAXLXOXGCXNMCBUGZUH
      UIUMXGXMKDHZUJFZGUNZXRUKZKLZOZDBULFZUOZNZXHXGXMYCDYEXGXRYEGZPXTXMYBYGXGXR
      YDQZXTXMYBOZOXRYDUPXGYHXTYIXGYHXTPZPZYIXRKYKXRKRZPZYBXMYMYBSKLUQYMYASKYMY
      AKUKSYMXRKYKYLVGURUSUTVAVBVCYKXRKLZPZBCXSVDJZIJZYAQZXMYQKLZYBYOYQEHZQZEXR
      NYRYOUUAEXRYOYTXRGPZYQYTBVEFFZYTUUBYTYPGYQUUCQYOXRYPYTYOXRXSYPXRSGXRXSQDV
      FXRSVHVIYOXSCVJFGZXSYPQYOUUDXRCUOZQZYNXTYOXRYDUUEXGYHXTYNVKZYOXNUOYDUUEBX
      NXPVLYOCXNXGCXNRYJYNXQVMVNVOVPYKYNVGXGYHXTYNVRYOCBGZUUDUUFYNXTVQVSXGUUHYJ
      YNCBVTVMXRBCWATWBZXSCWCTWDWEYTYPBWFTUUBYTYDGUUCYTRYOXRYDYTUUGWEYTBWGTWHUF
      EYQXRWIWJYOUUDYPXLGXMYSOUUIXSCWKXKYSAYPXLXIYPRXJYQKXIYPBIWLVAWMWNYQYAWSWO
      WPWTWQWRXAXGBXBGXHYFVSCBXCDBXDTXEXF $.

    $( The cluster points of an ultrafilter are its limit points.  (Contributed
       by Jeff Hankins, 11-Dec-2009.)  (Revised by Mario Carneiro,
       26-Aug-2015.) $)
    uffclsflim $p |- ( F e. ( UFil ` X ) -> ( J fClus F ) = ( J fLim F ) ) $=
      ( vx vf cufil cfv wcel cfcls co cflim cv wss cfil wrex ufilfil fclsfnflim
      wa wb syl biimpa simprrr simpll simprl simprrl ufilmax eleqtrrd rexlimddv
      wceq syl3anc oveq2d ex ssrdv flimfcls a1i eqssd ) ACFGHZBAIJZBAKJZUQDURUS
      UQDLZURHZUTUSHZUQVARZAELZMZUTBVDKJZHZRZVBECNGZUQVAVHEVIOZUQAVIHVAVJSACPUT
      EABCQTUAVCVDVIHZVHRZRZUTVFUSVCVKVEVGUBVMAVDBKVMUQVKVEAVDUIUQVAVLUCVCVKVHU
      DVCVKVEVGUEAVDCUFUJUKUGUHULUMUSURMUQABUNUOUP $.

    $( A space is compact iff every ultrafilter converges.  (Contributed by
       Jeff Hankins, 11-Dec-2009.)  (Proof shortened by Mario Carneiro,
       12-Apr-2015.)  (Revised by Mario Carneiro, 26-Aug-2015.) $)
    ufilcmp $p |- ( ( X e. UFL /\ J e. ( TopOn ` X ) ) -> ( J e. Comp <->
        A. f e. ( UFil ` X ) ( J fLim f ) =/= (/) ) ) $=
      ( vg cufl wcel cfv wa cv cfcls co c0 wne cufil wral cfil adantl wss wrex
      wb ctopon ccmp cflim cuni ufilfil eqid fclscmpi sylan2 ralrimiva toponuni
      fveq2d raleqdv syl5ibr ufli adantlr r19.29 simpllr simplr fclsss2 syl3anc
      wi simprr ssn0 ex expr com23 impd rexlimdva syl5 mpan2d ralrimdva fclscmp
      syl sylibrd impbid uffclsflim neeq1d ralbiia syl6bb ) CEFZBCUAGFZHZBUBFZB
      AIZJKZLMZACNGZOZBWDUCKZLMZAWGOWBWCWHWCWHWBWFABUDZNGZOZWCWFAWLWDWLFWCWDWKP
      GFWFWDWKUEWDBWKWKUFUGUHUIWAWHWMTVTWAWFAWGWLWACWKNCBUJUKULQUMWBWHBDIZJKZLM
      ZDCPGZOZWCWBWHWPDWQWBWNWQFZHZWHWNWDRZAWGSZWPVTWSXBWAAWNCUNUOWHXBHWFXAHZAW
      GSWTWPWFXAAWGUPWTXCWPAWGWTWDWGFZHZWFXAWPXEXAWFWPWTXDXAWFWPVAZWTXDXAHZHZWE
      WORZXFXHWAWSXAXIVTWAWSXGUQWBWSXGURWTXDXAVBWNWDBCUSUTXIWFWPWEWOVCVDVMVEVFV
      GVHVIVJVKWAWCWRTVTDBCVLQVNVOWFWJAWGXDWEWILWDBCVPVQVRVS $.

    $( The set of cluster points of a function.  (Contributed by Jeff Hankins,
       24-Nov-2009.)  (Revised by Stefan O'Rear, 9-Aug-2015.) $)
    fcfval $p |- ( ( J e. ( TopOn ` X ) /\ L e. ( Fil ` Y ) /\ F : Y --> X ) ->
        ( ( J fClusf L ) ` F ) = ( J fClus ( ( X FilMap F ) ` L ) ) ) $=
      ( vg vj vf cfv wcel cfil cv cfm co cfcls cmap cfcf wceq wa cuni ctopon wf
      w3a cvv cmpt ctop crn cmpt2 df-fcf simprl unieqd toponuni ad2antrr eqtr4d
      a1i unieq ad2antll filunibas ad2antlr eqtrd oveq12d oveq1d simprr fveq12d
      mpteq12dv topontop adantr fvssunirn sseli adantl ovex mptex ovmpt2d simpr
      3adant3 oveq2d fveq1d toponmax filtop elmapg syl2an biimp3ar ovexd fvmptd
      wb ) BDUAIJZCEKIZJZEDAUBZUCZFABCDFLZMNZIZONZBCDAMNZIZONDEPNZBCQNZUDWFWHWR
      FWQWNUEZRWIWFWHSZGHBCUFKUGTZFGLZTZHLZTZPNZXBXDXCWKMNZIZONZUEZWSQUDQGHUFXA
      XJUHRWTHFGUIUOWTXBBRZXDCRZSZSZFXFXIWQWNXNXCDXEEPXNXCBTZDXNXBBWTXKXLUJZUKW
      FDXORWHXMDBULUMUNZXNXECTZEXLXEXRRWTXKXDCUPUQWHXRERWFXMCEURUSUTVAXNXBBXHWM
      OXPXNXDCXGWLXNXCDWKMXQVBWTXKXLVCVDVAVEWFBUFJWHDBVFVGWHCXAJWFWGXACKEVHVIVJ
      WSUDJWTFWQWNDEPVKVLUOVMVOWJWKARZSZWMWPBOXTCWLWOXTWKADMWJXSVNVPVQVPWFWHAWQ
      JZWIWFDBJECJYAWIWEWHDBVRCEVSDEABCVTWAWBWJBWPOWCWD $.

    $( The property of being a cluster point of a function.  (Contributed by
       Jeff Hankins, 24-Nov-2009.)  (Revised by Stefan O'Rear, 9-Aug-2015.) $)
    isfcf $p |- ( ( J e. ( TopOn ` X ) /\ L e. ( Fil ` Y ) /\ F : Y --> X ) ->
        ( A e. ( ( J fClusf L ) ` F ) <-> ( A e. X /\
        A. o e. J ( A e. o -> A. s e. L ( o i^i ( F " s ) ) =/= (/) ) ) ) ) $=
      ( vx cfv wcel cfil co cv c0 wral wi wa syl wss ctopon wf w3a cfcf cfm cin
      cfcls wne cima fcfval eleq2d wb simp1 cfbas toponmax filfbas fmfil syl3an
      id fclsopn syl2anc simpll1 simpll2 simpll3 wceq simpl2 fgfil biimpar eqid
      cfg imaelfm syl31anc ineq2 neeq1d rspcv ralrimdva adantr simplbda r19.29r
      wrex elfm sslin ssn0 sylan rexlimivw impbid imbi2d ralbidva anbi2d 3bitrd
      ex ) DFUAJKZEGLJKZGFCUBZUCZACDEUDMJZKADEFCUEMJZUGMZKZAFKZABNZKZXAINZUFZOU
      HZIWQPZQZBDPZRZWTXBXACHNZUIZUFZOUHZHEPZQZBDPZRWOWPWRACDEFGUJUKWOWLWQFLJKZ
      WSXIULWLWMWNUMWLFDKZWMEGUNJKZWNWNXQFDUOZEGUPZWNUSZDECFGUQURABWQDFIUTVAWOX
      HXPWTWOXGXOBDWOXADKZRZXFXNXBYDXFXNYDXFXMHEYDXJEKZRZXKWQKZXFXMQYFXRXSWNXJG
      EVJMZKZYGYFWLXRWLWMWNYCYEVBXTSYFWMXSWLWMWNYCYEVCYASWLWMWNYCYEVDYDYIYEYDYH
      EXJYDWMYHEVEWLWMWNYCVFEGVGSUKVHDEXJCYHFGYHVIVKVLXEXMIXKWQXCXKVEXDXLOXCXKX
      AVMVNVOSVPYDXNXEIWQYDXCWQKZRXKXCTZHEVTZXNXEQYDYJXCFTZYLWOYJYMYLRULZYCWLXR
      WMXSWNWNYNXTYAYBHXCEDCFGWAURVQVRYLXNXEYLXNRYKXMRZHEVTXEYKXMHEVSYOXEHEYKXL
      XDTXMXEXKXCXAWBXLXDWCWDWESWKSVPWFWGWHWIWJ $.

    $( The property of being a cluster point of a function in terms of
       neighborhoods.  (Contributed by Jeff Hankins, 26-Nov-2009.)  (Revised by
       Stefan O'Rear, 9-Aug-2015.) $)
    fcfnei $p |- ( ( J e. ( TopOn ` X ) /\ L e. ( Fil ` Y ) /\ F : Y --> X ) ->
      ( A e. ( ( J fClusf L ) ` F ) <-> ( A e. X /\ A. n e.
        ( ( nei ` J ) ` { A } ) A. s e. L ( n i^i ( F " s ) ) =/= (/) ) ) ) $=
      ( vo cfv wcel cv cin c0 wne wral wi wa wss syl ctopon cfil wf w3a cfcf co
      cima csn cnei isfcf ctop cuni simpll1 topontop simpr neii1 syl2anc ntrss2
      cnt eqid wb simplr wceq toponuni eleqtrd snssd neiint syl3anc mpbid snssg
      mpbird ntropn eleq2 ineq1 neeq1d ralbidv imbi12d rspcv mpid ssrin ssn0 ex
      ralimdv sylsyld ralrimdva simpl1 opnneip 3expb sylan expr impbid pm5.32da
      com23 bitrd ) DFUAJKZEGUBJKZGFCUCZUDZACDEUEUFJKAFKZAILZKZWTCHLUGZMZNOZHEP
      ZQZIDPZRWSBLZXBMZNOZHEPZBAUHZDUIJJZPZRAICDEFGHUJWRWSXGXNWRWSRZXGXNXOXGXKB
      XMXOXHXMKZRZXHDUSJJZXHSZXGXRXBMZNOZHEPZXKXQDUKKZXHDULZSZXSXQWOYCWOWPWQWSX
      PUMZFDUNZTZXQYCXPYEYHXOXPUOZXLDXHYDYDUTZUPUQZXHDYDYJURUQXQXGAXRKZYBXQYLXL
      XRSZXQXPYMYIXQYCXLYDSYEXPYMVAYHXQAYDXQAFYDWRWSXPVBZXQWOFYDVCYFFDVDTVEVFYK
      XLDXHYDYJVGVHVIXQWSYLYMVAYNAXRFVJTVKXQXRDKZXGYLYBQZQXQYCYEYOYHYKXHDYDYJVL
      UQXFYPIXRDWTXRVCZXAYLXEYBWTXRAVMYQXDYAHEYQXCXTNWTXRXBVNVOVPVQVRTVSXSYAXJH
      EXSXTXISZYAXJQXRXHXBVTYRYAXJXTXIWAWBTWCWDWEXOXNXFIDXOWTDKZRXAXNXEXOYSXAXN
      XEQZXOYSXARZRWTXMKZYTXOYCUUAUUBXOWOYCWOWPWQWSWFYGTYCYSXAUUBADWTWGWHWIXKXE
      BWTXMXHWTVCZXJXDHEUUCXIXCNXHWTXBVNVOVPVRTWJWMWEWKWLWN $.

    $( A cluster point of a function is in the base set of the topology.
       (Contributed by Jeff Hankins, 26-Nov-2009.)  (Revised by Stefan O'Rear,
       9-Aug-2015.) $)
    fcfelbas $p |- ( ( ( J e. ( TopOn ` X ) /\ L e. ( Fil ` Y ) /\
        F : Y --> X ) /\ A e. ( ( J fClusf L ) ` F ) ) -> A e. X ) $=
      ( ctopon cfv wcel cfil wf w3a cfcf co wa cuni cfm cfcls fcfval eleq2d imp
      eqid fclselbas syl6bi wceq simpl1 toponuni syl eleqtrrd ) CEGHIZDFJHIZFEB
      KZLZABCDMNHZIZOZACPZEUMUOAUQIZUMUOACDEBQNHZRNZIURUMUNUTABCDEFSTAUSCUQUQUB
      UCUDUAUPUJEUQUEUJUKULUOUFECUGUHUI $.

    $( A neighborhood of a cluster point of a function contains a function
       value from every tail.  (Contributed by Jeff Hankins, 27-Nov-2009.)
       (Revised by Stefan O'Rear, 9-Aug-2015.) $)
    fcfneii $p |- ( ( ( J e. ( TopOn ` X ) /\ L e. ( Fil ` Y ) /\
       F : Y --> X ) /\
    ( A e. ( ( J fClusf L ) ` F ) /\ N e. ( ( nei ` J ) ` { A } ) /\ S e. L ) )
      -> ( N i^i ( F " S ) ) =/= (/) ) $=
      ( vn vs cfv wcel cima cin c0 wne cv wral wi wceq ctopon cfil w3a cfcf csn
      wf co cnei wa fcfnei ineq1 neeq1d imaeq2 ineq2d rspc2v com3r adantl 3imp2
      ex syl6bi ) DGUAKLEHUBKLHGCUFUCZACDEUDUGKLZFAUEDUHKKZLZBELZFCBMZNZOPZVAVB
      AGLZIQZCJQZMZNZOPZJERIVCRZUIVDVEVHSSZAICDEGHJUJVOVPVIVDVEVOVHVDVEVOVHSVNV
      HFVLNZOPIJFBVCEVJFTVMVQOVJFVLUKULVKBTZVQVGOVRVLVFFVKBCUMUNULUOUSUPUQUTUR
      $.

    $( A limit point of a function is a cluster point of the function.
       (Contributed by Jeff Hankins, 28-Nov-2009.)  (Revised by Stefan O'Rear,
       9-Aug-2015.) $)
    flfssfcf $p |- ( ( J e. ( TopOn ` X ) /\ L e. ( Fil ` Y ) /\ F : Y --> X )
      -> ( ( J fLimf L ) ` F ) C_ ( ( J fClusf L ) ` F ) ) $=
      ( ctopon cfv wcel cfil wf w3a cfm cflim cfcls cflf cfcf wss flimfcls a1i
      co flfval fcfval 3sstr4d ) BDFGHCEIGHEDAJKZBCDALTGZMTZBUENTZABCOTGABCPTGU
      FUGQUDUEBRSABCDEUAABCDEUBUC $.

    $( If the domain filter is an ultrafilter, the cluster points of the
       function are the limit points.  (Contributed by Jeff Hankins,
       12-Dec-2009.)  (Revised by Stefan O'Rear, 9-Aug-2015.) $)
    uffcfflf $p |- ( ( J e. ( TopOn ` X ) /\ L e. ( UFil ` Y ) /\ F : Y --> X )
      -> ( ( J fClusf L ) ` F ) = ( ( J fLimf L ) ` F ) ) $=
      ( ctopon cfv wcel cufil wf w3a cfm co cfcls cflim cfcf cflf wceq toponmax
      syl3an2 fmufil syl3an1 uffclsflim syl cfil ufilfil fcfval flfval 3eqtr4d
      ) BDFGHZCEIGHZEDAJZKZBCDALMGZNMZBUNOMZABCPMGZABCQMGZUMUNDIGHZUOUPRUJDBHUK
      ULUSDBSBACDEUAUBUNBDUCUDUKUJCEUEGHZULUQUORCEUFZABCDEUGTUKUJUTULURUPRVAABC
      DEUHTUI $.
  $}

  ${
    $d f g h A $.  $d f g h x F $.  $d f g h x J $.  $d f g h x K $.  $d f L $.
    $d f g h x X $.  $d f g h x Y $.
    $( Lemma for ~ cnpfcf .  If a function is continuous at a point, it
       respects clustering there.  (Contributed by Jeff Hankins, 20-Nov-2009.)
       (Revised by Stefan O'Rear, 9-Aug-2015.) $)
    cnpfcfi $p |- ( ( K e. Top /\ A e. ( J fClus L ) /\
      F e. ( ( J CnP K ) ` A ) ) -> ( F ` A ) e. ( ( K fClusf L ) ` F ) ) $=
      ( vf wcel cfcls co cfv wss cfcf cuni cfil eqid syl adantr syl3anc filfbas
      wa ctop ccnp w3a cv cflim wrex simp2 wb fclsfil 3ad2ant2 fclsfnflim mpbid
      cflf ctopon simpl1 toptopon sylib simprl cnpf 3ad2ant3 flfssfcf cfm cfbas
      wf topopn fmfil ad2antrl simprrl fmss syl32anc fclsss2 wceq 3sstr4d sstrd
      fcfval simprrr simpl3 cnpflfi syl2anc sseldd rexlimddv ) DUAGZACEHIGZBACD
      UBIJGZUCZEFUDZKZACWFUEIGZTZABJZBDELIJZGFCMZNJZWEWCWIFWMUFZWBWCWDUGWEEWMGZ
      WCWNUHWCWBWOWDAECWLWLOZUIUJZAFECWLUKPULWEWFWMGZWITZTZBDWFUMIJZWKWJWTXABDW
      FLIJZWKWTDDMZUNJGZWRWLXCBVDZXAXBKWTWBXDWBWCWDWSUOZDXCXCOZUPUQZWEWRWIURZWE
      XEWSWDWBXEWCABCDWLXCWPXGUSUTQZBDWFXCWLVARWTDWFXCBVBIZJZHIZDEXKJZHIZXBWKWT
      XDXNXCNJGZXNXLKZXMXOKXHWTXCDGZEWLVCJZGZXEXPWTWBXRXFDXCXGVEPZWTWOXTWEWOWSW
      QQZEWLSPZXJDEBXCWLVFRWTXRXTWFXSGZXEWGXQYAYCWRYDWEWIWFWLSVGXJWEWRWGWHVHDEW
      FBXCWLVIVJXNXLDXCVKRWTXDWRXEXBXMVLXHXIXJBDWFXCWLVORWTXDWOXEWKXOVLXHYBXJBD
      EXCWLVORVMVNWTWHWDWJXAGWEWRWGWHVPWBWCWDWSVQABCDWFVRVSVTWA $.

    $( A function ` F ` is continuous at point ` A ` iff ` F ` respects cluster
       points there.  (Contributed by Jeff Hankins, 14-Nov-2009.)  (Revised by
       Stefan O'Rear, 9-Aug-2015.) $)
    cnpfcf $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) /\ A e. X ) ->
        ( F e. ( ( J CnP K ) ` A ) <-> ( F : X --> Y /\
            A. f e. ( Fil ` X ) ( A e. ( J fClus f ) ->
              ( F ` A ) e. ( ( K fClusf f ) ` F ) ) ) ) ) $=
      ( vg vh cfv wcel co cfcls wi cfil wral wa wceq syl ad2antrr ctopon w3a wf
      ccnp cv cfcf cnpf2 3adantl3 ctop topontop cnpfcfi 3com23 3expia ralrimivw
      3expa sylan 3ad2antl2 jca ex cflim cflf cfm wss wrex cfbas simplrl simprl
      filfbas simpllr simprr fmfnfm r19.29 simpll1 simprrl sseldd sseldi simplr
      flimfcls flimss2 syl3anc simpll2 fcfval simprrr oveq2d eqtr4d eleq2d expr
      biimpd embantd com23 impd rexlimdva syl5 ralrimdva cuni wb toponmax fmfil
      mpan2d toponuni fveq2d eleqtrd eqid flimfnfcls raleqdv 3bitr4d imdistanda
      flfval sylibrd cnpflf impbid ) DFUAJKZEGUAJKZAFKZUBZCADEUDLJKZFGCUCZADBUE
      ZMLZKZACJZCEXRUFLJZKZNZBFOJZPZQZXOXPYGXOXPQXQYFXLXMXPXQXNXLXMXPXQACDEFGUG
      UOUHXMXLXPYFXNXMXPQYDBYEXMEUIKZXPYDGEUJYHXPXTYCYHXTXPYCACDEXRUKULUMUPUNUQ
      URUSXOYGXQADHUEZUTLZKZYACEYIVALJZKZNZHYEPZQXPXOXQYFYOXOXQQZYFYNHYEYPYIYEK
      ZQYKYFYMYPYQYKYFYMNYPYQYKQZQZYFYIGCVBLZJZIUEZVCZYAEUUBMLZKZNZIGOJZPZYMYSY
      FUUFIUUGYSUUBUUGKZQUUCYFUUEYSUUIUUCYFUUENYSUUIUUCQZQZYFYIXRVCZUUBXRYTJZRZ
      QZBYEVDZUUEUUKYIBCUUBGFUUKYQYIFVEJKZYPYQYKUUJVFYIFVHZSYSUUIUUCVGXOXQYRUUJ
      VIYSUUIUUCVJVKYFUUPQYDUUOQZBYEVDUUKUUEYDUUOBYEVLUUKUUSUUEBYEUUKXRYEKZQZYD
      UUOUUEUVAUUOYDUUEUUKUUTUUOYDUUENUUKUUTUUOQZQZXTYCUUEUVCDXRUTLZXSAXRDVRUVC
      YJUVDAUVCXLUUTUULYJUVDVCYSXLUUJUVBXLXMXNXQYRVMTUUKUUTUUOVGZUUKUUTUULUUNVN
      XRYIDFVSVTYSYKUUJUVBYPYQYKVJTVOVPUVCYCUUEUVCYBUUDYAUVCYBEUUMMLZUUDUVCXMUU
      TXQYBUVFRYSXMUUJUVBXLXMXNXQYRWAZTUVEYSXQUUJUVBXOXQYRVQZTCEXRGFWBVTUVCUUBU
      UMEMUUKUUTUULUUNWCWDWEWFWHWIWGWJWKWLWMWSWGWJWNYSYAEUUAUTLZKZUUFIEWOZOJZPZ
      YMUUHYSUUAUVLKUVJUVMWPYSUUAUUGUVLYSGEKZUUQXQUUAUUGKYSXMUVNUVGGEWQSYSYQUUQ
      YPYQYKVGZUURSUVHEYICGFWRVTYSGUVKOYSXMGUVKRUVGGEWTSXAZXBYAIUUAEUVKUVKXCXDS
      YSYLUVIYAYSXMYQXQYLUVIRUVGUVOUVHCEYIGFXHVTWFYSUUFIUUGUVLUVPXEXFXIWGWJWNXG
      AHCDEFGXJXIXK $.

    $( Continuity of a function in terms of cluster points of a function.
       (Contributed by Jeff Hankins, 28-Nov-2009.)  (Revised by Stefan O'Rear,
       9-Aug-2015.) $)
    cnfcf $p |- ( ( J e. ( TopOn ` X ) /\ K e. ( TopOn ` Y ) ) ->
      ( F e. ( J Cn K ) <-> ( F : X --> Y /\ A. f e. ( Fil ` X )
        A. x e. ( J fClus f ) ( F ` x ) e. ( ( K fClusf f ) ` F ) ) ) ) $=
      ( ctopon cfv wcel wa ccn co wf cv ccnp wral cfcf wi bitrd cfcls wb cnpfcf
      cfil cncnp 3expa adantlr simplr biantrurd bitr4d cuni eqid fclselbas wceq
      ralbidva toponuni ad2antrr eleq2d syl5ibr pm4.71rd imbi1d impexp ralbidv2
      syl6bb ralbidv ralcom syl6rbbr pm5.32da ) DFHIJZEGHIJZKZCDELMJFGCNZCAOZDE
      PMIJZAFQZKVLVMCICEBOZRMIJZADVPUAMZQZBFUDIZQZKACDEFGUEVKVLVOWAVKVLKZVOVMVR
      JZVQSZBVTQZAFQZWAWBVNWEAFWBVMFJZKZVNVLWEKZWEVKWGVNWIUBZVLVIVJWGWJVMBCDEFG
      UCUFUGWHVLWEVKVLWGUHUIUJUOWBWAWDAFQZBVTQWFWBVSWKBVTWBVQWDAVRFWBWDWGWCKZVQ
      SWGWDSWBWCWLVQWBWCWGWCWGWBVMDUKZJVMVPDWMWMULUMWBFWMVMVIFWMUNVJVLFDUPUQURU
      SUTVAWGWCVQVBVDVCVEWDABFVTVFVGTVHT $.
  $}

  ${
    $d A a x $.  $d B a x $.  $d F a x $.  $d J a x $.  $d K a x $.
    $d X a x $.  $d ph a x $.
    flfcntr.c $e |- C = U. J $.
    flfcntr.b $e |- B = U. K $.
    flfcntr.j $e |- ( ph -> J e. Top ) $.
    flfcntr.a $e |- ( ph -> A C_ C ) $.
    ${
      flfcntr.1 $e |- ( ph -> F e. ( ( J |`t A ) Cn K ) ) $.
      flfcntr.y $e |- ( ph -> X e. A ) $.
      $( A continuous function's value is always in the trace of its filter
         limit.  (Contributed by Thierry Arnoux, 30-Aug-2020.) $)
      flfcntr $p |- ( ph ->
        ( F ` X ) e. ( ( K fLimf ( ( ( nei ` J ) ` { X } ) |`t A ) ) ` F ) ) $=
        ( vx va cfv co wcel cflim cv csn cnei crest cflf wral cfil wf wa ctopon
        ccn wb wss ctop toptopon sylib resttopon syl2anc cntop2 syl cnflf mpbid
        simprd ccl sscls sseldd trnei wceq oveq2 fveq1d eleq2d raleqbidv adantl
        syl3anc rspcdv mpd neiflim snssd neitr oveq2d eleqtrd fveq2 eleq1d ) AO
        UAZEQZEGHUBZFUCQQBUDRZUERZQZSZOFBUDRZWGTRZUFZHEQZWISZAWEEGPUAZUERZQZSZO
        WKWPTRZUFZPBUGQZUFZWMABCEUHZXCAEWKGUKRSZXDXCUIZMAWKBUJQSZGCUJQSZXEXFULA
        FDUJQSZBDUMZXGAFUNSZXIKFDIUOUPZLBFDUQURZAGUNSZXHAXEXNMEWKGUSUTGCJUOUPOP
        EWKGBCVAURVBVCAXAWMPWGXBAHBFVDQQZSZWGXBSZABXOHAXKXJBXOUMKLBFDIVEURNVFAX
        IXJHDSXPXQULXLLABDHLNVFBHFDVGVNVBWPWGVHZXAWMULAXRWSWJOWTWLWPWGWKTVIXRWR
        WIWEXREWQWHWPWGGUEVIVJVKVLVMVOVPAWJWOOHWLAHWKWFWKUCQQZTRZWLAXGHBSHXTSXM
        NHWKBVQURAXSWGWKTAXKXJWFBUMXSWGVHKLAHBNVRBWFFDIVSVNVTWAWDHVHZWJWOULAYAW
        EWNWIWDHEWBWCVMVOVP $.
    $}

$(
    @{
      flfcntr2.y @e |- ( ph -> X e. C ) @.
      flfcntr2.k @e |- ( ph -> K e. N-Locally Comp ) @.
      flfcntr2.1 @e |- ( ph -> F : A --> B ) @.
      flfcntr2.2 @e |- ( ph -> C = ( ( cls ` J ) ` A ) ) @.
      @( The trace of the filter of a function has values on the
         closure of the domain's function.  (Contributed by Thierry Arnoux,
         30-Aug-2020.) @)
      flfcntr2 @p |- ( ph ->
        ( ( K fLimf ( ( ( nei ` J ) ` { X } ) |`t A ) ) ` F ) =/= (/) ) @=
        ? @.
    @}
$)
  $}

  ${
    $d x y z B $.  $d f x y z J $.  $d f x y z ph $.  $d f x y z X $.
    $d x y z F $.
    alexsub.1 $e |- ( ph -> X e. UFL ) $.
    alexsub.2 $e |- ( ph -> X = U. B ) $.
    alexsub.3 $e |- ( ph -> J = ( topGen ` ( fi ` B ) ) ) $.
    alexsub.4 $e |- ( ( ph /\ ( x C_ B /\ X = U. x ) ) ->
       E. y e. ( ~P x i^i Fin ) X = U. y ) $.
    ${
      alexsub.5 $e |- ( ph -> F e. ( UFil ` X ) ) $.
      alexsub.6 $e |- ( ph -> ( J fLim F ) = (/) ) $.
      $( Lemma for ~ alexsub .  (Contributed by Mario Carneiro,
         26-Aug-2015.) $)
      alexsublem $p |- -. ph $=
        ( vz wceq wss wa c0 wcel syl cv cuni cdif cpw cfn cin wrex cflim co wel
        wi wral eldif cfi cfv ctg eleq2d anbi1d biimpa adantlr tg2 cfil ufilfil
        wn cufil ad3antrrr cint csn wb cvv elfvexd eqeltrrd uniexb sylibr elfi2
        adantr wne ad2antrr simplrr intss1 adantl simplr sseldd eldifsn simplbi
        ad2antlr ad2antrl elfpw sselda anasss anim1i syl2anc ex mt3d expr ssrdv
        simprbi elfir syl13anc filfi eleqtrd eleq2 imbi12d syl5ibrcom rexlimdva
        elunii eleq1 sylbid imp32 adantrrr elssuni fibas tgtopon ax-mp syl6eqel
        ctopon ctb fiuni eqtrd fveq2d eleqtrrd toponuni simprrr filss rexlimddv
        sseqtr4d ralrimiva imdistanda syl5bi flimopn sylibrd difexg unieq mpdan
        ralrimivw syl6eqr eqnetrd necon3bii sylib ciun sseq0 ssdif0 difss eqssd
        unissi syl5sseqr jctil eqeq2d anbi12d anbi2d pweq ineq1d rexeqdv vtoclg
        sseq1 mpcom uni0 syl6eq neeq2d ciin crn difssd riinn0 sylan cab dfiin2g
        cmpt eqid rnmpt inteqi eldifbd difss2d ufilb mpbid fmptd frn cdm dmmptd
        wf simpr dm0rn0 abrexfi syl5eqel filintn0 disj3 iundif2 iuneq2dv uniiun
        dfss4 syl5eqr neeqtrd filtop fileln0 pm2.61ne neneqd nrexdv pm2.65i ) A
        GCUAZUBZOZCDEUCZUDZUEUFZUGZAUXADPZGUXAUBZOZQZUXDAUXGUXEAGUXFAGUXFUCZROZ
        GUXFPAUXIFEUHUIZPUXKROUXJABUXIUXKABUAZUXISZUXLGSZBCUJZUWRESZUKZCFULZQZU
        XLUXKSZUXMUXNUXLUXFSZVDZQZAUXSUXLGUXFUMAUXNUYBUXRAUXNUYBUXRAUYCQZUXQCFU
        YDUWRFSZUXOUXPUYDUYEUXOQZQZBNUJZNUAZUWRPZQZUXPNDUNUOZUYGUWRUYLUPUOZSZUX
        OQZUYKNUYLUGAUYFUYOUYCAUYFUYOAUYEUYNUXOAFUYMUWRJUQURUSUTNUWRUYLUXLVATUY
        GUYIUYLSZUYKQZQEGVBUOZSZUYIESZUWRGPZUYJUXPAUYSUYCUYFUYQAEGVEUOSZUYSLEGV
        CTZVFUYDUYQUYTUYFUYDUYPUYHUYTUYJUYDUYPUYHUYTUYDUYPUYIUWRVGZOZCDUDUEUFZR
        VHUCZUGZUYHUYTUKZAUYPVUHVIZUYCADVJSZVUJADUBZVJSVUKAGVULVJIAEVEGLVKZVLDV
        MVNZCUYIDVJVOTVPUYDVUEVUICVUGUYDUWRVUGSZQVUIVUEUXLVUDSZVUDESZUKUYDVUOVU
        PVUQUYDVUOVUPQZQZVUDEUNUOZEVUSUYSUWREPUWRRVQZUWRUESZVUDVUTSAUYSUYCVURVU
        CVRZVUSNUWREUYDVURNCUJZUYTUYDVURVVDQZQZUYTUYAAUXNUYBVVEVSVVFUYTVDZUYAVV
        FVVGQZUYHUYIUXASZUYAVVEUYHUYDVVGVVEVUDUYIUXLVVDVUDUYIPVURUYIUWRVTWAVUOV
        UPVVDWBWCWFVVHUYIDSZVVGQVVIVVFVVJVVGUYDVURVVDVVJVUSUWRDUYIVUSUWRVUFSZUW
        RDPZVUOVVKUYDVUPVUOVVKVVAUWRVUFRWDZWEWGZVVKVVLVVBUWRDWHZWETWIWJWKUYIDEU
        MVNUXLUYIUXAXFWLWMWNWOWPVUOVVAUYDVUPVUOVVKVVAVVMWQWGVUSVVKVVBVVNVVKVVLV
        VBVVOWQTUWREUYRWRWSVUSUYSVUTEOVVCEGWTTXAWOVUEUYHVUPUYTVUQUYIVUDUXLXBUYI
        VUDEXGXCXDXEXHXIXJUTUYGVUAUYQUYGUWRFUBZGUYEUWRVVPPUYDUXOUWRFXKWGAGVVPOZ
        UYCUYFAFGXPUOZSZVVQAFUYLUBZXPUOZVVRAFUYMVWAJUYLXQSUYMVWASDXLUYLXMXNXOAG
        VVTXPAGVULVVTIAVUKVULVVTOVUNDVJXRTXSXTYAZGFYBTVRYFVPUYGUYPUYHUYJYCUYIUW
        REGYDWSYEWOYGWOYHYIAVVSUYSUXTUXSVIVWBVUCCUXLEFGYJWLYKWPMUXIUXKUUAWLGUXF
        UUBVNAVULUXFGUXADDEUUCZUUEIUUFUUDVWCUUGUXAVJSZAUXHQZUXDAVWDUXHAVUKVWDVU
        NDEVJYLTVPAUXLDPZGUXLUBZOZQZQZUWTCUXLUDZUEUFZUGZUKVWEUXDUKBUXAVJUXLUXAO
        ZVWJVWEVWMUXDVWNVWIUXHAVWNVWFUXEVWHUXGUXLUXADUUOVWNVWGUXFGUXLUXAYMUUHUU
        IUUJVWNUWTCVWLUXCVWNVWKUXBUEUXLUXAUUKUULUUMXCKUUNUUPYNAUWTCUXCAUWRUXCSZ
        QZGUWSVWPGUWSVQGRVQZUWRRUWRROZUWSRGVWRUWSRUBRUWRRYMUUQUURUUSVWPVVAQZGGN
        UWRGUYIUCZUUTZUCZUWSVWSGVXAUFZRVQGVXBVQVWSVXCNUWRVWTUVGZUVAZVGZRVWSVXCV
        XAVXFVWPVWTGPZNUWRULVVAVXCVXAOVWPVXGNUWRVWPGUYIUVBYONGVWTUWRUVCUVDVWSVX
        AUXLVWTONUWRUGBUVEZVGZVXFVWSVWTVJSZNUWRULVXAVXIOVWSVXJNUWRVWSGVJSZVXJAV
        XKVWOVVAVUMVRGUYIVJYLTYONBUWRVWTVJUVFTVXEVXHNBUWRVWTVXDVXDUVHZUVIZUVJYP
        XSVWSUYSVXEEPZVXERVQZVXEUESZVXFRVQAUYSVWOVVAVUCVRVWSUWREVXDUVSVXNVWSNUW
        RVWTEVXDVWSVVDQZVVGVWTESZVXQUYIDEVWSUWRUXAUYIVWOUWRUXAPZAVVAVWOVXSVVBUW
        RUXAWHZWEWFZWIUVKVXQVUBUYIGPZVVGVXRVIAVUBVWOVVAVVDLVFVXQUYIVULGVXQVVJUY
        IVULPVWSUWRDUYIVWSUWRDEVYAUVLWIUYIDXKTAGVULOVWOVVAVVDIVFYFZUYIEGUVMWLUV
        NZVXLUVOUWREVXDUVPTVWSVXDUVQZRVQVXOVWSVYEUWRRVWSNVXDUWRVWTEVXLVYDUVRVWP
        VVAUVTYQVYERVXERVXDUWAYRYSVWSVVBVXPVWOVVBAVVAVWOVXSVVBVXTWQWFVVBVXEVXHU
        EVXMNBUWRVWTUWBUWCTVXEEGUWDWSYQVXCRGVXBGVXAUWEYRYSVWSVXBNUWRGVWTUCZYTZU
        WSNUWRGVWTUWFVWSVYGNUWRUYIYTUWSVWSNUWRVYFUYIVXQVYBVYFUYIOVYCUYIGUWIYSUW
        GNUWRUWHYPUWJUWKVWPUYSVWQAUYSVWOVUCVPUYSGESVWQEGUWLGEGUWMYNTUWNUWOUWPUW
        Q $.
    $}

    $( The Alexander Subbase Theorem:  If ` B ` is a subbase for the topology
       ` J ` , and any cover taken from ` B ` has a finite subcover, then the
       generated topology is compact.  This proof uses the ultrafilter lemma;
       see ~ alexsubALT for a proof using Zorn's lemma.  (Contributed by Jeff
       Hankins, 24-Jan-2010.)  (Revised by Mario Carneiro, 26-Aug-2015.) $)
    alexsub $p |- ( ph -> J e. Comp ) $=
      ( vf wcel cv c0 cfv wa wceq adantr cuni cvv ccmp cflim co cufil wral cufl
      wne cfi ctg wss cpw cfn cin wrex adantlr simprl simprr alexsublem pm2.21i
      wn expr pm2.01d neqned ralrimiva ctopon fibas tgtopon ax-mp syl6eqel elex
      wb ctb eqeltrrd uniexb sylibr fiuni eqtrd fveq2d eleqtrrd ufilcmp syl2anc
      syl mpbird ) AEUALZEKMZUBUCZNUGZKFUDOZUEZAWGKWHAWEWHLZPZWFNWKWFNQZAWJWLWL
      UTZAWJWLPZPZWMWOBCDWEEFAFUFLZWNGRAFDSZQWNHRAEDUHOZUIOZQWNIRABMZDUJFWTSQPF
      CMSQCWTUKULUMUNWNJUOAWJWLUPAWJWLUQURUSVAVBVCVDAWPEFVEOZLWDWIVKGAEWRSZVEOZ
      XAAEWSXCIWRVLLWSXCLDVFWRVGVHVIAFXBVEAFWQXBHADTLZWQXBQAWQTLXDAFWQTHAWPFTLG
      FUFVJWBVMDVNVODTVPWBVQVRVSKEFVTWAWC $.
  $}

  ${
    $d w x y z B $.  $d w x y z X $.
    $( Biconditional form of the Alexander Subbase Theorem ~ alexsub .
       (Contributed by Mario Carneiro, 27-Aug-2015.) $)
    alexsubb $p |- ( ( X e. UFL /\ X = U. B ) ->
        ( ( topGen ` ( fi ` B ) ) e. Comp <-> A. x e. ~P B ( X = U. x ->
          E. y e. ( ~P x i^i Fin ) X = U. y ) ) ) $=
      ( vz vw wcel cuni wceq wa cv cpw cfn wrex wi wral cvv syl ctb wss cfi cfv
      cufl ctg ccmp cin ctop eqid iscmp simprbi simpr elex adantr uniexb sylibr
      fiuni fibas unitg mp1i 3eqtr4d eqeq1d rexbidv imbi12d ralbidv ssfii bastg
      eqeltrrd ax-mp syl6ss sspwb sylib ssralv sylbird syl5 simpll simplr eqidd
      selpw eqeq2d pweq ineq1d rexeqdv rspccv adantl syl5bir cbvrexv alexsub ex
      unieq imp32 impbid ) DUCGZDCHZIZJZCUAUBZUDUBZUEGZDAKZHZIZDBKZHZIZBWSLZMUF
      ZNZOZACLZPZWRWQHZWTIZXKXCIZBXFNZOZAWQLZPZWOXJWRWQUGGXQABWQXKXKUHUIUJWOXQX
      HAXPPZXJWOXHXOAXPWOXAXLXGXNWODXKWTWOWMWPHZDXKWOCQGZWMXSIWOWMQGXTWODWMQWLW
      NUKZWLDQGWNDUCULUMVGCUNUOZCQUPRYAWPSGZXKXSIWOCUQZWPSURUSUTZVAWOXDXMBXFWOD
      XKXCYEVAVBVCVDWOXIXPTZXRXJOWOCWQTYFWOCWPWQWOXTCWPTYBCQVERYCWPWQTYDWPSVFVH
      VICWQVJVKXHAXIXPVLRVMVNWOXJWRWOXJJZEFCWQDWLWNXJVOWLWNXJVPYGWQVQYGEKZCTZDY
      HHZIZJJXDBYHLZMUFZNZDFKZHZIZFYMNYGYIYKYNYIYHXIGZYGYKYNOZECVRXJYRYSOWOXHYS
      AYHXIWSYHIZXAYKXGYNYTWTYJDWSYHWIVSYTXDBXFYMYTXEYLMWSYHVTWAWBVCWCWDWEWJXDY
      QBFYMXBYOIXCYPDXBYOWIVSWFVKWGWHWK $.
  $}

  ${
    $d a b c d f m n s t u v w x y z J $.
    $d a b c d f m n s t u v w x y z X $.
    alexsubALT.1 $e |- X = U. J $.
    $( Lemma for ~ alexsubALT .  A compact space has a subbase such that every
       cover taken from it has a finite subcover.  (Contributed by Jeff
       Hankins, 27-Jan-2010.) $)
    alexsubALTlem1 $p |- ( J e. Comp -> E. x ( J = ( topGen ` ( fi ` x ) )
       /\ A. c e. ~P x ( X = U. c -> E. d e. ( ~P c i^i Fin ) X = U. d ) ) ) $=
      ( ccmp wcel cfi cfv ctg wceq cv cuni cpw cfn cin wral wa fveq2d wrex ctop
      wi wex cmptop fitop tgtop eqtr2d syl wss selpw cmpcov 3exp ralrimiv fveq2
      syl5bi eqeq2d pweq raleqdv anbi12d spcegv mp2and ) BGHZBBIJZKJZLZCDMZNLZC
      EMNLEVGOPQUAZUCZDBOZRZBAMZIJZKJZLZVJDVMOZRZSZAUDVCBUBHZVFBUEVTVEBKJBVTVDB
      KBUFTBUGUHUIVCVJDVKVGVKHVGBUJZVCVJDBUKVCWAVHVIVGBCEFULUMUPUNVSVFVLSABGVMB
      LZVPVFVRVLWBVOVEBWBVNVDKVMBIUOTUQWBVJDVQVKVMBURUSUTVAVB $.

    $( Lemma for ~ alexsubALT .  Every subset of a base which has no finite
       subcover is a subset of a maximal such collection.  (Contributed by Jeff
       Hankins, 27-Jan-2010.) $)
    alexsubALTlem2 $p |- ( ( ( J = ( topGen ` ( fi ` x ) )
      /\ A. c e. ~P x ( X = U. c
        -> E. d e. ( ~P c i^i Fin ) X = U. d ) /\ a e. ~P ( fi ` x ) )
          /\ A. b e. ( ~P a i^i Fin ) -. X = U. b )
            -> E. u e. ( { z e. ~P ( fi ` x ) | ( a C_ z
                /\ A. b e. ( ~P z i^i Fin ) -. X = U. b ) } u. { (/) } )
              A. v e. ( { z e. ~P ( fi ` x ) | ( a C_ z
                  /\ A. b e. ( ~P z i^i Fin ) -. X = U. b ) } u. { (/) } )
                -. u C. v ) $=
      ( vw cv wceq cfn wi wcel wa wss c0 cfi cfv ctg cuni cpw cin wrex wral w3a
      vy vn wn crab csn cun crpss wor wal wpss ssel elun weq sseq2 pweq raleqdv
      wo ineq1d anbi12d elrab velsn orbi12i bitri elpwi adantr 0ss sseq1 mpbiri
      jaoi sylbi syl6 ralrimiv unissb sylibr ad2antlr vuniex uni0b wne disjssun
      elpw notbii biimpcd necon3bd n0 elin anbi2i simprrl simpl syl2anc exlimiv
      wex ssuni ad2antrl syl5bi imp elfpw unieq syl6eq necon3bi simplrr simprlr
      uni0 simprr finsschain syl22anc expr 0elpw mpbir2an eqeq2d notbid mpi vex
      0fin rspccv syl5bir expd com23 ad2antll a1i ss0 biimprcd a1dd syl9r com34
      syl6bi jaod sylan9r sylan ad2ant2lr sylib ex adantrl rexlimdv jca32 orcom
      syld impd cbvralv elsn df-or bitr2i 3bitr4i fvex pwex rabex p0ex unex syl
      alrimiv zorn ) EAMZUAUBZUCUBNFIMZUDNFJMUDNJUVBUEOUFUGPIUUTUEUHGMZUVAUEZQU
      IZFHMZUDZNZULZHUVCUEZOUFZUHZRZUJMZUVCBMZSZUVIHUVOUEZOUFZUHZRZBUVDUMZTUNZU
      OZSZUVNUPUQZRZUVNUDZUWCQZPZUJURDMCMUSULCUWCUHDUWCUGUVMUWIUJUVMUWFUWHUVMUW
      FRZUWGTNZULZUWGUVDQZUVCUWGSZUVIHUWGUEZOUFZUHZRZRZPZUWHUWJUWLUWSUWJUWLRZUW
      MUWNUWQUXAUWGUVASZUWMUWFUXBUVMUWLUWDUXBUWEUWDLMZUVASZLUVNUHUXBUWDUXDLUVNU
      WDUXCUVNQZUXCUWCQZUXDUVNUWCUXCUTZUXFUXCUVDQZUVCUXCSZUVIHUXCUEZOUFZUHZRZRZ
      UXCTNZVFZUXDUXFUXCUWAQZUXCUWBQZVFUXPUXCUWAUWBVAUXQUXNUXRUXOUVTUXMBUXCUVDB
      LVBZUVPUXIUVSUXLUVOUXCUVCVCUXSUVIHUVRUXKUXSUVQUXJOUVOUXCVDVGVEVHVIZLTVJVK
      VLZUXNUXDUXOUXHUXDUXMUXCUVAVMVNUXOUXDTUVASUVAVOUXCTUVAVPVQVRVSVTWALUVNUVA
      WBWCVNWDUWGUVAUJWEZWIWCUWJUWLUWNUWLUVNUWBSZULZUWJUWNUWKUYCUVNWFWJUWDUYDUW
      NPUVMUWEUWDUYDUVNUWAUFZTWGZUWNUWDUYCUYETUYETNUWDUYCUVNUWAUWBWHWKWLUYFUXCU
      YEQZLWTUWNLUYEWMUYGUWNLUYGUXEUXNRZUWNUYGUXEUXQRUYHUXCUVNUWAWNUXQUXNUXEUXT
      WOVLUYHUXIUXEUWNUXEUXHUXIUXLWPUXEUXNWQUVCUXCUVNXAWRVSWSVSVTXBXCXDUXAFUKMZ
      UDZNZULZUKUWPUHUWQUXAUYLUKUWPUYIUWPQUYIUWGSZUYIOQZRUXAUYLUYIUWGXEUXAUYMUY
      NUYLUXAUYNUYMUYLUWJUWLUYNUYMUYLPUWJUWLUYNRZRZUYMUYIUXCSZLUVNUGZUYLUWJUYOU
      YMUYRUWJUYOUYMRZRUVNTWGZUWEUYNUYMUYRUYOUYTUWJUYMUWLUYTUYNUWKUVNTUVNTNUWGT
      UDZTUVNTXFXKXGXHVNXBUVMUWDUWEUYSXIUWJUWLUYNUYMXJUWJUYOUYMXLLUVNUYIXMXNXOU
      YPUYQUYLLUVNUWJUYNUXEUYQUYLPZPZUWLUWJUYNVUCUVLUWDUYNVUCPZUVEUWEUVLFVUANZU
      LZUWDVUDUVLTUVKQZVUFVUGTUVJQTOQUVCXPYBTUVJOWNXQUVIVUFHTUVKUVFTNZUVHVUEVUH
      UVGVUAFUVFTXFXRXSYCXTVUFUWDRUXEUYNVUBUWDUXEUXFVUFUYNVUBPZUXGUXFUXPVUFVUIU
      YAVUFUXNVUIUXOUXNVUIPVUFUXLVUIUXHUXIUXLUYQUYNUYLUYQUYIUXJQZUXLUYNUYLPZUYI
      UXCUKYAWIUXLVUJUYNUYLVUJUYNRUYIUXKQUXLUYLUYIUXJOWNUVIUYLHUYIUXKHUKVBZUVHU
      YKVULUVGUYJFUVFUYIXFXRXSYCYDYEYDYFYGYHVUFUXOUYQUYNUYLUXOUYQUYITNZVUFVUKUX
      OUYQUYITSVUMUXCTUYIVCUYIYIYNVUFVUMUYLUYNVUMUYLVUFVUMUYKVUEVUMUYJVUAFUYITX
      FXRXSYJYKYLYMYOXCYPYFYQYRXDUUAUUBUUEXOYFUUFXCWAUYLUVIUKHUWPUKHVBZUYKUVHVU
      NUYJUVGFUYIUVFXFXRXSUUGYSUUCYTUWGUWBQZUWGUWAQZVFZVUPVUOVFUWTUWHVUOVUPUUDV
      UQUWKUWSVFUWTVUOUWKVUPUWSUWGTUYBUUHUVTUWRBUWGUVDUVOUWGNZUVPUWNUVSUWQUVOUW
      GUVCVCVURUVIHUVRUWPVURUVQUWOOUVOUWGVDVGVEVHVIVKUWKUWSUUIUUJUWGUWAUWBVAUUK
      YSYTUURDCUJUWCUWAUWBUVTBUVDUVAUUTUAUULUUMUUNUUOUUPUUSUUQ $.

    $( Lemma for ~ alexsubALT .  If a point is covered by a collection taken
       from the base with no finite subcover, a set from the subbase can be
       added that covers the point so that the resulting collection has no
       finite subcover.  (Contributed by Jeff Hankins, 28-Jan-2010.)  (Revised
       by Mario Carneiro, 14-Dec-2013.) $)
    alexsubALTlem3 $p |- ( ( ( ( ( J = ( topGen ` ( fi ` x ) ) /\
          A. c e. ~P x ( X = U. c -> E. d e. ( ~P c i^i Fin ) X = U. d ) /\
              a e. ~P ( fi ` x ) ) /\
            ( u e. ~P ( fi ` x ) /\ ( a C_ u /\
              A. b e. ( ~P u i^i Fin ) -. X = U. b ) ) ) /\ w e. u ) /\
          ( ( t e. ( ~P x i^i Fin ) /\ w = |^| t ) /\
            ( y e. w /\ -. y e. U. ( x i^i u ) ) ) ) ->
      E. s e. t A. n e. ( ~P ( u u. { s } ) i^i Fin ) -. X = U. n ) $=
      ( wceq cfn wi wcel wss wa vm vf vv cfi cfv ctg cuni cpw cin wrex wral w3a
      vz cv wn wel cint csn cun dfrex2 ralbii ralnex bitr2i wex cdif elin elpwi
      adantr uncom syl6sseq ssundif sylib diffi adantl jca sylbi ad2antll elpw2
      wf vex anbi1i simprrr eldif simplbi2 wo elun orcom df-or ssriv uniss mp1i
      bitr4i uniun unisn uneq2i eqtri eqsstrd difss sseli ad3antrrr elssuni syl
      sseldd ctb unieq 3ad2ant1 cvv syl6eqr sseqtrd unssd uneq1d eqeq2d syl2anc
      eqssd rspcev inss2 ex ad2antrl ralrimiva sylibr adantlr wal alinexa rspcv
      eleq2 eluni notbid syl9r syl5bi imp31 ad2antrr anim2i eximi eliun orbi12i
      weq velsn bitri syl6 exp32 unissi sseq2 mpbiri inss1 ad2antlr fibas unitg
      elpwid simprl fiuni 3eqtr4rd expr expd rexlimdv ac6sfi ciun ffvelrn iunss
      ralimdva simplrr snssd sseldi iunfi syl2an ad2ant2lr sylancl imbi2i albii
      snfi unfi fveq2 unieqd uneq12d biimpd orbi1i imbi1i eleq1 ralbidv imbi12d
      id 3bitri spv eleq2d alrimdv imim1d a1dd syld com14 com23 ralrimdv elint2
      syl6ibr wb sylibrd orrd orc equid equequ1 anbi12d spcev mpan2 jaoi anbi2i
      olc exbii adantll ad2ant2l ssrdv nfra1 nfv rsp eqimss2 sstr expcom syl2im
      ssun3 rexlimd ax-mp syl6req sseq1 syl5ibrcom jaod ralrimiv unissb exlimdv
      3syld syl6ib con4d com24 imp45 ) GAUNZUDUEZUFUEZOZHLUNZUGOHMUNUGOMUYOUHPU
[encoded data, 4400 characters]
      UGKVUIUTUYGUYHYTUYIYTUYJYJ $.

    $( Lemma for ~ alexsubALT .  If any cover taken from a subbase has a finite
       subcover, any cover taken from the corresponding base has a finite
       subcover.  (Contributed by Jeff Hankins, 28-Jan-2010.)  (Revised by
       Mario Carneiro, 14-Dec-2013.) $)
    alexsubALTlem4 $p |- ( J = ( topGen ` ( fi ` x ) ) ->
      ( A. c e. ~P x ( X = U. c -> E. d e. ( ~P c i^i Fin ) X = U. d ) ->
        A. a e. ~P ( fi ` x ) ( X = U. a ->
          E. b e. ( ~P a i^i Fin ) X = U. b ) ) ) $=
      ( vu vv vs cv wceq cfn wi wcel wn wa wss c0 vz vy vw cfi cfv ctg cuni cpw
      vt vn cin wrex wral w3a ralnex wpss crab csn alexsubALTlem2 wo elun sseq2
      cun ineq1d raleqdv anbi12d elrab velsn orbi12i bitri simprrl unissd sseq1
      weq pweq syl5ibrcom inss1 elpw2 mpbir unieq eqeq2d rexeqdv imbi12d rspccv
      vex mpi inss2 sstr mpan2 anim1i elfpw 3imtr4i reximi2 syl6 cbvrexv syl6ib
      dfrex2 con2d a1d 3ad2ant2 adantr impd wb unissi cvv fiuni ax-mp ctb fibas
      impr unitg eqtr4i syl6reqr syl6eqr syl wex nss ad2antrl ad4antlr ad2antrr
      wel ad2antlr simprl sseldd sseldi sylibr ssun1 notbid adantll adantl elin
      wne ex syl5bir expd con3d eqimss2 psseq2 rexlimdv syl5bi eqss baib syl5bb
      3ad2ant1 syl5sseq eqcom mtbid sstr2 df-rex bitr4i eluni2 cint elpwi sseld
      con3rr3 elfi mp2an alexsubALTlem3 ssfii sseli elpwid snssd syl6ss cbvralv
      unssd fvex biimpi ad2antll jca32 elun1 vsnid elun2 intss1 impcom adantrrr
      adantlr simprlr elunii sylc com23 exp32 imp55 eleq1 elequ1 spcev necon3bi
      expr sylancr jctil df-pss rspcev syl2anc rexlimddv mpdd simpll3 biantrurd
      exp45 3syld simplr bitr3d sylanbrc rspcv 0elpw mpbir2an syl6eqel necon2ad
      0fin syl5 psseq1 0pss syl6bb sylibrd nsyld jaod mpd con4d 3exp ralrimdv
      id ) BALZUDUEZUFUEZMZCFLZUGZMZCGLZUGZMZGUYDUHZNUKZULZOZFUXTUHZUMZCDLZUGZM
      ZCELZUGZMZEUYPUHZNUKZULZOZDUYAUHZUYCUYOUYPVUFPZVUEUYCUYOVUGUNZVUDUYRVUDQV
      UAQZEVUCUMZVUHUYRQZVUAEVUCUOVUHVUJVUKVUHVUJRZILZJLZUPZQZJUYPUALZSZVUIEVUQ
      UHZNUKZUMZRZUAVUFUQZTURZVCZUMZIVVEULVUKAUAJIBCDEFGHUSVULVVFVUKIVVEVUMVVEP
      ZVUMVUFPZUYPVUMSZVUIEVUMUHZNUKZUMZRZRZVUMTMZUTZVULVVFVUKOZVVGVUMVVCPZVUMV
      VDPZUTVVPVUMVVCVVDVAVVRVVNVVSVVOVVBVVMUAVUMVUFUAIVNZVURVVIVVAVVLVUQVUMUYP
      VBVVTVUIEVUTVVKVVTVUSVVJNVUQVUMVOVDVEVFVGITVHVIVJVULVVNVVQVVOVUHVVNVVQOVU
      JVUHVVNVVQVVFVUOJVVEULZQVUHVVNRZVUKVUOJVVEUOVWBUYRVWAVWBUYRCVUMUGZSZVWCUX
      TVUMUKZUGZSZQZVWAVWBVWDUYRUYQVWCSVWBUYPVUMVUHVVHVVIVVLVKVLCUYQVWCVMVPVWBC
      VWFSZQVWDVWHOVWBCVWFMZVWIVUHVVHVVMVWJQZVUHVVHRVVIVVLVWKVUHVVIVVLVWKOZOZVV
      HUYOUYCVWMVUGUYOVWLVVIUYOVWJVVLUYOVWJVUAEVVKULZVVLQUYOVWJUYIGVVKULZVWNUYO
      VWJUYIGVWEUHZNUKZULZVWOUYOVWEUYNPZVWJVWROZVWSVWEUXTSUXTVUMVQZVWEUXTAWEZVR
      VSUYMVWTFVWEUYNUYDVWEMZUYFVWJUYLVWRVXCUYEVWFCUYDVWEVTWAVXCUYIGUYKVWQVXCUY
      JVWPNUYDVWEVOVDWBWCWDWFUYIUYIGVWQVVKUYGVWQPZUYGVVKPZUYIUYGVWESZUYGNPZRUYG
      VUMSZVXGRVXDVXEVXFVXHVXGVXFVWEVUMSVXHUXTVUMWGUYGVWEVUMWHWIWJUYGVWEWKUYGVU
      MWKWLWJWMWNUYIVUAGEVVKGEVNUYHUYTCUYGUYSVTWAWOWPVUAEVVKWQWPWRWSWTXAXBXJVWB
      VWFCSZVWJVWIXCVWBUXTUGZVWFCVWEUXTVXAXDVUHVXJCMZVVNUYCUYOVXKVUGUYCVXJBUGZC
      UYCVXLUYBUGZVXJBUYBVTVXJUYAUGZVXMUXTXEPZVXJVXNMVXBUXTXEXFXGUYAXHPVXMVXNMU
      XTXIUYAXHXKXGXLXMHXNUUDXAUUEVWJVWFCMZVXIVWICVWFUUFVXPVXIVWIVWFCUUAUUBUUCX
      OUUGVWDVWGVWICVWCVWFUUHUUOXOVWHUBLZVWFPZQZUBVWCULZVWBVWAVWHVXQVWCPZVXSRUB
      XPVXTUBVWCVWFXQVXSUBVWCUUIUUJVWBVXSVWAUBVWCVYAUBUCYAZUCVUMULVWBVXSVWAOZUC
      VXQVUMUUKVWBVYBVYCUCVUMVWBUCIYAZUCLZUILZUULZMZUIUYNNUKZULZVYBVYCOZVWBVYDV
      YEUYAPZVYJVVHVYDVYLOVUHVVMVVHVUMUYAVYEVUMUYAUUMZUUNXRVYEXEPVXOVYLVYJXCUCW
      EVXBUIVYEUXTXEXEUUPUUQWPVWBVYDVYJVYKOVWBVYDRZVYHVYKUIVYIVYNVYFVYIPZVYHVYK
      VYNVYOVYHRZVYBVXSVWAVYNVYPVYBVXSRZRZRZCUJLZUGZMZQZUJVUMKLZURZVCZUHZNUKZUM
      ZVWAKVYFAUBUCIUIUJBCKDEFGHUURVYSKUIYAZWUIRZRZWUFVVEPZVUMWUFUPZVWAWULWUFVV
      CPZWUMWULWUFVUFPZUYPWUFSZVUIEWUHUMZRZRWUOWULWUPWUQWURWULWUFUYASWUPWULVUMW
      UEUYAVVNVUMUYASZVUHVYDVYRWUKVVHWUTVVMVYMXAXSWULWUDUYAWULUXTUYAWUDVXOUXTUY
      ASVXBUXTXEUUSXGWULVYFUXTWUDVYRVYFUXTSZVYNWUKVYOWVAVYHVYQVYOVYFUXTVYIUYNVY
      FUYNNVQUUTUVAZXTYBVYSWUJWUIYCYDYEUVBUVEWUFUYAUXTUDUVFVRYFWULUYPVUMWUFVVNV
      VIVUHVYDVYRWUKVVHVVIVVLYCXSVUMWUEYGZUVCWUIWURVYSWUJWUIWURWUCVUIUJEWUHUJEV
      NZWUBVUAWVDWUAUYTCVYTUYSVTWAYHUVDUVGUVHUVIVVBWUSUAWUFVUFVUQWUFMZVURWUQVVA
      WURVUQWUFUYPVBWVEVUIEVUTWUHWVEVUSWUGNVUQWUFVOVDVEVFVGYFWUFVVCVVDUVJXOWULV
      UMWUFSZVUMWUFYLZRWUNWULWVGWVFWULWUFVUMSZQZWVGWULVUNWUFPZJIYAZQZRZJXPZWVIW
      ULWUDWUFPZKIYAZQZWVNWUDWUEPWVOKUVKWUDWUEVUMUVLXGVYNVYPVYBVXSWUKWVQVYNVYPV
      YBVXSWUKWVQOOVYNVYPVYBRZRWUKVXSWVQVYNWVRWUKVXSWVQOVYNWVRWUKRZRZWVPVXRWVTU
      BKYAZKAYAZWVPVXROWVTVYEWUDVXQVYDWVSVYEWUDSZVWBVYDWVRWUJWWCWUIWVRWUJRWWCVY
      DVYPWUJWWCVYBVYHWUJWWCVYOWUJVYHWWCWUJWWCVYHVYGWUDSWUDVYFUVMVYEVYGWUDVMVPU
      VNYIUVPYJUVOYIVYNVYPVYBWUKUVQYDWVTVYFUXTWUDWVRWVAVYNWUKVYOWVAVYHVYBWVBXTX
      RVYNWVRWUJWUIVKYDWWAWWBWVPVXRWWBWVPRWUDVWEPZWWAVXRWUDUXTVUMYKWWAWWDVXRVXQ
      WUDVWEUVRYMYNYOUVSYPUWGUVTUWAUWBWVMWVOWVQRJWUDKWEJKVNZWVJWVOWVLWVQVUNWUDW
      UFUWCWWEWVKWVPJKIUWDYHVFUWEUWHJWUFVUMXQYFWVHVUMWUFWUFVUMYQUWFXOWVCUWIVUMW
      UFUWJYFVUOWUNJWUFVVEVUNWUFVUMYRUWKUWLUWMUWQYOYSYMUWNYSYTYSYTUWRYPYTYMXAVU
      LVVOVVQVULVVORZVVFVUMUYPUPZUYRWWFUYPVVEPVVFWWGQZOWWFVVCVVEUYPVVCVVDYGWWFV
      UGVUJUYPVVCPUYCUYOVUGVUJVVOUWOVUHVUJVVOUWSVVBVUJUAUYPVUFUADVNZVVAVVBVUJWW
      IVURVVAUYPVUQYQUWPWWIVUIEVUTVUCWWIVUSVUBNVUQUYPVOVDVEUWTVGUXAYEVUPWWHJUYP
      VVEJDVNVUOWWGVUNUYPVUMYRYHUXBXOWWFUYRUYPTYLZWWGVUJUYRWWJOVUHVVOVUJUYRUYPT
      UYPTMZUYPVUCPVUJVUKWWKUYPTVUCWWKUXSTVUCPTVUBPTNPUYPUXCUXGTVUBNYKUXDUXEVUI
      VUKEUYPVUCEDVNZVUAUYRWWLUYTUYQCUYSUYPVTWAYHWDUXHUXFYBWWFWWGTUYPUPZWWJVVOW
      WGWWMXCVULVUMTUYPUXIYJUYPUXJUXKUXLUXMYMUXNYTYSUXOYMYNUXPUXQUXR $.

    $( The Alexander Subbase Theorem: a space is compact iff it has a subbase
       such that any cover taken from the subbase has a finite subcover.
       (Contributed by Jeff Hankins, 24-Jan-2010.)  (Revised by Mario Carneiro,
       11-Feb-2015.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    alexsubALT $p |- ( J e. Comp <-> E. x ( J = ( topGen ` ( fi ` x ) ) /\ A. c
        e.
    ~P x ( X = U. c -> E. d e. ( ~P c i^i Fin ) X = U. d ) ) ) $=
      ( vb vy vz vt vw wcel cv wceq cuni cfn wrex wi wa wss va ccmp cfi cfv ctg
      vf cpw cin wral wex alexsubALTlem1 alexsubALTlem4 ctop selpw w3a crab wel
      wb eleq2 3ad2ant3 eluni ssel ex syl6bi sylan9r 3impia sseq2 rspcev anim2d
      tg2 reximdv syld 3expia com23 exlimdv syl5bi 3adant3 sylbid elunii expcom
      impd biimprd syl9r rexlimdva rexlimdvw impbid elunirab syl6bbr eqrdv fvex
      ssrab2 elpw2 mpbir unieq eqeq2d pweq ineq1d rexeqdv imbi12d rspcv syl5com
      ax-mp elfpw wf sseq1 rexbidv simprbi syl6 ralrimiv ac6sfi syl5 adantl crn
      elrab simprll frn syl cdom wbr simplr wfo wfn dffn4 sylib adantr ad2antrl
      ffn fodomfi syl2anc jca elin vex anbi1i bitr2i simprr ciun uniiun simprlr
      domfi ss2iun syl5eqss fniunfv sseqtrd eqsstrd sstrd uniss syl6sseqr eqssd
      3syl simpll2 exp32 rexlimdv 3exp com34 syl7bi ralrimdv fibas eleq1 mpbiri
      ctb tgcl jctild iscmp syl6ibr imp exlimiv impbii ) BUBLZBAMZUCUDZUEUDZNZC
      DMZOZNZCEMZOZNZEUVMUGZPUHZQZRZDUVIUGUIZSZAUJABCDEFUKUWDUVHAUVLUWCUVHUVLUW
      CCUAMZOZNZCGMZOZNZGUWEUGZPUHZQZRZUAUVJUGZUIZUVHABCUAGDEFULUVLUWPBUMLZUWBD
      BUGZUIZSUVHUVLUWPUWSUWQUVLUWPUWBDUWRUVMUWRLUVMBTZUVLUWPUWBDBUNUVLUWTUWPUW
      BUVLUWTUVOUWPUWAUVLUWTUVOUWPUWARUVLUWTUVOUOZUWPUWJGHMZIMZTZIUVMQZHUVJUPZU
      GZPUHZQZUWAUXACUXFOZNZUWPUXIUXAJCUXJUXAJMZCLZJHUQZUXESZHUVJQZUXLUXJLUXAUX
      MUXPUXAUXMUXLUVNLZUXPUVOUVLUXMUXQURUWTCUVNUXLUSUTZUVLUWTUXQUXPRUVOUXQJKUQ
      ZKDUQZSZKUJUVLUWTSZUXPKUXLUVMVAUYBUYAUXPKUYBUXSUXTUXPUYBUXTUXSUXPUVLUWTUX
      TUXSUXPRUVLUWTUXTUOZUXSUXNUXBKMZTZSZHUVJQZUXPUVLUWTUXTUXSUYGRZUWTUXTUYDBL
      ZUVLUYHUVMBUYDVBUVLUYIUYDUVKLZUYHBUVKUYDUSUYJUXSUYGHUYDUVJUXLVJVCVDVEVFUY
      CUYFUXOHUVJUYCUYEUXEUXNUXTUVLUYEUXERUWTUXTUYEUXEUXDUYEIUYDUVMUXCUYDUXBVGV
      HVCUTVIVKVLVMVNWAVOVPVQVRUXAUXOUXMHUVJUXAUXNUXEUXMUXAUXEUXNUXMUXAUXDUXNUX
      MRIUVMUXDUXNJIUQZUXAIDUQZSUXMUXBUXCUXLVBUYLUYKUXQUXAUXMUYKUYLUXQUXLUXCUVM
      VSVTUXAUXMUXQUXRWBVEWCWDVNWAWEWFUXEHUXLUVJWGWHWIUXFUWOLZUWPUXKUXIRZRUYMUX
      FUVJTUXEHUVJWKUXFUVJUVIUCWJWLWMUWNUYNUAUXFUWOUWEUXFNZUWGUXKUWMUXIUYOUWFUX
      JCUWEUXFWNWOUYOUWJGUWLUXHUYOUWKUXGPUWEUXFWPWQWRWSWTXBXAUXAUWJUWAGUXHUWHUX
      HLUWHUXFTZUWHPLZSUXAUWJUWARZUWHUXFXCUXAUYPUYQUYRUXAUYQUYPUYRUXAUYQUYPUYRR
      UXAUYQSZUYPUWHUVMUFMZXDZUXLUXLUYTUDZTZJUWHUIZSZUFUJZUYRUYQUYPVUFRUXAUYPUX
      LUXCTZIUVMQZJUWHUIZUYQVUFUYPVUHJUWHUYPJGUQUXLUXFLZVUHUWHUXFUXLVBVUJUXLUVJ
      LVUHUXEVUHHUXLUVJUXBUXLNUXDVUGIUVMUXBUXLUXCXEXFXNXGXHXIUYQVUIVUFVUGVUCJIU
      WHUVMUFUXCVUBUXLVGXJVCXKXLUYSVUEUYRUFUYSVUEUWJUWAUYSVUEUWJSZSZUYTXMZUVTLZ
      CVUMOZNZUWAVULVUMUVMTZVUMPLZSZVUNVULVUQVURVULVUAVUQUYSVUAVUDUWJXOZUWHUVMU
      YTXPXQZVULUYQVUMUWHXRXSZVURUXAUYQVUKXTZVULUYQUWHVUMUYTYAZVVBVVCVUEVVDUYSU
      WJVUAVVDVUDVUAUYTUWHYBZVVDUWHUVMUYTYGZUWHUYTYCYDYEYFUWHVUMUYTYHYIUWHVUMYS
      YIYJVUNVUMUVSLZVURSVUSVUMUVSPYKVVGVUQVURVUMUVMDYLWLYMYNYDVULCVUOVULCUWIVU
      OUYSVUEUWJYOVULUWIJUWHVUBYPZVUOVULUWIJUWHUXLYPZVVHJUWHYQVULVUDVVIVVHTUYSV
      UAVUDUWJYRJUWHUXLVUBYTXQUUAVULVUAVVEVVHVUONVUTVVFJUWHUYTUUBUUIUUCUUDVULVU
      MBTZVUOCTVULVUMUVMBVVAUVLUWTUVOUYQVUKUUJUUEVVJVUOBOCVUMBUUFFUUGXQUUHUVRVU
      PEVUMUVTUVPVUMNUVQVUOCUVPVUMWNWOVHYIUUKVOVLVCVNWAVPUULVLUUMUUNVNUUOUUPUVL
      UWQUVKUMLZUVJUUTLVVKUVIUUQUVJUVAXBBUVKUMUURUUSUVBDEBCFUVCUVDVLUVEUVFUVG
      $.
  $}

  ${
    $d f g k m n t u v w x y z A $.  $d f g t u v x y K $.  $d k n u v y z S $.
    $d f g k m n t u v x y ph $.  $d k t u v x z U $.  $d g k n u w x y z V $.
    $d f g k m n t u v w x y z F $.  $d f g k m n t u v w x y z X $.
    ptcmp.1 $e |- S = ( k e. A , u e. ( F ` k ) |->
      ( `' ( w e. X |-> ( w ` k ) ) " u ) ) $.
    ptcmp.2 $e |- X = X_ n e. A U. ( F ` n ) $.
    ptcmp.3 $e |- ( ph -> A e. V ) $.
    ptcmp.4 $e |- ( ph -> F : A --> Comp ) $.
    ptcmp.5 $e |- ( ph -> X e. ( UFL i^i dom card ) ) $.
    $( Lemma for ~ ptcmp .  (Contributed by Mario Carneiro, 26-Aug-2015.) $)
    ptcmplem1 $p |- ( ph -> ( X = U. ( ran S u. { X } ) /\
      ( Xt_ ` F ) = ( topGen ` ( fi ` ( ran S u. { X } ) ) ) ) ) $=
      ( wceq cfv cv wcel cvv vg vy vz vx crn csn cun cuni cpt cfi ctg wral cdif
      wfn cfn wrex w3a cixp wa wex cab ccmp wf ffn eqid ptval syl2anc cmpt ccnv
      syl cima cmpt2 ctop wss cmptop ssriv fss sylancl uncom rneqi uneq2i eqtri
      ptbasfi fveq2i syl6eqr fveq2d eqtrd unieqd fibas unitg ax-mp syl6eq ptuni
      ctb syl5eq cpw cufl ccrd cdm cin pwexg ciun crab mptpreima ssrab2 eqsstri
      cxp wb adantr elpw2g mpbiri ralrimivva fmpt2x sylib frn ssexd unexg fiuni
      snex 3eqtr4d jca ) AJEUEZJUFZUGZUHZPHUIQZYDUJQZUKQZPAYFUHZYGUHZJYEAYIYHUH
      ZYJAYFYHAYFUARZDUNUBRZYLQZYMHQZSUBDULYNYOUHPUBDUCRUMULUCUOUPUQUDRZUBDYNUR
      PUSUAUTUDVAZUKQZYHADISZHDUNZYFYRPMADVBHVCZYTNDVBHVDVJUDUBUCDYQUAHIYQVEZVF
      VGAYQYGUKAYQYCFCDFRZHQZBJUUCBRQZVHZVICRZVKZVLZUEZUGZUJQZYGAYSDVMHVCZYQUUL
      PMAUUAVBVMVNUUMNUDVBVMYPVOVPDVBVMHVQVRZUDUBUCBCDYQUAFGHIJUUBLWCVGYDUUKUJY
      DYCYBUGUUKYBYCVSYBUUJYCEUUIKVTWAWBWDWEWFWGZWHYGWNSYKYJPYDWIYGWNWJWKWLAJGD
      GRHQUHURZYILAYSUUMUUPYIPMUUNGDHYFIYFVEWMVGWOAYDTSZYEYJPAYBTSYCTSUUQAYBJWP
      ZTAJWQWRWSWTZSZUURTSOJUUSXAVJAFDUUCUFUUDXGXBZUUREVCZYBUURVNAUUHUURSZCUUDU
      LFDULUVBAUVCFCDUUDAUUCDSUUGUUDSUSZUSZUVCUUHJVNZUUHUUEUUGSZBJXCJBJUUEUUGUU
      FUUFVEXDUVGBJXEXFUVEUUTUVCUVFXHAUUTUVDOXIUUHJUUSXJVJXKXLFCDUUDUUHUUREKXMX
      NUVAUUREXOVJXPJXSYBYCTTXQVRYDTXRVJXTUUOYA $.

    ${
      ptcmplem2.5 $e |- ( ph -> U C_ ran S ) $.
      ptcmplem2.6 $e |- ( ph -> X = U. U ) $.
      ptcmplem2.7 $e |- ( ph -> -. E. z e. ( ~P U i^i Fin ) X = U. z ) $.
      $( Lemma for ~ ptcmp .  (Contributed by Mario Carneiro, 26-Aug-2015.) $)
      ptcmplem2 $p |- ( ph -> U_ k e. { n e. A | -. U. ( F ` n ) ~~ 1o }
          U. ( F ` k ) e. dom card ) $=
        ( vf vg vx vm cv wcel cfv cuni c1o cen wbr wn crab ciun ccrd cdm c0 wne
        wex wceq cpw cfn cin wrex wss 0ss 0fin elfpw mpbir2an unieq uni0 syl6eq
        eqeq2d rspcev mpan necon3bi syl n0 sylib wa cixp cxp cwdom cres wfo weq
        cmpt fveq2 unieqd cbvixpv eqtri inss2 sseldi adantr syl5eqelr syl5eqner
        cufl ssrab2 eqid resixpfo sylancr fonum syl2anc cdif crn wfn cvv difexg
        wral mp1i dmexg uniexg 3syl ralrimivw fnmpt dffn4 ssdif0 simpr syl6eleq
        vex csn elixp simprbi r19.21bi snssd eqssd ensn1 syl6eqbr ex cif simplr
        fvex iftrue syl5ibrcom ad2antrr iffalse wb cab ifex rgenw syl5bir con3d
        neq0 syl6ib eldifi eleq12d eleq1d pm2.61d ralrimiva ad3antrrr mptelixpg
        mpbird sylan2 unisn eleq1 pm4.71rd equequ1 ifbieq2d fvmpt neeq1d adantl
        necon1ai eldifsni ad2antlr neeq12d impbid2 bitrd pm5.32da bitr4d abbidv
        syl6eleqr df-sn df-rab 3eqtr4g ixpfn fndmdif eqtr4d syl5eqr difeq1 syld
        dmeqd exlimdv expimpd breq1d notbid elrab ax-mp ssrdv ssnum xpnum uniex
        elrnmpt 3imtr4g rabexg iunexg sylancl resixp ixpiunwdom syl3anc numwdom
        ne0i exlimddv ) AUAUEZLUFZHIUEZJUGZUHZUIUJUKZULZIEUMZHUEZJUGZUHZUNZUOUP
        ZUFZUAALUQURZUXDUAUSALBUEZUHZUTZBGVAVBVCZVDZULUXQTUYBLUQUQUYAUFZLUQUTZU
        YBUYCUQGVEUQVBUFGVFVGUQGVHVIUXTUYDBUQUYAUXRUQUTZUXSUQLUYEUXSUQUHUQUXRUQ
        VJVKVLVMVNVOVPVQZUALVRVSAUXDVTZHUXJUXMWAZUXJWBZUXOUFZUXNUYIWCUKZUXPUYGU
        YHUXOUFZUXJUXOUFZUYJUYGHEUXMWAZUXOUFUYNUYHUBUYNUBUEZUXJWDWGZWEZUYLUYGUY
        NLUXOLIEUXGWAZUYNNIHEUXGUXMIHWFZUXFUXLUXEUXKJWHWIZWJWKZALUXOUFZUXDAWQUX
        OVCUXOLWQUXOWLQWMWNZWOUYGUXJEVEZUYNUQURUYQUXIIEWRZUYGUYNLUQVUAAUXQUXDUY
        FWNWPHEUXJUXMUBUYPUYPWSWTXAUYNUYHUYPXBXCUYGUBLUYOUXCXDZUPZUHZWGZXEZUXOU
        FZUXJVUJVEUYMUYGVUBLVUJVUIWEZVUKVUCUYGVUILXFZVULUYGVUHXGUFZUBLXIVUMUYGV
        UNUBLUYGVUFXGUFZVUGXGUFVUNUYOXGUFVUOUYGUBXTUYOUXCXGXHXJVUFXGXKVUGXGXLXM
        XNUBLVUHVUIXGVUIWSZXOVQLVUIXPVSLVUJVUIXBXCUYGHUXJVUJUYGUXKEUFZUXMUIUJUK
        ZULZVTUXKVUHUTZUBLVDZUXKUXJUFUXKVUJUFZUYGVUQVUSVVAUYGVUQVTZVUSUCUEZUXMU
        XKUXCUGZYAZXDZUFZUCUSZVVAVVCVUSVVGUQUTZULVVIVVCVVJVURVVJUXMVVFVEZVVCVUR
        UXMVVFXQVVCVVKVURVVCVVKVTZUXMVVFUIUJVVLUXMVVFVVCVVKXRVVCVVFUXMVEVVKVVCV
        VEUXMUYGVVEUXMUFZHEUYGUXCUYNUFZVVMHEXIZUYGUXCLUYNAUXDXRZVUAXSZVVNUXCEXF
        ZVVOHEUXMUXCUAXTZYBYCVQYDYEWNYFVVEUXKUXCYLYGYHYIUUAUUBUCVVGUUCUUDVVCVVH
        VVAUCVVCVVHVVAVVCVVHVTZIEUYSVVDUXEUXCUGZYJZWGZLUFZUXKVWCUXCXDZUPZUHZUTZ
        VVAVVHVVCVVDUXMUFZVWDVVDUXMVVFUUEVVCVWIVTZVWCUYRLVWJVWCUYRUFZVWBUXGUFZI
        EXIZVWJVWLIEVWJUXEEUFZVTZUYSVWLVWOVWLUYSVWIVVCVWIVWNYKUYSVWBVVDUXGUXMUY
        SVVDVWAYMUYTUUFYNVWOVWLUYSULZVWAUXGUFZVWJVWQIEUYGVWQIEXIZVUQVWIUYGUXCUY
        RUFZVWRUYGUXCLUYRVVPNXSZVWSVVRVWRIEUXGUXCVVSYBYCVQYOYDVWPVWBVWAUXGUYSVV
        DVWAYPUUGYNUUHUUIVWJEKUFZVWKVWMYQAVXAUXDVUQVWIOUUJIEVWBUXGKUUKVQUULNUVK
        UUMVVTUXKUXKYAZUHVWGUXKHXTZUUNVVTVXBVWFVVTVXBUDUEZVWCUGZVXDUXCUGZURZUDE
        UMZVWFVVTUDHWFZUDYRVXDEUFZVXGVTZUDYRVXBVXHVVTVXIVXKUDVVTVXIVXJVXIVTVXKV
        VTVXIVXJVVTVXJVXIVUQUYGVUQVVHYKVXDUXKEUUOYNUUPVVTVXJVXGVXIVVTVXJVTZVXGV
        XIVVDVXFYJZVXFURZVXIVXJVXGVXNYQVVTVXJVXEVXMVXFIVXDVWBVXMEVWCIUDWFUYSVXI
        VWAVXFVVDIUDHUUQUXEVXDUXCWHUURVWCWSZVXIVVDVXFUCXTZVXDUXCYLYSUUSUUTUVAVX
        LVXNVXIVXIVXMVXFVXIVVDVXFYPUVBVXLVXNVXIVVDVVEURZVVHVXQVVCVXJVVDUXMVVEUV
        CUVDVXIVXMVVDVXFVVEVXIVVDVXFYMVXDUXKUXCWHUVEYNUVFUVGUVHUVIUVJUDUXKUVLVX
        GUDEUVMUVNVVTVWCEXFZVVRVWFVXHUTVWBXGUFZIEXIVXRVVTVXSIEUYSVVDVWAVXPUXEUX
        CYLYSYTIEVWBVWCXGVXOXOXJUYGVVRVUQVVHUYGVWSVVRVWTIEUXGUXCUVOVQYOUDEVWCUX
        CUVPXCUVQWIUVRVUTVWHUBVWCLUYOVWCUTZVUHVWGUXKVXTVUGVWFVXTVUFVWEUYOVWCUXC
        UVSUWAWIVMVNXCYIUWBUVTUWCUXIVUSIUXKEUYSUXHVURUYSUXGUXMUIUJUYTUWDUWEUWFU
        XKXGUFVVBVVAYQVXCUBLVUHUXKVUIXGVUPUWLUWGUWMUWHVUJUXJUWIXCUYHUXJUWJXCUYG
        UXJXGUFZUXNXGUFZUYHUQURZUYKUYGVXAVYAAVXAUXDOWNUXIIEKUWNVQZUYGVYAUXMXGUF
        ZHUXJXIVYBVYDVYEHUXJUXLUXKJYLUWKYTHUXJUXMXGXGUWOUWPUYGUXCUXJWDZUYHUFZVY
        CUYGVUDVVNVYGVUEVVQHEUXJUXMUXCUWQXAUYHVYFUXAVQHUXJUXMXGXGUWRUWSUYIUXNUW
        TXCUXB $.

      ptcmplem3.8 $e |- K =
        { u e. ( F ` k ) | ( `' ( w e. X |-> ( w ` k ) ) " u ) e. U } $.
      $( Lemma for ~ ptcmp .  (Contributed by Mario Carneiro, 26-Aug-2015.) $)
      ptcmplem3 $p |- ( ph -> E. f ( f Fn A /\
          A. k e. A ( f ` k ) e. ( U. ( F ` k ) \ U. K ) ) ) $=
        ( vg vy vt vx vm cv cfv cuni c1o cen wbr wn crab cvv cdif wcel wral wfn
        wex ciun ccrd cdm wrex rabexg syl wss ptcmplem2 eldifi 3ad2ant3 rabssdv
        wf ralrimivw ss2iun ssnum syl2anc elrabi wceq cpw cfn cin adantr ssdif0
        wa c0 ccmp ffvelrnda cmpt ccnv cima ssrab2 eqsstri a1i simpr uniss mp1i
        eqssd eqid cmpcov syl3anc crn simplbi ad2antrl sselda weq imaeq2 eleq1d
        elfpw elrab2 simprbi fmptd frn cab rnmpt abrexfi syl5eqel sylanbrc cixp
        simp-4r syl6eleq vex elixp fveq2 unieqd simplrr eleqtrd sylib sylibr ex
        fveq1 ralrimiva cif fvex uniex ifex wi breq1d exlimddv eleq12d rspcv wb
        sylc eluni2 mptpreima baib ad2antlr rexbidva mpbird eliun ssrdv dfiun2g
        unieqi syl6eqr sseqtrd unissd ad3antrrr sseqtr4d unieq eqeq2d rexlimddv
        rspcev syl5bir mtod neq0 sylan2 eleq1 ac6num mptexg rgenw notbid ralrab
        rexv fnmpt iftrue ad2antll adantrr adantl en1b eqeltrrd adantlr eqeltrd
        csn elsni a1d expr pm2.27 iffalse sylibrd pm2.61d1 ralimdva syl5bi impr
        fneq1 ifbieq12d fvmpt sylan9eq ralbidva anbi12d spcegv 3impib ) AJUIZKU
        JZUKZULUMUNZUOZJEUPZUQUDUIZVNZIUIZUXIUJZUXKKUJZUKZLUKZURZUSZIUXHUTZWFZH
        UIZEVAZUXKUXTUJZUXPUSZIEUTZWFZHVBZUDAUXHUQUSZIUXHUEUIZUXPUSZUEUQUPZVCZV
        DVEZUSZUYIUEUQVFZIUXHUTUXSUDVBAEMUSZUYGQUXGJEMVGVHAIUXHUXNVCZUYLUSUYKUY
        PVIZUYMABCDEFGIJKMNOPQRSTUAUBVJAUYJUXNVIZIUXHUTUYQAUYRIUXHAUYIUEUQUXNUY
        IAUYHUXNUSZUYHUQUSUYHUXNUXOVKZVLVMVOIUXHUYJUXNVPVHUYPUYKVQVRAUYNIUXHUXK
        UXHUSAUXKEUSZUYNUXGJUXKEVSAVUAWFZUYIUEVBZUYNVUBUXPWGVTZUOVUCVUBVUDNBUIZ
        UKZVTZBGWAWBWCZVFZAVUIUOVUAUBWDVUDUXNUXOVIZVUBVUIUXNUXOWEVUBVUJVUIVUBVU
        JWFZUXNUFUIZUKZVTZVUIUFLWAWBWCZVUKUXMWHUSZLUXMVIZUXNUXOVTVUNUFVUOVFVUBV
        UPVUJAEWHUXKKRWIWDVUQVUKLCNUXKCUIZUJZWJZWKZDUIZWLZGUSZDUXMUPUXMUCVVDDUX
        MWMWNZWOVUKUXNUXOVUBVUJWPVUQUXOUXNVIVUKVVELUXMWQWRWSLUXMUXNUFUXNWTXAXBV
        UKVULVUOUSZVUNWFZWFZUGVULVVAUGUIZWLZWJZXCZVUHUSZNVVLUKZVTZVUIVVHVVLGVIZ
        VVLWBUSZVVMVVHVULGVVKVNVVPVVHUGVULVVJGVVKVVHVVIVULUSZWFVVILUSZVVJGUSZVV
        HVULLVVIVVFVULLVIZVUKVUNVVFVWAVULWBUSZVULLXJZXDXEXFVVSVVIUXMUSVVTVVDVVT
        DVVIUXMLDUGXGVVCVVJGVVBVVIVVAXHXIUCXKXLVHZVVKWTZXMVULGVVKXNVHZVVHVWBVVQ
        VVFVWBVUKVUNVVFVWAVWBVWCXLXEVWBVVLUXTVVJVTUGVULVFHXOZWBUGHVULVVJVVKVWEX
        PZUGHVULVVJXQXRVHVVLGXJXSVVHNVVNVVHNUGVULVVJVCZVVNVVHHNVWIVVHUXTNUSZUXT
        VWIUSZVVHVWJWFZUXTVVJUSZUGVULVFZVWKVWLVWNUYBVVIUSZUGVULVFZVWLUYBVUMUSVW
        PVWLUYBUXNVUMVWLVUAUXCUXTUJZUXEUSZJEUTZUYBUXNUSZAVUAVUJVVGVWJYAVWLUXTJE
        UXEXTZUSZVWSVWLUXTNVXAVVHVWJWPPYBVXBUYAVWSJEUXEUXTHYCYDXLVHVWRVWTJUXKEJ
        IXGZVWQUYBUXEUXNUXCUXKUXTYEVXCUXDUXMUXCUXKKYEYFZUUAUUBUUDVUKVVFVUNVWJYG
        YHUGUYBVULUUEYIVWLVWMVWOUGVULVWJVWMVWOUUCVVHVVRVWMVWJVWOVUSVVIUSVWOCUXT
        NVVJCHXGVUSUYBVVIUXKVURUXTYLXICNVUSVVIVUTVUTWTUUFXKUUGUUHUUIUUJUGUXTVUL
        VVJUUKYJYKUULVVHVWIVWGUKZVVNVVHVVTUGVULUTVWIVXEVTVVHVVTUGVULVWDYMUGHVUL
        VVJGUUMVHVVLVWGVWHUUNUUOUUPVVHVVNGUKZNVVHVVLGVWFUUQANVXFVTVUAVUJVVGUAUU
        RUUSWSVUGVVOBVVLVUHVUEVVLVTVUFVVNNVUEVVLUUTUVAUVCVRUVBYKUVDUVEUEUXPUVFY
        IZUYIUEUVNYJUVGYMUYIUXQIUEUXHUQUDUQUYHUXLUXPUVHUVIXBAUXSWFZUHEUHUIZKUJZ
        UKZULUMUNZVXKUKZVXIUXIUJZYNZWJZUQUSZVXPEVAZUXNULUMUNZUXNUKZUXLYNZUXPUSZ
        IEUTZUYFVXHUYOVXQAUYOUXSQWDUHEVXOMUVJVHVXOUQUSZUHEUTVXRVXHVYDUHEVXLVXMV
        XNVXKVXJVXIKYOYPYPVXIUXIYOYQUVKUHEVXOVXPUQVXPWTZUVOWRAUXJUXRVYCUXRVXSUO
        ZUXQYRZIEUTAUXJWFZVYCUXGVYFUXQIJEVXCUXFVXSVXCUXEUXNULUMVXDYSUVLUVMVYHVY
        GVYBIEVYHVUAWFVXSVYGVYBYRZVYHVUAVXSVYIVYHVUAVXSWFZWFZVYBVYGVYKVYAVXTUXP
        VXSVYAVXTVTVYHVUAVXSVXTUXLUVPUVQAVYJVXTUXPUSZUXJAVYJWFZUYIVYLUEAVUAVUCV
        XSVXGUVRVYMUYIWFZUYHVXTUXPVYNUYHVXTUWDZUSUYHVXTVTVYNUYHUXNVYOUYIUYSVYMU
        YTUVSVYNVXSUXNVYOVTAVUAVXSUYIYGUXNUVTYIYHUYHVXTUWEVHVYMUYIWPUWAYTUWBUWC
        UWFUWGVYFVYGUXQVYBVYFUXQUWHVYFVYAUXLUXPVXSVXTUXLUWIXIUWJUWKUWLUWMUWNVXQ
        VXRVYCUYFUYEVXRVYCWFHVXPUQUXTVXPVTZUYAVXRUYDVYCEUXTVXPUWOVYPUYCVYBIEVYP
        VUAWFUYBVYAUXPVYPVUAUYBUXKVXPUJVYAUXKUXTVXPYLUHUXKVXOVYAEVXPUHIXGZVXLVX
        SVXMVXNVXTUXLVYQVXKUXNULUMVYQVXJUXMVXIUXKKYEYFZYSVYQVXKUXNVYRYFVXIUXKUX
        IYEUWPVYEVXSVXTUXLUXNUXMUXKKYOYPYPUXKUXIYOYQUWQUWRXIUWSUWTUXAUXBXBYT $.

      $( Lemma for ~ ptcmp .  (Contributed by Mario Carneiro, 26-Aug-2015.) $)
      ptcmplem4 $p |- -. ph $=
        ( vf vv cv wfn cfv cuni cdif wcel wral wex ptcmplem3 wrex simprl eldifi
        cixp ralimi wceq fveq2 unieqd eleq12d cbvralv sylibr ad2antll vex elixp
        wa sylanbrc syl6eleqr adantr eleqtrd eluni2 sylib cmpt ccnv cima simprr
        wi simplrr fveq1 eleq1d eqid mptpreima elrab2 simprbi syl crab eqeltrrd
        simplrl rabid elunii syl2anc rexlimdvaa expr ralimdva ex com23 impr imp
        cab crn wss sselda adantrr rnmpt2 syl6eleq abid rexim sylc rexlimddv wn
        eldifn ralnex pm2.65da nexdv pm2.65i ) AUCUEZEUFZHUEZXRUGZXTJUGZUHZKUHZ
        UIUJZHEUKZVHZUCULABCDEFGUCHIJKLMNOPQRSTUAUBUMAYGUCAYGYAYDUJZHEUNZAYGVHZ
        XRUDUEZUJZYIUDGYJXRGUHZUJYLUDGUNYJXRMYMYJXRIEIUEZJUGZUHZUQZMYJXSYNXRUGZ
        YPUJZIEUKZXRYQUJAXSYFUOYFYTAXSYFYAYCUJZHEUKYTYEUUAHEYAYCYDUPURYSUUAIHEY
        NXTUSZYRYAYPYCYNXTXRUTUUBYOYBYNXTJUTVAVBVCVDVEIEYPXRUCVFVGVIOVJAMYMUSYG
        TVKVLUDXRGVMVNYJYKGUJZYLVHZVHZYKCMXTCUEZUGZVOZVPDUEZVQZUSZDYBUNZYHVSZHE
        UKZUULHEUNZYIYJUUDUUNAXSYFUUDUUNVSAXSVHZUUDYFUUNUUPUUDYFUUNVSUUPUUDVHZY
        EUUMHEUUQXTEUJZYEUUMUUQUURYEVHZVHZUUKYHDYBUUTUUIYBUJZUUKVHZVHZYAUUIUJZU
        UIKUJYHUVCXRUUJUJZUVDUVCXRYKUUJUUTYLUVBUUPUUCYLUUSVTVKUUTUVAUUKVRZVLUVE
        XRMUJUVDUUGUUIUJUVDCXRMUUJUUFXRUSUUGYAUUIXTUUFXRWAWBCMUUGUUIUUHUUHWCWDW
        EWFWGUVCUUIUUJGUJZDYBWHZKUVCUVAUVGUUIUVHUJUUTUVAUUKUOUVCYKUUJGUVFUUTUUC
        UVBUUPUUCYLUUSWJVKWIUVGDYBWKVIUBVJYAUUIKWLWMWNWOWPWQWRWSWTUUEYKUUOUDXAZ
        UJUUOUUEYKFXBZUVIYJUUCYKUVJUJYLYJGUVJYKAGUVJXCYGSVKXDXEHDUDEYBUUJFNXFXG
        UUOUDXHVNUULYHHEXIXJXKYJYHXLZHEUKZYIXLYFUVLAXSYEUVKHEYAYCYDXMURVEYHHEXN
        VNXOXPXQ $.
    $}

    $d z ph $.
    $( Lemma for ~ ptcmp .  (Contributed by Mario Carneiro, 26-Aug-2015.) $)
    ptcmplem5 $p |- ( ph -> ( Xt_ ` F ) e. Comp ) $=
      ( vz cfv wceq wa wcel crn csn cun cpt cufl ccrd cdm cin inss1 sseldi cuni
      vy cfi ctg ptcmplem1 simpld simprd cv wss cpw cfn wrex wi elpwi cmpt ccnv
      wn cima crab ad2antrr ccmp wf simplrl simplrr simpr imaeq2 eleq1d cbvrabv
      ptcmplem4 iman mpbir expr sylan2 adantlr selpw cdif eldif elpwunsn sylbir
      sylanbr adantll snssi adantl snfi a1i elfpw sylanbrc unisng eqcomd eqeq2d
      unieq rspcev syl2anc a1d syldan pm2.61dan impr alexsub ) AULPEUAZJUBZUCZH
      UDQZJAUEUFUGZUHZUEJUEXMUIOUJAJXKUKRZXLXKUMQUNQRZABCDEFGHIJKLMNOUOZUPAXOXP
      XQUQAULURZXKUSZJXRUKRZJPURZUKZRZPXRUTVAUHZVBZAXSSZXRXIUTZTZXTYEVCZAYHYIXS
      YHAXRXIUSZYIXRXIVDAYJXTYEAYJXTSZSZYEVCYLYEVGZSZVGYNPBCDEXRFGHBJFURZBURQVE
      VFZYAVHZXRTZPYOHQZVIIJKLADITYKYMMVJADVKHVLYKYMNVJAJXNTYKYMOVJAYJXTYMVMAYJ
      XTYMVNYLYMVOYRYPCURZVHZXRTPCYSYAYTRYQUUAXRYAYTYPVPVQVRVSYLYEVTWAWBWCWDYFY
      HVGZJXRTZYIXSUUBUUCAXSXRXKUTZTZUUBUUCULXKWEUUEUUBSXRUUDYGWFTUUCXRUUDYGWGX
      RXIJWHWIWJWKYFUUCSZYEXTUUFXJYDTZJXJUKZRZYEUUFXJXRUSZXJVATZUUGUUCUUJYFJXRW
      LWMUUKUUFJWNWOXJXRWPWQUUCUUIYFUUCUUHJJXRWRWSWMYCUUIPXJYDYAXJRYBUUHJYAXJXA
      WTXBXCXDXEXFXGXH $.
  $}

  ${
    $d a b k m n u w A $.  $d a b k m n u w F $.  $d k m n u w V $.
    $d k m u X $.
    ptcmpg.1 $e |- J = ( Xt_ ` F ) $.
    ptcmpg.2 $e |- X = U. J $.
    $( Tychonoff's theorem:  The product of compact spaces is compact.  The
       choice principles needed are encoded in the last hypothesis: the base
       set of the product must be well-orderable and satisfy the ultrafilter
       lemma.  Both these assumptions are satisfied if ` ~P ~P X ` is
       well-orderable, so if we assume the Axiom of Choice we can eliminate
       them (see ~ ptcmp ).  (Contributed by Mario Carneiro, 27-Aug-2015.) $)
    ptcmpg $p |- ( ( A e. V /\ F : A --> Comp /\ X e. ( UFL i^i dom card ) ) ->
        J e. Comp ) $=
      ( vw vu va vb vn vk vm ccmp cfv cv cuni nfcv ctop wcel wf cdm cin w3a cpt
      cufl ccrd cixp cmpt ccnv cmpt2 fveq2 weq mpteq2dv cnveqd imaeq1d sylan9eq
      cima imaeq2 cbvmpt2x unieqd cbvixpv simp1 simp2 wceq wss cmptop ssriv fss
      sylancl ptuni syl2anc syl6eqr simp3 eqeltrd ptcmplem5 syl5eqel ) ADUAZAOB
      UBZEUGUHUCUDZUAZUEZCBUFPOFWCHIAJKAJQZBPZHLALQZBPZRZUIZWDHQZPZUJZUKZKQZUSZ
      ULMNBDWIJKMIAWEWOMQZBPZHWIWPWJPZUJZUKZIQZUSZMWESJWQSMWOSIWOSJXBSKXBSWDWPB
      UMJMUNZKIUNWOWTWNUSXBXCWMWTWNXCWLWSXCHWIWKWRWDWPWJUMUOUPUQWNXAWTUTURVALNA
      WHNQZBPZRLNUNWGXEWFXDBUMVBVCVSVTWBVDZVSVTWBVEZWCWIEWAWCWICRZEWCVSATBUBZWI
      XHVFXFWCVTOTVGXIXGMOTWPVHVIAOTBVJVKLABCDFVLVMGVNVSVTWBVOVPVQVR $.
  $}

  $( Tychonoff's theorem:  The product of compact spaces is compact.  The proof
     uses the Axiom of Choice.  (Contributed by Mario Carneiro,
     26-Aug-2015.) $)
  ptcmp $p |- ( ( A e. V /\ F : A --> Comp ) -> ( Xt_ ` F ) e. Comp ) $=
    ( wcel ccmp cpt cfv cuni cufl ccrd cdm cin cvv fvex uniex wac wceq eleqtrri
    wf eqid axac3 acufl ax-mp cardeqv elin mpbir2an ptcmpg mp3an3 ) ACDAEBSBFGZ
    HZIJKZLDZUIEDULUJIDUJUKDUJMIUIBFNOZPIMQUAUBUCRUJMUKUMUDRUJIUKUEUFABUICUJUIT
    UJTUGUH $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Extension by continuity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CnExt $.

  $( Extend class notation with the continuous extension operation. $)
  ccnext $a class CnExt $.

  ${
    $d j k f x $.
    $( Define the continuous extension of a given function.  (Contributed by
       Thierry Arnoux, 1-Dec-2017.) $)
    df-cnext $a |- CnExt = ( j e. Top , k e. Top |->
      ( f e. ( U. k ^pm U. j ) |-> U_ x e. ( ( cls ` j ) ` dom f ) ( { x } X.
      ( ( k fLimf ( ( ( nei ` j ) ` { x } ) |`t dom f ) ) ` f ) ) ) ) $.
  $}

  ${
    $d f j k x J $.  $d f j k x K $.
    $( The function applying continuous extension to a given function ` f ` .
       (Contributed by Thierry Arnoux, 1-Dec-2017.) $)
    cnextval $p |- ( ( J e. Top /\ K e. Top ) -> ( J CnExt K )
      = ( f e. ( U. K ^pm U. J ) |-> U_ x e. ( ( cls ` J ) ` dom f ) ( { x } X.
      ( ( K fLimf ( ( ( nei ` J ) ` { x } ) |`t dom f ) ) ` f ) ) ) ) $=
      ( vj vk ctop cv cuni cpm co ccl cfv cnei crest cflf cxp ciun cmpt fveq1d
      cdm ccnext wceq unieq oveq2d fveq2 oveq1d xpeq2d iuneq12d mpteq12dv oveq1
      csn iuneq2d df-cnext ovex mptex ovmpt2 ) EFCDGGBFHZIZEHZIZJKZABHZUAZUTLMZ
      MZAHULZVCURVGUTNMZMZVDOKZPKZMZQZRZSBDIZCIZJKZAVDCLMZMZVGVCDVGCNMZMZVDOKZP
      KZMZQZRZSUBBUSVPJKZAVSVGVCURWBPKZMZQZRZSUTCUCZBVBVNWGWKWLVAVPUSJUTCUDUEWL
      AVFVSVMWJWLVDVEVRUTCLUFTWLVLWIVGWLVCVKWHWLVJWBURPWLVIWAVDOWLVGVHVTUTCNUFT
      UGUETUHUIUJURDUCZBWGWKVQWFWMUSVOVPJURDUDUGWMAVSWJWEWMWIWDVGWMVCWHWCURDWBP
      UKTUHUMUJABEFUNBVQWFVOVPJUOUPUQ $.

    $d f x A $.  $d f x B $.  $d f x F $.  $d f x X $.
    cnextfval.1 $e |- X = U. J $.
    cnextfval.2 $e |- B = U. K $.
    $( The continuous extension of a given function ` F ` .  (Contributed by
       Thierry Arnoux, 1-Dec-2017.) $)
    cnextfval $p |- ( ( ( J e. Top /\ K e. Top ) /\ ( F : A --> B /\ A C_ X ) )
      -> ( ( J CnExt K ) ` F ) = U_ x e. ( ( cls ` J ) ` A ) ( { x } X.
      ( ( K fLimf ( ( ( nei ` J ) ` { x } ) |`t A ) ) ` F ) ) ) $=
      ( vf ctop wcel wa wf cfv crest co cflf cvv wceq wss cdm ccl csn cnei ciun
      cv cxp cuni cpm ccnext cmpt cnextval adantr simpr dmeqd simplrl fdm eqtrd
      syl fveq2d oveq2d fveq12d xpeq2d iuneq12d uniexg ad2antlr ad2antrr feq23i
      eqid biimpi ad2antrl sseq2i ad2antll elpm2r syl22anc fvex snex xpex iunex
      a1i fvmptd ) EKLZFKLZMZBCDNZBGUAZMZMZJDAJUGZUBZEUCOZOZAUGZUDZWJFWOEUEOOZW
      KPQZRQZOZUHZUFZABWLOZWODFWPBPQZRQZOZUHZUFZFUIZEUIZUJQZEFUKQZSWEXKJXJXAULT
      WHAJEFUMUNWIWJDTZMZAWMXBWTXFXMWKBWLXMWKDUBZBXMWJDWIXLUOZUPXMWFXNBTWEWFWGX
      LUQBCDURUTUSZVAXMWSXEWOXMWJDWRXDXMWQXCFRXMWKBWPPXPVBVBXOVCVDVEWIXHSLZXISL
      ZBXHDNZBXIUAZDXJLWDXQWCWHFKVFVGWCXRWDWHEKVFVHWFXSWEWGWFXSBCBXHDBVJIVIVKVL
      WGXTWEWFWGXTGXIBHVMVKVNXHXIBDSSVOVPXGSLWIAXBXFBWLVQWOXEWNVRDXDVQVSVTWAWB
      $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x F $.  $d x J $.  $d x K $.
    cnextfrel.1 $e |- C = U. J $.
    cnextfrel.2 $e |- B = U. K $.
    $( In the general case, a continuous extension is a relation.  (Contributed
       by Thierry Arnoux, 20-Dec-2017.) $)
    cnextrel $p |- ( ( ( J e. Top /\ K e. Top ) /\ ( F : A --> B /\ A C_ C ) )
      -> Rel ( ( J CnExt K ) ` F ) ) $=
      ( vx ctop wcel wa wf wss ccnext co cfv wrel ccl cv csn cnei cflf cxp ciun
      crest wral relxp rgenw reliun mpbir cnextfval releqd mpbiri ) EJKFJKLABDM
      ACNLLZDEFOPQZRIAESQQZITUAZDFUREUBQQAUFPUCPQZUDZUEZRZVBUTRZIUQUGVCIUQURUSU
      HUIIUQUTUJUKUOUPVAIABDEFCGHULUMUN $.

    $d x y $.  $d y A $.  $d y B $.  $d y C $.  $d y F $.  $d y J $.  $d y K $.
    $( If the target space is Hausdorff, a continuous extension is a function.
       (Contributed by Thierry Arnoux, 20-Dec-2017.) $)
    cnextfun $p |- ( ( ( J e. Top /\ K e. Haus ) /\ ( F : A --> B /\ A C_ C ) )
      -> Fun ( ( J CnExt K ) ` F ) ) $=
      ( vx vy ctop wcel wa wss co cfv cv wmo wal sylanl2 cha wf ccnext wrel wbr
      wfun haustop cnextrel ccl cnei crest cflf wi cfil simpllr ctopon toptopon
      csn biimpi ad3antrrr simplrr sylibr clsss3 syl2anc simpr sseldd w3a trnei
      biimpa syl31anc simplrl hausflf syl3anc ex alrimiv moanimv albii cop ciun
      cxp df-br a1i wceq cnextfval eleq2d opeliunxp 3bitrd mobidv albidv mpbird
      wb dffun6 sylanbrc ) EKLZFUALZMZABDUBZACNZMZMZDEFUCOPZUDZIQZJQZXAUEZJRZIS
      ZXAUFWOWNFKLZWSXBFUGZABCDEFGHUHTWTXGXCAEUIPPZLZXDDFXCURZEUJPPAUKOZULOPZLZ
      MZJRZISZWTXKXOJRZUMZISXRWTXTIWTXKXSWTXKMZWOXMAUNPLZWQXSWNWOWSXKUOYAECUPPL
      ZWRXCCLZXKYBWNYCWOWSXKWNYCECGUQZUSUTZWPWQWRXKVAZYAXJCXCYAWNWRXJCNYAYCWNYF
      YEVBYGAECGVCVDWTXKVEZVFYHYCWRYDVGXKYBAXCECVHVIVJWPWQWRXKVKJDFXMBAHVLVMVNV
      OXQXTIXKXOJVPVQVBWTXFXQIWTXEXPJWTXEXCXDVRZXALZYIIXJXLXNVTVSZLZXPXEYJWKWTX
      CXDXAWAWBWTXAYKYIWOWNXHWSXAYKWCXIIABDEFCGHWDTWEYLXPWKWTIXJXNXDWFWBWGWHWIW
      JIJXAWLWM $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x C $.  $d x y F $.  $d x y J $.  $d x y K $.
    $d x y X $.  $d x y ph $.
    cnextf.1 $e |- C = U. J $.
    cnextf.2 $e |- B = U. K $.
    cnextf.3 $e |- ( ph -> J e. Top ) $.
    cnextf.4 $e |- ( ph -> K e. Haus ) $.
    cnextf.5 $e |- ( ph -> F : A --> B ) $.
    cnextf.a $e |- ( ph -> A C_ C ) $.
    cnextf.6 $e |- ( ph -> ( ( cls ` J ) ` A ) = C ) $.
    cnextf.7 $e |- ( ( ph /\ x e. C ) ->
             ( ( K fLimf ( ( ( nei ` J ) ` { x } ) |`t A ) ) ` F ) =/= (/) ) $.
    $( The value of the continuous extension of a given function ` F ` at a
       point ` X ` .  (Contributed by Thierry Arnoux, 21-Dec-2017.) $)
    cnextfvval $p |- ( ( ph /\ X e. C ) -> ( ( ( J CnExt K ) ` F ) ` X ) =
      U. ( ( K fLimf ( ( ( nei ` J ) ` { X } ) |`t A ) ) ` F ) ) $=
      ( wcel cfv adantr wa ccnext co wfun csn cnei crest cflf cuni wbr wceq cha
      ctop wf wss cnextfun syl22anc cop ccl cv cxp ciun biimpar fvex uniex snid
      eleq2d c1o cen wi sneq fveq2d oveq1d oveq2d fveq1d breq1d imbi2d cfil wne
      c0 ctopon toptopon sylib simpr w3a trnei biimpa syl31anc hausflf2 vtoclga
      expcom impcom en1b syl5eleqr wb nfiu1 nfel2 nfv nfbi opeq1 eleq1d anbi12d
      eleq1 bibi12d opeliunxp vtoclg1f adantl mpbir2and df-br haustop cnextfval
      syl syl5bb mpbird funbrfv sylc ) AIERZUAZFGHUBUCSZUDZIFHIUEZGUFSZSZCUGUCZ
      UHUCZSZUIZXSUJZIXSSYGUKXRGUMRZHULRZCDFUNZCEUOZXTAYIXQLTZAYJXQMTAYKXQNTZAY
      LXQOTZCDEFGHJKUPUQXRYHIYGURZBCGUSSSZBUTZUEZFHYSYBSZCUGUCZUHUCZSZVAZVBZRZX
      RUUFIYQRZYGYFRZAUUGXQAYQEIPVGVCXRYGYGUEZYFYGYFFYEVDVEVFXRYFVHVIUJZYFUUIUK
      XQAUUJAUUCVHVIUJZVJAUUJVJBIEYRIUKZUUKUUJAUULUUCYFVHVIUULFUUBYEUULUUAYDHUH
      UULYTYCCUGUULYSYAYBYRIVKVLVMVNVOZVPVQAYRERZUUKAUUNUAZYJUUACVRSRZYKUUCVTVS
      UUKAYJUUNMTUUOGEWASRZYLUUNYRYQRZUUPUUOYIUUQAYIUUNLTGEJWBWCAYLUUNOTAUUNWDA
      UURUUNAYQEYRPVGVCUUQYLUUNWEUURUUPCYRGEWFWGWHAYKUUNNTQFHUUADCKWIWHWKWJWLYF
      WMWCWNXQUUFUUGUUHUAZWOZAYRYGURZUUERZUURYGUUCRZUAZWOUUTBIEUUFUUSBBYPUUEBYQ
      UUDWPWQUUSBWRWSUULUVBUUFUVDUUSUULUVAYPUUEYRIYGWTXAUULUURUUGUVCUUHYRIYQXCU
      ULUUCYFYGUUMVGXBXDBYQUUCYGXEXFXGXHYHYPXSRXRUUFIYGXSXIXRXSUUEYPXRYIHUMRZYK
      YLXSUUEUKYMAUVEXQAYJUVEMHXJXLTYNYOBCDFGHEJKXKUQVGXMXNIYGXSXOXP $.

    $( Extension by continuity.  The extension by continuity is a function.
       (Contributed by Thierry Arnoux, 25-Dec-2017.) $)
    cnextf $p |- ( ph -> ( ( J CnExt K ) ` F ) : C --> B ) $=
      ( vy cfv wss wcel ccnext wfn crn wfun cdm wceq ctop cha cnextfun syl22anc
      co wf cv cop wex cab wa ccl csn cnei crest simpl eleq2d biimpar c0 wne n0
      cflf sylib ciun haustop cnextfval opeliunxp syl6bb exbidv 19.42v syl12anc
      cxp syl simprbda adantr mpbid impbida dfdm3 syl6reqr df-fn sylanbrc rneqd
      wb abbi2dv rniun wral vex snnz rnxp ax-mp biimpa ctopon cfil toptopon w3a
      simpr trnei syl31anc flfelbas ex syl3anc syldan syl5eqss ralrimiva sylibr
      ssrdv iunss eqsstrd df-f ) AFGHUAUKRZEUBZXPUCZDSEDXPULAXPUDZXPUEZEUFXQAGU
      GTZHUHTZCDFULZCESZXSKLMNCDEFGHIJUIUJAEBUMZQUMZUNZXPTZQUOZBUPXTAYIBEAYEETZ
      YIAYJUQZAYECGURRRZTZYFFHYEUSZGUTRRCVAUKZVHUKRZTZQUOZYIAYJVBAYMYJAYLEYEOVC
      ZVDZYKYPVEVFYRPQYPVGVIAYIYMYRUQZAYIYMYQUQZQUOUUAAYHUUBQAYHYGBYLYNYPVRZVJZ
      TUUBAXPUUDYGAYAHUGTZYCYDXPUUDUFKAYBUUELHVKVSZMNBCDFGHEIJVLUJZVCBYLYPYFVMV
      NVOYMYQQVPVNZVDVQAYIUQYMYJAYIYMYRUUHVTAYMYJWIYIYSWAWBWCWJBQXPWDWEXPEWFWGA
      XRUUDUCZDAXPUUDUUGWHAUUIBYLUUCUCZVJZDBYLUUCWKAUUJDSZBYLWLUUKDSAUULBYLAYMU
      QUUJYPDYNVEVFUUJYPUFYEBWMWNYNYPWOWPAYMYJYPDSZAYMYJYSWQYKHDWRRTZYOCWSRTZYC
      UUMAUUNYJAUUEUUNUUFHDJWTVIWAYKGEWRRTZYDYJYMUUOAUUPYJAYAUUPKGEIWTVIWAAYDYJ
      NWAAYJXBYTUUPYDYJXAYMUUOCYEGEXCWQXDAYCYJMWAUUNUUOYCXAZQYPDUUQYQYFDTYFFHYO
      DCXEXFXLXGXHXIXJBYLUUJDXMXKXIXNEDXPXOWG $.

    $d b d u v x y z A $.  $d b u v w x y B $.  $d b c d u v w x y C $.
    $d b c d u v w x y z F $.  $d b c d u v w x y z J $.
    $d b c d u v w x y z K $.  $d b c d u v w x y z ph $.
    cnextcn.8 $e |- ( ph -> K e. Reg ) $.
    $( Extension by continuity.  Theorem 1 of [BourbakiTop1] p.  I.57.  Given a
       topology ` J ` on ` C ` , a subset ` A ` dense in ` C ` , this states a
       condition for ` F ` from ` A ` to a regular space ` K ` to be extensible
       by continuity.  (Contributed by Thierry Arnoux, 1-Jan-2018.) $)
    cnextcn $p |- ( ph -> ( ( J CnExt K ) ` F ) e. ( J Cn K ) ) $=
      ( cfv wcel wa vv vw vz vd vu vb vy vc ccnext co ccn cv cima wss cnei wrex
      csn wral simpll cin ccl w3a simpr3 ctop ad2antrr simpr2 neii2 syl2anc vex
      wi snss biimpri anim1i anim2i 3anass anbi1i anbi2i 3bitri opnneip syl3an1
      ex anass adantr cha syl clsss syl3anc sstr sylan anim2d reximdv2 syl21anc
      wf imp crest simpr simplr wceq cvv wb fvexd ctopon toptopon sylib reximdv
      fveq2d cflf cuni c0 wne weq eleq1 anbi2d sneq oveq1d oveq2d fveq1d neeq1d
      imbi12d chvarv cnextfvval uniex c1o cen wbr eleq2d biimpar trnei hausflf2
      fvex mpbid syl31anc en1b eqeltrd neii1 mpd r19.29a sylc sseldd ralrimiva
      imdistanri jca sylbir syl6 haustop crn imassrn syl5ss ssrin imass2 adantl
      frn an32s syld 3anassrs simp-4l elfvexd ssexd elrest biimpa imaeq2 sseq1d
      biimpcd syl5 syl12anc simplll snid cfil syl5eleqr flfnei simprd ad3antrrr
      r19.21bi 3an1rs adantllr creg simprl regsep expcom ad2antll reximi 3expib
      anim1d syl5bir eltopss 3expa elrestr cfm cflim flfval cfg uniexg syl5eqel
      cfbas filfbas fgfil eleqtrrd eqid imaelfm flimclsi eqsstrd sylibr adantlr
      eqsstr3d expl wfun cdm ffun fdm sseqtr4d funimass4 biimprd reximdva cnnei
      cnextf mpbird ) AFGHUIUJRZGHUKUJSZUXQUAULZUMUBULZUNZUABULZUQZGUORZRZUPZUB
[encoded data, 4478 characters]
      $.

    ${
      $d v w y A $.
      cnextfres1.1 $e |- ( ph -> F e. ( ( J |`t A ) Cn K ) ) $.
      $( ` F ` and its extension by continuity agree on the domain of ` F ` .
         (Contributed by Thierry Arnoux, 17-Jan-2018.) $)
      cnextfres1 $p |- ( ph -> ( ( ( J CnExt K ) ` F ) |` A ) = F ) $=
        ( cfv wcel vy vv vw ccnext co wfn wss wf cnextf ffn syl fnssres syl2anc
        cres cv wa csn cnei crest cflf cuni wceq fvres adantl sselda cnextfvval
        syldan c1o cen wbr cima wrex wral ffvelrnda ctop restuni adantr eleqtrd
        simpr ccn cvv ccl fvex syl6eqelr ssexd resttop haustop feq2d mpbid eqid
        wb cha cnnei syl3anc r19.21bi snssi neitr rexeqdv ralrimiva ctopon cfil
        toptopon biimpi 3syl eleqtrrd sylib trnei flfnei mpbir2and c0 wne eleq1
        anbi2d sneq fveq2d oveq1d oveq2d fveq1d neeq1d chvarv hausflf2 syl31anc
        wi imbi12d en1eqsn unieqd unisn syl6eq 3eqtrd eqfnfvd ) AUACFGHUDUESZCU
        NZFAYKEUFZCEUGZYLCUFAEDYKUHYMABCDEFGHIJKLMNOPUIEDYKUJUKNECYKULUMACDFUHZ
        FCUFMCDFUJUKAUAUOZCTZUPZYPYLSZYPYKSZFHYPUQZGURSZSZCUSUEZUTUEZSZVAZYPFSZ
        YQYSYTVBAYPCYKVCVDAYQYPETZYTUUGVBACEYPNVEZABCDEFGHYPIJKLMNOPVFVGYRUUGUU
        HUQZVAUUHYRUUFUUKYRUUHUUFTZUUFVHVIVJZUUFUUKVBYRUULUUHDTZFUBUOVKUCUOZUGZ
        UBUUDVLZUCUUKHURSSZVMZACDYPFMVNYRUUQUCUURYRUUOUURTZUPUUPUBUUAGCUSUEZURS
        SZVLZUUQYRUVCUCUURAYQYPUVAVAZTUVCUCUURVMZYRYPCUVDAYQVSACUVDVBZYQAGVOTZY
        NUVFKNCGEIVPUMZVQVRAUVEUAUVDAFUVAHVTUETZUVEUAUVDVMZRAUVAVOTZHVOTZUVDDFU
        HZUVIUVJWKAUVGCWATUVKKACEWAAECGWBSZSZWAOCUVNWCWDNWECGWAWFUMAHWLTZUVLLHW
        GZUKAYOUVMMACUVDDFUVHWHWIUCUBFUVAHUVDDUAUVDWJJWMWNWIWOVGWOYRUVCUUQWKUUT
        YRUUPUBUVBUUDYRUVGYNUUACUGZUVBUUDVBAUVGYQKVQAYNYQNVQZYQUVRAYPCWPVDCUUAG
        EIWQWNWRVQWIWSYRHDWTSTZUUDCXASTZYOUULUUNUUSUPWKYRUVPUVLUVTAUVPYQLVQZUVQ
        UVLUVTHDJXBXCXDYRYPUVOTZUWAYRYPEUVOUUJAUVOEVBYQOVQXEYRGEWTSTZYNUUIUWCUW
        AWKAUWDYQAUVGUWDKGEIXBXFVQUVSUUJCYPGEXGWNWIZAYOYQMVQZUUHUCFHUUDDCUBXHWN
        XIYRUVPUWAYOUUFXJXKZUUMUWBUWEUWFAYQUUIUWGUUJABUOZETZUPZFHUWHUQZUUBSZCUS
        UEZUTUEZSZXJXKZYCAUUIUPZUWGYCBUAUWHYPVBZUWJUWQUWPUWGUWRUWIUUIAUWHYPEXLX
        MUWRUWOUUFXJUWRFUWNUUEUWRUWMUUDHUTUWRUWLUUCCUSUWRUWKUUAUUBUWHYPXNXOXPXQ
        XRXSYDPXTVGFHUUDDCJYAYBUUHUUFYEUMYFUUHYPFWCYGYHYIYJ $.
    $}
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.  $d F x $.  $d J x $.  $d K x $.  $d X x $.
    cnextfres.c $e |- C = U. J $.
    cnextfres.b $e |- B = U. K $.
    cnextfres.j $e |- ( ph -> J e. Top ) $.
    cnextfres.k $e |- ( ph -> K e. Haus ) $.
    cnextfres.a $e |- ( ph -> A C_ C ) $.
    cnextfres.1 $e |- ( ph -> F e. ( ( J |`t A ) Cn K ) ) $.
    cnextfres.x $e |- ( ph -> X e. A ) $.
    $( ` F ` and its extension by continuity agree on the domain of ` F ` .
       (Contributed by Thierry Arnoux, 29-Aug-2020.) $)
    cnextfres $p |- ( ph -> ( ( ( J CnExt K ) ` F ) ` X ) = ( F ` X ) ) $=
      ( vx co cfv wceq wcel ccnext wfun wbr ctop cha wf wss crest cuni ccn eqid
      cnf syl restuni syl2anc mpbird cnextfun syl22anc cop ccl cv csn cnei cflf
      feq2d cxp ciun wa sseldd flfcntr jca sneq fveq2d oveq1d oveq2d opeliunxp2
      sscls fveq1d sylibr haustop cnextfval eleq2d df-br funbrfv imp ) AEFGUAQR
      ZUBZHHERZWFUCZHWFRWHSZAFUDTZGUETZBCEUFZBDUGZWGKLAWMFBUHQZUIZCEUFZAEWOGUJQ
      TWQNEWOGWPCWPUKJULUMABWPCEAWKWNBWPSKMBFDIUNUOVEUPZMBCDEFGIJUQURAHWHUSZWFT
      ZWIAWTWSPBFUTRRZPVAZVBZEGXCFVCRZRZBUHQZVDQZRZVFVGZTZAHXATZWHEGHVBZXDRZBUH
      QZVDQZRZTZVHXJAXKXQABXAHAWKWNBXAUGKMBFDIVQUOOVIABCDEFGHIJKMNOVJVKPXAXHHWH
      XPXBHSZEXGXOXRXFXNGVDXRXEXMBUHXRXCXLXDXBHVLVMVNVOVRVPVSAWFXIWSAWKGUDTZWMW
      NWFXISKAWLXSLGVTUMWRMPBCEFGDIJWAURWBUPHWHWFWCVSWGWIWJHWHWFWDWEUO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Topological groups
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c TopMnd $.
  $c TopGrp $.

  $( Extend class notation with the class of all topological monoids. $)
  ctmd $a class TopMnd $.

  $( Extend class notation with the class of all topological groups. $)
  ctgp $a class TopGrp $.

  ${
    $d f j $.
    $( Define the class of all topological monoids.  A topological monoid is a
       monoid whose operation is continuous.  (Contributed by Mario Carneiro,
       19-Sep-2015.) $)
    df-tmd $a |- TopMnd = { f e. ( Mnd i^i TopSp ) |
     [. ( TopOpen ` f ) / j ]. ( +f ` f ) e. ( ( j tX j ) Cn j ) } $.

    $( Define the class of all topological groups.  A topological group is a
       group whose operation and inverse function are continuous.  (Contributed
       by FL, 18-Apr-2010.) $)
    df-tgp $a |- TopGrp = { f e. ( Grp i^i TopMnd ) |
     [. ( TopOpen ` f ) / j ]. ( invg ` f ) e. ( j Cn j ) } $.
  $}

  ${
    $d f j F $.  $d f j G $.  $d f j J $.
    istmd.1 $e |- F = ( +f ` G ) $.
    istmd.2 $e |- J = ( TopOpen ` G ) $.
    $( The predicate "is a topological monoid".  (Contributed by Mario
       Carneiro, 19-Sep-2015.) $)
    istmd $p |- ( G e. TopMnd <-> ( G e. Mnd /\ G e. TopSp /\
      F e. ( ( J tX J ) Cn J ) ) ) $=
      ( vf vj cmnd ctps wcel ctx co ccn wa ctmd cv cplusf cfv ctopn wceq anbi1i
      cin w3a elin wsbc cvv fvexd simpl fveq2d syl6eqr id fveq2 oveq12d eleq12d
      sylan9eqr sbcied df-tmd elrab2 df-3an 3bitr4i ) BHIUBZJZACCKLZCMLZJZNBHJZ
      BIJZNZVENBOJVFVGVEUCVBVHVEBHIUDUAFPZQRZGPZVKKLZVKMLZJZGVISRZUEVEFBVAOVIBT
      ZVNVEGVOUFVPVISUGVPVKVOTZNZVJAVMVDVRVJBQRAVRVIBQVPVQUHUIDUJVRVLVCVKCMVRVK
      CVKCKVQVPVKVOCVQUKVPVOBSRCVIBSULEUJUOZVSUMVSUMUNUPFGUQURVFVGVEUSUT $.
  $}

  $( A topological monoid is a monoid.  (Contributed by Mario Carneiro,
     19-Sep-2015.) $)
  tmdmnd $p |- ( G e. TopMnd -> G e. Mnd ) $=
    ( ctmd wcel cmnd ctps cplusf cfv ctopn ctx co ccn eqid istmd simp1bi ) ABCA
    DCAECAFGZAHGZPIJPKJCOAPOLPLMN $.

  $( A topological monoid is a topological space.  (Contributed by Mario
     Carneiro, 19-Sep-2015.) $)
  tmdtps $p |- ( G e. TopMnd -> G e. TopSp ) $=
    ( ctmd wcel cmnd ctps cplusf cfv ctopn ctx co ccn eqid istmd simp2bi ) ABCA
    DCAECAFGZAHGZPIJPKJCOAPOLPLMN $.

  ${
    $d f j G $.  $d f j I $.  $d f j J $.
    istgp.1 $e |- J = ( TopOpen ` G ) $.
    istgp.2 $e |- I = ( invg ` G ) $.
    $( The predicate "is a topological group".  Definition of [BourbakiTop1]
       p.  III.1.  (Contributed by FL, 18-Apr-2010.)  (Revised by Mario
       Carneiro, 13-Aug-2015.) $)
    istgp $p |- ( G e. TopGrp <->
      ( G e. Grp /\ G e. TopMnd /\ I e. ( J Cn J ) ) ) $=
      ( vf vj cgrp ctmd wcel ccn co wa ctgp cv cminusg cfv ctopn wceq syl6eqr
      cin w3a elin anbi1i wsbc cvv fvexd simpl fveq2d sylan9eqr oveq12d eleq12d
      id fveq2 sbcied df-tgp elrab2 df-3an 3bitr4i ) AHIUAZJZBCCKLZJZMAHJZAIJZM
      ZVCMANJVDVEVCUBVAVFVCAHIUCUDFOZPQZGOZVIKLZJZGVGRQZUEVCFAUTNVGASZVKVCGVLUF
      VMVGRUGVMVIVLSZMZVHBVJVBVOVHAPQBVOVGAPVMVNUHUIETVOVICVICKVNVMVIVLCVNUMVMV
      LARQCVGARUNDTUJZVPUKULUOFGUPUQVDVEVCURUS $.
  $}

  $( A topological group is a group.  (Contributed by FL, 18-Apr-2010.)
     (Revised by Mario Carneiro, 13-Aug-2015.) $)
  tgpgrp $p |- ( G e. TopGrp -> G e. Grp ) $=
    ( ctgp wcel cgrp ctmd cminusg cfv ctopn ccn co eqid istgp simp1bi ) ABCADCA
    ECAFGZAHGZOIJCANOOKNKLM $.

  $( A topological group is a topological monoid.  (Contributed by Mario
     Carneiro, 19-Sep-2015.) $)
  tgptmd $p |- ( G e. TopGrp -> G e. TopMnd ) $=
    ( ctgp wcel cgrp ctmd cminusg cfv ctopn ccn co eqid istgp simp2bi ) ABCADCA
    ECAFGZAHGZOIJCANOOKNKLM $.

  $( A topological group is a topological space.  (Contributed by FL,
     21-Jun-2010.)  (Revised by Mario Carneiro, 13-Aug-2015.) $)
  tgptps $p |- ( G e. TopGrp -> G e. TopSp ) $=
    ( ctgp wcel ctmd ctps tgptmd tmdtps syl ) ABCADCAECAFAGH $.

  ${
    tgpcn.j $e |- J = ( TopOpen ` G ) $.
    ${
      tgptopon.x $e |- X = ( Base ` G ) $.
      $( The topology of a topological monoid.  (Contributed by Mario Carneiro,
         27-Jun-2014.)  (Revised by Mario Carneiro, 13-Aug-2015.) $)
      tmdtopon $p |- ( G e. TopMnd -> J e. ( TopOn ` X ) ) $=
        ( ctmd wcel ctps ctopon cfv tmdtps istps sylib ) AFGAHGBCIJGAKCBAEDLM
        $.

      $( The topology of a topological group.  (Contributed by Mario Carneiro,
         27-Jun-2014.)  (Revised by Mario Carneiro, 13-Aug-2015.) $)
      tgptopon $p |- ( G e. TopGrp -> J e. ( TopOn ` X ) ) $=
        ( ctgp wcel ctps ctopon cfv tgptps istps sylib ) AFGAHGBCIJGAKCBAEDLM
        $.
    $}

    ${
      tgpcn.1 $e |- F = ( +f ` G ) $.
      $( In a topological monoid, the operation ` F ` representing the
         functionalization of the operator slot ` +g ` is continuous.
         (Contributed by Mario Carneiro, 19-Sep-2015.) $)
      tmdcn $p |- ( G e. TopMnd -> F e. ( ( J tX J ) Cn J ) ) $=
        ( ctmd wcel cmnd ctps ctx co ccn istmd simp3bi ) BFGBHGBIGACCJKCLKGABCE
        DMN $.

      $( In a topological group, the operation ` F ` representing the
         functionalization of the operator slot ` +g ` is continuous.
         (Contributed by FL, 21-Jun-2010.)  (Revised by Mario Carneiro,
         13-Aug-2015.) $)
      tgpcn $p |- ( G e. TopGrp -> F e. ( ( J tX J ) Cn J ) ) $=
        ( ctgp wcel ctmd ctx co ccn tgptmd tmdcn syl ) BFGBHGACCIJCKJGBLABCDEMN
        $.
    $}

    ${
      tgpinv.5 $e |- I = ( invg ` G ) $.
      $( In a topological group, the inverse function is continuous.
         (Contributed by FL, 21-Jun-2010.)  (Revised by FL, 27-Jun-2014.) $)
      tgpinv $p |- ( G e. TopGrp -> I e. ( J Cn J ) ) $=
        ( ctgp wcel cgrp ctmd ccn co istgp simp3bi ) AFGAHGAIGBCCJKGABCDELM $.

      $( The inverse function in a topological group is a homeomorphism from
         the group to itself.  (Contributed by Mario Carneiro, 14-Aug-2015.) $)
      grpinvhmeo $p |- ( G e. TopGrp -> I e. ( J Homeo J ) ) $=
        ( ctgp wcel ccn co ccnv chmeo tgpinv cgrp wceq tgpgrp cbs cfv grpinvcnv
        eqid syl eqeltrd ishmeo sylanbrc ) AFGZBCCHIZGBJZUEGBCCKIGABCDELZUDUFBU
        EUDAMGUFBNAOAPQZABUHSERTUGUABCCUBUC $.
    $}

    $d x y G $.  $d x y J $.  $d x K $.  $d x y ph $.  $d x y X $.  $d x y Y $.
    cnmpt1plusg.p $e |- .+ = ( +g ` G ) $.
    cnmpt1plusg.g $e |- ( ph -> G e. TopMnd ) $.
    cnmpt1plusg.k $e |- ( ph -> K e. ( TopOn ` X ) ) $.
    ${
      cnmpt1plusg.a $e |- ( ph -> ( x e. X |-> A ) e. ( K Cn J ) ) $.
      cnmpt1plusg.b $e |- ( ph -> ( x e. X |-> B ) e. ( K Cn J ) ) $.
      $( Continuity of the group sum; analogue of ~ cnmpt12f which cannot be
         used directly because ` +g ` is not a function.  (Contributed by Mario
         Carneiro, 23-Aug-2015.) $)
      cnmpt1plusg $p |- ( ph -> ( x e. X |-> ( A .+ B ) ) e. ( K Cn J ) ) $=
        ( cfv co cmpt wcel eqid cplusf ccn cv wa cbs wceq wf wral ctmd tmdtopon
        ctopon syl cnf2 syl3anc fmpt sylibr r19.21bi plusfval syl2anc mpteq2dva
        ctx tmdcn cnmpt12f eqeltrrd ) ABICDFUAPZQZRBICDEQZRHGUBQZABIVFVGABUCISU
        DCFUEPZSZDVISZVFVGUFAVJBIAIVIBICRZUGZVJBIUHAHIUKPSZGVIUKPSZVLVHSVMMAFUI
        SZVOLFGVIJVITZUJULZNVLHGIVIUMUNBIVICVLVLTUOUPUQAVKBIAIVIBIDRZUGZVKBIUHA
        VNVOVSVHSVTMVROVSHGIVIUMUNBIVIDVSVSTUOUPUQVIEVEFCDVQKVETZURUSUTABCDVEHG
        GGIMNOAVPVEGGVAQGUBQSLVEFGJWAVBULVCVD $.
    $}

    cnmpt2plusg.l $e |- ( ph -> L e. ( TopOn ` Y ) ) $.
    cnmpt2plusg.a $e |- ( ph -> ( x e. X , y e. Y |-> A ) e.
                                ( ( K tX L ) Cn J ) ) $.
    cnmpt2plusg.b $e |- ( ph -> ( x e. X , y e. Y |-> B ) e.
                                ( ( K tX L ) Cn J ) ) $.
    $( Continuity of the group sum; analogue of ~ cnmpt22f which cannot be used
       directly because ` +g ` is not a function.  (Contributed by Mario
       Carneiro, 23-Aug-2015.) $)
    cnmpt2plusg $p |- ( ph ->
        ( x e. X , y e. Y |-> ( A .+ B ) ) e. ( ( K tX L ) Cn J ) ) $=
      ( wcel cplusf cfv co cmpt2 ctx ccn cv w3a cbs wceq wa wral cxp wf txtopon
      ctopon syl2anc ctmd eqid tmdtopon syl syl3anc fmpt2 sylibr r19.21bi 3impa
      cnf2 plusfval mpt2eq3dva tmdcn cnmpt22f eqeltrrd ) ABCKLDEGUAUBZUCZUDBCKL
      DEFUCZUDIJUEUCZHUFUCZABCKLVNVOABUGKTZCUGLTZUHDGUIUBZTZEVTTZVNVOUJAVRVSWAA
      VRUKZWACLAWACLULZBKAKLUMZVTBCKLDUDZUNZWDBKULAVPWEUPUBTZHVTUPUBTZWFVQTWGAI
      KUPUBTJLUPUBTWHPQIJKLUOUQZAGURTZWIOGHVTMVTUSZUTVAZRWFVPHWEVTVGVBBCKLDVTWF
      WFUSVCVDVEVEVFAVRVSWBWCWBCLAWBCLULZBKAWEVTBCKLEUDZUNZWNBKULAWHWIWOVQTWPWJ
      WMSWOVPHWEVTVGVBBCKLEVTWOWOUSVCVDVEVEVFVTFVMGDEWLNVMUSZVHUQVIABCDEVMIJHHH
      KLPQRSAWKVMHHUEUCHUFUCTOVMGHMWQVJVAVKVL $.
  $}

  ${
    $d u v x y z G $.  $d u v J $.  $d u v x y z U $.  $d u v X $.  $d u v Y $.
    $d z B $.
    tmdcn2.1 $e |- B = ( Base ` G ) $.
    tmdcn2.2 $e |- J = ( TopOpen ` G ) $.
    tmdcn2.3 $e |- .+ = ( +g ` G ) $.
    $( Write out the definition of continuity of ` +g ` explicitly.
       (Contributed by Mario Carneiro, 20-Sep-2015.) $)
    tmdcn2 $p |- ( ( ( G e. TopMnd /\ U e. J ) /\
      ( X e. B /\ Y e. B /\ ( X .+ Y ) e. U ) ) -> E. u e. J E. v e. J
        ( X e. u /\ Y e. v /\ A. x e. u A. y e. v ( x .+ y ) e. U ) ) $=
      ( vz wcel co cv cfv wral ctmd wa w3a cxp cplusf ccnv cima wss wrex ctopon
      tmdtopon ad2antrr ctx ccn cop cuni ccnp eqid tmdcn simpr1 opelxpi syl2anc
      simpr2 txtopon toponuni syl eleqtrd cncnpi simplr plusfval simpr3 eqeltrd
      wceq txcnpi dfss3 eleq1 wfn wb plusffn elpreima ax-mp syl6bb ralxp opelxp
      bitri df-ov syl5eqr sylbi eleq1d biimpa 2ralimi 3anim3i reximi ) HUAPZGIP
      ZUBZJEPZKEPZJKFQZGPZUCZUBZJDRZPZKCRZPZXCXEUDZHUESZUFGUGZUHZUCZCIUIZDIUIXD
      XFARZBRZFQZGPZBXETAXCTZUCZCIUIZDIUIXBCDJKGXHIIIEEWNIEUJSPZWOXAHIEMLUKULZY
      AXBXHIIUMQZIUNQPZJKUOZYBUPZPXHYDYBIUQQSPWNYCWOXAXHHIMXHURZUSULXBYDEEUDZYE
      XBWQWRYDYGPWPWQWRWTUTZWPWQWRWTVCZJKEEVAVBXBYBYGUJSPZYGYEVMXBXTXTYJYAYAIIE
      EVDVBYGYBVEVFVGYDXHYBIYEYEURVHVBWNWOXAVIYHYIXBJKXHQZWSGXBWQWRYKWSVMYHYIEF
      XHHJKLNYFVJVBWPWQWRWTVKVLVNXLXSDIXKXRCIXJXQXDXFXJXMXNUOZYGPZYLXHSZGPZUBZB
      XETAXCTZXQXJORZXIPZOXGTYQOXGXIVOYSYPOABXCXEYRYLVMYSYLXIPZYPYRYLXIVPXHYGVQ
      YTYPVREXHHLYFVSYGYLGXHVTWAWBWCWEYPXPABXCXEYMYOXPYMYNXOGYMXMEPXNEPUBZYNXOV
      MXMXNEEWDUUAYNXMXNXHQXOXMXNXHWFEFXHHXMXNLNYFVJWGWHWIWJWKWHWLWMWMVF $.
  $}

  ${
    $d x y G $.  $d x y J $.  $d x y .- $.
    tgpsubcn.2 $e |- J = ( TopOpen ` G ) $.
    tgpsubcn.3 $e |- .- = ( -g ` G ) $.
    $( In a topological group, the "subtraction" (or "division") is continuous.
       Axiom GT' of [BourbakiTop1] p.  III.1.  (Contributed by FL,
       21-Jun-2010.)  (Revised by Mario Carneiro, 19-Mar-2015.) $)
    tgpsubcn $p |- ( G e. TopGrp -> .- e. ( ( J tX J ) Cn J ) ) $=
      ( vx vy ctgp wcel cbs cfv cv cminusg cplusg cmpt2 ctx ccn eqid grpsubfval
      co tgptmd tgptopon cnmpt1st cnmpt2nd tgpinv cnmpt21f cnmpt2plusg syl5eqel
      ) AHIZCFGAJKZUJFLZGLZAMKZKZANKZTOBBPTBQTFGUJUOAUMCUJRZUORZUMRZESUIFGUKUNU
      OABBBUJUJDUQAUAABUJDUPUBZUSUIFGBBUJUJUSUSUCUIFGULUMBBBBUJUJUSUSUIFGBBUJUJ
      USUSUDAUMBDURUEUFUGUH $.

    $( A group with a topology is a topological group iff the subtraction
       operation is continuous.  (Contributed by Mario Carneiro,
       2-Sep-2015.) $)
    istgp2 $p |- ( G e. TopGrp <->
      ( G e. Grp /\ G e. TopSp /\ .- e. ( ( J tX J ) Cn J ) ) ) $=
      ( vx vy wcel co ccn w3a 3ad2ant1 simp2 cv cmpt2 eqid simp3 cmpt syl3anbrc
      cfv ctgp cgrp ctps ctx tgpgrp tgptps tgpsubcn 3jca ctmd simp1 cmnd cplusf
      cminusg grpmnd cplusg grpsubinv mpt2eq3dva plusffval syl6eqr ctopon istps
      cbs sylib cnmpt1st cnmpt2nd c0g grpinvf feqmptd wceq grpinvval2 mpteq2dva
      wf sylan eqtrd grpidcl cnmptc cnmptid cnmpt12f cnmpt21f cnmpt22f eqeltrrd
      eqeltrd istmd istgp impbii ) AUAHZAUBHZAUCHZCBBUDIBJIZHZKZWFWGWHWJAUEAUFA
      BCDEUGUHWKWGAUIHZAUMTZBBJIZHWFWGWHWJUJZWKAUKHZWHAULTZWIHWLWGWHWPWJAUNLWGW
      HWJMZWKFGAVBTZWSFNZGNZWMTZCIZOZWQWIWKXDFGWSWSWTXAAUOTZIZOWQWKFGWSWSXCXFWK
      WTWSHZXAWSHZKWSXEACWMWTXAWSPZXEPZEWMPZWKXGWGXHWOLWKXGXHMWKXGXHQUPUQFGWSXE
      WQAXIXJWQPZURUSWKFGWTXBCBBBBBWSWSWKWHBWSUTTHWRWSBAXIDVAVCZXMWKFGBBWSWSXMX
      MVDWKFGXAWMBBBBWSWSXMXMWKFGBBWSWSXMXMVEWKWMFWSAVFTZWTCIZRZWNWKWMFWSWTWMTZ
      RXPWKFWSWSWMWGWHWSWSWMVLWJWSAWMXIXKVGLVHWKFWSXQXOWKWGXGXQXOVIWOWSACWMWTXN
      XIEXKXNPZVJVMVKVNWKFXNWTCBBBBWSXMWKFXNBBWSWSXMXMWGWHXNWSHWJWSAXNXIXRVOLVP
      WKFBWSXMVQWGWHWJQZVRWBZVSXSVTWAWQABXLDWCSXTAWMBDXKWDSWE $.
  $}

  ${
    $d k n x y B $.  $d k n x y G $.  $d k n x y J $.  $d k n x y .x. $.
    $d n x N $.
    tgpmulg.j $e |- J = ( TopOpen ` G ) $.
    tgpmulg.t $e |- .x. = ( .g ` G ) $.
    ${
      tgpmulg.b $e |- B = ( Base ` G ) $.
      $( In a topological monoid, the n-times group multiple function is
         continuous.  (Contributed by Mario Carneiro, 19-Sep-2015.) $)
      tmdmulg $p |- ( ( G e. TopMnd /\ N e. NN0 ) ->
         ( x e. B |-> ( N .x. x ) ) e. ( J Cn J ) ) $=
        ( vy wcel cv co cmpt wi cfv wceq oveq1 eleq1d imbi2d vn vk cn0 ctmd ccn
        c0g c1 caddc cc0 eqid mulg0 sylan9eq mpteq2dva mpteq2dv tmdtopon tmdmnd
        cmnd mndidcl syl cnmptc wa cplusg oveq2 cbvmptv mulgnn0p1 syl3an1 3expa
        adantlr syl5eq simpll ctopon simpr syl5eqelr cnmptid cnmpt1plusg expcom
        eqeltrd ex a2d nn0ind impcom ) FUCKDUDKZABFALZCMZNZEEUEMZKZWBABUALZWCCM
        ZNZWFKZOWBABDUFPZNZWFKZOWBABUBLZWCCMZNZWFKZOWBABWOUGUHMZWCCMZNZWFKZOWBW
        GOUAUBFWHUIQZWKWNWBXCWJWMWFXCABWIWLXCWCBKWIUIWCCMWLWHUIWCCRBCDWCWLIWLUJ
        ZHUKULUMSTWHWOQZWKWRWBXEWJWQWFXEABWIWPWHWOWCCRUNSTWHWSQZWKXBWBXFWJXAWFX
        FABWIWTWHWSWCCRUNSTWHFQZWKWGWBXGWJWEWFXGABWIWDWHFWCCRUNSTWBAWLEEBBDEBGI
        UOZXHWBDUQKZWLBKDUPZBDWLIXDURUSUTWOUCKZWBWRXBWBXKWRXBOWBXKVAZWRXBXLWRVA
        ZXAJBWOJLZCMZXNDVBPZMZNZWFXMXAJBWSXNCMZNXRAJBWTXSWCXNWSCVCVDXMJBXSXQXLX
        NBKZXSXQQZWRWBXKXTYAWBXIXKXTYAXJBXPCDWOXNIHXPUJZVEVFVGVHUMVIXMJXOXNXPDE
        EBGYBWBXKWRVJZXMWBEBVKPKYCXHUSZXMJBXONWQWFAJBWPXOWCXNWOCVCVDXLWRVLVMXMJ
        EBYDVNVOVQVRVPVSVTWA $.

      $( In a topological group, the n-times group multiple function is
         continuous.  (Contributed by Mario Carneiro, 19-Sep-2015.) $)
      tgpmulg $p |- ( ( G e. TopGrp /\ N e. ZZ ) ->
         ( x e. B |-> ( N .x. x ) ) e. ( J Cn J ) ) $=
        ( ctgp wcel cz wa cn0 co cmpt cneg tmdmulg cfv ad2antrr cv cr cn tgptmd
        ccn ctmd sylan adantlr cminusg simpllr zcnd negnegd wceq eqid mulgnegnn
        oveq1d adantll eqtr3d mpteq2dva ctopon tgptopon adantr cnmpt11f eqeltrd
        nnnn0 syl2an tgpinv adantrl wo simpr elznn0nn sylib mpjaodan ) DJKZFLKZ
        MZFNKZABFAUAZCOZPZEEUEOZKZFUBKZFQZUCKZMZVNVQWBVOVNDUFKZVQWBDUDZABCDEFGH
        IRUGUHVPWEWBWCVPWEMZVTABWDVRCOZDUISZSZPWAWIABVSWLWIVRBKZMZWDQZVRCOZVSWL
        WNWOFVRCWNFWNFVNVOWEWMUJUKULUPWEWMWPWLUMVPBCDWKWDVRIHWKUNZUOUQURUSWIAWJ
        WKEEEBVNEBUTSKVOWEDEBGIVATVPWGWDNKABWJPWAKWEVNWGVOWHVBWDVEABCDEWDGHIRVF
        VNWKWAKVOWEDWKEGWQVGTVCVDVHVPVOVQWFVIVNVOVJFVKVLVM $.
    $}

    $( In a topological monoid, the group multiple function is jointly
       continuous (although this is not saying much as one of the factors is
       discrete).  Use ~ zdis to write the left topology as a subset of the
       complex numbers.  (Contributed by Mario Carneiro, 19-Sep-2015.) $)
    tgpmulg2 $p |- ( G e. TopGrp -> .x. e. ( ( ~P ZZ tX J ) Cn J ) ) $=
      ( vn vx ctgp wcel cvv cbs cfv zex a1i eqid tgptopon ctopon ctop topontop
      cz syl cxp wfn mulgfn cv tgpmulg txdis1cn ) BHIZFGACCJTBKLZTJIUHMNBCUIDUI
      OZPZUHCUIQLICRIUKUICSUAATUIUBUCUHUIABUJEUDNGUIABCFUEDEUJUFUG $.
  $}

  ${
    $d f g k t u w x y z A $.  $d f g t u w x y z J $.  $d f g k t u x y z X $.
    $d f g k t u w x y z B $.  $d f g k t u w x y z G $.  $d f g t u x U $.
    $d g x ph $.
    tmdgsum.j $e |- J = ( TopOpen ` G ) $.
    tmdgsum.b $e |- B = ( Base ` G ) $.
    $( In a topological monoid, the group sum operation is a continuous
       function from the function space to the base topology.  This theorem is
       not true when ` A ` is infinite, because in this case for any basic open
       set of the domain one of the factors will be the whole space, so by
       varying the value of the functions to sum at this index, one can achieve
       any desired sum.  (Contributed by Mario Carneiro, 19-Sep-2015.)  (Proof
       shortened by AV, 24-Jul-2019.) $)
    tmdgsum $p |- ( ( G e. CMnd /\ G e. TopMnd /\ A e. Fin ) ->
      ( x e. ( B ^m A ) |-> ( G gsum x ) ) e. ( ( J ^ko ~P A ) Cn J ) ) $=
      ( vw vk wcel cfn cmap co cgsu cmpt cpt cfv ccn c0 wceq vy vz ccmn ctmd cv
      w3a csn cxp cpw cxko wa cun oveq2 mpteq1d xpeq1 0xp syl6eq fveq2d eleq12d
      wi oveq1d imbi2d c0g wfn elmapfn fn0 sylib oveq2d eqid gsum0 mpteq2ia cvv
      ctopon 0ex tmdtopon adantl fveq2i eqcomi pttoponconst sylancr cmnd tmdmnd
      mndidcl syl cnmptc syl5eqel wn cres cplusg cbvmptv simpl1l simp2l sylancl
      snfi unfi adantr wf elmapi fdmfifsupp cin simpl2r disjsn sylibr gsumsplit
      fvexd eqidd mpteq2dva syl5eq syl2anc cuni toponuni ctop wss topontop 3syl
      simp1r fconst6g ssun1 xpssres ax-mp ptrescn syl3anc eqeltrd simp3 cnmpt11
      a1i feqmptd reseq1d ssun2 resmpt cmnmnd vex vsnid elun2 mp1i fveq2 gsumsn
      ffvelrnd eqtrd ptpjcn fvconst2g eleqtrd cnmpt1plusg 3expia a2d findcard2s
      expcom com12 3impia xkopt sylan 3adant1 eleqtrrd ) DUCJZDUDJZBKJZUFZACBLM
      ZDAUEZNMZOZBEUGZUHZPQZERMZEBUIUJMZERMUUNUUOUUPUVAUVEJZUUPUUNUUOUKZUVGUVHA
      CHUEZLMZUUTOZUVIUVBUHZPQZERMZJZUTUVHACSLMZUUTOZSPQZERMZJZUTUVHACUAUEZLMZU
      UTOZUWAUVBUHZPQZERMZJZUTUVHACUWAUBUEZUGZULZLMZUUTOZUWJUVBUHZPQZERMZJZUTUV
      HUVGUTHUAUBBUVISTZUVOUVTUVHUWQUVKUVQUVNUVSUWQAUVJUVPUUTUVISCLUMUNUWQUVMUV
      RERUWQUVLSPUWQUVLSUVBUHZSUVISUVBUOUVBUPZUQURVAUSVBUVIUWATZUVOUWGUVHUWTUVK
      UWCUVNUWFUWTAUVJUWBUUTUVIUWACLUMUNUWTUVMUWEERUWTUVLUWDPUVIUWAUVBUOURVAUSV
      BUVIUWJTZUVOUWPUVHUXAUVKUWLUVNUWOUXAAUVJUWKUUTUVIUWJCLUMUNUXAUVMUWNERUXAU
      VLUWMPUVIUWJUVBUOURVAUSVBUVIBTZUVOUVGUVHUXBUVKUVAUVNUVEUXBAUVJUURUUTUVIBC
      LUMUNUXBUVMUVDERUXBUVLUVCPUVIBUVBUOURVAUSVBUVHUVQAUVPDVCQZOUVSAUVPUUTUXCU
      USUVPJZUUTDSNMUXCUXDUUSSDNUXDUUSSVDUUSSTUUSCSVEUUSVFVGVHDUXCUXCVIZVJUQVKU
      VHAUXCUVREUVPCUVHSVLJECVMQJZUVRUVPVMQJVNUUOUXFUUNDECFGVOZVPZSEUVRVLCUWRPQ
      UVRUWRSPUWSVQVRVSVTUXHUVHDWAJZUXCCJUUOUXIUUNDWBVPCDUXCGUXEWCWDWEWFUWAKJZU
      WHUWAJWGZUKZUVHUWGUWPUVHUXLUWGUWPUTUVHUXLUWGUWPUVHUXLUWGUFZUWLHUWKDUVIUWA
      WHZNMZDUVIUWIWHZNMZDWIQZMZOZUWOUXMUWLHUWKDUVINMZOUXTAHUWKUUTUYAUUSUVIDNUM
      WJUXMHUWKUYAUXSUXMUVIUWKJZUKZUWJCUWAUWIUXRUVIDKUXCGUXEUXRVIZUUNUUOUXLUWGU
      YBWKZUXMUWJKJZUYBUXMUXJUWIKJUYFUVHUXJUXKUWGWLZUWHWNUWAUWIWOWMZWPZUYBUWJCU
      VIWQUXMUVICUWJWRVPZUYCUWJCUVIVLUXCUYJUYIUYCDVCXEWSUYCUXKUWAUWIWTSTUXJUXKU
      VHUWGUYBXAUWAUWHXBXCUYCUWJXFXDXGXHUXMHUXOUXQUXRDEUWNUWKFUYDUUNUUOUXLUWGXP
      ZUXMUYFUXFUWNUWKVMQJZUYHUXMUUOUXFUYKUXGWDZUWJEUWNKCUWNVIZVSXIZUXMHAUXNUUT
      UXOUWNUWEEUWKUWBUYOUXMHUWKUXNOHUWNXJZUXNOZUWNUWERMZUXMHUWKUYPUXNUXMUYLUWK
      UYPTUYOUWKUWNXKWDZUNUXMUYFUWJXLUWMWQZUWAUWJXMZUYQUYRJUYHUXMEXLJZUYTUXMUUO
      UXFVUBUYKUXGCEXNZXOZUWJEXLXQWDZVUAUXMUWAUWIXRZYFHUWJUWAUWMUWNUWEKUYPUYPVI
      ZUYNUWDUWMUWAWHZPVUHUWDVUAVUHUWDTVUFUWJUVBUWAXSXTVRVQYAYBYCUXMUXJUXFUWEUW
      BVMQJUYGUYMUWAEUWEKCUWEVIVSXIUVHUXLUWGYDUUSUXNDNUMYEUXMHUWKUXQOHUWKUWHUVI
      QZOZUWOUXMHUWKUXQVUIUYCUXQDIUWIIUEZUVIQZOZNMZVUIUYCUXPVUMDNUYCUXPIUWJVULO
      ZUWIWHZVUMUYCUVIVUOUWIUYCIUWJCUVIUYJYGYHUWIUWJXMVUPVUMTUWIUWAYIIUWJUWIVUL
      YJXTUQVHUYCUXIUWHVLJZVUICJVUNVUITUYCUUNUXIUYEDYKWDVUQUYCUBYLYFUYCUWJCUWHU
      VIUYJUWHUWIJZUWHUWJJZUYCUBYMZUWHUWIUWAYNZYOYRVULCVUIIDUWHVLGVUKUWHUVIYPYQ
      YBYSXGUXMVUJUWNUWHUWMQZRMZUWOUXMVUJHUYPVUIOZVVCUXMHUWKUYPVUIUYSUNUXMUYFUY
      TVUSVVDVVCJUYHVUEVURVUSUXMVUTVVAYOZHUWJUWMUWHUWNKUYPVUGUYNYTYBYCUXMVVBEUW
      NRUXMVUBVUSVVBETVUDVVEUWJEUWHXLUUAXIVHUUBYCUUCYCUUDUUGUUEUUFUUHUUIUUQUVFU
      VDERUUOUUPUVFUVDTZUUNUUOVUBUUPVVFUUOUXFVUBUXGVUCWDBEKUUJUUKUULVAUUM $.

    tmdgsum2.t $e |- .x. = ( .g ` G ) $.
    tmdgsum2.1 $e |- ( ph -> G e. CMnd ) $.
    tmdgsum2.2 $e |- ( ph -> G e. TopMnd ) $.
    tmdgsum2.a $e |- ( ph -> A e. Fin ) $.
    tmdgsum2.u $e |- ( ph -> U e. J ) $.
    tmdgsum2.x $e |- ( ph -> X e. B ) $.
    tmdgsum2.3 $e |- ( ph -> ( ( # ` A ) .x. X ) e. U ) $.
    $( For any neighborhood ` U ` of ` n X ` , there is a neighborhood ` u ` of
       ` X ` such that any sum of ` n ` elements in ` u ` sums to an element of
       ` U ` .  (Contributed by Mario Carneiro, 19-Sep-2015.) $)
    tmdgsum2 $p |- ( ph ->
      E. u e. J ( X e. u /\ A. f e. ( u ^m A ) ( G gsum f ) e. U ) ) $=
      ( wcel vg vy vz vx vt vk wfn cfv csn cxp wral cuni wceq cdif cfn wrex w3a
      cv cixp wa wex cgsu co cmap crab wss cab ctg cpw cxko cmpt ccnv cima eqid
      mptpreima ccn ccmn ctmd tmdgsum syl3anc syl2anc syl5eqelr cpt ctop ctopon
      cnima tmdtopon topontop 3syl xkopt fnconstg ptval eleqtrd wf fconst6g syl
      eqtrd cvv wb cbs fvex eqeltri elmapg sylancr mpbird fconstmpt oveq2i cmnd
      chash cmnmnd gsumconst syl5eq oveq2 eleq1d elrab sylanbrc tg2 eleq2 sseq1
      eqeltrd anbi12d rexab2 sylib wi crn cint toponuni ad2antrr ineq1d simplrl
      cin simplrr fvconst2g eleq2d ralbidva mpbid ffnfv frn wfo exlimdv rintopn
      dffn4 fofi simprl mptelixpg ralrn elrint inex1 ixpconstg sylancl fnfvelrn
      inss2 intss1 syl5ss ralrimiva ss2ixp eqsstr3d ssrab simprbi ad2antll sylc
      ssralv raleqdv rspcev syl12anc ex 3adantr3 imbi1d syl5ibrcom expimpd impd
      oveq1 mpd ) AUAURZCUGZUBURZUVNUHZUVPCIUIUJZUHZTZUBCUKZUVQUVSULUMUBCUCURZU
      NUKUCUOUPZUQZUDURZUBCUVQUSZUMZUTZUAVAZCJUIUJZUWETZUWEHGURZVBVCZFTZGDCVDVC
      ZVEZVFZUTZUTZUDVAZJBURZTZUWNGUXACVDVCZUKZUTZBIUPZAUWJUEURZTZUXGUWPVFZUTZU
      EUWIUDVGZUPZUWTAUWPUXKVHUHZTUWJUWPTZUXLAUWPICVIVJVCZUXMAUWPGUWOUWMVKZVLFV
      MZUXOGUWOUWMFUXPUXPVNVOAUXPUXOIVPVCTZFITUXQUXOTAHVQTZHVRTZCUOTZUXRNOPGCDH
      IKLVSVTQFUXPUXOIWFWAWBAUXOUVRWCUHZUXMAIWDTZUYAUXOUYBUMAUXTIDWEUHZTZUYCOHI
      DKLWGZDIWHWIZPCIUOWJWAAUYAUVRCUGZUYBUXMUMPAUXTUYEUYHOUYFCIUYDWKWIUDUBUCCU
      XKUAUVRUOUXKVNWLWAWQWMAUWJUWOTZHUWJVBVCZFTZUXNAUYICDUWJWNZAJDTZUYLRCJDWOW
      PADWRTUYAUYIUYLWSDHWTUHWRLHWTXAXBZPDCUWJWRUOXCXDXEAUYJCXIUHJEVCZFAUYJHUFC
      JVKZVBVCZUYOUWJUYPHVBUFCJXFXGAHXHTZUYAUYMUYQUYOUMAUXSUYRNHXJWPPRCDEUFHJLM
      XKVTXLSXTUWNUYKGUWJUWOUWLUWJUMUWMUYJFUWLUWJHVBXMXNXOXPUEUWPUXKUWJXQWAUWIU
      XJUWRUEUDUXGUWEUMUXHUWKUXIUWQUXGUWEUWJXRUXGUWEUWPXSYAYBYCAUWSUXFUDAUWIUWR
      UXFAUWHUWRUXFYDZUAAUWDUWGUYSAUWDUTUYSUWGUWJUWFTZUWFUWPVFZUTZUXFYDZAUVOUWA
      VUCUWCAUVOUWAUTZUTZVUBUXFVUEVUBUTZDUVNYEZYFZYKZITJVUITZUWNGVUICVDVCZUKZUX
      FVUFVUIIULZVUHYKZIVUFDVUMVUHADVUMUMZVUDVUBAUXTUYEVUOOUYFDIYGWIYHYIVUFUYCV
      UGIVFZVUGUOTZVUNITAUYCVUDVUBUYGYHZVUFCIUVNWNZVUPVUFUVOUVQITZUBCUKZVUSAUVO
      UWAVUBYJZVUFUWAVVAAUVOUWAVUBYLVUFUYCUWAVVAWSVURUYCUVTVUTUBCUYCUVPCTZUTUVS
      IUVQCIUVPWDYMYNYOWPYPUBCIUVNYQXPCIUVNYRWPVUFUYACVUGUVNYSZVUQAUYAVUDVUBPYH
      ZVUFUVOVVDVVBCUVNUUBYCCVUGUVNUUCWAVUGIVUMVUMVNUUAVTXTVUFUYMJUWBTZUCVUGUKZ
      VUJAUYMVUDVUBRYHVUFVVGJUVQTZUBCUKZVUFUBCJVKZUWFTZVVIVUFVVJUWJUWFUBCJXFVUE
      UYTVUAUUDWBVUFUYAVVKVVIWSVVEUBCJUVQUOUUEWPYPVUFUVOVVGVVIWSVVBVVFVVHUCUBCU
      VNUWBUVQJXRUUFWPXEUCDVUGJUUGXPVUFVUKUWFVFUWNGUWFUKZVULVUFVUKUBCVUIUSZUWFV
      UFUYAVUIWRTVVMVUKUMVVEDVUHUYNUUHUBCVUIUOWRUUIUUJVUFUVOVUIUVQVFZUBCUKVVMUW
      FVFVVBUVOVVNUBCUVOVVCUTZVUIVUHUVQDVUHUULVVOUVQVUGTVUHUVQVFCUVPUVNUUKUVQVU
      GUUMWPUUNUUOUBCVUIUVQUUPWIUUQVUAVVLVUEUYTVUAUWFUWOVFVVLUWNGUWOUWFUURUUSUU
      TUWNGVUKUWFUVBUVAUXEVUJVULUTBVUIIUXAVUIUMZUXBVUJUXDVULUXAVUIJXRVVPUWNGUXC
      VUKUXAVUICVDUVLUVCYAUVDUVEUVFUVGUWGUWRVUBUXFUWGUWKUYTUWQVUAUWEUWFUWJXRUWE
      UWFUWPXSYAUVHUVIUVJYTUVKYTUVM $.
  $}

  ${
    $d x y G $.  $d x y O $.
    oppgtmd.1 $e |- O = ( oppG ` G ) $.
    $( The opposite of a topological monoid is a topological monoid.
       (Contributed by Mario Carneiro, 19-Sep-2015.) $)
    oppgtmd $p |- ( G e. TopMnd -> O e. TopMnd ) $=
      ( vx vy ctmd wcel cmnd ctps cbs cfv cv cplusg co cmpt2 ctopn ctx ccn eqid
      tmdmnd oppgmnd syl ctopon tmdtopon oppgbas oppgtopn istps sylibr cnmpt2nd
      id cnmpt1st cnmpt2plusg cplusf plusffval oppgplus mpt2eq123i eqtr2i istmd
      syl3anbrc ) AFGZBHGZBIGZDEAJKZVCELZDLZAMKZNZOZAPKZVIQNVIRNGBFGUTAHGVAATAB
      CUAUBUTVIVCUCKGVBAVIVCVISZVCSZUDZVCVIBVCABCVKUEZAVIBCVJUFZUGUHUTDEVDVEVFA
      VIVIVIVCVCVJVFSZUTUJVLVLUTDEVIVIVCVCVLVLUIUTDEVIVIVCVCVLVLUKULVHBVIBUMKZD
      EVCVCVEVDBMKZNZOVHDEVCVQVPBVMVQSZVPSUNDEVCVCVRVCVCVGVKVKVFVQABVEVDVOCVSUO
      UPUQVNURUS $.

    $( The opposite of a topological group is a topological group.
       (Contributed by Mario Carneiro, 17-Sep-2015.) $)
    oppgtgp $p |- ( G e. TopGrp -> O e. TopGrp ) $=
      ( ctgp wcel cgrp ctmd cminusg cfv ctopn ccn co tgpgrp oppggrp syl oppgtmd
      tgptmd wceq eqid oppginv tgpinv eqeltrrd oppgtopn istgp syl3anbrc ) ADEZB
      FEZBGEZBHIZAJIZUJKLZEBDEUFAFEZUGAMZABCNOUFAGEUHAQABCPOUFAHIZUIUKUFULUNUIR
      UMAUNBCUNSZTOAUNUJUJSZUOUAUBBUIUJAUJBCUPUCUISUDUE $.
  $}

  ${
    distgp.1 $e |- B = ( Base ` G ) $.
    distgp.2 $e |- J = ( TopOpen ` G ) $.
    $( Any group equipped with the discrete topology is a topological group.
       (Contributed by Mario Carneiro, 14-Aug-2015.) $)
    distgp $p |- ( ( G e. Grp /\ J = ~P B ) -> G e. TopGrp ) $=
      ( cgrp wcel cpw wceq wa ctps csg cfv ctx co ccn ctgp cvv cbs sylibr simpl
      ctopon simpr fvex eqeltri distopon ax-mp syl6eqel istps cmap eqid grpsubf
      cxp wf adantr elmap oveq12d txdis mp2an syl6eq oveq1d cndis sylancr eqtrd
      xpex eleqtrrd istgp2 syl3anbrc ) BFGZCAHZIZJZVIBKGZBLMZCCNOZCPOZGBQGVIVKU
      AVLCAUBMZGZVMVLCVJVQVIVKUCZARGZVJVQGABSMRDBSUDUEZARUFUGUHZACBDEUITVLVNAAA
      UMZUJOZVPVLWCAVNUNZVNWDGVIWEVKABVNDVNUKZULUOAWCVNWAAAWAWAVEZUPTVLVPWCHZCP
      OZWDVLVOWHCPVLVOVJVJNOZWHVLCVJCVJNVSVSUQVTVTWJWHIWAWAAARRURUSUTVAVLWCRGVR
      WIWDIWGWBWCCRAVBVCVDVFBCVNEWFVGVH $.

    $( Any group equipped with the indiscrete topology is a topological group.
       (Contributed by Mario Carneiro, 14-Aug-2015.) $)
    indistgp $p |- ( ( G e. Grp /\ J = { (/) , B } ) -> G e. TopGrp ) $=
      ( cgrp wcel c0 cpr wceq wa ctps csg cfv co ccn ctopon cvv cbs sylibr ctgp
      ctx simpl simpr fvex eqeltri indistopon ax-mp syl6eqel istps cmap wf eqid
      grpsubf adantr xpex elmap oveq2d txtopon syl2anc cnindis sylancl eleqtrrd
      cxp eqtrd istgp2 syl3anbrc ) BFGZCHAIZJZKZVHBLGZBMNZCCUBOZCPOZGBUAGVHVJUC
      VKCAQNZGZVLVKCVIVPVHVJUDZARGZVIVPGABSNRDBSUEUFZARUGUHUIZACBDEUJTVKVMAAAVD
      ZUKOZVOVKWBAVMULZVMWCGVHWDVJABVMDVMUMZUNUOAWBVMVTAAVTVTUPUQTVKVOVNVIPOZWC
      VKCVIVNPVRURVKVNWBQNGZVSWFWCJVKVQVQWGWAWACCAAUSUTVTAVNRWBVAVBVEVCBCVMEWEV
      FVG $.
  $}

  ${
    $d f t u v x y A $.  $d f t u v x y G $.  $d f t u x y V $.
    symgtgp.g $e |- G = ( SymGrp ` A ) $.
    $( The symmetric group is a topological group.  (Contributed by Mario
       Carneiro, 2-Sep-2015.) $)
    symgtgp $p |- ( A e. V -> G e. TopGrp ) $=
      ( vx vy vu wcel cfv ccn co eqid wss wf wb syl2anc wceq cmpt wa ad2antrr
      vf vt vv cgrp ctmd cminusg ctopn ctgp symggrp cmnd ctps cplusg ctx grpmnd
      syl cbs ctopon cpw csn cxp cpt crest symgtopn distopon pttoponconst mpdan
      cmap cv wf1o elsymgbas f1of elmapg anidms sylbid ssrdv resttopon eqeltrrd
      syl5ibr istps sylibr cxko ccom cmpt2 symgplusg ctop distop xkotopon cndis
      sseqtr4d ccmp cnlly clly disllycmp llynlly xkococn syl3anc syl5eqel xkopt
      cnmpt2res mpancom oveq1d eqtrd oveq12d eleqtrd crn cplusf wfn vex fnmpt2i
      coex plusfeq ax-mp eqcomi 3syl cnrest2 mpbid oveq2d syl3anbrc ccnv biimpa
      frn wral f1ocnv cima wi adantr weq fvex ad2antlr crab cvv fvconst2g fveq1
      simplr eqeq1d sylanbrc ralrimiva syl6sseqr mpbir2and feqmptd id ffvelrnda
      grpplusf istmd fconst6g ccnp an32s fmptd wrex cnveq fveq1d mptiniseg cuni
      fvmpt eleq1d toponuni mpteq1 simpll ffvelrnd ptpjcn eqeltrd snelpwi cnima
      cnmpt1res syl5eqelr simpllr f1ocnvfv2 elrab ssrab2 a1i ad3antrrr f1ocnvfv
      simplrr eleq1 syl5ibrcom syld ralrab ssrab mptpreima cdm funmpt funimass3
      wfun dmmpti sylancr mpbird eleq2 imaeq2 sseq1d rspcev syl12anc expr simpr
      anbi12d iscnp cncnp sylan eleqtrrd ptcn grpinvf symginv mpteq2dva 3eltr4d
      adantl istgp ) ACHZBUDHZBUEHZBUFIZBUGIZUXJJKZHBUHHABCDUIZUXFBUJHZBUKHZBUL
      IZUXJUXJUMKZUXJJKZHUXHUXFUXGUXMUXLBUNUOUXFUXJBUPIZUQIZHZUXNUXFAAURZUSUTZV
      AIZUXRVBKZUXJUXSUXRBCADUXRLZVCZUXFUYCAAVGKZUQIHZUXRUYGMZUYDUXSHUXFUYAAUQI
      HZUYHACVDZAUYAUYCCAUYCLZVEVFZUXFEUXRUYGUXFEVHZUXRHZAAUYNVIZUYNUYGHZAUXRUY
      NBCDUYEVJZUYPUYQUXFAAUYNNZAAUYNVKUXFUYQUYSOAAUYNCCVLVMVRVNVOZUXRUYCUYGVPP
      VQZUXRUXJBUYEUXJLZVSVTUXFUXOUXPUYAUYAWAKZUXRVBKZJKZUXQUXFUXOUXPVUCJKZHZUX
      OVUEHZUXFUXOVUDVUDUMKZVUCJKZVUFUXFUXOEFUXRUXRUYNFVHZWBZWCVUJAUXRUXOEFBDUY
      EUXOLZWDZUXFEFVULVUCVUDVUCVUCVUDUXRUYAUYAJKZUXRVUOVUDLZUXFUYAWEHZVUQVUCVU
      OUQIHZACWFZVUSUYAUYAVUCVUCLWGPZUXFUXRUYGVUOUYTUXFUYJVUOUYGQUYKAUYACAWHVFW
      IZVUPVUTVVAUXFVUQUYAWJWKHZVUQEFVUOVUOVULWCZVUCVUCUMKVUCJKHVUSUXFUYAWJWLHV
      VBCAWMWJUYAWNUOVUSUYAUYAUYAEFVVCVVCLWOWPWSWQUXFVUIUXPVUCJUXFVUDUXJVUDUXJU
      MUXFVUDUYDUXJUXFVUCUYCUXRVBVUQUXFVUCUYCQVUSAUYACWRWTZXAUYFXBZVVEXCXAXDUXF
      VURUXOXEUXRMZUXRVUOMZVUGVUHOVUTUXFUXGUXRUXRUTZUXRUXONVVFUXLUXRUXOBUYEBXFI
      ZUXOUXOVVHXGVVIUXOQEFUXRUXRVULUXOVUNUYNVUKEXHFXHZXJXIUXRUXOVVIBUYEVUMVVIL
      XKXLXMZUUCVVHUXRUXOYAXNVVAUXRUXOUXPVUCVUOXOWPXPUXFVUDUXJUXPJVVEXQXDUXOBUX
      JVVKVUBUUDXRUXFUXIUXJVUDJKZUXKUXFUXIUXJVUCJKZHZUXIVVLHZUXFEUXRFAVUKUYNXSZ
      IZRZRZUXJUYCJKUXIVVMUXFEVVQFUYBAUXJUYCCUXRUYLVUAUXFUUAUXFVUQAWEUYBNZVUSAU
      YAWEUUEUOZUXFVUKAHZSZEUXRVVQRZUXJUYAJKZUXJVUKUYBIZJKVWCVWDVWEHZUXRAVWDNZV
      WDUAVHZUXJUYAUUFKIHZUAUXRYBZVWCEUXRVVQAVWDUXFUYOVWBVVQAHUXFUYOSZAAVUKVVPV
      WLUYPAAVVPVIAAVVPNUXFUYOUYPUYRXTAAUYNYCAAVVPVKXNZUUBUUGVWDLZUUHZVWCVWJUAU
      XRVWCVWIUXRHZSZVWJVWHVWIVWDIZUBVHZHZVWIUCVHZHZVWDVXAYDZVWSMZSZUCUXJUUIZYE
      ZUBUYAYBZVWCVWHVWPVWOYFVWQVXGUBUYAVWQVWSUYAHZSZVWTVUKVWIXSZIZVWSHZVXFVXJV
      WRVXLVWSVWPVWRVXLQVWCVXIEVWIVVQVXLUXRVWDEUAYGVUKVVPVXKUYNVWIUUJUUKVWNVUKV
      XKYHUUNYIUUOVWQVXIVXMVXFVWQVXIVXMSZSZVXLGVHZIZVUKQZGUXRYJZUXJHZVWIVXSHZVW
      DVXSYDZVWSMZVXFVWQVXTVXNVWQVXSGUXRVXQRZXSVUKUSZYDZUXJVUKYKHVYFVXSQVVJGUXR
      VXQVUKVYDYKVYDLUULXLVWQVYDVWEHVYEUYAHZVYFUXJHVWQVYDUYDUYAJKZVWEVWQGVXQUYC
      UYDUYAUYGUXRUYDLUXFUYHVWBVWPUYMTZUXFUYIVWBVWPUYTTVWQGUYGVXQRZGUYCUUMZVXQR
      ZUYCUYAJKZVWQUYHUYGVYKQVYJVYLQVYIUYGUYCUUPGUYGVYKVXQUUQXNVWQVYLUYCVXLUYBI
      ZJKZVYMVWQUXFVVTVXLAHZVYLVYOHUXFVWBVWPUURUXFVVTVWBVWPVWATVWQAAVUKVXKVWQAA
      VWIVIZAAVXKVIAAVXKNVWCVWPVYQUXFVWPVYQOVWBAUXRVWIBCDUYEVJYFXTZAAVWIYCAAVXK
      VKXNUXFVWBVWPYNUUSZGAUYBVXLUYCCVYKVYKLUYLUUTWPVWQVYNUYAUYCJVWQVUQVYPVYNUY
      AQUXFVUQVWBVWPVUSTVYSAUYAVXLWEYLPXQXDUVAUVDUXFVYHVWEQVWBVWPUXFUYDUXJUYAJU
      YFXATXDVWBVYGUXFVWPVUKAUVBYIVYEVYDUXJUYAUVCPUVEYFVXOVWPVXLVWIIZVUKQZVYAVW
      CVWPVXNYNVXOVYQVWBWUAVWQVYQVXNVYRYFUXFVWBVWPVXNUVFAAVUKVWIUVGPVXRWUAGVWIU
      XRGUAYGVXQVYTVUKVXLVXPVWIYMYOUVHYPVXOVYCVXSVWDXSVWSYDZMZVXOVXSVVQVWSHZEUX
      RYJZWUBVXOVXSUXRMZWUDEVXSYBZVXSWUEMWUFVXOVXRGUXRUVIUVJZVXOVXLUYNIZVUKQZWU
      DYEZEUXRYBWUGVXOWUKEUXRVXOUYOSZWUJVVQVXLQZWUDWULUYPVYPWUJWUMYEVXOUYOUYPUX
      FUYOUYPOVWBVWPVXNUYRUVKXTVWQVYPVXNUYOVYSTAAVXLVUKUYNUVLPWULWUDWUMVXMVWQVX
      IVXMUYOUVMVVQVXLVWSUVNUVOUVPYQVXRWUJWUDEGUXRGEYGVXQWUIVUKVXLVXPUYNYMYOUVQ
      VTWUDEUXRVXSUVRYPEUXRVVQVWSVWDVWNUVSYRVXOVWDUWCVXSVWDUVTZMVYCWUCOEUXRVVQU
      WAVXOVXSUXRWUNWUHEUXRVVQVWDVUKVVPYHVWNUWDYRVXSVWSVWDUWBUWEUWFVXEVYAVYCSUC
      VXSUXJVXAVXSQZVXBVYAVXDVYCVXAVXSVWIUWGWUOVXCVYBVWSVXAVXSVWDUWHUWIUWNUWJUW
      KUWLVNYQVWQUXTUYJVWPVWJVWHVXHSOUXFUXTVWBVWPVUATUXFUYJVWBVWPUYKTVWCVWPUWMU
      CUBVWIVWDUXJUYAUXRAUWOWPYSYQUXFVWGVWHVWKSOZVWBUXFUXTUYJWUPVUAUYKUAVWDUXJU
      YAUXRAUWPPYFYSVWCVWFUYAUXJJUXFVUQVWBVWFUYAQVUSAUYAVUKWEYLUWQXQUWRUWSUXFUX
      IEUXRUYNUXIIZRVVSUXFEUXRUXRUXIUXFUXGUXRUXRUXINZUXLUXRBUXIUYEUXILZUWTZUOYT
      UXFEUXRWUQVVRVWLWUQVVPVVRUYOWUQVVPQUXFAUXRUYNBUXIDUYEWUSUXAUXDVWLFAAVVPVW
      MYTXBUXBXBUXFVUCUYCUXJJVVDXQUXCUXFVURUXIXEUXRMZVVGVVNVVOOVUTUXFUXGWURWVAU
      XLWUTUXRUXRUXIYAXNVVAUXRUXIUXJVUCVUOXOWPXPUXFVUDUXJUXJJVVEXQXDBUXIUXJVUBW
      USUXEXR $.
  $}

  ${
    $d g x A $.  $d g x G $.  $d x J $.  $d g x .+ $.  $d g x X $.
    tgplacthmeo.1 $e |- F = ( x e. X |-> ( A .+ x ) ) $.
    tgplacthmeo.2 $e |- X = ( Base ` G ) $.
    tgplacthmeo.3 $e |- .+ = ( +g ` G ) $.
    tgplacthmeo.4 $e |- J = ( TopOpen ` G ) $.
    $( The left group action of element ` A ` in a topological monoid ` G ` is
       a continuous function.  (Contributed by FL, 18-Mar-2008.)  (Revised by
       Mario Carneiro, 14-Aug-2015.) $)
    tmdlactcn $p |- ( ( G e. TopMnd /\ A e. X ) -> F e. ( J Cn J ) ) $=
      ( ctmd wcel wa cv co cmpt ccn simpl ctopon tmdtopon adantr cnmptc cnmptid
      cfv simpr cnmpt1plusg syl5eqel ) ELMZBGMZNZDAGBAOZCPQFFRPHUKABULCEFFGKJUI
      UJSUIFGTUEMUJEFGKIUAUBZUKABFFGGUMUMUIUJUFUCUKAFGUMUDUGUH $.

    $( The left group action of element ` A ` in a topological group ` G ` is a
       homeomorphism from the group to itself.  (Contributed by Mario Carneiro,
       14-Aug-2015.) $)
    tgplacthmeo $p |- ( ( G e. TopGrp /\ A e. X ) -> F e. ( J Homeo J ) ) $=
      ( vg wcel wa co sylan cfv cmpt wceq eqid ctgp ccnv chmeo tgptmd tmdlactcn
      ccn ctmd cminusg cv wf1o cgrp tgpgrp grplactcnv simprd grplactfval adantl
      syl6eqr cnveqd grpinvcl syl 3eqtr3d syldan eqeltrd ishmeo sylanbrc ) EUAM
      ZBGMZNZDFFUFOZMZDUBZVIMDFFUCOMVFEUGMZVGVJEUDZABCDEFGHIJKUEPVHVKAGBEUHQZQZ
      AUIZCORZVIVHBLGAGLUIVPCORRZQZUBZVOVRQZVKVQVHGGVSUJZVTWASZVFEUKMZVGWBWCNEU
      LZBCLVREVNGAVRTZIJVNTZUMPUNVHVSDVHVSAGBVPCORZDVGVSWHSVFBCLVREGAWFIUOUPHUQ
      URVHVOGMZWAVQSVFWDVGWIWEGEVNBIWGUSPZVOCLVREGAWFIUOUTVAVFVGWIVQVIMZWJVFVLW
      IWKVMAVOCVQEFGVQTIJKUEPVBVCDFFVDVE $.
  $}

  ${
    $d x y G $.  $d x y H $.  $d x y S $.
    subgtgp.h $e |- H = ( G |`s S ) $.
    $( A submonoid of a topological monoid is a topological monoid.
       (Contributed by Mario Carneiro, 6-Oct-2015.) $)
    submtmd $p |- ( ( G e. TopMnd /\ S e. ( SubMnd ` G ) ) -> H e. TopMnd ) $=
      ( vx vy ctmd wcel cfv ctps cplusf co ctx ccn adantl cplusg cmpt2 eqid wss
      cv csubmnd wa ctopn crest submmnd cress tmdtps resstps sylan syl5eqel cbs
      cmnd wceq submbas ressplusg oveqd mpt2eq123dv plusffval syl6reqr tmdtopon
      ctopon adantr submss tmdcn syl5eqelr cnmpt2res eqeltrd crn wb wf mndplusf
      cxp frn 3syl sseqtr4d cnrest2 syl3anc mpbid resstopn istmd syl3anbrc ) BG
      HZABUAIZHZUBZCULHZCJHCKIZBUCIZAUDLZWIMLZWINLHZCGHWDWFWBACBDUEOZWECBAUFLZJ
      DWBBJHWDWMJHBUGABWCUHUIUJWEWGWJWHNLZHZWKWEWGEFAAETZFTZBPIZLZQZWNWEWTEFCUK
      IZXAWPWQCPIZLZQWGWEEFAAWSXAXAXCWDAXAUMWBACBDUNOZXDWEWRXBWPWQWDWRXBUMWBAWR
      BCWCDWRRZUOOUPUQEFXAXBWGCXARZXBRWGRZURUSWEEFWSWHWIWHWHWIABUKIZAXHWIRZWBWH
      XHVAIHZWDBWHXHWHRZXHRZUTVBZWDAXHSZWBXHABXLVCOZXIXMXOWBEFXHXHWSQZWHWHMLWHN
      LZHWDWBXPBKIZXQEFXHWRXRBXLXEXRRZURXRBWHXKXSVDVEVBVFVGWEXJWGVHZASXNWOWKVIX
      MWEXTXAAWEWFXAXAVLZXAWGVJXTXASWLXAWGCXFXGVKYAXAWGVMVNXDVOXOAWGWJWHXHVPVQV
      RWGCWIXGACWHBDXKVSVTWA $.

    $( A subgroup of a topological group is a topological group.  (Contributed
       by Mario Carneiro, 17-Sep-2015.) $)
    subgtgp $p |- ( ( G e. TopGrp /\ S e. ( SubGrp ` G ) ) -> H e. TopGrp ) $=
      ( ctgp wcel cfv cgrp ctmd cminusg ccn adantl cmpt cbs eqid syl adantr wss
      vx co csubg wa ctopn crest subggrp csubmnd tgptmd subgsubm submtmd syl2an
      cv wceq subgbas mpteq1d subginv adantll mpteq2dva grpinvf 3eqtr4rd ctopon
      feqmptd tgptopon subgss tgpgrp tgpinv eqeltrrd cnmpt1res eqeltrd sseqtr4d
      wf crn wb frn cnrest2 syl3anc mpbid resstopn istgp syl3anbrc ) BEFZABUAGF
      ZUBZCHFZCIFZCJGZBUCGZAUDTZWGKTFZCEFWAWCVTABCDUELZVTBIFABUFGFWDWABUGABUHAB
      CDUIUJWBWEWGWFKTZFZWHWBWESASUKZBJGZGZMZWJWBSAWLWEGZMSCNGZWPMWOWEWBSAWQWPW
      AAWQULVTABCDUMLZUNWBSAWNWPWAWLAFWNWPULVTABCWMWEWLDWMOZWEOZUOUPUQWBSWQWQWE
      WBWCWQWQWEVJZWIWQCWEWQOWTURPZVAUSWBSWNWFWGWFBNGZAWGOVTWFXCUTGFZWABWFXCWFO
      ZXCOZVBQZWAAXCRZVTXCABXFVCLZWBWMSXCWNMWFWFKTZWBSXCXCWMWBBHFZXCXCWMVJVTXKW
      ABVDQXCBWMXFWSURPVAVTWMXJFWABWMWFXEWSVEQVFVGVHWBXDWEVKZARXHWKWHVLXGWBXLWQ
      AWBXAXLWQRXBWQWQWEVMPWRVIXIAWEWGWFXCVNVOVPCWEWGACWFBDXEVQWTVRVS $.
  $}

  ${
    $d u x y A $.  $d u x y z G $.  $d u x y z J $.  $d u x y z S $.
    $d x y z R $.  $d x y z X $.
    subgntr.h $e |- J = ( TopOpen ` G ) $.
    $( A subgroup of a topological group with nonempty interior is open.
       Alternatively, dual to ~ clssubg , the interior of a subgroup is either
       a subgroup, or empty.  (Contributed by Mario Carneiro, 19-Sep-2015.) $)
    subgntr $p |- ( ( G e. TopGrp /\ S e. ( SubGrp ` G ) /\
      A e. ( ( int ` J ) ` S ) ) -> S e. J ) $=
      ( vx vu vy wcel cfv cv wss wa co eqid adantr syl wceq syl2anc sseldd ctgp
      csubg cnt w3a wrex wral csg cplusg cmpt crn cbs cima cres df-ima tgptopon
      ctopon 3ad2ant1 ctop cuni topontop simpl2 subgss toponuni sseqtrd toponss
      ntropn resmptd rneqd syl5eq chmeo simpl1 simpr ntrss2 syl3anc tgplacthmeo
      simpl3 subgsubcl hmeoima eqeltrrd cgrp tgpgrp 3ad2ant2 grpnpcan cvv oveq2
      sselda ovex elrnmpt1s sylancl subgcl fmptd frn eleq2 sseq1 anbi12d rspcev
      wf syl12anc ralrimiva wb eltop2 mpbird ) CUAIZBCUBJIZABDUCJJZIZUDZBDIZFKZ
      GKZIZXJBLZMZGDUEZFBUFZXGXNFBXGXIBIZMZHXEXIACUGJZNZHKZCUHJZNZUIZUJZDIXIYDI
      ZYDBLZXNXQHCUKJZYBUIZXEULZYDDXQYIYHXEUMZUJYDYHXEUNXQYJYCXQHYGXEYBXQDYGUPJ
      IZXEDIZXEYGLXGYKXPXCXDYKXFCDYGEYGOZUOUQZPZXQDURIZBDUSZLZYLXGYPXPXGYKYPYNY
      GDUTQZPZXQBYGYQXQXDBYGLZXCXDXFXPVAZYGBCYMVBZQZXQYKYGYQRYOYGDVCQVDZBDYQYQO
      ZVFSZXEDYGVESZVGVHVIXQYHDDVJNIZYLYIDIXQXCXSYGIUUIXCXDXFXPVKZXQBYGXSUUDXQX
      DXPABIXSBIZUUBXGXPVLXQXEBAXQYPYRXEBLYTUUEBDYQUUFVMSZXCXDXFXPVPZTBCXRXIAXR
      OZVQVNZTHXSYAYHCDYGYHOYMYAOZEVOSUUGXEYHDDVRSVSXQXSAYANZXIYDXQCVTIZXIYGIAY
      GIUUQXIRXQXCUURUUJCWAQXGBYGXIXDXCUUAXFUUCWBWFXQXEYGAUUHUUMTYGYACXRXIAYMUU
      PUUNWCVNXQXFUUQWDIUUQYDIUUMXSAYAWGHXEYBUUQAYCWDYCOZXTAXSYAWEWHWIVSXQXEBYC
      WQYFXQHXEYBBYCXQXTXEIZMXDUUKXTBIYBBIXQXDUUTUUBPXQUUKUUTUUOPXQXEBXTUULWFYA
      BCXSXTUUPWJVNUUSWKXEBYCWLQXMYEYFMGYDDXJYDRXKYEXLYFXJYDXIWMXJYDBWNWOWPWRWS
      XGYPXHXOWTYSFGBDXAQXB $.

    $( An open subgroup of a topological group is also closed.  (Contributed by
       Mario Carneiro, 17-Sep-2015.) $)
    opnsubg $p |- ( ( G e. TopGrp /\ S e. ( SubGrp ` G ) /\ S e. J ) ->
      S e. ( Clsd ` J ) ) $=
      ( vx vu vy wcel cfv wss cdif eqid wceq syl cv wa adantr syl2anc eqeltrrd
      co ctgp csubg ccld cuni subgss 3ad2ant2 ctopon tgptopon 3ad2ant1 toponuni
      w3a cbs sseqtrd difeq1d wrex wral cplusg cmpt crn cima cres resmptd rneqd
      df-ima syl5eq simpl1 eldifi adantl tgplacthmeo simpl3 hmeoima cgrp tgpgrp
      chmeo c0g grprid cvv simpl2 subg0cl ovex oveq2 elrnmpt1s sylancl wf grpcl
      sselda syl3anc wn eldifn ad2antlr csg wi subgsubcl 3com23 3expia grppncan
      sylan eleq1d sylibd mtod eldifd fmptd eleq2 sseq1 anbi12d rspcev syl12anc
      frn ralrimiva ctop wb topontop eltop2 mpbird iscld mpbir2and ) BUAHZABUBI
      HZACHZUKZACUCIHZACUDZJZYBAKZCHZXTABULIZYBXRXQAYFJZXSYFABYFLZUEUFZXTCYFUGI
      HZYFYBMXQXRYJXSBCYFDYHUHUIZYFCUJNZUMXTYFAKZYDCXTYFYBAYLUNXTYMCHZEOZFOZHZY
      PYMJZPZFCUOZEYMUPZXTYTEYMXTYOYMHZPZGAYOGOZBUQIZTZURZUSZCHYOUUHHZUUHYMJZYT
      UUCGYFUUFURZAUTZUUHCUUCUULUUKAVAZUSUUHUUKAVDUUCUUMUUGUUCGYFAUUFXTYGUUBYIQ
      ZVBVCVEUUCUUKCCVNTHZXSUULCHUUCXQYOYFHZUUOXQXRXSUUBVFZUUBUUPXTYOYFAVGVHZGY
      OUUEUUKBCYFUUKLYHUUELZDVIRXQXRXSUUBVJAUUKCCVKRSUUCYOBVOIZUUETZYOUUHUUCBVL
      HZUUPUVAYOMUUCXQUVBUUQBVMNZUURYFUUEBYOUUTYHUUSUUTLZVPRUUCUUTAHZUVAVQHUVAU
      UHHUUCXRUVEXQXRXSUUBVRZABUUTUVDVSNYOUUTUUEVTGAUUFUVAUUTUUGVQUUGLZUUDUUTYO
      UUEWAWBWCSUUCAYMUUGWDUUJUUCGAUUFYMUUGUUCUUDAHZPZUUFYFAUVIUVBUUPUUDYFHZUUF
      YFHUUCUVBUVHUVCQZUUCUUPUVHUURQZUUCAYFUUDUUNWFZYFUUEBYOUUDYHUUSWEWGUVIUUFA
      HZYOAHZUUBUVOWHXTUVHYOYFAWIWJUVIUVNUUFUUDBWKIZTZAHZUVOUUCXRUVHUVNUVRWLUVF
      XRUVHUVNUVRXRUVNUVHUVRABUVPUUFUUDUVPLZWMWNWOWQUVIUVQYOAUVIUVBUUPUVJUVQYOM
      UVKUVLUVMYFUUEBUVPYOUUDYHUUSUVSWPWGWRWSWTXAUVGXBAYMUUGXHNYSUUIUUJPFUUHCYP
      UUHMYQUUIYRUUJYPUUHYOXCYPUUHYMXDXEXFXGXIXTCXJHZYNUUAXKXTYJUVTYKYFCXLNZEFY
      MCXMNXNSXTUVTYAYCYEPXKUWAACYBYBLXONXP $.

    $( The closure of a subgroup in a topological group is a subgroup.
       (Contributed by Mario Carneiro, 17-Sep-2015.) $)
    clssubg $p |- ( ( G e. TopGrp /\ S e. ( SubGrp ` G ) ) ->
      ( ( cls ` J ) ` S ) e. ( SubGrp ` G ) ) $=
      ( vx vy vz wcel cfv wa wss cv co wral eqid adantr syl adantl wceq syl2anc
      ctgp csubg ccl cbs c0 wne csg cuni ctop ctopon tgptopon topontop toponuni
      subgss sseqtrd clsss3 sseqtr4d sscls c0g subg0cl ne0i ssn0 cop df-ov ccnv
      cxp cima opelxpi ctx syl22anc txtopon cdm cnvimass wf cgrp tgpgrp grpsubf
      txcls fdm syl5sseq subgsubcl 3expb ralrimivva fveq2 syl6eqr eleq1d sylibr
      ralxp wfun wb ffun xpss12 funimass5 mpbird clsss syl3anc tgpsubcn cncls2i
      ccn sstrd eqsstr3d sselda sylan2 wfn ad2antrr ffn elpreima mpbid syl5eqel
      4syl simprd w3a issubg4 mpbir3and ) BUAHZABUBIZHZJZACUCIIZXPHZXSBUDIZKZXS
      UEUFZELZFLZBUGIZMZXSHZFXSNEXSNZXRXSCUHZYAXRCUIHZAYJKZXSYJKXRCYAUJIHZYKXOY
      MXQBCYADYAOZUKPZYACULQZXRAYAYJXQAYAKZXOYAABYNUNRZXRYMYAYJSYOYACUMQZUOZACY
      JYJOZUPTYSUQXRAXSKZAUEUFZYCXRYKYLUUBYPYTACYJUUAURTXRBUSIZAHZUUCXQUUEXOABU
      UDUUDOUTRAUUDVAQAXSVBTXRYHEFXSXSXRYDXSHYEXSHJZJZYGYDYEVCZYFIZXSYDYEYFVDZU
      UGUUHYAYAVFZHZUUIXSHZUUGUUHYFVEZXSVGZHZUULUUMJZUUFXRUUHXSXSVFZHUUPYDYEXSX
      SVHXRUURUUOUUHXRUURAAVFZCCVIMZUCIZIZUUOXRYMYMYQYQUVBUURSYOYOYRYRAACCYAYAV
      RVJXRUVBUUNAVGZUVAIZUUOXRUUTUIHZUVCUUTUHZKUUSUVCKZUVBUVDKXRUUTUUKUJIHZUVE
      XRYMYMUVHYOYOCCYAYAVKTZUUKUUTULQXRUVCUUKUVFXRYFVLZUVCUUKYFAVMXRUUKYAYFVNZ
      UVJUUKSXRBVOHZUVKXOUVLXQBVPZPZYABYFYNYFOZVQZQZUUKYAYFVSQZVTXRUVHUUKUVFSUV
      IUUKUUTUMQUOXRUVGGLZYFIZAHZGUUSNZXQUWBXOXQYGAHZFANEANUWBXQUWCEFAAXQYDAHYE
      AHUWCABYFYDYEUVOWAWBWCUWAUWCGEFAAUVSUUHSZUVTYGAUWDUVTUUIYGUVSUUHYFWDUUJWE
      WFWHWGRXRYFWIZUUSUVJKUVGUWBWJXRUVKUWEUVQUUKYAYFWKQXRUUSUUKUVJXRYQYQUUSUUK
      KYRYRAYAAYAWLTUVRUQGUUSAYFWMTWNUVCUUSUUTUVFUVFOWOWPXRYFUUTCWSMHZYLUVDUUOK
      XOUWFXQBCYFDUVOWQPYTAYFUUTCYJUUAWRTWTXAXBXCUUGUVLUVKYFUUKXDUUPUUQWJXOUVLX
      QUUFUVMXEUVPUUKYAYFXFUUKUUHXSYFXGXJXHXKXIWCXRUVLXTYBYCYIXLWJUVNEFYAXSBYFY
      NUVOXMQXN $.

    $( The closure of a normal subgroup is a normal subgroup.  (Contributed by
       Mario Carneiro, 17-Sep-2015.) $)
    clsnsg $p |- ( ( G e. TopGrp /\ S e. ( NrmSGrp ` G ) ) ->
      ( ( cls ` J ) ` S ) e. ( NrmSGrp ` G ) ) $=
      ( vx vy wcel cfv wa cv co wral cmpt wf crn wss cima eqid ad2antrr syl ccl
      ctgp cnsg csubg cplusg csg nsgsubg clssubg sylan2 cres df-ima cuni ctopon
      cbs ctop tgptopon topontop ad2antlr subgss wceq toponuni sseqtrd sseqtr4d
      clsss3 syl2anc resmptd rneqd syl5eq ctmd tgptmd simpr cnmptid cnmpt1plusg
      ccn cnmptc ctx tgpsubcn cnmpt12f nsgconj 3expa adantlll fmptd frn eqsstrd
      cnclsi clsss syl3anc sstrd eqsstr3d wfn ovex fnmpti df-f sylibr ralrimiva
      mpbiran fmpt isnsg3 sylanbrc ) BUBGZABUCHZGZIZACUAHZHZBUDHZGZEJZFJZBUEHZK
      ZXHBUFHZKZXEGFXELZEBUNHZLXEXAGXBWTAXFGZXGABUGZABCDUHUIXCXNEXOXCXHXOGZIZXE
      XEFXEXMMZNZXNXSXTOZXEPZYAXSYBFXOXMMZXEQZXEXSYEYDXEUJZOYBYDXEUKXSYFXTXSFXO
      XEXMXSXECULZXOXSCUOGZAYGPZXEYGPXSCXOUMHGZYHWTYJXBXRBCXODXORZUPSZXOCUQTZXS
      AXOYGXSXPAXOPXBXPWTXRXQURXOABYKUSTZXSYJXOYGUTYLXOCVATZVBZACYGYGRZVDVEYOVC
      VFVGVHXSYEYDAQZXDHZXEXSYDCCVNKGYIYEYSPXSFXKXHXLCCCCXOYLXSFXHXIXJBCCXODXJR
      ZWTBVIGXBXRBVJSYLXSFXHCCXOXOYLYLXCXRVKVOZXSFCXOYLVLVMUUAWTXLCCVPKCVNKGXBX
      RBCXLDXLRZVQSVRYPAYDCCYGYQWEVEXSYHYIYRAPYSXEPYMYPXSYRFAXMMZOZAXSYRYDAUJZO
      UUDYDAUKXSUUEUUCXSFXOAXMYNVFVGVHXSAAUUCNUUDAPXSFAXMAUUCXBXRXIAGZXMAGZWTXB
      XRUUFUUGXHXIXJABXLXOYKYTUUBVSVTWAUUCRWBAAUUCWCTWDAYRCYGYQWFWGWHWIYAXTXEWJ
      YCFXEXMXTXKXHXLWKXTRZWLXEXEXTWMWPWNFXEXEXMXTUUHWQWNWOEFXJXEBXLXOYKYTUUBWR
      WS $.

    cldsubg.1 $e |- R = ( G ~QG S ) $.
    cldsubg.2 $e |- X = ( Base ` G ) $.
    $( A subgroup of finite index is closed iff it is open.  (Contributed by
       Mario Carneiro, 20-Sep-2015.) $)
    cldsubg $p |- ( ( G e. TopGrp /\ S e. ( SubGrp ` G ) /\ ( X /. R ) e. Fin )
      -> ( S e. ( Clsd ` J ) <-> S e. J ) ) $=
      ( vx vy vz wcel cfv wa cuni cdif wceq syl wss cvv ctgp csubg cqs cfn ccld
      w3a csn ctopon simpl1 tgptopon toponuni simpl2 unisng uneq2d uniun undif1
      difeq1d cun c0g cec eqid eqgid cqg co ovex eqeltri tgpgrp grpidcl ecelqsg
      sylancr eqeltrrd snssd ssequn2 sylib syl5eq unieqd wer eqger uniqs2 eqtrd
      cgrp a1i syl5eqr eqtr3d cin c0 wb difss unissi syl5sseq cpw cv wne adantr
      wn df-ne simpr qsdisj ord disj2 syl6ib syl5bi expimpd eldifsn selpw ssrdv
      3imtr4g sspwuni sylibr uneqdifeq syl2anc mpbid ctop topontop simpl3 diffi
      wrex elqs cplusg cmpt simpll2 subgrcl subgss eqglact syl3anc simplr chmeo
      cima tgplacthmeo sylan sseqtrd hmeocld eqeltrd eleq1 syl5ibrcom rexlimdva
      vex ssdifssd unicld cldopn ex wi opnsubg 3expia 3adant3 impbid ) CUALZBCU
      BMZLZEAUCZUDLZUFZBDUEMZLZBDLZUULUUNUUOUULUUNNZDOZUUJBUGZPZOZPZBDUUPEUUTPZ
      UVABUUPEUUQUUTUUPDEUHMLZEUUQQUUPUUGUVCUUGUUIUUKUUNUIZCDEFHUJRZEDUKRZUQUUP
      UUTBURZEQZUVBBQZUUPUUTUUROZURZUVGEUUPUVJBUUTUUPUUIUVJBQUUGUUIUUKUUNULZBUU
      HUMRUNUUPUVKUUSUURURZOZEUUSUURUOUUPUVNUUJOZEUUPUVMUUJUUPUVMUUJUURURZUUJUU
      JUURUPUUPUURUUJSUVPUUJQUUPBUUJUUPCUSMZAUTZBUUJUUPUUIUVRBQUVLACEBUVQHGUVQV
      AZVBRUUPATLZUVQELZUVRUUJLACBVCVDTGCBVCVEVFZUUPCWALZUWAUUPUUGUWCUVDCVGRECU
      VQHUVSVHREUVQATVIVJVKZVLUURUUJVMVNVOVPUUPEATUUPUUIEAVQZUVLACEBHGVRRZUVTUU
      PUWBWBVSZVTWCWDUUPUUTESUUTBWEWFQZUVHUVIWGUUPUVOUUTEUUSUUJUUJUURWHWIUWGWJU
      UPUUTTBPZSZUWHUUPUUSUWIWKZSUWJUUPIUUSUWKUUPIWLZUUJLZUWLBWMZNUWLUWISZUWLUU
      SLUWLUWKLUUPUWMUWNUWOUWNUWLBQZWOZUUPUWMNZUWOUWLBWPUWRUWQUWLBWEWFQZUWOUWRU
      WPUWSUWREUWLBAEUUPUWEUWMUWFWNUUPUWMWQUUPBUUJLUWMUWDWNWRWSUWLBWTXAXBXCUWLU
      UJBXDIUWIXEXGXFUUSUWIXHVNUUTBWTXIUUTBEXJXKXLWDUUPUUTUUMLZUVADLUUPDXMLZUUS
      UDLZUUSUUMSUWTUUPUVCUXAUVEEDXNRUUPUUKUXBUUGUUIUUKUUNXOUUJUURXPRUUPUUJUUMU
      URUUPIUUJUUMUWMUWLJWLZAUTZQZJEXQUUPUWLUUMLZJEUWLAIYQXRUUPUXEUXFJEUUPUXCEL
      ZNZUXFUXEUXDUUMLUXHUXDKEUXCKWLCXSMZVDXTZBYHZUUMUXHUWCBESZUXGUXDUXKQUXHUUI
      UWCUUGUUIUUKUUNUXGYABCYBRUUPUXLUXGUUPUUIUXLUVLEBCHYCRZWNUUPUXGWQKUXCUXIAC
      EBHGUXIVAZYDYEUXHUUNUXKUUMLZUULUUNUXGYFUXHUXJDDYGVDLZBUUQSZUUNUXOWGUUPUUG
      UXGUXPUVDKUXCUXIUXJCDEUXJVAHUXNFYIYJUUPUXQUXGUUPBEUUQUXMUVFYKWNBUXJDDUUQU
      UQVAZYLXKXLYMUWLUXDUUMYNYOYPXBXFYRUUSDUUQUXRYSYEUUTDUUQUXRYTRVKUUAUUGUUIU
      UOUUNUUBUUKUUGUUIUUOUUNBCDFUUCUUDUUEUUF $.
  $}

  ${
    $d y z .~ $.  $d x z .0. $.  $d g x y z A $.  $d w x y z J $.  $d y z S $.
    $d g w x y z G $.  $d g w x y z X $.
    tgpconncomp.x $e |- X = ( Base ` G ) $.
    tgpconncomp.z $e |- .0. = ( 0g ` G ) $.
    tgpconncomp.j $e |- J = ( TopOpen ` G ) $.
    tgpconncomp.s $e |- S =
      U. { x e. ~P X | ( .0. e. x /\ ( J |`t x ) e. Conn ) } $.
    ${
      tgpconncompeqg.r $e |- .~ = ( G ~QG S ) $.
      $( The connected component containing ` A ` is the left coset of the
         identity component containing ` A ` .  (Contributed by Mario Carneiro,
         17-Sep-2015.) $)
      tgpconncompeqg $p |- ( ( G e. TopGrp /\ A e. X ) ->
        [ A ] .~ = U. { x e. ~P X | ( A e. x /\ ( J |`t x ) e. Conn ) } ) $=
        ( vz wcel crest co wss wceq adantr vy vg ctgp wa cec cv cconn crab cuni
        cpw wbr cab dfec2 adantl cminusg cfv cplusg w3a wb sspwuni mpbi eqsstri
        ssrab2 eqid eqgval syldan simp2 syl6bi abssdv eqsstrd simpr cgrp tgpgrp
        a1i grplinv sylan ctopon tgptopon grpidcl syl syl2anc eqeltrd mpbir3and
        conncompid elecg mpbird cmpt cima eqglact mp3an2 oveq2d ccn tgplacthmeo
        chmeo toponuni syl5sseq conncompconn connima conncompss syl3anc wral wi
        hmeocn elpwi ccnv mptpreima grprid simprrl oveq2 eleq1d elrab2 sylanbrc
        hmeocnvcn simprl sseqtrd simprrr wfun cdm grplactcnv simpld grplactfval
        wf1o f1oeq1 mpbid f1ocnv f1ofun 3syl f1odm sseqtr4d funimass3 imacnvcnv
        syl6eqr expr sylan2 ralrimiva eleq2 anbi12d ralrab sylibr unissb eqssd
        ) EUCOZBGOZUDZBCUEZBAUFZOZFUUFPQZUGOZUDZAGUJZUHZUIZUUDUUEGRBUUEOZFUUEPQ
        ZUGOUUEUUMRUUDUUEBNUFZCUKZNULZGUUCUUEUURSUUBNBCGUMUNUUDUUQNGUUDUUQUUCUU
        PGOZBEUOUPZUPZUUPEUQUPZQDOZURZUUSUUBUUCDGRZUUQUVDUSUVEUUDDHUUFOUUIUDZAU
        UKUHZUIZGLUVGUUKRUVHGRUVFAUUKVCUVGGUTVAVBZVNZBUUPUVBCDEUUTUCGIUUTVDZUVB
        VDZMVEVFUUCUUSUVCVGVHVIVJUUDUUNBBCUKZUUDUVMUUCUUCUVABUVBQZDOZUUBUUCVKZU
        VPUUDUVNHDUUBEVLOZUUCUVNHSEVMZGUVBEUUTBHIUVLJUVKVOVPUUDFGVQUPOZHGOZHDOU
        UBUVSUUCEFGKIVRTZUUDUVQUVTUUBUVQUUCUVRTGEHIJVSVTZAHDFGLWDWAWBUUBUUCUVEU
        VMUUCUUCUVOURUSUVJBBUVBCDEUUTUCGIUVKUVLMVEVFWCUUDUUCUUCUUNUVMUSUVPUVPBB
        CGGWEWAWFUUDUUOFNGBUUPUVBQZWGZDWHZPQUGUUDUUEUWEFPUUBUVQUUCUUEUWESZUVRUV
        QUVEUUCUWFUVINBUVBCEGDIMUVLWIWJVPZWKUUDDUWDFFFUIZUWHVDZUUDUWDFFWNQOZUWD
        FFWLQZONBUVBUWDEFGUWDVDZIUVLKWMZUWDFFXCVTUUDGDUWHUVIUUDUVSGUWHSZUWAGFWO
        VTZWPUUDUVSUVTFDPQUGOUWAUWBAHDFGLWQWAWRWBABUUMUUEFGUUMVDWSWTUUDUAUFZUUE
        RZUAUULXAZUUMUUERUUDBUWPOZFUWPPQZUGOZUDZUWQXBZUAUUKXAUWRUUDUXCUAUUKUWPU
        UKOUUDUWPGRZUXCUWPGXDUUDUXDUXBUWQUUDUXDUXBUDZUDZUWPUWDXEZXEDWHZUUEUXFUX
        GUWPWHZDRZUWPUXHRZUXFUXIGRZHUXIOZFUXIPQUGOUXJUXLUXFUXIUWCUWPOZNGUHGNGUW
        CUWPUWDUWLXFZUXNNGVCVBVNUXFUVTBHUVBQZUWPOZUXMUUDUVTUXEUWBTUXFUXPBUWPUUD
        UXPBSZUXEUUBUVQUUCUXRUVRGUVBEBHIUVLJXGVPTUUDUXDUWSUXAXHWBUXNUXQNHGUXIUU
        PHSUWCUXPUWPUUPHBUVBXIXJUXOXKXLUXFUWPUXGFFUWHUWIUUDUXGUWKOZUXEUUDUWJUXS
        UWMUWDFFXMVTTUXFUWPGUWHUUDUXDUXBXNZUUDUWNUXEUWOTXOUUDUXDUWSUXAXPWRAHDUX
        IFGLWSWTUXFUXGXQZUWPUXGXRZRUXJUXKUSUXFGGUWDYBZGGUXGYBZUYAUUDUYCUXEUUDGG
        BUBGNGUBUFUUPUVBQWGWGZUPZYBZUYCUUDUYGUYFXEUVAUYEUPSZUUBUVQUUCUYGUYHUDUV
        RBUVBUBUYEEUUTGNUYEVDZIUVLUVKXSVPXTUUDUYFUWDSZUYGUYCUSUUCUYJUUBBUVBUBUY
        EEGNUYIIYAUNGGUYFUWDYCVTYDTZGGUWDYEZGGUXGYFYGUXFUWPGUYBUXTUXFUYCUYDUYBG
        SUYKUYLGGUXGYHYGYIUWPDUXGYJWAYDUXFUUEUWEUXHUUDUWFUXEUWGTUWDDYKYLYIYMYNY
        OUUJUXBUWQUAAUUKUUFUWPSZUUGUWSUUIUXAUUFUWPBYPUYMUUHUWTUGUUFUWPFPXIXJYQY
        RYSUAUULUUEYTYSUUA $.
    $}

    $( The identity component, the connected component containing the identity
       element, is a closed ( ~ conncompcld ) normal subgroup.  (Contributed by
       Mario Carneiro, 17-Sep-2015.) $)
    tgpconncomp $p |- ( G e. TopGrp -> S e. ( NrmSGrp ` G ) ) $=
      ( vy vz wcel cfv co wss syl wceq adantr eqid vw ctgp csubg cv cplusg wral
      wi cnsg wne csg crest cconn cpw crab cuni ssrab2 sspwuni mpbi eqsstri a1i
      c0 wa ctopon tgptopon cgrp tgpgrp grpidcl conncompid syl2anc ne0i cmpt wf
      cima cres df-ima resmpt ax-mp rneqi eqtri imassrn sselda grpsubcl syl3anc
      crn simpr fmptd frn syl5ss grpsubid ovex oveq2 elrnmpt1s sylancl eqeltrrd
      cvv syl6eleqr chmeo ccn cminusg ccom grpsubval mpteq2dva grpinvcl grpinvf
      sylan feqmptd eqidd fmptco eqtr4d grpinvhmeo syldan hmeoco eqeltrd hmeocn
      tgplacthmeo toponuni conncompconn connima conncompss syl5eqssr wfn fnmpti
      syl5sseq df-f mpbiran sylibr fmpt ralrimiva w3a issubg4 mpbir3and cqg wbr
      wb oveq1d eqgval cec tgpconncompeqg elec mpbid oppginv grpinvinv oppgplus
      coppg fveq1d simprll eqtr3d syl6eq simprlr simprr oppgtgp oppgid oppgtopn
      oppgbas eleq2d vex fvex 3bitr3g simp3d expr ralrimivva isnsg2 sylanbrc )
      CUBMZBCUCNMZKUDZLUDZCUENZOZBMZUVGUVFUVHOZBMZUGZLEUFKEUFBCUHNMUVDUVEBEPZBV
      AUIZUVFUVGCUJNZOZBMLBUFZKBUFZUVNUVDBFAUDZMDUVTUKOULMZVBZAEUMZUNZUOZEJUWDU
      WCPUWEEPUWBAUWCUPUWDEUQURUSZUTZUVDFBMZUVOUVDDEVCNMZFEMZUWHCDEIGVDZUVDCVEM
      ZUWJCVFZECFGHVGQZAFBDEJVHVIBFVJQUVDUVRKBUVDUVFBMZVBZBBLBUVQVKZVLZUVRUWPUW
      QWDZBPZUWRUWPUWSLEUVQVKZBVMZBUXBUXABVNZWDUWSUXABVOUXCUWQUVNUXCUWQRUWFLEBU
      VQVPVQVRVSZUWPUXBEPFUXBMDUXBUKOULMUXBBPUWPUXBUXAWDZEUXABVTUWPEEUXAVLUXEEP
      UWPLEUVQEUXAUWPUVGEMZVBUWLUVFEMZUXFUVQEMUWPUWLUXFUVDUWLUWOUWMSZSUWPUXGUXF
      UVDBEUVFUWGWAZSUWPUXFWEECUVPUVFUVGGUVPTZWBWCUXATWFEEUXAWGQWHUWPFUWSUXBUWP
      UVFUVFUVPOZFUWSUWPUWLUXGUXKFRUXHUXIECUVPUVFFGHUXJWIVIUWPUWOUXKWOMUXKUWSMU
      VDUWOWEUVFUVFUVPWJLBUVQUXKUVFUWQWOUWQTZUVGUVFUVFUVPWKWLWMWNUXDWPUWPBUXADD
      DUOZUXMTUWPUXADDWQOZMUXADDWROMUWPUXAUAEUVFUAUDZUVHOZVKZCWSNZWTZUXNUWPUXAL
      EUVFUVGUXRNZUVHOZVKUXSUWPLEUVQUYAUWPUXGUXFUVQUYARUXIEUVHCUXRUVPUVFUVGGUVH
      TZUXRTZUXJXAXEXBUWPLUAEEUXTUXPUYAUXRUXQUWPUWLUXFUXTEMUXHECUXRUVGGUYCXCXEU
      WPLEEUXRUVDEEUXRVLZUWOUVDUWLUYDUWMECUXRGUYCXDQSXFUWPUXQXGUXOUXTUVFUVHWKXH
      XIUWPUXRUXNMZUXQUXNMZUXSUXNMUVDUYEUWOCUXRDIUYCXJSUVDUWOUXGUYFUXIUAUVFUVHU
      XQCDEUXQTGUYBIXOXKUXRUXQDDDXLVIXMUXADDXNQUWPEBUXMUWFUVDEUXMRZUWOUVDUWIUYG
      UWKEDXPQSYCUVDDBUKOULMZUWOUVDUWIUWJUYHUWKUWNAFBDEJXQVISXRAFBUXBDEJXSWCXTU
      WRUWQBYAUWTLBUVQUWQUVFUVGUVPWJUXLYBBBUWQYDYEYFLBBUVQUWQUXLYGYFYHUVDUWLUVE
      UVNUVOUVSYIYNUWMKLEBCUVPGUXJYJQYKUVDUVMKLEEUVDUXGUXFVBZUVJUVLUVDUYIUVJVBZ
      VBZUVFUXRNZCUUDNZWSNZNZUVGUYMUENZOZUVKBUYKUYQUVFUVGUYPOUVKUYKUYOUVFUVGUYP
      UYKUYLUXRNZUYOUVFUYKUYLUXRUYNUYKUWLUXRUYNRUVDUWLUYJUWMSZCUXRUYMUYMTZUYCUU
      AQUUEUYKUWLUXGUYRUVFRUYSUVDUXGUXFUVJUUFZECUXRUVFGUYCUUBVIZUUGYOUVHUYPCUYM
      UVFUVGUYBUYTUYPTZUUCUUHUYKUYLEMZUXFUYQBMZUYKUYLUVGUYMBYLOZYMZVUDUXFVUEYIZ
      UYKUYLUVGCBYLOZYMZVUGUYKVUJVUDUXFUYRUVGUVHOZBMZUYKUWLUXGVUDUYSVUAECUXRUVF
      GUYCXCVIZUVDUXGUXFUVJUUIUYKVUKUVIBUYKUYRUVFUVGUVHVUBYOUVDUYIUVJUUJXMUYKUW
      LUVNVUJVUDUXFVULYIYNUYSUWFUYLUVGUVHVUIBCUXRVEEGUYCUYBVUITZYPWMYKUYKUVGUYL
      VUIYQZMUVGUYLVUFYQZMVUJVUGUYKVUOVUPUVGUYKVUOUYLUVTMUWAVBAUWCUNUOZVUPUVDUY
      JVUDVUOVUQRVUMAUYLVUIBCDEFGHIJVUNYRXKUYKUYMUBMZVUDVUPVUQRUVDVURUYJCUYMUYT
      UUKSZVUMAUYLVUFBUYMDEFECUYMUYTGUUNZCUYMFUYTHUULCDUYMUYTIUUMJVUFTZYRVIXIUU
      OUVGUYLVUILUUPZUVFUXRUUQZYSUVGUYLVUFVVBVVCYSUURYTUYKVURUVNVUGVUHYNVUSUWFU
      YLUVGUYPVUFBUYMUYNUBEVUTUYNTVUCVVAYPWMYTUUSWNUUTUVAKLUVHBCEGUYBUVBUVC $.

    $( The identity component is a subset of any open subgroup.  (Contributed
       by Mario Carneiro, 17-Sep-2015.) $)
    tgpconncompss $p |- ( ( G e. TopGrp /\ T e. ( SubGrp ` G ) /\ T e. J ) ->
      S C_ T ) $=
      ( ctgp wcel csubg cfv w3a ctopon ccld cin wss simp3 opnsubg elind subg0cl
      tgptopon 3ad2ant1 3ad2ant2 conncompclo syl3anc ) DLMZCDNOMZCEMZPZEFQOMZCE
      EROZSMGCMZBCTUJUKUNULDEFJHUEUFUMEUOCUJUKULUACDEJUBUCUKUJUPULCDGIUDUGAGBCE
      FKUHUI $.
  $}

  ${
    $d u v w x y z A $.  $d u v w x y z F $.  $d u v w x y z G $.
    $d u v w x y z H $.  $d u w x y z J $.  $d u v w x y z X $.
    $d u w x y z K $.
    ghmcnp.x $e |- X = ( Base ` G ) $.
    ghmcnp.j $e |- J = ( TopOpen ` G ) $.
    ghmcnp.k $e |- K = ( TopOpen ` H ) $.
    $( A group homomorphism on topological groups is continuous everywhere if
       it is continuous at any point.  (Contributed by Mario Carneiro,
       21-Oct-2015.) $)
    ghmcnp $p |- ( ( G e. TopMnd /\ H e. TopMnd /\ F e. ( G GrpHom H ) ) ->
      ( F e. ( ( J CnP K ) ` A ) <-> ( A e. X /\ F e. ( J Cn K ) ) ) ) $=
      ( vw wcel co cfv wa eqid adantr syl syl3anc wceq vx vy vu vz vv ctmd cghm
      w3a ccnp cuni ccn wi cnprcl a1i cbs wf cv ctopon tmdtopon 3ad2ant1 simpl2
      wral simpr cima wss wrex csg cplusg crab cmpt ccnv mptpreima cgrp simpll3
      cnpf2 ghmgrp1 simprl adantl toponuni eleqtrrd grpsubcl ffvelrnd tmdlactcn
      syl2anc simprrl cnima syl5eqelr ghmsub oveq1d ghmgrp2 eqtrd simprrr oveq2
      grpnpcan eqeltrd eleq1d elrab sylanbrc cnpimaex ssrab simprbi wfn toponss
      wb ffn sylan ralima syl5ib simpl1 ad2antrr fveq2 oveq2d rspccv ghmlin c0g
      grpcl cminusg grprinv eqtr3d grpass syl13anc grplid 3eqtr3d fveq2d sylibd
      grpinvsub adantlr ralrimiva ralrab2 sylibr wfun cdm ffun ssrab2 syl5sseqr
      fdm funimass4 mpbird expr mpbir2and imaeq2 sseq1d anbi12d rspcev syl12anc
      eleq2 sylan2d rexlimdva anassrs iscnp cncnp ex jcad cncnpi ancoms impbid1
      mpd eleq2d anbi1d bitr4d ) CUFLZDUFLZBCDUGMLZUHZBAEFUIMZNLZAEUJZLZBEFUKML
      ZOZAGLZUVIOUVDUVFUVJUVDUVFUVHUVIUVFUVHULUVDABEFUVGUVGPZUMZUNUVDUVFUVIUVDU
      VFOZUVIGDUONZBUPZBUAUQZUVENLZUAGVBZUVNEGURNLZFUVOURNLZUVFUVPUVDUVTUVFUVAU
      VBUVTUVCCEGIHUSUTZQZUVNUVBUWAUVAUVBUVCUVFVAZDFUVOJUVOPZUSRZUVDUVFVCZABEFG
      UVOVOSZUVNUVRUAGUVNUVQGLZOZUVRUVPUVQBNZUBUQZLZUVQUCUQZLZBUWNVDZUWLVEZOZUC
      EVFZULZUBFVBZUVNUVPUWIUWHQUWJUWTUBFUWJUWLFLZUWMUWSUVNUWIUXBUWMOZUWSUVNUWI
      UXCOZOZAUDUQZLZBUXFVDZUVQACVGNZMZBNZKUQZDVHNZMZUWLLZKUVOVIZVEZOZUDEVFZUWS
      UXEUVFUXPFLABNZUXPLZUXSUVNUVFUXDUWGQUXEUXPKUVOUXNVJZVKUWLVDZFKUVOUXNUWLUY
      BUYBPZVLUXEUYBFFUKMLZUXBUYCFLUXEUVBUXKUVOLUYEUVNUVBUXDUWDQUXEGUVOUXJBUVNU
      VPUXDUWHQZUXECVMLZUWIUVKUXJGLZUXEUVCUYGUVAUVBUVCUVFUXDVNZCDBVPZRZUVNUWIUX
      CVQZUVNUVKUXDUVNAUVGGUVFUVHUVDUVMVRUVNUVTGUVGTZUWCGEVSZRVTQZGCUXIUVQAHUXI
      PZWASZWBKUXKUXMUYBDFUVOUYDUWEUXMPZJWCWDUVNUWIUXBUWMWEUWLUYBFFWFWDWGUXEUXT
      UVOLZUXKUXTUXMMZUWLLZUYAUXEGUVOABUYFUYOWBZUXEUYTUWKUWLUXEUYTUWKUXTDVGNZMZ
      UXTUXMMZUWKUXEUXKVUDUXTUXMUXEUVCUWIUVKUXKVUDTUYIUYLUYOGCDUVQBUXIVUCAHUYPV
      UCPZWHSWIUXEDVMLZUWKUVOLUYSVUEUWKTUXEUVCVUGUYICDBWJRUXEGUVOUVQBUYFUYLWBVU
      BUVOUXMDVUCUWKUXTUWEUYRVUFWNSWKUVNUWIUXBUWMWLWOUXOVUAKUXTUVOUXLUXTTUXNUYT
      UWLUXLUXTUXKUXMWMWPWQWRUDUXPABEFWSSUXEUXRUWSUDEUXEUXFELZOZUXQUXKUEUQZBNZU
      XMMZUWLLZUEUXFVBZUXGUWSUXQUXOKUXHVBZVUIVUNUXQUXHUVOVEVUOUXOKUVOUXHWTXAVUI
      BGXBZUXFGVEZVUOVUNXDVUIUVPVUPUXEUVPVUHUYFQGUVOBXERUXEUVTVUHVUQUVNUVTUXDUW
      CQUXFEGXCXFUXOVUMKUEGUXFBUXLVUKTUXNVULUWLUXLVUKUXKUXMWMWPXGWDXHUXEVUHUXGV
      UNOZUWSUXEVUHVUROZOZAUVQUXIMZUXLCVHNZMZUXFLZKGVIZELUVQVVELZBVVEVDZUWLVEZU
      WSVUTVVEKGVVCVJZVKUXFVDZEKGVVCUXFVVIVVIPZVLVUTVVIEEUKMLZVUHVVJELVUTUVAVVA
      GLZVVLUVNUVAUXDVUSUVAUVBUVCUVFXIXJVUTUYGUVKUWIVVMUXEUYGVUSUYKQZUXEUVKVUSU
      YOQZUXEUWIVUSUYLQZGCUXIAUVQHUYPWAZSKVVAVVBVVICEGVVKHVVBPZIWCWDUXEVUHVURVQ
      UXFVVIEEWFWDWGVUTUWIVVAUVQVVBMZUXFLZVVFVVPVUTVVSAUXFVUTUYGUVKUWIVVSATVVNV
      VOVVPGVVBCUXIAUVQHVVRUYPWNSUXEVUHUXGVUNWEWOVVDVVTKUVQGUXLUVQTVVCVVSUXFUXL
      UVQVVAVVBWMWPWQWRVUTVVHVUKUWLLZUEVVEVBZVUTVVDUXLBNZUWLLZULZKGVBVWBVUTVWEK
      GVUTUXLGLZOZVVDUXKVVCBNZUXMMZUWLLZVWDVUTVVDVWJULZVWFVUTVUNVWKUXEVUHUXGVUN
      WLVUMVWJUEVVCUXFVUJVVCTZVULVWIUWLVWLVUKVWHUXKUXMVUJVVCBXKXLWPXMRQVWGVWIVW
      CUWLUXEVWFVWIVWCTVUSUXEVWFOZUXJVVCVVBMZBNZVWIVWCVWMUVCUYHVVCGLZVWOVWITUXE
      UVCVWFUYIQZUXEUYHVWFUYQQZVWMUYGVVMVWFVWPVWMUVCUYGVWQUYJRZVWMUYGUVKUWIVVMV
      WSUXEUVKVWFUYOQZUXEUWIVWFUYLQZVVQSZUXEVWFVCZGVVBCVVAUXLHVVRXPSVVBUXMCDUXJ
      BVVCGHVVRUYRXNSVWMVWNUXLBVWMUXJVVAVVBMZUXLVVBMZCXONZUXLVVBMZVWNUXLVWMVXDV
      XFUXLVVBVWMUXJUXJCXQNZNZVVBMZVXDVXFVWMVXIVVAUXJVVBVWMUYGUWIUVKVXIVVATVWSV
      XAVWTGCUXIVXHUVQAHUYPVXHPZYFSXLVWMUYGUYHVXJVXFTVWSVWRGVVBCVXHUXJVXFHVVRVX
      FPZVXKXRWDXSWIVWMUYGUYHVVMVWFVXEVWNTVWSVWRVXBVXCGVVBCUXJVVAUXLHVVRXTYAVWM
      UYGVWFVXGUXLTVWSVXCGVVBCUXLVXFHVVRVXLYBWDYCYDXSYGWPYEYHVVDVWAVWDUEKGVUJUX
      LTVUKVWCUWLVUJUXLBXKWPYIYJVUTBYKZVVEBYLZVEVVHVWBXDVUTUVPVXMUXEUVPVUSUYFQZ
      GUVOBYMRVUTGVVEVXNVVDKGYNVUTUVPVXNGTVXOGUVOBYPRYOUEVVEUWLBYQWDYRUWRVVFVVH
      OUCVVEEUWNVVETZUWOVVFUWQVVHUWNVVEUVQUUFVXPUWPVVGUWLUWNVVEBUUAUUBUUCUUDUUE
      YSUUGUUHUUQUUIYSYHUWJUVTUWAUWIUVRUVPUXAOXDUVNUVTUWIUWCQUVNUWAUWIUWFQUVNUW
      IVCUCUBUVQBEFGUVOUUJSYTYHUVNUVTUWAUVIUVPUVSOXDUWCUWFUABEFGUVOUUKWDYTUULUU
      MUVIUVHUVFABEFUVGUVLUUNUUOUUPUVDUVKUVHUVIUVDGUVGAUVDUVTUYMUWBUYNRUURUUSUU
      T $.
  $}

  ${
    $d x y A $.  $d x y G $.  $d x J $.  $d x .~ $.  $d x y X $.  $d x y .0. $.
    $d x S $.
    snclseqg.x $e |- X = ( Base ` G ) $.
    snclseqg.j $e |- J = ( TopOpen ` G ) $.
    snclseqg.z $e |- .0. = ( 0g ` G ) $.
    snclseqg.r $e |- .~ = ( G ~QG S ) $.
    snclseqg.s $e |- S = ( ( cls ` J ) ` { .0. } ) $.
    $( The coset of the closure of the identity is the closure of a point.
       (Contributed by Mario Carneiro, 22-Sep-2015.) $)
    snclseqg $p |- ( ( G e. TopGrp /\ A e. X ) ->
      [ A ] .~ = ( ( cls ` J ) ` { A } ) ) $=
      ( vx vy wcel cfv co cima wceq eqid ctgp wa cec cv cplusg cmpt csn imaeq2i
      ccl cgrp wss tgpgrp adantr cuni ctop ctopon tgptopon topontop syl grpidcl
      snssd toponuni sseqtrd clsss3 syl2anc sseqtr4d syl5eqss simpr tgplacthmeo
      eqglact syl3anc chmeo hmeocls 3eqtr4a crn cres df-ima resmptd syl5eq wrex
      rneqd cab c0g eqeltri oveq2 eqeq2d rexsn grprid sylan syl5bb abbidv rnmpt
      cvv fvex df-sn 3eqtr4g eqtrd fveq2d ) DUAOZAFOZUBZABUCZMFAMUDZDUEPZQZUFZG
      UGZRZEUIPZPZAUGZXIPXAXFCRZXFXGXIPZRZXBXJCXMXFLUHXADUJOZCFUKWTXBXLSWSXOWTD
      ULZUMZXACXMFLXAXMEUNZFXAEUOOZXGXRUKZXMXRUKXAEFUPPOZXSWSYAWTDEFIHUQUMZFEUR
      USXAXGFXRXAGFXAXOGFOXQFDGHJUTUSVAZXAYAFXRSYBFEVBUSZVCZXGEXRXRTZVDVEYDVFVG
      WSWTVHMAXDBDFCHKXDTZVJVKXAXFEEVLQOXTXJXNSMAXDXFDEFXFTHYGIVIYEXGXFEEXRYFVM
      VEVNXAXHXKXIXAXHMXGXEUFZVOZXKXAXHXFXGVPZVOYIXFXGVQXAYJYHXAMFXGXEYCVRWAVSX
      ANUDZXESZMXGVTZNWBYKASZNWBYIXKXAYMYNNYMYKAGXDQZSZXAYNYLYPMGGDWCPWMJDWCWNW
      DXCGSXEYOYKXCGAXDWEWFWGXAYOAYKWSXOWTYOASXPFXDDAGHYGJWHWIWFWJWKMNXGXEYHYHT
      WLNAWOWPWQWRWQ $.
  $}

  ${
    $d x y G $.  $d x y .0. $.
    tgphaus.1 $e |- .0. = ( 0g ` G ) $.
    tgphaus.j $e |- J = ( TopOpen ` G ) $.
    $( A topological group is Hausdorff iff the identity subgroup is closed.
       (Contributed by Mario Carneiro, 18-Sep-2015.) $)
    tgphaus $p |- ( G e. TopGrp ->
      ( J e. Haus <-> { .0. } e. ( Clsd ` J ) ) ) $=
      ( vx vy wcel ccld cfv wi eqid syl wceq cid cres co cv wa wb ctgp cha cuni
      csn cbs cgrp tgpgrp grpidcl ctopon tgptopon toponuni eleqtrd sncld expcom
      ctx csg ccnv cima ccn tgpsubcn cnclima ex wbr copab wrel cxp wss cnvimass
      cdm wf grpsubf fdm syl5sseq relxp relss mpisyl dfrel4v sylib cop elpreima
      wfn ffn opelxp anbi1i grpsubeq0 3expb sylan df-ov eleq1i ovex elsn bitr3i
      equcom 3bitr4g pm5.32da syl5bb bitrd df-br biimparc pm4.71i an32 opabbidv
      eleq1 bitr4i opabresid syl6eq 3eqtrd eleq1d sylibd ctop topontop hausdiag
      reseq2d baib sylibrd impbid ) AUAHZBUBHZCUDZBIJHZXQCBUCZHZXRXTKXQCAUEJZYA
      XQAUFHZCYCHAUGZYCACYCLZDUHMXQBYCUIJHZYCYANABYCEYFUJZYCBUKMZULXRYBXTCBYAYA
      LZUMUNMXQXTOYAPZBBUOQZIJZHZXRXQXTAUPJZUQXSURZYMHZYNXQYOYLBUSQHZXTYQKABYOE
      YOLZUTYRXTYQXSYOYLBVAVBMXQYPYKYMXQYPFRZGRZYPVCZFGVDZOYCPZYKXQYPVEZYPUUCNX
      QYPYCYCVFZVGUUFVEUUEXQYOVIZYPUUFYOXSVHXQUUFYCYOVJZUUGUUFNXQYDUUHYEYCAYOYF
      YSVKMZUUFYCYOVLMVMYCYCVNYPUUFVOVPFGYPVQVRXQUUCYTYCHZUUAYTNZSZFGVDUUDXQUUB
      UULFGXQYTUUAVSZYPHZUUJUUAYCHZSZUUKSZUUBUULXQUUNUUMUUFHZUUMYOJZXSHZSZUUQXQ
      YOUUFWAZUUNUVATXQUUHUVBUUIUUFYCYOWBMUUFUUMXSYOVTMUVAUUPUUTSXQUUQUURUUPUUT
      YTUUAYCYCWCWDXQUUPUUTUUKXQUUPSYTUUAYOQZCNZYTUUANZUUTUUKXQYDUUPUVDUVETZYEY
      DUUJUUOUVFYCAYOYTUUACYFDYSWEWFWGUUTUVCXSHUVDUVCUUSXSYTUUAYOWHWIUVCCYTUUAY
      OWJWKWLGFWMWNWOWPWQYTUUAYPWRUULUULUUOSUUQUULUUOUUKUUOUUJUUAYTYCXCWSWTUUJU
      UOUUKXAXDWNXBFGYCXEXFXQYCYAOYIXMXGXHXIXQBXJHZXRYNTXQYGUVGYHYCBXKMXRUVGYNB
      YAYJXLXNMXOXP $.
  $}

  ${
    tgpt1.j $e |- J = ( TopOpen ` G ) $.
    $( Hausdorff and T1 are equivalent for topological groups.  (Contributed by
       Mario Carneiro, 18-Sep-2015.) $)
    tgpt1 $p |- ( G e. TopGrp -> ( J e. Haus <-> J e. Fre ) ) $=
      ( ctgp wcel cha ct1 haust1 c0g cfv csn ccld cuni wi cbs cgrp eqid grpidcl
      tgpgrp syl wceq tgptopon toponuni eleqtrd t1sncld tgphaus sylibrd impbid2
      ctopon expcom ) ADEZBFEZBGEZBHUKUMAIJZKBLJEZULUKUNBMZEZUMUONUKUNAOJZUPUKA
      PEUNUREASURAUNURQZUNQZRTUKBURUIJEURUPUAABURCUSUBURBUCTUDUMUQUOUNBUPUPQUEU
      JTABUNUTCUFUGUH $.

    $d a w x y z G $.  $d a w x y z J $.
    $( Hausdorff and T0 are equivalent for topological groups.  (Contributed by
       Mario Carneiro, 18-Sep-2015.) $)
    tgpt0 $p |- ( G e. TopGrp -> ( J e. Haus <-> J e. Kol2 ) ) $=
      ( vx vz vy vw va wcel cv wral weq wi cfv wa eleq2 co wceq ad3antrrr eqid
      ctgp cha ct1 ct0 tgpt1 t1t0 wb cbs imbi12d rspccva adantll csg cplusg c0g
      cgrp tgpgrp simpllr simprd grpsubid syl2anc oveq1d simpld eqtrd cmpt ccnv
      grplid cima ccn ctmd tgptmd ctopon tgptopon cnmptid ctx tgpsubcn cnmpt12f
      cnmptc cnmpt1plusg simprl cnima simplr grpnpcan syl3anc eqeltrd mptpreima
      simprr oveq2 eleq1d elrab2 sylanbrc rspcv syl3c simprbi syl eqeltrrd expr
      impbid ralrimiva ex imim1d ralimdvva ist0-2 ist1-2 3imtr4d impbid2 bitrd
      ) AUAIZBUBIBUCIZBUDIZABCUEXGXHXIBUFXGDJZEJZIZFJZXKIZUGZEBKZDFLZMZFAUHNZKD
      XSKZXJGJZIZXMYAIZMZGBKZXQMZFXSKDXSKZXIXHXGXRYFDFXSXSXGXJXSIZXMXSIZOZOZYEX
      PXQYKYEXPYKYEOZXOEBYLXKBIZOXLXNYEYMXLXNMZYKYDYNGXKBGELYBXLYCXNYAXKXJPYAXK
      XMPUIUJUKYLYMXNXLYLYMXNOZOZXMXMAULNZQZXJAUMNZQZXJXKYPYTAUNNZXJYSQZXJYPYRU
      UAXJYSYPAUOIZYIYRUUARXGUUCYJYEYOAUPSZYPYHYIXGYJYEYOUQZURZXSAYQXMUUAXSTZUU
      ATZYQTZUSUTVAYPUUCYHUUBXJRUUDYPYHYIUUEVBZXSYSAXJUUAUUGYSTZUUHVFUTVCYPXMHX
      SXMHJZYQQZXJYSQZVDZVEXKVGZIZYTXKIZYPUUPBIZYEXJUUPIZUUQYPUUOBBVHQIYMUUSYPH
      UUMXJYSABBXSCUUKXGAVIIYJYEYOAVJSXGBXSVKNIZYJYEYOABXSCUUGVLZSZYPHXMUULYQBB
      BBXSUVCYPHXMBBXSXSUVCUVCUUFVQYPHBXSUVCVMXGYQBBVNQBVHQIYJYEYOABYQCUUIVOSVP
      YPHXJBBXSXSUVCUVCUUJVQVRYLYMXNVSXKUUOBBVTUTYKYEYOWAYPYHXMXJYQQZXJYSQZXKIZ
      UUTUUJYPUVEXMXKYPUUCYIYHUVEXMRUUDUUFUUJXSYSAYQXMXJUUGUUKUUIWBWCYLYMXNWFWD
      UUNXKIZUVFHXJXSUUPHDLZUUNUVEXKUVHUUMUVDXJYSUULXJXMYQWGVAWHHXSUUNXKUUOUUOT
      WEZWIWJYDUUTUUQMGUUPBYAUUPRYBUUTYCUUQYAUUPXJPYAUUPXMPUIWKWLUUQYIUURUVGUUR
      HXMXSUUPHFLZUUNYTXKUVJUUMYRXJYSUULXMXMYQWGVAWHUVIWIWMWNWOWPWQWRWSWTXAXGUV
      AXIXTUGUVBDFEBXSXBWNXGUVAXHYGUGUVBDFGBXSXCWNXDXEXF $.
  $}

  ${
    $d b t $.  $d a b c d p q r s u w x y z G $.  $d a c d p q t u w x y z J $.
    $d a p q r s u w y z F $.  $d a u x y z S $.  $d a b c d p q u w x y z X $.
    $d a b c d p q r s u w x y z H $.  $d a b c d p q r s u w x y z K $.
    $d c d p q t .- $.  $d a b c d p q r s u w x y z Y $.
    qustgp.h $e |- H = ( G /s ( G ~QG Y ) ) $.
    ${
      qustgpopn.x $e |- X = ( Base ` G ) $.
      qustgpopn.j $e |- J = ( TopOpen ` G ) $.
      qustgpopn.k $e |- K = ( TopOpen ` H ) $.
      qustgpopn.f $e |- F = ( x e. X |-> [ x ] ( G ~QG Y ) ) $.
      $( A quotient map in a topological group is an open map.  (Contributed by
         Mario Carneiro, 18-Sep-2015.) $)
      qustgpopn $p |- ( ( G e. TopGrp /\ Y e. ( NrmSGrp ` G ) /\ S e. J ) ->
        ( F " S ) e. K ) $=
        ( va wcel cfv co wceq syl2anc vy vu vz ctgp cnsg w3a cima cqtop cqg cqs
        wss ccnv crn imassrn wfo cvv cqus a1i cbs ovex quslem forn syl syl5sseq
        simp1 cv wa wrex wral cec eceq1 cbvmptv eqtri mptpreima rabeq2i funmpt2
        cmpt wfun fvelima mpan cminusg cplusg wbr ctopon tgptopon simp3 toponss
        adantr sselda ecexg ax-mp fvmpt eqeq1d eqcom csubg wer nsgsubg 3ad2ant2
        syl6bb ad2antrr eqid eqger simplr erth wb subgss eqgval ccn chmeo coppg
        3bitr2d oppgplus mpteq2i oppgtgp oppgbas oppgtopn tgplacthmeo syl5eqelr
        hmeocn ad3antrrr cnima c0g cgrp tgpgrp grprinv oveq1d grpinvcl syl13anc
        grpass grplid 3eqtr3d eqeltrd eleq1d elrab2 sylanbrc crab wfn wi fnmpti
        oveq1 fnfvima 3expia sylancr simpr grpcl syl3anc fvmpt3i grplinv eqtr4d
        mpbir3and erthi ss2rabdv 3sstr4g eleq2 sseq1 anbi12d syl12anc 3ad2antr3
        sylibd rspcev ex sylbid rexlimdva syl5 expimpd syl5bi ralrimiv topontop
        ctop eltop2 3syl mpbird elqtop3 mpbir2and qusval imastopn eleqtrrd ) DU
        DPZIDUEQPZBFPZUFZCBUGZFCUHRZGUWAUWBUWCPZUWBHDIUIRZUJZUKZCULUWBUGZFPZUWA
        CUMZUWBUWFCBUNUWAHUWFCUOZUWJUWFSUWAAUWEDECHUPUDEDUWEUQRSUWAJURZHDUSQSUW
        AKURZNUWEUPPZUWADIUIUTZURZUVRUVSUVTVEZVAZHUWFCVBVCVDUWAUWIUAVFZUBVFZPZU
        WTUWHUKZVGZUBFVHZUAUWHVIZUWAUXDUAUWHUWSUWHPUWSHPZUWSUWEVJZUWBPZVGUWAUXD
        UXHUAUWHHUAHUXGUWBCCAHAVFZUWEVJZVQZUAHUXGVQNAUAHUXJUXGUXIUWSUWEVKVLVMVN
        VOUWAUXFUXHUXDUXHUCVFZCQZUXGSZUCBVHZUWAUXFVGZUXDCVRUXHUXOAHUXJCNVPUCUXG
        BCVSVTUXPUXNUXDUCBUXPUXLBPZVGZUXNUXFUXLHPZUWSDWAQZQZUXLDWBQZRZIPZUFZUXD
        UXRUXNUXGUXLUWEVJZSZUWSUXLUWEWCZUYEUXRUXNUYFUXGSUYGUXRUXMUYFUXGUXRUXSUX
        MUYFSUXPBHUXLUWABHUKZUXFUWAFHWDQPZUVTUYIUWAUVRUYJUWQDFHLKWEVCZUVRUVSUVT
        WFZBFHWGTWHZWIZAUXLUXJUYFHCUXIUXLUWEVKNUWNUYFUPPUWOUXLUPUWEWJWKWLVCWMUY
        FUXGWNWSUXRUWSUXLUWEHUXRIDWOQPZHUWEWPZUWAUYOUXFUXQUVSUVRUYOUVTIDWQWRWTZ
        UWEDHIKUWEXAZXBVCZUWAUXFUXQXCZXDUXRUVRIHUKZUYHUYEXEUWAUVRUXFUXQUWQWTZUX
        RUYOVUAUYQHIDKXFVCZUWSUXLUYBUWEIDUXTUDHKUXTXAZUYBXAZUYRXGTXKUXRUYEUXDUX
        RUXFUYDUXDUXSUXRUYDVGZOHOVFZUYCUYBRZVQZULBUGZFPZUWSVUJPZVUJUWHUKZUXDVUF
        VUIFFXHRPZUVTVUKVUFVUIFFXIRZPVUNVUFVUIOHUYCVUGDXJQZWBQZRZVQZVUOOHVURVUH
        UYBVUQDVUPUYCVUGVUEVUPXAZVUQXAZXLXMVUFVUPUDPZUYCHPZVUSVUOPVUFUVRVVBUXRU
        VRUYDVUBWHZDVUPVUTXNVCUXRIHUYCVUCWIZOUYCVUQVUSVUPFHVUSXAHDVUPVUTKXOVVAD
        FVUPVUTLXPXQTXRVUIFFXSVCUWAUVTUXFUXQUYDUYLXTBVUIFFYATVUFUXFUWSUYCUYBRZB
        PZVULUXRUXFUYDUYTWHZVUFVVFUXLBVUFUWSUYAUYBRZUXLUYBRZDYBQZUXLUYBRZVVFUXL
        VUFVVIVVKUXLUYBVUFDYCPZUXFVVIVVKSVUFUVRVVMVVDDYDVCZVVHHUYBDUXTUWSVVKKVU
        EVVKXAZVUDYETYFVUFVVMUXFUYAHPZUXSVVJVVFSVVNVVHVUFVVMUXFVVPVVNVVHHDUXTUW
        SKVUDYGTUXRUXSUYDUYNWHZHUYBDUWSUYAUXLKVUEYIYHVUFVVMUXSVVLUXLSVVNVVQHUYB
        DUXLVVKKVUEVVOYJTYKUXPUXQUYDXCYLVUHBPZVVGOUWSHVUJVUGUWSSVUHVVFBVUGUWSUY
        CUYBYTYMOHVUHBVUIVUIXAVNZYNYOVUFVVROHYPVUGUWEVJZUWBPZOHYPVUJUWHVUFVVRVW
        AOHVUFVUGHPZVGZVVRVUHCQZUWBPZVWAVWCCHYQZUYIVVRVWEYRAHUXJCUWNUXJUPPUWOUX
        IUPUWEWJWKZNYSUXPUYIUXQUYDVWBUYMXTVWFUYIVVRVWEHBCVUHUUAUUBUUCVWCVWDVVTU
        WBVWCVWDVUHUWEVJZVVTVWCVUHHPZVWDVWHSVWCVVMVWBVVCVWIVUFVVMVWBVVNWHZVUFVW
        BUUDZVUFVVCVWBVVEWHZHUYBDVUGUYCKVUEUUEUUFZAVUHUXJVWHHCUXIVUHUWEVKNVWGUU
        GVCVWCVUGVUHUWEHUXRUYPUYDVWBUYSWTVWCVUGVUHUWEWCZVWBVWIVUGUXTQZVUHUYBRZI
        PZVWKVWMVWCVWPUYCIVWCVWOVUGUYBRZUYCUYBRZVVKUYCUYBRZVWPUYCVWCVWRVVKUYCUY
        BVWCVVMVWBVWRVVKSVWJVWKHUYBDUXTVUGVVKKVUEVVOVUDUUHTYFVWCVVMVWOHPZVWBVVC
        VWSVWPSVWJVWCVVMVWBVXAVWJVWKHDUXTVUGKVUDYGTVWKVWLHUYBDVWOVUGUYCKVUEYIYH
        VWCVVMVVCVWTUYCSVWJVWLHUYBDUYCVVKKVUEVVOYJTYKUXRUYDVWBXCYLVWCVVMVUAVWNV
        WBVWIVWQUFXEVWJUXRVUAUYDVWBVUCWTVUGVUHUYBUWEIDUXTYCHKVUDVUEUYRXGTUUJUUK
        UUIYMUUSUULVVSOHVVTUWBCCUXKOHVVTVQNAOHUXJVVTUXIVUGUWEVKVLVMVNUUMUXCVULV
        UMVGUBVUJFUWTVUJSUXAVULUXBVUMUWTVUJUWSUUNUWTVUJUWHUUOUUPUUTUUQUURUVAUVB
        UVCUVDUVEUVFUVGUWAUYJFUVIPUWIUXEXEUYKHFUVHUAUBUWHFUVJUVKUVLUWAUYJUWKUWD
        UWGUWIVGXEUYKUWRUWBCFHUWFUVMTUVNUWAUWFDECFGHUDUWAAUWEDECHUPUDUWLUWMNUWP
        UWQUVOUWMUWRUWQLMUVPUVQ $.

      qustgplem.m $e |- .- =
        ( z e. X , w e. X |-> [ ( z ( -g ` G ) w ) ] ( G ~QG Y ) ) $.
      $( Lemma for ~ qustgp .  (Contributed by Mario Carneiro, 18-Sep-2015.) $)
      qustgplem $p |- ( ( G e. TopGrp /\ Y e. ( NrmSGrp ` G ) ) ->
        H e. TopGrp ) $=
        ( wcel wa wceq vu vr vs vy va vb vc vd vt vp vq ctgp cnsg cfv cgrp ctps
        csg ctx co ccn qusgrp adantl cbs ctopon cqg cqs cqtop cvv cqus a1i ovex
        adantr syl2anc eqeltrd eqid sylibr cxp wf ccnv cv cima wral grpsubf syl
        wss wrex wrel cop cec wi vex eleq2d syl5bbr anbi12d opelxp wfn ad2antrr
        elqs wb ffn elpreima df-ov qussub syl3anc syl5eqr eleq1d cmpt2 eqeltrrd
        3syl sylib ecexg ax-mp eceq1 eltx weq oveq12 eceq1d eleq1 syl6bb anbi1d
        ovmpt2a 2rexbidv qustgpopn fvmpt3i toponss fnfvima mp3an1 sselda opeq12
        opelxpi anim12dan quseccl mpbir2and ralbidv ralima mpbird sseq1d sylbid
        mpan rexlimdvva simpl qusval quslem imastopn wfo tgptopon qusbas fveq2d
        qtoptopon eleqtrd istps cab cdm cnvimass fdm syl5sseq relxp relss sseld
        mpisyl reeanv 3bitr4g simpllr simprl simprr tgpgrp fnov tgpsubcn fnmpti
        simpr cmpt qtopid sylancl oveq2d eleqtrrd cnmpt21 syl5eqel simplr cnima
        syl5eqelr fnmpt2i anbi1i pm5.32i 3bitri syl5bir simp-4l simprll simprlr
        mpbid rspccv simprrl simpld simprd syl2an eqtr4d 3eqtr3g simprrr sylan2
        mpand 3expb simprbi ralrimivva opeq1 opeq2 sylan9bb dfss3 ralxp rspc2ev
        bitri xpeq1 xpeq2 syl112anc expr syld adantld opex elab imbi12d sylbird
        syl5ibrcom mpdd relssdv ssabral ralrimiva txtopon iscn istgp2 syl3anbrc
        com23 ) EULRZKEUMUNRZSZFUORZFUPRZFUQUNZHHURUSZHUTUSRZFULRUYKUYMUYJKEFLV
[encoded data, 5360 characters]
        VMVUSUAUYOUYPHVVAUYSUYFVMYMFHUYOOVVGUYGUYH $.
    $}

    $( The quotient of a topological group is a topological group.
       (Contributed by Mario Carneiro, 17-Sep-2015.) $)
    qustgp $p |- ( ( G e. TopGrp /\ Y e. ( NrmSGrp ` G ) ) -> H e. TopGrp ) $=
      ( vx vz vw cbs cfv cv cqg co cec cmpt ctopn csg cmpt2 eqid qustgplem ) EF
      GEAHIZEJACKLZMNZABAOIZBOIZFGTTFJGJAPILUAMQZTCDTRUCRUDRUBRUERS $.

    qustgphaus.j $e |- J = ( TopOpen ` G ) $.
    qustgphaus.k $e |- K = ( TopOpen ` H ) $.
    $( The quotient of a topological group by a closed normal subgroup is a
       Hausdorff topological group.  In particular, the quotient by the closure
       of the identity is a Hausdorff topological group, isomorphic to both the
       Kolmogorov quotient and the Hausdorff quotient operations on topological
       spaces (because T0 and Hausdorff coincide for topological groups).
       (Contributed by Mario Carneiro, 22-Sep-2015.) $)
    qustgphaus $p |- ( ( G e. TopGrp /\ Y e. ( NrmSGrp ` G ) /\
        Y e. ( Clsd ` J ) ) -> K e. Haus ) $=
      ( vx ctgp wcel cfv ccld c0g co wss wceq eqid syl wb cnsg w3a cha csn cmpt
      cbs cv cqg cec cqtop ccnv cima qus0 3ad2ant2 cgrp tgpgrp 3ad2ant1 grpidcl
      cqs ovex ecelqsi eqeltrrd snssd crab mptpreima csubg nsgsubg eqgid subgss
      cin eqsstrd sseqin2 sylib wbr wer eqger erth adantr eqeq1d bitrd vex fvex
      wa elec elsn2 eqcom bitri 3bitr4g rabbi2dva 3eqtr3d syl5eq eqeltrd ctopon
      simp3 wfo tgptopon cvv cqus a1i eqidd simp1 quslem qtopcld syl2anc qusval
      mpbir2and imastopn fveq2d eleqtrrd qustgp 3adant3 tgphaus mpbird ) AJKZEA
      UALKZECMLZKZUBZDUCKZBNLZUDZDMLZKZXRYACIAUFLZIUGZAEUHOZUIZUEZUJOZMLZYBXRYA
      YJKZYAYDYFUSZPZYHUKYAULZXPKZXRXTYLXRANLZYFUIZXTYLXOXNYQXTQZXQEABYPFYPRZUM
      UNZXRYPYDKZYQYLKXRAUOKZUUAXNXOUUBXQAUPUQYDAYPYDRZYSURSZYDYPYFAEUHUTZVASVB
      VCXRYNEXPXRYNYGYAKZIYDVDZEIYDYGYAYHYHRZVEXRYDYQVJZYQUUGEXRYQYDPUUIYQQXRYQ
      EYDXREAVFLKZYQEQXOXNUUJXQEAVGUNZYFAYDEYPUUCYFRZYSVHSZXRUUJEYDPUUKYDEAUUCV
      ISVKYQYDVLVMXRUUFIYDYQXRYEYDKZWCZYPYEYFVNZXTYGQZYEYQKUUFUUOUUPYQYGQZUUQXR
      UUPUURTUUNXRYPYEYFYDXRUUJYDYFVOUUKYFAYDEUUCUULVPSUUDVQVRUUOYQXTYGXRYRUUNY
      TVRVSVTYEYPYFIWAANWBWDUUFYGXTQUUQYGXTBNWBWEYGXTWFWGWHWIUUMWJWKXNXOXQWNWLX
      RCYDWMLKZYDYLYHWOYKYMYOWCTXNXOUUSXQACYDGUUCWPUQXRIYFABYHYDWQJBAYFWROQXRFW
      SZXRYDWTZUUHYFWQKXRUUEWSZXNXOXQXAZXBZYAYHCYDYLXCXDXFXRDYIMXRYLABYHCDYDJXR
      IYFABYHYDWQJUUTUVAUUHUVBUVCXEUVAUVDUVCGHXGXHXIXRBJKZXSYCTXNXOUVEXQABEFXJX
      KBDXTXTRHXLSXM $.
  $}

  ${
    $d f g k x z I $.  $d f g k x z ph $.  $d f g k x z R $.  $d f g k x z Y $.
    $d k S $.  $d k V $.  $d k x z W $.
    prdstmdd.y $e |- Y = ( S Xs_ R ) $.
    prdstmdd.i $e |- ( ph -> I e. W ) $.
    prdstmdd.s $e |- ( ph -> S e. V ) $.
    prdstmdd.r $e |- ( ph -> R : I --> TopMnd ) $.
    $( The product of a family of topological monoids is a topological monoid.
       (Contributed by Mario Carneiro, 22-Sep-2015.) $)
    prdstmdd $p |- ( ph -> Y e. TopMnd ) $=
      ( vx vf vg wcel ctps cfv ctopn co ctmd vz vk cplusf ctx ccn wf wss tmdmnd
      cmnd ssriv fss sylancl prdsmndd tmdtps prdstps ccom cpt cbs cxp c1st c2nd
      cv cplusg cmpt cmpt2 w3a eqid 3ad2ant1 wfn ffn syl simp2 simp3 mpt2eq3dva
      prdsplusgval plusffval cop wceq vex op1std fveq1d op2ndd oveq12d mpteq2dv
      mpt2mpt 3eqtr4g ctopon istps sylib txtopon syl2anc ctop cres wral cvv ssv
      topnfn fnssres mp2an fvres tpstop eqeltrd rgen mpbir2an sylancr ffvelrnda
      ffnfv fco2 adantr cnmpt1st cuni prdstopn eqeltrrd toponuni mpteq1d ptpjcn
      wa simpr syl3anc eqcomd fvco3 sylan eleqtrd fveq1 cnmpt21 cnmpt2nd oveq2d
      cnmpt2plusg eleqtrrd syl5eqel ptcn istmd syl3anbrc ) AGUIOGPOZGUCQZGRQZYP
      UDSZYPUESZOGTOABCDEFGHIJADTBUFZTUIUGDUIBUFKLTUILVBZUHUJDTUIBUKULUMABCDEFG
      HJIAYSTPUGDPBUFZKLTPYTUNUJDTPBUKULZUOZAYOYQRBUPZUQQZUESZYRAYOUAGURQZUUGUS
      ZUBDUBVBZUAVBZUTQZQZUUIUUJVAQZQZUUIBQZVCQZSZVDZVDZUUFAMNUUGUUGMVBZNVBZGVC
      QZSZVEMNUUGUUGUBDUUIUUTQZUUIUVAQZUUPSZVDZVEYOUUSAMNUUGUUGUVCUVGAUUTUUGOZU
      VAUUGOZVFUBUUGUVBBCUUTUVADEFGHUUGVGZAUVHCEOUVIJVHAUVHDFOZUVIIVHAUVHBDVIZU
      VIAYSUVLKDTBVJVKZVHAUVHUVIVLAUVHUVIVMUVBVGZVOVNMNUUGUVBYOGUVJUVNYOVGZVPMN
      UAUUGUUGUURUVGUUJUUTUVAVQVRZUBDUUQUVFUVPUULUVDUUNUVEUUPUVPUUIUUKUUTUUTUVA
      UUJMVSZNVSZVTWAUVPUUIUUMUVAUUTUVAUUJUVQUVRWBWAWCZWDWEWFAUAUUQUBUUDDYQUUEF
      UUHUUEVGZAYPUUGWGQZOZUWBYQUUHWGQOAYNUWBUUCUUGYPGUVJYPVGZWHWIZUWDYPYPUUGUU
      GWJWKIAPWLRPWMZUFZUUADWLUUDUFZUWFUWEPVIZYTUWEQZWLOZLPWNRWOVIPWOUGUWHWQPWP
      WOPRWRWSUWJLPYTPOUWIYTRQZWLYTPRWTUWKYTUWKVGXAXBXCLPWLUWEXGXDUUBDPWLRBXHXE
      ZAUUIDOZXQZUAUUHUUQVDMNUUGUUGUVFVEZYQUUIUUDQZUESZMNUAUUGUUGUUQUVFUVSWEUWN
      UWOYQUUORQZUESUWQUWNMNUVDUVEUUPUUOUWRYPYPUUGUUGUWRVGUUPVGADTUUIBKXFAUWBUW
      MUWDXIZUWSUWNMNLUUTUUIYTQZUVDYPYPYPUWRUUGUUGUUGUWSUWSUWNMNYPYPUUGUUGUWSUW
      SXJUWSUWNLUUGUWTVDZUUEUWPUESZYPUWRUESUWNUXALUUEXKZUWTVDZUXBUWNLUUGUXCUWTU
      WNUUEUWAOUUGUXCVRUWNYPUUEUWAAYPUUEVRUWMABCDYPEFGHJIUVMUWCXLZXIZUWSXMUUGUU
      EXNVKXOUWNUVKUWGUWMUXDUXBOAUVKUWMIXIAUWGUWMUWLXIAUWMXRLDUUDUUIUUEFUXCUXCV
      GUVTXPXSXBUWNUUEYPUWPUWRUEUWNYPUUEUXFXTAYSUWMUWPUWRVRKDTUUIRBYAYBZWCYCZUU
      IYTUUTYDYEUWNMNLUVAUWTUVEYPYPYPUWRUUGUUGUUGUWSUWSUWNMNYPYPUUGUUGUWSUWSYFU
      WSUXHUUIYTUVAYDYEYHUWNUWPUWRYQUEUXGYGYIYJYKXBAYPUUEYQUEUXEYGYIYOGYPUVOUWC
      YLYM $.
  $}

  ${
    $d x y I $.  $d x y ph $.  $d x y R $.  $d y S $.  $d x y W $.  $d x y Y $.
    prdstgpd.y $e |- Y = ( S Xs_ R ) $.
    prdstgpd.i $e |- ( ph -> I e. W ) $.
    prdstgpd.s $e |- ( ph -> S e. V ) $.
    prdstgpd.r $e |- ( ph -> R : I --> TopGrp ) $.
    $( The product of a family of topological groups is a topological group.
       (Contributed by Mario Carneiro, 22-Sep-2015.) $)
    prdstgpd $p |- ( ph -> Y e. TopGrp ) $=
      ( vx vy wcel cfv ctopn ccn ctgp eqid adantr cgrp cminusg co wf wss tgpgrp
      ctmd ssriv fss sylancl prdsgrpd tgptmd prdstmdd ccom cpt cbs cmpt grpinvf
      cv syl feqmptd wa simpr prdsinvgd mpteq2dva ctopon tmdtopon wfn ctop wral
      eqtrd cvv topnfn ffn dffn2 sylib fnfco sylancr wceq fvco3 sylan ffvelrnda
      tgptopon topontop 3syl eqeltrd ralrimiva ffnfv sylanbrc prdstopn toponuni
      cuni eqcomd mpteq1 ptpjcn syl3anc oveq12d tgpinv cnmpt11f oveq2d eleqtrrd
      eleqtrd ptcn istgp syl3anbrc ) AGUANZGUGNZGUBOZGPOZXIQUCZNGRNABCDEFGHIJAD
      RBUDZRUAUEDUABUDZKLRUALUSZUFUHDRUABUIUJZUKZABCDEFGHIJAXKRUGUEDUGBUDKLRUGX
      MULUHDRUGBUIUJUMZAXHXIPBUNZUOOZQUCZXJAXHLGUPOZMDMUSZXMOZYABOZUBOZOZUQZUQZ
      XSAXHLXTXMXHOZUQYGALXTXTXHAXFXTXTXHUDXOXTGXHXTSZXHSZURUTVAALXTYHYFAXMXTNZ
      VBMXTBCDXHEFXMGHADFNZYKITACENYKJTAXLYKXNTYIYJAYKVCVDVEVKALYEMXQDXIXRFXTXR
      SZAXGXIXTVFOZNZXPGXIXTXISZYIVGUTZIAXQDVHZYAXQOZVINZMDVJDVIXQUDZAPVLVHDVLB
      UDZYRVMABDVHZUUBAXKUUCKDRBVNUTZDBVOVPVLDPBVQVRAYTMDAYADNZVBZYSYCPOZVIAXKU
      UEYSUUGVSKDRYAPBVTWAZUUFYCRNZUUGYCUPOZVFONUUGVINADRYABKWBZYCUUGUUJUUGSZUU
      JSWCUUJUUGWDWEWFWGMDVIXQWHWIZUUFLXTYEUQXIUUGQUCZXIYSQUCUUFLYBYDXIUUGUUGXT
      AYOUUEYQTZUUFLXTYBUQZXRYSQUCZUUNUUFUUPLXRWLZYBUQZUUQUUFXRYNNXTUURVSUUPUUS
      VSUUFXRXIYNUUFXIXRAXIXRVSUUEABCDXIEFGHJIUUDYPWJZTWMZUUOWFXTXRWKLXTUURYBWN
      WEUUFYLUUAUUEUUSUUQNAYLUUEITAUUAUUEUUMTAUUEVCLDXQYAXRFUURUURSYMWOWPWFUUFX
      RXIYSUUGQUVAUUHWQXBUUFUUIYDUUGUUGQUCNUUKYCYDUUGUULYDSWRUTWSUUFYSUUGXIQUUH
      WTXAXCWFAXIXRXIQUUTWTXAGXHXIYPYJXDXE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Infinite group sum on topological groups
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c tsums $.

  $( Extend class notation to include infinite group sums in a topological
     group. $)
  ctsu $a class tsums $.

  ${
    $d f s w y z $.
    $( Define the set of limit points of an infinite group sum for the
       topological group ` G ` .  If ` G ` is Hausdorff, then there will be at
       most one element in this set and ` U. ( W tsums F ) ` selects this
       unique element if it exists. ` ( W tsums F ) ~~ 1o ` is a way to say
       that the sum exists and is unique.  Note that unlike ` sum_ `
       ( ~ df-sum ) and ` gsum ` ( ~ df-gsum ), this does not return the sum
       itself, but rather the set of all such sums, which is usually either
       empty or a singleton.  (Contributed by Mario Carneiro, 2-Sep-2015.) $)
    df-tsms $a |- tsums = ( w e. _V , f e. _V |->
      [_ ( ~P dom f i^i Fin ) / s ]_ ( ( ( TopOpen ` w ) fLimf ( s filGen
          ran ( z e. s |-> { y e. s | z C_ y } ) ) ) `
        ( y e. s |-> ( w gsum ( f |` y ) ) ) ) ) $.
  $}

  ${
    $d a u v z A $.  $d a b u v F $.  $d a b u v y z S $.
    tsmsfbas.s $e |- S = ( ~P A i^i Fin ) $.
    tsmsfbas.f $e |- F = ( z e. S |-> { y e. S | z C_ y } ) $.
    tsmsfbas.l $e |- L = ran F $.
    tsmsfbas.a $e |- ( ph -> A e. W ) $.
    $( The collection of all sets of the form
       ` F ( z ) = { y e. S | z C_ y } ` , which can be read as the set of all
       finite subsets of ` A ` which contain ` z ` as a subset, for each finite
       subset ` z ` of ` A ` , form a filter base.  (Contributed by Mario
       Carneiro, 2-Sep-2015.) $)
    tsmsfbas $p |- ( ph -> L e. ( fBas ` S ) ) $=
      ( va vv wcel cvv wss c0 wral syl vb vu cfbas cfv elex crn cpw wne wnel cv
      cin wf crab wa ssrab2 wb pwexg inex1g syl5eqel adantr elpw2g mpbiri fmptd
      w3a cfn frn wceq wrex 0ss 0fin elfpw mpbir2an eleqtrri rgenw rabid2 sseq1
      ralbidv syl5bb rspcev mp2an elrnmpt ne0i wn simpr ssid sseq2 rabn0 sylibr
      sylancl necomd neneqd nrexdv 0ex ax-mp sylnibr df-nel cun simplbi anim12i
      eleq2s unss sylib simprbi syl2an sylanbrc adantl syl6eleqr rabbidv eqeq2d
      unfi eqidd syl2anc rabexg cmpt weq cbvmptv eqtri mpbird inelcm ralrimivva
      pwidg ralrimivw ineq1 inrab a1i syl6eq pweqd ineq2d neeq1d ralrnmpt ineq2
      rabbiia 3jca isfbas mpbir2and 3syl ) ADHODPOZGEUCUDZOLDHUEYQGFUFZYRKYQYSY
      ROZYSEUGZQZYSRUHZRYSUIZYSMUJZUAUJZUKZUGZUKZRUHZUAYSSZMYSSZVDZYQEUUAFULUUB
      YQCECUJZBUJZQZBEUMZUUAFYQUUNEOZUNZUUQUUAOZUUQEQZUUPBEUOUUSEPOZUUTUVAUPYQU
      VBUURYQEDUGZVEUKZPIYQUVCPOUVDPODPUQUVCVEPURTUSZUTUUQEPVATVBJVCEUUAFVFTYQU
      UCUUDUULYQEYSOZUUCYQUVFEUUQVGZCEVHZREORUUOQZBESZUVHRUVDERUVDORDQRVEODVIVJ
      RDVKVLIVMUVIBEUUOVIVNUVGUVJCREUVGUUPBESUUNRVGZUVJUUPBEVOUVKUUPUVIBEUUNRUU
      OVPVQVRVSVTYQUVBUVFUVHUPUVECEUUQEFPJWATVBYSEWBTYQRYSOZWCUUDYQRUUQVGZCEVHZ
      UVLYQUVMCEUUSRUUQUUSUUQRUUSUUPBEVHZUUQRUHUUSUURUUNUUNQZUVOYQUURWDUUNWEUUP
      UVPBUUNEUUOUUNUUNWFVSWIUUPBEWGWHWJWKWLRPOUVLUVNUPWMCEUUQRFPJWAWNWORYSWPWH
      YQUULYSUUENUJZUUOQZBEUMZUKZUGZUKZRUHZNESZMYSSZYQUWEYSUBUJZUVQWQZUUOQZBEUM
      ZUGZUKZRUHZNESZUBESZYQUWLUBNEEYQUWFEOZUVQEOZUNZUNZUWIYSOZUWIUWJOZUWLUWRUW
      SUWIUUEUUOQZBEUMZVGZMEVHZUWRUWGEOUWIUWIVGZUXDUWRUWGUVDEUWQUWGUVDOZYQUWQUW
      GDQZUWGVEOZUXFUWQUWFDQZUVQDQZUNUXGUWOUXIUWPUXJUXIUWFUVDEUWFUVDOZUXIUWFVEO
      ZUWFDVKZWRIWTUXJUVQUVDEUVQUVDOZUXJUVQVEOZUVQDVKZWRIWTWSUWFUVQDXAXBUWOUXLU
      XOUXHUWPUXLUWFUVDEUXKUXIUXLUXMXCIWTUXOUVQUVDEUXNUXJUXOUXPXCIWTUWFUVQXJXDU
      WGDVKXEXFIXGUWRUWIXKUXCUXEMUWGEUUEUWGVGZUXBUWIUWIUXQUXAUWHBEUUEUWGUUOVPXH
      XIVSXLUWRUWIPOZUWSUXDUPUWRUVBUXRYQUVBUWQUVEUTUWHBEPXMTZMEUXBUWIFPFCEUUQXN
      ZMEUXBXNJCMEUUQUXBCMXOUUPUXABEUUNUUEUUOVPXHXPXQWATXRUWRUXRUWTUXSUWIPYATUW
      IYSUWJXSXLXTYQUWFUUOQZBEUMZPOZUBESUWEUWNUPYQUYCUBEYQUVBUYCUVEUYABEPXMTYBU
      WDUWMUBMEUYBFPFUXTUBEUYBXNJCUBEUUQUYBCUBXOUUPUYABEUUNUWFUUOVPXHXPXQUUEUYB
      VGZUWCUWLNEUYDUWBUWKRUYDUWAUWJYSUYDUVTUWIUYDUVTUYBUVSUKZUWIUUEUYBUVSYCUYE
      UYAUVRUNZBEUMUWIUYAUVRBEYDUYFUWHBEUYFUWHUPUUOEOUWFUVQUUOXAYEYLXQYFYGYHYIV
      QYJTXRYQUUKUWDMYSYQUVSPOZNESUUKUWDUPYQUYGNEYQUVBUYGUVEUVRBEPXMTYBUUJUWCNU
      AEUVSFPFUXTNEUVSXNJCNEUUQUVSCNXOUUPUVRBEUUNUVQUUOVPXHXPXQUUFUVSVGZUUIUWBR
      UYHUUHUWAYSUYHUUGUVTUUFUVSUUEYKYGYHYIYJTVQXRYMYQUVBYTUUBUUMUNUPUVEMUAPEYS
      YNTYOUSYP $.
  $}

  ${
    tsmslem1.b $e |- B = ( Base ` G ) $.
    tsmslem1.s $e |- S = ( ~P A i^i Fin ) $.
    tsmslem1.1 $e |- ( ph -> G e. CMnd ) $.
    tsmslem1.a $e |- ( ph -> A e. W ) $.
    tsmslem1.f $e |- ( ph -> F : A --> B ) $.
    $( The finite partial sums of a function ` F ` are defined in a commutative
       monoid.  (Contributed by Mario Carneiro, 2-Sep-2015.) $)
    tsmslem1 $p |- ( ( ph /\ X e. S ) -> ( G gsum ( F |` X ) ) e. B ) $=
      ( wcel wa cres c0g adantr cfn syl cfv eqid ccmn simpr wf cpw cin syl6eleq
      wss elfpw simplbi fssresd cvv simprbi fvexd fdmfifsupp gsumcl ) AHDNZOZHC
      EHPZFDFQUAZIVAUBAFUCNURKRAURUDZUSBCHEABCEUEURMRUSHBUFSUGZNZHBUIZUSHDVCVBJ
      UHZVDVEHSNZHBUJZUKTULZUSHCUTUMVAVIUSVDVGVFVDVEVGVHUNTUSFQUOUPUQ $.
  $}

  ${
    $d f s w y z F $.  $d f s w y z G $.  $d f s w y z ph $.  $d f s w y S $.
    $d f s w J $.  $d f s w L $.
    tsmsval.b $e |- B = ( Base ` G ) $.
    tsmsval.j $e |- J = ( TopOpen ` G ) $.
    tsmsval.s $e |- S = ( ~P A i^i Fin ) $.
    tsmsval.l $e |- L = ran ( z e. S |-> { y e. S | z C_ y } ) $.
    tsmsval.g $e |- ( ph -> G e. V ) $.
    ${
      tsmsval2.f $e |- ( ph -> F e. W ) $.
      tsmsval2.a $e |- ( ph -> dom F = A ) $.
      $( Definition of the topological group sum(s) of a collection ` F ( x ) `
         of values in the group with index set ` A ` .  (Contributed by Mario
         Carneiro, 2-Sep-2015.) $)
      tsmsval2 $p |- ( ph -> ( G tsums F ) = ( ( J fLimf ( S filGen L ) ) `
          ( y e. S |-> ( G gsum ( F |` y ) ) ) ) ) $=
        ( cvv vw vf vs cv cdm cpw cfn cin cres cgsu cmpt ctopn cfv wss crab crn
        co cfg cflf csb ctsu cmpt2 wceq df-tsms a1i wa wcel vex dmex pwex inex1
        simplrl fveq2d syl6eqr simprr dmeqd adantr eqtrd pweqd ineq1d sylan9eqr
        id rabeq syl mpteq12dv rneqd oveq12d simplrr reseq1d fveq12d elex fvexd
        csbied ovmpt2d ) AUAUBHGTTUCUBUDZUEZUFZUGUHZBUCUDZUAUDZWOBUDZUIZUJUQZUK
        ZWTULUMZWSCWSCUDXAUNZBWSUOZUKZUPZURUQZUSUQZUMZUTZBFHGXAUIZUJUQZUKZIFJUR
        UQZUSUQZUMZVATVAUAUBTTXMVBVCABCUAUBUCVDVEAWTHVCZWOGVCZVFZVFZUCWRXLXSTWR
        TVGYCWQUGWPWOUBVHVIVJVKVEYCWSWRVCZVFZXDXPXKXRYEXEIXJXQUSYEXEHULUMIYEWTH
        ULAXTYAYDVLZVMNVNYEWSFXIJURYDYCWSWRFYDWBYCWRDUFZUGUHFYCWQYGUGYCWPDYCWPG
        UEZDYCWOGAXTYAVOVPAYHDVCYBSVQVRVSVTOVNWAZYEXICFXFBFUOZUKZUPJYEXHYKYECWS
        XGFYJYIYEWSFVCXGYJVCYIXFBWSFWCWDWEWFPVNWGWGYEBWSXCFXOYIYEWTHXBXNUJYFYEW
        OGXAAXTYAYDWHWIWGWEWJWMAHKVGHTVGQHKWKWDAGLVGGTVGRGLWKWDAXPXRWLWN $.
    $}

    tsmsval.a $e |- ( ph -> A e. W ) $.
    tsmsval.f $e |- ( ph -> F : A --> B ) $.
    $( Definition of the topological group sum(s) of a collection ` F ( x ) `
       of values in the group with index set ` A ` .  (Contributed by Mario
       Carneiro, 2-Sep-2015.) $)
    tsmsval $p |- ( ph -> ( G tsums F ) = ( ( J fLimf ( S filGen L ) ) `
        ( y e. S |-> ( G gsum ( F |` y ) ) ) ) ) $=
      ( cvv wf wcel cbs cfv fvex eqeltri a1i fex2 syl3anc cdm wceq fdm tsmsval2
      syl ) ABCDEFGHIJKTMNOPQADEGUAZDLUBETUBZGTUBSRUPAEHUCUDTMHUCUEUFUGDEGLTUHU
      IAUOGUJDUKSDEGULUNUM $.
  $}

  ${
    $d y z F $.  $d y z G $.  $d y z H $.  $d y z ph $.
    tsmspropd.f $e |- ( ph -> F e. V ) $.
    tsmspropd.g $e |- ( ph -> G e. W ) $.
    tsmspropd.h $e |- ( ph -> H e. X ) $.
    tsmspropd.b $e |- ( ph -> ( Base ` G ) = ( Base ` H ) ) $.
    tsmspropd.p $e |- ( ph -> ( +g ` G ) = ( +g ` H ) ) $.
    tsmspropd.j $e |- ( ph -> ( TopOpen ` G ) = ( TopOpen ` H ) ) $.
    $( The group sum depends only on the base set, additive operation, and
       topology components.  Note that for entirely unrestricted functions,
       there can be dependency on out-of-domain values of the operation, so
       this is somewhat weaker than ~ mndpropd etc.  (Contributed by Mario
       Carneiro, 18-Sep-2015.) $)
    tsmspropd $p |- ( ph -> ( G tsums F ) = ( H tsums F ) ) $=
      ( vy vz co cmpt cfv cflf eqid cdm cpw cfn cin cv cres cgsu ctopn wss crab
      crn cfg ctsu oveq1d cvv wcel resexg syl gsumpropd mpteq2dv eqidd tsmsval2
      fveq12d cbs 3eqtr4d ) ANBUAZUBUCUDZCBNUEZUFZUGPZQZCUHRZVGOVGOUEVHUINVGUJQ
      UKZULPZSPZRNVGDVIUGPZQZDUHRZVNSPZRCBUMPDBUMPAVKVQVOVSAVLVRVNSMUNANVGVJVPA
      VICDUOFGABEUPVIUOUPHBVHEUQURIJKLUSUTVCANOVFCVDRZVGBCVLVMFEVTTVLTVGTZVMTZI
      HAVFVAZVBANOVFDVDRZVGBDVRVMGEWDTVRTWAWBJHWCVBVE $.
  $}

  ${
    $d u w y B $.  $d u w C $.  $d u w y z F $.  $d u w y z G $.  $d u w z J $.
    $d z A $.  $d u y z ph $.  $d u w y z S $.  $d u y z U $.
    eltsms.b $e |- B = ( Base ` G ) $.
    eltsms.j $e |- J = ( TopOpen ` G ) $.
    eltsms.s $e |- S = ( ~P A i^i Fin ) $.
    eltsms.1 $e |- ( ph -> G e. CMnd ) $.
    eltsms.2 $e |- ( ph -> G e. TopSp ) $.
    eltsms.a $e |- ( ph -> A e. V ) $.
    eltsms.f $e |- ( ph -> F : A --> B ) $.
    $( The property of being a sum of the sequence ` F ` in the topological
       commutative monoid ` G ` .  (Contributed by Mario Carneiro,
       2-Sep-2015.) $)
    eltsms $p |- ( ph -> ( C e. ( G tsums F ) <-> ( C e. B /\ A. u e. J
       ( C e. u -> E. z e. S A. y e. S
         ( z C_ y -> ( G gsum ( F |` y ) ) e. u ) ) ) ) ) $=
      ( wcel vw ctsu co cres cgsu cmpt wss crab crn cfg cflf cfv cima wrex wral
      cv wi wa ccmn eqid tsmsval eleq2d ctopon cfbas wf wb istps sylib tsmsfbas
      ctps tsmslem1 fmptd flffbas syl3anc cvv cpw cfn cin pwexg inex1g syl5eqel
      3syl adantr rabexg ralrimivw wceq imaeq2 sseq1d rexrnmpt ccnv wfun funmpt
      syl cdm ssrab2 ovex dmmpti funimass3 mp2an mptpreima sseq2i ss2rab 3bitri
      sseqtr4i rexbii syl6bb imbi2d ralbidva anbi2d 3bitrd ) AGJIUBUCZTGBHJIBUP
      ZUDZUEUCZUFZKHCHCUPXLUGZBHUHZUFZUIZUJUCZUKUCULZTZGFTZGDUPZTZXOUAUPZUMZYDU
      GZUAXSUNZUQZDKUOZURZYCYEXPXNYDTZUQBHUOZCHUNZUQZDKUOZURAXKYAGABCEFHIJKXSUS
      LMNOXSUTZPRSVAVBAKFVCULTZXSHVDULTHFXOVEYBYLVFAJVJTYSQFKJMNVGVHABCEHXRXSLO
      XRUTZYRRVIABHXNFXOAEFHIJLXLMOPRSVKXOUTZVLGXSDXOKXTFHUAXTUTVMVNAYKYQYCAYJY
      PDKAYDKTZURZYIYOYEUUCYIXOXQUMZYDUGZCHUNZYOUUCXQVOTZCHUOYIUUFVFUUCUUGCHUUC
      HVOTZUUGAUUHUUBAHEVPZVQVRZVOOAELTUUIVOTUUJVOTRELVSUUIVQVOVTWBWAWCXPBHVOWD
      WMWEYHUUECUAHXQXRVOYTYFXQWFYGUUDYDYFXQXOWGWHWIWMUUEYNCHUUEXQXOWJYDUMZUGZX
      QYMBHUHZUGYNXOWKXQXOWNZUGUUEUULVFBHXNWLXQHUUNXPBHWOBHXNXOJXMUEWPUUAWQXDXQ
      YDXOWRWSUUKUUMXQBHXNYDXOUUAWTXAXPYMBHXBXCXEXFXGXHXIXJ $.

    tsmsi.3 $e |- ( ph -> C e. ( G tsums F ) ) $.
    tsmsi.4 $e |- ( ph -> U e. J ) $.
    tsmsi.5 $e |- ( ph -> C e. U ) $.
    $( The property of being a sum of the sequence ` F ` in the topological
       commutative monoid ` G ` .  (Contributed by Mario Carneiro,
       2-Sep-2015.) $)
    tsmsi $p |- ( ph -> E. z e. S A. y e. S
         ( z C_ y -> ( G gsum ( F |` y ) ) e. U ) ) $=
      ( vu wcel cv wss cres cgsu co wi wral wrex ctsu eltsms mpbid simprd eleq2
      wa wceq imbi2d rexralbidv imbi12d rspcv syl3c ) AHKUDFUCUEZUDZCUEBUEZUFZJ
      IVGUGUHUIZVEUDZUJZBGUKCGULZUJZUCKUKZFHUDZVHVIHUDZUJZBGUKCGULZUAAFEUDZVNAF
      JIUMUIUDVSVNURTABCUCDEFGIJKLMNOPQRSUNUOUPUBVMVOVRUJUCHKVEHUSZVFVOVLVRVEHF
      UQVTVKVQCBGGVTVJVPVHVEHVIUQUTVAVBVCVD $.
  $}

  ${
    $d w x y z A $.  $d w x y B $.  $d w x y z F $.  $d w x y z G $.  $d x X $.
    $d x z J $.  $d w x y z ph $.
    tsmscl.b $e |- B = ( Base ` G ) $.
    tsmscl.1 $e |- ( ph -> G e. CMnd ) $.
    tsmscl.2 $e |- ( ph -> G e. TopSp ) $.
    tsmscl.a $e |- ( ph -> A e. V ) $.
    tsmscl.f $e |- ( ph -> F : A --> B ) $.
    $( A sum in a topological group is an element of the group.  (Contributed
       by Mario Carneiro, 2-Sep-2015.) $)
    tsmscl $p |- ( ph -> ( G tsums F ) C_ B ) $=
      ( vx vw vz vy co cv wcel wi wral ctsu wss cres cgsu cpw cfn cin ctopn cfv
      wrex wa eqid eltsms simpl syl6bi ssrdv ) ALEDUAPZCALQZUQRURCRZURMQZRNQOQZ
      UBEDVAUCUDPUTRSOBUEUFUGZTNVBUJSMEUHUIZTZUKUSAONMBCURVBDEVCFGVCULVBULHIJKU
      MUSVDUNUOUP $.

    haustsms.j $e |- J = ( TopOpen ` G ) $.
    haustsms.h $e |- ( ph -> J e. Haus ) $.
    $( In a Hausdorff topological group, a sum has at most one limit point.
       (Contributed by Mario Carneiro, 2-Sep-2015.) $)
    haustsms $p |- ( ph -> E* x x e. ( G tsums F ) ) $=
      ( vz vy co wcel eqid ctsu wmo cpw cfn cin cres cgsu cmpt wss crab crn cfg
      cv cflf cfv cha cfil cuni wf cfbas tsmsfbas fgcl syl tsmslem1 wceq tpsuni
      wa ctps adantr eleqtrd fmptd hausflf syl3anc tsmsval eleq2d mobidv mpbird
      ccmn ) ABUMZFEUARZSZBUBVSPCUCUDUEZFEPUMZUFUGRZUHZGWBQWBQUMWCUIPWBUJUHZUKZ
      ULRZUNRUOZSZBUBZAGUPSWHWBUQUOSZWBGURZWEUSWKOAWGWBUTUOSWLAPQCWBWFWGHWBTZWF
      TWGTZLVAWGWBVBVCAPWBWDWMWEAWCWBSZVGWDDWMACDWBEFHWCIWNJLMVDADWMVEZWPAFVHSW
      QKDGFINVFVCVIVJWETVKBWEGWHWMWBWMTVLVMAWAWJBAVTWIVSAPQCDWBEFGWGVRHINWNWOJL
      MVNVOVPVQ $.

    $( In a Hausdorff topological group, a sum has at most one limit point.
       (Contributed by Mario Carneiro, 13-Sep-2015.) $)
    haustsms2 $p |- ( ph ->
        ( X e. ( G tsums F ) -> ( G tsums F ) = { X } ) ) $=
      ( vx ctsu wcel wceq wa co csn cv wmo wi simpr haustsms eleq1 moi2 ancom2s
      adantr expr syl21anc velsn syl6ibr ssrdv wss snssi adantl eqssd ex ) AHED
      QUAZRZVBHUBZSAVCTZVBVDVEPVBVDVEPUCZVBRZVFHSZVFVDRVEVCVGPUDZVCVGVHUEAVCUFZ
      AVIVCAPBCDEFGIJKLMNOUGUKVJVCVITZVCVGVHVKVGVCVHVGVCPHVBVFHVBUHUIUJULUMPHUN
      UOUPVCVDVBUQAHVBURUSUTVA $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y F $.  $d x y G $.  $d x y ph $.
    tsmscls.b $e |- B = ( Base ` G ) $.
    tsmscls.j $e |- J = ( TopOpen ` G ) $.
    tsmscls.1 $e |- ( ph -> G e. CMnd ) $.
    tsmscls.2 $e |- ( ph -> G e. TopSp ) $.
    tsmscls.a $e |- ( ph -> A e. V ) $.
    tsmscls.f $e |- ( ph -> F : A --> B ) $.
    tsmscls.x $e |- ( ph -> X e. ( G tsums F ) ) $.
    $( One half of ~ tgptsmscls , true in any commutative monoid topological
       space.  (Contributed by Mario Carneiro, 21-Sep-2015.) $)
    tsmscls $p |- ( ph -> ( ( cls ` J ) ` { X } ) C_ ( G tsums F ) ) $=
      ( vx vy cfv co wcel csn ccl cpw cfn cin cv wss crab cmpt crn cfg cres cfm
      cgsu cflim ctsu cflf ctps eqid tsmsval ctopon cfil wceq istps sylib cfbas
      wf tsmsfbas fgcl syl tsmslem1 fmptd flfval syl3anc eqtrd eleqtrd sseqtr4d
      flimsncls ) AHUAFUBRRZFBUCUDUEZPVTPUFQUFZUGQVTUHUIZUJZUKSZCQVTEDWAULUNSZU
      IZUMSRZUOSZEDUPSZAHWHTVSWHUGAHWIWHOAWIWFFWDUQSRZWHAQPBCVTDEFWCURGIJVTUSZW
      CUSZLMNUTAFCVARTZWDVTVBRTZVTCWFVGWJWHVCAEURTWMLCFEIJVDVEAWCVTVFRTWNAQPBVT
      WBWCGWKWBUSWLMVHWCVTVIVJAQVTWECWFABCVTDEGWAIWKKMNVKWFUSVLWFFWDCVTVMVNVOZV
      PHWGFVRVJWOVQ $.
  $}

  ${
    $d y z .0. $.  $d u y z A $.  $d u z B $.  $d u x y z F $.  $d u x y z G $.
    $d u x y z J $.  $d u x y z ph $.
    tsmsid.b $e |- B = ( Base ` G ) $.
    tsmsid.z $e |- .0. = ( 0g ` G ) $.
    tsmsid.1 $e |- ( ph -> G e. CMnd ) $.
    tsmsid.2 $e |- ( ph -> G e. TopSp ) $.
    tsmsid.a $e |- ( ph -> A e. V ) $.
    tsmsid.f $e |- ( ph -> F : A --> B ) $.
    tsmsid.w $e |- ( ph -> F finSupp .0. ) $.
    ${
      tsmsgsum.j $e |- J = ( TopOpen ` G ) $.
      $( The convergent points of a finite topological group sum are the
         closure of the finite group sum operation.  (Contributed by Mario
         Carneiro, 19-Sep-2015.)  (Revised by AV, 24-Jul-2019.) $)
      tsmsgsum $p |- ( ph ->
          ( G tsums F ) = ( ( cls ` J ) ` { ( G gsum F ) } ) ) $=
        ( vz wcel wa ad2antrr vx vu vy ctsu co cgsu csn ccl cfv cv wss cres cpw
        wi cfn cin wral wrex cuni wne ctopon wceq ctps istps sylib toponuni syl
        c0 eleq2d csupp cun elfpw simplbi adantl cdm suppssdm wf syl5sseq unssd
        fdm simprbi cfsupp wbr fsuppimpd syl2anc sylanbrc wb ssun1 id syl5sseqr
        unfi pm5.5 reseq2 oveq2d eleq1d bitrd rspcv ssun2 a1i gsumres rexlimdva
        ccmn sylibd adantr simprr simplrr eqeltrd expr ralrimiva imbi1d ralbidv
        sseq1 rspcev impbid disjsn necon2abii syl6bb imbi2d anbi12d eqid eltsms
        ralbidva ctop topontop gsumcl snssd sseqtrd elcls2 3bitr4d eqrdv ) AUAE
        DUDUEZEDUFUEZUGZFUHUIUIZAUAUJZCRZYOUBUJZRZUCUJZQUJZUKZEDYTULZUFUEZYQRZU
        NZQBUMUOUPZUQZUCUUFURZUNZUBFUQZSYOFUSZRZYRYQYMUPZVHUTZUNZUBFUQZSZYOYKRY
        OYNRZAYPUULUUJUUPACUUKYOAFCVAUIRZCUUKVBAEVCRUUSLCFEIPVDVEZCFVFVGZVIAUUI
        UUOUBFAYQFRZSZUUHUUNYRUVCUUHYLYQRZUUNUVCUUHUVDUVCUUGUVDUCUUFUVCYSUUFRZS
        ZUUGEDYSDHVJUEZVKZULZUFUEZYQRZUVDUVFUVHUUFRZUUGUVKUNUVFUVHBUKUVHUORZUVL
        UVFYSUVGBUVEYSBUKZUVCUVEUVNYSUORZYSBVLZVMVNAUVGBUKZUVBUVEADVOZUVGBDHVPA
        BCDVQZUVRBVBNBCDVTVGVRZTVSUVFUVOUVGUORZUVMUVEUVOUVCUVEUVNUVOUVPWAVNUVFD
        HADHWBWCZUVBUVEOTZWDYSUVGWKWEUVHBVLWFUUEUVKQUVHUUFYTUVHVBZUUEUUDUVKUWDU
        UAUUEUUDWGUWDUVHYSYTYSUVGWHUWDWIWJUUAUUDWLVGUWDUUCUVJYQUWDUUBUVIEUFYTUV
        HDWMWNWOWPWQVGUVFUVJYLYQUVFBCDEGUVHHIJAEXBRZUVBUVEKTABGRZUVBUVEMTAUVSUV
        BUVENTUVGUVHUKUVFUVGYSWRWSUWCWTWOXCXAAUVBUVDUUHAUVBUVDSZSZUVGUUFRZUVGYT
        UKZUUDUNZQUUFUQZUUHAUWIUWGAUVQUWAUWIUVTADHOWDUVGBVLWFXDUWHUWKQUUFUWHYTU
        UFRZUWJUUDUWHUWMUWJSZSZUUCYLYQUWOBCDEGYTHIJAUWEUWGUWNKTAUWFUWGUWNMTAUVS
        UWGUWNNTUWHUWMUWJXEAUWBUWGUWNOTWTAUVBUVDUWNXFXGXHXIUUGUWLUCUVGUUFYSUVGV
        BZUUEUWKQUUFUWPUUAUWJUUDYSUVGYTXLXJXKXMWEXHXNUVDUUMVHYQYLXOXPXQXRYBXSAQ
        UCUBBCYOUUFDEFGIPUUFXTKLMNYAAFYCRZYMUUKUKUURUUQWGAUUSUWQUUTCFYDVGAYMCUU
        KAYLCABCDEGHIJKMNOYEYFUVAYGUBYOYMFUUKUUKXTYHWEYIYJ $.
    $}

    $( If a sum is finite, the usual sum is always a limit point of the
       topological sum (although it may not be the only limit point).
       (Contributed by Mario Carneiro, 2-Sep-2015.)  (Revised by AV,
       24-Jul-2019.) $)
    tsmsid $p |- ( ph -> ( G gsum F ) e. ( G tsums F ) ) $=
      ( cgsu co cfv wss wcel eqid csn ctopn ccl ctsu ctop cuni ctps istps sylib
      ctopon topontop syl gsumcl snssd wceq toponuni sseqtrd sscls syl2anc ovex
      snss sylibr tsmsgsum eleqtrrd ) AEDOPZVEUAZEUBQZUCQQZEDUDPAVFVHRZVEVHSAVG
      UESZVFVGUFZRVIAVGCUJQSZVJAEUGSVLKCVGEHVGTZUHUIZCVGUKULAVFCVKAVECABCDEFGHI
      JLMNUMUNAVLCVKUOVNCVGUPULUQVFVGVKVKTURUSVEVHEDOUTVAVBABCDEVGFGHIJKLMNVMVC
      VD $.

    haustsmsid.j $e |- J = ( TopOpen ` G ) $.
    haustsmsid.h $e |- ( ph -> J e. Haus ) $.
    $( In a Hausdorff topological group, a finite sum sums to exactly the usual
       number with no extraneous limit points.  By setting the topology to the
       discrete topology (which is Hausdorff), this theorem can be used to turn
       any ` tsums ` theorem into a ` gsum ` theorem, so that the infinite
       group sum operation can be viewed as a generalization of the finite
       group sum.  (Contributed by Mario Carneiro, 2-Sep-2015.)  (Revised by
       AV, 24-Jul-2019.) $)
    haustsmsid $p |- ( ph -> ( G tsums F ) = { ( G gsum F ) } ) $=
      ( cgsu co ctsu wcel csn wceq tsmsid haustsms2 mpd ) AEDRSZEDTSZUAUHUGUBUC
      ABCDEGHIJKLMNOUDABCDEFGUGIKLMNPQUEUF $.
  $}

  ${
    $d x A $.  $d x G $.  $d x ph $.  $d x V $.  $d x .0. $.
    tsms0.z $e |- .0. = ( 0g ` G ) $.
    tsms0.1 $e |- ( ph -> G e. CMnd ) $.
    tsms0.2 $e |- ( ph -> G e. TopSp ) $.
    tsms0.a $e |- ( ph -> A e. V ) $.
    $( The sum of zero is zero.  (Contributed by Mario Carneiro, 18-Sep-2015.)
       (Proof shortened by AV, 24-Jul-2019.) $)
    tsms0 $p |- ( ph -> .0. e. ( G tsums ( x e. A |-> .0. ) ) ) $=
      ( cmpt cgsu co ctsu wcel syl cfv eqid cvv c0g cmnd wceq ccmn cmnmnd gsumz
      syl2anc cbs cv mndidcl adantr fmptd csn cxp cfsupp fconstmpt fvex eqeltri
      a1i fczfsuppd syl5eqbrr tsmsid eqeltrrd ) ADBCFKZLMZFDVCNMADUAOZCEOVDFUBA
      DUCOVEHDUDPZJCBDEFGUEUFACDUGQZVCDEFVGRZGHIJABCFVGVCAFVGOZBUHCOAVEVIVFVGDF
      VHGUIPUJVCRUKAVCCFULUMFUNBCFUOACESFJFSOAFDTQSGDTUPUQURUSUTVAVB $.
  $}

  ${
    $d u v x y z F $.  $d u v x y z G $.  $d u v x y z H $.  $d u v x y z ph $.
    $d u v y z A $.  $d u v x y z S $.
    tsmssubm.a $e |- ( ph -> A e. V ) $.
    tsmssubm.1 $e |- ( ph -> G e. CMnd ) $.
    tsmssubm.2 $e |- ( ph -> G e. TopSp ) $.
    tsmssubm.s $e |- ( ph -> S e. ( SubMnd ` G ) ) $.
    tsmssubm.f $e |- ( ph -> F : A --> S ) $.
    tsmssubm.h $e |- H = ( G |`s S ) $.
    $( Evaluate an infinite group sum in a submonoid.  (Contributed by Mario
       Carneiro, 18-Sep-2015.) $)
    tsmssubm $p |- ( ph -> ( H tsums F ) = ( ( G tsums F ) i^i S ) ) $=
      ( vz vy vu co wcel cfv wa vx vv ctsu cin cv wss cres cgsu wi cpw cfn wral
      wrex ctopn cbs csubmnd wceq submbas syl eleq2d anbi1d elin ancom bitri wb
      eqid submss sselda fssd eltsms baibd syldan cvv vex inex1 resstopn eleq2i
      a1i crest fvex elrest sylancr adantr syl5bbr eleq2 rbaib adantl sylan9bbr
      c0g ccmn submmnd subcmn syl2anc ad2antrr elfpw simprbi wf simplbi fssresd
      cmnd feq3d mpbid fdmfifsupp gsumcl eleqtrrd gsumsubm eleq1d bitr4d imbi2d
      an32s ralbidva rexbidv imbi12d ralxfr2d pm5.32da syl5bb syl5eqel 3bitr4rd
      cress ctps resstps eqrdv ) AUAFDUCQZEDUCQZCUDZAUAUEZCRZYFUBUEZRZNUEOUEZUF
      ZFDYJUGZUHQZYHRZUIZOBUJUKUDZULZNYPUMZUIZUBFUNSZULZTZYFFUOSZRZUUATYFYERZYF
      YCRAYGUUDUUAACUUCYFACEUPSZRZCUUCUQZKCFEMURUSZUTVAUUEYGYFYDRZTZAUUBUUEUUJY
      GTUUKYFYDCVBUUJYGVCVDAYGUUJUUAAYGTZUUJYFPUEZRZYKEYLUHQZUUMRZUIZOYPULZNYPU
      MZUIZPEUNSZULZUUAAYGYFEUOSZRZUUJUVBVEACUVCYFAUUGCUVCUFKUVCCEUVCVFZVGUSZVH
      AUUJUVDUVBAONPBUVCYFYPDEUVAGUVEUVAVFZYPVFZIJHABCUVCDLUVFVIVJVKVLUULYSUUTU
      BPUUMCUDZYTUVAVMUVIVMRUULUUMUVARTUUMCPVNVOVRYHYTRYHUVACVSQZRZUULYHUVIUQZP
      UVAUMZUVJYTYHCFUVAEMUVGVPVQAUVKUVMVEZYGAUVAVMRUUGUVNEUNVTKPYHCUVAVMUUFWAW
      BWCWDUULUVLTZYIUUNYRUUSUVLYIYFUVIRZUULUUNYHUVIYFWEYGUVPUUNVEAUVPUUNYGYFUU
      MCVBWFWGWHUVOYQUURNYPUVOYOUUQOYPUVOYJYPRZTYNUUPYKUULUVQUVLYNUUPVEUVLYNYMU
      VIRZUULUVQTZUUPYHUVIYMWEUVSUVRYMUUMRZUUPUVSYMCRZUVRUVTVEUVSYMUUCCUVSYJUUC
      YLFUKFWISZUUCVFZUWBVFAFWJRZYGUVQAEWJRFWTRZUWDIAUUGUWEKCFEMWKUSCEFMWLWMZWN
      UVQYJUKRZUULUVQYJBUFZUWGYJBWOZWPWGZUVSYJCYLWQYJUUCYLWQUVSBCYJDABCDWQZYGUV
      QLWNUVQUWHUULUVQUWHUWGUWIWRWGWSZUVSCUUCYLYJAUUHYGUVQUUIWNZXAXBUVSYJCYLVMU
      WBUWLUWJUWBVMRUVSFWIVTVRXCXDUWMXEUVRUVTUWAYMUUMCVBWFUSUVSUUOYMUUMUVSYJCYL
      EFUKUWJAUUGYGUVQKWNUWLMXFXGXHWHXJXIXKXLXMXNXHXOXPAONUBBUUCYFYPDFYTGUWCYTV
      FUVHUWFAFECXSQZXTMAEXTRUUGUWNXTRJKCEUUFYAWMXQHAUWKBUUCDWQLACUUCDBUUIXAXBV
      JXRYB $.
  $}

  ${
    $d a b u y z A $.  $d b u z B $.  $d a b u x y z F $.  $d a b u x y z ph $.
    $d a b u x y z G $.  $d a b u x y z W $.
    tsmsres.b $e |- B = ( Base ` G ) $.
    tsmsres.z $e |- .0. = ( 0g ` G ) $.
    tsmsres.1 $e |- ( ph -> G e. CMnd ) $.
    tsmsres.2 $e |- ( ph -> G e. TopSp ) $.
    tsmsres.a $e |- ( ph -> A e. V ) $.
    tsmsres.f $e |- ( ph -> F : A --> B ) $.
    tsmsres.s $e |- ( ph -> ( F supp .0. ) C_ W ) $.
    $( Extend an infinite group sum by padding outside with zeroes.
       (Contributed by Mario Carneiro, 18-Sep-2015.)  (Revised by AV,
       25-Jul-2019.) $)
    tsmsres $p |- ( ph -> ( G tsums ( F |` W ) ) = ( G tsums F ) ) $=
      ( cres co wcel wss cfn vx vu va vb vy vz ctsu cv cgsu cin wral wrex ctopn
      wi cpw cfv inss1 sspwb mpbi ssrin ax-mp simpr sseldi elfpw simplbi adantl
      wa syl simprbi ssfi sylancl sylanbrc wceq sseq2 ssin syl6bbr reseq2 inss2
      resabs1 syl6eq oveq2d eleq1d rspcv ad2antlr syl6ss biantrud resres oveq2i
      imbi12d ccmn ad2antrr wf fssresd csupp cvv fex syl2anc c0g fvex ressuppss
      eqeltri sstrd fdmfifsupp gsumres syl5reqr sylibrd ralrimdva sseq1 ralbidv
      a1i imbi1d rspcev syl6an rexlimdva cun unssd syl2an wb ssun1 id syl5sseqr
      pm5.5 bitrd adantrr jctir indir df-ss sylib uneq2d simprr ssequn1 reseq2d
      unfi eqtrd syl5eq resabs1d eqtr4d eqtr3d eqid eltsms biimpd impbid imbi2d
      expr com23 syld anbi2d inex1g fssres wfn ffn fnresdm 3syl reseq1d syl5eqr
      feq1d mpbid 3bitr4d eqrdv ) AUAEDGPZUGQZEDUGQZAUAUHZCRZUVCUBUHZRZUCUHZUDU
      HZSZEUUTUVHPZUIQZUVERZUNZUDBGUJZUOZTUJZUKZUCUVPULZUNZUBEUMUPZUKZVGUVDUVFU
      EUHZUFUHZSZEDUWCPZUIQZUVERZUNZUFBUOZTUJZUKZUEUWJULZUNZUBUVTUKZVGUVCUVARUV
      CUVBRAUWAUWNUVDAUVSUWMUBUVTAUVRUWLUVFAUVRUWLAUVQUWLUCUVPAUVGUVPRZVGZUVGUW
      JRUVQUVGUWCSZUWGUNZUFUWJUKZUWLUWPUVPUWJUVGUVOUWISZUVPUWJSUVNBSZUWTBGUQZUV
      NBURUSUVOUWITUTVAAUWOVBVCUWPUVQUWRUFUWJUWPUWCUWJRZVGZUVQUWQUVGGSZVGZEDUWC
      GUJZPZUIQZUVERZUNZUWRUXDUXGUVPRZUVQUXKUNUXDUXGUVNSZUXGTRZUXLUXDUWCBSZUXMU
      XCUXOUWPUXCUXOUWCTRZUWCBVDZVEVFZUWCBGUTVHUXDUXPUXGUWCSUXNUXCUXPUWPUXCUXOU
      XPUXQVIVFZUWCGUQUWCUXGVJVKUXGUVNVDVLUVMUXKUDUXGUVPUVHUXGVMZUVIUXFUVLUXJUX
      TUVIUVGUXGSUXFUVHUXGUVGVNUVGUWCGVOVPUXTUVKUXIUVEUXTUVJUXHEUIUXTUVJUUTUXGP
      ZUXHUVHUXGUUTVQUXGGSUYAUXHVMUWCGVRDUXGGVSVAVTWAWBWIWCVHUXDUWQUXFUWGUXJUXD
      UXEUWQUXDUVGUVNGUWOUVGUVNSZAUXCUWOUYBUVGTRUVGUVNVDVEWDBGVRZWEWFUXDUWFUXIU
      VEUXDUXIEUWEGPZUIQUWFUYDUXHEUIDUWCGWGWHUXDUWCCUWEETGHIJAEWJRZUWOUXCKWKUXS
      UXDBCUWCDABCDWLZUWOUXCNWKUXRWMZUXDUWEHWNQZDHWNQZGUXDDWORZHWORZUYHUYISAUYJ
      UWOUXCAUYFBFRZUYJNMBCFDWPWQZWKHEWRUPWOJEWRWSXAZUWCDWOWOHWTVKAUYIGSZUWOUXC
      OWKXBUXDUWCCUWEWOHUYGUXSUYKUXDUYNXJXCXDXEWBWIXFXGUWKUWSUEUVGUWJUWBUVGVMZU
      WHUWRUFUWJUYPUWDUWQUWGUWBUVGUWCXHXKXIXLXMXNAUWKUVRUEUWJAUWBUWJRZVGZUWBGUJ
      ZUVPRZUWKUYSUVHSZUVLUNZUDUVPUKZUVRUYRUYSUVNSZUYSTRZUYTUYRUWBBSZVUDUYQVUFA
      UYQVUFUWBTRZUWBBVDZVEZVFUWBBGUTVHUYRVUGUYSUWBSVUEUYQVUGAUYQVUFVUGVUHVIVFZ
      UWBGUQUWBUYSVJVKUYSUVNVDVLUYRUWKVUBUDUVPUYRUVHUVPRZVGZUWKEDUWBUVHXOZPZUIQ
      ZUVERZVUBVULVUMUWJRZUWKVUPUNVULVUMBSZVUMTRZVUQVULUWBUVHBUYQVUFAVUKVUIWDVU
      LUVHUVNBVUKUVHUVNSZUYRVUKVUTUVHTRZUVHUVNVDZVEVFZUXBWEXPZUYRVUGVVAVUSVUKVU
      JVUKVUTVVAVVBVIUWBUVHYMXQZVUMBVDVLUWHVUPUFVUMUWJUWCVUMVMZUWHUWGVUPVVFUWDU
      WHUWGXRVVFVUMUWBUWCUWBUVHXSVVFXTYAUWDUWGYBVHVVFUWFVUOUVEVVFUWEVUNEUIUWCVU
      MDVQWAWBYCWCVHVULVUAVUPUVLUYRVUKVUAVUPUVLUNUYRVUKVUAVGZVGZVUPUVLVVHVUOUVK
      UVEVVHEVUNGPZUIQVUOUVKVVHVUMCVUNETGHIJAUYEUYQVVGKWKUYRVUKVUSVUAVVEYDZVVHB
      CVUMDAUYFUYQVVGNWKUYRVUKVURVUAVVDYDWMZVVHVUNHWNQZUYIGVVHUYJUYKVGZVVLUYISA
      VVMUYQVVGAUYJUYKUYMUYNYEWKVUMDWOWOHWTVHAUYOUYQVVGOWKXBVVHVUMCVUNWOHVVKVVJ
      UYKVVHUYNXJXCXDVVHVVIUVJEUIVVHVVIDUVHPZUVJVVHVVIDVUMGUJZPVVNDVUMGWGVVHVVO
      UVHDVVHVVOUYSUVHGUJZXOZUVHUWBUVHGYFVVHVVQUYSUVHXOZUVHVVHVVPUVHUYSVVHUVHGS
      ZVVPUVHVMUYRVUKVVSVUAVULUVHUVNGVVCUYCWEYDZUVHGYGYHYIVVHVUAVVRUVHVMUYRVUKV
      UAYJUYSUVHYKYHYNYOYLYOVVHDUVHGVVTYPYQWAYRWBUUAUUDUUEUUFXGUVQVUCUCUYSUVPUV
      GUYSVMZUVMVUBUDUVPVWAUVIVUAUVLUVGUYSUVHXHXKXIXLXMXNUUBUUCXIUUGAUDUCUBUVNC
      UVCUVPUUTEUVTWOIUVTYSZUVPYSKLAUYLUVNWORMBGFUUHVHAUVNCDUVNPZWLZUVNCUUTWLAU
      YFUXAVWDNUXBBCUVNDUUIVKAUVNCVWCUUTAVWCDBPZGPUUTDBGWGAVWEDGAUYFDBUUJVWEDVM
      NBCDUUKBDUULUUMUUNUUOUUPUUQYTAUFUEUBBCUVCUWJDEUVTFIVWBUWJYSKLMNYTUURUUS
      $.
  $}

  ${
    $d a b u y z A $.  $d b u z B $.  $d a b u x y z F $.  $d a b u x y z ph $.
    $d a b u y z C $.  $d a b u x y z G $.  $d a b u x y z H $.
    tsmsf1o.b $e |- B = ( Base ` G ) $.
    tsmsf1o.1 $e |- ( ph -> G e. CMnd ) $.
    tsmsf1o.2 $e |- ( ph -> G e. TopSp ) $.
    tsmsf1o.a $e |- ( ph -> A e. V ) $.
    tsmsf1o.f $e |- ( ph -> F : A --> B ) $.
    tsmsf1o.s $e |- ( ph -> H : C -1-1-onto-> A ) $.
    $( Re-index an infinite group sum using a bijection.  (Contributed by Mario
       Carneiro, 18-Sep-2015.) $)
    tsmsf1o $p |- ( ph -> ( G tsums F ) = ( G tsums ( F o. H ) ) ) $=
      ( vz va vb wcel wss wral vx vu vy ctsu co ccom cres cgsu cpw cfn cin wrex
      cv wi ctopn cfv wa cima cmpt crn wb wf wf1o f1opwfi f1of eqid fmpt sylibr
      syl wceq sseq1 imbi1d ralbidv rexrnmpt wfo f1ofo forn 3syl rexeqdv imaeq2
      cbvmptv sseq2 reseq2 oveq2d eleq1d imbi12d ralrnmpt raleqdv bitr3d adantr
      wf1 f1of1 ad2antrr elfpw simplbi ad2antlr adantl f1imass syl12anc simprbi
      c0g ccmn f1ores syl2anc imassrn syl5sseq fssresd fvexd fdmfifsupp gsumf1o
      fofi cvv df-ima eqimss2i cores ax-mp resco eqtr4i oveq2i ralbidva 3bitr3d
      syl6eq rexbidva imbi2d anbi2d eltsms f1dmex fco 3bitr4d eqrdv ) AUAFEUDUE
      ZFEGUFZUDUEZAUAUMZCRZYNUBUMZRZUCUMZOUMZSZFEYSUGZUHUEZYPRZUNZOBUIUJUKZTZUC
      UUEULZUNZUBFUOUPZTZUQYOYQPUMZQUMZSZFYLUULUGZUHUEZYPRZUNZQDUIUJUKZTZPUURUL
      ZUNZUBUUITZUQYNYKRYNYMRAUUJUVBYOAUUHUVAUBUUIAUUGUUTYQAUUFUCPUURGUUKURZUSZ
      UTZULZUVCYSSZUUCUNZOUUETZPUURULZUUGUUTAUVCUUERPUURTZUVFUVJVAAUURUUEUVDVBZ
      UVKAUURUUEUVDVCZUVLADBGVCZUVMNDBGPVDVIZUURUUEUVDVEVIZPUURUUEUVCUVDUVDVFZV
      GVHUUFUVIPUCUURUVCUVDUUEUVQYRUVCVJZUUDUVHOUUEUVRYTUVGUUCYRUVCYSVKVLVMVNVI
      AUUFUCUVEUUEAUVMUURUUEUVDVOUVEUUEVJUVOUURUUEUVDVPUURUUEUVDVQVRZVSAUVIUUSP
      UURAUUKUURRZUQZUVCGUULURZSZFEUWBUGZUHUEZYPRZUNZQUURTZUVIUUSAUWHUVIVAUVTAU
      VHOUVETZUWHUVIAUWBUUERQUURTZUWIUWHVAAUVLUWJUVPQUURUUEUWBUVDPQUURUVCUWBUUK
      UULGVTWAZVGVHUVHUWGQOUURUWBUVDUUEUWKYSUWBVJZUVGUWCUUCUWFYSUWBUVCWBUWLUUBU
      WEYPUWLUUAUWDFUHYSUWBEWCWDWEWFWGVIAUVHOUVEUUEUVSWHWIWJUWAUWGUUQQUURUWAUUL
      UURRZUQZUWCUUMUWFUUPUWNDBGWKZUUKDSZUULDSZUWCUUMVAAUWOUVTUWMAUVNUWONDBGWLV
      IZWMZUVTUWPAUWMUVTUWPUUKUJRUUKDWNWOWPUWMUWQUWAUWMUWQUULUJRZUULDWNZWOWQZDB
      UUKUULGWRWSUWNUWEUUOYPUWNUWEFUWDGUULUGZUFZUHUEUUOUWNUWBCUULUWDFUXCUJFXAUP
      ZIUXEVFAFXBRUVTUWMJWMUWNUWTUULUWBUXCVOZUWBUJRUWMUWTUWAUWMUWQUWTUXAWTWQUWN
      UULUWBUXCVCZUXFUWNUWOUWQUXGUWSUXBDBUULGXCXDZUULUWBUXCVPVIUULUWBUXCXKXDZUW
      NBCUWBEABCEVBZUVTUWMMWMUWNGUTZUWBBGUULXEUWNUVNDBGVOUXKBVJAUVNUVTUWMNWMDBG
      VPDBGVQVRXFXGZUWNUWBCUWDXLUXEUXLUXIUWNFXAXHXIUXHXJUXDUUNFUHUXDEUXCUFZUUNU
      XCUTZUWBSUXDUXMVJUWBUXNGUULXMXNEUXCUWBXOXPEGUULXQXRXSYBWEWFXTWIYCYAYDVMYE
      AOUCUBBCYNUUEEFUUIHIUUIVFZUUEVFJKLMYFAQPUBDCYNUURYLFUUIXLIUXOUURVFJKAUWOB
      HRDXLRUWRLDBHGYGXDAUXJDBGVBZDCYLVBMAUVNUXPNDBGVEVIDBCEGYHXDYFYIYJ $.
  $}

  ${
    $d y z A $.  $d w y z C $.  $d w y z F $.  $d w y z G $.  $d y z ph $.
    $d w z B $.  $d y z H $.
    tsmsmhm.b $e |- B = ( Base ` G ) $.
    tsmsmhm.j $e |- J = ( TopOpen ` G ) $.
    tsmsmhm.k $e |- K = ( TopOpen ` H ) $.
    tsmsmhm.1 $e |- ( ph -> G e. CMnd ) $.
    tsmsmhm.2 $e |- ( ph -> G e. TopSp ) $.
    tsmsmhm.3 $e |- ( ph -> H e. CMnd ) $.
    tsmsmhm.4 $e |- ( ph -> H e. TopSp ) $.
    tsmsmhm.5 $e |- ( ph -> C e. ( G MndHom H ) ) $.
    tsmsmhm.6 $e |- ( ph -> C e. ( J Cn K ) ) $.
    tsmsmhm.a $e |- ( ph -> A e. V ) $.
    tsmsmhm.f $e |- ( ph -> F : A --> B ) $.
    tsmsmhm.x $e |- ( ph -> X e. ( G tsums F ) ) $.
    $( Apply a continuous group homomorphism to an infinite group sum.
       (Contributed by Mario Carneiro, 18-Sep-2015.) $)
    tsmsmhm $p |- ( ph -> ( C ` X ) e. ( H tsums ( C o. F ) ) ) $=
      ( vz vy vw cfv cpw cfn cin cres cgsu cmpt ccom wss crab crn cfg cflf ctsu
      cv co ctopon wcel cfil ccnp ctps istps sylib cfbas eqid tsmsfbas fgcl syl
      wf tsmslem1 fmptd tsmsval eleqtrd cuni tsmscl sseldd wceq toponuni cncnpi
      ccn syl2anc flfcnp syl32anc cbs ccmn cnf2 syl3anc fco eqidd feqmptd fveq2
      fmptco wa resco oveq2i c0g adantr cmnd cmnmnd simprbi adantl cmhm simplbi
      elfpw fssres syl2an cvv fdmfifsupp gsummhm syl5eq mpteq2dva eqtr4d fveq2d
      fvexd eleqtrrd ) AKDUGZDUDBUHUIUJZFEUDVAZUKZULVBZUMZUNZIYCUEYCUEVAYDUOUDY
      CUPUMZUQZURVBZUSVBZUGZGDEUNZUTVBZAHCVCUGVDZYKYCVEUGVDZYCCYGVOKYGHYKUSVBUG
      ZVDDKHIVFVBUGVDZYBYMVDAFVGVDYPPCHFLMVHVIZAYJYCVJUGVDYQAUDUEBYCYIYJJYCVKZY
      IVKYJVKZUAVLYJYCVMVNAUDYCYFCYGABCYCEFJYDLUUAOUAUBVPZYGVKVQAKFEUTVBZYRUCAU
      DUEBCYCEFHYJVGJLMUUAUUBPUAUBVRVSADHIWFVBVDZKHVTZVDYSTAKCUUFAUUDCKABCEFJLO
      PUAUBWAUCWBAYPCUUFWCYTCHWDVNVSKDHIUUFUUFVKWEWGKYGDHIYKCYCWHWIAYOUDYCGYNYD
      UKZULVBZUMZYLUGYMAUDUEBGWJUGZYCYNGIYJWKJUUJVKZNUUAUUBQUAACUUJDVOZBCEVOZBU
      UJYNVOAYPIUUJVCUGVDZUUEUULYTAGVGVDUUNRUUJIGUUKNVHVITDHICUUJWLWMZUBBCUUJDE
      WNWGVRAYHUUIYLAYHUDYCYFDUGZUMUUIAUDUFYCCYFUFVAZDUGUUPYGDUUCAYGWOAUFCUUJDU
      UOWPUUQYFDWQWRAUDYCUUHUUPAYDYCVDZWSZUUHGDYEUNZULVBUUPUUGUUTGULDEYDWTXAUUS
      YDCYEFGDUIFXBUGZLUVAVKAFWKVDUUROXCUUSGWKVDZGXDVDAUVBUURQXCGXEVNUURYDUIVDZ
      AUURYDBUOZUVCYDBXJZXFXGZADFGXHVBVDUURSXCAUUMUVDYDCYEVOUURUBUURUVDUVCUVEXI
      BCYDEXKXLZUUSYDCYEXMUVAUVGUVFUUSFXBXTXNXOXPXQXRXSXRYA $.
  $}

  ${
    $d y z A $.  $d x y z B $.  $d x y z F $.  $d x y z .+ $.  $d x y z ph $.
    $d y z G $.  $d y z H $.
    tsmsadd.b $e |- B = ( Base ` G ) $.
    tsmsadd.p $e |- .+ = ( +g ` G ) $.
    tsmsadd.1 $e |- ( ph -> G e. CMnd ) $.
    tsmsadd.2 $e |- ( ph -> G e. TopMnd ) $.
    tsmsadd.a $e |- ( ph -> A e. V ) $.
    tsmsadd.f $e |- ( ph -> F : A --> B ) $.
    tsmsadd.h $e |- ( ph -> H : A --> B ) $.
    tsmsadd.x $e |- ( ph -> X e. ( G tsums F ) ) $.
    tsmsadd.y $e |- ( ph -> Y e. ( G tsums H ) ) $.
    $( The sum of two infinite group sums.  (Contributed by Mario Carneiro,
       19-Sep-2015.)  (Proof shortened by AV, 24-Jul-2019.) $)
    tsmsadd $p |- ( ph -> ( X .+ Y ) e. ( G tsums ( F oF .+ H ) ) ) $=
      ( wcel vz vy vx co cpw cfn cin cv cres cgsu cplusf cfv cmpt ctopn wss crn
      crab cfg cflf cof ctsu wceq ctmd ctps tmdtps tsmscl eqid plusfval syl2anc
      syl sseldd ctopon istps sylib cfil tsmsfbas fgcl tsmslem1 tsmsval eleqtrd
      cfbas ccmn ctx ccn cop cuni ccnp tmdcn cxp opelxpi txtopon cncnpi flfcnp2
      toponuni eqeltrrd cmnd wa cmnmnd mndcl 3expb sylan inidm off adantr elfpw
      c0g simprbi adantl simplbi fssres cvv fvex a1i fdmfifsupp gsumadd eqeltri
      wf syl2an cbs fex2 syl3anc offres oveq2d 3eqtr4d mpteq2dva eqtrd eleqtrrd
      fveq2d ) AIJDUDZUABUEUFUGZFEUAUHZUIZUJUDZFGYKUIZUJUDZFUKULZUDZUMZFUNULZYJ
      UBYJUBUHZYKUOUAYJUQUMZUPZURUDZUSUDZULZFEGDUTZUDZVAUDZAIJYPUDZYIUUEAICTZJC
      TZUUIYIVBAFEVAUDZCIABCEFHKMAFVCTZFVDTZNFVEVJZOPVFRVKZAFGVAUDZCJABCGFHKMUU
      OOQVFSVKZCDYPFIJKLYPVGZVHVIAUAYMYOIJYSYSUUCYSYPCCYJAUUNYSCVLULTZUUOCYSFKY
      SVGZVMVNZUVBAUUBYJWAULTUUCYJVOULTAUAUBBYJUUAUUBHYJVGZUUAVGUUBVGZOVPUUBYJV
      QVJABCYJEFHYKKUVCMOPVRZABCYJGFHYKKUVCMOQVRZAIUULUAYJYMUMUUDULRAUAUBBCYJEF
      YSUUBWBHKUVAUVCUVDMOPVSVTAJUUQUAYJYOUMUUDULSAUAUBBCYJGFYSUUBWBHKUVAUVCUVD
      MOQVSVTAYPYSYSWCUDZYSWDUDTZIJWEZUVGWFZTYPUVIUVGYSWGUDULTAUUMUVHNYPFYSUVAU
      USWHVJAUVICCWIZUVJAUUJUUKUVIUVKTUUPUURIJCCWJVIAUVGUVKVLULTZUVKUVJVBAUUTUU
      TUVLUVBUVBYSYSCCWKVIUVKUVGWNVJVTUVIYPUVGYSUVJUVJVGWLVIWMWOAUUHUAYJFUUGYKU
      IZUJUDZUMZUUDULUUEAUAUBBCYJUUGFYSUUBWBHKUVAUVCUVDMOAUCUBBBBDCCCEGHHAFWPTZ
      UCUHZCTZYTCTZWQUVQYTDUDCTZAFWBTZUVPMFWRVJUVPUVRUVSUVTCDFUVQYTKLWSWTXAPQOO
      BXBXCVSAUVOYRUUDAUAYJUVNYQAYKYJTZWQZFYLYNUUFUDZUJUDYMYODUDZUVNYQUWCYKCDYL
      FYNUFFXFULZKUWFVGLAUWAUWBMXDUWBYKUFTZAUWBYKBUOZUWGYKBXEZXGXHZABCEXQZUWHYK
      CYLXQUWBPUWBUWHUWGUWIXIZBCYKEXJXRZABCGXQZUWHYKCYNXQUWBQUWLBCYKGXJXRZUWCYK
      CYLXKUWFUWMUWJUWFXKTUWCFXFXLXMZXNUWCYKCYNXKUWFUWOUWJUWPXNXOUWCUVMUWDFUJAU
      VMUWDVBZUWBAEXKTZGXKTZUWQAUWKBHTZCXKTZUWRPOUXAACFXSULXKKFXSXLXPXMZBCEHXKX
      TYAAUWNUWTUXAUWSQOUXBBCGHXKXTYAYKDEGXKXKYBVIXDYCUWCYMCTYOCTYQUWEVBUVEUVFC
      DYPFYMYOKLUUSVHVIYDYEYHYFYG $.
  $}

  ${
    tsmsinv.b $e |- B = ( Base ` G ) $.
    tsmsinv.p $e |- I = ( invg ` G ) $.
    tsmsinv.1 $e |- ( ph -> G e. CMnd ) $.
    tsmsinv.2 $e |- ( ph -> G e. TopGrp ) $.
    tsmsinv.a $e |- ( ph -> A e. V ) $.
    tsmsinv.f $e |- ( ph -> F : A --> B ) $.
    tsmsinv.x $e |- ( ph -> X e. ( G tsums F ) ) $.
    $( Inverse of an infinite group sum.  (Contributed by Mario Carneiro,
       20-Sep-2015.) $)
    tsmsinv $p |- ( ph -> ( I ` X ) e. ( G tsums ( I o. F ) ) ) $=
      ( ctopn cfv wcel syl co eqid ctgp ctps tgptps cghm cmhm cabl tgpgrp isabl
      cgrp ccmn sylanbrc invghm sylib ghmmhm ccn tgpinv tsmsmhm ) ABCFDEEEPQZUS
      GHIUSUAZUTKAEUBRZEUCRLEUDSZKVBAFEEUETRZFEEUFTRAEUGRZVCAEUJRZEUKRVDAVAVELE
      UHSKEUIULCEFIJUMUNEEFUOSAVAFUSUSUPTRLEFUSUTJUQSMNOUR $.
  $}

  ${
    $d k A $.  $d k x B $.  $d k F $.  $d k x G $.  $d k x H $.  $d k ph $.
    $d k .- $.
    tsmssub.b $e |- B = ( Base ` G ) $.
    tsmssub.p $e |- .- = ( -g ` G ) $.
    tsmssub.1 $e |- ( ph -> G e. CMnd ) $.
    tsmssub.2 $e |- ( ph -> G e. TopGrp ) $.
    tsmssub.a $e |- ( ph -> A e. V ) $.
    tsmssub.f $e |- ( ph -> F : A --> B ) $.
    tsmssub.h $e |- ( ph -> H : A --> B ) $.
    tsmssub.x $e |- ( ph -> X e. ( G tsums F ) ) $.
    tsmssub.y $e |- ( ph -> Y e. ( G tsums H ) ) $.
    $( The difference of two infinite group sums.  (Contributed by Mario
       Carneiro, 20-Sep-2015.) $)
    tsmssub $p |- ( ph -> ( X .- Y ) e. ( G tsums ( F oF .- H ) ) ) $=
      ( co vk vx cminusg cfv cplusg ccom cof ctsu eqid ctgp wcel ctmd tgptmd wf
      syl cgrp tgpgrp grpinvf 3syl fco syl2anc tsmsinv tsmsadd wceq ctps tgptps
      tsmscl sseldd grpsubval cv cmpt ffvelrnda mpteq2dva feqmptd offval2 fvexd
      wa cvv fveq2 fmptco 3eqtr4d oveq2d 3eltr4d ) AIJEUCUDZUDZEUEUDZTZEDWDFUFZ
      WFUGTZUHTIJGTZEDFGUGTZUHTABCWFDEWHHIWEKWFUIZMAEUJUKZEULUKNEUMUOOPACCWDUNZ
      BCFUNBCWHUNAWMEUPUKWNNEUQCEWDKWDUIZURUSZQBCCWDFUTVARABCFEWDHJKWOMNOQSVBVC
      AICUKJCUKWJWGVDAEDUHTCIABCDEHKMAWMEVEUKNEVFUOZOPVGRVHAEFUHTCJABCFEHKMWQOQ
      VGSVHCWFEWDGIJKWLWOLVIVAAWKWIEUHAUABUAVJZDUDZWRFUDZGTZVKUABWSWTWDUDZWFTZV
      KWKWIAUABXAXCAWRBUKVQZWSCUKWTCUKXAXCVDABCWRDPVLZABCWRFQVLZCWFEWDGWSWTKWLW
      OLVIVAVMAUABWSWTGDFHCCOXEXFAUABCDPVNZAUABCFQVNZVOAUABWSXBWFDWHHCVROXEXDWT
      WDVPXGAUAUBBCWTUBVJZWDUDXBFWDXFXHAUBCCWDWPVNXIWTWDVSVTVOWAWBWC $.
  $}

  ${
    $d k A $.  $d k B $.  $d k x F $.  $d k x G $.  $d x J $.  $d k x ph $.
    $d k V $.  $d x X $.
    tgptsmscls.b $e |- B = ( Base ` G ) $.
    tgptsmscls.j $e |- J = ( TopOpen ` G ) $.
    tgptsmscls.1 $e |- ( ph -> G e. CMnd ) $.
    tgptsmscls.2 $e |- ( ph -> G e. TopGrp ) $.
    tgptsmscls.a $e |- ( ph -> A e. V ) $.
    tgptsmscls.f $e |- ( ph -> F : A --> B ) $.
    ${
      tgptsmscls.x $e |- ( ph -> X e. ( G tsums F ) ) $.
      $( A sum in a topological group is uniquely determined up to a coset of
         ` cls ( { 0 } ) ` , which is a normal subgroup by ~ clsnsg , ~ 0nsg .
         (Contributed by Mario Carneiro, 22-Sep-2015.)  (Proof shortened by AV,
         24-Jul-2019.) $)
      tgptsmscls $p |- ( ph -> ( G tsums F ) = ( ( cls ` J ) ` { X } ) ) $=
        ( vk co cfv wcel adantr vx ctsu csn ccl cv wa c0g cqg cec wbr csubg wer
        ctgp cgrp tgpgrp syl eqid 0subg clssubg syl2anc eqger csg tgptps tsmscl
        ctps sselda sseldd ccmn wf simpr tsmssub cmpt ffvelrnda feqmptd offval2
        cof cgsu grpsubid mpteq2dva eqtrd oveq2d grpidcl fmptd cfsupp fconstmpt
        wceq cxp cvv fvexd fczfsuppd syl5eqbrr tsmsgsum cmnd cmnmnd gsumz sneqd
        fveq2d 3eqtrd eleqtrd wss w3a wb isabl sylanbrc subgss eqgabl mpbir3and
        cabl ersym releqg relelec ax-mp sylibr snclseqg ex ssrdv tsmscls eqssd
        wrel ) AEDUBQZHUCFUDRZRZAUAXTYBAUAUEZXTSZYCYBSAYDUFZYCHEEUGRZUCZYARZUHQ
        ZUIZYBYEHYCYIUJZYCYJSZYEYCHYICYEYHEUKRZSZCYIULYEEUMSZYGYMSZYNAYOYDLTZYE
        EUNSZYPYEYOYRYQEUOUPZEYFYFUQZURUPYGEFJUSUTZYIECYHIYIUQZVAUPYEYCHYIUJZYC
        CSZHCSZHYCEVBRZQZYHSZAXTCYCABCDEGIKAYOEVESZLEVCZUPZMNVDZVFAUUEYDAXTCHUU
        LOVGTZYEUUGEDDUUFVPQZUBQZYHYEBCDEDUUFGHYCIUUFUQZAEVHSZYDKTZYQABGSZYDMTZ
        ABCDVIYDNTZUVAAHXTSYDOTAYDVJVKYEUUOEPBYFVLZUBQEUVBVQQZUCZYARYHYEUUNUVBE
        UBYEUUNPBPUEZDRZUVFUUFQZVLUVBYEPBUVFUVFUUFDDGCCUUTYEBCUVEDUVAVMZUVHYEPB
        CDUVAVNZUVIVOYEPBUVGYFYEUVEBSZUFYRUVFCSUVGYFWFYEYRUVJYSTUVHCEUUFUVFYFIY
        TUUPVRUTVSVTWAYEBCUVBEFGYFIYTUURYEYOUUIYQUUJUPUUTYEPBYFCUVBYEYFCSZUVJYE
        YRUVKYSCEYFIYTWBUPTUVBUQWCYEUVBBYGWGZYFWDPBYFWEAUVLYFWDUJYDABGWHYFMAEUG
        WIWJTWKJWLYEUVDYGYAYEUVCYFYEEWMSZUUSUVCYFWFYEUUQUVMUUREWNUPUUTBPEGYFYTW
        OUTWPWQWRWSYEEXHSZYHCWTZUUCUUDUUEUUHXAXBYEYRUUQUVNYSUUREXCXDYEYNUVOUUAC
        YHEIXEUPYCHYIYHEUUFCIUUPUUBXFUTXGXIYIXSYLYKXBYIYHEUUBXJYCHYIXKXLXMYEYOU
        UEYJYBWFYQUUMHYIYHEFCYFIJYTUUBYHUQXNUTWSXOXPABCDEFGHIJKUUKMNOXQXR $.
    $}

    $( The set of limit points to an infinite sum in a topological group is
       closed.  (Contributed by Mario Carneiro, 22-Sep-2015.) $)
    tgptsmscld $p |- ( ph -> ( G tsums F ) e. ( Clsd ` J ) ) $=
      ( vx cfv wcel c0 wceq syl adantr ctsu co ccld ctop ctgp tgptopon topontop
      ctopon 0cld eleq1 syl5ibrcom wne cv wex n0 wa csn ccl wf simpr tgptsmscls
      ccmn cuni ctps tgptps tsmscl toponuni sseqtrd sselda snssd clscld syl2anc
      wss eqid eqeltrd ex exlimdv syl5bi pm2.61dne ) AEDUAUBZFUCOZPZVTQAWBVTQRQ
      WAPZAFUDPZWCAFCUHOPZWDAEUEPZWEKEFCIHUFSZCFUGSZFUISVTQWAUJUKVTQULNUMZVTPZN
      UNAWBNVTUOAWJWBNAWJWBAWJUPZVTWIUQZFUROOZWAWKBCDEFGWIHIAEVBPWJJTAWFWJKTABG
      PWJLTABCDUSWJMTAWJUTVAWKWDWLFVCZVMWMWAPAWDWJWHTWKWIWNAVTWNWIAVTCWNABCDEGH
      JAWFEVDPKEVESLMVFAWECWNRWGCFVGSVHVIVJWLFWNWNVNVKVLVOVPVQVRVS $.
  $}

  ${
    $d k .+ $.  $d k A $.  $d k B $.  $d k C $.  $d k D $.  $d k ph $.
    $d k F $.  $d k G $.
    tsmssplit.b $e |- B = ( Base ` G ) $.
    tsmssplit.p $e |- .+ = ( +g ` G ) $.
    tsmssplit.1 $e |- ( ph -> G e. CMnd ) $.
    tsmssplit.2 $e |- ( ph -> G e. TopMnd ) $.
    tsmssplit.a $e |- ( ph -> A e. V ) $.
    tsmssplit.f $e |- ( ph -> F : A --> B ) $.
    tsmssplit.x $e |- ( ph -> X e. ( G tsums ( F |` C ) ) ) $.
    tsmssplit.y $e |- ( ph -> Y e. ( G tsums ( F |` D ) ) ) $.
    tsmssplit.i $e |- ( ph -> ( C i^i D ) = (/) ) $.
    tsmssplit.u $e |- ( ph -> A = ( C u. D ) ) $.
    $( Split a topological group sum into two parts.  (Contributed by Mario
       Carneiro, 19-Sep-2015.)  (Proof shortened by AV, 24-Jul-2019.) $)
    tsmssplit $p |- ( ph -> ( X .+ Y ) e. ( G tsums F ) ) $=
      ( vk co cv wcel cfv c0g cif cmpt cof ctsu ffvelrnda cmnd ccmn cmnmnd eqid
      wa syl mndidcl adantr ifcld fmptd cres feqmptd reseq1d wss wceq cun ssun1
      syl5sseqr iftrue mpteq2ia resmpt 3eqtr4a eqtr4d oveq2d ctmd tmdtps eldifn
      ctps cdif adantl iffalsed suppss2 tsmsres eqtrd eleqtrd ssun2 tsmsadd cin
      wn wi noel eleq2 mtbiri elin sylnib imnan sylibr imp oveq12d mndrid sylan
      c0 syldan con2d mndlid eleq2d elun syl6bb biimpa mpjaodan mpteq2dva eqidd
      wo offval2 eleqtrrd ) AJKFUCHUBBUBUDZDUEZXRGUFZHUGUFZUHZUIZUBBXREUEZXTYAU
      HZUIZFUJUCZUKUCHGUKUCABCFYCHYFIJKLMNOPAUBBYBCYCAXRBUEZUQZXSXTYACABCXRGQUL
      ZAYACUEZYHAHUMUEZYKAHUNUEYLNHUOURZCHYALYAUPZUSURUTZVAZYCUPVBZAUBBYECYFYIY
      DXTYACYJYOVAZYFUPVBZAJHGDVCZUKUCZHYCUKUCZRAUUAHYCDVCZUKUCUUBAYTUUCHUKAYTU
      BBXTUIZDVCZUUCAGUUDDAUBBCGQVDZVEADBVFZUUCUUEVGADEVHZDBDEVIUAVJUUGUBDYBUIU
      BDXTUIUUCUUEUBDYBXTXSXTYAVKZVLUBBDYBVMUBBDXTVMVNURVOVPABCYCHIDYALYNNAHVQU
      EHVTUEOHVRURZPYQABYBUBIDYAAXRBDWAUEZUQXSXTYAUUKXSWKZAXRBDVSWBWCPWDWEWFWGA
      KHGEVCZUKUCZHYFUKUCZSAUUNHYFEVCZUKUCUUOAUUMUUPHUKAUUMUUDEVCZUUPAGUUDEUUFV
      EAEBVFZUUPUUQVGAUUHEBEDWHUAVJUURUBEYEUIUBEXTUIUUPUUQUBEYEXTYDXTYAVKZVLUBB
      EYEVMUBBEXTVMVNURVOVPABCYFHIEYALYNNUUJPYSABYEUBIEYAAXRBEWAUEZUQYDXTYAUUTY
      DWKZAXRBEVSWBWCPWDWEWFWGWIAGYGHUKAGUBBYBYEFUCZUIZYGAGUUDUVCUUFAUBBUVBXTYI
      XSUVBXTVGYDYIXSUQZUVBXTYAFUCZXTUVDYBXTYEYAFXSYBXTVGYIUUIWBUVDYDXTYAYIXSUV
      AYIXSYDUQZWKXSUVAWLYIXRDEWJZUEZUVFAUVHWKZYHAUVGXDVGZUVITUVJUVHXRXDUEXRWMU
      VGXDXRWNWOURUTXRDEWPWQXSYDWRWSZWTWCXAYIUVEXTVGZXSAYHXTCUEZUVLYJAYLUVMUVLY
      MCFHXTYALMYNXBXCXEUTWFYIYDUQZUVBYAXTFUCZXTUVNYBYAYEXTFUVNXSXTYAYIYDUULYIX
      SYDUVKXFWTWCYDYEXTVGYIUUSWBXAYIUVOXTVGZYDAYHUVMUVPYJAYLUVMUVPYMCFHXTYALMY
      NXGXCXEUTWFAYHXSYDXOZAYHXRUUHUEUVQABUUHXRUAXHXRDEXIXJXKXLXMVOAUBBYBYEFYCY
      FICCPYPYRAYCXNAYFXNXPVOVPXQ $.
  $}

  ${
    $d g k w y z .0. $.  $d a b c d f g h j k n s t u v w x y z G $.  $d y J $.
    $d b g h k s u v w y z B $.  $d f g j k n x y z D $.  $d f g j n x y z L $.
    $d a b g h j k n s t u v y z A $.  $d c d f g j k n w x y z K $.  $d c S $.
    $d a b d f g h j k n s t u v x y z H $.  $d c d g w x y z N $.  $d c d U $.
    $d d f g j n x y z .- $.  $d b f g h j k n s t u v y z C $.  $d c d g T $.
    $d c d g y .+ $.  $d b c d f g h j k n s t u v w x y z F $.
    $d a b f g h j k n s t u v w y z ph $.
    tsmsxp.b $e |- B = ( Base ` G ) $.
    tsmsxp.g $e |- ( ph -> G e. CMnd ) $.
    tsmsxp.2 $e |- ( ph -> G e. TopGrp ) $.
    tsmsxp.a $e |- ( ph -> A e. V ) $.
    tsmsxp.c $e |- ( ph -> C e. W ) $.
    tsmsxp.f $e |- ( ph -> F : ( A X. C ) --> B ) $.
    tsmsxp.h $e |- ( ph -> H : A --> B ) $.
    tsmsxp.1 $e |- ( ( ph /\ j e. A ) ->
      ( H ` j ) e. ( G tsums ( k e. C |-> ( j F k ) ) ) ) $.
    ${
      tsmsxp.j $e |- J = ( TopOpen ` G ) $.
      tsmsxp.z $e |- .0. = ( 0g ` G ) $.
      tsmsxp.p $e |- .+ = ( +g ` G ) $.
      tsmsxp.m $e |- .- = ( -g ` G ) $.
      tsmsxp.l $e |- ( ph -> L e. J ) $.
      tsmsxp.3 $e |- ( ph -> .0. e. L ) $.
      tsmsxp.k $e |- ( ph -> K e. ( ~P A i^i Fin ) ) $.
      ${
        tsmsxp.ks $e |- ( ph -> dom D C_ K ) $.
        tsmsxp.d $e |- ( ph -> D e. ( ~P ( A X. C ) i^i Fin ) ) $.
        $( Lemma for ~ tsmsxp .  (Contributed by Mario Carneiro,
           21-Sep-2015.) $)
        tsmsxplem1 $p |- ( ph -> E. n e. ( ~P C i^i Fin ) ( ran D C_ n /\
      A. x e. K ( ( H ` x ) .- ( G gsum ( F |` ( { x } X. n ) ) ) ) e. L ) ) $=
          ( vf vz vg vy cpw cfn cin cv wf cfv wss co cmpt cres cgsu crn wcel wi
          wral wa csn cxp wrex wex elfpw simprbi syl simplbi sselda eqid adantr
          ccmn ctps ctgp tgptps fovrn syl3an1 3expa cima df-ima ctopon tgptopon
          fmptd toponss syl2anc resmptd rneqd chmeo cminusg ccom wceq ffvelrnda
          syl5eq grpsubval sylan mpteq2dva cgrp tgpgrp grpinvcl grpinvf feqmptd
          eqidd oveq2 fmptco eqeltrd eqeltrrd ovex syldan ralbidv adantl syl6ss
          cvv sylib sylanbrc a1i adantlr oveq2d eleq1d ad2antrr c0g weq reseq2d
          3syl eqtr4d grpinvhmeo tgplacthmeo hmeoco hmeoima grpsubid1 elrnmpt1s
          sylancl tsmsi ralrimiva sseq1 imbi1d ac6sfi cuni cun frn sspwuni rnss
          inss1 rnxpss unssd wfo wfn ffn dffn4 fofi inss2 unifi rnfi unfi ssun2
          adantrr wb fvssunirn ssun1 sstri id syl5sseqr pm5.5 reseq2 bitrd cmnd
          rspcv cmnmnd simplr jca ovexd eqeltri fsuppmptdm gsumcl velsn sylanbr
          fvex ovres oveq1 eqtrd gsumsn syl3anc snfi snssd fssresd xpfi sylancr
          xpss12 fdmfifsupp gsumxp 3eqtr4rd elrnmpti cabl isabl ad3antrrr simpr
          ablnncan syl5ibrcom rexlimdva syl5bi sylbid syld an32s ralimdva fveq2
          impr sneq xpeq1d oveq12d cbvralv sseq2 xpeq2 rspcev syl12anc exlimddv
          anbi12d ) AOEVBZVCVDZURVEZVFZHVEZUYOVGZUSVEZVHZLIEUYQIVEZKVIZVJZUYSVK
          ZVLVIZUTPUYQMVGZUTVEZQVIZVJZVMZVNZVOZUSUYNVPZHOVPZVQZFVMZJVEZVHZBVEZM
          VGZLKVUSVRZVUQVSZVKZVLVIZQVIZPVNZBOVPZVQZJUYNVTZURAOVCVNZVAVEZUYSVHZV
          UKVOZUSUYNVPZVAUYNVTZHOVPVUOURWAAOCVBVCVDVNZVVJUOVVPOCVHZVVJOCWBZWCWD
          ZAVVOHOAUYQOVNZUYQCVNZVVOAOCUYQAVVPVVQUOVVPVVQVVJVVRWEWDWFZAVWAVQZUSV
          AEDVUFUYNVUJVUCLNSUAUIUYNWGALWIVNZVWAUBWHALWJVNZVWAALWKVNZVWEUCLWLWDW
          HAESVNVWAUEWHVWCIEVUBDVUCAVWAVUAEVNZVUBDVNZACEVSZDKVFZVWAVWGVWHUFUYQV
          UADCEKWMZWNWOVUCWGWTUHVWCUTDVUHVJZPWPZVUJNVWCVWMVWLPVKZVMVUJVWLPWQVWC
          VWNVUIVWCUTDPVUHAPDVHZVWAANDWRVGVNZPNVNZVWOAVWFVWPUCLNDUIUAWSWDUMPNDX
          AXBZWHXCXDXJVWCVWLNNXEVIZVNVWQVWMNVNVWCVWLVADVUFVVKGVIZVJZLXFVGZXGZVW
          SVWCVWLUTDVUFVUGVXBVGZGVIZVJVXCVWCUTDVUHVXEVWCVUFDVNZVUGDVNZVUHVXEXHA
          CDUYQMUGXIZDGLVXBQVUFVUGUAUKVXBWGZULXKXLXMVWCUTVADDVXDVWTVXEVXBVXAVWC
          LXNVNZVXGVXDDVNAVXJVWAAVWFVXJUCLXOWDZWHZDLVXBVUGUAVXIXPXLVWCUTDDVXBVW
          CVXJDDVXBVFVXLDLVXBUAVXIXQWDXRVWCVXAXSVVKVXDVUFGXTYAUUAVWCVXBVWSVNZVX
          AVWSVNZVXCVWSVNVWCVWFVXMAVWFVWAUCWHZLVXBNUIVXIUUBWDVWCVWFVXFVXNVXOVXH
          VAVUFGVXALNDVXAWGUAUKUIUUCXBVXBVXANNNUUDXBYBAVWQVWAUMWHPVWLNNUUEXBYCV
          WCVUFTQVIZVUFVUJVWCVXJVXFVXPVUFXHVXLVXHDLQVUFTUAUJULUUFXBVWCTPVNZVXPY
          IVNVXPVUJVNAVXQVWAUNWHVUFTQYDUTPVUHVXPTVUIYIVUIWGZVUGTVUFQXTUUGUUHYCU
          UIYEUUJVVNVUMHVAOUYNURVVKUYRXHZVVMVULUSUYNVXSVVLUYTVUKVVKUYRUYSUUKUUL
          YFUUMXBAVUOVQZUYOVMZUUNZVUPUUOZUYNVNZVUPVYCVHZVUTLKVVAVYCVSZVKZVLVIZQ
          VIZPVNZBOVPZVVIAUYPVYDVUNAUYPVQZVYCEVHZVYCVCVNZVYDVYLVYBVUPEVYLVYAUYM
          VHVYBEVHVYLVYAUYNUYMUYPVYAUYNVHAOUYNUYOUUPYGZUYMVCUUSYHVYAEUUQYJAVUPE
          VHUYPAVUPVWIVMZEAFVWIVBVCVDVNZFVWIVHZVUPVYPVHUQVYQVYRFVCVNZFVWIWBZWEF
          VWIUURYTCEUUTYHWHUVAZVYLVYBVCVNZVUPVCVNZVYNVYLVYAVCVNZVYAVCVHWUBVYLVV
          JOVYAUYOUVBZWUDAVVJUYPVVSWHVYLUYOOUVCZWUEUYPWUFAOUYNUYOUVDYGOUYOUVEYJ
          OVYAUYOUVFXBVYLVYAUYNVCVYOUYMVCUVGYHVYAUVHXBAWUCUYPAVYQVYSWUCUQVYQVYR
          VYSVYTWCFUVIYTWHVYBVUPUVJXBZVYCEWBYKZUVLVYEVXTVUPVYBUVKYLVXTVUFLKUYQV
          RZVYCVSZVKZVLVIZQVIZPVNZHOVPZVYKAUYPVUNWUOVYLVUMWUNHOAVVTUYPVUMWUNVOA
          VVTVQZUYPVQZVUMLVUCVYCVKZVLVIZVUJVNZWUNWUQVYDVUMWUTVOAUYPVYDVVTWUHYMV
          ULWUTUSVYCUYNUYSVYCXHZVULVUKWUTWVAUYTVULVUKUVMWVAVYCUYRUYSUYRVYBVYCUY
          OUYQUVNVYBVUPUVOUVPWVAUVQUVRUYTVUKUVSWDWVAVUEWUSVUJWVAVUDWURLVLUYSVYC
          VUCUVTYNYOUWAUWCWDWUQWUTWULVUJVNZWUNWUQWUSWULVUJWUQLVAWUILIVYCVVKVUAW
          UKVIZVJZVLVIZVJVLVIZLIVYCVUBVJZVLVIZWULWUSWUQLUWBVNZVVTWVHDVNWVFWVHXH
          WUQVWDWVIAVWDVVTUYPUBYPZLUWDWDAVVTUYPUWEWUQVYCDWVGLVCTUAUJWVJAUYPVYNV
          VTWUGYMZWUQIVYCVUBDWVGWUQVUAVYCVNZVWGVWHWUQVYCEVUAAUYPVYMVVTWUAYMZWFW
          UPVWGVWHUYPWUPVWJVWAVQVWGVWHWUPVWJVWAAVWJVVTUFWHVWBUWFVWJVWAVWGVWHVWK
          WOXLYMYEWVGWGZWTWUQIVYCWVGYIYIVUBTWVNWVKWUQWVLVQUYQVUAKUWGTYIVNWUQTLY
          QVGYIUJLYQUWMUWHYLZUWIUWJWVEDWVHVALUYQOUAVAHYRZWVDWVGLVLWVPIVYCWVCVUB
          WVPWVLVQWVCVVKVUAKVIZVUBWVPVVKWUIVNWVLWVCWVQXHVAUYQUWKVVKVUAWUIVYCKUW
          NUWLWVPWVQVUBXHWVLVVKUYQVUAKUWOWHUWPXMYNUWQUWRWUQWUIDVYCVAIWUKLVCVCTU
          AUJWVJWUIVCVNZWUQUYQUWSZYLWVKWUQVWIDWUJKAVWJVVTUYPUFYPWUQWUICVHVYMWUJ
          VWIVHWUQUYQCWUPVWAUYPVWBWHUWTWVMWUICVYCEUXDXBUXAZWUQWUJDWUKYITWVTWUQW
          VRVYNWUJVCVNWVSWVKWUIVYCUXBUXCWVOUXEUXFWUQWURWVGLVLWUQIEVYCVUBWVMXCYN
          UXGYOWVBWULVUHXHZUTPVTWUQWUNUTPVUHWULVUIVXRVUFVUGQYDUXHWUQWWAWUNUTPWU
          QVUGPVNZVQZWUNWWAVUFVUHQVIZPVNWWCWWDVUGPWWCDLQVUFVUGUAULALUXIVNZVVTUY
          PWWBAVXJVWDWWEVXKUBLUXJYKUXKWUPVXFUYPWWBAVVTVWAVXFVWBVXHYEYPWUQPDVUGA
          VWOVVTUYPVWRYPWFUXMWUQWWBUXLYBWWAWUMWWDPWULVUHVUFQXTYOUXNUXOUXPUXQUXR
          UXSUXTUYBWUNVYJHBOHBYRZWUMVYIPWWFVUFVUTWULVYHQUYQVUSMUYAWWFWUKVYGLVLW
          WFWUJVYFKWWFWUIVVAVYCUYQVUSUYCUYDYSYNUYEYOUYFYJVVHVYEVYKVQJVYCUYNVUQV
          YCXHZVURVYEVVGVYKVUQVYCVUPUYGWWGVVFVYJBOWWGVVEVYIPWWGVVDVYHVUTQWWGVVC
          VYGLVLWWGVVBVYFKVUQVYCVVAUYHYSYNYNYOYFUYLUYIUYJUYK $.
      $}

      tsmsxp.4 $e |- ( ph -> A. c e. S A. d e. T ( c .+ d ) e. U ) $.
      tsmsxp.n $e |- ( ph -> N e. ( ~P C i^i Fin ) ) $.
      tsmsxp.s $e |- ( ph -> D C_ ( K X. N ) ) $.
      tsmsxp.x $e |- ( ph -> A. x e. K
        ( ( H ` x ) .- ( G gsum ( F |` ( { x } X. N ) ) ) ) e. L ) $.
      tsmsxp.5 $e |- ( ph -> ( G gsum ( F |` ( K X. N ) ) ) e. S ) $.
      tsmsxp.6 $e |- ( ph -> A. g e. ( L ^m K ) ( G gsum g ) e. T ) $.
      $( Lemma for ~ tsmsxp .  (Contributed by Mario Carneiro, 21-Sep-2015.) $)
      tsmsxplem2 $p |- ( ph -> ( G gsum ( H |` K ) ) e. U ) $=
        ( vy vz vw cxp cres cgsu cabl wcel wceq cgrp ccmn ctgp tgpgrp syl isabl
        co sylanbrc cfn cpw cin wss simprbi xpfi syl2anc simplbi xpss12 fssresd
        elfpw fdmfifsupp gsumcl ablpncan3 syl12anc wral cfv csn cmpt cof adantr
        cv wa snfi sylancr wf sselda snssd cvv c0g fvex eqeltri a1i fmptd ovexd
        eqid fsuppmptdm gsumsub fvexd feqresmpt eqidd offval2 oveq2d cmnd simpr
        cmnmnd fovrnd velsn ovres oveq1 mpteq2dva gsumxp eleq1d oveq2 eqeltrrd
        weq sylanbr eqtrd gsumsn syl3anc adantll 3eqtr4d eqtr4d cmap fveq2 sneq
        3eqtr3d xpeq1d reseq2d oveq12d rspccva sylan elmapd mpbird sylc rspc2va
        rspcv syl21anc ) AONRUAVKZVLZVMWCZOPRVLZVMWCZUVETWCZGWCZUVGJAOVNVOZUVED
        VOUVGDVOUVIUVGVPAOVQVOZOVRVOZUVJAOVSVOUVKUIOVTWAUHOWBWDZAUVCDUVDOWEUDUG
        UPUHARWEVOZUAWEVOZUVCWEVOARCWFWEWGZVOZUVNVAUVQRCWHZUVNRCWOZWIWAZAUAEWFW
        EWGVOZUVOVCUWAUAEWHZUVOUAEWOZWIWAZRUAWJWKZACEVKZDUVCNULAUVRUWBUVCUWFWHA
        UVQUVRVAUVQUVRUVNUVSWLWAZAUWAUWBVCUWAUWBUVOUWCWLWAZRCUAEWMWKWNZAUVCDUVD
        SUDUWIUWEUTWPZWQARDUVFOWEUDUGUPUHUVTACDRPUMUWGWNZARDUVFSUDUWKUVTUTWPZWQ
        DGOTUVEUVGUGUQURWRWSAUVEHVOUVHIVOUEXFZUFXFZGWCZJVOZUFIWTUEHWTUVIJVOZVFA
        OVHRVHXFZPXAZONUWRXBZUAVKZVLZVMWCZTWCZXCZVMWCZUVHIAOUVFVHRUXCXCZTXDWCZV
        MWCUVGOUXGVMWCZTWCUXFUVHARDUVFOUXGTWEUDUGUPURUVMUVTUWKAVHRUXCDUXGAUWRRV
        OZXGZUXADUXBOWEUDUGUPAUVLUXJUHXEZUXKUWTWEVOZUVOUXAWEVOUWRXHZAUVOUXJUWDX
        EZUWTUAWJXIZUXKUWFDUXANAUWFDNXJZUXJULXEZUXKUWTCWHUWBUXAUWFWHUXKUWRCARCU
        WRUWGXKZXLAUWBUXJUWHXEZUWTCUAEWMWKWNZUXKUXADUXBXMUDUYAUXPUDXMVOUXKUDOXN
        XAXMUPOXNXOXPXQZWPZWQUXGXTZXRUWLAVHRUXGXMSUXCUDUYDUVTUXKOUXBVMXSZUTYAYB
        AUXHUXEOVMAVHRUWSUXCTUVFUXGWEXMXMUVTUXKUWRPYCUYEAVHCDRPUMUWGYDAUXGYEYFY
        GAUXIUVEUVGTAUXIOVHROVIUAUWRVIXFZUVDWCZXCZVMWCZXCZVMWCUVEAUXGUYJOVMAVHR
        UXCUYIUXKOVJUWTOVIUAVJXFZUYFUXBWCZXCZVMWCZXCVMWCZOVIUAUWRUYFNWCZXCZVMWC
        ZUXCUYIUXKOYHVOZUXJUYRDVOUYOUYRVPUXKUVLUYSUXLOYJWAAUXJYIUXKUADUYQOWEUDU
        GUPUXLUXOUXKVIUAUYPDUYQUXKUYFUAVOZXGZUWRUYFDCENUXKUXQUYTUXRXEUXKUWRCVOU
        YTUXSXEUXKUAEUYFUXTXKYKUYQXTZXRUXKVIUAUYQXMXMUYPUDVUBUXOVUAUWRUYFNXSUYB
        YAWQUYNDUYRVJOUWRRUGVJVHYTZUYMUYQOVMVUCVIUAUYLUYPVUCUYTXGUYLUYKUYFNWCZU
        YPVUCUYKUWTVOUYTUYLVUDVPVJUWRYLUYKUYFUWTUANYMUUAVUCVUDUYPVPUYTUYKUWRUYF
        NYNXEUUBYOYGUUCUUDUXKUWTDUAVJVIUXBOWEWEUDUGUPUXLUXMUXKUXNXQUXOUYAUYCYPU
        XKUYHUYQOVMUXKVIUAUYGUYPUXJUYTUYGUYPVPAUWRUYFRUANYMUUEYOYGUUFYOYGARDUAV
        HVIUVDOWEWEUDUGUPUHUVTUWDUWIUWJYPUUGYGUUKAUXESRUUHWCZVOZOKXFZVMWCZIVOZK
        VUEWTUXFIVOZAVUFRSUXEXJAVHRUXDSUXEABXFZPXAZONVUKXBZUAVKZVLZVMWCZTWCZSVO
        ZBRWTUXJUXDSVOZVEVURVUSBUWRRBVHYTZVUQUXDSVUTVULUWSVUPUXCTVUKUWRPUUIVUTV
        UOUXBOVMVUTVUNUXANVUTVUMUWTUAVUKUWRUUJUULUUMYGUUNYQUUOUUPUXEXTXRASRUXEQ
        UVPUSVAUUQUURVGVUIVUJKUXEVUEVUGUXEVPVUHUXFIVUGUXEOVMYRYQUVAUUSYSVBUWPUW
        QUVEUWNGWCZJVOUEUFUVEUVHHIUWMUVEVPUWOVVAJUWMUVEUWNGYNYQUWNUVHVPVVAUVIJU
        WNUVHUVEGYRYQUUTUVBYS $.
    $}

    $d x ph $.
    $( Write a sum over a two-dimensional region as a double sum.  This
       infinite group sum version of ~ gsumxp is also known as Fubini's
       theorem.  The converse is not necessarily true without additional
       assumptions.  See ~ tsmsxplem1 for the main proof; this part mostly sets
       up the local assumptions.  (Contributed by Mario Carneiro,
       21-Sep-2015.) $)
    tsmsxp $p |- ( ph -> ( G tsums F ) C_ ( G tsums H ) ) $=
      ( wcel vx vv vy vz vu va vb vt vc vd vs vg vn vh ctsu co cv wss cres cgsu
      wi cxp cpw cfn cin wral wrex ctopn cfv wa w3a c0g cplusg ctmd ctgp tgptmd
      syl 3ad2ant1 simp2 ctopon eqid tmdtopon toponss syl2anc simp3 sseldd cmnd
      tmdmnd mndidcl mndrid eqeltrd tmdcn2 syl23anc r19.29 simp31 elfpw simplbi
      wceq cdm ad2antrl dmss dmxpss simprbi dmfi sylanbrc cmap cmg ccmn simpl11
      syl6ss simprrl simpl2r chash cn0 hashcl mulgnn0z simpl32 tmdgsum2 crn csn
      csg wf sylan simp3rl simp2rl simp2rr simp2ll 3adant3 3adant3r wrel xpss12
      simprd eleq1d rexlimddv anassrs 3expia rexlimdva com23 cvv eltsms simp111
      cmpt simp3l tsmsxplem1 simp3ll simp133 simpld relxp relss mpisyl sylan9ss
      simp3rr relssdmrn syl12anc xpfi anim12i an4s syl2anb sylibr simp2lr sseq2
      reseq2 oveq2d imbi12d rspcv syl3c simp3lr oveq2 cbvralv sylib exp4a 3imp1
      tsmsxplem2 3exp 3expa expr sseq1 imbi1d ralbidv rspcev rexlimdvaa embantd
      ralrimiva impd syl5 mpan2d ralrimdva anim2d tgptps xpexg 3imtr4d ssrdv
      ctps ) AUAHGUOUPZHIUOUPZAUAUQZCTZUWPUBUQZTZUCUQZUDUQZURZHGUXAUSZUTUPZUWRT
      ZVAZUDBDVBZVCVDVEZVFZUCUXHVGZVAZUBHVHVIZVFZVJUWQUWPUEUQZTZUFUQZUGUQZURZHI
      UXQUSUTUPUXNTZVAZUGBVCVDVEZVFZUFUYAVGZVAZUEUXLVFZVJUWPUWNTUWPUWOTAUXMUYEU
      WQAUXMUYDUEUXLAUXNUXLTZVJUXOUXMUYCAUYFUXOUXMUYCVAAUYFUXOVKZUXMUWSHVLVIZUH
      UQZTZUIUQUJUQHVMVIZUPUXNTUJUYIVFUIUWRVFZVKZUHUXLVGZUBUXLVGZUYCUYGHVNTZUYF
      UWQUYHCTZUWPUYHUYKUPZUXNTUYOAUYFUYPUXOAHVOTZUYPNHVPVQZVRZAUYFUXOVSZUYGUXN
      CUWPUYGUXLCVTVITZUYFUXNCURUYGUYPVUCVUAHUXLCUXLWAZLWBVQVUBUXNUXLCWCWDAUYFU
      XOWEZWFZUYGHWGTZUYQUYGUYPVUGVUAHWHZVQZCHUYHLUYHWAZWIZVQUYGUYRUWPUXNUYGVUG
      UWQUYRUWPWRVUIVUFCUYKHUWPUYHLUYKWAZVUJWJWDVUEWKUIUJUHUBCUYKUXNHUXLUWPUYHL
      VUDVULWLWMUXMUYOVJUXKUYNVJZUBUXLVGUYGUYCUXKUYNUBUXLWNUYGVUMUYCUBUXLUYGUWR
      UXLTZVJZUXKUYNUYCVUOUYNUXKUYCVUOUYMUXKUYCVAZUHUXLUYGVUNUYIUXLTZUYMVUPVAUY
      GVUNVUQVJZUYMVUPUYGVURUYMVKZUWSUXJUYCUYGVURUWSUYJUYLWOVUSUXIUYCUCUXHVUSUW
      TUXHTZUXIVJZVJZUWTWSZUYATZVVCUXQURZUXSVAZUGUYAVFZUYCVVBVVCBURVVCVDTZVVDVV
      BVVCUXGWSZBVVBUWTUXGURZVVCVVIURVUTVVJVUSUXIVUTVVJUWTVDTZUWTUXGWPZWQZWTUWT
      UXGXAVQBDXBXJVVBVVKVVHVUTVVKVUSUXIVUTVVJVVKVVLXCWTUWTXDVQVVCBWPXEVVBVVFUG
      UYAVVBUXQUYATZVVEUXSVUSVVAVVNVVEVJZUXSVUSVVAVVOVJZVJZUYHUKUQZTZHULUQZUTUP
      ZUYITZULVVRUXQXFUPZVFZVJZUXSUKUXLVVQUKUXQCHXGVIZUYIULHUXLUYHVUDLVWFWAZVVQ
      AHXHTZAUYFUXOVURUYMVVPXIZMVQZVVQAUYPVWIUYTVQZVVQVVNUXQVDTZVUSVVAVVNVVEXKV
      VNUXQBURZVWLUXQBWPZXCVQZVUNVUQUYGUYMVVPXLVVQVUGUYQVVQUYPVUGVWKVUHVQZVUKVQ
      VVQUXQXMVIZUYHVWFUPZUYHUYIVVQVUGVWQXNTZVWRUYHWRVWPVVQVWLVWSVWOUXQXOVQCVWF
      HVWQUYHLVWGVUJXPWDUWSUYJUYLUYGVURVVPXQWKXRVUSVVPVVRUXLTZVWEVJZUXSVUSVVPVX
      AVKZUWTXSZUMUQZURZUWPIVIHGUWPXTVXDVBUSUTUPHYAVIZUPVVRTUAUXQVFZVJZUXSUMDVC
      VDVEZVXBUABCDUWTUYKEFUMGHIUXLUXQVVRVXFJKUYHLVXBAVWHAUYFUXOVURUYMVVPVXAUUA
      ZMVQVXBAUYSVXJNVQZVXBABJTZVXJOVQZVXBADKTZVXJPVQZVXBAUXGCGYBZVXJQVQZVXBABC
      IYBZVXJRVQZVXBAEUQZBTZVXTIVIHFDVXTFUQGUPUUBUOUPTZVXJSYCVUDVUJVULVXFWAZVUS
      VVPVWTVWEUUCVVSVWDVWTVUSVVPYDZVVNVVEVVAVUSVXAYEVVNVVEVVAVUSVXAYFVUTUXIVVO
      VUSVXAYGUUDVUSVVPVXAVXDVXITZVXHVJZUXSVUSVVPVXAVYFUXSVUSVVPVXAVYFVJZUXSVUS
      VVPVYGVKZUABCDUWTUYKUWRUYIUXNUNEFGHIUXLUXQVVRVXFVXDJKUYHUIUJLVUSVVPVWHVYG
      VWJYHVUSVVPVXAUYSVYFVXKYIVUSVVPVXAVXLVYFVXMYIVUSVVPVXAVXNVYFVXOYIVUSVVPVX
      AVXPVYFVXQYIVUSVVPVXAVXRVYFVXSYIVYHAVYAVYBVUSVVPAVYGVWIYHSYCVUDVUJVULVYCV
      WTVWEVYFVUSVVPUUEVUSVVPVXAVVSVYFVYDYIVVNVVEVVAVUSVYGYEZUWSUYJUYLUYGVURVVP
      VYGUUFVYEVXHVXAVUSVVPYDZVYHVUTVVEVXEUWTUXQVXDVBZURZVUTUXIVVOVUSVYGYGVVNVV
      EVVAVUSVYGYFVYHVXEVXGVYEVXHVXAVUSVVPUULZUUGVUTVVEVXEVJUWTVVCVXCVBZVYKVUTU
      WTYJZUWTVYNURVUTVVJUXGYJVYOVVMBDUUHUWTUXGUUIUUJUWTUUMVQVVCUXQVXCVXDYKUUKU
      UNZVYHVXEVXGVYMYLVYHVYKUXHTZUXIVYLHGVYKUSZUTUPZUWRTZVYHVVNVYEVYQVYIVYJVVN
      VYEVJVYKUXGURZVYKVDTZVJZVYQVVNVWMVWLVJVXDDURZVXDVDTZVJWUCVYEVWNVXDDWPVWMW
      UDVWLWUEWUCVWMWUDVJWUAVWLWUEVJWUBUXQBVXDDYKUXQVXDUUOUUPUUQUURVYKUXGWPUUSW
      DVUTUXIVVOVUSVYGUUTVYPUXFVYLVYTVAUDVYKUXHUXAVYKWRZUXBVYLUXEVYTUXAVYKUWTUV
      AWUFUXDVYSUWRWUFUXCVYRHUTUXAVYKGUVBUVCYMUVDUVEUVFVYHVWDHUNUQZUTUPZUYITZUN
      VWCVFVYHVVSVWDVWTVWEVYFVUSVVPUVGYLVWBWUIULUNVWCVVTWUGWRVWAWUHUYIVVTWUGHUT
      UVHYMUVIUVJUVMUVNUVKUVLYNUVOYNYOUVPUWCUYBVVGUFVVCUYAUXPVVCWRZUXTVVFUGUYAW
      UJUXRVVEUXSUXPVVCUXQUVQUVRUVSUVTWDUWAUWBYPYOYQYRUWDYQUWEUWFYPYRUWGUWHAUDU
      CUBUXGCUWPUXHGHUXLYSLVUDUXHWAMAUYSHUWMTNHUWIVQZAVXLVXNUXGYSTOPBDJKUWJWDQY
      TAUGUFUEBCUWPUYAIHUXLJLVUDUYAWAMWUKORYTUWKUWL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Topological rings, fields, vector spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c TopRing $. $( Topological ring $)
  $c TopDRing $. $( Topological division ring $)
  $c TopMod $. $( Topological module $)
  $c TopVec $. $( Topological vector space $)

  $( The class of all topological division rings. $)
  ctrg $a class TopRing $.

  $( The class of all topological division rings. $)
  ctdrg $a class TopDRing $.

  $( The class of all topological modules. $)
  ctlm $a class TopMod $.

  $( The class of all topological vector spaces. $)
  ctvc $a class TopVec $.

  $( Define a topological ring, which is a ring such that the addition is a
     topological group operation and the multiplication is continuous.
     (Contributed by Mario Carneiro, 5-Oct-2015.) $)
  df-trg $a |- TopRing = { r e. ( TopGrp i^i Ring ) |
    ( mulGrp ` r ) e. TopMnd } $.

  $( Define a topological division ring (which differs from a topological field
     only in being potentially noncommutative), which is a division ring and
     topological ring such that the unit group of the division ring (which is
     the set of nonzero elements) is a topological group.  (Contributed by
     Mario Carneiro, 5-Oct-2015.) $)
  df-tdrg $a |- TopDRing = { r e. ( TopRing i^i DivRing ) |
    ( ( mulGrp ` r ) |`s ( Unit ` r ) ) e. TopGrp } $.

  $( Define a topological left module, which is just what its name suggests:
     instead of a group over a ring with a scalar product connecting them, it
     is a topological group over a topological ring with a continuous scalar
     product.  (Contributed by Mario Carneiro, 5-Oct-2015.) $)
  df-tlm $a |- TopMod = { w e. ( TopMnd i^i LMod ) |
    ( ( Scalar ` w ) e. TopRing /\
      ( .sf ` w ) e. ( ( ( TopOpen ` ( Scalar ` w ) ) tX
                         ( TopOpen ` w ) ) Cn ( TopOpen ` w ) ) ) } $.

  $( Define a topological left vector space, which is a topological module over
     a topological division ring.  (Contributed by Mario Carneiro,
     5-Oct-2015.) $)
  df-tvc $a |- TopVec = { w e. TopMod | ( Scalar ` w ) e. TopDRing } $.

  ${
    $d r M $.  $d r R $.  $d r U $.
    istrg.1 $e |- M = ( mulGrp ` R ) $.
    $( Express the predicate " ` R ` is a topological ring".  (Contributed by
       Mario Carneiro, 5-Oct-2015.) $)
    istrg $p |- ( R e. TopRing <->
      ( R e. TopGrp /\ R e. Ring /\ M e. TopMnd ) ) $=
      ( vr ctgp crg cin wcel ctmd wa ctrg w3a elin anbi1i cmgp cfv wceq syl6eqr
      cv fveq2 eleq1d df-trg elrab2 df-3an 3bitr4i ) AEFGZHZBIHZJAEHZAFHZJZUHJA
      KHUIUJUHLUGUKUHAEFMNDSZOPZIHUHDAUFKULAQZUMBIUNUMAOPBULAOTCRUADUBUCUIUJUHU
      DUE $.

    $( The multiplicative monoid of a topological ring is a topological monoid.
       (Contributed by Mario Carneiro, 5-Oct-2015.) $)
    trgtmd $p |- ( R e. TopRing -> M e. TopMnd ) $=
      ( ctrg wcel ctgp crg ctmd istrg simp3bi ) ADEAFEAGEBHEABCIJ $.

    istdrg.1 $e |- U = ( Unit ` R ) $.
    $( Express the predicate " ` R ` is a topological ring".  (Contributed by
       Mario Carneiro, 5-Oct-2015.) $)
    istdrg $p |- ( R e. TopDRing <->
      ( R e. TopRing /\ R e. DivRing /\ ( M |`s U ) e. TopGrp ) ) $=
      ( vr ctrg cdr cin wcel cress co ctgp wa ctdrg cmgp cfv cui fveq2 syl6eqr
      w3a elin anbi1i cv wceq oveq12d eleq1d df-tdrg elrab2 df-3an 3bitr4i ) AG
      HIZJZCBKLZMJZNAGJZAHJZNZUONAOJUPUQUOUAUMURUOAGHUBUCFUDZPQZUSRQZKLZMJUOFAU
      LOUSAUEZVBUNMVCUTCVABKVCUTAPQCUSAPSDTVCVAARQBUSARSETUFUGFUHUIUPUQUOUJUK
      $.

    $( The unit group of a topological division ring is a topological group.
       (Contributed by Mario Carneiro, 5-Oct-2015.) $)
    tdrgunit $p |- ( R e. TopDRing -> ( M |`s U ) e. TopGrp ) $=
      ( ctdrg wcel ctrg cdr cress co ctgp istdrg simp3bi ) AFGAHGAIGCBJKLGABCDE
      MN $.
  $}

  $( A topological ring is a topological group.  (Contributed by Mario
     Carneiro, 5-Oct-2015.) $)
  trgtgp $p |- ( R e. TopRing -> R e. TopGrp ) $=
    ( ctrg wcel ctgp crg cmgp cfv ctmd eqid istrg simp1bi ) ABCADCAECAFGZHCALLI
    JK $.

  $( A topological ring is a topological monoid.  (Contributed by Mario
     Carneiro, 5-Oct-2015.) $)
  trgtmd2 $p |- ( R e. TopRing -> R e. TopMnd ) $=
    ( ctrg wcel ctgp ctmd trgtgp tgptmd syl ) ABCADCAECAFAGH $.

  $( A topological ring is a topological space.  (Contributed by Mario
     Carneiro, 5-Oct-2015.) $)
  trgtps $p |- ( R e. TopRing -> R e. TopSp ) $=
    ( ctrg wcel ctgp ctps trgtgp tgptps syl ) ABCADCAECAFAGH $.

  $( A topological ring is a ring.  (Contributed by Mario Carneiro,
     5-Oct-2015.) $)
  trgring $p |- ( R e. TopRing -> R e. Ring ) $=
    ( ctrg wcel ctgp crg cmgp cfv ctmd eqid istrg simp2bi ) ABCADCAECAFGZHCALLI
    JK $.

  $( A topological ring is a group.  (Contributed by Mario Carneiro,
     5-Oct-2015.) $)
  trggrp $p |- ( R e. TopRing -> R e. Grp ) $=
    ( ctrg wcel crg cgrp trgring ringgrp syl ) ABCADCAECAFAGH $.

  $( A topological division ring is a topological ring.  (Contributed by Mario
     Carneiro, 5-Oct-2015.) $)
  tdrgtrg $p |- ( R e. TopDRing -> R e. TopRing ) $=
    ( ctdrg wcel ctrg cdr cmgp cfv cui cress co ctgp eqid istdrg simp1bi ) ABCA
    DCAECAFGZAHGZIJKCAPOOLPLMN $.

  $( A topological division ring is a division ring.  (Contributed by Mario
     Carneiro, 5-Oct-2015.) $)
  tdrgdrng $p |- ( R e. TopDRing -> R e. DivRing ) $=
    ( ctdrg wcel ctrg cdr cmgp cfv cui cress co ctgp eqid istdrg simp2bi ) ABCA
    DCAECAFGZAHGZIJKCAPOOLPLMN $.

  $( A topological division ring is a ring.  (Contributed by Mario Carneiro,
     5-Oct-2015.) $)
  tdrgring $p |- ( R e. TopDRing -> R e. Ring ) $=
    ( ctdrg wcel ctrg crg tdrgtrg trgring syl ) ABCADCAECAFAGH $.

  $( A topological division ring is a topological monoid.  (Contributed by
     Mario Carneiro, 5-Oct-2015.) $)
  tdrgtmd $p |- ( R e. TopDRing -> R e. TopMnd ) $=
    ( ctdrg wcel ctrg ctmd tdrgtrg trgtmd2 syl ) ABCADCAECAFAGH $.

  $( A topological division ring is a topological space.  (Contributed by Mario
     Carneiro, 5-Oct-2015.) $)
  tdrgtps $p |- ( R e. TopDRing -> R e. TopSp ) $=
    ( ctdrg wcel ctrg ctps tdrgtrg trgtps syl ) ABCADCAECAFAGH $.

  ${
    istdrg2.m $e |- M = ( mulGrp ` R ) $.
    istdrg2.b $e |- B = ( Base ` R ) $.
    istdrg2.z $e |- .0. = ( 0g ` R ) $.
    $( A topological-ring division ring is a topological division ring iff the
       group of nonzero elements is a topological group.  (Contributed by Mario
       Carneiro, 5-Oct-2015.) $)
    istdrg2 $p |- ( R e. TopDRing <-> ( R e. TopRing /\ R e. DivRing /\
      ( M |`s ( B \ { .0. } ) ) e. TopGrp ) ) $=
      ( ctdrg wcel ctrg cdr cui cfv cress co ctgp w3a csn wa df-3an cdif istdrg
      eqid wceq crg isdrng simprbi adantl oveq2d eleq1d pm5.32i 3bitr4i bitri )
      BHIBJIZBKIZCBLMZNOZPIZQZUNUOCADRUAZNOZPIZQZBUPCEUPUCZUBUNUOSZURSVEVBSUSVC
      VEURVBVEUQVAPVEUPUTCNUOUPUTUDZUNUOBUEIVFABUPDFVDGUFUGUHUIUJUKUNUOURTUNUOV
      BTULUM $.
  $}

  ${
    mulrcn.j $e |- J = ( TopOpen ` R ) $.
    ${
      mulrcn.t $e |- T = ( +f ` ( mulGrp ` R ) ) $.
      $( The functionalization of the ring multiplication operation is a
         continuous function in a topological ring.  (Contributed by Mario
         Carneiro, 5-Oct-2015.) $)
      mulrcn $p |- ( R e. TopRing -> T e. ( ( J tX J ) Cn J ) ) $=
        ( ctrg wcel cmgp cfv ctmd ctx co ccn eqid trgtmd mgptopn tmdcn syl ) AF
        GAHIZJGBCCKLCMLGASSNZOBSCACSTDPEQR $.
    $}

    ${
      invrcn.i $e |- I = ( invr ` R ) $.
      invrcn.u $e |- U = ( Unit ` R ) $.
      $( The multiplicative inverse function is a continuous function from the
         unit group (that is, the nonzero numbers) to itself.  (Contributed by
         Mario Carneiro, 5-Oct-2015.) $)
      invrcn2 $p |- ( R e. TopDRing -> I e. ( ( J |`t U ) Cn ( J |`t U ) ) ) $=
        ( ctdrg wcel cmgp cfv cress co ctgp crest ccn tdrgunit mgptopn resstopn
        eqid invrfval tgpinv syl ) AHIAJKZBLMZNICDBOMZUFPMIABUDUDTZGQUECUFBUEDU
        DUETZADUDUGERSABUECGUHFUAUBUC $.

      $( The multiplicative inverse function is a continuous function from the
         unit group (that is, the nonzero numbers) to the field.  (Contributed
         by Mario Carneiro, 5-Oct-2015.) $)
      invrcn $p |- ( R e. TopDRing -> I e. ( ( J |`t U ) Cn J ) ) $=
        ( ctdrg wcel crest co ccn ctps ctop wss tdrgtps tpstop cnrest2r invrcn2
        3syl sseldd ) AHIZDBJKZUCLKZUCDLKZCUBAMIDNIUDUEOAPDAEQBUCDRTABCDEFGSUA
        $.
    $}

    $d x y J $.  $d x K $.  $d x y ph $.  $d x y R $.  $d x y X $.  $d x y Y $.
    cnmpt1mulr.t $e |- .x. = ( .r ` R ) $.
    cnmpt1mulr.r $e |- ( ph -> R e. TopRing ) $.
    cnmpt1mulr.k $e |- ( ph -> K e. ( TopOn ` X ) ) $.
    ${
      cnmpt1mulr.a $e |- ( ph -> ( x e. X |-> A ) e. ( K Cn J ) ) $.
      cnmpt1mulr.b $e |- ( ph -> ( x e. X |-> B ) e. ( K Cn J ) ) $.
      $( Continuity of ring multiplication; analogue of ~ cnmpt12f which cannot
         be used directly because ` .r ` is not a function.  (Contributed by
         Mario Carneiro, 5-Oct-2015.) $)
      cnmpt1mulr $p |- ( ph -> ( x e. X |-> ( A .x. B ) ) e. ( K Cn J ) ) $=
        ( cmgp cfv eqid mgptopn wcel mgpplusg ctrg ctmd trgtmd syl cnmpt1plusg
        ) ABCDFEPQZGHIEGUGUGRZJSEFUGUHKUAAEUBTUGUCTLEUGUHUDUEMNOUF $.
    $}

    cnmpt2mulr.l $e |- ( ph -> L e. ( TopOn ` Y ) ) $.
    cnmpt2mulr.a $e |- ( ph -> ( x e. X , y e. Y |-> A ) e.
                                ( ( K tX L ) Cn J ) ) $.
    cnmpt2mulr.b $e |- ( ph -> ( x e. X , y e. Y |-> B ) e.
                                ( ( K tX L ) Cn J ) ) $.
    $( Continuity of ring multiplication; analogue of ~ cnmpt22f which cannot
       be used directly because ` .r ` is not a function.  (Contributed by
       Mario Carneiro, 5-Oct-2015.) $)
    cnmpt2mulr $p |- ( ph ->
        ( x e. X , y e. Y |-> ( A .x. B ) ) e. ( ( K tX L ) Cn J ) ) $=
      ( wcel cmgp cfv eqid mgptopn mgpplusg ctrg ctmd trgtmd syl cnmpt2plusg )
      ABCDEGFUAUBZHIJKLFHUKUKUCZMUDFGUKULNUEAFUFTUKUGTOFUKULUHUIPQRSUJ $.
  $}

  ${
    $d x y J $.  $d x y R $.  $d x y U $.
    dvrcn.j $e |- J = ( TopOpen ` R ) $.
    dvrcn.d $e |- ./ = ( /r ` R ) $.
    dvrcn.u $e |- U = ( Unit ` R ) $.
    $( The division function is continuous in a topological field.
       (Contributed by Mario Carneiro, 5-Oct-2015.) $)
    dvrcn $p |- ( R e. TopDRing -> ./ e. ( ( J tX ( J |`t U ) ) Cn J ) ) $=
      ( vx vy ctdrg wcel cbs cfv cv cinvr cmulr co cmpt2 eqid ctopon crest ctps
      ctx ccn dvrfval tdrgtrg tdrgtps istps sylib wss unitss resttopon cnmpt1st
      sylancl cnmpt2nd invrcn cnmpt21f cnmpt2mulr syl5eqel ) BJKZAHIBLMZCHNZINZ
      BOMZMZBPMZQRDDCUAQZUCQDUDQHIVAABVFCVDVASZVFSZGVDSZFUEUTHIVBVEBVFDDVGVACEV
      IBUFUTBUBKDVATMKZBUGVADBVHEUHUIZUTVKCVAUJVGCTMKVLVABCVHGUKCDVAULUNZUTHIDV
      GVACVLVMUMUTHIVCVDDVGVGDVACVLVMUTHIDVGVACVLVMUOBCVDDEVJGUPUQURUS $.
  $}

  ${
    $d w F $.  $d w J $.  $d w K $.  $d w .x. $.  $d w W $.
    istlm.s $e |- .x. = ( .sf ` W ) $.
    istlm.j $e |- J = ( TopOpen ` W ) $.
    istlm.f $e |- F = ( Scalar ` W ) $.
    istlm.k $e |- K = ( TopOpen ` F ) $.
    $( The predicate " ` W ` is a topological left module".  (Contributed by
       Mario Carneiro, 5-Oct-2015.) $)
    istlm $p |- ( W e. TopMod <-> ( ( W e. TopMnd /\ W e. LMod /\
      F e. TopRing ) /\ .x. e. ( ( K tX J ) Cn J ) ) ) $=
      ( vw ctmd clmod wcel ctrg wa ctx co cfv ctopn syl6eqr cin ccn ctlm df-3an
      w3a anass elin anbi1i bitr4i csca cscaf wceq fveq2 eleq1d oveq12d eleq12d
      cv fveq2d anbi12d df-tlm elrab2 3bitr4ri ) EKLUAZMZBNMZOZADCPQZCUBQZMZOVD
      VEVIOZOEKMZELMZVEUEZVIOEUCMVDVEVIUFVMVFVIVMVKVLOZVEOVFVKVLVEUDVDVNVEEKLUG
      UHUIUHJUQZUJRZNMZVOUKRZVPSRZVOSRZPQZVTUBQZMZOVJJEVCUCVOEULZVQVEWCVIWDVPBN
      WDVPEUJRBVOEUJUMHTZUNWDVRAWBVHWDVREUKRAVOEUKUMFTWDWAVGVTCUBWDVSDVTCPWDVSB
      SRDWDVPBSWEURITWDVTESRCVOESUMGTZUOWFUOUPUSJUTVAVB $.

    $( The scalar multiplication is continuous in a topological module.
       (Contributed by Mario Carneiro, 5-Oct-2015.) $)
    vscacn $p |- ( W e. TopMod -> .x. e. ( ( K tX J ) Cn J ) ) $=
      ( ctlm wcel ctmd clmod ctrg w3a ctx co ccn istlm simprbi ) EJKELKEMKBNKOA
      DCPQCRQKABCDEFGHIST $.
  $}

  $( A topological module is a topological monoid.  (Contributed by Mario
     Carneiro, 5-Oct-2015.) $)
  tlmtmd $p |- ( W e. TopMod -> W e. TopMnd ) $=
    ( ctlm wcel ctmd clmod csca cfv ctrg w3a cscaf ctopn ctx eqid istlm simplbi
    co ccn simp1d ) ABCZADCZAECZAFGZHCZSTUAUCIAJGZUBKGZAKGZLPUFQPCUDUBUFUEAUDMU
    FMUBMUEMNOR $.

  $( A topological module is a topological space.  (Contributed by Mario
     Carneiro, 5-Oct-2015.) $)
  tlmtps $p |- ( W e. TopMod -> W e. TopSp ) $=
    ( ctlm wcel ctmd ctps tlmtmd tmdtps syl ) ABCADCAECAFAGH $.

  $( A topological module is a left module.  (Contributed by Mario Carneiro,
     5-Oct-2015.) $)
  tlmlmod $p |- ( W e. TopMod -> W e. LMod ) $=
    ( ctlm wcel ctmd clmod csca cfv ctrg w3a cscaf ctopn ctx eqid istlm simplbi
    co ccn simp2d ) ABCZADCZAECZAFGZHCZSTUAUCIAJGZUBKGZAKGZLPUFQPCUDUBUFUEAUDMU
    FMUBMUEMNOR $.

  ${
    $d x y F $.  $d x y J $.  $d x y K $.  $d x L $.  $d x y ph $.  $d x y W $.
    $d x y X $.  $d x y Y $.
    tlmtrg.f $e |- F = ( Scalar ` W ) $.
    $( The scalar ring of a topological module is a topological ring.
       (Contributed by Mario Carneiro, 5-Oct-2015.) $)
    tlmtrg $p |- ( W e. TopMod -> F e. TopRing ) $=
      ( ctlm wcel ctmd clmod ctrg w3a cscaf cfv ctopn ctx co eqid istlm simplbi
      ccn simp3d ) BDEZBFEZBGEZAHEZTUAUBUCIBJKZALKZBLKZMNUFRNEUDAUFUEBUDOUFOCUE
      OPQS $.

    $( The scalar ring of a topological module is a topological space.
       (Contributed by Mario Carneiro, 5-Oct-2015.) $)
    tlmscatps $p |- ( W e. TopMod -> F e. TopSp ) $=
      ( ctlm wcel ctrg ctps tlmtrg trgtps syl ) BDEAFEAGEABCHAIJ $.

    $( A topological vector space is a topological module over a topological
       division ring.  (Contributed by Mario Carneiro, 5-Oct-2015.) $)
    istvc $p |- ( W e. TopVec <-> ( W e. TopMod /\ F e. TopDRing ) ) $=
      ( vx cv csca ctdrg wcel ctlm ctvc wceq fveq2 syl6eqr eleq1d df-tvc elrab2
      cfv ) DEZFQZGHAGHDBIJRBKZSAGTSBFQARBFLCMNDOP $.

    $( The scalar field of a topological vector space is a topological division
       ring.  (Contributed by Mario Carneiro, 5-Oct-2015.) $)
    tvctdrg $p |- ( W e. TopVec -> F e. TopDRing ) $=
      ( ctvc wcel ctlm ctdrg istvc simprbi ) BDEBFEAGEABCHI $.

    cnmpt1vsca.t $e |- .x. = ( .s ` W ) $.
    cnmpt1vsca.j $e |- J = ( TopOpen ` W ) $.
    cnmpt1vsca.k $e |- K = ( TopOpen ` F ) $.
    cnmpt1vsca.w $e |- ( ph -> W e. TopMod ) $.
    cnmpt1vsca.l $e |- ( ph -> L e. ( TopOn ` X ) ) $.
    ${
      cnmpt1vsca.a $e |- ( ph -> ( x e. X |-> A ) e. ( L Cn K ) ) $.
      cnmpt1vsca.b $e |- ( ph -> ( x e. X |-> B ) e. ( L Cn J ) ) $.
      $( Continuity of scalar multiplication; analogue of ~ cnmpt12f which
         cannot be used directly because ` .s ` is not a function.
         (Contributed by Mario Carneiro, 5-Oct-2015.) $)
      cnmpt1vsca $p |- ( ph -> ( x e. X |-> ( A .x. B ) ) e. ( L Cn J ) ) $=
        ( wcel cscaf cfv co cmpt ccn cv wa cbs wceq wf wral ctps ctlm tlmscatps
        ctopon syl eqid istps sylib cnf2 syl3anc sylibr r19.21bi tlmtps scafval
        fmpt syl2anc mpteq2dva ctx vscacn cnmpt12f eqeltrrd ) ABKCDJUAUBZUCZUDB
        KCDEUCZUDIGUEUCZABKVNVOABUFKTUGCFUHUBZTZDJUHUBZTZVNVOUIAVRBKAKVQBKCUDZU
        JZVRBKUKAIKUOUBTZHVQUOUBTZWAIHUEUCTWBQAFULTZWDAJUMTZWEPFJLUNUPVQHFVQUQZ
        OURUSRWAIHKVQUTVABKVQCWAWAUQVFVBVCAVTBKAKVSBKDUDZUJZVTBKUKAWCGVSUOUBTZW
        HVPTWIQAJULTZWJAWFWKPJVDUPVSGJVSUQZNURUSSWHIGKVSUTVABKVSDWHWHUQVFVBVCVS
        VMEFVQJCDWLLWGVMUQZMVEVGVHABCDVMIHGGKQRSAWFVMHGVIUCGUEUCTPVMFGHJWMNLOVJ
        UPVKVL $.
    $}

    cnmpt2vsca.m $e |- ( ph -> M e. ( TopOn ` Y ) ) $.
    cnmpt2vsca.a $e |- ( ph -> ( x e. X , y e. Y |-> A ) e.
                               ( ( L tX M ) Cn K ) ) $.
    cnmpt2vsca.b $e |- ( ph -> ( x e. X , y e. Y |-> B ) e.
                               ( ( L tX M ) Cn J ) ) $.
    $( Continuity of scalar multiplication; analogue of ~ cnmpt22f which cannot
       be used directly because ` .s ` is not a function.  (Contributed by
       Mario Carneiro, 5-Oct-2015.) $)
    cnmpt2vsca $p |- ( ph ->
        ( x e. X , y e. Y |-> ( A .x. B ) ) e. ( ( L tX M ) Cn J ) ) $=
      ( cscaf cfv co cmpt2 ctx ccn cv wcel wceq wa cbs wral cxp txtopon syl2anc
      ctopon ctps ctlm tlmscatps syl eqid istps sylib cnf2 syl3anc fmpt2 sylibr
      wf r19.21bi tlmtps scafval 3impa mpt2eq3dva vscacn cnmpt22f eqeltrrd ) AB
      CMNDELUDUEZUFZUGBCMNDEFUFZUGJKUHUFZHUIUFZABCMNWAWBABUJMUKZCUJNUKZWAWBULZA
      WEUMZWFUMDGUNUEZUKZELUNUEZUKZWGWHWJCNAWJCNUOZBMAMNUPZWIBCMNDUGZVKZWMBMUOA
      WCWNUSUEUKZIWIUSUEUKZWOWCIUIUFUKWPAJMUSUEUKKNUSUEUKWQTUAJKMNUQURZAGUTUKZW
      RALVAUKZWTSGLOVBVCWIIGWIVDZRVEVFUBWOWCIWNWIVGVHBCMNDWIWOWOVDVIVJVLVLWHWLC
      NAWLCNUOZBMAWNWKBCMNEUGZVKZXCBMUOAWQHWKUSUEUKZXDWDUKXEWSALUTUKZXFAXAXGSLV
      MVCWKHLWKVDZQVEVFUCXDWCHWNWKVGVHBCMNEWKXDXDVDVIVJVLVLWKVTFGWILDEXHOXBVTVD
      ZPVNURVOVPABCDEVTJKIHHMNTUAUBUCAXAVTIHUHUFHUIUFUKSVTGHILXIQORVQVCVRVS $.
  $}

  ${
    $d x W $.
    $( A topological vector space is a topological group.  (Contributed by
       Mario Carneiro, 5-Oct-2015.) $)
    tlmtgp $p |- ( W e. TopMod -> W e. TopGrp ) $=
      ( vx ctlm wcel cgrp ctmd cminusg cfv ctopn ccn co ctgp syl cmpt eqid ctps
      cbs ctopon istps sylib clmod tlmlmod lmodgrp tlmtmd csca cv cvsca grpinvf
      cur wf feqmptd wceq lmodvneg1 sylan mpteq2dva eqtr4d tlmtps tlmscatps crg
      lmodring ringgrp ringidcl syl2anc cnmptc cnmptid cnmpt1vsca eqeltrd istgp
      id grpinvcl syl3anbrc ) ACDZAEDZAFDAGHZAIHZVOJKZDALDVLAUADZVMAUBZAUCMZAUD
      VLVNBAQHZAUEHZUIHZWAGHZHZBUFZAUGHZKZNZVPVLVNBVTWEVNHZNWHVLBVTVTVNVLVMVTVT
      VNUJVSVTAVNVTOZVNOZUHMUKVLBVTWGWIVLVQWEVTDWGWIULVRWFWBWAWCVNVTAWEWJWKWAOZ
      WFOZWBOZWCOZUMUNUOUPVLBWDWEWFWAVOWAIHZVOAVTWLWMVOOZWPOZVLVIVLAPDVOVTRHDAU
      QVTVOAWJWQSTZVLBWDVOWPVTWAQHZWSVLWAPDWPWTRHDWAAWLURWTWPWAWTOZWRSTVLWAEDZW
      BWTDZWDWTDVLWAUSDZXBVLVQXDVRWAAWLUTMZWAVAMVLXDXCXEWTWAWBXAWNVBMWTWAWCWBXA
      WOVJVCVDVLBVOVTWSVEVFVGAVNVOWQWKVHVK $.
  $}

  $( A topological vector space is a topological module.  (Contributed by Mario
     Carneiro, 5-Oct-2015.) $)
  tvctlm $p |- ( W e. TopVec -> W e. TopMod ) $=
    ( ctvc wcel ctlm csca cfv ctdrg eqid istvc simplbi ) ABCADCAEFZGCKAKHIJ $.

  $( A topological vector space is a left module.  (Contributed by Mario
     Carneiro, 5-Oct-2015.) $)
  tvclmod $p |- ( W e. TopVec -> W e. LMod ) $=
    ( ctvc wcel ctlm clmod tvctlm tlmlmod syl ) ABCADCAECAFAGH $.

  $( A topological vector space is a vector space.  (Contributed by Mario
     Carneiro, 5-Oct-2015.) $)
  tvclvec $p |- ( W e. TopVec -> W e. LVec ) $=
    ( ctvc wcel clmod csca cfv clvec tvclmod ctdrg eqid tvctdrg tdrgdrng islvec
    cdr syl sylanbrc ) ABCZADCAEFZNCZAGCAHQRICSRARJZKRLORATMP $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Uniform Structures and Spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Uniform structures
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c UnifOn $. $( The class function of uniform structures over a base set. $)

  $( Extend class notation with the class function of uniform structures. $)
  cust $a class UnifOn $.

  ${
    $d x u v w $.
    $( Definition of a uniform structure.  Definition 1 of [BourbakiTop1] p.
       II.1.  A uniform structure is used to give a generalization of the idea
       of Cauchy's sequence.  This definition is analogous to ` TopOn ` .
       Elements of an uniform structure are called entourages.  (Contributed by
       FL, 29-May-2014.)  (Revised by Thierry Arnoux, 15-Nov-2017.) $)
    df-ust $a |- UnifOn = ( x e. _V |-> { u | ( u C_ ~P ( x X. x )
       /\ ( x X. x ) e. u /\ A. v e. u (
          A. w e. ~P ( x X. x ) ( v C_ w -> w e. u )
               /\ A. w e. u ( v i^i w ) e. u
               /\ ( ( _I |` x ) C_ v
                    /\ `' v e. u
                    /\ E. w e. u ( w o. w ) C_ v ) ) ) } ) $.
  $}

  ${
    $d u v w x $.
    $( The defined uniform structure as a function.  (Contributed by Thierry
       Arnoux, 15-Nov-2017.) $)
    ustfn $p |- UnifOn Fn _V $=
      ( vx vu vv vw cvv cv cxp cpw wss wcel wral cin cid cres ccnv ccom w3a cab
      wi pwex wrex cust selpw abbii abid2 vex xpex eqeltri eqeltrri simp1 ssexi
      ss2abi df-ust fnmpti ) AEBFZAFZUPGZHZIZUQUOJZCFZDFZIVBUOJSDURKVAVBLUOJDUO
      KMUPNVAIVAOUOJVBVBPVAIDUOUAQQCUOKZQZBRZUBVEUSBRZUOURHZJZBRZVFEVHUSBBURUCU
      DVIVGEBVGUEURUQUPUPAUFZVJUGTTUHUIVDUSBUSUTVCUJULUKADCBUMUN $.
  $}

  ${
    $d x V $.  $d u v w x X $.
    $( The class of all uniform structures for a base ` X ` .  (Contributed by
       Thierry Arnoux, 15-Nov-2017.)  (Revised by AV, 17-Sep-2021.) $)
    ustval $p |- ( X e. V -> ( UnifOn ` X ) = { u | ( u C_ ~P ( X X. X ) /\
        ( X X. X ) e. u /\ A. v e. u (
          A. w e. ~P ( X X. X ) ( v C_ w -> w e. u )
               /\ A. w e. u ( v i^i w ) e. u
               /\ ( ( _I |` X ) C_ v
                    /\ `' v e. u
                    /\ E. w e. u ( w o. w ) C_ v ) ) ) } ) $=
      ( vx wcel cv cxp cpw wss wral cid cres w3a cab cvv cust wceq pwexg wel wi
      cin ccnv ccom wrex cmpt df-ust a1i id sqxpeqd pweqd sseq2d eleq1d raleqdv
      reseq2 sseq1d 3anbi1d 3anbi13d ralbidv 3anbi123d abbidv adantl elex simp1
      ss2abi df-pw sseqtr4i sqxpexg 3syl ssexg sylancr fvmptd ) EDGZFECHZFHZVPI
      ZJZKZVQVOGZBHZAHZKACUAUBZAVRLZWAWBUCVOGAVOLZMVPNZWAKZWAUDVOGZWBWBUEWAKAVO
      UFZOZOZBVOLZOZCPZVOEEIZJZKZWOVOGZWCAWPLZWEMENZWAKZWHWIOZOZBVOLZOZCPZQRQRF
      QWNUGSVNFABCUHUIVPESZWNXFSVNXGWMXECXGVSWQVTWRWLXDXGVRWPVOXGVQWOXGVPEXGUJU
      KZULZUMXGVQWOVOXHUNXGWKXCBVOXGWDWSWJXBWEXGWCAVRWPXIUOXGWGXAWHWIXGWFWTWAVP
      EMUPUQURUSUTVAVBVCEDVDVNXFWPJZKXJQGZXFQGXFWQCPXJXEWQCWQWRXDVEVFCWPVGVHVNW
      OQGWPQGXKEDVIWOQTWPQTVJXFXJQVKVLVM $.
  $}

  ${
    $d u v w U $.  $d u v w X $.
    $( The predicate " ` U ` is a uniform structure with base ` X ` ."
       (Contributed by Thierry Arnoux, 15-Nov-2017.)  (Revised by AV,
       17-Sep-2021.) $)
    isust $p |- ( X e. V -> ( U e. ( UnifOn ` X ) <-> ( U C_ ~P ( X X. X ) /\
      ( X X. X ) e. U /\ A. v e. U (
          A. w e. ~P ( X X. X ) ( v C_ w -> w e. U )
               /\ A. w e. U ( v i^i w ) e. U
               /\ ( ( _I |` X ) C_ v
                    /\ `' v e. U
                    /\ E. w e. U ( w o. w ) C_ v ) ) ) ) ) $=
      ( vu wcel cust cfv cv wss wi wral wrex w3a cvv eleq2 raleqbi1dv 3anbi123d
      syl cxp cpw wel cin cid cres ccnv ccom cab ustval eleq2d wb simp1 sqxpexg
      wa pwexg adantr simpr ssexd syl5 wceq sseq1 imbi2d ralbidv rexeq 3anbi23d
      ex elab3g bitrd ) EDGZCEHIZGCFJZEEUAZUBZKZVMVLGZBJZAJZKZAFUCZLZAVNMZVQVRU
      DZVLGZAVLMZUEEUFVQKZVQUGZVLGZVRVRUHVQKZAVLNZOZOZBVLMZOZFUIZGZCVNKZVMCGZVS
      VRCGZLZAVNMZWCCGZACMZWFWGCGZWIACNZOZOZBCMZOZVJVKWOCABFDEUJUKVJXICPGZLWPXI
      ULXIWQVJXJWQWRXHUMVJWQXJVJWQUOCVNPVJVNPGZWQVJVMPGXKEDUNVMPUPTUQVJWQURUSVG
      UTWNXIFCPVLCVAZVOWQVPWRWMXHVLCVNVBVLCVMQWLXGBVLCXLWBXAWEXCWKXFXLWAWTAVNXL
      VTWSVSVLCVRQVCVDWDXBAVLCVLCWCQRXLWHXDWJXEWFVLCWGQWIAVLCVEVFSRSVHTVI $.

    $d v w V $.
    $( Entourages are subsets of the Cartesian product of the base set.
       (Contributed by Thierry Arnoux, 19-Nov-2017.) $)
    ustssxp $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U ) -> V C_ ( X X. X ) ) $=
      ( vv vw cust cfv wcel wa cxp cpw wss cv wi wral cin cid cres w3a cvv ccnv
      ccom wrex wb elfvex isust syl ibi simp1d sselda elpwid ) ACFGHZBAHIBCCJZU
      LAUMKZBULAUNLZUMAHZDMZEMZLURAHNEUNOUQURPAHEAOQCRUQLUQUAAHURURUBUQLEAUCSSD
      AOZULUOUPUSSZULCTHULUTUDACFUEEDATCUFUGUHUIUJUK $.

    $d w W $.
    $( A uniform structure is upward closed.  Condition F_I of [BourbakiTop1]
       p.  I.36.  (Contributed by Thierry Arnoux, 19-Nov-2017.)  (Proof
       shortened by AV, 17-Sep-2021.) $)
    ustssel $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U /\ W C_ ( X X. X ) )
      -> ( V C_ W -> W e. U ) ) $=
      ( vv vw cust cfv wcel cxp wss w3a cv wi wral simp1 cvv syl syl2anc wceq
      cpw cin cid cres ccnv ccom wrex wb elfvexd isust mpbid simp3d simp2 xpexg
      ralimi simp3 sselpwd sseq1 imbi1d sseq2 eleq1 imbi12d rspc2v mpd ) ADGHIZ
      BAIZCDDJZKZLZEMZFMZKZVKAIZNZFVGUAZOZEAOZBCKZCAIZNZVIVPVJVKUBAIFAOZUCDUDVJ
      KVJUEAIVKVKUFVJKFAUGLZLZEAOZVQVIAVOKZVGAIZWDVIVEWEWFWDLZVEVFVHPZVIDQIZVEW
      GUHVIAGDWHUIZFEAQDUJRUKULWCVPEAVPWAWBPUORVIVFCVOIVQVTNVEVFVHUMVICVGQVIWIW
      IVGQIWJWJDDQQUNSVEVFVHUPUQVNVTBVKKZVMNEFBCAVOVJBTVLWKVMVJBVKURUSVKCTWKVRV
      MVSVKCBUTVKCAVAVBVCSVD $.

    $( The full set is always an entourage.  Condition F_IIb of [BourbakiTop1]
       p.  I.36.  (Contributed by Thierry Arnoux, 19-Nov-2017.) $)
    ustbasel $p |- ( U e. ( UnifOn ` X ) -> ( X X. X ) e. U ) $=
      ( vv vw cust cfv wcel cxp cpw wss cv wral cin cid cres ccnv ccom w3a cvv
      wi wrex wb elfvex isust syl ibi simp2d ) ABEFGZABBHZIZJZUIAGZCKZDKZJUNAGT
      DUJLUMUNMAGDALNBOUMJUMPAGUNUNQUMJDAUARRCALZUHUKULUORZUHBSGUHUPUBABEUCDCAS
      BUDUEUFUG $.

    $( A uniform structure is closed under finite intersection.  Condition F_II
       of [BourbakiTop1] p.  I.36.  (Contributed by Thierry Arnoux,
       30-Nov-2017.) $)
    ustincl $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U /\ W e. U )
      -> ( V i^i W ) e. U ) $=
      ( vw vv cust wcel cin cv wral wss ccnv wrex w3a cvv wceq ralbidv eleq1d
      wi cfv wa cxp cpw cid cres ccom wb elfvex isust simp3d sseq1 imbi1d ineq1
      syl ibi sseq2 cnveq rexbidv 3anbi123d rspcv mpan9 simp2d ineq2 3impa ) AD
      GUAHZBAHZCAHZBCIZAHZVFVGUBZBEJZIZAHZEAKZVHVJVKBVLLZVLAHZTZEDDUCZUDZKZVOUE
      DUFZBLZBMZAHZVLVLUGZBLZEANZOZVFFJZVLLZVQTZEVTKZWJVLIZAHZEAKZWBWJLZWJMZAHZ
      WFWJLZEANZOZOZFAKZVGWAVOWIOZVFAVTLZVSAHZXDVFXFXGXDOZVFDPHVFXHUHADGUIEFAPD
      UJUOUPUKXCXEFBAWJBQZWMWAWPVOXBWIXIWLVREVTXIWKVPVQWJBVLULUMRXIWOVNEAXIWNVM
      AWJBVLUNSRXIWQWCWSWEXAWHWJBWBUQXIWRWDAWJBURSXIWTWGEAWJBWFUQUSUTUTVAVBVCVN
      VJECAVLCQVMVIAVLCBVDSVAVBVE $.

    $( The diagonal set is included in any entourage, i.e. any point is ` V `
       -close to itself.  Condition U_I of [BourbakiTop1] p.  II.1.
       (Contributed by Thierry Arnoux, 2-Dec-2017.) $)
    ustdiag $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U ) -> ( _I |` X ) C_ V ) $=
      ( vw vv cust wcel wss ccnv cv wrex wral cin w3a cvv simp3d ralbidv eleq1d
      wi sseq2 cfv wa cid cres ccom cxp cpw wb elfvex isust syl ibi wceq imbi1d
      sseq1 ineq1 cnveq rexbidv 3anbi123d rspcv mpan9 simp1d ) ACFUAGZBAGZUBZUC
      CUDZBHZBIZAGZDJZVJUEZBHZDAKZVEBVJHZVJAGZSZDCCUFZUGZLZBVJMZAGZDALZVGVIVMNZ
      VCEJZVJHZVOSZDVRLZWDVJMZAGZDALZVFWDHZWDIZAGZVKWDHZDAKZNZNZEALZVDVSWBWCNZV
      CAVRHZVQAGZWRVCWTXAWRNZVCCOGVCXBUHACFUIDEAOCUJUKULPWQWSEBAWDBUMZWGVSWJWBW
      PWCXCWFVPDVRXCWEVNVOWDBVJUOUNQXCWIWADAXCWHVTAWDBVJUPRQXCWKVGWMVIWOVMWDBVF
      TXCWLVHAWDBUQRXCWNVLDAWDBVKTURUSUSUTVAPVB $.

    $( If ` V ` is an entourage, so is its inverse.  Condition U_II of
       [BourbakiTop1] p.  II.1.  (Contributed by Thierry Arnoux,
       2-Dec-2017.) $)
    ustinvel $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U ) -> `' V e. U ) $=
      ( vw vv cust wcel wss ccnv cv wrex wral cin w3a cvv simp3d ralbidv eleq1d
      wi sseq2 cfv wa cid cres ccom cxp cpw wb elfvex isust syl ibi wceq imbi1d
      sseq1 ineq1 cnveq rexbidv 3anbi123d rspcv mpan9 simp2d ) ACFUAGZBAGZUBZUC
      CUDZBHZBIZAGZDJZVJUEZBHZDAKZVEBVJHZVJAGZSZDCCUFZUGZLZBVJMZAGZDALZVGVIVMNZ
      VCEJZVJHZVOSZDVRLZWDVJMZAGZDALZVFWDHZWDIZAGZVKWDHZDAKZNZNZEALZVDVSWBWCNZV
      CAVRHZVQAGZWRVCWTXAWRNZVCCOGVCXBUHACFUIDEAOCUJUKULPWQWSEBAWDBUMZWGVSWJWBW
      PWCXCWFVPDVRXCWEVNVOWDBVJUOUNQXCWIWADAXCWHVTAWDBVJUPRQXCWKVGWMVIWOVMWDBVF
      TXCWLVHAWDBUQRXCWNVLDAWDBVKTURUSUSUTVAPVB $.

    $( For each entourage ` V ` there is an entourage ` w ` that is "not more
       than half as large".  Condition U_III of [BourbakiTop1] p.  II.1.
       (Contributed by Thierry Arnoux, 2-Dec-2017.) $)
    ustexhalf $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U )
      -> E. w e. U ( w o. w ) C_ V ) $=
      ( vv cust wcel wss ccnv cv wrex wi wral cin w3a cvv simp3d ralbidv eleq1d
      sseq2 cfv wa cid cres ccom cxp cpw elfvex isust syl ibi wceq sseq1 imbi1d
      wb ineq1 cnveq rexbidv 3anbi123d rspcv mpan9 ) BDFUAGZCBGZUBZUCDUDZCHZCIZ
      BGZAJZVIUEZCHZABKZVDCVIHZVIBGZLZADDUFZUGZMZCVINZBGZABMZVFVHVLOZVBEJZVIHZV
      NLZAVQMZWCVINZBGZABMZVEWCHZWCIZBGZVJWCHZABKZOZOZEBMZVCVRWAWBOZVBBVQHZVPBG
      ZWQVBWSWTWQOZVBDPGVBXAUOBDFUHAEBPDUIUJUKQWPWRECBWCCULZWFVRWIWAWOWBXBWEVOA
      VQXBWDVMVNWCCVIUMUNRXBWHVTABXBWGVSBWCCVIUPSRXBWJVFWLVHWNVLWCCVETXBWKVGBWC
      CUQSXBWMVKABWCCVJTURUSUSUTVAQQ $.

    $( The elements of uniform structures, called entourages, are relations.
       (Contributed by Thierry Arnoux, 15-Nov-2017.) $)
    ustrel $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U ) -> Rel V ) $=
      ( cust cfv wcel wa cvv cxp wss wrel ustssxp xpss syl6ss df-rel sylibr ) A
      CDEFBAFGZBHHIZJBKQBCCIRABCLCCMNBOP $.

    $( A uniform structure on a nonempty base is a filter.  Remark 3 of
       [BourbakiTop1] p.  II.2.  (Contributed by Thierry Arnoux,
       15-Nov-2017.) $)
    ustfilxp $p |- ( ( X =/= (/) /\ U e. ( UnifOn ` X ) )
      -> U e. ( Fil ` ( X X. X ) ) ) $=
      ( vw vv c0 wne cfv wcel cpw cin wral wss w3a cvv syl simp1d ne0i r19.21bi
      wa wb cust cxp cfbas cv wi cfil wnel cid cres ccnv ccom wrex elfvex isust
      ibi adantl simp2d simp3d cop vex opelresi ax-mp biimpri rgen r19.2z mpan2
      wn ad2antrr rexlimivw ssn0 syl2anc nelrdva df-nel sylibr inex2 pwid elind
      a1i ralrimiva 3jca xpexg isfbas mpbir2and wex n0 selpw anbi2i bitri exbii
      elin an32s expimpd exlimdv syl5bi isfil sylanbrc ) BEFZABUAGHZSZABBUBZUCG
      HZACUDZIZJZEFZXBAHZUEZCWTIZKAWTUFGHWSXAAXHLZAEFZEAUGZADUDZXBJZIZJZEFZCAKZ
      DAKZMZWSXIWTAHZXLXBLZXFUEZCXHKZXMAHZCAKZUHBUIZXLLZXLUJAHZXBXBUKXLLCAULZMZ
      MZDAKZWRXIXTYLMZWQWRYMWRBNHZWRYMTABUAUMZCDANBUNOUOUPZPWSXJXKXRWSXTXJWSXIX
      TYLYPUQAWTQOWSEAHVGXKWSDAEWSXLAHZSZYGYFEFZXLEFYRYGYHYIYRYCYEYJWSYKDAWSXIX
      TYLYPURRZURPYRXBXBUSZYFHZCBULZYSWQUUCWRYQWQUUBCBKUUCUUBCBUUBXBBHZXBNHUUBU
      UDTCUTZXBBNVAVBVCVDUUBCBVEVFVHUUBYSCBYFUUAQVIOYFXLVJVKVLEAVMVNWSXQDAYRXPC
      AYRXFSZXMXOHXPUUFAXNXMYRYDCAYRYCYEYJYTUQRXMXNHUUFXMXBXLUUEVOVPVRVQXOXMQOV
      SVSVTWRXAXIXSSTZWQWRWTNHZUUGWRYNYNUUHYOYOBBNNWAVKDCNWTAWBOUPWCWSXGCXHXEYQ
      YASZDWDZWSXBXHHZSZXFXEXLXDHZDWDUUJDXDWEUUMUUIDUUMYQXLXCHZSUUIXLAXCWJUUNYA
      YQDXBWFWGWHWIWHUULUUIXFDUULYQYAXFWSYQUUKYBYRYBCXHYRYCYEYJYTPRWKWLWMWNVSCA
      WTWOWP $.
  $}

  $( A uniform structure cannot be empty.  (Contributed by Thierry Arnoux,
     16-Nov-2017.) $)
  ustne0 $p |- ( U e. ( UnifOn ` X ) -> U =/= (/) ) $=
    ( cust cfv wcel cxp c0 wne ustbasel ne0i syl ) ABCDEBBFZAEAGHABIALJK $.

  $( In an uniform structure, any entourage ` V ` is a subset of its
     composition with itself.  (Contributed by Thierry Arnoux, 5-Jan-2018.) $)
  ustssco $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U ) -> V C_ ( V o. V ) ) $=
    ( cust cfv wcel wa cid cres cun ccom ssun1 coires1 wrel cdm wss wceq ustrel
    cxp ustssxp dmss syl dmxpid syl6sseq syl2anc syl5eq uneq1d syl5sseqr coundi
    relssres syl6sseqr ustdiag ssequn1 sylib coeq2d sseqtrd ) ACDEFBAFGZBBHCIZB
    JZKZBBKZUQBBURKZVAJZUTUQBVAJBVCBVALUQVBBVAUQVBBCIZBBCMUQBNBOZCPVDBQABCRUQVE
    CCSZOZCUQBVFPVEVGPABCTBVFUAUBCUCUDBCUJUEUFUGUHBURBUIUKUQUSBBUQURBPUSBQABCUL
    URBUMUNUOUP $.

  ${
    $d w x U $.  $d w x V $.  $d x X $.
    $( In an uniform structure, for any entourage ` V ` , there exists a
       smaller symmetrical entourage.  (Contributed by Thierry Arnoux,
       4-Jan-2018.) $)
    ustexsym $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U )
      -> E. w e. U ( `' w = w /\ w C_ V ) ) $=
      ( vx cust cfv wcel wa ccom wss ccnv wceq wrex cin simplll simplr ustinvel
      cv syl2anc ustincl syl3anc ustrel dfrel2 sylib ineq1d cnvin incom 3eqtr4g
      wrel inss2 ustssco simpr sstrd syl5ss cnveq eqeq12d sseq1 rspcev syl12anc
      id anbi12d ustexhalf r19.29a ) BDFGHZCBHZIZESZVHJZCKZASZLZVKMZVKCKZIZABNZ
      EBVGVHBHZIZVJIZVHLZVHOZBHZWALZWAMZWACKZVPVSVEVTBHZVQWBVEVFVQVJPZVSVEVQWFW
      GVGVQVJQZBVHDRTWHBVTVHDUAUBVSVEVQWDWGWHVEVQIZVTLZVTOVHVTOWCWAWIWJVHVTWIVH
      UJWJVHMBVHDUCVHUDUEUFVTVHUGVTVHUHUITVSWAVHCVTVHUKVSVHVICVSVEVQVHVIKWGWHBV
      HDULTVRVJUMUNUOVOWDWEIAWABVKWAMZVMWDVNWEWKVLWCVKWAVKWAUPWKVAUQVKWACURVBUS
      UTEBCDVCVD $.
  $}

  ${
    $d v w U $.  $d v w V $.  $d v w X $.
    $( In an uniform structure, for any entourage ` V ` , there exists a
       symmetrical entourage smaller than half ` V ` .  (Contributed by Thierry
       Arnoux, 16-Jan-2018.) $)
    ustex2sym $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U )
      -> E. w e. U ( `' w = w /\ ( w o. w ) C_ V ) ) $=
      ( vv cust cfv wcel wa cv ccom wss ccnv wceq wrex simplll ustexsym syl2anc
      simplr sstrd simprl coss1 coss2 ad2antll simpllr jca reximdva mpd r19.29a
      ex ustexhalf ) BDFGHZCBHZIZEJZUOKZCLZAJZMURNZURURKZCLZIZABOZEBUNUOBHZIZUQ
      IZUSURUOLZIZABOZVCVFULVDVIULUMVDUQPUNVDUQSABUODQRVFVHVBABVFURBHZIZVHVBVKV
      HIZUSVAVKUSVGUAVLUTUPCVGUTUPLVKUSVGUTUOURKUPURUOURUBURUOUOUCTUDVEUQVJVHUE
      TUFUJUGUHEBCDUKUI $.
  $}

  ${
    $d v w U $.  $d v w V $.  $d v w X $.
    $( In an uniform structure, for any entourage ` V ` , there exists a
       symmetrical entourage smaller than a third of ` V ` .  (Contributed by
       Thierry Arnoux, 16-Jan-2018.) $)
    ustex3sym $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U )
      -> E. w e. U ( `' w = w /\ ( w o. ( w o. w ) ) C_ V ) ) $=
      ( vv cust cfv wcel wa cv ccom wss ccnv wceq wrex simplll simplr ustex2sym
      syl2anc sstrd simprl simp-5l ustssco simprr coss2 adantl sstr syl simpllr
      coss1 jca ex reximdva mpd ustexhalf r19.29a ) BDFGHZCBHZIZEJZUTKZCLZAJZMV
      CNZVCVCVCKZKZCLZIZABOZEBUSUTBHZIZVBIZVDVEUTLZIZABOZVIVLUQVJVOUQURVJVBPUSV
      JVBQABUTDRSVLVNVHABVLVCBHZIZVNVHVQVNIZVDVGVQVDVMUAVRVFVACVRVCVELZVMVFVALV
      RUQVPVSUQURVJVBVPVNUBVLVPVNQBVCDUCSVQVDVMUDVSVMIZVFVCUTKZVAVMVFWALVSVEUTV
      CUEUFVTVCUTLWAVALVCVEUTUGVCUTUTUJUHTSVKVBVPVNUITUKULUMUNEBCDUOUP $.
  $}

  $( Any element of the base set is "near" itself, i.e. entourages are
     reflexive.  (Contributed by Thierry Arnoux, 16-Nov-2017.) $)
  ustref $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U /\ A e. X ) -> A V A ) $=
    ( cust cfv wcel w3a cid cres wbr wa wceq eqid resieq mpbiri anidms 3ad2ant3
    wi ustdiag ssbrd 3adant3 mpd ) BDEFGZCBGZADGZHAAIDJZKZAACKZUFUDUHUEUFUHUFUF
    LUHAAMANDAAOPQRUDUEUHUISUFUDUELUGCAABCDTUAUBUC $.

  ${
    $d u v w $.
    $( The unique uniform structure of the empty set is the empty set.  Remark
       3 of [BourbakiTop1] p.  II.2.  (Contributed by Thierry Arnoux,
       15-Nov-2017.) $)
    ust0 $p |- ( UnifOn ` (/) ) = { { (/) } } $=
      ( vu vv vw c0 cv wcel wceq wss wi wral cin wrex w3a cvv 0ex ax-mp eqeltri
      sseq2 ralsn mpbir cust cfv csn cxp cpw cid cres ccnv wb isust simp1bi 0xp
      ccom pweqi pw0 eqtri syl6sseq ustbasel syl5eqelr snssd eqssd velsn sylibr
      ssriv eqimss2i snid raleqi eleq1 imbi12d bitri inidm ineq2 eleq1d eqimssi
      a1i res0 cnv0 0trrel id coeq12d sseq1d rexsn 3pm3.2i sseq1 imbi1d ralbidv
      ineq1 cnveq rexbidv 3anbi123d mpbir3an snssi eqssi ) DUAUBZDUCZUCZAWNWPAE
      ZWNFZWQWOGWQWPFWRWQWOWRWQDDUDZUEZWOWRWQWTHZWSWQFZBEZCEZHZXDWQFICWTJXCXDKZ
      WQFCWQJUFDUGZXCHZXCUHZWQFXDXDUMZXCHZCWQLMMBWQJZDNFZWRXAXBXLMUIOCBWQNDUJPU
      KWTDUEWOWSDDULZUNUOUPZUQWRDWQWRDWSWQXNWQDURUSUTVAAWOVBVCVDWOWNFZWPWNHXPWO
      WTHZWSWOFZXEXDWOFZIZCWTJZXFWOFZCWOJZXHXIWOFZXKCWOLZMZMZBWOJZWTWOXOVEWSDWO
      XNDOVFZQYHDXDHZXSIZCWTJZDXDKZWOFZCWOJZXGDHZDUHZWOFZXJDHZCWOLZMZYLDDHZDWOF
      ZIZUUCUUBYIVOYLYKCWOJUUDYKCWTWOXOVGYKUUDCDOXDDGZYJUUBXSUUCXDDDRXDDWOVHVIS
      VJTYODDKZWOFZUUFDWODVKYIQYNUUGCDOUUEYMUUFWOXDDDVLVMSTYPYRYTXGDUFVPVNYQDWO
      VQYIQYTDDUMZDHZVRYSUUICDOUUEXJUUHDUUEXDDXDDUUEVSZUUJVTWAWBTWCYGYLYOUUAMBD
      OXCDGZYAYLYCYOYFUUAUUKXTYKCWTUUKXEYJXSXCDXDWDWEWFUUKYBYNCWOUUKXFYMWOXCDXD
      WGVMWFUUKXHYPYDYRYEYTXCDXGRUUKXIYQWOXCDWHVMUUKXKYSCWOXCDXJRWIWJWJSWKXMXPX
      QXRYHMUIOCBWONDUJPWKWOWNWLPWM $.
  $}

  ${
    $d u v w x $.
    $( The empty set is not an uniform structure.  (Contributed by Thierry
       Arnoux, 3-Dec-2017.) $)
    ustn0 $p |- -. (/) e. U. ran UnifOn $=
      ( vx vu vv vw c0 cust wcel cv cab mtbir cpw wss wral wrex w3a wceq ss2abi
      cvv pwex ax-mp crn cuni cfv wex cxp noel 0ex eleq2 elab cin cid cres ccnv
      wi ccom selpw abbii abid2 xpex eqeltri eqeltrri simp1 ssexi df-ust fvmpt2
      vex mp2an simp2 eqsstri sseli mto nex cdm wfun funmpt2 elunirn ustfn fndm
      wb wfn rexeqi rexv 3bitri ) EFUAUBGZEAHZFUCZGZAUDZWGAWGEWEWEUEZBHZGZBIZGZ
      WMWIEGZWIUFWKWNBEUGWJEWIUHUIJWFWLEWFWJWIKZLZWKCHZDHZLWRWJGUNDWOMWQWRUJWJG
      DWJMUKWEULWQLWQUMWJGWRWRUOWQLDWJNOOCWJMZOZBIZWLWERGXARGWFXAPAVFZXAWPBIZWJ
      WOKZGZBIZXCRXEWPBBWOUPUQXFXDRBXDURWOWIWEWEXBXBUSSSUTVAWTWPBWPWKWSVBQVCARX
      ARFADCBVDZVEVGWTWKBWPWKWSVHQVIVJVKVLWDWGAFVMZNZWGARNWHFVNWDXIVSARXAFXGVOA
      EFVPTWGAXHRFRVTXHRPVQRFVRTWAWGAWBWCJ $.
  $}

  ${
    ustund.1 $e |- ( ph -> ( A X. A ) C_ V ) $.
    ustund.2 $e |- ( ph -> ( B X. B ) C_ V ) $.
    ustund.3 $e |- ( ph -> ( A i^i B ) =/= (/) ) $.
    $( If two intersecting sets ` A ` and ` B ` are both small in ` V ` , their
       union is small in ` ( V ^ 2 ) ` .  Proposition 1 of [BourbakiTop1] p.
       II.12.  This proposition actually does not require any axiom of the
       definition of uniform structures.  (Contributed by Thierry Arnoux,
       17-Nov-2017.) $)
    ustund $p |- ( ph -> ( ( A u. B ) X. ( A u. B ) ) C_ ( V o. V ) ) $=
      ( cun cxp cin ccom syl xpindi inss1 syl5ss syl5eqss inss2 unssd xpindir
      wss c0 wne wceq xpco xpundir coss2 xpundi coss1 sstrd eqsstr3d ) ABCHZUKI
      ZBCJZUKIZUKUMIZKZDDKZAUMUAUBUPULUCGUKUMUKUDLAUPUNDKZUQAUODTUPURTAUOBUMIZC
      UMIZHDBCUMUEAUSUTDAUSBBIZBCIZJZDBBCMAVCVADVAVBNEOPAUTCBIZCCIZJZDCBCMAVFVE
      DVDVEQFOPRPUODUNUFLAUNDTURUQTAUNUMBIZUMCIZHDUMBCUGAVGVHDAVGVAVDJZDBCBSAVI
      VADVAVDNEOPAVHVBVEJZDBCCSAVJVEDVBVEQFOPRPUNDDUHLUIUJ $.
  $}

  $( Any point ` A ` is near enough to itself.  (Contributed by Thierry Arnoux,
     18-Nov-2017.) $)
  ustelimasn $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U /\ A e. X )
    -> A e. ( V " { A } ) ) $=
    ( cust cfv wcel w3a cop csn cima cid cres wss ustdiag 3adant3 opelresi ibir
    simp3 3ad2ant3 sseldd wb elimasng anidms biimpar syl2anc ) BDEFGZCBGZADGZHZ
    UIAAIZCGZACAJKGZUGUHUISUJLDMZCUKUGUHUNCNUIBCDOPUIUGUKUNGZUHUIUOADDQRTUAUIUM
    ULUIUMULUBCAADDUCUDUEUF $.

  $( For a point ` A ` in ` X ` , ` ( V " { A } ) ` is small enough in
     ` ( V o. ``' V ) ` .  This proposition actually does not require any axiom
     of the definition of uniform structures.  (Contributed by Thierry Arnoux,
     18-Nov-2017.) $)
  ustneism $p |- ( ( V C_ ( X X. X ) /\ A e. X )
    -> ( ( V " { A } ) X. ( V " { A } ) ) C_ ( V o. `' V ) ) $=
    ( cxp wss wcel wa csn cima ccom ccnv c0 wne wceq snnzg adantl xpco eqsstr3i
    syl mp1i cnvxp ressn cnveqi resss cnvss ax-mp coss2 coss1 sstrd eqsstr3d
    cres ) BCCDEZACFZGZBAHZIZUPDZUOUPDZUPUODZJZBBKZJZUNUOLMZUTUQNUMVCULACOPUPUO
    UPQSUNUTURVAJZVBUSVAEUTVDEUNUSURKZVAUOUPUAVEBUOUKZKZVAVFURBAUBZUCVFBEVGVAEB
    UOUDZVFBUEUFRRUSVAURUGTURBEVDVBEUNURVFBVHVIRURBVAUHTUIUJ $.

  ${
    $d x U $.  $d x X $.
    $( First direction for ~ ustbas .  (Contributed by Thierry Arnoux,
       16-Nov-2017.) $)
    elrnust $p |- ( U e. ( UnifOn ` X ) -> U e. U. ran UnifOn ) $=
      ( vx cust cfv wcel cv cdm wrex crn cuni elfvdm wceq eleq2d rspcev mpancom
      fveq2 cvv wfn wfun wb ustfn fnfun elunirn mp2b sylibr ) ABDEZFZACGZDEZFZC
      DHZIZADJKFZBULFUHUMABDLUKUHCBULUIBMUJUGAUIBDQNOPDRSDTUNUMUAUBRDUCCADUDUEU
      F $.
  $}

  ${
    $d v w U $.  $d v w X $.
    $( Second direction for ~ ustbas .  (Contributed by Thierry Arnoux,
       16-Nov-2017.) $)
    ustbas2 $p |- ( U e. ( UnifOn ` X ) -> X = dom U. U ) $=
      ( vv vw cust cfv wcel cxp cdm cuni dmxpid wss ustbasel elssuni syl cpw cv
      wral w3a cvv wi cin cid cres ccnv ccom wrex wb elfvex isust simp1d unissd
      ibi unipw syl6sseq eqssd dmeqd syl5eqr ) ABEFGZBBBHZIAJZIBKUSUTVAUSUTVAUS
      UTAGZUTVALABMUTANOUSVAUTPZJUTUSAVCUSAVCLZVBCQZDQZLVFAGUADVCRVEVFUBAGDARUC
      BUDVELVEUEAGVFVFUFVELDAUGSSCARZUSVDVBVGSZUSBTGUSVHUHABEUIDCATBUJOUMUKULUT
      UNUOUPUQUR $.
  $}

  ${
    $d u U $.  $d u X $.
    $( The set union of a uniform structure is the Cartesian product of its
       base.  (Contributed by Thierry Arnoux, 5-Dec-2017.) $)
    ustuni $p |- ( U e. ( UnifOn ` X ) -> U. U = ( X X. X ) ) $=
      ( vu cust cfv wcel cxp cpw wss cuni wceq ustbasel cv wral ralrimiva pwssb
      ustssxp sylibr elpwuni biimpa syl2anc ) ABDEFZBBGZAFZAUCHIZAJUCKZABLUBCMZ
      UCIZCANUEUBUHCAAUGBQOCAUCPRUDUEUFAUCSTUA $.
  $}

  ${
    $d x U $.  $d x X $.
    ustbas.1 $e |- X = dom U. U $.
    $( Recover the base of an uniform structure ` U ` . ` U. ran UnifOn ` is to
       ` UnifOn ` what ` Top ` is to ` TopOn ` .  (Contributed by Thierry
       Arnoux, 16-Nov-2017.) $)
    ustbas $p |- ( U e. U. ran UnifOn <-> U e. ( UnifOn ` X ) ) $=
      ( vx cust crn cuni wcel cfv cv cdm wrex cvv wfun ustfn fnfun elunirn mp2b
      wfn wb ustbas2 syl6eqr fveq2d eleq2d ibi rexlimivw sylbi elrnust impbii )
      AEFGHZABEIZHZUJADJZEIZHZDEKZLZULEMSENUJUQTOMEPDAEQRUOULDUPUOULUOUNUKAUOUM
      BEUOUMAGKBAUMUACUBUCUDUEUFUGABUHUI $.
  $}

  $( Lemma for ~ ustuqtop .  (Contributed by Thierry Arnoux, 5-Dec-2017.) $)
  ustimasn $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U /\ P e. X )
    -> ( V " { P } ) C_ X ) $=
    ( cust cfv wcel w3a csn crn imassrn cxp wss ustssxp 3adant3 rnxpid syl6sseq
    cima rnss syl syl5ss ) BDEFGZCBGZADGZHZCAIZRCJZDCUFKUECDDLZMZUGDMUBUCUIUDBC
    DNOUIUGUHJDCUHSDPQTUA $.

  ${
    $d u v w x y A $.  $d u v w x y U $.  $d u v w x X $.
    $( The trace of a uniform structure ` U ` on a subset ` A ` is a uniform
       structure on ` A ` .  Definition 3 of [BourbakiTop1] p.  II.9.
       (Contributed by Thierry Arnoux, 2-Dec-2017.) $)
    trust $p |- ( ( U e. ( UnifOn ` X ) /\ A C_ X )
      -> ( U |`t ( A X. A ) ) e. ( UnifOn ` A ) ) $=
      ( vv vw vu vx wcel wss wa cv cin cid ccom wrex wceq simpr syl2anc ad5antr
      cvv vy cust cfv cxp crest co cpw wral cres ccnv w3a restsspw inxp sseqin2
      a1i biimpi sqxpeqd syl5eq adantl simpl elfvex adantr ssexd xpexg ustbasel
      wi elrestr syl3anc eqeltrrd cun simplr simp-4r elpwid sstrd ustssxp unssd
      xpss12 ssun2 ustssel mpi df-ss sylib uneq1d simpllr eqsstr3d eqtr2d indir
      ssequn2 syl6eqr ineq1 eqeq2d rspcev elrest biimpar biimpa syldanl r19.29a
      syl21anc ad2antrr ralrimiva ustincl simprl simprr ineq12d reeanv sylanbrc
      ex inindir r19.29vva simp-4l ustdiag cdm inss1 resss sstri iss mpbi ssel2
      wbr equid resieq mpbiri breq2 dminxp sylibr reseq2d syl5req ssrin eqsstrd
      sseqtr4d ad3antrrr ustinvel cnveqd cnvin cnvxp coss1 coss2 ax-mp mpbird
      3jca ineq2i eqtri syl6eq sstr mpan inss2 xpidtr ssind id sseq1d ustexhalf
      coeq12d adantlr ad4ant13 sseq2d rexbidv wb isust syl ) BCUBUCZHZACIZJZBAA
      UDZUEUFZAUBUCHZUVEUVDUGZIZUVDUVEHZDKZEKZIZUVKUVEHZVFZEUVGUHZUVJUVKLZUVEHZ
      EUVEUHZMAUIZUVJIZUVJUJZUVEHZUVKUVKNZUVJIZEUVEOZUKZUKZDUVEUHZUKZUVCUVHUVIU
      WHUVHUVCUVDBULUOUVCCCUDZUVDLZUVDUVEUVBUWKUVDPUVAUVBUWKCALZUWLUDUVDCCAAUMU
      VBUWLAUVBUWLAPACUNUPUQURUSUVCUVAUVDTHZUWJBHZUWKUVEHUVAUVBUTZUVCATHZUWPUWM
      UVCACTUVACTHUVBBCUBVAVBUVAUVBQZVCZUWRAATTVDRZUVAUWNUVBBCVEVBUWJUVDBUUTTVG
      VHVIUVCUWGDUVEUVCUVJUVEHZJZUVOUVRUWFUXAUVNEUVGUXAUVKUVGHZJZUVLUVMUXCUVLJZ
      UVJFKZUVDLZPZUVMFBUXDUXEBHZJZUXGJZUVAUWMUVKGKZUVDLZPZGBOZUVMUVCUVAUWTUXBU
      VLUXHUXGUWOSZUVCUWMUWTUXBUVLUXHUXGUWSSUXJUVKUXEVJZBHZUVKUXPUVDLZPZUXNUXJU
      VAUXHUXPUWJIZUXQUXOUXDUXHUXGVKZUXJUVKUXEUWJUXJUVKUVDUWJUXJUVKUVDUXAUXBUVL
      UXHUXGVLVMZUXJUVBUVBUVDUWJIUVCUVBUWTUXBUVLUXHUXGUWQSZUYCACACVQRVNUXJUVAUX
      HUXEUWJIUXOUYABUXECVORVPUVAUXHUXTUKUXEUXPIUXQUXEUVKVRBUXEUXPCVSVTVHUXJUVK
      UVKUVDLZUXFVJZUXRUXJUYEUVKUXFVJZUVKUXJUYDUVKUXFUXJUVKUVDIUYDUVKPUYBUVKUVD
      WAWBWCUXJUXFUVKIUYFUVKPUXJUXFUVJUVKUXIUXGQUXCUVLUXHUXGWDWEUXFUVKWHWBWFUVK
      UXEUVDWGWIUXMUXSGUXPBUXKUXPPUXLUXRUVKUXKUXPUVDWJWKWLRUVAUWMJZUVMUXNGUVKUV
      DBUUTTWMZWNWRUXAUXGFBOZUXBUVLUVAUVBUWMUWTUYIUWSUYGUWTUYIFUVJUVDBUUTTWMWOW
      PZWSWQXGWTUXAUVQEUVEUXAUVMJZUXGUXMJZUVQFGBBUYKUXHJZUXKBHZJZUYLJZUVAUWMUVP
      UAKZUVDLZPZUABOZUVQUVCUVAUWTUVMUXHUYNUYLUWOSZUVCUWMUWTUVMUXHUYNUYLUWSSUYP
      UXEUXKLZBHZUVPVUBUVDLZPZUYTUYPUVAUXHUYNVUCVUAUYKUXHUYNUYLWDUYMUYNUYLVKBUX
      EUXKCXAVHUYPUVPUXFUXLLVUDUYPUVJUXFUVKUXLUYOUXGUXMXBUYOUXGUXMXCXDUXEUXKUVD
      XHWIUYSVUEUAVUBBUYQVUBPUYRVUDUVPUYQVUBUVDWJWKWLRUYGUVQUYTUAUVPUVDBUUTTWMW
      NWRUYKUYIUXNUYLGBOFBOUXAUYIUVMUYJVBUYKUVAUWMUVMUXNUVCUVAUWTUVMUWOWSUVCUWM
      UWTUVMUWSWSUXAUVMQUYGUVMUXNUYHWOWRUXGUXMFGBBXEXFXIWTUXAUVTUWBUWEUXAUXGUVT
      FBUXAUXHJZUXGJZUVSUXFUVJVUGMCUIZUXEIZUVBUVSUXFIVUGUVAUXHVUIUVAUVBUWTUXHUX
      GXJZUXAUXHUXGVKZBUXECXKRUVAUVBUWTUXHUXGVLVUIUVBJUVSVUHUVDLZUXFUVBUVSVULPV
      UIUVBVULMVULXLZUIZUVSVULMIVULVUNPVULVUHMVUHUVDXMMCXNXOVULXPXQUVBVUMAMUVBU
      XEUVJVUHXSZDAOZFAUHVUMAPUVBVUPFAUVBUXEAHZJZVUQUXEUXEVUHXSZVUPUVBVUQQVURUX
      ECHZVUTVUSACUXEXRZVVAVUTVUTJVUSUXEUXEPFXTCUXEUXEYAYBRVUOVUSDUXEAUVJUXEUXE
      VUHYCWLRWTFDAAVUHYDYEYFYGUSVUIVULUXFIUVBVUHUXEUVDYHVBYIRVUFUXGQZYJUYJWQUX
      AUXGUWBFBVUGUVAUWMUWAUXLPZGBOZUWBVUJUVCUWMUWTUXHUXGUWSYKVUGUXEUJZBHZUWAVV
      EUVDLZPZVVDVUGUVAUXHVVFVUJVUKBUXECYLRVUGUWAUXFUJZVVGVUGUVJUXFVVBYMVVIVVEU
      VDUJZLVVGUXEUVDYNVVJUVDVVEAAYOUUAUUBUUCVVCVVHGVVEBUXKVVEPUXLVVGUWAUXKVVEU
      VDWJWKWLRUYGUWBVVDGUWAUVDBUUTTWMWNWRUYJWQUXAUXGUWEFBVUGUWEUWCUXFIZEUVEOZU
      VCUXHVVLUWTUXGUVCUXHJZUXKUXKNZUXEIZVVLGBVVMUYNJZVVOJZUXLUVEHZUXLUXLNZUXFI
      ZVVLVVQUVAUWMUYNVVRUVAUVBUXHUYNVVOXJUVCUWMUXHUYNVVOUWSYKVVMUYNVVOVKUXKUVD
      BUUTTVGVHVVQVVSUXEUVDVVOVVSUXEIZVVPVVSVVNIZVVOVWAUXLUXKIZVWBUXKUVDXMVWCVV
      SUXKUXLNVVNUXLUXKUXLYPUXLUXKUXKYQVNYRVVSVVNUXEUUDUUEUSVVSUVDIVVQVVSUVDUVD
      NZUVDUXLUVDIZVVSVWDIUXKUVDUUFVWEVVSUVDUXLNVWDUXLUVDUXLYPUXLUVDUVDYQVNYRAU
      UGXOUOUUHVVKVVTEUXLUVEUXMUWCVVSUXFUXMUVKUXLUVKUXLUXMUUIZVWFUULUUJWLRUVAUX
      HVVOGBOUVBGBUXECUUKUUMWQUUNVUGUWDVVKEUVEVUGUVJUXFUWCVVBUUOUUPYSUYJWQYTYTW
      TYTUVCUWPUVFUWIUUQUWREDUVETAUURUUSYS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The topology induced by an uniform structure
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c unifTop $. $( The function producing the topology induced. $)

  $( Extend class notation with the function inducing a topology from a uniform
     structure. $)
  cutop $a class unifTop $.

  ${
    $d a u v x $.
    $( Definition of a topology induced by a uniform structure.  Definition 3
       of [BourbakiTop1] p.  II.4.  (Contributed by Thierry Arnoux,
       17-Nov-2017.) $)
    df-utop $a |- unifTop = ( u e. U. ran UnifOn |-> { a e. ~P dom U. u |
      A. x e. a E. v e. u ( v " { x } ) C_ a } ) $.
  $}

  ${
    $d a u v x U $.  $d a u x X $.
    $( The topology induced by a uniform structure ` U ` .  (Contributed by
       Thierry Arnoux, 30-Nov-2017.) $)
    utopval $p |- ( U e. ( UnifOn ` X ) -> ( unifTop ` U ) = { a e. ~P X |
      A. x e. a E. v e. U ( v " { x } ) C_ a } ) $=
      ( vu cust cfv wcel cv csn wrex wral cuni cdm cpw crab cutop cvv wceq cima
      wss crn cmpt df-utop a1i simpr unieqd dmeqd ustbas2 adantr eqtr4d rexeqdv
      wa pweqd ralbidv rabeqbidv elrnust elfvex pwexg rabexg 3syl fvmptd ) CDGH
      IZFCBJAJKUAEJZUBZBFJZLZAVEMZEVGNZOZPZQZVFBCLZAVEMZEDPZQZGUCNZRSRFVRVMUDTV
      DABFEUEUFVDVGCTZUNZVIVOEVLVPVTVKDVTVKCNZOZDVTVJWAVTVGCVDVSUGZUHUIVDDWBTVS
      CDUJUKULUOVTVHVNAVEVTVFBVGCWCUMUPUQCDURVDDSIVPSIVQSICDGUSDSUTVOEVPSVAVBVC
      $.
  $}

  ${
    $d a v x A $.  $d a v x U $.  $d a x X $.
    $( Open sets in the topology induced by an uniform structure ` U ` on ` X `
       (Contributed by Thierry Arnoux, 30-Nov-2017.) $)
    elutop $p |- ( U e. ( UnifOn ` X ) -> ( A e. ( unifTop ` U ) <->
      ( A C_ X /\ A. x e. A E. v e. U ( v " { x } ) C_ A ) ) ) $=
      ( va cust cfv wcel cutop cpw cv csn wss wrex wral wa cvv wi a1i cima crab
      utopval eleq2d wceq sseq2 raleqbi1dv elrab syl6bb elex elfvex simpr ssexd
      rexbidv adantr ex wb elpwg pm5.21ndd anbi1d bitrd ) DEGHIZCDJHZIZCEKZIZBL
      ALMUAZCNZBDOZACPZQZCENZVJQVBVDCVGFLZNZBDOZAVMPZFVEUBZIVKVBVCVQCABDEFUCUDV
      PVJFCVEVOVIAVMCVMCUEVNVHBDVMCVGUFUNUGUHUIVBVFVLVJVBCRIZVFVLVFVRSVBCVEUJTV
      BVLVRVBVLQCERVBERIVLDEGUKUOVBVLULUMUPVRVFVLUQSVBCERURTUSUTVA $.
  $}

  ${
    $d a p u v w x y U $.  $d a p u v x y X $.
    $( The topology induced by a uniform structure ` U ` is a topology.
       (Contributed by Thierry Arnoux, 30-Nov-2017.) $)
    utoptop $p |- ( U e. ( UnifOn ` X ) -> ( unifTop ` U ) e. Top ) $=
      ( vx vy vv vp va vw vu wcel cv wss wral wa cima wrex adantr elutop simprd
      simpr cust cfv cutop cuni wi wal cin ctop csn cpw utopval ssrab2 syl6eqss
      crab sstrd sspwuni simp-4l simp-4r simplr sseldd biimpa r19.21bi syl21anc
      sylib r19.41v ssuni reximi sylbir syl2anc eluni2 biimpi r19.29a ralrimiva
      adantl wb mpbir2and ex alrimiv simpld adantrr ssinss1 syl simpr31 simpr32
      simpl ustincl syl3anc inss1 imass1 ax-mp simpr33 syl5ss inss2 wceq imaeq1
      ssind sseq1d rspcev 3anassrs simpll simplrl elin simplrr reeanv r19.29vva
      w3a sylanbrc ralrimivva cvv fvex istopg ) ABUAUBJZCKZAUCUBZLZXMUDZXNJZUEZ
      CUFZXMDKZUGZXNJZDXNMCXNMZXNUHJZXLXRCXLXOXQXLXONZXQXPBLZEKZFKZUIZOZXPLZEAP
      ZFXPMZYEXMBUJZLYFYEXMXNYNXLXOTXLXNYNLXOXLXNYJGKZLEAPFYOMZGYNUNYNFEABGUKYP
      GYNULUMQUOXMBUPVDYEYLFXPYEYHXPJZNZYHXTJZYLDXMYRXTXMJZNZYSNZYJXTLZEAPZYTYL
      UUBXLXTXNJZYSUUDXLXOYQYTYSUQUUBXMXNXTXLXOYQYTYSURYRYTYSUSZUTUUAYSTXLUUENZ
      UUDFXTUUGXTBLZUUDFXTMZXLUUEUUHUUINFEXTABRVASVBZVCUUFUUDYTNUUCYTNZEAPYLUUC
      YTEAVEUUKYKEAYJXTXMVFVGVHVIYQYSDXMPZYEYQUULDYHXMVJVKVNVLVMXLXQYFYMNVOXOFE
      XPABRQVPVQVRXLYBCDXNXNXLXMXNJZUUENZNZYBYABLZHKZYIOZYALZHAPZFYAMZUUOXMBLZU
      UPXLUUMUVBUUEXLUUMNZUVBIKZYIOZXMLZIAPZFXMMZXLUUMUVBUVHNFIXMABRVAZVSVTXMXT
      BWAWBUUOUUTFYAUUOYHYAJZNZUVFUUCNZUUTIEAAUVKUVDAJZYGAJZUVLUUTXLUUNUVJUVMUV
      NUVLXFZUUTXLUUNUVJUVOXFZNZUVDYGUGZAJZUVRYIOZYALZUUTUVQXLUVMUVNUVSXLUVPWEU
      VMUVNUVLUUNUVJXLWCUVMUVNUVLUUNUVJXLWDAUVDYGBWFWGUVQUVTXMXTUVQUVTUVEXMUVRU
      VDLUVTUVELUVDYGWHUVRUVDYIWIWJUVQUVFUUCUVMUVNUVLUUNUVJXLWKZVSWLUVQUVTYJXTU
      VRYGLUVTYJLUVDYGWMUVRYGYIWIWJUVQUVFUUCUWBSWLWPUUSUWAHUVRAUUQUVRWNUURUVTYA
      UUQUVRYIWOWQWRVIWSWSUVKUVGUUDUVLEAPIAPUVKXLUUMYHXMJZUVGXLUUNUVJWTZXLUUMUU
      EUVJXAUVKUWCYSUVKUVJUWCYSNUUOUVJTYHXMXTXBVDZVSUVCUVGFXMUVCUVBUVHUVISVBVCU
      VKXLUUEYSUUDUWDXLUUMUUEUVJXCUVKUWCYSUWESUUJVCUVFUUCIEAAXDXGXEVMXLYBUUPUVA
      NVOUUNFHYAABRQVPXHXNXIJYDXSYCNVOAUCXJCDXIXNXKWJXG $.

    $( The base of the topology induced by a uniform structure ` U ` .
       (Contributed by Thierry Arnoux, 5-Dec-2017.) $)
    utopbas $p |- ( U e. ( UnifOn ` X ) -> X = U. ( unifTop ` U ) ) $=
      ( vv vx va cust cfv wcel cutop cuni cpw wss wceq cv csn cima wrex crn syl
      wral crab utopval ssrab2 syl6eqss wb ssid a1i wa cxp ustssxp imassrn rnss
      rnxpid syl6sseq syl5ss ralrimiva c0 wne wi ustne0 r19.2zb sylib ralrimivw
      mpd elutop mpbir2and elpwuni mpbid eqcomd ) ABFGHZAIGZJZBVJVKBKZLZVLBMZVJ
      VKCNZDNOZPZENZLCAQDVSTZEVMUAVMDCABEUBVTEVMUCUDVJBVKHZVNVOUEVJWABBLZVRBLZC
      AQZDBTWBVJBUFUGVJWDDBVJWCCATZWDVJWCCAVJVPAHUHVPBBUIZLZWCAVPBUJWGVRVPRZBVP
      VQUKWGWHWFRBVPWFULBUMUNUOSUPVJAUQURWEWDUSABUTWCCAVAVBVDVCDCBABVEVFVKBVGSV
      HVI $.
  $}

  $( Topology induced by a uniform structure ` U ` with its base set.
     (Contributed by Thierry Arnoux, 5-Jan-2018.) $)
  utoptopon $p |- ( U e. ( UnifOn ` X )
         -> ( unifTop ` U ) e. ( TopOn ` X ) ) $=
    ( cust wcel cutop ctop cuni wceq ctopon utoptop utopbas istopon sylanbrc
    cfv ) ABCNDAENZFDBOGHOBINDABJABKBOLM $.

  ${
    $d a b u v x A $.  $d a b u v x U $.  $d a b u x X $.
    $( Restriction of a topology induced by an uniform structure.  (Contributed
       by Thierry Arnoux, 12-Dec-2017.) $)
    restutop $p |- ( ( U e. ( UnifOn ` X ) /\ A C_ X ) ->
      ( ( unifTop ` U ) |`t A ) C_ ( unifTop ` ( U |`t ( A X. A ) ) ) ) $=
      ( vv vx va vu cust cfv wcel wss wa cutop cv cima wrex cin cvv syl2anc crn
      vb crest co cxp wral simpl wceq wb fvexd elfvex adantr simpr ssexd elrest
      csn biimpa inss2 sseq1 mpbiri rexlimivw syl simp-5l ad2antrr xpexg simplr
      ad6antr elrestr syl3anc inss1 imass1 ax-mp sstr mpan imassrn sstri rnxpid
      rnin sseqtri a1i ssind adantl simpllr imaeq1 sseq1d rspcev eleqtrd sseldi
      sseqtr4d elutop simplbda r19.21bi syl21anc r19.29a trust biimpar syl12anc
      ralrimiva ex ssrdv ) BCHIZJZACKZLZUABMIZAUBUCZBAAUDZUBUCZMIZXCUANZXEJZXIX
      HJZXCXJLZXCXIAKZDNZENZUOZOZXIKZDXGPZEXIUEZXKXCXJUFXLXIFNZAQZUGZFXDPZXMXCX
      JYDXCXDRJARJZXJYDUHXCBMUIXCACRXACRJXBBCHUJUKXAXBULUMZFXIAXDRRUNSUPZYCXMFX
      DYCXMYBAKYAAUQXIYBAURUSUTVAXLXSEXIXLXOXIJZLZYCXSFXDYIYAXDJZLZYCLZGNZXPOZY
      AKZXSGBYLYMBJZLZYOLZYMXFQZXGJZYSXPOZXIKZXSYRXAXFRJZYPYTYLXAYPYOXAXBXJYHYJ
      YCVBZVCYRYEYEUUCXCYEXJYHYJYCYPYOYFVFZUUEAARRVDSYLYPYOVEYMXFBWTRVGVHYRUUAY
      BXIYOUUAYBKYQYOUUAYAAUUAYNKZYOUUAYAKYSYMKUUFYMXFVIYSYMXPVJVKUUAYNYAVLVMUU
      AAKYOUUAXFTZAUUAYMTZUUGQZUUGUUAYSTUUIYSXPVNYMXFVQVOUUHUUGUQVOAVPVRVSVTWAY
      KYCYPYOWBWHXRUUBDYSXGXNYSUGXQUUAXIXNYSXPWCWDWESYLXAYJXOYAJYOGBPZUUDYIYJYC
      VEYLYBYAXOYAAVIYLXOXIYBXLYHYJYCWBYKYCULWFWGXAYJLUUJEYAXAYJYACKUUJEYAUEEGY
      ABCWIWJWKWLWMXLYDYHYGUKWMWQXCXKXMXTLZXCXGAHIJXKUUKUHABCWNEDXIXGAWIVAWOWPW
      RWS $.
  $}

  ${
    $d a b t u w x A $.  $d a b t u v w x U $.  $d b t u w x X $.
    $( The restriction of the topology induced by an uniform structure to an
       open set.  (Contributed by Thierry Arnoux, 16-Dec-2017.) $)
    restutopopn $p |- ( ( U e. ( UnifOn ` X ) /\ A e. ( unifTop ` U ) )
      -> ( ( unifTop ` U ) |`t A ) = ( unifTop ` ( U |`t ( A X. A ) ) ) ) $=
      ( vt vx va vv vu vw cfv wcel wa wss cv cima wrex cin wceq wb cvv vb cutop
      cust crest co cxp wral elutop simprbda restutop syldan trust adantr sstrd
      csn simp-9l simplr simp-4r ustincl syl3anc inimass adantl simpllr imaeq1d
      syl ssrin ad5antr simp-5r sseldd ad2antrr vex inimasn ax-mp ineq2d syl5eq
      xpimasn incom syl6eq sseqtr4d syl5ss imaeq1 sseq1d rspcev syl2anc simp-4l
      eqtrd simplbda r19.21bi r19.29a sqxpexg elrest sylan2 ralrimiva mpbir2and
      biimpa df-ss sylib eqcomd ineq1 eqeq2d fvex mpan ad2antlr mpbird ex ssrdv
      eqssd ) BCUCJZKZABUBJZKZLZXJAUDUEZBAAUFZUDUEZUBJZXIXKACMZXMXPMXIXKXQDNZEN
      ZUOZOZAMZDBPZEAUGZEDABCUHZUIZABCUJUKXLUAXPXMXLUANZXPKZYGXMKZXLYHLZYIYGFNZ
      AQZRZFXJPZYJYGXJKZYGYGAQZRZYNYJYOYGCMZGNZXTOZYGMZGBPZEYGUGZYJYGACXLYHYGAM
      ZHNZXTOZYGMZHXOPZEYGUGZXLXOAUCJKZYHUUDUUILSXIXKXQUUJYFABCULUKEHYGXOAUHVEZ
      UIZXLXQYHYFUMUNYJUUBEYGYJXSYGKZLZUUGUUBHXOUUNUUEXOKZLZUUGLZUUEINZXNQZRZUU
      BIBUUQUURBKZLZUUTLZYBUUBDBUVCXRBKZLZYBLZXRUURQZBKZUVGXTOZYGMZUUBUVFXIUVDU
      VAUVHXIXKYHUUMUUOUUGUVAUUTUVDYBUPUVCUVDYBUQUUQUVAUUTUVDYBURBXRUURCUSUTUVF
      UVIYAUURXTOZQZYGXRUURXTVAUVFUVLUUFYGUVFUVLAUVKQZUUFYBUVLUVMMUVEYAAUVKVFVB
      UVFUUFUUSXTOZUVMUVFUUEUUSXTUVBUUTUVDYBVCVDUVFXSAKZUVNUVMRUVCUVOUVDYBUVCYG
      AXSYJUUDUUMUUOUUGUVAUUTUULVGYJUUMUUOUUGUVAUUTVHVIZVJUVOUVNUVKAQZUVMUVOUVN
      UVKXNXTOZQZUVQXSTKUVNUVSREVKUURXNXSTVLVMUVOUVRAUVKAAXSVPVNVOUVKAVQVRVEWFV
      SUUPUUGUVAUUTUVDYBVHUNVTUUAUVJGUVGBYSUVGRYTUVIYGYSUVGXTWAWBWCWDUVCXLUVOYC
      UUQXLUVAUUTXLYHUUMUUOUUGWEZVJUVPXLYCEAXIXKXQYDYEWGWHWDWIUUQXLUUOUUTIBPZUV
      TUUNUUOUUGUQXLUUOUWAXKXIXNTKUUOUWASAXJWJIUUEXNBXHTWKWLWOWDWIYJUUHEYGXLYHU
      UDUUIUUKWGWHWIWMXIYOYRUUCLSXKYHEGYGBCUHVJWNYJYPYGYJUUDYPYGRUULYGAWPWQWRYM
      YQFYGXJYKYGRYLYPYGYKYGAWSWTWCWDXKYIYNSZXIYHXJTKXKUWBBUBXAFYGAXJTXJWKXBXCX
      DXEXFXG $.
  $}

  ${
    $d w A $.  $d q v w P $.  $d p q v w U $.  $d p q v X $.
    utopustuq.1 $e |- N = ( p e. X |-> ran ( v e. U |-> ( v " { p } ) ) ) $.
    $( Lemma for ~ ustuqtop .  (Contributed by Thierry Arnoux, 11-Jan-2018.) $)
    ustuqtoplem $p |- ( ( ( U e. ( UnifOn ` X ) /\ P e. X ) /\ A e. V ) ->
      ( A e. ( N ` P ) <-> E. w e. U A = ( w " { P } ) ) ) $=
      ( vq wcel wa cv csn cima cmpt crn wceq cvv cust cfv simpl sneqd mpteq2dva
      wrex imaeq2d rneqd cbvmptv eqtri a1i w3a simpr2 3anassrs simpr mptexg syl
      rnexg adantr fvmptd eleq2d imaeq1 elrnmpt sylan9bb ) EHUAUBZLZDHLZMZCDFUB
      ZLCBEBNZDOZPZQZRZLCGLCANZVKPZSAEUFVHVIVNCVHKDBEVJKNZOZPZQZRZVNHFTFKHWAQZS
      VHFIHBEVJINZOZPZQZRZQWBJIKHWGWAWCVQSZWFVTWHBEWEVSWHVJELZMZWDVRVJWJWCVQWHW
      IUCUDUGUEUHUIUJUKVHVQDSZMZVTVMWLBEVSVLVFVGWKWIVSVLSVFVGWKWIULMZVRVKVJWMVQ
      DVFVGWKWIUMUDUGUNUEUHVFVGUOVFVNTLZVGVFVMTLWNBEVLVEUPVMTURUQUSUTVAAEVPCVMG
      BAEVLVPVJVOVKVBUIVCVD $.

    $d a b c j p q r u w N $.  $d a b j p q r u v w x U $.
    $d a b c j p q r u v w X $.
    $( Lemma for ~ ustuqtop .  (Contributed by Thierry Arnoux, 11-Jan-2018.) $)
    ustuqtop0 $p |- ( U e. ( UnifOn ` X ) -> N : X --> ~P ~P X ) $=
      ( cust cfv wcel cv csn cima cmpt crn cpw wa wss wral ustimasn cvv rnmptss
      3expa an32s vex imaex elpw sylibr ralrimiva eqid syl wb mptexg rnexg 3syl
      elpwg adantr mpbird fmptd ) BDGHZIZEDABAJZEJZKZLZMZNZDOZOZCUTVBDIZPZVFVHI
      ZVFVGQZVJVDVGIZABRVLVJVMABVJVABIZPVDDQZVMUTVNVIVOUTVNVIVOVBBVADSUBUCVDDVA
      VCAUDUEUFUGUHABVDVGVEVEUIUAUJUTVKVLUKZVIUTVETIVFTIVPABVDUSULVETUMVFVGTUOU
      NUPUQFUR $.

    $( Lemma for ~ ustuqtop , similar to ~ ssnei2 .  (Contributed by Thierry
       Arnoux, 11-Jan-2018.) $)
    ustuqtop1 $p |- ( ( ( ( U e. ( UnifOn ` X ) /\ p e. X )
      /\ a C_ b /\ b C_ X ) /\ a e. ( N ` p ) ) -> b e. ( N ` p ) ) $=
      ( vu vw wcel cv wa wss w3a cima wceq cun 3anassrs cvv cfv csn cxp simpl1l
      cust wrex simplr ustssxp syl2anc simpl1r snssd simpl3 unssd ssun1 ustssel
      xpss12 a1i imp syl31anc simpl2 ssequn1 biimpi id cin c0 wne inidm eqnetri
      vex snnz xpima2 eqcomd uneq12d imaundir syl6eqr sylan9req sylancom imaeq1
      mp1i eqeq2d rspcev wb ustuqtoplem mpan2 biimpa 3ad2antl1 r19.29a 3ad2ant1
      adantr mpbird ) BDUEUAKZELZDKZMZFLZGLZNZWPDNZOZWOWLCUAZKZMZWPWTKZWPILZWLU
      BZPZQZIBUFZXBWOJLZXEPZQZXHJBXBXIBKZMZXKMZXIXEWPUCZRZBKZWPXPXEPZQZXHXNWKXL
      XPDDUCZNZXIXPNZXQWSXAXLXKWKWKWMWQWRXAXLXKOZUDSZXBXLXKUGZXNXIXOXTXNWKXLXIX
      TNYDYEBXIDUHUIXNXEDNWRXOXTNXNWLDWSXAXLXKWMWKWMWQWRYCUJSUKWSXAXLXKWRWNWQWR
      YCULSXEDWPDUPUIUMYBXNXIXOUNUQWKXLYAOYBXQBXIXPDUOURUSXMXKWQXSWSXAXLXKWQWNW
      QWRYCUTSWQXKWPWOWPRZXRWQYFWPQWOWPVAVBXKYFXJXOXEPZRXRXKWOXJWPYGXKVCXKYGWPX
      EXEVDZVEVFYGWPQXKYHXEVEXEVGWLEVIVJVHXEWPXEVKVSVLVMXIXOXEVNVOVPVQXGXSIXPBX
      DXPQXFXRWPXDXPXEVRVTWAUIWNWQXAXKJBUFZWRWNXAYIWNWOTKXAYIWBFVIJAWOWLBCTDEHW
      CWDWEWFWGWSXCXHWBZXAWNWQYJWRWNWPTKYJGVIIAWPWLBCTDEHWCWDWHWIWJ $.

    $( Lemma for ~ ustuqtop .  (Contributed by Thierry Arnoux, 11-Jan-2018.) $)
    ustuqtop2 $p |- ( ( U e. ( UnifOn ` X ) /\ p e. X )
      -> ( fi ` ( N ` p ) ) C_ ( N ` p ) ) $=
      ( va vb vw vu vx cfv wcel cv wa wceq cin cima cvv wb cust cfi wss simp-6l
      wral csn wrex simp-7l simp-4r simplr ustincl syl3anc simpllr ineq12 ax-mp
      vex inimasn syl6eqr sylancom imaeq1 eqeq2d rspcev inex1 ustuqtoplem mpan2
      syl2anc biimpar simp-4l biimpa r19.29a adantr ralrimiva fvex inficl sylib
      eqimss syl ) BDUALMZENZDMZOZVSCLZUBLZWBPZWCWBUCWAGNZHNZQZWBMZHWBUEZGWBUEZ
      WDWAWIGWBWAWEWBMZOZWHHWBWLWFWBMZOZWEINZVSUFZRZPZWHIBWNWOBMZOZWROZWFJNZWPR
      ZPZWHJBXAXBBMZOZXDOZWAWGKNZWPRZPZKBUGZWHWAWKWMWSWRXEXDUDXGWOXBQZBMZWGXLWP
      RZPZXKXGVRWSXEXMVRVTWKWMWSWRXEXDUHWNWSWRXEXDUIXAXEXDUJBWOXBDUKULXFXDWRXOW
      TWRXEXDUMWRXDOWGWQXCQZXNWEWQWFXCUNVSSMXNXPPEUPWOXBVSSUQUOURUSXJXOKXLBXHXL
      PXIXNWGXHXLWPUTVAVBVFWAWHXKWAWGSMWHXKTWEWFGUPZVCKAWGVSBCSDEFVDVEVGVFXAWAW
      MXDJBUGZWAWKWMWSWRVHWLWMWSWRUMWAWMXRWAWFSMWMXRTHUPJAWFVSBCSDEFVDVEVIVFVJW
      LWRIBUGZWMWAWKXSWAWESMWKXSTXQIAWEVSBCSDEFVDVEVIVKVJVLVLWBSMWJWDTVSCVMGHWB
      SVNUOVOWCWBVPVQ $.

    $( Lemma for ~ ustuqtop , similar to ~ elnei .  (Contributed by Thierry
       Arnoux, 11-Jan-2018.) $)
    ustuqtop3 $p |- ( ( ( U e. ( UnifOn ` X ) /\ p e. X ) /\ a e. ( N ` p ) )
      -> p e. a ) $=
      ( vw cust cfv wcel cv wa csn cima wceq cid wss ad4antlr cvv fnresi fnsnfv
      cres wfn mpan simp-4l simplr ustdiag syl2anc imass1 syl eqsstrd fvex snss
      sylibr fvresi eqcomd simpr 3eltr4d wrex wb vex ustuqtoplem biimpa r19.29a
      mpan2 ) BDIJKZELZDKZMZFLZVHCJKZMZVKHLZVHNZOZPZVHVKKHBVMVNBKZMZVQMZVHQDUCZ
      JZVPVHVKVTWBNZVPRWBVPKVTWCWAVOOZVPVIWCWDPZVGVLVRVQWADUDVIWEDUADVHWAUBUESV
      TWAVNRZWDVPRVTVGVRWFVGVIVLVRVQUFVMVRVQUGBVNDUHUIWAVNVOUJUKULWBVPVHWAUMUNU
      OVIVHWBPVGVLVRVQVIWBVHDVHUPUQSVSVQURUSVJVLVQHBUTZVJVKTKVLWGVAFVBHAVKVHBCT
      DEGVCVFVDVE $.

    $( Lemma for ~ ustuqtop .  (Contributed by Thierry Arnoux, 11-Jan-2018.) $)
    ustuqtop4 $p |- ( ( ( U e. ( UnifOn ` X ) /\ p e. X ) /\ a e. ( N ` p ) )
      -> E. b e. ( N ` p ) A. q e. b a e. ( N ` q ) ) $=
      ( vw wcel cv wa wceq wrex wss cvv wb syl2anc syl vu vr cust cfv cima wral
      csn ccom simplr eqid imaeq1 eqeq2d rspcev mpan2 adantl imaexg ustuqtoplem
      simplll sylan2 mpbird w3a simp-5l simpld simp-4r ustimasn syl3anc jca wbr
      sselda wrel simp-6l ustrel elrelimasn mpbid simpr wex vex biimpri 19.23bi
      brco simpllr ssbrd mpd simp-5r ex ssrdv adantr eqidd mpdan syl21anc sseq2
      3jca wi sseq1 3anbi23d anbi1d eleq1 imbi12d 3anbi2d anbi12d imbi1d anbi2d
      3anbi1d eleq2d ustuqtop1 chvarv vtoclg impcom ralrimiva ustexhalf adantlr
      fveq2 raleq r19.29a rexralbidv adantllr biimpa ) BDUCUDKZFLZDKZMZGLZXSCUD
      ZKZMYBJLZXSUGZUEZNZYBELZCUDZKZEHLZUFHYCOZJBYAYEBKZYHYMYDYAYNMZYHMYMYGYJKZ
      EYLUFZHYCOZYOYRYHYOUALZYSUHZYEPZYRUABYOYSBKZMZUUAMZYSYFUEZYCKZYPEUUEUFZYR
      UUDYAUUBUUFYAYNUUBUUAURZYOUUBUUAUIZYAUUBMUUFUUEYGNZJBOZUUBUUKYAUUBUUEUUEN
      ZUUKUUEUJUUJUULJYSBYEYSNZYGUUEUUEYEYSYFUKULUMUNUOUUBYAUUEQKUUFUUKRYSYFBUP
      JAUUEXSBCQDFIUQUSUTSUUDYPEUUEUUDYIUUEKZMZXRYIDKZMZYSYIUGZUEZYGPZYGDPZVAZU
      USYJKZMZUUBYNYPUUOUVBUVCUUOUUQUUTUVAUUOXRUUPXRXTYNUUBUUAUUNVBZUUDUUEDYIUU
      DXRUUBXTUUEDPUUDXRXTUUHVCUUIXRXTYNUUBUUAVDZXSBYSDVEVFVIZVGUUOUBUUSYGUUOUB
      LZUUSKZUVHYGKZUUOUVIMZUVJXSUVHYEVHZUVKXSUVHYTVHZUVLUVKXSYIYSVHZYIUVHYSVHZ
      UVMUVKUUNUVNUUDUUNUVIUIUVKYSVJZUUNUVNRUVKXRUUBUVPXRXTYNUUBUUAUUNUVIVKZYOU
      UBUUAUUNUVIVDBYSDVLSZXSYIYSVMTVNUVKUVIUVOUUOUVIVOUVKUVPUVIUVORUVRYIUVHYSV
      MTVNUVNUVOMZUVMEUVMUVSEVPEXSUVHYSYSFVQUBVQVTVRVSSUVKYTYEXSUVHUUCUUAUUNUVI
      WAWBWCUVKYEVJZUVJUVLRUVKXRYNUVTUVQYAYNUUBUUAUUNUVIWDBYEDVLSXSUVHYEVMTUTWE
      WFUUOXRYNXTUVAUVEYAYNUUBUUAUUNVDZUUDXTUUNUVFWGXSBYEDVEVFWLUUOXRUUPUUBUVCU
      VEUVGYOUUBUUAUUNWAZUUQUUBMUVCUUSYEUURUEZNZJBOZUUBUWEUUQUUBUUSUUSNZUWEUUBU
      USWHUWDUWFJYSBUUMUWCUUSUUSYEYSUURUKULUMWIUOUUBUUQUUSQKZUVCUWERYSUURBUPZJA
      UUSYIBCQDFIUQUSUTWJVGUWBUWAYNUVDUUBMZYPYNYGQKUWIYPWMZYEYFBUPUUQUUSYLPZYLD
      PZVAZUVCMZUUBMZYLYJKZWMUWJHYGQYLYGNZUWOUWIUWPYPUWQUWNUVDUUBUWQUWMUVBUVCUW
      QUWKUUTUWLUVAUUQYLYGUUSWKYLYGDWNWOWPWPYLYGYJWQWRUUBUWNUWPUUBUWGUWNUWPWMZU
      WHUUQYBYLPZUWLVAZYKMZUWPWMZUWRGUUSQYBUUSNZUXAUWNUWPUXCUWTUWMYKUVCUXCUWSUW
      KUUQUWLYBUUSYLWNWSYBUUSYJWQWTXAYAUWSUWLVAZYDMZYLYCKZWMUXBFEXSYINZUXEUXAUX
      FUWPUXGUXDUWTYDYKUXGYAUUQUWSUWLUXGXTUUPXRXSYIDWQXBXCUXGYCYJYBXSYICXLZXDWT
      UXGYCYJYLUXHXDWRABCDFGHIXEXFXGTXHXGTXHWJXIYQUUGHUUEYCYPEYLUUEXMUMSXRYNUUA
      UABOXTUABYEDXJXKXNWGYHYMYRRYOYHYKYPHEYCYLYBYGYJWQXOUOUTXPYAYDYHJBOZYAYBQK
      YDUXIRGVQJAYBXSBCQDFIUQUNXQXN $.

    $( Lemma for ~ ustuqtop .  (Contributed by Thierry Arnoux, 11-Jan-2018.) $)
    ustuqtop5 $p |- ( ( U e. ( UnifOn ` X ) /\ p e. X ) -> X e. ( N ` p ) ) $=
      ( vw cust cfv wcel cv wa csn cima wceq wrex cxp cin c0 cvv adantr wne wss
      ustbasel snssi sylib incom syl6req snnzg eqnetrd adantl xpima2 syl eqcomd
      dfss imaeq1 eqeq2d rspcev syl2anc wb elfvex ustuqtoplem mpidan mpbird ) B
      DHIJZEKZDJZLZDVFCIJZDGKZVFMZNZOZGBPZVHDDQZBJZDVOVKNZOZVNVEVPVGBDUDUAVHVQD
      VHDVKRZSUBZVQDOVGVTVEVGVSVKSVGVKVKDRZVSVGVKDUCVKWAOVFDUEVKDUOUFVKDUGUHVFD
      UIUJUKDDVKULUMUNVMVRGVOBVJVOOVLVQDVJVOVKUPUQURUSVEVGDTJVIVNUTBDHVAGADVFBC
      TDEFVBVCVD $.

    $d x N $.  $d x X $.
    $( For a given uniform structure ` U ` on a set ` X ` , there is a unique
       topology ` j ` such that the set ` ran ( v e. U |-> ( v " { p } ) ) ` is
       the filter of the neighborhoods of ` p ` for that topology.  Proposition
       1 of [BourbakiTop1] p.  II.3.  (Contributed by Thierry Arnoux,
       11-Jan-2018.) $)
    ustuqtop $p |- ( U e. ( UnifOn ` X ) -> E! j e. ( TopOn ` X )
      A. p e. X ( N ` p ) = ( ( nei ` j ) ` { p } ) ) $=
      ( vc vr vx va vb cfv wcel cv cmpt wceq wreu wral cpw cust csn cnei ctopon
      fveq2 eleq2d cbvralv eleq1 raleqbi1dv syl5bbr cbvrabv ustuqtop0 ustuqtop1
      crab ustuqtop2 ustuqtop3 ustuqtop4 ustuqtop5 neiptopreu feqmptd eqeq1d wb
      cvv fvex rgenw mpteqb ax-mp syl6bb reubidv mpbid ) BEUAMNZDFEFOZUBCOUCMMZ
      PZQZCEUDMZRVLDMZVMQFESZCVPRVKCHOZIOZDMZNZIVSSZHETZUNDEJFKLWCKOZVQNZFWESZH
      KWDWCVSVQNZFVSSVSWEQWGWHWBFIVSVLVTQVQWAVSVLVTDUEUFUGWHWFFVSWEVSWEVQUHUIUJ
      UKABDEFGULZABDEFKLGUMABDEFGUOABDEFKGUPABDEJFKLGUQABDEFGURUSVKVOVRCVPVKVOF
      EVQPZVNQZVRVKDWJVNVKFEWDTDWIUTVAVQVCNZFESWKVRVBWLFEVLDVDVEFEVQVMVCVFVGVHV
      IVJ $.
  $}

  ${
    utoptop.1 $e |- J = ( unifTop ` U ) $.

    ${
      $d a p K $.  $d a b p q N $.  $d p v P $.  $d a b p q u v w U $.
      $d a b p q v w X $.
      utopsnneip.1 $e |- K = { a e. ~P X | A. p e. a a e. ( N ` p ) } $.
      utopsnneip.2 $e |- N = ( p e. X |-> ran ( v e. U |-> ( v " { p } ) ) ) $.
      $( The neighborhoods of a point ` P ` for the topology induced by an
         uniform space ` U ` .  (Contributed by Thierry Arnoux,
         11-Jan-2018.) $)
      utopsnneiplem $p |- ( ( U e. ( UnifOn ` X ) /\ P e. X ) ->
        ( ( nei ` J ) ` { P } ) = ran ( v e. U |-> ( v " { P } ) ) ) $=
        ( vw vb cfv wcel wa wceq simpr cvv vu vq cust csn cnei cv cima cmpt crn
        wral cpw crab wss wrex cutop utopval syl5eq simpll elpwid sselda mptexg
        wb rnexg syl adantr fvmpt2 syl2anc eleq2d vex eqid elrnmpt ax-mp syl6bb
        nfre1 nfan simplr eqimss2 adantl imaeq1 sseq1d rspcev r19.29af ad2antrr
        nfv weq jca ad3antrrr eqeq2d mpan2 imaex ustuqtoplem mpbird syl21anc wi
        w3a sseq1 3anbi2d eleq1 anbi12d ustuqtop1 vtocl syl31anc mpbid r19.29an
        imbi1d impbida ralbidva rabbidva eqtr4d syl6eqr fveq2d fveq1d ustuqtop0
        bitrd ustuqtop2 ustuqtop3 ustuqtop4 ustuqtop5 sneqd fvexd fvmptd nfmpt1
        neiptopnei a1i nfrn nfel1 imaeq2d 3anassrs mpteq2da rneqd simpl 3eqtr2d
        simpr2 ) CGUCOZPZBGPZQZBUDZDUEOZOZYREUEOZOZBFOZACAUFZYRUGZUHZUIZYOYTUUB
        RYPYOYRYSUUAYODEUEYODIUFZHUFZFOZPZHUUHUJZIGUKZULZEYODMUFZUUIUDZUGZUUHUM
        ZMCUNZHUUHUJZIUUMULZUUNYODCUOOUVAJHMCGIUPUQYOUULUUTIUUMYOUUHUUMPZQZUUKU
        USHUUHUVCUUIUUHPZQZUUKUUHUUDUUPUGZRZACUNZUUSUVEYOUUIGPZUUKUVHVBZYOUVBUV
        DURZUVCUUHGUUIUVCUUHGYOUVBSUSZUTZYOUVIQZUUKUUHACUVFUHZUIZPZUVHUVNUUJUVP
        UUHUVNUVIUVPTPZUUJUVPRYOUVISYOUVRUVIYOUVOTPUVRACUVFYNVAUVOTVCVDVEHGUVPT
        FLVFVGVHUUHTPUVQUVHVBIVIACUVFUUHUVOTUVOVJVKVLVMZVGUVEUVHUUSUVEUVHQZUVGU
        USACUVEUVHAUVEAWDUVGACVNVOUVTUUDCPZQZUVGQUWAUVFUUHUMZUUSUVTUWAUVGVPUVGU
        WCUWBUVFUUHVQVRUURUWCMUUDCMAWEUUQUVFUUHUUOUUDUUPVSVTWAVGUVEUVHSWBUVEUUR
        UVHMCUVEUUOCPZQZUURQZUUKUVHUWFUVNUURUUHGUMZUUQUUJPZUUKUWFYOUVIUVEYOUWDU
        URUVKWCZUVEUVIUWDUURUVMWCZWFZUWEUURSUVCUWGUVDUWDUURUVLWGUWFYOUVIUWDUWHU
        WIUWJUVEUWDUURVPUVNUWDQUWHUUQUAUFZUUPUGZRZUACUNZUWDUWOUVNUWDUUQUUQRZUWO
        UUQVJUWNUWPUAUUOCUAMWEUWMUUQUUQUWLUUOUUPVSWHWAWIVRUVNUWHUWOVBZUWDUVNUUQ
        TPUWQUUOUUPMVIWJZUAAUUQUUICFTGHLWKWIVEWLWMUVNNUFZUUHUMZUWGWOZUWSUUJPZQZ
        UUKWNUVNUURUWGWOZUWHQZUUKWNNUUQUWRUWSUUQRZUXCUXEUUKUXFUXAUXDUXBUWHUXFUW
        TUURUVNUWGUWSUUQUUHWPWQUWSUUQUUJWRWSXEACFGHNILWTXAXBUWFUVNUVJUWKUVSVDXC
        XDXFXNXGXHXIKXJXKXLVEYQHBUUPUUAOZUUBGFTYOFHGUXGUHRYPYOEFGUBHINKACFGHLXM
        ACFGHINLWTACFGHLXOACFGHILXPACFGUBHINLXQACFGHLXRYCVEYQUUIBRZQZUUPYRUUAUX
        IUUIBYQUXHSXSXKYOYPSZYQYRUUAXTYAYQYPUUGTPZUUCUUGRUXJYOUXKYPYOUUFTPUXKAC
        UUEYNVAUUFTVCVDVEYPUXKQZHBUVPUUGGFTFHGUVPUHRUXLLYDUXLUXHQZUVOUUFUXMACUV
        FUUEUXLUXHAYPUXKAYPAWDAUUGTAUUFACUUEYBYEYFVOUXHAWDVOYPUXKUXHUWAUVFUUERY
        PUXKUXHUWAWOQZUUPYRUUDUXNUUIBYPUXKUXHUWAYMXSYGYHYIYJYPUXKYKYPUXKSYAVGYL
        $.
    $}

    $d p v P $.  $d a b p q r v U $.  $d a b p q r v X $.
    $( The neighborhoods of a point ` P ` for the topology induced by an
       uniform space ` U ` .  (Contributed by Thierry Arnoux, 13-Jan-2018.) $)
    utopsnneip $p |- ( ( U e. ( UnifOn ` X ) /\ P e. X ) ->
       ( ( nei ` J ) ` { P } ) = ran ( v e. U |-> ( v " { P } ) ) ) $=
      ( vb vr vq vp va cv csn cima cmpt crn cfv wcel wral weq crab fveq2 eleq2d
      cpw cbvralv eleq1 raleqbi1dv syl5bb cbvrabv simpl sneqd imaeq2d mpteq2dva
      wa rneqd cbvmptv utopsnneiplem ) ABCDGLZHLZIEACALZILZMZNZOZPZOZQZRZHURSZG
      EUDZUAVFEJKFVIKLZJLZVFQZRZJVKSZGKVJVIURVMRZJURSGKTVOVHVPHJURHJTVGVMURUSVL
      VFUBUCUEVPVNJURVKURVKVMUFUGUHUIIJEVEACUTVLMZNZOZPIJTZVDVSVTACVCVRVTUTCRZU
      NZVBVQUTWBVAVLVTWAUJUKULUMUOUPUQ $.

    $d v P $.  $d v U $.  $d v V $.
    $( Images of singletons by entourages ` V ` are neighborhoods of those
       singletons.  (Contributed by Thierry Arnoux, 13-Jan-2018.) $)
    utopsnnei $p |- ( ( U e. ( UnifOn ` X ) /\ V e. U /\ P e. X )
        -> ( V " { P } ) e. ( ( nei ` J ) ` { P } ) ) $=
      ( vv cust cfv wcel w3a csn cima cnei cv wceq wrex eqid 3ad2ant2 cvv mpan2
      imaeq1 eqeq2d rspcev cmpt crn utopsnneip 3adant2 eleq2d wb imaexg elrnmpt
      syl bitrd mpbird ) BEHIJZDBJZAEJZKZDALZMZUTCNIIZJZVAGOZUTMZPZGBQZUQUPVGUR
      UQVAVAPZVGVARVFVHGDBVDDPVEVAVAVDDUTUBUCUDUASUSVCVAGBVEUEZUFZJZVGUSVBVJVAU
      PURVBVJPUQGABCEFUGUHUIUQUPVKVGUJZURUQVATJVLDUTBUKGBVEVAVITVIRULUMSUNUO $.

    $d r z J $.  $d r z M $.  $d z U $.  $d r z V $.  $d z X $.
    $( For any symmetrical entourage ` V ` and any relation ` M ` , build a
       neighborhood of ` M ` .  First part of proposition 2 of [BourbakiTop1]
       p.  II.4.  (Contributed by Thierry Arnoux, 14-Jan-2018.) $)
    utop2nei $p |- ( ( U e. ( UnifOn ` X ) /\ ( V e. U /\ `' V = V )
        /\ M C_ ( X X. X ) )
      -> ( V o. ( M o. V ) ) e. ( ( nei ` ( J tX J ) ) ` M ) ) $=
      ( vr cfv wcel wceq wa cxp wss ccom c0 syl2anc adantr syl cvv wbr cust w3a
      vz ccnv ctx co cnei ctop cutop utoptop syl5eqel txtop 3ad2ant1 0nei coeq1
      co01 syl6eq coeq2d co02 adantl simpr fveq2d 3eltr4d wne cv wral c1st cima
      csn c2nd cuni cop simpl1 simpl2l simp3 xp1st utopsnnei syl3anc xp2nd eqid
      sselda neitx syl22anc fvex xpsn fveq2i wrel xpss sstr mpan2 df-rel sylibr
      syl6eleq 1st2nd sylancom sneqd eleqtrrd a1i simpll2 simprd simpll1 simpld
      relxp ustrel elrelimasn biimpa brcnv breq syl5bbr biimpar simplr 1st2ndbr
      simpll3 sylan 3pm3.2i brcogw syl21anc df-br sylib eqeltrd ex ssrdv simp2l
      mpan simp1 ustssxp coss1 coss2 xpcoid syl6sseq sstrd utopbas unieqi txuni
      syl6eqr sqxpeqd eqtrd sseqtrd ssnei2 ralrimiva wb neips mpbird pm2.61dane
      ) AEUAHIZDAIZDUDZDJZKZCEELZMZUBZDCDNZNZCBBUEUFZUGHZHZIZCOUULCOJZKZOOUUPHZ
      UUNUUQUUTUUOUHIZOUVAIUULUVBUUSUUEUUIUVBUUKUUEBUHIZUVCUVBUUEBAUIHZUHFAEUJU
      KZUVEBBULPUMZQUUOUNRUUSUUNOJUULUUSUUNDONOUUSUUMODUUSUUMODNOCODUODUPUQURDU
      SUQUTUUTCOUUPUULUUSVAVBVCUULCOVDZKZUURUUNGVEZVIZUUPHZIZGCVFZUULUVMUVGUULU
      VLGCUULUVICIZKZUVBDUVIVGHZVIZVHZDUVIVJHZVIZVHZLZUVKIUWBUUNMUUNUUOVKZMZUVL
      UULUVBUVNUVFQUVOUWBUVPUVSVLZVIZUUPHZUVKUVOUWBUVQUVTLZUUPHZUWGUVOUVCUVCUVR
      UVQBUGHZHIZUWAUVTUWJHIZUWBUWIIUVOUUEUVCUUEUUIUUKUVNVMZUVERZUWNUVOUUEUUFUV
      PEIZUWKUWMUUFUUHUUEUUKUVNVNZUVOUVIUUJIZUWOUULCUUJUVIUUEUUIUUKVOZWAZUVIEEV
      PRUVPABDEFVQVRUVOUUEUUFUVSEIZUWLUWMUWPUVOUWQUWTUWSUVIEEVSRUVSABDEFVQVRUVR
      UWAUVQUVTBBBVKZUXAUXAVTZUXBWBWCUWHUWFUUPUVPUVSUVIVGWDZUVIVJWDZWEWFWMUVOUV
      JUWFUUPUVOUVIUWEUULUVNCWGZUVIUWEJUVOUUKUXEUULUUKUVNUWRQUUKCSSLZMZUXEUUKUU
      JUXFMUXGEEWHCUUJUXFWIWJCWKWLZRUVICWNWOWPVBWQUVOUCUWBUUNUVOUCVEZUWBIZUXIUU
      NIUVOUXJKZUXIUXIVGHZUXIVJHZVLZUUNUVOUXJUWBWGZUXIUXNJUXOUXKUVRUWAXCWRUXIUW
      BWNWOUXKUXLUXMUUNTZUXNUUNIUXKUXLUVPDTZUVPUVSCTZUVSUXMDTZUXPUXKUUHUVPUXLDT
      ZUXQUXKUUFUUHUUEUUIUUKUVNUXJWSZWTUXKDWGZUXLUVRIZUXTUXKUUEUUFUYBUUEUUIUUKU
      VNUXJXAUXKUUFUUHUYAXBADEXDPZUXJUYCUVOUXIUVRUWAVPUTUYBUYCUXTUVPUXLDXEXFPUU
      HUXQUXTUXQUVPUXLUUGTUUHUXTUVPUXLDUXCUXIVGWDZXGUVPUXLUUGDXHXIXJPUXKUUKUVNU
      XRUUEUUIUUKUVNUXJXMUULUVNUXJXKUUKUXEUVNUXRUXHUVICXLXNPUXKUYBUXMUWAIZUXSUY
      DUXJUYFUVOUXIUVRUWAVSUTUYBUYFUXSUVSUXMDXEXFPUXQUXRKZUXLUVSUUMTZUXSUXPUXLS
      IZUVSSIZUVPSIZUBUYGUYHUYIUYJUYKUYEUXDUXCXOUXLUVSCDSSUVPSXPYDUYIUXMSIZUYJU
      BUYHUXSKUXPUYIUYLUYJUYEUXIVJWDUXDXOUXLUXMDUUMSSUVSSXPYDXNXQUXLUXMUUNXRXSX
      TYAYBUULUWDUVNUULUUNUUJUWCUULUUNUUJUUMNZUUJUULDUUJMZUUNUYMMUULUUEUUFUYNUU
      EUUIUUKYEUUEUUFUUHUUKYCADEYFPZDUUJUUMYGRUULUUMUUJMZUYMUUJMUULUUMUUJDNZUUJ
      UULUUKUUMUYQMUWRCUUJDYGRUULUYNUYQUUJMUYOUYNUYQUUJUUJNZUUJDUUJUUJYHEYIZYJR
      YKUYPUYMUYRUUJUUMUUJUUJYHUYSYJRYKUUEUUIUUJUWCJUUKUUEUUJUXAUXALZUWCUUEEUXA
      UUEEUVDVKUXAAEYLBUVDFYMYOYPUUEUVCUVCUYTUWCJUVEUVEBBUXAUXAUXBUXBYNPYQUMZYR
      QUVJUUOUUNUWBUWCUWCVTZYSWCYTQUVHUVBCUWCMZUVGUURUVMUUAUULUVBUVGUVFQUULVUCU
      VGUULCUUJUWCUWRVUAYRQUULUVGVACUUOUUNUWCGVUBUUBVRUUCUUD $.

    ${
      $( Relation between a topological closure and a symmetric entourage in an
         uniform space.  Second part of proposition 2 of [BourbakiTop1] p.
         II.4.  (Contributed by Thierry Arnoux, 17-Jan-2018.) $)
      utop3cls $p |- ( ( ( U e. ( UnifOn ` X ) /\ M C_ ( X X. X ) ) /\
          ( V e. U /\ `' V = V ) )
          -> ( ( cls ` ( J tX J ) ) ` M ) C_ ( V o. ( M o. V ) ) ) $=
        ( vr cfv wcel cxp wss wa wceq c1st c2nd syl2anc syl wbr csn cvv vz cust
        ccnv ctx co ccl ccom cv cop wrel relxp cuni ctop cutop utoptop syl5eqel
        txtop ad3antrrr simpllr ctopon utoptopon toponuni sqxpeqd txuni sseqtrd
        eqid eqtrd clsss3 sseqtr4d simpr sseldd 1st2nd sylancr cima cin simp-4l
        wral simpr1l 3anassrs ustrel elin sylib simpld xp1st elrelimasn simp-4r
        biimpa xpss syl6ss df-rel sylibr simprd 1st2ndbr xp2nd wb simpr1r brcnv
        fvex syl5rbbr mpbird wi w3a brcogw ex mp3an sylan syl21anc ralrimiva c0
        breq wne cnei simplll simplrl 3ad2ant1 utopsnnei syl3an3 neitx syl22anc
        1st2nd2 xpsn syl6eqr fveq2d 3ad2ant3 eleqtrrd syl3anc neindisj r19.3rzv
        sneqd df-br eqeltrd ssrdv ) AEUBHIZCEEJZKZLZDAIZDUCZDMZLZLZUACBBUDUEZUF
        HHZDCDUGZUGZUUAUAUHZUUCIZUUFUUEIUUAUUGLZUUFUUFNHZUUFOHZUIZUUEUUHYNUJUUF
        YNIZUUFUUKMEEUKUUHUUCYNUUFUUHUUCUUBULZYNUUHUUBUMIZCUUMKZUUCUUMKYMUUNYOY
        TUUGYMBUMIZUUPUUNYMBAUNHZUMFAEUOUPZUURBBUQPURZUUHCYNUUMYMYOYTUUGUSYMYNU
        UMMYOYTUUGYMYNBULZUUTJZUUMYMEUUTYMBEUTHZIEUUTMYMBUUQUVBFAEVAUPEBVBQVCYM
        UUPUUPUVAUUMMUURUURBBUUTUUTUUTVFZUVCVDPVGURZVEZCUUBUUMUUMVFZVHPUVDVIUUA
        UUGVJZVKZUUFYNVLVMUUHUUIUUJUUERZUUKUUEIUUHUVIUVIGDUUISZVNZDUUJSZVNZJZCV
        OZVQZUUHUVIGUVOUUHGUHZUVOIZLZUUIUVQNHZDRZUVTUVQOHZCRZUWBUUJDRZUVIUVSDUJ
        ZUVTUVKIZUWAUVSYMYQUWEYMYOYTUUGUVRVPYPYTUUGUVRYQYQYSUUGUVRYPVRVSADEVTPZ
        UVSUVQUVNIZUWFUVSUWHUVQCIZUVSUVRUWHUWILUUHUVRVJUVQUVNCWAWBZWCZUVQUVKUVM
        WDQUWEUWFUWAUUIUVTDWEWGPUVSCUJZUWIUWCUVSCTTJZKUWLUVSCYNUWMYMYOYTUUGUVRW
        FEEWHWICWJWKUVSUWHUWIUWJWLUVQCWMPUVSUWDUUJUWBDRZUVSUWEUWBUVMIZUWNUWGUVS
        UWHUWOUWKUVQUVKUVMWNQUWEUWOUWNUUJUWBDWEWGPUVSYSUWDUWNWOYPYTUUGUVRYSYQYS
        UUGUVRYPWPVSUWNUWBUUJYRRYSUWDUWBUUJDUVQOWRZUUFOWRZWQUWBUUJYRDXJWSQWTUWA
        UWCLZUUIUWBUUDRZUWDUVIUUITIZUWBTIZUVTTIZUWRUWSXAUUFNWRZUWPUVQNWRUWTUXAU
        XBXBUWRUWSUUIUWBCDTTUVTTXCXDXEUWTUUJTIZUXAUWSUWDLZUVIXAUXCUWQUWPUWTUXDU
        XAXBUXEUVIUUIUUJDUUDTTUWBTXCXDXEXFXGXHUUHUVOXIXKZUVIUVPWOUUHUUNUUOUUGUV
        NUUFSZUUBXLHZHZIZUXFUUSUVEUVGUUHYMYQUULUXJYMYOYTUUGXMYPYQYSUUGXNUVHYMYQ
        UULXBZUVNUVJUVLJZUXHHZUXIUXKUUPUUPUVKUVJBXLHZHIZUVMUVLUXNHIZUVNUXMIYMYQ
        UUPUULUURXOZUXQUULYMYQUUIEIUXOUUFEEWDUUIABDEFXPXQUULYMYQUUJEIUXPUUFEEWN
        UUJABDEFXPXQUVKUVMUVJUVLBBUUTUUTUVCUVCXRXSUULYMUXIUXMMYQUULUXGUXLUXHUUL
        UXGUUKSUXLUULUUFUUKUUFEEXTYIUUIUUJUXCUWQYAYBYCYDYEYFUUFCUUBUVNUUMUVFYGX
        SUVIGUVOYHQWTUUIUUJUUEYJWBYKXDYL $.
    $}

$(
    @{
      utop2cls.1 @e |- S = { w e. U | `' w = w } @.
      @( Topological closure of a relation in an uniform space.  Proposition 2
         of [BourbakiTop1] p.  II.4. @)
      utop2cls @p |- ( ( U e. ( UnifOn ` X ) /\ ( V e. U /\ `' V = V )
          /\ M C_ ( X X. X ) )
        -> ( ( cls ` J ) ` M ) = |^|_ v e. S ( v o. ( M o. v ) ) ) @=
        ? @.
    @}

    @( For any symmetrical entourage ` V ` and any subset ` A ` , build a
       neighborhood of ` A ` .  Corollary 1 of [BourbakiTop1] p.  II.5. @)
    utopnei @p |- ( ( U e. ( UnifOn ` X ) /\ ( V e. U /\ `' V = V )
        /\ A C_ X ) -> ( V " A ) e. ( ( nei ` J ) ` A ) ) @=
      ? @.

    @( Topological closure in an uniform space.  Corollary 1 of [BourbakiTop1]
       p.  II.5. @)
    utopcls @p |- ( ( U e. ( UnifOn ` X ) /\ A C_ X )
        -> ( ( cls ` J ) ` A ) = |^|_ v e. U ( v " A ) ) @=
      ? @.

    @( Condition for the topology induced by an uniform structure to be
       Hausdorff. @)
    utophaus @p |- ( U e. ( UnifOn ` X ) -> ( J e. Haus <->
      |^| U = ( _I |` X ) ) ) @=
      ? @.
$)
  $}

  ${
    $d a b v w x J $.  $d a b v w x U $.  $d a b v w x X $.
    utopreg.1 $e |- J = ( unifTop ` U ) $.
    $( All Hausdorff uniform spaces are regular.  Proposition 3 of
       [BourbakiTop1] p.  II.5.  (Contributed by Thierry Arnoux,
       16-Jan-2018.) $)
    utopreg $p |- ( ( U e. ( UnifOn ` X ) /\ J e. Haus ) -> J e. Reg ) $=
      ( vx vb va vv vw cfv wcel wa cv wss wrex wceq ad2antrr syl simplr syl2anc
      cust cha ctop wral creg cutop utoptop adantr syl5eqel cima ccnv ccom cnei
      ccl csn simp-4l simpr cuni ad3antrrr simpllr eqid eltopss utopbas syl6eqr
      unieqi sseqtr4d sseldd utopsnnei syl3anc neii2 simprl snss sylibr simplll
      vex ad6antr ustimasn sseqtrd simprr clsss ctx cxp ustssxp sqxpeqd simp-5r
      co imasncls syl22anc utop3cls sstrd imass1 jca reximdva simp-5l ustex3sym
      ex mpd r19.29a cmpt opnneip utopsnneip eleqtrd wb elrnmpt mpbid ralrimiva
      crn isreg sylanbrc ) ACUAJKZBUBKZLZBUCKZEMZFMZKZXOBUNJZJZGMZNZLZFBOZEXSUD
      ZGBUDBUEKXLBAUFJZUCDXJYDUCKXKACUGUHUIZXLYCGBXLXSBKZLZYBEXSYGXNXSKZLZXSHMZ
      XNUOZUJZPZYBHAYIYJAKZLZYMLZIMZUKYQPZYQYQYQULULZYJNZLZYBIAYPYQAKZLZUUALZYK
      XONZXOYQYKUJZNZLZFBOZYBUUDXMUUFYKBUMJJZKZUUIUUDYIXMYIYNYMUUBUUAUPZXLXMYFY
      HYEQZRZUUDYIUUBUUKUULYPUUBUUASZYIUUBLZXJUUBXNCKZUUKXJXKYFYHUUBUPZYIUUBUQU
      UPXSCXNUUPXSBURZCUUPXMYFXSUUSNZXLXMYFYHUUBYEUSXLYFYHUUBUTXSBUUSUUSVAZVBZT
      UUPXJCUUSPZUURXJCYDURUUSACVCBYDDVEVDZRVFYGYHUUBSVGXNABYQCDVHVITYKFBUUFVJT
      UUDUUHYAFBUUDXOBKZLZUUHYAUVFUUHLZXPXTUVGUUEXPUVFUUEUUGVKXNXOEVOVLVMUVGXRY
      LXSUVGXRUUFXQJZYLUVGXMUUFUUSNUUGXRUVHNUUDXMUVEUUHUUNQUVGUUFCUUSUVGXJUUBUU
      QUUFCNUUDXJUVEUUHUUDYIXJUULXJXKYFYHVNZRZQZUUDUUBUVEUUHUUOQYIUUQYNYMUUBUUA
      UVEUUHYIXSCXNYIXSUUSCYIXMYFUUTUUMXLYFYHSZUVBTZYIXJUVCUVIUVDRVFYGYHUQZVGZV
      PXNAYQCVQVIUVGXJUVCUVKUVDRVRUVFUUEUUGVSUUFXOBUUSUVAVTVIUUDUVHYLNUVEUUHUUD
      UVHYQBBWAWFUNJJZYKUJZYLUUDXMXMYQUUSUUSWBZNXNUUSKUVHUVQNUUNUUNUUDYQCCWBZUV
      RUUDXJUUBYQUVSNZUVJUUOAYQCWCTZUUDCUUSUUDXJUVCUVJUVDRWDVRUUDXSUUSXNUUDYIUU
      TUULUVMRYGYHYNYMUUBUUAWEVGXNYQBBUUSUUSUVAUVAWGWHUUDUVPYJNUVQYLNUUDUVPYSYJ
      UUDXJUVTUUBYRUVPYSNUVJUWAUUOUUCYRYTVKABYQYQCDWIWHUUCYRYTVSWJUVPYJYKWKRWJQ
      WJYOYMUUBUUAUVEUUHWEVFWLWPWMWQYPXJYNUUAIAOXJXKYFYHYNYMWNYIYNYMSIAYJCWOTWR
      YIXSHAYLWSZXGZKZYMHAOZYIXSUUJUWCYIXMYFYHXSUUJKUUMUVLUVNXNBXSWTVIYIXJUUQUU
      JUWCPUVIUVOHXNABCDXATXBYIYFUWDUWEXCUVLHAYLXSUWBBUWBVAXDRXEWRXFXFGEFBXHXI
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Uniform Spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c UnifSt $. $( Uniform Structure extractor function $)
  $c UnifSp $. $( The class of uniform spaces. $)
  $c toUnifSp $. $( The function building a uniform space $)

  $( Extend class notation with the Uniform Structure extractor function. $)
  cuss $a class UnifSt $.

  $( Extend class notation with the class of uniform spaces. $)
  cusp $a class UnifSp $.

  $( Extend class notation with the function mapping a uniform structure to a
     uniform space. $)
  ctus $a class toUnifSp $.

  $( Define the uniform structure extractor function.  Similarly with ~ df-topn
     this differs from ~ df-unif when a structure has been restricted using
     ~ df-ress ; in this case the ` UnifSet ` component will still have a
     uniform set over the larger set, and this function fixes this by
     restricting the uniform set as well.  (Contributed by Thierry Arnoux,
     1-Dec-2017.) $)
  df-uss $a |- UnifSt = ( f e. _V |->
    ( ( UnifSet ` f ) |`t ( ( Base ` f ) X. ( Base ` f ) ) ) ) $.

  $( Definition of a uniform space, i.e. a base set with an uniform structure
     and its induced topology.  Derived from definition 3 of [BourbakiTop1] p.
     II.4.  (Contributed by Thierry Arnoux, 17-Nov-2017.) $)
  df-usp $a |- UnifSp = { f | (
       ( UnifSt ` f ) e. ( UnifOn ` ( Base ` f ) )
    /\ ( TopOpen ` f ) = ( unifTop ` ( UnifSt ` f ) ) ) } $.

  $( Define the function mapping a uniform structure to a uniform space.
     (Contributed by Thierry Arnoux, 17-Nov-2017.) $)
  df-tus $a |- toUnifSp = ( u e. U. ran UnifOn |->
      ( { <. ( Base ` ndx ) , dom U. u >. , <. ( UnifSet ` ndx ) , u >. }
        sSet <. ( TopSet ` ndx ) , ( unifTop ` u ) >. ) ) $.

  ${
    $d w W $.
    ussval.1 $e |- B = ( Base ` W ) $.
    ussval.2 $e |- U = ( UnifSet ` W ) $.
    $( The uniform structure on uniform space ` W ` .  This proof uses a trick
       with ~ fvprc to avoid requiring ` W ` to be a set.  (Contributed by
       Thierry Arnoux, 3-Dec-2017.) $)
    ussval $p |- ( U |`t ( B X. B ) ) = ( UnifSt ` W ) $=
      ( vw cvv wcel cxp crest co cuss cfv wceq cunif cbs cv fveq2 c0 fvprc ovex
      sqxpeqd oveq12d df-uss fvmpt xpeq12i oveq12i syl6reqr 0rest syl5eq oveq1d
      wn 3eqtr4a pm2.61i ) CGHZBAAIZJKZCLMZNUOURCOMZCPMZUTIZJKZUQFCFQZOMZVCPMZV
      EIZJKVBGLVCCNZVDUSVFVAJVCCORVGVEUTVCCPRUBUCFUDUSVAJUAUEBUSUPVAJEAUTAUTDDU
      FUGUHUOULZSUPJKSUQURUPUIVHBSUPJVHBUSSECOTUJUKCLTUMUN $.

    $( In case the base of the ` UnifSt ` element of the uniform space is the
       base of its element structure, then ` UnifSt ` does not restrict it
       further.  (Contributed by Thierry Arnoux, 4-Dec-2017.) $)
    ussid $p |- ( ( B X. B ) = U. U -> U = ( UnifSt ` W ) ) $=
      ( cxp cuni wceq crest co cuss cfv oveq2 cvv wcel id cbs fvex eqeltri xpex
      syl6eqelr uniexb sylibr eqid restid syl eqtr2d ussval syl6eq ) AAFZBGZHZB
      BUJIJZCKLULUMBUKIJZBUJUKBIMULBNOZUNBHULUKNOUOULUKUJNULPAAACQLNDCQRSZUPTUA
      BUBUCBNUKUKUDUEUFUGABCDEUHUI $.
  $}

  ${
    $d w B $.  $d w J $.  $d w U $.  $d w W $.
    isusp.1 $e |- B = ( Base ` W ) $.
    isusp.2 $e |- U = ( UnifSt ` W ) $.
    isusp.3 $e |- J = ( TopOpen ` W ) $.
    $( The predicate ` W ` is a uniform space.  (Contributed by Thierry Arnoux,
       4-Dec-2017.) $)
    isusp $p |- ( W e. UnifSp
      <-> ( U e. ( UnifOn ` B ) /\ J = ( unifTop ` U ) ) ) $=
      ( vw cusp wcel cvv cust cfv cutop wceq c0 cbs fveq2d cuss ctopn wa wn csn
      elex wne 0nep0 fvprc syl5eq ust0 syl6eq eleq2d fvex eqeltri syl6bb eqeq1d
      elsn bitrd necon3bbid mpbiri con4i adantr syl6eqr eleq12d eqeq12d anbi12d
      cv fveq2 df-usp elab2g pm5.21nii ) DIJDKJZBALMZJZCBNMZOZUAZDIUDVMVKVOVKVM
      VKUBZVMUBPPUCZUEUFVQVMPVRVQVMBVROZPVROVQVMBVRUCZJVSVQVLVTBVQVLPLMVTVQAPLV
      QADQMZPEDQUGUHRUIUJUKBVRBDSMZKFDSULUMUPUNVQBPVRVQBWBPFDSUGUHUOUQURUSUTVAH
      VFZSMZWCQMZLMZJZWCTMZWDNMZOZUAVPHDIKWCDOZWGVMWJVOWKWDBWFVLWKWDWBBWCDSVGFV
      BZWKWEALWKWEWAAWCDQVGEVBRVCWKWHCWIVNWKWHDTMCWCDTVGGVBWKWDBNWLRVDVEHVHVIVJ
      $.
  $}

  ${
    ressunif.1 $e |- H = ( G |`s A ) $.
    ressunif.2 $e |- U = ( UnifSet ` G ) $.
    $( ` UnifSet ` is unaffected by restriction.  (Contributed by Thierry
       Arnoux, 7-Dec-2017.) $)
    ressunif $p |- ( A e. V -> U = ( UnifSet ` H ) ) $=
      ( cunif c1 c3 cdc df-unif 1nn0 3nn decnncl 1nn 3nn0 1lt10 declti resslem
      ) ABDHIJKECFGLIJMNOIJIPQMRST $.
  $}

  $( Value of the uniform structure of a restricted space.  (Contributed by
     Thierry Arnoux, 12-Dec-2017.) $)
  ressuss $p |- ( A e. V ->
    ( UnifSt ` ( W |`s A ) ) = ( ( UnifSt ` W ) |`t ( A X. A ) ) ) $=
    ( wcel cuss cfv cxp crest cunif cbs cin cress eqid ussval cvv wceq fvex a1i
    co syl5eqr oveq1i xpex sqxpexg restco syl3anc ressbas sqxpeqd syl5eq oveq2d
    inxp incom ressunif oveq1d 3eqtrd eqtr2d ) ABDZCEFZAAGZHSZCIFZCJFZVAGZURKZH
    SZCALSZEFZUPUSUTVBHSZURHSZVDVGUQURHVAUTCVAMZUTMZNUAUPUTODZVBODZURODVHVDPVKU
    PCIQRVLUPVAVACJQZVMUBRABUCVBURUTOOOUDUETUPVDUTVEJFZVNGZHSVEIFZVOHSZVFUPVCVO
    UTHUPVCVAAKZVRGVOVAVAAAUJUPVRVNUPVRAVAKVNAVAUKAVAVEBCVEMZVIUFTUGUHUIUPUTVPV
    OHAUTCVEBVSVJULUMVQVFPUPVNVPVEVNMVPMNRUNUO $.

  ${
    ressust.x $e |- X = ( Base ` W ) $.
    ressust.t $e |- T = ( UnifSt ` ( W |`s A ) ) $.
    $( The uniform structure of a restricted space.  (Contributed by Thierry
       Arnoux, 22-Jan-2018.) $)
    ressust $p |- ( ( W e. UnifSp /\ A C_ X ) -> T e. ( UnifOn ` A ) ) $=
      ( cusp wcel wss wa cuss cfv cxp crest co cust cvv wceq cbs eqid fvex ssex
      cress eqeltri adantl ressuss syl5eq ctopn cutop isusp simplbi trust sylan
      syl eqeltrd ) CGHZADIZJZBCKLZAAMNOZAPLZURBCAUCOKLZUTFURAQHZVBUTRUQVCUPADD
      CSLQECSUAUDUBUEAQCUFUNUGUPUSDPLHZUQUTVAHUPVDCUHLZUSUILRDUSVECEUSTVETUJUKA
      USDULUMUO $.
  $}

  ${
    ressusp.1 $e |- B = ( Base ` W ) $.
    ressusp.2 $e |- J = ( TopOpen ` W ) $.
    $( The restriction of a uniform topological space to an open set is a
       uniform space.  (Contributed by Thierry Arnoux, 16-Dec-2017.) $)
    ressusp $p |- ( ( W e. UnifSp /\ W e. TopSp /\ A e. J )
      -> ( W |`s A ) e. UnifSp ) $=
      ( cusp wcel co cuss cust crest cutop wceq eqid isusp sylib syl2anc fveq2d
      cfv ctps w3a cress cbs cxp ressuss 3ad2ant3 wss simp1 simpld ctopon simp2
      istps simp3 toponss trust eqeltrd ressbas2 syl eleqtrd simprd restutopopn
      wa oveq1d 3eqtr4d resstopn sylanbrc ) DGHZDUAHZACHZUBZDAUCIZJTZVLUDTZKTZH
      CALIZVMMTZNVLGHVKVMAKTZVOVKVMDJTZAAUELIZVRVJVHVMVTNVIACDUFUGZVKVSBKTHZABU
      HZVTVRHVKWBCVSMTZNZVKVHWBWEVCVHVIVJUIBVSCDEVSOFPQZUJZVKCBUKTHZVJWCVKVIWHV
      HVIVJULBCDEFUMQVHVIVJUNZACBUORZAVSBUPRUQVKAVNKVKWCAVNNWJABVLDVLOZEURUSSUT
      VKWDALIZVTMTZVPVQVKWBAWDHWLWMNWGVKACWDWIVKWBWEWFVAZUTAVSBVBRVKCWDALWNVDVK
      VMVTMWASVEVNVMVPVLVNOVMOAVLCDWKFVFPVG $.
  $}

  ${
    $d u U $.  $d u X $.
    $( The value of the uniform space mapping function.  (Contributed by
       Thierry Arnoux, 5-Dec-2017.) $)
    tusval $p |- ( U e. ( UnifOn ` X ) -> ( toUnifSp ` U ) =
      ( { <. ( Base ` ndx ) , dom U. U >. , <. ( UnifSet ` ndx ) , U >. }
        sSet <. ( TopSet ` ndx ) , ( unifTop ` U ) >. ) ) $=
      ( vu cust cfv wcel cnx cbs cv cuni cdm cop cunif cpr cutop csts ctus wceq
      co opeq2d cts crn cvv cmpt df-tus a1i simpr unieqd preq12d fveq2d oveq12d
      wa dmeqd elrnust ovexd fvmptd ) ABDEFZCAGHEZCIZJZKZLZGMEZUSLZNZGUAEZUSOEZ
      LZPSZURAJZKZLZVCALZNZVFAOEZLZPSDUBJZQUCQCVQVIUDRUQCUEUFUQUSARZULZVEVNVHVP
      PVSVBVLVDVMVSVAVKURVSUTVJVSUSAUQVRUGZUHUMTVSUSAVCVTTUIVSVGVOVFVSUSAOVTUJT
      UKABUNUQVNVPPUOUP $.

    tuslem.k $e |- K = ( toUnifSp ` U ) $.
    $( Lemma for ~ tusbas , ~ tusunif , and ~ tustopn .  (Contributed by
       Thierry Arnoux, 5-Dec-2017.) $)
    tuslem $p |- ( U e. ( UnifOn ` X ) -> ( X = ( Base ` K ) /\
        U = ( UnifSet ` K ) /\ ( unifTop ` U ) = ( TopOpen ` K ) ) ) $=
      ( cfv wcel cbs wceq cunif cnx cuni cop cts co wne c1 c9 cvv c3 eqid cutop
      cust ctopn cdm cpr csts baseid 1re ltneii basendx tsetndx neeq12i setsnid
      1lt9 mpbir ustbas2 uniexg dmexg cdc df-unif 1nn 3nn0 1lt10 declti decnncl
      1nn0 3nn 2strbas 3syl eqtrd ctus tusval syl5eq fveq2d 3eqtr4a unifid 9nn0
      9re 9lt10 gtneii unifndx 2strop prex tsetid setsid mp2an syl6reqr utopbas
      fvex crest unieqd 3eqtr3rd oveq2d restid ax-mp topnval 3eqtr3g 3jca ) ACU
      BEZFZCBGEZHABIEZHAUAEZBUCEZHWTJGEZAKZUDZLZJIEZALZUEZGEZXKJMEZXCLUFNZGECXA
      XCXMGXKUGXEXMOPQOPQUHUNUIXEPXMQUJUKULUOUMWTCXGXLACUPWTXFRFXGRFXGXLHAWSUQX
      FRURXGAIXKPSUSZRXKTZUTPSPVAVBVFVCVDZPSVFVGVEZVHVIVJWTBXNGWTBAVKEXNDACVLVM
      ZVNVOZWTXKIEXNIEAXBXCXMIXKVPXIXMOXOQOQXOVRPSQVAVBVQVSVDVTXIXOXMQWAUKULUOU
      MXGAIXKXOWSXPUTXQXRWBWTBXNIXSVNVOWTXCBMEZXDWTYAXNMEZXCWTBXNMXSVNXKRFXCRFX
      CYBHXHXJWCAUAWIRXCMRXKWDWEWFWGZWTYAYAKZWJNZYAXAWJNYAXDWTYDXAYAWJWTCXCKXAY
      DACWHXTWTXCYAYCWKWLWMYARFYEYAHBMWIYARYDYDTWNWOXAYABXATYATWPWQVJWR $.

    $( The base set of a constructed uniform space.  (Contributed by Thierry
       Arnoux, 5-Dec-2017.) $)
    tusbas $p |- ( U e. ( UnifOn ` X ) -> X = ( Base ` K ) ) $=
      ( cust cfv wcel cbs wceq cunif cutop ctopn tuslem simp1d ) ACEFGCBHFIABJF
      IAKFBLFIABCDMN $.

    $( The uniform structure of a constructed uniform space.  (Contributed by
       Thierry Arnoux, 5-Dec-2017.) $)
    tusunif $p |- ( U e. ( UnifOn ` X ) -> U = ( UnifSet ` K ) ) $=
      ( cust cfv wcel cbs wceq cunif cutop ctopn tuslem simp2d ) ACEFGCBHFIABJF
      IAKFBLFIABCDMN $.

    $( The uniform structure of a constructed uniform space.  (Contributed by
       Thierry Arnoux, 15-Dec-2017.) $)
    tususs $p |- ( U e. ( UnifOn ` X ) -> U = ( UnifSt ` K ) ) $=
      ( cust cfv wcel cunif cuss tusunif cbs cxp cuni wceq ustuni unieqd tusbas
      sqxpeqd 3eqtr3rd eqid ussid syl eqtrd ) ACEFGZABHFZBIFZABCDJZUDBKFZUHLZUE
      MZNUEUFNUDAMCCLUJUIACOUDAUEUGPUDCUHABCDQRSUHUEBUHTUETUAUBUC $.

    ${
      tustopn.j $e |- J = ( unifTop ` U ) $.
      $( The topology induced by a constructed uniform space.  (Contributed by
         Thierry Arnoux, 5-Dec-2017.) $)
      tustopn $p |- ( U e. ( UnifOn ` X ) -> J = ( TopOpen ` K ) ) $=
        ( cust cfv wcel cutop ctopn cbs wceq cunif tuslem simp3d syl5eq ) ADGHI
        ZBAJHZCKHZFRDCLHMACNHMSTMACDEOPQ $.
    $}

    $( A constructed uniform space is an uniform space.  (Contributed by
       Thierry Arnoux, 5-Dec-2017.) $)
    tususp $p |- ( U e. ( UnifOn ` X ) -> K e. UnifSp ) $=
      ( cust cfv wcel cuss cbs ctopn cutop wceq id tususs tusbas fveq2d 3eltr3d
      cusp cunif eqid tusunif tuslem simp3d eqtr3d 3eqtr3d isusp sylanbrc ) ACE
      FZGZBHFZBIFZEFZGBJFZUJKFZLBRGUIAUHUJULUIMABCDNZUICUKEABCDOPQUIAKFZBSFZKFU
      MUNUIAUQKABCDUAZPUICUKLAUQLUPUMLABCDUBUCUIUQUJKUIAUQUJURUOUDPUEUKUJUMBUKT
      UJTUMTUFUG $.

    $( A constructed uniform space is a topological space.  (Contributed by
       Thierry Arnoux, 25-Jan-2018.) $)
    tustps $p |- ( U e. ( UnifOn ` X ) -> K e. TopSp ) $=
      ( cust cfv wcel ctopn cbs ctopon ctps cutop utoptopon eqid tustopn tusbas
      fveq2d 3eltr3d istps sylibr ) ACEFGZBHFZBIFZJFZGBKGUAALFZCJFUBUDACMAUEBCD
      UENOUACUCJABCDPQRUCUBBUCNUBNST $.
  $}

  ${
    uspreg.1 $e |- J = ( TopOpen ` W ) $.
    $( If a uniform space is Hausdorff, it is regular.  Proposition 3 of
       [BourbakiTop1] p.  II.5.  (Contributed by Thierry Arnoux,
       4-Jan-2018.) $)
    uspreg $p |- ( ( W e. UnifSp /\ J e. Haus ) -> J e. Reg ) $=
      ( cusp wcel cha wa cuss cfv cutop creg wceq cbs cust isusp simprbi adantr
      eqid simplbi simpr eqeltrrd utopreg syl2anc eqeltrd ) BDEZAFEZGZABHIZJIZK
      UEAUILZUFUEUHBMIZNIEZUJUKUHABUKRUHRCOZPQZUGULUIFEUIKEUEULUFUEULUJUMSQUGAU
      IFUNUEUFTUAUHUIUKUIRUBUCUD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Uniform continuity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c uCn $.

  $( Extend class notation with the uniform continuity operation. $)
  cucn $a class uCn $.

  ${
    $d u v f s r x y $.
    $( Define a function on two uniform structures which value is the set of
       uniformly continuous functions from the first uniform structure to the
       second.  A function ` f ` is uniformly continuous if, roughly speaking,
       it is possible to guarantee that ` ( f `` x ) ` and ` ( f `` y ) ` be as
       close to each other as we please by requiring only that ` x ` and ` y `
       are sufficiently close to each other; unlike ordinary continuity, the
       maximum distance between ` ( f `` x ) ` and ` ( f `` y ) ` cannot depend
       on ` x ` and ` y ` themselves.  This formulation is the definition 1 of
       [BourbakiTop1] p.  II.6.  (Contributed by Thierry Arnoux,
       16-Nov-2017.) $)
    df-ucn $a |- uCn = ( u e. U. ran UnifOn , v e. U. ran UnifOn |->
       { f e. ( dom U. v ^m dom U. u ) | A. s e. v E. r e. u
            A. x e. dom U. u A. y e. dom U. u
            ( x r y -> ( f ` x ) s ( f ` y ) ) } ) $.
  $}

  ${
    $d f r s u v x y U $.  $d f r s u v x V $.  $d f r s x y X $.
    $d f r s x Y $.
    $( The set of all uniformly continuous function from uniform space ` U ` to
       uniform space ` V ` .  (Contributed by Thierry Arnoux, 16-Nov-2017.) $)
    ucnval $p |- ( ( U e. ( UnifOn ` X ) /\ V e. ( UnifOn ` Y ) )
      -> ( U uCn V ) = { f e. ( Y ^m X ) | A. s e. V E. r e. U
            A. x e. X A. y e. X ( x r y -> ( f ` x ) s ( f ` y ) ) } ) $=
      ( vu vv cfv wcel co cv cuni cdm wral cmap wceq cust wa cucn wbr wrex crab
      wi crn cvv elrnust adantr adantl ovex rabex a1i simpr dmeqd simpl oveq12d
      raleqdv raleqbidv rexeqbidv rabeqbidv ovmpt2ga syl3anc ustbas2 oveqan12rd
      unieqd df-ucn rexbidv ralbidv eqtr4d ) CFUALMZEGUALMZUBZCEUCNZAOZBOZIOUDV
      QDOZLVRVSLHOUDUGZBCPZQZRZAWBRZICUEZHERZDEPZQZWBSNZUFZVTBFRZAFRZICUEZHERZD
      GFSNZUFVOCUAUHPZMZEWPMZWJUIMZVPWJTVMWQVNCFUJUKVNWRVMEGUJULWSVOWFDWIWHWBSU
      MUNUOJKCEWPWPVTBJOZPZQZRZAXBRZIWTUEZHKOZRZDXFPZQZXBSNZUFWJUCUIWTCTZXFETZU
      BZXGWFDXJWIXMXIWHXBWBSXMXHWGXMXFEXKXLUPZVHUQXMXAWAXMWTCXKXLURZVHUQZUSXMXE
      WEHXFEXNXMXDWDIWTCXOXMXCWCAXBWBXPXMVTBXBWBXPUTVAVBVAVCABKJDHIVIVDVEVOWNWF
      DWOWIVNVMGWHFWBSEGVFCFVFZVGVOWMWEHEVOWLWDICVOWKWCAFWBVMFWBTVNXQUKZVOVTBFW
      BXRUTVAVJVKVCVL $.
  $}

  ${
    $d f r s x y F $.  $d f r s x y U $.  $d f r s x V $.  $d f r s x y X $.
    $d f r s x Y $.
    $( The predicate " ` F ` is a uniformly continuous function from uniform
       space ` U ` to uniform space ` V ` ."  (Contributed by Thierry Arnoux,
       16-Nov-2017.) $)
    isucn $p |- ( ( U e. ( UnifOn ` X ) /\ V e. ( UnifOn ` Y ) )
      -> ( F e. ( U uCn V ) <-> ( F : X --> Y /\ A. s e. V E. r e. U
          A. x e. X A. y e. X ( x r y -> ( F ` x ) s ( F ` y ) ) ) ) ) $=
      ( vf cust cfv wcel wa co cv wbr wi wral cvv cucn cmap wrex wf crab ucnval
      eleq2d fveq1 breq12d imbi2d ralbidv rexralbidv elrab syl6bb elfvex elmapg
      wceq wb syl2anr anbi1d bitrd ) CFKLMZEGKLMZNZDCEUAOZMZDGFUBOZMZAPZBPZIPQZ
      VIDLZVJDLZHPZQZRZBFSZAFSICUCZHESZNZFGDUDZVSNVDVFDVKVIJPZLZVJWBLZVNQZRZBFS
      ZAFSICUCZHESZJVGUEZMVTVDVEWJDABCJEFGHIUFUGWIVSJDVGWBDUQZWHVRHEWKWGVQIACFW
      KWFVPBFWKWEVOVKWKWCVLWDVMVNVIWBDUHVJWBDUHUIUJUKULUKUMUNVDVHWAVSVCGTMFTMVH
      WAURVBEGKUOCFKUOGFDTTUPUSUTVA $.
  $}

  ${
    $d r s u v x y F $.  $d r u x y R $.  $d s u v x y S $.
    $d r s u v x y U $.  $d s u v x V $.  $d r s u v x y X $.
    $d s u v x y Y $.  $d r s u v x y ph $.
    isucn2.u $e |- U = ( ( X X. X ) filGen R ) $.
    isucn2.v $e |- V = ( ( Y X. Y ) filGen S ) $.
    isucn2.1 $e |- ( ph -> U e. ( UnifOn ` X ) ) $.
    isucn2.2 $e |- ( ph -> V e. ( UnifOn ` Y ) ) $.
    isucn2.3 $e |- ( ph -> R e. ( fBas ` ( X X. X ) ) ) $.
    isucn2.4 $e |- ( ph -> S e. ( fBas ` ( Y X. Y ) ) ) $.
    $( The predicate " ` F ` is a uniformly continuous function from uniform
       space ` U ` to uniform space ` V ` ." , expressed with filter bases for
       the entourages.  (Contributed by Thierry Arnoux, 26-Jan-2018.) $)
    isucn2 $p |- ( ph -> ( F e. ( U uCn V ) <-> ( F : X --> Y
      /\ A. s e. S E. r e. R A. x e. X A. y e. X
                                  ( x r y -> ( F ` x ) s ( F ` y ) ) ) ) ) $=
      ( wi wa vu vv cucn co wcel wf cv wbr cfv wral wrex cust isucn syl2anc wss
      wb cxp cfg cfbas ssfg syl syl6sseqr adantr sselda simplr wceq breq imbi2d
      ralbidv rexralbidv rspcva simpr syl6eleq elfg simplbda syldan ssbr imim1d
      adantl ralrimivw ralim ralimi ex reximdva mpd r19.37v rexlimdva ad3antrrr
      ralrimiva ssrexv imbi1d 2ralbidv cbvrexv syl6ib ralimdv nfv nfra1 simp-4r
      3syl nfan rspa simp-4l imim2d reximdv syl21anc r19.29af syld imp pm5.32da
      impbida bitrd ) AGFHUCUDUEZIJGUFZBUGZCUGZUAUGZUHZXNGUIZXOGUIZUBUGZUHZSZCI
      UJZBIUJZUAFUKZUBHUJZTZXMXNXOLUGZUHZXRXSKUGZUHZSZCIUJZBIUJZLDUKZKEUJZTAFIU
      LUIUEHJULUIUEXLYGUPOPBCFGHIJUBUAUMUNAXMYFYPAXMTZYFYPYQYFTZYOKEYRYJEUEZTZX
      QYKSZCIUJZBIUJZUAFUKZYOYTYJHUEYFUUDYREHYJYQEHUOZYFAUUEXMAEJJUQZEURUDZHAEU
      UFUSUIUEZEUUGUOREUUFUTVANVBVCVCVDYQYFYSVEYEUUDUBYJHXTYJVFZYCUUBUABFIUUIYB
      UUACIUUIYAYKXQXRXSXTYJVGVHVIVJVKUNAUUDYOSXMYFYSAUUCYOUAFAXPFUEZTZUUCYNSZL
      DUKZUUCYOSUUKYHXPUOZLDUKZUUMAUUJXPIIUQZDURUDZUEZUUOUUKXPFUUQAUUJVLMVMAUUR
      XPUUPUOZUUOADUUPUSUIUEZUURUUSUUOTUPQLXPDUUPVNVAVOVPAUUOUUMSUUJAUUNUULLDAY
      HDUETZUUNUULUVAUUNTZUUAYLSZCIUJZBIUJUUBYMSZBIUJUULUVBUVDBIUVBUVCCIUUNUVCU
      VAUUNYIXQYKYHXPXNXOVQVRVSVTVTUVDUVEBIUUAYLCIWAWBUUBYMBIWAWSWCWDVCWEUUCYNL
      DWFVAWGWHWEWIYQYPYFYQYPUUDKEUJZYFAYPUVFSXMAYOUUDKEADFUOZYOUUDSADUUQFAUUTD
      UUQUOQDUUPUTVAMVBUVGYOYNLFUKUUDYNLDFWJYNUUCLUAFYHXPVFZYLUUABCIIUVHYIXQYKX
      NXOYHXPVGWKWLWMWNVAWOVCYQUVFYFYQUVFTZYEUBHUVIXTHUEZTZYJXTUOZYEKEUVIUVJKYQ
      UVFKYQKWPUUDKEWQWTUVJKWPWTUVKYSTZUVLTZUUDYEUVNUVFYSUUDYQUVFUVJYSUVLWRUVKY
      SUVLVEZUUDKEXAUNUVNYQYSUVLUUDYESYQUVFUVJYSUVLXBUVOUVMUVLVLYQYSTZUVLTZUUCY
      DUAFUVQUUBYCBIUVQUUAYBCIUVQYKYAXQUVLYKYASUVPYJXTXRXSVQVSXCWOWOXDXEWEUVKUU
      HXTUUGUEZUVLKEUKZAUUHXMUVFUVJRWHUVKXTHUUGUVIUVJVLNVMUUHUVRXTUUFUOUVSKXTEU
      UFVNVOUNXFWIWCXGXHXJXIXK $.
  $}

  ${
    $d p x y F $.  $d p x y X $.
    ucnprima.1 $e |- ( ph -> U e. ( UnifOn ` X ) ) $.
    ucnprima.2 $e |- ( ph -> V e. ( UnifOn ` Y ) ) $.
    ucnprima.3 $e |- ( ph -> F e. ( U uCn V ) ) $.
    ucnprima.4 $e |- ( ph -> W e. V ) $.
    ucnprima.5 $e |- G = ( x e. X , y e. X |-> <. ( F ` x ) , ( F ` y ) >. ) $.
    $( Reformulate the ` G ` function as a mapping with one variable.
       (Contributed by Thierry Arnoux, 19-Nov-2017.) $)
    ucnimalem $p |- G = ( p e. ( X X. X )
                       |-> <. ( F ` ( 1st ` p ) ) , ( F ` ( 2nd ` p ) ) >. ) $=
      ( cv cfv cop vex cmpt2 cxp c1st c2nd op1std fveq2d op2ndd opeq12d mpt2mpt
      cmpt wceq eqtr4i ) FBCIIBQZERZCQZERZSZUAKIIUBKQZUCRZERZURUDRZERZSZUJPBCKI
      IVCUQURUMUOSUKZUTUNVBUPVDUSUMEUMUOURBTZCTZUEUFVDVAUOEUMUOURVEVFUGUFUHUIUL
      $.

    $d p r w x y F $.  $d p x y G $.  $d p r w x y U $.  $d r w x V $.
    $d p r w x y W $.  $d p r w x y X $.  $d r w x Y $.  $d p r x y ph $.
    $( An equivalent statement of the definition of uniformly continuous
       function.  (Contributed by Thierry Arnoux, 19-Nov-2017.) $)
    ucnima $p |- ( ph -> E. r e. U ( G " r ) C_ W ) $=
      ( cfv wcel wa wrex vp vw cv wral cima wss wi wbr wf cucn co cust wb isucn
      syl2anc mpbid simprd wceq breq imbi2d ralbidv rexralbidv sylc cxp simplll
      rspcv simplr jca ustssxp sylan sselda adantlr simpr cop elxp2 sylib df-br
      eleq1d syl6bbr c1st c2nd cvv opex ucnimalem fvmpt2 sylancl 1st2nd2 eqtr3d
      syl vex simpld fveq2d opeq12d eqtr4d imbi12d exbiri reximdv mpd r19.29d2r
      opth pm3.35 rexlimivw imp syl21anc ralrimiva ex reximdva wfun cdm mpt2fun
      dmmpt2 syl6sseqr funimass4 sylancr biimprd r19.29r reximi ) AUAUCZFQZHRZU
      AKUCZUDZYBFYAUEHUFZUGZSZKDTZYCKDTAYBKDTZYDKDUDYFABUCZCUCZYAUHZYHEQZYIEQZH
      UHZUGZCIUDZBIUDZKDTZYGAHGRYJYKYLUBUCZUHZUGZCIUDZBIUDKDTZUBGUDZYQOAIJEUIZU
      UCAEDGUJUKRZUUDUUCSZNADIULQRZGJULQRUUEUUFUMLMBCDEGIJUBKUNUOUPUQUUBYQUBHGY
      RHURZUUAYOKBDIUUHYTYNCIUUHYSYMYJYKYLYRHUSUTVAVBVFVCAYPYBKDAYADRZSZYPYBUUJ
      YPSZXTUAYAUUKXRYARZSZAYPSZXRIIVDZRZUULXTUUMAYPAUUIYPUULVEUUJYPUULVGVHUUJU
      ULUUPYPUUJYAUUOXRAUUGUUIYAUUOUFLDYAIVIVJZVKVLUUKUULVMUUNUUPSZUULXTUURYNYN
      UULXTUGZUGZSZCITZBITUUSUURYNUUTBCIIAYPUUPVGAUUPUUTCITZBITZYPAUUPSZXRYHYIV
      NZURZCITZBITZUVDUVEUUPUVIAUUPVMBCXRIIVOVPUVEUVHUVCBIUVEUVGUUTCIUVEUVGUUSY
      NUVEUVGSZUULYJXTYMUVJUULUVFYARZYJAUVGUULUVKUMUUPAUVGSXRUVFYAAUVGVMVRVLYHY
      IYAVQVSUVJXTYKYLVNZHRYMUVJXSUVLHUVJXSXRVTQZEQZXRWAQZEQZVNZUVLUVJUUPUVQWBR
      XSUVQURAUUPUVGVGZUVNUVPWCUAUUOUVQWBFABCDEFGHIJUALMNOPWDWEWFUVJYKUVNYLUVPU
      VJYHUVMEUVJYHUVMURZYIUVOURZUVJUVFUVMUVOVNZURUVSUVTSUVJXRUVFUWAUVEUVGVMUVJ
      UUPXRUWAURUVRXRIIWGWIWHYHYIUVMUVOBWJCWJWTVPZWKWLUVJYIUVOEUVJUVSUVTUWBUQWL
      WMWNVRYKYLHVQVSWOWPWQWQWRVLWSUVBUUSBIUVAUUSCIYNUUSXAXBXBWIXCXDXEXFXGWRAYD
      KDUUJYCYBUUJFXHYAFXIZUFYCYBUMBCIIUVLFPXJUUJYAUUOUWCUUQBCIIUVLFPYKYLWCXKXL
      UAYAHFXMXNXOXEYBYDKDXPUOYEYCKDYBYCXAXQWI $.

    $d r G $.
    $( The preimage by a uniformly continuous function ` F ` of an entourage
       ` W ` of ` Y ` is an entourage of ` X ` .  Note of the definition 1 of
       [BourbakiTop1] p.  II.6.  (Contributed by Thierry Arnoux,
       19-Nov-2017.) $)
    ucnprima $p |- ( ph -> ( `' G " W ) e. U ) $=
      ( vr cv wss wcel cfv ccnv cima wrex ucnima wa wfun cdm wb cop mpt2fun cxp
      cust ustssxp sylan opex dmmpt2 syl6sseqr funimass3 sylancr rexbidva mpbid
      wi adantr simpr cnvimass sseqtri a1i ustssel syl3anc rexlimdva mpd ) APQZ
      FUAHUBZRZPDUCZVMDSZAFVLUBHRZPDUCVOABCDEFGHIJPKLMNOUDAVQVNPDAVLDSZUEZFUFVL
      FUGZRVQVNUHBCIIBQETZCQETZUIZFOUJVSVLIIUKZVTADIULTSZVRVLWDRKDVLIUMUNBCIIWC
      FOWAWBUOUPZUQVLHFURUSUTVAAVNVPPDVSWEVRVMWDRZVNVPVBAWEVRKVCAVRVDWGVSVMVTWD
      FHVEWFVFVGDVLVMIVHVIVJVK $.
  $}

  ${
    $d r s x y U $.  $d r s x y X $.
    $( The identity is uniformly continuous from a uniform structure to itself.
       Example 1 of [BourbakiTop1] p.  II.6.  (Contributed by Thierry Arnoux,
       16-Nov-2017.) $)
    iducn $p |- ( U e. ( UnifOn ` X ) -> ( _I |` X ) e. ( U uCn U ) ) $=
      ( vx vy vr vs cust cfv wcel cid cres cucn co wf cv wbr wi wral wa fvresi
      wrex wf1o f1oi f1of mp1i simpr breqan12d biimprd adantl ralrimivva imbi1d
      weq breq 2ralbidv rspcev syl2anc ralrimiva wb isucn anidms mpbir2and ) AB
      GHIZJBKZAALMIZBBVCNZCOZDOZEOZPZVFVCHZVGVCHZFOZPZQZDBRCBRZEAUAZFARZBBVCUBV
      EVBBUCBBVCUDUEVBVPFAVBVLAIZSZVRVFVGVLPZVMQZDBRCBRZVPVBVRUFVSWACDBBVFBIZVG
      BIZSZWAVSWEVMVTWCWDVJVFVKVGVLBVFTBVGTUGUHUIUJVOWBEVLAEFULZVNWACDBBWFVIVTV
      MVFVGVHVLUMUKUNUOUPUQVBVDVEVQSURCDAVCABBFEUSUTVA $.
  $}

  ${
    $d r s x y A $.  $d r s x y U $.  $d r s x y V $.  $d r s x y X $.
    $d r s x Y $.  $d r s x y ph $.
    cstucnd.1 $e |- ( ph -> U e. ( UnifOn ` X ) ) $.
    cstucnd.2 $e |- ( ph -> V e. ( UnifOn ` Y ) ) $.
    cstucnd.3 $e |- ( ph -> A e. Y ) $.
    $( A constant function is uniformly continuous.  Deduction form.  Example 1
       of [BourbakiTop1] p.  II.6.  (Contributed by Thierry Arnoux,
       16-Nov-2017.) $)
    cstucnd $p |- ( ph -> ( X X. { A } ) e. ( U uCn V ) ) $=
      ( vx vy vr vs wcel cv wbr cfv wral wa syl2anc csn cxp cucn co wf fconst6g
      wi wrex syl c0 cust adantr ustne0 ad3antrrr simpllr ustref syl3anc simprl
      wne wceq fvconst2g simprr 3brtr4d ralrimivva reximdva0 mpdan ralrimiva wb
      a1d isucn mpbir2and ) AEBUAUBZCDUCUDNZEFVLUEZJOZKOZLOZPZVOVLQZVPVLQZMOZPZ
      UGZKERJERZLCUHZMDRZABFNZVNIEBFUFUIAWEMDAWADNZSZCUJUSZWEWICEUKQNZWJAWKWHGU
      LCEUMUIWIWDLCWIVQCNZSZWCJKEEWMVOENZVPENZSZSZWBVRWQBBVSVTWAWQDFUKQNZWHWGBB
      WAPAWRWHWLWPHUNAWHWLWPUOAWGWHWLWPIUNZBDWAFUPUQWQWGWNVSBUTWSWMWNWOUREBVOFV
      ATWQWGWOVTBUTWSWMWNWOVBEBVPFVATVCVIVDVEVFVGAWKWRVMVNWFSVHGHJKCVLDEFMLVJTV
      K $.
  $}

  ${
    $d a r s x y z F $.  $d a J $.  $d a r s x z K $.  $d a r s x y z R $.
    $d a r s x y z S $.  $d a r s x y z ph $.
    ucncn.j $e |- J = ( TopOpen ` R ) $.
    ucncn.k $e |- K = ( TopOpen ` S ) $.
    ucncn.1 $e |- ( ph -> R e. UnifSp ) $.
    ucncn.2 $e |- ( ph -> S e. UnifSp ) $.
    ucncn.3 $e |- ( ph -> R e. TopSp ) $.
    ucncn.4 $e |- ( ph -> S e. TopSp ) $.
    ucncn.5 $e |- ( ph -> F e. ( ( UnifSt ` R ) uCn ( UnifSt ` S ) ) ) $.
    $( Uniform continuity implies continuity.  Deduction form.  Proposition 1
       of [BourbakiTop1] p.  II.6.  (Contributed by Thierry Arnoux,
       30-Nov-2017.) $)
    ucncn $p |- ( ph -> F e. ( J Cn K ) ) $=
      ( vz wcel cfv wral wa syl adantr va vx vr vs vy ccn co cbs wf ccnv cv wbr
      cima wi cuss wrex cucn cust wb cusp cutop wceq eqid isusp simplbi syl2anc
      isucn mpbid simpld wss csn cdm cnvimass fdm syl5sseq simplll simpr simplr
      ad2antrr sseldd simprd r19.21bi r19.12 syl21anc ad3antrrr ustrel ustimasn
      wrel ad5antr syl3anc simpllr elrelimasn biimpar adantlr wfn elpreima 3syl
      ffn ad7antr mpbir2and ex ralrimiva r19.26 pm3.33 ralimi sylbir w3a biimpa
      simpl2l simpl2r simpl3 breq2 eleq1 imbi12d rspcv sylc mpd ssrdv syl121anc
      reximdva simprbi eleqtrd elutop sneq imaeq2d sseq1d rexbidv r19.29a bitrd
      eleq2d ctopon ctps istps sylib iscn ) ADEFUFUGOZBUHPZCUHPZDUIZDUJUAUKZUMZ
      EOZUAFQZAYSUBUKZNUKZUCUKZULZUUDDPZUUEDPZUDUKZULZUNZNYQQZUBYQQUCBUOPZUPZUD
      CUOPZQZADUUNUUPUQUGOZYSUUQRZMAUUNYQURPOZUUPYRURPOZUURUUSUSABUTOZUUTIUVBUU
      TEUUNVAPZVBZYQUUNEBYQVCZUUNVCGVDZVESZACUTOZUVAJUVHUVAFUUPVAPZVBZYRUUPFCYR
      VCZUUPVCHVDZVESZUBNUUNDUUPYQYRUDUCVGVFVHZVIZAUUBUAFAYTFOZRZUUBUUAYQVJZUUF
      UUDVKUMZUUAVJZUCUUNUPZUBUUAQZUVQDVLZUUAYQDYTVMAUWCYQVBZUVPAYSUWDUVOYQYRDV
      NSTVOZUVQUWAUBUUAUVQUUDUUAOZRZUUJUUHVKZUMZYTVJZUWAUDUUPUWGUUJUUPOZRZUWJRZ
      UUMUCUUNUPZUWAUWLUWNUWJUWLAUWKUUDYQOZUWNAUVPUWFUWKVPZUWGUWKVQUWLUUAYQUUDU
      VQUVRUWFUWKUWEVSUVQUWFUWKVRVTZAUWKRZUWNUBYQUWRUUOUWNUBYQQAUUOUDUUPAYSUUQU
      VNWAWBUUMUCUBUUNYQWCSWBWDTUWMUUMUVTUCUUNUWMUUFUUNOZRZUUMUVTUWTUUMRZAUUFWH
      ZUVSYQVJZUUGUUEUUAOZUNZNYQQZUVTUWLAUWJUWSUUMUWPWEZUWTUXBUUMUWTUUTUWSUXBAU
      UTUVPUWFUWKUWJUWSUVGWIUWMUWSVQUUNUUFYQWFVFTUXAUUTUWSUWOUXCUXAAUUTUXGUVGSU
      WMUWSUUMVRUWLUWOUWJUWSUUMUWQWEUUDUUNUUFYQWGWJUXAUUMUUKUXDUNZNYQQZUXFUWTUU
      MVQUWTUXIUUMUWTUXHNYQUWTUUEYQOZRZUUKUXDUXKUUKRUXDUXJUUIYTOZUWTUXJUUKVRUWT
      UUKUXLUXJUWTUUKRUWIYTUUIUWLUWJUWSUUKWKUWTUUIUWIOZUUKUWTUUJWHZUXMUUKUSUWTU
      VAUWKUXNAUVAUVPUWFUWKUWJUWSUVMWIUWGUWKUWJUWSWKUUPUUJYRWFVFUUHUUIUUJWLSWMV
      TWNAUXDUXJUXLRUSZUVPUWFUWKUWJUWSUXJUUKAYSDYQWOZUXOUVOYQYRDWRZYQUUEYTDWPWQ
      WSWTXAXBTUUMUXIRUULUXHRZNYQQUXFUULUXHNYQXCUXRUXENYQUUGUUKUXDXDXEXFVFAUXBU
      XCRZUXFXGZUEUVSUUAUXTUEUKZUVSOZUYAUUAOZUXTUYBRZUUDUYAUUFULZUYCUYDUXBUYBUY
      EUXBUXCAUXFUYBXIUXTUYBVQZUXBUYBUYEUUDUYAUUFWLXHVFUYDUYAYQOUXFUYEUYCUNZUYD
      UVSYQUYAUXBUXCAUXFUYBXJUYFVTAUXSUXFUYBXKUXEUYGNUYAYQUUEUYAVBUUGUYEUXDUYCU
      UEUYAUUDUUFXLUUEUYAUUAXMXNXOXPXQXAXRXSXAXTXQUWGUUHYTOZUUJUYAVKZUMZYTVJZUD
      UUPUPZUEYTQZUWJUDUUPUPZUWGUWOUYHUVQUWFUWOUYHRZAUWFUYOUSZUVPAYSUXPUYPUVOUX
      QYQUUDYTDWPWQTXHWAUVQUYMUWFUVQYTYRVJZUYMUVQYTUVIOZUYQUYMRZUVQYTFUVIAUVPVQ
      AUVJUVPAUVHUVJJUVHUVAUVJUVLYASTYBAUYRUYSUSZUVPAUVAUYTUVMUEUDYTUUPYRYCSTVH
      WATUYLUYNUEUUHYTUYAUUHVBZUYKUWJUDUUPVUAUYJUWIYTVUAUYIUWHUUJUYAUUHYDYEYFYG
      XOXPYHXBUVQUUBUUAUVCOZUVRUWBRZUVQEUVCUUAAUVDUVPAUVBUVDIUVBUUTUVDUVFYASTYJ
      AVUBVUCUSZUVPAUUTVUDUVGUBUCUUAUUNYQYCSTYIWTXBAEYQYKPOZFYRYKPOZYPYSUUCRUSA
      BYLOVUEKYQEBUVEGYMYNACYLOVUFLYRFCUVKHYMYNUADEFYQYRYOVFWT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cauchy filters in uniform spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CauFilU $.

  $( Extend class notation with the set of Cauchy filter bases. $)
  ccfilu $a class CauFilU $.

  ${
    $d u f v a $.
    $( Define the set of Cauchy filter bases on a uniform space.  A Cauchy
       filter base is a filter base on the set such that for every entourage
       ` v ` , there is an element ` a ` of the filter "small enough in
       ` v ` " i.e. such that every pair ` { x , y } ` of points in ` a ` is
       related by ` v ` ".  Definition 2 of [BourbakiTop1] p.  II.13.
       (Contributed by Thierry Arnoux, 16-Nov-2017.) $)
    df-cfilu $a |- CauFilU = ( u e. U. ran UnifOn |->
        { f e. ( fBas ` dom U. u ) | A. v e. u E. a e. f ( a X. a ) C_ v } ) $.
  $}

  ${
    $d a f u v $.  $d a f v F $.  $d f u v U $.
    $( The predicate " ` F ` is a Cauchy filter base on uniform space ` U ` ."
       (Contributed by Thierry Arnoux, 18-Nov-2017.) $)
    iscfilu $p |- ( U e. ( UnifOn ` X ) -> ( F e. ( CauFilU ` U ) <->
      ( F e. ( fBas ` X ) /\ A. v e. U E. a e. F ( a X. a ) C_ v ) ) ) $=
      ( vf vu cust cfv wcel ccfilu cuni cdm cfbas cv wrex wral wa crab wceq cxp
      wss crn elrnust unieq dmeqd raleq rabeqbidv df-cfilu fvex rabex fvmpt syl
      fveq2d eleq2d rexeq ralbidv elrab syl6bb ustbas2 anbi1d bitr4d ) BDHIJZCB
      KIZJZCBLZMZNIZJZEOZVJUAAOUBZECPZABQZRZCDNIZJZVMRVCVECVKEFOZPZABQZFVHSZJVN
      VCVDVTCVCBHUCLZJVDVTTBDUDGBVRAGOZQZFWBLZMZNIZSVTWAKWBBTZWCVSFWFVHWGWEVGNW
      GWDVFWBBUEUFUNVRAWBBUGUHAGFEUIVSFVHVGNUJUKULUMUOVSVMFCVHVQCTVRVLABVKEVQCU
      PUQURUSVCVPVIVMVCVOVHCVCDVGNBDUTUNUOVAVB $.
  $}

  ${
    $d a v F $.  $d v U $.
    $( A Cauchy filter base is a filter base.  (Contributed by Thierry Arnoux,
       19-Nov-2017.) $)
    cfilufbas $p |- ( ( U e. ( UnifOn ` X ) /\ F e. ( CauFilU ` U ) )
      -> F e. ( fBas ` X ) ) $=
      ( va vv cust cfv wcel ccfilu cfbas cv cxp wss wrex wral iscfilu simprbda
      ) ACFGHBAIGHBCJGHDKZRLEKMDBNEAOEABCDPQ $.
  $}

  ${
    $d a v F $.  $d a v V $.  $d v U $.
    $( For a Cauchy filter base and any entourage ` V ` , there is an element
       of the filter small in ` V ` .  (Contributed by Thierry Arnoux,
       19-Nov-2017.) $)
    cfiluexsm $p |- ( ( U e. ( UnifOn ` X ) /\ F e. ( CauFilU ` U ) /\ V e. U )
      -> E. a e. F ( a X. a ) C_ V ) $=
      ( vv cust cfv wcel ccfilu w3a cv cxp wss wrex wral cfbas iscfilu simplbda
      3adant3 wi wceq sseq2 rexbidv rspcv 3ad2ant3 mpd ) ADGHIZBAJHIZCAIZKELZUK
      MZFLZNZEBOZFAPZULCNZEBOZUHUIUPUJUHUIBDQHIUPFABDERSTUJUHUPURUAUIUOURFCAUMC
      UBUNUQEBUMCULUCUDUEUFUG $.
  $}

  ${
    $( TODO replace by ~ fimaproj , which is more general. $)
    $d p x y A $.  $d p x y F $.  $d p x y X $.
    $( Lemma for ~ fmucnd .  (Contributed by Thierry Arnoux, 19-Nov-2017.) $)
    fmucndlem $p |- ( ( F Fn X /\ A C_ X ) ->
      ( ( x e. X , y e. X |-> <. ( F ` x ) , ( F ` y ) >. ) " ( A X. A ) )
        = ( ( F " A ) X. ( F " A ) ) ) $=
      ( vp wss wa cv cfv cop cmpt2 cxp cima crn wceq cvv wcel adantl wrex simpr
      wfn cres df-ima resmpt2 sylancom syl5eq wtru c1st c2nd cmpt op1std fveq2d
      rneqd vex op2ndd opeq12d mpt2mpt eqcomi rneqi fvexd fliftrel trud xpss wb
      sseli fvelimab anbi12d eqid opex elrnmpt2 eqcom fvex opth2 2rexbii reeanv
      bitri 3bitri syl6rbbr opelxp syl6bbr adantr 1st2nd2 eleq1d 3bitr4d eqrdav
      eqtrd ) DEUBZCEGZHZABEEAIZDJZBIZDJZKZLZCCMZNZABCCWOLZOZDCNZXAMZWJWRWPWQUC
      ZOWTWPWQUDWJXCWSWHWIWIXCWSPWHWIUAABEECCWOUEUFUNUGWJFWTXBQQMZFIZWTRZXEXDRZ
      WJWTXDXEWTXDGUHFXEUIJZDJZXEUJJZDJZQQWTWQWSFWQXIXKKZUKZXMWSABFCCXLWOXEWKWM
      KPZXIWLXKWNXNXHWKDWKWMXEAUOZBUOZULUMXNXJWMDWKWMXEXOXPUPUMUQURUSUTUHXEWQRH
      ZXHDVAXQXJDVAVBVCVFSXEXBRZXGWJXBXDXEXAXAVDVFSWJXGHZXHXJKZWTRZXTXBRZXFXRWJ
      YAYBVEXGWJYAXHXARZXJXARZHZYBWJYEWLXHPZACTZWNXJPZBCTZHZYAWJYCYGYDYIAECXHDV
      GBECXJDVGVHYAXTWOPZBCTACTYFYHHZBCTACTYJABCCWOXTWSWSVIWLWNVJVKYKYLABCCYKWO
      XTPYLXTWOVLWLWNXHXJXEUIVMXEUJVMVNVQVOYFYHABCCVPVRVSXHXJXAXAVTWAWBXSXEXTWT
      XGXEXTPWJXEQQWCSZWDXSXEXTXBYMWDWEWFWG $.
  $}

  ${
    $d a c C $.  $d a c C $.  $d a b v D $.  $d a b c r s t v x y F $.
    $d r s t v x y U $.  $d a r s t v x y V $.  $d a r s t v x y X $.
    $d a r s v x Y $.  $d a s t v x y ph $.
    fmucnd.1 $e |- ( ph -> U e. ( UnifOn ` X ) ) $.
    fmucnd.2 $e |- ( ph -> V e. ( UnifOn ` Y ) ) $.
    fmucnd.3 $e |- ( ph -> F e. ( U uCn V ) ) $.
    fmucnd.4 $e |- ( ph -> C e. ( CauFilU ` U ) ) $.
    fmucnd.5 $e |- D = ran ( a e. C |-> ( F " a ) ) $.
    $( The image of a Cauchy filter base by an uniformly continuous function is
       a Cauchy filter base.  Deduction form.  Proposition 3 of [BourbakiTop1]
       p.  II.13.  (Contributed by Thierry Arnoux, 18-Nov-2017.) $)
    fmucnd $p |- ( ph -> D e. ( CauFilU ` V ) ) $=
      ( vx vy vc cfv wcel cv vb vv vr vs vt ccfilu cfbas cxp wss wrex wral cust
      wf cvv cfilufbas syl2anc cucn co wa wbr wi isucn simprbda syl21anc fbasrn
      elfvexd syl3anc cop ccnv cima cmpt crn wceq simplr eqid weq imaeq2 eqeq2d
      cmpt2 rspcev sylancl wb imaexg elrnmpt 3syl ad3antrrr cbvmptv rneqi eqtri
      mpbird syl6eleqr wfn ffn simplll fbelss sylan fmucndlem mpt2fun funimass2
      syl wfun mpan adantl eqsstr3d id sqxpeqd sseq1d adantr simpr simpl fveq2d
      opeq12d cbvmpt2 ucnprima cfiluexsm r19.29a ralrimiva iscfilu mpbir2and
      nfcv ) ACFUFRSZCHUGRSZUATZYCUHZUBTZUIZUACUJZUBFUKZABGUGRSZGHEUMZHUNSYBADG
      ULRSZBDUFRSZYIJMDBGUOUPZAYKFHULRSZEDFUQURZSZYJJKLYKYNUSYPYJOTZPTZUCTUTYQE
      RZYRERZYEUTVAPGUKOGUKUCDUJUBFUKOPDEFGHUBUCVBVCVDZAFULHKVFIBCEUNGHNVEVGAYG
      UBFAYEFSZUSZITZUUDUHZOPGGYSYTVHZVSZVIYEVJZUIZYGIBUUCUUDBSZUSZUUIUSZEUUDVJ
      ZCSUUMUUMUHZYEUIZYGUULUUMQBEQTZVJZVKZVLZCUULUUMUUSSZUUMUUQVMZQBUJZUULUUJU
      UMUUMVMZUVBUUCUUJUUIVNZUUMVOUVAUVCQUUDBQIVPUUQUUMUUMUUPUUDEVQVRVTWAAUUTUV
      BWBZUUBUUJUUIAYPUUMUNSUVELEUUDYOWCQBUUQUUMUURUNUURVOWDWEWFWJCIBUUMVKZVLUU
      SNUVFUURIQBUUMUUQUUDUUPEVQWGWHWIWKUULUUNUUGUUEVJZYEUULEGWLZUUDGUIZUVGUUNV
      MAUVHUUBUUJUUIAYJUVHUUAGHEWMWTWFUULAUUJUVIAUUBUUJUUIWNUVDAYIUUJUVIYMGBUUD
      WOWPUPOPUUDEGWQUPUUIUVGYEUIZUUKUUGXAUUIUVJOPGGUUFUUGUUGVOWRUUEYEUUGWSXBXC
      XDYFUUOUAUUMCYCUUMVMZYDUUNYEUVKYCUUMUVKXEXFXGVTUPUUCYKYLUUHDSUUIIBUJAYKUU
      BJXHZAYLUUBMXHUUCUDUEDEUUGFYEGHUVLAYNUUBKXHAYPUUBLXHAUUBXIOPUDUEGGUUFUDTZ
      ERZUETZERZVHZUDUUFXTUEUUFXTOUVQXTPUVQXTOUDVPZPUEVPZUSZYSUVNYTUVPUVTYQUVME
      UVRUVSXJXKUVTYRUVOEUVRUVSXIXKXLXMXNDBUUHGIXOVGXPXQAYNYAYBYHUSWBKUBFCHUAXR
      WTXS $.
  $}

  ${
    $d a b v F $.  $d a b v X $.  $d b v U $.
    $( The filter generated by a Cauchy filter base is still a Cauchy filter
       base.  (Contributed by Thierry Arnoux, 24-Jan-2018.) $)
    cfilufg $p |- ( ( U e. ( UnifOn ` X ) /\ F e. ( CauFilU ` U ) )
      -> ( X filGen F ) e. ( CauFilU ` U ) ) $=
      ( va vv vb cust cfv wcel ccfilu wa cfg co cfbas cxp wss wrex wral iscfilu
      cv cfil cfilufbas fgcl filfbas 3syl ad3antrrr ssfg syl simplr weq sqxpeqd
      sseldd id sseq1d rspcev sylancom simplbda r19.21bi ralrimiva wb mpbir2and
      r19.29a adantr ) ACGHIZBAJHZIZKZCBLMZVEIZVHCNHZIZDTZVLOZETZPZDVHQZEARZVGB
      VJIZVHCUAHIVKABCUBZBCUCVHCUDUEVGVPEAVGVNAIZKZFTZWBOZVNPZVPFBWAWBBIZKZWDWB
      VHIVPWFWDKZBVHWBWGVRBVHPVGVRVTWEWDVSUFBCUGUHWAWEWDUIULVOWDDWBVHDFUJZVMWCV
      NWHVLWBWHUMUKUNUOUPVGWDFBQZEAVDVFVRWIEAREABCFSUQURVBUSVDVIVKVQKUTVFEAVHCD
      SVCVA $.
  $}

  ${
    $d a b v w A $.  $d a b v w F $.  $d a v w U $.  $d a v w X $.
    $( Condition for the trace of a Cauchy filter base to be a Cauchy filter
       base for the restricted uniform structure.  (Contributed by Thierry
       Arnoux, 24-Jan-2018.) $)
    trcfilu $p |- ( ( U e. ( UnifOn ` X ) /\
      ( F e. ( CauFilU ` U ) /\ -. (/) e. ( F |`t A ) ) /\ A C_ X )
      -> ( F |`t A ) e. ( CauFilU ` ( U |`t ( A X. A ) ) ) ) $=
      ( vb vw va vv cust cfv wcel ccfilu wa wss cxp cv wrex syl2anc cin cvv w3a
      c0 crest co wn cfbas wral simp1 simp2l iscfilu biimpa simpld simp3 simp2r
      trfbas2 biimpar syl21anc wceq ad5antr adantr elfvexd ssexd ad4antr simplr
      elrestr syl3anc inxp simpr ssrin syl simpllr sseqtr4d syl5eqssr id sseq1d
      sqxpeqd rspcev simprd r19.21bi 3ad2antr2 3anassrs r19.29a xpexg ralrimiva
      elrest wb trust mpbir2and ) BDIJZKZCBLJZKZUBCAUCUDZKUEZMZADNZUAZWMBAAOZUC
      UDZLJKZWMAUFJKZEPZXBOZFPZNZEWMQZFWSUGZWQCDUFJKZWPWNXAWQXHGPZXIOZHPZNZGCQZ
      HBUGZWQWJWLXHXNMZWJWOWPUHZWJWLWNWPUIZWJWLXOHBCDGUJUKRZULWJWOWPUMZWJWLWNWP
      UNXHWPMXAWNACDUOUPUQWQXFFWSWQXDWSKZMZXDXKWRSZURZXFHBYAXKBKZMZYCMZXLXFGCYF
      XICKZMZXLMZXIASZWMKZYJYJOZXDNZXFYIWLATKZYGYKWQWLXTYDYCYGXLXQUSYAYNYDYCYGX
      LYAADTYABIDWQWJXTXPUTZVAWQWPXTXSUTVBZVCYFYGXLVDXIACWKTVEVFYIYLXJWRSZXDXIX
      IAAVGYIYQYBXDYIXLYQYBNYHXLVHXJXKWRVIVJYEYCYGXLVKVLVMXEYMEYJWMXBYJURZXCYLX
      DYRXBYJYRVNVPVOVQRWQXTYDYCXMWQXTYDXMYCWQXMHBWQXHXNXRVRVSVTWAWBYAWJWRTKZXT
      YCHBQZYOYAYNYNYSYPYPAATTWCRWQXTVHWJYSMXTYTHXDWRBWITWEUKUQWBWDWQWSAIJKZWTX
      AXGMWFWQWJWPUUAXPXSABDWGRFWSWMAEUJVJWH $.
  $}

  ${
    $d a u v A $.  $d a u v F $.  $d u v U $.  $d v X $.
    $( A Cauchy filter base is also a Cauchy filter base on any coarser uniform
       structure.  (Contributed by Thierry Arnoux, 24-Jan-2018.) $)
    cfiluweak $p |- ( ( U e. ( UnifOn ` X ) /\ A C_ X
      /\ F e. ( CauFilU ` ( U |`t ( A X. A ) ) ) ) -> F e. ( CauFilU ` U ) ) $=
      ( va vv vu cust cfv wcel wss cxp ccfilu cfbas cv wrex wral cvv wa adantr
      crest w3a cpw trust iscfilu biimpa stoic3 simpld fbsspw simp2 sspwb sylib
      co syl sstrd simp1 elfvexd fbasweak syl3anc cin ssexd xpexg syl2anc simpr
      elrestr simprd wceq sseq2 rexbidv rspcva inss1 sstr mpan2 reximi 3ad2ant1
      ralrimiva wb mpbir2and ) BDHIZJZADKZCBAALZUAUMZMIJZUBZCBMIJZCDNIJZEOZWHLZ
      FOZKZECPZFBQZWECANIJZCDUCZKDRJZWGWEWNWIGOZKZECPZGWCQZVTWAWCAHIJZWDWNWTSZA
      BDUDXAWDXBGWCCAEUEUFUGZUHZWECAUCZWOWEWNCXEKXDACUIUNWEWAXEWOKVTWAWDUJZADUK
      ULUOWEBHDVTWAWDUPZUQZCRADURUSWEWLFBWEWJBJZSZWIWJWBUTZKZECPZWLXJXKWCJZWTXM
      XJVTWBRJZXIXNWEVTXIXGTXJARJZXPXOXJADRWEWPXIXHTWEWAXIXFTVAZXQAARRVBVCWEXIV
      DWJWBBVSRVEUSWEWTXIWEWNWTXCVFTWSXMGXKWCWQXKVGWRXLECWQXKWIVHVIVJVCXLWKECXL
      XKWJKWKWJWBVKWIXKWJVLVMVNUNVPVTWAWFWGWMSVQWDFBCDEUEVOVR $.
  $}

  ${
    $d a v w J $.  $d a u v w P $.  $d u v w U $.  $d u v w X $.  $d v w W $.
    neipcfilu.x $e |- X = ( Base ` W ) $.
    neipcfilu.j $e |- J = ( TopOpen ` W ) $.
    neipcfilu.u $e |- U = ( UnifSt ` W ) $.
    $( In an uniform space, a neighboring filter is a Cauchy filter base.
       (Contributed by Thierry Arnoux, 24-Jan-2018.) $)
    neipcfilu $p |- ( ( W e. UnifSp /\ W e. TopSp /\ P e. X )
      -> ( ( nei ` J ) ` { P } ) e. ( CauFilU ` U ) ) $=
      ( va vv vw vu wcel w3a cfv wss wrex wa wceq syl2anc cusp ctps cnei ccfilu
      csn cfbas cv cxp wral cfil ctopon wne simp2 istps sylib simp3 snssd snnzg
      syl neifil syl3anc filfbas cima cutop cmpt crn imaeq1 eqeq2d rspcev mpan2
      c0 eqid cvv wb vex imaex elrnmpt ax-mp sylibr ad2antlr cust isusp simplbi
      3ad2ant1 utopsnneip eleq2d ad3antrrr mpbird simpl1 3anassrs fveq2d fveq1d
      simprbi eleqtrrd simpr id sqxpeqd sseq1d adantr ccom ccnv simplr ustexsym
      simpll1 ad2antrr ustssxp simpll2 ustneism simprl coeq2d coss1 coss2 sstrd
      ad2antll simpllr eqsstrd reximdva mpd ustexhalf 3adant2 r19.29a ralrimiva
      ex iscfilu mpbir2and ) DUAMZDUBMZAEMZNZAUEZCUCOZOZBUDOMZYLEUFOMZIUGZYOUHZ
      JUGZPZIYLQZJBUIZYIYLEUJOMZYNYICEUKOMZYJEPYJVKULZUUAYIYGUUBYFYGYHUMECDFGUN
      UOYIAEYFYGYHUPZUQYIYHUUCUUDAEURUSYJCEUTVAYLEVBUSYIYSJBYIYQBMZRZKUGZYJVCZU
      UHUHZYQPZYSKBUUFUUGBMZRZUUJRZUUHYLMUUJYSUUMUUHYJBVDOZUCOZOZYLUUMUUHUUPMZU
      UHJBYQYJVCZVEZVFZMZUUKUVAUUFUUJUUKUUHUURSZJBQZUVAUUKUUHUUHSZUVCUUHVLUVBUV
      DJUUGBYQUUGSUURUUHUUHYQUUGYJVGVHVIVJUUHVMMUVAUVCVNUUGYJKVOVPJBUURUUHUUSVM
      UUSVLVQVRVSVTYIUUQUVAVNUUEUUKUUJYIUUPUUTUUHYIBEWAOMZYHUUPUUTSYFYGUVEYHYFU
      VECUUNSZEBCDFHGWBZWCWDZUUDJABUUNEUUNVLWETWFWGWHUUMYJYKUUOUUMCUUNUCUUMYFUV
      FYIUUEUUKUUJYFYFYGYHUUEUUKUUJNWIWJYFUVEUVFUVGWMUSWKWLWNUULUUJWOYRUUJIUUHY
      LYOUUHSZYPUUIYQUVIYOUUHUVIWPWQWRVITUUFUVEYHUUEUUJKBQZYIUVEUUEUVHWSYIYHUUE
      UUDWSYIUUEWOUVEYHUUENZLUGZUVLWTZYQPZUVJLBUVKUVLBMZRZUVNRZUUGXAZUUGSZUUGUV
      LPZRZKBQZUVJUVQUVEUVOUWBUVEYHUUEUVOUVNXDZUVKUVOUVNXBKBUVLEXCTUVQUWAUUJKBU
      VQUUKRZUWAUUJUWDUWARZUUIUUGUVRWTZYQUWEUUGEEUHPZYHUUIUWFPUWEUVEUUKUWGUVQUV
      EUUKUWAUWCXEUVQUUKUWAXBBUUGEXFTUVPUVNUUKUWAYHUVEYHUUEUVOUVNUUKUWANXGWJAUU
      GEXHTUWEUWFUUGUUGWTZYQUWEUVRUUGUUGUWDUVSUVTXIXJUWEUWHUVMYQUVTUWHUVMPUWDUV
      SUVTUWHUVLUUGWTUVMUUGUVLUUGXKUUGUVLUVLXLXMXNUVPUVNUUKUWAXOXMXPXMYCXQXRUVE
      UUEUVNLBQYHLBYQEXSXTYAVAYAYBYIUVEYMYNYTRVNUVHJBYLEIYDUSYE $.
  $}

  $(
    cvgfcfilu.j @e |- J = ( TopOpen ` W ) @.
    cvgfcfilu.u @e |- U = ( UnifSt ` W ) @.
    @( In an uniform space, all convergent filters are Cauchy filters bases.
       Proposition 2 of [BourbakiTop1] p.  II.13.  (Contributed by Thierry
       Arnoux, 18-Nov-2017.) @)
    cvgfcfilu @p |- ( ( W e. UnifSp /\ W e. TopSp /\ A e. ( J fLim F ) )
      -> F e. ( CauFilU ` U ) ) @=
      ? @.
  $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Complete uniform spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CUnifSp $.

  $( Extend class notation with the class of all complete uniform spaces. $)
  ccusp $a class CUnifSp $.

  ${
    $d c w $.
    $( Define the class of all complete uniform spaces.  Definition 3 of
       [BourbakiTop1] p.  II.15.  (Contributed by Thierry Arnoux,
       1-Dec-2017.) $)
    df-cusp $a |- CUnifSp = { w e. UnifSp | A. c e. ( Fil ` ( Base ` w ) )
      ( c e. ( CauFilU ` ( UnifSt ` w ) )
        -> ( ( TopOpen ` w ) fLim c ) =/= (/) ) } $.
  $}

  ${
    $d c w W $.
    $( The predicate " ` W ` is a complete uniform space."  (Contributed by
       Thierry Arnoux, 3-Dec-2017.) $)
    iscusp $p |- ( W e. CUnifSp <-> ( W e. UnifSp /\
      A. c e. ( Fil ` ( Base ` W ) ) ( c e. ( CauFilU ` ( UnifSt ` W ) )
        -> ( ( TopOpen ` W ) fLim c ) =/= (/) ) ) ) $=
      ( vw cv cuss cfv ccfilu wcel ctopn cflim co c0 wne wi cbs cfil wral fveq2
      cusp fveq2d ccusp eleq2d oveq1d neeq1d imbi12d raleqbidv df-cusp elrab2
      wceq ) BDZCDZEFZGFZHZUKIFZUJJKZLMZNZBUKOFZPFZQUJAEFZGFZHZAIFZUJJKZLMZNZBA
      OFZPFZQCASUAUKAUIZURVGBUTVIVJUSVHPUKAORTVJUNVCUQVFVJUMVBUJVJULVAGUKAERTUB
      VJUPVELVJUOVDUJJUKAIRUCUDUEUFCBUGUH $.

    $( A complete uniform space is an uniform space.  (Contributed by Thierry
       Arnoux, 3-Dec-2017.) $)
    cuspusp $p |- ( W e. CUnifSp -> W e. UnifSp ) $=
      ( vc ccusp wcel cusp cv cuss cfv ccfilu ctopn cflim co c0 wne wi cbs cfil
      wral iscusp simplbi ) ACDAEDBFZAGHIHDAJHUAKLMNOBAPHQHRABST $.

    $d c B $.  $d c C $.  $d c J $.
    cuspcvg.1 $e |- B = ( Base ` W ) $.
    cuspcvg.2 $e |- J = ( TopOpen ` W ) $.
    $( In a complete uniform space, any Cauchy filter ` C ` has a limit.
       (Contributed by Thierry Arnoux, 3-Dec-2017.) $)
    cuspcvg $p |- ( ( W e. CUnifSp /\ C e. ( CauFilU ` ( UnifSt ` W ) )
      /\ C e. ( Fil ` B ) ) -> ( J fLim C ) =/= (/) ) $=
      ( vc ccusp wcel cfil cfv cuss ccfilu cflim co c0 wne wa wi wceq ctopn cbs
      cv eleq1 eqcomi id oveq12d neeq1d imbi12d wral cusp iscusp simprbi adantr
      a1i simpr fveq2i syl6eleq rspcdva 3impia 3com23 ) DHIZBAJKZIZBDLKMKZIZCBN
      OZPQZVBVDVFVHVBVDRZGUCZVEIZDUAKZVJNOZPQZSZVFVHSGDUBKZJKZBVJBTZVKVFVNVHVJB
      VEUDVRVMVGPVRVLCVJBNVLCTVRCVLFUEUOVRUFUGUHUIVBVOGVQUJZVDVBDUKIVSDGULUMUNV
      IBVCVQVBVDUPAVPJEUQURUSUTVA $.
  $}

  ${
    $d c W $.
    iscusp2.1 $e |- B = ( Base ` W ) $.
    iscusp2.2 $e |- U = ( UnifSt ` W ) $.
    iscusp2.3 $e |- J = ( TopOpen ` W ) $.
    $( The predicate " ` W ` is a complete uniform space."  (Contributed by
       Thierry Arnoux, 15-Dec-2017.) $)
    iscusp2 $p |- ( W e. CUnifSp <-> ( W e. UnifSp /\ A. c e. ( Fil ` B )
      ( c e. ( CauFilU ` U ) -> ( J fLim c ) =/= (/) ) ) ) $=
      ( wcel cfv ccfilu cflim co c0 wne wi cfil wral wa fveq2i ccusp cusp ctopn
      cv cuss cbs iscusp eleq2i oveq1i neeq1i imbi12i raleqbii anbi2i bitr4i )
      DUAIDUBIZEUDZDUEJZKJZIZDUCJZUPLMZNOZPZEDUFJZQJZRZSUOUPBKJZIZCUPLMZNOZPZEA
      QJZRZSDEUGVMVFUOVKVCEVLVEAVDQFTVHUSVJVBVGURUPBUQKGTUHVIVANCUTUPLHUIUJUKUL
      UMUN $.
  $}

  ${
    $d x A $.  $d x F $.  $d x J $.  $d x K $.  $d x ph $.
    cnextucn.x $e |- X = ( Base ` V ) $.
    cnextucn.y $e |- Y = ( Base ` W ) $.
    cnextucn.j $e |- J = ( TopOpen ` V ) $.
    cnextucn.k $e |- K = ( TopOpen ` W ) $.
    cnextucn.u $e |- U = ( UnifSt ` W ) $.
    cnextucn.v $e |- ( ph -> V e. TopSp ) $.
    cnextucn.t $e |- ( ph -> W e. TopSp ) $.
    cnextucn.w $e |- ( ph -> W e. CUnifSp ) $.
    cnextucn.h $e |- ( ph -> K e. Haus ) $.
    cnextucn.a $e |- ( ph -> A C_ X ) $.
    cnextucn.f $e |- ( ph -> F : A --> Y ) $.
    cnextucn.c $e |- ( ph -> ( ( cls ` J ) ` A ) = X ) $.
    cnextucn.l $e |- ( ( ph /\ x e. X ) ->
        ( ( Y FilMap F ) ` ( ( ( nei ` J ) ` { x } ) |`t A ) )
      e. ( CauFilU ` U ) ) $.
    $( Extension by continuity.  Proposition 11 of [BourbakiTop1] p.  II.20.
       Given a topology ` J ` on ` X ` , a subset ` A ` dense in ` X ` , this
       states a condition for ` F ` from ` A ` to a space ` Y ` Hausdorff and
       complete to be extensible by continuity.  (Contributed by Thierry
       Arnoux, 4-Dec-2017.) $)
    cnextucn $p |- ( ph -> ( ( J CnExt K ) ` F ) e. ( J Cn K ) ) $=
      ( cuni eqid ctps wcel ctop tpstop syl wceq tpsuni feq3d mpbid sseqtrd ccl
      wf cfv eqtrd cv wa csn cnei crest co cflf cfm cflim c0 ctopon istps sylib
      adantr eleq2d biimpar eleqtrrd wss wb toptopon fveq2 mpbird trnei syl3anc
      cfil flfval ccusp ccfilu wne syldan fveq2i syl6eleq cvv cfbas cbs eqeltri
      cuss fvex a1i filfbas fmfil cuspcvg eqnetrd cusp cha creg cuspusp syl2anc
      uspreg cnextcn ) ABCGUEZFUEZEFGXLUFZXKUFAHUGUHZFUIUHZQFHNUJUKZTACKEURZCXK
      EURUBAKXKECAIUGUHZKXKULRKGIMOUMUKUNUOACJXLUAAXNJXLULZQJFHLNUMUKZUPACFUQUS
      USZJXLUCXTUTABVAZXLUHZVBZEGYBVCFVDUSUSCVEVFZVGVFUSZGYEKEVHVFUSZVIVFZVJYDG
      KVKUSUHZYECWEUSUHZXQYFYHULAYIYCAXRYIRKGIMOVLVMVNYDYBYAUHZYJYDYBJYAAYBJUHZ
      YCAJXLYBXTVOVPZAYAJULYCUCVNVQYDFJVKUSZUHZCJVRZYLYKYJVSAYOYCAYOFXLVKUSZUHZ
      AXOYRXPFXLXMVTVMAXSYOYRVSXTXSYNYQFJXLVKWAVOUKWBVNAYPYCUAVNYMCYBFJWCWDUOZA
      XQYCUBVNZEGYEKCWFWDYDIWGUHZYGIWQUSZWHUSZUHYGKWEUSUHZYHVJWIAUUAYCSVNYDYGDW
      HUSZUUCAYCYLYGUUEUHYMUDWJDUUBWHPWKWLYDKWMUHZYECWNUSUHZXQUUDUUFYDKIWOUSWMM
      IWOWRWPWSYDYJUUGYSYECWTUKYTWMYEEKCXAWDKYGGIMOXBWDXCAIXDUHZGXEUHGXFUHAUUAU
      UHSIXGUKTGIOXIXHXJ $.
  $}

  ${
    $d a b v w x y z A $.  $d a b v w x y z F $.  $d a b x J $.  $d x K $.
    $d v w y z T $.  $d b v w y U $.  $d b X $.  $d a b v w y Y $.
    $d b x ph $.
    ucnextcn.x $e |- X = ( Base ` V ) $.
    ucnextcn.y $e |- Y = ( Base ` W ) $.
    ucnextcn.j $e |- J = ( TopOpen ` V ) $.
    ucnextcn.k $e |- K = ( TopOpen ` W ) $.
    ucnextcn.s $e |- S = ( UnifSt ` V ) $.
    ucnextcn.t $e |- T = ( UnifSt ` ( V |`s A ) ) $.
    ucnextcn.u $e |- U = ( UnifSt ` W ) $.
    ucnextcn.v $e |- ( ph -> V e. TopSp ) $.
    ucnextcn.r $e |- ( ph -> V e. UnifSp ) $.
    ucnextcn.w $e |- ( ph -> W e. TopSp ) $.
    ucnextcn.z $e |- ( ph -> W e. CUnifSp ) $.
    ucnextcn.h $e |- ( ph -> K e. Haus ) $.
    ucnextcn.a $e |- ( ph -> A C_ X ) $.
    ucnextcn.f $e |- ( ph -> F e. ( T uCn U ) ) $.
    ucnextcn.c $e |- ( ph -> ( ( cls ` J ) ` A ) = X ) $.
    $( Extension by continuity.  Theorem 2 of [BourbakiTop1] p.  II.20.  Given
       an uniform space on a set ` X ` , a subset ` A ` dense in ` X ` , and a
       function ` F ` uniformly continuous from ` A ` to ` Y ` , that function
       can be extended by continuity to the whole ` X ` , and its extension is
       uniformly continuous.  (Contributed by Thierry Arnoux, 25-Jan-2018.) $)
    ucnextcn $p |- ( ph -> ( ( J CnExt K ) ` F ) e. ( J Cn K ) ) $=
      ( vx vy vz vv vw va vb wf cv wbr cfv wi wral wrex cucn co wcel wa cust wb
      cusp wss ressust syl2anc cutop ccusp cuspusp syl isusp sylib simpld isucn
      wceq mpbid csn cnei crest cfm cima cmpt crn cfg ccfilu cvv adantr elfvexd
      cfbas cfil ccl simpr eleqtrrd ctopon ctps istps trnei syl3anc filfbas cxp
      fmval c0 wn neipcfilu 0nelfb trcfilu syl121anc cress cuss ressuss 3eqtr4g
      oveq1i fveq2d imaeq2 cbvmptv rneqi fmucnd cfilufg eqeltrd cnextucn ) AUHB
      EFGHIJKLMNOPSTUBUCUDUEABLFUOZUIUPZUJUPZUKUPUQYGFURYHFURULUPUQUSUJBUTUIBUT
      UKDVAULEUTZAFDEVBVCVDZYFYIVEZUFADBVFURVDZELVFURVDZYJYKVGAIVHVDZBKVIZYLUAU
      EBDIKMRVJVKZAYMHEVLURVTZAJVHVDZYMYQVEAJVMVDYRUCJVNVOLEHJNSPVPVQVRZUIUJDFE
      BLULUKVSVKWAVRZUGAUHUPZKVDZVEZUUAWBGWCURURZBWDVCZLFWEVCURZLUMUUEFUMUPZWFZ
      WGZWHZWIVCZEWJURZUUCLWKVDUUEBWNURVDZYFUUFUUKVTUUCEVFLAYMUUBYSWLZWMUUCUUEB
      WOURVDZUUMUUCUUABGWPURURZVDZUUOUUCUUAKUUPAUUBWQZAUUPKVTUUBUGWLWRUUCGKWSUR
      VDZYOUUBUUQUUOVGAUUSUUBAIWTVDZUUSTKGIMOXAVQWLAYOUUBUEWLZUURBUUAGKXBXCWAUU
      EBXDVOZAYFUUBYTWLUMWKUUEFLBXFXCUUCYMUUJUULVDUUKUULVDUUNUUCUUEUUJDFEBLUNAY
      LUUBYPWLZUUNAYJUUBUFWLUUCUUECBBXEZWDVCZWJURZDWJURZUUCCKVFURVDZUUDCWJURVDZ
      XGUUEVDXHZYOUUEUVFVDAUVHUUBAUVHGCVLURVTZAYNUVHUVKVEUAKCGIMQOVPVQVRWLUUCYN
      UUTUUBUVIAYNUUBUAWLAUUTUUBTWLUURUUACGIKMOQXIXCUUCUUMUVJUVBBUUEXJVOUVABCUU
      DKXKXLUUCBWKVDZUVGUVFVTUUCDVFBUVCWMUVLDUVEWJUVLIBXMVCXNURIXNURZUVDWDVCDUV
      EBWKIXORCUVMUVDWDQXQXPXRVOWRUUIUNUUEFUNUPZWFZWGUMUNUUEUUHUVOUUGUVNFXSXTYA
      YBEUUJLYCVKYDYE $.

$(
    @( Extension by continuity. Theorem 2 of [BourbakiTop1] p.  II.20. The
       extension obtained by ~ ucnextcn is uniformly continuous.  (Contributed
       by Thierry Arnoux, 25-Jan-20178) @)
    ucnextucn @p |- ( ph -> ( ( J CnExt K ) ` F ) e. ( S uCn U ) ) @=
      ? @.
$)
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Metric spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Pseudometric spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d d u x y z X $.  $d d x y z D $.
    $( Express the predicate " ` D ` is a pseudometric."  (Contributed by
       Thierry Arnoux, 7-Feb-2018.) $)
    ispsmet $p |- ( X e. V -> ( D e. ( PsMet ` X ) <->
      ( D : ( X X. X ) --> RR* /\ A. x e. X ( ( x D x ) = 0 /\ A. y e. X
        A. z e. X ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) ) ) ) $=
      ( vd vu wcel cxr cmap co cv cc0 wceq cxad wral wa cvv oveq cpsmet cfv cxp
      cle wbr wf crab elex id oveq2d raleq raleqbi1dv anbi2d rabeqbidv df-psmet
      sqxpeqd ovex rabex eleq2d eqeq1d oveq12d breq12d 2ralbidv anbi12d ralbidv
      fvmpt syl elrab syl6bb wb xrex sqxpexg elmapg sylancr anbi1d bitrd ) FEIZ
      DFUAUBZIZDJFFUCZKLZIZAMZWCDLZNOZWCBMZDLZCMZWCDLZWHWFDLZPLZUDUEZCFQBFQZRZA
      FQZRZVTJDUFZWORVQVSDWCWCGMZLZNOZWCWFWRLZWHWCWRLZWHWFWRLZPLZUDUEZCFQZBFQZR
      ZAFQZGWAUGZIWPVQVRXJDVQFSIVRXJOFEUHHFWTXECHMZQZBXKQZRZAXKQZGJXKXKUCZKLZUG
      XJSUAXKFOZXOXIGXQWAXRXPVTJKXRXKFXRUIUPUJXNXHAXKFXRXMXGWTXLXFBXKFXECXKFUKU
      LUMULUNHABCGUOXIGWAJVTKUQURVFVGUSXIWOGDWAWRDOZXHWNAFXSWTWEXGWMXSWSWDNWCWC
      WRDTUTXSXEWLBCFFXSXAWGXDWKUDWCWFWRDTXSXBWIXCWJPWHWCWRDTWHWFWRDTVAVBVCVDVE
      VHVIVQWBWQWOVQJSIVTSIWBWQVJVKFEVLJVTDSSVMVNVOVP $.
  $}

  ${
    $d x y z D $.  $d x y z X $.
    $( Recover the base set from a pseudometric.  (Contributed by Thierry
       Arnoux, 7-Feb-2018.) $)
    psmetdmdm $p |- ( D e. ( PsMet ` X ) -> X = dom dom D ) $=
      ( vx vy vz cpsmet cfv wcel cdm cxp cxr wf wceq cv co cc0 cxad wral wa cvv
      cle wbr elfvex ispsmet biimpa mpancom simpld fdm dmeqd syl dmxpid syl6req
      ) ABFGHZAIZIZBBJZIZBUMUPKALZUOUQMUMURCNZUSAOPMUSDNZAOENZUSAOVAUTAOQOUAUBE
      BRDBRSCBRZBTHZUMURVBSZABFUCVCUMVDCDEATBUDUEUFUGURUNUPUPKAUHUIUJBUKUL $.
  $}

  ${
    $d a b c D $.  $d a b c X $.
    $( The distance function of a pseudometric as a function.  (Contributed by
       Thierry Arnoux, 7-Feb-2018.) $)
    psmetf $p |- ( D e. ( PsMet ` X ) -> D : ( X X. X ) --> RR* ) $=
      ( va vb vc cpsmet cfv wcel cxp cxr wf cv co cc0 wceq cxad cle wral wa cvv
      wbr wb elfvex ispsmet syl ibi simpld ) ABFGHZBBIJAKZCLZUJAMNOUJDLZAMELZUJ
      AMULUKAMPMQUAEBRDBRSCBRZUHUIUMSZUHBTHUHUNUBABFUCCDEATBUDUEUFUG $.

    $( Closure of the distance function of a pseudometric space.  (Contributed
       by Thierry Arnoux, 7-Feb-2018.) $)
    psmetcl $p |- ( ( D e. ( PsMet ` X ) /\ A e. X /\ B e. X ) ->
        ( A D B ) e. RR* ) $=
      ( cpsmet cfv wcel cxp cxr wf co psmetf fovrn syl3an1 ) CDEFGDDHICJADGBDGA
      BCKIGCDLABIDDCMN $.

    $d a A $.
    $( The distance function of a pseudometric space is zero if its arguments
       are equal.  (Contributed by Thierry Arnoux, 7-Feb-2018.) $)
    psmet0 $p |- ( ( D e. ( PsMet ` X ) /\ A e. X ) -> ( A D A ) = 0 ) $=
      ( va vb vc cpsmet cfv wcel cv co cc0 wceq wral wa cxad cle wbr cxp cvv wf
      cxr wb elfvex ispsmet syl ibi simprd r19.21bi simpld ralrimiva id oveq12d
      eqeq1d rspcv mpan9 ) BCGHIZDJZURBKZLMZDCNACIAABKZLMZUQUTDCUQURCIOUTUREJZB
      KFJZURBKVDVCBKPKQRFCNECNZUQUTVEOZDCUQCCSUBBUAZVFDCNZUQVGVHOZUQCTIUQVIUCBC
      GUDDEFBTCUEUFUGUHUIUJUKUTVBDACURAMZUSVALVJURAURABVJULZVKUMUNUOUP $.

    $d b c A $.  $d b c B $.  $d c C $.
    $( Triangle inequality for the distance function of a pseudometric.
       (Contributed by Thierry Arnoux, 11-Feb-2018.) $)
    psmettri2 $p |- ( ( D e. ( PsMet ` X ) /\ ( C e. X /\ A e. X /\ B e. X ) )
      -> ( A D B ) <_ ( ( C D A ) +e ( C D B ) ) ) $=
      ( va vb vc cpsmet wcel cv co cxad cle wbr wral wa wceq oveq1 oveq2 cfv wf
      w3a cc0 cxp cxr cvv wb elfvex ispsmet simprd r19.21bi ralrimiva wi oveq1d
      syl ibi breq12d oveq2d oveq12d breq2d rspc3v 3comr mpan9 ) DEIUAJZFKZGKZD
      LZHKZVFDLZVIVGDLZMLZNOZHEPGEPZFEPZCEJZAEJZBEJZUCABDLZCADLZCBDLZMLZNOZVEVN
      FEVEVFEJQVFVFDLUDRZVNVEWDVNQZFEVEEEUEUFDUBZWEFEPZVEWFWGQZVEEUGJVEWHUHDEIU
      IFGHDUGEUJUPUQUKULUKUMVQVRVPVOWCUNVMWCAVGDLZVIADLZVKMLZNOVSWJVIBDLZMLZNOF
      GHABCEEEVFARZVHWIVLWKNVFAVGDSWNVJWJVKMVFAVIDTUOURVGBRZWIVSWKWMNVGBADTWOVK
      WLWJMVGBVIDTUSURVICRZWMWBVSNWPWJVTWLWAMVICADSVICBDSUTVAVBVCVD $.

    $( The distance function of a pseudometric is symmetrical.  (Contributed by
       Thierry Arnoux, 7-Feb-2018.) $)
    psmetsym $p |- ( ( D e. ( PsMet ` X ) /\ A e. X /\ B e. X )
      -> ( A D B ) = ( B D A ) ) $=
      ( wcel w3a wceq cle wbr cxad psmettri2 syl13anc cc0 psmet0 oveq2d psmetcl
      co cxr xaddid1 syl cpsmet simp1 simp3 simp2 3adant2 eqtrd breqtrd 3adant3
      cfv 3com23 wa wb xrletri3 syl2anc mpbir2and ) CDUAUIEZADEZBDEZFZABCQZBACQ
      ZGZUTVAHIZVAUTHIZUSUTVABBCQZJQZVAHUSUPURUQURUTVFHIUPUQURUBZUPUQURUCZUPUQU
      RUDZVHABBCDKLUSVFVAMJQZVAUSVEMVAJUPURVEMGUQBCDNUEOUPURUQVJVAGZUPURUQFVARE
      ZVKBACDPZVASTUJUFUGUSVAUTAACQZJQZUTHUSUPUQURUQVAVOHIVGVIVHVIBAACDKLUSVOUT
      MJQZUTUSVNMUTJUPUQVNMGURACDNUHOUSUTREZVPUTGABCDPZUTSTUFUGUSVQVLVBVCVDUKUL
      VRUPURUQVLVMUJUTVAUMUNUO $.

    $( Triangle inequality for the distance function of a pseudometric space.
       (Contributed by Thierry Arnoux, 11-Feb-2018.) $)
    psmettri $p |- ( ( D e. ( PsMet ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) )
              -> ( A D B ) <_ ( ( A D C ) +e ( C D B ) ) ) $=
      ( cpsmet cfv wcel w3a wa co cxad cle simpl simpr3 simpr1 simpr2 psmettri2
      wbr syl13anc wceq psmetsym syl3anc oveq1d breqtrd ) DEFGHZAEHZBEHZCEHZIZJ
      ZABDKZCADKZCBDKZLKZACDKZUNLKMUKUFUIUGUHULUOMSUFUJNZUFUGUHUIOZUFUGUHUIPZUF
      UGUHUIQABCDERTUKUMUPUNLUKUFUIUGUMUPUAUQURUSCADEUBUCUDUE $.

    $( The distance function of a pseudometric space is nonnegative.
       (Contributed by Thierry Arnoux, 7-Feb-2018.) $)
    psmetge0 $p |- ( ( D e. ( PsMet ` X ) /\ A e. X /\ B e. X ) ->
      0 <_ ( A D B ) ) $=
      ( cpsmet cfv wcel w3a cc0 co cle wbr cxmu cxad simp1 simp2 wceq cxr a1i
      c2 simp3 psmettri2 syl13anc psmet0 3adant2 cr 2re xmul01 syl6reqr psmetcl
      rexr mp2b x2times syl 3brtr4d crp wb 0xr 2rp xlemul2 syl3anc mpbird ) CDE
      FGZADGZBDGZHZIABCJZKLZTIMJZTVGMJZKLZVFBBCJZVGVGNJZVIVJKVFVCVDVEVEVLVMKLVC
      VDVEOVCVDVEPVCVDVEUAZVNBBACDUBUCVFVLIVIVCVEVLIQVDBCDUDUETUFGTRGVIIQUGTUKT
      UHULUIVFVGRGZVJVMQABCDUJZVGUMUNUOVFIRGZVOTUPGZVHVKUQVQVFURSVPVRVFUSSIVGTU
      TVAVB $.

    $( The distance function of a pseudometric space is a function into the
       nonnegative extended real numbers.  (Contributed by Thierry Arnoux,
       24-Feb-2018.) $)
    psmetxrge0 $p |- ( D e. ( PsMet ` X )
       -> D : ( X X. X ) --> ( 0 [,] +oo ) ) $=
      ( va cpsmet cfv wcel cxp wfn crn cc0 cpnf cicc co wf cxr cle wbr sylanbrc
      wa wceq wss psmetf ffn syl cv wral ffvelrnda c1st c2nd cop elxp6 psmetge0
      simprbi 3expb sylan2 1st2nd2 fveq2d df-ov syl6eqr adantl breqtrrd elxrge0
      ralrimiva fnfvrnss syl2anc df-f ) ABDEFZABBGZHZAIJKLMZUAZVHVJANVGVHOANVIA
      BUBZVHOAUCUDZVGVICUEZAEZVJFZCVHUFVKVMVGVPCVHVGVNVHFZSZVOOFJVOPQVPVGVHOVNA
      VLUGVRJVNUHEZVNUIEZAMZVOPVQVGVSBFZVTBFZSZJWAPQZVQVNVSVTUJZTWDVNBBUKUMVGWB
      WCWEVSVTABULUNUOVQVOWATVGVQVOWFAEWAVQVNWFAVNBBUPUQVSVTAURUSUTVAVOVBRVCCVH
      VJAVDVEVHVJAVFR $.

    $d a b c R $.
    $( Restriction of a pseudometric.  (Contributed by Thierry Arnoux,
       11-Feb-2018.) $)
    psmetres2 $p |- ( ( D e. ( PsMet ` X ) /\ R C_ X ) ->
                   ( D |` ( R X. R ) ) e. ( PsMet ` R ) ) $=
      ( va vb vc cpsmet wcel wa cxr cv co cc0 wceq adantr simpr ovresd ad2antrr
      cxad cvv cfv wss cxp cres wf cle wbr psmetf xpss12 syl2anc fssresd simpll
      wral sselda psmet0 eqtrd psmettri2 syl13anc oveq12d 3brtr4d ralrimiva jca
      wb elfvex ssexd ispsmet syl mpbir2and ) ACGUAHZBCUBZIZABBUCZUDZBGUAHZVLJV
      MUEZDKZVPVMLZMNZVPEKZVMLZFKZVPVMLZWAVSVMLZSLZUFUGZFBUMZEBUMZIZDBUMZVKCCUC
      ZJVLAVIWJJAUEVJACUHOVKVJVJVLWJUBVIVJPZWKBCBCUIUJUKVKWHDBVKVPBHZIZVRWGWMVQ
      VPVPALZMWMVPVPABVKWLPZWOQWMVIVPCHZWNMNVIVJWLULZVKBCVPWKUNZVPACUOUJUPWMWFE
      BWMVSBHZIZWEFBWTWABHZIZVPVSALZWAVPALZWAVSALZSLZVTWDUFXBVIWACHWPVSCHZXCXFU
      FUGWMVIWSXAWQRWTBCWAVKVJWLWSWKRUNWMWPWSXAWRRWTXGXAWMBCVSVKVJWLWKOUNOVPVSW
      AACUQURWTVTXCNXAWTVPVSABWMWLWSWOOWMWSPZQOXBWBXDWCXESXBWAVPABWTXAPZWMWLWSX
      AWORQXBWAVSABXIWTWSXAXHOQUSUTVAVAVBVAVKBTHVNVOWIIVCVKBCTVICTHVJACGVDOWKVE
      DEFVMTBVFVGVH $.

    $( Real closure of an extended metric value that is upper bounded by a
       real.  (Contributed by Thierry Arnoux, 11-Mar-2018.) $)
    psmetlecl $p |- ( ( D e. ( PsMet ` X ) /\ ( A e. X /\ B e. X ) /\
      ( C e. RR /\ ( A D B ) <_ C ) ) -> ( A D B ) e. RR ) $=
      ( cpsmet cfv wcel wa cr cle wbr w3a cxr cc0 psmetcl 3expb 3adant3 simp3l
      co psmetge0 simp3r xrrege0 syl22anc ) DEFGHZAEHZBEHZIZCJHZABDTZCKLZIZMUJN
      HZUIOUJKLZUKUJJHUEUHUMULUEUFUGUMABDEPQRUEUHUIUKSUEUHUNULUEUFUGUNABDEUAQRU
      EUHUIUKUBUJCUCUD $.
  $}

  ${
    distspace.x $e |- X = ( Base ` G ) $.
    distspace.d $e |- D = ( dist ` G ) $.
    $( A structure ` G ` with a distance function ` D ` which is a pseudometric
       is a _distance space_ (according to E. Deza, M.M. Deza:  "Dictionary of
       Distances", Elsevier, 2006), i.e. a (base) set ` X ` equipped with a
       _distance_ ` D ` , which is a mapping of two elements of the base set to
       the (extended) reals and which is non-negative, symmetric and equal to 0
       if the two elements are equal.  (Contributed by AV, 15-Oct-2021.) $)
    distspace $p |- ( ( D e. ( PsMet ` X ) /\ A e. X /\ B e. X )
                      -> ( ( D : ( X X. X ) --> RR* /\ ( A D A ) = 0 )
                          /\ ( 0 <_ ( A D B ) /\ ( A D B ) = ( B D A ) ) ) ) $=
      ( cpsmet cfv wcel w3a cxp cxr wf co cc0 wceq wa cle wbr psmetf psmet0 jca
      3ad2ant1 3adant3 psmetge0 psmetsym jca32 ) CEHIJZAEJZBEJZKZEELMCNZAACOPQZ
      RPABCOZSTUOBACOQULUMUNUIUJUMUKCEUAUDUIUJUNUKACEUBUEUCABCEUFABCEUGUH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Basic metric space properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c *MetSp $.
  $c MetSp $.
  $c toMetSp $.

  $( Extend class notation with the class of all extended metric spaces. $)
  cxme $a class *MetSp $.

  $( Extend class notation with the class of all metric spaces. $)
  cmt $a class MetSp $.

  $( Extend class notation with the function mapping a metric to a metric
     space. $)
  ctmt $a class toMetSp $.

  $( Define the (proper) class of all extended metric spaces.  (Contributed by
     Mario Carneiro, 2-Sep-2015.) $)
  df-xms $a |- *MetSp = { f e. TopSp | ( TopOpen ` f ) =
    ( MetOpen ` ( ( dist ` f ) |` ( ( Base ` f ) X. ( Base ` f ) ) ) ) } $.

  $( Define the (proper) class of all metric spaces.  (Contributed by NM,
     27-Aug-2006.) $)
  df-ms $a |- MetSp = { f e. *MetSp | ( ( dist ` f ) |`
    ( ( Base ` f ) X. ( Base ` f ) ) ) e. ( Met ` ( Base ` f ) ) } $.

  $( Define the function mapping a metric to a metric space.  (Contributed by
     Mario Carneiro, 2-Sep-2015.) $)
  df-tms $a |- toMetSp = ( d e. U. ran *Met |->
      ( { <. ( Base ` ndx ) , dom dom d >. , <. ( dist ` ndx ) , d >. }
        sSet <. ( TopSet ` ndx ) , ( MetOpen ` d ) >. ) ) $.

  ${
    $d d x y z D $.  $d d t x y z X $.
    $( Express the predicate " ` D ` is a metric."  (Contributed by NM,
       25-Aug-2006.)  (Revised by Mario Carneiro, 14-Aug-2015.) $)
    ismet $p |- ( X e. A -> ( D e. ( Met ` X ) <-> ( D : ( X X. X ) --> RR /\
                 A. x e. X A. y e. X ( ( ( x D y ) = 0 <-> x = y ) /\
                 A. z e. X ( x D y ) <_ ( ( z D x ) + ( z D y ) ) ) ) ) ) $=
      ( vd vt wcel cr cmap co cv cc0 wceq wb caddc wral wa cvv cme cfv cxp crab
      cle wf elex xpeq12 anidms oveq2d raleq anbi2d raleqbi1dv rabeqbidv df-met
      wbr ovex rabex fvmpt eleq2d eqeq1d bibi1d oveq12d breq12d ralbidv anbi12d
      syl oveq 2ralbidv elrab syl6bb reex sqxpexg elmapg sylancr anbi1d bitrd )
      FDIZEFUAUBZIZEJFFUCZKLZIZAMZBMZELZNOZWDWEOZPZWFCMZWDELZWJWEELZQLZUEUPZCFR
      ZSZBFRAFRZSZWAJEUFZWQSVRVTEWDWEGMZLZNOZWHPZXAWJWDWTLZWJWEWTLZQLZUEUPZCFRZ
      SZBFRZAFRZGWBUDZIWRVRVSXLEVRFTIVSXLOFDUGHFXCXGCHMZRZSZBXMRZAXMRZGJXMXMUCZ
      KLZUDXLTUAXMFOZXQXKGXSWBXTXRWAJKXTXRWAOXMFXMFUHUIUJXPXJAXMFXOXIBXMFXTXNXH
      XCXGCXMFUKULUMUMUNHABCGUOXKGWBJWAKUQURUSVGUTXKWQGEWBWTEOZXIWPABFFYAXCWIXH
      WOYAXBWGWHYAXAWFNWDWEWTEVHZVAVBYAXGWNCFYAXAWFXFWMUEYBYAXDWKXEWLQWJWDWTEVH
      WJWEWTEVHVCVDVEVFVIVJVKVRWCWSWQVRJTIWATIWCWSPVLFDVMJWAETTVNVOVPVQ $.

    $( Express the predicate " ` D ` is an extended metric."  (Contributed by
       Mario Carneiro, 20-Aug-2015.) $)
    isxmet $p |- ( X e. A -> ( D e. ( *Met ` X ) <->
               ( D : ( X X. X ) --> RR* /\
                 A. x e. X A. y e. X ( ( ( x D y ) = 0 <-> x = y ) /\
                 A. z e. X ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) ) ) ) $=
      ( vd vt wcel cxr cmap co cv cc0 wceq wb cxad wral wa cvv cxmt cfv cxp cle
      wbr wf crab elex xpeq12 anidms oveq2d anbi2d raleqbi1dv rabeqbidv df-xmet
      raleq ovex rabex fvmpt eleq2d oveq eqeq1d oveq12d breq12d ralbidv anbi12d
      syl bibi1d 2ralbidv elrab syl6bb xrex sqxpexg elmapg sylancr anbi1d bitrd
      ) FDIZEFUAUBZIZEJFFUCZKLZIZAMZBMZELZNOZWDWEOZPZWFCMZWDELZWJWEELZQLZUDUEZC
      FRZSZBFRAFRZSZWAJEUFZWQSVRVTEWDWEGMZLZNOZWHPZXAWJWDWTLZWJWEWTLZQLZUDUEZCF
      RZSZBFRZAFRZGWBUGZIWRVRVSXLEVRFTIVSXLOFDUHHFXCXGCHMZRZSZBXMRZAXMRZGJXMXMU
      CZKLZUGXLTUAXMFOZXQXKGXSWBXTXRWAJKXTXRWAOXMFXMFUIUJUKXPXJAXMFXOXIBXMFXTXN
      XHXCXGCXMFUPULUMUMUNHABCGUOXKGWBJWAKUQURUSVGUTXKWQGEWBWTEOZXIWPABFFYAXCWI
      XHWOYAXBWGWHYAXAWFNWDWEWTEVAZVBVHYAXGWNCFYAXAWFXFWMUDYBYAXDWKXEWLQWJWDWTE
      VAWJWEWTEVAVCVDVEVFVIVJVKVRWCWSWQVRJTIWATIWCWSPVLFDVMJWAETTVNVOVPVQ $.
  $}

  ${
    $d x y z D $.  $d x y z X $.
    ismeti.0 $e |- X e. _V $.
    ismeti.1 $e |- D : ( X X. X ) --> RR $.
    ismeti.2 $e |- ( ( x e. X /\ y e. X ) -> ( ( x D y ) = 0 <-> x = y ) ) $.
    ismeti.3 $e |- ( ( x e. X /\ y e. X /\ z e. X ) ->
                  ( x D y ) <_ ( ( z D x ) + ( z D y ) ) ) $.
    $( Properties that determine a metric.  (Contributed by NM, 17-Nov-2006.)
       (Revised by Mario Carneiro, 14-Aug-2015.) $)
    ismeti $p |- D e. ( Met ` X ) $=
      ( cme cfv wcel cxp cv co wceq wb wral wa cvv cr cc0 caddc 3expa ralrimiva
      wf cle wbr jca rgen2a ismet ax-mp mpbir2an ) DEJKLZEEMUADUFZANZBNZDOZUBPU
      PUQPQZURCNZUPDOUTUQDOUCOUGUHZCERZSZBERAERZGVCABEUPELZUQELZSZUSVBHVGVACEVE
      VFUTELVAIUDUEUIUJETLUNUOVDSQFABCTDEUKULUM $.
  $}

  ${
    $d x y z D $.  $d x y z ph $.  $d x y z X $.
    isxmetd.0 $e |- ( ph -> X e. _V ) $.
    isxmetd.1 $e |- ( ph -> D : ( X X. X ) --> RR* ) $.
    ${
      isxmetd.2 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
        ( ( x D y ) = 0 <-> x = y ) ) $.
      isxmetd.3 $e |- ( ( ph /\ ( x e. X /\ y e. X /\ z e. X ) ) ->
                    ( x D y ) <_ ( ( z D x ) +e ( z D y ) ) ) $.
      $( Properties that determine an extended metric.  (Contributed by Mario
         Carneiro, 20-Aug-2015.) $)
      isxmetd $p |- ( ph -> D e. ( *Met ` X ) ) $=
        ( cxmt cfv wcel cv co wceq wb wral wa cvv cxp cxr wf cc0 cxad cle 3exp2
        wbr wi imp32 ralrimiv jca ralrimivva isxmet syl mpbir2and ) AEFKLMZFFUA
        UBEUCZBNZCNZEOZUDPUSUTPQZVADNZUSEOVCUTEOUEOUFUHZDFRZSZCFRBFRZHAVFBCFFAU
        SFMZUTFMZSSZVBVEIVJVDDFAVHVIVCFMZVDUIAVHVIVKVDJUGUJUKULUMAFTMUQURVGSQGB
        CDTEFUNUOUP $.
    $}

    ${
      isxmet2d.2 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) -> 0 <_ ( x D y ) ) $.
      isxmet2d.3 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
        ( ( x D y ) <_ 0 <-> x = y ) ) $.
      isxmet2d.4 $e |- ( ( ph /\ ( x e. X /\ y e. X /\ z e. X ) /\
        ( ( z D x ) e. RR /\ ( z D y ) e. RR ) ) ->
          ( x D y ) <_ ( ( z D x ) + ( z D y ) ) ) $.
      $( It is safe to only require the triangle inequality when the values are
         real (so that we can use the standard addition over the reals), but in
         this case the nonnegativity constraint cannot be deduced and must be
         provided separately.  (Counterexample:
         ` D ( x , y ) = if ( x = y , 0 , -oo ) ` satisfies all hypotheses
         except nonnegativity.)  (Contributed by Mario Carneiro,
         20-Aug-2015.) $)
      isxmet2d $p |- ( ph -> D e. ( *Met ` X ) ) $=
        ( wcel wa co cc0 wceq cle wbr cxr cpnf cv fovrnda 0xr xrletri3 biantrud
        wb sylancl 3bitr2d w3a cr cxad cmnf caddc 3expa rexadd breqtrrd anassrs
        adantl 3adantr3 pnfge syl ad2antrr wne cicc cxp wf wfn wral ffn elxrge0
        oveq2 sylanbrc ralrimivva adantr simpr3 simpr1 simplbi renemnf xaddpnf1
        ffnov fovrnd syl2an sylan9eqr wi wn simpr2 simprbi ge0nemnf syl2anc a1d
        necon4bd imp w3o elxr sylib mpjao3dan oveq1 xaddpnf2 isxmetd ) ABCDEFGH
        ABUAZFLZCUAZFLZMMZWTXBENZOPZXEOQRZOXEQRZMZXGWTXBPXDXESLZOSLXFXIUFAWTXBS
        FFEHUBZUCXEOUDUGXDXHXGIUEJUHAXAXCDUAZFLZUIZMZXLWTENZUJLZXEXPXLXBENZUKNZ
        QRZXPTPZXPULPZXOXQMZXRUJLZXTXRTPZXRULPZXOXQYDXTXOXQYDMZMXEXPXRUMNZXSQAX
        NYGXEYHQRKUNYGXSYHPXOXPXRUOURUPUQYCYEMXETXSQXOXETQRZXQYEXOXJYIAXAXCXJXM
        XKUSXEUTVAZVBYEYCXSXPTUKNZTXRTXPUKVKXOXPSLZXPULVCZYKTPXQXOXPOTVDNZLZYLX
        OXLWTYNFFEAFFVEZYNEVFZXNAEYPVGZXEYNLZCFVHBFVHYQAYPSEVFYRHYPSEVIVAAYSBCF
        FXDXJXHYSXKIXEVJVLVMBCFFYNEVTVLVNZAXAXCXMVOZAXAXCXMVPWAZYOYLOXPQRZXPVJZ
        VQVAZXPVRXPVSWBWCUPYCYFXTXOYFXTWDXQXOXTXRULXOXRULVCZXTWEZXOXRSLZOXRQRZU
        UFXOXRYNLZUUHXOXLXBYNFFEYTUUAAXAXCXMWFWAZUUJUUHUUIXRVJZVQVAZXOUUJUUIUUK
        UUJUUHUUIUULWGVAXRWHWIZWJWKVNWLYCUUHYDYEYFWMXOUUHXQUUMVNXRWNWOWPXOYAMXE
        TXSQXOYIYAYJVNYAXOXSTXRUKNZTXPTXRUKWQXOUUHUUFUUOTPUUMUUNXRWRWIWCUPXOYBX
        TXOXTXPULXOYMUUGXOYLUUCYMUUEXOYOUUCUUBYOYLUUCUUDWGVAXPWHWIWJWKWLXOYLXQY
        AYBWMUUEXPWNWOWPWS $.
    $}
  $}

  ${
    $d x y z A $.  $d y z B $.  $d d w x y z D $.  $d x y z R $.  $d x y z X $.
    $d z C $.
    $( Lemma for ~ metf and others.  (Contributed by NM, 30-Aug-2006.)
       (Revised by Mario Carneiro, 14-Aug-2015.) $)
    metflem $p |- ( D e. ( Met ` X ) -> ( D : ( X X. X ) --> RR /\
                  A. x e. X A. y e. X ( ( ( x D y ) = 0 <-> x = y ) /\
                  A. z e. X ( x D y ) <_ ( ( z D x ) + ( z D y ) ) ) ) ) $=
      ( cme cfv wcel cxp cr wf cv co cc0 wceq wb caddc cle wral wa elfvdm ismet
      wbr cdm syl ibi ) DEFGHZEEIJDKALZBLZDMZNOUHUIOPUJCLZUHDMUKUIDMQMRUCCESTBE
      SAESTZUGEFUDZHUGULPDEFUAABCUMDEUBUEUF $.

    $( Mapping of the distance function of an extended metric.  (Contributed by
       Mario Carneiro, 20-Aug-2015.) $)
    xmetf $p |- ( D e. ( *Met ` X ) -> D : ( X X. X ) --> RR* ) $=
      ( vx vy vz cxmt cfv wcel cxp cxr wf cv co cc0 wceq wb cxad cle wral wa
      wbr cdm elfvdm isxmet syl ibi simpld ) ABFGHZBBIJAKZCLZDLZAMZNOUJUKOPULEL
      ZUJAMUMUKAMQMRUAEBSTDBSCBSZUHUIUNTZUHBFUBZHUHUOPABFUCCDEUPABUDUEUFUG $.

    $( Mapping of the distance function of a metric space.  (Contributed by NM,
       30-Aug-2006.) $)
    metf $p |- ( D e. ( Met ` X ) -> D : ( X X. X ) --> RR ) $=
      ( vx vy vz cme cfv wcel cxp cr wf cv co cc0 wceq wb caddc cle wbr wral wa
      metflem simpld ) ABFGHBBIJAKCLZDLZAMZNOUDUEOPUFELZUDAMUGUEAMQMRSEBTUADBTC
      BTCDEABUBUC $.

    $( Closure of the distance function of a metric space.  Part of Property M1
       of [Kreyszig] p. 3.  (Contributed by NM, 30-Aug-2006.) $)
    xmetcl $p |- ( ( D e. ( *Met ` X ) /\ A e. X /\ B e. X ) ->
        ( A D B ) e. RR* ) $=
      ( cxmt cfv wcel cxp cxr wf co xmetf fovrn syl3an1 ) CDEFGDDHICJADGBDGABCK
      IGCDLABIDDCMN $.

    $( Closure of the distance function of a metric space.  Part of Property M1
       of [Kreyszig] p. 3.  (Contributed by NM, 30-Aug-2006.) $)
    metcl $p |- ( ( D e. ( Met ` X ) /\ A e. X /\ B e. X ) ->
        ( A D B ) e. RR ) $=
      ( cme cfv wcel cxp cr wf co metf fovrn syl3an1 ) CDEFGDDHICJADGBDGABCKIGC
      DLABIDDCMN $.

    $( An extended metric is a metric exactly when it takes real values for all
       values of the arguments.  (Contributed by Mario Carneiro,
       20-Aug-2015.) $)
    ismet2 $p |- ( D e. ( Met ` X ) <->
        ( D e. ( *Met ` X ) /\ D : ( X X. X ) --> RR ) ) $=
      ( vx vy vz cme cfv wcel cvv cxmt cr wf wa elfvex cv co wceq cle wral cxr
      cxp adantr cc0 caddc wbr cxad simpllr simpr simplrl fovrnd simplrr rexadd
      syl2anc breq2d ralbidva anbi2d 2ralbidva wss ressxr fss sylancl biantrurd
      wb bitr3d pm5.32da ancom syl6bb ismet isxmet anbi1d 3bitr4d pm5.21nii ) A
      BFGHZBIHZABJGHZBBUAZKALZMZABFNVOVNVQABJNUBVNVQCOZDOZAPZUCQVSVTQVCZWAEOZVS
      APZWCVTAPZUDPZRUEZEBSZMZDBSCBSZMZVPTALZWBWAWDWEUFPZRUEZEBSZMZDBSCBSZMZVQM
      ZVMVRVNWKVQWRMWSVNVQWJWRVNVQMZWQWJWRWTWPWICDBBWTVSBHZVTBHZMZMZWOWHWBXDWNW
      GEBXDWCBHZMZWMWFWARXFWDKHWEKHWMWFQXFWCVSKBBAVNVQXCXEUGZXDXEUHZWTXAXBXEUIU
      JXFWCVTKBBAXGXHWTXAXBXEUKUJWDWEULUMUNUOUPUQWTWLWQWTVQKTURWLVNVQUHUSVPKTAU
      TVAVBVDVEVQWRVFVGCDEIABVHVNVOWRVQCDEIABVIVJVKVL $.

    $( A metric is an extended metric.  (Contributed by Mario Carneiro,
       20-Aug-2015.) $)
    metxmet $p |- ( D e. ( Met ` X ) -> D e. ( *Met ` X ) ) $=
      ( cme cfv wcel cxmt cxp cr wf ismet2 simplbi ) ABCDEABFDEBBGHAIABJK $.

    $( Recover the base set from an extended metric.  (Contributed by Mario
       Carneiro, 23-Aug-2015.) $)
    xmetdmdm $p |- ( D e. ( *Met ` X ) -> X = dom dom D ) $=
      ( cxmt cfv wcel cdm cxp cxr wf wceq xmetf fdm syl dmeqd dmxpid syl6req )
      ABCDEZAFZFBBGZFBQRSQSHAIRSJABKSHALMNBOP $.

    $( Recover the base set from a metric.  (Contributed by Mario Carneiro,
       23-Aug-2015.) $)
    metdmdm $p |- ( D e. ( Met ` X ) -> X = dom dom D ) $=
      ( cme cfv wcel cxmt cdm wceq metxmet xmetdmdm syl ) ABCDEABFDEBAGGHABIABJ
      K $.

    $( Two ways to express an extended metric on an unspecified base.
       (Contributed by Mario Carneiro, 13-Oct-2015.) $)
    xmetunirn $p |- ( D e. U. ran *Met <-> D e. ( *Met ` dom dom D ) ) $=
      ( vx vy vz vd vw cxmt crn cuni wcel cdm cfv cv cvv wb wceq wral cxr cmap
      co wrex wfn cc0 cxad cle wbr wa cxp crab ovex rabex df-xmet fnunirn ax-mp
      fnmpti id xmetdmdm fveq2d eleqtrd rexlimivw sylbi fvssunirn sseli impbii
      ) AGHIZJZAAKKZGLZJZVFABMZGLZJZBNUAZVIGNUBVFVMOBNCMZDMZEMZTZUCPVNVOPOVQFMZ
      VNVPTVRVOVPTUDTUEUFFVJQUGDVJQCVJQZERVJVJUHZSTZUIGVSEWARVTSUJUKBCDFEULUOBA
      GNUMUNVLVIBNVLAVKVHVLUPVLVJVGGAVJUQURUSUTVAVHVEAGVGVBVCVD $.

    $( The value of an extended metric is zero iff its arguments are equal.
       (Contributed by Mario Carneiro, 20-Aug-2015.) $)
    xmeteq0 $p |- ( ( D e. ( *Met ` X ) /\ A e. X /\ B e. X )
                 -> ( ( A D B ) = 0 <-> A = B ) ) $=
      ( vx vy vz cxmt cfv wcel co cc0 wceq wb cv wral wa syl eqeq1d bibi12d cle
      cxad wbr cxp cxr wf cdm elfvdm isxmet ibi simpl 2ralimi oveq1 eqeq1 oveq2
      simprd eqeq2 rspc2v syl5com 3impib ) CDHIJZADJZBDJZABCKZLMZABMZNZVAEOZFOZ
      CKZLMZVHVIMZNZFDPEDPZVBVCQVGVAVMVJGOZVHCKVOVICKUBKUAUCGDPZQZFDPEDPZVNVADD
      UDUECUFZVRVAVSVRQZVADHUGZJVAVTNCDHUHEFGWACDUIRUJUPVQVMEFDDVMVPUKULRVMVGAV
      ICKZLMZAVIMZNEFABDDVHAMZVKWCVLWDWEVJWBLVHAVICUMSVHAVIUNTVIBMZWCVEWDVFWFWB
      VDLVIBACUOSVIBAUQTURUSUT $.

    $( The value of a metric is zero iff its arguments are equal.  Property M2
       of [Kreyszig] p. 4.  (Contributed by NM, 30-Aug-2006.) $)
    meteq0 $p |- ( ( D e. ( Met ` X ) /\ A e. X /\ B e. X )
                 -> ( ( A D B ) = 0 <-> A = B ) ) $=
      ( cme cfv wcel cxmt co cc0 wceq wb metxmet xmeteq0 syl3an1 ) CDEFGCDHFGAD
      GBDGABCIJKABKLCDMABCDNO $.

    $( Triangle inequality for the distance function of an extended metric.
       (Contributed by Mario Carneiro, 20-Aug-2015.) $)
    xmettri2 $p |- ( ( D e. ( *Met ` X ) /\ ( C e. X /\ A e. X /\ B e. X ) )
                 -> ( A D B ) <_ ( ( C D A ) +e ( C D B ) ) ) $=
      ( vx vy vz wcel w3a cxmt co cxad cle wbr cv wral wceq oveq1 oveq2 cfv cc0
      wi wb wa cxp cxr wf cdm elfvdm isxmet syl ibi simprd simpr 2ralimi oveq1d
      breq12d oveq2d oveq12d breq2d rspc3v syl5 3comr impcom ) CEIZAEIZBEIZJDEK
      UAIZABDLZCADLZCBDLZMLZNOZVGVHVFVIVNUCVIFPZGPZDLZHPZVODLZVRVPDLZMLZNOZHEQZ
      GEQFEQZVGVHVFJVNVIVQUBRVOVPRUDZWCUEZGEQFEQZWDVIEEUFUGDUHZWGVIWHWGUEZVIEKU
      IZIVIWIUDDEKUJFGHWJDEUKULUMUNWFWCFGEEWEWCUOUPULWBVNAVPDLZVRADLZVTMLZNOVJW
      LVRBDLZMLZNOFGHABCEEEVOARZVQWKWAWMNVOAVPDSWPVSWLVTMVOAVRDTUQURVPBRZWKVJWM
      WONVPBADTWQVTWNWLMVPBVRDTUSURVRCRZWOVMVJNWRWLVKWNVLMVRCADSVRCBDSUTVAVBVCV
      DVE $.

    $( Triangle inequality for the distance function of a metric space.
       (Contributed by NM, 30-Aug-2006.)  (Revised by Mario Carneiro,
       20-Aug-2015.) $)
    mettri2 $p |- ( ( D e. ( Met ` X ) /\ ( C e. X /\ A e. X /\ B e. X ) )
                 -> ( A D B ) <_ ( ( C D A ) + ( C D B ) ) ) $=
      ( cme cfv wcel w3a wa co cxad caddc cle cxmt wbr metxmet xmettri2 metcl
      cr sylan wceq 3adant3r3 3adant3r2 rexadd syl2anc breqtrd ) DEFGHZCEHZAEHZ
      BEHZIZJZABDKZCADKZCBDKZLKZUOUPMKZNUHDEOGHULUNUQNPDEQABCDERUAUMUOTHZUPTHZU
      QURUBUHUIUJUSUKCADESUCUHUIUKUTUJCBDESUDUOUPUEUFUG $.

    $( The distance function of a metric space is zero if its arguments are
       equal.  Definition 14-1.1(a) of [Gleason] p. 223.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    xmet0 $p |- ( ( D e. ( *Met ` X ) /\ A e. X ) -> ( A D A ) = 0 ) $=
      ( cxmt cfv wcel wa co cc0 wceq eqid wb xmeteq0 3anidm23 mpbiri ) BCDEFZAC
      FZGAABHIJZAAJZAKPQRSLAABCMNO $.

    $( The distance function of a metric space is zero if its arguments are
       equal.  Definition 14-1.1(a) of [Gleason] p. 223.  (Contributed by NM,
       30-Aug-2006.) $)
    met0 $p |- ( ( D e. ( Met ` X ) /\ A e. X ) -> ( A D A ) = 0 ) $=
      ( cme cfv wcel cxmt co cc0 wceq metxmet xmet0 sylan ) BCDEFBCGEFACFAABHIJ
      BCKABCLM $.

    $( The distance function of a metric space is nonnegative.  (Contributed by
       Mario Carneiro, 20-Aug-2015.) $)
    xmetge0 $p |- ( ( D e. ( *Met ` X ) /\ A e. X /\ B e. X ) ->
                  0 <_ ( A D B ) ) $=
      ( cxmt cfv wcel w3a cc0 co cle wbr c2 cxmu cxad simp1 simp2 wceq cxr a1i
      simp3 xmettri2 syl13anc xmet0 3adant2 cr rexr xmul01 mp2b syl6reqr xmetcl
      2re x2times syl 3brtr4d crp wb 0xr 2rp xlemul2 syl3anc mpbird ) CDEFGZADG
      ZBDGZHZIABCJZKLZMINJZMVGNJZKLZVFBBCJZVGVGOJZVIVJKVFVCVDVEVEVLVMKLVCVDVEPV
      CVDVEQVCVDVEUAZVNBBACDUBUCVFVLIVIVCVEVLIRVDBCDUDUEMUFGMSGVIIRULMUGMUHUIUJ
      VFVGSGZVJVMRABCDUKZVGUMUNUOVFISGZVOMUPGZVHVKUQVQVFURTVPVRVFUSTIVGMUTVAVB
      $.

    $( The distance function of a metric space is nonnegative.  (Contributed by
       NM, 27-Aug-2006.)  (Revised by Mario Carneiro, 14-Aug-2015.) $)
    metge0 $p |- ( ( D e. ( Met ` X ) /\ A e. X /\ B e. X ) ->
                  0 <_ ( A D B ) ) $=
      ( cme cfv wcel cxmt cc0 co cle wbr metxmet xmetge0 syl3an1 ) CDEFGCDHFGAD
      GBDGIABCJKLCDMABCDNO $.

    $( Real closure of an extended metric value that is upper bounded by a
       real.  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
    xmetlecl $p |- ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X ) /\
      ( C e. RR /\ ( A D B ) <_ C ) ) -> ( A D B ) e. RR ) $=
      ( cxmt cfv wcel wa cr co cle wbr w3a cxr cc0 xmetcl 3expb 3adant3 simp3l
      xmetge0 simp3r xrrege0 syl22anc ) DEFGHZAEHZBEHZIZCJHZABDKZCLMZIZNUJOHZUI
      PUJLMZUKUJJHUEUHUMULUEUFUGUMABDEQRSUEUHUIUKTUEUHUNULUEUFUGUNABDEUARSUEUHU
      IUKUBUJCUCUD $.

    $( The distance function of an extended metric space is symmetric.
       (Contributed by Mario Carneiro, 20-Aug-2015.) $)
    xmetsym $p |- ( ( D e. ( *Met ` X ) /\ A e. X /\ B e. X ) ->
                  ( A D B ) = ( B D A ) ) $=
      ( wcel w3a co wceq cle wbr cxad xmettri2 syl13anc cc0 xmet0 oveq2d xmetcl
      cxr xaddid1 syl cxmt cfv simp1 simp3 simp2 3adant2 3com23 breqtrd 3adant3
      eqtrd wa wb xrletri3 syl2anc mpbir2and ) CDUAUBEZADEZBDEZFZABCGZBACGZHZUT
      VAIJZVAUTIJZUSUTVABBCGZKGZVAIUSUPURUQURUTVFIJUPUQURUCZUPUQURUDZUPUQURUEZV
      HABBCDLMUSVFVANKGZVAUSVENVAKUPURVENHUQBCDOUFPUPURUQVJVAHZUPURUQFVAREZVKBA
      CDQZVASTUGUJUHUSVAUTAACGZKGZUTIUSUPUQURUQVAVOIJVGVIVHVIBAACDLMUSVOUTNKGZU
      TUSVNNUTKUPUQVNNHURACDOUIPUSUTREZVPUTHABCDQZUTSTUJUHUSVQVLVBVCVDUKULVRUPU
      RUQVLVMUGUTVAUMUNUO $.

    $( An extended metric is a pseudometric.  (Contributed by Thierry Arnoux,
       7-Feb-2018.) $)
    xmetpsmet $p |- ( D e. ( *Met ` X ) -> D e. ( PsMet ` X ) ) $=
      ( vx vy vz cxmt cfv wcel cpsmet cxp cxr wf cv co cc0 wa w3a ralrimiva cvv
      wral wceq cxad cle wbr xmetf 3anrot xmettri2 sylan2br 3anassrs jca elfvex
      xmet0 wb ispsmet syl mpbir2and ) ABFGHZABIGHZBBJKALZCMZUTANOUAZUTDMZANEMZ
      UTANVCVBANUBNUCUDZEBTZDBTZPZCBTZABUEUQVGCBUQUTBHZPZVAVFUTABULVJVEDBVJVBBH
      ZPVDEBUQVIVKVCBHZVDVIVKVLQUQVLVIVKQVDVLVIVKUFUTVBVCABUGUHUIRRUJRUQBSHURUS
      VHPUMABFUKCDEASBUNUOUP $.

    $( The distance function of an extended metric space is symmetric.
       (Contributed by Mario Carneiro, 20-Aug-2015.) $)
    xmettpos $p |- ( D e. ( *Met ` X ) -> tpos D = D ) $=
      ( vx vy cxmt cfv wcel ctpos wceq cv wral xmetsym 3expb ralrimivva cxp cxr
      co wf wfn wb xmetf ffn tpossym 3syl mpbird ) ABEFGZAHAIZCJZDJZAQUIUHAQIZD
      BKCBKZUFUJCDBBUFUHBGUIBGUJUHUIABLMNUFBBOZPARAULSUGUKTABUAULPAUBCDBAUCUDUE
      $.

    $( The distance function of a metric space is symmetric.  Definition
       14-1.1(c) of [Gleason] p. 223.  (Contributed by NM, 27-Aug-2006.)
       (Revised by Mario Carneiro, 20-Aug-2015.) $)
    metsym $p |- ( ( D e. ( Met ` X ) /\ A e. X /\ B e. X ) ->
                  ( A D B ) = ( B D A ) ) $=
      ( cme cfv wcel cxmt co wceq metxmet xmetsym syl3an1 ) CDEFGCDHFGADGBDGABC
      IBACIJCDKABCDLM $.

    $( Triangle inequality for the distance function of a metric space.
       Definition 14-1.1(d) of [Gleason] p. 223.  (Contributed by Mario
       Carneiro, 20-Aug-2015.) $)
    xmettri $p |- ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) )
              -> ( A D B ) <_ ( ( A D C ) +e ( C D B ) ) ) $=
      ( cxmt cfv wcel w3a wa cxad cle wbr simpl simpr3 simpr1 xmettri2 syl13anc
      co simpr2 wceq xmetsym syl3anc oveq1d breqtrd ) DEFGHZAEHZBEHZCEHZIZJZABD
      SZCADSZCBDSZKSZACDSZUNKSLUKUFUIUGUHULUOLMUFUJNZUFUGUHUIOZUFUGUHUIPZUFUGUH
      UITABCDEQRUKUMUPUNKUKUFUIUGUMUPUAUQURUSCADEUBUCUDUE $.

    $( Triangle inequality for the distance function of a metric space.
       Definition 14-1.1(d) of [Gleason] p. 223.  (Contributed by NM,
       27-Aug-2006.) $)
    mettri $p |- ( ( D e. ( Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) )
              -> ( A D B ) <_ ( ( A D C ) + ( C D B ) ) ) $=
      ( cme cfv wcel w3a wa co caddc cle wbr mettri2 expcom 3coml impcom wceq
      wi metsym 3adant3r2 oveq1d breqtrrd ) DEFGHZAEHZBEHZCEHZIZJZABDKZCADKZCBD
      KZLKZACDKZUMLKMUIUEUKUNMNZUHUFUGUEUPTUEUHUFUGIUPABCDEOPQRUJUOULUMLUEUFUHU
      OULSUGACDEUAUBUCUD $.

    $( Triangle inequality for the distance function of an extended metric.
       (Contributed by Mario Carneiro, 20-Aug-2015.) $)
    xmettri3 $p |- ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) )
                 -> ( A D B ) <_ ( ( A D C ) +e ( B D C ) ) ) $=
      ( cxmt cfv wcel w3a wa co cxad cle xmettri wceq 3adant3r1 oveq2d breqtrrd
      xmetsym ) DEFGHZAEHZBEHZCEHZIJZABDKACDKZCBDKZLKUEBCDKZLKMABCDENUDUGUFUELT
      UBUCUGUFOUABCDESPQR $.

    $( Triangle inequality for the distance function of a metric space.
       (Contributed by NM, 13-Mar-2007.) $)
    mettri3 $p |- ( ( D e. ( Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) )
              -> ( A D B ) <_ ( ( A D C ) + ( B D C ) ) ) $=
      ( cme cfv wcel w3a wa co cle mettri wceq metsym 3adant3r1 oveq2d breqtrrd
      caddc ) DEFGHZAEHZBEHZCEHZIJZABDKACDKZCBDKZSKUEBCDKZSKLABCDEMUDUGUFUESTUB
      UCUGUFNUABCDEOPQR $.

    $( One half of the reverse triangle inequality for the distance function of
       an extended metric.  (Contributed by Mario Carneiro, 4-Sep-2015.) $)
    xmetrtri $p |- ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                    ( ( A D C ) +e -e ( B D C ) ) <_ ( A D B ) ) $=
      ( cxmt cfv wcel w3a co cxad cle wbr cxr cc0 3adant3r2 3adant3r1 3adant3r3
      xmetcl xmetge0 wa cxne 3ancomb xmettri sylan2b cmnf wb ge0nemnf xlesubadd
      wne syl2anc syl33anc mpbird ) DEFGHZAEHZBEHZCEHZIZUAZACDJZBCDJZUBKJABDJZL
      MZUTVBVAKJLMZURUNUOUQUPIVDUOUPUQUCACBDEUDUEUSUTNHZVANHZVBNHZOUTLMZVAUFUJZ
      OVBLMZVCVDUGUNUOUQVEUPACDESPUNUPUQVFUOBCDESQZUNUOUPVGUQABDESRUNUOUQVHUPAC
      DETPUSVFOVALMZVIVKUNUPUQVLUOBCDETQVAUHUKUNUOUPVJUQABDETRUTVAVBUIULUM $.

    ${
      xmetrtri2.1 $e |- K = ( dist ` RR*s ) $.
      $( The reverse triangle inequality for the distance function of an
         extended metric.  In order to express the "extended absolute value
         function", we use the distance function ~ xrsdsval defined on the
         extended real structure.  (Contributed by Mario Carneiro,
         4-Sep-2015.) $)
      xmetrtri2 $p |- ( ( D e. ( *Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) )
         -> ( ( A D C ) K ( B D C ) ) <_ ( A D B ) ) $=
        ( wcel w3a co cle wbr cxne cxad cxr wceq xmetcl syl2anc xmetrtri breq1
        cxmt cfv 3adant3r2 3adant3r1 xrsdsval 3ancoma sylan2b xmetsym 3adant3r3
        wa cif breqtrrd ifboth eqbrtrd ) DFUAUBHZAFHZBFHZCFHZIZUJZACDJZBCDJZEJZ
        VAVBKLZVBVAMNJZVAVBMNJZUKZABDJZKUTVAOHZVBOHZVCVGPUOUPURVIUQACDFQUCUOUQU
        RVJUPBCDFQUDVAVBEGUERUTVEVHKLZVFVHKLZVGVHKLZUTVEBADJZVHKUSUOUQUPURIVEVN
        KLUPUQURUFBACDFSUGUOUPUQVHVNPURABDFUHUIULABCDFSVDVKVLVMVEVFVEVGVHKTVFVG
        VHKTUMRUN $.
    $}

    $( Reverse triangle inequality for the distance function of a metric space.
       (Contributed by Mario Carneiro, 5-May-2014.) $)
    metrtri $p |- ( ( D e. ( Met ` X ) /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                    ( abs ` ( ( A D C ) - ( B D C ) ) ) <_ ( A D B ) ) $=
      ( cme cfv wcel w3a wa co cxrs cds cmin cabs cle cr wceq metcl 3adant3r2
      3adant3r1 eqid xrsdsreval syl2anc cxmt metxmet xmetrtri2 sylan eqbrtrrd
      wbr ) DEFGHZAEHZBEHZCEHZIZJZACDKZBCDKZLMGZKZUQURNKOGZABDKZPUPUQQHZURQHZUT
      VARUKULUNVCUMACDESTUKUMUNVDULBCDESUAUQURUSUSUBZUCUDUKDEUEGHUOUTVBPUJDEUFA
      BCDUSEVEUGUHUI $.

    $( The distance function of an extended metric space is positive for
       unequal points.  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
    xmetgt0 $p |- ( ( D e. ( *Met ` X ) /\ A e. X /\ B e. X ) ->
                ( A =/= B <-> 0 < ( A D B ) ) ) $=
      ( cxmt cfv wcel w3a cc0 co clt wbr cle wceq wn wa cxr wb 0xr sylancl
      xmetge0 biantrud xmetcl xrletri3 xrlenlt xmeteq0 3bitr3d necon1abid
      bitr4d ) CDEFGADGBDGHZIABCJZKLZABUJUKIMLZUKINZULOZABNUJUMUMIUKMLZPZUNUJUP
      UMABCDUAUBUJUKQGZIQGZUNUQRABCDUCZSUKIUDTUIUJURUSUMUORUTSUKIUETABCDUFUGUH
      $.

    $( The distance function of a metric space is positive for unequal points.
       Definition 14-1.1(b) of [Gleason] p. 223 and its converse.  (Contributed
       by NM, 27-Aug-2006.) $)
    metgt0 $p |- ( ( D e. ( Met ` X ) /\ A e. X /\ B e. X ) ->
                ( A =/= B <-> 0 < ( A D B ) ) ) $=
      ( cme cfv wcel cxmt wne cc0 co clt wbr wb metxmet xmetgt0 syl3an1 ) CDEFG
      CDHFGADGBDGABIJABCKLMNCDOABCDPQ $.

    $( A metric space is nonempty iff its base set is nonempty.  (Contributed
       by NM, 4-Oct-2007.)  (Revised by Mario Carneiro, 14-Aug-2015.) $)
    metn0 $p |- ( D e. ( Met ` X ) -> ( D =/= (/) <-> X =/= (/) ) ) $=
      ( cme cfv wcel c0 wceq cxp cdm cr wf wrel wb metf frel reldm0 3syl eqeq1d
      fdm syl bitrd wo xpeq0 oridm bitri syl6bb necon3bid ) ABCDEZAFBFUHAFGZBBH
      ZFGZBFGZUHUIAIZFGZUKUHUJJAKZALUIUNMABNZUJJAOAPQUHUMUJFUHUOUMUJGUPUJJASTRU
      AUKULULUBULBBUCULUDUEUFUG $.

    $( Restriction of an extended metric.  (Contributed by Mario Carneiro,
       20-Aug-2015.) $)
    xmetres2 $p |- ( ( D e. ( *Met ` X ) /\ R C_ X ) ->
                   ( D |` ( R X. R ) ) e. ( *Met ` R ) ) $=
      ( vx vy vz cxmt wcel wss wa cxp adantr cxr cv co cc0 wceq sseldd 3adantr3
      cxad cfv cres cdm elfvdm simpr ssexd xmetf xpss12 sylancom fssresd adantl
      wf ovres eqeq1d simpll simplr simprl simprr xmeteq0 syl3anc bitrd w3a cle
      wbr simpr3 xmettri2 syl13anc simpr1 ovresd simpr2 oveq12d 3brtr4d isxmetd
      wb ) ACGUAHZBCIZJZDEFABBKZUBZBVQBCGUCZVOCVTHVPACGUDLVOVPUEZUFVQCCKZMVRAVO
      WBMAULVPACUGLVOVPVPVRWBIWABCBCUHUIUJVQDNZBHZENZBHZJZJZWCWEVSOZPQWCWEAOZPQ
      ZWCWEQZWHWIWJPWGWIWJQZVQWCWEBBAUMUKZUNWHVOWCCHZWECHZWKWLVNVOVPWGUOWHBCWCV
      OVPWGUPZVQWDWFUQRZWHBCWEWQVQWDWFURRZWCWEACUSUTVAVQWDWFFNZBHZVBZJZWJWTWCAO
      ZWTWEAOZTOZWIWTWCVSOZWTWEVSOZTOVCXCVOWTCHWOWPWJXFVCVDVOVPXBUOXCBCWTVOVPXB
      UPVQWDWFXAVEZRVQWDWFWOXAWRSVQWDWFWPXAWSSWCWEWTACVFVGVQWDWFWMXAWNSXCXGXDXH
      XETXCWTWCABXIVQWDWFXAVHVIXCWTWEABXIVQWDWFXAVJVIVKVLVM $.

    $( Lemma for ~ metres .  (Contributed by Mario Carneiro, 24-Aug-2015.) $)
    metreslem $p |- ( dom D = ( X X. X ) ->
        ( D |` ( R X. R ) ) = ( D |` ( ( X i^i R ) X. ( X i^i R ) ) ) ) $=
      ( cdm cxp wceq cres cin resdmres ineq2 dmres incom eqtr3i 3eqtr4g reseq2d
      inxp syl5eqr ) ADZCCEZFZABBEZGZAUBDZGACBHZUDEZGAUAITUCUEATUARHUASHZUCUERS
      UAJAUAKSUAHUEUFCCBBPSUALMNOQ $.

    $( Lemma for ~ metres .  (Contributed by FL, 12-Oct-2006.)  (Proof
       shortened by Mario Carneiro, 14-Aug-2015.) $)
    metres2 $p |- ( ( D e. ( Met ` X ) /\ R C_ X ) ->
                   ( D |` ( R X. R ) ) e. ( Met ` R ) ) $=
      ( cme cfv wcel wss wa cxp cres cxmt cr metxmet xmetres2 sylan metf adantr
      wf simpr xpss12 sylancom fssresd ismet2 sylanbrc ) ACDEFZBCGZHZABBIZJZBKE
      FZUHLUIRUIBDEFUEACKEFUFUJACMABCNOUGCCIZLUHAUEUKLARUFACPQUEUFUFUHUKGUEUFSB
      CBCTUAUBUIBUCUD $.
  $}

  $( A restriction of an extended metric is an extended metric.  (Contributed
     by Mario Carneiro, 24-Aug-2015.) $)
  xmetres $p |- ( D e. ( *Met ` X ) ->
      ( D |` ( R X. R ) ) e. ( *Met ` ( X i^i R ) ) ) $=
    ( cxmt cfv wcel cxp cres cin cxr wf cdm wceq xmetf fdm metreslem 3syl inss1
    wss xmetres2 mpan2 eqeltrd ) ACDEFZABBGHZACBIZUEGHZUEDEZUCCCGZJAKALUHMUDUFM
    ACNUHJAOABCPQUCUECSUFUGFCBRAUECTUAUB $.

  $( A restriction of a metric is a metric.  (Contributed by NM, 26-Aug-2007.)
     (Revised by Mario Carneiro, 14-Aug-2015.) $)
  metres $p |- ( D e. ( Met ` X ) ->
      ( D |` ( R X. R ) ) e. ( Met ` ( X i^i R ) ) ) $=
    ( cme cfv wcel cxp cres cin cr cdm wceq metf fdm metreslem 3syl wss metres2
    wf inss1 mpan2 eqeltrd ) ACDEFZABBGHZACBIZUEGHZUEDEZUCCCGZJASAKUHLUDUFLACMU
    HJANABCOPUCUECQUFUGFCBTAUECRUAUB $.

  ${
    $d x y z $.
    $( The empty metric.  (Contributed by NM, 30-Aug-2006.)  (Revised by Mario
       Carneiro, 14-Aug-2015.) $)
    0met $p |- (/) e. ( Met ` (/) ) $=
      ( vx vy vz c0 0ex cxp cr wf f0 xp0 feq2i mpbir cv wcel co wceq wb pm2.21i
      cc0 noel adantr caddc cle wbr 3ad2ant1 ismeti ) ABCDDEDDFZGDHDGDHGIUGDGDD
      JKLAMZDNZUHBMZDOZSPUHUJPQZUJDNZUIULUHTZRUAUIUMUKCMZUHDOUOUJDOUBOUCUDZUODN
      UIUPUNRUEUF $.
  $}

  ${
    $d f g h y B $.  $d f g h y z D $.  $d z E $.  $d f g x y z I $.  $d z V $.
    $d f g h x y ph $.  $d f g y z R $.  $d f g y S $.  $d f g y Y $.
    prdsdsf.y $e |- Y = ( S Xs_ ( x e. I |-> R ) ) $.
    prdsdsf.b $e |- B = ( Base ` Y ) $.
    prdsdsf.v $e |- V = ( Base ` R ) $.
    prdsdsf.e $e |- E = ( ( dist ` R ) |` ( V X. V ) ) $.
    prdsdsf.d $e |- D = ( dist ` Y ) $.
    prdsdsf.s $e |- ( ph -> S e. W ) $.
    prdsdsf.i $e |- ( ph -> I e. X ) $.
    prdsdsf.r $e |- ( ( ph /\ x e. I ) -> R e. Z ) $.
    prdsdsf.m $e |- ( ( ph /\ x e. I ) -> E e. ( *Met ` V ) ) $.
    $( The product metric is a function into the nonnegative extended reals.
       In general this means that it is not a metric but rather an *extended*
       metric (even when all the factors are metrics), but it will be a metric
       when restricted to regions where it does not take infinite values.
       (Contributed by Mario Carneiro, 20-Aug-2015.) $)
    prdsdsf $p |- ( ph -> D : ( B X. B ) --> ( 0 [,] +oo ) ) $=
      ( vf vg vy cxp cc0 cpnf cicc co wf cfv cmpt cds crn csn cun cxr clt cmpt2
      cv csup wcel wral wa cle wbr wss csb cres cvv wceq simpr ralrimiva adantr
      elex syl nfcsb1v nfel1 csbeq1a eleq1d rspc mpan9 eqid fvmpts fveq2d oveqd
      syl2anc simprl prdsbascl nfel2 fveq2 eleq12d simprr ovresd cxmt nfcv nffv
      eqtr4d nfxp nfres nfel sqxpeqd reseq12d syl5eq xmetcl syl3anc eqeltrd frn
      fmptd 0xr a1i snssd unssd supxrcl ssun2 c0ex snss supxrub sylancl elxrge0
      mpbir sylanbrc ralrimivva fmpt2 sylib mptexg dmmptg prdsds feq1d mpbird
      cdm ) ACCUFZUGUHUIUJZDUKYMYNUCUDCCUEHUEVAZUCVAZULZYOUDVAZULZYOBHEUMZULZUN
      ULZUJZUMZUOZUGUPZUQZURUSVBZUTZUKZAUUHYNVCZUDCVDUCCVDUUJAUUKUCUDCCAYPCVCZY
      RCVCZVEZVEZUUHURVCZUGUUHVFVGZUUKUUOUUGURVHZUUPUUOUUEUUFURUUOHURUUDUKUUEUR
      VHUUOUEHUUCURUUDUUOYOHVCZVEZUUCYQYSBYOEVIZUNULZBYOIVIZUVCUFZVJZUJZURUUTUU
      CYQYSUVBUJUVFUUTUUBUVBYQYSUUTUUAUVAUNUUTUUSUVAVKVCZUUAUVAVLUUOUUSVMUUOEVK
      VCZBHVDZUUSUVGAUVIUUNAUVHBHABVAZHVCVEEMVCZUVHUAEMVPVQVNVOZUVHUVGBYOHBUVAV
      KBYOEVRZVSUVJYOVLZEUVAVKBYOEVTZWAWBWCBYOEHYTVKYTWDWEWHWFWGUUTYQYSUVBUVCUU
      OUVJYPULZIVCZBHVDUUSYQUVCVCZUUOBCEFYPHIJKVKLNOAFJVCUUNSVOZAHKVCZUUNTVOZUV
      LPAUULUUMWIWJUVQUVRBYOHBYQUVCBYOIVRZWKUVNUVPYQIUVCUVJYOYPWLBYOIVTZWMWBWCZ
      UUOUVJYRULZIVCZBHVDUUSYSUVCVCZUUOBCEFYRHIJKVKLNOUVSUWAUVLPAUULUUMWNWJUWFU
      WGBYOHBYSUVCUWBWKUVNUWEYSIUVCUVJYOYRWLUWCWMWBWCZWOWSUUTUVEUVCWPULZVCZUVRU
      WGUVFURVCUUOGIWPULZVCZBHVDZUUSUWJAUWMUUNAUWLBHUBVNVOUWLUWJBYOHBUVEUWIBUVB
      UVDBUVAUNBUNWQUVMWRBUVCUVCUWBUWBWTXABUVCWPBWPWQUWBWRXBUVNGUVEUWKUWIUVNGEU
      NULZIIUFZVJUVEQUVNUWNUVBUWOUVDUVNEUVAUNUVOWFUVNIUVCUWCXCXDXEUVNIUVCWPUWCW
      FWMWBWCUWDUWHYQYSUVEUVCXFXGXHUUDWDXJHURUUDXIVQUUOUGURUGURVCUUOXKXLXMXNZUU
      GXOVQUUOUURUGUUGVCZUUQUWPUWQUUFUUGVHUUFUUEXPUGUUGXQXRYBUUGUGXSXTUUHYAYCYD
      UCUDCCUUHYNUUIUUIWDYEYFAYMYNDUUIAUECDLYTFUCUDHJVKNSAUVTYTVKVCTBHEKYGVQOAU
      VKBHVDYTYLHVLAUVKBHUAVNBHEMYHVQRYIYJYK $.

    ${
      $d x B $.  $d x D $.
      $( The product metric is an extended metric.  (Contributed by Mario
         Carneiro, 20-Aug-2015.) $)
      prdsxmetlem $p |- ( ph -> D e. ( *Met ` B ) ) $=
        ( vf vg vh vz cvv wcel cbs cfv fvex eqeltri a1i cxp cc0 cpnf cicc co wf
        cxr wss prdsdsf iccssxr fss sylancl cle wbr fovrnda elxrge0 simprbi syl
        cv wa cmpt crn csn cun clt csup wral adantr ralrimiva simprl prdsdsval3
        wceq simprr breq1d cxmt adantlr prdsbascl r19.21bi xmetcl syl3anc fmptd
        eqid frn 0xr snssd unssd supxrleub 0le0 c0ex breq1 ralsn mpbir mpbiran2
        wb ralunb ovex rgenw ralrnmpt ax-mp bitri xmetge0 biantrud xrletri3 wfn
        xmeteq0 prdsbasfn syl2anc cr caddc 3adantr3 3adant3 3ad2ant1 ssun1 wrex
        w3a cab elabrex adantl rnmpt syl6eleqr sseldi supxrub breqtrrd syl22anc
        xrrege0 mpbird fovrnd ralbidva fnmpt eqfnfv bitr4d syl5bb 3bitrd simp23
        3ad2antl1 simp3l simp21 simp3r simp22 readdcld xmettri2 syl13anc rexadd
        3bitr2d breqtrd readdcl 3ad2ant3 le2addd letrd addge0d sylanbrc eqbrtrd
        cxad sylibr rexrd isxmet2d ) AUCUDUEDCCUGUHACLUIUJUGOLUIUKULUMACCUNZUOU
        PUQURZDUSZUVKUTVAUVJUTDUSABCDEFGHIJKLMNOPQRSTUAUBVBZUOUPVCUVJUVKUTDVDVE
        AUCVLZCUHZUDVLZCUHZVMZVMZUVNUVPDURZUVKUHZUOUVTVFVGZAUVNUVPUVKCCDUVMVHUW
        AUVTUTUHUWBUVTVIVJVKUVSUVTUOVFVGBHBVLZUVNUJZUWCUVPUJZGURZVNZVOZUOVPZVQZ
        UTVRVSZUOVFVGZUFVLZUOVFVGZUFUWJVTZUVNUVPWEZUVSUVTUWKUOVFUVSBCDEFGUVNUVP
        HIJKMLNOAFJUHZUVRSWAZAHKUHZUVRTWAZAEMUHZBHVTZUVRAUXABHUAWBZWAZAUVOUVQWC
        ZAUVOUVQWFZPQRWDZWGUVSUWJUTVAZUOUTUHZUWLUWOXGUVSUWHUWIUTUVSHUTUWGUSUWHU
        TVAUVSBHUWFUTUWGUVSUWCHUHZVMZGIWHUJUHZUWDIUHZUWEIUHZUWFUTUHZAUXJUXLUVRU
        BWIZUVSUXMBHUVSBCEFUVNHIJKMLNOUWRUWTUXDPUXEWJZWKZUVSUXNBHUVSBCEFUVPHIJK
        MLNOUWRUWTUXDPUXFWJZWKZUWDUWEGIWLZWMZUWGWOZWNHUTUWGWPVKUVSUOUTUXIUVSWQU
        MWRWSZWQUFUWJUOWTVEUWOUWFUOVFVGZBHVTZUVSUWPUWOUWNUFUWHVTZUYFUWOUYGUWNUF
        UWIVTZUYHUOUOVFVGZXAUWNUYIUFUOXBUWMUOUOVFXCXDXEUWNUFUWHUWIXHXFUWFUGUHZB
        HVTUYGUYFXGUYJBHUWDUWEGXIXJUWNUYEBUFHUWFUWGUGUYCUWMUWFUOVFXCXKXLXMUVSUY
        FUWDUWEWEZBHVTZUWPUVSUYEUYKBHUXKUYEUYEUOUWFVFVGZVMZUWFUOWEZUYKUXKUYMUYE
        UXKUXLUXMUXNUYMUXPUXRUXTUWDUWEGIXNZWMXOUXKUXOUXIUYOUYNXGUYBWQUWFUOXPVEU
        XKUXLUXMUXNUYOUYKXGUXPUXRUXTUWDUWEGIXRWMUUQUUAUVSUVNHXQUVPHXQUWPUYLXGUV
        SCBHEVNZFUVNHJKLNOUWRUWTAUYQHXQZUVRAUXBUYRUXCBHEUYQMUYQWOUUBVKWAZUXEXSU
        VSCUYQFUVPHJKLNOUWRUWTUYSUXFXSBHUVNUVPUUCXTUUDUUEUUFAUVOUVQUEVLZCUHZYHZ
        UYTUVNDURZYAUHZUYTUVPDURZYAUHZVMZYHZUVTUWKVUCVUEYBURZVFAVUBUVTUWKWEZVUG
        AUVOUVQVUJVUAUXGYCYDVUHUWKVUIVFVGZUWMVUIVFVGZUFUWJVTZVUHVULUFUWHVTZVULU
        FUWIVTZVUMVUHVUNUWFVUIVFVGZBHVTZVUHVUPBHVUHUXJVMZUWFUWCUYTUJZUWDGURZVUS
        UWEGURZYBURZVUIVURUXOVVBYAUHUYMUWFVVBVFVGUWFYAUHVURUXLUXMUXNUXOAVUBUXJU
        XLVUGUBUUHZVUHUXMBHAVUBUXMBHVTZVUGAUVOUVQVVDVUAUXQYCYDWKZVUHUXNBHAVUBUX
        NBHVTZVUGAUVOUVQVVFVUAUXSYCYDWKZUYAWMZVURVUTVVAVURVUTUTUHZVUDUOVUTVFVGZ
        VUTVUCVFVGVUTYAUHZVURUXLVUSIUHZUXMVVIVVCVUHVVLBHVUHBCEFUYTHIJKMLNOAVUBU
        WQVUGSYEZAVUBUWSVUGTYEZAVUBUXBVUGUXCYEZPAUVOUVQVUAVUGUUGZWJWKZVVEVUSUWD
        GIWLWMZVUHVUDUXJAVUBVUDVUFUUIZWAZVURUXLVVLUXMVVJVVCVVQVVEVUSUWDGIXNWMVU
        RVUTBHVUTVNZVOZUWIVQZUTVRVSZVUCVFVURVWCUTVAZVUTVWCUHVUTVWDVFVGVUHVWEUXJ
        VUHVWBUWIUTVUHHUTVWAUSVWBUTVAVUHBHVUTUTVWAVVRVWAWOZWNHUTVWAWPVKVUHUOUTU
        XIVUHWQUMWRZWSWAVURVWBVWCVUTVWBUWIYFVURVUTUWMVUTWEBHYGUFYIZVWBUXJVUTVWH
        UHVUHBUFHVUTVUSUWDGXIYJYKBUFHVUTVWAVWFYLYMYNVWCVUTYOXTVUHVUCVWDWEUXJVUH
        BCDEFGUYTUVNHIJKMLNOVVMVVNVVOVVPAUVOUVQVUAVUGUUJZPQRWDWAYPZVUTVUCYRYQZV
        URVVAUTUHZVUFUOVVAVFVGZVVAVUEVFVGVVAYAUHZVURUXLVVLUXNVWLVVCVVQVVGVUSUWE
        GIWLWMZVUHVUFUXJAVUBVUDVUFUUKZWAZVURUXLVVLUXNVWMVVCVVQVVGVUSUWEGIXNWMVU
        RVVABHVVAVNZVOZUWIVQZUTVRVSZVUEVFVURVWTUTVAZVVAVWTUHVVAVXAVFVGVUHVXBUXJ
        VUHVWSUWIUTVUHHUTVWRUSVWSUTVAVUHBHVVAUTVWRVWOVWRWOZWNHUTVWRWPVKVWGWSWAV
        URVWSVWTVVAVWSUWIYFVURVVAUWMVVAWEBHYGUFYIZVWSUXJVVAVXDUHVUHBUFHVVAVUSUW
        EGXIYJYKBUFHVVAVWRVXCYLYMYNVWTVVAYOXTVUHVUEVXAWEUXJVUHBCDEFGUYTUVPHIJKM
        LNOVVMVVNVVOVVPAUVOUVQVUAVUGUULZPQRWDWAYPZVVAVUEYRYQZUUMZVURUXLUXMUXNUY
        MVVCVVEVVGUYPWMVURUWFVUTVVAUVFURZVVBVFVURUXLVVLUXMUXNUWFVXIVFVGVVCVVQVV
        EVVGUWDUWEVUSGIUUNUUOVURVVKVWNVXIVVBWEVWKVXGVUTVVAUUPXTUURZUWFVVBYRYQVX
        HVUHVUIYAUHZUXJVUGAVXKVUBVUCVUEUUSUUTZWAVXJVURVUTVVAVUCVUEVWKVXGVVTVWQV
        WJVXFUVAUVBWBVUHUXOBHVTVUNVUQXGVUHUXOBHVVHWBVULVUPBUFHUWFUWGUTUYCUWMUWF
        VUIVFXCXKVKYSVUHUOVUIVFVGZVUOVUHVUCVUEVVSVWPVUHVUCUVKUHZUOVUCVFVGZVUHUY
        TUVNUVKCCDAVUBUVLVUGUVMYEZVVPVWIYTVXNVUCUTUHVXOVUCVIVJVKVUHVUEUVKUHZUOV
        UEVFVGZVUHUYTUVPUVKCCDVXPVVPVXEYTVXQVUEUTUHVXRVUEVIVJVKUVCVULVXMUFUOXBU
        WMUOVUIVFXCXDUVGVULUFUWHUWIXHUVDVUHUXHVUIUTUHVUKVUMXGAVUBUXHVUGAUVOUVQU
        XHVUAUYDYCYDVUHVUIVXLUVHUFUWJVUIWTXTYSUVEUVI $.
    $}

    $( The product metric is an extended metric.  Eliminate disjoint variable
       conditions from ~ prdsxmetlem .  (Contributed by Mario Carneiro,
       26-Sep-2015.) $)
    prdsxmet $p |- ( ph -> D e. ( *Met ` B ) ) $=
      ( vy cv csb cds cfv cbs cxp cres cvv cmpt cprds co nfcsb1v csbeq1a cbvmpt
      nfcv oveq2i eqtri eqid wcel wral elex syl ralrimiva nfel1 weq eleq1d rspc
      wa mpan9 cxmt nffv nfxp nfres nfel fveq2d syl5eq sqxpeqd reseq12d eleq12d
      prdsxmetlem ) AUCCDBUCUDZEUEZFWEUFUGZWEUHUGZWGUIZUJZHWGJKLUKLFBHEULZUMUNF
      UCHWEULZUMUNNWJWKFUMBUCHEWEUCEURBWDEUOZBWDEUPZUQUSUTOWGVAWIVARSTAEUKVBZBH
      VCWDHVBZWEUKVBZAWNBHABUDHVBVKEMVBWNUAEMVDVEVFWNWPBWDHBWEUKWLVGBUCVHZEWEUK
      WMVIVJVLAGIVMUGZVBZBHVCWOWIWGVMUGZVBZAWSBHUBVFWSXABWDHBWIWTBWFWHBWEUFBUFU
      RWLVNBWGWGBWEUHBUHURWLVNZXBVOVPBWGVMBVMURXBVNVQWQGWIWRWTWQGEUFUGZIIUIZUJW
      IQWQXCWFXDWHWQEWEUFWMVRWQIWGWQIEUHUGWGPWQEWEUHWMVRVSZVTWAVSWQIWGVMXEVRWBV
      JVLWC $.
  $}

  ${
    $d f g B $.  $d f g D $.  $d x I $.  $d f g x ph $.
    prdsmet.y $e |- Y = ( S Xs_ ( x e. I |-> R ) ) $.
    prdsmet.b $e |- B = ( Base ` Y ) $.
    prdsmet.v $e |- V = ( Base ` R ) $.
    prdsmet.e $e |- E = ( ( dist ` R ) |` ( V X. V ) ) $.
    prdsmet.d $e |- D = ( dist ` Y ) $.
    prdsmet.s $e |- ( ph -> S e. W ) $.
    prdsmet.i $e |- ( ph -> I e. Fin ) $.
    prdsmet.r $e |- ( ( ph /\ x e. I ) -> R e. Z ) $.
    prdsmet.m $e |- ( ( ph /\ x e. I ) -> E e. ( Met ` V ) ) $.
    $( The product metric is a metric when the index set is finite.
       (Contributed by Mario Carneiro, 20-Aug-2015.) $)
    prdsmet $p |- ( ph -> D e. ( Met ` B ) ) $=
      ( vf vg cxmt cfv wcel cxp cr wf cme cfn cv wa metxmet syl prdsxmet wfn co
      wral cc0 cpnf cicc prdsdsf ffn cmpt crn csn cun cxr csup adantr ralrimiva
      clt simprl simprr prdsdsval3 wss prdsbascl r19.26 wi metcl 3expib syl5bir
      ralimdva mp2and eqid fmpt sylib frn 0red snssd unssd wor wne xrltso mptfi
      c0 a1i rnfi 3syl snfi unfi sylancl ssun2 c0ex snss mpbir ne0i mp1i ressxr
      syl6ss fisupcl syl13anc sseldd eqeltrd ralrimivva ffnov sylanbrc ismet2 )
      ADCUDUEUFCCUGZUHDUIZDCUJUEUFABCDEFGHIJUKKLMNOPQRSTABULZHUFUMZGIUJUEUFZGIU
      DUEUFUAGIUNUOZUPADXTUQZUBULZUCULZDURZUHUFZUCCUSUBCUSYAAXTUTVAVBURZDUIYFAB
      CDEFGHIJUKKLMNOPQRSTYEVCXTYKDVDUOAYJUBUCCCAYGCUFZYHCUFZUMZUMZYIBHYBYGUEZY
      BYHUEZGURZVEZVFZUTVGZVHZVIVMVJZUHYOBCDEFGYGYHHIJUKLKMNAFJUFYNRVKZAHUKUFZY
      NSVKZAELUFZBHUSYNAUUGBHTVLVKZAYLYMVNZAYLYMVOZOPQVPYOUUBUHUUCYOYTUUAUHYOHU
      HYSUIZYTUHVQYOYRUHUFZBHUSZUUKYOYPIUFZBHUSZYQIUFZBHUSZUUMYOBCEFYGHIJUKLKMN
      UUDUUFUUHOUUIVRYOBCEFYHHIJUKLKMNUUDUUFUUHOUUJVRUUOUUQUMUUNUUPUMZBHUSZYOUU
      MUUNUUPBHVSAUUSUUMVTYNAUURUULBHYCYDUURUULVTUAYDUUNUUPUULYPYQGIWAWBUOWDVKW
      CWEBHUHYRYSYSWFWGWHHUHYSWIUOYOUTUHYOWJWKWLZYOVIVMWMZUUBUKUFZUUBWQWNZUUBVI
      VQUUCUUBUFUVAYOWOWRYOYTUKUFZUUAUKUFUVBYOUUEYSUKUFUVDUUFBHYRWPYSWSWTUTXAYT
      UUAXBXCUTUUBUFZUVCYOUVEUUAUUBVQUUAYTXDUTUUBXEXFXGUUBUTXHXIYOUUBUHVIUUTXJX
      KVIUUBVMXLXMXNXOXPUBUCCCUHDXQXRDCXSXR $.
  $}

  ${
    $d f g B $.  $d f g D $.  $d f g E $.  $d x I $.  $d f g x ph $.
    ressprdsds.y $e |- ( ph -> Y = ( S Xs_ ( x e. I |-> R ) ) ) $.
    ressprdsds.h $e |- ( ph -> H = ( T Xs_ ( x e. I |-> ( R |`s A ) ) ) ) $.
    ressprdsds.b $e |- B = ( Base ` H ) $.
    ressprdsds.d $e |- D = ( dist ` Y ) $.
    ressprdsds.e $e |- E = ( dist ` H ) $.
    ressprdsds.s $e |- ( ph -> S e. U ) $.
    ressprdsds.t $e |- ( ph -> T e. V ) $.
    ressprdsds.i $e |- ( ph -> I e. W ) $.
    ressprdsds.r $e |- ( ( ph /\ x e. I ) -> R e. X ) $.
    ressprdsds.a $e |- ( ( ph /\ x e. I ) -> A e. Z ) $.
    $( Restriction of a product metric.  (Contributed by Mario Carneiro,
       16-Sep-2015.) $)
    ressprdsds $p |- ( ph -> E = ( D |` ( B X. B ) ) ) $=
      ( vf vg cxp cres wceq cv co wral wcel wa ovres adantl cprds cds cfv cress
      cmpt crn cc0 csn cun cxr clt csup ressds syl oveqd mpteq2dva adantr rneqd
      eqid uneq1d supeq1d cbs ralrimiva wss cixp ressbasss a1i ss2ixp cvv rgenw
      ovex prdsbas3 3sstr4d fveq2d syl5eq sseqtrd simprl sseldd eleqtrd 3eqtr4d
      simprr prdsdsval2 oveqdr eqtr2d ralrimivva wfn mptexg cdm dmmpti prdsdsfn
      wb sqxpeqd fneq12d mpbird dmmptg xpss12 syl2anc fnssres eqfnov2 ) AJEDDUJ
      ZUKZULZUHUMZUIUMZJUNZYBYCXTUNZULZUIDUOUHDUOZAYFUHUIDDAYBDUPZYCDUPZUQZUQZY
      EYBYCEUNZYDYJYEYLULAYBYCDDEURUSYKYBYCGBLFVDZUTUNZVAVBZUNZYBYCHBLFCVCUNZVD
      ZUTUNZVAVBZUNZYLYDYKBLBUMZYBVBZUUBYCVBZFVAVBZUNZVDZVEZVFVGZVHZVIVJVKBLUUC
      UUDYQVAVBZUNZVDZVEZUUIVHZVIVJVKYPUUAYKVIUUJUUOVJYKUUHUUNUUIYKUUGUUMAUUGUU
      MULYJABLUUFUULAUUBLUPUQZUUEUUKUUCUUDUUPCQUPUUEUUKULUGCUUEFYQQYQVRZUUEVRZV
      LVMVNVOVPVQVSVTYKBYNWAVBZYOFGUUEYBYCLINOYNYNVRZUUSVRZAGIUPYJUCVPALNUPZYJU
      EVPZAFOUPZBLUOZYJAUVDBLUFWBZVPYKDUUSYBYKDPWAVBZUUSADUVGWCZYJAYSWAVBZUUSDU
      VGABLYQWAVBZWDZBLFWAVBZWDZUVIUUSAUVJUVLWCZBLUOUVKUVMWCAUVNBLUVNUUPCUVLYQF
      UUQUVLVRZWEWFWBBLUVJUVLWGVMABUVIYQHLUVJMNWHYSYSVRZUVIVRZUDUEYQWHUPZBLUOZA
      UVRBLFCVCWJZWIZWFUVJVRWKABUUSFGLUVLINOYNUUTUVAUCUEUVFUVOWKWLADKWAVBUVITAK
      YSWASWMWNZAPYNWARWMZWLZVPAUVGUUSULYJUWCVPWOZAYHYIWPZWQYKDUUSYCUWEAYHYIWTZ
      WQUURYOVRZXAYKBUVIYTYQHUUKYBYCLMNWHYSUVPUVQAHMUPYJUDVPUVCUVSYKUWAWFYKYBDU
      VIUWFADUVIULYJUWBVPZWRYKYCDUVIUWGUWIWRUUKVRYTVRZXAWSAYJUHUIEYOAEPVAVBYOUA
      APYNVARWMWNZXBAYJUHUIJYTAJKVAVBYTUBAKYSVASWMWNZXBWSXCXDAJXSXEZXTXSXEZYAYG
      XJAUWMYTUVIUVIUJZXEAUVIYTYSYRHLMWHUVPUDAUVBYRWHUPUEBLYQNXFVMUVQYRXGLULABL
      YQYRUVTYRVRXHWFUWJXIAXSUWOJYTUWLADUVIUWBXKXLXMAEUVGUVGUJZXEZXSUWPWCZUWNAU
      WQYOUUSUUSUJZXEAUUSYOYNYMGLIWHUUTUCAUVBYMWHUPUEBLFNXFVMUVAAUVEYMXGLULUVFB
      LFOXNVMUWHXIAUWPUWSEYOUWKAUVGUUSUWCXKXLXMAUVHUVHUWRUWDUWDDUVGDUVGXOXPUWPX
      SEXQXPUHUIDDJXTXRXPXM $.
  $}

  ${
    $d x A $.  $d x B $.  $d x I $.  $d x ph $.  $d x R $.
    resspwsds.y $e |- ( ph -> Y = ( R ^s I ) ) $.
    resspwsds.h $e |- ( ph -> H = ( ( R |`s A ) ^s I ) ) $.
    resspwsds.b $e |- B = ( Base ` H ) $.
    resspwsds.d $e |- D = ( dist ` Y ) $.
    resspwsds.e $e |- E = ( dist ` H ) $.
    resspwsds.i $e |- ( ph -> I e. V ) $.
    resspwsds.r $e |- ( ph -> R e. W ) $.
    resspwsds.a $e |- ( ph -> A e. X ) $.
    $( Restriction of a product metric.  (Contributed by Mario Carneiro,
       16-Sep-2015.) $)
    resspwsds $p |- ( ph -> E = ( D |` ( B X. B ) ) ) $=
      ( vx csca cfv cress co cvv cpws cmpt cprds csn cxp wcel wceq eqid syl2anc
      pwsval fconstmpt oveq2i syl6eq eqtrd ovex sylancr fvexd adantr ressprdsds
      cv ) AUABCDEEUBUCZEBUDUEZUBUCZUFFGHUFIJLKALEHUGUEZVGUAHEUHZUIUEZMAVJVGHEU
      JUKZUIUEZVLAEJULZHIULZVJVNUMSREVGHJIVJVJUNVGUNUPUOVMVKVGUIUAHEUQURUSUTAGV
      HHUGUEZVIUAHVHUHZUIUEZNAVQVIHVHUJUKZUIUEZVSAVHUFULVPVQWAUMEBUDVARVHVIHUFI
      VQVQUNVIUNUPVBVTVRVIUIUAHVHUQURUSUTOPQAEUBVCAVHUBVCRAVOUAVFHULZSVDABKULWB
      TVDVE $.
  $}

  ${
    $d g h i n F $.  $d f g h i j m n p x ph $.  $d p T $.  $d f g h i j n V $.
    $d f g i j m n p x E $.  $d g h i n R $.  $d g j m x S $.  $d j m x W $.
    $d g h i j m n p x X $.  $d g h i j n p Y $.
    imasdsf1o.u $e |- ( ph -> U = ( F "s R ) ) $.
    imasdsf1o.v $e |- ( ph -> V = ( Base ` R ) ) $.
    imasdsf1o.f $e |- ( ph -> F : V -1-1-onto-> B ) $.
    imasdsf1o.r $e |- ( ph -> R e. Z ) $.
    imasdsf1o.e $e |- E = ( ( dist ` R ) |` ( V X. V ) ) $.
    imasdsf1o.d $e |- D = ( dist ` U ) $.
    imasdsf1o.m $e |- ( ph -> E e. ( *Met ` V ) ) $.
    imasdsf1o.x $e |- ( ph -> X e. V ) $.
    imasdsf1o.y $e |- ( ph -> Y e. V ) $.
    ${
      imasdsf1o.w $e |- W = ( RR*s |`s ( RR* \ { -oo } ) ) $.
      imasdsf1o.s $e |- S = { h e. ( ( V X. V ) ^m ( 1 ... n ) ) |
      ( ( F ` ( 1st ` ( h ` 1 ) ) ) = ( F ` X ) /\
        ( F ` ( 2nd ` ( h ` n ) ) ) = ( F ` Y ) /\ A. i e. ( 1 ... ( n - 1 ) )
        ( F ` ( 2nd ` ( h ` i ) ) ) = ( F ` ( 1st ` ( h ` ( i + 1 ) ) ) ) ) }
          $.
      imasdsf1o.t $e |- T = U_ n e. NN
        ran ( g e. S |-> ( RR*s gsum ( E o. g ) ) ) $.
      $( Lemma for ~ imasdsf1o .  (Contributed by Mario Carneiro, 21-Aug-2015.)
         (Proof shortened by AV, 6-Oct-2020.) $)
      imasdsf1olem $p |- ( ph -> ( ( F ` X ) D ( F ` Y ) ) = ( X E Y ) ) $=
        ( vx vf vj vp vm cfv co cxr clt cinf cn cxrs cv ccom cgsu cmpt wf1o syl
        eqid wf f1of ffvelrnd syl6eqr wss wcel wral wa cmnf csn c1 cfz cxad cvv
        cfn cc0 xrsbas xrsadd a1i cxp w3a wne cle wbr syl2anc sylanbrc ad2antrr
        xmetcl eldifsn cmap c1st wceq c2nd caddc cmin mp1i adantl ax-mp syl3anc
        wrex 1nn cop wb mpbird fveq2d df-ov syl6eq oveq2d fveq1 eqeq1d syl12anc
        1ex oveq2 c0 fveq2 syl5bb cres xp2nd f1fveq mpbid eleq1 reseq2d breq12d
        wi imbi12d imbi2d cuz resmptd eqtrd breqtrrd adantr crn ciun imasdsval2
        cds wfo f1ofo infeq1i cdif xrsex fzfid difss wfn cxmt xmetf ffn xmetge0
        3syl ge0nemnf 3expb sylan ralrimivva ffnov ssrab2 eqsstri sselda elmapi
        crab fco cr 0re renemnf xaddid2 xaddid1 jca gsumress cbs ressbas2 xrs10
        rexr ccmn xrs1cmn fdmfifsupp gsumcl eqeltrd eldifad fmptd frn ralrimiva
        c0ex iunss sylibr syl5eqss infxrcl opex f1osn opelxpi snssd fss sylancr
        elfvexd snex elmapg sylancl op1stg op2ndg snfi fconst6g fcoconst coeq2i
        xpexg xpsn eqcomi sneqi xpeq2i feq1d fconstmpt cmnd cmnmnd eqidd gsumsn
        3eqtr3g 3eqtrrd fvsn anbi12d coeq2 eqeq2d rspcev elrnmpt rexeqi eqeq12d
        ovex ralbidv 3anbi123d rexrab bitri cz 1z fzsn ral0 oveq1 1m1e0 raleqdv
        df-3an mpbiri biantrud anbi2d bitr3d anbi1d rexeqbidv syl6eleqr infxrlb
        fz10 eliun eleq2i vex elrab2 simprbi simp2d f1of1 simplr elfz1end sylib
        nnuz syl6eleq eluzfz1 xrleid fcompt reseq1d 1st2nd2 simp1d xp1st opeq1d
        wf1 eqtr2d syl5eq 3eqtr4d a1d simprl simprr peano2fzr expr imim1d fzsuc
        cun elfzuz3 ad2antll fzss2 eqsstr3d unssad fssresd xleadd1a ex syl13anc
        xmettri nnz ad2antrl eluzp1m1 elfzuzb simp3d sylc eqtr4d xaddcld xrletr
        rspcv mpand syld cplusg xrex ssexi ressplusg fzelp1 sylan2 cin fzp1disj
        wn disjsn gsumunsn reseq12d oveq1d breq2d sylibrd expcom nnind eqbrtrrd
        a2d mpd fnresdm syl5ibrcom rexlimdva syl5bi ralrimiv infxrgelb xrletrid
        mpcom breq2 ) APMUPZQMUPZCUQZFURUSUTZPQLUQZAVYRKVAHEVBLHVCZVDZVEUQZVFZU
[encoded data, 8800 characters]
        WYJXXNXXQXLWYGWYKUNFVYTVYLWNXMVYMYR $.
    $}

    $( The distance function is transferred across an image structure under a
       bijection.  (Contributed by Mario Carneiro, 20-Aug-2015.) $)
    imasdsf1o $p |- ( ph -> ( ( F ` X ) D ( F ` Y ) ) = ( X E Y ) ) $=
      ( vh vn vi vg c1 cfv c1st wceq c2nd caddc cmin cfz wral w3a cxp cmap crab
      cv co cn cxrs ccom cgsu cmpt crn ciun cxr cmnf csn cdif eqid imasdsf1olem
      cress ) ABCDUEUAURZUFUGUFGUFIGUFUHUBURZVNUFUIUFGUFJGUFUHUCURZVNUFUIUFGUFV
      PUEUJUSVNUFUGUFGUFUHUCUEVOUEUKUSULUSUMUNUAHHUOUEVOULUSUPUSUQZUBUTUDVQVAFU
      DURVBVCUSVDVEVFZEUDUAUCUBFGHVAVGVHVIVJVMUSZIJKLMNOPQRSTVSVKVQVKVRVKVL $.
  $}

  ${
    $d a b x y z B $.  $d a b c x y z D $.  $d a b c x y z F $.  $d a b c ph $.
    $d a b c x y z V $.
    imasf1oxmet.u $e |- ( ph -> U = ( F "s R ) ) $.
    imasf1oxmet.v $e |- ( ph -> V = ( Base ` R ) ) $.
    imasf1oxmet.f $e |- ( ph -> F : V -1-1-onto-> B ) $.
    imasf1oxmet.r $e |- ( ph -> R e. Z ) $.
    imasf1oxmet.e $e |- E = ( ( dist ` R ) |` ( V X. V ) ) $.
    imasf1oxmet.d $e |- D = ( dist ` U ) $.
    ${
      imasf1oxmet.m $e |- ( ph -> E e. ( *Met ` V ) ) $.
      $( The image of an extended metric is an extended metric.  (Contributed
         by Mario Carneiro, 20-Aug-2015.) $)
      imasf1oxmet $p |- ( ph -> D e. ( *Met ` B ) ) $=
        ( vy co wceq wral vx vz va vb vc cxmt cfv wcel cxp cxr wf cv cc0 wb cle
        cxad wbr wa wfn cds wf1o wfo f1ofo syl imasdsfn cimas adantr cbs simprl
        eqid simprr imasdsf1o xmetcl 3expb sylan eqeltrd ralrimivva f1ofn oveq2
        crn eleq1d ralrn forn raleqdv bitr3d ralbidv mpbid oveq1 ffnov sylanbrc
        xmeteq0 syl3anc eqeq1d wf1 f1of1 f1fveq 3bitr4d simpr xmettri2 syl13anc
        oveq12d 3brtr4d ralrimiva breq2d jca eqeq2 bibi12d oveq2d breq12d eqeq1
        anbi12d oveq1d cvv elfvexd fornex sylc isxmet mpbir2and ) ACBUFUGUHZBBU
        IZUJCUKZUAULZQULZCRZUMSZYBYCSZUNZYDUBULZYBCRZYHYCCRZUPRZUOUQZUBBTZURZQB
        TZUABTZACXTUSYDUJUHZQBTZUABTZYAABCDEDUTUGZGHIJKAHBGVAZHBGVBZLHBGVCVDZMY
        TVJOVEAUCULZGUGZYCCRZUJUHZQBTZUCHTZYSAUUEUDULZGUGZCRZUJUHZUDHTZUCHTUUIA
        UUMUCUDHHAUUDHUHZUUJHUHZURZURZUULUUDUUJFRZUJUURBCDEFGHUUDUUJIAEGDVFRSZU
        UQJVGZAHDVHUGSZUUQKVGZAUUAUUQLVGZADIUHZUUQMVGZNOAFHUFUGUHZUUQPVGZAUUOUU
        PVIZAUUOUUPVKZVLZAUVGUUQUUSUJUHZPUVGUUOUUPUVLUUDUUJFHVMVNVOVPVQAUUNUUHU
        CHAUUGQGVTZTZUUNUUHAGHUSZUVNUUNUNAUUAUVOLHBGVRVDZUUGUUMQUDHGYCUUKSZUUFU
        ULUJYCUUKUUECVSZWAWBVDAUUGQUVMBAUUBUVMBSUUCHBGWCVDZWDWEWFWGAYRUAUVMTZUU
        IYSAUVOUVTUUIUNUVPYRUUHUAUCHGYBUUESZYQUUGQBUWAYDUUFUJYBUUEYCCWHZWAWFWBV
        DAYRUAUVMBUVSWDWEWGUAQBBUJCWIWJAUUFUMSZUUEYCSZUNZUUFYHUUECRZYJUPRZUOUQZ
        UBBTZURZQBTZUCHTZYPAUULUMSZUUEUUKSZUNZUULUWFYHUUKCRZUPRZUOUQZUBBTZURZUD
        HTZUCHTUWLAUWTUCUDHHUURUWOUWSUURUUSUMSZUUDUUJSZUWMUWNUURUVGUUOUUPUXBUXC
        UNUVHUVIUVJUUDUUJFHWKWLUURUULUUSUMUVKWMAHBGWNZUUQUWNUXCUNAUUAUXDLHBGWOV
        DHBUUDUUJGWPVOWQUURUULUEULZGUGZUUECRZUXFUUKCRZUPRZUOUQZUEHTZUWSUURUXJUE
        HUURUXEHUHZURZUUSUXEUUDFRZUXEUUJFRZUPRZUULUXIUOUXMUVGUXLUUOUUPUUSUXPUOU
        QUURUVGUXLUVHVGZUURUXLWRZUURUUOUXLUVIVGZUURUUPUXLUVJVGZUUDUUJUXEFHWSWTU
        URUULUUSSUXLUVKVGUXMUXGUXNUXHUXOUPUXMBCDEFGHUXEUUDIUURUUTUXLUVAVGZUURUV
        BUXLUVCVGZUURUUAUXLUVDVGZUURUVEUXLUVFVGZNOUXQUXRUXSVLUXMBCDEFGHUXEUUJIU
        YAUYBUYCUYDNOUXQUXRUXTVLXAXBXCAUXKUWSUNUUQAUWRUBUVMTZUXKUWSAUVOUYEUXKUN
        UVPUWRUXJUBUEHGYHUXFSZUWQUXIUULUOUYFUWFUXGUWPUXHUPYHUXFUUECWHYHUXFUUKCW
        HXAXDWBVDAUWRUBUVMBUVSWDWEVGWGXEVQAUXAUWKUCHAUWJQUVMTZUXAUWKAUVOUYGUXAU
        NUVPUWJUWTQUDHGUVQUWEUWOUWIUWSUVQUWCUWMUWDUWNUVQUUFUULUMUVRWMYCUUKUUEXF
        XGUVQUWHUWRUBBUVQUUFUULUWGUWQUOUVRUVQYJUWPUWFUPYCUUKYHCVSXHXIWFXKWBVDAU
        WJQUVMBUVSWDWEWFWGAYOUAUVMTZUWLYPAUVOUYHUWLUNUVPYOUWKUAUCHGUWAYNUWJQBUW
        AYGUWEYMUWIUWAYEUWCYFUWDUWAYDUUFUMUWBWMYBUUEYCXJXGUWAYLUWHUBBUWAYDUUFYK
        UWGUOUWBUWAYIUWFYJUPYBUUEYHCVSXLXIWFXKWFWBVDAYOUAUVMBUVSWDWEWGABXMUHZXS
        YAYPURUNAHXMUHUUBUYIAFUFHPXNUUCHBXMGXOXPUAQUBXMCBXQVDXR $.
    $}

    imasf1omet.m $e |- ( ph -> E e. ( Met ` V ) ) $.
    $( The image of a metric is a metric.  (Contributed by Mario Carneiro,
       21-Aug-2015.) $)
    imasf1omet $p |- ( ph -> D e. ( Met ` B ) ) $=
      ( vy cfv wcel cr vx va vb cxmt cxp wf cme metxmet syl imasf1oxmet cv wral
      wfn co cds wf1o wfo f1ofo eqid imasdsfn wa cimas adantr cbs simprl simprr
      wceq imasdsf1o metcl 3expb sylan eqeltrd ralrimivva wb f1ofn oveq2 eleq1d
      crn ralrn forn raleqdv bitr3d ralbidv mpbid oveq1 ffnov sylanbrc ismet2 )
      ACBUDRSBBUEZTCUFZCBUGRSABCDEFGHIJKLMNOAFHUGRSZFHUDRSZPFHUHUIZUJACWIUMUAUK
      ZQUKZCUNZTSZQBULZUABULZWJABCDEDUORZGHIJKAHBGUPZHBGUQZLHBGURUIZMWTUSOUTAUB
      UKZGRZWOCUNZTSZQBULZUBHULZWSAXEUCUKZGRZCUNZTSZUCHULZUBHULXIAXMUBUCHHAXDHS
      ZXJHSZVAZVAZXLXDXJFUNZTXRBCDEFGHXDXJIAEGDVBUNVGXQJVCAHDVDRVGXQKVCAXAXQLVC
      ADISXQMVCNOAWLXQWMVCAXOXPVEAXOXPVFVHAWKXQXSTSZPWKXOXPXTXDXJFHVIVJVKVLVMAX
      NXHUBHAXGQGVRZULZXNXHAGHUMZYBXNVNAXAYCLHBGVOUIZXGXMQUCHGWOXKVGXFXLTWOXKXE
      CVPVQVSUIAXGQYABAXBYABVGXCHBGVTUIZWAWBWCWDAWRUAYAULZXIWSAYCYFXIVNYDWRXHUA
      UBHGWNXEVGZWQXGQBYGWPXFTWNXEWOCWEVQWCVSUIAWRUAYABYEWAWBWDUAQBBTCWFWGCBWHW
      G $.
  $}

  ${
    $d k x y A $.  $d x M $.  $d x N $.  $d k x ph $.  $d k x R $.  $d k x S $.
    $d k x y B $.  $d k x y C $.  $d k x y D $.  $d x y X $.  $d x y Y $.
    $d x W $.
    xpsds.t $e |- T = ( R Xs. S ) $.
    xpsds.x $e |- X = ( Base ` R ) $.
    xpsds.y $e |- Y = ( Base ` S ) $.
    xpsds.1 $e |- ( ph -> R e. V ) $.
    xpsds.2 $e |- ( ph -> S e. W ) $.
    xpsds.p $e |- P = ( dist ` T ) $.
    $( Closure of the metric in a binary structure product.  (Contributed by
       Mario Carneiro, 20-Aug-2015.) $)
    xpsdsfn $p |- ( ph -> P Fn ( ( X X. Y ) X. ( X X. Y ) ) ) $=
      ( vx vy csn co eqid cxp csca cfv ccda ccnv cprds cds cmpt2 crn cvv xpsval
      cv xpslem wf1o wfo xpsff1o2 a1i f1ocnv f1ofo 3syl ovexd imasdsfn ) AHIUAZ
      BCUBUCZCRDRUDSUEZUFSZEVFUGUCZPQHIPULRQULRUDSUEUHZUEZVHUIZUJAPQCDEVFVHVDFG
      HIJKLMNVHTZVDTZVFTZUKAPQCDEVFVHVDFGHIJKLMNVKVLVMUMAVCVJVHUNZVJVCVIUNVJVCV
      IUOVNAPQHIVHVKUPUQVCVJVHURVJVCVIUSUTAVDVEUFVAVGTOVB $.

    $( Closure of the metric in a binary structure product.  (Contributed by
       Mario Carneiro, 20-Aug-2015.) $)
    xpsdsfn2 $p |- ( ph -> P Fn ( ( Base ` T ) X. ( Base ` T ) ) ) $=
      ( cxp wfn cbs cfv xpsdsfn xpsbas sqxpeqd fneq2d mpbid ) ABHIPZUEPZQBERSZU
      GPZQABCDEFGHIJKLMNOTAUFUHBAUEUGACDEFGHIJKLMNUAUBUCUD $.

    xpsds.m $e |- M = ( ( dist ` R ) |` ( X X. X ) ) $.
    xpsds.n $e |- N = ( ( dist ` S ) |` ( Y X. Y ) ) $.
    ${
      xpsds.3 $e |- ( ph -> M e. ( *Met ` X ) ) $.
      xpsds.4 $e |- ( ph -> N e. ( *Met ` Y ) ) $.
      $( Lemma for ~ xpsxmet .  (Contributed by Mario Carneiro,
         21-Aug-2015.) $)
      xpsxmetlem $p |- ( ph ->
        ( dist ` ( ( Scalar ` R ) Xs_ `' ( { R } +c { S } ) ) ) e.
        ( *Met ` ran ( x e. X , y e. Y |-> `' ( { x } +c { y } ) ) ) ) $=
        ( vk csca cfv c2o cv csn ccda co ccnv cmpt cprds cds cbs cxmt cmpt2 crn
        cxp cres cvv con0 eqid fvexd wcel 2on a1i wa c0 wceq c1o wo elpri df2o3
        cpr eleq2s adantr fveq2 xpsc0 sylan9eqr fveq2d syl6eqr sqxpeqd reseq12d
        syl 3eltr4d xpsc1 jaodan sylan2 prdsxmet wfn xpscfn syl2anc dffn5 sylib
        oveq2d xpslem eqtrd ) AEUEUFZUDUGUDUHZEUIFUIUJUKULZUFZUMZUNUKZUOUFZXEUP
        UFZUQUFWTXBUNUKZUOUFBCLMBUHUICUHUIUJUKULURZUSZUQUFAUDXGXFXCWTXCUOUFZXCU
        PUFZXLUTZVAZUGXLVBVCXEVBXEVDXGVDXLVDXNVDXFVDAEUEVEUGVCVFAVGVHAXAUGVFZVI
        XAXBVEXOAXAVJVKZXAVLVKZVMZXNXLUQUFZVFZXRXAVJVLVPUGXAVJVLVNVOVQAXPXTXQAX
        PVIZHLUQUFZXNXSAHYBVFXPUBVRYAXNEUOUFZLLUTZVAHYAXKYCXMYDYAXCEUOXPAXCVJXB
        UFZEXAVJXBVSAEJVFZYEEVKQEFJVTWFWAZWBYAXLLYAXLEUPUFLYAXCEUPYGWBOWCZWDWET
        WCYAXLLUQYHWBWGAXQVIZIMUQUFZXNXSAIYJVFXQUCVRYIXNFUOUFZMMUTZVAIYIXKYKXMY
        LYIXCFUOXQAXCVLXBUFZFXAVLXBVSAFKVFZYMFVKREFKWHWFWAZWBYIXLMYIXLFUPUFMYIX
        CFUPYOWBPWCZWDWEUAWCYIXLMUQYPWBWGWIWJWKAXHXEUOAXBXDWTUNAXBUGWLZXBXDVKAY
        FYNYQQREFJKWMWNUDUGXBWOWPWQZWBAXJXGUQAXJXHUPUFXGABCEFGXHXIWTJKLMNOPQRXI
        VDWTVDXHVDWRAXHXEUPYRWBWSWBWG $.

      $( A product metric of extended metrics is an extended metric.
         (Contributed by Mario Carneiro, 21-Aug-2015.) $)
      xpsxmet $p |- ( ph -> P e. ( *Met ` ( X X. Y ) ) ) $=
        ( vx vy cxp csca cfv csn ccda co ccnv cprds cds cmpt2 crn cres cvv eqid
        xpsval xpslem wf1o xpsff1o2 f1ocnv mp1i ovexd cxmt wcel xpsxmetlem ssid
        cv wss xmetres2 sylancl imasf1oxmet ) AJKUDZBCUEUFZCUGDUGUHUIUJZUKUIZEV
        QULUFZUBUCJKUBVIUGUCVIUGUHUIUJUMZUNZVTUDUOZVSUJZVTUPAUBUCCDEVQVSVOHIJKL
        MNOPVSUQZVOUQZVQUQZURAUBUCCDEVQVSVOHIJKLMNOPWCWDWEUSVNVTVSUTVTVNWBUTAUB
        UCJKVSWCVAVNVTVSVBVCAVOVPUKVDWAUQQAVRVTVEUFZVFVTVTVJWAWFVFAUBUCBCDEFGHI
        JKLMNOPQRSTUAVGVTVHVRVTVTVKVLVM $.

      xpsds.a $e |- ( ph -> A e. X ) $.
      xpsds.b $e |- ( ph -> B e. Y ) $.
      xpsds.c $e |- ( ph -> C e. X ) $.
      xpsds.d $e |- ( ph -> D e. Y ) $.
      $( Value of the metric in a binary structure product.  (Contributed by
         Mario Carneiro, 20-Aug-2015.) $)
      xpsdsval $p |- ( ph -> ( <. A , B >. P <. C , D >. ) =
        sup ( { ( A M C ) , ( B N D ) } , RR* , < ) ) $=
        ( vx vy vk csn ccda co ccnv cv cmpt2 cfv csca cprds cds cop cpr cxr clt
        csup crn cxp cres cvv eqid xpsval xpslem wf1o xpsff1o2 f1ocnv mp1i cxmt
        ovexd wcel wss xpsxmetlem ssid xmetres2 sylancl xpsfval syl2anc syl5eqr
        df-ov wceq opelxpi wf f1of ax-mp ffvelrni syl eqeltrrd imasdsf1o ovresd
        eqtrd wi f1ocnvfv sylancr mpd oveq12d c2o cmpt cc0 cun cbs con0 2on a1i
        fvexd wfn xpscfn eleqtrd prdsdsval wrex wo c0 df2o3 rexeqi fveq2 fveq2d
        c1o 0ex oveq123d eqeq2d xpsc0 oveqi syl5eq eqtr4d xpsc1 cle wbr syl3anc
        0xr xmetcl 1on elexi rexpr bitri orbi12d syl5bb wb elrnmpt elpr 3bitr4g
        vex eqrdv uneq1d uncom syl6eq supeq1d snssd prssi supsn supxrcl xmetge0
        xrltso mp2an ovex prid1 supxrub xrletrd syl5eqbr supxrun 3eqtrd 3eqtr3d
        wor ) ABUMCUMUNUOUPZUJUKNOUJUQZUMUKUQUMUNUOUPURZUPZUSZDUMEUMUNUOUPZUVPU
        SZFUOZUVMUVRGUTUSZGUMHUMUNUOUPZVAUOZVBUSZUOZBCVCZDEVCZFUOBDJUOZCEKUOZVD
        ZVEVFVGZAUVTUVMUVRUWDUVOVHZUWLVIVJZUOUWEANOVIZFUWCIUWMUVPUWLUVMUVRVKAUJ
        UKGHIUWCUVOUWALMNOPQRSTUVOVLZUWAVLZUWCVLZVMAUJUKGHIUWCUVOUWALMNOPQRSTUW
        OUWPUWQVNZUWNUWLUVOVOZUWLUWNUVPVOAUJUKNOUVOUWOVPZUWNUWLUVOVQVRAUWAUWBVA
        VTUWMVLUAAUWDUWLVSUSZWAUWLUWLWBUWMUXAWAAUJUKFGHIJKLMNOPQRSTUAUBUCUDUEWC
        UWLWDUWDUWLUWLWEWFAUWFUVOUSZUVMUWLAUXBBCUVOUOZUVMBCUVOWJABNWAZCOWAZUXCU
        VMWKUFUGUJUKNOUVOBCUWOWGWHWIZAUWFUWNWAZUXBUWLWAAUXDUXEUXGUFUGBCNOWLWHZU
        WNUWLUWFUVOUWSUWNUWLUVOWMUWTUWNUWLUVOWNWOZWPWQWRZAUWGUVOUSZUVRUWLAUXKDE
        UVOUOZUVRDEUVOWJADNWAZEOWAZUXLUVRWKUHUIUJUKNOUVODEUWOWGWHWIZAUWGUWNWAZU
        XKUWLWAAUXMUXNUXPUHUIDENOWLWHZUWNUWLUWGUVOUXIWPWQWRZWSAUVMUVRUWDUWLUXJU
        XRWTXAAUVQUWFUVSUWGFAUXBUVMWKZUVQUWFWKZUXFAUWSUXGUXSUXTXBUWTUXHUWNUWLUW
        FUVMUVOXCXDXEAUXKUVRWKZUVSUWGWKZUXOAUWSUXPUYAUYBXBUWTUXQUWNUWLUWGUVRUVO
        XCXDXEXFAUWEULXGULUQZUVMUSZUYCUVRUSZUYCUWBUSZVBUSZUOZXHZVHZXIUMZXJZVEVF
        VGUYKUWJXJZVEVFVGZUWKAULUWCXKUSZUWDUWBUWAUVMUVRXGVKXLUWCUWQUYOVLAGUTXOX
        GXLWAAXMXNAGLWAZHMWAZUWBXGXPSTGHLMXQWHAUVMUWLUYOUXJUWRXRAUVRUWLUYOUXRUW
        RXRUWDVLXSAVEUYLUYMVFAUYLUWJUYKXJUYMAUYJUWJUYKAUJUYJUWJAUVNUYHWKZULXGXT
        ZUVNUWHWKZUVNUWIWKZYAZUVNUYJWAZUVNUWJWAUYSUVNYBUVMUSZYBUVRUSZYBUWBUSZVB
        USZUOZWKZUVNYGUVMUSZYGUVRUSZYGUWBUSZVBUSZUOZWKZYAZAVUBUYSUYRULYBYGVDZXT
        VUPUYRULXGVUQYCYDUYRVUIVUOULYBYGYHYGXLUUAUUBUYCYBWKZUYHVUHUVNVURUYDVUDU
        YEVUEUYGVUGVURUYFVUFVBUYCYBUWBYEYFUYCYBUVMYEUYCYBUVRYEYIYJUYCYGWKZUYHVU
        NUVNVUSUYDVUJUYEVUKUYGVUMVUSUYFVULVBUYCYGUWBYEYFUYCYGUVMYEUYCYGUVRYEYIY
        JUUCUUDAVUIUYTVUOVUAAVUHUWHUVNAVUHBDGVBUSZUOZUWHAVUDBVUEDVUGVUTAVUFGVBA
        UYPVUFGWKSGHLYKWQYFAUXDVUDBWKUFBCNYKWQAUXMVUEDWKUHDENYKWQYIAUWHBDVUTNNV
        IVJZUOVVAJVVBBDUBYLABDVUTNUFUHWTYMYNYJAVUNUWIUVNAVUNCEHVBUSZUOZUWIAVUJC
        VUKEVUMVVCAVULHVBAUYQVULHWKTGHMYOWQYFAUXEVUJCWKUGBCOYOWQAUXNVUKEWKUIDEO
        YOWQYIAUWICEVVCOOVIVJZUOVVDKVVECEUCYLACEVVCOUGUIWTYMYNYJUUEUUFUVNVKWAVU
        CUYSUUGUJUUKZULXGUYHUVNUYIVKUYIVLUUHWOUVNUWHUWIVVFUUIUUJUULUUMUWJUYKUUN
        UUOUUPAUYKVEWBUWJVEWBZUYKVEVFVGZUWKYPYQUYNUWKWKAXIVEXIVEWAZAYSXNZUUQAUW
        HVEWAZUWIVEWAZVVGAJNVSUSWAZUXDUXMVVKUDUFUHBDJNYTYRZAKOVSUSWAUXEUXNVVLUE
        UGUICEKOYTYRUWHUWIVEUURWHZAVVHXIUWKYPVEVFUVLVVIVVHXIWKUVBYSVEXIVFUUSUVC
        AXIUWHUWKVVJVVNAVVGUWKVEWAVVOUWJUUTWQAVVMUXDUXMXIUWHYPYQUDUFUHBDJNUVAYR
        AVVGUWHUWJWAUWHUWKYPYQVVOUWHUWIBDJUVDUVEUWJUWHUVFWFUVGUVHUYKUWJUVIYRUVJ
        UVK $.
    $}

    ${
      xpsmet.3 $e |- ( ph -> M e. ( Met ` X ) ) $.
      xpsmet.4 $e |- ( ph -> N e. ( Met ` Y ) ) $.
      $( The direct product of two metric spaces.  Definition 14-1.5 of
         [Gleason] p. 225.  (Contributed by NM, 20-Jun-2007.)  (Revised by
         Mario Carneiro, 20-Aug-2015.) $)
      xpsmet $p |- ( ph -> P e. ( Met ` ( X X. Y ) ) ) $=
        ( vx vy vk cxp csca cfv csn ccda co ccnv cprds cds cv crn cres cvv eqid
        cmpt2 xpsval xpslem wf1o xpsff1o2 f1ocnv mp1i cme wcel wss c2o cmpt cbs
        ovexd fvexd com cfn 2onn nnfi wa c0 wceq c1o wo cpr elpri eleq2s adantr
        df2o3 fveq2 xpsc0 syl sylan9eqr fveq2d syl6eqr sqxpeqd reseq12d 3eltr4d
        xpsc1 jaodan sylan2 prdsmet wfn xpscfn syl2anc dffn5 sylib oveq2d eqtrd
        ssid metres2 sylancl imasf1omet ) AJKUEZBCUFUGZCUHDUHUIUJUKZULUJZEXOUMU
        GZUBUCJKUBUNUHUCUNUHUIUJUKUSZUOZXRUEUPZXQUKZXRUQAUBUCCDEXOXQXMHIJKLMNOP
        XQURZXMURZXOURZUTAUBUCCDEXOXQXMHIJKLMNOPYAYBYCVAZXLXRXQVBXRXLXTVBAUBUCJ
        KXQYAVCXLXRXQVDVEAXMXNULVLXSURQAXPXRVFUGZVGXRXRVHXSYEVGAXMUDVIUDUNZXNUG
        ZVJZULUJZUMUGZYIVKUGZVFUGXPYEAUDYKYJYGXMYGUMUGZYGVKUGZYMUEZUPZVIYMUQYIU
        QYIURYKURYMURYOURYJURACUFVMVIVNVGVIVOVGAVPVIVQVEAYFVIVGZVRYFXNVMYPAYFVS
        VTZYFWAVTZWBZYOYMVFUGZVGZYSYFVSWAWCVIYFVSWAWDWGWEAYQUUAYRAYQVRZFJVFUGZY
        OYTAFUUCVGYQTWFUUBYOCUMUGZJJUEZUPFUUBYLUUDYNUUEUUBYGCUMYQAYGVSXNUGZCYFV
        SXNWHACHVGZUUFCVTOCDHWIWJWKZWLUUBYMJUUBYMCVKUGJUUBYGCVKUUHWLMWMZWNWORWM
        UUBYMJVFUUIWLWPAYRVRZGKVFUGZYOYTAGUUKVGYRUAWFUUJYODUMUGZKKUEZUPGUUJYLUU
        LYNUUMUUJYGDUMYRAYGWAXNUGZDYFWAXNWHADIVGZUUNDVTPCDIWQWJWKZWLUUJYMKUUJYM
        DVKUGKUUJYGDVKUUPWLNWMZWNWOSWMUUJYMKVFUUQWLWPWRWSWTAXOYIUMAXNYHXMULAXNV
        IXAZXNYHVTAUUGUUOUUROPCDHIXBXCUDVIXNXDXEXFZWLAXRYKVFAXRXOVKUGYKYDAXOYIV
        KUUSWLXGWLWPXRXHXPXRXRXIXJXK $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Metric space balls
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d d r x y D $.  $d d r x y X $.
    $( The value of the ball function.  (Contributed by NM, 30-Aug-2006.)
       (Revised by Mario Carneiro, 11-Nov-2013.)  (Revised by Thierry Arnoux,
       11-Feb-2018.) $)
    blfvalps $p |- ( D e. ( PsMet ` X ) -> ( ball ` D ) =
      ( x e. X , r e. RR* |-> { y e. X | ( x D y ) < r } ) ) $=
      ( vd cpsmet wcel cv cdm cxr co clt wbr crab cmpt2 cvv cbl wceq wa cfv a1i
      cmpt df-bl dmeq dmeqd psmetdmdm eqcomd sylan9eqr eqidd simpr oveqd breq1d
      rabeqbidv mpt2eq123dv elex cxp cpw wf wral ssrab2 wb elfvdm adantr elpw2g
      wss syl ralrimivva eqid fmpt2 sylib xrex xpexg sylancl pwexg fex2 syl3anc
      mpbiri fvmptd ) CDGUAZHZFCAEFIZJZJZKAIZBIZWBLZEIZMNZBWDOZPZAEDKWEWFCLZWHM
      NZBDOZPZQRQRFQWKUCSWAABEFUDUBWAWBCSZTZAEWDKWJDKWNWPWAWDCJZJZDWPWCWRWBCUEU
      FWADWSCDUGUHUIZWQKUJWQWIWMBWDDWTWQWGWLWHMWQWBCWEWFWAWPUKULUMUNUOCVTUPWADK
      UQZDURZWOUSZXAQHZXBQHZWOQHWAWNXBHZEKUTADUTXCWAXFAEDKWAWEDHWHKHTZTZXFWNDVF
      ZWMBDVAXHDGJZHZXFXIVBWAXKXGCDGVCZVDWNDXJVEVGVRVHAEDKWNXBWOWOVIVJVKWAXKKQH
      XDXLVLDKXJQVMVNWAXKXEXLDXJVOVGXAXBWOQQVPVQVS $.

    $( The value of the ball function.  (Contributed by NM, 30-Aug-2006.)
       (Revised by Mario Carneiro, 11-Nov-2013.)  (Proof shortened by Thierry
       Arnoux, 11-Feb-2018.) $)
    blfval $p |- ( D e. ( *Met ` X ) -> ( ball ` D ) =
      ( x e. X , r e. RR* |-> { y e. X | ( x D y ) < r } ) ) $=
      ( cxmt cfv wcel cpsmet cbl cxr cv co clt wbr crab wceq xmetpsmet blfvalps
      cmpt2 syl ) CDFGHCDIGHCJGAEDKALBLCMELNOBDPTQCDRABCDESUA $.
  $}

  ${
    $d x A $.  $d r x y P $.  $d x ph $.  $d x Q $.  $d x S $.  $d r x y D $.
    $d r x y R $.  $d r x y X $.
    $( The ball around a point ` P ` is the set of all points whose distance
       from ` P ` is less than the ball's radius ` R ` .  (Contributed by NM,
       31-Aug-2006.)  (Revised by Mario Carneiro, 11-Nov-2013.)  (Revised by
       Thierry Arnoux, 11-Mar-2018.) $)
    blvalps $p |- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR* ) ->
                  ( P ( ball ` D ) R ) = { x e. X | ( P D x ) < R } ) $=
      ( vy vr cpsmet cfv wcel cxr cv co clt wbr crab cvv wceq 3ad2ant1 wa cmpt2
      w3a cbl blfvalps simprl oveq1d simprr breq12d rabbidv simp2 elfvdm rabexg
      simp3 cdm syl ovmpt2d ) BEHIJZCEJZDKJZUBZFGCDEKFLZALZBMZGLZNOZAEPZCVBBMZD
      NOZAEPZBUCIZQUQURVJFGEKVFUARUSFABEGUDSUTVACRZVDDRZTTZVEVHAEVMVCVGVDDNVMVA
      CVBBUTVKVLUEUFUTVKVLUGUHUIUQURUSUJUQURUSUMUTEHUNZJZVIQJUQURVOUSBEHUKSVHAE
      VNULUOUP $.

    $( The ball around a point ` P ` is the set of all points whose distance
       from ` P ` is less than the ball's radius ` R ` .  (Contributed by NM,
       31-Aug-2006.)  (Revised by Mario Carneiro, 11-Nov-2013.) $)
    blval $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ R e. RR* ) ->
                  ( P ( ball ` D ) R ) = { x e. X | ( P D x ) < R } ) $=
      ( vy vr cxmt cfv wcel cxr cv co clt wbr crab cvv wceq 3ad2ant1 wa w3a cbl
      cmpt2 blfval simprl oveq1d simprr breq12d rabbidv simp2 cdm elfvdm rabexg
      simp3 syl ovmpt2d ) BEHIJZCEJZDKJZUAZFGCDEKFLZALZBMZGLZNOZAEPZCVBBMZDNOZA
      EPZBUBIZQUQURVJFGEKVFUCRUSFABEGUDSUTVACRZVDDRZTTZVEVHAEVMVCVGVDDNVMVACVBB
      UTVKVLUEUFUTVKVLUGUHUIUQURUSUJUQURUSUNUTEHUKZJZVIQJUQURVOUSBEHULSVHAEVNUM
      UOUP $.

    $( Membership in a ball.  (Contributed by NM, 2-Sep-2006.)  (Revised by
       Mario Carneiro, 11-Nov-2013.)  (Revised by Thierry Arnoux,
       11-Mar-2018.) $)
    elblps $p |- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR* ) ->
             ( A e. ( P ( ball ` D ) R ) <-> ( A e. X /\ ( P D A ) < R ) ) ) $=
      ( vx cpsmet cfv wcel cxr w3a cbl co cv clt wbr crab wa blvalps eleq2d
      wceq oveq2 breq1d elrab syl6bb ) BEGHICEIDJIKZACDBLHMZIACFNZBMZDOPZFEQZIA
      EICABMZDOPZRUFUGUKAFBCDESTUJUMFAEUHAUAUIULDOUHACBUBUCUDUE $.

    $( Membership in a ball.  (Contributed by NM, 2-Sep-2006.)  (Revised by
       Mario Carneiro, 11-Nov-2013.) $)
    elbl $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ R e. RR* ) ->
             ( A e. ( P ( ball ` D ) R ) <-> ( A e. X /\ ( P D A ) < R ) ) ) $=
      ( vx cxmt cfv wcel cxr w3a cbl co cv clt wbr crab wa blval eleq2d breq1d
      wceq oveq2 elrab syl6bb ) BEGHICEIDJIKZACDBLHMZIACFNZBMZDOPZFEQZIAEICABMZ
      DOPZRUFUGUKAFBCDESTUJUMFAEUHAUBUIULDOUHACBUCUAUDUE $.

    $( Membership in a ball.  (Contributed by NM, 9-Mar-2007.)  (Revised by
       Thierry Arnoux, 11-Mar-2018.) $)
    elbl2ps $p |- ( ( ( D e. ( PsMet ` X ) /\ R e. RR* ) /\ ( P e. X /\
      A e. X ) ) -> ( A e. ( P ( ball ` D ) R ) <-> ( P D A ) < R ) ) $=
      ( cpsmet cfv wcel cxr wa cbl co clt wbr elblps 3expa an32s adantrr simprr
      wb biantrurd bitr4d ) BEFGHZDIHZJZCEHZAEHZJJZACDBKGLHZUGCABLDMNZJZUJUEUFU
      IUKTZUGUCUFUDULUCUFUDULABCDEOPQRUHUGUJUEUFUGSUAUB $.

    $( Membership in a ball.  (Contributed by NM, 9-Mar-2007.) $)
    elbl2 $p |- ( ( ( D e. ( *Met ` X ) /\ R e. RR* ) /\ ( P e. X /\
      A e. X ) ) -> ( A e. ( P ( ball ` D ) R ) <-> ( P D A ) < R ) ) $=
      ( cxmt cfv wcel cxr wa cbl co clt wbr wb elbl 3expa an32s adantrr simprr
      biantrurd bitr4d ) BEFGHZDIHZJZCEHZAEHZJJZACDBKGLHZUGCABLDMNZJZUJUEUFUIUK
      OZUGUCUFUDULUCUFUDULABCDEPQRSUHUGUJUEUFUGTUAUB $.

    $( Membership in a ball, with reversed distance function arguments.
       (Contributed by NM, 10-Nov-2007.) $)
    elbl3ps $p |- ( ( ( D e. ( PsMet ` X ) /\ R e. RR* ) /\ ( P e. X /\
      A e. X ) ) -> ( A e. ( P ( ball ` D ) R ) <-> ( A D P ) < R ) ) $=
      ( cpsmet cfv wcel cxr wa cbl clt wbr elbl2ps wceq psmetsym adantlr breq1d
      co 3expb bitrd ) BEFGHZDIHZJCEHZAEHZJZJZACDBKGSHCABSZDLMACBSZDLMABCDENUGU
      HUIDLUBUFUHUIOZUCUBUDUEUJCABEPTQRUA $.

    $( Membership in a ball, with reversed distance function arguments.
       (Contributed by NM, 10-Nov-2007.) $)
    elbl3 $p |- ( ( ( D e. ( *Met ` X ) /\ R e. RR* ) /\ ( P e. X /\
      A e. X ) ) -> ( A e. ( P ( ball ` D ) R ) <-> ( A D P ) < R ) ) $=
      ( cxmt cfv wcel cxr wa cbl co clt elbl2 wceq xmetsym 3expb adantlr breq1d
      wbr bitrd ) BEFGHZDIHZJCEHZAEHZJZJZACDBKGLHCABLZDMTACBLZDMTABCDENUGUHUIDM
      UBUFUHUIOZUCUBUDUEUJCABEPQRSUA $.

    $( Commute the arguments to the ball function.  (Contributed by Mario
       Carneiro, 22-Jan-2014.)  (Revised by Thierry Arnoux, 11-Mar-2018.) $)
    blcomps $p |- ( ( ( D e. ( PsMet ` X ) /\ R e. RR* )
        /\ ( P e. X /\ A e. X ) )
      -> ( A e. ( P ( ball ` D ) R ) <-> P e. ( A ( ball ` D ) R ) ) ) $=
      ( cpsmet cfv wcel cxr wa cbl co clt wbr elbl2ps wb elbl3ps ancom2s bitr4d
      ) BEFGHDIHJZCEHZAEHZJJACDBKGZLHCABLDMNZCADUCLHZABCDEOTUBUAUEUDPCBADEQRS
      $.

    $( Commute the arguments to the ball function.  (Contributed by Mario
       Carneiro, 22-Jan-2014.) $)
    blcom $p |- ( ( ( D e. ( *Met ` X ) /\ R e. RR* ) /\ ( P e. X /\ A e. X ) )
      -> ( A e. ( P ( ball ` D ) R ) <-> P e. ( A ( ball ` D ) R ) ) ) $=
      ( cxmt cfv wcel cxr wa cbl co clt wbr elbl2 wb elbl3 ancom2s bitr4d ) BEF
      GHDIHJZCEHZAEHZJJACDBKGZLHCABLDMNZCADUCLHZABCDEOTUBUAUEUDPCBADEQRS $.

    $( The infinity ball in an extended metric is the set of all points that
       are a finite distance from the center.  (Contributed by Mario Carneiro,
       23-Aug-2015.)  (Revised by Thierry Arnoux, 11-Mar-2018.) $)
    xblpnfps $p |- ( ( D e. ( PsMet ` X ) /\ P e. X ) ->
        ( A e. ( P ( ball ` D ) +oo ) <-> ( A e. X /\ ( P D A ) e. RR ) ) ) $=
      ( cpsmet cfv wcel wa cpnf cbl co clt wbr cr cxr wb pnfxr elblps cmnf syl
      w3a wne cc0 cle psmetcl psmetge0 ge0nemnf syl2anc wceq ngtmnft necon2abid
      mp3an3 wn mpbird biantrurd xrrebnd bitr4d 3expa pm5.32da bitrd ) BDEFGZCD
      GZHZACIBJFKGZADGZCABKZILMZHZVEVFNGZHVAVBIOGVDVHPQABCIDRULVCVEVGVIVAVBVEVG
      VIPVAVBVEUAZVGSVFLMZVGHZVIVJVKVGVJVKVFSUBZVJVFOGZUCVFUDMVMCABDUEZCABDUFVF
      UGUHVJVKVFSVJVNVFSUIVKUMPVOVFUJTUKUNUOVJVNVIVLPVOVFUPTUQURUSUT $.

    $( The infinity ball in an extended metric is the set of all points that
       are a finite distance from the center.  (Contributed by Mario Carneiro,
       23-Aug-2015.) $)
    xblpnf $p |- ( ( D e. ( *Met ` X ) /\ P e. X ) ->
        ( A e. ( P ( ball ` D ) +oo ) <-> ( A e. X /\ ( P D A ) e. RR ) ) ) $=
      ( cxmt cfv wcel wa cpnf cbl co clt wbr cr cxr wb pnfxr elbl cmnf syl wceq
      mp3an3 w3a wne cc0 cle xmetcl xmetge0 ge0nemnf syl2anc ngtmnft necon2abid
      wn mpbird biantrurd xrrebnd bitr4d 3expa pm5.32da bitrd ) BDEFGZCDGZHZACI
      BJFKGZADGZCABKZILMZHZVEVFNGZHVAVBIOGVDVHPQABCIDRUBVCVEVGVIVAVBVEVGVIPVAVB
      VEUCZVGSVFLMZVGHZVIVJVKVGVJVKVFSUDZVJVFOGZUEVFUFMVMCABDUGZCABDUHVFUIUJVJV
      KVFSVJVNVFSUAVKUMPVOVFUKTULUNUOVJVNVIVLPVOVFUPTUQURUSUT $.

    $( The infinity ball in a standard metric is just the whole space.
       (Contributed by Mario Carneiro, 23-Aug-2015.) $)
    blpnf $p |- ( ( D e. ( Met ` X ) /\ P e. X ) ->
       ( P ( ball ` D ) +oo ) = X ) $=
      ( vx cme cfv wcel wa cpnf cbl co cv cr cxmt wb metxmet xblpnf sylan metcl
      3expia pm4.71d bitr4d eqrdv ) ACEFGZBCGZHZDBIAJFKZCUFDLZUGGZUHCGZBUHAKMGZ
      HZUJUDACNFGUEUIULOACPUHABCQRUFUJUKUDUEUJUKBUHACSTUAUBUC $.

    $( Two balls are disjoint if the center-to-center distance is more than the
       sum of the radii.  (Contributed by Mario Carneiro, 30-Dec-2013.) $)
    bldisj $p |- ( ( ( D e. ( *Met ` X ) /\ P e. X /\ Q e. X ) /\
      ( R e. RR* /\ S e. RR* /\ ( R +e S ) <_ ( P D Q ) ) )
        -> ( ( P ( ball ` D ) R ) i^i ( Q ( ball ` D ) S ) ) = (/) ) $=
      ( vx cfv wcel w3a cxr cxad co wbr wa clt wb xmetcl adantr syl3anc cle cbl
      cxmt cv wn simpr3 simpr1 simpr2 xaddcld xrlenlt syl2anc mpbid elin simpl1
      simpl2 elbl simpl3 anbi12d anandi syl6bbr simpr xlt2add syl22anc xmettri3
      cin wi syl13anc xrlelttr mpand syld expimpd sylbid syl5bi mtod eq0rdv ) A
      FUCHIZBFIZCFIZJZDKIZEKIZDELMZBCAMZUANZJZOZGBDAUBHZMZCEWGMZVEZWFGUDZWJIZWC
      WBPNZWFWDWMUEZVSVTWAWDUFWFWBKIZWCKIZWDWNQWFDEVSVTWAWDUGZVSVTWAWDUHZUIZVSW
      PWEBCAFRSZWBWCUJUKULWLWKWHIZWKWIIZOZWFWMWKWHWIUMWFXCWKFIZBWKAMZDPNZCWKAMZ
      EPNZOZOZWMWFXCXDXFOZXDXHOZOXJWFXAXKXBXLWFVPVQVTXAXKQVPVQVRWEUNZVPVQVRWEUO
      ZWQWKABDFUPTWFVPVRWAXBXLQXMVPVQVRWEUQZWRWKACEFUPTURXDXFXHUSUTWFXDXIWMWFXD
      OZXIXEXGLMZWBPNZWMXPXEKIZXGKIZVTWAXIXRVFXPVPVQXDXSWFVPXDXMSZWFVQXDXNSZWFX
      DVAZBWKAFRTZXPVPVRXDXTYAWFVRXDXOSZYCCWKAFRTZWFVTXDWQSWFWAXDWRSXEXGDEVBVCX
      PWCXQUANZXRWMXPVPVQVRXDYGYAYBYEYCBCWKAFVDVGXPWPXQKIWOYGXROWMVFWFWPXDWTSXP
      XEXGYDYFUIWFWOXDWSSWCXQWBVHTVIVJVKVLVMVNVO $.

    $( A nonempty ball implies that the radius is positive.  (Contributed by
       NM, 11-Mar-2007.)  (Revised by Mario Carneiro, 23-Aug-2015.) $)
    blgt0 $p |- ( ( ( D e. ( *Met ` X ) /\ P e. X /\ R e. RR* ) /\
                A e. ( P ( ball ` D ) R ) ) -> 0 < R ) $=
      ( cxmt cfv wcel cxr w3a cbl co wa cc0 0xr a1i simpl1 simpl2 wbr syl3anc
      clt elbl simprbda xmetcl simpl3 cle xmetge0 simplbda xrlelttrd ) BEFGHZCE
      HZDIHZJZACDBKGLHZMZNCABLZDNIHUOOPUOUJUKAEHZUPIHUJUKULUNQZUJUKULUNRZUMUNUQ
      UPDUASZABCDEUBZUCZCABEUDTUJUKULUNUEUOUJUKUQNUPUFSURUSVBCABEUGTUMUNUQUTVAU
      HUI $.

    $( Two balls are disjoint if they don't overlap.  (Contributed by NM,
       11-Mar-2007.)  (Revised by Mario Carneiro, 23-Aug-2015.) $)
    bl2in $p |- ( ( ( D e. ( Met ` X ) /\ P e. X /\ Q e. X ) /\
                ( R e. RR /\ R <_ ( ( P D Q ) / 2 ) ) ) ->
                ( ( P ( ball ` D ) R ) i^i ( Q ( ball ` D ) R ) ) = (/) ) $=
      ( cme cfv wcel w3a cr co c2 cdiv cle wbr wa cxmt cxr cxad wceq cbl cin c0
      simpl1 metxmet syl simpl2 simpl3 rexr ad2antrl cmul simprl rexadd syl2anc
      caddc recnd 2timesd eqtr4d wb id cc0 clt 2re 2pos pm3.2i lemuldiv2 mp3an3
      metcl syl2anr biimprd impr eqbrtrd bldisj syl33anc ) AEFGHZBEHZCEHZIZDJHZ
      DBCAKZLMKNOZPZPZAEQGHZVPVQDRHZWEDDSKZVTNOBDAUAGZKCDWGKUBUCTWCVOWDVOVPVQWB
      UDAEUEUFVOVPVQWBUGVOVPVQWBUHVSWEVRWADUIUJZWHWCWFLDUKKZVTNWCWFDDUOKZWIWCVS
      VSWFWJTVRVSWAULZWKDDUMUNWCDWCDWKUPUQURVRVSWAWIVTNOZVRVSPWLWAVSVSVTJHZWLWA
      USZVRVSUTBCAEVHVSWMLJHZVALVBOZPWNWOWPVCVDVEDVTLVFVGVIVJVKVLABCDDEVMVN $.

    ${
      xblss2ps.1 $e |- ( ph -> D e. ( PsMet ` X ) ) $.
      xblss2ps.2 $e |- ( ph -> P e. X ) $.
      xblss2ps.3 $e |- ( ph -> Q e. X ) $.
      xblss2ps.4 $e |- ( ph -> R e. RR* ) $.
      xblss2ps.5 $e |- ( ph -> S e. RR* ) $.
      xblss2ps.6 $e |- ( ph -> ( P D Q ) e. RR ) $.
      xblss2ps.7 $e |- ( ph -> ( P D Q ) <_ ( S +e -e R ) ) $.
      $( One ball is contained in another if the center-to-center distance is
         less than the difference of the radii.  In this version of ~ blss2 for
         extended metrics, we have to assume the balls are a finite distance
         apart, or else ` P ` will not even be in the infinity ball around
         ` Q ` .  (Contributed by Mario Carneiro, 23-Aug-2015.)  (Revised by
         Thierry Arnoux, 11-Mar-2018.) $)
      xblss2ps $p |- ( ph -> ( P ( ball ` D ) R ) C_ ( Q ( ball ` D ) S ) ) $=
        ( co wcel wbr cxr cpnf adantr vx cbl cfv cv wa cpsmet wb elblps syl3anc
        simprbda cr wceq cxad psmetcl rexrd xaddcld ad2antrr psmettri2 syl13anc
        clt cle simplbda xltadd2 mpbid xrlelttrd cxne xnegcld xleadd1a syl31anc
        xnpcan sylan breqtrd xrltletrd caddc simpll simplr simpr oveq2d eleqtrd
        xblpnfps syl2anc readdcld pnfxr a1i ltpnf syl cmnf wne cc0 0xr psmetge0
        rexadd xrletrd ge0nemnf wi xnegeq xnegpnf syl6eq eqeq1d sylibrd necon1d
        xaddmnf1 ex mpd breqtrrd wo xrltle sylancr jca sylib mpjaodan mpbir2and
        xrnemnf ssrdv ) AUACEBUBUCZOZDFXOOZAUAUDZXPPZXRXQPZAXSUEZXTXRGPZDXRBOZF
        UTQZAXSYBCXRBOZEUTQZABGUFUCPZCGPZERPZXSYBYFUEUGHIKXRBCEGUHUIZUJZYAEUKPZ
        YDESULZYAYLUEZYCCDBOZEUMOZFYAYCRPZYLYAYGDGPZYBYQAYGXSHTZAYRXSJTZYKDXRBG
        UNUIZTYAYPRPYLYAYOEYAYOAYOUKPZXSMTZUOZAYIXSKTZUPZTAFRPZXSYLLUQYAYCYPUTQ
        YLYAYCYOYEUMOZYPUUAYAYOYEUUDYAYGYHYBYERPZYSAYHXSITZYKCXRBGUNUIZUPUUFYAY
        GYHYRYBYCUUHVAQZYSUUJYTYKDXRCBGURZUSYAYFUUHYPUTQZAXSYBYFYJVBZYAUUIYIUUB
        YFUUNUGUUKUUEUUCYEEYOVCUIVDVETYNYPFEVFZUMOZEUMOZFVAYAYPUURVAQZYLYAYORPU
        UQRPZYIYOUUQVAQZUUSUUDYAFUUPAUUGXSLTZYAEUUEVGUPZUUEAUVAXSNTZYOUUQEVHVIT
        YAUUGYLUURFULUVBFEVJVKVLVMYAYMUEZYCSFUTUVEYCYOYEVNOZSYAYQYMUUATUVEUVFUV
        EYOYEAUUBXSYMMUQZUVEAXRCSXOOZPZYEUKPZAXSYMVOUVEXRXPUVHAXSYMVPUVEESCXOYA
        YMVQZVRVSAUVIYBUVJAYGYHUVIYBUVJUEUGHIXRBCGVTWAVBWAZWBZUOSRPUVEWCWDUVEYC
        UUHUVFVAUVEYGYHYRYBUULAYGXSYMHUQAYHXSYMIUQAYRXSYMJUQYAYBYMYKTUUMUSUVEUU
        BUVJUUHUVFULUVGUVLYOYEWLWAVLUVEUVFUKPUVFSUTQUVMUVFWEWFVEUVEUUQWGWHZFSUL
        YAUVNYMYAUUTWIUUQVAQUVNUVCYAWIYOUUQWIRPZYAWJWDZUUDUVCYAYGYHYRWIYOVAQYSU
        UJYTCDBGWKUIUVDWMUUQWNWATUVEFSUUQWGUVEFSWHZFWGUMOZWGULZUUQWGULUVEUUGUVQ
        UVSWOAUUGXSYMLUQUUGUVQUVSFXBXCWFUVEUUQUVRWGUVEUUPWGFUMUVEUUPSVFZWGUVEYM
        UUPUVTULUVKESWPWFWQWRVRWSWTXAXDXEYAYIEWGWHZUEYLYMXFYAYIUWAUUEYAYIWIEVAQ
        ZUWAUUEYAWIEUTQZUWBYAWIYEEUVPUUKUUEYAYGYHYBWIYEVAQYSUUJYKCXRBGWKUIUUOVE
        YAUVOYIUWCUWBWOWJUUEWIEXGXHXDEWNWAXIEXMXJXKYAYGYRUUGXTYBYDUEUGYSYTUVBXR
        BDFGUHUIXLXCXN $.
    $}

    ${
      xblss2.1 $e |- ( ph -> D e. ( *Met ` X ) ) $.
      xblss2.2 $e |- ( ph -> P e. X ) $.
      xblss2.3 $e |- ( ph -> Q e. X ) $.
      xblss2.4 $e |- ( ph -> R e. RR* ) $.
      xblss2.5 $e |- ( ph -> S e. RR* ) $.
      xblss2.6 $e |- ( ph -> ( P D Q ) e. RR ) $.
      xblss2.7 $e |- ( ph -> ( P D Q ) <_ ( S +e -e R ) ) $.
      $( One ball is contained in another if the center-to-center distance is
         less than the difference of the radii.  In this version of ~ blss2 for
         extended metrics, we have to assume the balls are a finite distance
         apart, or else ` P ` will not even be in the infinity ball around
         ` Q ` .  (Contributed by Mario Carneiro, 23-Aug-2015.) $)
      xblss2 $p |- ( ph -> ( P ( ball ` D ) R ) C_ ( Q ( ball ` D ) S ) ) $=
        ( co wcel wbr adantr cc0 cmnf vx cbl cfv cv wa clt cxmt wb elbl syl3anc
        cxr simprbda cr cpnf wceq cxad rexrd xaddcld ad2antrr xmettri2 syl13anc
        xmetcl cle simplbda xltadd2 mpbid cxne xnegcld xleadd1a syl31anc xnpcan
        xrlelttrd breqtrd xrltletrd wne 0xr xmetge0 xrletrd ge0nemnf syl2anc wi
        sylan a1i xaddmnf1 ex simpr xnegeq xnegpnf syl6eq oveq2d eqeq1d sylibrd
        syl necon1d oveq12d pnfaddmnf biantrud xrletri3 sylancl xmeteq0 3bitr2d
        mpd oveq1d eqtr4d 3brtr3d wo xrltle sylancr jca xrnemnf sylib mpbir2and
        mpjaodan ssrdv ) AUACEBUBUCZOZDFXOOZAUAUDZXPPZXRXQPZAXSUEZXTXRGPZDXRBOZ
        FUFQZAXSYBCXRBOZEUFQZABGUGUCPZCGPZEUKPZXSYBYFUEUHHIKXRBCEGUIUJZULZYAEUM
        PZYDEUNUOZYAYLUEZYCCDBOZEUPOZFYAYCUKPZYLYAYGDGPZYBYQAYGXSHRZAYRXSJRZYKD
        XRBGVBUJZRYAYPUKPYLYAYOEYAYOAYOUMPZXSMRZUQZAYIXSKRZURZRAFUKPZXSYLLUSYAY
        CYPUFQYLYAYCYOYEUPOZYPUUAYAYOYEUUDYAYGYHYBYEUKPZYSAYHXSIRZYKCXRBGVBUJZU
        RUUFYAYGYHYRYBYCUUHVCQYSUUJYTYKDXRCBGUTVAYAYFUUHYPUFQZAXSYBYFYJVDZYAUUI
        YIUUBYFUULUHUUKUUEUUCYEEYOVEUJVFVLRYNYPFEVGZUPOZEUPOZFVCYAYPUUPVCQZYLYA
        YOUKPZUUOUKPZYIYOUUOVCQZUUQUUDYAFUUNAUUGXSLRZYAEUUEVHURZUUEAUUTXSNRZYOU
        UOEVIVJRYAUUGYLUUPFUOUVAFEVKWBVMVNYAYMUEZYEEYCFUFYAYFYMUUMRUVDCDXRBUVDY
        OSVCQZCDUOZUVDYOUUOSVCAUUTXSYMNUSUVDUUOUNTUPOSUVDFUNUUNTUPUVDUUOTVOZFUN
        UOYAUVGYMYAUUSSUUOVCQUVGUVBYASYOUUOSUKPZYAVPWCZUUDUVBYAYGYHYRSYOVCQZYSU
        UJYTCDBGVQUJZUVCVRUUOVSVTRUVDFUNUUOTUVDFUNVOZFTUPOZTUOZUUOTUOUVDUUGUVLU
        VNWAAUUGXSYMLUSUUGUVLUVNFWDWEWMUVDUUOUVMTUVDUUNTFUPUVDUUNUNVGZTUVDYMUUN
        UVOUOYAYMWFZEUNWGWMWHWIZWJWKWLWNXBZUVQWOWPWIVMYAUVEUVFUHYMYAUVEUVEUVJUE
        ZYOSUOZUVFYAUVJUVEUVKWQYAUURUVHUVTUVSUHUUDVPYOSWRWSYAYGYHYRUVTUVFUHYSUU
        JYTCDBGWTUJXARVFXCUVDEUNFUVPUVRXDXEYAYIETVOZUEYLYMXFYAYIUWAUUEYAYISEVCQ
        ZUWAUUEYASEUFQZUWBYASYEEUVIUUKUUEYAYGYHYBSYEVCQYSUUJYKCXRBGVQUJUUMVLYAU
        VHYIUWCUWBWAVPUUESEXGXHXBEVSVTXIEXJXKXMYAYGYRUUGXTYBYDUEUHYSYTUVAXRBDFG
        UIUJXLWEXN $.
    $}

    $( One ball is contained in another if the center-to-center distance is
       less than the difference of the radii.  (Contributed by Mario Carneiro,
       15-Jan-2014.)  (Revised by Mario Carneiro, 23-Aug-2015.)  (Revised by
       Thierry Arnoux, 11-Mar-2018.) $)
    blss2ps $p |- ( ( ( D e. ( PsMet ` X ) /\ P e. X /\ Q e. X ) /\
                ( R e. RR /\ S e. RR /\ ( P D Q ) <_ ( S - R ) ) ) ->
                ( P ( ball ` D ) R ) C_ ( Q ( ball ` D ) S ) ) $=
      ( cpsmet cfv wcel w3a cr co cmin cle wbr wa simpl1 simpl2 simpl3 rexrd
      simpr1 simpr2 resubcld simpr3 psmetlecl syl122anc cxne cxad wceq breqtrrd
      rexsub syl2anc xblss2ps ) AFGHIZBFIZCFIZJZDKIZEKIZBCALZEDMLZNOZJZPZABCDEF
      UNUOUPVCQZUNUOUPVCRZUNUOUPVCSZVDDUQURUSVBUAZTVDEUQURUSVBUBZTVDUNUOUPVAKIV
      BUTKIVEVFVGVDEDVIVHUCUQURUSVBUDZBCVAAFUEUFVDUTVAEDUGUHLZNVJVDUSURVKVAUIVI
      VHEDUKULUJUM $.

    $( One ball is contained in another if the center-to-center distance is
       less than the difference of the radii.  (Contributed by Mario Carneiro,
       15-Jan-2014.)  (Revised by Mario Carneiro, 23-Aug-2015.) $)
    blss2 $p |- ( ( ( D e. ( *Met ` X ) /\ P e. X /\ Q e. X ) /\
                ( R e. RR /\ S e. RR /\ ( P D Q ) <_ ( S - R ) ) ) ->
                ( P ( ball ` D ) R ) C_ ( Q ( ball ` D ) S ) ) $=
      ( cxmt cfv wcel w3a cr co cmin cle wbr wa simpl1 simpl2 simpl3 rexrd cxne
      simpr1 simpr2 resubcld simpr3 xmetlecl syl122anc cxad wceq rexsub syl2anc
      breqtrrd xblss2 ) AFGHIZBFIZCFIZJZDKIZEKIZBCALZEDMLZNOZJZPZABCDEFUNUOUPVC
      QZUNUOUPVCRZUNUOUPVCSZVDDUQURUSVBUBZTVDEUQURUSVBUCZTVDUNUOUPVAKIVBUTKIVEV
      FVGVDEDVIVHUDUQURUSVBUEZBCVAAFUFUGVDUTVAEDUAUHLZNVJVDUSURVKVAUIVIVHEDUJUK
      ULUM $.
  $}

  $( A ball of radius ` R / 2 ` is contained in a ball of radius ` R ` centered
     at any point inside the smaller ball.  (Contributed by Jeff Madsen,
     2-Sep-2009.)  (Proof shortened by Mario Carneiro, 14-Jan-2014.) $)
  blhalf $p |- ( ( ( M e. ( *Met ` X ) /\ Y e. X ) /\ ( R e. RR /\
                  Z e. ( Y ( ball ` M ) ( R / 2 ) ) ) ) ->
            ( Y ( ball ` M ) ( R / 2 ) ) C_ ( Z ( ball ` M ) R ) ) $=
    ( cxmt cfv wcel wa cr c2 cdiv co cbl cmin cle wbr cxr syl3anc recnd wss clt
    simpll simplr simprr simprl rehalfcld rexrd elbl mpbid simpld simprd xmetcl
    wb wi xrltle syl2anc mpd caddc pncand 2halvesd oveq1d eqtr3d blss2 syl33anc
    breqtrd ) BCFGHZDCHZIZAJHZEDAKLMZBNGZMZHZIZIZVGVHECHZVKJHVJDEBMZAVKOMZPQVME
    AVLMUAVGVHVOUCZVGVHVOUDZVPVQVRVKUBQZVPVNVQWBIZVIVJVNUEVPVGVHVKRHZVNWCUNVTWA
    VPVKVPAVIVJVNUFZUGZUHZEBDVKCUISUJZUKZWFWEVPVRVKVSPVPWBVRVKPQZVPVQWBWHULVPVR
    RHZWDWBWJUOVPVGVHVQWKVTWAWIDEBCUMSWGVRVKUPUQURVPVKVKUSMZVKOMVKVSVPVKVKVPVKW
    FTZWMUTVPWLAVKOVPAVPAWETVAVBVCVFBDEVKACVDVE $.

  ${
    $d r x y A $.  $d r x y z B $.  $d x y z C $.  $d r x y z D $.  $d r x R $.
    $d r x y z P $.  $d x S $.  $d r x y z X $.
    $( Mapping of a ball.  (Contributed by NM, 7-May-2007.)  (Revised by Mario
       Carneiro, 23-Aug-2015.)  (Revised by Thierry Arnoux, 11-Mar-2018.) $)
    blfps $p |- ( D e. ( PsMet ` X ) -> ( ball ` D ) : ( X X. RR* ) --> ~P X )
      $=
      ( vx vr vy cpsmet cfv wcel cxr cxp cpw cbl wf cv clt wbr crab cmpt2 wral
      co wa wss ssrab2 cdm wb elfvdm elpw2g syl mpbiri a1d ralrimivv eqid fmpt2
      sylib blfvalps feq1d mpbird ) ABFGHZBIJZBKZALGZMUSUTCDBICNZENATDNZOPZEBQZ
      RZMZURVEUTHZDISCBSVGURVHCDBIURVHVBBHVCIHUAURVHVEBUBZVDEBUCURBFUDZHVHVIUEA
      BFUFVEBVJUGUHUIUJUKCDBIVEUTVFVFULUMUNURUSUTVAVFCEABDUOUPUQ $.

    $( Mapping of a ball.  (Contributed by NM, 7-May-2007.)  (Revised by Mario
       Carneiro, 23-Aug-2015.) $)
    blf $p |- ( D e. ( *Met ` X ) -> ( ball ` D ) : ( X X. RR* ) --> ~P X ) $=
      ( vx vr vy cxmt cfv wcel cxr cxp cpw cbl wf cv co clt wbr crab cmpt2 wral
      wa wss ssrab2 cdm elfvdm elpw2g syl mpbiri a1d ralrimivv eqid fmpt2 sylib
      wb blfval feq1d mpbird ) ABFGHZBIJZBKZALGZMUSUTCDBICNZENAODNZPQZEBRZSZMZU
      RVEUTHZDITCBTVGURVHCDBIURVHVBBHVCIHUAURVHVEBUBZVDEBUCURBFUDZHVHVIUNABFUEV
      EBVJUFUGUHUIUJCDBIVEUTVFVFUKULUMURUSUTVAVFCEABDUOUPUQ $.

    $( Membership in the range of the ball function.  Note that
       ` ran ( ball `` D ) ` is the collection of all balls for metric ` D ` .
       (Contributed by NM, 31-Aug-2006.)  (Revised by Mario Carneiro,
       12-Nov-2013.)  (Revised by Thierry Arnoux, 11-Mar-2018.) $)
    blrnps $p |- ( D e. ( PsMet ` X ) -> ( A e. ran ( ball ` D ) <->
         E. x e. X E. r e. RR* A = ( x ( ball ` D ) r ) ) ) $=
      ( cpsmet cfv wcel cxr cxp cpw cbl wf wfn crn cv co wceq wrex wb blfps ffn
      ovelrn 3syl ) CDFGHDIJZDKZCLGZMUGUENBUGOHBAPEPUGQREISADSTCDUAUEUFUGUBAEDI
      BUGUCUD $.

    $( Membership in the range of the ball function.  Note that
       ` ran ( ball `` D ) ` is the collection of all balls for metric ` D ` .
       (Contributed by NM, 31-Aug-2006.)  (Revised by Mario Carneiro,
       12-Nov-2013.) $)
    blrn $p |- ( D e. ( *Met ` X ) -> ( A e. ran ( ball ` D ) <->
         E. x e. X E. r e. RR* A = ( x ( ball ` D ) r ) ) ) $=
      ( cxmt cfv wcel cxr cxp cpw cbl wf wfn crn cv co wceq wrex wb ovelrn 3syl
      blf ffn ) CDFGHDIJZDKZCLGZMUGUENBUGOHBAPEPUGQREISADSTCDUCUEUFUGUDAEDIBUGU
      AUB $.

    $( A ball contains its center.  (Contributed by NM, 2-Sep-2006.)  (Revised
       by Mario Carneiro, 12-Nov-2013.)  (Revised by Thierry Arnoux,
       11-Mar-2018.) $)
    xblcntrps $p |- ( ( D e. ( PsMet ` X ) /\ P e. X /\ ( R e. RR* /\ 0 < R ) )
              -> P e. ( P ( ball ` D ) R ) ) $=
      ( cpsmet cfv wcel cxr cc0 clt wbr wa w3a cbl co simp2 wceq psmet0 3adant3
      simp3r eqbrtrd wb elblps 3adant3r mpbir2and ) ADEFGZBDGZCHGZICJKZLZMZBBCA
      NFOGZUGBBAOZCJKZUFUGUJPUKUMICJUFUGUMIQUJBADRSUFUGUHUITUAUFUGUHULUGUNLUBUI
      BABCDUCUDUE $.

    $( A ball contains its center.  (Contributed by NM, 2-Sep-2006.)  (Revised
       by Mario Carneiro, 12-Nov-2013.) $)
    xblcntr $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ ( R e. RR* /\ 0 < R ) ) ->
                 P e. ( P ( ball ` D ) R ) ) $=
      ( cxmt cfv wcel cxr cc0 clt wbr wa w3a co simp2 wceq xmet0 3adant3 simp3r
      cbl eqbrtrd wb elbl 3adant3r mpbir2and ) ADEFGZBDGZCHGZICJKZLZMZBBCATFNGZ
      UGBBANZCJKZUFUGUJOUKUMICJUFUGUMIPUJBADQRUFUGUHUISUAUFUGUHULUGUNLUBUIBABCD
      UCUDUE $.

    $( A ball contains its center.  (Contributed by NM, 2-Sep-2006.)  (Revised
       by Mario Carneiro, 12-Nov-2013.)  (Revised by Thierry Arnoux,
       11-Mar-2018.) $)
    blcntrps $p |- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ ) ->
                 P e. ( P ( ball ` D ) R ) ) $=
      ( crp wcel cpsmet cfv cxr cc0 clt wbr wa cbl rpxr rpgt0 xblcntrps syl3an3
      co jca ) CEFZADGHFBDFCIFZJCKLZMBBCANHSFUAUBUCCOCPTABCDQR $.

    $( A ball contains its center.  (Contributed by NM, 2-Sep-2006.)  (Revised
       by Mario Carneiro, 12-Nov-2013.) $)
    blcntr $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ R e. RR+ ) ->
                 P e. ( P ( ball ` D ) R ) ) $=
      ( crp wcel cxmt cfv cxr cc0 clt wbr wa cbl rpxr rpgt0 jca xblcntr syl3an3
      co ) CEFZADGHFBDFCIFZJCKLZMBBCANHTFUAUBUCCOCPQABCDRS $.

    $( A ball is nonempty iff the radius is positive.  (Contributed by Mario
       Carneiro, 23-Aug-2015.) $)
    xbln0 $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ R e. RR* ) ->
                 ( ( P ( ball ` D ) R ) =/= (/) <-> 0 < R ) ) $=
      ( vx cxmt cfv wcel cxr w3a cbl co c0 cc0 clt wbr wa 3expa 3adantl3 wi wne
      cv wex n0 elbl cle xmetge0 0xr a1i xmetcl simpl3 xrlelttr syl3anc expimpd
      mpand sylbid exlimdv syl5bi xblcntr ne0i syl expr 3impa impbid ) ADFGHZBD
      HZCIHZJZBCAKGLZMUAZNCOPZVJEUBZVIHZEUCVHVKEVIUDVHVMVKEVHVMVLDHZBVLALZCOPZQ
      VKVLABCDUEVHVNVPVKVHVNQZNVOUFPZVPVKVEVFVNVRVGVEVFVNVRBVLADUGRSVQNIHZVOIHZ
      VGVRVPQVKTVSVQUHUIVEVFVNVTVGVEVFVNVTBVLADUJRSVEVFVGVNUKNVOCULUMUOUNUPUQUR
      VEVFVGVKVJTVEVFQVGVKVJVEVFVGVKQZVJVEVFWAJBVIHVJABCDUSVIBUTVARVBVCVD $.

    $( A ball is not empty.  (Contributed by NM, 6-Oct-2007.)  (Revised by
       Mario Carneiro, 12-Nov-2013.) $)
    bln0 $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ R e. RR+ ) ->
                 ( P ( ball ` D ) R ) =/= (/) ) $=
      ( cxmt cfv wcel crp w3a cbl co c0 wne blcntr ne0i syl ) ADEFGBDGCHGIBBCAJ
      FKZGQLMABCDNQBOP $.

    $( A ball belongs to the set of balls of a metric space.  (Contributed by
       NM, 2-Sep-2006.)  (Revised by Mario Carneiro, 12-Nov-2013.)  (Revised by
       Thierry Arnoux, 11-Mar-2018.) $)
    blelrnps $p |- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR* ) ->
                    ( P ( ball ` D ) R ) e. ran ( ball ` D ) ) $=
      ( cpsmet cfv wcel cbl cxr cxp wfn co crn cpw blfps ffn syl fnovrn syl3an1
      wf ) ADEFGZAHFZDIJZKZBDGCIGBCUBLUBMGUAUCDNZUBTUDADOUCUEUBPQDIBCUBRS $.

    $( A ball belongs to the set of balls of a metric space.  (Contributed by
       NM, 2-Sep-2006.)  (Revised by Mario Carneiro, 12-Nov-2013.) $)
    blelrn $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ R e. RR* ) ->
                    ( P ( ball ` D ) R ) e. ran ( ball ` D ) ) $=
      ( cxmt cfv wcel cbl cxr cxp wfn co crn cpw wf blf ffn syl fnovrn syl3an1
      ) ADEFGZAHFZDIJZKZBDGCIGBCUBLUBMGUAUCDNZUBOUDADPUCUEUBQRDIBCUBST $.

    $( A ball is a subset of the base set of a metric space.  (Contributed by
       NM, 31-Aug-2006.)  (Revised by Mario Carneiro, 12-Nov-2013.) $)
    blssm $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ R e. RR* ) ->
                  ( P ( ball ` D ) R ) C_ X ) $=
      ( cxmt cfv wcel cxr w3a cbl co cxp cpw wf blf fovrn syl3an1 elpwid ) ADEF
      GZBDGZCHGZIBCAJFZKZDSDHLDMZUBNTUAUCUDGADOBCUDDHUBPQR $.

    $( The union of the set of balls of a metric space is its base set.
       (Contributed by NM, 12-Sep-2006.)  (Revised by Mario Carneiro,
       12-Nov-2013.)  (Revised by Thierry Arnoux, 11-Mar-2018.) $)
    unirnblps $p |- ( D e. ( PsMet ` X ) -> U. ran ( ball ` D ) = X ) $=
      ( vx cpsmet cfv wcel cbl crn cuni cpw wss cxr cxp wf blfps frn syl c1 1rp
      mp3an3 sspwuni sylib cv wa co blcntrps rpxr ax-mp blelrnps elunii syl2anc
      crp ex ssrdv eqssd ) ABDEFZAGEZHZIZBUPURBJZKZUSBKUPBLMZUTUQNVAABOVBUTUQPQ
      URBUAUBUPCBUSUPCUCZBFZVCUSFZUPVDUDVCVCRUQUEZFZVFURFZVEUPVDRULFZVGSAVCRBUF
      TUPVDRLFZVHVIVJSRUGUHAVCRBUITVCVFURUJUKUMUNUO $.

    $( The union of the set of balls of a metric space is its base set.
       (Contributed by NM, 12-Sep-2006.)  (Revised by Mario Carneiro,
       12-Nov-2013.) $)
    unirnbl $p |- ( D e. ( *Met ` X ) -> U. ran ( ball ` D ) = X ) $=
      ( vx cxmt cfv wcel cbl crn cuni cpw wss cxr cxp wf blf frn syl 1rp mp3an3
      c1 sspwuni sylib cv wa co crp blcntr ax-mp blelrn elunii syl2anc ex ssrdv
      rpxr eqssd ) ABDEFZAGEZHZIZBUPURBJZKZUSBKUPBLMZUTUQNVAABOVBUTUQPQURBUAUBU
      PCBUSUPCUCZBFZVCUSFZUPVDUDVCVCTUQUEZFZVFURFZVEUPVDTUFFZVGRAVCTBUGSUPVDTLF
      ZVHVIVJRTUNUHAVCTBUISVCVFURUJUKULUMUO $.

    $( The intersection of two balls with the same center is the smaller of
       them.  (Contributed by NM, 1-Sep-2006.)  (Revised by Mario Carneiro,
       12-Nov-2013.) $)
    blin $p |- ( ( ( D e. ( *Met ` X ) /\ P e. X ) /\ ( R e. RR* /\
      S e. RR* ) ) -> ( ( P ( ball ` D ) R ) i^i ( P ( ball ` D ) S ) ) =
                        ( P ( ball ` D ) if ( R <_ S , R , S ) ) ) $=
      ( vx cxmt cfv wcel wa cxr cbl co cin cle wbr clt wb 3expa elbl cif xmetcl
      cv adantlr simplrl simplrr xrltmin syl3anc sylan2 adantrr adantrl anbi12d
      pm5.32da ifcl elin anandi 3bitr4g 3bitr4rd eqrdv ) AEGHIZBEIZJZCKIZDKIZJZ
      JZFBCALHZMZBDVGMZNZBCDOPZCDUAZVGMZVFFUCZEIZBVNAMZVLQPZJZVOVPCQPZVPDQPZJZJ
      ZVNVMIZVNVJIZVFVOVQWAVFVOJVPKIZVCVDVQWARVBVOWEVEUTVAVOWEBVNAEUBSUDVBVCVDV
      OUEVBVCVDVOUFVPCDUGUHUMVEVBVLKIZWCVRRZVKCDKUNUTVAWFWGVNABVLETSUIVFVNVHIZV
      NVIIZJVOVSJZVOVTJZJWDWBVFWHWJWIWKVBVCWHWJRZVDUTVAVCWLVNABCETSUJVBVDWIWKRZ
      VCUTVAVDWMVNABDETSUKULVNVHVIUOVOVSVTUPUQURUS $.

    $( The size of a ball increases monotonically with its radius.
       (Contributed by NM, 20-Sep-2007.)  (Revised by Mario Carneiro,
       24-Aug-2015.)  (Revised by Thierry Arnoux, 11-Mar-2018.) $)
    ssblps $p |- ( ( ( D e. ( PsMet ` X ) /\ P e. X ) /\
                   ( R e. RR* /\ S e. RR* ) /\ R <_ S ) ->
               ( P ( ball ` D ) R ) C_ ( P ( ball ` D ) S ) ) $=
      ( cpsmet cfv wcel wa cxr cle wbr w3a simp1l simp1r simp2l simp2r co cc0
      cr wceq psmet0 3ad2ant1 0re syl6eqel cxne simp3 wb xsubge0 syl2anc mpbird
      cxad eqbrtrd xblss2ps ) AEFGHZBEHZIZCJHZDJHZIZCDKLZMZABBCDEUOUPUTVANUOUPU
      TVAOZVCUQURUSVAPZUQURUSVAQZVBBBARZSTUQUTVFSUAVABAEUBUCZUDUEVBVFSDCUFULRZK
      VGVBSVHKLZVAUQUTVAUGVBUSURVIVAUHVEVDDCUIUJUKUMUN $.

    $( The size of a ball increases monotonically with its radius.
       (Contributed by NM, 20-Sep-2007.)  (Revised by Mario Carneiro,
       24-Aug-2015.) $)
    ssbl $p |- ( ( ( D e. ( *Met ` X ) /\ P e. X ) /\
                   ( R e. RR* /\ S e. RR* ) /\ R <_ S ) ->
               ( P ( ball ` D ) R ) C_ ( P ( ball ` D ) S ) ) $=
      ( cxmt cfv wcel wa cxr cle wbr w3a simp1l simp1r simp2l simp2r co cc0 cr
      wceq xmet0 3ad2ant1 0re syl6eqel cxne cxad xsubge0 syl2anc mpbird eqbrtrd
      simp3 wb xblss2 ) AEFGHZBEHZIZCJHZDJHZIZCDKLZMZABBCDEUOUPUTVANUOUPUTVAOZV
      CUQURUSVAPZUQURUSVAQZVBBBARZSTUQUTVFSUAVABAEUBUCZUDUEVBVFSDCUFUGRZKVGVBSV
      HKLZVAUQUTVAULVBUSURVIVAUMVEVDDCUHUIUJUKUN $.

    $( Any point ` P ` in a ball ` B ` can be centered in another ball that is
       a subset of ` B ` .  (Contributed by NM, 31-Aug-2006.)  (Revised by
       Mario Carneiro, 24-Aug-2015.)  (Revised by Thierry Arnoux,
       11-Mar-2018.) $)
    blssps $p |- ( ( D e. ( PsMet ` X ) /\ B e. ran ( ball ` D ) /\ P e. B ) ->
                E. x e. RR+ ( P ( ball ` D ) x ) C_ B ) $=
      ( vy vr vz wcel co wss crp wrex cxr wi clt wbr wa syl2anc cle cfv cbl crn
      cpsmet cv blrnps w3a elblps cq simpl1 simpl2 simpr psmetcl syl3anc simpl3
      wceq qbtwnxr 3expia cr qre cmin simpll1 simplr simpll2 simprrl eqbrtrd wb
      psmetsym simprl rexr ad2antrl xrltle mpd psmetlecl syl122anc difrp xrleid
      mpbid resubcld syl recnd nncand breqtrrd blss2ps syl33anc simpll3 simprrr
      ssblps syl221anc sstrd sseq1d rspcev expr sylan2 rexlimdva expimpd sylbid
      oveq2 syld eleq2 sseq2 rexbidv imbi12d syl5ibrcom 3expib rexlimdvv 3imp )
      CEUDUAIZBCUBUAZUCIZDBIZDAUEZXIJZBKZALMZXHXJBFUEZGUEZXIJZUPZGNMFEMXKXOOZFB
      CEGUFXHXSXTFGENXHXPEIZXQNIZXSXTOXHYAYBUGZXTXSDXRIZXMXRKZALMZOYCYDDEIZXPDC
      JZXQPQZRYFDCXPXQEUHYCYGYIYFYCYGRZYIYHHUEZPQZYKXQPQZRZHUIMZYFYJYHNIZYBYIYO
      OYJXHYAYGYPXHYAYBYGUJXHYAYBYGUKYCYGULXPDCEUMUNXHYAYBYGUOYPYBYIYOHYHXQUQUR
      SYJYNYFHUIYKUIIYJYKUSIZYNYFOYKUTYJYQYNYFYJYQYNRZRZYKDXPCJZVAJZLIZDUUAXIJZ
      XRKZYFYSYTYKPQZUUBYSYTYHYKPYSXHYGYAYTYHUPXHYAYBYGYRVBZYCYGYRVCZXHYAYBYGYR
      VDZDXPCEVHUNYJYQYLYMVEVFZYSYTUSIZYQUUEUUBVGYSXHYGYAYQYTYKTQZUUJUUFUUGUUHY
      JYQYNVIZYSUUEUUKUUIYSYTNIZYKNIZUUEUUKOYSXHYGYAUUMUUFUUGUUHDXPCEUMUNZYQUUN
      YJYNYKVJVKZYTYKVLSVMDXPYKCEVNVOZUULYTYKVPSVRYSUUCXPYKXIJZXRYSXHYGYAUUAUSI
      YQYTYKUUAVAJZTQUUCUURKUUFUUGUUHYSYKYTUULUUQVSUULYSYTYTUUSTYSUUMYTYTTQUUOY
      TVQVTYSYKYTYSYKUULWAYSYTUUQWAWBWCCDXPUUAYKEWDWEYSXHYAUUNYBYKXQTQZUURXRKUU
      FUUHUUPXHYAYBYGYRWFZYSYMUUTYJYQYLYMWGYSUUNYBYMUUTOUUPUVAYKXQVLSVMCXPYKXQE
      WHWIWJYEUUDAUUALXLUUAUPXMUUCXRXLUUADXIWRWKWLSWMWNWOWSWPWQXSXKYDXOYFBXRDWT
      XSXNYEALBXRXMXAXBXCXDXEXFWQXG $.

    $( Any point ` P ` in a ball ` B ` can be centered in another ball that is
       a subset of ` B ` .  (Contributed by NM, 31-Aug-2006.)  (Revised by
       Mario Carneiro, 24-Aug-2015.) $)
    blss $p |- ( ( D e. ( *Met ` X ) /\ B e. ran ( ball ` D ) /\ P e. B ) ->
                E. x e. RR+ ( P ( ball ` D ) x ) C_ B ) $=
      ( vy vr vz wcel co wss crp wrex cxr wi clt wbr wa syl2anc cle cfv cbl crn
      cxmt cv wceq blrn w3a elbl cq simpl1 simpl2 xmetcl syl3anc simpl3 qbtwnxr
      simpr 3expia cr qre simpll1 simplr simpll2 xmetsym simprrl eqbrtrd simprl
      cmin wb rexr ad2antrl xrltle mpd xmetlecl syl122anc difrp resubcld xrleid
      mpbid recnd nncand breqtrrd blss2 syl33anc simpll3 simprrr ssbl syl221anc
      sstrd oveq2 sseq1d rspcev expr sylan2 rexlimdva syld expimpd sylbid eleq2
      syl sseq2 rexbidv imbi12d syl5ibrcom 3expib rexlimdvv 3imp ) CEUDUAIZBCUB
      UAZUCIZDBIZDAUEZXIJZBKZALMZXHXJBFUEZGUEZXIJZUFZGNMFEMXKXOOZFBCEGUGXHXSXTF
      GENXHXPEIZXQNIZXSXTOXHYAYBUHZXTXSDXRIZXMXRKZALMZOYCYDDEIZXPDCJZXQPQZRYFDC
      XPXQEUIYCYGYIYFYCYGRZYIYHHUEZPQZYKXQPQZRZHUJMZYFYJYHNIZYBYIYOOYJXHYAYGYPX
      HYAYBYGUKXHYAYBYGULYCYGUQXPDCEUMUNXHYAYBYGUOYPYBYIYOHYHXQUPURSYJYNYFHUJYK
      UJIYJYKUSIZYNYFOYKUTYJYQYNYFYJYQYNRZRZYKDXPCJZVHJZLIZDUUAXIJZXRKZYFYSYTYK
      PQZUUBYSYTYHYKPYSXHYGYAYTYHUFXHYAYBYGYRVAZYCYGYRVBZXHYAYBYGYRVCZDXPCEVDUN
      YJYQYLYMVEVFZYSYTUSIZYQUUEUUBVIYSXHYGYAYQYTYKTQZUUJUUFUUGUUHYJYQYNVGZYSUU
      EUUKUUIYSYTNIZYKNIZUUEUUKOYSXHYGYAUUMUUFUUGUUHDXPCEUMUNZYQUUNYJYNYKVJVKZY
      TYKVLSVMDXPYKCEVNVOZUULYTYKVPSVSYSUUCXPYKXIJZXRYSXHYGYAUUAUSIYQYTYKUUAVHJ
      ZTQUUCUURKUUFUUGUUHYSYKYTUULUUQVQUULYSYTYTUUSTYSUUMYTYTTQUUOYTVRWTYSYKYTY
      SYKUULVTYSYTUUQVTWAWBCDXPUUAYKEWCWDYSXHYAUUNYBYKXQTQZUURXRKUUFUUHUUPXHYAY
      BYGYRWEZYSYMUUTYJYQYLYMWFYSUUNYBYMUUTOUUPUVAYKXQVLSVMCXPYKXQEWGWHWIYEUUDA
      UUALXLUUAUFXMUUCXRXLUUADXIWJWKWLSWMWNWOWPWQWRXSXKYDXOYFBXRDWSXSXNYEALBXRX
      MXAXBXCXDXEXFWRXG $.

    $( Two ways to express the existence of a ball subset.  (Contributed by NM,
       5-May-2007.)  (Revised by Mario Carneiro, 12-Nov-2013.)  (Revised by
       Thierry Arnoux, 11-Mar-2018.) $)
    blssexps $p |- ( ( D e. ( PsMet ` X ) /\ P e. X ) ->
                   ( E. x e. ran ( ball ` D ) ( P e. x /\ x C_ A ) <->
                     E. r e. RR+ ( P ( ball ` D ) r ) C_ A ) ) $=
      ( cpsmet cfv wcel wa cv wss cbl crn wrex co crp wi w3a syl3anc sstr 3expa
      blssps expcom reximdv syl5com expimpd adantlr rexlimdva cxr simpll simplr
      rpxr ad2antrl blelrnps simprl blcntrps simprr wceq eleq2 anbi12d syl12anc
      sseq1 rspcev rexlimdvaa impbid ) CEGHIZDEIZJZDAKZIZVJBLZJZACMHZNZOZDFKZVN
      PZBLZFQOZVIVMVTAVOVGVJVOIZVMVTRVHVGWAJVKVLVTVGWAVKVLVTRVGWAVKSVRVJLZFQOVL
      VTFVJCDEUCVLWBVSFQWBVLVSVRVJBUAUDUEUFUBUGUHUIVIVSVPFQVIVQQIZVSJZJZVRVOIZD
      VRIZVSVPWEVGVHVQUJIZWFVGVHWDUKZVGVHWDULZWCWHVIVSVQUMUNCDVQEUOTWEVGVHWCWGW
      IWJVIWCVSUPCDVQEUQTVIWCVSURVMWGVSJAVRVOVJVRUSVKWGVLVSVJVRDUTVJVRBVCVAVDVB
      VEVF $.

    $( Two ways to express the existence of a ball subset.  (Contributed by NM,
       5-May-2007.)  (Revised by Mario Carneiro, 12-Nov-2013.) $)
    blssex $p |- ( ( D e. ( *Met ` X ) /\ P e. X ) ->
                   ( E. x e. ran ( ball ` D ) ( P e. x /\ x C_ A ) <->
                     E. r e. RR+ ( P ( ball ` D ) r ) C_ A ) ) $=
      ( cxmt cfv wcel wa cv wss cbl crn wrex co crp wi w3a syl3anc blss reximdv
      expcom syl5com 3expa expimpd adantlr rexlimdva cxr simpll simplr ad2antrl
      sstr rpxr blelrn simprl blcntr simprr eleq2 sseq1 anbi12d rspcev syl12anc
      wceq rexlimdvaa impbid ) CEGHIZDEIZJZDAKZIZVJBLZJZACMHZNZOZDFKZVNPZBLZFQO
      ZVIVMVTAVOVGVJVOIZVMVTRVHVGWAJVKVLVTVGWAVKVLVTRVGWAVKSVRVJLZFQOVLVTFVJCDE
      UAVLWBVSFQWBVLVSVRVJBUMUCUBUDUEUFUGUHVIVSVPFQVIVQQIZVSJZJZVRVOIZDVRIZVSVP
      WEVGVHVQUIIZWFVGVHWDUJZVGVHWDUKZWCWHVIVSVQUNULCDVQEUOTWEVGVHWCWGWIWJVIWCV
      SUPCDVQEUQTVIWCVSURVMWGVSJAVRVOVJVRVDVKWGVLVSVJVRDUSVJVRBUTVAVBVCVEVF $.

    $( A nested ball exists whose radius is less than any desired amount.
       (Contributed by NM, 20-Sep-2007.)  (Revised by Mario Carneiro,
       12-Nov-2013.) $)
    ssblex $p |- ( ( ( D e. ( *Met ` X ) /\ P e. X ) /\
                     ( R e. RR+ /\ S e. RR+ ) ) ->
     E. x e. RR+ ( x < R /\ ( P ( ball ` D ) x ) C_ ( P ( ball ` D ) S ) ) ) $=
      ( cfv wcel wa crp co cle wbr clt wss rpred cr syl2anc cxr rpxrd cxmt cdiv
      c2 cif cbl wrex simprl rphalfcld simprr ifcld min1 cc0 rpgt0d halfpos syl
      cv mpbid lelttrd simpl min2 ssbl syl121anc wceq breq1 oveq2 sseq1d rspcev
      wb anbi12d syl12anc ) BFUAGHCFHIZDJHZEJHZIZIZDUCUBKZELMZVPEUDZJHVRDNMZCVR
      BUEGZKZCEVTKZOZAUPZDNMZCWDVTKZWBOZIZAJUFVOVQVPEJVODVKVLVMUGZUHZVKVLVMUIZU
      JZVOVRVPDVOVRWLPVOVPWJPZVODWIPZVOVPQHZEQHZVRVPLMWMVOEWKPZVPEUKRVOULDNMZVP
      DNMZVODWIUMVODQHWRWSVHWNDUNUOUQURVOVKVRSHESHVRELMZWCVKVNUSVOVRWLTVOEWKTVO
      WOWPWTWMWQVPEUTRBCVREFVAVBWHVSWCIAVRJWDVRVCZWEVSWGWCWDVRDNVDXAWFWAWBWDVRC
      VTVEVFVIVGVJ $.

    $( Given any two balls and a point in their intersection, there is a ball
       contained in the intersection with the given center point.  (Contributed
       by Mario Carneiro, 12-Nov-2013.) $)
    blin2 $p |- ( ( ( D e. ( *Met ` X ) /\ P e. ( B i^i C ) ) /\
                  ( B e. ran ( ball ` D ) /\ C e. ran ( ball ` D ) ) ) ->
                    E. x e. RR+ ( P ( ball ` D ) x ) C_ ( B i^i C ) ) $=
      ( vy vz cfv wcel cin wa cv co wss crp wrex blss syl3anc cxr simpll simprl
      cxmt cbl crn simplr elin sylib simpld simprr simprd reeanv ss2in cle wceq
      wbr cif inss1 cpw cxp blf frn 3syl sseldd elpwid syl5ss rpxr anim12i blin
      wf jca syl2an sseq1d wi ifcl oveq2 rspcev ex syl adantl sylbid rexlimdvva
      syl5 syl5bir mp2and ) DFUCIJZEBCKZJZLZBDUDIZUEZJZCWKJZLZLZEGMZWJNZBOZGPQZ
      EHMZWJNZCOZHPQZEAMZWJNZWGOZAPQZWOWFWLEBJZWSWFWHWNUAZWIWLWMUBZWOXHECJZWOWH
      XHXKLWFWHWNUFZEBCUGUHZUIGBDEFRSWOWFWMXKXCXIWIWLWMUJWOXHXKXMUKHCDEFRSWSXCL
      WRXBLZHPQGPQWOXGWRXBGHPPULWOXNXGGHPPXNWQXAKZWGOZWOWPPJZWTPJZLZLZXGWQBXACU
      MXTXPEWPWTUNUPZWPWTUQZWJNZWGOZXGXTXOYCWGWOWFEFJZLWPTJZWTTJZLXOYCUOXSWOWFY
      EXIWOWGFEWOWGBFBCURWOBFWOWKFUSZBWOWFFTUTZYHWJVJWKYHOXIDFVAYIYHWJVBVCXJVDV
      EVFXLVDVKXQYFXRYGWPVGWTVGVHDEWPWTFVIVLVMXSYDXGVNZWOXSYBPJZYJYAWPWTPVOYKYD
      XGXFYDAYBPXDYBUOXEYCWGXDYBEWJVPVMVQVRVSVTWAWCWBWDWE $.
  $}

  ${
    $d x C $.  $d b r x y z D $.  $d x P $.  $d x R $.  $d b r x y z X $.
    $d x Y $.
    $( The balls of a metric space form a basis for a topology.  (Contributed
       by NM, 12-Sep-2006.)  (Revised by Mario Carneiro, 15-Jan-2014.) $)
    blbas $p |- ( D e. ( *Met ` X ) -> ran ( ball ` D ) e. TopBases ) $=
      ( vz vb vx vy vr cxmt cfv wcel wel cv cin wss wa cbl wrex wral wb cvv crn
      ctb crp blin2 simpll cuni inss1 sseli elunii sylan ad2ant2lr wceq unirnbl
      ad2antrr eleqtrd blssex syl2anc mpbird ralrimdva ralrimivv fvex isbasis2g
      co ex rnex ax-mp sylibr ) ABHIJZCDKDLELZFLZMZNODAPIZUAZQZCVKRZFVMREVMRZVM
      UBJZVHVOEFVMVMVHVIVMJZVJVMJZOZVNCVKVHCLZVKJZOZVTVNWCVTOZVNWAGLVLVCVKNGUCQ
      ZGVIVJAWABUDWDVHWABJVNWESVHWBVTUEWDWAVMUFZBWBVRWAWFJZVHVSWBCEKVRWGVKVIWAV
      IVJUGUHWAVIVMUIUJUKVHWFBULWBVTABUMUNUODVKAWABGUPUQURVDUSUTVMTJVQVPSVLAPVA
      VEEFCDVMTVBVFVG $.

    blres.2 $e |- C = ( D |` ( Y X. Y ) ) $.
    $( A ball in a restricted metric space.  (Contributed by Mario Carneiro,
       5-Jan-2014.) $)
    blres $p |- ( ( D e. ( *Met ` X ) /\ P e. ( X i^i Y ) /\ R e. RR* ) ->
                  ( P ( ball ` C ) R ) = ( ( P ( ball ` D ) R ) i^i Y ) ) $=
      ( vx cxmt cfv wcel cin cbl co clt wbr wa wb sseli elin cxr w3a wceq inss2
      cv cxp cres oveqi ovres syl5eq sylan breq1d pm5.32da 3ad2ant2 ancom bitri
      anbi2d anbi1i anass 3bitr4g xmetres syl5eqel syl3an1 inss1 syl3an2 anbi1d
      elbl syl5bb 3bitr4d eqrdv ) BEIJKZCEFLZKZDUAKZUBZHCDAMJNZCDBMJNZFLZVOHUEZ
      VLKZCVSANZDOPZQZVSEKZCVSBNZDOPZQZVSFKZQZVSVPKZVSVRKZVOWHWDWBQZQZWHWGQZWCW
      IVMVKWMWNRVNVMWHWLWGVMWHQZWBWFWDWOWAWEDOVMCFKZWHWAWEUCVLFCEFUDSWPWHQWACVS
      BFFUFUGZNWEAWQCVSGUHCVSFFBUIUJUKULUQUMUNWCWHWDQZWBQWMVTWRWBVTWDWHQWRVSEFT
      WDWHUOUPURWHWDWBUSUPWGWHUOUTVKAVLIJZKVMVNWJWCRVKAWQWSGBFEVAVBVSACDVLVGVCW
      KVSVQKZWHQVOWIVSVQFTVOWTWGWHVMVKCEKVNWTWGRVLECEFVDSVSBCDEVGVEVFVHVIVJ $.
  $}

  ${
    $d x y z D $.  $d x P $.  $d x y z .~ $.  $d x y z X $.
    xmeter.1 $e |- .~ = ( `' D " RR ) $.
    $( Value of the "finitely separated" relation.  (Contributed by Mario
       Carneiro, 24-Aug-2015.) $)
    xmeterval $p |- ( D e. ( *Met ` X ) ->
        ( A .~ B <-> ( A e. X /\ B e. X /\ ( A D B ) e. RR ) ) ) $=
      ( cxmt cfv wcel cop ccnv cr cima cxp wa wbr co w3a cxr bitri wf wfn xmetf
      ffn elpreima 3syl breqi df-br df-3an opelxp bicomi eleq1i anbi12i 3bitr4g
      wb df-ov ) CEGHIZABJZCKLMZIZUREENZIZURCHZLIZOZABDPZAEIZBEIZABCQZLIZRZUQVA
      SCUACVAUBUTVEUOCEUCVASCUDVAURLCUEUFVFABUSPUTABDUSFUGABUSUHTVKVGVHOZVJOVEV
      GVHVJUIVLVBVJVDVBVLABEEUJUKVIVCLABCUPULUMTUN $.

    $( The "finitely separated" relation is an equivalence relation.
       (Contributed by Mario Carneiro, 24-Aug-2015.) $)
    xmeter $p |- ( D e. ( *Met ` X ) -> .~ Er X ) $=
      ( vx vy vz wcel wrel cr cxr wceq cv wbr wa w3a xmeterval biimpa adantrr
      co cxmt cfv cxp wss cdm ccnv cima cnvimass eqsstri xmetf fdm syl syl5sseq
      wf relxp relss mpisyl simp2d simp1d simpl xmetsym syl3anc simp3d eqeltrrd
      wb adantr mpbir3and adantrl cxad cle caddc rexadd readdcl eqeltrd syl2anc
      xmettri syl13anc xmetlecl syl122anc cc0 xmet0 syl6eqel ex pm4.71rd df-3an
      0re anidm anbi2ci bitri syl6bbr bitr4d iserd ) ACUAUBHZEFGCBWMBCCUCZUDWNI
      BIWMAUEZBWNBAUFJUGWODAJUHUIWMWNKAUNWOWNLACUJWNKAUKULUMCCUOBWNUPUQWMEMZFMZ
      BNZOZWQWPBNZWQCHZWPCHZWQWPATZJHZWSXBXAWPWQATZJHZWMWRXBXAXFPWPWQABCDQRZURZ
      WSXBXAXFXGUSZWSXEXCJWSWMXBXAXEXCLWMWRUTXIXHWPWQACVAVBWSXBXAXFXGVCZVDWMWTX
      AXBXDPVEWRWQWPABCDQVFVGWMWRWQGMZBNZOZOZWPXKBNZXBXKCHZWPXKATZJHZWMWRXBXLXI
      SZXNXAXPWQXKATZJHZWMXLXAXPYAPZWRWMXLYBWQXKABCDQRVHZURZXNWMXBXPXEXTVITZJHZ
      XQYEVJNZXRWMXMUTZXSYDXNXFYAYFWMWRXFXLXJSXNXAXPYAYCVCXFYAOYEXEXTVKTJXEXTVL
      XEXTVMVNVOXNWMXBXPXAYGYHXSYDWMWRXAXLXHSWPXKWQACVPVQWPXKYEACVRVSWMXOXBXPXR
      PVEXMWPXKABCDQVFVGWMXBXBXBWPWPATZJHZPZWPWPBNWMXBYJXBOZYKWMXBYJWMXBYJWMXBO
      YIVTJWPACWAWFWBWCWDYKXBXBOZYJOYLXBXBYJWEYMXBYJXBWGWHWIWJWPWPABCDQWKWL $.

    $( The equivalence classes under the finite separation equivalence relation
       are infinity balls.  Thus, by ~ erdisj , infinity balls are either
       identical or disjoint, quite unlike the usual situation with Euclidean
       balls which admit many kinds of overlap.  (Contributed by Mario
       Carneiro, 24-Aug-2015.) $)
    xmetec $p |- ( ( D e. ( *Met ` X ) /\ P e. X ) ->
        [ P ] .~ = ( P ( ball ` D ) +oo ) ) $=
      ( vx cxmt cfv wcel wa cec cpnf cbl co cv wbr cr w3a xmeterval cvv baib wb
      3anass sylan9bb vex a1i elecg sylan xblpnf 3bitr4d eqrdv ) ADGHIZBDIZJZFB
      CKZBLAMHNZUNBFOZCPZUQDIZBUQANQIZJZUQUOIZUQUPIULURUMUSUTRZUMVABUQACDESVCUM
      VAUMUSUTUCUAUDULUQTIZUMVBURUBVDULFUEUFUQBCTDUGUHUQABDUIUJUK $.

    $( A ball centered at ` P ` is contained in the set of points finitely
       separated from ` P ` .  This is just an application of ~ ssbl to the
       infinity ball.  (Contributed by Mario Carneiro, 24-Aug-2015.) $)
    blssec $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ S e. RR* ) ->
        ( P ( ball ` D ) S ) C_ [ P ] .~ ) $=
      ( cxmt cfv wcel cxr w3a cbl co cpnf cec wss wa cle wbr pnfge adantl pnfxr
      wi ssbl 3expia mpanr2 mpd 3impa wceq xmetec 3adant3 sseqtr4d ) AEGHIZBEIZ
      DJIZKBDALHZMZBNUPMZBCOZUMUNUOUQURPZUMUNQZUOQDNRSZUTUOVBVADTUAVAUONJIZVBUT
      UCUBVAUOVCQVBUTABDNEUDUEUFUGUHUMUNUSURUIUOABCEFUJUKUL $.
  $}

  $( The infinity ball in an extended metric acts like an ultrametric ball in
     that every point in the ball is also its center.  (Contributed by Mario
     Carneiro, 21-Aug-2015.) $)
  blpnfctr $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\
      A e. ( P ( ball ` D ) +oo ) ) ->
    ( P ( ball ` D ) +oo ) = ( A ( ball ` D ) +oo ) ) $=
    ( cxmt cfv wcel cpnf cbl co w3a ccnv cima cec wer eqid xmeter wceq xmetec
    cr 3ad2ant1 wbr simp3 3adant3 eleqtrrd elecg ancoms 3adant1 mpbid erthi cxr
    wb wa wss pnfxr blssm mp3an3 sselda adantlr syldan 3impa 3eqtr3d ) BDEFGZCD
    GZACHBIFZJZGZKZCBLTMZNZAVINZVFAHVEJZVHCAVIDVCVDDVIOVGBVIDVIPZQUAVHAVJGZCAVI
    UBZVHAVFVJVCVDVGUCVCVDVJVFRVGBCVIDVMSUDZUEVDVGVNVOULZVCVGVDVQACVIVFDUFUGUHU
    IUJVPVCVDVGVKVLRZVCVDUMZVGADGZVRVSVFDAVCVDHUKGVFDUNUOBCHDUPUQURVCVTVRVDBAVI
    DVMSUSUTVAVB $.

  ${
    $d x y B $.  $d x y D $.  $d x y P $.  $d x y R $.  $d x y X $.
    xmetresbl.1 $e |- B = ( P ( ball ` D ) R ) $.
    $( An extended metric restricted to any ball (in particular the infinity
       ball) is a proper metric.  Together with ~ xmetec , this shows that any
       extended metric space can be "factored" into the disjoint union of
       proper metric spaces, with points in the same region measured by that
       region's metric, and points in different regions being distance ` +oo `
       from each other.  (Contributed by Mario Carneiro, 23-Aug-2015.) $)
    xmetresbl $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ R e. RR* ) ->
        ( D |` ( B X. B ) ) e. ( Met ` B ) ) $=
      ( vx vy cxmt cfv wcel cxr cr wf co syl2anc syl wbr wb mpbid w3a cxp simp1
      cres cme wss cbl blssm syl5eqss xmetres2 wfn cv wral xmetf xpss12 fssresd
      ffn wceq ovres adantl ccnv cima wer simpl1 eqid xmeter cec blssec adantrr
      wa sselda simpl2 elecg adantrl ertr3d xmeterval simp3d eqeltrd ralrimivva
      ffnov sylanbrc ismet2 ) BEIJKZCEKZDLKZUAZBAAUBZUDZAIJKZWGMWHNZWHAUEJKWFWC
      AEUFZWIWCWDWEUCZWFACDBUGJOZEFBCDEUHUIZBAEUJPWFWHWGUKZGULZHULZWHOZMKZHAUMG
      AUMWJWFWGLWHNWOWFEEUBZLWGBWFWCWTLBNWLBEUNQWFWKWKWGWTUFWNWNAEAEUOPUPWGLWHU
      QQWFWSGHAAWFWPAKZWQAKZVJZVJZWRWPWQBOZMXCWRXEURWFWPWQAABUSUTXDWPEKZWQEKZXE
      MKZXDWPWQBVAMVBZRZXFXGXHUAZXDWPCWQXIEXDWCEXIVCWCWDWEXCVDZBXIEXIVEZVFQXDWP
      CXIVGZKZCWPXIRZWFXAXOXBWFAXNWPWFAWMXNFBCXIDEXMVHUIZVKVIZXDXOWDXOXPSXRWCWD
      WEXCVLZWPCXIXNEVMPTXDWQXNKZCWQXIRZWFXBXTXAWFAXNWQXQVKVNZXDXTWDXTYASYBXSWQ
      CXIXNEVMPTVOXDWCXJXKSXLWPWQBXIEXMVPQTVQVRVSGHAAMWHVTWAWHAWBWA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Open sets of a metric space
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z A $.  $d d x y z D $.  $d x y z X $.
    mopnval.1 $e |- J = ( MetOpen ` D ) $.
    $( An open set is a subset of a metric space which includes a ball around
       each of its points.  Definition 1.3-2 of [Kreyszig] p. 18.  The object
       ` ( MetOpen `` D ) ` is the family of all open sets in the metric space
       determined by the metric ` D ` .  By ~ mopntop , the open sets of a
       metric space form a topology ` J ` , whose base set is ` U. J ` by
       ~ mopnuni .  (Contributed by NM, 1-Sep-2006.)  (Revised by Mario
       Carneiro, 12-Nov-2013.) $)
    mopnval $p |- ( D e. ( *Met ` X ) -> J = ( topGen ` ran ( ball ` D ) ) ) $=
      ( vd cxmt cfv wcel crn cuni cbl wceq fvssunirn sseli cmopn cv fveq2 rneqd
      ctg fveq2d df-mopn fvex fvmpt syl5eq syl ) ACFGZHAFIJZHZBAKGZIZSGZLUFUGAF
      CMNUHBAOGUKDEAEPZKGZIZSGUKUGOULALZUNUJSUOUMUIULAKQRTEUAUJSUBUCUDUE $.

    $( The set of open sets of a metric space ` X ` is a topology on ` X ` .
       Remark in [Kreyszig] p. 19.  This theorem connects the two concepts and
       makes available the theorems for topologies for use with metric spaces.
       (Contributed by Mario Carneiro, 24-Aug-2015.) $)
    mopntopon $p |- ( D e. ( *Met ` X ) -> J e. ( TopOn ` X ) ) $=
      ( cxmt cfv wcel cbl crn ctg ctopon mopnval cuni ctb blbas tgtopon unirnbl
      syl fveq2d eleqtrd eqeltrd ) ACEFGZBAHFIZJFZCKFZABCDLUBUDUCMZKFZUEUBUCNGU
      DUGGACOUCPRUBUFCKACQSTUA $.

    $( The set of open sets of a metric space is a topology.  (Contributed by
       NM, 28-Aug-2006.)  (Revised by Mario Carneiro, 12-Nov-2013.) $)
    mopntop $p |- ( D e. ( *Met ` X ) -> J e. Top ) $=
      ( cxmt cfv wcel ctopon ctop mopntopon topontop syl ) ACEFGBCHFGBIGABCDJCB
      KL $.

    $( The union of all open sets in a metric space is its underlying set.
       (Contributed by NM, 4-Sep-2006.)  (Revised by Mario Carneiro,
       12-Nov-2013.) $)
    mopnuni $p |- ( D e. ( *Met ` X ) -> X = U. J ) $=
      ( cxmt cfv wcel ctopon cuni wceq mopntopon toponuni syl ) ACEFGBCHFGCBIJA
      BCDKCBLM $.

    $( The defining property of an open set of a metric space.  (Contributed by
       NM, 1-Sep-2006.)  (Revised by Mario Carneiro, 12-Nov-2013.) $)
    elmopn $p |- ( D e. ( *Met ` X ) -> ( A e. J <->
   ( A C_ X /\ A. x e. A E. y e. ran ( ball ` D ) ( x e. y /\ y C_ A ) ) ) ) $=
      ( cxmt cfv wcel cbl crn ctg cuni wss cv wa wrex wral ctb mopnval wb blbas
      eleq2d eltg2 syl unirnbl sseq2d anbi1d 3bitrd ) DFHIJZCEJCDKILZMIZJZCULNZ
      OZAPBPZJUQCOQBULRACSZQZCFOZURQUKEUMCDEFGUAUDUKULTJUNUSUBDFUCABCULTUEUFUKU
      PUTURUKUOFCDFUGUHUIUJ $.

    $( The family of open sets of a metric space is a collection of subsets of
       the base set.  (Contributed by NM, 3-Sep-2006.)  (Revised by Mario
       Carneiro, 12-Nov-2013.) $)
    mopnfss $p |- ( D e. ( *Met ` X ) -> J C_ ~P X ) $=
      ( cxmt cfv wcel cuni cpw pwuni mopnuni pweqd syl5sseqr ) ACEFGZBHZIBCIBJN
      COABCDKLM $.

    $( The base set of a metric space is open.  Part of Theorem T1 of
       [Kreyszig] p. 19.  (Contributed by NM, 4-Sep-2006.)  (Revised by Mario
       Carneiro, 12-Nov-2013.) $)
    mopnm $p |- ( D e. ( *Met ` X ) -> X e. J ) $=
      ( cxmt cfv wcel ctopon mopntopon toponmax syl ) ACEFGBCHFGCBGABCDICBJK $.

    $( A defining property of an open set of a metric space.  (Contributed by
       NM, 5-May-2007.)  (Revised by Mario Carneiro, 12-Nov-2013.) $)
    elmopn2 $p |- ( D e. ( *Met ` X ) -> ( A e. J <-> ( A C_ X /\
           A. x e. A E. y e. RR+ ( x ( ball ` D ) y ) C_ A ) ) ) $=
      ( vz cxmt cfv wcel wss cv wa cbl crn wrex wral co crp elmopn ssel2 blssex
      wb sylan2 anassrs ralbidva pm5.32da bitrd ) DFIJKZCEKCFLZAMZHMZKUMCLNHDOJ
      ZPQZACRZNUKULBMUNSCLBTQZACRZNAHCDEFGUAUJUKUPURUJUKNUOUQACUJUKULCKZUOUQUDZ
      UKUSNUJULFKUTCFULUBHCDULFBUCUEUFUGUHUI $.

    $( An open set of a metric space is a subspace of its base set.
       (Contributed by NM, 3-Sep-2006.) $)
    mopnss $p |- ( ( D e. ( *Met ` X ) /\ A e. J ) -> A C_ X ) $=
      ( cxmt cfv wcel ctopon wss mopntopon toponss sylan ) BDFGHCDIGHACHADJBCDE
      KACDLM $.
  $}

  ${
    $d f x D $.  $d f x J $.  $d f K $.  $d f x X $.
    isms.j $e |- J = ( TopOpen ` K ) $.
    isms.x $e |- X = ( Base ` K ) $.
    isms.d $e |- D = ( ( dist ` K ) |` ( X X. X ) ) $.
    $( Express the predicate " ` <. X , D >. ` is an extended metric space"
       with underlying set ` X ` and distance function ` D ` .  (Contributed by
       Mario Carneiro, 2-Sep-2015.) $)
    isxms $p |- ( K e. *MetSp <-> ( K e. TopSp /\ J = ( MetOpen ` D ) ) ) $=
      ( vf cv ctopn cfv cds cbs cxp cres cmopn wceq ctps fveq2 syl6eqr reseq12d
      cxme sqxpeqd fveq2d eqeq12d df-xms elrab2 ) HIZJKZUHLKZUHMKZUKNZOZPKZQBAP
      KZQHCRUBUHCQZUIBUNUOUPUICJKBUHCJSETUPUMAPUPUMCLKZDDNZOAUPUJUQULURUHCLSUPU
      KDUPUKCMKDUHCMSFTUCUAGTUDUEHUFUG $.

    $( Express the predicate " ` <. X , D >. ` is an extended metric space"
       with underlying set ` X ` and distance function ` D ` .  (Contributed by
       Mario Carneiro, 2-Sep-2015.) $)
    isxms2 $p |- ( K e. *MetSp <->
        ( D e. ( *Met ` X ) /\ J = ( MetOpen ` D ) ) ) $=
      ( vx wcel cmopn cfv wceq wa cxmt ctopon cdm crn cuni adantl syl cxme ctps
      isxms istps cv cbl df-mopn dmmptss toponmax simpl elfvdm sseldi xmetunirn
      eleqtrd sylib eqid mopntopon eqeltrd toponuni eqtr4d fveq2d eleq1 syl5ibr
      ctg ex impbid syl5bb pm5.32ri bitri ) CUAICUBIZBAJKZLZMADNKZIZVLMABCDEFGU
      CVLVJVNVJBDOKZIZVLVNDBCFEUDVLVPVNVLVPVNVLVPMZAAPPZNKZVMVQANQRZIAVSIZVQJPZ
      VTAHVTHUEUFKQVDKJHUGUHVQDVKIAWBIVQDBVKVPDBIVLDBUISVLVPUJZUNDAJUKTULAUMUOZ
      VQVRDNVQVRBRZDVQBVROKZIVRWELVQBVKWFWCVQWAVKWFIWDAVKVRVKUPZUQTURVRBUSTVPDW
      ELVLDBUSSUTVAUNVEVNVPVLVKVOIAVKDWGUQBVKVOVBVCVFVGVHVI $.

    $( Express the predicate " ` <. X , D >. ` is a metric space" with
       underlying set ` X ` and distance function ` D ` .  (Contributed by NM,
       27-Aug-2006.)  (Revised by Mario Carneiro, 24-Aug-2015.) $)
    isms $p |- ( K e. MetSp <-> ( K e. *MetSp /\ D e. ( Met ` X ) ) ) $=
      ( vf cv cds cfv cbs cxp cres cme wcel cxme cmt fveq2 syl6eqr wceq sqxpeqd
      reseq12d fveq2d eleq12d df-ms elrab2 ) HIZJKZUHLKZUJMZNZUJOKZPADOKZPHCQRU
      HCUAZULAUMUNUOULCJKZDDMZNAUOUIUPUKUQUHCJSUOUJDUOUJCLKDUHCLSFTZUBUCGTUOUJD
      OURUDUEHUFUG $.

    $( Express the predicate " ` <. X , D >. ` is a metric space" with
       underlying set ` X ` and distance function ` D ` .  (Contributed by NM,
       27-Aug-2006.)  (Revised by Mario Carneiro, 24-Aug-2015.) $)
    isms2 $p |- ( K e. MetSp <->
        ( D e. ( Met ` X ) /\ J = ( MetOpen ` D ) ) ) $=
      ( cxme wcel cme cfv wa cxmt cmopn wceq cmt isxms2 anbi1i isms metxmet
      pm4.71ri an32 bitri 3bitr4i ) CHIZADJKIZLADMKIZBANKOZLZUFLZCPIUFUHLZUEUIU
      FABCDEFGQRABCDEFGSUKUGUFLZUHLUJUFULUHUFUGADTUARUGUFUHUBUCUD $.

    $( The topology component of a metric space coincides with the topology
       generated by the metric component.  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    xmstopn $p |- ( K e. *MetSp -> J = ( MetOpen ` D ) ) $=
      ( cxme wcel ctps cmopn cfv wceq isxms simprbi ) CHICJIBAKLMABCDEFGNO $.

    $( The topology component of a metric space coincides with the topology
       generated by the metric component.  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    mstopn $p |- ( K e. MetSp -> J = ( MetOpen ` D ) ) $=
      ( cmt wcel cme cfv cmopn wceq isms2 simprbi ) CHIADJKIBALKMABCDEFGNO $.
  $}

  $( A metric space is a topological space.  (Contributed by Mario Carneiro,
     26-Aug-2015.) $)
  xmstps $p |- ( M e. *MetSp -> M e. TopSp ) $=
    ( cxme wcel ctps ctopn cfv cds cbs cxp cres cmopn wceq eqid isxms simplbi )
    ABCADCAEFZAGFAHFZQIJZKFLRPAQPMQMRMNO $.

  $( A metric space is a topological space.  (Contributed by Mario Carneiro,
     26-Aug-2015.) $)
  msxms $p |- ( M e. MetSp -> M e. *MetSp ) $=
    ( cmt wcel cxme cds cfv cbs cxp cres cme ctopn eqid isms simplbi ) ABCADCAE
    FAGFZOHIZOJFCPAKFZAOQLOLPLMN $.

  $( A metric space is a topological space.  (Contributed by Mario Carneiro,
     26-Aug-2015.) $)
  mstps $p |- ( M e. MetSp -> M e. TopSp ) $=
    ( cmt wcel cxme ctps msxms xmstps syl ) ABCADCAECAFAGH $.

  ${
    msf.x $e |- X = ( Base ` M ) $.
    msf.d $e |- D = ( ( dist ` M ) |` ( X X. X ) ) $.
    $( The distance function, suitably truncated, is a metric on ` X ` .
       (Contributed by Mario Carneiro, 2-Sep-2015.) $)
    xmsxmet $p |- ( M e. *MetSp -> D e. ( *Met ` X ) ) $=
      ( cxme wcel cxmt cfv ctopn cmopn wceq eqid isxms2 simplbi ) BFGACHIGBJIZA
      KILAPBCPMDENO $.

    $( The distance function, suitably truncated, is a metric on ` X ` .
       (Contributed by Mario Carneiro, 12-Nov-2013.) $)
    msmet $p |- ( M e. MetSp -> D e. ( Met ` X ) ) $=
      ( cmt wcel cme cfv ctopn cmopn wceq eqid isms2 simplbi ) BFGACHIGBJIZAKIL
      APBCPMDENO $.

    $( Mapping of the distance function of a metric space.  (Contributed by NM,
       30-Aug-2006.)  (Revised by Mario Carneiro, 12-Nov-2013.) $)
    msf $p |- ( M e. MetSp -> D : ( X X. X ) --> RR ) $=
      ( cmt wcel cme cfv cxp cr wf msmet metf syl ) BFGACHIGCCJKALABCDEMACNO $.
  $}

  ${
    mscl.x $e |- X = ( Base ` M ) $.
    mscl.d $e |- D = ( dist ` M ) $.
    $( The distance function, suitably truncated, is a metric on ` X ` .
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    xmsxmet2 $p |- ( M e. *MetSp -> ( D |` ( X X. X ) ) e. ( *Met ` X ) ) $=
      ( cxp cres cds cfv reseq1i xmsxmet ) ACCFZGBCDABHILEJK $.

    $( The distance function, suitably truncated, is a metric on ` X ` .
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    msmet2 $p |- ( M e. MetSp -> ( D |` ( X X. X ) ) e. ( Met ` X ) ) $=
      ( cxp cres cds cfv reseq1i msmet ) ACCFZGBCDABHILEJK $.

    $( Closure of the distance function of a metric space.  (Contributed by NM,
       30-Aug-2006.)  (Revised by Mario Carneiro, 2-Oct-2015.) $)
    mscl $p |- ( ( M e. MetSp /\ A e. X /\ B e. X ) -> ( A D B ) e. RR ) $=
      ( cmt wcel w3a cxp cres co cr wceq ovres 3adant1 cme cfv msmet2 eqeltrrd
      metcl syl3an1 ) DHIZAEIZBEIZJABCEEKLZMZABCMZNUEUFUHUIOUDABEECPQUDUGERSIUE
      UFUHNICDEFGTABUGEUBUCUA $.

    $( Closure of the distance function of an extended metric space.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    xmscl $p |- ( ( M e. *MetSp /\ A e. X /\ B e. X ) -> ( A D B ) e. RR* ) $=
      ( cxme wcel w3a cxp cres co cxr wceq ovres 3adant1 cxmt cfv xmsxmet2
      xmetcl syl3an1 eqeltrrd ) DHIZAEIZBEIZJABCEEKLZMZABCMZNUEUFUHUIOUDABEECPQ
      UDUGERSIUEUFUHNICDEFGTABUGEUAUBUC $.

    $( The distance function in an extended metric space is nonnegative.
       (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    xmsge0 $p |- ( ( M e. *MetSp /\ A e. X /\ B e. X ) ->
                   0 <_ ( A D B ) ) $=
      ( cxme wcel w3a cc0 cxp cres co cle cxmt cfv wbr xmsxmet2 xmetge0 syl3an1
      wceq ovres 3adant1 breqtrd ) DHIZAEIZBEIZJKABCEELMZNZABCNZOUFUIEPQIUGUHKU
      JORCDEFGSABUIETUAUGUHUJUKUBUFABEECUCUDUE $.

    $( The distance function in an extended metric space is symmetric.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    xmseq0 $p |- ( ( M e. *MetSp /\ A e. X /\ B e. X ) ->
                   ( ( A D B ) = 0 <-> A = B ) ) $=
      ( cxme wcel w3a cxp cres co cc0 wceq ovres 3adant1 eqeq1d cxmt cfv bitr3d
      wb xmsxmet2 xmeteq0 syl3an1 ) DHIZAEIZBEIZJZABCEEKLZMZNOZABCMZNOABOZUIUKU
      MNUGUHUKUMOUFABEECPQRUFUJESTIUGUHULUNUBCDEFGUCABUJEUDUEUA $.

    $( The distance function in an extended metric space is symmetric.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    xmssym $p |- ( ( M e. *MetSp /\ A e. X /\ B e. X ) ->
                   ( A D B ) = ( B D A ) ) $=
      ( cxme wcel w3a cxp cres co cxmt cfv wceq xmsxmet2 xmetsym syl3an1 ovresd
      simp2 simp3 3eqtr3d ) DHIZAEIZBEIZJZABCEEKLZMZBAUHMZABCMBACMUDUHENOIUEUFU
      IUJPCDEFGQABUHERSUGABCEUDUEUFUAZUDUEUFUBZTUGBACEULUKTUC $.

    $( Triangle inequality for the distance function of an extended metric.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    xmstri2 $p |- ( ( M e. *MetSp /\ ( C e. X /\ A e. X /\ B e. X ) )
                 -> ( A D B ) <_ ( ( C D A ) +e ( C D B ) ) ) $=
      ( cxme wcel w3a wa cxp cres co cxad cle cxmt cfv ovresd xmsxmet2 xmettri2
      wbr sylan simpr2 simpr3 simpr1 oveq12d 3brtr3d ) EIJZCFJZAFJZBFJZKZLZABDF
      FMNZOZCAUPOZCBUPOZPOZABDOCADOZCBDOZPOQUJUPFRSJUNUQUTQUCDEFGHUAABCUPFUBUDU
      OABDFUJUKULUMUEZUJUKULUMUFZTUOURVAUSVBPUOCADFUJUKULUMUGZVCTUOCBDFVEVDTUHU
      I $.

    $( Triangle inequality for the distance function of a metric space.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    mstri2 $p |- ( ( M e. MetSp /\ ( C e. X /\ A e. X /\ B e. X ) )
                 -> ( A D B ) <_ ( ( C D A ) + ( C D B ) ) ) $=
      ( cmt wcel w3a wa cxp cres co caddc cle cme cfv ovresd wbr msmet2 mettri2
      sylan simpr2 simpr3 simpr1 oveq12d 3brtr3d ) EIJZCFJZAFJZBFJZKZLZABDFFMNZ
      OZCAUPOZCBUPOZPOZABDOCADOZCBDOZPOQUJUPFRSJUNUQUTQUADEFGHUBABCUPFUCUDUOABD
      FUJUKULUMUEZUJUKULUMUFZTUOURVAUSVBPUOCADFUJUKULUMUGZVCTUOCBDFVEVDTUHUI $.

    $( Triangle inequality for the distance function of a metric space.
       Definition 14-1.1(d) of [Gleason] p. 223.  (Contributed by Mario
       Carneiro, 2-Oct-2015.) $)
    xmstri $p |- ( ( M e. *MetSp /\ ( A e. X /\ B e. X /\ C e. X ) )
              -> ( A D B ) <_ ( ( A D C ) +e ( C D B ) ) ) $=
      ( cxme wcel w3a wa cxp cres co cxad cle cxmt cfv ovresd wbr xmettri sylan
      xmsxmet2 simpr1 simpr2 simpr3 oveq12d 3brtr3d ) EIJZAFJZBFJZCFJZKZLZABDFF
      MNZOZACUPOZCBUPOZPOZABDOACDOZCBDOZPOQUJUPFRSJUNUQUTQUADEFGHUDABCUPFUBUCUO
      ABDFUJUKULUMUEZUJUKULUMUFZTUOURVAUSVBPUOACDFVCUJUKULUMUGZTUOCBDFVEVDTUHUI
      $.

    $( Triangle inequality for the distance function of a metric space.
       Definition 14-1.1(d) of [Gleason] p. 223.  (Contributed by Mario
       Carneiro, 2-Oct-2015.) $)
    mstri $p |- ( ( M e. MetSp /\ ( A e. X /\ B e. X /\ C e. X ) )
              -> ( A D B ) <_ ( ( A D C ) + ( C D B ) ) ) $=
      ( cmt wcel w3a wa cxp cres co caddc cle cme cfv ovresd wbr msmet2 oveq12d
      mettri sylan simpr1 simpr2 simpr3 3brtr3d ) EIJZAFJZBFJZCFJZKZLZABDFFMNZO
      ZACUPOZCBUPOZPOZABDOACDOZCBDOZPOQUJUPFRSJUNUQUTQUADEFGHUBABCUPFUDUEUOABDF
      UJUKULUMUFZUJUKULUMUGZTUOURVAUSVBPUOACDFVCUJUKULUMUHZTUOCBDFVEVDTUCUI $.

    $( Triangle inequality for the distance function of an extended metric.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    xmstri3 $p |- ( ( M e. *MetSp /\ ( A e. X /\ B e. X /\ C e. X ) )
                 -> ( A D B ) <_ ( ( A D C ) +e ( B D C ) ) ) $=
      ( cxme wcel w3a wa cxp cres co cxad cle cxmt cfv ovresd xmsxmet2 xmettri3
      wbr sylan simpr1 simpr2 simpr3 oveq12d 3brtr3d ) EIJZAFJZBFJZCFJZKZLZABDF
      FMNZOZACUPOZBCUPOZPOZABDOACDOZBCDOZPOQUJUPFRSJUNUQUTQUCDEFGHUAABCUPFUBUDU
      OABDFUJUKULUMUEZUJUKULUMUFZTUOURVAUSVBPUOACDFVCUJUKULUMUGZTUOBCDFVDVETUHU
      I $.

    $( Triangle inequality for the distance function of a metric space.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    mstri3 $p |- ( ( M e. MetSp /\ ( A e. X /\ B e. X /\ C e. X ) )
              -> ( A D B ) <_ ( ( A D C ) + ( B D C ) ) ) $=
      ( cmt wcel w3a wa cxp cres co caddc cle cme cfv ovresd wbr msmet2 mettri3
      sylan simpr1 simpr2 simpr3 oveq12d 3brtr3d ) EIJZAFJZBFJZCFJZKZLZABDFFMNZ
      OZACUPOZBCUPOZPOZABDOACDOZBCDOZPOQUJUPFRSJUNUQUTQUADEFGHUBABCUPFUCUDUOABD
      FUJUKULUMUEZUJUKULUMUFZTUOURVAUSVBPUOACDFVCUJUKULUMUGZTUOBCDFVDVETUHUI $.

    $( Reverse triangle inequality for the distance function of a metric space.
       (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    msrtri $p |- ( ( M e. MetSp /\ ( A e. X /\ B e. X /\ C e. X ) )
              -> ( abs ` ( ( A D C ) - ( B D C ) ) ) <_ ( A D B ) ) $=
      ( cmt wcel w3a wa cxp cres co cmin cabs cfv cle ovresd cme msmet2 metrtri
      wbr sylan simpr1 simpr3 simpr2 oveq12d fveq2d 3brtr3d ) EIJZAFJZBFJZCFJZK
      ZLZACDFFMNZOZBCUROZPOZQRZABUROZACDOZBCDOZPOZQRABDOSULURFUARJUPVBVCSUDDEFG
      HUBABCURFUCUEUQVAVFQUQUSVDUTVEPUQACDFULUMUNUOUFZULUMUNUOUGZTUQBCDFULUMUNU
      OUHZVHTUIUJUQABDFVGVITUK $.
  $}

  ${
    xmspropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    xmspropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    xmspropd.3 $e |- ( ph ->
      ( ( dist ` K ) |` ( B X. B ) ) = ( ( dist ` L ) |` ( B X. B ) ) ) $.
    xmspropd.4 $e |- ( ph -> ( TopOpen ` K ) = ( TopOpen ` L ) ) $.
    $( Property deduction for an extended metric space.  (Contributed by Mario
       Carneiro, 4-Oct-2015.) $)
    xmspropd $p |- ( ph -> ( K e. *MetSp <-> L e. *MetSp ) ) $=
      ( ctps wcel ctopn cfv cds cbs cxp cres cmopn wceq eqtr3d eqid wa tpspropd
      cxme sqxpeqd reseq2d fveq2d eqeq12d anbi12d isxms 3bitr4g ) ACIJZCKLZCMLZ
      CNLZUNOZPZQLZRZUADIJZDKLZDMLZDNLZVBOZPZQLZRZUACUCJDUCJAUKUSURVFACDABUNVBE
      FSHUBAULUTUQVEHAUPVDQAVABBOZPZUPVDAUMVGPVHUPGAVGUOUMABUNEUDUESAVGVCVAABVB
      FUDUESUFUGUHUPULCUNULTUNTUPTUIVDUTDVBUTTVBTVDTUIUJ $.

    $( Property deduction for a metric space.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    mspropd $p |- ( ph -> ( K e. MetSp <-> L e. MetSp ) ) $=
      ( cxme wcel cds cfv cbs cxp cres cme wa cmt eqtr3d eqid fveq2d ctopn isms
      xmspropd sqxpeqd reseq2d eleq12d anbi12d 3bitr4g ) ACIJZCKLZCMLZULNZOZULP
      LZJZQDIJZDKLZDMLZUSNZOZUSPLZJZQCRJDRJAUJUQUPVCABCDEFGHUDAUNVAUOVBAURBBNZO
      ZUNVAAUKVDOVEUNGAVDUMUKABULEUEUFSAVDUTURABUSFUEUFSAULUSPABULUSEFSUAUGUHUN
      CUBLZCULVFTULTUNTUCVADUBLZDUSVGTUSTVATUCUI $.
  $}

  ${
    setsms.x $e |- ( ph -> X = ( Base ` M ) ) $.
    setsms.d $e |- ( ph -> D = ( ( dist ` M ) |` ( X X. X ) ) ) $.
    setsms.k $e |- ( ph -> K =
      ( M sSet <. ( TopSet ` ndx ) , ( MetOpen ` D ) >. ) ) $.
    $( The base set of a constructed metric space.  (Contributed by Mario
       Carneiro, 28-Aug-2015.) $)
    setsmsbas $p |- ( ph -> X = ( Base ` K ) ) $=
      ( cbs cfv cnx cts cmopn cop csts co baseid wne c1 c9 1lt9 basendx tsetndx
      1re ltneii neeq12i mpbir setsnid fveq2d 3eqtr4a ) ADIJDKLJZBMJZNOPZIJECIJ
      ULUKIDQKIJZUKRSTRSTUDUAUEUNSUKTUBUCUFUGUHFACUMIHUIUJ $.

    $( The distance function of a constructed metric space.  (Contributed by
       Mario Carneiro, 28-Aug-2015.) $)
    setsmsds $p |- ( ph -> ( dist ` M ) = ( dist ` K ) ) $=
      ( cds cfv cnx cts cmopn cop csts co wne c1 c2 c9 fveq2d dsid cdc 9re 2nn0
      1nn 9nn0 9lt10 declti gtneii dsndx tsetndx neeq12i mpbir setsnid syl6reqr
      ) ACIJDKLJZBMJZNOPZIJDIJACUSIHUAURUQIDUBKIJZUQQRSUCZTQTVAUDRSTUFUEUGUHUIU
      JUTVAUQTUKULUMUNUOUP $.

    setsms.m $e |- ( ph -> M e. V ) $.
    $( The topology of a constructed metric space.  (Contributed by Mario
       Carneiro, 28-Aug-2015.) $)
    setsmstset $p |- ( ph -> ( MetOpen ` D ) = ( TopSet ` K ) ) $=
      ( cmopn cfv cnx cts cop csts co wcel cvv wceq tsetid setsid fveq2d eqtr4d
      fvex sylancl ) ABKLZDMNLUGOPQZNLZCNLADERUGSRUGUITJBKUEEUGNSDUAUBUFACUHNIU
      CUD $.

    $d x D $.  $d x M $.  $d x V $.  $d x X $.
    $( The topology of a constructed metric space.  (Contributed by Mario
       Carneiro, 28-Aug-2015.) $)
    setsmstopn $p |- ( ph -> ( MetOpen ` D ) = ( TopOpen ` K ) ) $=
      ( vx cmopn cfv cpw wss wceq cdm wcel eqid syl cts setsmstset cbs cxmt crn
      ctopn cuni cv cbl ctg df-mopn dmmptss sseli simpr xmetunirn sylib mopnuni
      cxp cds cin cres dmeqd dmres syl6eq inss1 syl6eqss dmxpid syl6sseq adantr
      wa dmss eqsstr3d sspwuni sylibr ex syl5 wn ndmfv pm2.61d1 setsmsbas pweqd
      c0 0ss 3sstr3d topnid eqtrd ) ABLMZCUAMZCUFMZABCDEFGHIJUBZAWHCUCMZNZOWHWI
      PAWGFNZWHWLABLQZRZWGWMOZWOBUDUEUGZRZAWPWNWQBKWQKUHUIMUEUJMLKUKULUMAWRWPAW
      RVJZWGUGZFOWPWSWTBQZQZFWSBXBUDMRZXBWTPWSWRXCAWRUNBUOUPBWGXBWGSUQTAXBFOWRA
      XBFFURZQZFAXAXDOXBXEOAXAXDDUSMZQZUTZXDAXAXFXDVAZQXHABXIHVBXFXDVCVDXDXGVEV
      FXAXDVKTFVGVHVIVLWGFVMVNVOVPWOVQWGWBWMBLVRWMWCVFVSWJAFWKABCDFGHIVTWAWDWKW
      HCWKSWHSWETWF $.

    $( The constructed metric space is a metric space iff the provided distance
       function is a metric.  (Contributed by Mario Carneiro, 28-Aug-2015.) $)
    setsxms $p |- ( ph -> ( K e. *MetSp <-> D e. ( *Met ` X ) ) ) $=
      ( cxme wcel cds cfv cxp cres cxmt cmopn fveq2d eqid ctopn wceq setsmstopn
      cbs setsmsds setsmsbas sqxpeqd reseq12d eqtrd eqtr3d isxms2 rbaib eleq12d
      wb syl bitr4d ) ACKLZCMNZCUDNZUSOZPZUSQNZLZBFQNZLACUANZVARNZUBZUQVCUNABRN
      VEVFABCDEFGHIJUCABVARABDMNZFFOZPVAHAVHURVIUTABCDFGHIUEAFUSABCDFGHIUFZUGUH
      UIZSUJUQVCVGVAVECUSVETUSTVATUKULUOABVAVDVBVKAFUSQVJSUMUP $.

    $( The constructed metric space is a metric space iff the provided distance
       function is a metric.  (Contributed by Mario Carneiro, 28-Aug-2015.) $)
    setsms $p |- ( ph -> ( K e. MetSp <-> D e. ( Met ` X ) ) ) $=
      ( cxme wcel cds cfv cbs cxp cres cme wa eqid cmt setsxms setsmsds sqxpeqd
      cxmt setsmsbas reseq12d eqtr2d fveq2d eqcomd eleq12d anbi12d isms metxmet
      ctopn pm4.71ri 3bitr4g ) ACKLZCMNZCONZUTPZQZUTRNZLZSBFUENLZBFRNZLZSCUALVG
      AURVEVDVGABCDEFGHIJUBAVBBVCVFABDMNZFFPZQVBHAVHUSVIVAABCDFGHIUCAFUTABCDFGH
      IUFZUDUGUHAVFVCAFUTRVJUIUJUKULVBCUONZCUTVKTUTTVBTUMVGVEBFUNUPUQ $.
  $}

  ${
    $d d D $.  $d d M $.  $d d X $.
    tmsval.m $e |- M =
      { <. ( Base ` ndx ) , X >. , <. ( dist ` ndx ) , D >. } $.
    tmsval.k $e |- K = ( toMetSp ` D ) $.
    $( For any metric there is an associated metric space.  (Contributed by
       Mario Carneiro, 2-Sep-2015.) $)
    tmsval $p |- ( D e. ( *Met ` X ) ->
      K = ( M sSet <. ( TopSet ` ndx ) , ( MetOpen ` D ) >. ) ) $=
      ( vd cxmt cfv ctmt cnx cmopn cop csts co cdm cpr wceq dmeqd opeq2d cts cv
      wcel cbs cds crn cuni cvv cmpt df-tms a1i wa dmeq cxp cxr wf xmetf dmxpid
      fdm syl6eq sylan9eqr simpr preq12d syl6eqr fveq2d oveq12d fvssunirn sseli
      syl ovexd fvmptd syl5eq ) ADHIZUCZBAJICKUAIZALIZMZNOZFVNGAKUDIZGUBZPZPZMZ
      KUEIZVTMZQZVOVTLIZMZNOZVRHUFUGZJUHJGWJWIUIRVNGUJUKVNVTARZULZWFCWHVQNWLWFV
      SDMZWDAMZQCWLWCWMWEWNWLWBDVSWKVNWBAPZPZDWKWAWOVTAUMSVNWPDDUNZPDVNWOWQVNWQ
      UOAUPWOWQRADUQWQUOAUSVISDURUTVATWLVTAWDVNWKVBZTVCEVDWLWGVPVOWLVTALWRVETVF
      VMWJAHDVGVHVNCVQNVJVKVL $.

    $( Lemma for ~ tmsbas , ~ tmsds , and ~ tmstopn .  (Contributed by Mario
       Carneiro, 2-Sep-2015.) $)
    tmslem $p |- ( D e. ( *Met ` X ) -> ( X = ( Base ` K ) /\
        D = ( dist ` K ) /\ ( MetOpen ` D ) = ( TopOpen ` K ) ) ) $=
      ( cxmt cfv wcel cbs wceq cds c1 c2 df-ds 1nn0 cres cxr cvv cnx cdm elfvdm
      cmopn ctopn cdc 1nn 1lt10 declti 2nn decnncl 2strbas syl cxp wf wfn xmetf
      2nn0 ffn fnresdm 3syl 2strop reseq1d eqtr3d tmsval setsmsbas setsmsds cop
      eqtrd cpr prex eqeltri a1i setsmstopn 3jca ) ADGHZIZDBJHKABLHZKAUCHBUDHKV
      PABCDVPDGUAZIDCJHKADGUBDALCMNUEZVREOMNMUFUQPUGUHZMNPUIUJZUKULZVPADDUMZQZA
      CLHZWCQVPWCRAUNAWCUOWDAKADUPWCRAURWCAUSUTVPAWEWCDALCVSVOEOVTWAVAZVBVCZABC
      DEFVDZVEVPAWEVQWFVPABCDWBWGWHVFVHVPABCSDWBWGWHCSIVPCTJHDVGZTLHAVGZVISEWIW
      JVJVKVLVMVN $.
  $}

  ${
    tmsbas.k $e |- K = ( toMetSp ` D ) $.
    $( The base set of a constructed metric space.  (Contributed by Mario
       Carneiro, 2-Sep-2015.) $)
    tmsbas $p |- ( D e. ( *Met ` X ) -> X = ( Base ` K ) ) $=
      ( cxmt cfv wcel cbs wceq cds cmopn ctopn cnx cop cpr eqid tmslem simp1d )
      ACEFGCBHFIABJFIAKFBLFIABMHFCNMJFANOZCSPDQR $.

    $( The metric of a constructed metric space.  (Contributed by Mario
       Carneiro, 2-Sep-2015.) $)
    tmsds $p |- ( D e. ( *Met ` X ) -> D = ( dist ` K ) ) $=
      ( cxmt cfv wcel cbs wceq cds cmopn ctopn cnx cop cpr eqid tmslem simp2d )
      ACEFGCBHFIABJFIAKFBLFIABMHFCNMJFANOZCSPDQR $.

    ${
      tmstopn.j $e |- J = ( MetOpen ` D ) $.
      $( The topology of a constructed metric.  (Contributed by Mario Carneiro,
         2-Sep-2015.) $)
      tmstopn $p |- ( D e. ( *Met ` X ) -> J = ( TopOpen ` K ) ) $=
        ( cxmt cfv wcel cmopn ctopn cbs wceq cds cnx cop cpr eqid tmslem simp3d
        syl5eq ) ADGHIZBAJHZCKHZFUBDCLHMACNHMUCUDMACOLHDPONHAPQZDUERESTUA $.
    $}

    $( The constructed metric space is an extended metric space.  (Contributed
       by Mario Carneiro, 2-Sep-2015.) $)
    tmsxms $p |- ( D e. ( *Met ` X ) -> K e. *MetSp ) $=
      ( cxmt cfv wcel cds cbs cxp cres ctopn cmopn wceq cxme wss tmsds cxr eqid
      fveq2d tmsbas eleq12d ibi ssid xmetres2 sylancl wf wfn xmetf fnresdm 4syl
      ffn eqtr4d tmstopn eqtr2d isxms2 sylanbrc ) ACEFZGZBHFZBIFZVAJZKZVAEFZGZB
      LFZVCMFZNBOGUSUTVDGZVAVAPVEUSVHUSAUTURVDABCDQZUSCVAEABCDUATUBUCZVAUDUTVAV
      AUEUFUSVGAMFZVFUSVCAMUSVCUTAUSVHVBRUTUGUTVBUHVCUTNVJUTVAUIVBRUTULVBUTUJUK
      VIUMTAVKBCDVKSUNUOVCVFBVAVFSVASVCSUPUQ $.

    $( The constructed metric space is a metric space given a metric.
       (Contributed by Mario Carneiro, 2-Sep-2015.) $)
    tmsms $p |- ( D e. ( Met ` X ) -> K e. MetSp ) $=
      ( cme cfv wcel cxme cds cbs cxp cres cmt cxmt metxmet tmsxms syl wss wceq
      eqid tmsds tmsbas fveq2d eleq12d ssid metres2 sylancl ctopn isms sylanbrc
      ibi ) ACEFZGZBHGZBIFZBJFZUPKLZUPEFZGZBMGUMACNFGZUNACOZABCDPQUMUOURGZUPUPR
      USUMVBUMAUOULURUMUTAUOSVAABCDUAQUMCUPEUMUTCUPSVAABCDUBQUCUDUKUPUEUOUPUPUF
      UGUQBUHFZBUPVCTUPTUQTUIUJ $.
  $}

  ${
    $d x D $.  $d x E $.  $d r x y z F $.  $d x P $.  $d r x y ph $.  $d x S $.
    $d r y z B $.  $d r x y R $.  $d r x y z U $.  $d r x y z V $.
    imasf1obl.u $e |- ( ph -> U = ( F "s R ) ) $.
    imasf1obl.v $e |- ( ph -> V = ( Base ` R ) ) $.
    imasf1obl.f $e |- ( ph -> F : V -1-1-onto-> B ) $.
    ${
      imasf1obl.r $e |- ( ph -> R e. Z ) $.
      imasf1obl.e $e |- E = ( ( dist ` R ) |` ( V X. V ) ) $.
      imasf1obl.d $e |- D = ( dist ` U ) $.
      imasf1obl.m $e |- ( ph -> E e. ( *Met ` V ) ) $.
      imasf1obl.x $e |- ( ph -> P e. V ) $.
      imasf1obl.s $e |- ( ph -> S e. RR* ) $.
      $( The image of a metric space ball.  (Contributed by Mario Carneiro,
         28-Aug-2015.) $)
      imasf1obl $p |- ( ph ->
          ( ( F ` P ) ( ball ` D ) S ) = ( F " ( P ( ball ` E ) S ) ) ) $=
        ( vx cfv cbl co ccnv cima cv wcel clt wbr wa wf1o wceq f1ocnvfv2 oveq2d
        sylan cimas adantr cbs cxmt wf f1ocnv ffvelrnda imasdsf1o eqtr3d breq1d
        syl f1of wb elbl2 syl22anc bitr4d pm5.32da imasf1oxmet ffvelrnd syl3anc
        cxr elbl wfn f1ofn elpreima 3syl 3bitr4d eqrdv imacnvcnv syl6eq ) ADIUB
        ZFCUCUBUDZIUEZUEDFHUCUBUDZUFZIWJUFAUAWHWKAUAUGZBUHZWGWLCUDZFUIUJZUKZWMW
        LWIUBZWJUHZUKZWLWHUHZWLWKUHZAWMWOWRAWMUKZWODWQHUDZFUIUJZWRXBWNXCFUIXBWG
        WQIUBZCUDWNXCXBXEWLWGCAJBIULZWMXEWLUMNJBWLIUNUPUOXBBCEGHIJDWQKAGIEUQUDU
        MWMLURAJEUSUBUMWMMURAXFWMNURAEKUHWMOURPQAHJUTUBUHZWMRURZADJUHZWMSURZABJ
        WLWIABJWIULZBJWIVAAXFXKNJBIVBVGZBJWIVHVGVCZVDVEVFXBXGFVQUHZXIWQJUHWRXDV
        IXHAXNWMTURXJXMWQHDFJVJVKVLVMACBUTUBUHWGBUHXNWTWPVIABCEGHIJKLMNOPQRVNAJ
        BDIAXFJBIVANJBIVHVGSVOTWLCWGFBVRVPAXKWIBVSXAWSVIXLBJWIVTBWLWJWIWAWBWCWD
        IWJWEWF $.
    $}

    ${
      imasf1oxms.r $e |- ( ph -> R e. *MetSp ) $.
      $( The image of a metric space is a metric space.  (Contributed by Mario
         Carneiro, 28-Aug-2015.) $)
      imasf1oxms $p |- ( ph -> U e. *MetSp ) $=
        ( vy vr cfv wcel wceq eqid syl co cxr wrex vx vz cds cbs cxp cres ctopn
        cxmt cmopn cxme xmsxmet sqxpeqd reseq2d fveq2d 3eltr4d imasf1oxmet wf1o
        wss f1ofo imasbas eleqtrd ssid xmetres2 sylancl imastopn xmstopn eqtr4d
        wfo cqtop oveq1d cbl crn ctg cuni blbas wb unirnbl f1oeq2 mpbird tgqtop
        ctb 3syl syl2anc mopnval wf wfn xmetf ffn fnresdm cv ccnv cima ad2antrr
        wa wf1 f1of1 cdm cnvimass f1odm syl5sseq simprl simprr syl3anc syl12anc
        blssm f1imaeq simplr foimacnv imasf1obl eqcomd eqeq12d bitr3d 2rexbidva
        cimas adantr f1ofn oveq1 eqeq2d rexbidv rexrn forn rexeqdv 3bitr2d blrn
        3bitr4d pm5.32da elqtop2 cpw blf frn sseld elpwi pm4.71rd eqrdv 3eqtr4d
        syl6 3eqtrd isxms2 sylanbrc ) ADUCMZDUDMZUUAUEZUFZUUAUHMZNZDUGMZUUCUIMZ
        ODUJNAYTUUDNZUUAUUAURUUEAYTBUHMZUUDABYTCDCUCMZFFUEZUFZEFUJGHIJUULPZYTPZ
        AUUJCUDMZUUOUEZUFZUUOUHMZUULFUHMZACUJNZUUQUURNJUUQCUUOUUOPZUUQPZUKQAUUK
        UUPUUJAFUUOHULUMZAFUUOUHHUNUOZUPZABUUAUHABCDEFUJGHAFBEUQZFBEVHZIFBEUSZQ
        ZJUTUNVAZUUAVBYTUUAUUAVCVDAUUFCUGMZEVIRUULUIMZEVIRZUUGABCDEUVKUUFFUJGHU
        VIJUVKPZUUFPZVEAUVKUVLEVIAUVKUUQUIMZUVLAUUTUVKUVPOJUUQUVKCUUOUVNUVAUVBV
        FQAUULUUQUIUVCUNVGVJAUULVKMZVLZVMMZEVIRZUVREVIRZVMMZUVMUUGAUVRWANZUVRVN
        ZBEUQZUVTUWBOAUULUUSNZUWCUVDUULFVOQZAUWEUVFIAUWFUWDFOUWEUVFVPUVDUULFVQU
        WDFBEVRWBVSZEUVRUWDBUWDPZVTWCAUVLUVSEVIAUWFUVLUVSOUVDUULUVLFUVLPWDQVJAY
        TUIMZYTVKMZVLZVMMZUUGUWBAYTUUINZUWJUWMOUVEYTUWJBUWJPWDQAUUCYTUIAUUBSYTW
        EZYTUUBWFUUCYTOAUUHUWOUVJYTUUAWGQUUBSYTWHUUBYTWIWBUNAUWAUWLVMAUAUWAUWLA
        UAWJZBURZEWKUWPWLZUVRNZWNZUWQUWPUWLNZWNUWPUWANZUXAAUWQUWSUXAAUWQWNZUWRK
        WJZLWJZUVQRZOZLSTKFTZUWPUBWJZUXEUWKRZOZLSTZUBBTZUWSUXAUXCUXHUWPUXDEMZUX
        EUWKRZOZLSTZKFTZUXLUBEVLZTZUXMUXCUXGUXPKLFSUXCUXDFNZUXESNZWNZWNZEUWRWLZ
        EUXFWLZOZUXGUXPUYDFBEWOZUWRFURUXFFURZUYGUXGVPUYDUVFUYHAUVFUWQUYCIWMZFBE
        WPQUYDEWQZUWRFEUWPWRUYDUVFUYKFOUYJFBEWSQWTUYDUWFUYAUYBUYIAUWFUWQUYCUVDW
        MZUXCUYAUYBXAZUXCUYAUYBXBZUULUXDUXEFXEXCFBUWRUXFEXFXDUYDUYEUWPUYFUXOUYD
        UVGUWQUYEUWPOUYDUVFUVGUYJUVHQAUWQUYCXGFBUWPEXHWCUYDUXOUYFUYDBYTUXDCUXED
        UULEFUJADECXNROUWQUYCGWMAFUUOOUWQUYCHWMUYJAUUTUWQUYCJWMUUMUUNUYLUYMUYNX
        IXJXKXLXMUXCUVFEFWFUXTUXRVPAUVFUWQIXOZFBEXPUXLUXQUBKFEUXIUXNOZUXKUXPLSU
        YPUXJUXOUWPUXIUXNUXEUWKXQXRXSXTWBUXCUXLUBUXSBUXCUVFUVGUXSBOUYOUVHFBEYAW
        BYBYCUXCUWFUWSUXHVPAUWFUWQUVDXOKUWRUULFLYDQUXCUWNUXAUXMVPAUWNUWQUVEXOUB
        UWPYTBLYDQYEYFAUWCUWDBEVHZUXBUWTVPUWGAUWEUYQUWHUWDBEUSQUWPEUVRWAUWDBUWI
        YGWCAUXAUWQAUXAUWPBYHZNUWQAUWLUYRUWPAUWNBSUEZUYRUWKWEUWLUYRURUVEYTBYIUY
        SUYRUWKYJWBYKUWPBYLYPYMYEYNUNYOYOYQUUCUUFDUUAUVOUUAPUUCPYRYS $.
    $}

    imasf1oms.r $e |- ( ph -> R e. MetSp ) $.
    $( The image of a metric space is a metric space.  (Contributed by Mario
       Carneiro, 28-Aug-2015.) $)
    imasf1oms $p |- ( ph -> U e. MetSp ) $=
      ( cxme wcel cds cfv cxp cres cme cmt syl eqid cbs msxms wss msmet sqxpeqd
      imasf1oxms reseq2d 3eltr4d imasf1omet wf1o wfo f1ofo imasbas eleqtrd ssid
      fveq2d metres2 sylancl ctopn isms sylanbrc ) ADKLDMNZDUANZVCOPZVCQNZLZDRL
      ABCDEFGHIACRLZCKLJCUBSUFAVBVELVCVCUCVFAVBBQNVEABVBCDCMNZFFOZPZEFRGHIJVJTV
      BTAVHCUANZVKOZPZVKQNZVJFQNAVGVMVNLJVMCVKVKTVMTUDSAVIVLVHAFVKHUEUGAFVKQHUP
      UHUIABVCQABCDEFRGHAFBEUJFBEUKIFBEULSJUMUPUNVCUOVBVCVCUQURVDDUSNZDVCVOTVCT
      VDTUTVA $.
  $}

  ${
    $d f x z A $.  $d x y B $.  $d f x z D $.  $d f x y z I $.  $d f x y z P $.
    $d f y z E $.  $d f x y ph $.  $d y z R $.  $d y S $.  $d y W $.  $d y Y $.
    prdsbl.y $e |- Y = ( S Xs_ ( x e. I |-> R ) ) $.
    prdsbl.b $e |- B = ( Base ` Y ) $.
    prdsbl.v $e |- V = ( Base ` R ) $.
    prdsbl.e $e |- E = ( ( dist ` R ) |` ( V X. V ) ) $.
    prdsbl.d $e |- D = ( dist ` Y ) $.
    prdsbl.s $e |- ( ph -> S e. W ) $.
    prdsbl.i $e |- ( ph -> I e. Fin ) $.
    prdsbl.r $e |- ( ( ph /\ x e. I ) -> R e. Z ) $.
    prdsbl.m $e |- ( ( ph /\ x e. I ) -> E e. ( *Met ` V ) ) $.
    prdsbl.p $e |- ( ph -> P e. B ) $.
    prdsbl.a $e |- ( ph -> A e. RR* ) $.
    prdsbl.g $e |- ( ph -> 0 < A ) $.
    $( A ball in the product metric for finite index set is the Cartesian
       product of balls in all coordinates.  For infinite index set this is no
       longer true; instead the correct statement is that a *closed ball* is
       the product of closed balls in each coordinate (where closed ball means
       a set of the form in ~ blcld ) - for a counterexample the point ` p ` in
       ` RR ^ NN ` whose ` n ` -th coordinate is ` 1 - 1 / n ` is in
       ` X_ n e. NN ball ( 0 , 1 ) ` but is not in the ` 1 ` -ball of the
       product (since ` d ( 0 , p ) = 1 ` ).

       The last assumption, ` 0 < A ` , is needed only in the case
       ` I = (/) ` , when the right side evaluates to ` { (/) } ` and the left
       evaluates to ` (/) ` if ` A <_ 0 ` and ` { (/) } ` if ` 0 < A ` .
       (Contributed by Mario Carneiro, 28-Aug-2015.) $)
    prdsbl $p |- ( ph ->
      ( P ( ball ` D ) A ) = X_ x e. I ( ( P ` x ) ( ball ` E ) A ) ) $=
      ( vf vz vy cbl cfv co cv cixp wcel clt wbr wa wral wfn ralrimiva prdsbas3
      wb cfn eleq2d biimpa ixpfn vex elixp baib 3syl cxmt cxr adantlr prdsbascl
      ad2antrr adantr r19.21bi simpr elbl2 syl22anc ralbidva crn xmetcl syl3anc
      cmpt eqid breq1 ralrnmpt syl cc0 csn c0ex ralsn sylibr cun ralunb wi csup
      prdsdsval3 wor c0 wne wss xrltso a1i wceq wrex cab rnmpt abrexfi syl5eqel
      snfi unfi sylancl ssun2 snss mpbir ne0i mp1i wf fmptd frn 0xr snssd unssd
      fisupcl syl13anc eqeltrd rspcv syl5bir mpan2d sylbird ovex elabrex adantl
      cle ssun1 syl6eleqr sseldi supxrub syl2anc breqtrrd prdsxmet mpand impbid
      xrlelttr ralrimdva 3bitrrd pm5.32da elbl ss2ixp sseqtr4d pm4.71rd 3bitr4d
      blssm sseld eqrdv ) AUGFCEUJUKULZBJBUMZFUKZCIUJUKULZUNZAUGUMZDUOZFUVDEULZ
      CUPUQZURZUVEUVDUVCUOZURUVDUUSUOZUVIAUVEUVGUVIAUVEURZUVIUUTUVDUKZUVBUOZBJU
      SZUVAUVLIULZCUPUQZBJUSZUVGUVKUVDBJKUNZUOZUVDJUTZUVIUVNVCAUVEUVSADUVRUVDAB
      DGHJKLVDNMOPTUAAGNUOZBJUBVAZQVBZVEVFBJKUVDVGUVIUVTUVNBJUVBUVDUGVHVIVJVKUV
      KUVMUVPBJUVKUUTJUOZURZIKVLUKUOZCVMUOZUVAKUOZUVLKUOZUVMUVPVCAUWDUWFUVEUCVN
      ZAUWGUVEUWDUEVPZUVKUWHBJAUWHBJUSUVEABDGHFJKLVDNMOPTUAUWBQUDVOZVQVRZUVKUWI
      BJUVKBDGHUVDJKLVDNMOPAHLUOUVETVQZAJVDUOZUVEUAVQZAUWABJUSUVEUWBVQZQAUVEVSZ
      VOVRZUVLIUVACKVTWAWBUVKUVQUVGUVKUVQUHUMZCUPUQZUHBJUVOWFZWCZUSZUVGUVKUVOVM
      UOZBJUSUXDUVQVCUVKUXEBJUWEUWFUWHUWIUXEUWJUWMUWSUVAUVLIKWDWEZVAUXAUVPBUHJU
      VOUXBVMUXBWGZUWTUVOCUPWHWIWJUVKUXDUXAUHWKWLZUSZUVGUVKWKCUPUQZUXIAUXJUVEUF
      VQUXAUXJUHWKWMUWTWKCUPWHWNWOUXDUXIURUXAUHUXCUXHWPZUSZUVKUVGUXAUHUXCUXHWQU
      VKUVFUXKUOUXLUVGWRUVKUVFUXKVMUPWSZUXKUVKBDEGHIFUVDJKLVDNMOPUWNUWPUWQAFDUO
      ZUVEUDVQUWRQRSWTZUVKVMUPXAZUXKVDUOZUXKXBXCZUXKVMXDZUXMUXKUOUXPUVKXEXFUVKU
      XCVDUOZUXHVDUOUXQUVKUWOUXTUWPUWOUXCUIUMUVOXGBJXHUIXIZVDBUIJUVOUXBUXGXJZBU
      IJUVOXKXLWJWKXMUXCUXHXNXOWKUXKUOZUXRUVKUYCUXHUXKXDUXHUXCXPWKUXKWMXQXRUXKW
      KXSXTUVKUXCUXHVMUVKJVMUXBYAUXCVMXDUVKBJUVOVMUXBUXFUXGYBJVMUXBYCWJUVKWKVMW
      KVMUOUVKYDXFYEYFZVMUXKUPYGYHYIUXAUVGUHUVFUXKUWTUVFCUPWHYJWJYKYLYMUVKUVGUV
      PBJUWEUVOUVFYQUQZUVGUVPUWEUVOUXMUVFYQUWEUXSUVOUXKUOUVOUXMYQUQUVKUXSUWDUYD
      VQUWEUXCUXKUVOUXCUXHYRUWEUVOUYAUXCUWDUVOUYAUOUVKBUIJUVOUVAUVLIYNYOYPUYBYS
      YTUXKUVOUUAUUBUVKUVFUXMXGUWDUXOVQUUCUWEUXEUVFVMUOZUWGUYEUVGURUVPWRUXFUWEE
      DVLUKUOZUXNUVEUYFAUYGUVEUWDABDEGHIJKLVDMNOPQRSTUAUBUCUUDZVPAUXNUVEUWDUDVP
      UVKUVEUWDUWRVQFUVDEDWDWEUWKUVOUVFCUUGWEUUEUUHUUFUUIUUJAUYGUXNUWGUVJUVHVCU
      YHUDUEUVDEFCDUUKWEAUVIUVEAUVCDUVDAUVCUVRDAUVBKXDZBJUSUVCUVRXDAUYIBJAUWDUR
      UWFUWHUWGUYIUCAUWHBJUWLVRAUWGUWDUEVQIUVACKUUPWEVABJUVBKUULWJUWCUUMUUQUUNU
      UOUUR $.
  $}

  ${
    $d x y A $.  $d r w x y z D $.  $d r x y J $.  $d x y z R $.  $d w x y S $.
    $d r y N $.  $d r w x y z P $.  $d z T $.  $d r w x y z X $.
    mopni.1 $e |- J = ( MetOpen ` D ) $.
    $( An open set of a metric space includes a ball around each of its points.
       (Contributed by NM, 3-Sep-2006.)  (Revised by Mario Carneiro,
       12-Nov-2013.) $)
    mopni $p |- ( ( D e. ( *Met ` X ) /\ A e. J /\ P e. A ) ->
                 E. x e. ran ( ball ` D ) ( P e. x /\ x C_ A ) ) $=
      ( vy cxmt cfv wcel cv wss wa cbl crn wrex wral wi elmopn simplbda rexbidv
      wceq eleq1 anbi1d rspccv syl 3impia ) CFIJKZBEKZDBKZDALZKZULBMZNZACOJPZQZ
      UIUJNHLZULKZUNNZAUPQZHBRZUKUQSUIUJBFMVBHABCEFGTUAVAUQHDBURDUCZUTUOAUPVCUS
      UMUNURDULUDUEUBUFUGUH $.

    $( An open set of a metric space includes a ball around each of its points.
       (Contributed by NM, 2-May-2007.)  (Revised by Mario Carneiro,
       12-Nov-2013.) $)
    mopni2 $p |- ( ( D e. ( *Met ` X ) /\ A e. J /\ P e. A ) ->
                 E. x e. RR+ ( P ( ball ` D ) x ) C_ A ) $=
      ( vy cxmt cfv wcel w3a cv wss wa cbl crn wrex co crp mopnss sselda blssex
      mopni wb adantlr syldan 3impa mpbid ) CFIJKZBEKZDBKZLDHMZKUMBNOHCPJZQRZDA
      MUNSBNATRZHBCDEFGUDUJUKULUOUPUEZUJUKOZULDFKZUQURBFDBCEFGUAUBUJUSUQUKHBCDF
      AUCUFUGUHUI $.

    $( An open set of a metric space includes an arbitrarily small ball around
       each of its points.  (Contributed by NM, 20-Sep-2007.)  (Revised by
       Mario Carneiro, 12-Nov-2013.) $)
    mopni3 $p |- ( ( ( D e. ( *Met ` X ) /\ A e. J /\ P e. A ) /\ R e. RR+ ) ->
        E. x e. RR+ ( x < R /\ ( P ( ball ` D ) x ) C_ A ) ) $=
      ( vy cxmt cfv wcel w3a crp wa cv cbl co wss wrex clt mopni2 adantr mopnss
      wbr simp1 sselda 3impa ssblex sylan anassrs expcom anim2d reximdv syl5com
      jca sstr rexlimdva mpd ) CGJKLZBFLZDBLZMZENLZOZDIPZCQKZRZBSZINTZAPZEUAUEZ
      DVKVGRZBSZOZANTZVCVJVDIBCDFGHUBUCVEVIVPINVEVFNLZOVLVMVHSZOZANTZVIVPVCVDVQ
      VTVCUTDGLZOVDVQOVTVCUTWAUTVAVBUFUTVAVBWAUTVAOBGDBCFGHUDUGUHUPACDEVFGUIUJU
      KVIVSVOANVIVRVNVLVRVIVNVMVHBUQULUMUNUOURUS $.

    $( The balls of a metric space are open sets.  (Contributed by NM,
       12-Sep-2006.)  (Revised by Mario Carneiro, 23-Dec-2013.) $)
    blssopn $p |- ( D e. ( *Met ` X ) -> ran ( ball ` D ) C_ J ) $=
      ( cxmt cfv wcel cbl crn ctg ctb wss blbas bastg syl mopnval sseqtr4d ) AC
      EFGZAHFIZSJFZBRSKGSTLACMSKNOABCDPQ $.

    $( The union of a collection of open sets of a metric space is open.
       Theorem T2 of [Kreyszig] p. 19.  (Contributed by NM, 4-Sep-2006.)
       (Revised by Mario Carneiro, 23-Dec-2013.) $)
    unimopn $p |- ( ( D e. ( *Met ` X ) /\ A C_ J ) ->
                 U. A e. J ) $=
      ( cxmt cfv wcel ctop wss cuni mopntop uniopn sylan ) BDFGHCIHACJAKCHBCDEL
      ACMN $.

    $( The intersection of two open sets of a metric space is open.
       (Contributed by NM, 4-Sep-2006.)  (Revised by Mario Carneiro,
       23-Dec-2013.) $)
    mopnin $p |- ( ( D e. ( *Met ` X ) /\ A e. J /\ B e. J ) ->
               ( A i^i B ) e. J ) $=
      ( cxmt cfv wcel ctop cin mopntop inopn syl3an1 ) CEGHIDJIADIBDIABKDICDEFL
      ABDMN $.

    $( The empty set is an open set of a metric space.  Part of Theorem T1 of
       [Kreyszig] p. 19.  (Contributed by NM, 4-Sep-2006.) $)
    mopn0 $p |- ( D e. ( *Met ` X ) -> (/) e. J ) $=
      ( cxmt cfv wcel ctop c0 mopntop 0opn syl ) ACEFGBHGIBGABCDJBKL $.

    $( A ball of a metric space is an open set.  (Contributed by NM,
       12-Sep-2006.) $)
    rnblopn $p |- ( ( D e. ( *Met ` X ) /\ B e. ran ( ball ` D ) ) ->
        B e. J ) $=
      ( cxmt cfv wcel cbl crn blssopn sselda ) BDFGHBIGJCABCDEKL $.

    $( A ball of a metric space is an open set.  (Contributed by NM,
       9-Mar-2007.)  (Revised by Mario Carneiro, 12-Nov-2013.) $)
    blopn $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ R e. RR* ) ->
                    ( P ( ball ` D ) R ) e. J ) $=
      ( cxmt cfv wcel cxr w3a cbl crn co wss blssopn 3ad2ant1 blelrn sseldd ) A
      EGHIZBEIZCJIZKALHZMZDBCUCNTUAUDDOUBADEFPQABCERS $.

    $( The neighborhoods around a point ` P ` of a metric space are those
       subsets containing a ball around ` P ` .  Definition of neighborhood in
       [Kreyszig] p. 19.  (Contributed by NM, 8-Nov-2007.)  (Revised by Mario
       Carneiro, 23-Dec-2013.) $)
    neibl $p |- ( ( D e. ( *Met ` X ) /\ P e. X ) ->
      ( N e. ( ( nei ` J ) ` { P } ) <-> ( N C_ X /\ E. r e. RR+
        ( P ( ball ` D ) r ) C_ N ) ) ) $=
      ( vy cfv wcel wa wss cv wrex crp wb adantr syl2anc wi w3a cxmt csn cbl co
      cnei cuni mopntop mopnuni eleq2d biimpa isneip sseq2d anbi1d mopni2 sstr2
      ctop eqid com12 reximdv syl5com 3exp imp4a ad2antrr rexlimdv rpxr syl3an3
      blopn blcntr wceq eleq2 sseq1 anbi12d rspcev expr 3expia pm5.32da 3bitr2d
      cxr impbid ) AEUAIJZBEJZKZDBUBCUEIIJZDCUFZLZBHMZJZWFDLZKZHCNZKZDELZWJKWLB
      FMZAUCIUDZDLZFONZKWBCUPJZBWDJZWCWKPVTWQWAACEGUGQVTWAWRVTEWDBACEGUHZUIUJBH
      CDWDWDUQUKRWBWLWEWJVTWLWEPWAVTEWDDWSULQUMWBWLWJWPWBWLKZWJWPWTWIWPHCVTWFCJ
      ZWIWPSSWAWLVTXAWGWHWPVTXAWGWHWPSVTXAWGTWNWFLZFONWHWPFWFABCEGUNWHXBWOFOXBW
      HWOWNWFDUOURUSUTVAVBVCVDWBWPWJSWLWBWOWJFOVTWAWMOJZWOWJSZVTWAXCTWNCJZBWNJZ
      XDXCVTWAWMVRJXEWMVEABWMCEGVGVFABWMEVHXEXFWOWJWIXFWOKHWNCWFWNVIWGXFWHWOWFW
      NBVJWFWNDVKVLVMVNRVOVDQVSVPVQ $.

    $( A ball around a point is a neighborhood of the point.  (Contributed by
       NM, 8-Nov-2007.)  (Revised by Mario Carneiro, 24-Aug-2015.) $)
    blnei $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ R e. RR+ ) ->
              ( P ( ball ` D ) R ) e. ( ( nei ` J ) ` { P } ) ) $=
      ( cxmt cfv wcel crp w3a ctop cbl co csn cnei mopntop 3ad2ant1 cxr rpxr
      blopn syl3an3 blcntr opnneip syl3anc ) AEGHIZBEIZCJIZKDLIZBCAMHNZDIZBUJIU
      JBODPHHIUFUGUIUHADEFQRUHUFUGCSIUKCTABCDEFUAUBABCEUCBDUJUDUE $.

    $( Every ball around a limit point ` P ` of a subset ` S ` includes a
       member of ` S ` (even if ` P e/ S ` ).  (Contributed by NM, 9-Nov-2007.)
       (Revised by Mario Carneiro, 23-Dec-2013.) $)
    lpbl $p |- ( ( ( D e. ( *Met ` X ) /\ S C_ X /\
        P e. ( ( limPt ` J ) ` S ) ) /\ R e. RR+ ) ->
      E. x e. S x e. ( P ( ball ` D ) R ) ) $=
      ( cfv wcel wss wa cin c0 wne syl wceq syl2anc syl3anc wex clp w3a crp cbl
      cxmt co cdif cv wrex cnei wral simpl1 cuni mopntop simpl2 mopnuni sseqtrd
      csn ctop eqid simpl3 sseldd eleqtrrd simpr blnei islp2 mpbid ineq1 neeq1d
      lpss wb rspcva elin eldifi anim2i ancomd sylbi eximi n0 df-rex 3imtr4i )
      BGUEIJZEGKZCEFUAIIZJZUBZDUCJZLZCDBUDIUFZECURZUGZMZNOZAUHZWIJZAEUIZWHWIWJF
      UJIIZJZWNWKMZNOZAWQUKZWMWHWBCGJWGWRWBWCWEWGULZWHCFUMZGWHWDXCCWHFUSJZEXCKZ
      WDXCKWHWBXDXBBFGHUNPZWHEGXCWBWCWEWGUOWHWBGXCQXBBFGHUPPZUQZEFXCXCUTZVJRWBW
      CWEWGVAZVBZXGVCWFWGVDBCDFGHVESWHWEXAXJWHXDXECXCJWEXAVKXFXHXKCEAFXCXIVFSVG
      WTWMAWIWQWNWIQWSWLNWNWIWKVHVIVLRWNWLJZATWNEJZWOLZATWMWPXLXNAXLWOWNWKJZLZX
      NWNWIWKVMXPWOXMXOXMWOWNEWJVNVOVPVQVRAWLVSWOAEVTWAP $.

    blcld.3 $e |- S = { z e. X | ( P D z ) <_ R } $.
    $( A smaller closed ball is contained in a larger open ball.  (Contributed
       by Mario Carneiro, 10-Jan-2014.) $)
    blsscls2 $p |- ( ( ( D e. ( *Met ` X ) /\ P e. X ) /\
                       ( R e. RR* /\ T e. RR* /\ R < T ) ) ->
                     S C_ ( P ( ball ` D ) T ) ) $=
      ( cxmt cfv wcel wa cxr clt wbr w3a co wi cv cle crab cbl wral wss simplr3
      xmetcl 3expa adantlr simplr1 simplr2 xrlelttr expcomd syl3anc simp2 elbl2
      mpd wb an4s sylanr1 anassrs sylibrd ralrimiva rabss sylibr syl5eqss ) BHK
      LMZCHMZNZDOMZFOMZDFPQZRZNZECAUAZBSZDUBQZAHUCZCFBUDLSZJVOVRVPVTMZTZAHUEVSV
      TUFVOWBAHVOVPHMZNZVRVQFPQZWAWDVMVRWETZVKVLVMVJWCUGWDVQOMZVKVLVMWFTVJWCWGV
      NVHVIWCWGCVPBHUHUIUJVKVLVMVJWCUKVKVLVMVJWCULWGVKVLRVRVMWEVQDFUMUNUOURVJVN
      WCWAWEUSZVNVJVLWCWHVKVLVMUPVHVLVIWCWHVPBCFHUQUTVAVBVCVDVRAHVTVEVFVG $.

    $( A "closed ball" in a metric space is actually closed.  (Contributed by
       Mario Carneiro, 31-Dec-2013.)  (Revised by Mario Carneiro,
       24-Aug-2015.) $)
    blcld $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ R e. RR* ) ->
        S e. ( Clsd ` J ) ) $=
      ( vy wcel wceq wss wa wbr co cle wb syl2anc adantr vw vx cxmt cfv cxr w3a
      ccld cuni cdif mopnuni 3ad2ant1 difeq1d cv cbl crn wrex difssd clt simpl3
      wral cq simpl1 simpl2 eldifi adantl xmetcl syl3anc wn eldif breq1d elrab2
      oveq2 simplbi2 con3dimp sylbi xrltnle mpbird qbtwnxr cr wi cxne cxad rexr
      qre ad2antrl xnegcld xaddcld blelrn cc0 simprrr xposdif xblcntr syl112anc
      mpbid cin c0 incom xaddcom simprl xnpcan eqtrd xrleid syl bldisj syl33anc
      eqbrtrd syl5eq blssm reldisj simprrl blsscls2 syl23anc sscond sstrd eleq2
      sseq1 anbi12d rspcev syl12anc sylan2 rexlimdva ralrimiva elmopn mpbir2and
      expr mpd eqeltrrd ctop mopntop crab ssrab2 eqsstri syl5sseq eqid iscld2 )
      BGUCUDKZCGKZDUEKZUFZEFUGUDKZFUHZEUIZFKZYSGEUIZUUBFYSGUUAEYPYQGUUALYRBFGHU
      JUKZULYSUUDFKZUUDGMZJUMZUAUMZKZUUIUUDMZNZUABUNUDZUOZUPZJUUDUTZYSGEUQYSUUO
      JUUDYSUUHUUDKZNZDUBUMZUROZUUSCUUHBPZUROZNZUBVAUPZUUOUURYRUVAUEKZDUVAUROZU
      VDYPYQYRUUQUSZUURYPYQUUHGKZUVEYPYQYRUUQVBZYPYQYRUUQVCZUUQUVHYSUUHGEVDVEZC
      UUHBGVFVGZUURUVFUVADQOZVHZUUQUVNYSUUQUVHUUHEKZVHNUVNUUHGEVIUVHUVMUVOUVOUV
      HUVMCAUMZBPZDQOZUVMAUUHGEUVPUUHLUVQUVADQUVPUUHCBVLVJIVKVMVNVOVEUURYRUVEUV
      FUVNRUVGUVLDUVAVPSVQUBDUVAVRVGUURUVCUUOUBVAUUSVAKUURUUSVSKZUVCUUOVTUUSWDU
      URUVSUVCUUOUURUVSUVCNZNZUUHUVAUUSWAZWBPZUUMPZUUNKZUUHUWDKZUWDUUDMZUUOUWAY
      PUVHUWCUEKZUWEUURYPUVTUVITZUURUVHUVTUVKTZUWAUVAUWBUURUVEUVTUVLTZUWAUUSUVS
      UUSUEKZUURUVCUUSWCWEZWFWGZBUUHUWCGWHVGUWAYPUVHUWHWIUWCUROZUWFUWIUWJUWNUWA
      UVBUWOUURUVSUUTUVBWJUWAUWLUVEUVBUWORUWMUWKUUSUVAWKSWNBUUHUWCGWLWMUWAUWDGC
      UUSUUMPZUIZUUDUWAUWDUWPWOZWPLZUWDUWQMZUWAUWRUWPUWDWOZWPUWDUWPWQUWAYPYQUVH
      UWLUWHUUSUWCWBPZUVAQOUXAWPLUWIUURYQUVTUVJTZUWJUWMUWNUWAUXBUVAUVAQUWAUXBUW
      CUUSWBPZUVAUWAUWLUWHUXBUXDLUWMUWNUUSUWCWRSUWAUVEUVSUXDUVALUWKUURUVSUVCWSU
      VAUUSWTSXAUWAUVEUVAUVAQOUWKUVAXBXCXFBCUUHUUSUWCGXDXEXGUWAUWDGMZUWSUWTRUWA
      YPUVHUWHUXEUWIUWJUWNBUUHUWCGXHVGUWDUWPGXIXCWNUWAEUWPGUWAYPYQYRUWLUUTEUWPM
      UWIUXCUURYRUVTUVGTUWMUURUVSUUTUVBXJABCDEUUSFGHIXKXLXMXNUULUWFUWGNUAUWDUUN
      UUIUWDLUUJUWFUUKUWGUUIUWDUUHXOUUIUWDUUDXPXQXRXSYEXTYAYFYBYPYQUUFUUGUUPNRY
      RJUAUUDBFGHYCUKYDYGYSFYHKZEUUAMYTUUCRYPYQUXFYRBFGHYIUKYSGEUUAEUVRAGYJGIUV
      RAGYKYLUUEYMEFUUAUUAYNYOSVQ $.

    $( The closure of an open ball in a metric space is contained in the
       corresponding closed ball.  (Equality need not hold; for example, with
       the discrete metric, the closed ball of radius 1 is the whole space, but
       the open ball of radius 1 is just a point, whose closure is also a
       point.)  (Contributed by Mario Carneiro, 31-Dec-2013.) $)
    blcls $p |- ( ( D e. ( *Met ` X ) /\ P e. X /\ R e. RR* ) ->
                  ( ( cls ` J ) ` ( P ( ball ` D ) R ) ) C_ S ) $=
      ( cxmt cfv wcel cxr w3a ccld co wss wbr wa syl2anc cbl ccl blcld cle crab
      cv wral blssm clt elbl xmetcl 3expa 3adantl3 simpl3 xrltle expimpd sylbid
      wi ralrimiv ssrab sylanbrc syl6sseqr cuni eqid clsss2 ) BGJKLZCGLZDMLZNZE
      FOKLCDBUAKPZEQVJFUBKKEQABCDEFGHIUCVIVJCAUFZBPZDUDRZAGUEZEVIVJGQVMAVJUGVJV
      NQBCDGUHVIVMAVJVIVKVJLVKGLZVLDUIRZSVMVKBCDGUJVIVOVPVMVIVOSVLMLZVHVPVMURVF
      VGVOVQVHVFVGVOVQCVKBGUKULUMVFVGVHVOUNVLDUOTUPUQUSVMAGVJUTVAIVBEVJFFVCZVRV
      DVET $.
  $}

  ${
    $d x D $.  $d x P $.  $d x R $.  $d x S $.  $d x X $.
    blsscls.2 $e |- J = ( MetOpen ` D ) $.
    $( If two concentric balls have different radii, the closure of the smaller
       one is contained in the larger one.  (Contributed by Mario Carneiro,
       5-Jan-2014.) $)
    blsscls $p |- ( ( ( D e. ( *Met ` X ) /\ P e. X ) /\
                    ( R e. RR* /\ S e. RR* /\ R < S ) ) ->
            ( ( cls ` J ) ` ( P ( ball ` D ) R ) ) C_ ( P ( ball ` D ) S ) ) $=
      ( vx cxmt cfv wcel wa cxr clt wbr w3a cbl co ccl cv crab eqid blcls 3expa
      cle wss 3ad2antr1 blsscls2 sstrd ) AFIJKZBFKZLZCMKZDMKZCDNOZPLBCAQJZRESJJ
      ZBHTARCUEOHFUAZBDUPRULUNUMUQURUFZUOUJUKUMUSHABCUREFGURUBZUCUDUGHABCURDEFG
      UTUHUI $.
  $}

  ${
    $d r s x y z C $.  $d r s x y J $.  $d r s x y K $.  $d s y R $.  $d y S $.
    $d r s x y z D $.  $d r x y ph $.  $d r s x y z X $.  $d a b x C $.
    $d a b x D $.  $d a b x J $.  $d a b x K $.  $d a b x X $.
    metequiv.3 $e |- J = ( MetOpen ` C ) $.
    metequiv.4 $e |- K = ( MetOpen ` D ) $.
    $( Two ways of saying that metric ` D ` generates a finer topology than
       metric ` C ` .  (Contributed by Mario Carneiro, 12-Nov-2013.)  (Revised
       by Mario Carneiro, 24-Aug-2015.) $)
    metss $p |- ( ( C e. ( *Met ` X ) /\ D e. ( *Met ` X ) ) ->
          ( J C_ K <-> A. x e. X A. r e. RR+ E. s e. RR+
                ( x ( ball ` D ) s ) C_ ( x ( ball ` C ) r ) ) ) $=
      ( vy cfv wcel wa wss cv wrex wral crp wceq vz cxmt cbl crn ctg wi cuni co
      mopnval adantr adantl sseq12d ctb wb blbas unirnbl eqtr4d syl2anc raleqdv
      tgss2 blssex adantll imbi2d ralbidv w3a blelrn syl3an3 blcntr eleq2 sseq2
      rpxr rexbidv imbi12d rspcv com23 sylc 3expa adantllr ralrimdva blss 3expb
      cxr adantlr r19.29 sstr expcom reximdv impcom rexlimivw ex syl5com impbid
      syl expr bitrd ralbidva 3bitrd ) BFUBLZMZCWRMZNZDEOBUCLZUDZUELZCUCLZUDZUE
      LZOZAPZKPZMZXIUAPZMXLXJONUAXFQZUFZKXCRZAXCUGZRZXIGPXEUHZXIHPZXBUHZOZGSQZH
      SRZAFRZXADXDEXGWSDXDTWTBDFIUIUJWTEXGTWSCEFJUIUKULXAXCUMMZXPXFUGZTXHXQUNWS
      YEWTBFUOUJXAXPFYFWSXPFTWTBFUPUJZWTYFFTWSCFUPUKUQAKUAXCXFUMUTURXAXQXOAFRYD
      XAXOAXPFYGUSXAXOYCAFXAXIFMZNZXOXKXRXJOZGSQZUFZKXCRZYCYIXNYLKXCYIXMYKXKWTY
      HXMYKUNWSUAXJCXIFGVAVBVCVDYIYMYCYIYMYBHSWSYHXSSMZYMYBUFZWTWSYHYNYOWSYHYNV
      EXTXCMZXIXTMZYOYNWSYHXSWBMYPXSVKBXIXSFVFVGBXIXSFVHYPYMYQYBYLYQYBUFKXTXCXJ
      XTTZXKYQYKYBXJXTXIVIYRYJYAGSXJXTXRVJVLVMVNVOVPVQVRVSYIYCYLKXCYIXJXCMZNXKY
      CYKYIYSXKYCYKUFYIYSXKNZNXTXJOZHSQZYCYKXAYTUUBYHWSYTUUBWTWSYSXKUUBHXJBXIFV
      TWAWCWCYCUUBYKYCUUBNYBUUANZHSQYKYBUUAHSWDUUCYKHSUUAYBYKUUAYAYJGSYAUUAYJXR
      XTXJWEWFWGWHWIWMWJWKWNVOVSWLWOWPWOWQ $.

    $( Two ways of saying that two metrics generate the same topology.  Two
       metrics satisfying the right-hand side are said to be (topologically)
       equivalent.  (Contributed by Jeff Hankins, 21-Jun-2009.)  (Revised by
       Mario Carneiro, 12-Nov-2013.) $)
    metequiv $p |- ( ( C e. ( *Met ` X ) /\ D e. ( *Met ` X ) ) ->
      ( J = K <-> A. x e. X
          ( A. r e. RR+ E. s e. RR+
                ( x ( ball ` D ) s ) C_ ( x ( ball ` C ) r ) /\
            A. a e. RR+ E. b e. RR+
                ( x ( ball ` C ) b ) C_ ( x ( ball ` D ) a ) ) ) ) $=
      ( cfv wcel wa wss cv co crp wral cxmt cbl wrex wceq metss wb anbi12d eqss
      ancoms r19.26 3bitr4g ) BFUAMZNZCULNZOZDEPZEDPZOAQZGQCUBMZRURHQBUBMZRPGSU
      CHSTZAFTZURJQUTRURIQUSRPJSUCISTZAFTZODEUDVAVCOAFTUOUPVBUQVDABCDEFGHKLUEUN
      UMUQVDUFACBEDFJILKUEUIUGDEUHVAVCAFUJUK $.

    $( If there is a sequence of radii approaching zero for which the balls of
       both metrics coincide, then the generated topologies are equivalent.
       (Contributed by Mario Carneiro, 26-Aug-2015.) $)
    metequiv2 $p |- ( ( C e. ( *Met ` X ) /\ D e. ( *Met ` X ) ) ->
      ( A. x e. X A. r e. RR+ E. s e. RR+ ( s <_ r /\
        ( x ( ball ` C ) s ) = ( x ( ball ` D ) s ) ) -> J = K ) ) $=
      ( cfv wcel wa cv cbl co crp wrex wral wss cxmt cle wbr wi simprrr simplll
      wceq simplr simprlr rpxrd simprll simprrl ssbl syl221anc eqsstr3d simpllr
      cxr eqsstrd jca expr reximdva r19.40 syl6 ralimdva r19.26 syl6ib metequiv
      anassrs sylibrd ) BFUAKZLZCVJLZMZGNZHNZUBUCZANZVNBOKZPZVQVNCOKZPZUGZMZGQR
      ZHQSZAFSWAVQVOVRPZTZGQRZHQSVSVQVOVTPZTZGQRZHQSMZAFSDEUGVMWEWLAFVMVQFLZMZW
      EWHWKMZHQSWLWNWDWOHQWNVOQLZMZWDWGWJMZGQRWOWQWCWRGQWNWPVNQLZWCWRUDWNWPWSMZ
      WCWRWNWTWCMZMZWGWJXBWAVSWFWNWTVPWBUEZXBVKWMVNUQLZVOUQLZVPVSWFTVKVLWMXAUFV
      MWMXAUHZXBVNWNWPWSWCUIUJZXBVOWNWPWSWCUKUJZWNWTVPWBULZBVQVNVOFUMUNUOXBVSWA
      WIXCXBVLWMXDXEVPWAWITVKVLWMXAUPXFXGXHXICVQVNVOFUMUNURUSUTVHVAWGWJGQVBVCVD
      WHWKHQVEVFVDABCDEFGHHGIJVGVI $.

    metss2.1 $e |- ( ph -> C e. ( Met ` X ) ) $.
    metss2.2 $e |- ( ph -> D e. ( Met ` X ) ) $.
    metss2.3 $e |- ( ph -> R e. RR+ ) $.
    metss2.4 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
      ( x C y ) <_ ( R x. ( x D y ) ) ) $.
    $( Lemma for ~ metss2 .  (Contributed by Mario Carneiro, 14-Sep-2015.) $)
    metss2lem $p |- ( ( ph /\ ( x e. X /\ S e. RR+ ) ) ->
      ( x ( ball ` D ) ( S / R ) ) C_ ( x ( ball ` C ) S ) ) $=
      ( wcel wa co syl3anc cv crp cdiv clt wbr crab cbl cfv cmul cme cr simplrl
      ad2antrr simpr metcl simplrr rpred ltmuldiv2d cle anassrs adantlrr lelttr
      wi remulcld mpand sylbird ss2rabdv cxmt cxr metxmet adantr simprl rpdivcl
      wceq syl syl2anr rpxrd blval rpxr ad2antll 3sstr4d ) ABUAZJQZGUBQZRZRZWBC
      UAZESZGFUCSZUDUEZCJUFZWBWGDSZGUDUEZCJUFZWBWIEUGUHSZWBGDUGUHSZWFWJWMCJWFWG
      JQZRZWJFWHUISZGUDUEZWMWRWHGFWREJUJUHZQZWCWQWHUKQAXBWEWQNUMAWCWDWQULZWFWQU
      NZWBWGEJUOTZWRGAWCWDWQUPUQZAFUBQZWEWQOUMZURWRWLWSUSUEZWTWMAWCWQXIWDAWCWQX
      IPUTVAWRWLUKQZWSUKQGUKQXIWTRWMVCWRDXAQZWCWQXJAXKWEWQMUMXCXDWBWGDJUOTWRFWH
      WRFXHUQXEVDXFWLWSGVBTVEVFVGWFEJVHUHZQZWCWIVIQWOWKVNAXMWEAXBXMNEJVJVOVKAWC
      WDVLZWFWIWEWDXGWIUBQAWCWDUNOGFVMVPVQCEWBWIJVRTWFDXLQZWCGVIQZWPWNVNAXOWEAX
      KXOMDJVJVOVKXNWDXPAWCGVSVTCDWBGJVRTWA $.

    $( If the metric ` D ` is "strongly finer" than ` C ` (meaning that there
       is a positive real constant ` R ` such that
       ` C ( x , y ) <_ R x. D ( x , y ) ` ), then ` D ` generates a finer
       topology.  (Using this theorem twice in each direction states that if
       two metrics are strongly equivalent, then they generate the same
       topology.)  (Contributed by Mario Carneiro, 14-Sep-2015.) $)
    metss2 $p |- ( ph -> J C_ K ) $=
      ( vs vr cfv crp wcel wss cv cbl co wrex wral cdiv simpr rpdivcl metss2lem
      wa syl2anr wceq oveq2 sseq1d rspcev syl2anc ralrimivva wb cme metxmet syl
      cxmt metss mpbird ) AGHUAZBUBZPUBZEUCRZUDZVGQUBZDUCRUDZUAZPSUEZQSUFBIUFZA
      VNBQISAVGITZVKSTZUKZUKVKFUGUDZSTZVGVSVIUDZVLUAZVNVRVQFSTVTAVPVQUHNVKFUIUL
      ABCDEFVKGHIJKLMNOUJVMWBPVSSVHVSUMVJWAVLVHVSVGVIUNUOUPUQURADIVCRZTZEWCTZVF
      VOUSADIUTRZTWDLDIVAVBAEWFTWEMEIVAVBBDEGHIPQJKVDUQVE $.
  $}

  ${
    $d a b c x y D $.  $d a b c x y F $.  $d a b c x y ph $.  $d a b c X $.
    comet.1 $e |- ( ph -> D e. ( *Met ` X ) ) $.
    comet.2 $e |- ( ph -> F : ( 0 [,] +oo ) --> RR* ) $.
    comet.3 $e |- ( ( ph /\ x e. ( 0 [,] +oo ) ) ->
      ( ( F ` x ) = 0 <-> x = 0 ) ) $.
    comet.4 $e |- ( ( ph /\ ( x e. ( 0 [,] +oo ) /\ y e. ( 0 [,] +oo ) ) ) ->
      ( x <_ y -> ( F ` x ) <_ ( F ` y ) ) ) $.
    comet.5 $e |- ( ( ph /\ ( x e. ( 0 [,] +oo ) /\ y e. ( 0 [,] +oo ) ) ) ->
      ( F ` ( x +e y ) ) <_ ( ( F ` x ) +e ( F ` y ) ) ) $.
    $( The composition of an extended metric with a monotonic subadditive
       function is an extended metric.  (Contributed by Mario Carneiro,
       21-Mar-2015.) $)
    comet $p |- ( ph -> ( F o. D ) e. ( *Met ` X ) ) $=
      ( cc0 co cxr wcel cfv cle wbr wceq cxad va vb ccom cxmt elfvexd cpnf cicc
      vc wf cxp wfn cv wral xmetf syl ffn wa w3a xmetge0 elxrge0 sylanbrc 3expb
      xmetcl sylan ralrimivva ffnov fco syl2anc cop opelxpi fvco3 syl2an fveq2i
      df-ov 3eqtr4g eqeq1d wb ralrimiva adantr fveq2 eqeq1 bibi12d sylc xmeteq0
      rspcv 3bitrd 3adantr3 ffvelrnd simpr3 simpr1 fovrnd simpr2 xaddcld 3anrot
      ge0xaddcl xmettri2 sylan2br wi breq1 breq1d imbi12d breq2 breq2d syl21anc
      rspc2va oveq1 fveq2d oveq1d breq12d oveq2 xrletrd oveq12d 3brtr4d isxmetd
      mpd oveq2d ) AUAUBUHEDUCZFADUDFGUEALUFUGMZNEUIZFFUJZXRDUIZXTNXQUIHADXTUKZ
      UAULZUBULZDMZXROZUBFUMUAFUMYAAXTNDUIZYBADFUDPOZYGGDFUNUOZXTNDUPUOAYFUAUBF
      FAYHYCFOZYDFOZUQZYFGYHYJYKYFYHYJYKURYENOLYEQRYFYCYDDFVCYCYDDFUSYEUTVAVBVD
      ZVEUAUBFFXRDVFVAZXTXRNEDVGVHAYLUQZYCYDXQMZLSYEEPZLSZYELSZYCYDSZYOYPYQLYOY
      CYDVIZXQPZUUADPZEPZYPYQAYGUUAXTOUUBUUDSYLYIYCYDFFVJXTNUUAEDVKVLYCYDXQVNYE
      UUCEYCYDDVNVMVOZVPYOYFBULZEPZLSZUUFLSZVQZBXRUMZYRYSVQZYMAUUKYLAUUJBXRIVRV
      SUUJUULBYEXRUUFYESZUUHYRUUIYSUUMUUGYQLUUFYEEVTZVPUUFYELWAWBWEWCAYHYLYSYTV
      QZGYHYJYKUUOYCYDDFWDVBVDWFAYJYKUHULZFOZURZUQZYQUUPYCDMZEPZUUPYDDMZEPZTMZY
      PUUPYCXQMZUUPYDXQMZTMQUUSYQUUTUVBTMZEPZUVDUUSXRNYEEAXSUURHVSZAYJYKYFUUQYM
      WGZWHUUSXRNUVGEUVIUUSUUTXROZUVBXROZUVGXROZUUSUUPYCXRFFDAYAUURYNVSZAYJYKUU
      QWIZAYJYKUUQWJZWKZUUSUUPYDXRFFDUVNUVOAYJYKUUQWLZWKZUUTUVBWOVHZWHUUSUVAUVC
      UUSXRNUUTEUVIUVQWHUUSXRNUVBEUVIUVSWHWMUUSYEUVGQRZYQUVHQRZAYHUURUWAGUURYHU
      UQYJYKURUWAUUQYJYKWNYCYDUUPDFWPWQVDUUSYFUVMUUFCULZQRZUUGUWCEPZQRZWRZCXRUM
      BXRUMZUWAUWBWRZUVJUVTAUWHUURAUWGBCXRXRJVEVSUWGUWIYEUWCQRZYQUWEQRZWRBCYEUV
      GXRXRUUMUWDUWJUWFUWKUUFYEUWCQWSUUMUUGYQUWEQUUNWTXAUWCUVGSZUWJUWAUWKUWBUWC
      UVGYEQXBUWLUWEUVHYQQUWCUVGEVTXCXAXEXDXOUUSUVKUVLUUFUWCTMZEPZUUGUWETMZQRZC
      XRUMBXRUMZUVHUVDQRZUVQUVSAUWQUURAUWPBCXRXRKVEVSUWPUWRUUTUWCTMZEPZUVAUWETM
      ZQRBCUUTUVBXRXRUUFUUTSZUWNUWTUWOUXAQUXBUWMUWSEUUFUUTUWCTXFXGUXBUUGUVAUWET
      UUFUUTEVTXHXIUWCUVBSZUWTUVHUXAUVDQUXCUWSUVGEUWCUVBUUTTXJXGUXCUWEUVCUVATUW
      CUVBEVTXPXIXEXDXKAYJYKYPYQSUUQUUEWGUUSUVEUVAUVFUVCTUUSUUPYCVIZXQPZUXDDPZE
      PZUVEUVAUUSYGUXDXTOZUXEUXGSAYGUURYIVSZUUSUUQYJUXHUVOUVPUUPYCFFVJVHXTNUXDE
      DVKVHUUPYCXQVNUUTUXFEUUPYCDVNVMVOUUSUUPYDVIZXQPZUXJDPZEPZUVFUVCUUSYGUXJXT
      OZUXKUXMSUXIUUSUUQYKUXNUVOUVRUUPYDFFVJVHXTNUXJEDVKVHUUPYDXQVNUVBUXLEUUPYD
      DVNVMVOXLXMXN $.
  $}

  ${
    $d x y A $.  $d a b r s x y z C $.  $d r s z D $.  $d r s z J $.  $d z S $.
    $d x y B $.  $d x y z P $.  $d a b r s x y z R $.  $d a b r s x y z X $.
    stdbdmet.1 $e |- D = ( x e. X , y e. X |->
      if ( ( x C y ) <_ R , ( x C y ) , R ) ) $.
    $( Value of the standard bounded metric.  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    stdbdmetval $p |- ( ( R e. V /\ A e. X /\ B e. X ) ->
      ( A D B ) = if ( ( A C B ) <_ R , ( A C B ) , R ) ) $=
      ( wcel co cle wbr cif wceq cvv ovex ifexg cv mpan oveq12 ifbieq1d syl3an3
      wa breq1d ovmpt2ga 3comr ) CIKZDIKZGHKZCDFLCDELZGMNZULGOZPZUKUIUJUNQKZUOU
      LQKUKUPCDERUMULGQHSUAABCDIIATZBTZELZGMNZUSGOUNFQUQCPURDPUEZUTUMUSULGVAUSU
      LGMUQCURDEUBZUFVBUCJUGUDUH $.

    $( The standard bounded metric is an extended metric given an extended
       metric and a positive extended real cutoff.  (Contributed by Mario
       Carneiro, 26-Aug-2015.) $)
    stdbdxmet $p |- ( ( C e. ( *Met ` X ) /\ R e. RR* /\ 0 < R ) ->
        D e. ( *Met ` X ) ) $=
      ( vz wcel cxr cc0 wbr co cv cle wa wceq cvv syl2anc cxad cxmt cfv clt w3a
      va vb cpnf cicc cif cmpt ccom cmpt2 simp1 xmetcl xmetge0 elxrge0 sylanbrc
      3expb sylan cxp wfn wf xmetf 3ad2ant1 ffn fnov sylib eqidd breq1 ifbieq1d
      syl id fmpt2co syl6eqr simplbi simp2 ifcl syl2anr fmptd vex ifexg sylancr
      eqid fvmptg eqeq1d wb eqeq1 bibi1d biidd wn simp3 gt0ne0d neneqd ad2antrr
      0xr xrltle mpd adantr syl5ibrcom con3dimp 2falsed ifbothda bitrd ad2antrl
      xrmin1 ifcld ad2antll xrletr syl3anc mpand xrmin2 xrlemin sylibrd adantrr
      wi jctird simpr breq12d xaddcld xaddid2 simprbi xleadd1a syl31anc xrletrd
      a1i eqbrtrrd oveq2 breq2d ifboth xaddid1 breq2 xleadd2a ge0xaddcl oveq12d
      oveq1 ovex 3brtr4d comet eqeltrrd ) CFUAUBZIZEJIZKEUCLZUDZHKUGUHMZHNZEOLZ
      UUFEUIZUJZCUKZDYTUUDUUJABFFANZBNZCMZEOLZUUMEUIZULDUUDABHFFUUEUUMUUHUUOCUU
      IUUDUUAUUKFIZUULFIZPUUMUUEIZUUAUUBUUCUMZUUAUUPUUQUURUUAUUPUUQUDUUMJIKUUMO
      LUURUUKUULCFUNUUKUULCFUOUUMUPUQURUSUUDCFFUTZVAZCABFFUUMULQUUDUUTJCVBZUVAU
      UAUUBUVBUUCCFVCVDUUTJCVEVKABFFCVFVGUUDUUIVHUUFUUMQZUUGUUNUUFUUMEUUFUUMEOV
      IUVCVLVJVMGVNUUDUEUFCUUIFUUSUUDHUUEUUHJUUIUUFUUEIZUUFJIZUUBUUHJIUUDUVDUVE
      KUUFOLUUFUPVOUUAUUBUUCVPZUUGUUFEJVQVRUUIWCZVSUUDUENZUUEIZPZUVHUUIUBZKQUVH
      EOLZUVHEUIZKQZUVHKQZUVJUVKUVMKUVIUVIUVMRIZUVKUVMQZUUDUVIVLUUDUVHRIUUBUVPU
      EVTUVFUVLUVHERJWAWBHUVHUUHUVMUUERUUIUUFUVHQZUUGUVLUUFUVHEUUFUVHEOVIUVRVLV
      JUVGWDVRZWEUVLUVOUVOWFEKQZUVOWFUVNUVOWFUVJUVHEUVHUVMQZUVOUVNUVOUVHUVMKWGW
      HEUVMQZUVTUVNUVOEUVMKWGWHUVJUVLPUVOWIUVJUVLWJZPUVTUVOUUDUVTWJUVIUWCUUDEKU
      UDEUUAUUBUUCWKZWLWMWNUVJUVOUVLUVJUVLUVOKEOLZUUDUWEUVIUUDUUCUWEUWDUUDKJIZU
      UBUUCUWEXOWOUVFKEWPWBWQZWRUVHKEOVIWSWTXAXBXCUUDUVIUFNZUUEIZPZPZUVHUWHOLZU
      VMUWHEOLZUWHEUIZOLZUVKUWHUUIUBZOLUWKUWLUVMUWHOLZUVMEOLZPZUWOUWKUWLUWQUWRU
      WKUVMUVHOLZUWLUWQUWKUVHJIZUUBUWTUVIUXAUUDUWIUVIUXAKUVHOLZUVHUPZVOXDZUUDUU
      BUWJUVFWRZUVHEXESUWKUVMJIZUXAUWHJIZUWTUWLPUWQXOUWKUVLUVHEJUXDUXEXFZUXDUWI
      UXGUUDUVIUWIUXGKUWHOLZUWHUPZVOXGZUVMUVHUWHXHXIXJUWKUXAUUBUWRUXDUXEUVHEXKS
      XPUWKUXFUXGUUBUWOUWSWFUXHUXKUXEUVMUWHEXLXIXMUWKUVKUVMUWPUWNOUUDUVIUVQUWIU
      VSXNZUWJUWIUWNRIZUWPUWNQUUDUVIUWIXQUUDUWHRIUUBUXMUFVTUVFUWMUWHERJWAWBHUWH
      UUHUWNUUERUUIUUFUWHQZUUGUWMUUFUWHEUUFUWHEOVIUXNVLVJUVGWDVRZXRXMUWKUVHUWHT
      MZEOLZUXPEUIZUVMUWNTMZUXPUUIUBZUVKUWPTMOUWKUXRUVHUWNTMZOLZUXREUWNTMZOLZUX
      RUXSOLZUWKUXRUXPOLZUXRUVHETMZOLZUYBUWKUXPJIZUUBUYFUWKUVHUWHUXDUXKXSZUXEUX
      PEXESUWKUXREUYGUWKUXQUXPEJUYJUXEXFZUXEUWKUVHEUXDUXEXSUWKUYIUUBUXREOLUYJUX
      EUXPEXKSZUWKKETMZEUYGOUWKUUBUYMEQUXEEXTVKUWKUWFUXAUUBUXBUYMUYGOLUWFUWKWOY
      EZUXDUXEUVIUXBUUDUWIUVIUXAUXBUXCYAXDKUVHEYBYCYFYDUWMUYFUYHUYBUWHEUWHUWNQU
      XPUYAUXROUWHUWNUVHTYGYHEUWNQUYGUYAUXROEUWNUVHTYGYHYISUWKUXREUYCUYKUXEUWKE
      UWNUXEUWKUWMUWHEJUXKUXEXFZXSUYLUWKEKTMZEUYCOUWKUUBUYPEQUXEEYJVKUWKUWFUWNJ
      IUUBKUWNOLZUYPUYCOLUYNUYOUXEUWKUXIUWEUYQUWIUXIUUDUVIUWIUXGUXIUXJYAXGUUDUW
      EUWJUWGWRUWMUXIUWEUYQUWHEUWHUWNKOYKEUWNKOYKYISKUWNEYLYCYFYDUVLUYBUYDUYEUV
      HEUWAUYAUXSUXROUVHUVMUWNTYOYHUWBUYCUXSUXROEUVMUWNTYOYHYISUWJUXPUUEIUXRRIZ
      UXTUXRQUUDUVHUWHYMUUDUXPRIUUBUYRUVHUWHTYPUVFUXQUXPERJWAWBHUXPUUHUXRUUERUU
      IUUFUXPQZUUGUXQUUFUXPEUUFUXPEOVIUYSVLVJUVGWDVRUWKUVKUVMUWPUWNTUXLUXOYNYQY
      RYS $.

    $( The standard bounded metric is a proper metric given an extended metric
       and a positive real cutoff.  (Contributed by Mario Carneiro,
       26-Aug-2015.) $)
    stdbdmet $p |- ( ( C e. ( *Met ` X ) /\ R e. RR+ ) -> D e. ( Met ` X ) ) $=
      ( cfv wcel wa cr cxr cc0 wbr 3expb cv cle wral adantlr ad2antlr cxmt rpxr
      crp cxp wf cme clt rpgt0 jca stdbdxmet sylan2 co cif xmetcl ifcld xmetge0
      rpge0 breq2 ifboth syl2anc xrmin2 xrrege0 syl22anc ralrimivva fmpt2 sylib
      rpre ismet2 sylanbrc ) CFUAHZIZEUCIZJZDVJIZFFUDKDUEZDFUFHIVLVKELIZMEUGNZJ
      VNVLVPVQEUBZEUHUIVKVPVQVNABCDEFGUJOUKVMAPZBPZCULZEQNZWAEUMZKIZBFRAFRVOVMW
      DABFFVMVSFIZVTFIZJZJZWCLIEKIZMWCQNZWCEQNZWDWHWBWAELVKWGWALIZVLVKWEWFWLVSV
      TCFUNOSZVLVPVKWGVRTZUOVLWIVKWGEVGTWHMWAQNZMEQNZWJVKWGWOVLVKWEWFWOVSVTCFUP
      OSVLWPVKWGEUQTWBWOWPWJWAEWAWCMQUREWCMQURUSUTWHWLVPWKWMWNWAEVAUTWCEVBVCVDA
      BFFWCKDGVEVFDFVHVI $.

    $( The standard bounded metric corresponding to ` C ` generates the same
       balls as ` C ` for radii less than ` R ` .  (Contributed by Mario
       Carneiro, 26-Aug-2015.) $)
    stdbdbl $p |- ( ( ( C e. ( *Met ` X ) /\ R e. RR* /\ 0 < R ) /\
      ( P e. X /\ S e. RR* /\ S <_ R ) ) ->
        ( P ( ball ` D ) S ) = ( P ( ball ` C ) S ) ) $=
      ( vz cfv wcel cxr clt wbr cle wa co adantr syl3anc cxmt cc0 w3a crab wceq
      cv cbl cif simpll2 simpr1 simpr stdbdmetval breq1d wn simplr3 biantrud wb
      simpr2 simpl1 xmetcl xrlemin bitr4d notbid xrltnle syl2anc ifcld rabbidva
      3bitr4d stdbdxmet blval 3eqtr4d ) CHUAKZLZFMLZUBFNOZUCZEHLZGMLZGFPOZUCZQZ
      EJUFZDRZGNOZJHUDZEWBCRZGNOZJHUDZEGDUGKRZEGCUGKRZWAWDWGJHWAWBHLZQZWDWFFPOZ
      WFFUHZGNOZWGWLWCWNGNWLVNVQWKWCWNUEVMVNVOVTWKUIZWAVQWKVPVQVRVSUJZSZWAWKUKZ
      ABEWBCDFMHIULTUMWLGWFPOZUNZGWNPOZUNZWGWOWLWTXBWLWTWTVSQZXBWLVSWTVQVRVSVPW
      KUOUPWLVRWFMLZVNXBXDUQWAVRWKVPVQVRVSURZSZWLVMVQWKXEWAVMWKVMVNVOVTUSZSWRWS
      EWBCHUTTZWPGWFFVATVBVCWLXEVRWGXAUQXIXGWFGVDVEWLWNMLVRWOXCUQWLWMWFFMXIWPVF
      XGWNGVDVEVHVBVGWADVLLZVQVRWIWEUEVPXJVTABCDFHIVISWQXFJDEGHVJTWAVMVQVRWJWHU
      EXHWQXFJCEGHVJTVK $.

    stdbdmopn.2 $e |- J = ( MetOpen ` C ) $.
    $( The standard bounded metric corresponding to ` C ` generates the same
       topology as ` C ` .  (Contributed by Mario Carneiro, 26-Aug-2015.) $)
    stdbdmopn $p |- ( ( C e. ( *Met ` X ) /\ R e. RR* /\ 0 < R ) ->
        J = ( MetOpen ` D ) ) $=
      ( vs vr vz wcel cxr cc0 clt wbr cle wceq crp cxmt cfv w3a cv co wrex wral
      cbl wa cmopn cr rpxr ad2antll simpl2 ifcld rpre rpgt0 simpl3 breq2 ifboth
      cif syl2anc wi 0xr xrltle sylancr mpd xrmin1 syl22anc elrpd simprl xrmin2
      xrrege0 stdbdbl syldan eqcomd breq1 oveq2 eqeq12d anbi12d rspcev syl12anc
      3jca ralrimivva simp1 stdbdxmet eqid metequiv2 ) CGUAUBZMZENMZOEPQZUCZJUD
      ZKUDZRQZLUDZWNCUHUBZUEZWQWNDUHUBZUEZSZUIZJTUFZKTUGLGUGZFDUJUBZSZWMXDLKGTW
      MWQGMZWOTMZUIZUIZWOERQZWOEVAZTMXMWORQZWQXMWRUEZWQXMWTUEZSZXDXKXMXKXMNMZWO
      UKMZOXMRQZXNXMUKMXKXLWOENXIWONMZWMXHWOULUMZWJWKWLXJUNZUOZXIXSWMXHWOUPUMXK
      OXMPQZXTXKOWOPQZWLYEXIYFWMXHWOUQUMWJWKWLXJURXLYFWLYEWOEWOXMOPUSEXMOPUSUTV
      BZXKONMXRYEXTVCVDYDOXMVEVFVGXKYAWKXNYBYCWOEVHVBZXMWOVMVIYGVJYHXKXPXOWMXJX
      HXRXMERQZUCXPXOSXKXHXRYIWMXHXIVKYDXKYAWKYIYBYCWOEVLVBWCABCDWQEXMGHVNVOVPX
      CXNXQUIJXMTWNXMSZWPXNXBXQWNXMWORVQYJWSXOXAXPWNXMWQWRVRWNXMWQWTVRVSVTWAWBW
      DWMWJDWIMXEXGVCWJWKWLWEABCDEGHWFLCDFXFGJKIXFWGWHVBVG $.
  $}

  ${
    $d d x y D $.  $d d J $.  $d d x y X $.
    mopnex.1 $e |- J = ( MetOpen ` D ) $.
    $( The topology generated by an extended metric can also be generated by a
       true metric.  Thus, "metrizable topologies" can equivalently be defined
       in terms of metrics or extended metrics.  (Contributed by Mario
       Carneiro, 26-Aug-2015.) $)
    mopnex $p |- ( D e. ( *Met ` X ) ->
      E. d e. ( Met ` X ) J = ( MetOpen ` d ) ) $=
      ( vx vy cxmt cfv wcel cv co c1 cle wbr cif cmpt2 cmopn wceq 1rp wrex eqid
      cme crp stdbdmet mpan2 cxr cc0 clt rpxr ax-mp 0lt1 stdbdmopn fveq2 eqeq2d
      mp3an23 rspcev syl2anc ) ACHIJZFGCCFKGKALZMNOUTMPQZCUCIZJZBVARIZSZBDKZRIZ
      SZDVBUAUSMUDJZVCTFGAVAMCVAUBZUEUFUSMUGJZUHMUIOVEVIVKTMUJUKULFGAVAMBCVJEUM
      UPVHVEDVAVBVFVASVGVDBVFVARUNUOUQUR $.
  $}

  ${
    $d d n r t u w x y z D $.  $d d m n r t u w x y z J $.
    $d n r t u w x y z A $.  $d d n r t u w x y z X $.
    methaus.1 $e |- J = ( MetOpen ` D ) $.
    $( The topology generated by a metric space is Hausdorff.  (Contributed by
       Mario Carneiro, 21-Mar-2015.)  (Revised by Mario Carneiro,
       26-Aug-2015.) $)
    methaus $p |- ( D e. ( *Met ` X ) -> J e. Haus ) $=
      ( vd vx vy vm vn cfv wcel cv wceq wrex cha cin c0 w3a co syl3anc cxmt cme
      cmopn mopnex wne wi wral wa c2 cdiv cbl metxmet ad2antrr simplrl cr metcl
      cxr 3expb adantr cc0 clt wbr wb metgt0 biimpa elrpd rphalfcld rpxrd blopn
      eqid simplrr crp blcntr cxad cle caddc rpred syl2anc recnd 2halvesd eqtrd
      rexadd leidd eqbrtrd bldisj syl33anc eleq2 ineq1 eqeq1d 3anbi13d 3anbi23d
      ineq2 rspc2ev syl113anc ex ralrimivva ctopon mopntopon ishaus2 3syl eleq1
      mpbird syl5ibrcom rexlimiv syl ) ACUAJZKBELZUCJZMZECUBJZNBOKZABCEDUDXIXKE
      XJXGXJKZXKXIXHOKZXLXMFLZGLZUEZXNHLZKZXOILZKZXQXSPZQMZRZIXHNHXHNZUFZGCUGFC
      UGZXLYEFGCCXLXNCKZXOCKZUHZUHZXPYDYJXPUHZXNXNXOXGSZUIUJSZXGUKJZSZXHKZXOYMY
      NSZXHKZXNYOKZXOYQKZYOYQPZQMZYDYKXGXFKZYGYMUQKZYPXLUUCYIXPXGCULZUMZXLYGYHX
      PUNZYKYMYKYLYKYLYJYLUOKZXPXLYGYHUUHXNXOXGCUPURUSZYJXPUTYLVAVBZXLYGYHXPUUJ
      VCXNXOXGCVDURVEVFVGZVHZXGXNYMXHCXHVJZVITYKUUCYHUUDYRUUFXLYGYHXPVKZUULXGXO
      YMXHCUUMVITYKUUCYGYMVLKZYSUUFUUGUUKXGXNYMCVMTYKUUCYHUUOYTUUFUUNUUKXGXOYMC
      VMTYKUUCYGYHUUDUUDYMYMVNSZYLVOVBUUBUUFUUGUUNUULUULYKUUPYLYLVOYKUUPYMYMVPS
      ZYLYKYMUOKZUURUUPUUQMYKYMUUKVQZUUSYMYMWBVRYKYLYKYLUUIVSVTWAYKYLUUIWCWDXGX
      NXOYMYMCWEWFYCYSYTUUBRYSXTYOXSPZQMZRHIYOYQXHXHXQYOMZXRYSYBUVAXTXQYOXNWGUV
      BYAUUTQXQYOXSWHWIWJXSYQMZXTYTUVAUUBYSXSYQXOWGUVCUUTUUAQXSYQYOWLWIWKWMWNWO
      WPXLUUCXHCWQJKXMYFVCUUEXGXHCUUMWRFGIHXHCWSWTXBBXHOXAXCXDXE $.

    $( The topology generated by a metric space is first-countable.
       (Contributed by Mario Carneiro, 21-Mar-2015.) $)
    met1stc $p |- ( D e. ( *Met ` X ) -> J e. 1stc ) $=
      ( vy vx vz vw vn vr wcel cv com wbr wss wa wrex cn co crp cxmt cfv wel wi
      ctop cdom wral cpw cuni c1stc mopntop mopnuni eleq2d biimpar c1 cdiv cmpt
      cbl crn wf cxr simpll simplr nnrp rpreccld rpxrd blopn syl3anc eqid fmptd
      adantl frn syl nnex mptex rnex elpw sylibr cen ccrd cdm wfo omelon nnenom
      con0 ensymi isnumi mp2an wfn ovex fnmpti mpbi fodomnum mp2 domentr simprl
      dffn4 a1i simprr mopni2 clt simp-4l simp-4r blcntr cle simplrl cr nnrecre
      nnrpd ad2antrl rpred ltled ssbl syl221anc simplrr sstrd elrp nnrecl sylbi
      jca cc0 reximddv rexlimddv cvv ovexd wceq wb oveq2 oveq2d cbvmptv elrnmpt
      vex mp1i eleq2 sseq1 anbi12d rexxfr2d mpbird expr ralrimiva breq1 ralbidv
      rexeq imbi2d rspcev syl12anc syldan is1stc2 sylanbrc ) ACUAUBKZBUEKELZMUF
      NZFGUCZFHUCZHLZGLZOZPZHUUKQZUDZGBUGZPZEBUHZQZFBUIZUGBUJKABCDUKUUJUVDFUVEU
      UJFLZUVEKZUVFCKZUVDUUJUVHUVGUUJCUVEUVFABCDULUMUNUUJUVHPZIRUVFUOILZUPSZAUR
      UBZSZUQZUSZUVCKZUVOMUFNZUUMUURHUVOQZUDZGBUGZUVDUVIUVOBOZUVPUVIRBUVNUTUWAU
      VIIRUVMBUVNUVIUVJRKZPZUUJUVHUVKVAKUVMBKUUJUVHUWBVBUUJUVHUWBVCUWCUVKUWCUVJ
      UWBUVJTKUVIUVJVDVKVEVFAUVFUVKBCDVGVHUVNVIZVJRBUVNVLVMUVOBUVNIRUVMVNVOVPVQ
      VRUVQUVIUVORUFNZRMVSNUVQRVTWAKZRUVOUVNWBZUWEMWEKMRVSNUWFWCRMWDWFMRWGWHUVN
      RWIUWGIRUVMUVNUVFUVKUVLWJUWDWKRUVNWQWLRUVOUVNWMWNWDUVORMWOWHWRUVIUVSGBUVI
      UUPBKZUUMUVRUVIUWHUUMPZPZUVRUVFUVFUOUUKUPSZUVLSZKZUWLUUPOZPZERQZUWJUVFJLZ
      UVLSZUUPOZUWPJTUWJUUJUWHUUMUWSJTQUUJUVHUWIVBUVIUWHUUMWPUVIUWHUUMWSJUUPAUV
      FBCDWTVHUWJUWQTKZUWSPZPZUWKUWQXANZUWOERUXBUUKRKZUXCPZPZUWMUWNUXFUUJUVHUWK
      TKUWMUUJUVHUWIUXAUXEXBZUUJUVHUWIUXAUXEXCZUXFUUKUXFUUKUXBUXDUXCWPXIVEZAUVF
      UWKCXDVHUXFUWLUWRUUPUXFUUJUVHUWKVAKUWQVAKUWKUWQXENUWLUWROUXGUXHUXFUWKUXIV
      FUXFUWQUWJUWTUWSUXEXFZVFUXFUWKUWQUXDUWKXGKUXBUXCUUKXHXJUXFUWQUXJXKUXBUXDU
      XCWSXLAUVFUWKUWQCXMXNUWJUWTUWSUXEXOXPXTUWTUXCERQZUWJUWSUWTUWQXGKYAUWQXANP
      UXKUWQXQUWQEXRXSXJYBYCUWJUURUWOHEUWLUVORYDUWJUXDPUVFUWKUVLYEUUOYDKUUOUVOK
      UUOUWLYFZERQYGUWJHYLERUWLUUOUVNYDIERUVMUWLUVJUUKYFUVKUWKUVFUVLUVJUUKUOUPY
      HYIYJYKYMUXLUURUWOYGUWJUXLUUNUWMUUQUWNUUOUWLUVFYNUUOUWLUUPYOYPVKYQYRYSYTU
      VBUVQUVTPEUVOUVCUUKUVOYFZUULUVQUVAUVTUUKUVOMUFUUAUXMUUTUVSGBUXMUUSUVRUUMU
      URHUUKUVOUUCUUDUUBYPUUEUUFUUGYTFEGHBUVEUVEVIUUHUUI $.

    $( A separable metric space (a metric space with a countable dense subset)
       is second-countable.  (Contributed by Mario Carneiro, 13-Apr-2015.) $)
    met2ndci $p |- ( ( D e. ( *Met ` X ) /\ ( A C_ X /\ A ~<_ _om /\
      ( ( cls ` J ) ` A ) = X ) ) -> J e. 2ndc ) $=
      ( vx vy vz wcel wss com wbr wceq wa cn cv co wrex adantr syl3anc vw vu vr
      vn vt cxmt cfv cdom ccl w3a c1 cdiv cbl cmpt2 crn c2ndc ctop wral mopntop
      ctg cxp wf simpll simplr1 simprr sseldd simprl nnrpd rpreccld rpxrd blopn
      cxr ralrimivva eqid fmpt2 sylib frn syl crp mopni2 clt rphalfcld cc0 elrp
      c2 cr nnrecl sylbi cin c0 wne wex cuni ad2antrr mopnuni ad3antrrr sseqtrd
      simpr1 simplrr simplrl elunii syl2anc eleqtrrd simpr3 simprrl clsndisj n0
      blcntr syl32anc inss2 simpr sseldi eqidd oveq2 oveq2d eqeq2d rspc2ev ovex
      oveq1 eqeq1 2rexbidv rnmpt2 elab2 sylibr inss1 blcom syl22anc cle simprll
      wb mpbid simprrr wi rpre ltle syl2an mpd sstrd rexlimddv cen rpred blhalf
      ssbl simprlr eleq2 sseq1 anbi12d rspcev syl12anc exlimddv anassrs basgen2
      syl221anc ctb eqeltrd tgclb ccrd cdm wfo con0 omelon simpr2 xpdom2 nnenom
      nnex omex enref xpen mp2an xpomen domentr sylancl ondomen sylancr wfn ffn
      entri dffn4 fodomnum sylc domtr 2ndci eqeltrrd ) BDUFUGIZADJZAKUHLZACUIUG
      UGZDMZUJZNZFGOAGPZUKFPZULQZBUMUGZQZUNZUOZUTUGZCUPUWJCUQIZUWQCJZHPZUAPZIZU
      XBUBPZJZNZUAUWQRZHUXDURUBCURUWRCMUWDUWSUWIBCDEUSSZUWJOAVAZCUWPVBZUWTUWJUW
      OCIZGAURFOURUXJUWJUXKFGOAUWJUWLOIZUWKAIZNZNZUWDUWKDIUWMVLIUXKUWDUWIUXNVCU
      XOADUWKUWEUWFUWHUWDUXNVDUWJUXLUXMVEVFUXOUWMUXOUWLUXOUWLUWJUXLUXMVGVHVIVJB
      UWKUWMCDEVKTVMFGOAUWOCUWPUWPVNZVOVPZUXICUWPVQVRUWJUXGUBHCUXDUWJUXDCIZUXAU
      XDIZNZNZUXAUCPZUWNQZUXDJZUXGUCVSUYAUWDUXRUXSUYDUCVSRUWDUWIUXTVCZUWJUXRUXS
      VGUWJUXRUXSVEUCUXDBUXACDEVTTUYAUYBVSIZUYDNZNZUKUDPZULQZUYBWEULQZWALZUXGUD
      OUYHUYKVSIZUYLUDORZUYHUYBUYAUYFUYDVGWBUYMUYKWFIZWCUYKWALNUYNUYKWDUYKUDWGW
      HVRUYAUYGUYIOIZUYLNZUXGUYAUYGUYQNZNZUEPZUXAUYJUWNQZAWIZIZUXGUEUYSVUBWJWKZ
      VUCUEWLUYSUWSACWMZJUXAUWGIVUACIZUXAVUAIZVUDUWJUWSUXTUYRUXHWNUYSADVUEUWJUW
      EUXTUYRUWDUWEUWFUWHWRWNZUWDDVUEMUWIUXTUYRBCDEWOWPZWQUYSUXADUWGUYSUXAVUEDU
      YSUXSUXRUXAVUEIUWJUXRUXSUYRWSUWJUXRUXSUYRWTUXAUXDCXAXBVUIXCZUWJUWHUXTUYRU
      WDUWEUWFUWHXDWNXCUYSUWDUXADIZUYJVLIZVUFUYAUWDUYRUYESZVUJUYSUYJUYSUYIUYSUY
      IUYAUYGUYPUYLXEZVHVIZVJZBUXAUYJCDEVKTUYSUWDVUKUYJVSIZVUGVUMVUJVUOBUXAUYJD
      XHTUXAAVUACVUEVUEVNXFXIUEVUBXGVPUYSVUCNZUYTUYJUWNQZUWQIZUXAVUSIZVUSUXDJZU
      XGVURVUSUWOMZGARFORZVUTVURUYPUYTAIVUSVUSMZVVDUYSUYPVUCVUNSVURVUBAUYTVUAAX
      JUYSVUCXKZXLZVURVUSXMVVCVVEVUSUWKUYJUWNQZMFGUYIUYTOAUWLUYIMZUWOVVHVUSVVIU
      WMUYJUWKUWNUWLUYIUKULXNXOXPUWKUYTMVVHVUSVUSUWKUYTUYJUWNXSXPXQTUXAUWOMZGAR
      FORVVDHVUSUWQUYTUYJUWNXRUXAVUSMVVJVVCFGOAUXAVUSUWOXTYAFGHOAUWOUWPUXPYBYCY
      DVURUYTVUAIZVVAVURVUBVUAUYTVUAAYEVVFXLVURUWDVULVUKUYTDIZVVKVVAYJUYSUWDVUC
      VUMSZUYSVULVUCVUPSZUYSVUKVUCVUJSVURADUYTUYSUWEVUCVUHSVVGVFZUYTBUXAUYJDYFY
      GYKZVURVUSUYTUYKUWNQZUXDVURUWDVVLVULUYKVLIUYJUYKYHLZVUSVVQJVVMVVOVVNVURUY
      KVURUYBUYSUYFVUCUYAUYFUYDUYQYIZSZWBVJUYSVVRVUCUYSUYLVVRUYAUYGUYPUYLYLUYSV
      UQUYMUYLVVRYMZVUOUYSUYBVVSWBVUQUYJWFIUYOVWAUYMUYJYNUYKYNUYJUYKYOYPXBYQSBU
      YTUYJUYKDUUCUUMZVURVVQUYCUXDVURUWDVVLUYBWFIUXAVVQIVVQUYCJVVMVVOVURUYBVVTU
      UAVURVUSVVQUXAVWBVVPVFUYBBDUYTUXAUUBYGUYSUYDVUCUYAUYFUYDUYQUUDSYRYRUXFVVA
      VVBNUAVUSUWQUXBVUSMUXCVVAUXEVVBUXBVUSUXAUUEUXBVUSUXDUUFUUGUUHUUIUUJUUKYSY
      SVMUBHUAUWQCUULTZUWJUWQUUNIZUWQKUHLZUWRUPIUWJUWRUQIVWDUWJUWRCUQVWCUXHUUOU
      WQUUPYDUWJUWQUXIUHLZUXIKUHLZVWEUWJUXIUUQUURIZUXIUWQUWPUUSZVWFUWJKUUTIVWGV
      WHUVAUWJUXIOKVAZUHLZVWJKYTLVWGUWJUWFVWKUWDUWEUWFUWHUVBAKOUVEUVCVRVWJKKVAZ
      KOKYTLKKYTLVWJVWLYTLUVDKUVFUVGOKKKUVHUVIUVJUVQUXIVWJKUVKUVLZKUXIUVMUVNUWJ
      UWPUXIUVOZVWIUWJUXJVWNUXQUXICUWPUVPVRUXIUWPUVRVPUXIUWQUWPUVSUVTVWMUWQUXIK
      UWAXBUWQUWBXBUWC $.

    $( A metric space is second-countable iff it is separable (has a countable
       dense subset).  (Contributed by Mario Carneiro, 13-Apr-2015.) $)
    met2ndc $p |- ( D e. ( *Met ` X ) -> ( J e. 2ndc <->
      E. x e. ~P X ( x ~<_ _om /\ ( ( cls ` J ) ` x ) = X ) ) ) $=
      ( cxmt cfv wcel c2ndc cv com cdom wbr ccl wceq wa cpw wrex cuni eqid syl5
      2ndcsep mopnuni pweqd eqeq2d anbi2d rexeqbidv wss wi elpwi met2ndci 3exp2
      syl5ibr imp4a rexlimdv impbid ) BDFGHZCIHZAJZKLMZUSCNGGZDOZPZADQZRZURVEUQ
      UTVACSZOZPZAVFQZRACVFVFTUBUQVCVHAVDVIUQDVFBCDEUCZUDUQVBVGUTUQDVFVAVJUEUFU
      GUMUQVCURAVDUSVDHUSDUHZUQVCURUIUSDUJUQVKUTVBURUQVKUTVBURUSBCDEUKULUNUAUOU
      P $.
  $}

  ${
    $d r u x y z C $.  $d r y D $.  $d r u x y z J $.  $d r u x y z X $.
    $d r u x y z Y $.  $d x K $.
    metrest.1 $e |- D = ( C |` ( Y X. Y ) ) $.
    metrest.3 $e |- J = ( MetOpen ` C ) $.
    metrest.4 $e |- K = ( MetOpen ` D ) $.
    $( Two alternate formulations of a subspace topology of a metric space
       topology.  (Contributed by Jeff Hankins, 19-Aug-2009.)  (Proof shortened
       by Mario Carneiro, 5-Jan-2014.) $)
    metrest $p |- ( ( C e. ( *Met ` X ) /\ Y C_ X ) -> ( J |`t Y ) = K ) $=
      ( vu vy vr vz wcel wss wa cin wrex crp wi vx cxmt cfv crest wceq cbl wral
      co cv inss1 elmopn2 simplbda adantlr ssralv mpsyl ssrin reximi ralimi syl
      inss2 jctil sseq1 sseq2 rexbidv raleqbi1dv syl5ibrcom rexlimdva cuni ctop
      anbi12d cab mopntop ad2antrr wel ssel2 cxr rpxr blopn eleq1a 3expa sylan2
      anassrs adantrd adantrr abssdv uniopn oveq1 ineq1d sseq1d rspccv ad2antll
      w3a syl2anc ssel blcntr a1d reximdva ex sylan9r mpdd eleq2d rspcev sylcom
      ancld simprl sseld jcad elin sylan2br rexlimivw imp impbid1 eluniab ancom
      expr anass r19.41v rexbii bitr2i 3bitri exbii ineq1 eleq2 ceqsexv rexcom4
      wex ovex bitr3i anbi1i syl6bb eqrdv eqeq2d impbid wb simpr elind rexbidva
      blres ralbidva cvv pm5.32da bitr4d adantr mopnm ssexg syl2anr elrest cres
      id cxp xmetres2 syl5eqel 3bitr4d ) AEUBUCNZFEOZPZUACFUDUHZDUUPUAUIZJUIZFQ
      ZUEZJCRZUURFOZKUIZLUIZBUFUCUHZUUROZLSRZKUURUGZPZUURUUQNZUURDNZUUPUVBUVCUV
      DUVEAUFUCZUHZFQZUUROZLSRZKUURUGZPZUVJUUPUVBUVSUUPUVAUVSJCUUPUUSCNZPZUVSUV
      AUUTFOZUVOUUTOZLSRZKUUTUGZPUWAUWEUWBUWAUVNUUSOZLSRZKUUTUGZUWEUUTUUSOUWAUW
      GKUUSUGZUWHUUSFUJUUNUVTUWIUUOUUNUVTUUSEOUWIKLUUSACEHUKULUMUWGKUUTUUSUNUOU
      WGUWDKUUTUWFUWCLSUVNUUSFUPUQURUSUUSFUTVAUVAUVCUWBUVRUWEUURUUTFVBUVQUWDKUU
      RUUTUVAUVPUWCLSUURUUTUVOVCVDVEVJVFVGUUPUVSUVBUUPUVSPZMUIZUVNUEZLSRZKUURRZ
      UWKFQZUUROZPZMVKZVHZCNZUURUWSFQZUEZUVBUWJCVINZUWRCOUWTUUNUXCUUOUVSACEHVLZ
      VMUWJUWQMCUUPUVCUWQUWKCNZTUVRUUPUVCPZUWNUXEUWPUXFUWMUXEKUURUUPUVCKUAVNZUW
      MUXETZUVCUXGPZUUPUVDFNZUXHUURFUVDVOZUUNUUOUXJUXHUUOUXJPZUUNUVDENZUXHFEUVD
      VOZUUNUXMPZUWLUXELSUVESNZUXOUVEVPNZUWLUXETZUVEVQZUUNUXMUXQUXRUUNUXMUXQWLU
      VNCNUXRAUVDUVECEHVRUVNCUWKVSUSVTWAVGWAWBWAWBVGWCWDWEUWRCWFWMUWJJUURUXAUWJ
      JUAVNZUVPUUSUVNNZPZLSRZKUURRZUUSFNZPZUUSUXANZUWJUXTUYFUWJUXTUYDUYEUWJUXTU
      USUVEUVMUHZFQZUUROZUUSUYHNZPZLSRZUYDUWJUXTUYJLSRZUYMUVRUXTUYNTUUPUVCUVQUY
      NKUUSUURUVDUUSUEZUVPUYJLSUYOUVOUYIUURUYOUVNUYHFUVDUUSUVEUVMWGZWHWIZVDWJWK
      UUPUVCUXTUYNUYMTZTUVRUVCUXTUYEUUPUYRUURFUUSWNUUOUYEUUSENZUUNUYRFEUUSWNUUN
      UYSUYRUUNUYSPUYJUYLLSUUNUYSUXPUYJUYLTUUNUYSUXPWLZUYJUYKUYTUYKUYJAUUSUVEEW
      OWPXDVTWQWRWSWSWDWTUXTUYMUYDUYCUYMKUUSUURUYOUYBUYLLSUYOUVPUYJUYAUYKUYQUYO
      UVNUYHUUSUYPXAVJVDXBWRXCUWJUURFUUSUUPUVCUVRXEXFXGUYDUYEUXTUYCUYEUXTTZKUUR
      UYBVUALSUVPUYAUYEUXTUYAUYEPUVPUUSUVONUXTUUSUVNFXHUVOUURUUSVOXIXOXJXJXKXLU
      YGUUSUWSNZUYEPUYFUUSUWSFXHVUBUYDUYEVUBJMVNZUWQPZMYFUWLUWPVUCPZPZLSRZKUURR
      ZMYFZUYDUWQMUUSXMVUDVUHMVUDUWQVUCPUWNVUEPZVUHVUCUWQXNUWNUWPVUCXPVUHUWMVUE
      PZKUURRVUJVUGVUKKUURUWLVUELSXQXRUWMVUEKUURXQXSXTYAUYDVUGMYFZKUURRVUIUYCVU
      LKUURUYCVUFMYFZLSRVULVUMUYBLSVUEUYBMUVNUVDUVEUVMYGUWLUWPUVPVUCUYAUWLUWOUV
      OUURUWKUVNFYBWIUWKUVNUUSYCVJYDXRVUFLMSYEYHXRVUGKMUURYEXSXTYIXSYJYKUVAUXBJ
      UWSCUUSUWSUEUUTUXAUURUUSUWSFYBYLXBWMWRYMUUPUVCUVIUVRUXFUVHUVQKUURUUPUVCUX
      GUVHUVQYNZUXIUUPUXJVUNUXKUUNUUOUXJVUNUXLUUNUVDEFQNZVUNUXLEFUVDUXNUUOUXJYO
      YPUUNVUOPZUVGUVPLSUXPVUPUXQUVGUVPYNZUXSUUNVUOUXQVUQUUNVUOUXQWLUVFUVOUURBA
      UVDUVEEFGYRWIVTWAYQWAWBWAWBYSUUAUUBUUPUXCFYTNZUVKUVBYNUUNUXCUUOUXDUUCUUOU
      UOECNVURUUNUUOUUIACEHUUDFECUUEUUFJUURFCVIYTUUGWMUUPBFUBUCZNUVLUVJYNUUPBAF
      FUUJUUHVUSGAFEUUKUULKLUURBDFIUKUSUUMYK $.
  $}

  ${
    $( The restriction of a metric space is a metric space.  (Contributed by
       Mario Carneiro, 24-Aug-2015.) $)
    ressxms $p |- ( ( K e. *MetSp /\ A e. V ) -> ( K |`s A ) e. *MetSp ) $=
      ( cxme wcel co cds cfv cbs cxp cres cxmt crest cmopn wceq cin eqid adantr
      syl syl5eq wa cress ctopn xmsxmet xmetres resres inxp eqtri ressds adantl
      reseq2i ressbas sqxpeqd reseq12d fveq2d 3eltr3d xmstopn oveq1d wss xpss12
      incom inss1 mp2an resabs1 ax-mp eqtr4i metrest sylancl cuni xmstps tpsuni
      eqtrd ctps ineq2d oveq2d ctopon istps sylib restin sylan 3eqtr3d resstopn
      eqtr4d isxms2 sylanbrc ) BDEZACEZUAZBAUBFZGHZWIIHZWKJZKZWKLHZEBUCHZAMFZWM
      NHZOWIDEWHBGHZBIHZWSJZKZAAJZKZWSAPZLHZWMWNWHXAWSLHEZXCXEEWFXFWGXABWSWSQZX
      AQZUDRZXAAWSUESWHXCWRXDXDJZKZWMXCWRWTXBPZKXKWRWTXBUFXLXJWRWSWSAAUGUKUHZWH
      WRWJXJWLWGWRWJOWFAWRBWICWIQZWRQUIUJWHXDWKWHXDAWSPZWKWSAVAZWGXOWKOWFAWSWIC
      BXNXGULUJTZUMUNTZWHXDWKLXQUOUPWHWOXDMFZXCNHZWPWQWHXSXANHZXDMFZXTWHWOYAXDM
      WFWOYAOWGXAWOBWSWOQZXGXHUQRURWHXFXDWSUSZYBXTOXIWSAVBZXAXCYAXTWSXDXCXKXAXJ
      KZXMXJWTUSZYFXKOYDYDYGYEYEXDWSXDWSUTVCWRXJWTVDVEVFYAQXTQVGVHVLWHXSWOAWOVI
      ZPZMFZWPWHXDYIWOMWHXDXOYIXPWHWSYHAWFWSYHOZWGWFBVMEZYKBVJZWSWOBXGYCVKSRVNT
      VOWFWOWSVPHZEZWGWPYJOWFYLYOYMWSWOBXGYCVQVRAWOYNCYHYHQVSVTWCWHXCWMNXRUOWAW
      MWPWIWKAWIWOBXNYCWBWKQWMQWDWE $.

    $( The restriction of a metric space is a metric space.  (Contributed by
       Mario Carneiro, 24-Aug-2015.) $)
    ressms $p |- ( ( K e. MetSp /\ A e. V ) -> ( K |`s A ) e. MetSp ) $=
      ( cmt wcel wa cress co cxme cds cfv cbs cxp cres cme cin eqid wceq adantl
      syl5eq msxms ressxms sylan msmet adantr metres resres inxp reseq2i ressds
      syl eqtri incom ressbas sqxpeqd reseq12d fveq2d ctopn crest resstopn isms
      3eltr3d sylanbrc ) BDEZACEZFZBAGHZIEZVGJKZVGLKZVJMZNZVJOKZEVGDEVDBIEVEVHB
      UAABCUBUCVFBJKZBLKZVOMZNZAAMZNZVOAPZOKZVLVMVFVQVOOKEZVSWAEVDWBVEVQBVOVOQZ
      VQQUDUEVQAVOUFUKVFVSVNVTVTMZNZVLVSVNVPVRPZNWEVNVPVRUGWFWDVNVOVOAAUHUIULVF
      VNVIWDVKVEVNVIRVDAVNBVGCVGQZVNQUJSVFVTVJVFVTAVOPZVJVOAUMVEWHVJRVDAVOVGCBW
      GWCUNSTZUOUPTVFVTVJOWIUQVBVLBURKZAUSHVGVJAVGWJBWGWJQUTVJQVLQVAVC $.
  $}

  ${
    $d g k p r w y B $.  $d g k m p r u w x y D $.  $d g k m n p r u w x z I $.
    $d m n u C $.  $d g n r w E $.  $d g k x S $.  $d g k x W $.  $d g k x Y $.
    $d p r u w K $.  $d g k p r u w x ph $.  $d g k m n p r u w x z R $.
    $d r V $.
    prdsxms.y $e |- Y = ( S Xs_ R ) $.
    ${
      prdsxms.s $e |- ( ph -> S e. W ) $.
      prdsxms.i $e |- ( ph -> I e. Fin ) $.
      prdsxms.d $e |- D = ( dist ` Y ) $.
      prdsxms.b $e |- B = ( Base ` Y ) $.
      ${
        prdsms.r $e |- ( ph -> R : I --> MetSp ) $.
        $( Lemma for ~ prdsms .  The distance function of a product structure
           is an extended metric.  (Contributed by Mario Carneiro,
           28-Aug-2015.) $)
        prdsmslem1 $p |- ( ph -> D e. ( Met ` B ) ) $=
          ( vk cfv cds cbs cme eqid cv cmpt cprds co cxp cres ffvelrnda wcel wa
          cmt msmet syl prdsmet feqmptd oveq2d syl5eq fveq2d 3eltr4d ) AEOFOUAZ
          DPZUBZUCUDZQPZVBRPZSPCBSPAOVDVCUTEUTQPUTRPZVEUEUFZFVEGVBUJVBTVDTVETZV
          FTZVCTJKAFUJUSDNUGZAUSFUHUIUTUJUHVFVESPUHVIVFUTVEVGVHUKULUMACHQPVCLAH
          VBQAHEDUCUDVBIADVAEUCAOFUJDNUNUOUPZUQUPABVDSABHRPVDMAHVBRVJUQUPUQUR
          $.
      $}

      prdsxms.r $e |- ( ph -> R : I --> *MetSp ) $.
      $( Lemma for ~ prdsms .  The distance function of a product structure is
         an extended metric.  (Contributed by Mario Carneiro, 28-Aug-2015.) $)
      prdsxmslem1 $p |- ( ph -> D e. ( *Met ` B ) ) $=
        ( vk cfv cds cbs cxmt eqid cv cmpt cprds co cxp cres cfn cxme ffvelrnda
        wcel wa xmsxmet syl prdsxmet feqmptd oveq2d syl5eq fveq2d 3eltr4d ) AEO
        FOUAZDPZUBZUCUDZQPZVCRPZSPCBSPAOVEVDVAEVAQPVARPZVFUEUFZFVFGUGVCUHVCTVET
        VFTZVGTZVDTJKAFUHUTDNUIZAUTFUJUKVAUHUJVGVFSPUJVJVGVAVFVHVIULUMUNACHQPVD
        LAHVCQAHEDUCUDVCIADVBEUCAOFUHDNUOUPUQZURUQABVESABHRPVEMAHVCRVKURUQURUS
        $.

      prdsxms.j $e |- J = ( TopOpen ` Y ) $.
      prdsxms.v $e |- V = ( Base ` ( R ` k ) ) $.
      prdsxms.e $e |- E = ( ( dist ` ( R ` k ) ) |` ( V X. V ) ) $.
      prdsxms.k $e |- K = ( TopOpen ` ( R ` k ) ) $.
      prdsxms.c $e |- C = { x | E. g ( ( g Fn I /\
          A. k e. I ( g ` k ) e. ( ( TopOpen o. R ) ` k ) /\ E. z e. Fin
          A. k e. ( I \ z ) ( g ` k ) = U. ( ( TopOpen o. R ) ` k ) ) /\
        x = X_ k e. I ( g ` k ) ) } $.
      $( Lemma for ~ prdsxms .  The topology generated by the supremum metric
         is the same as the product topology, when the index set is finite.
         (Contributed by Mario Carneiro, 28-Aug-2015.) $)
      prdsxmslem2 $p |- ( ph -> J = ( MetOpen ` D ) ) $=
        ( vp vr vn vm vu vw vy ctopn cfv cbl crn c0 csn cdif ctg cmopn cfn wcel
        wfn wceq cvv wf topnfn cxme syl sylib sylancr syl2anc cv wral cuni wrex
        wss w3a cixp wa wex wi wne co cxr cxmt wb adantr simprl syl3anc cds cbs
        cres cmpt 3ad2ant1 ovex ffvelrnda cprds ralrimiva feqmptd oveq2d syl5eq
        cxp fveq2d eleqtrd blopn fveq2 syl6eqr sylan eqtrd fveq1 eleq1d anbi12d
        eqid weq ixpeq2dva syl121anc sylbid syl6eq raleqdv rspcev syl6sseqr cfi
        syl5bi ccnv cima xmstps eqeltrd ctopon eqeltrrd ad2antrr cnveqd imaeq1d
        ctop ctps crp ccom cpt ffn dffn2 fnfco cab wal eldifsn prdsxmslem1 blrn
        ptval cc0 clt wbr simprr xbln0 mptexg rgenw fnmpt mp1i simp2l prdsbascl
        xmsxmet r19.21bi simp2r sqxpeqd reseq12d eqidd oveq123d xmstopn 3eltr4d
        fvmpt adantl fvco3 cbvmptv oveq2i prdsbl ralbidv sylan9eq eqeq2d spcegv
        oveqd simp3 fneq1 3impib 3expia simpr neeq1d ral0 difeq2 difid biantrud
        sylancl df-3an syl6rbbr bi2anan9 exbidv 3imtr4d rexlimdvva impd alrimiv
        eqeq1 ex ssab sylibr cmpt2 cun fnssres mp2an fvres tpstop rgen mpbir2an
        ssv ffnfv fco2 ptbasfi mopntop prdsbas2 toponuni syl5eqr unieqd cbvixpv
        istps mopntopon toponmax snssd ciun mpteq1d mptpreima simprrr ad3antrrr
        elrab2 mopni2 simprrl rpxr ad2antrl blcntr blssm simplrr simplll eleq2d
        crab rpgt0 biimpa vex elixp simprbi simp-4r rsp sylc sseldd eleq2 sseq1
        ssrabdv syl12anc rexlimddv expr ralrimiv eltop2 mpbird mpteq2dv cbvralv
        raleqbidv fmpt2x frn unssd eqsstrd fitop mopnval tgdif0 sseqtrd 2basgen
        fiss eqtr4d prdstopn 3eqtr4d ) AUPGUUAZUUBUQZFURUQZUSZUTVAVBZVCUQZMFVDU
[encoded data, 5040 characters]
        DWYHVVJVMVWAVVKXLZXNVVLVWBEVVMVPVVOAGHLMPVEQRSTVWLUDVVPXWDVVQ $.
    $}

    $( The indexed product structure is an extended metric space when the index
       set is finite.  (Although the extended metric is still valid when the
       index set is infinite, it no longer agrees with the product topology,
       which is not metrizable in any case.)  (Contributed by Mario Carneiro,
       28-Aug-2015.) $)
    prdsxms $p |- ( ( S e. W /\ I e. Fin /\ R : I --> *MetSp ) ->
      Y e. *MetSp ) $=
      ( vx vz vg vk wcel cfn cxme wf cfv ctopn cmopn wceq eqid cv w3a cres cxmt
      cds cbs cxp simp1 simp2 simp3 prdsxmslem1 ssid xmetres2 sylancl ccom wral
      wss wfn cuni cdif wrex cixp wa wex cab prdsxmslem2 cxr xmetf fnresdm 4syl
      ffn fveq2d eqtr4d isxms2 sylanbrc ) BDKZCLKZCMANZUAZEUDOZEUEOZVTUFZUBZVTU
      COZKZEPOZWBQOZREMKVRVSWCKZVTVTUPWDVRVTVSABCDEFVOVPVQUGZVOVPVQUHZVSSZVTSZV
      OVPVQUIZUJZVTUKVSVTVTULUMVRWEVSQOWFVRGHVTITZCUQJTZWNOZWOPAUNOZKJCUOWPWQUR
      RJCHTUSUOHLUTUAGTJCWPVARVBIVCGVDZVSABIJWOAOZUDOWSUEOZWTUFUBZCWEWSPOZWTDEF
      WHWIWJWKWLWESZWTSXASXBSWRSVEVRWBVSQVRWGWAVFVSNVSWAUQWBVSRWMVSVTVGWAVFVSVJ
      WAVSVHVIVKVLWBWEEVTXCWKWBSVMVN $.

    $( The indexed product structure is a metric space when the index set is
       finite.  (Contributed by Mario Carneiro, 28-Aug-2015.) $)
    prdsms $p |- ( ( S e. W /\ I e. Fin /\ R : I --> MetSp ) ->
      Y e. MetSp ) $=
      ( vx wcel cfn cmt wf w3a cxme cds cfv cbs cxp cres wss eqid cme msxms fss
      cv ssriv mpan2 prdsxms syl3an3 simp1 simp2 simp3 prdsmslem1 metres2 ctopn
      ssid sylancl isms sylanbrc ) BDHZCIHZCJAKZLZEMHZENOZEPOZVEQRZVEUAOZHZEJHV
      AUSUTCMAKZVCVAJMSVIGJMGUDUBUECJMAUCUFABCDEFUGUHVBVDVGHVEVESVHVBVEVDABCDEF
      USUTVAUIUSUTVAUJVDTVETZUSUTVAUKULVEUOVDVEVEUMUPVFEUNOZEVEVKTVJVFTUQUR $.
  $}

  ${
    pwsms.y $e |- Y = ( R ^s I ) $.
    $( The product of a finite family of metric spaces is a metric space.
       (Contributed by Mario Carneiro, 28-Aug-2015.) $)
    pwsxms $p |- ( ( R e. *MetSp /\ I e. Fin ) -> Y e. *MetSp ) $=
      ( cxme wcel cfn wa csca cfv csn cxp cprds co eqid pwsval cvv fvexd simpr
      wf fconst6g adantr prdsxms syl3anc eqeltrd ) AEFZBGFZHZCAIJZBAKLZMNZEAUIB
      EGCDUIOPUHUIQFUGBEUJTZUKEFUHAIRUFUGSUFULUGBAEUAUBUJUIBQUKUKOUCUDUE $.

    $( The product of a finite family of metric spaces is a metric space.
       (Contributed by Mario Carneiro, 28-Aug-2015.) $)
    pwsms $p |- ( ( R e. MetSp /\ I e. Fin ) -> Y e. MetSp ) $=
      ( cmt wcel cfn wa csca cfv csn cxp cprds co eqid pwsval cvv fvexd simpr
      wf fconst6g adantr prdsms syl3anc eqeltrd ) AEFZBGFZHZCAIJZBAKLZMNZEAUIBE
      GCDUIOPUHUIQFUGBEUJTZUKEFUHAIRUFUGSUFULUGBAEUAUBUJUIBQUKUKOUCUDUE $.
  $}

  ${
    $d x y R $.  $d x y S $.
    xpsms.t $e |- T = ( R Xs. S ) $.
    $( A binary product of metric spaces is a metric space.  (Contributed by
       Mario Carneiro, 28-Aug-2015.) $)
    xpsxms $p |- ( ( R e. *MetSp /\ S e. *MetSp ) -> T e. *MetSp ) $=
      ( vx vy cxme wcel cbs cfv csca csn ccda co ccnv cv eqid wf1o mp1i c2o cxp
      wa cprds cmpt2 crn simpl simpr xpsval xpslem xpsff1o2 f1ocnv cvv wf fvexd
      cfn com 2onn nnfi xpscf biimpri prdsxms syl3anc imasf1oxms ) AGHZBGHZUBZA
      IJZBIJZUAZAKJZALBLMNOZUCNZCEFVGVHEPLFPLMNOUDZOZVMUEZVFEFABCVLVMVJGGVGVHDV
      GQZVHQZVDVEUFZVDVEUGZVMQZVJQZVLQZUHVFEFABCVLVMVJGGVGVHDVPVQVRVSVTWAWBUIVI
      VOVMRVOVIVNRVFEFVGVHVMVTUJVIVOVMUKSVFVJULHTUOHZTGVKUMZVLGHVFAKUNTUPHWCVFU
      QTURSWDVFGABUSUTVKVJTULVLWBVAVBVC $.

    $( A binary product of metric spaces is a metric space.  (Contributed by
       Mario Carneiro, 28-Aug-2015.) $)
    xpsms $p |- ( ( R e. MetSp /\ S e. MetSp ) -> T e. MetSp ) $=
      ( vx vy cmt wcel cbs cfv csca csn ccda co ccnv cv eqid wf1o mp1i c2o 2onn
      wa cxp cprds cmpt2 crn simpl simpr xpsval xpslem xpsff1o2 f1ocnv wf fvexd
      cvv cfn com nnfi xpscf biimpri prdsms syl3anc imasf1oms ) AGHZBGHZUBZAIJZ
      BIJZUCZAKJZALBLMNOZUDNZCEFVGVHEPLFPLMNOUEZOZVMUFZVFEFABCVLVMVJGGVGVHDVGQZ
      VHQZVDVEUGZVDVEUHZVMQZVJQZVLQZUIVFEFABCVLVMVJGGVGVHDVPVQVRVSVTWAWBUJVIVOV
      MRVOVIVNRVFEFVGVHVMVTUKVIVOVMULSVFVJUOHTUPHZTGVKUMZVLGHVFAKUNTUQHWCVFUATU
      RSWDVFGABUSUTVKVJTUOVLWBVAVBVC $.
  $}

  ${
    tmsxps.p $e |- P = ( dist ` ( ( toMetSp ` M ) Xs. ( toMetSp ` N ) ) ) $.
    tmsxps.1 $e |- ( ph -> M e. ( *Met ` X ) ) $.
    tmsxps.2 $e |- ( ph -> N e. ( *Met ` Y ) ) $.
    $( Express the product of two metrics as another metric.  (Contributed by
       Mario Carneiro, 2-Sep-2015.) $)
    tmsxps $p |- ( ph -> P e. ( *Met ` ( X X. Y ) ) ) $=
      ( ctmt cfv cbs cxmt cxp wceq cxme eqid wcel tmsxms syl cxps cres xpsdsfn2
      wfn fnresdm xpsxms syl2anc xmsxmet2 eqeltrrd tmsbas xpeq12d xpsbas fveq2d
      co eqtrd eleqtrrd ) ABCJKZDJKZUAUNZLKZMKZEFNZMKABUTUTNZUBZBVAABVCUDVDBOAB
      UQURUSPPUQLKZURLKZUSQZVEQZVFQZACEMKRZUQPRZHCUQEUQQZSTZADFMKRZURPRZIDURFUR
      QZSTZGUCVCBUETAUSPRZVDVARAVKVOVRVMVQUQURUSVGUFUGBUSUTUTQGUHTUIAVBUTMAVBVE
      VFNUTAEVEFVFAVJEVEOHCUQEVLUJTAVNFVFOIDURFVPUJTUKAUQURUSPPVEVFVGVHVIVMVQUL
      UOUMUP $.

    ${
      tmsxpsmopn.j $e |- J = ( MetOpen ` M ) $.
      tmsxpsmopn.k $e |- K = ( MetOpen ` N ) $.
      tmsxpsmopn.l $e |- L = ( MetOpen ` P ) $.
      $( Express the product of two metrics as another metric.  (Contributed by
         Mario Carneiro, 2-Sep-2015.) $)
      tmsxpsmopn $p |- ( ph -> L = ( J tX K ) ) $=
        ( cfv wcel wceq eqid syl ctmt cxps co ctopn ctx ctps cxme tmsxms xmstps
        cxmt xpstopn syl2anc cmopn cbs cxp cres xpsxms reseq1i xmstopn xpsdsfn2
        cds wfn fnresdm fveq2d eqtr2d syl5eq tmstopn oveq12d 3eqtr4d ) AFUAPZGU
        APZUBUCZUDPZVJUDPZVKUDPZUEUCZECDUEUCAVJUFQZVKUFQZVMVPRAVJUGQZVQAFHUJPQZ
        VSKFVJHVJSZUHTZVJUITAVKUGQZVRAGIUJPQZWCLGVKIVKSZUHTZVKUITVJVKVLVNVOVMVL
        SZVNSVOSVMSZUKULAEBUMPZVMOAVMBVLUNPZWJUOZUPZUMPZWIAVLUGQZVMWMRAVSWCWNWB
        WFVJVKVLWGUQULWLVMVLWJWHWJSBVLVAPWKJURUSTAWLBUMABWKVBWLBRABVJVKVLUGUGVJ
        UNPZVKUNPZWGWOSWPSWBWFJUTWKBVCTVDVEVFACVNDVOUEAVTCVNRKFCVJHWAMVGTAWDDVO
        RLGDVKIWENVGTVHVI $.
    $}

    tmsxpsval.a $e |- ( ph -> A e. X ) $.
    tmsxpsval.b $e |- ( ph -> B e. Y ) $.
    tmsxpsval.c $e |- ( ph -> C e. X ) $.
    tmsxpsval.d $e |- ( ph -> D e. Y ) $.
    $( Value of the product of two metrics.  (Contributed by Mario Carneiro,
       2-Sep-2015.) $)
    tmsxpsval $p |- ( ph -> ( <. A , B >. P <. C , D >. ) =
        sup ( { ( A M C ) , ( B N D ) } , RR* , < ) ) $=
      ( co cfv wcel cop ctmt cds cbs cxp cres cpr cxr clt csup cxps cxme tmsxms
      eqid cxmt syl wss wceq tmsds tmsbas 3eltr3d ssid xmetres2 sylancl eleqtrd
      fveq2d xpsdsval ovresd oveqd eqtr4d preq12d supeq1d eqtrd ) ABCUADEUAFRBD
      GUBSZUCSZVNUDSZVPUEUFZRZCEHUBSZUCSZVSUDSZWAUEUFZRZUGZUHUIUJBDGRZCEHRZUGZU
      HUIUJABCDEFVNVSVNVSUKRZVQWBULULVPWAWHUNVPUNWAUNAGIUOSZTZVNULTLGVNIVNUNZUM
      UPAHJUOSZTZVSULTMHVSJVSUNZUMUPKVQUNWBUNAVOVPUOSZTVPVPUQVQWOTAGWIVOWOLAWJG
      VOURLGVNIWKUSUPZAIVPUOAWJIVPURLGVNIWKUTUPZVFVAVPVBVOVPVPVCVDAVTWAUOSZTWAW
      AUQWBWRTAHWLVTWRMAWMHVTURMHVSJWNUSUPZAJWAUOAWMJWAURMHVSJWNUTUPZVFVAWAVBVT
      WAWAVCVDABIVPNWQVEZACJWAOWTVEZADIVPPWQVEZAEJWAQWTVEZVGAUHWDWGUIAVRWEWCWFA
      VRBDVORWEABDVOVPXAXCVHAGVOBDWPVIVJAWCCEVTRWFACEVTWAXBXDVHAHVTCEWSVIVJVKVL
      VM $.

    $( Value of the product of two metrics.  (Contributed by Mario Carneiro,
       2-Sep-2015.) $)
    tmsxpsval2 $p |- ( ph -> ( <. A , B >. P <. C , D >. ) =
        if ( ( A M C ) <_ ( B N D ) , ( B N D ) , ( A M C ) ) ) $=
      ( cxr clt wcel cop co cpr csup wbr cif cle tmsxpsval wor wceq xrltso cxmt
      a1i cfv xmetcl syl3anc suppr wn xrltnle syl2anc ifbid ifnot syl6eq 3eqtrd
      wb ) ABCUADEUAFUBBDGUBZCEHUBZUCRSUDZVGVFSUEZVFVGUFZVFVGUGUEZVGVFUFZABCDEF
      GHIJKLMNOPQUHARSUIZVFRTZVGRTZVHVJUJVMAUKUMAGIULUNTBITDITVNLNPBDGIUOUPZAHJ
      ULUNTCJTEJTVOMOQCEHJUOUPZRVFVGSUQUPAVJVKURZVFVGUFVLAVIVRVFVGAVOVNVIVRVEVQ
      VPVGVFUSUTVAVKVFVGVBVCVD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Continuity in metric spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d t u v w x y z F $.  $d t u v w x y z J $.  $d t u v w x y z K $.
    $d t u v w x y z X $.  $d t u v w x y z Y $.  $d t u v w x y z Z $.
    $d u v w x y z A $.  $d u v w x y z C $.  $d u v w x y z D $.
    $d u v w x z B $.  $d u v w x y z E $.  $d u v w x y z P $.
    $d t w x y z L $.
    metcn.2 $e |- J = ( MetOpen ` C ) $.
    metcn.4 $e |- K = ( MetOpen ` D ) $.
    $( Two ways to express that ` F ` is continuous at ` P ` for metric spaces.
       Proposition 14-4.2 of [Gleason] p. 240.  (Contributed by NM,
       17-May-2007.)  (Revised by Mario Carneiro, 28-Aug-2015.) $)
    metcnp3 $p |- ( ( C e. ( *Met ` X ) /\ D e. ( *Met ` Y ) /\ P e. X ) ->
      ( F e. ( ( J CnP K ) ` P ) <-> ( F : X --> Y /\
        A. y e. RR+ E. z e. RR+ ( F " ( P ( ball ` C ) z ) )
        C_ ( ( F ` P ) ( ball ` D ) y ) ) ) ) $=
      ( vv cfv wcel wss wa wrex wi crp vu cxmt w3a ccnp co wf cima cbl crn wral
      cv ctopon mopntopon 3ad2ant1 ctg wceq mopnval 3ad2ant2 simp3 tgcnp simplr
      simpll2 simpll3 ffvelrnd simpr blcntr syl3anc cxr rpxr adantl eleq2 sseq2
      blelrn anbi2d rexbidv imbi12d rspcv syl mpid simpl1 ad2antrr mopni2 sstr2
      simplrr imass2 syl11 reximdv syl5com expimpd expr rexlimdv syld ralrimdva
      simpl2 blss 3expib r19.29r ad3antrrr ad2antrl simprl sstr ad2ant2l ancoms
      blopn imaeq2 sseq1d anbi12d rspcev syl12anc rexlimdva syl5 com23 ralrimdv
      expd exp4a impbid pm5.32da bitrd ) CIUBNOZDJUBNOZEIOZUCZFEGHUDUENOIJFUFZE
      FNZUAUKZOZEMUKZOZFYGUGZYEPZQZMGRZSZUADUHNZUIZUJZQYCFEBUKZCUHNUEZUGZYDAUKZ
      YNUEZPZBTRZATUJZQYBMUAYOEFGHIJXSXTGIULNOYACGIKUMUNXTXSHYOUONUPYADHJLUQURX
      TXSHJULNOYADHJLUMURXSXTYAUSUTYBYCYPUUDYBYCQZYPUUDUUEYPUUCATUUEYTTOZQZYPYH
      YIUUAPZQZMGRZUUCUUGYPYDUUAOZUUJUUGXTYDJOZUUFUUKXSXTYAYCUUFVBZUUGIJEFYBYCU
      UFVAXSXTYAYCUUFVCZVDZUUEUUFVEDYDYTJVFVGUUGUUAYOOZYPUUKUUJSZSUUGXTUULYTVHO
      ZUUPUUMUUOUUFUURUUEYTVIVJDYDYTJVMVGYMUUQUAUUAYOYEUUAUPZYFUUKYLUUJYEUUAYDV
      KUUSYKUUIMGUUSYJUUHYHYEUUAYIVLVNVOVPVQVRVSUUGUUIUUCMGUUEUUFYGGOZUUIUUCSUU
      EUUFUUTQZQZYHUUHUUCUVBYHQZYRYGPZBTRZUUHUUCUVCXSUUTYHUVEUUEXSUVAYHXSXTYAYC
      VTZWAUUEUUFUUTYHWDUVBYHVEBYGCEGIKWBVGUUHUVDUUBBTYSYIPUUHUUBUVDYSYIUUAWCYR
      YGFWEWFWGWHWIWJWKWLWMUUEUUDYMUAYOUUEUUDYEYOOZYFYLUUEUVGYFQZUUDYLUUEUVHUUA
      YEPZATRZUUDYLSUUEXTUVHUVJSXSXTYAYCWNXTUVGYFUVJAYEDYDJWOWPVRUUEUVJUUDYLUVJ
      UUDQUVIUUCQZATRUUEYLUVIUUCATWQUUEUVKYLATUUGUVIUUCYLUUGUVIQZUUBYLBTUVLYQTO
      ZUUBYLUVLUVMUUBQZQZYRGOZEYROZYSYEPZYLUVOXSYAYQVHOZUVPUUEXSUUFUVIUVNUVFWRZ
      UUGYAUVIUVNUUNWAZUVMUVSUVLUUBYQVIWSCEYQGIKXDVGUVOXSYAUVMUVQUVTUWAUVLUVMUU
      BWTCEYQIVFVGUVNUVLUVRUUBUVIUVRUVMUUGYSUUAYEXAXBXCYKUVQUVRQMYRGYGYRUPZYHUV
      QYJUVRYGYREVKUWBYIYSYEYGYRFXEXFXGXHXIWJXJWIXJXKXNWLXLXOXMXPXQXR $.

    $( Two ways to say a mapping from metric ` C ` to metric ` D ` is
       continuous at point ` P ` .  (Contributed by NM, 11-May-2007.)  (Revised
       by Mario Carneiro, 28-Aug-2015.) $)
    metcnp $p |- ( ( C e. ( *Met ` X ) /\ D e. ( *Met ` Y ) /\ P e. X ) ->
                ( F e. ( ( J CnP K ) ` P ) <->
          ( F : X --> Y /\ A. y e. RR+ E. z e. RR+
      A. w e. X ( ( P C w ) < z -> ( ( F ` P ) D ( F ` w ) ) < y ) ) ) ) $=
      ( cfv wcel co crp wral wa wi cxmt w3a ccnp wf cv cbl cima wss clt metcnp3
      wrex wbr wfun cdm ffun ad2antlr cxr simpll1 simpll3 rpxr ad2antll syl3anc
      wb wceq fdm sseqtr4d funimass4 syl2anc elbl imbi1d impexp simpl2 ad2antrr
      blssm simplrl rpxrd simpllr adantr ffvelrnd simplr ffvelrnda elbl2 imbi2d
      syl22anc pm5.74da syl5bb ralbidv2 anassrs rexbidva ralbidva pm5.32da
      bitrd ) DJUANOZEKUANOZFJOZUBZGFHIUCPNOJKGUDZGFBUEZDUFNPZUGFGNZAUEZEUFNPZU
      HZBQUKZAQRZSWQFCUEZDPWRUIULZWTXFGNZEPXAUIULZTZCJRZBQUKZAQRZSABDEFGHIJKLMU
      JWPWQXEXMWPWQSZXDXLAQXNXAQOZSXCXKBQXNXOWRQOZXCXKVCXNXOXPSZSZXCXHXBOZCWSRZ
      XKXRGUMZWSGUNZUHXCXTVCWQYAWPXQJKGUOUPXRWSJYBXRWMWOWRUQOZWSJUHWMWNWOWQXQUR
      ZWMWNWOWQXQUSZXPYCXNXOWRUTVAZDFWRJVNVBWQYBJVDWPXQJKGVEUPVFCWSXBGVGVHXRXSX
      JCWSJXRXFWSOZXSTXFJOZXGSZXSTZYHXJTZXRYGYIXSXRWMWOYCYGYIVCYDYEYFXFDFWRJVIV
      BVJYJYHXGXSTZTXRYKYHXGXSVKXRYHYLXJXRYHSZXSXIXGYMWNXAUQOWTKOXHKOXSXIVCXNWN
      XQYHWMWNWOWQVLVMYMXAXNXOXPYHVOVPYMJKFGWPWQXQYHVQXRWOYHYEVRVSXRJKXFGWPWQXQ
      VTWAXHEWTXAKWBWDWCWEWFWLWGWLWHWIWJWKWL $.

    $( Two ways to say a mapping from metric ` C ` to metric ` D ` is
       continuous at point ` P ` .  The distance arguments are swapped compared
       to ~ metcnp (and Munkres' ~ metcn ) for compatibility with ~ df-lm .
       Definition 1.3-3 of [Kreyszig] p. 20.  (Contributed by NM, 4-Jun-2007.)
       (Revised by Mario Carneiro, 13-Nov-2013.) $)
    metcnp2 $p |- ( ( C e. ( *Met ` X ) /\ D e. ( *Met ` Y ) /\ P e. X ) ->
                ( F e. ( ( J CnP K ) ` P ) <->
          ( F : X --> Y /\ A. y e. RR+ E. z e. RR+
      A. w e. X ( ( w C P ) < z -> ( ( F ` w ) D ( F ` P ) ) < y ) ) ) ) $=
      ( cfv wcel co clt wbr crp wa cxmt w3a ccnp wf cv wi wral wrex metcnp wceq
      wb simpl1 ad2antrr simpl3 xmetsym syl3anc breq1d simpllr ffvelrnd imbi12d
      simpr simpl2 ralbidva anassrs rexbidva pm5.32da bitrd ) DJUANOZEKUANOZFJO
      ZUBZGFHIUCPNOJKGUDZFCUEZDPZBUEZQRZFGNZVMGNZEPZAUEZQRZUFZCJUGZBSUHZASUGZTV
      LVMFDPZVOQRZVRVQEPZVTQRZUFZCJUGZBSUHZASUGZTABCDEFGHIJKLMUIVKVLWEWMVKVLTZW
      DWLASWNVTSOZTWCWKBSWNWOVOSOZWCWKUKWNWOWPTZTZWBWJCJWRVMJOZTZVPWGWAWIWTVNWF
      VOQWTVHVJWSVNWFUJWNVHWQWSVHVIVJVLULUMWNVJWQWSVHVIVJVLUNUMZWRWSVAZFVMDJUOU
      PUQWTVSWHVTQWTVIVQKOVRKOVSWHUJWNVIWQWSVHVIVJVLVBUMWTJKFGVKVLWQWSURZXAUSWT
      JKVMGXCXBUSVQVREKUOUPUQUTVCVDVEVCVFVG $.

    $( Two ways to say a mapping from metric ` C ` to metric ` D ` is
       continuous.  Theorem 10.1 of [Munkres] p. 127.  The second biconditional
       argument says that for every positive "epsilon" ` y ` there is a
       positive "delta" ` z ` such that a distance less than delta in ` C `
       maps to a distance less than epsilon in ` D ` .  (Contributed by NM,
       15-May-2007.)  (Revised by Mario Carneiro, 28-Aug-2015.) $)
    metcn $p |- ( ( C e. ( *Met ` X ) /\ D e. ( *Met ` Y ) ) ->
                ( F e. ( J Cn K ) <-> ( F : X --> Y /\
                A. x e. X A. y e. RR+ E. z e. RR+
      A. w e. X ( ( x C w ) < z -> ( ( F ` x ) D ( F ` w ) ) < y ) ) ) ) $=
      ( cxmt cfv wcel wa co cv wral ccn wf ccnp clt wbr wi crp ctopon mopntopon
      wrex cncnp syl2an metcnp 3expa adantlr simplr biantrurd ralbidva pm5.32da
      wb bitr4d bitrd ) EJNOPZFKNOPZQZGHIUARPZJKGUBZGASZHIUCROPZAJTZQZVGVHDSZER
      CSUDUEVHGOVLGOFRBSUDUEUFDJTCUGUJBUGTZAJTZQVCHJUHOPIKUHOPVFVKUTVDEHJLUIFIK
      MUIAGHIJKUKULVEVGVJVNVEVGQZVIVMAJVOVHJPZQZVIVGVMQZVMVEVPVIVRUTZVGVCVDVPVS
      BCDEFVHGHIJKLMUMUNUOVQVGVMVEVGVPUPUQVAURUSVB $.

    $( Epsilon-delta property of a continuous metric space function, with
       function arguments as in ~ metcnp .  (Contributed by NM, 17-Dec-2007.)
       (Revised by Mario Carneiro, 13-Nov-2013.) $)
    metcnpi $p |- ( ( ( C e. ( *Met ` X ) /\ D e. ( *Met ` Y ) ) /\
        ( F e. ( ( J CnP K ) ` P ) /\ A e. RR+ ) ) -> E. x e. RR+
      A. y e. X ( ( P C y ) < x -> ( ( F ` P ) D ( F ` y ) ) < A ) ) $=
      ( vz cfv wcel wa co crp clt cxmt ccnp cv wbr wi wral wrex wf simpr simpll
      wb simplr cuni eqid cnprcl adantl mopnuni ad2antrr eleqtrrd syl3anc mpbid
      wceq metcnp simprd breq2 imbi2d rexralbidv rspccv syl impr ) DJUAOPZEKUAO
      PZQZGFHIUBROPZCSPZFBUCZDRAUCTUDZFGOVPGOERZCTUDZUEZBJUFASUGZVMVNQZVQVRNUCZ
      TUDZUEZBJUFASUGZNSUFZVOWAUEWBJKGUHZWGWBVNWHWGQZVMVNUIWBVKVLFJPVNWIUKVKVLV
      NUJVKVLVNULWBFHUMZJVNFWJPVMFGHIWJWJUNUOUPVKJWJVBVLVNDHJLUQURUSNABDEFGHIJK
      LMVCUTVAVDWFWANCSWCCVBZWEVTABSJWKWDVSVQWCCVRTVEVFVGVHVIVJ $.

    $( TODO - delete this if not used $)
    $( Epsilon-delta property of a continuous metric space function, with
       swapped distance function arguments as in ~ metcnp2 .  (Contributed by
       NM, 16-Dec-2007.)  (Revised by Mario Carneiro, 13-Nov-2013.) $)
    metcnpi2 $p |- ( ( ( C e. ( *Met ` X ) /\ D e. ( *Met ` Y ) )
        /\ ( F e. ( ( J CnP K ) ` P ) /\ A e. RR+ ) ) -> E. x e. RR+
      A. y e. X ( ( y C P ) < x -> ( ( F ` y ) D ( F ` P ) ) < A ) ) $=
      ( vz cfv wcel wa co crp clt cxmt ccnp cv wbr wi wral wrex wf simpr simpll
      wb simplr cuni eqid cnprcl wceq mopnuni ad2antrr eleqtrrd metcnp2 syl3anc
      adantl mpbid simprd breq2 imbi2d rexralbidv rspccv syl impr ) DJUAOPZEKUA
      OPZQZGFHIUBROPZCSPZBUCZFDRAUCTUDZVPGOFGOERZCTUDZUEZBJUFASUGZVMVNQZVQVRNUC
      ZTUDZUEZBJUFASUGZNSUFZVOWAUEWBJKGUHZWGWBVNWHWGQZVMVNUIWBVKVLFJPVNWIUKVKVL
      VNUJVKVLVNULWBFHUMZJVNFWJPVMFGHIWJWJUNUOVBVKJWJUPVLVNDHJLUQURUSNABDEFGHIJ
      KLMUTVAVCVDWFWANCSWCCUPZWEVTABSJWKWDVSVQWCCVRTVEVFVGVHVIVJ $.

    $( TODO - delete this if not used $)
    $( Epsilon-delta property of a metric space function continuous at ` P ` .
       A variation of ~ metcnpi2 with non-strict ordering.  (Contributed by NM,
       16-Dec-2007.)  (Revised by Mario Carneiro, 13-Nov-2013.) $)
    metcnpi3 $p |- ( ( ( C e. ( *Met ` X ) /\ D e. ( *Met ` Y ) )
        /\ ( F e. ( ( J CnP K ) ` P ) /\ A e. RR+ ) ) -> E. x e. RR+
      A. y e. X ( ( y C P ) <_ x -> ( ( F ` y ) D ( F ` P ) ) <_ A ) ) $=
      ( cfv wcel wa crp wbr wi cxr vz cxmt ccnp co cv clt wral wrex metcnpi2 c2
      cle cdiv rphalfcl ad2antrl simplll simprr cuni simplrl cnprcl syl mopnuni
      eqid wceq eleqtrrd xmetcl syl3anc rpxrd rphalflt w3a xrlelttr expcomd imp
      rpxr syl31anc simpllr ctopon wf mopntopon ffvelrnd simplrr xrltle syl2anc
      cnpf2 imim12d anassrs ralimdva impr breq2 imbi1d ralbidv rspcev rexlimddv
      ) DJUBNOZEKUBNOZPZGFHIUCUDNOZCQOZPZPZBUEZFDUDZUAUEZUFRZWTGNZFGNZEUDZCUFRZ
      SZBJUGZXAAUEZUKRZXFCUKRZSZBJUGZAQUHZUAQUABCDEFGHIJKLMUIWSXBQOZXIPPXBUJULU
      DZQOZXAXQUKRZXLSZBJUGZXOXPXRWSXIXBUMZUNWSXPXIYAWSXPPXHXTBJWSXPWTJOZXHXTSW
      SXPYCPZPZXSXCXGXLYEXATOZXQTOZXBTOZXQXBUFRZXSXCSZYEWMYCFJOYFWMWNWRYDUOZWSX
      PYCUPZYEFHUQZJYEWPFYMOWOWPWQYDURZFGHIYMYMVBUSUTYEWMJYMVCYKDHJLVAUTVDZWTFD
      JVEVFYEXQXPXRWSYCYBUNVGXPYHWSYCXBVMUNXPYIWSYCXBVHUNYFYGYHVIZYIYJYPXSYIXCX
      AXQXBVJVKVLVNYEXFTOZCTOXGXLSYEWNXDKOXEKOYQWMWNWRYDVOZYEJKWTGYEHJVPNOZIKVP
      NOZWPJKGVQYEWMYSYKDHJLVRUTYEWNYTYREIKMVRUTYNFGHIJKWCVFZYLVSYEJKFGUUAYOVSX
      DXEEKVEVFYECWOWPWQYDVTVGXFCWAWBWDWEWFWGXNYAAXQQXJXQVCZXMXTBJUUBXKXSXLXJXQ
      XAUKWHWIWJWKWBWL $.

    txmetcnp.4 $e |- L = ( MetOpen ` E ) $.
    $( Continuity of a binary operation on metric spaces.  (Contributed by
       Mario Carneiro, 2-Sep-2015.) $)
    txmetcnp $p |- ( ( ( C e. ( *Met ` X ) /\ D e. ( *Met ` Y ) /\
      E e. ( *Met ` Z ) ) /\ ( A e. X /\ B e. Y ) ) ->
        ( F e. ( ( ( J tX K ) CnP L ) ` <. A , B >. ) <->
          ( F : ( X X. Y ) --> Z /\ A. z e. RR+ E. w e. RR+
      A. u e. X A. v e. Y ( ( ( A C u ) < w /\ ( B D v ) < w ) ->
        ( ( A F B ) E ( u F v ) ) < z ) ) ) ) $=
      ( wcel vx cxmt cfv w3a wa cop ctmt cxps co cds cmopn cxp wf cv clt wbr wi
      ccnp wral crp wrex ctx wb eqid simpl1 simpl2 tmsxps simpl3 opelxpi adantl
      metcnp syl3anc tmsxpsmopn oveq1d fveq1d eleq2d oveq2 breq1d df-ov syl6eqr
      oveq1i fveq2 oveq2d syl5eqr imbi12d ralxp cle cif ad2antrr simpllr simpld
      wceq simprd simprrl simprrr tmsxpsval2 xmetcl rpxr ad2antrl xrmaxlt bitrd
      cxr imbi1d anassrs 2ralbidva syl5bb rexbidva ralbidv pm5.32da 3bitr3d ) G
      NUBUCTZHOUBUCTZIPUBUCTZUDZENTZFOTZUEZUEZJEFUFZGUGUCHUGUCUHUIUJUCZUKUCZMUR
      UIZUCZTZNOULZPJUMZXSUAUNZXTUIZBUNZUOUPZXSJUCZYGJUCZIUIZAUNZUOUPZUQZUAYEUS
      ZBUTVAZAUTUSZUEZJXSKLVBUIZMURUIZUCZTYFEDUNZGUIZYIUOUPFCUNZHUIZYIUOUPUEZEF
      JUIZUUDUUFJUIZIUIZYNUOUPZUQZCOUSDNUSZBUTVAZAUTUSZUEXRXTYEUBUCTXMXSYETZYDY
      TVCXRXTGHNOXTVDZXKXLXMXQVEZXKXLXMXQVFZVGXKXLXMXQVHXQUUQXNEFNOVIVJABUAXTIX
      SJYAMYEPYAVDZSVKVLXRYCUUCJXRXSYBUUBXRYAUUAMURXRXTKLYAGHNOUURUUSUUTQRUVAVM
      VNVOVPXRYFYSUUPXRYFUEZYRUUOAUTUVBYQUUNBUTYQXSUUDUUFUFZXTUIZYIUOUPZUULUQZC
      OUSDNUSUVBYIUTTZUEZUUNYPUVFUADCNOYGUVCWLZYJUVEYOUULUVIYHUVDYIUOYGUVCXSXTV
      QVRUVIYMUUKYNUOUVIYMUUIYLIUIUUKUUIYKYLIEFJVSWAUVIYLUUJUUIIUVIYLUVCJUCUUJY
      GUVCJWBUUDUUFJVSVTWCWDVRWEWFUVHUVFUUMDCNOUVBUVGUUDNTZUUFOTZUEZUVFUUMVCUVB
      UVGUVLUEZUEZUVEUUHUULUVNUVEUUEUUGWGUPUUGUUEWHZYIUOUPZUUHUVNUVDUVOYIUOUVNE
      FUUDUUFXTGHNOUURXRXKYFUVMUUSWIZXRXLYFUVMUUTWIZUVNXOXPXNXQYFUVMWJZWKZUVNXO
      XPUVSWMZUVBUVGUVJUVKWNZUVBUVGUVJUVKWOZWPVRUVNUUEXBTZUUGXBTZYIXBTZUVPUUHVC
      UVNXKXOUVJUWDUVQUVTUWBEUUDGNWQVLUVNXLXPUVKUWEUVRUWAUWCFUUFHOWQVLUVGUWFUVB
      UVLYIWRWSUUEUUGYIWTVLXAXCXDXEXFXGXHXIXJ $.

    $( Continuity of a binary operation on metric spaces.  (Contributed by
       Mario Carneiro, 2-Sep-2015.) $)
    txmetcn $p |- ( ( C e. ( *Met ` X ) /\ D e. ( *Met ` Y ) /\
      E e. ( *Met ` Z ) ) -> ( F e. ( ( J tX K ) Cn L ) <->
        ( F : ( X X. Y ) --> Z /\ A. x e. X A. y e. Y A. z e. RR+ E. w e. RR+
      A. u e. X A. v e. Y ( ( ( x C u ) < w /\ ( y D v ) < w ) ->
        ( ( x F y ) E ( u F v ) ) < z ) ) ) ) $=
      ( wcel vt cxmt cfv w3a ctx co ccn cxp wf cv ccnp wral wa clt wbr crp wrex
      wi ctopon wb mopntopon txtopon syl2an 3adant3 3ad2ant3 cncnp syl2anc wceq
      cop fveq2 eleq2d ralxp txmetcnp adantlr simplr biantrurd bitr4d 2ralbidva
      syl5bb pm5.32da bitrd ) GNUBUCTZHOUBUCTZIPUBUCTZUDZJKLUEUFZMUGUFTZNOUHZPJ
      UIZJUAUJZWFMUKUFZUCZTZUAWHULZUMZWIAUJZFUJZGUFDUJZUNUOBUJZEUJZHUFWRUNUOUMW
      PWSJUFWQWTJUFIUFCUJUNUOUREOULFNULDUPUQCUPULZBOULANULZUMWEWFWHUSUCTZMPUSUC
      TZWGWOUTWBWCXCWDWBKNUSUCTLOUSUCTXCWCGKNQVAHLORVAKLNOVBVCVDWDWBXDWCIMPSVAV
      EUAJWFMWHPVFVGWEWIWNXBWNJWPWSVIZWKUCZTZBOULANULWEWIUMZXBWMXGUAABNOWJXEVHW
      LXFJWJXEWKVJVKVLXHXGXAABNOXHWPNTWSOTUMZUMZXGWIXAUMZXAWEXIXGXKUTWICDEFWPWS
      GHIJKLMNOPQRSVMVNXJWIXAWEWIXIVOVPVQVRVSVTWA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The uniform structure generated by a metric
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d d u v w x y z $.  $d a d x D $.  $d a d x X $.
    $( Value of the uniform structure generated by metric ` D ` .  (Contributed
       by Thierry Arnoux, 1-Dec-2017.)  (Revised by Thierry Arnoux,
       11-Feb-2018.) $)
    metuval $p |- ( D e. ( PsMet ` X ) -> ( metUnif ` D ) = ( ( X X. X )
      filGen ran ( a e. RR+ |-> ( `' D " ( 0 [,) a ) ) ) ) ) $=
      ( vd vx vy vz vu vw vv cpsmet wcel cv cdm cxp crp co cmpt cfg wceq cfv wa
      ccnv cc0 cico cima crn cmetu cvv df-metu a1i simpr dmeqd psmetdmdm adantr
      eqtr4d sqxpeqd simplr cnveqd imaeq1d mpteq2dva rneqd oveq12d elfvdm fveq2
      cuni wrex eleq2d rspcev mpancom wfun cxad cle wbr wral cmap crab df-psmet
      wb cxr funmpt2 elunirn ax-mp sylibr ovexd fvmptd ) ABKUAZLZDADMZNZNZWKOZC
      PWIUCZUDCMZUEQZUFZRZUGZSQZBBOZCPAUCZWOUFZRZUGZSQKUGVFZUHUIUHDXEWSRTWHCDUJ
      UKWHWIATZUBZWLWTWRXDSXGWKBXGWKANZNZBXGWJXHXGWIAWHXFULUMUMWHBXITXFABUNUOUP
      UQXGWQXCXGCPWPXBXGWNPLZUBZWMXAWOXKWIAWHXFXJURUSUTVAVBVCWHAEMZKUAZLZEKNZVG
      ZAXELZBXOLWHXPABKVDXNWHEBXOXLBTXMWGAXLBKVEVHVIVJKVKXQXPVSFUIGMZXRHMZQUDTX
      RIMZXSQJMZXRXSQYAXTXSQVLQVMVNJFMZVOIYBVOUBGYBVOHVTYBYBOVPQVQKFGIJHVRWAEAK
      WBWCWDWHWTXDSWEWF $.
  $}

  ${
    $d a B $.  $d a D $.  $d a X $.
    metust.1 $e |- F = ran ( a e. RR+ |-> ( `' D " ( 0 [,) a ) ) ) $.
    $( Define a filter base ` F ` generated by a metric ` D ` .  (Contributed
       by Thierry Arnoux, 22-Nov-2017.)  (Revised by Thierry Arnoux,
       11-Feb-2018.) $)
    metustel $p |- ( D e. ( PsMet ` X )
      -> ( B e. F <-> E. a e. RR+ B = ( `' D " ( 0 [,) a ) ) ) ) $=
      ( wcel crp ccnv cc0 cv cico co cima cmpt crn cpsmet cvv wi a1i cfv eleq2i
      wceq wrex elex cnvexg imaexg eleq1a 3syl rexlimdvw eqid elrnmpt pm5.21ndd
      wb syl5bb ) ACGAEHBIZJEKLMZNZOZPZGZBDQUAZGZAURUCZEHUDZCUTAFUBVCARGZVAVEVA
      VFSVCAUTUETVCVDVFEHVCUPRGURRGVDVFSBVBUFUPUQRUGURRAUHUIUJVFVAVEUNSVCEHURAU
      SRUSUKULTUMUO $.

    $d a b A $.  $d a b B $.  $d a b D $.  $d a b F $.  $d a b X $.
    $( Range of the elements of the filter base generated by the metric ` D ` .
       (Contributed by Thierry Arnoux, 28-Nov-2017.)  (Revised by Thierry
       Arnoux, 11-Feb-2018.) $)
    metustss $p |- ( ( D e. ( PsMet ` X ) /\ A e. F ) -> A C_ ( X X. X ) ) $=
      ( cpsmet cfv wcel wa cxp cpw crp ccnv cc0 wss cxr syl ad2antrr cvv cv crn
      cico co cima cmpt wral cdm cnvimass wf wceq psmetf fdm syl5sseq wb cnvexg
      imaexg elpwg 3syl mpbird ralrimiva rnmptss syl5eqss simpr sseldd elpwid
      eqid ) BDGHZIZACIZJZADDKZVKCVLLZAVKCEMBNZOEUAZUCUDZUEZUFZUBZVMFVKVQVMIZEM
      UGVSVMPVKVTEMVKVOMIZJVTVQVLPZVIWBVJWAVIBUHZVQVLBVPUIVIVLQBUJWCVLUKBDULVLQ
      BUMRUNSVIVTWBUOZVJWAVIVNTIVQTIWDBVHUPVNVPTUQVQVLTURUSSUTVAEMVQVMVRVRVGVBR
      VCVIVJVDVEVF $.

    $( Elements of the filter base generated by the metric ` D ` are relations.
       (Contributed by Thierry Arnoux, 28-Nov-2017.)  (Revised by Thierry
       Arnoux, 11-Feb-2018.) $)
    metustrel $p |- ( ( D e. ( PsMet ` X ) /\ A e. F ) -> Rel A ) $=
      ( cpsmet cfv wcel wa cvv cxp wss wrel metustss xpss syl6ss df-rel sylibr
      ) BDGHIACIJZAKKLZMANTADDLUAABCDEFODDPQARS $.

    $( Any two elements of the filter base generated by the metric ` D ` can be
       compared, like for RR+ (i.e. it's totally ordered).  (Contributed by
       Thierry Arnoux, 22-Nov-2017.)  (Revised by Thierry Arnoux,
       11-Feb-2018.) $)
    metustto $p |- ( ( D e. ( PsMet ` X ) /\ A e. F /\ B e. F )
      -> ( A C_ B \/ B C_ A ) ) $=
      ( vb wcel cc0 cico wceq wa wss crp rpred cle wbr a1i wrex cpsmet cfv ccnv
      w3a cv co cima wo simpll simplr cr simpllr cxr 0xr simpl rexrd 0le0 simpr
      icossico syl22anc imass2 sylancom simplrl simplrr 3sstr4d simplll lecasei
      syl orcd olcd adantlll metustel biimpa 3adant3 cmpt oveq2 imaeq2d cbvmptv
      crn rneqi eqtri 3adant2 reeanv sylanbrc r19.29vva ) CEUAUBIZADIZBDIZUDZAC
      UCZJFUEZKUFZUGZLZBWJJHUEZKUFZUGZLZMZABNZBANZUHZFHOOWKOIZWOOIZWSXBWIXCXDMZ
      WSMZXBWKWOXFWKXCXDWSUIPXFWOXCXDWSUJPXFWKWOQRZMZWTXAXHWMWQABXFXGWOUKIZWMWQ
      NZXHWOXCXDWSXGULPXIXGMZWLWPNZXJXKJUMIZWOUMIJJQRZXGXLXMXKUNSXKWOXIXGUOUPXN
      XKUQSXIXGURJWOJWKUSUTWLWPWJVAVHVBXEWNWRXGVCXEWNWRXGVDVEVIXFWOWKQRZMZXAWTX
      PWQWMBAXFXOWKUKIZWQWMNZXPWKXCXDWSXOVFPXQXOMZWPWLNZXRXSXMWKUMIXNXOXTXMXSUN
      SXSWKXQXOUOUPXNXSUQSXQXOURJWKJWOUSUTWPWLWJVAVHVBXEWNWRXOVDXEWNWRXOVCVEVJV
      GVKWIWNFOTZWRHOTZWSHOTFOTWFWGYAWHWFWGYAACDEFGVLVMVNWFWHYBWGWFWHYBBCDEHDFO
      WMVOZVSHOWQVOZVSGYCYDFHOWMWQWKWOLWLWPWJWKWOJKVPVQVRVTWAVLVMWBWNWRFHOOWCWD
      WE $.

    $d a b p q A $.  $d a p q x D $.  $d b p q x y z F $.  $d p q x y z X $.
    $( The identity diagonal is included in all elements of the filter base
       generated by the metric ` D ` .  (Contributed by Thierry Arnoux,
       22-Nov-2017.)  (Revised by Thierry Arnoux, 11-Feb-2018.) $)
    metustid $p |- ( ( D e. ( PsMet ` X ) /\ A e. F ) -> ( _I |` X ) C_ A ) $=
      ( vp vq cfv wcel wa cid cv cc0 wceq crp wbr syl syl2anc cxr cpsmet relres
      cres wrel a1i cop ccnv cico co cima vex brres df-br anbi1i 3bitr3i biimpi
      ideq ad2antlr simpld df-ov fveq2d syl5eq simplll simprd psmet0 eqtr3d clt
      opeq2 0xr rpxr rpgt0 lbico1 syl3anc adantl eqeltrd wfun cdm wb cxp psmetf
      wf ffun ad3antrrr eqeltrrd opelxpi fdm eleqtrrd fvimacnv mpbid simpr wrex
      adantr simplr metustel ad2antrr r19.29a ex relssdv ) BDUAIJZACJZKZGHLDUCZ
      AXBUDXALDUBUEXAGMZHMZUFZXBJZXEAJZXAXFKZABUGNEMZUHUIZUJZOZXGEPXHXIPJZKZXLK
      XEXKAXNXEXKJZXLXNXEBIZXJJZXOXNXPNXJXNXCXCBUIZXPNXNXCXDOZXRXPOXNXSXCDJZXFX
      SXTKZXAXMXFYAXCXDXBQXCXDLQZXTKXFYAXCXDLDHUKZULXCXDXBUMYBXSXTXCXDYCUQUNUOU
      PURZUSZXSXRXCXCUFZBIXPXCXCBUTXSYFXEBXCXDXCVHVAVBRXNWSXTXRNOWSWTXFXMVCXNXS
      XTYDVDZXCBDVESVFXMNXJJZXHXMNTJZXITJNXIVGQYHYIXMVIUEXIVJXIVKNXIVLVMVNVOXNB
      VPZXEBVQZJXQXOVRWSYJWTXFXMWSDDVSZTBWAZYJBDVTZYLTBWBRWCXNXEYLYKXNXTXDDJXEY
      LJYGXNXCXDDYEYGWDXCXDDDWESWSYKYLOZWTXFXMWSYMYOYNYLTBWFRWCWGXEXJBWHSWIWLXN
      XLWJWGXHWTXLEPWKZWSWTXFWMWSWTYPVRWTXFABCDEFWNWOWIWPWQWR $.

    $( Elements of the filter base generated by the metric ` D ` are symmetric.
       (Contributed by Thierry Arnoux, 28-Nov-2017.)  (Revised by Thierry
       Arnoux, 11-Feb-2018.) $)
    metustsym $p |- ( ( D e. ( PsMet ` X ) /\ A e. F ) -> `' A = A ) $=
      ( vp vq cfv wcel wa ccnv wss syl cv wb co wceq crp cxr cxp metustss cnvss
      cpsmet cnvxp syl6sseq wbr cop cico cima simp-4l simpr1r 3anassrs psmetsym
      cc0 simpr1l syl3anc df-ov 3eqtr3g eleq1d wfun wf psmetf ffun 3syl simpllr
      cdm ancomd opelxpi eleqtrrd fvimacnv syl2anc 3bitr3d simpr eleq2d 3bitr4d
      fdm wrex cmpt crn elrnmpt ibi eleq2s ad2antlr r19.29a df-br opelcnv bitri
      eqid vex 3bitr4g 3impb eqbrrdva ) BDUDIJZACJZKZGHALZADDWPADDUAZMZWQWRMABC
      DEFUBZWSWQWRLWRAWRUCDDUEUFNWTWPGOZDJZHOZDJZXAXCWQUGZXAXCAUGZPWPXBXDKZKZXC
      XAUHZAJZXAXCUHZAJZXEXFXHABLUOEOZUIQZUJZRZXJXLPESXHXMSJZKZXPKZXIXOJZXKXOJZ
      XJXLXSXIBIZXNJZXKBIZXNJZXTYAXSYBYDXNXSXCXABQZXAXCBQZYBYDXSWNXDXBYFYGRWNWO
      XGXQXPUKZWPXGXQXPXDXBXDXQXPWPULUMWPXGXQXPXBXBXDXQXPWPUPUMXCXABDUNUQXCXABU
      RXAXCBURUSUTXSBVAZXIBVGZJYCXTPXSWNWRTBVBZYIYHBDVCZWRTBVDVEZXSXIWRYJXSXDXB
      KXIWRJXSXBXDWPXGXQXPVFZVHXCXADDVINXSWNYKYJWRRYHYLWRTBVQVEZVJXIXNBVKVLXSYI
      XKYJJYEYAPYMXSXKWRYJXSXGXKWRJYNXAXCDDVINYOVJXKXNBVKVLVMXSAXOXIXRXPVNZVOXS
      AXOXKYPVOVPWOXPESVRZWNXGYQAESXOVSZVTZCAYSJYQESXOAYRYSYRWIWAWBFWCWDWEXEXKW
      QJXJXAXCWQWFXAXCAGWJHWJWGWHXAXCAWFWKWLWM $.

    $d a p q r v A $.  $d a r u v w D $.  $d r u v w F $.  $d r u v w X $.
    $( For any element ` A ` of the filter base generated by the metric ` D ` ,
       the half element (corresponding to half the distance) is also in this
       base.  (Contributed by Thierry Arnoux, 28-Nov-2017.)  (Revised by
       Thierry Arnoux, 11-Feb-2018.) $)
    metustexhalf $p |- ( ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) /\ A e. F )
      -> E. v e. F ( v o. v ) C_ A ) $=
      ( vb vr wcel wa cc0 co wceq wss crp cxr syl wbr syl21anc vp vq wne cpsmet
      c0 cfv ccnv cv cico cima ccom wrex c2 cdiv simp-4r simplr rphalfcld eqidd
      oveq2 imaeq2d eqeq2d rspcev syl2anc cmpt crn cbvmptv rneqi eqtri metustel
      biimpar wrel relco a1i cop cxp cdm cossxp cnvimass wf psmetf fdm syl5sseq
      dmss rnss xpss12 adantl dmxp rnxp xpeq12d adantr sseqtrd syl5ss ad3antrrr
      sselda opelxp sylib simpll simprl simprr w3a simplll simp1d simp2d simp3d
      jca 3jca wfun simpld ffun sylanbrc eleqtrrd cle clt simprd rpxrd ffvelrnd
      0xr psmetge0 syl3anc df-ov syl6breq cxad syl5eqel caddc cr 0red rehalfcld
      rpred rexrd fvimacnv elico2 biimpa rexadd readdcld sylibr wex vex r19.29a
      df-br ex eqeltrd psmettri syl13anc lt2halvesd eqbrtrd xrlelttrd syl5eqbrr
      elico1 syl23anc syl22anc breqd mpbird simpr brco wi brelrn sseldd adantrr
      ancrd eximdv 3ad2ant1 mpd df-rex syl31anc mpdan relssdv id coeq12d sseq1d
      wb ) EUEUCZCEUDUFJZKZBDJZKZBCUGZLFUHZUIMZUJZNZAUHZUWAUKZBOZADULZFPUVOUVQP
      JZKZUVTKZUVPLUVQUMUNMZUIMZUJZDJZUWJUWJUKZBOZUWDUWGUVLUWJUVPLHUHZUIMZUJZNZ
      HPULZUWKUVKUVLUVNUWEUVTUOZUWGUWHPJUWJUWJNZUWRUWGUVQUVOUWEUVTUPZUQUWGUWJUR
      UWQUWTHUWHPUWNUWHNZUWPUWJUWJUXBUWOUWIUVPUWNUWHLUIUSUTVAVBVCUVLUWKUWRUWJCD
      EHDFPUVSVDZVEHPUWPVDZVEGUXCUXDFHPUVSUWPUVQUWNNUVRUWOUVPUVQUWNLUIUSUTVFVGV
      HVIVJVCUWGUAUBUWLBUWLVKUWGUWJUWJVLVMUWGUAUHZUBUHZVNZUWLJZUXGBJZUWGUXHKZUX
      EEJZUXFEJZKZUXIUXJUXGEEVOZJZUXMUWGUWLUXNUXGUVMUWLUXNOUVNUWEUVTUVMUWLUWJVP
      ZUWJVEZVOZUXNUWJUWJVQUVMUXRUXNVPZUXNVEZVOZUXNUVLUXRUYAOZUVKUVLUWJUXNOZUYB
      UVLCVPZUWJUXNCUWIVRUVLUXNQCVSZUYDUXNNZCEVTZUXNQCWARZWBZUYCUXPUXSOUXQUXTOZ
      UYBUWJUXNWCUWJUXNWDZUXPUXSUXQUXTWEVCRWFUVKUYAUXNNUVLUVKUXSEUXTEEEWGEEWHZW
      IWJWKWLWMWNUXEUXFEEWOZWPUXJUXMKUWGUXKUXLUXHUXIUWGUXHUXMWQUXJUXKUXLWRUXJUX
      KUXLWSUWGUXHUXMUPUWGUXKUXLWTZUXHKZUXEUXFBSZUXIUYOUXEIUHZUWJSZUYQUXFUWJSZK
      ZUYPIEUYOUYQEJZKZUYTKZUYPUXEUXFUVSSZVUCUVLUWEKZUXKUXLWTZVUAUYRUYSVUDVUCVU
      EUXKUXLVUCUVLUWEVUCUWGUVLVUCUWGUXKUXLUYNUXHVUAUYTXAZXBZUWSRVUCUWGUWEVUHUX
      ARXEVUCUWGUXKUXLVUGXCVUCUWGUXKUXLVUGXDXFUYOVUAUYTUPVUBUYRUYSWRVUBUYRUYSWS
      VUFVUAKZUYTKZCXGZUXGUYDJZUXGCUFZUVRJZVUDVUJUVLVUKVUJUVLUWEVUJVUEUXKUXLVUF
      VUAUYTWQZXBZXHZUVLUYEVUKUYGUXNQCXIRRZVUJUXGUXNUYDVUJUXKUXLUXOVUJVUEUXKUXL
      VUOXCZVUJVUEUXKUXLVUOXDZUYMXJZVUJUVLUYFVUQUYHRZXKVUJLQJZUVQQJZVUMQJZLVUMX
      LSZVUMUVQXMSZVUNVVCVUJXQVMVUJUVQVUJUVLUWEVUPXNZXOZVUJUXNQUXGCVUJUVLUYEVUQ
      UYGRVVAXPZVUJLUXEUXFCMZVUMXLVUJUVLUXKUXLLVVKXLSVUQVUSVUTUXEUXFCEXRXSUXEUX
      FCXTZYAVUJVUMVVKUVQXMVVLVUJVVKUXEUYQCMZUYQUXFCMZYBMZUVQVUJVVKVUMQVVLVVJYC
      VUJVVOVUJVVOVVMVVNYDMZYEVUJVVMYEJZVVNYEJZVVOVVPNVUJLYEJZUWHQJZVVMUWIJZVVQ
      VUJYFZVUJUWHVUJUVQVUJUVQVVHYHZYGYIZVUJVVMUXEUYQVNZCUFZUWIUXEUYQCXTVUJVUKV
      WEUYDJZVWEUWJJZVWFUWIJZVURVUJVWEUXNUYDVUJUXKVUAVWEUXNJVUSVUFVUAUYTUPZUXEU
      YQEEWOXJVVBXKVUJUYRVWHVUIUYRUYSWRUXEUYQUWJYSWPVUKVWGKVWIVWHVWEUWICYJVJTYC
      ZVVSVVTKZVWAKZVVQLVVMXLSZVVMUWHXMSZVWLVWAVVQVWNVWOWTLUWHVVMYKYLZXBTZVUJVV
      SVVTVVNUWIJZVVRVWBVWDVUJVVNUYQUXFVNZCUFZUWIUYQUXFCXTVUJVUKVWSUYDJZVWSUWJJ
      ZVWTUWIJZVURVUJVWSUXNUYDVUJVUAUXLVWSUXNJVWJVUTUYQUXFEEWOXJVVBXKVUJUYSVXBV
      UIUYRUYSWSUYQUXFUWJYSWPVUKVXAKVXCVXBVWSUWICYJVJTYCZVWLVWRKZVVRLVVNXLSZVVN
      UWHXMSZVWLVWRVVRVXFVXGWTLUWHVVNYKYLZXBTZVVMVVNYMVCZVUJVVMVVNVWQVXIYNUUAYI
      VVIVUJUVLUXKUXLVUAVVKVVOXLSVUQVUSVUTVWJUXEUXFUYQCEUUBUUCVUJVVOVVPUVQXMVXJ
      VUJVVMVVNUVQVWQVXIVWCVUJVVSVVTVWAVWOVWBVWDVWKVWMVVQVWNVWOVWPXDTVUJVVSVVTV
      WRVXGVWBVWDVXDVXEVVRVXFVXGVXHXDTUUDUUEUUFUUGVVCVVDKVUNVVEVVFVVGWTLUVQVUMU
      UHVJUUIVUKVULKZVUNKUXGUVSJZVUDVXKVUNVXLUXGUVRCYJYLUXEUXFUVSYSYOTUUJVUCBUV
      SUXEUXFVUCUWFUVTVUHXNUUKUULUYOVUAUYTKZIYPZUYTIEULUYOUYTIYPZVXNUYOUXEUXFUW
      LSZVXOUYOUXHVXPUYNUXHUUMUXEUXFUWLYSYOIUXEUXFUWJUWJUAYQZUBYQUUNWPUYNVXOVXN
      UUOZUXHUWGUXKVXRUXLUVMVXRUVNUWEUVTUVMUYTVXMIUVMUYTVUAUVMUYTVUAUVMUYRVUAUY
      SUVMUYRKUXQEUYQUVMUXQEOUYRUVMUXQUXTEUVMUYCUYJUVLUYCUVKUYIWFUYKRUVKUXTENUV
      LUYLWJWKWJUYRUYQUXQJUVMUXEUYQUWJVXQIYQUUPWFUUQUURYTUUSUUTWMUVAWJUVBUYTIEU
      VCYOYRUXEUXFBYSWPUVDUVEYTUVFUWCUWMAUWJDUWAUWJNZUWBUWLBVXSUWAUWJUWAUWJVXSU
      VGZVXTUVHUVIVBVCUVMUVNUVTFPULZUVLUVNVYAUVJUVKBCDEFGVIWFYLYR $.

    $d a y D $.
    $( The filter base generated by a metric ` D ` .  (Contributed by Thierry
       Arnoux, 26-Nov-2017.)  (Revised by Thierry Arnoux, 11-Feb-2018.) $)
    metustfbas $p |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) )
      -> F e. ( fBas ` ( X X. X ) ) ) $=
      ( vz vx vy vp c0 wne wcel wa wss cv wceq crp adantl cvv c1 cpsmet cfv cxp
      cfbas cpw wnel cin wrex wral w3a ccnv cc0 cico co cima metustel simpr cdm
      cnvimass cxr wf psmetf fdm syl adantr syl5sseq eqsstrd rexlimdvw ralrimiv
      ex sylbid pwssb sylibr wex cnvexg imaexg elisset 1rp oveq2 imaeq2d eqeq2d
      rspcev mpan eximi 4syl exbidv mpbird cid cres metustid adantll biimpi cop
      n0 opelresi ibir ne0i exlimiv ssn0 syl2anc nelrdva df-nel simplrl eqeltrd
      wn df-ss sseqin2 simplrr wo simplr simprl metustto syl3anc mpjaodan inex1
      simprr vex pwid a1i elpwid sseq1 ralrimivva 3jca elfvex isfbas2 mpbir2and
      wb xpexg ) CJKZACUAUBZLZMZBCCUCZUDUBLZBYMUENZBJKZJBUFZFOZGOZHOZUGZNZFBUHZ
      HBUIGBUIZUJZYKYOYIYKYSYMNZGBUIYOYKUUFGBYKYSBLZYSAUKZULDOZUMUNZUOZPZDQUHZU
      UFYSABCDEUPZYKUULUUFDQYKUULUUFYKUULMZYSUUKYMYKUULUQUUOAURZUUKYMAUUJUSYKUU
      PYMPZUULYKYMUTAVAUUQACVBYMUTAVCVDVEVFVGVJVHVKVIGBYMVLVMRYLYPYQUUDYLUUGGVN
      ZYPYKUURYIYKUURUUMGVNZYKUUHSLUUHULTUMUNZUOZSLYSUVAPZGVNUUSAYJVOUUHUUTSVPG
      UVASVQUVBUUMGTQLUVBUUMVRUULUVBDTQUUITPZUUKUVAYSUVCUUJUUTUUHUUITULUMVSVTWA
      WBWCWDWEYKUUGUUMGUUNWFWGRGBWNVMYLJBLXEYQYLGBJYLUUGMWHCWIZYSNZUVDJKZYSJKYK
      UUGUVEYIYSABCDEWJWKYLUVFUUGYLIOZCLZIVNZUVFYIUVIYKYIUVIICWNWLVEUVHUVFIUVHU
      VGUVGWMZUVDLZUVFUVHUVKUVGCCWOWPUVDUVJWQVDWRVDVEUVDYSWSWTXAJBXBVMYLUUCGHBB
      YLUUGYTBLZMZMZUUABLZUUAUUANZUUCUVNYSYTNZUVOYTYSNZUVNUVQMUUAYSBUVQUUAYSPZU
      VNUVQUVSYSYTXFWLRYLUUGUVLUVQXCXDUVNUVRMUUAYTBUVRUUAYTPZUVNUVRUVTYTYSXGWLR
      YLUUGUVLUVRXHXDUVNYKUUGUVLUVQUVRXIYIYKUVMXJYLUUGUVLXKYLUUGUVLXPYSYTABCDEX
      LXMXNUVNUUAUUAUUAUUAUELUVNUUAYSYTGXQXOXRXSXTUUBUVPFUUABYRUUAUUAYAWBWTYBYC
      YLYMSLZYNYOUUEMYGYLCSLZUWBUWAYKUWBYIACUAYDRZUWCCCSSYHWTGHFSYMBYEVDYF $.

    $( The uniform structure generated by a metric ` D ` .  (Contributed by
       Thierry Arnoux, 26-Nov-2017.)  (Revised by Thierry Arnoux,
       11-Feb-2018.) $)
    metust $p |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) )
      -> ( ( X X. X ) filGen F ) e. ( UnifOn ` X ) ) $=
      ( vv vw vu cfv wcel wa wss cv wral ccnv wrex w3a syl simplr simpr wne cxp
      c0 cpsmet cfg co cust cpw wi cin cid cres ccom cfbas cfil metustfbas fgcl
      filsspw filtop ad3antrrr simpllr elpwid filss syl13anc ralrimiva ad2antrr
      3syl ex filin syl3anc metustid ad5ant24 sstrd biimpa simprd sylan r19.29a
      elfg adantr ssfg sseldd simpld cnvss cnvxp syl6sseq wceq metustsym adantl
      eqsstr3d metustexhalf r19.41v sstr reximi sylbir syl2anc ssrexv sylc 3jca
      ad4ant13 cvv wb elfvex isust mpbir3and ) CUCUAZACUDIJZKZCCUBZBUEUFZCUGIJZ
      XIXHUHZLZXHXIJZFMZGMZLZXOXIJZUIZGXKNZXNXOUJXIJZGXINZUKCULZXNLZXNOZXIJZXOX
      OUMZXNLZGXIPZQZQZFXINZXGBXHUNIJZXIXHUOIJZXLABCDEUPZBXHUQZXIXHURVGXGYLYMXM
      YNYOXIXHUSVGXGYJFXIXGXNXIJZKZXSYAYIYQXRGXKYQXOXKJZKZXPXQYSXPKZYMYPXOXHLXP
      XQXGYMYPYRXPXGYLYMYNYORZUTXGYPYRXPVAYTXOXHYQYRXPSVBYSXPTXNXOXIXHVCVDVHVEY
      QXTGXIYQXQKYMYPXQXTXGYMYPXQUUAVFXGYPXQSYQXQTXNXOXIXHVIVJVEYQYCYEYHYQHMZXN
      LZYCHBYQUUBBJZKZUUCKZYBUUBXNXFUUDYBUUBLXEYPUUCUUBABCDEVKVLUUEUUCTZVMXGYLY
      PUUCHBPZYNYLYPKZXNXHLZUUHYLYPUUJUUHKHXNBXHVRVNZVOVPZVQYQUUCYEHBUUFYMUUBXI
      JYDXHLZUUBYDLYEXGYMYPUUDUUCUUAUTUUFBXIUUBYQBXILZUUDUUCYQYLUUNXGYLYPYNVSBX
      HVTRZVFYQUUDUUCSWAUUFUUJUUMYQUUJUUDUUCXGYLYPUUJYNUUIUUJUUHUUKWBVPVFUUJYDX
      HOXHXNXHWCCCWDWERUUFUUBUUBOZYDXFUUDUUPUUBWFXEYPUUCUUBABCDEWGVLUUCUUPYDLUU
      EUUBXNWCWHWIUUBYDXIXHVCVDUULVQYQUUNYGGBPZYHUUOYQUUCUUQHBUUFYFUUBLZGBPZUUC
      UUQXGUUDUUSYPUUCGUUBABCDEWJWSUUGUUSUUCKUURUUCKZGBPUUQUURUUCGBWKUUTYGGBYFU
      UBXNWLWMWNWOUULVQYGGBXIWPWQWRWRVEXGCWTJZXJXLXMYKQXAXFUVAXEACUDXBWHGFXIWTC
      XCRXD $.

    $d a v w x y C $.  $d a v w x y D $.  $d a v x y F $.  $d a v w x y X $.
    $( Given a metric ` D ` and a uniform structure generated by that metric,
       Cauchy filter bases on that uniform structure are exactly the filter
       bases which contain balls of any pre-chosen size.  See ~ iscfil .
       (Contributed by Thierry Arnoux, 29-Nov-2017.)  (Revised by Thierry
       Arnoux, 11-Feb-2018.) $)
    cfilucfil $p |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> (
      C e. ( CauFilU ` ( ( X X. X ) filGen F ) ) <-> ( C e. ( fBas ` X )
        /\ A. x e. RR+ E. y e. C ( D " ( y X. y ) ) C_ ( 0 [,) x ) ) ) ) $=
      ( vw cfv wcel wa co cv cc0 wss wrex crp wceq syl2anc vv c0 wne cpsmet cxp
      cfg ccfilu cfbas cima cico wral cust metust cfilufbas sylan wfun ccnv cxr
      simpllr psmetf ffun 3syl ad2antrr simplr metustfbas cdm cnvimass syl5sseq
      wf fdm c2 cdiv simpr rphalfcld eqidd oveq2 imaeq2d eqeq2d rspcev metustel
      biimpar cle wbr rpxr 0le0 rpre rehalfcld rphalflt ltled icossico syl22anc
      0xr a1i imass2 sseq1 elfg syl12anc cfiluexsm syl3anc funimass2 ex reximdv
      sylc ralrimiva jca simprl simp-4r simprd sseq2d rexbidv rspccv nfcv nfre1
      nfv nfral ad4antr fbelss sylancom xpss12 simp-6r sseqtr4d ralrimi r19.29r
      nfan cin sseqin2 biimpi adantl dminss syl6eqssr adantr reximi syl r19.41v
      sstrd sstr sylbir simp-5r biimpa r19.29a wb iscfilu mpbir2and impbida ) F
      UBUCZDFUDJKZLZCFFUEZEUFMZUGJKZCFUHJKZDBNZUULUEZUIZOANZUJMZPZBCQZARUKZLZUU
      GUUJLZUUKUUSUUGUUIFULJKZUUJUUKDEFGHUMZUUICFUNUOUVAUURARUVAUUORKZLZDUPZUUM
      DUQZUUPUIZPZBCQZUURUVEUUFUUHURDVIZUVFUUEUUFUUJUVDUSZDFUTZUUHURDVAVBUVEUVB
      UUJUVHUUIKZUVJUUGUVBUUJUVDUVCVCUUGUUJUVDVDUVEEUUHUHJKZUVHUUHPZINZUVHPZIEQ
      ZUVNUUGUVOUUJUVDDEFGHVEZVCUVEDVFZUVHUUHDUUPVGUVEUUFUVKUWAUUHSZUVLUVMUUHUR
      DVJZVBVHUVEUVGOUUOVKVLMZUJMZUIZEKZUWFUVHPZUVSUVEUUFUWFUVGOGNZUJMZUIZSZGRQ
      ZUWGUVLUVEUWDRKUWFUWFSZUWMUVEUUOUVAUVDVMZVNUVEUWFVOUWLUWNGUWDRUWIUWDSZUWK
      UWFUWFUWPUWJUWEUVGUWIUWDOUJVPVQVRVSTUUFUWGUWMUWFDEFGHVTWATUVEUVDUWEUUPPZU
      WHUWOUVDOURKZUUOURKOOWBWCZUWDUUOWBWCUWQUWRUVDWLWMUUOWDUWSUVDWEWMUVDUWDUUO
      UVDUUOUUOWFZWGUWTUUOWHWIOUUOOUWDWJWKUWEUUPUVGWNVBUVRUWHIUWFEUVQUWFUVHWOVS
      TUVOUVNUVPUVSLIUVHEUUHWPWAWQUUICUVHFBWRWSUVFUVIUUQBCUVFUVIUUQUUMUUPDWTXAX
      BXCXDXEUUGUUTLZUUJUUKUUMUANZPZBCQZUAUUIUKZUUGUUKUUSXFZUXAUXDUAUUIUXAUXBUU
      IKZLZUWKUXBPZUXDGRUXHUWIRKZLZUXIUUMUWKPZBCQZUXDUXKUXILZUUNUWJPZBCQZUUMUWA
      PZBCUKZUXMUXNUUSUXJUXPUXNUUKUUSUUGUUTUXGUXJUXIXGXHUXHUXJUXIVDUURUXPAUWIRU
      UOUWISZUUQUXOBCUXSUUPUWJUUNUUOUWIOUJVPXIXJXKXCUXNUXQBCUXKUXIBUXHUXJBUXAUX
      GBUUGUUTBUUGBXNUUKUUSBUUKBXNUURBARBRXLUUQBCXMXOYDYDUXGBXNYDUXJBXNYDUXIBXN
      YDUXNUULCKZUXQUXNUXTLZUUMUUHUWAUYAUULFPZUYBUUMUUHPUXNUXTUUKUYBUXAUUKUXGUX
      JUXIUXTUXFXPFCUULXQXRZUYCUULFUULFXSTUYAUUFUVKUWBUUEUUFUUTUXGUXJUXIUXTXTUV
      MUWCVBYAXAYBUXPUXRLUXOUXQLZBCQUXMUXOUXQBCYCUYDUXLBCUYDUUMUVGUUNUIZUWKUYDU
      UMUWAUUMYEZUYEUXQUYFUUMSZUXOUXQUYGUUMUWAYFYGYHUUMDYIYJUXOUYEUWKPUXQUUNUWJ
      UVGWNYKYOYLYMTUXMUXILUXLUXILZBCQUXDUXLUXIBCYNUYHUXCBCUUMUWKUXBYPYLYQXRUXH
      UVQUXBPZUXIGRQZIEUXHUVQEKZLZUYIUVQUWKSZGRQZUYJUYLUYILUUFUYKUYNUUEUUFUUTUX
      GUYKUYIYRUXHUYKUYIVDUUFUYKUYNUVQDEFGHVTYSTUYNUYILUYMUYILZGRQUYJUYMUYIGRYN
      UYOUXIGRUYMUYIUXIUVQUWKUXBWOYSYLYQXRUXHUXBUUHPZUYIIEQZUXAUXGUVOUYPUYQLZUU
      GUVOUUTUXGUVTVCUVOUXGUYRIUXBEUUHWPYSXRXHYTYTXDUXAUVBUUJUUKUXELUUAUUGUVBUU
      TUVCYKUAUUICFBUUBYMUUCUUD $.
  $}

  ${
    $d a b D $.  $d a b X $.
    $( The uniform structure generated by metric ` D ` is a uniform structure.
       (Contributed by Thierry Arnoux, 1-Dec-2017.)  (Revised by Thierry
       Arnoux, 11-Feb-2018.) $)
    metuust $p |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) )
      -> ( metUnif ` D ) e. ( UnifOn ` X ) ) $=
      ( va vb c0 wne cpsmet cfv wcel wa cmetu cxp crp cv cico co cima cmpt wceq
      cc0 ccnv crn cfg cust metuval adantl oveq2 imaeq2d cbvmptv metust eqeltrd
      rneqi ) BEFZABGHIZJAKHZBBLCMAUAZTCNZOPZQZRZUBZUCPZBUDHUNUOVBSUMABCUEUFAVA
      BDUTDMUPTDNZOPZQZRCDMUSVEUQVCSURVDUPUQVCTOUGUHUIULUJUK $.
  $}

  ${
    $d b x y C $.  $d a b x y D $.  $d a b x y X $.
    $( Given a metric ` D ` and a uniform structure generated by that metric,
       Cauchy filter bases on that uniform structure are exactly the filter
       bases which contain balls of any pre-chosen size.  See ~ iscfil .
       (Contributed by Thierry Arnoux, 1-Dec-2017.)  (Revised by Thierry
       Arnoux, 11-Feb-2018.) $)
    cfilucfil2 $p |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) -> (
      C e. ( CauFilU ` ( metUnif ` D ) ) <-> ( C e. ( fBas ` X )
        /\ A. x e. RR+ E. y e. C ( D " ( y X. y ) ) C_ ( 0 [,) x ) ) ) ) $=
      ( va vb cfv wcel wa ccfilu cxp crp cc0 cv cico co cima cmpt wceq c0 cmetu
      wne cpsmet ccnv crn cfg cfbas wss wrex metuval adantl fveq2d eleq2d oveq2
      wral imaeq2d cbvmptv rneqi cfilucfil bitrd ) EUAUCZDEUDHIZJZCDUBHZKHZICEE
      LFMDUEZNFOZPQZRZSZUFZUGQZKHZICEUHHIDBOZVOLRNAOPQUIBCUJAMUPJVDVFVNCVDVEVMK
      VCVEVMTVBDEFUKULUMUNABCDVLEGVKGMVGNGOZPQZRZSFGMVJVRVHVPTVIVQVGVHVPNPUOUQU
      RUSUTVA $.
  $}

  ${
    $d x D $.  $d x P $.  $d x R $.  $d x X $.
    $( The ball around a point ` P ` , alternative definition.  (Contributed by
       Thierry Arnoux, 7-Dec-2017.)  (Revised by Thierry Arnoux,
       11-Mar-2018.) $)
    blval2 $p |- ( ( D e. ( PsMet ` X ) /\ P e. X /\ R e. RR+ )
      -> ( P ( ball ` D ) R ) = ( ( `' D " ( 0 [,) R ) ) " { P } ) ) $=
      ( vx cfv wcel w3a co wbr cc0 cima cxr wa wb 3ad2ant2 ex syl3anc bitrd cvv
      cpsmet crp cbl cv clt crab ccnv cico csn wceq rpxr blvalps syl3an3 nfrab1
      nfv nfcv cop cxp wfn psmetf ffn elpreima 3syl 3ad2ant1 opelxp baib biimpd
      wf adantrd simprl simpl2 syl df-ov eleq1i cle simpl3 rpxrd elico1 sylancr
      0xr simpl1 psmetcl psmetge0 jca biantrurd df-3an syl6rbbr syl5bbr anbi12d
      simpr pm5.21ndd vex elimasng mpan2 rabid a1i 3bitr4d eqrd eqtr4d ) ADUAFG
      ZBDGZCUBGZHZBCAUCFIZBEUDZAIZCUEJZEDUFZAUGKCUHIZLZBUILZXBWTXACMGZXDXHUJCUK
      EABCDULUMXCEXKXHXCEUOEXKUPXGEDUNXCBXEUQZXJGZXEDGZXGNZXEXKGZXEXHGZXCXNXMDD
      URZGZXMAFZXIGZNZXPWTXAXNYCOZXBWTXSMAVHAXSUSYDADUTXSMAVAXSXMXIAVBVCVDXCXOY
      CXPXCXTXOYBXCXTXOXAWTXTXOOZXBXTXAXOBXEDDVEVFZPVGVIXCXPXOXCXOXGVJQXCXOYCXP
      OXCXONZXTXOYBXGYGXAYEWTXAXBXOVKZYFVLYBXFXIGZYGXGXFYAXIBXEAVMVNYGYIXFMGZKX
      FVOJZXGHZXGYGKMGXLYIYLOVTYGCWTXAXBXOVPVQKCXFVRVSYGXGYJYKNZXGNYLYGYMXGYGYJ
      YKYGWTXAXOYJWTXAXBXOWAZYHXCXOWJZBXEADWBRYGWTXAXOYKYNYHYOBXEADWCRWDWEYJYKX
      GWFWGSWHWIQWKSXAWTXQXNOZXBXAXETGYPEWLXJBXEDTWMWNPXRXPOXCXGEDWOWPWQWRWS $.
  $}

  $( Membership in a ball, alternative definition.  (Contributed by Thierry
     Arnoux, 26-Jan-2018.)  (Revised by Thierry Arnoux, 11-Mar-2018.) $)
  elbl4 $p |- ( ( ( D e. ( PsMet ` X ) /\ R e. RR+ ) /\ ( A e. X /\ B e. X ) )
    -> ( B e. ( A ( ball ` D ) R ) <-> B ( `' D " ( 0 [,) R ) ) A ) ) $=
    ( cpsmet cfv wcel crp wa cbl co ccnv cc0 cico cima csn wbr cxr wb w3a df-br
    rpxr blcomps sylanl2 simpll simprr simplr blval2 eleq2d syl3anc cop syl6bbr
    elimasng ancoms adantl 3bitrd ) CEFGHZDIHZJZAEHZBEHZJZJZBADCKGZLHZABDVELZHZ
    ACMNDOLPZBQPZHZBAVIRZUSURDSHVCVFVHTDUCBCADEUDUEVDURVBUSVHVKTURUSVCUFUTVAVBU
    GURUSVCUHURVBUSUAVGVJACBDEUIUJUKVCVKVLTZUTVBVAVMVBVAJVKBAULVIHVLVIBAEEUNBAV
    IUBUMUOUPUQ $.

  ${
    $d a e w D $.  $d a e X $.  $d w V $.
    $( Elementhood in the uniform structure generated by a metric ` D `
       (Contributed by Thierry Arnoux, 8-Dec-2017.)  (Revised by Thierry
       Arnoux, 11-Feb-2018.) $)
    metuel $p |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) ->
      ( V e. ( metUnif ` D ) <-> ( V C_ ( X X. X )
        /\ E. w e. ran ( a e. RR+ |-> ( `' D " ( 0 [,) a ) ) ) w C_ V ) ) ) $=
      ( ve c0 wne cfv wcel wa crp cc0 cv cico co cima cmpt wss wceq cpsmet ccnv
      cmetu cxp crn cfg wrex metuval adantl eleq2d cfbas wb oveq2 imaeq2d rneqi
      cbvmptv metustfbas elfg syl bitrd ) DGHZBDUAIJZKZCBUCIZJCDDUDZELBUBZMENZO
      PZQZRZUEZUFPZJZCVESANCSAVKUGKZVCVDVLCVBVDVLTVABDEUHUIUJVCVKVEUKIJVMVNULBV
      KDFVJFLVFMFNZOPZQZREFLVIVQVGVOTVHVPVFVGVOMOUMUNUPUOUQACVKVEURUSUT $.
  $}

  ${
    $d a d w x y D $.  $d d w x y V $.  $d a d x y X $.
    metuel2.u $e |- U = ( metUnif ` D ) $.
    $( Elementhood in the uniform structure generated by a metric ` D `
       (Contributed by Thierry Arnoux, 24-Jan-2018.)  (Revised by Thierry
       Arnoux, 11-Feb-2018.) $)
    metuel2 $p |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) ->
      ( V e. U <-> ( V C_ ( X X. X )
        /\ E. d e. RR+ A. x e. X A. y e. X ( ( x D y ) < d -> x V y ) ) ) ) $=
      ( vw va wcel wa wss cv crp cc0 wrex wb cvv cxr c0 wne cpsmet cfv cxp ccnv
      cmetu cico co cima cmpt crn clt wbr wral eleq2i a1i metuel wceq wex oveq2
      wi vex imaeq2d cbvmptv elrnmpt ax-mp anbi1i r19.41v bitr4i df-rex rexcom4
      exbii 3bitr4i cnvexg imaexg sseq1 ceqsexgv 3syl rexbidv adantr syl5bb cop
      cdm cnvimass wf simpll psmetf fdm syl5sseq ssrel2 syl simplr simpr opelxp
      sylanbrc biantrurd cle w3a simp-4l psmetcl syl3anc 3biant1d simpllr rpxrd
      psmetge0 0xr elico1 sylancr 3bitr4d df-ov eleq1i syl6bb wfn elpreima 4syl
      ffn anasss df-br imbi12d 2ralbidva bitr4d rexbidva pm5.32da adantl 3bitrd
      bitrd ) FUAUBZCFUCUDZKZLZEDKZECUGUDZKZEFFUEZMZINZEMZIJOCUFZPJNZUHUIZUJZUK
      ZULZQZLZYPANZBNZCUIZGNZUMUNZUUGUUHEUNZVBZBFUOAFUOZGOQZLZYLYNRYKDYMEHUPUQI
      CEFJURYJUUFUUPRYHYJYPUUEUUOYJYPLZUUEYSPUUJUHUIZUJZEMZGOQZUUOUUEYQUUSUSZYR
      LZIUTZGOQZUUQUVAYQUUDKZYRLZIUTUVCGOQZIUTUUEUVEUVGUVHIUVGUVBGOQZYRLUVHUVFU
      VIYRYQSKUVFUVIRIVCGOUUSYQUUCSJGOUUBUUSYTUUJUSUUAUURYSYTUUJPUHVAVDVEVFVGVH
      UVBYRGOVIVJVMYRIUUDVKUVCGIOVLVNYJUVEUVARYPYJUVDUUTGOYJYSSKUUSSKUVDUUTRCYI
      VOYSUURSVPYRUUTIUUSSYQUUSEVQVRVSVTWAWBUUQUUTUUNGOUUQUUJOKZLZUUTUUGUUHWCZU
      USKZUVLEKZVBZBFUOAFUOZUUNUVKUUSYOMUUTUVPRUVKCWDZUUSYOCUURWEUVKYJYOTCWFZUV
      QYOUSYJYPUVJWGCFWHZYOTCWIVSWJABFFUUSEWKWLUVKUUMUVOABFFUVKUUGFKZUUHFKZLLZU
      UKUVMUULUVNUVKUVTUWAUUKUVMRUVKUVTLZUWALZUVLCUDZUURKZUVLYOKZUWFLZUUKUVMUWD
      UWGUWFUWDUVTUWAUWGUVKUVTUWAWMZUWCUWAWNZUUGUUHFFWOWPWQUWDUUKUUIUURKZUWFUWD
      PUUIWRUNZUUKLZUUITKZUWLUUKWSZUUKUWKUWDUUKUWLUWNUWDYJUVTUWAUWNYJYPUVJUVTUW
      AWTZUWIUWJUUGUUHCFXAXBXCUWDYJUVTUWAUUKUWMRUWPUWIUWJYJUVTUWAWSUWLUUKUUGUUH
      CFXFWQXBUWDPTKUUJTKUWKUWORXGUWDUUJUUQUVJUVTUWAXDXEPUUJUUIXHXIXJUUIUWEUURU
      UGUUHCXKXLXMUWDYJUVRCYOXNUVMUWHRUWPUVSYOTCXQYOUVLUURCXOXPXJXRUULUVNRUWBUU
      GUUHEXSUQXTYAYBYCYGYDYEYF $.
  $}

  ${
    $d a r w D $.  $d a r w P $.  $d a r w V $.  $d a r w X $.
    $( The "section" image of an entourage at a point ` P ` always contains a
       ball (centered on this point).  (Contributed by Thierry Arnoux,
       8-Dec-2017.) $)
    metustbl $p |- ( ( D e. ( PsMet ` X ) /\ V e. ( metUnif ` D ) /\ P e. X )
      -> E. a e. ran ( ball ` D ) ( P e. a /\ a C_ ( V " { P } ) ) ) $=
      ( vr vw cfv wcel w3a cv cima wss wa crn wrex co crp cvv wb cpsmet csn cbl
      cmetu ccnv cc0 cico simp1 simp3 cmpt wceq simpr eqid elrnmpt ax-mp biimpi
      vex ad2antlr sseq1 biimpcd reximdv sylc c0 wne ne0i simp2 metuel simplbda
      syl cxp syl21anc r19.29a imass1 reximi blval2 sseq1d rexbidva syl5ibr imp
      3expa blssexps 3adant2 mpbird ) ADUAHIZCAUDHIZBDIZJZBEKZIWHCBUBZLZMNEAUCH
      ZOPZBFKZWKQZWJMZFRPZWGWDWFAUEUFWMUGQLZCMZFRPZWPWDWEWFUHZWDWEWFUIZWGGKZCMZ
      WSGFRWQUJZOZWGXBXEIZNZXCNXCXBWQUKZFRPZWSXGXCULXFXIWGXCXFXIXBSIXFXITGUQFRW
      QXBXDSXDUMUNUOUPURXCXHWRFRXHXCWRXBWQCUSUTVAVBWGDVCVDZWDWEXCGXEPZWGWFXJXAD
      BVEVIWTWDWEWFVFXJWDNWECDDVJMXKGACDFVGVHVKVLWDWFNZWSWPWSWPXLWQWILZWJMZFRPW
      RXNFRWQCWIVMVNXLWOXNFRWDWFWMRIZWOXNTWDWFXOJWNXMWJABWMDVOVPVTVQVRVSVKWDWFW
      LWPTWEEWJABDFWAWBWC $.
  $}

  ${
    $d a b d e v x D $.  $d a b d e v x X $.
    $( The topology induced by a uniform structure generated by a metric ` D `
       is generated by that metric's open balls.  (Contributed by Thierry
       Arnoux, 6-Dec-2017.)  (Revised by Thierry Arnoux, 11-Mar-2018.) $)
    psmetutop $p |- ( ( X =/= (/) /\ D e. ( PsMet ` X ) ) ->
      ( unifTop ` ( metUnif ` D ) ) = ( topGen ` ran ( ball ` D ) ) ) $=
      ( va vx vb vv vd ve cfv wcel wa cv wss wrex cima wceq syl cvv wb crp cuni
      wne cpsmet cmetu cutop cbl crn ctg wral cpw csn crab cust metuust utopval
      c0 eleq2d syl6bb biimpa simpld elpwid unirnblps ad2antlr sseqtr4d simp-5r
      rabid simplr ad3antrrr simpllr sseldd metustbl syl3anc sstr expcom anim2d
      simpr reximdv sylc simprd r19.21bi r19.29a ralrimiva fvex rnex eltg2 mp1i
      jca mpbird sseqtrd elpwg adantl ccnv cico co cmpt sselda blssexps syl2anc
      cc0 mpbid blval2 3expa sseq1d rexbidva syl21anc cnvexg imaexg eqid imaeq1
      ralrimivw rexrnmpt 3syl wi cxp cfg cfbas oveq2 imaeq2d cbvmptv metustfbas
      rneqi ssfg metuval ssrexv ad2antrr mpd biimpar syldan impbida eqrdv ) BUP
      UBZABUCIZJZKZCAUDIZUEIZAUFIZUGZUHIZYNCLZYPJZYTYSJZYNUUAKZUUBYTYRUAZMZDLZE
      LZJZUUGYTMZKZEYRNZDYTUIZKZUUCUUEUULUUCYTBUUDUUCYTBUUCYTBUJZJZFLZUUFUKZOZY
      TMZFYONZDYTUIZYNUUAUUOUVAKZYNUUAYTUVACUUNULZJUVBYNYPUVCYTYNYOBUMIJYPUVCPA
      BUNDFYOBCUOQUQUVACUUNVFURZUSZUTVAZYMUUDBPZYKUUAABVBZVCVDUUCUUKDYTUUCUUFYT
      JZKZUUSUUKFYOUVJUUPYOJZKZUUSKZUUSUUHUUGUURMZKZEYRNZUUKUVLUUSVPUVMYMUVKUUF
      BJZUVPYKYMUUAUVIUVKUUSVEUVJUVKUUSVGUVMYTBUUFUUCYTBMZUVIUVKUUSUVFVHUUCUVIU
      VKUUSVIVJAUUFUUPBEVKVLUUSUVOUUJEYRUUSUVNUUIUUHUVNUUSUUIUUGUURYTVMVNVOVQVR
      UUCUUTDYTUUCUUOUVAUVEVSVTWAWBWGYRRJZUUBUUMSZUUCYQAUFWCWDZDEYTYRRWEZWFWHYN
      UUBUVBUUAYNUUBKZUUOUVAUWCUUOUVRUWCYTUUDBUWCUUEUULYNUUBUUMUVSUVTYNUWAUWBWF
      USZUTYMUVGYKUUBUVHVCWIZUUBUUOUVRSYNYTBYSWJWKWHUWCUUTDYTUWCUVIKZUUSFGTAWLZ
      WSGLZWMWNZOZWOZUGZNZUUTUWFUWMUWJUUQOZYTMZGTNZUWFYMUVQUUFUWHYQWNZYTMZGTNZU
      WPYKYMUUBUVIVIZUWCYTBUUFUWEWPZUWFUUKUWSUWCUUKDYTUWCUUEUULUWDVSVTUWFYMUVQU
      UKUWSSUWTUXAEYTAUUFBGWQWRWTYMUVQKZUWSUWPUXBUWRUWOGTUXBUWHTJZKUWQUWNYTYMUV
      QUXCUWQUWNPAUUFUWHBXAXBXCXDUSXEUWFYMUWJRJZGTUIUWMUWPSUWTYMUXDGTYMUWGRJUXD
      AYLXFUWGUWIRXGQXJUUSUWOGFTUWJUWKRUWKXHUUPUWJPUURUWNYTUUPUWJUUQXIXCXKXLWHY
      NUWMUUTXMZUUBUVIYNUWLYOMUXEYNUWLBBXNZUWLXOWNZYOYNUWLUXFXPIJUWLUXGMAUWLBHU
      WKHTUWGWSHLZWMWNZOZWOGHTUWJUXJUWHUXHPUWIUXIUWGUWHUXHWSWMXQXRXSYAXTUWLUXFY
      BQYMYOUXGPYKABGYCWKVDUUSFUWLYOYDQYEYFWBWGYNUUAUVBUVDYGYHYIYJ $.

    $( The topology induced by a uniform structure generated by an extended
       metric ` D ` is that metric's open sets.  (Contributed by Thierry
       Arnoux, 11-Mar-2018.) $)
    xmetutop $p |- ( ( X =/= (/) /\ D e. ( *Met ` X ) ) ->
      ( unifTop ` ( metUnif ` D ) ) = ( MetOpen ` D ) ) $=
      ( c0 wne cxmt cfv wcel wa cmetu cutop cbl crn cmopn cpsmet wceq xmetpsmet
      ctg psmetutop sylan2 eqid mopnval adantl eqtr4d ) BCDZABEFGZHAIFJFZAKFLQF
      ZAMFZUEUDABNFGUFUGOABPABRSUEUHUGOUDAUHBUHTUAUBUC $.
  $}

  ${
    xmsusp.x $e |- X = ( Base ` F ) $.
    xmsusp.d $e |- D = ( ( dist ` F ) |` ( X X. X ) ) $.
    xmsusp.u $e |- U = ( UnifSt ` F ) $.
    $( If the uniform set of a metric space is the uniform structure generated
       by its metric, then it is a uniform space.  (Contributed by Thierry
       Arnoux, 14-Dec-2017.) $)
    xmsusp $p |- ( ( X =/= (/) /\ F e. *MetSp /\ U = ( metUnif ` D ) )
      -> F e. UnifSp ) $=
      ( c0 wne cxme wcel cmetu cfv wceq w3a cust ctopn cutop 3ad2ant2 syl2anc
      cusp simp3 simp1 xmsxmet cpsmet xmetpsmet metuust sylan2 eqeltrd xmetutop
      cxmt cmopn fveq2d eqid xmstopn 3eqtr4rd isusp sylanbrc ) DHIZCJKZBALMZNZO
      ZBDPMZKCQMZBRMZNCUAKVCBVAVDUSUTVBUBZVCUSADUKMKZVAVDKZUSUTVBUCZUTUSVHVBACD
      EFUDSZVHUSADUEMKVIADUFADUGUHTUIVCVARMZAULMZVFVEVCUSVHVLVMNVJVKADUJTVCBVAR
      VGUMUTUSVEVMNVBAVECDVEUNZEFUOSUPDBVECEGVNUQUR $.
  $}

  ${
    $d a b u v w A $.  $d a b u v w D $.  $d a b u v w X $.
    $( The uniform structure generated by the restriction of a metric is its
       trace.  (Contributed by Thierry Arnoux, 18-Dec-2017.) $)
    restmetu $p |- ( ( A =/= (/) /\ D e. ( PsMet ` X ) /\ A C_ X ) ->
      ( ( metUnif ` D ) |`t ( A X. A ) ) = ( metUnif ` ( D |` ( A X. A ) ) )
      ) $=
      ( va vv vb vw c0 cfv wcel wss crp cv cin wceq syl2anc cvv wrex wa wb cres
      vu wne cpsmet w3a cxp ccnv cc0 cico co cima cmpt crn cfg crab cmetu crest
      cpw cfbas simp1 psmetres2 3adant1 oveq2 imaeq2d cbvmptv rneqi syl metuval
      metustfbas fgval fvex elfvexd xpexg restval sylancr inss2 mpbiri vex elpw
      sseq1 sylibr rexlimivw adantl nfv nfmpt1 nfrn nfcri nfan nfcv nfin simplr
      nfne ineq1 cxr wfun simp2 psmetf ffun respreima 4syl ad6antr eqtr4d inex1
      wf rspe eqid elrnmpt ax-mp simpllr ssinss1 a1i pweq eleq2d syl6bb syl6bbr
      ssin ad5antlr mpbir2and inelcm sylib r19.29af2 ssn0 ancoms 3adant2 metuel
      simplbda adantr r19.29a r19.29an jca cdif cun simprl elpwid eqeq2d rspcev
      unssd eqsstr3d 3bitri wex simpl3 xpss12 sstrd difssd eqidd ad4antr cnvexg
      imaexg mpbird cdm cnvimass fdm syl5sseq ssdif0 0ss syl6eqss simpr ssundif
      difcom difdif2 sseq1i elin anbi1i ancom n0 df-rex 3bitr4i biimpi ad2antll
      exbii r19.29vva indir incom disjdif eqtr3i uneq2i un0 3eqtri df-ss ineq2d
      syl5req impbida neeq1d elrab 3bitr4g eqrdv eqtrd 3eqtr4rd ) AHUCZBCUDIZJZ
      ACKZUEZAAUFZDLBUWNUAZUGZUHDMZUIUJZUKZULZUMZUNUJZUXAEMZURZNZHUCZEUWNURZUOZ
      UWOUPIZBUPIZUWNUQUJZUWMUXAUWNUSIJZUXBUXHOUWMUWIUWOAUDIJZUXLUWIUWKUWLUTUWK
      UWLUXMUWIBACVAVBZUWOUXAAFUWTFLUWPUHFMZUIUJZUKZULDFLUWSUXQUWQUXOOZUWRUXPUW
      PUWQUXOUHUIVCZVDVEZVFVIPEUXAUWNVJVGUWMUXMUXIUXBOUXNUWOADVHVGUWMUXKEUXJUXC
      UWNNZULZUMZUXHUWMUXJQJUWNQJZUXKUYCOBUPVKUWMAQJZUYEUYDUWMUWOUDAUXNVLZUYFAA
      QQVMPEUWNUXJQQVNVOUWMUBUYCUXHUWMUBMZUYAOZEUXJRZUYGUXGJZUXAUYGURZNZHUCZSZU
      YGUYCJZUYGUXHJUWMUYIUYNUWMUYISUYJUYMUYIUYJUWMUYHUYJEUXJUYHUYGUWNKZUYJUYHU
      YPUYAUWNKUXCUWNVPUYGUYAUWNVTVQUYGUWNUBVRZVSWAWBWCUWMUYHUYMEUXJUWMUXCUXJJZ
      SZUYHSZGMZUXCKZUYMGDLBUGZUWRUKZULZUMZUYTVUAVUFJZSZVUBSZVUAVUDOZUYMDLVUHVU
      BDUYTVUGDUYTDWDDGVUFDVUEDLVUDWEWFWGWHVUBDWDWHDUYLHDUXAUYKDUWTDLUWSWEWFDUY
      KWIWJDHWIWLVUIUWQLJZSZVUJSZVUAUWNNZUXAJZVUNUYKJZUYMVUMVUNUWSOZDLRZVUOVUMV
      UKVUQVURVUIVUKVUJWKVUMVUNVUDUWNNZUWSVUJVUNVUSOVULVUAVUDUWNWMWCUWMUWSVUSOZ
      UYRUYHVUGVUBVUKVUJUWMUWKCCUFZWNBXDZBWOZVUTUWIUWKUWLWPZBCWQZVVAWNBWRZUWRUW
      NBWSWTXAXBVUQDLXEPVUNQJVUOVURTVUAUWNGVRZXCZDLUWSVUNUWTQUWTXFXGXHWAVUMVUPV
      UNUXCKZVUNUWNKZVUMVUBVVIVUHVUBVUKVUJXIVUAUWNUXCXJVGVVJVUMVUAUWNVPXKUYHVUP
      VVIVVJSZTUYSVUGVUBVUKVUJUYHVUPVUNUYAKZVVKUYHVUPVUNUYAURZJVVLUYHUYKVVMVUNU
      YGUYAXLXMVUNUYAVVHVSXNVUNUXCUWNXPXOXQXRVUNUXAUYKXSPVUIVUGVUJDLRZUYTVUGVUB
      WKVUAQJVUGVVNTVVGDLVUDVUAVUEQVUEXFZXGXHXTYAUYSVUBGVUFRZUYHUWMUYRUXCVVAKZV
      VPUWMCHUCZUWKUYRVVQVVPSTUWIUWLVVRUWKUWLUWIVVRACYBYCYDZVVDGBUXCCDYEPYFYGYH
      YIYJUWMUYNSZUYGVVAUWNYKZYLZUXJJZUYGVWBUWNNZOZUYIVVTVWCVWBVVAKZVUAVWBKZGVU
      FRZVVTUYGVWAVVAVVTUYGUWNVVAVVTUYGUWNUWMUYJUYMYMYNZVVTUWLUWLUWNVVAKUWIUWKU
      WLUYNUUAZVWJACACUUBPUUCVVTVVAUWNUUDYQVVTUXCUXQOZVWHEFUYKLVVTUXCUYKJZSZUXO
      LJZSZVWKSZVUCUXPUKZVUFJZVWQVWBKZVWHVWPVWRVWQVUDOZDLRZVWPVWNVWQVWQOZVXAVWM
      VWNVWKWKVWPVWQUUEVWTVXBDUXOLUXRVUDVWQVWQUXRUWRUXPVUCUXSVDYOYPPVWPUWKVUCQJ
      VWQQJVWRVXATUWMUWKUYNVWLVWNVWKVVDUUFZBUWJUUGVUCUXPQUUHDLVUDVWQVUEQVVOXGWT
      UUIVWPVWQVVAYKZVWQUWNNZYLZUYGKZVWSVWPVXDVXEUYGVWPVXDHUYGVWPVWQVVAKZVXDHOV
      WPUWKVXHVXCUWKBUUJZVWQVVABUXPUUKUWKVVBVXIVVAOVVEVVAWNBUULVGUUMVGVWQVVAUUN
      XTUYGUUOUUPVWPVXEUXQUYGVWPUWKVVBVVCUXQVXEOVXCVVEVVFUXPUWNBWSWTVWPUXQUXCUY
      GVWOVWKUUQVWPUXCUYGVVTVWLVWNVWKXIYNYRYRYQVWSVWQUYGYKVWAKVWQVWAYKZUYGKVXGV
      WQUYGVWAUURVWQUYGVWAUUSVXJVXFUYGVWQVVAUWNUUTUVAYSWAVWGVWSGVWQVUFVUAVWQVWB
      VTYPPUYMVWKFLRZEUYKRZUWMUYJUYMVXLUXCUYLJZEYTVWLVXKSZEYTUYMVXLVXMVXNEVXMUX
      CUXAJZVWLSVXKVWLSVXNUXCUXAUYKUVBVXOVXKVWLUXCQJVXOVXKTEVRFLUXQUXCUWTQUXTXG
      XHUVCVXKVWLUVDYSUVJEUYLUVEVXKEUYKUVFUVGUVHUVIUVKVVTVVRUWKVWCVWFVWHSTUWMVV
      RUYNVVSYGUWMUWKUYNVVDYGGBVWBCDYEPXRVVTVWDUYGUWNNZUYGVWDVXPVWAUWNNZYLVXPHY
      LVXPUYGVWAUWNUVLVXQHVXPUWNVWANVXQHUWNVWAUVMUWNVVAUVNUVOUVPVXPUVQUVRVVTUYP
      VXPUYGOVWIUYGUWNUVSXTUWAUYHVWEEVWBUXJUXCVWBOUYAVWDUYGUXCVWBUWNWMYOYPPUWBU
      YGQJUYOUYITUYQEUXJUYAUYGUYBQUYBXFXGXHUXFUYMEUYGUXGUXCUYGOZUXEUYLHVXRUXDUY
      KUXAUXCUYGXLUVTUWCUWDUWEUWFUWGUWH $.
  $}

  ${
    $d a c d e u v x y C $.  $d b c d f u v x y D $.  $d c d u v x y F $.
    $d u v x y U $.  $d u v x V $.  $d a c d e u v x y X $.
    $d b c d f u v x y Y $.  $d c d u v x y ph $.
    metucn.u $e |- U = ( metUnif ` C ) $.
    metucn.v $e |- V = ( metUnif ` D ) $.
    metucn.x $e |- ( ph -> X =/= (/) ) $.
    metucn.y $e |- ( ph -> Y =/= (/) ) $.
    metucn.c $e |- ( ph -> C e. ( PsMet ` X ) ) $.
    metucn.d $e |- ( ph -> D e. ( PsMet ` Y ) ) $.
    $( Uniform continuity in metric spaces.  Compare the order of the
       quantifiers with ~ metcn .  (Contributed by Thierry Arnoux,
       26-Jan-2018.)  (Revised by Thierry Arnoux, 11-Feb-2018.) $)
    metucn $p |- ( ph -> ( F e. ( U uCn V ) <-> ( F : X --> Y
      /\ A. d e. RR+ E. c e. RR+ A. x e. X A. y e. X
      ( ( x C y ) < c -> ( ( F ` x ) D ( F ` y ) ) < d ) ) ) ) $=
      ( wcel crp vu vv va vb ve vf cucn co wf cv wbr cfv wi wral ccnv cico cima
      cc0 cmpt crn wrex wa clt cxp cfg cmetu cpsmet wceq metuval syl5eq oveq12d
      syl eleq2d eqid wne cust oveq2 imaeq2d cbvmptv rneqi metust syl2anc cfbas
      c0 metustfbas isucn2 bitrd wb eqeq2d rspcev adantl metustel adantr mpbird
      mpan2 imbi2d ralbidv rexralbidv ralxfr2d imbi1d 2ralbidv rexxfr2d ad4antr
      simpr breqd simplr simprr simprl cbl rpxr elbl3ps sylanl2 bitr3d syl22anc
      cxr simpllr simp-4r ffvelrnd imbi12d 2ralbidva rexbidva ralbidva pm5.32da
      elbl4 ) AGFHUGUHZSZIJGUIZBUJZCUJZUAUJZUKZYHGULZYIGULZUBUJZUKZUMZCIUNZBIUN
      UAUCTDUOZURUCUJZUPUHZUQZUSZUTZVAZUBUDTEUOZURUDUJZUPUHZUQZUSZUTZUNZVBZYGYH
      YIDUHKUJZVCUKZYLYMEUHLUJZVCUKZUMZCIUNBIUNZKTVAZLTUNZVBAYFGIIVDZUUCVEUHZJJ
      VDZUUJVEUHZUGUHZSUULAYEUVEGAFUVBHUVDUGAFDVFULZUVBMADIVGULSZUVFUVBVHQDIUCV
      IVLVJAHEVFULZUVDNAEJVGULSZUVHUVDVHREJUDVIVLVJVKVMABCUUCUUJUVBGUVDIJUBUAUV
      BVNUVDVNAIWDVOZUVGUVBIVPULSOQDUUCIKUUBKTYRURUUMUPUHZUQZUSUCKTUUAUVLYSUUMV
      HYTUVKYRYSUUMURUPVQVRVSVTZWAWBAJWDVOZUVIUVDJVPULSPREUUJJLUUILTUUEURUUOUPU
      HZUQZUSUDLTUUHUVPUUFUUOVHUUGUVOUUEUUFUUOURUPVQVRVSVTZWAWBAUVJUVGUUCUVAWCU
      LSOQDUUCIUEUUBUETYRURUEUJZUPUHZUQZUSUCUETUUAUVTYSUVRVHYTUVSYRYSUVRURUPVQV
      RVSVTZWEWBAUVNUVIUUJUVCWCULSPREUUJJUFUUIUFTUUEURUFUJZUPUHZUQZUSUDUFTUUHUW
      DUUFUWBVHUUGUWCUUEUUFUWBURUPVQVRVSVTZWEWBWFWGAYGUUKUUTAYGVBZUUKYHYIUVLUKZ
      YLYMUVPUKZUMZCIUNBIUNZKTVAZLTUNZUUTAUUKUWLWHYGAUUKYKUWHUMZCIUNZBIUNZUAUUC
      VAZLTUNUWLAUUDUWPUBLUVPUUJTUUJAUUOTSZVBUVPUUJSZUVPUWDVHZUFTVAZUWQUWTAUWQU
      VPUVPVHZUWTUVPVNUWSUXAUFUUOTUWBUUOVHZUWDUVPUVPUXBUWCUVOUUEUWBUUOURUPVQVRW
      IWJWOWKAUWRUWTWHZUWQAUVIUXCRUVPEUUJJUFUWEWLVLWMWNAUVIYNUUJSYNUVPVHZLTVAWH
      RYNEUUJJLUVQWLVLAUXDVBZYQUWNUABUUCIUXEYPUWMCIUXEYOUWHYKUXEYNUVPYLYMAUXDXD
      XEWPWQWRWSAUWPUWKLTAUWOUWJUAKUVLUUCTUUCAUUMTSZVBUVLUUCSZUVLUVTVHZUETVAZUX
      FUXIAUXFUVLUVLVHZUXIUVLVNUXHUXJUEUUMTUVRUUMVHZUVTUVLUVLUXKUVSUVKYRUVRUUMU
      RUPVQVRWIWJWOWKAUXGUXIWHZUXFAUVGUXLQUVLDUUCIUEUWAWLVLWMWNAUVGYJUUCSYJUVLV
      HZKTVAWHQYJDUUCIKUVMWLVLAUXMVBZUWMUWIBCIIUXNYKUWGUWHUXNYJUVLYHYIAUXMXDXEW
      TXAXBWQWGWMUWFUWKUUSLTUWFUWQVBZUWJUURKTUXOUXFVBZUWIUUQBCIIUXPYHISZYIISZVB
      ZVBZUWGUUNUWHUUPUXTUVGUXFUXRUXQUWGUUNWHAUVGYGUWQUXFUXSQXCUXOUXFUXSXFUXPUX
      QUXRXGZUXPUXQUXRXHZUVGUXFVBUXRUXQVBZVBYHYIUUMDXIULUHSZUWGUUNYIYHDUUMIYDUX
      FUVGUUMXOSUYCUYDUUNWHUUMXJYHDYIUUMIXKXLXMXNUXTUVIUWQYMJSZYLJSZUWHUUPWHAUV
      IYGUWQUXFUXSRXCUWFUWQUXFUXSXPUXTIJYIGAYGUWQUXFUXSXQZUYAXRUXTIJYHGUYGUYBXR
      UVIUWQVBUYEUYFVBZVBYLYMUUOEXIULUHSZUWHUUPYMYLEUUOJYDUWQUVIUUOXOSUYHUYIUUP
      WHUUOXJYLEYMUUOJXKXLXMXNXSXTYAYBWGYCWG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Examples of metric spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d u v w D $.  $d u v w V $.  $d u v w x y X $.
    dscmet.1 $e |- D = ( x e. X , y e. X |-> if ( x = y , 0 , 1 ) ) $.
    $( The discrete metric on any set ` X ` .  Definition 1.1-8 of [Kreyszig]
       p. 8.  (Contributed by FL, 12-Oct-2006.) $)
    dscmet $p |- ( X e. V -> D e. ( Met ` X ) ) $=
      ( vw vv vu wcel cv cc0 wceq weq cle wbr wa c1 ifbid cn0 cme cfv cxp cr wf
      co wb caddc wral cif 0re 1re keepel rgen2w mpbi equequ1 equequ2 0nn0 1nn0
      fmpt2 elexi ovmpt2 eqeq1d wn iffalse wne ax-1ne0 a1i eqnetrd neneqd con4i
      iftrue impbii syl6bb cn wo nn0addcli elnn0 breq1 0le1 leidi keephyp nnge1
      nn0rei letri sylancr nn0ge0i add20i mp2an bibi12d chvarv syl2anb syl6eqbr
      eqtr2 iftrued id breqtrrd jaoi mp1i adantl eqeq12 ovmpt2a adantrr adantrl
      sylbi oveq12d 3brtr4d expcom ralrimiv jca rgen2a pm3.2i ismet mpbiri ) ED
      JCEUAUBJEEUCUDCUEZGKZHKZCUFZLMZGHNZUGZXRIKZXPCUFZYBXQCUFZUHUFZOPZIEUIZQZH
      EUIGEUIZQXOYIABNZLRUJZUDJZBEUIAEUIXOYLABEEYJLRUDUKULUMUNABEEYKUDCFUTUOYHG
      HEXPEJZXQEJZQZYAYGYOXSXTLRUJZLMZXTYOXRYPLABXPXQEEYKYPCGBNZLRUJAGNYJYRLRAG
      BUPSBHNZYRXTLRBHGUQSFYPTXTLRTURUSUMZVAVBZVCYQXTXTYQXTVDZYPLUUBYPRLXTLRVER
      LVFUUBVGVHVIVJVKXTLRVLVMZVNYOYFIEYBEJZYOYFUUDYOQZYPIGNZLRUJZIHNZLRUJZUHUF
      ZXRYEOUUJVOJZUUJLMZVPZYPUUJOPZUUEUUJTJUUMUUGUUIUUFLRTURUSUMZUUHLRTURUSUMZ
      VQZUUJVRUOUUKUUNUULUUKYPROPZRUUJOPUUNXTLROPRROPUURLRLYPROVSRYPROVSVTRULWA
      WBUUJWCYPRUUJYPYTWDULUUJUUQWDWEWFUULYPLUUJOUULUUGLMZUUILMZQZYPLOPLUUGOPLU
      UIOPUULUVAUGUUGUUOWGUUIUUPWGUUGUUIUUGUUOWDUUIUUPWDWHWIUVAYPLLOUVAXTLRUUSU
      UFUUHXTUUTUUTUUHUGZUUSUUFUGHGHGNZUUTUUSUUHUUFUVCUUIUUGLUVCUUHUUFLRHGIUQZS
      VCUVDWJYQXTUGUVBGIGINZYQUUTXTUUHUVEYPUUILUVEXTUUHLRGIHUPZSVCUVFWJUUCWKZWK
      UVGYBXPXQWNWLWOLUKWAWMXEUULWPWQWRWSYOXRYPMUUDUUAWTUUEYCUUGYDUUIUHUUDYMYCU
      UGMYNABYBXPEEYKUUGCAINZBGNQYJUUFLRAKZYBBKZXPXASFUUGTUUOVAXBXCUUDYNYDUUIMY
      MABYBXQEEYKUUICUVHYSQYJUUHLRUVIYBUVJXQXASFUUITUUPVAXBXDXFXGXHXIXJXKXLGHID
      CEXMXN $.

    $( The discrete metric generates the discrete topology.  In particular, the
       discrete topology is metrizable.  (Contributed by Mario Carneiro,
       29-Jan-2014.) $)
    dscopn $p |- ( X e. V -> ( MetOpen ` D ) = ~P X ) $=
      ( vu vv vw wcel cfv cv wss wa wb c1 wceq clt wbr cc0 cmopn wrex wral cxmt
      cpw cbl crn cme dscmet metxmet syl elmopn simpll ssel2 adantll jca csn co
      eqid velsn eleq1a wi simpl a1i cif eqeq12 ifbid cr 0re 1re keepel ovmpt2a
      elexi breq1d ltnri iffalse mtbiri con4i iftrue 0lt1 syl6eqbr impbii bitri
      wn equcom syl6rbb simpr biantrurd bitrd pm5.21ndd adantl cxr crp 1rp rpxr
      ex ax-mp elbl mp3an3 sylan bitr4d syl5bb eqrdv blelrn eqeltrd snssi vsnid
      jctil eleq2 sseq1 anbi12d rspcev sylancom ralrimiva pm4.71d selpw syl6bbr
      syl2an ) EDJZGCUAKZEUEZXSGLZXTJZYBEMZYBYAJXSYCYDHLZILZJZYFYBMZNZICUFKZUGZ
      UBZHYBUCZNZYDXSCEUDKJZYCYNOXSCEUHKJYOABCDEFUICEUJUKZHIYBCXTEXTUSULUKXSYDY
      MXSYDYMXSYDNZYLHYBYQYEYBJZXSYEEJZNZYLYQYRNXSYSXSYDYRUMYDYRYSXSYBEYEUNUOUP
      YTYEUQZYKJYEUUAJZUUAYBMZNZYLYRYTUUAYEPYJURZYKYTIUUAUUEYFUUAJYFYEQZYTYFUUE
      JZIYEUTYTUUFYFEJZYEYFCURZPRSZNZUUGYSUUFUUKOZXSYSUUHUUFUUKYEEYFVAUUKUUHVBY
      SUUHUUJVCVDYSUUHUULYSUUHNZUUFUUJUUKUUMUUJYEYFQZTPVEZPRSZUUFUUMUUIUUOPRABY
      EYFEEALZBLZQZTPVEUUOCUUQYEQUURYFQNUUSUUNTPUUQYEUURYFVFVGFUUOVHUUNTPVHVIVJ
      VKVMVLVNUUPUUNUUFUUPUUNUUNUUPUUNWDZUUPPPRSPVJVOUUTUUOPPRUUNTPVPVNVQVRUUNU
      UOTPRUUNTPVSVTWAWBHIWEWCWFUUMUUHUUJYSUUHWGWHWIWPWJWKXSYOYSUUGUUKOZYPYOYSP
      WLJZUVAPWMJUVBWNPWOWQZYFCYEPEWRWSWTXAXBXCXSYOYSUUEYKJZYPYOYSUVBUVDUVCCYEP
      EXDWSWTXEYRUUCUUBYEYBXFHXGXHYIUUDIUUAYKYFUUAQYGUUBYHUUCYFUUAYEXIYFUUAYBXJ
      XKXLXRXMXNWPXOXAGEXPXQXC $.
  $}

  ${
    $d a b c x y .- $.  $d x y .0. $.  $d a b c x y F $.  $d a b c x y ph $.
    $d a b c x y X $.
    nrmmetd.x $e |- X = ( Base ` G ) $.
    nrmmetd.m $e |- .- = ( -g ` G ) $.
    nrmmetd.z $e |- .0. = ( 0g ` G ) $.
    nrmmetd.g $e |- ( ph -> G e. Grp ) $.
    nrmmetd.f $e |- ( ph -> F : X --> RR ) $.
    nrmmetd.1 $e |- ( ( ph /\ x e. X ) -> ( ( F ` x ) = 0 <-> x = .0. ) ) $.
    nrmmetd.2 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
      ( F ` ( x .- y ) ) <_ ( ( F ` x ) + ( F ` y ) ) ) $.
    $( Show that a group norm generates a metric.  Part of Definition 2.2-1 of
       [Kreyszig] p. 58.  (Contributed by NM, 4-Dec-2006.)  (Revised by Mario
       Carneiro, 2-Oct-2015.) $)
    nrmmetd $p |- ( ph -> ( F o. .- ) e. ( Met ` X ) ) $=
      ( co wceq cle cfv wcel va vb vc cxp cr ccom wf cv cc0 wb caddc wbr wa cme
      wral cgrp grpsubf syl fco syl2anc cop opelxpi fvco3 syl2an fveq2i 3eqtr4g
      df-ov eqeq1d grpsubcl 3expb sylan ralrimiva fveq2 eqeq1 bibi12d grpsubeq0
      rspccva syldan 3bitrd adantrr ffvelrnd simprll syl3anc simprlr grpnnncan2
      adantr simprr readdcld syl13anc fveq2d oveq1 oveq1d breq12d oveq2 rspc2va
      ralrimivva oveq2d syl21anc eqbrtrrd anbi2d imbi12d grpidcl simprl cminusg
      eleq1 eqid grpinvval2 grpinvsub eqtr3d pm5.501 bicom syl6bb recnd addid2d
      wi bitr3d 3brtr3d chvarv adantrlr anbi1d adantrll le2addd oveq12d 3brtr4d
      eqtrd letrd expr ralrimiv jca cvv cbs fvex eqeltri ismet ax-mp sylanbrc )
      AGGUDZUEDFUFZUGZUAUHZUBUHZYRPZUIQZYTUUAQZUJZUUBUCUHZYTYRPZUUFUUAYRPZUKPZR
      ULZUCGUOZUMZUBGUOUAGUOZYRGUNSTZAGUEDUGZYQGFUGZYSMAEUPTZUUPLGEFIJUQURZYQGU
      EDFUSUTAUULUAUBGGAYTGTZUUAGTZUMZUMZUUEUUKUVBUUCYTUUAFPZDSZUIQZUVCHQZUUDUV
      BUUBUVDUIUVBYTUUAVAZYRSZUVGFSZDSZUUBUVDAUUPUVGYQTUVHUVJQUVAUURYTUUAGGVBYQ
      GUVGDFVCVDYTUUAYRVGUVCUVIDYTUUAFVGVEVFZVHAUVAUVCGTZUVEUVFUJZAUUQUVAUVLLUU
      QUUSUUTUVLGEFYTUUAIJVIVJVKZABUHZDSZUIQZUVOHQZUJZBGUOZUVLUVMAUVSBGNVLZUVSU
      VMBUVCGUVOUVCQZUVQUVEUVRUVFUWBUVPUVDUIUVOUVCDVMVHUVOUVCHVNVOVQVKVRAUUQUVA
      UVFUUDUJZLUUQUUSUUTUWCGEFYTUUAHIKJVPVJVKVSUVBUUJUCGAUVAUUFGTZUUJAUVAUWDUM
      ZUMZUVDUUFYTFPZDSZUUFUUAFPZDSZUKPZUUBUUIRUWFUVDYTUUFFPZDSZUUAUUFFPZDSZUKP
      ZUWKUWFGUEUVCDAUUOUWEMWFZAUVAUVLUWDUVNVTWAUWFUWMUWOUWFGUEUWLDUWQUWFUUQUUS
      UWDUWLGTZAUUQUWELWFZAUUSUUTUWDWBZAUVAUWDWGZGEFYTUUFIJVIWCZWAZUWFGUEUWNDUW
      QUWFUUQUUTUWDUWNGTZUWSAUUSUUTUWDWDZUXAGEFUUAUUFIJVIWCZWAZWHUWFUWHUWJUWFGU
      EUWGDUWQUWFUUQUWDUUSUWGGTUWSUXAUWTGEFUUFYTIJVIWCWAZUWFGUEUWIDUWQUWFUUQUWD
      UUTUWIGTUWSUXAUXEGEFUUFUUAIJVIWCWAZWHUWFUWLUWNFPZDSZUVDUWPRUWFUXJUVCDUWFU
      UQUUSUUTUWDUXJUVCQUWSUWTUXEUXAGEFYTUUAUUFIJWEWIWJUWFUWRUXDUVOCUHZFPZDSZUV
      PUXLDSZUKPZRULZCGUOBGUOZUXKUWPRULZUXBUXFAUXRUWEAUXQBCGGOWPZWFUXQUXSUWLUXL
      FPZDSZUWMUXOUKPZRULBCUWLUWNGGUVOUWLQZUXNUYBUXPUYCRUYDUXMUYADUVOUWLUXLFWKW
      JUYDUVPUWMUXOUKUVOUWLDVMWLWMUXLUWNQZUYBUXKUYCUWPRUYEUYAUXJDUXLUWNUWLFWNWJ
      UYEUXOUWOUWMUKUXLUWNDVMWQWMWOWRWSUWFUWMUWOUWHUWJUXCUXGUXHUXIAUUSUWDUWMUWH
      RULZUUTUVBUVDUUAYTFPZDSZRULZXOAUUSUWDUMZUMZUYFXOZUBUCUUAUUFQZUVBUYKUYIUYF
      UYMUVAUYJAUYMUUTUWDUUSUUAUUFGXEWTWTUYMUVDUWMUYHUWHRUYMUVCUWLDUUAUUFYTFWNW
      JUYMUYGUWGDUUAUUFYTFWKWJWMXAUVBHUYGFPZDSZHDSZUYHUKPZUVDUYHRUVBHGTZUYGGTZU
      XRUYOUYQRULZUVBUUQUYRAUUQUVALWFZGEHIKXBZURUVBUUQUUTUUSUYSVUAAUUSUUTWGZAUU
      SUUTXCZGEFUUAYTIJVIWCZAUXRUVAUXTWFUXQUYTHUXLFPZDSZUYPUXOUKPZRULBCHUYGGGUV
      RUXNVUGUXPVUHRUVRUXMVUFDUVOHUXLFWKWJUVRUVPUYPUXOUKUVOHDVMZWLWMUXLUYGQZVUG
      UYOVUHUYQRVUJVUFUYNDUXLUYGHFWNWJVUJUXOUYHUYPUKUXLUYGDVMWQWMWOWRUVBUYNUVCD
      UVBUYGEXDSZSZUYNUVCUVBUUQUYSVULUYNQVUAVUEGEFVUKUYGHIJVUKXFZKXGUTUVBUUQUUT
      UUSVULUVCQVUAVUCVUDGEFVUKUUAYTIJVUMXHWCXIWJUVBUYQUIUYHUKPUYHUVBUYPUIUYHUK
      AUYPUIQZUVAAUVTUYRVUNUWAAUUQUYRLVUBURUVSVUNBHGUVRUVQUVSVUNUVRUVQUVRUVQUJU
      VSUVRUVQXJUVRUVQXKXLUVRUVPUYPUIVUIVHXPVQUTWFWLUVBUYHUVBUYHUVBGUEUYGDAUUOU
      VAMWFVUEWAXMXNYEXQXRZXSAUUTUWDUWOUWJRULZUUSUYLAUUTUWDUMZUMZVUPXOUAUBUUDUY
      KVURUYFVUPUUDUYJVUQAUUDUUSUUTUWDYTUUAGXEXTWTUUDUWMUWOUWHUWJRUUDUWLUWNDYTU
      UAUUFFWKWJUUDUWGUWIDYTUUAUUFFWNWJWMXAVUOXRYAYBYFAUVAUUBUVDQUWDUVKVTUWFUUG
      UWHUUHUWJUKUWFUUFYTVAZYRSZVUSFSZDSZUUGUWHUWFUUPVUSYQTZVUTVVBQAUUPUWEUURWF
      ZUWFUWDUUSVVCUXAUWTUUFYTGGVBUTYQGVUSDFVCUTUUFYTYRVGUWGVVADUUFYTFVGVEVFUWF
      UUFUUAVAZYRSZVVEFSZDSZUUHUWJUWFUUPVVEYQTZVVFVVHQVVDUWFUWDUUTVVIUXAUXEUUFU
      UAGGVBUTYQGVVEDFVCUTUUFUUAYRVGUWIVVGDUUFUUAFVGVEVFYCYDYGYHYIWPGYJTUUNYSUU
      MUMUJGEYKSYJIEYKYLYMUAUBUCYJYRGYNYOYP $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y .- $.  $d x y R $.  $d x y X $.
    abvmet.x $e |- X = ( Base ` R ) $.
    abvmet.a $e |- A = ( AbsVal ` R ) $.
    abvmet.m $e |- .- = ( -g ` R ) $.
    $( An absolute value ` F ` generates a metric defined by
       ` d ( x , y ) = F ( x - y ) ` , analogously to ~ cnmet .  (In fact, the
       ring structure is not needed at all; the group properties ~ abveq0 and
       ~ abvtri , ~ abvneg are sufficient.)  (Contributed by Mario Carneiro,
       9-Sep-2014.)  (Revised by Mario Carneiro, 2-Oct-2015.) $)
    abvmet $p |- ( F e. A -> ( F o. .- ) e. ( Met ` X ) ) $=
      ( vx vy wcel c0g cfv eqid crg cgrp abvrcl ringgrp cv co abvf abveq0 caddc
      syl cle wbr abvsubtri 3expb nrmmetd ) CAKZIJCBDEBLMZFHUKNZUJBOKBPKABCGQBR
      UDAEBCGFUAAEBCISZUKGFULUBUJUMEKJSZEKUMUNDTCMUMCMUNCMUCTUEUFAEBCDUMUNGFHUG
      UHUI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Normed algebraic structures
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
In the following, the norm of a normed algebraic structure (group, left module,
vector space) is defined by the (given) distance function (the norm ` N ` of an
element is its distance ` D ` from the zero element, see ~ nmval :
` ( N `` A ) = ( A D .0. ) `).  By this definition, the norm function ` N ` is
actually a norm (satisfying the properties of being a function into the reals,
subadditivity/triangle inequality ( n(x+y) <_ n(x)+n(y) ), absolute homogeneity
( n(sx) = |s| n(x) ) [Remark: for group norms, some authors (e.g. Juris
Steprans in "A characterization of free abelian groups") demand that
n(sx) = |s| n(x) for all s in ZZ, whereas other authors (e.g. N. H. Bingham and
A. J. Ostaszewski in "Normed versus topological groups: Dichotomy and duality")
only require inversion symmetry, i.e. n(-x) = n(x).  The definition ~ df-ngp of
a group norm follows the second aproach, see ~ nminv .] and positive
definiteness/point-separating ( n(x) = 0 <-> x = 0 ) if the structure is a
metric space with a right-translation-invariant metric (see ~ nmf , ~ nmtri ,
~ nmvs and ~ nmeq0 ).  An alternate definition of a normed group (i.e. a group
equipped with a norm) without using the properties of a metric space is given
by theorem ~ tngngp3 .  For a structure being a group, the (arbitrary) distance
function can be restricted to the elements of the group without affecting the
norm, see ~ nmfval2 .

Usually, however, the norm of a normed structure is given, and the
corresponding metric ("induced metric") is achieved by defining a distance
function based on the norm (the distance ` D ` between two elements is the norm
` N ` of their difference, see ~ ngpds : ` ( A D B ) = ( N `` ( A .- B ) ) ` ).
The operation ` toNrmGrp ` does exactly this, i.e. it adds a distance function
(and a topology) to a structure (which should be at least a group)
corresponding to a given norm in the just shown way:
` ( dist `` T ) = ( N o. .- ) ` , see also ~ tngds .  By this, the enhanced
structure becomes a normed structure if the induced metric is in fact a metric
(see ~ tngngp2 ) resp. if the norm is in fact a norm (see ~ tngngpd ).  If the
norm is derived from a given metric, as done with ~ df-nm , the induced metric
is the original metric restricted to the base set:
` ( dist `` T ) = ( ( dist `` G ) |`` ( X X. X ) ) `, see ~ nrmtngdist , and
the norm remains the same: ` ( norm `` T ) = ( norm `` G ) `, see ~ nrmtngnrm .
$)

  $( Introduce new constant symbols. $)
  $c norm $. $( Norm of a normed ring $)
  $c NrmGrp $. $( Normed group $)
  $c toNrmGrp $. $( norm + group = normed group $)
  $c NrmRing $. $( Normed ring $)
  $c NrmMod $. $( Normed module $)
  $c NrmVec $. $( Normed vector space $)

  $( Norm of a normed ring. $)
  cnm $a class norm $.

  $( The class of all normed groups. $)
  cngp $a class NrmGrp $.

  $( Make a normed group from a norm and a group. $)
  ctng $a class toNrmGrp $.

  $( Normed ring. $)
  cnrg $a class NrmRing $.

  $( Normed module. $)
  cnlm $a class NrmMod $.

  $( Normed vector space. $)
  cnvc $a class NrmVec $.

  ${
    $d f g w x y $.
    $( Define the norm on a group or ring (when it makes sense) in terms of the
       distance to zero.  (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    df-nm $a |- norm = ( w e. _V |-> ( x e. ( Base ` w ) |->
      ( x ( dist ` w ) ( 0g ` w ) ) ) ) $.

    $( Define a normed group, which is a group with a
       right-translation-invariant metric.  This is not a standard notion, but
       is helpful as the most general context in which a metric-like norm makes
       sense.  (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    df-ngp $a |- NrmGrp = { g e. ( Grp i^i MetSp ) |
      ( ( norm ` g ) o. ( -g ` g ) ) C_ ( dist ` g ) } $.

    $( Define a function that fills in the topology and metric components of a
       structure given a group and a norm on it.  (Contributed by Mario
       Carneiro, 2-Oct-2015.) $)
    df-tng $a |- toNrmGrp = ( g e. _V , f e. _V |-> ( ( g
      sSet <. ( dist ` ndx ) , ( f o. ( -g ` g ) ) >. )
      sSet <. ( TopSet ` ndx ) , ( MetOpen ` ( f o. ( -g ` g ) ) ) >. ) ) $.

    $( A normed ring is a ring with an induced topology and metric such that
       the metric is translation-invariant and the norm (distance from 0) is an
       absolute value on the ring.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    df-nrg $a |- NrmRing = { w e. NrmGrp | ( norm ` w ) e. ( AbsVal ` w ) } $.

    $( A normed (left) module is a module which is also a normed group over a
       normed ring, such that the norm distributes over scalar multiplication.
       (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    df-nlm $a |- NrmMod = { w e. ( NrmGrp i^i LMod )
      | [. ( Scalar ` w ) / f ].
      ( f e. NrmRing /\ A. x e. ( Base ` f ) A. y e. ( Base ` w )
        ( ( norm ` w ) ` ( x ( .s ` w ) y ) ) =
        ( ( ( norm ` f ) ` x ) x. ( ( norm ` w ) ` y ) ) ) } $.

    $( A normed vector space is a normed module which is also a vector space.
       (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    df-nvc $a |- NrmVec = ( NrmMod i^i LVec ) $.
  $}

  ${
    $d x A $.  $d w x D $.  $d w x W $.  $d w x X $.  $d w x .0. $.
    nmfval.n $e |- N = ( norm ` W ) $.
    nmfval.x $e |- X = ( Base ` W ) $.
    nmfval.z $e |- .0. = ( 0g ` W ) $.
    nmfval.d $e |- D = ( dist ` W ) $.
    $( The value of the norm function.  (Contributed by Mario Carneiro,
       2-Oct-2015.) $)
    nmfval $p |- N = ( x e. X |-> ( x D .0. ) ) $=
      ( vw cnm cfv cmpt cvv wcel cbs cds syl6eqr c0 cv c0g fveq2 eqidd oveq123d
      co wceq mpteq12dv df-nm crn csn cun wf eqid cop df-ov fvrn0 eqeltri fmpti
      a1i fvex rnex p0ex unex fex2 mp3an fvmpt fvprc mpt0 syl5eq mpteq1d eqtr4d
      wn pm2.61i eqtri ) CDLMZAEAUAZFBUFZNZGDOPZVPVSUGKDAKUAZQMZVQWAUBMZWARMZUF
      ZNVSOLWADUGZAWBWEEVRWFWBDQMZEWADQUCHSWFVQVQWCFWDBWFWDDRMZBWADRUCJSWFVQUDW
      FWCDUBMFWADUBUCISUEUHAKUIEBUJZTUKZULZVSUMEOPWKOPVSOPAEWKVRVSVSUNVRWKPVQEP
      VRVQFUOZBMWKVQFBUPBWLUQURUTUSEWGOHDQVAURWIWJBBWHOJDRVAURVBVCVDEWKVSOOVEVF
      VGVTVMZVPATVRNZVSWMVPTWNDLVHAVRVISWMAETVRWMEWGTHDQVHVJVKVLVNVO $.

    $( The value of the norm function.  Problem 1 of [Kreyszig] p. 63.
       (Contributed by NM, 4-Dec-2006.)  (Revised by Mario Carneiro,
       2-Oct-2015.) $)
    nmval $p |- ( A e. X -> ( N ` A ) = ( A D .0. ) ) $=
      ( vx cv co oveq1 nmfval ovex fvmpt ) KAKLZFBMAFBMECRAFBNKBCDEFGHIJOAFBPQ
      $.

    nmfval.e $e |- E = ( D |` ( X X. X ) ) $.
    $( The value of the norm function using a restricted metric.  (Contributed
       by Mario Carneiro, 2-Oct-2015.) $)
    nmfval2 $p |- ( W e. Grp -> N = ( x e. X |-> ( x E .0. ) ) ) $=
      ( cgrp wcel cv co cmpt nmfval wa cxp cres wceq id grpidcl syl2anr syl5req
      oveqi ovres mpteq2dva syl5eq ) EMNZDAFAOZGBPZQAFULGCPZQABDEFGHIJKRUKAFUMU
      NUKULFNZSUNULGBFFTUAZPZUMCUPULGLUGUOUOGFNUQUMUBUKUOUCFEGIJUDULGFFBUHUEUFU
      IUJ $.

    $( The value of the norm function using a restricted metric.  (Contributed
       by Mario Carneiro, 2-Oct-2015.) $)
    nmval2 $p |- ( ( W e. Grp /\ A e. X ) -> ( N ` A ) = ( A E .0. ) ) $=
      ( cgrp wcel wa cfv co wceq nmval adantl cxp cres oveqi id grpidcl syl2anr
      ovres syl5req eqtrd ) EMNZAFNZOZADPZAGBQZAGCQZUKUMUNRUJABDEFGHIJKSTULUOAG
      BFFUAUBZQZUNCUPAGLUCUKUKGFNUQUNRUJUKUDFEGIJUEAGFFBUGUFUHUI $.
  $}

  ${
    $d x D $.  $d x E $.  $d x W $.  $d x X $.
    nmf2.n $e |- N = ( norm ` W ) $.
    nmf2.x $e |- X = ( Base ` W ) $.
    nmf2.d $e |- D = ( dist ` W ) $.
    nmf2.e $e |- E = ( D |` ( X X. X ) ) $.
    $( The norm is a function from the base set into the reals.  (Contributed
       by Mario Carneiro, 2-Oct-2015.) $)
    nmf2 $p |- ( ( W e. Grp /\ E e. ( Met ` X ) ) -> N : X --> RR ) $=
      ( vx cgrp wcel cme cfv wa cr wf cv c0g eqid co cmpt grpidcl metcl syl3an1
      3comr 3expa fmptd wceq nmfval2 adantr feq1d mpbird ) DKLZBEMNLZOZEPCQEPJE
      JRZDSNZBUAZUBZQUPJEUSPUTUNUOUQELZUSPLZUNURELZUOVAVBEDURGURTZUCUOVAVCVBUQU
      RBEUDUFUEUGUTTUHUPEPCUTUNCUTUIUOJABCDEURFGVDHIUJUKULUM $.
  $}

  ${
    $d x y K $.  $d x y L $.  $d x y ph $.
    nmpropd.1 $e |- ( ph -> ( Base ` K ) = ( Base ` L ) ) $.
    nmpropd.2 $e |- ( ph -> ( +g ` K ) = ( +g ` L ) ) $.
    nmpropd.3 $e |- ( ph -> ( dist ` K ) = ( dist ` L ) ) $.
    $( Weak property deduction for a norm.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    nmpropd $p |- ( ph -> ( norm ` K ) = ( norm ` L ) ) $=
      ( vx vy cbs cfv cv c0g cds co cmpt cnm eqidd wcel cplusg eqid wa oveq123d
      oveqdr grpidpropd mpteq12dv nmfval 3eqtr4g ) AGBIJZGKZBLJZBMJZNZOGCIJZUIC
      LJZCMJZNZOBPJZCPJZAGUHULUMUPDAUIUIUJUNUKUOFAUIQAGHUHBCAUHQDAUIUHRHKUHRUAG
      HBSJCSJEUCUDUBUEGUKUQBUHUJUQTUHTUJTUKTUFGUOURCUMUNURTUMTUNTUOTUFUG $.
  $}

  ${
    $d x y B $.  $d a x y K $.  $d a x y L $.  $d a x y ph $.
    nmpropd2.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    nmpropd2.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    nmpropd2.3 $e |- ( ph -> K e. Grp ) $.
    nmpropd2.4 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    nmpropd2.5 $e |- ( ph ->
      ( ( dist ` K ) |` ( B X. B ) ) = ( ( dist ` L ) |` ( B X. B ) ) ) $.
    $( Strong property deduction for a norm.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    nmpropd2 $p |- ( ph -> ( norm ` K ) = ( norm ` L ) ) $=
      ( va cbs cfv c0g cds cxp cres eqtr3d eqid cv co cnm sqxpeqd reseq2d eqidd
      cmpt grpidpropd oveq123d mpteq12dv cgrp wcel nmfval2 syl grppropd 3eqtr4d
      wceq mpbid ) ALEMNZLUAZEONZEPNZUSUSQZRZUBZUGZLFMNZUTFONZFPNZVGVGQZRZUBZUG
      ZEUCNZFUCNZALUSVEVGVLADUSVGGHSAUTUTVAVHVDVKAVIDDQZRZVDVKAVBVPRVQVDKAVPVCV
      BADUSGUDUESAVPVJVIADVGHUDUESAUTUFABCDEFGHJUHUIUJAEUKULZVNVFUQILVBVDVNEUSV
      AVNTUSTVATVBTVDTUMUNAFUKULZVOVMUQAVRVSIABCDEFGHJUOURLVIVKVOFVGVHVOTVGTVHT
      VITVKTUMUNUP $.
  $}

  ${
    $d g x y D $.  $d g x y G $.  $d g x y .- $.  $d g x y N $.  $d x y X $.
    isngp.n $e |- N = ( norm ` G ) $.
    isngp.z $e |- .- = ( -g ` G ) $.
    isngp.d $e |- D = ( dist ` G ) $.
    $( The property of being a normed group.  (Contributed by Mario Carneiro,
       2-Oct-2015.) $)
    isngp $p |- ( G e. NrmGrp <->
      ( G e. Grp /\ G e. MetSp /\ ( N o. .- ) C_ D ) ) $=
      ( vg cgrp cmt wcel ccom wss wa cnm cfv csg cds fveq2 syl6eqr cin cngp w3a
      elin anbi1i cv wceq coeq12d sseq12d df-ngp elrab2 df-3an 3bitr4i ) BIJUAZ
      KZDCLZAMZNBIKZBJKZNZUQNBUBKURUSUQUCUOUTUQBIJUDUEHUFZOPZVAQPZLZVARPZMUQHBU
      NUBVABUGZVDUPVEAVFVBDVCCVFVBBOPDVABOSETVFVCBQPCVABQSFTUHVFVEBRPAVABRSGTUI
      HUJUKURUSUQULUM $.

    isngp2.x $e |- X = ( Base ` G ) $.
    ${
      isngp2.e $e |- E = ( D |` ( X X. X ) ) $.
      $( The property of being a normed group.  (Contributed by Mario Carneiro,
         2-Oct-2015.) $)
      isngp2 $p |- ( G e. NrmGrp <->
        ( G e. Grp /\ G e. MetSp /\ ( N o. .- ) = E ) ) $=
        ( wcel wss wceq wa cres cr wf syl cvv cngp cgrp cmt w3a isngp cxp resss
        ccom eqsstri sseq1 mpbiri cdm cme cfv reseq1i eqtri msmet sylan2 adantr
        cds nmf2 grpsubf ad2antrr fco syl2anc fdm reseq2d wfun msf ad2antlr cin
        simpr ssv fss sylancl fssxp ssind df-res syl6sseqr funssres wfn fnresdm
        ffun ffn 3syl 3eqtr3d ex impbid2 pm5.32i df-3an 3bitr4i bitr4i ) CUALCU
        BLZCUCLZEDUHZAMZUDZWMWNWOBNZUDZACDEGHIUEWMWNOZWROWTWPOZWSWQWTWRWPWTWRWP
        WRWPBAMBAFFUFZPZAKAXBUGUIWOBAUJUKWTWPWRXABWOULZPZBXBPZWOBXAXDXBBXAXBQWO
        RZXDXBNXAFQERZXBFDRZXGWTXHWPWNWMBFUMUNLXHBCFJBXCCUTUNZXBPKAXJXBIUOUPZUQ
        ABECFGJIKVAURUSWMXIWNWPFCDJHVBVCXBFQEDVDVEZXBQWOVFSVGXABVHZWOBMXEWONXAX
        BQBRZXMWNXNWMWPBCFJXKVIVJZXBQBWCSXAWOAXBTUFZVKZBXAWOAXPWTWPVLXAXBTWORZW
        OXPMXAXGQTMXRXLQVMXBQTWOVNVOXBTWOVPSVQBXCXQKAXBVRUPVSBWOVTVEXAXNBXBWAXF
        BNXOXBQBWDXBBWBWEWFWGWHWIWMWNWRWJWMWNWPWJWKWL $.
    $}

    $( The property of being a normed group.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    isngp3 $p |- ( G e. NrmGrp <-> ( G e. Grp /\ G e. MetSp /\
      A. x e. X A. y e. X ( x D y ) = ( N ` ( x .- y ) ) ) ) $=
      ( wcel wceq w3a co cfv wral wa cr wf cngp cgrp cmt ccom cxp cres eqid wfn
      cv isngp2 wb cme msmet2 nmf2 sylan2 grpsubf adantr fco syl2anc ffn adantl
      syl metf 3syl eqfnov2 cop opelxpi fvco3 syl2an df-ov fveq2i 3eqtr4g ovres
      eqeq12d eqcom syl6bb 2ralbidva bitrd pm5.32i df-3an 3bitr4i bitri ) DUALD
      UBLZDUCLZFEUDZCGGUEZUFZMZNZWCWDAUIZBUIZCOZWJWKEOZFPZMZBGQAGQZNZCWGDEFGHIJ
      KWGUGZUJWCWDRZWHRWSWPRWIWQWSWHWPWSWHWJWKWEOZWJWKWGOZMZBGQAGQZWPWSWEWFUHZW
      GWFUHZWHXCUKWSWFSWETZXDWSGSFTZWFGETZXFWDWCWGGULPLZXGCDGKJUMZCWGFDGHKJWRUN
      UOWCXHWDGDEKIUPUQZWFGSFEURUSWFSWEUTVBWSXIWFSWGTXEWDXIWCXJVAWGGVCWFSWGUTVD
      ABGGWEWGVEUSWSXBWOABGGWSWJGLWKGLRZRZXBWNWLMWOXMWTWNXAWLXMWJWKVFZWEPZXNEPZ
      FPZWTWNWSXHXNWFLXOXQMXLXKWJWKGGVGWFGXNFEVHVIWJWKWEVJWMXPFWJWKEVJVKVLXLXAW
      LMWSWJWKGGCVMVAVNWNWLVOVPVQVRVSWCWDWHVTWCWDWPVTWAWB $.
  $}

  $( A normed group is a group.  (Contributed by Mario Carneiro,
     2-Oct-2015.) $)
  ngpgrp $p |- ( G e. NrmGrp -> G e. Grp ) $=
    ( cngp wcel cgrp cmt cnm cfv csg ccom cds wss eqid isngp simp1bi ) ABCADCAE
    CAFGZAHGZIAJGZKQAPOOLPLQLMN $.

  $( A normed group is a metric space.  (Contributed by Mario Carneiro,
     2-Oct-2015.) $)
  ngpms $p |- ( G e. NrmGrp -> G e. MetSp ) $=
    ( cngp wcel cgrp cmt cnm cfv csg ccom cds wss eqid isngp simp2bi ) ABCADCAE
    CAFGZAHGZIAJGZKQAPOOLPLQLMN $.

  $( A normed group is a metric space.  (Contributed by Mario Carneiro,
     2-Oct-2015.) $)
  ngpxms $p |- ( G e. NrmGrp -> G e. *MetSp ) $=
    ( cngp wcel cmt cxme ngpms msxms syl ) ABCADCAECAFAGH $.

  $( A normed group is a topological space.  (Contributed by Mario Carneiro,
     5-Oct-2015.) $)
  ngptps $p |- ( G e. NrmGrp -> G e. TopSp ) $=
    ( cngp wcel cmt ctps ngpms mstps syl ) ABCADCAECAFAGH $.

  ${
    ngpmet.x $e |- X = ( Base ` G ) $.
    ngpmet.d $e |- D = ( ( dist ` G ) |` ( X X. X ) ) $.
    $( The (induced) metric of a normed group is a metric.  Part of Definition
       2.2-1 of [Kreyszig] p. 58.  (Contributed by NM, 4-Dec-2006.)  (Revised
       by AV, 14-Oct-2021.) $)
    ngpmet $p |- ( G e. NrmGrp -> D e. ( Met ` X ) ) $=
      ( cngp wcel cmt cme cfv ngpms msmet syl ) BFGBHGACIJGBKABCDELM $.
  $}

  ${
    ngpds.n $e |- N = ( norm ` G ) $.
    ngpds.x $e |- X = ( Base ` G ) $.
    ngpds.m $e |- .- = ( -g ` G ) $.
    ngpds.d $e |- D = ( dist ` G ) $.
    $( Value of the distance function in terms of the norm of a normed group.
       Equation 1 of [Kreyszig] p. 59.  (Contributed by NM, 28-Nov-2006.)
       (Revised by Mario Carneiro, 2-Oct-2015.) $)
    ngpds $p |- ( ( G e. NrmGrp /\ A e. X /\ B e. X ) ->
      ( A D B ) = ( N ` ( A .- B ) ) ) $=
      ( cngp wcel w3a co cfv wceq 3ad2ant1 3adant1 df-ov ccom cxp cres cgrp cmt
      eqid isngp2 simp3bi oveqd cop wf ngpgrp grpsubf syl opelxpi fvco3 syl2anc
      fveq2i 3eqtr4g ovres 3eqtr3rd ) DLMZAGMZBGMZNZABFEUAZOZABCGGUBZUCZOZABEOZ
      FPZABCOZVEVFVIABVBVCVFVIQZVDVBDUDMZDUEMVNCVIDEFGHJKIVIUFUGUHRUIVEABUJZVFP
      ZVPEPZFPZVGVLVEVHGEUKZVPVHMZVQVSQVBVCVTVDVBVOVTDULGDEIJUMUNRVCVDWAVBABGGU
      OSVHGVPFEUPUQABVFTVKVRFABETURUSVCVDVJVMQVBABGGCUTSVA $.

    $( Value of the distance function in terms of the norm of a normed group.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    ngpdsr $p |- ( ( G e. NrmGrp /\ A e. X /\ B e. X ) ->
      ( A D B ) = ( N ` ( B .- A ) ) ) $=
      ( cngp wcel w3a co cfv cxme wceq ngpxms xmssym syl3an1 ngpds 3com23 eqtrd
      ) DLMZAGMZBGMZNABCOZBACOZBAEOFPZUEDQMUFUGUHUIRDSABCDGIKTUAUEUGUFUIUJRBACD
      EFGHIJKUBUCUD $.
  $}

  ${
    ngpds2.x $e |- X = ( Base ` G ) $.
    ngpds2.z $e |- .0. = ( 0g ` G ) $.
    ngpds2.m $e |- .- = ( -g ` G ) $.
    ngpds2.d $e |- D = ( dist ` G ) $.
    $( Write the distance between two points in terms of distance from zero.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    ngpds2 $p |- ( ( G e. NrmGrp /\ A e. X /\ B e. X ) ->
      ( A D B ) = ( ( A .- B ) D .0. ) ) $=
      ( cngp wcel w3a co cnm cfv eqid ngpds wceq cgrp ngpgrp grpsubcl nmval syl
      syl3an1 eqtrd ) DLMZAFMZBFMZNZABCOABEOZDPQZQZULGCOZABCDEUMFUMRZHJKSUKULFM
      ZUNUOTUHDUAMUIUJUQDUBFDEABHJUCUFULCUMDFGUPHIKUDUEUG $.

    $( Write the distance between two points in terms of distance from zero.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    ngpds2r $p |- ( ( G e. NrmGrp /\ A e. X /\ B e. X ) ->
      ( A D B ) = ( ( B .- A ) D .0. ) ) $=
      ( cngp wcel w3a co cxme wceq ngpxms xmssym syl3an1 ngpds2 3com23 eqtrd )
      DLMZAFMZBFMZNABCOZBACOZBAEOGCOZUDDPMUEUFUGUHQDRABCDFHKSTUDUFUEUHUIQBACDEF
      GHIJKUAUBUC $.

    $( Write the distance between two points in terms of distance from zero.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    ngpds3 $p |- ( ( G e. NrmGrp /\ A e. X /\ B e. X ) ->
      ( A D B ) = ( .0. D ( A .- B ) ) ) $=
      ( cngp wcel w3a co ngpds2 cxme wceq ngpxms 3ad2ant1 cgrp grpsubcl syl3an1
      ngpgrp grpidcl syl xmssym syl3anc eqtrd ) DLMZAFMZBFMZNZABCOABEOZGCOZGUNC
      OZABCDEFGHIJKPUMDQMZUNFMZGFMZUOUPRUJUKUQULDSTUJDUAMZUKULURDUDZFDEABHJUBUC
      UMUTUSUJUKUTULVATFDGHIUEUFUNGCDFHKUGUHUI $.

    $( Write the distance between two points in terms of distance from zero.
       (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    ngpds3r $p |- ( ( G e. NrmGrp /\ A e. X /\ B e. X ) ->
      ( A D B ) = ( .0. D ( B .- A ) ) ) $=
      ( cngp wcel w3a co cxme wceq ngpxms xmssym syl3an1 ngpds3 3com23 eqtrd )
      DLMZAFMZBFMZNABCOZBACOZGBAEOCOZUDDPMUEUFUGUHQDRABCDFHKSTUDUFUEUHUIQBACDEF
      GHIJKUAUBUC $.
  $}

  ${
    ngprcan.x $e |- X = ( Base ` G ) $.
    ngprcan.p $e |- .+ = ( +g ` G ) $.
    ngprcan.d $e |- D = ( dist ` G ) $.
    $( Cancel right addition inside a distance calculation.  (Contributed by
       Mario Carneiro, 2-Oct-2015.) $)
    ngprcan $p |- ( ( G e. NrmGrp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
      ( ( A .+ C ) D ( B .+ C ) ) = ( A D B ) ) $=
      ( cngp wcel w3a co cfv wceq eqid grpcl syl3anc ngpds wa ngpgrp grppnpcan2
      csg cnm cgrp sylan fveq2d simpl adantr simpr1 simpr3 simpr2 3eqtr4d ) FKL
      ZAGLZBGLZCGLZMZUAZACENZBCENZFUDOZNZFUEOZOZABVCNZVEOZVAVBDNZABDNZUTVDVGVEU
      OFUFLZUSVDVGPFUBZGEFVCABCHIVCQZUCUGUHUTUOVAGLZVBGLZVIVFPUOUSUIZUTVKUPURVN
      UOVKUSVLUJZUOUPUQURUKZUOUPUQURULZGEFACHIRSUTVKUQURVOVQUOUPUQURUMZVSGEFBCH
      IRSVAVBDFVCVEGVEQZHVMJTSUTUOUPUQVJVHPVPVRVTABDFVCVEGWAHVMJTSUN $.

    $( Cancel left addition inside a distance calculation.  (Contributed by
       Mario Carneiro, 2-Oct-2015.) $)
    ngplcan $p |- ( ( ( G e. NrmGrp /\ G e. Abel ) /\
        ( A e. X /\ B e. X /\ C e. X ) ) ->
      ( ( C .+ A ) D ( C .+ B ) ) = ( A D B ) ) $=
      ( cngp wcel cabl wa w3a co wceq simplr ablcom syl3anc simpr3 simpr1 eqtrd
      simpr2 oveq12d ngprcan adantlr ) FKLZFMLZNZAGLZBGLZCGLZOZNZCAEPZCBEPZDPAC
      EPZBCEPZDPZABDPZUOUPURUQUSDUOUIUMUKUPURQUHUIUNRZUJUKULUMUAZUJUKULUMUBGEFC
      AHISTUOUIUMULUQUSQVBVCUJUKULUMUDGEFCBHISTUEUHUNUTVAQUIABCDEFGHIJUFUGUC $.

    $d x y z D $.  $d x y z G $.  $d z .+ $.  $d x y z X $.
    $( Express the property of being a normed group purely in terms of
       right-translation invariance of the metric instead of using the
       definition of norm (which itself uses the metric).  (Contributed by
       Mario Carneiro, 29-Oct-2015.) $)
    isngp4 $p |- ( G e. NrmGrp <-> ( G e. Grp /\ G e. MetSp /\
   A. x e. X A. y e. X A. z e. X ( ( x .+ z ) D ( y .+ z ) ) = ( x D y ) ) ) $=
      ( wcel cv co wceq wral cfv wa eqid ad2ant2rl oveq2 cngp cgrp ngpgrp ngpms
      cmt w3a ngprcan ralrimivvva csg cnm simp1 simp2 cminusg wi grpinvcl eqcom
      3jca oveq12d eqeq2d syl5bb rspcv syl c0g grpsubval adantl eqcomd grpsubcl
      grprinv 3expb adantlr nmval eqtr4d sylibd ralimdvva 3impia isngp3 impbii
      syl3anbrc ) FUAKZFUBKZFUEKZALZCLZEMZBLZWCEMZDMZWBWEDMZNZCGOZBGOAGOZUFZVSV
      TWAWKFUCFUDVSWIABCGGGWBWEWCDEFGHIJUGUHUQWLVTWAWHWBWEFUIPZMZFUJPZPZNZBGOAG
      OZVSVTWAWKUKVTWAWKULVTWAWKWRVTWAQZWJWQABGGWSWBGKZWEGKZQZQZWJWHWBWEFUMPZPZ
      EMZWEXEEMZDMZNZWQXCXEGKZWJXIUNVTXAXJWAWTGFXDWEHXDRZUOSWIXICXEGWIWHWGNWCXE
      NZXIWGWHUPXLWGXHWHXLWDXFWFXGDWCXEWBETWCXEWEETURUSUTVAVBXCXHWPWHXCXHWNFVCP
      ZDMZWPXCXFWNXGXMDXCWNXFXBWNXFNWSGEFXDWMWBWEHIXKWMRZVDVEVFVTXAXGXMNWAWTGEF
      XDWEXMHIXMRZXKVHSURXCWNGKZWPXNNVTXBXQWAVTWTXAXQGFWMWBWEHXOVGVIVJWNDWOFGXM
      WORZHXPJVKVBVLUSVMVNVOABDFWMWOGXRXOJHVPVRVQ $.
  $}

  ${
    ngpinvds.x $e |- X = ( Base ` G ) $.
    ngpinvds.i $e |- I = ( invg ` G ) $.
    ngpinvds.d $e |- D = ( dist ` G ) $.
    $( Two elements are the same distance apart as their inverses.
       (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    ngpinvds $p |- ( ( ( G e. NrmGrp /\ G e. Abel ) /\ ( A e. X /\ B e. X ) )
      -> ( ( I ` A ) D ( I ` B ) ) = ( A D B ) ) $=
      ( cngp wcel cabl wa cfv co eqid wceq grpinvcl syl2anc syl3anc simplr cgrp
      csg cnm simprr simprl ablsub2inv fveq2d simpll ngpgrp syl ngpdsr 3eqtr4d
      ngpds ) DJKZDLKZMZAFKZBFKZMZMZBENZAENZDUCNZOZDUDNZNZABVDOZVFNZVCVBCOZABCO
      ZVAVEVHVFVAFDVDEBAGVDPZHUOUPUTUAUQURUSUEZUQURUSUFZUGUHVAUOVCFKZVBFKZVJVGQ
      UOUPUTUIZVADUBKZURVOVAUOVRVQDUJUKZVNFDEAGHRSVAVRUSVPVSVMFDEBGHRSVCVBCDVDV
      FFVFPZGVLIULTVAUOURUSVKVIQVQVNVMABCDVDVFFVTGVLIUNTUM $.
  $}

  ${
    ngpsubcan.x $e |- X = ( Base ` G ) $.
    ngpsubcan.m $e |- .- = ( -g ` G ) $.
    ngpsubcan.d $e |- D = ( dist ` G ) $.
    $( Cancel right subtraction inside a distance calculation.  (Contributed by
       Mario Carneiro, 4-Oct-2015.) $)
    ngpsubcan $p |- ( ( G e. NrmGrp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
      ( ( A .- C ) D ( B .- C ) ) = ( A D B ) ) $=
      ( cngp wcel w3a wa co cfv wceq eqid grpsubval syl2anc cplusg simpr1 simpl
      cminusg simpr3 simpr2 oveq12d cgrp ngpgrp grpinvcl ngprcan syl13anc eqtrd
      adantr ) EKLZAGLZBGLZCGLZMZNZACFOZBCFOZDOACEUDPZPZEUAPZOZBVDVEOZDOZABDOZU
      TVAVFVBVGDUTUPURVAVFQUOUPUQURUBZUOUPUQURUEZGVEEVCFACHVERZVCRZISTUTUQURVBV
      GQUOUPUQURUFZVKGVEEVCFBCHVLVMISTUGUTUOUPUQVDGLZVHVIQUOUSUCVJVNUTEUHLZURVO
      UOVPUSEUIUNVKGEVCCHVMUJTABVDDVEEGHVLJUKULUM $.
  $}

  ${
    nmf.x $e |- X = ( Base ` G ) $.
    nmf.n $e |- N = ( norm ` G ) $.
    $( The norm on a normed group is a function into the reals.  (Contributed
       by Mario Carneiro, 4-Oct-2015.) $)
    nmf $p |- ( G e. NrmGrp -> N : X --> RR ) $=
      ( cngp wcel cgrp cds cfv cxp cres cme cr wf ngpgrp cmt ngpms eqid msmet
      syl nmf2 syl2anc ) AFGZAHGAIJZCCKLZCMJGZCNBOAPUDAQGUGARUFACDUFSZTUAUEUFBA
      CEDUESUHUBUC $.

    $( The norm of a normed group is closed in the reals.  (Contributed by
       Mario Carneiro, 4-Oct-2015.) $)
    nmcl $p |- ( ( G e. NrmGrp /\ A e. X ) -> ( N ` A ) e. RR ) $=
      ( cngp wcel cr nmf ffvelrnda ) BGHDIACBCDEFJK $.

    $( The norm of a normed group is nonnegative.  Second part of Problem 2 of
       [Kreyszig] p. 64.  (Contributed by NM, 28-Nov-2006.)  (Revised by Mario
       Carneiro, 4-Oct-2015.) $)
    nmge0 $p |- ( ( G e. NrmGrp /\ A e. X ) -> 0 <_ ( N ` A ) ) $=
      ( cngp wcel wa cc0 c0g cfv cds co cle wbr cgrp ngpgrp eqid grpidcl adantr
      syl cxme ngpxms xmsge0 syl3an1 mpd3an3 wceq nmval adantl breqtrrd ) BGHZA
      DHZIJABKLZBMLZNZACLZOULUMUNDHZJUPOPZULURUMULBQHURBRDBUNEUNSZTUBUAULBUCHUM
      URUSBUDAUNUOBDEUOSZUEUFUGUMUQUPUHULAUOCBDUNFEUTVAUIUJUK $.

    ${
      nmeq0.z $e |- .0. = ( 0g ` G ) $.
      $( The identity is the only element of the group with zero norm.  First
         part of Problem 2 of [Kreyszig] p. 64.  (Contributed by NM,
         24-Nov-2006.)  (Revised by Mario Carneiro, 4-Oct-2015.) $)
      nmeq0 $p |- ( ( G e. NrmGrp /\ A e. X ) ->
                     ( ( N ` A ) = 0 <-> A = .0. ) ) $=
        ( cngp wcel wa cfv cc0 wceq cds co eqid nmval adantl eqeq1d cgrp ngpgrp
        wb adantr grpidcl syl cxme ngpxms xmseq0 syl3an1 mpd3an3 bitrd ) BIJZAD
        JZKZACLZMNAEBOLZPZMNZAENZUOUPURMUNUPURNUMAUQCBDEGFHUQQZRSTUMUNEDJZUSUTU
        CZUOBUAJZVBUMVDUNBUBUDDBEFHUEUFUMBUGJUNVBVCBUHAEUQBDFVAUIUJUKUL $.

      $( The norm of a nonzero element is nonzero.  (Contributed by Mario
         Carneiro, 4-Oct-2015.) $)
      nmne0 $p |- ( ( G e. NrmGrp /\ A e. X /\ A =/= .0. ) ->
                     ( N ` A ) =/= 0 ) $=
        ( cngp wcel cfv cc0 wne wa nmeq0 necon3bid biimp3ar ) BIJZADJZACKZLMAEM
        RSNTLAEABCDEFGHOPQ $.

      $( The norm of a nonzero element is a positive real.  (Contributed by
         Mario Carneiro, 4-Oct-2015.) $)
      nmrpcl $p |- ( ( G e. NrmGrp /\ A e. X /\ A =/= .0. ) ->
                      ( N ` A ) e. RR+ ) $=
        ( cngp wcel wne w3a cfv cr nmcl 3adant3 cc0 cle wbr nmge0 nmne0 ne0gt0d
        elrpd ) BIJZADJZAEKZLZACMZUDUEUHNJUFABCDFGOPZUGUHUIUDUEQUHRSUFABCDFGTPA
        BCDEFGHUAUBUC $.
    $}

    ${
      nminv.i $e |- I = ( invg ` G ) $.
      $( The norm of a negated element is the same as the norm of the original
         element.  (Contributed by Mario Carneiro, 4-Oct-2015.) $)
      nminv $p |- ( ( G e. NrmGrp /\ A e. X ) ->
                     ( N ` ( I ` A ) ) = ( N ` A ) ) $=
        ( cngp wcel wa c0g cfv cds co csg wceq cgrp ngpgrp eqid grpidcl mpd3an3
        adantr syl ngpdsr nmval adantl grpinvval2 sylan fveq2d 3eqtr4rd ) BIJZA
        EJZKZABLMZBNMZOZUOABPMZOZDMZADMZACMZDMULUMUOEJZUQUTQUNBRJZVCULVDUMBSZUC
        EBUOFUOTZUAUDAUOUPBURDEGFURTZUPTZUEUBUMVAUQQULAUPDBEUOGFVFVHUFUGUNVBUSD
        ULVDUMVBUSQVEEBURCAUOFVGHVFUHUIUJUK $.
    $}

    ${
      nmmtri.m $e |- .- = ( -g ` G ) $.
      $( The triangle inequality for the norm of a subtraction.  (Contributed
         by NM, 27-Dec-2007.)  (Revised by Mario Carneiro, 4-Oct-2015.) $)
      nmmtri $p |- ( ( G e. NrmGrp /\ A e. X /\ B e. X ) ->
                        ( N ` ( A .- B ) ) <_ ( ( N ` A ) + ( N ` B ) ) ) $=
        ( cngp wcel w3a cfv co caddc cle eqid 3ad2ant1 wceq nmval cds ngpds c0g
        cmt wbr ngpms simp2 simp3 ngpgrp grpidcl syl syl13anc 3ad2ant2 3ad2ant3
        cgrp mstri3 oveq12d breqtrrd eqbrtrrd ) CJKZAFKZBFKZLZABCUAMZNZABDNEMAE
        MZBEMZONZPABVDCDEFHGIVDQZUBVCVEACUCMZVDNZBVJVDNZONZVHPVCCUDKZVAVBVJFKZV
        EVMPUEUTVAVNVBCUFRUTVAVBUGUTVAVBUHUTVAVOVBUTCUOKVOCUIFCVJGVJQZUJUKRABVJ
        VDCFGVIUPULVCVFVKVGVLOVAUTVFVKSVBAVDECFVJHGVPVITUMVBUTVGVLSVABVDECFVJHG
        VPVITUNUQURUS $.

      $( The norm of the difference between two elements.  (Contributed by
         Mario Carneiro, 4-Oct-2015.) $)
      nmsub $p |- ( ( G e. NrmGrp /\ A e. X /\ B e. X ) ->
                        ( N ` ( A .- B ) ) = ( N ` ( B .- A ) ) ) $=
        ( cngp wcel w3a co cminusg cfv cgrp wceq simp1 ngpgrp syl3anc syl simp3
        simp2 eqid grpinvsub fveq2d grpsubcl nminv syl2anc eqtr3d ) CJKZAFKZBFK
        ZLZBADMZCNOZOZEOZABDMZEOUOEOZUNUQUSEUNCPKZUMULUQUSQUNUKVAUKULUMRZCSUAZU
        KULUMUBZUKULUMUCZFCDUPBAGIUPUDZUETUFUNUKUOFKZURUTQVBUNVAUMULVGVCVDVEFCD
        BAGIUGTUOCUPEFGHVFUHUIUJ $.

      $( Reverse triangle inequality for the norm of a subtraction.  Problem 3
         of [Kreyszig] p. 64.  (Contributed by NM, 4-Dec-2006.)  (Revised by
         Mario Carneiro, 4-Oct-2015.) $)
      nmrtri $p |- ( ( G e. NrmGrp /\ A e. X /\ B e. X ) ->
        ( abs ` ( ( N ` A ) - ( N ` B ) ) ) <_ ( N ` ( A .- B ) ) ) $=
        ( cngp wcel cfv co cmin cabs cle 3ad2ant1 eqid wceq nmval w3a c0g ngpms
        cds cmt wbr simp2 cgrp ngpgrp grpidcl msrtri syl13anc 3ad2ant2 3ad2ant3
        simp3 syl oveq12d fveq2d ngpds eqcomd 3brtr4d ) CJKZAFKZBFKZUAZACUBLZCU
        DLZMZBVFVGMZNMZOLZABVGMZAELZBELZNMZOLABDMELZPVECUEKZVCVDVFFKZVKVLPUFVBV
        CVQVDCUCQVBVCVDUGVBVCVDUOVECUHKZVRVBVCVSVDCUIQFCVFGVFRZUJUPABVFVGCFGVGR
        ZUKULVEVOVJOVEVMVHVNVINVCVBVMVHSVDAVGECFVFHGVTWATUMVDVBVNVISVCBVGECFVFH
        GVTWATUNUQURVEVLVPABVGCDEFHGIWAUSUTVA $.

      $( Inequality for the difference of norms.  (Contributed by Mario
         Carneiro, 6-Oct-2015.) $)
      nm2dif $p |- ( ( G e. NrmGrp /\ A e. X /\ B e. X ) ->
        ( ( N ` A ) - ( N ` B ) ) <_ ( N ` ( A .- B ) ) ) $=
        ( cngp wcel w3a cfv cmin co cabs cr nmcl 3adant3 3adant2 resubcld recnd
        abscld simp1 cgrp ngpgrp grpsubcl syl3an1 syl2anc leabsd nmrtri letrd )
        CJKZAFKZBFKZLZAEMZBEMZNOZUSPMABDOZEMZUPUQURUMUNUQQKUOACEFGHRSUMUOURQKUN
        BCEFGHRTUAZUPUSUPUSVBUBUCUPUMUTFKZVAQKUMUNUOUDUMCUEKUNUOVCCUFFCDABGIUGU
        HUTCEFGHRUIUPUSVBUJABCDEFGHIUKUL $.
    $}

    ${
      nmtri.p $e |- .+ = ( +g ` G ) $.
      $( The triangle inequality for the norm of a sum.  (Contributed by NM,
         11-Nov-2006.)  (Revised by Mario Carneiro, 4-Oct-2015.) $)
      nmtri $p |- ( ( G e. NrmGrp /\ A e. X /\ B e. X ) ->
                     ( N ` ( A .+ B ) ) <_ ( ( N ` A ) + ( N ` B ) ) ) $=
        ( cngp wcel w3a cminusg cfv csg co caddc cle wbr eqid cgrp ngpgrp simp3
        3ad2ant1 grpinvcl syl2anc nmmtri syld3an3 grpsubinv fveq2d wceq 3adant2
        simp2 nminv oveq2d 3brtr3d ) DJKZAFKZBFKZLZABDMNZNZDONZPZENZAENZVBENZQP
        ZABCPZENVFBENZQPRUQURUSVBFKZVEVHRSUTDUAKZUSVKUQURVLUSDUBUDZUQURUSUCZFDV
        ABGVATZUEUFAVBDVCEFGHVCTZUGUHUTVDVIEUTFCDVCVAABGIVPVOVMUQURUSUMVNUIUJUT
        VGVJVFQUQUSVGVJUKURBDVAEFGHVOUNULUOUP $.
    $}
  $}

  ${
    nmtri2.x $e |- X = ( Base ` G ) $.
    nmtri2.n $e |- N = ( norm ` G ) $.
    nmtri2.m $e |- .- = ( -g ` G ) $.
    $( Triangle inequality for the norm of two subtractions.  (Contributed by
       NM, 24-Feb-2008.)  (Revised by AV, 8-Oct-2021.) $)
    nmtri2 $p |- ( ( G e. NrmGrp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
         ( N ` ( A .- C ) ) <_ ( ( N ` ( A .- B ) ) + ( N ` ( B .- C ) ) ) ) $=
      ( cngp wcel w3a wa co cfv cplusg cle grpsubcl syl3anc cgrp wceq grpnpncan
      caddc ngpgrp eqid eqcomd sylan fveq2d adantr simpr1 simpr2 simpr3 eqbrtrd
      wbr simpl nmtri ) DKLZAGLZBGLZCGLZMZNZACEOZFPABEOZBCEOZDQPZOZFPZVEFPVFFPU
      DOZRVCVDVHFURDUALZVBVDVHUBDUEZVKVBNVHVDGVGDEABCHVGUFZJUCUGUHUIVCURVEGLZVF
      GLZVIVJRUOURVBUPVCVKUSUTVNURVKVBVLUJZURUSUTVAUKURUSUTVAULZGDEABHJSTVCVKUT
      VAVOVPVQURUSUTVAUMGDEBCHJSTVEVFVGDFGHIVMUQTUN $.
  $}

  ${
    $d V y $.  $d W x y $.
    ngpi.v $e |- V = ( Base ` W ) $.
    ngpi.n $e |- N = ( norm ` W ) $.
    ngpi.m $e |- .- = ( -g ` W ) $.
    ngpi.0 $e |- .0. = ( 0g ` W ) $.
    $( The properties of a normed group, which is a group accompanied by a
       norm.  (Contributed by AV, 7-Oct-2021.) $)
    ngpi $p |- ( W e. NrmGrp -> ( W e. Grp /\ N : V --> RR
          /\ A. x e. V ( ( ( N ` x ) = 0 <-> x = .0. )
          /\ A. y e. V ( N ` ( x .- y ) ) <_ ( ( N ` x ) + ( N ` y ) ) ) ) ) $=
      ( cngp wcel cv cfv wceq co wral wa ralrimiva cgrp cr wf cc0 caddc cle wbr
      wb ngpgrp nmf nmeq0 nmmtri 3expa jca 3jca ) FLMZFUAMEUBDUCANZDOZUDPUQGPUH
      ZUQBNZCQDOURUTDOUEQUFUGZBERZSZAERFUIFDEHIUJUPVCAEUPUQEMZSZUSVBUQFDEGHIKUK
      VEVABEUPVDUTEMVAUQUTFCDEHIJULUMTUNTUO $.
  $}

  ${
    nm0.n $e |- N = ( norm ` G ) $.
    nm0.z $e |- .0. = ( 0g ` G ) $.
    $( Norm of the identity element.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    nm0 $p |- ( G e. NrmGrp -> ( N ` .0. ) = 0 ) $=
      ( cngp wcel cfv cc0 wceq eqid cbs wb cgrp ngpgrp grpidcl syl nmeq0 mpbiri
      mpdan ) AFGZCBHIJZCCJZCKUACALHZGZUBUCMUAANGUEAOUDACUDKZEPQCABUDCUFDERTS
      $.
  $}

  ${
    nmgt0.x $e |- X = ( Base ` G ) $.
    nmgt0.n $e |- N = ( norm ` G ) $.
    nmgt0.z $e |- .0. = ( 0g ` G ) $.
    $( The norm of a nonzero element is a positive real.  (Contributed by NM,
       20-Nov-2007.)  (Revised by AV, 8-Oct-2021.) $)
    nmgt0 $p |- ( ( G e. NrmGrp /\ A e. X )
                  -> ( A =/= .0. <-> 0 < ( N ` A ) ) ) $=
      ( cngp wcel wa cfv cc0 wne clt wbr nmeq0 necon3bid cr cle wb nmge0 ne0gt0
      nmcl syl2anc bitr3d ) BIJADJKZACLZMNZAENMUHOPZUGUHMAEABCDEFGHQRUGUHSJMUHT
      PUIUJUAABCDFGUDABCDFGUBUHUCUEUF $.
  $}

  ${
    sgrim.x $e |- X = ( T |`s U ) $.
    sgrim.d $e |- D = ( dist ` T ) $.
    sgrim.e $e |- E = ( dist ` X ) $.
    $( The induced metric on a subgroup is the induced metric on the parent
       group equipped with a norm.  (Contributed by NM, 1-Feb-2008.)  (Revised
       by AV, 19-Oct-2021.) $)
    sgrim $p |- ( U e. S -> E = D ) $=
      ( wcel cds cfv ressds syl6reqr ) DBJAFKLEDACFBGHMIN $.

    sgrimval.t $e |- T = ( G toNrmGrp N ) $.
    sgrimval.n $e |- N = ( norm ` G ) $.
    sgrimval.s $e |- S = ( SubGrp ` T ) $.
    $( The induced metric on a subgroup in terms of the induced metric on the
       parent normed group.  (Contributed by NM, 1-Feb-2008.)  (Revised by AV,
       19-Oct-2021.) $)
    sgrimval $p |- ( ( ( G e. NrmGrp /\ U e. S ) /\ ( A e. U /\ B e. U ) ) ->
                    ( A E B ) = ( A D B ) ) $=
      ( wcel co wceq cngp wa sgrim oveqd ad2antlr ) FDQZABGRABCRSHTQAFQBFQUAUEG
      CABCDEFGJKLMUBUCUD $.
  $}

  ${
    $d x y A $.  $d x y G $.  $d x y H $.
    subgngp.h $e |- H = ( G |`s A ) $.
    ${
      subgnm.n $e |- N = ( norm ` G ) $.
      subgnm.m $e |- M = ( norm ` H ) $.
      $( The norm in a subgroup.  (Contributed by Mario Carneiro,
         4-Oct-2015.) $)
      subgnm $p |- ( A e. ( SubGrp ` G ) -> M = ( N |` A ) ) $=
        ( vx csubg cfv wcel cbs c0g cds co cmpt cres eqid nmfval subgss resmptd
        cv subgbas ressds eqidd subg0 oveq123d mpteq12dv eqtr2d reseq1i 3eqtr4g
        ) ABJKZLZICMKZIUCZCNKZCOKZPZQZIBMKZUPBNKZBOKZPZQZARZDEARUNVFIAVDQUTUNIV
        AAVDVAABVASZUAUBUNIAVDUOUSABCFUDUNUPUPVBUQVCURAVCBCUMFVCSZUEUNUPUFABCVB
        FVBSZUGUHUIUJIURDCUOUQHUOSUQSURSTEVEAIVCEBVAVBGVGVIVHTUKUL $.

      $( A substructure assigns the same values to the norms of elements of a
         subgroup.  (Contributed by Mario Carneiro, 4-Oct-2015.) $)
      subgnm2 $p |- ( ( A e. ( SubGrp ` G ) /\ X e. A ) ->
        ( M ` X ) = ( N ` X ) ) $=
        ( csubg cfv wcel cres subgnm fveq1d fvres sylan9eq ) ABJKLZFALFDKFEAMZK
        FEKRFDSABCDEGHINOFAEPQ $.
    $}

    $( A normed group restricted to a subgroup is a normed group.  (Contributed
       by Mario Carneiro, 4-Oct-2015.) $)
    subgngp $p |- ( ( G e. NrmGrp /\ A e. ( SubGrp ` G ) ) -> H e. NrmGrp ) $=
      ( vx vy cngp wcel cfv wa cmt cv cds csg cnm wceq ad2antlr eleqtrrd eqid
      co csubg cgrp cbs subggrp adantl cress ngpms ressms sylan syl5eqel simplr
      wral simprl subgbas simprr subgsub syl3anc fveq2d ressds oveqd simpll wss
      subgss sseldd ngpds grpsubcl subgnm2 syl2anc 3eqtr4d ralrimivva syl3anbrc
      eqtr3d 3expb isngp3 ) BGHZABUAIZHZJZCUBHZCKHELZFLZCMIZTZVTWACNIZTZCOIZIZP
      ZFCUCIZULEWIULCGHVQVSVOABCDUDUEZVRCBAUFTZKDVOBKHVQWKKHBUGABVPUHUIUJVRWHEF
      WIWIVRVTWIHZWAWIHZJZJZVTWABNIZTZBOIZIZWEWRIZWCWGWOWQWEWRWOVQVTAHWAAHWQWEP
      VOVQWNUKZWOVTWIAVRWLWMUMVQAWIPVOWNABCDUNQZRZWOWAWIAVRWLWMUOXBRZABCWPWDVTW
      AWPSZDWDSZUPUQURWOVTWABMIZTZWCWSWOXGWBVTWAVQXGWBPVOWNAXGBCVPDXGSZUSQUTWOV
      OVTBUCIZHWAXJHXHWSPVOVQWNVAWOAXJVTVQAXJVBVOWNXJABXJSZVCQZXCVDWOAXJWAXLXDV
      DVTWAXGBWPWRXJWRSZXKXEXIVEUQVLWOVQWEAHWGWTPXAWOWEWIAVRVSWNWEWIHZWJVSWLWMX
      NWICWDVTWAWISZXFVFVMUIXBRABCWFWRWEDXMWFSZVGVHVIVJEFWBCWDWFWIXPXFWBSXOVNVK
      $.
  $}

  ${
    $d r u v x y z G $.
    $( A normed abelian group is a topological group (with the topology induced
       by the metric induced by the norm).  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    ngptgp $p |- ( ( G e. NrmGrp /\ G e. Abel ) -> G e. TopGrp ) $=
      ( vx vu vr vy vv wcel wa cfv co syl cv clt wbr wral crp eqid syl3anc wceq
      cr vz cngp cabl cgrp ctps csg ctopn ctx ccn ngpgrp adantr cmt ngpms mstps
      ctgp cds cbs cxp cres cmopn wf wi wrex grpsubf cdiv rphalfcl adantl caddc
      simplll simpld simprl mscl simprd simprr rpre ad2antlr lt2halves grpsubcl
      c2 simpllr cle mstri syl13anc ngpsubcan cminusg grpsubval syl2anc oveq12d
      cplusg grpinvcl ngplcan ngpinvds syl12anc 3eqtrd lelttr mpand syld ovresd
      breqtrd readdcld breq1d anbi12d 3imtr4d ralrimivva imbi1d 2ralbidv rspcev
      breq2 ralrimiva cxmt wb cxme msxms xmsxmet 3syl mpbir2and mstopn eleqtrrd
      txmetcn istgp2 syl3anbrc ) AUBGZAUCGZHZAUDGZAUEGZAUFIZAUGIZYHUHJZYHUIJZGA
      UOGYBYEYCAUJUKZYDAULGZYFYBYLYCAUMUKZAUNKYDYGAUPIZAUQIZYOURZUSZUTIZYRUHJZY
      RUIJZYJYDYGYTGZYPYOYGVAZBLZCLZYQJZDLZMNZELZFLZYQJZUUFMNZHZUUCUUHYGJZUUDUU
      IYGJZYQJZUALZMNZVBZFYOOCYOOZDPVCZUAPOZEYOOBYOOZYDYEUUBYKYOAYGYOQZYGQZVDKY
      DUVABEYOYOYDUUCYOGZUUHYOGZHZHZUUTUAPUVHUUPPGZHZUUPVSVEJZPGZUUEUVKMNZUUJUV
      KMNZHZUUQVBZFYOOCYOOZUUTUVIUVLUVHUUPVFVGUVJUVPCFYOYOUVJUUDYOGZUUIYOGZHZHZ
      UUCUUDYNJZUVKMNZUUHUUIYNJZUVKMNZHZUUMUUNYNJZUUPMNZUVOUUQUWAUWFUWBUWDVHJZU
      UPMNZUWHUWAUWBTGZUWDTGZUUPTGZUWFUWJVBUWAYLUVEUVRUWKUWAYDYLYDUVGUVIUVTVIZY
      MKZUWAUVEUVFYDUVGUVIUVTVTZVJZUVJUVRUVSVKZUUCUUDYNAYOUVCYNQZVLRZUWAYLUVFUV
      SUWLUWOUWAUVEUVFUWPVMZUVJUVRUVSVNZUUHUUIYNAYOUVCUWSVLRZUVIUWMUVHUVTUUPVOV
      PZUWBUWDUUPVQRUWAUWGUWIWANZUWJUWHUWAUWGUUMUUDUUHYGJZYNJZUXFUUNYNJZVHJZUWI
      WAUWAYLUUMYOGZUUNYOGZUXFYOGZUWGUXIWANUWOUWAYEUVEUVFUXJUWAYDYEUWNYKKZUWQUX
      AYOAYGUUCUUHUVCUVDVRRZUWAYEUVRUVSUXKUXMUWRUXBYOAYGUUDUUIUVCUVDVRRZUWAYEUV
      RUVFUXLUXMUWRUXAYOAYGUUDUUHUVCUVDVRRUUMUUNUXFYNAYOUVCUWSWBWCUWAUXGUWBUXHU
      WDVHUWAYBUVEUVRUVFUXGUWBSUWAYBYCUWNVJUWQUWRUXAUUCUUDUUHYNAYGYOUVCUVDUWSWD
      WCUWAUXHUUDUUHAWEIZIZAWIIZJZUUDUUIUXPIZUXRJZYNJZUXQUXTYNJZUWDUWAUXFUXSUUN
      UYAYNUWAUVRUVFUXFUXSSUWRUXAYOUXRAUXPYGUUDUUHUVCUXRQZUXPQZUVDWFWGUVTUUNUYA
      SUVJYOUXRAUXPYGUUDUUIUVCUYDUYEUVDWFVGWHUWAYDUXQYOGZUXTYOGZUVRUYBUYCSUWNUW
      AYEUVFUYFUXMUXAYOAUXPUUHUVCUYEWJWGUWAYEUVSUYGUXMUXBYOAUXPUUIUVCUYEWJWGUWR
      UXQUXTUUDYNUXRAYOUVCUYDUWSWKWCUWAYDUVFUVSUYCUWDSUWNUXAUXBUUHUUIYNAUXPYOUV
      CUYEUWSWLWMWNWHWSUWAUWGTGZUWITGUWMUXEUWJHUWHVBUWAYLUXJUXKUYHUWOUXNUXOUUMU
      UNYNAYOUVCUWSVLRUWAUWBUWDUWTUXCWTUXDUWGUWIUUPWORWPWQUWAUVMUWCUVNUWEUWAUUE
      UWBUVKMUWAUUCUUDYNYOUWQUWRWRXAUWAUUJUWDUVKMUWAUUHUUIYNYOUXAUXBWRXAXBUWAUU
      OUWGUUPMUWAUUMUUNYNYOUXNUXOWRXAXCXDUUSUVQDUVKPUUFUVKSZUURUVPCFYOYOUYIUULU
      VOUUQUYIUUGUVMUUKUVNUUFUVKUUEMXHUUFUVKUUJMXHXBXEXFXGWGXIXDYDYQYOXJIGZUYJU
      YJUUAUUBUVBHXKYDYLAXLGUYJYMAXMYQAYOUVCYQQZXNXOZUYLUYLBEUADFCYQYQYQYGYRYRY
      RYOYOYOYRQZUYMUYMXSRXPYDYIYSYHYRUIYDYHYRYHYRUHYDYLYHYRSYMYQYHAYOYHQZUVCUY
      KXQKZUYOWHUYOWHXRAYHYGUYNUVDXTYA $.
  $}

  ${
    $d x y B $.  $d x y K $.  $d x y L $.  $d x y ph $.
    ngppropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    ngppropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    ngppropd.3 $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) $.
    ngppropd.4 $e |- ( ph ->
      ( ( dist ` K ) |` ( B X. B ) ) = ( ( dist ` L ) |` ( B X. B ) ) ) $.
    ngppropd.5 $e |- ( ph -> ( TopOpen ` K ) = ( TopOpen ` L ) ) $.
    $( Property deduction for a normed group.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    ngppropd $p |- ( ph -> ( K e. NrmGrp <-> L e. NrmGrp ) ) $=
      ( cgrp wcel cfv cxp cres wceq wa adantr eqid cmt cnm csg ccom cds cbs w3a
      cngp wb mspropd simpr cv co adantlr nmpropd2 grpsubpropd2 coeq12d sqxpeqd
      cplusg reseq2d 3eqtr3d eqeq12d anbi12d anbi1d bitrd 3anass 3bitr4g isngp2
      pm5.32da grppropd ) AELMZEUAMZEUBNZEUCNZUDZEUENZEUFNZVQOZPZQZUGZFLMZFUAMZ
      FUBNZFUCNZUDZFUENZFUFNZWHOZPZQZUGZEUHMFUHMAVKVLVTRZRZWBWCWKRZRZWAWLAWNVKW
      ORWPAVKWMWOAVKRZVLWCVTWKAVLWCUIVKADEFGHJKUJSWQVOWFVSWJWQVMWDVNWEWQBCDEFAD
      VQQVKGSZADWHQVKHSZAVKUKZABULZDMCULZDMRXAXBEUSNUMXAXBFUSNUMQVKIUNZAVPDDOZP
      ZWGXDPZQVKJSUOWQBCDEFWRWSWTXCUPUQAVSWJQVKAXEXFVSWJJAXDVRVPADVQGURUTAXDWIW
      GADWHHURUTVASVBVCVIAVKWBWOABCDEFGHIVJVDVEVKVLVTVFWBWCWKVFVGVPVSEVNVMVQVMT
      VNTVPTVQTVSTVHWGWJFWEWDWHWDTWETWGTWHTWJTVHVG $.
  $}

  ${
    $d f g D $.  $d f g G $.  $d f g J $.  $d f g N $.
    $( The function ` toNrmGrp ` is a two-argument function.  (Contributed by
       Mario Carneiro, 8-Oct-2015.) $)
    reldmtng $p |- Rel dom toNrmGrp $=
      ( vg vf cvv cv cnx cds cfv csg ccom cop csts co cts ctng df-tng reldmmpt2
      cmopn ) ABCCADZEFGBDRHGIZJKLEMGSQGJKLNBAOP $.

    tngval.t $e |- T = ( G toNrmGrp N ) $.
    tngval.m $e |- .- = ( -g ` G ) $.
    tngval.d $e |- D = ( N o. .- ) $.
    tngval.j $e |- J = ( MetOpen ` D ) $.
    $( Value of the function which augments a given structure ` G ` with a norm
       ` N ` .  (Contributed by Mario Carneiro, 2-Oct-2015.) $)
    tngval $p |- ( ( G e. V /\ N e. W ) -> T =
   ( ( G sSet <. ( dist ` ndx ) , D >. ) sSet <. ( TopSet ` ndx ) , J >. ) ) $=
      ( vg vf wcel co cfv cop csts cvv wa ctng cnx cds cts wceq elex ccom cmopn
      csg simpl simpr fveq2d syl6eqr coeq12d opeq2d oveq12d df-tng ovex ovmpt2a
      cv syl2an syl5eq ) CGOZFHOZUABCFUBPZCUCUDQZARZSPZUCUEQZDRZSPZIVDCTOFTOVFV
      LUFVECGUGFHUGMNCFTTMVAZVGNVAZVMUJQZUHZRZSPZVJVPUIQZRZSPVLUBVMCUFZVNFUFZUA
      ZVRVIVTVKSWCVMCVQVHSWAWBUKZWCVPAVGWCVPFEUHAWCVNFVOEWAWBULWCVOCUJQEWCVMCUJ
      WDUMJUNUOKUNZUPUQWCVSDVJWCVSAUIQDWCVPAUIWEUMLUNUPUQNMURVIVKSUSUTVBVC $.
  $}

  ${
    $d x y G $.  $d x y N $.  $d x y T $.  $d x y V $.
    tngbas.t $e |- T = ( G toNrmGrp N ) $.
    ${
      tnglem.2 $e |- E = Slot K $.
      tnglem.3 $e |- K e. NN $.
      tnglem.4 $e |- K < 9 $.
      $( Lemma for ~ tngbas and similar theorems.  (Contributed by Mario
         Carneiro, 2-Oct-2015.) $)
      tnglem $p |- ( N e. V -> ( E ` G ) = ( E ` T ) ) $=
        ( cfv wceq cnx co eqid c1 c2 c9 clt c0 cvv wcel wa cds csg ccom cop cts
        csts cmopn tngval fveq2d ndxid cdc ndxarg nnrei eqeltri wbr eqbrtri 1nn
        cr 2nn0 9nn0 9lt10 declti 1nn0 deccl nn0rei lttri mp2an ltneii neeqtrri
        dsndx setsnid tsetndx eqtri syl6reqr wn str0 fvprc adantr ctng reldmtng
        9re ovprc1 syl5eq 3eqtr4a pm2.61ian ) CUAUBZEFUBZCBKZABKZLWIWJUCZWLCMUD
        KZECUEKZUFZUGUINZMUHKZWPUJKZUGUINZBKZWKWMAWTBWPACWSWOEUAFGWOOWPOWSOUKUL
        WKWQBKXAWPWNBCBDHIUMZMBKZPQUNZWNXCXDXCDVABDHIUOZDIUPUQZXCRSURRXDSURXCXD
        SURXCDRSXEJUSZPQRUTVBVCVDVEXCRXDXFWDXDPQVFVBVGVHVIVJVKVMVLVNWSWRBWQXBXC
        RWRXCRXFXGVKVOVLVNVPVQWIVRZWJUCZTTBKWKWLBDHVSXHWKTLWJCBVTWAXIATBXIACEWB
        NZTGXHXJTLWJCEWBWCWEWAWFULWGWH $.
    $}

    ${
      tngbas.2 $e |- B = ( Base ` G ) $.
      $( The base set of a structure augmented with a norm.  (Contributed by
         Mario Carneiro, 2-Oct-2015.) $)
      tngbas $p |- ( N e. V -> B = ( Base ` T ) ) $=
        ( wcel cbs cfv c1 df-base 1nn 1lt9 tnglem syl5eq ) DEHACIJBIJGBICKDEFLM
        NOP $.
    $}

    ${
      tngplusg.2 $e |- .+ = ( +g ` G ) $.
      $( The group addition of a structure augmented with a norm.  (Contributed
         by Mario Carneiro, 2-Oct-2015.) $)
      tngplusg $p |- ( N e. V -> .+ = ( +g ` T ) ) $=
        ( wcel cplusg cfv c2 df-plusg 2nn 2lt9 tnglem syl5eq ) DEHACIJBIJGBICKD
        EFLMNOP $.
    $}

    ${
      tng0.2 $e |- .0. = ( 0g ` G ) $.
      $( The group identity of a structure augmented with a norm.  (Contributed
         by Mario Carneiro, 4-Oct-2015.) $)
      tng0 $p |- ( N e. V -> .0. = ( 0g ` T ) ) $=
        ( vx vy wcel c0g cfv cbs eqidd eqid tngbas cv wa cplusg tngplusg oveqdr
        grpidpropd syl5eq ) CDJZEBKLAKLGUDHIBMLZBAUDUENUEABCDFUEOPUDHQUEJIQUEJR
        HIBSLZASLUFABCDFUFOTUAUBUC $.
    $}

    ${
      tngmulr.2 $e |- .x. = ( .r ` G ) $.
      $( The ring multiplication of a structure augmented with a norm.
         (Contributed by Mario Carneiro, 2-Oct-2015.) $)
      tngmulr $p |- ( N e. V -> .x. = ( .r ` T ) ) $=
        ( wcel cmulr cfv c3 df-mulr 3nn 3lt9 tnglem syl5eq ) DEHBCIJAIJGAICKDEF
        LMNOP $.
    $}

    ${
      tngsca.2 $e |- F = ( Scalar ` G ) $.
      $( The scalar ring of a structure augmented with a norm.  (Contributed by
         Mario Carneiro, 2-Oct-2015.) $)
      tngsca $p |- ( N e. V -> F = ( Scalar ` T ) ) $=
        ( wcel csca cfv c5 df-sca 5nn 5lt9 tnglem syl5eq ) DEHBCIJAIJGAICKDEFLM
        NOP $.
    $}

    ${
      tngvsca.2 $e |- .x. = ( .s ` G ) $.
      $( The scalar multiplication of a structure augmented with a norm.
         (Contributed by Mario Carneiro, 2-Oct-2015.) $)
      tngvsca $p |- ( N e. V -> .x. = ( .s ` T ) ) $=
        ( wcel cvsca cfv c6 df-vsca 6nn 6lt9 tnglem syl5eq ) DEHBCIJAIJGAICKDEF
        LMNOP $.
    $}

    ${
      tngip.2 $e |- ., = ( .i ` G ) $.
      $( The inner product operation of a structure augmented with a norm.
         (Contributed by Mario Carneiro, 2-Oct-2015.) $)
      tngip $p |- ( N e. V -> ., = ( .i ` T ) ) $=
        ( wcel cip cfv c8 df-ip 8nn 8lt9 tnglem syl5eq ) DEHCBIJAIJGAIBKDEFLMNO
        P $.
    $}

    ${
      tngds.2 $e |- .- = ( -g ` G ) $.
      $( The metric function of a structure augmented with a norm.
         (Contributed by Mario Carneiro, 3-Oct-2015.) $)
      tngds $p |- ( N e. V -> ( N o. .- ) = ( dist ` T ) ) $=
        ( cvv wcel ccom cds cfv wceq cnx cop csts co c9 csg c0 wa cts cmopn wne
        dsid c1 cdc 9re 1nn 2nn0 9nn0 9lt10 declti gtneii dsndx tsetndx neeq12i
        mpbir setsnid fvex eqeltri coexg mpan2 setsid sylan2 eqid tngval fveq2d
        c2 3eqtr4a wn co02 df-ds str0 eqtri fvprc syl5eq coeq2d reldmtng ovprc1
        ctng adantr pm2.61ian ) BHIZDEIZDCJZAKLZMZWDWEUAZBNKLZWFOPQZKLZWKNUBLZW
        FUCLZOPQZKLWFWGWNWMKWKUEWJWMUDUFVIUGZRUDRWPUHUFVIRUIUJUKULUMUNWJWPWMRUO
        UPUQURUSWEWDWFHIZWFWLMWECHIWQCBSLZHGBSUTVADCEHVBVCHWFKHBUEVDVEWIAWOKWFA
        BWNCDHEFGWFVFWNVFVGVHVJWDVKZWHWEWSDTJZTKLZWFWGWTTXADVLKWPVMVNVOWSCTDWSC
        WRTGBSVPVQVRWSATKWSABDWAQTFBDWAVSVTVQVHVJWBWC $.
    $}

    tngtset.2 $e |- D = ( dist ` T ) $.
    tngtset.3 $e |- J = ( MetOpen ` D ) $.
    $( The topology generated by a normed structure.  (Contributed by Mario
       Carneiro, 3-Oct-2015.) $)
    tngtset $p |- ( ( G e. V /\ N e. W ) -> J = ( TopSet ` T ) ) $=
      ( wcel cfv cmopn cnx cds cop csts cts cvv eqid wa csg ccom wceq ovex fvex
      co tsetid setsid mp2an tngds syl6reqr adantl fveq2d syl5eq tngval 3eqtr4a
      ) CFKZEGKZUAZECUBLZUCZMLZCNOLVBPZQUGZNRLVCPQUGZRLZDBRLVESKVCSKVCVGUDCVDQU
      EVBMUFSVCRSVEUHUIUJUTDAMLVCJUTAVBMUSAVBUDURUSVBBOLABCVAEGHVATZUKIULUMUNUO
      UTBVFRVBBCVCVAEFGHVHVBTVCTUPUNUQ $.

    $( The topology generated by a normed structure.  (Contributed by Mario
       Carneiro, 4-Oct-2015.) $)
    tngtopn $p |- ( ( G e. V /\ N e. W ) -> J = ( TopOpen ` T ) ) $=
      ( vx vy wcel cfv wss wceq cmopn cdm eqid syl wa cts ctopn tngtset cbs cpw
      cxmt crn cuni cv cbl ctg df-mopn dmmptss sseli cxp csg ccom tngds syl6eqr
      adantl dmeqd dmcoss cminusg cplusg co grpsubfval dmmpt2 sseqtri syl6eqssr
      cds ovex adantr dmss dmxpid syl6sseq simpr xmetunirn sylib mopnuni tngbas
      ad2antlr 3sstr3d sspwuni sylibr ex syl5 wn c0 ndmfv 0ss syl6eqss pm2.61d1
      syl5eqss eqsstr3d topnid eqtrd ) CFMZEGMZUAZDBUBNZBUCNZABCDEFGHIJUDZWTXAB
      UENZUFZOXAXBPWTXADXEXCWTDAQNZXEJWTAQRZMZXFXEOZXHAUGUHUIZMZWTXIXGXJAKXJKUJ
      ZUKNUHULNQKUMUNUOWTXKXIWTXKUAZXFUIZXDOXIXMARZRZCUENZXNXDXMXPXQXQUPZRZXQXM
      XOXROZXPXSOWTXTXKWTXOECUQNZURZRZXRWTYBAWSYBAPWRWSYBBVKNABCYAEGHYASZUSIUTV
      AVBYCYARXREYAVCKLXQXQXLLUJCVDNZNZCVENZVFYAKLXQYGCYEYAXQSZYGSYESYDVGXLYFYG
      VLVHVIVJVMXOXRVNTXQVOVPXMAXPUGNMZXPXNPXMXKYIWTXKVQAVRVSAXFXPXFSVTTWSXQXDP
      WRXKXQBCEGHYHWAWBWCXFXDWDWEWFWGXHWHXFWIXEAQWJXEWKWLWMWNWOXDXABXDSXASWPTWQ
      $.
  $}

  ${
    $d x A $.  $d x G $.  $d x N $.  $d x T $.  $d x X $.
    tngnm.t $e |- T = ( G toNrmGrp N ) $.
    tngnm.x $e |- X = ( Base ` G ) $.
    tngnm.a $e |- A e. _V $.
    $( The topology generated by a normed structure.  (Contributed by Mario
       Carneiro, 4-Oct-2015.) $)
    tngnm $p |- ( ( G e. Grp /\ N : X --> A ) -> N = ( norm ` T ) ) $=
      ( vx wcel wf wa cfv cmpt co wceq eqid cbs cvv syl cgrp c0g csg ccom simpr
      cnm feqmptd cop cxp grpsubf ad2antrr grpidcl opelxpi syl2anc fvco3 fveq2i
      df-ov 3eqtr4g grpsubid1 adantlr fveq2d eqtr2d mpteq2dva fvex eqeltri fex2
      cv cds mp3an23 adantl tngbas tngds tng0 oveq123d mpteq12dv nmfval syl6eqr
      eqidd 3eqtrd ) CUAJZEADKZLZDIEIVGZDMZNIEWCCUBMZDCUCMZUDZOZNZBUFMZWBIEADVT
      WAUEUGWBIEWDWHWBWCEJZLZWHWCWEWFOZDMZWDWLWCWEUHZWGMZWOWFMZDMZWHWNWLEEUIZEW
      FKZWOWSJZWPWRPVTWTWAWKECWFGWFQZUJUKWLWKWEEJZXAWBWKUEVTXCWAWKECWEGWEQZULUK
      WCWEEEUMUNWSEWODWFUOUNWCWEWGUQWMWQDWCWEWFUQUPURWLWMWCDVTWKWMWCPWAECWFWCWE
      GXDXBUSUTVAVBVCWBWIIBRMZWCBUBMZBVHMZOZNWJWBIEWHXEXHWBDSJZEXEPWAXIVTWAESJA
      SJXIECRMSGCRVDVEHEADSSVFVIVJZEBCDSFGVKTWBWCWCWEXFWGXGWBXIWGXGPXJBCWFDSFXB
      VLTWBWCVRWBXIWEXFPXJBCDSWEFXDVMTVNVOIXGWJBXEXFWJQXEQXFQXGQVPVQVS $.
  $}

  ${
    $d x y G $.  $d x y N $.  $d x y T $.  $d x y X $.
    tngngp2.t $e |- T = ( G toNrmGrp N ) $.
    tngngp2.x $e |- X = ( Base ` G ) $.
    tngngp2.d $e |- D = ( dist ` T ) $.
    $( A norm turns a group into a normed group iff the generated metric is in
       fact a metric.  (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    tngngp2 $p |- ( N : X --> RR ->
      ( T e. NrmGrp <-> ( G e. Grp /\ D e. ( Met ` X ) ) ) ) $=
      ( vx vy cr wf wcel cme cfv wa cvv wceq eqid syl cngp cgrp ngpgrp cbs fvex
      wb eqeltri reex fex2 mp3an23 a1i tngbas cv cplusg tngplusg oveqdr syl5ibr
      grppropd imp cxp cres cmt ngpms adantl msmet2 wfn csg ccom grpsubf syldan
      fco cds adantr tngds syl6reqr feq1d mpbird fnresdm sqxpeqd reseq2d eqtr3d
      ffn 3syl fveq2d 3eltr4d jca cnm biimpa adantrr ctopn cmopn simprr eleqtrd
      wss metf eqeltrd simprl tngtopn syl2anc eqtr2d isms2 sylanbrc simpl tngnm
      reseq1i grpsubpropd coeq12d eqimss isngp syl3anbrc impbida ) EKDLZBUAMZCU
      BMZAENOZMZPZXLXMPZXNXPXLXMXNXMXNXLBUBMZBUCXLDQMZXNXSUFXLEQMKQMXTECUDOZQGC
      UDUEUGUHEKDQQUIUJZXTIJECBEYARXTGUKZEBCDQFGULZXTIUMEMJUMEMPIJCUNOZBUNOYEBC
      DQFYESUOZUPURTZUQUSZXRABUDOZYIUTZVAZYINOZAXOXRBVBMZYKYLMZXMYMXLBVCVDABYIY
      ISZHVETXRAEEUTZVAZAYKXRYPKALZAYPVFYQARXRYRYPKDCVGOZVHZLZXLXMYPEYSLZUUAXRX
      NUUBYHECYSGYSSZVITYPEKDYSVKVJXRYPKAYTXRYTBVLOZAXRXTYTUUDRZXLXTXMYBVMZBCYS
      DQFUUCVNZTHVOVPVQYPKAWBYPAVRWCXRYPYJAXREYIXRXTEYIRZUUFYDTZVSVTWAXREYINUUI
      WDWEWFXLXQPZXSYMBWGOZBVGOZVHZUUDWNZXMXLXNXSXPXLXNXSYGWHWIUUJYNBWJOZYKWKOZ
      RYMUUJYKAYLUUJYJKALZAYJVFYKARUUJAYLMUUQUUJAXOYLXLXNXPWLUUJEYINUUJXTUUHXLX
      TXQYBVMZYDTWDWMZAYIWOTYJKAWBYJAVRWCZUUSWPUUJUUPAWKOZUUOUUJYKAWKUUTWDUUJXN
      XTUVAUUORXLXNXPWQZUURABCUVADUBQFHUVASWRWSWTYKUUOBYIUUOSYOAUUDYJHXEXAXBUUJ
      UUMUUDRUUNUUJYTUUMUUDUUJDUUKYSUULUUJXNXLDUUKRUVBXLXQXCKBCDEFGUHXDWSUUJXTY
      SUULRUURXTCBXTEYAYIYCYDWAYFXFTXGUUJXTUUEUURUUGTWAUUMUUDXHTUUDBUULUUKUUKSU
      ULSUUDSXIXJXK $.
  $}

  ${
    $d a b x y .- $.  $d a b x y N $.  $d a b x y T $.  $d a b x y X $.
    $d a b G $.  $d x y ph $.  $d a b x y .0. $.
    tngngp.t $e |- T = ( G toNrmGrp N ) $.
    tngngp.x $e |- X = ( Base ` G ) $.
    tngngp.m $e |- .- = ( -g ` G ) $.
    tngngp.z $e |- .0. = ( 0g ` G ) $.
    ${
      tngngpd.1 $e |- ( ph -> G e. Grp ) $.
      tngngpd.2 $e |- ( ph -> N : X --> RR ) $.
      tngngpd.3 $e |- ( ( ph /\ x e. X ) -> ( ( N ` x ) = 0 <-> x = .0. ) ) $.
      tngngpd.4 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
        ( N ` ( x .- y ) ) <_ ( ( N ` x ) + ( N ` y ) ) ) $.
      $( Derive the axioms for a normed group from the axioms for a metric
         space.  (Contributed by Mario Carneiro, 4-Oct-2015.) $)
      tngngpd $p |- ( ph -> T e. NrmGrp ) $=
        ( wcel cfv cvv cngp cgrp cds cme ccom cr wf wceq fvex eqeltri reex fex2
        cbs mp3an23 tngds 3syl nrmmetd eqeltrrd wa eqid tngngp2 syl mpbir2and
        wb ) ADUARZEUBRZDUCSZHUDSZRZNAGFUEZVGVHAHUFGUGZGTRZVJVGUHOVKHTRUFTRVLHE
        UMSTKEUMUIUJUKHUFGTTULUNDEFGTJLUOUPABCGEFHIKLMNOPQUQURAVKVEVFVIUSVDOVGD
        EGHJKVGUTVAVBVC $.
    $}

    $( Derive the axioms for a normed group from the axioms for a metric space.
       (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    tngngp $p |- ( N : X --> RR -> ( T e. NrmGrp <-> ( G e. Grp /\ A. x e. X
        ( ( ( N ` x ) = 0 <-> x = .0. ) /\
          A. y e. X ( N ` ( x .- y ) ) <_ ( ( N ` x ) + ( N ` y ) ) ) ) ) ) $=
      ( wcel cfv wceq co caddc cle wa cvv va vb cr wf cngp cgrp cv cc0 wbr wral
      wb cds cme eqid tngngp2 simprbda cnm c0g cbs simpr fvex eqeltri reex fex2
      simplr mp3an23 ad2antrr tngbas eleqtrd nmeq0 syl2anc adantr simpll fveq1d
      syl tngnm eqeq1d tng0 eqeq2d 3bitr4d simpllr eleq2d biimpa nmmtri syl3anc
      csg syl5eqr cplusg tngplusg grpsubpropd fveq12d oveq12d 3brtr4d ralrimiva
      syl5eq oveqd jca simprl simpl ralimi ad2antll fveq2 eqeq1 bibi12d rspccva
      sylan oveq1 fveq2d oveq1d breq12d oveq2d rspc2va ancoms tngngpd impbida
      oveq2 ) GUCFUDZCUEMZDUFMZAUGZFNZUHOZXTHOZUKZXTBUGZEPZFNZYAYEFNZQPZRUIZBGU
      JZSZAGUJZSZXQXRSZXSYMXQXRXSCULNZGUMNMYPCDFGIJYPUNUOUPZYOYLAGYOXTGMZSZYDYK
      YSXTCUQNZNZUHOZXTCURNZOZYBYCYSXRXTCUSNZMZUUBUUDUKXQXRYRVEYSXTGUUEYOYRUTYS
      FTMZGUUEOXQUUGXRYRXQGTMUCTMUUGGDUSNZTJDUSVAVBVCGUCFTTVDVFVGZGCDFTIJVHVOZV
      IZXTCYTUUEUUCUUEUNZYTUNZUUCUNVJVKYSYAUUAUHYSXTFYTYSXSXQFYTOYOXSYRYQVLXQXR
      YRVMUCCDFGIJVCVPVKZVNZVQYSHUUCXTYSUUGHUUCOUUICDFTHILVRVOVSVTYSYJBGYSYEGMZ
      SZXTYECWFNZPZYTNZUUAYEYTNZQPZYGYIRUUQXRUUFYEUUEMZUUTUVBRUIXQXRYRUUPWAYSUU
      FUUPUUKVLYSUUPUVCYSGUUEYEUUJWBWCXTYECUURYTUUEUULUUMUURUNWDWEYSYGUUTOUUPYS
      YFUUSFYTUUNYSEUURXTYEYSEDWFNUURKYSDCYSUUHGUUEJUUJWGYSUUGDWHNZCWHNOUUIUVDC
      DFTIUVDUNWIVOWJWOWPWKVLYSYIUVBOUUPYSYAUUAYHUVAQUUOYSYEFYTUUNVNWLVLWMWNWQW
      NWQXQYNSZUAUBCDEFGHIJKLXQXSYMWRXQYNWSUVEYDAGUJZUAUGZGMZUVGFNZUHOZUVGHOZUK
      ZYMUVFXQXSYLYDAGYDYKWSWTXAYDUVLAUVGGXTUVGOZYBUVJYCUVKUVMYAUVIUHXTUVGFXBZV
      QXTUVGHXCXDXEXFUVEYKAGUJZUVHUBUGZGMSZUVGUVPEPZFNZUVIUVPFNZQPZRUIZYMUVOXQX
      SYLYKAGYDYKUTWTXAUVQUVOUWBYJUWBUVGYEEPZFNZUVIYHQPZRUIABUVGUVPGGUVMYGUWDYI
      UWERUVMYFUWCFXTUVGYEEXGXHUVMYAUVIYHQUVNXIXJYEUVPOZUWDUVSUWEUWARUWFUWCUVRF
      YEUVPUVGEXPXHUWFYHUVTUVIQYEUVPFXBXKXJXLXMXFXNXO $.
  $}

  ${
    $d G x y $.  $d N x y $.  $d T x y $.  $d V x y $.
    tngngp3.t $e |- T = ( G toNrmGrp N ) $.
    $( If a structure equipped with a norm is a normed group, the structure
       itself must be a group.  (Contributed by AV, 15-Oct-2021.) $)
    tnggrpr $p |- ( ( N e. V /\ T e. NrmGrp ) -> G e. Grp ) $=
      ( vx vy wcel cgrp cngp cbs eqid tngbas eqidd cv wa cplusg tngplusg eqcomd
      cfv oveqdr grppropd biimpd ngpgrp impel ) CDHZAIHZBIHZAJHUFUGUHUFFGBKTZAB
      UIABCDEUILMUFUINUFFOUIHGOUIHPFGAQTZBQTZUFUKUJUKABCDEUKLRSUAUBUCAUDUE $.

    $d G a b x y $.  $d N a b x y $.  $d T a b x y $.  $d X a b x y $.
    $d I a b x y $.  $d .+ a b x y $.  $d .0. a b x y $.
    tngngp3.x $e |- X = ( Base ` G ) $.
    tngngp3.z $e |- .0. = ( 0g ` G ) $.
    tngngp3.p $e |- .+ = ( +g ` G ) $.
    tngngp3.i $e |- I = ( invg ` G ) $.
    $( Alternate definition of a normed group (i.e. a group equipped with a
       norm) without using the properties of a metric space.  This corresponds
       to the definition in N. H. Bingham, A. J. Ostaszewski:  "Normed versus
       topological groups: dichotomy and duality", 2010, Dissertationes
       Mathematicae 472, pp. 1-138 and E. Deza, M.M. Deza:  "Dictionary of
       Distances", Elsevier, 2006.  (Contributed by AV, 16-Oct-2021.) $)
    tngngp3 $p |- ( N : X --> RR -> ( T e. NrmGrp <-> ( G e. Grp /\ A. x e. X
      ( ( ( N ` x ) = 0 <-> x = .0. ) /\ ( N ` ( I ` x ) ) = ( N ` x )
        /\ A. y e. X ( N ` ( x .+ y ) ) <_ ( ( N ` x ) + ( N ` y ) ) ) ) ) ) $=
      ( wcel cfv wceq co cle wa va vb cr wf cngp cgrp cv cc0 caddc wbr wral w3a
      wb cvv wi cbs fvex eqeltri fex mpan2 tnggrpr simp2 cnm c0g cminusg cplusg
      eqid nmeq0 nminv nmtri 3expa ralrimiva adantl 3ad2ant1 tngbas eqidd oveqd
      3jca tngplusg adantr grpinvpropd syl5eq tngnm 3adant1 simp1 fveq1d eqeq1d
      reex tng0 simp3 eqeq2d bibi12d fveq12d eqeq12d oveq12d 3ad2ant2 raleqbidv
      fveq1 breq12d 3anbi123d syl mpbird jca 3exp mpd com13 csg simpl weq fveq2
      expcom eqeq1 fveq2d oveq1d ralbidv rspccva ex imp grpsubval 3simpc ralimi
      oveq1 simpr oveq2 oveq2d rspc2v grpinvcl anim2d syl11 expd eqcomd adantld
      breqtrrd impcom eqbrtrd tngngpd impbid ) HUCGUDZDUEOZEUFOZAUGZGPZUHQZUUAI
      QZUMZUUAFPZGPZUUBQZUUABUGZCRZGPZUUBUUIGPZUIRZSUJZBHUKZULZAHUKZTZYRGUNOZYS
      UURUOYRHUNOUUSHEUPPZUNKEUPUQURHUCUNGUSUTYSUUSYRUURUUSYSYRUURUOZUUSYSTZYTU
      VADEGUNJVAUVBYTYRUURUVBYTYRULZYTUUQUVBYTYRVBUVCUUQUUADVCPZPZUHQZUUADVDPZQ
      ZUMZUUADVEPZPZUVDPZUVEQZUUAUUIDVFPZRZUVDPZUVEUUIUVDPZUIRZSUJZBDUPPZUKZULZ
      AUVTUKZUVBYTUWCYRYSUWCUUSYSUWBAUVTYSUUAUVTOZTZUVIUVMUWAUUADUVDUVTUVGUVTVG
      ZUVDVGZUVGVGVHUUADUVJUVDUVTUWFUWGUVJVGVIUWEUVSBUVTYSUWDUUIUVTOUVSUUAUUIUV
      NDUVDUVTUWFUWGUVNVGVJVKVLVRVLVMVNUVCHUVTQZCUVNQZFUVJQZULZGUVDQZIUVGQZULZU
      UQUWCUMUVCUWKUWLUWMUVBYTUWKYRUUSUWKYSUUSUWHUWIUWJHDEGUNJKVOCDEGUNJMVSUUSF
      EVEPUVJNUUSABUUTEDUUSUUTVPUUTDEGUNJUUTVGVOUUSUUAUUIEVFPZRUVOQUUAUUTOUUIUU
      TOTUUSUWOUVNUUAUUIUWODEGUNJUWOVGVSVQVTWAWBVRVTVNYTYRUWLUVBUCDEGHJKWHWCWDU
      VBYTUWMYRUUSUWMYSDEGUNIJLWIVTVNVRUWNUUPUWBAHUVTUWKUWLUWHUWMUWHUWIUWJWEVNZ
      UWNUUEUVIUUHUVMUUOUWAUWNUUCUVFUUDUVHUWNUUBUVEUHUWNUUAGUVDUWKUWLUWMVBZWFZW
      GUWNIUVGUUAUWKUWLUWMWJWKWLUWNUUGUVLUUBUVEUWNUUFUVKGUVDUWQUWNUUAFUVJUWKUWL
      UWJUWMUWHUWIUWJWJVNWFWMUWRWNUWNUUNUVSBHUVTUWPUWNUUKUVPUUMUVRSUWNUUJUVOGUV
      DUWQUWNCUVNUUAUUIUWKUWLUWIUWMUWHUWIUWJVBVNVQWMUWLUWKUUMUVRQUWMUWLUUBUVEUU
      LUVQUIUUAGUVDWRUUIGUVDWRWOWPWSWQWTWQXAXBXCXDXEXKXFXEYRUURYSYRUURTZUAUBDEE
      XGPZGHIJKUWTVGZLUURYTYRYTUUQXHVMYRUURXHUWSUAUGZHOZUXBGPZUHQZUXBIQZUMZUURU
      XCUXGUOZYRUUQUXHYTUUQUXCUXGUUQUXCTUXGUXBFPZGPZUXDQZUXBUUICRZGPZUXDUULUIRZ
      SUJZBHUKZULZUXGUUPUXQAUXBHAUAXIZUUEUXGUUHUXKUUOUXPUXRUUCUXEUUDUXFUXRUUBUX
      DUHUUAUXBGXJZWGUUAUXBIXLWLUXRUUGUXJUUBUXDUXRUUFUXIGUUAUXBFXJXMUXSWNUXRUUN
      UXOBHUXRUUKUXMUUMUXNSUXRUUJUXLGUUAUXBUUICYBXMUXRUUBUXDUULUIUXSXNWSZXOWTXP
      UXGUXKUXPWEXAXQVMVMXRUWSUXCUBUGZHOZTZTZUXBUYAUWTRZGPUXBUYAFPZCRZGPZUXDUYA
      GPZUIRZSUYDUYEUYGGUYCUYEUYGQUWSHCEFUWTUXBUYAKMNUXAXSVMXMUWSUYCUYHUYJSUJZU
      URUYCUYKUOZYRUUQYTUYLUUQUUHUUOTZAHUKZYTUYLUOUUPUYMAHUUEUUHUUOXTYAUYNYTUYL
      UYNYTTZUYCUYKUYOUYCTZUYHUXDUYFGPZUIRZUYJSUYOUYCUYHUYRSUJZUYNYTUYCUYSUOZUY
      NUUOAHUKZYTUYTUOUYMUUOAHUUHUUOYCYAVUAYTUYCUYSUXCUYFHOZTZVUAUYSYTUYCTUUNUY
      SUXOABUXBUYFHHUXTUUIUYFQZUXMUYHUXNUYRSVUDUXLUYGGUUIUYFUXBCYDXMVUDUULUYQUX
      DUIUUIUYFGXJYEWSYFYTUYCVUCYTUYBVUBUXCYTUYBVUBHEFUYAKNYGXQYHXRYIYJXAXRXRUY
      PUYIUYQUXDUIUYOUYCUYIUYQQZUYOUYBVUEUXCUYNUYBVUEUOZYTUYNUUHAHUKZVUFUYMUUHA
      HUUHUUOXHYAVUGUYBVUEVUGUYBTUYQUYIUUHUYQUYIQAUYAHAUBXIZUUGUYQUUBUYIVUHUUFU
      YFGUUAUYAFXJXMUUAUYAGXJWNXPYKXQXAVTYLXRYEYMXQXQXAYNVMXRYOYPXQYQ $.
  $}

  ${
    nrmtngdist.t $e |- T = ( G toNrmGrp ( norm ` G ) ) $.
    ${
      nrmtngdist.x $e |- X = ( Base ` G ) $.
      $( The augmentation of a normed group by its own norm has the same
         distance function as the normed group (restricted to the base set).
         (Contributed by AV, 15-Oct-2021.) $)
      nrmtngdist $p |- ( G e. NrmGrp
                         -> ( dist ` T ) = ( ( dist ` G ) |` ( X X. X ) ) ) $=
        ( cngp wcel cds cfv cnm csg ccom cxp cres wceq fvex eqid tngds ax-mp
        cvv cgrp cmt isngp2 simp3bi syl5eqr ) BFGZAHIZBJIZBKIZLZBHIZCCMNZUHTGUJ
        UGOBJPABUIUHTDUIQZRSUFBUAGBUBGUJULOUKULBUIUHCUHQUMUKQEULQUCUDUE $.
    $}

    $( The augmentation of a normed group by its own norm is a normed group
       with the same norm.  (Contributed by AV, 15-Oct-2021.) $)
    nrmtngnrm $p |- ( G e. NrmGrp
                      -> ( T e. NrmGrp /\ ( norm ` T ) = ( norm ` G ) ) ) $=
      ( cngp wcel cnm cfv wceq cgrp cds cbs cme ngpgrp cxp cres eqid cr syl jca
      wa nrmtngdist cmt csg ccom w3a isngp2 msmet 3ad2ant2 sylbi eqeltrd wf nmf
      wb tngngp2 mpbir2and reex tngnm eqcomd ) BDEZADEZAFGZBFGZHUSUTBIEZAJGZBKG
      ZLGZEZBMZUSVDBJGZVEVENOZVFABVECVEPZUAUSVCBUBEZVBBUCGZUDVJHZUEVJVFEZVIVJBV
      MVBVEVBPZVMPVIPVKVJPZUFVLVCVOVNVJBVEVKVQUGUHUIUJUSVEQVBUKZUTVCVGTUMBVBVEV
      KVPULZVDABVBVECVKVDPUNRUOUSVBVAUSVCVRTVBVAHUSVCVRVHVSSQABVBVECVKUPUQRURS
      $.
  $}

  ${
    tngngpim.t $e |- T = ( G toNrmGrp N ) $.
    tngngpim.n $e |- N = ( norm ` G ) $.
    tngngpim.x $e |- X = ( Base ` G ) $.
    tngngpim.d $e |- D = ( dist ` T ) $.
    $( The induced metric of a normed group is a function.  (Contributed by AV,
       19-Oct-2021.) $)
    tngngpim $p |- ( G e. NrmGrp -> D : ( X X. X ) --> RR ) $=
      ( cngp wcel cr wf cxp nmf cfv cnm wa ctng co cme wceq wi oveq2i nrmtngnrm
      eqtri cgrp tngngp2 simpr syl6bi com12 adantr syl metf syl6 mpd ) CJKZELDM
      ZEENLAMZCDEHGOUQURAEUAPKZUSUQBJKZBQPCQPZUBZRURUTUCZBCBCDSTCVBSTFDVBCSGUDU
      FUEVAVDVCURVAUTURVACUGKZUTRUTABCDEFHIUHVEUTUIUJUKULUMAEUNUOUP $.
  $}

  ${
    $d r A $.  $d r N $.  $d r R $.
    isnrg.1 $e |- N = ( norm ` R ) $.
    isnrg.2 $e |- A = ( AbsVal ` R ) $.
    $( A normed ring is a ring with a norm that makes it into a normed group,
       and such that the norm is an absolute value on the ring.  (Contributed
       by Mario Carneiro, 4-Oct-2015.) $)
    isnrg $p |- ( R e. NrmRing <-> ( R e. NrmGrp /\ N e. A ) ) $=
      ( vr cnm cfv cabv wcel cngp cnrg wceq fveq2 syl6eqr eleq12d df-nrg elrab2
      cv ) FSZGHZTIHZJCAJFBKLTBMZUACUBAUCUABGHCTBGNDOUCUBBIHATBINEOPFQR $.

    $( The norm of a normed ring is an absolute value.  (Contributed by Mario
       Carneiro, 4-Oct-2015.) $)
    nrgabv $p |- ( R e. NrmRing -> N e. A ) $=
      ( cnrg wcel cngp isnrg simprbi ) BFGBHGCAGABCDEIJ $.
  $}

  $( A normed ring is a normed group.  (Contributed by Mario Carneiro,
     4-Oct-2015.) $)
  nrgngp $p |- ( R e. NrmRing -> R e. NrmGrp ) $=
    ( cnrg wcel cngp cnm cfv cabv eqid isnrg simplbi ) ABCADCAEFZAGFZCLAKKHLHIJ
    $.

  $( A normed ring is a ring.  (Contributed by Mario Carneiro, 4-Oct-2015.) $)
  nrgring $p |- ( R e. NrmRing -> R e. Ring ) $=
    ( cnrg wcel cnm cfv cabv crg eqid nrgabv abvrcl syl ) ABCADEZAFEZCAGCMALLHM
    HZIMALNJK $.

  ${
    nmmul.x $e |- X = ( Base ` R ) $.
    nmmul.n $e |- N = ( norm ` R ) $.
    nmmul.t $e |- .x. = ( .r ` R ) $.
    $( The norm of a product in a normed ring.  (Contributed by Mario Carneiro,
       5-Oct-2015.) $)
    nmmul $p |- ( ( R e. NrmRing /\ A e. X /\ B e. X ) ->
      ( N ` ( A .x. B ) ) = ( ( N ` A ) x. ( N ` B ) ) ) $=
      ( cnrg wcel cabv cfv co cmul wceq eqid nrgabv abvmul syl3an1 ) CJKECLMZKA
      FKBFKABDNEMAEMBEMONPUACEHUAQZRUAFCDEABUBGIST $.

    nrgdsdi.d $e |- D = ( dist ` R ) $.
    $( Distribute a distance calculation.  (Contributed by Mario Carneiro,
       5-Oct-2015.) $)
    nrgdsdi $p |- ( ( R e. NrmRing /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
      ( ( N ` A ) x. ( B D C ) ) = ( ( A .x. B ) D ( A .x. C ) ) ) $=
      ( wcel cfv co cmul wceq adantr syl3anc ngpds cnrg w3a wa csg simpl simpr1
      cgrp crg nrgring ringgrp syl simpr2 simpr3 eqid grpsubcl ringsubdi fveq2d
      nmmul eqtr3d cngp nrgngp oveq2d ringcl 3eqtr4d ) EUAMZAHMZBHMZCHMZUBZUCZA
      GNZBCEUDNZOZGNZPOZABFOZACFOZVLOZGNZVKBCDOZPOVPVQDOZVJAVMFOZGNZVOVSVJVEVFV
      MHMZWCVOQVEVIUEVEVFVGVHUFZVJEUGMZVGVHWDVJEUHMZWFVEWGVIEUIRZEUJUKVEVFVGVHU
      LZVEVFVGVHUMZHEVLBCIVLUNZUOSAVMEFGHIJKURSVJWBVRGVJHEFVLABCIKWKWHWEWIWJUPU
      QUSVJVTVNVKPVJEUTMZVGVHVTVNQVEWLVIEVARZWIWJBCDEVLGHJIWKLTSVBVJWLVPHMZVQHM
      ZWAVSQWMVJWGVFVGWNWHWEWIHEFABIKVCSVJWGVFVHWOWHWEWJHEFACIKVCSVPVQDEVLGHJIW
      KLTSVD $.

    $( Distribute a distance calculation.  (Contributed by Mario Carneiro,
       5-Oct-2015.) $)
    nrgdsdir $p |- ( ( R e. NrmRing /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
      ( ( A D B ) x. ( N ` C ) ) = ( ( A .x. C ) D ( B .x. C ) ) ) $=
      ( wcel cfv co cmul wceq adantr syl3anc ngpds cnrg w3a wa csg cgrp nrgring
      simpl crg ringgrp syl simpr1 simpr2 eqid grpsubcl simpr3 rngsubdir fveq2d
      nmmul eqtr3d cngp nrgngp oveq1d ringcl 3eqtr4d ) EUAMZAHMZBHMZCHMZUBZUCZA
      BEUDNZOZGNZCGNZPOZACFOZBCFOZVKOZGNZABDOZVNPOVPVQDOZVJVLCFOZGNZVOVSVJVEVLH
      MZVHWCVOQVEVIUGVJEUEMZVFVGWDVJEUHMZWEVEWFVIEUFRZEUIUJVEVFVGVHUKZVEVFVGVHU
      LZHEVKABIVKUMZUNSVEVFVGVHUOZVLCEFGHIJKURSVJWBVRGVJHEFVKABCIKWJWGWHWIWKUPU
      QUSVJVTVMVNPVJEUTMZVFVGVTVMQVEWLVIEVARZWHWIABDEVKGHJIWJLTSVBVJWLVPHMZVQHM
      ZWAVSQWMVJWFVFVHWNWGWHWKHEFACIKVCSVJWFVGVHWOWGWIWKHEFBCIKVCSVPVQDEVKGHJIW
      JLTSVD $.
  $}

  ${
    nm1.n $e |- N = ( norm ` R ) $.
    nm1.u $e |- .1. = ( 1r ` R ) $.
    $( The norm of one in a nonzero normed ring.  (Contributed by Mario
       Carneiro, 5-Oct-2015.) $)
    nm1 $p |- ( ( R e. NrmRing /\ R e. NzRing ) -> ( N ` .1. ) = 1 ) $=
      ( cnrg wcel cabv cfv c0g wne c1 wceq cnzr eqid nrgabv nzrnz abv1z syl2an
      ) AFGCAHIZGBAJIZKBCILMANGTACDTOZPABUAEUAOZQTABCUAUBEUCRS $.
  $}

  ${
    nminvr.n $e |- N = ( norm ` R ) $.
    nminvr.u $e |- U = ( Unit ` R ) $.
    $( The norm of a unit is nonzero in a nonzero normed ring.  (Contributed by
       Mario Carneiro, 5-Oct-2015.) $)
    unitnmn0 $p |- ( ( R e. NrmRing /\ R e. NzRing /\ A e. U ) ->
      ( N ` A ) =/= 0 ) $=
      ( cnrg wcel cnzr w3a cngp cbs cfv c0g wne cc0 nrgngp 3ad2ant1 eqid unitcl
      3ad2ant3 nzrunit 3adant1 nmne0 syl3anc ) BGHZBIHZACHZJBKHZABLMZHZABNMZOZA
      DMPOUFUGUIUHBQRUHUFUKUGUJBCAUJSZFTUAUGUHUMUFABCULFULSZUBUCABDUJULUNEUOUDU
      E $.

    nminvr.i $e |- I = ( invr ` R ) $.
    $( The norm of an inverse in a nonzero normed ring.  (Contributed by Mario
       Carneiro, 5-Oct-2015.) $)
    nminvr $p |- ( ( R e. NrmRing /\ R e. NzRing /\ A e. U ) ->
      ( N ` ( I ` A ) ) = ( 1 / ( N ` A ) ) ) $=
      ( cnrg wcel cnzr cfv c1 cr eqid nmcl syl2anc recnd co wceq w3a cbs nrgngp
      cngp 3ad2ant1 unitcl 3ad2ant3 crg 3ad2ant2 simp3 ringinvcl unitnmn0 cmulr
      nzrring cur cmul unitrinv fveq2d simp1 nmmul syl3anc nm1 3adant3 mvllmuld
      3eqtr3d ) BIJZBKJZACJZUAZAELZADLZELZMVIVJVIBUDJZABUBLZJZVJNJVFVGVMVHBUCUE
      ZVHVFVOVGVNBCAVNOZGUFUGZABEVNVQFPQRVIVLVIVMVKVNJZVLNJVPVIBUHJZVHVSVGVFVTV
      HBUNUIZVFVGVHUJZVNBCDAGHVQUKQZVKBEVNVQFPQRABCEFGULVIAVKBUMLZSZELZBUOLZELZ
      VJVLUPSZMVIWEWGEVIVTVHWEWGTWAWBBWDCWGDAGHWDOZWGOZUQQURVIVFVOVSWFWITVFVGVH
      USVRWCAVKBWDEVNVQFWJUTVAVFVGWHMTVHBWGEFWKVBVCVEVD $.
  $}

  ${
    nmdvr.x $e |- X = ( Base ` R ) $.
    nmdvr.n $e |- N = ( norm ` R ) $.
    nmdvr.u $e |- U = ( Unit ` R ) $.
    nmdvr.d $e |- ./ = ( /r ` R ) $.
    $( The norm of a division in a nonzero normed ring.  (Contributed by Mario
       Carneiro, 5-Oct-2015.) $)
    nmdvr $p |- ( ( ( R e. NrmRing /\ R e. NzRing ) /\ ( A e. X /\ B e. U ) )
      -> ( N ` ( A ./ B ) ) = ( ( N ` A ) / ( N ` B ) ) ) $=
      ( wcel wa cfv co cdiv cmul wceq ad2antrr syl2anc cnrg cnzr cinvr cmulr c1
      simpll simprl nrgring simprr ringinvcl nmmul syl3anc simplr nminvr oveq2d
      crg eqid eqtrd dvrval adantl fveq2d cngp cr nrgngp nmcl unitss sseldi cc0
      recnd wne unitnmn0 3expa adantrl divrecd 3eqtr4d ) DUALZDUBLZMZAGLZBELZMZ
      MZABDUCNZNZDUDNZOZFNZAFNZUEBFNZPOZQOZABCOZFNWHWIPOWBWGWHWDFNZQOZWKWBVPVSW
      DGLZWGWNRVPVQWAUFZVRVSVTUGZWBDUPLZVTWOVPWRVQWADUHSVRVSVTUIZGDEWCBJWCUQZHU
      JTAWDDWEFGHIWEUQZUKULWBWMWJWHQWBVPVQVTWMWJRWPVPVQWAUMWSBDEWCFIJWTUNULUOUR
      WBWLWFFWAWLWFRVRGCDWEEWCABHXAJWTKUSUTVAWBWHWIWBWHWBDVBLZVSWHVCLVPXBVQWADV
      DSZWQADFGHIVETVIWBWIWBXBBGLWIVCLXCWBEGBGDEHJVFWSVGBDFGHIVETVIVRVTWIVHVJZV
      SVPVQVTXDBDEFIJVKVLVMVNVO $.
  $}

  $( A nonzero normed ring is a domain.  (Contributed by Mario Carneiro,
     4-Oct-2015.) $)
  nrgdomn $p |- ( R e. NrmRing -> ( R e. Domn <-> R e. NzRing ) ) $=
    ( cnrg wcel cdomn cnzr domnnzr wa cabv cfv c0 wne simpr cnm eqid nrgabv syl
    ne0i adantr abvn0b sylanbrc ex impbid2 ) ABCZADCZAECZAFUCUEUDUCUEGUEAHIZJKZ
    UDUCUELUCUGUEUCAMIZUFCUGUFAUHUHNUFNZOUFUHQPRUFAUISTUAUB $.

  ${
    $( A normed ring is a topological group.  (Contributed by Mario Carneiro,
       5-Oct-2015.) $)
    nrgtgp $p |- ( R e. NrmRing -> R e. TopGrp ) $=
      ( cnrg wcel cngp cabl ctgp nrgngp crg nrgring ringabl syl ngptgp syl2anc
      ) ABCZADCAECZAFCAGNAHCOAIAJKALM $.
  $}

  ${
    subrgnrg.h $e |- H = ( G |`s A ) $.
    $( A normed ring restricted to a subring is a normed ring.  (Contributed by
       Mario Carneiro, 4-Oct-2015.) $)
    subrgnrg $p |- ( ( G e. NrmRing /\ A e. ( SubRing ` G ) ) ->
      H e. NrmRing ) $=
      ( cnrg wcel csubrg cfv wa cngp cabv csubg nrgngp subrgsubg subgngp syl2an
      cnm cres wceq eqid adantl subgnm syl nrgabv abvres sylan eqeltrd sylanbrc
      isnrg ) BEFZABGHFZIZCJFZCQHZCKHZFCEFUJBJFABLHFZUMUKBMABNZABCDOPULUNBQHZAR
      ZUOULUPUNUSSUKUPUJUQUAABCUNURDURTZUNTZUBUCUJURBKHZFUKUSUOFVBBURUTVBTZUDVB
      UOABCURVCDUOTZUEUFUGUOCUNVAVDUIUH $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y R $.  $d x y T $.
    tngnrg.t $e |- T = ( R toNrmGrp F ) $.
    tngnrg.a $e |- A = ( AbsVal ` R ) $.
    $( Given any absolute value over a ring, augmenting the ring with the
       absolute value produces a normed ring.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    tngnrg $p |- ( F e. A -> T e. NrmRing ) $=
      ( vx vy wcel cngp cfv cabv syl eqid cr wa cv cplusg oveqdr cmulr cnm cnrg
      cgrp cds cbs cme crg abvrcl ringgrp ccom tngds abvmet eqeltrrd wf wb abvf
      tngngp2 mpbir2and wceq reex tngnm syl2anc eqidd tngplusg tngmulr abvpropd
      csg tngbas syl5eq eleq12d ibi isnrg sylanbrc ) DAIZCJIZCUAKZCLKZIZCUBIVNV
      OBUCIZCUDKZBUEKZUFKZIZVNBUGIVSABDFUHBUIMZVNDBVGKZUJVTWBCBWEDAEWENZUKABDWE
      WAWANZFWFULUMVNWAODUNZVOVSWCPUOAWABDFWGUPZVTCBDWAEWGVTNUQMURVNVRVNDVPAVQV
      NVSWHDVPUSWDWIOCBDWAEWGUTVAVBVNABLKVQFVNGHWABCVNWAVCWACBDAEWGVHVNGQWAIHQW
      AIPZGHBRKZCRKWKCBDAEWKNVDSVNWJGHBTKZCTKCWLBDAEWLNVESVFVIVJVKVQCVPVPNVQNVL
      VM $.
  $}

  ${
    $d f w x y A $.  $d f w F $.  $d f w x y N $.  $d f w x y V $.  $d x y X $.
    $d f w x K $.  $d f w x y W $.  $d f w x y .x. $.  $d y Y $.
    isnlm.v $e |- V = ( Base ` W ) $.
    isnlm.n $e |- N = ( norm ` W ) $.
    isnlm.s $e |- .x. = ( .s ` W ) $.
    isnlm.f $e |- F = ( Scalar ` W ) $.
    isnlm.k $e |- K = ( Base ` F ) $.
    isnlm.a $e |- A = ( norm ` F ) $.
    $( A normed (left) module is a module which is also a normed group over a
       normed ring, such that the norm distributes over scalar multiplication.
       (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    isnlm $p |- ( W e. NrmMod <->
      ( ( W e. NrmGrp /\ W e. LMod /\ F e. NrmRing ) /\
    A. x e. K A. y e. V ( N ` ( x .x. y ) ) = ( ( A ` x ) x. ( N ` y ) ) ) ) $=
      ( wcel wa cfv cnm cbs vf vw cngp clmod cin cnrg cv co cmul wceq wral cnlm
      w3a anass df-3an elin anbi1i bitr4i cvsca csca cvv fvexd id fveq2 syl6eqr
      wsbc sylan9eqr eleq1d fveq2d simpl oveqd fveq12d fveq1d oveq12d raleqbidv
      eqeq12d anbi12d sbcied df-nlm elrab2 3bitr4ri ) IUCUDUEZPZEUFPZQZAUGZBUGZ
      DUHZGRZWFCRZWGGRZUIUHZUJZBHUKZAFUKZQWCWDWOQZQIUCPZIUDPZWDUMZWOQIULPWCWDWO
      UNWSWEWOWSWQWRQZWDQWEWQWRWDUOWCWTWDIUCUDUPUQURUQUAUGZUFPZWFWGUBUGZUSRZUHZ
      XCSRZRZWFXASRZRZWGXFRZUIUHZUJZBXCTRZUKZAXATRZUKZQZUAXCUTRZVFWPUBIWBULXCIU
      JZXQWPUAXRVAXSXCUTVBXSXAXRUJZQZXBWDXPWOYAXAEUFXTXSXAXREXTVCXSXRIUTREXCIUT
      VDMVEVGZVHYAXNWNAXOFYAXOETRFYAXAETYBVINVEYAXLWMBXMHYAXMITRHYAXCITXSXTVJZV
      IJVEYAXGWIXKWLYAXEWHXFGYAXFISRGYAXCISYCVIKVEZYAXDDWFWGYAXDIUSRDYAXCIUSYCV
      ILVEVKVLYAXIWJXJWKUIYAWFXHCYAXHESRCYAXAESYBVIOVEVMYAWGXFGYDVMVNVPVOVOVQVR
      ABUBUAVSVTWA $.

    $( Defining property of a normed module.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    nmvs $p |- ( ( W e. NrmMod /\ X e. K /\ Y e. V ) ->
      ( N ` ( X .x. Y ) ) = ( ( A ` X ) x. ( N ` Y ) ) ) $=
      ( wcel co cfv cmul wceq vx vy cnlm cv wral wa cngp clmod cnrg w3a simprbi
      isnlm oveq1 fveq2d fveq2 oveq1d eqeq12d oveq2d rspc2v syl5com 3impib
      oveq2 ) GUCPZHDPZIFPZHIBQZERZHARZIERZSQZTZVCUAUDZUBUDZBQZERZVLARZVMERZSQZ
      TZUBFUEUADUEZVDVEUFVKVCGUGPGUHPCUIPUJVTUAUBABCDEFGJKLMNOULUKVSVKHVMBQZERZ
      VHVQSQZTUAUBHIDFVLHTZVOWBVRWCWDVNWAEVLHVMBUMUNWDVPVHVQSVLHAUOUPUQVMITZWBV
      GWCVJWEWAVFEVMIHBVBUNWEVQVIVHSVMIEUOURUQUSUTVA $.
  $}

  ${
    $d x y F $.  $d x y W $.
    $( A normed module is a normed group.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    nlmngp $p |- ( W e. NrmMod -> W e. NrmGrp ) $=
      ( vx vy cnlm wcel cngp clmod csca cfv cnrg w3a cv cvsca cnm cmul wceq cbs
      co wral eqid isnlm simplbi simp1d ) ADEZAFEZAGEZAHIZJEZUDUEUFUHKBLZCLZAMI
      ZRANIZIUIUGNIZIUJULIORPCAQIZSBUGQIZSBCUMUKUGUOULUNAUNTULTUKTUGTUOTUMTUAUB
      UC $.

    $( A normed module is a left module.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    nlmlmod $p |- ( W e. NrmMod -> W e. LMod ) $=
      ( vx vy cnlm wcel cngp clmod csca cfv cnrg w3a cv cvsca cnm cmul wceq cbs
      co wral eqid isnlm simplbi simp2d ) ADEZAFEZAGEZAHIZJEZUDUEUFUHKBLZCLZAMI
      ZRANIZIUIUGNIZIUJULIORPCAQIZSBUGQIZSBCUMUKUGUOULUNAUNTULTUKTUGTUOTUMTUAUB
      UC $.

    nlmnrg.1 $e |- F = ( Scalar ` W ) $.
    $( The scalar component of a left module is a normed ring.  (Contributed by
       Mario Carneiro, 4-Oct-2015.) $)
    nlmnrg $p |- ( W e. NrmMod -> F e. NrmRing ) $=
      ( vx vy cnlm wcel cngp clmod cnrg w3a cv cvsca cfv cnm cmul cbs wral eqid
      co wceq isnlm simplbi simp3d ) BFGZBHGZBIGZAJGZUEUFUGUHKDLZELZBMNZTBONZNU
      IAONZNUJULNPTUAEBQNZRDAQNZRDEUMUKAUOULUNBUNSULSUKSCUOSUMSUBUCUD $.

    $( The scalar component of a left module is a normed group.  (Contributed
       by Mario Carneiro, 4-Oct-2015.) $)
    nlmngp2 $p |- ( W e. NrmMod -> F e. NrmGrp ) $=
      ( cnlm wcel cnrg cngp nlmnrg nrgngp syl ) BDEAFEAGEABCHAIJ $.
  $}

  ${
    nlmdsdi.v $e |- V = ( Base ` W ) $.
    nlmdsdi.s $e |- .x. = ( .s ` W ) $.
    nlmdsdi.f $e |- F = ( Scalar ` W ) $.
    nlmdsdi.k $e |- K = ( Base ` F ) $.
    nlmdsdi.d $e |- D = ( dist ` W ) $.
    ${
      nlmdsdi.a $e |- A = ( norm ` F ) $.
      $( Distribute a distance calculation.  (Contributed by Mario Carneiro,
         6-Oct-2015.) $)
      nlmdsdi $p |- ( ( W e. NrmMod /\ ( X e. K /\ Y e. V /\ Z e. V ) ) ->
        ( ( A ` X ) x. ( Y D Z ) ) = ( ( X .x. Y ) D ( X .x. Z ) ) ) $=
        ( wcel cfv co syl3anc cnlm w3a csg cnm cmul wceq simpl simpr1 cgrp cngp
        nlmngp adantr ngpgrp syl simpr2 simpr3 eqid grpsubcl nmvs clmod nlmlmod
        wa lmodsubdi fveq2d eqtr3d ngpds oveq2d lmodvscl 3eqtr4d ) GUAQZHEQZIFQ
        ZJFQZUBZVBZHARZIJGUCRZSZGUDRZRZUESZHICSZHJCSZVQSZVSRZVPIJBSZUESWBWCBSZV
        OHVRCSZVSRZWAWEVOVJVKVRFQZWIWAUFVJVNUGVJVKVLVMUHZVOGUIQZVLVMWJVOGUJQZWL
        VJWMVNGUKULZGUMUNVJVKVLVMUOZVJVKVLVMUPZFGVQIJKVQUQZURTACDEVSFGHVRKVSUQZ
        LMNPUSTVOWHWDVSVOHCDEVQFGIJKLMNWQVJGUTQZVNGVAULZWKWOWPVCVDVEVOWFVTVPUEV
        OWMVLVMWFVTUFWNWOWPIJBGVQVSFWRKWQOVFTVGVOWMWBFQZWCFQZWGWEUFWNVOWSVKVLXA
        WTWKWOHCDEFGIKMLNVHTVOWSVKVMXBWTWKWPHCDEFGJKMLNVHTWBWCBGVQVSFWRKWQOVFTV
        I $.
    $}

    nlmdsdir.n $e |- N = ( norm ` W ) $.
    nlmdsdir.e $e |- E = ( dist ` F ) $.
    $( Distribute a distance calculation.  (Contributed by Mario Carneiro,
       6-Oct-2015.) $)
    nlmdsdir $p |- ( ( W e. NrmMod /\ ( X e. K /\ Y e. K /\ Z e. V ) ) ->
      ( ( X E Y ) x. ( N ` Z ) ) = ( ( X .x. Z ) D ( Y .x. Z ) ) ) $=
      ( wcel co cnlm w3a wa csg cfv cnm cmul wceq simpl cgrp cngp adantr ngpgrp
      nlmngp2 syl simpr1 simpr2 eqid grpsubcl syl3anc simpr3 nmvs clmod nlmlmod
      lmodsubdir fveq2d eqtr3d ngpds oveq1d nlmngp lmodvscl 3eqtr4d ) HUASZIESZ
      JESZKGSZUBZUCZIJDUDUEZTZDUFUEZUEZKFUEZUGTZIKBTZJKBTZHUDUEZTZFUEZIJCTZWCUG
      TWEWFATZVRVTKBTZFUEZWDWIVRVMVTESZVPWMWDUHVMVQUIVRDUJSZVNVOWNVRDUKSZWOVMWP
      VQDHNUNULZDUMUOVMVNVOVPUPZVMVNVOVPUQZEDVSIJOVSURZUSUTVMVNVOVPVAZWABDEFGHV
      TKLQMNOWAURZVBUTVRWLWHFVRIJVSBDEWGGHKLMNOWGURZWTVMHVCSZVQHVDULZWRWSXAVEVF
      VGVRWJWBWCUGVRWPVNVOWJWBUHWQWRWSIJCDVSWAEXBOWTRVHUTVIVRHUKSZWEGSZWFGSZWKW
      IUHVMXFVQHVJULVRXDVNVPXGXEWRXAIBDEGHKLNMOVKUTVRXDVOVPXHXEWSXAJBDEGHKLNMOV
      KUTWEWFAHWGFGQLXCPVHUTVL $.
  $}

  ${
    nlmmul0or.v $e |- V = ( Base ` W ) $.
    nlmmul0or.s $e |- .x. = ( .s ` W ) $.
    nlmmul0or.z $e |- .0. = ( 0g ` W ) $.
    nlmmul0or.f $e |- F = ( Scalar ` W ) $.
    nlmmul0or.k $e |- K = ( Base ` F ) $.
    nlmmul0or.o $e |- O = ( 0g ` F ) $.
    $( If a scalar product is zero, one of its factors must be zero.
       (Contributed by NM, 6-Dec-2007.)  (Revised by Mario Carneiro,
       4-Oct-2015.) $)
    nlmmul0or $p |- ( ( W e. NrmMod /\ A e. K /\ B e. V ) ->
                    ( ( A .x. B ) = .0. <-> ( A = O \/ B = .0. ) ) ) $=
      ( wcel cfv cc0 wceq syl2anc cnlm w3a cnm cmul co wo cngp nlmngp2 3ad2ant1
      cr simp2 eqid nmcl recnd nlmngp simp3 mul0ord nmvs clmod nlmlmod lmodvscl
      eqeq1d wb syl3an1 nmeq0 bitr3d orbi12d 3bitr3d ) HUAPZAEPZBGPZUBZADUCQZQZ
      BHUCQZQZUDUEZRSZVNRSZVPRSZUFABCUEZISZAFSZBISZUFVLVNVPVLVNVLDUGPZVJVNUJPVI
      VJWEVKDHMUHUIZVIVJVKUKZADVMENVMULZUMTUNVLVPVLHUGPZVKVPUJPVIVJWIVKHUOUIZVI
      VJVKUPZBHVOGJVOULZUMTUNUQVLWAVOQZRSZVRWBVLWMVQRVMCDEVOGHABJWLKMNWHURVBVLW
      IWAGPZWNWBVCWJVIHUSPVJVKWOHUTACDEGHBJMKNVAVDWAHVOGIJWLLVETVFVLVSWCVTWDVLW
      EVJVSWCVCWFWGADVMEFNWHOVETVLWIVKVTWDVCWJWKBHVOGIJWLLVETVGVH $.
  $}

  ${
    $d x y A $.  $d x y S $.  $d x y W $.
    sranlm.a $e |- A = ( ( subringAlg ` W ) ` S ) $.
    $( The subring algebra over a normed ring is a normed left module.
       (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    sranlm $p |- ( ( W e. NrmRing /\ S e. ( SubRing ` W ) ) ->
      A e. NrmMod ) $=
      ( vx vy cnrg wcel cfv wa cngp cnm cmul wceq cbs adantr eqid adantl eqtr3d
      co csubrg clmod csca w3a cv cvsca wral cnlm nrgngp eqidd csra a1i subrgss
      wss srabase cplusg sraaddg cds cxp srads reseq1d sratopn ngppropd sralmod
      oveqdr mpbid cress srasca subrgnrg eqeltrrd 3jca cmulr cabv nrgabv simprl
      ad2antrr subrgbas fveq2d eqtrd sseldd simprr abvmul syl3anc nmpropd csubg
      eleqtrrd sravsca fveq12d subrgsubg ad2antlr subgnm2 syl2anc oveq12d isnlm
      fveq1d ralrimivva sylanbrc ) CGHZBCUAIHZJZAKHZAUBHZAUCIZGHZUDEUEZFUEZAUFI
      ZTZALIZIZXEXCLIZIZXFXIIZMTZNZFAOIZUGEXCOIZUGAUHHWTXAXBXDWTCKHZXAWRXRWSCUI
      PWTEFCOIZCAWTXSUJWTABCABCUKIINWTDULZWSBXSUNZWRBXSCXSQZUMRZUOZWTXEXSHZXFXS
      HZJEFCUPIAUPIWTABCXTYCUQZVEWTCURIAURIXSXSUSWTABCXTYCUTZVAWTABCXTYCVBVCVFW
      SXBWRABCDVDRWTCBVGTZXCGWTABCXTYCVHZBCYIYIQZVIVJVKWTXOEFXQXPWTXEXQHZXFXPHZ
      JZJZXECLIZIZXFYPIZMTZXJXNYOXEXFCVLIZTZYPIZYSXJYOYPCVMIZHZYEYFUUBYSNWRUUDW
      SYNUUCCYPYPQZUUCQZVNVPYOBXSXEWTYAYNYCPYOXEXQBWTYLYMVOWTBXQNYNWTBYIOIZXQWS
      BUUGNWRBCYIYKVQRWTYIXCOYJVRVSPWFZVTYOXFXPXSWTYLYMWAWTXSXPNYNYDPWFUUCXSCYT
      YPXEXFUUFYBYTQWBWCYOUUAXHYPXIWTYPXINYNWTCAYDYGYHWDPZWTYNEFYTXGWTABCXTYCWG
      VEWHSYOYQXLYRXMMYOXEYILIZIZYQXLYOBCWEIHZXEBHUUKYQNWSUULWRYNBCWIWJUUHBCYIU
      UJYPXEYKUUEUUJQWKWLYOXEUUJXKYOYIXCLWTYIXCNYNYJPVRWOSYOXFYPXIUUIWOWMSWPEFX
      KXGXCXQXIXPAXPQXIQXGQXCQXQQXKQWNWQ $.
  $}

  ${
    $d r B $.  $d r D $.  $d r E $.  $d x y ph $.  $d r x y T $.  $d r x y U $.
    $d r s w x y z F $.  $d r y K $.  $d r R $.  $d r V $.  $d r s w x y z W $.
    $d r s w x y z .x. $.  $d r X $.
    nlmvscn.f $e |- F = ( Scalar ` W ) $.
    ${
      nlmvscn.v $e |- V = ( Base ` W ) $.
      nlmvscn.k $e |- K = ( Base ` F ) $.
      nlmvscn.d $e |- D = ( dist ` W ) $.
      nlmvscn.e $e |- E = ( dist ` F ) $.
      nlmvscn.n $e |- N = ( norm ` W ) $.
      nlmvscn.a $e |- A = ( norm ` F ) $.
      nlmvscn.s $e |- .x. = ( .s ` W ) $.
      nlmvscn.t $e |- T = ( ( R / 2 ) / ( ( A ` B ) + 1 ) ) $.
      nlmvscn.u $e |- U = ( ( R / 2 ) / ( ( N ` X ) + T ) ) $.
      nlmvscn.w $e |- ( ph -> W e. NrmMod ) $.
      nlmvscn.r $e |- ( ph -> R e. RR+ ) $.
      nlmvscn.b $e |- ( ph -> B e. K ) $.
      nlmvscn.x $e |- ( ph -> X e. V ) $.
      ${
        nlmvscn.c $e |- ( ph -> C e. K ) $.
        nlmvscn.y $e |- ( ph -> Y e. V ) $.
        nlmvscn.1 $e |- ( ph -> ( B E C ) < U ) $.
        nlmvscn.2 $e |- ( ph -> ( X D Y ) < T ) $.
        $( Lemma for ~ nlmvscn .  Compare this proof with the similar
           elementary proof ~ mulcn2 for continuity of multiplication on
           ` CC ` .  (Contributed by Mario Carneiro, 5-Oct-2015.) $)
        nlmvscnlem2 $p |- ( ph -> ( ( B .x. X ) D ( C .x. Y ) ) < R ) $=
          ( co caddc cmt wcel cngp cnlm nlmngp syl ngpms clmod nlmlmod lmodvscl
          cr syl3anc mscl readdcld rpred cle wbr mstri syl13anc c1 cmul c2 cdiv
          cfv nlmngp2 nmcl syl2anc cc0 ge0p1rpd remulcld rehalfcld wceq nlmdsdi
          nmge0 cxme msxms xmsge0 lep1d lemul1ad eqbrtrrd clt ltmuldiv2d mpbird
          syl6breq lelttrd crp rphalfcld rpdivcld syl5eqel nlmdsdir cmin nm2dif
          resubcld csg ngpdsr breqtrrd ltled letrd lesubadd2d mpbid lemul2ad wb
          eqid 0red ltaddrpd ltmuldiv syl112anc lt2halvesd ) ACPHUPZDQHUPZEUPZY
          FCQHUPZEUPZYIYGEUPZUQUPZFAOURUSZYFNUSZYGNUSZYHVHUSAOUTUSZYMAOVAUSZYPU
          HOVBVCZOVDVCZAOVEUSZCLUSZPNUSZYNAYQYTUHOVFVCZUJUKCHKLNOPSRUETVGVIZAYT
          DLUSZQNUSZYOUUCULUMDHKLNOQSRUETVGVIZYFYGEONSUAVJVIAYJYKAYMYNYINUSZYJV
          HUSYSUUDAYTUUAUUFUUHUUCUJUMCHKLNOQSRUETVGVIZYFYIEONSUAVJVIZAYMUUHYOYK
          VHUSYSUUIUUGYIYGEONSUAVJVIZVKAFUIVLZAYMYNYOUUHYHYLVMVNYSUUDUUGUUIYFYG
          YIEONSUAVOVPAYJYKFUUJUUKUULAYJCBWAZVQUQUPZPQEUPZVRUPZFVSVTUPZUUJAUUNU
          UOAUUNAUUMAKUTUSZUUAUUMVHUSAYQUURUHKORWBVCZUJCKBLTUDWCWDZAUURUUAWEUUM
          VMVNUUSUJCKBLTUDWKWDWFZVLZAYMUUBUUFUUOVHUSYSUKUMPQEONSUAVJVIZWGAFUULW
          HZAUUMUUOVRUPZYJUUPVMAYQUUAUUBUUFUVEYJWIUHUJUKUMBEHKLNOCPQSUERTUAUDWJ
          VPAUUMUUNUUOUUTUVBUVCAOWLUSZUUBUUFWEUUOVMVNAYMUVFYSOWMVCUKUMPQEONSUAW
          NVIAUUMUUTWOWPWQAUUPUUQWRVNUUOUUQUUNVTUPZWRVNAUUOGUVGWRUOUFXAAUUOUUQU
          UNUVCUVDUVAWSWTXBAYKCDJUPZPMWAZGUQUPZVRUPZUUQUUKAUVHUVJAKURUSZUUAUUEU
          VHVHUSZAUURUVLUUSKVDVCZUJULCDJKLTUBVJVIZAUVIGAYPUUBUVIVHUSYRUKPOMNSUC
          WCWDZAGAGUVGXCUFAUUQUUNAFUIXDUVAXEXFZVLZVKZWGUVDAUVHQMWAZVRUPZYKUVKVM
          AYQUUAUUEUUFUWAYKWIUHUJULUMEHJKLMNOCDQSUERTUAUCUBXGVPAUVTUVJUVHAYPUUF
          UVTVHUSYRUMQOMNSUCWCWDZUVSUVOAKWLUSZUUAUUEWEUVHVMVNAUVLUWCUVNKWMVCUJU
          LCDJKLTUBWNVIAUVTUVIXHUPZGVMVNUVTUVJVMVNAUWDUUOGAUVTUVIUWBUVPXJUVCUVR
          AUWDQPOXKWAZUPMWAZUUOVMAYPUUFUUBUWDUWFVMVNYRUMUKQPOUWEMNSUCUWEXTZXIVI
          AYPUUBUUFUUOUWFWIYRUKUMPQEOUWEMNUCSUWGUAXLVIXMAUUOGUVCUVRUOXNXOAUVTUV
          IGUWBUVPUVRXPXQXRWQAUVKUUQWRVNZUVHUUQUVJVTUPZWRVNZAUVHIUWIWRUNUGXAAUV
          MUUQVHUSUVJVHUSWEUVJWRVNUWHUWJXSUVOUVDUVSAWEUVIUVJAYAUVPUVSAYPUUBWEUV
          IVMVNYRUKPOMNSUCWKWDAUVIGUVPUVQYBXBUVHUUQUVJYCYDWTXBYEXB $.
      $}

      $( Lemma for ~ nlmvscn .  (Contributed by Mario Carneiro, 5-Oct-2015.) $)
      nlmvscnlem1 $p |- ( ph ->
        E. r e. RR+ A. x e. K A. y e. V ( ( ( B E x ) < r /\ ( X D y ) < r ) ->
          ( ( B .x. X ) D ( x .x. y ) ) < R ) ) $=
        ( cle wbr cif crp wcel cv co clt wa wi wral wrex c2 cfv caddc rphalfcld
        cdiv c1 cngp cr cnlm nlmngp2 syl syl2anc cc0 ge0p1rpd rpdivcld syl5eqel
        nmge0 nlmngp rpred readdcld ltaddrpd lelttrd elrpd ifcld adantr simprll
        nmcl 0red simprlr cmt ngpms syl3anc simprrl ltletrd simprrr nlmvscnlem2
        mscl min2 min1 expr ralrimivva breq2 anbi12d imbi1d 2ralbidv rspcev
        wceq ) AHJUMUNZHJUOZUPUQZEBURZKUSZXMUTUNZQCURZFUSZXMUTUNZVAZEQIUSXOXRIU
        SFUSGUTUNZVBZCOVCBMVCZXPRURZUTUNZXSYEUTUNZVAZYBVBZCOVCBMVCZRUPVDAXLHJUP
        AHGVEVIUSZEDVFZVJVGUSZVIUSUPUGAYKYMAGUJVHZAYLALVKUQZEMUQZYLVLUQAPVMUQZY
        OUILPSVNVOZUKELDMUAUEWKVPAYOYPVQYLUMUNYRUKELDMUAUEWAVPVRVSVTZAJYKQNVFZH
        VGUSZVIUSUPUHAYKUUAYNAUUAAYTHAPVKUQZQOUQZYTVLUQAYQUUBUIPWBVOZULQPNOTUDW
        KVPZAHYSWCZWDZAVQYTUUAAWLUUEUUGAUUBUUCVQYTUMUNUUDULQPNOTUDWAVPAYTHUUEYS
        WEWFWGVSVTZWHZAYCBCMOAXOMUQZXROUQZVAZYAYBAUULYAVAZVAZDEXOFGHIJKLMNOPQXR
        STUAUBUCUDUEUFUGUHAYQUUMUIWIAGUPUQUUMUJWIAYPUUMUKWIZAUUCUUMULWIZAUUJUUK
        YAWJZAUUJUUKYAWMZUUNXPXMJUUNLWNUQZYPUUJXPVLUQUUNYOUUSAYOUUMYRWILWOVOUUO
        UUQEXOKLMUAUCXAWPUUNXMAXNUUMUUIWIWCZAJVLUQZUUMAJUUHWCWIZAUULXQXTWQUUNHV
        LUQZUVAXMJUMUNAUVCUUMUUFWIZUVBHJXBVPWRUUNXSXMHUUNPWNUQZUUCUUKXSVLUQAUVE
        UUMAUUBUVEUUDPWOVOWIUUPUURQXRFPOTUBXAWPUUTUVDAUULXQXTWSUUNUVCUVAXMHUMUN
        UVDUVBHJXCVPWRWTXDXEYJYDRXMUPYEXMXKZYIYCBCMOUVFYHYAYBUVFYFXQYGXTYEXMXPU
        TXFYEXMXSUTXFXGXHXIXJVP $.
    $}

    nlmvscn.sf $e |- .x. = ( .sf ` W ) $.
    nlmvscn.j $e |- J = ( TopOpen ` W ) $.
    nlmvscn.kf $e |- K = ( TopOpen ` F ) $.
    $( The scalar multiplication of a normed module is continuous.  Lemma for
       ~ nrgtrg and ~ nlmtlm .  (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    nlmvscn $p |- ( W e. NrmMod -> .x. e. ( ( K tX J ) Cn J ) ) $=
      ( vz vs vw wcel cfv co clt wa wral crp eqid vx vy cnlm cds cbs cres cmopn
      vr cxp ctx ccn wf cv wbr wi wrex clmod nlmlmod lmodscaf syl cvsca c2 cdiv
      c1 caddc simpll simpr simplrl simplrr nlmvscnlem1 ralrimiva simprl ovresd
      cnm breq1d simprr anbi12d wceq scafval ad2antlr oveq12d ad2antrr lmodvscl
      adantl syl3anc eqtrd imbi12d 2ralbidva rexbidv ralbidv ralrimivva cxmt wb
      mpbird cmt cxme cngp nlmngp2 ngpms msxms xmsxmet nlmngp txmetcn mpbir2and
      3syl mstopn eleqtrrd ) EUCMZABUDNZBUENZXJUIUFZUGNZEUDNZEUENZXNUIUFZUGNZUJ
      OZXPUKOZDCUJOZCUKOXHAXRMZXJXNUIXNAULZUAUMZJUMZXKOZKUMZPUNZUBUMZLUMZXOOZYE
      PUNZQZYBYGAOZYCYHAOZXOOZUHUMZPUNZUOZLXNRJXJRZKSUPZUHSRZUBXNRUAXJRZXHEUQMZ
      YAEURZXNABXJEXNTZFXJTZGUSUTXHYTUAUBXJXNXHYBXJMZYGXNMZQZQZYTYBYCXIOZYEPUNZ
      YGYHXMOZYEPUNZQZYBYGEVANZOZYCYHUUOOZXMOZYOPUNZUOZLXNRJXJRZKSUPZUHSRUUIUVB
      UHSUUIYOSMZQJLBVNNZYBXMYOYOVBVCOZYBUVDNVDVEOVCOZUUOUVEYGEVNNZNUVFVEOVCOZX
      IBXJUVGXNEYGKFUUDUUEXMTXITUVGTUVDTUUOTZUVFTUVHTXHUUHUVCVFUUIUVCVGXHUUFUUG
      UVCVHXHUUFUUGUVCVIVJVKUUIYSUVBUHSUUIYRUVAKSUUIYQUUTJLXJXNUUIYCXJMZYHXNMZQ
      ZQZYKUUNYPUUSUVMYFUUKYJUUMUVMYDUUJYEPUVMYBYCXIXJXHUUFUUGUVLVHZUUIUVJUVKVL
      ZVMVOUVMYIUULYEPUVMYGYHXMXNXHUUFUUGUVLVIZUUIUVJUVKVPZVMVOVQUVMYNUURYOPUVM
      YNUUPUUQXOOUURUVMYLUUPYMUUQXOUUHYLUUPVRXHUVLXNAUUOBXJEYBYGUUDFUUEGUVIVSVT
      UVLYMUUQVRUUIXNAUUOBXJEYCYHUUDFUUEGUVIVSWDWAUVMUUPUUQXMXNUVMUUBUUFUUGUUPX
      NMXHUUBUUHUVLUUCWBZUVNUVPYBUUOBXJXNEYGUUDFUVIUUEWCWEUVMUUBUVJUVKUUQXNMUVR
      UVOUVQYCUUOBXJXNEYHUUDFUVIUUEWCWEVMWFVOWGWHWIWJWNWKXHXKXJWLNMZXOXNWLNMZUV
      TXTYAUUAQWMXHBWOMZBWPMUVSXHBWQMUWABEFWRBWSUTZBWTXKBXJUUEXKTZXAXEXHEWOMZEW
      PMUVTXHEWQMUWDEXBEWSUTZEWTXOEXNUUDXOTZXAXEZUWGUAUBUHKLJXKXOXOAXLXPXPXJXNX
      NXLTXPTZUWHXCWEXDXHXSXQCXPUKXHDXLCXPUJXHUWADXLVRUWBXKDBXJIUUEUWCXFUTXHUWD
      CXPVRUWEXOCEXNHUUDUWFXFUTZWAUWIWAXG $.
  $}

  $( The ring module over a normed ring is a normed module.  (Contributed by
     Mario Carneiro, 4-Oct-2015.) $)
  rlmnlm $p |- ( R e. NrmRing -> ( ringLMod ` R ) e. NrmMod ) $=
    ( cnrg wcel cbs cfv csubrg crglmod cnlm crg nrgring eqid subrgid syl rlmval
    sranlm mpdan ) ABCZADEZAFECZAGEZHCQAICSAJRARKLMTRAANOP $.

  $( The norm function in the ring module.  (Contributed by AV, 9-Oct-2021.) $)
  rlmnm $p |- ( norm ` R ) = ( norm ` ( ringLMod ` R ) ) $=
    ( cbs cfv crglmod cnm rlmbas id cplusg rlmplusg a1i cds rlmds nmpropd ax-mp
    wceq ) ABCADCZBCOZAECPECOAFQAPQGAHCPHCOQAIJAKCPKCOQALJMN $.

  $( A normed ring is a topological ring.  (Contributed by Mario Carneiro,
     4-Oct-2015.) $)
  nrgtrg $p |- ( R e. NrmRing -> R e. TopRing ) $=
    ( cnrg wcel ctgp crg cmgp cfv ctps ctopn co eqid syl istps wceq wtru strfvi
    cbs a1i cts syl3anbrc ctmd ctrg nrgtgp nrgring cplusf ctx ccn ctopon tgptps
    cmnd ringmgp sylib mgpbas mgptopn sylibr crglmod rlmnlm cid rlmsca2 rlmscaf
    cnlm rlmtopn c1 df-base c9 df-tset topnpropd trud nlmvscn istmd istrg ) ABC
    ZADCZAECZAFGZUACZAUBCAUCZAUDZVLVOUJCZVOHCZVOUEGZAIGZWBUFJWBUGJCZVPVLVNVSVRA
    VOVOKZUKLVLWBAQGZUHGCZVTVLAHCZWFVLVMWGVQAUILWEWBAWEKZWBKZMULWEWBVOWEAVOWDWH
    UMAWBVOWDWIUNZMUOVLAUPGZVACWCAUQWAAURGZWBWBWKAUSAUTAVBWBWLIGNOAWLWEWLQGNOAQ
    VCWEVDWHPRASGZWLSGNOASVEWMVFWMKPRVGVHVILWAVOWBWAKWJVJTAVOWDVKT $.

  ${
    $d r s x y I $.  $d y ph $.  $d r s x y R $.  $d x y T $.  $d r s x y U $.
    $d x A $.  $d x B $.  $d x D $.
    nrginvrcn.x $e |- X = ( Base ` R ) $.
    nrginvrcn.u $e |- U = ( Unit ` R ) $.
    nrginvrcn.i $e |- I = ( invr ` R ) $.
    ${
      nrginvrcn.n $e |- N = ( norm ` R ) $.
      nrginvrcn.d $e |- D = ( dist ` R ) $.
      nrginvrcn.r $e |- ( ph -> R e. NrmRing ) $.
      nrginvrcn.z $e |- ( ph -> R e. NzRing ) $.
      nrginvrcn.a $e |- ( ph -> A e. U ) $.
      nrginvrcn.b $e |- ( ph -> B e. RR+ ) $.
      nrginvrcn.t $e |- T = ( if ( 1 <_ ( ( N ` A ) x. B ) ,
        1 , ( ( N ` A ) x. B ) ) x. ( ( N ` A ) / 2 ) ) $.
      $( Lemma for ~ nrginvrcn .  Compare this proof with ~ reccn2 , the
         elementary proof of continuity of division.  (Contributed by Mario
         Carneiro, 6-Oct-2015.) $)
      nrginvrcnlem $p |- ( ph -> E. x e. RR+ A. y e. U
        ( ( A D y ) < x -> ( ( I ` A ) D ( I ` y ) ) < B ) ) $=
        ( crp wcel cv co clt wbr cfv wi wral wrex c1 cmul cle cif cdiv 1rp cngp
        c0g wne cnrg nrgngp syl unitss sseldi cnzr eqid nzrunit syl2anc syl3anc
        c2 nmrpcl rpmulcld ifcl sylancr rphalfcld syl5eqel wa csg wceq cmulr cr
        cur adantr unitcl nmcl recnd simprl cgrp crg nrgring ringinvcl grpsubcl
        ngpgrp mul32d nmmul unitrinv oveq1d eqtrd fveq2d eqtr3d ringidcl ringcl
        ringsubdi rngsubdir ringlidm ringass syl13anc unitlinv ringridm oveq12d
        oveq2d 3eqtrd rpred rpne0d divmuld mpbird ngpdsr ngpds 3eqtr4rd eqeltrd
        remulcld simprr 1re min2 lemul1d mpbid syl5eqbr caddc 2halvesd resubcld
        cmin nm2dif breqtrrd min1 1red mulid2d lelttrd eqbrtrd breqtrd ltmul2dd
        ltletrd ltsubadd2d ltadd1d lttrd ltdivmuld expr ralrimiva breq2 ralbidv
        imbi1d rspcev ) AHUCUDZDCUEZFUFZHUGUHZDJUIZUUOJUIZFUFZEUGUHZUJZCIUKZUUP
        BUEZUGUHZUVAUJZCIUKZBUCULAHUMDKUIZEUNUFZUOUHZUMUVIUPZUVHVLUQUFZUNUFZUCU
        BAUVKUVLAUMUCUDUVIUCUDZUVKUCUDZURAUVHEAGUSUDZDLUDZDGUTUIZVAZUVHUCUDZAGV
        BUDZUVPRGVCVDZAILDLGIMNVEZTVFAGVGUDZDIUDZUVSSTDGIUVRNUVRVHZVIVJDGKLUVRM
        PUWFVMVKZUAVNZUVJUMUVIUCVOVPZAUVHUWGVQVNVRZAUVBCIAUUOIUDZUUQUVAAUWKUUQV
        SZVSZUUTUUPUVHUUOKUIZUNUFZUQUFZEUGUWMUUODGVTUIZUFZKUIZUWOUQUFZUURUUSUWQ
        UFZKUIZUWPUUTUWMUWTUXBWAUWOUXBUNUFZUWSWAUWMUXCUVHUXBUNUFZUWNUNUFGWDUIZD
        UUSGWBUIZUFZUWQUFZKUIZUWNUNUFZUWSUWMUVHUWNUXBUWMUVHUWMUVPUVQUVHWCUDAUVP
        UWLUWBWEZUWMUWEUVQAUWEUWLTWEZLGIDMNWFVDZDGKLMPWGVJZWHZUWMUWNUWMUVPUUOLU
        DZUWNWCUDUXKUWMILUUOUWCAUWKUUQWIZVFZUUOGKLMPWGVJZWHZUWMUXBUWMUVPUXALUDZ
        UXBWCUDUXKUWMGWJUDZUURLUDZUUSLUDZUYAUWMUVPUYBUXKGWOVDZUWMGWKUDZUWEUYCAU
        YFUWLAUWAUYFRGWLVDWEZUXLLGIJDNOMWMVJZUWMUYFUWKUYDUYGUXQLGIJUUONOMWMVJZL
        GUWQUURUUSMUWQVHZWNVKZUXAGKLMPWGVJWHZWPUWMUXDUXIUWNUNUWMDUXAUXFUFZKUIZU
        XDUXIUWMUWAUVQUYAUYNUXDWAAUWAUWLRWEZUXMUYKDUXAGUXFKLMPUXFVHZWQVKUWMUYMU
        XHKUWMUYMDUURUXFUFZUXGUWQUFUXHUWMLGUXFUWQDUURUUSMUYPUYJUYGUXMUYHUYIXEUW
        MUYQUXEUXGUWQUWMUYFUWEUYQUXEWAUYGUXLGUXFIUXEJDNOUYPUXEVHZWRVJWSWTXAXBWS
        UWMUXHUUOUXFUFZKUIZUXJUWSUWMUWAUXHLUDZUXPUYTUXJWAUYOUWMUYBUXELUDZUXGLUD
        ZVUAUYEUWMUYFVUBUYGLGUXEMUYRXCVDZUWMUYFUVQUYDVUCUYGUXMUYILGUXFDUUSMUYPX
        DVKZLGUWQUXEUXGMUYJWNVKUXRUXHUUOGUXFKLMPUYPWQVKUWMUYSUWRKUWMUYSUXEUUOUX
        FUFZUXGUUOUXFUFZUWQUFUWRUWMLGUXFUWQUXEUXGUUOMUYPUYJUYGVUDVUEUXRXFUWMVUF
        UUOVUGDUWQUWMUYFUXPVUFUUOWAUYGUXRLGUXFUXEUUOMUYPUYRXGVJUWMVUGDUUSUUOUXF
        UFZUXFUFZDUXEUXFUFZDUWMUYFUVQUYDUXPVUGVUIWAUYGUXMUYIUXRLGUXFDUUSUUOMUYP
        XHXIUWMVUHUXEDUXFUWMUYFUWKVUHUXEWAUYGUXQGUXFIUXEJUUONOUYPUYRXJVJXMUWMUY
        FUVQVUJDWAUYGUXMLGUXFUXEDMUYPUYRXKVJXNXLWTXAXBXNUWMUWSUWOUXBUWMUWSUWMUV
        PUWRLUDZUWSWCUDUXKUWMUYBUXPUVQVUKUYEUXRUXMLGUWQUUODMUYJWNVKUWRGKLMPWGVJ
        ZWHUWMUWOUWMUWOUWMUVHUWNAUVTUWLUWGWEZUWMUVPUXPUUOUVRVAZUWNUCUDUXKUXRUWM
        UWDUWKVUNAUWDUWLSWEUXQUUOGIUVRNUWFVIVJUUOGKLUVRMPUWFVMVKVNZXOZWHUYLUWMU
        WOVUOXPXQXRUWMUUPUWSUWOUQUWMUVPUVQUXPUUPUWSWAUXKUXMUXRDUUOFGUWQKLPMUYJQ
        XSVKZWSUWMUVPUYCUYDUUTUXBWAUXKUYHUYIUURUUSFGUWQKLPMUYJQXTVKYAUWMUWPEUGU
        HUUPUWOEUNUFZUGUHUWMUUPHVURUWMUUPUWSWCVUQVULYBZUWMHAUUNUWLUWJWEXOZUWMUW
        OEVUPUWMEAEUCUDUWLUAWEXOZYCZAUWKUUQYDZUWMHUVIUVLUNUFZVURVUTUWMVVDUWMUVI
        UVLAUVNUWLUWHWEZUWMUVHVUMVQZVNXOVVBUWMHUVMVVDUOUBUWMUVKUVIUOUHZUVMVVDUO
        UHUWMUMWCUDZUVIWCUDZVVGYEUWMUVIVVEXOZUMUVIYFVPUWMUVKUVIUVLUWMUVKAUVOUWL
        UWIWEXOZVVJVVFYGYHYIUWMVVDUVIUWNUNUFVURUGUWMUVLUWNUVIUWMUVLVVFXOZUXSVVE
        UWMUVLUWNUGUHUVLUVLYJUFZUWNUVLYJUFZUGUHUWMVVMUVHVVNUGUWMUVHUXOYKUWMUVHU
        WNYMUFZUVLUGUHUVHVVNUGUHUWMVVOUUPUVLUWMUVHUWNUXNUXSYLVUSVVLUWMVVODUUOUW
        QUFKUIZUUPUOUWMUVPUVQUXPVVOVVPUOUHUXKUXMUXRDUUOGUWQKLMPUYJYNVKUWMUVPUVQ
        UXPUUPVVPWAUXKUXMUXRDUUOFGUWQKLPMUYJQXTVKYOUWMUUPHUVLVUSVUTVVLVVCUWMHUM
        UVLUNUFZUVLUOUWMHUVMVVQUOUBUWMUVKUMUOUHZUVMVVQUOUHUWMVVHVVIVVRYEVVJUMUV
        IYPVPUWMUVKUMUVLVVKUWMYQVVFYGYHYIUWMUVLUWMUVLVVLWHYRUUAUUCYSUWMUVHUWNUV
        LUXNUXSVVLUUDYHYTUWMUVLUWNUVLVVLUXSVVLUUEXRUUBUWMUVHUWNEUXOUXTUWMEVVAWH
        WPYOYSUUFUWMUUPEUWOVUSVVAVUOUUGXRYTUUHUUIUVGUVCBHUCUVDHWAZUVFUVBCIVVSUV
        EUUQUVAUVDHUUPUGUUJUULUUKUUMVJ $.
    $}

    nrginvrcn.j $e |- J = ( TopOpen ` R ) $.
    $( The ring inverse function is continuous in a normed ring.  (Note that
       this is true even in rings which are not division rings.)  (Contributed
       by Mario Carneiro, 6-Oct-2015.) $)
    nrginvrcn $p |- ( R e. NrmRing -> I e. ( ( J |`t U ) Cn ( J |`t U ) ) ) $=
      ( vy vs wcel cfv co clt wbr crp eqid wa wceq vx vr cnrg cds cxp cmopn ccn
      cres crest wf cv wral wrex crg cmgp cress cgrp nrgring unitgrp unitgrpbas
      wi invrfval grpinvf 3syl cur c0g c0 wne 1rp ne0ii ad2antrr unitss simplrl
      c1 sseldi simpr ring1eq0 syl3anc cc0 cxme wb cngp cmt nrgngp ngpms adantr
      msxms xmseq0 mpbiri simplrr rpgt0d eqbrtrd fveq2 oveq1d breq1d syl5ibrcom
      ffvelrnda syld imp an32s a1d ralrimiva ralrimivw sylancr cnm cmul cle cif
      r19.2z c2 cdiv simpll isnzr sylanbrc nrginvrcnlem pm2.61dane ovresd simpl
      cnzr ffvelrn syl2an imbi12d ralbidva rexbidv mpbird ralrimivva wss xpss12
      cxmt mp2an resabs1 ax-mp xmsxmet xmetres2 sylancl syl5eqelr metcn syl2anc
      4syl mpbir2and mstopn eqcomi metrest eqtrd oveq12d eleqtrrd ) AUCLZCAUDMZ
      BBUEZUHZUFMZUUKUGNZDBUINZUUMUGNUUGCUULLZBBCUJZUAUKZJUKZUUJNZKUKZOPZUUPCMZ
      UUQCMZUUJNZUBUKZOPZVAZJBULZKQUMZUBQULUABULZUUGAUNLZAUOMBUPNZUQLUUOAURZABU
      VKGUVKRZUSBUVKCABUVKGUVMUTABUVKCGUVMHVBVCVDZUUGUVHUAUBBQUUGUUPBLZUVDQLZSZ
      SZUVHUUPUUQUUHNZUUSOPZUVAUVBUUHNZUVDOPZVAZJBULZKQUMZUVRUWEAVEMZAVFMZUVRUW
      FUWGTZSZQVGVHUWDKQULUWEVNQVIVJUWIUWDKQUWIUWCJBUWIUUQBLZSUWBUVTUVRUWJUWHUW
      BUVRUWJSZUWHUWBUWKUWHUUPUUQTZUWBUWKUVJUUPELUUQELUWHUWLVAUUGUVJUVQUWJUVLVK
      UWKBEUUPEABFGVLZUUGUVOUVPUWJVMZVOUWKBEUUQUWMUVRUWJVPZVOEAUWFUUPUUQUWGFUWF
      RZUWGRZVQVRUWKUWBUWLUVBUVBUUHNZUVDOPUWKUWRVSUVDOUWKUWRVSTZUVBUVBTZUVBRUWK
      AVTLZUVBELZUXBUWSUWTWAUUGUXAUVQUWJUUGAWBLZAWCLZUXAAWDZAWEZAWGZVDVKUWKBEUV
      BUWMUVRBBUUQCUUGUUOUVQUVNWFWQZVOZUXIUVBUVBUUHAEFUUHRZWHVRWIUWKUVDUUGUVOUV
      PUWJWJWKWLUWLUWAUWRUVDOUWLUVAUVBUVBUUHUUPUUQCWMWNWOWPWRWSWTXAXBXCUWDKQXIX
      DUVRUWFUWGVHZSZKJUUPUVDUUHAVNUUPAXEMZMZUVDXFNZXGPVNUXOXHUXNXJXKNXFNZBCUXM
      EFGHUXMRUXJUUGUVQUXKXLUXLUVJUXKAXSLUUGUVJUVQUXKUVLVKUVRUXKVPAUWFUWGUWPUWQ
      XMXNUUGUVOUVPUXKVMUUGUVOUVPUXKWJUXPRXOXPUVRUVGUWDKQUVRUVFUWCJBUWKUUTUVTUV
      EUWBUWKUURUVSUUSOUWKUUPUUQUUHBUWNUWOXQWOUWKUVCUWAUVDOUWKUVAUVBUUHBUVRUVAB
      LZUWJUUGUUOUVOUXQUVQUVNUVOUVPXRBBUUPCXTYAWFUXHXQWOYBYCYDYEYFUUGUUJBYIMZLZ
      UXSUUNUUOUVISWAUUGUUJUUHEEUEZUHZUUIUHZUXRUUIUXTYGZUYBUUJTBEYGZUYDUYCUWMUW
      MBEBEYHYJUUHUUIUXTYKYLZUUGUYAEYIMLZUYDUYBUXRLUUGUXCUXDUXAUYFUXEUXFUXGUYAA
      EFUYARZYMYSZUWMUYABEYNYOYPZUYIUAUBKJUUJUUJCUUKUUKBBUUKRZUYJYQYRYTUUGUUMUU
      KUUMUUKUGUUGUUMUYAUFMZBUINZUUKUUGDUYKBUIUUGUXCUXDDUYKTUXEUXFUYADAEIFUYGUU
      AVDWNUUGUYFUYDUYLUUKTUYHUWMUYAUUJUYKUUKEBUYBUUJUYEUUBUYKRUYJUUCYOUUDZUYMU
      UEUUF $.
  $}

  $( A normed division ring is a topological division ring.  (Contributed by
     Mario Carneiro, 6-Oct-2015.) $)
  nrgtdrg $p |- ( ( R e. NrmRing /\ R e. DivRing ) -> R e. TopDRing ) $=
    ( cnrg wcel cdr wa ctrg cmgp cfv cui cress co ctgp ctdrg nrgtrg adantr ctmd
    simpr eqid syl syl3anbrc cgrp cinvr ctopn crest ccn nrgring unitgrp csubmnd
    crg trgtmd unitsubm submtmd syl2anc cbs nrginvrcn mgptopn resstopn invrfval
    istgp istdrg ) ABCZADCZEZAFCZVBAGHZAIHZJKZLCZAMCVAVDVBANOZVAVBQVCVGUACZVGPC
    ZAUBHZAUCHZVFUDKZVNUEKCZVHVCAUICZVJVAVPVBAUFOZAVFVGVFRZVGRZUGSVCVEPCZVFVEUH
    HCZVKVCVDVTVIAVEVERZUJSVCVPWAVQAVFVEVRWBUKSVFVEVGVSULUMVAVOVBAVFVLVMAUNHZWC
    RVRVLRZVMRZUOOVGVLVNVFVGVMVEVSAVMVEWBWEUPUQAVFVGVLVRVSWDURUSTAVFVEWBVRUTT
    $.

  $( A normed module is a topological module.  (Contributed by Mario Carneiro,
     6-Oct-2015.) $)
  nlmtlm $p |- ( W e. NrmMod -> W e. TopMod ) $=
    ( cnlm wcel ctmd clmod csca cfv ctrg w3a cscaf ctopn ctx ccn ctlm ctgp cngp
    co cabl syl eqid nlmngp nlmlmod lmodabl ngptgp syl2anc tgptmd nlmnrg nrgtrg
    cnrg 3jca nlmvscn istlm sylanbrc ) ABCZADCZAECZAFGZHCZIAJGZUQKGZAKGZLQVAMQC
    ANCUNUOUPURUNAOCZUOUNAPCARCZVBAUAUNUPVCAUBZAUCSAUDUEAUFSVDUNUQUICURUQAUQTZU
    GUQUHSUJUSUQVAUTAVEUSTZVATZUTTZUKUSUQVAUTAVFVGVEVHULUM $.

  $( A normed vector space is just a normed module which is algebraically a
     vector space.  (Contributed by Mario Carneiro, 4-Oct-2015.) $)
  isnvc $p |- ( W e. NrmVec <-> ( W e. NrmMod /\ W e. LVec ) ) $=
    ( cnlm clvec cnvc df-nvc elin2 ) ABCDEF $.

  $( A normed vector space is a normed module.  (Contributed by Mario Carneiro,
     4-Oct-2015.) $)
  nvcnlm $p |- ( W e. NrmVec -> W e. NrmMod ) $=
    ( cnvc wcel cnlm clvec isnvc simplbi ) ABCADCAECAFG $.

  $( A normed vector space is a left vector space.  (Contributed by Mario
     Carneiro, 4-Oct-2015.) $)
  nvclvec $p |- ( W e. NrmVec -> W e. LVec ) $=
    ( cnvc wcel cnlm clvec isnvc simprbi ) ABCADCAECAFG $.

  $( A normed vector space is a left module.  (Contributed by Mario Carneiro,
     4-Oct-2015.) $)
  nvclmod $p |- ( W e. NrmVec -> W e. LMod ) $=
    ( cnvc wcel cnlm clmod nvcnlm nlmlmod syl ) ABCADCAECAFAGH $.

  ${
    isnvc2.1 $e |- F = ( Scalar ` W ) $.
    $( A normed vector space is just a normed module whose scalar ring is a
       division ring.  (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    isnvc2 $p |- ( W e. NrmVec <-> ( W e. NrmMod /\ F e. DivRing ) ) $=
      ( cnvc wcel cnlm clvec wa cdr isnvc clmod nlmlmod islvec baib syl pm5.32i
      wb bitri ) BDEBFEZBGEZHSAIEZHBJSTUASBKEZTUAQBLTUBUAABCMNOPR $.
  $}

  $( A normed vector space is a topological vector space.  (Contributed by
     Mario Carneiro, 4-Oct-2015.) $)
  nvctvc $p |- ( W e. NrmVec -> W e. TopVec ) $=
    ( cnvc wcel ctlm csca cfv ctdrg ctvc cnlm nvcnlm nlmtlm syl cnrg cdr nlmnrg
    eqid clvec nvclvec lvecdrng nrgtdrg syl2anc istvc sylanbrc ) ABCZADCZAEFZGC
    ZAHCUDAICZUEAJZAKLUDUFMCZUFNCZUGUDUHUJUIUFAUFPZOLUDAQCUKARUFAULSLUFTUAUFAUL
    UBUC $.

  ${
    $d x y S $.  $d x y U $.  $d x y W $.  $d x y X $.
    lssnlm.x $e |- X = ( W |`s U ) $.
    lssnlm.s $e |- S = ( LSubSp ` W ) $.
    $( A subspace of a normed module is a normed module.  (Contributed by Mario
       Carneiro, 4-Oct-2015.) $)
    lssnlm $p |- ( ( W e. NrmMod /\ U e. S ) -> X e. NrmMod ) $=
      ( vx vy wcel wa cfv cnrg co cnm cmul wceq cbs adantr syl2anc eqid cnlm cv
      cngp clmod csca w3a cvsca wral csubg nlmngp nlmlmod lsssubg sylan subgngp
      lsslmod resssca adantl nlmnrg eqeltrrd 3jca simpll simprl fveq2d eleqtrrd
      wss subgss syl simprr subgbas sseldd nmvs syl3anc ressvsca oveqd ad2antrr
      simplr lssvscl syl22anc subgnm2 eqtr3d eqcomd oveq12d ralrimivva sylanbrc
      fveq1d 3eqtr4d isnlm ) CUAIZBAIZJZDUCIZDUDIZDUEKZLIZUFGUBZHUBZDUGKZMZDNKZ
      KZWOWMNKZKZWPWSKZOMZPZHDQKZUHGWMQKZUHDUAIWJWKWLWNWJCUCIZBCUIKIZWKWHXHWICU
      JRWHCUDIZWIXICUKZABCFULUMZBCDEUNSWHXJWIWLXKABCDEFUOUMWJCUEKZWMLWIXMWMPZWH
      BXMCDAEXMTZUPUQZWHXMLIWIXMCXOURRUSUTWJXEGHXGXFWJWOXGIZWPXFIZJZJZWOWPCUGKZ
      MZCNKZKZWOXMNKZKZWPYCKZOMZWTXDXTWHWOXMQKZIZWPCQKZIYDYHPWHWIXSVAXTWOXGYIWJ
      XQXRVBXTXMWMQWJXNXSXPRZVCVDZXTBYKWPXTXIBYKVEWJXIXSXLRZYKBCYKTZVFVGXTWPXFB
      WJXQXRVHXTXIBXFPYNBCDEVIVGVDZVJYEYAXMYIYCYKCWOWPYOYCTZYATZXOYITZYETVKVLXT
      YBWSKZWTYDXTYBWRWSXTYAWQWOWPXTWIYAWQPWHWIXSVPZBYACDAEYRVMVGVNVCXTXIYBBIZY
      TYDPYNXTXJWIYJWPBIZUUBWHXJWIXSXKVOUUAYMYPYIAYABXMCWOWPXOYRYSFVQVRBCDWSYCY
      BEYQWSTZVSSVTXTXBYFXCYGOXTWOXAYEXTWMXMNXTXMWMYLWAVCWEXTXIUUCXCYGPYNYPBCDW
      SYCWPEYQUUDVSSWBWFWCGHXAWQWMXGWSXFDXFTUUDWQTWMTXGTXATWGWD $.

    $( A subspace of a normed vector space is a normed vector space.
       (Contributed by Mario Carneiro, 4-Oct-2015.) $)
    lssnvc $p |- ( ( W e. NrmVec /\ U e. S ) -> X e. NrmVec ) $=
      ( cnvc wcel wa cnlm csca cfv nvcnlm lssnlm sylan wceq eqid resssca adantl
      cdr clvec nvclvec lvecdrng syl adantr eqeltrrd isnvc2 sylanbrc ) CGHZBAHZ
      IZDJHZDKLZTHDGHUICJHUJULCMABCDEFNOUKCKLZUMTUJUNUMPUIBUNCDAEUNQZRSUIUNTHZU
      JUICUAHUPCUBUNCUOUCUDUEUFUMDUMQUGUH $.
  $}

  $( The ring module over a normed division ring is a normed vector space.
     (Contributed by Mario Carneiro, 4-Oct-2015.) $)
  rlmnvc $p |- ( ( R e. NrmRing /\ R e. DivRing ) ->
    ( ringLMod ` R ) e. NrmVec ) $=
    ( cnrg wcel crglmod cfv cnlm clvec cnvc cdr rlmnlm rlmlvec wa isnvc biimpri
    syl2an ) ABCADEZFCZPGCZPHCZAICAJAKSQRLPMNO $.

  ${
    ngpocelbl.n $e |- N = ( norm ` G ) $.
    ngpocelbl.x $e |- X = ( Base ` G ) $.
    ngpocelbl.p $e |- .+ = ( +g ` G ) $.
    ngpocelbl.d $e |- D = ( ( dist ` G ) |` ( X X. X ) ) $.
    $( Membership of an off-center vector in a ball in a normed module.
       (Contributed by NM, 27-Dec-2007.)  (Revised by AV, 14-Oct-2021.) $)
    ngpocelbl $p |- ( ( G e. NrmMod /\ R e. RR* /\ ( P e. X /\ A e. X ) )
               -> ( ( P .+ A ) e. ( P ( ball ` D ) R ) <-> ( N ` A ) < R ) ) $=
      ( wcel wa w3a co cfv clt syl 3ad2ant1 cnlm cxr cbl wbr cxmt wb cme nlmngp
      cngp ngpmet metxmet 3syl anim1i 3adant3 simp3l cgrp ngpgrp simp3 sylanbrc
      3anass grpcl jca elbl2 cds csg wceq cxp oveqi ovres syl5eq ngpdsr syl3anc
      cres eqid cabl clmod nlmlmod lmodabl ablpncan2 fveq2d 3eqtrd breq1d bitrd
      ) FUAMZEUBMZCHMZAHMZNZOZCADPZCEBUCQPMZCWJBPZERUDZAGQZERUDWIBHUEQMZWENZWFW
      JHMZNZNWKWMUFWIWPWRWDWEWPWHWDWOWEWDFUIMZBHUGQMWOFUHZBFHJLUJBHUKULUMUNWIWF
      WQWDWEWFWGUOZWIFUPMZWFWGOZWQWIXBWHXCWDWEXBWHWDWSXBWTFUQSTWDWEWHURZXBWFWGU
      TUSHDFCAJKVASZVBZVBWJBCEHVCSWIWLWNERWIWLCWJFVDQZPZWJCFVEQZPZGQZWNWIWRWLXH
      VFXFWRWLCWJXGHHVGVMZPXHBXLCWJLVHCWJHHXGVIVJSWIWSWFWQXHXKVFWDWEWSWHWTTXAXE
      CWJXGFXIGHIJXIVNZXGVNVKVLWIXJAGWIFVOMZWFWGOZXJAVFWIXNWHXOWDWEXNWHWDFVPMXN
      FVQFVRSTXDXNWFWGUTUSHDFXICAJKXMVSSVTWAWBWC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Normed space homomorphisms (bounded linear operators)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c normOp $. $( Operator norm $)
  $c NGHom $. $( Normed group homomorphism $)
  $c NMHom $. $( Normed module homomorphism $)

  $( The operator norm function. $)
  cnmo $a class normOp $.

  $( The class of normed group homomorphisms. $)
  cnghm $a class NGHom $.

  $( The class of normed module homomorphisms. $)
  cnmhm $a class NMHom $.

  ${
    $d f r s t x L $.  $d f r s t x M $.  $d f r s t x S $.  $d f r s t x T $.
    $d r s x A $.  $d f r s x F $.  $d x ph $.  $d f r s t x V $.  $d r x X $.
    $d r s t x N $.
    $( Define the norm of an operator between two normed groups (usually vector
       spaces).  This definition produces an operator norm function for each
       pair of groups ` <. s , t >. ` .  Equivalent to the definition of linear
       operator norm in [AkhiezerGlazman] p. 39.  (Contributed by Mario
       Carneiro, 18-Oct-2015.)  (Revised by AV, 25-Sep-2020.) $)
    df-nmo $a |- normOp = ( s e. NrmGrp , t e. NrmGrp |->
    ( f e. ( s GrpHom t ) |-> inf ( { r e. ( 0 [,) +oo ) | A. x e. ( Base ` s )
        ( ( norm ` t ) ` ( f ` x ) ) <_ ( r x. ( ( norm ` s ) ` x ) ) } ,
      RR* , < ) ) ) $.

    $( Define the set of normed group homomorphisms between two normed groups.
       A normed group homomorphism is a group homomorphism which additionally
       bounds the increase of norm by a fixed real operator.  In vector spaces
       these are also known as bounded linear operators.  (Contributed by Mario
       Carneiro, 18-Oct-2015.) $)
    df-nghm $a |- NGHom = ( s e. NrmGrp , t e. NrmGrp |->
      ( `' ( s normOp t ) " RR ) ) $.

    $( Define a normed module homomorphism, also known as a bounded linear
       operator.  This is a module homomorphism (a linear function) such that
       the operator norm is finite, or equivalently there is a constant ` c `
       such that...  (Contributed by Mario Carneiro, 18-Oct-2015.) $)
    df-nmhm $a |- NMHom = ( s e. NrmMod , t e. NrmMod |->
      ( ( s LMHom t ) i^i ( s NGHom t ) ) ) $.

    $( The function producing operator norm functions is a function on normed
       groups.  (Contributed by Mario Carneiro, 18-Oct-2015.)  (Proof shortened
       by AV, 26-Sep-2020.) $)
    nmoffn $p |- normOp Fn ( NrmGrp X. NrmGrp ) $=
      ( vs vt vf vx vr cngp cghm cfv cnm cmul cle wbr cbs cc0 cpnf cxr cvv wcel
      cv co wral cico crab clt cinf cmpt cnmo df-nmo wf eqid wss ssrab2 icossxr
      sstri infxrcl mp1i fmpti ovex xrex fex2 mp3an fnmpt2i ) ABFFCASZBSZGTZDSZ
      CSZHVDIHHESVFVCIHHJTKLDVCMHUAZENOUBTZUCZPUDUEZUFZUGDBCAEUHVEPVLUIVEQRPQRV
      LQRCVEPVKVLVLUJVJPUKVKPRVGVERVJVIPVHEVIULNOUMUNVJUOUPUQVCVDGURUSVEPVLQQUT
      VAVB $.

    $( Lemma for normed group homomorphisms.  (Contributed by Mario Carneiro,
       18-Oct-2015.) $)
    reldmnghm $p |- Rel dom NGHom $=
      ( vs vt cngp cv cnmo co ccnv cr cima cnghm df-nghm reldmmpt2 ) ABCCADBDEF
      GHIJBAKL $.

    $( Lemma for module homomorphisms.  (Contributed by Mario Carneiro,
       18-Oct-2015.) $)
    reldmnmhm $p |- Rel dom NMHom $=
      ( vs vt cnlm cv clmhm co cnghm cin cnmhm df-nmhm reldmmpt2 ) ABCCADZBDZEF
      LMGFHIBAJK $.

    nmofval.1 $e |- N = ( S normOp T ) $.
    ${
      nmofval.2 $e |- V = ( Base ` S ) $.
      nmofval.3 $e |- L = ( norm ` S ) $.
      nmofval.4 $e |- M = ( norm ` T ) $.
      $( Value of the operator norm.  (Contributed by Mario Carneiro,
         18-Oct-2015.)  (Revised by AV, 26-Sep-2020.) $)
      nmofval $p |- ( ( S e. NrmGrp /\ T e. NrmGrp ) ->
        N = ( f e. ( S GrpHom T ) |-> inf ( { r e. ( 0 [,) +oo ) | A. x e. V
          ( M ` ( f ` x ) ) <_ ( r x. ( L ` x ) ) } , RR* , < ) ) ) $=
        ( wcel co cv cfv cxr cnm cvv vs vt cngp cnmo cghm cmul cle wbr wral cc0
        cpnf cico crab clt cinf cmpt cbs wceq oveq12 simpl fveq2d syl6eqr simpr
        wa fveq1d oveq2d breq12d raleqbidv rabbidv infeq1d mpteq12dv df-nmo wss
        wf eqid ssrab2 icossxr sstri infxrcl mp1i fmpti ovex xrex mp3an ovmpt2a
        fex2 syl5eq ) BUCNCUCNVDGBCUDODBCUEOZAPZDPZQZFQZIPZWIEQZUFOZUGUHZAHUIZI
        UJUKULOZUMZRUNUOZUPZJUAUBBCUCUCDUAPZUBPZUEOZWKXCSQZQZWMWIXBSQZQZUFOZUGU
        HZAXBUQQZUIZIWRUMZRUNUOZUPXAUDXBBURZXCCURZVDZDXDXNWHWTXBBXCCUEUSXQRXMWS
        UNXQXLWQIWRXQXJWPAXKHXQXKBUQQHXQXBBUQXOXPUTZVAKVBXQXFWLXIWOUGXQWKXEFXQX
        ECSQFXQXCCSXOXPVCVAMVBVEXQXHWNWMUFXQWIXGEXQXGBSQEXQXBBSXRVALVBVEVFVGVHV
        IVJVKAUBDUAIVLWHRXAVNWHTNRTNXATNDWHRWTXAXAVOWSRVMWTRNWJWHNWSWRRWQIWRVPU
        JUKVQVRWSVSVTWABCUEWBWCWHRXATTWFWDWEWG $.

      $( Value of the operator norm.  (Contributed by Mario Carneiro,
         18-Oct-2015.)  (Revised by AV, 26-Sep-2020.) $)
      nmoval $p |- ( ( S e. NrmGrp /\ T e. NrmGrp /\ F e. ( S GrpHom T ) ) ->
        ( N ` F ) = inf ( { r e. ( 0 [,) +oo ) | A. x e. V
          ( M ` ( F ` x ) ) <_ ( r x. ( L ` x ) ) } , RR* , < ) ) $=
        ( vf wcel co cfv cv cxr clt cngp cghm cmul cle wral cpnf cico crab cinf
        wbr cc0 wceq wa cmpt nmofval fveq1d fveq1 fveq2d breq1d ralbidv rabbidv
        infeq1d eqid xrltso infex fvmpt sylan9eq 3impa ) BUAOZCUAOZDBCUBPZOZDGQ
        ZARZDQZFQZIRVNEQUCPZUDUJZAHUEZIUKUFUGPZUHZSTUIZULVIVJUMZVLVMDNVKVNNRZQZ
        FQZVQUDUJZAHUEZIVTUHZSTUIZUNZQWBWCDGWKABCNEFGHIJKLMUOUPNDWJWBVKWKWDDULZ
        SWIWATWLWHVSIVTWLWGVRAHWLWFVPVQUDWLWEVOFVNWDDUQURUSUTVAVBWKVCSWATVDVEVF
        VGVH $.

      $( Property of the operator norm.  (Contributed by Mario Carneiro,
         18-Oct-2015.)  (Proof shortened by AV, 26-Sep-2020.) $)
      nmogelb $p |- ( ( ( S e. NrmGrp /\ T e. NrmGrp /\ F e. ( S GrpHom T ) )
        /\ A e. RR* ) -> ( A <_ ( N ` F ) <-> A. r e. ( 0 [,) +oo )
         ( A. x e. V ( M ` ( F ` x ) ) <_ ( r x. ( L ` x ) ) -> A <_ r ) ) ) $=
        ( vs wcel cfv cle wbr cxr cngp cghm co w3a cmul wral cc0 cpnf cico crab
        cv clt cinf wi nmoval breq2d wss wb ssrab2 icossxr sstri infxrgelb mpan
        breq2 ralrab2 syl6bb sylan9bb ) CUAPDUAPECDUBUCPUDZBEHQZRSBAUKZEQGQJUKZ
        VJFQUEUCRSAIUFZJUGUHUIUCZUJZTULUMZRSZBTPZVLBVKRSZUNJVMUFZVHVIVOBRACDEFG
        HIJKLMNUOUPVQVPBOUKZRSZOVNUFZVSVNTUQVQVPWBURVNVMTVLJVMUSUGUHUTVAOVNBVBV
        CVLWAVROJVMVTVKBRVDVEVFVG $.

      $( Any upper bound on the values of a linear operator translates to an
         upper bound on the operator norm.  (Contributed by Mario Carneiro,
         18-Oct-2015.)  (Proof shortened by AV, 26-Sep-2020.) $)
      nmolb $p |- ( ( ( S e. NrmGrp /\ T e. NrmGrp /\ F e. ( S GrpHom T ) ) /\
           A e. RR /\ 0 <_ A ) -> ( A. x e. V
         ( M ` ( F ` x ) ) <_ ( A x. ( L ` x ) ) -> ( N ` F ) <_ A ) ) $=
        ( vr wcel co cle wbr cfv cxr cngp cghm w3a cr cv cmul wral wi cpnf cico
        cc0 wa elrege0 crab clt nmoval wss ssrab2 icossxr sstri infxrcl eqeltrd
        cinf mp1i xrleid wb nmogelb mpdan mpbid wceq oveq1 breq2d ralbidv breq2
        syl imbi12d rspccv syl5bir 3impib ) CUAODUAOECDUBPOUCZBUDOZUKBQRZAUEZES
        GSZBWCFSZUFPZQRZAIUGZEHSZBQRZUHZWAWBULBUKUIUJPZOZVTWKBUMVTWDNUEZWEUFPZQ
        RZAIUGZWIWNQRZUHZNWLUGZWMWKUHVTWIWIQRZWTVTWITOZXAVTWIWQNWLUNZTUOVCZTACD
        EFGHINJKLMUPXCTUQXDTOVTXCWLTWQNWLURUKUIUSUTXCVAVDVBZWIVEVOVTXBXAWTVFXEA
        WICDEFGHINJKLMVGVHVIWSWKNBWLWNBVJZWQWHWRWJXFWPWGAIXFWOWFWDQWNBWEUFVKVLV
        MWNBWIQVNVPVQVOVRVS $.

      nmolb2d.z $e |- .0. = ( 0g ` S ) $.
      nmolb2d.1 $e |- ( ph -> S e. NrmGrp ) $.
      nmolb2d.2 $e |- ( ph -> T e. NrmGrp ) $.
      nmolb2d.3 $e |- ( ph -> F e. ( S GrpHom T ) ) $.
      nmolb2d.4 $e |- ( ph -> A e. RR ) $.
      nmolb2d.5 $e |- ( ph -> 0 <_ A ) $.
      nmolb2d.6 $e |- ( ( ph /\ ( x e. V /\ x =/= .0. ) ) ->
        ( M ` ( F ` x ) ) <_ ( A x. ( L ` x ) ) ) $.
      $( Any upper bound on the values of a linear operator at nonzero vectors
         translates to an upper bound on the operator norm.  (Contributed by
         Mario Carneiro, 18-Oct-2015.) $)
      nmolb2d $p |- ( ph -> ( N ` F ) <_ A ) $=
        ( cv cfv cmul co cle wbr wral wcel wceq fveq2 fveq2d oveq2d breq12d wne
        wa anassrs cc0 0le0 recnd mul01d syl5breqr c0g cghm eqid ghmid syl cngp
        nm0 eqtrd 3brtr4d adantr pm2.61ne ralrimiva cr wi nmolb syl311anc mpd )
        ABUCZFUDZHUDZCWAGUDZUEUFZUGUHZBJUIZFIUDCUGUHZAWFBJAWAJUJZUQWFKFUDZHUDZC
        KGUDZUEUFZUGUHZWAKWAKUKZWCWKWEWMUGWOWBWJHWAKFULUMWOWDWLCUEWAKGULUNUOAWI
        WAKUPWFUBURAWNWIAUSCUSUEUFZWKWMUGAUSUSWPUGUTACACTVAVBVCAWKEVDUDZHUDZUSA
        WJWQHAFDEVEUFUJZWJWQUKSDEFKWQPWQVFZVGVHUMAEVIUJZWRUSUKREHWQOWTVJVHVKAWL
        USCUEADVIUJZWLUSUKQDGKNPVJVHUNVLVMVNVOAXBXAWSCVPUJUSCUGUHWGWHVQQRSTUABC
        DEFGHIJLMNOVRVSVT $.
    $}

    $( The operator norm is a function into the extended reals.  (Contributed
       by Mario Carneiro, 18-Oct-2015.)  (Proof shortened by AV,
       26-Sep-2020.) $)
    nmof $p |- ( ( S e. NrmGrp /\ T e. NrmGrp ) ->
                 N : ( S GrpHom T ) --> RR* ) $=
      ( vf vx vr cngp wcel wa cghm co cv cfv cnm cmul cc0 cpnf cxr eqid cle wbr
      cbs wral cico crab clt cinf nmofval wss ssrab2 icossxr sstri infxrcl mp1i
      fmpt3d ) AHIBHIJZEABKLZFMZEMZNBONZNGMUSAONZNPLUAUBFAUCNZUDZGQRUELZUFZSUGU
      HZSCFABEVBVACVCGDVCTVBTVATUIVFSUJVGSIUQUTURIJVFVESVDGVEUKQRULUMVFUNUOUP
      $.

    $( The operator norm of an operator is an extended real.  (Contributed by
       Mario Carneiro, 18-Oct-2015.) $)
    nmocl $p |- ( ( S e. NrmGrp /\ T e. NrmGrp /\ F e. ( S GrpHom T ) ) ->
                  ( N ` F ) e. RR* ) $=
      ( cngp wcel cghm co cfv cxr wa nmof ffvelrnda 3impa ) AFGZBFGZCABHIZGCDJK
      GPQLRKCDABDEMNO $.

    $( The operator norm of an operator is nonnegative.  (Contributed by Mario
       Carneiro, 18-Oct-2015.) $)
    nmoge0 $p |- ( ( S e. NrmGrp /\ T e. NrmGrp /\ F e. ( S GrpHom T ) ) ->
                   0 <_ ( N ` F ) ) $=
      ( vx vr cngp wcel cghm co w3a cc0 cfv cle wbr cv cnm wral eqid cmul wi wa
      cbs cpnf cr elrege0 simprbi adantl a1d ralrimiva cxr wb 0xr nmogelb mpan2
      cico mpbird ) AHIBHICABJKILZMCDNOPZFQZCNBRNZNGQZVAARNZNUAKOPFAUDNZSZMVCOP
      ZUBZGMUEUQKZSZUSVHGVIUSVCVIIZUCVGVFVKVGUSVKVCUFIVGVCUGUHUIUJUKUSMULIUTVJU
      MUNFMABCVDVBDVEGEVETVDTVBTUOUPUR $.

    $( A normed group homomorphism is a group homomorphism with bounded norm.
       (Contributed by Mario Carneiro, 18-Oct-2015.) $)
    nghmfval $p |- ( S NGHom T ) = ( `' N " RR ) $=
      ( vs vt cngp wcel wa cnghm co ccnv cr cima wceq cv cnmo cnveqd imaeq1d c0
      oveq12 syl6eqr df-nghm ovexi cnvex ovmpt2a wn mpt2ndm0 cxp wfn cdm nmoffn
      imaex fndm ax-mp ndmov syl5eq cnv0 syl6eq 0ima eqtr4d pm2.61i ) AGHBGHIZA
      BJKZCLZMNZOEFABGGEPZFPZQKZLZMNZVFJVGAOVHBOIZVJVEMVLVICVLVIABQKZCVGAVHBQUA
      DUBRSFEUCZVEMCCABQDUDUEUMUFVCUGZVDTVFEFVKJABGGVNUHVOVFTMNTVOVETMVOVETLTVO
      CTVOCVMTDABGQQGGUIZUJQUKVPOULVPQUNUOUPUQRURUSSMUTUSVAVB $.

    $( A normed group homomorphism is a group homomorphism with bounded norm.
       (Contributed by Mario Carneiro, 18-Oct-2015.) $)
    isnghm $p |- ( F e. ( S NGHom T ) <-> ( ( S e. NrmGrp /\ T e. NrmGrp ) /\
      ( F e. ( S GrpHom T ) /\ ( N ` F ) e. RR ) ) ) $=
      ( cnghm co wcel ccnv cr cima cngp wa cghm c0 wceq cnmo wfn syl6eq cxr cfv
      nghmfval eleq2i n0i wn cxp cdm nmoffn fndm ax-mp ndmov syl5eq cnveqd cnv0
      imaeq1d 0ima nsyl2 wf wb nmof ffn elpreima 3syl biadan2 bitri ) CABFGZHCD
      IZJKZHZALHBLHMZCABNGZHCDUAJHMZMVFVHCABDEUBUCVIVJVLVIVHOPVJVHCUDVJUEZVHOJK
      OVMVGOJVMVGOIOVMDOVMDABQGOEABLQQLLUFZRQUGVNPUHVNQUIUJUKULUMUNSUOJUPSUQVJV
      KTDURDVKRVIVLUSABDEUTVKTDVAVKCJDVBVCVDVE $.

    $( A normed group homomorphism is a group homomorphism with bounded norm.
       (Contributed by Mario Carneiro, 18-Oct-2015.) $)
    isnghm2 $p |- ( ( S e. NrmGrp /\ T e. NrmGrp /\ F e. ( S GrpHom T ) ) ->
      ( F e. ( S NGHom T ) <-> ( N ` F ) e. RR ) ) $=
      ( cngp wcel cghm co cnghm cfv cr wb wa isnghm baib baibd 3impa ) AFGZBFGZ
      CABHIGZCABJIGZCDKLGZMSTNZUBUAUCUBUDUAUCNABCDEOPQR $.

    $( A normed group homomorphism is a group homomorphism with bounded norm.
       (Contributed by Mario Carneiro, 18-Oct-2015.) $)
    isnghm3 $p |- ( ( S e. NrmGrp /\ T e. NrmGrp /\ F e. ( S GrpHom T ) ) ->
     ( F e. ( S NGHom T ) <-> ( N ` F ) < +oo ) ) $=
      ( cngp wcel cghm co w3a cnghm cfv cpnf clt wbr isnghm2 cxr cmnf syl2anc
      cr wb nmocl cc0 cle nmoge0 ge0gtmnf xrrebnd baibd bitrd ) AFGBFGCABHIGJZC
      ABKIGCDLZTGZUKMNOZABCDEPUJUKQGZRUKNOZULUMUAABCDEUBZUJUNUCUKUDOUOUPABCDEUE
      UKUFSUNULUOUMUKUGUHSUI $.

    $( A bounded group homomorphism is a normed group homomorphism.
       (Contributed by Mario Carneiro, 18-Oct-2015.) $)
    bddnghm $p |- ( ( ( S e. NrmGrp /\ T e. NrmGrp /\ F e. ( S GrpHom T ) ) /\
      ( A e. RR /\ ( N ` F ) <_ A ) ) -> F e. ( S NGHom T ) ) $=
      ( cngp wcel cghm co w3a cr cfv cle wbr wa cnghm cxr cc0 nmocl jca xrrege0
      nmoge0 an4s sylan wb isnghm2 adantr mpbird ) BGHCGHDBCIJHKZALHZDEMZANOZPZ
      PDBCQJHZULLHZUJULRHZSULNOZPUNUPUJUQURBCDEFTBCDEFUCUAUQUKURUMUPULAUBUDUEUJ
      UOUPUFUNBCDEFUGUHUI $.

    $( A normed group homomorphism has a real operator norm.  (Contributed by
       Mario Carneiro, 18-Oct-2015.) $)
    nghmcl $p |- ( F e. ( S NGHom T ) -> ( N ` F ) e. RR ) $=
      ( cnghm co wcel cghm cfv cr cngp wa isnghm simprbi simprd ) CABFGHZCABIGH
      ZCDJKHZQALHBLHMRSMABCDENOP $.

    nmoi.2 $e |- V = ( Base ` S ) $.
    nmoi.3 $e |- L = ( norm ` S ) $.
    nmoi.4 $e |- M = ( norm ` T ) $.
    $( The operator norm achieves the minimum of the set of upper bounds, if
       the operator is bounded.  (Contributed by Mario Carneiro,
       18-Oct-2015.) $)
    nmoi $p |- ( ( F e. ( S NGHom T ) /\ X e. V ) ->
      ( M ` ( F ` X ) ) <_ ( ( N ` F ) x. ( L ` X ) ) ) $=
      ( co wcel wa cfv cle wbr cc0 adantr vx cnghm cmul c0g fveq2 fveq2d oveq2d
      vr wceq breq12d wne cdiv cv wral wi cpnf cico rspcv ad3antlr clt cngp cbs
      cr wb cghm isnghm simplbi simprd wf simprbi simpld eqid ghmf syl sylancom
      ffvelrn nmcl syl2anc elrege0 adantl crp simpr nmrpcl 3expa sylan rpregt0d
      jca ledivmul2 syl3anc sylibrd ralrimiva rerpdivcld rexrd nmogelb syl31anc
      cxr mpbird ledivmul2d mpbid ghmid nm0 eqtrd 0re syl6eqel nmoge0 syl5breqr
      0le0 mulge0d eqbrtrd pm2.61ne ) CABUBMNZHGNZOZHCPZEPZCFPZHDPZUCMZQRZAUDPZ
      CPZEPZXPXTDPZUCMZQRHXTHXTUIZXOYBXRYDQYEXNYAEHXTCUEUFYEXQYCXPUCHXTDUEUGUJX
      MHXTUKZOZXOXQULMZXPQRZXSYGYIUAUMZCPZEPZUHUMZYJDPZUCMZQRZUAGUNZYHYMQRZUOZU
      HSUPUQMZUNZYGYSUHYTYGYMYTNZOZYQXOYMXQUCMZQRZYRXLYQUUEUOXKYFUUBYPUUEUAHGYJ
      HUIZYLXOYOUUDQUUFYKXNEYJHCUEUFUUFYNXQYMUCYJHDUEUGUJURUSUUCXOVCNZYMVCNZXQV
      CNSXQUTROZYRUUEVDYGUUGUUBXMUUGYFXMBVANZXNBVBPZNZUUGXMAVANZUUJXKUUMUUJOZXL
      XKUUNCABVEMNZXPVCNZOZABCFIVFZVGTZVHZXKXLGUUKCVIZUULXMUUOUVAXMUUOUUPXKUUQX
      LXKUUNUUQUURVJTZVKZABCGUUKJUUKVLZVMVNGUUKHCVPVOXNBEUUKUVDLVQVRTZTUUBUUHYG
      UUBUUHSYMQRYMVSVGVTYGUUIUUBYGXQXMUUMXLOYFXQWANZXMUUMXLXMUUMUUJUUSVKZXKXLW
      BWGUUMXLYFUVFHADGXTJKXTVLZWCWDWEZWFTXOYMXQWHWIWJWKYGUUMUUJUUOYHWPNYIUUAVD
      XMUUMYFUVGTXMUUJYFUUTTXMUUOYFUVCTYGYHYGXOXQUVEUVIWLWMUAYHABCDEFGUHIJKLWNW
      OWQYGXOXPXQUVEXMUUPYFXMUUOUUPUVBVHZTUVIWRWSXMYBSYDQXMYBBUDPZEPZSXMYAUVKEX
      MUUOYAUVKUIUVCABCXTUVKUVHUVKVLZWTVNUFXMUUJUVLSUIUUTBEUVKLUVMXAVNXBXMXPYCU
      VJXMYCSVCXMUUMYCSUIUVGADXTKUVHXAVNZXCXDXMUUMUUJUUOSXPQRUVGUUTUVCABCFIXEWI
      XMSSYCQXGUVNXFXHXIXJ $.

    $( The operator norm is a bound on the size of an operator, even when it is
       infinite (using extended real multiplication).  (Contributed by Mario
       Carneiro, 18-Oct-2015.) $)
    nmoix $p |- ( ( ( S e. NrmGrp /\ T e. NrmGrp /\ F e. ( S GrpHom T ) ) /\
      X e. V ) -> ( M ` ( F ` X ) ) <_ ( ( N ` F ) *e ( L ` X ) ) ) $=
      ( wcel co cfv cle wbr cpnf wceq cc0 cngp cghm w3a wa cr cxmu cmul isnghm2
      cnghm biimpar nmoi sylan an32s nmcl 3ad2antl1 rexmul syl2anr breqtrrd c0g
      id fveq2d oveq2d breq12d wne cxr cbs simpl2 eqid ghmf ffvelrnda 3ad2antl3
      fveq2 syl2anc adantr rexrd pnfge syl crp simp1 nmrpcl 3expa sylanl1 rpgt0
      clt rpxr xmulpnf2 simpl3 ghmid nm0 eqtrd simpl1 pnfxr xmul01 ax-mp syl6eq
      0le0 mpbiri pm2.61ne simpr oveq1d wo cmnf nmocl nmoge0 ge0nemnf jca sylib
      xrnemnf mpjaodan ) AUAMZBUAMZCABUBNMZUCZHGMZUDZCFOZUEMZHCOZEOZXPHDOZUFNZP
      QXPRSZXOXQUDXSXPXTUGNZYAPXMXQXNXSYCPQZXMXQUDCABUINMZXNYDXMYEXQABCFIUHUJAB
      CDEFGHIJKLUKULUMXQXQXTUEMZYAYCSXOXQUTXJXKXNYFXLHADGJKUNUOXPXTUPUQURXOYBUD
      ZXSRXTUFNZYAPXOXSYHPQZYBXOYIAUSOZCOZEOZRYJDOZUFNZPQZHYJHYJSZXSYLYHYNPYPXR
      YKEHYJCVLVAYPXTYMRUFHYJDVLVBVCXOHYJVDZUDZXSRYHPYRXSVEMXSRPQYRXSXOXSUEMZYQ
      XOXKXRBVFOZMZYSXJXKXLXNVGZXLXJXNUUAXKXLGYTHCABCGYTJYTVHZVIVJVKXRBEYTUUCLU
      NVMVNVOXSVPVQYRXTVRMZYHRSZXMXJXNYQUUDXJXKXLVSXJXNYQUUDHADGYJJKYJVHZVTWAWB
      UUDXTVEMTXTWDQUUEXTWEXTWCXTWFVMVQURXOYOTTPQWPXOYLTYNTPXOYLBUSOZEOZTXOYKUU
      GEXOXLYKUUGSXJXKXLXNWGABCYJUUGUUFUUGVHZWHVQVAXOXKUUHTSUUBBEUUGLUUIWIVQWJX
      OYNRTUFNZTXOYMTRUFXOXJYMTSXJXKXLXNWKADYJKUUFWIVQVBRVEMUUJTSWLRWMWNWOVCWQW
      RVNYGXPRXTUFXOYBWSWTURXMXQYBXAZXNXMXPVEMZXPXBVDZUDUUKXMUULUUMABCFIXCZXMUU
      LTXPPQUUMUUNABCFIXDXPXEVMXFXPXHXGVNXI $.

    nmoi2.z $e |- .0. = ( 0g ` S ) $.
    $( The operator norm is a bound on the growth of a vector under the action
       of the operator.  (Contributed by Mario Carneiro, 19-Oct-2015.) $)
    nmoi2 $p |- ( ( ( S e. NrmGrp /\ T e. NrmGrp /\ F e. ( S GrpHom T ) ) /\
        ( X e. V /\ X =/= .0. ) ) ->
      ( ( M ` ( F ` X ) ) / ( L ` X ) ) <_ ( N ` F ) ) $=
      ( wcel co cfv c1 cxmu cxr cngp cghm w3a wne wa cdiv cle cc0 wbr cr simpl2
      cbs wf simpl3 eqid ghmf syl simprl ffvelrnd nmcl syl2anc rexrd adantr crp
      nmocl nmrpcl 3expb 3ad2antl1 rpxrd xmulcld rpreccld rpge0d nmoix xlemul1a
      adantrr syl31anc cmul wceq rpred rexmul recnd rpcnd rpne0d divrecd eqtr4d
      jca xmulass syl3anc recidd eqtrd oveq2d xmulid1 3eqtrd 3brtr3d ) AUAOZBUA
      OZCABUBPOZUCZHGOZHIUDZUEZUEZHCQZEQZRHDQZUFPZSPZCFQZXESPZXFSPZXDXEUFPZXHUG
      XBXDTOXITOXFTOZUHXFUGUIZUEXDXIUGUIZXGXJUGUIXBXDXBWPXCBULQZOXDUJOZWOWPWQXA
      UKXBGXOHCXBWQGXOCUMWOWPWQXAUNABCGXOKXOUOZUPUQWRWSWTURUSXCBEXOXQMUTVAZVBXB
      XHXEWRXHTOZXAABCFJVEVCZXBXEWOWPXAXEVDOZWQWOWSWTYAHADGIKLNVFVGVHZVIZVJXBXL
      XMXBXFXBXEYBVKZVIZXBXFYDVLWFWRWSXNWTABCDEFGHJKLMVMVOXDXIXFVNVPXBXGXDXFVQP
      ZXKXBXPXFUJOZXGYFVRXRXBXFYDVSZXDXFVTVAXBXDXEXBXDXRWAXBXEYBWBZXBXEYBWCZWDW
      EXBXJXHXEXFSPZSPZXHRSPZXHXBXSXETOXLXJYLVRXTYCYEXHXEXFWGWHXBYKRXHSXBYKXEXF
      VQPZRXBXEUJOYGYKYNVRXBXEYBVSYHXEXFVTVAXBXEYIYJWIWJWKXBXSYMXHVRXTXHWLUQWMW
      N $.

    nmoleub.1 $e |- ( ph -> S e. NrmGrp ) $.
    nmoleub.2 $e |- ( ph -> T e. NrmGrp ) $.
    nmoleub.3 $e |- ( ph -> F e. ( S GrpHom T ) ) $.
    nmoleub.4 $e |- ( ph -> A e. RR* ) $.
    nmoleub.5 $e |- ( ph -> 0 <_ A ) $.
    $( The operator norm, defined as an infimum of upper bounds, can also be
       defined as a supremum of norms of ` F ( x ) ` away from zero.
       (Contributed by Mario Carneiro, 18-Oct-2015.) $)
    nmoleub $p |- ( ph -> ( ( N ` F ) <_ A <->
      A. x e. V ( x =/= .0. -> ( ( M ` ( F ` x ) ) / ( L ` x ) ) <_ A ) ) ) $=
      ( cfv cle wbr cv wne cdiv co wi wral wa wcel cngp cbs cr ad2antrr wf cghm
      eqid ghmf syl simprl ffvelrn syl2anc adantr nmrpcl 3expb sylan rerpdivcld
      nmcl crp rexrd cxr nmocl syl3anc 3jca nmoi2 simplr xrletrd expr ralrimiva
      w3a cpnf wceq cmul cc0 simpllr recnd mul01d syl5breqr c0g fveq2 sylan9eqr
      0le0 ghmid fveq2d ad3antrrr nm0 eqtrd oveq2d 3brtr4d a1d simpr ledivmul2d
      3expa sylanl1 biimpd embantd pm2.61dane ralimdva nmolb syl311anc syld imp
      an32s pnfge breqtrrd wo cmnf ge0nemnf jca xrnemnf sylib mpjaodan impbida
      ) AFIUBZCUCUDZBUEZKUFZYHFUBZHUBZYHGUBZUGUHZCUCUDZUIZBJUJZAYGUKZYOBJYQYHJU
      LZYIYNYQYRYIUKZUKZYMYFCYTYMYTYKYLYTEUMULZYJEUNUBZULZYKUOULZAUUAYGYSRUPYTJ
      UUBFUQZYRUUCAUUEYGYSAFDEURUHULZUUESDEFJUUBMUUBUSZUTVAZUPYQYRYIVBJUUBYHFVC
      ZVDYJEHUUBUUGOVJZVDYQDUMULZYSYLVKULZAUUKYGQVEUUKYRYIUULYHDGJKMNPVFZVGVHVI
      VLAYFVMULZYGYSAUUKUUAUUFUUNQRSDEFILVNVOZUPACVMULZYGYSTUPYQUUKUUAUUFWBZYSY
      MYFUCUDAUUQYGAUUKUUAUUFQRSVPVEDEFGHIJYHKLMNOPVQVHAYGYSVRVSVTWAAYPUKZCUOUL
      ZYGCWCWDZAUUSYPYGAUUSUKZYPYGUVAYPYKCYLWEUHZUCUDZBJUJZYGUVAYOUVCBJUVAYRUKZ
      YOUVCUIYHKUVEYHKWDZUKZUVCYOUVGWFCWFWEUHZYKUVBUCUVGWFWFUVHUCWNUVGCUVGCAUUS
      YRUVFWGWHWIWJUVGYKEWKUBZHUBZWFUVGYJUVIHUVFUVEYJKFUBZUVIYHKFWLUVEUUFUVKUVI
      WDAUUFUUSYRSUPDEFKUVIPUVIUSZWOVAWMWPUVGUUAUVJWFWDAUUAUUSYRUVFRWQEHUVIOUVL
      WRVAWSUVGYLWFCWEUVFUVEYLKGUBZWFYHKGWLUVEUUKUVMWFWDAUUKUUSYRQUPDGKNPWRVAWM
      WTXAXBUVEYIUKZYIYNUVCUVEYIXCUVNYNUVCUVNYKCYLUVEUUDYIUVEUUAUUCUUDAUUAUUSYR
      RUPUVAUUEYRUUCAUUEUUSUUHVEUUIVHUUJVDVEAUUSYRYIWGUVAUUKYRYIUULAUUKUUSQVEZU
      UKYRYIUULUUMXEXFXDXGXHXIXJUVAUUKUUAUUFUUSWFCUCUDZUVDYGUIUVOAUUAUUSRVEAUUF
      UUSSVEAUUSXCAUVPUUSUAVEBCDEFGHIJLMNOXKXLXMXNXOUURUUTUKZYFWCCUCUVQUUNYFWCU
      CUDAUUNYPUUTUUOUPYFXPVAUURUUTXCXQAUUSUUTXRZYPAUUPCXSUFZUKUVRAUUPUVSTAUUPU
      VPUVSTUACXTVDYACYBYCVEYDYE $.
  $}

  $( Reverse closure for a normed group homomorphism.  (Contributed by Mario
     Carneiro, 18-Oct-2015.) $)
  nghmrcl1 $p |- ( F e. ( S NGHom T ) -> S e. NrmGrp ) $=
    ( cnghm co wcel cngp wa cghm cnmo cfv cr eqid isnghm simplbi simpld ) CABDE
    FZAGFZBGFZQRSHCABIEFCABJEZKLFHABCTTMNOP $.

  $( Reverse closure for a normed group homomorphism.  (Contributed by Mario
     Carneiro, 18-Oct-2015.) $)
  nghmrcl2 $p |- ( F e. ( S NGHom T ) -> T e. NrmGrp ) $=
    ( cnghm co wcel cngp wa cghm cnmo cfv cr eqid isnghm simplbi simprd ) CABDE
    FZAGFZBGFZQRSHCABIEFCABJEZKLFHABCTTMNOP $.

  $( A normed group homomorphism is a group homomorphism.  (Contributed by
     Mario Carneiro, 18-Oct-2015.) $)
  nghmghm $p |- ( F e. ( S NGHom T ) -> F e. ( S GrpHom T ) ) $=
    ( cnghm co wcel cghm cnmo cfv cr cngp wa eqid isnghm simprbi simpld ) CABDE
    FZCABGEFZCABHEZIJFZQAKFBKFLRTLABCSSMNOP $.

  ${
    $d x F $.  $d x N $.  $d x S $.  $d x T $.  $d x V $.  $d x .0. $.
    nmo0.1 $e |- N = ( S normOp T ) $.
    nmo0.2 $e |- V = ( Base ` S ) $.
    nmo0.3 $e |- .0. = ( 0g ` T ) $.
    $( The operator norm of the zero operator.  (Contributed by Mario Carneiro,
       20-Oct-2015.) $)
    nmo0 $p |- ( ( S e. NrmGrp /\ T e. NrmGrp ) ->
                  ( N ` ( V X. { .0. } ) ) = 0 ) $=
      ( vx cngp wcel wa cfv cc0 wceq cle wbr cnm c0g eqid simpl simpr cgrp cghm
      csn cxp co ngpgrp 0ghm syl2an 0red 0le0 a1i cv wne cmul cvv fvex fvconst2
      eqeltri ad2antrl fveq2d nm0 ad2antlr eqtrd nmcl ad2ant2r mul02d syl5breqr
      cr recnd eqbrtrd nmolb2d nmoge0 mpd3an3 cxr wb nmocl 0xr xrletri3 sylancl
      mpbir2and ) AJKZBJKZLZDEUEUFZCMZNOZWGNPQZNWGPQZWEINABWFARMZBRMZCDASMZFGWK
      TZWLTZWMTWCWDUAWCWDUBWCAUCKBUCKWFABUDUGKZWDAUHBUHDABEHGUIUJZWEUKNNPQWEULU
      MWEIUNZDKZWRWMUOZLZLZWRWFMZWLMZNNWRWKMZUPUGZPXBXDEWLMZNXBXCEWLWSXCEOWEWTD
      EWREBSMUQHBSURUTUSVAVBWDXGNOWCXABWLEWOHVCVDVEXBNNXFPULXBXEXBXEWCWSXEVJKWD
      WTWRAWKDGWNVFVGVKVHVIVLVMWCWDWPWJWQABWFCFVNVOWEWGVPKZNVPKWHWIWJLVQWCWDWPX
      HWQABWFCFVRVOVSWGNVTWAWB $.

    $( The operator norm is zero only for the zero operator.  (Contributed by
       Mario Carneiro, 20-Oct-2015.) $)
    nmoeq0 $p |- ( ( S e. NrmGrp /\ T e. NrmGrp /\ F e. ( S GrpHom T ) ) ->
                   ( ( N ` F ) = 0 <-> F = ( V X. { .0. } ) ) ) $=
      ( vx wcel co cfv cc0 wceq wa cle wbr cmul cr cngp cghm w3a csn cxp cv cnm
      cmpt cnghm id 0re syl6eqel isnghm2 biimpar sylan2 eqid nmoi simplr oveq1d
      sylan simpl1 nmcl recnd mul02d eqtrd breqtrd cbs simpll2 simpl3 ffvelrnda
      wf ghmf syl nmge0 syl2anc wb letri3 sylancl mpbir2and nmeq0 mpbid feqmptd
      mpteq2dva fconstmpt a1i 3eqtr4d ex 3adant3 fveq2 eqeq1d syl5ibrcom impbid
      nmo0 ) AUAKZBUAKZCABUBLKZUCZCDMZNOZCEFUDUEZOZWQWSXAWQWSPZJEJUFZCMZUHJEFUH
      ZCWTXBJEXDFXBXCEKZPZXDBUGMZMZNOZXDFOZXGXJXINQRZNXIQRZXGXIWRXCAUGMZMZSLZNQ
      XBCABUILKZXFXIXPQRWSWQWRTKZXQWSWRNTWSUJUKULWQXQXRABCDGUMUNUOABCXNXHDEXCGH
      XNUPZXHUPZUQUTXGXPNXOSLNXGWRNXOSWQWSXFURUSXGXOXGXOXBWNXFXOTKWNWOWPWSVAXCA
      XNEHXSVBUTVCVDVEVFXGWOXDBVGMZKZXMWNWOWPWSXFVHZXBEYAXCCXBWPEYACVKWNWOWPWSV
      IABCEYAHYAUPZVLVMZVJZXDBXHYAYDXTVNVOXGXITKZNTKXJXLXMPVPXGWOYBYGYCYFXDBXHY
      AYDXTVBVOUKXINVQVRVSXGWOYBXJXKVPYCYFXDBXHYAFYDXTIVTVOWAWCXBJEYACYEWBWTXEO
      XBJEFWDWEWFWGWQWSXAWTDMZNOZWNWOYIWPABDEFGHIWMWHXAWRYHNCWTDWIWJWKWL $.
  $}

  ${
    $d x F $.  $d x G $.  $d x L $.  $d x M $.  $d x N $.  $d x S $.  $d x T $.
    $d x U $.
    nmoco.1 $e |- N = ( S normOp U ) $.
    nmoco.2 $e |- L = ( T normOp U ) $.
    nmoco.3 $e |- M = ( S normOp T ) $.
    $( An upper bound on the operator norm of a composition.  (Contributed by
       Mario Carneiro, 20-Oct-2015.) $)
    nmoco $p |- ( ( F e. ( T NGHom U ) /\ G e. ( S NGHom T ) ) ->
                  ( N ` ( F o. G ) ) <_ ( ( L ` F ) x. ( M ` G ) ) ) $=
      ( co wcel wa cfv cmul eqid cr cle wbr vx cnghm ccom cnm cbs cngp nghmrcl1
      c0g adantl nghmrcl2 adantr nghmghm ghmco syl2an nghmcl remulcl cc0 nmoge0
      cghm syl3anc jca mulge0 cv wne ad2antrr ghmf syl ad2antlr simprl ffvelrnd
      wf nmcl syl2anc remulcld sylan ad2ant2lr nmoi lemul2a syl31anc letrd wceq
      simpll fvco3 fveq2d recnd mulassd 3brtr4d nmolb2d ) DBCUBLMZEABUBLMZNZUAD
      FOZEGOZPLZACDEUCZAUDOZCUDOZHAUEOZAUHOZIWRQZWPQZWQQZWSQWJAUFMZWIABEUGZUIWI
      CUFMZWJBCDUJZUKWIDBCUSLMZEABUSLMZWOACUSLMWJBCDULZABEULZABCDEUMUNWIWLRMZWM
      RMZWNRMWJBCDFJUOZABEGKUOZWLWMUPUNWIXKUQWLSTZNZXLUQWMSTZNUQWNSTWJWIXKXOXMW
      IBUFMZXEXGXOBCDUGZXFXIBCDFJURUTVAZWJXLXQXNWJXCXRXHXQXDABEUJXJABEGKURUTVAW
      LWMVBUNWKUAVCZWRMZYAWSVDZNZNZYAEOZDOZWQOZWLWMYAWPOZPLZPLZYAWOOZWQOWNYIPLS
      YEYHWLYFBUDOZOZPLZYKYEXEYGCUEOZMYHRMWIXEWJYDXFVEYEBUEOZYPYFDYEXGYQYPDVKWI
      XGWJYDXIVEBCDYQYPYQQZYPQZVFVGYEWRYQYAEYEXHWRYQEVKZWJXHWIYDXJVHABEWRYQWTYR
      VFVGZWKYBYCVIZVJZVJYGCWQYPYSXBVLVMYEWLYNWIXKWJYDXMVEZYEXRYFYQMZYNRMZWIXRW
      JYDXSVEUUCYFBYMYQYRYMQZVLVMZVNYEWLYJUUDYEWMYIWJXLWIYDXNVHZWJYBYIRMZWIYCWJ
      XCYBUUJXDYAAWPWRWTXAVLVOVPZVNZVNYEWIUUEYHYOSTWIWJYDWBUUCBCDYMWQFYQYFJYRUU
      GXBVQVMYEUUFYJRMXPYNYJSTZYOYKSTUUHUULWIXPWJYDXTVEWJYBUUMWIYCABEWPYMGWRYAK
      WTXAUUGVQVPYNYJWLVRVSVTYEYLYGWQYEYTYBYLYGWAUUAUUBWRYQYADEWCVMWDYEWLWMYIYE
      WLUUDWEYEWMUUIWEYEYIUUKWEWFWGWH $.
  $}

  $( The composition of normed group homomorphisms is a normed group
     homomorphism.  (Contributed by Mario Carneiro, 20-Oct-2015.) $)
  nghmco $p |- ( ( F e. ( T NGHom U ) /\ G e. ( S NGHom T ) ) ->
                 ( F o. G ) e. ( S NGHom U ) ) $=
    ( cnghm co wcel wa cngp ccom cghm cnmo cfv cmul nghmghm syl2an eqid nghmcl
    cr cle nghmrcl1 adantl nghmrcl2 adantr ghmco remulcl nmoco bddnghm syl32anc
    wbr ) DBCFGHZEABFGHZIAJHZCJHZDEKZACLGHZDBCMGZNZEABMGZNZOGZTHZUPACMGZNVBUAUK
    UPACFGHUMUNULABEUBUCULUOUMBCDUDUEULDBCLGHEABLGHUQUMBCDPABEPABCDEUFQULUSTHVA
    THVCUMBCDURURRZSABEUTUTRZSUSVAUGQABCDEURUTVDVDRZVEVFUHVBACUPVDVGUIUJ $.

  ${
    $d x F $.  $d x G $.  $d x N $.  $d x .+ $.  $d x S $.  $d x T $.
    nmotri.1 $e |- N = ( S normOp T ) $.
    nmotri.p $e |- .+ = ( +g ` T ) $.
    $( Triangle inequality for the operator norm.  (Contributed by Mario
       Carneiro, 20-Oct-2015.) $)
    nmotri $p |- ( ( T e. Abel /\ F e. ( S NGHom T ) /\ G e. ( S NGHom T ) ) ->
                   ( N ` ( F oF .+ G ) ) <_ ( ( N ` F ) + ( N ` G ) ) ) $=
      ( wcel co cfv eqid 3ad2ant2 cr cle wbr syl3anc adantr syl syl2anc vx cabl
      cnghm w3a cof cnm cbs c0g cngp nghmrcl1 nghmrcl2 cghm id nghmghm ghmplusg
      caddc syl3an nghmcl 3ad2ant3 readdcld cc0 nmoge0 addge0d cv wne cmul cgrp
      wa ngpgrp wf ghmf simprl ffvelrnd grpcl nmcl simpl syl2an remulcld simpl2
      nmtri nmoi simpl3 le2addd letrd wfn cvv wceq fvexd fnfvof syl22anc fveq2d
      ffn recnd adddird 3brtr4d nmolb2d ) CUBIZDBCUCJZIZEWRIZUDZUADFKZEFKZUPJZB
      CDEAUEJZBUFKZCUFKZFBUGKZBUHKZGXHLZXFLZXGLZXILWSWQBUIIZWTBCDUJMZWSWQCUIIZW
      TBCDUKMZWQWQWSDBCULJZIZWTEXQIZXEXQIWQUMBCDUNZBCEUNZADEBCHUOUQXAXBXCWSWQXB
      NIZWTBCDFGURMZWTWQXCNIZWSBCEFGURUSZUTXAXBXCYCYEXAXMXOXRVAXBOPXNXPWSWQXRWT
      XTMZBCDFGVBQXAXMXOXSVAXCOPXNXPWTWQXSWSYAUSZBCEFGVBQVCXAUAVDZXHIZYHXIVEZVH
      ZVHZYHDKZYHEKZAJZXGKZXBYHXFKZVFJZXCYQVFJZUPJZYHXEKZXGKXDYQVFJOYLYPYMXGKZY
      NXGKZUPJZYTYLXOYOCUGKZIZYPNIXAXOYKXPRZYLCVGIZYMUUEIZYNUUEIZUUFYLXOUUHUUGC
      VISYLXHUUEYHDYLXRXHUUEDVJZXAXRYKYFRBCDXHUUEXJUUELZVKSZXAYIYJVLZVMZYLXHUUE
      YHEYLXSXHUUEEVJZXAXSYKYGRBCEXHUUEXJUULVKSZUUNVMZUUEACYMYNUULHVNQYOCXGUUEU
      ULXLVOTYLUUBUUCYLXOUUIUUBNIUUGUUOYMCXGUUEUULXLVOTZYLXOUUJUUCNIUUGUURYNCXG
      UUEUULXLVOTZUTYLYRYSYLXBYQXAYBYKYCRZXAXMYIYQNIYKXNYIYJVPYHBXFXHXJXKVOVQZV
      RZYLXCYQXAYDYKYERZUVBVRZUTYLXOUUIUUJYPUUDOPUUGUUOUURYMYNACXGUUEUULXLHVTQY
      LUUBUUCYRYSUUSUUTUVCUVEYLWSYIUUBYROPWQWSWTYKVSUUNBCDXFXGFXHYHGXJXKXLWATYL
      WTYIUUCYSOPWQWSWTYKWBUUNBCEXFXGFXHYHGXJXKXLWATWCWDYLUUAYOXGYLDXHWEZEXHWEZ
      XHWFIYIUUAYOWGYLUUKUVFUUMXHUUEDWLSYLUUPUVGUUQXHUUEEWLSYLBUGWHUUNXHADEWFYH
      WIWJWKYLXBXCYQYLXBUVAWMYLXCUVDWMYLYQUVBWMWNWOWP $.
  $}

  ${
    nghmplusg.p $e |- .+ = ( +g ` T ) $.
    $( The sum of two bounded linear operators is bounded linear.  (Contributed
       by Mario Carneiro, 20-Oct-2015.) $)
    nghmplusg $p |- ( ( T e. Abel /\ F e. ( S NGHom T ) /\ G e. ( S NGHom T ) )
                      -> ( F oF .+ G ) e. ( S NGHom T ) ) $=
      ( cabl wcel cnghm co w3a cngp cof cghm cnmo cfv 3ad2ant2 nghmghm nghmcl
      cr caddc cle wbr nghmrcl1 nghmrcl2 ghmplusg syl3an eqid 3ad2ant3 readdcld
      id nmotri bddnghm syl32anc ) CGHZDBCIJZHZEUPHZKZBLHZCLHZDEAMJZBCNJZHZDBCO
      JZPZEVEPZUAJZTHVBVEPVHUBUCVBUPHUQUOUTURBCDUDQUQUOVAURBCDUEQUOUOUQDVCHUREV
      CHVDUOUKBCDRBCERADEBCFUFUGUSVFVGUQUOVFTHURBCDVEVEUHZSQURUOVGTHUQBCEVEVISU
      IUJABCDEVEVIFULVHBCVBVEVIUMUN $.
  $}

  ${
    0nghm.2 $e |- V = ( Base ` S ) $.
    0nghm.3 $e |- .0. = ( 0g ` T ) $.
    $( The zero operator is a normed group homomorphism.  (Contributed by Mario
       Carneiro, 18-Oct-2015.) $)
    0nghm $p |- ( ( S e. NrmGrp /\ T e. NrmGrp ) ->
                  ( V X. { .0. } ) e. ( S NGHom T ) ) $=
      ( cngp wcel wa csn cxp cnghm co cnmo cfv cr cc0 eqid cgrp ngpgrp nmo0 0re
      syl6eqel cghm wb 0ghm syl2an isnghm2 mpd3an3 mpbird ) AGHZBGHZIZCDJKZABLM
      HZUNABNMZOZPHZUMUQQPABUPCDUPRZEFUAUBUCUKULUNABUDMHZUOURUEUKASHBSHUTULATBT
      CABDFEUFUGABUNUPUSUHUIUJ $.
  $}

  ${
    $d x N $.  $d x S $.  $d x V $.  $d x .0. $.
    nmoid.1 $e |- N = ( S normOp S ) $.
    nmoid.2 $e |- V = ( Base ` S ) $.
    nmoid.3 $e |- .0. = ( 0g ` S ) $.
    $( The operator norm of the identity function on a nontrivial group.
       (Contributed by Mario Carneiro, 20-Oct-2015.) $)
    nmoid $p |- ( ( S e. NrmGrp /\ { .0. } C. V ) ->
      ( N ` ( _I |` V ) ) = 1 ) $=
      ( vx wcel wa cfv c1 wceq cle wbr co adantr 1red cr syl3anc cngp wpss cres
      csn cid cnm eqid simpl cgrp cghm ngpgrp syl cc0 0le1 a1i cv wne cmul nmcl
      idghm ad2ant2r leidd fvresi ad2antrl fveq2d recnd mulid2d 3brtr4d nmolb2d
      wn wex pssnel adantl velsn biimpri necon3bi eqtr4d cnghm cxr nmocl nmoge0
      xrrege0 syl22anc wb isnghm2 mpbird simprl nmoi syl2anc eqbrtrd crp nmrpcl
      3expb adantlr lemul1d sylanr2 exlimddv rexri xrletri3 sylancl mpbir2and
      1re ) AUAIZDUDZCUBZJZUECUCZBKZLMZXHLNOZLXHNOZXFHLAAXGAUFKZXLBCDEFXLUGZXMG
      XCXEUHZXNXFAUIIZXGAAUJPIZXCXOXEAUKQCAFUTULZXFRZUMLNOXFUNUOXFHUPZCIZXSDUQZ
      JZJZXSXLKZYDXSXGKZXLKZLYDURPZNYCYDXCXTYDSIXEYAXSAXLCFXMUSVAZVBYCYEXSXLXTY
      EXSMXFYACXSVCVDVEZYCYDYCYDYHVFVGZVHVIZXFXTXSXDIZVJZJZXKHXEYNHVKXCHXDCVLVM
      YMXFXTYAXKYLXSDYLXSDMHDVNVOVPYCXKYGXHYDURPZNOYCYGYFYONYCYGYDYFYJYIVQYCXGA
      AVRPIZXTYFYONOXFYPYBXFYPXHSIZXFXHVSIZLSIUMXHNOZXJYQXFXCXCXPYRXNXNXQAAXGBE
      VTTZXRXFXCXCXPYSXNXNXQAAXGBEWATYKXHLWBWCZXFXCXCXPYPYQWDXNXNXQAAXGBEWETWFQ
      XFXTYAWGAAXGXLXLBCXSEFXMXMWHWIWJYCLXHYDYCRXFYQYBUUAQXCYBYDWKIZXEXCXTYAUUB
      XSAXLCDFXMGWLWMWNWOWFWPWQXFYRLVSIXIXJXKJWDYTLXBWRXHLWSWTXA $.
  $}

  ${
    $d x S $.  $d x V $.
    idnghm.2 $e |- V = ( Base ` S ) $.
    $( The identity operator is a normed group homomorphism.  (Contributed by
       Mario Carneiro, 18-Oct-2015.) $)
    idnghm $p |- ( S e. NrmGrp -> ( _I |` V ) e. ( S NGHom S ) ) $=
      ( vx cngp wcel cid cres cnghm co cnmo cfv wceq eqid syl6eqel cc0 cmpt syl
      cr wa c0g csn wpss c1 nmoid 1re cv eleq2 biimpar elsni mpteq2dva mptresid
      cxp eqcomi fconstmpt 3eqtr4g fveq2d nmo0 anidms sylan9eqr 0re wss wo cgrp
      ngpgrp grpidcl snssd sspss sylib mpjaodan cghm wb id idghm isnghm2 mpbird
      mpd3an23 ) AEFZGBHZAAIJFZVSAAKJZLZSFZVRAUALZUBZBUCZWCWEBMZVRWFTWBUDSAWABW
      DWANZCWDNZUEUFOVRWGTWBPSWGVRWBBWEUMZWALZPWGVSWJWAWGDBDUGZQZDBWDQVSWJWGDBW
      LWDWGWLBFZTWLWEFZWLWDMWGWOWNWEBWLUHUIWLWDUJRUKWMVSDBULUNDBWDUOUPUQVRWKPMA
      AWABWDWHCWIURUSUTVAOVRWEBVBWFWGVCVRWDBVRAVDFZWDBFAVEZBAWDCWIVFRVGWEBVHVIV
      JVRVRVSAAVKJFZVTWCVLVRVMVRWPWRWQBACVNRAAVSWAWHVOVQVP $.
  $}

  ${
    nmods.n $e |- N = ( S normOp T ) $.
    nmods.v $e |- V = ( Base ` S ) $.
    nmods.c $e |- C = ( dist ` S ) $.
    nmods.d $e |- D = ( dist ` T ) $.
    $( Upper bound for the distance between the values of a bounded linear
       operator.  (Contributed by Mario Carneiro, 22-Oct-2015.) $)
    nmods $p |- ( ( F e. ( S NGHom T ) /\ A e. V /\ B e. V ) ->
      ( ( F ` A ) D ( F ` B ) ) <_ ( ( N ` F ) x. ( A C B ) ) ) $=
      ( co wcel cfv cmul eqid syl3an1 wceq cnghm w3a csg cnm cle wbr simp1 cgrp
      cngp nghmrcl1 ngpgrp syl grpsubcl nmoi syl2anc cbs nghmrcl2 3ad2ant1 cghm
      wf nghmghm simp2 ffvelrnd simp3 ngpds syl3anc ghmsub fveq2d eqtr4d oveq2d
      ghmf 3brtr4d ) GEFUANOZAIOZBIOZUBZABEUCPZNZGPZFUDPZPZGHPZVREUDPZPZQNZAGPZ
      BGPZDNZWBABCNZQNUEVPVMVRIOZWAWEUEUFVMVNVOUGVMEUHOZVNVOWJVMEUIOZWKEFGUJZEU
      KULIEVQABKVQRZUMSEFGWCVTHIVRJKWCRZVTRZUNUOVPWHWFWGFUCPZNZVTPZWAVPFUIOZWFF
      UPPZOWGXAOWHWSTVMVNWTVOEFGUQURVPIXAAGVPGEFUSNOZIXAGUTVMVNXBVOEFGVAZUREFGI
      XAKXARZVKULZVMVNVOVBVCVPIXABGXEVMVNVOVDVCWFWGDFWQVTXAWPXDWQRZMVEVFVPVSWRV
      TVMXBVNVOVSWRTXCIEFAGVQWQBKWNXFVGSVHVIVPWIWDWBQVMWLVNVOWIWDTWMABCEVQWCIWO
      KWNLVESVJVL $.
  $}

  ${
    $d r s x y F $.  $d r s x y S $.  $d r s x y T $.
    nghmcn.j $e |- J = ( TopOpen ` S ) $.
    nghmcn.k $e |- K = ( TopOpen ` T ) $.
    $( A normed group homomorphism is a continuous function.  (Contributed by
       Mario Carneiro, 20-Oct-2015.) $)
    nghmcn $p |- ( F e. ( S NGHom T ) -> F e. ( J Cn K ) ) $=
      ( vy co wcel cfv clt wbr crp eqid syl wa syl3anc cr ad2antrr vx vs vr cds
      cnghm cbs cxp cres cmopn ccn wf cv wi wral wrex cghm nghmghm ghmf cnmo c1
      caddc cdiv simprr nghmcl cc0 cle nghmrcl1 nghmrcl2 nmoge0 ge0p1rpd adantr
      cngp rpdivcld cmul cmt ngpms simplrl simpr mscl rpred ltmuldiv2d ffvelrnd
      remulcld nmods 3expa adantlrr cxme msxms xmsge0 lep1d letrd mpand sylbird
      lemul1ad lelttr ovresd breq1d 3imtr4d ralrimiva wceq breq2 imbi1d ralbidv
      rspcev syl2anc ralrimivva cxmt wb xmsxmet metcn mpbir2and mstopn eleqtrrd
      3syl oveq12d ) CABUEIJZCAUDKZAUFKZXRUGUHZUIKZBUDKZBUFKZYBUGUHZUIKZUJIZDEU
      JIXPCYEJZXRYBCUKZUAULZHULZXSIZUBULZLMZYHCKZYICKZYCIZUCULZLMZUMZHXRUNZUBNU
      OZUCNUNUAXRUNZXPCABUPIJZYGABCUQZABCXRYBXROZYBOZURPZXPYTUAUCXRNXPYHXRJZYPN
      JZQZQZYPCABUSIZKZUTVAIZVBIZNJYJUUNLMZYQUMZHXRUNZYTUUJYPUUMXPUUGUUHVCZXPUU
      MNJZUUIXPUULABCUUKUUKOZVDZXPAVLJZBVLJZUUBVEUULVFMABCVGZABCVHZUUCABCUUKUUT
      VIRVJZVKVMUUJUUPHXRUUJYIXRJZQZYHYIXQIZUUNLMZYMYNYAIZYPLMZUUOYQUVHUVJUUMUV
      IVNIZYPLMZUVLUVHUVIYPUUMUVHAVOJZUUGUVGUVISJXPUVOUUIUVGXPUVBUVOUVDAVPPZTZX
      PUUGUUHUVGVQZUUJUVGVRZYHYIXQAXRUUDXQOZVSRZUVHYPUUJUUHUVGUURVKVTZXPUUSUUIU
      VGUVFTZWAUVHUVKUVMVFMZUVNUVLUVHUVKUULUVIVNIZUVMUVHBVOJZYMYBJYNYBJUVKSJZXP
      UWFUUIUVGXPUVCUWFUVEBVPPZTUVHXRYBYHCXPYGUUIUVGUUFTZUVRWBZUVHXRYBYICUWIUVS
      WBZYMYNYABYBUUEYAOZVSRZUVHUULUVIXPUULSJUUIUVGUVATZUWAWCUVHUUMUVIUVHUUMUWC
      VTZUWAWCZXPUUGUVGUVKUWEVFMZUUHXPUUGUVGUWQYHYIXQYAABCUUKXRUUTUUDUVTUWLWDWE
      WFUVHUULUUMUVIUWNUWOUWAUVHAWGJZUUGUVGVEUVIVFMUVHUVOUWRUVQAWHZPUVRUVSYHYIX
      QAXRUUDUVTWIRUVHUULUWNWJWNWKUVHUWGUVMSJYPSJUWDUVNQUVLUMUWMUWPUWBUVKUVMYPW
      ORWLWMUVHYJUVIUUNLUVHYHYIXQXRUVRUVSWPWQUVHYOUVKYPLUVHYMYNYAYBUWJUWKWPWQWR
      WSYSUUQUBUUNNYKUUNWTZYRUUPHXRUWTYLUUOYQYKUUNYJLXAXBXCXDXEXFXPXSXRXGKJZYCY
      BXGKJZYFYGUUAQXHXPUVOUWRUXAUVPUWSXSAXRUUDXSOZXIXNXPUWFBWGJUXBUWHBWHYCBYBU
      UEYCOZXIXNUAUCUBHXSYCCXTYDXRYBXTOYDOXJXEXKXPDXTEYDUJXPUVODXTWTUVPXSDAXRFU
      UDUXCXLPXPUWFEYDWTUWHYCEBYBGUUEUXDXLPXOXM $.
  $}

  ${
    $d s t S $.  $d s t T $.
    $( A normed module homomorphism is a left module homomorphism which is also
       a normed group homomorphism.  (Contributed by Mario Carneiro,
       18-Oct-2015.) $)
    isnmhm $p |- ( F e. ( S NMHom T ) <-> ( ( S e. NrmMod /\ T e. NrmMod ) /\
      ( F e. ( S LMHom T ) /\ F e. ( S NGHom T ) ) ) ) $=
      ( vs vt cnmhm co wcel cnlm wa clmhm cnghm cv df-nmhm elmpt2cl wceq oveq12
      cin ineq12d ovex inex1 ovmpt2a eleq2d elin syl6bb biadan2 ) CABFGZHZAIHBI
      HJZCABKGZHCABLGZHJZDEIIDMZEMZKGZUMUNLGZRZABFCEDNZOUIUHCUJUKRZHULUIUGUSCDE
      ABIIUQUSFUMAPUNBPJUOUJUPUKUMAUNBKQUMAUNBLQSURUJUKABKTUAUBUCCUJUKUDUEUF $.

    $( Reverse closure for a normed module homomorphism.  (Contributed by Mario
       Carneiro, 18-Oct-2015.) $)
    nmhmrcl1 $p |- ( F e. ( S NMHom T ) -> S e. NrmMod ) $=
      ( cnmhm co wcel cnlm wa clmhm cnghm isnmhm simplbi simpld ) CABDEFZAGFZBG
      FZNOPHCABIEFCABJEFHABCKLM $.

    $( Reverse closure for a normed module homomorphism.  (Contributed by Mario
       Carneiro, 18-Oct-2015.) $)
    nmhmrcl2 $p |- ( F e. ( S NMHom T ) -> T e. NrmMod ) $=
      ( cnmhm co wcel cnlm wa clmhm cnghm isnmhm simplbi simprd ) CABDEFZAGFZBG
      FZNOPHCABIEFCABJEFHABCKLM $.

    $( A normed module homomorphism is a left module homomorphism (a linear
       operator).  (Contributed by Mario Carneiro, 18-Oct-2015.) $)
    nmhmlmhm $p |- ( F e. ( S NMHom T ) -> F e. ( S LMHom T ) ) $=
      ( cnmhm co wcel clmhm cnghm cnlm wa isnmhm simprbi simpld ) CABDEFZCABGEF
      ZCABHEFZNAIFBIFJOPJABCKLM $.

    $( A normed module homomorphism is a normed group homomorphism.
       (Contributed by Mario Carneiro, 18-Oct-2015.) $)
    nmhmnghm $p |- ( F e. ( S NMHom T ) -> F e. ( S NGHom T ) ) $=
      ( cnmhm co wcel clmhm cnghm cnlm wa isnmhm simprbi simprd ) CABDEFZCABGEF
      ZCABHEFZNAIFBIFJOPJABCKLM $.

    $( A normed module homomorphism is a group homomorphism.  (Contributed by
       Mario Carneiro, 18-Oct-2015.) $)
    nmhmghm $p |- ( F e. ( S NMHom T ) -> F e. ( S GrpHom T ) ) $=
      ( cnmhm co wcel cnghm cghm nmhmnghm nghmghm syl ) CABDEFCABGEFCABHEFABCIA
      BCJK $.

    isnmhm2.1 $e |- N = ( S normOp T ) $.
    $( A normed module homomorphism is a left module homomorphism with bounded
       norm (a bounded linear operator).  (Contributed by Mario Carneiro,
       18-Oct-2015.) $)
    isnmhm2 $p |- ( ( S e. NrmMod /\ T e. NrmMod /\ F e. ( S LMHom T ) ) ->
      ( F e. ( S NMHom T ) <-> ( N ` F ) e. RR ) ) $=
      ( cnlm wcel clmhm co cnmhm cfv cr wb cnghm isnmhm baib baibd cngp nlmngp
      wa cghm lmghm isnghm syl2an sylan2 bitrd 3impa ) AFGZBFGZCABHIGZCABJIGZCD
      KLGZMUHUITZUJTUKCABNIGZULUMUKUJUNUKUMUJUNTABCOPQUJUMCABUAIGZUNULMABCUBUMU
      NUOULUHARGZBRGZUNUOULTZMUIASBSUNUPUQTURABCDEUCPUDQUEUFUG $.

    $( A normed module homomorphism has a real operator norm.  (Contributed by
       Mario Carneiro, 18-Oct-2015.) $)
    nmhmcl $p |- ( F e. ( S NMHom T ) -> ( N ` F ) e. RR ) $=
      ( cnmhm co wcel cnghm cfv cr nmhmnghm nghmcl syl ) CABFGHCABIGHCDJKHABCLA
      BCDEMN $.
  $}

  ${
    0nmhm.1 $e |- V = ( Base ` S ) $.
    $( The identity operator is a bounded linear operator.  (Contributed by
       Mario Carneiro, 20-Oct-2015.) $)
    idnmhm $p |- ( S e. NrmMod -> ( _I |` V ) e. ( S NMHom S ) ) $=
      ( cnlm wcel wa cid cres clmhm co cnghm cnmhm jca clmod nlmlmod idlmhm syl
      id cngp nlmngp idnghm isnmhm sylanbrc ) ADEZUDUDFGBHZAAIJEZUEAAKJEZFUEAAL
      JEUDUDUDUDRZUHMUDUFUGUDANEUFAOBACPQUDASEUGATABCUAQMAAUEUBUC $.

    0nmhm.2 $e |- .0. = ( 0g ` T ) $.
    0nmhm.f $e |- F = ( Scalar ` S ) $.
    0nmhm.g $e |- G = ( Scalar ` T ) $.
    $( The zero operator is a bounded linear operator.  (Contributed by Mario
       Carneiro, 20-Oct-2015.) $)
    0nmhm $p |- ( ( S e. NrmMod /\ T e. NrmMod /\ F = G ) ->
                  ( V X. { .0. } ) e. ( S NMHom T ) ) $=
      ( cnlm wcel wceq co clmod nlmlmod cngp nlmngp 3adant3 wa w3a csn cnmhm id
      cxp clmhm cnghm 0lmhm syl3an 0nghm syl2an wb isnmhm baib mpbir2and ) AKLZ
      BKLZCDMZUAEFUBUEZABUCNLZUSABUFNLZUSABUGNLZUPAOLUQBOLURURVAAPBPURUDECDABFH
      GIJUHUIUPUQVBURUPAQLBQLVBUQARBRABEFGHUJUKSUPUQUTVAVBTZULURUTUPUQTVCABUSUM
      UNSUO $.
  $}

  $( The composition of bounded linear operators is a bounded linear operator.
     (Contributed by Mario Carneiro, 20-Oct-2015.) $)
  nmhmco $p |- ( ( F e. ( T NMHom U ) /\ G e. ( S NMHom T ) ) ->
                 ( F o. G ) e. ( S NMHom U ) ) $=
    ( cnmhm co wcel cnlm clmhm cnghm nmhmrcl2 nmhmrcl1 anim12ci nmhmlmhm lmhmco
    wa ccom syl2an nmhmnghm nghmco jca isnmhm sylanbrc ) DBCFGHZEABFGHZQZAIHZCI
    HZQDERZACJGHZUJACKGHZQUJACFGHUEUIUFUHBCDLABEMNUGUKULUEDBCJGHEABJGHUKUFBCDOA
    BEODEABCPSUEDBCKGHEABKGHULUFBCDTABETABCDEUASUBACUJUCUD $.

  ${
    nmhmplusg.p $e |- .+ = ( +g ` T ) $.
    $( The sum of two bounded linear operators is bounded linear.  (Contributed
       by Mario Carneiro, 20-Oct-2015.) $)
    nmhmplusg $p |- ( ( F e. ( S NMHom T ) /\ G e. ( S NMHom T ) ) ->
                      ( F oF .+ G ) e. ( S NMHom T ) ) $=
      ( cnmhm co wcel wa cnlm cof clmhm cnghm nmhmrcl1 nmhmrcl2 nmhmlmhm adantl
      anim12i nmhmnghm lmhmplusg syl2an cabl clmod nlmlmod lmodabl 3syl syl3anc
      adantr nghmplusg jca isnmhm sylanbrc ) DBCGHZIZEUNIZJZBKIZCKIZJDEALHZBCMH
      ZIZUTBCNHZIZJUTUNIUOURUPUSBCDOBCEPZSUQVBVDUODVAIEVAIVBUPBCDQBCEQADEBCFUAU
      BUQCUCIZDVCIZEVCIZVDUPVFUOUPUSCUDIVFVECUECUFUGRUOVGUPBCDTUIUPVHUOBCETRABC
      DEFUJUHUKBCUTULUM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Topology on the reals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d t u v w x y z S $.
    qtopbas.1 $e |- S C_ RR* $.
    $( The set of open intervals with endpoints in a subset forms a basis for a
       topology.  (Contributed by Mario Carneiro, 17-Jun-2014.) $)
    qtopbaslem $p |- ( (,) " ( S X. S ) ) e. TopBases $=
      ( vx vy vz vw vv vu vt cioo wcel cv cin wral wa cxr wceq sseli cfv mp2an
      cxp cima cvv ctb crn iooex rnex imassrn ssexi co cle wbr cif iooin syl2an
      anim12i ifcl ancoms cop df-ov opelxpi wfun cdm wss wi cr cpw wf ioof ffun
      ax-mp xpss12 fdmi sseqtr4i funfvima2 syl syl5eqel an4s eqeltrd ralrimivva
      rgen2a wfn wb ffn ineq1 eleq1d ralbidv ralima fveq2 syl6eqr ineq1d ineq2d
      ineq2 ralxp bitri syl6bb mpbir fiinbas ) JAAUAZUBZUCKCLZDLZMZWTKZDWTNZCWT
      NZWTUDKWTJUEJUFUGJWSUHUIXFELZFLZJUJZGLZHLZJUJZMZWTKZHANGANZFANEANZXOEFAXG
      AKZXHAKZOZXNGHAAXSXJAKZXKAKZOZOXMXGXJUKULZXJXGUMZXHXKUKULZXHXKUMZJUJZWTXS
      XGPKZXHPKZOXJPKZXKPKZOXMYGQYBXQYHXRYIAPXGBRAPXHBRUPXTYJYAYKAPXJBRAPXKBRUP
      XGXHXJXKUNUOXQXTXRYAYGWTKZXQXTOYDAKZYFAKZYLXRYAOXTXQYMYCXJXGAUQURYEXHXKAU
      QYMYNOZYGYDYFUSZJSZWTYDYFJUTYOYPWSKZYQWTKZYDYFAAVAJVBZWSJVCZVDYRYSVEPPUAZ
      VFVGZJVHZYTVIUUBUUCJVJVKWSUUBUUAAPVDZUUEWSUUBVDZBBAPAPVLTZUUBUUCJVIVMVNWS
      YPJVOTVPVQUOVRVSVTWAXFILZJSZXBMZWTKZDWTNZIWSNZXPJUUBWBZUUFXFUUMWCUUDUUNVI
      UUBUUCJWDVKZUUGXEUULCIUUBWSJXAUUIQZXDUUKDWTUUPXCUUJWTXAUUIXBWEWFWGWHTUULX
      OIEFAAUUHXGXHUSZQZUULXIXBMZWTKZDWTNZXOUURUUKUUTDWTUURUUJUUSWTUURUUIXIXBUU
      RUUIUUQJSXIUUHUUQJWIXGXHJUTWJWKWFWGUVAXIUUIMZWTKZIWSNZXOUUNUUFUVAUVDWCUUO
      UUGUUTUVCDIUUBWSJXBUUIQUUSUVBWTXBUUIXIWMWFWHTUVCXNIGHAAUUHXJXKUSZQZUVBXMW
      TUVFUUIXLXIUVFUUIUVEJSXLUUHUVEJWIXJXKJUTWJWLWFWNWOWPWNWOWQCDWTUCWRT $.
  $}

  $( The set of open intervals with rational endpoints forms a basis for a
     topology.  (Contributed by NM, 8-Mar-2007.) $)
  qtopbas $p |- ( (,) " ( QQ X. QQ ) ) e. TopBases $=
    ( cq cr cxr qssre ressxr sstri qtopbaslem ) AABCDEFG $.

  $( A basis for the standard topology on the reals.  (Contributed by NM,
     6-Feb-2007.)  (Proof shortened by Mario Carneiro, 17-Jun-2014.) $)
  retopbas $p |- ran (,) e. TopBases $=
    ( cioo cxr cxp cima crn ctb cdm cr cpw ioof fdmi imaeq2i imadmrn qtopbaslem
    eqtr3i ssid eqeltrri ) ABBCZDZAEZFAAGZDSTUARARHIAJKLAMOBBPNQ $.

  $( The standard topology on the reals.  (Contributed by FL, 4-Jun-2007.) $)
  retop $p |- ( topGen ` ran (,) ) e. Top $=
    ( cioo crn ctb wcel ctg cfv ctop retopbas tgcl ax-mp ) ABZCDKEFGDHKIJ $.

  $( The underlying set of the standard topology on the reals is the reals.
     (Contributed by FL, 4-Jun-2007.) $)
  uniretop $p |- RR = U. ( topGen ` ran (,) ) $=
    ( cioo crn cuni ctg cfv unirnioo ctb wcel wceq retopbas unitg ax-mp eqtr4i
    cr ) NABZCZODECZFOGHQPIJOGKLM $.

  $( The standard topology on the reals is a topology on the reals.
     (Contributed by Mario Carneiro, 28-Aug-2015.) $)
  retopon $p |- ( topGen ` ran (,) ) e. ( TopOn ` RR ) $=
    ( cioo crn ctg cfv ctop wcel cr ctopon retop uniretop toptopon mpbi ) ABCDZ
    EFMGHDFIMGJKL $.

  ${
    retps.k $e |- K = { <. ( Base ` ndx ) , RR >. ,
                      <. ( TopSet ` ndx ) , ( topGen ` ran (,) ) >. } $.
    $( The standard topological space on the reals.  (Contributed by NM,
       19-Oct-2012.) $)
    retps $p |- K e. TopSp $=
      ( cr cioo crn ctg cfv uniretop retop eltpsi ) CDEFGABHIJ $.
  $}

  $( Open intervals are open sets of the standard topology on the reals .
     (Contributed by FL, 18-Jun-2007.) $)
  iooretop $p |- ( A (,) B ) e. ( topGen ` ran (,) ) $=
    ( cioo crn ctg cfv co ctb wcel wss retopbas bastg ax-mp ioorebas sselii ) C
    DZPEFZABCGPHIPQJKPHLMABNO $.

  $( Closed intervals are closed sets of the standard topology on ` RR ` .
     (Contributed by FL, 14-Sep-2007.) $)
  icccld $p |- ( ( A e. RR /\ B e. RR ) -> ( A [,] B ) e.
        ( Clsd ` ( topGen ` ran (,) ) ) ) $=
    ( cr wcel wa cicc co cioo crn ctg cfv ccld cdif cmnf cpnf cun difreicc ctop
    retop iooretop unopn syl6eqel wss wb iccssre uniretop iscld2 sylancr mpbird
    mp3an ) ACDBCDEZABFGZHIJKZLKDZCULMZUMDZUKUONAHGZBOHGZPZUMABQUMRDZUQUMDURUMD
    USUMDSNATBOTUQURUMUAUJUBUKUTULCUCUNUPUDSABUEULUMCUFUGUHUI $.

  ${
    $d w x y z A $.
    $( Right-unbounded closed intervals are closed sets of the standard
       topology on ` RR ` .  (Contributed by Mario Carneiro, 17-Feb-2015.) $)
    icopnfcld $p |- ( A e. RR -> ( A [,) +oo ) e.
          ( Clsd ` ( topGen ` ran (,) ) ) ) $=
      ( vx vy vz vw cr wcel cpnf cico co cmnf cioo cdif cfv cxr clt wbr a1i cle
      wceq crn ctg ccld cun mnfxr rexr pnfxr mnflt df-ioo df-ico xrlenlt xrlttr
      ltpnf cv xrltletr ixxun syl32anc ioomax syl6eq wss cin c0 ioossre ixxdisj
      syl3anc uneqdifeq sylancr mpbid ctop retop iooretop uniretop opncld mp2an
      wb syl6eqelr ) AFGZAHIJZFKALJZMZLUAUBNZUCNZVQVSVRUDZFTZVTVRTZVQWCKHLJZFVQ
      KOGZAOGZHOGZKAPQAHPQWCWFTWGVQUERZAUFZWIVQUGRZAUHAUMBCDEKAHILPPSPLPPBCDUIZ
      BCDUJZAEUNZUKZWMWOAHULKAWOUOUPUQURUSVQVSFUTVSVRVAVBTZWDWEVOKAVCVQWGWHWIWQ
      WJWKWLBCDEKAHIPPSPLWMWNWPVDVEVSVRFVFVGVHWAVIGVSWAGVTWBGVJKAVKVSWAFVLVMVNV
      P $.

    $( Left-unbounded closed intervals are closed sets of the standard topology
       on ` RR ` .  (Contributed by Mario Carneiro, 17-Feb-2015.) $)
    iocmnfcld $p |- ( A e. RR -> ( -oo (,] A ) e.
          ( Clsd ` ( topGen ` ran (,) ) ) ) $=
      ( vx vy vz vw cr wcel cmnf cioc co cioo cfv cpnf wceq cxr clt wbr a1i cle
      mnfxr crn ctg ccld cdif cun rexr pnfxr mnflt ltpnf df-ioc df-ioo xrlelttr
      cv xrltnle xrlttr ixxun syl32anc ioomax syl6eq wss cin c0 wb iocssre mpan
      ixxdisj syl3anc uneqdifeq syl2anc mpbid iooretop syl6eqel uniretop iscld2
      ctop retop sylancr mpbird ) AFGZHAIJZKUAUBLZUCLGZFVTUDZWAGZVSWCAMKJZWAVSV
      TWEUEZFNZWCWENZVSWFHMKJZFVSHOGZAOGZMOGZHAPQAMPQWFWINWJVSTRZAUFZWLVSUGRZAU
      HAUIBCDEHAMKKPSPPIPPBCDUJZBCDUKZAEUMZUNZWQWRAMULHAWRUOUPUQURUSVSVTFUTZVTW
      EVAVBNZWGWHVCWJVSWTTHAVDVEZVSWJWKWLXAWMWNWOBCDEHAMKPSPPIWPWQWSVFVGVTWEFVH
      VIVJAMVKVLVSWAVOGWTWBWDVCVPXBVTWAFVMVNVQVR $.

    $( ` QQ ` is dense in the standard topology on ` RR ` .  (Contributed by
       NM, 1-Mar-2007.) $)
    qdensere $p |- ( ( cls ` ( topGen ` ran (,) ) ) ` QQ ) = RR $=
      ( vx vy vz vw cq cioo cfv cr wcel wss qssre uniretop cv c0 cxr clt wbr wa
      wrex a1i crn ctg ccl ctop retop clsss3 mp2an cin wne wi wral wceq cxp cpw
      co wf wfn ioof ffn ovelrn mp2b w3a elioo3g simplbi simp1d ad2antrr simp2d
      wb qre ad2antlr rexrd 3jca sylanbrc simplr inelcm syl2anc simp3d eliooord
      simpr simpld simprd xrlttrd qbtwnxr syl3anc r19.29a eleq2 ineq1 rexlimivw
      neeq1d 3imtr4d sylbi rgen eqidd ctb retopbas id elcls3 mpbiri ssriv eqssi
      cuni ) EFUAZUBGZUCGGZHXCUDIEHJZXDHJUEKEXCHLUFUGAHXDAMZHIZXFXDIXFBMZIZXHEU
      HZNUIZUJZBXBUKXLBXBXHXBIZXHCMZDMZFUOZULZDOSZCOSZXLOOUMZHUNZFUPFXTUQXMXSVH
      URXTYAFUSCDOOXHFUTVAXRXLCOXQXLDOXQXFXPIZXPEUHZNUIZXIXKYBYDUJXQYBXNXHPQXHX
      OPQRZYDBEYBXHEIZRZYERZXHXPIZYFYDYHXNOIZXOOIZXHOIZVBYEYIYHYJYKYLYBYJYFYEYB
      YJYKXFOIZYBYJYKYMVBXNXFPQZXFXOPQZRXNXOXFVCVDZVEZVFYBYKYFYEYBYJYKYMYPVGZVF
      YHXHYFXHHIYBYEXHVIVJVKVLYGYEVSXNXOXHVCVMYBYFYEVNXHXPEVOVPYBYJYKXNXOPQYEBE
      SYQYRYBXNXFXOYQYBYJYKYMYPVQYRYBYNYOXFXNXOVRZVTYBYNYOYSWAWBBXNXOWCWDWETXHX
      PXFWFXQXJYCNXHXPEWGWIWJWHWHWKWLXGBXBXFEXCHXGXCWMHXCXAULXGLTXBWNIXGWOTXEXG
      KTXGWPWQWRWSWT $.
  $}

  ${
    cnmetdval.1 $e |- D = ( abs o. - ) $.
    $( Value of the distance function of the metric space of complex numbers.
       (Contributed by NM, 9-Dec-2006.)  (Revised by Mario Carneiro,
       27-Dec-2014.) $)
    cnmetdval $p |- ( ( A e. CC /\ B e. CC ) ->
                  ( A D B ) = ( abs ` ( A - B ) ) ) $=
      ( cc wcel wa cop cabs cmin ccom cfv co cxp wceq subf opelxpi fvco3 df-ov
      wf sylancr fveq1i eqtri fveq2i 3eqtr4g ) AEFBEFGZABHZIJKZLZUGJLZILZABCMZA
      BJMZILUFEENZEJTUGUNFUIUKOPABEEQUNEUGIJRUAULUGCLUIABCSUGCUHDUBUCUMUJIABJSU
      DUE $.
  $}

  ${
    $d x y z $.
    $( The absolute value metric determines a metric space on the complex
       numbers.  This theorem provides a link between complex numbers and
       metrics spaces, making metric space theorems available for use with
       complex numbers.  (Contributed by FL, 9-Oct-2006.) $)
    cnmet $p |- ( abs o. - ) e. ( Met ` CC ) $=
      ( vx vy vz cabs cmin cc cr wf cv wcel wa cfv cc0 wceq cnmetdval w3a caddc
      co cle 3adant2 ccom cnex cxp absf subf fco mp2an subcl eqid eqcomd eqeq1d
      abs00ad subeq0 3bitr3d abs3dif abssub oveq1d breqtrd 3adant3 3coml ismeti
      oveq12d 3brtr4d ) ABCDEUAZFUBFGDHFFUCZFEHVEGVDHUDUEVEFGDEUFUGAIZFJZBIZFJZ
      KZVFVHERZDLZMNVKMNVFVHVDRZMNVFVHNVJVKVFVHUHULVJVLVMMVJVMVLVFVHVDVDUIZOZUJ
      UKVFVHUMUNVGVICIZFJZPZVLVPVFERDLZVPVHERDLZQRZVMVPVFVDRZVPVHVDRZQRZSVRVLVF
      VPERDLZVTQRZWASVFVHVPUOVGVQWFWANVIVGVQKWEVSVTQVFVPUPUQTURVGVIVMVLNVQVOUSV
      QVGVIWDWANVQVGVIPWBVSWCVTQVQVGWBVSNVIVPVFVDVNOUSVQVIWCVTNVGVPVHVDVNOTVBUT
      VCVA $.

    $( The absolute value metric is an extended metric.  (Contributed by Mario
       Carneiro, 28-Aug-2015.) $)
    cnxmet $p |- ( abs o. - ) e. ( *Met ` CC ) $=
      ( cabs cmin ccom cc cme cfv wcel cxmt cnmet metxmet ax-mp ) ABCZDEFGLDHFG
      ILDJK $.
  $}

  ${
    $d x D $.  $d x R $.
    cnblcld.1 $e |- D = ( abs o. - ) $.
    $( Two ways to write the open ball centered at zero.  (Contributed by Mario
       Carneiro, 8-Sep-2015.) $)
    cnbl0 $p |- ( R e. RR* ->
      ( `' abs " ( 0 [,) R ) ) = ( 0 ( ball ` D ) R ) ) $=
      ( vx wcel cabs cc0 co cfv cc wa clt wbr cr adantl wb wceq cmin 0cn eqtrd
      cxr ccnv cico cima cbl cle w3a abscl absge0 jca biantrurd df-3an syl6rbbr
      cv 0re simpl elico2 sylancr cnmetdval abssub subid1 fveq2d breq1d 3bitr4d
      mpan pm5.32da wfn wf absf ffn elpreima mp1i cxmt ccom cnxmet eqeltri elbl
      ax-mp mp3an12 eqrdv ) BUAEZDFUBGBUCHZUDZGBAUEIHZWADUNZJEZWEFIZWBEZKZWFGWE
      AHZBLMZKZWEWCEZWEWDEZWAWFWHWKWAWFKZWGNEZGWGUFMZWGBLMZUGZWRWHWKWOWRWPWQKZW
      RKWSWOWTWRWFWTWAWFWPWQWEUHWEUIUJOUKWPWQWRULUMWOGNEWAWHWSPUOWAWFUPGBWGUQUR
      WOWJWGBLWFWJWGQWAWFWJWEGRHZFIZWGGJEZWFWJXBQSXCWFKWJGWERHFIXBGWEACUSGWEUTT
      VEWFXAWEFWEVAVBTOVCVDVFFJVGZWMWIPWAJNFVHXDVIJNFVJVRJWEWBFVKVLAJVMIZEXCWAW
      NWLPAFRVNXECVOVPSWEAGBJVQVSVDVT $.

    $( Two ways to write the closed ball centered at zero.  (Contributed by
       Mario Carneiro, 8-Sep-2015.) $)
    cnblcld $p |- ( R e. RR* ->
      ( `' abs " ( 0 [,] R ) ) = { x e. CC | ( 0 D x ) <_ R } ) $=
      ( cxr wcel cabs cc0 co cc cle wbr wa cfv cr wb adantl wceq cmin eqtrd cab
      ccnv cicc cima cv crab wf wfn absf ffn elpreima mp2b w3a abscl absge0 jca
      rexrd biantrurd df-3an syl6rbbr 0xr simpl elicc1 sylancr cnmetdval abssub
      mpan subid1 fveq2d breq1d 3bitr4d pm5.32da syl5bb abbi2dv df-rab syl6eqr
      0cn ) CEFZGUBHCUCIZUDZAUEZJFZHWABIZCKLZMZAUAWDAJUFVRWEAVTWAVTFZWBWAGNZVSF
      ZMZVRWEJOGUGGJUHWFWIPUIJOGUJJWAVSGUKULVRWBWHWDVRWBMZWGEFZHWGKLZWGCKLZUMZW
      MWHWDWJWMWKWLMZWMMWNWJWOWMWBWOVRWBWKWLWBWGWAUNUQWAUOUPQURWKWLWMUSUTWJHEFV
      RWHWNPVAVRWBVBHCWGVCVDWJWCWGCKWBWCWGRVRWBWCWAHSIZGNZWGHJFZWBWCWQRVQWRWBMW
      CHWASIGNWQHWABDVEHWAVFTVGWBWPWAGWAVHVITQVJVKVLVMVNWDAJVOVP $.
  $}

  $( The complex number field is a metric space.  (Contributed by Mario
     Carneiro, 28-Aug-2015.) $)
  cnfldms $p |- CCfld e. MetSp $=
    ( ccnfld cmt wcel cabs cmin ccom cc cme cmopn wceq cnmet eqid cxmt cnfldbas
    cfv ctopon mp2b cres cr wf cnxmet mopntopon cnfldtset topontopn cxp cds wfn
    ctopn absf subf fco mp2an ffn fnresdm cnfldds reseq1i eqtr3i isms2 mpbir2an
    ) ABCDEFZGHOCUTIOZVAJKVALZUTVAAGUTGMOCVAGPOCVAAUHOJUAUTVAGVBUBGVAANUCUDQNUT
    GGUEZRZUTAUFOZVCRVCSUTTZUTVCUGVDUTJGSDTVCGETVFUIUJVCGSDEUKULVCSUTUMVCUTUNQU
    TVEVCUOUPUQURUS $.

  $( The complex number field is a topological space.  (Contributed by Mario
     Carneiro, 28-Aug-2015.) $)
  cnfldxms $p |- CCfld e. *MetSp $=
    ( ccnfld cmt wcel cxme cnfldms msxms ax-mp ) ABCADCEAFG $.

  $( The complex number field is a topological space.  (Contributed by Mario
     Carneiro, 28-Aug-2015.) $)
  cnfldtps $p |- CCfld e. TopSp $=
    ( ccnfld cmt wcel ctps cnfldms mstps ax-mp ) ABCADCEAFG $.

  ${
    $( The norm of the field of complex numbers.  (Contributed by Mario
       Carneiro, 4-Oct-2015.) $)
    cnfldnm $p |- abs = ( norm ` CCfld ) $=
      ( vx cc cv cc0 cabs cmin ccom cmpt cfv ccnfld cnm wcel wceq 0cn cnmetdval
      co eqid mpan2 wtru cr subid1 fveq2d eqtrd mpteq2ia cnfldbas cnfld0 nmfval
      cnfldds wf absf a1i feqmptd trud 3eqtr4ri ) ABACZDEFGZPZHABUOEIZHZJKIZEAB
      UQURUOBLZUQUODFPZEIZURVADBLUQVCMNUODUPUPQORVAVBUOEUOUAUBUCUDAUPUTJBDUTQUE
      UFUHUGEUSMSABTEBTEUISUJUKULUMUN $.

    $( The complex numbers form a normed group.  (Contributed by Mario
       Carneiro, 4-Oct-2015.) $)
    cnngp $p |- CCfld e. NrmGrp $=
      ( ccnfld cngp wcel cgrp cmt cabs cmin ccom wss crg cnring ringgrp cnfldms
      ax-mp ssid cnfldnm cnfldsub cnfldds isngp mpbir3an ) ABCADCZAECFGHZUBIAJC
      UAKALNMUBOUBAGFPQRST $.

    $( The complex numbers form a normed ring.  (Contributed by Mario Carneiro,
       4-Oct-2015.) $)
    cnnrg $p |- CCfld e. NrmRing $=
      ( ccnfld cnrg wcel cngp cabs cabv cfv cnngp absabv cnfldnm isnrg mpbir2an
      eqid ) ABCADCEAFGZCHINAEJNMKL $.

    cnfldtopn.1 $e |- J = ( TopOpen ` CCfld ) $.
    $( The topology of the complex numbers.  (Contributed by Mario Carneiro,
       28-Aug-2015.) $)
    cnfldtopn $p |- J = ( MetOpen ` ( abs o. - ) ) $=
      ( ccnfld ctopn cfv cabs cmin ccom cmopn cxmt wcel ctopon wceq cnxmet eqid
      cc mopntopon cnfldbas cnfldtset topontopn mp2b eqtr4i ) ACDEZFGHZIEZBUDPJ
      EKUEPLEKUEUCMNUDUEPUEOQPUECRSTUAUB $.

    $( The topology of the complex numbers is a topology.  (Contributed by
       Mario Carneiro, 2-Sep-2015.) $)
    cnfldtopon $p |- J e. ( TopOn ` CC ) $=
      ( ccnfld ctps wcel cc ctopon cfv cnfldtps cnfldbas istps mpbi ) CDEAFGHEI
      FACJBKL $.

    $( The topology of the complex numbers is a topology.  (Contributed by
       Mario Carneiro, 2-Sep-2015.) $)
    cnfldtop $p |- J e. Top $=
      ( cc cnfldtopon topontopi ) CAABDE $.

    $( The topology of the complex numbers is Hausdorff.  (Contributed by Mario
       Carneiro, 8-Sep-2015.) $)
    cnfldhaus $p |- J e. Haus $=
      ( cabs cmin ccom cc cxmt cfv wcel cha cnxmet cnfldtopn methaus ax-mp ) CD
      EZFGHIAJIKOAFABLMN $.
  $}

  $( The underlying set of the standard topology on the complex numbers is the
     set of complex numbers.  (Contributed by Glauco Siliprandi,
     11-Dec-2019.) $)
  unicntop $p |- CC = U. ( TopOpen ` CCfld ) $=
    ( cc ccnfld ctopn cfv eqid cnfldtopon toponunii ) ABCDZHHEFG $.

  $( The set of complex numbers is open with respect to the standard topology
     on complex numbers.  (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
  cnopn $p |- CC e. ( TopOpen ` CCfld ) $=
    ( cc ccnfld ctopn cfv cuni unicntop ctop wcel wss eqid cnfldtop ssid uniopn
    mp2an eqeltri ) ABCDZEZPFPGHPPIQPHPPJKPLPPMNO $.

  $( The ring of integers is a normed ring.  (Contributed by AV,
     13-Jun-2019.) $)
  zringnrg $p |- ZZring e. NrmRing $=
    ( ccnfld cnrg wcel cz csubrg cfv zring cnnrg zsubrg df-zring subrgnrg mp2an
    ) ABCDAEFCGBCHIDAGJKL $.

  ${
    $d r x y z D $.  $d x A $.  $d x B $.
    remet.1 $e |- D = ( ( abs o. - ) |` ( RR X. RR ) ) $.
    $( Value of the distance function of the metric space of real numbers.
       (Contributed by NM, 16-May-2007.) $)
    remetdval $p |- ( ( A e. RR /\ B e. RR ) ->
                  ( A D B ) = ( abs ` ( A - B ) ) ) $=
      ( cr wcel wa co cop cabs cmin ccom cxp cres cfv df-ov fveq1i wceq cc recn
      eqtri opelxpi fvres syl eqid cnmetdval syl2an syl5eqr eqtrd syl5eq ) AEFZ
      BEFZGZABCHZABIZJKLZEEMZNZOZABKHJOZUNUOCOUSABCPUOCURDQUAUMUSUOUPOZUTUMUOUQ
      FUSVARABEEUBUOUQUPUCUDUMVAABUPHZUTABUPPUKASFBSFVBUTRULATBTABUPUPUEUFUGUHU
      IUJ $.

    $( The absolute value metric determines a metric space on the reals.
       (Contributed by NM, 10-Feb-2007.) $)
    remet $p |- D e. ( Met ` RR ) $=
      ( cabs cmin ccom cr cxp cres cme cfv cc wss cnmet ax-resscn metres2 mp2an
      wcel eqeltri ) ACDEZFFGHZFIJZBSKIJQFKLTUAQMNSFKOPR $.

    $( The absolute value metric is an extended metric.  (Contributed by Mario
       Carneiro, 28-Aug-2015.) $)
    rexmet $p |- D e. ( *Met ` RR ) $=
      ( cr cme cfv wcel cxmt remet metxmet ax-mp ) ACDEFACGEFABHACIJ $.

    $( A ball in terms of an open interval of reals.  (Contributed by NM,
       18-May-2007.)  (Revised by Mario Carneiro, 13-Nov-2013.) $)
    bl2ioo $p |- ( ( A e. RR /\ B e. RR ) ->
                   ( A ( ball ` D ) B ) = ( ( A - B ) (,) ( A + B ) ) ) $=
      ( vx cr wcel wa cfv co cmin clt wbr cabs wb cc recn syl2an cxr rexr caddc
      cbl cioo cv w3a remetdval wceq abssub eqtrd breq1d adantlr absdiflt 3expb
      ancoms bitrd pm5.32da 3anass syl6bbr rexmet mp3an1 sylan2 resubcl readdcl
      cxmt elbl elioo2 syl2anc 3bitr4d eqrdv ) AFGZBFGZHZEABCUBIJZABKJZABUAJZUC
      JZVLEUDZFGZAVQCJZBLMZHZVRVNVQLMZVQVOLMZUEZVQVMGZVQVPGZVLWAVRWBWCHZHWDVLVR
      VTWGVLVRHVTVQAKJNIZBLMZWGVJVRVTWIOVKVJVRHZVSWHBLWJVSAVQKJNIZWHAVQCDUFVJAP
      GVQPGWKWHUGVRAQVQQAVQUHRUIUJUKVRVLWIWGOZVRVJVKWLVQABULUMUNUOUPVRWBWCUQURV
      KVJBSGZWEWAOZBTCFVDIGVJWMWNCDUSVQCABFVEUTVAVLVNFGZVOFGZWFWDOZABVBABVCWOVN
      SGVOSGWQWPVNTVOTVNVOVQVFRVGVHVI $.

    $( An open interval of reals in terms of a ball.  (Contributed by NM,
       18-May-2007.)  (Revised by Mario Carneiro, 28-Aug-2015.) $)
    ioo2bl $p |- ( ( A e. RR /\ B e. RR ) -> ( A (,) B ) =
     ( ( ( A + B ) / 2 ) ( ball ` D ) ( ( B - A ) / 2 ) ) ) $=
      ( cr wcel wa caddc co c2 cdiv cmin cioo wceq ancoms rehalfcld recn oveq1d
      cc syl2anr cbl cfv readdcl resubcl bl2ioo addcom halfaddsub simprd simpld
      syl2anc oveq12d 3eqtr3rd ) AEFZBEFZGZBAHIZJKIZBALIZJKIZCUAUBZIZUQUSLIZUQU
      SHIZMIZABHIZJKIZUSUTIABMIUOUQEFUSEFVAVDNUOUPUNUMUPEFBAUCOPUOURUNUMUREFBAU
      DOPUQUSCDUEUJUOUQVFUSUTUOUPVEJKUNBSFZASFZUPVENUMBQZAQZBAUFTRRUOVBAVCBMUOV
      CBNZVBANZUNVGVHVKVLGUMVIVJBAUGTZUHUOVKVLVMUIUKUL $.

    $( An open interval of reals in terms of a ball.  (Contributed by Mario
       Carneiro, 14-Nov-2013.) $)
    ioo2blex $p |- ( ( A e. RR /\ B e. RR ) ->
                     ( A (,) B ) e. ran ( ball ` D ) ) $=
      ( cr wcel wa cioo co caddc cdiv cmin cbl cfv crn ioo2bl readdcl rehalfcld
      c2 cxr resubcl ancoms rexrd cxmt rexmet blelrn mp3an1 syl2anc eqeltrd ) A
      EFZBEFZGZABHIABJIZSKIZBALIZSKIZCMNZIZUQOZABCDPULUNEFZUPTFZURUSFZULUMABQRU
      LUPULUOUKUJUOEFBAUAUBRUCCEUDNFUTVAVBCDUECUNUPEUFUGUHUI $.

    $( The balls of the standard real metric space are included in the open
       real intervals.  (Contributed by NM, 8-May-2007.)  (Revised by Mario
       Carneiro, 13-Nov-2013.) $)
    blssioo $p |- ran ( ball ` D ) C_ ran (,) $=
      ( vz vy vr cfv crn cioo cv wcel co wceq cxr cr ax-mp wa cpnf cmnf c0 cc0
      cbl wrex cxmt rexmet blrn w3o elxr cmin caddc bl2ioo resubcl readdcl rexr
      wb cxp wfn cpw wf ioof ffn fnovrn mp3an1 syl2an syl2anc eqeltrd oveq2 cme
      remet blpnf sylan9eqr ioomax ioorebas eqeltrri syl6eqel clt wbr wn nltmnf
      mpan 0xr mnfxr xbln0 mp3an13 necon1bbid mpbii iooid 3jaodan sylan2b eleq1
      wne syl5ibrcom rexlimivv sylbi ssriv ) CAUAFZGZHGZCIZWPJZWRDIZEIZWOKZLZEM
      UBDNUBZWRWQJZANUCFJZWSXDUNABUDZDWRANEUEOXCXEDENMWTNJZXAMJZPXEXCXBWQJZXIXH
      XANJZXAQLZXARLZUFXJXAUGXHXKXJXLXMXHXKPZXBWTXAUHKZWTXAUIKZHKZWQWTXAABUJXNX
      ONJZXPNJZXQWQJZWTXAUKWTXAULXRXOMJZXPMJZXTXSXOUMXPUMHMMUOZUPZYAYBXTYCNUQZH
      URYDUSYCYEHUTOMMXOXPHVAVBVCVDVEXHXLPXBNWQXLXHXBWTQWOKZNXAQWTWOVFANVGFJXHY
      FNLABVHAWTNVIVSVJRQHKNWQVKRQVLVMVNXHXMPXBSWQXMXHXBWTRWOKZSXARWTWOVFXHTRVO
      VPZVQZYGSLTMJYIVTTVROXHYHYGSXFXHRMJYGSWJYHUNXGWAAWTRNWBWCWDWEVJTTHKSWQTWF
      TTVLVMVNWGWHWRXBWQWIWKWLWMWN $.

    ${
      $d a b v x y z $.  $d a b x y z D $.  $d v J $.
      tgioo.2 $e |- J = ( MetOpen ` D ) $.
      $( The topology generated by open intervals of reals is the same as the
         open sets of the standard metric space on the reals.  (Contributed by
         NM, 7-May-2007.)  (Revised by Mario Carneiro, 13-Nov-2013.) $)
      tgioo $p |- ( topGen ` ran (,) ) = J $=
        ( vz cioo cr wcel wceq wss cv co wrex wa c1 cxr syl2anc syl wbr cmnf vv
        vx vy va vb cbl cfv crn ctg cxmt rexmet mopnval ax-mp blssioo wral cuni
        crp elssuni unirnioo syl6sseqr cin ctb retopbas simpl sselda cmin caddc
        a1i 1re bl2ioo mpan2 peano2rem rexrd peano2re cxp wfn cpw wf ffn fnovrn
        mp3an1 eqeltrd simpr 1rp blcntr mp3an13 elind basis2 syl22anc wb ovelrn
        ioof wi eleq2 sseq1 anbi12d cle cif inss2 adantl elioore adantr sseqtrd
        sstr dfss sylib eliooxr jca iooin eqtrd mnfxr simpld ifcld simprd mnflt
        clt xrmax2 xrltletrd eleqtrd wne ne0i ioon0 syl5ib mpcom xrre2 syl32anc
        c0 mnfle xrlelttrd xrmin2 ioo2blex inss1 rspcev syl12anc blssex sylancr
        xrre mpbid syl6bi rexlimivv sylanb rexlimiva ralrimiva elmopn2 sylanbrc
        imp ssriv sseqtri 2basgen mp2an eqtr2i ) BAUFUGZUHZUIUGZFUHZUIUGZAGUJUG
        HZBUUNIACUKZABGDULUMZUUMUUOJUUOUUNJUUNUUPIACUNUUOBUUNUAUUOBUAKZUUOHZUUT
        GJZUBKZUCKUULLUUTJUCUQMZUBUUTUOZUUTBHZUVAUUTUUOUPGUUTUUOURUSUTZUVAUVDUB
        UUTUVAUVCUUTHZNZUVCEKZHZUVJUUTUVCOUULLZVAZJZNZEUUOMZUVDUVIUUOVBHZUVAUVL
        UUOHZUVCUVMHUVPUVQUVIVCVHUVAUVHVDUVIUVCGHZUVRUVAUUTGUVCUVGVEZUVSUVLUVCO
        VFLZUVCOVGLZFLZUUOUVSOGHUVLUWCIZVIUVCOACVJVKZUVSUWAPHZUWBPHZUWCUUOHZUVS
        UWAUVCVLZVMZUVSUWBUVCVNZVMZFPPVOZVPZUWFUWGUWHUWMGVQZFVRUWNWLUWMUWOFVSUM
        ZPPUWAUWBFVTWAQWBRUVIUUTUVLUVCUVAUVHWCUVIUVSUVCUVLHZUVTUUQUVSOUQHUWQUUR
        WDAUVCOGWEWFRWGEUVCUUOUUTUVLWHWIUVOUVDEUUOUVJUUOHZUVJUDKZUEKZFLZIZUEPMU
        DPMZUVOUVDUWNUWRUXCWJUWPUDUEPPUVJFWKUMUXCUVOUVDUXBUVOUVDWMZUDUEPPUXBUXD
        WMUWSPHZUWTPHZNZUXBUVOUVCUXAHZUXAUVMJZNZUVDUXBUVKUXHUVNUXIUVJUXAUVCWNZU
        VJUXAUVMWOWPUXJUVKUVJUUTJZNZEUUMMZUVDUXJUXAUUMHUXHUXAUUTJZUXNUXJUXAUWSU
        WAWQSZUWAUWSWRZUWTUWBWQSZUWTUWBWRZFLZUUMUXJUXAUXAUWCVAZUXTUXJUXAUWCJUXA
        UYAIUXJUXAUVLUWCUXIUXAUVLJZUXHUXIUVMUVLJUYBUUTUVLWSUXAUVMUVLXDVKWTUXJUV
        SUWDUXHUVSUXIUVCUWSUWTXAZXBZUWERXCUXAUWCXEXFUXHUYAUXTIZUXIUXHUXGUWFUWGN
        ZUYEUVCUWSUWTXGZUXHUVSUYFUYCUVSUWFUWGUWJUWLXHRUWSUWTUWAUWBXIQXBXJZUXJUX
        QGHZUXSGHZUXTUUMHUXJTPHZUXQPHZUXSPHZTUXQXPSUXQUXSXPSZUYIUYKUXJXKVHZUXJU
        XPUWAUWSPUXJUVSUWFUYDUWJRZUXJUXEUXFUXHUXGUXIUYGXBZXLZXMZUXJUXRUWTUWBPUX
        JUXEUXFUYQXNZUXJUWBUXJUVSUWBGHZUYDUWKRZVMZXMZUXJTUWAUXQUYOUYPUYSUXJUWAG
        HZTUWAXPSUXHVUEUXIUXHUVSVUEUYCUWIRXBUWAXORUXJUXEUWFUWAUXQWQSUYRUYPUWSUW
        AXQQXRUXJUVCUXTHZUYNUXJUVCUXAUXTUXHUXIVDZUYHXSUYLUYMNZVUFUYNUVCUXQUXSXG
        VUFUXTYGXTVUHUYNUXTUVCYAUXQUXSYBYCYDRZTUXQUXSYEYFUXJUYMVUATUXSXPSUXSUWB
        WQSZUYJVUDVUBUXJTUXQUXSUYOUYSVUDUXJUYLTUXQWQSUYSUXQYHRVUIYIUXJUXFUWGVUJ
        UYTVUCUWTUWBYJQUXSUWBYQWIUXQUXSACYKQWBVUGUXIUXOUXHUXIUVMUUTJUXOUUTUVLYL
        UXAUVMUUTXDVKWTUXMUXHUXONEUXAUUMUXBUVKUXHUXLUXOUXKUVJUXAUUTWOWPYMYNUXJU
        UQUVSUXNUVDWJUURUYDEUUTAUVCGUCYOYPYRYSVHYTUUFUUAUUBRUUCUUQUVFUVBUVENWJU
        URUBUCUUTABGDUUDUMUUEUUGUUSUUHUUMUUOUUIUUJUUK $.

      $( ` QQ ` is dense in ` RR ` .  (Contributed by NM, 24-Aug-2007.) $)
      qdensere2 $p |- ( ( cls ` J ) ` QQ ) = RR $=
        ( cq cioo crn ctg cfv ccl cr tgioo fveq2i fveq1i qdensere eqtr3i ) EFGH
        IZJIZIEBJIZIKERSQBJABCDLMNOP $.
    $}
  $}

  ${
    blcvx.s $e |- S = ( P ( ball ` ( abs o. - ) ) R ) $.
    $( An open ball in the complex numbers is a convex set.  (Contributed by
       Mario Carneiro, 12-Feb-2015.)  (Revised by Mario Carneiro,
       8-Sep-2015.) $)
    blcvx $p |- ( ( ( P e. CC /\ R e. RR* ) /\
        ( A e. S /\ B e. S /\ T e. ( 0 [,] 1 ) ) ) ->
      ( ( T x. A ) + ( ( 1 - T ) x. B ) ) e. S ) $=
      ( cc wcel wa cc0 c1 co cmul cmin cabs clt wbr cr adantr cxr cicc w3a ccom
      caddc cbl cfv cle simpr3 0re 1re elicc2i sylib simp1d recnd syl6eleq cxmt
      simpr1 cnxmet a1i simpll simplr elbl syl3anc mpbid simpld resubcl sylancr
      wb mulcld simpr2 addcld wceq eqid cnmetdval syl2anc subdid oveq12d ax-1cn
      addsub4d pncan3 sylancl oveq1d adddird mulid2 3eqtr3d 3eqtr2d fveq2d cpnf
      ad2antrr eqtr4d subcld abscld readdcld simpr abstrid oveq1 mul02d abs00bd
      sylan9eqr oveq2 syl6eq mulid2d addid2d simprd eqbrtrd adantlr wne absmuld
      simp2d absidd eqbrtrrd leltned biimpar ltmul2 syl112anc simp3d abssubge0d
      1m0e1 eqtrd subge0 mpbird jca ltle sylan lemul2a syl31anc remulcl ltleadd
      wi mpd syl22anc mp2and breqtrd pm2.61dane lelttrd ltpnf syl breqtrrd 0xr
      cmnf rexrd absge0d xrlelttrd xrltle ge0nemnf mpjaodan mpbir2and syl6eleqr
      wo xrnemnf ) CHIZDUAIZJZAEIZBEIZFKLUBMIZUCZJZFANMZLFOMZBNMZUEMZCDPOUDZUFU
      GMZEUUSUVCUVEIZUVCHIZCUVCUVDMZDQRZUUSUUTUVBUUSFAUUSFUUSFSIZKFUHRZFLUHRZUU
      SUUQUVJUVKUVLUCUUNUUOUUPUUQUIKLFUJUKULUMZUNZUOZUUSAHIZCAUVDMZDQRZUUSAUVEI
      ZUVPUVRJZUUSAEUVEUUNUUOUUPUUQURGUPUUSUVDHUQUGIZUULUUMUVSUVTVIUWAUUSUSUTZU
      ULUUMUURVAZUULUUMUURVBZAUVDCDHVCVDVEZVFZVJZUUSUVABUUSUVAUUSLSIZUVJUVASIZU
      KUVNLFVGVHZUOZUUSBHIZCBUVDMZDQRZUUSBUVEIZUWLUWNJZUUSBEUVEUUNUUOUUPUUQVKGU
      PUUSUWAUULUUMUWOUWPVIUWBUWCUWDBUVDCDHVCVDVEZVFZVJZVLZUUSUVHFCAOMZNMZUVACB
      OMZNMZUEMZPUGZDQUUSUVHCUVCOMZPUGZUXFUUSUULUVGUVHUXHVMUWCUWTCUVCUVDUVDVNZV
      OVPUUSUXEUXGPUUSUXEFCNMZUUTOMZUVACNMZUVBOMZUEMUXJUXLUEMZUVCOMUXGUUSUXBUXK
      UXDUXMUEUUSFCAUVOUWCUWFVQUUSUVACBUWKUWCUWRVQVRUUSUXJUXLUUTUVBUUSFCUVOUWCV
      JUUSUVACUWKUWCVJUWGUWSVTUUSUXNCUVCOUUSFUVAUEMZCNMLCNMZUXNCUUSUXOLCNUUSFHI
      ZLHIUXOLVMUVOVSFLWAWBZWCUUSFUVACUVOUWKUWCWDUULUXPCVMUUMUURCWEWJWFWCWGWHWK
      UUSDSIZUXFDQRDWIVMZUUSUXSJZUXFUXBPUGZUXDPUGZUEMZDUUSUXFSIZUXSUUSUXEUUSUXB
      UXDUUSFUXAUVOUUSCAUWCUWFWLZVJZUUSUVAUXCUWKUUSCBUWCUWRWLZVJZVLWMZTUUSUYDSI
      UXSUUSUYBUYCUUSUXBUYGWMZUUSUXDUYIWMZWNTUUSUXSWOZUUSUXFUYDUHRUXSUUSUXBUXDU
      YGUYIWPTUYAUYDDQRZFKUUSFKVMZUYNUXSUUSUYOJZUYDKUXCPUGZUEMZDQUYPUYBKUYCUYQU
      EUYPUXBUYOUUSUXBKUXANMKFKUXANWQUUSUXAUYFWRWTWSUYPUXDUXCPUYOUUSUXDLUXCNMUX
      CUYOUVALUXCNUYOUVALKOMLFKLOXAXSXBWCUUSUXCUYHXCWTWHVRUUSUYRDQRUYOUUSUYRUWM
      DQUUSUYRUYQUWMUUSUYQUUSUYQUUSUXCUYHWMZUOXDUUSUULUWLUWMUYQVMUWCUWRCBUVDUXI
      VOVPZWKUUSUWLUWNUWQXEZXFTXFXGUYAFKXHZJZUYDFDNMZUVADNMZUEMZDQVUCUYBVUDQRZU
      YCVUEUHRZUYDVUFQRZVUCUYBFUXAPUGZNMZVUDQUUSUYBVUKVMUXSVUBUUSUYBFPUGZVUJNMV
      UKUUSFUXAUVOUYFXIUUSVULFVUJNUUSFUVNUUSUVJUVKUVLUVMXJZXKWCXTWJVUCVUJDQRZVU
      KVUDQRZUUSVUNUXSVUBUUSUVQVUJDQUUSUULUVPUVQVUJVMUWCUWFCAUVDUXIVOVPUUSUVPUV
      RUWEXEXLZWJVUCVUJSIZUXSUVJKFQRZVUNVUOVIUUSVUQUXSVUBUUSUXAUYFWMZWJUUSUXSVU
      BVBUUSUVJUXSVUBUVNWJUUSVUBVURUXSUUSVURVUBUUSKFKSIUUSUJUTUVNVUMXMXNXGVUJDF
      XOXPVEXFUYAVUHVUBUYAUYCUVAUYQNMZVUEUHUUSUYCVUTVMUXSUUSUYCUVAPUGZUYQNMVUTU
      USUVAUXCUWKUYHXIUUSVVAUVAUYQNUUSFLUVNUWHUUSUKUTUUSUVJUVKUVLUVMXQZXRWCXTTU
      YAUYQSIZUXSUWIKUVAUHRZJZUYQDUHRZVUTVUEUHRUUSVVCUXSUYSTUYMUUSVVEUXSUUSUWIV
      VDUWJUUSVVDUVLVVBUUSUWHUVJVVDUVLVIUKUVNLFYAVHYBYCTUYAUYQDQRZVVFUUSVVGUXSU
      USUWMUYQDQUYTVUAXLTUUSVVCUXSVVGVVFYJUYSUYQDYDYEYKUYQDUVAYFYGXFTUYAVUGVUHJ
      VUIYJZVUBUYAUYBSIZUYCSIZVUDSIZVUESIZVVHUUSVVIUXSUYKTUUSVVJUXSUYLTUUSUVJUX
      SVVKUVNFDYHYEUUSUWIUXSVVLUWJUVADYHYEUYBUYCVUDVUEYIYLTYMUYAVUFDVMVUBUYAUXO
      DNMZLDNMZVUFDUUSVVMVVNVMUXSUUSUXOLDNUXRWCTUYAFUVADUUSUXQUXSUVOTUUSUVAHIUX
      SUWKTUYADUYMUOZWDUYADVVOXCWFTYNYOYPUUSUXTJZUXFWIDQVVPUYEUXFWIQRUUSUYEUXTU
      YJTUXFYQYRUUSUXTWOYSUUSUUMDUUAXHZJUXSUXTUUJUUSUUMVVQUWDUUSUUMKDUHRZVVQUWD
      UUSKDQRZVVRUUSKVUJDKUAIZUUSYTUTUUSVUJVUSUUBUWDUUSUXAUYFUUCVUPUUDUUSVVTUUM
      VVSVVRYJYTUWDKDUUEVHYKDUUFVPYCDUUKUMUUGXFUUSUWAUULUUMUVFUVGUVIJVIUWBUWCUW
      DUVCUVDCDHVCVDUUHGUUI $.
  $}

  ${
    $d u v w x y z $.
    $( The standard topology on the reals is Hausdorff.  (Contributed by NM,
       8-Mar-2007.) $)
    rehaus $p |- ( topGen ` ran (,) ) e. Haus $=
      ( cabs cmin ccom cr cxp cres cxmt cfv wcel cioo crn ctg eqid rexmet cmopn
      cha tgioo methaus ax-mp ) ABCDDEFZDGHIJKLHZPITTMZNTUADTTOHZUBUCMQRS $.

    tgqioo.1 $e |- Q = ( topGen ` ( (,) " ( QQ X. QQ ) ) ) $.
    $( The topology generated by open intervals of reals with rational
       endpoints is the same as the open sets of the standard metric space on
       the reals.  In particular, this proves that the standard topology on the
       reals is second-countable.  (Contributed by Mario Carneiro,
       17-Jun-2014.) $)
    tgqioo $p |- ( topGen ` ran (,) ) = Q $=
      ( vx vy vz vw vu vv cioo cq wss cxr cv wcel ax-mp wa wrex clt wbr syl2anc
      cxp cima ctg cfv crn wceq imassrn wf wfn co wral cr cpw ffn simpll elioo1
      w3a biimpa simp1d simp2d qbtwnxr syl3anc simplr simp3d reeanv cop opelxpi
      ioof df-ov 3ad2ant2 wfun cdm wi ffun qssre ressxr sstri xpss12 mp2an fdmi
      sseqtr4i funfvima2 syl syl5eqel 3ad2ant1 simp3lr simp3rl wb simp2l sseldi
      simp2r mpbir3and cle simp3ll xrltle mpd iooss1 simp3rr iooss2 sstrd eleq2
      sseq1 anbi12d rspcev syl12anc 3exp rexlimdvv syl5bir mp2and ralrimiva ctb
      qtopbas eltg2b sylibr rgen2a ffnov mpbir2an frn 2basgen eqtr2i ) AIJJUAZU
      BZUCUDZIUEZUCUDZBYBYDKYDYCKZYCYEUFIYAUGLLUAZYCIUHZYFYHIYGUIZCMZDMZIUJZYCN
      ZDLUKCLUKYGULUMZIUHZYIVHYGYNIUNOYMCDLYJLNZYKLNZPZEMZFMZNZYTYLKZPZFYBQZEYL
      UKZYMYRUUDEYLYRYSYLNZPZYJGMZRSZUUHYSRSZPZGJQZYSHMZRSZUUMYKRSZPZHJQZUUDUUG
      YPYSLNZYJYSRSZUULYPYQUUFUOZUUGUURUUSYSYKRSZYRUUFUURUUSUVAUQYJYKYSUPURZUSZ
      UUGUURUUSUVAUVBUTGYJYSVAVBUUGUURYQUVAUUQUVCYPYQUUFVCZUUGUURUUSUVAUVBVDHYS
      YKVAVBUULUUQPUUKUUPPZHJQGJQUUGUUDUUKUUPGHJJVEUUGUVEUUDGHJJUUGUUHJNZUUMJNZ
      PZUVEUUDUUGUVHUVEUQZUUHUUMIUJZYBNYSUVJNZUVJYLKZUUDUVIUVJUUHUUMVFZIUDZYBUU
      HUUMIVIUVIUVMYANZUVNYBNZUVHUUGUVOUVEUUHUUMJJVGVJIVKZYAIVLZKUVOUVPVMYOUVQV
      HYGYNIVNOYAYGUVRJLKZUVSYAYGKJULLVOVPVQZUVTJLJLVRVSYGYNIVHVTWAYAUVMIWBVSWC
      WDUVIUVKUURUUJUUNUUGUVHUURUVEUVCWEUUIUUJUUPUUGUVHWFUUNUUOUUKUUGUVHWGUVIUU
      HLNZUUMLNZUVKUURUUJUUNUQWHUVIJLUUHUVTUUGUVFUVGUVEWIWJZUVIJLUUMUVTUUGUVFUV
      GUVEWKWJZUUHUUMYSUPTWLUVIUVJYJUUMIUJZYLUVIYPYJUUHWMSZUVJUWEKUUGUVHYPUVEUU
      TWEZUVIUUIUWFUUIUUJUUPUUGUVHWNUVIYPUWAUUIUWFVMUWGUWCYJUUHWOTWPYJUUHUUMWQT
      UVIYQUUMYKWMSZUWEYLKUUGUVHYQUVEUVDWEZUVIUUOUWHUUNUUOUUKUUGUVHWRUVIUWBYQUU
      OUWHVMUWDUWIUUMYKWOTWPYJUUMYKWSTWTUUCUVKUVLPFUVJYBYTUVJUFUUAUVKUUBUVLYTUV
      JYSXAYTUVJYLXBXCXDXEXFXGXHXIXJYBXKNYMUUEWHXLEFYLYBXKXMOXNXOCDLLYCIXPXQYGY
      CIXROYBYDXSVSXT $.
  $}

  $( The standard topology on the reals is second-countable.  (Contributed by
     Mario Carneiro, 21-Mar-2015.) $)
  re2ndc $p |- ( topGen ` ran (,) ) e. 2ndc $=
    ( cioo ctg cfv cq cxp c2ndc wcel com cdom wbr cen cdm cn qnnen mp2an nnenom
    entri wss cxr cr crn cima eqid tgqioo ctb qtopbas ccrd cres wfo con0 omelon
    xpen xpnnen entr2i isnumi wfun wf ioof ffun ax-mp qssre ressxr sstri xpss12
    cpw fdmi sseqtr4i fores fodomnum mp2 domentr 2ndci eqeltri ) AUABCADDEZUBZB
    CZFVPVPUCUDVOUEGVOHIJZVPFGUFVOVNIJZVNHKJVQVNUGLGZVNVOAVNUHZUIZVRHUJGHVNKJVS
    UKVNMHVNMMEZMDMKJZWCVNWBKJNNDMDMULOUMQZPUNHVNUOOAUPZVNALZRWASSEZTVEZAUQWEUR
    WGWHAUSUTVNWGWFDSRZWIVNWGRDTSVAVBVCZWJDSDSVDOWGWHAURVFVGVNAVHOVNVOVTVIVJVNM
    HWDPQVOVNHVKOVOVLOVM $.

  ${
    resubmet.1 $e |- R = ( topGen ` ran (,) ) $.
    resubmet.2 $e |- J = ( MetOpen ` ( ( abs o. - ) |` ( A X. A ) ) ) $.
    $( The subspace topology induced by a subset of the reals.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 13-Aug-2014.) $)
    resubmet $p |- ( A C_ RR -> J = ( R |`t A ) ) $=
      ( wss cabs cmin ccom cxp cres cmopn cfv crest xpss12 anidms resabs1d eqid
      cr co fveq2d syl6reqr cxmt wcel wceq rexmet cioo crn ctg tgioo eqtri mpan
      metrest eqtr4d ) ASFZCGHIZSSJZKZAAJZKZLMZBANTZUOVAUPUSKZLMCUOUTVCLUOUPUSU
      QUOUSUQFASASOPQUAEUBURSUCMUDUOVBVAUEURURRZUFURUTBVASAUTRBUGUHUIMURLMZDURV
      EVDVERUJUKVARUMULUN $.
  $}

  ${
    tgioo2.1 $e |- J = ( TopOpen ` CCfld ) $.
    $( The standard topology on the reals is a subspace of the complex metric
       topology.  (Contributed by Mario Carneiro, 13-Aug-2014.) $)
    tgioo2 $p |- ( topGen ` ran (,) ) = ( J |`t RR ) $=
      ( cabs cmin ccom cr cxp cres crest co eqid cxmt cfv wcel wss cmopn cnxmet
      cc wceq ax-resscn cnfldtopn metrest mp2an tgioo ) CDEZFFGHZAFIJZUFKZUERLM
      NFROUGUFPMZSQTUEUFAUIRFUHABUAUIKUBUCUD $.

    rerest.2 $e |- R = ( topGen ` ran (,) ) $.
    $( The subspace topology induced by a subset of the reals.  (Contributed by
       Mario Carneiro, 13-Aug-2014.) $)
    rerest $p |- ( A C_ RR -> ( J |`t A ) = ( R |`t A ) ) $=
      ( cr wss crest co cioo crn ctg cfv tgioo2 eqtri oveq1i ctop wcel cvv wceq
      cnfldtop reex restabs mp3an13 syl5req ) AFGZBAHICFHIZAHIZCAHIZBUGAHBJKLMU
      GECDNOPCQRUFFSRUHUITCDUAUBAFCQSUCUDUE $.
  $}

  ${
    tgioo3.1 $e |- J = ( TopOpen ` RRfld ) $.
    $( The standard topology on the reals is a subspace of the complex metric
       topology.  (Contributed by Mario Carneiro, 13-Aug-2014.)  (Revised by
       Thierry Arnoux, 3-Jul-2019.) $)
    tgioo3 $p |- ( topGen ` ran (,) ) = J $=
      ( ccnfld ctopn cfv cr crest co cress cioo crn eqid resstopn tgioo2 crefld
      ctg df-refld fveq2i eqtri 3eqtr4i ) CDEZFGHCFIHZDEZJKPEAFUBUACUBLUALZMUAU
      DNAODEUCBOUBDQRST $.
  $}

  ${
    $d a b c u v x y $.
    xrtgioo.1 $e |- J = ( ( ordTop ` <_ ) |`t RR ) $.
    $( The topology on the extended reals coincides with the standard topology
       on the reals, when restricted to ` RR ` .  (Contributed by Mario
       Carneiro, 3-Sep-2015.) $)
    xrtgioo $p |- ( topGen ` ran (,) ) = J $=
      ( vx vy vv cioo cfv cr co wcel wss cxr wceq wa wb cpnf cmnf cvv clt wbr
      vu va vb vc crn ctg cle cordt crest cv ctop letop cxp wf wfn wral cpw ffn
      ioof ax-mp iooordt rgen2w ffnov mpbir2an mp2an tgtop sseqtri sseli ctopon
      frn tgss retopon toponss mpan reordt restopn2 sylanbrc cioc cmpt cico cun
      ssriv eqid leordtval oveq1i ctb eqeltrri tgclb mpbir reex tgrest retopbas
      eqtr4i cin wrex elrest elun vex elrnmpt w3a simpl pnfxr a1i adantl df-ioc
      rexr elixx3g baib syl3anc pnfge syl biantrud ltpnf 3bitr2d pm5.32da ancom
      wo bitri 3anass 3bitr4g elioo2 mpan2 bitr4d eqrdv ioorebas syl6eqel ineq1
      elin eleq1d syl5ibrcom sylbi mnfxr df-ico mnfle biantrurd mnflt jaoi cuni
      rexlimiv elssuni unirnioo syl6sseqr df-ss sylib id eqeltrd eleq1 eqsstri
      eqssi ) FUEZUFGZUGUHGZHUIIZAUUKUUMCUUKUUMCUJZUUKJZUUNUULJZUUNHKZUUNUUMJZU
      UKUULUUNUUKUULUFGZUULUULUKJZUUJUULKZUUKUUSKULLLUMZUULFUNZUVAUVCFUVBUOZUUN
      DUJZFIUULJZDLUPCLUPUVBHUQZFUNUVDUSUVBUVGFURUTUVFCDLLUUNUVEVAVBCDLLUULFVCV
      DUVBUULFVJUTUUJUULUKVKVEUUTUUSUULMULUULVFUTVGVHUUKHVIGJUUOUUQVLUUNUUKHVMV
      NUUTHUULJUURUUPUUQNOULVOHUUNUULVPVEVQWBUUMCLUUNPVRIZVSZUEZCLQUUNVTIZVSZUE
      ZWAZUUJWAZHUIIZUFGZUUKUUMUVOUFGZHUIIZUVQUULUVRHUICUVJUVMUUJUVJWCUVMWCUUJW
      CWDZWEUVOWFJZHRJZUVQUVSMUWAUVRUKJUULUVRUKUVTULWGUVOWHWIZWJHUVOWFRWKVEWMUU
      JWFJUVPUUJKUVQUUKKWLUAUVPUUJUAUJZUVPJZUWDEUJZHWNZMZEUVOWOZUWDUUJJZUWAUWBU
      WEUWIOUWCWJEUWDHUVOWFRWPVEUWHUWJEUVOUWFUVOJZUWJUWHUWGUUJJZUWKUWFUVNJZUWFU
      UJJZXQUWLUWFUVNUUJWQUWMUWLUWNUWMUWFUVJJZUWFUVMJZXQUWLUWFUVJUVMWQUWOUWLUWP
      UWOUWFUVHMZCLWOZUWLUWFRJZUWOUWROEWRZCLUVHUWFUVIRUVIWCWSUTUWQUWLCLUUNLJZUW
      LUWQUVHHWNZUUJJUXAUXBUUNPFIZUUJUXADUXBUXCUXAUVEUXBJZUVEHJZUUNUVESTZUVEPST
      ZWTZUVEUXCJZUXAUXEUVEUVHJZNZUXEUXFUXGNZNUXDUXHUXAUXEUXJUXLUXAUXENZUXJUXFU
      VEPUGTZNZUXFUXLUXMUXAPLJZUVELJZUXJUXOOUXAUXEXAZUXPUXMXBXCUXEUXQUXAUVEXFXD
      ZUXJUXAUXPUXQWTUXOUBUCUDUUNPUVESUGVRUBUCUDXEXGXHXIUXMUXNUXFUXMUXQUXNUXSUV
      EXJXKXLUXMUXGUXFUXEUXGUXAUVEXMXDXLXNXOUXDUXJUXENUXKUVEUVHHYHUXJUXEXPXRUXE
      UXFUXGXSXTUXAUXPUXIUXHOXBUUNPUVEYAYBYCYDUUNPYEYFUWQUWGUXBUUJUWFUVHHYGYIYJ
      YSYKUWPUWFUVKMZCLWOZUWLUWSUWPUYAOUWTCLUVKUWFUVLRUVLWCWSUTUXTUWLCLUXAUWLUX
      TUVKHWNZUUJJUXAUYBQUUNFIZUUJUXADUYBUYCUXAUVEUYBJZUXEQUVESTZUVEUUNSTZWTZUV
      EUYCJZUXAUXEUVEUVKJZNZUXEUYEUYFNZNUYDUYGUXAUXEUYIUYKUXMUYIQUVEUGTZUYFNZUY
      FUYKUXMQLJZUXAUXQUYIUYMOUYNUXMYLXCUXRUXSUYIUYNUXAUXQWTUYMUBUCUDQUUNUVEUGS
      VTUBUCUDYMXGXHXIUXMUYLUYFUXMUXQUYLUXSUVEYNXKYOUXMUYEUYFUXEUYEUXAUVEYPXDYO
      XNXOUYDUYIUXENUYJUVEUVKHYHUYIUXEXPXRUXEUYEUYFXSXTUYNUXAUYHUYGOYLQUUNUVEYA
      VNYCYDQUUNYEYFUXTUWGUYBUUJUWFUVKHYGYIYJYSYKYQYKUWNUWGUWFUUJUWNUWFHKUWGUWF
      MUWNUWFUUJYRHUWFUUJYTUUAUUBUWFHUUCUUDUWNUUEUUFYQYKUWDUWGUUJUUGYJYSYKWBUVP
      UUJWFVKVEUUHUUIBWM $.
  $}

  ${
    xrrest.1 $e |- X = ( ordTop ` <_ ) $.
    xrrest.2 $e |- R = ( topGen ` ran (,) ) $.
    $( The subspace topology induced by a subset of the reals.  (Contributed by
       Mario Carneiro, 9-Sep-2015.) $)
    xrrest $p |- ( A C_ RR -> ( X |`t A ) = ( R |`t A ) ) $=
      ( cr wss crest cioo crn ctg cfv cle cordt oveq1i xrtgioo eqtri cvv wcel
      co wceq fvex eqeltri reex restabs mp3an13 syl5req ) AFGZBAHTCFHTZAHTZCAHT
      ZBUIAHBIJKLUIEUICMNLZFHDOPQOCRSUHFRSUJUKUACULRDMNUBUCUDAFCRRUEUFUG $.
  $}

  ${
    xrrest2.1 $e |- J = ( TopOpen ` CCfld ) $.
    xrrest2.2 $e |- X = ( ordTop ` <_ ) $.
    $( The subspace topology induced by a subset of the reals.  (Contributed by
       Mario Carneiro, 9-Sep-2015.) $)
    xrrest2 $p |- ( A C_ RR -> ( J |`t A ) = ( X |`t A ) ) $=
      ( cr wss crest co cioo crn ctg cfv eqid rerest xrrest eqtr4d ) AFGBAHIJKL
      MZAHICAHIARBDRNZOARCESPQ $.
  $}

  ${
    $d r x y z D $.  $d x J $.  $d x P $.  $d x R $.
    xrsxmet.1 $e |- D = ( dist ` RR*s ) $.
    $( The metric on the extended reals is a proper extended metric.
       (Contributed by Mario Carneiro, 4-Sep-2015.) $)
    xrsxmet $p |- D e. ( *Met ` RR* ) $=
      ( vx vy cxr wcel wtru cle wbr cxad co wa cc0 wb cr recnd syl adantr caddc
      wceq vz cxmt cfv cvv xrex a1i cxp wf cv cxne cif id xnegcl xaddcl syl2anr
      wral sylan2 ifcld rgen2a xrsds fmpt2 mpbi breq2 xsubge0 ancoms biimpar wn
      xrletri orcanai syldan ifbothda xrsdsval breqtrrd adantl biantrud eqeltrd
      weq 0xr xrletri3 sylancl simpr wne simplr 0re syl6eqel xrsdsreclb adantlr
      3expa mpbid simpld simprd cmin rexsub eqeq1d biimpa xneg11 xnegdi syl2anc
      xnegneg oveq2d simpl xaddcom 3eqtrd eqeq12d bitr3d ad2antrr bibi1d ifboth
      xneg0 biidd eqeq1 eqtr3d subeq0d pm2.61dane ex anidms xrleid xnegid oveq1
      iftrued syl5ibrcom impbid 3bitr2d w3a simplrr leidd oveq1d simpll1 oveq12
      vtoclga eqtrd simplrl simpll2 eqeq2 wo oveq12d 3brtr4d syl3anc xrsdsreval
      cabs addid2d eqtr2d 3brtr3d eqeltrrd oveq2 eqtr4d clt xrleloe biorf orcom
      neneqd syl6bb xrltnle con2bid iffalsed 3eqtr4d addid1d simprl pm2.61da2ne
      simpll3 simprr abs3difd abssubd 3adant1 isxmet2d trud ) AEUBUCFGCDUAAEEUD
      FGUEUFEEUGEAUHZGCUIZDUIZHIZUVIUVHUJZJKZUVHUVIUJZJKZUKZEFZDEUPCEUPUVGUVPCD
      EUVHEFZUVIEFZLZUVJUVLUVNEUVRUVRUVKEFZUVLEFZUVQUVRULUVHUMZUVIUVKUNUOZUVRUV
      QUVMEFZUVNEFUVIUMZUVHUVMUNUQURZUSCDEEUVOEACDABUTVAVBUFUVSMUVHUVIAKZHIZGUV
      SMUVOUWGHUVJMUVLHIZMUVNHIZMUVOHIUVSUVLUVNUVLUVOMHVCUVNUVOMHVCUVSUWIUVJUVR
      UVQUWIUVJNUVIUVHVDVEVFUVSUVJVGZUVIUVHHIZUWJUVSUVJUWLUVHUVIVHVIUVSUWJUWLUV
      HUVIVDVFVJVKUVHUVIABVLZVMZVNUVSUWGMHIZCDVQZNGUVSUWOUWOUWHLZUWGMTZUWPUVSUW
      HUWOUWNVOUVSUWGEFMEFZUWRUWQNUVSUWGUVOEUWMUWFVPVRUWGMVSVTUVSUWRUWPUVSUWRUW
      PUVSUWRLZUWPUVHUVIUWTUWPWAUWTUVHUVIWBZLZUVHUVIUXBUVHUXBUVHOFZUVIOFZUXBUWG
      OFZUXCUXDLZUXBUWGMOUVSUWRUXAWCWDWEUVSUXAUXEUXFNZUWRUVQUVRUXAUXGUVHUVIABWF
      WHWGWIZWJPUXBUVIUXBUXCUXDUXHWKPUXBUVNUVHUVIWLKZMUXBUXFUVNUXITUXHUVHUVIWMQ
      UXBUVOMTZUVNMTZUWTUXJUXAUVSUWRUXJUVSUWGUVOMUWMWNWORUXBUVLMTZUXKNZUXKUXKNZ
      UXJUXKNZUVSUXMUWRUXAUVSUVLUJZMUJZTZUXLUXKUVSUWAUWSUXRUXLNUWCVRUVLMWPVTUVS
      UXPUVNUXQMUVSUXPUVMUVKUJZJKZUVMUVHJKZUVNUVSUVRUVTUXPUXTTUVQUVRWAUVQUVTUVR
      UWBRUVIUVKWQWRUVSUXSUVHUVMJUVQUXSUVHTUVRUVHWSRWTUVSUWDUVQUYAUVNTUVRUWDUVQ
      UWEVNUVQUVRXAUVMUVHXBWRXCUXQMTUVSXIUFXDXEXFUXBUXKXJUVJUXMUXNUXOUVLUVNUVLU
      VOTUXLUXJUXKUVLUVOMXKXGUVNUVOTUXKUXJUXKUVNUVOMXKXGXHWRWIXLXMXNXOUVSUWRUWP
      UVIUVIAKZMTZUVRUYCUVQUVRUYBUVIUVIHIZUVIUVMJKZUYEUKZUYEMUVRUYBUYFTUVIUVIAB
      VLXPUVRUYDUYEUYEUVIXQXTUVIXRXCZVNUWPUWGUYBMUVHUVIUVIAXSZWNYAYBYCVNUVQUVRU
      AUIZEFZYDZUYIUVHAKZOFZUYIUVIAKZOFZLZUWGUYLUYNSKZHIZGUYKUYPLZUYRUYIUVHUYIU
      VIUYSUACVQZLZUYNUYNUWGUYQHVUAUYNUYKUYMUYOUYTYEZYFVUAUYIUVHUVIAUYSUYTWAZYG
      VUAUYQMUYNSKUYNVUAUYLMUYNSVUAUYLUVHUVHAKZMVUAUYIUVHUVHAVUCYGVUAUVQVUDMTZU
      VQUVRUYJUYPUYTYHUYCVUEDUVHEDCVQZUYBVUDMVUFUYBVUDTUVIUVHUVIUVHAYIXPWNUYGYJ
      QYKYGVUAUYNVUAUYNVUBPUUAUUBUUCUYSUADVQZLZUVIUVHAKZVUIUWGUYQHVUHVUIVUHUYLV
      UIOVUHUYIUVIUVHAUYSVUGWAZYGZUYKUYMUYOVUGYLUUDZYFVUHUVQUVRUWGVUITZUVQUVRUY
      JUYPVUGYHUVQUVRUYJUYPVUGYMZUVSVUMUVHUVIUWPVUMUVSUWPUWGUYBVUIUYHUVHUVIUVIA
      UUEUUFVNUVSUXALZUVOUWLUVNUVLUKZUWGVUIUWLUVOUVNTUVOUVLTUVOVUPTVUOUVNUVLUVN
      VUPUVOYNUVLVUPUVOYNVUOUWLLUVJUVLUVNVUOUWLUWKVUOUVJUWLVUOUVJUVHUVIUUGIZUWP
      YOZVUQUWLVGZUVSUVJVURNUXAUVHUVIUUHRVUOUWPVGZVUQVURNVUOUVHUVIUVSUXAWAUUKVU
      TVUQUWPVUQYOVURUWPVUQUUIUWPVUQUUJUULQUVSVUQVUSNUXAUVHUVIUUMRYCZUUNWOUUOVU
      OVUSLUVJUVLUVNVUOUVJVUSVVAVFXTVKUVSUWGUVOTUXAUWMRUVSVUIVUPTZUXAUVRUVQVVBU
      VIUVHABVLVERUUPXNWRVUHUYQVUIMSKVUIVUHUYLVUIUYNMSVUKVUHUYNUYBMVUHUYIUVIUVI
      AVUJYGVUHUVRUYCVUNUYGQYKYPVUHVUIVUHVUIVULPUUQYKYQUYSUYIUVHWBZUYIUVIWBZLZL
      ZUXIYTUCZUVHUYIWLKYTUCZUYIUVIWLKYTUCZSKUWGUYQHVVFUVHUVIUYIVVFUVHVVFUYIOFZ
      UXCVVFUYMVVJUXCLZUYKUYMUYOVVEYLVVFUYJUVQVVCUYMVVKNUVQUVRUYJUYPVVEUUTZUVQU
      VRUYJUYPVVEYHUYSVVCVVDUURUYIUVHABWFYRWIZWKZPZVVFUVIVVFVVJUXDVVFUYOVVJUXDL
      ZUYKUYMUYOVVEYEVVFUYJUVRVVDUYOVVPNVVLUVQUVRUYJUYPVVEYMUYSVVCVVDUVAUYIUVIA
      BWFYRWIZWKZPVVFUYIVVFVVJUXCVVMWJPZUVBVVFUXCUXDUWGVVGTVVNVVRUVHUVIABYSWRVV
      FUYLVVHUYNVVISVVFUYLUYIUVHWLKYTUCZVVHVVFVVKUYLVVTTVVMUYIUVHABYSQVVFUYIUVH
      VVSVVOUVCYKVVFVVPUYNVVITVVQUYIUVIABYSQYPYQUUSUVDUVEUVF $.

    $( The metric on the extended reals coincides with the usual metric on the
       reals.  (Contributed by Mario Carneiro, 4-Sep-2015.) $)
    xrsdsre $p |- ( D |` ( RR X. RR ) ) = ( ( abs o. - ) |` ( RR X. RR ) ) $=
      ( vx vy cr cxp cres cabs cmin wceq cv co wral wcel cfv wfn cxr wss mp2an
      cc ccom wa xrsdsreval ovres eqid remetdval 3eqtr4d rgen2a wb cxmt xrsxmet
      xmetf ffn mp2b rexpssxrxp fnssres cme cnmet metf ax-resscn xpss12 eqfnov2
      wf mpbir ) AEEFZGZHIUAZVEGZJZCKZDKZVFLZVJVKVHLZJZDEMCEMZVNCDEVJENVKENUBVJ
      VKALVJVKILHOVLVMVJVKABUCVJVKEEAUDVJVKVHVHUEUFUGUHVFVEPZVHVEPZVIVOUIAQQFZP
      ZVEVRRVPAQUJONVRQAVCVSABUKAQULVRQAUMUNUOVRVEAUPSVGTTFZPZVEVTRZVQVGTUQONVT
      EVGVCWAURVGTUSVTEVGUMUNETRZWCWBUTUTETETVASVTVEVGUPSCDEEVFVHVBSVD $.

    $( Any ball of the metric of the extended reals centered on an element of
       ` RR ` is entirely contained in ` RR ` .  (Contributed by Mario
       Carneiro, 4-Sep-2015.) $)
    xrsblre $p |- ( ( P e. RR /\ R e. RR* ) -> ( P ( ball ` D ) R ) C_ RR ) $=
      ( vx cr wcel cxr wa cbl cfv co ccnv cima cec wss rexr cvv wb simpr blssec
      cxmt xrsxmet eqid mp3an1 sylan cv wbr simpl elecg sylancr xmeterval ax-mp
      vex w3a simplll eqeltrrd simplr3 simplr1 simplr2 xrsdsreclb syl3anc mpbid
      wceq wne simprd pm2.61dane ex syl5bi sylbid ssrdv sstrd ) BFGZCHGZIZBCAJK
      LZBAMFNZOZFVMBHGZVNVPVRPZBQAHUBKGZVSVNVTADUCZABVQCHVQUDZUAUEUFVOEVRFVOEUG
      ZVRGZBWDVQUHZWDFGZVOWDRGVMWEWFSEUNVMVNUIWDBVQRFUJUKWFVSWDHGZBWDALFGZUOZVO
      WGWAWFWJSWBBWDAVQHWCULUMVOWJWGVOWJIZWGBWDWKBWDVDZIBWDFWKWLTVMVNWJWLUPUQWK
      BWDVEZIZVMWGWNWIVMWGIZVSWHWIVOWMURWNVSWHWMWIWOSVSWHWIVOWMUSVSWHWIVOWMUTWK
      WMTBWDADVAVBVCVFVGVHVIVJVKVL $.

    xrsmopn.1 $e |- J = ( MetOpen ` D ) $.
    $( The metric on the extended reals generates a topology, but this does not
       match the order topology on ` RR* ` ; for example ` { +oo } ` is open in
       the metric topology, but not the order topology.  However, the metric
       topology is finer than the order topology, meaning that all open
       intervals are open in the metric topology.  (Contributed by Mario
       Carneiro, 4-Sep-2015.) $)
    xrsmopn $p |- ( ordTop ` <_ ) C_ J $=
      ( vx vy vr vz cfv cv wcel cxr wss co crp wa cr syl3anc wceq c1 cordt wrex
      cle cbl wral cuni elssuni letopuni syl6sseqr wel cabs cmin ccom cres cxmt
      cxp cin crest eqid rexmet a1i ctop cvv reex elrestr mp3an12 ad2antrr elin
      letop biimpri adantll cioo crn cmopn xrtgioo eqtr3i mopni2 xrsxmet simplr
      ctg tgioo ressxr sseqin2 mpbi syl6eleqr rpxr adantl xrsdsre blres xrsblre
      eqcomi sylan2 df-ss sylib eqtrd sseq1d inss1 mpan2 syl6bi reximdva mpd wn
      sstr 1rp clt wbr wb sselda adantr mp1i w3a simp2 wne cc0 3ad2ant1 simpl3l
      elbl xmetcl 1red xmetge0 simpl3r wi ax-mp xrltle sylancl xrrege0 syl22anc
      simpr xrsdsreclb simpld ex necon1bd simp1r elequ1 syl5ibcom 3expia sylbid
      mpbid syld ssrdv oveq2 sylancr pm2.61dan ralrimiva elmopn2 sylanbrc ssriv
      rspcev ) EUCUAIZBEJZUUIKZUUJLMZFJZGJZAUDIZNZUUJMZGOUBZFUUJUEZUUJBKZUUKUUJ
      UUIUFLUUJUUIUGUHUIZUUKUURFUUJUUKFEUJZPZUUMQKZUURUVCUVDPZUUMUUNUKULUMQQUPZ
      UNZUDINZUUJQUQZMZGOUBZUURUVEUVGQUOIKZUVIUUIQURNZKZUUMUVIKZUVKUVLUVEUVGUVG
      USZUTVAUUKUVNUVBUVDUUIVBKQVCKUUKUVNVIVDUUJQUUIVBVCVEVFVGUVBUVDUVOUUKUVOUV
      BUVDPUUMUUJQVHVJVKGUVIUVGUUMUVMQVLVMVTIUVMUVGVNIZUVMUVMUSVOUVGUVQUVPUVQUS
      WAVPVQRUVEUVJUUQGOUVEUUNOKZPZUVJUUPUVIMZUUQUVSUVHUUPUVIUVSUVHUUPQUQZUUPUV
      SALUOIKZUUMLQUQZKUUNLKZUVHUWASUWBUVSACVRZVAUVSUUMQUWCUVCUVDUVRVSQLMUWCQSW
      BQLWCWDWEUVRUWDUVEUUNWFZWGUVGAUUMUUNLQAUVFUNUVGACWHWKWIRUVSUUPQMZUWAUUPSU
      VDUVRUWGUVCUVRUVDUWDUWGUWFAUUMUUNCWJWLVKUUPQWMWNWOWPUVTUVIUUJMUUQUUJQWQUU
      PUVIUUJXCWRWSWTXAUVCUVDXBZPZTOKZUUMTUUONZUUJMZUURXDUWIHUWKUUJUWIHJZUWKKZU
      WMLKZUUMUWMANZTXEXFZPZHEUJZUWIUWBUUMLKZTLKZUWNUWRXGUWBUWIUWEVAUVCUWTUWHUU
      KUUJLUUMUVAXHZXIUWJUXAUWIXDTWFZXJUWMAUUMTLXQRUVCUWHUWRUWSUVCUWHUWRXKZUWHU
      WSUVCUWHUWRXLUXDUWHUUMUWMSZUWSUXDUVDUUMUWMUXDUUMUWMXMZUVDUXDUXFPZUVDUWMQK
      ZUXGUWPQKZUVDUXHPZUXGUWPLKZTQKXNUWPUCXFZUWPTUCXFZUXIUXGUWBUWTUWOUXKUWBUXG
      UWEVAZUXDUWTUXFUVCUWHUWTUWRUXBXOXIZUWOUWQUVCUWHUXFXPZUUMUWMALXRRZUXGXSUXG
      UWBUWTUWOUXLUXNUXOUXPUUMUWMALXTRUXGUWQUXMUWOUWQUVCUWHUXFYAUXGUXKUXAUWQUXM
      YBUXQUWJUXAXDUXCYCUWPTYDYEXAUWPTYFYGUXGUWTUWOUXFUXIUXJXGUXOUXPUXDUXFYHUUM
      UWMACYIRYRYJYKYLUXDUVBUXEUWSUUKUVBUWHUWRYMFHEYNYOYSXAYPYQYTUUQUWLGTOUUNTS
      UUPUWKUUJUUNTUUMUUOUUAWPUUHUUBUUCUUDUWBUUTUULUUSPXGUWEFGUUJABLDUUEYCUUFUU
      G $.
  $}

  ${
    $d x y J $.
    zcld.1 $e |- J = ( topGen ` ran (,) ) $.
    $( The integers are a closed set in the topology on ` RR ` .  (Contributed
       by Mario Carneiro, 17-Feb-2015.) $)
    zcld $p |- ZZ e. ( Clsd ` J ) $=
      ( vx vy cz cfv wcel cr cv c1 caddc co cioo wa clt wbr wne syl syl2anc cxr
      ccld cdif ciun wrex eliun elioore adantl wn eliooord btwnnz sylan2 eldifd
      3expb rexlimiva cfl eldifi flcld flle eldifn nelne2 necomd zred mpbir2and
      cle ltlend flltp1 w3a wb rexrd peano2re elioo2 mpbir3and id oveq1 oveq12d
      wceq eleq2d rspcev impbii bitri eqriv ctop crn ctg retop eqeltri iooretop
      wral eleqtrri rgenw iunopn mp2an eqeltrri wss cuni uniretop unieqi eqtr4i
      zssre iscld2 mpbir ) EAUAFGZHEUBZAGZCECIZXEJKLZMLZUCZXCADXHXCDIZXHGXIXGGZ
      CEUDZXIXCGZCXIEXGUEXKXLXJXLCEXEEGZXJNXIHEXJXIHGZXMXIXEXFUFUGXJXMXEXIOPZXI
      XFOPZNXIEGUHZXIXEXFUIXMXOXPXQXEXIUJUMUKULUNXLXIUOFZEGZXIXRXRJKLZMLZGZXKXL
      XIXIHEUPZUQZXLYBXNXRXIOPZXIXTOPZYCXLYEXRXIVDPZXIXRQXLXNYGYCXIURRXLXRXIXLX
      SXQXRXIQYDXIHEUSXRXIEUTSVAXLXRXIXLXRYDVBZYCVEVCXLXNYFYCXIVFRXLXRTGXTTGYBX
      NYEYFVGVHXLXRYHVIXLXTXLXRHGXTHGYHXRVJRVIXRXTXIVKSVLXJYBCXREXEXRVPZXGYAXIY
      IXEXRXFXTMYIVMXEXRJKVNVOVQVRSVSVTWAAWBGZXGAGZCEWHXHAGAMWCWDFZWBBWEWFZYKCE
      XGYLAXEXFWGBWIWJCEXGAWKWLWMYJEHWNXBXDVHYMWSEAHHYLWOAWOWPAYLBWQWRWTWLXA $.
  $}

  ${
    $d n r u x y z J $.  $d n r u v S $.
    recld2.1 $e |- J = ( TopOpen ` CCfld ) $.
    $( The real numbers are a closed set in the topology on ` CC ` .
       (Contributed by Mario Carneiro, 17-Feb-2015.) $)
    recld2 $p |- RR e. ( Clsd ` J ) $=
      ( vx vy cr cfv wcel cc wss cabs cmin co crp cim wn cc0 wceq wb wbr wa cbl
      ccld cdif ccom wrex difss eldifi imcld recnd wne eldifn reim0b necon3bbid
      wral syl mpbid absrpcld clt cxmt cxr cnxmet a1i abscld rexrd elbl syl3anc
      cv simprl wi adantr simpr imsubd reim0 adantl oveq2d 3eqtrd fveq2d subcld
      cle subid1d absimle eqbrtrrd lenltd cnmetdval syl2anc breq1d mtbird con2d
      eqid ex impr eldifd sylbid ssrdv oveq2 sseq1d rspcev rgen cnfldtopn ax-mp
      elmopn2 mpbir2an ctop cnfldtop ax-resscn cuni mopnuni iscld2 mp2an mpbir
      ) EAUBFGZHEUCZAGZXMXLHIZCVGZDVGZJKUDZUAFZLZXLIZDMUEZCXLUNZHEUFYACXLXOXLGZ
      XONFZJFZMGXOYEXRLZXLIZYAYCYDYCYDYCXOXOHEUGZUHUIZYCXOEGZOYDPUJXOHEUKYCYJYD
      PYCXOHGZYJYDPQRYHXOULUOUMUPUQYCDYFXLYCXPYFGZXPHGZXOXPXQLZYEURSZTZXPXLGZYC
      XQHUSFGZYKYEUTGYLYPRYRYCVAVBYHYCYEYCYDYIVCVDXPXQXOYEHVEVFYCYPYQYCYPTXPHEY
      CYMYOVHYCYMYOXPEGZOZYCYOYTVIYMYCYSYOYCYSYOOYCYSTZYOXOXPKLZJFZYEURSZUUAYEU
      UCVSSUUDOUUAUUBNFZJFZYEUUCVSUUAUUEYDJUUAUUEYDXPNFZKLYDPKLYDUUAXOXPYCYKYSY
      HVJZUUAXPYCYSVKUIZVLUUAUUGPYDKYSUUGPQYCXPVMVNVOUUAYDYCYDHGYSYIVJZVTVPVQUU
      AUUBHGUUFUUCVSSUUAXOXPUUHUUIVRZUUBWAUOWBUUAYEUUCUUAYDUUJVCUUAUUBUUKVCWCUP
      UUAYNUUCYEURUUAYKYMYNUUCQUUHUUIXOXPXQXQWIWDWEWFWGWJWHVJWKWLWJWMWNXTYGDYEM
      XPYEQXSYFXLXPYEXOXRWOWPWQWEWRYRXMXNYBTRVACDXLXQAHABWSZXAWTXBAXCGEHIXKXMRA
      BXDXEEAHYRHAXFQVAXQAHUULXGWTXHXIXJ $.

    $( The integers are a closed set in the topology on ` CC ` .  (Contributed
       by Mario Carneiro, 17-Feb-2015.) $)
    zcld2 $p |- ZZ e. ( Clsd ` J ) $=
      ( cr ccld cfv wcel cz crest co recld2 cioo crn ctg tgioo2 eqcomi restcldr
      zcld mp2an ) CADEZFGACHIZDEFGSFABJTKLMETABNOQCGAPR $.

    $( The integers are a discrete set in the topology on ` CC ` .
       (Contributed by Mario Carneiro, 19-Sep-2015.) $)
    zdis $p |- ( J |`t ZZ ) = ~P ZZ $=
      ( vx vy vz cz co cv wcel wa c1 cfv cc zcnd cnxmet ctop cvv clt wceq wb ex
      crest cpw restsspw wss wrex wral cabs cmin ccom cbl cin elpwi sselda cxmt
      cxr crp 1rp ax-mp cnfldtopn blopn mp3an13 cnfldtop elrestr mp3an12 blcntr
      rpxr zex 3syl syl elind adantr inss2 simpr zsubcld wbr cc0 eqid cnmetdval
      sseldi syl2anc inss1 elbl2 mpanl12 eqbrtrrd cn0 nn0abscl nn0lt10b subeq0d
      mpbid abs00d simplr eqeltrrd ssrdv eleq2 sseq1 anbi12d syl12anc ralrimiva
      rspcev resttop mp2an eltop2 sylibr ssriv eqssi ) AFUBGZFUCZFAUDCXHXGCHZXH
      IZDHZEHZIZXLXIUEZJZEXGUFZDXIUGZXIXGIZXJXPDXIXJXKXIIZJZXKKUHUIUJZUKLGZFULZ
      XGIZXKYCIZYCXIUEZXPXTXKMIZYBAIZYDXTXKXJXIFXKXIFUMUNZNZYAMUOLIZYGKUPIZYHOK
      UQIZYLURKVGUSZYAXKKAMABUTVAVBAPIZFQIZYHYDABVCZVHYBFAPQVDVEVIXTYBFXKXTYGXK
      YBIZYJYKYGYMYROURYAXKKMVFVBVJYIVKXTEYCXIXTXLYCIZXLXIIXTYSJZXKXLXIYTXKXLXT
      YGYSYJVLZYTXLYTYCFXLYBFVMXTYSVNZVTZNZYTXKXLUIGZYTUUEYTXKXLXTXKFIYSYIVLUUC
      VOZNYTUUEUHLZKRVPZUUGVQSZYTXKXLYAGZUUGKRYTYGXLMIZUUJUUGSUUAUUDXKXLYAYAVRV
      SWAYTXLYBIZUUJKRVPZYTYCYBXLYBFWBUUBVTYTYGUUKUULUUMTZUUAUUDYKYLYGUUKJUUNOY
      NXLYAXKKMWCWDWAWJWEYTUUEFIUUGWFIUUHUUITUUFUUEWGUUGWHVIWJWKWIXJXSYSWLWMUAW
      NXOYEYFJEYCXGXLYCSXMYEXNYFXLYCXKWOXLYCXIWPWQWTWRWSXGPIZXRXQTYOYPUUOYQVHFA
      QXAXBDEXIXGXCUSXDXEXF $.

    $( Every subset of the integers are closed in the topology on ` CC ` .
       (Contributed by Mario Carneiro, 6-Jul-2017.) $)
    sszcld $p |- ( A C_ ZZ -> A e. ( Clsd ` J ) ) $=
      ( cz wss ccld cfv wcel crest co zcld2 id cpw difss zex elpw2 mpbir ctopon
      cdif cc zdis eleqtrri a1i ctop wa wb cnfldtopon zsscn resttopon topontopi
      mp2an toponunii iscld ax-mp sylanbrc restcldr sylancr ) ADEZDBFGZHABDIJZF
      GHZAUSHBCKURURDASZUTHZVAURLVCURVBDMZUTVBVDHVBDEDANVBDOPQBCUAUBUCUTUDHVAUR
      VCUEUFDUTBTRGHDTEUTDRGHBCUGUHDBTUIUKZUJAUTDDUTVEULUMUNUODABUPUQ $.

    ${
      reperflem.2 $e |- ( ( u e. S /\ v e. RR ) -> ( u + v ) e. S ) $.
      reperflem.3 $e |- S C_ CC $.
      $( A subset of the real numbers that is closed under addition with real
         numbers is perfect.  (Contributed by Mario Carneiro, 26-Dec-2016.) $)
      reperflem $p |- ( J |`t S ) e. Perf $=
        ( vn vr co wcel cfv wss cv wne cc cabs crp wb cr crest clp csn cdif cin
        cperf c0 cnei wral cmin ccom cbl wrex cxmt cnxmet sseli cnfldtopn neibl
        wa sylancr c2 cdiv caddc clt wceq ralrimiva rpre rehalfcld oveq2 eleq1d
        wbr rspccva syl2an sseldi adantr eqid cnmetdval syl2anc simpr rphalfcld
        rpcnd pncan2d fveq2d rpred rpge0d absidd 3eqtrd rphalflt adantl eqbrtrd
        cxr a1i rpxr elbl3 syl22anc mpbird cc0 rpne0d eqnetrd subne0ad sylanbrc
        eldifsn inelcm ssrin ssn0 syl syl5com rexlimdva adantld sylbid ralrimiv
        wi ex ctop cnfldtop cnfldtopon islp2 mp3an12 ssriv restperf mp2an mpbir
        toponunii ) DCUAJZUFKZCCDUBLLZMZBCYFBNZCKZYHYFKZHNZCYHUCZUDZUEZUGOZHYLD
        UHLLZUIZYIYOHYPYIYKYPKZYKPMZYHINZQUJUKZULLJZYKMZIRUMZUSZYOYIUUAPUNLKZYH
        PKZYRUUESUOCPYHGUPZUUAYHDYKPIDEUQURUTYIUUDYOYSYIUUCYOIRYIYTRKZUSZUUBYMU
        EZUGOZUUCYOUUJYHYTVAVBJZVCJZUUBKZUUNYMKZUULUUJUUOUUNYHUUAJZYTVDVKZUUJUU
        QUUMYTVDUUJUUQUUNYHUJJZQLZUUMQLUUMUUJUUNPKZUUGUUQUUTVEUUJCPUUNGYIYHANZV
        CJZCKZATUIUUMTKUUNCKZUUIYIUVDATFVFUUIYTYTVGVHUVDUVEAUUMTUVBUUMVEUVCUUNC
        UVBUUMYHVCVIVJVLVMZVNZYIUUGUUIUUHVOZUUNYHUUAUUAVPVQVRUUJUUSUUMQUUJYHUUM
        UVHUUJUUMUUJYTYIUUIVSVTZWAWBZWCUUJUUMUUJUUMUVIWDUUJUUMUVIWEWFWGUUIUUMYT
        VDVKYIYTWHWIWJUUJUUFYTWKKZUUGUVAUUOUURSUUFUUJUOWLUUIUVKYIYTWMWIUVHUVGUU
        NUUAYHYTPWNWOWPUUJUVEUUNYHOUUPUVFUUJUUNYHUVGUVHUUJUUSUUMWQUVJUUJUUMUVIW
        RWSWTUUNCYHXBXAUUNUUBYMXCVRUUCUUKYNMZUULYOXLUUBYKYMXDUVLUULYOUUKYNXEXMX
        FXGXHXIXJXKYIUUGYJYQSZUUHDXNKZCPMZUUGUVMDEXOZGYHCHDPPDDEXPYCZXQXRXFWPXS
        UVNUVOYEYGSUVPGDYDPCUVQYDVPXTYAYB $.
    $}

    $( The real numbers are a perfect subset of the complex numbers.
       (Contributed by Mario Carneiro, 26-Dec-2016.) $)
    reperf $p |- ( J |`t RR ) e. Perf $=
      ( vy vx cr cv readdcl ax-resscn reperflem ) CDEABDFCFGHI $.

    $( The complex numbers are a perfect space.  (Contributed by Mario
       Carneiro, 26-Dec-2016.) $)
    cnperf $p |- J e. Perf $=
      ( vy vx cc crest co cperf ctopon cfv wcel wceq cnfldtopon toponunii ax-mp
      restid cv cr caddc recn addcl sylan2 ssid reperflem eqeltrri ) AEFGZAHAEI
      JZKUFALABMZAUGEEAUHNPOCDEABCQZRKDQZEKUIEKUJUISGEKUITUJUIUAUBEUCUDUE $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The interior of a closed interval in the standard topology on ` RR ` is
       the corresponding open interval.  (Contributed by Mario Carneiro,
       1-Sep-2014.) $)
    iccntr $p |- ( ( A e. RR /\ B e. RR ) ->
      ( ( int ` ( topGen ` ran (,) ) ) ` ( A [,] B ) ) = ( A (,) B ) ) $=
      ( vx cr wcel wa co cfv wss clt wbr c0 wceq cxr cle w3a wn ad2antrr adantl
      crp cicc cioo crn ctg cnt cpr cun wb rexr icc0 syl2an biimpar fveq2d ctop
      retop ntr0 ax-mp eqsstri syl6eqss iccssre uniretop ntrss2 sylancr anim12i
      adantr uncom prunioo syl5eq 3expa sylan sseqtr4d simpr simpl ltlecasei cv
      0ss cin wral cabs cmin ccom cres wrex ntropn cxmt eqid rexmet cmopn tgioo
      cxp cbl mopni2 mp3an1 rphalfcl ltsubrpd rpred resubcld ltnled mpbid caddc
      cdiv rpre rphalflt ltsub2dd readdcld ltaddrp sylancom lttrd rexrd syl2anc
      c2 elioo2 mpbir3and bl2ioo eleqtrrd ssel syl5com sseld elicc2 simp2 3syld
      syl6bi mtod nrexdv pm2.65da ltaddrpd ltsubrp ltadd2dd simp3 notbid ralprg
      wi eleq1 mpbir2and disjr sylibr disjssun syl iooretop ioossicc mpanr12
      ssntr eqssd ) ADEZBDEZFZABUAGZUBUCUDHZUEHZHZABUBGZUUFUUJABUFZUUKUGZIZUUJU
      UKIZUUFUUNBAUUFBAJKZFZUUJLUUIHZUUMUUQUUGLUUIUUFUUGLMZUUPUUDANEZBNEZUUSUUP
      UHUUEAUIZBUIZABUJUKULUMUURLUUMUUHUNEZUURLMUOUUHUPUQUUMVPURUSUUFABOKZFUUJU
      UGUUMUUFUUJUUGIZUVEUUFUVDUUGDIZUVFUOABUTZUUGUUHDVAVBVCZVEUUFUUTUVAFUVEUUM
      UUGMZUUDUUTUUEUVAUVBUVCVDUUTUVAUVEUVJUUTUVAUVEPUUMUUKUULUGUUGUULUUKVFABVG
      VHVIVJVKUUDUUEVLZUUDUUEVMZVNUUFUUJUULVQLMZUUNUUOUHUUFCVOZUUJEZQZCUULVRZUV
      MUUFUVQAUUJEZQZBUUJEZQZUUFUVRAUVNVSVTWADDWJWBZWKHZGZUUJIZCTWCZUUFUUJUUHEZ
      UVRUWFUUFUVDUVGUWGUOUVHUUGUUHDVAWDVCZUWBDWEHEZUWGUVRUWFUWBUWBWFZWGZCUUJUW
      BAUUHDUWBUWBWHHZUWJUWLWFWIZWLWMVJUUFUVRFZUWECTUWNUVNTEZFZUWEAAUVNXKXAGZVT
      GZOKZUWPUWRAJKUWSQUWPAUWQUUFUUDUVRUWOUVLRZUWOUWQTEZUWNUVNWNZSZWOZUWPUWRAU
      WPAUWQUWTUWPUWQUXCWPZWQZUWTWRWSUWPUWEUWRUUJEZUWRUUGEZUWSUWPUWRUWDEUWEUXGU
      WPUWRAUVNVTGZAUVNWTGZUBGZUWDUWPUWRUXKEZUWRDEZUXIUWRJKZUWRUXJJKZUXFUWPUWQU
      VNAUXEUWOUVNDEZUWNUVNXBZSZUWTUWOUWQUVNJKZUWNUVNXCZSXDUWPUWRAUXJUXFUWTUWPA
      UVNUWTUXRXEZUXDUWNUWOUUDAUXJJKUWTAUVNXFXGXHUWPUXINEUXJNEUXLUXMUXNUXOPUHUW
      PUXIUWPAUVNUWTUXRWQXIUWPUXJUYAXIUXIUXJUWRXLXJXMUWPUUDUXPUWDUXKMUWTUXRAUVN
      UWBUWJXNXJXOUWDUUJUWRXPXQUWPUUJUUGUWRUUFUVFUVRUWOUVIRXRUUFUXHUWSYLUVRUWOU
      UFUXHUXMUWSUWRBOKZPUWSABUWRXSUXMUWSUYBXTYBRYAYCYDYEUUFUVTBUVNUWCGZUUJIZCT
      WCZUUFUWGUVTUYEUWHUWIUWGUVTUYEUWKCUUJUWBBUUHDUWMWLWMVJUUFUVTFZUYDCTUYFUWO
      FZUYDBUWQWTGZBOKZUYGBUYHJKUYIQUYGBUWQUUFUUEUVTUWOUVKRZUWOUXAUYFUXBSZYFZUY
      GBUYHUYJUYGBUWQUYJUYGUWQUYKWPZXEZWRWSUYGUYDUYHUUJEZUYHUUGEZUYIUYGUYHUYCEU
      YDUYOUYGUYHBUVNVTGZBUVNWTGZUBGZUYCUYGUYHUYSEZUYHDEZUYQUYHJKZUYHUYRJKZUYNU
      YGUYQBUYHUYGBUVNUYJUWOUXPUYFUXQSZWQZUYJUYNUYFUWOUUEUYQBJKUYJBUVNYGXGUYLXH
      UYGUWQUVNBUYMVUDUYJUWOUXSUYFUXTSYHUYGUYQNEUYRNEUYTVUAVUBVUCPUHUYGUYQVUEXI
      UYGUYRUYGBUVNUYJVUDXEXIUYQUYRUYHXLXJXMUYGUUEUXPUYCUYSMUYJVUDBUVNUWBUWJXNX
      JXOUYCUUJUYHXPXQUYGUUJUUGUYHUUFUVFUVTUWOUVIRXRUUFUYPUYIYLUVTUWOUUFUYPVUAA
      UYHOKZUYIPUYIABUYHXSVUAVUFUYIYIYBRYAYCYDYEUVPUVSUWACABDDUVNAMUVOUVRUVNAUU
      JYMYJUVNBMUVOUVTUVNBUUJYMYJYKYNCUUJUULYOYPUUJUULUUKYQYRWSUUFUVDUVGUUKUUJI
      ZUOUVHUVDUVGFUUKUUHEUUKUUGIVUGABYSABYTUUGUUHUUKDVAUUBUUAVCUUC $.
  $}

  ${
    $d n t u v w x y z B $.  $d t v w C $.  $d t u v w y ph $.  $d t v w y R $.
    $d t u v w x y z A $.  $d w x D $.  $d t v w G $.  $d x z T $.  $d t y V $.
    $d u w z J $.  $d n u v w y S $.  $d t u v w x y z U $.
    icccmp.1 $e |- J = ( topGen ` ran (,) ) $.
    icccmp.2 $e |- T = ( J |`t ( A [,] B ) ) $.
    ${
      icccmp.3 $e |- D = ( ( abs o. - ) |` ( RR X. RR ) ) $.
      icccmp.4 $e |- S = { x e. ( A [,] B ) | E. z e. ( ~P U i^i Fin )
                           ( A [,] x ) C_ U. z } $.
      icccmp.5 $e |- ( ph -> A e. RR ) $.
      icccmp.6 $e |- ( ph -> B e. RR ) $.
      icccmp.7 $e |- ( ph -> A <_ B ) $.
      icccmp.8 $e |- ( ph -> U C_ J ) $.
      icccmp.9 $e |- ( ph -> ( A [,] B ) C_ U. U ) $.
      $( Lemma for ~ icccmp .  (Contributed by Mario Carneiro, 18-Jun-2014.) $)
      icccmplem1 $p |- ( ph -> ( A e. S /\ A. y e. S y <_ B ) ) $=
        ( vu wcel cv cle wbr wral cicc co cuni wss cpw cfn cin cxr rexrd lbicc2
        wrex syl3anc sseldd eluni2 sylib wa csn snssi ad2antrl snex elpw sylibr
        snfi a1i elind adantr iccid syl ad2antll eqsstrd unieq vex unisn syl6eq
        wceq sseq2d rspcev syl2anc rexlimddv oveq2 sseq1d rexbidv sylanbrc crab
        elrab2 ssrab2 eqsstri sseli cr wb elicc2 biimpa simp3d sylan2 ralrimiva
        w3a jca ) AEHUBZCUCZFUDUEZCHUFAEEFUGUHZUBZEEUGUHZDUCZUIZUJZDJUKZULUMZUQ
        ZXDAEUNUBZFUNUBEFUDUEXHAEPUOZAFQUOREFUPURZAEUAUCZUBZXOUAJAEJUIZUBXTUAJU
        QAXGYAETXRUSUAEJUTVAAXSJUBZXTVBZVBZXSVCZXNUBXIXSUJZXOYDXMULYEYDYEJUJZYE
        XMUBYBYGAXTXSJVDVEYEJXSVFVGVHYEULUBYDXSVIVJVKYDXIEVCZXSYDXPXIYHWAAXPYCX
        QVLEVMVNXTYHXSUJAYBEXSVDVOVPXLYFDYEXNXJYEWAZXKXSXIYIXKYEUIXSXJYEVQXSUAV
        RVSVTWBWCWDWEEBUCZUGUHZXKUJZDXNUQZXOBEXGHYJEWAZYLXLDXNYNYKXIXKYJEEUGWFW
        GWHOWKWIAXFCHXEHUBAXEXGUBZXFHXGXEHYMBXGWJXGOYMBXGWLWMWNAYOVBXEWOUBZEXEU
        DUEZXFAYOYPYQXFXBZAEWOUBFWOUBYOYRWPPQEFXEWQWDWRWSWTXAXC $.

      ${
        icccmp.10 $e |- ( ph -> V e. U ) $.
        icccmp.11 $e |- ( ph -> C e. RR+ ) $.
        icccmp.12 $e |- ( ph -> ( G ( ball ` D ) C ) C_ V ) $.
        icccmp.13 $e |- G = sup ( S , RR , < ) $.
        icccmp.14 $e |- R =
          if ( ( G + ( C / 2 ) ) <_ B , ( G + ( C / 2 ) ) , B ) $.
        $( Lemma for ~ icccmp .  (Contributed by Mario Carneiro,
           13-Jun-2014.) $)
        icccmplem2 $p |- ( ph -> B e. S ) $=
          ( vy vn vv vw vt c2 cdiv co caddc cle wbr wn wceq clt cr csup wss wne
          c0 cv wral wrex wcel cicc cuni cpw cfn ssrab2 eqsstri iccssre syl2anc
          cin crab syl5ss icccmplem1 simpld ne0i syl simprd breq2 rspcev suprcl
          ralbidv syl3anc syl5eqel rphalfcld ltaddrpd rpred readdcld ltnled cif
          mpbid ifcld suprub syl31anc syl6breqr ltled letrd ifboth syl5eqbr w3a
          min2 wb elicc2 mpbir3and ltsubrpd syl6breq resubcld suprlub wa wi weq
          cmin oveq2 sseq1d rexbidv elrab2 sseq2d cbvrexv adantrr simprr sseldd
          unieq cun adantr expr lelttrd cxr rexr syl5eq rexlimdv syl5bi csn vex
          simpr1 elin sylib elpwid simpll snssd snex unex elpw sylibr snfi unfi
          unssd sylancl elind simplr2 ssun1 syl6ss biimpa simp1d simp2d cbl cfv
          simplr cioo simplr3 lttrd simp3d min1 rphalflt ltadd2dd elioo2 syl2an
          bl2ioo eleqtrrd elun2 wo lelttric mpjaod ex ssrdv uniun unisng uneq2d
          crp sseqtr4d 3exp2 expimpd mpd syl6bb eqtri sylanbrc iftrue syl5ibcom
          cbvrabv breq1d mtod iffalse eqeltrrd ) AHEIALFUNUOUPZUQUPZEURUSZUTZHE
          VAAUXDUXCLURUSZALUXCVBUSUXFUTALUXBALIVCVBVDZVCUGAIVCVEZIVGVFZUIVHZUJV
          HZURUSZUIIVIZUJVCVJZUXGVCVKAIDEVLUPZVCIDBVHZVLUPZCVHZVMZVEZCKVNZVOVTZ
          VJZBUXOWAZUXORUYCBUXOVPVQADVCVKZEVCVKZUXOVCVEZSTDEVRVSZWBZADIVKZUXIAU
          YJUXJEURUSZUIIVIZABUICDEGIJKMOPQRSTUAUBUCWCZWDZIDWEWFZAUYFUYLUXNTAUYJ
          UYLUYMWGUXMUYLUJEVCUXKEVAUXLUYKUIIUXKEUXJURWHWKWIVSZUJUIIWJWLWMZAFUEW
          NZWOZALUXCUYQALUXBUYQAUXBUYRWPZWQZWRWTAHLURUSUXDUXFAHUXGLURAUXHUXIUXN
          HIVKZHUXGURUSUYIUYOUYPAHUXOVKZDHVLUPZUXJVMZVEZUIUYBVJZVUBAVUCHVCVKZDH
          URUSZHEURUSZAHUXDUXCEWSZVCUHAUXDUXCEVCVUATXAWMZADVUKHURADUXCURUSZDEUR
          USZDVUKURUSZADLUXCSUYQVUAADUXGLURAUXHUXIUXNUYJDUXGURUSUYIUYOUYPUYNUJU
          IIDXBXCUGXDALUXCUYQVUAUYSXEXFUAUXDVUMVUNVUOUXCEUXCVUKDURWHEVUKDURWHXG
          VSUHXDAHVUKEURUHAUXCVCVKZUYFVUKEURUSVUATUXCEXJVSXHAUYEUYFVUCVUHVUIVUJ
          XIXKSTDEHXLVSXMALFYAUPZUKVHZVBUSZUKIVJZVUGAVUQUXGVBUSZVUTAVUQLUXGVBAL
          FUYQUEXNUGXOAUXHUXIUXNVUQVCVKZVVAVUTXKUYIUYOUYPALFUYQAFUEWPZXPZUJUIUK
          IVUQXQXCWTAVUSVUGUKIVURIVKVURUXOVKZDVURVLUPZUXSVEZCUYBVJZXRAVUSVUGXSZ
          UYCVVHBVURUXOIBUKXTZUXTVVGCUYBVVJUXQVVFUXSUXPVURDVLYBYCYDZRYEAVVEVVHV
          VIVVHVVFULVHZVMZVEZULUYBVJAVVEXRZVVIVVGVVNCULUYBCULXTUXSVVMVVFUXRVVLY
          KYFYGVVOVVNVVIULUYBVVOVVLUYBVKZVVNVUSVUGVVOVVPVVNVUSXIZXRZVVLNUUAZYLZ
          UYBVKVUDVVTVMZVEZVUGVVRUYAVOVVTVVRVVTKVEVVTUYAVKVVRVVLVVSKVVRVVLKVVRV
          VLUYAVKZVVLVOVKZVVRVVPVWCVWDXRVVOVVPVVNVUSUUCVVLUYAVOUUDUUEZWDUUFVVRN
          KVVRANKVKZAVVEVVQUUGZUDWFZUUHUUOVVTKVVLVVSULUUBNUUIUUJUUKUULVVRVWDVVS
          VOVKVVTVOVKVVRVWCVWDVWEWGNUUMVVLVVSUUNUUPUUQVVRVUDVVMNYLZVWAVVRUMVUDV
          WIVVRUMVHZVUDVKZVWJVWIVKZVVRVWKXRZVWJVURURUSZVWLVURVWJVBUSZVVRVWKVWNV
          WLVVRVWKVWNXRZXRZVVFVWIVWJVWQVVFVVMVWIVVPVVNVUSVVOVWPUURVVMNUUSUUTVWQ
          VWJVVFVKZVWJVCVKZDVWJURUSZVWNVVRVWKVWSVWNVWMVWSVWTVWJHURUSZVVRVWKVWSV
          WTVXAXIZVVRUYEVUHVWKVXBXKVVRAUYEVWGSWFZVVRAVUHVWGVULWFDHVWJXLVSUVAZUV
          BZYHVVRVWKVWTVWNVWMVWSVWTVXAVXDUVCYHVVRVWKVWNYIVVRVWRVWSVWTVWNXIXKZVW
          PVVRUYEVURVCVKZVXFVXCVVRUXOVCVURVVRAUYGVWGUYHWFAVVEVVQUVFYJZDVURVWJXL
          VSYMXMYJYNVVRVWKVWOVWLVVRVWKVWOXRZXRZVWJNVKVWLVXJLFGUVDUVEUPZNVWJVXJA
          VXKNVEVVRAVXIVWGYMZUFWFVXJVWJVUQLFUQUPZUVGUPZVXKVXJVWJVXNVKZVWSVUQVWJ
          VBUSZVWJVXMVBUSZVVRVWKVWSVWOVXEYHZVXJVUQVURVWJVXJAVVBVXLVVDWFZVVRVXGV
          XIVXHYMVXRVVPVVNVUSVVOVXIUVHVVRVWKVWOYIUVIVXJVWJHVXMVXRVXJAVUHVXLVULW
          FVXJAVXMVCVKZVXLALFUYQVVCWQZWFZVVRVWKVXAVWOVWMVWSVWTVXAVXDUVJYHVXJAHV
          XMVBUSVXLAHUXCVXMVULVUAVYAAHVUKUXCURUHAVUPUYFVUKUXCURUSVUATUXCEUVKVSX
          HAUXBFLUYTVVCUYQAFUWGVKZUXBFVBUSUEFUVLWFUVMYOWFYOVXJVVBVXTVXOVWSVXPVX
          QXIXKZVXSVYBVVBVUQYPVKVXMYPVKVYDVXTVUQYQVXMYQVUQVXMVWJUVNUVOVSXMVXJLV
          CVKZFVCVKVXKVXNVAVXJAVYEVXLUYQWFVXJFVXJAVYCVXLUEWFWPLFGQUVPVSUVQYJVWJ
          NVVMUVRWFYNVWMVWSVXGVWNVWOUVSVXEVVRVXGVWKVXHYMVWJVURUVTVSUWAUWBUWCVVR
          VWAVVMVVSVMZYLVWIVVLVVSUWDVVRVYFNVVMVVRVWFVYFNVAVWHNKUWEWFUWFYRUWHVUF
          VWBUIVVTUYBUXJVVTVAVUEVWAVUDUXJVVTYKYFWIVSUWIYSYTUWJYTYSUWKVVFVUEVEZU
          IUYBVJZVUGUKHUXOIVURHVAZVYGVUFUIUYBVYIVVFVUDVUEVURHDVLYBYCYDIUYDVYHUK
          UXOWARUYCVYHBUKUXOVVJUYCVVHVYHVVKVVGVYGCUIUYBCUIXTUXSVUEVVFUXRUXJYKYF
          YGUWLUWQUWMYEUWNZUJUIIHXBXCUGXDUXDHUXCLURUXDHVUKUXCUHUXDUXCEUWOYRUWRU
          WPUWSUXEHVUKEUHUXDUXCEUWTYRWFVYJUXA $.
      $}

      $( Lemma for ~ icccmp .  (Contributed by Mario Carneiro, 13-Jun-2014.) $)
      icccmplem3 $p |- ( ph -> B e. S ) $=
        ( wcel vu vy vv vw cr clt csup cv wrex cuni cicc co cle wbr wss c0 wral
        wne cpw cfn cin ssrab2 eqsstri iccssre syl2anc syl5ss icccmplem1 simpld
        crab ne0i syl simprd wceq ralbidv rspcev suprcl syl3anc suprub syl31anc
        breq2 wb suprleub mpbird w3a elicc2 mpbir3and sseldd eluni2 cbl cfv crp
        sylib wa sselda cxmt rexmet cioo crn ctg cmopn eqid tgioo mopni2 mp3an1
        wi eqtri ex cdiv caddc cif ad2antrr simplr simprl icccmplem2 rexlimdvaa
        c2 simprr syld rexlimdva mpd ) AGUEUFUGZUAUHZTZUAIUIZEGTZAYAIUJZTYDADEU
        KULZYFYASAYAYGTZYAUETZDYAUMUNZYAEUMUNZAGUEUOZGUPURZUBUHZUCUHZUMUNZUBGUQ
        ZUCUEUIZYIAGYGUEGDBUHUKULCUHUJUOCIUSUTVAUIZBYGVIYGNYSBYGVBVCADUETZEUETZ
        YGUEUOOPDEVDVEVFZADGTZYMAUUCYNEUMUNZUBGUQZABUBCDEFGHIJKLMNOPQRSVGZVHZGD
        VJVKZAUUAUUEYRPAUUCUUEUUFVLZYQUUEUCEUEYOEVMYPUUDUBGYOEYNUMVTVNVOVEZUCUB
        GVPVQAYLYMYRUUCYJUUBUUHUUJUUGUCUBGDVRVSAYKUUEUUIAYLYMYRUUAYKUUEWAUUBUUH
        UUJPUCUBUBGEWBVSWCAYTUUAYHYIYJYKWDWAOPDEYAWEVEWFWGUAYAIWHWLAYCYEUAIAYBI
        TZWMZYCYAUDUHZFWIWJULYBUOZUDWKUIZYEUULYBJTZYCUUOXEAIJYBRWNUUPYCUUOFUEWO
        WJTUUPYCUUOFMWPUDYBFYAJUEJWQWRWSWJFWTWJZKFUUQMUUQXAXBXFXCXDXGVKUULUUNYE
        UDWKUULUUMWKTZUUNWMZWMBCDEUUMFYAUUMXPXHULXIULZEUMUNUUTEXJZGHIYAJYBKLMNA
        YTUUKUUSOXKAUUAUUKUUSPXKADEUMUNUUKUUSQXKAIJUOUUKUUSRXKAYGYFUOUUKUUSSXKA
        UUKUUSXLUULUURUUNXMUULUURUUNXQYAXAUVAXAXNXOXRXSXT $.
    $}

    $( A closed interval in ` RR ` is compact.  (Contributed by Mario Carneiro,
       13-Jun-2014.) $)
    icccmp $p |- ( ( A e. RR /\ B e. RR ) -> T e. Comp ) $=
      ( vu vz vx cr wcel wa cicc co crest ccmp cv cuni wss c0 cle wbr wrex wral
      clt cpw cfn cin wi crab cabs cmin ccom cxp cres eqid simplll simplr elpwi
      simpllr ad2antrl simprr icccmplem3 oveq2 sseq1d rexbidv elrab simprbi syl
      wceq expr ralrimiva ctop wb cioo crn ctg cfv retop eqeltri iccssre adantr
      uniretop unieqi eqtr4i cmpsub sylancr mpbird csn rexr icc0 syl2an biimpar
      cxr oveq2d rest0 ax-mp syl6eq 0cmp syl6eqel lelttric mpjaodan syl5eqel )
      AJKZBJKZLZCDABMNZONZPFXFABUAUBZXHPKZBAUEUBZXFXILZXJXGGQZRSZXGHQRZSZHXMUFU
      GUHZUCZUIZGDUFZUDZXLXSGXTXLXMXTKZXNXRXLYBXNLZLZBAIQZMNZXOSZHXQUCZIXGUJZKZ
      XRYDIHABUKULUMJJUNUOZYICXMDEFYKUPYIUPXDXEXIYCUQXDXEXIYCUTXFXIYCURYBXMDSXL
      XNXMDUSVAXLYBXNVBVCYJBXGKXRYHXRIBXGYEBVJZYGXPHXQYLYFXGXOYEBAMVDVEVFVGVHVI
      VKVLXLDVMKZXGJSZXJYAVNDVOVPVQVRZVMEVSVTZXFYNXIABWAWBXGDJGHJYORDRWCDYOEWDW
      EWFWGWHXFXKLZXHTWIZPYQXHDTONZYRYQXGTDOXFXGTVJZXKXDAWNKBWNKYTXKVNXEAWJBWJA
      BWKWLWMWOYMYSYRVJYPDWPWQWRWSWTABXAXBXC $.
  $}

  ${
    $d z A $.  $d z X $.  $d z Y $.
    $( Lemma for ~ reconn .  Connectedness in the reals-easy direction.
       (Contributed by Jeff Hankins, 13-Jul-2009.)  (Proof shortened by Mario
       Carneiro, 9-Sep-2015.) $)
    reconnlem1 $p |- ( ( ( A C_ RR /\ ( ( topGen ` ran (,) ) |`t A ) e. Conn )
                             /\ ( X e. A /\ Y e. A ) ) -> ( X [,] Y ) C_ A ) $=
      ( cr wss cioo co wcel wa c0 wceq cmnf cpnf a1i cin clt wbr syl wb cun crn
      vz ctg crest cconn cicc cdif cv simplr wn ctopon retopon simplll iooretop
      cfv wne simplrl sseldd mnflt eldifn adantl eleq1 syl5ibcom mtod wo eldifi
      cle w3a simplrr elicc2 syl2anc mpbid simp2d simp1d leloed ord mnfxr rexrd
      cxr elioo2 sylancr mpbir3and inelcm syl5ibrcom simp3d ltpnf pnfxr sylancl
      inss1 jctil jctir leidd ioodisj syl21anc sseq0 csn ioojoin syl32anc unass
      mt3d un12 eqtri ioomax 3eqtr3g sseqtr4d disjsn disjssun nconnsubb ex mt2d
      sylibr eq0rdv ssdif0 ) ADEZFUAUCUOZAUDGUEHZIZBAHZCAHZIZIZBCUFGZAUGZJKYBAE
      YAUBYCYAUBUHZYCHZXPXNXPXTUIYAYEXPUJYAYEIZALYDFGZXOYDMFGZDXODUKUOHYFULNXNX
      PXTYEUMZYGXOHYFLYDUNNYHXOHYFYDMUNNYFBYGHZXRYGAOJUPYFYJBDHZLBPQZBYDPQZYFAD
      BYIXQXRXSYEUQZURZYFYKYLYOBUSRYFYMBYDKZYFYPYDAHZYEYQUJZYAYDYBAUTVAZYFXRYPY
      QYNBYDAVBVCVDYFYMYPYFBYDVGQZYMYPVEYFYDDHZYTYDCVGQZYFYDYBHZUUAYTUUBVHZYEUU
      CYAYDYBAVFVAYFYKCDHZUUCUUDSYOYFADCYIXQXRXSYEVIZURZBCYDVJVKVLZVMYFBYDYOYFU
      UAYTUUBUUHVNZVOVLVPWTYFLVSHZYDVSHZYJYKYLYMVHSVQYFYDUUIVRZLYDBVTWAWBYNBYGA
      WCVKYFCYHHZXSYHAOJUPYFUUMUUEYDCPQZCMPQZUUGYFUUNYDCKZYFUUPYQYSYFYQUUPXSUUF
      YDCAVBWDVDYFUUNUUPYFUUBUUNUUPVEYFUUAYTUUBUUHWEYFYDCUUIUUGVOVLVPWTYFUUEUUO
      UUGCWFRYFUUKMVSHZUUMUUEUUNUUOVHSUULWGYDMCVTWHWBUUFCYHAWCVKYFYGYHOZAOZUURE
      UURJKZUUSJKUURAWIYFUUJUUKIUUKUUQIYDYDVGQUUTYFUUKUUJUULVQWJYFUUKUUQUULWGWK
      YFYDUUIWLLYDYDMWMWNUUSUURWOWAYFAYDWPZYGYHTZTZEZAUVBEZYFADUVCYIYFYGUVATYHT
      ZLMFGZUVCDYFUUJUUKUUQLYDPQZYDMPQZUVFUVGKUUJYFVQNUULUUQYFWGNYFUUAUVHUUIYDU
      SRYFUUAUVIUUIYDWFRLYDMWQWRUVFYGUVAYHTTUVCYGUVAYHWSYGUVAYHXAXBXCXDXEYFAUVA
      OJKZUVDUVESYFYRUVJYSAYDXFXKAUVAUVBXGRVLXHXIXJXLYBAXMXK $.
  $}

  ${
    $d x y A $.  $d w x y z B $.  $d r w y z C $.  $d r w ph $.  $d r w z U $.
    $d r w S $.  $d r w V $.
    reconnlem2.1 $e |- ( ph -> A C_ RR ) $.
    reconnlem2.2 $e |- ( ph -> U e. ( topGen ` ran (,) ) ) $.
    reconnlem2.3 $e |- ( ph -> V e. ( topGen ` ran (,) ) ) $.
    reconnlem2.4 $e |- ( ph -> A. x e. A A. y e. A ( x [,] y ) C_ A ) $.
    reconnlem2.5 $e |- ( ph -> B e. ( U i^i A ) ) $.
    reconnlem2.6 $e |- ( ph -> C e. ( V i^i A ) ) $.
    reconnlem2.7 $e |- ( ph -> ( U i^i V ) C_ ( RR \ A ) ) $.
    reconnlem2.8 $e |- ( ph -> B <_ C ) $.
    reconnlem2.9 $e |- S = sup ( ( U i^i ( B [,] C ) ) , RR , < ) $.
    $( Lemma for ~ reconn .  (Contributed by Jeff Hankins, 17-Aug-2009.)
       (Proof shortened by Mario Carneiro, 9-Sep-2015.) $)
    reconnlem2 $p |- ( ph -> -. A C_ ( U u. V ) ) $=
      ( wcel cr vr vw vz cun wss wo wn cv cabs cmin ccom cxp cres cbl cmnf cioo
      cfv co cin crp wrex wa c2 cdiv caddc cle wbr clt cicc csup wne wral inss2
      c0 sseldi wceq oveq1 sseq1d oveq2 rspc2va syl21anc sstrd syl5ss inss1 cxr
      sseldd rexrd lbicc2 syl3anc elind ne0i syl sseli w3a elicc2 syl2anc simp3
      wb syl6bi ralrimiv breq2 ralbidv rspcev suprcl syl2an adantr rpred ltnled
      syl5 mpbid ad2antrr simpr suprub syl31anc syl6breqr ltled mpbir3and recnd
      eqid adantl rpre mpbird ssel syl5com mtod nrexdv suprleub syl5eqbr elndif
      elin syl5bir syld elioo2 ex wi mopni2 mp3an1 ad3antrrr adantrr rexr letrd
      syl5eqel rphalfcl ltaddrp readdcl eliooord simprd mtand remetdval pncan2d
      fveq2d rpge0 absidd 3eqtrd rphalflt eqbrtrd cxmt rexmet a1i rpxr syl22anc
      elbl3 mnflt leloed ord cdif sseld mpan2d eleq1 syl5ibrcom con4d imp mnfxr
      notbid sylancr ancld crn ctg ctop retop iooretop inopn mp3an13 cmopn 3syl
      tgioo ltsubrp resubcl bl2ioo sselda simprl simplr simprr simpllr readdcld
      sylan ltaddrpd lelttrd expr lenltd ralrimiva sylbid sylanbrc elun sylnibr
      ioran ) ADHIUDZUEZGUXGSZAGHSZGISZUFZUXIAUXJUGZUXKUGUXLUGAUXJGUAUHZUIUJUKT
      TULUMZUNUQURZHUOFUPURZUSZUEZUAUTVAZAUXSUAUTAUXNUTSZVBZUXSGUXNVCVDURZVEURZ
      UXRSZUYBUYEUYDGVFVGZUYBGUYDVHVGZUYFUGAGTSZUYCUTSZUYGUYAAGHEFVIURZUSZTVHVJ
      ZTRAUYKTUEZUYKVNVKZUBUHZUCUHZVFVGZUBUYKVLZUCTVAZUYLTSAUYKUYJTHUYJVMZAUYJD
      TAEDSFDSZBUHZCUHZVIURZDUEZCDVLBDVLUYJDUEZAHDUSZDEHDVMNVOZAIDUSZDFIDVMOVOZ
      MVUEVUFEVUCVIURZDUEBCEFDDVUBEVPVUDVUKDVUBEVUCVIVQVRVUCFVPVUKUYJDVUCFEVIVS
      VRVTWAZJWBWCZAEUYKSZUYNAHUYJEAVUGHEHDWDNVOAEWESFWESZEFVFVGEUYJSAEADTEJVUH
      WFZWGAFADTFJVUJWFZWGZQEFWHWIWJZUYKEWKWLZAFTSZUYOFVFVGZUBUYKVLZUYSVUQAVVBU
      BUYKUYOUYKSZUYOUYJSZAVVBUYKUYJUYOUYTWMAVVEUYOTSZEUYOVFVGZVVBWNZVVBAETSZVV
      AVVEVVHWRVUPVUQEFUYOWOWPVVFVVGVVBWQWSXIWTZUYRVVCUCFTUYPFVPUYQVVBUBUYKUYPF
      UYOVFXAXBXCWPZUCUBUYKXDWIUUBZUXNUUCZGUYCUUDXEZUYBGUYDAUYHUYAVVLXFZAUYHUYC
      TSZUYDTSZUYAVVLUYAUYCVVMXGZGUYCUUEXEZXHXJUYBUYEVBZUYDUYLGVFVVTUYMUYNUYSUY
      DUYKSUYDUYLVFVGAUYMUYAUYEVUMXKAUYNUYAUYEVUTXKAUYSUYAUYEVVKXKVVTHUYJUYDVVT
      UXRHUYDHUXQWDUYBUYEXLZVOVVTUYDUYJSZVVQEUYDVFVGZUYDFVFVGZUYBVVQUYEVVSXFZVV
      TEGUYDAVVIUYAUYEVUPXKZAUYHUYAUYEVVLXKZVWEAEGVFVGZUYAUYEAEUYLGVFAUYMUYNUYS
      VUNEUYLVFVGVUMVUTVVKVUSUCUBUYKEXMXNRXOZXKVVTGUYDVWGVWEUYBUYGUYEVVNXFXPUUA
      VVTUYDFVWEAVVAUYAUYEVUQXKZVVTUYDUXQSZUYDFVHVGZVVTUXRUXQUYDHUXQVMVWAVOVWKU
      OUYDVHVGVWLUYDUOFUUFUUGWLXPVVTVVIVVAVWBVVQVWCVWDWNWRVWFVWJEFUYDWOWPXQWJUC
      UBUYKUYDXMXNRXOUUHUYBUYDUXPSZUXSUYEUYBVWMUYDGUXOURZUXNVHVGZUYBVWNUYCUXNVH
      UYBVWNUYDGUJURZUIUQZUYCUIUQZUYCUYBVVQUYHVWNVWQVPVVSVVOUYDGUXOUXOXSZUUIWPU
      YBVWPUYCUIUYBGUYCUYBGVVOXRUYBUYCUYAVVPAVVRXTXRUUJUUKUYBUYIVWRUYCVPUYAUYIA
      VVMXTUYIUYCUYCYAUYCUULUUMWLUUNUYAUYCUXNVHVGAUXNUUOXTUUPUYBUXOTUUQUQSZUXNW
      ESZUYHVVQVWMVWOWRVWTUYBUXOVWSUURZUUSUYAVXAAUXNUUTXTVVOVVSUYDUXOGUXNTUVBUV
      AYBUXPUXRUYDYCYDYEYFAUXJUXJGUXQSZVBZUXTAUXJVXCAUXJVXCAUXJVBZVXCUYHUOGVHVG
      ZGFVHVGZAUYHUXJVVLXFZVXEUYHVXFVXHGUVCWLAUXJVXGAVXGUXJAVXGUGGFVPZUXMAVXGVX
      IAGFVFVGZVXGVXIUFAGUYLFVFRAUYLFVFVGZVVCVVJAUYMUYNUYSVVAVXKVVCWRVUMVUTVVKV
      UQUCUBUBUYKFYGXNYBYHZAGFVVLVUQUVDXJUVEAUXMVXIFHSZUGAVXMFTDUVFZSZAVUAVXOUG
      VUJFDTYIWLAVXMFISZVXOAVUIIFIDWDOVOVXMVXPVBFHIUSZSAVXOFHIYJAVXQVXNFPUVGYKU
      VHYEVXIUXJVXMGFHUVIUVNUVJYLUVKUVLAVXCUYHVXFVXGWNWRZUXJAUOWESVUOVXRUVMVURU
      OFGYMUVOXFXQYNUVPVXDGUXRSZAUXTGHUXQYJAHUPUVQUVRUQZSZUXRVXTSZVXSUXTYOKVXTU
      VSSVYAUXQVXTSVYBUVTUOFUWAHUXQVXTUWBUWCVYBVXSUXTVWTVYBVXSUXTVXBUAUXRUXOGVX
      TTUXOUXOUWDUQZVWSVYCXSUWFZYPYQYNUWEYKYLYEAUXKUXPIUEZUAUTVAZAVYEUAUTUYBVYE
      GGUXNUJURZVFVGZUYBVYGGVHVGZVYHUGAUYHUYAVYIVVLGUXNUWGUWPUYBVYGGAUYHUXNTSZV
      YGTSZUYAVVLUXNYAZGUXNUWHXEZVVOXHXJUYBVYEVYGGUXNVEURZUPURZIUEZVYHUYBUXPVYO
      IAUYHVYJUXPVYOVPUYAVVLVYLGUXNUXOVWSUWIXEVRUYBVYPVYHUYBVYPVBZGUYLVYGVFRVYQ
      UYLVYGVFVGZUYOVYGVFVGZUBUYKVLZVYQVYSUBUYKVYQVVDVBZVYSVYGUYOVHVGZUGWUAWUBU
      YOVXNSZWUAUYODSWUCUGVYQUYKDUYOVYQUYKUYJDUYTAVUFUYAVYPVULXKWCUWJUYODTYIWLV
      YQVVDWUBWUCVYQVVDWUBVBZVBZVXQVXNUYOAVXQVXNUEUYAVYPWUDPYRWUEHIUYOWUEUYKHUY
      OHUYJWDVYQVVDWUBUWKZVOWUEVYOIUYOUYBVYPWUDUWLWUEUYOVYOSZVVFWUBUYOVYNVHVGZV
      YQVVDVVFWUBWUAUYKTUYOAUYMUYAVYPVVDVUMYRZVYQVVDXLWFZYSZVYQVVDWUBUWMWUEUYOG
      VYNWUKUYBUYHVYPWUDVVOXKZWUEGUXNWULWUEUXNAUYAVYPWUDUWNZXGUWOZWUEUYOUYLGVFW
      UEUYMUYNUYSVVDUYOUYLVFVGVYQVVDUYMWUBWUIYSAUYNUYAVYPWUDVUTYRAUYSUYAVYPWUDV
      VKYRWUFUCUBUYKUYOXMXNRXOWUEGUXNWULWUMUWQUWRWUEVYKVYNTSZWUGVVFWUBWUHWNWRZU
      YBVYKVYPWUDVYMXKWUNVYKVYGWESVYNWESWUPWUOVYGYTVYNYTVYGVYNUYOYMXEWPXQWFWJWF
      UWSYEWUAUYOVYGWUJUYBVYKVYPVVDVYMXKUWTYBUXAVYQUYMUYNUYSVYKVYRVYTWRAUYMUYAV
      YPVUMXKAUYNUYAVYPVUTXKAUYSUYAVYPVVKXKUYBVYKVYPVYMXFUCUBUBUYKVYGYGXNYBYHYN
      UXBYEYFAIVXTSZUXKVYFYOLWUQUXKVYFVWTWUQUXKVYFVXBUAIUXOGVXTTVYDYPYQYNWLYEUX
      JUXKUXFUXCGHIUXDUXEAGDSUXHUXIAUYJDGVULAGUYJSZUYHVWHVXJVVLVWIVXLAVVIVVAWUR
      UYHVWHVXJWNWRVUPVUQEFGWOWPXQWFDUXGGYCYDYE $.
  $}

  ${
    $d b c u v x y A $.
    $( A subset of the reals is connected iff it has the interval property.
       (Contributed by Jeff Hankins, 15-Jul-2009.)  (Proof shortened by Mario
       Carneiro, 9-Sep-2015.) $)
    reconn $p |- ( A C_ RR -> ( ( ( topGen ` ran (,) ) |`t A ) e. Conn <->
                                    A. x e. A A. y e. A ( x [,] y ) C_ A ) ) $=
      ( vu vv vb vc cr wss co wcel cv cicc wral cin wex adantr ad2antrr simplrr
      wa cioo crn ctg cfv crest cconn reconnlem1 ralrimivva ex wne cdif w3a cun
      c0 wn wi n0 anbi12i eeanv simplll inss2 simprll sseldi sseldd simprlr cle
      wbr clt csup simplrl simpllr simpr reconnlem2 incom syl5eqss uncom sseq2i
      eqid sylnib lecasei exp32 exlimdvv syl5bir syl5bi 3impd ralrimdvva ctopon
      expd wb retopon connsub mpan sylibrd impbid ) CHIZUAUBUCUDZCUEJUFKZALZBLZ
      MJCIZBCNACNZWOWQXAWOWQTWTABCCCWRWSUGUHUIWOXADLZCOZUNUJZELZCOZUNUJZXBXEOZH
      CUKZIZULCXBXEUMZIZUOZUPZEWPNDWPNZWQWOXAXNDEWPWPWOXBWPKZXEWPKZTZTZXAXNXSXA
      TZXDXGXJXMXTXDXGXJXMUPZXDXGTFLZXCKZFPZGLZXFKZGPZTZXTYAXDYDXGYGFXCUQGXFUQU
      RYHYCYFTZGPFPXTYAYCYFFGUSXTYIYAFGXTYIXJXMXTYIXJTZTZXMYBYEYKCHYBWOXRXAYJUT
      ZYKXCCYBXBCVAXTYCYFXJVBZVCVDYKCHYEYLYKXFCYEXECVAXTYCYFXJVEZVCVDYKYBYEVFVG
      ZTABCYBYEXBYBYEMJOHVHVIZXBXEYKWOYOYLQXTXPYJYOWOXPXQXAVJZRXTXQYJYOWOXPXQXA
      SZRXSXAYJYOVKYKYCYOYMQYKYFYOYNQXTYIXJYOSYKYOVLYPVRVMYKYEYBVFVGZTZCXEXBUMZ
      IXLYTABCYEYBXEYEYBMJOHVHVIZXEXBYKWOYSYLQXTXQYJYSYRRXTXPYJYSYQRXSXAYJYSVKY
      KYFYSYNQYKYCYSYMQYTXEXBOXHXIXEXBVNXTYIXJYSSVOYKYSVLUUBVRVMUUAXKCXEXBVPVQV
      SVTWAWBWCWDWHWEUIWFWPHWGUDKWOWQXOWIWJDECWPHWKWLWMWN $.
  $}

  ${
    $d x y $.
    $( Corollary of ~ reconn .  The set of real numbers is connected.
       (Contributed by Jeff Hankins, 17-Aug-2009.) $)
    retopconn $p |- ( topGen ` ran (,) ) e. Conn $=
      ( vx vy cioo crn ctg cfv cr crest co cconn ctop wcel wceq uniretop restid
      retop ax-mp cv wss wral cicc iccssre rgen2a wb ssid reconn mpbir eqeltrri
      ) CDEFZGHIZUIJUIKLUJUIMPUIKGNOQUJJLZARZBRZUAIGSZBGTAGTZUNABGULUMUBUCGGSUK
      UOUDGUEABGUFQUGUH $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( A closed interval is connected.  (Contributed by Jeff Hankins,
       17-Aug-2009.) $)
    iccconn $p |- ( ( A e. RR /\ B e. RR ) ->
      ( ( topGen ` ran (,) ) |`t ( A [,] B ) ) e. Conn ) $=
      ( vx vy cr wcel wa cioo crn ctg cfv cicc co crest cconn wss iccss2 rgen2a
      cv wral wb iccssre reconn syl mpbiri ) AEFBEFGZHIJKABLMZNMOFZCSZDSZLMUGPZ
      DUGTCUGTZUKCDUGABUIUJQRUFUGEPUHULUAABUBCDUGUCUDUE $.

    $( Every nonempty open set is uncountable.  (Contributed by Mario Carneiro,
       26-Jul-2014.)  (Revised by Mario Carneiro, 20-Feb-2015.) $)
    opnreen $p |- ( ( A e. ( topGen ` ran (,) ) /\ A =/= (/) ) ->
                    A ~~ ~P NN ) $=
      ( vx vy cioo cfv wcel wa cdom wbr cen cr cvv wss cmin co crp caddc sylan2
      clt syl2anc crn ctg c0 wne cn reex cuni elssuni uniretop syl6sseqr ssdomg
      cpw mpsyl rpnnen domentr sylancl adantr wex cabs ccom cxp cres cbl sselda
      cv n0 c2 cdiv cc0 c1 rpnnen2 rphalfcl rpred resubcl readdcl simpl ltsubrp
      cicc ltaddrp lttrd iccen syl3anc sylancr ovex cxr rpre rexrd recnd adantl
      subsub4d 2halvesd oveq2d eqtrd ltsubrpd eqbrtrrd addassd breqtrd iccssioo
      syl22anc domtr wceq eqid bl2ioo sylan simplll simpr sylc cmopn wrex tgioo
      breqtrrd eleq2i rexmet mopni2 mp3an1 sylanb r19.29a ex exlimdv syl5bi imp
      cxmt sbth ) ADUAUBEZFZAUCUDZGAUEULZHIZYGAHIZAYGJIYEYHYFYEAKHIZKYGJIYHKLFY
      EAKMYJUFYEAYDUGKAYDUHUIUJZAKLUKUMUNAKYGUOUPUQYEYFYIYFBVEZAFZBURYEYIBAVFYE
      YMYIBYEYMYIYEYMGZYLCVEZUSNUTKKVAVBZVCEOZAMZYICPYNYOPFZGZYRGZYGYQHIZYQAHIZ
      YIYTUUBYRYNYLKFZYSUUBYEAKYLYKVDUUDYSGZYGYLYONOZYLYOQOZDOZYQHUUEYGYLYOVGVH
      OZNOZYLUUIQOZVROZHIZUULUUHHIZYGUUHHIUUEYGVIVJVROZHIUUOUULJIZUUMVKUUEUUJKF
      ZUUKKFZUUJUUKSIUUPYSUUDUUIKFZUUQYSUUIYOVLZVMZYLUUIVNRZYSUUDUUSUURUVAYLUUI
      VORZUUEUUJYLUUKUVBUUDYSVPZUVCYSUUDUUIPFZUUJYLSIUUTYLUUIVQRYSUUDUVEYLUUKSI
      UUTYLUUIVSRVTUUJUUKWAWBYGUUOUULUOWCUUHLFUUEUULUUHMZUUNUUFUUGDWDUUEUUFWEFU
      UGWEFUUFUUJSIUUKUUGSIUVFUUEUUFYSUUDYOKFZUUFKFYOWFZYLYOVNRWGUUEUUGYSUUDUVG
      UUGKFUVHYLYOVORWGUUEUUJUUINOZUUFUUJSUUEUVIYLUUIUUIQOZNOUUFUUEYLUUIUUIUUEY
      LUVDWHZUUEUUIYSUUSUUDUVAWIWHZUVLWJUUEUVJYOYLNUUEYOUUEYOYSUVGUUDUVHWIWHWKZ
      WLWMUUEUUJUUIUVBYSUVEUUDUUTWIZWNWOUUEUUKUUKUUIQOZUUGSUUEUURUVEUUKUVOSIUVC
      UVNUUKUUIVSTUUEUVOYLUVJQOUUGUUEYLUUIUUIUVKUVLUVLWPUUEUVJYOYLQUVMWLWMWQUUF
      UUGUUJUUKWRWSUULUUHLUKUMYGUULUUHWTTYSUUDUVGYQUUHXAUVHYLYOYPYPXBZXCRXKXDUQ
      UUAYEYRUUCYEYMYSYRXEYTYRXFYQAYDUKXGYGYQAWTTYEAYPXHEZFZYMYRCPXIZYDUVQAYPUV
      QUVPUVQXBZXJXLYPKYBEFUVRYMUVSYPUVPXMCAYPYLUVQKUVTXNXOXPXQXRXSXTYAAYGYCT
      $.
  $}

  $( A countable subset of the reals has empty interior.  (Contributed by Mario
     Carneiro, 26-Jul-2014.) $)
  rectbntr0 $p |- ( ( A C_ RR /\ A ~<_ NN ) ->
    ( ( int ` ( topGen ` ran (,) ) ) ` A ) = (/) ) $=
    ( cr wss cn cdom wbr wa cpw wn cioo crn ctg cfv cnt cen wcel retop uniretop
    c0 cvv wceq csdm nnex canth2 domnsym mt2 wne wi ctop ntropn sylancr opnreen
    simpl ex reex ssex ntrss2 mpan ssdomg sylc domtr sylan ensym endomtr expcom
    syl syl2im syld necon1bd mpi ) ABCZADEFZGZDHZDEFZIAJKLMZNMMZSUAVODVNUBFDUCU
    DVNDUEUFVMVOVQSVMVQSUGZVQVNOFZVOVMVQVPPZVRVSUHVMVPUIPZVKVTQVKVLUMAVPBRUJUKV
    TVRVSVQULUNVFVMVQDEFZVSVNVQOFZVOVKVQAEFZVLWBVKATPVQACZWDABUOUPWAVKWEQAVPBRU
    QURVQATUSUTVQADVAVBVQVNVCWCWBVOVNVQDVDVEVGVHVIVJ $.

  ${
    $d s A $.  $d s ph $.
    xrge0gsumle.g $e |- G = ( RR*s |`s ( 0 [,] +oo ) ) $.
    xrge0gsumle.a $e |- ( ph -> A e. V ) $.
    xrge0gsumle.f $e |- ( ph -> F : A --> ( 0 [,] +oo ) ) $.
    xrge0gsumle.b $e |- ( ph -> B e. ( ~P A i^i Fin ) ) $.
    xrge0gsumle.c $e |- ( ph -> C C_ B ) $.
    $( A finite sum in the nonnegative extended reals is monotonic in the
       support.  (Contributed by Mario Carneiro, 13-Sep-2015.) $)
    xrge0gsumle $p |- ( ph ->
      ( G gsum ( F |` C ) ) <_ ( G gsum ( F |` B ) ) ) $=
      ( cgsu co cc0 cxr wcel cfn cvv c0 vs vx cres cxad cdif cle wbr cpw cin cv
      cmpt crn wf wss cpnf cicc iccssxr cbs cfv wceq cxrs xrsbas ressbas2 ax-mp
      wa cmnf csn cress csubmnd c0g eqid xrge0subm xrex difexg wne ge0nemnf jca
      simpl elxrge0 eldifsn 3imtr4i ssriv ressabs mp2an eqtr4i xrs10 subm0 ccmn
      xrge0cmn eqeltri a1i simprbi adantl simplbi fssres syl2an c0ex fdmfifsupp
      elfpw gsumcl sseldi fmptd frn syl cc 0ss 0fin mpbir2an reseq2 res0 syl6eq
      0cn oveq2d gsum0 elrnmpt1s sseldd diffi ssdifssd fssresd syl2anc xleadd2a
      ssfi syl31anc xaddid1 cplusg ovex xrsadd ressplusg disjdif undif2 ssequn1
      sstrd cun sylib syl5req gsumsplit resabs1d difss resabs1 mp1i oveq12d
      eqtr2d 3brtr3d ) AFEDUCZMNZOUDNZUUEFECDUEZUCZMNZUDNZUUEFECUCZMNZUFAOPQUUI
      PQZUUEPQZOUUIUFUGZUUFUUJUFUGAUABUHRUIZFEUAUJZUCZMNZUKZULZPOAUUPPUUTUMUVAP
      UNAUAUUPUUSPUUTAUUQUUPQZVEZOUOUPNZPUUSOUOUQZUVCUUQUVDUURFROUVDPUNUVDFURUS
      UTUVEUVDPFVAHVBVCVDZUVDVAPVFVGZUEZVHNZVIUSQOFVJUSUTUVIUVIVKZVLUVDFUVIOFVA
      UVDVHNZUVIUVDVHNZHUVHSQZUVDUVHUNUVLUVKUTPSQUVMVMPUVGSVNVDUBUVDUVHUBUJZPQZ
      OUVNUFUGZVEZUVOUVNVFVOZVEUVNUVDQUVNUVHQUVQUVOUVRUVOUVPVRUVNVPVQUVNVSUVNPV
      FVTWAWBUVHUVDVASWCWDWEUVIUVJWFWGVDZFWHQZUVCFUVKWHHWIWJZWKUVBUUQRQZAUVBUUQ
      BUNZUWBUUQBWSZWLWMZABUVDEUMUWCUUQUVDUURUMUVBJUVBUWCUWBUWDWNBUVDUUQEWOWPZU
      VCUUQUVDUURSOUWFUWEOSQZUVCWQWKWRWTXAUUTVKZXBUUPPUUTXCXDOUVAQZATUUPQZOXEQU
      WIUWJTBUNTRQBXFXGTBWSXHXLUAUUPUUSOTUUTXEUWHUUQTUTZUUSFTMNOUWKUURTFMUWKUUR
      ETUCTUUQTEXIEXJXKXMFOUVSXNXKXOWDWKXPAUVDPUUIUVEAUUGUVDUUHFROUVFUVSUVTAUWA
      WKZACRQZUUGRQACUUPQZUWMKUWNCBUNZUWMCBWSZWLXDZCDXQXDZABUVDUUGEJACBDAUWNUWO
      KUWNUWOUWMUWPWNXDZXRXSZAUUGUVDUUHSOUWTUWRUWGAWQWKZWRWTZXAAUVDPUUEUVEADUVD
      UUDFROUVFUVSUWLAUWMDCUNZDRQUWQLCDYBXTZABUVDDEJADCBLUWSYLXSZADUVDUUDSOUXEU
      XDUXAWRWTXAZAUUIUVDQZUUOUXBUXGUUMUUOUUIVSWLXDOUUIUUEYAYCAUUNUUFUUEUTUXFUU
      EYDXDAUULFUUKDUCZMNZFUUKUUGUCZMNZUDNUUJACUVDDUUGUDUUKFUUPOUVFUVSUVDSQUDFY
      EUSUTOUOUPYFUVDUDVAFSHYGYHVDUWLKABUVDCEJUWSXSZACUVDUUKSOUXLUWQUXAWRDUUGUI
      TUTADCYIWKADUUGYMDCYMZCDCYJAUXCUXMCUTLDCYKYNYOYPAUXIUUEUXKUUIUDAUXHUUDFMA
      EDCLYQXMAUXJUUHFMUUGCUNUXJUUHUTACDYREUUGCYSYTXMUUAUUBUUC $.
  $}

  ${
    $d r s u v w y z A $.  $d r s u v w y z F $.  $d r s u v w y z ph $.
    $d r s u v w y z G $.  $d r u v w y z S $.
    xrge0tsms.g $e |- G = ( RR*s |`s ( 0 [,] +oo ) ) $.
    xrge0tsms.a $e |- ( ph -> A e. V ) $.
    xrge0tsms.f $e |- ( ph -> F : A --> ( 0 [,] +oo ) ) $.
    xrge0tsms.s $e |- S = sup (
      ran ( s e. ( ~P A i^i Fin ) |-> ( G gsum ( F |` s ) ) ) , RR* , < ) $.
    $( Any finite or infinite sum in the nonnegative extended reals is uniquely
       convergent to the supremum of all finite sums.  (Contributed by Mario
       Carneiro, 13-Sep-2015.)  (Proof shortened by AV, 26-Jul-2019.) $)
    xrge0tsms $p |- ( ph -> ( G tsums F ) = { S } ) $=
      ( vz co wcel cc0 cxr wbr clt wa cvv vu vy vx vv vr vw ctsu wceq cpnf cicc
      csn cv wss cres cgsu wi cpw cfn cin wral wrex cle cordt cfv cmpt crn csup
      crest wf iccssxr cxrs ax-mp cmnf cress eqid wne ge0nemnf jca elxrge0 ccmn
      mp2an eqeltri a1i elfpw simprbi simplbi c0ex fdmfifsupp gsumcl sseldi syl
      c0 cc reseq2 syl6eq oveq2d elrnmpt1s supxrub sylancl syl6breqr ctop letop
      wb ovex inss1 cr cioo simplrl simplrr simpr elind syl2anc simprrr simprrl
      adantr fssresd sstrd simprlr xrge0gsumle xrltletrd weq w3a mpbir3and expr
      sseldd ralrimiva syl6breq ad3antrrr mpbid sylib reximddv eleq2 syl5ibrcom
      syl5bi mpd simprr ad2antrr ad2antrl ctps cha xrsbas ressbas2 cdif csubmnd
      cbs c0g xrge0subm difexg simpl eldifsn 3imtr4i ssriv ressabs eqtr4i xrs10
      xrex subm0 xrge0cmn adantl fssres fmptd frn supxrcl syl5eqel 0ss mpbir2an
      syl2an 0fin 0cn res0 gsum0 sylanbrc elrest sseli ctg reex elrestr mp3an12
      xrtgioo syl6eleqr tg2 cxp wfn ioof ffn ovelrn mp2b syl6ss simp-4l simprll
      ssfi eliooord simprd xrlelttrd elioo1 anassrs simpld supxrlub rgenw breq2
      cbvmptv rexrnmpt sseq1 anbi12d imbi1d rexlimdvva rexlimdv eqeltrrd pnfnei
      cioc simp-5l simprl pnfge pnfxr elioc1 ltpnf simplr breqtrrd rexlimddv wo
      rexr xrnemnf mpjaodan syl5 imbi2d rexralbidv imbi12d ralrimiv cts xrstset
      rexlimdva resstset topnval xrstps resstps eltsms mpbir2and letsr ordthaus
      ctsr mp1i resthaus haustsms2 ) ACEDUGMZNZVUDCUKUHAVUECOUIUJMZNZCUAULZNZLU
[encoded data, 4400 characters]
      YIAUYRVBUYSVUAVXKVUFVUTTVUBWSVUCYO $.
  $}

  ${
    $d x A $.  $d x F $.  $d x G $.  $d x V $.
    xrge0tsms2.g $e |- G = ( RR*s |`s ( 0 [,] +oo ) ) $.
    $( Any finite or infinite sum in the nonnegative extended reals is
       convergent.  This is a rather unique property of the set
       ` [ 0 , +oo ] ` ; a similar theorem is not true for ` RR* ` or ` RR ` or
       ` [ 0 , +oo ) ` .  It is true for ` NN0 u. { +oo } ` , however, or more
       generally any additive submonoid of ` [ 0 , +oo ) ` with ` +oo `
       adjoined.  (Contributed by Mario Carneiro, 13-Sep-2015.) $)
    xrge0tsms2 $p |- ( ( A e. V /\ F : A --> ( 0 [,] +oo ) ) ->
        ( G tsums F ) ~~ 1o ) $=
      ( vx wcel cc0 cpnf cicc co wf wa ctsu cpw cfn cin cv cxr clt cres crn csn
      cgsu cmpt csup c1o simpl simpr eqid xrge0tsms xrltso supex ensn1 syl6eqbr
      cen ) ADGZAHIJKBLZMZCBNKFAOPQCBFRUAUDKUEUBZSTUFZUCUGUPUSAVABCDFEUQURUHUQU
      RUIVAUJUKVASUTTULUMUNUO $.
  $}

  ${
    $d r s w x y z C $.  $d r s w x y z D $.  $d r s w x y z J $.
    $d r s x y K $.  $d r s w x y z X $.
    xmetdcn2.1 $e |- J = ( MetOpen ` D ) $.
    ${
      xmetdcn2.2 $e |- C = ( dist ` RR*s ) $.
      xmetdcn2.3 $e |- K = ( MetOpen ` C ) $.
      ${
        metdcn.d $e |- ( ph -> D e. ( *Met ` X ) ) $.
        metdcn.a $e |- ( ph -> A e. X ) $.
        metdcn.b $e |- ( ph -> B e. X ) $.
        metdcn.r $e |- ( ph -> R e. RR+ ) $.
        metdcn.y $e |- ( ph -> Y e. X ) $.
        metdcn.z $e |- ( ph -> Z e. X ) $.
        metdcn.4 $e |- ( ph -> ( A D Y ) < ( R / 2 ) ) $.
        metdcn.5 $e |- ( ph -> ( B D Z ) < ( R / 2 ) ) $.
        $( The metric function of a metric space is always continuous in the
           topology generated by it.  (Contributed by Mario Carneiro,
           5-May-2014.)  (Revised by Mario Carneiro, 4-Sep-2015.) $)
        metdcnlem $p |- ( ph -> ( ( A D B ) C ( Y D Z ) ) < R ) $=
          ( co caddc cxr cxmt cfv wcel cr cle wbr xrsxmet a1i xmetcl syl3anc c2
          cdiv rphalfcld rpred clt rpxrd xmetrtri2 syl13anc xrlelttrd wi xrltle
          syl2anc xmetlecl syl122anc wceq xmetsym oveq12d eqbrtrd readdcld cxad
          mpd xmettri rexadd breqtrd lt2halvesd lelttrd ) ABCEUCZJKEUCZDUCZWBJC
          EUCZDUCZWEWCDUCZUDUCZFADUEUFUGUHZWBUEUHZWCUEUHZWHUIUHWDWHUJUKWDUIUHWI
          ADMULUMZAEIUFUGUHZBIUHZCIUHZWJOPQBCEIUNUOZAWMJIUHZKIUHZWKOSTJKEIUNUOZ
          AWFWGAWIWJWEUEUHZFUPUQUCZUIUHZWFXAUJUKZWFUIUHZWLWPAWMWQWOWTOSQJCEIUNU
          OZAXAAFRURZUSZAWFXAUTUKZXCAWFBJEUCZXAAWIWJWTWFUEUHZWLWPXEWBWEDUEUNUOZ
          AWMWNWQXIUEUHOPSBJEIUNUOAXAXFVAZAWMWNWQWOWFXIUJUKOPSQBJCEDIMVBVCUAVDZ
          AXJXAUEUHZXHXCVEXKXLWFXAVFVGVPWBWEXADUEVHVIZAWIWTWKXBWGXAUJUKZWGUIUHZ
          WLXEWSXGAWGXAUTUKZXPAWGCKEUCZXAAWIWTWKWGUEUHZWLXEWSWEWCDUEUNUOZAWMWOW
          RXSUEUHOQTCKEIUNUOXLAWGCJEUCZKJEUCZDUCZXSUJAWEYBWCYCDAWMWQWOWEYBVJOSQ
          JCEIVKUOAWMWQWRWCYCVJOSTJKEIVKUOVLAWMWOWRWQYDXSUJUKOQTSCKJEDIMVBVCVMU
          BVDZAXTXNXRXPVEYAXLWGXAVFVGVPWEWCXADUEVHVIZVNZAWDWFWGVOUCZWHUJAWIWJWK
          WTWDYHUJUKWLWPWSXEWBWCWEDUEVQVCAXDXQYHWHVJXOYFWFWGVRVGVSZWBWCWHDUEVHV
          IYGAFRUSZYIAWFWGFXOYFYJXMYEVTWA $.
      $}

      $( The metric function of an extended metric space is always continuous
         in the topology generated by it.  In this variation of ~ xmetdcn we
         use the metric topology instead of the order topology on ` RR* ` ,
         which makes the theorem a bit stronger.  Since ` +oo ` is an isolated
         point in the metric topology, this is saying that for any points
         ` A , B ` which are an infinite distance apart, there is a product
         neighborhood around ` <. A , B >. ` such that ` d ( a , b ) = +oo `
         for any ` a ` near ` A ` and ` b ` near ` B ` , i.e. the distance
         function is locally constant ` +oo ` .  (Contributed by Mario
         Carneiro, 5-May-2014.)  (Revised by Mario Carneiro, 4-Sep-2015.) $)
      xmetdcn2 $p |- ( D e. ( *Met ` X ) -> D e. ( ( J tX J ) Cn K ) ) $=
        ( vx vz vs vw wcel co cv clt wbr wa wral crp vy vr cxmt cfv ctx ccn cxp
        cxr wf wrex xmetf cdiv rphalfcl adantl simp-4l simplrl ad2antrr simplrr
        wi c2 simpllr simprl simprr metdcnlem ex ralrimivva wceq anbi12d imbi1d
        breq2 2ralbidv rspcev syl2anc ralrimiva wb xrsxmet a1i txmetcn mpd3an23
        id mpbir2and ) BEUCUDMZBCCUENDUFNMZEEUGUHBUIZIOZJOZBNZKOZPQZUAOZLOZBNZW
        HPQZRZWEWJBNWFWKBNANUBOZPQZUSZLESJESZKTUJZUBTSZUAESIESZBEUKWBWTIUAEEWBW
        EEMZWJEMZRZRZWSUBTXEWOTMZRZWOUTULNZTMZWGXHPQZWLXHPQZRZWPUSZLESJESZWSXFX
        IXEWOUMUNXGXMJLEEXGWFEMZWKEMZRZRZXLWPXRXLRWEWJABWOCDEWFWKFGHWBXDXFXQXLU
        OXGXBXQXLWBXBXCXFUPUQXGXCXQXLWBXBXCXFURUQXEXFXQXLVAXGXOXPXLUPXGXOXPXLUR
        XRXJXKVBXRXJXKVCVDVEVFWRXNKXHTWHXHVGZWQXMJLEEXSWNXLWPXSWIXJWMXKWHXHWGPV
        JWHXHWLPVJVHVIVKVLVMVNVFWBWBAUHUCUDMZWCWDXARVOWBVTXTWBAGVPVQIUAUBKLJBBA
        BCCDEEUHFFHVRVSWA $.
    $}

    ${
      xmetdcn.2 $e |- K = ( ordTop ` <_ ) $.
      $( The metric function of an extended metric space is always continuous
         in the topology generated by it.  (Contributed by Mario Carneiro,
         4-Sep-2015.) $)
      xmetdcn $p |- ( D e. ( *Met ` X ) -> D e. ( ( J tX J ) Cn K ) ) $=
        ( cxmt cfv wcel ctx co cxrs cds cmopn ccn cxr ctopon wss cle eqid cordt
        letopon eqeltri xrsmopn eqsstri cuni xrsxmet ax-mp cnss2 mp2an xmetdcn2
        wceq mopnuni sseldi ) ADGHIBBJKZLMHZNHZOKZUOCOKZACPQHZICUQRURUSRCSUAHZU
        TFUBUCCVAUQFUPUQUPTZUQTZUDUEUOUQCPUPPGHIPUQUFULUPVBUGUPUQPVCUMUHUIUJUPA
        BUQDEVBVCUKUN $.
    $}

    ${
      metdcn2.2 $e |- K = ( topGen ` ran (,) ) $.
      $( The metric function of a metric space is always continuous in the
         topology generated by it.  (Contributed by Mario Carneiro,
         5-May-2014.)  (Revised by Mario Carneiro, 4-Sep-2015.) $)
      metdcn2 $p |- ( D e. ( Met ` X ) -> D e. ( ( J tX J ) Cn K ) ) $=
        ( cme cfv wcel ctx co cle cr ccn eqid syl cxr crn wss a1i cordt metxmet
        crest cxmt xmetdcn ctopon wb letopon cxp wf metf ressxr cnrest2 syl3anc
        frn mpbid cioo ctg xrtgioo eqtri oveq2i syl6eleqr ) ADGHIZABBJKZLUAHZMU
        CKZNKZVDCNKVCAVDVENKIZAVGIZVCADUDHIVHADUBABVEDEVEOUEPVCVEQUFHIZARMSZMQS
        ZVHVIUGVJVCUHTVCDDUIZMAUJVKADUKVMMAUOPVLVCULTMAVDVEQUMUNUPCVFVDNCUQRURH
        VFFVFVFOUSUTVAVB $.
    $}

    metdcn.2 $e |- K = ( TopOpen ` CCfld ) $.
    $( The metric function of a metric space is always continuous in the
       topology generated by it.  (Contributed by Mario Carneiro, 5-May-2014.)
       (Revised by Mario Carneiro, 4-Sep-2015.) $)
    metdcn $p |- ( D e. ( Met ` X ) -> D e. ( ( J tX J ) Cn K ) ) $=
      ( cme cfv wcel ctx co cioo crn ctg ccn cr crest tgioo2 oveq2i ctop sseldi
      wss cnfldtop cnrest2r ax-mp eqsstri eqid metdcn2 ) ADGHIBBJKZLMNHZOKZUICO
      KZAUKUICPQKZOKZULUJUMUIOCFRSCTIUNULUBCFUCPUICUDUEUFABUJDEUJUGUHUA $.
  $}

  ${
    msdcn.x $e |- X = ( Base ` M ) $.
    msdcn.d $e |- D = ( dist ` M ) $.
    msdcn.j $e |- J = ( TopOpen ` M ) $.
    msdcn.2 $e |- K = ( topGen ` ran (,) ) $.
    $( The metric function of a metric space is always continuous in the
       topology generated by it.  (Contributed by Mario Carneiro, 5-May-2014.)
       (Revised by Mario Carneiro, 5-Oct-2015.) $)
    msdcn $p |- ( M e. MetSp -> ( D |` ( X X. X ) ) e. ( ( J tX J ) Cn K ) ) $=
      ( cmt wcel cxp cres cmopn cfv ctx co ccn cme msmet2 metdcn2 mstopn oveq1d
      eqid syl cds reseq1i oveq12d eleqtrrd ) DJKZAEELZMZULNOZUMPQZCRQZBBPQZCRQ
      UJULESOKULUOKADEFGTULUMCEUMUDIUAUEUJUPUNCRUJBUMBUMPULBDEHFADUFOUKGUGUBZUQ
      UHUCUI $.
  $}

  ${
    $d x y D $.  $d x y G $.  $d x y J $.  $d x K $.  $d x y ph $.  $d x y R $.
    $d x y X $.  $d x y Y $.
    cnmpt1ds.d $e |- D = ( dist ` G ) $.
    cnmpt1ds.j $e |- J = ( TopOpen ` G ) $.
    cnmpt1ds.r $e |- R = ( topGen ` ran (,) ) $.
    cnmpt1ds.g $e |- ( ph -> G e. MetSp ) $.
    cnmpt1ds.k $e |- ( ph -> K e. ( TopOn ` X ) ) $.
    ${
      cnmpt1ds.a $e |- ( ph -> ( x e. X |-> A ) e. ( K Cn J ) ) $.
      cnmpt1ds.b $e |- ( ph -> ( x e. X |-> B ) e. ( K Cn J ) ) $.
      $( Continuity of the metric function; analogue of ~ cnmpt12f which cannot
         be used directly because ` D ` is not necessarily a function.
         (Contributed by Mario Carneiro, 5-Oct-2015.) $)
      cnmpt1ds $p |- ( ph -> ( x e. X |-> ( A D B ) ) e. ( K Cn R ) ) $=
        ( co cmpt wcel cbs cfv cxp cres ccn cv wa wf wral ctopon ctps cmt mstps
        syl eqid istps sylib cnf2 syl3anc fmpt sylibr r19.21bi ovresd mpteq2dva
        ctx msdcn cnmpt12f eqeltrrd ) ABJCDEGUAUBZVIUCUDZRZSBJCDERZSIFUERABJVKV
        LABUFJTUGCDEVIACVITZBJAJVIBJCSZUHZVMBJUIAIJUJUBTZHVIUJUBTZVNIHUERZTVOOA
        GUKTZVQAGULTZVSNGUMUNVIHGVIUOZLUPUQZPVNIHJVIURUSBJVICVNVNUOUTVAVBADVITZ
        BJAJVIBJDSZUHZWCBJUIAVPVQWDVRTWEOWBQWDIHJVIURUSBJVIDWDWDUOUTVAVBVCVDABC
        DVJIHHFJOPQAVTVJHHVERFUERTNEHFGVIWAKLMVFUNVGVH $.
    $}

    cnmpt2ds.l $e |- ( ph -> L e. ( TopOn ` Y ) ) $.
    cnmpt2ds.a $e |- ( ph -> ( x e. X , y e. Y |-> A ) e.
                             ( ( K tX L ) Cn J ) ) $.
    cnmpt2ds.b $e |- ( ph -> ( x e. X , y e. Y |-> B ) e.
                             ( ( K tX L ) Cn J ) ) $.
    $( Continuity of the metric function; analogue of ~ cnmpt22f which cannot
       be used directly because ` D ` is not necessarily a function.
       (Contributed by Mario Carneiro, 5-Oct-2015.) $)
    cnmpt2ds $p |- ( ph ->
        ( x e. X , y e. Y |-> ( A D B ) ) e. ( ( K tX L ) Cn R ) ) $=
      ( cbs cfv cxp cres co cmpt2 ctx ccn wcel wceq wral ctopon txtopon syl2anc
      cv wa wf ctps cmt mstps syl eqid istps sylib cnf2 syl3anc sylibr r19.21bi
      fmpt2 ovresd 3impa mpt2eq3dva msdcn cnmpt22f eqeltrrd ) ABCLMDEFHUBUCZVQU
      DUEZUFZUGBCLMDEFUFZUGJKUHUFZGUIUFABCLMVSVTABUPLUJZCUPMUJZVSVTUKAWBUQZWCUQ
      DEFVQWDDVQUJZCMAWECMULZBLALMUDZVQBCLMDUGZURZWFBLULAWAWGUMUCUJZIVQUMUCUJZW
      HWAIUIUFZUJWIAJLUMUCUJKMUMUCUJWJRSJKLMUNUOZAHUSUJZWKAHUTUJZWNQHVAVBVQIHVQ
      VCZOVDVEZTWHWAIWGVQVFVGBCLMDVQWHWHVCVJVHVIVIWDEVQUJZCMAWRCMULZBLAWGVQBCLM
      EUGZURZWSBLULAWJWKWTWLUJXAWMWQUAWTWAIWGVQVFVGBCLMEVQWTWTVCVJVHVIVIVKVLVMA
      BCDEVRJKIIGLMRSTUAAWOVRIIUHUFGUIUFUJQFIGHVQWPNOPVNVBVOVP $.
  $}

  ${
    nmcn.n $e |- N = ( norm ` G ) $.
    nmcn.j $e |- J = ( TopOpen ` G ) $.
    ${
      $d x G $.  $d x J $.  $d x K $.
      nmcn.k $e |- K = ( topGen ` ran (,) ) $.
      $( The norm of a normed group is a continuous function.  (Contributed by
         Mario Carneiro, 4-Oct-2015.) $)
      nmcn $p |- ( G e. NrmGrp -> N e. ( J Cn K ) ) $=
        ( vx cngp wcel cbs cfv cv c0g cds co cmpt ccn eqid nmfval ctopon ngptps
        ngpms ctps istps sylib cnmptid cgrp ngpgrp syl cnmptc cnmpt1ds syl5eqel
        grpidcl ) AIJZDHAKLZHMZANLZAOLZPQBCRPHUSDAUPUREUPSZURSZUSSZTUOHUQURUSCA
        BBUPVBFGAUCUOAUDJBUPUALJAUBUPBAUTFUEUFZUOHBUPVCUGUOHURBBUPUPVCVCUOAUHJU
        RUPJAUIUPAURUTVAUNUJUKULUM $.
    $}

    ngnmcncn.k $e |- K = ( TopOpen ` CCfld ) $.
    $( The norm of a normed group is a continuous function to ` CC ` .
       (Contributed by NM, 12-Aug-2007.)  (Revised by AV, 17-Oct-2021.) $)
    ngnmcncn $p |- ( G e. NrmGrp -> N e. ( J Cn K ) ) $=
      ( cngp wcel cr crest co ccn ctop wss cnfldtop cnrest2r ax-mp cioo crn ctg
      cfv tgioo2 eqcomi nmcn sseldi ) AHIBCJKLZMLZBCMLZDCNIUHUIOCGPJBCQRABUGDEF
      STUAUBUGCGUCUDUEUF $.
  $}

  ${
    abscn.3 $e |- J = ( TopOpen ` CCfld ) $.
    abscn.4 $e |- K = ( topGen ` ran (,) ) $.
    $( The absolute value function on complex numbers is continuous.
       (Contributed by NM, 22-Aug-2007.)  (Proof shortened by Mario Carneiro,
       10-Jan-2014.) $)
    abscn $p |- abs e. ( J Cn K ) $=
      ( ccnfld cngp wcel cabs ccn co cnngp cnfldnm nmcn ax-mp ) EFGHABIJGKEABHL
      CDMN $.
  $}

  ${
    $d r w x y z A $.  $d r s t w x y z D $.  $d r s t w y z J $.  $d s t ph $.
    $d x y B $.  $d r s w z C $.  $d s t G $.  $d w z R $.  $d s t w x y z T $.
    $d r s w z K $.  $d r s t w x y z S $.  $d s w U $.  $d r s t w x y z X $.
    $d r s t w z F $.  $d w z V $.
    metdscn.f $e |- F = ( x e. X |->
      inf ( ran ( y e. S |-> ( x D y ) ) , RR* , < ) ) $.
    $( Value of the "distance to a set" function.  (Contributed by Mario
       Carneiro, 14-Feb-2015.)  (Revised by Mario Carneiro, 4-Sep-2015.)
       (Revised by AV, 30-Sep-2020.) $)
    metdsval $p |- ( A e. X -> ( F ` A ) =
      inf ( ran ( y e. S |-> ( A D y ) ) , RR* , < ) ) $=
      ( cv co cmpt crn cxr clt cinf wceq oveq1 mpteq2dv rneqd infeq1d xrltso
      infex fvmpt ) ACBEAIZBIZDJZKZLZMNOBECUEDJZKZLZMNOGFUDCPZMUHUKNULUGUJULBEU
      FUIUDCUEDQRSTHMUKNUAUBUC $.

    $( The distance from a point to a set is a nonnegative extended real
       number.  (Contributed by Mario Carneiro, 14-Feb-2015.)  (Revised by
       Mario Carneiro, 4-Sep-2015.)  (Proof shortened by AV, 30-Sep-2020.) $)
    metdsf $p |- ( ( D e. ( *Met ` X ) /\ S C_ X ) ->
       F : X --> ( 0 [,] +oo ) ) $=
      ( vz wcel wss wa cv co cxr cc0 cle wbr simplr syl3anc wral cxmt cmpt cinf
      cfv crn clt cpnf cicc wf simplll sselda xmetcl eqid fmptd frn syl infxrcl
      xmetge0 ralrimiva cvv wb ovex rgenw breq2 ralrnmpt ax-mp sylibr infxrgelb
      0xr sylancl mpbird elxrge0 sylanbrc ) CFUAUDIZDFJZKZAFBDALZBLZCMZUBZUEZNU
      FUCZOUGUHMZEVPVQFIZKZWBNIZOWBPQZWBWCIWEWANJZWFWEDNVTUIWHWEBDVSNVTWEVRDIZK
      ZVNWDVRFIZVSNIVNVOWDWIUJZVPWDWIRZWEDFVRVNVOWDRUKZVQVRCFULSVTUMZUNDNVTUOUP
      ZWAUQUPWEWGOHLZPQZHWATZWEOVSPQZBDTZWSWEWTBDWJVNWDWKWTWLWMWNVQVRCFURSUSVSU
      TIZBDTWSXAVAXBBDVQVRCVBVCWRWTBHDVSVTUTWOWQVSOPVDVEVFVGWEWHONIWGWSVAWPVIHW
      AOVHVJVKWBVLVMGUN $.

    $( The distance from the point ` A ` to the set ` S ` is greater than ` R `
       iff the ` R ` -ball around ` A ` misses ` S ` .  (Contributed by Mario
       Carneiro, 4-Sep-2015.)  (Proof shortened by AV, 30-Sep-2020.) $)
    metdsge $p |- ( ( ( D e. ( *Met ` X ) /\ S C_ X /\ A e. X ) /\ R e. RR* )
      -> ( R <_ ( F ` A ) <-> ( S i^i ( A ( ball ` D ) R ) ) = (/) ) ) $=
      ( vz vw cfv wcel cxr cle wbr cv co wral wb cxmt wss w3a cmpt crn clt cinf
      wa cbl cin c0 wceq simpl3 metdsval breq2d wf simpll1 adantr simpl2 sselda
      syl xmetcl syl3anc oveq2 cbvmptv fmptd frn simpr infxrgelb elbl2 syl22anc
      syl2anc wn xrltnle bitrd con2bid ralbidva ovex rgenw breq2 ralrnmpt ax-mp
      cvv disj 3bitr4g 3bitrd ) DHUALMZFHUBZCHMZUCZENMZUHZECGLZOPEBFCBQZDRZUDZU
      EZNUFUGZOPZEJQZOPZJWQSZFCEDUILRZUJUKULZWLWMWREOWLWIWMWRULWGWHWIWKUMZABCDF
      GHIUNVAUOWLWQNUBZWKWSXBTWLFNWPUPXFWLKFCKQZDRZNWPWLXGFMZUHZWGWIXGHMZXHNMZW
      GWHWIWKXIUQZWLWIXIXEURZWLFHXGWGWHWIWKUSUTZCXGDHVBVCZBKFWOXHWNXGCDVDVEZVFF
      NWPVGVAWJWKVHZJWQEVIVLWLEXHOPZKFSZXGXCMZVMZKFSXBXDWLXSYBKFXJYAXSXJYAXHEUF
      PZXSVMZXJWGWKWIXKYAYCTXMWLWKXIXRURZXNXOXGDCEHVJVKXJXLWKYCYDTXPYEXHEVNVLVO
      VPVQXHWCMZKFSXBXTTYFKFCXGDVRVSXAXSKJFXHWPWCXQWTXHEOVTWAWBKFXCWDWEWF $.

    $( If a point is in a set, its distance to the set is zero.  (Contributed
       by Mario Carneiro, 14-Feb-2015.)  (Revised by Mario Carneiro,
       4-Sep-2015.) $)
    metds0 $p |- ( ( D e. ( *Met ` X ) /\ S C_ X /\ A e. S ) ->
        ( F ` A ) = 0 ) $=
      ( cfv wcel cc0 wbr wceq co c0 cle cxr syl wb adantr cxmt wss w3a clt cpnf
      wn cbl cin cicc wf metdsf 3adant3 3adant1 ffvelrnd elxrge0 simplbi xrleid
      ssel2 simp1 simp2 metdsge syl31anc mpbid wa simpl3 simpr syl112anc inelcm
      wne xblcntr syl2anc ex necon2bd mpd wo simprbi 0xr xrleloe sylancr eqcomd
      ord ) DGUAIJZEGUBZCEJZUCZKCFIZWEKWFUDLZUFZKWFMZWEECWFDUGINZUHZOMZWHWEWFWF
      PLZWLWEWFQJZWMWEWFKUEUINZJZWNWEGWOCFWBWCGWOFUJWDABDEFGHUKULWCWDCGJZWBEGCU
      RUMZUNZWPWNKWFPLZWFUOZUPRZWFUQRWEWBWCWQWNWMWLSWBWCWDUSZWBWCWDUTWRXBABCDWF
      EFGHVAVBVCWEWGWKOWEWGWKOVIZWEWGVDZWDCWJJZXDWBWCWDWGVEXEWBWQWNWGXFWEWBWGXC
      TWEWQWGWRTWEWNWGXBTWEWGVFDCWFGVJVGCEWJVHVKVLVMVNWEWGWIWEWTWGWIVOZWEWPWTWS
      WPWNWTXAVPRWEKQJWNWTXGSVQXBKWFVRVSVCWAVNVT $.

    $( A generalization of the triangle inequality to the point-set distance
       function.  Under the usual notation where the same symbol ` d ` denotes
       the point-point and point-set distance functions, this theorem would be
       written ` d ( a , S ) <_ d ( a , b ) + d ( b , S ) ` .  (Contributed by
       Mario Carneiro, 4-Sep-2015.) $)
    metdstri $p |- ( ( ( D e. ( *Met ` X ) /\ S C_ X ) /\
      ( A e. X /\ B e. X ) ) -> ( F ` A ) <_ ( ( A D B ) +e ( F ` B ) ) ) $=
      ( wcel wa co cle wbr c0 wceq cpnf syl2anc adantr syl cxmt cfv wss cbl cin
      cxad cxne cmin simprr simprl rexsub oveq2d resubcld leidd xmetsym syl3anc
      cr simpll eqcomd recnd nncand 3brtr4d blss2 syl33anc eqsstrd expr cxr cc0
      cicc metdsf ffvelrnd elxrge0 simplbi xmetcl xnegcld xaddcld adantrr pnfxr
      wf a1i pnfge ssbl syl221anc xblpnf mpbir2and blpnfctr eqtr2d sseqtrd cmnf
      wb wne wo simprbi ge0nemnf jca xrnemnf sylib mpjaod clt wn pnfnlt xposdif
      xbln0 breq1 sylan9bb necon1bbid mpbid 0ss syl6eqss xmetge0 mpjaodan sslin
      bitr4d xrleid simplr metdsge syl31anc mpbird xlesubadd xaddcom breqtrd
      sseq0 ) EHUAUBJZFHUCZKZCHJZDHJZKZKZCGUBZDGUBZCDELZUFLZYLYKUFLZMYIYJYLUGZU
      FLZYKMNZYJYMMNZYIYQFDYPEUDUBZLZUEZOPZYIUUAFCYJYSLZUEZUCZUUDOPZUUBYIYTUUCU
      CZUUEYIYLUQJZUUGYLQPZYIUUHKZYJUQJZUUGYJQPZYIUUHUUKUUGYIUUHUUKKZKZYTDYJYLU
      HLZYSLZUUCUUNYPUUODYSUUNUUKUUHYPUUOPYIUUHUUKUIZYIUUHUUKUJZYJYLUKRULUUNYCY
      GYFUUOUQJUUKDCELZYJUUOUHLZMNUUPUUCUCYIYCUUMYCYDYHURZSYIYGUUMYEYFYGUIZSYIY
      FUUMYEYFYGUJZSUUNYJYLUUQUURUMUUQUUNYLYLUUSUUTMUUNYLUURUNUUNYLUUSYIYLUUSPZ
      UUMYIYCYFYGUVDUVAUVCUVBCDEHUOUPSUSUUNYJYLUUNYJUUQUTUUNYLUURUTVAVBEDCUUOYJ
      HVCVDVEVFYIUUHUULUUGYIUUHUULKZKZYTDQYSLZUUCUVFYCYGYPVGJZQVGJZYPQMNZYTUVGU
      CYIYCUVEUVASZYIYGUVEUVBSZYIUUHUVHUULUUJYJYOYIYJVGJZUUHYIYJVHQVILZJZUVMYIH
      UVNCGYEHUVNGVSYHABEFGHIVJSZUVCVKZUVOUVMVHYJMNZYJVLZVMTZSUUJYLYIYLVGJZUUHY
      IYCYFYGUWAUVAUVCUVBCDEHVNUPZSVOVPVQZUVIUVFVRVTUVFUVHUVJUWCYPWATEDYPQHWBWC
      UVFUUCCQYSLZUVGUVFYJQCYSYIUUHUULUIULUVFYCYFDUWDJZUWDUVGPUVKYIYFUVEUVCSZUV
      FUWEYGUUHUVLYIUUHUULUJUVFYCYFUWEYGUUHKWJUVKUWFDECHWDRWEDECHWFUPWGWHVFUUJU
      VMYJWIWKZKZUUKUULWLYIUWHUUHYIUVMUWGUVTYIUVMUVRUWGUVTYIUVOUVRUVQUVOUVMUVRU
      VSWMTZYJWNRWOSYJWPWQWRYIUUIKZYTOUUCUWJQYJWSNZWTZYTOPYIUWLUUIYIUVMUWLUVTYJ
      XATSUWJUWKYTOYIYTOWKZYLYJWSNZUUIUWKYIUWMVHYPWSNZUWNYIYCYGUVHUWMUWOWJUVAUV
      BYIYJYOUVTYIYLUWBVOVPZEDYPHXCUPYIUWAUVMUWNUWOWJUWBUVTYLYJXBRXMYLQYJWSXDXE
      XFXGUUCXHXIYIUWAYLWIWKZKUUHUUIWLYIUWAUWQUWBYIUWAVHYLMNZUWQUWBYIYCYFYGUWRU
      VAUVCUVBCDEHXJUPYLWNRZWOYLWPWQXKYTUUCFXLTYIYJYJMNZUUFYIUVMUWTUVTYJXNTYIYC
      YDYFUVMUWTUUFWJUVAYCYDYHXOZUVCUVTABCEYJFGHIXPXQXGUUAUUDYBRYIYCYDYGUVHYQUU
      BWJUVAUXAUVBUWPABDEYPFGHIXPXQXRYIUVMUWAYKVGJZUVRUWQVHYKMNZYQYRWJUVTUWBYIY
      KUVNJZUXBYIHUVNDGUVPUVBVKZUXDUXBUXCYKVLZVMTZUWIUWSYIUXDUXCUXEUXDUXBUXCUXF
      WMTYJYLYKXSVDXGYIUXBUWAYMYNPUXGUWBYKYLXTRYA $.

    $( The distance from a point to a set is bounded by the distance to any
       member of the set.  (Contributed by Mario Carneiro, 5-Sep-2015.) $)
    metdsle $p |- ( ( ( D e. ( *Met ` X ) /\ S C_ X ) /\
      ( A e. S /\ B e. X ) ) -> ( F ` B ) <_ ( A D B ) ) $=
      ( cxmt cfv wcel wa co cxad cle adantrr cc0 wceq syl3anc wss simprr sselda
      wbr simpr jca metdstri syldan simpll xmetsym metds0 3expa oveq12d xaddid1
      cxr xmetcl syl eqtrd breqtrd ) EHJKLZFHUAZMZCFLZDHLZMZMZDGKZDCENZCGKZONZC
      DENZPVBVEVDCHLZMVGVJPUDVFVDVLVBVCVDUBZVBVCVLVDVBFHCUTVAUEUCQZUFABDCEFGHIU
      GUHVFVJVKRONZVKVFVHVKVIROVFUTVDVLVHVKSUTVAVEUIZVMVNDCEHUJTVBVCVIRSZVDUTVA
      VCVQABCEFGHIUKULQUMVFVKUOLZVOVKSVFUTVLVDVRVPVNVMCDEHUPTVKUNUQURUS $.

    $( The distance from a point to a nonempty set in a proper metric space is
       a real number.  (Contributed by Mario Carneiro, 5-Sep-2015.) $)
    metdsre $p |- ( ( D e. ( Met ` X ) /\ S C_ X /\ S =/= (/) ) ->
       F : X --> RR ) $=
      ( vz vw cfv wcel cr wf cv wa cc0 co adantr syl cle cme wss c0 wne wex wfn
      n0 wral cpnf cicc cxmt metxmet metdsf ffn cxr wbr simprr ffvelrnd elxrge0
      sylan simplbi simpll simpr sselda adantrr syl3anc simprbi metdsle sylanl1
      metcl xrrege0 syl22anc anassrs ralrimiva ffnfv sylanbrc ex exlimdv syl5bi
      3impia ) CFUAJKZDFUBZDUCUDZFLEMZWCHNZDKZHUEWAWBOZWDHDUGWGWFWDHWGWFWDWGWFO
      ZEFUFZINZEJZLKZIFUHWDWHFPUIUJQZEMZWIWGWNWFWACFUKJKZWBWNCFULZABCDEFGUMUTZR
      FWMEUNSWHWLIFWGWFWJFKZWLWGWFWROZOZWKUOKZWEWJCQZLKZPWKTUPZWKXBTUPZWLWTWKWM
      KZXAWTFWMWJEWGWNWSWQRWGWFWRUQZURZXFXAXDWKUSZVASWTWAWEFKZWRXCWAWBWSVBWGWFX
      JWRWGDFWEWAWBVCVDVEXGWEWJCFVJVFWTXFXDXHXFXAXDXIVGSWAWOWBWSXEWPABWEWJCDEFG
      VHVIWKXBVKVLVMVNIFLEVOVPVQVRVSVT $.

    metdscn.j $e |- J = ( MetOpen ` D ) $.
    $( The distance from a point to a set is zero iff the point is in the
       closure set.  (Contributed by Mario Carneiro, 14-Feb-2015.) $)
    metdseq0 $p |- ( ( D e. ( *Met ` X ) /\ S C_ X /\ A e. X ) ->
      ( ( F ` A ) = 0 <-> A e. ( ( cls ` J ) ` S ) ) ) $=
      ( cfv wcel cc0 wceq wa cin c0 syl cle wbr vz vr cxmt wss w3a ccl wne wral
      cv wi cbl co crp wrex simpll1 simprl simprr mopni2 syl3anc ssrin wn rpgt0
      clt cr wb 0re rpre ltnle sylancr mpbid ad2antrl simpllr breq2d cxr adantr
      simpl2 ad2antrr simpl3 rpxr metdsge bitr3d incom eqeq1i syl6bb necon3bbid
      syl31anc ssn0 syl2anc rexlimddv expr ralrimiva ctop cuni ctopon mopntopon
      3ad2ant1 topontop toponuni sseqtrd eleqtrd eqid elcls cpnf cicc ffvelrnda
      mpbird metdsf 3impa elxrge0 simplbi xrleid syl5eq simpll2 simpll3 xblcntr
      mpdan simplr blopn simpr syl112anc clsndisj syl32anc necon2bd mpd simprbi
      ex wo 0xr xrleloe ord eqcomd impbida ) DHUCKLZEHUDZCHLZUEZCFKZMNZCEGUFKKL
      ZYPYROZYSCUAUIZLZUUAEPZQUGZUJZUAGUHZYTUUEUAGYTUUAGLZUUBUUDYTUUGUUBOZOZCUB
      UIZDUKKZULZUUAUDZUUDUBUMUUIYMUUGUUBUUMUBUMUNYMYNYOYRUUHUOZYTUUGUUBUPYTUUG
      UUBUQUBUUADCGHJURUSUUIUUJUMLZUUMOZOZUULEPZUUCUDZUURQUGZUUDUUQUUMUUSUUIUUO
      UUMUQUULUUAEUTRUUQUUJMSTZVAZUUTUUOUVBUUIUUMUUOMUUJVCTZUVBUUJVBUUOMVDLUUJV
      DLUVCUVBVEVFUUJVGMUUJVHVIVJVKUUQUVAUURQUUQUVAEUULPZQNZUURQNUUQUUJYQSTZUVA
      UVEUUQYQMUUJSYPYRUUHUUPVLVMUUQYMYNYOUUJVNLZUVFUVEVEUUIYMUUPUUNVOYTYNUUHUU
      PYMYNYOYRVPZVQYTYOUUHUUPYMYNYOYRVRZVQUUOUVGUUIUUMUUJVSVKABCDUUJEFHIVTWFWA
      UVDUURQEUULWBWCWDWEVJUURUUCWGWHWIWJWKYTGWLLZEGWMZUDZCUVKLYSUUFVEYTGHWNKLZ
      UVJYPUVMYRYMYNUVMYODGHJWOWPZVOZHGWQZRYTEHUVKUVHYTUVMHUVKNZUVOHGWRZRZWSYTC
      HUVKUVIUVSWTUACEGUVKUVKXAZXBUSXFYPYSOZMYQUWAMYQVCTZVAZMYQNZUWACYQUUKULZEP
      ZQNZUWCYPUWGYSYPUWFEUWEPZQUWEEWBYPYQYQSTZUWHQNZYPYQVNLZUWIYPYQMXCXDULZLZU
      WKYMYNYOUWMYMYNOHUWLCFABDEFHIXGXEXHZUWMUWKMYQSTZYQXIZXJRZYQXKRYPUWKUWIUWJ
      VEUWQABCDYQEFHIVTXPVJXLVOUWAUWBUWFQUWAUWBUWFQUGZUWAUWBOZUVJUVLYSUWEGLZCUW
      ELZUWRUWSUVMUVJYPUVMYSUWBUVNVQZUVPRUWSEHUVKYMYNYOYSUWBXMUWSUVMUVQUXBUVRRW
      SYPYSUWBXQUWSYMYOUWKUWTYMYNYOYSUWBUOZYMYNYOYSUWBXNZYPUWKYSUWBUWQVQZDCYQGH
      JXRUSUWSYMYOUWKUWBUXAUXCUXDUXEUWAUWBXSDCYQHXOXTCEUWEGUVKUVTYAYBYFYCYDUWAU
      WBUWDYPUWBUWDYGZYSYPUWOUXFYPUWMUWOUWNUWMUWKUWOUWPYERYPMVNLUWKUWOUXFVEYHUW
      QMYQYIVIVJVOYJYDYKYL $.

    ${
      metdscn.c $e |- C = ( dist ` RR*s ) $.
      metdscn.k $e |- K = ( MetOpen ` C ) $.
      ${
        metdscnlem.1 $e |- ( ph -> D e. ( *Met ` X ) ) $.
        metdscnlem.2 $e |- ( ph -> S C_ X ) $.
        metdscnlem.3 $e |- ( ph -> A e. X ) $.
        metdscnlem.4 $e |- ( ph -> B e. X ) $.
        metdscnlem.5 $e |- ( ph -> R e. RR+ ) $.
        metdscnlem.6 $e |- ( ph -> ( A D B ) < R ) $.
        $( Lemma for ~ metdscn .  (Contributed by Mario Carneiro,
           4-Sep-2015.) $)
        metdscnlem $p |- ( ph -> ( ( F ` A ) +e -e ( F ` B ) ) < R ) $=
          ( cfv cxne cxad co cc0 cpnf cicc wcel cxr cxmt wss wf metdsf ffvelrnd
          syl2anc cle wbr elxrge0 simplbi xnegcld xaddcld xmetcl rpxrd metdstri
          syl syl3anc syl22anc cmnf simprbi ge0nemnf xmetge0 xlesubadd syl33anc
          wne wb mpbird xrlelttrd ) ADJUDZEJUDZUEZUFUGZDEGUGZHAWAWCAWAUHUIUJUGZ
          UKZWAULUKZAMWFDJAGMUMUDUKZIMUNZMWFJUORSBCGIJMNUPURZTUQZWGWHUHWAUSUTZW
          AVAZVBVHZAWBAWBWFUKZWBULUKZAMWFEJWKUAUQZWPWQUHWBUSUTZWBVAZVBVHZVCVDAW
          IDMUKZEMUKZWEULUKZRTUADEGMVEVIZAHUBVFAWDWEUSUTZWAWEWBUFUGUSUTZAWIWJXB
          XCXGRSTUABCDEGIJMNVGVJAWHWQXDWMWBVKVQZUHWEUSUTZXFXGVRWOXAXEAWGWMWLWGW
          HWMWNVLVHAWQWSXHXAAWPWSWRWPWQWSWTVLVHWBVMURAWIXBXCXIRTUADEGMVNVIWAWBW
          EVOVPVSUCVT $.
      $}

      $( The function ` F ` which gives the distance from a point to a set is a
         continuous function into the metric topology of the extended reals.
         (Contributed by Mario Carneiro, 14-Feb-2015.)  (Revised by Mario
         Carneiro, 4-Sep-2015.) $)
      metdscn $p |- ( ( D e. ( *Met ` X ) /\ S C_ X ) ->
          F e. ( J Cn K ) ) $=
        ( vw wcel wa co cxr clt wbr vz vs vr cxmt cfv wss ccn wf cv wi wral crp
        wrex cc0 cpnf cicc metdsf iccssxr fss sylancl simprr cle cxne cxad wceq
        ad2antrr simplrl simprl syl2anc simplll simpllr simplrr xmetsym syl3anc
        ffvelrnd xrsdsval eqbrtrd metdscnlem breq1 ifboth expr ralrimiva imbi1d
        cif breq2 ralbidv rspcev ralrimivva wb simpl xrsxmet metcn mpbir2and )
        DIUDUEOZEIUFZPZFGHUGQOZIRFUHZUAUIZNUIZDQZUBUIZSTZWSFUEZWTFUEZCQZUCUIZST
        ZUJZNIUKZUBULUMZUCULUKUAIUKZWPIUNUOUPQZFUHXMRUFWRABDEFIJUQUNUOURIXMRFUS
        UTZWPXKUAUCIULWPWSIOZXGULOZPZPZXPXAXGSTZXHUJZNIUKZXKWPXOXPVAXRXTNIXRWTI
        OZXSXHXRYBXSPZPZXFXDXEVBTZXEXDVCVDQZXDXEVCVDQZWDZXGSYDXDROXEROXFYHVEYDI
        RWSFWPWRXQYCXNVFZWPXOXPYCVGZVOYDIRWTFYIXRYBXSVHZVOXDXECLVPVIYDYFXGSTZYG
        XGSTZYHXGSTZYDABWTWSCDXGEFGHIJKLMWNWOXQYCVJZWNWOXQYCVKZYKYJWPXOXPYCVLZY
        DWTWSDQZXAXGSYDWNYBXOYRXAVEYOYKYJWTWSDIVMVNXRYBXSVAZVQVRYDABWSWTCDXGEFG
        HIJKLMYOYPYJYKYQYSVRYEYLYMYNYFYGYFYHXGSVSYGYHXGSVSVTVIVQWAWBXJYAUBXGULX
        BXGVEZXIXTNIYTXCXSXHXBXGXASWEWCWFWGVIWHWPWNCRUDUEOWQWRXLPWIWNWOWJCLWKUA
        UCUBNDCFGHIRKMWLUTWM $.
    $}

    ${
      metdscn2.k $e |- K = ( TopOpen ` CCfld ) $.
      $( The function ` F ` which gives the distance from a point to a nonempty
         set in a metric space is a continuous function into the topology of
         the complex numbers.  (Contributed by Mario Carneiro, 5-Sep-2015.) $)
      metdscn2 $p |- ( ( D e. ( Met ` X ) /\ S C_ X /\ S =/= (/) ) ->
          F e. ( J Cn K ) ) $=
        ( cfv wcel wss cmopn cr co ccn eqid cxr cme wne w3a cxrs cds crest cioo
        c0 crn ctg cxp cres xrsdsre cxmt wceq xrsxmet ressxr mp2an tgioo tgioo2
        metrest eqtr3i oveq2i ctop cnfldtop ax-mp eqsstri metxmet metdscn sylan
        cnrest2r 3adant3 wf wb metdsre frn mopntopon cnrest2 mp3an13 3syl mpbid
        ctopon sseldi ) CHUALMZDHNZDUHUBZUCZFUDUELZOLZPUFQZRQZFGRQZEWKFGPUFQZRQ
        ZWLWJWMFRUGUIUJLWJWMWHPPUKULZWJWHWHSZUMWHTUNLMZPTNZWJWOOLZUOWHWPUPZUQWH
        WOWIWSTPWOSWISZWSSVAURUSGKUTVBVCGVDMWNWLNGKVEPFGVKVFVGWGEFWIRQMZEWKMZWD
        WEXBWFWDCHUNLMWEXBCHVHABWHCDEFWIHIJWPXAVIVJVLWGHPEVMEUIPNZXBXCVNZABCDEH
        IVOHPEVPWITWBLMZXDWRXEWQXFWTWHWITXAVQVFUQPEFWITVRVSVTWAWC $.
    $}

    metnrmlem.1 $e |- ( ph -> D e. ( *Met ` X ) ) $.
    metnrmlem.2 $e |- ( ph -> S e. ( Clsd ` J ) ) $.
    metnrmlem.3 $e |- ( ph -> T e. ( Clsd ` J ) ) $.
    metnrmlem.4 $e |- ( ph -> ( S i^i T ) = (/) ) $.
    $( Lemma for ~ metnrm .  (Contributed by Mario Carneiro, 14-Jan-2014.)
       (Revised by Mario Carneiro, 4-Sep-2015.) $)
    metnrmlem1a $p |- ( ( ph /\ A e. T ) ->
      ( 0 < ( F ` A ) /\ if ( 1 <_ ( F ` A ) , 1 , ( F ` A ) ) e. RR+ ) ) $=
      ( wcel cc0 wbr c1 wa cfv clt cle cif crp wceq cin c0 wn adantr wne inelcm
      wi expcom adantl necon2bd mpd ccl eqcom cxmt wss cuni ccld eqid cldss syl
      mopnuni sseqtr4d simpr sseldd metdseq0 syl3anc syl5bb cldcls eleq2d bitrd
      wb mtbird wo cpnf cicc co metdsf syl2anc ffvelrnd cxr elxrge0 simprbi 0xr
      wf simplbi xrleloe sylancr mpbid ord mt3d 1re rexri ifcl 1red 0lt1 ifboth
      cr breq2 xrltle xrmin1 xrrege0 syl22anc elrpd jca ) ADGQZUAZRDHUBZUCSZTXN
      UDSZTXNUEZUFQXMXORXNUGZXMXRDFQZXMFGUHZUIUGZXSUJAYAXLPUKXMXSXTUIXLXSXTUIUL
      ZUNAXSXLYBDFGUMUOUPUQURXMXRDFIUSUBUBZQZXSXRXNRUGZXMYDRXNUTXMEJVAUBQZFJVBZ
      DJQYEYDVRAYFXLMUKZXMFIVCZJXMFIVDUBZQZFYIVBAYKXLNUKZFIYIYIVEZVFVGXMYFJYIUG
      YHEIJLVHVGZVIZXMGJDXMGYIJXMGYJQZGYIVBAYPXLOUKGIYIYMVFVGYNVIAXLVJVKZBCDEFH
      IJKLVLVMVNXMYCFDXMYKYCFUGYLFIVOVGVPVQVSXMXOXRXMRXNUDSZXOXRVTZXMXNRWAWBWCZ
      QZYRXMJYTDHXMYFYGJYTHWKYHYOBCEFHJKWDWEYQWFZUUAXNWGQZYRXNWHZWIVGXMRWGQZUUC
      YRYSVRWJXMUUAUUCUUBUUAUUCYRUUDWLVGZRXNWMWNWOWPWQZXMXQXMXQWGQZTXDQRXQUDSZX
      QTUDSZXQXDQXMTWGQZUUCUUHTWRWSZUUFXPTXNWGWTWNZXMXAXMRXQUCSZUUIXMRTUCSZXOUU
      NXBUUGXPUUOXOUUNTXNTXQRUCXEXNXQRUCXEXCWNZXMUUEUUHUUNUUIUNWJUUMRXQXFWNURXM
      UUKUUCUUJUULUUFTXNXGWNXQTXHXIUUPXJXK $.

    $( Lemma for ~ metnrm .  (Contributed by Mario Carneiro, 14-Jan-2014.)
       (Revised by Mario Carneiro, 4-Sep-2015.) $)
    metnrmlem1 $p |- ( ( ph /\ ( A e. S /\ B e. T ) ) ->
                       if ( 1 <_ ( F ` B ) , 1 , ( F ` B ) ) <_ ( A D B ) ) $=
      ( wcel c1 cle wa cfv wbr cif co cxr 1re rexri cc0 cpnf cicc wss wf adantr
      cxmt cuni ccld eqid cldss syl wceq mopnuni sseqtr4d metdsf syl2anc simprr
      sseldd ffvelrnd elxrge0 simplbi ifcl sylancr simprl xmetcl syl3anc xrmin2
      metdstri syl22anc xmetsym metds0 oveq12d xaddid1 eqtrd breqtrd xrletrd
      cxad ) ADGRZEHRZUAZUAZSEIUBZTUCZSWKUDZWKDEFUEZWJSUFRZWKUFRZWMUFRSUGUHZWJW
      KUIUJUKUEZRZWPWJKWREIWJFKUOUBRZGKULZKWRIUMAWTWINUNZWJGJUPZKWJGJUQUBZRZGXC
      ULAXEWIOUNGJXCXCURZUSUTWJWTKXCVAXBFJKMVBUTZVCZBCFGIKLVDVEWJHKEWJHXCKWJHXD
      RZHXCULAXIWIPUNHJXCXFUSUTXGVCAWGWHVFVGZVHWSWPUIWKTUCWKVIVJUTZWLSWKUFVKVLX
      KWJWTDKRZEKRZWNUFRZXBWJGKDXHAWGWHVMZVGZXJDEFKVNVOZWJWOWPWMWKTUCWQXKSWKVPV
      LWJWKEDFUEZDIUBZWFUEZWNTWJWTXAXMXLWKXTTUCXBXHXJXPBCEDFGIKLVQVRWJXTWNUIWFU
      EZWNWJXRWNXSUIWFWJWTXMXLXRWNVAXBXJXPEDFKVSVOWJWTXAWGXSUIVAXBXHXOBCDFGIKLV
      TVOWAWJXNYAWNVAXQWNWBUTWCWDWE $.

    metnrmlem.u $e |- U = U_ t e. T ( t ( ball ` D )
      ( if ( 1 <_ ( F ` t ) , 1 , ( F ` t ) ) / 2 ) ) $.
    $( Lemma for ~ metnrm .  (Contributed by Mario Carneiro, 14-Jan-2014.)
       (Revised by Mario Carneiro, 5-Sep-2015.) $)
    metnrmlem2 $p |- ( ph -> ( U e. J /\ T C_ U ) ) $=
      ( wcel wss cv c1 cfv cle wbr cif cdiv cbl ciun ctop wral cxmt mopntop syl
      c2 co wa cxr adantr cuni ccld eqid cldss wceq mopnuni sseqtr4d sselda cc0
      clt crp metnrmlem1a simprd rphalfcld rpxrd blopn syl3anc ralrimiva iunopn
      syl2anc syl5eqel csn blcntr snssd ss2iun iunid eqcomi 3sstr4g jca ) AHJSG
      HTAHDGDUAZUBWIIUCZUDUEUBWJUFZUOUGUPZEUHUCUPZUIZJRAJUJSZWMJSZDGUKWNJSAEKUL
      UCSZWONEJKMUMUNAWPDGAWIGSZUQZWQWIKSZWLURSWPAWQWRNUSZAGKWIAGJUTZKAGJVAUCSG
      XBTPGJXBXBVBVCUNAWQKXBVDNEJKMVEUNVFVGZWSWLWSWKWSVHWJVIUEWKVJSABCWIEFGIJKL
      MNOPQVKVLVMZVNEWIWLJKMVOVPVQDGWMJVRVSVTADGWIWAZUIZWNGHAXEWMTZDGUKXFWNTAXG
      DGWSWIWMWSWQWTWLVJSWIWMSXAXCXDEWIWLKWBVPWCVQDGXEWMWDUNXFGDGWEWFRWGWH $.

    metnrmlem.g $e |- G = ( x e. X |->
      inf ( ran ( y e. T |-> ( x D y ) ) , RR* , < ) ) $.
    metnrmlem.v $e |- V = U_ s e. S ( s ( ball ` D )
      ( if ( 1 <_ ( G ` s ) , 1 , ( G ` s ) ) / 2 ) ) $.
    $( Lemma for ~ metnrm .  (Contributed by Mario Carneiro, 14-Jan-2014.)
       (Revised by Mario Carneiro, 5-Sep-2015.) $)
    metnrmlem3 $p |- ( ph -> E. z e. J E. w e. J
                       ( S C_ z /\ T C_ w /\ ( z i^i w ) = (/) ) ) $=
      ( wcel wss cin c0 wceq w3a wrex incom syl5eq metnrmlem2 simpld simprd cfv
      cv c1 cle wbr cif c2 cdiv co cbl ciun ineq1i iunin1 eqtr4i wral wa ineq2i
      iunin2 cxmt cxr cxad adantr cuni ccld eqid cldss mopnuni sseqtr4d adantrr
      syl sselda adantrl crp cc0 clt metnrmlem1a rphalfcld rpxrd caddc cr rpred
      rehalfcld rexadd syl2anc 2cnd wne 2ne0 a1i divdird eqtr4d cxmu metnrmlem1
      recnd ancom2s xmetsym syl3anc breqtrd xmetcl xle2add syl22anc mp2and cmul
      wi readdcld divcan2d 2re rexmul sylancr 3eqtr4d x2times 3brtr4d rexrd 2rp
      wb xlemul2 mpbird eqbrtrd bldisj ralrimiva iunss sylibr sseq2 eqeq1d ss0
      syl33anc anassrs syl5eqss ineq1 3anbi13d ineq2 3anbi23d rspc2ev syl113anc
      eqimss ) ANMUFZJMUFZHNUGZIJUGZNJUHZUIUJZHDUSZUGZIEUSZUGZUURUUTUHZUIUJZUKZ
      EMULDMULAUULUUNABCPGIHNLMOUDRSUATAIHUHHIUHUIIHUMUBUNZUEUOZUPAUUMUUOABCFGH
      IJKMOQRSTUAUBUCUOZUPAUULUUNUVFUQAUUMUUOUVGUQAUUPPHPUSZUTUVHLURZVAVBUTUVIV
      CZVDVEVFZGVGURZVFZJUHZVHZUIUUPPHUVMVHZJUHUVONUVPJUEVIPHJUVMVJVKAUVOUIUGZU
      VOUIUJAUVNUIUGZPHVLUVQAUVRPHAUVHHUFZVMZUVNFIUVMFUSZUTUWAKURZVAVBUTUWBVCZV
      DVEVFZUVLVFZUHZVHZUIUVNUVMFIUWEVHZUHUWGJUWHUVMUCVNFIUVMUWEVOVKUVTUWFUIUGZ
      FIVLUWGUIUGUVTUWIFIAUVSUWAIUFZUWIAUVSUWJVMZVMZUWFUIUJZUWIUWLGOVPURUFZUVHO
      UFZUWAOUFZUVKVQUFUWDVQUFUVKUWDVRVFZUVHUWAGVFZVAVBUWMAUWNUWKSVSZAUVSUWOUWJ
      AHOUVHAHMVTZOAHMWAURZUFHUWTUGTHMUWTUWTWBZWCWGAUWNOUWTUJSGMORWDWGZWEWHWFZA
      UWJUWPUVSAIOUWAAIUWTOAIUXAUFIUWTUGUAIMUWTUXBWCWGUXCWEWHWIZUWLUVKUWLUVJAUV
      SUVJWJUFZUWJUVTWKUVIWLVBUXFABCUVHGIHLMOUDRSUATUVEWMUQWFZWNWOUWLUWDUWLUWCU
      WLWKUWBWLVBZUWCWJUFZAUWJUXHUXIVMUVSABCUWAGHIKMOQRSTUAUBWMWIUQZWNWOUWLUWQU
      VJUWCWPVFZVDVEVFZUWRVAUWLUWQUVKUWDWPVFZUXLUWLUVKWQUFUWDWQUFUWQUXMUJUWLUVJ
      UWLUVJUXGWRZWSUWLUWCUWLUWCUXJWRZWSUVKUWDWTXAUWLUVJUWCVDUWLUVJUXNXJUWLUWCU
      XOXJUWLXBZVDWKXCUWLXDXEZXFXGUWLUXLUWRVAVBZVDUXLXHVFZVDUWRXHVFZVAVBZUWLUVJ
      UWCVRVFZUWRUWRVRVFZUXSUXTVAUWLUVJUWRVAVBZUWCUWRVAVBZUYBUYCVAVBZUWLUVJUWAU
      VHGVFZUWRVAAUWJUVSUVJUYGVAVBABCUWAUVHGIHLMOUDRSUATUVEXIXKUWLUWNUWPUWOUYGU
      WRUJUWSUXEUXDUWAUVHGOXLXMXNABCUVHUWAGHIKMOQRSTUAUBXIUWLUVJVQUFUWCVQUFUWRV
      QUFZUYHUYDUYEVMUYFXTUWLUVJUXGWOUWLUWCUXJWOUWLUWNUWOUWPUYHUWSUXDUXEUVHUWAG
      OXOXMZUYIUVJUWCUWRUWRXPXQXRUWLVDUXLXSVFZUXKUXSUYBUWLUXKVDUWLUXKUWLUVJUWCU
      XNUXOYAZXJUXPUXQYBUWLVDWQUFUXLWQUFUXSUYJUJYCUWLUXKUYKWSZVDUXLYDYEUWLUVJWQ
      UFUWCWQUFUYBUXKUJUXNUXOUVJUWCWTXAYFUWLUYHUXTUYCUJUYIUWRYGWGYHUWLUXLVQUFUY
      HVDWJUFZUXRUYAYKUWLUXLUYLYIUYIUYMUWLYJXEUXLUWRVDYLXMYMYNGUVHUWAUVKUWDOYOU
      UBUWFUIUUKWGUUCYPFIUWFUIYQYRUUDYPPHUVNUIYQYRUVOUUAWGUNUVDUUNUUOUUQUKUUNUV
      ANUUTUHZUIUJZUKDENJMMUURNUJZUUSUUNUVCUYOUVAUURNHYSUYPUVBUYNUIUURNUUTUUEYT
      UUFUUTJUJZUVAUUOUYOUUQUUNUUTJIYSUYQUYNUUPUIUUTJNUUGYTUUHUUIUUJ $.
  $}

  ${
    $d s t u v w x y z D $.  $d s t v w x y z J $.  $d s t u v w x y z X $.
    metnrm.j $e |- J = ( MetOpen ` D ) $.
    $( A metric space is normal.  (Contributed by Jeff Hankins, 31-Aug-2013.)
       (Revised by Mario Carneiro, 5-Sep-2015.)  (Proof shortened by AV,
       30-Sep-2020.) $)
    metnrm $p |- ( D e. ( *Met ` X ) -> J e. Nrm ) $=
      ( vx vy vz vw vu vv vs vt cfv wcel cv cin c1 co cmpt eqid cxmt c0 wss w3a
      ctop wceq wrex wi ccld wral cnrm mopntop wa crn cxr clt cinf cle wbr cdiv
      cif c2 ciun simp1 simp2l simp2r simp3 metnrmlem3 3expia ralrimivva isnrm3
      cbl sylanbrc ) ACUAMNZBUENEOZFOZPUBUFZVOGOZUCVPHOZUCVRVSPUBUFUDHBUGGBUGZU
      HZFBUIMZUJEWBUJBUKNABCDULVNWAEFWBWBVNVOWBNZVPWBNZUMZVQVTVNWEVQUDIJGHKAVOV
      PKVPKOZQWFICJVOIOJOARZSUNUOUPUQSZMZURUSQWIVAVBUTRAVLMZRVCZWHICJVPWGSUNUOU
      PUQSZBLVOLOZQWMWLMZURUSQWNVAVBUTRWJRVCZCLWHTDVNWEVQVDVNWCWDVQVEVNWCWDVQVF
      VNWEVQVGWKTWLTWOTVHVIVJGHBEFVKVM $.

    $( A metric space is regular.  (Contributed by Mario Carneiro,
       29-Dec-2016.) $)
    metreg $p |- ( D e. ( *Met ` X ) -> J e. Reg ) $=
      ( cxmt cfv wcel cnrm ct1 creg metnrm cha methaus haust1 nrmreg syl2anc
      syl ) ACEFGZBHGBIGZBJGABCDKRBLGSABCDMBNQBOP $.
  $}

  ${
    $d a b c u v w x y z J $.  $d u w x y z K $.  $d a b c u v x y z .+ $.
    addcn.j $e |- J = ( TopOpen ` CCfld ) $.
    ${
      addcn.2 $e |- .+ : ( CC X. CC ) --> CC $.
      addcn.3 $e |- ( ( a e. RR+ /\ b e. CC /\ c e. CC ) ->
      E. y e. RR+ E. z e. RR+ A. u e. CC A. v e. CC
        ( ( ( abs ` ( u - b ) ) < y /\ ( abs ` ( v - c ) ) < z ) ->
          ( abs ` ( ( u .+ v ) - ( b .+ c ) ) ) < a ) ) $.
      $( Lemma for ~ addcn , ~ subcn , and ~ mulcn .  (Contributed by Mario
         Carneiro, 5-May-2014.)  (Proof shortened by Mario Carneiro,
         2-Sep-2015.) $)
      addcnlem $p |- .+ e. ( ( J tX J ) Cn J ) $=
        ( co wcel cc clt wbr wa wral crp vx ctx ccn cxp wf cv cabs cmin ccom wi
        wrex w3a cfv 3coml cle ifcl adantl wceq simpll1 simprl cnmetdval abssub
        cif eqid eqtrd syl2anc breq1d cr wb subcld abscld simplrl rpred simplrr
        ltmin syl3anc bitrd simpl syl6bi simpll2 simprr anim12d biimprd imim12d
        simpr fovcl ralimdvva breq2 anbi12d imbi1d rspcev syl6an rexlimdvva mpd
        2ralbidv rgen3 cxmt cnxmet cnfldtopn txmetcn mp3an mpbir2an ) EFFUBMFUC
        MNZOOUDOEUEZHUFZDUFZUGUHUIZMZUAUFZPQZIUFZCUFZXGMZXIPQZRZXEXKEMZXFXLEMZX
        GMZGUFZPQZUJZCOSDOSZUATUKZGTSIOSHOSZKYCHIGOOTXEONZXKONZXSTNZULZXFXEUHMZ
        UGUMZAUFZPQZXLXKUHMZUGUMZBUFZPQZRZXQXPUHMUGUMZXSPQZUJZCOSDOSZBTUKATUKZY
        CYGYEYFUUBLUNYHUUAYCABTTYHYKTNZYOTNZRZRZYKYOUOQZYKYOVCZTNZUUAXHUUHPQZXM
        UUHPQZRZXTUJZCOSDOSZYCUUEUUIYHUUGYKYOTUPUQUUFYTUUMDCOOUUFXFONZXLONZRZRZ
        UULYQYSXTUURUUJYLUUKYPUURUUJYLYJYOPQZRZYLUURUUJYJUUHPQZUUTUURXHYJUUHPUU
        RYEUUOXHYJURYEYFYGUUEUUQUSZUUFUUOUUPUTZYEUUORXHXEXFUHMUGUMYJXEXFXGXGVDZ
        VAXEXFVBVEVFVGUURYJVHNYKVHNZYOVHNZUVAUUTVIUURYIUURXFXEUVCUVBVJVKUURYKYH
        UUCUUDUUQVLVMZUURYOYHUUCUUDUUQVNVMZYJYKYOVOVPVQYLUUSVRVSUURUUKYNYKPQZYP
        RZYPUURUUKYNUUHPQZUVJUURXMYNUUHPUURYFUUPXMYNURYEYFYGUUEUUQVTZUUFUUOUUPW
        AZYFUUPRXMXKXLUHMUGUMYNXKXLXGUVDVAXKXLVBVEVFVGUURYNVHNUVEUVFUVKUVJVIUUR
        YMUURXLXKUVMUVLVJVKUVGUVHYNYKYOVOVPVQUVIYPWEVSWBUURXTYSUURXRYRXSPUURXPO
        NZXQONZXRYRURUURYEYFUVNUVBUVLXEXKOOOEKWFVFUUQUVOUUFXFXLOOOEKWFUQUVNUVOR
        XRXPXQUHMUGUMYRXPXQXGUVDVAXPXQVBVEVFVGWCWDWGYBUUNUAUUHTXIUUHURZYAUUMDCO
        OUVPXOUULXTUVPXJUUJXNUUKXIUUHXHPWHXIUUHXMPWHWIWJWOWKWLWMWNWPXGOWQUMNZUV
        QUVQXCXDYDRVIWRWRWRHIGUACDXGXGXGEFFFOOOFJWSZUVRUVRWTXAXB $.
    $}

    $( Complex number addition is a continuous function.  Part of Proposition
       14-4.16 of [Gleason] p. 243.  (Contributed by NM, 30-Jul-2007.)  (Proof
       shortened by Mario Carneiro, 5-May-2014.) $)
    addcn $p |- + e. ( ( J tX J ) Cn J ) $=
      ( vy vz vv vu va vb vc caddc ax-addf cv addcn2 addcnlem ) CDEFJAGHIBKCDEF
      GLHLILMN $.

    $( Complex number subtraction is a continuous function.  Part of
       Proposition 14-4.16 of [Gleason] p. 243.  (Contributed by NM,
       4-Aug-2007.)  (Proof shortened by Mario Carneiro, 5-May-2014.) $)
    subcn $p |- - e. ( ( J tX J ) Cn J ) $=
      ( vy vz vv vu va vb vc cmin subf cv subcn2 addcnlem ) CDEFJAGHIBKCDEFGLHL
      ILMN $.

    $( Complex number multiplication is a continuous function.  Part of
       Proposition 14-4.16 of [Gleason] p. 243.  (Contributed by NM,
       30-Jul-2007.)  (Proof shortened by Mario Carneiro, 5-May-2014.) $)
    mulcn $p |- x. e. ( ( J tX J ) Cn J ) $=
      ( vy vz vv vu va vb vc cmul ax-mulf cv mulcn2 addcnlem ) CDEFJAGHIBKCDEFG
      LHLILMN $.

    divcn.k $e |- K = ( J |`t ( CC \ { 0 } ) ) $.
    $( Complex number division is a continuous function, when the second
       argument is nonzero.  (Contributed by Mario Carneiro, 12-Aug-2014.) $)
    divcn $p |- / e. ( ( J tX K ) Cn J ) $=
      ( vx vy vz vw vu cdiv cc cc0 c1 co cmul wcel wa wtru cfv cabs csn cdif cv
      cmpt2 ctx ccn wceq crio df-div wne eldifsn w3a divval divrec eqtr3d 3expb
      sylan2b mpt2eq3ia eqtri ctopon cnfldtopon a1i crest wss resttopon sylancl
      difss syl5eqel cnmpt1st cnmpt2nd cmpt cmin ccom cxp cres clt wbr wral crp
      wf wi wrex eqid reccl sylbi fmpti cle c2 reccn2 wb ovres eldifi cnmetdval
      cif abssub eqtrd syl2an breq1d oveq2 ovex fvmpt oveqan12d imbi12d rexbidv
      ralbidva adantr mpbird rgen2 cxmt cnxmet xmetres2 mp2an cnfldtopn metrest
      cmopn metcn mpbir2an cnmpt21 mulcn cnmpt22f trud eqeltri ) JEFKKLUAZUBZEU
      CZMFUCZJNZONZUDZABUENAUFNZJEFKYDYFGUCZONYEUGGKUHZUDYIEFGUIEFKYDYLYHYFYDPY
      EKPZYFKPZYFLUJZQYLYHUGZYFKLUKYMYNYOYPYMYNYOULYEYFJNYLYHGYEYFUMYEYFUNUOUPU
      QURUSYIYJPREFYEYGOABAAAKYDAKUTSPZRACVAVBZRBAYDVCNZYDUTSZDRYQYDKVDZYSYTPYR
      KYCVGZYDAKVEVFVHZREFABKYDYRUUCVIREFGYFMYKJNZYGABBAKYDYDYRUUCREFABKYDYRUUC
      VJUUCGYDUUDVKZBAUFNPZRUUFYDKUUEVTZYEHUCZTVLVMZYDYDVNVOZNZIUCZVPVQZYEUUESZ
      UUHUUESZUUINZYFVPVQZWAZHYDVRZIVSWBZFVSVREYDVRZGYDKUUDUUEUUEWCZYKYDPYKKPYK
      LUJQUUDKPYKKLUKYKWDWEWFUUTEFYDVSYEYDPZYFVSPZQUUTUUHYEVLNTSZUULVPVQZMUUHJN
      ZMYEJNZVLNTSZYFVPVQZWAZHYDVRZIVSWBZIHYEYFMYETSZYFONZWGVQMUVOWNUVNWHJNONZU
      VPWCWIUVCUUTUVMWJUVDUVCUUSUVLIVSUVCUURUVKHYDUVCUUHYDPZQZUUMUVFUUQUVJUVRUU
      KUVEUULVPUVRUUKYEUUHUUINZUVEYEUUHYDYDUUIWKUVCYMUUHKPZUVSUVEUGUVQYEKYCWLUU
      HKYCWLYMUVTQUVSYEUUHVLNTSUVEYEUUHUUIUUIWCZWMYEUUHWOWPWQWPWRUVRUUPUVIYFVPU
      VRUUPUVHUVGUUINZUVIUVCUVQUUNUVHUUOUVGUUIGYEUUDUVHYDUUEYKYEMJWSUVBMYEJWTXA
      GUUHUUDUVGYDUUEYKUUHMJWSUVBMUUHJWTXAXBUVCUVHKPZUVGKPZUWBUVIUGUVQUVCYMYELU
      JQUWCYEKLUKYEWDWEUVQUVTUUHLUJQUWDUUHKLUKUUHWDWEUWCUWDQUWBUVHUVGVLNTSUVIUV
      HUVGUUIUWAWMUVHUVGWOWPWQWPWRXCXEXDXFXGXHUUJYDXISPZUUIKXISPZUUFUUGUVAQWJUW
      FUUAUWEXJUUBUUIYDKXKXLXJEFIHUUJUUIUUEBAYDKBYSUUJXOSZDUWFUUAYSUWGUGXJUUBUU
      IUUJAUWGKYDUUJWCACXMZUWGWCXNXLUSUWHXPXLXQVBYKYFMJWSXROAAUENAUFNPRACXSVBXT
      YAYB $.
  $}

  $( The complex numbers form a topological group under addition, with the
     standard topology induced by the absolute value metric.  (Contributed by
     Mario Carneiro, 2-Sep-2015.) $)
  cnfldtgp $p |- CCfld e. TopGrp $=
    ( ccnfld ctgp wcel cgrp ctps cmin ctopn cfv ctx co ccn cnring ringgrp ax-mp
    crg cnfldtps eqid subcn cnfldsub istgp2 mpbir3an ) ABCADCZAECFAGHZUCIJUCKJC
    AOCUBLAMNPUCUCQZRAUCFUDSTUA $.

  ${
    $d k u v w x y z A $.  $d k v w x y z J $.  $d k z L $.  $d k w x y z ph $.
    $d k v w x y z K $.  $d k u v w x y z X $.  $d k u v w x y z Y $.
    $d u v w z B $.
    fsumcn.3 $e |- K = ( TopOpen ` CCfld ) $.
    fsumcn.4 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    fsumcn.5 $e |- ( ph -> A e. Fin ) $.
    ${
      $d y B $.
      fsumcn.6 $e |- ( ( ph /\ k e. A ) -> ( x e. X |-> B ) e. ( J Cn K ) ) $.
      $( A finite sum of functions to complex numbers from a common topological
         space is continuous.  The class expression for ` B ` normally contains
         free variables ` k ` and ` x ` to index it.  (Contributed by NM,
         8-Aug-2007.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
      fsumcn $p |- ( ph -> ( x e. X |-> sum_ k e. A B ) e. ( J Cn K ) ) $=
        ( vw wss cmpt wcel wi cc wa caddc vy vz csu ccn co ssid cfn cv csn wceq
        c0 cun sseq1 sumeq1 mpteq2dv eleq1d imbi12d imbi2d weq cc0 sum0 mpteq2i
        ctopon cfv cnfldtopon a1i 0cnd cnmptc syl5eqel a1d wn ssun1 sstr imim1i
        mpan csb cin simplr disjsn sylibr eqidd ad2antrr simprl syl2anc simplll
        ssfi sselda simplrr wral adantr cnf2 syl3anc eqid fmpt rsp syl syl21anc
        imp fsumsplit simpr unssbd vex snss adantrr impancom ralrimiv ad2ant2rl
        wf nfcsb1v nfel1 csbeq1a rspc sylc sumsns oveq2d anassrs mpteq2dva nfcv
        eqtrd nfsum nfcsb nfov sumeq2sdv oveq12d cbvmpt syl6eq simprr syl5eqelr
        csbeq2dv ralrimiva nfmpt ctx addcn cnmpt12f eqeltrd exp32 expcom adantl
        a2d syl5 findcard2s mpcom mpi ) ACCNZBHCDEUCZOZFGUDUEZPZCUFCUGPZAUUDUUH
        QZKAMUHZCNZBHUUKDEUCZOZUUGPZQZQAUKCNZBHUKDEUCZOZUUGPZQZQAUAUHZCNZBHUVBD
        EUCZOZUUGPZQZQAUVBUBUHZUIZULZCNZBHUVJDEUCZOZUUGPZQZQAUUJQMUAUBCUUKUKUJZ
        UUPUVAAUVPUULUUQUUOUUTUUKUKCUMUVPUUNUUSUUGUVPBHUUMUURUUKUKDEUNUOUPUQURM
        UAUSZUUPUVGAUVQUULUVCUUOUVFUUKUVBCUMUVQUUNUVEUUGUVQBHUUMUVDUUKUVBDEUNUO
        UPUQURUUKUVJUJZUUPUVOAUVRUULUVKUUOUVNUUKUVJCUMUVRUUNUVMUUGUVRBHUUMUVLUU
        KUVJDEUNUOUPUQURUUKCUJZUUPUUJAUVSUULUUDUUOUUHUUKCCUMUVSUUNUUFUUGUVSBHUU
        MUUEUUKCDEUNUOUPUQURAUUTUUQAUUSBHUTOUUGBHUURUTDEVAVBABUTFGHRJGRVCVDPZAG
        IVEZVFAVGVHVIVJUVBUGPZUVHUVBPVKZSAUVGUVOUWCAUVGUVOQZQUWBAUWCUWDUVGUVKUV
        FQAUWCSZUVOUVKUVCUVFUVBUVJNUVKUVCUVBUVIVLUVBUVJCVMVOVNUWEUVKUVFUVNUWEUV
        KUVFUVNUWEUVKUVFSZSZUVMMHUVBBUUKDVPZEUCZEUVHUWHVPZTUEZOZUUGUWGUVMBHUVDE
        UVHDVPZTUEZOZUWLUWEUVKUVMUWOUJUVFUWEUVKSZBHUVLUWNUWEUVKBUHHPZUVLUWNUJUW
        EUVKUWQSZSZUVLUVDUVIDEUCZTUEUWNUWSUVBUVIDUVJEUWSUWCUVBUVIVQUKUJAUWCUWRV
        RUVBUVHVSVTUWSUVJWAUWSUUIUVKUVJUGPAUUIUWCUWRKWBUWEUVKUWQWCZCUVJWFWDUWSE
        UHZUVJPZSAUXBCPZUWQDRPZAUWCUWRUXCWEUWSUVJCUXBUXAWGUWEUVKUWQUXCWHAUXDSZU
        WQUXEUXFUXEBHWIZUWQUXEQUXFHRBHDOZXHZUXGUXFFHVCVDPZUVTUXHUUGPZUXIAUXJUXD
        JWJUVTUXFUWAVFLUXHFGHRWKWLBHRDUXHUXHWMWNVTUXEBHWOWPZWRWQWSUWSUWTUWMUVDT
        UWSUVHCPZUWMRPZUWTUWMUJUWEUVKUXMUWQUWPUVICNUXMUWPUVBUVICUWEUVKWTXAUVHCU
        BXBXCVTZXDZUWSUXMUXEECWIZUXNUXPAUWQUXQUWCUVKAUWQSUXEECAUXDUWQUXEUXLXEXF
        XGUXEUXNEUVHCEUWMREUVHDXIZXJEUBUSZDUWMREUVHDXKZUPXLXMDEUVHCXNWDXOXSXPXQ
        XDBMHUWNUWKMUWNXRBUWIUWJTBUVBUWHEBUVBXRBUUKDXIZXTZBTXRBEUVHUWHBUVHXRUYA
        YAZYBBMUSZUVDUWIUWMUWJTUYDUVBDUWHEBUUKDXKZYCZUYDEUVHDUWHUYEYIZYDYEYFUWG
        MUWIUWJTFGGGHAUXJUWCUWFJWBUWGMHUWIOUVEUUGBMHUVDUWIMUVDXRUYBUYFYEUWEUVKU
        VFYGYHUWGMHUWJOBHUWMOZUUGBMHUWMUWJMUWMXRUYCUYGYEUWGUXMUXKECWIZUYHUUGPZU
        WEUVKUXMUVFUXOXDAUYIUWCUWFAUXKECLYJWBUXKUYJEUVHCEUYHUUGEBHUWMEHXRUXRYKX
        JUXSUXHUYHUUGUXSBHDUWMUXTUOUPXLXMYHTGGYLUEGUDUEPUWGGIYMVFYNYOYPYSYTYQYR
        YSUUAUUBUUC $.
    $}

    fsum2cn.7 $e |- ( ph -> L e. ( TopOn ` Y ) ) $.
    fsum2cn.8 $e |- ( ( ph /\ k e. A ) ->
                     ( x e. X , y e. Y |-> B ) e. ( ( J tX L ) Cn K ) ) $.
    $( Version of ~ fsumcn for two-argument mappings.  (Contributed by Mario
       Carneiro, 6-May-2014.) $)
    fsum2cn $p |- ( ph -> ( x e. X , y e. Y |-> sum_ k e. A B ) e.
                          ( ( J tX L ) Cn K ) ) $=
      ( vz vu vv nfcv csu cmpt2 cxp cv c2nd cfv c1st csb cmpt ctx nfcsb1v nfcsb
      co ccn nfsum weq wa csbeq1a sylan9eq sumeq2sdv cbvmpt2 cop op2ndd csbeq1d
      wceq vex op1std csbeq2dv eqtrd mpt2mpt eqtr4i ctopon wcel txtopon syl2anc
      syl5eqelr fsumcn syl5eqel ) ABCJKDEFUAZUBZQJKUCZDCQUDZUEUFZBWBUGUFZEUHZUH
      ZFUAZUIZGIUJUMZHUNUMZVTRSJKDCSUDZBRUDZEUHZUHZFUAZUBWHBCRSJKVSWORVSTSVSTBD
      WNFBDTBCWKWMBWKTBWLEUKULZUOCDWNFCDTCWKWMUKZUOBRUPZCSUPZUQDEWNFWRWSEWMWNBW
      LEURCWKWMURUSZUTVARSQJKWGWOWBWLWKVBVEZDWFWNFXAWFCWKWEUHWNXACWCWKWEWLWKWBR
      VFZSVFZVCVDXACWKWEWMXABWDWLEWLWKWBXBXCVGVDVHVIZUTVJVKAQDWFFWIHWALAGJVLUFV
      MIKVLUFVMWIWAVLUFVMMOGIJKVNVONAFUDDVMUQQWAWFUIZBCJKEUBZWJXFRSJKWNUBXEBCRS
      JKEWNRETSETWPWQWTVARSQJKWFWNXDVJVKPVPVQVR $.
  $}

  ${
    $d x A $.  $d k n x J $.  $d n x N $.
    expcn.j $e |- J = ( TopOpen ` CCfld ) $.
    $( The power function on complex numbers, for fixed exponent ` N ` , is
       continuous.  (Contributed by Mario Carneiro, 5-May-2014.)  (Revised by
       Mario Carneiro, 23-Aug-2014.) $)
    expcn $p |- ( N e. NN0 -> ( x e. CC |-> ( x ^ N ) ) e. ( J Cn J ) ) $=
      ( vn cc cv cexp co cmpt wcel cc0 wceq oveq2 mpteq2dv eleq1d wtru a1i cmul
      c1 ccn caddc exp0 mpteq2ia ctopon cfv cnfldtopon 1cnd cnmptc trud eqeltri
      vk cn0 wa oveq1 cbvmptv id simpl expp1 syl2anr mpteq2dva syl5eq syl5eqelr
      simpr cnmptid ctx mulcn cnmpt12f eqeltrd ex nn0ind ) AFAGZEGZHIZJZBBUAIZK
      AFVLLHIZJZVPKAFVLULGZHIZJZVPKZAFVLVSTUBIZHIZJZVPKZAFVLCHIZJZVPKEULCVMLMZV
      OVRVPWIAFVNVQVMLVLHNOPVMVSMZVOWAVPWJAFVNVTVMVSVLHNOPVMWCMZVOWEVPWKAFVNWDV
      MWCVLHNOPVMCMZVOWHVPWLAFVNWGVMCVLHNOPVRAFTJZVPAFVQTVLUCUDWMVPKQATBBFFBFUE
      UFKZQBDUGZRZWPQUHUIUJUKVSUMKZWBWFWQWBUNZWEEFVMVSHIZVMSIZJZVPWRWEEFVMWCHIZ
      JXAAEFWDXBVLVMWCHUOUPWREFXBWTVMFKZXCWQXBWTMWRXCUQWQWBURVMVSUSUTVAVBWREWSV
      MSBBBBFWNWRWORZWREFWSJWAVPAEFVTWSVLVMVSHUOUPWQWBVDVCWREBFXDVESBBVFIBUAIKW
      RBDVGRVHVIVJVK $.

    $( Division by a nonzero constant is a continuous operation.  (Contributed
       by Mario Carneiro, 5-May-2014.) $)
    divccn $p |- ( ( A e. CC /\ A =/= 0 ) ->
                   ( x e. CC |-> ( x / A ) ) e. ( J Cn J ) ) $=
      ( cc wcel cc0 wne wa cv cdiv co cmpt c1 cmul ccn wceq divrec 3expb a1i
      ancoms mpteq2dva ctopon cfv cnfldtopon cnmptid reccl cnmptc mulcn eqeltrd
      ctx cnmpt12f ) BEFZBGHZIZAEAJZBKLZMAEUPNBKLZOLZMCCPLUOAEUQUSUPEFZUOUQUSQZ
      UTUMUNVAUPBRSUAUBUOAUPUROCCCCECEUCUDFUOCDUETZUOACEVBUFUOAURCCEEVBVBBUGUHO
      CCUKLCPLFUOCDUITULUJ $.
  $}

  ${
    $d x J $.
    sqcn.j $e |- J = ( TopOpen ` CCfld ) $.
    $( The square function on complex numbers is continuous.  (Contributed by
       NM, 13-Jun-2007.)  (Proof shortened by Mario Carneiro, 5-May-2014.) $)
    sqcn $p |- ( x e. CC |-> ( x ^ 2 ) ) e. ( J Cn J ) $=
      ( c2 cn0 wcel cc cv cexp co cmpt ccn 2nn0 expcn ax-mp ) DEFAGAHDIJKBBLJFM
      ABDCNO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Topological definitions using the reals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c II $.
  $c -cn-> $.

  $( Extend class notation with the unit interval. $)
  cii $a class II $.

  $( Extend class notation to include the operation which returns a class of
     continuous complex functions. $)
  ccncf $a class -cn-> $.

  $( Define the unit interval with the Euclidean topology.  (Contributed by
     Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 3-Sep-2015.) $)
  df-ii $a |- II = ( MetOpen ` ( ( abs o. - )
                          |` ( ( 0 [,] 1 ) X. ( 0 [,] 1 ) ) ) ) $.

  ${
    $d a b d e f x y $.
    $( Define the operation whose value is a class of continuous complex
       functions.  (Contributed by Paul Chapman, 11-Oct-2007.) $)
    df-cncf $a |- -cn-> = ( a e. ~P CC , b e. ~P CC |->
      { f e. ( b ^m a ) | A. x e. a A. e e. RR+ E. d e. RR+ A. y e. a
  ( ( abs ` ( x - y ) ) < d -> ( abs ` ( ( f ` x ) - ( f ` y ) ) ) < e ) } ) $.
  $}

  $( The unit interval is a topological space.  (Contributed by Mario Carneiro,
     3-Sep-2015.) $)
  iitopon $p |- II e. ( TopOn ` ( 0 [,] 1 ) ) $=
    ( cabs cmin ccom cc0 c1 cicc co cxp cres cxmt cfv wcel cii ctopon cc cnxmet
    wss cr unitssre ax-resscn sstri xmetres2 mp2an df-ii mopntopon ax-mp ) ABCZ
    DEFGZUHHIZUHJKLZMUHNKLUGOJKLUHOQUJPUHROSTUAUGUHOUBUCUIMUHUDUEUF $.

  $( The unit interval is a topological space.  (Contributed by Jeff Madsen,
     2-Sep-2009.) $)
  iitop $p |- II e. Top $=
    ( cc0 c1 cicc co cii iitopon topontopi ) ABCDEFG $.

  $( The base set of the unit interval.  (Contributed by Jeff Madsen,
     2-Sep-2009.)  (Revised by Mario Carneiro, 15-Jan-2014.) $)
  iiuni $p |- ( 0 [,] 1 ) = U. II $=
    ( cc0 c1 cicc co cii iitopon toponunii ) ABCDEFG $.

  $( Alternate definition of the unit interval.  (Contributed by Jeff Madsen,
     2-Sep-2009.) $)
  dfii2 $p |- II = ( ( topGen ` ran (,) ) |`t ( 0 [,] 1 ) ) $=
    ( cc0 c1 cicc co cr wss cii cioo crn ctg cfv crest wceq unitssre eqid df-ii
    resubmet ax-mp ) ABCDZEFGHIJKZSLDMNSTGTOPQR $.

  ${
    dfii3.1 $e |- J = ( TopOpen ` CCfld ) $.
    $( Alternate definition of the unit interval.  (Contributed by Jeff Madsen,
       11-Jun-2010.)  (Revised by Mario Carneiro, 3-Sep-2015.) $)
    dfii3 $p |- II = ( J |`t ( 0 [,] 1 ) ) $=
      ( cc0 c1 cicc co crest cii cabs cmin ccom cc cxmt cfv wcel wceq cnxmet cr
      wss unitssre ax-resscn sstri cxp cres eqid cnfldtopn df-ii metrest eqcomi
      mp2an ) ACDEFZGFZHIJKZLMNOUKLSULHPQUKRLTUAUBUMUMUKUKUCUDZAHLUKUNUEABUFUGU
      HUJUI $.
  $}

  ${
    dfii4.1 $e |- I = ( CCfld |`s ( 0 [,] 1 ) ) $.
    $( Alternate definition of the unit interval.  (Contributed by Mario
       Carneiro, 3-Sep-2015.) $)
    dfii4 $p |- II = ( TopOpen ` I ) $=
      ( cii ccnfld ctopn cfv cc0 c1 cicc co crest eqid dfii3 resstopn eqtri ) C
      DEFZGHIJZKJAEFPPLZMQAPDBRNO $.
  $}

  $( The unit interval expressed as an order topology.  (Contributed by Mario
     Carneiro, 9-Sep-2015.) $)
  dfii5 $p |- II = ( ordTop ` ( <_ i^i ( ( 0 [,] 1 ) X. ( 0 [,] 1 ) ) ) ) $=
    ( cii cioo crn ctg cfv cc0 c1 cicc co crest cle cordt cxp cin dfii2 cr wceq
    wss unitssre eqid xrrest ax-mp ordtresticc 3eqtr2i ) ABCDEZFGHIZJIZKLEZUFJI
    ZKUFUFMNLEOUFPRUIUGQSUFUEUHUHTUETUAUBFGUCUD $.

  $( The unit interval is compact.  (Contributed by Jeff Madsen, 2-Sep-2009.)
     (Revised by Mario Carneiro, 13-Jun-2014.) $)
  iicmp $p |- II e. Comp $=
    ( cc0 cr wcel c1 cii ccmp 0re 1re cioo crn ctg cfv eqid dfii2 icccmp mp2an
    ) ABCDBCEFCGHADEIJKLZQMNOP $.

  $( The unit interval is connected.  (Contributed by Mario Carneiro,
     11-Feb-2015.) $)
  iiconn $p |- II e. Conn $=
    ( cii cioo crn ctg cfv cc0 c1 cicc co crest cconn dfii2 cr wcel 0re iccconn
    1re mp2an eqeltri ) ABCDEFGHIJIZKLFMNGMNTKNOQFGPRS $.

  ${
    $d a b f w x y z A $.  $d w x y z C $.  $d f w x y z F $.  $d w y z R $.
    $d a b f w x y z B $.
    $( The value of the continuous complex function operation is the set of
       continuous functions from ` A ` to ` B ` .  (Contributed by Paul
       Chapman, 11-Oct-2007.)  (Revised by Mario Carneiro, 9-Nov-2013.) $)
    cncfval $p |- ( ( A C_ CC /\ B C_ CC ) ->
      ( A -cn-> B ) = { f e. ( B ^m A ) | A. x e. A A. y e. RR+
        E. z e. RR+ A. w e. A ( ( abs ` ( x - w ) ) < z ->
        ( abs ` ( ( f ` x ) - ( f ` w ) ) ) < y ) } ) $=
      ( va vb cc wss wcel co cv cfv wral crp cmap crab wceq cpw ccncf cmin cabs
      clt wbr wi wrex cnex elpw2 oveq2 raleq rexbidv raleqbi1dv rabeqbidv oveq1
      ralbidv rabeq syl df-cncf ovex rabex ovmpt2 syl2anbr ) EJKEJUAZLFVELEFUBM
      ANZDNZUCMUDOCNUEUFVFGNZOVGVHOUCMUDOBNUEUFUGZDEPZCQUHZBQPZAEPZGFERMZSZTFJK
      EJUIUJFJUIUJHIEFVEVEVIDHNZPZCQUHZBQPZAVPPZGINZVPRMZSVOUBVMGWAERMZSZVPETZV
      TVMGWBWCVPEWARUKVSVLAVPEWEVRVKBQWEVQVJCQVIDVPEULUMUQUNUOWAFTWCVNTWDVOTWAF
      ERUPVMGWCVNURUSADBGHICUTVMGVNFERVAVBVCVD $.

    $( Membership in the set of continuous complex functions from ` A ` to
       ` B ` .  (Contributed by Paul Chapman, 11-Oct-2007.)  (Revised by Mario
       Carneiro, 9-Nov-2013.) $)
    elcncf $p |- ( ( A C_ CC /\ B C_ CC ) ->
     ( F e. ( A -cn-> B ) <-> ( F : A --> B /\ A. x e. A A. y e. RR+
     E. z e. RR+ A. w e. A ( ( abs ` ( x - w ) ) < z ->
     ( abs ` ( ( F ` x ) - ( F ` w ) ) ) < y ) ) ) ) $=
      ( vf cc wa co wcel cv cmin cabs cfv clt wral crp cvv wss cmap wbr wi wrex
      ccncf wf crab cncfval eleq2d wceq oveq12d fveq2d breq1d imbi2d rexralbidv
      fveq1 2ralbidv elrab syl6bb wb cnex ssex elmapg syl2anr anbi1d bitrd ) EI
      UAZFIUAZJZGEFUFKZLZGFEUBKZLZAMZDMZNKOPCMQUCZVOGPZVPGPZNKZOPZBMZQUCZUDZDER
      CSUEZBSRAERZJZEFGUGZWFJVJVLGVQVOHMZPZVPWIPZNKZOPZWBQUCZUDZDERCSUEZBSRAERZ
      HVMUHZLWGVJVKWRGABCDEFHUIUJWQWFHGVMWIGUKZWPWEABESWSWOWDCDSEWSWNWCVQWSWMWA
      WBQWSWLVTOWSWJVRWKVSNVOWIGUQVPWIGUQULUMUNUOUPURUSUTVJVNWHWFVIFTLETLVNWHVA
      VHFIVBVCEIVBVCFEGTTVDVEVFVG $.

    $( Version of ~ elcncf with arguments commuted.  (Contributed by Mario
       Carneiro, 28-Apr-2014.) $)
    elcncf2 $p |- ( ( A C_ CC /\ B C_ CC ) ->
     ( F e. ( A -cn-> B ) <-> ( F : A --> B /\ A. x e. A A. y e. RR+
     E. z e. RR+ A. w e. A ( ( abs ` ( w - x ) ) < z ->
     ( abs ` ( ( F ` w ) - ( F ` x ) ) ) < y ) ) ) ) $=
      ( cc wa co wcel cv cmin cabs cfv clt wbr wral crp sseldd ccncf wf wi wrex
      wss elcncf wb simplll simprl simprr abssubd breq1d simpllr simplr imbi12d
      ffvelrnd anassrs ralbidva rexbidv ralbidv pm5.32da bitrd ) EHUEZFHUEZIZGE
      FUAJKEFGUBZALZDLZMJNOZCLZPQZVGGOZVHGOZMJNOZBLZPQZUCZDERZCSUDZBSRZAERZIVFV
      HVGMJNOZVJPQZVMVLMJNOZVOPQZUCZDERZCSUDZBSRZAERZIABCDEFGUFVEVFWAWJVEVFIZVT
      WIAEWKVGEKZIZVSWHBSWMVRWGCSWMVQWFDEWKWLVHEKZVQWFUGWKWLWNIZIZVKWCVPWEWPVIW
      BVJPWPVGVHWPEHVGVCVDVFWOUHZWKWLWNUIZTWPEHVHWQWKWLWNUJZTUKULWPVNWDVOPWPVLV
      MWPFHVLVCVDVFWOUMZWPEFVGGVEVFWOUNZWRUPTWPFHVMWTWPEFVHGXAWSUPTUKULUOUQURUS
      UTURVAVB $.

    $( Reverse closure of the continuous function predicate.  (Contributed by
       Mario Carneiro, 25-Aug-2014.) $)
    cncfrss $p |- ( F e. ( A -cn-> B ) -> A C_ CC ) $=
      ( va vb vx vw vz vf vy ccncf co cc cv cmin cabs cfv clt wbr wral wcel cpw
      wi crp wrex cmap crab df-cncf elmpt2cl1 elpwid ) CABKLUAAMDEMUBZUKFNZGNZO
      LPQHNRSULINZQUMUNQOLPQJNRSUCGDNZTHUDUEJUDTFUOTIENUOUFLUGABKCFGJIDEHUHUIUJ
      $.

    $( Reverse closure of the continuous function predicate.  (Contributed by
       Mario Carneiro, 25-Aug-2014.) $)
    cncfrss2 $p |- ( F e. ( A -cn-> B ) -> B C_ CC ) $=
      ( va vb vx vw vz vf vy ccncf co cc cv cmin cabs cfv clt wbr wral wcel cpw
      wi crp wrex cmap crab df-cncf elmpt2cl2 elpwid ) CABKLUABMDEMUBZUKFNZGNZO
      LPQHNRSULINZQUMUNQOLPQJNRSUCGDNZTHUDUEJUDTFUOTIENUOUFLUGABKCFGJIDEHUHUIUJ
      $.

    $( A continuous complex function's domain and codomain.  (Contributed by
       Paul Chapman, 17-Jan-2008.)  (Revised by Mario Carneiro,
       25-Aug-2014.) $)
    cncff $p |- ( F e. ( A -cn-> B ) -> F : A --> B ) $=
      ( vx vw vz vy ccncf co wcel cv cmin cabs cfv clt wbr wral crp cc wss wrex
      wf wi wa wb cncfrss cncfrss2 elcncf syl2anc ibi simpld ) CABHIJZABCUBZDKZ
      EKZLIMNFKOPUNCNUOCNLIMNGKOPUCEAQFRUAGRQDAQZULUMUPUDZULASTBSTULUQUEABCUFAB
      CUGDGFEABCUHUIUJUK $.

    $( Defining property of a continuous function.  (Contributed by Mario
       Carneiro, 30-Apr-2014.)  (Revised by Mario Carneiro, 25-Aug-2014.) $)
    cncfi $p |- ( ( F e. ( A -cn-> B ) /\ C e. A /\ R e. RR+ ) ->
                  E. z e. RR+ A. w e. A ( ( abs ` ( w - C ) ) < z ->
                    ( abs ` ( ( F ` w ) - ( F ` C ) ) ) < R ) ) $=
      ( vx vy co wcel crp cv cmin cabs cfv clt wbr wi wral ccncf wrex wa wf wss
      cc wb cncfrss cncfrss2 elcncf2 syl2anc ibi simprd wceq oveq2 fveq2d fveq2
      breq1d oveq2d imbi12d rexralbidv breq2 imbi2d rspc2v mpan9 3impb ) GCDUAJ
      KZECKZFLKZBMZENJZOPZAMZQRZVJGPZEGPZNJZOPZFQRZSZBCTALUBZVGVJHMZNJZOPZVMQRZ
      VOWBGPZNJZOPZIMZQRZSZBCTALUBZILTHCTZVHVIUCWAVGCDGUDZWMVGWNWMUCZVGCUFUEDUF
      UEVGWOUGCDGUHCDGUIHIABCDGUJUKULUMWLWAVNVRWIQRZSZBCTALUBHIEFCLWBEUNZWKWQAB
      LCWRWEVNWJWPWRWDVLVMQWRWCVKOWBEVJNUOUPURWRWHVRWIQWRWGVQOWRWFVPVONWBEGUQUS
      UPURUTVAWIFUNZWQVTABLCWSWPVSVNWIFVRQVBVCVAVDVEVF $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z F $.  $d w x y ph $.
    $d w z Z $.
    elcncf1d.1 $e |- ( ph -> F : A --> B ) $.
    elcncf1d.2 $e |- ( ph -> ( ( x e. A /\ y e. RR+ ) -> Z e. RR+ ) ) $.
    elcncf1d.3 $e |- ( ph -> ( ( ( x e. A /\ w e. A ) /\ y e. RR+ ) ->
                       ( ( abs ` ( x - w ) ) < Z ->
                         ( abs ` ( ( F ` x ) - ( F ` w ) ) ) < y ) ) ) $.
    $( Membership in the set of continuous complex functions from ` A ` to
       ` B ` .  (Contributed by Paul Chapman, 26-Nov-2007.) $)
    elcncf1di $p |- ( ph ->
                   ( ( A C_ CC /\ B C_ CC ) -> F e. ( A -cn-> B ) ) ) $=
      ( vz co wcel wa cv cfv clt wral crp ccncf cc wss wf cmin cabs wbr wi wrex
      imp an32 anbi2i anass bitr4i sylbir ralrimiva breq2 imbi1d ralbidv rspcev
      wceq syl2anc ralrimivva jca elcncf syl5ibrcom ) AGEFUAMNEUBUCFUBUCOEFGUDZ
      BPZDPZUEMUFQZLPZRUGZVHGQVIGQUEMUFQCPZRUGZUHZDESZLTUIZCTSBESZOAVGVRIAVQBCE
      TAVHENZVMTNZOZOZHTNZVJHRUGZVNUHZDESZVQAWAWCJUJWBWEDEWBVIENZOZAVSWGOVTOZOZ
      WEWJAWAWGOZOWHWIWKAVSWGVTUKULAWAWGUMUNAWIWEKUJUOUPVPWFLHTVKHVAZVOWEDEWLVL
      WDVNVKHVJRUQURUSUTVBVCVDBCLDEFGVEVF $.
  $}

  ${
    $d w x y A $.  $d w x y B $.  $d w x y F $.  $d w Z $.
    elcncf1i.1 $e |- F : A --> B $.
    elcncf1i.2 $e |- ( ( x e. A /\ y e. RR+ ) -> Z e. RR+ ) $.
    elcncf1i.3 $e |- ( ( ( x e. A /\ w e. A ) /\ y e. RR+ ) ->
                       ( ( abs ` ( x - w ) ) < Z ->
                         ( abs ` ( ( F ` x ) - ( F ` w ) ) ) < y ) ) $.
    $( Membership in the set of continuous complex functions from ` A ` to
       ` B ` .  (Contributed by Paul Chapman, 26-Nov-2007.) $)
    elcncf1ii $p |- ( ( A C_ CC /\ B C_ CC ) -> F e. ( A -cn-> B ) ) $=
      ( cc wss wa co wcel wi wtru a1i cv cfv wf crp cmin cabs clt wbr elcncf1di
      ccncf trud ) DKLEKLMFDEUHNOPQABCDEFGDEFUAQHRASZDOZBSZUBOZMGUBOPQIRUKCSZDO
      MUMMUJUNUCNUDTGUEUFUJFTUNFTUCNUDTULUEUFPPQJRUGUI $.
  $}

  ${
    $d f w x y z A $.  $d f w x y z B $.  $d f w x y z C $.  $d w x y z F $.
    $( A continuous complex function restricted to a subset is continuous.
       (Contributed by Paul Chapman, 18-Oct-2007.)  (Revised by Mario Carneiro,
       25-Aug-2014.) $)
    rescncf $p |- ( C C_ A ->
            ( F e. ( A -cn-> B ) -> ( F |` C ) e. ( C -cn-> B ) ) ) $=
      ( vx vw vz vy wss co wcel wa cv cmin cabs cfv clt wral crp cc cres wf wbr
      ccncf wi wrex simpr wb cncfrss adantl cncfrss2 elcncf syl2anc mpbid simpl
      simpld fssresd simprd ssralv fvres oveqan12d fveq2d breq1d imbi2d biimprd
      ralimdva sylan9 reximdv ralimdv syld sylc sstrd mpbir2and ex ) CAIZDABUDJ
      KZDCUAZCBUDJKZVOVPLZVRCBVQUBZEMZFMZNJOPGMQUCZWAVQPZWBVQPZNJZOPZHMZQUCZUEZ
      FCRZGSUFZHSRZECRZVSABCDVSABDUBZWCWADPZWBDPZNJZOPZWHQUCZUEZFARZGSUFZHSRZEA
      RZVSVPWOXELZVOVPUGVSATIZBTIZVPXFUHVPXGVOABDUIUJZVPXHVOABDUKUJZEHGFABDULUM
      UNZUPVOVPUOZUQVSVOXEWNXLVSWOXEXKURVOXEXDECRWNXDECAUSVOXDWMECVOWACKZLZXCWL
      HSXNXBWKGSVOXBXAFCRXMWKXAFCAUSXMXAWJFCXMWBCKZLZWJXAXPWIWTWCXPWGWSWHQXPWFW
      ROXMXOWDWPWEWQNWACDUTWBCDUTVAVBVCVDVEVFVGVHVIVFVJVKVSCTIXHVRVTWNLUHVSCATX
      LXIVLXJEHGFCBVQULUMVMVN $.

    $( Change the codomain of a continuous complex function.  (Contributed by
       Paul Chapman, 18-Oct-2007.)  (Revised by Mario Carneiro, 1-May-2015.) $)
    cncffvrn $p |- ( ( C C_ CC /\ F e. ( A -cn-> B ) ) ->
      ( F e. ( A -cn-> C ) <-> F : A --> C ) ) $=
      ( vw vx vz vy cc wss ccncf co wcel wa cv cmin cabs cfv wral crp wf clt wi
      wbr wrex wb cncfrss simpl elcncf2 syl2anc cncfi 3expb ralrimivva biantrud
      adantl bitr4d ) CIJZDABKLMZNZDACKLMZACDUAZEOZFOZPLQRGOUBUDVBDRVCDRPLQRHOZ
      UBUDUCEASGTUEZHTSFASZNZVAUSAIJZUQUTVGUFURVHUQABDUGUOUQURUHFHGEACDUIUJUSVF
      VAURVFUQURVEFHATURVCAMVDTMVEGEABVCVDDUKULUMUOUNUP $.

    $( The set of continuous functions is expanded when the range is expanded.
       (Contributed by Mario Carneiro, 30-Aug-2014.) $)
    cncfss $p |- ( ( B C_ C /\ C C_ CC ) -> ( A -cn-> B ) C_ ( A -cn-> C ) ) $=
      ( vf wss cc wa ccncf co cv wcel cncff adantl simpll fssd cncffvrn adantll
      wf wb mpbird ex ssrdv ) BCEZCFEZGZDABHIZACHIZUEDJZUFKZUHUGKZUEUIGZUJACUHR
      ZUKABCUHUIABUHRUEABUHLMUCUDUINOUDUIUJULSUCABCUHPQTUAUB $.
  $}

  ${
    $d y z B $.  $d k x y z D $.  $d k x y z F $.  $d k x y z G $.  $d k y Z $.
    $d k y z A $.  $d k x y z ph $.
    climcncf.1 $e |- Z = ( ZZ>= ` M ) $.
    climcncf.2 $e |- ( ph -> M e. ZZ ) $.
    climcncf.4 $e |- ( ph -> F e. ( A -cn-> B ) ) $.
    climcncf.5 $e |- ( ph -> G : Z --> A ) $.
    climcncf.6 $e |- ( ph -> G ~~> D ) $.
    climcncf.7 $e |- ( ph -> D e. A ) $.
    $( Image of a limit under a continuous map.  (Contributed by Mario
       Carneiro, 7-Apr-2015.) $)
    climcncf $p |- ( ph -> ( F o. G ) ~~> ( F ` D ) ) $=
      ( vy vz cvv cv wcel cfv vx vk ccom cc ccncf co wf cncff syl ffvelrnda wss
      cncfrss2 sselda syldan cuz fvex eqeltri fex sylancl syl2anc crp cmin cabs
      coexg clt wbr wi wral wrex cncfi 3expia imp wceq fvco3 sylan climcn1 ) AU
      AOPDBUBEFEFUCZGQHIJNAPRZBSVRETZCSVSUDSABCVREAEBCUEUFZSZBCEUGKBCEUHUIUJACU
      DVSAWACUDUKKBCEULUIUMUNMAWAFQSZVQQSKAHBFUGZHQSWBLHGUOTQIGUOUPUQHBQFURUSEF
      VTQVDUTAUARZVASZVRDVBUFVCTORVEVFVSDETVBUFVCTWDVEVFVGPBVHOVAVIZAWADBSZWEWF
      VGKNWAWGWEWFOPBCDWDEVJVKUTVLAHBUBRZFLUJAWCWHHSWHVQTWHFTETVMLHBWHEFVNVOVP
      $.
  $}

  ${
    $d w x y z $.
    $( Absolute value is continuous.  (Contributed by Paul Chapman,
       21-Oct-2007.)  (Revised by Mario Carneiro, 28-Apr-2014.) $)
    abscncf $p |- abs e. ( CC -cn-> RR ) $=
      ( vw vx vz vy cabs cc cr ccncf co wcel wf cv cmin cfv clt wbr wi wral crp
      wss wrex absf abscn2 rgen2 wa wb ssid ax-resscn elcncf2 mp2an mpbir2an )
      EFGHIJZFGEKZALZBLZMIENCLOPUNENUOENMIENDLOPQAFRCSUAZDSRBFRZUBUPBDFSDCAUOUC
      UDFFTGFTULUMUQUEUFFUGUHBDCAFGEUIUJUK $.

    $( Real part is continuous.  (Contributed by Paul Chapman, 21-Oct-2007.)
       (Revised by Mario Carneiro, 28-Apr-2014.) $)
    recncf $p |- Re e. ( CC -cn-> RR ) $=
      ( vw vx vz vy cre cc cr ccncf co wcel wf cv cmin cabs cfv clt wbr crp wss
      wral wi wrex ref recn2 rgen2 wa wb ssid ax-resscn elcncf2 mp2an mpbir2an
      ) EFGHIJZFGEKZALZBLZMINOCLPQUOEOUPEOMINODLPQUAAFTCRUBZDRTBFTZUCUQBDFRDCAU
      PUDUEFFSGFSUMUNURUFUGFUHUIBDCAFGEUJUKUL $.

    $( Imaginary part is continuous.  (Contributed by Paul Chapman,
       21-Oct-2007.)  (Revised by Mario Carneiro, 28-Apr-2014.) $)
    imcncf $p |- Im e. ( CC -cn-> RR ) $=
      ( vw vx vz vy cim cc cr ccncf co wcel wf cv cmin cabs cfv clt wbr crp wss
      wral wi wrex imf imcn2 rgen2 wa wb ssid ax-resscn elcncf2 mp2an mpbir2an
      ) EFGHIJZFGEKZALZBLZMINOCLPQUOEOUPEOMINODLPQUAAFTCRUBZDRTBFTZUCUQBDFRDCAU
      PUDUEFFSGFSUMUNURUFUGFUHUIBDCAFGEUJUKUL $.

    $( Complex conjugate is continuous.  (Contributed by Paul Chapman,
       21-Oct-2007.)  (Revised by Mario Carneiro, 28-Apr-2014.) $)
    cjcncf $p |- * e. ( CC -cn-> CC ) $=
      ( vw vx vz vy ccj cc ccncf co wcel wf cmin cabs cfv clt wbr wral crp wrex
      cv wi cjf cjcn2 rgen2 wss wa wb ssid elcncf2 mp2an mpbir2an ) EFFGHIZFFEJ
      ZASZBSZKHLMCSNOUMEMUNEMKHLMDSNOTAFPCQRZDQPBFPZUAUOBDFQDCAUNUBUCFFUDZUQUKU
      LUPUEUFFUGZURBDCAFFEUHUIUJ $.
  $}

  ${
    $d t u v w x y z A $.  $d t u w y z F $.
    mulc1cncf.1 $e |- F = ( x e. CC |-> ( A x. x ) ) $.
    $( Multiplication by a constant is continuous.  (Contributed by Paul
       Chapman, 28-Nov-2007.)  (Revised by Mario Carneiro, 30-Apr-2014.) $)
    mulc1cncf $p |- ( A e. CC -> F e. ( CC -cn-> CC ) ) $=
      ( vu vw cc wcel cv cmin co cabs cfv clt wbr wi wral crp cmul wa vy simprr
      vz vv vt wf wrex ccncf mulcl fmptd simpl simprl mulcn2 syl3anc wceq oveq1
      fveq2d breq1d anbi1d oveq1d imbi12d ralbidv rspcv ad2antrr wb cc0 abs00bd
      subid simprll rpgt0d eqbrtrd biantrurd oveq2 ovex simplrl oveq12d anassrs
      fvmpt syl ralbidva sylibrd reximdva rexlimdva mpd ralrimivva ssid elcncf2
      wss mp2an sylanbrc ) BGHZGGCUFZEIZUAIZJKLMFIZNOZWMCMZWNCMZJKZLMZUCIZNOZPZ
      EGQZFRUGZUCRQUAGQZCGGUHKHZWKAGBAIZSKZGCBXHUIDUJWKXEUAUCGRWKWNGHZXARHZTZTZ
      UDIZBJKZLMZUEIZNOZWPTZXNWMSKZBWNSKZJKZLMZXANOZPZEGQZUDGQZFRUGZUERUGZXEXMX
      KWKXJYIWKXJXKUBWKXLUKWKXJXKULUEFEUDXABWNUMUNXMYHXEUERXMXQRHZTYGXDFRXMYJWO
      RHZYGXDPXMYJYKTZTZYGBBJKZLMZXQNOZWPTZBWMSKZYAJKZLMZXANOZPZEGQZXDWKYGUUCPX
      LYLYFUUCUDBGXNBUOZYEUUBEGUUDXSYQYDUUAUUDXRYPWPUUDXPYOXQNUUDXOYNLXNBBJUPUQ
      URUSUUDYCYTXANUUDYBYSLUUDXTYRYAJXNBWMSUPUTUQURVAVBVCVDYMXCUUBEGXMYLWMGHZX
      CUUBVEXMYLUUETZTZWPYQXBUUAUUGYPWPUUGYOVFXQNUUGYNWKYNVFUOXLUUFBVHVDVGUUGXQ
      XMYJYKUUEVIVJVKVLUUGWTYTXANUUGWSYSLUUGWQYRWRYAJUUGUUEWQYRUOXMYLUUEUBAWMXI
      YRGCXHWMBSVMDBWMSVNVRVSUUGXJWRYAUOWKXJXKUUFVOAWNXIYAGCXHWNBSVMDBWNSVNVRVS
      VPUQURVAVQVTWAVQWBWCWDWEGGWHZUUHXGWLXFTVEGWFZUUIUAUCFEGGCWGWIWJ $.
  $}

  ${
    $d A x $.
    divccncf.1 $e |- F = ( x e. CC |-> ( x / A ) ) $.
    $( Division by a constant is continuous.  (Contributed by Paul Chapman,
       28-Nov-2007.) $)
    divccncf $p |- ( ( A e. CC /\ A =/= 0 ) -> F e. ( CC -cn-> CC ) ) $=
      ( cc wcel cc0 wne wa c1 cdiv co cmul cmpt ccncf wceq divrec2 3expb ancoms
      cv mpteq2dva syl5eq reccl eqid mulc1cncf syl eqeltrd ) BEFZBGHZIZCAEJBKLZ
      ATZMLZNZEEOLZUJCAEULBKLZNUNDUJAEUPUMULEFZUJUPUMPZUQUHUIURULBQRSUAUBUJUKEF
      UNUOFBUCAUKUNUNUDUEUFUG $.
  $}

  ${
    $d u w x y z A $.  $d u v w z B $.  $d u v w x y z C $.  $d u w x y z ph $.
    $d u v w x y z F $.  $d u v w x y z G $.
    cncfco.4 $e |- ( ph -> F e. ( A -cn-> B ) ) $.
    cncfco.5 $e |- ( ph -> G e. ( B -cn-> C ) ) $.
    $( The composition of two continuous maps on complex numbers is also
       continuous.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by
       Mario Carneiro, 25-Aug-2014.) $)
    cncfco $p |- ( ph -> ( G o. F ) e. ( A -cn-> C ) ) $=
      ( vw vz co wcel cv cmin cabs cfv clt wi crp wa vx vy vv vu ccom ccncf wbr
      wf wral cncff syl fco syl2anc adantr simprl ffvelrnd simprr cncfi syl3anc
      ad2antrr simplrl simpr ad3antrrr oveq1 fveq2d breq1d fveq2 oveq1d imbi12d
      wrex rspcv fvco3 oveq12d imbi2d sylibrd imp an32s imim2d anassrs ralimdva
      wceq reximdva ex mpid rexlimdva mpd ralrimivva cc wss wb cncfrss cncfrss2
      elcncf2 mpbir2and ) AFEUEZBDUFKLZBDWOUHZIMZUAMZNKOPJMZQUGZWRWOPZWSWOPZNKZ
      OPZUBMZQUGZRZIBUIZJSVJZUBSUIUABUIZACDFUHZBCEUHZWQAFCDUFKLZXLHCDFUJUKAEBCU
      FKLZXMGBCEUJUKZBCDFEULUMAXJUAUBBSAWSBLZXFSLZTZTZUCMZWSEPZNKZOPZUDMZQUGZYA
      FPZYBFPZNKZOPZXFQUGZRZUCCUIZUDSVJZXJXTXNYBCLXRYNAXNXSHUNXTBCWSEAXMXSXPUNA
      XQXRUOUPAXQXRUQUDUCCDYBXFFURUSXTYMXJUDSXTYESLZTZYMXAWREPZYBNKZOPZYEQUGZRZ
      IBUIZJSVJZXJYPXOXQYOUUCAXOXSYOGUTAXQXRYOVAZXTYOVBJIBCWSYEEURUSYPYMUUCXJRY
      PYMTZUUBXIJSUUEWTSLZTUUAXHIBUUEUUFWRBLZUUAXHRUUEUUFUUGTZTYTXGXAYPUUHYMYTX
      GRZYPUUHTZYMUUIUUJYMYTYQFPZYHNKZOPZXFQUGZRZUUIUUJYQCLYMUUORUUJBCWREAXMXSY
      OUUHXPVCZYPUUFUUGUQZUPYLUUOUCYQCYAYQWAZYFYTYKUUNUURYDYSYEQUURYCYROYAYQYBN
      VDVEVFUURYJUUMXFQUURYIUULOUURYGUUKYHNYAYQFVGVHVEVFVIVKUKUUJXGUUNYTUUJXEUU
      MXFQUUJXDUULOUUJXBUUKXCYHNUUJXMUUGXBUUKWAUUPUUQBCWRFEVLUMUUJXMXQXCYHWAUUP
      YPXQUUHUUDUNBCWSFEVLUMVMVEVFVNVOVPVQVRVSVTWBWCWDWEWFWGABWHWIZDWHWIZWPWQXK
      TWJAXOUUSGBCEWKUKAXNUUTHCDFWLUKUAUBJIBDWOWMUMWN $.
  $}

  ${
    $d f w x y z A $.  $d f w x y z B $.  $d f w x y z J $.  $d f w x y z K $.
    $d w x y z C $.  $d w x y z D $.
    cncfmet.1 $e |- C = ( ( abs o. - ) |` ( A X. A ) ) $.
    cncfmet.2 $e |- D = ( ( abs o. - ) |` ( B X. B ) ) $.
    cncfmet.3 $e |- J = ( MetOpen ` C ) $.
    cncfmet.4 $e |- K = ( MetOpen ` D ) $.
    $( Relate complex function continuity to metric space continuity.
       (Contributed by Paul Chapman, 26-Nov-2007.)  (Revised by Mario Carneiro,
       7-Sep-2015.) $)
    cncfmet $p |- ( ( A C_ CC /\ B C_ CC ) -> ( A -cn-> B ) = ( J Cn K ) ) $=
      ( vx vw vz vy cc wa co clt cfv wcel vf wss ccncf ccn cv wbr wral crp wrex
      wf wi cmin cabs wb wceq simplll simprl simprr ccom cxp oveqi ovres syl5eq
      cres ad2ant2l ssel2 eqid cnmetdval syl2an eqtrd syl22anc breq1d ad2ant2lr
      ffvelrn syl2anc simpllr imbi12d anassrs ralbidva rexbidv ralbidv pm5.32da
      sseldd cxmt cnxmet xmetres2 mpan syl5eqel metcn elcncf 3bitr4rd eqrdv ) A
      OUBZBOUBZPZUAABUCQZEFUDQZWOABUAUEZUJZKUEZLUEZCQZMUEZRUFZWTWRSZXAWRSZDQZNU
      EZRUFZUKZLAUGZMUHUIZNUHUGZKAUGZPZWSWTXAULQUMSZXCRUFZXEXFULQUMSZXHRUFZUKZL
      AUGZMUHUIZNUHUGZKAUGZPWRWQTZWRWPTWOWSXNYDWOWSPZXMYCKAYFWTATZPZXLYBNUHYHXK
      YAMUHYHXJXTLAYFYGXAATZXJXTUNYFYGYIPZPZXDXQXIXSYKXBXPXCRYKWMYGWMYIXBXPUOWM
      WNWSYJUPZYFYGYIUQYLYFYGYIURWMYGPZWMYIPZPXBWTXAUMULUSZQZXPYGYIXBYPUOWMWMYJ
      XBWTXAYOAAUTVDZQYPCYQWTXAGVAWTXAAAYOVBVCVEYMWTOTXAOTYPXPUOYNAOWTVFAOXAVFW
      TXAYOYOVGZVHVIVJVKVLYKXGXRXHRYKXGXEXFYOQZXRYKXEBTZXFBTZXGYSUOWSYGYTWOYIAB
      WTWRVNVMZWSYIUUAWOYGABXAWRVNVEZYTUUAPXGXEXFYOBBUTVDZQYSDUUDXEXFHVAXEXFBBY
      OVBVCVOYKXEOTXFOTYSXRUOYKBOXEWMWNWSYJVPZUUBWCYKBOXFUUEUUCWCXEXFYOYRVHVOVJ
      VLVQVRVSVTWAVSWBWMCAWDSZTDBWDSZTYEXOUNWNWMCYQUUFGYOOWDSTZWMYQUUFTWEYOAOWF
      WGWHWNDUUDUUGHUUHWNUUDUUGTWEYOBOWFWGWHKNMLCDWREFABIJWIVIKNMLABWRWJWKWL $.
  $}

  ${
    cncfcn.2 $e |- J = ( TopOpen ` CCfld ) $.
    cncfcn.3 $e |- K = ( J |`t A ) $.
    cncfcn.4 $e |- L = ( J |`t B ) $.
    $( Relate complex function continuity to topological continuity.
       (Contributed by Mario Carneiro, 17-Feb-2015.) $)
    cncfcn $p |- ( ( A C_ CC /\ B C_ CC ) -> ( A -cn-> B ) = ( K Cn L ) ) $=
      ( cc wss co cxp cres cmopn cfv ccn eqid crest wceq cnxmet ccncf cabs cmin
      wa ccom cncfmet cxmt simpl cnfldtopn metrest sylancr syl5eq simpr oveq12d
      wcel eqtr4d ) AIJZBIJZUDZABUAKUBUCUEZAALMZNOZUTBBLMZNOZPKDEPKABVAVCVBVDVA
      QZVCQZVBQZVDQZUFUSDVBEVDPUSDCARKZVBGUSUTIUGOUOZUQVIVBSTUQURUHUTVACVBIAVEC
      FUIZVGUJUKULUSECBRKZVDHUSVJURVLVDSTUQURUMUTVCCVDIBVFVKVHUJUKULUNUP $.
  $}

  ${
    cncfcn1.1 $e |- J = ( TopOpen ` CCfld ) $.
    $( Relate complex function continuity to topological continuity.
       (Contributed by Paul Chapman, 28-Nov-2007.)  (Revised by Mario Carneiro,
       7-Sep-2015.) $)
    cncfcn1 $p |- ( CC -cn-> CC ) = ( J Cn J ) $=
      ( cc wss ccncf co wceq ssid crest ctop wcel cnfldtop cnfldtopon toponunii
      ccn restid ax-mp eqcomi cncfcn mp2an ) CCDZUACCEFAAOFGCHZUBCCAAABACIFZAAJ
      KUCAGABLAJCCAABMNPQRZUDST $.
  $}

  ${
    $d x A $.  $d x S $.  $d x T $.
    $( A constant function is a continuous function on ` CC ` .  (Contributed
       by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro,
       7-Sep-2015.) $)
    cncfmptc $p |- ( ( A e. T /\ S C_ CC /\ T C_ CC ) ->
      ( x e. S |-> A ) e. ( S -cn-> T ) ) $=
      ( wcel cc wss w3a cmpt ccnfld ctopn cfv crest co ccn ccncf eqid resttopon
      ctopon sylancr cnfldtopon simp2 simp3 cnmptc wceq cncfcn 3adant1 eleqtrrd
      simp1 ) BDEZCFGZDFGZHZACBIJKLZCMNZUNDMNZONZCDPNZUMABUOUPCDUMUNFSLEZUKUOCS
      LEUNUNQZUAZUJUKULUBCUNFRTUMUSULUPDSLEVAUJUKULUCDUNFRTUJUKULUIUDUKULURUQUE
      UJCDUNUOUPUTUOQUPQUFUGUH $.

    $( The identity function is a continuous function on ` CC ` .  (Contributed
       by Jeff Madsen, 11-Jun-2010.)  (Revised by Mario Carneiro,
       17-May-2016.) $)
    cncfmptid $p |- ( ( S C_ T /\ T C_ CC ) ->
      ( x e. S |-> x ) e. ( S -cn-> T ) ) $=
      ( wss cc wa ccncf co cv cmpt cncfss ccnfld ctopn cfv ccn ctopon wcel eqid
      crest cnfldtopon resttopon sylancr cnmptid cncfcn syl2anc eleqtrrd sseldd
      sstr wceq ) BCDCEDFZBBGHZBCGHABAIJZBBCKUJULLMNZBSHZUNOHZUKUJAUNBUJUMEPNQB
      EDZUNBPNQUMUMRZTBCEUHZBUMEUAUBUCUJUPUPUKUOUIURURBBUMUNUNUQUNRZUSUDUEUFUG
      $.
  $}

  ${
    $d y A $.  $d x y F $.  $d x ph $.  $d x X $.
    cncfmpt1f.1 $e |- ( ph -> F e. ( CC -cn-> CC ) ) $.
    cncfmpt1f.2 $e |- ( ph -> ( x e. X |-> A ) e. ( X -cn-> CC ) ) $.
    $( Composition of continuous functions. ` -cn-> ` analogue of ~ cnmpt11f .
       (Contributed by Mario Carneiro, 3-Sep-2014.) $)
    cncfmpt1f $p |- ( ph -> ( x e. X |-> ( F ` A ) ) e. ( X -cn-> CC ) ) $=
      ( vy cmpt ccom cfv cc ccncf co cv wf wcel wral cncff syl eqid fmpt sylibr
      eqidd feqmptd fveq2 fmptcof cncfco eqeltrrd ) ADBECIZJBECDKZIELMNZABHELCH
      OZDKUKUJDAELUJPZCLQBERAUJULQUNGELUJSTBELCUJUJUAUBUCAUJUDAHLLDADLLMNQLLDPF
      LLDSTUEUMCDUFUGAELLUJDGFUHUI $.
  $}

  ${
    $d x F $.  $d x J $.  $d x ph $.  $d x X $.
    cncfmpt2f.1 $e |- J = ( TopOpen ` CCfld ) $.
    cncfmpt2f.2 $e |- ( ph -> F e. ( ( J tX J ) Cn J ) ) $.
    cncfmpt2f.3 $e |- ( ph -> ( x e. X |-> A ) e. ( X -cn-> CC ) ) $.
    cncfmpt2f.4 $e |- ( ph -> ( x e. X |-> B ) e. ( X -cn-> CC ) ) $.
    $( Composition of continuous functions. ` -cn-> ` analogue of ~ cnmpt12f .
       (Contributed by Mario Carneiro, 3-Sep-2014.) $)
    cncfmpt2f $p |- ( ph -> ( x e. X |-> ( A F B ) ) e. ( X -cn-> CC ) ) $=
      ( co cmpt crest cc ctopon cfv wcel wss wceq ccn ccncf cncfrss syl sylancr
      cnfldtopon resttopon ssid eqid restid ax-mp eqcomi cncfcn sylancl eleqtrd
      toponunii cnmpt12f eleqtrrd ) ABGCDELMFGNLZFUALZGOUBLZABCDEUSFFFGAFOPQZRZ
      GOSZUSGPQRFHUFZABGCMZVARVDJGOVFUCUDZGFOUGUEAVFVAUTJAVDOOSVAUTTVGOUHGOFUSF
      HUSUIFONLZFVCVHFTVEFVBOOFVEUPUJUKULUMUNZUOABGDMVAUTKVIUOIUQVIUR $.
  $}

  ${
    $d x F $.  $d x J $.  $d x ph $.  $d x S $.  $d x X $.
    cncfmpt2ss.1 $e |- J = ( TopOpen ` CCfld ) $.
    cncfmpt2ss.2 $e |- F e. ( ( J tX J ) Cn J ) $.
    cncfmpt2ss.3 $e |- ( ph -> ( x e. X |-> A ) e. ( X -cn-> S ) ) $.
    cncfmpt2ss.4 $e |- ( ph -> ( x e. X |-> B ) e. ( X -cn-> S ) ) $.
    cncfmpt2ss.5 $e |- S C_ CC $.
    cncfmpt2ss.6 $e |- ( ( A e. S /\ B e. S ) -> ( A F B ) e. S ) $.
    $( Composition of continuous functions in a subset.  (Contributed by Mario
       Carneiro, 17-May-2016.) $)
    cncfmpt2ss $p |- ( ph -> ( x e. X |-> ( A F B ) ) e. ( X -cn-> S ) ) $=
      ( co cmpt wcel wf eqid cc ccncf cv wa wral cncff syl fmpt sylibr r19.21bi
      syl2anc fmptd wss ctx ccn a1i ssid cncfss mp2an sseldi cncfmpt2f cncffvrn
      wb sylancr mpbird ) ABHCDFOZPZHEUAOZQZHEVFRZABHVEEVFABUBHQUCCEQZDEQZVEEQA
      VJBHAHEBHCPZRZVJBHUDAVLVGQVMKHEVLUEUFBHECVLVLSUGUHUIAVKBHAHEBHDPZRZVKBHUD
      AVNVGQVOLHEVNUEUFBHEDVNVNSUGUHUINUJVFSUKAETULZVFHTUAOZQVHVIVBMABCDFGHIFGG
      UMOGUNOQAJUOAVGVQVLVPTTULVGVQULMTUPHETUQURZKUSAVGVQVNVRLUSUTHTEVFVAVCVD
      $.
  $}

  ${
    $d A x $.
    addccncf.1 $e |- F = ( x e. CC |-> ( x + A ) ) $.
    $( Adding a constant is a continuous function.  (Contributed by Jeff
       Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
       12-Sep-2015.) $)
    addccncf $p |- ( A e. CC -> F e. ( CC -cn-> CC ) ) $=
      ( cc wcel cv caddc cmpt ccncf ccnfld ctopn cfv eqid ctx ccn addcn a1i wss
      co ssid cncfmptid mp2an cncfmptc mp3an23 cncfmpt2f syl5eqel ) BEFZCAEAGZB
      HTIEEJTZDUHAUIBHKLMZEUKNZHUKUKOTUKPTFUHUKULQRAEUIIUJFZUHEESZUNUMEUAZUOAEE
      UBUCRUHUNUNAEBIUJFUOUOABEEUDUEUFUG $.
  $}

  ${
    $d A x $.
    cdivcncf.1 $e |- F = ( x e. ( CC \ { 0 } ) |-> ( A / x ) ) $.
    $( Division with a constant numerator is continuous.  (Contributed by Mario
       Carneiro, 28-Dec-2016.) $)
    cdivcncf $p |- ( A e. CC -> F e. ( ( CC \ { 0 } ) -cn-> CC ) ) $=
      ( cc wcel cc0 csn cdif cv cdiv co cfv crest ccn ctopon wss eqid a1i wceq
      cmpt ccnfld ctopn ccncf cnfldtopon difss resttopon sylancl cnmptc cnmptid
      id divcn cnmpt12f ssid toponunii restid ax-mp eqcomi cncfcn mp2an 3eltr4g
      ctx ) BEFZAEGHZIZBAJZKLUAUBUCMZVENLZVGOLZCVEEUDLZVCABVFKVHVGVHVGVEVCVGEPM
      ZFZVEEQZVHVEPMFVLVCVGVGRZUEZSZEVDUFZVEVGEUGUHZVCABVHVGVEEVRVPVCUKUIVCAVHV
      EVRUJKVGVHVBLVGOLFVCVGVHVNVHRZULSUMDVMEEQVJVITVQEUNVEEVGVHVGVNVSVGENLZVGV
      LVTVGTVOVGVKEEVGVOUOUPUQURUSUTVA $.
  $}

  ${
    $d x A $.
    negcncf.1 $e |- F = ( x e. A |-> -u x ) $.
    $( The negative function is continuous.  (Contributed by Mario Carneiro,
       30-Dec-2016.) $)
    negcncf $p |- ( A C_ CC -> F e. ( A -cn-> CC ) ) $=
      ( cc c1 cneg cv cmul co cmpt ccncf wcel wa ssel2 mulm1d mpteq2dva syl6eqr
      wss ccnfld ctopn cfv eqid ctx ccn mulcn a1i neg1cn ssid mp3an13 cncfmptid
      cncfmptc mpan2 cncfmpt2f eqeltrrd ) BESZABFGZAHZIJZKZCBELJZUPUTABURGZKCUP
      ABUSVBUPURBMNURBEUROPQDRUPAUQURITUAUBZBVCUCZIVCVCUDJVCUEJMUPVCVDUFUGUQEMU
      PEESZABUQKVAMUHEUIZAUQBEULUJUPVEABURKVAMVFABEUKUMUNUO $.
  $}

  ${
    $d x y F $.  $d x A $.
    negfcncf.1 $e |- G = ( x e. A |-> -u ( F ` x ) ) $.
    $( The negative of a continuous complex function is continuous.
       (Contributed by Paul Chapman, 21-Jan-2008.)  (Revised by Mario Carneiro,
       25-Aug-2014.) $)
    negfcncf $p |- ( F e. ( A -cn-> CC ) -> G e. ( A -cn-> CC ) ) $=
      ( vy cc ccncf co wcel cv cneg cmpt ccom cfv cncff ffvelrnda feqmptd eqidd
      negeq fmptco syl6eqr id wss ssid eqid negcncf mp1i cncfco eqeltrrd ) CBGH
      IZJZFGFKZLZMZCNZDUKULUPABAKZCOZLZMDULAFBGURUNUSCUOULBGUQCBGCPZQULABGCUTRU
      LUOSUMURTUAEUBULBGGCUOULUCGGUDUOGGHIJULGUEFGUOUOUFUGUHUIUJ $.
  $}

  $( Absolute value is continuous.  Alternate proof of ~ abscncf .
     (Contributed by NM, 6-Jun-2008.)  (Revised by Mario Carneiro,
     10-Sep-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  abscncfALT $p |- abs e. ( CC -cn-> RR ) $=
    ( cabs ccnfld ctopn cfv cioo crn ctg ccn co cc cr ccncf eqid abscn wss wceq
    ssid ax-resscn crest ctopon cnfldtopon toponunii restid ax-mp eqcomi tgioo2
    wcel cncfcn mp2an eleqtrri ) ABCDZEFGDZHIZJKLIZUKULUKMZULMNJJOKJOUNUMPJQRJK
    UKUKULUOUKJSIZUKUKJTDZUGUPUKPUKUOUAZUKUQJJUKURUBUCUDUEUKUOUFUHUIUJ $.

  ${
    cncfcnvcn.j $e |- J = ( TopOpen ` CCfld ) $.
    cncfcnvcn.k $e |- K = ( J |`t X ) $.
    $( Rewrite ~ cmphaushmeo for functions on the complex numbers.
       (Contributed by Mario Carneiro, 19-Feb-2015.) $)
    cncfcnvcn $p |- ( ( K e. Comp /\ F e. ( X -cn-> Y ) ) ->
      ( F : X -1-1-onto-> Y <-> `' F e. ( Y -cn-> X ) ) ) $=
      ( wcel ccncf co crest ccn wf1o wb cc wceq eqid syl cuni sylancr ccmp ccnv
      wa chmeo simpr cncfrss adantl cncfrss2 cncfcn syl2anc eleqtrd ishmeo baib
      wss ctop cnfldtop cnfldtopon toponunii restuni unieqi f1oeq2 f1oeq3 simpl
      syl6eqr cha cvv cnfldhaus cnex ssex resthaus cmphaushmeo syl3anc 3bitr4d
      eleq2d ) CUAHZADEIJZHZUCZACBEKJZUDJHZAUBZVSCLJZHZDEAMZWAEDIJZHVRACVSLJZHZ
      VTWCNVRAVPWFVOVQUEVRDOUNZEOUNZVPWFPVQWHVODEAUFUGZVQWIVODEAUHUGZDEBCVSFGVS
      QZUIUJUKZVTWGWCACVSULUMRVRDVSSZAMZCSZWNAMZWDVTVRDWPPWOWQNVRDBDKJZSZWPVRBU
      OHZWHDWSPBFUPZWJDBOOBBFUQURZUSTCWRGUTVDDWPWNAVARVREWNPZWDWONVRWTWIXCXAWKE
      BOXBUSTEWNDAVBRVRVOVSVEHZWGVTWQNVOVQVCVRBVEHEVFHZXDBFVGVRWIXEWKEOVHVIREBV
      FVJTWMACVSWPWNWPQWNQVKVLVMVRWEWBWAVRWIWHWEWBPWKWJEDBVSCFWLGUIUJVNVM $.
  $}

  ${
    $d x N $.
    $( The power function on complex numbers, for fixed exponent N, is
       continuous.  Similar to ~ expcn .  (Contributed by Glauco Siliprandi,
       29-Jun-2017.) $)
    expcncf $p |- ( N e. NN0 -> ( x e. CC |-> ( x ^ N ) ) e. ( CC -cn-> CC ) )
               $=
      ( cn0 wcel cc cv cexp co cmpt ccnfld ctopn cfv ccncf eqid expcn syl6eleqr
      ccn cncfcn1 ) BCDAEAFBGHIJKLZSQHEEMHASBSNZOSTRP $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    cnmptre.1 $e |- R = ( TopOpen ` CCfld ) $.
    cnmptre.2 $e |- J = ( ( topGen ` ran (,) ) |`t A ) $.
    cnmptre.3 $e |- K = ( ( topGen ` ran (,) ) |`t B ) $.
    cnmptre.4 $e |- ( ph -> A C_ RR ) $.
    cnmptre.5 $e |- ( ph -> B C_ RR ) $.
    cnmptre.6 $e |- ( ( ph /\ x e. A ) -> F e. B ) $.
    cnmptre.7 $e |- ( ph -> ( x e. CC |-> F ) e. ( R Cn R ) ) $.
    $( Lemma for ~ iirevcn and related functions.  (Contributed by Mario
       Carneiro, 6-Jun-2014.) $)
    cnmptre $p |- ( ph -> ( x e. A |-> F ) e. ( J Cn K ) ) $=
      ( crest co ccn cc cr cmpt wcel ctopon cfv cnfldtopon a1i ax-resscn syl6ss
      eqid cnmpt1res cioo crn ctg wss wceq rerest syl syl6eqr oveq1d eleqtrd wb
      wf fmptd frn cnrest2 syl3anc mpbid oveq2d ) ABCFUAZGEDPQZRQZGHRQAVIGERQZU
      BZVIVKUBZAVIECPQZERQVLABFEVOESCVOUIESUCUDUBZAEIUEUFZACTSLUGUHOUJAVOGERAVO
      UKULUMUDZCPQZGACTUNVOVSUOLCVREIVRUIZUPUQJURUSUTAVPVIULDUNZDSUNVMVNVAVQACD
      VIVBWAABCFDVINVIUIVCCDVIVDUQADTSMUGUHDVIGESVEVFVGAVJHGRAVJVRDPQZHADTUNVJW
      BUOMDVREIVTUPUQKURVHUT $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y K $.  $d x y ph $.
    $d x y X $.
    cnmpt2pc.r $e |- R = ( topGen ` ran (,) ) $.
    cnmpt2pc.m $e |- M = ( R |`t ( A [,] B ) ) $.
    cnmpt2pc.n $e |- N = ( R |`t ( B [,] C ) ) $.
    cnmpt2pc.o $e |- O = ( R |`t ( A [,] C ) ) $.
    cnmpt2pc.a $e |- ( ph -> A e. RR ) $.
    cnmpt2pc.c $e |- ( ph -> C e. RR ) $.
    cnmpt2pc.b $e |- ( ph -> B e. ( A [,] C ) ) $.
    cnmpt2pc.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    cnmpt2pc.q $e |- ( ( ph /\ ( x = B /\ y e. X ) ) -> D = E ) $.
    cnmpt2pc.d $e |- ( ph -> ( x e. ( A [,] B ) , y e. X |-> D )
                               e. ( ( M tX J ) Cn K ) ) $.
    cnmpt2pc.e $e |- ( ph -> ( x e. ( B [,] C ) , y e. X |-> E )
                               e. ( ( N tX J ) Cn K ) ) $.
    $( Piecewise definition of a continuous function on a real interval.
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro,
       5-Jun-2014.) $)
    cnmpt2pc $p |- ( ph -> ( x e. ( A [,] C ) , y e. X |->
                            if ( x <_ B , D , E ) ) e. ( ( O tX J ) Cn K ) ) $=
      ( cicc co cxp cle wbr cif cmpt2 ctx cuni eqid ccld cfv wcel crest iccssre
      cv wss syl2anc cioo crn ctg sseldd icccld fveq2i syl6eleqr cun ssun1 wceq
      cr iccsplit syl5sseqr uniretop unieqi eqtr4i restcldi ctopon toponuni syl
      syl3anc topontop topcld eqeltrd txcld ssun2 xpeq1d xpundir syl6eq retopon
      ctop 3syl eqeltri resttopon sylancr syl5eqel txtopon eqtr3d wf wral sstrd
      ccn cntop2 toptopon sylib w3a wa elicc2 biimpa 3adant3 iftrued mpt2eq3dva
      wb simp3d cnf2 fmpt2 sylibr simp2d biantrud simp1d adantr resmpt2 sylancl
      cvv a1i ovexd txrest syl22anc restabs oveq1i 3eqtr4g eqtrd oveq12d oveq1d
      cres 3eltr4d letri3d bitr4d wi ancom2s ifeq1d ifid 3adant2 sylbid iffalse
      expr pm2.61d1 ralun raleqdv mpbird feq2d mpbid retop resttop mp2an oveq2d
      ssid ovex restid paste ) ADEUGUHZOUIZEFUGUHZOUIZBCDFUGUHZOBVBZEUJUKZGIULZ
      UMZNJUNUHZKUVNUOZKUOZUVOUPUVPUPZAUVENUQURZUSOJUQURZUSZUVFUVNUQURZUSAUVEHU
      VIUTUHZUQURZUVRAUVIVOVCZUVEHUQURZUSUVEUVIVCZUVEUWCUSADVOUSZFVOUSZUWDTUADF
      VAVDZAUVEVEVFVGURZUQURZUWEAUWGEVOUSZUVEUWKUSTAUVIVOEUWIUBVHZDEVIVDHUWJUQP
      VJZVKAUVEUVGVLZUVEUVIUVEUVGVMAUWGUWHEUVIUSUVIUWOVNTUAUBDFEVPWEZVQZUVIUVEH
      VOVOUWJUOHUOVRHUWJPVSVTZWAWENUWBUQSVJZVKAOJUOZUVSAJOWBURZUSZOUWTVNUCOJWCW
      DZAUXBJWOUSUWTUVSUSUCOJWFJUWTUWTUPZWGWPWHZUVEONJWIVDAUVGUVRUSUVTUVHUWAUSA
      UVGUWCUVRAUWDUVGUWEUSUVGUVIVCZUVGUWCUSUWIAUVGUWKUWEAUWLUWHUVGUWKUSUWMUAEF
      VIVDUWNVKAUWOUVGUVIUVGUVEWJUWPVQZUVIUVGHVOUWRWAWEUWSVKUXEUVGONJWIVDAUVIOU
      IZUVFUVHVLZUVOAUXHUWOOUIUXIAUVIUWOOUWPWKUVEUVGOWLWMAUVNUXHWBURUSZUXHUVOVN
      ANUVIWBURZUSUXBUXJANUWBUXKSAHVOWBURZUSZUWDUWBUXKUSHUWJUXLPWNWQZUWIUVIHVOW
      RWSWTUCNJUVIOXAVDUXHUVNWCWDZXBAUXHUVPUVMXCZUVOUVPUVMXCAUVLUVPUSCOXDZBUVIX
      DZUXPAUXRUXQBUWOXDZAUXQBUVEXDZUXQBUVGXDZUXSAUVFUVPBCUVEOUVLUMZXCZUXTALJUN
      UHZUVFWBURUSZKUVPWBURUSZUYBUYDKXFUHZUSUYCALUVEWBURZUSUXBUYEALHUVEUTUHZUYH
      QAUXMUVEVOVCUYIUYHUSUXNAUVEUVIVOUWQUWIXEUVEHVOWRWSWTUCLJUVEOXAVDAKWOUSZUY
      FABCUVEOGUMZUYGUSUYJUEUYKUYDKXGWDKUVPUVQXHXIZAUYBUYKUYGABCUVEOUVLGAUVJUVE
      USZCVBOUSZXJUVKGIAUYMUVKUYNAUYMXKUVJVOUSZDUVJUJUKZUVKAUYMUYOUYPUVKXJZAUWG
      UWLUYMUYQXQTUWMDEUVJXLVDXMXRXNXOXPUEWHZUYBUYDKUVFUVPXSWEBCUVEOUVLUVPUYBUY
      BUPXTYAAUVHUVPBCUVGOUVLUMZXCZUYAAMJUNUHZUVHWBURUSZUYFUYSVUAKXFUHZUSUYTAMU
      VGWBURZUSUXBVUBAMHUVGUTUHZVUDRAUXMUVGVOVCVUEVUDUSUXNAUVGUVIVOUXGUWIXEUVGH
      VOWRWSWTUCMJUVGOXAVDUYLAUYSBCUVGOIUMVUCABCUVGOUVLIAUVJUVGUSZUYNXJZUVKUVLI
      VNZVUGUVKUVJEVNZVUHAVUFUVKVUIXQUYNAVUFXKZUVKUVKEUVJUJUKZXKVUIVUJVUKUVKVUJ
      UYOVUKUVJFUJUKZAVUFUYOVUKVULXJZAUWLUWHVUFVUMXQUWMUAEFUVJXLVDXMZYBYCVUJUVJ
      EVUJUYOVUKVULVUNYDAUWLVUFUWMYEUUAUUBXNAUYNVUIVUHUUCVUFAUYNVUIVUHAUYNVUIXK
      XKZUVLUVKIIULIVUOUVKGIIAVUIUYNGIVNUDUUDUUEUVKIUUFWMUUJUUGUUHUVKGIUUIUUKXP
      UFWHZUYSVUAKUVHUVPXSWEBCUVGOUVLUVPUYSUYSUPXTYAUXQBUVEUVGUULVDAUXQBUVIUWOU
      WPUUMUUNBCUVIOUVLUVPUVMUVMUPXTXIAUXHUVOUVPUVMUXOUUOUUPAUYBUYGUVMUVFYSZUVN
      UVFUTUHZKXFUHUYRAUWFOOVCZVUQUYBVNUWQOUVAZBCUVIOUVEOUVLYFYGAVURUYDKXFAVURN
      UVEUTUHZJOUTUHZUNUHZUYDANWOUSZUXBUVEYHUSUVTVURVVCVNVVDANUWBWOSHWOUSZUVIYH
      USZUWBWOUSHUWJWOPUUQWQZDFUGUVBUVIHYHUURUUSWQYIZUCADEUGYJUXEUVEONJWOUXAYHU
      VSYKYLAVVALVVBJUNAUWBUVEUTUHZUYIVVALAVVEUWFVVFVVIUYIVNVVEAVVGYIZUWQADFUGY
      JZUVEUVIHWOYHYMWENUWBUVEUTSYNQYOAVVBJUWTUTUHZJAOUWTJUTUXCUUTAUXBVVLJVNUCJ
      UXAUWTUXDUVCWDYPZYQYPYRYTAUYSVUCUVMUVHYSZUVNUVHUTUHZKXFUHVUPAUXFVUSVVNUYS
      VNUXGVUTBCUVIOUVGOUVLYFYGAVVOVUAKXFAVVONUVGUTUHZVVBUNUHZVUAAVVDUXBUVGYHUS
      UVTVVOVVQVNVVHUCAEFUGYJUXEUVGONJWOUXAYHUVSYKYLAVVPMVVBJUNAUWBUVGUTUHZVUEV
      VPMAVVEUXFVVFVVRVUEVNVVJUXGVVKUVGUVIHWOYHYMWENUWBUVGUTSYNRYOVVMYQYPYRYTUV
      D $.
  $}

  $( Reverse the unit interval.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
  iirev $p |- ( X e. ( 0 [,] 1 ) -> ( 1 - X ) e. ( 0 [,] 1 ) ) $=
    ( cr wcel cc0 cle wbr c1 w3a cmin co cicc 1re resubcl mpan 3ad2ant1 sylancr
    simp3 wb 0re elicc2i simp1 subge0 mpbird simp2 subge02 mpbid 3jca 3imtr4i )
    ABCZDAEFZAGEFZHZGAIJZBCZDUMEFZUMGEFZHADGKJZCUMUQCULUNUOUPUIUJUNUKGBCZUIUNLG
    AMNOULUOUKUIUJUKQULURUIUOUKRLUIUJUKUAZGAUBPUCULUJUPUIUJUKUDULURUIUJUPRLUSGA
    UEPUFUGDGASLTDGUMSLTUH $.

  $( The reversion function is a continuous map of the unit interval.
     (Contributed by Mario Carneiro, 6-Jun-2014.) $)
  iirevcn $p |- ( x e. ( 0 [,] 1 ) |-> ( 1 - x ) ) e. ( II Cn II ) $=
    ( cc0 c1 cicc co cv cmin cmpt cii ccn wcel wtru ccnfld ctopn cfv eqid dfii2
    cr a1i cc unitssre iirev adantl ctopon cnfldtopon 1cnd cnmptc cnmptid subcn
    wss ctx cnmpt12f cnmptre trud ) ABCDEZCAFZGEZHIIJEKLAUOUOMNOZUQIIURPZQQUORU
    JLUASZUTUPUOKUQUOKLUPUBUCLACUPGURURURURTURTUDOKLURUSUESZLACURURTTVAVALUFUGL
    AURTVAUHGURURUKEURJEKLURUSUISULUMUN $.

  $( Map the first half of ` II ` into ` II ` .  (Contributed by Jeff Madsen,
     2-Sep-2009.) $)
  iihalf1 $p |- ( X e. ( 0 [,] ( 1 / 2 ) ) -> ( 2 x. X ) e. ( 0 [,] 1 ) ) $=
    ( cr wcel cc0 cle wbr c1 c2 cdiv w3a cmul cicc 2re remulcl mpan 1re elicc2i
    co wa 0re 3ad2ant1 0le2 mulge0 mpanl12 3adant3 clt wb 2pos pm3.2i lemuldiv2
    mp3an23 biimpar 3adant2 3jca halfre 3imtr4i ) ABCZDAEFZAGHIRZEFZJZHAKRZBCZD
    VBEFZVBGEFZJADUSLRCVBDGLRCVAVCVDVEUQURVCUTHBCZUQVCMHANOUAUQURVDUTVFDHEFUQUR
    SVDMUBHAUCUDUEUQUTVEURUQVEUTUQGBCVFDHUFFZSVEUTUGPVFVGMUHUIAGHUJUKULUMUNDUSA
    TUOQDGVBTPQUP $.

  ${
    iihalf1cn.1 $e |- J = ( ( topGen ` ran (,) ) |`t ( 0 [,] ( 1 / 2 ) ) ) $.
    $( The first half function is a continuous map.  (Contributed by Mario
       Carneiro, 6-Jun-2014.) $)
    iihalf1cn $p |- ( x e. ( 0 [,] ( 1 / 2 ) ) |-> ( 2 x. x ) )
                      e. ( J Cn II ) $=
      ( cc0 c1 c2 cdiv co cicc cv cmul cii ccn wcel wtru cfv cr wss a1i cc cmpt
      ccnfld ctopn eqid dfii2 0re halfre iccssre unitssre iihalf1 adantl ctopon
      mp2an cnfldtopon 2cnd cnmptc cnmptid ctx mulcn cnmpt12f cnmptre trud ) AD
      EFGHZIHZFAJZKHZUABLMHNOAVDDEIHZUBUCPZVFBLVHUDZCUEVDQRZODQNVCQNVJUFUGDVCUH
      UMSVGQROUISVEVDNVFVGNOVEUJUKOAFVEKVHVHVHVHTVHTULPNOVHVIUNSZOAFVHVHTTVKVKO
      UOUPOAVHTVKUQKVHVHURHVHMHNOVHVIUSSUTVAVB $.
  $}

  $( Map the second half of ` II ` into ` II ` .  (Contributed by Jeff Madsen,
     2-Sep-2009.) $)
  iihalf2 $p |- ( X e. ( ( 1 / 2 ) [,] 1 ) ->
                                      ( ( 2 x. X ) - 1 ) e. ( 0 [,] 1 ) ) $=
    ( cr wcel c1 c2 cdiv cle wbr w3a cmul cmin cc0 cicc 2re 1re sylancl mp3an23
    co wb elicc2i remulcl mpan resubcl 3ad2ant1 subge0 clt 2pos pm3.2i ledivmul
    wa mp3an13 bitr4d biimpar 3adant3 caddc wceq ax-1cn 2timesi breq2d lesubadd
    a1i lemul2 syl 3bitr4d biimpa 3adant2 3jca halfre 0re 3imtr4i ) ABCZDEFRZAG
    HZADGHZIZEAJRZDKRZBCZLVQGHZVQDGHZIAVLDMRCVQLDMRCVOVRVSVTVKVMVRVNVKVPBCZDBCZ
    VREBCZVKWANEAUAUBZOVPDUCPUDVKVMVSVNVKVSVMVKVSDVPGHZVMVKWAWBVSWESWDOVPDUEPWB
    VKWCLEUFHZUJZVMWESOWCWFNUGUHZDAEUIUKULUMUNVKVNVTVMVKVNVTVKVPEDJRZGHZVPDDUOR
    ZGHZVNVTVKWIWKVPGWIWKUPVKDUQURVAUSVKWBWGVNWJSOWHADEVBQVKWAVTWLSZWDWAWBWBWMO
    OVPDDUTQVCVDVEVFVGVLDAVHOTLDVQVIOTVJ $.

  ${
    iihalf2cn.1 $e |- J = ( ( topGen ` ran (,) ) |`t ( ( 1 / 2 ) [,] 1 ) ) $.
    $( The second half function is a continuous map.  (Contributed by Mario
       Carneiro, 6-Jun-2014.) $)
    iihalf2cn $p |- ( x e. ( ( 1 / 2 ) [,] 1 ) |-> ( ( 2 x. x ) - 1 ) )
                      e. ( J Cn II ) $=
      ( c1 c2 co cicc cmul cmin cii ccn wcel wtru cfv cr wss cc cnmptc cnmpt12f
      a1i cdiv cv cmpt cc0 ccnfld ctopn dfii2 halfre 1re iccssre mp2an unitssre
      eqid iihalf2 adantl ctopon cnfldtopon 2cnd cnmptid ctx mulcn 1cnd cnmptre
      subcn trud ) ADEUAFZDGFZEAUBZHFZDIFZUCBJKFLMAVGUDDGFZUEUFNZVJBJVLUMZCUGVG
      OPZMVFOLDOLVNUHUIVFDUJUKTVKOPMULTVHVGLVJVKLMVHUNUOMAVIDIVLVLVLVLQVLQUPNLM
      VLVMUQTZMAEVHHVLVLVLVLQVOMAEVLVLQQVOVOMURRMAVLQVOUSHVLVLUTFVLKFZLMVLVMVAT
      SMADVLVLQQVOVOMVBRIVPLMVLVMVDTSVCVE $.
  $}

  $( Divide the unit interval into two pieces.  (Contributed by Mario Carneiro,
     7-Jun-2014.) $)
  elii1 $p |- ( X e. ( 0 [,] ( 1 / 2 ) ) <->
                ( X e. ( 0 [,] 1 ) /\ X <_ ( 1 / 2 ) ) ) $=
    ( cc0 c1 c2 co cicc wcel cle wbr wa cr 0re halfre elicc2i a1i 1re w3a bitri
    df-3an anbi1i cdiv simp1bi simp3bi halflt1 ltleii letrd pm4.71ri ancom an32
    3bitr4i ) ABCDUAEZFEGZACHIZULJZABCFEGZAUKHIZJZULUMULAUKCULAKGZBAHIZUPBUKALM
    NZUBUKKGULMOCKGULPOULURUSUPUTUCUKCHIULUKCMPUDUEOUFUGUNULUMJZUQUMULUHURUSJZU
    PJZUMJVBUMJZUPJVAUQVBUPUMUIULVCUMULURUSUPQVCUTURUSUPSRTUOVDUPUOURUSUMQVDBCA
    LPNURUSUMSRTUJRR $.

  $( Divide the unit interval into two pieces.  (Contributed by Mario Carneiro,
     7-Jun-2014.) $)
  elii2 $p |- ( ( X e. ( 0 [,] 1 ) /\ -. X <_ ( 1 / 2 ) ) ->
                X e. ( ( 1 / 2 ) [,] 1 ) ) $=
    ( cc0 c1 cicc co wcel c2 cle wbr wn wa cr 0re 1re elicc2i simp1bi adantr wo
    cdiv halfre letric sylancl orcanai simp3bi syl3anbrc ) ABCDEFZACGSEZHIZJZKA
    LFZUGAHIZACHIZAUGCDEFUFUJUIUFUJBAHIZULBCAMNOZPZQUFUHUKUFUJUGLFUHUKRUOTAUGUA
    UBUCUFULUIUFUJUMULUNUDQUGCATNOUE $.

  $( The unit interval is closed under multiplication.  (Contributed by Jeff
     Madsen, 2-Sep-2009.) $)
  iimulcl $p |- ( ( A e. ( 0 [,] 1 ) /\ B e. ( 0 [,] 1 ) )
                                  -> ( A x. B ) e. ( 0 [,] 1 ) ) $=
    ( cr wcel cc0 cle wbr c1 wa cmul co cicc remulcl 3ad2antr1 3ad2antl1 mulge0
    w3a 1re 0re elicc2i 3adantr3 3adantl3 wi lemul12a mpanr2 mpanl2 an4s 3impia
    an6 sylbi 1t1e1 syl6breq 3jca anbi12i 3imtr4i ) ACDZEAFGZAHFGZQZBCDZEBFGZBH
    FGZQZIZABJKZCDZEVEFGZVEHFGZQAEHLKZDZBVIDZIVEVIDVDVFVGVHUPUQVCVFURUPVAUTVFVB
    ABMNOUPUQVCVGURUPUQIZUTVAVGVBABPUAUBVDVEHHJKZHFVDUPUTIZUQVAIZURVBIZQVEVMFGZ
    UPUQURUTVAVBUIVNVOVPVQUPUQUTVAVPVQUCZVLHCDZUTVAIZVRRVLVSIVTVSVRRAHBHUDUEUFU
    GUHUJUKULUMVJUSVKVCEHASRTEHBSRTUNEHVESRTUO $.

  ${
    $d x y $.
    $( Multiplication is a continuous function on the unit interval.
       (Contributed by Mario Carneiro, 8-Jun-2014.) $)
    iimulcn $p |- ( x e. ( 0 [,] 1 ) , y e. ( 0 [,] 1 ) |-> ( x x. y ) )
                  e. ( ( II tX II ) Cn II ) $=
      ( co cv cmul cmpt2 cii ctx cfv ccn wcel wtru cc eqid a1i wss cxp wf ax-mp
      mpbi cc0 c1 ccnfld ctopn crest dfii3 ctopon cnfldtopon unitssre ax-resscn
      cicc cr sstri wfn wceq ax-mulf ffn fnov mulcn eqeltrri cnmpt2res trud crn
      wb wral iimulcl rgen2a fmpt2 frn sylbi cnrest2 mp3an oveq2i eleqtrri ) AB
      UAUBUKCZVOADZBDZECZFZGGHCZUCUDIZVOUECZJCZVTGJCVSVTWAJCKZVSWCKZWDLABVRWAGW
      AWAGVOMVOMWAWANZUFZWAMUGIKZLWAWFUHZOZVOMPZLVOULMUIUJUMZOZWGWJWMABMMVRFZWA
      WAHCWAJCZKLEWNWOEMMQZUNZEWNUOWPMERWQUPWPMEUQSABMMEURTWAWFUSUTOVAVBWHVSVCV
      OPZWKWDWEVDWIVRVOKZBVOVEAVOVEZWRWSABVOVPVQVFVGWTVOVOQZVOVSRWRABVOVOVRVOVS
      VSNVHXAVOVSVIVJSWLVOVSVTWAMVKVLTGWBVTJWGVMVN $.
  $}

  ${
    $d J v $.  $d A v $.  $d B v $.  $d C v $.
    icoopnst.1 $e |- J = ( MetOpen ` ( ( abs o. - ) |`
                                    ( ( A [,] B ) X. ( A [,] B ) ) ) ) $.
    $( A half-open interval starting at ` A ` is open in the closed interval
       from ` A ` to ` B ` .  (Contributed by Jeff Madsen, 2-Sep-2009.)
       (Revised by Mario Carneiro, 15-Dec-2013.) $)
    icoopnst $p |- ( ( A e. RR /\ B e. RR ) ->
                                ( C e. ( A (,] B ) -> ( A [,) C ) e. J ) ) $=
      ( vv cr wcel wa co wceq cle wbr clt w3a wi a1i adantr ex wb cioc cico crn
      cioo ctg cfv cicc crest cv cin wrex c1 cmin iooretop simp1 ltm1 peano2rem
      ltletr 3expb mpancom mpand 3adantr3 ad2antrr simp3 3jcad simp2 cxr elioc2
      impr rexr sylan biimpa ltleletr 3expa an31s ancom2s an4s 3adantr2 adantll
      anasss syldan jcad simpl1 simpr2 simpl3 3jca impbid1 simpll simp1d elico2
      imp rexrd syl2anc elioo2 elicc2 anbi12d syl5bb 3bitr4d eqrdv ineq1 eqeq2d
      elin rspcev sylancr ctop cvv retop ovex elrest mp2an wss iccssre resubmet
      sylibr eqid syl eleqtrrd ) AGHZBGHZIZCABUAJHZACUBJZDHXTYAIZYBUDUCUEUFZABU
      GJZUHJZDYCYBFUIZYEUJZKZFYDUKZYBYFHZYCAULUMJZCUDJZYDHYBYMYEUJZKZYJYLCUNYCF
      YBYNYCYGGHZAYGLMZYGCNMZOZYPYLYGNMZYROZYPYQYGBLMZOZIZYGYBHZYGYNHZYCYSUUDYC
      YSUUAUUCYCYSYPYTYRYSYPPYCYPYQYRUOQZXRYSYTPXSYAXRYSYTXRYPYQYTYRXRYPYQYTXRY
      PIZYLANMZYQYTXRUUIYPAUPRYLGHZUUHUUIYQIYTPZXRUUJYPAUQZRUUJXRYPUUKYLAYGURUS
      UTVAVIVBSVCYSYRPYCYPYQYRVDQVEYCYSYPYQUUBUUGYSYQPYCYPYQYRVFQXTYACGHZACNMZC
      BLMZOZYSUUBPZXTYAUUPXRAVGHXSYAUUPTAVJABCVHVKVLZXSUUPUUQXRXSUUMUUOUUQUUNXS
      UUMUUOUUQXSUUMIZUUOIZYSUUBUUTYPYRUUBYQUUSYPUUOYRUUBUUSYPIZYRUUOUUBUVAYRUU
      OIZUUBYPUUMXSUVBUUBPZYPUUMXSUVCYGCBVMVNVOWKVPVQVRSVTVRVSWAVEWBUUDYPYQYRYP
      YTYRUUCWCUUAYPYQUUBWDYPYTYRUUCWEWFWGYCXRCVGHZUUEYSTXRXSYAWHYCCYCUUMUUNUUO
      UURWIWLZACYGWJWMUUFYGYMHZYGYEHZIYCUUDYGYMYEXBYCUVFUUAUVGUUCYCYLVGHZUVDUVF
      UUATXRUVHXSYAXRYLUULWLVCUVEYLCYGWNWMXTUVGUUCTYAABYGWORWPWQWRWSYIYOFYMYDYG
      YMKYHYNYBYGYMYEWTXAXCXDYDXEHYEXFHYKYJTXGABUGXHFYBYEYDXEXFXIXJXNYCYEGXKZDY
      FKXTUVIYAABXLRYEYDDYDXOEXMXPXQS $.
  $}

  ${
    $d J v $.  $d A v $.  $d B v $.  $d C v $.
    iocopnst.1 $e |- J = ( MetOpen ` ( ( abs o. - ) |`
                                    ( ( A [,] B ) X. ( A [,] B ) ) ) ) $.
    $( A half-open interval ending at ` B ` is open in the closed interval from
       ` A ` to ` B ` .  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by
       Mario Carneiro, 15-Dec-2013.) $)
    iocopnst $p |- ( ( A e. RR /\ B e. RR ) ->
                                ( C e. ( A [,) B ) -> ( C (,] B ) e. J ) ) $=
      ( vv cr wcel wa co wceq clt wbr cle w3a wi a1i adantr ex wb cico cioc crn
      cioo ctg cfv cicc crest cv cin wrex c1 caddc iooretop simp1 ltp1 peano2re
      simp2 lelttr 3expa ancom1s ancomsd mpand impr 3adantr2 ad2antlr 3jcad cxr
      mpidan rexr elico2 sylan2 biimpa ltle 3adant2 imp 3adantr3 anasss adantlr
      syld an4s syldan jcad simpl1 simpl2 simpr3 3jca impbid1 simp1d syl simplr
      simp3 elioc2 syl2anc elin elioo2 elicc2 anbi12d syl5bb eqrdv ineq1 eqeq2d
      3bitr4d rspcev sylancr ctop cvv retop ovex elrest sylibr wss iccssre eqid
      mp2an resubmet eleqtrrd ) AGHZBGHZIZCABUAJHZCBUBJZDHXTYAIZYBUDUCUEUFZABUG
      JZUHJZDYCYBFUIZYEUJZKZFYDUKZYBYFHZYCCBULUMJZUDJZYDHYBYMYEUJZKZYJCYLUNYCFY
      BYNYCYGGHZCYGLMZYGBNMZOZYPYQYGYLLMZOZYPAYGNMZYROZIZYGYBHZYGYNHZYCYSUUDYCY
      SUUAUUCYCYSYPYQYTYSYPPYCYPYQYRUOQZYSYQPYCYPYQYRURQXSYSYTPXRYAXSYSYTXSYPYR
      YTYQXSYPYRYTXSYPIZBYLLMZYRYTXSUUIYPBUPRXSYPYLGHZUUIYRIYTPBUQZUUHUUJIYRUUI
      YTYPXSUUJYRUUIIYTPZYPXSUUJUULYGBYLUSUTVAVBVIVCVDVESVFVGYCYSYPUUBYRUUGXTYA
      CGHZACNMZCBLMZOZYSUUBPZXTYAUUPXSXRBVHHYAUUPTBVJABCVKVLVMZXRUUPUUQXSXRUUMU
      UNUUQUUOXRUUMUUNUUQXRUUMIZUUNIZYSUUBUUTYPYQUUBYRUUSYPUUNYQUUBUUSYPIUUNYQI
      ZUUBXRUUMYPUVAUUBPXRUUMYPOUVAAYGLMZUUBACYGUSXRYPUVBUUBPUUMAYGVNVOVTUTVPWA
      VQSVRVQVSWBYSYRPYCYPYQYRWLQVGWCUUDYPYQYRYPYQYTUUCWDYPYQYTUUCWEUUAYPUUBYRW
      FWGWHYCCVHHZXSUUEYSTYCUUMUVCYCUUMUUNUUOUURWICVJWJZXRXSYAWKCBYGWMWNUUFYGYM
      HZYGYEHZIYCUUDYGYMYEWOYCUVEUUAUVFUUCYCUVCYLVHHZUVEUUATUVDXSUVGXRYAXSUUJUV
      GUUKYLVJWJVFCYLYGWPWNXTUVFUUCTYAABYGWQRWRWSXCWTYIYOFYMYDYGYMKYHYNYBYGYMYE
      XAXBXDXEYDXFHYEXGHYKYJTXHABUGXIFYBYEYDXFXGXJXOXKYCYEGXLZDYFKXTUVHYAABXMRY
      EYDDYDXNEXPWJXQS $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d v w y z F $.  $d w z G $.  $d v w x y z J $.
    ${
      icchmeo.j $e |- J = ( TopOpen ` CCfld ) $.
      icchmeo.f $e |- F = ( x e. ( 0 [,] 1 ) |->
        ( ( x x. B ) + ( ( 1 - x ) x. A ) ) ) $.
      $( The natural bijection from ` [ 0 , 1 ] ` to an arbitrary nontrivial
         closed interval ` [ A , B ] ` is a homeomorphism.  (Contributed by
         Mario Carneiro, 8-Sep-2015.) $)
      icchmeo $p |- ( ( A e. RR /\ B e. RR /\ A < B ) ->
        F e. ( II Homeo ( J |`t ( A [,] B ) ) ) ) $=
        ( vy cr wcel cii co ccn cmul cmin cmpt a1i wss cc cnmpt12f clt wbr cicc
        w3a crest ccnv chmeo cc0 c1 cv caddc ctopon cfv iitopon oveq2i cnfldtop
        dfii3 ctop cnrest2r ax-mp eqsstri cnmptid sseldi cnfldtopon simp2 recnd
        cnmptc ctx mulcn 1cnd subcn simp1 addcn syl5eqel wb wf1o wf cdiv iccf1o
        crn wceq simpld f1of frn 3syl iccssre 3adant3 ax-resscn cnrest2 syl3anc
        syl6ss mpbid simprd resttopon sylancr wne crp difrp rpcnd rpne0d divccn
        biimp3a syl2anc oveq1 cnmpt11 eqeltrd cdm dfdm4 eqimss2i f1odm syl5sseq
        syl unitssre syl6eleqr ishmeo sylanbrc ) BIJZCIJZBCUAUBZUDZDKEBCUCLZUEL
        ZMLJZDUFZYBKMLZJDKYBUGLJXTDKEMLZJZYCXTDAUHUIUCLZAUJZCNLZUIYIOLZBNLZUKLP
        YFGXTAYJYLUKKEEEYHKYHULUMJXTUNQZXTAYICNKEEEYHYMXTKKMLZYFAYHYIPYNKEYHUEL
        ZMLZYFKYOKMEFUQZUOEURJZYPYFREFUPZYHKEUSUTVAXTAKYHYMVBVCZXTACKEYHSYMESUL
        UMJZXTEFVDZQZXTCXQXRXSVEVFVGNEEVHLEMLZJXTEFVIQZTXTAYKBNKEEEYHYMXTAUIYIO
        KEEEYHYMXTAUIKEYHSYMUUCXTVJVGYTOUUDJXTEFVKQZTXTABKEYHSYMUUCXTBXQXRXSVLV
        FZVGUUETUKUUDJXTEFVMQTVNXTUUADVTYARZYASRZYGYCVOUUCXTYHYADVPZYHYADVQUUHX
        TUUJYDHYAHUJZBOLZCBOLZVRLZPZWAZAHBCDGVSZWBZYHYADWCYHYADWDWEXTYAISXQXRYA
        IRXSBCWFWGWHWKZYADKESWIWJWLXTYDYBYOMLZYEXTYDYBEMLZJZYDUUTJZXTYDUUOUVAXT
        UUJUUPUUQWMXTHAUULYIUUMVRLZUUNYBEEYASXTUUAUUIYBYAULUMJUUBUUSYAESWNWOZXT
        HUUKBOYBEEEYAUVEXTYBYBMLZUVAHYAUUKPYRUVFUVARYSYAYBEUSUTXTHYBYAUVEVBVCXT
        HBYBEYASUVEUUCUUGVGUUFTUUCXTUUMSJUUMUHWPASUVDPEEMLJXTUUMXQXRXSUUMWQJBCW
        RXBZWSXTUUMUVGWTAUUMEFXAXCYIUULUUMVRXDXEXFXTUUAYDVTZYHRYHSRUVBUVCVOUUCX
        TDXGZUVHYHUVIUVHDXHXIXTUUJUVIYHWAUURYHYADXJXLXKXTYHISYHIRXTXMQWHWKYHYDY
        BESWIWJWLKYOYBMYQUOXNDKYBXOXP $.
    $}

    ${
      icopnfhmeo.f $e |- F = ( x e. ( 0 [,) 1 ) |-> ( x / ( 1 - x ) ) ) $.
      $( Define a bijection from ` [ 0 , 1 ) ` to ` [ 0 , +oo ) ` .
         (Contributed by Mario Carneiro, 9-Sep-2015.) $)
      icopnfcnv $p |- ( F : ( 0 [,) 1 ) -1-1-onto-> ( 0 [,) +oo ) /\
        `' F = ( y e. ( 0 [,) +oo ) |-> ( y / ( 1 + y ) ) ) ) $=
        ( cc0 c1 co caddc wceq wtru cmin wcel cr cle wbr clt wb 1re adantl cmul
        cico cpnf wf1o ccnv cv cdiv cmpt cxr w3a 0re rexri elico2 mp2an simp1bi
        simp3bi difrp sylancl mpbid rerpdivcld simp2bi divge0d elrege0 sylanbrc
        wa crp simplbi readdcl sylancr a1i simprbi ltp1d cc ax-1cn recnd addcom
        breqtrrd lelttrd elrpd divge0 syl22anc ltdivmul syl112anc mpbird adantr
        mulid1d mulcld subadd2d 1cnd subdird mulid2d oveq1d eqtrd eqeq1d adddid
        syl3anbrc 3bitr4rd eqcom 3bitr4g rpne0d divmul3d rpcnd divmul2d 3bitr4d
        f1ocnv2d trud ) EFUAGZEUBUAGZCUCCUDBXGBUEZFXHHGZUFGZUGIVDJABXFXGAUEZFXK
        KGZUFGZXJCDXKXFLZXMXGLZJXNXMMLEXMNOXOXNXKXLXNXKMLZEXKNOZXKFPOZEMLZFUHLZ
        XNXPXQXRUIQUJFRUKZEFXKULUMZUNZXNXRXLVELZXNXPXQXRYBUOXNXPFMLZXRYDQYCRXKF
        UPUQURZUSXNXKXLYCYFXNXPXQXRYBUTVAXMVBVCSXHXGLZXJXFLZJYGXJMLZEXJNOZXJFPO
        ZYHYGXHXIYGXHMLZEXHNOZXHVBZVFZYGXIYGYEYLXIMLZRYOFXHVGVHZYGEXHXIXSYGUJVI
        YOYQYGYLYMYNVJZYGXHXHFHGZXIPYGXHYOVKYGFVLLXHVLLZXIYSIVMYGXHYOVNZFXHVOVH
        VPZVQZVRZUSYGYLYMYPEXIPOZYJYOYRYQUUCXHXIVSVTYGYKXHXIFTGZPOZYGXHXIUUFPUU
        BYGXIYGXIYQVNZWEVPYGYLYEYPUUEYKUUGQYOYEYGRVIYQUUCXHFXIWAWBWCXSXTYHYIYJY
        KUIQUJYAEFXJULUMWOSXNYGVDZXKXJIZXHXMIZQJUUIXJXKIZXMXHIZUUJUUKUUIXHXKXIT
        GZIZXKXLXHTGZIZUULUUMUUIUUNXHIZUUPXKIZUUOUUQUUIXHXKXHTGZKGZXKIXKUUTHGZX
        HIUUSUURUUIXHUUTXKYGYTXNUUASZUUIXKXHUUIXKXNXPYGYCWDVNZUVCWFUVDWGUUIUUPU
        VAXKUUIUUPFXHTGZUUTKGUVAUUIFXKXHUUIWHZUVDUVCWIUUIUVEXHUUTKUUIXHUVCWJWKW
        LWMUUIUUNUVBXHUUIUUNXKFTGZUUTHGUVBUUIXKFXHUVDUVFUVCWNUUIUVGXKUUTHUUIXKU
        VDWEWKWLWMWPXHUUNWQXKUUPWQWRUUIXHXKXIUVCUVDYGXIVLLXNUUHSUUIXIYGXIVELXNU
        UDSWSWTUUIXKXHXLUVDUVCUUIXLXNYDYGYFWDZXAUUIXLUVHWSXBXCXKXJWQXHXMWQWRSXD
        XE $.

      icopnfhmeo.j $e |- J = ( TopOpen ` CCfld ) $.
      $( The defined bijection from ` [ 0 , 1 ) ` to ` [ 0 , +oo ) ` is an
         order isomorphism and a homeomorphism.  (Contributed by Mario
         Carneiro, 9-Sep-2015.) $)
      icopnfhmeo $p |- ( F Isom < , < ( ( 0 [,) 1 ) , ( 0 [,) +oo ) ) /\
        F e. ( ( J |`t ( 0 [,) 1 ) ) Homeo ( J |`t ( 0 [,) +oo ) ) ) ) $=
        ( vy cc0 c1 co clt wcel wbr wb cdiv wceq cmin cmul cr cle mp2an vz cico
        vw cpnf wiso crest chmeo wf1o cfv wral ccnv caddc cmpt icopnfcnv simpli
        cv wa cxr w3a 0re 1re rexri elico2 simp1bi ssriv sseli adantr crp difrp
        simp3bi sylancl mpbid rpregt0d adantl lt2mul2div syl22anc ltsub1d recnd
        remulcld 1cnd subdid mulid1d oveq1d eqtrd mulcomd oveq12d breq12d oveq2
        bitr4d id fvmpt breqan12d 3bitr4d rgen2a df-isom mpbir2an cxp cin cordt
        ovex cvv ctsr letsr elexi inex1 wss icossxr leiso isores1 isores2 tsrps
        mpbi cdm ax-mp ledm psssdm eqcomi ordthmeo mp3an eqid xrrest2 iccssico2
        cps ordtrestixx eqtri rge0ssre oveq12i eleqtrri pm3.2i ) GHUBIZGUDUBIZJ
        JBUEZBCYJUFIZCYKUFIZUGIZKYLYJYKBUHZUAUPZUCUPZJLZYQBUIZYRBUIZJLZMZUCYJUJ
        UAYJUJYPBUKFYKFUPZHUUDULINIUMOAFBDUNUOUUCUAUCYJYQYJKZYRYJKZUQZYQHYRPIZQ
        IZYRHYQPIZQIZJLZYQUUJNIZYRUUHNIZJLZYSUUBUUGYQRKZUUHRKGUUHJLUQZYRRKZUUJR
        KGUUJJLUQUULUUOMUUEUUPUUFYJRYQAYJRAUPZYJKZUUSRKZGUUSSLZUUSHJLZGRKZHURKZ
        UUTUVAUVBUVCUSMUTHVAVBZGHUUSVCTVDVEZVFZVGZUUFUUQUUEUUFUUHUUFYRHJLZUUHVH
        KZUUFUURGYRSLZUVJUVDUVEUUFUURUVLUVJUSMUTUVFGHYRVCTVJUUFUURHRKZUVJUVKMYJ
        RYRUVGVFZVAYRHVIVKVLVMVNUUFUURUUEUVNVNZUUGUUJUUEUUJVHKZUUFUUEYQHJLZUVPU
        UEUUPGYQSLZUVQUVDUVEUUEUUPUVRUVQUSMUTUVFGHYQVCTVJUUEUUPUVMUVQUVPMUVHVAY
        QHVIVKVLVGVMYQUUHYRUUJVOVPUUGYSYQYQYRQIZPIZYRUVSPIZJLUULUUGYQYRUVSUVIUV
        OUUGYQYRUVIUVOVSVQUUGUUIUVTUUKUWAJUUGUUIYQHQIZUVSPIUVTUUGYQHYRUUGYQUVIV
        RZUUGVTZUUGYRUVOVRZWAUUGUWBYQUVSPUUGYQUWCWBWCWDUUGUUKYRHQIZYRYQQIZPIUWA
        UUGYRHYQUWEUWDUWCWAUUGUWFYRUWGUVSPUUGYRUWEWBUUGYRYQUWEUWCWEWFWDWGWIUUEU
        UFYTUUMUUAUUNJAYQUUSHUUSPIZNIZUUMYJBUUSYQOZUUSYQUWHUUJNUWJWJUUSYQHPWHWF
        DYQUUJNWTWKAYRUWIUUNYJBUUSYROZUUSYRUWHUUHNUWKWJUUSYRHPWHWFDYRUUHNWTWKWL
        WMWNUAUCYJYKJJBWOWPZBSYJYJWQZWRZWSUIZSYKYKWQZWRZWSUIZUGIZYOUWNXAKUWQXAK
        YJYKUWNUWQBUEZBUWSKSUWMSXBXCXDZXESUWPUXAXEYJYKUWNSBUEZUWTYJYKSSBUEZUXBY
        LUXCUWLYJURXFZYKURXFZYLUXCMGHXGZGUDXGZYJYKBXHTXLYJYKSSBXIXLYJYKUWNSBXJX
        LUWNUWQBXAXAYJYKUWNXMZYJSYCKZUXDUXHYJOSXBKUXIXCSXKXNZUXFYJSURXOXPTXQUWQ
        XMZYKUXIUXEUXKYKOUXJUXGYKSURXOXPTXQXRXSYMUWOYNUWRUGYMSWSUIZYJUFIZUWOYJR
        XFYMUXMOUVGYJCUXLEUXLXTZYAXNAFYJUXFGHUUSUUDYBYDYEYNUXLYKUFIZUWRYKRXFYNU
        XOOYFYKCUXLEUXNYAXNAFYKUXGGUDUUSUUDYBYDYEYGYHYI $.
    $}

    ${
      iccpnfhmeo.f $e |- F = ( x e. ( 0 [,] 1 ) |->
        if ( x = 1 , +oo , ( x / ( 1 - x ) ) ) ) $.
      $( Define a bijection from ` [ 0 , 1 ] ` to ` [ 0 , +oo ] ` .
         (Contributed by Mario Carneiro, 9-Sep-2015.) $)
      iccpnfcnv $p |- ( F : ( 0 [,] 1 ) -1-1-onto-> ( 0 [,] +oo ) /\ `' F =
        ( y e. ( 0 [,] +oo ) |-> if ( y = +oo , 1 , ( y / ( 1 + y ) ) ) ) ) $=
        ( cc0 c1 co cpnf wceq cdiv wa wtru wcel wbr wn adantl wb eqeq2 cr cvv
        cicc wf1o ccnv cv caddc cif cmpt cmin cxr cle pnfxr 0lepnf ubicc2 mp3an
        0xr a1i cico icossicc csn wo wi cun 1re 0le1 snunico eleq2i elun bitr3i
        rexri pm2.53 sylbi elsni syl6 con1d imp wral eqid icopnfcnv simpli f1of
        wf ax-mp fmpt mpbir syl sseldi ifclda 1elunit f1ocnv mp2b simpri bibi1d
        rspec iftrue eqeq2d syl5ibrcom wnel pnfnre neleq1 mpbiri df-nel iffalse
        simpr syl5ibcom rge0ssre eqeltrd ad2antrr syl5bi syld impbid bibi2d wne
        clt w3a 0re elico2 mp2an sylib simp1d simp3d gtned adantll neneqd eqeq1
        ex notbid simplr 2falsed cfv f1ocnvfvb mp3an1 simpl ovex fvmpt2 sylancl
        eqeq1d 3bitr3rd eqcom 3bitr4g ifbothda syl2an an4s anass1rs f1ocnv2d
        trud ) EFUAGZEHUAGZCUBCUCBUUGBUDZHIZFUUHFUUHUEGZJGZUFZUGIKLABUUFUUGAUDZ
        FIZHUUMFUUMUHGZJGZUFZUULCDUUMUUFMZUUQUUGMLUURUUNHUUPUUGHUUGMZUURUUNKEUI
        MZHUIMZEHUJNZUUSUOUKULEHUMUNUPUURUUNOZKZEHUQGZUUGUUPEHURUVDUUMEFUQGZMZU
        UPUVEMZUURUVCUVGUURUVGUUNUURUVGOZUUMFUSZMZUUNUURUVGUVKUTZUVIUVKVAUURUUM
        UVFUVJVBZMUVLUVMUUFUUMUUTFUIMZEFUJNUVMUUFIUOFVCVIZVDEFVEUNVFUUMUVFUVJVG
        VHUVGUVKVJVKUUMFVLVMVNVOZUVHAUVFUVHAUVFVPUVFUVEAUVFUUPUGZWAZUVFUVEUVQUB
        ZUVRUVSUVQUCZBUVEUUKUGIZABUVQUVQVQZVRZVSZUVFUVEUVQVTWBAUVFUVEUUPUVQUWBW
        CWDWMWEZWFWGPUUHUUGMZUULUUFMLUWFUUIFUUKUUFFUUFMUWFUUIKWHUPUWFUUIOZKZUVF
        UUFUUKEFURUWHUUHUVEMZUUKUVFMZUWFUWGUWIUWFUWIUUIUWFUWIOZUUHHUSZMZUUIUWFU
        WIUWMUTZUWKUWMVAUWFUUHUVEUWLVBZMUWNUWOUUGUUHUUTUVAUVBUWOUUGIUOUKULEHVEU
        NVFUUHUVEUWLVGVHUWIUWMVJVKUUHHVLVMVNVOZUWJBUVEUWJBUVEVPUVEUVFUVTWAZUVSU
        VEUVFUVTUBUWQUWDUVFUVEUVQWIUVEUVFUVTVTWJBUVEUVFUUKUVTUVSUWAUWCWKZWCWDWM
        WEZWFWGPUURUWFKZUUMUULIZUUHUUQIZQZLUUIUUNUXBQUUMUUKIZUXBQZUXCUWTFUUKFUU
        LIUUNUXAUXBFUULUUMRWLUUKUULIUXDUXAUXBUUKUULUUMRWLUWTUUIKZUUNUXBUXFUXBUU
        NUUIUWTUUIXCUUNUUQHUUHUUNHUUPWNWOWPUXFUXBUUQSWQZUUNUXFUUHSWQZUXBUXGUXFU
        XHHSWQZWRUUIUXHUXIQUWTUUHHSWSPWTUUHUUQSWSXDUXGUUQSMZOUXFUUNUUQSXAUXFUUN
        UXJUURUVCUXJVAUWFUUIUURUVCUXJUVDUUQUUPSUVCUUQUUPIUURUUNHUUPXBPUVDUVESUU
        PXEUWEWFXFYEXGVNXHXIXJUUNUXDUUIQUXDUUHUUPIZQZUXEUWTUWGKZHUUPHUUQIUUIUXB
        UXDHUUQUUHRXKUUPUUQIUXKUXBUXDUUPUUQUUHRXKUXMUUNKUXDUUIUXMUUNUXDOZUXMUXN
        UUNFUUKIZOUXMFUUKUWFUWGFUUKXLUURUWHUUKFUWHUUKSMZEUUKUJNZUUKFXMNZUWHUWJU
        XPUXQUXRXNZUWSESMUVNUWJUXSQXOUVOEFUUKXPXQXRZXSUWHUXPUXQUXRUXTXTYAYBYCUU
        NUXDUXOUUMFUUKYDYFWPVOUWTUWGUUNYGYHUWTUVCUWGUXLUURUVCUWFUWGUXLUVDUVGUWI
        UXLUWHUVPUWPUVGUWIKZUUKUUMIZUUPUUHIZUXDUXKUYAUUMUVQYIZUUHIZUUHUVTYIZUUM
        IZUYCUYBUVSUVGUWIUYEUYGQUWDUVFUVEUUMUUHUVQYJYKUYAUYDUUPUUHUYAUVGUUPTMUY
        DUUPIUVGUWIYLUUMUUOJYMAUVFUUPTUVQUWBYNYOYPUYAUYFUUKUUMUYAUWIUUKTMUYFUUK
        IUVGUWIXCUUHUUJJYMBUVEUUKTUVTUWRYNYOYPYQUUMUUKYRUUHUUPYRYSUUAUUBUUCYTYT
        PUUDUUE $.

      iccpnfhmeo.k $e |- K = ( ( ordTop ` <_ ) |`t ( 0 [,] +oo ) ) $.
      $( The defined bijection from ` [ 0 , 1 ] ` to ` [ 0 , +oo ] ` is an
         order isomorphism and a homeomorphism.  (Contributed by Mario
         Carneiro, 8-Sep-2015.) $)
      iccpnfhmeo $p |- ( F Isom < , < ( ( 0 [,] 1 ) , ( 0 [,] +oo ) ) /\
        F e. ( II Homeo K ) ) $=
        ( cc0 c1 co cpnf clt wiso wcel wbr cfv cxr wceq cdiv cmin cr cle vz cii
        vw vy cicc chmeo wor wpo wfo cv wral wss iccssxr xrltso soss sopo ax-mp
        mp2 wf1o ccnv caddc cif cmpt iccpnfcnv simpli f1ofo w3a wne 0re elicc2i
        wi wa simp1bi 3ad2ant1 3ad2ant2 1red simp3 simp3bi ltletrd gtned necomd
        1re ifnefalse breq2 resubcl sylancr cc wb ax-1cn recnd subeq0 necon3bid
        syl mpbird redivcld ltpnf adantr wn cico simpl3 ccnfld ctopn crest eqid
        icopnfhmeo a1i csn cun wo simp1 0xr mp3an syl6eleqr elun sylib ord syl6
        elsni id oveq2 oveq12d ovex fvmpt eqeq1 ifbieq2d pnfex ifex cxp cin cvv
        cordt ctsr letsr inex1 mp2an mpbi cdm ledm psssdm eqcomi rexri necon1ad
        0le1 snunico mpd simp2 con1d imp isorel syl12anc mpbid 3brtr3d ifbothda
        eqbrtrd 3expia breqan12d sylibrd rgen2a mp4an elexi isores1 isores2 cps
        soisoi leiso tsrps ordthmeo dfii5 ordtresticc oveq12i eleqtrri pm3.2i
        eqtri ) FGUEHZFIUEHZJJBKZBUBCUFHZLUVNJUGZUVOJUHZUVNUVOBUIZUAUJZUCUJZJMZ
        UWABNZUWBBNZJMZVKZUCUVNUKUAUVNUKUVPUVNOULZOJUGZUVRFGUMZUNUVNOJUOURUVOJU
        GZUVSUVOOULZUWIUWKFIUMZUNUVOOJUOURUVOJUPUQUVNUVOBUSZUVTUWNBUTUDUVOUDUJZ
        IPGUWOGUWOVAHQHVBVCPAUDBDVDVEUVNUVOBVFUQUWGUAUCUVNUWAUVNLZUWBUVNLZVLUWC
        UWAGPZIUWAGUWARHZQHZVBZUWBGPZIUWBGUWBRHZQHZVBZJMZUWFUWPUWQUWCUXFUWPUWQU
        WCVGZUXAUWTUXEJUXGUWAGVHZUXAUWTPUXGGUWAUXGUWAGUWPUWQUWASLZUWCUWPUXIFUWA
        TMUWAGTMFGUWAVIWBVJVMVNZUXGUWAUWBGUXJUWQUWPUWBSLZUWCUWQUXKFUWBTMZUWBGTM
        ZFGUWBVIWBVJZVMVOUXGVPUWPUWQUWCVQUWQUWPUXMUWCUWQUXKUXLUXMUXNVRVOVSVTZWA
        ZUWAGIUWTWCWMUXBUWTIJMZUWTUXDJMUWTUXEJMUXGIUXDIUXEUWTJWDUXDUXEUWTJWDUXG
        UXQUXBUXGUWTSLUXQUXGUWAUWSUXJUXGGSLUXIUWSSLWBUXJGUWAWEWFUXGUWSFVHZGUWAV
        HZUXOUXGGWGLZUWAWGLZUXRUXSWHWIUXGUWAUXJWJUXTUYAVLUWSFGUWAGUWAWKWLWFWNWO
        UWTWPWMWQUXGUXBWRZVLZUWAAFGWSHZAUJZGUYERHZQHZVCZNZUWBUYHNZUWTUXDJUYCUWC
        UYIUYJJMZUWPUWQUWCUYBWTUYCUYDFIWSHZJJUYHKZUWAUYDLZUWBUYDLZUWCUYKWHUYMUY
        CUYMUYHXAXBNZUYDXCHUYPUYLXCHUFHLAUYHUYPUYHXDZUYPXDXEVEXFUXGUYNUYBUXGUXH
        UYNUXPUXGUYNUWAGUXGUYNWRUWAGXGZLZUWRUXGUYNUYSUXGUWAUYDUYRXHZLUYNUYSXIUX
        GUWAUVNUYTUWPUWQUWCXJFOLGOLFGTMUYTUVNPXKGWBUUAUUCFGUUDXLZXMUWAUYDUYRXNX
        OXPUWAGXRXQUUBUUEWQZUXGUYBUYOUXGUYOUXBUXGUYOWRUWBUYRLZUXBUXGUYOVUCUXGUW
        BUYTLUYOVUCXIUXGUWBUVNUYTUWPUWQUWCUUFVUAXMUWBUYDUYRXNXOXPUWBGXRXQUUGUUH
        ZUYDUYLUWAUWBJJUYHUUIUUJUUKUYCUYNUYIUWTPVUBAUWAUYGUWTUYDUYHUYEUWAPZUYEU
        WAUYFUWSQVUEXSUYEUWAGRXTYAZUYQUWAUWSQYBZYCWMUYCUYOUYJUXDPVUDAUWBUYGUXDU
        YDUYHUYEUWBPZUYEUWBUYFUXCQVUHXSUYEUWBGRXTYAZUYQUWBUXCQYBZYCWMUULUUMUUNU
        UOUWPUWQUWDUXAUWEUXEJAUWAUYEGPZIUYGVBZUXAUVNBVUEVUKUWRUYGUWTIUYEUWAGYDV
        UFYEDUWRIUWTYFVUGYGYCAUWBVULUXEUVNBVUHVUKUXBUYGUXDIUYEUWBGYDVUIYEDUXBIU
        XDYFVUJYGYCUUPUUQUURUAUCUVNUVOJJBUVDUUSZBTUVNUVNYHZYIZYKNZTUVOUVOYHZYIZ
        YKNZUFHZUVQVUOYJLVURYJLUVNUVOVUOVURBKZBVUTLTVUNTYLYMUUTZYNTVUQVVBYNUVNU
        VOVUOTBKZVVAUVNUVOTTBKZVVCUVPVVDVUMUWHUWLUVPVVDWHUWJUWMUVNUVOBUVEYOYPUV
        NUVOTTBUVAYPUVNUVOVUOTBUVBYPVUOVURBYJYJUVNUVOVUOYQZUVNTUVCLZUWHVVEUVNPT
        YLLVVFYMTUVFUQZUWJUVNTOYRYSYOYTVURYQZUVOVVFUWLVVHUVOPVVGUWMUVOTOYRYSYOY
        TUVGXLUBVUPCVUSUFUVHCTYKNUVOXCHVUSEFIUVIUVMUVJUVKUVL $.
    $}

    ${
      xrhmeo.f $e |- F = ( x e. ( 0 [,] 1 ) |->
        if ( x = 1 , +oo , ( x / ( 1 - x ) ) ) ) $.
      xrhmeo.g $e |- G = ( y e. ( -u 1 [,] 1 ) |->
        if ( 0 <_ y , ( F ` y ) , -e ( F ` -u y ) ) ) $.
      xrhmeo.j $e |- J = ( TopOpen ` CCfld ) $.
      xrhmeo.k $e |- K = ( ordTop ` <_ ) $.
      $( The bijection from ` [ -u 1 , 1 ] ` to the extended reals is an order
         isomorphism and a homeomorphism.  (Contributed by Mario Carneiro,
         9-Sep-2015.) $)
      xrhmeo $p |- ( G Isom < , < ( ( -u 1 [,] 1 ) , RR* ) /\
        G e. ( ( J |`t ( -u 1 [,] 1 ) ) Homeo ( ordTop ` <_ ) ) ) $=
        ( c1 cxr clt cle wcel wbr wceq cc0 wa syl vz vw vv cneg cicc wiso crest
        co cordt cfv chmeo wor wpo cv wi wral wss iccssxr xrltso ax-mp cxne cif
        wf cpnf cr neg1rr 1re elicc2i adantr simpr 0re syl3anbrc wf1o cdiv f1of
        simpli ffvelrni sseldi wn wo sylancr le0neg1d simp2bi xnegcld wrex mpbi
        mpbid mp4an elxrge0 f1ocnvfv2 breq2 fveq2 eqeq2d anbi12d rspcev biimpar
        wb syl12anc reximi 0xr mpan mp2an mp3an12 notbid 0elunit ax-1ne0 syl6eq
        cmin wne eqtrd fvmpt a1i mtbird eqid pm3.2i sylancl fveq2d xnegeq negeq
        breq1 simpl1 imbi12d vtoclga sylc isorel syl2anc eleq1d simpll2 simpll1
        eleq1 ex ifbothda ifbieq12d fvex xnegex ifex cvv ctsr letsr ledm letric
        wfo soss mp2 sopo crn simp1bi simp3bi ccnv caddc cmpt iccpnfcnv orcanai
        renegcld lenegcon1 ifclda fmpti frn cab ssabral 0le1 le0neg2 1le1 iccss
        f1ocnv mp2b sylbir biimpri eqcomd iftrue xnegcl xrletri xle0neg1 sylibd
        ord imp sylanbrc iccneg negneg1e1 oveq2i syl6eleq xle0neg2 biimpa neeq2
        iccssre mpbiri necomd ifnefalse oveq2 1m0e1 oveq12d ax-1cn c0ex breq12d
        id div0i cii iccpnfhmeo leisorel mtbid unitssre negnegd xnegneg iffalse
        recnd eqtr2d pm2.61dan mprgbir rnmpt sseqtr4i eqssi mpbir2an w3a simpl3
        dffo2 simpl2 ltled letrd iftrued breqtrrd ltnle mpbird lt0neg1d simprbi
        syl5eqbrr xlt0neg2 xrltletrd simpll3 ltnegd xltneg 3expia rgen2a soisoi
        breqan12d sylibrd cxp cin elexi inex1 ssid leiso isores1 cdm cps psssdm
        tsrps eqcomi ordthmeo mp3an xrrest2 ordtresticc eqtri oveq1i eleqtrri )
[encoded data, 5520 characters]
        PEVUSIVUSXNVUJUTVUOKVUKVULVUMVUNXO $.
    $}
  $}

  ${
    $d x y $.
    $( The extended reals are homeomorphic to the interval ` [ 0 , 1 ] ` .
       (Contributed by Mario Carneiro, 9-Sep-2015.) $)
    xrhmph $p |- II ~= ( ordTop ` <_ ) $=
      ( vx vy cii cfv c1 cneg cicc co chmph wbr cle cc0 cv cmul cmpt chmeo wcel
      cr clt eqid ccnfld ctopn crest cordt cmin caddc neg1rr neg1lt0 0lt1 lttri
      1re 0re mp2an icchmeo mp3an hmphi wceq cpnf cdiv cif cxne cxr wiso xrhmeo
      ax-mp simpri hmphtr ) CUAUBDZEFZEGHZUCHZIJZVKKUDDZIJZCVMIJALEGHZAMZENHEVP
      UEHZVINHUFHOZCVKPHQZVLVIRQERQVIESJZVSUGUKVILSJLESJVTUHUIVILEUGULUKUJUMAVI
      EVRVHVHTZVRTUNUOVRCVKUPVEBVJLBMZKJWBAVOVPEUQURVPVQUSHUTOZDWBFWCDVAUTOZVKV
      MPHQZVNVJVBSSWDVCWEABWCWDVHVMWCTWDTWAVMTVDVFWDVKVMUPVECVKVMVGUM $.
  $}

  $( The topology of the extended reals is compact.  Since the topology of the
     extended reals extends the topology of the reals (by ~ xrtgioo ), this
     means that ` RR* ` is a compactification of ` RR ` .  (Contributed by
     Mario Carneiro, 9-Sep-2015.) $)
  xrcmp $p |- ( ordTop ` <_ ) e. Comp $=
    ( cii cle cordt cfv chmph wbr ccmp wcel xrhmph iicmp cmphmph mp2 ) ABCDZEFA
    GHMGHIJAMKL $.

  $( The topology of the extended reals is connected.  (Contributed by Mario
     Carneiro, 9-Sep-2015.) $)
  xrconn $p |- ( ordTop ` <_ ) e. Conn $=
    ( cii cle cordt cfv chmph wbr cconn wcel xrhmph iiconn connhmph mp2 ) ABCDZ
    EFAGHMGHIJAMKL $.

  ${
    $( A linear combination of two reals lies in the interval between them.
       Equivalently, a closed interval is a convex set.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    icccvx $p |- ( ( A e. RR /\ B e. RR ) ->
              ( ( C e. ( A [,] B ) /\ D e. ( A [,] B ) /\ T e. ( 0 [,] 1 ) ) ->
                      ( ( ( 1 - T ) x. C ) + ( T x. D ) ) e. ( A [,] B ) ) ) $=
      ( cr wcel wa cicc co c1 w3a cmul caddc wceq adantl 3adantr3 jca oveq1d cc
      cc0 cmin clt wbr iccss2 adantr iccssre sselda adantrr adantrl lincmb01cmp
      simpr3 wi ex 3expa an32s sylan sseldd oveq2 unitssre sseli recnd ad2antll
      wss ax-1cn npcan mpan subcl ancri adddir mulid2 3eqtr3d syl2anc sylan9eqr
      imp 3adantr1 simplr2 eqeltrd ancom2s iirev sseldi syl2anr adantll adantlr
      recn mulcl addcomd 3adantl3 nncan eqcomd syl sylan2 w3o lttri4d mpjao3dan
      eqtrd ) AFGBFGHZCABIJZGZDWRGZEUAKIJZGZLZKEUBJZCMJZEDMJZNJZWRGZWQXCHZCDUCU
      DZXHCDOZDCUCUDZXIXJHCDIJZWRXGXIXMWRVDZXJWQWSWTXNXBWSWTHZXNWQABCDUEPQUFXIC
      FGZDFGZHZXBHXJXGXMGZXIXRXBWQWSWTXRXBWQXOHZXPXQWQWSXPWTWQWRFCABUGZUHUIZWQW
      TXQWSWQWRFDYAUHZUJZRQWQWSWTXBULZRXRXJXBXSXRXJHXBXSXPXQXJXBXSUMXPXQXJLXBXS
      CDEUKUNUOVOUPUQURXIXKHXGDWRXKXIXGXDDMJZXFNJZDXKXEYFXFNCDXDMUSSWQWTXBYGDOZ
      WSWQWTXBHHETGZDTGZYHXBYIWQWTXBEXAFEUTVAVBZVCWQWTYJXBWQWTHDYCVBUIYIYJHZXDE
      NJZDMJZKDMJZYGDYLYMKDMYIYMKOZYJKTGZYIYPVEKEVFVGUFSYIXDTGZYIHYJYNYGOZYIYRY
      QYIYRVEKEVHVGVIYRYIYJYSXDEDVJUOUQYJYODOYIDVKPVLVMVPVNWSWTXBWQXKVQVRXIXLHD
      CIJZWRXGXIYTWRVDZXLWQWSWTUUAXBWQWTWSUUAWTWSHUUAWQABDCUEPVSQUFXIXQXPHZXBHZ
      XLXGYTGZXIUUBXBWQWSWTUUBXBXTXQXPYDYBRQYERUUBXLXBUUDUUBXLHXBUUDXQXPXLXBUUD
      UMXQXPXLLZXBUUDUUEXBHZXGKXDUBJZDMJZXENJZYTUUFXGXFXENJZUUIXQXPXBXGUUJOXLUU
      CXEXFXPXBXETGZXQXBYRCTGUUKXPXBXDXBXAFXDUTEVTZWAVBCWEXDCWFWBWCXQXBXFTGZXPX
      BYIYJUUMXQYKDWEEDWFWBWDWGWHXBUUJUUIOZUUEXBYIUUNYKYIXFUUHXENYIEUUGDMYIUUGE
      YQYIUUGEOVEKEWIVGWJSSWKPWPXBUUEXDXAGUUIYTGUULDCXDUKWLVRUNUOVOUPUQURWQWSWT
      XJXKXLWMXBXTCDYBYDWNQWOUN $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C x y $.  $d K x y $.
    oprpiece1.1 $e |- A e. RR $.
    oprpiece1.2 $e |- B e. RR $.
    oprpiece1.3 $e |- A <_ B $.
    oprpiece1.4 $e |- R e. _V $.
    oprpiece1.5 $e |- S e. _V $.
    oprpiece1.6 $e |- K e. ( A [,] B ) $.
    oprpiece1.7 $e |- F =
      ( x e. ( A [,] B ) , y e. C |-> if ( x <_ K , R , S ) ) $.
    ${
      oprpiece1.8 $e |- G = ( x e. ( A [,] K ) , y e. C |-> R ) $.
      $( Restriction to the first part of a piecewise defined function.
         (Contributed by Jeff Madsen, 11-Jun-2010.)  (Proof shortened by Mario
         Carneiro, 3-Sep-2015.) $)
      oprpiece1res1 $p |- ( F |` ( ( A [,] K ) X. C ) ) = G $=
        ( cle wcel cicc co cv wbr cif cmpt2 cxp cres wss cxr rexri lbicc2 mp3an
        wceq iccss2 mp2an ssid resmpt2 reseq1i w3a elicc1 simp1bi ax-mp iccleub
        wb mp3an12 iftrued adantr mpt2eq3ia eqtr4i 3eqtr4i ) ABCDUAUBZEAUCZJSUD
        ZFGUEZUFZCJUAUBZEUGZUHZABVQEVOUFZHVRUHIVQVLUIZEEUIVSVTUNCVLTZJVLTZWACUJ
        TZDUJTZCDSUDWBCKUKZDLUKZMCDULUMPCDCJUOUPEUQABVLEVQEVOURUPHVPVRQUSIABVQE
        FUFVTRABVQEVOFVMVQTZVOFUNBUCETWHVNFGWDJUJTZWHVNWFWCWIPWCWICJSUDZJDSUDZW
        DWEWCWIWJWKUTVEWFWGCDJVAUPVBVCCJVMVDVFVGVHVIVJVK $.
    $}

    ${
      $d P x $.  $d Q x $.
      oprpiece1.9 $e |- ( x = K -> R = P ) $.
      oprpiece1.10 $e |- ( x = K -> S = Q ) $.
      oprpiece1.11 $e |- ( y e. C -> P = Q ) $.
      oprpiece1.12 $e |- G = ( x e. ( K [,] B ) , y e. C |-> S ) $.
      $( Restriction to the second part of a piecewise defined function.
         (Contributed by Jeff Madsen, 11-Jun-2010.)  (Proof shortened by Mario
         Carneiro, 3-Sep-2015.) $)
      oprpiece1res2 $p |- ( F |` ( ( K [,] B ) X. C ) ) = G $=
        ( cicc co cv cle wbr cif cmpt2 cxp cres wss wceq cxr rexri ubicc2 mp3an
        wcel mp2an ssid resmpt2 reseq1i wa ad2antlr simpr elicc2i simp1bi ax-mp
        iccss2 cr simp2bi ad2antrr wb letri3 sylancl mpbir2and 3eqtr4d wn eqidd
        syl ifeqda mpt2eq3ia eqtr4i 3eqtr4i ) ABCDUDUEZEAUFZLUGUHZHIUIZUJZLDUDU
        EZEUKZULZABWKEWIUJZJWLULKWKWFUMZEEUMWMWNUNLWFUSZDWFUSZWORCUOUSDUOUSCDUG
        UHWQCMUPDNUPOCDUQURCDLDVJUTEVAABWFEWKEWIVBUTJWJWLSVCKABWKEIUJWNUCABWKEW
        IIWGWKUSZBUFEUSZVDZWHHIIWTWHVDZFGHIWSFGUNWRWHUBVEXAWGLUNZHFUNXAXBWHLWGU
        GUHZWTWHVFWRXCWSWHWRWGVKUSZXCWGDUGUHZLDWGWPLVKUSZRWPXFCLUGUHLDUGUHCDLMN
        VGVHVIZNVGZVLVMXAXDXFXBWHXCVDVNWRXDWSWHWRXDXCXEXHVHVMXGWGLVOVPVQZTWAXAX
        BIGUNXIUAWAVRWTWHVSVDIVTWBWCWDWE $.
    $}
  $}

  ${
    $d z F $.  $d z J $.  $d x y z K $.
    cnrehmeo.1 $e |- F = ( x e. RR , y e. RR |-> ( x + ( _i x. y ) ) ) $.
    cnrehmeo.2 $e |- J = ( topGen ` ran (,) ) $.
    cnrehmeo.3 $e |- K = ( TopOpen ` CCfld ) $.
    $( The canonical bijection from ` ( RR X. RR ) ` to ` CC ` described in
       ~ cnref1o is in fact a homeomorphism of the usual topologies on these
       sets.  (It is also an isometry, if ` ( RR X. RR ) ` is metrized with the
       l<SUP>2</SUP> norm.)  (Contributed by Mario Carneiro, 25-Aug-2014.) $)
    cnrehmeo $p |- F e. ( ( J tX J ) Homeo K ) $=
      ( vz co wcel wtru ccn cr ci cfv a1i cc cre cim ctx chmeo ccnv caddc cmpt2
      cmul ctopon cioo crn ctg retopon eqeltri crest ctop wss cnfldtop cnrest2r
      cv cnmpt1st tgioo2 eqtri oveq2i syl6eleq sseldd cnfldtopon ax-icn cnmpt2c
      mp1i cnmpt2nd mulcn cnmpt22f addcn syl5eqel cop cmpt cnrecnv wf ref ccncf
      feqmptd recncf wceq ssid ax-resscn toponunii restid eqcomi cncfcn eleqtri
      ax-mp mp2an syl6eqelr imf imcncf cnmpt1t ishmeo sylanbrc trud ) CDDUAJZEU
      BJKZLCWSEMJZKCUCZEWSMJZKWTLCABNNAURZOBURZUFJZUDJUEXAFLABXDXFUDDDEEENNDNUG
      PZKLDUHUIUJPZXGGUKULQZXILWSENUMJZMJZXAABNNXDUEZEUNKXKXAUOLEHUPNWSEUQVHZLX
      LWSDMJZXKLABDDNNXIXIUSDXJWSMDXHXJGEHUTVAZVBZVCVDLABOXEUFDDEEENNXIXILABODD
      ENNRXIXIERUGPZKZLEHVEZQZORKLVFQVGLXKXAABNNXEUEZXMLYAXNXKLABDDNNXIXIVIXPVC
      VDUFEEUAJEMJZKLEHVJQVKUDYBKLEHVLQVKVMLXBIRIURZSPZYCTPZVNVOXCABICFVPLIYDYE
      EDDRXTLIRYDVOSEDMJZLIRNSRNSVQLVRQVTSRNVSJZYFWARRUONRUOYGYFWBRWCWDRNEEDHER
      UMJZEXRYHEWBXSEXQRREXSWEWFWJWGXOWHWKZWIWLLIRYEVOTYFLIRNTRNTVQLWMQVTTYGYFW
      NYIWIWLWOVMCWSEWPWQWR $.
  $}

  ${
    $d u z F $.  $d u z R $.  $d f r s u x y z T $.  $d r u x y z J $.
    $d f r s u x y z X $.
    cnheibor.2 $e |- J = ( TopOpen ` CCfld ) $.
    cnheibor.3 $e |- T = ( J |`t X ) $.
    ${
      cnheibor.4 $e |- F = ( x e. RR , y e. RR |-> ( x + ( _i x. y ) ) ) $.
      cnheibor.5 $e |- Y = ( F " ( ( -u R [,] R ) X. ( -u R [,] R ) ) ) $.
      $( Lemma for ~ cnheibor .  (Contributed by Mario Carneiro,
         14-Sep-2014.) $)
      cnheiborlem $p |- ( ( X e. ( Clsd ` J ) /\ ( R e. RR /\
        A. z e. X ( abs ` z ) <_ R ) ) -> T e. Comp ) $=
        ( cfv wcel cr cle co ccmp cc vu ccld cv cabs wbr wral wa crest ctop wss
        cvv wceq cnfldtop cneg cicc cxp cima ccnv wfn wb cnref1o f1ofn elpreima
        wf1o mp2b c1st c2nd cop 1st2nd2 xp1st recnd abscld cnfldtopon toponunii
        ad2antrl cldss adantr simprr sseldd simplrl cre f1ocnvfv1 sylancr fveq2
        cim simprl opeq12d cnrecnv opex fvmpt eqtr3d fveq2d fvex syl6eq absrele
        syl op1st eqbrtrd simplrr breq1d rspcv letrd absled mpbid simpld simprd
        sylc w3a renegcl elicc2 syl2anc mpbir3and xp2nd absimle opelxpd eqeltrd
        op2nd ex syl5bi ssrdv wfun crn wi f1ofun ax-mp wfo f1ofo forn syl6sseqr
        funimass1 mpd cioo ctx eqid mp3an2i syl6eqr ccn mpancom retop eqeltrrd
        ctg chmeo cnrehmeo imaexg eqeltri a1i restabs oveq2i ishmeo mpbi simpli
        iccssre rerest oveq12d ovex txrest mp4an icccmp imacmp syl5eqel imassrn
        txcmp eqsstri wf f1of frn sstri simpl restcldi cmpcld ) HGUBNOZDPOZCUCZ
        UDNZDQUEZCHUFZUGZUGZGIUHRZHUHRZESUVRUVTGHUHRZEGUIOUVRHIUJZIUKOZUVTUWAUL
        GJUMUVRHFDUNZDUORZUWEUPZUQZIUVRFURZHUQZUWFUJZHUWGUJZUVRUAUWIUWFUAUCZUWI
        OZUWLPPUPZOZUWLFNZHOZUGZUVRUWLUWFOZUWNTFVDZFUWNUSUWMUWRUTABFLVAZUWNTFVB
        UWNUWLHFVCVEUVRUWRUWSUVRUWRUGZUWLUWLVFNZUWLVGNZVHZUWFUWOUWLUXEULUVRUWQU
        WLPPVIVOUXBUXCUXDUWEUWEUXBUXCUWEOZUXCPOZUWDUXCQUEZUXCDQUEZUWOUXGUVRUWQU
        WLPPVJVOZUXBUXHUXIUXBUXCUDNZDQUEUXHUXIUGUXBUXKUWPUDNZDUXBUXCUXBUXCUXJVK
        VLUXBUWPUXBHTUWPUVRHTUJZUWRUVKUXMUVQHGTTGGJVMVNZVPVQZVQUVRUWOUWQVRZVSZV
        LZUVKUVLUVPUWRVTZUXBUXKUWPWANZUDNZUXLQUXBUXCUXTUDUXBUXCUXTUWPWENZVHZVFN
        UXTUXBUWLUYCVFUXBUWPUWHNZUWLUYCUXBUWTUWOUYDUWLULUXAUVRUWOUWQWFUWNTUWLFW
        BWCUXBUWPTOZUYDUYCULUXQCUWPUVMWANZUVMWENZVHUYCTUWHUVMUWPULZUYFUXTUYGUYB
        UVMUWPWAWDUVMUWPWEWDWGABCFLWHUXTUYBWIWJWPWKZWLUXTUYBUWPWAWMZUWPWEWMZWQW
        NWLUXBUYEUYAUXLQUEUXQUWPWOWPWRUXBUWQUVPUXLDQUEZUXPUVKUVLUVPUWRWSUVOUYLC
        UWPHUYHUVNUXLDQUVMUWPUDWDWTXAXGZXBUXBUXCDUXJUXSXCXDZXEUXBUXHUXIUYNXFUXB
        UWDPOZUVLUXFUXGUXHUXIXHUTUXBUVLUYOUXSDXIZWPZUXSUWDDUXCXJXKXLUXBUXDUWEOZ
        UXDPOZUWDUXDQUEZUXDDQUEZUWOUYSUVRUWQUWLPPXMVOZUXBUYTVUAUXBUXDUDNZDQUEUY
        TVUAUGUXBVUCUXLDUXBUXDUXBUXDVUBVKVLUXRUXSUXBVUCUYBUDNZUXLQUXBUXDUYBUDUX
        BUXDUYCVGNUYBUXBUWLUYCVGUYIWLUXTUYBUYJUYKXQWNWLUXBUYEVUDUXLQUEUXQUWPXNW
        PWRUYMXBUXBUXDDVUBUXSXCXDZXEUXBUYTVUAVUEXFUXBUYOUVLUYRUYSUYTVUAXHUTUYQU
        XSUWDDUXDXJXKXLXOXPXRXSXTUVRFYAZHFYBZUJUWJUWKYCUWTVUFUXAUWNTFYDYEUVRHTV
        UGUXOUWTUWNTFYFVUGTULUXAUWNTFYGUWNTFYHVEYIHUWFFYJWCYKMYIZUWCUVRIUWGUKMF
        YLYBUUANZVUIYMRZGUUBRZOZUWGUKOABFVUIGLVUIYNZJUUCZFUWFVUKUUDYEUUEUUFHIGU
        IUKUUGYOKYPUVRUVSSOZHUVSUBNOZUVTSOUVLVUOUVKUVPUVLUVSGUWGUHRZSIUWGGUHMUU
        HUVLFVUJGYQROZVUJUWFUHRZSOVUQSOVURUWHGVUJYQROZVULVURVUTUGVUNFVUJGUUIUUJ
        UUKUVLGUWEUHRZVVAYMRZVUSSUVLVVBVUIUWEUHRZVVCYMRZVUSUVLVVAVVCVVAVVCYMUVL
        UWEPUJZVVAVVCULUYOUVLVVEUYPUWDDUULYRUWEVUIGJVUMUUMWPZVVFUUNVUIUIOZVVGUW
        EUKOZVVHVUSVVDULYSYSUWDDUOUUOZVVIUWEUWEVUIVUIUIUIUKUKUUPUUQYPUVLVVASOZV
        VJVVBSOUVLVVAVVCSVVFUYOUVLVVCSOUYPUWDDVVCVUIVUMVVCYNUURYRXPZVVKVVAVVAUV
        BXKYTUWFFVUJGUUSWCUUTVOITUJUVRUVKUWBVUPIVUGTIUWGVUGMFUWFUVAUVCUWTUWNTFU
        VDVUGTUJUXAUWNTFUVEUWNTFUVFVEUVGUVKUVQUVHVUHIHGTUXNUVIYOHUVSUVJXKYT $.
    $}

    $( Heine-Borel theorem for complex numbers.  A subset of ` CC ` is compact
       iff it is closed and bounded.  (Contributed by Mario Carneiro,
       14-Sep-2014.) $)
    cnheibor $p |- ( X C_ CC -> ( T e. Comp <-> ( X e. ( Clsd ` J ) /\
      E. r e. RR A. x e. X ( abs ` x ) <_ r ) ) ) $=
      ( vu vz cc wcel cfv cv cr wrex wa co wceq crp cc0 vs vf vy ccmp ccld cabs
      wss cle wbr wral cha crest cnfldhaus a1i simpl simpr syl5eqelr cnfldtopon
      toponunii hauscmp syl3anc cuni cmin ccom cbl cin wex cpw cfn wel cnfldtop
      wf ctop restuni sylancr unieqi syl6eqr eleq2d biimpar c1 caddc cnex ssexg
      cvv sylancl adantr cxmt cxr cnxmet sselda abscld peano2re rexrd cnfldtopn
      0cnd syl elrestr syl6eleqr clt 0cn eqid cnmetdval mpan cneg df-neg fveq2i
      blopn absneg syl5eqr eqtrd ltp1d eqbrtrd wb elbl mpbir2and elind ge0p1rpd
      absge0d oveq2 ineq1d eqeq2d rspcev eleq2 eqeq1 rexbidv syl12anc ralrimiva
      anbi12d syldan syl2anc simpllr ad2antrl simprr simprl ad2antrr rpred sylc
      rspcv sseldi rexlimdvaa cmpcovf ad4antr elssuni sseqtr4d simp-6l ffvelrnd
      eluni2 syl6bb sstrd sseldd simplrl inss1 fveq2 oveq2d eqeq12d rpxrd mpbid
      id eleqtrd simprd eqbrtrrd simplrr breq1d ltletrd sylbid ralrimiv ffvelrn
      ltled inss2 fimaxre3 reximddv ex exlimdv expimpd rexlimdva mpd cmul cmpt2
      jca ci cicc cxp cima cnheiborlem imp adantl impbida ) DJUGZBUDKZDCUELKZAM
      ZUFLZEMZUHUIZADUJZENOZPZUWHUWIPZUWJUWPUWRCUKKZUWHCDULQZUDKUWJUWSUWRCFUMUN
      UWHUWIUOZUWRUWTBUDGUWHUWIUPZUQDCJJCCFURUSZUTVAUWRBVBZUAMZVBZRZUXESUBMZVLZ
      HMZTUXJUXHLZUFVCVDZVELZQZDVFZRZHUXEUJZPZUBVGZPZUABVHZVIVFZOZUWPUWRUWIAHVJ
      ZUXJTUWMUXMQZDVFZRZESOZPZHBOZAUXDUJUYCUXBUWRUYJAUXDUWRUWKUXDKZUWKDKZUYJUW
      RUYLUYKUWRDUXDUWKUWRDUWTVBZUXDUWRCVMKZUWHDUYMRCFVKZUXADCJUXCVNVOBUWTGVPVQ
      ZVRVSUWRUYLPZTUWLVTWAQZUXMQZDVFZBKUWKUYTKZUYTUYFRZESOZUYJUYQUYTUWTBUYQUYN
      DWDKZUYSCKZUYTUWTKUYNUYQUYOUNUWRVUDUYLUWRUWHJWDKVUDUXAWBDJWDWCWEWFUYQUXLJ
      WGLKZTJKZUYRWHKZVUEVUFUYQWIUNZUYQWOZUYQUYRUYQUWLNKUYRNKUYQUWKUWRDJUWKUXAW
      JZWKZUWLWLWPWMZUXLTUYRCJCFWNXGVAUYSDCVMWDWQVAGWRUYQUYSDUWKUYQUWKUYSKZUWKJ
      KZTUWKUXLQZUYRWSUIZVUKUYQVUPUWLUYRWSUYQVUOVUPUWLRZVUKVUOVUPTUWKVCQZUFLZUW
      LVUGVUOVUPVUTRWTTUWKUXLUXLXAXBXCVUOVUTUWKXDZUFLUWLVVAVUSUFUWKXEXFUWKXHXIX
      JZWPUYQUWLVULXKXLUYQVUFVUGVUHVUNVUOVUQPXMVUIVUJVUMUWKUXLTUYRJXNVAXOUWRUYL
      UPXPUYQUYRSKUYTUYTRZVUCUYQUWLVULUYQUWKVUKXRXQUYTXAVUBVVCEUYRSUWMUYRRZUYFU
      YTUYTVVDUYEUYSDUWMUYRTUXMXSXTYAYBWEUYIVUAVUCPHUYTBUXJUYTRZUYDVUAUYHVUCUXJ
      UYTUWKYCVVEUYGVUBESUXJUYTUYFYDYEYHYBYFYIYGUYGUXPAHESUBBUXDUAUXDXAUWMUXKRZ
      UYFUXOUXJVVFUYEUXNDUWMUXKTUXMXSXTYAUUAYJUWRUXTUWPUAUYBUWRUXEUYBKZPZUXGUXS
      UWPVVHUXGPZUXRUWPUBVVIUXRUWPVVIUXRPZUXKUWMUHUIZHUXEUJZUWOENVVJUWMNKZVVLPZ
      PZUWNADVVOUYLAIVJZIUXEOZUWNVVOUYLUWKUXFKVVQVVODUXFUWKVVODUXDUXFUWRDUXDRVV
      GUXGUXRVVNUYPUUBVVHUXGUXRVVNYKXJZVRIUWKUXEUUGUUHVVOVVPUWNIUXEVVOIUAVJZVVP
      PZPZUWLUWMVWAUWKVWAIMZJUWKVWAVWBDJVWAVWBUXFDVVSVWBUXFUGVVOVVPVWBUXEUUCYLV
      VODUXFRVVTVVRWFUUDUWHUWIVVGUXGUXRVVNVVTUUEUUIVVOVVSVVPYMZUUJZWKZVVJVVMVVL
      VVTUUKZVWAUWLVWBUXHLZUWMVWEVWAVWGVWAUXESVWBUXHVVJUXIVVNVVTVVIUXIUXQYNYOVV
      OVVSVVPYNZUUFZYPVWFVWAVUPUWLVWGWSVWAVUOVURVWDVVBWPVWAVUOVUPVWGWSUIZVWAUWK
      TVWGUXMQZKZVUOVWJPZVWAVWKDVFZVWKUWKVWKDUULVWAUWKVWBVWNVWCVWAVVSUXQVWBVWNR
      ZVWHVVJUXQVVNVVTVVIUXIUXQYMYOUXPVWOHVWBUXEUXJVWBRZUXJVWBUXOVWNVWPUURVWPUX
      NVWKDVWPUXKVWGTUXMUXJVWBUXHUUMZUUNXTUUOYRYQUUSYSVWAVUFVUGVWGWHKVWLVWMXMVU
      FVWAWIUNVWAWOVWAVWGVWIUUPUWKUXLTVWGJXNVAUUQUUTUVAVWAVVSVVLVWGUWMUHUIZVWHV
      VJVVMVVLVVTUVBVVKVWRHVWBUXEVWPUXKVWGUWMUHVWQUVCYRYQUVDUVHYTUVEUVFVVJUXEVI
      KUXKNKZHUXEUJZVVLENOVVJUYBVIUXEUYAVIUVIUWRVVGUXGUXRYKYSUXIVWTVVIUXQUXIVWS
      HUXEUXIHUAVJPUXKUXESUXJUXHUVGYPYGYLEHUXEUXKUVJYJUVKUVLUVMUVNUVOUVPUVSUWQU
      WIUWHUWJUWPUWIUWJUWOUWIENUCIAUWMBUCINNUCMUVTVWBUVQQWAQUVRZCDVXAUWMXDUWMUW
      AQZVXBUWBUWCZFGVXAXAVXCXAUWDYTUWEUWFUWG $.
  $}

  ${
    $d r s u w x y z J $.
    cnllycmp.1 $e |- J = ( TopOpen ` CCfld ) $.
    $( The topology on the complex numbers is locally compact.  (Contributed by
       Mario Carneiro, 2-Mar-2015.) $)
    cnllycmp $p |- J e. N-Locally Comp $=
      ( vu vy vx vz ccmp wcel cv co cfv wral wa cabs wss cc syl3anc wbr cle cr
      vr vs vw cnlly ctop csn cnei cpw cin wrex cnfldtop cmin ccom cbl crp cxmt
      crest cnxmet cnfldtopn mopni2 mp3an1 c2 cdiv ccl a1i cxr elssuni ad2antrr
      cuni cnfldtopon toponunii syl6sseqr simplr sseldd rphalfcl ad2antrl rpxrd
      blopn blcntr opnneip blssm sscls syl2anc clt rpxr rphalflt blsscls simprr
      syl23anc sstrd ssnei2 syl22anc vex elpw2 sylibr elind clscld caddc abscld
      ccld rpred readdcld crab eqid blcls simpr adantr abs2difd resubcld subcld
      wi letr mpand abssubd cnmetdval sylan eqtr4d lesubadd2d 3imtr3d ralrimiva
      wceq breq1d oveq2 ralrab ssralv sylc breq2 ralbidv rspcev wb cnheibor syl
      mpbir2and eleq1d rexlimddv rgen2 isnlly mpbir2an ) AGUDHAUEHZACIZUQJZGHZC
      DIZUFZAUGKKZEIZUHZUIZUJZDUUFLEALABUKZUUIEDAUUFUUFAHZUUCUUFHZMZUUCUAIZNULU
      MZUNKZJZUUFOZUUIUAUOUUOPUPKHZUUKUULUURUAUOUJURUAUUFUUOUUCAPABUSZUTVAUUMUU
      NUOHZUURMZMZUUCUUNVBVCJZUUPJZAVDKKZUUHHAUVFUQJZGHZUUIUVCUUEUUGUVFUVCYSUVE
      UUEHZUVEUVFOZUVFPOZUVFUUEHYSUVCUUJVEZUVCYSUVEAHZUUCUVEHZUVIUVLUVCUUSUUCPH
      ZUVDVFHZUVMUUSUVCURVEZUVCUUFPUUCUVCUUFAVIZPUUKUUFUVROUULUVBUUFAVGVHPAABVJ
      VKZVLZUUKUULUVBVMVNZUVCUVDUVAUVDUOHZUUMUURUUNVOVPZVQZUUOUUCUVDAPUUTVRQUVC
      UUSUVOUWBUVNUVQUWAUWCUUOUUCUVDPVSQUUCAUVEVTQUVCYSUVEPOZUVJUVLUVCUUSUVOUVP
      UWEUVQUWAUWDUUOUUCUVDPWAQZUVEAPUVSWBWCUVCUVFUUFPUVCUVFUUQUUFUVCUUSUVOUVPU
      UNVFHZUVDUUNWDRZUVFUUQOUVQUWAUWDUVAUWGUUMUURUUNWEVPUVAUWHUUMUURUUNWFVPUUO
      UUCUVDUUNAPUUTWGWIUUMUVAUURWHWJZUVTWJZUUDAUVFUVEPUVSWKWLUVCUVFUUFOUVFUUGH
      UWIUVFUUFEWMWNWOWPUVCUVHUVFAWTKHZFIZNKZUBIZSRZFUVFLZUBTUJZUVCYSUWEUWKUVLU
      WFUVEAPUVSWQWCUVCUUCNKZUVDWRJZTHUWMUWSSRZFUVFLZUWQUVCUWRUVDUVCUUCUWAWSZUV
      CUVDUWCXAZXBUVCUVFUUCUCIZUUOJZUVDSRZUCPXCZOZUWTFUXGLZUXAUVCUUSUVOUVPUXHUV
      QUWAUWDUCUUOUUCUVDUXGAPUUTUXGXDXEQUVCUUCUWLUUOJZUVDSRZUWTXKZFPLUXIUVCUXLF
      PUVCUWLPHZMZUWLUUCULJZNKZUVDSRZUWMUWRULJZUVDSRZUXKUWTUXNUXRUXPSRZUXQUXSUX
      NUWLUUCUVCUXMXFZUVCUVOUXMUWAXGZXHUXNUXRTHUXPTHUVDTHZUXTUXQMUXSXKUXNUWMUWR
      UXNUWLUYAWSZUVCUWRTHUXMUXBXGZXIUXNUXOUXNUWLUUCUYAUYBXJWSUVCUYCUXMUXCXGZUX
      RUXPUVDXLQXMUXNUXPUXJUVDSUXNUXPUUCUWLULJNKZUXJUXNUWLUUCUYAUYBXNUVCUVOUXMU
      XJUYGYAUWAUUCUWLUUOUUOXDXOXPXQYBUXNUWMUWRUVDUYDUYEUYFXRXSXTUXFUXKUWTFUCPU
      XDUWLYAUXEUXJUVDSUXDUWLUUCUUOYCYBYDWOUWTFUVFUXGYEYFUWPUXAUBUWSTUWNUWSYAUW
      OUWTFUVFUWNUWSUWMSYGYHYIWCUVCUVKUVHUWKUWQMYJUWJFUVGAUVFUBBUVGXDYKYLYMUUBU
      VHCUVFUUHYTUVFYAUUAUVGGYTUVFAUQYCYNYIWCYOYPEDCGAYQYR $.
  $}

  $( The topology on the reals is locally compact.  (Contributed by Mario
     Carneiro, 2-Mar-2015.) $)
  rellycmp $p |- ( topGen ` ran (,) ) e. N-Locally Comp $=
    ( cioo crn ctg cfv ccnfld ctopn cr crest co ccmp cnlly eqid tgioo2 cnllycmp
    wcel ccld recld2 cldllycmp mp2an eqeltri ) ABCDEFDZGHIZJKZUAUALZMUAUCOGUAPD
    OUBUCOUAUDNUAUDQGUARST $.

  ${
    $d u v x y z F $.  $d u v y z K $.  $d u v w x y z ph $.  $d v x y z X $.
    $d x y z J $.
    bndth.1 $e |- X = U. J $.
    bndth.2 $e |- K = ( topGen ` ran (,) ) $.
    bndth.3 $e |- ( ph -> J e. Comp ) $.
    bndth.4 $e |- ( ph -> F e. ( J Cn K ) ) $.
    $( The Boundedness Theorem.  A continuous function from a compact
       topological space to the reals is bounded (above).  (Boundedness below
       is obtained by applying this theorem to ` -u F ` .)  (Contributed by
       Mario Carneiro, 12-Aug-2014.) $)
    bndth $p |- ( ph -> E. x e. RR A. y e. X ( F ` y ) <_ x ) $=
      ( vw wss cr cioo cmnf wcel clt cxr wa vv vu vz crn cuni cfv cle wral wrex
      cv wbr csn cxp cpw cfn cin wf ccn co ctg ctopon retopon eqeltri toponunii
      cima cnf syl frn wi imassrn ctb retopbas bastg ax-mp sseqtr4i sstri retop
      ctop elexi elpw2 mpbir crest ccmp rncmp syl2anc cmpsub sylancr mpbid wceq
      wb unieq unissi unirnioo c1 caddc id ltp1 ressxr peano2re sseldi elioomnf
      mpbir2and df-ov mnfxr snid opelxpi wfun ioof ffun snssi xpss12 mp2an fdmi
      cop cdm funfvima2 syl5eqel elunii ssriv eqssi syl6eq sseq2d pweq mpd csup
      ineq1d simpr adantrr elpwid sseli adantr adantl idd xrltle eleq1d wfn ffn
      c0 wn sseldd rexeqdv imbi12d rspcv mpsyl elin sylib simprd simpld xrltnle
      wne mnflt elsni breq2d mtbird ioo0 syl2an necon3abid mpbird ixxub syl3anc
      df-ioo eqeltrd rgen2 syl6eqr supeq1d supeq1 ralima ssralv mpisyl fimaxre3
      fveq2 ralxp simplrr sselda eluni2 r19.29r 3ad2ant1 simp2r simp3l r19.21bi
      sspwuni adantrl 3adant3 simp2l syl6ss supxrub simp3r letrd 3expia anassrs
      w3a rexlimdva adantlrr syl5 expdimp syldan ralrimdva ad2antrr breq1 ralrn
      sylan2b sylibd reximdva rexlimddv ) ADUDZUAUJZUEZMZCUJDUFZBUJZUGUKZCGUHZB
      NUIZUAOPULZNUMZVEZUNZUOUPZAUXENMZUXHUAUXRUIZAGNDUQZUXSADEFURUSQZUYAKDEFGN
      HNFFOUDZUTUFZNVAUFIVBVCVDZVFVGZGNDVHVGZUXPFUNZQZAUXEUBUJZUEZMZUXHUAUYJUNZ
      UOUPZUIZVIZUBUYHUHZUXSUXTVIZUYIUXPFMUXPUYCFOUXOVJZUYCUYDFUYCVKQUYCUYDMVLU
      YCVKVMVNIVOVPUXPFFVRFUYDVRIVQVCZVSVTWAAFUXEWBUSWCQZUYQAEWCQUYBVUAJKDEFWDW
      EAFVRQUXSVUAUYQWJUYTUYGUXEFNUBUAUYEWFWGWHUYPUYRUBUXPUYHUYJUXPWIZUYLUXSUYO
      UXTVUBUYKNUXEVUBUYKUXPUEZNUYJUXPWKVUCNVUCUYCUENUXPUYCUYSWLWMVOZBNVUCUXJNQ
      ZUXJPUXJWNWOUSZOUSZQZVUGUXPQUXJVUCQVUEVUHVUEUXJVUFRUKZVUEWPUXJWQVUEVUFSQV
      UHVUEVUITWJVUENSVUFWRUXJWSZWTVUFUXJXAVGXBVUEVUGPVUFXNZOUFZUXPPVUFOXCVUEVU
      KUXOQZVULUXPQZVUEPUXNQVUFNQVUMPPSXDVSXEVUJPVUFUXNNXFWGOXGZUXOOXOZMVUMVUNV
      ISSUMZNUNZOUQZVUOXHVUQVUROXIVNUXOVUQVUPUXNSMZNSMUXOVUQMZPSQZVUTXDPSXJVNZW
      RUXNSNSXKXLZVUQVUROXHXMVOUXOVUKOXPXLVGXQUXJVUGUXPXRWEXSXTYAYBVUBUXHUAUYNU
      XRVUBUYMUXQUOUYJUXPYCYFUUAUUBUUCUUDYDAUXFUXRQZUXHTZTZLUJZSRYEZUXJUGUKZLUX
      FUHZBNUIZUXMVVGUXFUOQZVVINQZLUXFUHZVVLVVGUXFUXQQZVVMAVVEVVPVVMTZUXHAVVETZ
      VVEVVQAVVEYGUXFUXQUOUUEUUFZYHUUGAVVEVVOUXHVVRUXFUXPMZVVNLUXPUHZVVOVVRUXFU
      XPVVRVVPVVMVVSUUHYIZVWAUCUJZOUFZSRYEZNQZUCUXOUHZVWGUYJVVHOUSZSRYEZNQZLNUH
      UBUXNUHVWJUBLUXNNUYJUXNQZVVHNQZTZVWIVVHNVWMUYJSQZVVHSQZVWHYRUUJZVWIVVHWIV
      WKVWNVWLUXNSUYJVVCYJZYKVWLVWOVWKNSVVHWRYJZYLVWMVWPVVHUYJUGUKZYSVWMVWSVVHP
      UGUKZVWLVWTYSZVWKVWLPVVHRUKZVXAVVHUUKVWLVVBVWOVXBVXAWJXDVWRPVVHUUIWGWHYLV
      WMUYJPVVHUGVWKUYJPWIVWLUYJPUULYKUUMUUNVWMVWSVWHYRVWKVWNVWOVWHYRWIVWSWJVWL
      VWQVWRUYJVVHUUOUUPUUQUURCUCUABUYJVVHRROCUCUAUVAUXJSQZVWOTUXJVVHRUKYMUXJVV
      HYNVWNVXCTUYJUXJRUKYMUYJUXJYNUUSUUTVWKVWLYGUVBUVCVWFVWJUCUBLUXNNVWCUYJVVH
      XNZWIZVWEVWINVXESVWDVWHRVXEVWDVXDOUFVWHVWCVXDOUVKUYJVVHOXCUVDUVEYOUVLWAOV
      UQYPZVVAVWAVWGWJVUSVXFXHVUQVUROYQVNVVDVVNVWFLUCVUQUXOOVVHVWDWIVVIVWENSVVH
      VWDRUVFYOUVGXLWAVVNLUXFUXPUVHUVIZYHBLUXFVVIUVJWEVVGVVKUXLBNVVGVUETZVVKVWC
      UXJUGUKZUCUXEUHZUXLVXHVVKVXIUCUXEVXHVWCUXEQVWCUXGQZVVKVXIVIZVXHUXEUXGVWCA
      VVEUXHVUEUVMUVNVXKVXHVWCVVHQZLUXFUIZVXLLVWCUXFUVOVXHVXNVVKVXIVXNVVKTVXMVV
      JTZLUXFUIZVXHVXIVXMVVJLUXFUVPAVVEVUEVXPVXIVIUXHVVRVUETVXOVXILUXFVVRVUEVVH
      UXFQZVXOVXIVIVVRVUEVXQTZVXOVXIVVRVXRVXOUWKZVWCVVIUXJVXSVVHNVWCVXSVVHNVXSU
      XPVURVVHUXPVURMVUCNMVUDUXPNUWAWAVXSUXFUXPVVHVVRVXRVVTVXOVWBUVQVVRVUEVXQVX
      OUVRYTWTYIZVVRVXRVXMVVJUVSZYTVVRVXRVVNVXOVVRVXQVVNVUEVVRVVNLUXFVXGUVTUWBU
      WCVVRVUEVXQVXOUWDVXSVVHSMVXMVWCVVIUGUKVXSVVHNSVXTWRUWEVYAVVHVWCUWFWEVVRVX
      RVXMVVJUWGUWHUWIUWJUWLUWMUWNUWOUXAUWPUWQVXHDGYPZVXJUXLWJAVYBVVFVUEAUYAVYB
      UYFGNDYQVGUWRVXIUXKUCCGDVWCUXIUXJUGUWSUWTVGUXBUXCYDUXD $.

    evth.5 $e |- ( ph -> X =/= (/) ) $.
    $( The Extreme Value Theorem.  A continuous function from a nonempty
       compact topological space to the reals attains its maximum at some point
       in the domain.  (Contributed by Mario Carneiro, 12-Aug-2014.) $)
    evth $p |- ( ph -> E. x e. X A. y e. X ( F ` y ) <_ ( F ` x ) ) $=
      ( vz cle wbr cr c1 co wcel cc cv cfv wral wrex crn clt csup csn cdif cmin
      wn wf cdiv cmpt ccmp adantr ccnfld ctopn crest ccn cc0 ctop ctopon cmptop
      wa syl toptopon sylib eqid cnfldtopon a1i 1cnd cnmptc wss c0 wne w3a cioo
      ctg cuni uniretop unieqi eqtr4i cnf frn cdm wceq eqnetrd dm0rn0 necon3bii
      fdm bndth wfn wb ffn breq1 ralrn rexbidv mpbird 3jca suprcl recnd feqmptd
      cnfldtop cnrest2r ax-mp tgioo2 eqtri syl6eleq eqeltrrd ctx subcn cnmpt12f
      oveq2i sseldi ad2antrr ffvelrn eldifsn simpld simprd necomd fmptd cnrest2
      resubcld syl3anc mpbid rereccld sylancl sylancr gt0ne0d recgt0d wi oveq2d
      1re syl2anc adantrr ralimdva sylibrd mtod baib adantll sylanbrc ax-resscn
      subne0d difssd divcn syl6eleqr simpr ifcl 0red 0lt1 max1 ltletrd ltsubrpd
      cif elrpd ltnled simprl max2 ad2ant2l fnfvelrn suprub ad2ant2rl mpbir2and
      sylan ltlend posdifd letr mpan2d fveq2 ovex fvmpt ad2antll lerec syl22anc
      breq1d lesub recrecd breq2d 3bitr3d 3imtr4d anassrs suprleub bitrd nrexdv
      pm2.65da ralrimiva breq2 ralbidv syl5ibrcom ffvelrnda ffnfv dfrex2 sylibr
      necon3bd ) ACUAZDUBZBUAZDUBZNOZCGUCZUKZBGUCZUKUXABGUDAUXCGPDUEZPUFUGZUHUI
      ZDULZAUXGUWPMGQUXEMUAZDUBZUJRZUMRZUNZUBZUWRNOZCGUCZBPUDAUXGVEZBCUXLEFGHIA
      EUOSZUXGJUPZUXPUXLEUQURUBZPUSRZUTRZEFUTRZUXPUXLEUXSUTRZSZUXLUYASZUXPMQUXJ
      UMEUXSUXSTVAUHZUIZUSRZUXSGUXPEVBSZEGVCUBSUXPUXQUYIUXREVDVFEGHVGVHZUXPMQEU
      XSGTUYJUXSTVCUBSZUXPUXSUXSVIZVJVKZUXPVLVMUXPMGUXJUNZUYCSZUYNEUYHUTRSZUXPM
      UXEUXIUJEUXSUXSUXSGUYJUXPMUXEEUXSGTUYJUYMAUXETSUXGAUXEAUXDPVNZUXDVOVPZUXH
      UWRNOZMUXDUCZBPUDZVQZUXEPSZAUYQUYRVUAAGPDULZUYQADUYBSVUDKDEFGPHPVRUEVSUBZ
      VTFVTWAFVUEIWBWCWDVFZGPDWEVFADWFZVOVPUYRAVUGGVOAVUDVUGGWGVUFGPDWKVFLWHVUG
      VOUXDVODWIWJVHAVUAUWQUWRNOZCGUCZBPUDABCDEFGHIJKWLAUYTVUIBPADGWMZUYTVUIWNA
      VUDVUJVUFGPDWOVFZUYSVUHMCGDUXHUWQUWRNWPWQVFWRWSWTZBMUXDXAVFZXBUPVMAMGUXIU
      NZUYCSUXGADVUNUYCAMGPDVUFXCAUYAUYCDUXSVBSUYAUYCVNUXSUYLXDPEUXSXEXFADUYBUY
      AKFUXTEUTFVUEUXTIUXSUYLXGXHXNZXIXOXJUPUJUXSUXSXKRUXSUTRSUXPUXSUYLXLVKXMUX
      PUYKUYNUEUYGVNZUYGTVNUYOUYPWNUYMUXPGUYGUYNULVUPUXPMGUXJUYGUYNUXPUXHGSZVEZ
      UXJTSUXJVAVPUXJUYGSVURUXJVURUXEUXIAVUCUXGVUQVUMXPZVURUXIPSZUXIUXEVPZVURUX
      IUXFSZVUTVVAVEUXGVUQVVBAGUXFUXHDXQUUAUXIPUXEXRVHZXSZYDZXBVURUXEUXIVURUXEV
      USXBVURUXIVVDXBVURUXIUXEVURVUTVVAVVCXTYAUUDZUXJTVAXRUUBUYNVIYBGUYGUYNWEVF
      UXPTUYFUUEUYGUYNEUXSTYCYEYFUMUXSUYHXKRUXSUTRSUXPUXSUYHUYLUYHVIUUFVKXMUXPU
      YKUXLUEPVNZPTVNZUYDUYEWNUYMUXPGPUXLULVVGUXPMGUXKPUXLVURUXJVVEVVFYGUXLVIZY
      BGPUXLWEVFVVHUXPUUCVKPUXLEUXSTYCYEYFVUOUUGWLUXPUXOBPUXPUWRPSZVEZUXOUXEUXE
      QQUWRNOZUWRQUUOZUMRZUJRZNOZVVKVVOUXEUFOVVPUKVVKUXEVVNAVUCUXGVVJVUMXPZVVKV
      VNVVKVVMVVKVVJQPSZVVMPSZUXPVVJUUHZYNVVLUWRQPUUIZYHZVVKVVMVVKVAQVVMVVKUUJV
      VRVVKYNVKVWBVAQUFOVVKUUKVKVVKVVRVVJQVVMNOYNVVTQUWRUULYIUUMZYJZYGZVVKVVMVW
      BVWCYKUUPUUNVVKVVOUXEVVKUXEVVNVVQVWEYDZVVQUUQYFVVKUXOUWQVVONOZCGUCZVVPVVK
      UXNVWGCGUXPVVJUWPGSZUXNVWGYLUXPVVJVWIVEZVEZQUXEUWQUJRZUMRZUWRNOZVWMVVMNOZ
      UXNVWGVWKVWNUWRVVMNOZVWOVWKVVRVVJVWPYNUXPVVJVWIUURZQUWRUUSYIVWKVWMPSVVJVV
      SVWNVWPVEVWOYLVWKVWLVWKUXEUWQAVUCUXGVWJVUMXPZVWKUWQPSZUWQUXEVPZVWKUWQUXFS
      ZVWSVWTVEUXGVWIVXAAVVJGUXFUWPDXQUUTUWQPUXEXRVHZXSZYDZVWKVWLVWKUWQUXEUFOZV
      AVWLUFOZVWKVXEUWQUXENOZUXEUWQVPAVWIVXGUXGVVJAVWIVEVUBUWQUXDSZVXGAVUBVWIVU
      LUPAVUJVWIVXHVUKGUWPDUVAUVEBMUXDUWQUVBYOZUVCVWKUWQUXEVWKVWSVWTVXBXTYAVWKU
      WQUXEVXCVWRUVFUVDVWKUWQUXEVXCVWRUVGYFZYJYGVWQVWKVVJVVRVVSVWQYNVWAYHZVWMUW
      RVVMUVHYEUVIVWIUXNVWNWNUXPVVJVWIUXMVWMUWRNMUWPUXKVWMGUXLUXHUWPWGZUXJVWLQU
      MVXLUXIUWQUXEUJUXHUWPDUVJYMYMVVIQVWLUMUVKUVLUVPUVMVWKVVNVWLNOZVWMQVVNUMRZ
      NOZVWGVWOVWKVVNPSZVAVVNUFOVWLPSVXFVXMVXOWNUXPVVJVXPVWIVWEYPZVWKVVMVXKUXPV
      VJVAVVMUFOVWIVWCYPYKVXDVXJVVNVWLUVNUVOVWKVXPVUCVWSVXMVWGWNVXQVWRVXCVVNUXE
      UWQUVQYEVWKVXNVVMVWMNVWKVVMVWKVVMVXKXBUXPVVJVVMVAVPVWIVWDYPUVRUVSUVTUWAUW
      BYQVVKVVPUXHVVONOZMUXDUCZVWHVVKVUBVVOPSVVPVXSWNAVUBUXGVVJVULXPVWFBMMUXDVV
      OUWCYOVVKVUJVXSVWHWNAVUJUXGVVJVUKXPVXRVWGMCGDUXHUWQVVONWPWQVFUWDYRYSUWEUW
      FAUXCUWSUXFSZBGUCZUXGAUXBVXTBGAUWRGSZVEZUXBUWSUXEVPZVXTAUXBVYDYLVYBAUXAUW
      SUXEAUXAUWSUXEWGZVXGCGUCAVXGCGVXIUWGVYEUWTVXGCGUWSUXEUWQNUWHUWIUWJUWOUPVY
      CUWSPSZVXTVYDWNAGPUWRDVUFUWKVXTVYFVYDUWSPUXEXRYTVFYRYQAVUJUXGVYAWNVUKUXGV
      UJVYABGUXFDUWLYTVFYRYSUXABGUWMUWN $.

    $( The Extreme Value Theorem, minimum version.  A continuous function from
       a nonempty compact topological space to the reals attains its minimum at
       some point in the domain.  (Contributed by Mario Carneiro,
       12-Aug-2014.) $)
    evth2 $p |- ( ph -> E. x e. X A. y e. X ( F ` x ) <_ ( F ` y ) ) $=
      ( vz cfv co cr wcel ccn cc wceq cneg cmpt cle wbr wral wrex cc0 cmin ctop
      cv ctopon ccmp cmptop syl toptopon sylib wf cioo crn cuni uniretop unieqi
      ctg eqtr4i feqmptd eqeltrrd retopon eqeltri ccnfld ctopn crest cnfldtopon
      cnf a1i eqid 0cnd cnmptc tgioo2 eqtri wss ax-resscn cnmptid cnmpt1res ctx
      subcn cnmpt12f wb df-neg renegcl syl5eqelr adantl fmptd frn cnrest2 mpbid
      syl3anc oveq2i syl6eleqr negeq syl5eqr cnmpt11 evth wa fveq2 negeqd negex
      ad2antlr breq12d ffvelrnda adantr adantlr lenegd bitr4d ralbidva rexbidva
      fvmpt ) ACUJZMGMUJZDNZUAZUBZNZBUJZYANZUCUDZCGUEZBGUFYCDNZXQDNZUCUDZCGUEZB
      GUFABCYAEFGHIJAMCXSUGXQUHOZXTEFFGPAEUIQZEGUKNQAEULQYLJEUMUNEGHUOUPADMGXSU
      BEFROZAMGPDADYMQGPDUQKDEFGPHPURUSVCNZUTFUTVAFYNIVBVDVMUNZVEKVFFPUKNZQAFYN
      YPIVGVHVNZACPYKUBZFVIVJNZPVKOZROZFFROAYRFYSROQZYRUUAQZACUGXQUHFYSYSYSPYQA
      CUGFYSPSYQYSSUKNQZAYSYSVOZVLVNZAVPVQACXQYSFYSSPFYNYTIYSUUEVRVSZUUFPSVTZAW
      AVNZACYSSUUFWBWCUHYSYSWDOYSROQAYSUUEWEVNWFAUUDYRUSPVTZUUHUUBUUCWGUUFAPPYR
      UQUUJACPYKPYRXQPQZYKPQAUUKYKXQUAZPXQWHZXQWIWJWKYRVOWLPPYRWMUNUUIPYRFYSSWN
      WPWOFYTFRUUGWQWRXQXSTYKUULXTUUMXQXSWSWTXALXBAYFYJBGAYCGQZXCZYEYICGUUOXQGQ
      ZXCZYEYHUAZYGUAZUCUDYIUUQYBUURYDUUSUCUUPYBUURTUUOMXQXTUURGYAXRXQTXSYHXRXQ
      DXDXEYAVOZYHXFXPWKUUNYDUUSTAUUPMYCXTUUSGYAXRYCTXSYGXRYCDXDXEUUTYGXFXPXGXH
      UUQYGYHUUOYGPQUUPAGPYCDYOXIXJAUUPYHPQUUNAGPXQDYOXIXKXLXMXNXOWO $.
  $}

  ${
    $d d k m r u w x y z D $.  $d d k w x y z J $.  $d d k m r u w x y z U $.
    $d r w x F $.  $d d k m r w x y z ph $.  $d d k m r u w x y z X $.
    $d x K $.
    lebnum.j $e |- J = ( MetOpen ` D ) $.
    lebnum.d $e |- ( ph -> D e. ( Met ` X ) ) $.
    lebnum.c $e |- ( ph -> J e. Comp ) $.
    lebnum.s $e |- ( ph -> U C_ J ) $.
    lebnum.u $e |- ( ph -> X = U. U ) $.
    ${
      lebnumlem1.u $e |- ( ph -> U e. Fin ) $.
      lebnumlem1.n $e |- ( ph -> -. X e. U ) $.
      lebnumlem1.f $e |- F = ( y e. X |-> sum_ k e. U
        inf ( ran ( z e. ( X \ k ) |-> ( y D z ) ) , RR* , < ) ) $.
      $( Lemma for ~ lebnum .  The function ` F ` measures the sum of all of
         the distances to escape the sets of the cover.  Since by assumption it
         is a cover, there is at least one set which covers a given point, and
         since it is open, the point is a positive distance from the edge of
         the set.  Thus, the sum is a strictly positive number.  (Contributed
         by Mario Carneiro, 14-Feb-2015.)  (Revised by AV, 30-Sep-2020.) $)
      lebnumlem1 $p |- ( ph -> F : X --> RR+ ) $=
        ( wcel ad2antrr cc0 vm vw cv cdif co cmpt crn cxr clt csu crp wa adantr
        cinf cfn cr wral wf cme cfv wss wne difssd cuni sselda elssuni syl wceq
        c0 cxmt metxmet mopnuni sseqtr4d wi wn eleq1 notbid syl5ibrcom necon2ad
        imp pssdifn0 syl2anc eqid metdsre syl3anc fmpt sylibr rsp sylc fsumrecl
        simplr wrex eleq2d biimpa eluni2 sylib 0red metdsval simprl sseldd 3syl
        wbr mpd ffvelrnd eqeltrrd cle metdsf elxrge0 simprd ccl elndif ad2antll
        cpnf cicc ccld difeq1d mopntop opncld eqeltrd cldcls neleqtrrd metdseq0
        ctop wb necon3abid mpbird ne0gt0d breqtrd adantlr mpteq1d rneqd infeq1d
        difeq2 fsumge1 ltletrd rexlimddv elrpd fmptd ) ABIECIFUCZUDZBUCZCUCZDUE
        ZUFZUGZUHUIUNZFUJZUKGAUUAIRZULZUUGUUIEUUFFAEUORZUUHOUMUUIYSERZULZUUFUPR
        ZBIUQZUUHUUMUULIUPBIUUFUFZURZUUNUULDIUSUTRZYTIVAZYTVIVBZUUPAUUQUUHUUKKS
        UULIYSVCZUULYSIVAYSIVBZUUSUULYSHVDZIUULYSHRYSUVBVAUUIEHYSAEHVAZUUHMUMVE
        YSHVFVGAIUVBVHZUUHUUKADIVJUTRZUVDAUUQUVEKDIVKZVGZDHIJVLZVGSVMUUIUUKUVAA
        UUKUVAVNUUHAUUKYSIAUUKVOYSIVHZIERZVOZPUVIUUKUVJYSIEVPVQVRVSUMVTYSIWAWBB
        CDYTUUOIUUOWCZWDWEBIUPUUFUUOUVLWFWGAUUHUUKWKZUUMBIWHWIZWJZUUIUUAUAUCZRZ
        TUUGUIXBUAEUUIUUAEVDZRZUVQUAEWLAUUHUVSAIUVRUUANWMWNUAUUAEWOWPUUIUVPERZU
        VQULZULZTCIUVPUDZUUCUFZUGZUHUIUNZUUGUWBWQUWBUUAUBICUWCUBUCUUBDUEUFUGUHU
        IUNUFZUTZUWFUPUWBUUHUWHUWFVHAUUHUWAWKZUBCUUADUWCUWGIUWGWCZWRVGZUWBIUPUU
        AUWGUWBUUQUWCIVAZUWCVIVBZIUPUWGURAUUQUUHUWAKSZUWBIUVPVCZUWBUVPIVAUVPIVB
        ZUWMUWBUVPUVBIUWBUVPHRZUVPUVBVAUWBEHUVPAUVCUUHUWAMSUUIUVTUVQWSZWTZUVPHV
        FVGUWBUUQUVEUVDUWNUVFUVHXAZVMUWBUVTUWPUWRAUVTUWPVNUUHUWAAUVTUVPIAUVTVOU
        VPIVHZUVKPUXAUVTUVJUVPIEVPVQVRVSSXCUVPIWAWBUBCDUWCUWGIUWJWDWEUWIXDZXEUU
        IUUGUPRUWAUVOUMUWBTUWHUWFUIUWBUWHUXBUWBUWHUHRZTUWHXFXBZUWBUWHTXMXNUEZRU
        XCUXDULUWBIUXEUUAUWGUWBUVEUWLIUXEUWGURAUVEUUHUWAUVGSZUWOUBCDUWCUWGIUWJX
        GWBUWIXDUWHXHWPXIUWBUWHTVBUUAUWCHXJUTUTZRZVOUWBUXGUWCUUAUVQUUAUWCRVOUUI
        UVTUUAUVPIXKXLUWBUWCHXOUTZRUXGUWCVHUWBUWCUVBUVPUDZUXIUWBIUVBUVPUWTXPUWB
        HYCRZUWQUXJUXIRUWBUVEUXKUXFDHIJXQVGUWSUVPHUVBUVBWCXRWBXSUWCHXTVGYAUWBUX
        HUWHTUWBUVEUWLUUHUWHTVHUXHYDUXFUWOUWIUBCUUADUWCUWGHIUWJJYBWEYEYFYGUWKYH
        UWBEUUFUWFFUVPAUUJUUHUWAOSUUIUUKUUMUWAUVNYIUUIUUKTUUFXFXBZUWAUULUUFUHRZ
        UXLUULUUFUXERZUXMUXLULUULUXNBIUQZUUHUXNUULIUXEUUOURZUXOUULUVEUURUXPAUVE
        UUHUUKUVGSUUTBCDYTUUOIUVLXGWBBIUXEUUFUUOUVLWFWGUVMUXNBIWHWIUUFXHWPXIYIY
        SUVPVHZUHUUEUWEUIUXQUUDUWDUXQCYTUWCUUCYSUVPIYMYJYKYLUWRYNYOYPYQQYR $.

      lebnumlem2.k $e |- K = ( topGen ` ran (,) ) $.
      $( Lemma for ~ lebnum .  As a finite sum of point-to-set distance
         functions, which are continuous by ~ metdscn , the function ` F ` is
         also continuous.  (Contributed by Mario Carneiro, 14-Feb-2015.)
         (Revised by AV, 30-Sep-2020.) $)
      lebnumlem2 $p |- ( ph -> F e. ( J Cn K ) ) $=
        ( wcel ccnfld ctopn cfv cr crest co ccn cdif cmpt crn cxr clt cinf eqid
        cv csu cxmt ctopon cme metxmet syl mopntopon wa c0 adantr difssd sselda
        wss wne toponss syl2anc wn wceq notbid syl5ibrcom necon2ad imp pssdifn0
        eleq1 metdscn2 syl3anc fsumcn syl5eqel cc cnfldtopon a1i crp lebnumlem1
        wb wf frn rpssre syl6ss ax-resscn cnrest2 mpbid ctg tgioo2 eqtri oveq2i
        cioo syl6eleqr ) AGHUAUBUCZUDUEUFZUGUFZHIUGUFAGHXCUGUFZTZGXETZAGBJECJFU
        OZUHZBUOCUODUFUIUJUKULUMZFUPUIXFRABEXKFHXCJXCUNZADJUQUCTZHJURUCTZADJUSU
        CTZXMLDJUTVAZDHJKVBZVAPAXIETZVCZXOXJJVHXJVDVIZBJXKUIZXFTAXOXRLVEXSJXIVF
        XSXIJVHZXIJVIZXTXSXNXIHTYBXSXMXNAXMXRXPVEXQVAAEHXINVGXIHJVJVKAXRYCAXRXI
        JAXRVLXIJVMZJETZVLQYDXRYEXIJEVSVNVOVPVQXIJVRVKBCDXJYAHXCJYAUNKXLVTWAWBW
        CAXCWDURUCTZGUJZUDVHUDWDVHZXGXHWIYFAXCXLWEWFAYGWGUDAJWGGWJYGWGVHABCDEFG
        HJKLMNOPQRWHJWGGWKVAWLWMYHAWNWFUDGHXCWDWOWAWPIXDHUGIXAUJWQUCXDSXCXLWRWS
        WTXB $.

      $( Lemma for ~ lebnum .  By the previous lemmas, ` F ` is continuous and
         positive on a compact set, so it has a positive minimum ` r ` .  Then
         setting ` d = r / # ( U ) ` , since for each ` u e. U ` we have
         ` ball ( x , d ) C_ u ` iff ` d <_ d ( x , X \ u ) ` , if
         ` -. ball ( x , d ) C_ u ` for all ` u ` then summing over ` u `
         yields ` sum_ u e. U d ( x , X \ u ) = F ( x ) < sum_ u e. U d = r ` ,
         in contradiction to the assumption that ` r ` is the minimum of
         ` F ` .  (Contributed by Mario Carneiro, 14-Feb-2015.)  (Revised by
         Mario Carneiro, 5-Sep-2015.)  (Revised by AV, 30-Sep-2020.) $)
      lebnumlem3 $p |- ( ph ->
        E. d e. RR+ A. x e. X E. u e. U ( x ( ball ` D ) d ) C_ u ) $=
        ( vr vw cv cbl cfv co wss wrex wral crp c0 wceq wa wne ne0ii ral0 simpr
        c1 1rp raleqdv mpbiri ralrimivw r19.2z sylancr cle wf lebnumlem1 adantr
        wbr crn frn syl cuni eqid ccmp wcel ccn lebnumlem2 cxmt metxmet mopnuni
        cme 3syl neeq1d biimpa evth2 wb raleq rexeqbi1dv mpbird wfn ffn ralbidv
        breq1 rexrn ssrexv sylc chash cdiv ad2antrr simplr eqnetrrd uni0 syl6eq
        unieq necon3i cfn hashnncl nnrpd rpdivcld ralnex clt cdif cmpt cxr cinf
        cn wn cr simprl metdsval difssd elssuni adantl sseqtr4d wi eleq1 notbid
        csu syl5ibrcom necon2ad ad3antrrr syl2anc syl3anc ffvelrnd rpred ltnled
        rpcnd imp pssdifn0 metdsre simprr sseq2 rspccva sylan cin rpxrd metdsge
        eqeltrrd syl31anc difin0ss syl5com sylbid mtod eqbrtrrd fsumlt mpteq2dv
        blssm oveq1 rneqd infeq1d sumeq2sdv sumex fvmpt cmul cc fsumconst nncnd
        nnne0d divcan2d eqtr2d 3brtr4d mpbid expr syl5bir con4d ralimdva sseq1d
        oveq2 rexbidv rspcev syl6an rexlimdva mpd pm2.61dane ) ABUEZMUEZFUFUGZU
        HZEUEZUIZEGUJZBLUKZMULUJZLUMALUMUNZUOZULUMUPUWOMULUKUWPUTULVAUQUWRUWOMU
        LUWRUWOUWNBUMUKUWNBURUWRUWNBLUMAUWQUSVBVCVDUWOMULVEVFALUMUPZUOZUCUEZUWH
        IUGZVGVKZBLUKZUCULUJZUWPUWTIVLZULUIZUXDUCUXFUJZUXEUWTLULIVHZUXGAUXIUWSA
        CDFGHIJLNOPQRSTUAVIVJZLULIVMVNUWTUXHUDUEIUGZUXBVGVKZBLUKZUDLUJZUWTUXNUX
        LBJVOZUKZUDUXOUJZUWTUDBIJKUXOUXOVPUBAJVQVRUWSPVJAIJKVSUHVRUWSACDFGHIJKL
        NOPQRSTUAUBVTVJAUWSUXOUMUPALUXOUMAFLWDUGVRZFLWAUGVRZLUXOUNZOFLWBZFJLNWC
        WEZWFWGWHUWTUXTUXNUXQWIAUXTUWSUYBVJUXMUXPUDLUXOUXLBLUXOWJWKVNWLUWTUXIIL
        WMUXHUXNWIUXJLULIWNUXDUXMUCUDLIUXAUXKUNUXCUXLBLUXAUXKUXBVGWPWOWQWEWLUXD
        UCUXFULWRWSUWTUXDUWPUCULUWTUXAULVRZUOZUXAGWTUGZXAUHZULVRZUXDUWHUYFUWJUH
        ZUWLUIZEGUJZBLUKZUWPUYDUXAUYEUWTUYCUSUYDUYEUYDUYEXSVRZGUMUPZUYDGVOZUMUP
        UYMUYDLUYNUMALUYNUNZUWSUYCRXBZAUWSUYCXCXDGUMUYNUMGUMUNUYNUMVOUMGUMXGXEX
        FXHVNZUYDGXIVRZUYLUYMWIAUYRUWSUYCSXBZGXJVNWLZXKXLZUYDUXCUYJBLUYDUWHLVRZ
        UOZUYJUXCUYJXTUYIXTZEGUKZVUCUXCXTZUYIEGXMUYDVUBVUEVUFUYDVUBVUEUOZUOZUXB
        UXAXNVKVUFVUHGDLHUEZXOZUWHDUEZFUHZXPZVLZXQXNXRZHYKZGUYFHYKZUXBUXAXNVUHG
        VUOUYFHUYDUYRVUGUYSVJZUYDUYMVUGUYQVJVUHVUIGVRZUOZUWHCLDVUJCUEZVUKFUHZXP
        ZVLZXQXNXRZXPZUGZVUOYAVUTVUBVVGVUOUNVUHVUBVUSUYDVUBVUEYBZVJZCDUWHFVUJVV
        FLVVFVPZYCVNZVUTLYAUWHVVFVUTUXRVUJLUIZVUJUMUPZLYAVVFVHUYDUXRVUGVUSAUXRU
        WSUYCOXBXBZVUTLVUIYDZVUTVUILUIVUILUPZVVMVUTVUIUYNLVUSVUIUYNUIVUHVUIGYEY
        FUYDUYOVUGVUSUYPXBYGVUHVUSVVPAVUSVVPYHUWSUYCVUGAVUSVUILAVUSXTVUILUNZLGV
        RZXTTVVQVUSVVRVUILGYIYJYLYMYNUUAVUILUUBYOCDFVUJVVFLVVJUUCYPVVIYQZUUKVUT
        UYFUYDUYGVUGVUSVUAXBZYRZVUTVVGVUOUYFXNVVKVUTVVGUYFXNVKUYFVVGVGVKZXTVUTV
        WBUYHVUIUIZVUHVUEVUSVWCXTZUYDVUBVUEUUDVUDVWDEVUIGUWLVUIUNUYIVWCUWLVUIUY
        HUUEYJUUFUUGVUTVWBVUJUYHUUHUMUNZVWCVUTUXSVVLVUBUYFXQVRZVWBVWEWIVUTUXRUX
        SVVNUYAVNZVVOVVIVUTUYFVVTUUIZCDUWHFUYFVUJVVFLVVJUUJUULVUTUYHLUIZVWEVWCV
        UTUXSVUBVWFVWIVWGVVIVWHFUWHUYFLUUTYPLVUIUYHUUMUUNUUOUUPVUTVVGUYFVVSVWAY
        SWLUUQUURVUHVUBUXBVUPUNVVHCUWHGVVEHYKVUPLIVVAUWHUNZGVVEVUOHVWJXQVVDVUNX
        NVWJVVCVUMVWJDVUJVVBVULVVAUWHVUKFUVAUUSUVBUVCUVDUAGVUOHUVEUVFVNVUHVUQUY
        EUYFUVGUHZUXAVUHUYRUYFUVHVRVUQVWKUNVURVUHUYFUYDUYGVUGVUAVJYTGUYFHUVIYOV
        UHUXAUYEVUHUXAUWTUYCVUGXCZYTVUHUYEUYDUYLVUGUYTVJZUVJVUHUYEVWMUVKUVLUVMU
        VNVUHUXBUXAVUHUXBVUHLULUWHIUWTUXIUYCVUGUXJXBVVHYQYRVUHUXAVWLYRYSUVOUVPU
        VQUVRUVSUWOUYKMUYFULUWIUYFUNZUWNUYJBLVWNUWMUYIEGVWNUWKUYHUWLUWIUYFUWHUW
        JUWAUVTUWBWOUWCUWDUWEUWFUWG $.
    $}

    $( The Lebesgue number lemma, or Lebesgue covering lemma.  If ` X ` is a
       compact metric space and ` U ` is an open cover of ` X ` , then there
       exists a positive real number ` d ` such that every ball of size ` d `
       (and every subset of a ball of size ` d ` , including every subset of
       diameter less than ` d ` ) is a subset of some member of the cover.
       (Contributed by Mario Carneiro, 14-Feb-2015.)  (Proof shortened by Mario
       Carneiro, 5-Sep-2015.)  (Proof shortened by AV, 30-Sep-2020.) $)
    lebnum $p |- ( ph ->
      E. d e. RR+ A. x e. X E. u e. U ( x ( ball ` D ) d ) C_ u ) $=
      ( cv wss wrex crp cfn wcel c1 vw vy vz vk cuni wceq cbl cfv wral cpw ccmp
      co cin cxmt cme metxmet syl mopnuni eqtr3d eqid cmpcov syl3anc 1rp simprl
      inss1 sseldi elpwid ad2antrr simplr sseldd cxr ad3antrrr simpr rpxr blssm
      wa sseq2 rspcev syl2anc ralrimiva oveq2 sseq1d rexbidv ralbidv sylancr wn
      mp1i cdif cmpt crn clt cinf csu cioo ctg adantr sstrd simplrr eqtrd inss2
      lebnumlem3 wi ssrexv ralimdv reximdv mpd pm2.61dan rexlimddv ) AFUEZUANZU
      EZUFZBNZHNZDUGUHZULZCNZOZCEPZBGUIZHQPZUAEUJZRUMZAFUKSZEFOZXIEUEZUFXLUAYCP
      KLAGXIYFADGUNUHSZGXIUFZADGUOUHSZYGJDGUPUQZDFGIURUQZMUSEFXIUAXIUTVAVBAXJYC
      SZXLVPZVPZGXJSZYAYNYOVPZTQSZXMTXOULZXQOZCEPZBGUIZYAVCYPYTBGYPXMGSZVPZGESY
      RGOZYTUUCXJEGYNXJEOZYOUUBYNXJEYNYCYBXJYBRVEAYLXLVDZVFVGZVHYNYOUUBVIVJUUCY
      GUUBTVKSZUUDAYGYMYOUUBYJVLYPUUBVMYQUUHUUCVCTVNWGDXMTGVOVBYSUUDCGEXQGYRVQV
      RVSVTXTUUAHTQXNTUFZXSYTBGUUIXRYSCEUUIXPYRXQXNTXMXOWAWBWCWDVRWEYNYOWFZVPZX
      RCXJPZBGUIZHQPYAUUKBUBUCCDXJUDUBGXJUCGUDNWHUBNUCNDULWIWJVKWKWLUDWMWIZFWNW
      JWOUHZGHIAYIYMUUJJVHAYDYMUUJKVHUUKXJEFYNUUEUUJUUGWPZAYEYMUUJLVHWQUUKGXIXK
      AYHYMUUJYKVHAYLXLUUJWRWSYNXJRSUUJYNYCRXJYBRWTUUFVFWPYNUUJVMUUNUTUUOUTXAUU
      KUUMXTHQUUKUULXSBGUUKUUEUULXSXBUUPXRCXJEXCUQXDXEXFXGXH $.
  $}

  ${
    $d d r u x y z D $.  $d r u x ph $.  $d d r u x U $.  $d d r u x y z X $.
    xlebnum.j $e |- J = ( MetOpen ` D ) $.
    xlebnum.d $e |- ( ph -> D e. ( *Met ` X ) ) $.
    xlebnum.c $e |- ( ph -> J e. Comp ) $.
    xlebnum.s $e |- ( ph -> U C_ J ) $.
    xlebnum.u $e |- ( ph -> X = U. U ) $.
    $( Generalize ~ lebnum to extended metrics.  (Contributed by Mario
       Carneiro, 5-Sep-2015.) $)
    xlebnum $p |- ( ph ->
      E. d e. RR+ A. x e. X E. u e. U ( x ( ball ` D ) d ) C_ u ) $=
      ( vy vz cv co c1 crp wcel vr cle wbr cif cmpt2 cbl cfv wss wrex wral eqid
      cmopn cxmt cme 1rp stdbdmet sylancl ccmp cxr cc0 wceq rpxr mp1i stdbdmopn
      clt 0lt1 syl3anc eqeltrrd sseqtrd lebnum wa simpr ifcl wi ad2antrr adantr
      a1i syl cr rpre ad2antlr 1re min2 stdbdbl syl33anc metxmet min1 syl221anc
      ssbl eqsstr3d sstr2 reximdv ralimdva sseq1d rexbidv ralbidv rspcev syl6an
      oveq2 rexlimdva mpd ) ABPZUAPZNOGGNPOPDQZRUBUCXDRUDUEZUFUGZQZCPZUHZCEUIZB
      GUJZUASUIXBHPZDUFUGZQZXHUHZCEUIZBGUJZHSUIZABCXEEXEULUGZGUAXSUKADGUMUGZTZR
      STZXEGUNUGTZJUONODXERGXEUKZUPUQZAFXSURAYARUSTZUTRVEUCZFXSVAJYBYFAUORVBZVC
      YGAVFVQNODXERFGYDIVDVGZKVHAEFXSLYIVIMVJAXKXRUASAXCSTZVKZXCRUBUCZXCRUDZSTZ
      XKXBYMXMQZXHUHZCEUIZBGUJZXRYKYJYBYNAYJVLUOYLXCRSVMUQZYKXJYQBGYKXBGTZVKZXI
      YPCEUUAYOXGUHXIYPVNUUAYOXBYMXFQZXGUUAYAYFYGYTYMUSTZYMRUBUCZUUBYOVAAYAYJYT
      JVOYBYFUUAUOYHVCYGUUAVFVQYKYTVLZUUAYNUUCYKYNYTYSVPYMVBVRZUUAXCVSTZRVSTZUU
      DYJUUGAYTXCVTWAZWBXCRWCUQNODXEXBRYMGYDWDWEUUAXEXTTZYTUUCXCUSTZYMXCUBUCZUU
      BXGUHUUAYCUUJAYCYJYTYEVOXEGWFVRUUEUUFYJUUKAYTXCVBWAUUAUUGUUHUULUUIWBXCRWG
      UQXEXBYMXCGWIWHWJYOXGXHWKVRWLWMXQYRHYMSXLYMVAZXPYQBGUUMXOYPCEUUMXNYOXHXLY
      MXBXMWSWNWOWPWQWRWTXA $.
  $}

  ${
    $d k n r u x U $.
    $( Specialize the Lebesgue number lemma ~ lebnum to the unit interval.
       (Contributed by Mario Carneiro, 14-Feb-2015.) $)
    lebnumii $p |- ( ( U C_ II /\ ( 0 [,] 1 ) = U. U ) -> E. n e. NN
    A. k e. ( 1 ... n ) E. u e. U ( ( ( k - 1 ) / n ) [,] ( k / n ) ) C_ u ) $=
      ( wss cc0 c1 co wceq cv cmin cfv wrex cdiv wcel cc cr cle wbr clt vx cicc
      vr cii cuni wa cabs ccom cxp cres cbl crp cfz cn df-ii cme cnmet unitssre
      wral ax-resscn sstri metres2 mp2an a1i iicmp simpl simpr lebnum cfl caddc
      cn0 rpreccl adantl rpred rpge0d flge0nn0 syl2anc nn0p1nn syl elfznn nnrpd
      ccmp adantr rpdivcld cmul elfzle2 nnred recnd mulid1d breqtrrd 1re nngt0d
      wi wb ledivmul syl112anc mpbird 0re elicc2i syl3anbrc oveq1 rexbidv rspcv
      sseq1d cioo cin cxr simplr resubcld rexrd readdcld nn0red nndivred nnne0d
      nnm1nn0 ax-1cn nncan sylancl oveq1d eqtr3d rprecred flltp1 rpgt0 ad2antlr
      divsubdird ltdiv23 mpbid eqbrtrd ltsub23d ltaddrpd iccssioo syl22anc 0red
      syl122anc nn0ge0d divge0 iccss ssind cxmt oveq2 eqid sseqin2 mpbi resabs1
      rexmet syl6eleqr xpss12 ax-mp eqcomi blres syl3anc bl2ioo ineq1d sseqtr4d
      rpxr eqtrd sstr2 reximdv syld ralrimdva raleqbidv rspcev syl6an rexlimdva
      oveq12d mpd ) BUDEZFGUBHZBUEIZUFZUAJZUCJZUGKUHZUVHUVHUIZUJZUKLZHZAJZEZABM
      ZUAUVHUSZUCULMCJZGKHZDJZNHZUWBUWDNHZUBHZUVREZABMZCGUWDUMHZUSZDUNMZUVJUAAU
      VOBUDUVHUCUOUVOUVHUPLOZUVJUVMPUPLOUVHPEUWMUQUVHQPURUTVAUVMUVHPVBVCVDUDWBO
      UVJVEVDUVGUVIVFUVGUVIVGVHUVJUWAUWLUCULUVJUVLULOZUFZGUVLNHZVILZGVJHZUNOZUW
      AUWCUWRNHZUWBUWRNHZUBHZUVREZABMZCGUWRUMHZUSZUWLUWOUWQVKOZUWSUWOUWPQOZFUWP
      RSUXGUWOUWPUWNUWPULOUVJUVLVLVMZVNUWOUWPUXIVOUWPVPVQUWQVRVSZUWOUWAUXDCUXEU
      WOUWBUXEOZUFZUWAUXAUVLUVPHZUVREZABMZUXDUXLUXAUVHOZUWAUXOWMUXLUXAQOZFUXARS
      UXAGRSZUXPUXLUXAUXLUWBUWRUXLUWBUXKUWBUNOZUWOUWBUWRVTVMZWAUXLUWRUWOUWSUXKU
      XJWCZWAWDZVNZUXLUXAUYBVOUXLUXRUWBUWRGWEHZRSZUXLUWBUWRUYDRUXKUWBUWRRSUWOUW
      BGUWRWFVMUXLUWRUXLUWRUXLUWRUYAWGZWHZWIWJUXLUWBQOGQOZUWRQOZFUWRTSZUXRUYEWN
      UXLUWBUXTWGZUYHUXLWKVDZUYFUXLUWRUYAWLZUWBGUWRWOWPWQZFGUXAWRWKWSWTZUVTUXOU
      AUXAUVHUVKUXAIZUVSUXNABUYPUVQUXMUVRUVKUXAUVLUVPXAXDXBXCVSUXLUXNUXCABUXLUX
      BUXMEUXNUXCWMUXLUXBUXAUVLKHZUXAUVLVJHZXEHZUVHXFZUXMUXLUXBUYSUVHUXLUYQXGOU
      YRXGOUYQUWTTSUXAUYRTSUXBUYSEUXLUYQUXLUXAUVLUYCUXLUVLUVJUWNUXKXHZVNZXIXJUX
      LUYRUXLUXAUVLUYCVUBXKXJUXLUXAUWTUVLUYCUXLUWCUWRUXLUWCUXLUXSUWCVKOUXTUWBXO
      VSZXLZUYAXMVUBUXLUXAUWTKHZGUWRNHZUVLTUXLUWBUWCKHZUWRNHVUEVUFUXLUWBUWCUWRU
      XLUWBUYKWHZUXLUWCVUDWHUYGUXLUWRUYAXNYEUXLVUGGUWRNUXLUWBPOGPOVUGGIVUHXPUWB
      GXQXRXSXTUXLUWPUWRTSZVUFUVLTSZUXLUXHVUIUXLUVLVUAYAUWPYBVSUXLUYHUVLQOZFUVL
      TSZUYIUYJVUIVUJWNUYLVUBUWNVULUVJUXKUVLYCYDUYFUYMGUVLUWRYFYNYGYHYIUXLUXAUV
      LUYCVUAYJUYQUYRUWTUXAYKYLUXLFQOUYHFUWTRSZUXRUXBUVHEUXLYMUYLUXLUWCQOFUWCRS
      UYIUYJVUMVUDUXLUWCVUCYOUYFUYMUWCUWRYPYLUYNFGUWTUXAYQYLYRUXLUXMUXAUVLUVMQQ
      UIZUJZUKLHZUVHXFZUYTUXLVUOQYSLOZUXAQUVHXFZOUVLXGOZUXMVUQIVURUXLVUOVUOUUAZ
      UUEVDUXLUXAUVHVUSUYOUVHQEZVUSUVHIURUVHQUUBUUCUUFUWNVUTUVJUXKUVLUUOYDUVOVU
      OUXAUVLQUVHVUOUVNUJZUVOUVNVUNEZVVCUVOIVVBVVBVVDURURUVHQUVHQUUGVCUVMUVNVUN
      UUDUUHUUIUUJUUKUXLVUPUYSUVHUXLUXQVUKVUPUYSIUYCVUBUXAUVLVUOVVAUULVQUUMUUPU
      UNUXBUXMUVRUUQVSUURUUSUUTUWKUXFDUWRUNUWDUWRIZUWIUXDCUWJUXEUWDUWRGUMYTVVEU
      WHUXCABVVEUWGUXBUVRVVEUWEUWTUWFUXAUBUWDUWRUWCNYTUWDUWRUWBNYTUVEXDXBUVAUVB
      UVCUVDUVF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Path homotopy
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Htpy $.
  $c PHtpy $.
  $c ~=ph $.

  $( Extend class notation with the class of homotopies between two continuous
     functions. $)
  chtpy $a class Htpy $.

  $( Extend class notation with the class of path homotopies between two
     continuous functions. $)
  cphtpy $a class PHtpy $.

  $( Extend class notation with the path homotopy relation. $)
  cphtpc $a class ~=ph $.

  ${
    $d f g h s x y $.
    $( Define the function which takes topological spaces ` X , Y ` and two
       continuous functions ` F , G : X --> Y ` and returns the class of
       homotopies from ` F ` to ` G ` .  (Contributed by Mario Carneiro,
       22-Feb-2015.) $)
    df-htpy $a |- Htpy = ( x e. Top , y e. Top |->
        ( f e. ( x Cn y ) , g e. ( x Cn y ) |->
            { h e. ( ( x tX II ) Cn y ) | A. s e. U. x
              ( ( s h 0 ) = ( f ` s ) /\ ( s h 1 ) = ( g ` s ) ) } ) ) $.

    $( Define the class of path homotopies between two paths
       ` F , G : II --> X ` ; these are homotopies (in the sense of ~ df-htpy )
       which also preserve both endpoints of the paths throughout the homotopy.
       Definition of [Hatcher] p. 25.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    df-phtpy $a |- PHtpy = ( x e. Top |->
        ( f e. ( II Cn x ) , g e. ( II Cn x ) |->
            { h e. ( f ( II Htpy x ) g ) | A. s e. ( 0 [,] 1 )
              ( ( 0 h s ) = ( f ` 0 ) /\ ( 1 h s ) = ( f ` 1 ) ) } ) ) $.
  $}

  ${
    $d s A $.  $d f g h s t F $.  $d f g h s t G $.  $d h s x y H $.  $d t M $.
    $d f g h j k s t x y z J $.  $d f g h j k s t x y z ph $.
    $d f g h j k x y K $.  $d f g h j k s t x y z X $.
    ishtpy.1 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    ishtpy.3 $e |- ( ph -> F e. ( J Cn K ) ) $.
    ishtpy.4 $e |- ( ph -> G e. ( J Cn K ) ) $.
    $( Membership in the class of homotopies between two continuous functions.
       (Contributed by Mario Carneiro, 22-Feb-2015.)  (Revised by Mario
       Carneiro, 5-Sep-2015.) $)
    ishtpy $p |- ( ph -> ( H e. ( F ( J Htpy K ) G ) <->
                    ( H e. ( ( J tX II ) Cn K ) /\ A. s e. X
                    ( ( s H 0 ) = ( F ` s ) /\ ( s H 1 ) = ( G ` s ) ) ) ) ) $=
      ( vh vf vg co wcel wceq wa ccn cvv vj vk chtpy cv cc0 cfv c1 wral cii ctx
      crab ctop cuni cmpt2 df-htpy simprl simprr oveq12d oveq1d unieqd toponuni
      a1i ctopon syl adantr eqtr4d raleqdv rabeqbidv mpt2eq123dv cntop2 cxp cpw
      topontop wf ssrab2 ovex elpw2 mpbir rgen2w eqid fmpt2 mpbi xpex pwex fex2
      wss mp3an ovmpt2d fveq1 eqeq2d bi2anan9 adantl ralbidv rabbidv rabex oveq
      wb eleq2d eqeq1d anbi12d elrab syl6bb ) ADBCEFUCOZOZPDHUDZUELUDZOZXEBUFZQ
      ZXEUGXFOZXECUFZQZRZHGUHZLEUIUJOZFSOZUKZPDXPPXEUEDOZXHQZXEUGDOZXKQZRZHGUHZ
      RAXDXQDAMNBCEFSOZYDXGXEMUDZUFZQZXJXENUDZUFZQZRZHGUHZLXPUKZXQXCTAUAUBEFULU
      LMNUAUDZUBUDZSOZYPYKHYNUMZUHZLYNUIUJOZYOSOZUKZUNZMNYDYDYMUNZUCTUCUAUBULUL
      UUBUNQAUAUBMNLHUOVBAYNEQZYOFQZRZRZMNYPYPUUAYDYDYMUUGYNEYOFSAUUDUUEUPZAUUD
      UUEUQZURZUUJUUGYRYLLYTXPUUGYSXOYOFSUUGYNEUIUJUUHUSUUIURUUGYKHYQGUUGYQEUMZ
      GUUGYNEUUHUTAGUUKQZUUFAEGVCUFPZUULIGEVAVDVEVFVGVHVIAUUMEULPIGEVMVDABYDPFU
      LPJBEFVJVDUUCTPZAYDYDVKZXPVLZUUCVNZUUOTPUUPTPUUNYMUUPPZNYDUHMYDUHUUQUURMN
      YDYDUURYMXPWFYLLXPVOYMXPXOFSVPZVQVRVSMNYDYDYMUUPUUCUUCVTWAWBYDYDEFSVPZUUT
      WCXPUUSWDUUOUUPUUCTTWEWGVBWHAYEBQZYHCQZRZRZYLXNLXPUVDYKXMHGUVCYKXMWQAUVAY
      GXIUVBYJXLUVAYFXHXGXEYEBWIWJUVBYIXKXJXEYHCWIWJWKWLWMWNJKXQTPAXNLXPUUSWOVB
      WHWRXNYCLDXPXFDQZXMYBHGUVEXIXSXLYAUVEXGXRXHXEUEXFDWPWSUVEXJXTXKXEUGXFDWPW
      SWTWMXAXB $.

    $( A homotopy is a continuous function.  (Contributed by Mario Carneiro,
       22-Feb-2015.) $)
    htpycn $p |- ( ph -> ( F ( J Htpy K ) G ) C_ ( ( J tX II ) Cn K ) ) $=
      ( vh vs chtpy co cii ctx cv wcel cfv wceq wa ccn cc0 c1 wral ishtpy simpl
      syl6bi ssrdv ) AJBCDELMMZDNOMEUAMZAJPZUIQUKUJQZKPZUBUKMUMBRSUMUCUKMUMCRST
      KFUDZTULABCUKDEFKGHIUEULUNUFUGUH $.

    ${
      htpyi.1 $e |- ( ph -> H e. ( F ( J Htpy K ) G ) ) $.
      $( A homotopy evaluated at its endpoints.  (Contributed by Mario
         Carneiro, 22-Feb-2015.) $)
      htpyi $p |- ( ( ph /\ A e. X ) ->
        ( ( A H 0 ) = ( F ` A ) /\ ( A H 1 ) = ( G ` A ) ) ) $=
        ( vs cc0 co cfv wceq c1 wa wcel cv wral cii ctx ccn chtpy ishtpy simprd
        mpbid oveq1 fveq2 eqeq12d anbi12d rspccva sylan ) AMUAZNEOZUPCPZQZUPREO
        ZUPDPZQZSZMHUBZBHTBNEOZBCPZQZBREOZBDPZQZSZAEFUCUDOGUEOTZVDAECDFGUFOOTVL
        VDSLACDEFGHMIJKUGUIUHVCVKMBHUPBQZUSVGVBVJVMUQVEURVFUPBNEUJUPBCUKULVMUTV
        HVAVIUPBREUJUPBDUKULUMUNUO $.
    $}

    ${
      ishtpyd.1 $e |- ( ph -> H e. ( ( J tX II ) Cn K ) ) $.
      ishtpyd.2 $e |- ( ( ph /\ s e. X ) -> ( s H 0 ) = ( F ` s ) ) $.
      ishtpyd.3 $e |- ( ( ph /\ s e. X ) -> ( s H 1 ) = ( G ` s ) ) $.
      $( Deduction for membership in the class of homotopies.  (Contributed by
         Mario Carneiro, 22-Feb-2015.) $)
      ishtpyd $p |- ( ph -> H e. ( F ( J Htpy K ) G ) ) $=
        ( chtpy co wcel cfv wceq wa cii ctx ccn cv cc0 c1 wral ralrimiva ishtpy
        jca mpbir2and ) ADBCEFOPPQDEUAUBPFUCPQHUDZUEDPULBRSZULUFDPULCRSZTZHGUGL
        AUOHGAULGQTUMUNMNUJUHABCDEFGHIJKUIUK $.
    $}

    htpycom.6 $e |- M = ( x e. X , y e. ( 0 [,] 1 ) |->
                           ( x H ( 1 - y ) ) ) $.
    htpycom.7 $e |- ( ph -> H e. ( F ( J Htpy K ) G ) ) $.
    $( Given a homotopy from ` F ` to ` G ` , produce a homotopy from ` G ` to
       ` F ` .  (Contributed by Mario Carneiro, 23-Feb-2015.) $)
    htpycom $p |- ( ph -> M e. ( G ( J Htpy K ) F ) ) $=
      ( cc0 c1 co cmin cii vt vz cicc cmpt2 ctx ccn ctopon cfv wcel iitopon a1i
      cnmpt1st cnmpt2nd cmpt iirevcn oveq2 cnmpt21 chtpy htpycn sseldd cnmpt22f
      cv syl5eqel wa wceq simpr 0elunit oveq1 syl6eq oveq2d ovex ovmpt2 sylancl
      1m0e1 htpyi simprd eqtrd 1elunit 1m1e0 simpld ishtpyd ) AEDIGHJUAKMLAIBCJ
      PQUCRZBVBZQCVBZSRZFRZUDGTUERHUFRZNABCWCWEFGTGTHJWBKTWBUGUHUIAUJUKZABCGTJW
      BKWHULABCUBWDQUBVBZSRZWEGTTTJWBWBKWHABCGTJWBKWHUMWHUBWBWJUNTTUFRUIAUBUOUK
      WIWDQSUPUQADEGHURRRWGFADEGHJKLMUSOUTVAVCAUAVBZJUIZVDZWKPIRZWKQFRZWKEUHZWM
      WLPWBUIWNWOVEAWLVFZVGBCWKPJWBWFWOIWKWEFRZWCWKWEFVHZWDPVEZWEQWKFWTWEQPSRQW
      DPQSUPVNVIVJNWKQFVKVLVMWMWKPFRZWKDUHZVEZWOWPVEZAWKDEFGHJKLMOVOZVPVQWMWKQI
      RZXAXBWMWLQWBUIXFXAVEWQVRBCWKQJWBWFXAIWRWSWDQVEZWEPWKFXGWEQQSRPWDQQSUPVSV
      IVJNWKPFVKVLVMWMXCXDXEVTVQWA $.
  $}

  ${
    $d s x y F $.  $d s x y J $.  $d x y K $.  $d s x y ph $.  $d s x y X $.
    $d s G $.
    htpyid.1 $e |- G = ( x e. X , y e. ( 0 [,] 1 ) |-> ( F ` x ) ) $.
    htpyid.2 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    htpyid.4 $e |- ( ph -> F e. ( J Cn K ) ) $.
    $( A homotopy from a function to itself.  (Contributed by Mario Carneiro,
       23-Feb-2015.) $)
    htpyid $p |- ( ph -> G e. ( F ( J Htpy K ) F ) ) $=
      ( vs cc0 c1 co cv cfv cii wcel wceq cicc cmpt2 ctx ccn ctopon iitopon a1i
      cnmpt1st cnmpt21f syl5eqel simpr 0elunit fveq2 eqidd fvex sylancl 1elunit
      wa ovmpt2 ishtpyd ) ADDEFGHLJKKAEBCHMNUAOZBPZDQZUBFRUCOGUDOIABCVBDFRFGHVA
      JRVAUEQSAUFUGZABCFRHVAJVDUHKUIUJALPZHSZURZVFMVASVEMEOVEDQZTAVFUKZULBCVEMH
      VAVCVHEVHVBVEDUMZCPZMTVHUNIVEDUOZUSUPVGVFNVASVENEOVHTVIUQBCVENHVAVCVHEVHV
      JVKNTVHUNIVLUSUPUT $.
  $}

  ${
    $d s F $.  $d s G $.  $d x y H $.  $d x y K $.  $d x y L $.  $d s x y ph $.
    $d s x y J $.  $d s N $.  $d s x y P $.  $d s x y X $.
    htpyco1.n $e |- N = ( x e. X , y e. ( 0 [,] 1 ) |-> ( ( P ` x ) H y ) ) $.
    htpyco1.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    htpyco1.p $e |- ( ph -> P e. ( J Cn K ) ) $.
    htpyco1.f $e |- ( ph -> F e. ( K Cn L ) ) $.
    htpyco1.g $e |- ( ph -> G e. ( K Cn L ) ) $.
    htpyco1.h $e |- ( ph -> H e. ( F ( K Htpy L ) G ) ) $.
    $( Compose a homotopy with a continuous map.  (Contributed by Mario
       Carneiro, 10-Mar-2015.) $)
    htpyco1 $p |- ( ph -> N e. ( ( F o. P ) ( J Htpy L ) ( G o. P ) ) ) $=
      ( co wcel vs ccom ccn cnco syl2anc cc0 c1 cv cfv cmpt2 cii ctopon iitopon
      cicc ctx a1i cnmpt1st cnmpt21f cnmpt2nd chtpy cuni ctop syl eqid toptopon
      cntop2 sylib htpycn sseldd cnmpt22f syl5eqel wa wceq wf syl3anc ffvelrnda
      cnf2 htpyi syldan simpld simpr 0elunit fveq2 id oveqan12d ovmpt2a sylancl
      ovex fvco3 sylan 3eqtr4d simprd 1elunit ishtpyd ) AEDUBZFDUBZKHJLUANADHIU
      CSTZEIJUCSZTWOHJUCSZTOPDEHIJUDUEAWQFWRTWPWSTOQDFHIJUDUEAKBCLUFUGUNSZBUHZD
      UIZCUHZGSZUJHUKUOSJUCSMABCXBXCGHUKIUKJLWTNUKWTULUITAUMUPZABCXADHUKHILWTNX
      EABCHUKLWTNXEUQOURABCHUKLWTNXEUSAEFIJUTSSIUKUOSJUCSGAEFIJIVAZAIVBTZIXFULU
      ITZAWQXGODHIVFVCIXFXFVDVEVGZPQVHRVIVJVKAUAUHZLTZVLZXJDUIZUFGSZXMEUIZXJUFK
      SZXJWOUIZXLXNXOVMZXMUGGSZXMFUIZVMZAXKXMXFTXRYAVLALXFXJDAHLULUITXHWQLXFDVN
      ZNXIODHILXFVQVOZVPAXMEFGIJXFXIPQRVRVSZVTXLXKUFWTTXPXNVMAXKWAZWBBCXJUFLWTX
      DXNKXAXJVMZXCUFVMZXBXMXCUFGXAXJDWCZYGWDWEMXMUFGWHWFWGAYBXKXQXOVMYCLXFXJED
      WIWJWKXLXSXTXJUGKSZXJWPUIZXLXRYAYDWLXLXKUGWTTYIXSVMYEWMBCXJUGLWTXDXSKYFXC
      UGVMZXBXMXCUGGYHYKWDWEMXMUGGWHWFWGAYBXKYJXTVMYCLXFXJFDWIWJWKWN $.
  $}

  ${
    $d s F $.  $d s G $.  $d s H $.  $d s J $.  $d s P $.  $d s ph $.
    htpyco2.f $e |- ( ph -> F e. ( J Cn K ) ) $.
    htpyco2.g $e |- ( ph -> G e. ( J Cn K ) ) $.
    htpyco2.p $e |- ( ph -> P e. ( K Cn L ) ) $.
    htpyco2.h $e |- ( ph -> H e. ( F ( J Htpy K ) G ) ) $.
    $( Compose a homotopy with a continuous map.  (Contributed by Mario
       Carneiro, 10-Mar-2015.) $)
    htpyco2 $p |- ( ph ->
      ( P o. H ) e. ( ( P o. F ) ( J Htpy L ) ( P o. G ) ) ) $=
      ( wcel ctopon cfv ccn co cc0 wceq c1 ccom cuni ctop cntop1 syl eqid sylib
      vs toptopon syl2anc cii ctx chtpy htpycn sseldd cv wa htpyi simpld fveq2d
      cnco cop cicc cxp simpr 0elunit opelxpi sylancl wf iitopon txtopon cntop2
      cnf2 syl3anc fvco3 sylan syldan fveq2i 3eqtr4g cnf 3eqtr4d simprd 1elunit
      df-ov ishtpyd ) ABCUAZBDUAZBEUAZFHFUBZUHAFUCMZFWINOMZACFGPQZMZWJICFGUDUEF
      WIWIUFZUIUGZAWMBGHPQMZWFFHPQZMIKCBFGHVAUJADWLMZWPWGWQMJKDBFGHVAUJAEFUKULQ
      ZGPQZMZWPWHWSHPQMACDFGUMQQWTEACDFGWIWOIJUNLUOZKEBWSGHVAUJAUHUPZWIMZUQZXCR
      EQZBOZXCCOZBOZXCRWHQZXCWFOZXEXFXHBXEXFXHSZXCTEQZXCDOZSZAXCCDEFGWIWOIJLURZ
      USUTXEXCRVBZWHOZXQEOZBOZXJXGAXDXQWIRTVCQZVDZMZXRXTSZXEXDRYAMYCAXDVEZVFXCR
      WIYAVGVHAYBGUBZEVIZYCYDAWSYBNOMZGYFNOMZXAYGAWKUKYANOMYHWOVJFUKWIYAVKVHAGU
      CMZYIAWMYJICFGVLUEGYFYFUFZUIUGXBEWSGYBYFVMVNZYBYFXQBEVOVPVQXCRWHWDXFXSBXC
      REWDVRVSAWIYFCVIZXDXKXISAWMYMICFGWIYFWNYKVTUEWIYFXCBCVOVPWAXEXMBOZXNBOZXC
      TWHQZXCWGOZXEXMXNBXEXLXOXPWBUTXEXCTVBZWHOZYREOZBOZYPYNAXDYRYBMZYSUUASZXEX
      DTYAMUUBYEWCXCTWIYAVGVHAYGUUBUUCYLYBYFYRBEVOVPVQXCTWHWDXMYTBXCTEWDVRVSAWI
      YFDVIZXDYQYOSAWRUUDJDFGWIYFWNYKVTUEWIYFXCBDVOVPWAWE $.
  $}

  ${
    $d s x y z J $.  $d x y K $.  $d s x y L $.  $d s x y M $.  $d s x y z X $.
    $d s F $.  $d s H $.  $d s N $.  $d s x y z ph $.
    htpycc.1 $e |- N = ( x e. X , y e. ( 0 [,] 1 ) |->
   if ( y <_ ( 1 / 2 ) , ( x L ( 2 x. y ) ) , ( x M ( ( 2 x. y ) - 1 ) ) ) ) $.
    htpycc.2 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    htpycc.4 $e |- ( ph -> F e. ( J Cn K ) ) $.
    htpycc.5 $e |- ( ph -> G e. ( J Cn K ) ) $.
    htpycc.6 $e |- ( ph -> H e. ( J Cn K ) ) $.
    htpycc.7 $e |- ( ph -> L e. ( F ( J Htpy K ) G ) ) $.
    htpycc.8 $e |- ( ph -> M e. ( G ( J Htpy K ) H ) ) $.
    $( Concatenate two homotopies.  (Contributed by Jeff Madsen, 2-Sep-2009.)
       (Revised by Mario Carneiro, 23-Feb-2015.) $)
    htpycc $p |- ( ph -> N e. ( F ( J Htpy K ) H ) ) $=
      ( c1 vs vz cc0 cicc co cv c2 cdiv cle wbr cmul cmin cif cmpt2 cii ctx ccn
      ctopon cfv wcel iitopon a1i cioo crn crest eqid dfii2 0red 1red cr halfre
      ctg 0re halfgt0 ltleii halflt1 elicc2i mpbir3an wceq wa wral htpyi simprd
      1re simpld eqtr4d ralrimiva weq oveq1 eqeq12d rspccva sylan simprl oveq2d
      adantrl 2cn 2ne0 recidi syl6eq oveq1d 1m1e0 3eqtr4d retopon iccssre mp2an
      wss resttopon cnmpt2nd cnmpt1st cmpt iihalf1cn oveq2 cnmpt21 chtpy htpycn
      sseldd cnmpt22f cnmpt2pc cnmptcom syl5eqel simpr 0elunit syl6eqbr iftrued
      iihalf2cn simpl 2t0e0 oveq12d eqtrd ovmpt2a sylancl 1elunit clt wn ltnlei
      ovex mpbi breq1d mtbiri iffalsed 2t1e2 2m1e1 ishtpyd ) ADFKGHLUANOQAKBCLU
      CTUDUEZCUFZTUGUHUEZUIUJZBUFZUGUUEUKUEZIUEZUUHUUITULUEZJUEZUMZUNGUOUPUEHUQ
      UEZMACBUUMUOGHUUDLUOUUDURUSUTAVAVBNACBUCUUFTUUJVCVDVLUSZUULGHUUOUCUUFUDUE
      ZVEUEZUUOUUFTUDUEZVEUEZUOLUUOVFUUQVFZUUSVFZVGAVHAVIUUFUUDUTZAUVBUUFVJUTZU
      CUUFUIUJUUFTUIUJVKUCUUFVMVKVNVOZUUFTVKWDVPVOUCTUUFVMWDVQVRVBNAUUEUUFVSZUU
      HLUTZVTVTZUUHTIUEZUUHUCJUEZUUJUULAUVFUVHUVIVSZUVEAUAUFZTIUEZUVKUCJUEZVSZU
      ALWAUVFUVJAUVNUALAUVKLUTZVTZUVLUVKEUSZUVMUVPUVKUCIUEZUVKDUSZVSZUVLUVQVSZA
      UVKDEIGHLNOPRWBZWCUVPUVMUVQVSZUVKTJUEZUVKFUSZVSZAUVKEFJGHLNPQSWBZWEWFWGUV
      NUVJUAUUHLUABWHUVLUVHUVMUVIUVKUUHTIWIUVKUUHUCJWIWJWKWLWOUVGUUITUUHIUVGUUI
      UGUUFUKUETUVGUUEUUFUGUKAUVEUVFWMWNUGWPWQWRWSZWNUVGUUKUCUUHJUVGUUKTTULUEUC
      UVGUUITTULUWHWTXAWSWNXBACBUUHUUIIUUQGGUOHUUPLUUQUUPURUSUTZAUUOVJURUSUTZUU
      PVJXFZUWIXCUCVJUTUVCUWKVMVKUCUUFXDXEUUPUUOVJXGXEVBZNACBUUQGUUPLUWLNXHACBU
      BUUEUGUBUFZUKUEZUUIUUQGUUQUOUUPLUUPUWLNACBUUQGUUPLUWLNXIUWLUBUUPUWNXJUUQU
      OUQUEUTAUBUUQUUTXKVBUWMUUEUGUKXLZXMADEGHXNUEZUEUUNIADEGHLNOPXORXPXQACBUUH
      UUKJUUSGGUOHUURLUUSUURURUSUTZAUWJUURVJXFZUWQXCUVCTVJUTUWRVKWDUUFTXDXEUURU
      UOVJXGXEVBZNACBUUSGUURLUWSNXHACBUBUUEUWNTULUEZUUKUUSGUUSUOUURLUURUWSNACBU
      USGUURLUWSNXIUWSUBUURUWTXJUUSUOUQUEUTAUBUUSUVAYEVBUBCWHUWNUUITULUWOWTXMAE
      FUWPUEUUNJAEFGHLNPQXOSXPXQXRXSXTUVPUVKUCKUEZUVRUVSUVPUVOUCUUDUTUXAUVRVSAU
      VOYAZYBBCUVKUCLUUDUUMUVRKBUAWHZUUEUCVSZVTZUUMUUJUVRUXEUUGUUJUULUXEUUEUCUU
      FUIUXCUXDYAZUVDYCYDUXEUUHUVKUUIUCIUXCUXDYFUXEUUIUGUCUKUEUCUXEUUEUCUGUKUXF
      WNYGWSYHYIMUVKUCIYPYJYKUVPUVTUWAUWBWEYIUVPUVKTKUEZUWDUWEUVPUVOTUUDUTUXGUW
      DVSUXBYLBCUVKTLUUDUUMUWDKUXCUUETVSZVTZUUMUULUWDUXIUUGUUJUULUXIUUGTUUFUIUJ
      ZUUFTYMUJUXJYNVPUUFTVKWDYOYQUXIUUETUUFUIUXCUXHYAZYRYSYTUXIUUHUVKUUKTJUXCU
      XHYFUXIUUKUGTULUETUXIUUIUGTULUXIUUIUGTUKUEUGUXIUUETUGUKUXKWNUUAWSWTUUBWSY
      HYIMUVKTJYPYJYKUVPUWCUWFUWGWCYIUUC $.
  $}

  ${
    $d s A $.  $d f g h s t F $.  $d f g h s t G $.  $d h s x y H $.  $d t K $.
    $d f g h j s t x y J $.  $d f g h s t x y ph $.
    isphtpy.2 $e |- ( ph -> F e. ( II Cn J ) ) $.
    isphtpy.3 $e |- ( ph -> G e. ( II Cn J ) ) $.
    $( Membership in the class of path homotopies between two continuous
       functions.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario
       Carneiro, 23-Feb-2015.) $)
    isphtpy $p |- ( ph -> ( H e. ( F ( PHtpy ` J ) G ) <->
                    ( H e. ( F ( II Htpy J ) G ) /\ A. s e. ( 0 [,] 1 )
                    ( ( 0 H s ) = ( F ` 0 ) /\ ( 1 H s ) = ( F ` 1 ) ) ) ) ) $=
      ( vh vf vg cfv co wcel cc0 cv wceq c1 wa cii vj cphtpy cicc wral crab ccn
      chtpy cvv ctop cmpt2 cntop2 oveq2 oveqd rabeq mpt2eq123dv df-phtpy mpt2ex
      syl ovex fvmpt 3syl oveq12 fveq1d eqeq2d anbi12d ralbidv rabeqbidv adantl
      simpl rabex a1i ovmpt2d eleq2d oveq eqeq1d elrab syl6bb ) ADBCEUBLZMZNDOF
      PZIPZMZOBLZQZRVTWAMZRBLZQZSZFORUCMZUDZIBCTEUGMZMZUEZNDWLNOVTDMZWCQZRVTDMZ
      WFQZSZFWIUDZSAVSWMDAJKBCTEUFMZWTWBOJPZLZQZWERXALZQZSZFWIUDZIXAKPZWKMZUEZW
      MVRUHABWTNEUINVRJKWTWTXJUJZQGBTEUKUAEJKTUAPZUFMZXMXGIXAXHTXLUGMZMZUEZUJXK
      UIUBXLEQZJKXMXMXPWTWTXJXLETUFULZXRXQXOXIQXPXJQXQXNWKXAXHXLETUGULUMXGIXOXI
      UNURUOUAJKIFUPJKWTWTXJTEUFUSZXSUQUTVAXABQZXHCQZSZXJWMQAYBXGWJIXIWLXABXHCW
      KVBYBXFWHFWIYBXCWDXEWGYBXBWCWBYBOXABXTYAVIZVCVDYBXDWFWEYBRXABYCVCVDVEVFVG
      VHGHWMUHNAWJIWLBCWKUSVJVKVLVMWJWSIDWLWADQZWHWRFWIYDWDWOWGWQYDWBWNWCOVTWAD
      VNVOYDWEWPWFRVTWADVNVOVEVFVPVQ $.

    $( A path homotopy is a homotopy.  (Contributed by Mario Carneiro,
       23-Feb-2015.) $)
    phtpyhtpy $p |- ( ph -> ( F ( PHtpy ` J ) G ) C_ ( F ( II Htpy J ) G ) ) $=
      ( vh vs cphtpy cfv co cii chtpy cv wcel cc0 wceq c1 wa cicc isphtpy simpl
      wral syl6bi ssrdv ) AGBCDIJKZBCLDMKKZAGNZUFOUHUGOZPHNZUHKPBJQRUJUHKRBJQSH
      PRTKUCZSUIABCUHDHEFUAUIUKUBUDUE $.

    $( A path homotopy is a continuous function.  (Contributed by Mario
       Carneiro, 23-Feb-2015.) $)
    phtpycn $p |- ( ph -> ( F ( PHtpy ` J ) G ) C_ ( ( II tX II ) Cn J ) ) $=
      ( cphtpy cfv co cii chtpy ctx ccn phtpyhtpy cc0 cicc ctopon wcel iitopon
      c1 a1i htpycn sstrd ) ABCDGHIBCJDKIIJJLIDMIABCDEFNABCJDOTPIZJUDQHRASUAEFU
      BUC $.

    ${
      phtpyi.1 $e |- ( ph -> H e. ( F ( PHtpy ` J ) G ) ) $.
      $( Membership in the class of path homotopies between two continuous
         functions.  (Contributed by Mario Carneiro, 23-Feb-2015.) $)
      phtpyi $p |- ( ( ph /\ A e. ( 0 [,] 1 ) ) ->
        ( ( 0 H A ) = ( F ` 0 ) /\ ( 1 H A ) = ( F ` 1 ) ) ) $=
        ( vs cc0 cv co cfv wceq c1 wa wcel oveq2 eqeq1d cicc wral chtpy isphtpy
        cii cphtpy mpbid simprd anbi12d rspccva sylan ) AKJLZEMZKCNZOZPULEMZPCN
        ZOZQZJKPUAMZUBZBUTRKBEMZUNOZPBEMZUQOZQZAECDUEFUCMMRZVAAECDFUFNMRVGVAQIA
        CDEFJGHUDUGUHUSVFJBUTULBOZUOVCURVEVHUMVBUNULBKESTVHUPVDUQULBPESTUIUJUK
        $.

      $( Two path-homotopic paths have the same start and end point.
         (Contributed by Mario Carneiro, 23-Feb-2015.) $)
      phtpy01 $p |- ( ph ->
        ( ( F ` 0 ) = ( G ` 0 ) /\ ( F ` 1 ) = ( G ` 1 ) ) ) $=
        ( cc0 cfv wceq c1 co wcel wa 1elunit mpan2 cii htpyi simprd cicc phtpyi
        simpld 0elunit ctopon iitopon a1i cphtpy chtpy phtpyhtpy sseldd eqtr3d
        jca ) AIBJZICJZKLBJZLCJZKAILDMZUNUOAURUNKZLLDMZUPKZALILUAMZNZUSVAOPALBC
        DEFGHUBQZUCAIIDMUNKZURUOKZAIVBNVEVFOUDAIBCDREVBRVBUEJNAUFUGZFGABCEUHJMB
        CREUIMMDABCEFGUJHUKZSQTULAUTUPUQAUSVAVDTALIDMUPKZUTUQKZAVCVIVJOPALBCDRE
        VBVGFGVHSQTULUM $.
    $}

    ${
      isphtpyd.1 $e |- ( ph -> H e. ( F ( II Htpy J ) G ) ) $.
      isphtpyd.2 $e |- ( ( ph /\ s e. ( 0 [,] 1 ) ) ->
        ( 0 H s ) = ( F ` 0 ) ) $.
      isphtpyd.3 $e |- ( ( ph /\ s e. ( 0 [,] 1 ) ) ->
        ( 1 H s ) = ( F ` 1 ) ) $.
      $( Deduction for membership in the class of path homotopies.
         (Contributed by Mario Carneiro, 23-Feb-2015.) $)
      isphtpyd $p |- ( ph -> H e. ( F ( PHtpy ` J ) G ) ) $=
        ( cphtpy cfv co wcel cii cc0 wceq c1 wa chtpy cv cicc ralrimiva isphtpy
        wral jca mpbir2and ) ADBCELMNODBCPEUANNOQFUBZDNQBMRZSUIDNSBMRZTZFQSUCNZ
        UFIAULFUMAUIUMOTUJUKJKUGUDABCDEFGHUEUH $.
    $}

    ${
      isphtpy2d.1 $e |- ( ph -> H e. ( ( II tX II ) Cn J ) ) $.
      isphtpy2d.2 $e |- ( ( ph /\ s e. ( 0 [,] 1 ) ) ->
        ( s H 0 ) = ( F ` s ) ) $.
      isphtpy2d.3 $e |- ( ( ph /\ s e. ( 0 [,] 1 ) ) ->
        ( s H 1 ) = ( G ` s ) ) $.
      isphtpy2d.4 $e |- ( ( ph /\ s e. ( 0 [,] 1 ) ) ->
        ( 0 H s ) = ( F ` 0 ) ) $.
      isphtpy2d.5 $e |- ( ( ph /\ s e. ( 0 [,] 1 ) ) ->
        ( 1 H s ) = ( F ` 1 ) ) $.
      $( Deduction for membership in the class of path homotopies.
         (Contributed by Mario Carneiro, 23-Feb-2015.) $)
      isphtpy2d $p |- ( ph -> H e. ( F ( PHtpy ` J ) G ) ) $=
        ( cii cc0 c1 cicc co ctopon cfv wcel iitopon a1i ishtpyd isphtpyd ) ABC
        DEFGHABCDNEOPQRZFNUFSTUAAUBUCGHIJKUDLMUE $.
    $}

    phtpycom.6 $e |- K = ( x e. ( 0 [,] 1 ) , y e. ( 0 [,] 1 ) |->
                           ( x H ( 1 - y ) ) ) $.
    phtpycom.7 $e |- ( ph -> H e. ( F ( PHtpy ` J ) G ) ) $.
    $( Given a homotopy from ` F ` to ` G ` , produce a homotopy from ` G ` to
       ` F ` .  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario
       Carneiro, 23-Feb-2015.) $)
    phtpycom $p |- ( ph -> K e. ( G ( PHtpy ` J ) F ) ) $=
      ( cii cc0 c1 co cfv wcel cv wceq cicc ctopon iitopon a1i cphtpy phtpyhtpy
      vt chtpy sseldd htpycom cmin 0elunit simpr oveq1 oveq2 oveq2d ovex ovmpt2
      sylancr iirev phtpyi sylan2 simpld phtpy01 adantr 3eqtrd 1elunit isphtpyd
      wa simprd ) AEDHGUGJIABCDEFMGHNOUAPZMVKUBQRAUCUDIJKADEGUEQPDEMGUHPPFADEGI
      JUFLUIUJAUGSZVKRZVIZNVLHPZNOVLUKPZFPZNDQZNEQZVNNVKRVMVOVQTULAVMUMZBCNVLVK
      VKBSZOCSZUKPZFPZVQHNWCFPWANWCFUNWBVLTZWCVPNFWBVLOUKUOZUPKNVPFUQURUSVNVQVR
      TZOVPFPZODQZTZVMAVPVKRWGWJVIVLUTAVPDEFGIJLVAVBZVCVNVRVSTZWIOEQZTZAWLWNVIV
      MADEFGIJLVDVEZVCVFVNOVLHPZWHWIWMVNOVKRVMWPWHTVGVTBCOVLVKVKWDWHHOWCFPWAOWC
      FUNWEWCVPOFWFUPKOVPFUQURUSVNWGWJWKVJVNWLWNWOVJVFVH $.
  $}

  ${
    $d s x y F $.  $d s G $.  $d s x y J $.  $d s x y ph $.
    phtpyid.1 $e |- G = ( x e. ( 0 [,] 1 ) , y e. ( 0 [,] 1 ) |->
                          ( F ` x ) ) $.
    phtpyid.3 $e |- ( ph -> F e. ( II Cn J ) ) $.
    $( A homotopy from a path to itself.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by Mario Carneiro, 23-Feb-2015.) $)
    phtpyid $p |- ( ph -> G e. ( F ( PHtpy ` J ) F ) ) $=
      ( vs cii cc0 c1 co cfv wcel cv wceq fveq2 eqidd fvex cicc iitopon 0elunit
      ctopon a1i htpyid ovmpt2 mpan adantl 1elunit isphtpyd ) ADDEFIHHABCDEJFKL
      UAMZGJULUDNOAUBUEHUFIPZULOZKUMEMKDNZQZAKULOUNUPUCBCKUMULULBPZDNZUOEUOUQKD
      RCPUMQZUOSGKDTUGUHUIUNLUMEMLDNZQZALULOUNVAUJBCLUMULULURUTEUTUQLDRUSUTSGLD
      TUGUHUIUK $.
  $}

  ${
    $d s F $.  $d s G $.  $d s H $.  $d s K $.  $d s P $.  $d s ph $.
    phtpyco2.f $e |- ( ph -> F e. ( II Cn J ) ) $.
    phtpyco2.g $e |- ( ph -> G e. ( II Cn J ) ) $.
    phtpyco2.p $e |- ( ph -> P e. ( J Cn K ) ) $.
    phtpyco2.h $e |- ( ph -> H e. ( F ( PHtpy ` J ) G ) ) $.
    $( Compose a path homotopy with a continuous map.  (Contributed by Mario
       Carneiro, 10-Mar-2015.) $)
    phtpyco2 $p |- ( ph ->
      ( P o. H ) e. ( ( P o. F ) ( PHtpy ` K ) ( P o. G ) ) ) $=
      ( cii ccn co wcel cfv cc0 c1 wceq fvco3 vs ccom cnco syl2anc cphtpy chtpy
      phtpyhtpy sseldd htpyco2 cv wa phtpyi simpld fveq2d cop cxp 0elunit simpr
      cicc opelxpi sylancr cuni wf ctx ctopon iitopon txtopon mp2an ctop cntop2
      a1i eqid toptopon sylib phtpycn syl3anc sylan syldan df-ov fveq2i 3eqtr4g
      syl cnf2 iiuni cnf adantr sylancl 3eqtr4d simprd 1elunit isphtpyd ) ABCUB
      ZBDUBZBEUBZGUAACLFMNZOZBFGMNOZWLLGMNZOHJCBLFGUCUDADWOOWQWMWROIJDBLFGUCUDA
      BCDELFGHIJACDFUEPNZCDLFUFNNEACDFHIUGKUHUIAUAUJZQRUSNZOZUKZQWTENZBPZQCPZBP
      ZQWTWNNZQWLPZXCXDXFBXCXDXFSZRWTENZRCPZSZAWTCDEFHIKULZUMUNXCQWTUOZWNPZXOEP
      ZBPZXHXEAXBXOXAXAUPZOZXPXRSZXCQXAOZXBXTUQAXBURZQWTXAXAUTVAAXSFVBZEVCZXTYA
      ALLVDNZXSVEPOZFYDVEPOZEYFFMNZOYEYGALXAVEPOZYJYGVFVFLLXAXAVGVHVKAFVIOZYHAW
      PYKHCLFVJWBFYDYDVLZVMVNAWSYIEACDFHIVOKUHEYFFXSYDWCVPZXSYDXOBETVQVRQWTWNVS
      XDXQBQWTEVSVTWAXCXAYDCVCZYBXIXGSAYNXBAWPYNHCLFXAYDWDYLWEWBWFZUQXAYDQBCTWG
      WHXCXKBPZXLBPZRWTWNNZRWLPZXCXKXLBXCXJXMXNWIUNXCRWTUOZWNPZYTEPZBPZYRYPAXBY
      TXSOZUUAUUCSZXCRXAOZXBUUDWJYCRWTXAXAUTVAAYEUUDUUEYMXSYDYTBETVQVRRWTWNVSXK
      UUBBRWTEVSVTWAXCYNUUFYSYQSYOWJXAYDRBCTWGWHWK $.
  $}

  ${
    $d s F $.  $d s H $.  $d s x y J $.  $d x y K $.  $d s M $.  $d s x y ph $.
    $d x y L $.
    phtpycc.1 $e |- M = ( x e. ( 0 [,] 1 ) , y e. ( 0 [,] 1 ) |->
                          if ( y <_ ( 1 / 2 ) ,
                    ( x K ( 2 x. y ) ) , ( x L ( ( 2 x. y ) - 1 ) ) ) ) $.
    phtpycc.3 $e |- ( ph -> F e. ( II Cn J ) ) $.
    phtpycc.4 $e |- ( ph -> G e. ( II Cn J ) ) $.
    phtpycc.5 $e |- ( ph -> H e. ( II Cn J ) ) $.
    phtpycc.6 $e |- ( ph -> K e. ( F ( PHtpy ` J ) G ) ) $.
    phtpycc.7 $e |- ( ph -> L e. ( G ( PHtpy ` J ) H ) ) $.
    $( Concatenate two path homotopies.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Proof shortened by Mario Carneiro, 7-Jun-2014.) $)
    phtpycc $p |- ( ph -> M e. ( F ( PHtpy ` J ) H ) ) $=
      ( cc0 c1 co wceq vs cii cicc ctopon cfv wcel iitopon a1i cphtpy phtpyhtpy
      chtpy sseldd htpycc cv wa cdiv cle wbr cmul cmin cif 0elunit simpr breq1d
      c2 simpl oveq2d oveq12d oveq1d ifbieq12d ovex ifex ovmpt2a sylancr simpll
      elii1 iihalf1 sylbir adantll phtpyi syl2anc simpld wn iihalf2 syl phtpy01
      elii2 ad2antrr eqtr4d ifeqda eqtrd 1elunit simprd isphtpyd ) ADFJGUALNABC
      DEFUBGHIJQRUCSZKUBWOUDUEUFAUGUHLMNADEGUIUEZSDEUBGUKSZSHADEGLMUJOULAEFWPSE
      FWQSIAEFGMNUJPULUMAUAUNZWOUFZUOZQWRJSZWRRVEUPSZUQURZQVEWRUSSZHSZQXDRUTSZI
      SZVAZQDUEZWTQWOUFWSXAXHTVBAWSVCZBCQWRWOWOCUNZXBUQURZBUNZVEXKUSSZHSZXMXNRU
      TSZISZVAZXHJXMQTZXKWRTZUOZXLXCXOXQXEXGYAXKWRXBUQXSXTVCZVDYAXMQXNXDHXSXTVF
      ZYAXKWRVEUSYBVGZVHYAXMQXPXFIYCYAXNXDRUTYDVIVHVJKXCXEXGQXDHVKQXFIVKVLVMVNW
      TXCXEXGXIWTXCUOZXEXITZRXDHSZRDUEZTZYEAXDWOUFZYFYIUOAWSXCVOWSXCYJAWSXCUOWR
      QXBUCSUFYJWRVPWRVQVRVSAXDDEHGLMOVTWAZWBWTXCWCZUOZXGQEUEZXIYMXGYNTZRXFISZR
      EUEZTZYMAXFWOUFZYOYRUOAWSYLVOWSYLYSAWSYLUOWRXBRUCSUFYSWRWGWRWDWEVSAXFEFIG
      MNPVTWAZWBYMXIYNTZYHYQTZAUUAUUBUOWSYLADEHGLMOWFWHZWBWIWJWKWTRWRJSZXCYGYPV
      AZYHWTRWOUFWSUUDUUETWLXJBCRWRWOWOXRUUEJXMRTZXTUOZXLXCXOXQYGYPUUGXKWRXBUQU
      UFXTVCZVDUUGXMRXNXDHUUFXTVFZUUGXKWRVEUSUUHVGZVHUUGXMRXPXFIUUIUUGXNXDRUTUU
      JVIVHVJKXCYGYPRXDHVKRXFIVKVLVMVNWTXCYGYPYHYEYFYIYKWMYMYPYQYHYMYOYRYTWMYMU
      UAUUBUUCWMWIWJWKWN $.
  $}

  ${
    $d x f g J $.
    $( Define the function which takes a topology and returns the path homotopy
       relation on that topology.  Definition of [Hatcher] p. 25.  (Contributed
       by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro,
       7-Jun-2014.) $)
    df-phtpc $a |- ~=ph = ( x e. Top |-> { <. f , g >. |
        ( { f , g } C_ ( II Cn x ) /\ ( f ( PHtpy ` x ) g ) =/= (/) ) } ) $.

    $( The path homotopy relation is a relation.  (Contributed by Mario
       Carneiro, 7-Jun-2014.)  (Revised by Mario Carneiro, 7-Aug-2014.) $)
    phtpcrel $p |- Rel ( ~=ph ` J ) $=
      ( vf vg vx cv cpr cii ccn co wss cphtpy cfv c0 wne ctop cphtpc relmptopab
      wa df-phtpc ) BEZCEZFGDEZHIJTUAUBKLIMNRDBCOAPDBCSQ $.
  $}

  ${
    $d f g F $.  $d f g G $.  $d f g j J $.
    $( The relation "is path homotopic to".  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by Mario Carneiro, 5-Sep-2015.) $)
    isphtpc $p |- ( F ( ~=ph ` J ) G <->
      ( F e. ( II Cn J ) /\ G e. ( II Cn J ) /\
        ( F ( PHtpy ` J ) G ) =/= (/) ) ) $=
      ( vj vf vg cphtpc cfv wbr ctop wcel cii ccn co cphtpy c0 wne cv wa wceq
      w3a cop df-br cdm cpr copab df-phtpc dmmptss elfvdm sseldi sylbi 3ad2ant1
      wss cntop2 oveq2 sseq2d vex prss syl6bbr fveq2 oveqd anbi12d opabbidv cxp
      neeq1d ovex opabssxp ssexi fvmpt breqd oveq12 brab2a df-3an bitr4i syl6bb
      xpex eqid pm5.21nii ) ABCGHZIZCJKZALCMNZKZBWBKZABCOHZNZPQZUAZVTABUBZVSKZW
      AABVSUCWJGUDJCDJERZFRZUEZLDRZMNZUMZWKWLWNOHZNZPQZSZEFUFZGDEFUGZUHWICGUIUJ
      UKWCWDWAWGALCUNULWAVTABWKWBKWLWBKSZWKWLWENZPQZSZEFUFZIZWHWAVSXGABDCXAXGJG
      WNCTZWTXFEFXIWPXCWSXEXIWPWMWBUMXCXIWOWBWMWNCLMUOUPWKWLWBEUQFUQURUSXIWRXDP
      XIWQWEWKWLWNCOUTVAVEVBVCXBXGWBWBVDWBWBLCMVFZXJVPXEEFWBWBVGVHVIVJXHWCWDSWG
      SWHXEWGEFABWBWBXGWKATWLBTSXDWFPWKAWLBWEVKVEXGVQVLWCWDWGVMVNVOVR $.
  $}

  ${
    $d f g u v x y z J $.
    $( Path homotopy is an equivalence relation.  Proposition 1.2 of [Hatcher]
       p. 26.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario
       Carneiro, 6-Jul-2015.)  (Proof shortened by AV, 1-May-2021.) $)
    phtpcer $p |- ( ~=ph ` J ) Er ( II Cn J ) $=
      ( vy vz vf vu vv vg co cfv cv wbr wcel c0 wne isphtpc wex sylib wa adantr
      c1 vx cii ccn cphtpc phtpcrel cphtpy simp2bi simp1bi simp3bi n0 cicc cmin
      cc0 cmpt2 eqid simpr phtpycom ne0i exlimddv syl3anbrc simp2d simp3d eeanv
      syl w3a sylanbrc c2 cdiv cle cif simp1d simprl simprr phtpycc ex exlimdvv
      cmul mpd id phtpyid ancli pm4.71ri df-3an 3ancomb 3bitr2i bitr4i iseri )
      UABCUBAUCHZAUDIZAUEUAJZBJZWIKZWKWHLZWJWHLZWKWJAUFIZHZMNZWKWJWIKWLWNWMWJWK
      WOHZMNZWJWKAOZUGZWLWNWMWSWTUHZWLDJZWRLZWQDWLWSXDDPZWLWNWMWSWTUIZDWRUJZQWL
      XDRZEFUMTUKHZXIEJZTFJZULHXCHUNZWPLWQXHEFWJWKXCAXLWLWNXDXBSWLWMXDXASXLUOWL
      XDUPUQWPXLURVDUSWKWJAOUTWLWKCJZWIKZRZWNXMWHLZWJXMWOHZMNZWJXMWIKWLWNXNXBSZ
      XOWMXPWKXMWOHZMNZXOXNWMXPYAVEWLXNUPWKXMAOQZVAZXOXDGJZXTLZRZGPDPZXRXOXEYEG
      PZYGXOWSXEWLWSXNXFSXGQXOYAYHXOWMXPYAYBVBGXTUJQXDYEDGVCVFXOYFXRDGXOYFXRXOY
      FRZEFXIXIXKTVGVHHVIKXJVGXKVQHZXCHXJYJTULHYDHVJUNZXQLXRYIEFWJWKXMAXCYDYKYK
      UOXOWNYFXSSXOWMYFXOWMXPYAYBVKSXOXPYFYCSXOXDYEVLXOXDYEVMVNXQYKURVDVOVPVRWJ
      XMAOUTWNWNWNWJWJWOHZMNZVEZWJWJWIKWNWNYMRZWNRWNYMWNVEYNWNYOWNYMWNBCXIXIWKW
      JIUNZYLLYMWNBCWJYPAYPUOWNVSVTYLYPURVDWAWBWNYMWNWCWNYMWNWDWEWJWJAOWFWG $.

    $( Obsolete proof of ~ phtpcer as of 1-May-2021.  Path homotopy is an
       equivalence relation.  Proposition 1.2 of [Hatcher] p. 26.  (Contributed
       by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 6-Jul-2015.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    phtpcerOLD $p |- ( ~=ph ` J ) Er ( II Cn J ) $=
      ( vy vz vf vu vv vg co wtru cv wbr wcel c0 wne isphtpc sylib wa c1 adantr
      wex vx cii ccn cphtpc cfv wer phtpcrel a1i cphtpy simp2bi simp1bi simp3bi
      wrel n0 cc0 cicc cmin cmpt2 eqid simpr phtpycom ne0i syl syl3anbrc adantl
      exlimddv w3a simp2d simp3d eeanv sylanbrc cdiv cle cmul cif simp1d simprl
      c2 simprr phtpycc ex exlimdvv wb id phtpyid ancli pm4.71ri df-3an 3ancomb
      mpd 3bitr2i bitr4i iserd trud ) UBAUCHZAUDUEZUFIUABCWOWPWPUMIAUGUHUAJZBJZ
      WPKZWRWQWPKZIWSWRWOLZWQWOLZWRWQAUIUEZHZMNZWTWSXBXAWQWRXCHZMNZWQWRAOZUJZWS
      XBXAXGXHUKZWSDJZXFLZXEDWSXGXLDTZWSXBXAXGXHULZDXFUNZPWSXLQZEFUORUPHZXQEJZR
      FJZUQHXKHURZXDLXEXPEFWQWRXKAXTWSXBXLXJSWSXAXLXISXTUSWSXLUTVAXDXTVBVCVFWRW
      QAOVDVEWSWRCJZWPKZQZWQYAWPKZIYCXBYAWOLZWQYAXCHZMNZYDWSXBYBXJSZYCXAYEWRYAX
      CHZMNZYCYBXAYEYJVGWSYBUTWRYAAOPZVHZYCXLGJZYILZQZGTDTZYGYCXMYNGTZYPYCXGXMW
      SXGYBXNSXOPYCYJYQYCXAYEYJYKVIGYIUNPXLYNDGVJVKYCYOYGDGYCYOYGYCYOQZEFXQXQXS
      RVRVLHVMKXRVRXSVNHZXKHXRYSRUQHYMHVOURZYFLYGYREFWQWRYAAXKYMYTYTUSYCXBYOYHS
      YCXAYOYCXAYEYJYKVPSYCYEYOYLSYCXLYNVQYCXLYNVSVTYFYTVBVCWAWBWJWQYAAOVDVEXBW
      QWQWPKZWCIXBXBXBWQWQXCHZMNZVGZUUAXBXBUUCQZXBQXBUUCXBVGUUDXBUUEXBUUCXBBCXQ
      XQWRWQUEURZUUBLUUCXBBCWQUUFAUUFUSXBWDWEUUBUUFVBVCWFWGXBUUCXBWHXBUUCXBWIWK
      WQWQAOWLUHWMWN $.
  $}

  ${
    $d h F $.  $d h G $.  $d h J $.
    $( Path homotopic paths have the same endpoints.  (Contributed by Mario
       Carneiro, 24-Feb-2015.) $)
    phtpc01 $p |- ( F ( ~=ph ` J ) G ->
      ( ( F ` 0 ) = ( G ` 0 ) /\ ( F ` 1 ) = ( G ` 1 ) ) ) $=
      ( vh cphtpc cfv wbr cii ccn co wcel cphtpy c0 wne w3a cc0 wceq c1 isphtpc
      wa cv wex n0 simpll simplr simpr phtpy01 ex exlimdv syl5bi 3impia sylbi )
      ABCEFGAHCIJZKZBUMKZABCLFJZMNZOPAFPBFQRAFRBFQTZABCSUNUOUQURUQDUAZUPKZDUBUN
      UOTZURDUPUCVAUTURDVAUTURVAUTTABUSCUNUOUTUDUNUOUTUEVAUTUFUGUHUIUJUKUL $.
  $}

  ${
    $d s x y F $.  $d s x y G $.  $d s H $.  $d s x y J $.  $d s x y z ph $.
    reparpht.2 $e |- ( ph -> F e. ( II Cn J ) ) $.
    reparpht.3 $e |- ( ph -> G e. ( II Cn II ) ) $.
    reparpht.4 $e |- ( ph -> ( G ` 0 ) = 0 ) $.
    reparpht.5 $e |- ( ph -> ( G ` 1 ) = 1 ) $.
    ${
      reparphti.6 $e |- H = ( x e. ( 0 [,] 1 ) , y e. ( 0 [,] 1 ) |->
                    ( F ` ( ( ( 1 - y ) x. ( G ` x ) ) + ( y x. x ) ) ) ) $.
      $( Lemma for ~ reparpht .  (Contributed by NM, 15-Jun-2010.)  (Revised by
         Mario Carneiro, 7-Jun-2014.) $)
      reparphti $p |- ( ph -> H e. ( ( F o. G ) ( PHtpy ` J ) F ) ) $=
        ( cii co wcel cc0 c1 cfv cmul caddc vs vz ccom ccn cnco syl2anc cicc cv
        cmin cmpt2 ctx ctopon iitopon a1i ccnfld ctopn crest ctop eqid cnfldtop
        cnrest2r mp1i cnmpt2nd cmpt iirevcn oveq2 cnmpt21 dfii3 oveq2i syl6eleq
        wss sseldd cnmpt1st cnmpt21f mulcn cnmpt22f addcn cc crn cnfldtopon cxp
        wb wf wral wa iiuni cnf syl ffvelrnda adantrr simprl simprr w3a 0re 1re
        cr icccvx mp2an syl3anc ralrimivva fmpt2 sylib unitssre ax-resscn sstri
        frn cnrest2 mpbid syl6eleqr syl5eqel sseldi mulid2d sseli adantl mul02d
        oveq12d addid1d eqtrd fveq2d wceq simpr 0elunit weq oveq2d 1m0e1 syl6eq
        wi simpl fvex ovmpt2a sylancl fvco3 sylan 3eqtr4d 1elunit adantr ax-1cn
        sylancr mul01d mulid1d 1m1e0 addid2d subcl 00id npcan isphtpy2d ) ADEUC
        ZDFGUAAEMMUDNZOZDMGUDNZOUUGUUJOIHEDMMGUEUFHAFBCPQUGNZUUKQCUHZUINZBUHZER
        ZSNZUULUUNSNZTNZDRZUJMMUKNZGUDNLABCUURDMMMGUUKUUKMUUKULROAUMUNZUVAABCUU
        KUUKUURUJZUUTUOUPRZUUKUQNZUDNZUUTMUDNZAUVBUUTUVCUDNZOZUVBUVEOZABCUUPUUQ
        TMMUVCUVCUVCUUKUUKUVAUVAABCUUMUUOSMMUVCUVCUVCUUKUUKUVAUVAAUVEUVGBCUUKUU
        KUUMUJZUVCUROUVEUVGVKAUVCUVCUSZUTUUKUUTUVCVAVBZAUVJUVFUVEABCUBUULQUBUHZ
        UINZUUMMMMMUUKUUKUUKUVAUVAABCMMUUKUUKUVAUVAVCZUVAUBUUKUVNVDUUHOAUBVEUNU
        VMUULQUIVFVGMUVDUUTUDUVCUVKVHVIZVJVLAUVEUVGBCUUKUUKUUOUJZUVLAUVQUVFUVEA
        BCUUNEMMMMUUKUUKUVAUVAABCMMUUKUUKUVAUVAVMZIVNUVPVJVLSUVCUVCUKNUVCUDNZOA
        UVCUVKVOUNZVPABCUULUUNSMMUVCUVCUVCUUKUUKUVAUVAAUVEUVGBCUUKUUKUULUJZUVLA
        UWAUVFUVEUVOUVPVJVLAUVEUVGBCUUKUUKUUNUJZUVLAUWBUVFUVEUVRUVPVJVLUVTVPTUV
        SOAUVCUVKVQUNVPAUVCVRULROZUVBVSUUKVKZUUKVRVKZUVHUVIWBUWCAUVCUVKVTUNAUUK
        UUKWAZUUKUVBWCZUWDAUURUUKOZCUUKWDBUUKWDUWGAUWHBCUUKUUKAUUNUUKOZUULUUKOZ
        WEWEUUOUUKOZUWIUWJUWHAUWIUWKUWJAUUKUUKUUNEAUUIUUKUUKEWCZIEMMUUKUUKWFWFW
        GWHZWIWJAUWIUWJWKAUWIUWJWLPWPOQWPOUWKUWIUWJWMUWHYGWNWOPQUUOUUNUULWQWRWS
        WTBCUUKUUKUURUUKUVBUVBUSXAXBUWFUUKUVBXFWHUWEAUUKWPVRXCXDXEZUNUUKUVBUUTU
        VCVRXGWSXHUVPXIHVNXJAUAUHZUUKOZWEZQUWOERZSNZPUWOSNZTNZDRZUWRDRZUWOPFNZU
        WOUUGRZUWQUXAUWRDUWQUXAUWRPTNUWRUWQUWSUWRUWTPTUWQUWRUWQUUKVRUWRUWNAUUKU
        UKUWOEUWMWIXKZXLUWQUWOUWPUWOVROZAUUKVRUWOUWNXMXNZXOXPUWQUWRUXFXQXRXSUWQ
        UWPPUUKOZUXDUXBXTAUWPYAZYBBCUWOPUUKUUKUUSUXBFBUAYCZUULPXTZWEZUURUXADUXM
        UUPUWSUUQUWTTUXMUUMQUUOUWRSUXMUUMQPUINQUXMUULPQUIUXKUXLYAZYDYEYFUXMUUNU
        WOEUXKUXLYHZXSXPUXMUULPUUNUWOSUXNUXOXPXPXSLUXADYIYJYKAUWLUWPUXEUXCXTUWM
        UUKUUKUWODEYLYMYNUWQUWOQFNZPUWRSNZQUWOSNZTNZDRZUWODRUWQUWPQUUKOZUXPUXTX
        TUXJYOBCUWOQUUKUUKUUSUXTFUXKUULQXTZWEZUURUXSDUYCUUPUXQUUQUXRTUYCUUMPUUO
        UWRSUYCUUMQQUINPUYCUULQQUIUXKUYBYAZYDUUAYFUYCUUNUWOEUXKUYBYHZXSXPUYCUUL
        QUUNUWOSUYDUYEXPXPXSLUXSDYIYJYKUWQUXSUWODUWQUXSPUWOTNUWOUWQUXQPUXRUWOTU
        WQUWRUXFXOUWQUWOUXHXLXPUWQUWOUXHUUBXRXSXRUWQQUWOUINZPERZSNZUWOPSNZTNZDR
        ZPDRZPUWOFNZPUUGRZUWQUYJPDUWQUYJPPTNPUWQUYHPUYIPTUWQUYHUYFPSNPUWQUYGPUY
        FSAUYGPXTUWPJYPYDUWQUYFUWQQVROZUXGUYFVROYQUXHQUWOUUCYRZYSXRUWQUWOUXHYSX
        PUUDYFXSUWQUXIUWPUYMUYKXTYBUXJBCPUWOUUKUUKUUSUYKFUUNPXTZCUAYCZWEZUURUYJ
        DUYSUUPUYHUUQUYITUYSUUMUYFUUOUYGSUYSUULUWOQUIUYQUYRYAZYDUYSUUNPEUYQUYRY
        HZXSXPUYSUULUWOUUNPSUYTVUAXPXPXSLUYJDYIYJYRAUYNUYLXTUWPAUYNUYGDRZUYLAUW
        LUXIUYNVUBXTUWMYBUUKUUKPDEYLYKAUYGPDJXSXRYPYNUWQUYFQERZSNZUWOQSNZTNZDRZ
        QDRZQUWOFNZQUUGRZUWQVUFQDUWQVUFUYFUWOTNZQUWQVUDUYFVUEUWOTUWQVUDUYFQSNUY
        FUWQVUCQUYFSAVUCQXTUWPKYPYDUWQUYFUYPYTXRUWQUWOUXHYTXPUWQUYOUXGVUKQXTYQU
        XHQUWOUUEYRXRXSUWQUYAUWPVUIVUGXTYOUXJBCQUWOUUKUUKUUSVUGFUUNQXTZUYRWEZUU
        RVUFDVUMUUPVUDUUQVUETVUMUUMUYFUUOVUCSVUMUULUWOQUIVULUYRYAZYDVUMUUNQEVUL
        UYRYHZXSXPVUMUULUWOUUNQSVUNVUOXPXPXSLVUFDYIYJYRAVUJVUHXTUWPAVUJVUCDRZVU
        HAUWLUYAVUJVUPXTUWMYOUUKUUKQDEYLYKAVUCQDKXSXRYPYNUUF $.
    $}

    $( Reparametrization lemma.  The reparametrization of a path by any
       continuous map ` G : II --> II ` with ` G ( 0 ) = 0 ` and
       ` G ( 1 ) = 1 ` is path-homotopic to the original path.  (Contributed by
       Jeff Madsen, 15-Jun-2010.)  (Revised by Mario Carneiro, 23-Feb-2015.) $)
    reparpht $p |- ( ph -> ( F o. G ) ( ~=ph ` J ) F ) $=
      ( vx vy ccom cii ccn co wcel cphtpy cfv c1 cv cmul c0 wne cphtpc wbr cnco
      syl2anc cc0 cicc cmin caddc cmpt2 eqid reparphti ne0i isphtpc syl3anbrc
      syl ) ABCKZLDMNZOZBUSOZURBDPQNZUAUBZURBDUCQUDACLLMNOVAUTFECBLLDUEUFEAIJUG
      RUHNZVDRJSZUINISZCQTNVEVFTNUJNBQUKZVBOVCAIJBCVGDEFGHVGULUMVBVGUNUQURBDUOU
      P $.
  $}

  ${
    $d f F $.  $d f G $.  $d f J $.  $d f K $.  $d f P $.  $d f ph $.
    phtpcco2.f $e |- ( ph -> F ( ~=ph ` J ) G ) $.
    phtpcco2.p $e |- ( ph -> P e. ( J Cn K ) ) $.
    $( Compose a path homotopy with a continuous map.  (Contributed by Mario
       Carneiro, 6-Jul-2015.) $)
    phtpcco2 $p |- ( ph -> ( P o. F ) ( ~=ph ` K ) ( P o. G ) ) $=
      ( vf ccom cii ccn co wcel cphtpy cfv c0 wne cphtpc adantr wbr w3a isphtpc
      sylib simp1d cnco syl2anc simp2d cv wex simp3d n0 simpr phtpyco2 ne0i syl
      wa exlimddv syl3anbrc ) ABCJZKFLMZNZBDJZVANZUTVCFOPMZQRZUTVCFSPUAACKELMZN
      ZBEFLMNZVBAVHDVGNZCDEOPMZQRZACDESPUAVHVJVLUBGCDEUCUDZUEZHCBKEFUFUGAVJVIVD
      AVHVJVLVMUHZHDBKEFUFUGAIUIZVKNZVFIAVLVQIUJAVHVJVLVMUKIVKULUDAVQUQZBVPJZVE
      NVFVRBCDVPEFAVHVQVNTAVJVQVOTAVIVQHTAVQUMUNVEVSUOUPURUTVCFUCUS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The fundamental group
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c *p $.
  $c Om1 $.
  $c OmN $.
  $c pi1 $.
  $c piN $.

  $( Extend class notation with the concatenation operation for paths in a
     topological space. $)
  cpco $a class *p $.

  $( Extend class notation with the loop space. $)
  comi $a class Om1 $.

  $( Extend class notation with the higher loop spaces. $)
  comn $a class OmN $.

  $( Extend class notation with the fundamental group. $)
  cpi1 $a class pi1 $.

  $( Extend class notation with the higher homotopy groups. $)
  cpin $a class piN $.

  ${
    $d f g j n p x y $.
    $( Define the concatenation of two paths in a topological space ` J ` .
       For simplicity of definition, we define it on all paths, not just those
       whose endpoints line up.  Definition of [Hatcher] p. 26.  Hatcher
       denotes path concatenation with a square dot; other authors, such as
       Munkres, use a star.  (Contributed by Jeff Madsen, 15-Jun-2010.) $)
    df-pco $a |- *p = ( j e. Top |-> ( f e. ( II Cn j ) , g e. ( II Cn j ) |->
               ( x e. ( 0 [,] 1 ) |-> if ( x <_ ( 1 / 2 ) ,
                 ( f ` ( 2 x. x ) ) , ( g ` ( ( 2 x. x ) - 1 ) ) ) ) ) ) $.

    $( Define the loop space of a topological space, with a magma structure on
       it given by concatenation of loops.  This structure is not a group, but
       the operation is compatible with homotopy, which allows the homotopy
       groups to be defined based on this operation.  (Contributed by Mario
       Carneiro, 10-Jul-2015.) $)
    df-om1 $a |- Om1 = ( j e. Top , y e. U. j |-> { <. ( Base ` ndx ) ,
           { f e. ( II Cn j ) | ( ( f ` 0 ) = y /\ ( f ` 1 ) = y ) } >. ,
        <. ( +g ` ndx ) , ( *p ` j ) >. ,
        <. ( TopSet ` ndx ) , ( j ^ko II ) >. } ) $.

    $( Define the n-th iterated loop space of a topological space.  Unlike
       ` Om1 ` this is actually a _pointed_ topological space, which is to say
       a tuple of a topological space (a member of ` TopSp ` , not ` Top ` )
       and a point in the space.  Higher loop spaces select the constant loop
       at the point from the lower loop space for the distinguished point.
       (Contributed by Mario Carneiro, 10-Jul-2015.) $)
    df-omn $a |- OmN = ( j e. Top , y e. U. j |->
      seq 0 ( ( ( x e. _V , p e. _V |->
        <. ( ( TopOpen ` ( 1st ` x ) ) Om1 ( 2nd ` x ) ) ,
           ( ( 0 [,] 1 ) X. { ( 2nd ` x ) } ) >. ) o. 1st ) ,
          <. { <. ( Base ` ndx ) , U. j >. ,
               <. ( TopSet ` ndx ) , j >. } , y >. ) ) $.

    $( Define the fundamental group, whose operation is given by concatenation
       of homotopy classes of loops.  Definition of [Hatcher] p. 26.
       (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    df-pi1 $a |- pi1 = ( j e. Top , y e. U. j |->
       ( ( j Om1 y ) /s ( ~=ph ` j ) ) ) $.

    $( Define the n-th homotopy group, which is formed by taking the ` n ` -th
       loop space and forming the quotient under the relation of path homotopy
       equivalence in the base space of the ` n ` -th loop space, which is the
       ` n - 1 ` -th loop space.  For ` n = 0 ` , since this is not
       well-defined we replace this relation with the path-connectedness
       relation, so that the ` 0 ` -th homotopy group is the set of path
       components of ` X ` .  (Since the ` 0 ` -th loop space does not have a
       group operation, neither does the ` 0 ` -th homotopy group, but the rest
       are genuine groups.)  (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    df-pin $a |- piN = ( j e. Top , p e. U. j |->
      ( n e. NN0 |-> ( ( 1st ` ( ( j OmN p ) ` n ) ) /s if ( n = 0 ,
    { <. x , y >. | E. f e. ( II Cn j ) ( ( f ` 0 ) = x /\ ( f ` 1 ) = y ) } ,
      ( ~=ph ` ( TopOpen ` ( 1st ` ( ( j OmN p ) ` ( n - 1 ) ) ) ) ) ) ) ) ) $.
  $}

  ${
    $d f g x y z F $.  $d f g x y z G $.  $d x K $.  $d x y z ph $.  $d x X $.
    $d x y H $.  $d f g j x y z J $.
    $( The value of the path concatenation function on a topological space.
       (Contributed by Jeff Madsen, 15-Jun-2010.)  (Revised by Mario Carneiro,
       7-Jun-2014.) $)
    pcofval $p |- ( *p ` J ) = ( f e. ( II Cn J ) ,
                    g e. ( II Cn J ) |->
               ( x e. ( 0 [,] 1 ) |-> if ( x <_ ( 1 / 2 ) ,
                 ( f ` ( 2 x. x ) ) , ( g ` ( ( 2 x. x ) - 1 ) ) ) ) ) $=
      ( vj ctop wcel cpco cfv cii ccn co c1 cv c2 cmpt2 wceq wn c0 con3i df-pco
      cc0 cicc cdiv cle wbr cmul cmin cmpt oveq2 eqidd mpt2eq123dv mpt2ex fvmpt
      cif ovex cdm dmmptss sseli ndmfv syl cntop2 eq0rdv mpt2eq12 syl2anc mpt20
      syl6eq eqtr4d pm2.61i ) DFGZDHIZBCJDKLZVLAUBMUCLANZMOUDLUEUFOVMUGLZBNZIVN
      MUHLCNIUOUIZPZQEDBCJENZKLZVSVPPZVQFHVRDQZBCVSVSVPVLVLVPVRDJKUJZWBWAVPUKUL
      ABCEUAZBCVLVLVPJDKUPZWDUMUNVJRZVKSVQWEDHUQZGZRVKSQWGVJWFFDEFVTHWCURUSTDHU
      TVAWEVQBCSSVPPZSWEVLSQZWIVQWHQWEBVLVOVLGVJVOJDVBTVCZWJBCVLVLSSVPVDVEBCSVP
      VFVGVHVI $.

    pcoval.2 $e |- ( ph -> F e. ( II Cn J ) ) $.
    pcoval.3 $e |- ( ph -> G e. ( II Cn J ) ) $.
    $( The concatenation of two paths.  (Contributed by Jeff Madsen,
       15-Jun-2010.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    pcoval $p |- ( ph -> ( F ( *p ` J ) G ) =
                ( x e. ( 0 [,] 1 ) |-> if ( x <_ ( 1 / 2 ) ,
                  ( F ` ( 2 x. x ) ) , ( G ` ( ( 2 x. x ) - 1 ) ) ) ) ) $=
      ( vf vg co wcel cfv cc0 c1 cicc cv c2 cif cmpt wceq cii ccn cpco cdiv cle
      wbr cmul cmin wa fveq1 adantr ifeq12d mpteq2dv pcofval ovex mptex ovmpt2a
      adantl syl2anc ) ACUAEUBJZKDUTKCDEUCLZJBMNOJZBPZNQUDJUEUFZQVCUGJZCLZVENUH
      JZDLZRZSZTFGHICDUTUTBVBVDVEHPZLZVGIPZLZRZSVJVAVKCTZVMDTZUIZBVBVOVIVRVDVLV
      FVNVHVPVLVFTVQVEVKCUJUKVQVNVHTVPVGVMDUJURULUMBHIEUNBVBVIMNOUOUPUQUS $.

    $( Evaluate the concatenation of two paths.  (Contributed by Mario
       Carneiro, 7-Jun-2014.) $)
    pcovalg $p |- ( ( ph /\ X e. ( 0 [,] 1 ) ) ->
                  ( ( F ( *p ` J ) G ) ` X ) = if ( X <_ ( 1 / 2 ) ,
                  ( F ` ( 2 x. X ) ) , ( G ` ( ( 2 x. X ) - 1 ) ) ) ) $=
      ( vx cc0 c1 co cfv c2 cle wbr cmul cmin cif fveq2d fvex cicc wcel cpco cv
      cdiv cmpt pcoval fveq1d wceq breq1 oveq2 oveq1d ifbieq12d eqid ifex fvmpt
      sylan9eq ) AEIJUAKZUBEBCDUCLKZLEHURHUDZJMUEKZNOZMUTPKZBLZVCJQKZCLZRZUFZLE
      VANOZMEPKZBLZVJJQKZCLZRZAEUSVHAHBCDFGUGUHHEVGVNURVHUTEUIZVBVIVDVFVKVMUTEV
      ANUJVOVCVJBUTEMPUKZSVOVEVLCVOVCVJJQVPULSUMVHUNVIVKVMVJBTVLCTUOUPUQ $.

    $( Evaluate the concatenation of two paths on the first half.  (Contributed
       by Jeff Madsen, 15-Jun-2010.)  (Revised by Mario Carneiro,
       7-Jun-2014.) $)
    pcoval1 $p |- ( ( ph /\ X e. ( 0 [,] ( 1 / 2 ) ) ) ->
                  ( ( F ( *p ` J ) G ) ` X ) = ( F ` ( 2 x. X ) ) ) $=
      ( cc0 c1 c2 cdiv co cicc wcel cfv cle wbr wceq cr 1re wa cpco cif wss 0re
      cmul halfre halflt1 ltleii iccss mp4an sseli pcovalg sylan2 elii1 simprbi
      cmin 0le0 iftrued adantl eqtrd ) AEHIJKLZMLZNZUAEBCDUBOLOZEVBPQZJEUFLZBOZ
      VGIUQLCOZUCZVHVDAEHIMLZNZVEVJRVCVKEHSNISNHHPQVBIPQVCVKUDUETURVBIUGTUHUIHI
      HVBUJUKULABCDEFGUMUNVDVJVHRAVDVFVHVIVDVLVFEUOUPUSUTVA $.

    $( The starting point of a path concatenation.  (Contributed by Jeff
       Madsen, 15-Jun-2010.) $)
    pco0 $p |- ( ph -> ( ( F ( *p ` J ) G ) ` 0 ) = ( F ` 0 ) ) $=
      ( cc0 cpco cfv co c2 cmul c1 cdiv cicc wcel cle wbr 0re halfre cr halfgt0
      wceq 0le0 ltleii elicc2i mpbir3an pcoval1 mpan2 2t0e0 fveq2i syl6eq ) AGB
      CDHIJIZKGLJZBIZGBIAGGMKNJZOJPZUMUOUCUQGUAPGGQRGUPQRSUDGUPSTUBUEGUPGSTUFUG
      ABCDGEFUHUIUNGBUJUKUL $.

    $( The ending point of a path concatenation.  (Contributed by Jeff Madsen,
       15-Jun-2010.) $)
    pco1 $p |- ( ph -> ( ( F ( *p ` J ) G ) ` 1 ) = ( G ` 1 ) ) $=
      ( vx c1 cpco cfv co cc0 cicc c2 cle wbr cmul cmin wceq syl6eq cv cdiv cif
      cmpt pcoval fveq1d wcel 1elunit clt halflt1 halfre 1re ltnlei mpbi mtbiri
      wn breq1 iffalsed oveq2 2t1e2 oveq1d 2m1e1 fveq2d eqtrd eqid fvmpt ax-mp
      fvex ) AHBCDIJKZJHGLHMKZGUAZHNUBKZOPZNVKQKZBJZVNHRKZCJZUCZUDZJZHCJZAHVIVS
      AGBCDEFUEUFHVJUGVTWASUHGHVRWAVJVSVKHSZVRVQWAWBVMVOVQWBVMHVLOPZVLHUIPWCUPU
      JVLHUKULUMUNVKHVLOUQUOURWBVPHCWBVPNHRKHWBVNNHRWBVNNHQKNVKHNQUSUTTVAVBTVCV
      DVSVEHCVHVFVGT $.

    pcoval2.4 $e |- ( ph -> ( F ` 1 ) = ( G ` 0 ) ) $.
    $( Evaluate the concatenation of two paths on the second half.
       (Contributed by Jeff Madsen, 15-Jun-2010.)  (Proof shortened by Mario
       Carneiro, 7-Jun-2014.) $)
    pcoval2 $p |- ( ( ph /\ X e. ( ( 1 / 2 ) [,] 1 ) ) ->
                  ( ( F ( *p ` J ) G ) ` X ) = ( G ` ( ( 2 x. X ) - 1 ) ) ) $=
      ( c1 c2 co wcel wa cfv cle wbr cmul cc0 wceq cr cdiv cicc cif wss 0re 1re
      cpco halfre halfgt0 ltleii iccss mp4an sseli pcovalg sylan2 adantr simprr
      cmin 1le1 elicc2i simp2bi ad2antrl wb simp1bi letri3 mpbir2and oveq2d 2cn
      sylancl 2ne0 recidi syl6eq fveq2d oveq1d 3eqtr4d ifeq1d ifid expr iffalse
      1m1e0 pm2.61d1 eqtrd ) AEIJUAKZIUBKZLZMZEBCDUGNKNZEWCOPZJEQKZBNZWIIURKZCN
      ZUCZWLWEAERIUBKZLWGWMSWDWNERTLITLRWCOPIIOPWDWNUDUEUFRWCUEUHUIUJUSRIWCIUKU
      LUMABCDEFGUNUOWFWHWMWLSZAWEWHWOAWEWHMZMZWMWHWLWLUCWLWQWHWJWLWLWQIBNZRCNZW
      JWLAWRWSSWPHUPWQWIIBWQWIJWCQKIWQEWCJQWQEWCSZWHWCEOPZAWEWHUQWEXAAWHWEETLZX
      AEIOPZWCIEUHUFUTZVAVBWQXBWCTLWTWHXAMVCWEXBAWHWEXBXAXCXDVDVBUHEWCVEVIVFVGJ
      VHVJVKVLZVMWQWKRCWQWKIIURKRWQWIIIURXEVNVTVLVMVOVPWHWLVQVLVRWHWJWLVSWAWB
      $.

    $( The concatenation of two paths is a path.  (Contributed by Jeff Madsen,
       19-Jun-2010.)  (Proof shortened by Mario Carneiro, 7-Jun-2014.) $)
    pcocn $p |- ( ph -> ( F ( *p ` J ) G ) e. ( II Cn J ) ) $=
      ( vx vy vz cfv co cc0 c1 c2 cmul cii wcel a1i cr cpco cicc cv cle wbr cif
      cdiv cmin cmpt ccn pcoval ctopon iitopon cnmptid 0elunit cnmptc crn crest
      cioo ctg eqid 0re 1re halfre halfgt0 ltleii halflt1 elicc2i mpbir3an wceq
      dfii2 wa adantr simprl oveq2d 2cn 2ne0 recidi syl6eq fveq2d 1m1e0 3eqtr4d
      retopon iccssre mp2an resttopon cnmpt1st iihalf1cn oveq2 cnmpt21 cnmpt21f
      oveq1d wss iihalf2cn cnmpt2pc breq1 ifbieq12d cnmpt12 eqeltrd ) ABCDUAKLH
      MNUBLZHUCZNOUGLZUDUEZOXAPLZBKZXDNUHLZCKZUFZUIQDUJLAHBCDEFUKAHIJXAMIUCZXBU
      DUEZOXIPLZBKZXKNUHLZCKZUFZXHQQQDWTWTWTQWTULKRAUMSZAHQWTXPUNAHMQQWTWTXPXPM
      WTRAUOSUPXPXPAIJMXBNXLUSUQUTKZXNQDXQMXBUBLZURLZXQXBNUBLZURLZQWTXQVAXSVAZY
      AVAZVKMTRZAVBSNTRZAVCSXBWTRZAYFXBTRZMXBUDUEXBNUDUEVDMXBVBVDVEVFXBNVDVCVGV
      FMNXBVBVCVHVISXPAXIXBVJZJUCZWTRZVLZVLZNBKZMCKZXLXNAYMYNVJYKGVMYLXKNBYLXKO
      XBPLNYLXIXBOPAYHYJVNVOOVPVQVRVSZVTYLXMMCYLXMNNUHLMYLXKNNUHYOWLWAVSVTWBAIJ
      XKBXSQQDXRWTXSXRULKRZAXQTULKRZXRTWMZYPWCYDYGYRVBVDMXBWDWEXRXQTWFWESZXPAIJ
      HXIXDXKXSQXSQXRWTXRYSXPAIJXSQXRWTYSXPWGYSHXRXDUIXSQUJLRAHXSYBWHSXAXIOPWIZ
      WJEWKAIJXMCYAQQDXTWTYAXTULKRZAYQXTTWMZUUAWCYGYEUUBVDVCXBNWDWEXTXQTWFWESZX
      PAIJHXIXFXMYAQYAQXTWTXTUUCXPAIJYAQXTWTUUCXPWGUUCHXTXFUIYAQUJLRAHYAYCWNSXA
      XIVJXDXKNUHYTWLWJFWKWOXIXAVJZXOXHVJYIMVJUUDXJXCXLXNXEXGXIXAXBUDWPUUDXKXDB
      XIXAOPWIZVTUUDXMXFCUUDXKXDNUHUUEWLVTWQVMWRWS $.

    copco.6 $e |- ( ph -> H e. ( J Cn K ) ) $.
    $( The composition of a concatenation of paths with a continuous function.
       (Contributed by Mario Carneiro, 9-Jul-2015.) $)
    copco $p |- ( ph ->
      ( H o. ( F ( *p ` J ) G ) ) = ( ( H o. F ) ( *p ` K ) ( H o. G ) ) ) $=
      ( vx c1 co cfv cif wcel wf cii cnf syl vy cc0 cicc cdiv cle wbr cmul ccom
      cv c2 cmin cmpt cpco wceq cuni ccn iiuni eqid elii1 iihalf1 sylbir syl2an
      wa fvco3 anassrs ifeq1da wn elii2 iihalf2 ifeq2da eqtrd mpteq2dva syl2anc
      cnco pcoval wral pcocn eqeltrrd fmpt sylibr feqmptd fveq2 syl6eq 3eqtr4rd
      fvif fmptcof ) AKUBLUCMZKUIZLUJUDMZUEUFZUJWHUGMZDBUHZNZWKLUKMZDCUHZNZOZUL
      KWGWJWKBNZDNZWNCNZDNZOZULWLWOFUMNMDBCEUMNMZUHAKWGWQXBAWHWGPZVCZWQWJWSWPOX
      BXEWJWMWSWPAXDWJWMWSUNZAWGEUOZBQZWKWGPZXFXDWJVCZABREUPMZPZXHGBREWGXGUQXGU
      RZSTXJWHUBWIUCMPXIWHUSWHUTVAWGXGWKDBVDVBVEVFXEWJWPXAWSAXDWJVGZWPXAUNZAWGX
      GCQZWNWGPZXOXDXNVCZACXKPZXPHCREWGXGUQXMSTXRWHWILUCMPXQWHVHWHVITWGXGWNDCVD
      VBVEVJVKVLAKWLWOFAXLDEFUPMPZWLRFUPMZPGJBDREFVNVMAXSXTWOYAPHJCDREFVNVMVOAK
      UAWGXGWJWRWTOZUAUIZDNZXBXCDAWGXGKWGYBULZQZYBXGPKWGVPAYEXKPYFAXCYEXKAKBCEG
      HVOZABCEGHIVQVRYEREWGXGUQXMSTKWGXGYBYEYEURVSVTYGAUAXGFUOZDAXTXGYHDQJDEFXG
      YHXMYHURSTWAYCYBUNYDYBDNXBYCYBDWBWJWRWTDWEWCWFWD $.
  $}

  ${
    $d m n s x y F $.  $d s x y M $.  $d s x y N $.  $d m n s x y z ph $.
    $d m n s x y G $.  $d m n s x y H $.  $d m n s x y J $.  $d s P $.
    $d m n s x y K $.
    pcohtpy.4 $e |- ( ph -> ( F ` 1 ) = ( G ` 0 ) ) $.
    pcohtpy.5 $e |- ( ph -> F ( ~=ph ` J ) H ) $.
    pcohtpy.6 $e |- ( ph -> G ( ~=ph ` J ) K ) $.
    ${
      pcohtpylem.7 $e |- P = ( x e. ( 0 [,] 1 ) , y e. ( 0 [,] 1 ) |->
                               if ( x <_ ( 1 / 2 ) ,
                         ( ( 2 x. x ) M y ) , ( ( ( 2 x. x ) - 1 ) N y ) ) ) $.
      pcohtpylem.8 $e |- ( ph -> M e. ( F ( PHtpy ` J ) H ) ) $.
      pcohtpylem.9 $e |- ( ph -> N e. ( G ( PHtpy ` J ) K ) ) $.
      $( Lemma for ~ pcohtpy .  (Contributed by Jeff Madsen, 15-Jun-2010.)
         (Revised by Mario Carneiro, 24-Feb-2015.) $)
      pcohtpylem $p |- ( ph ->
        P e. ( ( F ( *p ` J ) G ) ( PHtpy ` J ) ( H ( *p ` J ) K ) ) ) $=
        ( co c1 cc0 vs vz cpco cfv cii ccn cphtpy c0 wne cphtpc wbr w3a isphtpc
        wcel sylib simp1d pcocn simp2d wceq phtpy01 simprd simpld 3eqtr3d cv c2
        cicc cdiv cle cmul cmin cif cmpt2 ctx cioo crn ctg crest eqid 0red 1red
        dfii2 halfre 0re halfgt0 ltleii 1re halflt1 elicc2i mpbir3an a1i ctopon
        cr iitopon wa adantr phtpyi adantrl 3eqtr4d simprl oveq2d syl6eq oveq1d
        2cn wss retopon iccssre resttopon cnmpt1st cmpt cnmpt21 cnmpt2nd sseldd
        mp2an phtpycn cnmpt22f weq simpll adantll phtpyhtpy htpyi iftrue adantl
        syl2anc wn iffalse pm2.61dan simpr 0elunit simpl oveq12d ifbieq12d ovex
        breq1d ifex ovmpt2a sylancl pcovalg 1elunit eqtrd sylancr 2ne0 cnmpt2pc
        recidi 1m1e0 iihalf1cn oveq2 iihalf2cn elii1 iihalf1 sylbir chtpy elii2
        syl5eqel iihalf2 syl syl6eqbr iftrued 2t0e0 pco0 clt ltnlei mpbi mtbiri
        iffalsed 2t1e2 2m1e1 pco1 isphtpy2d ) AEFHUCUDZRZGIUVIRZDHUAAEFHAEUEHUF
        RZUNZGUVLUNZEGHUGUDZRZUHUIZAEGHUJUDZUKUVMUVNUVQULMEGHUMUOZUPZAFUVLUNZIU
        VLUNZFIUVORZUHUIZAFIUVRUKUWAUWBUWDULNFIHUMUOZUPZLUQAGIHAUVMUVNUVQUVSURZ
        AUWAUWBUWDUWEURZASEUDZTFUDZSGUDZTIUDZLATEUDZTGUDUSUWIUWKUSAEGJHUVTUWGPU
        TVAAUWJUWLUSSFUDZSIUDUSAFIKHUWFUWHQUTVBVCUQADBCTSVFRZUWOBVDZSVEVGRZVHUK
        ZVEUWPVIRZCVDZJRZUWSSVJRZUWTKRZVKZVLUEUEVMRHUFRZOABCTUWQSUXAVNVOVPUDZUX
        CUEHUXFTUWQVFRZVQRZUXFUWQSVFRZVQRZUEUWOUXFVRUXHVRZUXJVRZWAAVSAVTUWQUWOU
        NZAUXMUWQWLUNZTUWQVHUKUWQSVHUKWBTUWQWCWBWDWEZUWQSWBWFWGWETSUWQWCWFWHWIW
        JUEUWOWKUDUNAWMWJZAUWPUWQUSZUWTUWOUNZWNZWNZSUWTJRZTUWTKRZUXAUXCUXTUWIUW
        JUYAUYBAUWIUWJUSUXSLWOAUXRUYAUWIUSZUXQAUXRWNZTUWTJRUWMUSUYCAUWTEGJHUVTU
        WGPWPVAWQAUXRUYBUWJUSZUXQUYDUYESUWTKRUWNUSAUWTFIKHUWFUWHQWPVBWQWRUXTUWS
        SUWTJUXTUWSVEUWQVIRSUXTUWPUWQVEVIAUXQUXRWSWTVEXCUUAUUCXAZXBUXTUXBTUWTKU
        XTUXBSSVJRTUXTUWSSSVJUYFXBUUDXAXBWRABCUWSUWTJUXHUEUEUEHUXGUWOUXHUXGWKUD
        UNZAUXFWLWKUDUNZUXGWLXDZUYGXETWLUNUXNUYIWCWBTUWQXFXMUXGUXFWLXGXMWJZUXPA
        BCUBUWPVEUBVDZVIRZUWSUXHUEUXHUEUXGUWOUXGUYJUXPABCUXHUEUXGUWOUYJUXPXHUYJ
        UBUXGUYLXIUXHUEUFRUNAUBUXHUXKUUEWJUYKUWPVEVIUUFZXJABCUXHUEUXGUWOUYJUXPX
        KAUVPUXEJAEGHUVTUWGXNPXLXOABCUXBUWTKUXJUEUEUEHUXIUWOUXJUXIWKUDUNZAUYHUX
        IWLXDZUYNXEUXNSWLUNUYOWBWFUWQSXFXMUXIUXFWLXGXMWJZUXPABCUBUWPUYLSVJRZUXB
        UXJUEUXJUEUXIUWOUXIUYPUXPABCUXJUEUXIUWOUYPUXPXHUYPUBUXIUYQXIUXJUEUFRUNA
        UBUXJUXLUUGWJUBBXPUYLUWSSVJUYMXBXJABCUXJUEUXIUWOUYPUXPXKAUWCUXEKAFIHUWF
        UWHXNQXLXOUUBUUMAUAVDZUWOUNZWNZUYRUWQVHUKZVEUYRVIRZTJRZVUBSVJRZTKRZVKZV
        UAVUBEUDZVUDFUDZVKZUYRTDRZUYRUVJUDUYTVUAVUFVUIUSUYTVUAWNZVUCVUGVUFVUIVU
        KVUCVUGUSZVUBSJRZVUBGUDZUSZVUKAVUBUWOUNZVULVUOWNAUYSVUAXQUYSVUAVUPAUYSV
        UAWNUYRUXGUNVUPUYRUUHUYRUUIUUJXRAVUBEGJUEHUWOUXPUVTUWGAUVPEGUEHUUKRZRJA
        EGHUVTUWGXSPXLXTYCZVBVUAVUFVUCUSUYTVUAVUCVUEYAYBVUAVUIVUGUSUYTVUAVUGVUH
        YAYBWRUYTVUAYDZWNZVUEVUHVUFVUIVUTVUEVUHUSZVUDSKRZVUDIUDZUSZVUTAVUDUWOUN
        ZVVAVVDWNAUYSVUSXQVUTUYRUXIUNZVVEUYSVUSVVFAUYRUULXRUYRUUNUUOAVUDFIKUEHU
        WOUXPUWFUWHAUWCFIVUQRKAFIHUWFUWHXSQXLXTYCZVBVUSVUFVUEUSUYTVUAVUCVUEYEYB
        VUSVUIVUHUSUYTVUAVUGVUHYEYBWRYFUYTUYSTUWOUNZVUJVUFUSAUYSYGZYHBCUYRTUWOU
        WOUXDVUFDBUAXPZUWTTUSZWNZUWRVUAUXAUXCVUCVUEVVLUWPUYRUWQVHVVJVVKYIZYMVVL
        UWSVUBUWTTJVVLUWPUYRVEVIVVMWTZVVJVVKYGZYJVVLUXBVUDUWTTKVVLUWSVUBSVJVVNX
        BVVOYJYKOVUAVUCVUEVUBTJYLVUDTKYLYNYOYPAEFHUYRUVTUWFYQWRUYTVUAVUMVVBVKZV
        UAVUNVVCVKZUYRSDRZUYRUVKUDUYTVUAVVPVVQUSVUKVUMVUNVVPVVQVUKVULVUOVURVAVU
        AVVPVUMUSUYTVUAVUMVVBYAYBVUAVVQVUNUSUYTVUAVUNVVCYAYBWRVUTVVBVVCVVPVVQVU
        TVVAVVDVVGVAVUSVVPVVBUSUYTVUAVUMVVBYEYBVUSVVQVVCUSUYTVUAVUNVVCYEYBWRYFU
        YTUYSSUWOUNZVVRVVPUSVVIYRBCUYRSUWOUWOUXDVVPDVVJUWTSUSZWNZUWRVUAUXAUXCVU
        MVVBVWAUWPUYRUWQVHVVJVVTYIZYMVWAUWSVUBUWTSJVWAUWPUYRVEVIVWBWTZVVJVVTYGZ
        YJVWAUXBVUDUWTSKVWAUWSVUBSVJVWCXBVWDYJYKOVUAVUMVVBVUBSJYLVUDSKYLYNYOYPA
        GIHUYRUWGUWHYQWRUYTTUYRJRZUWMTUYRDRZTUVJUDZUYTVWEUWMUSSUYRJRUWIUSAUYREG
        JHUVTUWGPWPVBUYTVVHUYSVWFVWEUSYHVVIBCTUYRUWOUWOUXDVWEDUWPTUSZCUAXPZWNZU
        XDUXAVWEVWJUWRUXAUXCVWJUWPTUWQVHVWHVWIYIZUXOUUPUUQVWJUWSTUWTUYRJVWJUWSV
        ETVIRTVWJUWPTVEVIVWKWTUURXAVWHVWIYGYJYSOTUYRJYLYOYTAVWGUWMUSUYSAEFHUVTU
        WFUUSWOWRUYTSUYRKRZUWNSUYRDRZSUVJUDZUYTTUYRKRUWJUSVWLUWNUSAUYRFIKHUWFUW
        HQWPVAUYTVVSUYSVWMVWLUSYRVVIBCSUYRUWOUWOUXDVWLDUWPSUSZVWIWNZUXDUXCVWLVW
        PUWRUXAUXCVWPUWRSUWQVHUKZUWQSUUTUKVWQYDWGUWQSWBWFUVAUVBVWPUWPSUWQVHVWOV
        WIYIZYMUVCUVDVWPUXBSUWTUYRKVWPUXBVESVJRSVWPUWSVESVJVWPUWSVESVIRVEVWPUWP
        SVEVIVWRWTUVEXAXBUVFXAVWOVWIYGYJYSOSUYRKYLYOYTAVWNUWNUSUYSAEFHUVTUWFUVG
        WOWRUVH $.
    $}

    $( Homotopy invariance of path concatenation.  (Contributed by Jeff Madsen,
       15-Jun-2010.)  (Revised by Mario Carneiro, 24-Feb-2015.) $)
    pcohtpy $p |- ( ph ->
                    ( F ( *p ` J ) G ) ( ~=ph ` J ) ( H ( *p ` J ) K ) ) $=
      ( vm vn cfv co wcel wbr sylib c1 cc0 wceq wa vx vy cpco cii ccn cphtpy c0
      wne cphtpc w3a isphtpc simp1d simp2d phtpc01 syl simprd simpld 3eqtr3d cv
      pcocn wex simp3d n0 eeanv sylanbrc cicc c2 cdiv cle cmul cif cmpt2 adantr
      cmin eqid simprl simprr pcohtpylem ne0i ex exlimdvv mpd syl3anbrc ) ABCEU
      CLZMZUDEUEMZNDFWDMZWFNWEWGEUFLZMZUGUHZWEWGEUILZOABCEABWFNZDWFNZBDWHMZUGUH
      ZABDWKOZWLWMWOUJHBDEUKPZULACWFNZFWFNZCFWHMZUGUHZACFWKOZWRWSXAUJICFEUKPZUL
      GUTADFEAWLWMWOWQUMAWRWSXAXCUMAQBLZRCLZQDLZRFLZGARBLRDLSZXDXFSZAWPXHXITHBD
      EUNUOUPAXEXGSZQCLQFLSZAXBXJXKTICFEUNUOUQURUTAJUSZWNNZKUSZWTNZTZKVAJVAZWJA
      XMJVAZXOKVAZXQAWOXRAWLWMWOWQVBJWNVCPAXAXSAWRWSXAXCVBKWTVCPXMXOJKVDVEAXPWJ
      JKAXPWJAXPTZUAUBRQVFMZYAUAUSZQVGVHMVIOVGYBVJMZUBUSZXLMYCQVNMYDXNMVKVLZWIN
      WJXTUAUBYEBCDEFXLXNAXDXESXPGVMAWPXPHVMAXBXPIVMYEVOAXMXOVPAXMXOVQVRWIYEVSU
      OVTWAWBWEWGEUKWC $.
  $}

  ${
    $d x y z F $.  $d x y z J $.  $d x P $.  $d x y z Y $.
    pcopt.1 $e |- P = ( ( 0 [,] 1 ) X. { Y } ) $.
    $( A constant function is a path from ` Y ` to itself.  (Contributed by
       Mario Carneiro, 12-Feb-2015.)  (Revised by Mario Carneiro,
       19-Mar-2015.) $)
    pcoptcl $p |- ( ( J e. ( TopOn ` X ) /\ Y e. X ) ->
      ( P e. ( II Cn J ) /\ ( P ` 0 ) = Y /\ ( P ` 1 ) = Y ) ) $=
      ( ctopon cfv wcel wa cii ccn co cc0 wceq c1 cicc fveq1i fvconst2g sylancl
      syl5eq csn iitopon cnconst2 mp3an1 syl5eqel simpr 0elunit 1elunit 3jca
      cxp ) BCFGHZDCHZIZAJBKLZHMAGZDNOAGZDNUMAMOPLZDUAUJZUNEJUQFGHUKULURUNHUBDJ
      BUQCUCUDUEUMUOMURGZDMAUREQUMULMUQHUSDNUKULUFZUGUQDMCRSTUMUPOURGZDOAUREQUM
      ULOUQHVADNUTUHUQDOCRSTUI $.

    $( Concatenation with a point does not affect homotopy class.  (Contributed
       by Jeff Madsen, 19-Jun-2010.)  (Revised by Mario Carneiro,
       20-Dec-2013.) $)
    pcopt $p |- ( ( F e. ( II Cn J ) /\ ( F ` 0 ) = Y )
                                -> ( P ( *p ` J ) F ) ( ~=ph ` J ) F ) $=
      ( vx vy cii co wcel cc0 cfv wceq c1 c2 cle cmul cmin a1i cr ccn cpco cicc
      vz wa cv cdiv wbr cif cmpt ccom cphtpc csn cxp fveq1i cuni simpr wf iiuni
      eqid cnf adantr 0elunit ffvelrn sylancl eqeltrrd iihalf1 sylbir fvconst2g
      elii1 syl2an syl5eq simplr eqtr4d ifeq1d expr wn iffalse mpteq2dva ctopon
      pm2.61d1 w3a ctop cntop2 sylib pcoptcl syl2anc simp1d simpl pcoval adantl
      toptopon elii2 iihalf2 syl eqeltrd iftrue syl6eqel pm2.61d2 feqmptd fveq2
      ex fvif syl6eq fmptco 3eqtr4d iitopon cnmptid cnmptc cioo crn crest dfii2
      ctg 0re halfre halfgt0 ltleii halflt1 elicc2i mpbir3an simprl oveq2d 2ne0
      1re 2cn recidi oveq1d 1m1e0 syl6req retopon iccssre mp2an resttopon oveq2
      wss weq breq1 fvmpt mp1i cnmpt1st iihalf2cn cnmpt2pc ifbieq2d id syl6eqbr
      cnmpt2c cnmpt21 cnmpt12 c0ex 1elunit ltnlei mpbi mtbiri 2t1e2 2m1e1 eqtrd
      clt 1ex reparpht eqbrtrd ) BHCUAIZJZKBLZDMZUEZABCUBLIZBFKNUCIZFUFZNOUGIZP
      UHZKOUVIQIZNRIZUIZUJZUKZBCULLUVFFUVHUVKUVLALZUVMBLZUIZUJFUVHUVKUVDUVRUIZU
      JUVGUVPUVFFUVHUVSUVTUVFUVIUVHJZUEUVKUVSUVTMZUVFUWAUVKUWBUVFUWAUVKUEZUEZUV
      KUVQUVDUVRUWDUVQDUVDUWDUVQUVLUVHDUMUNZLZDUVLAUWEEUOUVFDCUPZJZUVLUVHJZUWFD
      MUWCUVFUVDDUWGUVCUVEUQUVFUVHUWGBURZKUVHJZUVDUWGJUVCUWJUVEBHCUVHUWGUSUWGUT
      ZVAVBZVCUVHUWGKBVDVEVFZUWCUVIKUVJUCIZJUWIUVIVJUVIVGVHUVHDUVLUWGVIVKVLUVCU
      VEUWCVMVNVOVPUVKVQZUVSUVRUVTUVKUVQUVRVRUVKUVDUVRVRVNWAVSUVFFABCUVFAUVBJZK
      ALDMZNALDMZUVFCUWGVTLJZUWHUWQUWRUWSWBUVFCWCJZUWTUVCUXAUVEBHCWDVBCUWGUWLWL
      WEUWNACUWGDEWFWGWHUVCUVEWIZWJUVFFGUVHUVHUVNGUFZBLZUVTUVOBUWAUVNUVHJZUVFUW
      AUVKUXEUWAUWPUXEUWAUWPUEZUVNUVMUVHUWPUVNUVMMZUWAUVKKUVMVRZWKUXFUVIUVJNUCI
      ZJUVMUVHJUVIWMUVIWNWOWPXBUVKUVNKUVHUVKKUVMWQZVCWRWSWKUVOUVOMUVFUVOUTZSUVF
      GUVHUWGBUWMWTUXCUVNMUXDUVNBLUVTUXCUVNBXAUVKKUVMBXCXDXEXFUVFBUVOCUXBUVFFGU
      DUVIKUXCUVJPUHZKOUXCQIZNRIZUIZUVNHHHHUVHUVHUVHHUVHVTLJUVFXGSZUVFFHUVHUXPX
      HUVFFKHHUVHUVHUXPUXPUWKUVFVCSZXIUXPUXPUVFGUDKUVJNKXJXKXNLZUXNHHUXRUWOXLIZ
      UXRUXIXLIZHUVHUXRUTUXSUTUXTUTZXMKTJZUVFXOSNTJZUVFYESUVJUVHJZUVFUYDUVJTJZK
      UVJPUHUVJNPUHXPKUVJXOXPXQXRZUVJNXPYEXSXRKNUVJXOYEXTYASUXPUVFUXCUVJMZUDUFZ
      UVHJZUEUEZUXNNNRIKUYJUXMNNRUYJUXMOUVJQINUYJUXCUVJOQUVFUYGUYIYBYCOYFYDYGXD
      YHYIYJUVFGUDKUXSHHUWOUVHUVHUXSUWOVTLJZUVFUXRTVTLJZUWOTYPZUYKYKUYBUYEUYMXO
      XPKUVJYLYMUWOUXRTYNYMSUXPUXPUXQUUGUVFGUDFUXCUVMUXNUXTHUXTHUXIUVHUXIUXTUXI
      VTLJZUVFUYLUXITYPZUYNYKUYEUYCUYOXPYEUVJNYLYMUXIUXRTYNYMSZUXPUVFGUDUXTHUXI
      UVHUYPUXPUUAUYPFUXIUVMUJUXTHUAIJUVFFUXTUYAUUBSFGYQUVLUXMNRUVIUXCOQYOYHUUH
      UUCGFYQZUXOUVNMUYHKMUYQUXLUVKUXNUVMKUXCUVIUVJPYRUYQUXMUVLNRUXCUVIOQYOYHUU
      DVBUUIUWKKUVOLKMUVFVCFKUVNKUVHUVOUVIKMZUVKUVNKMUYRUVIKUVJPUYRUUEUYFUUFUXJ
      WOUXKUUJYSYTNUVHJNUVOLNMUVFUUKFNUVNNUVHUVOUVINMZUVNUVMNUYSUWPUXGUYSUVKNUV
      JPUHZUVJNUURUHUYTVQXSUVJNXPYEUULUUMUVINUVJPYRUUNUXHWOUYSUVMONRINUYSUVLONR
      UYSUVLONQIOUVINOQYOUUOXDYHUUPXDUUQUXKUUSYSYTUUTUVA $.

    $( Concatenation with a point does not affect homotopy class.  (Contributed
       by Mario Carneiro, 12-Feb-2015.) $)
    pcopt2 $p |- ( ( F e. ( II Cn J ) /\ ( F ` 1 ) = Y )
                  -> ( F ( *p ` J ) P ) ( ~=ph ` J ) F ) $=
      ( vx vy cii co wcel c1 cfv wceq wa cc0 c2 cle cmul a1i cr vz cpco cicc cv
      ccn cdiv wbr cif cmpt ccom cphtpc cmin wn csn cxp fveq1i cuni simpr iiuni
      wf eqid cnf adantr 1elunit ffvelrn sylancl eqeltrrd iihalf2 syl fvconst2g
      elii2 syl2an syl5eq simplr eqtr4d anassrs mpteq2dva simpl ctopon w3a ctop
      ifeq2da cntop2 toptopon sylib pcoptcl syl2anc simp1d pcoval iftrue adantl
      elii1 iihalf1 sylbir eqeltrd iffalse syl6eqel pm2.61d1 eqidd feqmptd fvif
      fveq2 syl6eq fmptco 3eqtr4d iitopon cnmptid 0elunit cnmptc cioo crn crest
      ex ctg dfii2 0re 1re halfre halfgt0 ltleii halflt1 mpbir3an simprl oveq2d
      elicc2i 2cn recidi wss retopon iccssre mp2an resttopon cnmpt1st iihalf1cn
      2ne0 oveq2 cnmpt21 breq1 fvmpt mp1i cnmpt2c cnmpt2pc ifbieq1d id syl6eqbr
      cnmpt12 2t0e0 eqtrd c0ex clt ltnlei mpbi mtbiri 1ex reparpht eqbrtrd ) BH
      CUEIZJZKBLZDMZNZBACUBLIZBFOKUCIZFUDZKPUFIZQUGZPUVDRIZKUHZUIZUJZBCUKLUVAFU
      VCUVFUVGBLZUVGKULIZALZUHZUIFUVCUVFUVKUUSUHZUIUVBUVJUVAFUVCUVNUVOUVAUVDUVC
      JZNUVFUVMUUSUVKUVAUVPUVFUMZUVMUUSMUVAUVPUVQNZNZUVMDUUSUVSUVMUVLUVCDUNUOZL
      ZDUVLAUVTEUPUVADCUQZJZUVLUVCJZUWADMUVRUVAUUSDUWBUURUUTURUVAUVCUWBBUTZKUVC
      JZUUSUWBJUURUWEUUTBHCUVCUWBUSUWBVAZVBVCZVDUVCUWBKBVEVFVGZUVRUVDUVEKUCIZJU
      WDUVDVKUVDVHVIUVCDUVLUWBVJVLVMUURUUTUVRVNVOVPWBVQUVAFBACUURUUTVRZUVAAUUQJ
      ZOALDMZKALDMZUVACUWBVSLJZUWCUWLUWMUWNVTUVACWAJZUWOUURUWPUUTBHCWCVCCUWBUWG
      WDWEUWIACUWBDEWFWGWHWIUVAFGUVCUVCUVHGUDZBLZUVOUVIBUVPUVHUVCJZUVAUVPUVFUWS
      UVPUVFUWSUVPUVFNZUVHUVGUVCUVFUVHUVGMZUVPUVFUVGKWJZWKUWTUVDOUVEUCIZJUVGUVC
      JUVDWLUVDWMWNWOXMUVQUVHKUVCUVFUVGKWPZVDWQWRWKUVAUVIWSUVAGUVCUWBBUWHWTUWQU
      VHMUWRUVHBLUVOUWQUVHBXBUVFUVGKBXAXCXDXEUVABUVICUWKUVAFGUAUVDOUWQUVEQUGZPU
      WQRIZKUHZUVHHHHHUVCUVCUVCHUVCVSLJUVAXFSZUVAFHUVCUXHXGUVAFOHHUVCUVCUXHUXHO
      UVCJZUVAXHSXIUXHUXHUVAGUAOUVEKUXFXJXKXNLZKHHUXJUXCXLIZUXJUWJXLIZHUVCUXJVA
      UXKVAZUXLVAXOOTJZUVAXPSKTJZUVAXQSUVEUVCJZUVAUXPUVETJZOUVEQUGUVEKQUGXROUVE
      XPXRXSXTZUVEKXRXQYAXTOKUVEXPXQYEYBSUXHUVAUWQUVEMZUAUDZUVCJZNNZUXFPUVERIKU
      YBUWQUVEPRUVAUXSUYAYCYDPYFYOYGXCUVAGUAFUWQUVGUXFUXKHUXKHUXCUVCUXCUXKUXCVS
      LJZUVAUXJTVSLJZUXCTYHZUYCYIUXNUXQUYEXPXROUVEYJYKUXCUXJTYLYKSZUXHUVAGUAUXK
      HUXCUVCUYFUXHYMUYFFUXCUVGUIUXKHUEIJUVAFUXKUXMYNSUVDUWQPRYPYQUVAGUAKUXLHHU
      WJUVCUVCUXLUWJVSLJZUVAUYDUWJTYHZUYGYIUXQUXOUYHXRXQUVEKYJYKUWJUXJTYLYKSUXH
      UXHUWFUVAVDSUUAUUBUWQUVDMZUXGUVHMUXTOMUYIUXEUVFUXFUVGKUWQUVDUVEQYRUWQUVDP
      RYPUUCVCUUFUXIOUVILOMUVAXHFOUVHOUVCUVIUVDOMZUVHUVGOUYJUVFUXAUYJUVDOUVEQUY
      JUUDUXRUUEUXBVIUYJUVGPORIOUVDOPRYPUUGXCUUHUVIVAZUUIYSYTUWFKUVILKMUVAVDFKU
      VHKUVCUVIUVDKMZUVQUVHKMUYLUVFKUVEQUGZUVEKUUJUGUYMUMYAUVEKXRXQUUKUULUVDKUV
      EQYRUUMUXDVIUYKUUNYSYTUUOUUP $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x y H $.  $d x y J $.  $d x y z ph $.
    pcoass.2 $e |- ( ph -> F e. ( II Cn J ) ) $.
    pcoass.3 $e |- ( ph -> G e. ( II Cn J ) ) $.
    pcoass.4 $e |- ( ph -> H e. ( II Cn J ) ) $.
    pcoass.5 $e |- ( ph -> ( F ` 1 ) = ( G ` 0 ) ) $.
    pcoass.6 $e |- ( ph -> ( G ` 1 ) = ( H ` 0 ) ) $.
    pcoass.7 $e |- P = ( x e. ( 0 [,] 1 ) |-> if ( x <_ ( 1 / 2 ) ,
                    if ( x <_ ( 1 / 4 ) , ( 2 x. x ) , ( x + ( 1 / 4 ) ) ) ,
                      ( ( x / 2 ) + ( 1 / 2 ) ) ) ) $.
    $( Order of concatenation does not affect homotopy class.  (Contributed by
       Jeff Madsen, 19-Jun-2010.)  (Proof shortened by Mario Carneiro,
       8-Jun-2014.) $)
    pcoass $p |- ( ph -> ( ( F ( *p ` J ) G ) ( *p ` J ) H ) ( ~=ph ` J )
                    ( F ( *p ` J ) ( G ( *p ` J ) H ) ) ) $=
      ( co cc0 c1 c2 wcel wceq cii vy vz cfv cicc cv cdiv cle wbr c4 cmul caddc
      cif cmpt wa iftrue fveq2d adantl cc 2cn cr 0re 1re elicc2i simp1bi adantr
      cmin recnd sylancr simp2bi ax-mp syl3anbrc 2rp 2ne0 oveq2i halfcn 2halves
      eqtri iccdili eqeltrd pcocn pcoval1 eqtr4d sylan2 anassrs eqtrd wn halfre
      syl sylancl a1i clt 2re 4re 4pos mpbi ltleii ax-1cn pcoval2 syl6eq oveq1d
      syl2anc 2cnd 3eqtrd iffalse 3eqtr4d pm2.61dan wss halflt1 mpbir3an iccss2
      1elunit mp2an eqid oveq2d wf ccn ctopon cnmptid cnmptc crest dfii2 simprl
      ltnlei mtbiri iffalsed retopon cxr mp3an iccssre resttopon cnmpt1st oveq2
      ctop cvv cnmpt21 sseldi cnmpt12f oveq1 breq1 iiuni cpco ccom cphtpc simpr
      mulcom cn 4nn nnrecre mul02i recni 2timesi wne recdiv2 mp4an 2t2e4 eqtr3i
      oveq12i mulcomli adantlr simplll ad2antlr letric orcanai readdcl leadd1dd
      wo simplr syl5eqbrr simp3bi 2lt4 2pos ltrecii le2addd pco0 adddid syl5eqr
      syl6breq pnpcan2d divcan1i subidi 1mhlfehlf iccshftli subdid recidi elii2
      remulcl halfgt0 icccntri addid2i iccshftri 3syl divdird peano2cn divcan2d
      sseli div0i eqtr3d pncan mpteq2dva wral iitopon 0elunit cioo crn ctg 0red
      1red addcomi breq1d recgt0ii 3eqtr4a 0xr rexri lbicc2 sstri retop restabs
      eqcomi iihalf1cn cnmpt1res ccnfld ctopn unitssre cnfldtopon addcn cnmptre
      ovex ctx cnmpt2pc divccn ifbieq12d equcoms eqcomd cnmpt12 syl5eqel sylibr
      fmpt cuni feqmptd fveq2 fmptcof pcoval 3eqtr4rd id syl6eqbr iftrued 2t0e0
      cnf c0ex fvmpt 1ex reparpht eqbrtrd ) ADEGUUAUCZNZFVUNNZDEFVUNNZVUNNZCUUB
[encoded data, 5920 characters]
      UKVUJWHVULVUM $.
  $}

  ${
    $d s t x y F $.  $d s t y G $.  $d y H $.  $d s t x y J $.  $d s t x y P $.
    pcorev.1 $e |- G = ( x e. ( 0 [,] 1 ) |-> ( F ` ( 1 - x ) ) ) $.
    $( Closure for a reversed path.  (Contributed by Mario Carneiro,
       12-Feb-2015.) $)
    pcorevcl $p |- ( F e. ( II Cn J ) ->
    ( G e. ( II Cn J ) /\ ( G ` 0 ) = ( F ` 1 ) /\ ( G ` 1 ) = ( F ` 0 ) ) ) $=
      ( cii ccn co wcel cc0 cfv c1 wceq cmin cmpt a1i oveq2 syl6eq fveq2d fvex
      cicc cv ctopon iitopon iirevcn cnmpt11f syl5eqel 0elunit 1m0e1 fvmpt mp1i
      id 1elunit 1m1e0 3jca ) BFDGHZIZCUPIJCKLBKZMZLCKJBKZMZUQCAJLUAHZLAUBZNHZB
      KZOUPEUQAVDBFFDVBFVBUCKIUQUDPAVBVDOFFGHIUQAUEPUQULUFUGJVBIUSUQUHAJVEURVBC
      VCJMZVDLBVFVDLJNHLVCJLNQUIRSELBTUJUKLVBIVAUQUMALVEUTVBCVCLMZVDJBVGVDLLNHJ
      VCLLNQUNRSEJBTUJUKUO $.

    pcorev.2 $e |- P = ( ( 0 [,] 1 ) X. { ( F ` 1 ) } ) $.
    ${
      pcorevlem.3 $e |- H = ( s e. ( 0 [,] 1 ) , t e. ( 0 [,] 1 ) |->
                           ( F ` if ( s <_ ( 1 / 2 ) ,
              ( 1 - ( ( 1 - t ) x. ( 2 x. s ) ) ) ,
              ( 1 - ( ( 1 - t ) x. ( 1 - ( ( 2 x. s ) - 1 ) ) ) ) ) ) ) $.
      $( Lemma for ~ pcorev .  Prove continuity of the homotopy function.
         (Contributed by Jeff Madsen, 11-Jun-2010.)  (Proof shortened by Mario
         Carneiro, 8-Jun-2014.) $)
      pcorevlem $p |- ( F e. ( II Cn J ) ->
        ( H e. ( ( G ( *p ` J ) F ) ( PHtpy ` J ) P ) /\
          ( G ( *p ` J ) F ) ( ~=ph ` J ) P ) ) $=
        ( cii co wcel cfv cc0 c1 cmin cmul oveq2d vy ccn cpco cphtpy cphtpc wbr
        cicc cv cmpt ctopon iitopon a1i iirevcn id cnmpt11f syl5eqel wceq oveq2
        1elunit 1m1e0 syl6eq fveq2d fvex fvmpt mp1i pcocn cuni ctop cntop2 eqid
        w3a toptopon sylib wf iiuni ffvelrn sylancl pcoptcl syl2anc simp1d cdiv
        cnf cle cif cmpt2 ctx cioo crn ctg crest dfii2 0red 1red halfre halfgt0
        c2 cr 0re ltleii 1re halflt1 wa 2cn oveq1d 1m0e1 eqtr4d retopon iccssre
        wss mp2an resttopon cnmpt2nd cnmpt21 cnmpt1st cnmpt22 weq simpr 0elunit
        oveq12 simpl breq1d oveq12d ovmpt2a adantl unitssre sseli recnd mulid2d
        ifbieq12d syl eqtrd anassrs wn cc ax-1cn subcl sylancr mul02d sylan9eqr
        mpan elicc2i mpbir3an simprl recidi iihalf1cn iimulcn cnmpt2pc cnmpt21f
        iihalf2cn iftrue elii1 pcoval1 iihalf1 sylan2br iffalse pcoval2 iihalf2
        2ne0 elii2 nncan eqtr2d sylan2 pm2.61dan mulcl ifeq12d csn cxp fvconst2
        ifid fveq1i syl5eq 3eqtr4d syl6eqbr iftrued 2t0e0 mul01d pco0 ax-mp clt
        syl6req ltnlei mpbi mtbiri iffalsed 2t1e2 2m1e1 eqcomd isphtpy2d c0 wne
        pco1 ne0i isphtpc syl3anbrc jca ) DLGUBMZNZFEDGUCOMZCGUDOMZNZUWRCGUEOUF
[encoded data, 4640 characters]
        WPNUXPUWSUWIUWJZUXAUXOUYDUWQUWTWUNWUMUWSFUWLYJUWRCGUWMUWNUWO $.
    $}

    $( Concatenation with the reverse path.  (Contributed by Jeff Madsen,
       19-Jun-2010.)  (Revised by Mario Carneiro, 20-Dec-2013.) $)
    pcorev $p |- ( F e. ( II Cn J ) -> ( G ( *p ` J ) F ) ( ~=ph ` J ) P ) $=
      ( vs vt cii ccn co wcel c1 cv c2 wbr cmin cmul cfv cc0 cicc cle cif cmpt2
      cdiv cpco cphtpy cphtpc eqid pcorevlem simprd ) CJEKLMHIUANUBLZUMHOZNPUFL
      UCQNNIORLZPUNSLZSLRLNUONUPNRLRLSLRLUDCTUEZDCEUGTLZBEUHTLMURBEUITQAIBCDUQE
      HFGUQUJUKUL $.
  $}

  ${
    $d x y F $.  $d y G $.  $d x y J $.
    pcorev2.1 $e |- G = ( x e. ( 0 [,] 1 ) |-> ( F ` ( 1 - x ) ) ) $.
    pcorev2.2 $e |- P = ( ( 0 [,] 1 ) X. { ( F ` 0 ) } ) $.
    $( Concatenation with the reverse path.  (Contributed by Mario Carneiro,
       12-Feb-2015.) $)
    pcorev2 $p |- ( F e. ( II Cn J ) -> ( F ( *p ` J ) G ) ( ~=ph ` J ) P ) $=
      ( vy cii co wcel cc0 c1 cv cmin cfv cmpt csn wceq eqid ccn cxp cphtpc wbr
      cicc cpco pcorevcl simp1d pcorev syl iiuni cnf feqmptd iirev oveq2 fveq2d
      cuni fvmpt cc ax-1cn cr unitssre sseli recnd nncan sylancr eqtrd mpteq2ia
      fvex syl6reqr oveq1d simp3d sneqd xpeq2d syl6eqr 3brtr3d ) CIEUAJZKZHLMUE
      JZMHNZOJZDPZQZDEUFPZJZVSMDPZRZUBZCDWDJBEUCPZVRDVQKZWEWHWIUDVRWJLDPMCPSZWF
      LCPZSZACDEFUGZUHHWHDWCEWCTWHTUIUJVRWCCDWDVRCHVSVTCPZQWCVRHVSEUQZCCIEVSWPU
      KWPTULUMHVSWBWOVTVSKZWBMWAOJZCPZWOWQWAVSKWBWSSVTUNAWAMANZOJZCPWSVSDWTWASX
      AWRCWTWAMOUOUPFWRCVIURUJWQWRVTCWQMUSKVTUSKWRVTSUTWQVTVSVAVTVBVCVDMVTVEVFU
      PVGVHVJVKVRWHVSWLRZUBBVRWGXBVSVRWFWLVRWJWKWMWNVLVMVNGVOVP $.
  $}

  ${
    $d y F $.  $d x y G $.  $d y H $.  $d x y J $.  $d y P $.  $d y ph $.
    pcophtb.h $e |- H = ( x e. ( 0 [,] 1 ) |-> ( G ` ( 1 - x ) ) ) $.
    pcophtb.p $e |- P = ( ( 0 [,] 1 ) X. { ( F ` 0 ) } ) $.
    pcophtb.f $e |- ( ph -> F e. ( II Cn J ) ) $.
    pcophtb.g $e |- ( ph -> G e. ( II Cn J ) ) $.
    pcophtb.0 $e |- ( ph -> ( F ` 0 ) = ( G ` 0 ) ) $.
    pcophtb.1 $e |- ( ph -> ( F ` 1 ) = ( G ` 1 ) ) $.
    $( The path homotopy equivalence relation on two paths ` F , G ` with the
       same start and end point can be written in terms of the loop ` F - G `
       formed by concatenating ` F ` with the inverse of ` G ` .  Thus, all the
       homotopy information in ` ~=ph `` J ` is available if we restrict our
       attention to closed loops, as in the definition of the fundamental
       group.  (Contributed by Mario Carneiro, 12-Feb-2015.) $)
    pcophtb $p |- ( ph ->
      ( ( F ( *p ` J ) H ) ( ~=ph ` J ) P <-> F ( ~=ph ` J ) G ) ) $=
      ( cfv co wbr cc0 c1 wceq adantr vy cpco cphtpc wa cii ccn wer phtpcer a1i
      cicc csn cxp wcel w3a pcorevcl syl simp2d eqtr4d simp1d pco0 erref pcorev
      eqid pcohtpy pcopt2 syl2anc ertrd cv c2 cdiv cle c4 cmul caddc cif simp3d
      cmpt pcoass eqtrd simpr ertr3d eqcomd pcopt pcorev2 sneqd xpeq2d breqtrrd
      pco1 syl5eq impbida ) ADFGUBNZOZCGUCNZPZDEWMPZAWNUDZDDFEWKOZWKOZEWMUEGUFO
      ZWSWMUGZWPGUHZUIZWPWRDQRUJOZRENZUKULZWKOZDWMWSXBWPDWQDGXEARDNZQWQNZSWNAXG
      QFNZXHAXGXDXIMAFWSUMZXIXDSZRFNZQENZSZAEWSUMZXJXKXNUNKBEFGHUOUPZUQURZAFEGA
      XJXKXNXPUSZKUTURTWPDWMWSXBADWSUMZWNJTZVAAWQXEWMPZWNAXOYAKBXEEFGHXEVCZVBUP
      TVDWPXSXGXDSZXFDWMPXTAYCWNMTXEDGXDYBVEVFVGWPWRCEWKOZEWMWSXBWPWRWLEWKOYDWM
      WSXBWPUAUAXCUAVHZRVIVJOZVKPYERVLVJOZVKPVIYEVMOYEYGVNOVOYEVIVJOYFVNOVOVQZD
      FEGXTAXJWNXRTAXOWNKTZAXGXISZWNXQTAXNWNAXJXKXNXPVPZTYHVCVRWPWLECGEARWLNZXM
      SWNAYLXLXMADFGJXRWHYKVSTAWNVTWPEWMWSXBYIVAVDWAWPXOXMQDNZSYDEWMPYIWPYMXMAY
      MXMSWNLTWBCEGYMIWCVFVGWAAWOUDZWLEFWKOZCWMWSWTYNXAUIZYNDFEGFAYJWOXQTAWOVTY
      NFWMWSYPAXJWOXRTVAVDAYOCWMPWOAYOXCXMUKZULZCWMAXOYOYRWMPKBYREFGHYRVCWDUPAC
      XCYMUKZULYRIAYSYQXCAYMXMLWEWFWIWGTVGWJ $.
  $}

  ${
    $d j y B $.  $d f j y J $.  $d f j y ph $.  $d f j y Y $.  $d j y K $.
    $d j y .+ $.
    om1val.o $e |- O = ( J Om1 Y ) $.
    om1val.b $e |- ( ph -> B =
      { f e. ( II Cn J ) | ( ( f ` 0 ) = Y /\ ( f ` 1 ) = Y ) } ) $.
    om1val.p $e |- ( ph -> .+ = ( *p ` J ) ) $.
    om1val.k $e |- ( ph -> K = ( J ^ko II ) ) $.
    om1val.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    om1val.y $e |- ( ph -> Y e. X ) $.
    $( The definition of the loop space.  (Contributed by Mario Carneiro,
       10-Jul-2015.) $)
    om1val $p |- ( ph -> O = { <. ( Base ` ndx ) , B >. ,
        <. ( +g ` ndx ) , .+ >. , <. ( TopSet ` ndx ) , K >. } ) $=
      ( co cfv cop wceq cii vj vy comi cnx cbs cplusg cts ctp ctop cv cc0 c1 wa
      cuni ccn crab cpco cxko cvv cmpt2 df-om1 a1i simprl oveq2d simprr anbi12d
      eqeq2d rabeqbidv adantr eqtr4d opeq2d fveq2d oveq1d tpeq123d unieq adantl
      ctopon wcel toponuni syl topontop tpex ovmpt2dx syl5eq ) AGEIUCPUDUEQZBRZ
      UDUFQZCRZUDUGQZFRZUHZJAUAUBEIUIUAUJZUNZWEUKDUJZQZUBUJZSZULWNQZWPSZUMZDTWL
      UOPZUPZRZWGWLUQQZRZWIWLTURPZRZUHZWKUCHUSUCUAUBUIWMXHUTSAUBDUAVAVBAWLESZWP
      ISZUMZUMZXCWFXEWHXGWJXLXBBWEXLXBWOISZWRISZUMZDTEUOPZUPZBXLWTXODXAXPXLWLET
      UOAXIXJVCZVDXLWQXMWSXNXLWPIWOAXIXJVEZVGXLWPIWRXSVGVFVHABXQSXKKVIVJVKXLXDC
      WGXLXDEUQQZCXLWLEUQXRVLACXTSXKLVIVJVKXLXFFWIXLXFETURPZFXLWLETURXRVMAFYASX
      KMVIVJVKVNAXIUMWMEUNZHXIWMYBSAWLEVOVPAHYBSZXIAEHVQQVRZYCNHEVSVTVIVJAYDEUI
      VRNHEWAVTOWKUSVRAWFWHWJWBVBWCWD $.
  $}

  ${
    $d f F $.  $d f J $.  $d f ph $.  $d f X $.  $d f Y $.
    om1bas.o $e |- O = ( J Om1 Y ) $.
    om1bas.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    om1bas.y $e |- ( ph -> Y e. X ) $.
    ${
      om1bas.b $e |- ( ph -> B = ( Base ` O ) ) $.
      $( The base set of the loop space.  (Contributed by Mario Carneiro,
         10-Jul-2015.) $)
      om1bas $p |- ( ph -> B =
          { f e. ( II Cn J ) | ( ( f ` 0 ) = Y /\ ( f ` 1 ) = Y ) } ) $=
        ( cnx cbs cfv wceq cii ccn co cop eqidd cc0 cv c1 crab cplusg cpco cxko
        wa cts ctp om1val fveq2d eqtrd cvv wcel ovex rabex eqid topgrpbas ax-mp
        syl6eqr ) ABLMNUACUBZNGOUCVBNGOUHZCPDQRZUDZSLUENDUFNZSLUINDPUGRZSUJZMNZ
        VEABEMNVIKAEVHMAVEVFCDVGEFGHAVETAVFTAVGTIJUKULUMVEUNUOVEVIOVCCVDPDQUPUQ
        VEVFVGVHUNVHURUSUTVA $.

      $( Elementhood in the base set of the loop space.  (Contributed by Mario
         Carneiro, 10-Jul-2015.) $)
      om1elbas $p |- ( ph -> ( F e. B <->
          ( F e. ( II Cn J ) /\ ( F ` 0 ) = Y /\ ( F ` 1 ) = Y ) ) ) $=
        ( vf wcel cc0 cfv wceq c1 wa fveq1 eqeq1d cv cii ccn co crab w3a om1bas
        eleq2d anbi12d elrab 3anass bitr4i syl6bb ) ACBMCNLUAZOZGPZQUNOZGPZRZLU
        BDUCUDZUEZMZCUTMZNCOZGPZQCOZGPZUFZABVACABLDEFGHIJKUGUHVBVCVEVGRZRVHUSVI
        LCUTUNCPZUPVEURVGVJUOVDGNUNCSTVJUQVFGQUNCSTUIUJVCVEVGUKULUM $.

      om1addcl.h $e |- ( ph -> H e. B ) $.
      om1addcl.k $e |- ( ph -> K e. B ) $.
      $( Closure of the group operation of the loop space.  (Contributed by
         Jeff Madsen, 11-Jun-2010.)  (Revised by Mario Carneiro,
         5-Sep-2015.) $)
      om1addcl $p |- ( ph -> ( H ( *p ` J ) K ) e. B ) $=
        ( cfv wcel cc0 wceq c1 om1elbas cpco co cii ccn w3a mpbid simp1d simp3d
        simp2d eqtr4d pcocn pco0 eqtrd pco1 mpbir3and ) ACEDUAOUBZBPUPUCDUDUBZP
        QUPOZHRSUPOZHRACEDACUQPZQCOZHRZSCOZHRZACBPUTVBVDUEMABCDFGHIJKLTUFZUGZAE
        UQPZQEOZHRZSEOZHRZAEBPVGVIVKUENABEDFGHIJKLTUFZUGZAVCHVHAUTVBVDVEUHAVGVI
        VKVLUIUJUKAURVAHACEDVFVMULAUTVBVDVEUIUMAUSVJHACEDVFVMUNAVGVIVKVLUHUMABU
        PDFGHIJKLTUO $.
    $}

    $( The group operation (which isn't much more than a magma) of the loop
       space.  (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    om1plusg $p |- ( ph -> ( *p ` J ) = ( +g ` O ) ) $=
      ( vf cplusg cfv cnx cbs cop cpco cts cii cxko eqidd cvv ctp om1bas om1val
      co fveq2d wcel wceq fvex eqid topgrpplusg ax-mp syl6reqr ) ACJKLMKCMKZNLJ
      KBOKZNLPKBQRUDZNUAZJKZUNACUPJAUMUNIBUOCDEFAUMIBCDEFGHAUMSUBAUNSAUOSGHUCUE
      UNTUFUNUQUGBOUHUMUNUOUPTUPUIUJUKUL $.

    $( The topology of the loop space.  (Contributed by Mario Carneiro,
       10-Jul-2015.) $)
    om1tset $p |- ( ph -> ( J ^ko II ) = ( TopSet ` O ) ) $=
      ( vf cts cfv cnx cbs cop cplusg cpco cii cxko eqidd cvv ctp om1bas om1val
      co fveq2d wcel wceq ovex eqid topgrptset ax-mp syl6reqr ) ACJKLMKCMKZNLOK
      BPKZNLJKBQRUDZNUAZJKZUOACUPJAUMUNIBUOCDEFAUMIBCDEFGHAUMSUBAUNSAUOSGHUCUEU
      OTUFUOUQUGBQRUHUMUNUOUPTUPUIUJUKUL $.

    om1opn.k $e |- K = ( TopOpen ` O ) $.
    om1opn.b $e |- ( ph -> B = ( Base ` O ) ) $.
    $( The topology of the loop space.  (Contributed by Mario Carneiro,
       10-Jul-2015.) $)
    om1opn $p |- ( ph -> K = ( ( J ^ko II ) |`t B ) ) $=
      ( cii cxko co crest cts cfv cbs eqid om1tset oveq12d ctopn topnval eqtr4i
      syl6reqr ) ACMNOZBPOEQRZESRZPOZDAUGUHBUIPACEFGHIJUALUBDEUCRUJKUIUHEUITUHT
      UDUEUF $.
  $}

  ${
    $d j x y J $.  $d x y K $.  $d j y O $.  $d j x y ph $.  $d j y Y $.
    pi1val.g $e |- G = ( J pi1 Y ) $.
    pi1val.1 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    pi1val.2 $e |- ( ph -> Y e. X ) $.
    ${
      pi1val.o $e |- O = ( J Om1 Y ) $.
      $( The definition of the fundamental group.  (Contributed by Mario
         Carneiro, 11-Feb-2015.)  (Revised by Mario Carneiro, 10-Jul-2015.) $)
      pi1val $p |- ( ph -> G = ( O /s ( ~=ph ` J ) ) ) $=
        ( vj vy cpi1 co cphtpc cfv cqus ctop comi wceq cv cuni cvv cmpt2 df-pi1
        a1i wa simprl simprr oveq12d syl6eqr fveq2d adantl ctopon wcel toponuni
        unieq syl adantr eqtr4d topontop ovexd ovmpt2dx syl5eq ) ABCFMNDCOPZQNZ
        GAKLCFRKUAZUBZVGLUAZSNZVGOPZQNZVFMEUCMKLRVHVLUDTALKUEUFAVGCTZVIFTZUGUGZ
        VJDVKVEQVOVJCFSNDVOVGCVIFSAVMVNUHZAVMVNUIUJJUKVOVGCOVPULUJAVMUGVHCUBZEV
        MVHVQTAVGCUQUMAEVQTZVMACEUNPUOZVRHECUPURUSUTAVSCRUOHECVAURIADVEQVBVCVD
        $.

      pi1bas.b $e |- ( ph -> B = ( Base ` G ) ) $.
      pi1bas.k $e |- ( ph -> K = ( Base ` O ) ) $.
      $( The base set of the fundamental group of a topological space at a
         given base point.  (Contributed by Jeff Madsen, 11-Jun-2010.)
         (Revised by Mario Carneiro, 10-Jul-2015.) $)
      pi1bas $p |- ( ph -> B = ( K /. ( ~=ph ` J ) ) ) $=
        ( cbs cfv cphtpc cqs cvv comi pi1val eqidd fvexd wcel co eqeltri qusbas
        ovex a1i wceq qseq1 syl 3eqtr4rd ) AFOPZDQPZRZCOPEUORZBAUOFCUNSSACDFGHI
        JKLUAAUNUBADQUCFSUDAFDHTUESLDHTUHUFUIUGAEUNUJUQUPUJNEUNUOUKULMUM $.

      $( Lemma for ~ pi1buni .  (Contributed by Mario Carneiro,
         10-Jul-2015.) $)
      pi1blem $p |- ( ph ->
          ( ( ( ~=ph ` J ) " K ) C_ K /\ K C_ ( II Cn J ) ) ) $=
        ( vx vy cfv wcel wa wceq cphtpc cima wss cii ccn co cv wbr wrex vex cc0
        elima c1 cphtpy c0 wne w3a simpr isphtpc sylib adantrl phtpc01 ad2antll
        simp2d simpld om1elbas biimpa adantrr eqtr3d simprd simp3d wb mpbir3and
        adantr rexlimdvaa syl5bi ssrdv simp1 syl6bi jca ) ADUAQZEUBZEUCEUDDUEUF
        ZUCAOWBEOUGZWBRPUGZWDWAUHZPEUIAWDERZPWDWAEOUJULAWFWGPEAWEERZWFSZSZWGWDW
        CRZUKWDQZHTZUMWDQZHTZWJWEWCRZWKWEWDDUNQUFUOUPZAWFWPWKWQUQZWHAWFSWFWRAWF
        URWEWDDUSUTVAVDWJUKWEQZWLHWJWSWLTZUMWEQZWNTZWFWTXBSAWHWEWDDVBVCZVEWJWPW
        SHTZXAHTZAWHWPXDXEUQZWFAWHXFAEWEDFGHLJKNVFVGVHZVDVIWJXAWNHWJWTXBXCVJWJW
        PXDXEXGVKVIAWGWKWMWOUQZVLWIAEWDDFGHLJKNVFZVNVMVOVPVQAOEWCAWGXHWKXIWKWMW
        OVRVSVQVT $.

      $( Another way to write the loop space base in terms of the base of the
         fundamental group.  (Contributed by Mario Carneiro, 10-Jul-2015.) $)
      pi1buni $p |- ( ph -> U. B = K ) $=
        ( cuni cphtpc cqs wss eqtrd cvv cfv cxp cin pi1bas cima wceq cii ccn co
        pi1blem simpld qsinxp syl unieqd wer phtpcer a1i simprd wcel fvex inex1
        erinxp uniqs2 ) ABOEDPUAZEEUBZUCZQZOEABVGABEVDQZVGABCDEFGHIJKLMNUDAVDEU
        EERZVHVGUFAVIEUGDUHUIZRZABCDEFGHIJKLMNUJZUKEVDULUMSUNAEVFTAVJEVDVJVDUOA
        DUPUQAVIVKVLURVBVFTUSAVDVEDPUTVAUQVCS $.
    $}

    pi1bas2.b $e |- ( ph -> B = ( Base ` G ) ) $.
    $( The base set of the fundamental group, written self-referentially.
       (Contributed by Mario Carneiro, 10-Jul-2015.) $)
    pi1bas2 $p |- ( ph -> B = ( U. B /. ( ~=ph ` J ) ) ) $=
      ( cuni comi co eqid cbs cfv eqidd pi1buni pi1bas ) ABCDBKDFLMZEFGHITNZJAB
      CDTOPZTEFGHIUAJAUBQRS $.

    $( Elementhood in the base set of the loop space.  (Contributed by Mario
       Carneiro, 10-Jul-2015.) $)
    pi1eluni $p |- ( ph -> ( F e. U. B <->
        ( F e. ( II Cn J ) /\ ( F ` 0 ) = Y /\ ( F ` 1 ) = Y ) ) ) $=
      ( cuni comi co eqid cbs cfv eqidd pi1buni om1elbas ) ABLCEEGMNZFGUAOZIJAB
      DEUAPQZUAFGHIJUBKAUCRST $.

    pi1bas3.r $e |- R = ( ( ~=ph ` J ) i^i ( U. B X. U. B ) ) $.
    $( The base set of the fundamental group.  (Contributed by Mario Carneiro,
       10-Jul-2015.) $)
    pi1bas3 $p |- ( ph -> B = ( U. B /. R ) ) $=
      ( cuni cphtpc cfv cxp cqs wss wceq co cin pi1bas2 cima cii ccn comi eqidd
      eqid cbs pi1buni pi1blem simpld qsinxp syl eqtrd qseq2 ax-mp syl6eqr ) AB
      BMZENOZUSUSPUAZQZUSCQZABUSUTQZVBABDEFGHIJKUBAUTUSUCUSRZVDVBSAVEUSUDEUETRA
      BDEUSEGUFTZFGHIJVFUHZKABDEVFUIOZVFFGHIJVGKAVHUGUJUKULUSUTUMUNUOCVASVCVBSL
      CVAUSUPUQUR $.

    pi1cpbl.o $e |- O = ( J Om1 Y ) $.
    pi1cpbl.a $e |- .+ = ( +g ` O ) $.
    $( The group operation, loop concatenation, is compatible with homotopy
       equivalence.  (Contributed by Mario Carneiro, 10-Jul-2015.) $)
    pi1cpbl $p |- ( ph ->
      ( ( M R N /\ P R Q ) -> ( M .+ P ) R ( N .+ Q ) ) ) $=
      ( wbr wa co cpco cfv cuni wcel cphtpc ctopon adantr cbs eqidd pi1buni w3a
      simprl cxp cin breqi brinxp2 bitri sylib simp1d simprr om1addcl simp2d c1
      wceq cc0 cii ccn pi1eluni simp3d eqtr4d pcohtpy syl3anbrc cplusg om1plusg
      mpbid syl6eqr oveqd 3brtr3d ex ) AIJFUAZCEFUAZUBZICDUCZJEDUCZFUAAWEUBZICH
      UDUEZUCZJEWIUCZWFWGFWHWJBUFZUGZWKWLUGZWJWKHUHUEZUAZWJWKFUAZWHWLIHCKLMSAHL
      UIUEUGWEOUJZAMLUGWEPUJZWHBGHKUKUEZKLMNWRWSSABGUKUEVGWEQUJZWHWTULUMZWHIWLU
      GZJWLUGZIJWOUAZWHWCXCXDXEUNZAWCWDUOWCIJWOWLWLUPUQZUAXFIJFXGRURIJWLWLWOUSU
      TVAZVBZWHCWLUGZEWLUGZCEWOUAZWHWDXJXKXLUNZAWCWDVCWDCEXGUAXMCEFXGRURCEWLWLW
      OUSUTVAZVBZVDWHWLJHEKLMSWRWSXBWHXCXDXEXHVEWHXJXKXLXNVEVDWHICJHEWHVFIUEZMV
      HCUEZWHIVIHVJUCZUGZVHIUEMVGZXPMVGZWHXCXSXTYAUNXIWHBIGHLMNWRWSXAVKVRVLWHCX
      RUGZXQMVGZVFCUEMVGZWHXJYBYCYDUNXOWHBCGHLMNWRWSXAVKVRVEVMWHXCXDXEXHVLWHXJX
      KXLXNVLVNWQWJWKXGUAWMWNWPUNWJWKFXGRURWJWKWLWLWOUSUTVOWHWIDICWHWIKVPUEDWHH
      KLMSWRWSVQTVSZVTWHWIDJEYEVTWAWB $.
  $}

  ${
    $d a b c d .+ $.  $d f F $.  $d f G $.  $d c d M $.  $d c d N $.  $d f X $.
    $d a b c d f B $.  $d a b c d f J $.  $d a b c d f ph $.  $d c d f Y $.
    elpi1.g $e |- G = ( J pi1 Y ) $.
    elpi1.b $e |- B = ( Base ` G ) $.
    elpi1.1 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    elpi1.2 $e |- ( ph -> Y e. X ) $.
    $( The elements of the fundamental group.  (Contributed by Jeff Madsen,
       19-Jun-2010.)  (Revised by Mario Carneiro, 10-Jul-2015.) $)
    elpi1 $p |- ( ph -> ( F e. B <->
                  E. f e. ( II Cn J ) ( ( ( f ` 0 ) = Y /\ ( f ` 1 ) = Y )
                                  /\ F = [ f ] ( ~=ph ` J ) ) ) ) $=
      ( wcel cphtpc cfv wceq wa wrex cvv syl6bb cuni cqs cc0 cv cec cii ccn cbs
      c1 co a1i pi1bas2 eleq2d elex id ecexg ax-mp syl6eqel rexlimivw pm5.21nii
      fvex elqsg w3a pi1eluni 3anass anbi1d anass rexbidv2 syl5bb bitrd ) ADBMD
      BUAZFNOZUBZMZUCCUDZOHPZUIVOOHPZQZDVOVLUEZPZQZCUFFUGUJZRZABVMDABEFGHIKLBEU
      HOPAJUKZULUMVNVTCVKRZAWCVNDSMZWEDVMUNVTWFCVKVTDVSSVTUOVLSMVSSMFNVAVOSVLUP
      UQURUSCVKDVLSVBUTAVTWACVKWBAVOVKMZVTQVOWBMZVRQZVTQWHWAQAWGWIVTAWGWHVPVQVC
      WIABVOEFGHIKLWDVDWHVPVQVETVFWHVRVTVGTVHVIVJ $.

    ${
      elpi1i.3 $e |- ( ph -> F e. ( II Cn J ) ) $.
      elpi1i.4 $e |- ( ph -> ( F ` 0 ) = Y ) $.
      elpi1i.5 $e |- ( ph -> ( F ` 1 ) = Y ) $.
      $( The elements of the fundamental group.  (Contributed by Jeff Madsen,
         19-Jun-2010.)  (Revised by Mario Carneiro, 10-Jul-2015.) $)
      elpi1i $p |- ( ph -> [ F ] ( ~=ph ` J ) e. B ) $=
        ( vf cfv cc0 wceq c1 wa cphtpc cec wcel cv cii ccn co wrex eceq1 eqcomd
        biantrud fveq1 eqeq1d anbi12d bitr3d rspcev syl12anc elpi1 mpbird ) ACE
        UAPZUBZBUCQOUDZPZGRZSVBPZGRZTZVAVBUTUBZRZTZOUEEUFUGZUHZACVKUCQCPZGRZSCP
        ZGRZVLLMNVJVNVPTZOCVKVBCRZVGVJVQVRVIVGVRVHVAVBCUTUIUJUKVRVDVNVFVPVRVCVM
        GQVBCULUMVRVEVOGSVBCULUMUNUOUPUQABOVADEFGHIJKURUS $.
    $}

    pi1addf.p $e |- .+ = ( +g ` G ) $.
    $( The group operation of ` pi1 ` is a binary operation.  (Contributed by
       Jeff Madsen, 11-Jun-2010.)  (Revised by Mario Carneiro, 10-Jul-2015.) $)
    pi1addf $p |- ( ph -> .+ : ( B X. B ) --> B ) $=
      ( cxp wf cfv co cvv cqus cv wcel vd vc va cuni cphtpc cin cqs comi cplusg
      cbs eqidd fvexd ovexd cima wss cii ccn eqid wceq a1i pi1blem simpld qusin
      vb pi1val pi1buni sqxpeqd ineq2d oveq2d 3eqtr4d wer phtpcer simprd erinxp
      eqsstrd pi1cpbl wa ctopon adantr om1plusg simprl simprr om1addcl eqeltrrd
      cpco oveqd qusaddf pi1bas3 feq2d mpbird feq3d ) ABBMZBCNWLBUDZEUEOZWMWMMZ
      UFZUGZCNZAWRWQWQMZWQCNAWPEGUHPZCWTUIOZDWMQUAUBUCVDAWTWNRPZWTWNWTUJOZXCMZU
      FZRPDWTWPRPAWNWTXBXCQQAXBUKAXCUKZAEUEULAEGUHUMZAWNXCUNXCUOZXCUPEUQPZUOZAB
      DEXCWTFGHJKWTURZBDUJOUSAIUTZXFVAZVBVCADEWTFGHJKXKVEAWPXEWTRAWOXDWNAWMXCAB
      DEXCWTFGHJKXKXLXFVFZVGVHVIVJXNAXIWMWNXIWNVKAEVLUTAWMXCXIXNAXHXJXMVMVOVNXG
      ABVDSXAUASZWPDEUCSUBSZWTFGHJKXLWPURZXKXAURZVPAXPWMTZXOWMTZVQZVQZXPXOEWEOZ
      PXPXOXAPWMYBYCXAXPXOYBEWTFGXKAEFVROTYAJVSZAGFTYAKVSZVTWFYBWMXPEXOWTFGXKYD
      YEAWMXCUSYAXNVSAXSXTWAAXSXTWBWCWDXRLWGAWLWSWQCABWQABWPDEFGHJKXLXQWHZVGWIW
      JABWQCWLYFWKWJ $.

    pi1addval.3 $e |- ( ph -> M e. U. B ) $.
    pi1addval.4 $e |- ( ph -> N e. U. B ) $.
    $( The concatenation of two path-homotopy classes in the fundamental group.
       (Contributed by Jeff Madsen, 11-Jun-2010.)  (Revised by Mario Carneiro,
       10-Jul-2015.) $)
    pi1addval $p |- ( ph -> ( [ M ] ( ~=ph ` J ) .+ [ N ] ( ~=ph ` J ) ) =
        [ ( M ( *p ` J ) N ) ] ( ~=ph ` J ) ) $=
      ( cec co wcel wceq vd vc va cphtpc cfv cuni cxp cin comi cplusg cpco cqus
      cvv cbs eqidd fvexd ovexd cima wss cii ccn eqid a1i pi1blem simpld pi1val
      vb qusin pi1buni sqxpeqd ineq2d oveq2d 3eqtr4d wer phtpcer simprd eqsstrd
      erinxp cv wa om1plusg adantr oveqd ctopon simprl simprr om1addcl eqeltrrd
      pi1cpbl qusaddval mpd3an23 imaeq2d 3sstr4d ecinxp syl2anc oveq12d eceq1d
      eqtrd ) AFEUDUEZBUFZWTUGZUHZQZGXBQZCRZFGEIUIRZUJUEZRZXBQZFWSQZGWSQZCRFGEU
      KUEZRZWSQZAFWTSZGWTSZXEXITOPAXBXFCXGDWTFGUMUAUBUCVGAXFWSULRZXFWSXFUNUEZXR
      UGZUHZULRDXFXBULRAWSXFXQXRUMUMAXQUOAXRUOZAEUDUPAEIUIUQZAWSXRURZXRUSZXRUTE
      VARZUSZABDEXRXFHIJLMXFVBZBDUNUETAKVCZYAVDZVEZVHADEXFHIJLMYGVFAXBXTXFULAXA
      XSWSAWTXRABDEXRXFHIJLMYGYHYAVIZVJVKVLVMYKAYEWTWSYEWSVNAEVOVCAWTXRYEYKAYDY
      FYIVPVQVRYBABVGVSXGUAVSZXBDEUCVSUBVSZXFHIJLMYHXBVBYGXGVBZWIAYMWTSZYLWTSZV
      TZVTZYMYLXLRYMYLXGRWTYRXLXGYMYLAXLXGTYQAEXFHIYGLMWAZWBWCYRWTYMEYLXFHIYGAE
      HWDUESYQLWBAIHSYQMWBAWTXRTYQYKWBAYOYPWEAYOYPWFWGWHYNNWJWKAXJXCXKXDCAWSWTU
      RZWTUSZXOXJXCTAYCXRYTWTYJAWTXRWSYKWLYKWMZOWTFWSWNWOAUUAXPXKXDTUUBPWTGWSWN
      WOWPAXNXMXBQZXIAUUAXMWTSXNUUCTUUBAWTFEGXFHIYGLMYKOPWGWTXMWSWNWOAXMXHXBAXL
      XGFGYSWCWQWRVM $.
  $}

  ${
    $d a b c d u x y z B $.  $d a b c d u x y z J $.  $d a b c d u x y z ph $.
    $d a b c d x y z G $.  $d a b c d x y Y $.  $d a b c d x .0. $.
    pi1fval.g $e |- G = ( J pi1 Y ) $.
    pi1fval.b $e |- B = ( Base ` G ) $.
    pi1fval.3 $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    pi1fval.4 $e |- ( ph -> Y e. X ) $.
    pi1grplem.z $e |- .0. = ( ( 0 [,] 1 ) X. { Y } ) $.
    $( Lemma for ~ pi1grp .  (Contributed by Jeff Madsen, 11-Jun-2010.)
       (Revised by Mario Carneiro, 10-Aug-2015.) $)
    pi1grplem $p |- ( ph ->
        ( G e. Grp /\ [ .0. ] ( ~=ph ` J ) = ( 0g ` G ) ) ) $=
      ( wcel cfv wceq co c1 cv wbr w3a vx vy vz va vd vc vb cgrp cphtpc cec c0g
      vu wa cuni cxp cin cpco comi cc0 cicc cmin cmpt cvv eqid pi1val cbs eqidd
      a1i pi1buni fvexd ovexd wss cii ccn pi1blem simpld qusin om1plusg phtpcer
      cima wer simprd erinxp cplusg pi1cpbl oveqd breq12d ctopon 3ad2ant1 simp2
      sylibrd simp3 om1addcl adantr 3adant3r3 simpr3 simpr1 simpr2 c2 cdiv cmul
      cle caddc cif pi1eluni biimpa 3ad2antr1 simp1d mpbid simp3d simp2d eqtr4d
      c4 pcoass brinxp2 syl3anbrc pcoptcl syl2anc mpbird simpr sselda pcopt syl
      pcorevcl eqtrd wb mpbir3and pcorev sneqd xpeq2d syl6reqr breqtrrd qusgrp2
      csn ecinxp eqeq1d anbi2d ) ACUHMZGDUINZUJZCUKNZOZUMYRGYSBUNZUUCUOUPZUJZUU
      AOZUMAUAUBUCDUQNZUUDDFURPZCUDUSQUTPZQUDRZVAPUARZNVBZUUCVCGUEUFUDUGAYSUUHC
      UUCVCVCACDUUHEFHJKUUHVDZVEABCDUUHVFNZUUHEFHJKUUMBCVFNOZAIVHZAUUNVGVIZADUI
      VJADFURVKZAYSUUCVTUUCVLZUUCVMDVNPZVLZABCDUUCUUHEFHJKUUMUUPUUQVOZVPZVQUUQA
      DUUHEFUUMJKVRZAUUTUUCYSUUTYSWAADVSVHAUUSUVAUVBWBZWCUURAUUJUFRZUUDSUGRZUER
      ZUUDSUMUUJUVGUUHWDNZPZUVFUVHUVIPZUUDSUUJUVGUUGPZUVFUVHUUGPZUUDSABUVGUVIUV
      HUUDCDUUJUVFUUHEFHJKUUPUUDVDUUMUVIVDWEAUVLUVJUVMUVKUUDAUUGUVIUUJUVGUVDWFA
      UUGUVIUVFUVHUVDWFWGWKAUUKUUCMZUBRZUUCMZTUUCUUKDUVOUUHEFUUMAUVNDEWHNMZUVPJ
      WIAUVNFEMZUVPKWIAUVNUUCUUNOZUVPUUQWIAUVNUVPWJAUVNUVPWLWMZAUVNUVPUCRZUUCMZ
      TZUMZUUKUVOUUGPZUWAUUGPZUUCMUUKUVOUWAUUGPZUUGPZUUCMUWFUWHYSSUWFUWHUUDSUWD
      UUCUWEDUWAUUHEFUUMAUVQUWCJWNZAUVRUWCKWNZAUVSUWCUUQWNZAUVNUVPUWEUUCMUWBUVT
      WOAUVNUVPUWBWPZWMUWDUUCUUKDUWGUUHEFUUMUWIUWJUWKAUVNUVPUWBWQUWDUUCUVODUWAU
      UHEFUUMUWIUWJUWKAUVNUVPUWBWRZUWLWMWMUWDULULUUIULRZQWSWTPZXBSUWNQXMWTPZXBS
      WSUWNXAPUWNUWPXCPXDUWNWSWTPUWOXCPXDVBZUUKUVOUWADUWDUUKUUTMZUSUUKNZFOZQUUK
      NZFOZAUVPUVNUWRUWTUXBTZUWBAUVNUXCABUUKCDEFHJKUUPXEXFZXGZXHUWDUVOUUTMZUSUV
      ONZFOZQUVONZFOZUWDUVPUXFUXHUXJTUWMUWDBUVOCDEFHUWIUWJUUOUWDIVHZXEXIZXHUWDU
      WAUUTMZUSUWANZFOZQUWANFOZUWDUWBUXMUXOUXPTUWLUWDBUWACDEFHUWIUWJUXKXEXIZXHU
      WDUXAFUXGUWDUWRUWTUXBUXEXJUWDUXFUXHUXJUXLXKXLUWDUXIFUXNUWDUXFUXHUXJUXLXJU
      WDUXMUXOUXPUXQXKXLUWQVDXNUWFUWHUUCUUCYSXOXPAGUUCMZGUUTMUSGNFOQGNFOTZAUVQU
      VRUXSJKGDEFLXQXRABGCDEFHJKUUPXEXSZAUVNUMZGUUKUUGPZUUCMUVNUYBUUKYSSZUYBUUK
      UUDSUYAUUCGDUUKUUHEFUUMAUVQUVNJWNZAUVRUVNKWNZAUVSUVNUUQWNZAUXRUVNUXTWNZAU
      VNXTZWMUYHUYAUWRUWTUYCAUUCUUTUUKUVEYAZUYAUWRUWTUXBUXDXKZGUUKDFLYBXRUYBUUK
      UUCUUCYSXOXPUYAUULUUCMZUULUUTMZUSUULNZFOZQUULNZFOZUYAUYLUYMUXAOZUYOUWSOZU
      YAUWRUYLUYQUYRTUYIUDUUKUULDUULVDZYDYCZXHUYAUYMUXAFUYAUYLUYQUYRUYTXKUYAUWR
      UWTUXBUXDXJZYEUYAUYOUWSFUYAUYLUYQUYRUYTXJUYJYEAUYKUYLUYNUYPTYFUVNABUULCDE
      FHJKUUPXEWNYGZUYAUULUUKUUGPZUUCMUXRVUCGYSSVUCGUUDSUYAUUCUULDUUKUUHEFUUMUY
      DUYEUYFVUBUYHWMUYGUYAVUCUUIUXAYNZUOZGYSUYAUWRVUCVUEYSSUYIUDVUEUUKUULDUYSV
      UEVDYHYCUYAVUEUUIFYNZUOGUYAVUDVUFUUIUYAUXAFVUAYIYJLYKYLVUCGUUCUUCYSXOXPYM
      AUUBUUFYRAYTUUEUUAAUUSUXRYTUUEOUVCUXTUUCGYSYOXRYPYQXS $.
  $}

  ${
    $d x F $.  $d x G $.  $d x J $.  $d x ph $.  $d x Y $.
    pi1grp.2 $e |- G = ( J pi1 Y ) $.
    $( The fundamental group is a group.  Proposition 1.3 of [Hatcher] p. 26.
       (Contributed by Jeff Madsen, 19-Jun-2010.)  (Proof shortened by Mario
       Carneiro, 8-Jun-2014.)  (Revised by Mario Carneiro, 10-Aug-2015.) $)
    pi1grp $p |- ( ( J e. ( TopOn ` X ) /\ Y e. X ) -> G e. Grp ) $=
      ( ctopon cfv wcel wa cgrp cc0 c1 cicc co csn cxp cphtpc cec c0g eqid wceq
      cbs simpl simpr pi1grplem simpld ) BCFGHZDCHZIZAJHKLMNDOPZBQGRASGUAUIAUBG
      ZABCDUJEUKTUGUHUCUGUHUDUJTUEUF $.

    ${
      pi1id.3 $e |- .0. = ( ( 0 [,] 1 ) X. { Y } ) $.
      $( The identity element of the fundamental group.  (Contributed by Mario
         Carneiro, 12-Feb-2015.)  (Revised by Mario Carneiro, 10-Aug-2015.) $)
      pi1id $p |- ( ( J e. ( TopOn ` X ) /\ Y e. X ) ->
        [ .0. ] ( ~=ph ` J ) = ( 0g ` G ) ) $=
        ( ctopon cfv wcel wa cgrp cphtpc cec c0g wceq cbs eqid simpl simpr
        pi1grplem simprd ) BCHIJZDCJZKZALJEBMINAOIPUEAQIZABCDEFUFRUCUDSUCUDTGUA
        UB $.
    $}

    pi1inv.n $e |- N = ( invg ` G ) $.
    pi1inv.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    pi1inv.y $e |- ( ph -> Y e. X ) $.
    pi1inv.f $e |- ( ph -> F e. ( II Cn J ) ) $.
    pi1inv.0 $e |- ( ph -> ( F ` 0 ) = Y ) $.
    pi1inv.1 $e |- ( ph -> ( F ` 1 ) = Y ) $.
    pi1inv.i $e |- I = ( x e. ( 0 [,] 1 ) |-> ( F ` ( 1 - x ) ) ) $.
    $( An inverse in the fundamental group.  (Contributed by Mario Carneiro,
       12-Feb-2015.)  (Revised by Mario Carneiro, 10-Aug-2015.) $)
    pi1inv $p |- ( ph -> ( N ` [ F ] ( ~=ph ` J ) ) = [ I ] ( ~=ph ` J ) ) $=
      ( cfv wceq wcel cphtpc cec cplusg c0g cpco cc0 cicc csn cxp cbs eqid cuni
      co cii ccn w3a pcorevcl syl simp1d simp2d eqtrd simp3d pi1eluni mpbir3and
      a1i pi1addval wer phtpcer wbr pcorev sneqd xpeq2d breqtrd erthi pi1grplem
      c1 cgrp simprd 3eqtrd wb simpld elpi1i grpinvid2 syl3anc mpbird ) ACFUARZ
      UBZGREWFUBZSZWHWGDUCRZUMZDUDRZSZAWKECFUERUMZWFUBUFVPUGUMZIUHZUIZWFUBZWLAD
      UJRZWJDFECHIJWSUKZLMWJUKZAEWSULZTEUNFUOUMZTZUFERZISVPERZISAXDXEVPCRZSZXFU
      FCRZSZACXCTZXDXHXJUPNBCEFQUQURZUSZAXEXGIAXDXHXJXLUTPVAZAXFXIIAXDXHXJXLVBO
      VAZAWSEDFHIJLMWSWSSAWTVEZVCVDACXBTXKXIISXGISNOPAWSCDFHIJLMXPVCVDVFAWNWQWF
      XCXCWFVGAFVHVEAWNWOXGUHZUIZWQWFAXKWNXRWFVINBXRCEFQXRUKVJURAXQWPWOAXGIPVKV
      LVMVNADVQTZWRWLSZAWSDFHIWQJWTLMWQUKVOZVRVSAXSWGWSTWHWSTWIWMVTAXSXTYAWAAWS
      CDFHIJWTLMNOPWBAWSEDFHIJWTLMXMXNXOWBWSWJDGWGWHWLWTXAWLUKKWCWDWE $.
  $}

  ${
    $d f g h s u x y z B $.  $d g h s u x y z F $.  $d g h s u x y z I $.
    $d g s x A $.  $d f h y z G $.  $d f s z H $.  $d f g h s u x y z ph $.
    $d f g h s u x y z J $.  $d f g h s x y z P $.  $d f g h s x y z Q $.
    pi1xfr.p $e |- P = ( J pi1 ( F ` 0 ) ) $.
    pi1xfr.q $e |- Q = ( J pi1 ( F ` 1 ) ) $.
    pi1xfr.b $e |- B = ( Base ` P ) $.
    pi1xfr.g $e |- G = ran ( g e. U. B |-> <. [ g ] ( ~=ph ` J ) ,
      [ ( I ( *p ` J ) ( g ( *p ` J ) F ) ) ] ( ~=ph ` J ) >. ) $.
    pi1xfr.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    pi1xfr.f $e |- ( ph -> F e. ( II Cn J ) ) $.
    ${
      pi1xfrval.i $e |- ( ph -> I e. ( II Cn J ) ) $.
      pi1xfrval.1 $e |- ( ph -> ( F ` 1 ) = ( I ` 0 ) ) $.
      pi1xfrval.2 $e |- ( ph -> ( I ` 1 ) = ( F ` 0 ) ) $.
      $( Functionality of the loop transfer function on the equivalence class
         of a path.  (Contributed by Mario Carneiro, 23-Dec-2016.) $)
      pi1xfrf $p |- ( ph -> G : B --> ( Base ` Q ) ) $=
        ( cfv vh vs cbs wf cuni cv cphtpc cec cmpt crn wfun cpco co wcel wa cc0
        ctopon adantr cicc cii ccn iitopon cnf2 syl3anc 0elunit ffvelrn sylancl
        c1 a1i wceq w3a pi1eluni biimpa simp1d simp2d simp3d eqid 1elunit pcocn
        elpi1i pco0 3eqtr4rd eqtr4d eqtrd eceq1 oveq1 oveq2d eceq1d wer phtpcer
        pco1 3ad2antr1 erref simpr3 mpbird pcohtpy erthi fliftfund fliftf mpbid
        wbr erth cqs pi1bas2 wrex cab df-qs rnmpt eqtr4i syl6eq feq2d ) ABDUCTZ
        GUDEBUEZEUFZIUGTZUHZUIZUJZXLGUDZAGUKXSAEUAXPHXNFIULTZUMZXTUMZXOUHZUAUFZ
        XOUHZHYDFXTUMZXTUMZXOUHBXLGXMNAXNXMUNZUOZBXNCIJUPFTZKMAIJUQTUNZYHOURZAY
        JJUNZYHAUPVHUSUMZJFUDZUPYNUNYMAUTYNUQTUNZYKFUTIVAUMZUNZYOYPAVBVIOPFUTIY
        NJVCVDZVEYNJUPFVFVGZURYIXNYQUNZUPXNTZYJVJZVHXNTYJVJZAYHUUAUUCUUDVKABXNC
        IJYJKOYTBCUCTVJAMVIZVLVMZVNZYIUUAUUCUUDUUFVOZYIUUAUUCUUDUUFVPZVTZYIXLYB
        DIJVHFTZLXLVQYLAUUKJUNZYHAYOVHYNUNUULYSVRYNJVHFVFVGURYIHYAIAHYQUNZYHQUR
        ZYIXNFIUUGAYRYHPURZUUIVSZYIUUBYJUPYATZVHHTZUUHYIXNFIUUGUUOWAAUURYJVJZYH
        SURWBVSYIUPYBTUPHTZUUKYIHYAIUUNUUPWAAUUKUUTVJYHRURWCYIVHYBTVHYATUUKYIHY
        AIUUNUUPWKYIXNFIUUGUUOWKWDVTZXNYDXOWEXNYDVJZYBYGXOUVBYAYFHXTXNYDFXTWFWG
        WHAYHYDXMUNZXPYEVJZVKZUOZYBYGXOYQYQXOWIUVFIWJVIZUVFHYAHIYFUVFUUBYJUUQUU
        RAUVCYHUUCUVDUUHWLUVFXNFIAUVCYHUUAUVDUUGWLZAYRUVEPURZWAAUUSUVESURWBUVFH
        XOYQUVGAUUMUVEQURWMUVFXNFYDIFAUVCYHUUDUVDUUIWLUVFXNYDXOXAUVDAYHUVCUVDWN
        UVFXNYDXOYQUVGUVHXBWOUVFFXOYQUVGUVIWMWPWPWQWRAEXPYCBXLGXMNUUJUVAWSWTABX
        RXLGABXMXOXCZXRABCIJYJKOYTUUEXDUVJUBUFXPVJEXMXEUBXFXREUBXMXOXGEUBXMXPXQ
        XQVQXHXIXJXKWO $.

      pi1xfrval.a $e |- ( ph -> A e. U. B ) $.
      $( The value of the loop transfer function on the equivalence class of a
         path.  (Contributed by Mario Carneiro, 12-Feb-2015.)  (Revised by
         Mario Carneiro, 23-Dec-2016.) $)
      pi1xfrval $p |- ( ph -> ( G ` [ A ] ( ~=ph ` J ) ) =
        [ ( I ( *p ` J ) ( A ( *p ` J ) F ) ) ] ( ~=ph ` J ) ) $=
        ( cuni wcel cphtpc cfv cec cpco co wceq cv cvv wa fvex ecexg mp1i eceq1
        oveq1 oveq2d eceq1d cbs wf wfun pi1xfrf ffun syl fliftval mpdan ) ABCUB
        ZUCBJUDUEZUFZHUEIBGJUGUEZUHZVKUHZVIUFZUIUAAFFUJZVIUFZIVOGVKUHZVKUHZVIUF
        ZVJVNUKUKHVHBOVIUKUCZVPUKUCAVOVHUCULZJUDUMZVOUKVIUNUOVTVSUKUCWAWBVRUKVI
        UNUOVOBVIUPVOBUIZVRVMVIWCVQVLIVKVOBGVKUQURUSACEUTUEZHVAHVBACDEFGHIJKLMN
        OPQRSTVCCWDHVDVEVFVG $.
    $}

    pi1xfr.i $e |- I = ( x e. ( 0 [,] 1 ) |-> ( F ` ( 1 - x ) ) ) $.
    $( Given a path ` F ` and its inverse ` I ` between two basepoints, there
       is an induced group homomorphism on the fundamental groups.
       (Contributed by Mario Carneiro, 12-Feb-2015.) $)
    pi1xfr $p |- ( ph -> G e. ( P GrpHom Q ) ) $=
      ( cfv co vy vz vf vh vu cgrp wcel wa cbs cplusg wceq wral cghm ctopon cc0
      wf cv c1 cicc cii ccn iitopon cnf2 syl3anc 0elunit ffvelrn sylancl pi1grp
      a1i syl2anc 1elunit jca w3a pcorevcl syl simp1d simp2d eqcomd simp3d cuni
      pi1xfrf cphtpc cqs pi1bas2 eleq2d biimpa eqid oveq1 fveq2d oveq1d eqeq12d
      cec fveq2 ralbidv adantlr oveq2d cpco wer phtpcer pi1eluni 3adant3 adantr
      oveq2 wb biimp3a pco0 eqtrd eqtr4d pcocn 3ad2ant1 3eqtr4rd erref cdiv cle
      c2 wbr c4 cmul caddc cif cmpt pcoass csn pco1 pcorev2 pcohtpy pcopt ertrd
      ertr3d ertr4d erthi mpbir3and pi1xfrval eqidd pi1addval 3eqtr4d ralrimiva
      cxp ectocld syldan simp2 simp3 simpr oveq12d 3expa isghm sylanbrc ) ADUFU
      GZEUFUGZUHCEUISZHUPZUAUQZUBUQZDUJSZTZHSZUULHSZUUMHSZEUJSZTZUKZUBCULZUACUL
      ZUHHDEUMTUGAUUHUUIAJKUNSUGZUOGSZKUGZUUHPAUOURUSTZKGUPZUOUVGUGUVFAUTUVGUNS
      UGZUVDGUTJVATZUGZUVHUVIAVBVIPQGUTJUVGKVCVDZVEUVGKUOGVFVGZDJKUVELVHVJAUVDU
      RGSZKUGZUUIPAUVHURUVGUGUVOUVLVKUVGKURGVFVGZEJKUVNMVHVJVLAUUKUVCACDEFGHIJK
      LMNOPQAIUVJUGZUOISZUVNUKZURISZUVEUKZAUVKUVQUVSUWAVMQBGIJRVNVOZVPZAUVRUVNA
      UVQUVSUWAUWBVQZVRZAUVQUVSUWAUWBVSZWAAUVBUACAUULCUGZUULCVTZJWBSZWCZUGZUVBA
      UWGUWKACUWJUULACDJKUVELPUVMCDUISUKANVIZWDZWEWFUCUQZUWIWLZUUMUUNTZHSZUWOHS
      ZUURUUSTZUKZUBCULUVBAUCUULUWHUWIUWJUWJWGZUWOUULUKZUWTUVAUBCUXBUWQUUPUWSUU
      TUXBUWPUUOHUWOUULUUMUUNWHWIUXBUWRUUQUURUUSUWOUULHWMWJWKWNAUWNUWHUGZUHZUWT
      UBCUXDUUMCUGZUUMUWJUGZUWTAUXEUXFUXCAUXEUXFACUWJUUMUWMWEWFWOUWOUDUQZUWIWLZ
      UUNTZHSZUWRUXHHSZUUSTZUKZUWTUXDUDUUMUWHUWIUWJUXAUXHUUMUKZUXJUWQUXLUWSUXNU
      XIUWPHUXHUUMUWOUUNXCWIUXNUXKUURUWRUUSUXHUUMHWMWPWKAUXCUXGUWHUGZUXMAUXCUXO
      VMZUWNUXGJWQSZTZUWIWLZHSZIUWNGUXQTZUXQTZUWIWLZIUXGGUXQTZUXQTZUWIWLZUUSTZU
      XJUXLUXPIUXRGUXQTZUXQTZUWIWLUYBUYEUXQTZUWIWLUXTUYGUXPUYIUYJUWIUVJUVJUWIWR
      UXPJWSVIZUXPUYIIUYAUYEUXQTZUXQTUYJUWIUVJUYKUXPIUYHIJUYLUXPUOUXRSZUVEUOUYH
      SUVTUXPUYMUOUWNSZUVEUXPUWNUXGJAUXCUWNUVJUGZUXOUXDUYOUYNUVEUKZURUWNSZUVEUK
      ZAUXCUYOUYPUYRVMACUWNDJKUVELPUVMUWLWTWFZVPZXAZUXPUXGUVJUGZUOUXGSZUVEUKZUR
      UXGSZUVEUKZAUXCUXOVUBVUDVUFVMZAUXOVUGXDUXCACUXGDJKUVELPUVMUWLWTXBXEZVPZXF
      AUXCUYPUXOUXDUYOUYPUYRUYSVQZXAXGZUXPUXRGJUXPUWNUXGJVUAVUIUXPUYQUVEVUCAUXC
      UYRUXOUXDUYOUYPUYRUYSVSZXAZUXPVUBVUDVUFVUHVQZXHZXIZAUXCUVKUXOQXJZXFAUXCUW
      AUXOUWFXJZXKUXPIUWIUVJUYKAUXCUVQUXOUWCXJZXLUXPUYHUWNUYDUXQTZUYLUWIUVJUYKU
      XPUEUEUVGUEUQZURXOXMTZXNXPVVAURXQXMTZXNXPXOVVAXRTVVAVVCXSTXTVVAXOXMTVVBXS
      TXTYAZUWNUXGGJVUAVUIVUQVUOUXPVUBVUDVUFVUHVSZVVDWGZYBUXPVUTUWNGUYEUXQTZUXQ
      TUYLUWIUVJUYKUXPUWNUYDUWNJVVGUXPUYQVUCUOUYDSZVUOUXPUXGGJVUIVUQXFZXHUXPUWN
      UWIUVJUYKVUAXLUXPUYDGIUXQTZUYDUXQTZVVGUWIUVJUYKUXPVVKUVGUVEYCYRZUYDUXQTZU
      YDUWIUVJUYKUXPVVJUYDVVLJUYDUXPURVVJSUVTVVHUXPGIJVUQVUSYDUXPVUCUVEVVHUVTVU
      NVVIVURXKZXGUXPUVKVVJVVLUWIXPVUQBVVLGIJRVVLWGZYEVOUXPUYDUWIUVJUYKUXPUXGGJ
      VUIVUQVVEXIZXLYFUXPUYDUVJUGVVHUVEUKVVMUYDUWIXPVVPUXPVVHVUCUVEVVIVUNXGVVLU
      YDJUVEVVOYGVJYHUXPUEVVDGIUYDJVUQVUSVVPUXPUVRUVNAUXCUVSUXOUWDXJZVRZVVNVVFY
      BYIYFUXPUEVVDUWNGUYEJVUAVUQUXPIUYDJVUSVVPVVNXIZVUMUXPUOUYESZUVNUXPVVTUVRU
      VNUXPIUYDJVUSVVPXFVVQXGZVRVVFYBYJYHYFUXPUEVVDIUYAUYEJVUSAUXCUYAUVJUGUXOUX
      DUWNGJUYTAUVKUXCQXBZVULXIZXAVVSAUXCUVTUOUYASZUKUXOUXDUYNUVEVWDUVTVUJUXDUW
      NGJUYTVWBXFAUWAUXCUWFXBZXKZXAUXPURUYASZUVNVVTUXPUWNGJVUAVUQYDVWAXHVVFYBYJ
      YKUXPUXRCDEFGHIJKLMNOAUXCUVDUXOPXJZVUQVUSVVRVURUXPUXRUWHUGZUXRUVJUGZUYMUV
      EUKZURUXRSZUVEUKZVUPVUKUXPVWLVUEUVEUXPUWNUXGJVUAVUIYDVVEXGAUXCVWIVWJVWKVW
      MVMXDUXOACUXRDJKUVELPUVMUWLWTXJYLYMUXPUUJUUSEJUYBUYEKUVNMUUJWGZVWHAUXCUVO
      UXOUVPXJZUUSWGZUXPUYBUUJVTZUGUYBUVJUGZUOUYBSZUVNUKZURUYBSZUVNUKZAUXCVWRUX
      OUXDIUYAJAUVQUXCUWCXBZVWCVWFXIXAAUXCVWTUXOUXDVWSUVRUVNUXDIUYAJVXCVWCXFAUV
      SUXCUWDXBXGXAAUXCVXBUXOUXDVXAVWGUVNUXDIUYAJVXCVWCYDUXDUWNGJUYTVWBYDXGXAUX
      PUUJUYBEJKUVNMVWHVWOUXPUUJYNZWTYLUXPUYEVWQUGUYEUVJUGVVTUVNUKURUYESZUVNUKV
      VSVWAUXPVXEURUYDSUVNUXPIUYDJVUSVVPYDUXPUXGGJVUIVUQYDXGUXPUUJUYEEJKUVNMVWH
      VWOVXDWTYLYOYPUXPUXIUXSHUXPCUUNDJUWNUXGKUVELNVWHAUXCUVFUXOUVMXJUUNWGZAUXC
      UXOUUAAUXCUXOUUBZYOWIUXPUWRUYCUXKUYFUUSAUXCUWRUYCUKUXOUXDUWNCDEFGHIJKLMNO
      AUVDUXCPXBVWBVXCAUVNUVRUKUXCUWEXBVWEAUXCUUCYMXAUXPUXGCDEFGHIJKLMNOVWHVUQV
      USVVRVURVXGYMUUDYPUUEYSYTYQYSYTYQVLUBUAUUNUUSDEHCUUJNVWNVXFVWPUUFUUG $.

    ${
      pi1xfrcnv.h $e |- H = ran ( h e. U. ( Base ` Q ) |-> <. [ h ]
    ( ~=ph ` J ) , [ ( F ( *p ` J ) ( h ( *p ` J ) I ) ) ] ( ~=ph ` J ) >. ) $.
      $( Given a path ` F ` between two basepoints, there is an induced group
         homomorphism on the fundamental groups.  (Contributed by Mario
         Carneiro, 12-Feb-2015.)  (Proof shortened by Mario Carneiro,
         23-Dec-2016.) $)
      pi1xfrcnvlem $p |- ( ph -> `' G C_ H ) $=
        ( ccnv cbs cfv cuni cv cphtpc cec cpco co cop cmpt ccom crn cvv wcel wa
        fvex ecexg mp1i fliftcnv cii ccn cc0 c1 wceq w3a pcorevcl simp1d adantr
        syl cicc wf ctopon iitopon a1i syl3anc 0elunit ffvelrn sylancl pi1eluni
        cnf2 biimpa simp3d pcocn simp2d eqtr4d pco0 eqtrd pco1 wb 1elunit eqidd
        mpbir3and eceq1 oveq1 oveq2d eceq1d opeq12d fmptco phtpcer eqtr2d erref
        wer csn cxp wbr eqid pcopt2 syl2anc c2 cdiv c4 cmul caddc eqcomd pcoass
        cle cif pcorev2 ertr2d ertr3d ertr4d pcopt ertrd erthi opeq2d mpteq2dva
        pcohtpy rneqd rncoss sseqtr4i syl6eqss ) AIUBZGEUCUDZUEZGUFZLUGUDZUHZHY
        QKLUIUDZUJZYTUJZYRUHZUKZULZFCUEZKFUFZHYTUJZYTUJZULZUMZUNZJAYNFUUFUUIYRU
        HZUUGYRUHZUKZULZUNUULAFUUNUUMUOUOIUUFQYRUOUPZUUNUOUPAUUGUUFUPZUQZLUGURZ
        UUGUOYRUSUTUUQUUMUOUPUUSUUTUUIUOYRUSUTVAAUUKUUPAUUKFUUFUUMHUUIKYTUJZYTU
        JZYRUHZUKZULUUPAFGUUFYPUUIUUDUVDUUJUUEUUSUUIYPUPZUUIVBLVCUJZUPZVDUUIUDZ
        VEHUDZVFZVEUUIUDZUVIVFZUUSKUUHLAKUVFUPZUURAUVMVDKUDZUVIVFZVEKUDZVDHUDZV
        FZAHUVFUPZUVMUVOUVRVGSBHKLTVHVKZVIVJZUUSUUGHLUUSUUGUVFUPZVDUUGUDZUVQVFZ
        VEUUGUDZUVQVFZAUURUWBUWDUWFVGACUUGDLMUVQNRAVDVEVLUJZMHVMZVDUWGUPUVQMUPA
        VBUWGVNUDUPZLMVNUDUPUVSUWHUWIAVOVPRSHVBLUWGMWBVQZVRUWGMVDHVSVTCDUCUDVFA
        PVPWAWCZVIZAUVSUURSVJZUUSUWBUWDUWFUWKWDZWEZUUSUVPUWCVDUUHUDUUSUVPUVQUWC
        AUVRUURAUVMUVOUVRUVTWDVJUUSUWBUWDUWFUWKWFZWGZUUSUUGHLUWLUWMWHWGZWEUUSUV
        HUVNUVIUUSKUUHLUWAUWOWHAUVOUURAUVMUVOUVRUVTWFVJZWIUUSUVKVEUUHUDZUVIUUSK
        UUHLUWAUWOWJUUSUUGHLUWLUWMWJZWIAUVEUVGUVJUVLVGWKUURAYOUUIELMUVIORAUWHVE
        UWGUPUVIMUPUWJWLUWGMVEHVSVTAYOWMWAVJWNAUUJWMAUUEWMYQUUIVFZYSUUMUUCUVCYQ
        UUIYRWOUXBUUBUVBYRUXBUUAUVAHYTYQUUIKYTWPWQWRWSWTAFUUFUVDUUOUUSUVCUUNUUM
        UUSUVBUUGYRUVFUVFYRXDUUSLXAVPZUUSUVBHKUUGYTUJZYTUJZUUGYRUVFUXCUUSHUXDHL
        UVAUUSVDUXDUDUVNUVIUUSKUUGLUWAUWLWHUWSXBUUSHYRUVFUXCUWMXCUUSUXDKUUHKYTU
        JZYTUJUVAYRUVFUXCUUSKUUGKLUXFUWQUUSKYRUVFUXCUWAXCUUSUUGUUGUWGUVQXEXFZYT
        UJZUXFYRUVFUXCUUSUWBUWFUXHUUGYRXGUWLUWNUXGUUGLUVQUXGXHZXIXJUUSUXFUUGHKY
        TUJZYTUJUXHYRUVFUXCUUSBBUWGBUFZVEXKXLUJZXRXGUXKVEXMXLUJZXRXGXKUXKXNUJUX
        KUXMXOUJXSUXKXKXLUJUXLXOUJXSULZUUGHKLUWLUWMUWAUWNUUSUVNUVIUWSXPZUXNXHZX
        QUUSUUGUXJUUGLUXGUUSUWEUVQVDUXJUDUWNUUSHKLUWMUWAWHWGUUSUUGYRUVFUXCUWLXC
        ZUUSUVSUXJUXGYRXGUWMBUXGHKLTUXIXTVKZYIYAYBYIUUSBUXNKUUHKLUWAUWOUWAUWRUU
        SUWTUVIUVNUXAUWSWGUXPXQYCYIUUSUXEUXJUUGYTUJZUUGYRUVFUXCUUSBUXNHKUUGLUWM
        UWAUWLUXOUWQUXPXQUUSUXSUXGUUGYTUJZUUGYRUVFUXCUUSUXJUUGUXGLUUGUUSVEUXJUD
        UVPUWCUUSHKLUWMUWAWJUWQWIUXRUXQYIUUSUWBUWDUXTUUGYRXGUWLUWPUXGUUGLUVQUXI
        YDXJYEYBYBYFYGYHWIYJWGUULUUEUNJUUEUUJYKUAYLYM $.

      $( Given a path ` F ` between two basepoints, there is an induced group
         homomorphism on the fundamental groups.  (Contributed by Mario
         Carneiro, 12-Feb-2015.)  (Proof shortened by Mario Carneiro,
         23-Dec-2016.) $)
      pi1xfrcnv $p |- ( ph -> ( `' G = H /\ `' G e. ( Q GrpHom P ) ) ) $=
        ( vz vy ccnv wceq cghm co wcel pi1xfrcnvlem wrel cvv cxp wss cphtpc cfv
        cv cec cpco cuni wa fvex ecexg mp1i fliftrel df-rel sylibr dfrel2 sylib
        cbs cc0 c1 cicc cmin cmpt cop crn cpi1 0elunit oveq2 1m0e1 syl6eq fvmpt
        fveq2d ax-mp oveq2i eqtr4i 1elunit fveq2i eqid cii ccn w3a pcorevcl syl
        1m1e0 simp1d cbvmptv ctopon wf iitopon a1i syl3anc feqmptd iirev ax-1cn
        cnf2 cc unitssre sseli recnd nncan sylancr eqtrd mpteq2ia oveq1d eceq1d
        cr syl6eqr opeq2d mpteq2dv rneqd syl5eq cnveqd unieqd mpteq12dv 3sstr4d
        oveq2d cnvss eqsstr3d eqssd pi1xfr eqeltrd jca ) AIUDZJUEYNEDUFUGZUHAYN
        JABCDEFGHIJKLMNOPQRSTUAUIAJJUDZUDZYNAJUJZYQJUEAJUKUKULUMYRAGGUPZLUNUOZU
        QZHYSKLURUOZUGZUUBUGZYTUQZUKUKJEVIUOZUSZUAYTUKUHZUUAUKUHAYSUUGUHUTZLUNV
        AZYSUKYTVBVCUUHUUEUKUHUUIUUJUUDUKYTVBVCVDJVEVFJVGVHAYPIUMYQYNUMAGUUGUUA
        UBVJVKVLUGZVKUBUPZVMUGZKUOZVNZUUCUUBUGZYTUQZVOZVNZVPZUDFDVIUOZUSZFUPZYT
        UQZKUVCUUOUUBUGZUUBUGZYTUQZVOZVNZVPZYPIAUCUUFEDGFKUUTUVJUUOLMELVKHUOZVQ
        UGLVJKUOZVQUGOUVLUVKLVQVJUUKUHUVLUVKUEZVRBVJVKBUPZVMUGZHUOZUVKUUKKUVNVJ
        UEZUVOVKHUVQUVOVKVJVMUGVKUVNVJVKVMVSVTWAWCTVKHVAWBWDWEWFZDLVJHUOZVQUGLV
        KKUOZVQUGNUVTUVSLVQVKUUKUHUVTUVSUEZWGBVKUVPUVSUUKKUVNVKUEZUVPVKVKVMUGZH
        UOUVSUWBUVOUWCHUVNVKVKVMVSWCUWCVJHWOWHWATVJHVAWBWDWEWFZUUFWIZUUTWIZRAKW
        JLWKUGZUHZUVMUWAAHUWGUHZUWHUVMUWAWLSBHKLTWMWNWPZUBUCUUKUUNVKUCUPZVMUGZK
        UOUULUWKUEUUMUWLKUULUWKVKVMVSWCWQZUVJWIUIAJUUTAJGUUGUUAUUEVOZVNZVPUUTUA
        AUWOUUSAGUUGUWNUURAUUEUUQUUAAUUDUUPYTAHUUOUUCUUBAHUBUUKUULHUOZVNUUOAUBU
        UKMHAWJUUKWRUOUHZLMWRUOUHUWIUUKMHWSUWQAWTXARSHWJLUUKMXFXBXCUBUUKUUNUWPU
        ULUUKUHZUUNVKUUMVMUGZHUOZUWPUWRUUMUUKUHUUNUWTUEUULXDBUUMUVPUWTUUKKUVNUU
        MUEUVOUWSHUVNUUMVKVMVSWCTUWSHVAWBWNUWRUWSUULHUWRVKXGUHUULXGUHUWSUULUEXE
        UWRUULUUKXQUULXHXIXJVKUULXKXLWCXMXNXRZXOXPXSXTYAYBZYCAIFCUSZUVDKUVCHUUB
        UGZUUBUGZYTUQZVOZVNZVPUVJQAUXHUVIAFUXCUXGUVBUVHACUVACUVAUEAPXAYDAUXFUVG
        UVDAUXEUVFYTAUXDUVEKUUBAHUUOUVCUUBUXAYGYGXPXSYEYAYBYFYPIYHWNYIYJZAYNUUT
        YOAYNJUUTUXIUXBXMAUCUUFEDGKUUTUUOLMUVRUWDUWEUWFRUWJUWMYKYLYM $.
    $}

    $( The mapping ` G ` between fundamental groups is an isomorphism.
       (Contributed by Mario Carneiro, 12-Feb-2015.) $)
    pi1xfrgim $p |- ( ph -> G e. ( P GrpIso Q ) ) $=
      ( vy co cghm wcel ccnv cgim pi1xfr cbs cfv cuni cphtpc cec cpco cmpt wceq
      cv cop crn eqid pi1xfrcnv simprd isgim2 sylanbrc ) AHDEUATUBHUCZEDUATUBZH
      DEUDTUBABCDEFGHIJKLMNOPQRUEAVBSEUFUGUHSUNZJUIUGZUJGVDIJUKUGZTVFTVEUJUOULU
      PZUMVCABCDEFSGHVGIJKLMNOPQRVGUQURUSDEHUTVA $.
  $}

  ${
    $d g s A $.  $d g h s F $.  $d f g h s z J $.  $d f g h s y z ph $.
    $d f h y z G $.  $d g h s K $.  $d f g h s y z P $.  $d g s T $.
    $d f g h s y z Q $.  $d f g h s y z V $.
    pi1co.p $e |- P = ( J pi1 A ) $.
    pi1co.q $e |- Q = ( K pi1 B ) $.
    pi1co.v $e |- V = ( Base ` P ) $.
    pi1co.g $e |- G = ran ( g e. U. V |->
      <. [ g ] ( ~=ph ` J ) , [ ( F o. g ) ] ( ~=ph ` K ) >. ) $.
    pi1co.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    pi1co.f $e |- ( ph -> F e. ( J Cn K ) ) $.
    pi1co.a $e |- ( ph -> A e. X ) $.
    pi1co.b $e |- ( ph -> ( F ` A ) = B ) $.
    $( Functionality of the loop transfer function on the equivalence class of
       a path.  (Contributed by Mario Carneiro, 23-Dec-2016.) $)
    pi1cof $p |- ( ph -> G : V --> ( Base ` Q ) ) $=
      ( vh vs cbs cfv wf cuni cv cphtpc cec cmpt crn wfun ccom cvv wcel wa fvex
      ecexg mp1i eqid ctopon ctop ccn co cntop2 syl toptopon sylib cnf2 syl3anc
      adantr ffvelrnd eqeltrrd cii cc0 wceq w3a a1i pi1eluni biimpa simp1d cnco
      c1 syl2anc cicc iitopon 0elunit fvco3 sylancl simp2d fveq2d 3eqtrd simp3d
      1elunit elpi1i eceq1 coeq2 eceq1d wer phtpcer simpr3 simpr1 wb mpbid erth
      wbr mpbird phtpcco2 erthi fliftfund fliftf cqs pi1bas2 df-qs rnmpt eqtr4i
      wrex cab syl6eq feq2d ) AKEUCUDZHUEFKUFZFUGZIUHUDZUIZUJZUKZYAHUEZAHULYHAF
      UAYEGYCUMZJUHUDZUIZUAUGZYDUIZGYLUMZYJUIUNYAHYBPYDUNUOYEUNUOAYCYBUOZUPZIUH
      UQYCUNYDURUSZYPYAYIEJJUFZCNYAUTAJYRVAUDUOZYOAJVBUOZYSAGIJVCVDUOZYTRGIJVEV
      FJYRYRUTVGVHZVKACYRUOYOABGUDZCYRTALYRBGAILVAUDUOZYSUUALYRGUEQUUBRGIJLYRVI
      VJSVLVMVKYPYCVNIVCVDZUOZUUAYIVNJVCVDZUOYPUUFVOYCUDZBVPZWCYCUDZBVPZAYOUUFU
      UIUUKVQZAKYCDILBMQSKDUCUDVPAOVRZVSZVTZWAZAUUAYORVKYCGVNIJWBWDYPVOYIUDZUUH
      GUDZUUCCYPVOWCWEVDZLYCUEZVOUUSUOUUQUURVPYPVNUUSVAUDUOZUUDUUFUUTUVAYPWFVRA
      UUDYOQVKUUPYCVNIUUSLVIVJZWGUUSLVOGYCWHWIYPUUHBGYPUUFUUIUUKUUOWJWKAUUCCVPY
      OTVKZWLYPWCYIUDZUUJGUDZUUCCYPUUTWCUUSUOUVDUVEVPUVBWNUUSLWCGYCWHWIYPUUJBGY
      PUUFUUIUUKUUOWMWKUVCWLWOZYCYLYDWPYCYLVPYIYNYJYCYLGWQWRAYOYLYBUOZYEYMVPZVQ
      ZUPZYIYNYJUUGUUGYJWSUVJJWTVRUVJGYCYLIJUVJYCYLYDXFUVHAYOUVGUVHXAUVJYCYLYDU
      UEUUEYDWSUVJIWTVRUVJUUFUUIUUKUVJYOUULAYOUVGUVHXBAYOUULXCUVIUUNVKXDWAXEXGA
      UUAUVIRVKXHXIXJAFYEYKUNYAHYBPYQUVFXKXDAKYGYAHAKYBYDXLZYGAKDILBMQSUUMXMUVK
      UBUGYEVPFYBXQUBXRYGFUBYBYDXNFUBYBYEYFYFUTXOXPXSXTXG $.

    $( The value of the loop transfer function on the equivalence class of a
       path.  (Contributed by Mario Carneiro, 10-Aug-2015.)  (Proof shortened
       by Mario Carneiro, 23-Dec-2016.) $)
    pi1coval $p |- ( ( ph /\ T e. U. V ) ->
        ( G ` [ T ] ( ~=ph ` J ) ) = [ ( F o. T ) ] ( ~=ph ` K ) ) $=
      ( cv cphtpc cfv cec ccom cvv cuni wcel fvex ecexg mp1i eceq1 coeq2 eceq1d
      wa wceq cbs wf wfun pi1cof ffun syl fliftval ) AGGUBZJUCUDZUEZHVEUFZKUCUD
      ZUEZFVFUEHFUFZVIUEUGUGILUHZFQVFUGUIVGUGUIAVEVLUIUPZJUCUJVEUGVFUKULVIUGUIV
      JUGUIVMKUCUJVHUGVIUKULVEFVFUMVEFUQVHVKVIVEFHUNUOALEURUDZIUSIUTABCDEGHIJKL
      MNOPQRSTUAVALVNIVBVCVD $.

    $( The mapping ` G ` between fundamental groups is a group homomorphism.
       (Contributed by Mario Carneiro, 10-Aug-2015.)  (Revised by Mario
       Carneiro, 23-Dec-2016.) $)
    pi1coghm $p |- ( ph -> G e. ( P GrpHom Q ) ) $=
      ( vy vz vf vh cgrp wcel wa cbs cfv wf cplusg wceq wral cghm ctopon pi1grp
      cv syl2anc cuni ctop ccn cntop2 eqid toptopon sylib cnf2 syl3anc ffvelrnd
      co syl eqeltrrd jca pi1cof cphtpc cqs a1i pi1bas2 eleq2d biimpa cec oveq1
      fveq2d fveq2 oveq1d eqeq12d ralbidv oveq2 oveq2d cpco ccom cii cc0 c1 w3a
      pi1eluni simp1d adantr simp3d simp2d eqtr4d copco eceq1d pcocn pco0 eqtrd
      ad2antrr pco1 mpbir3and pi1coval adantlr syldan cnco cicc iitopon 0elunit
      fvco3 sylancl 3eqtrd 1elunit eqidd pi1addval 3eqtr4d simplr simpr oveq12d
      wb ectocld ralrimiva raleqdv mpbird isghm sylanbrc ) ADUEUFZEUEUFZUGKEUHU
      IZHUJZUAUQZUBUQZDUKUIZVIZHUIZYQHUIZYRHUIZEUKUIZVIZULZUBKUMZUAKUMZUGHDEUNV
      IUFAYMYNAILUOUIUFZBLUFZYMQSDILBMUPURAJJUSZUOUIUFZCUUKUFZYNAJUTUFZUULAGIJV
      AVIUFZUUNRGIJVBVJJUUKUUKVCVDVEZABGUIZCUUKTALUUKBGAUUIUULUUOLUUKGUJQUUPRGI
      JLUUKVFVGSVHVKZEJUUKCNUPURVLAYPUUHABCDEFGHIJKLMNOPQRSTVMAUUGUAKAYQKUFZYQK
      USZIVNUIZVOZUFZUUGAUUSUVCAKUVBYQAKDILBMQSKDUHUIULZAOVPZVQZVRVSUCUQZUVAVTZ
      YRYSVIZHUIZUVHHUIZUUCUUDVIZULZUBKUMZUUGAUCYQUUTUVAUVBUVBVCZUVHYQULZUVMUUF
      UBKUVPUVJUUAUVLUUEUVPUVIYTHUVHYQYRYSWAWBUVPUVKUUBUUCUUDUVHYQHWCWDWEWFAUVG
      UUTUFZUGZUVNUVMUBUVBUMUVRUVMUBUVBUVHUDUQZUVAVTZYSVIZHUIZUVKUVTHUIZUUDVIZU
      LUVMUVRUDYRUUTUVAUVBUVOUVTYRULZUWBUVJUWDUVLUWEUWAUVIHUVTYRUVHYSWGWBUWEUWC
      UUCUVKUUDUVTYRHWCWHWEUVRUVSUUTUFZUGZUVGUVSIWIUIVIZUVAVTZHUIZGUVGWJZJVNUIZ
      VTZGUVSWJZUWLVTZUUDVIZUWBUWDUWGGUWHWJZUWLVTZUWKUWNJWIUIVIZUWLVTUWJUWPUWGU
      WQUWSUWLUWGUVGUVSGIJUVRUVGWKIVAVIZUFZUWFUVRUXAWLUVGUIZBULZWMUVGUIZBULZAUV
      QUXAUXCUXEWNAKUVGDILBMQSUVEWOVSZWPZWQZUWGUVSUWTUFZWLUVSUIZBULZWMUVSUIZBUL
      ZUVRUWFUXIUXKUXMWNUVRKUVSDILBMAUUIUVQQWQZAUUJUVQSWQUVDUVROVPWOVSZWPZUWGUX
      DBUXJUVRUXEUWFUVRUXAUXCUXEUXFWRZWQUWGUXIUXKUXMUXOWSZWTZAUUOUVQUWFRXFZXAXB
      UVRUWFUWHUUTUFZUWJUWRULZUWGUYAUWHUWTUFWLUWHUIZBULWMUWHUIZBULUWGUVGUVSIUXH
      UXPUXSXCUWGUYCUXBBUWGUVGUVSIUXHUXPXDUVRUXCUWFUVRUXAUXCUXEUXFWSZWQXEUWGUYD
      UXLBUWGUVGUVSIUXHUXPXGUWGUXIUXKUXMUXOWRZXEUWGKUWHDILBMAUUIUVQUWFQXFZAUUJU
      VQUWFSXFZUVDUWGOVPWOXHAUYAUYBUVQABCDEUWHFGHIJKLMNOPQRSTXIXJXKUWGYOUUDEJUW
      KUWNUUKCNYOVCZAUULUVQUWFUUPXFAUUMUVQUWFUURXFUUDVCZUVRUWKYOUSZUFZUWFUVRUYL
      UWKWKJVAVIZUFZWLUWKUIZCULWMUWKUIZCULUVRUXAUUOUYNUXGAUUOUVQRWQUVGGWKIJXLUR
      UVRUYOUXBGUIZUUQCUVRWLWMXMVIZLUVGUJZWLUYRUFZUYOUYQULUVRWKUYRUOUIUFZUUIUXA
      UYSVUAUVRXNVPUXNUXGUVGWKIUYRLVFVGZXOUYRLWLGUVGXPXQUVRUXBBGUYEWBAUUQCULZUV
      QTWQZXRUVRUYPUXDGUIZUUQCUVRUYSWMUYRUFZUYPVUEULVUBXSUYRLWMGUVGXPXQUVRUXDBG
      UXQWBVUDXRUVRYOUWKEJUUKCNAUULUVQUUPWQAUUMUVQUURWQUVRYOXTWOXHWQUWGUWNUYKUF
      ZUWNUYMUFZWLUWNUIZCULZWMUWNUIZCULZUWGUXIUUOVUHUXPUXTUVSGWKIJXLURUWGVUIUXJ
      GUIZUUQCUWGUYRLUVSUJZUYTVUIVUMULUWGVUAUUIUXIVUNVUAUWGXNVPUYGUXPUVSWKIUYRL
      VFVGZXOUYRLWLGUVSXPXQUWGUXJBGUXRWBAVUCUVQUWFTXFZXRUWGVUKUXLGUIZUUQCUWGVUN
      VUFVUKVUQULVUOXSUYRLWMGUVSXPXQUWGUXLBGUYFWBVUPXRAVUGVUHVUJVULWNYFUVQUWFAY
      OUWNEJUUKCNUUPUURAYOXTWOXFXHYAYBUWGUWAUWIHUWGKYSDIUVGUVSLBMOUYGUYHYSVCZAU
      VQUWFYCUVRUWFYDYAWBUWGUVKUWMUWCUWOUUDUVRUVKUWMULUWFABCDEUVGFGHIJKLMNOPQRS
      TXIWQAUWFUWCUWOULUVQABCDEUVSFGHIJKLMNOPQRSTXIXJYEYBYGYHUVRUVMUBKUVBAKUVBU
      LUVQUVFWQYIYJYGXKYHVLUBUAYSUUDDEHKYOOUYIVURUYJYKYL $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Metric subcomplex vector spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subcomplex modules
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CMod $. $( Token for the class of subcomplex modules. $)

  $( Syntax for the class of subcomplex modules. $)
  cclm $a class CMod $.

  ${
    $d f k w F $.  $d f k w K $.  $d f k w W $.
    $( Define the class of subcomplex modules, which are left modules over a
       subring of the field of complex numbers ` CCfld ` , which allows us to
       use the complex addition, multiplication, etc. in theorems about
       subcomplex modules.  Since the field of complex numbers is commutative
       and so are its subrings (see ~ subrgcrng ), left modules over such
       subrings are the same as right modules, see ~ rmodislmod .  Therefore,
       we drop the word "left" from "subcomplex left module".  (Contributed by
       Mario Carneiro, 16-Oct-2015.) $)
    df-clm $a |- CMod = { w e. LMod | [. ( Scalar ` w ) / f ].
      [. ( Base ` f ) / k ].
        ( f = ( CCfld |`s k ) /\ k e. ( SubRing ` CCfld ) ) } $.

    isclm.f $e |- F = ( Scalar ` W ) $.
    isclm.k $e |- K = ( Base ` F ) $.
    $( A subcomplex module is a left module over a subring of the field of
       complex numbers.  (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    isclm $p |- ( W e. CMod <-> ( W e. LMod /\
      F = ( CCfld |`s K ) /\ K e. ( SubRing ` CCfld ) ) ) $=
      ( vf vk vw cclm wcel clmod ccnfld cress co wceq cfv wa cv cbs csca csubrg
      w3a wsbc cvv fvexd id fveq2 syl6eqr sylan9eqr adantr fveq2d oveq2d eleq1d
      eqeq12d anbi12d sbcied df-clm elrab2 3anass bitr4i ) CIJCKJZALBMNZOZBLUAP
      ZJZQZQVAVCVEUBFRZLGRZMNZOZVHVDJZQZGVGSPZUCZFHRZTPZUCVFHCKIVOCOZVNVFFVPUDV
      QVOTUEVQVGVPOZQZVLVFGVMUDVSVGSUEVSVHVMOZQZVJVCVKVEWAVGAVIVBVSVGAOVTVRVQVG
      VPAVRUFVQVPCTPAVOCTUGDUHUIZUJWAVHBLMVTVSVHVMBVTUFVSVMASPBVSVGASWBUKEUHUIZ
      ULUNWAVHBVDWCUMUOUPUPHFGUQURVAVCVEUSUT $.

    $( The ring of scalars ` F ` of a subcomplex module is the restriction of
       the field of complex numbers to the base set of ` F ` .  (Contributed by
       Mario Carneiro, 16-Oct-2015.) $)
    clmsca $p |- ( W e. CMod -> F = ( CCfld |`s K ) ) $=
      ( cclm wcel clmod ccnfld cress co wceq csubrg cfv isclm simp2bi ) CFGCHGA
      IBJKLBIMNGABCDEOP $.

    $( The base set of the ring of scalars of a subcomplex module is the base
       set of a subring of the field of complex numbers.  (Contributed by Mario
       Carneiro, 16-Oct-2015.) $)
    clmsubrg $p |- ( W e. CMod -> K e. ( SubRing ` CCfld ) ) $=
      ( cclm wcel clmod ccnfld cress co wceq csubrg cfv isclm simp3bi ) CFGCHGA
      IBJKLBIMNGABCDEOP $.
  $}

  $( A subcomplex module is a left module.  (Contributed by Mario Carneiro,
     16-Oct-2015.) $)
  clmlmod $p |- ( W e. CMod -> W e. LMod ) $=
    ( cclm wcel clmod csca cfv ccnfld cbs cress wceq csubrg eqid isclm simp1bi
    co ) ABCADCAEFZGPHFZIOJQGKFCPQAPLQLMN $.

  $( A subcomplex module is an additive group.  (Contributed by Mario Carneiro,
     16-Oct-2015.) $)
  clmgrp $p |- ( W e. CMod -> W e. Grp ) $=
    ( cclm wcel clmod cgrp clmlmod lmodgrp syl ) ABCADCAECAFAGH $.

  $( A subcomplex module is an abelian group.  (Contributed by Mario Carneiro,
     16-Oct-2015.) $)
  clmabl $p |- ( W e. CMod -> W e. Abel ) $=
    ( cclm wcel clmod cabl clmlmod lmodabl syl ) ABCADCAECAFAGH $.

  ${
    clm0.f $e |- F = ( Scalar ` W ) $.
    $( The scalar ring of a subcomplex module is a ring.  (Contributed by Mario
       Carneiro, 16-Oct-2015.) $)
    clmring $p |- ( W e. CMod -> F e. Ring ) $=
      ( cclm wcel clmod crg clmlmod lmodring syl ) BDEBFEAGEBHABCIJ $.

    $( The scalar ring of a subcomplex module is a group.  (Contributed by
       Mario Carneiro, 16-Oct-2015.) $)
    clmfgrp $p |- ( W e. CMod -> F e. Grp ) $=
      ( cclm wcel clmod cgrp clmlmod lmodfgrp syl ) BDEBFEAGEBHABCIJ $.

    $( The zero of the scalar ring of a subcomplex module.  (Contributed by
       Mario Carneiro, 16-Oct-2015.) $)
    clm0 $p |- ( W e. CMod -> 0 = ( 0g ` F ) ) $=
      ( cclm wcel cc0 ccnfld cbs cfv cress c0g csubrg wceq eqid clmsubrg cnfld0
      co subrg0 syl clmsca fveq2d eqtr4d ) BDEZFGAHIZJQZKIZAKIUCUDGLIEFUFMAUDBC
      UDNZOUDGUEFUENPRSUCAUEKAUDBCUGTUAUB $.

    $( The identity of the scalar ring of a subcomplex module.  (Contributed by
       Mario Carneiro, 16-Oct-2015.) $)
    clm1 $p |- ( W e. CMod -> 1 = ( 1r ` F ) ) $=
      ( cclm wcel c1 ccnfld cbs cfv cress co cur csubrg wceq eqid cnfld1 subrg1
      clmsubrg syl clmsca fveq2d eqtr4d ) BDEZFGAHIZJKZLIZALIUCUDGMIEFUFNAUDBCU
      DOZRUDGUEFUEOPQSUCAUELAUDBCUGTUAUB $.

    $( The addition of the scalar ring of a subcomplex module.  (Contributed by
       Mario Carneiro, 16-Oct-2015.) $)
    clmadd $p |- ( W e. CMod -> + = ( +g ` F ) ) $=
      ( cclm wcel cplusg cfv ccnfld cbs cress caddc eqid clmsca fveq2d cvv wceq
      co fvex cnfldadd ressplusg ax-mp syl6reqr ) BDEZAFGHAIGZJQZFGZKUCAUEFAUDB
      CUDLMNUDOEKUFPAIRUDKHUEOUELSTUAUB $.

    $( The multiplication of the scalar ring of a subcomplex module.
       (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    clmmul $p |- ( W e. CMod -> x. = ( .r ` F ) ) $=
      ( cclm wcel cmulr cfv ccnfld cbs co cmul eqid clmsca fveq2d cvv wceq fvex
      cress cnfldmul ressmulr ax-mp syl6reqr ) BDEZAFGHAIGZRJZFGZKUCAUEFAUDBCUD
      LMNUDOEKUFPAIQUDHUEKOUELSTUAUB $.

    $( The conjugation of the scalar ring of a subcomplex module.  (Contributed
       by Mario Carneiro, 16-Oct-2015.) $)
    clmcj $p |- ( W e. CMod -> * = ( *r ` F ) ) $=
      ( cclm wcel cstv cfv ccnfld cbs cress co ccj eqid clmsca fveq2d wceq fvex
      cvv cnfldcj ressstarv ax-mp syl6reqr ) BDEZAFGHAIGZJKZFGZLUCAUEFAUDBCUDMN
      OUDRELUFPAIQUDHUELRUEMSTUAUB $.

    $( Reverse direction of ~ isclm .  (Contributed by Mario Carneiro,
       30-Oct-2015.) $)
    isclmi $p |- ( ( W e. LMod /\ F = ( CCfld |`s K ) /\
                     K e. ( SubRing ` CCfld ) ) -> W e. CMod ) $=
      ( clmod wcel ccnfld cress co wceq csubrg cfv w3a cbs simp1 simp2 subrgbas
      cclm eqid 3ad2ant3 fveq2d eqtr4d oveq2d eqtrd simp3 eqeltrrd syl3anbrc
      isclm ) CEFZAGBHIZJZBGKLZFZMZUIAGANLZHIZJUOULFCRFUIUKUMOUNAUJUPUIUKUMPZUN
      BUOGHUNBUJNLZUOUMUIBURJUKBGUJUJSQTUNAUJNUQUAUBZUCUDUNBUOULUSUIUKUMUEUFAUO
      CDUOSUHUG $.

    clmsub.k $e |- K = ( Base ` F ) $.
    $( The scalar ring of a subcomplex module contains the integers.
       (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    clmzss $p |- ( W e. CMod -> ZZ C_ K ) $=
      ( cclm wcel ccnfld csubrg cfv cz wss clmsubrg zsssubrg syl ) CFGBHIJGKBLA
      BCDEMBNO $.

    $( The scalar ring of a subcomplex module is a subset of the complex
       numbers.  (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    clmsscn $p |- ( W e. CMod -> K C_ CC ) $=
      ( cclm wcel ccnfld csubrg cfv cc wss clmsubrg cnfldbas subrgss syl ) CFGB
      HIJGBKLABCDEMBKHNOP $.

    $( Subtraction in the scalar ring of a subcomplex module.  (Contributed by
       Mario Carneiro, 16-Oct-2015.) $)
    clmsub $p |- ( ( W e. CMod /\ A e. K /\ B e. K ) ->
      ( A - B ) = ( A ( -g ` F ) B ) ) $=
      ( cclm wcel w3a cmin co ccnfld cress csg cfv csubg wceq csubrg eqid oveqd
      clmsubrg subrgsubg cnfldsub subgsub syl3an1 clmsca fveq2d 3ad2ant1 eqtr4d
      syl ) EHIZADIZBDIZJZABKLZABMDNLZOPZLZABCOPZLULDMQPIZUMUNUPUSRULDMSPIVACDE
      FGUBDMUCUKDMUQKURABUDUQTURTUEUFUOUTURABULUMUTURRUNULCUQOCDEFGUGUHUIUAUJ
      $.

    $( Negation in the scalar ring of a subcomplex module.  (Contributed by
       Mario Carneiro, 16-Oct-2015.) $)
    clmneg $p |- ( ( W e. CMod /\ A e. K ) -> -u A = ( ( invg ` F ) ` A ) ) $=
      ( cclm wcel wa cminusg cfv ccnfld cress co cneg wceq clmsca syl eqid cc
      fveq2d adantr fveq1d csubg csubrg clmsubrg subrgsubg subginv sylan sselda
      clmsscn cnfldneg 3eqtr2rd ) DGHZACHZIZABJKZKALCMNZJKZKZALJKZKZAOZUPAUQUSU
      NUQUSPUOUNBURJBCDEFQUAUBUCUNCLUDKHZUOVBUTPUNCLUEKHVDBCDEFUFCLUGRCLURVAUSA
      URSVASUSSUHUIUPATHVBVCPUNCTABCDEFUKUJAULRUM $.

    $( Minus one is in the scalar ring of a subcomplex module.  (Contributed by
       AV, 28-Sep-2021.) $)
    clmneg1 $p |- ( W e. CMod -> -u 1 e. K ) $=
      ( cclm wcel cz wss c1 cneg clmzss neg1z ssel mpisyl ) CFGHBIJKZHGPBGABCDE
      LMHBPNO $.

    $( Norm in the scalar ring of a subcomplex module.  (Contributed by Mario
       Carneiro, 16-Oct-2015.) $)
    clmabs $p |- ( ( W e. CMod /\ A e. K ) ->
      ( abs ` A ) = ( ( norm ` F ) ` A ) ) $=
      ( cclm wcel wa cnm cfv ccnfld cress cabs wceq clmsca fveq2d adantr eqid
      co fveq1d csubg csubrg clmsubrg subrgsubg cnfldnm subgnm2 sylan eqtr2d
      syl ) DGHZACHZIZABJKZKALCMTZJKZKZANKZUMAUNUPUKUNUPOULUKBUOJBCDEFPQRUAUKCL
      UBKHZULUQUROUKCLUCKHUSBCDEFUDCLUEUJCLUOUPNAUOSUFUPSUGUHUI $.

    $( Closure of ring addition for a subcomplex module.  (Contributed by Mario
       Carneiro, 16-Oct-2015.) $)
    clmacl $p |- ( ( W e. CMod /\ X e. K /\ Y e. K ) -> ( X + Y ) e. K ) $=
      ( cclm wcel ccnfld csubrg cfv caddc co clmsubrg cnfldadd subrgacl syl3an1
      ) CHIBJKLIDBIEBIDEMNBIABCFGOBMJDEPQR $.

    $( Closure of ring multiplication for a subcomplex module.  (Contributed by
       Mario Carneiro, 16-Oct-2015.) $)
    clmmcl $p |- ( ( W e. CMod /\ X e. K /\ Y e. K ) -> ( X x. Y ) e. K ) $=
      ( cclm wcel ccnfld csubrg cfv cmul co clmsubrg cnfldmul subrgmcl syl3an1
      ) CHIBJKLIDBIEBIDEMNBIABCFGOBJMDEPQR $.

    $( Closure of ring subtraction for a subcomplex module.  (Contributed by
       Mario Carneiro, 16-Oct-2015.) $)
    clmsubcl $p |- ( ( W e. CMod /\ X e. K /\ Y e. K ) -> ( X - Y ) e. K ) $=
      ( cclm wcel ccnfld csubg cfv cmin csubrg clmsubrg subrgsubg syl subgsubcl
      co cnfldsub syl3an1 ) CHIZBJKLIZDBIEBIDEMSBIUBBJNLIUCABCFGOBJPQBJMDETRUA
      $.
  $}

  $( The domain of a linear operator is a subcomplex module iff the range is.
     (Contributed by Mario Carneiro, 21-Oct-2015.) $)
  lmhmclm $p |- ( F e. ( S LMHom T ) -> ( S e. CMod <-> T e. CMod ) ) $=
    ( clmhm wcel clmod csca cfv ccnfld cbs cress wceq csubrg w3a cclm lmhmlmod1
    co lmhmlmod2 eqid isclm 2thd lmhmsca eqcomd fveq2d oveq2d eqeq12d 3anbi123d
    eleq1d 3bitr4g ) CABDQEZAFEZAGHZIULJHZKQZLZUMIMHZEZNBFEZBGHZIUSJHZKQZLZUTUP
    EZNAOEBOEUJUKURUOVBUQVCUJUKURABCPABCRUAUJULUSUNVAUJUSULABCULUSULSZUSSZUBUCZ
    UJUMUTIKUJULUSJVFUDZUEUFUJUMUTUPVGUHUGULUMAVDUMSTUSUTBVEUTSTUI $.

  ${
    clmvscl.v $e |- V = ( Base ` W ) $.
    clmvscl.f $e |- F = ( Scalar ` W ) $.
    clmvscl.s $e |- .x. = ( .s ` W ) $.
    clmvscl.k $e |- K = ( Base ` F ) $.
    $( Closure of scalar product for a subcomplex module.  Analogue of
       ~ lmodvscl .  (Contributed by NM, 3-Nov-2006.)  (Revised by AV,
       28-Sep-2021.) $)
    clmvscl $p |- ( ( W e. CMod /\ Q e. K /\ X e. V )
                    -> ( Q .x. X ) e. V ) $=
      ( cclm wcel clmod co clmlmod lmodvscl syl3an1 ) FLMFNMADMGEMAGBOEMFPABCDE
      FGHIJKQR $.

    $( Associative law for scalar product.  Analogue of ~ lmodvsass .
       (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    clmvsass $p |- ( ( W e. CMod /\ ( Q e. K /\ R e. K /\ X e. V ) ) ->
                      ( ( Q x. R ) .x. X ) = ( Q .x. ( R .x. X ) ) ) $=
      ( cclm wcel w3a wa cmul co cmulr wceq cfv clmmul adantr oveqd oveq1d eqid
      clmod clmlmod lmodvsass sylan eqtrd ) GMNZAENBENHFNOZPZABQRZHCRABDSUAZRZH
      CRZABHCRCRZUNUOUQHCUNQUPABULQUPTUMDGJUBUCUDUEULGUGNUMURUSTGUHABCUPDEFGHIJ
      KLUPUFUIUJUK $.

    $( Commutative law for the scalar product.  (Contributed by NM,
       14-Feb-2008.)  (Revised by AV, 7-Oct-2021.) $)
    clmvscom $p |- ( ( W e. CMod /\ ( Q e. K /\ R e. K /\ X e. V ) )
                     -> ( Q .x. ( R .x. X ) ) = ( R .x. ( Q .x. X ) ) ) $=
      ( wcel w3a wa cmul co cc wceq ssel cclm wss anim12d clmsscn syl11 3adant3
      wi impcom mulcom syl oveq1d clmvsass 3ancoma sylan2b 3eqtr3d ) GUAMZAEMZB
      EMZHFMZNZOZABPQZHCQBAPQZHCQZABHCQCQBAHCQCQZVAVBVCHCVAARMZBRMZOZVBVCSUTUPV
      HUQURUPVHUGUSERUBZUQUROVHUPVIUQVFURVGERATERBTUCDEGJLUDUEUFUHABUIUJUKABCDE
      FGHIJKLULUTUPURUQUSNVDVESUQURUSUMBACDEFGHIJKLULUNUO $.

    clmvsdir.a $e |- .+ = ( +g ` W ) $.
    $( Distributive law for scalar product (right-distributivity).
       ( ~ lmodvsdir analog.)  (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    clmvsdir $p |- ( ( W e. CMod /\ ( Q e. K /\ R e. K /\ X e. V ) ) ->
                      ( ( Q + R ) .x. X ) = ( ( Q .x. X ) .+ ( R .x. X ) ) ) $=
      ( cclm wcel w3a caddc co wceq cplusg cfv clmadd oveqd oveq1d adantr clmod
      wa clmlmod eqid lmodvsdir sylan eqtrd ) HOPZBFPCFPIGPQZUHBCRSZIDSZBCEUAUB
      ZSZIDSZBIDSCIDSASZUNUQUTTUOUNUPUSIDUNRURBCEHKUCUDUEUFUNHUGPUOUTVATHUIAURB
      CDEFGHIJNKLMURUJUKULUM $.

    $( Distributive law for scalar product (left-distributivity).  ( ~ lmodvsdi
       analog.)  (Contributed by NM, 3-Nov-2006.)  (Revised by AV,
       28-Sep-2021.) $)
    clmvsdi $p |- ( ( W e. CMod /\ ( A e. K /\ X e. V /\ Y e. V ) ) ->
                    ( A .x. ( X .+ Y ) ) = ( ( A .x. X ) .+ ( A .x. Y ) ) ) $=
      ( cclm wcel clmod w3a co wceq clmlmod lmodvsdi sylan ) GOPGQPAEPHFPIFPRAH
      IBSCSAHCSAICSBSTGUABACDEFGHIJNKLMUBUC $.
  $}

  ${
    clmvs1.v $e |- V = ( Base ` W ) $.
    clmvs1.s $e |- .x. = ( .s ` W ) $.
    $( Scalar product with ring unit.  ( ~ lmodvs1 analog.)  (Contributed by
       Mario Carneiro, 16-Oct-2015.) $)
    clmvs1 $p |- ( ( W e. CMod /\ X e. V ) -> ( 1 .x. X ) = X ) $=
      ( cclm wcel wa c1 co csca cfv cur wceq eqid clm1 adantr oveq1d clmod
      clmlmod lmodvs1 sylan eqtrd ) CGHZDBHZIZJDAKCLMZNMZDAKZDUGJUIDAUEJUIOUFUH
      CUHPZQRSUECTHUFUJDOCUAAUIUHBCDEUKFUIPUBUCUD $.

    clmvs2.a $e |- .+ = ( +g ` W ) $.
    $( A vector plus itself is two times the vector.  (Contributed by NM,
       1-Feb-2007.)  (Revised by AV, 21-Sep-2021.) $)
    clmvs2 $p |- ( ( W e. CMod /\ A e. V ) -> ( A .+ A ) = ( 2 .x. A ) ) $=
      ( cclm wcel wa c2 co c1 caddc wceq df-2 oveq1i cfv eqid a1i cbs simpl cur
      csca clm1 clmod clmlmod lmod1cl syl adantr simpr clmvsdir syl13anc clmvs1
      eqeltrd oveq12d 3eqtrrd ) EIJZADJZKZLACMZNNOMZACMZNACMZVEBMZAABMVBVDPVALV
      CACQRUAVAUSNEUESZUBSZJZVIUTVDVFPUSUTUCUSVIUTUSNVGUDSZVHVGEVGTZUFUSEUGJVJV
      HJEUHVJVGVHEVKVHTZVJTUIUJUPUKZVMUSUTULBNNCVGVHDEAFVKGVLHUMUNVAVEAVEABCDEA
      FGUOZVNUQUR $.
  $}

  ${
    clm0vs.v $e |- V = ( Base ` W ) $.
    clm0vs.f $e |- F = ( Scalar ` W ) $.
    clm0vs.s $e |- .x. = ( .s ` W ) $.
    clm0vs.z $e |- .0. = ( 0g ` W ) $.
    $( Zero times a vector is the zero vector.  Equation 1a of [Kreyszig]
       p. 51.  ( ~ lmod0vs analog.)  (Contributed by Mario Carneiro,
       16-Oct-2015.) $)
    clm0vs $p |- ( ( W e. CMod /\ X e. V ) -> ( 0 .x. X ) = .0. ) $=
      ( cclm wcel wa cc0 co c0g cfv wceq clm0 adantr clmod clmlmod eqid lmod0vs
      oveq1d sylan eqtrd ) DKLZECLZMZNEAOBPQZEAOZFUJNUKEAUHNUKRUIBDHSTUEUHDUALU
      IULFRDUBABUKCDEFGHIUKUCJUDUFUG $.
  $}

  ${
    clmopfne.t $e |- .x. = ( .sf ` W ) $.
    clmopfne.a $e |- .+ = ( +f ` W ) $.
    $( The (functionalized) operations of addition and multiplication by a
       scalar of a subcomplex module cannot be identical.  (Contributed by NM,
       31-May-2008.)  (Revised by AV, 3-Oct-2021.) $)
    clmopfne $p |- ( W e. CMod -> .+ =/= .x. ) $=
      ( cclm wcel clmod csca cfv cur c0g wne clmlmod cc0 ax-1ne0 a1i eqid cbs
      c1 clm1 clm0 3netr3d lmodfopne syl2anc ) CFGZCHGCIJZKJZUGLJZMABMCNUFTOUHU
      ITOMUFPQUGCUGRZUAUGCUJUBUCAUGBUHUGSJZCSJZCUIDEULRUJUKRUIRUHRUDUE $.
  $}

  ${
    $d K r x y z $.  $d S r x y z $.  $d V r x y z $.  $d W r x y z $.
    $d .+ r x y z $.  $d .x. r x y z $.
    isclmp.t $e |- .x. = ( .s ` W ) $.
    isclmp.a $e |- .+ = ( +g ` W ) $.
    isclmp.v $e |- V = ( Base ` W ) $.
    isclmp.s $e |- S = ( Scalar ` W ) $.
    isclmp.k $e |- K = ( Base ` S ) $.
    $( The predicate "is a subcomplex module."  (Contributed by NM,
       31-May-2008.)  (Revised by AV, 4-Oct-2021.) $)
    isclmp $p |- ( W e. CMod <-> ( ( W e. Grp /\ S = ( CCfld |`s K )
                                     /\ K e. ( SubRing ` CCfld ) )
                 /\ A. x e. V ( ( 1 .x. x ) = x /\ A. y e. K ( ( y .x. x ) e. V
          /\ A. z e. V ( y .x. ( x .+ z ) ) = ( ( y .x. x ) .+ ( y .x. z ) )
            /\ A. z e. K ( ( ( z + y ) .x. x ) = ( ( z .x. x ) .+ ( y .x. x ) )
            /\ ( ( z x. y ) .x. x ) = ( z .x. ( y .x. x ) ) ) ) ) ) ) $=
      ( vr wcel co wceq wa wral cclm clmod ccnfld cress csubrg cfv w3a cgrp crg
      cv cplusg cmulr cur c1 caddc cmul isclm eqid islmod 3anbi1i 3anass df-3an
      anbi1i bitri 3bitri bicomi anass ancom anbi12i an4 wb fveq2 subrg1 eqcomd
      an32 sylan9eq cnfld1 syl6eqr oveq1d eqeq1d 3adant1 ad2antrr anbi1d adantl
      ressplusg cnfldadd a1i 3eqtr4rd oveqd ressmulr 3ad2ant3 cnfldmul 3ad2ant2
      adantr anbi12d syl5bb 2ralbidva ralcom ralbii 2ralbii syl6bb eleq1 mpbird
      subrgring biantrurd c0 wne grpbn0 3ad2ant1 subrg1cl ne0i ralbidv r19.28zv
      syl bitrd anbi2i eqeq12d cbvralv 3anbi3i 3anan32 syl2anc 3bitr3d pm5.32i
      weq oveq1 ) IUAPIUBPZEUCGUDQZRZGUCUEUFZPZUGZIUHPZEUIPZSZYHYJSZSZBUJZAUJZF
      QZHPZYQYRCUJZDQFQYSYQUUAFQDQRZOUJZYQEUKUFZQZYRFQZUUCYRFQZYSDQZRZUGZUUCYQE
      ULUFZQZYRFQZUUCYSFQZRZEUMUFZYRFQZYRRZSZSZAHTCHTZBGTOGTZSZYLYHYJUGZUNYRFQZ
      YRRZYTUUBCHTZUUAYQUOQZYRFQZUUAYRFQZYSDQZRZUUAYQUPQZYRFQZUUAYSFQZRZSZCGTZU
      GZBGTSZAHTZSZEGIMNUQYKYLYMUVBUGZYHYJUGZYNUVBSZYOSZUVCYFUWCYHYJCADUUDFUUKU
      UPEGHIBOLKJMNUUDURUUKURUUPURUSUTUWDUWCYOSUWFUWCYHYJVAUWCUWEYOYLYMUVBVBVCV
      DYNUVBYOVOVEUVCUVDYMSZUVBSUVDYMUVBSZSUWBYPUWGUVBYPYLYOSZYMSUWGYLYMYOVOUWI
      UVDYMUVDUWIYLYHYJVAVFVCVDVCUVDYMUVBVGUVDUWHUWAUVDUVBUVFYTSZUUBSZUUCYQUOQZ
      YRFQZUUHRZUUCYQUPQZYRFQZUUNRZSZSZOGTZCHTZBGTZAHTZUWHUWAUVDUVBUWSAHTCHTZBG
      TZOGTZUXCUVDUVAUXDOBGGUVDUUCGPYQGPSZSZUUTUWSCAHHUUTUURYTSZUUBSZUUIUUOSZSZ
      UXHUUAHPYRHPSZSZUWSUUTYTUUBSZUUISZUURUUOSZSUXOUURSZUXKSUXLUUJUXPUUSUXQYTU
      UBUUIVBUUOUURVHVIUXOUUIUURUUOVJUXRUXJUXKUXRYTUURSZUUBSUXJYTUUBUURVOUXSUXI
      UUBYTUURVHVCVDVCVEUXNUXJUWKUXKUWRUXNUXIUWJUUBUXNUURUVFYTUVDUURUVFVKZUXGUX
      MYHYJUXTYLYOUUQUVEYRYOUUPUNYRFYOUUPUCUMUFZUNYHYJUUPYGUMUFZUYAEYGUMVLYJUYA
      UYBGUCYGUYAYGURZUYAURZVMVNVPVQVRVSVTWAWBWCWCUXNUUIUWNUUOUWQUXNUUFUWMUUHUX
      NUUEUWLYRFUVDUUEUWLRUXGUXMUVDUUDUOUUCYQYHYJUUDUORYLYOUCUKUFZYGUKUFZUOUUDY
      JUYEUYFRYHGUYEUCYGYIUYCUYEURWEWDUOUYERYOWFWGYHUUDUYFRYJEYGUKVLWNWHWAWIWBV
      SVTUXNUUMUWPUUNUXNUULUWOYRFUVDUULUWORUXGUXMUVDUUKUPUUCYQUVDUCULUFZYGULUFZ
      UPUUKYJYLUYGUYHRYHGUCYGUYGYIUYCUYGURWJWKUPUYGRUVDWLWGYHYLUUKUYHRYJEYGULVL
      WMWHWIWBVSVTWOWOWPWQWQUXFUWSCHTZBGTZOGTZAHTZUYIOGTZBGTZAHTUXCUXFUYJAHTZOG
      TUYLUXEUYOOGUXEUYIAHTZBGTUYOUXDUYPBGUWSCAHHWRWSUYIBAGHWRVDWSUYJOAGHWRVDUY
      KUYNAHUYIOBGGWRWSUYMUXAABHGUWSOCGHWRWTVEXAUVDYMUVBUVDYMYGUIPZYJYLUYQYHGUC
      YGUYCXDWKYHYLYMUYQVKYJEYGUIXBWMXCXEUVDUXBUVTAHUVDHXFXGZGXFXGZUXBUVTVKYLYH
      UYRYJHILXHXIYJYLUYSYHYJUYAGPUYSGUCUYAUYDXJGUYAXKXNWKUYRUYSSZUXBUVFUVSSZBG
      TZUVTUYTUXAVUABGUYTUXAUVFYTUWROGTZSZSZUVGSZVUAUYTUXAVUEUUBSZCHTZVUFUYTUWT
      VUGCHUYTUWTUUBUWJSZVUCSZVUGUYTUWTVUIUWRSZOGTZVUJUYTUWSVUKOGUWSVUKVKUYTUWK
      VUIUWRUWJUUBVHVCWGXLUYSVULVUJVKUYRVUIUWROGXMWDXOVUJUUBUWJVUCSZSUUBVUESVUG
      UUBUWJVUCVGVUMVUEUUBUVFYTVUCVGXPUUBVUEVHVEXAXLUYRVUHVUFVKUYSVUEUUBCHXMWNX
      OVUFUVFVUDUVGSZSVUAUVFVUDUVGVGVUNUVSUVFUVSVUNUVSYTUVGVUCUGVUNUVRVUCYTUVGU
      VQUWRCOGCOYDZUVLUWNUVPUWQVUOUVIUWMUVKUUHVUOUVHUWLYRFUUAUUCYQUOYEVSVUOUVJU
      UGYSDUUAUUCYRFYEVSXQVUOUVNUWPUVOUUNVUOUVMUWOYRFUUAUUCYQUPYEVSUUAUUCYSFYEX
      QWOXRXSYTUVGVUCXTVDVFXPVDXAXLUYSVUBUVTVKUYRUVFUVSBGXMWDXOYAXLYBYCVEVE $.

    isclmi0.1 $e |- S = ( CCfld |`s K ) $.
    isclmi0.2 $e |- W e. Grp $.
    isclmi0.3 $e |- K e. ( SubRing ` CCfld ) $.
    isclmi0.4 $e |- ( x e. V -> ( 1 .x. x ) = x ) $.
    isclmi0.5 $e |- ( ( y e. K /\ x e. V ) -> ( y .x. x ) e. V ) $.
    isclmi0.6 $e |- ( ( y e. K /\ x e. V /\ z e. V ) ->
                  ( y .x. ( x .+ z ) ) = ( ( y .x. x ) .+ ( y .x. z ) ) ) $.
    isclmi0.7 $e |- ( ( y e. K /\ z e. K /\ x e. V ) ->
                  ( ( z + y ) .x. x ) = ( ( z .x. x ) .+ ( y .x. x ) ) ) $.
    isclmi0.8 $e |- ( ( y e. K /\ z e. K /\ x e. V ) ->
                  ( ( z x. y ) .x. x ) = ( z .x. ( y .x. x ) ) ) $.
    $( Properties that determine a subcomplex module.  (Contributed by NM,
       5-Nov-2006.)  (Revised by AV, 4-Oct-2021.) $)
    isclmi0 $p |- W e. CMod $=
      ( cclm wcel cgrp ccnfld cress co wceq csubrg cfv c1 cv wral caddc cmul wa
      w3a 3pm3.2i ancoms 3com12 3expa ralrimiva 3comr 3jca rgen isclmp mpbir2an
      jca ) IUCUDIUEUDZEUFGUGUHUIZGUFUJUKUDZURULAUMZFUHVMUIZBUMZVMFUHZHUDZVOVMC
      UMZDUHFUHVPVOVRFUHDUHUIZCHUNZVRVOUOUHVMFUHVRVMFUHVPDUHUIZVRVOUPUHVMFUHVRV
      PFUHUIZUQZCGUNZURZBGUNZUQZAHUNVJVKVLPOQUSWGAHVMHUDZVNWFRWHWEBGWHVOGUDZUQZ
      VQVTWDWIWHVQSUTWJVSCHWHWIVRHUDZVSWIWHWKVSTVAVBVCWJWCCGWHWIVRGUDZWCWIWLWHW
      CWIWLWHURWAWBUAUBVIVDVBVCVEVCVIVFABCDEFGHIJKLMNVGVH $.
  $}

  ${
    clmvneg1.v $e |- V = ( Base ` W ) $.
    clmvneg1.n $e |- N = ( invg ` W ) $.
    clmvneg1.f $e |- F = ( Scalar ` W ) $.
    clmvneg1.s $e |- .x. = ( .s ` W ) $.
    $( Minus 1 times a vector is the negative of the vector.  Equation 2 of
       [Kreyszig] p. 51.  ( ~ lmodvneg1 analog.)  (Contributed by Mario
       Carneiro, 16-Oct-2015.) $)
    clmvneg1 $p |- ( ( W e. CMod /\ X e. V ) -> ( -u 1 .x. X ) = ( N ` X ) ) $=
      ( cclm wcel wa c1 cneg co cfv wceq eqid eqtrd cur cminusg cbs clmzss 1zzd
      cz sseldd clmneg mpdan fveq2d adantr oveq1d clmod clmlmod lmodvneg1 sylan
      clm1 ) EKLZFDLZMZNOZFAPBUAQZBUBQZQZFAPZFCQZUTVAVDFAURVAVDRUSURVANVCQZVDUR
      NBUCQZLVAVGRURUFVHNBVHEIVHSZUDURUEUGNBVHEIVIUHUIURNVBVCBEIUQUJTUKULUREUML
      USVEVFREUNAVBBVCCDEFGHIJVBSVCSUOUPT $.
  $}

  ${
    clmvsneg.b $e |- B = ( Base ` W ) $.
    clmvsneg.f $e |- F = ( Scalar ` W ) $.
    clmvsneg.s $e |- .x. = ( .s ` W ) $.
    clmvsneg.n $e |- N = ( invg ` W ) $.
    clmvsneg.k $e |- K = ( Base ` F ) $.
    clmvsneg.w $e |- ( ph -> W e. CMod ) $.
    clmvsneg.x $e |- ( ph -> X e. B ) $.
    clmvsneg.r $e |- ( ph -> R e. K ) $.
    $( Multiplication of a vector by a negated scalar.  ( ~ lmodvsneg analog.)
       (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    clmvsneg $p |- ( ph -> ( N ` ( R .x. X ) ) = ( -u R .x. X ) ) $=
      ( co cfv wcel cminusg cneg eqid cclm clmod clmlmod lmodvsneg wceq syl2anc
      syl clmneg oveq1d eqtr4d ) ACIDRGSCEUASZSZIDRCUBZIDRABCDEFUNGHIJKLMNUNUCA
      HUDTZHUETOHUFUJPQUGAUPUOIDAUQCFTUPUOUHOQCEFHKNUKUIULUM $.
  $}

  ${
    $d x y B $.  $d x y V $.  $d x y W $.  $d x y .x. $.  $d x y .xb $.
    $d x A $.
    clmmulg.1 $e |- V = ( Base ` W ) $.
    clmmulg.2 $e |- .xb = ( .g ` W ) $.
    clmmulg.3 $e |- .x. = ( .s ` W ) $.
    $( The group multiple function matches the scalar multiplication function.
       (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    clmmulg $p |- ( ( W e. CMod /\ A e. ZZ /\ B e. V ) ->
      ( A .xb B ) = ( A .x. B ) ) $=
      ( wcel cz co wceq cc0 c1 oveq1 eqeq12d cfv eqid ad2antrr vx vy cclm caddc
      cv cneg wa c0g mulg0 adantl csca clm0vs eqtr4d wi cplusg cmnd cgrp clmgrp
      cn0 grpmnd syl simplr mulgnn0p1 syl3anc cbs simpll wss clmzss nn0z sseldd
      simpr 1zzd clmvsdir syl13anc clmvs1 adantr eqtrd syl5ibr ex cminusg fveq2
      oveq2d cn nnz mulgneg clmvsneg eqcomd zindd 3impia 3com23 ) FUCJZBEJZAKJZ
      ABCLZABDLZMZWKWLWMWPUAUEZBCLZWQBDLZMNBCLZNBDLZMUBUEZBCLZXBBDLZMZXBUFZBCLZ
      XFBDLZMZXBOUDLZBCLZXJBDLZMZWPWKWLUGZUAUBAWQNMWRWTWSXAWQNBCPWQNBDPQWQXBMWR
      XCWSXDWQXBBCPWQXBBDPQWQXJMWRXKWSXLWQXJBCPWQXJBDPQWQXFMWRXGWSXHWQXFBCPWQXF
      BDPQWQAMWRWNWSWOWQABCPWQABDPQXNWTFUHRZXAWLWTXOMWKECFBXOGXOSZHUIUJDFUKRZEF
      BXOGXQSZIXPULUMXNXBUSJZXEXMUNXEXMXNXSUGZXCBFUORZLZXDBYALZMXCXDBYAPXTXKYBX
      LYCXTFUPJZXSWLXKYBMWKYDWLXSWKFUQJZYDFURZFUTVATXNXSVKWKWLXSVBZEYACFXBBGHYA
      SZVCVDXTXLXDOBDLZYALZYCXTWKXBXQVERZJOYKJWLXLYJMWKWLXSVFXTKYKXBWKKYKVGZWLX
      SXQYKFXRYKSZVHZTZXSXBKJZXNXBVIUJVJXTKYKOYOXTVLVJYGYAXBODXQYKEFBGXRIYMYHVM
      VNXTYIBXDYAXNYIBMXSDEFBGIVOVPWBVQQVRVSXNXBWCJZXEXIUNXEXIXNYQUGZXCFVTRZRZX
      DYSRZMXCXDYSWAYRXGYTXHUUAYRYEYPWLXGYTMWKYEWLYQYFTYQYPXNXBWDUJZWKWLYQVBZEC
      FYSXBBGHYSSZWEVDYRUUAXHYREXBDXQYKYSFBGXRIUUDYMWKWLYQVFUUCYRKYKXBWKYLWLYQY
      NTUUBVJWFWGQVRVSWHWIWJ $.
  $}

  ${
    clmsubdir.v $e |- V = ( Base ` W ) $.
    clmsubdir.t $e |- .x. = ( .s ` W ) $.
    clmsubdir.f $e |- F = ( Scalar ` W ) $.
    clmsubdir.k $e |- K = ( Base ` F ) $.
    clmsubdir.m $e |- .- = ( -g ` W ) $.
    clmsubdir.w $e |- ( ph -> W e. CMod ) $.
    clmsubdir.a $e |- ( ph -> A e. K ) $.
    clmsubdir.b $e |- ( ph -> B e. K ) $.
    clmsubdir.x $e |- ( ph -> X e. V ) $.
    $( Scalar multiplication distributive law for subtraction.  ( ~ lmodsubdir
       analog.)  (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    clmsubdir $p |- ( ph ->
      ( ( A - B ) .x. X ) = ( ( A .x. X ) .- ( B .x. X ) ) ) $=
      ( co cmin csg cfv cclm wcel wceq clmsub syl3anc oveq1d eqid clmod clmlmod
      syl lmodsubdir eqtrd ) ABCUATZJDTBCEUBUCZTZJDTBJDTCJDTGTAUPURJDAIUDUEZBFU
      ECFUEUPURUFPQRBCEFIMNUGUHUIABCUQDEFGHIJKLMNOUQUJAUSIUKUEPIULUMQRSUNUO $.
  $}

  ${
    clmpm1dir.v $e |- V = ( Base ` W ) $.
    clmpm1dir.s $e |- .x. = ( .s ` W ) $.
    clmpm1dir.a $e |- .+ = ( +g ` W ) $.
    ${
      clmpm1dir.k $e |- K = ( Base ` ( Scalar ` W ) ) $.
      $( Subtractive distributive law for the scalar product of a subcomplex
         module.  (Contributed by NM, 31-Jul-2007.)  (Revised by AV,
         21-Sep-2021.) $)
      clmpm1dir $p |- ( ( W e. CMod /\ ( A e. K /\ B e. K /\ C e. V ) ) ->
         ( ( A - B ) .x. C ) = ( ( A .x. C ) .+ ( -u 1 .x. ( B .x. C ) ) ) ) $=
        ( wcel wa co cfv eqid wceq clmvscl syl3anc cclm w3a cmin csg cminusg c1
        cneg csca simpl simpr1 simpr2 simpr3 clmsubdir grpsubval syl2anc eqcomd
        clmvneg1 oveq2d 3eqtrd ) HUAMZAFMZBFMZCGMZUBZNZABUCOCEOACEOZBCEOZHUDPZO
        ZVFVGHUEPZPZDOZVFUFUGVGEOZDOVEABEHUHPZFVHGHCIJVNQZLVHQZUTVDUIZUTVAVBVCU
        JZUTVAVBVCUKZUTVAVBVCULZUMVEVFGMZVGGMZVIVLRVEUTVAVCWAVQVRVTAEVNFGHCIVOJ
        LSTVEUTVBVCWBVQVSVTBEVNFGHCIVOJLSTZGDHVJVHVFVGIKVJQZVPUNUOVEVKVMVFDVEUT
        WBVKVMRVQWCUTWBNVMVKEVNVJGHVGIWDVOJUQUPUOURUS $.
    $}

    $( Double negative of a vector.  (Contributed by NM, 6-Aug-2007.)  (Revised
       by AV, 21-Sep-2021.) $)
    clmnegneg $p |- ( ( W e. CMod /\ A e. V ) ->
                  ( -u 1 .x. ( -u 1 .x. A ) ) = A ) $=
      ( cclm wcel wa c1 cneg cmul co neg1mulneg1e1 oveq1i csca cfv eqid clmneg1
      cbs wceq simpl adantr simpr clmvsass syl13anc clmvs1 3eqtr3a ) EIJZADJZKZ
      LMZUNNOZACOZLACOUNUNACOCOZAUOLACPQUMUKUNERSZUBSZJZUTULUPUQUCUKULUDUKUTULU
      RUSEURTZUSTZUAUEZVCUKULUFUNUNCURUSDEAFVAGVBUGUHCDEAFGUIUJ $.

    $( Distribution of negative over vector subtraction.  (Contributed by NM,
       6-Aug-2007.)  (Revised by AV, 29-Sep-2021.) $)
    clmnegsubdi2 $p |- ( ( W e. CMod /\ A e. V /\ B e. V ) ->
            ( -u 1 .x. ( A .+ ( -u 1 .x. B ) ) ) = ( B .+ ( -u 1 .x. A ) ) ) $=
      ( wcel co cfv wceq eqid 3ad2ant1 wa simpl adantr simpr syl3anc w3a c1 cbs
      cclm cneg simp1 clmneg1 clmvscl 3adant2 clmvsdi syl13anc clmnegneg oveq2d
      csca simp2 cabl clmabl 3adant3 simp3 ablcom 3eqtrd ) FUDJZAEJZBEJZUAZUBUE
      ZAVFBDKZCKDKZVFADKZVFVGDKZCKZVIBCKZBVICKZVEVBVFFUNLZUCLZJZVCVGEJZVHVKMVBV
      CVDUFVBVCVPVDVNVOFVNNZVONZUGZOVBVCVDUOVBVDVQVCVBVDPVBVPVDVQVBVDQVBVPVDVTR
      VBVDSVFDVNVOEFBGVRHVSUHTUIVFCDVNVOEFAVGGVRHVSIUJUKVEVJBVICVBVDVJBMVCBCDEF
      GHIULUIUMVEFUPJZVIEJZVDVLVMMVBVCWAVDFUQOVBVCWBVDVBVCPVBVPVCWBVBVCQVBVPVCV
      TRVBVCSVFDVNVOEFAGVRHVSUHTURVBVCVDUSECFVIBGIUTTVA $.

    $( Rearrangement of 4 terms in a mixed vector addition and subtraction.
       (Contributed by NM, 5-Aug-2007.)  (Revised by AV, 29-Sep-2021.) $)
    clmsub4 $p |- ( ( W e. CMod /\ ( A e. V /\ B e. V )
                                /\ ( C e. V /\ D e. V ) )
                 -> ( ( A .+ B ) .+ ( -u 1 .x. ( C .+ D ) ) ) =
                    ( ( A .+ ( -u 1 .x. C ) ) .+ ( B .+ ( -u 1 .x. D ) ) ) ) $=
      ( wcel wa co wceq cfv simpl adantr simpr syl3anc cclm w3a c1 cneg clmneg1
      csca cbs eqid adantl clmvsdi syl13anc 3adant2 oveq2d ccmn cabl clmabl syl
      ablcmn 3ad2ant1 simp2 clmvscl anim12dan cmn4 eqtrd ) HUALZAGLBGLMZCGLZDGL
      ZMZUBZABENZUCUDZCDENFNZENVKVLCFNZVLDFNZENZENZAVNENBVOENENZVJVMVPVKEVEVIVM
      VPOZVFVEVIMVEVLHUFPZUGPZLZVGVHVSVEVIQVEWBVIVTWAHVTUHZWAUHZUEZRVIVGVEVGVHQ
      UIVIVHVEVGVHSUIVLEFVTWAGHCDIWCJWDKUJUKULUMVJHUNLZVFVNGLZVOGLZMZVQVROVEVFW
      FVIVEHUOLWFHUPHURUQUSVEVFVIUTVEVIWIVFVEVGWGVHWHVEVGMVEWBVGWGVEVGQVEWBVGWE
      RVEVGSVLFVTWAGHCIWCJWDVATVEVHMVEWBVHWHVEVHQVEWBVHWERVEVHSVLFVTWAGHDIWCJWD
      VATVBULGEHVOABVNIKVCTVD $.

    clmvsrinv.0 $e |- .0. = ( 0g ` W ) $.
    $( A vector minus itself.  (Contributed by NM, 4-Dec-2006.)  (Revised by
       AV, 28-Sep-2021.) $)
    clmvsrinv $p |- ( ( W e. CMod /\ A e. V )
                   -> ( A .+ ( -u 1 .x. A ) ) = .0. ) $=
      ( cclm wcel wa c1 cneg co cminusg cfv csca eqid clmvneg1 oveq2d cgrp wceq
      clmgrp grprinv sylan eqtrd ) EKLZADLZMZANOACPZBPAAEQRZRZBPZFUKULUNABCESRZ
      UMDEAGUMTZUPTHUAUBUIEUCLUJUOFUDEUEDBEUMAFGIJUQUFUGUH $.

    $( Minus a vector plus itself.  (Contributed by NM, 4-Dec-2006.)  (Revised
       by AV, 28-Sep-2021.) $)
    clmvslinv $p |- ( ( W e. CMod /\ A e. V )
                   -> ( ( -u 1 .x. A ) .+ A ) = .0. ) $=
      ( cclm wcel wa c1 cneg co cminusg cfv csca eqid clmvneg1 oveq1d cgrp wceq
      clmgrp grplinv sylan eqtrd ) EKLZADLZMZNOACPZABPAEQRZRZABPZFUKULUNABCESRZ
      UMDEAGUMTZUPTHUAUBUIEUCLUJUOFUDEUEDBEUMAFGIJUQUFUGUH $.
  $}

  ${
    clmvsubval.v $e |- V = ( Base ` W ) $.
    clmvsubval.p $e |- .+ = ( +g ` W ) $.
    clmvsubval.m $e |- .- = ( -g ` W ) $.
    clmvsubval.f $e |- F = ( Scalar ` W ) $.
    clmvsubval.s $e |- .x. = ( .s ` W ) $.
    $( Value of vector subtraction in terms of addition in a subcomplex module.
       Analogue of ~ lmodvsubval2 .  (Contributed by NM, 31-Mar-2014.)
       (Revised by AV, 7-Oct-2021.) $)
    clmvsubval $p |- ( ( W e. CMod /\ A e. V /\ B e. V )
                       -> ( A .- B ) = ( A .+ ( -u 1 .x. B ) ) ) $=
      ( cclm wcel co cfv c1 wceq eqid w3a cur cminusg cneg clmlmod lmodvsubval2
      clmod syl3an1 eqcomd fveq2d cbs crg clmring ringidcl eqeltrd clmneg mpdan
      clm1 syl eqtr4d 3ad2ant1 oveq1d oveq2d eqtrd ) HNOZAGOZBGOZUAZABFPZAEUBQZ
      EUCQZQZBDPZCPZARUDZBDPZCPVEHUGOVFVGVIVNSHUEABCDVJEFVKGHIJKLMVKTVJTZUFUHVH
      VMVPACVHVLVOBDVEVFVLVOSVGVEVLRVKQZVOVEVJRVKVERVJEHLURZUIUJVEREUKQZOVOVRSV
      ERVJVTVSVEEULOVJVTOEHLUMVTEVJVTTZVQUNUSUOREVTHLWAUPUQUTVAVBVCVD $.

    $( Value of vector subtraction on a subcomplex module.  (Contributed by
       Mario Carneiro, 19-Nov-2013.)  (Revised by AV, 7-Oct-2021.) $)
    clmvsubval2 $p |- ( ( W e. CMod /\ A e. V /\ B e. V )
                        -> ( A .- B ) = ( ( -u 1 .x. B ) .+ A ) ) $=
      ( cclm wcel w3a co c1 cneg syl3anc clmvsubval cabl wceq 3ad2ant1 simp2 wa
      clmabl cbs simpl eqid clmneg1 adantr simpr clmvscl 3adant2 ablcom eqtrd
      cfv ) HNOZAGOZBGOZPZABFQARSZBDQZCQZVDACQZABCDEFGHIJKLMUAVBHUBOZUTVDGOZVEV
      FUCUSUTVGVAHUGUDUSUTVAUEUSVAVHUTUSVAUFUSVCEUHURZOZVAVHUSVAUIUSVJVAEVIHLVI
      UJZUKULUSVAUMVCDEVIGHBILMVKUNTUOGCHAVDIJUPTUQ $.
  $}

  ${
    clmvz.v $e |- V = ( Base ` W ) $.
    clmvz.m $e |- .- = ( -g ` W ) $.
    clmvz.s $e |- .x. = ( .s ` W ) $.
    clmvz.0 $e |- .0. = ( 0g ` W ) $.
    $( Two ways to express the negative of a vector.  (Contributed by NM,
       29-Feb-2008.)  (Revised by AV, 7-Oct-2021.) $)
    clmvz $p |- ( ( W e. CMod /\ A e. V ) -> ( .0. .- A ) = ( -u 1 .x. A ) ) $=
      ( cclm wcel wa co c1 cfv wceq adantr eqid syl3anc cneg cplusg cgrp clmgrp
      simpl grpidcl syl simpr csca clmvsubval2 cbs clmneg1 clmvscl grprid eqtrd
      syl2an2r ) EKLZADLZMZFACNZOUAZABNZFEUBPZNZVBUSUQFDLZURUTVDQUQURUEZUQVEURU
      QEUCLZVEEUDZDEFGJUFUGRUQURUHZFAVCBEUIPZCDEGVCSZHVJSZIUJTUQVGURVBDLZVDVBQV
      HUSUQVAVJUKPZLZURVMVFUQVOURVJVNEVLVNSZULRVIVABVJVNDEAGVLIVPUMTDVCEVBFGVKJ
      UNUPUO $.
  $}

  ${
    zlmclm.w $e |- W = ( ZMod ` G ) $.
    $( The ` ZZ ` -module operation turns an arbitrary abelian group into a
       subcomplex module.  (Contributed by Mario Carneiro, 30-Oct-2015.) $)
    zlmclm $p |- ( G e. Abel <-> W e. CMod ) $=
      ( cabl wcel cclm clmod csca ccnfld cz cress co wceq csubrg zlmlmod biimpi
      cfv zring df-zring zlmsca syl5reqr zsubrg a1i eqid isclmi syl3anc clmlmod
      sylibr impbii ) ADEZBFEZUJBGEZBHQZIJKLZMJINQEZUKUJULABCOZPUJUNRUMSADBCTUA
      UOUJUBUCUMJBUMUDUEUFUKULUJBUGUPUHUI $.

    clmzlmvsca.x $e |- X = ( Base ` G ) $.
    $( The scalar product of a subcomplex module matches the scalar product of
       the derived ` ZZ ` -module, which implies, together with ~ zlmbas and
       ~ zlmplusg , that any module over ` ZZ ` is structure-equivalent to the
       canonical ` ZZ ` -module ` ZMod `` G ` .  (Contributed by Mario
       Carneiro, 30-Oct-2015.) $)
    clmzlmvsca $p |- ( ( G e. CMod /\ ( A e. ZZ /\ B e. X ) ) ->
                       ( A ( .s ` G ) B ) = ( A ( .s ` W ) B ) ) $=
      ( cclm wcel cz cvsca cfv co wceq w3a cmg eqid zlmvsca eqcomi clmmulg
      eqcomd 3expb ) CHIZAJIZBEIZABCKLZMZABDKLZMZNUCUDUEOUIUGABUHUFECGCPLZUHUJC
      DFUJQRSUFQTUAUB $.
  $}

  ${
    $d r x y z A $.  $d r x y z F $.  $d r x y z L $.  $d x y N $.  $d y z O $.
    $d r x y z M $.  $d r x y z ph $.  $d y ps $.  $d x y z S $.  $d x y z V $.
    $d r B $.  $d r x y z R $.  $d y T $.
    nmoleub2.n $e |- N = ( S normOp T ) $.
    nmoleub2.v $e |- V = ( Base ` S ) $.
    nmoleub2.l $e |- L = ( norm ` S ) $.
    nmoleub2.m $e |- M = ( norm ` T ) $.
    nmoleub2.g $e |- G = ( Scalar ` S ) $.
    nmoleub2.w $e |- K = ( Base ` G ) $.
    nmoleub2.s $e |- ( ph -> S e. ( NrmMod i^i CMod ) ) $.
    nmoleub2.t $e |- ( ph -> T e. ( NrmMod i^i CMod ) ) $.
    nmoleub2.f $e |- ( ph -> F e. ( S LMHom T ) ) $.
    nmoleub2.a $e |- ( ph -> A e. RR* ) $.
    nmoleub2.r $e |- ( ph -> R e. RR+ ) $.
    ${
      nmoleub2lem.5 $e |- ( ( ph /\
        A. x e. V ( ps -> ( ( M ` ( F ` x ) ) / R ) <_ A ) ) -> 0 <_ A ) $.
      nmoleub2lem.6 $e |- ( ( ( ( ph /\ A. x e. V ( ps -> ( ( M ` ( F ` x ) )
         / R ) <_ A ) ) /\ A e. RR ) /\ ( y e. V /\ y =/= ( 0g ` S ) ) )
      -> ( M ` ( F ` y ) ) <_ ( A x. ( L ` y ) ) ) $.
      nmoleub2lem.7 $e |- ( ( ph /\ x e. V ) -> ( ps -> ( L ` x ) <_ R ) ) $.
      $( Lemma for ~ nmoleub2a and similar theorems.  (Contributed by Mario
         Carneiro, 19-Oct-2015.) $)
      nmoleub2lem $p |- ( ph -> ( ( N ` F ) <_ A <->
          A. x e. V ( ps -> ( ( M ` ( F ` x ) ) / R ) <_ A ) ) ) $=
        ( cfv cle wbr cv cdiv co wi wral wa wcel adantlr cngp cbs cnlm cclm cin
        cr inss1 sseldi nlmngp syl ad2antrr wf clmhm eqid lmhmf simprl ffvelrnd
        nmcl syl2anc crp rerpdivcld rexrd cxr cghm lmghm syl3anc cxmu cmul wceq
        nmocl rpred rexmul recnd rpne0d divcan1d eqtrd rpxrd nmoix syl31anc cc0
        xmulcld nmoge0 simprr xlemul2a xrletrd eqbrtrd wb xlemul1 mpbird simplr
        jca expr syld ralrimiva cpnf c0g simpr adantr nmolb2d breqtrrd cmnf wne
        pnfge wo ge0nemnf xrnemnf sylib mpjaodan impbida ) AINUJZEUKULZBCUMZIUJ
        ZMUJZFUNUOZEUKULZUPZCOUQZAYKURZYQCOYSYLOUSZURBYLLUJZFUKULZYPAYTBUUBUPYK
        UIUTYSYTUUBYPYSYTUUBURZURZYOYJEUUDYOUUDYNFUUDHVAUSZYMHVBUJZUSYNVFUSAUUE
        YKUUCAHVCUSUUEAVCVDVEZVCHVCVDVGZUCVHHVIVJZVKZUUDOUUFYLIAOUUFIVLZYKUUCAI
        GHVMUOUSZUUKUDOUUFGHIQUUFVNZVOVJVKYSYTUUBVPZVQYMHMUUFUUMSVRVSZAFVTUSZYK
        UUCUFVKZWAZWBZAYJWCUSZYKUUCAGVAUSZUUEIGHWDUOUSZUUTAGVCUSUVAAUUGVCGUUHUB
        VHGVIVJZUUIAUULUVBUDGHIWEVJZGHINPWJWFZVKZAEWCUSZYKUUCUEVKUUDYOYJUKULZYO
        FWGUOZYJFWGUOZUKULZUUDUVIYNUVJUKUUDUVIYOFWHUOZYNUUDYOVFUSFVFUSUVIUVLWIU
        URUUDFUUQWKZYOFWLVSUUDYNFUUDYNUUOWMUUDFUVMWMUUDFUUQWNWOWPUUDYNYJUUAWGUO
        ZUVJUUDYNUUOWBUUDYJUUAUVFUUDUUAUUDUVAYTUUAVFUSAUVAYKUUCUVCVKZUUNYLGLOQR
        VRVSWBZXAUUDYJFUVFUUDFUUQWQZXAUUDUVAUUEUVBYTYNUVNUKULUVOUUJAUVBYKUUCUVD
        VKUUNGHILMNOYLPQRSWRWSUUDUUAWCUSFWCUSUUTWTYJUKULZURZUUBUVNUVJUKULUVPUVQ
        AUVSYKUUCAUUTUVRUVEAUVAUUEUVBUVRUVCUUIUVDGHINPXBWFXKVKYSYTUUBXCUUAFYJXD
        WSXEXFUUDYOWCUSUUTUUPUVHUVKXGUUSUVFUUQYOYJFXHWFXIAYKUUCXJXEXLXMXNAYRURZ
        EVFUSZYKEXOWIZUVTUWAURDEGHILMNOGXPUJZPQRSUWCVNAUVAYRUWAUVCVKAUUEYRUWAUU
        IVKAUVBYRUWAUVDVKUVTUWAXQUVTWTEUKULZUWAUGXRUHXSUVTUWBURZYJXOEUKUWEUUTYJ
        XOUKULAUUTYRUWBUVEVKYJYCVJUVTUWBXQXTUVTUVGEYAYBZURUWAUWBYDUVTUVGUWFAUVG
        YRUEXRZUVTUVGUWDUWFUWGUGEYEVSXKEYFYGYHYI $.
    $}

    ${
      nmoleub2a.5 $e |- ( ph -> QQ C_ K ) $.
      ${
        nmoleub2lem3.p $e |- .x. = ( .s ` S ) $.
        nmoleub2lem3.1 $e |- ( ph -> A e. RR ) $.
        nmoleub2lem3.2 $e |- ( ph -> 0 <_ A ) $.
        nmoleub2lem3.3 $e |- ( ph -> B e. V ) $.
        nmoleub2lem3.4 $e |- ( ph -> B =/= ( 0g ` S ) ) $.
        nmoleub2lem3.5 $e |- ( ph -> ( ( r .x. B ) e. V ->
 ( ( L ` ( r .x. B ) ) < R -> ( ( M ` ( F ` ( r .x. B ) ) ) / R ) <_ A ) ) ) $.
        nmoleub2lem3.6 $e |- ( ph ->
          -. ( M ` ( F ` B ) ) <_ ( A x. ( L ` B ) ) ) $.
        $( Lemma for ~ nmoleub2a and similar theorems.  (Contributed by Mario
           Carneiro, 19-Oct-2015.)  (Proof shortened by AV, 29-Sep-2021.) $)
        nmoleub2lem3 $p |- -. ph $=
          ( cfv cmul co cle wbr cdiv cv clt wa cq wcel simprl cr ad2antlr rpred
          qre remulcld cngp cbs cnlm cclm elin1d nlmngp syl clmhm wf eqid lmhmf
          ffvelrnd nmcl syl2anc cc0 0red nmge0 mulge0d wn ltnled mpbird lelttrd
          elrpd rerpdivcld ad2antrr csca cnm wceq sselda adantr lmhmlin syl3anc
          fveq2d lmhmsca syl6eqr eleqtrrd nmvs fveq1d cabs elin2d clmabs rpge0d
          cvsca divge0 syl22anc ltled absidd eqtr3d eqtrd oveq1d 3eqtrd clmvscl
          simprr wb c0g wne nmrpcl rpregt0d ltmuldiv eqbrtrd wi mp2d ledivmul2d
          crp eqbrtrrd mpbid jca cc recnd lemuldiv lensymd pm2.21dd wrex mulass
          w3a mul12 ltmul2dd lt2mul2div qbtwnre r19.29a pm2.65i ) ACHUOZLUOZBCK
          UOZUPUQZURUSZABDUPUQZUUNUTUQZOVAZVBUSZUUTDUUOUTUQZVBUSZVCZUUQOVDAUUTV
          DVEZVCZUVDVCZUVAUUQUVFUVAUVCVFZUVGUUTUUSUVEUUTVGVEZAUVDUUTVJVHZAUUSVG
          VEZUVEUVDAUURUUNABDUIADUFVIZVKZAUUNAFVLVEZUUMFVMUOZVEZUUNVGVEZAFVNVEZ
          UVNAVNVOFUCVPZFVQVRANUVOCHAHEFVSUQVEZNUVOHVTUDNUVOEFHQUVOWAZWBVRUKWCZ
          UUMFLUVOUWASWDWEZAWFUUPUUNAWGABUUOUIAEVLVEZCNVEZUUOVGVEZAEVNVEZUWDAVN
          VOEUBVPZEVQVRZUKCEKNQRWDWEZVKZUWCABUUOUIUWJUJAUWDUWEWFUUOURUSUWIUKCEK
          NQRWHWEWIAUUPUUNVBUSUUQWJUNAUUPUUNUWKUWCWKWLZWMZWNWOZWPZUVGUUTUUNUPUQ
          ZUURURUSZUUTUUSURUSZUVGUWPDUTUQZBURUSUWQUVGUUTCGUQZHUOZLUOZDUTUQZUWSB
          URUVGUXBUWPDUTUVGUXBUUTUUMFXNUOZUQZLUOZUUTFWQUOZWRUOZUOZUUNUPUQZUWPUV
          GUXAUXELUVGUVTUUTJVEZUWEUXAUXEWSAUVTUVEUVDUDWPZUVFUXKUVDAVDJUUTUGWTXA
          ZAUWEUVEUVDUKWPZJEFGUXDNHIUUTCTUAQUHUXDWAZXBXCXDUVGUVRUUTUXGVMUOZVEUV
          PUXFUXJWSAUVRUVEUVDUVSWPUVGUUTJUXPUXMUVGUXPIVMUOJUVGUXGIVMUVGUVTUXGIW
          SUXLEFHIUXGTUXGWAZXEVRZXDUAXFXGAUVPUVEUVDUWBWPUXHUXDUXGUXPLUVOFUUTUUM
          UWASUXOUXQUXPWAUXHWAXHXCUVGUXIUUTUUNUPUVGUXIUUTIWRUOZUOZUUTUVGUUTUXHU
          XSUVGUXGIWRUXRXDXIUVGUUTXJUOZUXTUUTUVGEVOVEZUXKUYAUXTWSAUYBUVEUVDAVNV
          OEUBXKWPZUXMUUTIJETUAXLWEUVGUUTUVJUVGWFUUTUVGWGZUVJUVGWFUUSUUTUYDUWOU
          VJAWFUUSURUSZUVEUVDAUURVGVEZWFUURURUSUVQWFUUNVBUSZUYEUVMABDUIUVLUJADU
          FXMWIUWCUWMUURUUNXOXPWPUVHWMXQXRXSZXTYAYBYAUVGUWTNVEZUWTKUOZDVBUSZUXC
          BURUSZUVGUYBUXKUWEUYIUYCUXMUXNUUTGIJNECQTUHUAYCXCUVGUYJUUTUUOUPUQZDVB
          UVGUYJUXTUUOUPUQZUYMUVGUWGUXKUWEUYJUYNWSAUWGUVEUVDUWHWPUXMUXNUXSGIJKN
          EUUTCQRUHTUAUXSWAXHXCUVGUXTUUTUUOUPUYHYAXTUVGUYMDVBUSZUVCUVFUVAUVCYDU
          VGUVIDVGVEZUWFWFUUOVBUSVCZUYOUVCYEUVJAUYPUVEUVDUVLWPZAUYQUVEUVDAUUOAU
          WDUWECEYFUOZYGUUOYOVEUWIUKULCEKNUYSQRUYSWAYHXCZYIZWPUUTDUUOYJXCWLYKAU
          YIUYKUYLYLYLUVEUVDUMWPYMYPUVGUWPBDUVGUUTUUNUVJAUVQUVEUVDUWCWPVKABVGVE
          UVEUVDUIWPZADYOVEUVEUVDUFWPYNYQUVGUVIUYFUVQUYGVCZUWQUWRYEUVJUVGBDVUBU
          YRVKAVUCUVEUVDAUVQUYGUWCUWMYRZWPUUTUURUUNUUAXCYQUUBUUCAUVKUVBVGVEUUSU
          VBVBUSZUVDOVDUUDUWNADUUOUVLUYTWOAUURUUOUPUQZDUUNUPUQZVBUSZVUEAVUFDUUP
          UPUQZVUGVBABYSVEZDYSVEZUUOYSVEZVUFVUIWSABUIYTADUVLYTAUUOUWJYTVUJVUKVU
          LUUFVUFBDUUOUPUQUPUQVUIBDUUOUUEBDUUOUUGXTXCAUUPUUNDUWKUWCUFUWLUUHYKAU
          YFUYQUYPVUCVUHVUEYEUVMVUAUVLVUDUURUUODUUNUUIXPYQOUUSUVBUUJXCUUKUNUUL
          $.
      $}

      ${
        nmoleub2lem2.6 $e |- ( ( ( L ` x ) e. RR /\ R e. RR ) ->
          ( ( L ` x ) O R -> ( L ` x ) <_ R ) ) $.
        nmoleub2lem2.7 $e |- ( ( ( L ` x ) e. RR /\ R e. RR ) ->
          ( ( L ` x ) < R -> ( L ` x ) O R ) ) $.
        $( Lemma for ~ nmoleub2a and similar theorems.  (Contributed by Mario
           Carneiro, 19-Oct-2015.) $)
        nmoleub2lem2 $p |- ( ph -> ( ( N ` F ) <_ A <->
           A. x e. V ( ( L ` x ) O R -> ( ( M ` ( F ` x ) ) / R ) <_ A ) ) ) $=
          ( vy vz cv cfv wbr cdiv co cle wi wral c0g wceq clmhm wcel cghm lmghm
          cc0 eqid ghmid 3syl fveq2d cnlm cngp cclm cin inss1 sseldi nlmngp nm0
          wa eqtrd adantr oveq1d crp rpcnd rpne0d div0d clt cgrp ngpgrp grpidcl
          syl nmcl sylan rpred syl2anc imim1d ralimdva imp rpgt0d eqbrtrd fveq2
          cr breq1d imbi12d rspcv syl3c eqbrtrrd wne cmul cvsca simp-4l cxr wss
          wn cq simpllr ad3antrrr simplrl simplrr simpr nmoleub2lem3 iman mpbir
          rspccv nmoleub2lem ) ABUKZJULZDMUMZBUICDEFGHIJKLNOPQRSTUAUBUCUDUEAYGY
          EGULZKULZDUNUOZCUPUMZUQZBNURZVRZEUSULZGULZKULZDUNUOZVECUPYNYRVEDUNUOV
          EYNYQVEDUNAYQVEUTYMAYQFUSULZKULZVEAYPYSKAGEFVAUOVBZGEFVCUOVBYPYSUTUCE
          FGVDEFGYOYSYOVFZYSVFZVGVHVIAFVJVBFVKVBYTVEUTAVJVLVMZVJFVJVLVNZUBVOFVP
          FKYSRUUCVQVHVSVTWAYNDYNDADWBVBZYMUEVTZWCYNDUUGWDWEVSYNYONVBZYFDWFUMZY
          KUQZBNURZYOJULZDWFUMZYRCUPUMZAUUHYMAEVKVBZEWGVBUUHAEVJVBZUUOAUUDVJEUU
          EUAVOZEVPZWJZEWHNEYOPUUBWIVHVTAYMUUKAYLUUJBNAYENVBZVRZUUIYGYKUVAYFXAV
          BZDXAVBZUUIYGUQAUUOUUTUVBUUSYEEJNPQWKWLZUVADAUUFUUTUEVTWMZUHWNWOWPWQZ
          YNUULVEDWFAUULVEUTZYMAUUPUUOUVGUUQUUREJYOQUUBVQVHVTYNDUUGWRWSUUJUUMUU
          NUQBYONYEYOUTZUUIUUMYKUUNUVHYFUULDWFYEYOJWTXBUVHYJYRCUPUVHYIYQDUNUVHY
          HYPKYEYOGWTVIWAXBXCXDXEXFZYNCXAVBZVRZUIUKZNVBZUVLYOXGZVRZVRZUVLGULKUL
          CUVLJULXHUOUPUMZUQUVPUVQXMZVRZXMUVSCUVLDEFEXIULZGHIJKLNUJOPQRSTUVSAEU
          UDVBAYMUVJUVOUVRXJZUAWJUVSAFUUDVBUWAUBWJUVSAUUAUWAUCWJUVSACXKVBUWAUDW
          JUVSAUUFUWAUEWJUVSAXNIXLUWAUFWJUVTVFYNUVJUVOUVRXOYNVECUPUMUVJUVOUVRUV
          IXPUVKUVMUVNUVRXQUVKUVMUVNUVRXRUVSUUKUJUKUVLUVTUOZNVBUWBJULZDWFUMZUWB
          GULZKULZDUNUOZCUPUMZUQZUQYNUUKUVJUVOUVRUVFXPUUJUWIBUWBNYEUWBUTZUUIUWD
          YKUWHUWJYFUWCDWFYEUWBJWTXBUWJYJUWGCUPUWJYIUWFDUNUWJYHUWEKYEUWBGWTVIWA
          XBXCYCWJUVPUVRXSXTUVPUVQYAYBUVAUVBUVCYGYFDUPUMUQUVDUVEUGWNYD $.
      $}

      $( The operator norm is the supremum of the value of a linear operator in
         the closed unit ball.  (Contributed by Mario Carneiro,
         19-Oct-2015.) $)
      nmoleub2a $p |- ( ph -> ( ( N ` F ) <_ A <->
          A. x e. V ( ( L ` x ) <_ R -> ( ( M ` ( F ` x ) ) / R ) <_ A ) ) ) $=
        ( cle cv cfv cr wcel wa wbr idd ltle nmoleub2lem2 ) ABCDEFGHIJKLUFMNOPQ
        RSTUAUBUCUDUEBUGJUHZUIUJDUIUJUKUPDUFULUMUPDUNUO $.

      $( The operator norm is the supremum of the value of a linear operator in
         the open unit ball.  (Contributed by Mario Carneiro, 19-Oct-2015.) $)
      nmoleub2b $p |- ( ph -> ( ( N ` F ) <_ A <->
          A. x e. V ( ( L ` x ) < R -> ( ( M ` ( F ` x ) ) / R ) <_ A ) ) ) $=
        ( clt cv cfv ltle cr wcel wa wbr idd nmoleub2lem2 ) ABCDEFGHIJKLUFMNOPQ
        RSTUAUBUCUDUEBUGJUHZDUIUPUJUKDUJUKULUPDUFUMUNUO $.
    $}

    nmoleub3.5 $e |- ( ph -> 0 <_ A ) $.
    nmoleub3.6 $e |- ( ph -> RR C_ K ) $.
    $( The operator norm is the supremum of the value of a linear operator on
       the closed unit sphere.  (Contributed by Mario Carneiro, 19-Oct-2015.)
       (Proof shortened by AV, 29-Sep-2021.) $)
    nmoleub3 $p |- ( ph -> ( ( N ` F ) <_ A <->
        A. x e. V ( ( L ` x ) = R -> ( ( M ` ( F ` x ) ) / R ) <_ A ) ) ) $=
      ( vy cv cfv wceq cc0 cle wbr cdiv co wi wral adantr wa wcel c0g wne cvsca
      cr cmul csca cnm clmhm ad3antrrr wss crp cngp cnlm cclm elin1d nlmngp syl
      simprl simprr nmrpcl syl3anc rpdivcld rpred sseldd lmhmlin fveq2d lmhmsca
      eqid syl6eqr eleqtrrd wf lmhmf ffvelrnd nmvs fveq1d elin2d clmabs syl2anc
      cbs cabs rpge0d absidd eqtr3d eqtrd oveq1d 3eqtrd rpcnd nmcl recnd rpne0d
      divassd dmdcand clmvscl simpllr divcan1d fveq2 eqeq1d imbi12d rspcv syl3c
      breq1d eqbrtrrd simplr ledivmul2d mpbid leidd syl5ibrcom nmoleub2lem
      breq1 ) ABUHZJUIZDUJZBUGCDEFGHIJKLMNOPQRSTUAUBUCUDAUKCULUMYLYJGUIZKUIZDUN
      UOZCULUMZUPZBMUQZUEURAYRUSZCVDUTZUSZUGUHZMUTZUUBEVAUIZVBZUSZUSZUUBGUIZKUI
      ZUUBJUIZUNUOZCULUMUUICUUJVEUOULUMUUGDUUJUNUOZUUBEVCUIZUOZGUIZKUIZDUNUOZUU
      KCULUUGUUQUULUUIVEUOZDUNUOUULUUIDUNUOVEUOUUKUUGUUPUURDUNUUGUUPUULUUHFVCUI
      ZUOZKUIZUULFVFUIZVGUIZUIZUUIVEUOZUURUUGUUOUUTKUUGGEFVHUOUTZUULIUTZUUCUUOU
      UTUJAUVFYRYTUUFUBVIZUUGVDIUULAVDIVJYRYTUUFUFVIUUGUULUUGDUUJADVKUTZYRYTUUF
      UDVIZUUGEVLUTZUUCUUEUUJVKUTUUGEVMUTZUVKAUVLYRYTUUFAVMVNETVOVIZEVPVQUUAUUC
      UUEVRZUUAUUCUUEVSUUBEJMUUDOPUUDWHVTWAZWBZWCZWDZUVNIEFUUMUUSMGHUULUUBRSOUU
      MWHZUUSWHZWEWAWFUUGFVMUTZUULUVBWSUIZUTUUHFWSUIZUTZUVAUVEUJAUWAYRYTUUFAVMV
      NFUAVOVIZUUGUULIUWBUVRUUGUWBHWSUIIUUGUVBHWSUUGUVFUVBHUJUVHEFGHUVBRUVBWHZW
      GVQZWFSWIWJUUGMUWCUUBGUUGUVFMUWCGWKUVHMUWCEFGOUWCWHZWLVQUVNWMZUVCUUSUVBUW
      BKUWCFUULUUHUWHQUVTUWFUWBWHUVCWHWNWAUUGUVDUULUUIVEUUGUVDUULHVGUIZUIZUULUU
      GUULUVCUWJUUGUVBHVGUWGWFWOUUGUULWTUIZUWKUULUUGEVNUTZUVGUWLUWKUJAUWMYRYTUU
      FAVMVNETWPVIZUVRUULHIERSWQWRUUGUULUVQUUGUULUVPXAXBXCZXDXEXFXEUUGUULUUIDUU
      GUULUVPXGUUGUUIUUGFVLUTZUWDUUIVDUTUUGUWAUWPUWEFVPVQUWIUUHFKUWCUWHQXHWRZXI
      ZUUGDUVJXGZUUGDUVJXJZXKUUGUUIDUUJUWRUWSUUGUUJUVOXGZUWTUUGUUJUVOXJZXLXFUUG
      UUNMUTZYRUUNJUIZDUJZUUQCULUMZUUGUWMUVGUUCUXCUWNUVRUVNUULUUMHIMEUUBORUVSSX
      MWAAYRYTUUFXNUUGUXDUWKUUJVEUOZUULUUJVEUODUUGUVLUVGUUCUXDUXGUJUVMUVRUVNUWJ
      UUMHIJMEUULUUBOPUVSRSUWJWHWNWAUUGUWKUULUUJVEUWOXEUUGDUUJUWSUXAUXBXOXFYQUX
      EUXFUPBUUNMYJUUNUJZYLUXEYPUXFUXHYKUXDDYJUUNJXPXQUXHYOUUQCULUXHYNUUPDUNUXH
      YMUUOKYJUUNGXPWFXEYAXRXSXTYBUUGUUICUUJUWQYSYTUUFYCUVOYDYEAYJMUTZUSZYKDULU
      MYLDDULUMUXJDUXJDAUVIUXIUDURWCYFYKDDULYIYGYH $.
  $}

  ${
    $d x y B $.  $d x y F $.  $d x y J $.  $d x y K $.  $d x y S $.
    $d x y T $.
    nmhmcn.j $e |- J = ( TopOpen ` S ) $.
    nmhmcn.k $e |- K = ( TopOpen ` T ) $.
    nmhmcn.g $e |- G = ( Scalar ` S ) $.
    nmhmcn.b $e |- B = ( Base ` G ) $.
    $( A linear operator over a normed subcomplex module is bounded iff it is
       continuous.  (Contributed by Mario Carneiro, 22-Oct-2015.) $)
    nmhmcn $p |- ( ( S e. ( NrmMod i^i CMod ) /\ T e. ( NrmMod i^i CMod )
      /\ QQ C_ B ) ->
      ( F e. ( S NMHom T ) <-> ( F e. ( S LMHom T ) /\ F e. ( J Cn K ) ) ) ) $=
      ( vy cnlm wcel co wa cfv c1 3syl eqid vx cin cq wss w3a cnmhm clmhm cnghm
      cclm ccn wb inss1 sseli isnmhm baib syl2an 3adant3 nghmcn c0g cds cbs cxp
      cv cres cbl ccnv cima crp wrex cxmt cmopn cxme cngp simpll1 sseldi nlmngp
      cmt ngpms msxms xmsxmet simpr cxr simpll2 clmod nlmlmod lmod0vcl 1rp rpxr
      mp1i blopn syl3anc wceq 4syl eleqtrrd cnima syl2anc eleqtrd cghm ad2antlr
      mstopn lmghm ghmid syl a1i blcntr eqeltrd wf wfn lmhmf elpreima mpbir2and
      ffn mopni2 cnmo cdiv cle wbr clt wi wral cgrp simpl1 adantr ngpgrp nmval2
      ad2antrr xmetsym eqtrd breq1d biimpd elbl cr simpl2 simplr ffvelrnda nmcl
      cnm adantld sylbid adantl ltle sylancl 1red lediv1d 3imtr3d ralimdva crab
      1re imim12d blval sseq1d rabss syl6bb rpreccl rpxrd simpl3 nmoleub2b 3jca
      3imtr4d rpred bddnghm expr syld rexlimdva mpd ex impbid2 pm5.32da bitrd )
      BMUIUBZNZCUVJNZUCAUDZUEZDBCUFONZDBCUGONZDBCUHONZPZUVPDFGUJONZPUVKUVLUVOUV
      RUKZUVMUVKBMNZCMNZUVTUVLUVJMBMUIULZUMUVJMCUWCUMUVOUWAUWBPUVRBCDUNUOUPUQUV
      NUVPUVQUVSUVNUVPPZUVQUVSBCDFGHIURUWDUVSUVQUWDUVSPZBUSQZUAVCZBUTQZBVAQZUWI
      VBVDZVEQOZDVFCUSQZRCUTQZCVAQZUWNVBVDZVEQOZVGZUDZUAVHVIZUVQUWEUWJUWIVJQNZU
      WQUWJVKQZNUWFUWQNZUWSUWEBVQNZBVLNUWTUWEUWABVMNZUXCUWEUVJMBUWCUVKUVLUVMUVP
      UVSVNZVOZBVPZBVRZSBVSUWJBUWIUWITZUWJTZVTSZUWEUWQFUXAUWEUVSUWPGNUWQFNUWDUV
      SWAUWEUWPUWOVKQZGUWEUWOUWNVJQNZUWLUWNNZRWBNZUWPUXLNUWECVQNZCVLNUXMUWEUWBC
      VMNZUXPUWEUVJMCUWCUVKUVLUVMUVPUVSWCZVOZCVPZCVRZSCVSUWOCUWNUWNTZUWOTZVTSZU
      WEUWBCWDNUXNUXSCWEUWNCUWLUYBUWLTZWFSZRVHNZUXOUWEWGRWHZWIUWOUWLRUXLUWNUXLT
      WJWKUWEUWBUXQUXPGUXLWLUXSUXTUYAUWOGCUWNIUYBUYCWTWMWNUWPDFGWOWPUWEUWAUXDUX
      CFUXAWLUXFUXGUXHUWJFBUWIHUXIUXJWTWMWQUWEUXBUWFUWINZUWFDQZUWPNZUWEUWABWDNU
      YIUXFBWEUWIBUWFUXIUWFTZWFSZUWEUYJUWLUWPUWEDBCWRONZUYJUWLWLUVPUYNUVNUVSBCD
      XAWSZBCDUWFUWLUYLUYEXBXCUWEUXMUXNUYGUWLUWPNUYDUYFUYGUWEWGXDUWOUWLRUWNXEWK
      XFUWEUWIUWNDXGZDUWIXHZUXBUYIUYKPUKUVPUYPUVNUVSUWIUWNBCDUXIUYBXIZWSZUWIUWN
      DXLZUWIUWFUWPDXJSXKUAUWQUWJUWFUXAUWIUXATXMWKUWEUWRUVQUAVHUWEUWGVHNZPZUWRD
      BCXNOZQRUWGXOOZXPXQZUVQVUBUWFLVCZUWJOZUWGXRXQZVUFUWQNZXSZLUWIXTZVUFBYQQZQ
      ZUWGXRXQZVUFDQZCYQQZQZUWGXOOVUDXPXQZXSZLUWIXTUWRVUEVUBVUJVUSLUWIVUBVUFUWI
      NZPZVUNVUHVUIVURVVAVUNVUHVVAVUMVUGUWGXRVVAVUMVUFUWFUWJOZVUGVVABYANZVUTVUM
      VVBWLVVAUXDVVCUWEUXDVUAVUTUWDUXDUVSUWDUWAUXDUWDUVJMBUWCUVKUVLUVMUVPYBVOUX
      GXCYCZYFBYDXCVUBVUTWAZVUFUWHUWJVULBUWIUWFVULTZUXIUYLUWHTUXJYEWPVVAUWTVUTU
      YIVVBVUGWLUWEUWTVUAVUTUXKYFVVEUWEUYIVUAVUTUYMYFVUFUWFUWJUWIYGWKYHYIYJVVAV
      UIVUTVUOUWPNZPZVURVVAUYPUYQVUIVVHUKUWEUYPVUAVUTUYSYFUYTUWIVUFUWPDXJSVVAVV
      GVURVUTVVAVVGVUOUWNNZUWLVUOUWOOZRXRXQZPZVURVVAUXMUXNUXOVVGVVLUKUWEUXMVUAV
      UTUYDYFZUWEUXNVUAVUTUYFYFZUYGUXOVVAWGUYHWIVUOUWOUWLRUWNYKWKVVAVVKVURVVIVV
      AVUQRXRXQZVUQRXPXQZVVKVURVVAVUQYLNZRYLNVVOVVPXSVVAUXQVVIVVQUWEUXQVUAVUTUW
      DUXQUVSUWDUWBUXQUWDUVJMCUWCUVKUVLUVMUVPYMVOUXTXCYCZYFZVUBUWIUWNVUFDVUBUVP
      UYPUWEUVPVUAUVNUVPUVSYNYCZUYRXCYOZVUOCVUPUWNUYBVUPTZYPWPZUUHVUQRUUAUUBVVA
      VUQVVJRXRVVAVUQVUOUWLUWOOZVVJVVACYANZVVIVUQVWDWLVVAUXQVWEVVSCYDXCVWAVUOUW
      MUWOVUPCUWNUWLVWBUYBUYEUWMTUYCYEWPVVAUXMVVIUXNVWDVVJWLVVMVWAVVNVUOUWLUWOU
      WNYGWKYHYIVVAVUQRUWGVWCVVAUUCUWEVUAVUTYNUUDUUEYRYSYRYSUUIUUFVUBUWRVUHLUWI
      UUGZUWQUDVUKVUBUWKVWFUWQVUBUWTUYIUWGWBNZUWKVWFWLUWEUWTVUAUXKYCUWEUYIVUAUY
      MYCVUAVWGUWEUWGWHYTLUWJUWFUWGUWIUUJWKUUKVUHLUWIUWQUULUUMVUBLVUDUWGBCDEAVU
      LVUPVUCUWIVUCTZUXIVVFVWBJKUWEUVKVUAUXEYCUWEUVLVUAUXRYCVVTVUBVUDVUAVUDVHNU
      WEUWGUUNZYTUUOUWEVUAWAUWDUVMUVSVUAUVKUVLUVMUVPUUPYFUUQUUSUWEUXDUXQUYNUEZV
      UDYLNZVUEUVQXSVUAUWEUXDUXQUYNVVDVVRUYOUURVUAVUDVWIUUTVWJVWKVUEUVQVUDBCDVU
      CVWHUVAUVBUPUVCUVDUVEUVFUVGUVHUVI $.
  $}

  ${
    cmodscexp.f $e |- F = ( Scalar ` W ) $.
    cmodscexp.k $e |- K = ( Base ` F ) $.
    $( The powers of ` _i ` belong to the scalar subring of a subcomplex module
       if ` _i ` belongs to the scalar subring .  (Contributed by AV,
       18-Oct-2021.) $)
    cmodscexp $p |- ( ( ( W e. CMod /\ _i e. K ) /\ N e. NN )
                       -> ( _i ^ N ) e. K ) $=
      ( cclm wcel ci wa cn ccnfld cmgp cfv cmg co cexp cc cn0 eqid ax-icn nnnn0
      a1i cnfldexp syl2an csubmnd csubrg clmsubrg subrgsubm syl ad2antrr adantl
      wceq simplr submmulgcl syl3anc eqeltrrd ) DGHZIBHZJZCKHZJZCILMNZONZPZICQP
      ZBUTIRHZCSHZVEVFUMVAVGUTUAUCCUBZICUDUEVBBVCUFNHZVHUSVEBHURVJUSVAURBLUGNHV
      JABDEFUHBLVCVCTUIUJUKVAVHUTVIULURUSVAUNBVDVCCIVDTUOUPUQ $.

    cmodscmulexp.x $e |- X = ( Base ` W ) $.
    cmodscmulexp.s $e |- .x. = ( .s ` W ) $.
    $( The scalar product of a vector with powers of ` _i ` belongs to the base
       set of a subcomplex module if the scalar subring of th subcomplex module
       contains ` _i ` .  (Contributed by AV, 18-Oct-2021.) $)
    cmodscmulexp $p |- ( ( W e. CMod /\ ( _i e. K /\ B e. X /\ N e. NN ) )
                         -> ( ( _i ^ N ) .x. B ) e. X ) $=
      ( cclm wcel ci cn w3a wa clmod cexp co clmlmod adantr simp1 anim2i simpr3
      cmodscexp syl2anc simpr2 lmodvscl syl3anc ) FLMZNDMZAGMZEOMZPZQZFRMZNESTZ
      DMZUMURABTGMUKUQUOFUAUBUPUKULQUNUSUOULUKULUMUNUCUDUKULUMUNUECDEFHIUFUGUKU
      LUMUNUHURBCDGFAJHKIUIUJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subcomplex vector spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Usually, "complex vector spaces" are vector spaces over the field of the
  complex numbers, see for example the definition in [Roman] p. 36.

  In the setting of set.mm, it is convenient to consider collectively vector
  spaces on subfields of the field of complex numbers.  We call these,
  "subcomplex vector spaces" and collect them in the class ` CVec ` defined in
  ~ df-cvs and characterized in ~ iscvs .  These include rational vector spaces
  ( ~ qcvs ), real vector spaces ( ~ recvs ) and complex vector spaces
  ( ~ cncvs ).

  This definition is analogous to the definition of subcomplex modules (and
  their class ` CMod `), which are modules over subrings of the field of
  complex numbers.  Note that ZZ-modules (that are roughly the same thing as
  Abelian groups, see ~ zlmclm ) are subcomplex modules but are not subcomplex
  vector spaces (see ~ zclmncvs ), because the ring ZZ is not a division ring
  (see ~ zringndrg ).

  Since the field of complex numbers is commutative, so are its subrings, so
  there is no need to explicitly state "left module" or "left vector space" for
  subcomplex modules or vector spaces.

$)

  $c CVec $. $( Token for the class of subcomplex vector spaces. $)

  $( Syntax for the class of subcomplex vector spaces. $)
  ccvs $a class CVec $.

  $( Define the class of subcomplex vector spaces, which are the subcomplex
     modules which are also vector spaces.  (Contributed by Thierry Arnoux,
     22-May-2019.) $)
  df-cvs $a |- CVec = ( CMod i^i LVec ) $.

  ${
    cvslvec.1 $e |- ( ph -> W e. CVec ) $.
    $( A subcomplex vector space is a (left) vector space.  (Contributed by
       Thierry Arnoux, 22-May-2019.) $)
    cvslvec $p |- ( ph -> W e. LVec ) $=
      ( ccvs wcel clvec cclm df-cvs elin2 simprbi syl ) ABDEZBFEZCLBGEMBGFDHIJK
      $.

    $( A subcomplex vector space is a subcomplex module.  (Contributed by
       Thierry Arnoux, 22-May-2019.) $)
    cvsclm $p |- ( ph -> W e. CMod ) $=
      ( ccvs wcel cclm clvec df-cvs elin2 simplbi syl ) ABDEZBFEZCLMBGEBFGDHIJK
      $.
  $}

  $( A subcomplex vector space is a subcomplex module over a division ring.
     For example, the subcomplex modules over the rational or real or complex
     numbers are subcomplex vector spaces.  (Contributed by AV, 4-Oct-2021.) $)
  iscvs $p |- ( W e. CVec <-> ( W e. CMod /\ ( Scalar ` W ) e. DivRing ) ) $=
    ( ccvs wcel cclm clvec wa csca cfv cdr df-cvs elin2 clmod clmlmod wb islvec
    eqid a1i mpbirand pm5.32i bitri ) ABCADCZAECZFUAAGHZICZFADEBJKUAUBUDUAUBALC
    ZUDAMUBUEUDFNUAUCAUCPOQRST $.

  ${
    $d K x y z $.  $d S x y z $.  $d V x y z $.  $d W x y z $.  $d .+ x y z $.
    $d .x. x y z $.
    iscvsp.t $e |- .x. = ( .s ` W ) $.
    iscvsp.a $e |- .+ = ( +g ` W ) $.
    iscvsp.v $e |- V = ( Base ` W ) $.
    iscvsp.s $e |- S = ( Scalar ` W ) $.
    iscvsp.k $e |- K = ( Base ` S ) $.
    $( The predicate "is a subcomplex vector space."  (Contributed by NM,
       31-May-2008.)  (Revised by AV, 4-Oct-2021.) $)
    iscvsp $p |- ( W e. CVec <-> ( ( W e. Grp
                                     /\ ( S e. DivRing /\ S = ( CCfld |`s K ) )
                                     /\ K e. ( SubRing ` CCfld ) )
                 /\ A. x e. V ( ( 1 .x. x ) = x /\ A. y e. K ( ( y .x. x ) e. V
          /\ A. z e. V ( y .x. ( x .+ z ) ) = ( ( y .x. x ) .+ ( y .x. z ) )
            /\ A. z e. K ( ( ( z + y ) .x. x ) = ( ( z .x. x ) .+ ( y .x. x ) )
            /\ ( ( z x. y ) .x. x ) = ( z .x. ( y .x. x ) ) ) ) ) ) ) $=
      ( wcel cdr wa co wceq wral ccvs cclm csca cfv cgrp ccnfld cress csubrg c1
      w3a cv caddc cmul iscvs isclmp anbi2ci anass 3anan12 anbi2i eqcomi eleq1i
      anbi1i 3bitr2i bitr4i bitri ) IUAOIUBOZIUCUDZPOZQZIUEOZEPOZEUFGUGRSZQZGUF
      UHUDOZUJZUIAUKZFRVPSBUKZVPFRZHOVQVPCUKZDRFRVRVQVSFRDRSCHTVSVQULRVPFRVSVPF
      RVRDRSVSVQUMRVPFRVSVRFRSQCGTUJBGTQAHTZQZIUNVIVHVJVLVNUJZVTQZQVHWBQZVTQWAV
      FWCVHABCDEFGHIJKLMNUOUPVHWBVTUQWDVOVTWDVMVJVNQZQZVOWDVHVLWEQZQVHVLQZWEQWF
      WBWGVHVJVLVNURUSVHVLWEUQWHVMWEVHVKVLVGEPEVGMUTVAVBVBVCVJVMVNURVDVBVCVE $.

    iscvsi.1 $e |- W e. Grp $.
    iscvsi.2 $e |- S = ( CCfld |`s K ) $.
    iscvsi.3 $e |- S e. DivRing $.
    iscvsi.4 $e |- K e. ( SubRing ` CCfld ) $.
    iscvsi.5 $e |- ( x e. V -> ( 1 .x. x ) = x ) $.
    iscvsi.6 $e |- ( ( y e. K /\ x e. V ) -> ( y .x. x ) e. V ) $.
    iscvsi.7 $e |- ( ( y e. K /\ x e. V /\ z e. V ) ->
                  ( y .x. ( x .+ z ) ) = ( ( y .x. x ) .+ ( y .x. z ) ) ) $.
    iscvsi.8 $e |- ( ( y e. K /\ z e. K /\ x e. V ) ->
                  ( ( z + y ) .x. x ) = ( ( z .x. x ) .+ ( y .x. x ) ) ) $.
    iscvsi.9 $e |- ( ( y e. K /\ z e. K /\ x e. V ) ->
                  ( ( z x. y ) .x. x ) = ( z .x. ( y .x. x ) ) ) $.
    $( Properties that determine a subcomplex vector space.  (Contributed by
       NM, 5-Nov-2006.)  (Revised by AV, 4-Oct-2021.) $)
    iscvsi $p |- W e. CVec $=
      ( ccvs wcel cgrp cdr ccnfld cress co wceq wa csubrg cfv w3a c1 wral caddc
      cv cmul pm3.2i 3pm3.2i ancoms 3com12 3expa ralrimiva jca 3jca rgen iscvsp
      3comr mpbir2an ) IUDUEIUFUEZEUGUEZEUHGUIUJUKZULZGUHUMUNUEZUOUPAUSZFUJVRUK
      ZBUSZVRFUJZHUEZVTVRCUSZDUJFUJWAVTWCFUJDUJUKZCHUQZWCVTURUJVRFUJWCVRFUJWADU
      JUKZWCVTUTUJVRFUJWCWAFUJUKZULZCGUQZUOZBGUQZULZAHUQVMVPVQOVNVOQPVARVBWLAHV
      RHUEZVSWKSWMWJBGWMVTGUEZULZWBWEWIWNWMWBTVCWOWDCHWMWNWCHUEZWDWNWMWPWDUAVDV
      EVFWOWHCGWMWNWCGUEZWHWNWQWMWHWNWQWMUOWFWGUBUCVGVKVEVFVHVFVGVIABCDEFGHIJKL
      MNVJVL $.
  $}

  ${
    $d W x y z $.  $d X y z $.  $d S z $.
    cvsi.x $e |- X = ( Base ` W ) $.
    cvsi.a $e |- .+ = ( +g ` W ) $.
    cvsi.s $e |- S = ( Base ` ( Scalar ` W ) ) $.
    cvsi.m $e |- .xb = ( .sf ` W ) $.
    cvsi.t $e |- .x. = ( .s ` W ) $.
    $( The properties of a subcomplex vector space, which is an Abelian group
       (i.e. the vectors, with the operation of vector addition) accompanied by
       a scalar multiplication operation on the field of complex numbers.
       (Contributed by NM, 3-Nov-2006.)  (Revised by AV, 21-Sep-2021.) $)
    cvsi $p |- ( W e. CVec -> ( W e. Abel
                                /\ ( S C_ CC /\ .xb : ( S X. X ) --> X )
                                /\ A. x e. X ( ( 1 .x. x ) = x /\ A. y e. S
       ( A. z e. X ( y .x. ( x .+ z ) ) = ( ( y .x. x ) .+ ( y .x. z ) )
            /\ A. z e. S ( ( ( y + z ) .x. x ) = ( ( y .x. x ) .+ ( z .x. x ) )
            /\ ( ( y x. z ) .x. x ) = ( y .x. ( z .x. x ) ) ) ) ) ) ) $=
      ( wcel wa co wceq syl adantr ccvs cclm clvec cabl cc wss wf c1 wral caddc
      cxp cv cmul w3a cin df-cvs eleq2i elin bitri lveclmod lmodabl adantl csca
      clmod cfv eqid clmsscn clmlmod lmodscaf jca cur clm1 oveq1d lmodvs1 eqtrd
      anim1i simplr simpr 3jca lmodvsdi ralrimiva cplusg clmadd oveqd lmodvsdir
      simpllr cmulr clmmul lmodvsass sylbi ) HUAOZHUBOZHUCOZPZHUDOZEUEUFZEIUKIF
      UGZPZUHAULZGQZWSRZBULZWSCULZDQGQXBWSGQZXBXCGQDQRZCIUIZXBXCUJQZWSGQZXDXCWS
      GQZDQZRZXBXCUMQZWSGQZXBXIGQZRZPZCEUIZPZBEUIZPZAIUIZUNWKHUBUCUOZOWNUAYBHUP
      UQHUBUCURUSWNWOWRYAWMWOWLWMHVDOZWOHUTHVASVBWLWRWMWLWPWQHVCVEZEHYDVFZLVGWL
      YCWQHVHZIFYDEHJYELMVISVJTWLYAWMWLXTAIWLWSIOZPZXAXSYHWTYDVKVEZWSGQZWSYHUHY
      IWSGWLUHYIRYGYDHYEVLTVMYHYCYGPYJWSRWLYCYGYFVPGYIYDIHWSJYENYIVFVNSVOYHXRBE
      YHXBEOZPZXFXQYLXECIYLXCIOZPZYCYKYGYMUNZPXEYNYCYOYLYCYMYHYCYKWLYCYGYFTTZTY
      NYKYGYMYHYKYMVQWLYGYKYMWFYLYMVRVSVJDXBGYDEIHWSXCJKYENLVTSWAYLXPCEYLXCEOZP
      ZXKXOYRXHXBXCYDWBVEZQZWSGQZXJYRXGYTWSGYRUJYSXBXCYLUJYSRZYQYHUUBYKWLUUBYGY
      DHYEWCTTTWDVMYRYCYKYQYGUNZPZUUAXJRYRYCUUCYLYCYQYPTYRYKYQYGYLYKYQYHYKVRTYL
      YQVRYLYGYQYHYGYKWLYGVRTTVSVJZDYSXBXCGYDEIHWSJKYENLYSVFWESVOYRXMXBXCYDWGVE
      ZQZWSGQZXNYRXLUUGWSGYRUMUUFXBXCYLUMUUFRZYQYHUUIYKWLUUIYGYDHYEWHTTTWDVMYRU
      UDUUHXNRUUEXBXCGUUFYDEIHWSJYENLUUFVFWISVOVJWAVJWAVJWATVSWJ $.
  $}

  ${
    cvsdiv.f $e |- F = ( Scalar ` W ) $.
    cvsdiv.k $e |- K = ( Base ` F ) $.
    $( Unit group of the scalar ring of a subcomplex vector space.
       (Contributed by Thierry Arnoux, 22-May-2019.) $)
    cvsunit $p |- ( W e. CVec -> ( K \ { 0 } ) = ( Unit ` F ) ) $=
      ( ccvs wcel cc0 csn cdif c0g cfv cui cclm wceq id cvsclm clm0 syl eqid
      sneqd difeq2d clvec cdr cvslvec lvecdrng crg isdrng simprbi 3syl eqtr4d )
      CFGZBHIZJBAKLZIZJZAMLZULUMUOBULHUNULCNGHUNOULCULPZQACDRSUAUBULCUCGAUDGZUQ
      UPOZULCURUEACDUFUSAUGGUTBAUQUNEUQTUNTUHUIUJUK $.

    $( Division of the scalar ring of a subcomplex vector space.  (Contributed
       by Thierry Arnoux, 22-May-2019.) $)
    cvsdiv $p |- ( ( W e. CVec /\ ( A e. K /\ B e. K /\ B =/= 0 ) ) ->
      ( A / B ) = ( A ( /r ` F ) B ) ) $=
      ( ccvs wcel cc0 cdiv co ccnfld cdvr cfv cui wceq syl fveq2d eqid wa cress
      wne w3a csubrg cclm cvsclm clmsubrg simpr1 csn cdif simpr2 simpr3 eldifsn
      simpl sylanbrc cvsunit clmsca eqtrd eleqtrd cnflddiv subrgdv oveqd eqtr4d
      syl3anc ) EHIZADIZBDIZBJUCZUDZUAZABKLZABMDUBLZNOZLZABCNOZLVKDMUEOIZVGBVMP
      OZIVLVOQVKEUFIZVQVKEVFVJUOZUGZCDEFGUHRVFVGVHVIUIVKBDJUJUKZVRVKVHVIBWBIVFV
      GVHVIULVFVGVHVIUMBDJUNUPVKWBCPOZVRVKVFWBWCQVTCDEFGUQRVKCVMPVKVSCVMQWACDEF
      GURRZSUSUTDKMVMVRVNABVMTVAVRTVNTVBVEVKVPVNABVKCVMNWDSVCVD $.

    $( The scalar field of a subcomplex vector space is closed under division.
       (Contributed by Thierry Arnoux, 22-May-2019.) $)
    cvsdivcl $p |- ( ( W e. CVec /\ ( A e. K /\ B e. K /\ B =/= 0 ) ) ->
      ( A / B ) e. K ) $=
      ( ccvs wcel cc0 wne w3a wa cdiv co cdvr cfv cvsdiv crg eqid cui clvec cdr
      simpl cvslvec lvecdrng drngring simpr1 csn simpr2 simpr3 eldifsn sylanbrc
      3syl cdif wceq cvsunit adantr eleqtrd dvrcl syl3anc eqeltrd ) EHIZADIZBDI
      ZBJKZLZMZABNOABCPQZOZDABCDEFGRVHCSIZVDBCUAQZIVJDIVHEUBICUCIVKVHEVCVGUDUEC
      EFUFCUGUNVCVDVEVFUHVHBDJUIUOZVLVHVEVFBVMIVCVDVEVFUJVCVDVEVFUKBDJULUMVCVMV
      LUPVGCDEFGUQURUSDVICVLABGVLTVITUTVAVB $.
  $}

  ${
    cvsdiveqd.v $e |- V = ( Base ` W ) $.
    cvsdiveqd.t $e |- .x. = ( .s ` W ) $.
    cvsdiveqd.f $e |- F = ( Scalar ` W ) $.
    cvsdiveqd.k $e |- K = ( Base ` F ) $.
    cvsdiveqd.w $e |- ( ph -> W e. CVec ) $.
    cvsdiveqd.a $e |- ( ph -> A e. K ) $.
    cvsdiveqd.b $e |- ( ph -> B e. K ) $.
    cvsdiveqd.x $e |- ( ph -> X e. V ) $.
    cvsdiveqd.y $e |- ( ph -> Y e. V ) $.
    cvsdiveqd.1 $e |- ( ph -> A =/= 0 ) $.
    ${
      cvsmuleqdivd.1 $e |- ( ph -> ( A .x. X ) = ( B .x. Y ) ) $.
      $( An equality involving ratios in a subcomplex vector space.
         (Contributed by Thierry Arnoux, 22-May-2019.) $)
      cvsmuleqdivd $p |- ( ph -> X = ( ( B / A ) .x. Y ) ) $=
        ( c1 cdiv co oveq2d cmul cc cclm wcel wss cvsclm clmsscn sseldd recid2d
        syl oveq1d wceq ccvs cc0 wne cur cfv clm1 clmring eqid ringidcl eqeltrd
        3syl cvsdivcl syl13anc clmvsass clmvs1 syl2anc 3eqtr3d divrec2d eqtr2d
        crg ) AUBBUCUDZBIDUDZDUDZVRCJDUDZDUDZICBUCUDZJDUDZAVSWAVRDUAUEAVRBUFUDZ
        IDUDZUBIDUDZVTIAWEUBIDABAFUGBAHUHUIZFUGUJAHOUKZEFHMNULUOZPUMZTUNUPAWHVR
        FUIZBFUIZIGUIZWFVTUQWIAHURUIUBFUIWMBUSUTWLOAUBEVAVBZFAWHUBWOUQWIEHMVCUO
        AWHEVQUIWOFUIWIEHMVDFEWONWOVEVFVHVGPTUBBEFHMNVIVJZPRVRBDEFGHIKMLNVKVJAW
        HWNWGIUQWIRDGHIKLVLVMVNAWDVRCUFUDZJDUDZWBAWCWQJDACBAFUGCWJQUMWKTVOUPAWH
        WLCFUIJGUIWRWBUQWIWPQSVRCDEFGHJKMLNVKVJVPVN $.
    $}

    ${
      cvsdiveqd.2 $e |- ( ph -> B =/= 0 ) $.
      cvsdiveqd.3 $e |- ( ph -> X = ( ( A / B ) .x. Y ) ) $.
      $( An equality involving ratios in a subcomplex vector space.
         (Contributed by Thierry Arnoux, 22-May-2019.) $)
      cvsdiveqd $p |- ( ph -> ( ( B / A ) .x. X ) = Y ) $=
        ( cdiv co oveq2d cmul c1 cc cclm wss cvsclm clmsscn syl sseldd divcan6d
        wcel oveq1d wceq ccvs cc0 wne cvsdivcl syl13anc clmvsass clmvs1 syl2anc
        3eqtr3d eqtrd ) ACBUCUDZIDUDVIBCUCUDZJDUDZDUDZJAIVKVIDUBUEAVIVJUFUDZJDU
        DZUGJDUDZVLJAVMUGJDACBAFUHCAHUIUPZFUHUJAHOUKZEFHMNULUMZQUNAFUHBVRPUNUAT
        UOUQAVPVIFUPZVJFUPZJGUPZVNVLURVQAHUSUPZCFUPZBFUPZBUTVAVSOQPTCBEFHMNVBVC
        AWBWDWCCUTVAVTOPQUABCEFHMNVBVCSVIVJDEFGHJKMLNVDVCAVPWAVOJURVQSDGHJKLVEV
        FVGVH $.
    $}
  $}

  ${
    cnlmod.w $e |- W = ( { <. ( Base ` ndx ) , CC >. ,
                          <. ( +g ` ndx ) , + >. }
                     u. { <. ( Scalar ` ndx ) , CCfld >. ,
                          <. ( .s ` ndx ) , x. >. } ) $.
    $( Lemma 1 for ~ cnlmod .  (Contributed by AV, 20-Sep-2021.) $)
    cnlmodlem1 $p |- ( Base ` W ) = CC $=
      ( cc cvv wcel cbs cfv wceq cnex caddc cmul ccnfld cnx cop cplusg cpr csca
      cvsca cun ctp csn qdass eqtri lmodbase eqcomd ax-mp ) CDEZAFGZCHIUGCUHCJK
      LADAMFGCNZMOGJNZPMQGLNZMRGKNZPSUIUJUKTULUASBUIUJUKULUBUCUDUEUF $.

    $( Lemma 2 for ~ cnlmod .  (Contributed by AV, 20-Sep-2021.) $)
    cnlmodlem2 $p |- ( +g ` W ) = + $=
      ( caddc cvv wcel cplusg cfv wceq addex cmul ccnfld cnx cbs cop csca cvsca
      cc cpr cun ctp csn qdass eqtri lmodplusg eqcomd ax-mp ) CDEZAFGZCHIUGCUHQ
      CJKADALMGQNZLFGCNZRLOGKNZLPGJNZRSUIUJUKTULUASBUIUJUKULUBUCUDUEUF $.

    $( Lemma 3 for ~ cnlmod .  (Contributed by AV, 20-Sep-2021.) $)
    cnlmodlem3 $p |- ( Scalar ` W ) = CCfld $=
      ( ccnfld cvv wcel csca cfv wceq cnfldex caddc cmul cnx cbs cop cplusg cpr
      cc cvsca cun ctp csn qdass eqtri lmodsca eqcomd ax-mp ) CDEZAFGZCHIUGCUHQ
      JKCADALMGQNZLOGJNZPLFGCNZLRGKNZPSUIUJUKTULUASBUIUJUKULUBUCUDUEUF $.

    $( Lemma 4 for ~ cnlmod .  (Contributed by AV, 20-Sep-2021.) $)
    cnlmod4 $p |- ( .s ` W ) = x. $=
      ( cmul cvv wcel cvsca cfv wceq mulex caddc ccnfld cnx cbs cop cplusg csca
      cc cpr cun ctp csn qdass eqtri lmodvsca eqcomd ax-mp ) CDEZAFGZCHIUGCUHQJ
      CKADALMGQNZLOGJNZRLPGKNZLFGCNZRSUIUJUKTULUASBUIUJUKULUBUCUDUEUF $.

    $d W x y z $.
    $( The set of complex numbers is a left module over itself.  The vector
       operation is ` + ` , and the scalar product is ` x. ` .  (Contributed by
       AV, 20-Sep-2021.) $)
    cnlmod $p |- W e. LMod $=
      ( vx vy vz cc0 cc wcel caddc cv cfv wceq eqcomi a1i co adantl cmul ccnfld
      id c1 cgrp clmod 0cn cneg cbs cnlmodlem1 cplusg cnlmodlem2 3adant1 addass
      addcl w3a addid2 negcl addcomd negid eqtrd isgrpd csca cnlmodlem3 cnlmod4
      cvsca cnfldbas cnfldadd cmulr cnfldmul cur cnfld1 crg cnring mulcl adddir
      wa adddi mulass mulid2 islmodd mp2b ) FGHZAUAHZAUBHUCVSCDEGIACJZUDZFGAUEK
      ZLZVSWCGABUFMZNIAUGKZLZVSWFIABUHMZNWAGHZDJZGHZWAWJIOZGHVSWAWJUKUIWIWKEJZG
      HULZWLWMIOWAWJWMIOZIOLVSWAWJWMUJPVSSWIFWAIOWALVSWAUMPWIWBGHVSWAUNZPVSWIVM
      WBWAIOZWAWBIOZFWIWQWRLVSWIWBWAWPWISUOPWIWRFLVSWAUPPUQURVTCDEGIIQQTRGAWDVT
      WENWGVTWHNRAUSKZLVTWSRABUTMNQAVBKZLVTWTQABVAMNGRUEKLVTVCNIRUGKLVTVDNQRVEK
      LVTVFNTRVGKLVTVHNRVIHVTVJNVTSWIWKWAWJQOZGHVTWAWJVKUIWNWAWOQOXAWAWMQOZIOLV
      TWAWJWMVNPWNWLWMQOXBWJWMQOZIOLVTWAWJWMVLPWNXAWMQOWAXCQOLVTWAWJWMVOPWITWAQ
      OWALVTWAVPPVQVR $.

    $( The set of complex numbers is a subcomplex vector space.  The vector
       operation is ` + ` , and the scalar product is ` x. ` .  (Contributed by
       NM, 5-Nov-2006.)  (Revised by AV, 20-Sep-2021.) $)
    cnstrcvs $p |- W e. CVec $=
      ( vx vy cclm clvec wcel ccnfld cc wceq cfv cvv cnfldex ax-mp cv csca cmul
      caddc cnx cop ccvs clmod cress co csubrg cnlmod cnfldbas ressid eqcomi id
      cin addcl negcl ax-1cn mulcl cnsubrglem cbs cpr cvsca cun ctp qdass eqtri
      cplusg csn lmodsca isclmi cdr cndrng islvec mpbir2an elin df-cvs eleqtrri
      mp3an ) AEFUKZUAAVPGAEGZAFGZAUBGZHHIUCUDZJIHUEKGVQABUFZVTHHLGZVTHJMIHLUGU
      HNUICDICOZIGUJWCDOZULWCUMUNWCWDUOUPHIAWBHAPKJMIRQHALASUQKITZSVDKRTZURSPKH
      TZSUSKQTZURUTWEWFWGVAWHVEUTBWEWFWGWHVBVCVFNZVGVOVRVSHVHGWAVIHAWIVJVKAEFVL
      VKVMVN $.
  $}

  ${
    cnrlmod.c $e |- C = ( ringLMod ` CCfld ) $.
    $( The set of complex numbers is the base set of the complex left module of
       complex numbers.  (Contributed by AV, 21-Sep-2021.) $)
    cnrbas $p |- ( Base ` C ) = CC $=
      ( cbs cfv ccnfld crglmod cc fveq2i cnfldbas rlmbas eqtri eqcomi ) ACDEFDZ
      CDZGAMCBHGNGECDNIEJKLK $.

    $( The complex left module of complex numbers is a left module.  The vector
       operation is ` + ` , and the scalar product is ` x. ` .  (Contributed by
       AV, 21-Sep-2021.) $)
    cnrlmod $p |- C e. LMod $=
      ( ccnfld crglmod cfv clmod crg wcel cnring rlmlmod ax-mp eqeltri ) ACDEZF
      BCGHMFHICJKL $.

    $( The complex left module of complex numbers is a left vector space.  The
       vector operation is ` + ` , and the scalar product is ` x. ` .
       (Contributed by AV, 21-Sep-2021.) $)
    cnrlvec $p |- C e. LVec $=
      ( ccnfld crglmod cfv clvec cdr wcel cndrng rlmlvec ax-mp eqeltri ) ACDEZF
      BCGHMFHICJKL $.

    $d x y $.
    $( The complex left module of complex numbers is a subcomplex vector space.
       The vector operation is ` + ` , and the scalar product is ` x. ` .
       (Contributed by NM, 5-Nov-2006.)  (Revised by AV, 21-Sep-2021.) $)
    cncvs $p |- C e. CVec $=
      ( vx vy cclm clvec cin ccvs wcel clmod ccnfld wceq cfv cvv cnfldex eqcomi
      cc ax-mp cv csca cress co csubrg cnfldbas ressid addcl negcl ax-1cn mulcl
      cnrlmod id cnsubrglem crglmod rlmsca fveq2i eqtri isclmi cnrlvec mpbir2an
      mp3an elin df-cvs eleqtrri ) AEFGZHAVDIAEIZAFIAJIKKQUAUBZLQKUCMIVEABUJVFK
      KNIZVFKLOQKNUDUERPCDQCSZQIUKVHDSZUFVHUGUHVHVIUIULKQAKKUMMZTMZATMVGKVKLOKN
      UNRVJATAVJBPUOUPUQUTABURAEFVAUSVBVC $.
  $}

  ${
    recvs.r $e |- R = ( ringLMod ` RRfld ) $.
    $( The field of the real numbers as left module over itself is a subcomplex
       vector space.  The vector operation is ` + ` , and the scalar product is
       ` x. ` .  (Contributed by AV, 22-Oct-2021.) $)
    recvs $p |- R e. CVec $=
      ( crefld crglmod cfv cclm clvec ccvs clmod wcel csca ccnfld cr cress wceq
      cin cfield refld ax-mp resubdrg co csubrg crg cidom fldidom ccrg cdomn wa
      isidom crngring adantr syl rlmlmod rlmsca df-refld eqtr3i cdr simpli eqid
      sylbi isclmi mp3an simpri rlmlvec elini df-cvs 3eltr4i ) CDEZFGPAHVHFGVHI
      JZVHKEZLMNUAZOMLUBEJZVHFJCUCJZVICQJZVMRVNCUDJZVMCUEVOCUFJZCUGJZUHVMCUIVPV
      MVQCUJUKUTULSCUMSCVJVKVNCVJORCQUNSUOUPVLCUQJZTURVJMVHVJUSVAVBVRVHGJVLVRTV
      CCVDSVEBVFVG $.
  $}

  ${
    qcvs.q $e |- Q = ( ringLMod ` ( CCfld |`s QQ ) ) $.
    $( The field of rational numbers as left module over itself is a subcomplex
       vector space.  The vector operation is ` + ` , and the scalar product is
       ` x. ` .  (Contributed by AV, 22-Oct-2021.) $)
    qcvs $p |- Q e. CVec $=
      ( ccnfld cq cress co crglmod cfv cclm clvec cin ccvs clmod wcel csca wceq
      csubrg cdr qsubdrg ax-mp crg drngring adantl rlmlmod simpri rlmsca eqcomd
      wa simpli eqid isclmi mp3an rlmlvec elini df-cvs 3eltr4i ) CDEFZGHZIJKALU
      RIJURMNZUROHZUQPZDCQHNZURINUQUANZUSVBUQRNZUHVCSVDVCVBUQUBUCTUQUDTVDVAVBVD
      SUEZVDUQUTUQRUFUGTVBVDSUIUTDURUTUJUKULVDURJNVEUQUMTUNBUOUP $.
  $}

  ${
    zclmncvs.z $e |- Z = ( ringLMod ` ZZring ) $.
    $( The ring of integers as left module over itself is a subcomplex module,
       but not a subcomplex vector space.  The vector operation is ` + ` , and
       the scalar product is ` x. ` .  (Contributed by AV, 22-Oct-2021.) $)
    zclmncvs $p |- ( Z e. CMod /\ Z e/ CVec ) $=
      ( cclm wcel ccvs zring cfv ccnfld cz wceq zringring ax-mp eleq1i mpbir wn
      crg clvec cdr wa mtbir wnel crglmod clmod csca co csubrg rlmlmod df-zring
      cress rlmsca eqtr3i zsubrg eqid isclmi mp3an zringndrg neli eqcomd intnan
      wo islvec olci df-nel cin ianor elin xchnxbir df-cvs eleq12i bitri pm3.2i
      ) ACDZAEUAZVLFUBGZCDZVNUCDZVNUDGZHIUIUEZJIHUFGDVOFPDZVPKFUGLFVQVRVSFVQJKF
      PUJZLUHUKULVQIVNVQUMZUNUOAVNCBMNVMVOOZVNQDZOZUTZWDWBWCVPVQRDZSWFVPWFFRDFR
      UPUQVQFRVSVQFJKVSFVQVTURLMTUSVQVNWAVATVBVMAEDZOWEAEVCVNCQVDZDZWEWGVOWCSWE
      WIVOWCVEVNCQVFVGAVNEWHBVHVIVGVJNVK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Normed subcomplex vector spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This section characterizes normed subcomplex vector spaces as subcomplex
  vector spaces which are also normed vector spaces (that is, normed groups
  with a positively homogeneous norm).  For the moment, there is no need of a
  special token to represent their class, so we only use the characterization
  ~ isncvsngp .  Most theorems for normed subcomplex vector spaces have a label
  containing "ncvs".  The idiom `  W e. ( NrmVec i^i CVec ) ` is used in the
  following to say that ` W ` is a _normed subcomplex vector space_, i.e. a
  subcomplex vector space which is also a normed vector space.

$)

  ${
    $d F k x $.  $d K k x $.  $d N k x $.  $d V k x $.  $d W k x $.
    $d .x. k x $.
    isncvsngp.v $e |- V = ( Base ` W ) $.
    isncvsngp.n $e |- N = ( norm ` W ) $.
    isncvsngp.s $e |- .x. = ( .s ` W ) $.
    isncvsngp.f $e |- F = ( Scalar ` W ) $.
    isncvsngp.k $e |- K = ( Base ` F ) $.
    $( A normed subcomplex vector space is a subcomplex vector space which is a
       normed group with a positively homogeneous norm.  (Contributed by NM,
       5-Jun-2008.)  (Revised by AV, 7-Oct-2021.) $)
    isncvsngp $p |- ( W e. ( NrmVec i^i CVec ) <-> ( W e. CVec /\ W e. NrmGrp
                   /\ A. x e. V A. k e. K ( N ` ( k .x. x ) )
                                          = ( ( abs ` k ) x. ( N ` x ) ) ) ) $=
      ( wcel wa cfv cabs wceq wral ccnfld ccvs cnvc cngp cv cmul cin clvec cnlm
      co w3a wb isnvc ancom bitri a1i id cvslvec biantrurd cclm cvsclm cnrg cnm
      clmod eqid isnlm 3anass anbi1i anass clmlmod cress clmsca csubrg clmsubrg
      cnnrg subrgnrg sylancr jca ralcom cres fveq2d csubg subrgsubg subgnm 3syl
      eqeltrd eqtrd adantr fveq1d cnfldnm eqcomi reseq1i fveq1i ad2antll syl5eq
      fvres oveq1d eqeq2d 2ralbidva syl5bb anbi2d 3bitr2d pm5.32i elin 3bitr4i
      syl ) HUANZHUBNZOZXFHUCNZCUDZAUDZBUIFPZXJQPZXKFPZUEUIZRZCESAGSZOZOHUBUAUF
      NZXFXIXQUJXFXGXRXFXGHUGNZHUHNZOZYAXRXGYBUKXFXGYAXTOYBHULYAXTUMUNUOXFXTYAX
      FHXFUPZUQURXFHUSNZYAXRUKXFHYCUTYAXIHVCNZDVANZUJZXLXJDVBPZPZXNUEUIZRZAGSCE
      SZOZYDXRCAYHBDEFGHIJKLMYHVDVEYDYMYEYFOZXIYLOZOZYOXRYMYPUKYDYMYNXIOZYLOYPY
      GYQYLYGXIYNOYQXIYEYFVFXIYNUMUNVGYNXIYLVHUNUOYDYNYOYDYEYFHVIYDDTEVJUIZVADE
      HLMVKZYDTVANETVLPNZYRVANVNDEHLMVMZETYRYRVDZVOVPWEVQURYDYLXQXIYLYKCESAGSYD
      XQYKCAEGVRYDYKXPACGEYDXKGNZXJENZOZOZYJXOXLUUFYIXMXNUEUUFYIXJTVBPZEVSZPZXM
      UUFXJYHUUHYDYHUUHRUUEYDYHYRVBPZUUHYDDYRVBYSVTYDYTETWAPNUUJUUHRUUAETWBETYR
      UUJUUGUUBUUGVDUUJVDWCWDWFWGWHUUFUUIXJQEVSZPZXMXJUUHUUKUUGQEQUUGWIWJWKWLUU
      DUULXMRYDUUCXJEQWOWMWNWFWPWQWRWSWTXAWSXEXAXBXSXGXFOXHHUBUAXCXGXFUMUNXFXIX
      QVFXD $.

    ${
      $d ph k x $.
      isncvsngpd.v $e |- ( ph -> W e. CVec ) $.
      isncvsngpd.g $e |- ( ph -> W e. NrmGrp ) $.
      isncvsngpd.t $e |- ( ( ph /\ ( x e. V /\ k e. K ) )
                     -> ( N ` ( k .x. x ) ) = ( ( abs ` k ) x. ( N ` x ) ) ) $.
      $( Properties that determine a normed subcomplex vector space.
         (Contributed by NM, 15-Apr-2007.)  (Revised by AV, 7-Oct-2021.) $)
      isncvsngpd $p |- ( ph -> W e. ( NrmVec i^i CVec ) ) $=
        ( ccvs wcel cfv cngp cv co cabs cmul wceq wral cin ralrimivva isncvsngp
        cnvc syl3anbrc ) AIRSIUASDUBZBUBZCUCGTUMUDTUNGTUEUCUFZDFUGBHUGIUKRUHSOP
        AUOBDHFQUIBCDEFGHIJKLMNUJUL $.
    $}

    $d V y $.  $d W y $.  $d x y $.
    ncvsi.m $e |- .- = ( -g ` W ) $.
    ncvsi.0 $e |- .0. = ( 0g ` W ) $.
    $( The properties of a normed subcomplex vector space, which is a vector
       space accompanied by a norm.  (Contributed by NM, 11-Nov-2006.)
       (Revised by AV, 7-Oct-2021.) $)
    ncvsi $p |- ( W e. ( NrmVec i^i CVec ) -> ( W e. CVec /\ N : V --> RR
                /\ A. x e. V ( ( ( N ` x ) = 0 <-> x = .0. )
                   /\ A. y e. V ( N ` ( x .- y ) ) <_ ( ( N ` x ) + ( N ` y ) )
                   /\ A. k e. K ( N ` ( k .x. x ) )
                                = ( ( abs ` k ) x. ( N ` x ) ) ) ) ) $=
      ( cfv wral cnvc ccvs cin wcel cngp cv co cabs cmul w3a cr wf cc0 wb caddc
      wceq cle wbr isncvsngp simp1 nmf 3ad2ant2 cgrp wa wi r19.26 simpll simplr
      ngpi simpr 3jca ralimi sylbir ex 3ad2ant3 syl imp 3adant1 sylbi ) JUAUBUC
      UDJUBUDZJUEUDZDUFZAUFZCUGHSWBUHSWCHSZUIUGUPDFTZAITZUJZVTIUKHULZWDUMUPWCKU
      PUNZWCBUFZGUGHSWDWJHSUOUGUQURBITZWEUJZAITZUJACDEFHIJLMNOPUSWGVTWHWMVTWAWF
      UTWAVTWHWFJHILMVAVBWAWFWMVTWAWFWMWAJVCUDZWHWIWKVDZAITZUJWFWMVEZABGHIJKLMQ
      RVIWPWNWQWHWPWFWMWPWFVDWOWEVDZAITWMWOWEAIVFWRWLAIWRWIWKWEWIWKWEVGWIWKWEVH
      WOWEVJVKVLVMVNVOVPVQVRVKVS $.
  $}

  ${
    ncvsprp.v $e |- V = ( Base ` W ) $.
    ncvsprp.n $e |- N = ( norm ` W ) $.
    ncvsprp.s $e |- .x. = ( .s ` W ) $.
    ${
      ncvsprp.f $e |- F = ( Scalar ` W ) $.
      ncvsprp.k $e |- K = ( Base ` F ) $.
      $( Proportionality property of the norm of a scalar product in a normed
         subcomplex vector space.  (Contributed by NM, 11-Nov-2006.)  (Revised
         by AV, 8-Oct-2021.) $)
      ncvsprp $p |- ( ( W e. ( NrmVec i^i CVec ) /\ A e. K /\ B e. V ) ->
                        ( N ` ( A .x. B ) ) = ( ( abs ` A ) x. ( N ` B ) ) ) $=
        ( cnvc ccvs wcel co cfv cmul wceq cin w3a cnm cabs cnlm wa nvcnlm sylbi
        elin adantr eqid nmvs syl3an1 cclm cvsclm simplbiim clmabs sylan eqcomd
        id 3adant3 oveq1d eqtrd ) HNOUAPZAEPZBGPZUBZABCQFRZADUCRZRZBFRZSQZAUDRZ
        VKSQVDHUEPZVEVFVHVLTVDHNPZHOPZUFVNHNOUIZVOVNVPHUGUJUHVICDEFGHABIJKLMVIU
        KULUMVGVJVMVKSVGVMVJVDVEVMVJTZVFVDHUNPZVEVRVDVOVPVSVQVPHVPUTUOUPADEHLMU
        QURVAUSVBVC $.

      $( The norm of a scalar product with a nonnegative real.  (Contributed by
         NM, 1-Jan-2008.)  (Revised by AV, 8-Oct-2021.) $)
      ncvsge0 $p |- ( ( W e. ( NrmVec i^i CVec )
                        /\ ( A e. ( K i^i RR ) /\ 0 <_ A ) /\ B e. V ) ->
                      ( N ` ( A .x. B ) ) = ( A x. ( N ` B ) ) ) $=
        ( cin wcel cr co cfv cmul wceq cnvc ccvs cc0 cle wbr wa w3a cabs adantr
        elinel1 ncvsprp syl3an2 elinel2 absid sylan 3ad2ant2 oveq1d eqtrd ) HUA
        UBNOZAEPNOZUCAUDUEZUFZBGOZUGZABCQFRZAUHRZBFRZSQZAVGSQVBUSAEOZVCVEVHTUTV
        IVAAEPUJUIABCDEFGHIJKLMUKULVDVFAVGSVBUSVFATZVCUTAPOVAVJAEPUMAUNUOUPUQUR
        $.
    $}

    $( The norm of the negative of a vector.  (Contributed by NM, 28-Nov-2006.)
       (Revised by AV, 8-Oct-2021.) $)
    ncvsm1 $p |- ( ( W e. ( NrmVec i^i CVec ) /\ A e. V ) ->
               ( N ` ( -u 1 .x. A ) ) = ( N ` A ) ) $=
      ( cnvc ccvs wcel wa c1 co cfv cabs cmul eqid syl adantr cin cneg csca cbs
      wceq simpl elin id cvsclm clmneg1 simplbiim simpr ncvsprp syl3anc absnegi
      cclm ax-1cn abs1 eqtri oveq1i cngp cr cnlm nvcnlm nlmngp sylbi nmcl sylan
      recnd mulid2d syl5eq eqtrd ) EIJUAKZADKZLZMUBZABNCOZVPPOZACOZQNZVSVOVMVPE
      UCOZUDOZKZVNVQVTUEVMVNUFVMWCVNVMEIKZEJKZWCEIJUGZWEEUPKWCWEEWEUHUIWAWBEWAR
      ZWBRZUJSUKTVMVNULVPABWAWBCDEFGHWGWHUMUNVOVTMVSQNVSVRMVSQVRMPOMMUQUOURUSUT
      VOVSVOVSVMEVAKZVNVSVBKVMWDWELWIWFWDWIWEWDEVCKWIEVDEVESTVFAECDFGVGVHVIVJVK
      VL $.

    ncvsdif.p $e |- .+ = ( +g ` W ) $.
    $( The norm of the difference between two vectors.  (Contributed by NM,
       1-Dec-2006.)  (Revised by AV, 8-Oct-2021.) $)
    ncvsdif $p |- ( ( W e. ( NrmVec i^i CVec ) /\ A e. V /\ B e. V )
                    -> ( N ` ( A .+ ( -u 1 .x. B ) ) )
                       = ( N ` ( B .+ ( -u 1 .x. A ) ) ) ) $=
      ( cnvc ccvs wcel w3a co cfv wceq eqid clmvsubval cin c1 cneg cclm elin id
      csg cvsclm simplbiim csca eqcomd syl3an1 fveq2d cngp wa nvcnlm nlmngp syl
      cnlm adantr sylbi nmsub 3ad2ant1 simp3 simp2 syl3anc 3eqtrd ) GLMUANZAFNZ
      BFNZOZAUBUCZBDPCPZEQABGUGQZPZEQZBAVNPZEQZBVLADPCPZEQVKVMVOEVHGUDNZVIVJVMV
      ORVHGLNZGMNZVTGLMUEZWBGWBUFUHUIZVTVIVJOVOVMABCDGUJQZVNFGHKVNSZWESZJTUKULU
      MVHGUNNZVIVJVPVRRVHWAWBUOWHWCWAWHWBWAGUSNWHGUPGUQURUTVAABGVNEFHIWFVBULVKV
      QVSEVKVTVJVIVQVSRVHVIVTVJWDVCVHVIVJVDVHVIVJVEBACDWEVNFGHKWFWGJTVFUMVG $.

    ncvspi.f $e |- F = ( Scalar ` W ) $.
    ncvspi.k $e |- K = ( Base ` F ) $.
    $( The norm of a vector plus the imaginary scalar product of another.
       (Contributed by NM, 2-Feb-2007.)  (Revised by AV, 8-Oct-2021.) $)
    ncvspi $p |- ( ( W e. ( NrmVec i^i CVec )
                     /\ ( A e. V /\ B e. V ) /\ _i e. K )
                   -> ( N ` ( A .+ ( _i .x. B ) ) )
                      = ( N ` ( B .+ ( -u _i .x. A ) ) ) ) $=
      ( wcel ci c1 co cfv cnvc ccvs cin wa cmul cneg cngp cr elin nvcnlm nlmngp
      w3a cnlm syl adantr sylbi 3ad2ant1 cgrp clmod nvclmod lmodgrp simp2l cclm
      id cvsclm simplbiim simp3 simp2r clmvscl syl3anc grpcl nmcl syl2anc recnd
      mulid2d cabs ax-icn absnegi absi eqtri oveq1i wceq simp1 wi cminusg sylan
      clmneg clmfgrp eqid grpinvcl eqeltrd imp 3adant2 ncvsprp clmvsdi syl13anc
      ex mulneg1i negeqi negneg1e1 clmvsass simpr anim12i 3adant3 clmvs1 oveq2d
      ixi 3eqtr3a cabl clmabl ablcom 3eqtrd fveq2d eqtr3d syl5eqr ) IUAUBUCPZAH
      PZBHPZUDZQFPZULZRAQBDSZCSZGTZUESZYDBQUFZADSZCSZGTZYAYDYAYDYAIUGPZYCHPZYDU
      HPXPXSYJXTXPIUAPZIUBPZUDZYJIUAUBUIZYLYJYMYLIUMPYJIUJIUKUNUOUPUQYAIURPZXQY
      BHPZYKXPXSYPXTXPYNYPYOYLYPYMYLIUSPYPIUTIVAUNUOUPUQXPXQXRXTVBZYAIVCPZXTXRY
      QXPXSYSXTXPYLYMYSYOYMIYMVDVEZVFZUQZXPXSXTVGZXPXQXRXTVHZQDEFHIBJNLOVIVJZHC
      IAYBJMVKVJZYCIGHJKVLVMVNVOYAYEYFVPTZYDUESZYIUUGRYDUEUUGQVPTRQVQVRVSVTWAYA
      YFYCDSZGTZUUHYIYAXPYFFPZYKUUJUUHWBXPXSXTWCXPXTUUKXSXPXTUUKXPYLYMXTUUKWDYO
      YMXTUUKYMXTUDYFQEWETZTZFYMYSXTYFUUMWBYTQEFINOWGWFYMEURPZXTUUMFPYMYSUUNYTE
      INWHUNFEUULQOUULWIWJWFWKWQVFWLWMZUUFYFYCDEFGHIJKLNOWNVJYAUUIYHGYAUUIYGYFY
      BDSZCSZYGBCSZYHYAYSUUKXQYQUUIUUQWBUUBUUOYRUUEYFCDEFHIAYBJNLOMWOWPYAUUPBYG
      CYAYFQUESZBDSZRBDSZUUPBUUSRBDUUSQQUESZUFZRQQVQVQWRUVCRUFZUFRUVBUVDXGWSWTV
      TVTWAYAYSUUKXTXRUUTUUPWBUUBUUOUUCUUDYFQDEFHIBJNLOXAWPYAYSXRUDZUVABWBXPXSU
      VEXTXPYSXSXRUUAXQXRXBXCXDDHIBJLXEUNXHXFYAIXIPZYGHPZXRUURYHWBXPXSUVFXTXPYL
      YMUVFYOYMYSUVFYTIXJUNVFUQYAYSUUKXQUVGUUBUUOYRYFDEFHIAJNLOVIVJUUDHCIYGBJMX
      KVJXLXMXNXOXN $.
  $}

  ${
    ncvs1.x $e |- X = ( Base ` G ) $.
    ncvs1.n $e |- N = ( norm ` G ) $.
    ncvs1.z $e |- .0. = ( 0g ` G ) $.
    ncvs1.s $e |- .x. = ( .s ` G ) $.
    ncvs1.f $e |- F = ( Scalar ` G ) $.
    ncvs1.k $e |- K = ( Base ` F ) $.
    $( From any nonzero vector, construct a vector whose norm is one.
       (Contributed by NM, 6-Dec-2007.)  (Revised by AV, 8-Oct-2021.) $)
    ncvs1 $p |- ( ( G e. ( NrmVec i^i CVec ) /\ ( A e. X /\ A =/= .0. )
                   /\ ( 1 / ( N ` A ) ) e. K )
                 -> ( N ` ( ( 1 / ( N ` A ) ) .x. A ) ) = 1 ) $=
      ( wcel wa c1 cr cc0 syl cnvc ccvs cin wne cfv cdiv w3a cmul cle wbr simp1
      co wceq simp3 cngp elin cnlm nvcnlm nlmngp sylbi simpl anim12i nmcl nmeq0
      adantr bicomd sylan necon3bid biimpd impr rereccld 3adant3 elind clt 0le1
      wb 1re pm3.2i a1i simprr nmgt0 mpbid jca32 divge0 ncvsge0 syl121anc recnd
      simp2l recid2d eqtrd ) DUAUBUCOZAGOZAHUDZPZQAFUEZUFULZEOZUGZWPABULFUEZWPW
      OUHULZQWRWKWPERUCOSWPUIUJZWLWSWTUMWKWNWQUKWRERWPWKWNWQUNWKWNWPROWQWKWNPZW
      OXBDUOOZWLPZWOROZWKXCWNWLWKDUAOZDUBOZPXCDUAUBUPXFXCXGXFDUQOXCDURDUSTVEUTZ
      WLWMVAVBZADFGIJVCZTZWKWLWMWOSUDZWKWLPZWMXLXMAHWOSWKXCWLAHUMZWOSUMZVPXHXDX
      OXNADFGHIJKVDVFVGVHVIVJZVKVLVMWRQROZSQUIUJZPZXESWOVNUJZPPZXAWKWNYAWQXBXSX
      EXTXSXBXQXRVQVOVRVSXKXBWMXTWKWLWMVTXBXDWMXTVPXIADFGHIJKWATWBWCVLQWOWDTWKW
      LWMWQWHWPABCEFGDIJLMNWEWFWRWOWRWOWRXDXEWKWNXDWQXIVLXJTWGWKWNXLWQXPVLWIWJ
      $.
  $}

  ${
    cnrnvc.c $e |- C = ( ringLMod ` CCfld ) $.
    $( The set of complex numbers (as a subring of itself) is a normed vector
       space over itself.  The vector operation is ` + ` , and the scalar
       product is ` x. ` , and the norm function is ` abs ` .  (Contributed by
       AV, 9-Oct-2021.) $)
    cnrnvc $p |- C e. NrmVec $=
      ( ccnfld cnrg wcel cdr cnvc cnnrg cndrng wa crglmod rlmnvc syl5eqel mp2an
      cfv ) CDEZCFEZAGEHIPQJACKOGBCLMN $.

    $( The set of complex numbers (as a subring of itself) is a normed
       subcomplex vector space.  The vector operation is ` + ` , and the scalar
       product is ` x. ` , and the norm function is ` abs ` .  (Contributed by
       Steve Rodriguez, 3-Dec-2006.)  (Revised by AV, 9-Oct-2021.) $)
    cnncvs $p |- C e. ( NrmVec i^i CVec ) $=
      ( cnvc ccvs cnrnvc cncvs elini ) ACDABEABFG $.

    $( The norm operation of the normed subcomplex vector space of complex
       numbers.  (Contributed by NM, 12-Jan-2008.)  (Revised by AV,
       9-Oct-2021.) $)
    cnnm $p |- ( norm ` C ) = abs $=
      ( ccnfld cnm cfv crglmod cabs rlmnm cnfldnm fveq2i 3eqtr4ri ) CDECFEZDEGA
      DECHIALDBJK $.
  $}

  ${
    ncvspds.n $e |- N = ( norm ` G ) $.
    ncvspds.x $e |- X = ( Base ` G ) $.
    ncvspds.p $e |- .+ = ( +g ` G ) $.
    ncvspds.d $e |- D = ( dist ` G ) $.
    ncvspds.s $e |- .x. = ( .s ` G ) $.
    $( Value of the distance function in terms of the norm of a normed
       subcomplex vector space.  Equation 1 of [Kreyszig] p. 59.  (Contributed
       by NM, 28-Nov-2006.)  (Revised by AV, 13-Oct-2021.) $)
    ncvspds $p |- ( ( G e. ( NrmVec i^i CVec ) /\ A e. X /\ B e. X ) ->
        ( A D B ) = ( N ` ( A .+ ( -u 1 .x. B ) ) ) ) $=
      ( cnvc ccvs wcel co cfv wceq eqid cin w3a csg c1 cneg cngp wa elin nvcnlm
      cnlm nlmngp syl adantr sylbi ngpds syl3an1 id cvsclm simplbiim clmvsubval
      cclm csca fveq2d eqtrd ) FNOUAPZAHPZBHPZUBZABCQZABFUCRZQZGRZAUDUEBEQDQZGR
      VEFUFPZVFVGVIVLSVEFNPZFOPZUGVNFNOUHZVOVNVPVOFUJPVNFUIFUKULUMUNABCFVJGHIJV
      JTZLUOUPVHVKVMGVEFVAPZVFVGVKVMSVEVOVPVSVQVPFVPUQURUSABDEFVBRZVJHFJKVRVTTM
      UTUPVCVD $.
  $}

  ${
    cnindmet.t $e |- T = ( CCfld toNrmGrp abs ) $.
    $( The metric induced on the complex numbers. ~ cnmet proves that it is a
       metric.  The induced metric is identical with the original metric on the
       complex numbers, see ~ cnfldds and also ~ cnmet .  (Contributed by Steve
       Rodriguez, 5-Dec-2006.)  (Revised by AV, 17-Oct-2021.) $)
    cnindmet $p |- ( dist ` T ) = ( abs o. - ) $=
      ( cabs cmin ccom ccnfld cabv wcel wceq absabv cnfldsub tngds ax-mp eqcomi
      cds cfv ) CDEZAOPZCFGPZHQRIJAFDCSBKLMN $.
  $}

  $( Derive the associative law for complex number addition ~ addass to
     demonstrate the use of the properties of a normed subcomplex vector space
     for the complex numbers.  (Contributed by NM, 12-Jan-2008.)  (Revised by
     AV, 9-Oct-2021.)  (Proof modification is discouraged.) $)
  cnncvsaddassdemo $p |- ( ( A e. CC /\ B e. CC /\ C e. CC )
                           -> ( ( A + B ) + C ) = ( A + ( B + C ) ) ) $=
    ( ccnfld cgrp wcel cc w3a caddc co wceq crg ringgrp ax-mp cnfldbas cnfldadd
    cnring grpass mpan ) DEFZAGFBGFCGFHABIJCIJABCIJIJKDLFTQDMNGIDABCOPRS $.

  $( Derive the associative law for complex number multiplication ~ mulass
     interpreted as scalar multiplication to demonstrate the use of the
     properties of a normed subcomplex vector space for the complex numbers.
     (Contributed by AV, 9-Oct-2021.)  (Proof modification is discouraged.) $)
  cnncvsmulassdemo $p |- ( ( A e. CC /\ B e. CC /\ C e. CC )
                     -> ( ( A x. B ) x. C ) = ( A x. ( B x. C ) ) ) $=
    ( ccnfld crglmod cfv cclm wcel cc cmul co wceq ccvs eqid cncvs ax-mp eqcomi
    w3a cbs cvv id cvsclm cnrbas csca cnfldex rlmsca cmulr cvsca cnfldmul eqtri
    rlmvsca cnfldbas clmvsass mpan ) DEFZGHZAIHBIHCIHRABJKCJKABCJKJKLUOMHZUPUOU
    ONZOUQUOUQUAUBPABJDIIUOCUOSFIUOURUCQDTHDUOUDFLUEDTUFPJDUGFUOUHFUIDUKUJDSFZI
    IUSULQQUMUN $.

  $( Derive the absolute value of a negative complex number ~ absneg to
     demonstrate the use of the properties of a normed subcomplex vector space
     for the complex numbers.  (Contributed by AV, 9-Oct-2021.)
     (Proof modification is discouraged.) $)
  cnncvsabsnegdemo $p |- ( A e. CC -> ( abs ` -u A ) = ( abs ` A ) ) $=
    ( cc wcel cneg cabs cfv ccnfld cminusg cnm wceq cnfldnm a1i cnfldneg eqcomd
    fveq12d cngp cnngp cnfldbas eqid nminv mpan eqcomi fveq1i 3eqtrd ) ABCZADZE
    FAGHFZFZGIFZFZAUIFZAEFZUEUFUHEUIEUIJUEKLUEUHUFAMNOGPCUEUJUKJQAGUGUIBRUISUGS
    TUAUKULJUEAUIEEUIKUBUCLUD $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subcomplex pre-Hilbert space
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CPreHil $. $( The class of subcomplex pre-Hilbert spaces. $)
  $c toCHil $. $( Add a norm on a Hilbert space. $)

  $( Extend class notation with a class of subcomplex pre-Hilbert spaces. $)
  ccph $a class CPreHil $.

  $( Function to put a norm on a Hilbert space. $)
  ctch $a class toCHil $.

  ${
    $d f k w F $.  $d f k w K $.  $d f k w N $.  $d f k w V $.  $d f k w x W $.
    $d f k w ., $.
    $( Define the class of subcomplex pre-Hilbert spaces.  By restricting the
       scalar field to a quadratically closed subfield of ` CCfld ` , we have
       enough structure to define a norm, with the associated connection to a
       metric and topology.  (Contributed by Mario Carneiro, 8-Oct-2015.) $)
    df-cph $a |- CPreHil = { w e. ( PreHil i^i NrmMod ) |
     [. ( Scalar ` w ) / f ]. [. ( Base ` f ) / k ]. ( f = ( CCfld |`s k ) /\
        ( sqrt " ( k i^i ( 0 [,) +oo ) ) ) C_ k /\ ( norm ` w )
           = ( x e. ( Base ` w ) |-> ( sqrt ` ( x ( .i ` w ) x ) ) ) ) } $.

    $( Define a function to augment a (pre-)Hilbert space with a norm.  No
       extra parameters are needed, but some conditions must be satisfied to
       ensure that this in fact creates a normed subcomplex pre-Hilbert space.
       (Contributed by Mario Carneiro, 7-Oct-2015.) $)
    df-tch $a |- toCHil = ( w e. _V |-> ( w toNrmGrp
      ( x e. ( Base ` w ) |-> ( sqrt ` ( x ( .i ` w ) x ) ) ) ) ) $.

    iscph.v $e |- V = ( Base ` W ) $.
    iscph.h $e |- ., = ( .i ` W ) $.
    iscph.n $e |- N = ( norm ` W ) $.
    iscph.f $e |- F = ( Scalar ` W ) $.
    iscph.k $e |- K = ( Base ` F ) $.
    $( A subcomplex pre-Hilbert space is a pre-Hilbert space over a
       quadratically closed subfield of the field of complex numbers, with a
       norm defined.  (Contributed by Mario Carneiro, 8-Oct-2015.) $)
    iscph $p |- ( W e. CPreHil <-> ( ( W e. PreHil /\ W e. NrmMod /\
      F = ( CCfld |`s K ) ) /\ ( sqrt " ( K i^i ( 0 [,) +oo ) ) ) C_ K /\
      N = ( x e. V |-> ( sqrt ` ( x ., x ) ) ) ) ) $=
      ( co wceq wa csqrt cfv cbs fveq2d syl6eqr vf vk cphl cnlm cin wcel ccnfld
      vw cress cc0 cpnf cico cima wss cv cmpt w3a ccph anbi1i df-3an bitr4i cnm
      elin cip wsbc csca fvexd simplr simpll eqtrd simpr oveq2d eqeq12d imaeq2d
      cvv ineq1d sseq12d mpteq12dv 3anbi123d 3anass syl6bb sbcied df-cph elrab2
      oveqd anass 3bitr4i ) GUCUDUEZUFZBUGDUIMZNZOZPDUJUKULMZUEZUMZDUNZEAFAUOZW
      QCMZPQZUPZNZOZOZGUCUFZGUDUFZWKUQZXBOGURUFZXFWPXAUQWLXFXBWLXDXEOZWKOXFWIXH
      WKGUCUDVCUSXDXEWKUTVAUSXGWIWKXBOZOXCUAUOZUGUBUOZUIMZNZPXKWMUEZUMZXKUNZUHU
      OZVBQZAXQRQZWQWQXQVDQZMZPQZUPZNZUQZUBXJRQZVEZUAXQVFQZVEXIUHGWHURXQGNZYGXI
      UAYHVOYIXQVFVGYIXJYHNZOZYEXIUBYFVOYKXJRVGYKXKYFNZOZYEWKWPXAUQXIYMXMWKXPWP
      YDXAYMXJBXLWJYMXJYHBYIYJYLVHYMYHGVFQBYMXQGVFYIYJYLVIZSKTVJZYMXKDUGUIYMXKY
      FDYKYLVKYMYFBRQDYMXJBRYOSLTVJZVLVMYMXOWOXKDYMXNWNPYMXKDWMYPVPVNYPVQYMXREY
      CWTYMXRGVBQEYMXQGVBYNSJTYMAXSYBFWSYMXSGRQFYMXQGRYNSHTYMYAWRPYMXTCWQWQYMXT
      GVDQCYMXQGVDYNSITWESVRVMVSWKWPXAVTWAWBWBAUHUAUBWCWDWIWKXBWFVAXFWPXAVTWG
      $.
  $}

  ${
    $d x W $.
    $( A subcomplex pre-Hilbert space is a pre-Hilbert space.  (Contributed by
       Mario Carneiro, 7-Oct-2015.) $)
    cphphl $p |- ( W e. CPreHil -> W e. PreHil ) $=
      ( vx ccph wcel cphl cnlm csca cfv ccnfld cbs cress co wceq w3a csqrt cpnf
      cc0 cico cin eqid cima wss cnm cv cip cmpt iscph simp1bi simp1d ) ACDZAED
      ZAFDZAGHZIUMJHZKLMZUJUKULUONOUNQPRLSUAUNUBAUCHZBAJHZBUDZURAUEHZLOHUFMBUMU
      SUNUPUQAUQTUSTUPTUMTUNTUGUHUI $.

    $( A subcomplex pre-Hilbert space is a normed module.  (Contributed by
       Mario Carneiro, 7-Oct-2015.) $)
    cphnlm $p |- ( W e. CPreHil -> W e. NrmMod ) $=
      ( vx ccph wcel cphl cnlm csca cfv ccnfld cbs cress co wceq w3a csqrt cpnf
      cc0 cico cin eqid cima wss cnm cv cip cmpt iscph simp1bi simp2d ) ACDZAED
      ZAFDZAGHZIUMJHZKLMZUJUKULUONOUNQPRLSUAUNUBAUCHZBAJHZBUDZURAUEHZLOHUFMBUMU
      SUNUPUQAUQTUSTUPTUMTUNTUGUHUI $.
  $}

  $( A subcomplex pre-Hilbert space is a normed group.  (Contributed by Mario
     Carneiro, 13-Oct-2015.) $)
  cphngp $p |- ( W e. CPreHil -> W e. NrmGrp ) $=
    ( ccph wcel cnlm cngp cphnlm nlmngp syl ) ABCADCAECAFAGH $.

  $( A subcomplex pre-Hilbert space is a left module.  (Contributed by Mario
     Carneiro, 7-Oct-2015.) $)
  cphlmod $p |- ( W e. CPreHil -> W e. LMod ) $=
    ( ccph wcel cnlm clmod cphnlm nlmlmod syl ) ABCADCAECAFAGH $.

  $( A subcomplex pre-Hilbert space is a left vector space.  (Contributed by
     Mario Carneiro, 7-Oct-2015.) $)
  cphlvec $p |- ( W e. CPreHil -> W e. LVec ) $=
    ( ccph wcel cphl clvec cphphl phllvec syl ) ABCADCAECAFAGH $.

  $( A subcomplex pre-Hilbert space is a normed vector space.  (Contributed by
     Mario Carneiro, 8-Oct-2015.) $)
  cphnvc $p |- ( W e. CPreHil -> W e. NrmVec ) $=
    ( ccph wcel cnlm clvec cnvc cphnlm cphlvec isnvc sylanbrc ) ABCADCAECAFCAGA
    HAIJ $.

  ${
    cphsubrglem.k $e |- K = ( Base ` F ) $.
    cphsubrglem.1 $e |- ( ph -> F = ( CCfld |`s A ) ) $.
    cphsubrglem.2 $e |- ( ph -> F e. DivRing ) $.
    $( Lemma for ~ cphsubrg .  (Contributed by Mario Carneiro, 9-Oct-2015.) $)
    cphsubrglem $p |- ( ph -> ( F = ( CCfld |`s K ) /\ K = ( A i^i CC ) /\
      K e. ( SubRing ` CCfld ) ) ) $=
      ( ccnfld co wceq cc cfv wcel cbs cvv crg syl eqid cc0 cmul cin csubrg c0g
      cress fveq2d wa drngring eqeltrrd ring0cl reldmress elbasov 3syl cnfldbas
      cdr simprd ressbas eqtr4d syl5eq oveq2d ressinbas wss c1 cnring ressbasss
      jctil syl6eqss syl5eqss cur wn wne drngunz csubg cgrp ringgrp mp1i issubg
      syl3anbrc cnfld0 subg0 neeqtrd neneqd c2 wo ringidcl sseldd sqvald oveq1d
      cexp eleqtrd cmulr fvex eqeltri cnfldmul ressmulr ringlidm syl2anc 3eqtrd
      ax-mp wb sq01 mpbid ord mpd jca cnfld1 issubrg sylanbrc 3jca ) ACHDUDIZJD
      BKUAZJDHUBLMZACHBUDIZXIFAXIHXJUDIZXLADXJHUDADCNLZXJEAXNXLNLZXJACXLNFUEZAB
      OMZXJXOJAHOMZXQAXLPMXLUCLZXOMXRXQUFACXLPFACUNMZCPMZGCUGQZUHXOXLXSXORZXSRU
      IXSXOXLUDHBUJXLRZYCUKULUOZBKXLOHYDUMUPQUQURZUSAXQXLXMJYEBKHOUMUTQUQUQZYFA
      HPMZXIPMZUFDKVAZVBDMZUFXKAYIYHACXIPYGYBUHZVCVEAYJYKADXNKEAXNXOKXPBKXLHYDU
      MVDVFVGZACVHLZVBDAYNSJZVIYNVBJZAYNSAYNCUCLZSAXTYNYQVJGCYNYQYQRYNRZVKQAYQX
      IUCLZSACXIUCYGUEADHVLLMZSYSJAHVMMZYJXIVMMZYTYHUUAAVCHVNVOYMAYIUUBYLXIVNQK
      DHUMVPVQDHXISXIRZVRVSQUQVTWAAYOYPAYNWBWHIZYNJZYOYPWCZAUUDYNYNTIXIVHLZYNTI
      ZYNAYNADKYNYMAYAYNDMYBDCYNEYRWDQZWEZWFAYNUUGYNTACXIVHYGUEWGAYIYNXINLZMUUH
      YNJYLAYNDUUKUUIADXNUUKEACXINYGUEURWIUUKXITUUGYNUUKRDOMTXIWJLJDXNOECNWKWLD
      HXITOUUCWMWNWRUUGRWOWPWQAYNKMUUEUUFWSUUJYNWTQXAXBXCUUIUHXDDKHVBUMXEXFXGXH
      $.

    $( Lemma for ~ cphreccl .  (Contributed by Mario Carneiro, 8-Oct-2015.) $)
    cphreccllem $p |- ( ( ph /\ X e. K /\ X =/= 0 ) -> ( 1 / X ) e. K ) $=
      ( wcel cc0 wne ccnfld cfv cc wceq 3ad2ant1 syl cui c0g eqid cinvr c1 cdiv
      w3a csubrg wss cress cin cphsubrglem simp3d cnfldbas subrgss simp2 sseldd
      co simp3 cnfldinv syl2anc cdif cnfld0 subrg0 simp1d fveq2d eqtr4d neeqtrd
      csn eldifsn sylanbrc cdr isdrng simprbi eqtr3d eleqtrd wb subrgunit mpbid
      crg eqeltrrd ) AEDIZEJKZUDZELUAMZMZUBEUCUOZDWAENIVTWCWDOWADNEWADLUEMIZDNU
      FAVSWEVTACLDUGUOZOZDBNUHOZWEABCDFGHUIZUJPZDNLUKULQAVSVTUMZUNAVSVTUPZEUQUR
      WAELRMZIZVSWCDIZWAEWFRMZIZWNVSWOUDZWAEDCSMZVFUSZWPWAVSEWSKEWTIWKWAEJWSWLW
      AJWFSMZWSWAWEJXAOWJDLWFJWFTZUTVAQWACWFSAVSWGVTAWGWHWEWIVBPZVCVDVEEDWSVGVH
      WACRMZWTWPWACVIIZXDWTOZAVSXEVTHPXECVQIXFDCXDWSFXDTWSTVJVKQWACWFRXCVCVLVMW
      AWEWQWRVNWJDLWFWMWBWPEXBWMTWPTWBTVOQVPUJVR $.
  $}

  ${
    $d x W $.
    cphsca.f $e |- F = ( Scalar ` W ) $.
    cphsca.k $e |- K = ( Base ` F ) $.
    $( A subcomplex pre-Hilbert space is a vector space over a subfield of
       ` CCfld ` .  (Contributed by Mario Carneiro, 8-Oct-2015.) $)
    cphsca $p |- ( W e. CPreHil -> F = ( CCfld |`s K ) ) $=
      ( vx ccph wcel cphl cnlm ccnfld cress co wceq w3a csqrt cc0 cpnf cfv eqid
      cico cin cima wss cnm cbs cv cip cmpt iscph simp1bi simp3d ) CGHZCIHZCJHZ
      AKBLMNZUMUNUOUPOPBQRUAMUBUCBUDCUESZFCUFSZFUGZUSCUHSZMPSUINFAUTBUQURCURTUT
      TUQTDEUJUKUL $.

    $( The scalar field of a subcomplex pre-Hilbert space is a subring of
       ` CCfld ` .  (Contributed by Mario Carneiro, 8-Oct-2015.) $)
    cphsubrg $p |- ( W e. CPreHil -> K e. ( SubRing ` CCfld ) ) $=
      ( ccph wcel ccnfld cress co wceq cin csubrg cfv cphsca clvec cdr lvecdrng
      cc cphlvec syl cphsubrglem simp3d ) CFGZAHBIJKBBSLKBHMNGUDBABEABCDEOUDCPG
      AQGCTACDRUAUBUC $.

    $( The scalar field of a subcomplex pre-Hilbert space is closed under
       reciprocal.  (Contributed by Mario Carneiro, 8-Oct-2015.) $)
    cphreccl $p |- ( ( W e. CPreHil /\ A e. K /\ A =/= 0 ) ->
      ( 1 / A ) e. K ) $=
      ( ccph wcel cphsca clvec cdr cphlvec lvecdrng syl cphreccllem ) DGHZCBCAF
      BCDEFIPDJHBKHDLBDEMNO $.

    $( The scalar field of a subcomplex pre-Hilbert space is closed under
       reciprocal.  (Contributed by Mario Carneiro, 11-Oct-2015.) $)
    cphdivcl $p |- ( ( W e. CPreHil /\ ( A e. K /\ B e. K /\ B =/= 0 ) ) ->
      ( A / B ) e. K ) $=
      ( ccph wcel cc0 wne w3a wa cdiv co c1 cmul cc ccnfld sseldd csubrg adantr
      cfv wss cphsubrg cnfldbas subrgss simpr1 simpr2 simpr3 cphreccl 3adant3r1
      syl divrecd cnfldmul subrgmcl syl3anc eqeltrd ) EHIZADIZBDIZBJKZLZMZABNOA
      PBNOZQOZDVDABVDDRAVDDSUAUCIZDRUDUSVGVCCDEFGUEUBZDRSUFUGUMZUSUTVAVBUHZTVDD
      RBVIUSUTVAVBUITUSUTVAVBUJUNVDVGUTVEDIZVFDIVHVJUSVAVBVKUTBCDEFGUKULDSQAVEU
      OUPUQUR $.

    $( The scalar field of a subcomplex pre-Hilbert space is closed under
       conjugation.  (Contributed by Mario Carneiro, 11-Oct-2015.) $)
    cphcjcl $p |- ( ( W e. CPreHil /\ A e. K ) -> ( * ` A ) e. K ) $=
      ( ccph wcel wa cstv cfv ccj wceq ccnfld cress co cphsca cvv cbs eqid fvex
      fveq2d eqeltri cnfldcj ressstarv ax-mp syl6eqr adantr fveq1d cphl phlsrng
      csr cphphl syl srngcl sylan eqeltrrd ) DGHZACHZIZABJKZKZALKCUTAVALURVALMU
      SURVANCOPZJKZLURBVCJBCDEFQUBCRHLVDMCBSKRFBSUAUCCNVCLRVCTUDUEUFUGUHUIURBUL
      HZUSVBCHURDUJHVEDUMBDEUKUNCBVAAVATFUOUPUQ $.

    $( The scalar field of a subcomplex pre-Hilbert space is closed under
       square roots of positive reals (i.e. it is quadratically closed relative
       to ` RR ` ).  (Contributed by Mario Carneiro, 8-Oct-2015.) $)
    cphsqrtcl $p |- ( ( W e. CPreHil /\ ( A e. K /\ A e. RR /\ 0 <_ A ) ) ->
      ( sqrt ` A ) e. K ) $=
      ( vx wcel cr cc0 cle w3a csqrt cfv co cc wss sstri wceq eqid wbr ccph cin
      cpnf cico cima simp1 wa elrege0 biimpri 3adant1 elind wfn sqrtf ffn ax-mp
      wf inss2 rge0ssre ax-resscn fnfvima mp3an12 syl cphl ccnfld cress cnm cbs
      cnlm cv cip cmpt iscph simp2bi sselda sylan2 ) ACHZAIHZJAKUAZLZDUBHZAMNZM
      CJUDUEOZUCZUFZHZWBCHVTAWDHZWFVTCWCAVQVRVSUGVRVSAWCHZVQWHVRVSUHAUIUJUKULMP
      UMZWDPQWGWFPPMUQWIUNPPMUOUPWDWCPCWCURWCIPUSUTRRPWDMAVAVBVCWAWECWBWADVDHDV
      IHBVECVFOSLWECQDVGNZGDVHNZGVJZWLDVKNZOMNVLSGBWMCWJWKDWKTWMTWJTEFVMVNVOVP
      $.

    $( The scalar field of a subcomplex pre-Hilbert space is closed under the
       absolute value operation.  (Contributed by Mario Carneiro,
       11-Oct-2015.) $)
    cphabscl $p |- ( ( W e. CPreHil /\ A e. K ) -> ( abs ` A ) e. K ) $=
      ( ccph wcel wa cabs cfv ccj cmul co csqrt cc wceq ccnfld csubrg syl simpl
      wss cphsubrg cnfldbas subrgss sselda absval cr cc0 cle wbr adantr cphcjcl
      cnfldmul subrgmcl syl3anc cjmulrcld cjmulge0d cphsqrtcl syl13anc eqeltrd
      simpr ) DGHZACHZIZAJKZAALKZMNZOKZCVEAPHVFVIQVCCPAVCCRSKHZCPUBBCDEFUCZCPRU
      DUETUFZAUGTVEVCVHCHZVHUHHUIVHUJUKVICHVCVDUAVEVJVDVGCHVMVCVJVDVKULVCVDVBAB
      CDEFUMCRMAVGUNUOUPVEAVLUQVEAVLURVHBCDEFUSUTVA $.

    $( The scalar field of a subcomplex pre-Hilbert space is closed under
       square roots of all numbers except possibly the negative reals.
       (Contributed by Mario Carneiro, 8-Oct-2015.) $)
    cphsqrtcl2 $p |- ( ( W e. CPreHil /\ A e. K /\ -. -u A e. RR+ ) ->
      ( sqrt ` A ) e. K ) $=
      ( wcel crp wn csqrt cfv cc0 wceq wne co cmul cc ccnfld syl2anc sseldd w3a
      ccph cneg wa sqrt0 fveq2 id 3eqtr4a adantl simpl2 eqeltrd cabs caddc cdiv
      csubrg wss simpl1 cphsubrg syl cnfldbas subrgss cr cle wbr abscld absge0d
      cphabscl cphsqrtcl syl13anc cnfldadd subrgacl syl3anc simpl3 cmin subnegd
      recnd eqeq1d negcld subeq0ad bitr3d absrpcl sylancom syl5ibcom sylbid mpd
      eleq1 necon3bd absne0d cphdivcl cnfldmul subrgmcl c2 cexp cre ci sqreulem
      wnel eqid simp1d simp2d simp3d df-nel sylib eqsqrtd eqeltrrd pm2.61dane )
      DUBGZACGZAUCZHGZIZUAZAJKZCGALXLALMZUDXMACXNXMAMXLXNLJKLXMAUEALJUFXNUGUHUI
      XGXHXKXNUJUKXLALNZUDZAULKZJKZXQAUMOZXSULKZUNOZPOZXMCXPYBAXPCQYBXPCRUOKGZC
      QUPXPXGYCXGXHXKXOUQZBCDEFURUSZCQRUTVAUSZXPYCXRCGZYACGZYBCGYEXPXGXQCGZXQVB
      GLXQVCVDYGYDXPXGXHYIYDXGXHXKXOUJZABCDEFVGSZXPAXPCQAYFYJTZVEZXPAYLVFXQBCDE
      FVHVIXPXGXSCGZXTCGZXTLNYHYDXPYCYIXHYNYEYKYJCUMRXQAVJVKVLZXPXGYNYOYDYPXSBC
      DEFVGSXPXSXPCQXSYFYPTXPXKXSLNZXGXHXKXOVMXPXJXSLXPXSLMZXQXIMZXJXPXQXIVNOZL
      MYRYSXPYTXSLXPXQAXPXQYMVPZYLVOVQXPXQXIUUAXPAYLVRVSVTXPXQHGZYSXJXLXOAQGZUU
      BYLAWAWBXQXIHWFWCWDWGWEZWHXSXTBCDEFWIVICRPXRYAWJWKVLZTYLXPYBWLWMOAMZLYBWN
      KVCVDZWOYBPOZHWQZXPUUCYQUUFUUGUUIUAYLUUDAYBYBWRWPSZWSXPUUFUUGUUIUUJWTXPUU
      IUUHHGIXPUUFUUGUUIUUJXAUUHHXBXCXDUUEXEXF $.

    $( If the scalar field contains ` _i ` , it is completely closed under
       square roots (i.e. it is quadratically closed).  (Contributed by Mario
       Carneiro, 11-Oct-2015.) $)
    cphsqrtcl3 $p |- ( ( W e. CPreHil /\ _i e. K /\ A e. K ) ->
      ( sqrt ` A ) e. K ) $=
      ( ccph wcel ci w3a cneg crp csqrt cfv wa cmul cc ccnfld syl adantl csubrg
      co wss simpl1 cphsubrg cnfldbas subrgss simpl3 sseldd negnegd fveq2d rpre
      cc0 cle wbr rpge0 sqrtnegd eqtr3d simpl2 cminusg cnfldneg csubg subrgsubg
      wceq eqid subginvcl syl2anc eqeltrrd cphsqrtcl syl13anc cnfldmul subrgmcl
      cr syl3anc eqeltrd ex wn wi cphsqrtcl2 3expia 3adant2 pm2.61d ) DGHZICHZA
      CHZJZAKZLHZAMNZCHZWFWHWJWFWHOZWIIWGMNZPUBZCWKWGKZMNWIWMWKWNAMWKAWKCQAWKCR
      UANHZCQUCWKWCWOWCWDWEWHUDZBCDEFUESZCQRUFUGSWCWDWEWHUHZUIZUJUKWKWGWHWGVMHZ
      WFWGULTZWHUMWGUNUOZWFWGUPTZUQURWKWOWDWLCHZWMCHWQWCWDWEWHUSWKWCWGCHWTXBXDW
      PWKARUTNZNZWGCWKAQHXFWGVDWSAVASWKCRVBNHZWEXFCHWKWOXGWQCRVCSWRCRXEAXEVEVFV
      GVHXAXCWGBCDEFVIVJCRPIWLVKVLVNVOVPWCWEWHVQZWJVRWDWCWEXHWJABCDEFVSVTWAWB
      $.

    $( The scalar field of a subcomplex pre-Hilbert space contains all rational
       numbers.  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    cphqss $p |- ( W e. CPreHil -> QQ C_ K ) $=
      ( ccph wcel ccnfld csubrg cfv cress co cdr cq wss cphsubrg cphsca cphlvec
      clvec lvecdrng syl eqeltrrd qsssubdrg syl2anc ) CFGZBHIJGHBKLZMGNBOABCDEP
      UEAUFMABCDEQUECSGAMGCRACDTUAUBBUCUD $.
  $}

  $( A subcomplex pre-Hilbert space is a subcomplex module.  (Contributed by
     Mario Carneiro, 16-Oct-2015.) $)
  cphclm $p |- ( W e. CPreHil -> W e. CMod ) $=
    ( ccph wcel clmod csca cfv ccnfld cbs cress wceq csubrg cclm cphlmod cphsca
    co eqid cphsubrg isclm syl3anbrc ) ABCADCAEFZGTHFZIOJUAGKFCALCAMTUAATPZUAPZ
    NTUAAUBUCQTUAAUBUCRS $.

  ${
    cphnmvs.v $e |- V = ( Base ` W ) $.
    cphnmvs.n $e |- N = ( norm ` W ) $.
    cphnmvs.s $e |- .x. = ( .s ` W ) $.
    cphnmvs.f $e |- F = ( Scalar ` W ) $.
    cphnmvs.k $e |- K = ( Base ` F ) $.
    $( Norm of a scalar product.  (Contributed by Mario Carneiro,
       16-Oct-2015.) $)
    cphnmvs $p |- ( ( W e. CPreHil /\ X e. K /\ Y e. V ) ->
      ( N ` ( X .x. Y ) ) = ( ( abs ` X ) x. ( N ` Y ) ) ) $=
      ( ccph wcel w3a co cfv cmul wceq cnm cabs cnlm cphnlm eqid syl3an1 cphclm
      nmvs cclm clmabs sylan 3adant3 oveq1d eqtr4d ) FNOZGCOZHEOZPZGHAQDRZGBUAR
      ZRZHDRZSQZGUBRZVBSQUOFUCOUPUQUSVCTFUDUTABCDEFGHIJKLMUTUEUHUFURVDVAVBSUOUP
      VDVATZUQUOFUIOUPVEFUGGBCFLMUJUKULUMUN $.
  $}

  ${
    $d x A $.  $d x ., $.  $d x K $.  $d x V $.  $d x W $.
    nmsq.v $e |- V = ( Base ` W ) $.
    nmsq.h $e |- ., = ( .i ` W ) $.
    $( An inner product is a member of the complex numbers.  (Contributed by
       Mario Carneiro, 13-Oct-2015.) $)
    cphipcl $p |- ( ( W e. CPreHil /\ A e. V /\ B e. V ) ->
      ( A ., B ) e. CC ) $=
      ( ccph wcel w3a csca cfv cbs cc co wss ccnfld csubrg eqid cphsubrg cphphl
      cnfldbas subrgss syl 3ad2ant1 cphl ipcl syl3an1 sseldd ) EHIZADIZBDIZJEKL
      ZMLZNABCOZUJUKUNNPZULUJUNQRLIUPUMUNEUMSZUNSZTUNNQUBUCUDUEUJEUFIUKULUOUNIE
      UAABUMCUNDEUQGFURUGUHUI $.

    nmsq.n $e |- N = ( norm ` W ) $.
    $( The value of the norm in a subcomplex pre-Hilbert space is the square
       root of the inner product of a vector with itself.  (Contributed by
       Mario Carneiro, 7-Oct-2015.) $)
    cphnmfval $p |- ( W e. CPreHil ->
        N = ( x e. V |-> ( sqrt ` ( x ., x ) ) ) ) $=
      ( ccph wcel cphl cnlm csca cfv ccnfld cbs co wceq csqrt eqid w3a cc0 cpnf
      cress cico cin cima wss cv cmpt iscph simp3bi ) EIJEKJELJEMNZOUMPNZUDQRUA
      SUNUBUCUEQUFUGUNUHCADAUIZUOBQSNUJRAUMBUNCDEFGHUMTUNTUKUL $.

    $( The square of the norm is the norm of an inner product in a subcomplex
       pre-Hilbert space.  (Contributed by Mario Carneiro, 7-Oct-2015.) $)
    cphnm $p |- ( ( W e. CPreHil /\ A e. V ) ->
        ( N ` A ) = ( sqrt ` ( A ., A ) ) ) $=
      ( vx ccph wcel cfv cv co csqrt cmpt cphnmfval fveq1d wceq oveq12 sylan9eq
      anidms fveq2d eqid fvex fvmpt ) EJKZADKACLAIDIMZUHBNZOLZPZLAABNZOLZUGACUK
      IBCDEFGHQRIAUJUMDUKUHASZUIULOUNUIULSUHAUHABTUBUCUKUDULOUEUFUA $.

    $( The square of the norm is the norm of an inner product in a subcomplex
       pre-Hilbert space.  Equation I4 of [Ponnusamy] p. 362.  (Contributed by
       NM, 1-Feb-2007.)  (Revised by Mario Carneiro, 7-Oct-2015.) $)
    nmsq $p |- ( ( W e. CPreHil /\ A e. V ) ->
      ( ( N ` A ) ^ 2 ) = ( A ., A ) ) $=
      ( ccph wcel wa cfv c2 cexp co csqrt cphnm oveq1d cc cphipcl sqsqrtd eqtrd
      3anidm23 ) EIJZADJZKZACLZMNOAABOZPLZMNOUHUFUGUIMNABCDEFGHQRUFUHUDUEUHSJAA
      BDEFGTUCUAUB $.

    cphnmcl.f $e |- F = ( Scalar ` W ) $.
    cphnmcl.k $e |- K = ( Base ` F ) $.
    $( The norm of a vector is a member of the scalar field in a subcomplex
       pre-Hilbert space.  (Contributed by Mario Carneiro, 9-Oct-2015.) $)
    cphnmf $p |- ( W e. CPreHil -> N : V --> K ) $=
      ( vx ccph wcel wf co cfv cr cc0 cle cv csqrt cmpt wbr simpl cphphl adantr
      wa cphl simpr ipcl syl3anc c2 cexp nmsq cngp cphngp nmcl resqcld eqeltrrd
      sylan sqge0d breqtrd cphsqrtcl syl13anc eqid fmptd cphnmfval feq1d mpbird
      ) FMNZECDOECLELUAZVLBPZUBQZUCZOVKLEVNCVOVKVLENZUHZVKVMCNZVMRNSVMTUDVNCNVK
      VPUEVQFUINZVPVPVRVKVSVPFUFUGVKVPUJZVTVLVLABCEFJHGKUKULVQVLDQZUMUNPZVMRVLB
      DEFGHIUOZVQWAVKFUPNVPWARNFUQVLFDEGIURVAZUSUTVQSWBVMTVQWAWDVBWCVCVMACFJKVD
      VEVOVFVGVKECDVOLBDEFGHIVHVIVJ $.

    $( The norm of a vector is a member of the scalar field in a subcomplex
       pre-Hilbert space.  (Contributed by Mario Carneiro, 9-Oct-2015.) $)
    cphnmcl $p |- ( ( W e. CPreHil /\ A e. V ) -> ( N ` A ) e. K ) $=
      ( ccph wcel cphnmf ffvelrnda ) GMNFDAEBCDEFGHIJKLOP $.
  $}

  ${
    reipcl.v $e |- V = ( Base ` W ) $.
    reipcl.h $e |- ., = ( .i ` W ) $.
    $( An inner product of an element with itself is real.  (Contributed by
       Mario Carneiro, 7-Oct-2015.) $)
    reipcl $p |- ( ( W e. CPreHil /\ A e. V ) -> ( A ., A ) e. RR ) $=
      ( ccph wcel wa cnm cfv c2 cexp co cr eqid nmsq cngp cphngp nmcl eqeltrrd
      sylan resqcld ) DGHZACHZIZADJKZKZLMNAABNOABUGCDEFUGPZQUFUHUDDRHUEUHOHDSAD
      UGCEUITUBUCUA $.

    $( The inner product in a subcomplex pre-Hilbert space is positive
       definite.  (Contributed by Mario Carneiro, 7-Oct-2015.) $)
    ipge0 $p |- ( ( W e. CPreHil /\ A e. V ) -> 0 <_ ( A ., A ) ) $=
      ( ccph wcel wa cc0 cnm cfv c2 cexp co cle cngp cr cphngp eqid nmcl sqge0d
      sylan nmsq breqtrd ) DGHZACHZIZJADKLZLZMNOAABOPUHUJUFDQHUGUJRHDSADUICEUIT
      ZUAUCUBABUICDEFUKUDUE $.
  $}

  ${
    cphipcj.h $e |- ., = ( .i ` W ) $.
    cphipcj.v $e |- V = ( Base ` W ) $.
    ${
      $( Conjugate of an inner product in a subcomplex pre-Hilbert space.
         Complex version of ~ ipcj .  (Contributed by Mario Carneiro,
         16-Oct-2015.) $)
      cphipcj $p |- ( ( W e. CPreHil /\ A e. V /\ B e. V ) ->
        ( * ` ( A ., B ) ) = ( B ., A ) ) $=
        ( ccph wcel w3a co ccj cfv csca cstv wceq cclm cphclm eqid clmcj fveq1d
        syl 3ad2ant1 cphl cphphl ipcj syl3an1 eqtrd ) EHIZADIZBDIZJZABCKZLMUMEN
        MZOMZMZBACKZULUMLUOUIUJLUOPZUKUIEQIURERUNEUNSZTUBUCUAUIEUDIUJUKUPUQPEUE
        ABUNCUODEUSFGUOSUFUGUH $.
    $}

    $( An inner product times its conjugate.  (Contributed by NM, 23-Nov-2007.)
       (Revised by AV, 19-Oct-2021.) $)
    cphipipcj $p |- ( ( W e. CPreHil /\ A e. V /\ B e. V ) ->
        ( ( A ., B ) x. ( B ., A ) ) = ( ( abs ` ( A ., B ) ) ^ 2 ) ) $=
      ( ccph wcel w3a co cabs cfv c2 cexp ccj cmul csqrt cc wceq cphipcl absval
      syl oveq1d cjcld mulcld sqsqrtd cphipcj oveq2d 3eqtrrd ) EHIADIBDIJZABCKZ
      LMZNOKULULPMZQKZRMZNOKUOULBACKZQKUKUMUPNOUKULSIUMUPTABCDEGFUAZULUBUCUDUKU
      OUKULUNURUKULURUEUFUGUKUNUQULQABCDEFGUHUIUJ $.

    ${
      $( Orthogonality (meaning inner product is 0) is commutative.  Complex
         version of ~ iporthcom .  (Contributed by Mario Carneiro,
         16-Oct-2015.) $)
      cphorthcom $p |- ( ( W e. CPreHil /\ A e. V /\ B e. V ) ->
        ( ( A ., B ) = 0 <-> ( B ., A ) = 0 ) ) $=
        ( ccph wcel w3a co csca cfv c0g wceq cc0 cphl wb eqid eqeq2d cphphl syl
        iporthcom syl3an1 cclm cphclm clm0 3ad2ant1 3bitr4d ) EHIZADIZBDIZJZABC
        KZELMZNMZOZBACKZUPOZUNPOURPOUJEQIUKULUQUSREUAABUOCDEUPUOSZFGUPSUCUDUMPU
        PUNUJUKPUPOZULUJEUEIVAEUFUOEUTUGUBUHZTUMPUPURVBTUI $.

      cphip0l.z $e |- .0. = ( 0g ` W ) $.
      $( Inner product with a zero first argument.  Part of proof of Theorem
         6.44 of [Ponnusamy] p. 361.  Complex version of ~ ip0l .  (Contributed
         by Mario Carneiro, 16-Oct-2015.) $)
      cphip0l $p |- ( ( W e. CPreHil /\ A e. V ) -> ( .0. ., A ) = 0 ) $=
        ( ccph wcel wa co csca cfv c0g cc0 cphl wceq cphphl eqid ip0l cclm clm0
        sylan cphclm syl adantr eqtr4d ) DIJZACJZKEABLZDMNZONZPUIDQJUJUKUMRDSAU
        LBCDEUMULTZFGUMTHUAUDUIPUMRZUJUIDUBJUODUEULDUNUCUFUGUH $.

      $( Inner product with a zero second argument.  Complex version of
         ~ ip0r .  (Contributed by Mario Carneiro, 16-Oct-2015.) $)
      cphip0r $p |- ( ( W e. CPreHil /\ A e. V ) -> ( A ., .0. ) = 0 ) $=
        ( ccph wcel wa co csca cfv c0g cc0 cphl wceq cphphl eqid ip0r cclm clm0
        sylan cphclm syl adantr eqtr4d ) DIJZACJZKAEBLZDMNZONZPUIDQJUJUKUMRDSAU
        LBCDEUMULTZFGUMTHUAUDUIPUMRZUJUIDUBJUODUEULDUNUCUFUGUH $.

      $( The inner product of a vector with itself is zero iff the vector is
         zero.  Part of Definition 3.1-1 of [Kreyszig] p. 129.  Complex version
         of ~ ipeq0 .  (Contributed by Mario Carneiro, 16-Oct-2015.) $)
      cphipeq0 $p |- ( ( W e. CPreHil /\ A e. V ) ->
        ( ( A ., A ) = 0 <-> A = .0. ) ) $=
        ( ccph wcel wa co cc0 wceq csca cfv c0g cclm cphclm eqid clm0 adantr wb
        syl eqeq2d cphl cphphl ipeq0 sylan bitrd ) DIJZACJZKZAABLZMNUNDOPZQPZNZ
        AENZUMMUPUNUKMUPNZULUKDRJUSDSUODUOTZUAUDUBUEUKDUFJULUQURUCDUGAUOBCDEUPU
        TFGUPTHUHUIUJ $.
    $}

    ${
      cphdir.P $e |- .+ = ( +g ` W ) $.
      $( Distributive law for inner product (right-distributivity).  Equation
         I3 of [Ponnusamy] p. 362.  Complex version of ~ ipdir .  (Contributed
         by Mario Carneiro, 16-Oct-2015.) $)
      cphdir $p |- ( ( W e. CPreHil /\ ( A e. V /\ B e. V /\ C e. V ) ) ->
        ( ( A .+ B ) ., C ) = ( ( A ., C ) + ( B ., C ) ) ) $=
        ( ccph wcel w3a wa co csca cfv caddc wceq eqid cplusg cphl cphphl ipdir
        sylan cclm cphclm clmadd syl adantr oveqd eqtr4d ) GKLZAFLBFLCFLMZNZABD
        OCEOZACEOZBCEOZGPQZUAQZOZUQURROUMGUBLUNUPVASGUCABCDUTUSEFGUSTZHIJUTTUDU
        EUORUTUQURUMRUTSZUNUMGUFLVCGUGUSGVBUHUIUJUKUL $.

      $( Distributive law for inner product (left-distributivity).  Complex
         version of ~ ipdi .  (Contributed by Mario Carneiro, 16-Oct-2015.) $)
      cphdi $p |- ( ( W e. CPreHil /\ ( A e. V /\ B e. V /\ C e. V ) ) ->
        ( A ., ( B .+ C ) ) = ( ( A ., B ) + ( A ., C ) ) ) $=
        ( ccph wcel w3a wa co csca cfv caddc wceq eqid cplusg cphl cphphl sylan
        ipdi cclm cphclm clmadd syl adantr oveqd eqtr4d ) GKLZAFLBFLCFLMZNZABCD
        OEOZABEOZACEOZGPQZUAQZOZUQURROUMGUBLUNUPVASGUCABCDUTUSEFGUSTZHIJUTTUEUD
        UORUTUQURUMRUTSZUNUMGUFLVCGUGUSGVBUHUIUJUKUL $.

      cph2di.1 $e |- ( ph -> W e. CPreHil ) $.
      cph2di.2 $e |- ( ph -> A e. V ) $.
      cph2di.3 $e |- ( ph -> B e. V ) $.
      cph2di.4 $e |- ( ph -> C e. V ) $.
      cph2di.5 $e |- ( ph -> D e. V ) $.
      $( Distributive law for inner product.  Complex version of ~ ip2di .
         (Contributed by Mario Carneiro, 16-Oct-2015.) $)
      cph2di $p |- ( ph -> ( ( A .+ B ) ., ( C .+ D ) ) =
        ( ( ( A ., C ) + ( B ., D ) ) + ( ( A ., D ) + ( B ., C ) ) ) ) $=
        ( co caddc wcel csca cfv cplusg eqid ccph cphl cphphl ip2di cclm cphclm
        syl wceq clmadd 3syl oveqd oveq123d eqtr4d ) ABCFRDEFRGRBDGRZCEGRZIUAUB
        ZUCUBZRZBEGRZCDGRZVARZVARURUSSRZVCVDSRZSRABCDEFVAUTGHIUTUDZJKLVAUDAIUET
        ZIUFTMIUGUKNOPQUHAVFVBVGVESVAAVIIUITSVAULMIUJUTIVHUMUNZASVAURUSVJUOASVA
        VCVDVJUOUPUQ $.
    $}

    ${
      cphsubdir.m $e |- .- = ( -g ` W ) $.
      $( Distributive law for inner product subtraction.  Complex version of
         ~ ipsubdir .  (Contributed by Mario Carneiro, 16-Oct-2015.) $)
      cphsubdir $p |- ( ( W e. CPreHil /\ ( A e. V /\ B e. V /\ C e. V ) ) ->
        ( ( A .- B ) ., C ) = ( ( A ., C ) - ( B ., C ) ) ) $=
        ( ccph wcel w3a co cfv wceq eqid adantr ipcl syl3anc csca csg cmin cphl
        wa cphphl ipsubdir sylan cclm cphclm simpr1 simpr3 simpr2 clmsub eqtr4d
        cbs ) GKLZAFLZBFLZCFLZMZUEZABENCDNZACDNZBCDNZGUAOZUBOZNZVDVEUCNZUQGUDLZ
        VAVCVHPGUFZABCVGVFDEFGVFQZHIJVGQUGUHVBGUILZVDVFUPOZLZVEVNLZVIVHPUQVMVAG
        UJRVBVJURUTVOUQVJVAVKRZUQURUSUTUKUQURUSUTULZACVFDVNFGVLHIVNQZSTVBVJUSUT
        VPVQUQURUSUTUMVRBCVFDVNFGVLHIVSSTVDVEVFVNGVLVSUNTUO $.

      $( Distributive law for inner product subtraction.  Complex version of
         ~ ipsubdi .  (Contributed by Mario Carneiro, 16-Oct-2015.) $)
      cphsubdi $p |- ( ( W e. CPreHil /\ ( A e. V /\ B e. V /\ C e. V ) ) ->
        ( A ., ( B .- C ) ) = ( ( A ., B ) - ( A ., C ) ) ) $=
        ( ccph wcel w3a co cfv wceq eqid adantr ipcl syl3anc csca csg cmin cphl
        cphphl ipsubdi sylan cclm cbs cphclm simpr1 simpr2 simpr3 clmsub eqtr4d
        wa ) GKLZAFLZBFLZCFLZMZUPZABCENDNZABDNZACDNZGUAOZUBOZNZVDVEUCNZUQGUDLZV
        AVCVHPGUEZABCVGVFDEFGVFQZHIJVGQUFUGVBGUHLZVDVFUIOZLZVEVNLZVIVHPUQVMVAGU
        JRVBVJURUSVOUQVJVAVKRZUQURUSUTUKZUQURUSUTULABVFDVNFGVLHIVNQZSTVBVJURUTV
        PVQVRUQURUSUTUMACVFDVNFGVLHIVSSTVDVEVFVNGVLVSUNTUO $.

      cph2subdi.1 $e |- ( ph -> W e. CPreHil ) $.
      cph2subdi.2 $e |- ( ph -> A e. V ) $.
      cph2subdi.3 $e |- ( ph -> B e. V ) $.
      cph2subdi.4 $e |- ( ph -> C e. V ) $.
      cph2subdi.5 $e |- ( ph -> D e. V ) $.
      $( Distributive law for inner product subtraction.  Complex version of
         ~ ip2subdi .  (Contributed by Mario Carneiro, 16-Oct-2015.) $)
      cph2subdi $p |- ( ph -> ( ( A .- B ) ., ( C .- D ) ) =
        ( ( ( A ., C ) + ( B ., D ) ) - ( ( A ., D ) + ( B ., C ) ) ) ) $=
        ( co wcel syl3anc caddc csca cfv cplusg cmin cclm wceq ccph cphclm eqid
        csg syl clmadd oveqd oveq12d cbs cphphl clmacl clmsub ip2subdi 3eqtr4rd
        cphl ipcl ) ABDFRZCEFRZUARZBEFRZCDFRZUARZIUBUCZUKUCZRZVDVEVJUDUCZRZVGVH
        VMRZVKRVFVIUERZBCGRDEGRFRAVFVNVIVOVKAUAVMVDVEAIUFSZUAVMUGAIUHSZVQMIUIUL
        ZVJIVJUJZUMULZUNAUAVMVGVHWAUNUOAVQVFVJUPUCZSZVIWBSZVPVLUGVSAVQVDWBSZVEW
        BSZWCVSAIVBSZBHSZDHSZWEAVRWGMIUQULZNPBDVJFWBHIVTJKWBUJZVCTAWGCHSZEHSZWF
        WJOQCEVJFWBHIVTJKWKVCTVJWBIVDVEVTWKURTAVQVGWBSZVHWBSZWDVSAWGWHWMWNWJNQB
        EVJFWBHIVTJKWKVCTAWGWLWIWOWJOPCDVJFWBHIVTJKWKVCTVJWBIVGVHVTWKURTVFVIVJW
        BIVTWKUSTABCDEVMVKVJFGHIVTJKLVKUJVMUJWJNOPQUTVA $.
    $}

    cphass.f $e |- F = ( Scalar ` W ) $.
    cphass.k $e |- K = ( Base ` F ) $.
    cphass.s $e |- .x. = ( .s ` W ) $.
    $( Associative law for inner product.  Equation I2 of [Ponnusamy] p. 363.
       See ~ ipass , ~ his5 .  (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    cphass $p |- ( ( W e. CPreHil /\ ( A e. K /\ B e. V /\ C e. V ) ) ->
      ( ( A .x. B ) ., C ) = ( A x. ( B ., C ) ) ) $=
      ( ccph wcel w3a co cmul wceq wa cmulr cphl cphphl eqid ipass sylan cphclm
      cfv cclm clmmul syl adantr oveqd eqtr4d ) IOPZAGPBHPCHPQZUAZABDRCFRZABCFR
      ZEUBUIZRZAUTSRUPIUCPUQUSVBTIUDABCDVAEFGHILJKMNVAUEUFUGURSVAAUTUPSVATZUQUP
      IUJPVCIUHEILUKULUMUNUO $.

    $( "Associative" law for second argument of inner product (compare
       ~ cphass ).  See ~ ipassr , his52 .  (Contributed by Mario Carneiro,
       16-Oct-2015.) $)
    cphassr $p |- ( ( W e. CPreHil /\ ( A e. K /\ B e. V /\ C e. V ) ) ->
      ( B ., ( A .x. C ) ) = ( ( * ` A ) x. ( B ., C ) ) ) $=
      ( wcel co ccj cfv cmul wceq ccph w3a cstv cmulr cclm cphclm adantr clmmul
      wa syl eqidd clmcj fveq1d oveq123d cc clmsscn simpr1 sseldd cjcld cphipcl
      3adant3r1 mulcomd cphl cphphl 3anrot biimpi eqid ipassr syl2an 3eqtr4rd
      wss ) IUAOZAGOZBHOZCHOZUBZUIZBCFPZAQRZSPVRAEUCRZRZEUDRZPZVSVRSPBACDPFPZVQ
      VRVRVSWASWBVQIUEOZSWBTVLWEVPIUFUGZEILUHUJVQVRUKVQAQVTVQWEQVTTWFEILULUJUMU
      NVQVSVRVQAVQGUOAVQWEGUOVKWFEGILMUPUJVLVMVNVOUQURUSVLVNVOVRUOOVMBCFHIKJUTV
      AVBVLIVCOVNVOVMUBZWDWCTVPIVDVPWGVMVNVOVEVFBCADWBEFVTGHILJKMNWBVGVTVGVHVIV
      J $.

    $( Move scalar multiplication to outside of inner product.  See ~ his35 .
       (Contributed by Mario Carneiro, 17-Oct-2015.) $)
    cph2ass $p |- ( ( W e. CPreHil /\
       ( A e. K /\ B e. K ) /\ ( C e. V /\ D e. V ) ) ->
     ( ( A .x. C ) ., ( B .x. D ) ) = ( ( A x. ( * ` B ) ) x. ( C ., D ) ) ) $=
      ( wcel wa co cmul cc ccph w3a ccj wceq simp1 simp2r simp3l simp3r cphassr
      cfv syl13anc oveq2d simp2l clmod cphlmod 3ad2ant1 lmodvscl syl3anc cphass
      wss cphclm clmsscn syl sseldd cjcld cphipcl 3expb 3adant2 mulassd 3eqtr4d
      cclm ) JUAPZAHPZBHPZQZCIPZDIPZQZUBZACBDERZGRZSRZABUCUJZCDGRZSRZSRACERVTGR
      ZAWCSRWDSRVSWAWEASVSVLVNVPVQWAWEUDVLVOVRUEZVLVMVNVRUFZVLVOVPVQUGZVLVOVPVQ
      UHZBCDEFGHIJKLMNOUIUKULVSVLVMVPVTIPZWFWBUDWGVLVMVNVRUMZWIVSJUNPZVNVQWKVLV
      OWMVRJUOUPWHWJBEFHIJDLMONUQURACVTEFGHIJKLMNOUSUKVSAWCWDVSHTAVSJVKPZHTUTVL
      VOWNVRJVAUPFHJMNVBVCZWLVDVSBVSHTBWOWHVDVEVLVRWDTPZVOVLVPVQWPCDGIJLKVFVGVH
      VIVJ $.
  $}

  ${
    cphassi.x $e |- X = ( Base ` W ) $.
    cphassi.s $e |- .x. = ( .s ` W ) $.
    cphassi.i $e |- ., = ( .i ` W ) $.
    cphassi.f $e |- F = ( Scalar ` W ) $.
    cphassi.k $e |- K = ( Base ` F ) $.
    $( Associative law for the first argument of an inner product with scalar
       ` _ i ` .  (Contributed by AV, 17-Oct-2021.) $)
    cphassi $p |- ( ( ( W e. CPreHil /\ _i e. K ) /\ A e. X /\ B e. X )
                        -> ( ( _i .x. B ) ., A ) = ( _i x. ( B ., A ) ) ) $=
      ( ccph wcel ci wa w3a co cmul simp1l simp1r simp3 simp2 cphass syl13anc
      wceq ) GNOZPFOZQZAHOZBHOZRUHUIULUKPBCSAESPBAESTSUGUHUIUKULUAUHUIUKULUBUJU
      KULUCUJUKULUDPBACDEFHGKILMJUEUF $.

    $( "Associative" law for the second argument of an inner product with
       scalar ` _ i ` .  (Contributed by AV, 17-Oct-2021.) $)
    cphassir $p |- ( ( ( W e. CPreHil /\ _i e. K ) /\ A e. X /\ B e. X )
                        -> ( A ., ( _i .x. B ) ) = ( -u _i x. ( A ., B ) ) ) $=
      ( ccph wcel ci wa w3a co cmul ccj cfv cneg wceq simp1l simp1r simp2 simp3
      cphassr syl13anc cji oveq1i syl6eq ) GNOZPFOZQZAHOZBHOZRZAPBCSESZPUAUBZAB
      ESZTSZPUCZVBTSUSUNUOUQURUTVCUDUNUOUQURUEUNUOUQURUFUPUQURUGUPUQURUHPABCDEF
      HGKILMJUIUJVAVDVBTUKULUM $.
  $}

  ${
    $d x V $.
    tchex.v $e |- V = ( Base ` W ) $.
    $( Lemma for ~ tchbas and similar theorems.  (Contributed by Mario
       Carneiro, 7-Oct-2015.) $)
    tchex $p |- ( x e. V |-> ( sqrt ` ( x ., x ) ) ) e. _V $=
      ( csqrt crn c0 csn cun cv co cfv cmpt wf cvv wcel eqid cbs cc fvrn0 fmpti
      a1i fvex eqeltri cnex wss sqrtf frn ax-mp ssexi p0ex unex fex2 mp3an ) CF
      GZHIZJZACAKZUSBLZFMZNZOCPQURPQVBPQACURVAVBVBRVAURQUSCQFUTUAUCUBCDSMPEDSUD
      UEUPUQUPTUFTTFOUPTUGUHTTFUIUJUKULUMCURVBPPUNUO $.
  $}

  ${
    $d x .- $.  $d w x y z ., $.  $d x y z F $.  $d x y z G $.  $d w x y z V $.
    $d x C $.  $d x y z ph $.  $d w x y z W $.  $d x .x. $.  $d x X $.
    $d x Y $.
    tchval.n $e |- G = ( toCHil ` W ) $.
    ${
      tchval.v $e |- V = ( Base ` W ) $.
      tchval.h $e |- ., = ( .i ` W ) $.
      $( Define a function to augment a subcomplex pre-Hilbert space with norm.
         (Contributed by Mario Carneiro, 7-Oct-2015.) $)
      tchval $p |- G = ( W toNrmGrp
                          ( x e. V |-> ( sqrt ` ( x ., x ) ) ) ) $=
        ( vw ctch cfv cv co csqrt cmpt ctng cvv wceq cbs cip wcel fveq2 syl6eqr
        id oveqd fveq2d mpteq12dv oveq12d df-tch fvmpt wn fvprc reldmtng ovprc1
        ovex c0 eqtr4d pm2.61i eqtri ) BEJKZEADALZVACMZNKZOZPMZFEQUAZUTVERIEILZ
        AVGSKZVAVAVGTKZMZNKZOZPMVEQJVGERZVGEVLVDPVMUDVMAVHVKDVCVMVHESKDVGESUBGU
        CVMVJVBNVMVICVAVAVMVIETKCVGETUBHUCUEUFUGUHAIUIEVDPUOUJVFUKUTUPVEEJULEVD
        PUMUNUQURUS $.
    $}

    ${
      tchbas.v $e |- V = ( Base ` W ) $.
      $( The base set of a subcomplex pre-Hilbert space augmented with norm.
         (Contributed by Mario Carneiro, 8-Oct-2015.) $)
      tchbas $p |- V = ( Base ` G ) $=
        ( vx cv cip cfv csqrt cmpt cvv wcel cbs wceq tchex eqid tchval tngbas
        co ax-mp ) FBFGZUBCHIZTJIKZLMBANIOFUCBCEPBACUDLFAUCBCDEUCQRESUA $.
    $}

    ${
      tchplusg.v $e |- .+ = ( +g ` W ) $.
      $( The addition operation of a subcomplex pre-Hilbert space augmented
         with norm.  (Contributed by Mario Carneiro, 8-Oct-2015.) $)
      tchplusg $p |- .+ = ( +g ` G ) $=
        ( vx cbs cfv cv cip csqrt cmpt cvv wcel cplusg wceq eqid tchex tchval
        co tngplusg ax-mp ) FCGHZFIZUDCJHZTKHLZMNABOHPFUEUCCUCQZRABCUFMFBUEUCCD
        UGUEQSEUAUB $.
    $}

    ${
      tchsub.v $e |- .- = ( -g ` W ) $.
      $( The subtraction operation of a subcomplex pre-Hilbert space augmented
         with norm.  (Contributed by Thierry Arnoux, 30-Jun-2019.) $)
      tchsub $p |- .- = ( -g ` G ) $=
        ( csg cfv wceq wtru cbs eqid tchbas a1i tchplusg grpsubpropd trud eqtri
        cplusg ) BCFGZAFGZESTHICACJGZAJGHIAUACDUAKLMCRGZARGHIUBACDUBKNMOPQ $.
    $}

    ${
      tchmulr.t $e |- .x. = ( .r ` W ) $.
      $( The ring operation of a subcomplex pre-Hilbert space augmented with
         norm.  (Contributed by Mario Carneiro, 8-Oct-2015.) $)
      tchmulr $p |- .x. = ( .r ` G ) $=
        ( vx cbs cfv cv cip co csqrt cmpt cvv wcel cmulr wceq eqid tchex tchval
        tngmulr ax-mp ) FCGHZFIZUDCJHZKLHMZNOABPHQFUEUCCUCRZSBACUFNFBUEUCCDUGUE
        RTEUAUB $.
    $}

    ${
      tchsca.f $e |- F = ( Scalar ` W ) $.
      $( The scalar field of a subcomplex pre-Hilbert space augmented with
         norm.  (Contributed by Mario Carneiro, 8-Oct-2015.) $)
      tchsca $p |- F = ( Scalar ` G ) $=
        ( vx cbs cfv cv cip co csqrt cmpt cvv wcel csca wceq eqid tchex tchval
        tngsca ax-mp ) FCGHZFIZUDCJHZKLHMZNOABPHQFUEUCCUCRZSBACUFNFBUEUCCDUGUER
        TEUAUB $.
    $}

    ${
      tchvsca.s $e |- .x. = ( .s ` W ) $.
      $( The scalar multiplication of a subcomplex pre-Hilbert space augmented
         with norm.  (Contributed by Mario Carneiro, 8-Oct-2015.) $)
      tchvsca $p |- .x. = ( .s ` G ) $=
        ( vx cbs cfv cv cip co csqrt cmpt cvv wcel cvsca wceq eqid tchex tchval
        tngvsca ax-mp ) FCGHZFIZUDCJHZKLHMZNOABPHQFUEUCCUCRZSBACUFNFBUEUCCDUGUE
        RTEUAUB $.
    $}

    ${
      tchip.s $e |- .x. = ( .i ` W ) $.
      $( The inner product of a subcomplex pre-Hilbert space augmented with
         norm.  (Contributed by Mario Carneiro, 8-Oct-2015.) $)
      tchip $p |- .x. = ( .i ` G ) $=
        ( vx cbs cfv cv co csqrt cmpt cvv wcel cip wceq eqid tchex tchval tngip
        ax-mp ) FCGHZFIZUCAJKHLZMNABOHPFAUBCUBQZRBCAUDMFBAUBCDUEESETUA $.
    $}

    ${
      tchtopn.d $e |- D = ( dist ` G ) $.
      tchtopn.j $e |- J = ( TopOpen ` G ) $.
      $( The topology of a subcomplex pre-Hilbert space augmented with norm.
         (Contributed by Mario Carneiro, 8-Oct-2015.) $)
      tchtopn $p |- ( W e. V -> J = ( MetOpen ` D ) ) $=
        ( vx wcel cmopn cfv ctopn cbs cv cip co csqrt cvv eqid cmpt wceq tchval
        tchex tngtopn mpan2 syl6reqr ) EDJZAKLZBMLZCUHIENLZIOZULEPLZQRLUAZSJUIU
        JUBIUMUKEUKTZUDABEUIUNDSIBUMUKEFUOUMTUCGUITUEUFHUG $.
    $}

    $( Augmentation of a subcomplex pre-Hilbert space with a norm does not
       affect whether it is still a pre-Hilbert space because all the original
       components are the same.  (Contributed by Mario Carneiro,
       8-Oct-2015.) $)
    tchphl $p |- ( W e. PreHil <-> G e. PreHil ) $=
      ( vx vy cphl wcel wtru cbs cfv csca eqidd wceq a1i cv cplusg oveqdr cvsca
      eqid wa wb tchbas tchplusg tchsca tchvsca cip tchip phlpropd trud ) BFGAF
      GUAHDEBIJZBKJZIJZUKBAHUJLUJAIJMHAUJBCUJSUBNHDOZUJGEOUJGZTZDEBPJZAPJZUPUQM
      HUPABCUPSUCNQHUKLUKAKJMHUKABCUKSUDNULSHUMULGUNTDEBRJZARJZURUSMHURABCURSUE
      NQHUODEBUFJZAUFJZUTVAMHUTABCUTSUGNQUHUI $.

    ${
      tchnmval.n $e |- N = ( norm ` G ) $.
      tchnmval.v $e |- V = ( Base ` W ) $.
      tchnmval.h $e |- ., = ( .i ` W ) $.
      $( The norm of a subcomplex pre-Hilbert space augmented with norm.
         (Contributed by Mario Carneiro, 8-Oct-2015.) $)
      tchnmfval $p |- ( W e. Grp ->
        N = ( x e. V |-> ( sqrt ` ( x ., x ) ) ) ) $=
        ( cgrp wcel cv co csqrt cfv cmpt cnm wf cc crn c0 csn cun wceq eqid a1i
        fvrn0 fmpti tchval cnex wss sqrtf frn ax-mp ssexi p0ex unex tngnm mpan2
        syl6reqr ) FKLZAEAMZVCCNZOPZQZBRPZDVBEOUAZUBUCZUDZVFSVFVGUEAEVJVEVFVFUF
        VEVJLVCELOVDUHUGUIVJBFVFEABCEFGIJUJIVHVIVHTUKTTOSVHTULUMTTOUNUOUPUQURUS
        UTHVA $.

      $( The norm of a subcomplex pre-Hilbert space augmented with norm.
         (Contributed by Mario Carneiro, 8-Oct-2015.) $)
      tchnmval $p |- ( ( W e. Grp /\ X e. V ) ->
        ( N ` X ) = ( sqrt ` ( X ., X ) ) ) $=
        ( vx cgrp wcel cfv cv co csqrt cmpt tchnmfval wceq fveq1d oveq12 anidms
        fveq2d eqid fvex fvmpt sylan9eq ) ELMZFDMFCNFKDKOZUJBPZQNZRZNFFBPZQNZUI
        FCUMKABCDEGHIJSUAKFULUODUMUJFTZUKUNQUPUKUNTUJFUJFBUBUCUDUMUEUNQUFUGUH
        $.
    $}

    ${
      cphtchnm.n $e |- N = ( norm ` W ) $.
      $( The norm of a norm-augmented subcomplex pre-Hilbert space is the same
         as the original norm on it.  (Contributed by Mario Carneiro,
         11-Oct-2015.) $)
      cphtchnm $p |- ( W e. CPreHil -> N = ( norm ` G ) ) $=
        ( vx ccph wcel cbs cfv cv cip csqrt cmpt cnm eqid cphnmfval clmod cgrp
        co wceq cphlmod lmodgrp tchnmfval 3syl eqtr4d ) CGHZBFCIJZFKZUICLJZTMJN
        ZAOJZFUJBUHCUHPZUJPZEQUGCRHCSHULUKUACUBCUCFAUJULUHCDULPUMUNUDUEUF $.
    $}

    ${
      tchds.n $e |- N = ( norm ` G ) $.
      tchds.m $e |- .- = ( -g ` W ) $.
      $( The distance of a pre-Hilbert space augmented with norm.  (Contributed
         by Thierry Arnoux, 30-Jun-2019.) $)
      tchds $p |- ( W e. Grp -> ( N o. .- ) = ( dist ` G ) ) $=
        ( vx cgrp wcel ccom cbs cfv cv cip co csqrt cmpt eqid cvv cds tchnmfval
        coeq1d wceq tchex tchval tngds ax-mp syl6eq ) DIJZCBKHDLMZHNZULDOMZPQMR
        ZBKZAUAMZUJCUNBHAUMCUKDEFUKSZUMSZUBUCUNTJUOUPUDHUMUKDUQUEADBUNTHAUMUKDE
        UQURUFGUGUHUI $.
    $}

    tchcph.v $e |- V = ( Base ` W ) $.
    tchcph.f $e |- F = ( Scalar ` W ) $.
    tchcph.1 $e |- ( ph -> W e. PreHil ) $.
    tchcph.2 $e |- ( ph -> F = ( CCfld |`s K ) ) $.
    $( Lemma for ~ tchcph .  (Contributed by Mario Carneiro, 16-Oct-2015.) $)
    tchclm $p |- ( ph -> W e. CMod ) $=
      ( clmod wcel ccnfld cbs cfv cress co wceq syl csubrg cclm cphl phllmod cc
      cin eqid clvec phllvec lvecdrng cphsubrglem simp1d simp3d isclm syl3anbrc
      cdr ) AFLMZBNBOPZQRSZURNUAPMZFUBMAFUCMZUQJFUDTAUSURDUEUFSZUTADBURURUGZKAF
      UHMZBUPMAVAVDJFUITBFIUJTUKZULAUSVBUTVEUMBURFIVCUNUO $.

    tchcph.h $e |- ., = ( .i ` W ) $.
    $( Lemma for ~ tchcph : real closure of an inner product of a vector with
       itself.  (Contributed by Mario Carneiro, 10-Oct-2015.) $)
    tchcphlem3 $p |- ( ( ph /\ X e. V ) -> ( X ., X ) e. RR ) $=
      ( wcel cfv cc adantr eqid ccj wa co cbs cclm wss tchclm clmsscn cphl ipcl
      syl 3anidm23 sylan sseldd cstv wceq clmcj fveq1d simpr ipcj syl3anc eqtrd
      cjrebd ) AHFOZUAZHHDUBZVDBUCPZQVEVDGUDOZVFQUEAVGVCABCEFGIJKLMUFRZBVFGKVFS
      ZUGUJAGUHOZVCVEVFOZLVJVCVKHHBDVFFGKNJVIUIUKULUMVDVETPVEBUNPZPZVEVDVETVLVD
      VGTVLUOVHBGKUPUJUQVDVJVCVCVMVEUOAVJVCLRAVCURZVNHHBDVLFGKNJVLSUSUTVAVB $.

    tchcph.3 $e |- ( ( ph /\ ( x e. K /\ x e. RR /\ 0 <_ x ) ) ->
      ( sqrt ` x ) e. K ) $.
    tchcph.4 $e |- ( ( ph /\ x e. V ) -> 0 <_ ( x ., x ) ) $.
    ${
      tchcph.k $e |- K = ( Base ` F ) $.
      ${
        ipcau2.n $e |- N = ( norm ` G ) $.
        ipcau2.c $e |- C = ( ( Y ., X ) / ( Y ., Y ) ) $.
        ipcau2.3 $e |- ( ph -> X e. V ) $.
        ipcau2.4 $e |- ( ph -> Y e. V ) $.
        $( The Cauchy-Schwarz inequality for a subcomplex pre-Hilbert space.
           (Contributed by Mario Carneiro, 11-Oct-2015.) $)
        ipcau2 $p |- ( ph ->
          ( abs ` ( X ., Y ) ) <_ ( ( N ` X ) x. ( N ` Y ) ) ) $=
          ( co cabs cfv csqrt cmul cle wbr c2 cexp c0g wceq oveq2 oveq1d breq1d
          wne wa cdiv wcel cclm wss tchclm clmsscn syl cphl ipcl syl3anc sseldd
          cc adantr cr tchcphlem3 mpdan recnd clm0 eqeq2d wb eqid ipeq0 syl2anc
          cc0 bitrd necon3bid biimpar divassd oveq2i syl6eqr cmin ccj cvsca csg
          cv wral clmod phllmod syl5eq cstv ccnfld fveq2d cvv cbs fveq1d eqtr3d
          ax-mp oveq12d divrecd 3eqtrd clmmcl eqeltrd oveq12 anidms breq2d sylc
          c1 rspcv cplusg caddc eqidd cmulr ipass syl13anc ipassr2 oveqd oveq2d
          eqtrd 3eqtr3rd oveq123d clmacl eqeltrrd mpbid eqbrtrd mulge0d sqsqrtd
          resqrtcld sqrtge0d tchnmval fveq2i cjdivd fvex eqeltri ressstarv ipcj
          cress cnfldcj cjcjd cjred clvec phllvec lvecdrng cphreccllem mpd3an23
          cdr lmodvscl lmodvsubcl ralrimiva ip2subdi cnfldadd cnfldmul ressmulr
          ressplusg divcan2d clmsub absvalsqd resqcld redivcld pnpcan2d breqtrd
          abscld subge0d clt ne0gt0d ledivmul2 syl112anc eqtr4d mul02d pm2.61ne
          ip0r sqmuld 3brtr4d remulcld absge0d le2sqd mpbird lmodgrp breqtrrd
          cgrp ) AKLFUFZUGUHZKKFUFZUIUHZLLFUFZUIUHZUJUFZKHUHZLHUHZUJUFUKAUWLUWQ
[encoded data, 4480 characters]
          WDAWUNUYCUWSUWPUPWUOUEEFHIJLMUBNRYTWDXIUWI $.
      $}

      ${
        tchcph.m $e |- .- = ( -g ` W ) $.
        tchcphlem1.3 $e |- ( ph -> X e. V ) $.
        tchcphlem1.4 $e |- ( ph -> Y e. V ) $.
        $( Lemma for ~ tchcph : the triangle inequality.  (Contributed by Mario
           Carneiro, 8-Oct-2015.) $)
        tchcphlem1 $p |- ( ph -> ( sqrt ` ( ( X .- Y ) ., ( X .- Y ) ) )
          <_ ( ( sqrt ` ( X ., X ) ) + ( sqrt ` ( Y ., Y ) ) ) ) $=
          ( co csqrt cfv caddc cle wbr c2 cexp cmul cabs wcel cgrp cphl phllmod
          cr clmod lmodgrp 3syl grpsubcl syl3anc tchcphlem3 mpdan readdcld cclm
          cc wss tchclm clmsscn syl ipcl sseldd addcld abscld recnd 2re cv wral
          cc0 ralrimiva wceq oveq12 anidms breq2d rspcv sylc resqrtcld remulcld
          remulcl sylancr add32d eqeltrd absidd csg cplusg clmadd oveqd oveq12d
          cmin clmacl clmsub ip2subdi 3eqtr4rd fveq2d abs2dif2d eqbrtrd addge0d
          eqid eqtr3d oveq1d breqtrd abstrid 2timesd ccj abscjd cstv clmcj ipcj
          fveq1d eqtrd oveq2d breqtrrd cnm cdiv ipcau2 tchnmval syl2anc clt a1i
          wb 2pos lemul2 syl112anc mpbid letrd leadd2dd sqsqrtd sqrtge0d binom2
          sqrtcld 3brtr4d le2sqd mpbird ) AJKGUDZUUFEUDZUEUFZJJEUDZUEUFZKKEUDZU
          EUFZUGUDZUHUIUUHUJUKUDZUUMUJUKUDZUHUIAUUGUUIUJUUJUULULUDZULUDZUGUDZUU
          KUGUDZUUNUUOUHAUUGUUIUUKUGUDZJKEUDZKJEUDZUGUDZUMUFZUGUDZUUSAUUFHUNZUU
          GURUNAIUOUNZJHUNZKHUNZUVFAIUPUNZIUSUNUVGOIUQIUTVAZUBUCHIGJKMUAVBVCZAC
          DEFHIUUFLMNOPQVDVEZAUUTUVDAUUIUUKAUVHUUIURUNUBACDEFHIJLMNOPQVDVEZAUVI
          UUKURUNUCACDEFHIKLMNOPQVDVEZVFZAUVCAUVAUVBAFVHUVAAIVGUNZFVHVIACDFHILM
          NOPVJZCFINTVKVLZAUVJUVHUVIUVAFUNZOUBUCJKCEFHINQMTVMVCZVNZAFVHUVBUVSAU
          VJUVIUVHUVBFUNZOUCUBKJCEFHINQMTVMVCZVNZVOZVPZVFAUUSUUTUUQUGUDZURAUUIU
          UQUUKAUUIUVNVQZAUUQAUJURUNZUUPURUNZUUQURUNVRAUUJUULAUUIUVNAUVHWABVSZU
          WLEUDZUHUIZBHVTZWAUUIUHUIZUBAUWNBHSWBZUWNUWPBJHUWLJWCZUWMUUIWAUHUWRUW
          MUUIWCUWLJUWLJEWDWEWFWGWHZWIZAUUKUVOAUVIUWOWAUUKUHUIZUCUWQUWNUXABKHUW
          LKWCZUWMUUKWAUHUXBUWMUUKWCUWLKUWLKEWDWEWFWGWHZWIZWJZUJUUPWKWLZVQAUUKU
          VOVQZWMZAUUTUUQUVPUXFVFWNAUUGUUTUMUFZUVDUGUDZUVEUHAUUGUUTUVCXAUDZUMUF
          ZUXJUHAUUGUMUFUUGUXLAUUGUVMAUVFUWOWAUUGUHUIZUVLUWQUWNUXMBUUFHUWLUUFWC
          ZUWMUUGWAUHUXNUWMUUGWCUWLUUFUWLUUFEWDWEWFWGWHZWOAUUGUXKUMAUUTUVCCWPUF
          ZUDZUUIUUKCWQUFZUDZUVAUVBUXRUDZUXPUDUXKUUGAUUTUXSUVCUXTUXPAUGUXRUUIUU
          KAUVQUGUXRWCUVRCINWRVLZWSAUGUXRUVAUVBUYAWSWTAUVQUUTFUNZUVCFUNZUXKUXQW
          CUVRAUVQUUIFUNZUUKFUNZUYBUVRAUVJUVHUVHUYDOUBUBJJCEFHINQMTVMVCAUVJUVIU
          VIUYEOUCUCKKCEFHINQMTVMVCCFIUUIUUKNTXBVCZAUVQUVTUWCUYCUVRUWAUWDCFIUVA
          UVBNTXBVCUUTUVCCFINTXCVCAJKJKUXRUXPCEGHINQMUAUXPXJUXRXJOUBUCUBUCXDXEX
          FXKAUUTUVCAFVHUUTUVSUYFVNUWFXGXHAUXIUUTUVDUGAUUTUVPAUUIUUKUVNUVOUWSUX
          CXIWOXLXMAUVEUWHUUSUHAUVDUUQUUTUWGUXFUVPAUVDUJUVAUMUFZULUDZUUQUWGAUWJ
          UYGURUNZUYHURUNVRAUVAUWBVPZUJUYGWKWLUXFAUVDUYGUVBUMUFZUGUDZUYHUHAUVAU
          VBUWBUWEXNAUYHUYGUYGUGUDUYLAUYGAUYGUYJVQXOAUYGUYKUYGUGAUVAXPUFZUMUFUY
          GUYKAUVAUWBXQAUYMUVBUMAUYMUVACXRUFZUFZUVBAUVAXPUYNAUVQXPUYNWCUVRCINXS
          VLYAAUVJUVHUVIUYOUVBWCOUBUCJKCEUYNHINQMUYNXJXTVCYBXFXKYCYBYDAUYGUUPUH
          UIZUYHUUQUHUIZAUYGJDYEUFZUFZKUYRUFZULUDUUPUHABUVBUUKYFUDZCDEFUYRHIJKL
          MNOPQRSTUYRXJZVUAXJUBUCYGAUYSUUJUYTUULULAUVGUVHUYSUUJWCUVKUBDEUYRHIJL
          VUBMQYHYIAUVGUVIUYTUULWCUVKUCDEUYRHIKLVUBMQYHYIWTXMAUYIUWKUWJWAUJYJUI
          ZUYPUYQYLUYJUXEUWJAVRYKVUCAYMYKUYGUUPUJYNYOYPYQYRUXHYDYQAUUGAUUGUVMVQ
          YSAUUOUUJUJUKUDZUUQUGUDZUULUJUKUDZUGUDZUUSAUUJVHUNUULVHUNUUOVUGWCAUUI
          UWIUUBAUULUXDVQUUJUULUUAYIAVUEUURVUFUUKUGAVUDUUIUUQUGAUUIUWIYSXLAUUKU
          XGYSWTYBUUCAUUHUUMAUUGUVMUXOWIAUUJUULUWTUXDVFAUUGUVMUXOYTAUUJUULUWTUX
          DAUUIUVNUWSYTAUUKUVOUXCYTXIUUDUUE $.
      $}

      tchcph.s $e |- .x. = ( .s ` W ) $.
      tchcphlem2.3 $e |- ( ph -> X e. K ) $.
      tchcphlem2.4 $e |- ( ph -> Y e. V ) $.
      $( Lemma for ~ tchcph : homogeneity.  (Contributed by Mario Carneiro,
         8-Oct-2015.) $)
      tchcphlem2 $p |- ( ph -> ( sqrt ` ( ( X .x. Y ) ., ( X .x. Y ) ) ) =
        ( ( abs ` X ) x. ( sqrt ` ( Y ., Y ) ) ) ) $=
        ( ccj cfv cmul co csqrt cabs cc cclm wcel wss tchclm clmsscn syl sseldd
        cjmulrcld cjmulge0d cr tchcphlem3 mpdan cc0 cle wbr wral ralrimiva wceq
        oveq12 anidms breq2d rspcv sylc sqrtmuld cstv cmulr cphl clmod lmodvscl
        cv phllmod syl3anc eqid ipassr syl13anc clmmul oveqd ipass eqtr4d clmcj
        fveq1d oveq123d recnd cjcld mul32d 3eqtr2d fveq2d absval oveq1d 3eqtr4d
        ) AJJUDUEZUFUGZKKFUGZUFUGZUHUEXBUHUEZXCUHUEZUFUGJKCUGZXGFUGZUHUEJUIUEZX
        FUFUGAXBXCAJAGUJJAIUKULZGUJUMADEGHILMNOPUNZDGINTUOUPUBUQZURAJXLUSAKHULZ
        XCUTULUCADEFGHIKLMNOPQVAVBZAXMVCBVTZXOFUGZVDVEZBHVFVCXCVDVEZUCAXQBHSVGX
        QXRBKHXOKVHZXPXCVCVDXSXPXCVHXOKXOKFVIVJVKVLVMVNAXHXDUHAXHXGKFUGZJDVOUEZ
        UEZDVPUEZUGZJXCUFUGZXAUFUGXDAIVQULZXGHULZXMJGULZXHYDVHOAIVRULZYHXMYGAYF
        YIOIWAUPUBUCJCDGHIKMNUATVSWBUCUBXGKJCYCDFYAGHINQMTUAYCWCZYAWCWDWEAYEXTX
        AYBUFYCAXJUFYCVHXKDINWFUPZAYEJXCYCUGZXTAUFYCJXCYKWGAYFYHXMXMXTYLVHOUBUC
        UCJKKCYCDFGHINQMTUAYJWHWEWIAJUDYAAXJUDYAVHXKDINWJUPWKWLAJXCXAXLAXCXNWMA
        JXLWNWOWPWQAXIXEXFUFAJUJULXIXEVHXLJWRUPWSWT $.
    $}

    $( The standard definition of a norm turns any pre-Hilbert space over a
       quadratically closed subfield of ` CCfld ` into a subcomplex pre-Hilbert
       space (which allows access to a norm, metric, and topology).
       (Contributed by Mario Carneiro, 11-Oct-2015.) $)
    tchcph $p |- ( ph -> G e. CPreHil ) $=
      ( wcel cfv wceq cc vy vz cphl cnlm ccnfld cbs cress co w3a csqrt cc0 cpnf
      cico cin cima wss cnm cv cmpt ccph tchphl sylib cngp clmod cnrg cmul wral
      cvsca csg c0g tchval eqid cgrp phllmod lmodgrp cr wa tchcphlem3 resqrtcld
      syl fmptd oveq12 anidms fveq2d fvex fvmpt3i adantl eqeq1d c2 csubrg clvec
      wb cdr phllvec lvecdrng cphsubrglem simp2d inss2 syl6eqss adantr 3anidm23
      cexp ipcl sylan sseldd sqrtcld sqeq0 sqsqrtd tchclm eqeq12d bitr3d 3bitrd
      cclm clm0 ipeq0 caddc cle simp1d wbr 3anass simpr2 recnd jca ex recn elin
      eleq2d rbaib syl5bi adantlr simprl simprr 3expb sylancr 3jca cabs syl2anc
      tchnmval wf sqrtf sylan9bb adantrr pm5.32rd syl6bbr syl6bb imp tchcphlem1
      3imtr4d grpsubcl 3brtr4d tngngpd cnnrg simp3d subrgnrg eqeltrd tchcphlem2
      oveqan12d lmodvscl fveq1d csubg subrgsubg cnfldnm subgnm2 oveq12d 3eqtr4d
      eqtrd ralrimivva tchbas tchvsca tchsca isnlm sylanbrc elrege0 anbi2i wfun
      bitri ralrimiv cdm ffun ax-mp syl5ss fdmi syl6sseqr funimass4 mpbird cnex
      inss1 tngnm eqcomd tchip iscph syl3anbrc ) ADUCQZDUDQZCUECUFRZUGUHZSZUIUJ
      UWOUKULUMUHZUNZUOUWOUPZDUQRZUAGUAURZUXBEUHZUJRZUSZSDUTQAUWMUWNUWQAHUCQZUW
      MLDHIVAVBZADVCQZDVDQZCVEQZUIUXBUBURZHVHRZUHZUXARZUXBCUQRZRZUXKUXARZVFUHZS
      ZUBGVGUAUWOVGUWNAUXHUXIUXJAUAUBDHHVIRZBGBURZUYAEUHZUJRZUSZGHVJRZBDEGHIJNV
      KJUXTVLZUYEVLZAHVDQZHVMQZAUXFUYHLHVNVTZHVOVTZABGUYCVPUYDAUYAGQZVQUYBACDEF
      GHUYAIJKLMNVRPVSUYDVLZWAAUXBGQZVQZUXBUYDRZUKSUXDUKSZUXCCVJRZSZUXBUYESZUYO
      UYPUXDUKUYNUYPUXDSABUXBUYCUXDGUYDUYAUXBSZUYBUXCUJVUAUYBUXCSUYAUXBUYAUXBEW
      BWCWDUYMUYBUJWEZWFZWGWHUYOUXDWIXBUHZUKSZUYQUYSUYOUXDTQVUEUYQWLUYOUXCUYOUW
      OTUXCAUWOTUPUYNAUWOFTUNZTAUWQUWOVUFSZUWOUEWJRQZAFCUWOUWOVLZMAHWKQZCWMQAUX
      FVUJLHWNVTCHKWOVTWPZWQZFTWRWSZWTAUXFUYNUXCUWOQZLUXFUYNVUNUXBUXBCEUWOGHKNJ
      VUIXCXAXDXEZXFZUXDXGVTUYOVUDUXCUKUYRUYOUXCVUOXHAUKUYRSZUYNAHXMQVUQACDFGHI
      JKLMXICHKXNVTWTXJXKAUXFUYNUYSUYTWLLUXBCEGHUYEUYRKNJUYRVLUYGXOXDXLAUYNUXKG
      QZVQZVQZUXBUXKUXTUHZVVAEUHZUJRZUXDUXKUXKEUHZUJRZXPUHZVVAUYDRZUYPUXKUYDRZX
      PUHZXQVUTBCDEUWOUXTGHUXBUXKIJKAUXFVUSLWTAUWQVUSAUWQVUGVUHVUKXRZWTNAUYAUWO
      QZUYAVPQZUKUYAXQXSZUIZUYAUJRZUWOQZVUSAVVNVVPVVNVVKVVLVVMVQZVQZAVVPVVKVVLV
      VMXTAUYAFQZVVLVVMUIZVVOFQZVVOTQZVQZVVRVVPAVVTVWCAVVTVQZVWAVWBOVWDUYAVWDUY
      AAVVSVVLVVMYAYBXFYCYDAVVRVVSVVQVQVVTAVVQVVKVVSAVVQVVKVVSWLZAVVLVWEVVMAVVK
      UYAVUFQZVVLVVSAUWOVUFUYAVULYGVVLUYATQZVWFVVSWLUYAYEVWFVVSVWGUYAFTYFYHVTUU
      AUUBYDUUCVVSVVLVVMXTUUDAVVPVVOVUFQVWCAUWOVUFVVOVULYGVVOFTYFUUEUUHZYIUUFZY
      JAUYLUKUYBXQXSZVUSPYJVUIUYFAUYNVURYKAUYNVURYLUUGVUTVVAGQZVVGVVCSAUYIVUSVW
      KUYKUYIUYNVURVWKGHUXTUXBUXKJUYFUUIYMXDBVVAUYCVVCGUYDUYAVVASZUYBVVBUJVWLUY
      BVVBSUYAVVAUYAVVAEWBWCWDUYMVUBWFVTVUSVVIVVFSAUYNVURUYPUXDVVHVVEXPVUCBUXKU
      YCVVEGUYDUYAUXKSZUYBVVDUJVWMUYBVVDSUYAUXKUYAUXKEWBWCWDUYMVUBWFUUQWGUUJUUK
      AUWMUXIUXGDVNVTACUWPVEVVJAUEVEQVUHUWPVEQUULAUWQVUGVUHVUKUUMZUWOUEUWPUWPVL
      ZUUNYNUUOYOAUXSUAUBUWOGAUXBUWOQZVURVQZVQZUXMUXMEUHUJRZUXBYPRZVVEVFUHUXNUX
      RVWRBUXLCDEUWOGHUXBUXKIJKAUXFVWQLWTAUWQVWQVVJWTZNAVVNVVPVWQVWIYJAUYLVWJVW
      QPYJVUIUXLVLZAVWPVURYKZAVWPVURYLZUUPVWRUYIUXMGQZUXNVWSSAUYIVWQUYKWTZAUYHV
      WQVXEUYJUYHVWPVURVXEUXBUXLCUWOGHUXKJKVXBVUIUURYMXDDEUXAGHUXMIUXAVLZJNYRYQ
      VWRUXPVWTUXQVVEVFVWRUXPUXBUWPUQRZRZVWTVWRUXBUXOVXHVWRCUWPUQVXAWDUUSVWRUWO
      UEUUTRQZVWPVXIVWTSAVXJVWQAVUHVXJVWNUWOUEUVAVTWTVXCUWOUEUWPVXHYPUXBVWOUVBV
      XHVLUVCYQUVFVWRUYIVURUXQVVESVXFVXDDEUXAGHUXKIVXGJNYRYQUVDUVEUVGUAUBUXOUXL
      CUWOUXAGDDGHIJUVHZVXGUXLDHIVXBUVICDHIKUVJZVUIUXOVLUVKUVLVVJYOAUWTVVPBUWSV
      GZAVVPBUWSUYAUWSQZVVRAVVPVXNVVKUYAUWRQZVQVVRUYAUWOUWRYFVXOVVQVVKUYAUVMUVN
      UVPVWHYIUVQAUJUVOZUWSUJUVRZUPUWTVXMWLTTUJYSVXPYTTTUJUVSUVTAUWSTVXQAUWSUWO
      TUWOUWRUWGVUMUWATTUJYTUWBUWCBUWSUWOUJUWDYNUWEAUXEUXAAUYIGTUXEYSUXEUXASUYK
      AUAGUXDTUXEVUPUXEVLWATDHUXEGUADEGHIJNVKJUWFUWHYQUWIUACEUWOUXAGDVXKEDHINUW
      JVXGVXLVUIUWKUWL $.
  $}

  ${
    $d x ., $.  $d x V $.  $d x W $.  $d x X $.  $d x Y $.
    ipcau.v $e |- V = ( Base ` W ) $.
    ipcau.h $e |- ., = ( .i ` W ) $.
    ipcau.n $e |- N = ( norm ` W ) $.
    $( The Cauchy-Schwarz inequality for a subcomplex pre-Hilbert space.
       (Contributed by Mario Carneiro, 11-Oct-2015.) $)
    ipcau $p |- ( ( W e. CPreHil /\ X e. V /\ Y e. V ) ->
      ( abs ` ( X ., Y ) ) <_ ( ( N ` X ) x. ( N ` Y ) ) ) $=
      ( vx wcel w3a co cfv cmul cle eqid syl wceq cc0 ccph cabs ctch cdiv simp1
      cnm csca cbs cphl cphphl ccnfld cress cphsca cv wbr csqrt cphsqrtcl sylan
      cr ipge0 simp2 simp3 ipcau2 cphtchnm fveq1d oveq12d breqtrrd ) DUAKZECKZF
      CKZLZEFAMUBNEDUCNZUFNZNZFVMNZOMEBNZFBNZOMPVKJFEAMFFAMUDMZDUGNZVLAVSUHNZVM
      CDEFVLQZGVSQZVKVHDUIKVHVIVJUEZDUJRVKVHVSUKVTULMSWCVSVTDWBVTQZUMRHVKVHJUNZ
      VTKWEUSKTWEPUOLWEUPNVTKWCWEVSVTDWBWDUQURVKVHWECKTWEWEAMPUOWCWEACDGHUTURWD
      VMQVRQVHVIVJVAVHVIVJVBVCVKVPVNVQVOOVKEBVMVKVHBVMSWCVLBDWAIVDRZVEVKFBVMWFV
      EVFVG $.
  $}

  ${
    nmpar.v $e |- V = ( Base ` W ) $.
    nmpar.p $e |- .+ = ( +g ` W ) $.
    nmpar.m $e |- .- = ( -g ` W ) $.
    nmpar.n $e |- N = ( norm ` W ) $.
    ${
      nmpar.h $e |- ., = ( .i ` W ) $.
      nmpar.f $e |- F = ( Scalar ` W ) $.
      nmpar.k $e |- K = ( Base ` F ) $.
      nmpar.1 $e |- ( ph -> W e. CPreHil ) $.
      nmpar.2 $e |- ( ph -> A e. V ) $.
      nmpar.3 $e |- ( ph -> B e. V ) $.
      $( Lemma for ~ nmpar .  (Contributed by Mario Carneiro, 7-Oct-2015.) $)
      nmparlem $p |- ( ph ->
        ( ( ( N ` ( A .+ B ) ) ^ 2 ) + ( ( N ` ( A .- B ) ) ^ 2 ) ) =
         ( 2 x. ( ( ( N ` A ) ^ 2 ) + ( ( N ` B ) ^ 2 ) ) ) ) $=
        ( co caddc cfv c2 cexp cmul cmin cph2di cph2subdi oveq12d cclm wcel wss
        cc ccph cphclm syl clmsscn cphl cphphl ipcl syl3anc clmacl sseldd eqtrd
        ppncand wceq clmod cphlmod lmodvacl nmsq syl2anc oveq2d 2timesd 3eqtr4d
        lmodvsubcl ) ABCDUBZVRFUBZBCHUBZVTFUBZUCUBZBBFUBZCCFUBZUCUBZWEUCUBZVRIU
        DUEUFUBZVTIUDUEUFUBZUCUBUEBIUDUEUFUBZCIUDUEUFUBZUCUBZUGUBZAWBWEBCFUBZCB
        FUBZUCUBZUCUBZWEWOUHUBZUCUBWFAVSWPWAWQUCABCBCDFJKPLMSTUATUAUIABCBCFHJKP
        LNSTUATUAUJUKAWEWOWEAGUOWEAKULUMZGUOUNAKUPUMZWRSKUQURZEGKQRUSURZAWRWCGU
        MZWDGUMZWEGUMWTAKUTUMZBJUMZXEXBAWSXDSKVAURZTTBBEFGJKQPLRVBVCAXDCJUMZXGX
        CXFUAUACCEFGJKQPLRVBVCEGKWCWDQRVDVCVEZAGUOWOXAAWRWMGUMZWNGUMZWOGUMWTAXD
        XEXGXIXFTUABCEFGJKQPLRVBVCAXDXGXEXJXFUATCBEFGJKQPLRVBVCEGKWMWNQRVDVCVEX
        HVGVFAWGVSWHWAUCAWSVRJUMZWGVSVHSAKVIUMZXEXGXKAWSXLSKVJURZTUADJKBCLMVKVC
        VRFIJKLPOVLVMAWSVTJUMZWHWAVHSAXLXEXGXNXMTUAHJKBCLNVQVCVTFIJKLPOVLVMUKAW
        LUEWEUGUBWFAWKWEUEUGAWIWCWJWDUCAWSXEWIWCVHSTBFIJKLPOVLVMAWSXGWJWDVHSUAC
        FIJKLPOVLVMUKVNAWEXHVOVFVP $.
    $}

    $( A subcomplex pre-Hilbert space satisfies the parallelogram law.
       (Contributed by Mario Carneiro, 7-Oct-2015.) $)
    nmpar $p |- ( ( W e. CPreHil /\ A e. V /\ B e. V ) ->
      ( ( ( N ` ( A .+ B ) ) ^ 2 ) + ( ( N ` ( A .- B ) ) ^ 2 ) ) =
        ( 2 x. ( ( ( N ` A ) ^ 2 ) + ( ( N ` B ) ^ 2 ) ) ) ) $=
      ( ccph wcel w3a csca cfv cip cbs eqid simp1 simp2 simp3 nmparlem ) GLMZAF
      MZBFMZNABCGOPZGQPZUGRPZDEFGHIJKUHSUGSUISUDUEUFTUDUEUFUAUDUEUFUBUC $.
  $}

  ${
    $d k N $.  $d k A $.  $d k B $.  $d k X $.
    cphipfval.x $e |- X = ( Base ` W ) $.
    cphipfval.p $e |- .+ = ( +g ` W ) $.
    cphipfval.s $e |- .x. = ( .s ` W ) $.
    cphipfval.n $e |- N = ( norm ` W ) $.
    cphipfval.i $e |- ., = ( .i ` W ) $.
    ${
      cphipval2.m $e |- .- = ( -g ` W ) $.
      cphipval2.f $e |- F = ( Scalar ` W ) $.
      cphipval2.k $e |- K = ( Base ` F ) $.
      $( Value of the inner product expressed by the norm defined by it.
         (Contributed by NM, 31-Jan-2007.)  (Revised by AV, 18-Oct-2021.) $)
      cphipval2 $p |- ( ( ( W e. CPreHil /\ _i e. K ) /\ A e. X /\ B e. X )
       -> ( A ., B ) = ( ( ( ( ( N ` ( A .+ B ) ) ^ 2 ) -
                         ( ( N ` ( A .- B ) ) ^ 2 ) ) +
                         ( _i x. ( ( ( N ` ( A .+ ( _i .x. B ) ) ) ^ 2 ) -
                         ( ( N ` ( A .- ( _i .x. B ) ) ) ^ 2 ) ) ) ) / 4 ) ) $=
        ( co ccph wcel ci wa w3a cfv c2 cexp cmin cmul caddc c4 cdiv wceq simpl
        3ad2ant1 cgrp cngp cphngp adantr ngpgrp syl grpcl syl3an1 syl2anc simp2
        nmsq simp3 cph2di eqtrd grpsubcl cph2subdi oveq12d cc cr reipcl adantlr
        recnd 3adant3 3adant2 addcld cphipcl 3com23 pnncand clmod cphlmod simpr
        simplr lmodvscl syl3anc oveq2d cneg cphassi ax-icn negicn mulcld adddid
        cphassir a1i c1 mulneg2i negeqi negneg1e1 3eqtri oveq1i mulassd mulid2d
        ixi syl5reqr oveq1d addneg1mul 3eqtrd subcld add4d ppncand 2timesd 2cnd
        eqcomd adddird 2p2e4 3eqtr2d 4cn cc0 wne 4ne0 divcan3d 3eqtrrd ) JUAUBZ
        UCGUBZUDZAKUBZBKUBZUEZABCTZIUFUGUHTZABHTZIUFUGUHTZUITZUCAUCBDTZCTZIUFUG
        UHTZAYSHTZIUFUGUHTZUITZUJTZUKTZULUMTABFTZBAFTZUKTZUUIUKTZUUGUUHUITZUUKU
        KTZUKTZULUMTUUGUUGUKTZUUNUKTZULUMTZUUGYMUUFUUMULUMYMYRUUJUUEUULUKYMYRAA
        FTZBBFTZUKTZUUIUKTZUUSUUIUITZUITUUJYMYOUUTYQUVAUIYMYOYNYNFTZUUTYMYHYNKU
        BZYOUVBUNYJYKYHYLYHYIUOZUPZYJJUQUBZYKYLUVCYJJURUBZUVFYHUVGYIJUSUTJVAVBZ
        KCJABLMVCVDYNFIKJLPOVGVEYMABABCFKJPLMUVEYJYKYLVFZYJYKYLVHZUVIUVJVIVJYMY
        QYPYPFTZUVAYMYHYPKUBZYQUVKUNUVEYJUVFYKYLUVLUVHKJHABLQVKVDYPFIKJLPOVGVEY
        MABABFHKJPLQUVEUVIUVJUVIUVJVLVJVMYMUUSUUIUUIYMUUQUURYJYKUUQVNUBYLYJYKUD
        UUQYHYKUUQVOUBYIAFKJLPVPVQVRVSZYJYLUURVNUBYKYJYLUDZUURYHYLUURVOUBYIBFKJ
        LPVPVQVRVTWAYMUUGUUHYJYHYKYLUUGVNUBZUVDABFKJLPWBVDZYJYLYKUUHVNUBZYJYHYL
        YKUVQUVDBAFKJLPWBVDWCZWAZUVSWDVJYMUUEUCUUQYSYSFTZUKTZAYSFTZYSAFTZUKTZUK
        TZUWAUWDUITZUITZUJTUCUWDUWDUKTZUJTZUULYMUUDUWGUCUJYMUUAUWEUUCUWFUIYMUUA
        YTYTFTZUWEYMYHYTKUBZUUAUWJUNUVEYMUVFYKYSKUBZUWKYJYKUVFYLUVHUPZUVIYJYLUW
        LYKUVNJWEUBZYIYLUWLYJUWNYLYHUWNYIJWFUTUTYHYIYLWHYJYLWGUCDEGKJBLRNSWIWJV
        TZKCJAYSLMVCWJYTFIKJLPOVGVEYMAYSAYSCFKJPLMUVEUVIUWOUVIUWOVIVJYMUUCUUBUU
        BFTZUWFYMYHUUBKUBZUUCUWPUNUVEYMUVFYKUWLUWQUWMUVIUWOKJHAYSLQVKWJUUBFIKJL
        POVGVEYMAYSAYSFHKJPLQUVEUVIUWOUVIUWOVLVJVMWKYMUWGUWHUCUJYMUWAUWDUWDYMUU
        QUVTUVMYMYHUWLUWLUVTVNUBUVEUWOUWOYSYSFKJLPWBWJWAYMUWBUWCYMYHYKUWLUWBVNU
        BUVEUVIUWOAYSFKJLPWBWJYMYHUWLYKUWCVNUBUVEUWOUVIYSAFKJLPWBWJWAZUWRWDWKYM
        UWIUCUCWLZUUGUJTZUCUUHUJTZUKTZUXBUKTZUJTUCUXBUJTZUXDUKTZUULYMUWHUXCUCUJ
        YMUWDUXBUWDUXBUKYMUWBUWTUWCUXAUKABDEFGJKLNPRSWRABDEFGJKLNPRSWMVMZUXFVMW
        KYMUCUXBUXBUCVNUBYMWNWSZYMUWTUXAYMUWSUUGUWSVNUBYMWOWSZUVPWPZYMUCUUHUXGU
        VRWPZWAZUXKWQYMUXEWTUUGUJTZWTWLZUUHUJTZUKTZUXOUKTUULYMUXDUXOUXDUXOUKYMU
        XDUCUWTUJTZUCUXAUJTZUKTUXOYMUCUWTUXAUXGUXIUXJWQYMUXPUXLUXQUXNUKYMUXLUCU
        WSUJTZUUGUJTUXPUXRWTUUGUJUXRUCUCUJTZWLUXMWLWTUCUCWNWNXAUXSUXMXHXBXCXDXE
        YMUCUWSUUGUXGUXHUVPXFXIYMUXNUXSUUHUJTUXQUXSUXMUUHUJXHXEYMUCUCUUHUXGUXGU
        VRXFXIVMVJZUXTVMYMUXOUUKUXOUUKUKYMUXOUUGUXNUKTZUUKYMUXLUUGUXNUKYMUUGUVP
        XGXJYMUVOUVQUYAUUKUNUVPUVRUUGUUHXKVEVJZUYBVMVJXLXLVMXJYMUUMUUOULUMYMUUM
        UUIUUKUKTZUYCUKTUUOYMUUIUUIUUKUUKUVSUVSYMUUGUUHUVPUVRXMZUYDXNYMUYCUUNUY
        CUUNUKYMUUGUUHUUGUVPUVRUVPXOZUYEVMVJXJYMUUPULUUGUJTZULUMTUUGYMUUOUYFULU
        MYMUUOUGUUGUJTZUYGUKTUGUGUKTZUUGUJTUYFYMUUNUYGUUNUYGUKYMUYGUUNYMUUGUVPX
        PXRZUYIVMYMUGUGUUGYMXQZUYJUVPXSYMUYHULUUGUJUYHULUNYMXTWSXJYAXJYMUUGULUV
        PULVNUBYMYBWSULYCYDYMYEWSYFVJYG $.

      $( Four times the inner product value ~ cphipval2 .  (Contributed by NM,
         1-Feb-2008.)  (Revised by AV, 18-Oct-2021.) $)
      4cphipval2 $p |- ( ( ( W e. CPreHil /\ _i e. K ) /\ A e. X /\ B e. X )
           -> ( 4 x. ( A ., B ) )
              = ( ( ( ( N ` ( A .+ B ) ) ^ 2 ) - ( ( N ` ( A .- B ) ) ^ 2 ) ) +
                              ( _i x. ( ( ( N ` ( A .+ ( _i .x. B ) ) ) ^ 2 ) -
                              ( ( N ` ( A .- ( _i .x. B ) ) ) ^ 2 ) ) ) ) ) $=
        ( wcel ccph ci wa w3a c4 co cmul cfv c2 cexp cmin cdiv cphipval2 oveq2d
        caddc cc ccnfld csubrg cphsubrg cnfldbas subrgss adantr 3ad2ant1 simp1l
        wss syl cgrp cngp cphngp ngpgrp syl3an1 cphnmcl syl2anc sseldd grpsubcl
        grpcl sqcld subcld ax-icn a1i simp2 clmod cphlmod simp1r simp3 lmodvscl
        syl3anc mulcld addcld 4cn cc0 wne 4ne0 divcan2d eqtrd ) JUATZUBGTZUCZAK
        TZBKTZUDZUEABFUFZUGUFUEABCUFZIUHZUIUJUFZABHUFZIUHZUIUJUFZUKUFZUBAUBBDUF
        ZCUFZIUHZUIUJUFZAXJHUFZIUHZUIUJUFZUKUFZUGUFZUOUFZUEULUFZUGUFXSXAXBXTUEU
        GABCDEFGHIJKLMNOPQRSUMUNXAXSUEXAXIXRXAXEXHXAXDXAGUPXDWRWSGUPVEZWTWPYAWQ
        WPGUQURUHTYAEGJRSUSGUPUQUTVAVFVBVCZXAWPXCKTZXDGTWPWQWSWTVDZWRJVGTZWSWTY
        CWPYEWQWPJVHTYEJVIJVJVFZVBZKCJABLMVPVKXCEFGIKJLPORSVLVMVNVQXAXGXAGUPXGY
        BXAWPXFKTZXGGTYDWRYEWSWTYHYGKJHABLQVOVKXFEFGIKJLPORSVLVMVNVQVRXAUBXQUBU
        PTXAVSVTXAXMXPXAXLXAGUPXLYBXAWPXKKTZXLGTYDXAYEWSXJKTZYIXAWPYEYDYFVFZWRW
        SWTWAZXAJWBTZWQWTYJWRWSYMWTWPYMWQJWCVBVCWPWQWSWTWDWRWSWTWEUBDEGKJBLRNSW
        FWGZKCJAXJLMVPWGXKEFGIKJLPORSVLVMVNVQXAXOXAGUPXOYBXAWPXNKTZXOGTYDXAYEWS
        YJYOYKYLYNKJHAXJLQVOWGXNEFGIKJLPORSVLVMVNVQVRWHWIUEUPTXAWJVTUEWKWLXAWMV
        TWNWO $.
    $}

    $d K k $.  $d W k $.  $d .+ k $.  $d .x. k $.
    cphipval.f $e |- F = ( Scalar ` W ) $.
    cphipval.k $e |- K = ( Base ` F ) $.
    $( Value of the inner product expressed by a sum of terms with the norm
       defined by the inner product.  Equation 6.45 of [Ponnusamy] p. 361.
       (Contributed by NM, 31-Jan-2007.)  (Revised by AV, 18-Oct-2021.) $)
    cphipval $p |- ( ( ( W e. CPreHil /\ _i e. K ) /\ A e. X /\ B e. X )
                     -> ( A ., B ) = ( sum_ k e. ( 1 ... 4 ) ( ( _i ^ k ) x.
                     ( ( N ` ( A .+ ( ( _i ^ k ) .x. B ) ) ) ^ 2 ) ) / 4 ) ) $=
      ( wcel co ccph ci wa w3a cfv c2 cexp csg cmin cmul caddc c4 c1 cfz cv csu
      cdiv eqid cphipval2 cneg cc wceq ax-icn a1i simp1l cgrp cphngp ngpgrp syl
      cngp adantr 3ad2ant1 simp2 clmod cphlmod 3anim1i lmodvscl 3adant2 syl3anc
      3expa grpcl nmsq syl2anc cr reipcl recnd eqeltrd mulcld cclm cphclm simp3
      clmneg1 addneg1mul clmvsubval eqcomd syl3an1 fveq2d oveq1d oveq2d cminusg
      eqtrd simp1r clmvsneg grpsubval eqtr4d oveq12d anim1i clmvs1 mulid2d nnuz
      cn c3 df-4 oveq2 syl6eq nnnn0 expcld adantl cmodscexp sylan df-3 cn0 df-2
      i4 i3 i2 cz 1z exp1 ax-mp fsum1 sylancr 1nn jctil fsump1i simprd grpsubcl
      eqidd subcld addcomd subadd23d subdir2d 3eqtr2d negsubd mulneg1d 3eqtr4rd
      sub32d eqtr3d ) JUASZUBHSZUCZAKSZBKSZUDZABGTABCTZIUEZUFUGTZABJUHUEZTZIUEZ
      UFUGTZUITZUBAUBBDTZCTZIUEZUFUGTZAUVCUURTZIUEZUFUGTZUITZUJTZUKTZULUQTUMULU
      NTUBEUOZUGTZAUVNBDTZCTZIUEZUFUGTZUJTZEUPZULUQTABCDFGHUURIJKLMNOPUURURZQRU
      SUUNUVLUVTULUQUUNUBUVFUJTZUMUTZAUWCBDTZCTZIUEZUFUGTZUJTZUKTZUBUTZAUWJBDTZ
      CTZIUEZUFUGTZUJTZUKTZUMAUMBDTZCTZIUEZUFUGTZUJTZUKTZUWBUVAUITZUWJUVIUJTZUK
      TZUUQUKTZUVTUVLUUNUWPUXEUXAUUQUKUUNUWIUXCUWOUXDUKUUNUWIUWBUWGUITZUXCUUNUW
      BVASZUWGVASUWIUXGVBUUNUBUVFUBVASZUUNVCVDZUUNUVFUVDUVDGTZVAUUNUUIUVDKSZUVF
      UXKVBUUIUUJUULUUMVEZUUNJVFSZUULUVCKSZUXLUUKUULUXNUUMUUIUXNUUJUUIJVJSUXNJV
      GJVHVIVKZVLZUUKUULUUMVMZUUKUUMUXOUULUUKUUMUCJVNSZUUJUUMUDZUXOUUIUUJUUMUXT
      UUIUXSUUJUUMJVOZVPVTUBDFHKJBLQNRVQVIVRZKCJAUVCLMWAVSZUVDGIKJLPOWBWCUUNUXK
      UUNUUIUXLUXKWDSUXMUYCUVDGKJLPWEWCWFWGZWHZUUNUWGUUNUWGUWEUWEGTZWDUUNUUIUWE
      KSZUWGUYFVBUXMUUNUXNUULUWDKSZUYGUXQUXRUUNUXSUWCHSZUUMUYHUUKUULUXSUUMUUIUX
      SUUJUYAVKVLZUUKUULUYIUUMUUIUYIUUJUUIJWISZUYIJWJZFHJQRWLVIVKVLUUKUULUUMWKZ
      UWCDFHKJBLQNRVQVSKCJAUWDLMWAVSZUWEGIKJLPOWBWCUUNUUIUYGUYFWDSUXMUYNUWEGKJL
      PWEWCWGWFUWBUWGWMWCUUNUWGUVAUWBUIUUNUWFUUTUFUGUUNUWEUUSIUUKUYKUULUUMUWEUU
      SVBUUIUYKUUJUYLVKZUYKUULUUMUDUUSUWEABCDFUURKJLMUWAQNWNWOWPWQWRWSXAUUNUWNU
      VIUWJUJUUNUWMUVHUFUGUUNUWLUVGIUUNUWLAUVCJWTUEZUEZCTZUVGUUNUWKUYQACUUNUYQU
      WKUUNKUBDFHUYPJBLQNUYPURZRUUKUULUYKUUMUYOVLUYMUUIUUJUULUUMXBXCWOWSUUNUULU
      XOUVGUYRVBUXRUYBKCJUYPUURAUVCLMUYSUWAXDWCXEWQWRWSXFUUNUXAUMUUQUJTUUQUUNUW
      TUUQUMUJUUNUWSUUPUFUGUUNUWRUUOIUUNUWQBACUUNUYKUUMUCZUWQBVBUUKUUMUYTUULUUK
      UYKUUMUYOXGVRDKJBLNXHVIWSWQWRWSUUNUUQUUNUUQUUNUUQUUOUUOGTZWDUUNUUIUUOKSZU
      UQVUAVBUXMUUKUXNUULUUMVUBUXPKCJABLMWAWPZUUOGIKJLPOWBWCUUNUUIVUBVUAWDSUXMV
      UCUUOGKJLPWEWCWGWFZXIXAXFUUNULXKSUVTUXBVBUUNUVSUXAUWPUXBEXLUMULXKXJXMUVMU
      LVBZUVNUMUVRUWTUJVUEUVNUBULUGTUMUVMULUBUGXNYDXOZVUEUVQUWSUFUGVUEUVPUWRIVU
      EUVOUWQACVUEUVNUMBDVUFWRWSWQWRXFUUNUVMXKSZUCZUVNUVRVUGUVNVASUUNVUGUBUVMUX
      IVUGVCVDUVMXPZXQXRVUHUVRUVPUVPGTZVAVUHUUIUVPKSZUVRVUJVBUUNUUIVUGUXMVKZVUH
      UXNUULUVOKSZVUKUUNUXNVUGUXQVKUUNUULVUGUXRVKVUHUXSUVNHSZUUMVUMUUNUXSVUGUYJ
      VKUUNUYKUUJUCZVUGVUNUUKUULVUOUUMUUIUYKUUJUYLXGVLFHUVMJQRXSXTUUNUUMVUGUYMV
      KUVNDFHKJBLQNRVQVSKCJAUVOLMWAVSZUVPGIKJLPOWBWCZVUHVUJVUHUUIVUKVUJWDSVULVU
      PUVPGKJLPWEZWCWFWGZWHUUNUVSUWOUWIUWPEUFUMXLXKXJYAUVMXLVBZUVNUWJUVRUWNUJVU
      TUVNUBXLUGTUWJUVMXLUBUGXNYEXOZVUTUVQUWMUFUGVUTUVPUWLIVUTUVOUWKACVUTUVNUWJ
      BDVVAWRWSWQWRXFVUHUVNUVRVUHUBUVMUXIVUHVCVDVUGUVMYBSUUNVUIXRXQZVUHUVRVUJVA
      VUQVUHUUIVUKVUJVASVULVUPUUIVUKUCVUJVURWFWCWGWHUUNUVSUWHUWBUWIEUMUMUFXKXJY
      CUVMUFVBZUVNUWCUVRUWGUJVVCUVNUBUFUGTUWCUVMUFUBUGXNYFXOZVVCUVQUWFUFUGVVCUV
      PUWEIVVCUVOUWDACVVCUVNUWCBDVVDWRWSWQWRXFVUHUVNUVRVVBVUSWHUUNUMUMUNTUVSEUP
      UWBVBZUMXKSUUNUMYGSUXHVVEYHUYEUVSUWBEUMUVMUMVBZUVNUBUVRUVFUJVVFUVNUBUMUGT
      ZUBUVMUMUBUGXNUXIVVGUBVBVCUBYIYJXOZVVFUVQUVEUFUGVVFUVPUVDIVVFUVOUVCACVVFU
      VNUBBDVVHWRWSWQWRXFYKYLYMYNUUNUWIYRYOUUNUWPYRYOUUNUXBYRYOYPUUNUVLUXCUBUVI
      UJTZUITZUUQUKTZUXFUUNUVLUVKUVBUKTUVKUVAUITZUUQUKTVVKUUNUVBUVKUUNUUQUVAVUD
      UUNUVAUUNUVAUUSUUSGTZWDUUNUUIUUSKSZUVAVVMVBUXMUUKUXNUULUUMVVNUXPKJUURABLU
      WAYQWPZUUSGIKJLPOWBWCUUNUUIVVNVVMWDSUXMVVOUUSGKJLPWEWCWGWFZYSUUNUBUVJUXJU
      UNUVFUVIUYDUUNUVIUUNUVIUVGUVGGTZWDUUNUUIUVGKSZUVIVVQVBUXMUUNUXNUULUXOVVRU
      XQUXRUYBKJUURAUVCLUWAYQVSZUVGGIKJLPOWBWCUUNUUIVVRVVQWDSUXMVVSUVGGKJLPWEWC
      WGWFZYSWHZYTUUNUVKUVAUUQVWAVVPVUDUUAUUNVVLVVJUUQUKUUNVVLUWBVVIUITZUVAUITV
      VJUUNUVKVWBUVAUIUUNUVFUVIUBUYDVVTUXJUUBWRUUNUWBVVIUVAUYEUUNUBUVIUXJVVTWHZ
      VVPUUGXAWRUUCUUNVVJUXEUUQUKUUNUXCVVIUTZUKTVVJUXEUUNUXCVVIUUNUWBUVAUYEVVPY
      SVWCUUDUUNVWDUXDUXCUKUUNUXDVWDUUNUBUVIUXJVVTUUEWOWSUUHWRXAUUFWRXA $.
  $}

  ${
    $d r A $.  $d r B $.  $d r D $.  $d x y ph $.  $d r x y T $.  $d r x y U $.
    $d r ., $.  $d r R $.  $d r y V $.
    ipcn.v $e |- V = ( Base ` W ) $.
    ipcn.h $e |- ., = ( .i ` W ) $.
    ipcn.d $e |- D = ( dist ` W ) $.
    ipcn.n $e |- N = ( norm ` W ) $.
    ipcn.t $e |- T = ( ( R / 2 ) / ( ( N ` A ) + 1 ) ) $.
    ipcn.u $e |- U = ( ( R / 2 ) / ( ( N ` B ) + T ) ) $.
    ipcn.w $e |- ( ph -> W e. CPreHil ) $.
    ipcn.a $e |- ( ph -> A e. V ) $.
    ipcn.b $e |- ( ph -> B e. V ) $.
    ipcn.r $e |- ( ph -> R e. RR+ ) $.
    ${
      ipcn.x $e |- ( ph -> X e. V ) $.
      ipcn.y $e |- ( ph -> Y e. V ) $.
      ipcn.1 $e |- ( ph -> ( A D X ) < U ) $.
      ipcn.2 $e |- ( ph -> ( B D Y ) < T ) $.
      $( The inner product operation of a subcomplex pre-Hilbert space is
         continuous.  (Contributed by Mario Carneiro, 13-Oct-2015.) $)
      ipcnlem2 $p |- ( ph -> ( abs ` ( ( A ., B ) - ( X ., Y ) ) ) < R ) $=
        ( co ccph wcel cc cphipcl syl3anc rpred cmin cabs c1 caddc cmul c2 cdiv
        cfv subcld abscld cngp cr cnlm cphnlm syl nlmngp nmcl syl2anc cc0 nmge0
        cle wbr ge0p1rpd cmt mscl remulcld rehalfcld csg wceq cphsubdi syl13anc
        ngpms eqid fveq2d cgrp ngpgrp grpsubcl ipcau ngpds oveq2d breqtrrd cxme
        eqbrtrrd msxms xmsge0 lep1d lemul1ad syl6breq ltmuldiv2d mpbird lelttrd
        letrd clt crp rphalfcld rpdivcld syl5eqel readdcld oveq1d nm2dif ngpdsr
        cphsubdir resubcld ltled lesubadd2d mpbid lemul2ad wb ltaddrpd ltmuldiv
        0red syl112anc abs3lemd ) ABCHUHZLMHUHZBMHUHZEAKUIUJZBJUJZCJUJZYHUKUJTU
        AUBBCHJKNOULUMZAYKLJUJZMJUJZYIUKUJTUDUELMHJKNOULUMZAYKYLYPYJUKUJTUAUEBM
        HJKNOULUMZAEUCUNZAYHYJUOUHZUPVBZBIVBZUQURUHZCMDUHZUSUHZEUTVAUHZAYTAYHYJ
        YNYRVCVDZAUUCUUDAUUCAUUBAKVEUJZYLUUBVFUJAKVGUJZUUHAYKUUITKVHVIKVJVIZUAB
        KIJNQVKVLZAUUHYLVMUUBVOVPUUJUABKIJNQVNVLVQZUNZAKVRUJZYMYPUUDVFUJAUUHUUN
        UUJKWFVIZUBUECMDKJNPVSUMZVTZAEYSWAZAUUAUUBUUDUSUHZUUEUUGAUUBUUDUUKUUPVT
        UUQABCMKWBVBZUHZHUHZUPVBZUUAUUSVOAUVBYTUPAYKYLYMYPUVBYTWCTUAUBUEBCMHUUT
        JKONUUTWGZWDWEWHAUVCUUBUVAIVBZUSUHZUUSVOAYKYLUVAJUJZUVCUVFVOVPTUAAKWIUJ
        ZYMYPUVGAUUHUVHUUJKWJVIZUBUEJKUUTCMNUVDWKUMHIJKBUVANOQWLUMAUUDUVEUUBUSA
        UUHYMYPUUDUVEWCUUJUBUECMDKUUTIJQNUVDPWMUMWNWOWQAUUBUUCUUDUUKUUMUUPAKWPU
        JZYMYPVMUUDVOVPAUUNUVJUUOKWRVIZUBUECMDKJNPWSUMAUUBUUKWTXAXFAUUEUUFXGVPU
        UDUUFUUCVAUHZXGVPAUUDFUVLXGUGRXBAUUDUUFUUCUUPUURUULXCXDXEAYJYIUOUHZUPVB
        ZBLDUHZCIVBZFURUHZUSUHZUUFAUVMAYJYIYRYQVCVDZAUVOUVQAUUNYLYOUVOVFUJZUUOU
        AUDBLDKJNPVSUMZAUVPFAUUHYMUVPVFUJUUJUBCKIJNQVKVLZAFAFUVLXHRAUUFUUCAEUCX
        IUULXJXKZUNZXLZVTZUURAUVNUVOMIVBZUSUHZUVRUVSAUVOUWGUWAAUUHYPUWGVFUJUUJU
        EMKIJNQVKVLZVTUWFABLUUTUHZMHUHZUPVBZUVNUWHVOAUWKUVMUPAYKYLYOYPUWKUVMWCT
        UAUDUEBLMHUUTJKONUVDXPWEWHAUWLUWJIVBZUWGUSUHZUWHVOAYKUWJJUJZYPUWLUWNVOV
        PTAUVHYLYOUWOUVIUAUDJKUUTBLNUVDWKUMUEHIJKUWJMNOQWLUMAUVOUWMUWGUSAUUHYLY
        OUVOUWMWCUUJUAUDBLDKUUTIJQNUVDPWMUMXMWOWQAUWGUVQUVOUWIUWEUWAAUVJYLYOVMU
        VOVOVPUVKUAUDBLDKJNPWSUMAUWGUVPUOUHZFVOVPUWGUVQVOVPAUWPUUDFAUWGUVPUWIUW
        BXQUUPUWDAUWPMCUUTUHIVBZUUDVOAUUHYPYMUWPUWQVOVPUUJUEUBMCKUUTIJNQUVDXNUM
        AUUHYMYPUUDUWQWCUUJUBUECMDKUUTIJQNUVDPXOUMWOAUUDFUUPUWDUGXRXFAUWGUVPFUW
        IUWBUWDXSXTYAXFAUVRUUFXGVPZUVOUUFUVQVAUHZXGVPZAUVOGUWSXGUFSXBAUVTUUFVFU
        JUVQVFUJVMUVQXGVPUWRUWTYBUWAUURUWEAVMUVPUVQAYEUWBUWEAUUHYMVMUVPVOVPUUJU
        BCKIJNQVNVLAUVPFUWBUWCYCXEUVOUUFUVQYDYFXDXEYG $.
    $}

    $( The inner product operation of a subcomplex pre-Hilbert space is
       continuous.  (Contributed by Mario Carneiro, 13-Oct-2015.) $)
    ipcnlem1 $p |- ( ph -> E. r e. RR+ A. x e. V A. y e. V
      ( ( ( A D x ) < r /\ ( B D y ) < r ) ->
        ( abs ` ( ( A ., B ) - ( x ., y ) ) ) < R ) ) $=
      ( cle wbr cif crp wcel cv co clt wa cmin cabs cfv wi wral wrex c2 cdiv c1
      caddc rphalfcld cngp cr cnlm ccph cphnlm syl nlmngp nmcl syl2anc ge0p1rpd
      nmge0 rpdivcld syl5eqel rpred readdcld 0red ltaddrpd lelttrd elrpd adantr
      cc0 ifcld simprll simprlr ngpms mscl syl3anc simprrl min2 ltletrd simprrr
      min1 ipcnlem2 expr ralrimivva wceq breq2 anbi12d imbi1d 2ralbidv rspcev
      cmt ) AHIUEUFZHIUGZUHUIZDBUJZFUKZXHULUFZECUJZFUKZXHULUFZUMZDEJUKXJXMJUKUN
      UKUOUPGULUFZUQZCLURBLURZXKNUJZULUFZXNXTULUFZUMZXQUQZCLURBLURZNUHUSAXGHIUH
      AHGUTVAUKZDKUPZVBVCUKZVAUKUHSAYFYHAGUDVDZAYGAMVEUIZDLUIZYGVFUIAMVGUIZYJAM
      VHUIZYLUAMVIVJMVKVJZUBDMKLORVLVMAYJYKWEYGUEUFYNUBDMKLORVOVMVNVPVQZAIYFEKU
      PZHVCUKZVAUKUHTAYFYQYIAYQAYPHAYJELUIZYPVFUIYNUCEMKLORVLVMZAHYOVRZVSZAWEYP
      YQAVTYSUUAAYJYRWEYPUEUFYNUCEMKLORVOVMAYPHYSYOWAWBWCVPVQZWFZAXRBCLLAXJLUIZ
      XMLUIZUMZXPXQAUUFXPUMZUMZDEFGHIJKLMXJXMOPQRSTAYMUUGUAWDAYKUUGUBWDZAYRUUGU
      CWDZAGUHUIUUGUDWDAUUDUUEXPWGZAUUDUUEXPWHZUUHXKXHIUUHMXFUIZYKUUDXKVFUIUUHY
      JUUMAYJUUGYNWDMWIZVJUUIUUKDXJFMLOQWJWKUUHXHAXIUUGUUCWDVRZAIVFUIZUUGAIUUBV
      RWDZAUUFXLXOWLUUHHVFUIZUUPXHIUEUFAUURUUGYTWDZUUQHIWMVMWNUUHXNXHHUUHUUMYRU
      UEXNVFUIAUUMUUGAYJUUMYNUUNVJWDUUJUULEXMFMLOQWJWKUUOUUSAUUFXLXOWOUUHUURUUP
      XHHUEUFUUSUUQHIWPVMWNWQWRWSYEXSNXHUHXTXHWTZYDXRBCLLUUTYCXPXQUUTYAXLYBXOXT
      XHXKULXAXTXHXNULXAXBXCXDXEVM $.
  $}

  ${
    $d r s w x y z ., $.  $d r s x y K $.  $d r s w x y z W $.
    ipcn.f $e |- ., = ( .if ` W ) $.
    ipcn.j $e |- J = ( TopOpen ` W ) $.
    ipcn.k $e |- K = ( TopOpen ` CCfld ) $.
    $( The inner product operation of a subcomplex pre-Hilbert space is
       continuous.  (Contributed by Mario Carneiro, 13-Oct-2015.) $)
    ipcn $p |- ( W e. CPreHil -> ., e. ( ( J tX J ) Cn K ) ) $=
      ( vz vs vw vr wcel cfv co cc clt wa wral crp eqid vx vy ccph cds cbs cres
      cxp cmopn ctx ccn wf cv wbr cabs cmin ccom wi wrex csca cphphl phlipf syl
      cphl cclm wss cphclm clmsscn fssd cip c2 cdiv cnm c1 caddc simpll simplrl
      simplrr simpr ipcnlem1 ralrimiva simprl ovresd breq1d simprr anbi12d wceq
      ad2antrr fovrnd cnmetdval syl2anc ipfval adantl oveq12d imbi12d 2ralbidva
      fveq2d eqtrd rexbidv ralbidv mpbird ralrimivva cxmt cxme cmt cphngp ngpms
      wb msxms xmsxmet cnxmet cnfldtopn txmetcn syl3anc mpbir2and mstopn oveq1d
      cngp a1i eleqtrrd ) DUCLZADUDMZDUEMZYBUGZUFZUHMZYEUINZCUJNZBBUINZCUJNXTAY
      GLZYCOAUKZUAULZHULZYDNZIULZPUMZUBULZJULZYDNZYNPUMZQZYKYPANZYLYQANZUNUOUPZ
      NZKULZPUMZUQZJYBRHYBRZISURZKSRZUBYBRUAYBRZXTYCDUSMZUEMZOAXTDVCLYCUUMAUKDU
      TUULAUUMYBDYBTZEUULTZUUMTZVAVBXTDVDLUUMOVEDVFUULUUMDUUOUUPVGVBVHZXTUUJUAU
      BYBYBXTYKYBLZYPYBLZQZQZUUJYKYLYANZYNPUMZYPYQYANZYNPUMZQZYKYPDVIMZNZYLYQUV
      GNZUONZUNMZUUEPUMZUQZJYBRHYBRZISURZKSRUVAUVOKSUVAUUESLZQHJYKYPYAUUEUUEVJV
      KNZYKDVLMZMVMVNNVKNZUVQYPUVRMUVSVNNVKNZUVGUVRYBDIUUNUVGTZYATUVRTUVSTUVTTX
      TUUTUVPVOXTUURUUSUVPVPXTUURUUSUVPVQUVAUVPVRVSVTUVAUUIUVOKSUVAUUHUVNISUVAU
      UGUVMHJYBYBUVAYLYBLZYQYBLZQZQZYTUVFUUFUVLUWEYOUVCYSUVEUWEYMUVBYNPUWEYKYLY
      AYBXTUURUUSUWDVPZUVAUWBUWCWAZWBWCUWEYRUVDYNPUWEYPYQYAYBXTUURUUSUWDVQZUVAU
      WBUWCWDZWBWCWEUWEUUDUVKUUEPUWEUUDUUAUUBUONZUNMZUVKUWEUUAOLUUBOLUUDUWKWFUW
      EYKYPOYBYBAXTYJUUTUWDUUQWGZUWFUWHWHUWEYLYQOYBYBAUWLUWGUWIWHUUAUUBUUCUUCTW
      IWJUWEUWJUVJUNUWEUUAUVHUUBUVIUOUWEUURUUSUUAUVHWFUWFUWHAUVGYBDYKYPUUNUWAEW
      KWJUWDUUBUVIWFUVAAUVGYBDYLYQUUNUWAEWKWLWMWPWQWCWNWOWRWSWTXAXTYDYBXBMLZUWM
      UUCOXBMLZYIYJUUKQXGXTDXCLZUWMXTDXDLZUWOXTDXQLUWPDXEDXFVBZDXHVBYDDYBUUNYDT
      ZXIVBZUWSUWNXTXJXRUAUBKIJHYDYDUUCAYEYECYBYBOYETZUWTCGXKXLXMXNXTYHYFCUJXTB
      YEBYEUIXTUWPBYEWFUWQYDBDYBFUUNUWRXOVBZUXAWMXPXS $.
  $}

  ${
    $d x y C $.  $d x y J $.  $d x K $.  $d x y ph $.  $d x y W $.  $d x y X $.
    $d x y Y $.
    cnmpt1ip.j $e |- J = ( TopOpen ` W ) $.
    cnmpt1ip.c $e |- C = ( TopOpen ` CCfld ) $.
    cnmpt1ip.h $e |- ., = ( .i ` W ) $.
    cnmpt1ip.r $e |- ( ph -> W e. CPreHil ) $.
    cnmpt1ip.k $e |- ( ph -> K e. ( TopOn ` X ) ) $.
    ${
      cnmpt1ip.a $e |- ( ph -> ( x e. X |-> A ) e. ( K Cn J ) ) $.
      cnmpt1ip.b $e |- ( ph -> ( x e. X |-> B ) e. ( K Cn J ) ) $.
      $( Continuity of inner product; analogue of ~ cnmpt12f which cannot be
         used directly because ` .i ` is not a function.  (Contributed by Mario
         Carneiro, 13-Oct-2015.) $)
      cnmpt1ip $p |- ( ph -> ( x e. X |-> ( A ., B ) ) e. ( K Cn C ) ) $=
        ( cfv co wcel cipf cmpt ccn cv wa cbs wceq wral ctopon ctps ccph cphngp
        wf cngp ngptps 3syl eqid istps cnf2 syl3anc fmpt sylibr r19.21bi ipfval
        sylib syl2anc mpteq2dva ctx ipcn syl cnmpt12f eqeltrrd ) ABJCDIUARZSZUB
        BJCDFSZUBHEUCSABJVNVOABUDJTUECIUFRZTZDVPTZVNVOUGAVQBJAJVPBJCUBZUMZVQBJU
        HAHJUIRTZGVPUIRTZVSHGUCSZTVTOAIUJTZWBAIUKTZIUNTWDNIULIUOUPVPGIVPUQZKURV
        EZPVSHGJVPUSUTBJVPCVSVSUQVAVBVCAVRBJAJVPBJDUBZUMZVRBJUHAWAWBWHWCTWIOWGQ
        WHHGJVPUSUTBJVPDWHWHUQVAVBVCVMFVPICDWFMVMUQZVDVFVGABCDVMHGGEJOPQAWEVMGG
        VHSEUCSTNVMGEIWJKLVIVJVKVL $.
    $}

    cnmpt2ip.l $e |- ( ph -> L e. ( TopOn ` Y ) ) $.
    cnmpt2ip.a $e |- ( ph -> ( x e. X , y e. Y |-> A ) e.
                                ( ( K tX L ) Cn J ) ) $.
    cnmpt2ip.b $e |- ( ph -> ( x e. X , y e. Y |-> B ) e.
                                ( ( K tX L ) Cn J ) ) $.
    $( Continuity of inner product; analogue of ~ cnmpt22f which cannot be used
       directly because ` .i ` is not a function.  (Contributed by Mario
       Carneiro, 13-Oct-2015.) $)
    cnmpt2ip $p |- ( ph ->
        ( x e. X , y e. Y |-> ( A ., B ) ) e. ( ( K tX L ) Cn C ) ) $=
      ( cipf cfv co cmpt2 ctx ccn wcel wceq cbs wral cxp ctopon txtopon syl2anc
      cv wa wf ctps ccph cngp cphngp ngptps 3syl eqid istps sylib syl3anc fmpt2
      cnf2 sylibr r19.21bi ipfval 3impa mpt2eq3dva ipcn syl cnmpt22f eqeltrrd )
      ABCLMDEKUBUCZUDZUEBCLMDEGUDZUEIJUFUDZFUGUDABCLMWAWBABUPLUHZCUPMUHZWAWBUIZ
      AWDUQZWEUQDKUJUCZUHZEWHUHZWFWGWICMAWICMUKZBLALMULZWHBCLMDUEZURZWKBLUKAWCW
      LUMUCUHZHWHUMUCUHZWMWCHUGUDZUHWNAILUMUCUHJMUMUCUHWORSIJLMUNUOZAKUSUHZWPAK
      UTUHZKVAUHWSQKVBKVCVDWHHKWHVEZNVFVGZTWMWCHWLWHVJVHBCLMDWHWMWMVEVIVKVLVLWG
      WJCMAWJCMUKZBLAWLWHBCLMEUEZURZXCBLUKAWOWPXDWQUHXEWRXBUAXDWCHWLWHVJVHBCLME
      WHXDXDVEVIVKVLVLVTGWHKDEXAPVTVEZVMUOVNVOABCDEVTIJHHFLMRSTUAAWTVTHHUFUDFUG
      UDUHQVTHFKXFNOVPVQVRVS $.
  $}

  ${
    $d x y C $.  $d x y J $.  $d x y S $.  $d x y W $.
    csscld.c $e |- C = ( CSubSp ` W ) $.
    csscld.j $e |- J = ( TopOpen ` W ) $.
    $( A "closed subspace" in a subcomplex pre-Hilbert space is actually closed
       in the topology induced by the norm, thus justifying the terminology
       "closed subspace".  (Contributed by Mario Carneiro, 13-Oct-2015.) $)
    csscld $p |- ( ( W e. CPreHil /\ S e. C ) -> S e. ( Clsd ` J ) ) $=
      ( vy vx wcel wa cfv cv co c0g wceq crab cin eqid syl cc ccph cuni cip cbs
      cocv csca ciin ccld cssi adantl wral wss ocvss ocvval mp1i riinrab ctopon
      syl6eqr ctps cnlm cphnlm adantr nlmngp ngptps istps sylib toponuni ineq1d
      cngp 3syl ctop topontop sseli cmpt ccnv csn cima cvv fvex mptiniseg ax-mp
      3eqtrd ccnfld ctopn ccn simpll cnmptid cnmptc cnmpt1ip cha cnfldhaus cclm
      simpr cc0 cphclm clm0 ad2antrr 0cn syl6eqelr cnfldtopon toponunii sylancr
      sncld cnclima syl2anc syl5eqelr sylan2 ralrimiva riincld eqeltrd ) DUAIZB
      AIZJZBCUBZGBDUEKZKZHLZGLZDUCKZMZDUFKZNKZOZHDUDKZPZUGZQZCUHKZXMBXPXOKZYDYF
      QZYGXLBYIOXKABXODXORZEUIUJXMYIYCGXPUKHYDPZYJXPYDULYIYLOXMBXOYDDYDRZYKUMZH
      GXPYAXSXOYDDYBYMXSRZYARZYBRYKUNUOYCGHYDXPUPURXMYDXNYFXMCYDUQKIZYDXNOXMDUS
      IZYQXMDUTIZDVIIYRXKYSXLDVAVBDVCDVDVJYDCDYMFVEVFZYDCVGSVHWBXMCVKIZYEYHIZGX
      PUKYGYHIXMYQUUAYTYDCVLSXMUUBGXPXRXPIXMXRYDIZUUBXPYDXRYNVMXMUUCJZYEHYDXTVN
      ZVOYBVPZVQZYHYBVRIUUGYEOYANVSHYDXTYBUUEVRUUERVTWAUUDUUECWCWDKZWEMIUUFUUHU
      HKIZUUGYHIUUDHXQXRUUHXSCCDYDFUUHRZYOXKXLUUCWFXMYQUUCYTVBZUUDHCYDUUKWGUUDH
      XRCCYDYDUUKUUKXMUUCWMWHWIUUDUUHWJIYBTIUUIUUHUUJWKUUDYBWNTXKWNYBOZXLUUCXKD
      WLIUULDWOYADYPWPSWQWRWSYBUUHTTUUHUUHUUJWTXAXCXBUUFUUECUUHXDXEXFXGXHGXPYEC
      XNXNRXIXEXJ $.
  $}

  ${
    $d x y J $.  $d x y O $.  $d x y S $.  $d x y V $.  $d x y W $.
    clsocv.v $e |- V = ( Base ` W ) $.
    clsocv.o $e |- O = ( ocv ` W ) $.
    clsocv.j $e |- J = ( TopOpen ` W ) $.
    $( The orthogonal complement of the closure of a subset is the same as the
       orthogonal complement of the subset itself.  (Contributed by Mario
       Carneiro, 13-Oct-2015.) $)
    clsocv $p |- ( ( W e. CPreHil /\ S C_ V ) ->
      ( O ` ( ( cls ` J ) ` S ) ) = ( O ` S ) ) $=
      ( vy wcel wss cfv syl adantr sylib wceq eqid syl2anc cin cc ccph ccl ctop
      vx wa cuni ctopon ctps cngp cphngp ngptps istps topontop toponuni sseqtrd
      simpr sscls ocv2ss cv cip co csca c0g wral clsss3 sseqtr4d ocvss a1i crab
      sselda ccld cab df-ss ineq1d dfrab3 ineq2i inass eqtr4i 3eqtr4g cmpt ccnv
      clscld csn cima cvv fvex mptiniseg ax-mp ccnfld ccn simpll cnmptc cnmptid
      ctopn cnmpt1ip cha cnfldhaus cc0 cclm cphclm clm0 ad2antrr 0cn cnfldtopon
      syl6eqelr toponunii sncld sylancr syl5eqelr incld eqeltrrd ocvi ralrimiva
      adantl ssrab sylanbrc clsss2 ssrab2 eqssd rabid2 elocv syl3anbrc ex ssrdv
      cnclima ) EUAJZADKZUEZABUBLLZCLZACLZYHAYIKZYJYKKYHBUCJZABUFZKZYLYHBDUGLJZ
      YMYHEUHJZYPYFYQYGYFEUIJYQEUJEUKMNDBEFHULOZDBUMMZYHADYNYFYGUPYHYPDYNPYRDBU
      NMZUOZABYNYNQZUQRZYIACEGURMYHUDYKYJYHUDUSZYKJZUUDYJJZYHUUEUEZYIDKZUUDDJUU
      DIUSZEUTLZVAZEVBLZVCLZPZIYIVDZUUFYHUUHUUEYHYIYNDYHYMYOYIYNKYSUUAABYNUUBVE
      RYTVFNZYHYKDUUDYKDKYHACDEFGVGVHVJZUUGYIUUNIYIVIZPUUOUUGYIUURUUGUURBVKLZJA
      UURKZYIUURKUUGYIUUNIDVIZSZUURUUSUUGYIDSZUUNIVLZSZYIUVDSUVBUURUUGUVCYIUVDU
      UGUUHUVCYIPUUPYIDVMOVNUVBYIDUVDSZSUVEUVAUVFYIUUNIDVOVPYIDUVDVQVRUUNIYIVOV
      SUUGYIUUSJZUVAUUSJUVBUUSJYHUVGUUEYHYMYOUVGYSUUAABYNUUBWBRNUUGUVAIDUUKVTZW
      AUUMWCZWDZUUSUUMWEJUVJUVAPUULVCWFIDUUKUUMUVHWEUVHQWGWHUUGUVHBWIWNLZWJVAJU
      VIUVKVKLJZUVJUUSJUUGIUUDUUIUVKUUJBBEDHUVKQZUUJQZYFYGUUEWKYHYPUUEYRNZUUGIU
      UDBBDDUVOUVOUUQWLUUGIBDUVOWMWOUUGUVKWPJUUMTJUVLUVKUVMWQUUGUUMWRTYFWRUUMPZ
      YGUUEYFEWSJUVPEWTUULEUULQZXAMXBXCXEUUMUVKTTUVKUVKUVMXDXFXGXHUVIUVHBUVKYER
      XIYIUVABXJRXKUUGYLUUNIAVDZUUTYHYLUUEUUCNUUEUVRYHUUEUUNIAUUDUUIAUULUUJCDEU
      UMFUVNUVQUUMQZGXLXMXNUUNIYIAXOXPUURABYNUUBXQRUURYIKUUGUUNIYIXRVHXSUUNIYIX
      TOIUUDYIUULUUJCDEUUMFUVNUVQUVSGYAYBYCYDXS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Neighborhoods and closure
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

$(
  @c neiOLD @.
  @c accOLD @.
  @c acc @.
  @c cls @.
  @c int @.

  @( Extend class notation with neighborhood of a metric space point. @)
  cne @a class neiOLD @.

  @( Extend class notation with accumulation points (limit points) of
     a metric space point. @)
  cacOLD @a class accOLD @.

  @( Extend class notation with accumulation points (limit points) of
     a metric space point. @)
  cac @a class acc @.

  @( Extend class notation with closure of a metric space subset. @)
  ccl @a class cls @.

  @( Extend class notation with interior of a metric space subset. @)
  cnt @a class int @.

  @{
    @d u v w x y z @.
    @( Define a function on metric spaces whose value is the relation "subset
       ` x ` is a neighborhood of point ` y ` ." @)
    df-neiOLD @a |- neiOLD =
             { <. z , w >. | ( z e. MetSp /\ w = { <. x , y >. |
      ( x C_ ( 1st ` z ) /\ y e. ( 1st ` z ) /\ E. v e. RR
      ( 0 < v /\ ( y ( ball ` z ) v ) C_ x ) ) } ) } @.

    @( Define a function on metric spaces whose value is the relation " ` x `
       is an accumulation point (limit point) of subset ` y ` ." @)
    df-accOLD @a |- accOLD =
                   { <. z , w >. | ( z e. MetSp /\ w = { <. x , y >. |
      ( x e. ( 1st ` z ) /\ y C_ ( 1st ` z ) /\ A. v ( ( v C_ ( 1st ` z ) /\
       v ( neiOLD ` z ) x ) -> E. u e. v ( u e. y /\ -. u = x ) ) ) } ) } @.

    @( Define a function on metric spaces whose value is the relation " ` x `
       is an accumulation point (limit point) of subset ` y ` ." @)
    df-acc @a |- acc = { <. z , w >. | ( z e. MetSp /\ w = { <. x , y >. |
      ( x e. ( 1st ` z ) /\ y C_ ( 1st ` z ) /\ A. v e. RR ( 0 < v -> E. u e.
      ( x ( ball ` z ) v ) ( u e. y /\ -. u = x ) ) ) } ) } @.

    @( Define a function on metric spaces whose value is the closure function
       on the subsets of the metric space. @)
    df-clsOLD @a |- cls = { <. z , w >. | ( z e. MetSp /\ w = { <. x , y >. |
      ( x C_ ( 1st ` z ) /\
      y = ( x u. { v e. ( 1st ` z ) | v ( acc ` z ) x } ) ) } ) } @.

    @( Define a function on metric spaces whose value is the interior function
       on the subsets of the metric space. @)
    df-ntr @a |- int = { <. z , w >. | ( z e. MetSp /\ w = { <. x , y >. |
      ( x C_ ( 1st ` z ) /\ y = U. { v e. ran ( ball ` z ) | v C_ x } ) } @.
  @}

  @{
    @d u v w x y z M @.  @d v w x y z X @.  @d u v w x y z @.
    accfval.1 @e |- X = ( 1st ` M ) @.
    @( The relation "subset ` x ` is a neighborhood of point ` y ` ." @)
    neifvalOLD @p |- ( M e. MetSp ->
                ( neiOLD ` M ) = { <. x , y >. | ( x C_ X /\
           y e. X /\ E. v e. RR ( 0 < v /\ ( y ( ball ` M ) v ) C_ x ) ) } ) @=
      ( vz vw cv c1st cfv wss wcel cc0 clt wbr cblOLD co wa cr wrex w3a
      copab cmt
      cne wceq fveq2 syl6eqr sseq2d eleq2d oveqd sseq1d anbi2d rexbidv
      3anbi123d opabbidv df-neiOLD cpw cxp cvv fvex eqeltri pwex xpex df-3an
      vex elpw 3anbi1i bitr3i opabbii opabssxp eqsstr3i ssexi
      fvopab4 ) GHDAIZ
      GIZJKZLZBIZVQMZNCIZOPZVSWAVPQKZRZVOLZSZCTUAZUBZABUCVOELZVSEMZWBVSWADQKZRZ
      VOLZSZCTUAZUBZABUCZUDUEVPDUFZWHWPABWRVRWIVTWJWGWOWRVQEVOWRVQDJKZEVPDJUGFU
      HZUIWRVQEVSWTUJWRWFWNCTWRWEWMWBWRWDWLVOWRWCWKVSWAVPDQUGUKULUMUNUOUPABGHCU
      QWQEURZEUSZXAEEEWSUTFDJVAVBZVCXCVDWQVOXAMZWJSWOSZABUCXBXEWPABXEXDWJWOUBWP
      XDWJWOVEXDWIWJWOVOEAVFVGVHVIVJWOABXAEVKVLVMVN @.
      @( [ ?] @) @( [8-Sep-2006] @)

    @( The relation " ` x ` is an accumulation point (limit point) of subset
       ` y ` ." @)
    accfvalOLD @p |- ( M e. MetSp -> ( accOLD ` M ) = { <. x , y >. |
      ( x e. X /\ y C_ X /\ A. v ( ( v C_ X /\
       v ( neiOLD ` M ) x ) -> E. u e. v ( u e. y /\ -. u = x ) ) ) } ) @=
      ( vz vw cv c1st cfv wcel wss cne wbr wa wceq wn wrex wi wal w3a copab
      cmt cacOLD fveq2 syl6eqr eleq2d sseq2d wb breq syl anbi12d imbi1d albidv
      3anbi123d opabbidv df-accOLD cpw cxp cvv fvex eqeltri pwex xpex df-3an
      vex elpw 3anbi2i bitr3i opabbii opabssxp eqsstr3i ssexi
      fvopab4 ) HIEAJZ
      HJZKLZMZBJZVSNZCJZVSNZWCVQVROLZPZQZDJZWAMWHVQRSQDWCTZUAZCUBZUCZABUDVQFMZW
      AFNZWCFNZWCVQEOLZPZQZWIUAZCUBZUCZABUDZUEUFVRERZWLXAABXCVTWMWBWNWKWTXCVSFV
      QXCVSEKLZFVREKUGGUHZUIXCVSFWAXEUJXCWJWSCXCWGWRWIXCWDWOWFWQXCVSFWCXEUJXCWE
      WPRWFWQUKVREOUGWCVQWEWPULUMUNUOUPUQURABHICDUSXBFFUTZVAZFXFFXDVBGEKVCVDZFX
      HVEVFXBWMWAXFMZQWTQZABUDXGXJXAABXJWMXIWTUCXAWMXIWTVGXIWNWMWTWAFBVHVIVJVKV
      LWTABFXFVMVNVOVP @.
      @( [ ?] @) @( [8-Sep-2006] @)

    @( The relation " ` x ` is an accumulation point (limit point) of subset
       ` y ` ." @)
    accfval @p |- ( M e. MetSp -> ( acc ` M ) = { <. x , y >. |
      ( x e. X /\ y C_ X /\ A. v e. RR ( 0 < v -> E. u e.
      ( x ( ball ` M ) v ) ( u e. y /\ -. u = x ) ) ) } ) @=
      ( vz vw cv c1st cfv wcel wss cc0 clt wbr wceq wn wa cblOLD co wrex wi cr
      wral w3a copab cmt cac fveq2 syl6eqr eleq2d sseq2d wb oveqd rexeq syl
      imbi2d ralbidv 3anbi123d opabbidv df-acc cpw cxp cvv fvex eqeltri pwex
      xpex df-3an vex elpw 3anbi2i bitr3i opabbii opabssxp eqsstr3i ssexi
      fvopab4 ) HIEAJZHJZKLZMZBJZWCNZOCJZPQZDJZWEMWIWARSTZDWAWGWBUALZUBZUCZUDZC
      UEUFZUGZABUHWAFMZWEFNZWHWJDWAWGEUALZUBZUCZUDZCUEUFZUGZABUHZUIUJWBERZWPXDA
      BXFWDWQWFWRWOXCXFWCFWAXFWCEKLZFWBEKUKGULZUMXFWCFWEXHUNXFWNXBCUEXFWMXAWHXF
      WLWTRWMXAUOXFWKWSWAWGWBEUAUKUPWJDWLWTUQURUSUTVAVBABHICDVCXEFFVDZVEZFXIFXG
      VFGEKVGVHZFXKVIVJXEWQWEXIMZTXCTZABUHXJXMXDABXMWQXLXCUGXDWQXLXCVKXLWRWQXCW
      EFBVLVMVNVOVPXCABFXIVQVRVSVT @.
      @( [ ?] @) @( [9-Sep-2006] @)

    @( The closure function on the subsets of the metric space. @)
    clsfvalOLD @p |- ( M e. MetSp -> ( cls ` M ) =  { <. x , y >. | ( x C_ X /\
                     y = ( x u. { v e. X | v ( acc ` M ) x } ) ) } ) @=
      ( vz vw cv c1st cfv wss cac wbr crab cun wceq wa copab cmt ccl fveq2
      syl6eqr sseq2d rabeq syl wb breq rabbidv eqtrd uneq2d eqeq2d anbi12d
      opabbidv df-clsOLD cpw wcel cvv vex elpw anbi1i opabbii fvex eqeltri
      pwex
      opabex2 eqeltrri fvopab4 ) GHDAIZGIZJKZLZBIZVICIZVIVJMKZNZCVKOZPZQZRZAB
      SVIELZVMVIVNVIDMKZNZCEOZPZQZRZABSZTUAVJDQZVTWGABWIVLWAVSWFWIVKEVIWIVKDJKZ
      EVJDJUBFUCZUDWIVRWEVMWIVQWDVIWIVQVPCEOZWDWIVKEQVQWLQWKVPCVKEUEUFWIVPWCCEW
      IVOWBQVPWCUGVJDMUBVNVIVOWBUHUFUIUJUKULUMUNABGHCUOVIEUPZUQZWFRZABSWHURWOWG
      ABWNWAWFVIEAUSUTVAVBABWMWEEEWJURFDJVCVDVEVFVGVH @.
      @( [ ?] @) @( [8-Sep-2006] @)

    @( The interior function on the subsets of the metric space. @)
    ntrfval @p |- ( M e. MetSp -> ( int ` M ) =  { <. x , y >. | ( x C_ X /\
                     y = U. { v e. ran ( ball ` M ) | v C_ x } ) } ) @=
?@.
  @}

  @{
    @d w x y z M @.  @d w x y z P @.  @d w x y z S @.  @d w x y z X @.
    accbr.1 @e |- X = ( 1st ` M ) @.
    @( A neighborhood of a point ` P ` is any subset ` S ` that contains a ball
       around ` P ` .  Definition of neighborhood in [Kreyszig] p. 19. @)
    neibrOLD @p |- ( ( M e. MetSp /\ S C_ X /\ P e. X ) ->
                    ( S ( neiOLD ` M ) P <->
                E. x e. RR ( 0 < x /\ ( P ( ball ` M ) x ) C_ S ) ) ) @=
     ( vy vz cmt wcel wss w3a cne cfv wbr cv cc0 clt cblOLD co wa cr wrex copab
      wb wceq neifvalOLD breq syl 3ad2ant1 cpw sseq1 sseq2 anbi2d rexbidv
      3anbi13d eleq1 oveq1 sseq1d 3anbi23d eqid brabg cvv c1st fvex eqeltri
   elpw2g ax-mp sylanbrOLD df-3an baibr bitr4d 3adant1 bitrd ) DIJZCEKZBEJZLCBD
      MNZOZCBGPZEKZHPZEJZQAPZROZWBWDDSNZTZVTKZUAZAUBUCZLZGHUDZOZWEBWDWFTZCKZUAZ
      AUBUCZVOVPVSWMUEZVQVOVRWLUFWRGHADEFUGCBVRWLUHUIUJVPVQWMWQUEVOVPVQUAZWMVPV
      QWQLZWQCEUKZJZVQWMWTUEVPWKVPWCWEWGCKZUAZAUBUCZLWTGHCBXAEWLVTCUFZWAVPWJXEW
      CVTCEULXFWIXDAUBXFWHXCWEVTCWGUMUNUOUPWBBUFZWCVQXEWQVPWBBEUQXGXDWPAUBXGXCW
      OWEXGWGWNCWBBWDWFURUSUNUOUTWLVAVBEVCJXBVPUEEDVDNVCFDVDVEVFCEVCVGVHVIWTWSW
      QVPVQWQVJVKVLVMVN @.
      @( [ ?] @) @( [8-Sep-2006] @)

    @( ` P ` is an accumulation point (also called limit point) of a subset
       ` S ` iff every ball around ` P ` contains a point in ` S ` distinct
       from ` P ` .  Definition 2.20(b) [Rudin] p. 28. @)
    accbr @p |- ( ( M e. MetSp /\ P e. X /\ S C_ X ) -> ( P ( acc ` M ) S <->
            A. x e. RR ( 0 < x -> E. y e. ( P ( ball ` M ) x )
                ( y e. S /\ -. y = P ) ) ) ) @=
      ( vz vw cmt wcel wss w3a cac cfv wbr cv cc0 clt wceq wn wa cblOLD co wrex
      wi cr wral copab wb accfval breq syl 3ad2ant1 cpw eleq1 oveq1 rexeq
      eqeq2 notbid anbi2d rexbidv bitrd imbi2d ralbidv 3anbi13d sseq1 eleq2
      anbi1d 3anbi23d eqid brabg cvv c1st fvex eqeltri elpw2g ax-mp sylan2brOLD
      df-3an baibr bitr4d 3adant1 ) EJKZCFKZDFLZMCDENOZPZCDHQZFKZIQZFLZRAQZSPZB
      QZWKKZWOWITZUAZUBZBWIWMEUCOZUDZUEZUFZAUGUHZMZHIUIZPZWNWODKZWOCTZUAZUBZBCW
      MWTUDZUEZUFZAUGUHZWDWEWHXGUJZWFWDWGXFTXPHIABEFGUKCDWGXFULUMUNWEWFXGXOUJWD
      WEWFUBZXGWEWFXOMZXOWEDFUOZKZXGXRUJWFXEWEWLWNWPXJUBZBXLUEZUFZAUGUHZMXRHICD
      FXSXFWICTZWJWEXDYDWLWICFUPYEXCYCAUGYEXBYBWNYEXBWSBXLUEZYBYEXAXLTXBYFUJWIC
      WMWTUQWSBXAXLURUMYEWSYABXLYEWRXJWPYEWQXIWICWOUSUTVAVBVCVDVEVFWKDTZWLWFYDX
      OWEWKDFVGYGYCXNAUGYGYBXMWNYGYAXKBXLYGWPXHXJWKDWOVHVIVBVDVEVJXFVKVLFVMKXTW
      FUJFEVNOVMGEVNVOVPDFVMVQVRVSXRXQXOWEWFXOVTWAWBWCVC @.
      @( [ ?] @) @( [9-Sep-2006] @)

    @( ` P ` is an accumulation point (also called limit point) of a subset
       ` S ` iff every neighborhood of ` P ` contains a point in ` S ` distinct
       from ` P ` .  Definition of accumulation point in [Kreyszig] p. 21. @)
    accbrOLD @p |- ( ( M e. MetSp /\ P e. X /\ S C_ X ) -> ( P ( accOLD ` M ) S
                   <-> A. x ( ( x C_ X /\ x ( neiOLD ` M ) P ) -> E. y e. x
                   ( y e. S /\ -. y = P ) ) ) ) @=
      ( vz vw cmt wcel wss w3a cacOLD cfv wbr cv cne wa wceq wn wrex wi wal
      copab wb accfvalOLD
      breq syl 3ad2ant1 cpw eleq1 breq2 anbi2d eqeq2 notbid rexbidv
      imbi12d albidv 3anbi13d sseq1 eleq2 anbi1d imbi2d 3anbi23d eqid brabg
      cvv c1st fvex eqeltri elpw2g ax-mp sylan2brOLD
      df-3an baibr bitr4d 3adant1
      bitrd ) EJKZCFKZDFLZMCDENOZPZCDHQZFKZIQZFLZAQZFLZWIWEEROZPZSZBQZWGKZWNWET
      ZUAZSZBWIUBZUCZAUDZMZHIUEZPZWJWICWKPZSZWNDKZWNCTZUAZSZBWIUBZUCZAUDZVTWAWD
      XDUFZWBVTWCXCTXNHIABEFGUGCDWCXCUHUIUJWAWBXDXMUFVTWAWBSZXDWAWBXMMZXMWADFUK
      ZKZXDXPUFWBXBWAWHXFWOXISZBWIUBZUCZAUDZMXPHICDFXQXCWECTZWFWAXAYBWHWECFULYC
      WTYAAYCWMXFWSXTYCWLXEWJWECWIWKUMUNYCWRXSBWIYCWQXIWOYCWPXHWECWNUOUPUNUQURU
      SUTWGDTZWHWBYBXMWAWGDFVAYDYAXLAYDXTXKXFYDXSXJBWIYDWOXGXIWGDWNVBVCUQVDUSVE
      XCVFVGFVHKXRWBUFFEVIOVHGEVIVJVKDFVHVLVMVNXPXOXMWAWBXMVOVPVQVRVS @.
      @( [ ?] @) @( [8-Sep-2006] @)

    @( The closure of a subset of a metric space consists of the subset and
       the accumulation points of the subset.  Definition of closure of
       [Kreyszig] p. 21. @)
    clsval2 @p |- ( ( M e. MetSp /\ S C_ X ) -> ( ( cls ` M ) ` S ) =
                 ( S u. { x e. X | x ( acc ` M ) S } ) ) @=
      ? @.

    @( The interior of a subset of a metric space is the union of all the balls
       it includes.  From Definition 2.20(e) of [Rudin] p. 28.  Rudin uses
       "neighborhood" for what we call "ball." @)
    ntrval @p |- ( ( M e. MetSp /\ S C_ X ) -> ( ( int ` M ) ` S ) =
                 U. { x e. ran ( ball ` M ) | x C_ S } ) @=
?@.
  @}
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Convergence and completeness
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CauFil $.
  $c Cau $.
  $c CMet $.

  $( Extend class notation with the set of Cauchy filters. $)
  ccfil $a class CauFil $.

  $( Extend class notation with a function on metric spaces whose value is the
     set of all Cauchy sequences of the space. $)
  cca $a class Cau $.

  $( Extend class notation with class of complete metric spaces. $)
  cms $a class CMet $.

  ${
    $d d f j x y $.
    $( Define the set of Cauchy filters on a metric space.  A Cauchy filter is
       a filter on the set such that for every ` 0 < x ` there is an element of
       the filter whose metric diameter is less than ` x ` .  (Contributed by
       Mario Carneiro, 13-Oct-2015.) $)
    df-cfil $a |- CauFil = ( d e. U. ran *Met |-> { f e. ( Fil ` dom dom d ) |
            A. x e. RR+ E. y e. f ( d " ( y X. y ) ) C_ ( 0 [,) x ) } ) $.

    $( Define a function on metric spaces whose value is the set of Cauchy
       sequences of the space.  (Contributed by NM, 8-Sep-2006.) $)
    df-cau $a |- Cau = ( d e. U. ran *Met |-> { f e. ( dom dom d ^pm CC ) |
       A. x e. RR+ E. j e. ZZ ( f |` ( ZZ>= ` j ) ) :
          ( ZZ>= ` j ) --> ( ( f ` j ) ( ball ` d ) x ) } ) $.

    $( Define the class of complete metrics.  (Contributed by Mario Carneiro,
       1-May-2014.) $)
    df-cmet $a |- CMet = ( x e. _V |-> { d e. ( Met ` x ) |
      A. f e. ( CauFil ` d ) ( ( MetOpen ` d ) fLim f ) =/= (/) } ) $.
  $}

  ${
    $d j k u x y D $.  $d j k u x y F $.  $d j k u x y P $.  $d j k u x y X $.
    $d u x y J $.  $d j M $.  $d j k u x ph $.  $d j k x R $.  $d j k x Z $.
    lmmbr.2 $e |- J = ( MetOpen ` D ) $.
    lmmbr.3 $e |- ( ph -> D e. ( *Met ` X ) ) $.
    $( Express the binary relation "sequence ` F ` converges to point
       ` P ` " in a metric space.  Definition 1.4-1 of [Kreyszig] p. 25.  The
       condition ` F C_ ( CC X. X ) ` allows us to use objects more general
       than sequences when convenient; see the comment in ~ df-lm .
       (Contributed by NM, 7-Dec-2006.)  (Revised by Mario Carneiro,
       1-May-2014.) $)
    lmmbr $p |- ( ph -> ( F ( ~~>t ` J ) P <->
                  ( F e. ( X ^pm CC ) /\ P e. X /\ A. x e. RR+ E. y e. ran ZZ>=
                    ( F |` y ) : y --> ( P ( ball ` D ) x ) ) ) ) $=
      ( vu cfv wcel cv wrex wi w3a crp syl wa clm wbr cc cpm co cres wf cuz crn
      wral cbl cxmt ctopon mopntopon lmbr wb cxr rpxr blopn syl3an3 blcntr wceq
      eleq2 rexbidv imbi12d rspcva impancom syl2anc 3expa adantlrl ralrimiv wss
      feq3 mopni2 r19.29 expcom reximdv impcom rexlimivw sylan2 adantlr impbida
      fss 3exp2 pm5.32da df-3an 3bitr4g bitrd ) AFEGUALUBFHUCUDUEMZEHMZEKNZMZCN
      ZWKFWMUFZUGZCUHUIZOZPZKGUJZQZWIWJWMEBNZDUKLUEZWNUGZCWPOZBRUJZQZACKEFGHADH
      ULLMZGHUMLMJDGHIUNSUOAXGWTXFUPJXGWIWJTZWSTXHXETWTXFXGXHWSXEXGXHTZWSXEXIWS
      TXDBRXIXARMZWSXDXGWJXJWSXDPZWIXGWJXJXKXGWJXJQXBGMZEXBMZXKXJXGWJXAUQMXLXAU
      RDEXAGHIUSUTDEXAHVAXLWSXMXDWRXMXDPKXBGWKXBVBZWLXMWQXDWKXBEVCXNWOXCCWPWKXB
      WMWNVMVDVEVFVGVHVIVJVGVKXIXETWRKGXGXEWKGMZWRPZXHXEXGXPXEXGXOWLWQXGXOWLQXE
      XBWKVLZBROZWQBWKDEGHIVNXEXRTXDXQTZBROWQXDXQBRVOXSWQBRXQXDWQXQXCWOCWPXCXQW
      OWMXBWKWNWCVPVQVRVSSVTWDVRWAVKWBWEWIWJWSWFWIWJXEWFWGSWH $.

    $( Express the binary relation "sequence ` F ` converges to point
       ` P ` " in a metric space.  Definition 1.4-1 of [Kreyszig] p. 25.  The
       condition ` F C_ ( CC X. X ) ` allows us to use objects more general
       than sequences when convenient; see the comment in ~ df-lm .
       (Contributed by NM, 7-Dec-2006.)  (Revised by Mario Carneiro,
       1-May-2014.) $)
    lmmbr2 $p |- ( ph -> ( F ( ~~>t ` J ) P <->
   ( F e. ( X ^pm CC ) /\ P e. X /\ A. x e. RR+ E. j e. ZZ A. k e. ( ZZ>= ` j )
      ( k e. dom F /\ ( F ` k ) e. X /\ ( ( F ` k ) D P ) < x ) ) ) ) $=
      ( vy cfv cc wcel cuz w3a cz wa wb clm wbr cpm co cv cbl cres crn wrex crp
      wf wral cdm clt lmmbr df-3an cxmt cpw wfn uzf wceq reseq2 id feq12d rexrn
      ffn mp2b wfun cxp wss simp2l cvv elfvdm 3ad2ant1 cnex elpmg sylancl mpbid
      simpld ffvresb syl cxr rpxr syl3an3 xmetsym breq1d 3expa pm5.32da 3adant3
      elbl bitrd 3adant2l anbi2d 3anass syl6bbr ralbidv rexbidv syl5bb ralbidva
      ) AGDHUAMUBGINUCUDOZDIOZLUEZDBUEZCUFMUDZGXBUGZUKZLPUHUIZBUJULZQZWTXAFUEZG
      UMOZXJGMZIOZXLDCUDZXCUNUBZQZFEUEPMZULZERUIZBUJULZQZABLCDGHIJKUOAXIWTXASZX
      TSZYAXIYBXHSZAYCWTXAXHUPACIUQMOZYDYCTKYEYBXHXTYEYBSXGXSBUJYEYBXCUJOZXGXST
      XGXQXDGXQUGZUKZERUIZYEYBYFQZXSRRURZPUKPRUSXGYITUTRYKPVFXFYHLERPXBXQVAZXBX
      QXDXEYGXBXQGVBYLVCVDVEVGYJYHXRERYJYHXKXLXDOZSZFXQULZXRYJGVHZYHYOTYJYPGNIV
      IVJZYJWTYPYQSZYEWTXAYFVKYJIUQUMZOZNVLOWTYRTYEYBYTYFCIUQVMVNVOINGYSVLVPVQV
      RVSFXQXDGVTWAYJYNXPFXQYJYNXKXMXOSZSXPYJYMUUAXKYEXAYFYMUUATWTYEXAYFQYMXMDX
      LCUDZXCUNUBZSZUUAYFYEXAXCWBOYMUUDTXCWCXLCDXCIWJWDYEXAUUDUUATYFYEXASXMUUCX
      OYEXAXMUUCXOTYEXAXMQUUBXNXCUNDXLCIWEWFWGWHWIWKWLWMXKXMXOWNWOWPWKWQWRWGWSW
      HWAWRWTXAXTUPWOWK $.

    lmmbr3.5 $e |- Z = ( ZZ>= ` M ) $.
    lmmbr3.6 $e |- ( ph -> M e. ZZ ) $.
    $( Express the binary relation "sequence ` F ` converges to point
       ` P ` " in a metric space using an arbitrary upper set of integers.
       (Contributed by NM, 19-Dec-2006.)  (Revised by Mario Carneiro,
       1-May-2014.) $)
    lmmbr3 $p |- ( ph -> ( F ( ~~>t ` J ) P <->
  ( F e. ( X ^pm CC ) /\ P e. X /\ A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j )
      ( k e. dom F /\ ( F ` k ) e. X /\ ( ( F ` k ) D P ) < x ) ) ) ) $=
      ( cfv wcel cv w3a wral clm wbr cc cpm co cdm clt cuz cz crp lmmbr2 rexuz3
      wrex wb syl ralbidv 3anbi3d bitr4d ) AGDHUAPUBGJUCUDUEQZDJQZFRZGUFQVAGPZJ
      QVBDCUEBRUGUBSZFERUHPTZEUIUMZBUJTZSUSUTVDEKUMZBUJTZSABCDEFGHJLMUKAVHVFUSU
      TAVGVEBUJAIUIQVGVEUNOVCEFIKNULUOUPUQUR $.

    lmmbrf.7 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    ${
      lmmcvg.8 $e |- ( ph -> F ( ~~>t ` J ) P ) $.
      lmmcvg.9 $e |- ( ph -> R e. RR+ ) $.
      $( Convergence property of a converging sequence.  (Contributed by NM,
         1-Jun-2007.)  (Revised by Mario Carneiro, 1-May-2014.) $)
      lmmcvg $p |- ( ph -> E. j e. Z A. k e. ( ZZ>= ` j )
                     ( A e. X /\ ( A D P ) < R ) ) $=
        ( wcel vx cv cdm cfv co clt wbr w3a cuz wral wrex wa crp cpm clm lmmbr3
        cc mpbid simp3d wceq breq2 3anbi3d rexralbidv sylc uztrn2 3simpc eleq1d
        rspcv oveq1d breq1d anbi12d syl5ib sylan2 anassrs ralimdva reximdva mpd
        wi ) AGUBZHUCTZVSHUDZKTZWADCUEZEUFUGZUHZGFUBZUIUDZUJZFLUKZBKTZBDCUEZEUF
        UGZULZGWGUJZFLUKAEUMTVTWBWCUAUBZUFUGZUHZGWGUJFLUKZUAUMUJZWISAHKUQUNUETZ
        DKTZWSAHDIUOUDUGWTXAWSUHRAUACDFGHIJKLMNOPUPURUSWRWIUAEUMWOEUTZWQWEFGLWG
        XBWPWDVTWBWOEWCUFVAVBVCVHVDAWHWNFLAWFLTZULWEWMGWGAXCVSWGTZWEWMVRZXCXDUL
        AVSLTZXEJVSWFLOVEWEWBWDULAXFULZWMVTWBWDVFXGWBWJWDWLXGWABKQVGXGWCWKEUFXG
        WABDCQVIVJVKVLVMVNVOVPVQ $.
    $}

    lmmbrf.8 $e |- ( ph -> F : Z --> X ) $.
    $( Express the binary relation "sequence ` F ` converges to point
       ` P ` " in a metric space using an arbitrary upper set of integers.
       This version of ~ lmmbr2 presupposes that ` F ` is a function.
       (Contributed by NM, 20-Jul-2007.)  (Revised by Mario Carneiro,
       1-May-2014.) $)
    lmmbrf $p |- ( ph -> ( F ( ~~>t ` J ) P <-> ( P e. X /\
      A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j ) ( A D P ) < x ) ) ) $=
      ( wcel wa cv cdm cfv co clt wbr w3a cuz wral wrex crp cc cpm clm cxmt cvv
      wf wss elfvdm cnex jctir cz uzssz zsscn sstri eqsstri jctr elpm2r syl2anc
      syl2an biantrurd uztrn2 adantll oveq1d breq1d adantrl wceq fdm syl eleq2d
      wb biimpar ffvelrnda jca df-3an syl6bbr anassrs ralbidva rexbidva ralbidv
      bitr3d syldan anbi2d lmmbr3 3anass syl6bb 3bitr4rd ) AEKSZGUAZHUBZSZWSHUC
      ZKSZXBEDUDZBUAZUEUFZUGZGFUAZUHUCZUIZFLUJZBUKUIZTZHKULUMUDSZXMTZWRCEDUDZXE
      UEUFZGXIUIZFLUJZBUKUIZTHEIUNUCUFZAXNXMADKUOUCSZLKHUQZXNNRYBKUOUBZSZULUPSZ
      TYCLULURZTXNYCYBYEYFDKUOUSUTVAYCYGLJUHUCZULOYHVBULJVCVDVEVFVGKULLHYDUPVHV
      JVIVKAXTXLWRAXSXKBUKAXRXJFLAXHLSZTZXQXGGXIYJWSXISZWSLSZXQXGWAZYIYKYLAJWSX
      HLOVLVMAYIYLYMAYIYLTTXFXQXGAYLXFXQWAYIAYLTZXDXPXEUEYNXBCEDQVNVOVPAYLXFXGW
      AYIYNXFXAXCTZXFTXGYNYOXFYNXAXCAXAYLAWTLWSAYCWTLVQRLKHVRVSVTWBALKWSHRWCWDV
      KXAXCXFWEWFVPWKWGWLWHWIWJWMAYAXNWRXLUGXOABDEFGHIJKLMNOPWNXNWRXLWOWPWQ $.
  $}

  ${
    $d j k x D $.  $d j k x F $.  $d j k x P $.  $d j k x ph $.  $d j k x X $.
    $d x J $.
    lmnn.2 $e |- J = ( MetOpen ` D ) $.
    lmnn.3 $e |- ( ph -> D e. ( *Met ` X ) ) $.
    lmnn.4 $e |- ( ph -> P e. X ) $.
    lmnn.5 $e |- ( ph -> F : NN --> X ) $.
    lmnn.6 $e |- ( ( ph /\ k e. NN ) -> ( ( F ` k ) D P ) < ( 1 / k ) ) $.
    $( A condition that implies convergence.  (Contributed by NM, 8-Jun-2007.)
       (Revised by Mario Carneiro, 1-May-2014.) $)
    lmnn $p |- ( ph -> F ( ~~>t ` J ) P ) $=
      ( vx vj cfv wbr wcel clt cn wa clm cv co cuz wral wrex crp cdiv cfl caddc
      c1 cn0 cr cc0 cle rpreccl adantl rpge0d flge0nn0 syl2anc nn0p1nn syl cxmt
      rpred cxr ad2antrr wf eluznn sylan ffvelrnd xmetcl syl3anc nnrecred rexrd
      rpxr ad2antlr adantlr syldan adantr nnred flltp1 eluzle ltletrd wb simplr
      rpregt0 nnrp rpregt0d ltrec1 syl2an mpbid xrlttrd ralrimiva fveq2 raleqdv
      wceq rspcev nnuz 1zzd eqidd lmmbrf mpbir2and ) AECFUAOPCGQZDUBZEOZCBUCZMU
      BZRPZDNUBZUDOZUEZNSUFZMUGUEJAXLMUGAXGUGQZTZUKXGUHUCZUIOZUKUJUCZSQZXHDXQUD
      OZUEZXLXNXPULQZXRXNXOUMQZUNXOUOPYAXNXOXMXOUGQAXGUPUQZVDZXNXOYCURXOUSUTXPV
      AVBZXNXHDXSXNXDXSQZTZXFUKXDUHUCZXGYGBGVCOQZXEGQXCXFVEQAYIXMYFIVFYGSGXDEAS
      GEVGXMYFKVFXNXRYFXDSQZYEXDXQVHVIZVJAXCXMYFJVFXECBGVKVLYGYHYGXDYKVMVNXMXGV
      EQAYFXGVOVPXNYFYJXFYHRPZYKAYJYLXMLVQVRYGXOXDRPZYHXGRPZYGXOXQXDXNYBYFYDVSZ
      XNXQUMQYFXNXQYEVTVSYGXDYKVTYGYBXOXQRPYOXOWAVBYFXQXDUOPXNXQXDWBUQWCYGXMYJY
      MYNWDZAXMYFWEYKXMXGUMQUNXGRPTXDUMQUNXDRPTYPYJXGWFYJXDXDWGWHXGXDWIWJUTWKWL
      WMXKXTNXQSXIXQWPXHDXJXSXIXQUDWNWOWQUTWMAMXEBCNDEFUKGSHIWRAWSAYJTXEWTKXAXB
      $.
  $}

  ${
    $d s u v w x y z B $.  $d f r s u v w x y z F $.  $d f r s u v w x y z X $.
    $d x y G $.  $d r x y z J $.  $d r s x y z R $.  $d u v w x y z Y $.
    $d d f r s u v w x y z D $.
    $( The set of Cauchy filters on a metric space.  (Contributed by Mario
       Carneiro, 13-Oct-2015.) $)
    cfilfval $p |- ( D e. ( *Met ` X ) -> ( CauFil ` D ) = { f e. ( Fil ` X ) |
            A. x e. RR+ E. y e. f ( D " ( y X. y ) ) C_ ( 0 [,) x ) } ) $=
      ( vd cxmt cfv wcel ccfil cv cima wss wrex crp wral cdm cfil crab wceq cxp
      cc0 cico crn cuni fvssunirn sseli dmeq dmeqd fveq2d imaeq1 sseq1d rexbidv
      co ralbidv rabeqbidv df-cfil fvex rabex fvmpt syl xmetdmdm rabeq eqtr4d )
      CEGHZIZCJHZCBKZVHUAZLZUBAKUCUNZMZBDKZNZAOPZDCQZQZRHZSZVODERHZSZVFCGUDUEZI
      VGVSTVEWBCGEUFUGFCFKZVILZVKMZBVMNZAOPZDWCQZQZRHZSVSWBJWCCTZWGVODWJVRWKWIV
      QRWKWHVPWCCUHUIUJWKWFVNAOWKWEVLBVMWKWDVJVKWCCVIUKULUMUOUPABDFUQVODVRVQRUR
      USUTVAVFVTVRTWAVSTVFEVQRCEVBUJVODVTVRVCVAVD $.

    $( The property of being a Cauchy filter.  (Contributed by Mario Carneiro,
       13-Oct-2015.) $)
    iscfil $p |- ( D e. ( *Met ` X ) ->
      ( F e. ( CauFil ` D ) <-> ( F e. ( Fil ` X ) /\ A. x e. RR+ E. y e. F
        ( D " ( y X. y ) ) C_ ( 0 [,) x ) ) ) ) $=
      ( vf cxmt cfv wcel ccfil cv cxp cima cc0 cico co wss wrex crp wral eleq2d
      cfil crab wa cfilfval wceq rexeq ralbidv elrab syl6bb ) CEGHIZDCJHZIDCBKZ
      UMLMNAKOPQZBFKZRZASTZFEUBHZUCZIDURIUNBDRZASTZUDUKULUSDABCFEUEUAUQVAFDURUO
      DUFUPUTASUNBUODUGUHUIUJ $.

    $( The property of being a Cauchy filter.  (Contributed by Mario Carneiro,
       13-Oct-2015.) $)
    iscfil2 $p |- ( D e. ( *Met ` X ) ->
      ( F e. ( CauFil ` D ) <-> ( F e. ( Fil ` X ) /\ A. x e. RR+ E. y e. F
        A. z e. y A. w e. y ( z D w ) < x ) ) ) $=
      ( cfv wcel cv cxp cc0 co wss wrex crp wral wa wbr cxr cxmt cfil cima cico
      ccfil clt iscfil wfun cdm wb wf xmetf ad3antrrr ffun simplr filelss sylan
      syl xpss12 syl2anc wceq fdm sseqtr4d funimassov cle 0xr a1i simpllr rpxrd
      simp-4l sselda adantrr adantrl xmetcl syl3anc xmetge0 elico1 df-3an baibd
      w3a syl6bb syl22anc 2ralbidva bitrd rexbidva ralbidva pm5.32da ) EGUAHIZF
      EUEHIFGUBHIZEBJZWJKZUCLAJZUDMZNZBFOZAPQZRWICJZDJZEMZWLUFSZDWJQCWJQZBFOZAP
      QZRABEFGUGWHWIWPXCWHWIRZWOXBAPXDWLPIZRZWNXABFXFWJFIZRZWNWSWMIZDWJQCWJQZXA
      XHEUHZWKEUIZNWNXJUJXHGGKZTEUKZXKWHXNWIXEXGEGULUMZXMTEUNURXHWKXMXLXHWJGNZX
      PWKXMNXFWIXGXPWHWIXEUOWJFGUPUQZXQWJGWJGUSUTXHXNXLXMVAXOXMTEVBURVCCDWJWJWM
      EVDUTXHXIWTCDWJWJXHWQWJIZWRWJIZRZRZLTIZWLTIZWSTIZLWSVESZXIWTUJYBYAVFVGYAW
      LXDXEXGXTVHVIYAWHWQGIZWRGIZYDWHWIXEXGXTVJZXHXRYFXSXHWJGWQXQVKVLZXHXSYGXRX
      HWJGWRXQVKVMZWQWREGVNVOYAWHYFYGYEYHYIYJWQWREGVPVOYBYCRZXIYDYERZWTYKXIYDYE
      WTVTYLWTRLWLWSVQYDYEWTVRWAVSWBWCWDWEWFWGWD $.

    $( A Cauchy filter is a filter.  (Contributed by Mario Carneiro,
       13-Oct-2015.) $)
    cfilfil $p |- ( ( D e. ( *Met ` X ) /\ F e. ( CauFil ` D ) ) ->
      F e. ( Fil ` X ) ) $=
      ( vy vx cxmt cfv wcel ccfil cfil cv cxp cima cc0 cico wss wrex crp wral
      co iscfil simprbda ) ACFGHBAIGHBCJGHADKZUCLMNEKOTPDBQERSEDABCUAUB $.

    $( Property of a Cauchy filter.  (Contributed by Mario Carneiro,
       13-Oct-2015.) $)
    cfili $p |- ( ( F e. ( CauFil ` D ) /\ R e. RR+ ) ->
      E. x e. F A. y e. x A. z e. x ( y D z ) < R ) $=
      ( vr vd vf ccfil cfv wcel cv co clt wbr wral wrex crp cdm cfil wa cxmt wb
      crn cuni cxp cima cc0 cico wss crab df-cfil elfvdm sseldi xmetunirn sylib
      dmmptss iscfil2 syl ibi simprd wceq breq2 2ralbidv rexbidv rspccva sylan
      ) FDJKLZBMZCMDNZGMZOPZCAMZQBVNQZAFRZGSQZESLVKEOPZCVNQBVNQZAFRZVIFDTTZUAKL
      ZVQVIWBVQUBZVIDWAUCKLZVIWCUDVIDUCUEUFZLWDVIJTWEDHWEHMZVJVJUGUHUIVNUJNUKBI
      MRASQIWFTTUAKULJABIHUMURFDJUNUODUPUQGABCDFWAUSUTVAVBVPVTGESVLEVCZVOVSAFWG
      VMVRBCVNVNVLEVKOVDVEVFVGVH $.

    $( A Cauchy filter contains balls of any pre-chosen size.  (Contributed by
       Mario Carneiro, 15-Oct-2015.) $)
    cfil3i $p |- ( ( D e. ( *Met ` X ) /\ F e. ( CauFil ` D ) /\ R e. RR+ ) ->
      E. x e. X ( x ( ball ` D ) R ) e. F ) $=
      ( vy vs cfv wcel cv co wral wrex wa wi sylan syl wss ad2antrr adantr cxmt
      ccfil crp w3a clt wbr cbl cfili 3adant1 c0 cfilfil 3adant3 fileln0 r19.2z
      wne cfil ex filelss ssrexv dfss3 cxr wb simpl1 simpll3 rpxrd simplr elbl2
      sselda syl22anc ralbidva simpr blssm syl3anc filss 3exp2 sylbird reximdva
      syl5bb syl3c 3syld rexlimdva mpd ) BEUAHIZDBUBHIZCUCIZUDZAJZFJZBKCUEUFZFG
      JZLZAWJLZGDMZWGCBUGHKZDIZAEMZWDWEWMWCGAFBCDUHUIWFWLWPGDWFWJDIZNZWLWKAWJMZ
      WKAEMZWPWRWJUJUOZWLWSOWFDEUPHIZWQXAWCWDXBWEBDEUKULZWJDEUMPXAWLWSWKAWJUNUQ
      QWRWJERZWSWTOWFXBWQXDXCWJDEURPZWKAWJEUSQWRWKWOAEWRWGEIZNZWKWJWNRZWOXHWHWN
      IZFWJLXGWKFWJWNUTXGXIWIFWJXGWHWJIZNWCCVAIZXFWHEIXIWIVBWRWCXFXJWCWDWEWQVCZ
      SXGXKXJXGCWCWDWEWQXFVDVEZTWRXFXJVFXGWJEWHWRXDXFXETVHWHBWGCEVGVIVJVRXGXBWQ
      WNERZXHWOOWFXBWQXFXCSWFWQXFVFXGWCXFXKXNWRWCXFXLTWRXFVKXMBWGCEVLVMXBWQXNXH
      WOWJWNDEVNVOVSVPVQVTWAWB $.

    $( A filter finer than a Cauchy filter is Cauchy.  (Contributed by Mario
       Carneiro, 13-Oct-2015.) $)
    cfilss $p |- ( ( ( D e. ( *Met ` X ) /\ F e. ( CauFil ` D ) ) /\
      ( G e. ( Fil ` X ) /\ F C_ G ) ) -> G e. ( CauFil ` D ) ) $=
      ( vy vx cxmt cfv wcel ccfil wa cfil wss cv cxp cima wrex crp wral iscfil
      cc0 cico co simprl simprr simplbda adantr ssrexv ralimdv sylc wb ad2antrr
      mpbir2and ) ADGHIZBAJHZIZKZCDLHZIZBCMZKZKZCUOIZUSAENZVDOPUAFNUBUCMZECQZFR
      SZUQUSUTUDVBUTVEEBQZFRSZVGUQUSUTUEUQVIVAUNUPBURIVIFEABDTUFUGUTVHVFFRVEEBC
      UHUIUJUNVCUSVGKUKUPVAFEACDTULUM $.

    $( The Cauchy filter condition for a filter base.  (Contributed by Mario
       Carneiro, 13-Oct-2015.) $)
    fgcfil $p |- ( ( D e. ( *Met ` X ) /\ B e. ( fBas ` X ) ) ->
      ( ( X filGen B ) e. ( CauFil ` D ) <-> A. x e. RR+ E. y e. B
        A. z e. y A. w e. y ( z D w ) < x ) ) $=
      ( vu cfv wcel wa co cv wral wrex crp wss wi wb adantl cfbas cfg ccfil clt
      cxmt wbr cfili adantll ad3antlr ssralv ralimdv syldc reximdv com12 syl6bi
      elfg rexlimdv mpd ralrimiva ex cfil ssfg ssrexv syl jctild iscfil2 adantr
      fgcl sylibrd impbid ) FGUEIJZEGUAIJZKZGEUBLZFUCIJZCMDMFLAMZUDUFZDBMZNZCVR
      NZBEOZAPNZVMVOWBVMVOKZWAAPWCVPPJZKZVQDHMZNZCWFNZHVNOZWAVOWDWIVMHCDFVPVNUG
      UHWEWHWAHVNWEWFVNJZWFGQZVRWFQZBEOZKZWHWARZVLWJWNSVKVOWDBWFEGUPUIWMWOWKWHW
      MWAWHWLVTBEWLWHVSCWFNVTWLWGVSCWFVQDVRWFUJUKVSCVRWFUJULUMUNTUOUQURUSUTVMWB
      VNGVAIJZVTBVNOZAPNZKZVOVMWBWRWPVMEVNQZWBWRRVLWTVKEGVBTWTWAWQAPVTBEVNVCUKV
      DVLWPVKEGVHTVEVKVOWSSVLABCDFVNGVFVGVIVJ $.

    $( The Cauchy filter condition for a filter map.  (Contributed by Mario
       Carneiro, 13-Oct-2015.) $)
    fmcfil $p |- ( ( D e. ( *Met ` X ) /\ B e. ( fBas ` Y ) /\ F : Y --> X ) ->
      ( ( ( X FilMap F ) ` B ) e. ( CauFil ` D ) <-> A. x e. RR+ E. y e. B
        A. z e. y A. w e. y ( ( F ` z ) D ( F ` w ) ) < x ) ) $=
      ( vu vv vs cxmt cfv wcel co cv clt wral wb cfbas wf w3a cfm cima cmpt crn
      ccfil cfg wbr wrex crp wceq elfvdm fmval syl3an1 eleq1d simp1 simp2 simp3
      cdm 3ad2ant1 eqid fbasrn syl3anc fgcfil syl2anc cvv imassrn wss frn ssexd
      3ad2ant3 syl5ss ralrimivw raleq raleqbi1dv rexrnmpt syl wa wfn simpl3 ffn
      fbelss sylan oveq1 breq1d ralbidv ralima oveq2 bitrd rexbidva 3bitrd ) FH
      MNOZEIUANOZIHGUBZUCZEHGUDPNZFUHNZOHBEGBQZUEZUFZUGZUIPZWSOZJQZKQZFPZAQZRUJ
      ZKLQZSZJXKSZLXCUKZAULSZCQGNZDQGNZFPZXIRUJZDWTSZCWTSZBEUKZAULSWQWRXDWSWNHM
      VAZOZWOWPWRXDUMFHMUNZBYCEGHIUOUPUQWQWNXCHUANOZXEXOTWNWOWPURWQWOWPYDYFWNWO
      WPUSZWNWOWPUTWNWOYDWPYEVBZBEXCGYCIHXCVCVDVEALJKXCFHVFVGWQXNYBAULWQXNXJKXA
      SZJXASZBEUKZYBWQXAVHOZBESXNYKTWQYLBEWQXAHYCYHWQXAGUGZHGWTVIWPWNYMHVJWOIHG
      VKVMVNVLVOXMYJBLEXAXBVHXBVCXLYIJXKXAXJKXKXAVPVQVRVSWQYJYABEWQWTEOZVTZYJXP
      XGFPZXIRUJZKXASZCWTSZYAYOGIWAZWTIVJZYJYSTYOWPYTWNWOWPYNWBIHGWCVSZWQWOYNUU
      AYGIEWTWDWEZYIYRJCIWTGXFXPUMZXJYQKXAUUDXHYPXIRXFXPXGFWFWGWHWIVGYOYRXTCWTY
      OYTUUAYRXTTUUBUUCYQXSKDIWTGXGXQUMYPXRXIRXGXQXPFWJWGWIVGWHWKWLWKWHWM $.

    $( A filter is Cauchy iff it contains a ball of any chosen size.
       (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    iscfil3 $p |- ( D e. ( *Met ` X ) ->
      ( F e. ( CauFil ` D ) <-> ( F e. ( Fil ` X ) /\
        A. r e. RR+ E. x e. X ( x ( ball ` D ) r ) e. F ) ) ) $=
      ( vu vv vs vy cfv wcel cv co wrex crp wral wa simprl syl sseldd cxmt cfil
      ccfil cbl cfilfil cfil3i 3expa ralrimiva jca clt wbr cdiv rphalfcl adantl
      c2 wi wceq oveq2 eleq1d rexbidv rspcv simprr cr wss simp-4l simplrl rpred
      simpllr blhalf syl22anc cxr wb rpxrd blssm syl3anc elbl2 mpbid ralrimivva
      raleq raleqbi1dv syl2anc rexlimdvaa syld ralrimdva impr iscfil2 mpbir2and
      rspcev adantr impbida ) BDUAJKZCBUCJKZCDUBJKZALZELZBUDJZMZCKZADNZEOPZQZWK
      WLQZWMWTBCDUEXBWSEOWKWLWOOKWSABWOCDUFUGUHUIWKXAQWLWMFLZGLZBMHLZUJUKZGILZP
      ZFXGPZICNZHOPZWKWMWTRWKWMWTXKWKWMQZWTXJHOXLXEOKZQZWTWNXEUOULMZWPMZCKZADNZ
      XJXNXOOKZWTXRUPXMXSXLXEUMZUNWSXREXOOWOXOUQZWRXQADYAWQXPCWOXOWNWPURUSUTVAS
      XNXQXJADXNWNDKZXQQZQZXQXFGXPPZFXPPZXJXNYBXQVBYDXFFGXPXPYDXCXPKZXDXPKZQZQZ
      XDXCXEWPMZKZXFYJXPYKXDYJWKYBXEVCKYGXPYKVDWKWMXMYCYIVEZXNYBXQYIVFZYJXEXLXM
      YCYIVHZVGYDYGYHRZXEBDWNXCVIVJYDYGYHVBZTYJWKXEVKKXCDKXDDKYLXFVLYMYJXEYOVMY
      JXPDXCYJWKYBXOVKKXPDVDYMYNYJXOYJXMXSYOXTSVMBWNXODVNVOZYPTYJXPDXDYRYQTXDBX
      CXEDVPVJVQVRXIYFIXPCXHYEFXGXPXFGXGXPVSVTWHWAWBWCWDWEWKWLWMXKQVLXAHIFGBCDW
      FWIWGWJ $.

    cfilfcls.1 $e |- J = ( MetOpen ` D ) $.
    cfilfcls.2 $e |- X = dom dom D $.
    $( Similar to ultrafilters ( ~ uffclsflim ), the cluster points and limit
       points of a Cauchy filter coincide.  (Contributed by Mario Carneiro,
       15-Oct-2015.) $)
    cfilfcls $p |- ( F e. ( CauFil ` D ) -> ( J fClus F ) = ( J fLim F ) ) $=
      ( vx vy vr cfv wcel co cv wa cdm wss crp adantr syl syl3anc vd vf vz wral
      ccfil cfcls cflim wi cuni eqid fclselbas adantl ctopon wceq cxmt crn cima
      cxp cc0 cico wrex cfil crab df-cfil dmmptss elfvdm sseldi xmetunirn sylib
      fveq2i syl6eleqr mopntopon toponuni eleqtrrd mopni2 3expb cfilfil mpancom
      cbl sylan ad2antrr cdiv simpll rphalfcl cfil3i simprr rpxr ad2antlr blssm
      c2 cxr cin wex c0 wne simpllr blopn blcntr fclsopni syl13anc elin simplrl
      n0 cr rpred blhalf syl22anc sselda adantrr simprl wb blcom mpbid sstrd ex
      syl5bi exlimdv filss rexlimddv ad2ant2r toponss ralrimiva flimopn syl2anc
      mpd expr mpbir2and ssrdv flimfcls a1i eqssd ) BAUEJKZCBUFLZCBUGLZYLGYMYNY
      LGMZYMKZYOYNKZYLYPNZYQYODKZYOHMZKZYTBKZUHZHCUDZYRYOCUIZDYPYOUUEKYLYOBCUUE
      UUEUJUKULYRCDUMJKZDUUEUNYRADUOJZKZUUFYLUUHYPYLAAOOZUOJZUUGYLAUOUPUIZKAUUJ
      KYLUEOUUKAUAUUKUAMZYTYTURUQUSYOUTLPHUBMVAGQUDUBUULOOVBJVCUEGHUBUAVDVEBAUE
      VFVGAVHVIDUUIUOFVJVKZRZACDEVLSZDCVMSVNZYRUUCHCYRYTCKZUUAUUBYRUUQUUANZNZYO
      IMZAVSJZLZYTPZUUBIQYRUUHUURUVCIQVAZUUNUUHUUQUUAUVDIYTAYOCDEVOVPVTUUSUUTQK
      ZUVCNZNBDVBJKZUVBBKZYTDPZUVCUUBYRUVGUURUVFYLUVGYPUUHYLUVGUUMABDVQVRRZWAYR
      UVEUVHUURUVCYRUVENZYTUUTWJWBLZWJWBLZUVALZBKZUVHHDUVKUUHYLUVMQKZUVOHDVAYRU
      UHUVEUUNRZYLYPUVEWCUVKUVLQKZUVPUVEUVRYRUUTWDULZUVLWDSHAUVMBDWETUVKYTDKZUV
      ONZNZUVGUVOUVBDPZUVNUVBPZUVHYRUVGUVEUWAUVJWAUVKUVTUVOWFZUWBUUHYSUUTWKKZUW
      CUVKUUHUWAUVQRZYRYSUVEUWAUUPWAZUVEUWFYRUWAUUTWGWHAYOUUTDWITUWBUCMZYOUVLUV
      ALZUVNWLZKZUCWMZUWDUWBUWKWNWOZUWMUWBYPUWJCKZYOUWJKZUVOUWNYLYPUVEUWAWPUWBU
      UHYSUVLWKKZUWOUWGUWHUWBUVRUWQUVKUVRUWAUVSRZUVLWGZSZAYOUVLCDEWQTUWBUUHYSUV
      RUWPUWGUWHUWRAYOUVLDWRTUWEYOUVNUWJBCWSWTUCUWKXCVIUWBUWLUWDUCUWLUWIUWJKZUW
      IUVNKZNZUWBUWDUWIUWJUVNXAUWBUXCUWDUWBUXCNZUVNUWIUVLUVALZUVBUXDUUHUVTUVLXD
      KUXBUVNUXEPUWBUUHUXCUWGRZUVKUVTUVOUXCXBUXDUVLUWBUVRUXCUWRRZXEUWBUXAUXBWFU
      VLADYTUWIXFXGUXDUUHUWIDKZUUTXDKYOUXEKZUXEUVBPUXFUWBUXAUXHUXBUWBUWJDUWIUWB
      UUHYSUWQUWJDPUWGUWHUWTAYOUVLDWITXHXIZUXDUUTYRUVEUWAUXCWPXEUXDUXAUXIUWBUXA
      UXBXJUXDUUHUWQYSUXHUXAUXIXKUXFUXDUVRUWQUXGUWSSUWBYSUXCUWHRUXJUWIAYOUVLDXL
      XGXMUUTADUWIYOXFXGXNXOXPXQYEUVNUVBBDXRWTXSXTUUSUVIUVFYRUUFUURUVIUUOUUFUUQ
      UVIUUAYTCDYAXIVTRUUSUVEUVCWFUVBYTBDXRWTXSYFYBYRUUFUVGYQYSUUDNXKUUOUVJHYOB
      CDYCYDYGXOYHYNYMPYLBCYIYJYK $.
  $}

  ${
    $d d f j k m x D $.  $d f j k m x F $.  $d j k x ph $.  $d d f j k m x X $.
    $d j M $.  $d j k x Z $.
    $( The set of Cauchy sequences on a metric space.  (Contributed by NM,
       8-Sep-2006.)  (Revised by Mario Carneiro, 5-Sep-2015.) $)
    caufval $p |- ( D e. ( *Met ` X ) -> ( Cau ` D ) = { f e. ( X ^pm CC ) |
         A. x e. RR+ E. k e. ZZ ( f |` ( ZZ>= ` k ) ) :
          ( ZZ>= ` k ) --> ( ( f ` k ) ( ball ` D ) x ) } ) $=
      ( vd cxmt cfv wcel cv cbl co wf cz wrex crp cdm cc cpm wceq cuz cres wral
      crab crn cuni cca cvv cmpt df-cau a1i wa dmeq dmeqd cxp cxr xmetf fdm syl
      dmxpid syl6eq sylan9eqr oveq1d simpr fveq2d oveqd feq3d rexbidv rabeqbidv
      ralbidv fvssunirn sseli ovex rabex fvmptd ) BEGHZIZFBDJZUAHZVRCJZHZAJZFJZ
      KHZLZVTVSUBZMZDNOZAPUCZCWCQZQZRSLZUDZVSWAWBBKHZLZWFMZDNOZAPUCZCERSLZUDZGU
      EUFZUGUHUGFXAWMUITVQACDFUJUKVQWCBTZULZWIWRCWLWSXCWKERSXBVQWKBQZQZEXBWJXDW
      CBUMUNVQXEEEUOZQEVQXDXFVQXFUPBMXDXFTBEUQXFUPBURUSUNEUTVAVBVCXCWHWQAPXCWGW
      PDNXCWEWOWFVSXCWDWNWAWBXCWCBKVQXBVDVEVFVGVHVJVIVPXABGEVKVLWTUHIVQWRCWSERS
      VMVNUKVO $.

    $( Express the property " ` F ` is a Cauchy sequence of metric ` D ` ."
       Part of Definition 1.4-3 of [Kreyszig] p. 28.  The condition
       ` F C_ ( CC X. X ) ` allows us to use objects more general than
       sequences when convenient; see the comment in ~ df-lm .  (Contributed by
       NM, 7-Dec-2006.)  (Revised by Mario Carneiro, 14-Nov-2013.) $)
    iscau $p |- ( D e. ( *Met ` X ) -> ( F e. ( Cau ` D ) <->
        ( F e. ( X ^pm CC ) /\ A. x e. RR+ E. k e. ZZ ( F |` ( ZZ>= ` k ) ) :
          ( ZZ>= ` k ) --> ( ( F ` k ) ( ball ` D ) x ) ) ) ) $=
      ( vf cxmt cfv wcel cca cv cuz cbl co cres wf cz wrex crp wral cc cpm crab
      wa caufval eleq2d reseq1 eqidd fveq1 oveq1d feq123d rexbidv ralbidv elrab
      wceq syl6bb ) BEGHIZDBJHZIDCKZLHZUSFKZHZAKZBMHZNZVAUTOZPZCQRZASTZFEUAUBNZ
      UCZIDVJIUTUSDHZVCVDNZDUTOZPZCQRZASTZUDUQURVKDABFCEUEUFVIVQFDVJVADUOZVHVPA
      SVRVGVOCQVRUTUTVEVMVFVNVADUTUGVRUTUHVRVBVLVCVDUSVADUIUJUKULUMUNUP $.

    $( Express the property " ` F ` is a Cauchy sequence of metric ` D ` ,"
       using an arbitrary upper set of integers.  (Contributed by NM,
       19-Dec-2006.)  (Revised by Mario Carneiro, 14-Nov-2013.) $)
    iscau2 $p |- ( D e. ( *Met ` X ) -> ( F e. ( Cau ` D ) <->
        ( F e. ( X ^pm CC ) /\ A. x e. RR+ E. j e. ZZ A. k e. ( ZZ>= ` j )
             ( k e. dom F /\ ( F ` k ) e. X /\
               ( ( F ` k ) D ( F ` j ) ) < x ) ) ) ) $=
      ( cfv wcel cc co cz crp wral wa clt w3a wb syl wi wceq cca cpm cv cuz cbl
      cxmt cres wf wrex cdm wbr iscau wfun cxp wss elfvdm cnex sylancl simprbda
      elpmg ffvresb rexbidv adantr uzid adantl eleq1 fveq2 eleq1d anbi12d rspcv
      cvv c0 wn cxr n0i cpw blf fdm ndmovg ex con1d simpl adantld ad2antrr syld
      syl56 oveq1d breq1d 3anbi123d simp2 syl6 rpxr elbl syl3an3 3expa 3adantl3
      xmetsym pm5.32da 3com23 anbi2d syl6bbr ralbidv pm5.21ndd rexbidva adantlr
      bitrd 3anass 3expia ralbidva ) BFUFGHZEBUAGHEFIUBJHZCUCZUDGZXLEGZAUCZBUEG
      ZJZEXMUGUHZCKUIZALMZNXKDUCZEUJZHZYAEGZFHZYDXNBJZXOOUKZPZDXMMZCKUIZALMZNAB
      CEFULXJXKXTYKXJXKNZXSYJALYLXOLHZNXSYCYDXQHZNZDXMMZCKUIZYJYLXSYQQYMYLXRYPC
      KYLEUMZXRYPQXJXKYREIFUNUOZXJFUFUJZHIVKHXKYRYSNQBFUFUPUQFIEYTVKUTURUSDXMXQ
      EVARVBVCXJYMYQYJQXKXJYMNZYPYICKUUAXLKHZNZXNFHZYPYIUUCYPXLYBHZXNXQHZNZUUDU
      UCXLXMHZYPUUGSUUBUUHUUAXLVDVEZYOUUGDXLXMYAXLTZYCUUEYNUUFYAXLYBVFZUUJYDXNX
      QYAXLEVGZVHVIVJRXJUUGUUDSYMUUBXJUUFUUDUUEUUFXQVLTZVMXJUUDXOVNHZNZUUDXQXNV
      OXJUUOUUMXJXPUJFVNUNZTZUUOVMZUUMSXJUUPFVPZXPUHUUQBFVQUUPUUSXPVRRUUQUURUUM
      XNXOFVNXPVSVTRWAUUDUUNWBWFWCWDWEUUCYIUUEUUDXNXNBJZXOOUKZPZUUDUUCUUHYIUVBS
      UUIYHUVBDXLXMUUJYCUUEYEUUDYGUVAUUKUUJYDXNFUULVHUUJYFUUTXOOUUJYDXNXNBUULWG
      WHWIVJRUUEUUDUVAWJWKUUAUUDYPYIQZSUUBXJYMUUDUVCXJYMUUDPZYOYHDXMUVDYOYCYEYG
      NZNYHUVDYNUVEYCXJUUDYMYNUVEQXJUUDYMPZYNYEXNYDBJZXOOUKZNZUVEYMXJUUDUUNYNUV
      IQXOWLYDBXNXOFWMWNUVFYEUVHYGUVFYENUVGYFXOOXJUUDYEUVGYFTZYMXJUUDYEUVJXNYDB
      FWQWOWPWHWRXFWSWTYCYEYGXGXAXBXHVCXCXDXEXFXIWRXF $.

    iscau3.2 $e |- Z = ( ZZ>= ` M ) $.
    iscau3.3 $e |- ( ph -> D e. ( *Met ` X ) ) $.
    iscau3.4 $e |- ( ph -> M e. ZZ ) $.
    $( Express the Cauchy sequence property in the more conventional
       three-quantifier form.  (Contributed by NM, 19-Dec-2006.)  (Revised by
       Mario Carneiro, 14-Nov-2013.) $)
    iscau3 $p |- ( ph -> ( F e. ( Cau ` D ) <-> ( F e. ( X ^pm CC ) /\
           A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j )
             ( k e. dom F /\ ( F ` k ) e. X /\ A. m e. ( ZZ>= ` k )
               ( ( F ` k ) D ( F ` m ) ) < x ) ) ) ) $=
      ( cfv wcel co clt wbr wral wa cca cc cpm cdm w3a cuz wrex crp cxmt iscau2
      cv cz wb syl cid adantr ssid simpr eleq1 xmetsym fveq2d cr c2 cdiv cxr wi
      simp1 simp2l simp3l xmetcl syl3anc simp2r simp3r rehalfcld rexrd syl22anc
      cxad xlt2add caddc rexadd syl2anc recnd 2halvesd eqtrd breq2d cle xmettri
      wceq syl13anc xaddcld xrlelttr mpand sylbid syld cvv ax-mp breq1i anbi12i
      3imtr4g cau3lem anbi2i df-3an bitr4i ralbii rexbii 3bitr3g rexuz3 ralbidv
      ovex fvi bitr4d pm5.32da bitrd ) AGCUANOZGIUBUCPOZEUKZGUDOZXPGNZIOZXRDUKZ
      GNZCPZBUKZQRZUEZEXTUFNZSZDULUGZBUHSZTZXOXQXSXRFUKGNZCPZYCQRZFXPUFNZSZUEZE
      YFSZDJUGZBUHSZTACIUINOZXNYJUMLBCDEGIUJUNAXOYIYSAXOTZYIYQDULUGZBUHSZYSUUAX
      QXSTZYBUONZYCQRZTZEYFSZDULUGZBUHSZUUDYLUONZYCQRZFYNSZTZEYFSZDULUGZBUHSZYI
      UUCUUAYTUUJUUQUMAYTXOLUPYTXSYAIOZYKIOZUUDBCDEFGUOULULUQXQXSURXRYAIUSXRYKI
      USYTUURXSUEYAXRCPYBUOYAXRCIUTVAYTUUSUURUEYKYACPYAYKCPZUOYKYACIUTVAYTXSUUS
      TZUURYCVBOZTZUEZYBYCVCVDPZQRZUUTUVEQRZTZYMUUEUVEQRZUUTUONZUVEQRZTUULUVDUV
      HYBUUTVQPZUVEUVEVQPZQRZYMUVDYBVEOZUUTVEOZUVEVEOZUVQUVHUVNVFUVDYTXSUURUVOY
      TUVAUVCVGZYTXSUUSUVCVHZYTUVAUURUVBVIZXRYACIVJVKZUVDYTUURUUSUVPUVRUVTYTXSU
      USUVCVLZYAYKCIVJVKZUVDUVEUVDYCYTUVAUURUVBVMZVNZVOZUWFYBUUTUVEUVEVRVPUVDUV
      NUVLYCQRZYMUVDUVMYCUVLQUVDUVMUVEUVEVSPZYCUVDUVEVBOZUWIUVMUWHWHUWEUWEUVEUV
      EVTWAUVDYCUVDYCUWDWBWCWDWEUVDYLUVLWFRZUWGYMUVDYTXSUUSUURUWJUVRUVSUWBUVTXR
      YKYACIWGWIUVDYLVEOZUVLVEOYCVEOUWJUWGTYMVFUVDYTXSUUSUWKUVRUVSUWBXRYKCIVJVK
      UVDYBUUTUWAUWCWJUVDYCUWDVOYLUVLYCWKVKWLWMWNUVIUVFUVKUVGUUEYBUVEQYBWOOUUEY
      BWHXRYACXIYBWOXJWPZWQUVJUUTUVEQUUTWOOUVJUUTWHYAYKCXIUUTWOXJWPWQWRUUKYLYCQ
      YLWOOUUKYLWHXRYKCXIYLWOXJWPWQZWSWTUNUUIYHBUHUUHYGDULUUGYEEYFUUGUUDYDTYEUU
      FYDUUDUUEYBYCQUWLWQXAXQXSYDXBXCXDXEXDUUPUUBBUHUUOYQDULUUNYPEYFUUNUUDYOTYP
      UUMYOUUDUULYMFYNUWMXDXAXQXSYOXBXCXDXEXDXFUUAYRUUBBUHUUAHULOZYRUUBUMAUWNXO
      MUPYPDEHJKXGUNXHXKXLXM $.

    $d j k m x Z $.
    iscau4.5 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = A ) $.
    iscau4.6 $e |- ( ( ph /\ j e. Z ) -> ( F ` j ) = B ) $.
    $( Express the property " ` F ` is a Cauchy sequence of metric ` D ` ,"
       using an arbitrary upper set of integers.  (Contributed by NM,
       19-Dec-2006.)  (Revised by Mario Carneiro, 23-Dec-2013.) $)
    iscau4 $p |- ( ph -> ( F e. ( Cau ` D ) <->
            ( F e. ( X ^pm CC ) /\ A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j )
              ( k e. dom F /\ A e. X /\ ( A D B ) < x ) ) ) ) $=
      ( wcel clt wral wa vm cca cfv cc cpm co cv cdm wbr w3a cuz wrex iscau3 wi
      crp cz simpr syl6eleq eluzelz uzid 3syl wceq fveq2 oveq1d raleqbidv rspcv
      breq1d adantr oveq2d cbvralv ralimi eleq1d syl2im r19.26 ad3antrrr simplr
      syl imp cxmt simprr xmetsym syl3anc expimpd ralimdv syl5bir expd impancom
      biimpd mpd syl5bi imdistanda 3imtr4g df-3an ralbii reximdva anim2d sylbid
      syld wss uzssz eqsstri ssrexv ax-mp anim2i iscau2 syl5ibr impbid wb simpl
      uztrn2 adantrl adantrr oveq12d 3anbi23d anassrs ralbidva rexbidva ralbidv
      jca sylan2 anbi2d bitrd ) AHEUBUCQZHJUDUEUFQZGUGZHUHQZYEHUCZJQZYGFUGZHUCZ
      EUFZBUGZRUIZUJZGYIUKUCZSZFKULZBUOSZTZYDYFCJQZCDEUFZYLRUIZUJZGYOSZFKULZBUO
      SZTAYCYSAYCYDYFYHYGUAUGZHUCZEUFZYLRUIZUAYEUKUCZSZUJZGYOSZFKULZBUOSZTYSABE
      FGUAHIJKLMNUMAUUPYRYDAUUOYQBUOAUUNYPFKAYIKQZTZYFYHTZUULTZGYOSZUUSYMTZGYOS
      ZUUNYPUURUUSGYOSZUULGYOSZTUVDYMGYOSZTUVAUVCUURUVDUVEUVFUURUVDTZUVEYJUUHEU
      FZYLRUIZUAYOSZUVFUURUVEUVJUNZUVDUURYIYOQZUVKUURYIIUKUCZQYIUPQUVLUURYIKUVM
      AUUQUQLURIYIUSYIUTVAZUULUVJGYIYOYEYIVBZUUJUVIUAUUKYOYEYIUKVCUVOUUIUVHYLRU
      VOYGYJUUHEYEYIHVCZVDVGVEVFVQVHUVJYJYGEUFZYLRUIZGYOSZUVGUVFUVIUVRUAGYOUUGY
      EVBZUVHUVQYLRUVTUUHYGYJEUUGYEHVCVIVGVJUVGYJJQZUVSUVFUNZUURUVDUWAUURUVLUVD
      YHGYOSUWAUVNUUSYHGYOYFYHUQVKYHUWAGYIYOUVOYGYJJUVPVLVFVMVRUURUWAUVDUWBUURU
      WATZUVDUVSUVFUVDUVSTUUSUVRTZGYOSUWCUVFUUSUVRGYOVNUWCUWDYMGYOUWCUUSUVRYMUW
      CUUSTZUVRYMUWEUVQYKYLRUWEEJVSUCQZUWAYHUVQYKVBAUWFUUQUWAUUSMVOUURUWAUUSVPU
      WCYFYHVTYJYGEJWAWBVGWHWCWDWEWFWGWIWJWRWKUUSUULGYOVNUUSYMGYOVNWLUUMUUTGYOY
      FYHUULWMWNYNUVBGYOYFYHYMWMWNWLWOWDWPWQAUWFYSYCUNMYSYCUWFYDYPFUPULZBUOSZTY
      RUWHYDYQUWGBUOKUPWSYQUWGUNKUVMUPLIWTXAYPFKUPXBXCVKXDBEFGHJXEXFVQXGAYRUUFY
      DAYQUUEBUOAYPUUDFKUURYNUUCGYOAUUQYEYOQZYNUUCXHZUUQUWITZAUUQYEKQZTZUWJUWKU
      UQUWLUUQUWIXIIYEYIKLXJXSAUWMTZYHYTYMUUBYFUWNYGCJAUWLYGCVBUUQOXKZVLUWNYKUU
      AYLRUWNYGCYJDEUWOAUUQYJDVBUWLPXLXMVGXNXTXOXPXQXRYAYB $.

    iscauf.7 $e |- ( ph -> F : Z --> X ) $.
    $( Express the property " ` F ` is a Cauchy sequence of metric
       ` D ` " presupposing ` F ` is a function.  (Contributed by NM,
       24-Jul-2007.)  (Revised by Mario Carneiro, 23-Dec-2013.) $)
    iscauf $p |- ( ph -> ( F e. ( Cau ` D ) <->
                A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j ) ( B D A ) < x ) ) $=
      ( wcel cfv wa cv cdm co clt wbr w3a cuz wral wrex crp cc cpm cca cxmt cvv
      wf wss elfvdm syl cnex jctir uzssz zsscn eqsstri elpm2r syl2anc biantrurd
      cz sstri wb adantr adantrr simprl ffvelrnd eqeltrrd uztrn2 sylan2 ffvelrn
      syl2an xmetsym syl3anc breq1d fdm eleq2d biimpar jca df-3an syl6bbr bitrd
      wceq anassrs ralbidva rexbidva ralbidv iscau4 3bitr4rd ) AGUAZHUBZRZCJRZC
      DEUCZBUAZUDUEZUFZGFUAZUGSZUHZFKUIZBUJUHZHJUKULUCRZXITDCEUCZXBUDUEZGXFUHZF
      KUIZBUJUHHEUMSRAXJXIAJUNUBZRZUKUORZTKJHUPZKUKUQZTXJAXPXQAEJUNSRZXPMEJUNUR
      USUTVAAXRXSQKIUGSZUKLYAVHUKIVBVCVIVDVAJUKKHXOUOVEVFVGAXNXHBUJAXMXGFKAXEKR
      ZTXLXDGXFAYBWQXFRZXLXDVJAYBYCTZTZXLXCXDYEXKXAXBUDYEXTDJRWTXKXAWJAXTYDMVKY
      EXEHSZDJAYBYFDWJYCPVLYEKJXEHAXRYDQVKAYBYCVMVNVOYEWQHSZCJYDAWQKRZYGCWJIWQX
      EKLVPZOVQAXRYHYGJRYDQYIKJWQHVRVSVOZDCEJVTWAWBYEXCWSWTTZXCTXDYEYKXCYEWSWTA
      XRYHWSYDQYIXRWSYHXRWRKWQKJHWCWDWEVSYJWFVGWSWTXCWGWHWIWKWLWMWNABCDEFGHIJKL
      MNOPWOWP $.
  $}

  ${
    $d j k x y D $.  $d j k x y F $.  $d j k x y X $.
    $( A metric with a Cauchy sequence cannot be empty.  (Contributed by NM,
       19-Dec-2006.)  (Revised by Mario Carneiro, 24-Dec-2013.) $)
    caun0 $p |- ( ( D e. ( *Met ` X ) /\ F e. ( Cau ` D ) ) -> X =/= (/) ) $=
      ( vk vj vx cxmt cfv wcel cv co wral cz wrex crp wne r19.2z ne0i rexlimivw
      c0 cca wa cdm clt wbr w3a cuz c1 1rp ne0ii cc cpm iscau2 simplbda sylancr
      wi uzid ex 3syl 3ad2ant2 syl6 rexlimiv syl ) ACGHIZBAUAHIZUBZDJZBUCIZVGBH
      ZCIZVIEJZBHAKFJUDUEZUFZDVKUGHZLZEMNZFONZCTPZVFOTPVPFOLZVQUHOUIUJVDVEBCUKU
      LKIVSFAEDBCUMUNVPFOQUOVPVRFOVOVREMVKMIZVOVMDVNNZVRVTVKVNIVNTPZVOWAUPVKUQV
      NVKRWBVOWAVMDVNQURUSVMVRDVNVJVHVRVLCVIRUTSVAVBSVC $.

    $( Inclusion of a Cauchy sequence, under our definition.  (Contributed by
       NM, 7-Dec-2006.)  (Revised by Mario Carneiro, 24-Dec-2013.) $)
    caufpm $p |- ( ( D e. ( *Met ` X ) /\ F e. ( Cau ` D ) ) ->
        F e. ( X ^pm CC ) ) $=
      ( vy vx cxmt cfv wcel cca cc cpm co cv cuz cbl cres wf cz wrex crp iscau
      wral simprbda ) ACFGHBAIGHBCJKLHDMZNGZUDBGEMAOGLBUEPQDRSETUBEADBCUAUC $.
  $}

  ${
    $d j k m u x D $.  $d j k m u x F $.  $d j k m u x X $.  $d j k m u x Z $.
    $d j k m x M $.
    caucfil.1 $e |- Z = ( ZZ>= ` M ) $.
    caucfil.2 $e |- L = ( ( X FilMap F ) ` ( ZZ>= " Z ) ) $.
    $( A Cauchy sequence predicate can be expressed in terms of the Cauchy
       filter predicate for a suitably chosen filter.  (Contributed by Mario
       Carneiro, 13-Oct-2015.) $)
    caucfil $p |- ( ( D e. ( *Met ` X ) /\ M e. ZZ /\ F : Z --> X ) ->
      ( F e. ( Cau ` D ) <-> L e. ( CauFil ` D ) ) ) $=
      ( vk vm vx vu cfv wcel cz clt cuz wral wa wi vj cxmt wf w3a cv cdm co wbr
      wrex crp cima cca ccfil df-3an adantll wceq simpll3 fdm eleqtrrd ffvelrnd
      uztrn2 syl jca biantrurd wss adantl sseld pm4.71rd imbi1d impexp ralbidv2
      uzss syl6bb bitr3d syl5bb ralbidva r19.26-2 weq eleq1 fveq2 oveq2d breq1d
      imbi12d cbvralv ralbii eleq2d oveq1d cbvral2v ralcom 3bitr3i anbi2i anidm
      3bitr2i simpll1 ad2ant2l adantrr xmetsym syl3anc imbi2d anbi2d wo jaob wb
      eluzelz uztric syl2an pm5.5 syl5bbr bitrd 2ralbidva wfn cpw uzf ffn ax-mp
      rexbidva uzssz eqsstri raleq raleqbi1dv rexima syl6bbr ralbidv cc cpm cvv
      mp2an elfvdm adantr cnex jctir zsscn sstri jctr elpm2r simpl simpr iscau3
      baibd syldan 3impa cfm eleq1i cfbas uzfbas fmcfil syl3an2 3bitr4d ) AEUBM
      NZDONZFEBUCZUDZIUEZBUFZNZUUMBMZENZUUPJUEZBMZAUGZKUEZPUHZJUUMQMZRZUDZIUAUE
      ZQMZRZUAFUIZKUJRZUVBJLUEZRZIUVKRZLQFUKZUIZKUJRZBAULMNZCAUMMZNZUULUVIUVOKU
      JUULUVIUVBJUVGRZIUVGRZUAFUIZUVOUULUVHUWAUAFUULUVFFNZSZUVHUURUVCNZUVBTZJUV
      GRZIUVGRZUWAUWDUVEUWGIUVGUVEUUOUUQSZUVDSZUWDUUMUVGNZSZUWGUUOUUQUVDUNUWLUV
      DUWJUWGUWLUWIUVDUWLUUOUUQUWLUUMFUUNUWCUWKUUMFNUULDUUMUVFFGVAUOZUWLUUKUUNF
      UPUUIUUJUUKUWCUWKUQZFEBURVBUSUWLFEUUMBUWNUWMUTZVCVDUWLUVBUWFJUVCUVGUWLUWF
      UURUVGNZUWESZUVBTUWPUWFTUWLUWEUWQUVBUWLUWEUWPUWLUVCUVGUURUWKUVCUVGVEUWDUV
      FUUMVLVFVGVHVIUWPUWEUVBVJVMVKVNVOVPUWHUWFUUMUURQMZNZUUSUUPAUGZUVAPUHZTZSZ
      JUVGRIUVGRZUWDUWAUXDUWHUXBJUVGRIUVGRZSUWHUWHSUWHUWFUXBIJUVGUVGVQUWHUXEUWH
      UVKUWRNZUUSUVKBMZAUGZUVAPUHZTZLUVGRZJUVGRUXBIUVGRZJUVGRUWHUXEUXKUXLJUVGUX
      JUXBLIUVGLIVRZUXFUWSUXIUXAUVKUUMUWRVSUXMUXHUWTUVAPUXMUXGUUPUUSAUVKUUMBVTW
      AWBWCWDWEUXJUWFUVKUVCNZUUPUXGAUGZUVAPUHZTJLIJUVGUVGJIVRZUXFUXNUXIUXPUXQUW
      RUVCUVKUURUUMQVTWFUXQUXHUXOUVAPUXQUUSUUPUXGAUURUUMBVTWGWBWCLJVRZUXNUWEUXP
      UVBUVKUURUVCVSUXRUXOUUTUVAPUXRUXGUUSUUPAUVKUURBVTWAWBWCWHUXBJIUVGUVGWIWJW
      KUWHWLWMUWDUXCUVBIJUVGUVGUWDUWKUWPSZSZUXCUWFUWSUVBTZSZUVBUXTUXBUYAUWFUXTU
      XAUVBUWSUXTUWTUUTUVAPUXTUUIUUSENUUQUWTUUTUPUUIUUJUUKUWCUXSWNUXTFEUURBUUIU
      UJUUKUWCUXSUQUWCUWPUURFNUULUWKDUURUVFFGVAWOUTUWDUWKUUQUWPUWOWPUUSUUPAEWQW
      RWBWSWTUYBUWEUWSXAZUVBTZUXTUVBUWEUVBUWSXBUXTUYCUYDUVBXCUXSUYCUWDUWKUUMONU
      URONUYCUWPUVFUUMXDUVFUURXDUUMUURXEXFVFUYCUVBXGVBXHXIXJXHXIXPQOXKZFOVEUVOU
      WBXCOOXLZQUCUYEXMOUYFQXNXOFDQMOGDXQXRZUVMUWALUAOFQUVLUVTIUVKUVGUVBJUVKUVG
      XSXTYAYGYBYCUUIUUJUUKUVQUVJXCZUUIUUJSZUUKBEYDYEUGNZUYHUYIEUBUFZNZYDYFNZSU
      UKFYDVEZSUYJUUKUYIUYLUYMUUIUYLUUJAEUBYHYIYJYKUUKUYNFOYDUYGYLYMYNEYDFBUYKY
      FYOXFUYIUVQUYJUVJUYIKAUAIJBDEFGUUIUUJYPUUIUUJYQYRYSYTUUAUVSUVNEBUUBUGMZUV
      RNZUULUVPCUYOUVRHUUCUUJUUIUVNFUUDMNUUKUYPUVPXCDFGUUEKLIJUVNABEFUUFUUGVOUU
      H $.
  $}

  ${
    $d d f D $.  $d f F $.  $d d f J $.  $d d f x X $.
    iscmet.1 $e |- J = ( MetOpen ` D ) $.
    $( The property " ` D ` is a complete metric." meaning all Cauchy filters
       converge to a point in the space.  (Contributed by Mario Carneiro,
       1-May-2014.)  (Revised by Mario Carneiro, 13-Oct-2015.) $)
    iscmet $p |- ( D e. ( CMet ` X ) <-> ( D e. ( Met ` X ) /\
                 A. f e. ( CauFil ` D ) ( J fLim f ) =/= (/) ) ) $=
      ( vd vx cms cfv wcel cvv cme cv cflim co c0 ccfil cmopn wceq fveq2 wne wa
      wral elfvex adantr crab rabeq syl df-cmet fvex rabex fvmpt eleq2d syl6eqr
      oveq1d neeq1d raleqbidv elrab syl6bb pm5.21nii ) ADHIZJZDKJZADLIZJZCBMZNO
      ZPUAZBAQIZUCZUBZADHUDVEVCVJADLUDUEVCVBAFMZRIZVFNOZPUAZBVLQIZUCZFVDUFZJVKV
      CVAVRAGDVQFGMZLIZUFZVRKHVSDSVTVDSWAVRSVSDLTVQFVTVDUGUHGBFUIVQFVDDLUJUKULU
      MVQVJFAVDVLASZVOVHBVPVIVLAQTWBVNVGPWBVMCVFNWBVMARICVLARTEUNUOUPUQURUSUT
      $.

    $( The convergence of a Cauchy filter in a complete metric space.
       (Contributed by Mario Carneiro, 14-Oct-2015.) $)
    cmetcvg $p |- ( ( D e. ( CMet ` X ) /\ F e. ( CauFil ` D ) ) ->
                    ( J fLim F ) =/= (/) ) $=
      ( vf cms cfv wcel cv cflim co c0 wne ccfil wral cme iscmet simprbi wceq
      oveq2 neeq1d rspccva sylan ) ADGHIZCFJZKLZMNZFAOHZPZBUIICBKLZMNZUEADQHIUJ
      AFCDERSUHULFBUIUFBTUGUKMUFBCKUAUBUCUD $.
  $}

  ${
    $d f D $.  $d f X $.
    $( A complete metric space is a metric space.  (Contributed by NM,
       18-Dec-2006.)  (Revised by Mario Carneiro, 29-Jan-2014.) $)
    cmetmet $p |- ( D e. ( CMet ` X ) -> D e. ( Met ` X ) ) $=
      ( vf cms cfv wcel cme cmopn cv cflim co c0 ccfil wral eqid iscmet simplbi
      wne ) ABDEFABGEFAHEZCIJKLRCAMENACSBSOPQ $.

    cmetmeti.1 $e |- D e. ( CMet ` X ) $.
    $( A complete metric space is a metric space.  (Contributed by NM,
       26-Oct-2007.) $)
    cmetmeti $p |- D e. ( Met ` X ) $=
      ( cms cfv wcel cme cmetmet ax-mp ) ABDEFABGEFCABHI $.
  $}

  ${
    $d j k m w x y z D $.  $d j k m w x y z F $.  $d j k m y z G $.  $d x P $.
    $d j k x y z J $.  $d j k m x y z ph $.  $d j k m w x y z X $.
    cmetcau.1 $e |- J = ( MetOpen ` D ) $.
    ${
      cmetcau.3 $e |- ( ph -> D e. ( CMet ` X ) ) $.
      cmetcau.4 $e |- ( ph -> P e. X ) $.
      cmetcau.5 $e |- ( ph -> F e. ( Cau ` D ) ) $.
      cmetcau.6 $e |- G = ( x e. NN |-> if ( x e. dom F , ( F ` x ) , P ) ) $.
      $( Lemma for ~ cmetcau .  (Contributed by Mario Carneiro,
         14-Oct-2015.) $)
      cmetcaulem $p |- ( ph -> F e. dom ( ~~>t ` J ) ) $=
        ( vk vz cn cfv wcel wa wral vy vj vw vm cv cuz cima cfg co cflf wex clm
        cdm c0 wne cfm cflim ctopon cfil wf wceq cxmt cme cms cmetmet mopntopon
        syl metxmet cfbas c1 cz 1z nnuz uzfbas mp1i fgcl cif cc cvv elfvdm cnex
        cpm a1i cca caufpm syl2anc elpm2g simprbda syl21anc adantr ffvelrnda wn
        ad2antrr ifclda fmptd flfval syl3anc eqid fmfg oveq2d eqtr4d ccfil wrex
        wss crp 1rp clt wbr w3a iscau3 simplbda mpdan simp1 ralimi reximi biidd
        1zzd rspcv mpsyl eqidd iscau4 wi simprl eluznn sylan idd sylan2 anassrs
        ralimdva syldan reximdva ralimdv mpd sselda weq fveq2 syl5bir wb lmmbr3
        ex dfss3 nnsscn jctir elpm2r nnz mpidan dmmptd eleq2d biimpar 3anim123d
        ad2antrl simprr iftrue adantl fvex syl6eqel eleq1 ifbieq1d fvmptg eqtrd
        a1d cin elind eqeq12d elin sylbi vtoclga mpbir2and expr rexlimdva mpbid
        caucfil cmetcvg eqnetrd sylib lmflf lmcl biimpa simp3d r19.26 ad2ant2lr
        rexanuz2 simprr2 eqeltrrd oveq1d simprr3 eqbrtrrd mpand mpbir3and lmrel
        n0 3jca releldmi sylbird exlimdv ) AUAUEZFGPUFPUGZUHUIZUJUIQZRZUAUKZEGU
        LQZUMRZAUWSUNUOUXAAUWSGUWQHFUPUIZQZUQUIZUNAUWSGUWRUXDQZUQUIZUXFAGHURQRZ
        UWRPUSQRZPHFUTZUWSUXHVAACHVBQRZUXIACHVCQRZUXLACHVDQRZUXMJCHVEVGCHVHVGZC
        GHIVFVGZAUWQPVIQRZUXJVJVKRZUXQAVLVJPVMVNVOZUWQPVPVGABPBUEZEUMZRZUXTEQZD
        VQZHFAUXTPRZSZUYBUYCDHUYFUYAHUXTEAUYAHEUTZUYEAHVDUMZRZVRVSRZEHVRWBUIZRZ
        UYGAUXNUYIJCHVDVTVGZUYJAWAWCZAUXLECWDQZRZUYLUXOLCEHWEWFZUYIUYJSUYLUYGUY
        AVRXDHVREUYHVSWGWHWIWJWKADHRUYEUYBWLKWMWNZMWOZFGUWRHPWPWQAUXEUXGGUQAUYI
        UXQUXKUXEUXGVAUYMUXSUYSUWQUYHFUWRHPUWRWRZWSWQWTXAAUXNUXECXBQRZUXFUNUOJA
        FUYORZVUAANUEZUYARZNUBUEZUFQZTZUBPXCZVUBVJXERAVUHOXETZVUHXFAVUDVUCEQZHR
        ZVUJUCUEEQCUIOUEZXGXHUCVUCUFQTZXIZNVUFTZUBPXCZOXETZVUIAUYPVUQLAUYPUYLVU
        QAOCUBNUCEVJHPVMUXOAXQZXJXKXLVUPVUHOXEVUOVUGUBPVUNVUDNVUFVUDVUKVUMXMXNX
        OXNVGZVUHVUHOVJXEVULVJVAVUHXPXRXSAVUGVUBUBPVUGVUFUYAXDZAVUEPRZSZVUBNVUF
        UYAUUAAVVAVUTVUBAVVAVUTSZSZVUBFUYKRZVUCFUMZRZVUKVUJUDUEZEQZCUIVULXGXHZX
        IZNVVHUFQZTZUDVUFXCZOXETZAVVEVVCAUYIUYJUXKPVRXDZSVVEUYMUYNAUXKVVPUYSUUB
        UUCHVRPFUYHVSUUDWIWJVVDVUDVUKVVJXIZNVVLTZUDVUFXCZOXETZVVOAVVCUYPVVTLVVD
        UYPUYLVVTVVDOVUJVVICUDNEVUEHVUFVUFWRZAUXLVVCUXOWJZVVAVUEVKRAVUTVUEUUEUU
        KZVVDVUCVUFRZSZVUJXTVVDVVHVUFRZSZVVIXTYAXKUUFVVDVVSVVNOXEVVDVVRVVMUDVUF
        VVDVWFVVHPRZVVRVVMYBVVDVVAVWFVWHAVVAVUTYCZVVHVUEYDYEZVVDVWHSVVQVVKNVVLV
        VDVWHVUCVVLRZVVQVVKYBZVWHVWKSVVDVUCPRZVWLVUCVVHYDVVDVWMSZVUDVVGVUKVUKVV
        JVVJVWNVVGVUDVVDVVGVWMVVDVVFPVUCAVVFPVAVVCABFPUYDHMUYRUUGWJUUHUUIUVAVWN
        VUKYFVWNVVJYFUUJYGYHYIYJYKYLYMVVDOVUJVVICUDNFVUEHVUFVWAVWBVWCVWEVWMVUDV
        UCFQZVUJVAZVVDVVAVWDVWMVWIVUCVUEYDZYEVVDVUFUYAVUCAVVAVUTUULZYNVWMVUDSZV
        WOVUDVUJDVQZVUJVWMVUDVWTVSRVWOVWTVAVWSVWTVUJVSVUDVWTVUJVAVWMVUDVUJDUUMU
        UNZVUCEUUOUUPBVUCUYDVWTPVSFBNYOUYBVUDUYCVUJDUXTVUCUYAUUQUXTVUCEYPUURMUU
        SYJVXAUUTZWFVWGVVHPUYAUVBZRVVHFQZVVIVAZVWGPUYAVVHVWJVVDVUFUYAVVHVWRYNUV
        CVWPVXENVVHVXCNUDYOVWOVXDVUJVVIVUCVVHFYPVUCVVHEYPUVDVUCVXCRVWSVWPVUCPUY
        AUVEVXBUVFUVGVGYAUVHUVIYQUVJYMAUXLUXRUXKVUBVUAYRUXOVURUYSCFUXEVJHPVMUXE
        WRUVLWQUVKCUXEGHIUVMWFUVNUAUWSUWKUVOAUWTUXCUAAUWTFUWPUXBXHZUXCAUXIUXRUX
        KVXFUWTYRUXPVURUYSUWPFGUWRVJHPVMUYTUVPWQAVXFUXCAVXFSZEUWPUXBXHZUXCVXGVX
        HUYLUWPHRZVUDVUKVUJUWPCUIZVULXGXHZXIZNVUFTZUBPXCZOXETZAUYLVXFUYQWJAUXIV
        XFVXIUXPUWPFGHUVQYEVXGVVGVWOHRZVWOUWPCUIZVULXGXHZXIZNVUFTUBPXCZOXETZVXO
        VXGVVEVXIVYAAVXFVVEVXIVYAXIAOCUWPUBNFGVJHPIUXOVMVURYSUVRUVSAVYAVXOYBVXF
        AVUIVYAVXOVUSVUIVYASVUHVXTSZOXETAVXOVUHVXTOXEUVTAVYBVXNOXEVYBVUDVXSSZNV
        UFTZUBPXCAVXNVUDVXSUBNVJPVMUWBAVYDVXMUBPVVBVYCVXLNVUFAVVAVWDVYCVXLYBZVV
        AVWDSAVWMVYEVWQAVWMSZVYCVXLVYFVYCSZVUDVUKVXKVYFVUDVXSYCVYGVWOVUJHVWMVUD
        VWPAVXSVXBUWAZVVGVXPVXRVUDVYFUWCUWDVYGVXQVXJVULXGVYGVWOVUJUWPCVYHUWEVVG
        VXPVXRVUDVYFUWFUWGUWLYTYGYHYIYKYQYLYQUWHWJYMVXGOCUWPUBNEGVJHPIAUXLVXFUX
        OWJVMVXGXQYSUWIEUWPUXBGUWJUWMVGYTUWNUWOYM $.
    $}

    $( The convergence of a Cauchy sequence in a complete metric space.
       (Contributed by NM, 19-Dec-2006.)  (Revised by Mario Carneiro,
       14-Oct-2015.) $)
    cmetcau $p |- ( ( D e. ( CMet ` X ) /\ F e. ( Cau ` D ) ) ->
                    F e. dom ( ~~>t ` J ) ) $=
      ( vx vy cms cfv wcel cca wa cv clm cdm c0 wne wex cxmt cme cmetmet syl n0
      metxmet caun0 sylan sylib cn cif cmpt simpll simpr simplr eqid cmetcaulem
      exlimddv ) ADHIJZBAKIJZLZFMZDJZBCNIOJFUSDPQZVAFRUQADSIJZURVBUQADTIJVCADUA
      ADUDUBABDUEUFFDUCUGUSVALGAUTBGUHGMZBOJVDBIUTUIUJZCDEUQURVAUKUSVAULUQURVAU
      MVEUNUOUP $.
  $}

  ${
    $d f g i j k n r s t u v x y D $.  $d j k r x y G $.  $d j k R $.
    $d j k n r u v x y F $.  $d f g i j k n r s x y X $.
    $d f g i j k n r s x y J $.  $d k n u v y S $.  $d f g i j k n r s y Z $.
    $d f i j k n x M $.  $d f g i j k n r s x y ph $.
    iscmet3.1 $e |- Z = ( ZZ>= ` M ) $.
    $( Lemma for ~ iscmet3 .  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    iscmet3lem3 $p |- ( ( M e. ZZ /\ R e. RR+ ) ->
      E. j e. Z A. k e. ( ZZ>= ` j ) ( ( 1 / 2 ) ^ k ) < R ) $=
      ( vn cz wcel crp wa c1 co cexp cfv clt wbr wceq cc0 cn0 c2 cdiv cabs wral
      cuz wrex cmpt simpl simpr eluzelz eleq2s adantl oveq2 eqid ovex fvmpt syl
      cv cres cli nn0uz reseq2i wss nn0ssz resmpt ax-mp eqtr3i cc halfcn a1i cr
      cle halfre 1rp rphalfcl rpge0 absid mp2an halflt1 eqbrtri expcnv syl5eqbr
      cvv wb 0z mptex climres sylancr mpbid climi0 uztrn2 rpexpcl absidd breq1d
      zex rpre sylan2 anassrs ralbidva rexbidva ) DHIZAJIZKZLUAUBMZCURZNMZUCOZA
      PQZCBURZUEOZUDZBEUFXFAPQZCXJUDZBEUFXCXFABCGHXDGURZNMZUGZDEFXAXBUHXAXBUIXC
      XEEIZKZXEHIZXEXPOXFRXQXSXCXSXEDUEOEDXEUJFUKULZGXEXOXFHXPXNXEXDNUMXPUNXDXE
      NUOUPUQXCXPSUEOZUSZSUTQZXPSUTQZXCYBGTXOUGZSUTXPTUSZYBYETYAXPVAVBTHVCYFYER
      VDGHTXOVEVFVGXCXDGXDVHIXCVIVJXDUCOZLPQXCYGXDLPXDVKISXDVLQZYGXDRVMXDJIZYHL
      JIYIVNLVOVFZXDVPVFXDVQVRVSVTVJWAWBXCSHIXPWCIZYCYDWDWEYKXCGHXOWOWFVJSXPSWC
      WGWHWIWJXCXKXMBEXCXIEIZKXHXLCXJXCYLXEXJIZXHXLWDZYLYMKXCXQYNDXEXIEFWKXRXGX
      FAPXRXFJIZXGXFRXRYIXSYOYJXTXDXEWLWHYOXFXFWPXFVPWMUQWNWQWRWSWTWI $.

    iscmet3.2 $e |- J = ( MetOpen ` D ) $.
    iscmet3.3 $e |- ( ph -> M e. ZZ ) $.
    iscmet3.4 $e |- ( ph -> D e. ( Met ` X ) ) $.
    ${
      iscmet3.6 $e |- ( ph -> F : Z --> X ) $.
      iscmet3.9 $e |- ( ph -> A. k e. ZZ
        A. u e. ( S ` k ) A. v e. ( S ` k ) ( u D v ) < ( ( 1 / 2 ) ^ k ) ) $.
      iscmet3.10 $e |- ( ph -> A. k e. Z
        A. n e. ( M ... k ) ( F ` k ) e. ( S ` n ) ) $.
      $( Lemma for ~ iscmet3 .  (Contributed by Mario Carneiro,
         15-Oct-2015.) $)
      iscmet3lem1 $p |- ( ph -> F e. ( Cau ` D ) ) $=
        ( wcel vj vr cca cfv cv co clt wbr cuz wral wrex crp wa c1 c2 cdiv cexp
        cz iscmet3lem3 sylan r19.2uz syl wi cfz simpl syl6eleq eluzfz2 ad2antrr
        adantl rsp sylc fveq2 eleq2d rspcv simprr elfzuzb sylanbrc uztrn2 oveq2
        wceq eleq1d raleqbidv eluzelz eleq2s ad2antrl oveq1 rspc2va syl21anc cr
        breq1d cme adantr ffvelrn syl2an metcl syl3anc rphalfcl rpexpcl sylancr
        1rp ax-mp rpred rpre ad2antlr lttr mpand anassrs ralrimdva reximdva mpd
        wf ralrimiva cxmt metxmet eqidd iscauf mpbird ) AHDUCUDTFUEZHUDZUAUEZHU
        DZDUFZUBUEZUGUHZUAXRUIUDZUJZFLUKZUBULUJAYGUBULAYCULTZUMZUNUOUPUFZXRUQUF
        ZYCUGUHZFLUKZYGYIYLFXTUIUDUJUALUKZYMAJURTYHYNOYCUAFJLMUSUTYLUAFJLMVAVBY
        IYLYFFLYIXRLTZUMYLYDUAYEYIYOXTYETZYLYDVCYIYOYPUMZUMZYBYKUGUHZYLYDYRXSXR
        EUDZTZYAYTTZCUEZBUEZDUFZYKUGUHZBYTUJCYTUJZYSYRXRJXRVDUFZTZXSGUEZEUDZTZG
        UUHUJZUUAYRXRJUIUDZTZUUIYRXRLUUNYQYOYIYOYPVEZVIZMVFZJXRVGVBYRUUMFLUJZYO
        UUMAUUSYHYQSVHZUUQUUMFLVJVKUULUUAGXRUUHUUJXRVTZUUKYTXSUUJXREVLZVMVNVKYR
        XRJXTVDUFZTZYAUUKTZGUVCUJZUUBYRUUOYPUVDUURYIYOYPVOXRJXTVPVQYRXTLTZUUSUV
        FYQUVGYIJXTXRLMVRZVIUUTUUMUVFFXTLXRXTVTZUULUVEGUUHUVCXRXTJVDVSUVIXSYAUU
        KXRXTHVLWAWBVNVKUVEUUBGXRUVCUVAUUKYTYAUVBVMVNVKYRUUGFURUJZXRURTZUUGAUVJ
        YHYQRVHYOUVKYIYPUVKXRUUNLJXRWCMWDWEZUUGFURVJVKUUFYSXSUUDDUFZYKUGUHCBXSY
        AYTYTUUCXSVTUUEUVMYKUGUUCXSUUDDWFWJUUDYAVTUVMYBYKUGUUDYAXSDVSWJWGWHYRYB
        WITZYKWITYCWITZYSYLUMYDVCYRDKWKUDTZXSKTZYAKTZUVNAUVPYHYQPVHYILKHXKZYOUV
        QYQAUVSYHQWLZUUPLKXRHWMWNYIUVSUVGUVRYQUVTUVHLKXTHWMWNXSYADKWOWPYRYKYRYJ
        ULTZUVKYKULTUNULTUWAWTUNWQXAUVLYJXRWRWSXBYHUVOAYQYCXCXDYBYKYCXEWPXFXGXH
        XIXJXLAUBYAXSDFUAHJKLMAUVPDKXMUDTPDKXNVBOAUVGUMYAXOAYOUMXSXOQXPXQ $.

      iscmet3.7 $e |- ( ph -> G e. ( Fil ` X ) ) $.
      iscmet3.8 $e |- ( ph -> S : ZZ --> G ) $.
      iscmet3.5 $e |- ( ph -> F e. dom ( ~~>t ` J ) ) $.
      $( Lemma for ~ iscmet3 .  (Contributed by Mario Carneiro,
         15-Oct-2015.) $)
      iscmet3lem2 $p |- ( ph -> ( J fLim G ) =/= (/) ) $=
        ( vx vy vr vj cv clm cfv wbr cflim co c0 wne cdm wcel wex eldmg ibi syl
        wa wral ctopon cxmt cme metxmet mopntopon lmcl sylan cbl wss crp adantr
        wi wrex mopni2 3expia cfil ad3antrrr c1 cdiv cexp clt ad2antrr rphalfcl
        c2 cuz adantl iscmet3lem3 syl2anc blcntr syl3anc simplr cxr rpxrd blopn
        cz lmcvg rexanuz2 r19.2uz wf eluzelz eleq2s ad2antrl ffvelrn rpxr blssm
        cle 1rp ax-mp rpexpcl mpan rpred ltle simpll cfz eluzfz2 r19.21bi fveq2
        cr weq eleq2d rspcv sylc simpr ad2antlr rsp wceq oveq1 breq1d ffvelrnda
        syl21anc wb syl22anc syld impr filss syl13anc rexlimdvaa rspc2va syl2an
        oveq2 filelss sselda elbl2 mpbird ex ssrdv ssbl sstr adantrd blcom rpre
        syl6an blhalf expr sylbid adantld sstrd syl5bir mp2and ad2ant2r toponss
        syl5 simprr ralrimiva flimopn mpbir2and ne0i exlimddv ) AHUDUHZJUIUJZUK
        ZJIULUMZUNUOZUDAHUVMUPZUQZUVNUDURZUCUVRUVSUDHUVMUVQUSUTVAAUVNVBZUVLUVOU
        QZUVPUVTUWAUVLLUQZUVLUEUHZUQZUWCIUQZVOZUEJVCZAJLVDUJUQZUVNUWBADLVEUJUQZ
        UWHADLVFUJUQUWIQDLVGVAZDJLOVHVAZUVLHJLVIVJZUVTUWFUEJUVTUWCJUQZVBZUWDUVL
        UFUHZDVKUJZUMZUWCVLZUFVMVPZUWEUVTUWIUWMUWDUWSVOAUWIUVNUWJVNZUWIUWMUWDUW
        SUFUWCDUVLJLOVQVRVJUWNUWRUWEUFVMUWNUWOVMUQZUWRVBZVBILVSUJUQZUWQIUQZUWCL
        VLZUWRUWEAUXCUVNUWMUXBUAVTUVTUXAUXDUWMUWRUVTUXAVBZWAWGWBUMZFUHZWCUMZUWO
        WGWBUMZWDUKZFUGUHWHUJZVCUGMVPZUXHHUJZUVLUXJUWPUMZUQZFUXLVCUGMVPZUXDUXFK
        WRUQZUXJVMUQZUXMAUXRUVNUXAPWEZUXAUXSUVTUWOWFWIZUXJUGFKMNWJWKUXFUVLUXOUG
        FHJKMNUXFUWIUWBUXSUVLUXOUQUVTUWIUXAUWTVNZUVTUWBUXAUWLVNZUYADUVLUXJLWLWM
        UXTAUVNUXAWNUXFUWIUWBUXJWOUQZUXOJUQUYBUYCUXFUXJUYAWPZDUVLUXJJLOWQWMWSUX
        MUXQVBUXKUXPVBZFUXLVCUGMVPZUXFUXDUXKUXPUGFKMNWTUYGUYFFMVPUXFUXDUYFUGFKM
        NXAUXFUYFUXDFMUXFUXHMUQZUYFVBZVBZUXCUXHEUJZIUQZUWQLVLZUYKUWQVLUXDAUXCUV
        NUXAUYIUAVTUYJWRIEXBZUXHWRUQZUYLAUYNUVNUXAUYIUBVTUYHUYOUXFUYFUYOUXHKWHU
        JZMKUXHXCNXDZXEWRIUXHEXFZWKUXFUYMUYIUXFUWIUWBUWOWOUQZUYMUYBUYCUXAUYSUVT
        UWOXGWIDUVLUWOLXHWMVNUYJUYKUXNUXJUWPUMZUWQUXFUYHUYFUYKUYTVLZUXFUYHVBZUX
        KVUAUXPVUBUXKUXIUXJXIUKZVUAVUBUXIYAUQUXJYAUQUXKVUCVOVUBUXIVUBUYOUXIVMUQ
        ZUYHUYOUXFUYQWIUXGVMUQZUYOVUDWAVMUQVUEXJWAWFXKUXGUXHXLXMZVAZXNVUBUXJUXF
        UXSUYHUYAVNXNUXIUXJXOWKVUBUYKUXNUXIUWPUMZVLZVUCVUHUYTVLZVUAUXFAUYHVUIAU
        VNUXAXPAUYHVBZUEUYKVUHVUKUWCUYKUQZUWCVUHUQZVUKVULVBZVUMUXNUWCDUMZUXIWDU
        KZVUNUXNUYKUQZVULCUHZBUHZDUMZUXIWDUKZBUYKVCCUYKVCZVUPVUKVUQVULVUKUXHKUX
        HXQUMZUQZUXNGUHZEUJZUQZGVVCVCZVUQUYHVVDAVVDUXHUYPMKUXHXRNXDWIAVVHFMTXSV
        VGVUQGUXHVVCGFYBVVFUYKUXNVVEUXHEXTYCYDYEVNVUKVULYFVUNVVBFWRVCZUYOVVBAVV
        IUYHVULSWEUYHUYOAVULUYQYGVVBFWRYHYEVVAVUPUXNVUSDUMZUXIWDUKCBUXNUWCUYKUY
        KVURUXNYIVUTVVJUXIWDVURUXNVUSDYJYKBUEYBVVJVUOUXIWDVUSUWCUXNDUUCYKUUAYMV
        UNUWIUXIWOUQZUXNLUQZUWCLUQVUMVUPYNAUWIUYHVULUWJWEUYHVVKAVULUYHUXIUYHUYO
        VUDUYQVUFVAWPYGVUKVVLVULAMLUXHHRYLVNVUKUYKLUWCVUKUXCUYLUYKLVLAUXCUYHUAV
        NAUYNUYOUYLUYHUBUYQUYRUUBUYKILUUDWKUUEUWCDUXNUXILUUFYOUUGUUHUUIVJVUBUWI
        VVLVVKUYDVUCVUJVOUXFUWIUYHUYBVNZUXFMLUXHHAMLHXBUVNUXARWEYLZVUBUXIVUGWPU
        XFUYDUYHUYEVNZUWIVVLVBZVVKUYDVBVUCVUJDUXNUXIUXJLUUJVRYOUYKVUHUYTUUKUUOY
        PUULYQUXFUYHUYFUYTUWQVLZVUBUXPVVQUXKVUBUXPUVLUYTUQZVVQVUBUWIUYDUWBVVLUX
        PVVRYNVVMVVOUXFUWBUYHUYCVNVVNUXNDUVLUXJLUUMYOVUBUWIVVLUWOYAUQZVVRVVQVOV
        VMVVNUXAVVSUVTUYHUWOUUNYGVVPVVSVVRVVQUWODLUXNUVLUUPUUQYMUURUUSYQUUTUYKU
        WQILYRYSYTUVEUVAUVBUVCUWNUXEUXBUVTUWHUWMUXEAUWHUVNUWKVNUWCJLUVDVJVNUWNU
        XAUWRUVFUWQUWCILYRYSYTYPUVGAUWAUWBUWGVBYNZUVNAUWHUXCVVTUWKUAUEUVLIJLUVH
        WKVNUVIUVOUVLUVJVAUVK $.
    $}

    $( The property " ` D ` is a complete metric" expressed in terms of
       functions on ` NN ` (or any other upper integer set).  Thus, we only
       have to look at functions on ` NN ` , and not all possible Cauchy
       filters, to determine completeness.  (The proof uses countable choice.)
       (Contributed by NM, 18-Dec-2006.)  (Revised by Mario Carneiro,
       5-May-2014.) $)
    iscmet3 $p |- ( ph -> ( D e. ( CMet ` X ) <->
            A. f e. ( Cau ` D ) ( f : Z --> X -> f e. dom ( ~~>t ` J ) ) ) ) $=
      ( vu vk vn cfv wcel cv wral wa cz vg vs vv vt vx vi vj cms wf clm cdm cca
      wi cmetcau a1d ralrimiva cme cflim co c0 wne ccfil adantr c1 c2 cdiv cexp
      clt wbr wex wrex crp simpr 1rp rphalfcl ax-mp rpexpcl cfili syl2an vex cn
      mpan com znnen nnenom entri raleq raleqbi1dv axcc4 syl cdom ciin ad2antrr
      cid cfz cen uzenom endom 3syl crab cin dfin5 wss wceq fzn0 biimpri eleq2s
      cuz simprr elfzelz ffvelrn cfil cxmt metxmet simpl cfilfil filelss syldan
      sylan r19.2z syl2anr iinss elfvdm fvi sseqtr4d sseqin2 sylib syl5eqr fvex
      syl2anc cvv wb weq fveq2 oveq2 raleqbidv cbvralv ex exlimdv mpd cfi fzfid
      cfn adantl iinfi syl13anc filfi eleqtrd fileln0 eqnetrd rabn0 eleq1 eliin
      adantrrr syl6bb axcc4dom wal df-ral 19.29 simprrl feq3 4syl mpbid simplrr
      sylanb simprd breq2d simprrr eleq2d eleq1d syl5bb simpld iscmet3lem1 mp2d
      simplrl simprl iscmet3lem2 syl5 expdimp an32s iscmet sylanbrc impbid2
      expr ) ABFUHOPZGFCQZUIZUWFDUJOUKPZUMZCBULOZRZUWEUWICUWJUWEUWFUWJPZSUWHUWG
      BUWFDFIUNUOUPAUWKUWEAUWKSZBFUQOPZDUAQZURUSUTVAZUABVBOZRUWEAUWNUWKKVCZUWMU
      WPUAUWQUWMUWOUWQPZSZTUWOUBQZUIZLQUCQBUSZVDVEVFUSZMQZVGUSZVHVIZUCUXEUXAOZR
      ZLUXHRZMTRZSZUBVJZUWPUWTUXGUCUDQZRZLUXNRZUDUWOVKZMTRUXMUWTUXQMTUWTUWSUXFV
      LPZUXQUXETPZUWMUWSVMUXDVLPZUXSUXRVDVLPUXTVNVDVOVPUXDUXEVQWBUDLUCBUXFUWOVR
      VSUPUXPUXJUDUWOUBMTUAVTTWAWCWDWEWFUXOUXILUXNUXHUXGUCUXNUXHWGWHWIWJUWTUXLU
      WPUBUWMUWSUXLUWPUWMUWSUXLSZSZGFWNOZUWFUIZUXEUWFOZNQZUXAOZPZNEUXEWOUSZRZMG
      RZSZCVJZUWPUYBGWCWKVIZUEQZNUYIUYGWLZPZUEUYCVKZMGRZUYMUYBETPZGWCWPVIUYNAUY
      TUWKUYAJWMEGHWQGWCWRWSUWMUWSUXBUYSUXKUWMUWSUXBSZSZUYRMGVUBUXEGPZSZUYQUEUY
      CWTZUTVAUYRVUDVUEUYPUTVUDVUEUYCUYPXAZUYPUEUYCUYPXBVUDUYPUYCXCVUFUYPXDVUDU
      YPFUYCVUDUYGFXCZNUYIVKZUYPFXCVUCUYIUTVAZVUGNUYIRVUHVUBVUIUXEEXHOZGVUIUXEV
      UJPEUXEXEXFHXGZVUBVUGNUYIVUBUYFUYIPZUYGUWOPZVUGVUBUXBUYFTPVUMVULUWMUWSUXB
      XIUYFEUXEXJTUWOUYFUXAXKVSZVUBUWOFXLOZPZVUMVUGUWMBFXMOPZUWSVUPVUAAVUQUWKAU
      WNVUQKBFXNZWJVCUWSUXBXOBUWOFXPZVSZUYGUWOFXQXSXRUPVUGNUYIXTYANUYIUYGFYBWJV
      UDUWNFUQUKZPZUYCFXDZUWMUWNVUAVUCUWRWMBFUQYCZFVVAYDZWSYEUYPUYCYFYGYHVUDVUP
      UYPUWOPUYPUTVAVUBVUPVUCVUTVCZVUDUYPUWOUUAOZUWOVUDVUPVUMNUYIRZVUIUYIUUCPUY
      PVVGPVVFVUBVVHVUCVUBVUMNUYIVUNUPVCVUCVUIVUBVUKUUDVUDEUXEUUBNUYIUYGUWOVUOU
      UEUUFVUDVUPVVGUWOXDVVFUWOFUUGWJUUHUYPUWOFUUIYJUUJUYQUEUYCUUKYGUPUUNUYQUYJ
      UEUYCCMGFWNYIUYOUYEXDUYQUYEUYPPZUYJUYOUYEUYPUULUYEYKPVVIUYJYLUXEUWFYINUYE
      UYIUYGYKUUMVPUUOUUPYJAUYAUWKUYMUWPUMAUYASZUWKUYMUWPUWKUYMSUWLUWIUMZUYLSZC
      VJZVVJUWPUWKVVKCUUQUYMVVMUWICUWJUURVVKUYLCUUSUVEVVJVVLUWPCVVJVVLUWPVVJVVL
      SZUCLBUXAUFUGUWFUWODEFGHIAUYTUYAVVLJWMZAUWNUYAVVLKWMZVVNUYDUWGVVJVVKUYDUY
      KUUTVVNUWNVVBVVCUYDUWGYLVVPVVDVVEUYCFGUWFUVAUVBUVCZVVNUXKUXCUXDUFQZVGUSZV
      HVIZUCVVRUXAOZRZLVWARZUFTRVVNUXBUXKAUWSUXLVVLUVDZUVFUXJVWCMUFTMUFYMZUXIVW
      BLUXHVWAUXEVVRUXAYNZVWEUXGVVTUCUXHVWAVWFVWEUXFVVSUXCVHUXEVVRUXDVGYOUVGYPY
      PYQYGZVVNUYKVVRUWFOZUGQZUXAOZPZUGEVVRWOUSZRZUFGRVVJVVKUYDUYKUVHUYJVWMMUFG
      UYJUYEVWJPZUGUYIRVWEVWMUYHVWNNUGUYINUGYMUYGVWJUYEUYFVWIUXAYNUVIYQVWEVWNVW
      KUGUYIVWLUXEVVREWOYOVWEUYEVWHVWJUXEVVRUWFYNUVJYPUVKYQYGZVVNVUQUWSVUPVVNUW
      NVUQVVPVURWJAUWSUXLVVLUVOVUSYJVVNUXBUXKVWDUVLVVNUWLUWGUWHVVNUCLBUXAUFUGUW
      FDEFGHIVVOVVPVVQVWGVWOUVMVVQVVJVVKUYLUVPUVNUVQYRYSUVRUVSUVTYTUWDYSYTUPBUA
      DFIUWAUWBYRUWC $.
  $}

  ${
    $d f D $.  $d f J $.  $d f X $.
    iscmet2.1 $e |- J = ( MetOpen ` D ) $.
    $( A metric ` D ` is complete iff all Cauchy sequences converge to a point
       in the space.  The proof uses countable choice.  Part of Definition
       1.4-3 of [Kreyszig] p. 28.  (Contributed by NM, 7-Sep-2006.)  (Revised
       by Mario Carneiro, 15-Oct-2015.) $)
    iscmet2 $p |- ( D e. ( CMet ` X ) <-> ( D e. ( Met ` X ) /\
                   ( Cau ` D ) C_ dom ( ~~>t ` J ) ) ) $=
      ( vf cms cfv wcel cme cca clm cdm wss wa cmetmet cv cmetcau ex ssrdv cn
      jca wf wi wral ssel2 a1d ralrimiva adantl nnuz 1zzd iscmet3 mpbird impbii
      c1 simpl ) ACFGHZACIGHZAJGZBKGLZMZNZUPUQUTACOUPEURUSUPEPZURHZVBUSHZAVBBCD
      QRSUAVAUPTCVBUBZVDUCZEURUDZUTVGUQUTVFEURUTVCNVDVEURUSVBUEUFUGUHVAAEBUNCTU
      IDVAUJUQUTUOUKULUM $.
  $}

  ${
    $d s u v x y D $.  $d s u v x y F $.  $d s u v x y X $.  $d s u v x y Y $.
    $( A Cauchy filter on a metric subspace extends to a Cauchy filter in the
       larger space.  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    cfilresi $p |- ( ( D e. ( *Met ` X ) /\
         F e. ( CauFil ` ( D |` ( Y X. Y ) ) ) ) ->
       ( X filGen F ) e. ( CauFil ` D ) ) $=
      ( vu vv vx vy cxmt cfv wcel wa co cv clt wral crp sylan wss syl cxp ccfil
      cres cfg wbr wrex cin xmetres cfil iscfil2 simplbda cfilfil filelss inss2
      wceq syl6ss sselda anim12dan ovres 2ralbidva rexbidva ralbidv mpbid cfbas
      breq1d wb cpw cdm filfbas filsspw inss1 sspwb mpbi elfvdm adantr fbasweak
      syl3anc fgcfil syldan mpbird ) ACIJKZBADDUAUCZUBJKZLZCBUDMAUBJKZENZFNZAMZ
      GNZOUEZFHNZPEWKPZHBUFZGQPZWDWFWGWBMZWIOUEZFWKPEWKPZHBUFZGQPZWNWAWBCDUGZIJ
      KZWCWSADCUHZXAWCBWTUIJKZWSGHEFWBBWTUJUKRWDWRWMGQWDWQWLHBWDWKBKZLZWPWJEFWK
      WKXEWFWKKZWGWKKZLLZWOWHWIOXHWFDKZWGDKZLWOWHUOXEXFXIXGXJXEWKDWFXEWKWTDWDXC
      XDWKWTSWAXAWCXCXBWBBWTULRZWKBWTUMRCDUNUPZUQXEWKDWGXLUQURWFWGDDAUSTVEUTVAV
      BVCWAWCBCVDJKZWEWNVFWDBWTVDJKZBCVGZSCIVHZKZXMWDXCXNXKBWTVITWDBWTVGZXOWDXC
      BXRSXKBWTVJTWTCSXRXOSCDVKWTCVLVMUPWAXQWCACIVNVOBXPWTCVPVQGHEFBACVRVSVT $.

    $( Cauchy filter on a metric subspace.  (Contributed by Mario Carneiro,
       15-Oct-2015.) $)
    cfilres $p |- ( ( D e. ( *Met ` X ) /\ F e. ( Fil ` X ) /\ Y e. F ) ->
      ( F e. ( CauFil ` D ) <->
        ( F |`t Y ) e. ( CauFil ` ( D |` ( Y X. Y ) ) ) ) ) $=
      ( vu vv vx vy vs cfv wcel co wa cv clt wral crp syl2anc wb ex ccfil crest
      cxmt cfil w3a cxp cres wbr wrex cdif wn cfbas simp2 filfbas syl simp3 wss
      fbncp filelss 3adant1 trfil3 mpbird cfili adantll cin simpll2 simpll3 jca
      adantr elrestr 3expa sylan wi inss1 ssralv ralimdv syld ax-mp inss2 sseli
      ovres breq1d syl2an ralbidva ralbiia sylibr raleq rspcev syl2im rexlimdva
      raleqbi1dv mpd ralrimiva xmetres2 iscfil2 mpbir2and cfg cfilresi 3ad2ant1
      simp1 wceq fgtr eleq1d sylibd impbid ) ACUCJKZBCUDJZKZDBKZUEZBAUAJZKZBDUB
      LZADDUFUGZUAJKZXJXLXOXJXLMZXOXMDUDJKZENZFNZXNLZGNZOUHZFHNZPZEYCPZHXMUIZGQ
      PZXJXQXLXJXQCDUJBKUKZXJBCULJKZXIYHXJXHYIXFXHXIUMZBCUNUOXFXHXIUPDCBCURRXJX
      HDCUQZXQYHSYJXHXIYKXFDBCUSUTZDBCVARVBVIXPYFGQXPYAQKZMZXRXSALZYAOUHZFINZPZ
      EYQPZIBUIZYFXLYMYTXJIEFAYABVCVDYNYSYFIBYNYQBKZMYQDVEZXMKZYSYBFUUBPZEUUBPZ
      YFYNXHXIMUUAUUCYNXHXIXFXHXIXLYMVFXFXHXIXLYMVGVHXHXIUUAUUCYQDBXGBVJVKVLYSY
      PFUUBPZEUUBPZUUEUUBYQUQZYSUUGVMYQDVNUUHYSUUFEYQPUUGUUHYRUUFEYQYPFUUBYQVOV
      PUUFEUUBYQVOVQVRUUDUUFEUUBXRUUBKZYBYPFUUBUUIXRDKZXSDKZYBYPSXSUUBKUUBDXRYQ
      DVSZVTUUBDXSUULVTUUJUUKMXTYOYAOXRXSDDAWAWBWCWDWEWFUUCUUEYFYEUUEHUUBXMYDUU
      DEYCUUBYBFYCUUBWGWKWHTWIWJWLWMXPXNDUCJKZXOXQYGMSXJUUMXLXJXFYKUUMXFXHXIWTY
      LADCWNRVIGHEFXNXMDWOUOWPTXJXOCXMWQLZXKKZXLXFXHXOUUOVMXIXFXOUUOAXMCDWRTWSX
      JUUNBXKXHXIUUNBXAXFDBCXBUTXCXDXE $.
  $}

  ${
    $d f x y z D $.  $d x y z F $.  $d f x y z X $.  $d f x y z Y $.
    $( Cauchy sequence on a metric subspace.  (Contributed by NM, 30-Jan-2008.)
       (Revised by Mario Carneiro, 30-Dec-2013.) $)
    caussi $p |- ( D e. ( *Met ` X ) ->
                   ( Cau ` ( D |` ( Y X. Y ) ) ) C_ ( Cau ` D ) ) $=
      ( vz vy vx cxmt cfv wcel cxp cv cc co clt wral cz crp wa wss cvv cres cca
      vf cin cpm cdm wbr w3a cuz wrex wfun wi inss1 xpss2 ax-mp sstr anim2i a1i
      mpan2 wb elfvdm inex1g syl cnex elpmg sylancl 3imtr4d adantl simp2 ralimi
      fveq2 eleq1d rspcva syl2an inss2 simpr sseldi sselda simplr ovresd breq1d
      uzid weq biimpd imdistanda sseld anim1d syld syldan anim2d 3anass 3imtr4g
      ralimdv impancom mpd ex reximdva anim12d xmetres iscau2 ssrdv ) ABGHIZUCA
      CCJUAZUBHZAUBHZXBUCKZBCUDZLUEMIZDKZXFUFIZXIXFHZXGIZXKEKZXFHZXCMZFKZNUGZUH
      ZDXMUIHZOZEPUJZFQOZRZXFBLUEMIZXJXKBIZXKXNAMZXPNUGZUHZDXSOZEPUJZFQOZRXFXDI
      ZXFXEIXBXHYDYBYKXBXFUKZXFLXGJZSZRZYMXFLBJZSZRZXHYDYPYSULXBYOYRYMYOYNYQSZY
      RXGBSZYTBCUMZXGBLUNUOXFYNYQUPUSUQURXBXGTIZLTIZXHYPUTXBBGUFZIZUUCABGVAZBCU
      UEVBVCVDXGLXFTTVEVFXBUUFUUDYDYSUTUUGVDBLXFUUETVEVFVGXBYAYJFQXBXTYIEPXBXMP
      IZRZXTYIUUIXTRXNXGIZYIUUIXMXSIZXLDXSOUUJXTUUHUUKXBXMWBVHXRXLDXSXJXLXQVIVJ
      XLUUJDXMXSDEWCXKXNXGXIXMXFVKVLVMVNUUIUUJXTYIUUIUUJRZXRYHDXSUULXJXLXQRZRXJ
      YEYGRZRXRYHUULUUMUUNXJUUIUUJXNCIZUUMUUNULUULXGCXNBCVOZUUIUUJVPVQUUIUUORZU
      UMXLYGRUUNUUQXLXQYGUUQXLRZXQYGUURXOYFXPNUURXKXNACUUQXGCXKXGCSUUQUUPURVRUU
      IUUOXLVSVTWAWDWEUUQXLYEYGUUQXGBXKUUAUUQUUBURWFWGWHWIWJXJXLXQWKXJYEYGWKWLW
      MWNWOWPWQWMWRXBXCXGGHIYLYCUTACBWSFXCEDXFXGWTVCFAEDXFBWTVGXA $.

    $( Cauchy sequence on a metric subspace.  (Contributed by NM, 29-Jan-2008.)
       (Revised by Mario Carneiro, 30-Dec-2013.) $)
    causs $p |- ( ( D e. ( *Met ` X ) /\ F : NN --> Y ) ->
      ( F e. ( Cau ` D ) <-> F e. ( Cau ` ( D |` ( Y X. Y ) ) ) ) ) $=
      ( vy vz vx cxmt cfv wcel cn wf wa wss cc co cvv wb syl wral crn cres wfun
      cin cca cxp cpm caufpm cdm elfvdm cnex elpmg sylancl biimpa syldan simprd
      rnss rnxpss syl6ss adantlr frn ad2antlr ssind ex wi xmetres inex1g adantr
      sylan wfn ffn df-f simplbi2 cv clt wbr cuz wrex crp a1i fss sylan2 ancoms
      inss2 ffvelrn eluznn anassrs ovresd breq1d ralbidva rexbidva ralbidv nnuz
      c1 1zzd eqidd simpr iscauf simpl inss1 syl2anr 3bitr4rd sylan9r pm5.21ndd
      id ) ACHIJZKDBLZMZBUAZCDUDZNZBAUEIJZBADDUFUBZUEIJZXHXLXKXHXLMXICDXFXLXICN
      XGXFXLMZXIOCUFZUAZCXOBXPNZXIXQNXOBUCZXRXFXLBCOUGPJZXSXRMZABCUHXFXTYAXFCHU
      IZJZOQJZXTYARACHUJZUKCOBYBQULUMUNUOUPBXPUQSOCURUSUTXGXIDNXFXLKDBVAVBVCVDX
      FXNXKVEXGXFXNXKXFXNMZXIOXJUFZUAZXJYFBYGNZXIYHNYFXSYIXFXNBXJOUGPJZXSYIMZXF
      XMXJHIJZXNYJADCVFZXMBXJUHVIXFYJYKXFXJQJZYDYJYKRXFYCYNYECDYBVGSUKXJOBQQULU
      MUNUOUPBYGUQSOXJURUSVDVHXGXKKXJBLZXFXLXNRZXGBKVJZXKYOVEKDBVKYOYQXKKXJBVLV
      MSXFYOYPXFYOMZEVNZBIZFVNZBIZXMPZGVNZVOVPZFYSVQIZTZEKVRZGVSTZYTUUBAPZUUDVO
      VPZFUUFTZEKVRZGVSTZXNXLYRXGUUIUUNRYOXFXGXFYOXJDNZXGUUOXFCDWDVTKXJDBWAWBWC
      XGUUHUUMGVSXGUUGUULEKXGYSKJZMZUUEUUKFUUFUUQUUAUUFJZMZUUCUUJUUDVOUUSYTUUBA
      DUUQYTDJUURKDYSBWEVHXGUUPUURUUBDJZUUPUURMXGUUAKJZUUTUUAYSWFKDUUABWEWBWGWH
      WIWJWKWLSYRGUUBYTXMEFBWNXJKWMXFYLYOYMVHYRWOZYRUVAMUUBWPZYRUUPMYTWPZXFYOWQ
      WRYRGUUBYTAEFBWNCKWMXFYOWSUVBUVCUVDYOYOXJCNZKCBLXFYOXEUVEXFCDWTVTKXJCBWAX
      AWRXBVDXCXD $.
  $}

  ${
    $d f k r x y C $.  $d f k r s x y D $.  $d f k r x y ph $.  $d k s x y R $.
    $d f k r s x y X $.
    equivcau.1 $e |- ( ph -> C e. ( Met ` X ) ) $.
    equivcau.2 $e |- ( ph -> D e. ( Met ` X ) ) $.
    equivcau.3 $e |- ( ph -> R e. RR+ ) $.
    equivcau.4 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
      ( x C y ) <_ ( R x. ( x D y ) ) ) $.
    $( If the metric ` D ` is "strongly finer" than ` C ` (meaning that there
       is a positive real constant ` R ` such that
       ` C ( x , y ) <_ R x. D ( x , y ) ` ), all the ` D ` -Cauchy filters are
       also ` C ` -Cauchy.  (Using this theorem twice in each direction states
       that if two metrics are strongly equivalent, then they have the same
       Cauchy sequences.)  (Contributed by Mario Carneiro, 14-Sep-2015.) $)
    equivcfil $p |- ( ph -> ( CauFil ` D ) C_ ( CauFil ` C ) ) $=
      ( vs vr cfv cv wcel co wrex crp wa vf ccfil cfil wral cdiv simpr ad2antrr
      cbl wi rpdivcld wceq oveq2 eleq1d rexbidv rspcv syl wss simpllr metss2lem
      eqid ancom2s adantlr anassrs cxmt cxr cme ad3antrrr metxmet rpxr ad2antlr
      cmopn blssm syl3anc filss 3exp2 com24 syl3c reximdva ralrimdva imdistanda
      syld wb iscfil3 3syl 3imtr4d ssrdv ) AUAEUBNZDUBNZAUAOZGUCNPZBOZLOZEUHNZQ
      ZWIPZBGRZLSUDZTZWJWKMOZDUHNQZWIPZBGRZMSUDZTZWIWGPZWIWHPZAWJWQXCAWJTZWQXBM
      SXGWSSPZTZWQWKWSFUEQZWMQZWIPZBGRZXBXIXJSPWQXMUIXIWSFXGXHUFAFSPWJXHJUGUJWP
      XMLXJSWLXJUKZWOXLBGXNWNXKWIWLXJWKWMULUMUNUOUPXIXLXABGXIWKGPZTZWJXKWTUQZWT
      GUQZXLXAUIAWJXHXOURXGXHXOXQAXHXOTXQWJAXOXHXQABCDEFWSDVKNZEVKNZGXSUTXTUTHI
      JKUSVAVBVCXPDGVDNZPZXOWSVEPZXRXPDGVFNZPZYBAYEWJXHXOHVGDGVHZUPXIXOUFXHYCXG
      XOWSVIVJDWKWSGVLVMWJXLXRXQXAWJXLXRXQXAXKWTWIGVNVOVPVQVRWAVSVTAEYDPEYAPXEW
      RWBIEGVHBEWIGLWCWDAYEYBXFXDWBHYFBDWIGMWCWDWEWF $.

    $( If the metric ` D ` is "strongly finer" than ` C ` (meaning that there
       is a positive real constant ` R ` such that
       ` C ( x , y ) <_ R x. D ( x , y ) ` ), all the ` D ` -Cauchy sequences
       are also ` C ` -Cauchy.  (Using this theorem twice in each direction
       states that if two metrics are strongly equivalent, then they have the
       same Cauchy sequences.)  (Contributed by Mario Carneiro,
       14-Sep-2015.) $)
    equivcau $p |- ( ph -> ( Cau ` D ) C_ ( Cau ` C ) ) $=
      ( vk vf cv cfv co cz crp wcel wceq vs vr cuz cbl cres wf wrex wral cc cpm
      crab cca wa cdiv wi simpr ad2antrr rpdivcld oveq2 feq3d rexbidv rspcv syl
      simprr wss cdm elpmi ad3antlr resss dmss ax-mp uzid ad2antrl fdm ad2antll
      simpld eleqtrrd sseldi ffvelrnd eqid metss2lem ralrimiva ad3antrrr simplr
      cmopn expr oveq1 sseq12d imbi2d fssd reximdva syld ralrimdva ss2rabdv cme
      syl3c cxmt metxmet caufval 3syl 3sstr4d ) ALNZUCOZXBMNZOZUANZEUDOZPZXDXCU
      EZUFZLQUGZUARUHZMGUIUJPZUKZXCXEUBNZDUDOZPZXIUFZLQUGZUBRUHZMXMUKZEULOZDULO
      ZAXLXTMXMAXDXMSZUMZXLXSUBRYEXORSZUMZXLXCXEXOFUNPZXGPZXIUFZLQUGZXSYGYHRSXL
      YKUOYGXOFYEYFUPAFRSYDYFJUQURXKYKUAYHRXFYHTZXJYJLQYLXHYIXIXCXFYHXEXGUSUTVA
      VBVCYGYJXRLQYGXBQSZYJXRYGYMYJUMZUMZXCYIXQXIYGYMYJVDYOXEGSYFBNZYHXGPZYPXOX
      PPZVEZUOZBGUHZYFYIXQVEZYOXDVFZGXBXDYDUUCGXDUFZAYFYNYDUUDUUCUIVEGUIXDVGVPV
      HYOXIVFZUUCXBXIXDVEUUEUUCVEXDXCVIXIXDVJVKYOXBXCUUEYMXBXCSYGYJXBVLVMYJUUEX
      CTYGYMXCYIXIVNVOVQVRVSAUUAYDYFYNAYTBGAYPGSYFYSABCDEFXODWEOZEWEOZGUUFVTUUG
      VTHIJKWAWFWBWCYEYFYNWDYTYFUUBUOBXEGYPXETZYSUUBYFUUHYQYIYRXQYPXEYHXGWGYPXE
      XOXPWGWHWIVBWPWJWFWKWLWMWNAEGWOOZSEGWQOZSYBXNTIEGWRUAEMLGWSWTADUUISDUUJSY
      CYATHDGWRUBDMLGWSWTXA $.
  $}

  ${
    $d j k x D $.  $d j k J $.  $d j M $.  $d j k ph $.  $d j k Z $.
    $d j k x F $.  $d j k x P $.  $d j k x Q $.  $d j k x R $.  $d j k x X $.
    lmle.1 $e |- Z = ( ZZ>= ` M ) $.
    lmle.3 $e |- J = ( MetOpen ` D ) $.
    lmle.4 $e |- ( ph -> D e. ( *Met ` X ) ) $.
    lmle.6 $e |- ( ph -> M e. ZZ ) $.
    lmle.7 $e |- ( ph -> F ( ~~>t ` J ) P ) $.
    lmle.8 $e |- ( ph -> Q e. X ) $.
    lmle.9 $e |- ( ph -> R e. RR* ) $.
    lmle.10 $e |- ( ( ph /\ k e. Z ) -> ( Q D ( F ` k ) ) <_ R ) $.
    $( If the distance from each member of a converging sequence to a given
       point is less than or equal to a given amount, so is the convergence
       value.  (Contributed by NM, 23-Dec-2007.)  (Proof shortened by Mario
       Carneiro, 1-May-2014.) $)
    lmle $p |- ( ph -> ( Q D P ) <_ R ) $=
      ( wcel vx vj cv co cle wbr crab cuz cfv cres wf cxmt ctopon mopntopon syl
      clm wrel cdm lmrel releldm sylancr lmff wa eqid adantr cz simprl syl6eleq
      eluzelz wceq fvres adantl simprr ffvelrnda eqeltrrd uztrn2 adantlr syldan
      sylan oveq2 elrab sylanbrc ccld cxr blcld syl3anc lmcld rexlimddv simprbi
      breq1d ) ACDUAUCZBUDZEUEUFZUAJUGZTZDCBUDZEUEUFZAUBUCZUHUIZJGWSUJZUKZWOUBK
      AUBGHIJKLABJULUITZHJUMUITZNBHJMUNUOZOAHUPUIZUQGCXEUFZGXEURTHUSPGCXEUTVAVB
      AWRKTZXAVCZVCZCWNFGHWRJWSWSVDAXCXHXDVEXIWRIUHUIZTWRVFTXIWRKXJAXGXAVGZLVHI
      WRVIUOAXFXHPVEXIFUCZWSTZVCZXLGUIZJTDXOBUDZEUEUFZXOWNTXNXLWTUIZXOJXMXRXOVJ
      XIXLWSGVKVLXIWSJXLWTAXGXAVMVNVOXIXMXLKTZXQXIXGXMXSXKIXLWRKLVPVSAXSXQXHSVQ
      VRWMXQUAXOJWKXOVJWLXPEUEWKXODBVTWJWAWBAWNHWCUITZXHAXBDJTEWDTXTNQRUABDEWNH
      JMWNVDWEWFVEWGWHWOCJTWQWMWQUACJWKCVJWLWPEUEWKCDBVTWJWAWIUO $.
  $}

  ${
    $d F k $.  $d D k $.  $d G k $.  $d J k $.  $d P k $.  $d R k $.  $d X k $.
    $d ph k $.
    nglmle.1 $e |- X = ( Base ` G ) $.
    nglmle.2 $e |- D = ( ( dist ` G ) |` ( X X. X ) ) $.
    nglmle.3 $e |- J = ( MetOpen ` D ) $.
    nglmle.5 $e |- N = ( norm ` G ) $.
    nglmle.6 $e |- ( ph -> G e. NrmGrp ) $.
    nglmle.7 $e |- ( ph -> F : NN --> X ) $.
    nglmle.8 $e |- ( ph -> F ( ~~>t ` J ) P ) $.
    nglmle.9 $e |- ( ph -> R e. RR* ) $.
    nglmle.10 $e |- ( ( ph /\ k e. NN ) -> ( N ` ( F ` k ) ) <_ R ) $.
    $( If the norm of each member of a converging sequence is less than or
       equal to a given amount, so is the norm of the convergence value.
       (Contributed by NM, 25-Dec-2007.)  (Revised by AV, 16-Oct-2021.) $)
    nglmle $p |- ( ph -> ( N ` P ) <_ R ) $=
      ( wcel cfv c0g cle cgrp wceq cngp ngpgrp syl ctopon clm wbr cxmt cxme cmt
      co ngpms msxms xmsxmet mopntopon lmcl syl2anc eqid nmval2 grpidcl xmetsym
      cds syl3anc eqtrd c1 cn nnuz 1zzd cv wa adantr ffvelrnda eqbrtrrd eqbrtrd
      lmle ) ACIUAZGUBUAZCBUOZDUCAVTCWABUOZWBAGUDTZCJTZVTWCUEAGUFTZWDOGUGUHZAHJ
      UIUATZFCHUJUAUKWEABJULUATZWHAGUMTZWIAGUNTZWJAWFWKOGUPUHGUQUHBGJKLURUHZBHJ
      MUSUHQCFHJUTVAZCGVFUAZBIGJWANKWAVBZWNVBZLVCVAAWIWEWAJTZWCWBUEWLWMAWDWQWGJ
      GWAKWOVDUHZCWABJVEVGVHABCWADEFHVIJVJVKMWLAVLQWRRAEVMZVJTZVNZWSFUAZIUAZWAX
      BBUOZDUCXAXCXBWABUOZXDXAWDXBJTZXCXEUEAWDWTWGVOAVJJWSFPVPZXBWNBIGJWANKWOWP
      LVCVAXAWIXFWQXEXDUEAWIWTWLVOXGAWQWTWRVOXBWABJVEVGVHSVQVSVR $.
  $}

  ${
    $d j k x F $.  $d j k x M $.  $d j k x P $.  $d x J $.  $d j k x Z $.
    lmclim.2 $e |- J = ( TopOpen ` CCfld ) $.
    lmclim.3 $e |- Z = ( ZZ>= ` M ) $.
    $( Relate a limit on the metric space of complex numbers to our complex
       number limit notation.  (Contributed by NM, 9-Dec-2006.)  (Revised by
       Mario Carneiro, 1-May-2014.) $)
    lmclim $p |- ( ( M e. ZZ /\ Z C_ dom F ) ->
                ( F ( ~~>t ` J ) P <-> ( F e. ( CC ^pm CC ) /\ F ~~> P ) ) ) $=
      ( vk vx vj wcel wa cc co cv cfv clt wbr wral crp cz cdm wss cpm cabs cmin
      ccom w3a cuz wrex clm cli 3anass uztrn2 simplr sselda biantrurd wceq eqid
      wb cnmetdval ancoms breq1d pm5.32da ad2antlr bitr3d syl5bb sylan2 anassrs
      ralbidva rexbidva ralbidv anbi2d cnfldtopn cnxmet a1i simpl lmmbr3 simpll
      cxmt simpr eqidd clim2 3bitr4d ) DUAKZEBUBZUCZLZBMMUDNZKZAMKZHOZWFKZWLBPZ
      MKZWNAUEUFUGZNZIOZQRZUHZHJOZUIPZSZJEUJZITSZUHZWJWKWOWNAUFNUEPZWRQRZLZHXBS
      ZJEUJZITSZLZLZBACUKPRWJBAULRZLXFWJWKXELZLWHXNWJWKXEUMWHXPXMWJWHWKXEXLWHWK
      LZXDXKITXQXCXJJEXQXAEKZLWTXIHXBXQXRWLXBKZWTXIUTZXRXSLXQWLEKZXTDWLXAEGUNWT
      WMWOWSLZLZXQYALZXIWMWOWSUMYDYBYCXIYDWMYBXQEWFWLWEWGWKUOUPUQWKYBXIUTWHYAWK
      WOWSXHWKWOLWQXGWRQWOWKWQXGURWNAWPWPUSVAVBVCVDVEVFVGVHVIVJVKVLVDVMVGWHIWPA
      JHBCDMECFVNWPMVTPKWHVOVPGWEWGVQVRWHWJXOXMWHWJLZIAWNJHBDWIEGWEWGWJVSWHWJWA
      YEYALWNWBWCVDWD $.

    $( Relate a limit on the metric space of complex numbers to our complex
       number limit notation.  (Contributed by NM, 24-Jul-2007.)  (Revised by
       Mario Carneiro, 1-May-2014.) $)
    lmclimf $p |- ( ( M e. ZZ /\ F : Z --> CC ) ->
                 ( F ( ~~>t ` J ) P <-> F ~~> P ) ) $=
      ( cz wcel cc wf wa clm cfv wbr cpm co wss cvv cnex cli cdm wceq simpr fdm
      eqimss2 3syl lmclim syldan cuz uzssz zsscn eqsstri elpm2r mpanl12 sylancl
      wb sstri biantrurd bitr4d ) DHIZEJBKZLZBACMNOZBJJPQIZBAUAOZLZVFVAVBEBUBZR
      ZVDVGUQVCVBVHEUCVIVAVBUDZEJBUEEVHUFUGABCDEFGUHUIVCVEVFVCVBEJRZVEVJEDUJNZJ
      GVLHJDUKULURUMJSIZVMVBVKLVETTJJEBSSUNUOUPUSUT $.
  $}

  ${
    $d f D $.  $d f J $.  $d f P $.  $d f S $.  $d f ph $.
    metelcls.2 $e |- J = ( MetOpen ` D ) $.
    metelcls.3 $e |- ( ph -> D e. ( *Met ` X ) ) $.
    metelcls.5 $e |- ( ph -> S C_ X ) $.
    $( A point belongs to the closure of a subset iff there is a sequence in
       the subset converging to it.  Theorem 1.4-6(a) of [Kreyszig] p. 30.
       This proof uses countable choice ~ ax-cc .  The statement can be
       generalized to first-countable spaces, not just metrizable spaces.
       (Contributed by NM, 8-Nov-2007.)  (Proof shortened by Mario Carneiro,
       1-May-2015.) $)
    metelcls $p |- ( ph -> ( P e. ( ( cls ` J ) ` S ) <->
                     E. f ( f : NN --> S /\ f ( ~~>t ` J ) P ) ) ) $=
      ( c1stc wcel cuni wss ccl cfv cn cv wf syl clm wbr wa wex wb cxmt met1stc
      wceq mopnuni sseqtrd eqid 1stcelcls syl2anc ) AFKLZDFMZNCDFOPPLQDERZSUPCF
      UAPUBUCEUDUEABGUFPLZUNIBFGHUGTADGUOJAUQGUOUHIBFGHUITUJCDEFUOUOUKULUM $.
  $}

  ${
    $d f x D $.  $d f x J $.  $d f x S $.  $d f x X $.
    metcld.2 $e |- J = ( MetOpen ` D ) $.
    $( A subset of a metric space is closed iff every convergent sequence on it
       converges to a point in the subset.  Theorem 1.4-6(b) of [Kreyszig]
       p. 30.  (Contributed by NM, 11-Nov-2007.)  (Revised by Mario Carneiro,
       1-May-2014.) $)
    metcld $p |- ( ( D e. ( *Met ` X ) /\ S C_ X ) -> ( S e. ( Clsd ` J ) <->
            A. x A. f ( ( f : NN --> S /\ f ( ~~>t ` J ) x ) -> x e. S ) ) ) $=
      ( cxmt cfv wcel wss wa ccld ccl cn cv wf clm wi wal wbr ctop cuni mopntop
      adantr mopnuni sseq2d biimpa eqid iscld4 syl2anc wex simpl simpr metelcls
      wb imbi1d 19.23v syl6rbbr albidv dfss2 syl6bbr bitr4d ) BFHIJZCFKZLZCEMIJ
      ZCENIIZCKZOCDPZQVJAPZERIUALZVKCJZSDTZATZVFEUBJZCEUCZKZVGVIUPVDVPVEBEFGUDU
      EVDVEVRVDFVQCBEFGUFUGUHCEVQVQUIUJUKVFVOVKVHJZVMSZATVIVFVNVTAVFVTVLDULZVMS
      VNVFVSWAVMVFBVKCDEFGVDVEUMVDVEUNUOUQVLVMDURUSUTAVHCVAVBVC $.

    $( A subset of a metric space is closed iff every convergent sequence on it
       converges to a point in the subset.  Theorem 1.4-6(b) of [Kreyszig]
       p. 30.  (Contributed by Mario Carneiro, 1-May-2014.) $)
    metcld2 $p |- ( ( D e. ( *Met ` X ) /\ S C_ X ) -> ( S e. ( Clsd ` J ) <->
                    ( ( ~~>t ` J ) " ( S ^m NN ) ) C_ S ) ) $=
      ( vf vx cxmt cfv wcel wss wa ccld cn cv wf wi wal wex cvv clm wbr cmap co
      cima metcld 19.23v vex elima2 wb cdm id elfvdm ssexg syl2anr nnex sylancl
      elmapg anbi1d exbidv syl5rbb imbi1d syl5bb albidv dfss2 syl6bbr bitrd ) A
      DHIJZBDKZLZBCMIJNBFOZPZVKGOZCUAIZUBZLZVMBJZQFRZGRZVNBNUCUDZUEZBKZGABFCDEU
      FVJVSVMWAJZVQQZGRWBVJVRWDGVRVPFSZVQQVJWDVPVQFUGVJWEWCVQWCVKVTJZVOLZFSVJWE
      FVMVNVTGUHUIVJWGVPFVJWFVLVOVJBTJZNTJWFVLUJVIVIDHUKZJWHVHVIULADHUMBDWIUNUO
      UPBNVKTTURUQUSUTVAVBVCVDGWABVEVFVG $.
  $}

  ${
    $d k r A $.  $d k n r D $.  $d k n r F $.  $d k r ph $.  $d k n r X $.
    $d k J $.  $d k P $.
    caubl.2 $e |- ( ph -> D e. ( *Met ` X ) ) $.
    caubl.3 $e |- ( ph -> F : NN --> ( X X. RR+ ) ) $.
    caubl.4 $e |- ( ph -> A. n e. NN
      ( ( ball ` D ) ` ( F ` ( n + 1 ) ) ) C_ ( ( ball ` D ) ` ( F ` n ) ) ) $.
    ${
      $d n ph $.
      caubl.5 $e |- ( ph -> A. r e. RR+ E. n e. NN ( 2nd ` ( F ` n ) ) < r ) $.
      $( Sufficient condition to ensure a sequence of nested balls is Cauchy.
         (Contributed by Mario Carneiro, 18-Jan-2014.)  (Revised by Mario
         Carneiro, 1-May-2014.) $)
      caubl $p |- ( ph -> ( 1st o. F ) e. ( Cau ` D ) ) $=
        ( cfv wcel co cn crp wa wss wi wceq fveq2d vk c1st ccom cca clt wbr cuz
        cv wral wrex c2nd cbl c1 caddc fveq2 sseq1d imbi2d cz ssid eluznn oveq1
        2a1i sseq12d rspccva syl2an anassrs sstr2 syl expcom a2d com12 ad2ant2r
        uzind4 cop cxp relxp wf ad3antrrr simplrl ffvelrnd 1st2nd sylancr df-ov
        wrel syl6eqr cxmt cxr xp1st xp2nd rpxrd simpllr simplrr cr rpre syl2anc
        cle ltle mpd ssbl syl221anc eqsstrd syl5com simprl sylan blcntr syl3anc
        eleqtrrd ssel syl6ci wb elbl2 syl22anc sylibd ex mpdd ralrimiv reximdva
        expr ralimdva nnuz 1zzd fvco3 1stcof iscauf mpbird ) AUBDUCZBUDKLCUHZDK
        ZUBKZUAUHZDKZUBKZBMFUHZUEUFZUAYGUGKZUIZCNUJZFOUIZAYHUKKZYMUEUFZCNUJZFOU
        IYRJAUUAYQFOAYMOLZPZYTYPCNUUCYGNLZYTYPUUCUUDYTPZPZYNUAYOUUFYJYOLZYKBULK
        ZKZYHUUHKZQZYNAUUDUUGUUKRUUBYTUUGAUUDPZUUKUULYMDKZUUHKZUUJQZRUULUUJUUJQ
        ZRUULUUKRZUULYJUMUNMZDKZUUHKZUUJQZRUUQFUAYGYJYMYGSZUUOUUPUULUVBUUNUUJUU
        JUVBUUMYHUUHYMYGDUOTUPUQYMYJSZUUOUUKUULUVCUUNUUIUUJUVCUUMYKUUHYMYJDUOTU
        PUQZYMUURSZUUOUVAUULUVEUUNUUTUUJUVEUUMUUSUUHYMUURDUOTUPUQUVDUUPYGURLUUL
        UUJUSVBUUGUULUUKUVAUULUUGUUKUVARZUULUUGPUUTUUIQZUVFAUUDUUGUVGAYGUMUNMZD
        KZUUHKZUUJQZCNUIYJNLZUVGUUDUUGPIYJYGUTZUVKUVGCYJNYGYJSZUVJUUTUUJUUIUVNU
        VIUUSUUHUVNUVHUURDYGYJUMUNVATTUVNYHYKUUHYGYJDUOTVCVDVEVFUUTUUIUUJVGVHVI
        VJVMVKVLUUFUUGUUKYNRUUFUUGPZUUKYLYIYMUUHMZLZYNUVOUUKUUIUVPQZYLUUILUVQUV
        OUUJUVPQUUKUVRUVOUUJYIYSUUHMZUVPUVOUUJYIYSVNZUUHKUVSUVOYHUVTUUHUVOEOVOZ
        WDZYHUWALZYHUVTSEOVPZUVONUWAYGDANUWADVQZUUBUUEUUGHVRZUUCUUDYTUUGVSVTZYH
        UWAWAWBTYIYSUUHWCWEUVOBEWFKLZYIELZYSWGLYMWGLZYSYMWPUFZUVSUVPQAUWHUUBUUE
        UUGGVRZUVOUWCUWIUWGYHEOWHVHZUVOYSUVOUWCYSOLZUWGYHEOWIVHZWJUVOYMAUUBUUEU
        UGWKZWJZUVOYTUWKUUCUUDYTUUGWLUVOUWNUUBYTUWKRZUWOUWPUWNYSWMLYMWMLUWRUUBY
        SWNYMWNYSYMWQVEWOWRBYIYSYMEWSWTXAUUIUUJUVPVGXBUVOYLYLYKUKKZUUHMZUUIUVOU
        WHYLELZUWSOLZYLUWTLUWLUVOYKUWALZUXAUVONUWAYJDUWFUUFUUDUUGUVLUUCUUDYTXCU
        VMXDVTZYKEOWHVHZUVOUXCUXBUXDYKEOWIVHBYLUWSEXEXFUVOUUIYLUWSVNZUUHKUWTUVO
        YKUXFUUHUVOUWBUXCYKUXFSUWDUXDYKUWAWAWBTYLUWSUUHWCWEXGUUIUVPYLXHXIUVOUWH
        UWJUWIUXAUVQYNXJUWLUWQUWMUXEYLBYIYMEXKXLXMXNXOXPXRXQXSWRAFYLYIBCUAYFUME
        NXTGAYAAUWEUVLYJYFKYLSHNUWAYJUBDYBXDAUWEUUDYGYFKYISHNUWAYGUBDYBXDAUWENE
        YFVQHNEODYCVHYDYE $.
    $}

    caublcls.6 $e |- J = ( MetOpen ` D ) $.
    $( The convergent point of a sequence of nested balls is in the closures of
       any of the balls (i.e. it is in the intersection of the closures).
       Indeed, it is the only point in the intersection because a metric space
       is Hausdorff, but we don't prove this here.  (Contributed by Mario
       Carneiro, 21-Jan-2014.)  (Revised by Mario Carneiro, 1-May-2014.) $)
    caublcls $p |- ( ( ph /\ ( 1st o. F ) ( ~~>t ` J ) P /\ A e. NN ) ->
                     P e. ( ( cls ` J ) ` ( ( ball ` D ) ` ( F ` A ) ) ) ) $=
      ( cfv cn wcel syl wss wceq fveq2d crp vk vr c1st ccom clm wbr w3a cbl cuz
      eqid cxmt ctopon 3ad2ant1 mopntopon simp3 nnzd simp2 cv wa wi c1 caddc co
      fveq2 sseq1d imbi2d cz ssid 2a1i wral eluznn oveq1 sseq12d rspccva syl2an
      anassrs sstr2 expcom a2d uzind4 impcom 3adantl2 c2nd adantr cxp wf simpl1
      3ad2antl3 ffvelrnd xp1st xp2nd blcntr syl3anc fvco3 syl2anc 1st2nd2 df-ov
      cop syl6eqr 3eltr4d sseldd ffvelrnda 3adant2 rpxrd blssm eqsstrd lmcls
      cxr ) AUCFUDZDGUEMUFZBNOZUGZDBFMZCUHMZMZUAXIGBHBUIMZXPUJXLCHUKMOZGHULMOAX
      JXQXKIUMZCGHLUNPXLBAXJXKUOUPAXJXKUQXLUAURZXPOZUSZXSFMZXNMZXOXSXIMZAXKXTYC
      XOQZXJXTAXKUSZYEYFUBURZFMZXNMZXOQZUTYFXOXOQZUTYFYEUTZYFXSVAVBVCZFMZXNMZXO
      QZUTYLUBUABXSYGBRZYJYKYFYQYIXOXOYQYHXMXNYGBFVDSVEVFYGXSRZYJYEYFYRYIYCXOYR
      YHYBXNYGXSFVDSVEVFZYGYMRZYJYPYFYTYIYOXOYTYHYNXNYGYMFVDSVEVFYSYKBVGOYFXOVH
      VIXTYFYEYPYFXTYEYPUTZYFXTUSYOYCQZUUAAXKXTUUBAEURZVAVBVCZFMZXNMZUUCFMZXNMZ
      QZENVJXSNOZUUBXKXTUSKXSBVKZUUIUUBEXSNUUCXSRZUUFYOUUHYCUULUUEYNXNUULUUDYMF
      UUCXSVAVBVLSSUULUUGYBXNUUCXSFVDSVMVNVOVPYOYCXOVQPVRVSVTWAWBYAYBUCMZUUMYBW
      CMZXNVCZYDYCYAXQUUMHOZUUNTOZUUMUUOOXLXQXTXRWDYAYBHTWEZOZUUPYANUURXSFYAANU
      URFWFZAXJXKXTWGJPZXKAXTUUJXJUUKWHZWIZYBHTWJPYAUUSUUQUVCYBHTWKPCUUMUUNHWLW
      MYAUUTUUJYDUUMRUVAUVBNUURXSUCFWNWOYAYCUUMUUNWRZXNMUUOYAYBUVDXNYAUUSYBUVDR
      UVCYBHTWPPSUUMUUNXNWQWSWTXAXLXOXMUCMZXMWCMZXNVCZHXLXOUVEUVFWRZXNMUVGXLXMU
      VHXNXLXMUUROZXMUVHRAXKUVIXJANUURBFJXBXCZXMHTWPPSUVEUVFXNWQWSXLXQUVEHOZUVF
      XHOUVGHQXRXLUVIUVKUVJXMHTWJPXLUVFXLUVIUVFTOUVJXMHTWKPXDCUVEUVFHXEWMXFXG
      $.
  $}

  ${
    $d f x C $.  $d f x D $.  $d f x F $.  $d f x P $.  $d f x J $.
    $d f x ph $.  $d f x X $.  $d f x Y $.  $d f x K $.
    metcnp4.3 $e |- J = ( MetOpen ` C ) $.
    metcnp4.4 $e |- K = ( MetOpen ` D ) $.
    metcnp4.5 $e |- ( ph -> C e. ( *Met ` X ) ) $.
    metcnp4.6 $e |- ( ph -> D e. ( *Met ` Y ) ) $.
    ${
      metcnp4.7 $e |- ( ph -> P e. X ) $.
      $( Two ways to say a mapping from metric ` C ` to metric ` D ` is
         continuous at point ` P ` .  Theorem 14-4.3 of [Gleason] p. 240.
         (Contributed by NM, 17-May-2007.)  (Revised by Mario Carneiro,
         4-May-2014.) $)
      metcnp4 $p |- ( ph -> ( F e. ( ( J CnP K ) ` P ) <-> ( F : X --> Y /\
                      A. f ( ( f : NN --> X /\ f ( ~~>t ` J ) P ) ->
                             ( F o. f ) ( ~~>t ` K ) ( F ` P ) ) ) ) ) $=
        ( cxmt cfv wcel syl ctopon c1stc met1stc mopntopon 1stccnp ) ADEFGHIJAB
        IPQRZGUARMBGIKUBSAUEGITQRMBGIKUCSACJPQRHJTQRNCHJLUCSOUD $.
    $}

    metcn4.7 $e |- ( ph -> F : X --> Y ) $.
    $( Two ways to say a mapping from metric ` C ` to metric ` D ` is
       continuous.  Theorem 10.3 of [Munkres] p. 128.  (Contributed by NM,
       13-Jun-2007.)  (Revised by Mario Carneiro, 4-May-2014.) $)
    metcn4 $p |- ( ph -> ( F e. ( J Cn K ) <-> A. f ( f : NN --> X ->
        A. x ( f ( ~~>t ` J ) x -> ( F o. f ) ( ~~>t ` K ) ( F ` x ) ) ) ) ) $=
      ( cxmt cfv wcel syl ctopon c1stc met1stc mopntopon 1stccn ) ABEFGHIJACIPQ
      RZGUARMCGIKUBSAUEGITQRMCGIKUCSADJPQRHJTQRNDHJLUCSOUD $.
  $}

  ${
    $d f D $.  $d f J $.  $d f X $.
    iscmet3i.2 $e |- J = ( MetOpen ` D ) $.
    iscmet3i.3 $e |- D e. ( Met ` X ) $.
    iscmet3i.4 $e |- ( ( f e. ( Cau ` D ) /\ f : NN --> X ) ->
                      f e. dom ( ~~>t ` J ) ) $.
    $( Properties that determine a complete metric space.  (Contributed by NM,
       15-Apr-2007.)  (Revised by Mario Carneiro, 5-May-2014.) $)
    iscmet3i $p |- D e. ( CMet ` X ) $=
      ( cms cfv wcel cn cv wf clm cdm wi cca wral wb wtru nnuz 1zzd cme iscmet3
      c1 a1i trud ex mprgbir ) ADHIJZKDBLZMZUKCNIOJZPZBAQIZUJUNBUORSTABCUEDKUAE
      TUBADUCIJTFUFUDUGUKUOJULUMGUHUI $.
  $}

  ${
    $d x y A $.  $d f j u x y D $.  $d f j u x y J $.  $d f j u x y X $.
    $d x y F $.
    lmcau.1 $e |- J = ( MetOpen ` D ) $.
    $( Every convergent sequence in a metric space is a Cauchy sequence.
       Theorem 1.4-5 of [Kreyszig] p. 28.  (Contributed by NM, 29-Jan-2008.)
       (Proof shortened by Mario Carneiro, 5-May-2014.) $)
    lmcau $p |- ( D e. ( *Met ` X ) -> dom ( ~~>t ` J ) C_ ( Cau ` D ) ) $=
      ( vj vx vu vy cfv wcel cv wb wa co cuz wf cz wrex crp wceq vf clm cdm cca
      cxmt wbr cha wfun methaus lmfun funfvbrb 3syl cc cpm cbl cres wral crn id
      w3a lmmbr biimpa simp1d c2 simprr cr wss simplll simp2d ad2antrr ad2antlr
      cdiv rpre uzid ad2antrl syl ffvelrnd eqeltrrd blhalf syl22anc fssd simp3d
      fvres rphalfcl oveq2 feq3d rexbidv rspcv syl2im impcom cpw wfn uzf reseq2
      ffn feq12d rexrn mp2b sylib reximddv ralrimiva adantr mpbir2and ex sylbid
      iscau ssrdv ) ACUEIJZUABUBIZUCZAUDIZXHUAKZXJJZXLXLXIIZXIUFZXLXKJZXHBUGJXI
      UHXMXOLABCDUIBUJXLXIUKULXHXOXPXHXOMZXPXLCUMUNNJZEKZOIZXSXLIZFKZAUOIZNZXLX
      TUPZPZEQRZFSUQZXQXRXNCJZGKZXNHKZYCNZXLYJUPZPZGOURZRZHSUQZXHXOXRYIYQUTXHHG
      AXNXLBCDXHUSVAVBZVCXQYGFSXQYBSJZMZXTXNYBVDVLNZYCNZYEPZYFEQYTXSQJZUUCMZMZX
      TUUBYDYEYTUUDUUCVEZUUFXHYIYBVFJZYAUUBJUUBYDVGXHXOYSUUEVHXQYIYSUUEXQXRYIYQ
      YRVIVJYSUUHXQUUEYBVMVKUUFXSYEIZYAUUBUUFXSXTJZUUIYATUUDUUJYTUUCXSVNVOZXSXT
      XLWCVPUUFXTUUBXSYEUUGUUKVQVRYBACXNYAVSVTWAYTYJUUBYMPZGYORZUUCEQRZYSXQUUMY
      SUUASJXQYQUUMYBWDXQXRYIYQYRWBYPUUMHUUASYKUUATZYNUULGYOUUOYLUUBYMYJYKUUAXN
      YCWEWFWGWHWIWJQQWKZOPOQWLUUMUUNLWMQUUPOWOUULUUCGEQOYJXTTZYJXTUUBYMYEYJXTX
      LWNUUQUSWPWQWRWSWTXAXHXPXRYHMLXOFAEXLCXFXBXCXDXEXG $.

    $( Every convergent filter in a metric space is a Cauchy filter.
       (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    flimcfil $p |- ( ( D e. ( *Met ` X ) /\ A e. ( J fLim F ) ) ->
      F e. ( CauFil ` D ) ) $=
      ( vy vx cfv wcel co wa cfil cv crp adantl wceq adantr eleqtrrd syl3anc wb
      cxmt cflim ccfil cbl wrex wral cuni eqid flimfil mopnuni fveq2d flimelbas
      ad2antlr ad2antrr cnei simplr ctop mopntop simpll rpxr blopn simpr blcntr
      csn cxr opnneip flimnei syl2anc eleq1d rspcev ralrimiva iscfil3 mpbir2and
      oveq1 ) BEUBIJZADCUCKJZLZCBUDIJZCEMIZJZGNZHNZBUEIZKZCJZGEUFZHOUGZVRCDUHZM
      IZVTVQCWJJVPACDWIWIUIZUJPVREWIMVPEWIQZVQBDEFUKZRULSVRWGHOVRWCOJZLZAEJZAWC
      WDKZCJZWGWOAWIEVQAWIJVPWNACDWIWKUMUNVPWLVQWNWMUOSZWOVQWQAVEDUPIIJZWRVPVQW
      NUQWODURJZWQDJZAWQJZWTVPXAVQWNBDEFUSUOWOVPWPWCVFJZXBVPVQWNUTZWSWNXDVRWCVA
      PBAWCDEFVBTWOVPWPWNXCXEWSVRWNVCBAWCEVDTADWQVGTACDWQVHVIWFWRGAEWBAQWEWQCWB
      AWCWDVOVJVKVIVLVPVSWAWHLUAVQGBCEHVMRVN $.
  $}

  ${
    $d f x D $.  $d f x J $.  $d f x X $.  $d f x Y $.
    cmetss.2 $e |- J = ( MetOpen ` D ) $.
    $( A subspace of a complete metric space is complete iff it is closed in
       the parent space.  Theorem 1.4-7 of [Kreyszig] p. 30.  (Contributed by
       NM, 28-Jan-2008.)  (Revised by Mario Carneiro, 15-Oct-2015.) $)
    cmetss $p |- ( D e. ( CMet ` X ) ->
      ( ( D |` ( Y X. Y ) ) e. ( CMet ` Y ) <-> Y e. ( Clsd ` J ) ) ) $=
      ( vx vf cfv wcel wa wss cflim co syl adantr cdm wceq syl2anc c0 syl3anc
      cms cxp cres ccld ccl cfil wrex ctopon cxmt cme cmetmet metxmet mopntopon
      cv wb resss dmss metdmdm sseq12 syl2anr mpbiri flimcls simprrr wmo wex wi
      mp2b cha methaus hausflimi 3syl cin wne cmopn crest simprrl flimrest eqid
      simprl metrest oveq1d eqtr3d ccfil flimcfil cfilres mpbid cmetcvg eqnetrd
      simplr n0 elin exbii bitri sylib mopick rexlimdvaa sylbid ssrdv ctop cuni
      mpd mopntop mopnuni sseqtrd iscld4 mpbird wral cldss sseqtr4d metres2 cfg
      adantl ad2antrr eqcomd cfilfil sylan elfvdm oveq12d cfbas filfbas filsspw
      trfg cpw sspwb sstrd fbasweak fgcl filtop sseldd flimclsi cldcls ad2antlr
      ssfg df-ss 3eqtrd simpll cfilresi ralrimiva iscmet sylanbrc impbida ) ACU
      AHIZADDUBZUCZDUAHIZDBUDHIZUUBUUEJZUUFDBUEHHZDKZUUGFUUHDUUGFUNZUUHIZDGUNZI
      ZUUJBUULLMZIZJZGCUFHZUGZUUJDIZUUGBCUHHIZDCKZUUKUURUOUUGACUIHIZUUTUUBUVBUU
      EUUBACUJHIZUVBACUKZACULZNZOZABCEUMZNUUGUVAUUDPZPZAPZPZKZUUDAKUVIUVKKUVMAU
      UCUPUUDAUQUVIUVKUQVGUUEDUVJQZCUVLQZUVAUVMUOUUBUUEUUDDUJHIZUVNUUDDUKUUDDUR
      NUUBUVCUVOUVDACURNDUVJCUVLUSUTVAZUUJDGBCVBRUUGUUPUUSGUUQUUGUULUUQIZUUPJZJ
      ZUUOUUSUUGUVRUUMUUOVCZUVTUUOFVDZUUOUUSJZFVEZUUOUUSVFUVTUVBBVHIUWBUUGUVBUV
      SUVGOZABCEVIFUULBVJVKUVTUUNDVLZSVMZUWDUVTUWFUUDVNHZUULDVOMZLMZSUVTBDVOMZU
      WILMZUWFUWJUVTUUTUVRUUMUWLUWFQUVTUVBUUTUWEUVHNUUGUVRUUPVSZUUGUVRUUMUUOVPZ
      UULBCDVQTUVTUWKUWHUWILUVTUVBUVAUWKUWHQZUWEUUGUVAUVSUVQOAUUDBUWHCDUUDVREUW
      HVRZVTZRWAWBUVTUUEUWIUUDWCHZIZUWJSVMUUBUUEUVSWIUVTUULAWCHZIZUWSUVTUVBUUOU
      XAUWEUWAUUJAUULBCEWDRUVTUVBUVRUUMUXAUWSUOUWEUWMUWNAUULCDWETWFUUDUWIUWHDUW
      PWGRWHUWGUUJUWFIZFVEUWDFUWFWJUXBUWCFUUJUUNDWKWLWMWNUUOUUSFWORXAWPWQWRUUGB
      WSIZDBWTZKZUUFUUIUOUUGUVBUXCUVGABCEXBNUUGDCUXDUVQUUGUVBCUXDQZUVGABCEXCZNX
      DDBUXDUXDVRZXERXFUUBUUFJZUVPUWHUULLMZSVMZGUWRXGUUEUXIUVCUVAUVPUUBUVCUUFUV
      DOZUXIDUXDCUUFUXEUUBDBUXDUXHXHXLUXIUVCUVBUXFUXLUVEUXGVKXIZADCXJRZUXIUXKGU
      WRUXIUULUWRIZJZUXJBCUULXKMZLMZSUXPUXJUWKUXQDVOMZLMZUXRDVLZUXRUXPUWHUWKUUL
      UXSLUXPUWKUWHUXPUVBUVAUWOUUBUVBUUFUXOUVFXMZUXIUVAUXOUXMOZUWQRXNUXPUXSUULU
      XPUULDUFHIZUVACUAPZIZUXSUULQUXIUUDDUIHIZUXOUYDUXIUVPUYGUXNUUDDULNUUDUULDX
      OXPZUYCUUBUYFUUFUXOACUAXQXMZDUULUYECYBTXNXRUXPUUTUXQUUQIZDUXQIZUXTUYAQUXP
      UVBUUTUYBUVHNUXPUULCXSHIZUYJUXPUULDXSHIZUULCYCZKUYFUYLUXPUYDUYMUYHUULDXTN
      UXPUULDYCZUYNUXPUYDUULUYOKUYHUULDYANUXPUVAUYOUYNKUYCDCYDWNYEUYIUULUYEDCYF
      TZUULCYGNUXPUULUXQDUXPUYLUULUXQKUYPUULCYMNUXPUYDUUMUYHUULDYHNYIZUXQBCDVQT
      UXPUXRDKUYAUXRQUXPUXRUUHDUXPUYKUXRUUHKUYQDUXQBYJNUUFUUHDQUUBUXODBYKYLXDUX
      RDYNWNYOUXPUUBUXQUWTIZUXRSVMUUBUUFUXOYPUXIUVBUXOUYRUXIUVCUVBUXLUVENAUULCD
      YQXPAUXQBCEWGRWHYRUUDGUWHDUWPYSYTUUA $.
  $}

  ${
    $d f x y C $.  $d f x y D $.  $d f x y ph $.  $d x y R $.  $d f x y X $.
    $d x y S $.
    equivcmet.1 $e |- ( ph -> C e. ( Met ` X ) ) $.
    equivcmet.2 $e |- ( ph -> D e. ( Met ` X ) ) $.
    equivcmet.3 $e |- ( ph -> R e. RR+ ) $.
    equivcmet.4 $e |- ( ph -> S e. RR+ ) $.
    equivcmet.5 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
      ( x C y ) <_ ( R x. ( x D y ) ) ) $.
    equivcmet.6 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
      ( x D y ) <_ ( S x. ( x C y ) ) ) $.
    $( If two metrics are strongly equivalent, one is complete iff the other
       is.  Unlike ~ equivcau , ~ metss2 , this theorem does not have a
       one-directional form - it is possible for a metric ` C ` that is
       strongly finer than the complete metric ` D ` to be incomplete and vice
       versa.  Consider ` D = ` the metric on ` RR ` induced by the usual
       homeomorphism from ` ( 0 , 1 ) ` against the usual metric ` C ` on
       ` RR ` and against the discrete metric ` E ` on ` RR ` .  Then both
       ` C ` and ` E ` are complete but ` D ` is not, and ` C ` is strongly
       finer than ` D ` , which is strongly finer than ` E ` .  (Contributed by
       Mario Carneiro, 15-Sep-2015.) $)
    equivcmet $p |- ( ph -> ( C e. ( CMet ` X ) <-> D e. ( CMet ` X ) ) ) $=
      ( vf cfv wcel cmopn cflim c0 cme cv co wne ccfil wral cms equivcfil eqssd
      wa 2thd eqid metss2 oveq1d neeq1d raleqbidv anbi12d iscmet 3bitr4g ) ADHU
      APZQZDRPZOUBZSUCZTUDZODUEPZUFZUJEUTQZERPZVCSUCZTUDZOEUEPZUFZUJDHUGPZQEVNQ
      AVAVHVGVMAVAVHIJUKAVEVKOVFVLAVFVLABCEDGHJILNUHABCDEFHIJKMUHUIAVDVJTAVBVIV
      CSAVBVIABCDEFVBVIHVBULZVIULZIJKMUMABCEDGVIVBHVPVOJILNUMUIUNUOUPUQDOVBHVOU
      REOVIHVPURUS $.
  $}

  ${
    $d f x D $.  $d f x J $.  $d f x ph $.  $d x R $.  $d f x X $.
    relcmpcmet.1 $e |- J = ( MetOpen ` D ) $.
    relcmpcmet.2 $e |- ( ph -> D e. ( Met ` X ) ) $.
    ${
      relcmpcmet.3 $e |- ( ph -> R e. RR+ ) $.
      relcmpcmet.4 $e |- ( ( ph /\ x e. X ) ->
        ( J |`t ( ( cls ` J ) ` ( x ( ball ` D ) R ) ) ) e. Comp ) $.
      $( If ` D ` is a metric space such that all the balls of some fixed size
         are relatively compact, then ` D ` is complete.  (Contributed by Mario
         Carneiro, 15-Oct-2015.) $)
      relcmpcmet $p |- ( ph -> D e. ( CMet ` X ) ) $=
        ( vf cfv wcel co wa syl wss cfil wceq syl2anc cme cv cflim c0 wne ccfil
        wral cms cbl cxmt crp wrex metxmet adantr simpr syl3anc ccl crest cfcls
        cfil3i cin ctopon ad2antrr mopntopon cfilfil sylan simprr cuni topontop
        ctop cxr simprl rpxrd blssm toponuni sseqtrd eqid clsss3 sseqtr4d sscls
        filss syl13anc fclsrest cdm cfilfcls ad2antlr syl5sseq eqsstrd ad2ant2r
        inss1 ccmp cdif wn cfbas filfbas trfil3 mpbird resttopon fveq2d eleqtrd
        fbncp wb fclscmpi ssn0 rexlimddv ralrimiva iscmet sylanbrc ) ACFUALMZEK
        UBZUCNZUDUEZKCUFLZUGCFUHLMHAXLKXMAXJXMMZOZBUBZDCUILNZXJMZXLBFXOCFUJLMZX
        NDUKMZXRBFULAXSXNAXIXSHCFUMPZUNAXNUOAXTXNIUNBCDXJFUTUPXOXPFMZXROZOZEXQE
        UQLLZURNZXJYEURNZUSNZXKQYHUDUEZXLYDYHEXJUSNZYEVAZXKYDEFVBLMZXJFRLMZYEXJ
        MZYHYKSYDXSYLAXSXNYCYAVCZCEFGVDPZXOYMYCAXSXNYMYACXJFVEVFUNZYDYMXRYEFQZX
        QYEQZYNYQXOYBXRVGYDYEEVHZFYDEVJMZXQYTQZYEYTQYDYLUUAYPFEVIPZYDXQFYTYDXSY
        BDVKMZXQFQYOXOYBXRVLAUUDXNYCADIVMVCCXPDFVNUPYDYLFYTSYPFEVOPZVPZXQEYTYTV
        QZVRTUUEVSZYDUUAUUBYSUUCUUFXQEYTUUGVTTXQYEXJFWAWBZXJEFYEWCUPYDYJYKXKYJY
        EWJXNYJXKSAYCCXJECWDWDZGUUJVQWEWFWGWHYDYFWKMZYGYFVHZRLZMYIAYBUUKXNXRJWI
        YDYGYERLZUUMYDYGUUNMZFYEWLXJMWMZYDXJFWNLMZYNUUPYDYMUUQYQXJFWOPUUIYEFXJF
        XATYDYMYRUUOUUPXBYQUUHYEXJFWPTWQYDYEUULRYDYFYEVBLMZYEUULSYDYLYRUURYPUUH
        YEEFWRTYEYFVOPWSWTYGYFUULUULVQXCTYHXKXDTXEXFCKEFGXGXH $.
    $}

    cmpcmet.3 $e |- ( ph -> J e. Comp ) $.
    $( A compact metric space is complete.  One half of ~ heibor .
       (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    cmpcmet $p |- ( ph -> D e. ( CMet ` X ) ) $=
      ( vx c1 crp wcel 1rp a1i ccmp cfv co adantr wss syl syl2anc cv wa cbl ccl
      ccld crest ctop cuni cxmt cme metxmet mopntop cxr simpr rpxr mp1i syl3anc
      blssm wceq mopnuni sseqtrd eqid clscld cmpcld relcmpcmet ) AHBICDEFIJKZAL
      MAHUAZDKZUBZCNKZVGIBUCOPZCUDOOZCUEOKZCVLUFPNKAVJVHGQVICUGKZVKCUHZRVMVIBDU
      IOKZVNAVPVHABDUJOKVPFBDUKSQZBCDEULSVIVKDVOVIVPVHIUMKZVKDRVQAVHUNVFVRVILIU
      OUPBVGIDURUQVIVPDVOUSVQBCDEUTSVAVKCVOVOVBVCTVLCVDTVE $.
  $}

  ${
    $d x y C $.  $d x y D $.  $d x y X $.
    $( Given a metric ` D ` and a uniform structure generated by that metric,
       Cauchy filter bases on that uniform structure are exactly the Cauchy
       filters for the metric.  (Contributed by Thierry Arnoux, 15-Dec-2017.)
       (Revised by Thierry Arnoux, 11-Feb-2018.) $)
    cfilucfil3 $p |- ( ( X =/= (/) /\ D e. ( *Met ` X ) ) -> (
      ( C e. ( Fil ` X ) /\ C e. ( CauFilU ` ( metUnif ` D ) ) )
      <-> C e. ( CauFil ` D ) ) ) $=
      ( vy vx c0 wne cxmt cfv wcel wa cfil cmetu ccfilu cv cxp cima cc0 cico wb
      wss wrex crp wral ccfil cpsmet xmetpsmet cfbas cfilucfil2 filfbas pm4.71i
      co anbi2d anbi1i anass bitr2i syl6bb sylan2 iscfil adantl bitr4d ) CFGZBC
      HIJZKACLIJZABMINIJZKZVDBDOZVGPQREOSULUADAUBEUCUDZKZABUEIJZVCVBBCUFIJZVFVI
      TBCUGVBVKKZVFVDACUHIJZVHKZKZVIVLVEVNVDEDABCUIUMVIVDVMKZVHKVOVDVPVHVDVMACU
      JUKUNVDVMVHUOUPUQURVCVJVITVBEDBACUSUTVA $.
  $}

  $( Given a metric ` D ` and a uniform structure generated by that metric,
     Cauchy filter bases on that uniform structure are exactly the Cauchy
     filters for the metric.  (Contributed by Thierry Arnoux, 15-Dec-2017.)
     (Revised by Thierry Arnoux, 11-Feb-2018.) $)
  cfilucfil4 $p |- ( ( X =/= (/) /\ D e. ( *Met ` X ) /\ C e. ( Fil ` X ) )
    -> ( C e. ( CauFilU ` ( metUnif ` D ) ) <-> C e. ( CauFil ` D ) ) ) $=
    ( c0 wne cxmt cfv wcel cfil cmetu ccfilu ccfil wb cfilucfil3 cfilfil adantl
    wa wi ex pm4.71rd bitrd pm5.32 sylibr 3impia ) CDEZBCFGHZACIGHZABJGKGHZABLG
    HZMZUEUFQZUGUHQZUGUIQZMUGUJRUKULUIUMABCNUKUIUGUFUIUGRUEUFUIUGBACOSPTUAUGUHU
    IUBUCUD $.

  ${
    $d r x y D $.
    cncmet.1 $e |- D = ( abs o. - ) $.
    $( The set of complex numbers is a complete metric space under the absolute
       value metric.  (Contributed by NM, 20-Dec-2006.)  (Revised by Mario
       Carneiro, 15-Oct-2015.) $)
    cncmet $p |- D e. ( CMet ` CC ) $=
      ( vx vy vr cc cfv wcel wtru c1 cabs cmin cmopn cv co cle wbr cr wss wa id
      cms ccnfld ctopn ccom eqid cnfldtopn fveq2i cme cnmet eqeltri a1i crp 1rp
      eqtr4i cbl ccl crest ccmp ccld wral wrex ctop cnfldtop cxmt metxmet ax-mp
      cxr rpxr blssm mp3an13 cnfldtopon toponunii clscld sylancr caddc peano2re
      abscl syl crab df-rab eqcomi blcls ad2antrl adantr resubcld simpl syl2anr
      cab subcl abscld 1red simprl abs2difd wceq cnmetdval abssub eqtrd adantrr
      eqbrtrrd letrd lesubadd2d mpbid ss2abdv sstrd ssabral sylib breq2 ralbidv
      simprr ex rspcev syl2anc clsss3 cnheibor mpbir2and adantl relcmpcmet trud
      wb ) AFUBGHICAJUCUDGZFYAKLUEZMGAMGYAYAUFZUGAYBMBUHUOZAFUIGZHZIAYBYEBUJUKZ
      ULJUMHZIUNULCNZFHZYAYIJAUPGOZYAUQGGZUROZUSHZIYJYNYLYAUTGHZDNZKGZENZPQZDYL
      VAZERVBZYJYAVCHZYKFSZYOYAYCVDZAFVEGHZYJJVHHZUUCYFUUEYGAFVFVGZYHUUFUNJVIVG
      ZAYIJFVJVKZYKYAFFYAYAYCVLVMZVNVOYJYIKGZJVPOZRHZYQUULPQZDYLVAZUUAYJUUKRHZU
      UMYIVRZUUKVQVSYJYLUUNDWIZSUUOYJYLYPFHZYIYPAOZJPQZTZDWIZUURUUEYJUUFYLUVCSU
      UGUUHDAYIJUVCYAFYDUVADFVTUVCUVADFWAWBWCVKYJUVBUUNDYJUVBUUNYJUVBTZYQUUKLOZ
      JPQUUNUVDUVEYPYILOZKGZJUVDYQUUKUUSYQRHYJUVAYPVRWDZYJUUPUVBUUQWEZWFUVDUVFU
      VBUUSYJUVFFHYJUUSUVAWGYJUAYPYIWJWHWKUVDWLZUVDYPYIYJUUSUVAWMYJUVBWGWNUVDUU
      TUVGJPYJUUSUUTUVGWOUVAYJUUSTUUTYIYPLOKGUVGYIYPABWPYIYPWQWRWSYJUUSUVAXJWTX
      AUVDYQUUKJUVHUVIUVJXBXCXKXDXEUUNDYLXFXGYTUUOEUULRYRUULWOYSUUNDYLYRUULYQPX
      HXIXLXMYJYLFSZYNYOUUATXTYJUUBUUCUVKUUDUUIYKYAFUUJXNVODYMYAYLEYCYMUFXOVSXP
      XQXRXS $.
  $}

  $( The real numbers are a complete metric space.  (Contributed by Jeff
     Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro, 12-Sep-2015.) $)
  recmet $p |- ( ( abs o. - ) |` ( RR X. RR ) ) e. ( CMet ` RR ) $=
    ( cabs cmin ccom cxp cres cms cfv wcel ccnfld ctopn ccld eqid recld2 cncmet
    cr cc wb cnfldtopn cmetss ax-mp mpbir ) ABCZOODEOFGHZOIJGZKGHZUDUDLZMUBPFGH
    UCUEQUBUBLNUBUDPOUDUFRSTUA $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Baire's Category Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d k n r x z A $.  $d k r x z B $.  $d r x C $.  $d g k m n r x y z D $.
    $d g k n r x z F $.  $d g k m n r x y z J $.  $d g k m n r x y z M $.
    $d k m n r x z ph $.  $d x R $.  $d g k m n r x y z X $.
    bcth.2 $e |- J = ( MetOpen ` D ) $.
    ${
      bcthlem.4 $e |- ( ph -> D e. ( CMet ` X ) ) $.
      bcthlem.5 $e |- F = ( k e. NN , z e. ( X X. RR+ ) |->
           { <. x , r >. | ( ( x e. X /\ r e. RR+ ) /\ ( r < ( 1 / k ) /\
             ( ( cls ` J ) ` ( x ( ball ` D ) r ) ) C_
               ( ( ( ball ` D ) ` z ) \ ( M ` k ) ) ) ) } ) $.
      $( Lemma for ~ bcth .  Substitutions for the function ` F ` .
         (Contributed by Mario Carneiro, 9-Jan-2014.) $)
      bcthlem1 $p |- ( ( ph /\ ( A e. NN /\ B e. ( X X. RR+ ) ) ) ->
         ( C e. ( A F B ) <-> ( C e. ( X X. RR+ ) /\ ( 2nd ` C ) < ( 1 / A ) /\
           ( ( cls ` J ) ` ( ( ball ` D ) ` C ) ) C_
             ( ( ( ball ` D ) ` B ) \ ( M ` A ) ) ) ) ) $=
        ( wcel crp wa cfv cn cxp co cv cdiv clt wbr cbl ccl cdif wss copab c2nd
        c1 w3a wceq cvv opabssxp cms cdm elfvdm syl cr reex ssexi xpexg sylancl
        rpssre ssexg sylancr oveq2 breq2d fveq2 difeq2d sseq2d anbi12d opabbidv
        anbi2d difeq1d ovmpt2g syl3an3 3expa ancoms eleq2d sseli simp1 c1st cop
        1st2nd2 eleq1d fvex eleq1 bi2anan9 simpr breq1d oveq12 fveq2d opelopaba
        sseq1d syl6bb opelxp syl6rbb df-ov syl6reqr 3anass syl6bbr pm5.21nii
        bitrd ) ADUAQZELRUBZQZSZSZFDEIUCZQFBUDZLQZMUDZRQZSZXQUNDUEUCZUFUGZXOXQG
        UHTZUCZJUITZTZEYBTZDKTZUJZUKZSZSZBMULZQZFXJQZFUMTZXTUFUGZFYBTZYDTZYHUKZ
        UOZXMXNYLFXLAXNYLUPZXIXKAUUAAXIXKYLUQQZUUAAYLXJUKXJUQQZUUBYJBMLRURZALUS
        UTZQZRUQQUUCAGLUSTQUUFOGLUSVAVBRVCVDVHVELRUUEUQVFVGYLXJUQVIVJHCDEUAXJXS
        XQUNHUDZUEUCZUFUGZYECUDZYBTZUUGKTZUJZUKZSZSZBMULYLIXSYAYEUUKYGUJZUKZSZS
        ZBMULUQUUGDUPZUUPUUTBMUVAUUOUUSXSUVAUUIYAUUNUURUVAUUHXTXQUFUUGDUNUEVKVL
        UVAUUMUUQYEUVAUULYGUUKUUGDKVMVNVOVPVRVQUUJEUPZUUTYKBMUVBUUSYJXSUVBUURYI
        YAUVBUUQYHYEUVBUUKYFYGUUJEYBVMVSVOVRVRVQPVTWAWBWCWDYMYNYTYLXJFUUDWEYNYP
        YSWFYNYMFWGTZLQZYORQZSZYPUVCYOYBUCZYDTZYHUKZSZSZYTYNYMUVCYOWHZYLQUVKYNF
        UVLYLFLRWIZWJYKUVKBMUVCYOFWGWKFUMWKXOUVCUPZXQYOUPZSZXSUVFYJUVJUVNXPUVDU
        VOXRUVEXOUVCLWLXQYORWLWMUVPYAYPYIUVIUVPXQYOXTUFUVNUVOWNWOUVPYEUVHYHUVPY
        CUVGYDXOUVCXQYOYBWPWQWSVPVPWRWTYNUVKYNYPYSSZSYTYNUVFYNUVJUVQYNYNUVLXJQU
        VFYNFUVLXJUVMWJUVCYOLRXAXBYNUVIYSYPYNUVHYRYHYNUVGYQYDYNYQUVLYBTUVGYNFUV
        LYBUVMWQUVCYOYBXCXDWQWSVRVPYNYPYSXEXFXHXGWT $.

      bcthlem.6 $e |- ( ph -> M : NN --> ( Clsd ` J ) ) $.
      ${
        bcthlem.7 $e |- ( ph -> R e. RR+ ) $.
        bcthlem.8 $e |- ( ph -> C e. X ) $.
        bcthlem.9 $e |- ( ph -> g : NN --> ( X X. RR+ ) ) $.
        bcthlem.10 $e |- ( ph -> ( g ` 1 ) = <. C , R >. ) $.
        bcthlem.11 $e |- ( ph -> A. k e. NN
                            ( g ` ( k + 1 ) ) e. ( k F ( g ` k ) ) ) $.
        $( Lemma for ~ bcth .  The balls in the sequence form an inclusion
           chain.  (Contributed by Mario Carneiro, 7-Jan-2014.) $)
        bcthlem2 $p |- ( ph -> A. n e. NN
      ( ( ball ` D ) ` ( g ` ( n + 1 ) ) ) C_ ( ( ball ` D ) ` ( g ` n ) ) ) $=
          ( cv c1 caddc co cfv cbl wss cn wcel wa crp cxp c2nd cdiv clt wbr ccl
          cdif wral wceq oveq1 fveq2d id fveq2 oveq12d eleq12d rspccva sylan wb
          w3a ffvelrnda bcthlem1 expr mpd wi ctop cuni cxmt cme cms cmetmet syl
          mpbid metxmet mopntop adantr cxr xp1st xp2nd rpxrd blssm 3expb syl2an
          c1st jca cop 1st2nd2 df-ov syl6reqr adantl mopnuni 3sstr3d eqid sscls
          syl2anc difss2 sstr2 syl2im a1d ex 3impd ralrimiva ) AIUDZUEUFUGZGUDZ
          UHZEUIUHZUHZXPXRUHZXTUHZUJZIUKAXPUKULZUMZXSMUNUOZULZXSUPUHZUEXPUQUGUR
          USZYAKUTUHUHZYCXPLUHZVAUJZVMZYDYFXSXPYBJUGZULZYNAHUDZUEUFUGZXRUHZYQYQ
          XRUHZJUGZULZHUKVBYEYPUCUUBYPHXPUKYQXPVCZYSXSUUAYOUUCYRXQXRYQXPUEUFVDV
          EUUCYQXPYTYBJUUCVFYQXPXRVGVHVIVJVKYFYBYGULZYPYNVLZAUKYGXPXRUAVNAYEUUD
          UUEABCXPYBXSEHJKLMNOPQVOVPVQWFAYNYDVRYEAYHYJYMYDAYHYJYMYDVRZVRAYHUMZU
          UFYJUUGYAYKUJZYMYKYCUJYDUUGKVSULZYAKVTZUJUUHAUUIYHAEMWAUHULZUUIAEMWBU
          HULZUUKAEMWCUHULUULPEMWDWEEMWGWEZEKMOWHWEWIUUGXSWQUHZYIXTUGZMYAUUJAUU
          KUUNMULZYIWJULZUMUUOMUJZYHUUMYHUUPUUQXSMUNWKYHYIXSMUNWLWMWRUUKUUPUUQU
          UREUUNYIMWNWOWPYHUUOYAVCAYHYAUUNYIWSZXTUHUUOYHXSUUSXTXSMUNWTVEUUNYIXT
          XAXBXCAMUUJVCZYHAUUKUUTUUMEKMOXDWEWIXEYAKUUJUUJXFXGXHYKYCYLXIYAYKYCXJ
          XKXLXMXNWIVQXO $.

        $( Lemma for ~ bcth .  The limit point of the centers in the sequence
           is in the intersection of every ball in the sequence.  (Contributed
           by Mario Carneiro, 7-Jan-2014.) $)
        bcthlem3 $p |- ( ( ph /\ ( 1st o. g ) ( ~~>t ` J ) x /\ A e. NN ) ->
                         x e. ( ( ball ` D ) ` ( g ` A ) ) ) $=
          ( vn c1st cv ccom clm cfv wbr cn wcel w3a c1 caddc co cbl ccl wss crp
          wa cxp c2nd cdiv cdif wral wceq oveq1 fveq2d id fveq2 oveq12d eleq12d
          clt rspccva sylan wb ffvelrnda bcthlem1 expr mpd mpbid simp3d difss2d
          3adant2 peano2nn cms cme cxmt cmetmet metxmet bcthlem2 syl3an3 sseldd
          3syl caublcls ) AUEHUFZUGBUFZKUHUIUJZDUKULZUMDUNUOUPZWQUIZFUQUIZUIKUR
          UIUIZDWQUIZXCUIZWRAWTXDXFUSWSAWTVAZXDXFDLUIZXGXBMUTVBZULZXBVCUIUNDVDU
          PVNUJZXDXFXHVEUSZXGXBDXEJUPZULZXJXKXLUMZAIUFZUNUOUPZWQUIZXPXPWQUIZJUP
          ZULZIUKVFWTXNUCYAXNIDUKXPDVGZXRXBXTXMYBXQXAWQXPDUNUOVHVIYBXPDXSXEJYBV
          JXPDWQVKVLVMVOVPXGXEXIULZXNXOVQZAUKXIDWQUAVRAWTYCYDABCDXEXBFIJKLMNOPQ
          VSVTWAWBWCWDWEWTAWSXAUKULWRXDULDWFAXAFWRUDWQKMAFMWGUIULFMWHUIULFMWIUI
          ULPFMWJFMWKWOUAABCEFGHIUDJKLMNOPQRSTUAUBUCWLOWPWMWN $.

        $( Lemma for ~ bcth .  Given any open ball ` ( C ( ball `` D ) R ) ` as
           starting point (and in particular, a ball in ` int ( U. ran M ) ` ),
           the limit point ` x ` of the centers of the induced sequence of
           balls ` g ` is outside ` U. ran M ` .  Note that a set ` A ` has
           empty interior iff every nonempty open set ` U ` contains points
           outside ` A ` , i.e. ` ( U \ A ) =/= (/) ` .  (Contributed by Mario
           Carneiro, 7-Jan-2014.) $)
        bcthlem4 $p |- ( ph -> ( ( C ( ball ` D ) R ) \ U. ran M ) =/= (/) ) $=
          ( vn vm vy c1st cv ccom clm cfv wbr cbl co crn cuni cdif wne cdm wcel
          c0 wex cms cca cme cxmt cmetmet syl metxmet bcthlem2 c2nd clt cn wrex
          crp wa c1 cdiv cr cc0 elrp nnrecl sylbi adantl caddc peano2nn cxp ccl
          wss w3a wral wceq oveq1 fveq2d id fveq2 oveq12d eleq12d rspccva sylan
          wb ffvelrnda bcthlem1 expr mpbid simp2d adantlr wi simp1d xp2nd rpred
          mpd nnrecre rpre ad2antlr lttr syl3anc breq1d rspcev syl6an rexlimdva
          mpand ralrimiva caubl cmetcau syl2anc wfun fo1st fofun ax-mp cofunexg
          cvv wfo vex mp2an eldm bcthlem3 cop df-ov adantr wn sylib 1nn syl6eqr
          mp3an3 eleqtrd mopntop cxr xp1st rpxrd blssm 1st2nd2 syl6reqr mopnuni
          ctop 3sstr3d sscls simp3d sstrd 3adant2 syl3an3 sseldd eldifbd eluni2
          eqid 3expa wfn ccld wf ffn eleq2 syl5bb notbid ralnex syl6bbr biimpar
          rexrn syldan eldifd ne0i exlimddv ) AUFGUGZUHZBUGZJUIUJZUKZDFEULUJZUM
          ZKUNZUOZUPZUTUQZBAUWBUWDURUSZUWEBVAAELVBUJUSZUWBEVCUJUSUWLOAEUCUWALMA
          ELVDUJUSZELVEUJUSZAUWMUWNOELVFVGELVHVGZTABCDEFGHUCIJKLMNOPQRSTUAUBVIA
          UCUGZUWAUJZVJUJZMUGZVKUKZUCVLVMZMVNAUWTVNUSZVOZVPUDUGZVQUMZUWTVKUKZUD
          VLVMZUXBUXCUXHAUXCUWTVRUSZVSUWTVKUKVOUXHUWTVTUWTUDWAWBWCUXDUXGUXBUDVL
          UXDUXEVLUSZVOZUXEVPWDUMZVLUSZUXGUXLUWAUJZVJUJZUWTVKUKZUXBUXJUXMUXDUXE
          WEZWCUXKUXOUXFVKUKZUXGUXPAUXJUXRUXCAUXJVOZUXNLVNWFZUSZUXRUXNUWFUJZJWG
          UJUJZUXEUWAUJZUWFUJZUXEKUJZUPZWHZUXSUXNUXEUYDIUMZUSZUYAUXRUYHWIZAHUGZ
          VPWDUMZUWAUJZUYLUYLUWAUJZIUMZUSZHVLWJUXJUYJUBUYQUYJHUXEVLUYLUXEWKZUYN
          UXNUYPUYIUYRUYMUXLUWAUYLUXEVPWDWLWMUYRUYLUXEUYOUYDIUYRWNUYLUXEUWAWOWP
          WQWRWSUXSUYDUXTUSZUYJUYKWTZAVLUXTUXEUWATXAAUXJUYSUYTABCUXEUYDUXNEHIJK
          LMNOPXBXCXKXDZXEXFUXKUXOVRUSZUXFVRUSZUXIUXRUXGVOUXPXGAUXJVUBUXCUXSUXO
          UXSUYAUXOVNUSUXSUYAUXRUYHVUAXHZUXNLVNXIVGZXJXFUXJVUCUXDUXEXLWCUXCUXIA
          UXJUWTXMXNUXOUXFUWTXOXPYAUXAUXPUCUXLVLUWQUXLWKZUWSUXOUWTVKVUFUWRUXNVJ
          UWQUXLUWAWOWMXQXRXSXTXKYBYCEUWBJLNYDYEBUWBUWDUFYFZUWAYKUSUWBYKUSYKYKU
          FYLVUGYGYKYKUFYHYIGYMUFUWAYKYJYNYOUUAAUWEVOZUWCUWJUSUWKVUHUWCUWGUWIVU
          HUWCVPUWAUJZUWFUJZUWGAUWEVPVLUSUWCVUJUSUUBABCVPDEFGHIJKLMNOPQRSTUAUBY
          PUUDAVUJUWGWKUWEAVUJDFYQZUWFUJUWGAVUIVUKUWFUAWMDFUWFYRUUCYSUUEAUWEUWC
          UYFUSZYTZUDVLWJZUWCUWIUSZYTZVUHVUMUDVLAUWEUXJVUMAUWEUXJWIZUWCUYEUYFVU
          QUYBUYGUWCAUXJUYBUYGWHUWEUXSUYBUYCUYGUXSJUUNUSZUYBJUOZWHUYBUYCWHAVURU
          XJAUWOVURUWPEJLNUUFVGYSUXSUXNUFUJZUXOUWFUMZLUYBVUSUXSUWOVUTLUSZUXOUUG
          USVVALWHAUWOUXJUWPYSUXSUYAVVBVUDUXNLVNUUHVGUXSUXOVUEUUIEVUTUXOLUUJXPU
          XSUYBVUTUXOYQZUWFUJVVAUXSUXNVVCUWFUXSUYAUXNVVCWKVUDUXNLVNUUKVGWMVUTUX
          OUWFYRUULALVUSWKZUXJAUWOVVDUWPEJLNUUMVGYSUUOUYBJVUSVUSUVDUUPYEUXSUYAU
          XRUYHVUAUUQUURUUSUXJAUWEUXMUWCUYBUSUXQABCUXLDEFGHIJKLMNOPQRSTUAUBYPUU
          TUVAUVBUVEYBAVUPVUNAVUPVULUDVLVMZYTVUNAVUOVVEVUOUWCUEUGZUSZUEUWHVMZAV
          VEUEUWCUWHUVCAKVLUVFZVVHVVEWTAVLJUVGUJZKUVHVVIQVLVVJKUVIVGVVGVULUEUDV
          LKVVFUYFUWCUVJUVPVGUVKUVLVULUDVLUVMUVNUVOUVQUVRUWJUWCUVSVGUVT $.
      $}

      $d g ph $.
      bcthlem5.7 $e |- ( ph -> A. k e. NN
                         ( ( int ` J ) ` ( M ` k ) ) = (/) ) $.
      $( Lemma for ~ bcth .  The proof makes essential use of the Axiom of
         Dependent Choice ~ axdc4uz , which in the form used here accepts a
         "selection" function ` F ` from each element of ` K ` to a nonempty
         subset of ` K ` , and the result function ` g ` maps ` g ( n + 1 ) `
         to an element of ` F ( n , g ( n ) ) ` .  The trick here is thus in
         the choice of ` F ` and ` K ` : we let ` K ` be the set of all tagged
         nonempty open sets (tagged here meaning that we have a point and an
         open set, in an ordered pair), and ` F ( k , <. x , z >. ) ` gives the
         set of all balls of size less than ` 1 / k ` , tagged by their
         centers, whose closures fit within the given open set ` z ` and miss
         ` M ( k ) ` .

         Since ` M ( k ) ` is closed, ` z \ M ( k ) ` is open and also
         nonempty, since ` z ` is nonempty and ` M ( k ) ` has empty interior.
         Then there is some ball contained in it, and hence our function ` F `
         is valid (it never maps to the empty set).  Now starting at a point in
         the interior of ` U. ran M ` , DC gives us the function ` g ` all
         whose elements are constrained by ` F ` acting on the previous value.
         (This is all proven in this lemma.)  Now ` g ` is a sequence of tagged
         open balls, forming an inclusion chain (see ~ bcthlem2 ) and whose
         sizes tend to zero, since they are bounded above by ` 1 / k ` .  Thus,
         the centers of these balls form a Cauchy sequence, and converge to a
         point ` x ` (see ~ bcthlem4 ).  Since the inclusion chain also ensures
         the closure of each ball is in the previous ball, the point ` x ` must
         be in all these balls (see ~ bcthlem3 ) and hence misses each
         ` M ( k ) ` , contradicting the fact that ` x ` is in the interior of
         ` U. ran M ` (which was the starting point).  (Contributed by Mario
         Carneiro, 6-Jan-2014.) $)
      bcthlem5 $p |- ( ph -> ( ( int ` J ) ` U. ran M ) = (/) ) $=
        ( cfv wcel wss crp wa vn vm vg crn cuni cnt cv cbl co wrex cxmt cms cme
        cmetmet metxmet 3syl ctop mopntop syl cpw ccld cn wf eqid cldss2 syl6ss
        frn sspwuni sylib ntropn syl2anc jca mopni2 3expa sylan wn w3a cdif wne
        c0 cxp c1 cop wceq caddc wral cvv csn wex mopnuni topopn eqeltrd rpssre
        cr reex ssexi xpexg sylancl 3ad2ant1 ntrss3 sseqtr4d simp2 sseldd simp3
        opelxpi cdiv clt wbr ccl copab opabssxp elpw2g adantr mpbiri simpl rspa
        wb syl2an ssdif0 c1st c2nd 1st2nd2 ad2antll fveq2d df-ov syl3anc wi cxr
        syl21anc mpd syl31anc simpr3 rpred simpr1 simpr2 id sstr2 eximdv syl5bi
        rpxr syl6eqr xp1st xp2nd bln0 eqnetrd cldss rpxrd blopn ssntr expr ssn0
        ffvelrn expcom sylsyld syl5bir necon2d n0 difopn simp2l rpreccld mopni3
        3adant3 simp1 elssuni ssdifssd sseld 3impia c2 rphalfcl rphalflt rspcev
        nnrp breq1 ad2antlr df-rex simplrl nnrecred lttr anim1i 3anim123i 3coml
        expdimp blsscls anim12d simpllr jctild 3exp2 ex rexlimdva 3expia opabn0
        com35 imp5d sylibr eldifsn sylanbrc ralrimivva fmpt2 nnuz simpl1 simpl3
        1z axdc4uz oveq1 fveq2 oveq12d eleq12d cbvralv bcthlem4 exlimddv ntrss2
        syl5com syl6ib necon3ad nrexdv pm2.65da eq0rdv ) AUAHUDZUEZGUFPZPZAUAUG
        ZUYAQZUYBUBUGZDUHPZUIZUYARZUBSUJZADIUKPQZUYAGQZTUYCUYHAUYIUYJADIULPQZDI
        UMPQUYILDIUNDIUOUPZAGUQQZUXSGUEZRZUYJAUYIUYMUYLDGIKURUSZAUXRUYNUTZRUYOA
        UXRGVAPZUYQAVBUYRHVCZUXRUYRRNVBUYRHVGUSGUYNUYNVDZVEVFUXRUYNVHVIZUXSGUYN
        UYTVJVKVLUYIUYJUYCUYHUBUYADUYBGIKVMVNVOAUYCTUYGUBSAUYCUYDSQZUYGVPZAUYCV
        UBVQZUYFUXSVRZVTVSZVUCVUDVBISWAZUCUGZVCZWBVUHPUYBUYDWCZWDZUYBWBWEUIZVUH
        PZUYBUYBVUHPZFUIZQZUAVBWFZVQZVUFUCVUDVUGWGQZVUJVUGQZVBVUGWAVUGUTZVTWHVR
        ZFVCZVURUCWIAUYCVUSVUBAIGQSWGQVUSAIUYNGAUYIIUYNWDZUYLDGIKWJUSZAUYMUYNGQ
        UYPGUYNUYTWKUSWLSWNWOWMWPISGWGWQWRZWSVUDUYBIQZVUBVUTVUDUYAIUYBAUYCUYAIR
        VUBAUYAUYNIAUYMUYOUYAUYNRUYPVUAUXSGUYNUYTWTVKVVEXAWSAUYCVUBXBXCZAUYCVUB
        XDUYBUYDISXEVKAUYCVVCVUBABUGZIQZJUGZSQZTZVVKWBEUGZXFUIZXGXHZVVIVVKUYEUI
        GXIPPZCUGZUYEPZVVNHPZVRZRZTZTZBJXJZVVBQZCVUGWFEVBWFVVCAVWFECVBVUGAVVNVB
        QZVVRVUGQZTZTZVWEVVAQZVWEVTVSZVWFVWJVWKVWEVUGRZVWCBJISXKAVWKVWMXQZVWIAV
        USVWNVVFVWEVUGWGXLUSXMXNVWJVWDJWIZBWIZVWLVWJVWAVTVSZVWPVWJVVTUXTPZVTWDZ
        VWQAVWSEVBWFVWGVWSVWIOVWGVWHXOZVWSEVBXPXRVWJVWAVTVWRVTVWAVTWDVVSVVTRZVW
        JVWRVTVSZVVSVVTXSVWJVVSVTVSZVXAVVSVWRRZVXBVWJVVSVVRXTPZVVRYAPZUYEUIZVTV
        WJVVSVXEVXFWCZUYEPVXGVWJVVRVXHUYEVWHVVRVXHWDAVWGVVRISYBYCYDVXEVXFUYEYEU
        UAZVWJUYIVXEIQZVXFSQZVXGVTVSAUYIVWIUYLXMZVWHVXJAVWGVVRISUUBYCZVWHVXKAVW
        GVVRISUUCYCZDVXEVXFIUUDYFUUEVWJUYMVVTUYNRZVVSGQZVXAVXDYGAUYMVWIUYPXMVWJ
        VVTUYRQZVXOAUYSVWGVXQVWINVWTVBUYRVVNHUULXRZVVTGUYNUYTUUFUSVWJVVSVXGGVXI
        VWJUYIVXJVXFYHQVXGGQVXLVXMVWJVXFVXNUUGDVXEVXFGIKUUHYFWLZUYMVXOTVXPVXAVX
        DVVTGVVSUYNUYTUUIUUJYIVXDVXCVXBVVSVWRUUKUUMUUNUUOUUPYJVWQVVIVWAQZBWIVWJ
        VWPBVWAUUQVWJVXTVWOBAVWIVXTVWOAVWIVXTVQZUYBVVOXGXHZVVIUYBUYEUIZVWARZTZU
        ASUJZVWOVYAUYIVWAGQZVXTVVOSQZVYFAVWIUYIVXTUYLWSAVWIVYGVXTVWJVXPVXQVYGVX
        SVXRVVSVVTGUYNUYTUURVKUVBAVWIVXTXDVYAVWGVYHAVWGVWHVXTUUSVWGVVNVVNUVLUUT
        USUAVWADVVIVVOGIKUVAYKVYAAVVJVWIVYFVWOYGAVWIVXTUVCAVWIVXTVVJVWJVWAIVVIV
        WJVVSIVVTVWJVVSUYNIVWJVXPVVSUYNRVXSVVSGUVDUSAVVDVWIVVEXMXAUVEUVFUVGAVWI
        VXTXBAVVJTZVWITZVYEVWOUASVYJUYBSQZTZVYEVWOVYLVYETZVVKUYBXGXHZJSUJZVWOVY
        KVYOVYJVYEVYKUYBUVHXFUIZSQVYPUYBXGXHZVYOUYBUVIUYBUVJVYNVYQJVYPSVVKVYPUY
        BXGUVMUVKVKUVNVYOVVLVYNTZJWIVYMVWOVYNJSUVOVYMVYRVWDJVYJVYKVYEVVLVYNVWDV
        YJVYKVYNVVLVYEVWDVYJVYKVYNVVLVYEVWDYGVYJVYKVYNVVLVQZTZVYEVWCVVMVYTVYBVV
        PVYDVWBVYTVVKWNQZUYBWNQZVVOWNQZVYNVYBVVPYGVYTVVKVYJVYKVYNVVLYLZYMVYTUYB
        VYJVYKVYNVVLYNYMVYTVVNVYIVWGVWHVYSUVPUVQVYJVYKVYNVVLYOWUAWUBWUCVQVYNVYB
        VVPVVKUYBVVOUVRUWBYKVYTVVQVYCRZVYDVWBYGVYJUYIVVJTZVVKYHQZUYBYHQZVYNVQZW
        UEVYSVYIWUFVWIAUYIVVJUYLUVSXMVVLVYKVYNWUIVVLWUGVYKWUHVYNVYNVVKYTUYBYTVY
        NYPUVTUWADVVIVVKUYBGIKUWCXRVVQVYCVWAYQUSUWDVYTVVJVVLAVVJVWIVYSUWEWUDVLU
        WFUWGUWLUWMYRYSYJUWHUWIYIYJUWJYRYSYJVWDBJUWKUWNVWEVVAVTUWOUWPUWQECVBVUG
        VWEVVBFMUWRVIWSVUGVUJUCUAFWBWGVBUXBUWSUXCYFVUDVURTZBCUYBDUYDUCEFGHIJKWU
        JAUYKAUYCVUBVURUWTZLUSMWUJAUYSWUKNUSAUYCVUBVURUXAVUDVVGVURVVHXMVUDVUIVU
        KVUQYNVUDVUIVUKVUQYOWUJVUQVVNWBWEUIZVUHPZVVNVVNVUHPZFUIZQZEVBWFVUDVUIVU
        KVUQYLVUPWUPUAEVBUYBVVNWDZVUMWUMVUOWUOWUQVULWULVUHUYBVVNWBWEUXDYDWUQUYB
        VVNVUNWUNFWUQYPUYBVVNVUHUXEUXFUXGUXHVIUXIUXJAUYCVUFVUCYGVUBAUYGVUEVTAUY
        GUYFUXSRZVUEVTWDAUYAUXSRZUYGWURAUYMUYOWUSUYPVUAUXSGUYNUYTUXKVKUYFUYAUXS
        YQUXLUYFUXSXSUXMUXNWSYJVNUXOUXPUXQ $.
    $}

    $( Baire's Category Theorem.  If a nonempty metric space is complete, it is
       nonmeager in itself.  In other words, no open set in the metric space
       can be the countable union of rare closed subsets (where rare means
       having a closure with empty interior), so some subset ` M `` k ` must
       have a nonempty interior.  Theorem 4.7-2 of [Kreyszig] p. 247.  (The
       terminology "meager" and "nonmeager" is used by Kreyszig to replace
       Baire's "of the first category" and "of the second category."  The
       latter terms are going out of favor to avoid confusion with category
       theory.)  See ~ bcthlem5 for an overview of the proof.  (Contributed by
       NM, 28-Oct-2007.)  (Proof shortened by Mario Carneiro, 6-Jan-2014.) $)
    bcth $p |- ( ( D e. ( CMet ` X ) /\ M : NN --> ( Clsd ` J ) /\
                  ( ( int ` J ) ` U. ran M ) =/= (/) ) ->
               E. k e. NN ( ( int ` J ) ` ( M ` k ) ) =/= (/) ) $=
      ( vy vn vm cfv wcel cn c0 cv wceq wa crp co clt wss vg vz vx cms ccld crn
      vr wf cuni cnt wne w3a wral wn wrex cxp cdiv wbr cbl ccl cdif copab cmpt2
      c1 simpll eleq1 bi2anan9 simpr breq1d oveq12 fveq2d sseq1d cbvopabv oveq2
      anbi12d breq2d fveq2 difeq2d sseq2d anbi2d opabbidv syl5eq difeq1d simplr
      cbvmpt2v eqeq1d cbvralv sylib bcthlem5 necon3ad 3impia df-ne rexbii bitri
      ex rexnal sylibr ) AEUDJKZLCUEJDUHZDUFUICUJJZJZMUKZULBNZDJZWTJZMOZBLUMZUN
      ZXEMUKZBLUOZWRWSXBXHWRWSPZXGXAMXKXGXAMOXKXGPZGUAAHBUBLEQUPZUCNZEKZUGNZQKZ
      PZXPVDXCUQRZSURZXNXPAUSJZRZCUTJZJZUBNZYAJZXDVAZTZPZPZUCUGVBZVCCDEIFWRWSXG
      VEBUBHUALXMYKGNZEKZINZQKZPZYNVDHNZUQRZSURZYLYNYARZYCJZUANZYAJZYQDJZVAZTZP
      ZPZGIVBYPYSUUAYFUUDVAZTZPZPZGIVBZXCYQOZYKYPYNXSSURZUUAYGTZPZPZGIVBUUMYJUU
      RUCUGGIXNYLOZXPYNOZPZXRYPYIUUQUUSXOYMUUTXQYOXNYLEVFXPYNQVFVGUVAXTUUOYHUUP
      UVAXPYNXSSUUSUUTVHVIUVAYDUUAYGUVAYBYTYCXNYLXPYNYAVJVKVLVOVOVMUUNUURUULGIU
      UNUUQUUKYPUUNUUOYSUUPUUJUUNXSYRYNSXCYQVDUQVNVPUUNYGUUIUUAUUNXDUUDYFXCYQDV
      QZVRVSVOVTWAWBYEUUBOZUULUUHGIUVCUUKUUGYPUVCUUJUUFYSUVCUUIUUEUUAUVCYFUUCUU
      DYEUUBYAVQWCVSVTVTWAWEWRWSXGWDXLXGUUDWTJZMOZHLUMXKXGVHXFUVEBHLUUNXEUVDMUU
      NXDUUDWTUVBVKWFWGWHWIWOWJWKXJXFUNZBLUOXHXIUVFBLXEMWLWMXFBLWPWNWQ $.

    $( Baire's Category Theorem, version 2:  If countably many closed sets
       cover ` X ` , then one of them has an interior.  (Contributed by Mario
       Carneiro, 10-Jan-2014.) $)
    bcth2 $p |- ( ( ( D e. ( CMet ` X ) /\ X =/= (/) ) /\
                  ( M : NN --> ( Clsd ` J ) /\ U. ran M = X ) ) ->
               E. k e. NN ( ( int ` J ) ` ( M ` k ) ) =/= (/) ) $=
      ( cms cfv wcel c0 wne wa cn ccld wf crn cuni wceq cnt syl wrex simpll cme
      cv simprl ctop ctopon cxmt cmetmet ad2antrr metxmet mopntopon 3syl simprr
      topontop toponmax eqeltrd isopn3i syl2anc eqtrd simplr eqnetrd syl3anc
      bcth ) AEGHIZEJKZLZMCNHDOZDPQZERZLZLZVEVHVICSHZHZJKBUDDHVMHJKBMUAVEVFVKUB
      VGVHVJUEVLVNEJVLVNVIEVLCUFIZVICIVNVIRVLCEUGHIZVOVLAEUCHIZAEUHHIVPVEVQVFVK
      AEUIUJAEUKACEFULUMZECUOTVLVIECVGVHVJUNZVLVPECIVRECUPTUQVICURUSVSUTVEVFVKV
      AVBABCDEFVDVC $.

    $( Baire's Category Theorem, version 3:  The intersection of countably many
       dense open sets is dense.  (Contributed by Mario Carneiro,
       10-Jan-2014.) $)
    bcth3 $p |- ( ( D e. ( CMet ` X ) /\ M : NN --> J /\
                    A. k e. NN ( ( cls ` J ) ` ( M ` k ) ) = X ) ->
                  ( ( cls ` J ) ` |^| ran M ) = X ) $=
      ( vx cfv wcel cn wceq wral wa cdif c0 wi syl wss cvv sylan cms wf ccl crn
      cint cmpt cnt cuni cxmt cme cmetmet metxmet ctop mopntop ad2antrr ffvelrn
      cv elssuni adantll eqid clsval2 syl2anc mopnuni difeq2 difid syl6eq difss
      eqeq12d ntropn sylancl dfss4 sylib cdm elfvdm difexg adantr fveq2 difeq2d
      id fvmptg syl2anr difeq1d eqtrd fveq2d eqtr4d eqeq1d syl5ib ralimdva ccld
      sylbid opncld eqeltrd sylan2 anassrs ralrimiva fmpt wrex wn ralbii ralnex
      wne nne bitr3i bcth 3expia necon1bd syl5bi syldan ciin ciun fnmpt fniunfv
      wfn 3syl iuneq2dv cbviunv syl6eqr eqtr3d iundif2 adantl fniinfv 3eqtrd c1
      ffn biidd fnfvelrn intss1 sstrd expcom vtoclga ax-mp dif0 syl6reqr 3impia
      1nn 3syld ) AEUAHIZJCDUBZBUQZDHZCUCHZHZEKZBJLZDUDZUEZUUAHZEKZYQYRMZUUDYSG
      JEGUQZDHZNZUFZHZCUGHZHZOKZBJLZUUMUDUHZUUOHZOKZUUHYQAEUIHIZYRUUDUURPYQAEUJ
      HIUVBAEUKAEULQZUVBYRMZUUCUUQBJUVDYSJIZMZUUCCUHZUVGYTNZUUOHZNZUVGKZUUQUVFU
      UBUVJEUVGUVFCUMIZYTUVGRZUUBUVJKUVBUVLYRUVEACEFUNZUOZYRUVEUVMUVBYRUVEMYTCI
      UVMJCYSDUPYTCURQUSZYTCUVGUVGUTZVAVBUVBEUVGKZYRUVEACEFVCZUOZVHUVKUVGUVJNZO
      KUVFUUQUVKUWAUVGUVGNOUVJUVGUVGVDUVGVEVFUVFUWAUUPOUVFUWAUVIUUPUVFUVIUVGRZU
      WAUVIKUVFUVICIZUWBUVFUVLUVHUVGRUWCUVOUVGYTVGUVHCUVGUVQVIVJUVICURQUVIUVGVK
      VLUVFUUNUVHUUOUVFUUNEYTNZUVHUVEUVEUWDSIZUUNUWDKUVDUVEVSUVBUWEYRUVBEUIVMZI
      ZUWEAEUIVNZEYTUWFVOQVPGYSUULUWDJSUUMUUJYSKUUKYTEUUJYSDVQVRZUUMUTZVTWAZUVF
      EUVGYTUVTWBWCWDWEWFWGWJWHTYQYRJCWIHZUUMUBZUURUVAPUUIUULUWLIZGJLZUWMYQUVBY
      RUWOUVCUVDUWNGJUVBYRUUJJIZUWNYRUWPMUVBUUKCIZUWNJCUUJDUPUVBUWQMUULUVGUUKNZ
      UWLUVBUULUWRKUWQUVBEUVGUUKUVSWBVPUVBUVLUWQUWRUWLIUVNUUKCUVGUVQWKTWLWMWNWO
      TGJUWLUULUUMUWJWPVLUURUUPOXAZBJWQZWRZYQUWMMZUVAUURUWSWRZBJLUXAUXCUUQBJUUP
      OXBWSUWSBJWTXCUXBUWTUUTOYQUWMUUTOXAUWTABCUUMEFXDXEXFXGXHYQUVBYRUVAUUHPUVC
      UVAUVGUUTNZUVGONZKUVDUUHUUTOUVGVDUVDUXDUUGUXEEUVDUXDUVGUVGUUFNZUUOHZNZUUG
      UVDUUTUXGUVGUVDUUSUXFUUOUVDUUSEGJUUKXIZNZEUUFNUXFUVDUUSGJUULXJZUXJUVDBJUU
      NXJZUUSUXKUVDUULSIZGJLUUMJXMUXLUUSKUVDUXMGJUVBUXMYRUWPUVBUWGUXMUWHEUUKUWF
      VOQUOWOGJUULUUMSUWJXKBJUUMXLXNUVDUXLBJUWDXJUXKUVDBJUUNUWDUWKXOGBJUULUWDUW
      IXPXQXRGJEUUKXSVFUVDUXIUUFEUVDDJXMZUXIUUFKYRUXNUVBJCDYDXTZGJDYAQVRUVDEUVG
      UUFUVBUVRYRUVSVPZWBYBWDVRUVDUVLUUFUVGRZUUGUXHKUVBUVLYRUVNVPYCJIUVDUXQPZYO
      UXRUXRBYCJYSYCKUXRYEUVDUVEUXQUVFUUFYTUVGUVFYTUUEIZUUFYTRUVDUXNUVEUXSUXOJY
      SDYFTYTUUEYGQUVPYHYIYJYKUUFCUVGUVQVAVBWEUVDEUVGUXEUXPUVGYLYMVHWGTYPYN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Banach spaces and subcomplex Hilbert spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CMetSp $.
  $c Ban $.
  $c CHil $.

  $( Extend class notation with the class of all complete normed groups. $)
  ccms $a class CMetSp $.

  $( Extend class notation with the class of all Banach spaces. $)
  cbn $a class Ban $.

  $( Extend class notation with the class of all subcomplex Hilbert spaces. $)
  chl $a class CHil $.

  ${
    $d b w $.
    $( Define the class of all complete metric spaces.  (Contributed by Mario
       Carneiro, 15-Oct-2015.) $)
    df-cms $a |- CMetSp = { w e. MetSp |
     [. ( Base ` w ) / b ]. ( ( dist ` w ) |` ( b X. b ) ) e. ( CMet ` b ) } $.
  $}

  $( Define the class of all Banach spaces.  A Banach space is a normed vector
     space such that both the vector space and the scalar field are complete
     under their respective norm-induced metrics.  (Contributed by NM,
     5-Dec-2006.)  (Revised by Mario Carneiro, 15-Oct-2015.) $)
  df-bn $a |- Ban = { w e. ( NrmVec i^i CMetSp ) |
    ( Scalar ` w ) e. CMetSp } $.

  $( Define the class of all subcomplex Hilbert spaces.  A subcomplex Hilbert
     space is a Banach space which is also an inner product space over a
     quadratically closed subfield of the field of complex numbers.
     (Contributed by Steve Rodriguez, 28-Apr-2007.) $)
  df-hl $a |- CHil = ( Ban i^i CPreHil ) $.

  ${
    $d w F $.  $d w W $.
    isbn.1 $e |- F = ( Scalar ` W ) $.
    $( A Banach space is a normed vector space with a complete induced metric.
       (Contributed by NM, 5-Dec-2006.)  (Revised by Mario Carneiro,
       15-Oct-2015.) $)
    isbn $p |- ( W e. Ban <->
      ( W e. NrmVec /\ W e. CMetSp /\ F e. CMetSp ) ) $=
      ( vw cnvc ccms cin wcel wa cbn w3a elin anbi1i cv csca wceq fveq2 syl6eqr
      cfv eleq1d df-bn elrab2 df-3an 3bitr4i ) BEFGZHZAFHZIBEHZBFHZIZUGIBJHUHUI
      UGKUFUJUGBEFLMDNZOSZFHUGDBUEJUKBPZULAFUMULBOSAUKBOQCRTDUAUBUHUIUGUCUD $.

    $( The scalar field of a Banach space is complete.  (Contributed by NM,
       8-Sep-2007.)  (Revised by Mario Carneiro, 15-Oct-2015.) $)
    bnsca $p |- ( W e. Ban -> F e. CMetSp ) $=
      ( cbn wcel cnvc ccms isbn simp3bi ) BDEBFEBGEAGEABCHI $.
  $}

  $( A Banach space is a normed vector space.  (Contributed by Mario Carneiro,
     15-Oct-2015.) $)
  bnnvc $p |- ( W e. Ban -> W e. NrmVec ) $=
    ( cbn wcel cnvc ccms csca cfv eqid isbn simp1bi ) ABCADCAECAFGZECKAKHIJ $.

  $( A Banach space is a normed module.  (Contributed by Mario Carneiro,
     15-Oct-2015.) $)
  bnnlm $p |- ( W e. Ban -> W e. NrmMod ) $=
    ( cbn wcel cnvc cnlm bnnvc nvcnlm syl ) ABCADCAECAFAGH $.

  $( A Banach space is a normed group.  (Contributed by Mario Carneiro,
     15-Oct-2015.) $)
  bnngp $p |- ( W e. Ban -> W e. NrmGrp ) $=
    ( cbn wcel cnlm cngp bnnlm nlmngp syl ) ABCADCAECAFAGH $.

  $( A Banach space is a left module.  (Contributed by Mario Carneiro,
     15-Oct-2015.) $)
  bnlmod $p |- ( W e. Ban -> W e. LMod ) $=
    ( cbn wcel cnlm clmod bnnlm nlmlmod syl ) ABCADCAECAFAGH $.

  $( A Banach space is a complete metric space.  (Contributed by Mario
     Carneiro, 15-Oct-2015.) $)
  bncms $p |- ( W e. Ban -> W e. CMetSp ) $=
    ( cbn wcel cnvc ccms csca cfv eqid isbn simp2bi ) ABCADCAECAFGZECKAKHIJ $.

  ${
    $d b w D $.  $d b w M $.  $d b w X $.
    iscms.1 $e |- X = ( Base ` M ) $.
    iscms.2 $e |- D = ( ( dist ` M ) |` ( X X. X ) ) $.
    $( A complete metric space is a metric space with a complete metric.
       (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    iscms $p |- ( M e. CMetSp <-> ( M e. MetSp /\ D e. ( CMet ` X ) ) ) $=
      ( vw vb cv cds cfv cxp cres cms wcel cbs wsbc cmt wceq fveq2 syl6eqr ccms
      fvexd wa adantr id sylan9eqr sqxpeqd reseq12d fveq2d sbcied df-cms elrab2
      cvv eleq12d ) FHZIJZGHZUQKZLZUQMJZNZGUOOJZPACMJZNZFBQUAUOBRZVAVDGVBUMVEUO
      OUBVEUQVBRZUCZUSAUTVCVGUSBIJZCCKZLAVGUPVHURVIVEUPVHRVFUOBISUDVGUQCVFVEUQV
      BCVFUEVEVBBOJCUOBOSDTUFZUGUHETVGUQCMVJUIUNUJFGUKUL $.

    $( The induced metric on a complete normed group is complete.  (Contributed
       by Mario Carneiro, 15-Oct-2015.) $)
    cmscmet $p |- ( M e. CMetSp -> D e. ( CMet ` X ) ) $=
      ( ccms wcel cmt cms cfv iscms simprbi ) BFGBHGACIJGABCDEKL $.

    $( The induced metric on Banach space is complete.  (Contributed by NM,
       8-Sep-2007.)  (Revised by Mario Carneiro, 15-Oct-2015.) $)
    bncmet $p |- ( M e. Ban -> D e. ( CMet ` X ) ) $=
      ( cbn wcel ccms cms cfv bncms cmscmet syl ) BFGBHGACIJGBKABCDELM $.
  $}

  $( A complete metric space is a metric space.  (Contributed by Mario
     Carneiro, 15-Oct-2015.) $)
  cmsms $p |- ( G e. CMetSp -> G e. MetSp ) $=
    ( ccms wcel cmt cds cfv cbs cxp cres cms eqid iscms simplbi ) ABCADCAEFAGFZ
    NHIZNJFCOANNKOKLM $.

  ${
    cmspropd.1 $e |- ( ph -> B = ( Base ` K ) ) $.
    cmspropd.2 $e |- ( ph -> B = ( Base ` L ) ) $.
    cmspropd.3 $e |- ( ph ->
      ( ( dist ` K ) |` ( B X. B ) ) = ( ( dist ` L ) |` ( B X. B ) ) ) $.
    cmspropd.4 $e |- ( ph -> ( TopOpen ` K ) = ( TopOpen ` L ) ) $.
    $( Property deduction for a complete metric space.  (Contributed by Mario
       Carneiro, 15-Oct-2015.) $)
    cmspropd $p |- ( ph -> ( K e. CMetSp <-> L e. CMetSp ) ) $=
      ( cmt wcel cds cfv cbs cxp cres cms wa ccms eqtr3d eqid mspropd sqxpeqd
      reseq2d fveq2d eleq12d anbi12d iscms 3bitr4g ) ACIJZCKLZCMLZUKNZOZUKPLZJZ
      QDIJZDKLZDMLZURNZOZURPLZJZQCRJDRJAUIUPUOVBABCDEFGHUAAUMUTUNVAAUQBBNZOZUMU
      TAUJVCOVDUMGAVCULUJABUKEUBUCSAVCUSUQABURFUBUCSAUKURPABUKUREFSUDUEUFUMCUKU
      KTUMTUGUTDURURTUTTUGUH $.
  $}

  ${
    cmsss.h $e |- K = ( M |`s A ) $.
    cmsss.x $e |- X = ( Base ` M ) $.
    cmsss.j $e |- J = ( TopOpen ` M ) $.
    $( The restriction of a complete metric space is complete iff it is closed.
       (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    cmsss $p |- ( ( M e. CMetSp /\ A C_ X ) ->
                    ( K e. CMetSp <-> A e. ( Clsd ` J ) ) ) $=
      ( wcel cfv cbs cxp cres cms ccld cvv wceq eqid syl cmt ccms wss cds cmopn
      wa simpr xpss12 sylancom resabs1d fvex eqeltri ssex adantl ressds sqxpeqd
      ressbas2 reseq12d eqtrd fveq2d eleq12d cmscmet adantr cmetss bitr3d cmsms
      wb cress co ressms syl5eqel syl2an iscms baib mstopn eleq2d 3bitr4d ) DUA
      IZAEUBZUEZCUCJZCKJZWALZMZWANJZIZADUCJZEELZMZUDJZOJZIZCUAIZABOJZIVSWHAALZM
      ZANJZIZWEWKVSWOWCWPWDVSWOWFWNMWCVSWFWNWGVQVRVRWNWGUBVQVRUFAEAEUGUHUIVSWFV
      TWNWBVSAPIZWFVTQVRWRVQAEEDKJPGDKUJUKULZUMAWFDCPFWFRUNSVSAWAVRAWAQVQAECDFG
      UPUMZUOUQURVSAWANWTUSUTVSWHENJIZWQWKVFVQXAVRWHDEGWHRZVAVBWHWIEAWIRVCSVDVS
      CTIZWLWEVFVQDTIZWRXCVRDVEZWSXDWRUECDAVGVHTFADPVIVJVKWLXCWEWCCWAWARWCRVLVM
      SVSWMWJAVSBWIOVSXDBWIQVQXDVRXEVBWHBDEHGXBVNSUSVOVP $.
  $}

  ${
    lssbn.x $e |- X = ( W |`s U ) $.
    lssbn.s $e |- S = ( LSubSp ` W ) $.
    lssbn.j $e |- J = ( TopOpen ` W ) $.
    $( A subspace of a Banach space is a Banach space iff it is closed.
       (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    lssbn $p |- ( ( W e. Ban /\ U e. S ) ->
                  ( X e. Ban <-> U e. ( Clsd ` J ) ) ) $=
      ( cbn wcel wa ccms ccld cfv cnvc csca wb bnnvc lssnvc eqid resssca adantl
      sylan wceq bnsca adantr eqeltrrd w3a isbn 3anan32 bitri syl2anc cbs bncms
      baib wss lssss cmsss syl2an bitrd ) DIJZBAJZKZEIJZELJZBCMNJZVCEOJZEPNZLJZ
      VDVEQVADOJVBVGDRABDEFGSUCVCDPNZVHLVBVJVHUDVABVJDEAFVJTZUAUBVAVJLJVBVJDVKU
      EUFUGVDVGVIKZVEVDVGVEVIUHVLVEKVHEVHTUIVGVEVIUJUKUOULVADLJBDUMNZUPVEVFQVBD
      UNABVMDVMTZGUQBCEDVMFVNHURUSUT $.
  $}

  ${
    $d c D $.  $d c F $.  $d c U $.  $d c X $.
    cmetcusp1.x $e |- X = ( Base ` F ) $.
    cmetcusp1.d $e |- D = ( ( dist ` F ) |` ( X X. X ) ) $.
    cmetcusp1.u $e |- U = ( UnifSt ` F ) $.
    $( If the uniform set of a complete metric space is the uniform structure
       generated by its metric, then it is a complete uniform space.
       (Contributed by Thierry Arnoux, 15-Dec-2017.) $)
    cmetcusp1 $p |- ( ( X =/= (/) /\ F e. CMetSp /\ U = ( metUnif ` D ) )
      -> F e. CUnifSp ) $=
      ( vc c0 wne wcel cfv wceq ccfilu cflim co wi wral syl 3ad2ant2 ccms cmetu
      w3a cusp cv ctopn cfil ccusp cxme cmt cmsms msxms xmsusp syl3an2 wa ccfil
      simpl3 fveq2d eleq2d cxmt wb simpl1 cms cme cmscmet cmetmet metxmet simpr
      3syl adantr cfilucfil4 syl3anc bitrd iscmet simprbi xmstopn oveq1d neeq1d
      cmopn eqid ralbidv mpbird r19.21bi ex sylbid ralrimiva iscusp2 sylanbrc )
      DIJZCUAKZBAUBLZMZUCZCUDKZHUEZBNLZKZCUFLZWOOPZIJZQZHDUGLZRCUHKWJWICUIKZWLW
      NWJCUJKXCCUKCULSZABCDEFGUMUNWMXAHXBWMWOXBKZUOZWQWOAUPLZKZWTXFWQWOWKNLZKZX
      HXFWPXIWOXFBWKNWIWJWLXEUQURUSXFWIADUTLKZXEXJXHVAWIWJWLXEVBWMXKXEWJWIXKWLW
      JADVCLKZADVDLKZXKACDEFVEZADVFADVGVITVJWMXEVHWOADVKVLVMWMXHWTQZXEWJWIXOWLW
      JXHWTWJWTHXGWJWTHXGRAVSLZWOOPZIJZHXGRZWJXLXSXNXLXMXSAHXPDXPVTVNVOSWJWTXRH
      XGWJWSXQIWJWRXPWOOWJXCWRXPMXDAWRCDWRVTZEFVPSVQVRWAWBWCWDTVJWEWFDBWRCHEGXT
      WGWH $.
  $}

  ${
    $d c x y D $.  $d c x y X $.
    $( The uniform space generated by a complete metric is a complete uniform
       space.  (Contributed by Thierry Arnoux, 5-Dec-2017.) $)
    cmetcusp $p |- ( ( X =/= (/) /\ D e. ( CMet ` X ) )
      -> ( toUnifSp ` ( metUnif ` D ) ) e. CUnifSp ) $=
      ( vc vy vx c0 wne cfv wcel wa cv ccfilu cflim cfil 3syl eqid biimpar wceq
      co syl cms cmetu ctus cusp cuss ctopn cbs wral ccusp cpsmet cust cme cxmt
      cmetmet metxmet xmetpsmet anim2i metuust tususp cmopn simpll ccfil simprd
      wi cxp cima cc0 cico wss wrex crp ad3antlr wb tusbas fveq2d eleq2d adantr
      tususs adantlr cfbas cfilucfil2 simplbda syl2anc syl12anc cmetcvg tustopn
      iscfil cutop xmetutop eqtr3d oveq1d neeq1d ex ralrimiva iscusp sylanbrc )
      BFGZABUAHIZJZAUBHZUCHZUDIZCKZXAUEHZLHZIZXAUFHZXCMSZFGZVDZCXAUGHZNHZUHXAUI
      IWSWQABUJHIZJZWTBUKHIZXBWRXMWQWRABULHIZABUMHIZXMABUNZABUOZABUPOUQZABURZWT
      XABXAPZUSOWSXJCXLWSXCXLIZJZXFXIYDXFJZWSAUTHZXCMSZFGZXIWSYCXFVAZYEWRXCAVBH
      IZYHYEWQWRYIVCYEXQXCBNHZIZADKZYMVEVFVGEKVHSVIDXCVJEVKUHZYJWRXQWQYCXFWRXPX
      QXRXSTZVLYDYLXFWSYLYCWSXNXOYLYCVMXTYAXOYKXLXCXOBXKNWTXABYBVNVOVPOQVQYEWSX
      CWTLHZIZYNYIWSXFYQYCWSYQXFWSYPXEXCWSXNXOYPXERXTYAXOWTXDLWTXABYBVRVOOVPQVS
      WSYQXCBVTHIZYNWSXNYQYRYNJVMXTEDXCABWATWBWCXQYJYLYNJEDAXCBWGQWDAXCYFBYFPWE
      WCWSXIYHWSXHYGFWSXGYFXCMWSWTWHHZXGYFWSXNXOYSXGRXTYAWTYSXABYBYSPWFOWSWQXQJ
      YSYFRWRXQWQYOUQABWITWJWKWLQWCWMWNXACWOWP $.
  $}

  $( The field of complex numbers is a complete metric space.  (Contributed by
     Mario Carneiro, 15-Oct-2015.) $)
  cncms $p |- CCfld e. CMetSp $=
    ( ccnfld ccms wcel cmt cabs cmin ccom cc cms cfv cnfldms eqid cnfldbas cres
    cncmet cxp cds cr wf wfn wceq cme cnmet metf ax-mp ffn fnresdm mp2b cnfldds
    reseq1i eqtr3i iscms mpbir2an ) ABCADCEFGZHIJCKUNUNLOUNAHMUNHHPZNZUNAQJZUON
    UORUNSZUNUOTUPUNUAUNHUBJCURUCUNHUDUEUORUNUFUOUNUGUHUNUQUOUIUJUKULUM $.

  ${
    cnflduss.1 $e |- U = ( UnifSt ` CCfld ) $.
    $( The uniform structure of the complex numbers.  (Contributed by Thierry
       Arnoux, 17-Dec-2017.)  (Revised by Thierry Arnoux, 11-Mar-2018.) $)
    cnflduss $p |- U = ( metUnif ` ( abs o. - ) ) $=
      ( ccnfld cuss cfv cabs cmin ccom cmetu cxp cuni wceq cust wcel wne cpsmet
      cc c0 cc0 ax-mp ne0ii cxmt cnxmet xmetpsmet metuust mp2an ustuni cnfldbas
      0cn eqcomi cnfldunif ussid eqtr4i ) ACDEZFGHZIEZBQQJZUPKZLUPUNLURUQUPQMEN
      ZURUQLQROUOQPENZUSSQUIUAUOQUBENUTUCUOQUDTUOQUEUFUPQUGTUJQUPCUHUKULTUM $.
  $}

  $( The field of complex numbers is a complete uniform space.  (Contributed by
     Thierry Arnoux, 17-Dec-2017.) $)
  cnfldcusp $p |- CCfld e. CUnifSp $=
    ( cc c0 wne ccnfld ccms wcel cuss cfv cabs cmin ccom cmetu wceq ccusp ne0ii
    cc0 0cn cres cr wf cncms eqid cnflduss cnfldbas cxp cds wfn absf subf mp2an
    fco ffn fnresdm mp2b cnfldds reseq1i eqtr3i cmetcusp1 mp3an ) ABCDEFDGHZIJK
    ZLHMDNFPAQOUAUTUTUBZUCVAUTDAUDVAAAUEZRZVADUFHZVCRVCSVATZVAVCUGVDVAMASITVCAJ
    TVFUHUIVCASIJUKUJVCSVAULVCVAUMUNVAVEVCUOUPUQVBURUS $.

  ${
    resscdrg.1 $e |- F = ( CCfld |`s K ) $.
    $( The real numbers are a subset of any complete subfield in the complex
       numbers.  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    resscdrg $p |- ( ( K e. ( SubRing ` CCfld ) /\
                       F e. DivRing /\ F e. CMetSp ) -> RR C_ K ) $=
      ( ccnfld csubrg cfv wcel cdr ccms w3a cr ctopn ccl wss wceq cioo cnfldbas
      cq cin cc crn ctg ctop eqid cnfldtop ax-resscn qssre cnfldtopon toponunii
      tgioo2 restcls mp3an qdensere eqtr3i sseqin2 mpbir simp3 wb cncms subrgss
      ccld 3ad2ant1 cmsss sylancr mpbid eleq1i qsssubdrg sylan2b 3adant3 clsss2
      cress co syl2anc syl5ss ) BDEFGZAHGZAIGZJZKRDLFZMFFZBKVTNVTKSZKORPUAUBFZM
      FFZWAKVSUCGKTNRKNWCWAOVSVSUDZUEUFUGRVSWBTKTVSVSWDUHUIZVSWDUJUKULUMUNKVTUO
      UPVRBVSVAFGZRBNZVTBNVRVQWFVOVPVQUQVRDIGBTNZVQWFURUSVOVPWHVQBTDQUTVBBVSADT
      CQWDVCVDVEVOVPWGVQVPVODBVKVLZHGWGAWIHCVFBVGVHVIBRVSTWEVJVMVN $.

    $( The only complete subfields of the complex numbers are ` RR ` and
       ` CC ` .  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    cncdrg $p |- ( ( K e. ( SubRing ` CCfld ) /\
                     F e. DivRing /\ F e. CMetSp ) -> K e. { RR , CC } ) $=
      ( ccnfld csubrg cfv wcel cdr ccms w3a cr wss cc cpr simp1 cnsubrg syl2anc
      resscdrg ) BDEFGZAHGZAIGZJSKBLBKMNGSTUAOABCRBPQ $.
  $}

  ${
    srabn.a $e |- A = ( ( subringAlg ` W ) ` S ) $.
    srabn.j $e |- J = ( TopOpen ` W ) $.
    $( The subring algebra over a complete normed ring is a Banach space iff
       the subring is a closed division ring.  (Contributed by Mario Carneiro,
       15-Oct-2015.) $)
    srabn $p |- ( ( W e. NrmRing /\ W e. CMetSp /\ S e. ( SubRing ` W ) ) ->
      ( A e. Ban <-> ( S e. ( Clsd ` J ) /\ ( W |`s S ) e. DivRing ) ) ) $=
      ( cnrg wcel ccms csubrg cfv w3a wa cdr wb eqid cds baib syl eleq1d cbn co
      csca cnvc ccld cress simp2 cbs csra wceq a1i wss subrgss 3ad2ant3 srabase
      eqidd cxp srads reseq1d sratopn cmspropd isbn 3anrot 3anass 3bitri srasca
      mpbid cmsss syl2anc bitr3d sranlm 3adant2 isnvc2 bitr4d anbi12d bitrd
      cnlm ) DGHZDIHZBDJKHZLZAUAHZAUCKZIHZAUDHZMZBCUEKHZDBUFUBZNHZMWAAIHZWBWFOW
      AVSWJVRVSVTUGZWADUHKZDAWAWLUPWAABDABDUIKKUJWAEUKZVTVRBWLULZVSBWLDWLPZUMUN
      ZUOWADQKAQKWLWLUQWAABDWMWPURUSWAABDWMWPUTVAVGWBWJWFWBWEWJWDLWJWDWELWJWFMW
      CAWCPZVBWEWJWDVCWJWDWEVDVERSWAWDWGWEWIWAWHIHZWDWGWAWHWCIWAABDWMWPVFZTWAVS
      WNWRWGOWKWPBCWHDWLWHPWOFVHVIVJWAWEWCNHZWIWAAVQHZWEWTOVRVTXAVSABDEVKVLWEXA
      WTWCAWQVMRSWAWHWCNWSTVNVOVP $.
  $}

  $( The ring module over a complete normed division ring is a Banach space.
     (Contributed by Mario Carneiro, 15-Oct-2015.) $)
  rlmbn $p |- ( ( R e. NrmRing /\ R e. DivRing /\ R e. CMetSp ) ->
    ( ringLMod ` R ) e. Ban ) $=
    ( cnrg wcel cdr ccms w3a crglmod cfv cbn ctopn ccld cress co wceq 3syl eqid
    cbs syl eqeltrd 3ad2ant1 cuni ctps cmt simp3 cmsms mstps tpsuni ctop tpstop
    topcld ressid simp2 csubrg wa wb simp1 nrgring subrgid rlmval srabn syl3anc
    crg mpbir2and ) ABCZADCZAECZFZAGHZICZAQHZAJHZKHZCZAVJLMZDCZVGVJVKUAZVLVGAUB
    CZVJVPNVGVFAUCCVQVDVEVFUDZAUEAUFOZVJVKAVJPZVKPZUGRVGVQVKUHCVPVLCVSVKAWAUIVK
    VPVPPUJOSVGVNADVDVEVNANVFVJABVTUKTVDVEVFULSVGVDVFVJAUMHCZVIVMVOUNUOVDVEVFUP
    VRVGAVBCZWBVDVEWCVFAUQTVJAVTURRVHVJVKAAUSWAUTVAVC $.

  $( The predicate "is a subcomplex Hilbert space."  A Hilbert space is a
     Banach space which is also an inner product space, i.e. whose norm
     satisfies the parallelogram law.  (Contributed by Steve Rodriguez,
     28-Apr-2007.)  (Revised by Mario Carneiro, 15-Oct-2015.) $)
  ishl $p |- ( W e. CHil <-> ( W e. Ban /\ W e. CPreHil ) ) $=
    ( cbn ccph chl df-hl elin2 ) ABCDEF $.

  $( Every subcomplex Hilbert space is a Banach space.  (Contributed by Steve
     Rodriguez, 28-Apr-2007.) $)
  hlbn $p |- ( W e. CHil -> W e. Ban ) $=
    ( chl wcel cbn ccph ishl simplbi ) ABCADCAECAFG $.

  $( Every subcomplex Hilbert space is a subcomplex pre-Hilbert space.
     (Contributed by Mario Carneiro, 15-Oct-2015.) $)
  hlcph $p |- ( W e. CHil -> W e. CPreHil ) $=
    ( chl wcel cbn ccph ishl simprbi ) ABCADCAECAFG $.

  $( Every subcomplex Hilbert space is an inner product space (also called a
     pre-Hilbert space).  (Contributed by NM, 28-Apr-2007.)  (Revised by Mario
     Carneiro, 15-Oct-2015.) $)
  hlphl $p |- ( W e. CHil -> W e. PreHil ) $=
    ( chl wcel ccph cphl hlcph cphphl syl ) ABCADCAECAFAGH $.

  $( Every subcomplex Hilbert space is a complete metric space.  (Contributed
     by Mario Carneiro, 17-Oct-2015.) $)
  hlcms $p |- ( W e. CHil -> W e. CMetSp ) $=
    ( chl wcel cbn ccms hlbn bncms syl ) ABCADCAECAFAGH $.

  ${
    hlress.f $e |- F = ( Scalar ` W ) $.
    hlress.k $e |- K = ( Base ` F ) $.
    $( Lemma for ~ hlpr .  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    hlprlem $p |- ( W e. CHil -> ( K e. ( SubRing ` CCfld ) /\
      ( CCfld |`s K ) e. DivRing /\ ( CCfld |`s K ) e. CMetSp ) ) $=
      ( chl wcel ccnfld csubrg cfv cress co cdr ccms ccph cphsubrg syl eqeltrrd
      hlcph wceq cphsca clvec cphlvec lvecdrng 3syl cbn hlbn bnsca 3jca ) CFGZB
      HIJGZHBKLZMGULNGUJCOGZUKCSZABCDEPQUJAULMUJUMAULTUNABCDEUAQZUJUMCUBGAMGUNC
      UCACDUDUERUJAULNUOUJCUFGANGCUGACDUHQRUI $.

    $( The scalar field of a subcomplex Hilbert space contains ` RR ` .
       (Contributed by Mario Carneiro, 8-Oct-2015.) $)
    hlress $p |- ( W e. CHil -> RR C_ K ) $=
      ( chl wcel ccnfld csubrg cfv cress cdr ccms w3a wss hlprlem eqid resscdrg
      co cr syl ) CFGBHIJGHBKSZLGUBMGNTBOABCDEPUBBUBQRUA $.

    $( The scalar field of a subcomplex Hilbert space is either ` RR ` or
       ` CC ` .  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    hlpr $p |- ( W e. CHil -> K e. { RR , CC } ) $=
      ( chl wcel ccnfld csubrg cfv cress co cdr ccms w3a cr cc cpr hlprlem eqid
      cncdrg syl ) CFGBHIJGHBKLZMGUCNGOBPQRGABCDESUCBUCTUAUB $.

    $( A Hilbert space is a complete subcomplex pre-Hilbert space over ` RR `
       or ` CC ` .  (Contributed by Mario Carneiro, 15-Oct-2015.) $)
    ishl2 $p |- ( W e. CHil <->
      ( W e. CMetSp /\ W e. CPreHil /\ K e. { RR , CC } ) ) $=
      ( wcel wa ccms cr cc w3a syl ccnfld cress co cfv cdr eqid wceq cncms ccph
      chl cbn cpr ishl df-3an 3ancomb cnvc cphnvc isbn 3anass bitri baib cphsca
      wb eleq1d csubrg wi cphsubrg clvec cphlvec lvecdrng cncdrg 3expia syl2anc
      eqeltrrd elpri oveq2 ctopn ccld recld2 wss ax-resscn cnfldbas cmsss mp2an
      wo mpbir syl6eqel ressid ax-mp eqeltri jaoi impbid1 bitrd anbi2d pm5.32ri
      3bitr4ri ) CUBFCUCFZCUAFZGZCHFZWJBIJUDFZKZCUEWLWMWJKWLWMGZWJGWNWKWLWMWJUF
      WLWJWMUGWJWIWOWJWIWLAHFZGZWOWJCUHFZWIWQUOCUIWIWRWQWIWRWLWPKWRWQGACDUJWRWL
      WPUKULUMLWJWPWMWLWJWPMBNOZHFZWMWJAWSHABCDEUNZUPWJWTWMWJBMUQPFZWSQFZWTWMUR
      ABCDEUSWJAWSQXAWJCUTFAQFCVAACDVBLVFXBXCWTWMWSBWSRVCVDVEWMBISZBJSZVQWTBIJV
      GXDWTXEXDWSMINOZHBIMNVHXFHFZIMVIPZVJPFZXHXHRZVKMHFZIJVLXGXIUOTVMIXHXFMJXF
      RVNXJVOVPVRVSXEWSMJNOZHBJMNVHXLMHXKXLMSTJMHVNVTWATWBVSWCLWDWEWFWEWGWHUL
      $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The complete ordered field of the real numbers
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( The topology of the real numbers.  (Contributed by Thierry Arnoux,
     30-Jun-2019.) $)
  retopn $p |- ( topGen ` ran (,) ) = ( TopOpen ` RRfld ) $=
    ( cioo crn ctg cfv ccnfld ctopn cr crest co crefld tgioo2 df-refld resstopn
    eqid eqtri ) ABCDEFDZGHIJFDPPNZKGJPELQMO $.

  $( The real numbers form a complete metric space.  (Contributed by Thierry
     Arnoux, 1-Nov-2017.) $)
  recms $p |- RRfld e. CMetSp $=
    ( crefld ccms wcel cr ccnfld ctopn cfv ccld eqid recld2 cc wss wb ax-resscn
    cncms df-refld cnfldbas cmsss mp2an mpbir ) ABCZDEFGZHGCZUBUBIZJEBCDKLUAUCM
    ONDUBAEKPQUDRST $.

  $( The Uniform structure of the real numbers.  (Contributed by Thierry
     Arnoux, 14-Feb-2018.) $)
  reust $p |- ( UnifSt ` RRfld )
                = ( metUnif ` ( ( dist ` RRfld ) |` ( RR X. RR ) ) ) $=
    ( crefld cuss cfv cabs cmin ccom cmetu cr cxp crest cres ccnfld fveq2i wcel
    co cvv wceq ax-mp 3eqtri cc cds cress df-refld reex ressuss cnflduss oveq1i
    eqid wne cpsmet wss cc0 0re ne0ii cnxmet xmetpsmet ax-resscn restmetu mp3an
    c0 cxmt reds reseq1i ) ABCZDEFZGCZHHIZJOZVEVGKZGCZAUACZVGKZGCVDLHUBOZBCZLBC
    ZVGJOZVHAVMBUCMHPNVNVPQUDHPLUERVOVFVGJVOVOUHUFUGSHUTUIVETUJCNZHTUKVHVJQULHU
    MUNVETVACNVQUOVETUPRUQHVETURUSVIVLGVEVKVGVBVCMS $.

  $( The real numbers form a complete uniform space.  (Contributed by Thierry
     Arnoux, 17-Dec-2017.) $)
  recusp $p |- RRfld e. CUnifSp $=
    ( cr c0 wne crefld ccms wcel cuss cfv cds cxp cres cmetu wceq ccusp cc0 0re
    ne0ii recms reust eqid rebase cmetcusp1 mp3an ) ABCDEFDGHZDIHAAJKZLHMDNFOAP
    QRSUEUDDAUAUETUDTUBUC $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Euclidean spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c RR^ EEhil $.

  $( Extend class notation with generalized real Euclidean spaces. $)
  crrx $a class RR^ $.

  $( Extend class notation with real Euclidean spaces. $)
  cehl $a class EEhil $.

  ${
    $d i n $.
    $( Define the function associating with a set the free real vector space on
       that set, equipped with the natural inner product.  This is the direct
       sum of copies of the field of real numbers indexed by that set.  We call
       it here a "generalized real Euclidean space", but note that it need not
       be complete (for instance if the given set is infinite countable).
       (Contributed by Thierry Arnoux, 16-Jun-2019.) $)
    df-rrx $a |- RR^ = ( i e. _V |-> ( toCHil ` ( RRfld freeLMod i ) ) ) $.

    $( Define a function generating the real Euclidean spaces of finite
       dimension.  The case ` n = 0 ` corresponds to a space of dimension 0,
       that is, limited to a neutral element.  Members of this family of spaces
       are Hilbert spaces, as shown in - ehlhl .  (Contributed by Thierry
       Arnoux, 16-Jun-2019.) $)
    df-ehl $a |- EEhil = ( n e. NN0 |-> ( RR^ ` ( 1 ... n ) ) ) $.
  $}

  ${
    $d f g h x B $.  $d f g h i x I $.  $d f g h x V $.
    rrxval.r $e |- H = ( RR^ ` I ) $.
    $( Value of the generalized Euclidean space.  (Contributed by Thierry
       Arnoux, 16-Jun-2019.) $)
    rrxval $p |- ( I e. V -> H = ( toCHil ` ( RRfld freeLMod I ) ) ) $=
      ( vi wcel crrx cfv crefld cfrlm co ctch cvv wceq elex oveq2 fveq2d df-rrx
      cv fvex fvmpt syl syl5eq ) BCFZABGHZIBJKZLHZDUDBMFUEUGNBCOEBIESZJKZLHUGMG
      UHBNUIUFLUHBIJPQERUFLTUAUBUC $.

    rrxbase.b $e |- B = ( Base ` H ) $.
    $( The base of the generalized real Euclidean space is the set of functions
       with finite support.  (Contributed by Thierry Arnoux, 16-Jun-2019.)
       (Proof shortened by AV, 22-Jul-2019.) $)
    rrxbase $p |- ( I e. V
      -> B = { f e. ( RR ^m I ) | f finSupp 0 } ) $=
      ( wcel cbs cfv crefld cfrlm co cv cc0 cfsupp cr eqid wceq cfield wbr cmap
      crab ctch rrxval fveq2d tchbas syl6eqr a1i refld rebase re0g frlmbas mpan
      3eqtr4d ) DEHZCIJZKDLMZIJZABNOPUABQDUBMUCZUPUQURUDJZIJUSUPCVAICDEFUEUFVAU
      SURVARUSRUGUHAUQSUPGUIKTHUPUTUSSUJUTKBURDQTEOURRUKULUTRUMUNUO $.

    $( Expand the definition of the generalized real Euclidean spaces.
       (Contributed by Thierry Arnoux, 16-Jun-2019.) $)
    rrxprds $p |- ( I e. V -> H = ( toCHil ` ( ( RRfld
      Xs_ ( I X. { ( ( subringAlg ` RRfld ) ` RR ) } ) ) |`s B ) ) ) $=
      ( wcel crefld co ctch cfv cr cress cpws cbs cfield wceq eqid rebase wtru
      cfrlm csra csn cprds rrxval crglmod refld frlmpws mpan fvex rlmval fveq2i
      cxp cvv eqtr4i oveq1i csca ressid ax-mp eqidd wss eqimssi a1i srasca trud
      eqtr3i pwsval eqcomd fveq2d tchbas 3eqtr4g oveq12d eqtr4d eqtrd ) CDGZBHC
      UAIZJKZHCLHUBKZKZUCUMUDIZAMIZJKBCDEUEZVOVPWAJVOVPHUFKZCNIZVPOKZMIZWAHPGZV
      OVPWFQUGWEHVPCPDVPRWERZUHUIVOVTWDAWEMVOWDVTVSUNGVOWDVTQLVRUJVSHCUNDWDWCVS
      CNWCHOKZVRKVSHUKLWIVRSULUOUPHLMIZHVSUQKZWGWJHQUGLHPSURUSWJWKQTVSLHTVSUTLW
      IVATLWISVBVCVDVEVFVGUIVHVOBOKVQOKAWEVOBVQOWBVIFVQWEVPVQRWHVJVKVLVMVIVN $.

    $( The inner product of the generalized real Euclidean spaces.
       (Contributed by Thierry Arnoux, 16-Jun-2019.) $)
    rrxip $p |- ( I e. V -> ( f e. ( RR ^m I ) , g e. ( RR ^m I ) |-> ( RRfld
      gsum ( x e. I |-> ( ( f ` x ) x. ( g ` x ) ) ) ) ) = ( .i ` H ) ) $=
      ( wcel cip cfv crefld cr co eqid cvv wceq cbs a1i csra csn cxp cprds ctch
      cress cmap cv cmul cmpt cgsu cmpt2 rrxprds fveq2d tchip fvex ressip ax-mp
      eqeltri cfield refld snex xpexg mpan2 cdm c0 wne snnz dmxp prdsip prdsbas
      cixp eqidd rebase eqimssi srabase fvconst2 3eqtr4rd adantl ixpeq2dva reex
      wss ixpconstg 3eqtrd cmulr remulr sraip oveqd mpteq2ia oveq2d mpt2eq123dv
      syl5req eqtrd syl5eqr eqtr2d ) FGJZEKLMFNMUALZLZUBZUCZUDOZBUFOZUELZKLZCDN
      FUGOZXEMAFAUHZCUHLZXFDUHLZUIOZUJZUKOZULZWPEXCKBEFGHIUMUNWPXDXBKLZXLXMXCXB
      XCPXMPUOWPXMXAKLZXLBQJXNXMRBESLQIESUPUSBXAXBXNQXBPXNPZUQURWPXNCDXASLZXPMA
      FXGXHXFWTLZKLZOZUJZUKOZULXLWPAXPXAWTMCDXNFUTQXAPZMUTJWPVATZWPWSQJWTQJWRVB
      FWSGQVCVDZXPPZWTVEFRZWPWSVFVGYFWRNWQUPZVHFWSVIURTZXOVJWPCDXPXPYAXEXEXKWPX
      PAFXQSLZVLAFNVLZXEWPAXPXAWTMFUTQYBYCYDYEYHVKWPAFYINXFFJZYINRWPYKMSLZWRSLN
      YIYKWRNMYKWRVMNYLWBYKNYLVNVOTZVPNYLRYKVNTYKXQWRSFWRXFYGVQZUNVRVSVTWPNQJYJ
      XERWAAFNGQWCVDWDZYOWPXTXJMUKXTXJRWPAFXSXIYKXRUIXGXHYKUIMWELXRWFYKXQNMYNYM
      WGWLWHWITWJWKWMWNWNWO $.

    $( The norm of the generalized real Euclidean spaces.  (Contributed by
       Thierry Arnoux, 16-Jun-2019.) $)
    rrxnm $p |- ( I e. V -> ( f e. B |-> ( sqrt ` ( RRfld
      gsum ( x e. I |-> ( ( f ` x ) ^ 2 ) ) ) ) ) = ( norm ` H ) ) $=
      ( vh vg wcel crefld co cfv cbs cv cip wceq eqid wa cfrlm ctch cnm cmpt c2
      csqrt cexp cgsu clmod cgrp crg csr recrng srngring ax-mp frlmlmod lmodgrp
      mpan tchnmfval 3syl rrxval fveq2d tchbas 3eqtr4g cmap cc0 cfsupp wbr crab
      cr rrxbase ssrab2 syl6eqss sselda cmul cvv cmpt2 rrxip tchip a1i 3eqtr4rd
      adantr simprl fveq1d simprr oveq12d cc wf elmapi adantl ffvelrnda adantlr
      recnd sqvald eqtr4d mpteq2dva oveq2d simpr ovexd syldan eqcomd mpteq12dva
      ovmpt2d ) EFKZLEUAMZUBNZUCNZCXEONZCPZXIXEQNZMZUFNZUDZDUCNCBLAEAPZXINZUEUG
      MZUDZUHMZUFNZUDXDXEUIKZXEUJKXGXMRLUKKZXDXTLULKYAUMLUNUOLXEEFXESUPURXEUQCX
      FXJXGXHXEXFSZXGSXHSZXJSZUSUTXDDXFUCDEFGVAZVBXDCBXSXHXLXDDONXFONBXHXDDXFOY
      EVBHXFXHXEYBYCVCVDXDXIBKZTZXRXKUFYGXKXRXDYFXIVJEVEMZKZXKXRRXDBYHXIXDBXIVF
      VGVHZCYHVIYHBCDEFGHVKYJCYHVLVMVNXDYITZIJXIXIYHYHLAEXNIPZNZXNJPZNZVOMZUDZU
      HMZXRXJVPXDXJIJYHYHYRVQZRYIXDDQNXFQNZYSXJXDDXFQYEVBABIJDEFGHVRXJYTRXDXJXF
      XEYBYDVSVTWAWBYKYLXIRZYNXIRZTZTZYQXQLUHUUDAEYPXPUUDXNEKZTZYPXOXOVOMZXPUUD
      YPUUGRUUEUUDYMXOYOXOVOUUDXNYLXIYKUUAUUBWCWDUUDXNYNXIYKUUAUUBWEWDWFWBUUFXO
      YKUUEXOWGKUUCYKUUETXOYKEVJXNXIYIEVJXIWHXDXIVJEWIWJWKWMWLWNWOWPWQXDYIWRZUU
      HYKLXQUHWSXCWTXAVBXBWA $.

    $( Generalized Euclidean real spaces are pre-Hilbert spaces.  (Contributed
       by Thierry Arnoux, 23-Jun-2019.)  (Proof shortened by AV,
       22-Jul-2019.) $)
    rrxcph $p |- ( I e. V -> H e. CPreHil ) $=
      ( vx wcel crefld co cfv cr eqid cmul cc0 refld wceq wa 3adant3 wbr rrxval
      vf cfrlm ctch ccph csca cip cbs ccj c0g rebase remulr re0g refldcj cfield
      a1i cv w3a csn cxp cmpt fconstmpt wfn wral wf frlmbasf ffn syl csupp cdif
      cof csu cgsu simpl simpr frlmipval syl22anc cfsupp cvv ovexd inidm offval
      eqidd ofval ffvelrnda remulcld eqeltrd fmpt2d wfun ffun frlmbasfsupp 0red
      wo wss mul02d suppofss1d fsuppsssupp regsumsupp syl3anc suppssdm syl5sseq
      recnd cdm fdm sstrd sselda syldan sumeq2dv eqtrd simp3 eqtr3d wb cfn ssfi
      fsuppimpd syl2anc msqge0d fsum00 r19.21bi adantlr 3adantl3 mul0ord adantr
      cle mpbid oridm sylib simpl1 suppssr eqeq1d bitrd syl6bb biimpa cun undif
      ssid eleq2d mpan syl5reqr breqtrrd biimpar elun mpjaodan fconstfv fconst2
      ralrimiva c0ex sylbb1 crg cdr ccrg isfld mpbi simpli drngring ax-mp frlm0
      3ad2ant1 3eqtr4a cjre adantl frlmphl ccnfld cress df-refld frlmsca simpr1
      id simpr3 resqrtcld fsumge0 tchcph ) CDHZBICUCJZUDKZUEBCDEUAUVMUBUVNUFKZU
      VOUVNUGKZLUVNUHKZUVNUVOMUVRMZUVPMUVMGLINUBUVQCUIUVNUJKZUVRDUVNOUVNMZUKULU
      VSUVQMZUVTMUMUNIUOHZUVMPUPUVMUBUQZUVRHZUWDUWDUVQJZOQZURZCOUSZUTZGCOVAZUWD
      UVTGCOVBZUWHUWDCVCZGUQZUWDKZOQZGCVDZUWDUWJQZUVMUWEUWMUWGUVMUWERZCLUWDVEZU
      WMUVRIUVNCLDUWDUWAUKUVSVFZCLUWDVGVHZSUWHUWPGCUWHUWNCHZRZUWNUWDUWDNVKZJZOV
      IJZHZUWPUWNCUXGVJZHZUXDUXHRZUWPUWPWMZUWPUXKUWOUWONJZOQZUXLUWHUXHUXNUXCUWH
      UXNGUXGUWHUXGUXMGVLZOQZUXNGUXGVDZUWHUWFUXOOUVMUWEUWFUXOQUWGUWSUWFIUXFVMJZ
      UXOUWSUVMUWCUWEUWEUWFUXRQUVMUWEVNZUWCUWSPUPUVMUWEVOZUXTLINUWDUWDUVQCUVRDU
      OUVNUWAUKULUVSUWBVPVQZUWSUXRUXGUWNUXFKZGVLZUXOUWSCLUXFVEZUXFOVRTZUVMUXRUY
      CQUWSGGCUXMLUXFVSUWSUXCRZUWOUWONVTUWSGCCUWOUWONCUWDUWDDDUXBUXBUXSUXSCWAZU
      YFUWOWCZUYHWBUYFUYBUXMLUWSCCUWOUWONCUWDUWDDDUWNUXBUXBUXSUXSUYGUYHUYHWDZUY
      FUWOUWOUWSCLUWNUWDUXAWEZUYJWFZWGWHZUWSUXFVSHUXFWIZUWDOVRTUXGUWDOVIJZWNZUY
      EUWSUWDUWDUXEVTUWSUYDUYMUYLCLUXFWJVHUVRIUVNCDUWDOUWAUMUVSWKZUWSGCLUWDUWDD
      NOUXSUWSWLUXAUXAUWSUWNLHZRZUWNUYRUWNUWSUYQVOXBWOWPZUWDUXFVSOWQVQUXSGUXFCD
      WRWSUWSUXGUYBUXMGUWSUXHUXCUYBUXMQZUWSUXGCUWNUWSUXGUYNCUYSUWSUWDXCZUYNCUWD
      OWTUWSUWTVUACQUXACLUWDXDVHXAXEZXFZUYIXGXHXIZXISUVMUWEUWGXJXKUVMUWEUXPUXQX
      LUWGUWSUXGUXMGUWSUYNXMHUYOUXGXMHUWSUWDOUYPXOUYSUYNUXGXNXPZUWSUXHUXCUXMLHV
      UCUYKXGZUWSUXHUXCOUXMYDTVUCUYFUWOUYJXQXGZXRSYEXSXTUXDUXNUXLXLUXHUXDUWOUWO
      UXDUWOUVMUWEUXCUWOLHUWGUYJYAXBZVUHYBZYCYEUWPYFZYGUXDUXJUYBOQZUWPUXDCLLUXF
      DUXGUWNOUWHUYDUXCUVMUWEUYDUWGUYLSYCUXGUXGWNUXDUXGYPUPUVMUWEUWGUXCYHUXDWLY
      IUXDVUKUWPUXDVUKUXLUWPUXDVUKUXNUXLUXDUYBUXMOUVMUWEUXCUYTUWGUYIYAYJVUIYKVU
      JYLYMXGUXDUWNUXGUXIYNZHZUXHUXJWMUWHVUMUXCUVMUWEVUMUXCXLUWGUWSVULCUWNUWSUX
      GCWNVULCQVUBUXGCYOYGYQSUUAUWNUXGUXIUUBYGUUCUUFCUWIUWDVEUWMUWQRUWRGCOUWDUU
      DCOUWDUUGUUEUUHXPUVMUWEUVTUWKQUWGUVMUWKUWJUVTUWLIUUIHZUVMUWJUVTQIUUJHZVUN
      VUOIUUKHZUWCVUOVUPRPIUULUUMUUNIUUOUUPIUVNCDOUWAUMUUQYRYSUURUUSUYQUWNUIKUW
      NQUVMUWNUUTUVAUVMUVHUVBUVMUVCLUVDJIUVPUVEUWCUVMIUVPQPIUVNCUODUWAUVFYRYSUW
      BUVMUWDLHZVUQOUWDYDTZURRUWDUVMVUQVUQVURUVGUVMVUQVUQVURUVIUVJUWSOUXRUWFYDU
      WSOUXOUXRYDUWSUXGUXMGVUEVUFVUGUVKVUDYTUYAYTUVLWG $.

    $( The distance over generalized Euclidean spaces.  Compare with ~ df-rrn .
       (Contributed by Thierry Arnoux, 20-Jun-2019.)  (Proof shortened by AV,
       20-Jul-2019.) $)
    rrxds $p |- ( I e. V
      -> ( f e. B , g e. B |-> ( sqrt ` ( RRfld gsum ( x e. I
         |-> ( ( ( f ` x ) - ( g ` x ) ) ^ 2 ) ) ) ) ) = ( dist ` H ) ) $=
      ( vh wcel cfv crefld co c2 cexp cmpt wceq eqid cr cds cfrlm ctch cnm ccom
      csg cv cmin cgsu csqrt cmpt2 rrxval fveq2d clmod cgrp crg recrng srngring
      csr ax-mp frlmlmod mpan lmodgrp tchds 3syl cxp cbs grpsubf cc0 cfsupp wbr
      cmap crab rrxbase rebase re0g frlmbas eqtrd sqxpeqd feq23d mpbird fovrnda
      wf wfn ffn syl fnov sylib rrxnm eqtr2d oveq1d mpteq2dv oveq2d fmpt2co w3a
      fveq1 wa cof simp1 simprl adantr eleqtrd frlmbasmap syl2anc elmapi simprr
      3impb inidm eqidd simpl frlmsubgval ffvelrnda resubgval mpteq2dva 3eqtr4d
      offval a1i resubcld fvmpt2d mpt2eq3dva 3eqtr2rd ) FGKZEUALMFUBNZUCLZUALZY
      DUDLZYCUFLZUEZCDBBMAFAUGZCUGZLZYIDUGZLZUHNZOPNZQZUINZUJLZUKZYBEYDUAEFGHUL
      ZUMYBYCUNKZYCUOKZYHYERMUPKZYBUUAMUSKUUCUQMURUTZMYCFGYCSZVAVBZYCVCZYDYGYFY
      CYDSYFSYGSZVDVEYBYHCDBBMAFYIYJYLYGNZLZOPNZQZUINZUJLZUKYSYBCDJBBBUUIMAFYIJ
      UGZLZOPNZQZUINZUJLZUUNYGYFYBYJYLBBBYGYBBBVFZBYGWCZYCVGLZUVCVFZUVCYGWCZYBU
      UAUUBUVEUUFUUGUVCYCYGUVCSZUUHVHVEYBUVABUVDUVCYGYBBUVCYBBUUOVIVJVKJTFVLNZV
      MZUVCBJEFGHIVNUUCYBUVHUVCRUUDUVHMJYCFTUPGVIUUEVOVPUVHSVQVBVRZVSUVIVTWAZWB
      YBYGUVAWDZYGCDBBUUIUKRYBUVBUVKUVJUVABYGWEWFCDBBYGWGWHYBJBUUTQEUDLYFABJEFG
      HIWIYBEYDUDYTUMWJUUOUUIRZUUSUUMUJUVLUURUULMUIUVLAFUUQUUKUVLUUPUUJOPYIUUOU
      UIWPWKWLWMUMWNYBCDBBUUNYRYBYJBKZYLBKZWOZUUMYQUJUVOUULYPMUIUVOAFUUKYOUVOYI
      FKWQZUUJYNOPUVOAFYNUUITUVOYJYLMUFLZWRNZAFYKYMUVQNZQUUIAFYNQUVOAFFYKYMUVQF
      YJYLGGUVOFTYJWCZYJFWDUVOYJUVGKZUVTUVOYBYJUVCKZUWAYBUVMUVNWSZYBUVMUVNUWBYB
      UVMUVNWQZWQZYJBUVCYBUVMUVNWTYBBUVCRUWDUVIXAZXBZXGUVCMYCFTGYJUUEVOUVFXCXDY
      JTFXEWFZFTYJWEWFUVOFTYLWCZYLFWDUVOYLUVGKZUWIUVOYBYLUVCKZUWJUWCYBUVMUVNUWK
      UWEYLBUVCYBUVMUVNXFUWFXBZXGUVCMYCFTGYLUUEVOUVFXCXDYLTFXEWFZFTYLWEWFUWCUWC
      FXHUVPYKXIUVPYMXIXPYBUVMUVNUUIUVRRUWEUVCMYJYLFYGUVQGYCUUEUVFUUCUWEUUDXQYB
      UWDXJUWGUWLUVQSZUUHXKXGUVOAFYNUVSUVPYKTKYMTKYNUVSRUVOFTYIYJUWHXLZUVOFTYIY
      LUWMXLZUVQYKYMUWNXMXDXNXOUVPYKYMUWOUWPXRXSWKXNWMUMXTVRYA $.
  $}

  ${
    $d k x A $.  $d x B $.  $d x C $.  $d k x ph $.
    csbrn.1 $e |- ( ph -> A e. Fin ) $.
    csbrn.2 $e |- ( ( ph /\ k e. A ) -> B e. RR ) $.
    csbrn.3 $e |- ( ( ph /\ k e. A ) -> C e. RR ) $.
    $( Cauchy-Schwarz-Bunjakovsky inequality for R^n.  (Contributed by Jeff
       Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 4-Jun-2014.) $)
    csbren $p |- ( ph -> ( sum_ k e. A ( B x. C ) ^ 2 ) <_
                        ( sum_ k e. A ( B ^ 2 ) x. sum_ k e. A ( C ^ 2 ) ) ) $=
      ( cmul co csu c2 cexp cle c4 wcel recnd cr caddc adantlr vx wbr cc 2cn cv
      wceq wa remulcld fsumrecl sqmul sylancr sq2 oveq1i syl6eq cc0 resqcld 2re
      cmin remulcl cfn adantr simplr sqge0d binom2 syl2anc sqmuld mul32d oveq2d
      readdcld 2cnd mulassd eqtr4d oveq12d oveq1d eqtrd breqtrd fsumge0 fsumadd
      addcld simpr sqcld fsummulc1 fsummulc2 discr 4re suble0d eqbrtrrd clt a1i
      mpbid wb 4pos lemul2 syl112anc mpbird ) ABCDIJZEKZLMJZBCLMJZEKZBDLMJZEKZI
      JZNUBZOWRIJZOXCIJZNUBZALWQIJZLMJZXEXFNAXILLMJZWRIJZXEALUCPWQUCPXIXKUFUDAW
      QABWPEFAEUEBPZUGZCDGHUHZUIZQLWQUJUKXJOWRIULUMUNAXIXFURJUONUBXIXFNUBAUAWTX
      HXBABWSEFXMCGUPZUIZALRPZWQRPXHRPUQXOLWQUSUKZABXAEFXMDHUPZUIZAUAUEZRPZUGZU
      OBWSYBLMJZIJZLWPIJZYBIJZSJZXASJZEKZWTYEIJZXHYBIJZSJZXBSJZNYDBYJEABUTPYCFV
      AZYDXLUGZYIXAYQYFYHYQWSYEAXLWSRPYCXPTZYQYBAYCXLVBZUPUHZYQYGYBAXLYGRPZYCXM
      XRWPRPZUUAUQXNLWPUSUKZTYSUHZVIAXLXARPYCXTTZVIYQUOCYBIJZDSJZLMJZYJNYQUUGYQ
      UUFDYQCYBAXLCRPYCGTZYSUHZAXLDRPYCHTZVIVCYQUUHUUFLMJZLUUFDIJZIJZSJZXASJZYJ
      YQUUFUCPDUCPUUHUUPUFYQUUFUUJQYQDUUKQZUUFDVDVEYQUUOYIXASYQUULYFUUNYHSYQCYB
      YQCUUIQZYQYBYSQZVFYQUUNLWPYBIJZIJYHYQUUMUUTLIYQCYBDUURUUSUUQVGVHYQLWPYBYQ
      VJYQWPAXLUUBYCXNTQZUUSVKVLVMVNVOVPVQYDYKBYIEKZXBSJYOYDBYIXAEYPYQYFYHYQYFY
      TQZYQYHUUDQZVSYQXAUUEQVRYDUVBYNXBSYDUVBBYFEKZBYHEKZSJYNYDBYFYHEYPUVCUVDVR
      YDYLUVEYMUVFSYDBWSYEEYPYDYBYDYBAYCVTQZWAYQWSYRQWBYDYMBYGEKZYBIJUVFYDXHUVH
      YBIYDBWPLEYPYDVJUVAWCVNYDBYGYBEYPUVGAXLYGUCPYCXMYGUUCQTWBVOVMVLVNVOVPWDAX
      IXFAXHXSUPAORPZXCRPZXFRPWEAWTXBXQYAUHZOXCUSUKWFWJWGAWRRPUVJUVIUOOWHUBZXDX
      GWKAWQXOUPUVKUVIAWEWIUVLAWLWIWRXCOWMWNWO $.

    $( Triangle inequality in R^n.  (Contributed by Jeff Madsen, 2-Sep-2009.)
       (Revised by Mario Carneiro, 4-Jun-2014.) $)
    trirn $p |- ( ph -> ( sqrt ` sum_ k e. A ( ( B + C ) ^ 2 ) ) <_
   ( ( sqrt ` sum_ k e. A ( B ^ 2 ) ) + ( sqrt ` sum_ k e. A ( C ^ 2 ) ) ) ) $=
      ( caddc co c2 cexp csu cle wbr cmul wcel cr recnd wceq cfv cv resqcld 2re
      csqrt remulcld remulcl sylancr readdcld fsumrecl sqge0d fsumge0 resqrtcld
      mulge0d fsumadd 2cnd fsummulc2 cabs abscld leabsd csbren absresq resqrtth
      syl cc0 syl2anc 3brtr4d absge0d sqrtge0d le2sqd mpbird letrd clt a1i 2pos
      wa wb lemul2 syl112anc mpbid eqbrtrrd leadd2dd eqbrtrd leadd1dd cc binom2
      sumeq2dv eqtrd sqrtmuld eqcomd oveq2d oveq12d addge0d ) ABCDIJZKLJZEMZUEU
      AZBCKLJZEMZUEUAZBDKLJZEMZUEUAZIJZNOWQKLJZXDKLJZNOABWRKCDPJZPJZIJZEMZXBIJZ
      WSKWSXBPJZUEUAZPJZIJZXBIJZXEXFNAXJXOXBABXIEFAEUBBQVPZWRXHXQCGUCZXQKRQZXGR
      QXHRQUDXQCDGHUFZKXGUGUHZUIZUJAWSXNABWREFXRUJZAXSXMRQZXNRQUDAXLAWSXBYCABXA
      EFXQDHUCZUJZUFZAWSXBYCYFABWREFXRXQCGUKULZABXAEFYEXQDHUKULZUNZUMZKXMUGUHZU
      IYFAXJWSBXHEMZIJXONABWRXHEFXQWRXRSXQXHYASUOAYMXNWSABXHEFYAUJYLYCAKBXGEMZP
      JZYMXNNABXGKEFAUPXQXGXTSUQAYNXMNOZYOXNNOZAYNYNURUAZXMABXGEFXTUJZAYNAYNYSS
      ZUSZYKAYNYSUTAYRXMNOYRKLJZXMKLJZNOAYNKLJZXLUUBUUCNABCDEFGHVAAYNRQZUUBUUDT
      YSYNVBVDAXLRQVEXLNOUUCXLTYGYJXLVCVFVGAYRXMUUAYKAYNYTVHAXLYGYJVIVJVKVLAUUE
      YDXSVEKVMOZYPYQVQYSYKXSAUDVNUUFAVOVNYNXMKVRVSVTWAWBWCWDAXEWPXKAWPRQVEWPNO
      XEWPTABWOEFXQWNXQCDGHUIZUCZUJZABWOEFUUHXQWNUUGUKULZWPVCVFAWPBXIXAIJZEMXKA
      BWOUUKEXQCWEQDWEQWOUUKTXQCGSXQDHSCDWFVFWGABXIXAEFXQXIYBSXQXAYESUOWHWHAXFW
      TKLJZKWTXCPJZPJZIJZXCKLJZIJZXPAWTWEQXCWEQXFUUQTAWTAWSYCYHUMZSAXCAXBYFYIUM
      ZSWTXCWFVFAUUOXOUUPXBIAUULWSUUNXNIAWSRQVEWSNOUULWSTYCYHWSVCVFAUUMXMKPAXMU
      UMAWSXBYCYHYFYIWIWJWKWLAXBRQVEXBNOUUPXBTYFYIXBVCVFWLWHVGAWQXDAWPUUIUUJUMA
      WTXCUURUUSUIAWPUUIUUJVIAWTXCUURUUSAWSYCYHVIAXBYFYIVIWMVJVK $.
  $}

  ${
    $d A k $.  $d D f g x y z $.  $d F f g h k x $.  $d G f g h k x $.
    $d I f g h k x y z $.  $d V f g h k x y z $.  $d X f g k x y z $.
    rrxmval.1 $e |- X = { h e. ( RR ^m I ) | h finSupp 0 } $.
    ${
      rrxf.1 $e |- ( ph -> F e. X ) $.
      $( Euclidean vectors as functions.  (Contributed by Thierry Arnoux,
         7-Jul-2019.) $)
      rrxf $p |- ( ph -> F : I --> RR ) $=
        ( cr cmap co wcel wf cv cc0 cfsupp wbr crab ssrab2 eqsstri sseldi syl
        elmapi ) ACHDIJZKDHCLAEUCCEBMNOPZBUCQUCFUDBUCRSGTCHDUBUA $.

      $( Euclidean vectors are of finite support.  (Contributed by Thierry
         Arnoux, 7-Jul-2019.) $)
      rrxfsupp $p |- ( ph -> ( F supp 0 ) e. Fin ) $=
        ( cc0 cr cmap co wcel cfsupp wbr cv crab wa syl6eleq breq1 elrab simprd
        sylib fsuppimpd ) ACHACIDJKZLZCHMNZACBOZHMNZBUDPZLUEUFQACEUIGFRUHUFBCUD
        UGCHMSTUBUAUC $.

      $( Support of Euclidean vectors.  (Contributed by Thierry Arnoux,
         7-Jul-2019.) $)
      rrxsuppss $p |- ( ph -> ( F supp 0 ) C_ I ) $=
        ( cdm cc0 csupp co suppssdm cr wf wceq rrxf fdm syl syl5sseq ) ACHZCIJK
        DCILADMCNTDOABCDEFGPDMCQRS $.
    $}

    $( Support of the function used for building the distance .  (Contributed
       by Thierry Arnoux, 30-Jun-2019.) $)
    rrxmvallem $p |- ( ( I e. V /\ F e. X /\ G e. X ) ->
        ( ( k e. I |-> ( ( ( F ` k ) - ( G ` k ) ) ^ 2 ) ) supp 0 )
      C_ ( ( F supp 0 ) u. ( G supp 0 ) ) ) $=
      ( vx wcel cfv co c2 cexp cc0 crab wa wceq cc cr w3a cv cmin wne cun csupp
      cmpt wo wn simprl 0cn syl6eqel simprr eqtr4d subeq0bd sq0id ex wb anbi12i
      ioran nne bitri a1i eqidd fveq2d oveq12d oveq1d ovex fvmptd neeq1d bicomd
      simpr necon1bbid 3imtr4d con4d ss2rabdv unrab syl6sseqr simp1 eqid fnmpti
      cvv wfn suppvalfn mp3an13 syl cmap wf cfsupp wbr elrabi eleq2s elmapi ffn
      3syl 3ad2ant2 syl3anc 3ad2ant3 uneq12d 3sstr4d ) EFJZCGJZDGJZUAZIUBZBEBUB
      ZCKZXFDKZUCLZMNLZUGZKZOUDZIEPZXECKZOUDZIEPZXEDKZOUDZIEPZUEZXKOUFLZCOUFLZD
      OUFLZUEXDXNXPXSUHZIEPYAXDXMYEIEXDXEEJZQZYEXMYGXOORZXRORZQZXOXRUCLZMNLZORZ
      YEUIZXMUIYGYJYMYGYJQZYKYOXOXRYOXOOSYGYHYIUJZUKULYOXOOXRYPYGYHYIUMUNUOUPUQ
      YNYJURYGYNXPUIZXSUIZQYJXPXSUTYQYHYRYIXOOVAXROVAUSVBVCYGXMYLOYGXMYLOUDYGXL
      YLOYGBXEXJYLEXKWBYGXKVDYGXFXERZQZXIYKMNYTXGXOXHXRUCYTXFXECYGYSVLZVEYTXFXE
      DUUAVEVFVGXDYFVLYLWBJYGYKMNVHVCVIVJVKVMVNVOVPXPXSIEVQVRXDXAYBXNRZXAXBXCVS
      ZXKEWCXAOSJZUUBBEXJXKXIMNVHXKVTWAUKIXKFSEOWDWEWFXDYCXQYDXTXDCEWCZXAUUDYCX
      QRXBXAUUEXCXBCTEWGLZJZETCWHUUEUUGCAUBOWIWJZAUUFPZGUUHACUUFWKHWLCTEWMETCWN
      WOWPUUCUUDXDUKVCZICFSEOWDWQXDDEWCZXAUUDYDXTRXCXAUUKXBXCDUUFJZETDWHUUKUULD
      UUIGUUHADUUFWKHWLDTEWMETDWNWOWRUUCUUJIDFSEOWDWQWSWT $.

    rrxmval.d $e |- D = ( dist ` ( RR^ ` I ) ) $.
    $( The value of the Euclidean metric.  Compare with ~ rrnmval .
       (Contributed by Thierry Arnoux, 30-Jun-2019.) $)
    rrxmval $p |- ( ( I e. V /\ F e. X /\ G e. X ) -> ( F D G ) =
        ( sqrt ` sum_ k e. ( ( F supp 0 ) u. ( G supp 0 ) )
        ( ( ( F ` k ) - ( G ` k ) ) ^ 2 ) ) ) $=
      ( vf vg vx wcel cfv co c2 cc0 wceq cr crefld cv cmin cexp cmpt cgsu csqrt
      w3a csupp cun csu cvv cmpt2 crrx cbs eqid rrxds syl6reqr cfsupp cmap crab
      cds wbr rrxbase mpt2eq12 syl2anc eqtr4d 3ad2ant1 wa simprl fveq1d oveq12d
      simprr oveq1d mpteq2dv oveq2d simp2 rrxf ffvelrnda simp3 resubcld resqcld
      fmptd cfn wss rrxfsupp unfi rrxmvallem ssfi mptexg wfun funmpt funisfsupp
      wf wb cc 0cn mp3an13 syl mpbird simp1 regsumsupp syl3anc suppssdm dmmptss
      cdm sstri a1i sselda eqidd simpr fveq2d ovexd fvmptd eqcomd syldan adantr
      sumeq2dv recnd subcld sqcld cdif rrxsuppss unssd ssdifd ssid 0cnd suppssr
      ssdifssd eqtrd fsumss 3eqtrd fvexd ovmpt2d ) FGNZDHNZEHNZUHZKLDEHHUAMFMUB
      ZKUBZOZYSLUBZOZUCPZQUDPZUEZUFPZUGOZDRUIPZERUIPZUJZCUBZDOZUULEOZUCPZQUDPZC
      UKZUGOAULYOYPAKLHHUUHUMZSYQYOAKLFUNOZUOOZUUTUUHUMZUURYOUVAUUSVBOAMUUTKLUU
      SFGUUSUPZUUTUPZUQJURYOHUUTSZUVDUURUVASYOUUTBUBRUSVCBTFUTPVAHUUTBUUSFGUVBU
      VCVDIURZUVEKLHHUUTUUTUUHVEVFVGVHYRYTDSZUUBESZVIZVIZUUGUUQUGUVIUUGUAMFYSDO
      ZYSEOZUCPZQUDPZUEZUFPZUVNRUIPZUUPCUKZUUQUVIUUFUVNUAUFUVIMFUUEUVMUVIUUDUVL
      QUDUVIUUAUVJUUCUVKUCUVIYSYTDYRUVFUVGVJVKUVIYSUUBEYRUVFUVGVMVKVLVNVOVPYRUV
      OUVQSUVHYRUVOUVPUULUVNOZCUKZUVQYRFTUVNWNUVNRUSVCZYOUVOUVSSYRMFUVMTUVNYRYS
      FNVIZUVLUWAUVJUVKYRFTYSDYRBDFHIYOYPYQVQZVRZVSYRFTYSEYRBEFHIYOYPYQVTZVRZVS
      WAWBUVNUPZWCZYRUVTUVPWDNZYRUUKWDNZUVPUUKWEUWHYRUUIWDNUUJWDNUWIYRBDFHIUWBW
      FYRBEFHIUWDWFUUIUUJWGVFZBMDEFGHIWHZUUKUVPWIVFYOYPUVTUWHWOZYQYOUVNULNZUWLM
      FUVMGWJUVNWKUWMRWPNUWLMFUVMWLWQUVNULWPRWMWRWSVHWTYOYPYQXAZCUVNFGXBXCYRUVP
      UUPUVRCYRUULUVPNZUULFNZUUPUVRSZYRUVPFUULUVPFWEYRUVPUVNXFFUVNRXDMFUVMUVNUW
      FXEXGXHXIZYRUWPVIZUVRUUPUWSMUULUVMUUPFUVNULUWSUVNXJUWSYSUULSZVIZUVLUUOQUD
      UXAUVJUUMUVKUUNUCUXAYSUULDUWSUWTXKZXLUXAYSUULEUXBXLVLVNYRUWPXKUWSUUOQUDXM
      XNXOZXPXRVGXQYRUVQUUQSUVHYRUVPUUKUUPCUWKYRUWOUWPUUPWPNUWRUWSUUOUWSUUMUUNU
      WSUUMYRFTUULDUWCVSXSUWSUUNYRFTUULEUWEVSXSXTYAXPYRUULUUKUVPYBZNZVIUUPUVRRY
      RUXEUWPUWQYRUXDFUULYRUUKFUVPYRUUIUUJFYRBDFHIUWBYCYRBEFHIUWDYCYDZYIXIUXCXP
      YRUXEUULFUVPYBZNUVRRSYRUXDUXGUULYRUUKFUVPUXFYEXIYRFTWPUVNGUVPUULRUWGUVPUV
      PWEYRUVPYFXHUWNYRYGYHXPYJUWJYKXQYLXLUWBUWDYRUUQUGYMYN $.

    $( The value of the Euclidean metric.  Compare with ~ rrnval .
       (Contributed by Thierry Arnoux, 30-Jun-2019.) $)
    rrxmfval $p |- ( I e. V -> D = ( f e. X , g e. X |->
        ( sqrt ` sum_ k e. ( ( f supp 0 ) u. ( g supp 0 ) )
        ( ( ( f ` k ) - ( g ` k ) ) ^ 2 ) ) ) ) $=
      ( vx cv co cmpt2 cc0 csupp cfv cmin csqrt eqid wcel cun cexp csu cxp wceq
      c2 wfn crrx cbs crefld cmpt cgsu fnmpt2i cds rrxds syl6reqr cfsupp wbr cr
      fvex cmap crab rrxbase sqxpeqd fneq12d mpbiri fnov sylib mpt2eq3dva eqtrd
      rrxmval ) FGUAZABCHHBLZCLZAMZNZBCHHVNOPMVOOPMUBELZVNQVRVOQRMUGUCMEUDSQZNV
      MAHHUEZUHZAVQUFVMWABCFUIQZUJQZWCUKKFKLZVNQWDVOQRMUGUCMULUMMZSQZNZWCWCUEZU
      HBCWCWCWFWGWGTWESVAUNVMVTWHAWGVMWGWBUOQAKWCBCWBFGWBTZWCTZUPJUQVMHWCVMWCDL
      OURUSDUTFVBMVCHWCDWBFGWIWJVDIUQVEVFVGBCHHAVHVIVMBCHHVPVSADEVNVOFGHIJVLVJV
      K $.

    ${
      $d ph k $.
      rrxmetlem.1 $e |- ( ph -> I e. V ) $.
      rrxmetlem.2 $e |- ( ph -> F e. X ) $.
      rrxmetlem.3 $e |- ( ph -> G e. X ) $.
      rrxmetlem.4 $e |- ( ph -> A C_ I ) $.
      rrxmetlem.5 $e |- ( ph -> A e. Fin ) $.
      rrxmetlem.6 $e |- ( ph -> ( ( F supp 0 ) u. ( G supp 0 ) ) C_ A ) $.
      $( Lemma for ~ rrxmet .  (Contributed by Thierry Arnoux, 5-Jul-2019.) $)
      rrxmetlem $p |- ( ph -> sum_ k e. ( ( F supp 0 ) u. ( G supp 0 ) )
        ( ( ( F ` k ) - ( G ` k ) ) ^ 2 )
        = sum_ k e. A ( ( ( F ` k ) - ( G ` k ) ) ^ 2 ) ) $=
        ( cc0 wcel csupp co cun cv cmin c2 cexp wa cc sstrd sselda cr ffvelrnda
        cfv rrxf recnd syldan subcld sqcld cdif wceq ssdifd simpr eldifad ssun1
        wss a1i 0red suppssr ssun2 eqtr4d subeq0bd sq0id fsumss ) AFSUAUBZGSUAU
        BZUCZBEUDZFUNZVRGUNZUEUBZUFUGUBZERAVRVQTZUHZWAWDVSVTAWCVRHTZVSUITZAVQHV
        RAVQBHRPUJUKZAWEUHZVSAHULVRFADFHJKNUOZUMUPZUQAWCWEVTUITWGWHVTAHULVRGADG
        HJKOUOZUMUPUQURUSAVRBVQUTZTVRHVQUTZTZWBSVAAWLWMVRABHVQPVBUKAWNUHZWAWOVS
        VTAWNWEWFWOVRHVQAWNVCVDWJUQWOVSSVTAHULULFIVQVRSWIVOVQVFAVOVPVEVGMAVHZVI
        AHULULGIVQVRSWKVPVQVFAVPVOVJVGMWPVIVKVLVMUQQVN $.
    $}

    $( Euclidean space is a metric space.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Proof shortened by Mario Carneiro, 5-Jun-2014.)  (Revised
       by Thierry Arnoux, 30-Jun-2019.) $)
    rrxmet $p |- ( I e. V -> D e. ( Met ` X ) ) $=
      ( vx vy vk wcel cr co cc0 wceq caddc wral wa cfv csqrt vz cxp cle wbr cme
      wf cv wb csupp cun cmin c2 cexp csu cmpt2 cfn simprl rrxfsupp simprr unfi
      syl2anc rrxsuppss unssd sselda ffvelrnda resubcld resqcld syldan fsumrecl
      rrxf sqge0d fsumge0 resqrtcld ralrimivva eqid fmpt2 sylib rrxmfval mpbird
      feq1d sqrt00 fsum00 cc recnd sqeq0 subeq0ad bitrd ralbidva 3bitrd rrxmval
      syl 3expb eqeq1d wfn ffnd eqfnfv cdif wss ssun1 simpl 0red suppssr eqtr4d
      a1i ssun2 ralrimiva raldifeq bitr4d 3bitr4d w3a 3adant2 simp2 3expa an32s
      adantr simpr adantlr trirn npncand oveq1d sumeq2dv fveq2d sqsubswap simp1
      3brtr3d rrxmetlem eqtrd 3adant3r 3adant3l oveq12d 3brtr4d jca cfsupp cmap
      sstri cvv ovex rabex2 ismet ax-mp sylanbrc ) CDKZEEUBZLAUFZHUGZIUGZAMZNOZ
      UUEUUFOZUHZUUGUAUGZUUEAMZUUKUUFAMZPMZUCUDZUAEQZRZIEQHEQZAEUESKZUUBUUDUUCL
      HIEEUUENUIMZUUFNUIMZUJZJUGZUUESZUVCUUFSZUKMZULUMMZJUNZTSZUOZUFZUUBUVILKZI
      EQHEQUVKUUBUVLHIEEUUBUUEEKZUUFEKZRZRZUVHUVPUVBUVGJUVPUUTUPKUVAUPKUVBUPKZU
      VPBUUECEFUUBUVMUVNUQZURUVPBUUFCEFUUBUVMUVNUSZURUUTUVAUTVAZUVPUVCUVBKZUVCC
      KZUVGLKUVPUVBCUVCUVPUUTUVACUVPBUUECEFUVRVBUVPBUUFCEFUVSVBVCZVDZUVPUWBRZUV
      FUWEUVDUVEUVPCLUVCUUEUVPBUUECEFUVRVJZVEZUVPCLUVCUUFUVPBUUFCEFUVSVJZVEZVFZ
      VGVHZVIZUVPUVBUVGJUVTUWKUVPUWAUWBNUVGUCUDUWDUWEUVFUWJVKVHZVLZVMVNHIEEUVIL
      UVJUVJVOVPVQUUBUUCLAUVJAHIBJCDEFGVRVTVSUUBUUQHIEEUVPUUJUUPUVPUVINOZUVDUVE
      OZJUVBQZUUHUUIUVPUWOUVHNOZUVGNOZJUVBQUWQUVPUVHLKNUVHUCUDUWOUWRUHUWLUWNUVH
      WAVAUVPUVBUVGJUVTUWKUWMWBUVPUWSUWPJUVBUVPUWAUWBUWSUWPUHUWDUWEUWSUVFNOZUWP
      UWEUVFWCKUWSUWTUHUWEUVFUWJWDUVFWEWKUWEUVDUVEUWEUVDUWGWDZUWEUVEUWIWDZWFWGV
      HWHWIUVPUUGUVINUUBUVMUVNUUGUVIOZABJUUEUUFCDEFGWJWLZWMUVPUUIUWPJCQZUWQUVPU
      UECWNUUFCWNUUIUXEUHUVPCLUUEUWFWOUVPCLUUFUWHWOJCUUEUUFWPVAUVPUWPJUVBCUWCUV
      PUWPJCUVBWQZUVPUVCUXFKRUVDNUVEUVPCLLUUEDUVBUVCNUWFUUTUVBWRUVPUUTUVAWSZXDU
      UBUVOWTZUVPXAZXBUVPCLLUUFDUVBUVCNUWHUVAUVBWRUVPUVAUUTXEZXDUXHUXIXBXCXFXGX
      HXIUVPUUOUAEUVPUUKEKZRZUVBUUKNUIMZUJZUVGJUNZTSZUXNUVCUUKSZUVDUKMULUMMZJUN
      ZTSZUXNUXQUVEUKMZULUMMZJUNZTSZPMZUUGUUNUCUXLUXNUVDUXQUKMZUYAPMZULUMMZJUNZ
      TSUXNUYFULUMMZJUNZTSZUYDPMUXPUYEUCUXLUXNUYFUYAJUUBUXKUVOUXNUPKZUUBUXKUVOU
      YMUUBUXKUVOXJZUVQUXMUPKUYMUUBUVOUVQUXKUVTXKUYNBUUKCEFUUBUXKUVOXLZURUVBUXM
      UTVAZXMXNUXLUVCUXNKZUWBUYFLKUXLUXNCUVCUXLUVBUXMCUVPUVBCWRUXKUWCXOUXLBUUKC
      EFUVPUXKXPZVBVCVDZUXLUWBRZUVDUXQUVPUWBUVDLKUXKUWGXQUXLCLUVCUUKUXLBUUKCEFU
      YRVJVEZVFVHUXLUYQUWBUYALKUYSUYTUXQUVEVUAUVPUWBUVELKUXKUWIXQVFVHXRUXLUYIUX
      OTUXLUXNUYHUVGJUXLUYQUWBUYHUVGOUYSUYTUYGUVFULUMUYTUVDUXQUVEUVPUWBUVDWCKZU
      XKUXAXQZUYTUXQVUAWDZUVPUWBUVEWCKUXKUXBXQXSXTVHYAYBUXLUYLUXTUYDPUXLUYKUXST
      UXLUXNUYJUXRJUXLUYQUWBUYJUXROZUYSUYTVUBUXQWCKVUEVUCVUDUVDUXQYCVAVHYAYBXTY
      EUXLUUGUVIUXPUVPUXCUXKUXDXOUUBUXKUVOUVIUXPOZUUBUXKUVOVUFUYNUVHUXOTUYNUXNA
      BJUUEUUFCDEFGUUBUXKUVOYDZUUBUVOUVMUXKUVRXKZUUBUVOUVNUXKUVSXKZUYNUVBUXMCUY
      NUUTUVACUYNBUUECEFVUHVBUYNBUUFCEFVUIVBVCUYNBUUKCEFUYOVBVCZUYPUVBUXNWRUYNU
      VBUXMWSZXDYFYBXMXNYGUUBUXKUVOUUNUYEOZUUBUXKUVOVULUYNUUNUXMUUTUJUXRJUNZTSZ
      UXMUVAUJUYBJUNZTSZPMUYEUYNUULVUNUUMVUPPUUBUXKUVMUULVUNOUVNABJUUKUUECDEFGW
      JYHUUBUXKUVNUUMVUPOUVMABJUUKUUFCDEFGWJYIYJUYNVUNUXTVUPUYDPUYNVUMUXSTUYNUX
      NABJUUKUUECDEFGVUGUYOVUHVUJUYPUYNUXMUUTUXNUXMUXNWRUYNUXMUVBXEXDZUUTUXNWRU
      YNUUTUVBUXNUXGVUKYOXDVCYFYBUYNVUOUYCTUYNUXNABJUUKUUFCDEFGVUGUYOVUIVUJUYPU
      YNUXMUVAUXNVUQUVAUXNWRUYNUVAUVBUXNUXJVUKYOXDVCYFYBYJYGXMXNYKXFYLVNEYPKUUS
      UUDUURRUHBUGNYMUDBLCYNMEFLCYNYQYRHIUAYPAEYSYTUUA $.

    rrxdstprj1.1 $e |- M = ( ( abs o. - ) |` ( RR X. RR ) ) $.
    $( The distance between two points in Euclidean space is greater than the
       distance between the projections onto one coordinate.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 13-Sep-2015.)
       (Revised by Thierry Arnoux, 7-Jul-2019.) $)
    rrxdstprj1 $p |- ( ( ( I e. V /\ A e. I ) /\ ( F e. X /\ G e. X
                    ) ) -> ( ( F ` A ) M ( G ` A ) ) <_ ( F D G ) ) $=
      ( wcel wa cc0 co cfv cle cr wceq vk csupp cun wbr cdif simplll simpr cmin
      simplr cabs cv c2 cexp csu csqrt simprl rrxfsupp simprr syl2anc rrxsuppss
      cfn unfi unssd sselda rrxf ffvelrnda resubcld resqcld syldan sqge0d fveq2
      oveq12d oveq1d fsumge1 ffvelrnd absresq fsumrecl fsumge0 resqrtth 3brtr4d
      sseldd syl recnd abscld resqrtcld absge0d le2sqd mpbird remetdval rrxmval
      sqrtge0d 3expb adantlr syl21anc simplrl wss ssun1 a1i sscond ssid suppssr
      simpl 0red eqeltrd simplrr ssun2 0m0e0 syl6eq abs00bd eqtrd cme ad3antrrr
      rrxmet metge0 syl3anc eqbrtrd wo undif sylib eleqtrrd elun mpjaodan ) FHM
      ZAFMZNZDIMZEIMZNZNZADOUBPZEOUBPZUCZMZADQZAEQZGPZDEBPZRUDZAFYLUEZMZYIYMNYC
      YMYHYRYCYDYHYMUFYIYMUGYEYHYMUIYCYMNZYHNZYNYOUHPZUJQZYLUAUKZDQZUUEEQZUHPZU
      LUMPZUAUNZUOQZYPYQRUUBUUDUUKRUDUUDULUMPZUUKULUMPZRUDUUBUUCULUMPZUUJUULUUM
      RUUBYLUUIUUNUAAUUBYJVAMYKVAMYLVAMUUBCDFIJUUAYFYGUPZUQUUBCEFIJUUAYFYGURZUQ
      YJYKVBUSZUUBUUEYLMZUUEFMZUUISMUUBYLFUUEUUBYJYKFUUBCDFIJUUOUTUUBCEFIJUUPUT
      VCZVDZUUBUUSNZUUHUVBUUFUUGUUBFSUUEDUUBCDFIJUUOVEZVFUUBFSUUEEUUBCEFIJUUPVE
      ZVFVGZVHVIZUUBUURUUSOUUIRUDUVAUVBUUHUVEVJVIZUUEATZUUHUUCULUMUVHUUFYNUUGYO
      UHUUEADVKUUEAEVKVLVMYCYMYHUIZVNUUBUUCSMUULUUNTUUBYNYOUUBFSADUVCUUBYLFAUUT
      UVIWAZVOZUUBFSAEUVDUVJVOZVGZUUCVPWBUUBUUJSMOUUJRUDUUMUUJTUUBYLUUIUAUUQUVF
      VQZUUBYLUUIUAUUQUVFUVGVRZUUJVSUSVTUUBUUDUUKUUBUUCUUBUUCUVMWCZWDUUBUUJUVNU
      VOWEUUBUUCUVPWFUUBUUJUVNUVOWKWGWHUUBYNSMZYOSMZYPUUDTZUVKUVLYNYOGLWIZUSYCY
      HYQUUKTZYMYCYFYGUWABCUADEFHIJKWJWLWMVTWNYIYTNZYPOYQRUWBYPUUDOUWBUVQUVRUVS
      UWBYNOSUWBYCYFAFYJUEZMYNOTYCYDYHYTUFZYEYFYGYTWOZYIYSUWCAYIYJYLFYJYLWPYIYJ
      YKWQWRWSVDYCYFNZFSSDHYJAOUWFCDFIJYCYFUGVEYJYJWPUWFYJWTWRYCYFXBUWFXCXAWNZU
      WBXCZXDUWBYOOSUWBYCYGAFYKUEZMYOOTUWDYEYFYGYTXEZYIYSUWIAYIYKYLFYKYLWPYIYKY
      JXFWRWSVDYCYGNZFSSEHYKAOUWKCEFIJYCYGUGVEYKYKWPUWKYKWTWRYCYGXBUWKXCXAWNZUW
      HXDUVTUSUWBUUCUWBUUCOOUHPOUWBYNOYOOUHUWGUWLVLXGXHXIXJUWBBIXKQMZYFYGOYQRUD
      YCUWMYDYHYTBCFHIJKXMXLUWEUWJDEBIXNXOXPYIAYLYSUCZMYMYTXQYIAFUWNYCYDYHUIYIY
      LFWPUWNFTYIYJYKFYICDFIJYEYFYGUPUTYICEFIJYEYFYGURUTVCYLFXRXSXTAYLYSYAXSYB
      $.
  $}

  ${
    $d f n N $.
    ehlval.e $e |- E = ( EEhil ` N ) $.
    $( Value of the Euclidean space of dimension ` N ` .  (Contributed by
       Thierry Arnoux, 16-Jun-2019.) $)
    ehlval $p |- ( N e. NN0 -> E = ( RR^ ` ( 1 ... N ) ) ) $=
      ( vn cn0 wcel cehl cfv c1 cfz co crrx wceq oveq2 fveq2d df-ehl fvex fvmpt
      cv syl5eq ) BEFABGHIBJKZLHZCDBIDSZJKZLHUBEGUCBMUDUALUCBIJNODPUALQRT $.

    $( The base of the Euclidean space is the set of n-tuples of real numbers.
       (Contributed by Thierry Arnoux, 16-Jun-2019.) $)
    ehlbase $p |- ( N e. NN0 -> ( RR ^m ( 1 ... N ) ) = ( Base ` E ) ) $=
      ( vf cn0 wcel cbs cfv c1 cfz co crrx cmap ehlval fveq2d cc0 wceq cvv eqid
      cr cv cfsupp wbr crab rabid2 elmapi fzfid 0red fdmfifsupp mprgbir rrxbase
      ovex ax-mp eqtr4i syl6reqr ) BEFZAGHIBJKZLHZGHZTUQMKZUPAURGABCNOUTDUAZPUB
      UCZDUTUDZUSUTVCQVBDUTVBDUTUEVAUTFZUQTVATPVATUQUFVDIBUGVDUHUIUJUQRFUSVCQIB
      JULUSDURUQRURSUSSUKUMUNUO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Minimizing Vector Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d j w x y .- $.  $d j r s t u v w x y z A $.  $d r w x y J $.  $d x y P $.
    $d s t u v w x y F $.  $d y K $.  $d j w x y N $.  $d r s t u v w x y ph $.
    $d w x y R $.  $d w x y U $.  $d r w x y X $.  $d j r s t u v w x y z Y $.
    $d r s t u v w x y z D $.  $d r s t u v w x y z S $.  $d r y T $.
    $d y L $.
    minvec.x $e |- X = ( Base ` U ) $.
    minvec.m $e |- .- = ( -g ` U ) $.
    minvec.n $e |- N = ( norm ` U ) $.
    minvec.u $e |- ( ph -> U e. CPreHil ) $.
    minvec.y $e |- ( ph -> Y e. ( LSubSp ` U ) ) $.
    minvec.w $e |- ( ph -> ( U |`s Y ) e. CMetSp ) $.
    minvec.a $e |- ( ph -> A e. X ) $.
    ${
      minvec.j $e |- J = ( TopOpen ` U ) $.
      minvec.r $e |- R = ran ( y e. Y |-> ( N ` ( A .- y ) ) ) $.
      $( Lemma for ~ minvec .  The set of all distances from points of ` Y ` to
         ` A ` are a nonempty set of nonnegative reals.  (Contributed by Mario
         Carneiro, 8-May-2014.)  (Revised by Mario Carneiro, 15-Oct-2015.) $)
      minveclem1 $p |- ( ph ->
                         ( R C_ RR /\ R =/= (/) /\ A. w e. R 0 <_ w ) ) $=
        ( cr wss c0 wne cc0 cv cle wbr wral co cfv cmpt crn wf wcel cngp cphngp
        ccph syl adantr clmod cphlmod clss eqid lssss sselda lmodvsubcl syl3anc
        wa nmcl syl2anc fmptd frn syl5eqss lssn0 wceq eqeq1i dm0rn0 fvex dmmpti
        cdm 3bitr2i necon3bii sylibr nmge0 ralrimiva rgenw breq2 ralrnmpt ax-mp
        cvv wb raleqi 3jca ) AEUAUBEUCUDZUECUFZUGUHZCEUIZAEBKDBUFZHUJZIUKZULZUM
        ZUATAKUAXBUNXCUAUBABKXAUAXBAWSKUOZVIZFUPUOZWTJUOZXAUAUOAXFXDAFURUOZXFOF
        UQUSUTZXEFVAUOZDJUOZWSJUOXGAXJXDAXHXJOFVBUSUTAXKXDRUTAKJWSAKFVCUKZUOZKJ
        UBPXLKJFLXLVDZVEUSVFHJFDWSLMVGVHZWTFIJLNVJVKXBVDZVLKUAXBVMUSVNAKUCUDZWO
        AXMXQPXLKFXNVOUSEUCKUCEUCVPXCUCVPXBWAZUCVPKUCVPEXCUCTVQXBVRXRKUCBKXAXBW
        TIVSZXPVTVQWBWCWDAWQCXCUIZWRAUEXAUGUHZBKUIZXTAYABKXEXFXGYAXIXOWTFIJLNWE
        VKWFXAWKUOZBKUIXTYBWLYCBKXSWGWQYABCKXAXBWKXPWPXAUEUGWHWIWJWDWQCEXCTWMWD
        WN $.

      minvec.s $e |- S = inf ( R , RR , < ) $.
      $( Lemma for ~ minvec .  The infimum of the distances to ` A ` is a real
         number.  (Contributed by Mario Carneiro, 16-Jun-2014.)  (Revised by
         Mario Carneiro, 15-Oct-2015.)  (Revised by AV, 3-Oct-2020.) $)
      minveclem4c $p |- ( ph -> S e. RR ) $=
        ( vw cr clt cinf wss c0 wne cv cle wbr wral wrex wcel minveclem1 simp1d
        cc0 simp2d 0re simp3d wceq breq1 ralbidv rspcev sylancr infrecl syl3anc
        syl5eqel ) AEDUCUDUEZUCUAADUCUFZDUGUHZBUIZUBUIZUJUKZUBDULZBUCUMZVIUCUNA
        VJVKUQVMUJUKZUBDULZABUBCDFGHIJKLMNOPQRSTUOZUPAVJVKVRVSURAUQUCUNVRVPUSAV
        JVKVRVSUTVOVRBUQUCVLUQVAVNVQUBDVLUQVMUJVBVCVDVEBUBDVFVGVH $.

      minvec.d $e |- D = ( ( dist ` U ) |` ( X X. X ) ) $.
      ${
        minveclem2.1 $e |- ( ph -> B e. RR ) $.
        minveclem2.2 $e |- ( ph -> 0 <_ B ) $.
        minveclem2.3 $e |- ( ph -> K e. Y ) $.
        minveclem2.4 $e |- ( ph -> L e. Y ) $.
        minveclem2.5 $e |- ( ph -> ( ( A D K ) ^ 2 ) <_ ( ( S ^ 2 ) + B ) ) $.
        minveclem2.6 $e |- ( ph -> ( ( A D L ) ^ 2 ) <_ ( ( S ^ 2 ) + B ) ) $.
        $( Lemma for ~ minvec .  Any two points ` K ` and ` L ` in ` Y ` are
           close to each other if they are close to the infimum of distance to
           ` A ` .  (Contributed by Mario Carneiro, 9-May-2014.)  (Revised by
           Mario Carneiro, 15-Oct-2015.)  (Revised by AV, 3-Oct-2020.) $)
        minveclem2 $p |- ( ph -> ( ( K D L ) ^ 2 ) <_ ( 4 x. B ) ) $=
          ( vw vx co c2 cexp c4 cmul cle wbr caddc c1 cdiv cplusg cvsca cr wcel
          cfv 4re minveclem4c resqcld remulcl sylancr cme cmt cngp cphngp ngpms
          ccph syl msmet clss wss eqid lssss sseldd metcl syl3anc clmod cphlmod
          readdcld csca cbs cc0 wne cz cclm cphclm clmzss 2ne0 cphreccl lssvacl
          2z a1i syl22anc lssvscl lmodvsubcl syl2anc clt cv wral wrex wb rspcev
          0re wceq mpbird fveq2d wa pm3.2i lemul2 mp3an3 mpbid recnd 2re cc 2cn
          oveq1i syl6eq eqtr3d syl5eqr oveq12d oveq1d oveqi ovresd syl5eq ngpds
          3eqtr4d eqtrd nmcl cinf minveclem1 simp3d simp1d simp2d breq1 ralbidv
          c0 infregelb syl31anc syl6breqr cmpt crn eqeq2d sylancl fvex elrnmpti
          oveq2 sylibr syl6eleqr infrelb syl5eqbr 4pos leadd1dd le2addd 2timesd
          breqtrrd 2pos nmpar sqmul sq2 cabs cphnmvs 0le2 absid mp2an lmodsubdi
          le2sq2 mulg2 clmmulg lmodvacl clmvs1 recidi clmvsass syl13anc lmodabl
          cmg cabl ablsub4 syl122anc 3eqtr2d cds ngpdsr ablnnncan1 oveq2d 2t2e4
          cxp cres 2cnd mulassd 3brtr4d letrd 4cn adddid breqtrd leadd2d ) AJKE
          UOZUPUQUOZURDUSUOZUTVAURGUPUQUOZUSUOZUXIVBUOZUXLUXJVBUOZUTVAAUXMURUXK
          DVBUOZUSUOZUXNUTAUXMURCVCUPVDUOZJKHVEVIZUOZHVFVIZUOZLUOZMVIZUPUQUOZUS
          UOZUXIVBUOZUXPAUXLUXIAURVGVHZUXKVGVHZUXLVGVHVJAGABCFGHILMNOPQRSTUAUBU
          CUDUEVKZVLZURUXKVMVNZAUXHAENVOVIVHZJNVHZKNVHZUXHVGVHAHVPVHZUYLAHVQVHZ
          UYOAHVTVHZUYPSHVRWAZHVSWAEHNPUFWBWAZAONJAOHWCVIZVHZONWDTUYTONHPUYTWEZ
          WFWAZUIWGZAONKVUCUJWGZJKENWHWIVLZWLAUYEUXIAUYGUYDVGVHZUYEVGVHVJAUYCAU
          YPUYBNVHZUYCVGVHZUYRAHWJVHZCNVHZUYANVHVUHAUYQVUJSHWKWAZUBAONUYAVUCAVU
          JVUAUXQHWMVIZWNVIZVHZUXSOVHZUYAOVHZVULTAUYQUPVUNVHZUPWOWPZVUOSAWQVUNU
          PAHWRVHZWQVUNWDAUYQVUTSHWSWAZVUMVUNHVUMWEZVUNWEZWTWAUPWQVHZAXDXEZWGZV
          USAXAXEUPVUMVUNHVVBVVCXBWIZAVUJVUAJOVHKOVHVUPVULTUIUJUXRUYTOHJKUXRWEZ
          VUBXCXFVUNUYTUXTOVUMHUXQUXSVVBUXTWEZVVCVUBXGXFZWGZLNHCUYAPQXHWIZUYBHM
          NPRUUAXIZVLZURUYDVMVNZVUFWLAUYGUXOVGVHZUXPVGVHVJAUXKDUYJUGWLZURUXOVMV
          NAUXLUYEUXIUYKVVOVUFAUXKUYDUTVAZUXLUYEUTVAZAGVGVHWOGUTVAVUIGUYCUTVAVV
          RUYIAWOFVGXJUUBZGUTAWOVVTUTVAZWOUMXKZUTVAZUMFXLZAFVGWDZFUUIWPZVWDABUM
          CFHILMNOPQRSTUAUBUCUDUUCZUUDZAVWEVWFUNXKZVWBUTVAZUMFXLZUNVGXMZWOVGVHZ
          VWAVWDXNAVWEVWFVWDVWGUUEZAVWEVWFVWDVWGUUFAVWMVWDVWLXPVWHVWKVWDUNWOVGV
          WIWOXQVWJVWCUMFVWIWOVWBUTUUGUUHXOVNZVWMAXPXEUNUMUMFWOUUJUUKXRUEUULVVM
          AGVVTUYCUTUEAVWEVWLUYCFVHVVTUYCUTVAVWNVWOAUYCBOCBXKZLUOZMVIZUUMZUUNZF
          AUYCVWRXQZBOXMZUYCVWTVHAVUQUYCUYCXQZVXBVVJUYCWEVXAVXCBUYAOVWPUYAXQZVW
          RUYCUYCVXDVWQUYBMVWPUYACLUUSXSUUOXOUUPBOVWRUYCVWSVWSWEVWQMUUQUURUUTUD
          UVAUNUMUYCFUVBWIUVCGUYCUVSXFAUYHVUGVVRVVSXNZUYJVVNUYHVUGUYGWOURXJVAZX
          TVXEUYGVXFVJUVDYAUXKUYDURYBYCXIYDUVEAUPCJEUOZUPUQUOZCKEUOZUPUQUOZVBUO
          ZUSUOZUPUPUXOUSUOZUSUOZUYFUXPUTAVXKVXMUTVAZVXLVXNUTVAZAVXKUXOUXOVBUOV
          XMUTAVXHVXJUXOUXOAVXGAUYLVUKUYMVXGVGVHUYSUBVUDCJENWHWIVLZAVXIAUYLVUKU
          YNVXIVGVHUYSUBVUECKENWHWIVLZVVQVVQUKULUVFAUXOAUXOVVQYEZUVGUVHAVXKVGVH
          ZVXMVGVHZVXOVXPXNZAVXHVXJVXQVXRWLAUPVGVHZVVPVYAYFVVQUPUXOVMVNVXTVYAVY
          CWOUPXJVAZXTVYBVYCVYDYFUVIYAVXKVXMUPYBYCXIYDACJLUOZCKLUOZUXRUOZMVIZUP
          UQUOZVYEVYFLUOZMVIZUPUQUOZVBUOZUPVYEMVIZUPUQUOZVYFMVIZUPUQUOZVBUOZUSU
          OZUYFVXLAUYQVYENVHZVYFNVHZVYMVYSXQSAVUJVUKUYMVYTVULUBVUDLNHCJPQXHWIAV
          UJVUKUYNWUAVULUBVUELNHCKPQXHWIVYEVYFUXRLMNHPVVHQRUVJWIAUYEVYIUXIVYLVB
          AUPUYCUSUOZUPUQUOZUYEVYIAWUCUPUPUQUOZUYDUSUOZUYEAUPYGVHUYCYGVHWUCWUEX
          QYHAUYCVVMYEUPUYCUVKVNWUDURUYDUSUVLYIYJAWUBVYHUPUQAUPUYBUXTUOZMVIZWUB
          VYHAWUGUPUVMVIZUYCUSUOZWUBAUYQVURVUHWUGWUIXQSVVFVVLUXTVUMVUNMNHUPUYBP
          RVVIVVBVVCUVNWIWUHUPUYCUSVYCWOUPUTVAWUHUPXQYFUVOUPUVPUVQYIYJAWUFVYGMA
          WUFUPCUXTUOZUPUYAUXTUOZLUOCCUXRUOZUXSLUOZVYGAUPUXTVUMVUNLNHCUYAPVVIVV
          BVVCQVULVVFUBVVKUVRAWULWUJUXSWUKLAUPCHUWHVIZUOZWULWUJAVUKWUOWULXQUBNU
          XRWUNHCPWUNWEZVVHUVTWAAVUTVVDVUKWUOWUJXQVVAVVEUBUPCWUNUXTNHPWUPVVIUWA
          WIYKAVCUXSUXTUOZUXSWUKAVUTUXSNVHZWUQUXSXQVVAAVUJUYMUYNWURVULVUDVUEUXR
          NHJKPVVHUWBWIZUXTNHUXSPVVIUWCXIAWUQUPUXQUSUOZUXSUXTUOZWUKWUTVCUXSUXTU
          PYHXAUWDYIAVUTVURVUOWURWVAWUKXQVVAVVFVVGWUSUPUXQUXTVUMVUNNHUXSPVVBVVI
          VVCUWEUWFYLYKYMAHUWIVHZVUKVUKUYMUYNWUMVYGXQAVUJWVBVULHUWGWAZUBUBVUDVU
          ENUXRHLKCCJPVVHQUWJUWKUWLXSYKYNYKAUXHVYKUPUQAJKHUWMVIZUOZKJLUOZMVIZUX
          HVYKAUYPUYMUYNWVEWVGXQUYRVUDVUEJKWVDHLMNRPQWVDWEZUWNWIAUXHJKWVDNNUWRU
          WSZUOWVEEWVIJKUFYOAJKWVDNVUDVUEYPYQAVYJWVFMANHLCJKPQWVCUBVUDVUEUWOXSY
          SYNYMAVXKVYRUPUSAVXHVYOVXJVYQVBAVXGVYNUPUQAVXGCJWVDUOZVYNAVXGCJWVIUOW
          VJEWVICJUFYOACJWVDNUBVUDYPYQAUYPVUKUYMWVJVYNXQUYRUBVUDCJWVDHLMNRPQWVH
          YRWIYTYNAVXIVYPUPUQAVXICKWVDUOZVYPAVXICKWVIUOWVKEWVICKUFYOACKWVDNUBVU
          EYPYQAUYPVUKUYNWVKVYPXQUYRUBVUECKWVDHLMNRPQWVHYRWIYTYNYMUWPYSAUXPUPUP
          USUOZUXOUSUOVXNWVLURUXOUSUWQYIAUPUPUXOAUWTZWVMVXSUXAYLUXBUXCAURUXKDUR
          YGVHAUXDXEAUXKUYJYEADUGYEUXEUXFAUXIUXJUXLVUFAUYGDVGVHUXJVGVHVJUGURDVM
          VNUYKUXGXR $.
      $}

      $( Lemma for ~ minvec . ` D ` is a complete metric when restricted to
         ` Y ` .  (Contributed by Mario Carneiro, 7-May-2014.)  (Revised by
         Mario Carneiro, 15-Oct-2015.) $)
      minveclem3a $p |- ( ph -> ( D |` ( Y X. Y ) ) e. ( CMet ` Y ) ) $=
        ( cress cds cfv cbs cxp cres cms ccms wcel eqid cmscmet syl reseq1i wss
        clss lssss xpss12 syl2anc resabs1d wceq ressbas2 sqxpeqd reseq12d eqtrd
        co ressds syl5eq fveq2d 3eltr4d ) AGLUDVHZUEUFZVMUGUFZVOUHZUIZVOUJUFZDL
        LUHZUIZLUJUFAVMUKULVQVRULRVQVMVOVOUMVQUMUNUOAVTGUEUFZKKUHZUIZVSUIZVQDWC
        VSUCUPAWDWAVSUIVQAWAVSWBALKUQZWEVSWBUQALGURUFZULZWEQWFLKGMWFUMUSUOZWHLK
        LKUTVAVBAWAVNVSVPAWGWAVNVCQLWAGVMWFVMUMZWAUMVIUOALVOAWELVOVCWHLKVMGWIMV
        DUOZVEVFVGVJALVOUJWJVKVL $.

      ${
        minvec.f $e |- F = ran ( r e. RR+ |->
          { y e. Y | ( ( A D y ) ^ 2 ) <_ ( ( S ^ 2 ) + r ) } ) $.
        $( Lemma for ~ minvec .  The set of vectors within a fixed distance of
           the infimum forms a filter base.  (Contributed by Mario Carneiro,
           15-Oct-2015.)  (Revised by AV, 3-Oct-2020.) $)
        minveclem3b $p |- ( ph -> F e. ( fBas ` Y ) ) $=
          ( vu vv vw vs vt cfbas cfv wcel cpw wss c0 wne wnel cv cin w3a crp co
          wral c2 cexp caddc cle wbr crab cmpt crn wf ssrab2 clss adantr elpw2g
          wa wb syl mpbiri eqid fmptd frn syl5eqss cdm c1 dmmptd syl5eleqr ne0i
          1rp wceq dm0rn0 eqeq1i bitr4i necon3bii sylib wn wrex clt minveclem4c
          csqrt cr resqcld ltaddrp sylan adantl readdcld recnd sqsqrtd breqtrrd
          rpre cinf cc0 minveclem1 simp1d simp2d 0re syl3anc infregelb syl31anc
          simp3d mpbird breq2 ax-mp bitri syl6bb sylibr ad2antrr sselda elrnmpt
          cvv sylbid rabbidva eleq2d vex rabbidv cbvmptv rpred ralbidv syl5eqel
          breq1 rspcev sylancr infrecl sqge0d lelttrd ltled resqrtcld syl6breqr
          0red sqrtge0d lt2sqd ltnled mpbid breq2i raleqi rgenw ralrnmpt syl5bb
          fvex mtbid rexnal cme cngp ccph cphngp ngpms msmet lssss metcl metge0
          cmt 3syl le2sqd cds cxp oveqi ovresd syl5eq ngpds eqtrd breq2d breq1d
          cres 3bitr3d notbid letrid reximdva rabn0 necomd neneqd nrexdv eleq2i
          ord mpd 0ex sylnibr df-nel cmin lesubadd2d mpteq2dva syl6reqr anbi12d
          rneqd reeanv cif resubcld simplrl simplrr lemin ifcl rabexg elrnmpt1s
          syl2anc eleqtrrd eqeltrrd ineq12 inrab syl6eq eleq1d syl5ibrcom inex1
          pwid inelcm mpan2 syl6 rexlimdvva syl5bir ralrimivv isfbas mpbir2and
          3jca ) AHMULUMUNZHMUOZUPZHUQURZUQHUSZHUGUTZUHUTZVAZUOZVAUQURZUHHVEUGH
          VEZVBZAHNVCCBUTZDVDZVFVGVDZFVFVGVDZNUTZVHVDZVIVJZBMVKZVLZVMZUYPUFAVCU
          YPVUOVNVUPUYPUPANVCVUNUYPVUOAVUKVCUNZVSZVUNUYPUNZVUNMUPZVUMBMVOVURMGV
          PUMZUNZVUSVUTVTAVVBVUQSVQZVUNMVVAVRWAWBZVUOWCZWDVCUYPVUOWEWAWFAUYRUYS
          VUEAVUOWGZUQURZUYRAWHVVFUNVVGAWHVCVVFWLANVUOVCVUNUYPVVEVVDWIWJVVFWHWK
          WAVVFUQHUQVVFUQWMVUPUQWMHUQWMVUOWNHVUPUQUFWOWPWQWRAUQHUNZWSUYSAUQVUNW
          MZNVCWTZVVHAVVINVCVURUQVUNVURVUNUQVURVUMBMWTZVUNUQURVURVULXCUMZCVUGJV
          DZKUMZVIVJZWSZBMWTZVVKVURVVOBMVEZWSVVQVURVVLFVIVJZVVRVURFVVLXAVJZVVSW
          SVURVVTVUJVVLVFVGVDZXAVJVURVUJVULVWAXAAVUJXDUNZVUQVUJVULXAVJAFABCEFGI
          JKLMOPQRSTUAUBUCUDXBXEZVUJVUKXFXGZVURVULVURVULVURVUJVUKAVWBVUQVWCVQZV
          UQVUKXDUNZAVUKXMXHZXIZXJXKZXLVURFVVLVURFEXDXAXNZXDUDVUREXDUPZEUQURZVU
          GUIUTZVIVJZUIEVEZBXDWTZVWJXDUNAVWKVUQAVWKVWLXOVWMVIVJZUIEVEZABUICEGIJ
          KLMOPQRSTUAUBUCXPZXQVQZAVWLVUQAVWKVWLVWRVWSXRVQZAVWPVUQAXOXDUNZVWRVWP
          XSAVWKVWLVWRVWSYCZVWOVWRBXOXDVUGXOWMVWNVWQUIEVUGXOVWMVIUUCUUAUUDUUEVQ
          ZBUIEUUFXTUUBZVURVULVWHVURXOVULVURUULZVWHVURXOVUJVULVXFVWEVWHVURFVXEU
          UGVWDUUHUUIZUUJZVURXOVWJFVIVURXOVWJVIVJZVWRAVWRVUQVXCVQVURVWKVWLVWPVX
          BVXIVWRVTVWTVXAVXDVXFBUIUIEXOYAYBYDUDUUKVURVULVWHVXGUUMZUUNYDVURFVVLV
          XEVXHUUOUUPVVSVVLVWJVIVJZVURVVRFVWJVVLVIUDUUQVURVXKVVLVWMVIVJZUIEVEZV
          VRVURVWKVWLVWPVVLXDUNZVXKVXMVTVWTVXAVXDVXHBUIUIEVVLYAYBVXMVXLUIBMVVNV
          LZVMZVEZVVRVXLUIEVXPUCUURVVNYMUNZBMVEVXQVVRVTVXRBMVVMKUVBUUSVXLVVOBUI
          MVVNVXOYMVXOWCVWMVVNVVLVIYEUUTYFYGYHUVAUVCVVOBMUVDYIVURVVPVUMBMVURVUG
          MUNZVSZVVPVULVUIVIVJZWSVUMVXTVVOVYAVXTVVLVUHVIVJVWAVUIVIVJVVOVYAVXTVV
          LVUHVURVXNVXSVXHVQVXTDLUVEUMUNZCLUNZVUGLUNZVUHXDUNZAVYBVUQVXSAGUVFUNZ
          GUVNUNVYBAGUVGUNVYFRGUVHWAZGUVIDGLOUEUVJUVOZYJZAVYCVUQVXSUAYJZVURMLVU
          GVURVVBMLUPZVVCVVAMLGOVVAWCUVKZWAYKZCVUGDLUVLZXTZVURXOVVLVIVJVXSVXJVQ
          VXTVYBVYCVYDXOVUHVIVJVYIVYJVYMCVUGDLUVMXTUVPVXTVUHVVNVVLVIVXTVUHCVUGG
          UVQUMZVDZVVNVXTVUHCVUGVYPLLUVRUWFZVDVYQDVYRCVUGUEUVSVXTCVUGVYPLVYJVYM
          UVTUWAVXTVYFVYCVYDVYQVVNWMAVYFVUQVXSVYGYJVYJVYMCVUGVYPGJKLQOPVYPWCUWB
          XTUWCUWDVXTVWAVULVUIVIVURVWAVULWMVXSVWIVQUWEUWGUWHVXTVYAVUMVXTVULVUIV
          URVULXDUNVXSVWHVQVXTVUHVYOXEZUWIUWPYNUWJUWQVUMBMUWKYIUWLUWMUWNVVHUQVU
          PUNZVVJHVUPUQUFUWOUQYMUNVYTVVJVTUWRNVCVUNUQVUOYMVVEYLYFYGUWSUQHUWTYIA
          VUDUGUHHHAUYTHUNZVUAHUNZVSUYTVUIVUJUXAVDZUJUTZVIVJZBMVKZWMZUJVCWTZVUA
          WUCUKUTZVIVJZBMVKZWMZUKVCWTZVSZVUDAWUAWUHWUBWUMAWUAUYTNVCWUCVUKVIVJZB
          MVKZVLZVMZUNZWUHAHWURUYTAWURVUPHAWUQVUOANVCWUPVUNVURWUOVUMBMVXTVUIVUJ
          VUKVYSVXTFVURFXDUNVXSVXEVQXEVURVWFVXSVWGVQUXBYOUXCUXFUFUXDZYPUYTYMUNW
          USWUHVTUGYQZUJVCWUFUYTWUQYMNUJVCWUPWUFVUKWUDWMWUOWUEBMVUKWUDWUCVIYEYR
          YSYLYFYHAWUBVUAWURUNZWUMAHWURVUAWUTYPVUAYMUNWVBWUMVTUHYQUKVCWUKVUAWUQ
          YMNUKVCWUPWUKVUKWUIWMWUOWUJBMVUKWUIWUCVIYEYRYSYLYFYHUXEWUNWUGWULVSZUK
          VCWTUJVCWTAVUDWUGWULUJUKVCVCUXGAWVCVUDUJUKVCVCAWUDVCUNZWUIVCUNZVSZVSZ
          WVCVUBHUNZVUDWVGWVHWVCWUEWUJVSZBMVKZHUNWVGWUCWUDWUIVIVJZWUDWUIUXHZVIV
          JZBMVKZWVJHWVGWVMWVIBMWVGVXSVSZWUCXDUNWUDXDUNWUIXDUNWVMWVIVTWVOVUIVUJ
          WVOVUHWVOVYBVYCVYDVYEAVYBWVFVXSVYHYJAVYCWVFVXSUAYJWVGMLVUGAVYKWVFAVVB
          VYKSVYLWAVQYKVYNXTXEAVWBWVFVXSVWCYJUXIWVOWUDAWVDWVEVXSUXJYTWVOWUIAWVD
          WVEVXSUXKYTWUCWUDWUIUXLXTYOWVGWVNWURHWVGWVLVCUNZWVNYMUNZWVNWURUNWVFWV
          PAWVKWUDWUIVCUXMXHWVGVVBWVQAVVBWVFSVQWVMBMVVAUXNWANVCWUPWVNWVLWUQYMWU
          QWCVUKWVLWMWUOWVMBMVUKWVLWUCVIYEYRUXOUXPAHWURWMWVFWUTVQUXQUXRWVCVUBWV
          JHWVCVUBWUFWUKVAWVJUYTWUFVUAWUKUXSWUEWUJBMUXTUYAUYBUYCWVHVUBVUCUNVUDV
          UBUYTVUAWVAUYDUYEVUBHVUCUYFUYGUYHUYIUYJYNUYKUYNAVVBUYOUYQVUFVSVTSUGUH
          VVAMHUYLWAUYM $.

        $( Lemma for ~ minvec .  The filter formed by taking elements
           successively closer to the infimum is Cauchy.  (Contributed by Mario
           Carneiro, 8-May-2014.)  (Revised by Mario Carneiro, 15-Oct-2015.) $)
        minveclem3 $p |- ( ph ->
          ( Y filGen F ) e. ( CauFil ` ( D |` ( Y X. Y ) ) ) ) $=
          ( vu vv vs vw cfg co cxp cres ccfil cfv wcel cv clt wbr wral wrex crp
          wa c2 cexp cdiv c4 caddc cle crab crn cvv cz simpr 2z rpexpcl sylancl
          cmpt rphalfcld cn 4nn nnrp ax-mp rpdivcl clss adantr rabexg eqid wceq
          syl oveq2 breq2d rabbidv elrnmpt1s syl2anc syl6eleqr weq oveq1d elrab
          breq1d anbi12i simprll simprrl ovresd cr ccph cngp cphngp ngpms msmet
          cme cmt 4syl ad2antrr wss lssss sseldd metcl syl3anc rpred cmul cress
          resqcld ccms rpge0d simprlr simprrr minveclem2 rpcnd 4cn a1i cc0 4ne0
          cc wne divcan2d breqtrd ad2antlr mpbird rphalflt lelttrd metge0 rpge0
          rpre lt2sqd eqbrtrd ralrimivva raleq raleqbi1dv rspcev ralrimiva cxmt
          sylan2b cfbas cms minveclem3a cmetmet metxmet 3syl minveclem3b fgcfil
          wb ) AMHUKULDMMUMUNZUOUPUQZUGURZUHURZUVDULZUIURZUSUTZUHUJURZVAZUGUVKV
          AZUJHVBZUIVCVAZAUVNUIVCAUVIVCUQZVDZCBURZDULZVEVFULZFVEVFULZUVIVEVFULZ
          VEVGULZVHVGULZVIULZVJUTZBMVKZHUQUVJUHUWGVAZUGUWGVAZUVNUVQUWGNVCUVTUWA
          NURZVIULZVJUTZBMVKZVSZVLZHUVQUWDVCUQZUWGVMUQZUWGUWOUQUVQUWCVCUQZVHVCU
          QZUWPUVQUWBUVQUVPVEVNUQUWBVCUQZAUVPVOVPUVIVEVQVRZVTZVHWAUQUWSWBVHWCWD
          UWCVHWEVRZUVQMGWFUPZUQZUWQAUXEUVPSWGUWFBMUXDWHWKNVCUWMUWGUWDUWNVMUWNW
          IUWJUWDWJZUWLUWFBMUXFUWKUWEUVTVJUWJUWDUWAVIWLWMWNWOWPUFWQUVQUVJUGUHUW
          GUWGUVFUWGUQZUVGUWGUQZVDUVQUVFMUQZCUVFDULZVEVFULZUWEVJUTZVDZUVGMUQZCU
          VGDULZVEVFULZUWEVJUTZVDZVDZUVJUXGUXMUXHUXRUWFUXLBUVFMBUGWRZUVTUXKUWEV
          JUXTUVSUXJVEVFUVRUVFCDWLWSXAWTUWFUXQBUVGMBUHWRZUVTUXPUWEVJUYAUVSUXOVE
          VFUVRUVGCDWLWSXAWTXBUVQUXSVDZUVHUVFUVGDULZUVIUSUYBUVFUVGDMUVQUXIUXLUX
          RXCZUVQUXMUXNUXQXDZXEUYBUYCUVIUSUTUYCVEVFULZUWBUSUTUYBUYFUWCUWBUYBUYC
          UYBDLXLUPUQZUVFLUQZUVGLUQZUYCXFUQAUYGUVPUXSAGXGUQZGXHUQGXMUQUYGRGXIGX
          JDGLOUEXKXNXOZUYBMLUVFAMLXPZUVPUXSAUXEUYLSUXDMLGOUXDWIXQWKXOZUYDXRZUY
          BMLUVGUYMUYEXRZUVFUVGDLXSXTZYDUYBUWCUVQUWRUXSUXBWGZYAUYBUWBUVQUWTUXSU
          XAWGZYAUYBUYFVHUWDYBULUWCVJUYBBCUWDDEFGIUVFUVGJKLMOPQAUYJUVPUXSRXOAUX
          EUVPUXSSXOAGMYCULYEUQUVPUXSTXOACLUQUVPUXSUAXOUBUCUDUEUYBUWDUVQUWPUXSU
          XCWGZYAUYBUWDUYSYFUYDUYEUVQUXIUXLUXRYGUVQUXMUXNUXQYHYIUYBUWCVHUYBUWCU
          YQYJVHYOUQUYBYKYLVHYMYPUYBYNYLYQYRUYBUWTUWCUWBUSUTUYRUWBUUAWKUUBUYBUY
          CUVIUYPUVPUVIXFUQAUXSUVIUUEYSUYBUYGUYHUYIYMUYCVJUTUYKUYNUYOUVFUVGDLUU
          CXTUVPYMUVIVJUTAUXSUVIUUDYSUUFYTUUGUUNUUHUVMUWIUJUWGHUVLUWHUGUVKUWGUV
          JUHUVKUWGUUIUUJUUKWPUULAUVDMUUMUPUQZHMUUOUPUQUVEUVOUVCAUVDMUUPUPUQUVD
          MXLUPUQUYTABCDEFGIJKLMOPQRSTUAUBUCUDUEUUQUVDMUURUVDMUUSUUTABCDEFGHIJK
          LMNOPQRSTUAUBUCUDUEUFUVAUIUJUGUHHUVDMUVBWPYT $.

        minvec.p $e |- P = U. ( J fLim ( X filGen F ) ) $.
        $( Lemma for ~ minvec . ` F ` converges to a point ` P ` in ` Y ` .
           (Contributed by Mario Carneiro, 7-May-2014.)  (Revised by Mario
           Carneiro, 15-Oct-2015.) $)
        minveclem4a $p |- ( ph -> P e. ( ( J fLim ( X filGen F ) ) i^i Y ) ) $=
          ( vx cfg co cflim cuni cin csn ovex uniex snid c0 wceq cxp cres cmopn
          wn cfv cxme wcel ccph cngp cphngp ngpxms 3syl xmstopn syl oveq1d cxmt
          crest xmsxmet clss eqid lssss metrest syl2anc eqtr2d cfil minveclem3b
          wss cvv cfbas fgcl cbs fvex eqeltri trfg syl3anc fgabs eqtr3d oveq12d
          a1i ctopon xmstps istps sylib cpw fbsspw sspwb sstrd fbasweak filfbas
          ctps ssfg sseqtrd filtop sseldd flimrest eqtrd minveclem3a minveclem3
          cms ccfil wne cmetcvg eqnetrrd neneqd wo inss1 c1o cen wbr cv weu wmo
          cha methaus eqeltrd hausflimi wb ssn0 sylancr n0moeu euen1b en1b sssn
          mpbid sylibr syl5sseq ord mpd syl5eleqr syl5eqel ) AEJMIUJUKZULUKZUMZ
          UULNUNZUHAUUMUUMUOZUUNUUMUULJUUKULUPUQURAUUNUSUTZVDUUNUUOUTZAUUNUSADN
          NVAVBZVCVEZNIUJUKZULUKZUUNUSAUVAJNVQUKZUUKNVQUKZULUKZUUNAUUSUVBUUTUVC
          ULAUVBDVCVEZNVQUKZUUSAJUVENVQAHVFVGZJUVEUTAHVHVGHVIVGUVGSHVJHVKVLZDJH
          MUCPUFVMZVNVOADMVPVEVGZNMWGZUVFUUSUTAUVGUVJUVHDHMPUFVRZVNANHVSVEZVGUV
          KTUVMNMHPUVMVTWAVNZDUURUVEUUSMNUURVTUVEVTZUUSVTZWBWCWDAMUUTUJUKZNVQUK
          ZUUTUVCAUUTNWEVEVGZUVKMWHVGZUVRUUTUTAINWIVEZVGZUVSABCDFGHIJKLMNOPQRST
          UAUBUCUDUEUFUGWFZINWJZVNZUVNUVTAMHWKVEWHPHWKWLWMWSZNUUTWHMWNWOAUVQUUK
          NVQAUWBUVKUVQUUKUTUWCUVNIMNWPWCZVOWQWRAJMWTVEVGZUUKMWEVEVGZNUUKVGUVDU
          UNUTAHXJVGZUWHAUVGUWJUVHHXAVNMJHPUCXBXCAIMWIVEZVGZUWIAUWBIMXDZWGUVTUW
          LUWCAINXDZUWMAUWBIUWNWGUWCNIXEVNAUVKUWNUWMWGUVNNMXFXCZXGUWFIWHNMXHWOI
          MWJVNAUUTUUKNAUUTUVQUUKAUUTUWKVGZUUTUVQWGAUUTUWAVGZUUTUWMWGUVTUWPAUWB
          UVSUWQUWCUWDUUTNXIVLZAUUTUWNUWMAUWQUUTUWNWGUWRNUUTXEVNUWOXGUWFUUTWHNM
          XHWOUUTMXKVNUWGXLAUVSNUUTVGUWEUUTNXMVNXNUUKJMNXOWOXPAUURNXSVEVGUUTUUR
          XTVEVGUVAUSYAABCDFGHJKLMNPQRSTUAUBUCUDUEUFXQABCDFGHIJKLMNOPQRSTUAUBUC
          UDUEUFUGXRUURUUTUUSNUVPYBWCYCZYDAUUPUUQAUUNUUOWGUUPUUQYEAUULUUNUUOUUL
          NYFZAUULYGYHYIZUULUUOUTAUIYJUULVGZUIYKZUXAAUXBUIYLZUXCAUVGJYMVGUXDUVH
          UVGJUVEYMUVIUVGUVJUVEYMVGUVLDUVEMUVOYNVNYOUIUUKJYPVLAUULUSYAZUXDUXCYQ
          AUUNUULWGUUNUSYAUXEUWTUWSUUNUULYRYSUIUULYTVNUUDUIUULUUAUUEUULUUBXCUUF
          UUNUUMUUCXCUUGUUHUUIUUJ $.

        $( Lemma for ~ minvec .  The convergent point of the Cauchy sequence
           ` F ` is a member of the base space.  (Contributed by Mario
           Carneiro, 16-Jun-2014.)  (Revised by Mario Carneiro,
           15-Oct-2015.) $)
        minveclem4b $p |- ( ph -> P e. X ) $=
          ( clss cfv wcel wss eqid lssss syl cfg co cflim cin inss2 minveclem4a
          sseldi sseldd ) ANMEANHUIUJZUKNMULTVDNMHPVDUMUNUOAJMIUPUQURUQZNUSNEVE
          NUTABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHVAVBVC $.

        minvec.t $e |- T = ( ( ( ( ( A D P ) + S ) / 2 ) ^ 2 ) - ( S ^ 2 ) ) $.
        $( Lemma for ~ minvec .  The convergent point of the Cauchy sequence
           ` F ` attains the minimum distance, and so is closer to ` A ` than
           any other point in ` Y ` .  (Contributed by Mario Carneiro,
           7-May-2014.)  (Revised by Mario Carneiro, 15-Oct-2015.)  (Revised by
           AV, 3-Oct-2020.) $)
        minveclem4 $p |- ( ph -> E. x e. Y A. y e. Y
                          ( N ` ( A .- x ) ) <_ ( N ` ( A .- y ) ) ) $=
          ( vw wcel co cfv cv cle wbr wral wrex cfg cflim cin inss2 minveclem4a
          sseldi wa wceq cds cxp cres oveqi minveclem4b ovresd syl5eq cngp ccph
          cphngp syl eqid ngpds syl3anc eqtrd adantr cme ngpms msmet 3syl metcl
          cr cmt minveclem4c clmod cphlmod clss lssss sselda lmodvsubcl syl2anc
          wss nmcl wn clt ltnled caddc c2 cdiv crab ccl cfil cexp cfbas cpw cvv
          minveclem3b cbs fvex a1i crp cmpt crn resqcld cc0 cmul 2timesd breq1d
          recnd 3bitr2d 0re ralbidv rspcev metge0 oveq2 breq2d syl6eleqr sseldd
          wb ad2antrr ccld fveq2d fbsspw sspwb sylib eqeltri fbasweak fgcl ssfg
          sstrd cmin readdcld rehalfcld resubcld 2re 2pos pm3.2i ltmuldiv2 cinf
          ltadd1d c0 wne minveclem1 simp3d simp1d simp2d breq1 sylancr syl31anc
          infregelb mpbird addge0d divge0 syl21anc lt2sqd posdifd 3bitrd biimpa
          syl6breqr elrpd syl5eqel rabexg rabbidv ssrab2 oveq2i pncan3d adantlr
          elrnmpt1s le2sqd bitr4d rabbidva rabss2 filss syl13anc flimclsi inss1
          eqsstrd cmopn cxmt cxr cxme ngpxms xmsxmet rexrd blcld xmstopn cldcls
          eleqtrd elrab simprbi leadd2d lemuldiv2 mp3an3 biimpar syldan sylbird
          eleqtrrd ex pm2.18d simpr elrnmpt1 sylancl infrelb syl5eqbr ralrimiva
          letrd eqbrtrrd ) AFPUMDFMUNZNUOZDCUPZMUNZNUOZUQURZCPUSZDBUPZMUNZNUOZU
          YJUQURZCPUSZBPUTALOKVAUNZVBUNZPVCZPFUYSPVDACDEFGHJKLMNOPQRSTUAUBUCUDU
          EUFUGUHUIUJVEZVFAUYKCPAUYHPUMZVGZDFEUNZUYGUYJUQAVUDUYGVHVUBAVUDDFJVIU
          OZUNZUYGAVUDDFVUEOOVJVKZUNVUFEVUGDFUHVLADFVUEOUDACDEFGHJKLMNOPQRSTUAU
          BUCUDUEUFUGUHUIUJVMZVNVOAJVPUMZDOUMZFOUMZVUFUYGVHAJVQUMZVUIUAJVRVSZUD
          VUHDFVUEJMNOTRSVUEVTWAWBWCWDVUCVUDHUYJAVUDWJUMZVUBAEOWEUOUMZVUJVUKVUN
          AVUIJWKUMVUOVUMJWFEJORUHWGWHZUDVUHDFEOWIWBZWDAHWJUMZVUBACDGHJLMNOPRST
          UAUBUCUDUEUFUGWLZWDVUCVUIUYIOUMZUYJWJUMAVUIVUBVUMWDVUCJWMUMZVUJUYHOUM
          ZVUTAVVAVUBAVULVVAUAJWNVSWDAVUJVUBUDWDAPOUYHAPJWOUOZUMZPOWTZUBVVCPOJR
          VVCVTWPVSZWQZMOJDUYHRSWRWBUYIJNORTXAWSAVUDHUQURZVUBAVVHAVVHXBHVUDXCUR
          ZVVHAHVUDVUSVUQXDAVVIVVHAVVIVUDVUDHXEUNZXFXGUNZUQURZVVHAVVIVGZFDUYHEU
          NZVVKUQURZCOXHZUMZVVLVVMFVVPLXIUOUOZVVPVVMUYSVVRFVVMVVPUYRUMZUYSVVRWT
          VVMUYROXJUOUMZVVNXFXKUNZHXFXKUNZIXEUNZUQURZCPXHZUYRUMVVPOWTZVWEVVPWTV
          VSVVMKOXLUOUMZVVTAVWGVVIAKPXLUOUMZKOXMZWTOXNUMZVWGACDEGHJKLMNOPQRSTUA
          UBUCUDUEUFUGUHUIXOZAKPXMZVWIAVWHKVWLWTVWKPKUUAVSAVVEVWLVWIWTVVFPOUUBU
          UCUUHVWJAOJXPUOXNRJXPXQUUDXRKXNPOUUEWBWDZKOUUFVSVVMKUYRVWEVVMVWGKUYRW
          TVWMKOUUGVSVVMVWEQXSVWAVWBQUPZXEUNZUQURZCPXHZXTZYAZKVVMIXSUMVWEXNUMZV
          WEVWSUMVVMIVVKXFXKUNZVWBUUIUNZXSUKVVMVXBAVXBWJUMVVIAVXAVWBAVVKAVVJAVU
          DHVUQVUSUUJZUUKZYBZAHVUSYBZUULWDAVVIYCVXBXCURZAVVIHVVKXCURZVWBVXAXCUR
          VXGAVVIHHXEUNZVVJXCURXFHYDUNZVVJXCURZVXHAHVUDHVUSVUQVUSUURAVXJVXIVVJX
          CAHAHVUSYGYEYFAVURVVJWJUMZXFWJUMZYCXFXCURZVGZVXKVXHYQVUSVXCVXOAVXMVXN
          UUMUUNUUOZXRZHVVJXFUUPWBYHAHVVKVUSVXDAYCGWJXCUUQZHUQAYCVXRUQURZYCULUP
          ZUQURZULGUSZAGWJWTZGUUSUUTZVYBACULDGJLMNOPRSTUAUBUCUDUEUFUVAZUVBZAVYC
          VYDUYMVXTUQURZULGUSZBWJUTZYCWJUMZVXSVYBYQAVYCVYDVYBVYEUVCZAVYCVYDVYBV
          YEUVDAVYJVYBVYIYIVYFVYHVYBBYCWJUYMYCVHVYGVYAULGUYMYCVXTUQUVEYJYKUVFZV
          YJAYIXRBULULGYCUVHUVGUVIUGUVQZAVXLYCVVJUQURVXOYCVVKUQURZVXCAVUDHVUQVU
          SAVUOVUJVUKYCVUDUQURVUPUDVUHDFEOYLWBVYMUVJVXQVVJXFUVKUVLZUVMAVWBVXAVX
          FVXEUVNUVOUVPUVRUVSVVMVVDVWTAVVDVVIUBWDVWDCPVVCUVTVSQXSVWQVWEIVWRXNVW
          RVTVWNIVHZVWPVWDCPVYPVWOVWCVWAUQVWNIVWBXEYMYNUWAUWFWSUIYOYPVWFVVMVVOC
          OUWBXRVVMVWEVVOCPXHZVVPVVMVWDVVOCPVVMVUBVGZVWDVWAVXAUQURVVOVYRVWCVXAV
          WAUQVYRVWCVWBVXBXEUNVXAIVXBVWBXEUKUWCVYRVWBVXAVYRVWBAVWBWJUMVVIVUBVXF
          YRYGVYRVXAVYRVVKAVVKWJUMZVVIVUBVXDYRZYBYGUWDVOYNVYRVVNVVKVYRVUOVUJVVB
          VVNWJUMAVUOVVIVUBVUPYRZAVUJVVIVUBUDYRZAVUBVVBVVIVVGUWEZDUYHEOWIWBVYTV
          YRVUOVUJVVBYCVVNUQURWUAWUBWUCDUYHEOYLWBAVYNVVIVUBVYOYRUWGUWHUWIVVMVVE
          VYQVVPWTAVVEVVIVVFWDVVOCPOUWJVSUWOVWEVVPUYROUWKUWLVVPUYRLUWMVSAFUYSUM
          VVIAUYTUYSFUYSPUWNVUAVFWDYPVVMVVPLYSUOZUMVVRVVPVHVVMVVPEUWPUOZYSUOZWU
          DVVMEOUWQUOUMZVUJVVKUWRUMVVPWUFUMAWUGVVIAVUIJUWSUMZWUGVUMJUWTZEJORUHU
          XAWHWDAVUJVVIUDWDVVMVVKAVYSVVIVXDWDUXBCEDVVKVVPWUEOWUEVTVVPVTUXCWBVVM
          LWUEYSALWUEVHZVVIAVUIWUHWUJVUMWUIELJOUERUHUXDWHWDYTUXOVVPLUXEVSUXFVVQ
          VUKVVLVVOVVLCFOUYHFVHVVNVUDVVKUQUYHFDEYMYFUXGUXHVSAVVHVVLAVVHVUDVUDXE
          UNZVVJUQURXFVUDYDUNZVVJUQURZVVLAVUDHVUDVUQVUSVUQUXIAWULWUKVVJUQAVUDAV
          UDVUQYGYEYFAVUNVXLWUMVVLYQZVUQVXCVUNVXLVXOWUNVXPVUDVVJXFUXJUXKWSYHUXL
          UXMUXPUXNUXQWDVUCHVXRUYJUQUGVUCVYCVYIUYJGUMVXRUYJUQURAVYCVUBVYKWDAVYI
          VUBVYLWDVUCUYJCPUYJXTZYAZGVUCVUBUYJXNUMUYJWUPUMAVUBUXRUYINXQCPUYJWUOX
          NWUOVTUXSUXTUFYOBULUYJGUYAWBUYBUYDUYEUYCUYQUYLBFPUYMFVHZUYPUYKCPWUQUY
          OUYGUYJUQWUQUYNUYFNUYMFDMYMYTYFYJYKWS $.
      $}

      $( Lemma for ~ minvec .  Discharge the assumptions in ~ minveclem4 .
         (Contributed by Mario Carneiro, 9-May-2014.)  (Revised by Mario
         Carneiro, 15-Oct-2015.) $)
      minveclem5 $p |- ( ph -> E. x e. Y A. y e. Y
                        ( N ` ( A .- x ) ) <_ ( N ` ( A .- y ) ) ) $=
        ( vs vz vr crp cv co c2 cexp caddc cle wbr crab cmpt crn cfg cflim cuni
        cdiv cmin weq oveq2 breq2d rabbidv oveq1d breq1d cbvrabv syl6eq cbvmptv
        rneqi eqid minveclem4 ) ABCDEILUEUHDUFUIZEUJZUKULUJZGUKULUJZUEUIZUMUJZU
        NUOZUFMUPZUQZURZUSUJUTUJVAZFGDWFEUJGUMUJUKVBUJUKULUJVSVCUJZHWEIJKLMUGNO
        PQRSTUAUBUCUDWDUGUHDCUIZEUJZUKULUJZVSUGUIZUMUJZUNUOZCMUPZUQUEUGUHWCWNUE
        UGVDZWCVRWLUNUOZUFMUPWNWOWBWPUFMWOWAWLVRUNVTWKVSUMVEVFVGWPWMUFCMUFCVDZV
        RWJWLUNWQVQWIUKULVPWHDEVEVHVIVJVKVLVMWFVNWGVNVO $.

      $( Lemma for ~ minvec .  Any minimal point is less than ` S ` away from
         ` A ` .  (Contributed by Mario Carneiro, 9-May-2014.)  (Revised by
         Mario Carneiro, 15-Oct-2015.)  (Revised by AV, 3-Oct-2020.) $)
      minveclem6 $p |- ( ( ph /\ x e. Y ) ->
        ( ( ( A D x ) ^ 2 ) <_ ( ( S ^ 2 ) + 0 ) <->
          A. y e. Y ( N ` ( A .- x ) ) <_ ( N ` ( A .- y ) ) ) ) $=
        ( vw cv wcel wa co cexp cc0 caddc cle wbr cfv wral cds cxp oveqi adantr
        cres clss wss eqid lssss syl sselda ovresd syl5eq cngp wceq ccph cphngp
        c2 ngpds syl3anc eqtrd oveq1d cr clt cinf c0 wne wrex minveclem1 simp1d
        w3a simp2d simp3d breq1 ralbidv rspcev syl2anc infrecl syl5eqel resqcld
        0red recnd addid1d breq12d clmod cphlmod lmodvsubcl nmcl nmge0 syl31anc
        infregelb mpbird syl6breqr le2sqd breq2i syl5bb 3bitr2d cmpt crn raleqi
        wb cvv fvex rgenw breq2 ralrnmpt ax-mp bitri syl6bb ) ABUFZMUGZUHZDYFEU
        IZVNUJUIZGVNUJUIZUKULUIZUMUNZDYFJUIZKUOZUEUFZUMUNZUEFUPZYODCUFJUIZKUOZU
        MUNZCMUPZYHYMYOVNUJUIZYKUMUNYOGUMUNZYRYHYJUUCYLYKUMYHYIYOVNUJYHYIDYFHUQ
        UOZUIZYOYHYIDYFUUELLURVAZUIUUFEUUGDYFUDUSYHDYFUUELADLUGZYGTUTZAMLYFAMHV
        BUOZUGMLVCRUUJMLHNUUJVDVEVFVGZVHVIYHHVJUGZUUHYFLUGZUUFYOVKAUULYGAHVLUGZ
        UULQHVMVFUTZUUIUUKDYFUUEHJKLPNOUUEVDVOVPVQVRYHYKYHYKYHGYHGFVSVTWAZVSUCY
        HFVSVCZFWBWCZYFYPUMUNZUEFUPZBVSWDZUUPVSUGYHUUQUURUKYPUMUNZUEFUPZAUUQUUR
        UVCWGYGACUEDFHIJKLMNOPQRSTUAUBWEUTZWFZYHUUQUURUVCUVDWHZYHUKVSUGZUVCUVAY
        HWQZYHUUQUURUVCUVDWIZUUTUVCBUKVSYFUKVKUUSUVBUEFYFUKYPUMWJWKWLWMZBUEFWNV
        PWOZWPWRWSWTYHYOGYHUULYNLUGZYOVSUGZUUOYHHXAUGZUUHUUMUVLAUVNYGAUUNUVNQHX
        BVFUTUUIUUKJLHDYFNOXCVPZYNHKLNPXDWMZUVKYHUULUVLUKYOUMUNUUOUVOYNHKLNPXEW
        MYHUKUUPGUMYHUKUUPUMUNZUVCUVIYHUUQUURUVAUVGUVQUVCXQUVEUVFUVJUVHBUEUEFUK
        XGXFXHUCXIXJUUDYOUUPUMUNZYHYRGUUPYOUMUCXKYHUUQUURUVAUVMUVRYRXQUVEUVFUVJ
        UVPBUEUEFYOXGXFXLXMYRYQUECMYTXNZXOZUPZUUBYQUEFUVTUBXPYTXRUGZCMUPUWAUUBX
        QUWBCMYSKXSXTYQUUACUEMYTUVSXRUVSVDYPYTYOUMYAYBYCYDYE $.

      $( Lemma for ~ minvec .  Since any two minimal points are distance zero
         away from each other, the minimal point is unique.  (Contributed by
         Mario Carneiro, 9-May-2014.)  (Revised by Mario Carneiro,
         15-Oct-2015.) $)
      minveclem7 $p |- ( ph -> E! x e. Y A. y e. Y
                        ( N ` ( A .- x ) ) <_ ( N ` ( A .- y ) ) ) $=
        ( vw cv co cfv cle wbr wral wrex wa wceq wi wreu minveclem5 wcel c2 cc0
        cexp caddc c4 cmul ccph ad2antrr clss cress ccms cr 0re simplrl simplrr
        a1i 0le0 simprl simprr minveclem2 ex minveclem6 adantrr adantrl anbi12d
        wb 4cn mul01i breq2i cme cmt cngp cphngp ngpms 3syl adantr syl wss eqid
        msmet lssss sseldd metcl syl3anc sqge0d biantrud resqcld letri3 sylancl
        recnd sqeq0 meteq0 bitrd 3bitr2d syl5bb 3imtr3d ralrimivva oveq2 fveq2d
        cc breq1d ralbidv reu4 sylanbrc ) ADBUFZJUGZKUHZDCUFJUGKUHZUIUJZCMUKZBM
        ULYHDUEUFZJUGZKUHZYFUIUJZCMUKZUMZYCYIUNZUOZUEMUKBMUKYHBMUPABCDEFGHIJKLM
        NOPQRSTUAUBUCUDUQAYPBUEMMAYCMURZYIMURZUMZUMZDYCEUGUSVAUGGUSVAUGUTVBUGZU
        IUJZDYIEUGUSVAUGUUAUIUJZUMZYCYIEUGZUSVAUGZVCUTVDUGZUIUJZYNYOYTUUDUUHYTU
        UDUMZCDUTEFGHIYCYIJKLMNOPAHVEURZYSUUDQVFAMHVGUHZURZYSUUDRVFAHMVHUGVIURY
        SUUDSVFADLURYSUUDTVFUAUBUCUDUTVJURZUUIVKVNUTUTUIUJUUIVOVNAYQYRUUDVLAYQY
        RUUDVMYTUUBUUCVPYTUUBUUCVQVRVSYTUUBYHUUCYMAYQUUBYHWDYRABCDEFGHIJKLMNOPQ
        RSTUAUBUCUDVTWAAYRUUCYMWDYQAUECDEFGHIJKLMNOPQRSTUAUBUCUDVTWBWCUUHUUFUTU
        IUJZYTYOUUGUTUUFUIVCWEWFWGYTUUNUUNUTUUFUIUJZUMZUUFUTUNZYOYTUUOUUNYTUUEY
        TELWHUHURZYCLURZYILURZUUEVJURYTHWIURZUURAUVAYSAUUJHWJURUVAQHWKHWLWMWNEH
        LNUDWRWOZYTMLYCAMLWPZYSAUULUVCRUUKMLHNUUKWQWSWOWNZAYQYRVPWTZYTMLYIUVDAY
        QYRVQWTZYCYIELXAXBZXCXDYTUUFVJURUUMUUQUUPWDYTUUEUVGXEVKUUFUTXFXGYTUUQUU
        EUTUNZYOYTUUEXRURUUQUVHWDYTUUEUVGXHUUEXIWOYTUURUUSUUTUVHYOWDUVBUVEUVFYC
        YIELXJXBXKXLXMXNXOYHYMBUEMYOYGYLCMYOYEYKYFUIYOYDYJKYCYIDJXPXQXSXTYAYB
        $.
    $}

    $( Minimizing vector theorem, or the Hilbert projection theorem.  There is
       exactly one vector in a complete subspace ` W ` that minimizes the
       distance to an arbitrary vector ` A ` in a parent inner product space.
       Theorem 3.3-1 of [Kreyszig] p. 144, specialized to subspaces instead of
       convex subsets.  (Contributed by NM, 11-Apr-2008.)  (Proof shortened by
       Mario Carneiro, 9-May-2014.)  (Revised by Mario Carneiro, 15-Oct-2015.)
       (Proof shortened by AV, 3-Oct-2020.) $)
    minvec $p |- ( ph -> E! x e. Y A. y e. Y
                   ( N ` ( A .- x ) ) <_ ( N ` ( A .- y ) ) ) $=
      ( vj cfv cv eqid cds cxp cres co cmpt crn cr cinf ctopn wceq oveq2 fveq2d
      clt cbvmptv rneqi minveclem7 ) ABCDEUARHHUBUCZQIDQSZFUDZGRZUEZUFZVBUGUMUH
      ZEEUIRZFGHIJKLMNOPVDTVACIDCSZFUDZGRZUEQCIUTVGURVEUJUSVFGURVEDFUKULUNUOVCT
      UQTUP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Projection Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d w x y z .- $.  $d w z ., $.  $d w x y z A $.  $d x B $.  $d w x y z N $.
    $d x .(+) $.  $d x O $.  $d w x y z ph $.  $d w x y z U $.  $d w x y z V $.
    $d y .+ $.  $d x T $.  $d w x y z W $.
    pjthlem.v $e |- V = ( Base ` W ) $.
    pjthlem.n $e |- N = ( norm ` W ) $.
    pjthlem.p $e |- .+ = ( +g ` W ) $.
    pjthlem.m $e |- .- = ( -g ` W ) $.
    pjthlem.h $e |- ., = ( .i ` W ) $.
    pjthlem.l $e |- L = ( LSubSp ` W ) $.
    pjthlem.1 $e |- ( ph -> W e. CHil ) $.
    pjthlem.2 $e |- ( ph -> U e. L ) $.
    pjthlem.4 $e |- ( ph -> A e. V ) $.
    ${
      pjthlem.5 $e |- ( ph -> B e. U ) $.
      pjthlem.7 $e |- ( ph ->
        A. x e. U ( N ` A ) <_ ( N ` ( A .- x ) ) ) $.
      pjthlem.8 $e |- T = ( ( A ., B ) / ( ( B ., B ) + 1 ) ) $.
      $( Lemma for ~ pjth .  (Contributed by NM, 10-Oct-1999.)  (Revised by
         Mario Carneiro, 17-Oct-2015.) $)
      pjthlem1 $p |- ( ph -> ( A ., B ) = 0 ) $=
        ( co ccph wcel cc chl hlcph syl wss lssss sseldd cphipcl syl3anc abscld
        cabs cfv recnd c2 cexp cc0 wceq cle wbr cneg cr caddc clt cmul renegcld
        resqcld reipcl syl2anc 2re readdcl sylancl c1 0red peano2re ipge0 ltp1d
        lelttrd ax-1cn addass mp3an23 df-2 oveq2i syl6reqr breqtrrd lttrd cvsca
        cdiv cmin wral clmod csca cbs cphlmod wne cphl hlphl eqid ipcl ge0p1rpd
        cv hlress rpne0d cphdivcl syl13anc syl5eqel lssvscl syl22anc oveq2 nmcl
        fveq2d nmge0 mpbird crp remulcld nmsq cphsubdi oveq1d eqeltrd ccj cjcld
        oveq2d mulcomd fveq2i cjred eqtrd syl5eq 3eqtr4rd 3eqtrd oveq12d div23d
        absvalsqd 3eqtr3d breq2d rspcv sylc cngp cphngp lmodvsubcl le2sqd mpbid
        lmodvscl subge0d cz rpexpcl rerpdivcld negcld pncand cphsubdir subsub4d
        subcld 1cnd adddid cphassr divcld divassd cjdivd sqvald divcan5d eqtr2d
        2z cphipcj cph2ass syl122anc absdivd rpge0d absidd sqdivd pncan2 subdid
        rpcnd eqtr3d 3eqtr4d negsubd addcomd 3eqtr2d mulneg2d mulneg12 prodge02
        ge0divd le0neg1d sqge0d wa wb 0re letri3 mpbir2and sqeq0d abs00d ) ACDH
        UFZAMUGUHZCLUHZDLUHZUWQUIUHAMUJUHZUWRTMUKULZUBAGLDAGIUHZGLUMUAIGLMNSUNU
        LUCUOZCDHLMNRUPUQZAUWQUSUTZAUXFAUWQUXEURZVAZAUXFVBVCUFZVDVEZUXIVDVFVGZV
        DUXIVFVGZAUXKVDUXIVHZVFVGZAUXMVIUHDDHUFZVBVJUFZVIUHZVDUXPVKVGVDUXMUXPVL
        UFZVFVGUXNAUXIAUXFUXGVNZVMAUXOVIUHZVBVIUHUXQAUWRUWTUXTUXBUXDDHLMNRVOVPZ
        VQUXOVBVRVSZAVDUXOVTVJUFZUXPAWAZAUXTUYCVIUHUYAUXOWBULZUYBAVDUXOUYCUYDUY
        AUYEAUWRUWTVDUXOVFVGUXBUXDDHLMNRWCVPZAUXOUYAWDWEAUYCUYCVTVJUFZUXPVKAUYC
        UYEWDAUYGUXOVTVTVJUFZVJUFZUXPAUXOUIUHZUYGUYIVEZAUXOUYAVAZUYJVTUIUHZUYMU
        YKWFWFUXOVTVTWGWHULVBUYHUXOVJWIWJWKZWLWMAVDUXIUXPVHZVLUFZUXRVFAVDUYPVFV
        GVDUYPUYCVBVCUFZWOUFZVFVGAVDCFDMWNUTZUFZJUFZKUTZVBVCUFZCKUTZVBVCUFZWPUF
        ZUYRVFAVDVUFVFVGVUEVUCVFVGZAVUDVUBVFVGZVUGAUYTGUHZVUDCBXHZJUFZKUTZVFVGZ
        BGWQVUHAMWRUHZUXCFMWSUTZWTUTZUHZDGUHVUIAUWRVUNUXBMXAULZUAAFUWQUYCWOUFZV
        UPUEAUWRUWQVUPUHZUYCVUPUHUYCVDXBVUSVUPUHUXBAMXCUHZUWSUWTVUTAUXAVVATMXDU
        LUBUXDCDVUOHVUPLMVUOXEZRNVUPXEZXFUQAVIVUPUYCAUXAVIVUPUMTVUOVUPMVVBVVCXI
        ULUYEUOAUYCAUXOUYAUYFXGZXJZUWQUYCVUOVUPMVVBVVCXKXLXMZUCVUPIUYSGVUOMFDVV
        BUYSXEZVVCSXNXOUDVUMVUHBUYTGVUJUYTVEZVULVUBVUDVFVVHVUKVUAKVUJUYTCJXPXRU
        UAUUBUUCAVUDVUBAMUUDUHZUWSVUDVIUHAUWRVVIUXBMUUEULZUBCMKLNOXQVPZAVVIVUAL
        UHZVUBVIUHVVJAVUNUWSUYTLUHZVVLVURUBAVUNVUQUWTVVMVURVVFUXDFUYSVUOVUPLMDN
        VVBVVGVVCUUIUQZJLMCUYTNQUUFUQZVUAMKLNOXQVPZAVVIUWSVDVUDVFVGVVJUBCMKLNOX
        SVPAVVIVVLVDVUBVFVGVVJVVOVUAMKLNOXSVPUUGUUHAVUCVUEAVUBVVPVNAVUDVVKVNUUJ
        XTAUXIUYQWOUFZUXPVLUFZVHZCCHUFZVJUFZVVTWPUFVVSVUFUYRAVVSVVTAVVRAVVRAVVQ
        UXPAUXIUYQUXSAUYCYAUHVBUUKUHUYQYAUHVVDUVHUYCVBUULVSZUUMZUYBYBVAZUUNZAUW
        RUWSUWSVVTUIUHUXBUBUBCCHLMNRUPUQZUUOAVUCVWAVUEVVTWPAVUCVVTVVRWPUFZVVTVV
        SVJUFVWAAVUCVUAVUAHUFZCVUAHUFZUYTVUAHUFZWPUFZVWGAUWRVVLVUCVWHVEUXBVVOVU
        AHKLMNROYCVPAUWRUWSVVMVVLVWHVWKVEUXBUBVVNVVOCUYTVUAHJLMRNQUUPXLAVWKVVTC
        UYTHUFZWPUFZVWJWPUFVVTVWLVWJVJUFZWPUFVWGAVWIVWMVWJWPAUWRUWSUWSVVMVWIVWM
        VEUXBUBUBVVNCCUYTHJLMRNQYDXLYEAVVTVWLVWJVWFAUWRUWSVVMVWLUIUHUXBUBVVNCUY
        THLMNRUPUQAVWJUYTCHUFZUYTUYTHUFZWPUFZUIAUWRVVMUWSVVMVWJVWQVEUXBVVNUBVVN
        UYTCUYTHJLMRNQYDXLZAVWOVWPAUWRVVMUWSVWOUIUHUXBVVNUBUYTCHLMNRUPUQAUWRVVM
        VVMVWPUIUHUXBVVNVVNUYTUYTHLMNRUPUQUURYFUUQAVWNVVRVVTWPAVVQUYGVLUFVVQUYC
        VLUFZVVQVTVLUFZVJUFVVRVWNAVVQUYCVTAVVQVWCVAZAUYCUYEVAZAUUSUUTAUXPUYGVVQ
        VLUYNYIAVWLVWSVWJVWTVJAVWLUXIUYCWOUFZUXIUYCVLUFZUYQWOUFZVWSAVWLFYGUTZUW
        QVLUFZUWQVXFVLUFZVXCAUWRVUQUWSUWTVWLVXGVEUXBVVFUBUXDFCDUYSVUOHVUPLMRNVV
        BVVCVVGUVAXLAVXFUWQAFAFVUSUIUEAUWQUYCUXEVXBVVEUVBXMZYHUXEYJAUWQUWQYGUTZ
        VLUFZUYCWOUFUWQVXJUYCWOUFZVLUFVXCVXHAUWQVXJUYCUXEAUWQUXEYHVXBVVEUVCAUXI
        VXKUYCWOAUWQUXEYSYEAVXFVXLUWQVLAVXFVUSYGUTZVXLFVUSYGUEYKAVXMVXJUYCYGUTZ
        WOUFVXLAUWQUYCUXEVXBVVEUVDAVXNUYCVXJWOAUYCUYEYLYIYMYNYIYOYPAVXEUYCUXIVL
        UFZUYCUYCVLUFZWOUFVXCAVXDVXOUYQVXPWOAUXIUYCAUXIUXSVAZVXBYJAUYCVXBUVEYQA
        UXIUYCUYCVXQVXBVXBVVEVVEUVFUVGAUXIUYCUYQVXQVXBAUYQVWBUVRZAUYQVWBXJZYRYP
        ZAVWQVWSVVQUXOVLUFZWPUFZVWJVWTAVWOVWSVWPVYAWPAVWLYGUTZVWLVWOVWSAVWLAVWL
        VWSVIVXTAVVQUYCVWCUYEYBYFYLAUWRUWSVVMVYCVWOVEUXBUBVVNCUYTHLMRNUVIUQVXTY
        TAVWPFVXFVLUFZUXOVLUFZVYAAUWRVUQVUQUWTUWTVWPVYEVEUXBVVFVVFUXDUXDFFDDUYS
        VUOHVUPLMRNVVBVVCVVGUVJUVKAVYDVVQUXOVLAFUSUTZVBVCUFUXFUYCWOUFZVBVCUFVYD
        VVQAVYFVYGVBVCAVYFVUSUSUTZVYGFVUSUSUEYKAVYHUXFUYCUSUTZWOUFVYGAUWQUYCUXE
        VXBVVEUVLAVYIUYCUXFWOAUYCUYEAUYCVVDUVMUVNYIYMYNYEAFVXIYSAUXFUYCUXHVXBVV
        EUVOYTYEYMYQVWRAVVQUYCUXOWPUFZVLUFVWTVYBAVYJVTVVQVLAUYJUYMVYJVTVEUYLWFU
        XOVTUVPVSYIAVVQUYCUXOVXAVXBUYLUVQUVSUVTYQYOYIYPYPAVVTVVRVWFVWDUWAAVVTVV
        SVWFVWEUWBUWCAUWRUWSVUEVVTVEUXBUBCHKLMNROYCVPYQAUYRVVQUYOVLUFVVSAUXIUYO
        UYQVXQAUYOAUXPUYBVMZVAVXRVXSYRAVVQUXPVXAAUXPUYBVAZUWDYMYOWLAUYPUYQAUXIU
        YOUXSVYKYBVWBUWGXTAUXIUIUHUXPUIUHUXRUYPVEVXQVYLUXIUXPUWEVPWLUXMUXPUWFXO
        AUXIUXSUWHXTAUXFUXGUWIAUXIVIUHVDVIUHUXJUXKUXLUWJUWKUXSUWLUXIVDUWMVSUWNU
        WOUWP $.
    $}

    pjthlem.j $e |- J = ( TopOpen ` W ) $.
    pjthlem.s $e |- .(+) = ( LSSum ` W ) $.
    pjthlem.o $e |- O = ( ocv ` W ) $.
    pjthlem.3 $e |- ( ph -> U e. ( Clsd ` J ) ) $.
    $( Lemma for ~ pjth .  (Contributed by NM, 10-Oct-1999.)  (Revised by Mario
       Carneiro, 15-May-2014.) $)
    pjthlem2 $p |- ( ph -> A e. ( U .(+) ( O ` U ) ) ) $=
      ( vx vy vz vw cv co cfv cle wbr wral wcel wreu wrex chl ccph syl syl6eleq
      hlcph clss cress ccms ccld wss wb hlcms lssss cmsss syl2anc mpbird minvec
      eqid reurex cabl wceq clmod adantr cphlmod lmodabl simprl sseldd syl12anc
      wa ablpncan3 lsssssubg cphl cphphl ocvlss csca c0g lmodvsubcl syl3anc cc0
      csubg c1 caddc cdiv ad2antrr simpr lssvacl syl22anc simplrr fveq2d breq2d
      oveq2 rspcv sylc cgrp lmodgrp sselda syl13anc breqtrrd ralrimiva pjthlem1
      grpsubsub4 cclm cphclm eqtrd elocv syl3anbrc lsmelvali eqeltrrd rexlimddv
      clm0 ) ABUGUKZIULZJUMZBUHUKZIULZJUMZUNUOZUHEUPZBEEKUMZDULZUQUGEAYQUGEURYQ
      UGEUSAUGUHBMIJLENQOAMUTUQZMVAUQZTMVDVBZAEHMVEUMUASVCAMEVFULZVGUQZEGVHUMUQ
      ZUFAMVGUQZELVIZUUDUUEVJAYTUUFTMVKVBAEHUQZUUGUAHELMNSVLZVBEGUUCMLUUCVQNUCV
      MVNVOUBVPYQUGEVRVBAYJEUQZYQWHZWHZYJYKCULZBYSUULMVSUQZYJLUQZBLUQZUUMBVTUUL
      MWAUQZUUNUULUUAUUQAUUAUUKUUBWBZMWCVBZMWDVBUULELYJUULUUHUUGAUUHUUKUAWBZUUI
      VBZAUUJYQWEZWFZAUUPUUKUBWBZLCMIYJBNPQWIWGUULEMWSUMZUQYRUVEUQUUJYKYRUQZUUM
      YSUQUULHUVEEUULUUQHUVEVIUUSHMSWJVBZUUTWFUULHUVEYRUVGUULMWKUQZUUGYRHUQUULU
      UAUVHUURMWLVBUVAEHKLMNUESWMVNWFUVBUULUUGYKLUQZYKUIUKZFULZMWNUMZWOUMZVTZUI
      EUPUVFUVAUULUUQUUPUUOUVIUUSUVDUVCILMBYJNQWPWQZUULUVNUIEUULUVJEUQZWHZUVKWR
      UVMUVQUJYKUVJCUVKUVJUVJFULWTXAULXBULZEFHIJLMNOPQRSAYTUUKUVPTXCUULUUHUVPUU
      TWBUULUVIUVPUVOWBUULUVPXDUULYLYKUJUKZIULZJUMZUNUOZUJEUPUVPUULUWBUJEUULUVS
      EUQZWHZYLBUVSYJCULZIULZJUMZUWAUNUWDUWEEUQZYQYLUWGUNUOZUWDUUQUUHUWCUUJUWHU
      ULUUQUWCUUSWBUULUUHUWCUUTWBUULUWCXDUULUUJUWCUVBWBCHEMUVSYJPSXEXFAUUJYQUWC
      XGYPUWIUHUWEEYMUWEVTZYOUWGYLUNUWJYNUWFJYMUWEBIXJXHXIXKXLUWDUVTUWFJUWDMXMU
      QZUUPUUOUVSLUQUVTUWFVTUULUWKUWCUULUUQUWKUUSMXNVBWBUULUUPUWCUVDWBUULUUOUWC
      UVCWBUULELUVSUVAXOLCMIBYJUVSNPQXTXPXHXQXRWBUVRVQXSUVQMYAUQZWRUVMVTUVQUUAU
      WLUULUUAUVPUURWBMYBVBUVLMUVLVQZYIVBYCXRUIYKEUVLFKLMUVMNRUWMUVMVQUEYDYECDE
      YRMYJYKPUDYFXFYGYH $.
  $}

  ${
    $d x .(+) $.  $d x J $.  $d x L $.  $d x O $.  $d x U $.  $d x V $.
    $d x W $.
    pjth.v $e |- V = ( Base ` W ) $.
    pjth.s $e |- .(+) = ( LSSum ` W ) $.
    pjth.o $e |- O = ( ocv ` W ) $.
    pjth.j $e |- J = ( TopOpen ` W ) $.
    pjth.l $e |- L = ( LSubSp ` W ) $.
    $( Projection Theorem:  Any Hilbert space vector ` A ` can be decomposed
       uniquely into a member ` x ` of a closed subspace ` H ` and a member
       ` y ` of the complement of the subspace.  Theorem 3.7(i) of [Beran]
       p. 102 (existence part).  (Contributed by NM, 23-Oct-1999.)  (Revised by
       Mario Carneiro, 14-May-2014.) $)
    pjth $p |- ( ( W e. CHil /\ U e. L /\ U e. ( Clsd ` J ) ) ->
      ( U .(+) ( O ` U ) ) = V ) $=
      ( vx chl wcel cfv wss syl lssss eqid ccld w3a co clmod cphl hlphl phllmod
      3ad2ant1 simp2 3ad2ant2 ocvlss syl2anc lsmcl syl3anc cv wa cplusg cip csg
      cnm simpl1 simpl2 simpr simpl3 pjthlem2 ex ssrdv eqssd ) GNOZBDOZBCUAPOZU
      BZBBEPZAUCZFVLVNDOZVNFQVLGUDOZVJVMDOZVOVLGUEOZVPVIVJVRVKGUFUHZGUGRVIVJVKU
      IVLVRBFQZVQVSVJVIVTVKDBFGHLSUJBDEFGHJLUKULADBVMGLIUMUNDVNFGHLSRVLMFVNVLMU
      OZFOZWAVNOVLWBUPWAGUQPZABGURPZCDGUSPZGUTPZEFGHWFTWCTWETWDTLVIVJVKWBVAVIVJ
      VKWBVBVLWBVCKIJVIVJVKWBVDVEVFVGVH $.
  $}

  ${
    pjth2.j $e |- J = ( TopOpen ` W ) $.
    pjth2.l $e |- L = ( LSubSp ` W ) $.
    pjth2.k $e |- K = ( proj ` W ) $.
    $( Projection Theorem with abbreviations:  A topologically closed subspace
       is a projection subspace.  (Contributed by Mario Carneiro,
       17-Oct-2015.) $)
    pjth2 $p |- ( ( W e. CHil /\ U e. L /\ U e. ( Clsd ` J ) ) ->
      U e. dom K ) $=
      ( chl wcel ccld cfv w3a cdm cocv clsm co cbs wceq eqid simp2 pjth cphl wa
      wb hlphl 3ad2ant1 pjdm2 syl mpbir2and ) EIJZADJZABKLJZMZACNJZULAAEOLZLEPL
      ZQERLZSZUKULUMUAUQABDUPUREURTZUQTZUPTZFGUBUNEUCJZUOULUSUDUEUKULVCUMEUFUGU
      QACDUPUREUTGVBVAHUHUIUJ $.
  $}

  ${
    $d x C $.  $d x J $.  $d x L $.  $d x W $.
    cldcss.v $e |- V = ( Base ` W ) $.
    cldcss.j $e |- J = ( TopOpen ` W ) $.
    cldcss.l $e |- L = ( LSubSp ` W ) $.
    cldcss.c $e |- C = ( CSubSp ` W ) $.
    $( Corollary of the Projection Theorem:  A topologically closed subspace is
       algebraically closed in Hilbert space.  (Contributed by Mario Carneiro,
       17-Oct-2015.) $)
    cldcss $p |- ( W e. CHil ->
      ( U e. C <-> ( U e. L /\ U e. ( Clsd ` J ) ) ) ) $=
      ( chl wcel ccld cfv wa cphl hlphl csslss sylan ccph hlcph jca w3a cpj cdm
      csscld wss 3ad2ant1 eqid pjcss syl pjth2 sseldd 3expb impbida ) FKLZBALZB
      DLZBCMNLZOUPUQOURUSUPFPLZUQURFQZABDFJIRSUPFTLUQUSFUAABCFJHUFSUBUPURUSUQUP
      URUSUCZFUDNZUEZABVBUTVDAUGUPURUTUSVAUHAVCFVCUIZJUJUKBCVCDFHIVEULUMUNUO $.

    $( Corollary of the Projection Theorem:  A topologically closed subspace is
       algebraically closed in Hilbert space.  (Contributed by Mario Carneiro,
       17-Oct-2015.) $)
    cldcss2 $p |- ( W e. CHil -> C = ( L i^i ( Clsd ` J ) ) ) $=
      ( vx chl wcel ccld cfv cin cv wa cldcss elin syl6bbr eqrdv ) EKLZJACBMNZO
      ZUBJPZALUECLUEUCLQUEUDLAUEBCDEFGHIRUECUCSTUA $.
  $}

  ${
    $d x W $.
    $( Corollary of the Projection Theorem:  A subcomplex Hilbert space is a
       Hilbert space (in the algebraic sense, meaning that all algebraically
       closed subspaces have a projection decomposition).  (Contributed by
       Mario Carneiro, 17-Oct-2015.) $)
    hlhil $p |- ( W e. CHil -> W e. Hil ) $=
      ( chl wcel cphl cpj cfv cdm ccss wceq chs hlphl wss eqid pjcss clss ctopn
      vx syl ccld cin cbs cldcss2 cv wa pjth2 3expib syl5bi ssrdv eqsstrd eqssd
      elin ishil sylanbrc ) ABCZADCZAEFZGZAHFZIAJCAKZUNUQURUNUOUQURLUSURUPAUPMZ
      URMZNRUNURAOFZAPFZSFZTZUQURVCVBAUAFZAVFMVCMZVBMZVAUBUNQVEUQQUCZVECVIVBCZV
      IVDCZUDUNVIUQCZVIVBVDUKUNVJVKVLVIVCUPVBAVGVHUTUEUFUGUHUIUJURAUPUTVAULUM
      $.
  $}


$(
###############################################################################
  BASIC REAL AND COMPLEX ANALYSIS
###############################################################################
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Continuity
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  ${
    $d X x $.  $d ph x $.
    mulcncf.1 $e |- ( ph -> ( x e. X |-> A ) e. ( X -cn-> CC ) ) $.
    mulcncf.2 $e |- ( ph -> ( x e. X |-> B ) e. ( X -cn-> CC ) ) $.
    $( The multiplication of two continuous complex functions is continuous.
       (Contributed by Glauco Siliprandi, 29-Jun-2017.) $)
    mulcncf $p |- ( ph -> ( x e. X |-> ( A x. B ) ) e. ( X -cn-> CC ) ) $=
      ( cmul ccnfld ctopn cfv eqid ctx co ccn wcel mulcn a1i cncfmpt2f ) ABCDHI
      JKZETLZHTTMNTONPATUAQRFGS $.
  $}

  ${
    $d B y $.  $d X x $.  $d ph x $.  $d x y $.
    divcncf.1 $e |- ( ph -> ( x e. X |-> A ) e. ( X -cn-> CC ) ) $.
    divcncf.2 $e |- ( ph -> ( x e. X |-> B ) e. ( X -cn-> ( CC \ { 0 } ) ) )
       $.
    $( The quotient of two continuous complex functions is continuous.
       (Contributed by Glauco Siliprandi, 11-Dec-2019.) $)
    divcncf $p |- ( ph -> ( x e. X |-> ( A / B ) ) e. ( X -cn-> CC ) ) $=
      ( vy cdiv co cmpt c1 cc ccncf cv wcel wf cncff syl cc0 cmul wa mptex2 csn
      cdif eldifad wne eldifsni divrecd mpteq2dva ccom csb ralrimiva eqidd wceq
      fmptcos csbov2g csbvarg oveq2d eqtr2d ax-1cn eqid cdivcncf cncfco eqeltrd
      eqtrd mp1i mulcncf ) ABECDIJZKBECLDIJZUAJZKEMNJZABEVIVKABOEPUBZCDABECMABE
      CKZVLPEMVNQFEMVNRSUCVMDMTUDZABEDMVOUEZABEDKZEVPNJPEVPVQQGEVPVQRSUCZUFZVMD
      VPPZDTUGVRDMTUHSUIUJABCVJEFABEVJKZHVPLHOZIJZKZVQUKZVLAWEBEHDWCULZKWAABHEV
      PDWCVQWDAVTBEVRUMAVQUNAWDUNUPABEWFVJVMWFLHDWBULZIJZVJVMDMPZWFWHUOVSHDLWBI
      MUQSVMWGDLIVMWIWGDUOVSHDMURSUSVFUJUTAEVPMVQWDGLMPWDVPMNJPAVAHLWDWDVBVCVGV
      DVEVHVE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Intermediate value theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d a b c A $.  $d b c B $.  $d c C $.  $d a b c F $.  $d a b c S $.
    pmltpclem1.1 $e |- ( ph -> A e. S ) $.
    pmltpclem1.2 $e |- ( ph -> B e. S ) $.
    pmltpclem1.3 $e |- ( ph -> C e. S ) $.
    pmltpclem1.4 $e |- ( ph -> A < B ) $.
    pmltpclem1.5 $e |- ( ph -> B < C ) $.
    pmltpclem1.6 $e |- ( ph ->
      ( ( ( F ` A ) < ( F ` B ) /\ ( F ` C ) < ( F ` B ) ) \/
        ( ( F ` B ) < ( F ` A ) /\ ( F ` B ) < ( F ` C ) ) ) ) $.
    $( Lemma for ~ pmltpc .  (Contributed by Mario Carneiro, 1-Jul-2014.) $)
    pmltpclem1 $p |- ( ph ->
      E. a e. S E. b e. S E. c e. S ( a < b /\ b < c /\
        ( ( ( F ` a ) < ( F ` b ) /\ ( F ` c ) < ( F ` b ) ) \/
          ( ( F ` b ) < ( F ` a ) /\ ( F ` b ) < ( F ` c ) ) ) ) ) $=
      ( clt wbr cfv wa wo wcel w3a wrex wceq breq1 breq1d anbi1d breq2d orbi12d
      fveq2 3anbi13d breq2 anbi12d 3anbi123d anbi2d 3anbi23d rspc3ev syl33anc
      cv ) ABEUACEUADEUABCPQZCDPQZBFRZCFRZPQZDFRZVCPQZSZVCVBPQZVCVEPQZSZTZGUSZH
      USZPQZVMIUSZPQZVLFRZVMFRZPQZVOFRZVRPQZSZVRVQPQZVRVTPQZSZTZUBZIEUCHEUCGEUC
      JKLMNOWGUTVAVKUBBVMPQZVPVBVRPQZWASZVRVBPQZWDSZTZUBUTCVOPQZVDVTVCPQZSZVHVC
      VTPQZSZTZUBGHIBCDEEEVLBUDZVNWHWFWMVPVLBVMPUEWTWBWJWEWLWTVSWIWAWTVQVBVRPVL
      BFUJZUFUGWTWCWKWDWTVQVBVRPXAUHUGUIUKVMCUDZWHUTVPWNWMWSVMCBPULVMCVOPUEXBWJ
      WPWLWRXBWIVDWAWOXBVRVCVBPVMCFUJZUHXBVRVCVTPXCUHUMXBWKVHWDWQXBVRVCVBPXCUFX
      BVRVCVTPXCUFUMUIUNVODUDZWNVAWSVKUTVODCPULXDWPVGWRVJXDWOVFVDXDVTVEVCPVODFU
      JZUFUOXDWQVIVHXDVTVEVCPXEUHUOUIUPUQUR $.
  $}

  ${
    $d a b c A $.  $d a b c F $.  $d b c V $.  $d a b c U $.  $d a b c W $.
    $d b c X $.
    pmltpc.1 $e |- ( ph -> F e. ( RR ^pm RR ) ) $.
    pmltpc.2 $e |- ( ph -> A C_ dom F ) $.
    pmltpc.3 $e |- ( ph -> U e. A ) $.
    pmltpc.4 $e |- ( ph -> V e. A ) $.
    pmltpc.5 $e |- ( ph -> W e. A ) $.
    pmltpc.6 $e |- ( ph -> X e. A ) $.
    pmltpc.7 $e |- ( ph -> U <_ V ) $.
    pmltpc.8 $e |- ( ph -> W <_ X ) $.
    pmltpc.9 $e |- ( ph -> -. ( F ` U ) <_ ( F ` V ) ) $.
    pmltpc.10 $e |- ( ph -> -. ( F ` X ) <_ ( F ` W ) ) $.
    $( Lemma for ~ pmltpc .  (Contributed by Mario Carneiro, 1-Jul-2014.) $)
    pmltpclem2 $p |- ( ph -> E. a e. A E. b e. A E. c e. A ( a < b /\ b < c /\
      ( ( ( F ` a ) < ( F ` b ) /\ ( F ` c ) < ( F ` b ) ) \/
        ( ( F ` b ) < ( F ` a ) /\ ( F ` b ) < ( F ` c ) ) ) ) ) $=
      ( cv clt wbr cfv wa wo w3a wrex wcel ad2antrr simpr wne cdm cr wf wss cpm
      co reex elpm2 sylib simpld sseldd ffvelrnd cle wn ltnled gtned wceq fveq2
      mpbird eqcomd necon3i syl simprd leltned simplr orcd pmltpclem1 ltlecasei
      jca olcd adantr lelttrd lttrd ) AHUAZIUAZUBUCWGJUAZUBUCWFDUDZWGDUDZUBUCWH
      DUDZWJUBUCUEWJWIUBUCWJWKUBUCUEUFUGJBUHIBUHHBUHZFDUDZCDUDZAWMWNUBUCZUEZWLF
      CWPFCUBUCZUEZFCEBDHIJAFBUIZWOWQOUJACBUIZWOWQMUJAEBUIZWOWQNUJWPWQUKACEUBUC
      ZWOWQAXBECULZAWNEDUDZULXCAXDWNADUMZUNEDAXEUNDUOZXEUNUPZADUNUNUQURUIXFXGUE
      KUNUNDUSUSUTVAZVBZABXEELNVCZVDZAXDWNUBUCZWNXDVEUCVFSAXDWNXKAXEUNCDXIABXEC
      LMVCZVDZVGVKZVHECWNXDECVIXDWNECDVJVLVMVNACEAXEUNCAXFXGXHVOZXMVCZAXEUNEXPX
      JVCZQVPVKZUJWRWOXLUEWNWMUBUCZWNXDUBUCZUEWRWOXLAWOWQVQAXLWOWQXOUJWAVRVSWPC
      FVEUCZUEZCFGBDHIJAWTWOYBMUJAWSWOYBOUJAGBUIZWOYBPUJYCCFUBUCFCULZYCWNWMULYE
      YCWMWNAWMUNUIZWOYBAXEUNFDXIABXEFLOVCZVDZUJAWOYBVQZVHFCWNWMFCVIWMWNFCDVJVL
      VMVNYCCFACUNUIZWOYBXQUJAFUNUIZWOYBAXEUNFXPYGVCZUJWPYBUKVPVKAFGUBUCZWOYBAY
      MGFULZAGDUDZWMULYNAWMYOYHAWMYOUBUCZYOWMVEUCVFTAWMYOYHAXEUNGDXIABXEGLPVCZV
      DZVGVKZVHGFYOWMGFDVJVMVNAFGYLAXEUNGXPYQVCZRVPVKZUJYCWOYPUEXTYOWMUBUCZUEYC
      WOYPYIAYPWOYBYSUJWAWBVSAYKWOYLWCAYJWOXQWCVTAWNWMVEUCZUEZWLEGUUDEGUBUCZUEZ
      CEGBDHIJAWTUUCUUEMUJAXAUUCUUENUJAYDUUCUUEPUJAXBUUCUUEXSUJUUDUUEUKUUFXLXDY
      OUBUCZUEYAYOXDUBUCZUEUUFXLUUGAXLUUCUUEXOUJUUDUUGUUEUUDXDWNYOAXDUNUIZUUCXK
      WCAWNUNUIUUCXNWCZAYOUNUIUUCYRWCZAXLUUCXOWCUUDWNWMYOUUJAYFUUCYHWCUUKAUUCUK
      AYPUUCYSWCWDWEZWCWAWBVSUUDGEVEUCZUEZFGEBDHIJAWSUUCUUMOUJAYDUUCUUMPUJAXAUU
      CUUMNUJAYMUUCUUMUUAUJUUNGEUBUCEGULZUUNYOXDULUUOUUNXDYOAUUIUUCUUMXKUJUUDUU
      GUUMUULWCZVHEGYOXDEGVIXDYOEGDVJVLVMVNUUNGEAGUNUIZUUCUUMYTUJAEUNUIZUUCUUMX
      RUJUUDUUMUKVPVKUUNYPUUGUEUUBUUHUEUUNYPUUGAYPUUCUUMYSUJUUPWAVRVSAUURUUCXRW
      CAUUQUUCYTWCVTYHXNVT $.
  $}

  ${
    $d a b c w x y z A $.  $d a b c w x y z F $.
    $( Any function on the reals is either increasing, decreasing, or has a
       triple of points in a vee formation.  (This theorem was created on
       demand by Mario Carneiro for the 6PCM conference in Bialystok,
       1-Jul-2014.)  (Contributed by Mario Carneiro, 1-Jul-2014.) $)
    pmltpc $p |- ( ( F e. ( RR ^pm RR ) /\ A C_ dom F ) ->
      ( A. x e. A A. y e. A ( x <_ y -> ( F ` x ) <_ ( F ` y ) ) \/
        A. x e. A A. y e. A ( x <_ y -> ( F ` y ) <_ ( F ` x ) ) \/
        E. a e. A E. b e. A E. c e. A ( a < b /\ b < c /\
        ( ( ( F ` a ) < ( F ` b ) /\ ( F ` c ) < ( F ` b ) ) \/
          ( ( F ` b ) < ( F ` a ) /\ ( F ` b ) < ( F ` c ) ) ) ) ) ) $=
      ( vz vw wcel wa cv cle wbr cfv wi wral clt wrex wn cr cpm cdm wss w3a w3o
      co wo rexanali rexbii rexnal bitri weq breq1 fveq2 imbi12d breq2 cbvral2v
      breq2d breq1d xchbinx anbi12i reeanv ioran 3bitr4i simplll simpld simpllr
      simprd simplrl simplrr simprll simprrl simprlr simprrr pmltpclem2 syl5bir
      ex rexlimdvva orrd df-3or sylibr ) DUAUAUBUGJZCDUCUDZKZALZBLZMNZWFDOZWGDO
      ZMNZPBCQZACQZWHWJWIMNZPZBCQACQZUHZELZFLZRNWSGLZRNWRDOZWSDOZRNWTDOZXBRNKXB
      XARNXBXCRNKUHUEGCSFCSECSZUHWMWPXDUFWEWQXDWQTZWHWKTZKZBCSZHLZILZMNZXJDOZXI
      DOZMNZTZKZICSZKZHCSACSZWEXDXHACSZXQHCSZKWMTZWPTZKXSXEXTYBYAYCXTWLTZACSYBX
      HYDACWHWKBCUIUJWLACUKULYAXKXNPZICQZTZHCSZYCXQYGHCXKXNICUIUJYHYFHCQWPYFHCU
      KYEWOWFXJMNZXLWIMNZPHIABCCHAUMZXKYIXNYJXIWFXJMUNYKXMWIXLMXIWFDUOUSUPIBUMZ
      YIWHYJWNXJWGWFMUQYLXLWJWIMXJWGDUOUTUPURVAULVBXHXQAHCCVCWMWPVDVEWEXRXDAHCC
      XRXGXPKZICSBCSWEWFCJZXICJZKZKZXDXGXPBICCVCYQYMXDBICCYQWGCJZXJCJZKZKZYMXDU
      UAYMKZCWFDWGXIXJEFGUUBWCWDWEYPYTYMVFZVGUUBWCWDUUCVIUUBYNYOWEYPYTYMVHZVGYQ
      YRYSYMVJUUBYNYOUUDVIYQYRYSYMVKUUAWHXFXPVLUUAXGXKXOVMUUAWHXFXPVNUUAXGXKXOV
      OVPVRVSVQVSVQVTWMWPXDWAWB $.
  $}

  ${
    $d c x y z B $.  $d c x y z D $.  $d c x y z F $.  $d c x y z ph $.
    $d c x y A $.  $d x y z C $.  $d x y z S $.  $d c x y z U $.
    ivth.1 $e |- ( ph -> A e. RR ) $.
    ivth.2 $e |- ( ph -> B e. RR ) $.
    ivth.3 $e |- ( ph -> U e. RR ) $.
    ivth.4 $e |- ( ph -> A < B ) $.
    ivth.5 $e |- ( ph -> ( A [,] B ) C_ D ) $.
    ivth.7 $e |- ( ph -> F e. ( D -cn-> CC ) ) $.
    ivth.8 $e |- ( ( ph /\ x e. ( A [,] B ) ) -> ( F ` x ) e. RR ) $.
    ${
      ivth.9 $e |- ( ph -> ( ( F ` A ) < U /\ U < ( F ` B ) ) ) $.
      ${
        ivth.10 $e |- S = { x e. ( A [,] B ) | ( F ` x ) <_ U } $.
        $( Lemma for ~ ivth .  The set ` S ` of all ` x ` values with
           ` ( F `` x ) ` less than ` U ` is lower bounded by ` A ` and upper
           bounded by ` B ` .  (Contributed by Mario Carneiro, 17-Jun-2014.) $)
        ivthlem1 $p |- ( ph -> ( A e. S /\ A. z e. S z <_ B ) ) $=
          ( wcel wbr cv cle wral cicc co cfv cxr rexrd lbicc2 syl3anc ralrimiva
          ltled cr wceq fveq2 eleq1d rspcv sylc clt simpld breq1d sylanbrc crab
          elrab2 ssrab2 eqsstri sseli iccleub 3expia syl2anc syl5 ralrimiv jca
          wi ) ADGSZCUAZEUBTZCGUCADDEUDUEZSZDIUFZHUBTZVOADUGSZEUGSZDEUBTVSADJUH
          ZAEKUHZADEJKMULDEUIUJZAVTHAVSBUAZIUFZUMSZBVRUCVTUMSZWFAWIBVRPUKWIWJBD
          VRWGDUNZWHVTUMWGDIUOZUPUQURLAVTHUSTHEIUFUSTQUTULWHHUBTZWABDVRGWKWHVTH
          UBWLVARVDVBAVQCGVPGSVPVRSZAVQGVRVPGWMBVRVCVRRWMBVRVEVFVGAWBWCWNVQVNWD
          WEWBWCWNVQDEVPVHVIVJVKVLVM $.

        ivth.11 $e |- C = sup ( S , RR , < ) $.
        $( Lemma for ~ ivth .  Show that the supremum of ` S ` cannot be less
           than ` U ` .  If it was, continuity of ` F ` implies that there are
           points just above the supremum that are also less than ` U ` , a
           contradiction.  (Contributed by Mario Carneiro, 17-Jun-2014.) $)
        ivthlem2 $p |- ( ph -> -. ( F ` C ) < U ) $=
          ( wbr vy vz cfv clt wa cv cmin co cabs wi wral crp wrex wn ccncf wcel
          cc adantr cicc cr cle csup wss c0 wne w3a crab ssrab2 eqsstri iccssre
          syl2anc syl5ss ivthlem1 simpld ne0i syl simprd wceq breq2 rspcev 3jca
          ralbidv suprcl syl5eqel suprub syl6breqr wb suprleub mpbird mpbir3and
          syl5eqbr elicc2 sseldd ralrimiva fveq2 eleq1d rspcv sylc difrp biimpa
          cncfi syl3anc ssralv ad2antrr c2 cdiv caddc cif rphalfcl adantl rpred
          readdcld ifcld cxr rexrd ltled ubicc2 lttr mpan2d ltnrd breq2d notbid
          imp syl5ibrcom necon2ad jctild ltlend sylibrd mpd ltaddrpd letrd min1
          ifboth abssubge0d rpre breq1d recnd syld syl5 rexlimdva min2 rphalflt
          ltadd2dd lelttrd ltsubadd2d eqbrtrd oveq1 fveq2d r19.29 pm3.45 simprr
          anbi12d syl12anc simprl simplll resubcld ltle pncan3d elrab2 ad2antrl
          absdifltd baib 3imtr4d 3syl lenltd sylibd adantld sylbid mt2d pm2.21d
          ex expr com23 impd pm2.01da ) AEIUCZHUDTZAUVQUEZUAUFZEUGUHZUIUCZUBUFZ
          UDTZUVSIUCZUVPUGUHUIUCHUVPUGUHZUDTZUJZUAFUKZUBULUMZUVQUNZUVRIFUQUOUHU
          PZEFUPZUWEULUPZUWIAUWKUVQOURAUWLUVQACDUSUHZFENAEUWNUPZEUTUPZCEVATZEDV
          ATZAEGUTUDVBZUTSAGUTVCZGVDVEZUWBBUFZVATZUBGUKZBUTUMZVFZUWSUTUPAUWTUXA
          UXEAGUWNUTGUXBIUCZHVATZBUWNVGUWNRUXHBUWNVHVIACUTUPZDUTUPZUWNUTVCZJKCD
          VJVKZVLACGUPZUXAAUXMUWBDVATZUBGUKZABUBCDFGHIJKLMNOPQRVMZVNZGCVOVPAUXJ
          UXOUXEKAUXMUXOUXPVQZUXDUXOBDUTUXBDVRZUXCUXNUBGUXBDUWBVAVSWBVTVKWAZBUB
          GWCVPWDZACUWSEVAAUXFUXMCUWSVATUXTUXQBUBGCWEVKSWFZAEUWSDVASAUWSDVATZUX
          OUXRAUXFUXJUYCUXOWGUXTKBUBUBGDWHVKWIWKZAUXIUXJUWOUWPUWQUWRVFWGJKCDEWL
          VKWJZWMURAUVQUWMAUVPUTUPZHUTUPZUVQUWMWGAUWOUXGUTUPZBUWNUKZUYFUYEAUYHB
          UWNPWNZUYHUYFBEUWNUXBEVRUXGUVPUTUXBEIWOWPWQWRZLUVPHWSVKWTUBUAFUQEUWEI
          XAXBUVRUWHUWJUBULUVRUWBULUPZUEZUWHUWGUAUWNUKZUWJAUWHUYNUJZUVQUYLAUWNF
          VCUYONUWGUAUWNFXCVPXDUYMUYNUWCEUVSUDTZUEZUAUWNUMZUWJUYMDEUWBXEXFUHZXG
          UHZVATZDUYTXHZUWNUPZVUBEUGUHZUIUCZUWBUDTZEVUBUDTZUYRUYMVUCVUBUTUPZCVU
          BVATZVUBDVATZUYMVUADUYTUTAUXJUVQUYLKXDZUYMEUYSAUWPUVQUYLUYAXDZUYMUYSU
          YLUYSULUPUVRUWBXIXJZXKZXLZXMZUYMCEVUBAUXIUVQUYLJXDVULVUPAUWQUVQUYLUYB
          XDUYMEVUBVULVUPUYMEDUDTZEUYTUDTZVUGUYMUVPDIUCZUDTZVUQUVRVUTUYLAUVQVUT
          AUVQHVUSUDTZVUTACIUCHUDTVVAQVQAUYFUYGVUSUTUPZUVQVVAUEVUTUJUYKLADUWNUP
          ZUYIVVBACXNUPDXNUPCDVATVVCACJXOADKXOACDJKMXPCDXQXBUYJUYHVVBBDUWNUXSUX
          GVUSUTUXBDIWOWPWQWRUVPHVUSXRXBXSYCURAVUTVUQUJUVQUYLAVUTUWRDEVEZUEVUQA
          VUTVVDUWRAVUTDEAVUTUNDEVRZUVPUVPUDTZUNAUVPUYKXTVVEVUTVVFVVEVUSUVPUVPU
          DDEIWOYAYBYDYEUYDYFAEDUYAKYGYHXDYIUYMEUYSVULVUMYJVUAVUQVURVUGDUYTDVUB
          EUDVSUYTVUBEUDVSYMVKZXPZYKUYMUXJUYTUTUPZVUJVUKVUODUYTYLVKAVUCVUHVUIVU
          JVFWGZUVQUYLAUXIUXJVVJJKCDVUBWLVKXDWJUYMVUEVUDUWBUDUYMEVUBVULVUPVVHYN
          UYMVUDUWBUDTVUBEUWBXGUHZUDTUYMVUBUYTVVKVUPVUOUYMEUWBVULUYLUWBUTUPUVRU
          WBYOXJZXLUYMUXJVVIVUBUYTVATVUKVUODUYTUUAVKUYMUYSUWBEVUNVVLVULUYLUYSUW
          BUDTUVRUWBUUBXJUUCUUDUYMVUBEUWBVUPVULVVLUUEWIUUFVVGUYQVUFVUGUEUAVUBUW
          NUVSVUBVRZUWCVUFUYPVUGVVMUWAVUEUWBUDVVMUVTVUDUIUVSVUBEUGUUGUUHYPUVSVU
          BEUDVSUULVTUUMUYNUYRUEUWGUYQUEZUAUWNUMUYMUWJUWGUYQUAUWNUUIUYMVVNUWJUA
          UWNVVNUWFUYPUEZUYMUVSUWNUPZUEZUWJUWGUYQVVOUWCUWFUYPUUJYCVVQUWFUYPUWJV
          VQUYPUWFUWJUYMVVPUYPUWFUWJUJUYMVVPUYPUEZUEZUWFUWJVVSUWFUYPUYMVVPUYPUU
          KVVSUWFUVPUWEUGUHUWDUDTZUWDUVPUWEXGUHZUDTZUEUYPUNZVVSUWDUVPUWEVVSVVPU
          YIUWDUTUPZUYMVVPUYPUUNZVVSAUYIAUVQUYLVVRUUOZUYJVPUYHVWDBUVSUWNUXBUVSV
          RZUXGUWDUTUXBUVSIWOZWPWQWRZVVSAUYFVWFUYKVPZVVSHUVPVVSAUYGVWFLVPZVWJUU
          PUVAVVSVWBVWCVVTVVSVWBUVSGUPZVWCVVSUWDHUDTZUWDHVATZVWBVWLVVSVWDUYGVWM
          VWNUJVWIVWKUWDHUUQVKVVSVWAHUWDUDVVSUVPHVVSUVPVWJYQVVSHVWKYQUURYAVVPVW
          LVWNWGUYMUYPVWLVVPVWNUXHVWNBUVSUWNGVWGUXGUWDHVAVWHYPRUUSUVBUUTUVCVVSV
          WLUVSEVATZVWCVVSAUXFVWLVWOUJVWFUXTUXFVWLVWOUXFVWLUEUVSUWSEVABUBGUVSWE
          SWFUVKUVDVVSUVSEVVSUWNUTUVSVVSAUXKVWFUXLVPVWEWMVVSAUWPVWFUYAVPUVEUVFY
          RUVGUVHUVIUVJUVLUVMUVNYSYTYSXSYRYTYIUVO $.

        $( Lemma for ~ ivth , the intermediate value theorem.  Show that
           ` ( F `` C ) ` cannot be greater than ` U ` , and so establish the
           existence of a root of the function.  (Contributed by Mario
           Carneiro, 30-Apr-2014.)  (Revised by Mario Carneiro,
           17-Jun-2014.) $)
        ivthlem3 $p |- ( ph -> ( C e. ( A (,) B ) /\ ( F ` C ) = U ) ) $=
          ( wbr vz vy cioo co wcel cfv wceq cr clt csup wss c0 wne cv wral wrex
          cle w3a cicc crab ssrab2 eqsstri iccssre syl2anc syl5ss ivthlem1 ne0i
          simpld syl simprd breq2 ralbidv rspcev suprcl syl5eqel wn ivthlem2 wa
          3jca cmin cabs wi cc ccncf adantr suprub syl6breqr wb suprleub mpbird
          crp syl5eqbr elicc2 mpbir3and sseldd ralrimiva fveq2 rspcv sylc difrp
          eleq1d biimpa cncfi syl3anc ssralv ad2antrr ltsubrp sylancom syl6breq
          rpre adantl resubcld suprlub mpbid ad2antrl simplll simprl abssuble0d
          sseli simprr ltsub23d eqbrtrd jca32 ex reximdv2 r19.29 ad2antll recnd
          mpd breq1d sylbid rexlimdva notbid necon2ad jctild ltlend sylibrd cxr
          syl5 rexrd pm3.45 imp absdifltd nncand elrab2 simprbi pm2.21d adantrd
          caddc lenltd expr com23 impd syld pm2.01da lttri3d mpbir2and breqtrrd
          mpan2d ltnrd syl5ibcom breq2d syl5ibrcom elioo2 jca ) AECDUCUDUEZEIUF
          ZHUGZAUVFEUHUEZCEUITZEDUITZAEGUHUIUJZUHSAGUHUKZGULUMZUAUNZBUNZUQTZUAG
          UOZBUHUPZURZUVLUHUEAUVMUVNUVSAGCDUSUDZUHGUVPIUFZHUQTZBUWAUTUWARUWCBUW
          AVAVBZACUHUEZDUHUEZUWAUHUKZJKCDVCVDZVEACGUEZUVNAUWIUVODUQTZUAGUOZABUA
          CDFGHIJKLMNOPQRVFZVHZGCVGVIAUWFUWKUVSKAUWIUWKUWLVJZUVRUWKBDUHUVPDUGUV
          QUWJUAGUVPDUVOUQVKVLVMVDVSZBUAGVNVIVOZACIUFZUVGUITZUVJAUWQHUVGUIAUWQH
          UITZHDIUFZUITZQVHAUVHUVGHUITVPHUVGUITZVPZABCDEFGHIJKLMNOPQRSVQAUXBAUX
          BVRZUBUNZEVTUDWAUFZUVOUITZUXEIUFZUVGVTUDWAUFUVGHVTUDZUITZWBZUBFUOZUAW
          KUPZUXCUXDIFWCWDUDUEZEFUEZUXIWKUEZUXMAUXNUXBOWEAUXOUXBAUWAFENAEUWAUEZ
          UVICEUQTZEDUQTZUWPACUVLEUQAUVTUWICUVLUQTUWOUWMBUAGCWFVDSWGZAEUVLDUQSA
          UVLDUQTZUWKUWNAUVTUWFUYAUWKWHUWOKBUAUAGDWIVDWJWLZAUWEUWFUXQUVIUXRUXSU
          RWHJKCDEWMVDWNZWOWEAUXBUXPAHUHUEZUVGUHUEZUXBUXPWHLAUXQUWBUHUEZBUWAUOZ
          UYEUYCAUYFBUWAPWPZUYFUYEBEUWAUVPEUGUWBUVGUHUVPEIWQXAWRWSZHUVGWTVDXBUA
          UBFWCEUXIIXCXDUXDUXLUXCUAWKUXDUVOWKUEZVRZUXLUXKUBUWAUOZUXCAUXLUYLWBZU
          XBUYJAUWAFUKUYMNUXKUBUWAFXEVIXFUYKUYLUXGUXEGUEZVRZUBUWAUPZUXCUYKEUVOV
          TUDZUXEUITZUBGUPZUYPUYKUYQUVLUITZUYSUYKUYQEUVLUIUXDUYJUVIUYQEUITAUVIU
          XBUYJUWPXFZEUVOXGXHSXIUYKUVTUYQUHUEUYTUYSWHAUVTUXBUYJUWOXFUYKEUVOVUAU
          YJUVOUHUEZUXDUVOXJXKZXLBUAUBGUYQXMVDXNUYKUYRUYOUBGUWAUYKUYNUYRVRZUXEU
          WAUEZUYOVRUYKVUDVRZVUEUXGUYNUYNVUEUYKUYRGUWAUXEUWDXSZXOZVUFUXFEUXEVTU
          DUVOUIVUFUXEEVUFUWAUHUXEVUFAUWGAUXBUYJVUDXPZUWHVIVUHWOZVUFAUVIVUIUWPV
          IZVUFUXEUVLEUQVUFUVTUYNUXEUVLUQTVUFAUVTVUIUWOVIUYKUYNUYRXQZBUAGUXEWFV
          DSWGXRVUFEUVOUXEVUKUYKVUBVUDVUCWEVUJUYKUYNUYRXTYAYBVULYCYDYEYIUYLUYPV
          RUXKUYOVRZUBUWAUPUYKUXCUXKUYOUBUWAYFUYKVUMUXCUBUWAVUMUXJUYNVRZUYKVUEV
          RUXCUXKUYOVUNUXGUXJUYNUUAUUBUYKVUNUXCWBVUEUYKUXJUYNUXCUYKUYNUXJUXCUXD
          UYJUYNUXJUXCWBUXDUYJUYNVRZVRZUXJUVGUXIVTUDZUXHUITZUXHUVGUXIUUIUDUITZV
          RUXCVUPUXHUVGUXIVUPVUEUYGUXHUHUEZUYNVUEUXDUYJVUGYGAUYGUXBVUOUYHXFUYFV
          UTBUXEUWAUVPUXEUGZUWBUXHUHUVPUXEIWQZXAWRWSZAUYEUXBVUOUYIXFZVUPUVGHVVD
          AUYDUXBVUOLXFZXLUUCVUPVURUXCVUSVUPVURHUXHUITZUXCVUPVUQHUXHUIVUPUVGHVU
          PUVGVVDYHVUPHVVEYHUUDYJVUPVVFUXCVUPUXHHUQTZVVFVPUYNVVGUXDUYJUYNVUEVVG
          UWCVVGBUXEUWAGVVAUWBUXHHUQVVBYJRUUEUUFYGVUPUXHHVVCVVEUUJXNUUGYKUUHYKU
          UKUULUUMWEYSYLYSUUSUUNYLYIUUOAUVGHUYILUUPUUQZUURAUWRUXRECUMZVRUVJAUWR
          VVIUXRAUWRECAUVGUVGUITZVPZECUGZUWRVPAUVGUYIUUTZVVLVVJUWRVVLUVGUWQUVGU
          IECIWQYJYMUVAYNUXTYOACEJUWPYPYQYIAUVGUWTUITZUVKAUVGHUWTUIVVHAUWSUXAQV
          JYBAVVNUXSDEUMZVRUVKAVVNVVOUXSAVVNDEAVVNVPDEUGZVVKVVMVVPVVNVVJVVPUWTU
          VGUVGUIDEIWQUVBYMUVCYNUYBYOAEDUWPKYPYQYIACYRUEDYRUEUVFUVIUVJUVKURWHAC
          JYTADKYTCDEUVDVDWNVVHUVE $.
      $}

      $( The intermediate value theorem, increasing case.  This is Metamath 100
         proof #79.  (Contributed by Paul Chapman, 22-Jan-2008.)  (Proof
         shortened by Mario Carneiro, 30-Apr-2014.) $)
      ivth $p |- ( ph -> E. c e. ( A (,) B ) ( F ` c ) = U ) $=
        ( vy cv cfv wceq cle wbr cicc co crab cr clt csup cioo wcel wrex breq1d
        wa fveq2 cbvrabv eqid ivthlem3 eqeq1d rspcev syl ) AQRZGSZFUAUBZQCDUCUD
        ZUEZUFUGUHZCDUIUDZUJVFGSZFTZUMHRZGSZFTZHVGUKABCDVFEVEFGIJKLMNOPVCBRZGSZ
        FUAUBQBVDVAVMTVBVNFUAVAVMGUNULUOVFUPUQVLVIHVFVGVJVFTVKVHFVJVFGUNURUSUT
        $.
    $}

    ${
      ivth2.9 $e |- ( ph -> ( ( F ` B ) < U /\ U < ( F ` A ) ) ) $.
      $( The intermediate value theorem, decreasing case.  (Contributed by Paul
         Chapman, 22-Jan-2008.)  (Revised by Mario Carneiro, 30-Apr-2014.) $)
      ivth2 $p |- ( ph -> E. c e. ( A (,) B ) ( F ` c ) = U ) $=
        ( cfv wceq wcel clt vy cv cneg cmpt cioo co wrex renegcld cc ccncf eqid
        negfcncf syl cicc wa cr sselda fveq2 negeqd negex fvmpt eqeltrd wbr cxr
        cle rexrd ltled lbicc2 syl3anc sseldd simprd wral ralrimiva eleq1d sylc
        rspcv ltnegd eqbrtrd simpld ubicc2 breqtrrd ivth ioossicc syl5ss eqeq1d
        mpbid jca wf cncff ffvelrnda syldan recnd adantr neg11ad bitrd rexbidva
        ) AHUBZUAEUAUBZGQZUCZUDZQZFUCZRZHCDUEUFZUGWQGQZFRZHXEUGABCDEXCXAHIJAFKU
        HLMAGEUIUJUFZSZXAXHSNUAEGXAXAUKZULUMABUBZCDUNUFZSUOZXKXAQZXKGQZUCZUPXMX
        KESXNXPRAXLEXKMUQUAXKWTXPEXAWRXKRWSXOWRXKGURUSXJXOUTVAUMXMXOOUHVBACXAQZ
        XCTVCXCDXAQZTVCAXQCGQZUCZXCTACESXQXTRAXLECMACVDSZDVDSZCDVEVCZCXLSZACIVF
        ZADJVFZACDIJLVGZCDVHVIZVJUACWTXTEXAWRCRWSXSWRCGURUSXJXSUTVAUMAFXSTVCZXT
        XCTVCADGQZFTVCZYIPVKAFXSKAYDXOUPSZBXLVLZXSUPSZYHAYLBXLOVMZYLYNBCXLXKCRX
        OXSUPXKCGURVNVPVOVQWFVRAXCYJUCZXRTAYKXCYPTVCAYKYIPVSAYJFADXLSZYMYJUPSZA
        YAYBYCYQYEYFYGCDVTVIZYOYLYRBDXLXKDRXOYJUPXKDGURVNVPVOKVQWFADESXRYPRAXLE
        DMYSVJUADWTYPEXAWRDRWSYJWRDGURUSXJYJUTVAUMWAWGWBAXDXGHXEAWQXESZUOZXDXFU
        CZXCRXGUUAXBUUBXCUUAWQESZXBUUBRAXEEWQAXEXLECDWCMWDUQZUAWQWTUUBEXAWRWQRW
        SXFWRWQGURUSXJXFUTVAUMWEUUAXFFAYTUUCXFUISUUDAEUIWQGAXIEUIGWHNEUIGWIUMWJ
        WKAFUISYTAFKWLWMWNWOWPWF $.
    $}

    ${
      ivthle.9 $e |- ( ph -> ( ( F ` A ) <_ U /\ U <_ ( F ` B ) ) ) $.
      $( The intermediate value theorem with weak inequality, increasing case.
         (Contributed by Mario Carneiro, 12-Aug-2014.) $)
      ivthle $p |- ( ph -> E. c e. ( A [,] B ) ( F ` c ) = U ) $=
        ( wceq cr wcel adantr cfv clt wbr cv cicc co wrex wa wss ioossicc ccncf
        cioo adantlr simpr ivth ssrexv mpsyl anassrs cxr cle rexrd ltled ubicc2
        cc syl3anc eqcom fveq2 eqeq2d syl5bb rspcev sylan simprd wral ralrimiva
        wo eleq1d rspcv sylc leloed mpbid mpjaodan lbicc2 eqeq1d simpld ) ACGUA
        ZFUBUCZHUDZGUAZFQZHCDUEUFZUGZWEFQZAWFUHFDGUAZUBUCZWKFWMQZAWFWNWKCDULUFZ
        WJUIAWFWNUHZUHZWIHWPUGWKCDUJWRBCDEFGHACRSWQITADRSWQJTAFRSWQKTACDUBUCWQL
        TAWJEUIWQMTAGEVDUKUFSWQNTABUDZWJSWSGUAZRSZWQOUMAWQUNUOWIHWPWJUPUQURAWOW
        KWFADWJSZWOWKACUSSZDUSSZCDUTUCZXBACIVAZADJVAZACDIJLVBZCDVCVEZWIWOHDWJWI
        FWHQWGDQZWOWHFVFXJWHWMFWGDGVGVHVIVJVKUMAWNWOVOZWFAFWMUTUCZXKAWEFUTUCZXL
        PVLAFWMKAXBXABWJVMZWMRSZXIAXABWJOVNZXAXOBDWJWSDQWTWMRWSDGVGVPVQVRVSVTTW
        AACWJSZWLWKAXCXDXEXQXFXGXHCDWBVEZWIWLHCWJWGCQWHWEFWGCGVGWCVJVKAXMWFWLVO
        AXMXLPWDAWEFAXQXNWERSZXRXPXAXSBCWJWSCQWTWERWSCGVGVPVQVRKVSVTWA $.
    $}

    ivthle2.9 $e |- ( ph -> ( ( F ` B ) <_ U /\ U <_ ( F ` A ) ) ) $.
    $( The intermediate value theorem with weak inequality, decreasing case.
       (Contributed by Mario Carneiro, 12-May-2014.) $)
    ivthle2 $p |- ( ph -> E. c e. ( A [,] B ) ( F ` c ) = U ) $=
      ( wceq cr wcel adantr cfv clt wbr cv cicc co wrex wa cioo wss ioossicc cc
      ccncf adantlr simpr ivth2 ssrexv mpsyl anassrs cxr cle rexrd ltled lbicc2
      syl3anc eqcom fveq2 eqeq2d syl5bb rspcev sylan wo simprd ralrimiva eleq1d
      wral rspcv sylc leloed mpbid mpjaodan ubicc2 eqeq1d simpld ) ADGUAZFUBUCZ
      HUDZGUAZFQZHCDUEUFZUGZWEFQZAWFUHFCGUAZUBUCZWKFWMQZAWFWNWKCDUIUFZWJUJAWFWN
      UHZUHZWIHWPUGWKCDUKWRBCDEFGHACRSWQITADRSWQJTAFRSWQKTACDUBUCWQLTAWJEUJWQMT
      AGEULUMUFSWQNTABUDZWJSWSGUAZRSZWQOUNAWQUOUPWIHWPWJUQURUSAWOWKWFACWJSZWOWK
      ACUTSZDUTSZCDVAUCZXBACIVBZADJVBZACDIJLVCZCDVDVEZWIWOHCWJWIFWHQWGCQZWOWHFV
      FXJWHWMFWGCGVGVHVIVJVKUNAWNWOVLZWFAFWMVAUCZXKAWEFVAUCZXLPVMAFWMKAXBXABWJV
      PZWMRSZXIAXABWJOVNZXAXOBCWJWSCQWTWMRWSCGVGVOVQVRVSVTTWAADWJSZWLWKAXCXDXEX
      QXFXGXHCDWBVEZWIWLHDWJWGDQWHWEFWGDGVGWCVJVKAXMWFWLVLAXMXLPWDAWEFAXQXNWERS
      ZXRXPXAXSBDWJWSDQWTWERWSDGVGVOVQVRKVSVTWA $.
  $}

  ${
    $d x z D $.  $d x y z F $.  $d x y z M $.  $d x y z N $.  $d x y z ph $.
    $d x A $.  $d x B $.
    ivthicc.1 $e |- ( ph -> A e. RR ) $.
    ivthicc.2 $e |- ( ph -> B e. RR ) $.
    ivthicc.3 $e |- ( ph -> M e. ( A [,] B ) ) $.
    ivthicc.4 $e |- ( ph -> N e. ( A [,] B ) ) $.
    ivthicc.5 $e |- ( ph -> ( A [,] B ) C_ D ) $.
    ivthicc.7 $e |- ( ph -> F e. ( D -cn-> CC ) ) $.
    ivthicc.8 $e |- ( ( ph /\ x e. ( A [,] B ) ) -> ( F ` x ) e. RR ) $.
    $( The interval between any two points of a continuous real function is
       contained in the range of the function.  Equivalently, the range of a
       continuous real function is convex.  (Contributed by Mario Carneiro,
       12-Aug-2014.) $)
    ivthicc $p |- ( ph -> ( ( F ` M ) [,] ( F ` N ) ) C_ ran F ) $=
      ( vz wcel wbr cr ad2antrr vy cfv cicc co crn clt wceq wrex simpll cle w3a
      cv wa wb elicc2 syl2anc mpbid simp1d wss wral ralrimiva fveq2 eleq1d sylc
      rspcv sselda adantr simpr simp2d simp3d iccss syl22anc sstrd ccncf syldan
      iccssre cc sylan biimpa 3simpc syl ivthle wi wfn cncff ffn fnfvelrn eleq1
      3syl syl5ibcom rexlimdva csn simplr fveq2d oveq2d cxr rexrd iccid eleqtrd
      wf eqtr3d elsni sseldd eqeltrd ivthle2 w3o lttri4d mpjao3dan ex ssrdv ) A
      UAGFUBZHFUBZUCUDZFUEZAUAULZXMQZXOXNQZAXPUMZGHUFRZXQGHUGZHGUFRZXRXSUMZAPUL
      ZFUBZXOUGZPGHUCUDZUHXQAXPXSUIZYBBGHEXOFPAGSQZXPXSAYHCGUJRZGDUJRZAGCDUCUDZ
      QZYHYIYJUKZKACSQZDSQZYLYMUNIJCDGUOUPUQZURZTAHSQZXPXSAYRCHUJRZHDUJRZAHYKQZ
      YRYSYTUKZLAYNYOUUAUUBUNIJCDHUOUPUQZURZTXRXOSQZXSAXMSXOAXKSQZXLSQZXMSUSAYL
      BULZFUBZSQZBYKUTZUUFKAUUJBYKOVAZUUJUUFBGYKUUHGUGUUIXKSUUHGFVBVCVEVDZAUUAU
      UKUUGLUULUUJUUGBHYKUUHHUGUUIXLSUUHHFVBVCVEVDZXKXLVPUPVFZVGXRXSVHAYFEUSXPX
      SAYFYKEAYNYOYIYTYFYKUSIJAYHYIYJYPVIAYRYSYTUUCVJCDGHVKVLZMVMZTAFEVQVNUDQZX
      PXSNTYBAUUHYFQZUUJYGAUUSUUHYKQZUUJAYFYKUUHUUPVFOVOVRXRXKXOUJRZXOXLUJRZUMZ
      XSXRUUEUVAUVBUKZUVCAXPUVDAUUFUUGXPUVDUNUUMUUNXKXLXOUOUPVSUUEUVAUVBVTWAZVG
      WBAYEXQPYFAYCYFQYCEQZYEXQWCZAYFEYCUUQVFAUVFUMYDXNQZYEXQAFEWDZUVFUVHAUUREV
      QFWTUVINEVQFWEEVQFWFWIZEYCFWGVRYDXOXNWHWJZVOWKVDXRXTUMZXOXKXNUVLXOXKWLZQX
      OXKUGUVLXOXMUVMAXPXTWMUVLXKXKUCUDZXMUVMUVLXKXLXKUCUVLGHFXRXTVHWNWOUVLXKWP
      QZUVNUVMUGAUVOXPXTAXKUUMWQTXKWRWAXAWSXOXKXBWAAXKXNQZXPXTAUVIGEQUVPUVJAYKE
      GMKXCEGFWGUPTXDXRYAUMZAYEPHGUCUDZUHXQAXPYAUIZUVQBHGEXOFPAYRXPYAUUDTAYHXPY
      AYQTXRUUEYAUUOVGXRYAVHAUVREUSXPYAAUVRYKEAYNYOYSYJUVRYKUSIJAYRYSYTUUCVIAYH
      YIYJYPVJCDHGVKVLZMVMZTAUURXPYANTUVQAUUHUVRQZUUJUVSAUWBUUTUUJAUVRYKUUHUVTV
      FOVOVRXRUVCYAUVEVGXEAYEXQPUVRAYCUVRQUVFUVGAUVREYCUWAVFUVKVOWKVDAXSXTYAXFX
      PAGHYQUUDXGVGXHXIXJ $.
  $}

  ${
    $d x y A $.  $d a b w z A $.  $d a b x y B $.  $d w z B $.  $d a b x y F $.
    $d a b x y ph $.  $d w z ph $.  $d w z F $.
    evthicc.1 $e |- ( ph -> A e. RR ) $.
    evthicc.2 $e |- ( ph -> B e. RR ) $.
    evthicc.3 $e |- ( ph -> A <_ B ) $.
    evthicc.4 $e |- ( ph -> F e. ( ( A [,] B ) -cn-> RR ) ) $.
    $( Specialization of the Extreme Value Theorem to a closed interval of
       ` RR ` .  (Contributed by Mario Carneiro, 12-Aug-2014.) $)
    evthicc $p |- ( ph ->
      ( E. x e. ( A [,] B ) A. y e. ( A [,] B ) ( F ` y ) <_ ( F ` x ) /\
        E. z e. ( A [,] B ) A. w e. ( A [,] B ) ( F ` z ) <_ ( F ` w ) ) ) $=
      ( cv cfv co wral wrex eqid cr wcel cle wbr cicc cioo crn ctg crest icccmp
      cuni ccmp syl2anc ccncf ccn cabs cmin ccom cxp cres cmopn cc wceq iccssre
      wss ax-resscn syl6ss tgioo cncfmet sylancl resubmet syl oveq1d eleqtrd c0
      eqtrd ctop retop uniretop restuni sylancr wne cxr lbicc2 syl3anc eqnetrrd
      rexrd ne0i evth raleqdv rexeqbidv mpbird evth2 jca ) ACMHNBMHNUAUBZCFGUCO
      ZPZBWNQZDMHNEMHNUAUBZEWNPZDWNQZAWPWMCUDUEUFNZWNUGOZUIZPZBXBQABCHXAWTXBXBR
      ZWTRZAFSTZGSTZXAUJTIJFGXAWTXEXARUHUKZAHWNSULOZXAWTUMOZLAXIUNUOUPZWNWNUQUR
      ZUSNZWTUMOZXJAWNUTVCSUTVCXIXNVAAWNSUTAXFXGWNSVCZIJFGVBUKZVDVEVDWNSXLXKSSU
      QURZXMWTXLRXQRZXMRZXQXQUSNZXRXTRVFVGVHAXMXAWTUMAXOXMXAVAXPWNWTXMXEXSVIVJV
      KVNVLZAWNXBVMAWTVOTXOWNXBVAVPXPWNWTSVQVRVSZAFWNTZWNVMVTAFWATGWATFGUAUBYCA
      FIWEAGJWEKFGWBWCWNFWFVJWDZWGAWOXCBWNXBYBAWMCWNXBYBWHWIWJAWSWQEXBPZDXBQADE
      HXAWTXBXDXEXHYAYDWKAWRYEDWNXBYBAWQEWNXBYBWHWIWJWL $.

    $( Combine ~ ivthicc with ~ evthicc to exactly describe the image of a
       closed interval.  (Contributed by Mario Carneiro, 19-Feb-2015.) $)
    evthicc2 $p |- ( ph -> E. x e. RR E. y e. RR ran F = ( x [,] y ) ) $=
      ( vz va vb wa wrex cr wcel adantr wss cc cv cfv cle wbr cicc co wral wceq
      crn evthicc reeanv sylibr r19.26 ccncf wf cncff syl simprr simprl wfn ffn
      ffvelrnd wb elicc2 syl2anc 3anass syl6bb ancom ffvelrnda biantrurd syl5bb
      w3a bitr4d ralbidva biimpar ffnfv sylanbrc frn a1i ax-resscn cncfss mp2an
      ssid sseldi ivthicc eqssd rspceov syl3anc ex syl5bir rexlimdvva mpd ) AKU
      AZFUBZLUAZFUBZUCUDZKDEUEUFZUGZMUAZFUBZWNUCUDZKWRUGZNZMWROLWROZFUIZBUAZCUA
      UEUFUHCPOBPOZAWSLWROXCMWRONXEALKMKDEFGHIJUJWSXCLMWRWRUKULAXDXHLMWRWRXDWQX
      BNZKWRUGZAWOWRQZWTWRQZNZNZXHWQXBKWRUMXNXJXHXNXJNZXAPQZWPPQZXFXAWPUEUFZUHX
      HXNXPXJXNWRPWTFXNFWRPUNUFZQZWRPFUOZAXTXMJRZWRPFUPUQZAXKXLURZVBZRXNXQXJXNW
      RPWOFYCAXKXLUSZVBZRXOXFXRXOWRXRFUOZXFXRSXOFWRUTZWNXRQZKWRUGZYHXOYAYIXNYAX
      JYCRWRPFVAUQXNYKXJXNYJXIKWRXNWMWRQZNZYJWNPQZXBWQNZNZXIYMYJYNXBWQVLZYPYMXP
      XQYJYQVCXNXPYLYERXNXQYLYGRXAWPWNVDVEYNXBWQVFVGXIYOYMYPWQXBVHYMYNYOXNWRPWM
      FYCVIVJVKVMVNVOKWRXRFVPVQWRXRFVRUQXNXRXFSXJXNBDEWRFWTWOADPQXMGRAEPQXMHRYD
      YFWRWRSXNWRWCVSXNXSWRTUNUFZFPTSTTSXSYRSVTTWCWRPTWAWBYBWDXNWRPXGFYCVIWERWF
      BCPPXAWPXFUEWGWHWIWJWKWL $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z F $.
    $( A continuous function on a closed interval is bounded.  (Contributed by
       Mario Carneiro, 7-Sep-2014.) $)
    cniccbdd $p |- ( ( A e. RR /\ B e. RR /\ F e. ( ( A [,] B ) -cn-> CC ) ) ->
      E. x e. RR A. y e. ( A [,] B ) ( abs ` ( F ` y ) ) <_ x ) $=
      ( vz cr wcel co cc ccncf cfv cabs cle wbr wral wa cc0 wceq adantr cicc cv
      w3a wrex clt 0re c0 ral0 cxr wb simp1 rexrd simp2 syl2anc biimpar raleqdv
      icc0 mpbiri breq2 ralbidv rspcev sylancr ccom simpr simp3 abscncf evthicc
      a1i cncfco simpld wf cncff syl ffvelrnda fvco3 sylan breq1d biimpd syl6an
      ralbidva rexlimdva imp syldan ltlecasei ) CGHZDGHZECDUAIZJKIHZUCZBUBZELML
      ZAUBZNOZBWGPZAGUDZDCWIDCUEOZQZRGHWKRNOZBWGPZWOUFWQWSWRBUGPWRBUHWQWRBWGUGW
      IWGUGSZWPWICUIHDUIHWTWPUJWICWEWFWHUKZULWIDWEWFWHUMZULCDUQUNUOUPURWNWSARGW
      LRSWMWRBWGWLRWKNUSUTVAVBWICDNOZWJMEVCZLZFUBZXDLZNOZBWGPZFWGUDZWOWIXCQZXJX
      GXENOBWGPFWGUDXKFBFBCDXDWIWEXCXATWIWFXCXBTWIXCVDWIXDWGGKIHZXCWIWGJGEMWEWF
      WHVEZMJGKIHWIVFVHVIZTVGVJWIXJWOWIXIWOFWGWIXFWGHZQZXGGHXIWKXGNOZBWGPZWOWIW
      GGXFXDWIXLWGGXDVKXNWGGXDVLVMVNXPXIXRXPXHXQBWGXPWJWGHZQXEWKXGNXPWGJEVKZXSX
      EWKSWIXTXOWIWHXTXMWGJEVLVMTWGJWJMEVOVPVQVTVRWNXRAXGGWLXGSWMXQBWGWLXGWKNUS
      UTVAVSWAWBWCXBXAWD $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Integrals
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Lebesgue measure
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c vol* $. $( outer Lebesgue measure $)
  $c vol $. $( Lebesgue measure $)

  $( Extend class notation with the outer Lebesgue measure. $)
  covol $a class vol* $.

  $( Extend class notation with the Lebesgue measure. $)
  cvol $a class vol $.

  ${
    $d x y f $.
    $( Define the outer Lebesgue measure for subsets of the reals.  Here ` f `
       is a function from the positive integers to pairs ` <. a , b >. ` with
       ` a <_ b ` , and the outer volume of the set ` x ` is the infimum over
       all such functions such that the union of the open intervals
       ` ( a , b ) ` covers ` x ` of the sum of ` b - a ` .  (Contributed by
       Mario Carneiro, 16-Mar-2014.)  (Revised by AV, 17-Sep-2020.) $)
    df-ovol $a |- vol* = ( x e. ~P RR |-> inf ( { y e. RR* |
      E. f e. ( ( <_ i^i ( RR X. RR ) ) ^m NN ) ( x C_ U. ran ( (,) o. f ) /\
          y = sup ( ran seq 1 ( + , ( ( abs o. - ) o. f ) ) , RR* , < ) ) } ,
                    RR* , < ) ) $.

    $( Define the Lebesgue measure, which is just the outer measure with a
       peculiar domain of definition.  The property of being
       Lebesgue-measurable can be expressed as ` A e. dom vol ` .  (Contributed
       by Mario Carneiro, 17-Mar-2014.) $)
    df-vol $a |- vol = ( vol* |` { x | A. y e. ( `' vol* " RR )
      ( vol* ` y ) = ( ( vol* ` ( y i^i x ) ) + ( vol* ` ( y \ x ) ) ) } ) $.
  $}

  $( Closure for the interval endpoint function.  (Contributed by Mario
     Carneiro, 16-Mar-2014.) $)
  ovolfcl $p |- ( ( F : NN --> ( <_ i^i ( RR X. RR ) ) /\ N e. NN ) ->
                    ( ( 1st ` ( F ` N ) ) e. RR /\
                      ( 2nd ` ( F ` N ) ) e. RR /\
                      ( 1st ` ( F ` N ) ) <_ ( 2nd ` ( F ` N ) ) ) ) $=
    ( cn cle cr cxp cin wf wcel wa cfv c1st c2nd cop wbr w3a wceq inss2 ffvelrn
    sseldi 1st2nd2 eqeltrrd ancom elin df-br bicomi opelxp anbi12i bitri df-3an
    syl 3bitr4i sylib ) CDEEFZGZAHBCIJZBAKZLKZUQMKZNZUOIZUREIZUSEIZURUSDOZPZUPU
    QUTUOUPUQUNIUQUTQUPUOUNUQDUNRCUOBASZTUQEEUAUKVFUBVDVBVCJZJZVGVDJVAVEVDVGUCV
    AUTDIZUTUNIZJVHUTDUNUDVIVDVJVGVDVIURUSDUEUFURUSEEUGUHUIVBVCVDUJULUM $.

  ${
    $d n z A $.  $d n x y z F $.
    $( Unpack the interval covering property of the outer measure definition.
       (Contributed by Mario Carneiro, 16-Mar-2014.) $)
    ovolfioo $p |- ( ( A C_ RR /\ F : NN --> ( <_ i^i ( RR X. RR ) ) ) ->
                      ( A C_ U. ran ( (,) o. F ) <-> A. z e. A E. n e. NN
                  ( ( 1st ` ( F ` n ) ) < z /\ z < ( 2nd ` ( F ` n ) ) ) ) ) $=
      ( cr wss cn cle cxp wf wa cv cioo cfv clt wbr wb cxr wcel rexr ccom inss2
      cin ciun crn cuni c1st c2nd wrex wral cpw wfn wceq rexpssxrxp sstri mpan2
      ioof fss fco sylancr ffn fniunfv sseq2d adantl dfss3 ssel2 eliun co fvco3
      3syl cop ffvelrn sseldi 1st2nd2 syl fveq2d df-ov syl6eqr eqtrd eleq2d w3a
      ovolfcl elioo1 syl2an 3anass syl6bb 3adant3 bitrd adantll ad2antrr bitr4d
      biantrurd rexbidva syl5bb sylan an32s ralbidva bitr3d ) BEFZGHEEIZUCZDJZK
      ZBCGCLZMDUAZNZUDZFZBXEUEUFZFZXDDNZUGNZALZOPZXMXKUHNZOPZKZCGUIZABUJZXBXHXJ
      QWSXBXGXIBXBGEUKZXEJZXEGULXGXIUMXBRRIZXTMJGYBDJZYAUQXBXAYBFYCXAWTYBHWTUBZ
      UNUOGXAYBDURUPGYBXTMDUSUTGXTXEVACGXEVBVJVCVDXHXMXGSZABUJXCXSABXGVEXCYEXRA
      BWSXMBSZXBYEXRQZWSYFKXMESZXBYGBEXMVFYEXMXFSZCGUIYHXBKZXRCXMGXFVGYJYIXQCGY
      JXDGSZKZYIXMRSZXQKZXQXBYKYIYNQYHXBYKKZYIXMXLXOMVHZSZYNYOXFYPXMYOXFXKMNZYP
      GXAXDMDVIYOYRXLXOVKZMNYPYOXKYSMYOXKWTSXKYSUMYOXAWTXKYDGXAXDDVLVMXKEEVNVOV
      PXLXOMVQVRVSVTYOXLESZXOESZXLXOHPZWAYQYNQZDXDWBYTUUAUUCUUBYTUUAKYQYMXNXPWA
      ZYNYTXLRSXORSYQUUDQUUAXLTXOTXLXOXMWCWDYMXNXPWEWFWGVOWHWIYLYMXQYHYMXBYKXMT
      WJWLWKWMWNWOWPWQWNWR $.

    $( Unpack the interval covering property using closed intervals.
       (Contributed by Mario Carneiro, 16-Mar-2014.) $)
    ovolficc $p |- ( ( A C_ RR /\ F : NN --> ( <_ i^i ( RR X. RR ) ) ) ->
                      ( A C_ U. ran ( [,] o. F ) <-> A. z e. A E. n e. NN
                ( ( 1st ` ( F ` n ) ) <_ z /\ z <_ ( 2nd ` ( F ` n ) ) ) ) ) $=
      ( cr wss cn cle cxp wf wa cv cicc cfv wbr wrex wral wb cxr wcel ccom ciun
      cin crn cuni c1st c2nd cpw wfn wceq iccf inss2 rexpssxrxp sstri fss mpan2
      fco sylancr ffn fniunfv 3syl sseq2d adantl dfss3 ssel2 eliun co fvco3 cop
      ffvelrn sseldi 1st2nd2 syl fveq2d df-ov syl6eqr eleq2d w3a ovolfcl elicc2
      eqtrd 3anass syl6bb 3adant3 bitrd simpll biantrurd bitr4d rexbidva syl5bb
      adantll sylan an32s ralbidva bitr3d ) BEFZGHEEIZUCZDJZKZBCGCLZMDUAZNZUBZF
      ZBXBUDUEZFZXADNZUFNZALZHOZXJXHUGNZHOZKZCGPZABQZWSXEXGRWPWSXDXFBWSGSUHZXBJ
      ZXBGUIXDXFUJWSSSIZXQMJGXSDJZXRUKWSWRXSFXTWRWQXSHWQULZUMUNGWRXSDUOUPGXSXQM
      DUQURGXQXBUSCGXBUTVAVBVCXEXJXDTZABQWTXPABXDVDWTYBXOABWPXJBTZWSYBXORZWPYCK
      XJETZWSYDBEXJVEYBXJXCTZCGPYEWSKZXOCXJGXCVFYGYFXNCGYGXAGTZKZYFYEXNKZXNWSYH
      YFYJRYEWSYHKZYFXJXIXLMVGZTZYJYKXCYLXJYKXCXHMNZYLGWRXAMDVHYKYNXIXLVIZMNYLY
      KXHYOMYKXHWQTXHYOUJYKWRWQXHYAGWRXADVJVKXHEEVLVMVNXIXLMVOVPWAVQYKXIETZXLET
      ZXIXLHOZVRYMYJRZDXAVSYPYQYSYRYPYQKYMYEXKXMVRYJXIXLXJVTYEXKXMWBWCWDVMWEWKY
      IYEXNYEWSYHWFWGWHWIWJWLWMWNWJWO $.

    $( Any (closed) interval covering is a subset of the reals.  (Contributed
       by Mario Carneiro, 24-Mar-2015.) $)
    ovolficcss $p |- ( F : NN --> ( <_ i^i ( RR X. RR ) ) ->
      U. ran ( [,] o. F ) C_ RR ) $=
      ( vx vy cn cle cr cxp wf cicc crn cpw wss cv cfv wcel wral wceq syl cxr
      wb cin ccom cuni cima rnco2 wa c1st c2nd cop inss2 ffvelrn sseldi 1st2nd2
      co df-ov syl6eqr xp1st xp2nd iccssre syl2anc eqsstrd reex elpw2 ralrimiva
      fveq2d sylibr wfn ffn fveq2 eleq1d ralrn mpbird wfun iccf ffun rexpssxrxp
      cdm ax-mp frn sstri fdmi sseqtr4i syl6ss funimass4 sylancr syl5eqss sylib
      sspwuni ) DEFFGZUAZAHZIAUBJZFKZLWLUCFLWKWLIAJZUDZWMIAUEWKWOWMLZBMZINZWMOZ
      BWNPZWKWTCMZANZINZWMOZCDPZWKXDCDWKXADOUFZXCFLXDXFXCXBUGNZXBUHNZIUNZFXFXCX
      GXHUIZINXIXFXBXJIXFXBWIOZXBXJQXFWJWIXBEWIUJZDWJXAAUKULZXBFFUMRVEXGXHIUOUP
      XFXGFOZXHFOZXIFLXFXKXNXMXBFFUQRXFXKXOXMXBFFURRXGXHUSUTVAXCFVBVCVFVDWKADVG
      WTXETDWJAVHWSXDBCDAWQXBQWRXCWMWQXBIVIVJVKRVLWKIVMZWNIVQZLWPWTTSSGZSKZIHXP
      VNXRXSIVOVRWKWNWJXQDWJAVSWJXRXQWJWIXRXLVPVTXRXSIVNWAWBWCBWNWMIWDWEVLWFWLF
      WHWG $.
  $}

  ${
    ovolfs.1 $e |- G = ( ( abs o. - ) o. F ) $.
    $( The value of the interval length function.  (Contributed by Mario
       Carneiro, 16-Mar-2014.) $)
    ovolfsval $p |- ( ( F : NN --> ( <_ i^i ( RR X. RR ) ) /\ N e. NN ) ->
                      ( G ` N ) = ( ( 2nd ` ( F ` N ) ) -
                                    ( 1st ` ( F ` N ) ) ) ) $=
      ( cn cle cr cxp cin wcel cfv cabs cmin ccom co wceq syl cc recnd eqtrd wf
      wa c2nd fveq1i fvco3 syl5eq cop inss2 ffvelrn sseldi 1st2nd2 fveq2d df-ov
      c1st syl6eqr wbr ovolfcl simp1d simp2d eqid cnmetdval syl2anc abssuble0
      w3a ) EFGGHZIZAUACEJUBZCBKZCAKZLMNZKZVIUCKZVIUNKZMOZVGVHCVJANZKVKCBVODUDE
      VFCVJAUEUFVGVKVMVLVJOZVNVGVKVMVLUGZVJKVPVGVIVQVJVGVIVEJVIVQPVGVFVEVIFVEUH
      EVFCAUIUJVIGGUKQULVMVLVJUMUOVGVPVMVLMOLKZVNVGVMRJVLRJVPVRPVGVMVGVMGJZVLGJ
      ZVMVLFUPZACUQZURSVGVLVGVSVTWAWBUSSVMVLVJVJUTVAVBVGVSVTWAVDVRVNPWBVMVLVCQT
      TT $.

    $d x y G $.  $d x y F $.
    $( Closure for the interval length function.  (Contributed by Mario
       Carneiro, 16-Mar-2014.) $)
    ovolfsf $p |- ( F : NN --> ( <_ i^i ( RR X. RR ) ) ->
      G : NN --> ( 0 [,) +oo ) ) $=
      ( vx cn cle cr cxp wf cfv cc0 co wcel cabs cmin ccom cc fco wss wbr mp2an
      cin wfn cpnf cico wral absf subf inss2 ax-resscn xpss12 sstri fss sylancr
      cv mpan2 feq1i sylibr ffn syl wa ffvelrnda c2nd w3a ovolfcl subge0 ancoms
      c1st wb biimp3ar ovolfsval breqtrrd elrege0 sylanbrc ralrimiva ffnfv ) EF
      GGHZUBZAIZBEUCZDUOZBJZKUDUELZMZDEUFEWCBIVSEGBIZVTVSEGNOPZAPZIZWEVSQQHZGWF
      IZEWIAIZWHQGNIWIQOIWJUGUHWIQGNORUAVSVRWISWKVRVQWIFVQUIGQSZWLVQWISUJUJGQGQ
      UKUAULEVRWIAUMUPEWIGWFARUNEGBWGCUQURZEGBUSUTVSWDDEVSWAEMVAZWBGMKWBFTWDVSE
      GWABWMVBWNKWAAJZVCJZWOVHJZOLZWBFWNWQGMZWPGMZWQWPFTZVDKWRFTZAWAVEWSWTXBXAW
      TWSXBXAVIWPWQVFVGVJUTABWACVKVLWBVMVNVODEWCBVPVN $.

    ovolfs.2 $e |- S = seq 1 ( + , G ) $.
    $( Closure for the partial sums of the interval length function.
       (Contributed by Mario Carneiro, 16-Mar-2014.) $)
    ovolsf $p |- ( F : NN --> ( <_ i^i ( RR X. RR ) ) ->
      S : NN --> ( 0 [,) +oo ) ) $=
      ( vx vy cn cle cr cxp cin wf cc0 cpnf co caddc c1 cv wcel cico ovolfsf wa
      cseq nnuz 1zzd ffvelrnda ge0addcl adantl seqf feq1i sylibr ) HIJJKLBMZHNO
      UAPZQCRUDZMHUNAMUMFGQUNCRHUEUMUFUMHUNFSZCBCDUBUGUPUNTGSZUNTUCUPUQQPUNTUMU
      PUQUHUIUJHUNAUOEUKUL $.
  $}

  ${
    $d f x y A $.  $d f y B $.  $d f F $.  $d x M $.  $d f y S $.
    ovolval.1 $e |- M = { y e. RR* |
      E. f e. ( ( <_ i^i ( RR X. RR ) ) ^m NN ) ( A C_ U. ran ( (,) o. f ) /\
          y = sup ( ran seq 1 ( + , ( ( abs o. - ) o. f ) ) , RR* , < ) ) } $.
    $( The value of the outer measure.  (Contributed by Mario Carneiro,
       16-Mar-2014.)  (Revised by AV, 17-Sep-2020.) $)
    ovolval $p |- ( A C_ RR -> ( vol* ` A ) = inf ( M , RR* , < ) ) $=
      ( vx cr wss cpw covol cxr clt cinf wceq cv ccom crn wa wrex crab wcel cfv
      reex elpw2 cioo cuni caddc cabs cmin c1 cseq csup cle cxp cin cn co sseq1
      anbi1d rexbidv rabbidv syl6eqr infeq1d df-ovol xrltso infex fvmpt sylbir
      cmap ) BGHBGIZUABJUBDKLMZNBGUCUDFBFOZUECOZPQUFZHZAOUGUHUIPVMPUJUKQKLULNZR
      ZCUMGGUNUOUPVIUQZSZAKTZKLMVKVJJVLBNZKVTDLWAVTBVNHZVPRZCVRSZAKTDWAVSWDAKWA
      VQWCCVRWAVOWBVPVLBVNURUSUTVAEVBVCFACVDKDLVEVFVGVH $.

    $( Elementhood in the set ` M ` of approximations to the outer measure.
       (Contributed by Mario Carneiro, 16-Mar-2014.) $)
    elovolm $p |- ( B e. M <->
      E. f e. ( ( <_ i^i ( RR X. RR ) ) ^m NN ) ( A C_ U. ran ( (,) o. f ) /\
          B = sup ( ran seq 1 ( + , ( ( abs o. - ) o. f ) ) , RR* , < ) ) ) $=
      ( wcel cxr cv ccom crn wss wceq wa cle cr cn co wrex wf cioo cuni cabs c1
      caddc cmin cseq clt csup cxp cin cmap anbi2d rexbidv elrab2 cc0 cpnf cico
      eqeq1 reex xpex inex2 nnex elmap ovolsf sylbi icossxr fss sylancl supxrcl
      eqid frn 3syl eleq1 syl5ibrcom imp adantrl rexlimiva pm4.71ri bitr4i ) CE
      GCHGZBUADIZJKUBLZCUEUCUFJWBJZUDUGZKZHUHUIZMZNZDOPPUJZUKZQULRZSZNWMWCAIZWG
      MZNZDWLSWMACHEWNCMZWPWIDWLWQWOWHWCWNCWGUSUMUNFUOWMWAWIWADWLWBWLGZWHWAWCWR
      WHWAWRWAWHWGHGZWRQHWETZWFHLWSWRQUPUQURRZWETZXAHLWTWRQWKWBTXBWKQWBWJOPPUTU
      TVAVBVCVDWEWBWDWDVKWEVKVEVFUPUQVGQXAHWEVHVIQHWEVLWFVJVMCWGHVNVOVPVQVRVSVT
      $.

    ${
      ovolval.2 $e |- S = seq 1 ( + , ( ( abs o. - ) o. F ) ) $.
      $( Sufficient condition for elementhood in the set ` M ` .  (Contributed
         by Mario Carneiro, 16-Mar-2014.) $)
      elovolmr $p |- ( ( F : NN --> ( <_ i^i ( RR X. RR ) ) /\
                A C_ U. ran ( (,) o. F ) ) -> sup ( ran S , RR* , < ) e. M ) $=
        ( cn cle cr cioo ccom crn cuni wss cxr clt caddc c1 cxp wf wa csup cabs
        cin cv cmin cseq wceq cmap co wrex wcel reex xpex inex2 elmap id eqcomd
        coeq2d seqeq3d syl5eq rneqd supeq1d biantrud coeq2 unieqd sseq2d bitr3d
        nnex rspcev sylanbr elovolm sylibr ) IJKKUAZUFZEUBZBLEMZNZOZPZUCBLDUGZM
        ZNZOZPZCNZQRUDZSUEUHMZWCMZTUIZNZQRUDUJZUCZDVQIUKULZUMZWIFUNVREWPUNWBWQV
        QIEVPJKKUOUOUPUQVKURWOWBDEWPWCEUJZWGWOWBWRWNWGWRQWHWMRWRCWLWRCSWJEMZTUI
        WLHWRWSWKSTWREWCWJWRWCEWRUSUTVAVBVCVDVEVFWRWFWABWRWEVTWRWDVSWCELVGVDVHV
        IVJVLVMABWIDFGVNVO $.
    $}

    $( The set ` M ` is composed of nonnegative extended real numbers.
       (Contributed by Mario Carneiro, 16-Mar-2014.) $)
    ovolmge0 $p |- ( B e. M -> 0 <_ B ) $=
      ( wcel ccom crn wss c1 cxr wa cle cr cn co cc0 wbr syl cioo cv cuni caddc
      cabs cmin cseq clt csup wceq cxp cin cmap wrex elovolm wf reex xpex inex2
      nnex elmap cfv cpnf cico eqid 1nn ffvelrn sylancl elrege0 simprbi icossxr
      ovolsf frn syl6ss wfn ffn supxrub syl2anc wi sseldi supxrcl xrletr mp3an1
      fnfvelrn 0xr mp2and sylbi breq2 syl5ibrcom adantld rexlimiv ) CEGBUADUBZH
      IUCJZCUDUEUFHWLHZKUGZIZLUHUIZUJZMZDNOOUKZULZPUMQZUNRCNSZABCDEFUOWSXCDXBWL
      XBGZWRXCWMXDXCWRRWQNSZXDPXAWLUPZXEXAPWLWTNOOUQUQURUSUTVAXFRKWOVBZNSZXGWQN
      SZXEXFXGRVCVDQZGZXHXFPXJWOUPZKPGZXKWOWLWNWNVEWOVEVLZVFPXJKWOVGVHZXKXGOGXH
      XGVIVJTXFWPLJZXGWPGZXIXFWPXJLXFXLWPXJJXNPXJWOVMTRVCVKZVNZXFWOPVOZXMXQXFXL
      XTXNPXJWOVPTVFPKWOWDVHWPXGVQVRXFXGLGZWQLGZXHXIMXEVSZXFXJLXGXRXOVTXFXPYBXS
      WPWATRLGYAYBYCWERXGWQWBWCVRWFWGCWQRNWHWIWJWKWG $.
  $}

  ${
    $d f g m n x y z A $.  $d f m n x z F $.  $d m z G $.  $d x M $.  $d x N $.
    $d f g k m n x y B $.  $d k m n z ph $.  $d f k n x y S $.  $d k y T $.
    $( The volume of a set is an extended real number.  (Contributed by Mario
       Carneiro, 16-Mar-2014.) $)
    ovolcl $p |- ( A C_ RR -> ( vol* ` A ) e. RR* ) $=
      ( vf vy cr wss covol cfv cioo cv ccom crn cuni caddc cabs cmin c1 cxr clt
      cseq csup wceq wa cle cxp cin cn cmap co wrex crab cinf eqid ovolval wcel
      ssrab2 infxrcl ax-mp syl6eqel ) ADEAFGAHBIZJKLECIMNOJUSJPSKQRTUAUBBUCDDUD
      UEUFUGUHUIZCQUJZQRUKZQCABVAVAULUMVAQEVBQUNUTCQUOVAUPUQUR $.

    ${
      ovollb.1 $e |- S = seq 1 ( + , ( ( abs o. - ) o. F ) ) $.
      $( The outer volume is a lower bound on the sum of all interval coverings
         of ` A ` .  (Contributed by Mario Carneiro, 15-Jun-2014.) $)
      ovollb $p |- ( ( F : NN --> ( <_ i^i ( RR X. RR ) ) /\
                       A C_ U. ran ( (,) o. F ) ) ->
                     ( vol* ` A ) <_ sup ( ran S , RR* , < ) ) $=
        ( vf vy cn cle cr cxp wf cioo ccom crn cuni wss wa cv cxr clt cin covol
        cfv caddc cabs cmin c1 cseq csup wceq cmap co wrex crab cinf simpr ioof
        cpw simpl inss2 rexpssxrxp fss sylancl fco sylancr frn syl sspwuni eqid
        sstri sylib sstrd ovolval wcel wbr ssrab2 elovolmr infxrlb eqbrtrd ) GH
        IIJZUAZCKZALCMZNZOZPZQZAUBUCZALERZMNOPFRUDUEUFMWIMUGUHNSTUIUJQEWAGUKULU
        MZFSUNZSTUOZBNSTUIZHWGAIPWHWLUJWGAWEIWBWFUPWGWDIURZPZWEIPWGGWNWCKZWOWGS
        SJZWNLKGWQCKZWPUQWGWBWAWQPWRWBWFUSWAVTWQHVTUTVAVJGWAWQCVBVCGWQWNLCVDVEG
        WNWCVFVGWDIVHVKVLFAEWKWKVIZVMVGWGWKSPWMWKVNWLWMHVOWJFSVPFABECWKWSDVQWKW
        MVRVEVS $.
    $}

    ${
      ovolgelb.1 $e |- S = seq 1 ( + , ( ( abs o. - ) o. g ) ) $.
      $( The outer volume is the greatest lower bound on the sum of all
         interval coverings of ` A ` .  (Contributed by Mario Carneiro,
         15-Jun-2014.) $)
      ovolgelb $p |- ( ( A C_ RR /\ ( vol* ` A ) e. RR /\ B e. RR+ ) ->
              E. g e. ( ( <_ i^i ( RR X. RR ) ) ^m NN )
                ( A C_ U. ran ( (,) o. g ) /\
                sup ( ran S , RR* , < ) <_ ( ( vol* ` A ) + B ) ) ) $=
        ( vy vx cr wss wcel cxr clt cle wbr wa cn wrex wi wral wceq cfv crp w3a
        covol cioo cv ccom crn cuni caddc co csup cxp cmap simp2 simp3 ltaddrpd
        wn rpred readdcld ltnled mpbid cabs cmin c1 cseq crab cinf eqid ovolval
        cin 3ad2ant1 breq2d wb ssrab2 rexrd infxrgelb sylancr weq eqeq1 supeq1i
        rneqi eqeq2i syl6bbr anbi2d rexbidv ralrab ralcom r19.23v ralbii impexp
        ancomst bitri cc0 cpnf cico reex xpex inex2 nnex elmap ovolsf sylbi frn
        syl icossxr syl6ss supxrcl breq2 imbi2d ceqsralv syl5bb ralbiia 3bitr3i
        wf syl6rbb bitr4d rexanali sylibr xrltnle xrltle sylbird syl2anr anim2d
        mtbid reximdva mpd ) AHIZAUDUAZHJZBUBJZUCZAUEDUFZUGUHUIIZYIBUJUKZCUHZKL
        ULZMNZURZOZDMHHUMZVKZPUNUKZQZYNYQYOMNZOZDUUCQYLYNYRRZDUUCSZURUUDYLYOYIM
        NZUUHYLYIYOLNUUIURYLYIBYHYJYKUOZYHYJYKUPZUQYLYIYOUUJYLYIBUUJYLBUUKUSUTZ
        VAVBYLUUIYOYNFUFZUJVCVDUGYMUGZVEVFZUHZKLULZTZOZDUUCQZFKVGZKLVHZMNZUUHYL
        YIUVBYOMYHYJYIUVBTYKFADUVAUVAVIVJVLVMYLUVCYOGUFZMNZGUVASZUUHYLUVAKIYOKJ
        ZUVCUVFVNUUTFKVOYLYOUULVPZGUVAYOVQVRUVFYNUVDYQTZOZDUUCQZUVERZGKSZUUHUUT
        UVKUVEGFKFGVSZUUSUVJDUUCUVNUURUVIYNUVNUURUVDUUQTUVIUUMUVDUUQVTYQUUQUVDK
        YPUUPLCUUOEWBWAWCWDWEWFWGUVJUVERZDUUCSZGKSUVOGKSZDUUCSUVMUUHUVOGDKUUCWH
        UVPUVLGKUVJUVEDUUCWIWJUVQUUGDUUCUVQUVIYNUVERZRZGKSZYMUUCJZUUGUVOUVSGKUV
        OUVIYNOUVERUVSYNUVIUVEWLUVIYNUVEWKWMWJUWAYQKJZUVTUUGVNUWAYPKIUWBUWAYPWN
        WOWPUKZKUWAPUWCCXOZYPUWCIUWAPUUBYMXOUWDUUBPYMUUAMHHWQWQWRWSWTXACYMUUNUU
        NVIEXBXCPUWCCXDXEWNWOXFXGYPXHXEZUVRUUGGYQKUVIUVEYRYNUVDYQYOMXIXJXKXEXLX
        MXNWMXPXQYEYNYRDUUCXRXSYLYTUUFDUUCYLUWAOYSUUEYNUWAUWBUVGYSUUERYLUWEUVHU
        WBUVGOYSYQYOLNUUEYQYOXTYQYOYAYBYCYDYFYG $.
    $}

    $( The volume of a set is always nonnegative.  (Contributed by Mario
       Carneiro, 16-Mar-2014.) $)
    ovolge0 $p |- ( A C_ RR -> 0 <_ ( vol* ` A ) ) $=
      ( vf vy vx cr wss cc0 cioo cv ccom crn cuni caddc cabs c1 cxr clt cle wbr
      cmin cseq csup wceq wa cxp cin cn cmap wrex crab cinf covol cfv wcel wral
      co wb ssrab2 0xr infxrgelb mp2an eqid ovolmge0 mprgbir ovolval syl5breqr
      ) AEFGAHBIZJKLFCIMNTJVGJOUAKPQUBUCUDBREEUEUFUGUHUPUIZCPUJZPQUKZAULUMRGVJR
      SZGDIZRSZDVIVIPFGPUNVKVMDVIUOUQVHCPURUSDVIGUTVACAVLBVIVIVBZVCVDCABVIVNVEV
      F $.

    $( The domain and range of the outer volume function.  (Contributed by
       Mario Carneiro, 16-Mar-2014.)  (Proof shortened by AV, 17-Sep-2020.) $)
    ovolf $p |- vol* : ~P RR --> ( 0 [,] +oo ) $=
      ( vx vf vy cr cpw cc0 cpnf cicc co covol cv wcel ccom crn wss cxr clt cle
      wbr syl wf wfn cfv wral cioo cuni caddc cabs cmin c1 cseq csup wa cxp cin
      wceq cmap wrex crab cinf xrltso infex df-ovol fnmpti elpwi ovolcl ovolge0
      cn pnfge w3a wb 0xr pnfxr elicc1 mp2an syl3anbrc rgen ffnfv mpbir2an ) DE
      ZFGHIZJUAJVTUBAKZJUCZWALZAVTUDAVTWBUEBKZMNUFOCKUGUHUIMWEMUJUKNPQULUPUMBRD
      DUNUOVHUQIURCPUSZPQUTJPWFQVAVBACBVCVDWDAVTWBVTLWBDOZWDWBDVEWGWCPLZFWCRSZW
      CGRSZWDWBVFZWBVGWGWHWJWKWCVITFPLGPLWDWHWIWJVJVKVLVMFGWCVNVOVPTVQAVTWAJVRV
      S $.

    $( If an outer volume is bounded above, then it is real.  (Contributed by
       Mario Carneiro, 18-Mar-2014.) $)
    ovollecl $p |- ( ( A C_ RR /\ B e. RR /\ ( vol* ` A ) <_ B ) ->
                     ( vol* ` A ) e. RR ) $=
      ( cr wss wcel covol cfv cle wbr w3a cxr cc0 ovolcl 3ad2ant1 simp2 ovolge0
      simp3 xrrege0 syl22anc ) ACDZBCEZAFGZBHIZJUBKEZUALUBHIZUCUBCETUAUDUCAMNTU
      AUCOTUAUEUCAPNTUAUCQUBBRS $.

    ${
      ovolss.1 $e |- M = { y e. RR* |
        E. f e. ( ( <_ i^i ( RR X. RR ) ) ^m NN ) ( A C_ U. ran ( (,) o. f ) /\
           y = sup ( ran seq 1 ( + , ( ( abs o. - ) o. f ) ) , RR* , < ) ) } $.
      ovolss.2 $e |- N = { y e. RR* |
        E. f e. ( ( <_ i^i ( RR X. RR ) ) ^m NN ) ( B C_ U. ran ( (,) o. f ) /\
           y = sup ( ran seq 1 ( + , ( ( abs o. - ) o. f ) ) , RR* , < ) ) } $.
      $( Lemma for ~ ovolss .  (Contributed by Mario Carneiro, 16-Mar-2014.)
         (Proof shortened by AV, 17-Sep-2020.) $)
      ovolsslem $p |- ( ( A C_ B /\ B C_ RR ) ->
                        ( vol* ` A ) <_ ( vol* ` B ) ) $=
        ( vx wss cr wa cxr clt cle wbr cv ccom wceq wcel cfv cinf wral cioo crn
        covol cuni caddc cabs cmin c1 cseq csup cxp cin cn cmap co wrex crab wi
        ad2antrr anim1d reximdv ss2rabdv 3sstr4g ovolval adantr eqsstri infxrlb
        sstr2 sstr ssrab2 mpan adantl eqbrtrd ralrimiva syl ssralv wb infxrgelb
        sylc ovolcl sylancr mpbird breqtrrd ) BCJZCKJZLZBUFUAZFMNUBZCUFUAZOWIWJ
        WKOPZWJIQZOPZIFUCZWIFEJWOIEUCZWPWICUDDQZRUEUGZJZAQZUHUIUJRWRRUKULUEMNUM
        SZLZDOKKUNUOUPUQURZUSZAMUTZBWSJZXBLZDXDUSZAMUTZFEWIXEXIAMWIXAMTZLZXCXHD
        XDXLWTXGXBWGWTXGVAWHXKBCWSVKVBVCVDVEHGVFWIBKJZWQBCKVLZXMWOIEXMWNETZLWJE
        MNUBZWNOXMWJXPSXOABDEGVGVHXOXPWNOPZXMEMJXOXQEXJMGXIAMVMVIEWNVJVNVOVPVQV
        RWOIFEVSWBWIFMJWJMTZWMWPVTFXFMHXEAMVMVIWIXMXRXNBWCVRIFWJWAWDWEWHWLWKSWG
        ACDFHVGVOWF $.
    $}

    $( The volume of a set is monotone with respect to set inclusion.
       (Contributed by Mario Carneiro, 16-Mar-2014.) $)
    ovolss $p |- ( ( A C_ B /\ B C_ RR ) -> ( vol* ` A ) <_ ( vol* ` B ) ) $=
      ( vy vf cioo cv ccom crn cuni wss caddc cabs cmin c1 wa cr wrex crab eqid
      cxr cseq clt csup wceq cle cxp cin cn cmap co ovolsslem ) CABDAEDFZGHIZJC
      FKLMGULGNUAHTUBUCUDZODUEPPUFUGUHUIUJZQCTRZBUMJUNODUOQCTRZUPSUQSUK $.

    $( If a set is contained in another of bounded measure, it too is bounded.
       (Contributed by Mario Carneiro, 18-Mar-2014.) $)
    ovolsscl $p |- ( ( A C_ B /\ B C_ RR /\ ( vol* ` B ) e. RR ) ->
                     ( vol* ` A ) e. RR ) $=
      ( wss cr covol cfv wcel w3a cle wbr 3adant3 simp3 ovolss ovollecl syl3anc
      sstr ) ABCZBDCZBEFZDGZHADCZTAEFZSIJZUBDGQRUATABDPKQRTLQRUCTABMKASNO $.

    $( A subset of a nullset is null.  (Contributed by Mario Carneiro,
       19-Mar-2014.) $)
    ovolssnul $p |- ( ( A C_ B /\ B C_ RR /\ ( vol* ` B ) = 0 ) ->
                      ( vol* ` A ) = 0 ) $=
      ( wss cr covol cfv cc0 wceq w3a cle wbr ovolss 3adant3 simp3 breqtrd sstr
      ovolge0 syl cxr wcel wa wb ovolcl 0xr xrletri3 sylancl mpbir2and ) ABCZBD
      CZBEFZGHZIZAEFZGHZUMGJKZGUMJKZULUMUJGJUHUIUMUJJKUKABLMUHUIUKNOULADCZUPUHU
      IUQUKABDPMZAQRULUMSTZGSTUNUOUPUAUBULUQUSURAUCRUDUMGUEUFUG $.

    ${
      ovollb2.1 $e |- S = seq 1 ( + , ( ( abs o. - ) o. F ) ) $.
      ${
        ovollb2.2 $e |- G = ( n e. NN |->
          <. ( ( 1st ` ( F ` n ) ) - ( ( B / 2 ) / ( 2 ^ n ) ) ) ,
             ( ( 2nd ` ( F ` n ) ) + ( ( B / 2 ) / ( 2 ^ n ) ) ) >. ) $.
        ovollb2.3 $e |- T = seq 1 ( + , ( ( abs o. - ) o. G ) ) $.
        ovollb2.4 $e |- ( ph -> F : NN --> ( <_ i^i ( RR X. RR ) ) ) $.
        ovollb2.5 $e |- ( ph -> A C_ U. ran ( [,] o. F ) ) $.
        ovollb2.6 $e |- ( ph -> B e. RR+ ) $.
        ovollb2.7 $e |- ( ph -> sup ( ran S , RR* , < ) e. RR ) $.
        $( Lemma for ~ ovollb2 .  (Contributed by Mario Carneiro,
           24-Mar-2015.) $)
        ovollb2lem $p |- ( ph ->
          ( vol* ` A ) <_ ( sup ( ran S , RR* , < ) + B ) ) $=
          ( cfv co cr wcel cn vm vz vy vk covol crn cxr clt csup caddc wss cicc
          ccom cuni cle cxp cin wf ovolficcss syl sstrd ovolcl cc0 cpnf cico cv
          c1st c2 cdiv cexp cmin c2nd cop wa wbr ovolfcl sylan simp1d rphalfcld
          w3a crp adantr cn0 2nn nnnn0 adantl nnexpcl sylancr rpdivcld resubcld
          nnrpd rpred simp2d readdcld ltsubrpd simp3d lelttrd lttrd ltled df-br
          ltaddrpd sylib opelxpi syl2anc elind eqid ovolsf frn syl6ss wrex wral
          wceq fveq2d oveq2d oveq12d ovex eqbrtrd adantlr wi syl3anc wb c1 cseq
          syl6eq fveq1i csu rge0ssre sseldi recnd rpcnd sylan2 ovolfsval oveq1d
          cc eqtrd 3eqtr4d fsumser wfn ffn mpbird fmptd cabs icossxr rexrd cioo
          supxrcl fveq2 oveq2 opex fvmpt op1st sselda ltletr mpand op2nd lelttr
          opeq12d breqtrrd mpan2d anim12d reximdva ralimdva ovolficc mpd ovollb
          ovolfioo 3imtr4d cfz ovolfsf elfznn ffvelrn syl2an fsumadd addsubassd
          fzfid subcld subadd23d subsub3d nncnd nnne0d divdird eqtr3d cuz simpr
          2halvesd nnuz syl6eleq addcld eqidd syl6eqr geo2sum 3eqtr3d ffvelrnda
          fnfvelrn supxrub le2addd ralrimiva breq1 ralrn 3syl supxrleub xrletrd
          syl5eq ) ABUEPZEUFZUGUHUIZDUFZUGUHUIZCUJQZABRUKZUXDUGSABULGUMUFUNZRMA
          TUORRUPZUQZGURZUXKRUKLGUSUTVAZBVBUTAUXEUGUKZUXFUGSAUXEVCVDVEQZUGATUXQ
          EURZUXEUXQUKATUXMHURZUXRAFTFVFZGPZVGPZCVHVIQZVHUXTVJQZVIQZVKQZUYAVLPZ
          UYEUJQZVMZUXMHAUXTTSZVNZUOUXLUYIUYKUYFUYHUOVOUYIUOSUYKUYFUYHUYKUYBUYE
          UYKUYBRSZUYGRSZUYBUYGUOVOZAUXNUYJUYLUYMUYNVTLGUXTVPVQZVRZUYKUYEUYKUYC
          UYDAUYCWASZUYJACNVSZWBUYKUYDUYKVHTSZUXTWCSZUYDTSWDUYJUYTAUXTWEWFVHUXT
          WGWHWKWIZWLZWJZUYKUYGUYEUYKUYLUYMUYNUYOWMZVUBWNZUYKUYFUYBUYHVUCUYPVUE
          UYKUYBUYEUYPVUAWOUYKUYBUYGUYHUYPVUDVUEUYKUYLUYMUYNUYOWPUYKUYGUYEVUDVU
          AXAWQWRWSUYFUYHUOWTXBUYKUYFRSUYHRSUYIUXLSVUCVUEUYFUYHRRXCXDXEJUUAZEHU
          UBVKUMZHUMZVUHXFZKXGUTZTUXQEXHUTVCVDUUCZXIZUXEUUFUTAUXIAUXHCOACNWLWNU
          UDZAUXSBUUEHUMUFUNUKZUXDUXFUOVOVUFABUXKUKZVUNMAUAVFZGPZVGPZUBVFZUOVOZ
          VUSVUQVLPZUOVOZVNZUATXJZUBBXKZVUPHPZVGPZVUSUHVOZVUSVVFVLPZUHVOZVNZUAT
          XJZUBBXKZVUOVUNAVVDVVLUBBAVUSBSZVNZVVCVVKUATVVOVUPTSZVNZVUTVVHVVBVVJV
          VQVVGVURUHVOZVUTVVHAVVPVVRVVNAVVPVNZVVGVURUYCVHVUPVJQZVIQZVKQZVURUHVV
          SVVGVWBVVAVWAUJQZVMZVGPVWBVVSVVFVWDVGVVPVVFVWDXLAFVUPUYIVWDTHUXTVUPXL
          ZUYFVWBUYHVWCVWEUYBVURUYEVWAVKVWEUYAVUQVGUXTVUPGUUGZXMVWEUYDVVTUYCVIU
          XTVUPVHVJUUHXNZXOVWEUYGVVAUYEVWAUJVWEUYAVUQVLVWFXMVWGXOUUQJVWBVWCUUIU
          UJWFZXMVWBVWCVURVWAVKXPZVVAVWAUJXPZUUKYDZVVSVURVWAVVSVURRSZVVARSZVURV
          VAUOVOZAUXNVVPVWLVWMVWNVTLGVUPVPVQZVRZVVSUYCVVTAUYQVVPUYRWBZVVSVVTVVS
          UYSVUPWCSZVVTTSWDVVPVWRAVUPWEWFVHVUPWGWHZWKZWIZWOXQXRVVQVVGRSZVWLVUSR
          SZVVRVUTVNVVHXSAVVPVXBVVNVVSVXBVVIRSZVVGVVIUOVOZAUXSVVPVXBVXDVXEVTVUF
          HVUPVPVQZVRXRAVVPVWLVVNVWPXRVVOVXCVVPABRVUSUXOUULWBZVVGVURVUSUUMXTUUN
          VVQVVBVVAVVIUHVOZVVJAVVPVXHVVNVVSVVAVWCVVIUHVVSVVAVWAVVSVWLVWMVWNVWOW
          MZVXAXAVVSVVIVWDVLPVWCVVSVVFVWDVLVWHXMVWBVWCVWIVWJUUOYDZUURXRVVQVXCVW
          MVXDVVBVXHVNVVJXSVXGAVVPVWMVVNVXIXRAVVPVXDVVNVVSVXBVXDVXEVXFWMXRVUSVV
          AVVIUUPXTUUSUUTUVAUVBAUXJUXNVUOVVEYAUXOLUBBUAGUVCXDAUXJUXSVUNVVMYAUXO
          VUFUBBUAHUVFXDUVGUVDBEHKUVEXDAUXFUXIUOVOZUCVFZUXIUOVOZUCUXEXKZAVXNUDV
          FZEPZUXIUOVOZUDTXKZAVXQUDTAVXOTSZVNZVXPVXODPZCCVHVXOVJQZVIQZVKQZUJQZU
          XIUOVXTVXPVXOUJVUHYBYCZPZVYEVXOEVYFKYEVXTYBVXOUVHQZVUPVUGGUMZPZCVVTVI
          QZUJQZUAYFVYHVYJUAYFZVYHVYKUAYFZUJQVYGVYEVXTVYHVYJVYKUAVXTYBVXOUVOVXT
          VUPVYHSZVNZVYJVYPUXQRVYJYGVXTTUXQVYIURZVVPVYJUXQSVYOAVYQVXSAUXNVYQLGV
          YIVYIXFZUVIUTWBVUPVXOUVJZTUXQVUPVYIUVKUVLYHYIZAVYOVYKYNSZVXSVYOAVVPWU
          AVYSVVSVYKVVSCVVTACWASZVVPNWBZVWTWIYJZYKXRZUVMVXTVYLUAVUHYBVXOAVYOVUP
          VUHPZVYLXLZVXSVYOAVVPWUGVYSVVSWUFVVIVVGVKQZVYLAUXSVVPWUFWUHXLVUFHVUHV
          UPVUIYLVQVVSVWCVWBVKQVVAVWAVWBVKQZUJQZWUHVYLVVSVVAVWAVWBVVSVVAVXIYIZV
          VSVWAVXAYJZVVSVURVWAVVSVURVWPYIZWULUVPUVNVVSVVIVWCVVGVWBVKVXJVWKXOVVS
          VVAVURVKQZVYKUJQVVAVYKVURVKQZUJQVYLWUJVVSVVAVURVYKWUKWUMWUDUVQVVSVYJW
          UNVYKUJAUXNVVPVYJWUNXLLGVYIVUPVYRYLVQYMVVSWUIWUOVVAUJVVSWUIVWAVWAUJQZ
          VURVKQWUOVVSVWAVURVWAWULWUMWULUVRVVSWUPVYKVURVKVVSUYCUYCUJQZVVTVIQWUP
          VYKVVSUYCUYCVVTVVSUYCVWQYJZWURVVSVVTVWSUVSVVSVVTVWSUVTUWAVVSWUQCVVTVI
          VVSCVVSCWUCYJUWEYMUWBYMYOXNYPYPYOYKXRVXTVXOTYBUWCPAVXSUWDZUWFUWGZVYPV
          YJVYKVYTWUEUWHYQVXTVYMVYAVYNVYDUJVXTVYMVXOUJVYIYBYCZPVYAVXTVYJUAVYIYB
          VXOVYPVYJUWIWUTVYTYQVXODWVAIYEUWJVXTVXSCYNSVYNVYDXLWUSVXTCAWUBVXSNWBZ
          YJCUAVXOUWKXDXOUWLUXCVXTVYAVYDUXHCVXTUXQRVYAYGATUXQVXODAUXNTUXQDURZLD
          GVYIVYRIXGUTZUWMYHVXTCVYCVXTCWVBWLZVXTVYCVXTCVYBWVBVXTVYBVXTUYSVXOWCS
          ZVYBTSWDVXSWVFAVXOWEWFVHVXOWGWHWKWIZWLWJZAUXHRSVXSOWBWVEVXTUXGUGUKZVY
          AUXGSZVYAUXHUOVOAWVIVXSAUXGUXQUGAWVCUXGUXQUKWVDTUXQDXHUTVUKXIWBADTYRZ
          VXSWVJAWVCWVKWVDTUXQDYSUTTVXODUWNVQUXGVYAUWOXDVXTVYDCWVHWVEVXTCVYCWVE
          WVGWOWSUWPXQUWQAUXRETYRVXNVXRYAVUJTUXQEYSVXMVXQUCUDTEVXLVXPUXIUOUWRUW
          SUWTYTAUXPUXIUGSVXKVXNYAVULVUMUCUXEUXIUXAXDYTUXB $.
      $}

      $( It is often more convenient to do calculations with *closed* coverings
         rather than open ones; here we show that it makes no difference
         (compare ~ ovollb ).  (Contributed by Mario Carneiro, 24-Mar-2015.) $)
      ovollb2 $p |- ( ( F : NN --> ( <_ i^i ( RR X. RR ) ) /\
                       A C_ U. ran ( [,] o. F ) ) ->
                     ( vol* ` A ) <_ sup ( ran S , RR* , < ) ) $=
        ( vx cn cle cr ccom wss wa cfv cpnf wcel syl c0 co cmin c1 caddc vm cxp
        vn cin wf cicc crn cuni covol cxr clt csup wceq simpr ovolficcss adantr
        wbr sstrd ovolcl breqtrrd wne wb cc0 cico cabs eqid ovolsf frn rge0ssre
        pnfge syl6ss cdm 1nn fdm syl5eleqr ne0i dm0rn0 necon3bii sylib supxrre2
        syl2anc biimpar cv crp wral c1st c2 cdiv cexp c2nd cop cmpt cseq fveq2d
        fveq2 oveq2 oveq2d oveq12d opeq12d cbvmptv simplll ovollb2lem ralrimiva
        simpllr simplr xralrple sylan mpbird syldan pm2.61dane ) FGHHUBUDCUEZAU
        FCIUGUHZJZKZAUILZBUGZUJUKULZGUQZXQMXNXQMUMZKZXOMXQGXTXOUJNZXOMGUQXNYAXS
        XNAHJYAXNAXLHXKXMUNXKXLHJXMCUOUPURAUSOZUPXOVJOXNXSUNUTXNXQMVAZXQHNZXRXN
        YDYCXNXPHJXPPVAZYDYCVBXNXPVCMVDQZHXNFYFBUEZXPYFJXKYGXMBCVERIZCIZYIVFDVG
        UPZFYFBVHOVIVKXNBVLZPVAZYEXNSYKNYLXNSFYKVMXNYGYKFUMYJFYFBVNOVOYKSVPOYKP
        XPPBVQVRVSXPVTWAWBXNYDKZXRXOXQEWCZTQGUQZEWDWEZYMYOEWDYMYNWDNZKAYNBTYHUA
        FUAWCZCLZWFLZYNWGWHQZWGYRWIQZWHQZRQZYSWJLZUUCTQZWKZWLZISWMZUCCUUHDUAUCF
        UUGUCWCZCLZWFLZUUAWGUUJWIQZWHQZRQZUUKWJLZUUNTQZWKYRUUJUMZUUDUUOUUFUUQUU
        RYTUULUUCUUNRUURYSUUKWFYRUUJCWOZWNUURUUBUUMUUAWHYRUUJWGWIWPWQZWRUURUUEU
        UPUUCUUNTUURYSUUKWJUUSWNUUTWRWSWTUUIVFXKXMYDYQXAXKXMYDYQXDYMYQUNXNYDYQX
        EXBXCXNYAYDXRYPVBYBEXOXQXFXGXHXIXJ $.
    $}

    $( The volume of a denumerable set is 0.  (Contributed by Mario Carneiro,
       17-Mar-2014.)  (Proof shortened by Mario Carneiro, 25-Mar-2015.) $)
    ovolctb $p |- ( ( A C_ RR /\ A ~~ NN ) -> ( vol* ` A ) = 0 ) $=
      ( vx vy cn wbr cr cfv cc0 wceq wa cle cid c1 cxr clt wf wcel cvv syl6eq
      cc vf cen wss covol ensym wf1o wex bren caddc cabs cmin ccom cof cseq crn
      cv co csup cxp cin cicc cuni cmpt cop simpll f1of adantl ffvelrnda sseldd
      leidd df-br sylib opelxpi syl2anc elind df-ov opex fvi ax-mp mpteq2i nnex
      eqtri fmptd a1i recnd feqmptd offval2 feq1d c1st c2nd wrex wral wfo f1ofo
      mpbird forn syl eleq2d wfn wb f1ofn fvelrnb bitr3d fveq1d fvmpt2 sylan9eq
      eqid mpan2 fveq2d fvex op1st eqbrtrd op2nd breqtrrd breq2 breq1 syl5ibcom
      jca anbi12d reximdva sylbid ralrimiv ovolficc syldan ovollb2 csn absf fco
      subf mp2an fveq2 syl6eqr fmptco cme cnmet met0 sylancr mpteq2dva adantr
      0xr eqtrd fconstmpt seqeq3d cz 1z nnuz ser0f rneqd wne 1nn ne0i rnxp mp2b
      c0 supeq1d xrltso supsn breqtrd ovolge0 ovolcl xrletri3 sylancl mpbir2and
      wor ex exlimdv syl5bi imp sylan2 ) ADUBEAFUCZDAUBEZAUDGZHIZADUEUVJUVKUVMU
      VKDAUAUPZUFZUAUGUVJUVMDAUAUHUVJUVOUVMUAUVJUVOUVMUVJUVOJZUVMUVLHKEZHUVLKEZ
      UVPUVLUIUJUKULZUVNUVNLUMUQZULZMUNZUOZNOURZHKUVPDKFFUSZUTZUVTPZAVAUVTULUOV
      BUCZUVLUWDKEUVPUWGDUWFBDBUPZUVNGZUWJLUQZVCZPUVPBDUWJUWJVDZUWFUWLUVPUWIDQZ
      JZKUWEUWMUWOUWJUWJKEUWMKQUWOUWJUWOAFUWJUVJUVOUWNVEUVPDAUWIUVNUVODAUVNPUVJ
      DAUVNVFVGZVHVIZVJZUWJUWJKVKVLUWOUWJFQZUWSUWMUWEQUWQUWQUWJUWJFFVMVNVOBDUWK
      UWMUWKUWMLGZUWMUWJUWJLVPUWMRQZUWTUWMIUWJUWJVQZUWMRVRVSWBVTZWCUVPDUWFUVTUW
      LUVPBDUWJUWJLUVNUVNRTTDRQUVPWAWDUWOUWJUWQWEZUXDUVPBDAUVNUWPWFZUXEWGZWHWOZ
      UVPUWHUWIUVTGZWIGZCUPZKEZUXJUXHWJGZKEZJZBDWKZCAWLZUVPUXOCAUVPUXJAQZUWJUXJ
      IZBDWKZUXOUVPUXJUVNUOZQZUXQUXSUVPUXTAUXJUVPDAUVNWMZUXTAIUVOUYBUVJDAUVNWNV
      GDAUVNWPWQWRUVPUVNDWSZUYAUXSWTUVOUYCUVJDAUVNXAVGBDUXJUVNXBWQXCUVPUXRUXNBD
      UWOUXIUWJKEZUWJUXLKEZJUXRUXNUWOUYDUYEUWOUXIUWJUWJKUWOUXIUWMWIGUWJUWOUXHUW
      MWIUVPUWNUXHUWIBDUWMVCZGZUWMUVPUWIUVTUYFUVPUVTUWLUYFUXFUXCSZXDUWNUXAUYGUW
      MIUXBBDUWMRUYFUYFXGXEXHXFZXIUWJUWJUWIUVNXJZUYJXKSUWRXLUWOUWJUWJUXLKUWRUWO
      UXLUWMWJGUWJUWOUXHUWMWJUYIXIUWJUWJUYJUYJXMSXNXRUXRUYDUXKUYEUXMUWJUXJUXIKX
      OUWJUXJUXLKXPXSXQXTYAYBUVJUVOUWGUWHUXPWTUXGCABUVTYCYDWOAUWBUVTUWBXGYEVNUV
      PUWDHYFZNOURZHUVPNUWCUYKOUVPUWCDUYKUSZUOZUYKUVPUWBUYMUVPUWBUIUYMMUNZUYMUV
      PUWAUYMUIMUVPUWABDHVCZUYMUVPUWABDUWJUWJUVSUQZVCUYPUVPBCDTTUSZUWMUXJUVSGZU
      YQUVTUVSUWOUWJTQZUYTUWMUYRQUXDUXDUWJUWJTTVMVNUYHUVPCUYRFUVSUYRFUVSPZUVPTF
      UJPUYRTUKPVUAYGYIUYRTFUJUKYHYJWDWFUXJUWMIUYSUWMUVSGUYQUXJUWMUVSYKUWJUWJUV
      SVPYLYMUVPBDUYQHUWOUVSTYNGQUYTUYQHIYOUXDUWJUVSTYPYQYRUUABDHUUBYLUUCMUUDQU
      YOUYMIUUEMDUUFUUGVSSUUHMDQDUUNUUIUYNUYKIUUJDMUUKDUYKUULUUMSUUONOUVDHNQZUY
      LHIUUPYTNHOUUQYJSUURUVJUVRUVOAUUSYSUVPUVLNQZVUBUVMUVQUVRJWTUVJVUCUVOAUUTY
      SYTUVLHUVAUVBUVCUVEUVFUVGUVHUVI $.
  $}

  $( The rational numbers have 0 outer Lebesgue measure.  (Contributed by Mario
     Carneiro, 17-Mar-2014.) $)
  ovolq $p |- ( vol* ` QQ ) = 0 $=
    ( cq cr wss cn cen wbr covol cfv cc0 wceq qssre qnnen ovolctb mp2an ) ABCAD
    EFAGHIJKLAMN $.

  $( The volume of a countable set is 0.  (Contributed by Mario Carneiro,
     17-Mar-2014.) $)
  ovolctb2 $p |- ( ( A C_ RR /\ A ~<_ NN ) -> ( vol* ` A ) = 0 ) $=
    ( cr wss cn cdom wbr wa cun covol cfv cc0 wceq simpl cen com nnenom domentr
    sylancl cvv syl2anc nnssre unss sylanblc mpan2 adantl endom ax-mp wcel reex
    unctb ensymi ssex ssun2 ssdomg mpisyl sbth ovolctb ssun1 ovolssnul mp3an1
    syl ) ABCZADEFZGZADHZBCZVEIJKLZAIJKLZVDVBDBCVFVBVCMUAADBUBUCZVDVFVEDNFZVGVI
    VDVEDEFZDVEEFZVJVDVEOEFZODNFVKVDAOEFZDOEFZVMVCVNVBVCDONFZVNPADOQUDUEVPVOPDO
    UFUGADUJRDOPUKVEODQRVDVESUHZDVECVLVDVFVQVIVEBUIULVADAUMDVESUNUOVEDUPTVEUQTA
    VECVFVGVHADURAVEUSUTT $.

  $( The empty set has 0 outer Lebesgue measure.  (Contributed by Mario
     Carneiro, 17-Mar-2014.) $)
  ovol0 $p |- ( vol* ` (/) ) = 0 $=
    ( c0 cr wss cn cdom wbr covol cfv cc0 wceq 0ss nnex 0dom ovolctb2 mp2an ) A
    BCADEFAGHIJBKDLMANO $.

  $( A finite set has 0 outer Lebesgue measure.  (Contributed by Mario
     Carneiro, 13-Aug-2014.) $)
  ovolfi $p |- ( ( A e. Fin /\ A C_ RR ) -> ( vol* ` A ) = 0 ) $=
    ( cr wss cdom wbr covol cfv cc0 wceq cfn wcel com cen csdm isfinite sdomdom
    cn id sylbi nnenom ensymi domentr sylancl ovolctb2 syl2anr ) ABCZUFAQDEZAFG
    HIAJKZUFRUHALDEZLQMEUGUHALNEUIAOALPSQLTUAALQUBUCAUDUE $.

  $( A singleton has 0 outer Lebesgue measure.  (Contributed by Mario Carneiro,
     15-Aug-2014.) $)
  ovolsn $p |- ( A e. RR -> ( vol* ` { A } ) = 0 ) $=
    ( cr wcel csn cfn wss covol cfv cc0 wceq snfi snssi ovolfi sylancr ) ABCADZ
    ECOBFOGHIJAKABLOMN $.

  ${
    $d g h k n z C $.  $d k m n z F $.  $d j k m z H $.  $d g h k m n z A $.
    $d g h k m n z B $.  $d k z S $.  $d k z T $.  $d k m n z G $.
    $d g h j k m n z ph $.  $d k z U $.
    ovolun.a $e |- ( ph -> ( A C_ RR /\ ( vol* ` A ) e. RR ) ) $.
    ovolun.b $e |- ( ph -> ( B C_ RR /\ ( vol* ` B ) e. RR ) ) $.
    ovolun.c $e |- ( ph -> C e. RR+ ) $.
    ${
      ovolun.s $e |- S = seq 1 ( + , ( ( abs o. - ) o. F ) ) $.
      ovolun.t $e |- T = seq 1 ( + , ( ( abs o. - ) o. G ) ) $.
      ovolun.u $e |- U = seq 1 ( + , ( ( abs o. - ) o. H ) ) $.
      ovolun.f1 $e |- ( ph -> F e. ( ( <_ i^i ( RR X. RR ) ) ^m NN ) ) $.
      ovolun.f2 $e |- ( ph -> A C_ U. ran ( (,) o. F ) ) $.
      ovolun.f3 $e |- ( ph -> sup ( ran S , RR* , < ) <_
                        ( ( vol* ` A ) + ( C / 2 ) ) ) $.
      ovolun.g1 $e |- ( ph -> G e. ( ( <_ i^i ( RR X. RR ) ) ^m NN ) ) $.
      ovolun.g2 $e |- ( ph -> B C_ U. ran ( (,) o. G ) ) $.
      ovolun.g3 $e |- ( ph -> sup ( ran T , RR* , < ) <_
                        ( ( vol* ` B ) + ( C / 2 ) ) ) $.
      ovolun.h $e |- H = ( n e. NN |-> if ( ( n / 2 ) e. NN ,
        ( G ` ( n / 2 ) ) , ( F ` ( ( n + 1 ) / 2 ) ) ) ) $.
      $( Lemma for ~ ovolun .  (Contributed by Mario Carneiro, 7-May-2015.) $)
      ovolunlem1a $p |- ( ( ph /\ k e. NN ) ->
        ( U ` k ) <_ ( ( ( vol* ` A ) + ( vol* ` B ) ) + C ) ) $=
        ( vj vz cv cn wcel wa cfv c2 c1 caddc co cdiv cmul covol cr cc0 wss cle
        wf reex nnex elmap sylib adantr ffvelrnda wn wb nneo adantl syldan cmin
        cif ccom eqid ovolsf syl rge0ssre sylancl 2nn wbr rehalfcld 1re mp3an13
        cz mpbid clt nnmulcl simprd readdcld cseq cuz nnuz syl6eleq nnz syl2anc
        1z syl2an cfz ovolfsf fveq1i crn frn syl6ss cxr c0 wne wceq letrd oveq2
        wi fveq2d fveq2 oveq12d eqeq12d imbi2d c2nd c1st ovolfsval oveq1 eleq1d
        oveq1d syl6eq eqtrd fvex fvmpt fveq2i seq1i syl5eq recnd eqeltrd 3eqtrd
        1nn seqp1 ffvelrn sseldi cfl cpnf cico cxp cin cmap xpex con2bid ifclda
        inex2 biimpar fmptd cabs peano2nn nnred flcld ax-1cn 2timesi nnge1 nnre
        fss leadd1 syl5eqbr 2re 2pos pm3.2i lemuldiv2 flge elnnz1 sylancr rpred
        sylanbrc simpr flhalf mpbird elfznn elrege0 simpld sylan2 elfzuz eluznn
        eluz sermono 3brtr4g wfn ffn fnfvelrn sseldd csup cmnf ressxr syl5eleqr
        supxrcl cdm fdm ne0i necon3bii supxrgtmnf xrre syl22anc supxrub le2addd
        dm0rn0 halfnz mtoi iffalsed df-2 syl6eqr 2div2e1 ax-mp oveq12i syl6eqel
        syl5ib 2t1e2 iftrued seqp1i eqtr4d oveq2i 2cnd 1cnd adddid mpan addassd
        nncnd 3eqtr4a peano2nnd a1i ifbieq12d ifex 2ne0 divcan3d cc 2cn divcan3
        mp3an23 eqtr3d 3eqtr4rd 3eqtr4d oveq1i 3eqtr4g add4d syl5ibr expcom a2d
        nnind impcom 2halvesd oveq2d eqtr2d 3brtr4d ) AHUHZUIUJZUKZVUKGULZUMVUK
[encoded data, 7440 characters]
        VUAVUMYUADVVBUOVUMDVUMDYUBYNVUGVUHVUIVUJXM $.

      $( Lemma for ~ ovolun .  (Contributed by Mario Carneiro, 12-Jun-2014.) $)
      ovolunlem1 $p |- ( ph ->
          ( vol* ` ( A u. B ) ) <_ ( ( ( vol* ` A ) + ( vol* ` B ) ) + C ) ) $=
        ( vz vk vm cun covol cfv crn cxr clt csup caddc wss wcel cle wbr simpld
        co cr unssd c0 wne cpnf cn wf cc0 cico cxp cin cv c2 cdiv cif cmap reex
        c1 wa xpex inex2 nnex elmap sylib adantr ffvelrnda wn wb adantl con2bid
        nneo biimpar syldan ifclda fmptd cmin ccom syl sylancl wceq wral simprd
        wfn wrex readdcld mpbird rspcev syl2anc mpbid syl3anc cioo cuni c1st cc
        c2nd oveq1d eqtrd eqeltrd oveq1 eleq1d fveq2d ifbieq12d fvex ifex fvmpt
        3eqtrd eqeq1d breq1d anbi12d biimprcd reximdv syl5com rexlimdva ralimdv
        fveq2 breq2d ovolfioo 3imtr4d mpd cabs eqid ovolsf rge0ssre fss frn cdm
        1nn cseq cuz cz 1z seqfn mp1i fneq1i nnuz fneq2i bitri sylibr syl5eleqr
        fndm ne0i dm0rn0 necon3bii rpred ovolunlem1a breq1 ralrn ralbidv ressxr
        ralrimiva breq2 syl6ss supxrbnd2 supxrbnd cmul nncn 1cnd addsubassd cn0
        2timesd simpr nnm1nn0 nnnn0addcl 2nn nnmulcl sylancr nncnd ax-1cn npcan
        2cn 2ne0 divcan3 mp3an23 iffalsed ovollb ovollecl rexrd supxrleub letrd
        iftrued ) ABCUHZUIUJZGUKZULUMUNZBUIUJZCUIUJZUOVAZDUOVAZAUXBVBUPUXEVBUQZ
        UXCUXEURUSZUXCVBUQABCVBABVBUPZUXFVBUQZLUTZACVBUPZUXGVBUQZMUTZVCAUXDVBUP
        ZUXDVDVEZUXEVFUMUSZUXJAVGVBGVHZUXRAVGVIVFVJVAZGVHZUYBVBUPUYAAVGURVBVBVK
        ZVLZKVHZUYCAHVGHVMZVNVOVAZVGUQZUYHJUJZUYGVSUOVAZVNVOVAZIUJZVPZUYEKAUYGV
        GUQZVTZUYIUYJUYMUYEUYPVGUYEUYHJAVGUYEJVHZUYOAJUYEVGVQVAZUQUYQUAUYEVGJUY
        DURVBVBVRVRWAWBZWCWDWEZWFWGUYPUYIWHZUYLVGUQZUYMUYEUQUYPVUBVUAUYPUYIVUBU
        YOUYIVUBWHWIAUYGWLWJWKWMUYPVGUYEUYLIAVGUYEIVHZUYOAIUYRUQVUCRUYEVGIUYSWC
        WDWEZWFWGWNWOUDWPZGKUUAWQWRKWRZVUFUUBQUUCWSUUDVGUYBVBGUUEWTVGVBGUUFWSZA
        GUUGZVDVEZUXSAVSVUHUQVUIAVSVGVUHUUHAGVGXDZVUHVGXAAUOVUFVSUUIZVSUUJUJZXD
        ZVUJVSUUKUQVUMAUULUOVUFVSUUMUUNVUJVUKVGXDVUMVGGVUKQUUOVGVULVUKUUPUUQUUR
        UUSZVGGUVAWSUUTVUHVSUVBWSVUHVDUXDVDGUVCUVDWEAUEVMZUFVMZURUSZUEUXDXBZUFV
        BXEZUXTAUXIVBUQVUOUXIURUSZUEUXDXBZVUSAUXHDAUXFUXGAUXLUXMLXCAUXOUXPMXCXF
        ADNUVEXFZAVVAVUPGUJZUXIURUSZUFVGXBZAVVDUFVGABCDEFGUFHIJKLMNOPQRSTUAUBUC
        UDUVFUVKAVUJVVAVVEWIVUNVUTVVDUEUFVGGVUOVVCUXIURUVGUVHWSXGZVURVVAUFUXIVB
        VUPUXIXAVUQVUTUEUXDVUPUXIVUOURUVLUVIXHXIAUXDULUPZVUSUXTWIAUXDVBULVUGUVJ
        UVMZUFUEUXDUVNWSXJUXDUVOXKZAUYFUXBXLKWRUKXMZUPUXKVUEABCVVJABXLIWRUKXMUP
        ZBVVJUPZSAUGVMZIUJZXNUJZVUOUMUSZVUOVVNXPUJZUMUSZVTZUGVGXEZUEBXBZVUPKUJZ
        XNUJZVUOUMUSZVUOVWBXPUJZUMUSZVTZUFVGXEZUEBXBZVVKVVLAVVTVWHUEBAVVSVWHUGV
        GAVVMVGUQZVTZVWBVVNXAZUFVGXEZVVSVWHVWKVNVVMUVPVAZVSWQVAZVGUQZVWOKUJZVVN
        XAZVWMVWKVWOVVMVVMVSWQVAZUOVAZVGVWKVWOVVMVVMUOVAZVSWQVAVWTVWKVWNVXAVSWQ
        VWKVVMVWJVVMXOUQZAVVMUVQWJZUWAXQVWKVVMVVMVSVXCVXCVWKUVRUVSXRVWKVWJVWSUV
        TUQZVWTVGUQAVWJUWBZVWJVXDAVVMUWCWJVVMVWSUWDXIXSZVWKVWQVWOVNVOVAZVGUQZVX
        GJUJZVWOVSUOVAZVNVOVAZIUJZVPZVXLVVNVWKVWPVWQVXMXAVXFHVWOUYNVXMVGKUYGVWO
        XAZUYIVXHUYJUYMVXIVXLVXNUYHVXGVGUYGVWOVNVOXTZYAVXNUYHVXGJVXOYBVXNUYLVXK
        IVXNUYKVXJVNVOUYGVWOVSUOXTXQYBYCUDVXHVXIVXLVXGJYDVXKIYDYEYFWSVWKVXHVXIV
        XLVWKVXKVGUQZVXHWHVWKVXKVVMVGVWKVXKVWNVNVOVAZVVMVWKVXJVWNVNVOVWKVWNXOUQ
        VSXOUQVXJVWNXAVWKVWNVWKVNVGUQVWJVWNVGUQZUWEVXEVNVVMUWFUWGZUWHUWIVWNVSUW
        JWTXQVWKVXBVXQVVMXAZVXCVXBVNXOUQVNVIVEVXTUWKUWLVVMVNUWMUWNWSZXRZVXEXSVW
        KVXHVXPVWKVWPVXHVXPWHWIVXFVWOWLWSWKXJUWOVWKVXKVVMIVYBYBYGVWLVWRUFVWOVGV
        UPVWOXAVWBVWQVVNVUPVWOKYPYHXHXIVVSVWLVWGUFVGVWLVWGVVSVWLVWDVVPVWFVVRVWL
        VWCVVOVUOUMVWBVVNXNYPYIVWLVWEVVQVUOUMVWBVVNXPYPYQYJYKYLYMYNYOAUXLVUCVVK
        VWAWIUXNVUDUEBUGIYRXIAUXLUYFVVLVWIWIUXNVUEUEBUFKYRXIYSYTACXLJWRUKXMUPZC
        VVJUPZUBAVVMJUJZXNUJZVUOUMUSZVUOVYEXPUJZUMUSZVTZUGVGXEZUECXBZVWHUECXBZV
        YCVYDAVYKVWHUECAVYJVWHUGVGVWKVWBVYEXAZUFVGXEZVYJVWHVWKVXRVWNKUJZVYEXAZV
        YOVXSVWKVYPVXQVGUQZVXQJUJZVWNVSUOVAZVNVOVAZIUJZVPZVYSVYEVWKVXRVYPWUCXAV
        XSHVWNUYNWUCVGKUYGVWNXAZUYIVYRUYJUYMVYSWUBWUDUYHVXQVGUYGVWNVNVOXTZYAWUD
        UYHVXQJWUEYBWUDUYLWUAIWUDUYKVYTVNVOUYGVWNVSUOXTXQYBYCUDVYRVYSWUBVXQJYDW
        UAIYDYEYFWSVWKVYRVYSWUBVWKVXQVVMVGVYAVXEXSUXAVWKVXQVVMJVYAYBYGVYNVYQUFV
        WNVGVUPVWNXAVWBVYPVYEVUPVWNKYPYHXHXIVYJVYNVWGUFVGVYNVWGVYJVYNVWDVYGVWFV
        YIVYNVWCVYFVUOUMVWBVYEXNYPYIVYNVWEVYHVUOUMVWBVYEXPYPYQYJYKYLYMYNYOAUXOU
        YQVYCVYLWIUXQUYTUECUGJYRXIAUXOUYFVYDVYMWIUXQVUEUECUFKYRXIYSYTVCUXBGKQUW
        PXIZUXBUXEUWQXKVVIVVBWUFAUXEUXIURUSZVVAVVFAVVGUXIULUQWUGVVAWIVVHAUXIVVB
        UWRUEUXDUXIUWSXIXGUWT $.
    $}

    $( Lemma for ~ ovolun .  (Contributed by Mario Carneiro, 12-Jun-2014.) $)
    ovolunlem2 $p |- ( ph ->
        ( vol* ` ( A u. B ) ) <_ ( ( ( vol* ` A ) + ( vol* ` B ) ) + C ) ) $=
      ( vg vh ccom crn wss caddc c1 cfv co cle wa cr wcel vn cioo cuni cabs cxr
      cv cmin cseq clt csup covol c2 cdiv wbr cxp cin cn cmap cun simpld simprd
      wrex crp rphalfcld eqid ovolgelb syl3anc reeanv w3a cmpt 3ad2ant1 simp3ll
      simp2l simp3lr simp2r simp3rl simp3rr ovolunlem1 rexlimdvv syl5bir mp2and
      cif 3exp ) ABUBHUFZJKUCLZMUDUGJZWDJNUHZKUEUIUJBUKOZDULUMPZMPQUNZRZHQSSUOU
      PUQURPZVBZCUBIUFZJKUCLZMWFWNJNUHZKUEUIUJCUKOZWIMPQUNZRZIWLVBZBCUSUKOWHWQM
      PDMPQUNZABSLZWHSTZWIVCTZWMAXBXCEUTAXBXCEVAADGVDZBWIWGHWGVEZVFVGACSLZWQSTZ
      XDWTAXGXHFUTAXGXHFVAXECWIWPIWPVEZVFVGWMWTRWKWSRZIWLVBHWLVBAXAWKWSHIWLWLVH
      AXJXAHIWLWLAWDWLTZWNWLTZRZXJXAAXMXJVIBCDWGWPMWFUAUQUAUFZULUMPZUQTXOWNOXNN
      MPULUMPWDOWBVJZJNUHZUAWDWNXPAXMXBXCRXJEVKAXMXGXHRXJFVKAXMDVCTXJGVKXFXIXQV
      EAXKXLXJVMWEWJWSAXMVLWEWJWSAXMVNAXKXLXJVOWOWRWKAXMVPWOWRWKAXMVQXPVEVRWCVS
      VTWA $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The Lebesgue outer measure function is finitely sub-additive.  (Unlike
       the stronger ~ ovoliun , this does not require any choice principles.)
       (Contributed by Mario Carneiro, 12-Jun-2014.) $)
    ovolun $p |- ( ( ( A C_ RR /\ ( vol* ` A ) e. RR ) /\
                     ( B C_ RR /\ ( vol* ` B ) e. RR ) ) ->
                  ( vol* ` ( A u. B ) ) <_ ( ( vol* ` A ) + ( vol* ` B ) ) ) $=
      ( vx cr wss covol cfv wcel wa cun caddc co cle wbr crp wral simpll simplr
      cv simpr ovolunlem2 ralrimiva cxr unss biimpi ad2ant2r ovolcl syl readdcl
      wb ad2ant2l xralrple syl2anc mpbird ) ADEZAFGZDHZIZBDEZBFGZDHZIZIZABJZFGZ
      UPUTKLZMNZVEVFCSZKLMNZCOPZVCVICOVCVHOHZIABVHURVBVKQURVBVKRVCVKTUAUBVCVEUC
      HZVFDHZVGVJUJVCVDDEZVLUOUSVNUQVAUOUSIVNABDUDUEUFVDUGUHUQVAVMUOUSUPUTUIUKC
      VEVFULUMUN $.
  $}

  $( Adding a nullset does not change the measure of a set.  (Contributed by
     Mario Carneiro, 25-Mar-2015.) $)
  ovolunnul $p |- ( ( A C_ RR /\ B C_ RR /\ ( vol* ` B ) = 0 ) ->
                ( vol* ` ( A u. B ) ) = ( vol* ` A ) ) $=
    ( cr wss covol cfv cc0 wceq cle wbr clt cxr wcel wb ovolcl 3ad2ant1 syl2anc
    caddc adantr cmnf w3a cun wn simp1 simp2 unssd syl xrltnle wa mnfxr ovolge0
    co a1i ge0gtmnf simpr xrre2 syl32anc simpl3 syl6eqel ovolun syl22anc oveq2d
    0re recnd addid1d eqtrd breqtrd ex sylbird pm2.18d ovolss sylancr mpbir2and
    ssun1 xrletri3 ) ACDZBCDZBEFZGHZUAZABUBZEFZAEFZHZWBWCIJZWCWBIJZVTWEVTWEUCZW
    CWBKJZWEVTWCLMZWBLMZWHWGNVPVQWIVSAOZPZVTWACDZWJVTABCVPVQVSUDZVPVQVSUEZUFZWA
    OUGZWCWBUHQVTWHWEVTWHUIZWBWCVRRULZWCIWRVPWCCMZVQVRCMWBWSIJVTVPWHWNSZWRTLMZW
    IWJTWCKJZWHWTXBWRUJUMWRVPWIXAWKUGVTWJWHWQSVTXCWHVTWIGWCIJZXCWLVPVQXDVSAUKPW
    CUNQSVTWHUOTWCWBUPUQZVTVQWHWOSWRVRGCVPVQVSWHURZVCUSABUTVAWRWSWCGRULWCWRVRGW
    CRXFVBWRWCWRWCXEVDVEVFVGVHVIVJVTAWADWMWFABVNWPAWAVKVLVTWJWIWDWEWFUINWQWLWBW
    CVOQVM $.

  ${
    $d k m x y z A $.  $d m x y z B $.
    $( The Lebesgue outer measure function is finitely sub-additive.  Finite
       sum version.  (Contributed by Mario Carneiro, 19-Jun-2014.) $)
    ovolfiniun $p |- ( ( A e. Fin /\ A. k e. A
                         ( B C_ RR /\ ( vol* ` B ) e. RR ) ) ->
                  ( vol* ` U_ k e. A B ) <_ sum_ k e. A ( vol* ` B ) ) $=
      ( vm wcel cr wss covol cfv wa wral ciun csu cle wbr cv wi c0 wceq fveq2d
      vx vy vz cfn csn cun raleq iuneq1 sumeq1 breq12d imbi12d 0le0 0iun fveq2i
      cc0 ovol0 eqtri 3brtr4i a1i wn ssun1 ssralv ax-mp imim1i csb caddc simprl
      sum0 nfcsb1v nfcv nfss nffv nfel1 nfan csbeq1a sseq1d eleq1d anbi12d rspc
      co mpan9 simpld ralrimiva iunss sylibr iunss1 syl5ss simpll simprd sylan2
      elun1 fsumrecl simprr cbviun cbvsumi 3brtr3g ovollecl syl3anc ssun2 vsnid
      sselii readdcld iunxun csbeq1 iunxsn uneq2i ovolun syl21anc syl5eqbr snfi
      mpsyl vex mpan2 ad2antrr leadd1dd cin simplr disjsn eqidd recnd fsumsplit
      unfi cvv sumsn sylancr oveq2d eqtrd breqtrrd letrd 3brtr4g exp32 a2d syl5
      cc findcard2s imp ) AUDEBFGZBHIZFEZJZCAKZCABLZHIZAYRCMZNOZYTCUAPZKZCUUFBL
      ZHIZUUFYRCMZNOZQYTCRKZCRBLZHIZRYRCMZNOZQYTCUBPZKZCUUQBLZHIZUUQYRCMZNOZQZY
      TCUUQUCPZUEZUFZKZCUVFBLZHIZUVFYRCMZNOZQZUUAUUEQUAUBUCAUUFRSZUUGUULUUKUUPY
      TCUUFRUGUVMUUIUUNUUJUUONUVMUUHUUMHCUUFRBUHTUUFRYRCUIUJUKUUFUUQSZUUGUURUUK
      UVBYTCUUFUUQUGUVNUUIUUTUUJUVANUVNUUHUUSHCUUFUUQBUHTUUFUUQYRCUIUJUKUUFUVFS
      ZUUGUVGUUKUVKYTCUUFUVFUGUVOUUIUVIUUJUVJNUVOUUHUVHHCUUFUVFBUHTUUFUVFYRCUIU
      JUKUUFASZUUGUUAUUKUUEYTCUUFAUGUVPUUIUUCUUJUUDNUVPUUHUUBHCUUFABUHTUUFAYRCU
      IUJUKUUPUULUOUOUUNUUONULUUNRHIUOUUMRHCBUMUNUPUQYRCVHURUSUVCUVGUVBQUUQUDEZ
      UVDUUQEUTZJZUVLUVGUURUVBUUQUVFGZUVGUURQUUQUVEVAZYTCUUQUVFVBVCVDUVSUVGUVBU
      VKUVSUVGUVBUVKUVSUVGUVBJZJZDUVFCDPZBVEZLZHIZUVFUWEHIZDMZUVIUVJNUWCUWGDUUQ
      UWELZHIZCUVDBVEZHIZVFVTZUWIUWCUWFFGZUWNFEUWGUWNNOUWGFEUWCUWEFGZDUVFKUWOUW
      CUWPDUVFUWCUWDUVFEZJZUWPUWHFEZUWCUVGUWQUWPUWSJZUVSUVGUVBVGZYTUWTCUWDUVFUW
      PUWSCCUWEFCUWDBVIZCFVJZVKCUWHFCUWEHCHVJZUXBVLZVMVNCPZUWDSZYQUWPYSUWSUXGBU
      WEFCUWDBVOZVPUXGYRUWHFUXGBUWEHUXHTZVQVRVSWAZWBWCDUVFUWEFWDWEZUWCUWKUWMUWC
      UWJFGZUUQUWHDMZFEUWKUXMNOUWKFEZUWCUWJUWFFUVTUWJUWFGUWADUUQUVFUWEWFVCUXKWG
      ZUWCUUQUWHDUVQUVRUWBWHUWDUUQEUWCUWQUWSUWDUUQUVEWKUWRUWPUWSUXJWIZWJWLZUWCU
      UTUVAUWKUXMNUVSUVGUVBWMUUSUWJHCDUUQBUWEDBVJZUXBUXHWNUNUUQYRUWHCDDYRVJZUXE
      UXIWOWPZUWJUXMWQWRZUWCUWLFGZUWMFEZUVDUVFEUWCUVGUYBUYCJZUVEUVFUVDUVEUUQWSU
      CWTXAUXAYTUYDCUVDUVFUYBUYCCCUWLFCUVDBVIZUXCVKCUWMFCUWLHUXDUYEVLVMVNUXFUVD
      SZYQUYBYSUYCUYFBUWLFCUVDBVOZVPUYFYRUWMFUYFBUWLHUYGTVQVRVSXKZWIZXBZUWCUWGU
      WJUWLUFZHIZUWNNUWFUYKHUWFUWJDUVEUWELZUFUYKDUUQUVEUWEXCUYMUWLUWJDUVDUWEUWL
      UCXLZCUWDUVDBXDZXEXFUQUNUWCUXLUXNUYDUYLUWNNOUXOUYAUYHUWJUWLXGXHXIZUWFUWNW
      QWRUYJUWCUVFUWHDUVQUVFUDEZUVRUWBUVQUVEUDEUYQUVDXJUUQUVEYBXMXNZUXPWLUYPUWC
      UWNUXMUWMVFVTZUWINUWCUWKUXMUWMUYAUXQUYIUXTXOUWCUWIUXMUVEUWHDMZVFVTUYSUWCU
      UQUVEUWHUVFDUWCUVRUUQUVEXPRSUVQUVRUWBXQUUQUVDXRWEUWCUVFXSUYRUWRUWHUXPXTYA
      UWCUYTUWMUXMVFUWCUVDYCEUWMYNEUYTUWMSUYNUWCUWMUYIXTUWHUWMDUVDYCUWDUVDSUWEU
      WLHUYOTYDYEYFYGYHYIUVHUWFHCDUVFBUWEUXRUXBUXHWNUNUVFYRUWHCDUXSUXEUXIWOYJYK
      YLYMYOYP $.
  $}

  ${
    $d f g j k m x y z A $.  $d f g j k m n x y z B $.  $d f i j k m n x z F $.
    $d i j k m n w x y z J $.  $d i j m n w x y z K $.  $d i j k n w x y z L $.
    $d f j m n z H $.  $d g i j k m n x y z ph $.  $d f k x y z S $.
    $d k m x G $.  $d g j k m x y z T $.  $d f j x y z U $.
    ovoliun.t $e |- T = seq 1 ( + , G ) $.
    ovoliun.g $e |- G = ( n e. NN |-> ( vol* ` A ) ) $.
    ovoliun.a $e |- ( ( ph /\ n e. NN ) -> A C_ RR ) $.
    ovoliun.v $e |- ( ( ph /\ n e. NN ) -> ( vol* ` A ) e. RR ) $.
    ${
      $d n G $.  $d n T $.
      ovoliun.r $e |- ( ph -> sup ( ran T , RR* , < ) e. RR ) $.
      ovoliun.b $e |- ( ph -> B e. RR+ ) $.
      ${
        ovoliun.s $e |- S = seq 1 ( + , ( ( abs o. - ) o. ( F ` n ) ) ) $.
        ovoliun.u $e |- U = seq 1 ( + , ( ( abs o. - ) o. H ) ) $.
        ovoliun.h $e |- H = ( k e. NN |-> ( ( F ` ( 1st ` ( J ` k ) ) ) `
                                                   ( 2nd ` ( J ` k ) ) ) ) $.
        ovoliun.j $e |- ( ph -> J : NN -1-1-onto-> ( NN X. NN ) ) $.
        ovoliun.f $e |- ( ph
               -> F : NN --> ( ( <_ i^i ( RR X. RR ) ) ^m NN ) ) $.
        ovoliun.x1 $e |- ( ( ph /\ n e. NN ) ->
                          A C_ U. ran ( (,) o. ( F ` n ) ) ) $.
        ovoliun.x2 $e |- ( ( ph /\ n e. NN ) -> sup ( ran S , RR* , < ) <_
                           ( ( vol* ` A ) + ( B / ( 2 ^ n ) ) ) ) $.
        ${
          ovoliun.k $e |- ( ph -> K e. NN ) $.
          ovoliun.l1 $e |- ( ph -> L e. ZZ ) $.
          ovoliun.l2 $e |- ( ph ->
                            A. w e. ( 1 ... K ) ( 1st ` ( J ` w ) ) <_ L ) $.
          $( Lemma for ~ ovoliun .  (Contributed by Mario Carneiro,
             12-Jun-2014.) $)
          ovoliunlem1 $p |- ( ph ->
                ( U ` K ) <_ ( sup ( ran T , RR* , < ) + B ) ) $=
            ( vj vm vi vx vy vz c1 cfz co cima cv c2nd cfv c1st csu crn cxr clt
            cmin csup caddc cle ccom cseq cres wceq fveq2 fveq12d oveq12d fzfid
            fveq2d cn cxp wss wf1o syl elfznn sylancl wcel adantl wa cin adantr
            cr wf imassrn frn syl5ss xp1st ffvelrnd reex nnex elmap sylib xp2nd
            sseldi resubcld recnd ffvelrnda eqid ovolfsval syl2an nnuz syl6eleq
            eqtrd ffvelrn cfn cen wbr syl2anc fsumrecl sylan2 readdcld ciun cvv
            cc c2 cop vex wral wfn wb eqeltrd cmnf cc0 syl6ss cli c0 letrd cabs
            f1of1 ssriv f1ores fvres inss2 cmap f1of sselda inex2 fsumf1o fmptd
            wf1 xpex fvex fvmpt eqeltrrd fsumser fveq1i syl6eqr covol cexp cdiv
            cuz f1oeng ensymd enfii rpred cn0 2nn nnnn0 nnexpcl sylancr nndivre
            csn relxp relres opelxp opelres ancom opeq1d eleq1d elimasn syl6bbr
            elsni pm5.32i 3bitr2ri bitri eqrelriiv df-res eqtri iuneq2dv iunin2
            a1i syl6eq wrel relss mpisyl wi breq1d ralima mpbird r19.21bi elfz5
            ffn cz ralrimiva op1std rspccv biantru iunid eleq2i 3bitr2i syl6ibr
            relssdv xpiundir syl6sseq df-ss ssiun2 ssfi 2ndconst adantrr rnxpid
            ax-mp rnss sseld impr anassrs cpnf cico icossxr supxrcl mnfxr rexrd
            ovolsf mnflt cioo cuni ovollb xrltletrd xrre syl22anc sylan ovolfsf
            1zzd elrege0 simpld simprd supxrub breq2 ralbidv rspcev breq1 ralrn
            cdm wrex rexbidv mpbid isumsup2 syl5eqbrr climrel releldmi isumless
            isumsup wne rge0ssre 1nn syl5eleqr dm0rn0 necon3bii supxrre syl3anc
            fdm ne0i eqtr4d breqtrd fsumle op2ndd sumeq1d fsumadd 3brtr3d simpr
            fsum2d fvmpt2 serfre feq1i sylibr ressxr nnred nnge1d eluzfz1 rspcv
            1red zred sylc elnnz1 sylanbrc seqfn rneqi syl6eleqr geo2sum nnnn0d
            fnfvelrn rpdivcld rpge0d nndivred subge02d eqbrtrd le2addd eqbrtrrd
            nnrpd ) AMURNUSUTZVAZULVBZVCVDZVXNVEVDZJVDZVDZVCVDZVXRVEVDZVJUTZULV
[encoded data, 6720 characters]
            DYVAWXRADYUTWXRYVCVXFVXGVURVXHVXIYTVXJ $.
        $}

        $d w ph $.
        $( Lemma for ~ ovoliun .  (Contributed by Mario Carneiro,
           12-Jun-2014.) $)
        ovoliunlem2 $p |- ( ph ->
              ( vol* ` U_ n e. NN A ) <_ ( sup ( ran T , RR* , < ) + B ) ) $=
          ( vm vz vj vw vx cn ciun covol cfv crn cxr clt csup caddc co wss wcel
          cr wral ralrimiva iunss sylibr ovolcl syl cc0 cpnf cico cle cxp wf cv
          c2nd c1st wa cmap adantr wf1o f1of ffvelrnda xp1st ffvelrnd reex xpex
          cin inex2 nnex elmap sylib xp2nd fmptd cabs cmin ccom eqid ovolsf frn
          3syl icossxr syl6ss supxrcl rpred readdcld rexrd cioo cuni wrex eliun
          wbr w3a 3adant3 wb ovolfioo syl2anc mpbid simp3 rsp 4syl fveq2 fveq2d
          wceq fveq12d vex syl6eq breq1d breq2d anbi12d rexlimdva mpd mpbird c1
          wi ad2antlr adantlr simplr sylan sylc ccnv simpl1 f1ocnv simpl2 simpr
          fovrnd fvex fvmpt cop df-ov fveq2i f1ocnvfv2 syl5eq op1st op2nd eqtrd
          opelxpi biimprd rspcev syl6an rexlimdv3a syl5bi ralrimiv cfz cfn fzfi
          ovollb elfznn ffvelrn nnre syl2an fimaxre3 sylancr flcl peano2zd zred
          cfl fllep1 letr syl3anc mpan2d ralimdva simpll crp cexp cdiv ad2antrl
          c2 simprr ovoliunlem1 expr syld wfn ffn breq1 ralrn supxrleub xrletrd
          cz ) AHUKBULZUMUNZFUOZUPUQURZEUOUPUQURZCUSUTZAUXAVCVAZUXBUPVBABVCVAZH
          UKVDUXGAUXHHUKOVEHUKBVCVFVGZUXAVHVIAUXCUPVAZUXDUPVBAUXCVJVKVLUTZUPAUK
          VMVCVCVNZWIZKVOZUKUXKFVOZUXCUXKVAAGUKGVPZLUNZVQUNZUXQVRUNZIUNZUNZUXMK
          AUXPUKVBZVSZUKUXMUXRUXTUYCUXTUXMUKVTUTZVBUKUXMUXTVOUYCUKUYDUXSIAUKUYD
          IVOZUYBUCWAUYCUXQUKUKVNZVBZUXSUKVBAUKUYFUXPLAUKUYFLWBZUKUYFLVOZUBUKUY
          FLWCVIZWDZUXQUKUKWEVIWFUXMUKUXTUXLVMVCVCWGWGWHWJZWKWLWMUYCUYGUXRUKVBU
          YKUXQUKUKWNVIWFUAWOZFKWPWQWRKWRZUYNWSTWTZUKUXKFXAXBVJVKXCXDZUXCXEVIAU
          XFAUXECQACRXFXGXHZAUXNUXAXIKWRUOXJVAZUXBUXDVMXMUYMAUYRUFVPZKUNZVRUNZU
          GVPZUQXMZVUBUYTVQUNZUQXMZVSZUFUKXKZUGUXAVDZAVUGUGUXAVUBUXAVBVUBBVBZHU
          KXKAVUGHVUBUKBXLAVUIVUGHUKAHVPZUKVBZVUIXNZUHVPZVUJIUNZUNZVRUNZVUBUQXM
          ZVUBVUOVQUNZUQXMZVSZUHUKXKZVUGVULVVAUGBVDZVUIVVAVULBXIVUNWRUOXJVAZVVB
          AVUKVVCVUIUDXOVULUXHUKUXMVUNVOZVVCVVBXPAVUKUXHVUIOXOAVUKVVDVUIAVUKVSV
          UNUYDVBVVDAUKUYDVUJIUCWDUXMUKVUNUYLWKWLWMXOUGBUHVUNXQXRXSAVUKVUIXTVVA
          UGBYAUUAVULVUTVUGUHUKVULVUMUKVBZVSZVUJVUMLUUBZUTZUKVBZVUTVVHKUNZVRUNZ
          VUBUQXMZVUBVVJVQUNZUQXMZVSZVUGVVFVUJVUMUKUKUKVVGVVFAUYHUYFUKVVGWBUYFU
          KVVGVOAVUKVUIVVEUUCZUBUKUYFLUUDUYFUKVVGWCYBAVUKVUIVVEUUEZVULVVEUUFZUU
          GZVVFVVOVUTVVFVVLVUQVVNVUSVVFVVKVUPVUBUQVVFVVJVUOVRVVFVVJVVHLUNZVQUNZ
          VVTVRUNZIUNZUNZVUOVVFVVIVVJVWDYEVVSGVVHUYAVWDUKKUXPVVHYEZUXRVWAUXTVWC
          VWEUXSVWBIVWEUXQVVTVRUXPVVHLYCZYDYDVWEUXQVVTVQVWFYDYFUAVWAVWCUUHUUIVI
          VVFVWAVUMVWCVUNVVFVWBVUJIVVFVWBVUJVUMUUJZVRUNVUJVVFVVTVWGVRVVFVVTVWGV
          VGUNZLUNZVWGVVHVWHLVUJVUMVVGUUKUULVVFUYHVWGUYFVBZVWIVWGYEVVFAUYHVVPUB
          VIVVFVUKVVEVWJVVQVVRVUJVUMUKUKUURXRUKUYFVWGLUUMXRUUNZYDVUJVUMHYGZUHYG
          ZUUOYHYDVVFVWAVWGVQUNVUMVVFVVTVWGVQVWKYDVUJVUMVWLVWMUUPYHYFUUQZYDYIVV
          FVVMVURVUBUQVVFVVJVUOVQVWNYDYJYKUUSVUFVVOUFVVHUKUYSVVHYEZVUCVVLVUEVVN
          VWOVUAVVKVUBUQVWOUYTVVJVRUYSVVHKYCZYDYIVWOVUDVVMVUBUQVWOUYTVVJVQVWPYD
          YJYKUUTUVAYLYMUVBUVCUVDAUXGUXNUYRVUHXPUXIUYMUGUXAUFKXQXRYNUXAFKTUVHXR
          AUXDUXFVMXMZVUBUXFVMXMZUGUXCVDZAVWSVUMFUNZUXFVMXMZUHUKVDZAVXAUHUKAVVE
          VSZUIVPZLUNZVRUNZUJVPZVMXMZUIYOVUMUVEUTZVDZUJVCXKZVXAVXCVXIUVFVBVXFVC
          VBZUIVXIVDZVXKYOVUMUVGAVXMVVEAVXLUIVXIAUYIVXDUKVBZVXLVXDVXIVBZUYJVXDV
          UMUVIUYIVXNVSVXEUYFVBVXFUKVBVXLUKUYFVXDLUVJVXEUKUKWEVXFUVKXBUVLZVEWAU
          JUIVXIVXFUVMUVNVXCVXJVXAUJVCVXCVXGVCVBZVSVXJVXFVXGUVRUNZYOUSUTZVMXMZU
          IVXIVDZVXAAVXQVXJVYAYPVVEAVXQVSZVXHVXTUIVXIVYBVXOVSZVXHVXGVXSVMXMZVXT
          VXQVYDAVXOVXGUVSYQVYCVXLVXQVXSVCVBZVXHVYDVSVXTYPAVXOVXLVXQVXPYRAVXQVX
          OYSVXQVYEAVXOVXQVXSVXQVXRVXGUVOUVPZUVQYQVXFVXGVXSUVTUWAUWBUWCYRVXCVXQ
          VYAVXAVXCVXQVYAVSZVSZUIBCDEFGHIJKLVUMVXSMNVYHAVUKUXHAVVEVYGUWDZOYTVYH
          AVUKBUMUNZVCVBVYIPYTVYHAUXEVCVBVYIQVIVYHACUWEVBVYIRVISTUAVYHAUYHVYIUB
          VIVYHAUYEVYIUCVIVYHAVUKVVCVYIUDYTVYHAVUKDUOUPUQURVYJCUWIVUJUWFUTUWGUT
          USUTVMXMVYIUEYTAVVEVYGYSVXQVXSUWTVBVXCVYAVYFUWHVXCVXQVYAUWJUWKUWLUWMY
          LYMVEAUXNUXOFUKUWNVWSVXBXPUYMUYOUKUXKFUWOVWRVXAUGUHUKFVUBVWTUXFVMUWPU
          WQYBYNAUXJUXFUPVBVWQVWSXPUYPUYQUGUXCUXFUWRXRYNUWS $.
      $}

      $( Lemma for ~ ovoliun .  (Contributed by Mario Carneiro,
         12-Jun-2014.) $)
      ovoliunlem3 $p |- ( ph ->
                ( vol* ` U_ n e. NN A ) <_ ( sup ( ran T , RR* , < ) + B ) ) $=
        ( vm cn cfv caddc cle nfcv cr wcel vg vf vj vk covol cv csb crn cxr clt
        ciun csup nfcsb1v csbeq1a cbviun fveq2i cxp cin cmap cioo ccom cuni wss
        co wf cabs cmin c1 cseq c2 cexp cdiv wbr wa wral wex wrex crp cn0 nnnn0
        2nn nnexpcl sylancr rpdivcl syl2an eqid ovolgelb syl3anc ralrimiva ovex
        nnrpd nnenom wceq coeq2 rneqd unieqd sseq2d seqeq3d supeq1d anbi12d syl
        breq1d axcc4 wf1o wi xpnnen ensymi bren mpbi c2nd c1st cmpt nffv fveq2d
        cen cbvmpt eqtri simpll nfv nfss sseq1d cbvral sylib sylan nfel1 eleq1d
        r19.21bi simplr simprl simprr nfov nfbr nfan fveq2 coeq2d sseq12d oveq2
        ad2antrr oveq2d exlimdv oveq12d breq12d simpld simprd ovoliunlem2 exp31
        mpi mpd syl5eqbr ) AENBUKZUEOMNEMUFZBUGZUKZUEOZDUHUIUJULZCPVDZQUUJUUMUE
        EMNBUULMBREUUKBUMZEUUKBUNZUOUPANQSSUQURZNUSVDZUAUFZVEZBUTEUFZUVAOZVAZUH
        ZVBZVCZPVFVGVAZUVDVAZVHVIZUHZUIUJULZBUEOZCVJUVCVKVDZVLVDZPVDZQVMZVNZENV
        OZVNZUAVPZUUNUUPQVMZABUTUBUFZVAZUHZVBZVCZPUVIUWDVAZVHVIZUHZUIUJULZUVQQV
        MZVNZUBUUTVQZENVOUWBAUWOENAUVCNTZVNBSVCZUVNSTZUVPVRTZUWOIJACVRTZUVOVRTU
        WSUWPLUWPUVOUWPVJNTUVCVSTUVONTWAUVCVTVJUVCWBWCWKCUVOWDWEBUVPUWJUBUWJWFW
        GWHWIUWNUVSUBUUTUAENUUSNUSWJWLUWDUVDWMZUWHUVHUWMUVRUXAUWGUVGBUXAUWFUVFU
        XAUWEUVEUWDUVDUTWNWOWPWQUXAUWLUVMUVQQUXAUIUWKUVLUJUXAUWJUVKUXAUWIUVJPVH
        UWDUVDUVIWNWRWOWSXBWTXCXAAUWAUWCUAANNNUQZUCUFZXDZUCVPZUWAUWCXEZNUXBXOVM
        UXEUXBNXFXGNUXBUCXHXIAUXDUXFUCAUXDUWAUWCAUXDVNZUWAVNZUULCPUVIUUKUVAOZVA
        ZVHVIZDPUVIUDNUDUFUXCOZXJOUXLXKOUVAOOXLZVAVHVIZUDMUVAFUXMUXCGFENUVNXLMN
        UULUEOZXLHEMNUVNUXOMUVNRZEUULUEEUERUUQXMZUVCUUKWMZBUULUEUURXNZXPXQUXHAU
        UKNTZUULSVCZAUXDUWAXRZAUYAMNAUWQENVOUYAMNVOAUWQENIWIUWQUYAEMNUWQMXSEUUL
        SUUQESRXTUXRBUULSUURYAYBYCYGYDUXHAUXTUXOSTZUYBAUYCMNAUWRENVOUYCMNVOAUWR
        ENJWIUWRUYCEMNMUVNSUXPYEEUXOSUXQYEUXRUVNUXOSUXSYFYBYCYGYDAUUOSTUXDUWAKY
        RAUWTUXDUWALYRUXKWFUXNWFUXMWFAUXDUWAYHUXGUVBUVTYIUXHUXTVNZUULUTUXIVAZUH
        ZVBZVCZUXKUHZUIUJULZUXOCVJUUKVKVDZVLVDZPVDZQVMZUXHUYHUYNVNZMNUXHUVTUYOM
        NVOUXGUVBUVTYJUVSUYOEMNUVSMXSUYHUYNEEUULUYGUUQEUYGRXTEUYJUYMQEUYJREQREU
        XOUYLPUXQEPREUYLRYKYLYMUXRUVHUYHUVRUYNUXRBUULUVGUYGUURUXRUVFUYFUXRUVEUY
        EUXRUVDUXIUTUVCUUKUVAYNZYOWOWPYPUXRUVMUYJUVQUYMQUXRUIUVLUYIUJUXRUVKUXKU
        XRUVJUXJPVHUXRUVDUXIUVIUYPYOWRWOWSUXRUVNUXOUVPUYLPUXSUXRUVOUYKCVLUVCUUK
        VJVKYQYSUUAUUBWTYBYCYGZUUCUYDUYHUYNUYQUUDUUEUUFYTUUGYTUUHUUI $.
    $}

    $( The Lebesgue outer measure function is countably sub-additive.  (Many
       books allow ` +oo ` as a value for one of the sets in the sum, but in
       our setup we can't do arithmetic on infinity, and in any case the volume
       of a union containing an infinitely large set is already infinitely
       large by monotonicity ~ ovolss , so we need not consider this case here,
       although we do allow the sum itself to be infinite.)  (Contributed by
       Mario Carneiro, 12-Jun-2014.) $)
    ovoliun $p |- ( ph ->
                    ( vol* ` U_ n e. NN A ) <_ sup ( ran T , RR* , < ) ) $=
      ( vm cxr wbr cn covol cfv cle cr wcel c1 syl vk vx crn clt csup cpnf ciun
      cmnf wa wb wf caddc cseq nnuz 1zzd cv fmptd ffvelrnda serfre feq1i sylibr
      wss frn ressxr syl6ss supxrcl xrrebnd mnfxr a1i 1nn ffvelrn sylancl rexrd
      mnflt wfn ffn fnfvelrn supxrub syl2anc xrltletrd biantrurd bitr4d co wral
      crp nfcv nfcsb1v csbeq1a cbviun fveq2i cmpt nffv wceq fveq2d cbvmpt eqtri
      csb ralrimiva nfv nfss sseq1d cbvral sylib ad2antrr r19.21bi nfel1 eleq1d
      simplr simpr ovoliunlem3 syl5eqbr iunss ovolcl xralrple mpbird ex sylbird
      sylan wn nltpnft pnfge breq2 syl5ibrcom pm2.61d ) ACUCZKUDUEZUFUDLZDMBUGZ
      NOZYFPLZAYGYFQRZYJAYKUHYFUDLZYGUIZYGAYFKRZYKYMUJAYEKVBZYNAYEQKAMQCUKZYEQV
      BAMQULESUMZUKYPAUAESMUNAUOAMQUAUPEADMBNOZQEIGUQURUSMQCYQFUTVAZMQCVCTVDVEZ
      YEVFTZYFVGTAYLYGAUHSCOZYFUHKRAVHVIAUUBAYPSMRZUUBQRZYSVJMQSCVKVLZVMUUAAUUD
      UHUUBUDLUUEUUBVNTAYOUUBYERZUUBYFPLYTACMVOZUUCUUFAYPUUGYSMQCVPTVJMSCVQVLYE
      UUBVRVSVTWAWBAYKYJAYKUIZYJYIYFUBUPZULWCZPLZUBWEWDZUUHUUKUBWEUUHUUIWERZUIZ
      YIJMDJUPZBWQZUGZNOUUJPYHUUQNDJMBUUPJBWFDUUOBWGZDUUOBWHZWIWJUUNUUPUUICJEFE
      DMYRWKJMUUPNOZWKGDJMYRUUTJYRWFZDUUPNDNWFUURWLZDUPUUOWMZBUUPNUUSWNZWOWPUUN
      UUPQVBZJMAUVEJMWDZYKUUMABQVBZDMWDZUVFAUVGDMHWRZUVGUVEDJMUVGJWSDUUPQUURDQW
      FWTUVCBUUPQUUSXAXBXCXDXEUUNUUTQRZJMAUVJJMWDZYKUUMAYRQRZDMWDUVKAUVLDMIWRUV
      LUVJDJMJYRQUVAXFDUUTQUVBXFUVCYRUUTQUVDXGXBXCXDXEAYKUUMXHUUHUUMXIXJXKWRAYI
      KRZYKYJUULUJAYHQVBZUVMAUVHUVNUVIDMBQXLVAYHXMTZUBYIYFXNXRXOXPXQAYGXSZYFUFW
      MZYJAYNUVQUVPUJUUAYFXTTAYJUVQYIUFPLZAUVMUVRUVOYIYATYFUFYIPYBYCXQYD $.

    ovoliun2.t $e |- ( ph -> T e. dom ~~> ) $.
    $( The Lebesgue outer measure function is countably sub-additive.  (This
       version is a little easier to read, but does not allow infinite values
       like ~ ovoliun .)  (Contributed by Mario Carneiro, 12-Jun-2014.) $)
    ovoliun2 $p |- ( ph ->
                     ( vol* ` U_ n e. NN A ) <_ sum_ n e. NN ( vol* ` A ) ) $=
      ( vm vx vk cn covol cfv cle cr c1 wcel vz ciun crn cxr clt csu ovoliun cv
      csup csb wss c0 wne wbr wral wrex wceq caddc cseq nnuz 1zzd cvv fvex cmpt
      wf wa nfcv nfcsb1v nffv fveq2d cbvmpt eqtri fvmpt2 mpan2 adantl ralrimiva
      csbeq1a nfel1 eleq1d cbvral sylib eqeltrd serfre feq1i sylibr frn syl cdm
      r19.21bi 1nn fdm syl5eleqr dm0rn0 necon3bii cli syl5eqelr isumrecl cfz co
      elfznn cuz simpr syl6eleq simpl syl2an recnd fsumser fveq1i syl6eqr fzfid
      ne0i ssriv a1i cc0 nfv nfss sseq1d ovolge0 isumless adantr eqbrtrrd breq2
      ralbidv rspcev syl2anc wfn ffn breq1 ralrn rexbidv mpbird supxrre syl3anc
      wb isumsup eqtr4d cbvsumi breqtrd ) ADNBUBOPCUCZUDUEUIZNBOPZDUFZQABCDEFGH
      IUGAYTNDKUHZBUJZOPZKUFZUUBAYTYSRUEUIZUUFAYSRUKZYSULUMZUAUHZLUHZQUNZUAYSUO
      ZLRUPZYTUUGUQANRCVEZUUHANRURESUSZVEUUOAKESNUTAVAZAUUCNTZVFZUUCEPZUUERUURU
      UTUUEUQZAUURUUEVBTUVAUUDOVCKNUUEVBEEDNUUAVDKNUUEVDGDKNUUAUUEKUUAVGZDUUDOD
      OVGDUUCBVHZVIZDUHZUUCUQZBUUDODUUCBVQZVJZVKVLVMVNZVOZAUUERTZKNAUUARTZDNUOU
      VKKNUOAUVLDNIVPUVLUVKDKNKUUARUVBVRDUUERUVDVRUVFUUAUUERUVHVSVTWAWIZWBWCNRC
      UUPFWDWEZNRCWFWGACWHZULUMZUUIASUVOTUVPASNUVOWJAUUOUVONUQUVNNRCWKWGWLUVOSX
      KWGUVOULYSULCWMWNWAAUUNMUHZCPZUUKQUNZMNUOZLRUPZAUUFRTUVRUUFQUNZMNUOZUWAAU
      UEKESNUTUUQUVJUVMAUUPCWOWHFJWPZWQAUWBMNAUVQNTZVFZSUVQWRWSZUUEKUFZUVRUUFQU
      WFUWHUVQUUPPUVRUWFUUEKESUVQUWFUUCUWGTZVFZUURUVAUWIUURUWFUUCUVQWTZVOUVIWGU
      WFUVQNSXAPAUWEXBUTXCUWJUUEUWFAUURUVKUWIAUWEXDUWKUVMXEXFXGUVQCUUPFXHXIAUWH
      UUFQUNUWEAUWGUUEKESNUTUUQASUVQXJUWGNUKADUWGNUVEUVQWTXLXMUVJUVMUUSUUDRUKZX
      NUUEQUNAUWLKNABRUKZDNUOUWLKNUOAUWMDNHVPUWMUWLDKNUWMKXODUUDRUVCDRVGXPUVFBU
      UDRUVGXQVTWAWIUUDXRWGZUWDXSXTYAVPUVTUWCLUUFRUUKUUFUQUVSUWBMNUUKUUFUVRQYBY
      CYDYEZAUUMUVTLRACNYFZUUMUVTYNAUUOUWPUVNNRCYGWGUULUVSUAMNCUUJUVRUUKQYHYIWG
      YJYKLUAYSYLYMALUUEMKECSNUTFUUQUVJUVMUWNUWOYOYPNUUAUUEDKUVBUVDUVHYQXIYR $.
  $}

  ${
    $d f k n x A $.  $d f k x B $.
    $( A countable union of nullsets is null.  (Contributed by Mario Carneiro,
       8-Apr-2015.) $)
    ovoliunnul $p |- ( ( A ~<_ NN /\ A. n e. A
      ( B C_ RR /\ ( vol* ` B ) = 0 ) ) -> ( vol* ` U_ n e. A B ) = 0 ) $=
      ( vf vk cn wbr cr wss covol cfv cc0 wceq wa c0 wi syl6eq wcel cv c1 ovol0
      cdom wral ciun iuneq1 0iun fveq2d a1i wne csdm cvv reldom brrelexi adantr
      vx 0sdomg syl wfo wex fodomr expcom csb wrex eliun nfv nfcv nfcsb1v nfiun
      wb nfcri foelrn csbeq1a adantl eleq2d impancom reximdv syl6ibr com23 syld
      ex biimpd rexlimd syl5bi ssrdv fof ffvelrnda simpllr nfss nffv nfeq1 nfan
      wf sseq1d eqeq1d anbi12d rspc simpld ralrimiva iunss sylibr cle csu caddc
      sylc cmpt cseq eqid 0re syl6eqel cuz csn cxp cli mpteq2dva fconstmpt nnuz
      simprd cdm xpeq1i eqtr3i seqeq3d cz 1z serclim0 c0ex breldm mp2b ovoliun2
      seqex sumeq2dv cfn wo eqimssi orci sumz ax-mp breqtrd ovolge0 cxr ovolcl
      xrletri3 sylancl mpbir2and ovolssnul syl3anc exlimdv sylbird pm2.61dne
      0xr ) AFUBGZBHIZBJKZLMZNZCAUCZNZCABUDZJKZLMZAOAOMZUUSPUUPUUTUUROJKLUUTUUQ
      OJUUTUUQCOBUDOCAOBUECBUFQUGUAQUHUUPAOUIZOAUJGZUUSUUPAUKRZUVBUVAVIUUJUVCUU
      OAFUBULUMUNAUKUPUQUUPUVBFADSZURZDUSZUUSUUJUVBUVFPUUOUVBUUJUVFFADUTVAUNUUP
      UVEUUSDUUPUVEUUSUUPUVENZUUQEFCESZUVDKZBVBZUDZIZUVKHIZUVKJKZLMZUUSUVEUVLUU
      PUVEUOUUQUVKUOSZUUQRUVPBRZCAVCUVEUVPUVKRZCUVPABVDUVEUVQUVRCAUVECVECUOUVKE
      CFUVJCFVFCUVIBVGZVHVJUVECSZARZUVTUVIMZEFVCZUVQUVRPUVEUWAUWCEFAUVTUVDVKVTU
      VEUVQUWCUVRUVEUVQUWCUVRPUVEUVQNZUWCUVPUVJRZEFVCUVRUWDUWBUWEEFUVEUWBUVQUWE
      UVEUWBNZUVQUWEUWFBUVJUVPUWBBUVJMUVECUVIBVLZVMVNWAVOVPEUVPFUVJVDVQVTVRVSWB
      WCWDVMUVGUVJHIZEFUCUVMUVGUWHEFUVGUVHFRZNZUWHUVJJKZLMZUWJUVIARUUOUWHUWLNZU
      VGFAUVHUVDUVEFAUVDWLUUPFAUVDWEVMWFUUJUUOUVEUWIWGUUNUWMCUVIAUWHUWLCCUVJHUV
      SCHVFWHCUWKLCUVJJCJVFUVSWIWJWKUWBUUKUWHUUMUWLUWBBUVJHUWGWMUWBUULUWKLUWBBU
      VJJUWGUGWNWOWPXDZWQZWREFUVJHWSWTZUVGUVOUVNLXAGZLUVNXAGZUVGUVNFUWKEXBZLXAU
      VGUVJXCEFUWKXEZTXFZEUWTUXAXGUWTXGUWOUWJUWKLHUWJUWHUWLUWNXQZXHXIUVGUXAXCTX
      JKZLXKZXLZTXFZXMXRZUVGUWTUXEXCTUVGUWTEFLXEZUXEUVGEFUWKLUXBXNFUXDXLUXHUXEE
      FLXOFUXCUXDXPXSXTQYATYBRUXFLXMGUXFUXGRYCTYDUXFLXMXCUXETYIYEYFYGXIYHUVGUWS
      FLEXBZLUVGFUWKLEUXBYJFUXCIZFYKRZYLUXILMUXJUXKFUXCXPYMYNFETYOYPQYQUVGUVMUW
      RUWPUVKYRUQUVGUVNYSRZLYSRUVOUWQUWRNVIUVGUVMUXLUWPUVKYTUQUUIUVNLUUAUUBUUCU
      UQUVKUUDUUEVTUUFVSUUGUUH $.
  $}

  ${
    $d f g n w x y z A $.  $d f g m n w x y z C $.  $d n x F $.  $d f n y G $.
    $d f g n w y z B $.  $d g z M $.  $d f g n w y z ph $.
    ovolshft.1 $e |- ( ph -> A C_ RR ) $.
    ovolshft.2 $e |- ( ph -> C e. RR ) $.
    ovolshft.3 $e |- ( ph -> B = { x e. RR | ( x - C ) e. A } ) $.
    $( If ` B ` is a shift of ` A ` by ` C ` , then ` A ` is a shift of ` B `
       by ` -u C ` .  (Contributed by Mario Carneiro, 22-Mar-2014.)  (Revised
       by Mario Carneiro, 6-Apr-2015.) $)
    shft2rab $p |- ( ph -> A = { y e. RR | ( y - -u C ) e. B } ) $=
      ( cv cr wcel cmin co wa crab cc wceq syl2anr eleq1d cneg sseld caddc recn
      cab pm4.71rd recnd subneg adantr eleq12d wb id readdcl oveq1 elrab3 pncan
      syl 3bitrd pm5.32da bitr4d abbi2dv df-rab syl6eqr ) ADCJZKLZVDFUAMNZELZOZ
      CUEVGCKPAVHCDAVDDLZVEVIOVHAVIVEADKVDGUBUFAVEVGVIAVEOZVGVDFUCNZBJZFMNZDLZB
      KPZLZVKFMNZDLZVIVJVFVKEVOVEVDQLZFQLZVFVKRAVDUDZAFHUGZVDFUHSAEVORVEIUIUJVJ
      VKKLZVPVRUKVEVEFKLWCAVEULHVDFUMSVNVRBVKKVLVKRVMVQDVLVKFMUNTUOUQVJVQVDDVEV
      SVTVQVDRAWAWBVDFUPSTURUSUTVAVGCKVBVC $.

    ${
      ovolshft.4 $e |- M = { y e. RR* |
        E. f e. ( ( <_ i^i ( RR X. RR ) ) ^m NN ) ( B C_ U. ran ( (,) o. f ) /\
           y = sup ( ran seq 1 ( + , ( ( abs o. - ) o. f ) ) , RR* , < ) ) } $.
      ${
        ovolshft.5 $e |- S = seq 1 ( + , ( ( abs o. - ) o. F ) ) $.
        ovolshft.6 $e |- G = ( n e. NN |->
          <. ( ( 1st ` ( F ` n ) ) + C ) , ( ( 2nd ` ( F ` n ) ) + C ) >. ) $.
        ovolshft.7 $e |- ( ph -> F : NN --> ( <_ i^i ( RR X. RR ) ) ) $.
        ovolshft.8 $e |- ( ph -> A C_ U. ran ( (,) o. F ) ) $.
        $( Lemma for ~ ovolshft .  (Contributed by Mario Carneiro,
           22-Mar-2014.) $)
        ovolshftlem1 $p |- ( ph -> sup ( ran S , RR* , < ) e. M ) $=
          ( caddc cabs cmin ccom c1 cseq crn cxr clt csup cn cle cr cxp cin cc0
          wf cpnf cico co wfn cv cfv c1st c2nd cop wcel wa wbr w3a sylan simp1d
          simp2d adantr simp3d leadd1dd df-br sylib readdcld opelxp elind fmptd
          ovolfcl sylanbrc eqid ovolfsf 3syl wceq opex fvmpt2 mpan2 fveq2d ovex
          ffn op2nd syl6eq op1st oveq12d recnd pnpcan2d eqtrd ovolfsval 3eqtr4d
          adantl eqfnfvd seqeq3d syl6eqr rneqd supeq1d cioo cuni wrex wral crab
          cvv wss eleq2d oveq1 eleq1d elrab syl6bb biimpa simprr ovolfioo mpbid
          syl2anc breq2 breq1 anbi12d rexbidv rspcv sylc breq1d adantlr simplrl
          wb ad2antrr ltaddsubd bitrd mpbird breq2d ltsubaddd rexbidva syl6eqss
          bitr4d syldan ralrimiva ssrab2 elovolmr eqeltrrd ) AUAUBUCUDZKUDZUEUF
          ZUGZUHUIUJZGUGZUHUIUJLAUHUUNUUPUIAUUMGAUUMUAUUKJUDZUEUFGAUULUUQUAUEAI
          UKUULUUQAUKULUMUMUNZUOZKUQZUKUPURUSUTZUULUQUULUKVAAIUKIVBZJVCZVDVCZFU
          AUTZUVCVEVCZFUAUTZVFZUUSKAUVBUKVGZVHZULUURUVHUVJUVEUVGULVIUVHULVGUVJU
          VDUVFFUVJUVDUMVGZUVFUMVGZUVDUVFULVIZAUKUUSJUQZUVIUVKUVLUVMVJSJUVBWCVK
          ZVLZUVJUVKUVLUVMUVOVMZAFUMVGZUVINVNZUVJUVKUVLUVMUVOVOVPUVEUVGULVQVRUV
          JUVEUMVGUVGUMVGUVHUURVGUVJUVDFUVPUVSVSUVJUVFFUVQUVSVSUVEUVGUMUMVTWDWA
          RWBZKUULUULWEZWFUKUVAUULWNWGAUVNUKUVAUUQUQUUQUKVASJUUQUUQWEZWFUKUVAUU
          QWNWGUVJUVBKVCZVEVCZUWCVDVCZUCUTZUVFUVDUCUTZUVBUULVCZUVBUUQVCZUVJUWFU
          VGUVEUCUTZUWGUVIUWFUWJWHAUVIUWDUVGUWEUVEUCUVIUWDUVHVEVCUVGUVIUWCUVHVE
          UVIUVHXOVGUWCUVHWHUVEUVGWIIUKUVHXOKRWJWKZWLUVEUVGUVDFUAWMZUVFFUAWMZWO
          WPZUVIUWEUVHVDVCUVEUVIUWCUVHVDUWKWLUVEUVGUWLUWMWQWPZWRXDUVJUVFUVDFUVJ
          UVFUVQWSUVJUVDUVPWSUVJFUVSWSWTXAAUUTUVIUWHUWFWHUVTKUULUVBUWAXBVKAUVNU
          VIUWIUWGWHSJUUQUVBUWBXBVKXCXEXFQXGXHXIAUUTEXJKUDUGXKXPZUUOLVGUVTAUWPU
          WECVBZUIVIZUWQUWDUIVIZVHZIUKXLZCEXMZAUXACEAUWQEVGZUWQUMVGZUWQFUCUTZDV
          GZVHZUXAAUXCUXGAUXCUWQBVBZFUCUTZDVGZBUMXNZVGUXGAEUXKUWQOXQUXJUXFBUWQU
          MUXHUWQWHUXIUXEDUXHUWQFUCXRXSXTYAYBAUXGVHZUXAUVDUXEUIVIZUXEUVFUIVIZVH
          ZIUKXLZUXLUXFUVDUXHUIVIZUXHUVFUIVIZVHZIUKXLZBDXMZUXPAUXDUXFYCAUYAUXGA
          DXJJUDUGXKXPZUYATADUMXPUVNUYBUYAYPMSBDIJYDYFYEVNUXTUXPBUXEDUXHUXEWHZU
          XSUXOIUKUYCUXQUXMUXRUXNUXHUXEUVDUIYGUXHUXEUVFUIYHYIYJYKYLUXLUWTUXOIUK
          UXLUVIVHZUWRUXMUWSUXNUYDUWRUVEUWQUIVIUXMUYDUWEUVEUWQUIUVIUWEUVEWHUXLU
          WOXDYMUYDUVDFUWQAUVIUVKUXGUVPYNAUVRUXGUVINYQZAUXDUXFUVIYOZYRYSUYDUWSU
          WQUVGUIVIUXNUYDUWDUVGUWQUIUVIUWDUVGWHUXLUWNXDUUAUYDUWQFUVFUYFUYEAUVIU
          VLUXGUVQYNUUBUUEYIUUCYTUUFUUGAEUMXPUUTUWPUXBYPAEUXKUMOUXJBUMUUHUUDUVT
          CEIKYDYFYTCEUUMHKLPUUMWEUUIYFUUJ $.
      $}

      $( Lemma for ~ ovolshft .  (Contributed by Mario Carneiro,
         22-Mar-2014.) $)
      ovolshftlem2 $p |- ( ph -> { z e. RR* |
        E. g e. ( ( <_ i^i ( RR X. RR ) ) ^m NN ) ( A C_ U. ran ( (,) o. g ) /\
    z = sup ( ran seq 1 ( + , ( ( abs o. - ) o. g ) ) , RR* , < ) ) } C_ M ) $=
        ( caddc cxr cr co wcel cfv vn vm cioo cv ccom crn cuni wss cabs cmin c1
        cseq clt csup wceq wa cle cxp cin cn cmap wrex wral crab c1st c2nd cmpt
        cop ad3antrrr eqid fveq2 fveq2d oveq1d opeq12d cbvmptv simplr reex xpex
        wi wf inex2 elmap sylib simpr ovolshftlem1 eleq1a syl expimpd rexlimdva
        nnex ralrimiva rabss sylibr ) AEUCIUDZUEUFUGUHZDUDZOUIUJUEWNUEUKULZUFPU
        MUNZUOZUPZIUQQQURZUSZUTVARZVBZWPJSZVSZDPVCXDDPVDJUHAXFDPAWPPSZUPZWTXEIX
        CXHWNXCSZUPZWOWSXEXJWOUPZWRJSWSXEVSXKBCEFGWQHUAWNUBUTUBUDZWNTZVETZGORZX
        MVFTZGORZVHZVGJAEQUHXGXIWOKVIAGQSXGXIWOLVIAFBUDGUJRESBQVDUOXGXIWOMVINWQ
        VJUBUAUTXRUAUDZWNTZVETZGORZXTVFTZGORZVHXLXSUOZXOYBXQYDYEXNYAGOYEXMXTVEX
        LXSWNVKZVLVMYEXPYCGOYEXMXTVFYFVLVMVNVOXKXIUTXBWNVTXHXIWOVPXBUTWNXAUQQQV
        QVQVRWAWJWBWCXJWOWDWEWRJWPWFWGWHWIWKXDDPJWLWM $.
    $}

    $( The Lebesgue outer measure function is shift-invariant.  (Contributed by
       Mario Carneiro, 22-Mar-2014.)  (Proof shortened by AV, 17-Sep-2020.) $)
    ovolshft $p |- ( ph -> ( vol* ` A ) = ( vol* ` B ) ) $=
      ( vf vy vg vz cv ccom crn wss cxr clt wceq cr vw cioo cuni cabs cmin cseq
      caddc c1 csup wa cle cxp cin cn cmap co wrex crab cinf covol ovolshftlem2
      cfv eqid cneg ssrab2 syl6eqss renegcld shft2rab eqssd infeq1d ovolval syl
      wcel 3eqtr4d ) ACUBIMZNOUCPJMUGUDUENZVONUHUFOQRUISUJIUKTTULUMUNUOUPZUQJQU
      RZQRUSZDUBKMZNOUCPLMUGVPVTNUHUFOQRUISUJKVQUQLQURZQRUSZCUTVBZDUTVBZAQVRWAR
      AVRWAABLJCDEKIWAFGHWAVCZVAAUAJLDCEVDIKVRADBMEUEUPCVMZBTURTHWFBTVEVFZAEGVG
      ABUACDEFGHVHVRVCZVAVIVJACTPWCVSSFJCIVRWHVKVLADTPWDWBSWGLDKWAWEVKVLVN $.
  $}

  ${
    $d f k n x y A $.  $d f n y B $.  $d n x F $.  $d k n y G $.  $d k x y R $.
    $d f k m n x y C $.  $d f k n y ph $.  $d k x S $.
    ovolsca.1 $e |- ( ph -> A C_ RR ) $.
    ovolsca.2 $e |- ( ph -> C e. RR+ ) $.
    ovolsca.3 $e |- ( ph -> B = { x e. RR | ( C x. x ) e. A } ) $.
    $( If ` B ` is a scale of ` A ` by ` C ` , then ` A ` is a scale of ` B `
       by ` 1 / C ` .  (Contributed by Mario Carneiro, 22-Mar-2014.) $)
    sca2rab $p |- ( ph -> A = { y e. RR | ( ( 1 / C ) x. y ) e. B } ) $=
      ( cv cr wcel cdiv co cmul wa crab wceq adantr eleq1d c1 sseld pm4.71rd wb
      cab eleq2d crp rprecred remulcl oveq2 elrab3 syl simpr recnd rpcnd rpne0d
      sylancom divrec2d oveq2d divcan2d eqtr3d 3bitrd pm5.32da abbi2dv syl6eqr
      bitr4d df-rab ) ADCJZKLZUAFMNZVHONZELZPZCUEVLCKQAVMCDAVHDLZVIVNPVMAVNVIAD
      KVHGUBUCAVIVLVNAVIPZVLVKFBJZONZDLZBKQZLZFVKONZDLZVNVOEVSVKAEVSRVIISUFVOVK
      KLZVTWBUDAVIVJKLWCVOFAFUGLVIHSZUHVJVHUIUQVRWBBVKKVPVKRVQWADVPVKFOUJTUKULV
      OWAVHDVOFVHFMNZONWAVHVOWEVKFOVOVHFVOVHAVIUMUNZVOFWDUOZVOFWDUPZURUSVOVHFWF
      WGWHUTVATVBVCVFVDVLCKVGVE $.

    ovolsca.4 $e |- ( ph -> ( vol* ` A ) e. RR ) $.
    ${
      ovolsca.5 $e |- S = seq 1 ( + , ( ( abs o. - ) o. F ) ) $.
      ovolsca.6 $e |- G = ( n e. NN |->
      <. ( ( 1st ` ( F ` n ) ) / C ) , ( ( 2nd ` ( F ` n ) ) / C ) >. ) $.
      ovolsca.7 $e |- ( ph -> F : NN --> ( <_ i^i ( RR X. RR ) ) ) $.
      ovolsca.8 $e |- ( ph -> A C_ U. ran ( (,) o. F ) ) $.
      ovolsca.9 $e |- ( ph -> R e. RR+ ) $.
      ovolsca.10 $e |- ( ph ->
        sup ( ran S , RR* , < ) <_ ( ( vol* ` A ) + ( C x. R ) ) ) $.
      $( Lemma for ~ ovolsca .  (Contributed by Mario Carneiro, 6-Apr-2015.) $)
      ovolscalem1 $p |- ( ph ->
        ( vol* ` B ) <_ ( ( ( vol* ` A ) / C ) + R ) ) $=
        ( vy vk covol cfv caddc cabs cmin ccom c1 cseq crn cxr clt csup cdiv co
        cr wss wcel cv cmul crab ssrab2 syl6eqss ovolcl syl cc0 cpnf cico cn wf
        cle cxp cin c1st c2nd cop wa wbr w3a ovolfcl sylan simp3d simp1d simp2d
        rpregt0d adantr lediv1 syl3anc mpbid df-br sylib crp rerpdivcld opelxpi
        wb syl2anc elind fmptd ovolsf frn icossxr syl6ss supxrcl rpred readdcld
        eqid rexrd cioo cuni wrex wral eleq2d wceq oveq2 eleq1d syl6bb ovolfioo
        elrab breq1 anbi12d cvv fveq2d ovex syl6eq adantl adantlr mpbird csu cc
        rpcnd syl2an recnd ovolfsval fsumser eqtrd supxrleub wfn ffn ralrn sylc
        simprr breq2 rexbidv rspcv fvmpt2 mpan2 op1st breq1d ltdivmul ltmuldiv2
        opex simplrl bitr2d op2nd breq2d bitr4d rexbidva sylbid ralrimiv ovollb
        ex cfz fzfid simpl elfznn resubcld wne rpne0d fsumdivc oveq12d rpcnne0d
        divsubdir 3eqtr4d nnuz syl6eleq rpmulcld r19.21bi fveq1i syl6eqr adddid
        cuz simpr divcan2d 3brtr4d fsumrecl ledivmul eqbrtrrd ralrimiva xrletrd
        oveq1d ) ADUCUDZUEUFUGUHZJUHZUIUJZUKZULUMUNZCUCUDZEUOUPZFUEUPZADUQURZUW
        LULUSADEBUTZVAUPZCUSZBUQVBZUQMUXDBUQVCVDZDVEVFAUWPULURZUWQULUSAUWPVGVHV
        IUPZULAVJUXHUWOVKZUWPUXHURAVJVLUQUQVMZVNZJVKZUXIAHVJHUTZIUDZVOUDZEUOUPZ
        UXNVPUDZEUOUPZVQZUXKJAUXMVJUSZVRZVLUXJUXSUYAUXPUXRVLVSZUXSVLUSUYAUXOUXQ
        VLVSZUYBUYAUXOUQUSZUXQUQUSZUYCAVJUXKIVKZUXTUYDUYEUYCVTQIUXMWAWBZWCUYAUY
        DUYEEUQUSVGEUMVSVRZUYCUYBWPUYAUYDUYEUYCUYGWDZUYAUYDUYEUYCUYGWEZAUYHUXTA
        ELWFZWGZUXOUXQEWHWIWJUXPUXRVLWKWLUYAUXPUQUSUXRUQUSUXSUXJUSUYAUXOEUYIAEW
        MUSUXTLWGZWNUYAUXQEUYJUYMWNUXPUXRUQUQWOWQWRPWSZUWOJUWNUWNXGZUWOXGZWTVFZ
        VJUXHUWOXAVFVGVHXBZXCZUWPXDVFAUWTAUWSFAUWRENLWNZAFSXEXFZXHZAUXLDXIJUHUK
        XJURZUWLUWQVLVSUYNAVUCUXMJUDZVOUDZUAUTZUMVSZVUFVUDVPUDZUMVSZVRZHVJXKZUA
        DXLZAVUKUADAVUFDUSZVUFUQUSZEVUFVAUPZCUSZVRZVUKAVUMVUFUXEUSVUQADUXEVUFMX
        MUXDVUPBVUFUQUXBVUFXNUXCVUOCUXBVUFEVAXOXPXSXQAVUQVUKAVUQVRZUXOVUOUMVSZV
        UOUXQUMVSZVRZHVJXKZVUKVURVUPUXOUXBUMVSZUXBUXQUMVSZVRZHVJXKZBCXLZVVBAVUN
        VUPUUBAVVGVUQACXIIUHUKXJURZVVGRACUQURUYFVVHVVGWPKQBCHIXRWQWJWGVVFVVBBVU
        OCUXBVUOXNZVVEVVAHVJVVIVVCVUSVVDVUTUXBVUOUXOUMUUCUXBVUOUXQUMXTYAUUDUUEU
        UAVURVVAVUJHVJVURUXTVRZVUSVUGVUTVUIVVJVUGUXPVUFUMVSZVUSVVJVUEUXPVUFUMUX
        TVUEUXPXNVURUXTVUEUXSVOUDUXPUXTVUDUXSVOUXTUXSYBUSVUDUXSXNUXPUXRUULHVJUX
        SYBJPUUFUUGZYCUXPUXRUXOEUOYDZUXQEUOYDZUUHYEZYFUUIVVJUYDVUNUYHVVKVUSWPAU
        XTUYDVUQUYIYGAVUNVUPUXTUUMZAUXTUYHVUQUYLYGZUXOVUFEUUJWIUUNVVJVUTVUFUXRU
        MVSZVUIVVJVUNUYEUYHVUTVVRWPVVPAUXTUYEVUQUYJYGVVQVUFUXQEUUKWIVVJVUHUXRVU
        FUMUXTVUHUXRXNVURUXTVUHUXSVPUDUXRUXTVUDUXSVPVVLYCUXPUXRVVMVVNUUOYEZYFUU
        PUUQYAUURWJUVBUUSUUTAUXAUXLVUCVULWPUXFUYNUADHJXRWQYHDUWOJUYPUVAWQAUWQUW
        TVLVSZVUFUWTVLVSZUAUWPXLZAVWBUBUTZUWOUDZUWTVLVSZUBVJXLZAVWEUBVJAVWCVJUS
        ZVRZUIVWCUVCUPZUXQUXOUGUPZHYIZEUOUPZVWDUWTVLVWHVWLVWIVWJEUOUPZHYIVWDVWH
        VWIVWJEHVWHUIVWCUVDZAEYJUSZVWGAELYKZWGVWHUXMVWIUSZVRVWJVWHAUXTVWJUQUSVW
        QAVWGUVEZUXMVWCUVFZUYAUXQUXOUYJUYIUVGZYLZYMZAEVGUVHZVWGAELUVIZWGUVJVWHV
        WMHUWNUIVWCVWHAUXTUXMUWNUDZVWMXNVWQVWRVWSUYAVUHVUEUGUPZUXRUXPUGUPZVXEVW
        MUXTVXFVXGXNAUXTVUHUXRVUEUXPUGVVSVVOUVKYFAUXLUXTVXEVXFXNUYNJUWNUXMUYOYN
        WBUYAUXQYJUSUXOYJUSVWOVXCVRZVWMVXGXNUYAUXQUYJYMUYAUXOUYIYMAVXHUXTAELUVL
        WGUXQUXOEUVMWIUVNYLVWHVWCVJUIUWBUDAVWGUWCUVOUVPZVWHAUXTVWMYJUSVWQVWRVWS
        UYAVWMUYAVWJEVWTUYMWNYMYLYOYPVWHVWLUWTVLVSZVWKEUWTVAUPZVLVSZVWHVWCGUDZU
        WREFVAUPZUEUPZVWKVXKVLAVXMVXOVLVSZUBVJAUXBVXOVLVSZBGUKZXLZVXPUBVJXLZAVX
        RULUMUNVXOVLVSZVXSTAVXRULURVXOULUSVYAVXSWPAVXRUXHULAVJUXHGVKZVXRUXHURAU
        YFVYBQGIUWMIUHZVYCXGZOWTVFZVJUXHGXAVFUYRXCAVXOAUWRVXNNAVXNAEFLSUVQXEXFX
        HBVXRVXOYQWQWJAGVJYRZVXSVXTWPAVYBVYFVYEVJUXHGYSVFVXQVXPBUBVJGUXBVXMVXOV
        LXTYTVFWJUVRVWHVWKVWCUEVYCUIUJZUDVXMVWHVWJHVYCUIVWCVWHUYFUXTUXMVYCUDVWJ
        XNVWQAUYFVWGQWGVWSIVYCUXMVYDYNYLVXIVXBYOVWCGVYGOUVSUVTAVXKVXOXNVWGAVXKE
        UWSVAUPZVXNUEUPVXOAEUWSFVWPAUWSUYTYMAFSYKUWAAVYHUWRVXNUEAUWREAUWRNYMVWP
        VXDUWDUWKYPWGUWEVWHVWKUQUSUWTUQUSZUYHVXJVXLWPVWHVWIVWJHVWNVXAUWFAVYIVWG
        VUAWGAUYHVWGUYKWGVWKUWTEUWGWIYHUWHUWIAUWOVJYRZVWBVWFWPAUXIVYJUYQVJUXHUW
        OYSVFVWAVWEUAUBVJUWOVUFVWDUWTVLXTYTVFYHAUXGUWTULUSVVTVWBWPUYSVUBUAUWPUW
        TYQWQYHUWJ $.
    $}

    $( Lemma for ~ ovolshft .  (Contributed by Mario Carneiro, 22-Mar-2014.) $)
    ovolscalem2 $p |- ( ph -> ( vol* ` B ) <_ ( ( vol* ` A ) / C ) ) $=
      ( vy vf cfv cdiv co cle cv crp wcel cr cn vn vm covol wbr caddc wral cioo
      wa ccom crn cuni wss cabs cmin cseq cxr clt csup cmul cxp cin cmap adantr
      wrex rpmulcl sylan eqid ovolgelb syl3anc c1st c2nd cop cmpt ad2antrr crab
      c1 fveq2 fveq2d oveq1d opeq12d cbvmptv wf elmapi ad2antrl simprrl simprrr
      wceq simplr ovolscalem1 rexlimddv ralrimiva wb ssrab2 syl6eqss ovolcl syl
      rerpdivcld xralrple syl2anc mpbird ) ADUCLZCUCLZEMNZOUDZXAXCJPZUENOUDZJQU
      FZAXFJQAXEQRZUHZCUGKPZUIUJUKULZUEUMUNUIXJUIVPUOZUJUPUQURXBEXEUSNZUENOUDZU
      HZXFKOSSUTVAZTVBNZXICSULZXBSRZXMQRZXOKXQVDAXRXHFVCAXSXHIVCAEQRZXHXTGEXEVE
      VFCXMXLKXLVGZVHVIXIXJXQRZXOUHZUHBCDEXEXLUAXJUBTUBPZXJLZVJLZEMNZYFVKLZEMNZ
      VLZVMAXRXHYDFVNAYAXHYDGVNADEBPUSNCRZBSVOZWGXHYDHVNAXSXHYDIVNYBUBUATYKUAPZ
      XJLZVJLZEMNZYOVKLZEMNZVLYEYNWGZYHYQYJYSYTYGYPEMYTYFYOVJYEYNXJVQZVRVSYTYIY
      REMYTYFYOVKUUAVRVSVTWAYCTXPXJWBXIXOXJXPTWCWDXIYCXKXNWEAXHYDWHXIYCXKXNWFWI
      WJWKAXAUPRZXCSRXDXGWLADSULUUBADYMSHYLBSWMWNDWOWPAXBEIGWQJXAXCWRWSWT $.

    $( The Lebesgue outer measure function respects scaling of sets by positive
       reals.  (Contributed by Mario Carneiro, 6-Apr-2015.) $)
    ovolsca $p |- ( ph -> ( vol* ` B ) = ( ( vol* ` A ) / C ) ) $=
      ( vy covol cfv cdiv co cle wbr ovolscalem2 cmul wcel cr wceq recnd rpne0d
      c1 rpcnd divrecd cv crab ssrab2 syl6eqss rpreccld wss rerpdivcld ovollecl
      sca2rab syl3anc lemuldivd mpbird eqbrtrd letri3d mpbir2and ) ADKLZCKLZEMN
      ZUAVBVDOPZVDVBOPABCDEFGHIQZAVDVCUDEMNZRNZVBOAVCEAVCIUBAEGUEAEGUCUFAVHVBOP
      VCVBVGMNOPAJDCVGADEBUGRNCSZBTUHTHVIBTUIUJZAEGUKZABJCDEFGHUOADTULVDTSVEVBT
      SVJAVCEIGUMZVFDVDUNUPZQAVCVBVGIVMVKUQURUSAVBVDVMVLUTVA $.
  $}

  ${
    $d f g h k m n t u v x y z A $.  $d f g h k m n t u v x y z B $.  $d t H $.
    $d f g k m n t y z C $.  $d h i j k n t x y F $.  $d i j k n t u x y z K $.
    $d f h i j k n t x y z G $.  $d i j m n t x y z M $.  $d i j k m n x y W $.
    $d k y P $.  $d f g h i j k m n t v x y z ph $.  $d f h k n t x y z T $.
    $d k n t u x y N $.  $d h z S $.  $d h n t u x z U $.  $d t X $.
    ovolicc.1 $e |- ( ph -> A e. RR ) $.
    ovolicc.2 $e |- ( ph -> B e. RR ) $.
    ovolicc.3 $e |- ( ph -> A <_ B ) $.
    ${
      ovolicc1.4 $e |- G = ( n e. NN |->
        if ( n = 1 , <. A , B >. , <. 0 , 0 >. ) ) $.
      $( The measure of a closed interval is lower bounded by its length.
         (Contributed by Mario Carneiro, 13-Jun-2014.)  (Proof shortened by
         Mario Carneiro, 25-Mar-2015.) $)
      ovolicc1 $p |- ( ph -> ( vol* ` ( A [,] B ) ) <_ ( B - A ) ) $=
        ( co cfv c1 cr wcel syl2anc cc0 cn cle wceq wbr vx vz vk cicc cabs cmin
        covol caddc ccom cseq crn cxr clt csup wss iccssre ovolcl syl cpnf cico
        wf cxp cin cv cop cif wa df-br sylib opelxpi elind adantr 0le0 mpbi 0re
        mp2an elin mpbir2an ifcl sylancl eqid ovolsf frn icossxr syl6ss supxrcl
        fmptd resubcld rexrd cuni c1st c2nd wrex wral 1nn a1i op1stg w3a elicc2
        wb biimpa simp2d eqbrtrd simp3d op2ndg breqtrrd fveq2 iftrue opex fvmpt
        syl6eq fveq2d breq1d breq2d anbi12d syl12anc ralrimiva ovolficc ovollb2
        ax-mp rspcev mpbird cc addid1 adantl cuz nnuz eleqtri syl6eleq rge0ssre
        simpr ffvelrn sseldi c2 fveq2i ovolfsval eqtrd c0ex oveq12d syl5eq df-2
        recnd cfz ad2antrr elfzuz syl6eleqr eluz2nn eqeq1 ifbid eluz2b3 simprbi
        ifex wne neneqd iffalsed op2nd op1st 0m0e0 seqid2 1z seq1i eqtr3d leidd
        wfn ffn breq1 ralrn supxrleub xrletrd ) ABCUDJZUGKZUHUEUFUIEUIZLUJZUKZU
        LUMUNZCBUFJZAUVJMUOZUVKULNABMNZCMNZUVQFGBCUPOZUVJUQURAUVNULUOZUVOULNAUV
        NPUSUTJZULAQUWBUVMVAZUVNUWBUOAQRMMVBZVCZEVAZUWCADQDVDZLSZBCVEZPPVEZVFZU
        WEEAUWGQNZVGUWIUWENZUWJUWENZUWKUWENAUWMUWLARUWDUWIABCRTUWIRNHBCRVHVIAUV
        RUVSUWIUWDNFGBCMMVJOVKVLUWNUWJRNZUWJUWDNZPPRTUWOVMPPRVHVNPMNZUWQUWPVOVO
        PPMMVJVPUWJRUWDVQVRUWHUWIUWJUWEVSVTIWGZUVMEUVLUVLWAZUVMWAZWBURZQUWBUVMW
        CURPUSWDWEZUVNWFURAUVPACBGFWHZWIZAUWFUVJUDEUIUKWJUOZUVKUVORTUWRAUXEUWGE
        KZWKKZUAVDZRTZUXHUXFWLKZRTZVGZDQWMZUAUVJWNZAUXMUAUVJAUXHUVJNZVGZLQNZUWI
        WKKZUXHRTZUXHUWIWLKZRTZUXMUXQUXPWOWPUXPUXRBUXHRAUXRBSZUXOAUVRUVSUYBFGBC
        MMWQOZVLUXPUXHMNZBUXHRTZUXHCRTZAUXOUYDUYEUYFWRZAUVRUVSUXOUYGWTFGBCUXHWS
        OXAZXBXCUXPUXHCUXTRUXPUYDUYEUYFUYHXDAUXTCSZUXOAUVRUVSUYIFGBCMMXEOZVLXFU
        XLUXSUYAVGDLQUWHUXIUXSUXKUYAUWHUXGUXRUXHRUWHUXFUWIWKUWHUXFLEKZUWIUWGLEX
        GUXQUYKUWISWODLUWKUWIQEUWHUWIUWJXHIBCXIZXJXTZXKZXLXMUWHUXJUXTUXHRUWHUXF
        UWIWLUYNXLXNXOYAXPXQAUVQUWFUXEUXNWTUVTUWRUAUVJDEXROYBUVJUVMEUWTXSOAUVOU
        VPRTZUBVDZUVPRTZUBUVNWNZAUYRUXHUVMKZUVPRTZUAQWNZAUYTUAQAUXHQNZVGZUYSUVP
        UVPRVUCLUVMKZUYSUVPVUCUCUHYCUVLLLUXHPUCVDZYCNVUEPUHJVUESVUCVUEYDYELLYFK
        ZNVUCLQVUFWOYGYHWPVUCUXHQVUFAVUBYKYGYIVUCVUDVUCUWBMVUDYJVUCUWCUXQVUDUWB
        NAUWCVUBUXAVLWOQUWBLUVMYLVTYMUUBVUCVUELLUHJZUXHUUCJNZVGZVUEUVLKZVUEEKZW
        LKZVUKWKKZUFJZPVUIUWFVUEQNZVUJVUNSAUWFVUBVUHUWRUUDVUIVUEYNYFKZNZVUOVUIV
        UEVUGYFKZVUPVUHVUEVURNVUCVUEVUGUXHUUEYEYNVUGYFUUAYOUUFZVUEUUGURZEUVLVUE
        UWSYPOVUIVUNPPUFJPVUIVULPVUMPUFVUIVULUWJWLKPVUIVUKUWJWLVUIVUKVUELSZUWIU
        WJVFZUWJVUIVUOVUKVVBSVUTDVUEUWKVVBQEUWGVUESUWHVVAUWIUWJUWGVUELUUHUUIIVV
        AUWIUWJUYLPPXIUULXJURVUIVVAUWIUWJVUIVUELVUIVUQVUELUUMZVUSVUQVUOVVCVUEUU
        JUUKURUUNUUOYQZXLPPYRYRUUPXKVUIVUMUWJWKKPVUIVUKUWJWKVVDXLPPYRYRUUQXKYSU
        URXKYQUUSVUCUVPUHUVLLUUTVUCLUVLKZUYKWLKZUYKWKKZUFJZUVPVUCUWFUXQVVEVVHSA
        UWFVUBUWRVLWOEUVLLUWSYPVTVUCVVFCVVGBUFVUCVVFUXTCUYKUWIWLUYMYOAUYIVUBUYJ
        VLYTVUCVVGUXRBUYKUWIWKUYMYOAUYBVUBUYCVLYTYSYQUVAUVBAUVPUVPRTVUBAUVPUXCU
        VCVLXCXQAUVMQUVDZUYRVUAWTAUWCVVIUXAQUWBUVMUVEURUYQUYTUBUAQUVMUYPUYSUVPR
        UVFUVGURYBAUWAUVPULNUYOUYRWTUXBUXDUBUVNUVPUVHOYBUVI $.
    $}

    ${
      ovolicc2.4 $e |- S = seq 1 ( + , ( ( abs o. - ) o. F ) ) $.
      ovolicc2.5 $e |- ( ph -> F : NN --> ( <_ i^i ( RR X. RR ) ) ) $.
      ovolicc2.6 $e |- ( ph -> U e. ( ~P ran ( (,) o. F ) i^i Fin ) ) $.
      ovolicc2.7 $e |- ( ph -> ( A [,] B ) C_ U. U ) $.
      ovolicc2.8 $e |- ( ph -> G : U --> NN ) $.
      ovolicc2.9 $e |- ( ( ph /\ t e. U ) ->
                            ( ( (,) o. F ) ` ( G ` t ) ) = t ) $.
      $( Lemma for ~ ovolicc2 .  (Contributed by Mario Carneiro,
         14-Jun-2014.) $)
      ovolicc2lem1 $p |- ( ( ph /\ X e. U ) -> ( P e. X <-> ( P e. RR /\
                             ( 1st ` ( F ` ( G ` X ) ) ) < P /\
                             P < ( 2nd ` ( F ` ( G ` X ) ) ) ) ) ) $=
        ( cr wcel wa cfv c1st c2nd cioo co clt wbr w3a ccom cn ffvelrnda cxp wf
        wceq cle cin wss inss2 fss sylancl fvco3 sylan syldan cv wral ralrimiva
        fveq2 fveq2d id eqeq12d rspccva cop adantr ffvelrnd 1st2nd2 syl syl6eqr
        df-ov 3eqtr3d eleq2d xp1st xp2nd cxr rexr elioo2 syl2an syl2anc bitrd
        wb ) AJGUAZUBZEJUAEJIUCZHUCZUDUCZWOUEUCZUFUGZUAZETUAWPEUHUIEWQUHUIUJZWM
        JWREWMWNUFHUKZUCZWOUFUCZJWRAWLWNULUAZXBXCUPZAGULJIRUMZAULTTUNZHUOZXDXEA
        ULUQXGURZHUOXIXGUSXHOUQXGUTULXIXGHVAVBZULXGWNUFHVCVDVEABVFZIUCZXAUCZXKU
        PZBGVGWLXBJUPZAXNBGSVHXNXOBJGXKJUPZXMXBXKJXPXLWNXAXKJIVIVJXPVKVLVMVDWMX
        CWPWQVNZUFUCWRWMWOXQUFWMWOXGUAZWOXQUPWMULXGWNHAXHWLXJVOXFVPZWOTTVQVRVJW
        PWQUFVTVSWAWBWMWPTUAZWQTUAZWSWTWKZWMXRXTXSWOTTWCVRWMXRYAXSWOTTWDVRXTWPW
        EUAWQWEUAYBYAWPWFWQWFWPWQEWGWHWIWJ $.

      ovolicc2.10 $e |- T = { u e. U | ( u i^i ( A [,] B ) ) =/= (/) } $.
      ${
        ovolicc2.11 $e |- ( ph -> H : T --> T ) $.
        ovolicc2.12 $e |- ( ( ph /\ t e. T ) ->
                              if ( ( 2nd ` ( F ` ( G ` t ) ) ) <_ B ,
                                   ( 2nd ` ( F ` ( G ` t ) ) ) , B ) e.
                              ( H ` t ) ) $.
        ovolicc2.13 $e |- ( ph -> A e. C ) $.
        ovolicc2.14 $e |- ( ph -> C e. T ) $.
        ovolicc2.15 $e |- K = seq 1 ( ( H o. 1st ) , ( NN X. { C } ) ) $.
        ovolicc2.16 $e |- W = { n e. NN | B e. ( K ` n ) } $.
        $( Lemma for ~ ovolicc2 .  (Contributed by Mario Carneiro,
           14-Jun-2014.) $)
        ovolicc2lem2 $p |- ( ( ph /\ ( N e. NN /\ -. N e. W ) ) ->
                                ( 2nd ` ( F ` ( G ` ( K ` N ) ) ) ) <_ B ) $=
          ( vx cn wcel wn cfv cle wbr wa clt cr adantr cxp wf cin wss inss2 fss
          c2nd sylancl cicc co c0 wne c1 nnuz 1zzd algrf ffvelrnda ineq1 neeq1d
          cv wceq elrab2 sylib simpld ffvelrnd xp2nd syl ltnled simprl c1st wex
          adantrr simprd n0 xp1st w3a simpr elin elicc2 syl2anc ad2antrr simp1d
          wb mpbid ovolicc2lem1 syldan simp2d simp3d ltletrd exlimddv mpbir3and
          simprr fveq2 eleq2d sylanbrc expr sylbird con1d impr ) AOUNUOZOPUOZUP
          ONUQZLUQZKUQZVJUQZEURUSZAYCUTZYIYDYJYIUPEYHVAUSZYDYJEYHAEVBUOZYCRVCYJ
          YGVBVBVDZUOZYHVBUOYJUNYMYFKAUNYMKVEZYCAUNURYMVFZKVEYPYMVGYOUAURYMVHUN
          YPYMKVIVKVCYJIUNYELAIUNLVEYCUDVCYJYEIUOZYEDEVLVMZVFZVNVOZYJYEHUOYQYTU
          TZAUNHONAFNHMVPUNVQUKAVRUJUGVSVTBWCZYRVFZVNVOYTBYEIHUUBYEWDUUCYSVNUUB
          YEYRWAWBUFWEWFZWGWHWHZYGVBVBWIWJWKAYCYKYDAYCYKUTZUTZYCEYEUOZYDAYCYKWL
          UUGUUHYLYGWMUQZEVAUSZYKAYLUUFRVCUUGUMWCZYSUOZUUJUMUUGYTUULUMWNUUGYQYT
          AYCUUAYKUUDWOZWPUMYSWQWFUUGUULUTZUUIUUKEUUGUUIVBUOZUULAYCUUOYKYJYNUUO
          UUEYGVBVBWRWJWOVCUUNUUKVBUOZDUUKURUSZUUKEURUSZUUNUUKYRUOZUUPUUQUURWSZ
          UUNUUKYEUOZUUSUUNUULUVAUUSUTUUGUULWTUUKYEYRXAWFZWPAUUSUUTXFZUUFUULADV
          BUOYLUVCQRDEUUKXBXCXDXGZXEAYLUUFUULRXDUUNUUPUUIUUKVAUSZUUKYHVAUSZUUNU
          VAUUPUVEUVFWSZUUNUVAUUSUVBWGUUGUVAUVGXFZUULAUUFYQUVHUUGYQYTUUMWGZACDE
          UUKGIKLYEQRSTUAUBUCUDUEXHXIVCXGXJUUNUUPUUQUURUVDXKXLXMAYCYKXOAUUFYQUU
          HYLUUJYKWSXFUVIACDEEGIKLYEQRSTUAUBUCUDUEXHXIXNEJWCZNUQZUOUUHJOUNPUVJO
          WDUVKYEEUVJONXPXQULWEXRXSXTYAYB $.

        $( Lemma for ~ ovolicc2 .  (Contributed by Mario Carneiro,
           14-Jun-2014.) $)
        ovolicc2lem3 $p |- ( ( ph /\
            ( N e. { n e. NN | A. m e. W n <_ m } /\
              P e. { n e. NN | A. m e. W n <_ m } ) ) ->
              ( N = P <-> ( 2nd ` ( F ` ( G ` ( K ` N ) ) ) ) =
                          ( 2nd ` ( F ` ( G ` ( K ` P ) ) ) ) ) ) $=
          ( vy vk vx cv cfv c2nd cle wbr wral crab weq fveq2 fveq2d wceq ssrab2
          cn cr nnssre sstri wcel sseli wa cxp cin wss inss2 fss sylancl adantr
          wf c1 nnuz 1zzd algrf cicc co eqsstri ffvelrn sylancom ffvelrnd xp2nd
          c0 wne syl sylan2 clt wi ad2antll adantrr breq1 ralbidv elrab simprbi
          anim2i caddc breq2 breq2d imbi12d imbi2d wn nnnlt1 adantl pm2.21d a1d
          nnre lep1d peano2re syl3anc mpand ralimdva imim1d wo wb simplr simprl
          letr nnleltp1 syl2anc nnred leloed cif mpbid ad2antrr breq1d com23
          a2d bitr3d c1st w3a simpll ltp1 ltnle mpdan mtod ovolicc2lem2 iftrued
          rspccv syl12anc ralrimiva ifbieq1d eleq12d rspcv sylc eqeltrrd algrp1
          ad2ant2r eleqtrrd peano2nnd simp3d lttr mpan2d imim2d syl5ibrcom a1dd
          ovolicc2lem1 jaod sylbid expr syld expcom nnind syl3c eqord1 ) AUOUPU
          OURZPUSZNUSZMUSZUTUSZUPURZPUSZNUSZMUSZUTUSZQGLURZKURZVAVBZKRVCZLVJVDZ
          QPUSZNUSZMUSZUTUSGPUSZNUSZMUSZUTUSUOUPVEZUWAUWFUTUWSUVTUWEMUWSUVSUWDN
          UVRUWCPVFVGVGVGZUVRQVHZUWAUWOUTUXAUVTUWNMUXAUVSUWMNUVRQPVFVGVGVGUVRGV
          HZUWAUWRUTUXBUVTUWQMUXBUVSUWPNUVRGPVFVGVGVGUWLVJVKUWKLVJVIZVLVMUVRUWL
          VNZAUVRVJVNZUWBVKVNZUWLVJUVRUXCVOZAUXEVPZUWAVKVKVQZVNUXFUXHVJUXIUVTMA
          VJUXIMWDZUXEAVJVAUXIVRZMWDUXKUXIVSUXJUCVAUXIVTVJUXKUXIMWAWBZWCUXHJVJU
          VSNAJVJNWDZUXEUFWCAUXEVJJPWDZUVSJVNUXHVJIPWDZIJVSZUXNAUXOUXEAFPIOWEVJ
          WFUMAWGZULUIWHZWCIBURDEWIWJVRWPWQZBJVDJUHUXSBJVIWKZVJIJPWAZWBVJJUVRPW
          LWMWNWNUWAVKVKWOWRZWSAUXDUWCUWLVNZVPVPUWCVJVNZUXHUWCUWIVAVBZKRVCZUVRU
          WCWTVBZUWBUWGWTVBZXAZUYCUYDAUXDUWLVJUWCUXCVOXBAUXDUXHUYCUXDUXEAUXGXHX
          CUYCUYFAUXDUYCUYDUYFUWKUYFLUWCVJLUPVEUWJUYEKRUWHUWCUWIVAXDXEXFXGXBUXH
          UQURZUWIVAVBZKRVCZUVRUYJWTVBZUWBUYJPUSZNUSZMUSZUTUSZWTVBZXAZXAZXAUXHW
          EUWIVAVBZKRVCZUVRWEWTVBZUWBWEPUSZNUSZMUSZUTUSZWTVBZXAZXAZXAUXHUYFUYIX
          AZXAZUXHUWCWEXIWJZUWIVAVBZKRVCZUVRVUMWTVBZUWBVUMPUSZNUSZMUSZUTUSZWTVB
          ZXAZXAZXAVULUQUPUWCUYJWEVHZUYTVUJUXHVVDUYLVUBUYSVUIVVDUYKVUAKRUYJWEUW
          IVAXDXEVVDUYMVUCUYRVUHUYJWEUVRWTXJVVDUYQVUGUWBWTVVDUYPVUFUTVVDUYOVUEM
          VVDUYNVUDNUYJWEPVFVGVGVGXKXLXLXMUQUPVEZUYTVUKUXHVVEUYLUYFUYSUYIVVEUYK
          UYEKRUYJUWCUWIVAXDXEVVEUYMUYGUYRUYHUYJUWCUVRWTXJVVEUYQUWGUWBWTVVEUYPU
          WFUTVVEUYOUWEMVVEUYNUWDNUYJUWCPVFVGVGVGXKXLXLXMZUYJVUMVHZUYTVVCUXHVVG
          UYLVUOUYSVVBVVGUYKVUNKRUYJVUMUWIVAXDXEVVGUYMVUPUYRVVAUYJVUMUVRWTXJVVG
          UYQVUTUWBWTVVGUYPVUSUTVVGUYOVURMVVGUYNVUQNUYJVUMPVFVGVGVGXKXLXLXMVVFU
          XHVUIVUBUXHVUCVUHUXEVUCXNAUVRXOXPXQXRUYDUXHVUKVVCUXHUYDVUKVVCXAUXHUYD
          VPZVUKVUOUYIXAZVVCUYDVUKVVIXAUXHUYDVUOUYFUYIUYDVUNUYEKRUYDUWIRVNZVPZU
          WCVUMVAVBZVUNUYEVVKUWCUYDUWCVKVNZVVJUWCXSWCZXTVVKVVMVUMVKVNZUWIVKVNZV
          VLVUNVPUYEXAVVNVVKVVMVVOVVNUWCYAZWRVVJVVPUYDRVKUWIRVJVKREUWHPUSVNZLVJ
          VDVJUNVVRLVJVIWKVLVMVOXPUWCVUMUWIYJYBYCYDYEXPVVHVUOUYIVVBUXHUYDVUOUYI
          VVBXAUXHUYDVUOVPZVPZVUPUYIVVAVVTVUPUYGUWSYFZUYIVVAXAZVVTUVRUWCVAVBZVU
          PVWAVVTUXEUYDVWCVUPYGAUXEVVSYHZUXHUYDVUOYIZUVRUWCYKYLVVTUVRUWCVVTUVRV
          WDYMVVTUWCVWEYMZYNUUAVVTUYGVWBUWSVVTUYIUYGVVAVVTUYHVVAUYGVVTUYHUWGVUT
          WTVBZVVAVVTUWGVKVNZVUSUUBUSUWGWTVBZVWGVVTUWGVUQVNZVWHVWIVWGUUCZVVTUWG
          UWDOUSZVUQVVTUWGEVAVBZUWGEYOZUWGVWLVVTVWMUWGEVVTAUYDUWCRVNZXNVWMAUXEV
          VSUUDZVWEVVTVWOVUMUWCVAVBZVVTVVMVWQXNZVWFVVMUWCVUMWTVBZVWRUWCUUEVVMVV
          OVWSVWRYGVVQUWCVUMUUFUUGYPWRVUOVWOVWQXAUXHUYDVUNVWQKUWCRUWIUWCVUMVAXJ
          UUKXBUUHABCDEFHIJLMNOPUWCRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUUIUULUUJVVTU
          WDIVNCURZNUSZMUSZUTUSZEVAVBZVXCEYOZVWTOUSZVNZCIVCZVWNVWLVNZVVTVJIUWCP
          AUXOUXEVVSUXRYQZVWEWNAVXHUXEVVSAVXGCIUJUUMYQVXGVXICUWDIVWTUWDVHZVXEVW
          NVXFVWLVXKVXDVWMVXCUWGEVXKVXCUWGEVAVXKVXBUWFUTVXKVXAUWEMVWTUWDNVFVGVG
          ZYRVXLUUNVWTUWDOVFUUOUUPUUQUURAUYDVUQVWLVHUXEVUOAFPIOUWCWEVJWFUMUXQUL
          UIUUSUUTUVAVVTAVUQJVNVWJVWKYGVWPVVTVJJVUMPVVTUXOUXPUXNVXJUXTUYAWBZVVT
          UWCVWEUVBWNZACDEUWGHJMNVUQSTUAUBUCUDUEUFUGUVIYLYPUVCZVVTUXFVWHVUTVKVN
          ZUYHVWGVPVVAXAUXHUXFVVSUYBWCVVTUWFUXIVNVWHVVTVJUXIUWEMAUXJUXEVVSUXLYQ
          ZVVTJVJUWDNAUXMUXEVVSUFYQZVVTVJJUWCPVXMVWEWNWNWNUWFVKVKWOWRVVTVUSUXIV
          NVXPVVTVJUXIVURMVXQVVTJVJVUQNVXRVXNWNWNVUSVKVKWOWRUWBUWGVUTUVDYBUVEUV
          FYSVVTUWSVVAUYIVVTVVAUWSVWGVXOUWSUWBUWGVUTWTUWTYRUVGUVHUVJUVKYSUVLYTU
          VMUVNYTUVOUVPUVQ $.

        ovolicc2.17 $e |- M = inf ( W , RR , < ) $.
        $( Lemma for ~ ovolicc2 .  (Contributed by Mario Carneiro,
           14-Jun-2014.)  (Revised by AV, 17-Sep-2020.) $)
        ovolicc2lem4 $p |- ( ph -> ( B - A ) <_ sup ( ran S , RR* , < ) ) $=
          ( vy vz vx vi vj vm cv clt wbr ccom c1 cfz wral cmin crn cxr cle wrex
          co cn cr wcel wa ad2antlr wi wss nnuz cin wne crab ssrab2 eqsstri fss
          wf c0 sylancl syl2anc elfznn frn syl nnssre syl6ss simpr sseldd an32s
          ralimdva cfn fzfid wf1o wf1 wceq fvres adantl syl2an eqtrd c2nd fveq2
          cfv fveq2d wb nnred wn cz 1z sylib simprd adantr simprl sylibr sseldi
          letrd syldan csu resubcld cc0 sylan2 fsumrecl sselda c1st caddc xp1st
          ffvelrnd recnd ffvelrn w3a ovolicc2lem1 mpbid cima csup arch cres fco
          df-ima 1zzd algrf cicc ssriv fssres syl5eqss ad3antrrr simpllr lelttr
          nnre syl3anc ancomsd expdimp impancom reximdva mpd wfo fvco3 ad2antll
          adantrr eqeq12d a1i sstri cinf cuz sseqtri uzinf ax-mp cdom cioo elin
          cpw ssfi simpll simplr raleqdv mpbiri ralrimivw rabid2 eleqtrd simprr
          ral0 ovolicc2lem3 syl12anc syl5ibr ralrimivva dff13 f1domg sylc domfi
          sylanbrc necon3bd infssuzcl sylancr syl5eqel ad2antrr sseli infssuzle
          mpi elfzle2 mpan syl5eqbr ralrimiva ssrabdv jca sylbid f1f1orn f1oeq3
          ex f1ofo fofi fimaxre2 r19.29a cabs rexrd cpnf cico ovolfsf ffvelrnda
          cxp eqid elrege0 simpld ovolsf rge0ssre ressxr supxrcl inss2 xp2nd cc
          fsumf1o ovolfsval sumeq2dv fsumsub fsumm1 addcomd algr0 peano2zd nnzd
          fsum1p fzp1ss mp1i ax-1cn pncan3oi oveq1i sumeq1i oveq1 cbvsumv eqtri
          fsumshftm syl6eq oveq12d peano2nn addsub4d 3eqtrd eleq2d elrab2 mpdan
          eqeltrrd simp3d simp2d lt2subd ltled elfzm11 ltnled nsyl ovolicc2lem2
          iftrued breq1d ifbieq1d eleq12d algrp1 eleqtrrd fsumle subge0d mpbird
          cif rspcv addge01d breqtrrd adantlr ltle syl6eleq elfz5 sylibrd dfss3
          nnz impr fsumless cseq eqidd fsumser syl6eqr wfn ffn fnfvelrn supxrub
          fveq1i eqbrtrd xrletrd rexlimddv ) AUNUTZUOUTZVAVBZUNLNVCZVDOVEVLZUUA
[encoded data, 7440 characters]
          YWQWYLAXUOYWQXUPVMXUCGVXAWMXTYWOVMVXIGVXBWJVXPYWLVXCWJVXEVXFVXG $.
      $}

      $( Lemma for ~ ovolicc2 .  (Contributed by Mario Carneiro,
         14-Jun-2014.) $)
      ovolicc2lem5 $p |- ( ph -> ( B - A ) <_ sup ( ran S , RR* , < ) ) $=
        ( vz vh vx vy vn vm cv wcel cmin co crn cxr clt csup cle cuni wrex cicc
        wbr rexrd lbicc2 syl3anc sseldd eluni2 sylib wa wf cfv c2nd cif wex cfn
        wral wss cioo ccom cpw cin elin simprd c0 wne crab eqsstri ssfi sylancl
        ssrab2 adantr cr cxp inss2 cn wceq neeq1d elrab2 simplbi ffvelrn syl2an
        ineq1 ffvelrnda syldan sseldi xp2nd syl ifcld simprbi adantl w3a simprr
        n0 elicc2 syl2anc mpbid simp1d adantrr simp2d simpld fvco3 sylan sylan2
        c1st cop 1st2nd2 fveq2d df-ov syl6eqr 3eqtr3d eleqtrd xp1st rexr elioo2
        wb expr exlimdv mpd breq2 inelcm sylanbrc fveq2 eqid simp3d ltled letrd
        ifboth min2 mpbir3and simprl jca reximdv2 ralrimiva eleq2 ac6sfi breq1d
        ex ifbieq1d eleq12d cbvralv csn c1 cseq adantlr simprrl simprrr rspccva
        simprlr simprll cbvrabv ovolicc2lem4 anassrs syl5bir expimpd rexlimddv
        cinf eleq2d ) ADUAUGZUHZEDUIUJFUKULUMUNUOUSZUAHADHUPZUHUVPUAHUQADEURUJZ
        UVRDQADULUHEULUHDEUOUSZDUVSUHZADKUTAELUTMDEVAVBZVCUADHVDVEAUVOHUHZUVPVF
        ZVFZGGUBUGZVGZCUGZJVHZIVHZVIVHZEUOUSZUWKEVJZUWHUWFVHZUHZCGVMZVFZUBVKZUV
        QAUWRUWDAGVLUHZUWMUCUGZUHZUCGUQZCGVMUWRAHVLUHZGHVNUWSAHVOIVPZUKVQZUHZUX
        CAHUXEVLVRUHZUXFUXCVFPHUXEVLVSVEVTGBUGZUVSVRZWAWBZBHWCHTUXJBHWGWDHGWEWF
        AUXBCGAUWHGUHZVFZUXAUCHUQZUXBUXLUWMUVRUHUXMUXLUVSUVRUWMAUVSUVRVNZUXKQWH
        UXLUWMUVSUHZUWMWIUHZDUWMUOUSZUWMEUOUSZUXLUWLUWKEWIUXLUWJWIWIWJZUHZUWKWI
        UHZUXLUOUXSVRZUXSUWJUOUXSWKAUXKUWIWLUHZUWJUYBUHAHWLJVGZUWHHUHZUYCUXKRUX
        KUYEUWHUVSVRZWAWBZUXJUYGBUWHHGUXHUWHWMUXIUYFWAUXHUWHUVSWSWNTWOZWPZHWLUW
        HJWQWRZAWLUYBUWIIOWTXAXBZUWJWIWIXCZXDZAEWIUHZUXKLWHZXEUXLDUWKUOUSZUVTUX
        QUXLUDUGZUYFUHZUDVKZUYPUXLUYGUYSUXKUYGAUXKUYEUYGUYHXFXGUDUYFXJVEUXLUYRU
        YPUDAUXKUYRUYPAUXKUYRVFZVFZDUYQUWKADWIUHZUYTKWHZVUAUYQWIUHZDUYQUOUSZUYQ
        EUOUSZVUAUYQUVSUHZVUDVUEVUFXHZVUAUYQUWHUHZVUGVUAUYRVUIVUGVFAUXKUYRXIUYQ
        UWHUVSVSVEZVTVUAVUBUYNVUGVUHYLVUCAUYNUYTLWHDEUYQXKXLXMZXNZVUAUXTUYAAUXK
        UXTUYRUYKXOZUYLXDZVUAVUDVUEVUFVUKXPVUAUYQUWKVULVUNVUAVUDUWJYAVHZUYQUMUS
        ZUYQUWKUMUSZVUAUYQVUOUWKVOUJZUHZVUDVUPVUQXHZVUAUYQUWHVURVUAVUIVUGVUJXQV
        UAUWIUXDVHZUWJVOVHZUWHVURAUYTUYCVVAVVBWMZAUXKUYCUYRUYJXOAWLUYBIVGZUYCVV
        COWLUYBUWIVOIXRXSXAAUXKVVAUWHWMZUYRUXKAUYEVVEUYISXTXOVUAVVBVUOUWKYBZVOV
        HVURVUAUWJVVFVOVUAUXTUWJVVFWMVUMUWJWIWIYCXDYDVUOUWKVOYEYFYGYHVUAVUOWIUH
        ZUYAVUSVUTYLZVUAUXTVVGVUMUWJWIWIYIXDVUNVVGVUOULUHUWKULUHVVHUYAVUOYJUWKY
        JVUOUWKUYQYKWRXLXMUUAUUBUUCYMYNYOAUVTUXKMWHUWLUYPUVTUXQUWKEUWKUWMDUOYPE
        UWMDUOYPUUDXLUXLUYAUYNUXRUYMUYOUWKEUUEXLAUXOUXPUXQUXRXHYLZUXKAVUBUYNVVI
        KLDEUWMXKXLWHUUFZVCUCUWMHVDVEUXLUXAUXAUCHGUXLUWTHUHZUXAVFZUWTGUHZUXAVFU
        XLVVLVFZVVMUXAVVNVVKUWTUVSVRZWAWBZVVMUXLVVKUXAUUGVVNUXAUXOVVPUXLVVKUXAX
        IZUXLUXOVVLVVJWHUWMUWTUVSYQXLUXJVVPBUWTHGUXHUWTWMUXIVVOWAUXHUWTUVSWSWNT
        WOYRVVQUUHUUNUUIYOUUJUXAUWOCUCGGUBUWTUWNUWMUUKUULXLWHUWEUWQUVQUBUWEUWGU
        WPUVQUWPUWTJVHZIVHZVIVHZEUOUSZVVTEVJZUWTUWFVHZUHZUCGVMZUWEUWGVFUVQVWDUW
        OUCCGUWTUWHWMZVWBUWMVWCUWNVWFVWAUWLVVTUWKEVWFVVTUWKEUOVWFVVSUWJVIVWFVVR
        UWIIUWTUWHJYSYDYDZUUMVWGUUOUWTUWHUWFYSUUPZUUQUWEUWGVWEUVQAUWDUWGVWEVFZU
        VQAUWDVWIVFZVFZBCDEUVOFGHUEIJUWFUWFYAVPWLUVOUURWJUUSUUTZEUFUGZVWLVHZUHZ
        UFWLWCZWIUMUVMZVWPAVUBVWJKWHAUYNVWJLWHAUVTVWJMWHNAVVDVWJOWHAUXGVWJPWHAU
        XNVWJQWHAUYDVWJRWHAUYEVVEVWJSUVATAUWDUWGVWEUVBVWKVWEUXKUWOAUWDUWGVWEUVC
        VWDUWOUCUWHGVWHUVDXSAUWCUVPVWIUVEZVWKUWCUVOUVSVRZWAWBZUVOGUHAUWCUVPVWIU
        VFVWKUVPUWAVWTVWRAUWAVWJUWBWHDUVOUVSYQXLUXJVWTBUVOHGUXHUVOWMUXIVWSWAUXH
        UVOUVSWSWNTWOYRVWLYTVWOEUEUGZVWLVHZUHUFUEWLVWMVXAWMVWNVXBEVWMVXAVWLYSUV
        NUVGVWQYTUVHUVIYMUVJUVKYNYOUVL $.
    $}

    ovolicc2.m $e |- M = { y e. RR* |
        E. f e. ( ( <_ i^i ( RR X. RR ) ) ^m NN )
          ( ( A [,] B ) C_ U. ran ( (,) o. f ) /\
          y = sup ( ran seq 1 ( + , ( ( abs o. - ) o. f ) ) , RR* , < ) ) } $.
    $( The measure of a closed interval is upper bounded by its length.
       (Contributed by Mario Carneiro, 14-Jun-2014.) $)
    ovolicc2 $p |- ( ph -> ( B - A ) <_ ( vol* ` ( A [,] B ) ) ) $=
      ( cxr cle cv wcel cioo wss wceq wa cr cn vz vv vu vg vt vk vx cmin co clt
      cinf cicc covol cfv wbr wral ccom crn cuni cabs c1 cseq csup cxp cin cmap
      caddc wrex elovolm wi cpw cfn ctg wf wfn ioof ax-mp dffn3 mpbi simpr reex
      ffn xpex inex2 elmap sylib inss2 rexpssxrxp sstri fss sylancl fco sylancr
      nnex adantrr frn syl ctb retopbas bastg syl6ss fvex elpw2 crest ccmp eqid
      sylibr icccmp syl2anc ctop wb retop iccssre uniretop cmpsub adantr simprr
      mpbid unieq sseq2d pweq ineq1d rexeqdv rspcv syl3c wex simprl elin simprd
      imbi12d simpld elpwid sseld fvelrnb ralrimiv fveq2 crab ad2antrr expr mpd
      sylibd eqeq1d ac6sfi c0 simprll simprlr simprrl simprrr fveq2d id eqeq12d
      wne rspccva sylan ovolicc2lem5 rexlimdvaa breq2 syl5ibrcom impd rexlimdva
      exlimdv syl5bi ssrab2 eqsstri resubcld infxrgelb mpbird ovolval breqtrrd
      rexrd ) ADCUHUIZFKUJUKZCDULUIZUMUNZLAUVKUVLLUOZUVKUAMZLUOZUAFUPZAUVQUAFUV
      PFNUVMOEMZUQZURZUSZPZUVPVGUTUHUQUVSUQVAVBZURKUJVCZQZRZELSSVDZVEZTVFUIZVHA
      UVQBUVMUVPEFJVIAUWGUVQEUWJAUVSUWJNZRZUWCUWFUVQAUWKUWCUWFUVQVJAUWKUWCRZRZU
      VQUWFUVKUWELUOZUWNUVMUBMZUSPZUBUWAVKZVLVEZVHZUWOUWNUWAOURZVMUNZVKZNZUVMUC
      MZUSZPZUWQUBUXEVKZVLVEZVHZVJZUCUXCUPZUWCUWTUWNUWAUXBPUXDUWNUWAUXAUXBUWNTU
      XAUVTVNZUWAUXAPAUWKUXMUWCUWLKKVDZUXAOVNZTUXNUVSVNZUXMOUXNVOZUXOUXNSVKZOVN
      UXQVPUXNUXROWBVQUXNOVRVSUWLTUWIUVSVNZUWIUXNPUXPUWLUWKUXSAUWKVTUWITUVSUWHL
      SSWAWAWCWDWNWEWFZUWIUWHUXNLUWHWGWHWITUWIUXNUVSWJWKTUXNUXAOUVSWLWMZWOTUXAU
      VTWPWQUXAWRNUXAUXBPWSUXAWRWTVQXAUWAUXBUXAVMXBXCXGAUXLUWMAUXBUVMXDUIZXENZU
      XLACSNZDSNZUYCGHCDUYBUXBUXBXFUYBXFXHXIAUXBXJNUVMSPZUYCUXLXKXLAUYDUYEUYFGH
      CDXMXIZUVMUXBSUCUBXNXOWMXRXPAUWKUWCXQUXKUWCUWTVJUCUWAUXCUXEUWAQZUXGUWCUXJ
      UWTUYHUXFUWBUVMUXEUWAXSXTUYHUWQUBUXIUWSUYHUXHUWRVLUXEUWAYAYBYCYJYDYEAUWKU
      WTUWOVJUWCUWLUWQUWOUBUWSUWLUWPUWSNZUWQRZRZUWPTUDMZVNZUEMZUYLUNZUVTUNZUYNQ
      ZUEUWPUPZRZUDYFZUWOUYKUWPVLNZUFMZUVTUNZUYNQZUFTVHZUEUWPUPUYTUYKUWPUWRNZVU
      AUYKUYIVUFVUARUWLUYIUWQYGUWPUWRVLYHWFZYIUYKVUEUEUWPUYKUYNUWPNUYNUWANZVUEU
      YKUWPUWAUYNUYKUWPUWAUYKVUFVUAVUGYKYLYMUYKUVTTVOZVUHVUEXKUWLVUIUYJUWLUXMVU
      IUYATUXAUVTWBWQXPUFTUYNUVTYNWQUUAYOVUDUYQUEUFUWPTUDVUBUYOQVUCUYPUYNVUBUYO
      UVTYPUUBUUCXIUYKUYSUWOUDUWLUYJUYSUWOUWLUYJUYSRZRZUCUGCDUWDUXEUVMVEUUDUULU
      CUWPYQZUWPUVSUYLAUYDUWKVUJGYRAUYEUWKVUJHYRACDLUOUWKVUJIYRUWDXFUWLUXSVUJUX
      TXPUWLUYIUWQUYSUUEUWLUYIUWQUYSUUFUWLUYJUYMUYRUUGVUKUYRUGMZUWPNVUMUYLUNZUV
      TUNZVUMQZUWLUYJUYMUYRUUHUYQVUPUEVUMUWPUYNVUMQZUYPVUOUYNVUMVUQUYOVUNUVTUYN
      VUMUYLYPUUIVUQUUJUUKUUMUUNVULXFUUOYSUVAYTUUPWOYTUVPUWEUVKLUUQUURYSUUSUUTU
      VBYOAFKPUVKKNUVOUVRXKFUWCBMUWEQREUWJVHZBKYQKJVURBKUVCUVDAUVKADCHGUVEUVJUA
      FUVKUVFWMUVGAUYFUVNUVLQUYGBUVMEFJUVHWQUVI $.
  $}

  ${
    $d f m n y z A $.  $d f m n y z B $.
    $( The measure of a closed interval.  (Contributed by Mario Carneiro,
       14-Jun-2014.) $)
    ovolicc $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) ->
                    ( vol* ` ( A [,] B ) ) = ( B - A ) ) $=
      ( vn vm vy vf vz cr wcel cle wbr co cmin wceq cn cv c1 ccom cxr wa anbi2d
      w3a cicc covol cfv cop cc0 cif cmpt simp1 simp2 simp3 eqeq1 ifbid cbvmptv
      ovolicc1 cioo crn cuni wss caddc cabs cseq clt csup cxp cmap wrex rexbidv
      cin crab cbvrabv ovolicc2 wb iccssre syl2anc ovolcl syl resubcld xrletri3
      rexrd mpbir2and ) AHIZBHIZABJKZUBZABUCLZUDUEZBAMLZNZWHWIJKZWIWHJKZWFABCDO
      DPZQNZABUFZUGUGUFZUHZUIWCWDWEUJZWCWDWEUKZWCWDWEULZDCOWQCPZQNZWOWPUHWMXANW
      NXBWOWPWMXAQUMUNUOUPWFEABFWGUQFPZRURUSUTZGPZVAVBMRXCRQVCURSVDVEZNZTZFJHHV
      FVJOVGLZVHZGSVKWRWSWTXJXDEPZXFNZTZFXIVHGESXEXKNZXHXMFXIXNXGXLXDXEXKXFUMUA
      VIVLVMWFWHSIZWISIWJWKWLTVNWFWGHUTZXOWFWCWDXPWRWSABVOVPWGVQVRWFWIWFBAWSWRV
      SWAWHWIVTVPWB $.
  $}

  ${
    $d x A $.
    $( The measure of a right-unbounded interval.  (Contributed by Mario
       Carneiro, 14-Jun-2014.) $)
    ovolicopnf $p |- ( A e. RR -> ( vol* ` ( A [,) +oo ) ) = +oo ) $=
      ( vx cr wcel cpnf co covol cfv wceq clt wbr wn caddc cmnf cc0 cle cxr syl
      wa wb cico c1 wss pnfxr icossre mpan2 adantr ovolge0 mnflt0 wi ovolcl 0xr
      mnfxr xrltletr mp3an12 mpani mpd simpr xrrebnd mpbir2and ltp1d cicc simpl
      peano2re readdcld lep1d letrd addge02d mpbid ovolicc syl3anc recnd pncand
      cmin 0red eqtrd w3a elicc2 syl2anc biimpa simp1d simp2d elicopnf ad2antrr
      cv ex ssrdv ovolss eqbrtrrd lenltd pm2.65da nltpnft mpbird ) ACDZAEUAFZGH
      ZEIZWPEJKZLZWNWRWPWPUBMFZJKZWNWRSZWPXBWPCDZNWPJKZWRXBOWPPKZXDXBWOCUCZXEWN
      XFWRWNEQDXFUDAEUEUFZUGZWOUHRZXBNOJKZXEXDUIXBWPQDZXJXESXDUJZWNXKWRWNXFXKXG
      WOUKRZUGZNQDOQDXKXLUMULNOWPUNUORUPUQWNWRURXBXKXCXDWRSTXNWPUSRUTZVAXBWTWPP
      KXALXBAWTAMFZVBFZGHZWTWPPXBXRXPAVNFZWTXBWNXPCDZAXPPKZXRXSIWNWRVCZXBWTAXBX
      CWTCDXOWPVDRZYBVEZXBOWTPKYAXBOWPWTXBVOXOYCXIXBWPXOVFVGXBAWTYBYCVHVIAXPVJV
      KXBWTAXBWTYCVLXBAYBVLVMVPXBXQWOUCXFXRWPPKXBBXQWOXBBWEZXQDZYEWODZXBYFSZYGY
      ECDZAYEPKZYHYIYJYEXPPKZXBYFYIYJYKVQZXBWNXTYFYLTYBYDAXPYEVRVSVTZWAYHYIYJYK
      YMWBWNYGYIYJSTWRYFAYEWCWDUTWFWGXHXQWOWHVSWIXBWTWPYCXOWJVIWKWNXKWQWSTXMWPW
      LRWM $.
  $}

  $( The measure of the real numbers.  (Contributed by Mario Carneiro,
     14-Jun-2014.) $)
  ovolre $p |- ( vol* ` RR ) = +oo $=
    ( covol cfv cpnf wceq cle wbr cxr wcel wss ssid ovolcl ax-mp pnfge cc0 cico
    cr co 0re ovolicopnf mp2an rge0ssre ovolss eqbrtrri wa wb xrletri3 mpbir2an
    pnfxr ) PABZCDZUICEFZCUIEFZUIGHZUKPPIZUMPJZPKLZUIMLNCOQZABZCUIENPHURCDRNSLU
    QPIUNURUIEFUAUOUQPUBTUCUMCGHUJUKULUDUEUPUHUICUFTUG $.

  ${
    $d x y A $.  $d x B $.
    $( The predicate " ` A ` is Lebesgue-measurable".  A set is measurable if
       it splits every other set ` x ` in a "nice" way, that is, if the measure
       of the pieces ` x i^i A ` and ` x \ A ` sum up to the measure of ` x `
       (assuming that the measure of ` x ` is a real number, so that this
       addition makes sense).  (Contributed by Mario Carneiro, 17-Mar-2014.) $)
    ismbl $p |- ( A e. dom vol <->
                  ( A C_ RR /\ A. x e. ~P RR ( ( vol* ` x ) e. RR ->
      ( vol* ` x ) = ( ( vol* ` ( x i^i A ) ) + ( vol* ` ( x \ A ) ) ) ) ) ) $=
      ( vy cvol cdm wcel cr cv covol cfv cin cdif caddc co wceq wa fveq2d ovolf
      wral wi cpw ccnv cima wss ineq2 difeq2 oveq12d eqeq2d ralbidv crab df-vol
      cab cres dmeqi cc0 cpnf cicc fdmi ineq2i 3eqtri dfrab2 eqtr4i elrab2 reex
      dmres elpw2 wf wfn ffn elpreima mp2b imbi1i impexp bitri ralbii2 anbi12i
      wb ) BDEZFBGUAZFZAHZIJZWABKZIJZWABLZIJZMNZOZAIUBGUCZSZPBGUDZWBGFZWHTZAVSS
      ZPWBWACHZKZIJZWAWOLZIJZMNZOZAWISZWJCBVSVRWOBOZXAWHAWIXCWTWGWBXCWQWDWSWFMX
      CWPWCIWOBWAUEQXCWRWEIWOBWAUFQUGUHUIVRXBCULZVSKZXBCVSUJVRIXDUMZEXDIEZKXEDX
      FCAUKUNIXDVEXGVSXDVSUOUPUQNZIRURUSUTXBCVSVAVBVCVTWKWJWNBGVDVFWHWMAWIVSWAW
      IFZWHTWAVSFZWLPZWHTXJWMTXIXKWHVSXHIVGIVSVHXIXKVQRVSXHIVIVSWAGIVJVKVLXJWLW
      HVMVNVOVPVN $.

    $( From ~ ovolun , it suffices to show that the measure of ` x ` is at
       least the sum of the measures of ` x i^i A ` and ` x \ A ` .
       (Contributed by Mario Carneiro, 15-Jun-2014.) $)
    ismbl2 $p |- ( A e. dom vol <->
                  ( A C_ RR /\ A. x e. ~P RR ( ( vol* ` x ) e. RR ->
     ( ( vol* ` ( x i^i A ) ) + ( vol* ` ( x \ A ) ) ) <_ ( vol* ` x ) ) ) ) $=
      ( cvol cdm wcel cr wss cv covol cfv wi wral wa cle wbr wb ovolsscl mp3an1
      adantl syl5ss cin cdif caddc co wceq cpw ismbl elpwi inss1 difss readdcld
      simprr letri3d cun inundif fveq2i simprl ovolun syl22anc syl5eqbrr bitr4d
      biantrurd expr pm5.74d sylan2 ralbidva pm5.32i bitri ) BCDEBFGZAHZIJZFEZV
      KVJBUAZIJZVJBUBZIJZUCUDZUEZKZAFUFZLZMVIVLVQVKNOZKZAVTLZMABUGVIWAWDVIVSWCA
      VTVJVTEVIVJFGZVSWCPVJFUHVIWEMVLVRWBVIWEVLVRWBPVIWEVLMZMZVRVKVQNOZWBMWBWGV
      KVQVIWEVLULWGVNVPWFVNFEZVIVMVJGWEVLWIVJBUIZVMVJQRSZWFVPFEZVIVOVJGWEVLWLVJ
      BUJZVOVJQRSZUKUMWGWHWBWGVKVMVOUNZIJZVQNWOVJIVJBUOUPWGVMFGWIVOFGWLWPVQNOWG
      VMVJFWJVIWEVLUQZTWKWGVOVJFWMWQTWNVMVOURUSUTVBVAVCVDVEVFVGVH $.

    $( A self-referencing abbreviated definition of the Lebesgue measure.
       (Contributed by Mario Carneiro, 19-Mar-2014.) $)
    volres $p |- vol = ( vol* |` dom vol ) $=
      ( vy vx covol cv cfv cin cdif caddc wceq ccnv cima wral cab cres cdm cvol
      co cr resdmres df-vol dmeqi reseq2i 3eqtr4ri ) CCADZCEUDBDZFCEUDUEGCEHQIA
      CJRKLBMZNZOZNUGCPOZNPCUFSUIUHCPUGBATZUAUBUJUC $.

    $( The domain and range of the Lebesgue measure function.  (Contributed by
       Mario Carneiro, 19-Mar-2014.) $)
    volf $p |- vol : dom vol --> ( 0 [,] +oo ) $=
      ( cvol cdm cc0 cpnf cicc co wf cr cpw wss wfun wa covol cres ovolf funres
      cxp ffun mp2b volres funeqi mpbir resss eqsstri fssxp ax-mp sstri funssxp
      pm3.2i mpbi simpli ) ABZCDEFZAGZULHIZJZAKZAUOUMQZJZLUNUPLUQUSUQMULNZKZUOU
      MMGZMKVAOUOUMMRULMPSAUTTUAUBAMURAUTMTMULUCUDVBMURJOUOUMMUEUFUGUIUOUMAUHUJ
      UK $.

    $( The volume of a measurable set is the same as its outer volume.
       (Contributed by Mario Carneiro, 17-Mar-2014.) $)
    mblvol $p |- ( A e. dom vol -> ( vol ` A ) = ( vol* ` A ) ) $=
      ( cvol cdm wcel cfv covol cres volres fveq1i fvres syl5eq ) ABCZDABEAFLGZ
      EAFEABMHIALFJK $.

    $( A measurable set is a subset of the reals.  (Contributed by Mario
       Carneiro, 17-Mar-2014.) $)
    mblss $p |- ( A e. dom vol -> A C_ RR ) $=
      ( vx cvol cdm wcel cr wss cv covol cfv cin cdif caddc co wceq wi cpw wral
      ismbl simplbi ) ACDEAFGBHZIJZFEUBUAAKIJUAALIJMNOPBFQRBAST $.

    $( The defining property of measurability.  (Contributed by Mario Carneiro,
       17-Mar-2014.) $)
    mblsplit $p |- ( ( A e. dom vol /\ B C_ RR /\ ( vol* ` B ) e. RR ) ->
        ( vol* ` B ) = ( ( vol* ` ( B i^i A ) ) + ( vol* ` ( B \ A ) ) ) ) $=
      ( vx cvol cdm wcel cr wss covol cfv cin cdif caddc co wceq cpw reex elpw2
      wi fveq2d cv wral ismbl simprbi fveq2 eleq1d ineq1 difeq1 oveq12d eqeq12d
      imbi12d rspccv syl syl5bir 3imp ) ADEFZBGHZBIJZGFZURBAKZIJZBALZIJZMNZOZUQ
      BGPZFZUPUSVESZBGQRUPCUAZIJZGFZVJVIAKZIJZVIALZIJZMNZOZSZCVFUBZVGVHSUPAGHVS
      CAUCUDVRVHCBVFVIBOZVKUSVQVEVTVJURGVIBIUEZUFVTVJURVPVDWAVTVMVAVOVCMVTVLUTI
      VIBAUGTVTVNVBIVIBAUHTUIUJUKULUMUNUO $.
  $}

  $( The Lebesgue measure is monotone with respect to set inclusion.
     (Contributed by Thierry Arnoux, 17-Oct-2017.) $)
  volss $p |- ( ( A e. dom vol /\ B e. dom vol /\ A C_ B )
    -> ( vol ` A ) <_ ( vol ` B ) ) $=
    ( cvol cdm wss w3a covol cfv cle cr wbr simp3 mblss 3ad2ant2 ovolss syl2anc
    wcel wceq mblvol 3ad2ant1 3brtr4d ) ACDZQZBUBQZABEZFZAGHZBGHZACHZBCHZIUFUEB
    JEZUGUHIKUCUDUELUDUCUKUEBMNABOPUCUDUIUGRUEASTUDUCUJUHRUEBSNUA $.

  ${
    $d x y z A $.  $d x y z B $.
    $( The complement of a measurable set is measurable.  (Contributed by Mario
       Carneiro, 18-Mar-2014.) $)
    cmmbl $p |- ( A e. dom vol -> ( RR \ A ) e. dom vol ) $=
      ( vx cvol cdm wcel cr cdif wss covol cfv cin caddc co wceq mp3an1 3adant1
      ovolsscl recnd syl5eqr fveq2d cv wi cpw wral difssd elpwi w3a inss1 difss
      addcomd mblsplit indifcom simp2 sseqin2 sylib difin difeq2d dfin4 syl6eqr
      ssdifssd oveq12d 3eqtr4d 3expia sylan2 ralrimiva ismbl sylanbrc ) ACDZEZF
      AGZFHBUAZIJZFEZVLVKVJKZIJZVKVJGZIJZLMZNZUBZBFUCZUDVJVHEVIFAUEVIVTBWAVKWAE
      VIVKFHZVTVKFUFVIWBVMVSVIWBVMUGZVKAKZIJZVKAGZIJZLMWGWELMVLVRWCWEWGWCWEWBVM
      WEFEZVIWDVKHWBVMWHVKAUHWDVKQOPRWCWGWBVMWGFEZVIWFVKHWBVMWIVKAUIWFVKQOPRUJA
      VKUKWCVOWGVQWELWCVNWFIWCVNFWFKZWFFVKAULWCWFFHWJWFNWCVKFAVIWBVMUMUTWFFUNUO
      SZTWCVPWDIWCVPVKWFGZWDWCVPVKVNGWLVKVJUPWCVNWFVKWKUQSVKAURUSTVAVBVCVDVEBVJ
      VFVG $.

    $( A nullset is measurable.  (Contributed by Mario Carneiro,
       18-Mar-2014.) $)
    nulmbl $p |- ( ( A C_ RR /\ ( vol* ` A ) = 0 ) -> A e. dom vol ) $=
      ( vx cr wss covol cfv cc0 wceq wa cv wcel cin cdif caddc co cle wi mp3an1
      wbr cpw wral cdm simpl elpwi inss2 ovolssnul adantr oveq1d difss ovolsscl
      cvol adantl recnd addid2d eqtrd simprl ovolss sylancr eqbrtrd expr sylan2
      ralrimiva ismbl2 sylanbrc ) ACDZAEFGHZIZVEBJZEFZCKZVHALZEFZVHAMZEFZNOZVIP
      SZQZBCTZUAAUKUBKVEVFUCVGVQBVRVHVRKVGVHCDZVQVHCUDVGVSVJVPVGVSVJIZIZVOVNVIP
      WAVOGVNNOVNWAVLGVNNVGVLGHZVTVKADVEVFWBVHAUEVKAUFRUGUHWAVNWAVNVTVNCKZVGVMV
      HDZVSVJWCVHAUIZVMVHUJRULUMUNUOWAWDVSVNVIPSWEVGVSVJUPVMVHUQURUSUTVAVBBAVCV
      D $.

    $( A set of outer measure zero is measurable.  The term "outer measure
       zero" here is slightly different from "nullset/negligible set"; a
       nullset has ` vol* ( A ) = 0 ` while "outer measure zero" means that for
       any ` x ` there is a ` y ` containing ` A ` with volume less than
       ` x ` .  Assuming AC, these notions are equivalent (because the
       intersection of all such ` y ` is a nullset) but in ZF this is a
       strictly weaker notion.  Proposition 563Gb of [Fremlin5] p. 193.
       (Contributed by Mario Carneiro, 19-Mar-2015.) $)
    nulmbl2 $p |- ( A. x e. RR+ E. y e. dom vol ( A C_ y /\ ( vol* ` y ) <_ x )
      -> A e. dom vol ) $=
      ( vz wss covol cfv cle wbr wa crp cr wcel cdif caddc co ovolsscl ad2antrr
      syl3anc cun cv cvol cdm wrex wral cin wi cpw c0 wne 1rp ne0ii r19.2z mpan
      c1 simprl mblss adantr sstrd rexlimiva rexlimivw inss1 elpwi simpr difssd
      syl a1i readdcld adantl rpre ad2antlr simprrr simprrl sslin syl5ss ovolss
      ovollecl ssdifssd unssd ovolun syl22anc ssun1 undif1 sseqtr4i ssdif ax-mp
      syl2anc difundir sseqtri difun1 wceq ssequn2 sylib difeq2d syl5eqr uneq1d
      syl5sseq letrd le2addd mblsplit oveq1d recnd addassd eqtrd breqtrrd difss
      sylancr leadd2dd rexlimdvaa ralimdva impcom cxr wb simprr xralrple mpbird
      rexrd expr ralrimiva ismbl2 sylanbrc ) CBUAZEZYBFGZAUAZHIZJZBUBUCZUDZAKUE
      ZCLEZDUAZFGZLMZYLCUFZFGZYLCNZFGZOPZYMHIZUGZDLUHZUECYHMYJYIAKUDZYKKUIUJYJU
      UCUOKUKULYIAKUMUNYIYKAKYGYKBYHYBYHMZYGJZCYBLUUDYCYFUPUUDYBLEZYGYBUQURZUSU
      TVAVFYJUUADUUBYJYLUUBMZYNYTYJUUHYNJZJZYTYSYMYEOPZHIZAKUEZUUIYJUUMUUIYIUUL
      AKUUIYEKMZJZYGUULBYHUUOUUEJZYSYMYBCNZFGZOPZUUKUUIYSLMZUUNUUEUUIYPYRUUIYOY
      LEZYLLEZYNYPLMZUVAUUIYLCVBVGUUHUVBYNYLLVCURZUUHYNVDZYOYLQSZUUIYQYLEUVBYNY
      RLMZUUIYLCVEUVDUVEYQYLQSZVHZRUUPYMUURUUIYNUUNUUEUVERZUUPUUQYBEZUUFYDLMZUU
      RLMZUUPYBCVEUUEUUFUUOUUGVIZUUPUUFYELMZYFUVLUVNUUNUVOUUIUUEYEVJVKZUUOUUDYC
      YFVLZYBYEVQSZUUQYBQSZVHUUPYMYEUVJUVPVHUUPYSYLYBUFZFGZYLYBNZFGZUUROPZOPZUU
      SHUUPYPYRUWAUWDUUIUVCUUNUUEUVFRUUIUVGUUNUUEUVHRZUUPUVTYLEZUVBYNUWALMUWGUU
      PYLYBVBZVGUUIUVBUUNUUEUVDRZUVJUVTYLQSZUUPUWCUURUUPUWBYLEUVBYNUWCLMZUUPYLY
      BVEUWIUVJUWBYLQSZUVSVHZUUPYOUVTEZUVTLEYPUWAHIUUPYCUWNUUOUUDYCYFVMZCYBYLVN
      VFUUPUVTYLLUWHUWIVOYOUVTVPWGUUPYRUWBUUQTZFGZUWDUWFUUPUWPLEZUWDLMUWQUWDHIZ
      UWQLMUUPUWBUUQLUUPYLLYBUWIVRZUUPYBLCUVNVRZVSZUWMUUPUWBLEUWKUUQLEUVMUWSUWT
      UWLUXAUVSUWBUUQVTWAZUWPUWDVQSUWMUUPYQUWPEUWRYRUWQHIUUPUWBCNZUUQTZYQUWPYQU
      WBYBTZCNZUXEYLUXFEYQUXGEYLYLYBTUXFYLYBWBYLYBWCWDYLUXFCWEWFUWBYBCWHWIUUPUX
      DUWBUUQUUPUXDYLYBCTZNUWBYLYBCWJUUPUXHYBYLUUPYCUXHYBWKUWOCYBWLWMWNWOWPWQUX
      BYQUWPVPWGUXCWRWSUUPUUSUWAUWCOPZUUROPUWEUUPYMUXIUUROUUPUUDUVBYNYMUXIWKUUO
      UUDYGUPUWIUVJYBYLWTSXAUUPUWAUWCUURUUPUWAUWJXBUUPUWCUWLXBUUPUURUVSXBXCXDXE
      UUPUURYEYMUVSUVPUVJUUPUURYDYEUVSUVRUVPUUPUVKUUFUURYDHIYBCXFUVNUUQYBVPXGUV
      QWRXHWRXIXJXKUUJYSXLMYNYTUUMXMUUJYSUUIUUTYJUVIVIXQYJUUHYNXNAYSYMXOWGXPXRX
      SDCXTYA $.

    $( A union of measurable sets is measurable.  (Contributed by Mario
       Carneiro, 18-Mar-2014.) $)
    unmbl $p |- ( ( A e. dom vol /\ B e. dom vol ) ->
                  ( A u. B ) e. dom vol ) $=
      ( vx wcel wa cun cr wss covol cfv cin cdif caddc co inss1 ovolsscl mp3an1
      cle adantl syl5ss cvol cdm cv wbr cpw wral mblss anim12i unss sylib elpwi
      wi difss simprl syl2anc readdcld incom indifcom uneq2i indi undif2 ineq2i
      3eqtr2ri fveq2i ovolun syl22anc syl5eqbr leadd1dd simplr mblsplit syl3anc
      eqtri difun1 oveq2i syl6eqr oveq2d simpll simprr addassd 3eqtr4d breqtrrd
      wceq recnd expr sylan2 ralrimiva ismbl2 sylanbrc ) AUAUBZDZBWIDZEZABFZGHZ
      CUCZIJZGDZWOWMKZIJZWOWMLZIJZMNZWPRUDZULZCGUEZUFWMWIDWLAGHZBGHZEWNWJXFWKXG
      AUGBUGUHABGUIUJWLXDCXEWOXEDWLWOGHZXDWOGUKWLXHWQXCWLXHWQEZEZXBWOAKZIJZWOAL
      ZBKZIJZMNZXAMNZWPRXJWSXPXAXIWSGDZWLWRWOHXHWQXRWOWMOWRWOPQSXJXLXOXIXLGDZWL
      XKWOHXHWQXSWOAOZXKWOPQSZXJXMGHZXMIJZGDZXOGDZXJXMWOGWOAUMZWLXHWQUNZTZXIYDW
      LXMWOHXHWQYDYFXMWOPQSZXNXMHYBYDYEXMBOZXNXMPQUOZUPXIXAGDZWLWTWOHXHWQYLWOWM
      UMWTWOPQSZXJWSXKXNFZIJZXPRWRYNIYNXKWOBALZKZFWOAYPFZKWRXNYQXKXNBXMKYQXMBUQ
      BWOAURVLUSWOAYPUTYRWMWOABVAVBVCVDXJXKGHXSXNGHYEYOXPRUDXJXKWOGXTYGTYAXJXNX
      MGYJYHTYKXKXNVEVFVGVHXJXLYCMNZXLXOXAMNZMNWPXQXJYCYTXLMXJYCXOXMBLZIJZMNZYT
      XJWKYBYDYCUUCWBWJWKXIVIYHYIBXMVJVKXAUUBXOMWTUUAIWOABVMVDVNVOVPXJWJXHWQWPY
      SWBWJWKXIVQYGWLXHWQVRAWOVJVKXJXLXOXAXJXLYAWCXJXOYKWCXJXAYMWCVSVTWAWDWEWFC
      WMWGWH $.

    $( A shift of a measurable set is measurable.  (Contributed by Mario
       Carneiro, 22-Mar-2014.) $)
    shftmbl $p |- ( ( A e. dom vol /\ B e. RR ) ->
                  { x e. RR | ( x - B ) e. A } e. dom vol ) $=
      ( vy vz wcel cr wa cv cmin crab wss covol cfv cin cdif caddc a1i ovolshft
      co cvol cdm wceq cpw wral ssrab2 elpwi cneg simpll simprl simplr renegcld
      wi eqidd simprr eqeltrrd mblsplit syl3anc inss1 syl5ss mblss syl shft2rab
      ineq2d inrab wb elin rabbiia eqtr4i syl6eq ssdifssd difeq2d eldif oveq12d
      wn difrab 3eqtr4d expr sylan2 ralrimiva ismbl sylanbrc ) BUAUBZFZCGFZHZAI
      CJTBFZAGKZGLZDIZMNZGFZWKWJWHOZMNZWJWHPZMNZQTZUCZUMZDGUDZUEWHWCFWIWFWGAGUF
      RWFWSDWTWJWTFWFWJGLZWSWJGUGWFXAWLWRWFXAWLHZHZEIZCUHZJTZWJFZEGKZMNZXHBOZMN
      ZXHBPZMNZQTZWKWQXCWDXHGLZXIGFXIXNUCWDWEXBUIZXOXCXGEGUFRXCWKXIGXCEWJXHXEWF
      XAWLUJZXCCWDWEXBUKZULZXCXHUNSZWFXAWLUOUPBXHUQURXTXCWNXKWPXMQXCEWMXJXEXCWM
      WJGWJWHUSXQUTXSXCXJXHXFWHFZEGKZOZXFWMFZEGKZXCBYBXHXCAEBWHCXCWDBGLXPBVAVBX
      RXCWHUNVCZVDYCXGYAHZEGKYEXGYAEGVEYDYGEGYDYGVFXDGFZXFWJWHVGRVHVIVJSXCEWOXL
      XEXCWJGWHXQVKXSXCXLXHYBPZXFWOFZEGKZXCBYBXHYFVLYIXGYAVOHZEGKYKXGYAEGVPYJYL
      EGYJYLVFYHXFWJWHVMRVHVIVJSVNVQVRVSVTDWHWAWB $.
  $}

  $( The empty set is measurable.  (Contributed by Mario Carneiro,
     18-Mar-2014.) $)
  0mbl $p |- (/) e. dom vol $=
    ( c0 cr wss covol cfv cc0 wceq cvol cdm wcel 0ss ovol0 nulmbl mp2an ) ABCAD
    EFGAHIJBKLAMN $.

  $( The set of all real numbers is measurable.  (Contributed by Mario
     Carneiro, 18-Mar-2014.) $)
  rembl $p |- RR e. dom vol $=
    ( cr c0 cdif cvol cdm dif0 wcel 0mbl cmmbl ax-mp eqeltrri ) ABCZADEZAFBMGLM
    GHBIJK $.

  ${
    $( The union of the Lebesgue measurable sets is ` RR ` .  (Contributed by
       Thierry Arnoux, 30-Jan-2017.) $)
    unidmvol $p |- U. dom vol = RR $=
      ( vx cvol cdm cuni cr wss wcel wceq cv unissb mblss mprgbir rembl unissel
      mp2an ) BCZDZEFZEPGQEHRAIZEFAPAPEJSKLMPENO $.
  $}

  $( An intersection of measurable sets is measurable.  (Contributed by Mario
     Carneiro, 18-Mar-2014.) $)
  inmbl $p |- ( ( A e. dom vol /\ B e. dom vol ) -> ( A i^i B ) e. dom vol ) $=
    ( cvol cdm wcel wa cr cdif cun cin difundi wceq mblss dfss4 sylib ineqan12d
    wss syl5eq cmmbl unmbl syl2an syl eqeltrrd ) ACDZEZBUDEZFZGGAHZGBHZIZHZABJZ
    UDUGUKGUHHZGUIHZJULGUHUIKUEUFUMAUNBUEAGQUMALAMAGNOUFBGQUNBLBMBGNOPRUGUJUDEZ
    UKUDEUEUHUDEUIUDEUOUFASBSUHUITUAUJSUBUC $.

  $( A difference of measurable sets is measurable.  (Contributed by Mario
     Carneiro, 18-Mar-2014.) $)
  difmbl $p |- ( ( A e. dom vol /\ B e. dom vol ) -> ( A \ B ) e. dom vol ) $=
    ( cvol cdm wcel wa cr cdif cin wceq indif2 mblss df-ss sylib difeq1d syl5eq
    wss adantr cmmbl inmbl sylan2 eqeltrrd ) ACDZEZBUCEZFAGBHZIZABHZUCUDUGUHJUE
    UDUGAGIZBHUHAGBKUDUIABUDAGQUIAJALAGMNOPRUEUDUFUCEUGUCEBSAUFTUAUB $.

  ${
    $d k x y z A $.  $d x y z B $.
    $( A finite union of measurable sets is measurable.  (Contributed by Mario
       Carneiro, 20-Mar-2014.) $)
    finiunmbl $p |- ( ( A e. Fin /\ A. k e. A B e. dom vol ) ->
                      U_ k e. A B e. dom vol ) $=
      ( vy vx vz cfn wcel wral ciun cv wi c0 cun wceq iuneq1 eleq1d imbi12d weq
      raleq cvol cdm csn 0iun 0mbl eqeltri a1i wss ssun1 ssralv ax-mp imim1i wa
      ssun2 iunxun csb vex csbeq1 ralsn nfv nfcsb1v nfel1 csbeq1a cbvral cbviun
      nfcv iunxsn eqtri eleq1i 3bitr4i unmbl sylan2b syl5eqel expcom syl sylcom
      findcard2 imp ) AGHBUAUBZHZCAIZCABJZVSHZVTCDKZIZCWDBJZVSHZLVTCMIZCMBJZVSH
      ZLVTCEKZIZCWKBJZVSHZLZVTCWKFKZUCZNZIZCWRBJZVSHZLZWAWCLDEFAWDMOZWEWHWGWJVT
      CWDMTXCWFWIVSCWDMBPQRDESZWEWLWGWNVTCWDWKTXDWFWMVSCWDWKBPQRWDWROZWEWSWGXAV
      TCWDWRTXEWFWTVSCWDWRBPQRWDAOZWEWAWGWCVTCWDATXFWFWBVSCWDABPQRWJWHWIMVSCBUD
      UEUFUGWOXBLWKGHWOWSWNXAWSWLWNWKWRUHWSWLLWKWQUIVTCWKWRUJUKULWSVTCWQIZWNXAL
      WQWRUHWSXGLWQWKUNVTCWQWRUJUKWNXGXAWNXGUMWTWMCWQBJZNZVSCWKWQBUOXGWNXHVSHZX
      IVSHCWKBUPZVSHZEWQICWPBUPZVSHZXGXJXLXNEWPFUQZEFSXKXMVSCWKWPBURZQUSVTXLCEW
      QVTEUTCXKVSCWKBVAZVBCESBXKVSCWKBVCZQVDXHXMVSXHEWQXKJXMCEWQBXKEBVFXQXRVEEW
      PXKXMXOXPVGVHVIVJWMXHVKVLVMVNVOVPUGVQVR $.
  $}

  $( The Lebesgue measure function is finitely additive.  (Contributed by Mario
     Carneiro, 18-Mar-2014.) $)
  volun $p |- ( ( ( A e. dom vol /\ B e. dom vol /\ ( A i^i B ) = (/) ) /\
                  ( ( vol ` A ) e. RR /\ ( vol ` B ) e. RR ) ) ->
                ( vol ` ( A u. B ) ) = ( ( vol ` A ) + ( vol ` B ) ) ) $=
    ( cvol wcel cin c0 wceq cfv cr wa cun caddc covol cdif wss mblss syl mblvol
    co eqtri cdm w3a simpl1 simpl2 unssd cle wbr readdcl adantl simprl syl22anc
    simprr ovolun ovollecl syl3anc mblsplit indir inidm incom uneq12i unabs a1i
    simpl3 fveq2d eqeq1i disj3 bitr3i biimpi uncom difeq1i difun2 oveq12d eqtrd
    syl6reqr ex wb eleq1d bi2anan9 3adant3 unmbl oveqan12d eqeq12d 3imtr4d imp
    ) ACUAZDZBWEDZABEZFGZUBZACHZIDZBCHZIDZJZABKZCHZWKWMLSZGZWJAMHZIDZBMHZIDZJZW
    PMHZWTXBLSZGZWOWSWJXDXGWJXDJZXEWPAEZMHZWPANZMHZLSZXFXHWFWPIOZXEIDZXEXMGWFWG
    WIXDUCZXHABIXHWFAIOZXPAPQZXHWGBIOZWFWGWIXDUDBPQZUEZXHXNXFIDZXEXFUFUGZXOYAXD
    YBWJWTXBUHUIXHXQXAXSXCYCXRWJXAXCUJXTWJXAXCULABUMUKWPXFUNUOAWPUPUOXHWIXMXFGW
    FWGWIXDVCWIXJWTXLXBLWIXIAMXIAGWIXIAAEZBAEZKZAABAUQYFAWHKAYDAYEWHAURBAUSZUTA
    BVATTVBVDWIXKBMWIBBANZXKWIBYHGZWIYEFGYIYEWHFYGVEBAVFVGVHXKBAKZANYHWPYJAABVI
    VJBAVKTVNVDVLQVMVOWFWGWOXDVPWIWFWLXAWGWNXCWFWKWTIARZVQWGWMXBIBRZVQVRVSWFWGW
    SXGVPWIWFWGJZWQXEWRXFYMWPWEDWQXEGABVTWPRQWFWGWKWTWMXBLYKYLWAWBVSWCWD $.

  $( Addition of non-disjoint sets.  (Contributed by Mario Carneiro,
     25-Mar-2015.) $)
  volinun $p |- ( ( ( A e. dom vol /\ B e. dom vol ) /\
                  ( ( vol ` A ) e. RR /\ ( vol ` B ) e. RR ) ) ->
    ( ( vol ` A ) + ( vol ` B ) ) =
      ( ( vol ` ( A i^i B ) ) + ( vol ` ( A u. B ) ) ) ) $=
    ( cvol wcel wa cfv cr caddc co cin cdif cun wceq eqtri a1i covol mblvol wss
    c0 recnd cdm inundif fveq2i inmbl adantr difmbl difin0 ineq2i in0 syl inss1
    indifcom ad2antrr simprl eqeltrrd ovolsscl syl3anc eqeltrd syl32anc syl5eqr
    mblss difssd volun oveq1d simprr addassd undif1 simplr incom disjdif oveq2d
    syl5reqr 3eqtrd ) ACUAZDZBVNDZEZACFZGDZBCFZGDZEZEZVRVTHIABJZCFZABKZCFZHIZVT
    HIWEWGVTHIZHIWEABLZCFZHIWCVRWHVTHWCVRWDWFLZCFZWHWLACABUBUCWCWDVNDZWFVNDZWDW
    FJZSMZWEGDWGGDZWMWHMVQWNWBABUDUEZVQWOWBABUFUEZWQWCWPAWDBKZJZSWDABULXBASJSXA
    SAABUGUHAUINNOWCWEWDPFZGWCWNWEXCMWSWDQUJWCWDARZAGRZAPFZGDZXCGDXDWCABUKOVOXE
    VPWBAVAUMZWCVRXFGVOVRXFMVPWBAQUMVQVSWAUNUOZWDAUPUQURZWCWGWFPFZGWCWOWGXKMWTW
    FQUJWCWFARXEXGXKGDWCABVBXHXIWFAUPUQURZWDWFVCUSUTVDWCWEWGVTWCWEXJTWCWGXLTWCV
    TVQVSWAVEZTVFWCWIWKWEHWCWKWFBLZCFZWIXNWJCABVGUCWCWOVPWFBJZSMZWRWAXOWIMWTVOV
    PWBVHXQWCXPBWFJSWFBVIBAVJNOXLXMWFBVCUSVLVKVM $.

  ${
    $d k m n w y z A $.  $d m n w y z B $.
    $( The volume of a disjoint finite union of measurable sets is the sum of
       the measures.  (Contributed by Mario Carneiro, 25-Jun-2014.)  (Revised
       by Mario Carneiro, 11-Dec-2016.) $)
    volfiniun $p |- ( ( A e. Fin /\
                        A. k e. A ( B e. dom vol /\ ( vol ` B ) e. RR ) /\
                        Disj_ k e. A B ) ->
                      ( vol ` U_ k e. A B ) = sum_ k e. A ( vol ` B ) ) $=
      ( vz vm wcel cvol cfv cr wa wral wdisj ciun csu wceq wi c0 anbi12d fveq2d
      syl vw vy vn cfn cdm cv csn cun disjeq1 iuneq1 sumeq1 eqeq12d imbi12d weq
      raleq cc0 covol 0mbl mblvol ax-mp ovol0 eqtri 0iun fveq2i sum0 3eqtr4i wn
      a1i wss ssun1 ssralv disjss1 anim12i imim1i csb caddc co oveq1 iunxun vex
      csbeq1 iunxsn uneq2i cin nfcv nfcsb1v csbeq1a cbviun simpll simprl ralimi
      simpl mpsyl finiunmbl syl5eqelr ssun2 vsnid sselii nfel1 nffv nfan eleq1d
      syl2anc rspc simpld simplr elin wrex eliun w3a simplrr sylib simpr1 elun1
      cbvdisj simpr2 simpr3 disji syl122anc eqeltrrd 3exp2 rexlimdv syl5bi impd
      mtod eq0rdv cle wbr nfv cbvral mblss sylan2 ralrimiva sylibr simprd recnd
      r19.21bi cvv cbvsumi eqeq12i iunss biimpa fsumrecl jca ovolfiniun syl3anc
      adantr ovollecl eqeltrd volun syl32anc syl5eq disjsn eqidd snfi fsumsplit
      unfi sylancl cc sumsn sylancr oveq2d eqtrd syl5ibr 3imtr4g a2d findcard2s
      ex syl5 3impib ) AUDFBGUEZFZBGHZIFZJZCAKZCABLZCABMZGHZAUVMCNZOZUVOCUAUFZK
      ZCUWBBLZJZCUWBBMZGHZUWBUVMCNZOZPUVOCQKZCQBLZJZCQBMZGHZQUVMCNZOZPUVOCUBUFZ
      KZCUWQBLZJZCUWQBMZGHZUWQUVMCNZOZPZUVOCUWQDUFZUGZUHZKZCUXHBLZJZCUXHBMZGHZU
      XHUVMCNZOZPZUVPUVQJZUWAPUAUBDAUWBQOZUWEUWLUWIUWPUXRUWCUWJUWDUWKUVOCUWBQUO
      CUWBQBUIRUXRUWGUWNUWHUWOUXRUWFUWMGCUWBQBUJSUWBQUVMCUKULUMUAUBUNZUWEUWTUWI
      UXDUXSUWCUWRUWDUWSUVOCUWBUWQUOCUWBUWQBUIRUXSUWGUXBUWHUXCUXSUWFUXAGCUWBUWQ
      BUJSUWBUWQUVMCUKULUMUWBUXHOZUWEUXKUWIUXOUXTUWCUXIUWDUXJUVOCUWBUXHUOCUWBUX
      HBUIRUXTUWGUXMUWHUXNUXTUWFUXLGCUWBUXHBUJSUWBUXHUVMCUKULUMUWBAOZUWEUXQUWIU
      WAUYAUWCUVPUWDUVQUVOCUWBAUOCUWBABUIRUYAUWGUVSUWHUVTUYAUWFUVRGCUWBABUJSUWB
      AUVMCUKULUMUWPUWLQGHZUPUWNUWOUYBQUQHZUPQUVKFUYBUYCOURQUSUTVAVBUWMQGCBVCVD
      UVMCVEVFVHUXEUXKUXDPUWQUDFZUXFUWQFZVGZJZUXPUXKUWTUXDUXIUWRUXJUWSUWQUXHVIZ
      UXIUWRPUWQUXGVJZUVOCUWQUXHVKUTUYHUXJUWSPUYICUWQUXHBVLUTVMVNUYGUXKUXDUXOUY
      GUXKUXDUXOPUYGUXKJZEUWQCEUFZBVOZMZGHZUWQUYLGHZENZOZEUXHUYLMZGHZUXHUYOENZO
      ZUXDUXOUYQVUAUYJUYNCUXFBVOZGHZVPVQZUYPVUCVPVQZOUYNUYPVUCVPVRUYJUYSVUDUYTV
      UEUYJUYSUYMVUBUHZGHZVUDUYRVUFGUYRUYMEUXGUYLMZUHVUFEUWQUXGUYLVSVUHVUBUYMEU
      XFUYLVUBDVTZCUYKUXFBWAZWBWCVBVDUYJUYMUVKFZVUBUVKFZUYMVUBWDZQOUYNIFVUCIFZV
      UGVUDOUYJUYMUXAUVKCEUWQBUYLEBWEZCUYKBWFZCUYKBWGZWHZUYJUYDUVLCUWQKZUXAUVKF
      UYDUYFUXKWIZUYHUYJUVLCUXHKZVUSUYIUYJUXIVVAUYGUXIUXJWJZUVOUVLCUXHUVLUVNWLW
      KTUVLCUWQUXHVKWMUWQBCWNXCWOZUYJVULVUNUXFUXHFZUYJUXIVULVUNJZUXGUXHUXFUXGUW
      QWPDWQWRZVVBUVOVVECUXFUXHVULVUNCCVUBUVKCUXFBWFZWSCVUCICVUBGCGWEZVVGWTWSXA
      CDUNZUVLVULUVNVUNVVIBVUBUVKCUXFBWGZXBVVIUVMVUCIVVIBVUBGVVJSXBRXDWMZXEUYJU
      AVUMUYJUWBVUMFZUYEUYDUYFUXKXFZVVLUWBUYMFZUWBVUBFZJUYJUYEUWBUYMVUBXGUYJVVN
      VVOUYEVVNUWBUYLFZEUWQXHUYJVVOUYEPZEUWBUWQUYLXIUYJVVPVVQEUWQUYJUYKUWQFZVVP
      VVOUYEUYJVVRVVPVVOXJZJZUYKUXFUWQVVTUCUXHCUCUFZBVOZLZUYKUXHFZVVDVVPVVOEDUN
      ZVVTUXJVWCUYGUXIUXJVVSXKCUCUXHBVWBUCBWECVWABWFCVWABWGXOXLVVTVVRVWDUYJVVRV
      VPVVOXMZUYKUWQUXGXNZTVVDVVTVVFVHUYJVVRVVPVVOXPUYJVVRVVPVVOXQUCUXHVWBUYLVU
      BUYKUXFUWBCVWAUYKBWACVWAUXFBWAXRXSVWFXTYAYBYCYDYCYEYFUYJUYNUYMUQHZIUYJVUK
      UYNVWHOVVCUYMUSTUYJUYMIVIZUWQUYLUQHZENZIFVWHVWKYGYHZVWHIFUYJUYLIVIZEUWQKV
      WIUYJVWMEUWQVVRUYJVWDVWMVWGUYJVWDJZUYLUVKFZVWMVWNVWOUYOIFZUYJVWOVWPJZEUXH
      UYJUXIVWQEUXHKZVVBUVOVWQCEUXHUVOEYIVWOVWPCCUYLUVKVUPWSCUYOICUYLGVVHVUPWTZ
      WSXACEUNZUVLVWOUVNVWPVWTBUYLUVKVUQXBVWTUVMUYOIVWTBUYLGVUQSZXBRYJXLZYQZXEU
      YLYKZTYLYMEUWQUYLIUUAYNUYJUWQVWJEVUTVVRUYJVWDVWJIFZVWGVWNVWQVXEVXCVWOVWPV
      XEVWOUYOVWJIUYLUSXBUUBZTYLUUCUYJUYDVWMVXEJZEUWQKZVWLVUTUYHUYJVXGEUXHKZVXH
      UYIUYJVWRVXIVXBVWQVXGEUXHVWQVWMVXEVWOVWMVWPVXDUUGVXFUUDWKTVXGEUWQUXHVKWMU
      WQUYLEUUEXCUYMVWKUUHUUFUUIUYJVULVUNVVKYOZUYMVUBUUJUUKUULUYJUYTUYPUXGUYOEN
      ZVPVQVUEUYJUWQUXGUYOUXHEUYJUYFUWQUXGWDQOVVMUWQUXFUUMYNUYJUXHUUNUYJUYDUXGU
      DFUXHUDFVUTUXFUUOUWQUXGUUQUURVWNUYOVWNVWOVWPVXCYOYPUUPUYJVXKVUCUYPVPUYJUX
      FYRFVUCUUSFVXKVUCOVUIUYJVUCVXJYPUYOVUCEUXFYRVWEUYLVUBGVUJSUUTUVAUVBUVCULU
      VDUXBUYNUXCUYPUXAUYMGVURVDUWQUVMUYOCEEUVMWEZVWSVXAYSYTUXMUYSUXNUYTUXLUYRG
      CEUXHBUYLVUOVUPVUQWHVDUXHUVMUYOCEVXLVWSVXAYSYTUVEUVHUVFUVIUVGUVJ $.
  $}

  ${
    $d a b k n x y $.  $d a b k m x y A $.  $d a b m n x y B $.
    iundisj.1 $e |- ( n = k -> A = B ) $.
    $( Rewrite a countable union as a disjoint union.  (Contributed by Mario
       Carneiro, 20-Mar-2014.) $)
    iundisj $p |- U_ n e. NN A = U_ n e. NN ( A \ U_ k e. ( 1 ..^ n ) B ) $=
      ( vx vm cn ciun c1 cv cfzo co wcel wrex cr clt nfcv wceq eleq2d cdif crab
      csb cinf wa cuz cfv wss wne ssrab2 nnuz sseqtri biimpri infssuzcl sylancr
      c0 rabn0 nfrab1 nfinf nfcsb1 nfcri csbeq1a elrabf sylib simpld simprd wbr
      nnred ltnrd eliun ad2antrr elfzouz syl6eleqr ad2antlr cle simpr infssuzle
      elrab sylanbrc elfzolt2 lelttrd rexlimdva syl5bi mtod eldifd csbeq1 oveq2
      ex iuneq1d difeq12d rspcev syl2anc nfv nfcsb1v nfdif cbvrex sylibr eldifi
      reximi impbii 3bitr4i eqriv ) FDHAIZDHACJDKZLMZBIZUAZIZFKZANZDHOZXIXGNZDH
      OZXIXCNXIXHNXKXMXKXIDGKZAUCZCJXNLMZBIZUAZNZGHOZXMXKXJDHUBZPQUDZHNZXIDYBAU
      CZCJYBLMZBIZUAZNZXTXKYCXIYDNZXKYBYANZYCYIUEXKYAJUFUGZUHZYAUPUIZYJYAHYKXJD
      HUJUKULZYMXKXJDHUQUMYAJUNUOXJYIDYBHDYAPQXJDHURDPRDQRUSZDHRDFYDDYBAYOUTVAX
      DYBSAYDXIDYBAVBTVCVDZVEZXKXIYDYFXKYCYIYPVFXKXIYFNZYBYBQVGZXKYBXKYBYQVHZVI
      YRXIBNZCYEOXKYSCXIYEBVJXKUUAYSCYEXKCKZYENZUEZUUAYSUUDUUAUEZYBUUBYBXKYBPNU
      UCUUAYTVKZUUEUUBUUCUUBHNZXKUUAUUCUUBYKHUUBJYBVLUKVMVNZVHUUFUUEYLUUBYANZYB
      UUBVOVGYNUUEUUGUUAUUIUUHUUDUUAVPXJUUADUUBHXDUUBSABXIETVRVSUUBYAJVQUOUUCUU
      BYBQVGXKUUAUUBJYBVTVNWAWHWBWCWDWEXSYHGYBHXNYBSZXRYGXIUUJXOYDXQYFDXNYBAWFU
      UJCXPYEBXNYBJLWGWIWJTWKWLXLXSDGHXLGWMDFXRDXOXQDXNAWNDXQRWOVAXDXNSZXGXRXIU
      UKAXOXFXQDXNAVBUUKCXEXPBXDXNJLWGWIWJTWPWQXLXJDHXIAXFWRWSWTDXIHAVJDXIHXGVJ
      XAXB $.

    $( A disjoint union is disjoint.  (Contributed by Mario Carneiro,
       4-Jul-2014.)  (Revised by Mario Carneiro, 11-Dec-2016.) $)
    iundisj2 $p |- Disj_ n e. NN ( A \ U_ k e. ( 1 ..^ n ) B ) $=
      ( vx vy va vb cn c1 cv cfzo weq csb cin c0 wtru wcel wss co ciun wdisj wo
      cdif wceq wral wa tru eqeq12 csbeq1 ineqan12d eqeq1d orbi12d equcom incom
      syl6bb syl6eq cr nnssre a1i biidd cle wbr w3a wn wne nesym clt wb nnre id
      leltne syl3an wi nfcsb1v nfcv nfdif csbeq1a oveq2 iuneq1d difeq12d csbief
      vex ineq12i cuz cfv simp1 nnuz syl6eleq simp2 nnzd simp3 elfzo2 syl3anbrc
      cz csbhypf equcoms eqcomd ssiun2s ssdifssd ssrin syl5eqss disjdif sylancl
      syl 3expia 3adant3 sylbird syl5bir orrd adantl wlogle mpan rgen2a disjors
      sseq0 mpbir ) DJACKDLZMUAZBUBZUEZUCFGNZDFLZYBOZDGLZYBOZPZQUFZUDZGJUGFJUGY
      JFGJRYDJSZYFJSZUHZYJUIRHINZDHLZYBOZDILZYBOZPZQUFZUDYJYJFGHIJHFNZIGNZUHZYN
      YCYTYIYOYDYQYFUJUUCYSYHQUUAUUBYPYEYRYGDYOYDYBUKDYQYFYBUKULUMUNHGNZIFNZUHZ
      YNYCYTYIUUFYNGFNYCYOYFYQYDUJGFUOUQUUFYSYHQUUFYSYGYEPYHUUDUUEYPYGYRYEDYOYF
      YBUKDYQYDYBUKULYGYEUPURUMUNJUSTRUTVARYMUHYJVBYKYLYDYFVCVDZVEZYJRUUHYCYIYC
      VFYFYDVGZUUHYIYFYDVHUUHUUIYDYFVIVDZYIYKYDUSSYLYFUSSUUGUUGUUJUUIVJYDVKYFVK
      UUGVLYDYFVMVNYKYLUUJYIVOUUGYKYLUUJYIYKYLUUJVEZYHCKYFMUAZBUBZDYFAOZUUMUEZP
      ZTUUPQUFYIUUKYHDYDAOZCKYDMUAZBUBZUEZUUOPZUUPYEUUTYGUUODYDYBUUTFWDDUUQUUSD
      YDAVPDUUSVQVRDFNZAUUQYAUUSDYDAVSUVBCXTUURBXSYDKMVTWAWBWCDYFYBUUOGWDDUUNUU
      MDYFAVPDUUMVQVRDGNZAUUNYAUUMDYFAVSUVCCXTUULBXSYFKMVTWAWBWCWEUUKUUTUUMTUVA
      UUPTUUKUUQUUMUUSUUKYDUULSZUUQUUMTUUKYDKWFWGZSYFWPSUUJUVDUUKYDJUVEYKYLUUJW
      HWIWJUUKYFYKYLUUJWKWLYKYLUUJWMYDKYFWNWOCUULBYDUUQCFNUUQBUUQBUFFCDFCLZABDU
      VFVQDBVQEWQWRWSWTXFXAUUTUUMUUOXBXFXCUUMUUNXDYHUUPXQXEXGXHXIXJXKXLXMXNXODJ
      YBFGXPXR $.
  $}

  ${
    $d k n z E $.  $d i k n x z F $.  $d k G $.  $d k z H $.  $d k x z S $.
    $d k n x z ph $.
    voliunlem.3 $e |- ( ph -> F : NN --> dom vol ) $.
    voliunlem.5 $e |- ( ph -> Disj_ i e. NN ( F ` i ) ) $.
    ${
      voliunlem1.6 $e |- H = ( n e. NN |-> ( vol* ` ( E i^i ( F ` n ) ) ) ) $.
      voliunlem1.7 $e |- ( ph -> E C_ RR ) $.
      voliunlem1.8 $e |- ( ph -> ( vol* ` E ) e. RR ) $.
      $( Lemma for ~ voliun .  (Contributed by Mario Carneiro, 20-Mar-2014.) $)
      voliunlem1 $p |- ( ( ph /\ k e. NN ) -> ( ( seq 1 ( + , H ) ` k ) +
                         ( vol* ` ( E \ U. ran F ) ) ) <_ ( vol* ` E ) ) $=
        ( cn wcel c1 co cfv covol caddc wceq vz cfz ciun cin crn cuni cdif cseq
        cv wa cle cr wss adantr difss ovolsscl mp3an1 syl2anc inss1 wral elfznn
        wbr wfn cvol cdm ffn syl fnfvelrn sylan elssuni sylan2 ralrimiva sylibr
        wf iunss sscond syl5ss ovolss leadd2dd oveq2 eleq1d ineq2d fveq2d fveq2
        wi iuneq1d eqeq12d anbi12d imbi2d csn cz 1z fzsn iuneq1 mp2b 1ex iunxsn
        eqtri 1nn ffvelrn syl5eqel fvex fvmpt ax-mp seq1 ineq2i fveq2i 3eqtr4ri
        sylancl jctir cun peano2nn syl2an unmbl syl5com cuz simpr nnuz syl6eleq
        ex fzsuc 3syl iunxun uneq2i syl6eq sylibrd oveq1 mblsplit syl3anc inss2
        ovex in32 adantl eluzfz2 ssiun2s df-ss c0 wb mpbid recnd syl5eq syl6req
        sylib indif2 uncom wdisj wne ad2antrr nnred clt elfzle2 nnleltp1 disji2
        gtned syl121anc iuneq2dv iun0 3eqtr3g uneqdifeq syl5eqr oveq12d addcomd
        iunin2 3eqtrd seqp1 oveq2d eqtrd syl5ibr expcom a2d nnind impcom simprd
        anim12d eqcomd oveq1d simpld 3brtr4d ) ACUIZMNZUJZEDOUVSUBPZDUIZFQZUCZU
        DZRQZEFUEZUFZUGZRQZSPUWGEUWEUGZRQZSPZUVSSGOUHZQZUWKSPERQZUKUWAUWKUWMUWG
        UWAEULUMZUWQULNZUWKULNZAUWRUVTKUNZAUWSUVTLUNZUWJEUMUWRUWSUWTEUWIUOUWJEU
        PUQURUWAUWRUWSUWMULNZUXAUXBUWLEUMUWRUWSUXCEUWEUOZUWLEUPUQURUWAUWRUWSUWG
        ULNZUXAUXBUWFEUMUWRUWSUXEEUWEUSUWFEUPUQURZUWAUWJUWLUMUWLULUMUWKUWMUKVBU
        WAUWEUWIEUWAUWDUWIUMZDUWBUTZUWEUWIUMAUXHUVTAUXGDUWBUWCUWBNZAUWCMNZUXGUW
        CUVSVAZAUXJUJUWDUWHNZUXGAFMVCZUXJUXLAMVDVEZFVNZUXMHMUXNFVFVGMUWCFVHVIUW
        DUWHVJVGVKVLUNDUWBUWDUWIVOVMVPUWAUWLEULUXDUXAVQUWJUWLVRURVSUWAUWPUWGUWK
        SUWAUWGUWPUWAUWEUXNNZUWGUWPTZUVTAUXPUXQUJZADOUAUIZUBPZUWDUCZUXNNZEUYAUD
        ZRQZUXSUWOQZTZUJZWEADOOUBPZUWDUCZUXNNZEUYIUDZRQZOUWOQZTZUJZWEAUXRWEZADO
        UVSOSPZUBPZUWDUCZUXNNZEUYSUDZRQZUYQUWOQZTZUJZWEUYPUACUVSUXSOTZUYGUYOAVU
        FUYBUYJUYFUYNVUFUYAUYIUXNVUFDUXTUYHUWDUXSOOUBVTWFZWAVUFUYDUYLUYEUYMVUFU
        YCUYKRVUFUYAUYIEVUGWBWCUXSOUWOWDWGWHWIUXSUVSTZUYGUXRAVUHUYBUXPUYFUXQVUH
        UYAUWEUXNVUHDUXTUWBUWDUXSUVSOUBVTWFZWAVUHUYDUWGUYEUWPVUHUYCUWFRVUHUYAUW
        EEVUIWBWCUXSUVSUWOWDWGWHWIZUXSUYQTZUYGVUEAVUKUYBUYTUYFVUDVUKUYAUYSUXNVU
        KDUXTUYRUWDUXSUYQOUBVTWFZWAVUKUYDVUBUYEVUCVUKUYCVUARVUKUYAUYSEVULWBWCUX
        SUYQUWOWDWGWHWIVUJAUYJUYNAUYIOFQZUXNUYIDOWJZUWDUCZVUMOWKNZUYHVUNTUYIVUO
        TWLOWMDUYHVUNUWDWNWODOUWDVUMWPUWCOFWDZWQWRZAUXOOMNZVUMUXNNHWSMUXNOFWTXI
        XAOGQZEVUMUDZRQZUYMUYLVUSVUTVVBTWSDOEUWDUDZRQZVVBMGUWCOTZVVCVVARVVEUWDV
        UMEVUQWBWCJVVARXBXCXDVUPUYMVUTTWLSGOXEXDUYKVVARUYIVUMEVURXFXGXHXJUVTAUX
        RVUEAUVTUXRVUEWEUWAUXPUYTUXQVUDUWAUXPUWEUYQFQZXKZUXNNZUYTUWAVVFUXNNZUXP
        VVHAUXOUYQMNZVVIUVTHUVSXLZMUXNUYQFWTXMZUXPVVIVVHUWEVVFXNXTXOUWAUYSVVGUX
        NUWAUYSDUWBUYQWJZXKZUWDUCZVVGUWAUVSOXPQZNZUYRVVNTUYSVVOTUWAUVSMVVPAUVTX
        QZXRXSZOUVSYADUYRVVNUWDWNYBVVOUWEDVVMUWDUCZXKVVGDUWBVVMUWDYCVVTVVFUWEDU
        YQUWDVVFUVSOSYKUWCUYQFWDZWQYDWRYEZWAYFUXQVUDUWAUWGEVVFUDZRQZSPZUWPVWDSP
        ZTUWGUWPVWDSYGUWAVUBVWEVUCVWFUWAVUBVUAVVFUDZRQZVUAVVFUGZRQZSPZVWDUWGSPV
        WEUWAVVIVUAULUMVUBULNZVUBVWKTVVLUWAVUAEULEUYSUSZUXAVQUWAUWRUWSVWLUXAUXB
        VUAEUMUWRUWSVWLVWMVUAEUPUQURVVFVUAYHYIUWAVWHVWDVWJUWGSUWAVWGVWCRUWAVWGV
        WCUYSUDZVWCEUYSVVFYLUWAVWCUYSUMVWNVWCTUWAVWCVVFUYSEVVFYJUWAUYQVVPNUYQUY
        RNVVFUYSUMZUWAUYQMVVPUVTVVJAVVKYMZXRXSOUYQYNDUYRUWDUYQVVFVWAYOYBZVQVWCU
        YSYPUUCUUAWCUWAVWIUWFRUWAVWIEUYSVVFUGZUDUWFEUYSVVFUUDUWAVWRUWEEUWAVVFUW
        EXKZUYSTZVWRUWETZUWAUYSVVGVWSVWBUWEVVFUUEUUBUWAVWOVVFUWEUDZYQTVWTVXAYRV
        WQUWADUWBVVFUWDUDZUCDUWBYQUCVXBYQUWADUWBVXCYQUWAUXIUJZBMBUIZFQZUUFZVVJU
        XJUYQUWCUUGVXCYQTAVXGUVTUXIIUUHUWAVVJUXIVWPUNUXIUXJUWAUXKYMZVXDUWCUYQVX
        DUWCVXHUUIVXDUWCUVSUKVBZUWCUYQUUJVBZUXIVXIUWAUWCOUVSUUKYMVXDUXJUVTVXIVX
        JYRVXHUWAUVTUXIVVRUNUWCUVSUULURYSUUNBMVXFVVFUWDUYQUWCVXEUYQFWDVXEUWCFWD
        UUMUUOUUPDUWBVVFUWDUVCDUWBUUQUURVVFUWEUYSUUSURYSWBUUTWCUVAUWAVWDUWGUWAV
        WDUWAUWRUWSVWDULNZUXAUXBVWCEUMUWRUWSVXKEVVFUSVWCEUPUQURYTUWAUWGUXFYTUVB
        UVDUWAVUCUWPUYQGQZSPZVWFUWAVVQVUCVXMTVVSSGOUVSUVEVGUWAVXLVWDUWPSUWAVVJV
        XLVWDTVWPDUYQVVDVWDMGUWCUYQTZVVCVWCRVXNUWDVVFEVWAWBWCJVWCRXBXCVGUVFUVGW
        GUVHUVNUVIUVJUVKUVLZUVMUVOUVPUWAUXPUWRUWSUWQUWNTUWAUXPUXQVXOUVQUXAUXBUW
        EEYHYIUVR $.
    $}

    voliunlem.6 $e |- H = ( n e. NN |-> ( vol* ` ( x i^i ( F ` n ) ) ) ) $.
    $( Lemma for ~ voliun .  (Contributed by Mario Carneiro, 20-Mar-2014.) $)
    voliunlem2 $p |- ( ph -> U. ran F e. dom vol ) $=
      ( vk cr wss cv covol cfv wcel cn cle wbr cxr crn cuni cin cdif caddc wceq
      vz co wi cpw wral cvol cdm wf frn mblss selpw sylibr ssriv syl6ss sspwuni
      syl sylib elpwi w3a cun inundif fveq2i inss1 simp2 syl5ss ovolsscl mp3an1
      3adant1 difss ovolun syl22anc syl5eqbrr cmin c1 cseq csup rexrd nnuz 1zzd
      clt wa fveq2 ineq2d fveq2d fvex fvmpt adantl adantr eqeltrd serfre ressxr
      supxrcl resubcld ciun iunin2 wfn ffn fniunfv 3syl 3ad2ant1 syl5eq ovoliun
      simp3 eqid eqbrtrrd wdisj voliunlem1 wb ffvelrnda simpl3 leaddsub syl3anc
      mpbid ralrimiva breq1 mpbird supxrleub syl2anc xrletrd readdcld mpbir2and
      ralrn letri3d 3expia sylan2 ismbl sylanbrc ) AEUAZUBZKLZBMZNOZKPZYRYQYOUC
      ZNOZYQYOUDZNOZUEUHZUFZUIZBKUJZUKYOULUMZPAYNUUGLYPAYNUUHUUGAQUUHEUNZYNUUHL
      GQUUHEUOVBBUUHUUGYQUUHPYQKLZYQUUGPZYQUPBKUQURUSUTYNKVAVCAUUFBUUGUUKAUUJUU
      FYQKVDAUUJYSUUEAUUJYSVEZUUEYRUUDRSUUDYRRSZUULYRYTUUBVFZNOZUUDRUUNYQNYQYOV
      GVHUULYTKLUUAKPZUUBKLUUCKPZUUOUUDRSUULYTYQKYQYOVIZAUUJYSVJZVKUUJYSUUPAYTY
      QLUUJYSUUPUURYTYQVLVMVNZUULUUBYQKYQYOVOZUUSVKUUJYSUUQAUUBYQLUUJYSUUQUVAUU
      BYQVLVMVNZYTUUBVPVQVRUULUUMUUAYRUUCVSUHZRSZUULUUAUEFVTWAZUAZTWFWBZUVCUULU
      UAUUTWCUULUVFTLZUVGTPUULUVFKTUULQKUVEUNZUVFKLUULJFVTQWDUULWEUULJMZQPZWGZU
      VJFOZYQUVJEOZUCZNOZKUVKUVMUVPUFUULDUVJYQDMZEOZUCZNOZUVPQFUVQUVJUFZUVSUVON
      UWAUVRUVNYQUVQUVJEWHWIWJIUVONWKWLWMUULUVPKPZUVKUUJYSUWBAUVOYQLUUJYSUWBYQU
      VNVIUVOYQVLVMVNWNWOWPZQKUVEUOVBWQUTZUVFWRVBUULUVCUULYRUUCAUUJYSXIZUVBWSWC
      ZUULDQUVSWTZNOUUAUVGRUULUWGYTNUULUWGYQDQUVRWTZUCYTDQYQUVRXAUULUWHYOYQAUUJ
      UWHYOUFZYSAUUIEQXBUWIGQUUHEXCDQEXDXEXFWIXGWJUULUVSUVEDFUVEXJIUULUVSKLUVQQ
      PZUULUVSYQKYQUVRVIZUUSVKWNUULUVTKPZUWJUUJYSUWLAUVSYQLUUJYSUWLUWKUVSYQVLVM
      VNWNXHXKUULUVGUVCRSZUGMZUVCRSZUGUVFUKZUULUWPUVJUVEOZUVCRSZJQUKZUULUWRJQUV
      LUWQUUCUEUHYRRSZUWRUULCJDYQEFAUUJUUIYSGXFAUUJCQCMEOXLYSHXFIUUSUWEXMUVLUWQ
      KPUUQYSUWTUWRXNUULQKUVJUVEUWCXOUULUUQUVKUVBWNAUUJYSUVKXPUWQUUCYRXQXRXSXTU
      ULUVIUVEQXBUWPUWSXNUWCQKUVEXCUWOUWRUGJQUVEUWNUWQUVCRYAYHXEYBUULUVHUVCTPUW
      MUWPXNUWDUWFUGUVFUVCYCYDYBYEUULUUPUUQYSUUMUVDXNUUTUVBUWEUUAUUCYRXQXRYBUUL
      YRUUDUWEUULUUAUUCUUTUVBYFYIYGYJYKXTBYOYLYM $.

    voliunlem3.1 $e |- S = seq 1 ( + , G ) $.
    voliunlem3.2 $e |- G = ( n e. NN |-> ( vol ` ( F ` n ) ) ) $.
    voliunlem3.4 $e |- ( ph -> A. i e. NN ( vol ` ( F ` i ) ) e. RR ) $.
    $( Lemma for ~ voliun .  (Contributed by Mario Carneiro, 20-Mar-2014.) $)
    voliunlem3 $p |- ( ph -> ( vol ` U. ran F ) = sup ( ran S , RR* , < ) ) $=
      ( cfv covol wcel syl cn cr crn cuni cvol cxr clt csup cdm wceq voliunlem2
      vz vk mblvol cle wbr cv ciun caddc cmpt c1 cseq eqid ffvelrnda mblss wral
      wa wss weq fveq2 fveq2d eleq1d rspccva sylan eqeltrrd ovoliun wfn fniunfv
      wf ffn mpteq2dva syl5eq seqeq3d syl5req rneqd supeq1d 3brtr3d cpnf wi cc0
      cmnf cpw frn reex elpw2 sylibr ssriv syl6ss sspwuni ovolcl ovolge0 mnflt0
      sylib mnfxr 0xr xrltletr mp3an12 mpani sylc wb xrrebnd cdif co sseq1d cin
      simpl simpll ineq1d fnfvelrn elssuni adantll sseqin2 eqtrd eqtr4d adantrr
      3eqtr4g syl6eqr fveq1d c0 difeq1 difid syl6eq ovol0 adantr oveq12d adantl
      nnuz imbi12d 3ad2ant1 sylbird mpbird syl2anc 1zzd fvex fvmpt serfre feq1i
      eqeltrd recnd addid1d breq12d expr pm5.74d pm5.74da w3a wdisj simp2 simp3
      voliunlem1 3exp1 vtoclg mpcom mpd mpand wn nltpnft rexr pnfge 3syl imbi2d
      ex breq2 syl5ibrcom pm2.61d ralrimiv breq1 ralrn ressxr supxrleub supxrcl
      xrletri3 mpbir2and ) AFUAZUBZUCOZUWBPOZCUAZUDUEUFZAUWBUCUGZQUWCUWDUHABDEF
      HIJKUIUWBULRAUWDUWFUHZUWDUWFUMUNZUWFUWDUMUNZAESEUOZFOZUPZPOUQESUWLPOZURZU
      SUTZUAZUDUEUFUWDUWFUMAUWLUWPEUWOUWPVAUWOVAAUWKSQZVEZUWLUWGQZUWLTVFASUWGUW
      KFIVBZUWLVCRUWSUWLUCOZUWNTUWSUWTUXBUWNUHZUXAUWLULRZADUOZFOZUCOZTQZDSVDZUW
      RUXBTQZNUXHUXJDUWKSDEVGZUXGUXBTUXKUXFUWLUCUXEUWKFVHVIVJVKVLVMVNAUWMUWBPAF
      SVOZUWMUWBUHASUWGFVQZUXLISUWGFVRRZESFVPRVIAUDUWQUWEUEAUWPCACUQGUSUTZUWPLA
      GUWOUQUSAGESUXBURZUWOMAESUXBUWNUXDVSVTWAWBWCWDWEAUWJUJUOZUWDUMUNZUJUWEVDZ
      AUXSUKUOZCOZUWDUMUNZUKSVDZAUYBUKSAUWDWFUEUNZUXTSQZUYBWGZAWIUWDUEUNZUYDUYF
      AUWDUDQZWHUWDUMUNZUYGAUWBTVFZUYHAUWATWJZVFUYJAUWAUWGUYKAUXMUWAUWGVFISUWGF
      WKRBUWGUYKBUOZUWGQUYLTVFZUYLUYKQUYLVCUYLTWLWMWNWOWPUWATWQXAZUWBWRRZAUYJUY
      IUYNUWBWSRUYHWIWHUEUNZUYIUYGWTWIUDQWHUDQUYHUYPUYIVEUYGWGXBXCWIWHUWDXDXEXF
      XGAUYGUYDVEZUWDTQZUYFAUYHUYRUYQXHUYOUWDXIRAUYJUYRUYFWGZUYNUWBUYKQZAUYJUYS
      WGZAUYJUYTUYNUWBTWLWMWNAUYMUYLPOZTQZUYEUXTUQHUSUTZOZUYLUWBXJZPOZUQXKZVUBU
      MUNZWGZWGZWGZWGAVUAWGBUWBUYKUYLUWBUHZAVULVUAVUMAVEZUYMUYJVUKUYSVUNUYLUWBT
      VUMAXNZXLVUNVUCUYRVUJUYFVUNVUBUWDTVUNUYLUWBPVUOVIVJVUNUYEVUIUYBVUMAUYEVUI
      UYBXHVUMAUYEVEZVEZVUHUYAVUBUWDUMVUQVUHUYAWHUQXKUYAVUQVUEUYAVUGWHUQVUQUXTV
      UDCVUQVUDUXOCVUQHGUQUSVUQESUYLUWLXMZPOZURZUXPHGVUMAVUTUXPUHUYEVUNESVUSUXB
      VUNUWRVEZVUSUWNUXBVVAVURUWLPVVAVURUWBUWLXMZUWLVVAUYLUWBUWLVUMAUWRXOXPVVAU
      WLUWBVFZVVBUWLUHAUWRVVCVUMUWSUWLUWAQZVVCAUXLUWRVVDUXNSUWKFXQVLUWLUWAXRRXS
      UWLUWBXTXAYAVIAUWRUXCVUMUXDXSYBVSYCKMYDWALYEYFVUMVUGWHUHVUPVUMVUGYGPOWHVU
      MVUFYGPVUMVUFUWBUWBXJYGUYLUWBUWBYHUWBYIYJVIYKYJYLYMVUQUYAVUQUYAVUPUYATQZV
      UMASTUXTCASTUXOVQSTCVQZAUKGUSSYOAUUAVUPUXTGOZUXTFOZUCOZTUYEVVGVVIUHAEUXTU
      XBVVISGEUKVGUWLVVHUCUWKUXTFVHVIMVVHUCUUBUUCYNAUXIUYEVVITQZNUXHVVJDUXTSDUK
      VGZUXGVVITVVKUXFVVHUCUXEUXTFVHVIVJVKVLUUFUUDSTCUXOLUUEWNZVBZYNUUGUUHYAVUM
      VUBUWDUHVUPUYLUWBPVHYLUUIUUJUUKYPYPUULAUYMVUCUYEVUIAUYMVUCUUMDUKEUYLFHAUY
      MUXMVUCIYQAUYMDSUXFUUNVUCJYQKAUYMVUCUUOAUYMVUCUUPUUQUURUUSUUTUVAYRUVBAUYD
      UVCZUWDWFUHZUYFAUYHVVOVVNXHUYOUWDUVDRAUYFVVOUYEUYAWFUMUNZWGAUYEVVPVUPVVEU
      YAUDQVVPVVMUYAUVEUYAUVFUVGUVIVVOUYBVVPUYEUWDWFUYAUMUVJUVHUVKYRUVLUVMACSVO
      ZUXSUYCXHAVVFVVQVVLSTCVRRUXRUYBUJUKSCUXQUYAUWDUMUVNUVORYSAUWEUDVFZUYHUWJU
      XSXHAUWETUDAVVFUWETVFVVLSTCWKRUVPWPZUYOUJUWEUWDUVQYTYSAUYHUWFUDQZUWHUWIUW
      JVEXHUYOAVVRVVTVVSUWEUVRRUWDUWFUVSYTUVTYA $.
  $}

  ${
    $d i k m n x y $.  $d i k m x y A $.
    $( The measurable sets are closed under countable union.  (Contributed by
       Mario Carneiro, 18-Mar-2014.) $)
    iunmbl $p |- ( A. n e. NN A e. dom vol -> U_ n e. NN A e. dom vol ) $=
      ( vk vm vy vi wcel cn wral ciun cv csb c1 cfzo wceq nfcsb1v nfel1 csbeq1a
      weq cvv vx cvol cdm co cdif cmpt crn cuni wrex cab nfv eleq1d cbvral nfcv
      cbviun csbeq1 iundisj eqtri difexg ralimi dfiun2g syl5eq sylbi eqid rnmpt
      syl unieqi syl6eqr cfv cin covol rspc impcom cfn fzofi wss fzossnn ssralv
      wa ax-mp adantr finiunmbl sylancr difmbl fmptd wdisj iundisj2 simpr oveq2
      wi syl2anc iuneq1d difeq12d fvmptg disjeq2dv mpbiri voliunlem2 eqeltrd )
      AUBUCZGZBHIZBHAJZCHBCKZALZDMXCNUDZBDKZALZJZUEZUFZUGZUHZWSXAXBEKZXIOCHUIEU
      JZUHZXLXAXDWSGZCHIZXBXOOWTXPBCHWTCUKBXDWSBXCAPZQZBCSAXDWSBXCARZULZUMXQXBC
      HXIJZXOXBCHXDJYBBCHAXDCAUNXRXTUOXDXGDCBXCXFAUPUQURXQXITGZCHIYBXOOXPYCCHXD
      XHWSUSUTCEHXITVAVFVBVCXKXNCEHXIXJXJVDZVEVGVHXAUAFEXJEHUAKXMXJVIVJVKVIUFZX
      ACHXIWSXJXAXCHGZVSZXPXHWSGZXIWSGYFXAXPWTXPBXCHXSYAVLVMYGXEVNGXGWSGZDXEIZY
      HMXCVOXAYJYFXAYIDHIZYJWTYIBDHWTDUKBXGWSBXFAPQBDSAXGWSBXFARULUMXEHVPYKYJWJ
      XCVQYIDXEHVRVTVCWAXEXGDWBWCXDXHWDWKYDWEXAFHFKZXJVIZWFFHBYLALZDMYLNUDZXGJZ
      UEZWFYNXGDFBYLXFAUPWGXAFHYMYQXAYLHGZVSZYRYQTGZYMYQOXAYRWHYSYNWSGZYTYRXAUU
      AWTUUABYLHBYNWSBYLAPQBFSAYNWSBYLARULVLVMYNYPWSUSVFCYLXIYQHTXJCFSZXDYNXHYP
      BXCYLAUPUUBDXEYOXGXCYLMNWIWLWMYDWNWKWOWPYEVDWQWR $.

    voliun.1 $e |- S = seq 1 ( + , G ) $.
    voliun.2 $e |- G = ( n e. NN |-> ( vol ` A ) ) $.
    $( The Lebesgue measure function is countably additive.  (Contributed by
       Mario Carneiro, 18-Mar-2014.)  (Proof shortened by Mario Carneiro,
       11-Dec-2016.) $)
    voliun $p |- ( ( A. n e. NN ( A e. dom vol /\ ( vol ` A ) e. RR ) /\
                   Disj_ n e. NN A ) ->
                   ( vol ` U_ n e. NN A ) = sup ( ran S , RR* , < ) ) $=
      ( vx vi vm cvol wcel cfv cr cn wral cmpt cv eqid wceq fveq2d cdm wa wdisj
      crn cuni caddc c1 cseq cxr clt csup ciun cin covol wf simpl ralimi adantr
      fmpt sylib wb fvmpt2 adantrr ralimiaa disjeq2 biimpar nfcv nffvmpt1 fveq2
      syl cbvdisj nffv cbvmpt eleq1d biimprd impr nfv nfel1 voliunlem3 wrex cab
      cbvral dfiun2g rnmpt unieqi syl6eqr mpteq12 sylancr syl6reqr syl5eq rneqd
      seqeq3d supeq1d 3eqtr4d ) AJUAZKZAJLZMKZUBZCNOZCNAUCZUBZCNAPZUDZUEZJLUFCN
      CQZXCLZJLZPZUGUHZUDZUIUJUKCNAULZJLBUDZUIUJUKXBGXJHIXCXIINGQZIQZXCLZUMUNLP
      ZXBWPCNOZNWOXCUOWTXRXAWSWPCNWPWRUPUQURZCNWOAXCXCRZUSUTXBCNXGUCZHNHQZXCLZU
      CWTYAXAWTXGASZCNOYAXAVAWSYDCNXFNKZWPYDWRCNAWOXCXTVBZVCVDCNXGAVEVJVFCHNXGY
      CHXGVGCNAYBVHZXFYBXCVIZVKUTXQRXJRCINXHXPJLIXHVGCXPJCJVGZCNAXOVHVLXFXOSXGX
      PJXFXOXCVITVMXBXHMKZCNOZYCJLZMKZHNOWTYKXAWSYJCNYEWPWRYJYEWPUBZYJWRYNXHWQM
      YNXGAJYFTZVNVOVPVDURYJYMCHNYJHVQCYLMCYCJYIYGVLVRXFYBSZXHYLMYPXGYCJYHTVNWB
      UTVSXBXLXEJXBXLXNASCNVTGWAZUEZXEXBXRXLYRSXSCGNAWOWCVJXDYQCGNAXCXTWDWEWFTX
      BUIXMXKUJXBBXJXBBUFDUGUHXJEXBDXIUFUGXBXICNWQPZDXBNNSXHWQSZCNOZXIYSSNRWTUU
      AXAWSYTCNYEWPYTWRYOVCVDURCNXHNWQWGWHFWIWLWJWKWMWN $.
  $}

  ${
    $d k n x F $.  $d k x A $.  $d x B $.
    $( Lemma for ~ volsup .  (Contributed by Mario Carneiro, 4-Jul-2014.) $)
    volsuplem $p |- ( ( A. n e. NN ( F ` n ) C_ ( F ` ( n + 1 ) ) /\
                      ( A e. NN /\ B e. ( ZZ>= ` A ) ) ) ->
                      ( F ` A ) C_ ( F ` B ) ) $=
      ( vx vk cv cfv c1 caddc co wss cn wcel wa wi wceq fveq2 sseq2d imbi2d cuz
      wral ssid 2a1i eluznn oveq1 fveq2d sseq12d rspccva sylan2 anassrs syl5com
      cz sstr2 expcom a2d uzind4 com12 impr ) CGZDHZUTIJKZDHZLZCMUBZAMNZBAUAHZN
      ZADHZBDHZLZVHVEVFOZVKVLVIEGZDHZLZPVLVIVILZPVLVIFGZDHZLZPVLVIVQIJKZDHZLZPV
      LVKPEFABVMAQZVOVPVLWCVNVIVIVMADRSTVMVQQZVOVSVLWDVNVRVIVMVQDRSTVMVTQZVOWBV
      LWEVNWAVIVMVTDRSTVMBQZVOVKVLWFVNVJVIVMBDRSTVPAUMNVLVIUCUDVQVGNZVLVSWBVLWG
      VSWBPVLWGOVRWALZVSWBVEVFWGWHVFWGOVEVQMNWHVQAUEVDWHCVQMUTVQQZVAVRVCWAUTVQD
      RWIVBVTDUTVQIJUFUGUHUIUJUKVIVRWAUNULUOUPUQURUS $.
  $}

  ${
    $d j k m n x F $.
    $( The volume of the limit of an increasing sequence of measurable sets is
       the limit of the volumes.  (Contributed by Mario Carneiro, 14-Aug-2014.)
       (Revised by Mario Carneiro, 11-Dec-2016.) $)
    volsup $p |- ( ( F : NN --> dom vol /\
                   A. n e. NN ( F ` n ) C_ ( F ` ( n + 1 ) ) ) ->
                 ( vol ` U. ran F ) = sup ( ( vol " ran F ) , RR* , < ) ) $=
      ( vk vm cn cvol cfv c1 caddc co wss wa cr wcel cxr wceq fveq2 fveq2d cpnf
      syl vj vx cdm wf cv wral crn cuni cima clt csup cfzo ciun cdif cmpt wdisj
      cseq ffvelrn ad2ant2r cfn fzofi simpll elfzouz syl6eleqr syl2an ralrimiva
      nnuz finiunmbl sylancr difmbl syl2anc covol mblvol difssd simprr eqeltrrd
      cuz mblss ovolsscl syl3anc eqeltrd jca expr ralimdva iundisj2 eqid voliun
      imp sylancl iundisj wfn ffn ad2antrr fniunfv syl5eqr ccom cz seqfn fneq2i
      1z ax-mp mpbir a1i cc0 cicc volf fco wi eqeq12d imbi2d weq seq1 1nn oveq2
      fzo0 syl6eq iuneq1d 0iun difeq2d dif0 eqtrd fvex fvmpt oveq1 adantl rspcv
      c0 cun sylc ffvelrnd eleq1d eqtr4d wn cle wbr ovolcl cmnf wb frn sstri ex
      eqtri seqp1 eleq2s undif2 simpr simpllr sseq12d ssequn1 sylib syl5req cin
      simplll peano2nn disjdif simplr volun cfz adantr elfznn elfzuz3 volsuplem
      syl32anc syl12anc iunss sylibr syl6eleq eluzfz2 ssiun2s eqssd nnzd fzval3
      eqtr3d difeq12d oveq2d 3eqtrd syl5ibr expcom a2d nnind impcom fvco3 sylan
      eqfnfvd rneqd rnco2 supeq1d 3eqtr3d wrex rexnal iunmbl pnfge mnflt0 mnfxr
      xrrebnd ovolge0 0xr xrltletr mp3an12 mpani biantrurd 3bitr4d mtbid mpbird
      nltpnft simprl fnfvelrn elssuni eqbrtrrd pnfxr xrletri3 mpbir2and imassrn
      ovolss iccssxr wfun funfvima2 supxrpnf 3eqtr4d rexlimdvaa syl5bir pm2.61d
      ffun ) EFUCZBUDZAUEZBGZUYFHIJZBGZKZAEUFZLZCUEZBGZFGZMNZCEUFZBUGZUHZFGZFUY
[encoded data, 4158 characters]
      $.
  $}

  ${
    $d f k n x A $.  $d f k x B $.
    $( The measurable sets are closed under countable union.  (Contributed by
       Mario Carneiro, 18-Mar-2014.) $)
    iunmbl2 $p |- ( ( A ~<_ NN /\ A. n e. A B e. dom vol ) ->
                    U_ n e. A B e. dom vol ) $=
      ( vf vk vx cn wbr wcel wral ciun csdm cen wi com ex syl cv cfv wceq mpan2
      cdom cvol cdm wo brdom2 nnenom sdomentr cfn isfinite finiunmbl sylbir wex
      wf1o bren wa ccnv csb wrex nfv nfcv nfcsb1v nfcri nfrex ffvelrnda 3adant3
      f1of simp3 f1ocnvfv1 eqcomd csbeq1a eleqtrd csbeq1d eleq2d rspcev syl2anc
      w3a fveq2 3exp rexlimd f1ocnvdm rspce rexlimdva impbid eliun eqrdv adantr
      3bitr4g rspcsbela sylan an32s ralrimiva iunmbl eqeltrd exlimiv sylbi jaoi
      imp ) AGUBHZBUCUDZICAJZCABKZWTIZWSAGLHZAGMHZUEXAXCNZAGUFXDXFXEXDAOLHZXFXD
      GOMHXGUGAGOUHUAXGAUIIZXFAUJXHXAXCABCUKPULQXEAGDRZUNZDUMXFAGDUOXJXFDXJXAXC
      XJXAUPZXBEGCERZXIUQZSZBURZKZWTXJXBXPTXAXJFXBXPXJFRZBIZCAUSZXQXOIZEGUSZXQX
      BIXQXPIXJXSYAXJXRYACAXJCUTXTCEGCGVACFXOCXNBVBVCZVDXJCRZAIZXRYAXJYDXRVQZYC
      XISZGIZXQCYFXMSZBURZIZYAXJYDYGXRXJAGYCXIAGXIVGVEVFYEXQBYIXJYDXRVHYEYCYHTB
      YITYEYHYCXJYDYHYCTXRAGYCXIVIVFVJCYHBVKQVLXTYJEYFGXLYFTZXOYIXQYKCXNYHBXLYF
      XMVRVMVNVOVPVSVTXJXTXSEGXJXLGIZUPZXNAIZXTXSNAGXLXIWAZYNXTXSXRXTCXNAYBYCXN
      TBXOXQCXNBVKVNWBPQWCWDCXQABWEEXQGXOWEWHWFWGXKXOWTIZEGJXPWTIXKYPEGXJYLXAYP
      YMYNXAYPYOCXNABWTWIWJWKWLXOEWMQWNPWOWPWQWPWR $.
  $}

  ${
    $d n x B $.  $d j k n x C $.  $d n x E $.  $d j k n x F $.  $d j k n x G $.
    $d j k n x H $.  $d j k n x ph $.  $d j k n x z S $.  $d j x z T $.
    $d j x z U $.
    ioombl1.b $e |- B = ( A (,) +oo ) $.
    ioombl1.a $e |- ( ph -> A e. RR ) $.
    ioombl1.e $e |- ( ph -> E C_ RR ) $.
    ioombl1.v $e |- ( ph -> ( vol* ` E ) e. RR ) $.
    ioombl1.c $e |- ( ph -> C e. RR+ ) $.
    ioombl1.s $e |- S = seq 1 ( + , ( ( abs o. - ) o. F ) ) $.
    ioombl1.t $e |- T = seq 1 ( + , ( ( abs o. - ) o. G ) ) $.
    ioombl1.u $e |- U = seq 1 ( + , ( ( abs o. - ) o. H ) ) $.
    ioombl1.f1 $e |- ( ph -> F : NN --> ( <_ i^i ( RR X. RR ) ) ) $.
    ioombl1.f2 $e |- ( ph -> E C_ U. ran ( (,) o. F ) ) $.
    ioombl1.f3 $e |- ( ph -> sup ( ran S , RR* , < ) <_
                       ( ( vol* ` E ) + C ) ) $.
    ioombl1.p $e |- P = ( 1st ` ( F ` n ) ) $.
    ioombl1.q $e |- Q = ( 2nd ` ( F ` n ) ) $.
    ioombl1.g $e |- G = ( n e. NN |->
   <. if ( if ( P <_ A , A , P ) <_ Q , if ( P <_ A , A , P ) , Q ) , Q >. ) $.
    ioombl1.h $e |- H = ( n e. NN |->
   <. P , if ( if ( P <_ A , A , P ) <_ Q , if ( P <_ A , A , P ) , Q ) >. ) $.
    $( Lemma for ~ ioombl1 .  (Contributed by Mario Carneiro, 18-Aug-2014.) $)
    ioombl1lem1 $p |- ( ph ->
                        ( G : NN --> ( <_ i^i ( RR X. RR ) ) /\
                          H : NN --> ( <_ i^i ( RR X. RR ) ) ) ) $=
      ( cn cle cr cxp cin wf wbr cif cop cv wcel wa adantr cfv c1st w3a ovolfcl
      c2nd sylan simp1d syl5eqel ifcld simp2d syl2anc df-br sylib opelxpi elind
      min2 fmptd max1 simp3d 3brtr4g breq2 ifboth jca ) AUJUKULULUMZUNZMUOUJWGN
      UOAJUJEBUKUPZBEUQZFUKUPZWIFUQZFURZWGMAJUSZUJUTZVAZUKWFWLWOWKFUKUPZWLUKUTW
      OWIULUTFULUTZWPWOWHBEULABULUTZWNPVBZWOEWMLVCZVDVCZULUFWOXAULUTZWTVGVCZULU
      TZXAXCUKUPZAUJWGLUOWNXBXDXEVEUCLWMVFVHZVIVJZVKZWOFXCULUGWOXBXDXEXFVLVJZWI
      FVRVMWKFUKVNVOWOWKULUTZWQWLWFUTWOWJWIFULXHXIVKZXIWKFULULVPVMVQUHVSAJUJEWK
      URZWGNWOUKWFXLWOEWKUKUPZXLUKUTWOEWIUKUPZEFUKUPZXMWOEULUTZWRXNXGWSEBVTVMWO
      XAXCEFUKWOXBXDXEXFWAUFUGWBWJXNXOXMWIFWIWKEUKWCFWKEUKWCWDVMEWKUKVNVOWOXPXJ
      XLWFUTXGXKEWKULULVPVMVQUIVSWE $.

    $( Lemma for ~ ioombl1 .  (Contributed by Mario Carneiro, 18-Aug-2014.) $)
    ioombl1lem2 $p |- ( ph -> sup ( ran S , RR* , < ) e. RR ) $=
      ( crn cxr clt csup wcel covol cfv caddc co cmnf wbr cle wss cc0 cpnf cico
      cr cn wf cxp cin cabs cmin ccom eqid ovolsf syl frn icossxr supxrcl rpred
      syl6ss readdcld c1 mnfxr a1i wfn ffn 1nn fnfvelrn sylancl sseldd rge0ssre
      ffvelrn sseldi mnflt supxrub syl2anc xrltletrd xrre syl22anc ) AGUJZUKULU
      MZUKUNZKUOUPZDUQURZVFUNUSXBULUTXBXEVAUTXBVFUNAXAUKVBZXCAXAVCVDVEURZUKAVGX
      GGVHZXAXGVBAVGVAVFVFVIVJLVHXHUCGLVKVLVMLVMZXIVNTVOVPZVGXGGVQVPVCVDVRWAZXA
      VSVPZAXDDRADSVTWBAUSWCGUPZXBUSUKUNAWDWEAXAUKXMXKAGVGWFZWCVGUNZXMXAUNZAXHX
      NXJVGXGGWGVPWHVGWCGWIWJZWKXLAXMVFUNUSXMULUTAXGVFXMWLAXHXOXMXGUNXJWHVGXGWC
      GWMWJWNXMWOVPAXFXPXMXBVAUTXKXQXAXMWPWQWRUEXBXEWSWT $.

    $( Lemma for ~ ioombl1 .  (Contributed by Mario Carneiro, 18-Aug-2014.) $)
    ioombl1lem3 $p |- ( ( ph /\ n e. NN ) ->
      ( ( ( ( abs o. - ) o. G ) ` n ) + ( ( ( abs o. - ) o. H ) ` n ) ) =
      ( ( ( abs o. - ) o. F ) ` n ) ) $=
      ( cv cn wcel wa cle wbr cif cmin co caddc cabs ccom cfv c2nd c1st cxp cin
      cr wf w3a ovolfcl sylan simp2d syl5eqel recnd adantr simp1d ifcld npncand
      wceq ioombl1lem1 simpld eqid ovolfsval cop cvv opex fvmpt2 sylancl fveq2d
      simpr op2ndg syl2anc eqtrd op1stg oveq12d simprd oveq12i syl6eqr 3eqtr4d
      ) AJUJZUKULZUMZFEBUNUOZBEUPZFUNUOZXDFUPZUQURZXFEUQURZUSURFEUQURZWTUTUQVAZ
      MVAZVBZWTXJNVAZVBZUSURWTXJLVAZVBZXBFXFEXBFXBFWTLVBZVCVBZVGUGXBXQVDVBZVGUL
      ZXRVGULZXSXRUNUOZAUKUNVGVGVEVFZLVHZXAXTYAYBVIUCLWTVJVKZVLVMZVNXBXFXBXEXDF
      VGXBXCBEVGABVGULXAPVOXBEXSVGUFXBXTYAYBYEVPVMZVQYFVQZVNXBEYGVNVRXBXLXGXNXH
      USXBXLWTMVBZVCVBZYIVDVBZUQURZXGAUKYCMVHZXAXLYLVSAYMUKYCNVHZABCDEFGHIJKLMN
      OPQRSTUAUBUCUDUEUFUGUHUIVTZWAMXKWTXKWBWCVKXBYJFYKXFUQXBYJXFFWDZVCVBZFXBYI
      YPVCXBXAYPWEULYIYPVSAXAWJZXFFWFJUKYPWEMUHWGWHZWIXBXFVGULZFVGULZYQFVSYHYFX
      FFVGVGWKWLWMXBYKYPVDVBZXFXBYIYPVDYSWIXBYTUUAUUBXFVSYHYFXFFVGVGWNWLWMWOWMX
      BXNWTNVBZVCVBZUUCVDVBZUQURZXHAYNXAXNUUFVSAYMYNYOWPNXMWTXMWBWCVKXBUUDXFUUE
      EUQXBUUDEXFWDZVCVBZXFXBUUCUUGVCXBXAUUGWEULUUCUUGVSYREXFWFJUKUUGWENUIWGWHZ
      WIXBEVGULZYTUUHXFVSYGYHEXFVGVGWKWLWMXBUUEUUGVDVBZEXBUUCUUGVDUUIWIXBUUJYTU
      UKEVSYGYHEXFVGVGWNWLWMWOWMWOXBXPXRXSUQURZXIAYDXAXPUULVSUCLXOWTXOWBWCVKFXR
      EXSUQUGUFWQWRWS $.

    $( Lemma for ~ ioombl1 .  (Contributed by Mario Carneiro, 16-Jun-2014.) $)
    ioombl1lem4 $p |- ( ph -> ( ( vol* ` ( E i^i B ) ) +
                ( vol* ` ( E \ B ) ) ) <_ ( ( vol* ` E ) + C ) ) $=
      ( vz vx vj vk covol cfv caddc co crn cxr clt csup wss cr wcel a1i syl3anc
      cle c0 wne cv wbr wral wrex cc0 cpnf simpld ccom eqid ovolsf syl rge0ssre
      cn wf frn syl6ss cdm c1 1nn wceq syl5eleqr ne0i dm0rn0 necon3bii sylib wa
      fdm ffvelrnda sseldi adantr cseq simpr nnuz ovolfsf syl2an elrege0 simprd
      breqtrd fveq1i cli eqidd wfn ffn syl2anc ralrimiva breq2 ralbidv isumsup2
      rspcev wb breq1 ralrn rexbidv mpbird supxrre adantlr letrd cuni c1st c2nd
      wi cvv sylancl fveq2d ifcld eqtrd ad2ant2r ad2antrr mpd syl5bir recnd cin
      cdif inss1 ovolsscl difss readdcld ioombl1lem2 rpred cico cxp ioombl1lem1
      cabs cmin cuz syl6eleq cfz simpl addge01d mpbid ioombl1lem3 serle 3brtr4g
      1zzd icossxr fnfvelrn sylan supxrub breqtrrd syl5eqbrr climserle syl5eqbr
      elfznn suprcl addge02d cicc cioo ssralv ax-mp breq1i w3a ovolfcl syl5eqel
      simp1d syl5ss sselda ltle cif cop opex fvmpt2 simp2d op1stg simplr sseldd
      min1 inss2 sseli ad2antlr rexrd pnfxr elioo2 eleq2i pm4.71i df-3an bitr4i
      ltpnf 3bitr4g syl6bi simprr ifboth eqbrtrd expr syld breq2i op2ndg breq2d
      ltled sylibrd anim12d reximdva ralimdva ovolfioo ovolficc 3imtr4d ovollb2
      syl5 breq1d wn eldifn biantrurd bitr4d mtbird lenltd max2 le2addd eqeltri
      seqex cc eqcomd seradd oveq12i 3eqtr4g climadd climuni ) AKCUUAZUNUOZKCUU
[encoded data, 6560 characters]
      XDUYTWUBVWJVXIWWBWWJUPWUAWWMVUAVUBVUCWVGVVFVUKGVUDXMXGUEYF $.
  $}

  ${
    $d f m n x y A $.
    $( An open right-unbounded interval is measurable.  (Contributed by Mario
       Carneiro, 16-Jun-2014.)  (Proof shortened by Mario Carneiro,
       25-Mar-2015.) $)
    ioombl1 $p |- ( A e. RR* -> ( A (,) +oo ) e. dom vol ) $=
      ( vx vy vf vm wcel cr cpnf cioo co wss cv cfv caddc cle wbr wa ccom eqid
      cn vn cxr wceq cmnf w3o cvol cdm elxr covol cin cdif cpw wral ioossre a1i
      wi elpwi crp crn cuni cabs cmin c1 cseq clt csup cxp cmap simplrl simplrr
      wrex ovolgelb syl3anc c1st c2nd cif cop cmpt simplll adantr simplr simprl
      simpr wf reex xpex inex2 nnex elmap sylib simprrl simprrr fveq2d ifbieq2d
      fveq2 breq1d breq12d ifbieq12d opeq12d ioombl1lem4 rexlimddv ralrimiva wb
      cbvmptv inss1 ovolsscl mp3an1 adantl difss readdcld simprr alrple syl2anc
      mpbird expr sylan2 ismbl2 sylanbrc oveq1 iooid syl6eq 0mbl syl6eqel rembl
      c0 ioomax 3jaoi sylbi ) AUBFAGFZAHUCZAUDUCZUEAHIJZUFUGZFZAUHYIYNYJYKYIYLG
      KZBLZUIMZGFZYPYLUJZUIMZYPYLUKZUIMZNJZYQOPZUPZBGULZUMYNYOYIAHUNUOYIUUEBUUF
      YPUUFFYIYPGKZUUEYPGUQYIUUGYRUUDYIUUGYRQZQZUUDUUCYQCLZNJZOPZCURUMZUUIUULCU
      RUUIUUJURFZQZYPIDLZRUSUTKZNVAVBRZUUPRVCVDZUSUBVEVFUUKOPZQZUULDOGGVGZUJZTV
      HJZUUOUUGYRUUNUVADUVDVKYIUUGYRUUNVIZYIUUGYRUUNVJZUUIUUNWCYPUUJUUSDUUSSZVL
      VMUUOUUPUVDFZUVAQZQZAYLUUJUALZUUPMZVNMZUVLVOMZUUSNUURETELZUUPMZVNMZAOPZAU
      VQVPZUVPVOMZOPZUVSUVTVPZUVTVQZVRZRVCVDZNUURETUVQUWBVQZVRZRVCVDZUAYPUUPUWD
      UWGYLSYIUUHUUNUVIVSUUOUUGUVIUVEVTUUOYRUVIUVFVTUUIUUNUVIWAUVGUWESUWHSUVJUV
      HTUVCUUPWDUUOUVHUVAWBUVCTUUPUVBOGGWEWEWFWGWHWIWJUUOUVHUUQUUTWKUUOUVHUUQUU
      TWLUVMSUVNSEUATUWCUVMAOPZAUVMVPZUVNOPZUWJUVNVPZUVNVQUVOUVKUCZUWBUWLUVTUVN
      UWMUWAUWKUVSUVTUWJUVNUWMUVSUWJUVTUVNOUWMUVRUWIUVQUVMAUWMUVQUVMAOUWMUVPUVL
      VNUVOUVKUUPWOZWMZWPUWOWNZUWMUVPUVLVOUWNWMZWQUWPUWQWRZUWQWSXDEUATUWFUVMUWL
      VQUWMUVQUVMUWBUWLUWOUWRWSXDWTXAXBUUIUUCGFYRUUDUUMXCUUIYTUUBUUHYTGFZYIYSYP
      KUUGYRUWSYPYLXEYSYPXFXGXHUUHUUBGFZYIUUAYPKUUGYRUWTYPYLXIUUAYPXFXGXHXJYIUU
      GYRXKCUUCYQXLXMXNXOXPXBBYLXQXRYJYLYEYMYJYLHHIJYEAHHIXSHXTYAYBYCYKYLGYMYKY
      LUDHIJGAUDHIXSYFYAYDYCYGYH $.
  $}

  $( A closed unbounded-above interval is measurable.  (Contributed by Mario
     Carneiro, 16-Jun-2014.) $)
  icombl1 $p |- ( A e. RR -> ( A [,) +oo ) e. dom vol ) $=
    ( cr wcel csn cpnf cioo cun cico cvol cdm cxr clt wbr wceq rexr pnfxr ltpnf
    co a1i syl2anc snunioo syl3anc wss covol cfv cc0 snssi ovolsn ioombl1 unmbl
    nulmbl syl eqeltrrd ) ABCZADZAEFRZGZAEHRZIJZUNAKCZEKCZAELMUQURNAOZVAUNPSAQA
    EUAUBUNUOUSCZUPUSCZUQUSCUNUOBUCUOUDUEUFNVCABUGAUHUOUKTUNUTVDVBAUIULUOUPUJTU
    M $.

  $( A closed-below, open-above real interval is measurable.  (Contributed by
     Mario Carneiro, 16-Jun-2014.) $)
  icombl $p |- ( ( A e. RR /\ B e. RR* ) -> ( A [,) B ) e. dom vol ) $=
    ( cr wcel cxr wa clt wbr cico co cpnf cun wceq ad2antrr pnfxr wi c0 syl2anc
    cle wb cvol cdm cdif uncom rexr simplr a1i xrltle sylan imp pnfge syl icoun
    syl32anc syl5eq wss cin ssun1 syl5sseq incom icodisj mp3an3 uneqdifeq mpbid
    icombl1 xrleloe simpr w3a xrre2 expr syl31anc orim1d oveq1 ax-mp ico0 mp2an
    wo mpd mpbir syl6eq 0mbl syl6eqel jaoi difmbl eqeltrrd adantr xrlenlt bitrd
    wn biimpar pm2.61dan ) ACDZBEDZFZABGHZABIJZUAUBZDWNWOFZAKIJZBKIJZUCZWPWQWRW
    TWPLZWSMZXAWPMZWRXBWPWTLZWSWTWPUDWRAEDZWMKEDZABSHZBKSHZXEWSMWLXFWMWOAUEZNZW
    LWMWOUFZXGWROUGZWNWOXHWLXFWMWOXHPXJABUHUIUJWRWMXIXLBUKULZABKUMUNUOZWRWTWSUP
    WTWPUQZQMXCXDTWRXBWTWSWTWPURXOUSWRXPWPWTUQZQWTWPUTWRXFWMXQQMZXKXLXFWMXGXROA
    BKVAVBRUOWTWPWSVCRVDWRWSWQDZWTWQDZXAWQDWLXSWMWOAVENWRBCDZBKMZVQZXTWRBKGHZYB
    VQZYCWRXIYEXNWRWMXGXIYETXLXMBKVFRVDWRYDYAYBWRXFWMXGWOYDYAPXKXLXMWNWOVGXFWMX
    GVHWOYDYAABKVIVJVKVLVRYAXTYBBVEYBWTQWQYBWTKKIJZQBKKIVMYFQMZKKSHZXGYHOKUKVNX
    GXGYGYHTOOKKVOVPVSVTWAWBWCULWSWTWDRWEWNWOWIZFWPQWQWNWPQMZYIWNYJBASHZYIWLXFW
    MYJYKTXJABVOUIWNWMXFYKYITWLWMVGWLXFWMXJWFBAWGRWHWJWAWBWK $.

  ${
    $d w x y z A $.  $d w x y z B $.
    $( An open real interval is measurable.  (Contributed by Mario Carneiro,
       16-Jun-2014.) $)
    ioombl $p |- ( A (,) B ) e. dom vol $=
      ( vx vy vz wcel wa cioo co clt wbr cmnf wceq cico c0 wb cle cr cpnf pnfxr
      cxr cvol cdm csn cdif cun snunioo 3expa adantrr wss cin lbico1 snssd cicc
      iccid ad2antrr ineq1d simpll simplr df-icc df-ioo xrltnle ixxdisj syl3anc
      vw cv eqtr3d uneqdifeq syl2anc mpbid mnfxr a1i simprr simprl xrre2 icombl
      syl32anc covol cfv cc0 ovolsn syl nulmbl difmbl eqeltrrd expr uncom mnfle
      simpr xrlelttrd pnfge df-ico xrltletr ixxun syl5eq ioomax syl6eq syl5sseq
      xrlenlt ssun1 incom rembl wo xrleloe sylancl w3a mp3anl3 orim1d mpd oveq1
      icombl1 ax-mp ico0 mp2an mpbir 0mbl syl6eqel jaoi eleq1d syl5ibcom mpjaod
      wi sylancr wn ioo0 ancoms bitrd biimpar pm2.61dan ndmioo pm2.61i ) AUAFZB
      UAFZGZABHIZUBUCZFZYNABJKZYQYNYRGZLAJKZYQLAMZYNYRYTYQYNYRYTGZGZABNIZAUDZUE
      ZYOYPUUCUUEYOUFUUDMZUUFYOMZYNYRUUGYTYLYMYRUUGABUGUHUIUUCUUEUUDUJUUEYOUKZO
      MUUGUUHPUUCAUUDYNYRAUUDFZYTYLYMYRUUJABULUHUIUMUUCAAUNIZYOUKZUUIOUUCUUKUUE
      YOYLUUKUUEMYMUUBAUOUPUQUUCYLYLYMUULOMYLYMUUBURZUUMYLYMUUBUSZCDEVEAABHQQJJ
      UNCDEUTCDEVAZAVEVFZVBVCVDVGUUEYOUUDVHVIVJUUCUUDYPFZUUEYPFZUUFYPFUUCARFZYM
      UUQUUCLUAFZYLYMYTYRUUSUUTUUCVKVLUUMUUNYNYRYTVMYNYRYTVNLABVOVQZUUNABVPVIUU
      CUUERUJUUEVRVSVTMZUURUUCARUVAUMUUCUUSUVBUVAAWAWBUUEWCVIUUDUUEWDVIWEWFYSLB
      HIZYPFUUAYQYSRBSNIZUEZUVCYPYSUVDUVCUFZRMZUVEUVCMZYSUVFLSHIZRYSUVFUVCUVDUF
      ZUVIUVDUVCWGYSUUTYMSUAFZLBJKBSQKZUVJUVIMUUTYSVKVLZYLYMYRUSZUVKYSTVLZYSLAB
      UVMYLYMYRURZUVNYLLAQKZYMYRAWHUPZYNYRWIWJYSYMUVLUVNBWKWBZCDEVELBSNHJJQJHJQ
      UUOCDEWLZBUUPWSZUUOUUPBSWMLBUUPWMWNVQWOWPWQZYSUVDRUJUVDUVCUKZOMUVGUVHPYSU
      VFUVDRUVDUVCWTUWBWRYSUWCUVCUVDUKZOUVDUVCXAYSUUTYMUVKUWDOMUVMUVNUVOCDEVELB
      SNJJQJHUUOUVTUWAVCVDWOUVDUVCRVHVIVJYSRYPFUVDYPFZUVEYPFXBYSBRFZBSMZXCZUWEY
      SBSJKZUWGXCZUWHYSUVLUWJUVSYSYMUVKUVLUWJPUVNTBSXDXEVJYSUWIUWFUWGYLYMUVKYRU
      WIUWFYBTYLYMUVKXFYRUWIUWFABSVOWFXGXHXIUWFUWEUWGBXKUWGUVDOYPUWGUVDSSNIZOBS
      SNXJUWKOMZSSQKZUVKUWMTSWKXLUVKUVKUWLUWMPTTSSXMXNXOWQXPXQXRWBRUVDWDYCWEUUA
      UVCYOYPLABHXJXSXTYSUVQYTUUAXCZUVRYSUUTYLUVQUWNPVKUVPLAXDYCVJYAYNYRYDZGYOO
      YPYNYOOMZUWOYNUWPBAQKZUWOABYEYMYLUWQUWOPBAWSYFYGYHXPXQYIYNYDYOOYPABYJXPXQ
      YK $.
  $}

  $( A closed real interval is measurable.  (Contributed by Mario Carneiro,
     16-Jun-2014.) $)
  iccmbl $p |- ( ( A e. RR /\ B e. RR ) -> ( A [,] B ) e. dom vol ) $=
    ( cr wcel wa cicc cdif cvol cdm wss wceq iccssre dfss4 sylib cmnf cioo cpnf
    co cun ioombl difreicc unmbl mp2an syl6eqel cmmbl syl eqeltrrd ) ACDBCDEZCC
    ABFRZGZGZUIHIZUHUICJUKUIKABLUICMNUHUJULDUKULDUHUJOAPRZBQPRZSZULABUAUMULDUNU
    LDUOULDOATBQTUMUNUBUCUDUJUEUFUG $.

  $( A closed real interval has finite volume.  (Contributed by Mario Carneiro,
     25-Aug-2014.) $)
  iccvolcl $p |- ( ( A e. RR /\ B e. RR ) -> ( vol ` ( A [,] B ) ) e. RR ) $=
    ( cr wcel wa cicc co cvol cfv covol cdm wceq iccmbl syl wbr c0 cxr rexr cc0
    eqeltrd mblvol clt icc0 syl2an biimpar fveq2 ovol0 syl6eq 0re syl6eqel cmin
    wb cle ovolicc 3expa resubcl ancoms adantr simpr simpl ltlecasei ) ACDZBCDZ
    EZABFGZHIZVEJIZCVDVEHKDVFVGLABMVEUANVDVGCDZBAVDBAUBOZEVEPLZVHVDVJVIVBAQDBQD
    VJVIULVCARBRABUCUDUEVJVGSCVJVGPJISVEPJUFUGUHUIUJNVDABUMOZEVGBAUKGZCVBVCVKVG
    VLLABUNUOVDVLCDZVKVCVBVMBAUPUQURTVBVCUSVBVCUTVAT $.

  $( The measure of an open interval.  (Contributed by Mario Carneiro,
     2-Sep-2014.) $)
  ovolioo $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) ->
                  ( vol* ` ( A (,) B ) ) = ( B - A ) ) $=
    ( cr wcel wbr co covol cfv cvol mblvol syl 3adant3 cun caddc cin c0 wss cc0
    wceq clt cle w3a cioo cmin cdm ioombl ax-mp cicc wa iccmbl cpr a1i cfn prfi
    prssi ovolfi sylancr nulmbl syl2anc csn df-pr ineq2i indi eqtri simp1 ltnrd
    eliooord simpld nsyl disjsn sylibr simp2 simprd uneq12d un0 syl6eq ioossicc
    syl5eq iccssre ovolicc resubcld eqeltrd ovolsscl syl3anc syl5eqel eqtrd 0re
    wn syl6eqel volun syl32anc cxr rexr id prunioo syl3an fveq2d oveq2d addid1d
    recnd 3eqtr3d syl5eqr ) ACDZBCDZABUAEZUBZABUCFZGHZXGIHZBAUDFZXGIUEZDZXIXHSA
    BUFZXGJUGZXFABUHFZIHZXOGHZXIXJXCXDXPXQSZXEXCXDUIXOXKDXRABUJXOJKLXFXGABUKZMZ
    IHZXIXSIHZNFZXPXIXFXLXSXKDZXGXSOZPSXICDYBCDYAYCSXLXFXMULXFXSCQZXSGHZRSZYDXC
    XDYFXEABCUOLZXFXSUMDYFYHABUNYIXSUPUQZXSURUSZXFYEXGAUTZOZXGBUTZOZMZPYEXGYLYN
    MZOYPXSYQXGABVAVBXGYLYNVCVDXFYPPPMPXFYMPYOPXFAXGDZWHYMPSXFAATEZYRXFAXCXDXEV
    EZVFYRYSABTEZAABVGVHVIXGAVJVKXFBXGDZWHYOPSXFBBTEZUUBXFBXCXDXEVLZVFUUBUUAUUC
    BABVGVMVIXGBVJVKVNPVOVPVRXFXIXHCXNXFXGXOQZXOCQZXQCDXHCDUUEXFABVQULXCXDUUFXE
    ABVSLXFXQXJCABVTZXFBAUUDYTWAWBXGXOWCWDWEZXFYBRCXFYBYGRXFYDYBYGSYKXSJKYJWFZW
    GWIXGXSWJWKXFXTXOIXCAWLDXDBWLDXEXEXTXOSAWMBWMXEWNABWOWPWQXFYCXIRNFXIXFYBRXI
    NUUIWRXFXIXFXIUUHWTWSWFXAUUGXAXB $.

  $( The measure of an open interval.  (Contributed by Glauco Siliprandi,
     29-Jun-2017.) $)
  volioo $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) ->
    ( vol ` ( A (,) B ) ) = ( B - A ) ) $=
    ( cr wcel cle wbr w3a cioo cvol cfv covol cmin cdm wceq ioombl mblvol ax-mp
    co ovolioo syl5eq ) ACDBCDABEFGABHRZIJZUAKJZBALRUAIMDUBUCNABOUAPQABST $.

  $( An open real interval has finite volume.  (Contributed by Glauco
     Siliprandi, 29-Jun-2017.) $)
  ioovolcl $p |- ( ( A e. RR /\ B e. RR ) -> ( vol ` ( A (,) B ) ) e. RR ) $=
    ( cr wcel wa cioo co cvol cfv covol cdm wceq wbr cle c0 ancoms cxr rexr cc0
    eqeltrd ioombl mblvol mp1i clt wi ltle imdistani wb ioo0 syl2an fveq2 ovol0
    biimpar syl6eq 0re syl6eqel 3syl cmin ovolioo 3expa resubcl simpr ltlecasei
    adantr simpl ) ACDZBCDZEZABFGZHIZVIJIZCVIHKDVJVKLVHABUAVIUBUCVHVKCDZBAVHBAU
    DMZEVHBANMZEVIOLZVLVHVMVNVGVFVMVNUEBAUFPUGVHVOVNVFAQDBQDVOVNUHVGARBRABUIUJU
    MVOVKSCVOVKOJISVIOJUKULUNUOUPUQVHABNMZEVKBAURGZCVFVGVPVKVQLABUSUTVHVQCDZVPV
    GVFVRBAVAPVDTVFVGVBVFVGVEVCT $.

  ${
    $d x y $.  $d n x F $.  $d n G $.
    ovolfs2.1 $e |- G = ( ( abs o. - ) o. F ) $.
    $( Alternative expression for the interval length function.  (Contributed
       by Mario Carneiro, 26-Mar-2015.) $)
    ovolfs2 $p |- ( F : NN --> ( <_ i^i ( RR X. RR ) ) ->
      G = ( ( vol* o. (,) ) o. F ) ) $=
      ( vn vx vy cn cle cr wf cv cfv cioo covol wcel co wceq cxr fveq2d feqmptd
      cxp cin cmpt ccom wa c1st c2nd cmin wbr w3a ovolfcl ovolioo syl cop inss2
      rexpssxrxp sstri ffvelrn sseldi 1st2nd2 df-ov syl6eqr ovolfsval mpteq2dva
      3eqtr4rd cc0 cpnf cico ovolfsf id cpw ioof a1i ffvelrnda cicc ovolf fveq2
      fmptco 3eqtr4d ) GHIIUAZUBZAJZDGDKZBLZUCDGWCALZMLZNLZUCBNMUDZAUDWBDGWDWGW
      BWCGOUEZWEUFLZWEUGLZMPZNLZWKWJUHPZWGWDWIWJIOWKIOWJWKHUIUJWMWNQAWCUKWJWKUL
      UMWIWFWLNWIWFWJWKUNZMLWLWIWEWOMWIWERRUAZOWEWOQWIWAWPWEWAVTWPHVTUOUPUQGWAW
      CAURUSZWERRUTUMSWJWKMVAVBSABWCCVCVEVDWBDGVFVGVHPBABCVITWBDEGWPWEEKZMLZNLZ
      WGAWHWQWBDGWAAWBVJTWBEFWPIVKZWSFKZNLWTMNWBWPXAWRMWPXAMJWBVLVMZVNWBEWPXAMX
      CTWBFXAVFVGVOPZNXAXDNJWBVPVMTXBWSNVQVRWRWEQWSWFNWRWEMVQSVRVS $.
  $}

  ${
    $d z A $.  $d z B $.
    $( An open interval with finite volume has real endpoints.  (Contributed by
       Mario Carneiro, 26-Mar-2015.) $)
    ioorcl2 $p |- ( ( ( A (,) B ) =/= (/) /\ ( vol* ` ( A (,) B ) ) e. RR ) ->
      ( A e. RR /\ B e. RR ) ) $=
      ( vz cioo co covol cfv cr wcel wa wi cmin cxr clt wbr adantr cle wceq wss
      syl2anc c0 wne cv wex n0 c1 caddc elioore peano2re resubcld rexrd eliooxr
      adantl simpld ltp1 wn 0red simpr ioossre ovolge0 mp1i lep1 letrd subge02d
      cc0 mpbid ovolioo syl3anc recnd nncand eqtrd iooss1 sylan simprd eliooord
      xrltle mpd iooss2 sstrd ovolss sylancl eqbrtrrd ex xrlenlt lenltd 3imtr3d
      wb mt4d xrre2 syl32anc readdcld addge01d pncan2d jca exlimiv sylbi imp )
      ABDEZUAUBZWRFGZHIZAHIZBHIZJZWSCUCZWRIZCUDXAXDKZCWRUEXFXGCXFXAXDXFXAJZXBXC
      XHXEWTUFUGEZLEZMIZAMIZXEMIZXJANOZAXENOZXBXHXJXHXEXIXFXEHIZXAXEABUHPZXAXIH
      IXFWTUIUMZUJZUKZXHXLBMIZXFXLYAJXAXEABULPZUNZXHXEXQUKZXHWTXINOZXNXAYEXFWTU
      OUMZXHAXJQOZXIWTQOZXNUPZYEUPZXHYGYHXHYGJZXJXEDEZFGZXIWTQXHYMXIRYGXHYMXEXJ
      LEZXIXHXJHIXPXJXEQOZYMYNRXSXQXHVEXIQOZYOXHVEWTXIXHUQXFXAURZXRWRHSZVEWTQOX
      HABUSZWRUTVAXAWTXIQOXFWTVBUMVCZXHXEXIXQXRVDVFXJXEVGVHXHXEXIXHXEXQVIZXHXIX
      RVIZVJVKPYKYLWRSYRYMWTQOYKYLAXEDEZWRXHXLYGYLUUCSYCAXJXEVLVMXHUUCWRSZYGXHY
      AXEBQOZUUDXHXLYAYBVNZXHXEBNOZUUEXHXOUUGXFXOUUGJXAXEABVOPZVNZXHXMYAUUGUUEK
      YDUUFXEBVPTVQAXEBVRTPVSYSYLWRVTWAWBWCXHXLXKYGYIWGYCXTAXJWDTXHXIWTXRYQWEZW
      FWHXHXOUUGUUHUNZXJAXEWIWJXHXMYAXEXIUGEZMIZUUGBUULNOZXCYDUUFXHUULXHXEXIXQX
      RWKZUKZUUIXHYEUUNYFXHUULBQOZYHUUNUPZYJXHUUQYHXHUUQJZXEUULDEZFGZXIWTQXHUVA
      XIRUUQXHUVAUULXELEZXIXHXPUULHIXEUULQOZUVAUVBRXQUUOXHYPUVCYTXHXEXIXQXRWLVF
      XEUULVGVHXHXEXIUUAUUBWMVKPUUSUUTWRSYRUVAWTQOUUSUUTXEBDEZWRXHYAUUQUUTUVDSU
      UFXEUULBVRVMXHUVDWRSZUUQXHXLAXEQOZUVEYCXHXOUVFUUKXHXLXMXOUVFKYCYDAXEVPTVQ
      AXEBVLTPVSYSUUTWRVTWAWBWCXHUUMYAUUQUURWGUUPUUFUULBWDTUUJWFWHXEBUULWIWJWNW
      CWOWPWQ $.
  $}

  ${
    $d a b w x y z A $.  $d w x y z B $.  $d a b F $.
    ioorf.1 $e |- F = ( x e. ran (,) |-> if ( x = (/) , <. 0 , 0 >. ,
      <. inf ( x , RR* , < ) , sup ( x , RR* , < ) >. ) ) $.
    $( Define a function from open intervals to their endpoints.  (Contributed
       by Mario Carneiro, 26-Mar-2015.)  (Revised by AV, 13-Sep-2020.) $)
    ioorf $p |- F : ran (,) --> ( <_ i^i ( RR* X. RR* ) ) $=
      ( va vb vy vz vw cioo cle cxr cv c0 wceq cc0 cop clt wcel wa wbr crn cinf
      cxp cin csup cif co wrex cr cpw wf wfn wb ioof ffn ovelrn mp2b 0le0 df-br
      mpbi 0xr opelxpi mp2an mpbir2an a1i wn simplr infeq1d wne simplll simpllr
      simpr neqned eqnetrrd df-ioo idd xrltle ixxlb syl3anc eqtrd supeq1d ixxub
      elin opeq12d ioon0 ad2antrr mpbid wi sylib elind eqeltrd ifclda rexlimivv
      mpd ex sylbi fmpti ) AIUAZJKKUCZUDZALZMNZOOPZXAKQUBZXAKQUEZPZUFZBCXAWRRZX
      ADLZELZIUGZNZEKUHDKUHZXGWTRZWSUIUJZIUKIWSULXHXMUMUNWSXOIUODEKKXAIUPUQXLXN
      DEKKXIKRZXJKRZSZXLXNXRXLSZXBXCXFWTXCWTRZXSXBSXTXCJRZXCWSRZOOJTYAUROOJUSUT
      OKRZYCYBVAVAOOKKVBVCXCJWSWCVDVEXSXBVFZSZXFXIXJPZWTYEXDXIXEXJYEXDXKKQUBZXI
      YEKXAXKQXRXLYDVGZVHYEXPXQXKMVIZYGXINXPXQXLYDVJZXPXQXLYDVKZYEXAXKMYHYEXAMX
      SYDVLVMVNZAFGHXIXJQQIAFGVOZHLZKRZXQSYNXJQTVPZYNXJVQZXPYOSXIYNQTVPZXIYNVQZ
      VRVSVTYEXEXKKQUEZXJYEKXAXKQYHWAYEXPXQYIYTXJNYJYKYLAFGHXIXJQQIYMYPYQYRYSWB
      VSVTWDYEJWSYFYEXIXJJTZYFJRYEXIXJQTZUUAYEYIUUBYLXRYIUUBUMXLYDXIXJWEWFWGXRU
      UBUUAWHXLYDXIXJVQWFWNXIXJJUSWIXRYFWSRXLYDXIXJKKVBWFWJWKWLWOWMWPWQ $.

    $( Define a function from open intervals to their endpoints.  (Contributed
       by Mario Carneiro, 26-Mar-2015.)  (Revised by AV, 13-Sep-2020.) $)
    ioorval $p |- ( A e. ran (,) -> ( F ` A ) = if ( A = (/) , <. 0 , 0 >. ,
      <. inf ( A , RR* , < ) , sup ( A , RR* , < ) >. ) ) $=
      ( cv wceq cc0 cop cxr clt cinf csup cif cioo crn eqeq1 infeq1 supeq1 opex
      c0 opeq12d ifbieq2d ifex fvmpt ) ABAEZTFZGGHZUEIJKZUEIJLZHZMBTFZUGBIJKZBI
      JLZHZMNOCUEBFZUFUKUJUNUGUEBTPUOUHULUIUMIUEBJQIUEBJRUAUBDUKUGUNGGSULUMSUCU
      D $.

    $( The function ` F ` is an "inverse" of sorts to the open interval
       function.  (Contributed by Mario Carneiro, 26-Mar-2015.)  (Revised by
       AV, 13-Sep-2020.) $)
    ioorinv2 $p |- ( ( A (,) B ) =/= (/) ->
      ( F ` ( A (,) B ) ) = <. A , B >. ) $=
      ( vy vz vw cioo c0 wceq cc0 cop cxr clt wcel cv wa wbr idd co wne cfv cif
      cinf csup crn ioorebas ioorval ax-mp ifnefalse wex eliooxr exlimiv simpld
      n0 sylbi simprd id df-ioo xrltle ixxlb syl3anc ixxub opeq12d eqtrd syl5eq
      ) BCIUAZJUBZVHDUCZVHJKLLMZVHNOUEZVHNOUFZMZUDZBCMZVHIUGPVJVOKBCUHAVHDEUIUJ
      VIVOVNVPVHJVKVNUKVIVLBVMCVIBNPZCNPZVIVLBKVIVQVRVIAQZVHPZAULVQVRRZAVHUPVTW
      AAVSBCUMUNUQZUOZVIVQVRWBURZVIUSZAFGHBCOOIAFGUTZHQZNPZVRRWGCOSTZWGCVAZVQWH
      RBWGOSTZBWGVAZVBVCVIVQVRVIVMCKWCWDWEAFGHBCOOIWFWIWJWKWLVDVCVEVFVG $.

    $( The function ` F ` is an "inverse" of sorts to the open interval
       function.  (Contributed by Mario Carneiro, 26-Mar-2015.)  (Revised by
       AV, 13-Sep-2020.) $)
    ioorinv $p |- ( A e. ran (,) -> ( (,) ` ( F ` A ) ) = A ) $=
      ( va vb cioo wcel c0 wceq cfv cv co cxr wrex wi wne cop fveq2d cc0 crn wn
      cxp cr cpw wf wfn wb ioof ffn ovelrn mp2b wa ioorinv2 df-ov syl6eqr df-ne
      neeq1 syl5bbr fveq2 id eqeq12d imbi12d mpbiri a1i rexlimivv clt cinf csup
      sylbi cif ioorebas ioorval ax-mp iooid iftruei eqtri fveq2i eqtr4i eqeq2i
      biimpri 3eqtr4a pm2.61d2 ) BGUAZHZBIJZBCKZGKZBJZWEBELZFLZGMZJZFNOENOZWFUB
      ZWIPZNNUCZUDUEZGUFGWQUGWEWNUHUIWQWRGUJEFNNBGUKULWMWPEFNNWMWPPWJNHWKNHUMWM
      WPWLIQZWLCKZGKZWLJZPWSXAWJWKRZGKWLWSWTXCGAWJWKCDUNSWJWKGUOUPWMWOWSWIXBWOB
      IQWMWSBIUQBWLIURUSWMWHXABWLWMWGWTGBWLCUTSWMVAVBVCVDVEVFVJWFTTGMZCKZGKZXDW
      HBXFTTRZGKXDXEXGGXEXDIJZXGXDNVGVHXDNVGVIRZVKZXGXDWDHXEXJJTTVLAXDCDVMVNXHX
      GXITVOZVPVQVRTTGUOVSWFWGXEGWFBXDCBXDJWFXDIBXKVTWAZSSXLWBWC $.

    $( The function ` F ` does not always return real numbers, but it does on
       intervals of finite volume.  (Contributed by Mario Carneiro,
       26-Mar-2015.)  (Revised by AV, 13-Sep-2020.) $)
    ioorcl $p |- ( ( A e. ran (,) /\ ( vol* ` A ) e. RR ) ->
      ( F ` A ) e. ( <_ i^i ( RR X. RR ) ) ) $=
      ( va vb cioo wcel covol cfv cr wa cle cxp cxr c0 wceq cc0 cop wi ffvelrni
      crn cin inss1 adantr sseldi clt cinf csup cif ioorval iftrue sylan9eq 0re
      ioorf opelxpi mp2an syl6eqel wne cv co wrex cpw wf wfn wb ioof ffn ovelrn
      ioorinv2 adantl ioorcl2 ancoms eqeltrd fveq2 eleq1d neeq1 anbi12d imbi12d
      mp2b syl mpbiri a1i rexlimivv sylbi impl pm2.61dane elind ) BGUBZHZBIJZKH
      ZLZMKKNZBCJZWMMOONZUCZMWOMWPUDWJWOWQHWLWIWQBCACDUOUAUEUFWMWOWNHZBPWMBPQZL
      WORRSZWNWMWSWOWSWTBOUGUHBOUGUISZUJZWTWJWOXBQWLABCDUKUEWSWTXAULUMRKHZXCWTW
      NHUNUNRRKKUPUQURWJWLBPUSZWRWJBEUTZFUTZGVAZQZFOVBEOVBZWLXDLZWRTZWPKVCZGVDG
      WPVEWJXIVFVGWPXLGVHEFOOBGVIVTXHXKEFOOXHXKTXEOHXFOHLXHXKXGIJZKHZXGPUSZLZXG
      CJZWNHZTXPXQXEXFSZWNXOXQXSQXNAXEXFCDVJVKXPXEKHXFKHLZXSWNHXOXNXTXEXFVLVMXE
      XFKKUPWAVNXHXJXPWRXRXHWLXNXDXOXHWKXMKBXGIVOVPBXGPVQVRXHWOXQWNBXGCVOVPVSWB
      WCWDWEWFWGWH $.
  $}

  ${
    $d a f i j k n r x y z F $.  $d a i j k m n w x y z G $.  $d j n x y z K $.
    $d a j k m n x y z A $.  $d a i j k m n x y z C $.  $d i j k n w x y z M $.
    $d m n E $.  $d n x y z H $.  $d n x y z J $.  $d i j n z N $.  $d n y S $.
    $d a f i j k m n r x y z ph $.  $d a i j k m n x y z T $.
    uniioombl.1 $e |- ( ph -> F : NN --> ( <_ i^i ( RR X. RR ) ) ) $.
    $( A union of closed intervals differs from the equivalent union of open
       intervals by a nullset.  (Contributed by Mario Carneiro,
       25-Mar-2015.) $)
    uniiccdif $p |- ( ph -> ( U. ran ( (,) o. F ) C_ U. ran ( [,] o. F ) /\
      ( vol* ` ( U. ran ( [,] o. F ) \ U. ran ( (,) o. F ) ) ) = 0 ) ) $=
      ( vx cioo cicc wss cfv wceq c1st c2nd cn wcel cr wbr syl wfn cvv cdom com
      ccom crn cuni cdif covol cc0 cima cun ssun1 cv ciun csn wa co cpr cle w3a
      cxp cin wf ovolfcl sylan cxr rexr id prunioo syl3an fvco3 inss2 ffvelrnda
      sseldi 1st2nd2 df-ov syl6eqr eqtrd df-pr preq12d syl5eqr uneq12d 3eqtr4rd
      cop fveq2d iuneq2dv cpw iccf ffn ax-mp rexpssxrxp sstri fss sylancl fnfco
      sylancr fniunfv iunun ioof wfun cdm wfo fo1st fofn ssv fnfun fndm eqimss2
      dfimafn2 syl2anc fnima eqtr3d rnco2 syl6eq fo2nd syl5eq 3eqtr3d syl5sseqr
      3syl ovolficcss ssdifssd ccrd cres con0 omelon nnenom ensymi isnumi mp2an
      cen fofun fof fdmi sseqtr4i fores dffn4 sylib foco fodomnum mpsyl domentr
      unctb reldom brrelexi ssid syl5sseq ssundif ssdomg sylc domtr ovolctb2
      jca ) AEBUAZUBUCZFBUAZUBUCZGUUMUUKUDZUEHUFIZAUUKJBUBZUGZKUUPUGZUHZUHZUUKU
      UMUUKUUSUIADLDUJZUULHZUKZDLUVAUUJHZUVAJBUAZHZULZUVAKBUAZHZULZUHZUHZUKZUUM
      UUTADLUVBUVLAUVALMZUMZUVABHZJHZUVPKHZEUNZUVQUVRUOZUHZUVQUVRFUNZUVLUVBUVOU
      VQNMZUVRNMZUVQUVRUPOZUQZUWAUWBIZALUPNNURZUSZBUTZUVNUWFCBUVAVAVBUWCUVQVCMU
      WDUVRVCMUWEUWEUWGUVQVDUVRVDUWEVEUVQUVRVFVGPUVOUVDUVSUVKUVTUVOUVDUVPEHZUVS
      AUWJUVNUVDUWKICLUWIUVAEBVHVBUVOUWKUVQUVRWAZEHUVSUVOUVPUWLEUVOUVPUWHMUVPUW
      LIUVOUWIUWHUVPUPUWHVIZALUWIUVABCVJVKUVPNNVLPZWBUVQUVREVMVNVOUVOUVKUVFUVIU
      OUVTUVFUVIVPUVOUVFUVQUVIUVRAUWJUVNUVFUVQICLUWIUVAJBVHVBAUWJUVNUVIUVRICLUW
      IUVAKBVHVBVQVRVSUVOUVBUVPFHZUWBAUWJUVNUVBUWOICLUWIUVAFBVHVBUVOUWOUWLFHUWB
      UVOUVPUWLFUWNWBUVQUVRFVMVNVOVTWCAUULLQZUVCUUMIAFVCVCURZQZLUWQBUTZUWPUWQVC
      WDZFUTUWRWEUWQUWTFWFWGAUWJUWIUWQGUWSCUWIUWHUWQUWMWHWILUWIUWQBWJWKZUWQLFBW
      LWMDLUULWNPAUVMDLUVDUKZDLUVKUKZUHUUTDLUVDUVKWOAUXBUUKUXCUUSAUUJLQZUXBUUKI
      AEUWQQZUWSUXDUWQNWDZEUTUXEWPUWQUXFEWFWGUXAUWQLEBWLWMDLUUJWNPAUXCDLUVGUKZD
      LUVJUKZUHUUSDLUVGUVJWOAUXGUUQUXHUURAUXGUVEUBZUUQAUVELUGZUXGUXIAUVEWQZLUVE
      WRZGZUXJUXGIAUVELQZUXKAJRQZLRBUTZUXNRRJWSZUXOWTRRJXAWGAUWJUWIRGUXPCUWIXBL
      UWIRBWJWKZRLJBWLWMZLUVEXCPAUXNUXLLIUXMUXSLUVEXDLUXLXEXPDLUVEXFXGAUXNUXJUX
      IIUXSLUVEXHPXIJBXJXKAUXHUVHUBZUURAUVHLUGZUXHUXTAUVHWQZLUVHWRZGZUYAUXHIAUV
      HLQZUYBAKRQZUXPUYERRKWSZUYFXLRRKXAWGUXRRLKBWLWMZLUVHXCPAUYEUYCLIUYDUYHLUV
      HXDLUYCXEXPDLUVHXFXGAUYEUYAUXTIUYHLUVHXHPXIKBXJXKVSXMVSXMXNZXOAUUNNGUUNLS
      OZUUOAUUMNUUKAUWJUUMNGCBXQPXRAUUNTSOZTLYGOZUYJAUUNUUSSOZUUSTSOZUYKAUUSRMZ
      UUNUUSGZUYMAUYNUYOAUUQTSOZUURTSOZUYNAUUQLSOZLTYGOZUYQLXSWRMZALUUQJUUPXTZB
      UAZWSZUYSTYAMUYLVUAYBLTYCYDZTLYEYFZAUUPUUQVUBWSZLUUPBWSZVUDJWQZUUPJWRZGVU
      GUXQVUIWTRRJYHWGUUPRVUJUUPXBZRRJUXQRRJUTWTRRJYIWGYJYKUUPJYLYFABLQZVUHAUWJ
      VULCLUWIBWFPLBYMYNZLUUPUUQVUBBYOWMLUUQVUCYPYQYCUUQLTYRWKAUURLSOZUYTUYRVUA
      ALUURKUUPXTZBUAZWSZVUNVUFAUUPUURVUOWSZVUHVUQKWQZUUPKWRZGVURUYGVUSXLRRKYHW
      GUUPRVUTVUKRRKUYGRRKUTXLRRKYIWGYJYKUUPKYLYFVUMLUUPUURVUOBYOWMLUURVUPYPYQY
      CUURLTYRWKUUQUURYSXGZUUSTSYTUUAPAUUMUUTGUYPAUUMUUMUUTUUMUUBUYIUUCUUMUUKUU
      SUUDYNUUNUUSRUUEUUFVVAUUNUUSTUUGXGVUEUUNTLYRWKUUNUUHXGUUI $.

    uniioombl.2 $e |- ( ph -> Disj_ x e. NN ( (,) ` ( F ` x ) ) ) $.
    uniioombl.3 $e |- S = seq 1 ( + , ( ( abs o. - ) o. F ) ) $.
    $( A disjoint union of open intervals has volume equal to the sum of the
       volume of the intervals.  (This proof does not use countable choice,
       unlike ~ voliun .)  Lemma 565Ca of [Fremlin5] p. 213.  (Contributed by
       Mario Carneiro, 26-Mar-2015.) $)
    uniioovol $p |- ( ph ->
      ( vol* ` U. ran ( (,) o. F ) ) = sup ( ran S , RR* , < ) ) $=
      ( cioo covol cfv cxr wceq cle wbr cn cr wf wss wcel syl ccom crn cuni clt
      vy vn csup cxp cin ssid ovollb sylancl cv wral wa c1 cfz co ciun cvol csu
      caddc cabs cmin cseq c2nd c1st adantr elfznn eqid ovolfsval cdm fvco3 cop
      syl2an inss2 ffvelrn sseldi 1st2nd2 fveq2d syl6eqr ioombl syl6eqel mblvol
      df-ov eqtrd w3a ovolfcl ovolioo 3eqtrd eqtr4d nnuz syl6eleq simp2d simp1d
      cuz simpr resubcld eqeltrd recnd fsumser fveq1i cfn wdisj fzfid ralrimiva
      syl6reqr jca ssriv sylan disjeq2dv mpbird disjss1 mpsyl volfiniun syl3anc
      finiunmbl syl2anc 3eqtr2d iunss1 mp1i cpw wfn ioof rexpssxrxp fss sylancr
      sstri fco ffn fniunfv 3syl sseqtrd frn sspwuni sylib ovolss cc0 cpnf wb
      eqbrtrd cico ovolsf breq1 ralrn icossxr syl6ss supxrleub supxrcl xrletri3
      ovolcl mpbir2and ) AHDUAZUBZUCZIJZCUBZKUDUGZLZUUPUURMNZUURUUPMNZAOMPPUHZU
      IZDQZUUOUUORUUTEUUOUJUUOCDGUKULAUVAUEUMZUUPMNZUEUUQUNZAUVGUFUMZCJZUUPMNZU
      FOUNZAUVJUFOAUVHOSZUOZUVIBUPUVHUQURZBUMZUUMJZUSZIJZUUPMUVMUVIUVNUVPUTJZBV
      AZUVQUTJZUVRUVMUVTUVHVBVCVDUADUAZUPVEZJUVIUVMUVSBUWBUPUVHUVMUVOUVNSZUOZUV
      OUWBJZUVODJZVFJZUWGVGJZVDURZUVSUVMUVDUVOOSZUWFUWJLUWDAUVDUVLEVHZUVOUVHVIZ
      DUWBUVOUWBVJZVKVOUWEUVSUVPIJZUWIUWHHURZIJZUWJUWEUVPUTVLZSZUVSUWOLUWEUVPUW
      PUWRUWEUVPUWGHJZUWPUVMUVDUWKUVPUWTLZUWDUWLUWMOUVCUVOHDVMZVOUWEUWTUWIUWHVN
      ZHJUWPUWEUWGUXCHUWEUWGUVBSUWGUXCLUWEUVCUVBUWGMUVBVPZUVMUVDUWKUWGUVCSUWDUW
      LUWMOUVCUVODVQVOVRUWGPPVSTVTUWIUWHHWEWAWFZUWIUWHWBWCZUVPWDTUWEUVPUWPIUXEV
      TUWEUWIPSZUWHPSZUWIUWHMNZWGZUWQUWJLUVMUVDUWKUXJUWDUWLUWMDUVOWHVOZUWIUWHWI
      TWJZWKUVMUVHOUPWPJAUVLWQWLWMUWEUVSUWEUVSUWJPUXLUWEUWHUWIUWEUXGUXHUXIUXKWN
      UWEUXGUXHUXIUXKWOWRWSZWTXAUVHCUWCGXBXGUVMUVNXCSZUWSUVSPSZUOZBUVNUNBUVNUVP
      XDZUWAUVTLUVMUPUVHXEZUVMUXPBUVNUWEUWSUXOUXFUXMXHXFUVNORZUVMBOUVPXDZUXQBUV
      NOUWMXIZAUXTUVLAUXTBOUWTXDFABOUVPUWTAUVDUWKUXAEUXBXJXKXLVHBUVNOUVPXMXNUVN
      UVPBXOXPUVMUVQUWRSZUWAUVRLUVMUXNUWSBUVNUNUYBUXRUVMUWSBUVNUXFXFUVNUVPBXQXR
      UVQWDTXSUVMUVQUUORUUOPRZUVRUUPMNUVMUVQBOUVPUSZUUOUXSUVQUYDRUVMUYABUVNOUVP
      XTYAUVMOPYBZUUMQZUUMOYCUYDUUOLAUYFUVLAKKUHZUYEHQOUYGDQZUYFYDAUVDUVCUYGRUY
      HEUVCUVBUYGUXDYEYHOUVCUYGDYFULOUYGUYEHDYIYGZVHOUYEUUMYJBOUUMYKYLYMAUYCUVL
      AUUNUYERZUYCAUYFUYJUYIOUYEUUMYNTUUNPYOYPZVHUVQUUOYQXRUUAXFAOYRYSUUBURZCQZ
      COYCUVGUVKYTAUVDUYMECDUWBUWNGUUCZTOUYLCYJUVFUVJUEUFOCUVEUVIUUPMUUDUUEYLXL
      AUUQKRZUUPKSZUVAUVGYTAUUQUYLKAUVDUYMUUQUYLREUYNOUYLCYNYLYRYSUUFUUGZAUYCUY
      PUYKUUOUUKTZUEUUQUUPUUHXRXLAUYPUURKSZUUSUUTUVAUOYTUYRAUYOUYSUYQUUQUUITUUP
      UURUUJXRUUL $.

    $( An almost-disjoint union of closed intervals (disjoint interiors) has
       volume equal to the sum of the volume of the intervals.  (This proof
       does not use countable choice, unlike ~ voliun .)  (Contributed by Mario
       Carneiro, 25-Mar-2015.) $)
    uniiccvol $p |- ( ph ->
      ( vol* ` U. ran ( [,] o. F ) ) = sup ( ran S , RR* , < ) ) $=
      ( cicc ccom cfv cxr wceq cle cn cr wf wss cioo wcel syl crn cuni clt csup
      covol wbr cxp cin ssid ovollb2 sylancl uniioovol cv ciun wral wa c1st cop
      co ioossicc df-ov 3sstr3i a1i inss2 ffvelrn sseldi 1st2nd2 fveq2d 3sstr4d
      c2nd fvco3 sylan ralrimiva ss2iun wfn cpw ioof ffn ax-mp rexpssxrxp sstri
      fss fnfco sylancr fniunfv iccf 3sstr3d ovolficcss ovolss syl2anc eqbrtrrd
      wb ovolcl cc0 cpnf cico cabs cmin eqid ovolsf frn icossxr syl6ss xrletri3
      supxrcl mpbir2and ) AHDIZUAUBZUEJZCUAZKUCUDZLZXIXKMUFZXKXIMUFZANMOOUGZUHZ
      DPZXHXHQXMEXHUIXHCDGUJUKARDIZUAUBZUEJZXKXIMABCDEFGULAXSXHQXHOQZXTXIMUFABN
      BUMZXRJZUNZBNYBXGJZUNZXSXHAYCYEQZBNUOYDYFQAYGBNAXQYBNSZYGEXQYHUPZYBDJZRJZ
      YJHJZYCYEYIYJUQJZYJVJJZURZRJZYOHJZYKYLYPYQQYIYMYNRUSYMYNHUSYPYQYMYNUTYMYN
      RVAYMYNHVAVBVCYIYJYORYIYJXOSYJYOLYIXPXOYJMXOVDZNXPYBDVEVFYJOOVGTZVHYIYJYO
      HYSVHVINXPYBRDVKNXPYBHDVKVIVLVMBNYCYEVNTAXRNVOZYDXSLARKKUGZVOZNUUADPZYTUU
      AOVPZRPUUBVQUUAUUDRVRVSAXQXPUUAQUUCEXPXOUUAYRVTWANXPUUADWBUKZUUANRDWCWDBN
      XRWETAXGNVOZYFXHLAHUUAVOZUUCUUFUUAKVPZHPUUGWFUUAUUHHVRVSUUEUUANHDWCWDBNXG
      WETWGAXQYAEDWHTZXSXHWIWJWKAXIKSZXKKSZXLXMXNUPWLAYAUUJUUIXHWMTAXJKQUUKAXJW
      NWOWPUSZKANUULCPZXJUULQAXQUUMECDWQWRIDIZUUNWSGWTTNUULCXATWNWOXBXCXJXETXIX
      KXDWJXF $.

    ${
      uniioombl.a $e |- A = U. ran ( (,) o. F ) $.
      uniioombl.e $e |- ( ph -> ( vol* ` E ) e. RR ) $.
      uniioombl.c $e |- ( ph -> C e. RR+ ) $.
      uniioombl.g $e |- ( ph -> G : NN --> ( <_ i^i ( RR X. RR ) ) ) $.
      uniioombl.s $e |- ( ph -> E C_ U. ran ( (,) o. G ) ) $.
      uniioombl.t $e |- T = seq 1 ( + , ( ( abs o. - ) o. G ) ) $.
      uniioombl.v $e |- ( ph ->
        sup ( ran T , RR* , < ) <_ ( ( vol* ` E ) + C ) ) $.
      $( Lemma for ~ uniioombl .  (Contributed by Mario Carneiro,
         25-Mar-2015.) $)
      uniioombllem1 $p |- ( ph -> sup ( ran T , RR* , < ) e. RR ) $=
        ( cr crn wss c0 wne cxr clt csup cpnf wbr wcel cc0 co cn wf cle cxp cin
        cico cabs cmin ccom eqid ovolsf syl frn rge0ssre syl6ss cdm c1 1nn wceq
        fdm syl5eleqr ne0i dm0rn0 necon3bii sylib covol cfv caddc icossxr rpred
        supxrcl readdcld rexrd pnfxr a1i ltpnf xrlelttrd supxrbnd syl3anc ) AFU
        AZTUBWLUCUDZWLUEUFUGZUHUFUIWNTUJAWLUKUHURULZTAUMWOFUNZWLWOUBAUMUOTTUPUQ
        IUNWPPFIUSUTVAIVAZWQVBRVCVDZUMWOFVEVDZVFVGAFVHZUCUDZWMAVIWTUJXAAVIUMWTV
        JAWPWTUMVKWRUMWOFVLVDVMWTVIVNVDWTUCWLUCFVOVPVQAWNGVRVSZDVTULZUHAWLUEUBW
        NUEUJAWLWOUEWSUKUHWAVGWLWCVDAXCAXBDNADOWBWDZWEUHUEUJAWFWGSAXCTUJXCUHUFU
        IXDXCWHVDWIWLWJWK $.

      $( Lemma for ~ uniioombl .  (Contributed by Mario Carneiro,
         7-May-2015.) $)
      uniioombllem2a $p |- ( ( ( ph /\ J e. NN ) /\ z e. NN ) ->
        ( ( (,) ` ( F ` z ) ) i^i ( (,) ` ( G ` J ) ) ) e. ran (,) ) $=
        ( cn wcel wa cv cfv cioo cin c1st cle wbr cif c2nd co crn cop cxp inss2
        cr wceq wf adantr ffvelrnda sseldi 1st2nd2 fveq2d df-ov syl6eqr ineq12d
        syl cxr ovolfcl sylan simp1d rexrd simp2d iooin syl22anc eqtrd ioorebas
        w3a syl6eqel ) AKUBUCZUDZCUEZUBUCZUDZWEIUFZUGUFZKJUFZUGUFZUHZWHUIUFZWJU
        IUFZUJUKWNWMULZWHUMUFZWJUMUFZUJUKWPWQULZUGUNZUGUOWGWLWMWPUGUNZWNWQUGUNZ
        UHZWSWGWIWTWKXAWGWIWMWPUPZUGUFWTWGWHXCUGWGWHUSUSUQZUCWHXCUTWGUJXDUHZXDW
        HUJXDURZWDUBXEWEIAUBXEIVAZWCLVBZVCVDWHUSUSVEVJVFWMWPUGVGVHWDWKXAUTWFWDW
        KWNWQUPZUGUFXAWDWJXIUGWDWJXDUCWJXIUTWDXEXDWJXFAUBXEKJRVCVDWJUSUSVEVJVFW
        NWQUGVGVHVBVIWGWMVKUCWPVKUCWNVKUCZWQVKUCZXBWSUTWGWMWGWMUSUCZWPUSUCZWMWP
        UJUKZWDXGWFXLXMXNWAXHIWEVLVMZVNVOWGWPWGXLXMXNXOVPVOWDXJWFWDWNWDWNUSUCZW
        QUSUCZWNWQUJUKZAUBXEJVAWCXPXQXRWARJKVLVMZVNVOVBWDXKWFWDWQWDXPXQXRXSVPVO
        VBWMWPWNWQVQVRVSWOWRVTWB $.

      ${
        uniioombllem2.h $e |- H = ( z e. NN |->
          ( ( (,) ` ( F ` z ) ) i^i ( (,) ` ( G ` J ) ) ) ) $.
        uniioombllem2.k $e |- K = ( x e. ran (,) |->
          if ( x = (/) , <. 0 , 0 >. ,
          <. inf ( x , RR* , < ) , sup ( x , RR* , < ) >. ) ) $.
        $( Lemma for ~ uniioombl .  (Contributed by Mario Carneiro,
           26-Mar-2015.)  (Revised by Mario Carneiro, 11-Dec-2016.)  (Revised
           by AV, 13-Sep-2020.) $)
        uniioombllem2 $p |- ( ( ph /\ J e. NN ) -> seq 1 ( + , ( vol* o. H ) )
          ~~> ( vol* ` ( ( (,) ` ( G ` J ) ) i^i A ) ) ) $=
          ( vn vy cn wcel wa caddc cabs cmin ccom c1 cseq crn cr clt csup covol
          cfv cioo cin cli cv nnuz eqid 1zzd eqidd cc0 cle wbr cpnf cico co cxp
          cmpt uniioombllem2a wss inss2 a1i c1st c2nd cop wceq ffvelrnda sseldi
          1st2nd2 syl fveq2d df-ov syl6eqr ioossre syl6eqss w3a ovolfcl ovolioo
          wf sylan eqtrd simp2d simp1d resubcld eqeltrd ovolsscl syl3anc adantr
          ioorcl syl2anc fmptd ioorf feqmptd fveq2 fmptco feq1d ovolfsf elrege0
          cxr mpbird sylib wral wrex cuni wdisj cvv fvex fvmpt2 mpan2 ralrimiva
          inss1 ciun ioof wfn ffn fniunfv eqtr3d syl6ss c0 wne sylan9eq ioorinv
          simpld simprd fveq1d eqeq12d rspccva disjss2 sylc uniioovol mpteq2dva
          ineq1d rexpssxrxp sstri cpw 3eqtr4d rneqd unieqd inex1 syl6eq iuneq2i
          incom iunin2 eqtri syl5eqr fvco3 iuneq2dv ax-mp sylancl fnfco sylancr
          fss ineq2d 3eqtr2d ovolsf fnfvelrn frn icossxr supxrub syldan ralbidv
          breq2 rspcev isumsup2 ovolfs2 coass coeq2d syl5eq seqeq3d cdm 1nn fdm
          rge0ssre syl5eleqr ne0i necon3bii breq1 ralrn rexbidv supxrre 3brtr3d
          dm0rn0 wb ) ALUHUIZUJZUKULUMUNMKUNZUNZUOUPZUXHUQZURUSUTZUKVAKUNZUOUPL
          JVBZVCVBZDVDZVAVBZVEUXEBUFVFZUXGVBZUGUFUXGUXHUOUHVGUXHVHZUXEVIUXEUXPU
          HUIUJZUXQVJUXSUXQURUIZVKUXQVLVMZUXSUXQVKVNVOVPZUIUXTUYAUJUXEUHUYBUXPU
          XGUXEUHVLURURVQZVDZUXFWSZUHUYBUXGWSUXEUYEUHUYDCUHCVFZIVBZVCVBZUXMVDZM
          VBZVRZWSUXECUHUYJUYDUYKUXEUYFUHUIZUJZUYIVCUQZUIZUYIVAVBURUIZUYJUYDUIA
          BCDEFGHIJLNOPQRSTUAUBUCVSZUXEUYPUYLUXEUYIUXMVTZUXMURVTZUXMVAVBZURUIZU
          YPUYRUXEUYHUXMWAWBUXEUXMUXLWCVBZUXLWDVBZVCVPZURUXEUXMVUBVUCWEZVCVBVUD
          UXEUXLVUEVCUXEUXLUYCUIUXLVUEWFUXEUYDUYCUXLVLUYCWAZAUHUYDLJTWGWHUXLURU
          RWIWJWKVUBVUCVCWLWMZVUBVUCWNWOZUXEUYTVUCVUBUMVPZURUXEUYTVUDVAVBZVUIUX
          EUXMVUDVAVUGWKUXEVUBURUIZVUCURUIZVUBVUCVLVMZWPZVUJVUIWFAUHUYDJWSUXDVU
          NTJLWQWTZVUBVUCWRWJXAUXEVUCVUBUXEVUKVULVUMVUOXBUXEVUKVULVUMVUOXCXDXEZ
          UYIUXMXFXGXHBUYIMUEXIXJZUYKVHZXKUXEUHUYDUXFUYKUXECUGUHUYNUYIUGVFZMVBU
          YJKMUYQKCUHUYIVRZWFUXEUDWBZUXEUGUYNVLXSXSVQZVDZMUYNVVCMWSUXEBMUEXLWBX
          MVUSUYIMXNXOZXPXTZUXFUXGUXGVHZXQWJWGUXQXRYAZUUCUXSUXTUYAVVGUUDUXEUXIX
          SUSUTZURUIVUSUXHVBZVVHVLVMZUGUHYBZVVIBVFZVLVMZUGUHYBZBURYCZUXEVVHUXOU
          RUXEVCUXFUNZUQZYDZVAVBVVHUXOUXEBUXHUXFVVEUXEVVLUXFVBZVCVBZVVLIVBZVCVB
          ZVTZBUHYBBUHVWBYEZBUHVVTYEUXEVWCBUHUXEVVLUHUIZUJVVTVWBUXMVDZVWBUXEUYF
          UXFVBZVCVBZUYIWFZCUHYBVWEVVTVWFWFZUXEVWICUHUYMVWHUYJVCVBZUYIUYMVWGUYJ
          VCUXEUYLVWGUYFUYKVBZUYJUXEUYFUXFUYKVVDUUEUYLUYJYFUIVWLUYJWFUYIMYGCUHU
          YJYFUYKVURYHYIUUAWKUYMUYOVWKUYIWFUYQBUYIMUEUUBWJZXAYJVWIVWJCVVLUHUYFV
          VLWFZVWHVVTUYIVWFVWNVWGVVSVCUYFVVLUXFXNWKVWNUYHVWBUXMVWNUYGVWAVCUYFVV
          LIXNWKUULUUFUUGWTVWBUXMYKWOYJAVWDUXDOXHBUHVVTVWBUUHUUIUXRUUJUXEVVRUXN
          VAUXEVVRKUQZYDZUXMCUHUYHYLZVDZUXNUXEVVQVWOUXEVVPKUXECUHVWKVRVUTVVPKUX
          ECUHVWKUYIVWMUUKUXECUGUHVVBUYJVUSVCVBVWKUXFVCUYMUYDVVBUYJUYDUYCVVBVUF
          UUMUUNZVUQWHVVDUXEUGVVBURUUOZVCVVBVWTVCWSZUXEYMWBXMVUSUYJVCXNXOVVAUUP
          ZUUQUURUXEVWRCUHUYFKVBZYLZVWPVXDCUHUXMUYHVDZYLVWRCUHVXCVXEUYLVXCUYIVX
          EUYLUYIYFUIVXCUYIWFUYHUXMUYGVCYGUUSCUHUYIYFKUDYHYIUYHUXMUVBUUTUVACUHU
          XMUYHUVCUVDUXEKUHYNZVXDVWPWFUXEUHUYNKWSVXFUXECUHUYIUYNKUYQUDXKUHUYNKY
          OWJCUHKYPWJUVEUXEVWQDUXMUXECUHUYFVCIUNZVBZYLZVWQDUXECUHVXHUYHUXEUHUYD
          IWSZUYLVXHUYHWFAVXJUXDNXHZUHUYDUYFVCIUVFWTUVGUXEVXIVXGUQYDZDUXEVXGUHY
          NZVXIVXLWFUXEVCVVBYNZUHVVBIWSZVXMVXAVXNYMVVBVWTVCYOUVHUXEVXJUYDVVBVTV
          XOVXKVWSUHUYDVVBIUVLUVIVVBUHVCIUVJUVKCUHVXGYPWJQWMYQUVMUVNWKYQZUXEUXN
          UXMVTZUYSVUAUXOURUIVXQUXEUXMDYKWBVUHVUPUXNUXMXFXGXEUXEVVJUGUHUXEVUSUH
          UIZVVIUXIUIZVVJUXEUXHUHYNZVXRVXSUXEUHUYBUXHWSZVXTUXEUYEVYAVVEUXHUXFUX
          GVVFUXRUVOWJZUHUYBUXHYOWJZUHVUSUXHUVPWTUXEUXIXSVTVXSVVJUXEUXIUYBXSUXE
          VYAUXIUYBVTVYBUHUYBUXHUVQWJZVKVNUVRYRUXIVVIUVSWTUVTYJVVNVVKBVVHURVVLV
          VHWFVVMVVJUGUHVVLVVHVVIVLUWBUWAUWCXJZUWDUXEUXGUXKUKUOUXEUXGVAVCUNUXFU
          NZUXKUXEUYEUXGVYFWFVVEUXFUXGVVFUWEWJUXEVYFVAVVPUNUXKVAVCUXFUWFUXEVVPK
          VAVXBUWGUWHXAUWIUXEVVHUXJUXOUXEUXIURVTUXIYSYTZUYFVVLVLVMZCUXIYBZBURYC
          ZVVHUXJWFUXEUXIUYBURVYDUWMYRUXEUXHUWJZYSYTZVYGUXEUOVYKUIVYLUXEUOUHVYK
          UWKUXEVYAVYKUHWFVYBUHUYBUXHUWLWJUWNVYKUOUWOWJVYKYSUXIYSUXHUXBUWPYAUXE
          VYJVVOVYEUXEVYIVVNBURUXEVXTVYIVVNUXCVYCVYHVVMCUGUHUXHUYFVVIVVLVLUWQUW
          RWJUWSXTBCUXIUWTXGVXPYQUXA $.
      $}

      ${
        uniioombl.m $e |- ( ph -> M e. NN ) $.
        uniioombl.m2 $e |- ( ph ->
          ( abs ` ( ( T ` M ) - sup ( ran T , RR* , < ) ) ) < C ) $.
        uniioombl.k $e |- K = U. ( ( (,) o. G ) " ( 1 ... M ) ) $.
        $( Lemma for ~ uniioombl .  (Contributed by Mario Carneiro,
           8-May-2015.) $)
        uniioombllem3a $p |- ( ph ->
          ( K = U_ j e. ( 1 ... M ) ( (,) ` ( G ` j ) ) /\
            ( vol* ` K ) e. RR ) ) $=
          ( c1 cfz co cv cfv cioo ciun wceq covol cr wcel ccom cima cuni cn cpw
          wf wfun cxr cxp ioof cle cin wss inss2 rexpssxrxp fss sylancl sylancr
          sstri fco ffun funiunfv 3syl elfznn syl2an iuneq2dv eqtr3d syl5eq csu
          fvco3 wbr wral wa c1st c2nd cop ffvelrn sseldi 1st2nd2 fveq2d syl6eqr
          syl df-ov ioossre syl6eqss ralrimiva iunss eqsstrd fzfid cmin ovolfcl
          sylibr w3a ovolioo simp2d simp1d resubcld eqeltrd fsumrecl ovolfiniun
          eqtrd cfn jca syl2anc eqbrtrd ovollecl syl3anc ) AKGUFLUGUHZGUIZJUJZU
          KUJZULZUMKUNUJZUOUPZAKUKJUQZYDURUSZYHUEAGYDYEYKUJZULZYLYHAUTUOVAZYKVB
          ZYKVCYNYLUMAVDVDVEZYOUKVBUTYQJVBZYPVFAUTVGUOUOVEZVHZJVBZYTYQVIYRSYTYS
          YQVGYSVJZVKVOUTYTYQJVLVMUTYQYOUKJVPVNUTYOYKVQGYDYKVRVSAGYDYMYGAUUAYEU
          TUPZYMYGUMYEYDUPZSYELVTZUTYTYEUKJWFWAWBWCWDZAKUOVIYDYGUNUJZGWEZUOUPYI
          UUHVGWGYJAKYHUOUUFAYGUOVIZGYDWHYHUOVIAUUIGYDAUUDWIZYGYFWJUJZYFWKUJZUK
          UHZUOUUJYGUUKUULWLZUKUJUUMUUJYFUUNUKUUJYFYSUPYFUUNUMUUJYTYSYFUUBAUUAU
          UCYFYTUPUUDSUUEUTYTYEJWMWAWNYFUOUOWOWRWPUUKUULUKWSWQZUUKUULWTXAZXBGYD
          YGUOXCXHXDAYDUUGGAUFLXEZUUJUUGUULUUKXFUHZUOUUJUUGUUMUNUJZUURUUJYGUUMU
          NUUOWPUUJUUKUOUPZUULUOUPZUUKUULVGWGZXIZUUSUURUMAUUAUUCUVCUUDSUUEJYEXG
          WAZUUKUULXJWRXQUUJUULUUKUUJUUTUVAUVBUVDXKUUJUUTUVAUVBUVDXLXMXNZXOAYIY
          HUNUJZUUHVGAKYHUNUUFWPAYDXRUPUUIUUGUOUPZWIZGYDWHUVFUUHVGWGUUQAUVHGYDU
          UJUUIUVGUUPUVEXSXBYDYGGXPXTYAKUUHYBYCXS $.

        $( Lemma for ~ uniioombl .  (Contributed by Mario Carneiro,
           26-Mar-2015.) $)
        uniioombllem3 $p |- ( ph ->
          ( ( vol* ` ( E i^i A ) ) + ( vol* ` ( E \ A ) ) ) <
        ( ( ( vol* ` ( K i^i A ) ) + ( vol* ` ( K \ A ) ) ) + ( C + C ) ) ) $=
          ( vj vz vw vn vk cin covol cfv cdif caddc co clt wss cr wcel a1i cioo
          inss1 ccom crn cuni cc0 wceq simpld cn cle cxp sstrd ovolsscl syl3anc
          wf syl difssd c1 cfz cv wral wa c1st c2nd elfznn syl2an sseldi fveq2d
          syl6eqr ralrimiva readdcld cuz cima cun wfn cxr sylancl ffn cmin nnuz
          sylibr peano2nnd syl6eleq syl5eq cc nncnd ax-1cn eqtrd syl5sseqr csup
          syl6eq ovollb unss1 ax-mp sseqtrd unss2 eqsstri syl6ss ovolss syl2anc
          ovolun syl22anc eqid resubcld nnaddcl cz nnzd adantr adantl wb mpbird
          wbr csu simp2d simp1d recnd fsumser ad2antrr oveq12d lelttrd cicc cop
          uniiccdif ovolficcss ciun uniioombllem3a inss2 ffvelrn df-ov syl6eqss
          1st2nd2 ioossre iunss eqsstrd simprd rpred ssun2 cpw rexpssxrxp sstri
          ioof fss fco sylancr fnima uzsplit pncan oveq2d uneq1d imaeq2d eqtr3d
          imaundi unieqd uniun uneq1i uniioombllem1 ssid ssrin indir letrd cpnf
          ovollecl cico rge0ssre cabs ovolsf ffvelrnd cmpt cseq rexrd ffvelrnda
          id syl2anr syldan fmptd frn icossxr supxrcl wrex addcom eleq2d biimpa
          1zzd eluzsub syl6eleqr eluzelz zcnd npcand eqcomd oveq1 eqeq2d rspcev
          cvv vex elrnmpt ssrdv imass2 rnco2 eqidd feqmptd fveq2 fmptco syl5eqr
          ex rneqd imaco 3sstr4g unissd fveq1i nnred ltp1d fzdisj cn0 nn0addge1
          c0 nnnn0 sylan elfz5 fzsplit w3a ovolfcl fsumsplit ovolfsval peano2zd
          fzfid adantlr elfzuz eluznn fsumshftm nncn pncan2d sumeq1d fvex fvmpt
          pncan2 simpr 3eqtr3d fnfvelrn eqeltrrd supxrub leaddsub2d mpbid breq1
          3eqtrd ralrn supxrleub xrletrd ltsub23d ltadd2dd difss ssdifd lt2addd
          absdifltd difundir add4d breqtrd ) AGCUJZUKULZGCUMZUKULZUNUOJCUJZUKUL
[encoded data, 6480 characters]
          IYTVVLAVWBDVWEDAVWBVYFYPADVYGYPZAVWEVYLYPXYIVVOVVP $.

        uniioombl.n $e |- ( ph -> N e. NN ) $.
        uniioombl.n2 $e |- ( ph -> A. j e. ( 1 ... M ) ( abs `
        ( sum_ i e. ( 1 ... N )
          ( vol* ` ( ( (,) ` ( F ` i ) ) i^i ( (,) ` ( G ` j ) ) ) ) -
          ( vol* ` ( ( (,) ` ( G ` j ) ) i^i A ) ) ) ) < ( C / M ) ) $.
        uniioombl.l $e |- L = U. ( ( (,) o. F ) " ( 1 ... N ) ) $.
        $( Lemma for ~ uniioombl .  (Contributed by Mario Carneiro,
           26-Mar-2015.) $)
        uniioombllem4 $p |- ( ph ->
          ( vol* ` ( K i^i A ) ) <_ ( ( vol* ` ( K i^i L ) ) + C ) ) $=
          ( cin covol cfv c1 cfz co caddc cuz cv cioo ciun wss cr wcel a1i ccom
          inss1 crn cuni cima imassrn unissi cicc cdif wceq uniiccdif simpld cn
          cc0 cle cxp ovolficcss syl sstrd cxr clt wbr sylancl syl3anc ovolsscl
          wf cun cmin nnuz syl5eq cc nncnd uneq1d eqtrd syl6eq ioof fss sylancr
          inss2 fco 3syl fvco3 iuneq2dv eqtr3d wfun ffun funiunfv elfznn syl2an
          ineq2d incom iunin2 iuneq2i 3eqtr4g readdcld fveq2d csu fzfid wa wral
          sylib r19.21bi adantr fsumrecl ralrimiva syl2anc cvol syl6eqr eqeltrd
          eqtri c0 wdisj mpbid cmul eqsstri uniioombllem1 ovollb ovollecl ssun2
          csup ssid peano2nnd syl6eleq uzsplit ax-1cn oveq2d iuneq1d iunxun cpw
          pncan wfn rexpssxrxp sstri fniunfv sylan 3eqtr4d indi 3eqtr4ri eqtr3i
          ffn uneq2d syl5sseqr syl6ss rpred ovolun eqbrtrd iunss cfn ovolfiniun
          syl22anc jca cdiv nndivred cdm c1st c2nd ffvelrn sseldi 1st2nd2 df-ov
          cop ioombl syl6eqel adantlr inmbl finiunmbl syl5eqss ioossre syl6eqss
          syl5ss w3a ovolfcl ovolioo simp2d simp1d resubcld mblsplit sslin mp1i
          3sstr4i sseqin2 indifdir difeq12i eqcomd wb fveq2 cbvdisjv ssriv uzss
          ineq1d syl6sseqr uzdisj syl5reqr disjiun syl13anc uneqdifeq absdifltd
          syl5eqr oveq12d ltled mblvol rgenw disjss2 disjss1 volfiniun sumeq2dv
          mpsyl 3eqtr3d breqtrrd lesubaddd eqbrtrrd leadd2d mpbird fsumle chash
          cabs recnd fsumconst cn0 nnnn0 hashfz1 oveq1d nnne0d divcan2d breqtrd
          3eqtrd letrd leadd2dd ) ALCULZUMUNZLMULZUMUNZHUONUPUQZGOUOURUQZUSUNZG
[encoded data, 5520 characters]
          VUKVUMVUNVUM $.

        $( Lemma for ~ uniioombl .  (Contributed by Mario Carneiro,
           25-Aug-2014.) $)
        uniioombllem5 $p |- ( ph ->
          ( ( vol* ` ( E i^i A ) ) + ( vol* ` ( E \ A ) ) ) <_
          ( ( vol* ` E ) + ( 4 x. C ) ) ) $=
          ( vn cin covol cfv cdif caddc co c4 cmul wss wcel inss1 a1i cioo ccom
          cr crn cuni cicc cc0 wceq uniiccdif simpld cn cle wf ovolficcss sstrd
          cxp syl ovolsscl syl3anc difssd readdcld cfz cima imassrn eqsstri cxr
          c1 unissi clt csup wbr uniioombllem1 ssid ovollb sylancl ovollecl 4re
          rpred remulcl sylancr uniioombllem3 ltled uniioombllem4 3sstr4i sscon
          mp1i ovolss syl2anc le2addd recnd add32d cvol cdm ciun cpw wfun inss2
          cv ioof rexpssxrxp sstri fss ffun funiunfv 3syl syl6eqr syl2an eqtr4d
          fco breqtrd letrd leadd1dd addassd c2 2timesd oveq2d cfn wral wa c1st
          fzfid c2nd elfznn fvco3 cop ffvelrn sseldi 1st2nd2 fveq2d df-ov eqtrd
          ioombl syl6eqel ralrimiva finiunmbl eqeltrrd oveq1d 2t2e4 oveq1i 2cnd
          mblsplit mulassd 3eqtrd syl5eqr ) AICUMZUNUOZICUPZUNUOZUQURZLCUMZUNUO
          ZLCUPZUNUOZUQURZDDUQURZUQURZIUNUOZUSDUTURZUQURZAUVJUVLAUVIIVAZIVGVAZU
          WAVGVBZUVJVGVBUWDAICVCVDAIVEKVFZVHZVIZVGUCAUWIVJKVFVHVIZVGAUWIUWJVAUW
          JUWIUPUNUOVKVLAKUBVMVNAVOVPVGVGVTZUMZKVQZUWJVGVAUBKVRWAVSZVSZTUVIIWBW
          CAUVKIVAUWEUWFUVLVGVBAICWDUWOTUVKIWBWCWEZAUVRUVSAUVOUVQAUVNLVAZLVGVAZ
          LUNUOZVGVBZUVOVGVBUWQALCVCVDALUWIVGLUWIVAZALUWGWKNWFURZWGZVIUWIUHUXCU
          WHUWGUXBWHWLWIZVDZUWNVSZAUXAUWIVGVAZUWIUNUOZVGVBZUWTUXEUWNAUXGFVHWJWM
          WNZVGVBUXHUXJVPWOZUXIUWNABCDEFIJKPQRSTUAUBUCUDUEWPZAUWMUWIUWIVAUXKUBU
          WIWQUWIFKUDWRWSUWIUXJWTWCLUWIWBWCZUVNLWBWCZAUVPLVAUWRUWTUVQVGVBALCWDU
          XFUXMUVPLWBWCZWEZADDADUAXBZUXQWEZWEZAUWAUWBTAUSVGVBDVGVBUWBVGVBXAUXQU
          SDXCXDWEAUVMUVTUWPUXSABCDEFIJKLNPQRSTUAUBUCUDUEUFUGUHXEXFAUVTUWAUVSUQ
          URZUVSUQURZUWCVPAUVRUXTUVSUXPAUWAUVSTUXRWEZUXRAUVRUWSDUQURZUXTUXPAUWS
          DUXMUXQWEUYBAUVRLMUMZUNUOZDUQURZLMUPZUNUOZUQURZUYCVPAUVOUVQUYFUYHUXNU
          XOAUYEDAUYDLVAZUWRUWTUYEVGVBUYJALMVCVDUXFUXMUYDLWBWCZUXQWEAUYGLVAUWRU
          WTUYHVGVBALMWDZUXFUXMUYGLWBWCZABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIU
          JUKXGAUVPUYGVAZUYGVGVAUVQUYHVPWOMCVAUYNAVEJVFZWKOWFURZWGZVIZUYOVHZVIM
          CUYQUYSUYOUYPWHWLUKSXHMCLXIXJAUYGLVGUYLUXFVSUVPUYGXKXLXMAUYIUYEUYHUQU
          RZDUQURUYCAUYEDUYHAUYEUYKXNADUXQXNZAUYHUYMXNXOAUWSUYTDUQAMXPXQZVBUWRU
          WTUWSUYTVLAULUYPULYBZUYOUOZXRZMVUBAVUEUYRMAVOVGXSZUYOVQZUYOXTVUEUYRVL
          AWJWJVTZVUFVEVQVOVUHJVQZVUGYCAVOUWLJVQZUWLVUHVAVUIPUWLUWKVUHVPUWKYAZY
          DYEVOUWLVUHJYFWSVOVUHVUFVEJYMXDVOVUFUYOYGULUYPUYOYHYIUKYJAUYPUUAVBVUD
          VUBVBZULUYPUUBVUEVUBVBAWKOUUEAVULULUYPAVUCUYPVBZUUCZVUDVUCJUOZUUDUOZV
          UOUUFUOZVEURZVUBVUNVUDVUOVEUOZVURAVUJVUCVOVBZVUDVUSVLVUMPVUCOUUGZVOUW
          LVUCVEJUUHYKVUNVUSVUPVUQUUIZVEUOVURVUNVUOVVBVEVUNVUOUWKVBVUOVVBVLVUNU
          WLUWKVUOVUKAVUJVUTVUOUWLVBVUMPVVAVOUWLVUCJUUJYKUUKVUOVGVGUULWAUUMVUPV
          UQVEUUNYJUUOVUPVUQUUPUUQUURUYPVUDULUUSXLUUTUXFUXMMLUVEWCUVAYLYNAUYCUW
          ADUQURZDUQURUXTVPAUWSVVCDUXMAUWADTUXQWEZUXQAUWSUXJVVCUXMUXLVVDAUWMUXA
          UWSUXJVPWOUBUXDLFKUDWRWSUEYOYPAUWADDAUWATXNZVUAVUAYQYNYOYPAUYAUWAUVSU
          VSUQURZUQURUWCAUWAUVSUVSVVEAUVSUXRXNZVVGYQAUWBVVFUWAUQAUWBYRYRUTURZDU
          TURZVVFVVHUSDUTUVBUVCAVVIYRYRDUTURZUTURYRUVSUTURVVFAYRYRDAUVDZVVKVUAU
          VFAVVJUVSYRUTADVUAYSYTAUVSVVGYSUVGUVHYTYLYNYO $.
      $}

      $( Lemma for ~ uniioombl .  (Contributed by Mario Carneiro,
         26-Mar-2015.) $)
      uniioombllem6 $p |- ( ph ->
        ( ( vol* ` ( E i^i A ) ) + ( vol* ` ( E \ A ) ) ) <_
          ( ( vol* ` E ) + ( 4 x. C ) ) ) $=
        ( cn vm vj va vy vn vi vz vk cv cfv crn cxr clt csup cmin co cabs covol
        wbr cin cdif caddc c4 cmul cle cuz wral wrex c1 nnuz 1zzd wcel wa eqidd
        cr cli ccom cc0 cpnf cico cxp eqid ovolfsf syl ffvelrnda elrege0 simpld
        wf simprd uniioombllem1 wss ovolsf frn icossxr syl6ss supxrub ralrimiva
        sylib sylan wfn wb ffn wceq breq2 ralbidv rspcev syl2anc c0 wne syl3anc
        climi2 r19.2uz cfz cioo csu cmpt ad2antrr cvv inex1 elfznn syl2an fveq2
        cz fvex fveq2d ineq1d eqtrd inss2 cop adantr cinf cif cbvmptv 1z rexuz3
        ax-mp sylibr cima cuni rexlimddv breq1 ralrn mpbid isumsup2 cdm 1nn fdm
        rge0ssre syl5eleqr ne0i dm0rn0 necon3bii supxrre breqtrrd cdiv cseq crp
        simplrl nnrpd rpdivcld rgenw fnmpt mp1i fvco2 adantl fvmpt syl6eleq a1i
        simpr c1st c2nd ffvelrn sseldi 1st2nd2 syl6eqr ioossre syl6eqss ovolfcl
        df-ov w3a ovolioo simp2d simp1d resubcld eqeltrd ovolsscl recnd fsumser
        eqcomd infeq1 supeq1 opeq12d ifbieq2d uniioombllem2 sylan2 adantlr fzfi
        eqeq1 cfn rexfiuz simprll simprlr simprrl simprrr cbvsumv ineq2d syl5eq
        wdisj sumeq2sdv oveq12d breq1d cbvralv uniioombllem5 anassrs ) AUAUIZFU
        JZFUKZULUMUNZUOUPUQUJDUMUSZGCUTURUJGCVAURUJVBUPGURUJZVCDVDUPVBUPVEUSZUA
        TAUXSUAUBUIZVFUJVGUBTVHUXSUATVHAUXRUXPDUBUAFVITVJAVKZOAUXOTVLZVMUXPVNAF
        UXQVOUMUNZUXRVPABUCUIZUQUOVQIVQZUJZUAUCUYGFVITVJRUYCAUYFTVLVMZUYHVNUYIU
        YHVOVLZVRUYHVEUSZUYIUYHVRVSVTUPZVLUYJUYKVMATUYLUYFUYGATVEVOVOWAZUTZIWHZ
        TUYLUYGWHPIUYGUYGWBZWCWDWEUYHWFWRZWGUYIUYJUYKUYQWIAUXRVOVLZUXPUXRVEUSZU
        ATVGZUXPBUIZVEUSZUATVGZBVOVHABCDEFGHIJKLMNOPQRSWJZAVUAUXRVEUSZBUXQVGZUY
        TAVUEBUXQAUXQULWKVUAUXQVLVUEAUXQUYLULATUYLFWHZUXQUYLWKAUYOVUGPFIUYGUYPR
        WLWDZTUYLFWMWDZVRVSWNWOUXQVUAWPWSWQZAFTWTZVUFUYTXAAVUGVUKVUHTUYLFXBWDVU
        EUYSBUATFVUAUXPUXRVEUUAUUBWDUUCVUCUYTBUXRVOVUAUXRXCVUBUYSUATVUAUXRUXPVE
        XDXEXFXGUUDAUXQVOWKUXQXHXIZVUAUDUIZVEUSZBUXQVGZUDVOVHZUXRUYEXCAUXQUYLVO
        VUIUUHWOAFUUEZXHXIZVULAVIVUQVLVURAVITVUQUUFAVUGVUQTXCVUHTUYLFUUGWDUUIVU
        QVIUUJWDVUQXHUXQXHFUUKUULWRAUYRVUFVUPVUDVUJVUOVUFUDUXRVOVUMUXRXCVUNVUEB
        UXQVUMUXRVUAVEXDXEXFXGUDBUXQUUMXJUUNXKUXSUBUAVITVJXLWDAUYDUXSVMZVMZVIUE
        UIZXMUPZUFUIZHUJZXNUJZUYBIUJZXNUJZUTZURUJZUFXOZVVGCUTZURUJZUOUPZUQUJZDU
        XOUUOUPZUMUSZUBVIUXOXMUPZVGZUYAUETVUTVVRUEUYFVFUJZVGZUCTVHZVVRUETVHVUTV
        VTUCYCVHZVWAVUTVVPUEVVSVGZUCYCVHZUBVVQVGZVWBVUTVWDUBVVQVUTUYBVVQVLZVMZV
        WCUCTVHZVWDVWGVVLVVJVVOUCUEVBURUGTUGUIZHUJZXNUJZVVGUTZXPZVQZVIUUPZVITVJ
        VWGVKVWGDUXOADUUQVLZVUSVWFOXQVWGUXOAUYDUXSVWFUURUUSUUTVWGVVATVLZVMZVVJV
        VAVWOUJVWRVVIUFVWNVIVVAVWRVVCVVBVLZVMZVVCVWNUJZVVCVWMUJZURUJZVVIVWRVWMT
        WTZVVCTVLZVXAVXCXCVWSVWLXRVLZUGTVGVXDVWRVXFUGTVWKVVGVWJXNYDXSUVAUGTVWLV
        WMXRVWMWBZUVBUVCVVCVVAXTZTURVWMVVCUVDYAVWTVXBVVHURVWTVXEVXBVVHXCVWSVXEV
        WRVXHUVEUGVVCVWLVVHTVWMVWIVVCXCZVWKVVEVVGVXIVWJVVDXNVWIVVCHYBYEYFVXGVVE
        VVGVVDXNYDXSUVFWDYEYGVWRVVATVIVFUJVWGVWQUVIVJUVGVWTVVIVWTVVHVVGWKZVVGVO
        WKZVVGURUJZVOVLZVVIVOVLVXJVWTVVEVVGYHUVHVWGVXKVWQVWSVWGVVGVVFUVJUJZVVFU
        VKUJZXNUPZVOVWGVVGVXNVXOYIZXNUJVXPVWGVVFVXQXNVWGVVFUYMVLVVFVXQXCVWGUYNU
        YMVVFVEUYMYHVUTUYOUYBTVLZVVFUYNVLVWFAUYOVUSPYJZUYBUXOXTZTUYNUYBIUVLYAUV
        MVVFVOVOUVNWDYEVXNVXOXNUVSUVOZVXNVXOUVPUVQXQVWGVXMVWQVWSVWGVXLVXOVXNUOU
        PZVOVWGVXLVXPURUJZVYBVWGVVGVXPURVYAYEVWGVXNVOVLZVXOVOVLZVXNVXOVEUSZUVTZ
        VYCVYBXCVUTUYOVXRVYGVWFVXSVXTIUYBUVRYAZVXNVXOUWAWDYGVWGVXOVXNVWGVYDVYEV
        YFVYHUWBVWGVYDVYEVYFVYHUWCUWDUWEXQVVHVVGUWFXJUWGUWHUWIAVWFVWOVVLVPUSZVU
        SVWFAVXRVYIVXTABUHCDEFGHIVWMUYBUGXNUKZVWIXHXCZVRVRYIZVWIULUMYKZVWIULUMU
        NZYIZYLZXPJKLMNOPQRSUGUHTVWLUHUIZHUJZXNUJZVVGUTVWIVYQXCZVWKVYSVVGVYTVWJ
        VYRXNVWIVYQHYBYEYFYMUGBVYJVYPVUAXHXCZVYLVUAULUMYKZVUAULUMUNZYIZYLVWIVUA
        XCZVYKWUAVYOWUDVYLVWIVUAXHUWRWUEVYMWUBVYNWUCULVWIVUAUMUWJULVWIVUAUMUWKU
        WLUWMYMUWNUWOUWPXKVIYCVLZVWHVWDXAYNVVPUCUEVITVJYOYPWRWQVVQUWSVLVWBVWEXA
        VIUXOUWQVVPVVQUCUEUBUWTYPYQWUFVWAVWBXAYNVVRUCUEVITVJYOYPYQVVRUCUEVITVJX
        LWDAVUSVWQVVRVMZUYAAVUSWUGVMZVMZBCDEFUGUHGHIXNIVQZVVQYRYSZXNHVQVVBYRYSZ
        UXOVVAATUYNHWHWUHJYJABTVUAHUJXNUJUXHWUHKYJLMAUXTVOVLWUHNYJAVWPWUHOYJAUY
        OWUHPYJAGWUJUKYSWKWUHQYJRAUXRUXTDVBUPVEUSWUHSYJAUYDUXSWUGUXAAUYDUXSWUGU
        XBWUKWBAVUSVWQVVRUXCWUIVVRVVBVWKVYQIUJZXNUJZUTZURUJZUGXOZWUNCUTZURUJZUO
        UPZUQUJZVVOUMUSZUHVVQVGAVUSVWQVVRUXDVVPWVBUBUHVVQUYBVYQXCZVVNWVAVVOUMWV
        CVVMWUTUQWVCVVJWUQVVLWUSUOWVCVVJVVBVWLURUJZUGXOWUQVVBVVIWVDUFUGVVCVWIXC
        ZVVHVWLURWVEVVEVWKVVGWVEVVDVWJXNVVCVWIHYBYEYFYEUXEWVCVVBWVDWUPUGWVCVWLW
        UOURWVCVVGWUNVWKWVCVVFWUMXNUYBVYQIYBYEZUXFYEUXIUXGWVCVVKWURURWVCVVGWUNC
        WVFYFYEUXJYEUXKUXLWRWULWBUXMUXNYTYT $.
    $}

    $( A disjoint union of open intervals is measurable.  (This proof does not
       use countable choice, unlike ~ iunmbl .)  Lemma 565Ca of [Fremlin5]
       p. 214.  (Contributed by Mario Carneiro, 26-Mar-2015.) $)
    uniioombl $p |- ( ph -> U. ran ( (,) o. F ) e. dom vol ) $=
      ( cioo cr wss cfv wcel caddc co cle cn wf wa c4 c2 vz vr vf ccom crn cuni
      cv covol cin cdif wbr wi cpw wral cvol cdm cxr cxp inss2 rexpssxrxp sstri
      ioof fss sylancl fco sylancr frn syl sspwuni sylib cdiv cmul cabs cmin c1
      crp cseq clt csup cmap wrex elpwi ad2antrl adantr simprr rphalfcld adantl
      rphalfcl eqid ovolgelb syl3anc wdisj elmapi simprrl simprrr uniioombllem6
      ad3antrrr rexlimddv cc rpcn 2cnd cc0 wne a1i divdiv1d 2t2e4 oveq2i syl6eq
      2ne0 oveq2d 4cn divcan2d eqtrd breqtrd ralrimiva wb inss1 ovolsscl difssd
      4ne0 readdcld alrple syl2anc mpbird expr ismbl2 sylanbrc ) AHDUDZUEZUFZIJ
      ZUAUGZUHKZILZYLYJUIZUHKZYLYJUJZUHKZMNZYMOUKZULZUAIUMZUNYJUOUPLAYIUUBJZYKA
      PUUBYHQZUUCAUQUQURZUUBHQPUUEDQZUUDVBAPOIIURZUIZDQZUUHUUEJUUFEUUHUUGUUEOUU
      GUSUTVAPUUHUUEDVCVDPUUEUUBHDVEVFPUUBYHVGVHYIIVIVJAUUAUAUUBAYLUUBLZYNYTAUU
      JYNRZRZYTYSYMUBUGZMNZOUKZUBVPUNZUULUUOUBVPUULUUMVPLZRZYSYMSUUMTVKNZTVKNZV
      LNZMNZUUNOUURYLHUCUGZUDUEUFJZMVMVNUDUVCUDVOVQZUEUQVRVSYMUUTMNOUKZRZYSUVBO
      UKUCUUHPVTNZUURYLIJZYNUUTVPLZUVGUCUVHWAUULUVIUUQUUJUVIAYNYLIWBWCZWDUULYNU
      UQAUUJYNWEZWDZUUQUVJUULUUQUUSUUMWHZWFWGYLUUTUVEUCUVEWIZWJWKUURUVCUVHLZUVG
      RZRZBYJUUTCUVEYLDUVCAUUIUUKUUQUVQEWQABPBUGDKHKWLUUKUUQUVQFWQGYJWIUURYNUVQ
      UVMWDUVRUUSUURUUSVPLZUVQUUQUVSUULUVNWGWDWFUVPPUUHUVCQUURUVGUVCUUHPWMWCUUR
      UVPUVDUVFWNUVOUURUVPUVDUVFWOWPWRUURUVAUUMYMMUURUVASUUMSVKNZVLNUUMUURUUTUV
      TSVLUURUUTUUMTTVLNZVKNUVTUURUUMTTUUQUUMWSLUULUUMWTWGZUURXAZUWCTXBXCUURXIX
      DZUWDXEUWASUUMVKXFXGXHXJUURUUMSUWBSWSLUURXKXDSXBXCUURXTXDXLXMXJXNXOUULYSI
      LYNYTUUPXPUULYPYRUULYOYLJZUVIYNYPILUWEUULYLYJXQXDUVKUVLYOYLXRWKUULYQYLJUV
      IYNYRILUULYLYJXSUVKUVLYQYLXRWKYAUVLUBYSYMYBYCYDYEXOUAYJYFYG $.

    $( An almost-disjoint union of closed intervals is measurable.  (This proof
       does not use countable choice, unlike ~ iunmbl .)  (Contributed by Mario
       Carneiro, 25-Mar-2015.) $)
    uniiccmbl $p |- ( ph -> U. ran ( [,] o. F ) e. dom vol ) $=
      ( cioo ccom crn cuni cicc cdif cun cvol wss wceq wcel cr syl2anc covol cn
      cdm cfv cc0 uniiccdif simpld undif sylib uniioombl cle cxp cin ovolficcss
      wf syl ssdifssd simprd nulmbl unmbl eqeltrrd ) AHDIJKZLDIJKZVBMZNZVCOUCZA
      VBVCPZVEVCQAVGVDUAUDUEQZADEUFZUGVBVCUHUIAVBVFRVDVFRZVEVFRABCDEFGUJAVDSPVH
      VJAVCSVBAUBUKSSULUMDUOVCSPEDUNUPUQAVGVHVIURVDUSTVBVDUTTVA $.
  $}

  ${
    $d c d f x y $.  $d a b c d x y B $.  $d x y C $.  $d a b f m n t w z ph $.
    $d a b c d i m n r t w x y z A $.  $d x y D $.  $d a b f m n t z G $.
    $d a b c d m n r w x y z F $.
    dyadmbl.1 $e |- F = ( x e. ZZ , y e. NN0 |->
      <. ( x / ( 2 ^ y ) ) , ( ( x + 1 ) / ( 2 ^ y ) ) >. ) $.
    $( The function ` F ` returns the endpoints of a dyadic rational covering
       of the real line.  (Contributed by Mario Carneiro, 26-Mar-2015.) $)
    dyadf $p |- F : ( ZZ X. NN0 ) --> ( <_ i^i ( RR X. RR ) ) $=
      ( cv c2 co cdiv cle cr cxp wcel cn0 wral cz wbr syl cn nndivre syl2an cop
      cexp c1 caddc cin wf wa zre adantr lep1d cc0 clt wb peano2re nnexpcl mpan
      2nn adantl nnred nngt0d syl112anc mpbid df-br sylib opelxpi syl2anc elind
      lediv1 rgen2 fmpt2 mpbi ) AEZFBEZUBGZHGZVLUCUDGZVNHGZUAZIJJKZUEZLZBMNAONO
      MKVTCUFWAABOMVLOLZVMMLZUGZIVSVRWDVOVQIPZVRILWDVLVPIPZWEWDVLWBVLJLZWCVLUHZ
      UIZUJWDWGVPJLZVNJLUKVNULPWFWEUMWIWDWGWJWIVLUNZQWDVNWCVNRLZWBFRLWCWLUQFVMU
      OUPZURZUSWDVNWNUTVLVPVNVHVAVBVOVQIVCVDWDVOJLZVQJLZVRVSLWBWGWLWOWCWHWMVLVN
      STWBWJWLWPWCWBWGWJWHWKQWMVPVNSTVOVQJJVEVFVGVIABOMVRVTCDVJVK $.

    $( Value of the dyadic rational function ` F ` .  (Contributed by Mario
       Carneiro, 26-Mar-2015.) $)
    dyadval $p |- ( ( A e. ZZ /\ B e. NN0 ) -> ( A F B ) =
      <. ( A / ( 2 ^ B ) ) , ( ( A + 1 ) / ( 2 ^ B ) ) >. ) $=
      ( cz cn0 cv c2 cexp co cdiv c1 caddc cop wceq wa id oveqan12d oveq2 oveq1
      opeq12d opex ovmpt2a ) ABCDGHAIZJBIZKLZMLZUFNOLZUHMLZPCJDKLZMLZCNOLZULMLZ
      PEUFCQZUGDQZRUIUMUKUOUPUQUFCUHULMUPSUGDJKUAZTUPUQUJUNUHULMUFCNOUBURTUCFUM
      UOUDUE $.

    $( Volume of a dyadic rational interval.  (Contributed by Mario Carneiro,
       26-Mar-2015.) $)
    dyadovol $p |- ( ( A e. ZZ /\ B e. NN0 ) ->
      ( vol* ` ( [,] ` ( A F B ) ) ) = ( 1 / ( 2 ^ B ) ) ) $=
      ( wcel co cicc cfv covol c2 cdiv c1 cmin fveq2d cr cle wbr recnd cn0 cexp
      cz wa caddc cop dyadval df-ov syl6eqr wceq cn zre 2nn nnexpcl mpan syl2an
      nndivre peano2re syl adantr lep1d wb adantl nnred nngt0d lediv1 syl112anc
      cc0 clt ovolicc syl3anc nnne0d divsubdird cc ax-1cn pncan2 sylancl oveq1d
      mpbid eqtr3d 3eqtrd ) CUCGZDUAGZUDZCDEHZIJZKJCLDUBHZMHZCNUEHZWGMHZIHZKJZW
      JWHOHZNWGMHZWDWFWKKWDWFWHWJUFZIJWKWDWEWOIABCDEFUGPWHWJIUHUIPWDWHQGZWJQGZW
      HWJRSZWLWMUJWBCQGZWGUKGZWPWCCULZLUKGWCWTUMLDUNUOZCWGUQUPWBWIQGZWTWQWCWBWS
      XCXACURZUSXBWIWGUQUPWDCWIRSZWRWDCWBWSWCXAUTZVAWDWSXCWGQGVHWGVISXEWRVBXFWD
      WSXCXFXDUSZWDWGWCWTWBXBVCZVDZWDWGXHVECWIWGVFVGVSWHWJVJVKWDWICOHZWGMHWMWNW
      DWICWGWDWIXGTWDCXFTZWDWGXITWDWGXHVLVMWDXJNWGMWDCVNGNVNGXJNUJXKVOCNVPVQVRV
      TWA $.

    $( Two closed dyadic rational intervals are either in a subset relationship
       or are almost disjoint (the interiors are disjoint).  (Contributed by
       Mario Carneiro, 26-Mar-2015.)  (Proof shortened by Mario Carneiro,
       26-Apr-2016.) $)
    dyadss $p |- ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. NN0 /\ D e. NN0 ) ) ->
      ( ( [,] ` ( A F C ) ) C_ ( [,] ` ( B F D ) ) -> D <_ C ) ) $=
      ( wcel wa co cicc cfv cle wbr c2 c1 cdiv cr syl2anc cz cn0 wss cexp covol
      simpr caddc cop wceq simpllr simplrr dyadval fveq2d df-ov syl6eqr zred cn
      2nn nnexpcl sylancr nndivred peano2re syl iccssre eqsstrd simplll simplrl
      ovolss dyadovol 3brtr3d wb cc0 clt nnre nngt0 jca lerec syl2an mpbird 2re
      a1i nn0zd 1lt2 leexp2d ex ) CUAIZDUAIZJZEUBIZFUBIZJZJZCEGKLMZDFGKZLMZUCZF
      ENOZWLWPJZWQPFUDKZPEUDKZNOZWRXAQWTRKZQWSRKZNOZWRWMUEMZWOUEMZXBXCNWRWPWOSU
      CXEXFNOWLWPUFWRWODWSRKZDQUGKZWSRKZLKZSWRWOXGXIUHZLMXJWRWNXKLWRWGWJWNXKUIW
      FWGWKWPUJZWHWIWJWPUKZABDFGHULTUMXGXILUNUOWRXGSIXISIXJSUCWRDWSWRDXLUPZWRPU
      QIZWJWSUQIZURXMPFUSUTZVAWRXHWSWRDSIXHSIXNDVBVCXQVAXGXIVDTVEWMWOVHTWRWFWIX
      EXBUIWFWGWKWPVFWHWIWJWPVGZABCEGHVITWRWGWJXFXCUIXLXMABDFGHVITVJWRXPWTUQIZX
      AXDVKZXQWRXOWIXSURXRPEUSUTXPWSSIZVLWSVMOZJWTSIZVLWTVMOZJXTXSXPYAYBWSVNWSV
      OVPXSYCYDWTVNWTVOVPWSWTVQVRTVSWRPFEPSIWRVTWAWRFXMWBWREXRWBQPVMOWRWCWAWDVS
      WE $.

    $( Lemma for ~ dyaddisj .  (Contributed by Mario Carneiro, 26-Mar-2015.) $)
    dyaddisjlem $p |- ( ( ( ( A e. ZZ /\ B e. ZZ ) /\
     ( C e. NN0 /\ D e. NN0 ) ) /\ C <_ D ) ->
       ( ( [,] ` ( A F C ) ) C_ ( [,] ` ( B F D ) ) \/
         ( [,] ` ( B F D ) ) C_ ( [,] ` ( A F C ) ) \/
       ( ( (,) ` ( A F C ) ) i^i ( (,) ` ( B F D ) ) ) = (/) ) ) $=
      ( cz wcel wa wbr co cicc cfv cioo wceq c2 adantr cr cn0 cle wss cexp cdiv
      cin c0 w3o clt c1 caddc cop simplll simplrl dyadval syl2anc df-ov syl6eqr
      fveq2d simpllr simplrr ineq12d incom syl6eq cmul wb zred recnd cn nnexpcl
      2nn sylancr nncnd nnne0d div13d cmin 2cnd cc0 wne a1i nn0zd expsubd simpr
      2ne0 znn0sub mpbid zexpcl eqeltrrd zmulcld eqeltrd zltp1le nndivred nnred
      2z nngt0d ltdivmul2 syl112anc peano2re syl ledivmul2 3bitr4d cxr wi rexrd
      ioodisj ex syl22anc sylbid imp eqtrd 3mix3d simprl peano2zd adantrl iccss
      biimpa 3sstr4d 3mix2d anassrs adantlr ltlecasei ) CIJZDIJZKZEUAJZFUAJZKZK
      ZEFUBLZKZCEGMZNOZDFGMZNOZUCZYNYLUCZYKPOZYMPOZUFZUGQZUHZDRFUDMZUEMZCREUDMZ
      UEMZYJUUCUUEUILZKZYTYOYPUUGYSUUCDUJUKMZUUBUEMZPMZUUECUJUKMZUUDUEMZPMZUFZU
      GYJYSUUNQUUFYJYSUUMUUJUFZUUNYJYQUUMYRUUJYJYQUUEUULULZPOUUMYJYKUUPPYJYBYEY
      KUUPQYBYCYGYIUMZYDYEYFYIUNZABCEGHUOUPZUSUUEUULPUQURYJYRUUCUUIULZPOUUJYJYM
      UUTPYJYCYFYMUUTQYBYCYGYIUTZYDYEYFYIVAZABDFGHUOUPZUSUUCUUIPUQURVBZUUMUUJVC
      VDSYJUUFUUNUGQZYJUUFUUIUUEUBLZUVEYJDUUEUUBVEMZUILZUUHUVGUBLZUUFUVFYJYCUVG
      IJUVHUVIVFUVAYJUVGUUBUUDUEMZCVEMIYJCUUDUUBYJCYJCUUQVGZVHYJUUDYJRVIJZYEUUD
      VIJVKUURREVJVLZVMZYJUUBYJUVLYFUUBVIJVKUVBRFVJVLZVMZYJUUDUVMVNZVOYJUVJCYJR
      FEVPMZUDMZUVJIYJRFEYJVQRVRVSYJWDVTYJEUURWAZYJFUVBWAZWBYJRIJUVRUAJZUVSIJWN
      YJYIUWBYHYIWCYJEIJFIJYIUWBVFUVTUWAEFWEUPWFRUVRWGVLWHZUUQWIWJDUVGWKUPYJDTJ
      ZUUETJZUUBTJZVRUUBUILZUUFUVHVFYJDUVAVGZYJCUUDUVKUVMWLZYJUUBUVOWMZYJUUBUVO
      WOZDUUEUUBWPWQYJUUHTJZUWEUWFUWGUVFUVIVFYJUWDUWLUWHDWRWSZUWIUWJUWKUUHUUEUU
      BWTWQXAYJUUCXBJZUUIXBJZUUEXBJZUULXBJZUVFUVEXCYJUUCYJDUUBUWHUVOWLZXDZYJUUI
      YJUUHUUBUWMUVOWLXDZYJUUEUWIXDZYJUULYJUUKUUDYJCTJUUKTJUVKCWRWSZUVMWLZXDZUW
      NUWOKZUWPUWQKZKUVFUVEUUCUUIUUEUULXEXFXGXHXIXJXKYJUUEUUCUBLZKUUAUUCUULYJUX
      GUUCUULUILZUUAYJUXGUXHKZKZYPYOYTUXJUUCUUINMZUUEUULNMZYNYLUXJUWEUULTJZUXGU
      UIUULUBLZUXKUXLUCYJUWEUXIUWISYJUXMUXIUXCSYJUXGUXHXLYJUXHUXNUXGYJUXHUXNYJD
      UULUUBVEMZUILZUUHUXOUBLZUXHUXNYJYCUXOIJUXPUXQVFUVAYJUXOUVJUUKVEMIYJUUKUUD
      UUBYJUUKUXBVHUVNUVPUVQVOYJUVJUUKUWCYJCUUQXMWIWJDUXOWKUPYJUWDUXMUWFUWGUXHU
      XPVFUWHUXCUWJUWKDUULUUBWPWQYJUWLUXMUWFUWGUXNUXQVFUWMUXCUWJUWKUUHUULUUBWTW
      QXAXPXNUUEUULUUCUUIXOXGYJYNUXKQUXIYJYNUUTNOUXKYJYMUUTNUVCUSUUCUUINUQURSYJ
      YLUXLQUXIYJYLUUPNOUXLYJYKUUPNUUSUSUUEUULNUQURSXQXRXSYJUULUUCUBLZUUAUXGYJU
      XRKZYTYOYPUXSYSUUOUGYJYSUUOQUXRUVDSYJUXRUUOUGQZYJUWPUWQUWNUWOUXRUXTXCUXAU
      XDUWSUWTUXFUXEKUXRUXTUUEUULUUCUUIXEXFXGXIXJXKXTYJUUCTJUXGUWRSYJUXMUXGUXCS
      YAUWRUWIYA $.

    $( Two closed dyadic rational intervals are either in a subset relationship
       or are almost disjoint (the interiors are disjoint).  (Contributed by
       Mario Carneiro, 26-Mar-2015.) $)
    dyaddisj $p |- ( ( A e. ran F /\ B e. ran F ) ->
      ( ( [,] ` A ) C_ ( [,] ` B ) \/ ( [,] ` B ) C_ ( [,] ` A ) \/
        ( ( (,) ` A ) i^i ( (,) ` B ) ) = (/) ) ) $=
      ( va vc vb vd wcel wa wceq cn0 wrex cz cicc cfv cioo c0 crn cv co wss cin
      w3o cxp cle cr wf wfn wb dyadf ovelrn anbi12d mp2b reeanv bitr4i ad2antrl
      ffn nn0re ad2antll dyaddisjlem ancom anbi12i sylanb wo orcom incom eqeq1i
      orbi12i df-3or 3bitr4i sylib lecasei simpl fveq2d simpr sseq12d 3orbi123d
      wbr ineq12d eqeq1d syl5ibrcom rexlimdvva syl5bir rexlimivv sylbi ) CEUAZK
      ZDWIKZLZCGUBZHUBZEUCZMZHNOZDIUBZJUBZEUCZMZJNOZLZIPOGPOZCQRZDQRZUDZXFXEUDZ
      CSRZDSRZUEZTMZUFZWLWQGPOZXBIPOZLZXDPNUGZUHUIUIUGUEZEUJEXQUKZWLXPULABEFUMX
      QXREUTXSWJXNWKXOGHPNCEUNIJPNDEUNUOUPWQXBGIPPUQURXCXMGIPPXCWPXALZJNOHNOWMP
      KZWRPKZLZXMWPXAHJNNUQYCXTXMHJNNYCWNNKZWSNKZLZLZXMXTWOQRZWTQRZUDZYIYHUDZWO
      SRZWTSRZUEZTMZUFZYGYPWNWSYDWNUIKYCYEWNVAUSYEWSUIKYCYDWSVAVBABWMWRWNWSEFVC
      YGWSWNUHWAZLYKYJYMYLUEZTMZUFZYPYGYBYALZYEYDLZLYQYTYCUUAYFUUBYAYBVDYDYEVDV
      EABWRWMWSWNEFVCVFYKYJVGZYSVGYJYKVGZYOVGYTYPUUCUUDYSYOYKYJVHYRYNTYMYLVIVJV
      KYKYJYSVLYJYKYOVLVMVNVOXTXGYJXHYKXLYOXTXEYHXFYIXTCWOQWPXAVPZVQZXTDWTQWPXA
      VRZVQZVSXTXFYIXEYHUUHUUFVSXTXKYNTXTXIYLXJYMXTCWOSUUEVQXTDWTSUUGVQWBWCVTWD
      WEWFWGWH $.

    ${
      dyadmax.2 $e |- ( ph -> A e. ZZ ) $.
      dyadmax.3 $e |- ( ph -> B e. ZZ ) $.
      dyadmax.4 $e |- ( ph -> C e. NN0 ) $.
      dyadmax.5 $e |- ( ph -> D e. NN0 ) $.
      dyadmax.6 $e |- ( ph -> -. D < C ) $.
      dyadmax.7 $e |- ( ph -> ( [,] ` ( A F C ) ) C_ ( [,] ` ( B F D ) ) ) $.
      $( Lemma for ~ dyadmax .  (Contributed by Mario Carneiro,
         26-Mar-2015.) $)
      dyadmaxlem $p |- ( ph -> ( A = B /\ C = D ) ) $=
        ( cle wbr co wcel cicc wceq c1 caddc c2 cexp cdiv cr w3a cfv cop cz cn0
        dyadval syl2anc fveq2d df-ov syl6eqr clt wss dyadss syl22anc mpd nn0red
        wn wi eqleltd mpbir2and oveq2d eqtrd 3sstr3d cxr cn 2nn nnexpcl sylancr
        zred nndivred rexrd peano2re syl lep1d wb nnred nngt0d lediv1 syl112anc
        cc0 mpbid ubicc2 syl3anc sseldd elicc2 simp3d mpbird 1red lbicc2 simp2d
        leadd1d letri3d eqcomd jca ) ADEUAZFGUAAXBDEPQZEDPQZAXCDUBUCRZEUBUCRZPQ
        ZAXGXEUDFUERZUFRZXFXHUFRZPQZAXIUGSZEXHUFRZXIPQZXKAXIXMXJTRZSZXLXNXKUHZA
        DXHUFRZXITRZXOXIADFHRZTUIZEGHRZTUIZXSXOOAYAXRXIUJZTUIXSAXTYDTADUKSZFULS
        ZXTYDUAJLBCDFHIUMUNUOXRXITUPUQAYCXMXJUJZTUIXOAYBYGTAYBEFHRZYGAGFEHAGFUA
        GFPQZGFURQVDAYAYCUSZYIOAYEEUKSZYFGULSYJYIVEJKLMBCDEFGHIUTVAVBNAGFAGMVCA
        FLVCVFVGZVHAYKYFYHYGUAKLBCEFHIUMUNVIUOXMXJTUPUQVJZAXRVKSZXIVKSZXRXIPQZX
        IXSSAXRADXHADJVPZAUDVLSYFXHVLSVMLUDFVNVOZVQVRZAXIAXEXHADUGSZXEUGSZYQDVS
        VTZYRVQVRZADXEPQZYPADYQWAAYTUUAXHUGSZWGXHURQZUUDYPWBYQUUBAXHYRWCZAXHYRW
        DZDXEXHWEWFWHZXRXIWIWJWKAXMUGSZXJUGSZXPXQWBAEXHAEKVPZYRVQZAXFXHAEUGSZXF
        UGSZUULEVSVTZYRVQZXMXJXIWLUNWHWMAUUAUUOUUEUUFXGXKWBUUBUUPUUGUUHXEXFXHWE
        WFWNADEUBYQUULAWOWRWNAXDXMXRPQZAXRUGSZUURXRXJPQZAXRXOSZUUSUURUUTUHZAXSX
        OXRYMAYNYOYPXRXSSYSUUCUUIXRXIWPWJWKAUUJUUKUVAUVBWBUUMUUQXMXJXRWLUNWHWQA
        UUNYTUUEUUFXDUURWBUULYQUUGUUHEDXHWEWFWNADEYQUULWSVGAGFYLWTXA $.
    $}

    $( Any nonempty set of dyadic rational intervals has a maximal element.
       (Contributed by Mario Carneiro, 26-Mar-2015.) $)
    dyadmax $p |- ( ( A C_ ran F /\ A =/= (/) ) ->
      E. z e. A A. w e. A ( ( [,] ` z ) C_ ( [,] ` w ) -> z = w ) ) $=
      ( vd vc va vn vb wa cv cz wrex cn0 wral wi wcel crn wss c0 wne clt wbr wn
      wceq crab cicc cfv weq wreu cc0 cuz wwe cvv ltweuz a1i nn0ex rabex ssrab2
      co nn0uz sseqtri id cxp cle cr cin wf wfn wb dyadf ffn ovelrn mp2b rexcom
      sylbb rgen ssralv r19.2z syl2anr sylib rabn0 sylibr wereu syl13anc reurex
      mpi oveq2 eqeq2d 2rexbidv elrab eqeq1 oveq1 cbvrex2v syl5bb ralrab ralbii
      r19.23v ralcom bitr3i simplll sselda r19.29 expcom sylbi simplrr ad2antrr
      simp-5r simplrl simprl simprr dyadmaxlem oveq12 exp32 fveq2 eqeq2 imbi12d
      syl sseq2d imbi2d syl5ibrcom anassrs rexlimdva a2d impd syld ralimdva imp
      syl5bi an32s sseq1d ralbidv reximdva ex com23 expimpd rexlimdv mpd ) EFUA
      ZUBZEUCUDZMZHNZINZUEUFUGZHCNZJNZKNZFVCZUHZJOPZCEPZKQUIZRZIUUPPZUUIUJUKZDN
      ZUJUKZUBZCDULZSZDERZCEPZUUEUUQIUUPUMZUURUUEUNUOUKZUEUPZUUPUQTZUUPUVHUBZUU
      PUCUDZUVGUVIUUEUNURUSUVJUUEUUOKQUTVAUSUVKUUEUUPQUVHUUOKQVBVDVEUSUUEUUOKQP
      ZUVLUUEUUNKQPZCEPZUVMUUDUUDUVNCERZUVOUUCUUDVFUUCUVNCUUBRUVPUVNCUUBUUIUUBT
      ZUUMKQPJOPZUVNOQVGZVHVIVIVGVJZFVKZFUVSVLZUVQUVRVMABFGVNZUVSUVTFVOZJKOQUUI
      FVPVQUUMJKOQVRVSVTUVNCEUUBWAWJUVNCEWBWCUUNCKEQVRWDUUOKQWEWFIHUVHUUPUEUQWG
      WHUUQIUUPWIYAUUEUUQUVFIUUPUUGUUPTUUGQTZUUIUUJUUGFVCZUHZJOPZCEPZMUUEUUQUVF
      SZUUOUWIKUUGQKIULZUUMUWGCJEOUWKUULUWFUUIUUKUUGUUJFWKWLWMWNUUEUWEUWIUWJUUE
      UWEMZUUQUWIUVFUUQUUTLNZUUFFVCZUHZLOPZDEPZUUHSZHQRZUWLUWIUVFSZUUOUWQUUHHKQ
      UUOUUTUWMUUKFVCZUHZLOPDEPKHULZUWQUUMUXBUUTUULUHCJDLEOUUIUUTUULWOJLULZUULU
      XAUUTUUJUWMUUKFWPWLWQUXCUXBUWODLEOUXCUXAUWNUUTUUKUUFUWMFWKWLWMWRWSUWLUWSU
      WTUWLUWSMZUWHUVECEUXEUUIETZMUWGUVEJOUXEUXFUUJOTZUWGUVESUXEUXFUXGMZMUVEUWG
      UWFUJUKZUVAUBZUWFUUTUHZSZDERZUWLUXHUWSUXMUWLUXHMZUWSUXMUWSUWPUUHSZHQRZDER
      ZUXNUXMUWSUXODERZHQRUXQUXRUWRHQUWPUUHDEXAWTUXOHDQEXBXCUXNUXPUXLDEUXNUUTET
      ZMZUXPUXOUWPMZHQPZUXLUXTUWOHQPLOPZUXPUYBSZUXTUUTUUBTZUYCUXNEUUBUUTUUCUUDU
      WEUXHXDXEUWAUWBUYEUYCVMUWCUWDLHOQUUTFVPVQWDUYCUWPHQPZUYDUWOLHOQVRUXPUYFUY
      BUXOUWPHQXFXGXHYAUXTUYAUXLHQUXTUUFQTZMZUXOUWPUXLUYHUWPUUHUXLUYHUWOUUHUXLS
      ZLOUXTUYGUWMOTZUWOUYISUXTUYGUYJMZMZUYIUWOUUHUXIUWNUJUKZUBZUWFUWNUHZSZSUYL
      UUHUYNUYOUYLUUHUYNMZMZUXDIHULMUYOUYRABUUJUWMUUGUUFFGUXTUXGUYKUYQUWLUXFUXG
      UXSXIXJUXTUYGUYJUYQXIUUEUWEUXHUXSUYKUYQXKUXTUYGUYJUYQXLUYLUUHUYNXMUYLUUHU
      YNXNXOUUJUWMUUGUUFFXPYAXQUWOUXLUYPUUHUWOUXJUYNUXKUYOUWOUVAUYMUXIUUTUWNUJX
      RYBUUTUWNUWFXSXTYCYDYEYFYGYHYFYIYJYLYKYMUWGUVDUXLDEUWGUVBUXJUVCUXKUWGUUSU
      XIUVAUUIUWFUJXRYNUUIUWFUUTWOXTYOYDYEYFYPYQYLYRYSYLYTUUA $.

    ${
      dyadmbl.2 $e |- G = { z e. A |
        A. w e. A ( ( [,] ` z ) C_ ( [,] ` w ) -> z = w ) } $.
      dyadmbl.3 $e |- ( ph -> A C_ ran F ) $.
      $( Lemma for ~ dyadmbl .  (Contributed by Mario Carneiro,
         26-Mar-2015.) $)
      dyadmbllem $p |- ( ph -> U. ( [,] " A ) = U. ( [,] " G ) ) $=
        ( va vm cicc cv wcel wss wa weq wi vi cima cuni wrex eluni2 cfv cxr cxp
        vt wfn wb cpw wf iccf ffn ax-mp crn cle cr cin cn0 dyadf frn rexpssxrxp
        cz inss2 sstri syl6ss eleq2 rexima sylancr crab c0 ssrab2 adantr syl5ss
        wral wne simprl ssid fveq2 sseq2d rspcev sylancl sylibr dyadmax syl2anc
        rabn0 elrab simprlr simplrr sseldd simprll imbi1i impexp bitri ad2antll
        sstr2 imim1d syl5bir imim2d syl5bi ralimdv2 impr sseq1d equequ1 imbi12d
        ancrd ralbidv elrab2 sylanbrc wfun ffun eqsstri fdmi syl6sseqr ad2antrr
        cdm funfvima2 elunii exp32 rexlimdv rexlimdvaa sylbid ssrdv imass2 mp1i
        mpd uniss eqssd ) ANFUBZUCZNHUBZUCZALYLYNLOZYLPYOUAOZPZUAYKUDZAYOYNPZUA
        YOYKUEAYRYOUIOZNUFZPZUIFUDZYSANUGUGUHZUJZFUUDQYRUUCUKUUDUGULZNUMZUUEUNU
        UDUUFNUOUPAFGUQZUUDKUUHURUSUSUHZUTZUUDVEVAUHZUUJGUMUUHUUJQBCGIVBUUKUUJG
        VCUPUUJUUIUUDURUUIVFVDVGVGVHZYQUUBUAUIUUDFNYPUUAYOVIVJVKAUUBYSUIFAYTFPZ
        UUBRZRZMOZNUFZEOZNUFZQZMESZTZEUUAYONUFZQZLFVLZVQZMUVEUDZYSUUOUVEUUHQUVE
        VMVRZUVGUUOUVEFUUHUVDLFVNAFUUHQUUNKVOVPUUOUVDLFUDZUVHUUOUUMUUAUUAQZUVIA
        UUMUUBVSUUAVTUVDUVJLYTFLUISUVCUUAUUAYOYTNWAWBWCWDUVDLFWHWEBCMEUVEGIWFWG
        UUOUVFYSMUVEUUPUVEPUUPFPZUUAUUQQZRZUUOUVFYSTUVDUVLLUUPFLMSUVCUUQUUAYOUU
        PNWAWBWIUUOUVMUVFYSUUOUVMUVFRZRZYOUUQPUUQYMPZYSUVOUUAUUQYOUUOUVKUVLUVFW
        JAUUMUUBUVNWKWLUVOUUPHPZUVPUVOUVKUVBEFVQZUVQUUOUVKUVLUVFWMUUOUVMUVFUVRU
        UOUVMRZUVBUVBEUVEFUURUVEPZUVBTZUURFPZUUAUUSQZUVBTZTZUVSUWBUVBTUWAUWBUWC
        RZUVBTUWEUVTUWFUVBUVDUWCLUURFLESUVCUUSUUAYOUURNWAWBWIWNUWBUWCUVBWOWPUVS
        UWDUVBUWBUWDUWCUUTRZUVATUVSUVBUWCUUTUVAWOUVSUUTUWGUVAUVSUUTUWCUVLUUTUWC
        TUUOUVKUUAUUQUUSWRWQXHWSWTXAXBXCXDDOZNUFZUUSQZDESZTZEFVQZUVRDUUPFHDMSZU
        WLUVBEFUWNUWJUUTUWKUVAUWNUWIUUQUUSUWHUUPNWAXEDMEXFXGXIJXJXKUVONXLZHNXRZ
        QZUVQUVPTUUGUWOUNUUDUUFNXMUPAUWQUUNUVNAHUUDUWPAHFUUDHUWMDFVLFJUWMDFVNXN
        ZUULVPUUDUUFNUNXOXPXQHUUPNXSVKYHYOUUQYMXTWGYAXBYBYHYCYDXBYEYMYKQZYNYLQA
        HFQUWSUWRHFNYFUPYMYKYIYGYJ $.

      $( Any union of dyadic rational intervals is measurable.  (Contributed by
         Mario Carneiro, 26-Mar-2015.) $)
      dyadmbl $p |- ( ph -> U. ( [,] " A ) e. dom vol ) $=
        ( cicc com wbr wcel cen cfv wceq cr cn vn vf va vb cima cuni dyadmbllem
        cvol cdm csdm cfn isfinite wa cv ciun cxr cxp cpw wf wfun iccf funiunfv
        ffun mp2b wral simpr c1st c2nd co cop wss wi crab ssrab2 eqsstri syl5ss
        crn cle cin cz cn0 dyadf ax-mp inss2 sstri syl6ss adantr sselda 1st2nd2
        frn fveq2d df-ov syl6eqr xp1st xp2nd iccmbl syl2anc ralrimiva finiunmbl
        syl eqeltrd syl5eqelr sylan2br wf1o wex nnenom ensym entr sylancr sylib
        bren ccom rnco2 wfo f1ofo adantl fss syl2anr cioo ffvelrn syl2an sseldi
        wo fveq2 sseq1d eqeq1 imbi12d ralbidv elrab2 simprbi sseq2d eqeq2 rspcv
        sylc syld cdom cvv reex entri mp2an forn imaeq2d syl5eq caddc cabs cmin
        unieqd c1 cseq f1of c0 wdisj w3o simpl dyaddisj wf1 wb f1of1 f1fveq orc
        sylan syl6bi eqcom syl6bb olc a1i 3jaod mpd ralrimivva disjor uniiccmbl
        sylibr eqid eqeltrrd ex exlimdv syl5 xpex inex2 ssexi ssdomg mpsyl ccrd
        imp con0 omelon znnen nn0ennn xpen xpomen ensymi wfn ffn dffn4 fodomnum
        isnumi mpbi mp2 domentr domtr sylancl brdom2 mpjaodan ) ALFUEUFLHUEZUFZ
        UHUIZABCDEFGHIJKUGAHMUJNZUXEUXFOZHMPNZUXGAHUKOZUXHHULAUXJUMZUXEUAHUAUNZ
        LQZUOZUXFUPUPUQZUPURZLUSLUTUXNUXERVAUXOUXPLVCUAHLVBVDUXKUXJUXMUXFOZUAHV
        EUXNUXFOAUXJVFUXKUXQUAHUXKUXLHOUMZUXMUXLVGQZUXLVHQZLVIZUXFUXRUXMUXSUXTV
        JZLQUYAUXRUXLUYBLUXRUXLSSUQZOZUXLUYBRUXKHUYCUXLAHUYCVKUXJAHGVQZUYCAHFUY
        EHDUNZLQZEUNZLQZVKZUYFUYHRZVLZEFVEZDFVMFJUYMDFVNVOZKVPZUYEVRUYCVSZUYCVT
        WAUQZUYPGUSZUYEUYPVKBCGIWBZUYQUYPGWJWCZVRUYCWDWEWFWGWHZUXLSSWIWTWKUXSUX
        TLWLWMUXRUXSSOZUXTSOZUYAUXFOUXRUYDVUBVUAUXLSSWNWTUXRUYDVUCVUAUXLSSWOWTU
        XSUXTWPWQXAWRHUXMUAWSWQXBXCAUXIUXHUXITHUBUNZXDZUBXEZAUXHUXITHPNZVUFUXIT
        MPNMHPNVUGXFHMXGTMHXHXITHUBXKXJAVUEUXHUBAVUEUXHAVUEUMZLVUDXLVQZUFUXEUXF
        VUHVUIUXDVUHVUILVUDVQZUEUXDLVUDXMVUHVUJHLVUHTHVUDXNZVUJHRVUEVUKATHVUDXO
        XPTHVUDUUAWTUUBUUCUUGVUHUCUUDUUEUUFXLVUDXLUUHUUIZVUDVUETHVUDUSZHUYPVKTU
        YPVUDUSATHVUDUUJZAHUYEUYPUYOUYTWFTHUYPVUDXQXRVUHUCUNZUDUNZRZVUOVUDQZXSQ
        ZVUPVUDQZXSQZVSUUKRZYCZUDTVEUCTVEUCTVUSUULVUHVVCUCUDTTVUHVUOTOZVUPTOZUM
        ZUMZVURLQZVUTLQZVKZVVIVVHVKZVVBUUMZVVCVVGVURUYEOZVUTUYEOZVVLVUHTUYEVUDU
        SZVVDVVMVVFVUEVUMHUYEVKZVVOAVUNUYOTHUYEVUDXQXRZVVDVVEUUNZTUYEVUOVUDXTYA
        VUHVVOVVEVVNVVFVVQVVDVVEVFZTUYEVUPVUDXTYABCVURVUTGIUUOWQVVGVVJVVCVVKVVB
        VVGVVJVURVUTRZVVCVVGVUTFOZVVHUYIVKZVURUYHRZVLZEFVEZVVJVVTVLZVVGHFVUTUYN
        VUHVUMVVEVUTHOZVVFVUEVUMAVUNXPZVVSTHVUPVUDXTYAZYBVVGVURHOZVWEVUHVUMVVDV
        WJVVFVWHVVRTHVUOVUDXTYAZVWJVURFOZVWEUYMVWEDVURFHUYFVURRZUYLVWDEFVWMUYJV
        WBUYKVWCVWMUYGVVHUYIUYFVURLYDYEUYFVURUYHYFYGYHJYIYJWTVWDVWFEVUTFUYHVUTR
        ZVWBVVJVWCVVTVWNUYIVVIVVHUYHVUTLYDYKUYHVUTVURYLYGYMYNVVGVVTVUQVVCVUHTHV
        UDUUPZVVFVVTVUQUUQVUEVWOATHVUDUURXPTHVUOVUPVUDUUSUVAVUQVVBUUTUVBZYOVVGV
        VKVVTVVCVVGVWLVVIUYIVKZVUTUYHRZVLZEFVEZVVKVVTVLZVVGHFVURUYNVWKYBVVGVWGV
        WTVWIVWGVWAVWTUYMVWTDVUTFHUYFVUTRZUYLVWSEFVXBUYJVWQUYKVWRVXBUYGVVIUYIUY
        FVUTLYDYEUYFVUTUYHYFYGYHJYIYJWTVWSVXAEVURFUYHVURRZVWQVVKVWRVVTVXCUYIVVH
        VVIUYHVURLYDYKVXCVWRVUTVURRVVTUYHVURVUTYLVUTVURUVCUVDYGYMYNVWPYOVVBVVCV
        LVVGVVBVUQUVEUVFUVGUVHUVITVUSVVAUCUDVUQVURVUTXSVUOVUPVUDYDWKUVJUVLVULUV
        MUVKUVNUVOUVPUVQUWDAHMYPNZUXGUXIYCAHUYEYPNZUYEMYPNZVXDUYEYQOAVVPVXEUYEU
        YPUYCVRSSYRYRUVRUVSUYTUVTUYOHUYEYQUWAUWBUYEUYQYPNZUYQMPNVXFUYQUWCUIOZUY
        QUYEGXNZVXGMUWEOMUYQPNVXHUWFUYQMUYQMMUQZMVTMPNWAMPNUYQVXJPNVTTMUWGXFYSW
        ATMUWHXFYSVTMWAMUWIYTUWJYSZUWKMUYQUWPYTGUYQUWLZVXIUYRVXLUYSUYQUYPGUWMWC
        UYQGUWNUWQUYQUYEGUWOUWRVXKUYEUYQMUWSYTHUYEMUWTUXAHMUXBXJUXCXA $.
    $}

    $( Lemma for ~ opnmbl .  (Contributed by Mario Carneiro, 26-Mar-2015.) $)
    opnmbllem $p |- ( A e. ( topGen ` ran (,) ) -> A e. dom vol ) $=
      ( vz vw va vb vc cfv wcel cicc cv wss wa cr co clt wbr vr vn cioo crn ctg
      crab cima cuni cvol cdm cpw wral weq fveq2 sseq1d simprr fvex elpw sylibr
      elrab sylan2b ralrimiva wfun wb cxr cxp wf iccf ffun ax-mp ssrab2 cle cin
      cz cn0 dyadf inss2 rexpssxrxp sstri fdmi sseqtr4i funimass4 mp2an sspwuni
      frn sylib cabs cmin ccom cres cbl crp wrex cxmt rexmet cmopn tgioo mopni2
      eqid mp3an1 caddc wceq elssuni uniretop syl6sseqr sselda bl2ioo syl2an c1
      rpre c2 cexp cdiv cn 2re 1lt2 expnlbnd mp3an23 ad2antrl cmul cfl ad2antrr
      2nn nnnn0 nnexpcl sylancr nnred remulcld fllelt syl112anc mpbird nndivred
      syl syl2anc rexrd readdcld recnd ltadd2dd eqbrtrd wi simpld reflcl nngt0d
      cc0 ledivmul2 peano2re simprd ltmuldiv mpbid ltled elicc2 mpbir3and flcld
      w3a cop dyadval fveq2d df-ov syl6eqr eleqtrrd wfn fnovrn simplrl resubcld
      ffn rpred 1cnd divdird nnrecred lttrd ltsubaddd leadd1dd lelttrd iccssioo
      nnne0d syl22anc eqsstrd simplrr sstrd sylanbrc funfvima2 elunii rexlimddv
      expr sylbid rexlimdva mpd ssrdv eqssd equequ1 imbi12d ralbidv cbvrabv a1i
      ex dyadmbl eqeltrrd ) CUCUDUEKZLZMFNZMKZCOZFDUDZUFZUGZUHZCUIUJUWSUXFCUWSU
      XECUKZOZUXFCOUWSGNZMKZUXGLZGUXDULZUXHUWSUXKGUXDUXIUXDLUWSUXIUXCLZUXJCOZPZ
      UXKUXBUXNFUXIUXCFGUMUXAUXJCUWTUXIMUNUOUTUWSUXOPUXNUXKUWSUXMUXNUPUXJCUXIMU
      QURUSVAVBMVCZUXDMUJZOZUXHUXLVDVEVEVFZVEUKZMVGUXPVHUXSUXTMVIVJZUXDUXSUXQUX
      DUXCUXSUXBFUXCVKZUXCVLQQVFZVMZUXSVNVOVFZUYDDVGZUXCUYDOABDEVPZUYEUYDDWEVJU
      YDUYCUXSVLUYCVQVRVSVSVSUXSUXTMVHVTWAZGUXDUXGMWBWCUSUXECWDWFUWSGCUXFUWSUXI
      CLZUXIUXFLZUWSUYIPZUXIUANZWGWHWIUYCWJZWKKRZCOZUAWLWMZUYJUYMQWNKLUWSUYIUYP
      UYMUYMWSZWOUACUYMUXIUWRQUYMUYMWPKZUYQUYRWSWQWRWTUYKUYOUYJUAWLUYKUYLWLLZPZ
      UYOUXIUYLWHRZUXIUYLXARZUCRZCOZUYJUYTUYNVUCCUYKUXIQLZUYLQLUYNVUCXBUYSUWSCQ
      UXIUWSCUWRUHQCUWRXCXDXEXFZUYLXJUXIUYLUYMUYQXGXHUOUYKUYSVUDUYJUYKUYSVUDPZP
      ZXIXKUBNZXLRZXMRZUYLSTZUYJUBXNUYSVULUBXNWMZUYKVUDUYSXKQLXIXKSTVUMXOXPUYLX
      KUBXQXRXSVUHVUIXNLZVULPZPZUXIUXIVUJXTRZYAKZVUIDRZMKZLVUTUXELZUYJVUPUXIVUR
      VUJXMRZVURXIXARZVUJXMRZMRZVUTVUPUXIVVELZVUEVVBUXIVLTZUXIVVDVLTZUYKVUEVUGV
      UOVUFYBZVUPVVGVURVUQVLTZVUPVVJVUQVVCSTZVUPVUQQLZVVJVVKPVUPUXIVUJVVIVUPVUJ
      VUPXKXNLVUIVOLZVUJXNLYCVUNVVMVUHVULVUIYDXSZXKVUIYEYFZYGZYHZVUQYIYMZUUAVUP
      VURQLZVUEVUJQLZUUDVUJSTZVVGVVJVDVUPVVLVVSVVQVUQUUBYMZVVIVVPVUPVUJVVOUUCZV
      URUXIVUJUUEYJYKZVUPUXIVVDVVIVUPVVCVUJVUPVVSVVCQLZVWBVURUUFYMZVVOYLZVUPVVK
      UXIVVDSTZVUPVVJVVKVVRUUGVUPVUEVWEVVTVWAVVKVWHVDVVIVWFVVPVWCUXIVVCVUJUUHYJ
      UUIZUUJVUPVVBQLVVDQLVVFVUEVVGVVHUUNVDVUPVURVUJVWBVVOYLZVWGVVBVVDUXIUUKYNU
      ULVUPVUTVVBVVDUUOZMKVVEVUPVUSVWKMVUPVURVNLZVVMVUSVWKXBVUPVUQVVQUUMZVVNABV
      URVUIDEUUPYNUUQVVBVVDMUURUUSZUUTVUPVUSUXDLZVVAVUPVUSUXCLZVUTCOZVWOVUPVWLV
      VMVWPVWMVVNDUYEUVAZVWLVVMVWPUYFVWRUYGUYEUYDDUVEVJVNVOVURVUIDUVBWTYNVUPVUT
      VUCCVUPVUTVVEVUCVWNVUPVUAVELVUBVELVUAVVBSTZVVDVUBSTVVEVUCOVUPVUAVUPUXIUYL
      VVIVUPUYLUYKUYSVUDVUOUVCUVFZUVDYOVUPVUBVUPUXIUYLVVIVWTYPZYOVUPVWSUXIVVBUY
      LXARZSTVUPUXIVVDVXBVVIVWGVUPVVBUYLVWJVWTYPVWIVUPVVDVVBVUKXARZVXBSVUPVURXI
      VUJVUPVURVWBYQVUPUVGVUPVUJVVPYQVUPVUJVVOUVOUVHZVUPVUKUYLVVBVUPVUJVVOUVIZV
      WTVWJVUHVUNVULUPZYRYSUVJVUPUXIUYLVVBVVIVWTVWJUVKYKVUPVVDUXIVUKXARZVUBVWGV
      UPUXIVUKVVIVXEYPVXAVUPVVDVXCVXGVLVXDVUPVVBUXIVUKVWJVVIVXEVWDUVLYSVUPVUKUY
      LUXIVXEVWTVVIVXFYRUVMVUAVUBVVBVVDUVNUVPUVQUYKUYSVUDVUOUVRUVSUXBVWQFVUSUXC
      UWTVUSXBUXAVUTCUWTVUSMUNUOUTUVTUXPUXRVWOVVAYTUYAUYHUXDVUSMUWAWCYMUXIVUTUX
      EUWBYNUWCUWDUWEUWFUWGUWOUWHUWIUWSABHIUXDDJNZMKZINMKZOZJIUMZYTZIUXDULZJUXD
      UFEVXNHNZMKZVXJOZHIUMZYTZIUXDULJHUXDJHUMZVXMVXSIUXDVXTVXKVXQVXLVXRVXTVXIV
      XPVXJVXHVXOMUNUOJHIUWJUWKUWLUWMUXDUXCOUWSUYBUWNUWPUWQ $.
  $}

  ${
    $d w x y z A $.
    $( All open sets are measurable.  This proof, via ~ dyadmbl and
       ~ uniioombl , shows that it is possible to avoid choice for
       measurability of open sets and hence continuous functions, which extends
       the choice-free consequences of Lebesgue measure considerably farther
       than would otherwise be possible.  (Contributed by Mario Carneiro,
       26-Mar-2015.) $)
    opnmbl $p |- ( A e. ( topGen ` ran (,) ) -> A e. dom vol ) $=
      ( vz vw vx vy cz cn0 cv c2 cexp co cdiv caddc cop cmpt2 weq oveq1 opeq12d
      c1 oveq2d oveq1d oveq2 cbvmpt2v opnmbllem ) BCADEFGDHZIEHZJKZLKZUESMKZUGL
      KZNZODEBCFGUKBHZICHZJKZLKZULSMKZUNLKZNULUGLKZUPUGLKZNDBPZUHURUJUSUEULUGLQ
      UTUIUPUGLUEULSMQUARECPZURUOUSUQVAUGUNULLUFUMIJUBZTVAUGUNUPLVBTRUCUD $.
  $}

  ${
    $d x y A $.
    $( All open sets are measurable.  This alternative proof of ~ opnmbl is
       significantly shorter, at the expense of invoking countable choice
       ~ ax-cc .  (This was also the original proof before the current ~ opnmbl
       was discovered.)  (Contributed by Mario Carneiro, 17-Jun-2014.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    opnmblALT $p |- ( A e. ( topGen ` ran (,) ) -> A e. dom vol ) $=
      ( vx vy cdm wcel cioo cq cxp wss ctb ax-mp cn cdom wbr wral cen com mp2an
      cxr ioof cvol cima ctg cfv crn cv cuni wceq wa wex wb qtopbas ciun uniiun
      eltg3 wi ssdomg ccrd cres wfo con0 omelon qnnen xpen xpnnen nnenom entr2i
      entri isnumi wfun cr cpw wf ffun qssre ressxr sstri xpss12 sseqtr4i fores
      fodomnum mp2 domentr domtr sylancl imassrn wfn co ffn ioombl rgen2w ffnov
      fdmi mpbir2an frn sstr mpan2 dfss3 sylib iunmbl2 syl2anc eleq1 syl5ibrcom
      syl5eqel imp exlimiv sylbi eqid tgqioo eleq2s ) AUADZEZAFGGHZUBZUCUDZFUEZ
      UCUDAXOEZBUFZXNIZAXRUGZUHZUIZBUJZXLXNJEZXQYCUKULBAXNJUOKYBXLBXSYAXLXSXLYA
      XTXKEXSXTCXRCUFZUMZXKCXRUNXSXRLMNZYEXKECXROZYFXKEXSXRXNMNZXNLMNZYGYDXSYIU
      PULXRXNJUQKXNXMMNZXMLPNYJXMURDEZXMXNFXMUSZUTZYKQVAEQXMPNYLVBXMLQXMLLHZLGL
      PNZYPXMYOPNVCVCGLGLVDRVEVHZVFVGQXMVIRFVJZXMFDZIYNSSHZVKVLZFVMZYRTYTUUAFVN
      KXMYTYSGSIZUUCXMYTIGVKSVOVPVQZUUDGSGSVRRYTUUAFTWMVSXMFVTRXMXNYMWAWBYQXNXM
      LWCRXRXNLWDWEXSXRXKIZYHXSXNXKIUUEXNXPXKFXMWFYTXKFVMZXPXKIUUFFYTWGZXRYEFWH
      XKEZCSOBSOUUBUUGTYTUUAFWIKUUHBCSSXRYEWJWKBCSSXKFWLWNYTXKFWOKVQXRXNXKWPWQC
      XRXKWRWSXRYECWTXAXDAXTXKXBXCXEXFXGXOXOXHXIXJ $.
  $}

  ${
    $d x A $.  $d x B $.
    subopnmbl.1 $e |- J = ( ( topGen ` ran (,) ) |`t A ) $.
    $( Sets which are open in a measurable subspace are measurable.
       (Contributed by Mario Carneiro, 17-Jun-2014.) $)
    subopnmbl $p |- ( ( A e. dom vol /\ B e. J ) -> B e. dom vol ) $=
      ( vx cvol cdm wcel cv cin wceq cioo crn ctg cfv wrex crest co eleq2i ctop
      wb retop elrest syl5bb wa wi opnmbl id inmbl syl2anr eleq1a syl rexlimdva
      mpan sylbid imp ) AFGZHZBCHZBUQHZURUSBEIZAJZKZELMNOZPZUTUSBVDAQRZHZURVECV
      FBDSVDTHURVGVEUAUBEBAVDTUQUCUNUDURVCUTEVDURVAVDHZUEVBUQHZVCUTUFVHVAUQHURV
      IURVAUGURUHVAAUIUJVBUQBUKULUMUOUP $.
  $}

  ${
    $d m n x z A $.  $d n x z B $.
    $( The volume of ` A ` is the supremum of the sequence
       ` vol* `` ( A i^i ( -u n [,] n ) ) ` of volumes of bounded sets.
       (Contributed by Mario Carneiro, 30-Aug-2014.) $)
    volsup2 $p |- ( ( A e. dom vol /\ B e. RR /\ B < ( vol ` A ) ) ->
      E. n e. NN B < ( vol ` ( A i^i ( -u n [,] n ) ) ) ) $=
      ( vm cvol wcel cr cfv wbr cicc co cn cle wral cxr wb syl2anc wceq syl wss
      vx vz cdm clt w3a cv cneg cin wrex wn rexr 3ad2ant2 cc0 cpnf iccssxr volf
      simp3 ffvelrni sseldi 3ad2ant1 xrltnle mpbid cmpt crn cima csup cuni ciun
      negeq id oveq12d ineq2d eqid ovex inex2 fvmpt iuneq2i iunin2 eqtri wfn wf
      simpl1 nnre adantl renegcld iccmbl inmbl cbvmptv fmptd ffn fniunfv sselda
      wa mblss cabs recn abscld arch wi ltle syl2an 3expib adantr sylan2 elicc2
      absle 3imtr4d syld reximdva mpd ex eliun syl6ibr ssrdv df-ss sylib fveq2d
      3eqtr3a caddc peano2re lep1d lenegd iccss syl22anc sslin peano2nn 3sstr4d
      c1 ralrimiva volsup eqtr3d breq1d imassrn frn ax-mp sstri supxrleub breq1
      sylancr ralima fveq2 ralrn syl6bb bitrd 3bitrd mtbid rexnal sylibr mpbird
      ralbiia rexbidva ) AEUCZFZBGFZBAEHZUDIZUEZBACUFZUGZUURJKZUHZEHZUDIZCLUIUV
      BBMIZUJZCLUIZUUQUVDCLNZUJUVFUUQUUOBMIZUVGUUQUUPUVHUJZUUMUUNUUPUQUUQBOFZUU
      OOFZUUPUVIPUUNUUMUVJUUPBUKULZUUMUUNUVKUUPUUMUMUNJKZOUUOUMUNUOZUULUVMAEUPU
      RUSUTBUUOVAQVBUUQUVHEDLADUFZUGZUVOJKZUHZVCZVDZVEZOUDVFZBMIZUURBMIZCUWANZU
      VGUUQUUOUWBBMUUQUVTVGZEHZUUOUWBUUQUWFAEUUQCLUURUVSHZVHZACLUUTVHZUHZUWFAUW
      ICLUVAVHUWKCLUWHUVADUURUVRUVALUVSUVOUURRZUVQUUTAUWLUVPUUSUVOUURJUVOUURVIU
      WLVJVKVLZUVSVMZUUTAUUSUURJVNVOVPZVQCLAUUTVRVSUUQUVSLVTZUWIUWFRUUQLUULUVSW
      AZUWPUUQCLUVAUULUVSUUQUURLFZWMZUUMUUTUULFZUVAUULFZUUMUUNUUPUWRWBUWSUUSGFZ
      UURGFZUWTUWSUURUWRUXCUUQUURWCZWDZWEUXEUUSUURWFQAUUTWGQZDCLUVRUVAUWMWHWIZL
      UULUVSWJSZCLUVSWKSUUQAUWJTUWKARUUQUAAUWJUUQUAUFZAFZUXIUUTFZCLUIZUXIUWJFUU
      QUXJUXLUUQUXJWMUXIGFZUXLUUQAGUXIUUMUUNAGTUUPAWNUTWLUXMUXIWOHZUURUDIZCLUIZ
      UXLUXMUXNGFZUXPUXMUXIUXIWPWQZUXNCWRSUXMUXOUXKCLUXMUWRWMZUXOUXNUURMIZUXKUX
      MUXQUXCUXOUXTWSUWRUXRUXDUXNUURWTXAUXSUUSUXIMIZUXIUURMIZWMZUXMUYAUYBUEZUXT
      UXKUXMUYCUYDWSUWRUXMUYAUYBUYDUYDVJXBXCUWRUXMUXCUXTUYCPUXDUXIUURXFXDUXSUXB
      UXCUXKUYDPUXSUURUWRUXCUXMUXDWDZWEUYEUUSUURUXIXEQXGXHXIXJSXKCUXILUUTXLXMXN
      AUWJXOXPXRXQUUQUWQUWHUURYHXSKZUVSHZTZCLNUWGUWBRUXGUUQUYHCLUWSUVAAUYFUGZUY
      FJKZUHZUWHUYGUWSUUTUYJTZUVAUYKTUWSUYIGFUYFGFZUYIUUSMIZUURUYFMIZUYLUWSUYFU
      WSUXCUYMUXEUURXTSZWEUYPUWSUYOUYNUWSUURUXEYAZUWSUURUYFUXEUYPYBVBUYQUYIUYFU
      USUURYCYDUUTUYJAYESUWRUWHUVARUUQUWOWDUWSUYFLFZUYGUYKRUWRUYRUUQUURYFWDDUYF
      UVRUYKLUVSUVOUYFRZUVQUYJAUYSUVPUYIUVOUYFJUVOUYFVIUYSVJVKVLUWNUYJAUYIUYFJV
      NVOVPSYGYICUVSYJQYKYLUUQUWAOTUVJUWCUWEPUWAEVDZOEUVTYMUYTUVMOUULUVMEWAZUYT
      UVMTUPUULUVMEYNYOUVNYPYPUVLCUWABYQYSUUQUWEUBUFZEHZBMIZUBUVTNZUVGUUQEUULVT
      ZUVTUULTZUWEVUEPVUAVUFUPUULUVMEWJYOUUQUWQVUGUXGLUULUVSYNSUWDVUDCUBUULUVTE
      UURVUCBMYRYTYSUUQVUEUWHEHZBMIZCLNZUVGUUQUWPVUEVUJPUXHVUDVUIUBCLUVSVUBUWHR
      VUCVUHBMVUBUWHEUUAYLUUBSVUIUVDCLUWRVUHUVBBMUWRUWHUVAEUWOXQYLUUJUUCUUDUUEU
      UFUVDCLUUGUUHUUQUVCUVECLUWSUVJUVBOFZUVCUVEPUUQUVJUWRUVLXCUWSUXAVUKUXFUXAU
      VMOUVBUVNUULUVMUVAEUPURUSSBUVBVAQUUKUUI $.
  $}

  ${
    $d e u v x y z A $.  $d e u v x y z B $.  $d d e u v y z F $.
    volcn.1 $e |- F = ( x e. RR |-> ( vol ` ( A i^i ( B [,] x ) ) ) ) $.
    $( The function formed by restricting a measurable set to a closed interval
       with a varying endpoint produces an increasing continuous function on
       the reals.  (Contributed by Mario Carneiro, 30-Aug-2014.) $)
    volcn $p |- ( ( A e. dom vol /\ B e. RR ) -> F e. ( RR -cn-> RR ) ) $=
      ( vz wcel cr wa cmin co cabs cfv clt wbr wceq syl wss adantr cle vy vd ve
      vv vu cvol cdm wf cv wi wral crp wrex ccncf cicc cin covol simpll adantll
      iccmbl inmbl syl2anc mblvol inss2 mblss iccvolcl eqeltrrd syl3anc eqeltrd
      a1i fmptd simprr weq oveq12 ancoms fveq2d breq1d fveq2 oveqan12rd imbi12d
      ovolsscl ssid cc abssub syl2anr adantl ffvelrn anim12dan sylan w3a simpr2
      oveq2 ineq2d fvmpt simplll simplr eqtrd simpr1 simp1 syl2an oveq12d caddc
      recn fvex cun ffvelrnd leidd simpr3 iccss syl22anc sslin iccssre resubcld
      sstrd unssd readdcld ovolicc ovolun oveq2d ovollecl simpr wb simp2 elicc2
      breqtrd mpbir3and iccsplit eqimss ssun4 lecasei indi unss2 eqsstri syl6ss
      ax-mp ovolss letrd lesubadd2d mpbird ax-resscn eqbrtrd rpred lelttr mpand
      abssubge0 3brtr4d abssubge0d 3imtr4d wlogle anassrs anasss ancom2s imbi1d
      ralrimiva breq2 ralbidv rspcev ralrimivva elcncf2 mp2an sylanbrc ) BUFUGZ
      GZCHGZIZHHDUHZFUIZUAUIZJKZLMZUBUIZNOZUVGDMZUVHDMZJKZLMZUCUIZNOZUJZFHUKZUB
      ULUMZUCULUKUAHUKZDHHUNKGZUVEAHBCAUIZUOKZUPZUFMZHDUVEUWDHGZIZUWGUWFUQMZHUW
      IUWFUVBGZUWGUWJPUWIUVCUWEUVBGZUWKUVCUVDUWHURUVDUWHUWLUVCCUWDUTUSZBUWEVAVB
      UWFVCQUWIUWFUWERZUWEHRZUWEUQMZHGUWJHGUWNUWIBUWEVDVJUWIUWLUWOUWMUWEVEQUWIU
      WEUFMZUWPHUWIUWLUWQUWPPUWMUWEVCQUVDUWHUWQHGUVCCUWDVFUSVGUWFUWEWAVHVIEVKZU
      VEUWAUAUCHULUVEUVHHGZUVQULGZIIUWTUVJUVQNOZUVRUJZFHUKZUWAUVEUWSUWTVLUVEUWT
      UWSUXCUVEUWTUWSUXCUVEUWTIZUWSIUXBFHUXDUWSUVGHGZUXBUXDUDUIZUEUIZJKZLMZUVQN
      OZUXFDMZUXGDMZJKZLMZUVQNOZUJUXBUVHUVGJKZLMZUVQNOZUVNUVMJKZLMZUVQNOZUJUAFU
      EUDHUEUAVMZUDFVMZIZUXJUXAUXOUVRUYDUXIUVJUVQNUYDUXHUVILUYCUYBUXHUVIPUXFUVG
      UXGUVHJVNVOVPVQUYDUXNUVPUVQNUYDUXMUVOLUYCUYBUXKUVMUXLUVNJUXFUVGDVRUXGUVHD
      VRVSVPVQVTUEFVMZUDUAVMZIZUXJUXRUXOUYAUYGUXIUXQUVQNUYGUXHUXPLUYFUYEUXHUXPP
      UXFUVHUXGUVGJVNVOVPVQUYGUXNUXTUVQNUYGUXMUXSLUYFUYEUXKUVNUXLUVMJUXFUVHDVRU
      XGUVGDVRVSVPVQVTHHRUXDHWBVJUXDUWSUXEIZIZUXAUXRUVRUYAUYIUVJUXQUVQNUYHUVJUX
      QPZUXDUXEUVGWCGUVHWCGUYJUWSUVGXCUVHXCUVGUVHWDWEWFVQUYIUVPUXTUVQNUYIUVNHGZ
      UVMHGZIZUVPUXTPZUXDUVFUYHUYMUVEUVFUWTUWRSZUVFUWSUYKUXEUYLHHUVHDWGHHUVGDWG
      WHWIUYLUVMWCGUVNWCGUYNUYKUVMXCUVNXCUVMUVNWDWEQVQVTUXDUWSUXEUVHUVGTOZWJZIZ
      UVIUVQNOZUVOUVQNOZUXAUVRUYRUVOUVITOZUYSUYTUYRUVOBCUVGUOKZUPZUQMZBCUVHUOKZ
      UPZUQMZJKZUVITUYRUVMVUDUVNVUGJUYRUVMVUCUFMZVUDUYRUXEUVMVUIPUXDUWSUXEUYPWK
      ZAUVGUWGVUIHDAFVMZUWFVUCUFVUKUWEVUBBUWDUVGCUOWLWMVPEVUCUFXDWNQUYRVUCUVBGZ
      VUIVUDPUYRUVCVUBUVBGZVULUVCUVDUWTUYQWOZUYRUVDUXEVUMUXDUVDUYQUVCUVDUWTWPZS
      ZVUJCUVGUTVBBVUBVAVBZVUCVCQWQZUYRUVNVUFUFMZVUGUYRUWSUVNVUSPUXDUWSUXEUYPWR
      ZAUVHUWGVUSHDAUAVMZUWFVUFUFVVAUWEVUEBUWDUVHCUOWLWMVPEVUFUFXDWNQUYRVUFUVBG
      ZVUSVUGPUYRUVCVUEUVBGZVVBVUNUXDUVDUWSVVCUYQVUOUWSUXEUYPWSCUVHUTWTBVUEVAVB
      VUFVCQWQZXAUYRVUHUVITOVUDVUGUVIXBKZTOUYRVUDVUFUVHUVGUOKZXEZUQMZVVEUYRUVMV
      UDHVURUYRHHUVGDUXDUVFUYQUYOSZVUJXFZVGZUYRVVGHRZVVEHGVVHVVETOVVHHGUYRVUFVV
      FHUYRVUFVUCHUYRVUEVUBRZVUFVUCRZUYRUVDUXECCTOUYPVVMVUPVUJUYRCVUPXGUXDUWSUX
      EUYPXHZCUVGCUVHXIXJVUEVUBBXKQZUYRVULVUCHRZVUQVUCVEQZXNZUYRUWSUXEVVFHRZVUT
      VUJUVHUVGXLVBZXOZUYRVUGUVIUYRUVNVUGHVVDUYRHHUVHDVVIVUTXFZVGZUYRUVGUVHVUJV
      UTXMZXPZUYRVVHVUGVVFUQMZXBKZVVETUYRVUFHRVUGHGVVTVWGHGVVHVWHTOVVSVWDVWAUYR
      VWGUVIHUYQVWGUVIPUXDUVHUVGXQWFZVWEVIVUFVVFXRXJUYRVWGUVIVUGXBVWIXSYEZVVGVV
      EXTVHVWFUYRVUCVVGRVVLVUDVVHTOUYRVUCBVUEVVFXEZUPZVVGUYRVUBVWKRZVUCVWLRUYRV
      WMCUVHVUPVUTUYRCUVHTOZIZVUBVWKPZVWMVWOUVDUXEUVHVUBGZVWPUYRUVDVWNVUPSUYRUX
      EVWNVUJSVWOVWQUWSVWNUYPUYRUWSVWNVUTSUYRVWNYAUYRUYPVWNVVOSUYRVWQUWSVWNUYPW
      JYBZVWNUXDUVDUXEVWRUYQVUOUWSUXEUYPYCCUVGUVHYDWTSYFCUVGUVHYGVHVUBVWKYHQUYR
      UVHCTOZIZVUBVVFRZVWMVWTUWSUXEVWSUVGUVGTOVXAUYRUWSVWSVUTSUYRUXEVWSVUJSZUYR
      VWSYAVWTUVGVXBXGUVHUVGCUVGXIXJVUBVVFVUEYIQYJVUBVWKBXKQVWLVUFBVVFUPZXEZVVG
      BVUEVVFYKVXCVVFRVXDVVGRBVVFVDVXCVVFVUFYLYOYMYNVWBVUCVVGYPVBVWJYQUYRVUDVUG
      UVIVVKVWDVWEYRYSUUAUYRUVOHGUVIHGUVQHGVUAUYSIUYTUJUYRUVMUVNVVJVWCXMVWEUYRU
      VQUVEUWTUYQWPUUBUVOUVIUVQUUCVHUUDUYRUVJUVIUVQNUYQUVJUVIPUXDUVHUVGUUEWFVQU
      YRUVPUVOUVQNUYRUVNUVMVWCVVJUYRVUGVUDUVNUVMTUYRVVNVVQVUGVUDTOVVPVVRVUFVUCY
      PVBVVDVURUUFUUGVQUUHUUIUUJUUNUUKUULUVTUXCUBUVQULUBUCVMZUVSUXBFHVXEUVLUXAU
      VRUVKUVQUVJNUUOUUMUUPUUQVBUURHWCRZVXFUWCUVFUWBIYBYTYTUAUCUBFHHDUUSUUTUVA
      $.
  $}

  ${
    $d n u x y z A $.  $d n u x z B $.
    $( The Intermediate Value Theorem for the Lebesgue volume function.  For
       any positive ` B <_ ( vol `` A ) ` , there is a measurable subset of
       ` A ` whose volume is ` B ` .  (Contributed by Mario Carneiro,
       30-Aug-2014.) $)
    volivth $p |- ( ( A e. dom vol /\ B e. ( 0 [,] ( vol ` A ) ) ) ->
      E. x e. dom vol ( x C_ A /\ ( vol ` x ) = B ) ) $=
      ( vy cvol wcel cc0 cfv cicc co wa wbr wss wceq cxr adantr cle syl2anc syl
      cr vn vz vu cdm clt cv wrex cneg cin simpll cmnf mnfxr a1i iccssxr sseldi
      cn simpr cpnf volf ffvelrni w3a wb 0xr elicc1 sylancr mpbid simp2d mnflt0
      wi xrltletr mpani mp3an12 sylc syl32anc volsup2 syl3anc ad2antrl renegcld
      xrre2 cmpt nnre 0red nngt0 lt0neg2d lttrd iccssre ccncf cc ax-resscn ssid
      cncfss mp2an eqid volcn sselda cncff ffvelrnda syldan covol ineq2d fveq2d
      wf oveq2 fvex fvmpt csn inss2 rexrd iccid syl5sseq snssd ovolsn ovolssnul
      sstrd nulmbl mblvol 3eqtrd simprr iccmbl inmbl xrltle mpd breqtrrd ivthle
      eqbrtrd jca eqeq1d adantrr inss1 sseq1 fveq2 anbi12d rspcev syl12anc expr
      sylbid rexlimdva rexlimddv eqcomd wo simp3d xrleloe mpjaodan ) BEUDZFZCGB
      EHZIJZFZKZCUUFUELZAUFZBMZUUKEHZCNZKZAUUDUGZCUUFNZUUIUUJKZCBUAUFZUHZUUSIJZ
      UIZEHZUELZUUPUAUPUURUUECTFZUUJUVDUAUPUGUUEUUHUUJUJZUURUKOFZCOFZUUFOFZUKCU
      ELZUUJUVEUVGUURULUMUUIUVHUUJUUIUUGOCGUUFUNUUEUUHUQZUOZPZUUIUVIUUJUUEUVIUU
      HUUEGURIJZOUUFGURUNZUUDUVNBEUSUTUOPZPUURUVHGCQLZUVJUVMUUIUVQUUJUUIUVHUVQC
      UUFQLZUUIUUHUVHUVQUVRVAZUVKUUIGOFZUVIUUHUVSVBVCUVPGUUFCVDVEVFZVGPZUVGUVTU
      VHUVQUVJVIULVCUVGUVTUVHVAUKGUELUVQUVJVHUKGCVJVKVLVMUUIUUJUQZUKCUUFVSVNZUW
      CBCUAVOVPUURUUSUPFZUVDKZKZUBUFZDTBUUTDUFZIJZUIZEHZVTZHZCNZUBUVAUGUUPUWGUC
      UUTUUSTCUWMUBUWGUUSUWEUUSTFZUURUVDUUSWAVQZVRZUWQUURUVEUWFUWDPUWGUUTGUUSUW
      RUWGWBUWQUWGGUUSUELZUUTGUELUWEUWSUURUVDUUSWCVQZUWGUUSUWQWDVFUWTWEUWGUUTTF
      ZUWPUVATMUWRUWQUUTUUSWFRZUWGTTWGJZTWHWGJZUWMTWHMWHWHMUXCUXDMWIWHWJTTWHWKW
      LUWGUUEUXAUWMUXCFZUURUUEUWFUVFPZUWRDBUUTUWMUWMWMZWNRZUOUWGUCUFZUVAFUXITFU
      XIUWMHTFUWGUVATUXIUXBWOUWGTTUXIUWMUWGUXETTUWMXBUXHTTUWMWPSWQWRUWGUUTUWMHZ
      CQLCUUSUWMHZQLUWGUXJGCQUWGUXJBUUTUUTIJZUIZEHZUXMWSHZGUWGUXAUXJUXNNUWRDUUT
      UWLUXNTUWMUWIUUTNZUWKUXMEUXPUWJUXLBUWIUUTUUTIXCWTXAUXGUXMEXDXESUWGUXMUUDF
      ZUXNUXONUWGUXMTMUXOGNZUXQUWGUXMUUTXFZTUWGUXLUXMUXSBUXLXGUWGUUTOFUXLUXSNUW
      GUUTUWRXHUUTXISXJZUWGUUTTUWRXKZXNUWGUXMUXSMUXSTMUXSWSHGNZUXRUXTUYAUWGUXAU
      YBUWRUUTXLSUXMUXSXMVPZUXMXORUXMXPSUYCXQUURUVQUWFUWBPYEUWGCUVCUXKQUWGUVDCU
      VCQLZUURUWEUVDXRUWGUVHUVCOFZUVDUYDVIUURUVHUWFUVMPUWGUVBUUDFZUYEUWGUUEUVAU
      UDFZUYFUXFUWGUXAUWPUYGUWRUWQUUTUUSXSRBUVAXTRUYFUVNOUVCUVOUUDUVNUVBEUSUTUO
      SCUVCYARYBUWGUWPUXKUVCNUWQDUUSUWLUVCTUWMUWIUUSNZUWKUVBEUYHUWJUVABUWIUUSUU
      TIXCWTXAUXGUVBEXDXESYCYFYDUWGUWOUUPUBUVAUWGUWHUVAFZKZUWOBUUTUWHIJZUIZEHZC
      NZUUPUYJUWNUYMCUYJUWHTFZUWNUYMNUWGUVATUWHUXBWOZDUWHUWLUYMTUWMUWIUWHNZUWKU
      YLEUYQUWJUYKBUWIUWHUUTIXCWTXAUXGUYLEXDXESYGUWGUYIUYNUUPUWGUYIUYNKZKZUYLUU
      DFZUYLBMZUYNUUPUYSUUEUYKUUDFZUYTUWGUUEUYRUXFPUYSUXAUYOVUBUWGUXAUYRUWRPUWG
      UYIUYOUYNUYPYHUUTUWHXSRBUYKXTRVUAUYSBUYKYIUMUWGUYIUYNXRUUOVUAUYNKAUYLUUDU
      UKUYLNZUULVUAUUNUYNUUKUYLBYJVUCUUMUYMCUUKUYLEYKYGYLYMYNYOYPYQYBYRUUIUUQKZ
      UUEBBMZUUFCNZUUPUUEUUHUUQUJVUEVUDBWJUMVUDCUUFUUIUUQUQYSUUOVUEVUFKABUUDUUK
      BNZUULVUEUUNVUFUUKBBYJVUGUUMUUFCUUKBEYKYGYLYMYNUUIUVRUUJUUQYTZUUIUVHUVQUV
      RUWAUUAUUIUVHUVIUVRVUHVBUVLUVPCUUFUUBRVFUUC $.
  $}

  ${
    $d m n s x y z G $.  $d k m n v w x z ph $.  $d w z S $.  $d k m v w x T $.
    $d k m n s v w x y z F $.  $d m n s u v w x y z .~ $.
    vitali.1 $e |- .~ = { <. x , y >. |
         ( ( x e. ( 0 [,] 1 ) /\ y e. ( 0 [,] 1 ) ) /\ ( x - y ) e. QQ ) } $.
    $( Lemma for ~ vitali .  (Contributed by Mario Carneiro, 16-Jun-2014.)
       (Proof shortened by AV, 1-May-2021.) $)
    vitalilem1 $p |- .~ Er ( 0 [,] 1 ) $=
      ( cc0 co cv wcel wa cmin cq cr unitssre recnd oveq12 eleq1d brab2a simpld
      wbr wceq vu vv vw c1 cicc relopabi simplr cneg cc sseli ad2antrr ad2antlr
      simpll negsubdi2d qnegcl adantl eqeltrrd jca31 3imtr4i simpl sylib simprd
      simpr jca caddc sseldi npncand qaddcl syl2anc sylanbrc subidd cz 0z ax-mp
      syl zq syl6eqel adantr pm4.71i pm4.24 3bitr4i iseri ) UAUBUCEUDUEFZCAGZWC
      HBGZWCHIWDWEJFZKHZIABCDUFUAGZWCHZUBGZWCHZIZWHWJJFZKHZIZWKWIIWJWHJFZKHZIWH
      WJCSZWJWHCSWOWKWIWQWIWKWNUGWIWKWNUMWOWMUHZWPKWOWHWJWIWHUIHZWKWNWIWHWCLWHM
      UJNZUKWKWJUIHZWIWNWKWJWCLWJMUJNULZUNWNWSKHWLWMUOUPUQURWGWNABWHWJWCWCCWDWH
      TZWEWJTIWFWMKWDWHWEWJJOPDQZWGWQABWJWHWCWCCWDWJTZWEWHTZIWFWPKWDWJWEWHJOPDQ
      USWRWJUCGZCSZIZWIXHWCHZIWHXHJFZKHZWHXHCSXJWIXKXJWIWKXJWLWNXJWRWOWRXIUTXEV
      AZRRZXJWKXKXJWKXKIZWJXHJFZKHZXJXIXPXRIWRXIVCWGXRABWJXHWCWCCXFWEXHTZIWFXQK
      WDWJWEXHJOPDQVAZRVBZVDXJWMXQVEFZXLKXJWHWJXHXJWIWTXOXAVOXJWOXBXNXCVOXJXHXJ
      WCLXHMYAVFNVGXJWNXRYBKHXJWLWNXNVBXJXPXRXTVBWMXQVHVIUQWGXMABWHXHWCWCCXDXSI
      WFXLKWDWHWEXHJOPDQVJWIWIIZYCWHWHJFZKHZIWIWHWHCSYCYEWIYEWIWIYDEKWIWHXAVKEV
      LHEKHVMEVPVNVQVRVSWIVTWGYEABWHWHWCWCCXDXGIWFYDKWDWHWEWHJOPDQWAWB $.

    $( Obsolete proof of ~ vitalilem1 as of 1-May-2021.  Lemma for ~ vitali .
       (Contributed by Mario Carneiro, 16-Jun-2014.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    vitalilem1OLD $p |- .~ Er ( 0 [,] 1 ) $=
      ( vu vv vw cc0 co wtru cv wcel wa cmin cq wbr weq oveq12 eleq1d brab2a c1
      cicc wer wrel relopabi a1i simplr simpll cc unitssre sseli recnd ad2antrr
      cneg ad2antlr negsubdi2d qnegcl adantl eqeltrrd jca31 3imtr4i simpl sylib
      cr simpld simpr simprd jca caddc syl sseldi npncand qaddcl syl2anc subidd
      sylanbrc wb cz 0z ax-mp syl6eqel adantr pm4.71i pm4.24 3bitr4i iserd trud
      zq ) HUAUBIZCUCJEFGWICCUDJAKZWILBKZWILMWJWKNIZOLZMABCDUEUFEKZFKZCPZWOWNCP
      ZJWNWILZWOWILZMZWNWONIZOLZMZWSWRMWOWNNIZOLZMWPWQXCWSWRXEWRWSXBUGWRWSXBUHX
      CXAUNZXDOXCWNWOWRWNUILZWSXBWRWNWIVDWNUJUKULZUMWSWOUILZWRXBWSWOWIVDWOUJUKU
      LUOZUPXBXFOLWTXAUQURUSUTWMXBABWNWOWIWICAEQZBFQMWLXAOWJWNWKWONRSDTZWMXEABW
      OWNWIWICAFQZBEQZMWLXDOWJWOWKWNNRSDTVAURWPWOGKZCPZMZWNXOCPZJXQWRXOWILZMWNX
      ONIZOLZXRXQWRXSXQWRWSXQWTXBXQWPXCWPXPVBXLVCZVEVEZXQWSXSXQWSXSMZWOXONIZOLZ
      XQXPYDYFMWPXPVFWMYFABWOXOWIWICXMBGQZMWLYEOWJWOWKXONRSDTVCZVEVGZVHXQXAYEVI
      IZXTOXQWNWOXOXQWRXGYCXHVJXQXCXIYBXJVJXQXOXQWIVDXOUJYIVKULVLXQXBYFYJOLXQWT
      XBYBVGXQYDYFYHVGXAYEVMVNUSWMYAABWNXOWIWICXKYGMWLXTOWJWNWKXONRSDTVPURWRWNW
      NCPZVQJWRWRMZYLWNWNNIZOLZMWRYKYLYNWRYNWRWRYMHOWRWNXHVOHVRLHOLVSHWHVTWAWBW
      CWRWDWMYNABWNWNWIWICXKXNMWLYMOWJWNWKWNNRSDTWEUFWFWG $.

    vitali.2 $e |- S = ( ( 0 [,] 1 ) /. .~ ) $.
    vitali.3 $e |- ( ph -> F Fn S ) $.
    vitali.4 $e |- ( ph -> A. z e. S ( z =/= (/) -> ( F ` z ) e. z ) ) $.
    vitali.5 $e |- ( ph -> G : NN -1-1-onto-> ( QQ i^i ( -u 1 [,] 1 ) ) ) $.
    vitali.6 $e |- T = ( n e. NN |-> { s e. RR |
                         ( s - ( G ` n ) ) e. ran F } ) $.
    vitali.7 $e |- ( ph -> -. ran F e. ( ~P RR \ dom vol ) ) $.
    $( Lemma for ~ vitali .  (Contributed by Mario Carneiro, 16-Jun-2014.) $)
    vitalilem2 $p |- ( ph ->
      ( ran F C_ ( 0 [,] 1 ) /\ ( 0 [,] 1 ) C_ U_ m e. NN ( T ` m ) /\
        U_ m e. NN ( T ` m ) C_ ( -u 1 [,] 2 ) ) ) $=
      ( wcel vv vw crn cc0 c1 cicc co wss cn cv cfv ciun cneg c2 wf wfn wral c0
      wne wi cec neeq1 cdm wer wceq vitalilem1 erdm eleq2i ecdmn0 bitr3i biimpi
      wa ax-mp ectocl adantl sseq1 a1i ecss sseld embantd ralimdva mpd sylanbrc
      ffnfv frn syl cmin ccnv cq cin wf1o adantr f1ocnv f1of 3syl cqs ovex erex
      cvv mp2 ecelqsi syl6eleqr sylib wbr weq eleq1d simprd cle w3a 0re elicc2i
      fveq2 1re simp1d simpld resubcld simp2d subge02d mpbid simp3d letrd recnd
      1red neg1rr syl3anbrc crab syl2anc oveq2d oveq1 elrab rabbidv rabex fvmpt
      cr reex ex ssrdv sseldi caddc 2re simpr id eleq12d imbi12d rspcv fvex vex
      syl3c elec oveq12 brab2a bitri lenegd negsubdi2d elind ffvelrnd f1ocnvfv2
      breqtrd nncand eqtrd fnfvelrn eqeltrd eleqtrrd eliuni eliun eleq2d biimpa
      jca wrex iccssre mp2an inss2 ffvelrnda ad2antrr sseldd subge0d lesubadd2d
      peano2re leadd1dd df-2 syl6breqr rexlimdva syl5bi 3jca ) AJUCZUDUEUFUGZUH
      ZUWFHUIHUJZGUKZULZUHUWJUEUMZUNUFUGZUHAFUWFJUOZUWGAJFUPZDUJZJUKZUWFTZDFUQZ
      UWMOAUWOURUSZUWPUWOTZUTZDFUQZUWRPAUXAUWQDFAUWOFTZVLZUWSUWTUWQUXCUWSAUAUJZ
      EVAZURUSZUWSUAUWOUWFEFNUXFUWOURVBUXEUWFTZUXGUXHUXEEVCZTUXGUXIUWFUXEUWFEVD
      ZUXIUWFVEBCEMVFZUWFEVGVMVHUXEEVIVJZVKVNVOUXDUWOUWFUWPUXCUWOUWFUHZAUBUJZEV
      AZUWFUHUXMUBUWOUWFEFNUXOUWOUWFVPUXNUWFTZUXNEUWFUXJUXPUXKVQVRVNVOVSVTWAWBD
      FUWFJWDWCFUWFJWEWFZAUAUWFUWJAUXHUXEUWJTZAUXHVLZUXEUXFJUKZWGUGZKWHZUKZUITZ
      UXEUYCGUKZTZVLUXRUXSUYDUYFUXSWIUWKUEUFUGZWJZUIUYAUYBUXSUIUYHKWKZUYHUIUYBW
      KUYHUIUYBUOAUYIUXHQWLZUIUYHKWMUYHUIUYBWNWOUXSWIUYGUYAUXSUXHUXTUWFTZVLZUYA
      WITZUXSUXTUXFTZUYLUYMVLZUXSUXFFTZUXBUXGUYNUXSUXFUWFEWPZFUXHUXFUYQTAUWFUXE
      EUXJUWFWSTEWSTUXKUDUEUFWQUWFEWSWRWTXAVONXBZAUXBUXHPWLUXSUXHUXGAUXHUUAZUXL
      XCUXAUXGUYNUTDUXFFUWOUXFVEZUWSUXGUWTUYNUWOUXFURVBUYTUWPUXTUWOUXFUWOUXFJXL
      UYTUUBUUCUUDUUEUUHUYNUXEUXTEXDUYOUXTUXEEUXFJUUFUAUUGUUIBUJZCUJZWGUGZWITUY
      MBCUXEUXTUWFUWFEBUAXEVUBUXTVEVLVUCUYAWIVUAUXEVUBUXTWGUUJXFMUUKUULXCZXGUXS
      UYAYNTUWKUYAXHXDUYAUEXHXDUYAUYGTUXSUXEUXTUXSUXEYNTZUDUXEXHXDZUXEUEXHXDZUX
      SUXHVUEVUFVUGXIUYSUDUEUXEXJXMXKXCZXNZUXSUXTYNTZUDUXTXHXDZUXTUEXHXDZUXSUYK
      VUJVUKVULXIUXSUXHUYKUXSUYLUYMVUDXOXGUDUEUXTXJXMXKXCZXNZXPZUXSUWKUXTUXEWGU
      GZUMZUYAXHUXSVUPUEXHXDUWKVUQXHXDUXSVUPUXTUEUXSUXTUXEVUNVUIXPZVUNUXSYCZUXS
      VUFVUPUXTXHXDUXSVUEVUFVUGVUHXQUXSUXTUXEVUNVUIXRXSUXSVUJVUKVULVUMXTYAUXSVU
      PUEVURVUSUUMXSUXSUXTUXEUXSUXTVUNYBZUXSUXEVUIYBZUUNUURUXSUYAUXEUEVUOVUIVUS
      UXSVUKUYAUXEXHXDUXSVUJVUKVULVUMXQUXSUXEUXTVUIVUNXRXSUXSVUEVUFVUGVUHXTYAUW
      KUEUYAYDXMXKYEUUOZUUPZUXSUXELUJZUYCKUKZWGUGZUWETZLYNYFZUYEUXSVUEUXEVVEWGU
      GZUWETZUXEVVHTVUIUXSVVIUXTUWEUXSVVIUXEUYAWGUGUXTUXSVVEUYAUXEWGUXSUYIUYAUY
      HTVVEUYAVEUYJVVBUIUYHUYAKUUQYGYHUXSUXEUXTVVAVUTUUSUUTUXSUWNUYPUXTUWETAUWN
      UXHOWLUYRFUXFJUVAYGUVBVVGVVJLUXEYNLUAXEVVFVVIUWEVVDUXEVVEWGYIXFYJWCUXSUYD
      UYEVVHVEVVCIUYCVVDIUJZKUKZWGUGZUWETZLYNYFZVVHUIGVVKUYCVEZVVNVVGLYNVVPVVMV
      VFUWEVVPVVLVVEVVDWGVVKUYCKXLYHXFYKRVVGLYNYOYLYMWFUVCUVHHUYCUWIUYEUIUXEUWH
      UYCGXLUVDWFYPYQABUWJUWLVUAUWJTVUAUWITZHUIUVIAVUAUWLTZHVUAUIUWIUVEAVVQVVRH
      UIAUWHUITZVLZVVQVVRVVTVVQVLZVUAYNTZUWKVUAXHXDVUAUNXHXDVVRVWAVWBVUAUWHKUKZ
      WGUGZUWETZVWAVUAVVDVWCWGUGZUWETZLYNYFZTZVWBVWEVLVVTVVQVWIVVTUWIVWHVUAVVSU
      WIVWHVEAIUWHVVOVWHUIGIHXEZVVNVWGLYNVWJVVMVWFUWEVWJVVLVWCVVDWGVVKUWHKXLYHX
      FYKRVWGLYNYOYLYMVOUVFUVGVWGVWELVUAYNLBXEVWFVWDUWEVVDVUAVWCWGYIXFYJXCZXOZV
      WAUWKVWCVUAUWKYNTZVWAYDVQVVTVWCYNTZVVQVVTUYGYNVWCVWMUEYNTUYGYNUHYDXMUWKUE
      UVJUVKVVTUYHUYGVWCWIUYGUVLAUIUYHUWHKAUYIUIUYHKUOQUIUYHKWNWFUVMYRZYRWLZVWL
      VWAVWNUWKVWCXHXDZVWCUEXHXDZVWAVWCUYGTZVWNVWQVWRXIVVTVWSVVQVWOWLUWKUEVWCYD
      XMXKXCZXQVWAUDVWDXHXDZVWCVUAXHXDVWAVWDYNTZVXAVWDUEXHXDZVWAVWDUWFTVXBVXAVX
      CXIVWAUWEUWFVWDAUWGVVSVVQUXQUVNVWAVWBVWEVWKXGUVOUDUEVWDXJXMXKXCZXQVWAVUAV
      WCVWLVWPUVPXSYAVWAVUAVWCUEYSUGZUNVWLVWAVWNVXEYNTVWPVWCUVRWFUNYNTVWAYTVQVW
      AVXCVUAVXEXHXDVWAVXBVXAVXCVXDXTVWAVUAVWCUEVWLVWPVWAYCZUVQXSVWAVXEUEUEYSUG
      UNXHVWAVWCUEUEVWPVXFVXFVWAVWNVWQVWRVWTXTUVSUVTUWAYAUWKUNVUAYDYTXKYEYPUWBU
      WCYQUWD $.

    $( Lemma for ~ vitali .  (Contributed by Mario Carneiro, 16-Jun-2014.) $)
    vitalilem3 $p |- ( ph -> Disj_ m e. NN ( T ` m ) ) $=
      ( wcel vw vk vv cv cn cfv wa wmo wal wdisj weq wi wceq cr cmin co simprlr
      crn crab simprll fveq2 oveq2d eleq1d rabbidv reex rabex fvmpt syl eleqtrd
      oveq1 elrab sylib simpld recnd cq cc wf cneg cicc cin wss wf1o f1of inss1
      c1 fss sylancl adantr ffvelrnd qcn simprrl cec cc0 wer vitalilem1 a1i wbr
      ciun vitalilem2 simp1d simprd sseldd simprrr jca nnncan1d syl2anc eqeltrd
      c2 qsubcl oveq12 brab2a sylanbrc erthi fveq2d wral eceq1d eqeq12d wne cqs
      c0 cvv ovex erex mp2 ecelqsi syl6eleqr adantl simpr cdm erdm ax-mp eleq2i
      ecdmn0 bitr3i id rspcv wb eceq1 sylc sylibr neeq1 eleq12d syl3c fvex elec
      imbi12d vex eqcomd ectocld ralrimiva wfn ralrn mpbird 3eqtr3d subcand wf1
      f1of1 f1fveq syl12anc mpbid alrimivv eleq1 eleq2d anbi12d alrimiv dfdisj2
      ex mo4 ) AHUDZUETZUAUDZUVIGUFZTZUGZHUHZUAUIHUEUVLUJAUVOUAAUVNUBUDZUETZUVK
      UVPGUFZTZUGZUGZHUBUKZULZUBUIHUIUVOAUWCHUBAUWAUWBAUWAUGZUVIKUFZUVPKUFZUMZU
      WBUWDUVKUWEUWFUWDUVKUWDUVKUNTZUVKUWEUOUPZJURZTZUWDUVKLUDZUWEUOUPZUWJTZLUN
      USZTUWHUWKUGUWDUVKUVLUWOAUVJUVMUVTUQUWDUVJUVLUWOUMAUVJUVMUVTUTZIUVIUWLIUD
      ZKUFZUOUPZUWJTZLUNUSZUWOUEGIHUKZUWTUWNLUNUXBUWSUWMUWJUXBUWRUWEUWLUOUWQUVI
      KVAVBVCVDRUWNLUNVEVFVGVHVIUWNUWKLUVKUNLUAUKZUWMUWIUWJUWLUVKUWEUOVJVCVKVLZ
      VMVNZUWDUWEVOTZUWEVPTUWDUEVOUVIKAUEVOKVQZUWAAUEVOWEVRZWEVSUPZVTZKVQZUXJVO
      WAUXGAUEUXJKWBZUXKQUEUXJKWCVHVOUXIWDUEUXJVOKWFWGWHZUWPWIZUWEWJVHZUWDUWFVO
      TZUWFVPTUWDUEVOUVPKUXMAUVNUVQUVSWKZWIZUWFWJVHZUWDUWIEWLZJUFZUVKUWFUOUPZEW
      LZJUFZUWIUYBUWDUXTUYCJUWDUWIUYBEWMWEVSUPZUYEEWNZUWDBCEMWOZWPUWDUWIUYETZUY
      BUYETZUGUWIUYBUOUPZVOTZUWIUYBEWQUWDUYHUYIUWDUWJUYEUWIAUWJUYEWAZUWAAUYLUYE
      HUEUVLWRZWAUYMUXHXHVSUPWAABCDEFGHIJKLMNOPQRSWSWTWHZUWDUWHUWKUXDXAZXBUWDUW
      JUYEUYBUYNUWDUWHUYBUWJTZUWDUVKUWLUWFUOUPZUWJTZLUNUSZTUWHUYPUGUWDUVKUVRUYS
      AUVNUVQUVSXCUWDUVQUVRUYSUMUXQIUVPUXAUYSUEGIUBUKZUWTUYRLUNUYTUWSUYQUWJUYTU
      WRUWFUWLUOUWQUVPKVAVBVCVDRUYRLUNVEVFVGVHVIUYRUYPLUVKUNUXCUYQUYBUWJUWLUVKU
      WFUOVJVCVKVLXAZXBXDUWDUYJUWFUWEUOUPZVOUWDUVKUWEUWFUXEUXOUXSXEUWDUXPUXFVUB
      VOTUXRUXNUWFUWEXIXFXGBUDZCUDZUOUPZVOTUYKBCUWIUYBUYEUYEEVUCUWIUMVUDUYBUMUG
      VUEUYJVOVUCUWIVUDUYBUOXJVCMXKXLXMXNUWDUWKDUDZEWLZJUFZVUFUMZDUWJXOZUYAUWIU
      MZUYOAVUJUWAAVUJUVKJUFZEWLZJUFZVULUMZUAFXOZAVUOUAFUCUDZEWLZJUFZEWLZJUFZVU
      SUMVUOAUCUVKUYEEFNVURUVKUMZVVAVUNVUSVULVVBVUTVUMJVVBVUSVULEVURUVKJVAZXPXN
      VVCXQAVUQUYETZUGZVUTVURJVVEVURVUTVVEVUQVUSEUYEUYFVVEUYGWPVVEVUSVURTZVUQVU
      SEWQVVEVURFTZVUFXTXRZVUFJUFZVUFTZULZDFXOZVURXTXRZVVFVVDVVGAVVDVURUYEEXSFU
      YEVUQEUYFUYEYATEYATUYGWMWEVSYBUYEEYAYCYDYENYFYGAVVLVVDPWHVVEVVDVVMAVVDYHV
      VDVUQEYIZTVVMVVNUYEVUQUYFVVNUYEUMUYGUYEEYJYKYLVUQEYMYNVLVVKVVMVVFULDVURFV
      UFVURUMZVVHVVMVVJVVFVUFVURXTUUAVVOVVIVUSVUFVURVUFVURJVAVVOYOUUBUUFYPUUCVU
      SVUQEVURJUUDUCUUGUUEVLXMUUHXNUUIUUJAJFUUKVUJVUPYQOVUIVUODUAFJVUFVULUMZVUH
      VUNVUFVULVVPVUGVUMJVUFVULEYRXNVVPYOXQUULVHUUMWHZVUIVUKDUWIUWJVUFUWIUMZVUH
      UYAVUFUWIVVRVUGUXTJVUFUWIEYRXNVVRYOXQYPYSUWDUYPVUJUYDUYBUMZVUAVVQVUIVVSDU
      YBUWJVUFUYBUMZVUHUYDVUFUYBVVTVUGUYCJVUFUYBEYRXNVVTYOXQYPYSUUNUUOUWDUEUXJK
      UUPZUVJUVQUWGUWBYQUWDUXLVWAAUXLUWAQWHUEUXJKUUQVHUWPUXQUEUXJUVIUVPKUURUUSU
      UTUVGUVAUVNUVTHUBUWBUVJUVQUVMUVSUVIUVPUEUVBUWBUVLUVRUVKUVIUVPGVAUVCUVDUVH
      YTUVEHUAUEUVLUVFYT $.

    $( Lemma for ~ vitali .  (Contributed by Mario Carneiro, 16-Jun-2014.) $)
    vitalilem4 $p |- ( ( ph /\ m e. NN ) -> ( vol* ` ( T ` m ) ) = 0 ) $=
      ( cr vk cv cn wcel wa cfv covol crn cmin co crab wceq fveq2 oveq2d eleq1d
      cc0 rabbidv reex rabex fvmpt adantl fveq2d wss c1 cicc ciun c2 vitalilem2
      cneg simp1d unitssre syl6ss adantr neg1rr 1re iccssre mp2an cq inss2 wf1o
      cin wf f1of syl ffvelrnda sseldi eqidd ovolshft eqtr4d clt wbr wn c3 cdiv
      cfl caddc cmul cxr 3re rexri a1i cn0 cle crp 3nn nnrp ax-mp ovolicc mp3an
      0re 0le1 1m0e1 eqtri eqeltri ovolsscl mp3an23 simpr elrpd rpdivcl sylancr
      rpred rpge0d flge0nn0 syl2anc cvol wral sylibr sylancl fmptd ovolcl mpbid
      ralrimiva cmpt cseq mblvol eqtrd adantlr eqid 2re wb nnred remulcld rexrd
      nn0p1nn cdm cpw cdif elpw2 anim1i eldif ex mt3d inss1 qssre sstri shftmbl
      fss iunmbl mblss 3syl flltp1 ltdivmul2d csup nnuz 1zzd eqeltrd serfre frn
      ressxr csn cxp mpteq2dva fconstmpt syl6eqr seqeq3d fveq1d recnd ser1const
      cc wfn ffn fnfvelrn eqeltrrd supxrub wdisj jca vitalilem3 voliun breqtrrd
      eqtr3d xrltletrd simp3d ovolss 2cn ax-1cn subnegi neg1lt0 2pos lttri df-3
      ltleii 3eqtr4i syl6breq xrlenlt pm2.65da wo ovolge0 0xr xrleloe ord mpd )
      AHUBZUCUDZUEZUXLGUFZUGUFZJUHZUGUFZUPUXNUXPLUBZUXLKUFZUIUJZUXQUDZLTUKZUGUF
      UXRUXNUXOUYCUGUXMUXOUYCULAIUXLUXSIUBZKUFZUIUJZUXQUDZLTUKZUYCUCGUYDUXLULZU
      YGUYBLTUYIUYFUYAUXQUYIUYEUXTUXSUIUYDUXLKUMUNUOUQRUYBLTURUSUTVAVBUXNLUXQUY
      CUXTAUXQTVCZUXMAUXQUPVDVEUJZTAUXQUYKVCZUYKHUCUXOVFZVCZUYMVDVIZVGVEUJZVCZA
      BCDEFGHIJKLMNOPQRSVHZVJZVKVLZVMUXNUYOVDVEUJZTUXTUYOTUDZVDTUDZVUATVCVNVOUY
      OVDVPVQUXNVRVUAWAZVUAUXTVRVUAVSAUCVUDUXLKAUCVUDKVTUCVUDKWBZQUCVUDKWCWDZWE
      WFWFUXNUYCWGWHWIZAUPUXRULZUXMAUPUXRWJWKZWLVUHAVUIWMUYMUGUFZWJWKZAVUIUEZWM
      WMUXRWNUJZWOUFZVDWPUJZUXRWQUJZVUJWMWRUDZVULWMWSWTZXAVULVUPVULVUOUXRVULVUO
      VULVUNXBUDZVUOUCUDZVULVUMTUDZUPVUMXCWKVUSVULVUMVULWMXDUDZUXRXDUDVUMXDUDWM
      UCUDVVBXEWMXFXGVULUXRAUXRTUDZVUIAUYLVVCUYSUYLUYKTVCUYKUGUFZTUDVVCVKVVDVDT
      VVDVDUPUIUJZVDUPTUDVUCUPVDXCWKVVDVVEULXJVOXKUPVDXHXIXLXMVOXNUXQUYKXOXPWDZ
      VMZAVUIXQXRZWMUXRXSXTZYAZVULVUMVVIYBVUMYCYDVUNUUDWDZUUAZVVGUUBUUCAVUJWRUD
      ZVUIAUYMYEUUEZUDZUYMTVCVVMAUXOVVNUDZHUCYFVVOAVVPHUCAUCVVNUXLGAIUCUYHVVNGA
      UYDUCUDZUEUXQVVNUDZUYETUDUYHVVNUDAVVRVVQAVVRUXQTUUFZVVNUUGUDZSAVVRWLZVVTA
      VWAUEUXQVVSUDZVWAUEVVTAVWBVWAAUYJVWBUYTUXQTURUUHYGUUIUXQVVSVVNUUJYGUUKUUL
      VMAUCTUYDKAVUEVUDTVCUCTKWBVUFVUDVRTVRVUAUUMUUNUUOUCVUDTKUUQYHWELUXQUYEUUP
      YDRYIWEZYLUXOHUURWDZUYMUUSUYMYJUUTVMZVULVUMVUOWJWKZWMVUPWJWKVULVVAVWFVVJV
      UMUVAWDVULWMVUOUXRWMTUDVULWSXAVVLVVHUVBYKVULVUPWPHUCUXOYEUFZYMZVDYNZUHZWR
      WJUVCZVUJXCVULVWJWRVCVUPVWJUDVUPVWKXCWKVULVWJTWRVULUCTVWIWBZVWJTVCVULUAVW
      HVDUCUVDVULUVEVULUCTUAUBVWHVULHUCVWGTVWHAUXMVWGTUDZVUIUXNVWGUXRTUXNVWGUXP
      UXRUXNVVPVWGUXPULVWCUXOYOWDVUGYPZAVVCUXMVVFVMUVFZYQVWHYRZYIWEUVGZUCTVWIUV
      HWDUVIVLVULVUOVWIUFZVUPVWJVULVWRVUOWPUCUXRUVJUVKZVDYNZUFZVUPVULVUOVWIVWTV
      ULVWHVWSWPVDVULVWHHUCUXRYMVWSVULHUCVWGUXRAUXMVWGUXRULVUIVWNYQUVLHUCUXRUVM
      UVNUVOUVPVULUXRUVSUDVUTVXAVUPULVULUXRVVGUVQVVKUXRVUOUVRYDYPVULVWIUCUVTZVU
      TVWRVWJUDVULVWLVXBVWQUCTVWIUWAWDVVKUCVUOVWIUWBYDUWCVWJVUPUWDYDVULUYMYEUFZ
      VUJVWKVULVVOVXCVUJULAVVOVUIVWDVMUYMYOWDVULVVPVWMUEZHUCYFZHUCUXOUWEZVXCVWK
      ULAVXEVUIAVXDHUCUXNVVPVWMVWCVWOUWFYLVMAVXFVUIABCDEFGHIJKLMNOPQRSUWGVMUXOV
      WIHVWHVWIYRVWPUWHYDUWJUWIUWKVULVUJWMXCWKZVUKWLZVULVUJUYPUGUFZWMXCVULUYQUY
      PTVCZVUJVXIXCWKAUYQVUIAUYLUYNUYQUYRUWLVMVUBVGTUDZVXJVNYSUYOVGVPVQUYMUYPUW
      MYHVGUYOUIUJZVGVDWPUJVXIWMVGVDUWNUWOUWPVUBVXKUYOVGXCWKVXIVXLULVNYSUYOVGVN
      YSUYOUPWJWKUPVGWJWKUYOVGWJWKUWQUWRUYOUPVGVNXJYSUWSVQUXAUYOVGXHXIUWTUXBUXC
      VULVVMVUQVXGVXHYTVWEVURVUJWMUXDYHYKUXEAVUIVUHAUPUXRXCWKZVUIVUHUXFZAUYJVXM
      UYTUXQUXGWDAUPWRUDUXRWRUDZVXMVXNYTUXHAUYJVXOUYTUXQYJWDUPUXRUXIXTYKUXJUXKV
      MWI $.

    $( Lemma for ~ vitali .  (Contributed by Mario Carneiro, 16-Jun-2014.) $)
    vitalilem5 $p |- -. ph $=
      ( cc0 cn vm c1 cicc co covol cfv cle wbr clt wn 0lt1 cmin cr wcel 0re 1re
      wceq 0le1 ovolicc mp3an 1m0e1 eqtri breqtrri eqeltri ltnlei mpbi ciun wss
      cv crn cneg c2 vitalilem2 simp2d cvol cdm wral crab wa cpw cdif wf wfn c0
      wne wi cqs wer vitalilem1 erdm ax-mp syl6eleq elqsn0 sylancr a1i syl5eqss
      simpr qsss sselda elpwid sseld embantd ralimdva mpd sylanbrc frn unitssre
      ffnfv syl syl6ss reex elpw2 sylibr anim1i eldif mt3d adantr cin wf1o f1of
      ex inss1 qssre sstri sylancl ffvelrnda syl2anc mblss caddc cmpt cseq eqid
      cq csu cli cxp nnuz syl6eq breqtrd cxr fss shftmbl fmptd ralrimiva iunmbl
      ovolss vitalilem4 cuz csn mpteq2dva fconstmpt xpeq1i eqtr3i seqeq3d cz 1z
      syl6eqel serclim0 syl6eqbr seqex c0ex breldm ovoliun2 sumeq2dv wo eqimssi
      cfn orci sumz ovolge0 wb ovolcl 0xr xrletri3 mpbir2and mto ) ASUBUCUDZUEU
      FZSUGUHZSUVRUIUHUVSUJSUBUVRUIUKUVRUBSULUDZUBSUMUNUBUMUNSUBUGUHUVRUVTUQUOU
      PURSUBUSUTVAVBZVCSUVRUOUVRUBUMUWAUPVDVEVFAUVRUATUAVIZGUFZVGZUEUFZSUGAUVQU
      WDVHZUWDUMVHZUVRUWEUGUHAIVJZUVQVHZUWFUWDUBVKZVLUCUDVHABCDEFGUAHIJKLMNOPQR
      VMVNAUWDVOVPZUNZUWGAUWCUWKUNZUATVQUWLAUWMUATATUWKUWBGAHTKVIHVIZJUFZULUDUW
      HUNKUMVRZUWKGAUWNTUNZVSUWHUWKUNZUWOUMUNUWPUWKUNAUWRUWQAUWRUWHUMVTZUWKWAUN
      ZRAUWRUJZUWTAUXAVSUWHUWSUNZUXAVSUWTAUXBUXAAUWHUMVHUXBAUWHUVQUMAFUVQIWBZUW
      IAIFWCDVIZIUFZUVQUNZDFVQZUXCNAUXDWDWEZUXEUXDUNZWFZDFVQUXGOAUXJUXFDFAUXDFU
      NZVSZUXHUXIUXFUXLEVPUVQUQZUXDUVQEWGZUNUXHUVQEWHZUXMBCELWIZUVQEWJWKUXLUXDF
      UXNAUXKWQMWLUVQUXDEWMWNUXLUXDUVQUXEUXLUXDUVQAFUVQVTZUXDAFUXNUXQMAUVQEUXOA
      UXPWOWRWPWSWTXAXBXCXDDFUVQIXHXEFUVQIXFXIXGXJUWHUMXKXLXMXNUWHUWSUWKXOXMYAX
      PXQATUMUWNJATYMUWJUBUCUDZXRZJWBZUXSUMVHTUMJWBATUXSJXSUXTPTUXSJXTXIUXSYMUM
      YMUXRYBYCYDTUXSUMJUUAYEYFKUWHUWOUUBYGQUUCYFZUUDUWCUAUUEXIUWDYHXIZUVQUWDUU
      FYGAUWESUQZUWESUGUHZSUWEUGUHZAUWETUWCUEUFZUAYNZSUGAUWCYIUATUYFYJZUBYKZUAU
      YHUYIYLUYHYLAUWBTUNVSZUWMUWCUMVHUYAUWCYHXIUYJUYFSUMABCDEFGUAHIJKLMNOPQRUU
      GZUOUUQAUYISYOUHUYIYOVPUNAUYIYIUBUUHUFZSUUIZYPZUBYKZSYOAUYHUYNYIUBAUYHUAT
      SYJZUYNAUATUYFSUYKUUJTUYMYPUYPUYNUATSUUKTUYLUYMYQUULUUMYRUUNUBUUOUNUYOSYO
      UHUUPUBUURWKUUSUYISYOYIUYHUBUUTUVAUVBXIUVCAUYGTSUAYNZSATUYFSUAUYKUVDTUYLV
      HZTUVGUNZUVEUYQSUQUYRUYSTUYLYQUVFUVHTUAUBUVIWKYRYSAUWGUYEUYBUWDUVJXIAUWEY
      TUNZSYTUNUYCUYDUYEVSUVKAUWGUYTUYBUWDUVLXIUVMUWESUVNYEUVOYSUVP $.
  $}

  ${
    $d a b c f g m n s t w x y z .< $.
    $( If the reals can be well-ordered, then there are non-measurable sets.
       The proof uses "Vitali sets", named for Giuseppe Vitali (1905).
       (Contributed by Mario Carneiro, 16-Jun-2014.) $)
    vitali $p |- ( .< We RR -> dom vol C. ~P RR ) $=
      ( vx vy vw vs cr cv cfv wcel cvv wa cn cq c1 co wbr cdiv cc0 wss cmin wwe
      vz vf vg vc va vb vm vt vn c0 wne wi cpw wral cvol cdm wpss cuni wex reex
      pwex cxp cin weinxp wceq unipw weeq2 ax-mp bitr4i inex2 weeq1 spcev sylbi
      wb xpex dfac8c mpsyl cneg cicc wf1o cen cdom qex inex1 nnrecq cle nnrecre
      neg1rr a1i 0re neg1lt0 ltleii nnrp rpreccld rpge0d letrd nnge1 nnre nngt0
      clt 1re 0lt1 lerec mpanl12 syl2anc mpbid 1div1e1 syl6breq syl3anbrc elind
      elicc2i weq oveq2 nncn nnne0 recrecd eqeqan12d syl5ib impbid1 dom2 ssdomg
      inss1 mp2 qnnen domentr mp2an sbth bren mpbi cmpt wn crab eleq1 eqid fvex
      eleq1d fveq2 wtru sylibr copab cqs crn cdif bi2anan9 anbi12d cbvopabv wfn
      oveq12 fnmpti neeq1 eleq12d imbi12d cbvralv vitalilem1 qsss trud unitssre
      wer sspwb sstri ssralv fvmpt imbi2d ralbiia ad2antlr simprl oveq1 cbvrabv
      oveq2d rabbidv syl5eq cbvmptv vitalilem5 pm2.21i expr pm2.18d eldif mblss
      id simprr selpw ssriv ssnelpss syl ex exlimdv mpi exlimddv ) FAUAZUBGZUKU
      LZUWKUCGZHZUWKIZUMZUBFUNZUOZUPUQZUWQURZUCUWQJIUWJUWQUSZBGZUAZBUTZUWRUCUTF
      VAVBUWJUXAAFFVCZVDZUAZUXDUWJFUXFUAZUXGFAVEUXAFVFUXGUXHVOFVGUXAFUXFVHVIVJU
      XCUXGBUXFUXEAFFVAVAVPVKUXAUXBUXFVLVMVNUBUWQJUCBVQVRUWJUWRKZLMNVSZNVTOZVDZ
      UDGZWAZUDUTZUWTLUXLWBPZUXOLUXLWCPZUXLLWCPZUXPUXLJIUXQMUXKWDWEBCLUXLNUXBQO
      ZNCGZQOZJUXBLIZMUXKUXSUXBWFUYBUXSFIUXJUXSWGPUXSNWGPUXSUXKIUXBWHZUYBUXJRUX
      SUXJFIUYBWIWJRFIUYBWKWJUYCUXJRWGPUYBUXJRWIWKWLWMWJUYBUXSUYBUXBUXBWNWOWPWQ
      UYBUXSNNQOZNWGUYBNUXBWGPZUXSUYDWGPZUXBWRUYBUXBFIZRUXBXAPZUYEUYFVOZUXBWSUX
      BWTNFIRNXAPUYGUYHKUYIXBXCNUXBXDXEXFXGXHXIUXJNUXSWIXBXLXJXKUYBUXTLIZKZUXSU
      YAVFZBCXMZUYLNUXSQOZNUYAQOZVFUYKUYMUXSUYANQXNUYBUYJUYNUXBUYOUXTUYBUXBUXBX
      OUXBXPXQUYJUXTUXTXOUXTXPXQXRXSUXBUXTNQXNXTYAVIUXLMWCPZMLWBPUXRMJIUXLMSUYP
      WDMUXKYCUXLMJYBYDYEUXLMLYFYGLUXLYHYGLUXLUDYIYJUXIUXNUWTUDUXIUXNUWTUXIUXNK
      ZUERNVTOZUFGZUYRIZUGGZUYRIZKZUYSVUATOZMIZKZUFUGUUAZUUBZUEGZUWMHZYKZUUCZUW
      QUWSUUDIZUWTUYQVUMUXIUXNVUMYLZVUMUXIUXNVUNKZKZVUMVUPBCDVUGVUHUHLUIGZUHGZU
      XMHZTOZVULIZUIFYMZYKUJVUKUXMEVUFUXBUYRIZUXTUYRIZKZUXBUXTTOZMIZKUFUGBCUFBX
      MZUGCXMZKZVUCVVEVUEVVGVVHUYTVVCVVIVUBVVDUYSUXBUYRYNVUAUXTUYRYNUUEVVJVUDVV
      FMUYSUXBVUAUXTTUUIYQUUFUUGZVUHYOVUKVUHUUHVUPUEVUHVUJVUKVUIUWMYPVUKYOZUUJW
      JUWRDGZUKULZVVMVUKHZVVMIZUMZDVUHUOZUWJVUOUWRVVNVVMUWMHZVVMIZUMZDVUHUOZVVR
      UWRVWADUWQUOZVWBUWPVWAUBDUWQUBDXMZUWLVVNUWOVVTUWKVVMUKUUKVWDUWNVVSUWKVVMU
      WKVVMUWMYRVWDUVTUULUUMUUNVUHUWQSVWCVWBUMVUHUYRUNZUWQVUHVWESYSUYRVUGUYRVUG
      UUSYSBCVUGVVKUUOWJUUPUUQUYRFSVWEUWQSUURUYRFUUTYJUVAVWADVUHUWQUVBVIVNVVQVW
      ADVUHVVMVUHIZVVPVVTVVNVWFVVOVVSVVMUEVVMVUJVVSVUHVUKVUIVVMUWMYRVVLVVMUWMYP
      UVCYQUVDUVEYTUVFUXIUXNVUNUVGUHUJLVVBEGZUJGZUXMHZTOZVULIZEFYMZUHUJXMZVVBVW
      GVUSTOZVULIZEFYMVWLVVAVWOUIEFUIEXMVUTVWNVULVUQVWGVUSTUVHYQUVIVWMVWOVWKEFV
      WMVWNVWJVULVWMVUSVWIVWGTVURVWHUXMYRUVJYQUVKUVLUVMUXIUXNVUNUWAUVNUVOUVPUVQ
      VUMVULUWQIVULUWSIYLKZUWTVULUWQUWSUVRUWSUWQSVWPUWTUMBUWSUWQUXBUWSIUXBFSUXB
      UWQIUXBUVSBFUWBYTUWCUWSUWQVULUWDVIVNUWEUWFUWGUWHUWI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Lebesgue integration
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Lesbesgue integral
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Introduce new constant symbols. $)
  $c MblFn $. $( Measurable function $)
  $c L^1 $. $( Integrable function $)
  $c S.1 $. $( Lebesgue integral, simple functions $)
  $c S.2 $. $( Lebesgue integral, nonnegative functions $)
  $c S. $. $( Lebesgue integral $)
  $c S_ $. $( Directed integral $)
  $c _d $. $( differential 'd' for integral $)

  $( Extend class notation with the class of measurable functions. $)
  cmbf $a class MblFn $.

  $( Extend class notation with the Lebesgue integral for simple functions. $)
  citg1 $a class S.1 $.

  $( Extend class notation with the Lebesgue integral for nonnegative
     functions. $)
  citg2 $a class S.2 $.

  $( Extend class notation with the class of integrable functions. $)
  cibl $a class L^1 $.

  $( Extend class notation with the general Lebesgue integral. $)
  citg $a class S. A B _d x $.

  ${
    $d k y A $.  $d k y B $.  $d f g k x y $.
    $( Define the class of measurable functions on the reals.  A real function
       is measurable if the preimage of every open interval is a measurable set
       (see ~ ismbl ) and a complex function is measurable if the real and
       imaginary parts of the function is measurable.  (Contributed by Mario
       Carneiro, 17-Jun-2014.) $)
    df-mbf $a |- MblFn = { f e. ( CC ^pm RR ) | A. x e. ran (,)
                           ( ( `' ( Re o. f ) " x ) e. dom vol /\
                             ( `' ( Im o. f ) " x ) e. dom vol ) } $.

    $( Define the Lebesgue integral for simple functions.  A simple function is
       a finite linear combination of indicator functions for finitely
       measurable sets, whose assigned value is the sum of the measures of the
       sets times their respective weights.  (Contributed by Mario Carneiro,
       18-Jun-2014.) $)
    df-itg1 $a |- S.1 = ( f e. { g e. MblFn | ( g : RR --> RR /\
        ran g e. Fin /\ ( vol ` ( `' g " ( RR \ { 0 } ) ) ) e. RR ) } |->
        sum_ x e. ( ran f \ { 0 } ) ( x x. ( vol ` ( `' f " { x } ) ) ) ) $.

    $( Define the Lebesgue integral for nonnegative functions.  A nonnegative
       function's integral is the supremum of the integrals of all simple
       functions that are less than the input function.  Note that this may be
       ` +oo ` for functions that take the value ` +oo ` on a set of positive
       measure or functions that are bounded below by a positive number on a
       set of infinite measure.  (Contributed by Mario Carneiro,
       28-Jun-2014.) $)
    df-itg2 $a |- S.2 = ( f e. ( ( 0 [,] +oo ) ^m RR ) |-> sup ( { x |
        E. g e. dom S.1 ( g oR <_ f /\ x = ( S.1 ` g ) ) } , RR* , < ) ) $.

    $( Define the class of integrable functions on the reals.  A function is
       integrable if it is measurable and the integrals of the pieces of the
       function are all finite.  (Contributed by Mario Carneiro,
       28-Jun-2014.) $)
    df-ibl $a |- L^1 = { f e. MblFn | A. k e. ( 0 ... 3 )
         ( S.2 ` ( x e. RR |-> [_ ( Re ` ( ( f ` x ) / ( _i ^ k ) ) ) / y ]_
                 if ( ( x e. dom f /\ 0 <_ y ) , y , 0 ) ) ) e. RR } $.

    $( Define the full Lebesgue integral, for complex-valued functions to
       ` RR ` .  The syntax is designed to be suggestive of the standard
       notation for integrals.  For example, our notation for the integral of
       ` x ^ 2 ` from ` 0 ` to ` 1 ` is
       ` S. ( 0 [,] 1 ) ( x ^ 2 ) _d x = ( 1 / 3 ) ` .  The only real function
       of this definition is to break the integral up into nonnegative real
       parts and send it off to ~ df-itg2 for further processing.  Note that
       this definition cannot handle integrals which evaluate to infinity,
       because addition and multiplication are not currently defined on
       extended reals.  (You can use ~ df-itg2 directly for this use-case.)
       (Contributed by Mario Carneiro, 28-Jun-2014.) $)
    df-itg $a |- S. A B _d x = sum_ k e. ( 0 ... 3 ) ( ( _i ^ k ) x.
                ( S.2 ` ( x e. RR |-> [_ ( Re ` ( B / ( _i ^ k ) ) ) / y ]_
                  if ( ( x e. A /\ 0 <_ y ) , y , 0 ) ) ) ) $.
  $}

  ${
    $d f x y F $.  $d x y z A $.  $d x y B $.  $d x C $.
    $( The predicate " ` F ` is a measurable function".  This is more naturally
       stated for functions on the reals, see ~ ismbf and ~ ismbfcn for the
       decomposition of the real and imaginary parts.  (Contributed by Mario
       Carneiro, 17-Jun-2014.) $)
    ismbf1 $p |- ( F e. MblFn <-> ( F e. ( CC ^pm RR ) /\ A. x e. ran (,)
                   ( ( `' ( Re o. F ) " x ) e. dom vol /\
                     ( `' ( Im o. F ) " x ) e. dom vol ) ) ) $=
      ( vf cre cv ccom ccnv cima cvol cdm wcel cim cioo crn wral cnveqd imaeq1d
      wa coeq2 eleq1d cc cr cpm co cmbf wceq anbi12d ralbidv df-mbf elrab2 ) DC
      EZFZGZAEZHZIJZKZLUKFZGZUNHZUPKZRZAMNZODBFZGZUNHZUPKZLBFZGZUNHZUPKZRZAVCOC
      BUAUBUCUDUEUKBUFZVBVLAVCVMUQVGVAVKVMUOVFUPVMUMVEUNVMULVDUKBDSPQTVMUTVJUPV
      MUSVIUNVMURVHUKBLSPQTUGUHACUIUJ $.

    $( A measurable function is a function into the complex numbers.
       (Contributed by Mario Carneiro, 17-Jun-2014.) $)
    mbff $p |- ( F e. MblFn -> F : dom F --> CC ) $=
      ( vx cmbf wcel cc cr cpm co cdm wf cre ccom ccnv cv cima cvol cim wa cioo
      simplbi crn wral ismbf1 wss cnex reex elpm2 syl ) ACDZAEFGHDZAIZEAJZUIUJK
      ALMBNZOPIZDQALMUMOUNDRBSUAUBBAUCTUJULUKFUDEFAUEUFUGTUH $.

    $( The domain of a measurable function is measurable.  (Contributed by
       Mario Carneiro, 17-Jun-2014.) $)
    mbfdm $p |- ( F e. MblFn -> dom F e. dom vol ) $=
      ( vx cmbf wcel cre ccom ccnv cr cima cdm wf wceq cc syl cioo wral cmnf co
      cpnf cxr cvol ref mbff fco sylancr fimacnv crn cv ioomax cxp wfn cpw ioof
      ffn ax-mp mnfxr pnfxr fnovrn mp3an eqeltrri cim cpm ismbf1 simprbi ralimi
      wa simpl imaeq2 eleq1d rspcv mpsyl eqeltrrd ) ACDZEAFZGZHIZAJZUAJZVMVQHVN
      KZVPVQLVMMHEKVQMAKVSUBAUCVQMHEAUDUEVQHVNUFNHOUGZDVMVOBUHZIZVRDZBVTPZVPVRD
      ZQSORZHVTUIOTTUJZUKZQTDSTDWFVTDWGHULZOKWHUMWGWIOUNUOUPUQTTQSOURUSUTVMWCVA
      AFGWAIVRDZVFZBVTPZWDVMAMHVBRDWLBAVCVDWKWCBVTWCWJVGVENWCWEBHVTWAHLWBVPVRWA
      HVOVHVIVJVKVL $.

    $( Lemma for ~ mbfconst .  (Contributed by Mario Carneiro, 17-Jun-2014.) $)
    mbfconstlem $p |- ( ( A e. dom vol /\ C e. RR ) ->
                        ( `' ( A X. { C } ) " B ) e. dom vol ) $=
      ( cvol cdm wcel cr wa csn cxp ccnv cima wss cnvimass a1i wf wceq ad2antlr
      c0 cin crn cnvimarndm fconst6g adantl imass2 3syl syl5eqssr eqssd fconstg
      frn fdm syl eqtrd simpll eqeltrd wn incom simpr disjsn sylibr fimacnvdisj
      syl5eq syl2anc 0mbl syl6eqel pm2.61dan ) ADEZFZCGFZHZCBFZACIZJZKZBLZVGFVJ
      VKHZVOAVGVPVOVMEZAVPVOVQVOVQMVPVMBNOVPVQVNVMUAZLZVOVMUBVPABVMPZVRBMVSVOMV
      KVTVJACBUCUDABVMUJVRBVNUEUFUGUHVPAVLVMPZVQAQVIWAVHVKACGUIZRAVLVMUKULUMVHV
      IVKUNUOVJVKUPZHZVOSVGWDWAVLBTZSQVOSQVIWAVHWCWBRWDWEBVLTZSVLBUQWDWCWFSQVJW
      CURBCUSUTVBAVLBVMVAVCVDVEVF $.

    $( The predicate " ` F ` is a measurable function".  A function is
       measurable iff the preimages of all open intervals are measurable sets
       in the sense of ~ ismbl .  (Contributed by Mario Carneiro,
       17-Jun-2014.) $)
    ismbf $p |- ( F : A --> RR -> ( F e. MblFn <->
                  A. x e. ran (,) ( `' F " x ) e. dom vol ) ) $=
      ( vy cr wf cdm wcel ccnv cima eleq1d wa cre cim cfv cmpt feqmptd cc0 cvv
      cc cvol cmbf cv cioo crn wral mbfdm fdm syl5ib wi cmnf co ioomax ioorebas
      cpnf eqeltrri wceq imaeq2 rspcv ax-mp fimacnv wb cpm ccom ffvelrn adantlr
      rered mpteq2dva recnd simpl ref a1i fveq2 fmptco 3eqtr4rd imaeq1d csn cxp
      cnveqd imf reim0d eqtrd fconstmpt syl6eqr 0re mbfconstlem sylancl eqeltrd
      simpr biantrud bitrd ralbidv wss ax-resscn fss mpan2 mblss elpm2r mpanl12
      cnex reex syl2an biantrurd ismbf1 syl6rbbr ex pm5.21ndd ) BECFZBUAGZHZCUB
      HZCIZAUCZJZXIHZAUDUEZUFZXKCGZXIHXHXJCUGXHXRBXIBECUHKUIXQXLEJZXIHZXHXJEXPH
      XQXTUJUKUOUDULEXPUMUKUOUNUPXOXTAEXPXMEUQXNXSXIXMEXLURKUSUTXHXSBXIBECVAKUI
      XHXJXKXQVBXHXJLZXQCTEVCULHZMCVDZIZXMJZXIHZNCVDZIZXMJZXIHZLZAXPUFZLZXKYAXQ
      YLYMYAXOYKAXPYAXOYFYKYAXNYEXIYAXLYDXMYACYCYAABXMCOZMOZPABYNPYCCYAABYOYNYA
      XMBHZLZYNXHYPYNEHXJBEXMCVEVFZVGVHYAADBTYNDUCZMOYOCMYQYNYRVIZYAABECXHXJVJQ
      ZYADTEMTEMFYAVKVLQYSYNMVMVNUUAVOVSVPKYAYJYFYAYIBRVQVRZIZXMJZXIYAYHUUCXMYA
      YGUUBYAYGABRPZUUBYAYGABYNNOZPUUEYAADBTYNYSNOUUFCNYTUUAYADTENTENFYAVTVLQYS
      YNNVMVNYAABUUFRYQYNYRWAVHWBABRWCWDVSVPYAXJREHUUDXIHXHXJWIWEBXMRWFWGWHWJWK
      WLYAYBYLXHBTCFZBEWMZYBXJXHETWMUUGWNBETCWOWPBWQTSHESHUUGUUHLYBWTXATEBCSSWR
      WSXBXCWKACXDXEXFXG $.

    $( A complex function is measurable iff the real and imaginary components
       of the function are measurable.  (Contributed by Mario Carneiro,
       17-Jun-2014.) $)
    ismbfcn $p |- ( F : A --> CC -> ( F e. MblFn <->
                    ( ( Re o. F ) e. MblFn /\ ( Im o. F ) e. MblFn ) ) ) $=
      ( vx cc wf cdm wcel cmbf cre ccom cim wa mbfdm fdm adantr cr syl wral cvv
      wb cvol eleq1d syl5ib wceq ref fco mpan cpm co ccnv cv cima crn ismbf imf
      cioo anbi12d r19.26 syl6bbr wss cnex reex elpm2r mpanl12 sylan2 biantrurd
      mblss bitrd ismbf1 syl6rbbr ex pm5.21ndd ) ADBEZAUAFZGZBHGZIBJZHGZKBJZHGZ
      LZVPBFZVNGVMVOBMVMWBAVNADBNUBUCWAVQFZVNGZVMVOVRWDVTVQMOVMWCAVNVMAPVQEZWCA
      UDDPIEVMWEUEADPIBUFUGZAPVQNQUBUCVMVOVPWATVMVOLZWABDPUHUIGZVQUJCUKZULVNGZV
      SUJWIULVNGZLCUPUMZRZLZVPWGWAWMWNWGWAWJCWLRZWKCWLRZLWMWGVRWOVTWPWGWEVRWOTV
      MWEVOWFOCAVQUNQWGAPVSEZVTWPTVMWQVODPKEVMWQUOADPKBUFUGOCAVSUNQUQWJWKCWLURU
      SWGWHWMVOVMAPUTZWHAVGDSGPSGVMWRLWHVAVBDPABSSVCVDVEVFVHCBVIVJVKVL $.

    $( Definitional property of a measurable function: the preimage of an open
       right-unbounded interval is measurable.  (Contributed by Mario Carneiro,
       17-Jun-2014.) $)
    mbfima $p |- ( ( F e. MblFn /\ F : A --> RR ) ->
                   ( `' F " ( B (,) C ) ) e. dom vol ) $=
      ( vx cmbf wcel cr wf wa cxr ccnv cioo co cima cvol cdm cv crn c0 wral cxp
      ismbf biimpac wfn cpw ioof ax-mp fnovrn mp3an1 wceq imaeq2 eleq1d rspccva
      ffn syl2an wn ndmioo imaeq2d ima0 syl6eq 0mbl syl6eqel adantl pm2.61dan )
      DFGZAHDIZJZBKGZCKGZJZDLZBCMNZOZPQZGZVHVLERZOZVOGZEMSZUAZVMVTGZVPVKVGVFWAE
      ADUCUDMKKUBZUEZVIVJWBWCHUFZMIWDUGWCWEMUOUHKKBCMUIUJVSVPEVMVTVQVMUKVRVNVOV
      QVMVLULUMUNUPVKUQZVPVHWFVNTVOWFVNVLTOTWFVMTVLBCURUSVLUTVAVBVCVDVE $.

    $( The preimage of any closed interval under a measurable function is
       measurable.  (Contributed by Mario Carneiro, 18-Jun-2014.) $)
    mbfimaicc $p |- ( ( ( F e. MblFn /\ F : A --> RR ) /\
                        ( B e. RR /\ C e. RR ) ) ->
                      ( `' F " ( B [,] C ) ) e. dom vol ) $=
      ( wcel cr wa ccnv cima cmnf cioo cpnf cun cdif cdm wceq adantl wfun syl
      co cmbf cicc cvol wss iccssre dfss4 sylib difreicc difeq2d eqtr3d imaeq2d
      wf funcnvcnv ad2antlr imadif eqtrd fimacnv mbfdm fdm eleq1d biimpac sylan
      ffun eqeltrd imaundi mbfima unmbl syl2anc syl5eqel difmbl adantr ) DUAEZA
      FDULZGZBFECFEGZGZDHZBCUBTZIZVQFIZVQJBKTZCLKTZMZIZNZUCOZVPVSVQFWCNZIZWEVPV
      RWGVQVPFFVRNZNZVRWGVPVRFUDZWJVRPVOWKVNBCUEQVRFUFUGVPWIWCFVOWIWCPVNBCUHQUI
      UJUKVPVQHRZWHWEPVMWLVLVOVMDRWLAFDVCDUMSUNFWCVQUOSUPVNWEWFEZVOVNVTWFEWDWFE
      WMVNVTAWFVMVTAPVLAFDUQQVLDOZWFEZVMAWFEZDURVMWOWPVMWNAWFAFDUSUTVAVBVDVNWDV
      QWAIZVQWBIZMZWFVQWAWBVEVNWQWFEWRWFEWSWFEAJBDVFACLDVFWQWRVGVHVIVTWDVJVHVKV
      D $.

    $( The preimage of a point under a measurable function is measurable.
       (Contributed by Mario Carneiro, 18-Jun-2014.) $)
    mbfimasn $p |- ( ( F e. MblFn /\ F : A --> RR /\ B e. RR ) ->
                     ( `' F " { B } ) e. dom vol ) $=
      ( cmbf wcel cr wf w3a ccnv cicc co cima csn cvol cdm cxr wceq simp3 iccid
      rexr 3syl imaeq2d wa mbfimaicc anabsan2 3impa eqeltrrd ) CDEZAFCGZBFEZHZC
      IZBBJKZLZULBMZLNOZUKUMUOULUKUJBPEUMUOQUHUIUJRBTBSUAUBUHUIUJUNUPEZUHUIUCUJ
      UQABBCUDUEUFUG $.

    $( A constant function is measurable.  (Contributed by Mario Carneiro,
       17-Jun-2014.) $)
    mbfconst $p |- ( ( A e. dom vol /\ B e. CC ) ->
                     ( A X. { B } ) e. MblFn ) $=
      ( vy vx wcel cc wa csn cxp cr cre ccnv cima cim wf fconstmpt cvv cfv cmpt
      a1i cvol cdm cpm co ccom cioo crn wral cmbf wss simplr fmptd mblss adantr
      cv cnex reex elpm2r mpanl12 syl2anc wceq ref feqmptd fveq2 fmptco syl6eqr
      cnveqd imaeq1d recl mbfconstlem sylan2 eqeltrd imf jca ralrimivw sylanbrc
      imcl ismbf1 ) AUAUBZEZBFEZGZABHIZFJUCUDEZKWCUEZLZCUOZMZVSEZNWCUEZLZWGMZVS
      EZGZCUFUGZUHWCUIEWBAFWCOZAJUJZWDWBDABFWCVTWADUOAEUKZDABPZULVTWQWAAUMUNFQE
      JQEWPWQGWDUPUQFJAWCQQURUSUTWBWNCWOWBWIWMWBWHABKRZHIZLZWGMZVSWBWFXBWGWBWEX
      AWBWEDAWTSXAWBDCAFBWGKRWTWCKWRWCDABSVAWBWSTZWBCFJKFJKOWBVBTVCWGBKVDVEDAWT
      PVFVGVHWAVTWTJEXCVSEBVIAWGWTVJVKVLWBWLABNRZHIZLZWGMZVSWBWKXGWGWBWJXFWBWJD
      AXESXFWBDCAFBWGNRXEWCNWRXDWBCFJNFJNOWBVMTVCWGBNVDVEDAXEPVFVGVHWAVTXEJEXHV
      SEBVQAWGXEVJVKVLVNVOCWCVRVP $.

    $( The identity function is measurable.  (Contributed by Mario Carneiro,
       17-Jun-2014.) $)
    mbfid $p |- ( A e. dom vol -> ( _I |` A ) e. MblFn ) $=
      ( vx vy vz cvol wcel cid ccnv cv cima cioo wa cin eqtri cxr wrex cr wf wb
      id cdm cres cmbf crn wral cnvresima cnvi imaeq1i imai ineq1i wceq cxp cpw
      co wfn ioof ffn ovelrn mp2b ioombl syl6eqel rexlimivv sylbi inmbl syl2anr
      wi a1i syl5eqel ralrimiva wss wf1o f1oi ax-mp mblss fss sylancr ismbf syl
      f1of mpbird ) AEUAZFZGAUBZUCFZWCHBIZJZWAFZBKUDZUEZWBWGBWHWBWEWHFZLWFWEAMZ
      WAWFGHZWEJZAMWKAWEGUFWMWEAWMGWEJWEWLGWEUGUHWEUINUJNWJWEWAFZWBWKWAFWBWJWEC
      IZDIZKUNZUKZDOPCOPZWNOOULZQUMZKRKWTUOWJWSSUPWTXAKUQCDOOWEKURUSWRWNCDOOWRW
      NVFWOOFWPOFLWRWEWQWAWRTWOWPUTVAVGVBVCWBTWEAVDVEVHVIWBAQWCRZWDWISWBAAWCRZA
      QVJXBAAWCVKXCAVLAAWCVSVMAVNAAQWCVOVPBAWCVQVRVT $.
  $}

  ${
    $d x A $.  $d x ph $.
    mbfmptcl.1 $e |- ( ph -> ( x e. A |-> B ) e. MblFn ) $.
    mbfmptcl.2 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    $( Lemma for the ` MblFn ` predicate applied to a mapping operation.
       (Contributed by Mario Carneiro, 11-Aug-2014.) $)
    mbfmptcl $p |- ( ( ph /\ x e. A ) -> B e. CC ) $=
      ( cc wcel cmpt wf wral cdm cmbf mbff syl wceq ralrimiva dmmptg feq2d eqid
      mpbid fmpt sylibr r19.21bi ) ADHIZBCACHBCDJZKZUFBCLAUGMZHUGKZUHAUGNIUJFUG
      OPAUICHUGADEIZBCLUICQAUKBCGRBCDESPTUBBCHDUGUGUAUCUDUE $.

    $( The domain of a measurable function is measurable.  (Contributed by
       Mario Carneiro, 31-Aug-2014.) $)
    mbfdm2 $p |- ( ph -> A e. dom vol ) $=
      ( cmpt cdm cvol wcel wral wceq ralrimiva dmmptg syl cmbf mbfdm eqeltrrd )
      ABCDHZIZCJIZADEKZBCLUACMAUCBCGNBCDEOPATQKUAUBKFTRPS $.
  $}

  ${
    $d x A $.  $d y B $.  $d x y ph $.
    ismbfcn2.1 $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
    $( A complex function is measurable iff the real and imaginary components
       of the function are measurable.  (Contributed by Mario Carneiro,
       13-Aug-2014.) $)
    ismbfcn2 $p |- ( ph -> ( ( x e. A |-> B ) e. MblFn <->
      ( ( x e. A |-> ( Re ` B ) ) e. MblFn /\
        ( x e. A |-> ( Im ` B ) ) e. MblFn ) ) ) $=
      ( vy cmpt cmbf wcel cre ccom cim wa cfv cc wf cr a1i feqmptd fveq2 wb syl
      eqid fmptd ismbfcn cv eqidd ref fmptco eleq1d imf anbi12d bitrd ) ABCDGZH
      IZJUNKZHIZLUNKZHIZMZBCDJNZGZHIZBCDLNZGZHIZMACOUNPUOUTUAABCDOUNEUNUCUDCUNU
      EUBAUQVCUSVFAUPVBHABFCODFUFZJNVAUNJEAUNUGZAFOQJOQJPAUHRSVGDJTUIUJAURVEHAB
      FCODVGLNVDUNLEVHAFOQLOQLPAUKRSVGDLTUIUJULUM $.
  $}

  ${
    $d x y z F $.  $d x y z ph $.  $d z A $.
    ismbfd.1 $e |- ( ph -> F : A --> RR ) $.
    ismbfd.2 $e |- ( ( ph /\ x e. RR* ) ->
                     ( `' F " ( x (,) +oo ) ) e. dom vol ) $.
    ismbfd.3 $e |- ( ( ph /\ x e. RR* ) ->
                     ( `' F " ( -oo (,) x ) ) e. dom vol ) $.
    $( Deduction to prove measurability of a real function.  The third
       hypothesis is not necessary, but the proof of this requires countable
       choice, so we derive this separately as ~ ismbf3d .  (Contributed by
       Mario Carneiro, 18-Jun-2014.) $)
    ismbfd $p |- ( ph -> F e. MblFn ) $=
      ( vz vy wcel cima cioo co wceq cxr cpnf cmnf cle wbr syl2anc cmbf ccnv cv
      cvol cdm crn wral wrex cxp cr cpw wf wfn wb ioof ffn ovelrn wa cin simprl
      mp2b pnfxr mnfxr simprr iooin syl22anc mnfle xrleid breq1 ifboth ad2antrl
      cif a1i xrmax1 sylancl ifcl sylancr xrletri3 mpbir2and xrmin2 pnfge breq2
      ad2antll oveq12d eqtrd imaeq2d wfun adantr ffun inpreima eqtr3d ralrimiva
      syl adantrr oveq2 eleq1d rspccva sylan inmbl imaeq2 syl5ibrcom rexlimdvva
      adantrl eqeltrd syl5bi ralrimiv ismbf mpbird ) ADUAJZDUBZHUCZKZUDUEZJZHLU
      FZUGZAXNHXOXKXOJZXKBUCZIUCZLMZNZIOUHBOUHZAXNOOUIZUJUKZLULLYCUMXQYBUNUOYCY
      DLUPBIOOXKLUQVAAYAXNBIOOAXROJZXSOJZURZURZXNYAXJXTKZXMJYHYIXJXRPLMZKZXJQXS
      LMZKZUSZXMYHXJYJYLUSZKZYIYNYHYOXTXJYHYOXRQRSZQXRVLZPXSRSZPXSVLZLMZXTYHYEP
      OJZQOJZYFYOUUANAYEYFUTZUUBYHVBVMUUCYHVCVMAYEYFVDZXRPQXSVEVFYHYRXRYTXSLYHY
      RXRNZYRXRRSZXRYRRSZYEUUGAYFYEQXRRSZXRXRRSZUUGXRVGXRVHYQUUIUUJUUGQXRQYRXRR
      VIXRYRXRRVIVJTVKYHYEUUCUUHUUDVCXRQVNVOYHYROJZYEUUFUUGUUHURUNYHUUCYEUUKVCU
      UDYQQXROVPVQUUDYRXRVRTVSYHYTXSNZYTXSRSZXSYTRSZYHUUBYFUUMVBUUEPXSVTVQYFUUN
      AYEYFXSPRSZXSXSRSZUUNXSWAXSVHYSUUOUUPUUNPXSPYTXSRWBXSYTXSRWBVJTWCYHYTOJZY
      FUULUUMUUNURUNYHUUBYFUUQVBUUEYSPXSOVPVQUUEYTXSVRTVSWDWEWFYHDWGZYPYNNYHCUJ
      DULZUURAUUSYGEWHCUJDWIWMYJYLDWJWMWKYHYKXMJZYMXMJZYNXMJAYEUUTYFFWNAYFUVAYE
      AXJQXRLMZKZXMJZBOUGYFUVAAUVDBOGWLUVDUVABXSOXRXSNZUVCYMXMUVEUVBYLXJXRXSQLW
      OWFWPWQWRXCYKYMWSTXDYAXLYIXMXKXTXJWTWPXAXBXEXFAUUSXIXPUNEHCDXGWMXH $.
  $}

  ${
    $d x F $.  $d x ph $.
    ismbf2d.1 $e |- ( ph -> F : A --> RR ) $.
    ismbf2d.2 $e |- ( ph -> A e. dom vol ) $.
    ismbf2d.3 $e |- ( ( ph /\ x e. RR ) ->
                      ( `' F " ( x (,) +oo ) ) e. dom vol ) $.
    ismbf2d.4 $e |- ( ( ph /\ x e. RR ) ->
                     ( `' F " ( -oo (,) x ) ) e. dom vol ) $.
    $( Deduction to prove measurability of a real function.  (Contributed by
       Mario Carneiro, 18-Jun-2014.) $)
    ismbf2d $p |- ( ph -> F e. MblFn ) $=
      ( wcel cr cpnf wceq cmnf cioo co cima c0 oveq1 syl6eq imaeq2d cv cxr ccnv
      w3o cvol cdm elxr iooid ima0 0mbl eqeltri syl6eqel adantl fimacnv eqeltrd
      wf syl ioomax eleq1d syl5ibrcom imp 3jaodan sylan2b oveq2 ismbfd ) ABCDEB
      UAZUBIZAVFJIZVFKLZVFMLZUDZDUCZVFKNOZPZUEUFZIZVFUGZAVHVPVIVJGVIVPAVIVNVLQP
      ZVOVIVMQVLVIVMKKNOQVFKKNRKUHSTVRQVOVLUIUJUKZULUMAVJVPAVPVJVLJPZVOIZAVTCVO
      ACJDUPVTCLECJDUNUQFUOZVJVNVTVOVJVMJVLVJVMMKNOZJVFMKNRURSTUSUTVAVBVCVGAVKV
      LMVFNOZPZVOIZVQAVHWFVIVJHAVIWFAWFVIWAWBVIWEVTVOVIWDJVLVIWDWCJVFKMNVDURSTU
      SUTVAVJWFAVJWEVRVOVJWDQVLVJWDMMNOQVFMMNVDMUHSTVSULUMVBVCVE $.
  $}

  ${
    $d x z A $.  $d x y z B $.  $d y z C $.  $d y z D $.  $d x y z ph $.
    mbfeqa.1 $e |- ( ph -> A C_ RR ) $.
    mbfeqa.2 $e |- ( ph -> ( vol* ` A ) = 0 ) $.
    mbfeqa.3 $e |- ( ( ph /\ x e. ( B \ A ) ) -> C = D ) $.
    ${
      mbfeqalem.4 $e |- ( ( ph /\ x e. B ) -> C e. RR ) $.
      mbfeqalem.5 $e |- ( ( ph /\ x e. B ) -> D e. RR ) $.
      $( Lemma for ~ mbfeqa .  (Contributed by Mario Carneiro, 2-Sep-2014.) $)
      mbfeqalem $p |- ( ph ->
        ( ( x e. B |-> C ) e. MblFn <-> ( x e. B |-> D ) e. MblFn ) ) $=
        ( vy vz wcel wa cr cfv wceq wb syl2anc cmpt ccnv cima cvol cdm cioo crn
        cv wral cmbf cin cdif cun inundif incom dfin4 eqtri id wss covol cc0 wn
        cab symdif2 eldifi adantl sylan2 eqid fvmpt2 3eqtr4d ralrimiva nffvmpt1
        eldif nfeq fveq2 eqeq12d cbvral sylib r19.21bi eleq1d sylan2br anass1rs
        nfv pm5.32da wfn wf fmptd ffn adantr elpreima 3bitr4d ex con1d syl5eqss
        syl abssdv unssad sstrd ovolssnul syl3anc nulmbl difmbl syl5eqel unssbd
        syl2anr unmbl syl5eqelr impbida ralbidv ismbf ) ABDEUAZUBLUHZUCZUDUEZNZ
        LUFUGZUIZBDFUAZUBXLUCZXNNZLXPUIZXKUJNZXRUJNZAXOXTLXPAXOXTAXOOZXSXSXMUKZ
        XSXMULZUMZXNXSXMUNYDYEXNNYFXNNZYGXNNYDYEXMXMXSULZULZXNYEXMXSUKZYJXSXMUO
        XMXSUPUQXOXOYIXNNZYJXNNAXOURAYIPUSYIUTQVARZYLAYICPAYIYFCAYIYFUMMUHZXMNZ
        YNXSNZSZVBZMVCCMXMXSVDAYRMCAYNCNZYQAYSVBZYQAYTOZYNDNZYNXKQZXLNZOZUUBYNX
        RQZXLNZOZYOYPUUAUUBUUDUUGAUUBYTUUDUUGSZUUBYTOAYNDCULZNZUUIYNDCVMAUUKOUU
        CUUFXLAUUCUUFRZMUUJABUHZXKQZUUMXRQZRZBUUJUIUULMUUJUIAUUPBUUJAUUMUUJNZOZ
        EFUUNUUOIUURUUMDNZEPNZUUNERUUQUUSAUUMDCVEZVFZUUQAUUSUUTUVAJVGBDEPXKXKVH
        ZVITUURUUSFPNZUUOFRUVBUUQAUUSUVDUVAKVGBDFPXRXRVHZVITVJVKUUPUULBMUUJUUPM
        WCBUUCUUFBDEYNVLBDFYNVLVNUUMYNRUUNUUCUUOUUFUUMYNXKVOUUMYNXRVOVPVQVRVSVT
        WAWBWDUUAXKDWEZYOUUESAUVFYTADPXKWFZUVFABDEPXKJUVCWGZDPXKWHWOWIDYNXLXKWJ
        WOUUAXRDWEZYPUUHSAUVIYTADPXRWFZUVIABDFPXRKUVEWGZDPXRWHWOWIDYNXLXRWJWOWK
        WLWMWPWNZWQZGWRAYICUSCPUSZCUTQVARZYMUVMGHYICWSWTYIXATZXMYIXBXEXCAYHXOAY
        FPUSYFUTQVARZYHAYFCPAYIYFCUVLXDZGWRAYFCUSUVNUVOUVQUVRGHYFCWSWTYFXATZWIY
        EYFXFTXGAXTOZXMYKYIUMZXNXMXSUNUVTYKXNNYLUWAXNNUVTYKXSYFULZXNYKYEUWBXMXS
        UOXSXMUPUQXTXTYHUWBXNNAXTURUVSXSYFXBXEXCAYLXTUVPWIYKYIXFTXGXHXIAUVGYBXQ
        SUVHLDXKXJWOAUVJYCYASUVKLDXRXJWOWK $.
    $}

    mbfeqa.4 $e |- ( ( ph /\ x e. B ) -> C e. CC ) $.
    mbfeqa.5 $e |- ( ( ph /\ x e. B ) -> D e. CC ) $.
    $( If two functions are equal almost everywhere, then one is measurable iff
       the other is.  (Contributed by Mario Carneiro, 17-Jun-2014.)  (Revised
       by Mario Carneiro, 2-Sep-2014.) $)
    mbfeqa $p |- ( ph ->
      ( ( x e. B |-> C ) e. MblFn <-> ( x e. B |-> D ) e. MblFn ) ) $=
      ( cre cfv cmpt cmbf wcel cim wa fveq2d recld cdif mbfeqalem imcld anbi12d
      cv ismbfcn2 3bitr4d ) ABDELMZNOPZBDEQMZNOPZRBDFLMZNOPZBDFQMZNOPZRBDENOPBD
      FNOPAUIUMUKUOABCDUHULGHABUEZDCUAPRZEFLISAUPDPRZEJTURFKTUBABCDUJUNGHUQEFQI
      SUREJUCURFKUCUBUDABDEJUFABDFKUFUG $.
  $}

  ${
    $d x F $.  $d x A $.
    $( The restriction of a measurable function is measurable.  (Contributed by
       Mario Carneiro, 18-Jun-2014.) $)
    mbfres $p |- ( ( F e. MblFn /\ A e. dom vol ) ->
                   ( F |` A ) e. MblFn ) $=
      ( vx cmbf wcel wa cre ccom cim cc cr ccnv cima adantr syl2anc sylancr cin
      wf inmbl syl5eqel cvol cdm cres ref wss cpm co simpr cioo crn wral ismbf1
      cv simplbi pmresg cvv wb cnex elpm2g mpbid simpld fco dmres mbfdm syl2anr
      id cpnf resco cnveqi imaeq1i cnvresima eqtr3i mbff ismbfcn syl ibi mbfima
      sylan cmnf ismbf2d imf simprd mpbir2and ) BDEZAUAUBZEZFZBAUCZDEZGWHHZDEZI
      WHHZDEZWGCWHUBZWJWGJKGRZWNJWHRZWNKWJRUDWGWPWNAUEZWGWHJAUFUGEZWPWQFZWGWFBJ
      KUFUGEZWRWDWFUHZWDWTWFWDWTGBHZLZCUMZMWEEIBHZLZXDMWEEFCUIUJUKCBULUNNJAKBWE
      UOOWGJUPEWFWRWSUQURXAJAWHUPWEUSPUTVAZWNJKGWHVBPWGWNABUBZQZWEBAVCWFWFXHWEE
      XIWEEWDWFVFBVDAXHSVETZWGWJLZXDVGUIUGZMZWEEXDKEZWGXMXCXLMZAQZWEXBAUCZLZXLM
      XMXPXRXKXLXQWJGBAVHVIZVJAXLXBVKVLWDXOWEEZWFXPWEEWDXBDEZXHKXBRZXTWDYAXEDEZ
      WDYAYCFZWDXHJBRZWDYDUQBVMZXHBVNVOVPZVAZWDWOYEYBUDYFXHJKGBVBPZXHXDVGXBVQOX
      OASVRTNWGXKVSXDUIUGZMZWEEXNWGYKXCYJMZAQZWEXRYJMYKYMXRXKYJXSVJAYJXBVKVLWDY
      LWEEZWFYMWEEWDYAYBYNYHYIXHVSXDXBVQOYLASVRTNVTWGCWNWLWGJKIRZWPWNKWLRWAXGWN
      JKIWHVBPXJWGWLLZXLMZWEEXNWGYQXFXLMZAQZWEXEAUCZLZXLMYQYSUUAYPXLYTWLIBAVHVI
      ZVJAXLXEVKVLWDYRWEEZWFYSWEEWDYCXHKXERZUUCWDYAYCYGWBZWDYOYEUUDWAYFXHJKIBVB
      PZXHXDVGXEVQOYRASVRTNWGYPYJMZWEEXNWGUUGXFYJMZAQZWEUUAYJMUUGUUIUUAYPYJUUBV
      JAYJXEVKVLWDUUHWEEZWFUUIWEEWDYCUUDUUJUUEUUFXHVSXDXEVQOUUHASVRTNVTWGWPWIWK
      WMFUQXGWNWHVNVOWC $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x F $.  $d x ph $.
    mbfres2.1 $e |- ( ph -> F : A --> RR ) $.
    mbfres2.2 $e |- ( ph -> ( F |` B ) e. MblFn ) $.
    mbfres2.3 $e |- ( ph -> ( F |` C ) e. MblFn ) $.
    mbfres2.4 $e |- ( ph -> ( B u. C ) = A ) $.
    $( Measurability of a piecewise function: if ` F ` is measurable on subsets
       ` B ` and ` C ` of its domain, and these pieces make up all of ` A ` ,
       then ` F ` is measurable on the whole domain.  (Contributed by Mario
       Carneiro, 18-Jun-2014.) $)
    mbfres2 $p |- ( ph -> F e. MblFn ) $=
      ( vx cmbf wcel ccnv cima wral cres cun cr wf syl6eq cv cvol cdm cioo wceq
      crn wa reseq2d wfn ffn fnresdm eqtr2d adantr resundi cnveqd cnvun imaeq1d
      3syl imaundir ssun1 syl5sseq fssresd ismbf syl mpbid r19.21bi ssun2 unmbl
      wb syl2anc eqeltrd ralrimiva mpbird ) AEKLZEMZJUAZNZUBUCZLZJUDUFZOZAVSJVT
      AVPVTLZUGZVQECPZMZVPNZEDPZMZVPNZQZVRWCVQWEWHQZVPNWJWCVOWKVPWCVOWDWGQZMWKW
      CEWLWCEECDQZPZWLAEWNUEWBAWNEBPZEAWMBEIUHABRESZEBUIWOEUEFBREUJBEUKURULUMEC
      DUNTUOWDWGUPTUQWEWHVPUSTWCWFVRLZWIVRLZWJVRLAWQJVTAWDKLZWQJVTOZGACRWDSWSWT
      VIABRCEFAWMCBCDUTIVAVBJCWDVCVDVEVFAWRJVTAWGKLZWRJVTOZHADRWGSXAXBVIABRDEFA
      WMDBDCVGIVAVBJDWGVCVDVEVFWFWIVHVJVKVLAWPVNWAVIFJBEVCVDVM $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    mbfss.1 $e |- ( ph -> A C_ B ) $.
    mbfss.2 $e |- ( ph -> B e. dom vol ) $.
    mbfss.3 $e |- ( ( ph /\ x e. A ) -> C e. V ) $.
    mbfss.4 $e |- ( ( ph /\ x e. ( B \ A ) ) -> C = 0 ) $.
    mbfss.5 $e |- ( ph -> ( x e. A |-> C ) e. MblFn ) $.
    $( Change the domain of a measurability predicate.  (Contributed by Mario
       Carneiro, 17-Aug-2014.) $)
    mbfss $p |- ( ph -> ( x e. B |-> C ) e. MblFn ) $=
      ( cmpt cmbf wcel cre cfv cim cc0 cres eqeltrd cdif cr cv wa wo cun undif2
      cc elun wss wceq ssequn1 sylib syl5eq eleq2d syl5bbr biimpar mbfmptcl 0cn
      syl6eqel jaodan syldan recld eqid fmptd resmptd mpbid simpld difss resmpt
      ismbfcn2 fveq2d re0 syl6eq mpteq2dva csn cxp fconstmpt cvol mbfdm2 difmbl
      ax-mp cdm syl2anc mbfconst sylancl syl5eqelr mbfres2 simprd im0 mpbir2and
      imcld ) ABDELMNBDEOPZLZMNBDEQPZLZMNADCDCUAZWNABDWMUBWNABUCZDNZUDZEAWSWRCN
      ZWRWQNZUEZEUHNZAXCWSXCWRCWQUFZNAWSWRCWQUIAXEDWRAXECDUFZDCDUGACDUJXFDUKGCD
      ULUMUNZUOUPUQAXAXDXBABCEFKIURZAXBUDZERUHJUSUTVAVBZVCWNVDVEAWNCSBCWMLZMABD
      CWMGVFAXKMNZBCWOLZMNZABCELMNXLXNUDKABCEXHVKVGZVHTAWNWQSZBWQRLZMAXPBWQWMLZ
      XQWQDUJZXPXRUKDCVIZBDWQWMVJWBABWQWMRXIWMROPRXIEROJVLVMVNVOUNAXQWQRVPVQZMB
      WQRVRAWQVSWCZNZRUHNYAMNADYBNCYBNYCHABCEFKIVTDCWAWDUSWQRWEWFWGZTXGWHADCWQW
      PABDWOUBWPWTEXJWLWPVDVEAWPCSXMMABDCWOGVFAXLXNXOWITAWPWQSZXQMAYEBWQWOLZXQX
      SYEYFUKXTBDWQWOVJWBABWQWORXIWORQPRXIERQJVLWJVNVOUNYDTXGWHABDEXJVKWK $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z F $.  $d x y z ph $.
    mbfmulc2re.1 $e |- ( ph -> F e. MblFn ) $.
    mbfmulc2re.2 $e |- ( ph -> B e. RR ) $.
    ${
      mbfmulc2lem.3 $e |- ( ph -> F : A --> RR ) $.
      $( Multiplication by a constant preserves measurability.  (Contributed by
         Mario Carneiro, 18-Jun-2014.) $)
      mbfmulc2lem $p |- ( ph -> ( ( A X. { B } ) oF x. F ) e. MblFn ) $=
        ( cc0 clt wbr cmul co wcel wa cr syl wb biantrurd ad2antrr 3bitr4d cmbf
        vy vx vz csn cxp cof wceq wf cvol cdm remulcl adantl fconst6g fdm mbfdm
        cv eqeltrrd inidm off adantr ccnv cpnf cioo cima cmnf cdiv simprl rexrd
        cfv cxr elioopnf ffvelrnda ad2ant2rl cneg simprr wfn eqidd mpdan breq2d
        ofc1 renegcld simplr lt0neg1d mpbid ltmuldiv2 syl112anc mulneg1d breq1d
        ltnegd bitr4d bitr3d lt0ne0d div2negd 3bitr2d redivcld elioomnf anassrs
        ffn recnd pm5.32da elpreima eqrdv mbfima syl2anc eqeltrd ltdivmul simpr
        ismbf2d cc 0cn syl6eqel oveq1d mul02lem2 eqtrd caofid2 mbfconst sylancl
        0cnd elrpd rerpdivcld w3o 0re lttri4 mpjao3dan ) ACHIJZBCUEUFZDKUGLZUAM
        CHUHZHCIJZAYFNZUBBYHABOYHUIZYFAUCUBBBBKOOOYGDUJUKZYMUCUQZOMZUBUQZOMZNYN
        YPKLOMAYNYPULUMACOMZBOYGUIFBCOUNPGADUKZBYMABODUIZYSBUHGBODUOPADUAMZYSYM
        MEDUPPURZUUBBUSUTZVAABYMMZYFUUBVAYKYQNZYHVBZYPVCVDLZVEZDVBZVFYPCVGLZVDL
        ZVEZYMUUEUDUUHUULUUEUDUQZBMZUUMYHVJZUUGMZNZUUNUUMDVJZUUKMZNZUUMUUHMZUUM
        UULMZUUEUUNUUPUUSYKYQUUNUUPUUSQYKYQUUNNZNZUUPUUOOMZYPUUOIJZNZUVFUUSUVDY
        PVKMZUUPUVGQZUVDYPYKYQUUNVHZVIZYPUUOVLZPUVDUVEUVFAUUNUVEYFYQABOUUMYHUUC
        VMZVNZRUVDUURUUJIJZUUROMZUVONZUVFUUSUVDUVPUVOAUUNUVPYFYQABOUUMDGVMZVNZR
        UVDUVFYPCUURKLZIJZUURYPVOZCVOZVGLZIJZUVOUVDUUOUVTYPIUVDUUNUUOUVTUHZYKYQ
        UUNVPUVDBCUURKDYMOUUMAUUDYFUVCUUBSAYRYFUVCFSZUVDYTDBVQZAYTYFUVCGSBODWSZ
        PUVDUUNNUURVRWAVSZVTUVDUWCUURKLZUWBIJZUWEUWAUVDUVPUWBOMZUWCOMZHUWCIJZUW
        LUWEQUVSUVDYPUVJWBZUVDCUWGWBZUVDYFUWOAYFUVCWCZUVDCUWGWDWEZUURUWBUWCWFWG
        UVDUWLUVTVOZUWBIJUWAUVDUWKUWTUWBIUVDCUURUVDCUWGWTZUVDUURUVSWTWHZWIUVDYP
        UVTUVJUVDUUOUVTOUWJUVNURZWJWKWLUVDUWDUUJUURIUVDYPCUVDYPUVJWTUXAUVDCUWRW
        MZWNZVTWOUVDUUJVKMZUUSUVQQZUVDUUJUVDYPCUVJUWGUXDWPVIZUUJUURWQZPTWOWRXAU
        UEYHBVQZUVAUUQQZAUXJYFYQAYLUXJUUCBOYHWSPZSZBUUMUUGYHXBZPUUEUWHUVBUUTQZA
        UWHYFYQAYTUWHGUWIPZSZBUUMUUKDXBZPTXCAUULYMMZYFYQAUUAYTUXSEGBVFUUJDXDXEZ
        SXFUUEUUFVFYPVDLZVEZUUIUUJVCVDLZVEZYMUUEUDUYBUYDUUEUUNUUOUYAMZNZUUNUURU
        YCMZNZUUMUYBMZUUMUYDMZUUEUUNUYEUYGYKYQUUNUYEUYGQUVDUYEUVEUUOYPIJZNZUYKU
        YGUVDUVHUYEUYLQZUVKYPUUOWQZPUVDUVEUYKUVNRUVDUUJUURIJZUVPUYONZUYKUYGUVDU
        VPUYOUVSRUVDUYKUVTYPIJZUYOUVDUUOUVTYPIUWJWIUVDUWBUWKIJZUWBUWTIJUYOUYQUV
        DUWKUWTUWBIUXBVTUVDUWDUURIJZUYOUYRUVDUWDUUJUURIUXEWIUVDUWMUVPUWNUWOUYSU
        YRQUWPUVSUWQUWSUWBUURUWCXGWGWLUVDUVTYPUXCUVJWJTWKUVDUXFUYGUYPQZUXHUUJUU
        RVLZPTWOWRXAUUEUXJUYIUYFQZUXMBUUMUYAYHXBZPUUEUWHUYJUYHQZUXQBUUMUYCDXBZP
        TXCAUYDYMMZYFYQAUUAYTVUFEGBUUJVCDXDXEZSXFXIAYINZYHBHUEUFZUAVUHUCBCHKODY
        MXJXJAUUDYIUUBVAZAYTYIGVAVUHCHXJAYIXHXKXLVUHXSVUHYONZCYNKLHYNKLZHVUKCHY
        NKAYIYOWCXMYOVULHUHVUHYNXNUMXOXPVUHUUDHXJMVUIUAMVUJXKBHXQXRXFAYJNZUBBYH
        AYLYJUUCVAAUUDYJUUBVAVUMYQNZUUHUYDYMVUNUDUUHUYDVUNUUQUYHUVAUYJVUNUUNUUP
        UYGVUMYQUUNUUPUYGQVUMUVCNZUUPUVGUVFUYGVUOUVHUVIVUOYPVUMYQUUNVHZVIZUVLPV
        UOUVEUVFAUUNUVEYJYQUVMVNZRVUOUYOUYPUVFUYGVUOUVPUYOAUUNUVPYJYQUVRVNZRVUO
        UVFUWAUYOVUOUUOUVTYPIAUUNUWFYJYQABCUURKDYMOUUMUUBFUXPAUUNNUURVRWAVNZVTV
        UOYQUVPYRYJUYOUWAQVUPVUSAYRYJUVCFSZAYJUVCWCZYPUURCXGWGWKVUOUXFUYTVUOUUJ
        VUOYPCVUPVUOCVVAVVBXTYAVIZVUAPTWOWRXAVUNUXJUXKAUXJYJYQUXLSZUXNPVUNUWHVU
        DAUWHYJYQUXPSZVUEPTXCAVUFYJYQVUGSXFVUNUYBUULYMVUNUDUYBUULVUNUYFUUTUYIUV
        BVUNUUNUYEUUSVUMYQUUNUYEUUSQVUOUYEUYLUYKUUSVUOUVHUYMVUQUYNPVUOUVEUYKVUR
        RVUOUYQUVOUYKUUSVUOUVPYQYRYJUYQUVOQVUSVUPVVAVVBUURYPCWFWGVUOUUOUVTYPIVU
        TWIVUOUUSUVQUVOVUOUXFUXGVVCUXIPVUOUVPUVOVUSRWKTWOWRXAVUNUXJVUBVVDVUCPVU
        NUWHUXOVVEUXRPTXCAUXSYJYQUXTSXFXIAYRHOMYFYIYJYBFYCCHYDXRYE $.
    $}

    mbfmulc2re.3 $e |- ( ph -> F : A --> CC ) $.
    $( Multiplication by a constant preserves measurability.  (Contributed by
       Mario Carneiro, 15-Aug-2014.) $)
    mbfmulc2re $p |- ( ph -> ( ( A X. { B } ) oF x. F ) e. MblFn ) $=
      ( vx cmul co cfv cmpt cmbf cvv cr cc wceq wcel offval2 eqeltrd csn cxp cv
      cof cdm fdm syl dmexg eqeltrrd adantr ffvelrnda fconstmpt a1i feqmptd cre
      wf cim wa remul2d mpteq2dva recld eqidd eqtr4d ismbfcn2 mpbid simpld eqid
      fmptd mbfmulc2lem immul2d imcld simprd recnd mulcld mpbir2and ) ABCUAUBZD
      IUDZJHBCHUCZDKZIJZLZMAHBCVSIVPDNOPADUEZBNABPDUPWBBQGBPDUFUGADMRWBNREDMUHU
      GUIZACORVRBRZFUJZABPVRDGUKZVPHBCLQAHBCULUMZAHBPDGUNZSAWAMRHBVTUOKZLZMRHBV
      TUQKZLZMRAWJVPHBVSUOKZLZVQJZMAWJHBCWMIJZLWOAHBWIWPAWDURZCVSWEWFUSUTAHBCWM
      IVPWNNOOWCWEWQVSWFVAZWGAWNVBSVCABCWNAWNMRZHBVSUQKZLZMRZAHBVSLZMRWSXBURADX
      CMWHEUIAHBVSWFVDVEZVFFAHBWMOWNWRWNVGVHVITAWLVPXAVQJZMAWLHBCWTIJZLXEAHBWKX
      FWQCVSWEWFVJUTAHBCWTIVPXANOOWCWEWQVSWFVKZWGAXAVBSVCABCXAAWSXBXDVLFAHBWTOX
      AXGXAVGVHVITAHBVTWQCVSACPRWDACFVMUJWFVNVDVOT $.
  $}

  ${
    $d x A $.  $d x z F $.  $d x z G $.  $d y z H $.  $d x y z ph $.
    mbfmax.1 $e |- ( ph -> F : A --> RR ) $.
    mbfmax.2 $e |- ( ph -> F e. MblFn ) $.
    mbfmax.3 $e |- ( ph -> G : A --> RR ) $.
    mbfmax.4 $e |- ( ph -> G e. MblFn ) $.
    mbfmax.5 $e |- H = ( x e. A |->
      if ( ( F ` x ) <_ ( G ` x ) , ( G ` x ) , ( F ` x ) ) ) $.
    $( The maximum of two functions is measurable.  (Contributed by Mario
       Carneiro, 18-Jun-2014.) $)
    mbfmax $p |- ( ph -> H e. MblFn ) $=
      ( wbr cr wcel wa cpnf wb syl6bb clt cmnf vy vz cv cfv cle ffvelrnda ifcld
      cif fmptd cxr ccnv cioo co cima cun cvol cdm wo wn wf adantr rexrd simplr
      xrmaxle syl3anc notbid ianor w3a pnfxr sylancl 3anan12 wceq fveq2 breq12d
      elioo2 ifbieq12d fvmpt adantl eleq1d ltpnf jccir biantrud 3bitr4d xrltnle
      fvex ifex syl2anc 3bitr2d orbi12d pm5.32da andi wfn ffn syl elpreima elun
      bitrd syl6bbr eqrdv mbfima unmbl eqeltrd cin xrmaxlt mnfxr sylancr df-3an
      cmbf mnflt biantrurd bitr4d anbi12d anandi elin inmbl ismbfd ) AUACFABCBU
      CZDUDZXQEUDZUELZXSXRUHZMFAXQCNOXTXSXRMACMXQEIUFACMXQDGUFUGKUIZAUAUCZUJNZO
      ZFUKZYCPULUMZUNZDUKZYGUNZEUKZYGUNZUOZUPUQZYEUBYHYMYEUBUCZYHNZYOYJNZYOYLNZ
      URZYOYMNYEYOCNZYOFUDZYGNZOZYTYODUDZYGNZOZYTYOEUDZYGNZOZURZYPYSYEUUCYTUUEU
      UHURZOUUJYEYTUUBUUKYEYTOZUUDUUGUELZUUGUUDUHZYCUELZUSZUUDYCUELZUSZUUGYCUEL
      ZUSZURZUUBUUKUULUUPUUQUUSOZUSUVAUULUUOUVBUULUUDUJNZUUGUJNZYDUUOUVBQUULUUD
      YECMYODACMDUTZYDGVAZUFZVBZUULUUGYECMYOEACMEUTZYDIVAZUFZVBZAYDYTVCZUUDUUGY
      CVDVEVFUUQUUSVGRUULUUBYCUUNSLZUUPUULUUNYGNZUVNUUNMNZUUNPSLZOZOZUUBUVNUULU
      VOUVPUVNUVQVHZUVSUULYDPUJNZUVOUVTQUVMVIYCPUUNVOVJUVPUVNUVQVKRUULUUAUUNYGY
      TUUAUUNVLYEBYOYAUUNCFXQYOVLZXTUUMXSXRUUGUUDUWBXRUUDXSUUGUEXQYODVMZXQYOEVM
      ZVNUWDUWCVPKUUMUUGUUDYOEWEYODWEWFVQVRZVSUULUVRUVNUULUVPUVQUULUUMUUGUUDMUV
      KUVGUGZUUNVTWAWBWCUULYDUUNUJNUVNUUPQUVMUULUUNUWFVBYCUUNWDWGWQUULUUEUURUUH
      UUTUULUUEYCUUDSLZUUDMNZUUDPSLZOZOZUWGUURUULUUEUWHUWGUWIVHZUWKUULYDUWAUUEU
      WLQUVMVIYCPUUDVOVJUWHUWGUWIVKRUULUWJUWGUULUWHUWIUVGUUDVTWAWBUULYDUVCUWGUU
      RQUVMUVHYCUUDWDWGWHUULUUHYCUUGSLZUUGMNZUUGPSLZOZOZUWMUUTUULUUHUWNUWMUWOVH
      ZUWQUULYDUWAUUHUWRQUVMVIYCPUUGVOVJUWNUWMUWOVKRUULUWPUWMUULUWNUWOUVKUUGVTW
      AWBUULYDUVDUWMUUTQUVMUVLYCUUGWDWGWHWIWCWJYTUUEUUHWKRYEFCWLZYPUUCQAUWSYDAC
      MFUTUWSYBCMFWMWNVAZCYOYGFWOWNYEYQUUFYRUUIYEDCWLZYQUUFQYEUVEUXAUVFCMDWMWNZ
      CYOYGDWOWNYEECWLZYRUUIQYEUVIUXCUVJCMEWMWNZCYOYGEWOWNWIWCYOYJYLWPWRWSAYMYN
      NZYDAYJYNNZYLYNNZUXEADXHNZUVEUXFHGCYCPDWTWGAEXHNZUVIUXGJICYCPEWTWGYJYLXAW
      GVAXBYEYFTYCULUMZUNZYIUXJUNZYKUXJUNZXCZYNYEUBUXKUXNYEYOUXKNZYOUXLNZYOUXMN
      ZOZYOUXNNYEYTUUAUXJNZOZYTUUDUXJNZOZYTUUGUXJNZOZOZUXOUXRYEUXTYTUYAUYCOZOUY
      EYEYTUXSUYFUULUUNYCSLZUUDYCSLZUUGYCSLZOZUXSUYFUULUVCUVDYDUYGUYJQUVHUVLUVM
      UUDUUGYCXDVEUULUUNUXJNZUVPTUUNSLZOZUYGOZUXSUYGUULUYKUVPUYLUYGVHZUYNUULTUJ
      NZYDUYKUYOQXEUVMTYCUUNVOXFUVPUYLUYGXGRUULUUAUUNUXJUWEVSUULUYMUYGUULUVPUYL
      UWFUUNXIWAXJWCUULUYAUYHUYCUYIUULUYAUWHTUUDSLZOZUYHOZUYHUULUYAUWHUYQUYHVHZ
      UYSUULUYPYDUYAUYTQXEUVMTYCUUDVOXFUWHUYQUYHXGRUULUYRUYHUULUWHUYQUVGUUDXIWA
      XJXKUULUYCUWNTUUGSLZOZUYIOZUYIUULUYCUWNVUAUYIVHZVUCUULUYPYDUYCVUDQXEUVMTY
      CUUGVOXFUWNVUAUYIXGRUULVUBUYIUULUWNVUAUVKUUGXIWAXJXKXLWCWJYTUYAUYCXMRYEUW
      SUXOUXTQUWTCYOUXJFWOWNYEUXPUYBUXQUYDYEUXAUXPUYBQUXBCYOUXJDWOWNYEUXCUXQUYD
      QUXDCYOUXJEWOWNXLWCYOUXLUXMXNWRWSAUXNYNNZYDAUXLYNNZUXMYNNZVUEAUXHUVEVUFHG
      CTYCDWTWGAUXIUVIVUGJICTYCEWTWGUXLUXMXOWGVAXBXP $.
  $}

  ${
    $d x A $.  $d x ph $.  $d x V $.
    mbfneg.1 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    mbfneg.2 $e |- ( ph -> ( x e. A |-> B ) e. MblFn ) $.
    $( The negative of a measurable function is measurable.  (Contributed by
       Mario Carneiro, 31-Jul-2014.) $)
    mbfneg $p |- ( ph -> ( x e. A |-> -u B ) e. MblFn ) $=
      ( c1 cneg csn cmpt cmul co cmbf cvv cr wcel eqeltrrd neg1rr a1i cxp dmexg
      cof cdm eqid dmmptd cv wa wceq fconstmpt eqidd offval2 mbfmptcl mpteq2dva
      syl mulm1d eqtrd cc fmptd mbfmulc2re ) ACHIZJUAZBCDKZLUCMZBCDIZKZNAVDBCVA
      DLMZKVFABCVADLVBVCOPEAVCUDZCOABVCCDEVCUEZFUFAVCNQVHOQGVCNUBUORVAPQZABUGCQ
      UHZSTFVBBCVAKUIABCVAUJTAVCUKULABCVGVEVKDABCDEGFUMZUPUNUQACVAVCGVJASTABCDU
      RVCVLVIUSUTR $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y ph $.
    mbfpos.1 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    ${
      mbfpos.2 $e |- ( ph -> ( x e. A |-> B ) e. MblFn ) $.
      $( The positive part of a measurable function is measurable.
         (Contributed by Mario Carneiro, 31-Jul-2014.) $)
      mbfpos $p |- ( ph -> ( x e. A |-> if ( 0 <_ B , B , 0 ) ) e. MblFn ) $=
        ( vy cv cc0 cfv cmpt cle wbr cif cmbf wcel wceq cr syl2anc nfcv csn cxp
        wa c0ex fvconst2 adantl simpr fvmpt2 breq12d ifbieq12d mpteq2dva wf 0re
        eqid fconst6 a1i cvol cdm mbfdm2 0cnd mbfconst fmptd nffvmpt1 nfbr nfif
        cc fveq2 cbvmpt mbfmax eqeltrrd ) ABCBHZCIUAUBZJZVKBCDKZJZLMZVOVMNZKZBC
        IDLMZDINZKOABCVQVTAVKCPZUCZVPVSVOVMDIWBVMIVODLWAVMIQACIVKUDUEUFZWBWADRP
        VODQAWAUGEBCDRVNVNUNZUHSZUIWEWCUJUKAGCVLVNVRCRVLULACIRUMUOUPACUQURPIVFP
        VLOPABCDRFEUSAUTCIVASABCDRVNEWDVBFBGCVQGHZVLJZWFVNJZLMZWHWGNGVQTWIBWHWG
        BWGWHLBWGTZBLTBCDWFVCZVDWKWJVEVKWFQZVPWIVOVMWHWGWLVMWGVOWHLVKWFVLVGZVKW
        FVNVGZUIWNWMUJVHVIVJ $.
    $}

    ${
      mbfposr.2 $e |- ( ph ->
        ( x e. A |-> if ( 0 <_ B , B , 0 ) ) e. MblFn ) $.
      mbfposr.3 $e |- ( ph ->
        ( x e. A |-> if ( 0 <_ -u B , -u B , 0 ) ) e. MblFn ) $.
      $( Converse to ~ mbfpos .  (Contributed by Mario Carneiro,
         11-Aug-2014.) $)
      mbfposr $p |- ( ph -> ( x e. A |-> B ) e. MblFn ) $=
        ( cr cc0 cle wbr wcel wa clt wb biantrurd sylan syl 3bitr4d ad2antrr vy
        cmpt eqid fmptd cif cv 0re ifcl sylancl mbfdm2 ccnv cpnf cioo cima cvol
        co cdm cneg cmnf wal wceq cfv simplr simpllr lt0neg1d mpbid simpll 0red
        ltnegd renegcld maxlt syl3anc 3bitr4rd 3bitr3d cxr rexrd elioomnf simpr
        elioopnf fvmpt2 syl2anc eleq1d pm5.32da wf wfn ffn elpreima 3syl nfmpt1
        alrimiv nfcnv nfcv nfima cleqf sylibr cmbf mbfima eqeltrrd maxle bitr4d
        wn notbid ltnled ltlecasei le0neg1d lenegd ismbf2d ) AUACBCDUBZABCDHXHE
        XHUCZUDZABCIDJKZDIUEZHFABUFZCLZMZDHLZIHLZXLHLZEUGXKDIHUHZUIZUJAUAUFZHLZ
        MZXHUKZYAULUMUPZUNZUOUQZLYAIYCYAINKZMZBCIDURZJKZYJIUEZUBZUKZUSYAURZUMUP
        ZUNZYFYGYIXMYQLZXMYFLZOZBUTYQYFVAYIYTBYIXNXMYMVBZYPLZMZXNXMXHVBZYELZMZY
        RYSYIXNUUBUUEYIXNMZYLYPLZDYELZUUBUUEUUGYLHLZYLYONKZMZXPYADNKZMZUUHUUIUU
        GUUKUUMUULUUNUUGYJYONKZIYONKZUUOMZUUMUUKUUGUUPUUOUUGYHUUPYCYHXNVCUUGYAA
        YBYHXNVDZVEVFPUUGYADUURYIAXNXPAYBYHVGZEQZVIUUGXQYJHLZYOHLZUUKUUQOUUGVHU
        UGDUUTVJUUGYAUURVJZIYJYOVKVLVMUUGUUJUUKYIAXNUUJUUSXOUVAXQUUJXODEVJUGYKY
        JIHUHUIZQPUUGXPUUMUUTPVNUUGYOVOLZUUHUULOUUGYOUVCVPYOYLVQRUUGYAVOLZUUIUU
        NOZUUGYAUURVPYADVSZRSYIAXNUUBUUHOUUSXOUUAYLYPXOXNUUJUUAYLVAAXNVRZUVDBCY
        LHYMYMUCZVTWAZWBQYIAXNUUEUUIOZUUSXOUUDDYEXOXNXPUUDDVAUVIEBCDHXHXIVTWAZW
        BZQSWCAYRUUCOZYBYHACHYMWDZYMCWEZUVOABCYLHYMUVDUVJUDZCHYMWFZCXMYPYMWGWHT
        AYSUUFOZYBYHACHXHWDZXHCWEZUVTXJCHXHWFZCXMYEXHWGWHZTSWJBYQYFBYNYPBYMBCYL
        WIWKZBYPWLWMBYDYEBXHBCDWIWKZBYEWLZWMZWNWOAYQYGLZYBYHAYMWPLZUVPUWIGUVRCU
        SYOYMWQWATWRYCIYAJKZMZBCXLUBZUKZYEUNZYFYGUWLXMUWOLZYSOZBUTUWOYFVAUWLUWQ
        BUWLXNXMUWMVBZYELZMZUUFUWPYSUWLXNUWSUUEUWLXNMZXLYELZUUIUWSUUEUXAXRYAXLN
        KZMZUUNUXBUUIUXAUXCUUMUXDUUNUXAXLYAJKZXADYAJKZXAUXCUUMUXAUXEUXFUXAUXEUW
        KUXFMZUXFUXAXQXPYBUXEUXGOUXAVHUWLAXNXPAYBUWKVGZEQZAYBUWKXNVDZIDYAWSVLUX
        AUWKUXFYCUWKXNVCPWTXBUXAYAXLUXJUXAXPXQXRUXIUGXSUIZXCUXAYADUXJUXIXCSUXAX
        RUXCUXKPUXAXPUUMUXIPVNUXAUVFUXBUXDOUXAYAUXJVPZYAXLVSRUXAUVFUVGUXLUVHRSU
        WLAXNUWSUXBOUXHXOUWRXLYEXOXNXRUWRXLVAUVIXTBCXLHUWMUWMUCZVTWAZWBQUWLAXNU
        VLUXHUVNQSWCAUWPUWTOZYBUWKACHUWMWDZUWMCWEZUXOABCXLHUWMXTUXMUDZCHUWMWFZC
        XMYEUWMWGWHTAUVTYBUWKUWDTSWJBUWOYFBUWNYEBUWMBCXLWIWKZUWGWMUWHWNWOAUWOYG
        LZYBUWKAUWMWPLZUXPUYAFUXRCYAULUWMWQWATWRAYBVRZYCVHZXDYCYDUSYAUMUPZUNZYG
        LIYAYCIYANKZMZUWNUYEUNZUYFYGUYHXMUYILZXMUYFLZOZBUTUYIUYFVAUYHUYLBUYHXNU
        WRUYELZMZXNUUDUYELZMZUYJUYKUYHXNUYMUYOUYHXNMZXLUYELZDUYELZUYMUYOUYQXRXL
        YANKZMZXPDYANKZMZUYRUYSUYQUYTVUBVUAVUCUYQUYTUYGVUBMZVUBUYQXQXPYBUYTVUDO
        UYQVHUYHAXNXPAYBUYGVGZEQZAYBUYGXNVDZIDYAVKVLUYQUYGVUBYCUYGXNVCPWTUYQXRU
        YTUYHAXNXRVUEXTQPUYQXPVUBVUFPVNUYQUVFUYRVUAOUYQYAVUGVPZYAXLVQRUYQUVFUYS
        VUCOZVUHYADVQZRSUYHAXNUYMUYROVUEXOUWRXLUYEUXNWBQUYHAXNUYOUYSOZVUEXOUUDD
        UYEUVMWBZQSWCAUYJUYNOZYBUYGAUXPUXQVUMUXRUXSCXMUYEUWMWGWHTAUYKUYPOZYBUYG
        AUWAUWBVUNXJUWCCXMUYEXHWGWHZTSWJBUYIUYFBUWNUYEUXTBUYEWLZWMBYDUYEUWFVUPW
        MZWNWOAUYIYGLZYBUYGAUYBUXPVURFUXRCUSYAUWMWQWATWRYCYAIJKZMZYNYOULUMUPZUN
        ZUYFYGVUTXMVVBLZUYKOZBUTVVBUYFVAVUTVVDBVUTXNUUAVVALZMZUYPVVCUYKVUTXNVVE
        UYOVUTXNMZYLVVALZUYSVVEUYOVVGUUJYOYLNKZMZVUCVVHUYSVVGVVIVUBVVJVUCVVGYLY
        OJKZXAYADJKZXAVVIVUBVVGVVKVVLVVGYJYOJKZIYOJKZVVMMZVVLVVKVVGVVNVVMVVGVUS
        VVNYCVUSXNVCVVGYAAYBVUSXNVDZXEVFPVVGYADVVPVUTAXNXPAYBVUSVGZEQZXFVVGXQUV
        AUVBVVKVVOOVVGVHVVGDVVRVJVVGYAVVPVJZIYJYOWSVLVMXBVVGYOYLVVSVUTAXNUUJVVQ
        UVDQZXCVVGDYAVVRVVPXCSVVGUUJVVIVVTPVVGXPVUBVVRPVNVVGUVEVVHVVJOVVGYOVVSV
        PYOYLVSRVVGUVFVUIVVGYAVVPVPVUJRSVUTAXNVVEVVHOVVQXOUUAYLVVAUVKWBQVUTAXNV
        UKVVQVULQSWCAVVCVVFOZYBVUSAUVPUVQVWAUVRUVSCXMVVAYMWGWHTAVUNYBVUSVUOTSWJ
        BVVBUYFBYNVVAUWEBVVAWLWMVUQWNWOAVVBYGLZYBVUSAUWJUVPVWBGUVRCYOULYMWQWATW
        RUYDUYCXDXG $.
    $}

    $( A function is measurable iff its positive and negative parts are
       measurable.  (Contributed by Mario Carneiro, 11-Aug-2014.) $)
    mbfposb $p |- ( ph -> ( ( x e. A |-> B ) e. MblFn <->
      ( ( x e. A |-> if ( 0 <_ B , B , 0 ) ) e. MblFn /\
        ( x e. A |-> if ( 0 <_ -u B , -u B , 0 ) ) e. MblFn ) ) ) $=
      ( vy cmpt cmbf wcel cc0 cle wbr cif wa wceq nfcv breq2d ifbieq1d adantr
      cr cneg cv nffvmpt1 nfbr nfif fveq2 cbvmpt simpr fvmpt2 syl2anc mpteq2dva
      cfv syl5eq wf fmptd ffvelrnda eleq1d biimpar mbfpos eqeltrrd nfneg negeqd
      eqid renegcld mbfneg jca adantlr simprl eqeltrd simprr mbfposr impbida )
      ABCDGZHIZBCJDKLZDJMZGZHIZBCJDUAZKLZVSJMZGZHIZNZAVNNZVRWCWEFCJFUBZVMULZKLZ
      WGJMZGZVQHAWJVQOZVNAWJBCJBUBZVMULZKLZWMJMZGVQFBCWIWOWHBWGJBJWGKBJPZBKPZBC
      DWFUCZUDWRWPUEFWOPWFWLOZWHWNWGWMJWSWGWMJKWFWLVMUFZQWTRUGABCWOVPAWLCIZNZWN
      VOWMDJXBWMDJKXBXADTIWMDOAXAUHEBCDTVMVMVCZUIUJZQXDRUKUMZSWEFCWGWECTWFVMACT
      VMUNVNABCDTVMEXCUOZSUPZAFCWGGZHIVNAXHVMHAXHBCWMGVMFBCWGWMWRFWMPWTUGABCWMD
      XDUKUMZUQURZUSUTWEFCJWGUAZKLZXKJMZGZWBHAXNWBOZVNAXNBCJWMUAZKLZXPJMZGWBFBC
      XMXRXLBXKJBJXKKWPWQBWGWRVAZUDXSWPUEFXRPWSXLXQXKXPJWSXKXPJKWSWGWMWTVBZQXTR
      UGABCXRWAXBXQVTXPVSJXBXPVSJKXBWMDXDVBZQYARUKUMZSWEFCXKWEWFCIZNWGXGVDWEFCW
      GTXGXJVEUSUTVFAWDNZXHVMHAXHVMOWDXISYDFCWGAYCWGTIWDACTWFVMXFUPVGYDWJVQHAWK
      WDXESAVRWCVHVIYDXNWBHAXOWDYBSAVRWCVJVIVKUTVL $.
  $}

  ${
    $d u v w x y z F $.  $d x y z ph $.
    ismbf3d.1 $e |- ( ph -> F : A --> RR ) $.
    ismbf3d.2 $e |- ( ( ph /\ x e. RR ) ->
                     ( `' F " ( x (,) +oo ) ) e. dom vol ) $.
    $( Simplified form of ~ ismbfd .  (Contributed by Mario Carneiro,
       18-Jun-2014.) $)
    ismbf3d $p |- ( ph -> F e. MblFn ) $=
      ( vy cr cima wceq syl cn cpnf cioo co wcel clt wbr wa cmnf vz vu ccnv cdm
      vv vw cvol wf fimacnv cneg ciun imaiun wss wral ioossre rgenw iunss mpbir
      cv wrex renegcl arch simpl biantrurd ltnegcon1 sylan2 cxr adantl renegcld
      wb rexrd elioopnf 3bitr4d rexbidva mpbid eliun sylibr ssriv eqssi imaeq2i
      nnre eqtr3i ralrimiva oveq1 imaeq2d eleq1d rspccva syl2an iunmbl eqeltrrd
      syl5eqelr cdiv cmin cioc cle w3a 3simpb simplr crp nnrp ad2antrl rpreccld
      c1 wi ltsubrpd simprr simpr nnrecre resubcl adantrr lelttr syl3anc mpan2d
      anassrs imdistanda syl5 mnfxr elioc2 sylancr rexr elioomnf adantr 3imtr4d
      rexlimdva sylibd simprl mnflt ad2ant2r ltsub13d ltled mpbir3and cdif wfun
      syl2anc ad2antrr cun a1i pnfxr cin c0 resubcld posdifd nnrecl reximddv ex
      cc0 impbid bitr4d syl5bb eqrdv syl5eqr ffun funcnvcnv imadif ltpnf df-ioc
      4syl df-ioo xrltnle xrlelttr xrlttr ixxun syl32anc ioomax 3eqtr3g ixxdisj
      uncom incom mp3an13 syl5eq uneqdifeq eqtr3d rspcv sylc difmbl oveq2 sylib
      cbvralv r19.21bi ismbf2d ) ABCDEADUCZHIZCUGUDZACHDUHZUWBCJECHDUIKAUWBGLUW
      AGUSZUJZMNOZIZUKZUWCUWAGLUWGUKZIUWIUWBGUWALUWGULUWJHUWAUWJHUWJHUMUWGHUMZG
      LUNUWKGLUWFMUOUPGLUWGHUQURUAHUWJUAUSZHPZUWLUWGPZGLUTZUWLUWJPUWMUWLUJZUWEQ
      RZGLUTZUWOUWMUWPHPUWRUWLVAUWPGVBKUWMUWQUWNGLUWMUWELPZSZUWFUWLQRZUWMUXASZU
      WQUWNUWTUWMUXAUWMUWSVCVDUWSUWMUWEHPZUWQUXAVJUWEWAZUWLUWEVEVFUWTUWFVGPUWNU
      XBVJUWTUWFUWTUWEUWSUXCUWMUXDVHVIVKUWFUWLVLKVMVNVOGUWLLUWGVPVQVRVSVTWBAUWH
      UWCPZGLUNUWIUWCPAUXEGLAUWABUSZMNOZIZUWCPZBHUNZUWFHPUXEUWSAUXIBHFWCZUWSUWE
      UXDVIUXIUXEBUWFHUXFUWFJZUXHUWHUWCUXLUXGUWGUWAUXFUWFMNWDWEWFWGWHWCUWHGWIKW
      KZWJFAUWATUXFNOZIZUWCPZBHAUWATUWLNOZIZUWCPZUAHUNUXPBHUNAUXSUAHAUWMSZGLUWA
      TUWLXCUWEWLOZWMOZWNOZIZUKZUXRUWCUXTUYEUWAGLUYCUKZIUXRGUWALUYCULUXTUYFUXQU
      WAUXTBUYFUXQUXFUYFPUXFUYCPZGLUTZUXTUXFUXQPZGUXFLUYCVPUXTUYHUXFHPZUXFUWLQR
      ZSZUYIUXTUYHUYLUXTUYHUYIUYLUXTUYGUYIGLUXTUWSSZUYJTUXFQRZUXFUYBWORZWPZUYLU
      YGUYIUYPUYJUYOSUYMUYLUYJUYNUYOWQUYMUYJUYOUYKUXTUWSUYJUYOUYKXDUXTUWSUYJSZS
      ZUYOUYBUWLQRZUYKUYRUWLUYAAUWMUYQWRZUYRUWEUWSUWEWSPUXTUYJUWEWTXAXBXEUYRUYJ
      UYBHPZUWMUYOUYSSUYKXDUXTUWSUYJXFUXTUWSVUAUYJUXTUWMUYAHPZVUAUWSAUWMXGUWEXH
      ZUWLUYAXIWHZXJUYTUXFUYBUWLXKXLXMXNXOXPUYMTVGPZVUAUYGUYPVJZXQVUDTUYBUXFXRX
      SZUXTUYIUYLVJZUWSUXTUWLVGPZVUHUWMVUIAUWLXTVHUWLUXFYAKZYBYCYDVUJYEUXTUYLUY
      HUXTUYLSZUYAUWLUXFWMOZQRZUYGGLVUKUWSVUMSZSZUYGUYJUYNUYOVUKUYJVUNUXTUYJUYK
      YFZYBZVUOUYJUYNVUQUXFYGKVUOUXFUYBVUQUXTUWSVUAUYLVUMVUDYHVUOUYAUWLUXFUWSVU
      BVUKVUMVUCXAVUKUWMVUNAUWMUYLWRZYBVUQVUKUWSVUMXFYIYJUXTUWSVUFUYLVUMVUGYHYK
      VUKVULHPUUFVULQRZVUMGLUTVUKUWLUXFVURVUPUUAVUKUYKVUSUXTUYJUYKXFVUKUXFUWLVU
      PVURUUBVOVULGUUCYNUUDUUEUUGVUJUUHUUIUUJWEUUKUXTUYDUWCPZGLUNUYEUWCPUXTVUTG
      LUYMUWBUWAUYBMNOZIZYLZUYDUWCUYMUWAHVVAYLZIZVVCUYDUYMUWDDYMUWAUCYMVVEVVCJA
      UWDUWMUWSEYOCHDUULDUUMHVVAUWAUUNUUQUYMVVDUYCUWAUYMVVAUYCYPZHJZVVDUYCJZUYM
      UYCVVAYPZTMNOZVVFHUYMVUEUYBVGPZMVGPZTUYBQRZUYBMQRZVVIVVJJVUEUYMXQYQUYMUYB
      VUDVKZVVLUYMYRYQUYMVUAVVMVUDUYBYGKUYMVUAVVNVUDUYBUUOKUBUEUFBTUYBMNNQWOQQW
      NQQUBUEUFUUPZUBUEUFUURZUYBUXFUUSZVVQUXFUYBMUUTTUYBUXFUVAUVBUVCUYCVVAUVGUV
      DUVEUYMVVAHUMVVAUYCYSZYTJVVGVVHVJUYBMUOUYMVVSUYCVVAYSZYTVVAUYCUVHUYMVVKVV
      TYTJZVVOVUEVVKVVLVWAXQYRUBUEUFBTUYBMNQWOQQWNVVPVVQVVRUVFUVIKUVJVVAUYCHUVK
      XSVOWEUVLUYMUWBUWCPZVVBUWCPZVVCUWCPAVWBUWMUWSUXMYOUYMVUAUXJVWCVUDAUXJUWMU
      WSUXKYOUXIVWCBUYBHUXFUYBJZUXHVVBUWCVWDUXGVVAUWAUXFUYBMNWDWEWFUVMUVNUWBVVB
      UVOYNWJWCUYDGWIKWJWCUXSUXPUABHUWLUXFJZUXRUXOUWCVWEUXQUXNUWAUWLUXFTNUVPWEW
      FUVRUVQUVSUVT $.
  $}

  ${
    $d t u x A $.  $d u x y z B $.  $d u C $.  $d t u w x y z F $.  $d t w K $.
    $d t w x y z G $.  $d t u x y J $.
    mbfimaopn.1 $e |- J = ( TopOpen ` CCfld ) $.
    ${
      mbfimaopn.2 $e |- G = ( x e. RR , y e. RR |-> ( x + ( _i x. y ) ) ) $.
      mbfimaopn.3 $e |- B = ( (,) " ( QQ X. QQ ) ) $.
      mbfimaopn.4 $e |- K = ran ( x e. B , y e. B |-> ( x X. y ) ) $.
      $( Lemma for ~ mbfimaopn .  (Contributed by Mario Carneiro,
         25-Aug-2014.) $)
      mbfimaopnlem $p |- ( ( F e. MblFn /\ A e. J ) ->
        ( `' F " A ) e. dom vol ) $=
        ( wcel wa cima mp2an cc cn cdom wbr vt vw vz cmbf cv wss ccnv cuni wceq
        cvol cdm wex ctg cfv cioo crn ctx ccn chmeo cnrehmeo hmeocn ax-mp cnima
        co eqid cq cxp fveq2i tgqioo oveq12i ctb qtopbas eqeltri txbasval txval
        mpan 3eqtri syl6eleq wb txbas eltg3 sylib adantl ciun cr wfo wf1o f1ofo
        cnref1o elssuni cnfldtopon toponunii syl6sseqr ad2antlr foimacnv simprr
        sylancr imaeq2d syl6eq com cen omelon nnenom isnumi qnnen xpnnen cxr wf
        wral ioof fodomnum mp2 eqbrtri domentr wfn vex wrex eleq2i cre ccom cim
        domtr adantr fvco3 sylan eleq1d anbi12d cop fveq2 syl elpreima fco 3syl
        ffn ismbf mpbid sseldi rsp sylc syl2anc imauni eqtr3d imaiun cmpt2 ccrd
        wi ssdomg con0 ensymi cres xpen entri entr2i wfun cpw ffun qssre ressxr
        sstri xpss12 fdmi sseqtr4i fores xpdom1 nnex xpdom2 numdom xpex fnmpt2i
        elexi dffn4 mpbi sylancl ad2antrl elrnmpt2 bitri elin ffvelrnda opeq12d
        cin mbff opex fvmpt biantrurd bitr3d opelxp f1ocnv f1ofn mp2b imacnvcnv
        cnrecnv bitr3i 3bitr3g bitrd pm5.32da ref anandi syl6bbr 3bitr4d syl5bb
        imf eqrdv ismbfcn ibi simpld imassrn eqsstri simprl simprd inmbl imaeq2
        eqeltrrd syl5ibrcom rexlimdvva syl5bi ralrimiv ad2ant2r iunmbl2 eqeltrd
        ssralv mpan9 exlimddv ) EUDMZCGMZNZUAUEZHUFZFUGZCOZUYFUHZUIZNZEUGZCOZUJ
        UKZMUAUYDUYLUAULZUYCUYDUYIHUMUNZMZUYPUYDUYIUOUPZUMUNZUYTUQVDZUYQFVUAGUR
        VDMZUYDUYIVUAMFVUAGUSVDMVUBABFUYTGJUYTVEIUTFVUAGVAVBCFVUAGVCVPVUADUMUNZ
        VUCUQVDZDDUQVDZUYQUYTVUCUYTVUCUQVUCDUOVFVFVGZOZUMKVHVIZVUHVJDVKMZVUIVUD
        VUEUIDVUGVKKVLVMZVUJDDVKVKVNPVUIVUIVUEUYQUIVUJVUJABHDDVKVKLVOPVQVRHVKMZ
        UYRUYPVSVUIVUIVUKVUJVUJABHDDLVTPZUAUYIHVKWAVBWBWCUYEUYLNZUYNUBUYFUYMFUB
        UEZOZOZWDZUYOVUMUYNUYMUBUYFVUOWDZOVUQVUMCVURUYMVUMFUYIOZCVURVUMWEWEVGZQ
        FWFZCQUFZVUSCUIVUTQFWGZVVAABFJWIZVUTQFWHVBUYDVVBUYCUYLUYDCGUHQCGWJQGGIW
        KWLWMWNVUTQCFWOWQVUMVUSFUYJOVURVUMUYIUYJFUYEUYGUYKWPWRUBFUYFUUAWSUUBWRU
        BUYMUYFVUOUUCWSVUMUYFRSTZVUPUYOMZUBUYFXIZVUQUYOMUYGVVEUYEUYKUYGUYFHSTZH
        RSTVVEVUKUYGVVHUUFVULUYFHVKUUGVBHABDDAUEZBUEZVGZUUDZUPZRSLVVMDDVGZSTZVV
        NRSTZVVMRSTVVNUUEUKZMZVVNVVMVVLWFZVVORVVQMZVVPVVRWTUUHMZWTRXATVVTXBRWTX
        CUUIWTRXDPVVNRRVGZSTZVWBRXATVVPVVNRDVGZSTZVWDVWBSTZVWCDRSTZVWEDVUFSTVUF
        RXATVWGDVUGVUFSKVUFVVQMZVUFVUGUOVUFUUJZWFZVUGVUFSTVWAWTVUFXATVWHXBVUFRW
        TVUFVWBRVFRXATZVWKVUFVWBXATXEXEVFRVFRUUKPXFUULZXCUUMWTVUFXDPUOUUNZVUFUO
        UKZUFVWJXGXGVGZWEUUOZUOXHVWMXJVWOVWPUOUUPVBVUFVWOVWNVFXGUFZVWQVUFVWOUFV
        FWEXGUUQUURUUSZVWRVFXGVFXGUUTPVWOVWPUOXJUVAUVBVUFUOUVCPVUFVUGVWIXKXLXMV
        WLDVUFRXNPZDRDDVKVUJUVJUVDVBVWGVWFVWSDRRUVEUVFVBVVNVWDVWBYBPXFVVNVWBRXN
        PZRVVNUVGPVVLVVNXOVVSABDDVVKVVLVVLVEZVVIVVJAXPBXPUVHZUVIVVNVVLUVKUVLVVN
        VVMVVLXKXLVWTVVMVVNRYBPXMUYFHRYBUVMUVNUYCUYGVVGUYDUYKUYCVVFUBHXIUYGVVGU
        YCVVFUBHVUNHMZVUNVVKUIZBDXQADXQZUYCVVFVXCVUNVVMMVXEHVVMVUNLXRABDDVVKVUN
        VVLVXAVXBUVOUVPUYCVXDVVFABDDUYCVVIDMZVVJDMZNZNZVVFVXDUYMFVVKOZOZUYOMVXI
        XSEXTZUGVVIOZYAEXTZUGVVJOZUVTZVXKUYOVXIUCVXPVXKUCUEZVXPMVXQVXMMZVXQVXOM
        ZNZVXIVXQVXKMZVXQVXMVXOUVQVXIVXQEUKZMZVXQVXLUNZVVIMZVXQVXNUNZVVJMZNZNZV
        YCVXQEUNZVXJMZNZVXTVYAVXIVYCVYHVYKVXIVYCNZVYHVYJXSUNZVVIMZVYJYAUNZVVJMZ
        NZVYKVYMVYEVYOVYGVYQVYMVYDVYNVVIVXIVYBQEXHZVYCVYDVYNUIUYCVYSVXHEUWAZYCZ
        VYBQVXQXSEYDYEYFVYMVYFVYPVVJVXIVYSVYCVYFVYPUIWUAVYBQVXQYAEYDYEYFYGVYMVY
        NVYPYHZVVKMZVYJQMZVYJUYHUNZVVKMZNZVYRVYKVYMWUFWUCWUGVYMWUEWUBVVKVYMWUDW
        UEWUBUIVXIVYBQVXQEWUAUVRZUBVYJVUNXSUNZVUNYAUNZYHWUBQUYHVUNVYJUIWUIVYNWU
        JVYPVUNVYJXSYIVUNVYJYAYIUVSABUBFJUWKVYNVYPUWBUWCYJYFVYMWUDWUFWUHUWDUWEV
        YNVYPVVIVVJUWFWUGVYJUYHUGVVKOZMZVYKUYHQXOZWULWUGVSVVCQVUTUYHWGWUMVVDVUT
        QFUWGQVUTUYHUWHUWIQVYJVVKUYHYKVBWUKVXJVYJFVVKUWJXRUWLUWMUWNUWOUYCVXTVYI
        VSVXHUYCVXTVYCVYENZVYCVYGNZNVYIUYCVXRWUNVXSWUOUYCVYBWEVXLXHZVXLVYBXOVXR
        WUNVSUYCQWEXSXHVYSWUPUWPVYTVYBQWEXSEYLWQZVYBWEVXLYNVYBVXQVVIVXLYKYMUYCV
        YBWEVXNXHZVXNVYBXOVXSWUOVSUYCQWEYAXHVYSWURUXAVYTVYBQWEYAEYLWQZVYBWEVXNY
        NVYBVXQVVJVXNYKYMYGVYCVYEVYGUWQUWRYCUYCVYAVYLVSZVXHUYCVYSEVYBXOWUTVYTVY
        BQEYNVYBVXQVXJEYKYMYCUWSUWTUXBVXIVXMUYOMZVXOUYOMZVXPUYOMVXIWVAAUYSXIZVV
        IUYSMWVAUYCWVCVXHUYCVXLUDMZWVCUYCWVDVXNUDMZUYCWVDWVENZUYCVYSUYCWVFVSVYT
        VYBEUXCYJUXDZUXEUYCWUPWVDWVCVSWUQAVYBVXLYOYJYPYCVXIDUYSVVIDVUGUYSKUOVUF
        UXFUXGZUYCVXFVXGUXHYQWVAAUYSYRYSVXIWVBBUYSXIZVVJUYSMWVBUYCWVIVXHUYCWVEW
        VIUYCWVDWVEWVGUXIUYCWURWVEWVIVSWUSBVYBVXNYOYJYPYCVXIDUYSVVJWVHUYCVXFVXG
        WPYQWVBBUYSYRYSVXMVXOUXJYTUXLVXDVUPVXKUYOVXDVUOVXJUYMVUNVVKFUXKWRYFUXMU
        XNUXOUXPVVFUBUYFHUXTUYAUXQUYFVUPUBUXRYTUXSUYB $.
    $}

    $( The preimage of any open set (in the complex topology) under a
       measurable function is measurable.  (See also ~ cncombf , which explains
       why ` A e. dom vol ` is too weak a condition for this theorem.)
       (Contributed by Mario Carneiro, 25-Aug-2014.) $)
    mbfimaopn $p |- ( ( F e. MblFn /\ A e. J ) -> ( `' F " A ) e. dom vol ) $=
      ( vx vy vt vw cioo cq cxp cima cr cv ci cmul co caddc cmpt2 eqid cbvmpt2v
      crn oveq1 weq oveq2 oveq2d mbfimaopnlem ) EFAIJJKLZBGHMMGNZOHNZPQZRQZSCEF
      UHUHENZFNZKSUBZDGHEFMMULUMOUNPQZRQUMUKRQUIUMUKRUCHFUDUKUPUMRUJUNOPUEUFUAU
      HTUOTUG $.

    mbfimaopn2.2 $e |- K = ( J |`t B ) $.
    $( The preimage of any set open in the subspace topology of the range of
       the function is measurable.  (Contributed by Mario Carneiro,
       25-Aug-2014.) $)
    mbfimaopn2 $p |- ( ( ( F e. MblFn /\ F : A --> B /\ B C_ CC ) /\
      C e. K ) -> ( `' F " C ) e. dom vol ) $=
      ( vu cmbf wcel cc cima cdm cin wceq ctop cvv syl eqeltrd wf wss ccnv cvol
      w3a cv wrex crest co eleq2i wb cnfldtop simp3 cnex sylancl elrest sylancr
      ssexg syl5bb wa wfun simpl2 ffun inpreima mbfimaopn 3ad2antl1 fimacnv fdm
      3syl eqtr4d simpl1 mbfdm inmbl syl2anc imaeq2 eleq1d syl5ibrcom rexlimdva
      sylbid imp ) DJKZABDUAZBLUBZUEZCFKZDUCZCMZUDNZKZWDWECIUFZBOZPZIEUGZWIWECE
      BUHUIZKZWDWMFWNCHUJWDEQKBRKZWOWMUKEGULWDWCLRKWPWAWBWCUMUNBLRURUOICBEQRUPU
      QUSWDWLWIIEWDWJEKZUTZWIWLWFWKMZWHKWRWSWFWJMZWFBMZOZWHWRWBDVAWSXBPWAWBWCWQ
      VBZABDVCWJBDVDVIWRWTWHKZXAWHKXBWHKWAWBWQXDWCWJDEGVEVFWRXADNZWHWRWBXAXEPXC
      WBXAAXEABDVGABDVHVJSWRWAXEWHKWAWBWCWQVKDVLSTWTXAVMVNTWLWGWSWHCWKWFVOVPVQV
      RVSVT $.
  $}

  ${
    $d g x A $.  $d g x B $.  $d g x F $.  $d g x G $.
    $( The composition of a continuous function with a measurable function is
       measurable.  (More generally, ` G ` can be a Borel-measurable function,
       but notably the condition that ` G ` be only measurable is too weak, the
       usual counterexample taking ` G ` to be the Cantor function and ` F `
       the indicator function of the ` G ` -image of a nonmeasurable set, which
       is a subset of the Cantor set and hence null and measurable.)
       (Contributed by Mario Carneiro, 25-Aug-2014.) $)
    cncombf $p |- ( ( F e. MblFn /\ F : A --> B /\ G e. ( B -cn-> CC ) ) ->
                    ( G o. F ) e. MblFn ) $=
      ( vx vg wcel wf cc co ccom cr cre ccnv cima cim wa wss wceq cvv ccncf w3a
      cmbf cpm cv cvol cdm cioo crn simp3 cncff syl simp2 fco syl2anc fdm mbfdm
      wral 3ad2ant1 eqeltrrd mblss cnex elpm2r mpanl12 recncf a1i cncfco adantr
      reex cnvco imaeq1i imaco eqtri ccnfld ctopn crest simplll simpllr cncfrss
      cfv adantl ctg ccn simpr ax-resscn eqid tgioo2 cncfcn sylancl eleqtrd ctb
      retopbas bastg ax-mp simplr sseldi mbfimaopn2 syl31anc syl5eqel ralrimiva
      cnima 3adantl3 coeq1 coass syl6eq cnveqd imaeq1d eleq1d rspcv sylc imcncf
      jca ismbf1 sylanbrc ) CUCGZABCHZDBIUAJGZUBZDCKZILUDJGZMXSKZNZEUEZOZUFUGZG
      ZPXSKZNZYCOZYEGZQZEUHUIZURXSUCGXRAIXSHZALRZXTXRBIDHZXPYMXRXQYOXOXPXQUJZBI
      DUKULXOXPXQUMZABIDCUNUOXRAYEGYNXRCUGZAYEXRXPYRASYQABCUPULXOXPYRYEGXQCUQUS
      UTAVAULITGLTGYMYNQXTVBVIILAXSTTVCVDUOXRYKEYLXRYCYLGZQZYFYJYTMDKZBLUAJZGZF
      UEZCKZNZYCOZYEGZFUUBURZYFXRUUCYSXRBILDMYPMILUAJZGXRVEVFVGVHXOXPYSUUIXQXOX
      PQZYSQZUUHFUUBUULUUDUUBGZQZUUGCNZUUDNZYCOZOZYEUUGUUOUUPKZYCOUURUUFUUSYCUU
      DCVJVKUUOUUPYCVLVMUUNXOXPBIRZUUQVNVOVTZBVPJZGZUURYEGXOXPYSUUMVQXOXPYSUUMV
      RUUMUUTUULBLUUDVSWAZUUNUUDUVBYLWBVTZWCJZGYCUVEGUVCUUNUUDUUBUVFUULUUMWDUUN
      UUTLIRUUBUVFSUVDWEBLUVAUVBUVEUVAWFZUVBWFZUVAUVGWGWHWIWJUUNYLUVEYCYLWKGYLU
      VERWLYLWKWMWNUUKYSUUMWOWPYCUUDUVBUVEXAUOABUUQCUVAUVBUVGUVHWQWRWSWTXBZUUHY
      FFUUAUUBUUDUUASZUUGYDYEUVJUUFYBYCUVJUUEYAUVJUUEUUACKYAUUDUUACXCMDCXDXEXFX
      GXHXIXJYTPDKZUUBGZUUIYJXRUVLYSXRBILDPYPPUUJGXRXKVFVGVHUVIUUHYJFUVKUUBUUDU
      VKSZUUGYIYEUVMUUFYHYCUVMUUEYGUVMUUEUVKCKYGUUDUVKCXCPDCXDXEXFXGXHXIXJXLWTE
      XSXMXN $.
  $}

  ${
    $d x A $.  $d x F $.
    $( A continuous function is measurable.  (Contributed by Mario Carneiro,
       18-Jun-2014.)  (Revised by Mario Carneiro, 26-Mar-2015.) $)
    cnmbf $p |- ( ( A e. dom vol /\ F e. ( A -cn-> CC ) ) ->
                    F e. MblFn ) $=
      ( vx wcel cc ccncf co cre ccom ccnv cima cim wss cvv cfv ccn eqid syl2anc
      wa cr cvol cdm cpm cv cioo crn wral cmbf wf cncff mblss cnex reex mpanl12
      elpm2r syl2anr ctg crest simpll simplr recncf cncfco ccnfld wceq ad2antrr
      a1i ctopn ax-resscn syl6ss tgioo2 cncfcn sylancl rerest syl eqtrd eleqtrd
      oveq1d retopbas bastg ax-mp simpr sseldi cnima subopnmbl imcncf ralrimiva
      ctb jca ismbf1 sylanbrc ) AUAUBZDZBAEFGDZSZBETUCGDZHBIZJCUDZKZWKDZLBIZJWQ
      KZWKDZSZCUEUFZUGBUHDWMAEBUIZATMZWOWLAEBUJAUKZENDTNDXEXFSWOULUMETABNNUOUNU
      PWNXCCXDWNWQXDDZSZWSXBXIWLWRXDUQOZAURGZDZWSWLWMXHUSZXIWPXKXJPGZDWQXJDZXLX
      IWPATFGZXNXIAETBHWLWMXHUTZHETFGZDXIVAVFVBXIXPVCVGOZAURGZXJPGZXNXIAEMTEMXP
      YAVDXIATEWLXFWMXHXGVEZVHVIVHATXSXTXJXSQZXTQXSYCVJVKVLXIXTXKXJPXIXFXTXKVDY
      BAXJXSYCXJQVMVNVQVOZVPXIXDXJWQXDWGDXDXJMVRXDWGVSVTWNXHWAWBZWQWPXKXJWCRAWR
      XKXKQZWDRXIWLXAXKDZXBXMXIWTXNDXOYGXIWTXPXNXIAETBLXQLXRDXIWEVFVBYDVPYEWQWT
      XKXJWCRAXAXKYFWDRWHWFCBWIWJ $.
  $}

  ${
    $d r A $.  $d r x y F $.  $d r x y G $.  $d r x y ph $.
    mbfadd.1 $e |- ( ph -> F e. MblFn ) $.
    mbfadd.2 $e |- ( ph -> G e. MblFn ) $.
    ${
      mbfadd.3 $e |- ( ph -> F : A --> RR ) $.
      mbfadd.4 $e |- ( ph -> G : A --> RR ) $.
      $( The sum of two measurable functions is measurable.  (Contributed by
         Mario Carneiro, 15-Aug-2014.) $)
      mbfaddlem $p |- ( ph -> ( F oF + G ) e. MblFn ) $=
        ( vr caddc co cr wcel wa syl cq clt wbr adantr wb vy vx cof cvol cdm cv
        readdcl adantl wf wceq fdm cmbf mbfdm eqeltrrd inidm off ccnv cpnf cioo
        cima cmin cin ciun eliun cfv r19.42v simplr ffvelrnda ltsubaddd ltsub23
        wrex syl3anc anbi2d ancom syl6bb rexbidva wi resubcld rexlimdva qbtwnre
        qre lttr 3expia syl2anc impbid bitrd wfn ffn eqidd ofval breq2d 3bitr4d
        rexrd elioopnf biantrurd bitr4d anbi12d pm5.32da syl5bb elpreima anandi
        cxr elin 3bitr4g rexbidv eqrdv cn cdom wral cen qnnen endom ax-mp inmbl
        mbfima ad2antrr ralrimiva iunmbl2 sylancr ismbf3d ) AUABCDJUCKZAUBUABBB
        JLLLCDUDUEZYBUBUFZLMUAUFZLMZNYCYDJKLMAYCYDUGUHGHACUEZBYBABLCUIZYFBUJGBL
        CUKOACULMZYFYBMECUMOUNZYIBUOZUPZAYENZIPCUQIUFZURUSKZUTZDUQYDYMVAKZURUSK
        ZUTZVBZVCZYAUQYDURUSKZUTZYBYLUBYTUUBYCYTMYCYSMZIPVKZYLYCUUBMZIYCPYSVDYL
        YCBMZYCCVEZYNMZYCDVEZYQMZNZNZIPVKZUUFYCYAVEZUUAMZNZUUDUUEUUMUUFUUKIPVKZ
        NYLUUPUUFUUKIPVFYLUUFUUQUUOYLUUFNZYMUUGQRZYPUUIQRZNZIPVKZYDUUNQRZUUQUUO
        UURYDUUIVAKZUUGQRZYDUUGUUIJKZQRUVBUVCUURYDUUIUUGAYEUUFVGZYLBLYCDABLDUIZ
        YEHSVHZYLBLYCCAYGYEGSVHZVIUURUVBUVDYMQRZUUSNZIPVKZUVEUURUVAUVLIPUURYMPM
        ZNZUVAUUSUVKNUVLUVOUUTUVKUUSUVOYEYMLMZUUILMZUUTUVKTUURYEUVNUVGSZUVNUVPU
        URYMWAUHZUURUVQUVNUVISZYDYMUUIVJVLVMUUSUVKVNVOVPUURUVMUVEUURUVLUVEIPUVO
        UVDLMZUVPUUGLMZUVLUVEVQUURUWAUVNUURYDUUIUVGUVIVRZSUVSUURUWBUVNUVJSZUVDY
        MUUGWBVLVSUURUWAUWBUVEUVMVQUWCUVJUWAUWBUVEUVMIUVDUUGVTWCWDWEWFUURUUNUVF
        YDQYLBBUUGUUIJBCDYBYBYCACBWGZYEAYGUWEGBLCWHOSZADBWGZYEAUVHUWGHBLDWHOSZA
        BYBMYEYISZUWIYJUURUUGWIUURUUIWIWJWKWLUURUUKUVAIPUVOUUHUUSUUJUUTUVOUUHUW
        BUUSNZUUSUVOYMXBMUUHUWJTUVOYMUVSWMYMUUGWNOUVOUWBUUSUWDWOWPUVOUUJUVQUUTN
        ZUUTUVOYPXBMUUJUWKTUVOYPUVOYDYMUVRUVSVRWMYPUUIWNOUVOUVQUUTUVTWOWPWQVPUU
        RUUOUUNLMZUVCNZUVCUURYDXBMUUOUWMTUURYDUVGWMYDUUNWNOUURUWLUVCYLBLYCYAABL
        YAUIZYEYKSVHWOWPWLWRWSYLUUCUULIPYLYCYOMZYCYRMZNUUFUUHNZUUFUUJNZNUUCUULY
        LUWOUWQUWPUWRYLUWEUWOUWQTUWFBYCYNCWTOYLUWGUWPUWRTUWHBYCYQDWTOWQYCYOYRXC
        UUFUUHUUJXAXDXEYLYABWGZUUEUUPTAUWSYEAUWNUWSYKBLYAWHOSBYCUUAYAWTOWLWSXFY
        LPXGXHRZYSYBMZIPXIYTYBMPXGXJRUWTXKPXGXLXMYLUXAIPAUXAYEUVNAYOYBMZYRYBMZU
        XAAYHYGUXBEGBYMURCXOWDADULMUVHUXCFHBYPURDXOWDYOYRXNWDXPXQPYSIXRXSUNXT
        $.
    $}

    $( The sum of two measurable functions is measurable.  (Contributed by
       Mario Carneiro, 15-Aug-2014.) $)
    mbfadd $p |- ( ph -> ( F oF + G ) e. MblFn ) $=
      ( vx caddc co cdm cfv cmpt cmbf cc wcel syl eqid wa eqidd cr fmptd cof cv
      cin cvol wf wfn mbff ffn mbfdm offval cre cim elin simplbi ffvelrn syl2an
      simprbi readdd mpteq2dva inmbl syl2anc recld offval2 eqtr4d cres wss wceq
      inss1 resmpt ax-mp feqmptd eqeltrrd mbfres syl5eqelr ismbfcn2 mpbid inss2
      simpld mbfaddlem eqeltrd imaddd imcld simprd addcld mpbir2and ) ABCGUAZHF
      BIZCIZUCZFUBZBJZWJCJZGHZKZLAFWGWHWKWLGWIBCUDIZWOAWGMBUEZBWGUFABLNZWPDBUGO
      ZWGMBUHOAWHMCUEZCWHUFACLNZWSECUGOZWHMCUHOAWQWGWONZDBUIOZAWTWHWONZECUIOZWI
      PAWJWGNZQWKRAWJWHNZQWLRUJAWNLNFWIWMUKJZKZLNFWIWMULJZKZLNAXIFWIWKUKJZKZFWI
      WLUKJZKZWFHZLAXIFWIXLXNGHZKXPAFWIXHXQAWJWINZQZWKWLAWPXFWKMNXRWRXRXFXGWJWG
      WHUMZUNWGMWJBUOUPZAWSXGWLMNXRXAXRXFXGXTUQWHMWJCUOUPZURUSAFWIXLXNGXMXOWOSS
      AXBXDWIWONZXCXEWGWHUTVAZXSWKYAVBZXSWLYBVBZAXMRAXORVCVDAWIXMXOAXMLNZFWIWKU
      LJZKZLNZAFWIWKKZLNYGYJQAYKFWGWKKZWIVEZLWIWGVFYMYKVGWGWHVHFWGWIWKVIVJAYLLN
      YCYMLNABYLLAFWGMBWRVKDVLYDWIYLVMVAVNAFWIWKYAVOVPZVRAXOLNZFWIWLULJZKZLNZAF
      WIWLKZLNYOYRQAYSFWHWLKZWIVEZLWIWHVFUUAYSVGWGWHVQFWHWIWLVIVJAYTLNYCUUALNAC
      YTLAFWHMCXAVKEVLYDWIYTVMVAVNAFWIWLYBVOVPZVRAFWIXLSXMYEXMPTAFWIXNSXOYFXOPT
      VSVTAXKYIYQWFHZLAXKFWIYHYPGHZKUUCAFWIXJUUDXSWKWLYAYBWAUSAFWIYHYPGYIYQWOSS
      YDXSWKYAWBZXSWLYBWBZAYIRAYQRVCVDAWIYIYQAYGYJYNWCAYOYRUUBWCAFWIYHSYIUUEYIP
      TAFWIYPSYQUUFYQPTVSVTAFWIWMXSWKWLYAYBWDVOWEVT $.

    $( The difference of two measurable functions is measurable.  (Contributed
       by Mario Carneiro, 5-Sep-2014.) $)
    mbfsub $p |- ( ph -> ( F oF - G ) e. MblFn ) $=
      ( vx cmin cof co cdm cmpt caddc cmbf wcel wa syl eqidd syl2anc eqeltrrd
      cc cin cv cneg wf mbff elin simplbi ffvelrn syl2an simprbi negsubd eqcomd
      cfv mpteq2dva cvol wfn ffn mbfdm eqid offval inmbl negcld offval2 3eqtr4d
      cres wceq inss1 resmpt mp1i feqmptd mbfres inss2 mbfneg mbfadd eqeltrd
      wss ) ABCGHIZFBJZCJZUAZFUBZBUMZKZFVTWACUMZUCZKZLHIZMAFVTWBWDGIZKFVTWBWELI
      ZKVQWGAFVTWHWIAWAVTNZOZWIWHWKWBWDAVRTBUDZWAVRNZWBTNWJABMNZWLDBUEPZWJWMWAV
      SNZWAVRVSUFZUGVRTWABUHUIZAVSTCUDZWPWDTNWJACMNZWSECUEPZWJWMWPWQUJVSTWACUHU
      IZUKULUNAFVRVSWBWDGVTBCUOJZXCAWLBVRUPWOVRTBUQPAWSCVSUPXAVSTCUQPAWNVRXCNZD
      BURPZAWTVSXCNZECURPZVTUSAWMOWBQAWPOWDQUTAFVTWBWELWCWFXCTTAXDXFVTXCNZXEXGV
      RVSVARZWRWKWDXBVBAWCQAWFQVCVDAWCWFAFVRWBKZVTVEZWCMVTVRVPXKWCVFAVRVSVGFVRV
      TWBVHVIAXJMNXHXKMNABXJMAFVRTBWOVJDSXIVTXJVKRSAFVTWDTXBAFVSWDKZVTVEZFVTWDK
      ZMVTVSVPXMXNVFAVRVSVLFVSVTWDVHVIAXLMNXHXMMNACXLMAFVSTCXAVJESXIVTXLVKRSVMV
      NVO $.
  $}

  ${
    $d x A $.  $d x C $.  $d x ph $.
    mbfmulc2.1 $e |- ( ph -> C e. CC ) $.
    mbfmulc2.2 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    mbfmulc2.3 $e |- ( ph -> ( x e. A |-> B ) e. MblFn ) $.
    $( A complex constant times a measurable function is measurable.
       (Contributed by Mario Carneiro, 17-Aug-2014.) $)
    mbfmulc2 $p |- ( ph -> ( x e. A |-> ( C x. B ) ) e. MblFn ) $=
      ( cmul co cmpt cmbf wcel cfv caddc cc cr adantr offval2 cre cim cneg cvol
      csn cxp cof cdm cvv mbfdm2 cv recld recnd mbfmptcl mulcld ovexd fconstmpt
      wceq a1i eqidd imcld renegcld cmin negsubd mulneg1d oveq2d remuld 3eqtr4d
      mpteq2dva eqtrd ismbfcn2 mpbid simpld eqid fmptd mbfmulc2re simprd mbfadd
      wa eqeltrrd immuld eqtr4d mpbir2and ) ABCEDJKZLMNBCWDUAOZLZMNBCWDUBOZLZMN
      ACEUAOZUEUFZBCDUAOZLZJUGZKZCEUBOZUCZUEUFZBCDUBOZLZWMKZPUGZKZWFMAXBBCWIWKJ
      KZWPWRJKZPKZLWFABCXCXDPWNWTUDUHZQUIABCDFIHUJZABUKCNZVSZWIWKXIWIAWIRNXHAEG
      ULZSZUMXIWKXIDABCDFIHUNZULZUMZUOZXIWPWRJUPABCWIWKJWJWLXFRRXGXKXMWJBCWILUR
      ABCWIUQUSZAWLUTZTABCWPWRJWQWSXFRRXGAWPRNXHAWOAEGVAZVBZSXIDXLVAZWQBCWPLURA
      BCWPUQUSAWSUTZTTABCXEWEXIXCWOWRJKZUCZPKXCYBVCKXEWEXIXCYBXOXIWOWRXIWOAWORN
      XHXRSZUMZXIWRXTUMZUOVDXIXDYCXCPXIWOWRYEYFVEVFXIEDAEQNXHGSZXLVGVHVIVJAWNWT
      ACWIWLAWLMNZWSMNZABCDLMNYHYIVSIABCDXLVKVLZVMZXJABCWKQWLXNWLVNVOZVPACWPWSA
      YHYIYJVQZXSABCWRQWSYFWSVNVOZVPVRVTAWJWSWMKZCWOUEUFZWLWMKZXAKZWHMAYRBCWIWR
      JKZWOWKJKZPKZLWHABCYSYTPYOYQXFUIUIXGXIWIWRJUPXIWOWKJUPABCWIWRJWJWSXFRRXGX
      KXTXPYATABCWOWKJYPWLXFRRXGYDXMYPBCWOLURABCWOUQUSXQTTABCWGUUAXIEDYGXLWAVIW
      BAYOYQACWIWSYMXJYNVPACWOWLYKXRYLVPVRVTABCWDXIEDYGXLUOVKWC $.
  $}

  ${
    $d m n x y z A $.  $d m y z B $.  $d n t x y z ph $.  $d m n x y z Z $.
    $d m t z G $.
    mbfsup.1 $e |- Z = ( ZZ>= ` M ) $.
    mbfsup.2 $e |- G = ( x e. A |-> sup ( ran ( n e. Z |-> B ) , RR , < ) ) $.
    mbfsup.3 $e |- ( ph -> M e. ZZ ) $.
    mbfsup.4 $e |- ( ( ph /\ n e. Z ) -> ( x e. A |-> B ) e. MblFn ) $.
    mbfsup.5 $e |- ( ( ph /\ ( n e. Z /\ x e. A ) ) -> B e. RR ) $.
    mbfsup.6 $e |- ( ( ph /\ x e. A ) -> E. y e. RR A. n e. Z B <_ y ) $.
    $( The supremum of a sequence of measurable, real-valued functions is
       measurable.  Note that in this and related theorems, ` B ( n , x ) ` is
       a function of both ` n ` and ` x ` , since it is an ` n ` -indexed
       sequence of functions on ` x ` .  (Contributed by Mario Carneiro,
       14-Aug-2014.)  (Revised by Mario Carneiro, 7-Sep-2014.) $)
    mbfsup $p |- ( ph -> G e. MblFn ) $=
      ( vz cr clt wcel wbr vt vm cmpt crn csup cv wss wne cle wral wrex anassrs
      wa c0 wf an32s eqid fmptd frn syl cdm cuz cz uzid syl6eleqr adantr dmmptd
      cfv eleqtrrd ne0i dm0rn0 necon3bii sylib wfn wb breq1 ralrn nffvmpt1 nfcv
      ffn nfbr nfv weq fveq2 breq1d cbvral simpr fvmpt2 syl2anc ralbidva syl5bb
      wceq bitrd rexbidv mpbird suprcl syl3anc ccnv cpnf cioo co cima ciun cvol
      cvv ltso supex sylancl breq2d w3a 3jca adantlr simplr suprlub breq2 rexrn
      cbvrex cid fvmpt2i adantl eqcomd sylan9eqr 3bitrd ralrimiva nfmpt1 nfcxfr
      rexbidva nffv nfrex bibi12d r19.21bi elioopnf ffvelrnda biantrurd 3bitr4d
      nfbi bitr4d elpreima cn cdom cxr ad2antlr adantllr pm5.32da eliun r19.42v
      rexr syl6bb eqrdv cen zex uzssz ssdomg eqbrtri znnen domentr mp2an mbfima
      mp2 cmbf iunmbl2 sylancr eqeltrd ismbf3d ) AUADGABDFIEUCZUDZQRUEZQGABUFZD
      SZUMZUVFQUGZUVFUNUHZPUFZCUFZUITZPUVFUJZCQUKZUVGQSUVJIQUVEUOZUVKUVJFIEQUVE
      AFUFZISZUVIEQSZAUVTUVIUWANULZUPZUVEUQZURZIQUVEUSUTZUVJUVEVAZUNUHZUVLUVJHU
      WGSUWHUVJHIUWGAHISUVIAHHVBVHZIAHVCSHUWISLHVDUTJVEVFUVJFUVEIEQUWDUWCVGVIUW
      GHVJUTUWGUNUVFUNUVEVKVLVMZUVJUVQEUVNUITZFIUJZCQUKOUVJUVPUWLCQUVJUVPUBUFZU
      VEVHZUVNUITZUBIUJZUWLUVJUVEIVNZUVPUWPVOUVJUVRUWQUWEIQUVEVTUTZUVOUWOPUBIUV
      EUVMUWNUVNUIVPVQUTUWPUVSUVEVHZUVNUITZFIUJUVJUWLUWOUWTUBFIFUWNUVNUIFIEUWMV
      RZFUIVSFUVNVSWAUWTUBWBUBFWCZUWNUWSUVNUIUWMUVSUVEWDZWEWFUVJUWTUWKFIUVJUVTU
      MZUWSEUVNUIUXDUVTUWAUWSEWLUVJUVTWGUWCFIEQUVEUWDWHWIWEWJWKWMWNWOZCPUVFWPWQ
      KURZAUAUFZQSZUMZGWRUXGWSWTXAZXBZFIBDEUCZWRUXJXBZXCZXDVAZUXIPUXKUXNUXIUVMD
      SZUVMGVHZUXJSZUMZUXPUVMUXLVHZUXJSZFIUKZUMZUVMUXKSZUVMUXNSZUXIUXPUXRUYBUXI
      UXPUMZUXGUXQRTZUXGUXTRTZFIUKZUXRUYBUXIUYGUYIVOZPDUXIUXGUVHGVHZRTZUXGUVHUX
      LVHZRTZFIUKZVOZBDUJUYJPDUJUXIUYPBDUXIUVIUMZUYLUXGUVGRTZUXGUVMRTZPUVFUKZUY
      OUYQUYKUVGUXGRUYQUVIUVGXESUYKUVGWLUXIUVIWGQUVFRXFXGBDUVGXEGKWHXHXIUYQUVKU
      VLUVQXJZUXHUYRUYTVOAUVIVUAUXHUVJUVKUVLUVQUWFUWJUXEXKXLAUXHUVIXMCPPUVFUXGX
      NWIUYQUYTUXGUWNRTZUBIUKZUYOUYQUWQUYTVUCVOAUVIUWQUXHUWRXLUYSVUBPUBIUVEUVMU
      WNUXGRXOXPUTVUCUXGUWSRTZFIUKZUYQUYOVUBVUDUBFIFUXGUWNRFUXGVSFRVSUXAWAVUDUB
      WBUXBUWNUWSUXGRUXCXIXQAUVIVUEUYOVOUXHUVJVUDUYNFIUXDUWSUYMUXGRUVTUVJUWSEXR
      VHZUYMFIEUVEUWDXSUVJUYMVUFUVIUYMVUFWLABDEUXLUXLUQZXSXTYAYBXIYGXLWKWMYCYDU
      YPUYJBPDUYPPWBUYGUYIBBUXGUXQRBUXGVSZBRVSZBUVMGBGBDUVGUCKBDUVGYEYFBUVMVSYH
      WAUYHBFIBIVSBUXGUXTRVUHVUIBDEUVMVRWAYIYPBPWCZUYLUYGUYOUYIVUJUYKUXQUXGRUVH
      UVMGWDXIVUJUYNUYHFIVUJUYMUXTUXGRUVHUVMUXLWDXIWNYJWFVMYKUYFUXRUXQQSZUYGUMZ
      UYGUYFUXGUUASZUXRVULVOUXHVUMAUXPUXGUUGUUBZUXGUXQYLUTUYFVUKUYGUXIDQUVMGADQ
      GUOZUXHUXFVFYMYNYQUYFUYAUYHFIUYFUVTUMZUYAUXTQSZUYHUMZUYHVUPVUMUYAVURVOUYF
      VUMUVTVUNVFUXGUXTYLUTAUXPUVTUYHVURVOZUXHAUVTUXPVUSAUVTUMZUXPUMVUQUYHVUTDQ
      UVMUXLVUTBDEQUXLUWBVUGURZYMYNUPUUCYQYGYOUUDUXIGDVNZUYDUXSVOAVVBUXHAVUOVVB
      UXFDQGVTUTVFDUVMUXJGYRUTUYEUVMUXMSZFIUKZUXIUYCFUVMIUXMUUEUXIVVDUXPUYAUMZF
      IUKZUYCAVVDVVFVOUXHAVVCVVEFIVUTUXLDVNZVVCVVEVOVUTDQUXLUOZVVGVVADQUXLVTUTD
      UVMUXJUXLYRUTYGVFUXPUYAFIUUFUUHWKYOUUIUXIIYSYTTZUXMUXOSZFIUJZUXNUXOSIVCYT
      TVCYSUUJTVVIIUWIVCYTJVCXESUWIVCUGUWIVCYTTUUKHUULUWIVCXEUUMUUSUUNUUOIVCYSU
      UPUUQAVVKUXHAVVJFIVUTUXLUUTSVVHVVJMVVADUXGWSUXLUURWIYDVFIUXMFUVAUVBUVCUVD
      $.
  $}

  ${
    $d m n r x y z A $.  $d m n r x y z ph $.  $d m n r x y z Z $.
    $d m r y z B $.
    mbfinf.1 $e |- Z = ( ZZ>= ` M ) $.
    mbfinf.2 $e |- G = ( x e. A |-> inf ( ran ( n e. Z |-> B ) , RR , < ) ) $.
    mbfinf.3 $e |- ( ph -> M e. ZZ ) $.
    mbfinf.4 $e |- ( ( ph /\ n e. Z ) -> ( x e. A |-> B ) e. MblFn ) $.
    mbfinf.5 $e |- ( ( ph /\ ( n e. Z /\ x e. A ) ) -> B e. RR ) $.
    mbfinf.6 $e |- ( ( ph /\ x e. A ) -> E. y e. RR A. n e. Z y <_ B ) $.
    $( The infimum of a sequence of measurable, real-valued functions is
       measurable.  (Contributed by Mario Carneiro, 7-Sep-2014.)  (Revised by
       AV, 13-Sep-2020.) $)
    mbfinf $p |- ( ph -> G e. MblFn ) $=
      ( vm cr wcel wa wceq vr vz cneg cmpt crn clt csup cmbf cinf cv wss c0 wne
      crab cle wbr wral wrex wf anass1rs eqid fmptd frn syl cdm cuz cfv cz uzid
      syl6eleqr adantr dmmptd eleqtrrd ne0i dm0rn0 necon3bii sylib wfn wb breq2
      ffn ralrn nfcv nffvmpt1 nfbr nfv fveq2 breq2d cbvral simpr fvmpt2 syl2anc
      ralbidva syl5bb bitrd rexbidv mpbird infrenegsup syl3anc rabid cc adantlr
      wal recnd simplr negcon2 eqcom syl6bb eqeq1d negex mpan2 adantl ralrimiva
      cvv 3bitr4d nfeq1 nfbi bibi12d sylibr r19.21bi rexbidva renegcld pm5.32da
      fvelrnb sseld pm4.71rd bitr4d alrimiv nfrab1 cleqf negeqd eqtrd mpteq2dva
      supeq1d syl5eq ltso supex a1i anassrs mbfneg renegcl ad2antrl lenegd impr
      biimpd ralbidv rspcev rexlimddv mbfsup eqeltrd ) AGBDFIEUCZUDZUEZQUFUGZUC
      ZUDZUHAGBDFIEUDZUEZQUFUIZUDUUPKABDUUSUUOABUJDRZSZUUSUAUJZUCZUURRZUAQUNZQU
      FUGZUCZUUOUVAUURQUKZUURULUMZCUJZUBUJZUOUPZUBUURUQZCQURZUUSUVGTUVAIQUUQUSZ
      UVHUVAFIEQUUQAFUJZIRZUUTEQRZNUTZUUQVAZVBZIQUUQVCVDUVAUUQVEZULUMZUVIUVAHUW
      BRUWCUVAHIUWBAHIRUUTAHHVFVGZIAHVHRHUWDRLHVIVDJVJVKUVAFUUQIEQUVTUVSVLVMUWB
      HVNVDUWBULUURULUUQVOVPVQUVAUVNUVJEUOUPZFIUQZCQUROUVAUVMUWFCQUVAUVMUVJPUJZ
      UUQVGZUOUPZPIUQZUWFUVAUUQIVRZUVMUWJVSUVAUVOUWKUWAIQUUQWAVDZUVLUWIUBPIUUQU
      VKUWHUVJUOVTWBVDUWJUVJUVPUUQVGZUOUPZFIUQUVAUWFUWIUWNPFIFUVJUWHUOFUVJWCFUO
      WCFIEUWGWDZWEUWNPWFUWGUVPTZUWHUWMUVJUOUWGUVPUUQWGZWHWIUVAUWNUWEFIUVAUVQSZ
      UWMEUVJUOUWRUVQUVRUWMETZUVAUVQWJUVSFIEQUUQUVTWKWLZWHWMWNWOWPWQCUBUAUURWRW
      SUVAUVFUUNUVAQUVEUUMUFUVAUVBUVERZUVBUUMRZVSZUAXCUVEUUMTUVAUXCUAUXAUVBQRZU
      VDSZUVAUXBUVDUAQWTUVAUXEUXDUXBSUXBUVAUXDUVDUXBUVAUXDSZUWHUVCTZPIURZUWGUUL
      VGZUVBTZPIURZUVDUXBUXFUXGUXJPIUXFUXGUXJVSZPIUXFUWMUVCTZUVPUULVGZUVBTZVSZF
      IUQUXLPIUQUXFUXPFIUXFUVQSZEUVCTZUUKUVBTZUXMUXOUXQUXRUVBUUKTZUXSUXQEXARZUV
      BXARUXRUXTVSUVAUVQUYAUXDUWREUVSXDXBUXQUVBUVAUXDUVQXEXDEUVBXFWLUVBUUKXGXHU
      XQUWMEUVCUVAUVQUWSUXDUWTXBXIUXQUXNUUKUVBUVQUXNUUKTZUXFUVQUUKXNRUYBEXJFIUU
      KXNUULUULVAZWKXKXLXIXOXMUXLUXPPFIUXGUXJFFUWHUVCUWOXPFUXIUVBFIUUKUWGWDXPXQ
      UXPPWFUWPUXGUXMUXJUXOUWPUWHUWMUVCUWQXIUWPUXIUXNUVBUWGUVPUULWGXIXRWIXSXTYA
      UXFUWKUVDUXHVSUVAUWKUXDUWLVKPIUVCUUQYDVDUXFUULIVRZUXBUXKVSUXFIQUULUSZUYDU
      VAUYEUXDUVAFIUUKQUULUWREUVSYBUYCVBZVKIQUULWAVDPIUVBUULYDVDXOYCUVAUXBUXDUV
      AUUMQUVBUVAUYEUUMQUKUYFIQUULVCVDYEYFYGWNYHUAUVEUUMUVDUAQYIUAUUMWCYJXSYNYK
      YLYMYOABDUUNXNUUNXNRUVAQUUMUFYPYQYRABUBDUUKFBDUUNUDZHIJUYGVALAUVQSBDEQAUV
      QUUTUVRNYSMYTAUVQUUTSSENYBUVAUWFUUKUVKUOUPZFIUQZUBQURZCQOUVAUVJQRZUWFSSUV
      JUCZQRZUUKUYLUOUPZFIUQZUYJUYKUYMUVAUWFUVJUUAUUBUVAUYKUWFUYOUVAUYKSZUWFUYO
      UYPUWEUYNFIUYPUVQSUVJEUVAUYKUVQXEUVAUVQUVRUYKUVSXBUUCWMUUEUUDUYIUYOUBUYLQ
      UVKUYLTUYHUYNFIUVKUYLUUKUOVTUUFUUGWLUUHUUIYTUUJ $.
  $}

  ${
    $d i k n x y A $.  $d i k m y z B $.  $d i k y z H $.  $d i k n x y ph $.
    $d m M $.  $d i k m n x y z Z $.
    mbflimsup.1 $e |- Z = ( ZZ>= ` M ) $.
    mbflimsup.2 $e |- G = ( x e. A |-> ( limsup ` ( n e. Z |-> B ) ) ) $.
    mbflimsup.h $e |- H = ( m e. RR |->
      sup ( ( ( ( n e. Z |-> B ) " ( m [,) +oo ) ) i^i RR* ) , RR* , < ) ) $.
    mbflimsup.3 $e |- ( ph -> M e. ZZ ) $.
    mbflimsup.4 $e |- ( ( ph /\ x e. A )
                        -> ( limsup ` ( n e. Z |-> B ) ) e. RR ) $.
    mbflimsup.5 $e |- ( ( ph /\ n e. Z ) -> ( x e. A |-> B ) e. MblFn ) $.
    mbflimsup.6 $e |- ( ( ph /\ ( n e. Z /\ x e. A ) ) -> B e. RR ) $.
    $( The limit supremum of a sequence of measurable real-valued functions is
       measurable.  (Contributed by Mario Carneiro, 7-Sep-2014.)  (Revised by
       AV, 12-Sep-2020.) $)
    mbflimsup $p |- ( ph -> G e. MblFn ) $=
      ( cr wcel cle vi vy vz vk cv cuz cfv cmpt crn csup cinf cmbf clsp wa cima
      clt cxr cvv fvex eqeltri mptex a1i cz uzssz eqsstri zssre sstri cpnf wceq
      wss uzsup syl adantr limsupval2 c0 wne wral wrex imassrn wf anass1rs eqid
      wbr fmptd ltpnfd limsupgre syl3anc frn syl5ss cdm cin ineq1d sseqin2 mpbi
      fdm syl6eq uzid syl6eleqr eqnetrd imadisj necon3bii sylibr leidd wb rexrd
      ne0i limsuple mpbid ssralv mpsyl limsupgf ax-mp breq2 ralima mpbird breq1
      wfn ffn ralbidv rspcev syl2anc cres sseli syl2an adantll syl12anc adantlr
      simpr wi limsupgle syl211anc adantl ralbidva syl31anc ralrimiva mpteq2dva
      3syl syl5eq simpll an32s sylancr infxrre feqmptd reseq1d ffvelrn syl6eleq
      df-ima resmpt simplll uztrn2 simpllr dmmptd eluzelz dm0rn0 uzss syl6sseqr
      sylib sseldi resmptd fveq1d fvres eqtr3d breq1d eluzle biimt bitrd suprcl
      sylc ralrn eluz biimprd syldan fnfvelrn eqeltrrd suprub suprleub xrletrid
      impr eqtrd infeq1d 3eqtrd ad2ant2lr simprr ralrnmpt rexbidv mbfsup anasss
      expr rneqd breq2d mbfinf eqeltrd ) AGBCUAJFUAUEZUFUGZDUHZUIZRUPUJZUHZUIZR
      UPUKZUHZULAGBCFJDUHZUMUGZUHUXALABCUXCUWTABUECSZUNZUXCHJUOZUQUPUKZUXFRUPUK
      ZUWTUXEJEUXBHURMUXBURSUXEFJDJIUFUGZURKIUFUSUTVAVBJRVJZUXEJVCRJUXIVCKIVDVE
      ZVFVGZVBZAJUQUPUJVHVIZUXDAIVCSZUXNNIJKVKVLVMVNUXEUXFRVJUXFVOVPZUBUEZUCUEZ
      TWCZUCUXFVQZUBRVRZUXGUXHVIUXEUXFHUIZRHJVSUXERRHVTZUYBRVJUXEUXOJRUXBVTUXCV
      HUPWCUYCAUXOUXDNVMUXEFJDRUXBAFUEZJSZUXDDRSZQWAZUXBWBZWDUXEUXCOWEEUXBHIJMK
      WFWGZRRHWHVLWIUXEHWJZJWKZVOVPUXPUXEUYKJVOUXEUYKRJWKZJUXEUYJRJUXEUYCUYJRVI
      UYIRRHWOVLWLUXJUYLJVIUXLJRWMWNWPUXEIJSZJVOVPAUYMUXDAIUXIJAUXOIUXISNIWQVLK
      WRVMJIXFVLWSUXFVOUYKVOHJWTXAXBUXEUXCRSZUXCUXRTWCZUCUXFVQZUYAOUXEUYPUXCUXQ
      HUGZTWCZUBJVQZUXJUXEUYRUBRVQZUYSUXLUXEUXCUXCTWCZUYTUXEUXCOXCZUXEUXJJUQUXB
      VTZUXCUQSZVUAUYTXDUXMUXEFJDUQUXBUXEUYEUNDUYGXEUYHWDZUXEUXCOXEZUXCJUBEUXBH
      MXGWGXHUYRUBJRXIXJUXEHRXQZUXJUYPUYSXDRUQHVTVUGEUXBHMXKRUQHXRXLUXMUYOUYRUC
      UBRJHUXRUYQUXCTXMXNUUAXOUXTUYPUBUXCRUXQUXCVIZUXSUYOUCUXFUXQUXCUXRTXPXSXTY
      AUBUCUXFUUBWGUXERUXFUWSUPUXEUXFHJYBZUIUWSHJUUGUXEVUIUWRUXEVUIUAJUWMHUGZUH
      ZUWRUXEVUIUARVUJUHZJYBZVUKUXEHVULJUXEUARRHUYIUUCUUDUXJVUMVUKVIUXLUARJVUJU
      UHXLWPUXEUAJVUJUWQUXEUWMJSZUNZVUJUWQVUOVUJUXEUYCUWMRSZVUJRSZVUNUYIJRUWMUX
      LYCRRUWMHUUEYDZXEZVUOUWQVUOUWPRVJZUWPVOVPZUXRUXQTWCZUCUWPVQZUBRVRZUWQRSZV
      UOUWNRUWOVTZVUTVUOFUWNDRUWOVUOUYDUWNSZUNAUYEUXDUYFAUXDVUNVVGUUIVUNVVGUYEU
      XEIUYDUWMJKUUJZYEAUXDVUNVVGUUKQYFZUWOWBZWDZUWNRUWOWHVLZVUOUWOWJZVOVPVVAVU
      OVVMUWNVOVUOFUWOUWNDRVVJVVIUULVUOUWMVCSZUWMUWNSUWNVOVPAVUNVVNUXDAVUNUNZUW
      MUXISZVVNVVOUWMJUXIAVUNYHKUUFZIUWMUUMVLZYGZUWMWQUWNUWMXFYQWSVVMVOUWPVOUWO
      UUNXAUUQZVUOVUQUXRVUJTWCZUCUWPVQZVVDVURVUOVWBUDUEZUWOUGZVUJTWCZUDUWNVQZVU
      OVWFUWMVWCTWCZVWCUXBUGZVUJTWCZYIZUDUWNVQZVUOUWNJVJZVWJUDJVQZVWKVUOUWNUXIJ
      VUOVVPUWNUXIVJAVUNVVPUXDVVQYGIUWMUUOVLKUUPZVUOVUJVUJTWCZVWMVUOVUJVURXCVUO
      UXJVUCVUPVUJUQSVWOVWMXDUXJVUOUXLVBZUXEVUCVUNVUEVMZVUOJRUWMUXLUXEVUNYHUURZ
      VUSVUJJUWMUDEUXBHMYJYKXHVWJUDUWNJXIUVHVUOVWEVWJUDUWNVUOVWCUWNSZUNZVWEVWIV
      WJVWTVWDVWHVUJTVWTVWCUXBUWNYBZUGZVWDVWHVWTVWCVXAUWOVWTFJUWNDVUOVWLVWSVWNV
      MUUSUUTVWSVXBVWHVIVUOVWCUWNUXBUVAYLUVBZUVCVWTVWGVWIVWJXDVWSVWGVUOUWMVWCUV
      DYLVWGVWIUVEVLUVFYMXOVUOVVFUWOUWNXQZVWBVWFXDVVKUWNRUWOXRZVWAVWEUCUDUWNUWO
      UXRVWDVUJTXPUVIYQXOZVVCVWBUBVUJRUXQVUJVIVVBVWAUCUWPUXQVUJUXRTXMXSXTYAZUBU
      CUWPUVGWGZXEZVUOVUJUWQTWCZVWGVWHUWQTWCZYIZUDJVQZVUOVXLUDJVUOVWCJSZVWGVXKV
      UOVXNVWGUNZUNZVUTVVAVVDVWHUWPSVXKVUOVUTVXOVVLVMVUOVVAVXOVVTVMVUOVVDVXOVXG
      VMVXPVWDVWHUWPVUOVXOVWSVWDVWHVIVUOVXNVWGVWSVUOVXNUNVWSVWGVUOVVNVWCVCSVWSV
      WGXDVXNVVSJVCVWCUXKYCUWMVWCUVJYDUVKUVRZVXCUVLVXPVXDVWSVWDUWPSVXPVVFVXDVUO
      VVFVXOVVKVMVXEVLVXQUWNVWCUWOUVMYAUVNUBUCUWPVWHUVOYNUWHYOVUOUXJVUCVUPUWQUQ
      SVXJVXMXDVWPVWQVWRVXIUWQJUWMUDEUXBHMYJYKXOVUOUWQVUJTWCZVWBVXFVUOVUTVVAVVD
      VUQVXRVWBXDVVLVVTVXGVURUBUCUCUWPVUJUVPYNXOUVQZYPUVSUWIYRUVTUWAYPYRABUBCUW
      QUAUXAIJKUXAWBNVVOBUBCDFBCUWQUHZUWMUWNUWNWBVXTWBVVRVVOVVGUNAUYEBCDUHULSAV
      UNVVGYSVUNVVGUYEAVVHYEPYAVVOVVGUXDUNZUNAUYEUXDUYFAVUNVYAYSVUNVVGUYEAUXDVV
      HUWBVVOVVGUXDUWCQYFAUXDVUNDUXQTWCZFUWNVQZUBRVRZVUOVVDVYDVXGVUOVVCVYCUBRVU
      OUYFFUWNVQVVCVYCXDVUOUYFFUWNVVIYOVVBVYBFUCUWNDUWORVVJUXRDUXQTXPUWDVLUWEXH
      YTUWFAVUNUXDVVEAUXDVUNVVEVXHYTUWGUXEUYNUXCUWQTWCZUAJVQZUXQUWQTWCZUAJVQZUB
      RVROUXEUXCVUJTWCZUAJVQZVYFUXJUXEVYIUARVQZVYJUXLUXEVUAVYKVUBUXEUXJVUCVUDVU
      AVYKXDUXMVUEVUFUXCJUAEUXBHMXGWGXHVYIUAJRXIXJUXEVYIVYEUAJVUOVUJUWQUXCTVXSU
      WJYMXHVYHVYFUBUXCRVUHVYGVYEUAJUXQUXCUWQTXPXSXTYAUWKUWL $.
  $}

  ${
    $d j k m n x y A $.  $d k C $.  $d j k m n x y ph $.  $d j k m n x y Z $.
    $d j k m y B $.  $d j k m y M $.
    mbflim.1 $e |- Z = ( ZZ>= ` M ) $.
    mbflim.2 $e |- ( ph -> M e. ZZ ) $.
    mbflim.4 $e |- ( ( ph /\ x e. A ) -> ( n e. Z |-> B ) ~~> C ) $.
    mbflim.5 $e |- ( ( ph /\ n e. Z ) -> ( x e. A |-> B ) e. MblFn ) $.
    ${
      mbflimlem.6 $e |- ( ( ph /\ ( n e. Z /\ x e. A ) ) -> B e. RR ) $.
      $( The pointwise limit of a sequence of measurable real-valued functions
         is measurable.  (Contributed by Mario Carneiro, 7-Sep-2014.) $)
      mbflimlem $p |- ( ph -> ( x e. A |-> C ) e. MblFn ) $=
        ( vy vj vk cmpt cfv cv wcel vm clsp cmbf wa cli wbr wceq anass1rs fmptd
        cr eqid cdm cmin cabs clt cuz wral wrex crp adantr climrel releldmi syl
        cz co climcau syl2anc caurcvg climuni mpteq2dva cpnf cico cima cxr csup
        cin ffvelrnda climrecl mbflimsup eqeltrrd ) ABCFHDQZUBRZQZBCEQUCABCWBEA
        BSCTZUDZWAWBUEUFWAEUEUFZWBEUGWENOPWAGHIWEFHDUJWAAFSHTWDDUJTMUHWAUKUIZWE
        GVDTZWAUEULTZOSWARPSZWARUMVEUNRNSUOUFOWJUPRUQPHURNUSUQAWHWDJUTZWEWFWIKW
        AEUEVAVBVCNPOWAGHIVFVGVHZKWBEWAVIVGVJABCDUAFWCUAUJWAUASVKVLVEVMVNVPVNUO
        VOQZGHIWCUKWMUKJWEWBPWAGHIWKWLWEHUJWJWAWGVQVRLMVSVT $.
    $}

    mbflim.6 $e |- ( ( ph /\ ( n e. Z /\ x e. A ) ) -> B e. V ) $.
    $( The pointwise limit of a sequence of measurable functions is measurable.
       (Contributed by Mario Carneiro, 7-Sep-2014.) $)
    mbflim $p |- ( ph -> ( x e. A |-> C ) e. MblFn ) $=
      ( vk cmpt wcel cre cfv cim cmbf cv wa cvv cuz eqeltri mptex a1i cz adantr
      fvex cc anassrs mbfmptcl an32s eqid fmptd ffvelrnda wceq wral simpr recld
      cr fvmpt2 syl2anc fveq2d eqtr4d ralrimiva nffvmpt1 nfcv nffv nfeq eqeq12d
      fveq2 cbvral sylibr r19.21bi climre ismbfcn2 mpbid simpld mbflimlem imcld
      nfv anasss climim simprd cli wbr climcl syl mpbir2and ) ABCEPUAQBCERSZPUA
      QBCETSZPUAQABCDRSZWMFGIJKABUBCQZUCZEOFIDPZFIWOPZGUDIJLWSUDQWQFIWOIGUESUDJ
      GUEUKUFZUGUHAGUIQWPKUJZWQIULOUBZWRWQFIDULWRAFUBZIQZWPDULQZAXDUCZBCDHMAXDW
      PDHQNUMUNZUOZWRUPZUQURZWQXBWSSZXBWRSZRSZUSZOIWQXCWSSZXCWRSZRSZUSZFIUTXNOI
      UTWQXRFIWQXDUCZXOWOXQXSXDWOVCQXOWOUSWQXDVAZXSDXHVBFIWOVCWSWSUPVDVEXSXPDRX
      SXDXEXPDUSXTXHFIDULWRXIVDVEZVFVGVHXNXROFIFXKXMFIWOXBVIFXLRFRVJFIDXBVIZVKV
      LXROWDXBXCUSZXKXOXMXQXBXCWSVNYCXLXPRXBXCWRVNZVFVMVOVPVQVRXFBCWOPUAQZBCDTS
      ZPUAQZXFBCDPUAQYEYGUCMXFBCDXGVSVTZWAAXDWPUCUCZDAXDWPXEXGWEZVBWBABCYFWNFGI
      JKWQEOWRFIYFPZGUDIJLYKUDQWQFIYFWTUGUHXAXJWQXBYKSZXLTSZUSZOIWQXCYKSZXPTSZU
      SZFIUTYNOIUTWQYQFIXSYOYFYPXSXDYFVCQYOYFUSXTXSDXHWCFIYFVCYKYKUPVDVEXSXPDTY
      AVFVGVHYNYQOFIFYLYMFIYFXBVIFXLTFTVJYBVKVLYQOWDYCYLYOYMYPXBXCYKVNYCXLXPTYD
      VFVMVOVPVQWFXFYEYGYHWGYIDYJWCWBABCEWQWREWHWIEULQLEWRWJWKVSWL $.
  $}

  $c 0p $.

  $( Extend class notation to include the zero polynomial. $)
  c0p $a class 0p $.

  $( Define the zero polynomial.  (Contributed by Mario Carneiro,
     19-Jun-2014.) $)
  df-0p $a |- 0p = ( CC X. { 0 } ) $.

  $( The zero function evaluates to zero at every point.  (Contributed by Mario
     Carneiro, 23-Jul-2014.) $)
  0pval $p |- ( A e. CC -> ( 0p ` A ) = 0 ) $=
    ( cc wcel c0p cfv cc0 csn cxp df-0p fveq1i c0ex fvconst2 syl5eq ) ABCADEABF
    GHZEFADNIJBFAKLM $.

  ${
    $d x A $.  $d x F $.  $d x ph $.
    $( Two ways to say that the function ` F ` on the reals is nonnegative.
       (Contributed by Mario Carneiro, 17-Aug-2014.) $)
    0plef $p |- ( F : RR --> ( 0 [,) +oo ) <->
      ( F : RR --> RR /\ 0p oR <_ F ) ) $=
      ( vx cr cc0 wf c0p cle wbr wss cfv wcel wral wb baib syl wfn cvv a1i wceq
      cc cpnf cico co cofr rge0ssre fss mpan2 cv ffvelrn elrege0 ralbidva ffnfv
      ffn csn cxp 0cn fnconstg ax-mp df-0p fneq1i mpbir cnex reex cin ax-resscn
      wa sseqin2 mpbi 0pval adantl eqidd ofrfval 3bitr4d biadan2 ) CDUAUBUCZAEZ
      CCAEZFAGUDHZVPVOCIVQUECVOCAUFUGVQBUHZAJZVOKZBCLZDVTGHZBCLVPVRVQWAWCBCVQVS
      CKVFZVTCKZWAWCMCCVSAUIWAWEWCVTUJNOUKVQACPZVPWBMCCAUMZVPWFWBBCVOAULNOVQBTC
      DVTGCFAQQFTPZVQWHTDUNUOZTPZDTKWJUPTDTUQURTFWIUSUTVARWGTQKVQVBRCQKVQVCRCTI
      TCVDCSVECTVGVHVSTKVSFJDSVQVSVIVJWDVTVKVLVMVN $.

    0pledm.1 $e |- ( ph -> A C_ CC ) $.
    0pledm.2 $e |- ( ph -> F Fn A ) $.
    $( Adjust the domain of the left argument to match the right, which works
       better in our theorems.  (Contributed by Mario Carneiro,
       28-Jul-2014.) $)
    0pledm $p |- ( ph -> ( 0p oR <_ F <-> ( A X. { 0 } ) oR <_ F ) ) $=
      ( vx cc0 cfv cle wbr cc wral c0p cxp wceq cvv wfn wcel 0cn a1i cv cin csn
      cofr sseqin2 sylib raleqdv fnconstg ax-mp df-0p fneq1i mpbir cnex sylancl
      wss ssexg eqid 0pval adantl wa eqidd ofrfval inidm c0ex fvconst2 3bitr4d
      ) AGFUAZCHZIJZFKBUBZLVIFBLMCIUDZJBGUCZNZCVKJAVIFVJBABKUOZVJBODBKUEUFUGAFK
      BGVHIVJMCPPMKQZAVOKVLNZKQZGKRZVQSKGKUHUIKMVPUJUKULTEKPRZAUMTAVNVSBPRDUMBK
      PUPUNZVJUQVGKRVGMHGOAVGURUSAVGBRZUTVHVAZVBAFBBGVHIBVMCPPVMBQZAVRWCSBGKUHU
      ITEVTVTBVCWAVGVMHGOABGVGVDVEUSWBVBVF $.
  $}

  ${
    $d f g x y F $.  $d x y A $.
    $( The predicate " ` F ` is a simple function".  A simple function is a
       finite nonnegative linear combination of indicator functions for
       finitely measurable sets.  We use the idiom ` F e. dom S.1 ` to
       represent this concept because ` S.1 ` is the first preparation function
       for our final definition ` S. ` (see ~ df-itg ); unlike that operator,
       which can integrate any function, this operator can only integrate
       simple functions.  (Contributed by Mario Carneiro, 18-Jun-2014.) $)
    isi1f $p |- ( F e. dom S.1 <-> ( F e. MblFn /\ ( F : RR --> RR /\
        ran F e. Fin /\ ( vol ` ( `' F " ( RR \ { 0 } ) ) ) e. RR ) ) ) $=
      ( vg vf vx cr cv crn cfn wcel ccnv csn cdif cima cvol cfv w3a cmbf eleq1d
      wf citg1 cc0 cdm wceq feq1 rneq imaeq1d fveq2d 3anbi123d crab cmul co csu
      cnveq sumex df-itg1 dmmpti elrab2 ) EEBFZSZURGZHIZURJZEUAKZLZMZNOZEIZPZEE
      ASZAGZHIZAJZVDMZNOZEIZPBAQTUBURAUCZUSVIVAVKVGVOEEURAUDVPUTVJHURAUERVPVFVN
      EVPVEVMNVPVBVLVDURAUMUFUGRUHCVHBQUICFZGVCLZDFZVQJVSKMNOUJUKZDULTVRVTDUNDC
      BUOUPUQ $.

    $( Simple functions are measurable.  (Contributed by Mario Carneiro,
       18-Jun-2014.) $)
    i1fmbf $p |- ( F e. dom S.1 -> F e. MblFn ) $=
      ( citg1 cdm wcel cmbf cr wf crn cfn ccnv cc0 csn cdif cima cvol cfv isi1f
      w3a simplbi ) ABCDAEDFFAGAHIDAJFKLMNOPFDRAQS $.

    $( A simple function is a function on the reals.  (Contributed by Mario
       Carneiro, 26-Jun-2014.) $)
    i1ff $p |- ( F e. dom S.1 -> F : RR --> RR ) $=
      ( citg1 cdm wcel cr wf crn cfn ccnv cc0 csn cdif cima cvol cfv cmbf isi1f
      w3a simprbi simp1d ) ABCDZEEAFZAGHDZAIEJKLMNOEDZUAAPDUBUCUDRAQST $.

    $( A simple function has finite range.  (Contributed by Mario Carneiro,
       26-Jun-2014.) $)
    i1frn $p |- ( F e. dom S.1 -> ran F e. Fin ) $=
      ( citg1 cdm wcel cr wf crn cfn ccnv cc0 csn cdif cima cvol cfv cmbf isi1f
      w3a simprbi simp2d ) ABCDZEEAFZAGHDZAIEJKLMNOEDZUAAPDUBUCUDRAQST $.

    $( Any preimage of a simple function is measurable.  (Contributed by Mario
       Carneiro, 26-Jun-2014.) $)
    i1fima $p |- ( F e. dom S.1 -> ( `' F " A ) e. dom vol ) $=
      ( vy citg1 cdm wcel crn cin ccnv cv csn cima ciun cvol cr wf wceq wss cfn
      adantr wfun i1ff inpreima iunid imaeq2i imaiun eqtr3i cnvimass cnvimarndm
      ffun sseqtr4i df-ss mpbi 3eqtr3g 3syl wral i1frn ssfi sylancl cmbf i1fmbf
      inss2 frn syl syl5ss sselda mbfimasn syl3anc ralrimiva finiunmbl eqeltrrd
      wa syl2anc ) BDEFZCABGZHZBIZCJZKZLZMZVQALZNEZVNOOBPZBUAZWAWBQBUBZOOBUJWEV
      QVPLZWBVQVOLZHZWAWBAVOBUCVQCVPVSMZLWGWAWJVPVQCVPUDUECVQVPVSUFUGWBWHRWIWBQ
      WBBEWHBAUHBUIUKWBWHULUMUNUOVNVPSFZVTWCFZCVPUPWAWCFVNVOSFVPVORWKBUQAVOVBZV
      OVPURUSVNWLCVPVNVRVPFZVLBUTFZWDVROFWLVNWOWNBVATVNWDWNWFTVNVPOVRVNVPVOOWMV
      NWDVOORWFOOBVCVDVEVFOVRBVGVHVIVPVTCVJVMVK $.

    $( Any preimage of a simple function not containing zero has finite
       measure.  (Contributed by Mario Carneiro, 26-Jun-2014.) $)
    i1fima2 $p |- ( ( F e. dom S.1 /\ -. 0 e. A ) ->
                    ( vol ` ( `' F " A ) ) e. RR ) $=
      ( citg1 cdm wcel cc0 wn cima cvol cfv covol wceq i1fima adantr mblvol syl
      wa cr wss cin ccnv csn cdif crn wf wfun i1ff inpreima cnvimass cnvimarndm
      ffun 3syl sseqtr4i df-ss mpbi syl6req c0 inss1 sseli adantl disjsn sylibr
      con3i wb inss2 frn syl5ss reldisj mpbid imass2 eqsstrd mblss cfn cmbf w3a
      isi1f simprbi simp3d eqeltrrd ovolsscl syl3anc eqeltrd ) BCDEZFAEZGZQZBUA
      ZAHZIJZWHKJZRWFWHIDZEZWIWJLWCWLWEABMNWHOPWFWHWGRFUBZUCZHZSWORSZWOKJZREWJR
      EWFWHWGABUDZTZHZWOWFWTWHWGWRHZTZWHWFRRBUEZBUFWTXBLWCXCWEBUGZNRRBUKAWRBUHU
      LWHXASXBWHLWHBDXABAUIBUJUMWHXAUNUOUPWFWSWNSZWTWOSWFWSWMTUQLZXEWFFWSEZGZXF
      WEXHWCXGWDWSAFAWRURUSVCUTWSFVAVBWFWSRSZXFXEVDWCXIWEWCWSWRRAWRVEWCXCWRRSXD
      RRBVFPVGNWSWMRVHPVIWSWNWGVJPVKWFWOWKEZWPWCXJWEWNBMNZWOVLPWFWOIJZWQRWFXJXL
      WQLXKWOOPWCXLREZWEWCXCWRVMEZXMWCBVNEXCXNXMVOBVPVQVRNVSWHWOVTWAWB $.

    $( Preimage of a singleton.  (Contributed by Mario Carneiro,
       26-Jun-2014.) $)
    i1fima2sn $p |- ( ( F e. dom S.1 /\ A e. ( B \ { 0 } ) ) ->
                    ( vol ` ( `' F " { A } ) ) e. RR ) $=
      ( cc0 csn cdif wcel citg1 cdm wn ccnv cima cvol cfv cr eldifn elsni snidg
      eqeltrrd nsyl i1fima2 sylan2 ) ABDEZFGZCHIGDAEZGZJCKUELMNOGUDAUCGUFABUCPU
      FDAUCDAQDUERSTUECUAUB $.

    ${
      $d x y F $.  $d x y ph $.
      i1fd.1 $e |- ( ph -> F : RR --> RR ) $.
      i1fd.2 $e |- ( ph -> ran F e. Fin ) $.
      i1fd.3 $e |- ( ( ph /\ x e. ( ran F \ { 0 } ) ) ->
                     ( `' F " { x } ) e. dom vol ) $.
      i1fd.4 $e |- ( ( ph /\ x e. ( ran F \ { 0 } ) ) ->
                     ( vol ` ( `' F " { x } ) ) e. RR ) $.
      $( A simplified set of assumptions to show that a given function is
         simple.  (Contributed by Mario Carneiro, 26-Jun-2014.) $)
      i1fd $p |- ( ph -> F e. dom S.1 ) $=
        ( vy wcel cr cc0 cdif cima cvol cfv wa wceq wss syl wn cmbf wf crn ccnv
        cfn csn w3a citg1 cv cioo wral wfun ad2antrr ffun funcnvcnv imadif 4syl
        cdm cpw cxr cxp ioof frn ax-mp sseli elpwid ad2antlr dfss4 sylib eqtr3d
        imaeq2d fimacnv rembl syl6eqel wi wal cin adantr inpreima iunid imaeq2i
        ciun imaiun eqtr3i cnvimass cnvimarndm sseqtr4i df-ss mpbi 3eqtr3g 3syl
        inss2 ssfi sylancl simpll c0 inss1 con3i adantl disjsn sylibr wb sselda
        reldisj syl2anc ralrimiva finiunmbl eqeltrrd ex alrimiv elndif cvv reex
        difexg eleq2 notbid imaeq2 eleq1d imbi12d spcv difmbl spv imp pm2.61dan
        adantlr ismbf mpbird covol mblvol csu cle wbr mblss fsumrecl fveq2d jca
        sylc ovolfiniun eqbrtrrd ovollecl syl3anc eqeltrd neldifsn mpisyl isi1f
        3jca sylanbrc ) ACUAIZJJCUBZCUCZUEIZCUDZJKUFZLZMZNOZJIZUGCUHURIAUUHUULB
        UIZMZNURZIZBUJUCZUKZAUVABUVBAUURUVBIZPZKUURIZUVAUVEUVFPZUULJMZUULJUURLZ
        MZLZUUSUUTUVGUULJUVILZMZUVKUUSUVGUUICULZUULUDULUVMUVKQAUUIUVDUVFDUMZJJC
        UNZCUOJUVIUULUPUQUVGUVLUURUULUVGUURJRZUVLUURQUVDUVQAUVFUVDUURJUVBJUSZUU
        RUTUTVAZUVRUJUBUVBUVRRVBUVSUVRUJVCVDVEVFVGUURJVHVIVKVJUVGUVHUUTIUVJUUTI
        ZUVKUUTIUVGUVHJUUTUVGUUIUVHJQUVOJJCVLSVMVNUVGKHUIZIZTZUULUWAMZUUTIZVOZH
        VPZKUVIIZTZUVTAUWGUVDUVFAUWFHAUWCUWEAUWCPZBUWAUUJVQZUULUURUFZMZWBZUWDUU
        TUWJUUIUVNUWNUWDQAUUIUWCDVRUVPUVNUULUWKMZUWDUULUUJMZVQZUWNUWDUWAUUJCVSU
        ULBUWKUWLWBZMUWOUWNUWRUWKUULBUWKVTWABUULUWKUWLWCWDUWDUWPRUWQUWDQUWDCURU
        WPCUWAWECWFWGUWDUWPWHWIWJWKZUWJUWKUEIZUWMUUTIZBUWKUKUWNUUTIUWJUUKUWKUUJ
        RZUWTAUUKUWCEVRUWAUUJWLZUUJUWKWMWNZUWJUXABUWKUWJUURUWKIZPZAUURUUJUUMLZI
        ZUXAAUWCUXEWOZUWJUWKUXGUURUWJUWKUUMVQWPQZUWKUXGRZUWJKUWKIZTZUXJUWCUXMAU
        XLUWBUWKUWAKUWAUUJWQVEWRWSUWKKWTXAUXBUXJUXKXBUXCUWKUUMUUJXDVDVIXCZFXEZX
        FUWKUWMBXGXEXHZXIXJZUMUVFUWIUVEKUURJXKWSUWFUWIUVTVOHUVIJXLIZUVIXLIXMJUU
        RXLXNVDUWAUVIQZUWCUWIUWEUVTUXSUWBUWHUWAUVIKXOXPUXSUWDUVJUUTUWAUVIUULXQX
        RXSXTYQUVHUVJYAXEXHAUVFTZUVAUVDAUXTUVAAUWGUXTUVAVOZUXQUWFUYAHBUWAUURQZU
        WCUXTUWEUVAUYBUWBUVFUWAUURKXOXPUYBUWDUUSUUTUWAUURUULXQXRXSYBSYCYEYDXFAU
        UIUUHUVCXBDBJCYFSYGAUUIUUKUUQDEAUWCUWDNOZJIZVOZHVPKUUNIZTZUUQAUYEHAUWCU
        YDUWJUYCUWDYHOZJUWJUWEUYCUYHQUXPUWDYISUWJUWDJRZUWKUWMYHOZBYJZJIUYHUYKYK
        YLUYHJIUWJUWEUYIUXPUWDYMSUWJUWKUYJBUXDUXFUWMNOZUYJJUXFUXAUYLUYJQUXOUWMY
        ISUXFAUXHUYLJIUXIUXNGXEXHZYNUWJUWNYHOZUYHUYKYKUWJUWNUWDYHUWSYOUWJUWTUWM
        JRZUYJJIZPZBUWKUKUYNUYKYKYLUXDUWJUYQBUWKUXFUYOUYPUXFUXAUYOUXOUWMYMSUYMY
        PXFUWKUWMBYRXEYSUWDUYKYTUUAUUBXIXJKJUUCUYEUYGUUQVOHUUNUXRUUNXLIXMJUUMXL
        XNVDUWAUUNQZUWCUYGUYDUUQUYRUWBUYFUWAUUNKXOXPUYRUYCUUPJUYRUWDUUONUWAUUNU
        ULXQYOXRXSXTUUDUUFCUUEUUG $.
    $}

    $( Any simple function takes the value zero on a set of unbounded measure,
       so in particular this set is not empty.  (Contributed by Mario Carneiro,
       18-Jun-2014.) $)
    i1f0rn $p |- ( F e. dom S.1 -> 0 e. ran F ) $=
      ( citg1 cdm wcel cc0 crn cpnf cr pnfnre neli wn cvol cfv covol wceq rembl
      wa mblvol ax-mp ovolre ccnv cima cnvimarndm wf i1ff fdm syl adantr syl5eq
      eqtri fveq2d i1fima2 eqeltrrd syl5eqelr ex mt3i ) ABCDZEAFZDZGHDZGHIJUQUS
      KZUTUQVAQZGHLMZHVCHNMZGHLCDVCVDOPHRSTUJVBAUAURUBZLMVCHVBVEHLVBVEACZHAUCUQ
      VFHOZVAUQHHAUDVGAUEHHAUFUGUHUIUKURAULUMUNUOUP $.

    $( The value of the integral on simple functions.  (Contributed by Mario
       Carneiro, 18-Jun-2014.) $)
    itg1val $p |- ( F e. dom S.1 -> ( S.1 ` F ) =
           sum_ x e. ( ran F \ { 0 } ) ( x x. ( vol ` ( `' F " { x } ) ) ) ) $=
      ( vg vf citg1 cfv crn csn cdif cv ccnv cima cvol cmul co csu wceq cr wcel
      sumex cc0 cfn w3a cmbf crab cdm rneq difeq1d imaeq1d fveq2d oveq2d adantr
      wf cnveq sumeq12dv df-itg1 fvmpt dmmpti eleq2s ) BEFBGZUAHZIZAJZBKZVCHZLZ
      MFZNOZAPZQBRRCJZUMVJGUBSVJKRVAILMFRSUCCUDUEZEUFDBDJZGZVAIZVCVLKZVELZMFZNO
      ZAPZVIVKEVLBQZVNVBVRVHAVTVMUTVAVLBUGUHVTVRVHQVCVNSVTVQVGVCNVTVPVFMVTVOVDV
      EVLBUNUIUJUKULUOADCUPZVBVHATUQDVKVSEVNVRATWAURUS $.

    $( The value of the integral on simple functions.  (Contributed by Mario
       Carneiro, 26-Jun-2014.) $)
    itg1val2 $p |- ( ( F e. dom S.1 /\
        ( A e. Fin /\ ( ran F \ { 0 } ) C_ A /\ A C_ ( RR \ { 0 } ) ) ) ->
      ( S.1 ` F ) = sum_ x e. A ( x x. ( vol ` ( `' F " { x } ) ) ) ) $=
      ( citg1 cdm wcel cc0 csn cdif wss cr wa cfv cvol cmul co wceq syl c0 wn
      cfn crn w3a cv ccnv cima itg1val adantr simpr2 cc sselda simpr3 i1fima2sn
      csu eldifi adantlr syldan remulcld recnd wf cin i1ff ad2antrr dffn3 sylib
      wfn ffn eldifn adantl ssdifssd simpr sseldd biantrud eldif syl6rbbr mtbid
      simplr3 disjsn sylibr fimacnvdisj syl2anc fveq2d covol mblvol ax-mp ovol0
      0mbl eqtri syl6eq oveq2d sylan2 mul01d eqtrd simpr1 fsumss ) CDEFZBUAFZCU
      BZGHZIZBJZBKWSIZJZUCZLZCDMZWTAUDZCUEXGHZUFZNMZOPZAUNZBXKAUNWPXFXLQXDACUGU
      HXEWTBXKAWPWQXAXCUIZXEXGWTFZXGBFZXKUJFXEWTBXGXMUKXEXOLZXKXPXGXJXPXGXBFZXG
      KFZXEBXBXGWPWQXAXCULUKZXGKWSUORZXEXOXQXJKFZXSWPXQYAXDXGKCUMUPUQURUSUQXEXG
      BWTIZFZLZXKXGGOPGYDXJGXGOYDXJSNMZGYDXISNYDKWRCUTZWRXHVASQZXISQYDKKCUTZYFW
      PYHXDYCCVBVCYHCKVFYFKKCVGKCVDVERYDXGWRFZTYGYDXNYIYCXNTXEXGBWTVHVIYDYIYIXG
      WSFTZLXNYDYJYIYDXQYJYDYBXBXGYDBXBWTWQXAXCWPYCVQVJXEYCVKVLXGKWSVHRVMXGWRWS
      VNVOVPWRXGVRVSKWRXHCVTWAWBYESWCMZGSNEFYEYKQWGSWDWEWFWHWIWJYDXGYDXGYCXEXOX
      RXGBWTUOXTWKUSWLWMWPWQXAXCWNWOWM $.

    $( Closure of the integral on simple functions.  (Contributed by Mario
       Carneiro, 26-Jun-2014.) $)
    itg1cl $p |- ( F e. dom S.1 -> ( S.1 ` F ) e. RR ) $=
      ( vx citg1 cdm wcel cfv crn cc0 csn cdif cv ccnv cima cvol cmul co csu cr
      cfn wss itg1val i1frn difss ssfi sylancl wa wf frn syl ssdifssd i1fima2sn
      i1ff sselda remulcld fsumrecl eqeltrd ) ACDEZACFAGZHIZJZBKZALVAIMNFZOPZBQ
      RBAUAUQUTVCBUQURSEUTURTUTSEAUBURUSUCURUTUDUEUQVAUTEUFVAVBUQUTRVAUQURRUSUQ
      RRAUGURRTAULRRAUHUIUJUMVAURAUKUNUOUP $.

    $( Closure of the integral on positive simple functions.  (Contributed by
       Mario Carneiro, 19-Jun-2014.) $)
    itg1ge0 $p |- ( ( F e. dom S.1 /\ 0p oR <_ F ) -> 0 <_ ( S.1 ` F ) ) $=
      ( vx vy citg1 wcel c0p cle wbr wa cc0 cfv wss adantr syl cvv wfn a1i wceq
      cr cc cdm cofr crn csn cdif cv ccnv cima cvol cmul co csu cfn i1frn difss
      ssfi sylancl wf frn ssdifssd sselda i1fima2sn adantlr remulcld eldifi cxp
      i1ff wral 0cn fnconstg ax-mp df-0p fneq1i mpbir ffn cnex reex cin sseqin2
      ax-resscn mpbi 0pval adantl eqidd ofrfval biimpa wb breq2 mpbird r19.21bi
      ralrn sylan2 i1fima ad2antrr covol mblss ovolge0 breqtrrd mulge0d fsumge0
      mblvol itg1val ) ADUAEZFAGUBHZIZJAUCZJUDZUEZBUFZAUGXIUDZUHZUIKZUJUKZBULZA
      DKZGXEXHXMBXCXHUMEZXDXCXFUMEXHXFLXPAUNXFXGUOXFXHUPUQMXEXIXHEZIZXIXLXEXHSX
      IXEXFSXGXESSAURZXFSLXCXSXDAVGZMSSAUSNUTVAZXCXQXLSEXDXIXFAVBVCZVDXRXIXLYAY
      BXQXEXIXFEJXIGHZXIXFXGVEXEYCBXFXEYCBXFVHZJCUFZAKZGHZCSVHZXCXDYHXCCTSJYFGS
      FAOOFTPZXCYITXGVFZTPZJTEYKVITJTVJVKTFYJVLVMVNQXCXSASPZXTSSAVONZTOEXCVPQSO
      EXCVQQSTLTSVRSRVTSTVSWAYETEYEFKJRXCYEWBWCXCYESEIYFWDWEWFXEYLYDYHWGXCYLXDY
      MMYCYGBCSAXIYFJGWHWKNWIWJWLXRXKUIUAEZJXLGHXCYNXDXQXJAWMWNYNJXKWOKZXLGYNXK
      SLJYOGHXKWPXKWQNXKXAWRNWSWTXCXOXNRXDBAXBMWR $.
  $}

  $( The zero function is simple.  (Contributed by Mario Carneiro,
     18-Jun-2014.) $)
  i1f0 $p |- ( RR X. { 0 } ) e. dom S.1 $=
    ( vx cr cc0 csn cxp citg1 cdm wcel wtru wf 0re fconst6 a1i crn cfn wss snfi
    cvol adantl pm2.21dd rnxpss ssfi mp2an cv cdif wa ccnv difss sstri sseli wn
    cima eldifn cfv i1fd trud ) BCDZEZFGHIAURBBURJIBCBKLMURNZOHZIUQOHUSUQPUTCQB
    UQUAZUQUSUBUCMIAUDZUSUQUEZHZUFZVBUQHZURUGVBDULZRGHVDVFIVCUQVBVCUSUQUSUQUHVA
    UIUJSZVDVFUKIVBUSUQUMSZTVEVFVGRUNBHVHVITUOUP $.

  $( The zero function has zero integral.  (Contributed by Mario Carneiro,
     18-Jun-2014.) $)
  itg10 $p |- ( S.1 ` ( RR X. { 0 } ) ) = 0 $=
    ( vx cr cc0 csn cxp citg1 cfv crn cdif cv ccnv cima cvol cmul co csu c0 cdm
    wcel wceq i1f0 itg1val ax-mp wss rnxpss ssdif0 mpbi sumeq1i sum0 3eqtri ) B
    CDZEZFGZULHZUKIZAJZULKUPDLMGNOZAPZQUQAPCULFRSUMURTUAAULUBUCUOQUQAUNUKUDUOQT
    BUKUEUNUKUFUGUHUQAUIUJ $.

  ${
    $d x y A $.  $d y z F $.
    i1f1.1 $e |- F = ( x e. RR |-> if ( x e. A , 1 , 0 ) ) $.
    $( Lemma for ~ i1f1 and ~ itg11 .  (Contributed by Mario Carneiro,
       18-Jun-2014.) $)
    i1f1lem $p |- ( F : RR --> { 0 , 1 } /\
                    ( A e. dom vol -> ( `' F " { 1 } ) = A ) ) $=
      ( vy cr cc0 c1 cpr wf wcel wceq cv cif 1ex c0ex wa eqeq1d wn syl6bb prid2
      cvol cdm ccnv csn cima wi wral prid1 keepel rgenw fmpt mpbi cfv wfn fmptd
      wb a1i ffn elpreima 3syl fvex elsn eleq1 ifbid ifex fvmpt 0ne1 necon3bbid
      wne iffalse mpbiri con4i iftrue impbii syl5bb mblss sseld pm4.71rd bitr4d
      pm5.32i eqrdv pm3.2i ) FGHIZCJZBUBUCKZCUDHUEZUFZBLUGAMZBKZHGNZWDKZAFUHWEW
      LAFWJHGWDGHOUAGHPUIUJZUKAFWDWKCDULUMWFEWHBWFEMZWHKZWNFKZWNBKZQZWQWFWOWPWN
      CUNZWGKZQZWRWFWECFUOWOXAUQWFAFWKWDCWLWFWIFKQWMURDUPFWDCUSFWNWGCUTVAWPWTWQ
      WTWSHLZWPWQWSHWNCVBVCWPXBWQHGNZHLZWQWPWSXCHAWNWKXCFCWIWNLWJWQHGWIWNBVDVED
      WQHGOPVFVGRXDWQWQXDWQSZXDSGHVJVHXEXDGHXEXCGHWQHGVKRVIVLVMWQHGVNVOTVPWATWF
      WQWPWFBFWNBVQVRVSVTWBWC $.

    $( Base case simple functions are indicator functions of measurable sets.
       (Contributed by Mario Carneiro, 18-Jun-2014.) $)
    i1f1 $p |- ( ( A e. dom vol /\ ( vol ` A ) e. RR ) -> F e. dom S.1 ) $=
      ( vy cvol wcel cfv cr wa wf cc0 c1 wss csn cima wceq mp2an a1i cdif prssi
      cdm cpr ccnv wi i1f1lem simpli 0re 1re fss cfn crn prfi cv cif prid2 c0ex
      1ex prid1 keepel fmptd frn syl ssfi sylancr cun ax-mp df-pr sseqtri ssdif
      equncomi difun2 difss eqsstri sstri sseli imaeq2d simpri adantr sylan9eqr
      elsni sneqd simpll eqeltrd fveq2d simplr i1fd ) BFUBZGZBFHZIGZJZECIICKZWL
      ILMUCZCKZWNINZWMWOWICUDZMOZPZBQZUEZABCDUFZUGZLIGMIGWPUHUILMIUARIWNICUJRSW
      LWNUKGCULZWNNZXDUKGLMUMWLWOXEWLAIAUNZBGZMLUOZWNCXHWNGWLXFIGJXGMLWNLMURUPL
      MUQUSUTSDVAIWNCVBZVCWNXDVDVEWLEUNZXDLOZTZGZJZWQXJOZPZBWHXMWLXPWSBXMXOWRWQ
      XMXJMXMXJWRGXJMQXLWRXJXLWRXKVFZXKTZWRXDXQNXLXRNXDWNXQWOXEXCXIVGWNXKWRLMVH
      VKVIXDXQXKVJVGXRWRXKTWRWRXKVLWRXKVMVNVOVPXJMWAVCWBVQWIWTWKWOXAXBVRVSVTZWI
      WKXMWCWDXNXPFHWJIXNXPBFXSWEWIWKXMWFWDWG $.

    $( The integral of an indicator function is the volume of the set.
       (Contributed by Mario Carneiro, 18-Jun-2014.)  (Revised by Mario
       Carneiro, 23-Aug-2014.) $)
    itg11 $p |- ( ( A e. dom vol /\ ( vol ` A ) e. RR ) ->
                  ( S.1 ` F ) = ( vol ` A ) ) $=
      ( vy vz cvol wcel cfv cr citg1 wceq c0 cc0 csn ax-mp c1 cmul wss eqtrd wa
      cdm wi cxp covol ovol0 0mbl mblvol itg10 3eqtr4ri cv cif cmpt noel mtbiri
      eleq2 iffalsed mpteq2dv fconstmpt 3eqtr4g fveq2d fveq2 3eqtr4a a1i wne n0
      wex crn cdif ccnv cima csu i1f1 adantr itg1val syl cpr i1f1lem simpli frn
      co wf ssdif difprsnss sstri mblss sselda eleq1 ifbid 1ex c0ex ifex iftrue
      fvmpt adantl wfn fnfvelrn sylancr eqeltrrd ax-1ne0 eldifsn sylanbrc snssd
      ffn eqssd sumeq1d 1re simpri ad2antrr oveq2d simplr recnd mulid2d eqeltrd
      cc id sneq imaeq2d oveq12d sumsn ex exlimdv syl5bi pm2.61dne ) BGUBZHZBGI
      ZJHZUAZCKIZYGLZBMBMLZYKUCYIYLJNOZUDZKIZMGIZYJYGMUEIZNYPYOUFMYEHYPYQLUGMUH
      PUIUJYLCYNKYLAJAUKZBHZQNULZUMAJNUMCYNYLAJYTNYLYSQNYLYSYRMHYRUNBMYRUPUOUQU
      RDAJNUSUTVABMGVBVCVDBMVEEUKZBHZEVGYIYKEBVFYIUUBYKEYIUUBYKYIUUBUAZYJCVHZYM
      VIZFUKZCVJZUUFOZVKZGIZRWAZFVLZYGUUCCKUBHZYJUULLYIUUMUUBABCDVMVNFCVOVPUUCU
      ULQOZUUKFVLZYGUUCUUEUUNUUKFUUCUUEUUNUUEUUNSUUCUUENQVQZYMVIZUUNUUDUUPSZUUE
      UUQSJUUPCWBZUURUUSYFUUGUUNVKZBLZUCZABCDVRZVSZJUUPCVTPUUDUUPYMWCPNQWDWEVDU
      UCQUUEUUCQUUDHQNVEZQUUEHUUCUUACIZQUUDUUCUVFUUBQNULZQUUCUUAJHZUVFUVGLYIBJU
      UAYFBJSYHBWFVNWGZAUUAYTUVGJCYRUUALYSUUBQNYRUUABWHWIDUUBQNWJWKWLWNVPUUBUVG
      QLYIUUBQNWMWOTUUCCJWPZUVHUVFUUDHUUSUVJUVDJUUPCXDPUVIJUUACWQWRWSUVEUUCWTVD
      QUUDNXAXBXCXEXFUUCUUOQUUTGIZRWAZYGUUCQJHUVLXOHUUOUVLLXGUUCUVLYGXOUUCUVLQY
      GRWAYGUUCUVKYGQRUUCUUTBGYFUVAYHUUBUUSUVBUVCXHXIVAXJUUCYGUUCYGYFYHUUBXKXLZ
      XMTZUVMXNUUKUVLFQJUUFQLZUUFQUUJUVKRUVOXPUVOUUIUUTGUVOUUHUUNUUGUUFQXQXRVAX
      SXTWRUVNTTTYAYBYCYD $.
  $}

  ${
    $d k x A $.  $d x B $.  $d k F $.  $d k x ph $.
    itg1addlem.1 $e |- ( ph -> F : X --> Y ) $.
    itg1addlem.2 $e |- ( ph -> A e. Fin ) $.
    itg1addlem.3 $e |- ( ( ph /\ k e. A ) -> B C_ ( `' F " { k } ) ) $.
    itg1addlem.4 $e |- ( ( ph /\ k e. A ) -> B e. dom vol ) $.
    itg1addlem.5 $e |- ( ( ph /\ k e. A ) -> ( vol ` B ) e. RR ) $.
    $( Decompose a preimage, which is always a disjoint union.  (Contributed by
       Mario Carneiro, 25-Jun-2014.)  (Proof shortened by Mario Carneiro,
       11-Dec-2016.) $)
    itg1addlem1 $p |- ( ph ->
      ( vol ` U_ k e. A B ) = sum_ k e. A ( vol ` B ) ) $=
      ( vx wcel cvol cfv wa wral wceq syl cfn cdm cr wdisj csu cv jca ralrimiva
      ciun ccnv csn cima wss adantrr simprr sseldd wfn wb wf ffn fniniseg mpbid
      adantr simprd ralrimivva invdisj volfiniun syl3anc ) ABUANCOUBNZCOPZUCNZQ
      ZDBRDBCUDZDBCUIOPBVJDUESIAVLDBADUFZBNZQVIVKKLUGUHAMUFZEPZVNSZMCRDBRVMAVRD
      MBCAVOVPCNZQZQZVPFNZVRWAVPEUJVNUKULZNZWBVRQZWACWCVPAVOCWCUMVSJUNAVOVSUOUP
      WAEFUQZWDWEURAWFVTAFGEUSWFHFGEUTTVCFVNVPEVATVBVDVEDMBCVQVFTBCDVGVH $.
  $}

  ${
    $d i j y z A $.  $d i j B $.  $d w y I $.  $d v w x y z P $.
    $d i j u v w x y z F $.  $d i j u v w x y z G $.  $d i j v w x y z ph $.
    i1fadd.1 $e |- ( ph -> F e. dom S.1 ) $.
    i1fadd.2 $e |- ( ph -> G e. dom S.1 ) $.
    $( Decompose the preimage of a sum.  (Contributed by Mario Carneiro,
       19-Jun-2014.) $)
    i1faddlem $p |- ( ( ph /\ A e. CC ) -> ( `' ( F oF + G ) " { A } ) =
      U_ y e. ran G ( ( `' F " { ( A - y ) } ) i^i ( `' G " { y } ) ) ) $=
      ( cc wcel wa caddc co csn cima cmin cr wceq wb cvv syl vz cof ccnv crn cv
      cin ciun wrex cfv wfn wf citg1 cdm i1ff ffn reex a1i offn adantr fniniseg
      inidm ad2antrr simprl fnfvelrn syl2anc simprr eqidd ofval ad2ant2r eqtr3d
      oveq1d wss ax-resscn sylancl ffvelrnd pncand eqtr2d mpbir2and elind oveq2
      fss sneqd imaeq2d sneq ineq12d eleq2d rspcev elin anbi12d simprrl simprrr
      ex anandi oveq12d simplr eqeltrrd npcand 3eqtrd jca syl5bir sylbid syl5bi
      rexlimdvw impbid bitrd eliun syl6bbr eqrdv ) ACHIZJZUADEKUBLZUCCMNZBEUDZD
      UCZCBUEZOLZMZNZEUCZXOMZNZUFZUGZXJUAUEZXLIZYDYBIZBXMUHZYDYCIXJYEYDPIZYDXKU
      IZCQZJZYGXJXKPUJZYEYKRAYLXIAPPKPDESSAPPDUKZDPUJZADULUMZIYMFDUNTZPPDUOTZAP
      PEUKZEPUJZAEYOIYRGEUNTZPPEUOTZPSIAUPUQZUUBPVAZURUSPCYDXKUTTXJYKYGXJYKYGXJ
      YKJZYDEUIZXMIZYDXNCUUEOLZMZNZXSUUEMZNZUFZIZYGUUDYSYHUUFAYSXIYKUUAVBZXJYHY
      JVCZPYDEVDVEUUDUUIUUKYDUUDYDUUIIZYHYDDUIZUUGQZUUOUUDUUGUUQUUEKLZUUEOLUUQU
      UDCUUSUUEOUUDYICUUSXJYHYJVFAYHYIUUSQZXIYJAPPUUQUUEKPDESSYDYQUUAUUBUUBUUCA
      YHJZUUQVGUVAUUEVGVHZVIVJVKUUDUUQUUEUUDPHYDDAPHDUKZXIYKAYMPHVLZUVCYPVMPPHD
      WAVNVBUUOVOUUDPHYDEAPHEUKZXIYKAYRUVDUVEYTVMPPHEWAVNZVBUUOVOVPVQUUDYNUUPYH
      UURJRAYNXIYKYQVBPUUGYDDUTTVRUUDYDUUKIZYHUUEUUEQZUUOUUDUUEVGUUDYSUVGYHUVHJ
      RUUNPUUEYDEUTTVRVSYFUUMBUUEXMXOUUEQZYBUULYDUVIXRUUIYAUUKUVIXQUUHXNUVIXPUU
      GXOUUECOVTWBWCUVIXTUUJXSXOUUEWDWCWEWFWGVEWLXJYFYKBXMYFYDXRIZYDYAIZJZXJYKY
      DXRYAWHXJUVLYHUUQXPQZJZYHUUEXOQZJZJZYKXJUVJUVNUVKUVPXJYNUVJUVNRAYNXIYQUSP
      XPYDDUTTXJYSUVKUVPRAYSXIUUAUSPXOYDEUTTWIUVQYHUVMUVOJZJZXJYKYHUVMUVOWMXJUV
      SYKXJUVSJZYHYJXJYHUVRVCZUVTYIUUSXPXOKLCAYHUUTXIUVRUVBVIUVTUUQXPUUEXOKXJYH
      UVMUVOWJXJYHUVMUVOWKZWNUVTCXOAXIUVSWOUVTUUEXOHUWBUVTPHYDEAUVEXIUVSUVFVBUW
      AVOWPWQWRWSWLWTXAXBXCXDXEBYDXMYBXFXGXH $.

    $( Decompose the preimage of a product.  (Contributed by Mario Carneiro,
       19-Jun-2014.) $)
    i1fmullem $p |- ( ( ph /\ A e. ( CC \ { 0 } ) ) ->
      ( `' ( F oF x. G ) " { A } ) = U_ y e. ( ran G \ { 0 } )
        ( ( `' F " { ( A / y ) } ) i^i ( `' G " { y } ) ) ) $=
      ( cc0 csn wcel wa cmul co cima cdiv cr wceq wb cvv syl vz cc cdif cof crn
      ccnv cv cin ciun wrex cfv wfn wf citg1 cdm i1ff ffn reex a1i inidm adantr
      fniniseg eqidd ofval eqeq1d pm5.32da wne ad2antrr simprl fnfvelrn syl2anc
      offn eldifsni ad2antlr simprr ffvelrnd recnd mul01d 3netr4d oveq2 necon3i
      eldifsn sylanbrc divcan4d oveq1d eqtr3d mpbir2and elin sneqd imaeq2d sneq
      ineq12d eleq2d rspcev anbi12d anandi 3bitr4g eldifi wss frn simpld sseldd
      ex wi sylib simprd divcan1d oveq12 syl5ibrcom imdistanda sylbid rexlimdva
      anassrs impbid 3bitrd eliun syl6bbr eqrdv ) ACUBHIZUCJZKZUADELUDMZUFCINZB
      EUEZXSUCZDUFZCBUGZOMZIZNZEUFZYGIZNZUHZUIZYAUAUGZYCJZYPYNJZBYEUJZYPYOJYAYQ
      YPPJZYPYBUKZCQZKZYTYPDUKZYPEUKZLMZCQZKZYSYAYBPULZYQUUCRAUUIXTAPPLPDESSAPP
      DUMZDPULZADUNUOZJUUJFDUPTZPPDUQZTZAPPEUMZEPULZAEUULJUUPGEUPTZPPEUQTZPSJZA
      URUSZUVAPUTZVLVAPCYPYBVBTYAYTUUBUUGYAYTKZUUAUUFCYAPPUUDUUELPDESSYPAUUKXTU
      UOVAZAUUQXTUUSVAZUUTYAURUSZUVFUVBUVCUUDVCUVCUUEVCVDVEVFYAUUHYSYAUUHYSYAUU
      HKZUUEYEJZYPYFCUUEOMZIZNZYKUUEIZNZUHZJZYSUVGUUEYDJZUUEHVGZUVHUVGUUQYTUVPA
      UUQXTUUHUUSVHZYAYTUUGVIZPYPEVJVKUVGUUFUUDHLMZVGUVQUVGCHUUFUVTXTCHVGAUUHCU
      BHVMVNYAYTUUGVOZUVGUUDUVGUUDUVGPPYPDAUUJXTUUHUUMVHZUVSVPVQZVRVSUUEHUUFUVT
      UUEHUUDLVTWATZUUEYDHWBWCUVGYPUVKJZYPUVMJZUVOUVGUWEYTUUDUVIQZUVSUVGUUFUUEO
      MUUDUVIUVGUUDUUEUWCUVGUUEUVGPPYPEAUUPXTUUHUURVHUVSVPVQUWDWDUVGUUFCUUEOUWA
      WEWFUVGUUKUWEYTUWGKRUVGUUJUUKUWBUUNTPUVIYPDVBTWGUVGUWFYTUUEUUEQZUVSUVGUUE
      VCUVGUUQUWFYTUWHKRUVRPUUEYPEVBTWGYPUVKUVMWHWCYRUVOBUUEYEYGUUEQZYNUVNYPUWI
      YJUVKYMUVMUWIYIUVJYFUWIYHUVIYGUUECOVTWIWJUWIYLUVLYKYGUUEWKWJWLWMWNVKXCYAY
      RUUHBYEYAYGYEJZKZYRYTUUDYHQZUUEYGQZKZKZUUHYAYRUWORUWJYAYPYJJZYPYMJZKYTUWL
      KZYTUWMKZKYRUWOYAUWPUWRUWQUWSYAUUKUWPUWRRUVDPYHYPDVBTYAUUQUWQUWSRUVEPYGYP
      EVBTWOYPYJYMWHYTUWLUWMWPWQVAUWKYTUWNUUGYAUWJYTUWNUUGXDYAUWJYTKZKZUUGUWNYH
      YGLMZCQUXACYGXTCUBJAUWTCUBXSWRVNUXAYGUXAYDPYGUXAUUPYDPWSAUUPXTUWTUURVHPPE
      WTTUXAYGYDJZYGHVGZUXAUWJUXCUXDKYAUWJYTVIYGYDHWBXEZXAXBVQUXAUXCUXDUXEXFXGU
      WNUUFUXBCUUDYHUUEYGLXHVEXIXMXJXKXLXNXOBYPYEYNXPXQXR $.

    $( The sum of two simple functions is a simple function.  (Contributed by
       Mario Carneiro, 18-Jun-2014.) $)
    i1fadd $p |- ( ph -> ( F oF + G ) e. dom S.1 ) $=
      ( vu vv vz caddc cr cv wcel wa wf syl wss wceq cc0 cvol cfv vy vx cof cvv
      vw readdcl adantl citg1 cdm i1ff reex a1i inidm off crn cmpt2 cfn cxp wfo
      i1frn xpfi syl2anc wfn eqid ovex fnmpt2i dffn4 mpbi fofi sylancl wrex cab
      co rspceov mp3an3 eqeq1 2rexbidv elab sylibr dffn3 sylib rnmpt2 syl6sseqr
      ffn frn ssfi csn cdif ccnv cima cmin cin ciun cc ssdifssd recnd i1faddlem
      sselda syldan wral adantr ad2antrr i1fmbf eldifi ad2antlr sseldd resubcld
      cmbf mbfimasn syl3anc inmbl ralrimiva finiunmbl eqeltrd covol csu cle wbr
      mblvol mblss inss1 adantrr simprr oveq2d subid1d imaeq2d fveq2d i1fima2sn
      eqtrd sneqd sylan eqeltrrd ovolsscl expr wne inss2 sylan2 i1fima sylan2br
      eldifsn pm2.61dne fsumrecl syl5ss jca ovolfiniun eqbrtrd ovollecl i1fd )
      AUABCIUCVMZAUBUAJJJIJJJBCUDUDUBKZJLUAKZJLMUUJUUKIVMZJLAUUJUUKUFUGABUHUIZL
      ZJJBNZDBUJOZACUUMLZJJCNZECUJOZJUDLAUKULZUUTJUMZUNZAFGBUOZCUOZFKZGKZIVMZUP
      ZUOZUQLZUUIUOZUVIPUVKUQLAUVCUVDURZUQLZUVLUVIUVHUSZUVJAUVCUQLZUVDUQLZUVMAU
      UNUVODBUTOAUUQUVPECUTOZUVCUVDVAVBUVHUVLVCUVNFGUVCUVDUVGUVHUVHVDZUVEUVFIVE
      VFUVLUVHVGVHUVLUVIUVHVIVJAUVKUEKZUVGQZGUVDVKFUVCVKZUEVLZUVIAJUWBUUINUVKUW
      BPAUBUAJJJIUVCUVDUWBBCUDUDUUJUVCLZUUKUVDLZMZUULUWBLZAUWEUULUVGQZGUVDVKFUV
      CVKZUWFUWCUWDUULUULQUWHUULVDFGUVCUVDUUJUUKUULIVNVOUWAUWHUEUULUUJUUKIVEUVS
      UULQUVTUWGFGUVCUVDUVSUULUVGVPVQVRVSUGABJVCZJUVCBNAUUOUWIUUPJJBWDOJBVTWAAC
      JVCZJUVDCNAUURUWJUUSJJCWDOJCVTWAUUTUUTUVAUNJUWBUUIWEOFGUEUVCUVDUVGUVHUVRW
      BWCUVIUVKWFVBAUUKUVKRWGZWHZLZMZUUIWIUUKWGZWJZHUVDBWIZUUKHKZWKVMZWGZWJZCWI
      UWRWGZWJZWLZWMZSUIZAUWMUUKWNLZUWPUXEQUWNUUKAUWLJUUKAUVKJUWKAJJUUINZUVKJPZ
      UVBJJUUIWEZOWOWRWPZAHUUKBCDEWQWSZUWNUVPUXDUXFLZHUVDWTUXEUXFLAUVPUWMUVQXAZ
      UWNUXMHUVDUWNUWRUVDLZMZUXAUXFLZUXCUXFLZUXMUXPBXHLZUUOUWSJLUXQUXPUUNUXSAUU
      NUWMUXODXBBXCOAUUOUWMUXOUUPXBUXPUUKUWRUXPUVKJUUKUXPUXHUXIAUXHUWMUXOUVBXBU
      XJOUWMUUKUVKLAUXOUUKUVKUWKXDXEXFUWNUVDJUWRUWNUURUVDJPAUURUWMUUSXAJJCWEOWR
      ZXGJUWSBXIXJZUXPCXHLZUURUWRJLUXRUXPUUQUYBAUUQUWMUXOEXBCXCOAUURUWMUXOUUSXB
      UXTJUWRCXIXJZUXAUXCXKVBXLUVDUXDHXMVBXNZUWNUWPSTZUWPXOTZJUWNUWPUXFLZUYEUYF
      QUYDUWPXSOUWNUWPJPZUVDUXDXOTZHXPZJLUYFUYJXQXRUYFJLUWNUYGUYHUYDUWPXTOUWNUV
      DUYIHUXNUXPUYIJLZUWRRUWNUXOUWRRQZUYKUWNUXOUYLMZMZUXDUXAPZUXAJPZUXAXOTZJLU
      YKUYOUYNUXAUXCYAULUYNUXQUYPUWNUXOUXQUYLUYAYBZUXAXTOUYNUXASTZUYQJUYNUXQUYS
      UYQQUYRUXAXSOUYNUYSUWQUWOWJZSTZJUYNUXAUYTSUYNUWTUWOUWQUYNUWSUUKUYNUWSUUKR
      WKVMUUKUYNUWRRUUKWKUWNUXOUYLYCYDUYNUUKUWNUXGUYMUXKXAYEYIYJYFYGUWNVUAJLZUY
      MAUUNUWMVUBDUUKUVKBYHYKXAXNYLUXDUXAYMXJYNUWNUXOUWRRYOZUYKUXOVUCMUWNUWRUVD
      UWKWHLZUYKUWRUVDRYTUWNVUDMZUXDUXCPZUXCJPZUXCXOTZJLUYKVUFVUEUXAUXCYPZULVUD
      UWNUXOVUGUWRUVDUWKXDUXPUXRVUGUYCUXCXTOZYQVUEUXCSTZVUHJVUEUXRVUKVUHQAUXRUW
      MVUDAUUQUXREUXBCYROXBUXCXSOUWNUUQVUDVUKJLAUUQUWMEXAUWRUVDCYHYKYLUXDUXCYMX
      JYSYNUUAZUUBUWNUYFUXEXOTZUYJXQUWNUWPUXEXOUXLYGUWNUVPUXDJPZUYKMZHUVDWTVUMU
      YJXQXRUXNUWNVUOHUVDUXPVUNUYKUXPUXDUXCJVUIVUJUUCVULUUDXLUVDUXDHUUEVBUUFUWP
      UYJUUGXJXNUUH $.

    $( The pointwise product of two simple functions is a simple function.
       (Contributed by Mario Carneiro, 5-Sep-2014.) $)
    i1fmul $p |- ( ph -> ( F oF x. G ) e. dom S.1 ) $=
      ( vu vv vz cmul cr cvv cv wcel wa wf syl cfn wss wceq cfv vy vx vw cof co
      remulcl adantl citg1 cdm i1ff reex a1i inidm off crn cmpt2 cxp i1frn xpfi
      wfo syl2anc wfn eqid ovex fnmpt2i dffn4 mpbi fofi sylancl wrex cab mp3an3
      rspceov eqeq1 2rexbidv elab sylibr ffn dffn3 sylib frn syl6sseqr ssfi cc0
      rnmpt2 csn cdif ccnv cima cdiv cin ciun cc ax-resscn syl6ss ssdifd sselda
      cvol i1fmullem syldan wral difss i1fima inmbl ralrimivw finiunmbl eqeltrd
      adantr covol mblvol csu cle mblss inss2 ad2antrr i1fima2sn sylan eqeltrrd
      wbr ovolsscl syl3anc fsumrecl fveq2d jca ovolfiniun eqbrtrd ovollecl i1fd
      ralrimiva ) AUABCIUDUEZAUBUAJJJIJJJBCKKUBLZJMUALZJMNYKYLIUEZJMAYKYLUFUGAB
      UHUIZMZJJBOZDBUJPZACYNMZJJCOZECUJPZJKMAUKULZUUAJUMZUNZAFGBUOZCUOZFLZGLZIU
      EZUPZUOZQMZYJUOZUUJRUULQMAUUDUUEUQZQMZUUMUUJUUIUTZUUKAUUDQMZUUEQMZUUNAYOU
      UPDBURPAYRUUQECURPZUUDUUEUSVAUUIUUMVBUUOFGUUDUUEUUHUUIUUIVCZUUFUUGIVDVEUU
      MUUIVFVGUUMUUJUUIVHVIAUULUCLZUUHSZGUUEVJFUUDVJZUCVKZUUJAJUVCYJOUULUVCRAUB
      UAJJJIUUDUUEUVCBCKKYKUUDMZYLUUEMZNZYMUVCMZAUVFYMUUHSZGUUEVJFUUDVJZUVGUVDU
      VEYMYMSUVIYMVCFGUUDUUEYKYLYMIVMVLUVBUVIUCYMYKYLIVDUUTYMSUVAUVHFGUUDUUEUUT
      YMUUHVNVOVPVQUGABJVBZJUUDBOAYPUVJYQJJBVRPJBVSVTACJVBZJUUECOAYSUVKYTJJCVRP
      JCVSVTUUAUUAUUBUNJUVCYJWAPFGUCUUDUUEUUHUUIUUSWEWBUUJUULWCVAAYLUULWDWFZWGZ
      MZNZYJWHYLWFWIZHUUEUVLWGZBWHYLHLZWJUEWFZWIZCWHUVRWFZWIZWKZWLZWRUIZAUVNYLW
      MUVLWGZMUVPUWDSAUVMUWFYLAUULWMUVLAUULJWMAJJYJOUULJRUUCJJYJWAPWNWOWPWQAHYL
      BCDEWSWTZAUWDUWEMZUVNAUVQQMZUWCUWEMZHUVQXAUWHAUUQUVQUUERUWIUURUUEUVLXBUUE
      UVQWCVIZAUWJHUVQAUVTUWEMZUWBUWEMZUWJAYOUWLDUVSBXCPAYRUWMEUWACXCPZUVTUWBXD
      VAZXEUVQUWCHXFVAXHXGZUVOUVPWRTZUVPXITZJUVOUVPUWEMZUWQUWRSUWPUVPXJPUVOUVPJ
      RZUVQUWCXITZHXKZJMUWRUXBXLXSUWRJMUVOUWSUWTUWPUVPXMPUVOUVQUXAHAUWIUVNUWKXH
      ZUVOUVRUVQMZNZUWCUWBRZUWBJRZUWBXITZJMUXAJMZUXFUXEUVTUWBXNULUXEUWMUXGAUWMU
      VNUXDUWNXOZUWBXMPUXEUWBWRTZUXHJUXEUWMUXKUXHSUXJUWBXJPUVOYRUXDUXKJMAYRUVNE
      XHUVRUUECXPXQXRUWCUWBXTYAZYBUVOUWRUWDXITZUXBXLUVOUVPUWDXIUWGYCUVOUWIUWCJR
      ZUXINZHUVQXAUXMUXBXLXSUXCUVOUXOHUVQUXEUXNUXIAUXNUVNUXDAUWJUXNUWOUWCXMPXOU
      XLYDYIUVQUWCHYEVAYFUVPUXBYGYAXGYH $.

    ${
      itg1add.3 $e |- I = ( i e. RR , j e. RR |-> if ( ( i = 0 /\ j = 0 ) , 0 ,
        ( vol ` ( ( `' F " { i } ) i^i ( `' G " { j } ) ) ) ) ) $.
      $( Lemma for ~ itg1add .  The function ` I ` represents the pieces into
         which we will break up the domain of the sum.  Since it is infinite
         only when both ` i ` and ` j ` are zero, we arbitrarily define it to
         be zero there to simplify the sums that are manipulated in
         ~ itg1addlem4 and ~ itg1addlem5 .  (Contributed by Mario Carneiro,
         26-Jun-2014.) $)
      itg1addlem2 $p |- ( ph -> I : ( RR X. RR ) --> RR ) $=
        ( cc0 wceq wa csn cvol cfv cr wcel syl ad2antrr wss cv ccnv cin cif cxp
        cima wral wf covol iffalse adantl cdm citg1 i1fima inmbl syl2anc mblvol
        wn eqtrd wne wo neorian inss1 mblss cdif simplrl simpr eldifsn sylanbrc
        i1fima2sn eqeltrrd ovolsscl syl3anc inss2 adantr simplrr jaodan eqeltrd
        a1i sylan2br ex iftrue 0re syl6eqel pm2.61d2 ralrimivva fmpt2 sylib ) A
        BUAZJKCUAZJKLZJDUBWIMZUFZEUBWJMZUFZUCZNOZUDZPQZCPUGBPUGPPUEPFUHAWSBCPPA
        WIPQZWJPQZLZLZWKWSXCWKURZWSXCXDLZWRWPUIOZPXEWRWQXFXDWRWQKXCWKJWQUJUKXEW
        PNULZQZWQXFKAXHXBXDAWMXGQZWOXGQZXHADUMULZQZXIGWLDUNRZAEXKQZXJHWNEUNZRWM
        WOUOUPSWPUQRUSXDXCWIJUTZWJJUTZVAXFPQZWIJWJJVBXCXPXRXQXCXPLZWPWMTZWMPTZW
        MUIOZPQXRXTXSWMWOVCVSXSXIYAAXIXBXPXMSZWMVDRXSWMNOZYBPXSXIYDYBKYCWMUQRXS
        XLWIPJMVEZQZYDPQAXLXBXPGSXSWTXPYFAWTXAXPVFXCXPVGWIPJVHVIWIPDVJUPVKWPWMV
        LVMXCXQLZWPWOTZWOPTZWOUIOZPQXRYHYGWMWOVNVSYGXJYIXCXJXQXCXNXJAXNXBHVOXOR
        VOZWOVDRYGWONOZYJPYGXJYLYJKYKWOUQRYGXNWJYEQZYLPQAXNXBXQHSYGXAXQYMAWTXAX
        QVPXCXQVGWJPJVHVIWJPEVJUPVKWPWOVLVMVQVTVRWAWKWRJPWKJWQWBWCWDWEWFBCPPWRP
        FIWGWH $.

      $( Lemma for ~ itg1add .  (Contributed by Mario Carneiro,
         26-Jun-2014.) $)
      itg1addlem3 $p |- ( ( ( A e. RR /\ B e. RR ) /\
                             -. ( A = 0 /\ B = 0 ) ) ->
          ( A I B ) = ( vol ` ( ( `' F " { A } ) i^i ( `' G " { B } ) ) ) ) $=
        ( cr wcel wa cc0 wceq ccnv csn cima cvol wn co cin cfv cv bi2anan9 sneq
        eqeq1 imaeq2d ineqan12d fveq2d ifbieq2d c0ex fvex ifex ovmpt2a sylan9eq
        cif iffalse ) BLMCLMNBOPZCOPZNZUABCHUBVBOFQZBRZSZGQZCRZSZUCZTUDZURZVJDE
        BCLLDUEZOPZEUEZOPZNZOVCVLRZSZVFVNRZSZUCZTUDZURVKHVLBPZVNCPZNZVPVBWBVJOW
        CVMUTWDVOVAVLBOUHVNCOUHUFWEWAVITWCWDVRVEVTVHWCVQVDVCVLBUGUIWDVSVGVFVNCU
        GUIUJUKULKVBOVJUMVITUNUOUPVBOVJUSUQ $.

      itg1add.4 $e |- P = ( + |` ( ran F X. ran G ) ) $.
      $( Lemma for itg1add .  (Contributed by Mario Carneiro, 28-Jun-2014.) $)
      itg1addlem4 $p |- ( ph -> ( S.1 ` ( F oF + G ) ) =
        sum_ y e. ran F sum_ z e. ran G ( ( y + z ) x. ( y I z ) ) ) $=
        ( caddc co cc0 wcel cr wceq wa vw vx vv cof citg1 cfv crn csn cdif cmin
        cv cmul csu ccnv cima cvol cdm cfn wss i1fadd cxp wfo i1frn syl syl2anc
        xpfi wfn cres cc wf ax-addf ffn ax-mp i1ff frn ax-resscn syl6ss fnssres
        xpss12 sylancr fneq1i sylibr dffn4 sylib fofi difss sylancl cvv opelxpi
        ssfi cop syl6sseqr funfvima2 df-ov 3eltr4g dffn3 a1i ssdifd wral sselda
        wi wb cin adantr inss2 i1fima ad2antrr wn syl5ss adantlr resubcld recnd
        wne npcand oveq12 00id syl6eq itg1addlem3 syl21anc fovrnd syldan fveq2d
        sumeq2dv 3eqtr4d oveq2d eqtrd anasss fsumcom oveq12d ex adantl readdcld
        oveq1 remulcld oveq1d ad2antrl c0 vex 0re fsumss wfun ffun rneqi df-ima
        fdmi syl5 imp eqtr4i reex inidm anim12dan readdcl ralrimivva funimassov
        mpbird syl5eqss itg1val2 syl13anc ciun inmbl eldifsni ad2antlr necon3ai
        off eqnetrd itg1addlem2 eqeltrrd itg1addlem1 i1faddlem fsummulc2 mulcld
        3eqtrd cmpt wf1o adantrr ad2ant2rl subcan2ad dom2lem f1f1orn eqid fvmpt
        wf1 ovex f1f 3syl fsumf1o wrex cab simpr simplr mpan sylc pncand eqcomd
        eqeq2d rspcev ralrimiva ssabral rnmpt eldifi simprr eldifn wbr eliniseg
        inss1 brelrn sylbi nsyl pm2.21d ssrdv ss0 covol 0mbl mblvol ovol0 eqtri
        mul01d expr iftrue c0ex ovmpt2a mp2an mul01i pm2.61d2 f1ofo an32s dfin4
        cif 0cn eqsstr3i sseli elsni syl6eqel mul02d sylan2 3eqtr2d ) AGHNUDOZU
[encoded data, 4880 characters]
        XKVUNVIQWWQYGYHUYP $.

      $( Lemma for itg1add .  (Contributed by Mario Carneiro, 27-Jun-2014.) $)
      itg1addlem5 $p |- ( ph ->
        ( S.1 ` ( F oF + G ) ) = ( ( S.1 ` F ) + ( S.1 ` G ) ) ) $=
        ( vy vz co csu wcel syl adantr cr cc0 crn cv cmul caddc cof cfv cdm cfn
        citg1 i1frn wa wf wss frn sselda recnd cxp itg1addlem2 ad2antrr adantlr
        i1ff fovrnd mulcld fsumcl fsumadd itg1addlem4 adddird sumeq2dv csn cdif
        eqtrd ccnv cima cvol wceq itg1val cin inss2 a1i i1fima inmbl syl2anc wn
        ciun ssdifssd wne eldifsni ad2antlr simpl necon3ai itg1addlem3 syl21anc
        eqeltrrd itg1addlem1 iunin2 mblss imaeq2i imaiun cnvimarndm 3eqtr3i fdm
        iunid syl5eq df-ss sylib syl5req fveq2d 3eqtr4d oveq2d fsummulc2 difssd
        sseqtr4d dfin4 eqsstr3i sseli elsni oveq1d 0re syl6eqel mul02d cuz olcd
        wo sumz sylan2 fsumss inss1 simpr incom iuneq2i eqtri cnvimass syl5sseq
        3eqtrd cc anasss fsumcom oveq12d ) AEUAZFUAZLUBZUUAMUBZGNZUCNZMOZYTUUBU
        UCUCNZMOZUDNZLOZYSUUELOZYSUUGLOZUDNEFUDUENUIUFZEUIUFZFUIUFZUDNAYSUUEUUG
        LAEUIUGZPZYSUHPZHEUJQZAUUAYSPZUKZYTUUDMAYTUHPZUUSAFUUOPZUVAIFUJQZRZUUTU
        UBYTPZUKZUUAUUCUVFUUAUUTUUASPZUVEAYSSUUAASSEULZYSSUMZAUUPUVHHEVAQZSSEUN
        QZUOZRZUPZUVFUUCUVFUUAUUBSSSGASSUQSGULZUUSUVEACDEFGHIJURZUSUVMAUVEUUBSP
        ZUUSAYTSUUBASSFULZYTSUMZAUVBUVRIFVAQZSSFUNQZUOZUTZVBUPZVCZVDUUTYTUUFMUV
        DUVFUUBUUCUVFUUBUWCUPZUWDVCZVDVEAUULYSYTUUAUUBUDNUUCUCNZMOZLOUUIALMBCDE
        FGHIJKVFAYSUWIUUHLUUTUWIYTUUDUUFUDNZMOUUHUUTYTUWHUWJMUVFUUAUUBUUCUVNUWF
        UWDVGVHUUTYTUUDUUFMUVDUWEUWGVEVKVHVKAUUMUUJUUNUUKUDAUUMYSTVIZVJZUUAEVLZ
        UUAVIZVMZVNUFZUCNZLOZUWLUUELOUUJAUUPUUMUWRVOHLEVPQAUWLUWQUUELAUUAUWLPZU
        KZUWQUUAYTUUCMOZUCNUUEUWTUWPUXAUUAUCUWTMYTUWOFVLZUUBVIZVMZVQZWDZVNUFYTU
        XEVNUFZMOUWPUXAUWTYTUXEMFSSAUVRUWSUVTRZAUVAUWSUVCRZUXEUXDUMUWTUVEUKZUWO
        UXDVRVSUXJUWOVNUGZPZUXDUXKPZUXEUXKPZAUXLUWSUVEAUUPUXLHUWNEVTZQZUSAUXMUW
        SUVEAUVBUXMIUXCFVTQZUSUWOUXDWAZWBUXJUUCUXGSUXJUVGUVQUUATVOZUUBTVOZUKZWC
        ZUUCUXGVOZUWTUVGUVEAUWLSUUAAYSSUWKUVKWEUOZRZUWTYTSUUBAUVSUWSUWARUOZUXJU
        UATWFZUYBUWSUYGAUVEUUAYSTWGWHUYAUUATUXSUXTWIWJQAUUAUUBCDEFGHIJWKZWLZUXJ
        UUAUUBSSSGAUVOUWSUVEUVPUSUYEUYFVBZWMWNUWTUWOUXFVNUWTUXFUWOMYTUXDWDZVQZU
        WOMYTUWOUXDWOUWTUWOUYKUMUYLUWOVOUWTUWOSUYKUWTUXLUWOSUMUWTUUPUXLAUUPUWSH
        RUXOQUWOWPQUWTUYKFUGZSUXBMYTUXCWDZVMUXBYTVMUYKUYMUYNYTUXBMYTXBWQMUXBYTU
        XCWRFWSWTUWTUVRUYMSVOZUXHSSFXAZQXCXLUWOUYKXDXEXFXGUWTYTUUCUXGMUYIVHXHXI
        UWTYTUUCUUAMUXIUWTUUAUYDUPUXJUUCUYJUPZXJVKVHAUWLYSUUELAYSUWKXKUWTYTUUDM
        UXIUXJUUAUUCUXJUUAUYEUPUYQVCVDUUAYSUWLVJZPAUUAUWKPZUUETVOUYRUWKUUAUYRYS
        UWKVQUWKYSUWKXMYSUWKVRXNXOAUYSUKZUUEYTTMOZTUYTYTUUDTMUYTUVEUKZUUDTUUCUC
        NZTVUBUUATUUCUCUYSUXSAUVEUUATXPWHZXQVUBUUCVUBUUCVUBUUAUUBSSSGAUVOUYSUVE
        UVPUSVUBUUATSVUDXRXSAUVEUVQUYSUWBUTVBUPXTVKVHUYTYTTYAUFZUMZUVAYCVUATVOU
        YTUVAVUFAUVAUYSUVCRYBYTMTYDQVKYEUURYFYNAUUNYTUWKVJZUUBUXDVNUFZUCNZMOZVU
        GYSUUFLOZMOZUUKAUVBUUNVUJVOIMFVPQAVUGVUIVUKMAUUBVUGPZUKZVUIUUBYSUUCLOZU
        CNVUKVUNVUHVUOUUBUCVUNLYSUXEWDZVNUFYSUXGLOVUHVUOVUNYSUXELESSAUVHVUMUVJR
        AUUQVUMUURRZUXEUWOUMVUNUUSUKZUWOUXDYGVSVURUXLUXMUXNAUXLVUMUUSUXPUSAUXMV
        UMUUSUXQUSUXRWBVURUUCUXGSVURUVGUVQUYBUYCVUNYSSUUAAUVIVUMUVKRUOZVUNUVQUU
        SAVUGSUUBAYTSUWKUWAWEUOZRZVURUUBTWFZUYBVUMVVBAUUSUUBYTTWGWHUYAUUBTUXSUX
        TYHWJQUYHWLZVURUUAUUBSSSGAUVOVUMUUSUVPUSVUSVVAVBZWMWNVUNUXDVUPVNVUNVUPU
        XDLYSUWOWDZVQZUXDVUPLYSUXDUWOVQZWDVVFLYSUXEVVGUXEVVGVOUUSUWOUXDYIVSYJLY
        SUXDUWOWOYKVUNUXDVVEUMVVFUXDVOVUNUXDSVVEVUNUYMUXDSFUXCYLAUYOVUMAUVRUYOU
        VTUYPQRYMVUNVVEEUGZSUWMLYSUWNWDZVMUWMYSVMVVEVVHVVIYSUWMLYSXBWQLUWMYSUWN
        WREWSWTAVVHSVOZVUMAUVHVVJUVJSSEXAQRXCXLUXDVVEXDXEXFXGVUNYSUUCUXGLVVCVHX
        HXIVUNYSUUCUUBLVUQVUNUUBVUTUPZVURUUCVVDUPZXJVKVHAVULYTVUKMOUUKAVUGYTVUK
        MAYTUWKXKVUNYSUUFLVUQVURUUBUUCVUNUUBYOPUUSVVKRVVLVCVDUUBYTVUGVJZPAUUBUW
        KPZVUKTVOVVMUWKUUBVVMYTUWKVQUWKYTUWKXMYTUWKVRXNXOAVVNUKZVUKYSTLOZTVVOYS
        UUFTLVVOUUSUKZUUFVUCTVVQUUBTUUCUCVVNUXTAUUSUUBTXPWHZXQVVQUUCVVQUUCVVQUU
        AUUBSSSGAUVOVVNUUSUVPUSAUUSUVGVVNUVLUTVVQUUBTSVVRXRXSVBUPXTVKVHVVOYSVUE
        UMZUUQYCVVPTVOVVOUUQVVSAUUQVVNUURRYBYSLTYDQVKYEUVCYFAYTYSUUFMLUVCUURAUV
        EUUSUUFYOPAUVEUKZUUSUKZUUBUUCVWAUUBVVTUVQUUSUWBRZUPVWAUUCVWAUUAUUBSSSGA
        UVOUVEUUSUVPUSVVTYSSUUAAUVIUVEUVKRUOVWBVBUPVCYPYQVKYNYRXH $.
    $}

    $( The integral of a sum of simple functions is the sum of the integrals.
       (Contributed by Mario Carneiro, 28-Jun-2014.) $)
    itg1add $p |- ( ph ->
      ( S.1 ` ( F oF + G ) ) = ( ( S.1 ` F ) + ( S.1 ` G ) ) ) $=
      ( vi vj caddc crn cxp cres cr cv cc0 wceq wa ccnv csn cima eqid cin cmpt2
      cvol cfv cif itg1addlem5 ) AHBICIJKZFGBCFGLLFMZNOGMZNOPNBQUHRSCQUIRSUAUCU
      DUEUBZDEUJTUGTUF $.
  $}

  ${
    $d k m n w x y z A $.  $d k m n w x y z F $.  $d k m n w x y z ph $.
    $d z B $.
    i1fmulc.2 $e |- ( ph -> F e. dom S.1 ) $.
    i1fmulc.3 $e |- ( ph -> A e. RR ) $.
    $( Decompose the preimage of a constant times a function.  (Contributed by
       Mario Carneiro, 25-Jun-2014.) $)
    i1fmulclem $p |- ( ( ( ph /\ A =/= 0 ) /\ B e. RR ) ->
    ( `' ( ( RR X. { A } ) oF x. F ) " { B } ) = ( `' F " { ( B / A ) } ) ) $=
      ( vz vx wa cr wcel csn cmul co cv wceq cvv wf syl recnd cc0 wne ccnv cima
      vy cxp cof cdiv cfv reex a1i wfn citg1 cdm i1ff eqidd ofc1 adantlr eqeq1d
      eqcom simplr ad3antrrr ad2antrr ffvelrnda simpllr divmuld syl5bb pm5.32da
      ffn bitr4d remulcl adantl fconstg snssd fssd inidm fniniseg 3bitr4d eqrdv
      wb off ) ABUAUBZIZCJKZIZGJBLZUFZDMUGNZUCCLUDZDUCCBUHNZLUDZWEGOZJKZWLWHUIZ
      CPZIZWMWLDUIZWJPZIZWLWIKZWLWKKZWEWMWOWRWEWMIZWOBWQMNZCPZWRXBWNXCCWCWMWNXC
      PZWDAWMXEWBAJBWQMDQJWLJQKAUJUKZFAJJDRZDJULZADUMUNKXGEDUOSZJJDVIZSAWMIWQUP
      UQURURUSWRWJWQPXBXDWQWJUTXBCBWQXBCWCWDWMVATXBBABJKZWBWDWMFVBTXBWQWEJJWLDA
      XGWBWDXIVCZVDTAWBWDWMVEVFVGVJVHWEWHJULZWTWPVTWEJJWHRZXMAXNWBWDAHUEJJJMJJJ
      WGDQQHOZJKUEOZJKIXOXPMNJKAXOXPVKVLAJWFJWGAXKJWFWGRFJBJVMSABJFVNVOXIXFXFJV
      PWAVCJJWHVISJCWLWHVQSWEXHXAWSVTWEXGXHXLXJSJWJWLDVQSVRVS $.

    $( A nonnegative constant times a simple function gives another simple
       function.  (Contributed by Mario Carneiro, 25-Jun-2014.) $)
    i1fmulc $p |- ( ph -> ( ( RR X. { A } ) oF x. F ) e. dom S.1 ) $=
      ( vx vy vz cr csn cmul co wcel cc0 wceq wa cvv wf syl adantr vw cxp citg1
      cof cdm reex a1i i1ff 0red cv simplr oveq1d mul02lem2 adantl caofid2 i1f0
      eqtrd syl6eqel wne remulcl fconst6g inidm off crn cfn cmpt wss i1frn ovex
      wfo wfn eqid fnmpti dffn4 mpbi fofi sylancl cab elsni oveq2 eqeq2d rspcev
      wrex id syl2anr eqeq1 rexbidv elab sylibr fconstg ffn dffn3 frn syl6sseqr
      sylib rnmpt ssfi syl2anc cdif ccnv cima ssdifssd sselda i1fmulclem syldan
      cdiv i1fima ad2antrr eqeltrd cfv fveq2d redivcld eldifsni divne0d eldifsn
      cvol recnd sylanbrc i1fima2sn i1fd pm2.61dane ) AIBJZUBZCKUDLZUCUEZMBNABN
      OZPZYDINJZUBYEYGFIBNKICQIIIQMZYGUFUGAIICRZYFACYEMZYJDCUHSZTABIMZYFETYGUIY
      GFUJZIMZPZBYNKLNYNKLZNYPBNYNKAYFYOUKULYOYQNOYGYNUMUNUQUOUPURABNUSZPZGYDAI
      IYDRZYRAFGIIIKIIIYCCQQYOGUJZIMZPYNUUAKLIMAYNUUAUTUNAYMIIYCREIBIVASYLYIAUF
      UGZUUCIVBZVCZTAYDVDZVEMZYRAGCVDZBUUAKLZVFZVDZVEMZUUFUUKVGUUGAUUHVEMZUUHUU
      KUUJVJZUULAYKUUMDCVHSUUJUUHVKUUNGUUHUUIUUJBUUAKVIUUJVLZVMUUHUUJVNVOUUHUUK
      UUJVPVQAUUFHUJZUUIOZGUUHWCZHVRZUUKAIUUSYDRUUFUUSVGAFUAIIIKYBUUHUUSYCCQQYN
      YBMZUAUJZUUHMZPZYNUVAKLZUUSMZAUVCUVDUUIOZGUUHWCZUVEUVBUVBUVDBUVAKLZOZUVGU
      UTUVBWDUUTYNBUVAKYNBVSULUVFUVIGUVAUUHUUAUVAOUUIUVHUVDUUAUVABKVTWAWBWEUURU
      VGHUVDYNUVAKVIUUPUVDOUUQUVFGUUHUUPUVDUUIWFWGWHWIUNAYMIYBYCREIBIWJSACIVKZI
      UUHCRAYJUVJYLIICWKSICWLWOUUCUUCUUDVCIUUSYDWMSGHUUHUUIUUJUUOWPWNUUKUUFWQWR
      TYSUUAUUFYHWSZMZPZYDWTUUAJXAZCWTUUABXFLZJZXAZXPUEZYSUVLUUBUVNUVQOYSUVKIUU
      AAUVKIVGYRAUUFIYHAYTUUFIVGUUEIIYDWMSXBTXCZABUUACDEXDXEZAUVQUVRMZYRUVLAYKU
      WADUVPCXGSXHXIUVMUVNXPXJUVQXPXJZIUVMUVNUVQXPUVTXKUVMYKUVOIYHWSMZUWBIMAYKY
      RUVLDXHUVMUVOIMUVONUSUWCUVMUUABUVSAYMYRUVLEXHZAYRUVLUKZXLUVMUUABUVMUUAUVS
      XQUVMBUWDXQUVLUUANUSYSUUAUUFNXMUNUWEXNUVOINXOXRUVOICXSWRXIXTYA $.

    $( The integral of a constant times a simple function is the constant times
       the original integral.  (Contributed by Mario Carneiro, 25-Jun-2014.) $)
    itg1mulc $p |- ( ph ->
      ( S.1 ` ( ( RR X. { A } ) oF x. F ) ) = ( A x. ( S.1 ` F ) ) ) $=
      ( vm vk vn cr cmul co cfv wceq cc0 wa wcel syl adantr recnd cdiv vx citg1
      vy csn cxp cof itg10 cvv reex a1i wf i1ff 0red cv simplr oveq1d mul02lem2
      cdm adantl eqtrd caofid2 fveq2d simpr itg1cl mul02d 3eqtr4a wne cdif ccnv
      crn cima cvol csu wss i1fmulc ssdifssd sselda cc i1fmulclem syldan eqcomd
      frn divcan2d oveq12d ad2antrr redivcld eldifsni divne0d eldifsn i1fima2sn
      sylanbrc syl2anc mulassd eqtr3d sumeq2dv cfn i1frn ssfi sylancl fsummulc2
      difss mulcld eqtr4d itg1val cmpt id sneq imaeq2d eqid eldifi wral wfn ffn
      eqidd ofc1 adantlr ffvelrnda divcan3d fnfvelrn sylan eqeltrd ralrimiva wb
      oveq1 eleq1d ralrn mpbird r19.21bi sylan2 eqeltrrd mulne0d syl2an adantrl
      oveq2 simpl ssel2 divmuld bicomd eqcom 3bitr4g f1o2d ovex remulcld oveq2d
      fvmpt fsumf1o 3eqtr4d pm2.61dane ) AIBUDUECJUFKZUBLZBCUBLZJKZMBNABNMZOZIN
      UDZUEZUBLNUUJUULUGUUNUUIUUPUBUUNUAIBNJICUHIIIUHPZUUNUIUJAIICUKZUUMACUBURZ
      PZUURDCULQZRABIPZUUMERUUNUMUUNUAUNZIPZOZBUVCJKNUVCJKZNUVEBNUVCJAUUMUVDUOU
      PUVDUVFNMUUNUVCUQUSUTVAVBUUNUULNUUKJKZNUUNBNUUKJAUUMVCUPAUVGNMUUMAUUKAUUK
      AUUTUUKIPDCVDQSVERUTVFABNVGZOZUUIVJZUUOVHZFUNZUUIVIUVLUDVKZVLLZJKZFVMZBUV
      KUVLBTKZCVIZUVQUDZVKZVLLZJKZFVMZJKZUUJUULUVIUVPUVKBUWBJKZFVMUWDUVIUVKUVOU
      WEFUVIUVLUVKPZOZBUVQJKZUWAJKUVOUWEUWGUWHUVLUWAUVNJUWGUVLBUWGUVLUVIUVKIUVL
      UVIUVJIUUOUVIIIUUIUKZUVJIVNUVIUUIUUSPZUWIAUWJUVHABCDEVORZUUIULQZIIUUIWBQV
      PZVQZSZUVIBVRPZUWFUVIBAUVBUVHERSZRZAUVHUWFUOZWCUWGUVNUWAUWGUVMUVTVLUVIUWF
      UVLIPUVMUVTMUWNABUVLCDEVSVTVBWAWDUWGBUVQUWAUWRUWGUVQUWGUVLBUWNAUVBUVHUWFE
      WEZUWSWFZSZUWGUWAUWGUUTUVQIUUOVHPZUWAIPAUUTUVHUWFDWEUWGUVQIPUVQNVGUXCUXAU
      WGUVLBUWOUWGBUWTSUWFUVLNVGUVIUVLUVJNWGUSUWSWHUVQINWIWKUVQICWJWLSZWMWNWOUV
      IUVKUWBBFUVIUVJWPPZUVKUVJVNUVKWPPUVIUWJUXEUWKUUIWQQUVJUUOXAUVJUVKWRWSZUWQ
      UWGUVQUWAUXBUXDXBWTXCUVIUWJUUJUVPMUWKFUUIXDQUVIUUKUWCBJUVIUUKCVJZUUOVHZGU
      NZUVRUXIUDZVKZVLLZJKZGVMZUWCUVIUUTUUKUXNMAUUTUVHDRZGCXDQUVIUXHUXMUVKUWBGF
      HUVKHUNZBTKZXEZUVQUXIUVQMZUXIUVQUXLUWAJUXSXFUXSUXKUVTVLUXSUXJUVSUVRUXIUVQ
      XGXHVBWDUXFUVIHGUVKUXHUXQBUXIJKZUXRUXRXIZUVIUXPUVKPZOZUXQUXGPZUXQNVGUXQUX
      HPUYBUVIUXPUVJPUYDUXPUVJUUOXJUVIUYDHUVJUVIUYDHUVJXKZUCUNZUUILZBTKZUXGPZUC
      IXKZUVIUYIUCIUVIUYFIPZOZUYHUYFCLZUXGUYLUYHBUYMJKZBTKUYMUYLUYGUYNBTAUYKUYG
      UYNMUVHAIBUYMJCUHIUYFUUQAUIUJEAUURCIXLZUVAIICXMZQAUYKOUYMXNXOXPZUPUYLUYMB
      UYLUYMUVIIIUYFCAUURUVHUVARZXQSUVIUWPUYKUWQRAUVHUYKUOXRUTUVIUYOUYKUYMUXGPU
      VIUURUYOUYRUYPQZIUYFCXSXTYAYBUVIUUIIXLZUYEUYJYCUVIUWIUYTUWLIIUUIXMQZUYDUY
      IHUCIUUIUXPUYGMUXQUYHUXGUXPUYGBTYDYEYFQYGYHYIUYCUXPBUYCUXPUVIUVKIUXPUWMVQ
      SUVIUWPUYBUWQRUYBUXPNVGUVIUXPUVJNWGUSAUVHUYBUOWHUXQUXGNWIWKUVIUXIUXHPZOZU
      XTUVJPZUXTNVGUXTUVKPVUBUVIUXIUXGPVUDUXIUXGUUOXJUVIVUDGUXGUVIVUDGUXGXKZUYN
      UVJPZUCIXKZUVIVUFUCIUYLUYGUYNUVJUYQUVIUYTUYKUYGUVJPVUAIUYFUUIXSXTYJYBUVIU
      YOVUEVUGYCUYSVUDVUFGUCICUXIUYMMUXTUYNUVJUXIUYMBJYNYEYFQYGYHYIVUCBUXIUVIUW
      PVUBUWQRVUCUXIUVIUXHIUXIUVIUXGIUUOUVIUURUXGIVNUYRIICWBQVPVQZSAUVHVUBUOVUB
      UXINVGUVIUXIUXGNWGUSYKUXTUVJNWIWKUVIUYBVUBOZOZUXTUXPMZUXQUXIMZUXPUXTMUXIU
      XQMVUJVULVUKVUJUXPBUXIVUJUXPUVIUVKIVNUYBUXPIPVUIUWMUYBVUBYOUVKIUXPYPYLSVU
      JBAUVBUVHVUIEWESVUJUXIUVIVUBUXIIPUYBVUHYMSAUVHVUIUOYQYRUXPUXTYSUXIUXQYSYT
      UUAUWFUVLUXRLUVQMUVIHUVLUXQUVQUVKUXRUXPUVLBTYDUYAUVLBTUUBUUEUSVUCUXMVUCUX
      IUXLVUHUVIUUTVUBUXLIPUXOUXIUXGCWJXTUUCSUUFUTUUDUUGUUH $.
  $}

  ${
    $d x y z A $.  $d x y z F $.  $d y z G $.
    i1fres.1 $e |- G = ( x e. RR |-> if ( x e. A , ( F ` x ) , 0 ) ) $.
    $( The "restriction" of a simple function to a measurable subset is simple.
       (It's not actually a restriction because it is zero instead of undefined
       outside ` A ` .)  (Contributed by Mario Carneiro, 29-Jun-2014.) $)
    i1fres $p |- ( ( F e. dom S.1 /\ A e. dom vol ) -> G e. dom S.1 ) $=
      ( vy vz cdm wcel cvol wa cr cv cfv cc0 adantr syl wss wceq wne crn cif wf
      citg1 wfn i1ff ffn fnfvelrn sylan ad2antrr ifcld fmptd frn fssd cfn i1frn
      i1f0rn ssfi syl2anc csn cdif ccnv cima cin eleq1 fveq2 ifbieq1d fvex c0ex
      fvmpt adantl eqeq1d wn eldifsni ad2antlr necomd iffalse neeq1d syl5ibrcom
      ifex necon4bd pm4.71rd bitrd iftrue pm5.32i syl6bb pm5.32da an12 fniniseg
      wb anbi2d 3bitr4d syl6bbr eqrdv simplr i1fima inmbl eqeltrd fveq2d mblvol
      elin covol eqtrd inss2 a1i mblss i1fima2sn adantlr eqeltrrd ovolsscl i1fd
      syl3anc ) CUDHIZBJHZIZKZFDXPLCUAZLDXPALAMZBIZXRCNZOUBZXQDXPXRLIZKXSXTOXQX
      PCLUEZYBXTXQIXPLLCUCZYCXMYDXOCUFPZLLCUGQZLXRCUHUIXMOXQIXOYBCUQUJUKEULZXPY
      DXQLRYELLCUMQUNXPXQUOIZDUAZXQRZYIUOIXMYHXOCUPPXPLXQDUCZYJYGLXQDUMQXQYIURU
      SXPFMZYIOUTVAIZKZDVBYLUTZVCZBCVBYOVCZVDZXNYNGYPYRYNGMZYPIZYSBIZYSYQIZKZYS
      YRIYNYSLIZYSDNZYLSZKZUUAUUDYSCNZYLSZKZKZYTUUCYNUUGUUDUUAUUIKZKUUKYNUUDUUF
      UULYNUUDKZUUFUUAUUAUUHOUBZYLSZKZUULUUMUUFUUOUUPUUMUUEUUNYLUUDUUEUUNSYNAYS
      YAUUNLDXRYSSXSUUAXTUUHOXRYSBVEXRYSCVFVGEUUAUUHOYSCVHVIVTVJVKVLUUMUUOUUAUU
      MUUAUUNYLUUMUUNYLTUUAVMZOYLTUUMYLOYMYLOTXPUUDYLYIOVNVOVPUUQUUNOYLUUAUUHOV
      QVRVSWAWBWCUUAUUOUUIUUAUUNUUHYLUUAUUHOWDVLWEWFWGUUDUUAUUIWHWFYNDLUEZYTUUG
      WJXPUURYMXPYKUURYGLXQDUGQPLYLYSDWIQYNUUBUUJUUAYNYCUUBUUJWJXPYCYMYFPLYLYSC
      WIQWKWLYSBYQXAWMWNZYNXOYQXNIZYRXNIZXMXOYMWOXMUUTXOYMYOCWPUJZBYQWQUSZWRYNY
      PJNZYRXBNZLYNUVDYRJNZUVEYNYPYRJUUSWSYNUVAUVFUVESUVCYRWTQXCYNYRYQRZYQLRZYQ
      XBNZLIUVELIUVGYNBYQXDXEYNUUTUVHUVBYQXFQYNYQJNZUVILYNUUTUVJUVISUVBYQWTQXMY
      MUVJLIXOYLYICXGXHXIYRYQXJXLWRXK $.
  $}

  ${
    $d x F $.
    i1fpos.1 $e |- G = ( x e. RR |-> if ( 0 <_ ( F ` x ) , ( F ` x ) , 0 ) ) $.
    $( The positive part of a simple function is simple.  (Contributed by Mario
       Carneiro, 28-Jun-2014.) $)
    i1fpos $p |- ( F e. dom S.1 -> G e. dom S.1 ) $=
      ( citg1 cdm wcel cr cv ccnv cc0 cpnf cico co cima cfv cif cmpt biantrurd
      wa cle wbr simpr i1ff ffvelrnda elrege0 syl6bbr wf wfn wb adantr elpreima
      3syl 3bitr4d ifbid mpteq2dva syl5eq cvol i1fima eqid i1fres mpdan eqeltrd
      ffn ) BEFZGZCAHAIZBJKLMNZOZGZVGBPZKQZRZVEVFCAHKVKUAUBZVKKQZRVMDVFAHVOVLVF
      VGHGZTZVNVJVKKVQVKVHGZVPVRTZVNVJVQVPVRVFVPUCSVQVNVKHGZVNTVRVQVTVNVFHHVGBB
      UDZUESVKUFUGVQHHBUHZBHUIVJVSUJVFWBVPWAUKHHBVDHVGVHBULUMUNUOUPUQVFVIURFGVM
      VEGVHBUSAVIBVMVMUTVAVBVC $.
  $}

  ${
    $d x y ph $.  $d y A $.
    i1fposd.1 $e |- ( ph -> ( x e. RR |-> A ) e. dom S.1 ) $.
    $( Deduction form of ~ i1fposd .  (Contributed by Mario Carneiro,
       6-Aug-2014.) $)
    i1fposd $p |- ( ph -> ( x e. RR |-> if ( 0 <_ A , A , 0 ) ) e. dom S.1 ) $=
      ( vy cr cc0 cmpt cfv cle wbr cif nfcv wceq breq2d ifbieq1d wcel syl eqid
      cv citg1 cdm nffvmpt1 nfbr nfif fveq2 cbvmpt wa simpr wf wral i1ff sylibr
      fmpt r19.21bi fvmpt2 syl2anc mpteq2dva syl5eq i1fpos eqeltrrd ) AEFGETZBF
      CHZIZJKZVDGLZHZBFGCJKZCGLZHZUAUBZAVGBFGBTZVCIZJKZVMGLZHVJEBFVFVOVEBVDGBGV
      DJBGMZBJMBFCVBUCZUDVQVPUEEVOMVBVLNZVEVNVDVMGVRVDVMGJVBVLVCUFZOVSPUGABFVOV
      IAVLFQZUHZVNVHVMCGWAVMCGJWAVTCFQZVMCNAVTUIAWBBFAFFVCUJZWBBFUKAVCVKQZWCDVC
      ULRBFFCVCVCSZUNUMUOBFCFVCWEUPUQZOWFPURUSAWDVGVKQDEVCVGVGSUTRVA $.
  $}

  $( The difference of two simple functions is a simple function.  (Contributed
     by Mario Carneiro, 6-Aug-2014.) $)
  i1fsub $p |- ( ( F e. dom S.1 /\ G e. dom S.1 ) ->
    ( F oF - G ) e. dom S.1 ) $=
    ( citg1 cdm wcel wa cr c1 cneg csn cxp cof co cc i1ff ax-resscn fss sylancl
    wf cvv cmul caddc cmin wceq wss reex ofnegsub mp3an1 syl2an simpl simpr a1i
    neg1rr i1fmulc i1fadd eqeltrrd ) ACDZEZBUQEZFZAGHIZJKBUALMZUBLMZABUCLMZUQUR
    GNASZGNBSZVCVDUDZUSURGGASGNUEZVEAOPGGNAQRUSGGBSVHVFBOPGGNBQRGTEVEVFVGUFGABT
    UGUHUIUTAVBURUSUJUTVABURUSUKVAGEUTUMULUNUOUP $.

  $( The integral of a difference of two simple functions.  (Contributed by
     Mario Carneiro, 6-Aug-2014.) $)
  itg1sub $p |- ( ( F e. dom S.1 /\ G e. dom S.1 ) ->
    ( S.1 ` ( F oF - G ) ) = ( ( S.1 ` F ) - ( S.1 ` G ) ) ) $=
    ( citg1 wcel cr cneg cmul cof co caddc cmin cc itg1cl recnd eqtrd wceq i1ff
    cfv wf ax-resscn cdm wa csn cxp simpl simpr neg1rr i1fmulc itg1add itg1mulc
    c1 a1i syl mulm1d oveq2d wss fss sylancl reex ofnegsub mp3an1 syl2an fveq2d
    cvv negsub 3eqtr3d ) ACUAZDZBVGDZUBZAEUKFZUCUDBGHIZJHIZCRZACRZBCRZFZJIZABKH
    IZCRVOVPKIZVJVNVOVLCRZJIVRVJAVLVHVIUEVJVKBVHVIUFZVKEDVJUGULZUHUIVJWAVQVOJVJ
    WAVKVPGIVQVJVKBWBWCUJVJVPVJVIVPLDZWBVIVPBMNZUMUNOUOOVJVMVSCVHELASZELBSZVMVS
    PZVIVHEEASELUPZWFAQTEELAUQURVIEEBSWIWGBQTEELBUQUREVDDWFWGWHUSEABVDUTVAVBVCV
    HVOLDWDVRVTPVIVHVOAMNWEVOVPVEVBVF $.

  ${
    $d x A $.  $d k x F $.  $d x G $.  $d k x ph $.
    itg10a.1 $e |- ( ph -> F e. dom S.1 ) $.
    itg10a.2 $e |- ( ph -> A C_ RR ) $.
    itg10a.3 $e |- ( ph -> ( vol* ` A ) = 0 ) $.
    ${
      itg10a.4 $e |- ( ( ph /\ x e. ( RR \ A ) ) -> ( F ` x ) = 0 ) $.
      $( The integral of a simple function supported on a nullset is zero.
         (Contributed by Mario Carneiro, 11-Aug-2014.) $)
      itg10a $p |- ( ph -> ( S.1 ` F ) = 0 ) $=
        ( vk cfv cc0 cmul wcel wceq syl wa cr wss adantr eqtrd citg1 crn csn cv
        cdif ccnv cima cvol co csu cdm itg1val covol wfn wb wf ffn fniniseg wne
        i1ff eldifsni ad2antlr simprl eldif simplrr simpll sylan eqtr3d syl5bir
        wn ex mpand necon1ad sylbid ssrdv sstrd ovolssnul syl3anc nulmbl mblvol
        mpd syl2anc oveq2d frn ssdifssd sselda recnd mul01d sumeq2dv cuz cfn wo
        i1frn difss ssfi sylancl olcd sumz ) ADUAJZDUBZKUCZUEZIUDZDUFXCUCUGZUHJ
        ZLUIZIUJZKADUAUKMZWSXGNEIDULOAXGXBKIUJZKAXBXFKIAXCXBMZPZXFXCKLUIKXKXEKX
        CLXKXEXDUMJZKXKXDUHUKMZXEXLNXKXDQRXLKNZXMXKXDCQXKBXDCXKBUDZXDMZXOQMZXOD
        JZXCNZPZXOCMZXKDQUNZXPXTUOAYBXJAQQDUPZYBAXHYCEDUTOZQQDUQOSQXCXODUROXKXT
        YAXKXTPZXCKUSZYAXJYFAXTXCWTKVAVBYEYAXCKYEXQYAVJZXCKNZXKXQXSVCXQYGPXOQCU
        EMZYEYHXOQCVDYEYIYHYEYIPXRXCKXKXQXSYIVEYEAYIXRKNAXJXTVFHVGVHVKVIVLVMWAV
        KVNVOZACQRZXJFSZVPXKXDCRYKCUMJKNZXNYJYLAYMXJGSXDCVQVRZXDVSWBXDVTOYNTWCX
        KXCXKXCAXBQXCAWTQXAAYCWTQRYDQQDWDOWEWFWGWHTWIAXBKWJJRZXBWKMZWLXIKNAYPYO
        AWTWKMZXBWTRYPAXHYQEDWMOWTXAWNWTXBWOWPWQXBIKWROTT $.
    $}

    ${
      itg1ge0a.4 $e |- ( ( ph /\ x e. ( RR \ A ) ) -> 0 <_ ( F ` x ) ) $.
      $( The integral of an almost positive simple function is positive.
         (Contributed by Mario Carneiro, 11-Aug-2014.) $)
      itg1ge0a $p |- ( ph -> 0 <_ ( S.1 ` F ) ) $=
        ( vk cc0 cfv cle wcel wss syl wa cr wbr wceq ad2antrr crn csn cdif ccnv
        cv cima cvol cmul co csu citg1 cfn cdm i1frn difss ssfi sylancl wf i1ff
        frn ssdifssd sselda i1fima2sn sylan remulcld clt covol i1fima mblvol wb
        0le0 wfn ffn fniniseg wn simprl eldif wi ex simprr breq2d adantr lenltd
        0red bitrd sylibd syl5bir mpand con4d impancom sylbid ovolssnul syl3anc
        ssrdv eqtrd oveq2d cc recnd mul01d simpr mblss ovolge0 breqtrrd mulge0d
        syl5breqr ltlecasei fsumge0 itg1val ) AJDUAZJUBZUCZIUEZDUDXLUBZUFZUGKZU
        HUIZIUJZDUKKZLAXKXPIAXIULMZXKXINXKULMADUKUMMZXSEDUNOXIXJUOXIXKUPUQAXLXK
        MZPZXLXOAXKQXLAXIQXJAQQDURZXIQNAXTYCEDUSOZQQDUTOVAVBZAXTYAXOQMZEXLXIDVC
        VDZVEYBJXPLRXLJYBXLJVFRZPZJJXPLVKYIXPXLJUHUIJYIXOJXLUHYIXOXNVGKZJAXOYJS
        ZYAYHAXNUGUMMZYKAXTYLEXMDVHOZXNVIOZTYIXNCNCQNZCVGKJSZYJJSYIBXNCYIBUEZXN
        MZYQQMZYQDKZXLSZPZYQCMZAYRUUBVJZYAYHADQVLZUUDAYCUUEYDQQDVMOQXLYQDVNOTYB
        UUBYHUUCYBUUBPZUUCYHUUFYSUUCVOZYHVOZYBYSUUAVPYSUUGPYQQCUCMZUUFUUHYQQCVQ
        UUFUUIJYTLRZUUHAUUIUUJVRYAUUBAUUIUUJHVSTUUFUUJJXLLRZUUHUUFYTXLJLYBYSUUA
        VTWAUUFJXLUUFWDYBXLQMZUUBYEWBWCWEWFWGWHWIWJWKWNAYOYAYHFTAYPYAYHGTXNCWLW
        MWOWPYIXLYBXLWQMYHYBXLYEWRWBWSWOXEYBUUKPZXLXOYBUULUUKYEWBYBYFUUKYGWBYBU
        UKWTUUMJYJXOLUUMXNQNZJYJLRUUMYLUUNAYLYAUUKYMTXNXAOXNXBOAYKYAUUKYNTXCXDY
        EYBWDXFXGAXTXRXQSEIDXHOXC $.
    $}

    itg1lea.4 $e |- ( ph -> G e. dom S.1 ) $.
    itg1lea.5 $e |- ( ( ph /\ x e. ( RR \ A ) ) -> ( F ` x ) <_ ( G ` x ) ) $.
    $( Approximate version of ~ itg1le .  If ` F <_ G ` for almost all ` x ` ,
       then ` S.1 F <_ S.1 G ` .  (Contributed by Mario Carneiro, 28-Jun-2014.)
       (Revised by Mario Carneiro, 6-Aug-2014.) $)
    itg1lea $p |- ( ph -> ( S.1 ` F ) <_ ( S.1 ` G ) ) $=
      ( cc0 citg1 cfv cmin co cle wbr wcel cr syl cof i1fsub syl2anc cv cdif wa
      cdm eldifi i1ff ffvelrnda subge0d sylan2 mpbird wceq cvv wfn ffn reex a1i
      wb wf inidm eqidd ofval breqtrrd itg1ge0a itg1sub breqtrd itg1cl mpbid )
      AKELMZDLMZNOZPQVLVKPQAKEDNUAOZLMZVMPABCVNAELUGZRZDVPRZVNVPRIFEDUBUCGHABUD
      ZSCUERZUFZKVSEMZVSDMZNOZVSVNMZPWAKWDPQZWCWBPQZJVTAVSSRZWFWGUTVSSCUHZAWHUF
      ZWBWCASSVSEAVQSSEVAZIEUITZUJASSVSDAVRSSDVAZFDUITZUJUKULUMVTAWHWEWDUNWIASS
      WBWCNSEDUOUOVSAWKESUPWLSSEUQTAWMDSUPWNSSDUQTSUORAURUSZWOSVBWJWBVCWJWCVCVD
      ULVEVFAVQVRVOVMUNIFEDVGUCVHAVKVLAVQVKSRIEVITAVRVLSRFDVITUKVJ $.
  $}

  ${
    $d x F $.  $d x G $.
    $( If one simple function dominates another, then the integral of the
       larger is also larger.  (Contributed by Mario Carneiro, 28-Jun-2014.)
       (Revised by Mario Carneiro, 6-Aug-2014.) $)
    itg1le $p |- ( ( F e. dom S.1 /\ G e. dom S.1 /\ F oR <_ G ) ->
                   ( S.1 ` F ) <_ ( S.1 ` G ) ) $=
      ( vx citg1 cdm wcel cle wbr c0 cr a1i cfv wa cvv wfn i1ff ffn 3syl eqidd
      wf cofr w3a simp1 wss 0ss covol cc0 wceq ovol0 simp2 cv cdif eldifi simpl
      wi simpr reex inidm ofrval 3exp 3impia imp sylan2 itg1lea ) ADEZFZBVEFZAB
      GUAHZUBZCIABVFVGVHUCIJUDVIJUEKIUFLUGUHVIUIKVFVGVHUJCUKZJIULFVIVJJFZVJALZV
      JBLZGHZVJJIUMVIVKVNVFVGVHVKVNUOVFVGMZVHVKVNVOJJVLVMGJABNNVJVOVFJJATAJOVFV
      GUNAPJJAQRVOVGJJBTBJOVFVGUPBPJJBQRJNFVOUQKZVPJURVOVKMZVLSVQVMSUSUTVAVBVCV
      D $.
  $}

  ${
    $d j n x y z A $.  $d j k n x y z F $.  $d j k y G $.  $d j k n x ph $.
    itg1climres.1 $e |- ( ph -> A : NN --> dom vol ) $.
    itg1climres.2 $e |- ( ( ph /\ n e. NN ) ->
      ( A ` n ) C_ ( A ` ( n + 1 ) ) ) $.
    itg1climres.3 $e |- ( ph -> U. ran A = RR ) $.
    itg1climres.4 $e |- ( ph -> F e. dom S.1 ) $.
    itg1climres.5 $e |- G =
      ( x e. RR |-> if ( x e. ( A ` n ) , ( F ` x ) , 0 ) ) $.
    $( Restricting the simple function ` F ` to the increasing sequence
       ` A ( n ) ` of measurable sets whose union is ` RR ` yields a sequence
       of simple functions whose integrals approach the integral of ` F ` .
       (Contributed by Mario Carneiro, 15-Aug-2014.) $)
    itg1climres $p |- ( ph -> ( n e. NN |-> ( S.1 ` G ) ) ~~> ( S.1 ` F ) ) $=
      ( vj cn cfv cvol wcel syl cr wceq cle vk vz vy citg1 cmpt crn cc0 cdif cv
      csn ccnv cima cmul co csu cli cin c1 cvv nnuz 1zzd cfn wss cdm i1frn ssfi
      difss sylancl wa clt csup covol i1fima ad2antrr ffvelrnda adantlr syl2anc
      inmbl mblvol inss1 mblss i1fima2sn sylan adantr eqeltrrd ovolsscl syl3anc
      a1i eqeltrd eqid fmptd caddc wbr wral sslin wf peano2nn 3brtr4d ralrimiva
      ovolss fveq2 ineq2d fveq2d fvex fvmpt breq12d ralbiia cbvralv bitr4i wrex
      sylibr breq1d cuni cxr inex2 sseq12d ciun wfn ffn 3syl eqtrd sylib eqtr3d
      fniunfv c0 wne frn wb breqtrrd i1ff recnd nnex mptex oveq2d eqtr4d adantl
      eqeq1d fniniseg nfcv sumeq2sdv ffvelrn syl2an oveq1 sylancr breq2 ralbidv
      rspcev climsup volsup iuneq2i cbviunv iunin2 3eqtr2i df-ss syl5eq fdm 1nn
      r19.21bi ne0i eqnetrd dm0rn0 necon3bii breq1 ralrn rexbidv mpbird supxrre
      mp1i ccom rnco2 eqidd cpnf cicc volf feqmptd fmptco rneqd supeq1d 3eqtr4d
      syl5reqr ssdifssd sselda climmulc2 cc remulcld anasss i1fres cif fnfvelrn
      ovex i1f0rn ifcld ssdif ssdifd itg1val2 syl13anc wal c0ex fvmpt2 eldifsni
      ifex mpan2 ad2antlr neeq1 syl5ibrcom iffalse necon1ai syl6 pm4.71rd bitrd
      iftrue pm5.32i ancom bitri syl6bb pm5.32da syl6bbr anbi1d 3bitr4d alrimiv
      anass syl5bb nfmpt1 nfcxfr nfcnv nfima sumeq2dv mpteq2dva fveq1d sylan9eq
      elin cleqf sumex climfsum itg1val ) ADMFUDNZUEZEUFZUGUJZUHZUAUIZEUKVUAUJZ
[encoded data, 4480 characters]
      YOQYI $.
  $}

  ${
    $d g j k m n x y z F $.  $d g j k n x G $.  $d m J $.  $d j k m n x y ph $.
    $d m x y A $.
    mbfi1fseq.1 $e |- ( ph -> F e. MblFn ) $.
    mbfi1fseq.2 $e |- ( ph -> F : RR --> ( 0 [,) +oo ) ) $.
    ${
      mbfi1fseq.3 $e |- J = ( m e. NN , y e. RR |->
        ( ( |_ ` ( ( F ` y ) x. ( 2 ^ m ) ) ) / ( 2 ^ m ) ) ) $.
      $( Lemma for ~ mbfi1fseq .  (Contributed by Mario Carneiro,
         16-Aug-2014.) $)
      mbfi1fseqlem1 $p |- ( ph -> J : ( NN X. RR ) --> ( 0 [,) +oo ) ) $=
        ( cv cfv c2 co cc0 wcel cr wral cn wa cle wbr cexp cmul cfl cdiv cxp wf
        cpnf cico simpr ffvelrn syl2an elrege0 sylib simpld cn0 nnexpcl sylancr
        2nn nnnn0 ad2antrl nnred remulcld reflcl syl nndivred clt nnnn0d mulge0
        nn0ge0d syl12anc flge0nn0 syl2anc nngt0d divge0 syl22anc sylanbrc fmpt2
        ralrimivva ) ABIZDJZKCIZUALZUBLZUCJZWBUDLZMUGUHLZNZBOPCQPQOUEWFEUFAWGCB
        QOAWAQNZVSONZRZRZWEONMWESTZWGWKWDWBWKWCONZWDONZWKVTWBWKVTONZMVTSTZWKVTW
        FNZWOWPRZAOWFDUFWIWQWJGWHWIUIOWFVSDUJUKVTULUMZUNWKWBWHWBQNZAWIWHKQNWAUO
        NWTURWAUSKWAUPUQUTZVAZVBZWCVCVDZXAVEWKWNMWDSTWBONZMWBVFTWLXDWKWDWKWMMWC
        STZWDUONXCWKWRXEMWBSTXFWSXBWKWBWKWBXAVGVIVTWBVHVJWCVKVLVIXBWKWBXAVMWDWB
        VNVOWEULVPVRCBQOWEWFEHVQUM $.

      mbfi1fseq.4 $e |- G = ( m e. NN |-> ( x e. RR |->
        if ( x e. ( -u m [,] m ) ,
        if ( ( m J x ) <_ m , ( m J x ) , m ) , 0 ) ) ) $.
      $( Lemma for ~ mbfi1fseq .  (Contributed by Mario Carneiro, 16-Aug-2014.)
         (Revised by Mario Carneiro, 23-Aug-2014.) $)
      mbfi1fseqlem2 $p |- ( A e. NN -> ( G ` A ) = ( x e. RR |->
        if ( x e. ( -u A [,] A ) ,
        if ( ( A J x ) <_ A , ( A J x ) , A ) , 0 ) ) ) $=
        ( cr cv cneg cicc co cle cif cc0 wcel wbr cmpt cn wceq negeq id oveq12d
        eleq2d oveq1 breq12d ifbieq12d ifbieq1d mpteq2dv reex mptex fvmpt ) EDB
        MBNZENZOZUSPQZUAZUSURHQZUSRUBZVCUSSZTSZUCBMURDOZDPQZUAZDURHQZDRUBZVJDSZ
        TSZUCUDGUSDUEZBMVFVMVNVBVIVEVLTVNVAVHURVNUTVGUSDPUSDUFVNUGZUHUIVNVDVKVC
        USVJDVNVCVJUSDRUSDURHUJZVOUKVPVOULUMUNLBMVMUOUPUQ $.

      $( Lemma for ~ mbfi1fseq .  (Contributed by Mario Carneiro,
         16-Aug-2014.) $)
      mbfi1fseqlem3 $p |- ( ( ph /\ A e. NN ) -> ( G ` A ) : RR -->
        ran ( m e. ( 0 ... ( A x. ( 2 ^ A ) ) ) |-> ( m / ( 2 ^ A ) ) ) ) $=
        ( cn wcel cr cc0 co cdiv cfv syl wa c2 cexp cmul cfz cmpt crn cneg cicc
        cv wf cle wbr cif wceq clt wb cxp wral cpnf cico rge0ssre simpr ffvelrn
        cfl syl2an sseldi cn0 2nn nnnn0 nnexpcl sylancr ad2antrl nnred remulcld
        nndivred ralrimivva fmpt2 sylib fovrn syl3an1 3expa nnre ad2antlr nngt0
        reflcl jca lemul1 syl3anc biimpa cuz simplr adantr fveq2d simpl oveq12d
        cz oveq2d ovmpt2a syl2anc oveq1d ffvelrnda elrege0 simpld nnnn0d mulge0
        ovex nn0ge0d syl12anc flge0nn0 nn0cnd nncnd nnne0d divcan1d eqtrd nn0uz
        eqeltrd syl6eleq nnmulcl mpdan nnzd elfz5 mpbird oveq1 eqid fvmpt recnd
        divcan4d wfn elfznn0 nn0red nndivre syl2anr fmptd ffn fnfvelrn eqeltrrd
        adantl wn eluzfz2 ifclda eluzfz1 nnne0 div0d ifcld mbfi1fseqlem2 feq1d
        nncn ) ADMNZUAZOEPDUBDUCQZUDQZUEQZEUJZUUKRQZUFZUGZDGSZUKOUUQBOBUJZDUHDU
        IQNZDUUSHQZDULUMZUVADUNZPUNZUFZUKUUJBOUVDUUQUVEUUJUUSONZUAZUUTUVCPUUQUV
        GUVBUVADUUQUVGUVBUAZUVAUUKUDQZUUPSZUVAUUQUVHUVJUVIUUKRQZUVAUVHUVIUUMNZU
        VJUVKUOUVHUVLUVIUULULUMZUVGUVBUVMUVGUVAONZDONZUUKONZPUUKUPUMZUAZUVBUVMU
        QAUUIUVFUVNAMOUROHUKZUUIUVFUVNACUJZFSZUBUUNUCQZUDQZVESZUWBRQZONZCOUSEMU
        SUVSAUWFECMOAUUNMNZUVTONZUAZUAZUWDUWBUWJUWCONUWDONUWJUWAUWBUWJPUTVAQZOU
        WAVBAOUWKFUKZUWHUWAUWKNUWIJUWGUWHVCOUWKUVTFVDVFVGUWJUWBUWGUWBMNZAUWHUWG
        UBMNZUUNVHNUWMVIUUNVJUBUUNVKVLVMZVNVOUWCWFTUWOVPVQECMOUWEOHKVRVSDUUSOMO
        HVTWAWBZUUIUVOAUVFDWCWDZUVGUUKMNZUVRUUIUWRAUVFUUIUWNDVHNUWRVIDVJUBDVKVL
        ZWDZUWRUVPUVQUUKWCUUKWEWGTUVADUUKWHWIWJUVHUVIPWKSZNUULWQNUVLUVMUQUVHUVI
        VHUXAUVHUVIUUSFSZUUKUDQZVESZVHUVHUVIUXDUUKRQZUUKUDQUXDUVHUVAUXEUUKUDUVH
        UUIUVFUVAUXEUOUVGUUIUVBAUUIUVFWLWMUUJUVFUVBWLECDUUSMOUWEUXEHUUNDUOZUVTU
        USUOZUAZUWDUXDUWBUUKRUXHUWCUXCVEUXHUWAUXBUWBUUKUDUXHUVTUUSFUXFUXGVCWNUX
        HUUNDUBUCUXFUXGWOWRZWPWNUXIWPKUXDUUKRXGWSWTXAUVHUXDUUKUVHUXDUVGUXDVHNZU
        VBUVGUXCONPUXCULUMZUXJUVGUXBUUKUVGUXBONZPUXBULUMZUVGUXBUWKNUXLUXMUAZUUJ
        OUWKUUSFAUWLUUIJWMXBUXBXCVSZXDUVGUUKUWTVNZVOUVGUXNUVPPUUKULUMUXKUXOUXPU
        VGUUKUVGUUKUWTXEXHUXBUUKXFXIUXCXJWTWMZXKUVHUUKUVGUWRUVBUWTWMZXLZUVHUUKU
        XRXMZXNXOUXQXQXPXRUVHUULUVGUULMNZUVBUUIUYAAUVFUUIUWRUYAUWSDUUKXSXTWDZWM
        YAUVIPUULYBWTYCZEUVIUUOUVKUUMUUPUUNUVIUUKRYDUUPYEZUVIUUKRXGYFTUVHUVAUUK
        UVHUVAUVGUVNUVBUWPWMYGUXSUXTYHXOUVHUUPUUMYIZUVLUVJUUQNUVGUYEUVBUUJUYEUV
        FUUJUUMOUUPUKUYEUUJEUUMUUOOUUPUUNUUMNZUUNONUWRUUOONUUJUYFUUNUUNUULYJYKU
        UIUWRAUWSYRUUNUUKYLYMUYDYNUUMOUUPYOTWMZWMUYCUUMUVIUUPYPWTYQUVGDUUQNUVBY
        SUVGUULUUPSZDUUQUVGUYHUULUUKRQZDUVGUULUUMNZUYHUYIUOUVGUULUXANZUYJUVGUUL
        VHUXAUVGUULUYBXEXPXRZPUULYTTZEUULUUOUYIUUMUUPUUNUULUUKRYDUYDUULUUKRXGYF
        TUVGDUUKUVGDUWQYGUVGUUKUWTXLUVGUUKUWTXMYHXOUVGUYEUYJUYHUUQNUYGUYMUUMUUL
        UUPYPWTYQWMUUAUVGPUUPSZPUUQUVGUYNPUUKRQZPUVGPUUMNZUYNUYOUOUVGUYKUYPUYLP
        UULUUBTZEPUUOUYOUUMUUPUUNPUUKRYDUYDPUUKRXGYFTUVGUWRUYOPUOUWTUWRUUKUUKUU
        HUUKUUCUUDTXOUVGUYEUYPUYNUUQNUYGUYQUUMPUUPYPWTYQUUEUVEYEYNUUJOUUQUURUVE
        UUIUURUVEUOAABCDEFGHIJKLUUFYRUUGYC $.

      $( Lemma for ~ mbfi1fseq .  This lemma is not as interesting as it is
         long - it is simply checking that ` G ` is in fact a sequence of
         simple functions, by verifying that its range is in
         ` ( 0 ... n 2 ^ n ) / ( 2 ^ n ) ` (which is to say, the numbers from
         ` 0 ` to ` n ` in increments of ` 1 / ( 2 ^ n ) ` ), and also that the
         preimage of each point ` k ` is measurable, because it is equal to
         ` ( -u n [,] n ) i^i ( ``' F " ( k [,) k + 1 / ( 2 ^ n ) ) ) ` for
         ` k < n ` and ` ( -u n [,] n ) i^i ( ``' F " ( k [,) +oo ) ) ` for
         ` k = n ` .  (Contributed by Mario Carneiro, 16-Aug-2014.) $)
      mbfi1fseqlem4 $p |- ( ph -> G : NN --> dom S.1 ) $=
        ( cn wcel cr co cle wbr cc0 wa syl vn vk wfn cfv cdm wral cneg cicc cif
        cv wf cmpt c2 cexp cmul cdiv crn wss cn0 2nn nnnn0 nnexpcl sylancr eqid
        adantl frn cfn ffn sylib syl2anc csn cdif ccnv cima weq cmnf caddc cioo
        c1 cvol wceq ad2antlr cvv simpr ovex ifex fvmpt2 sylancl adantlr eqeq1d
        eqtrd neeq1 syl5ibrcom iffalse necon1ai pm4.71rd iftrue wb nnred adantr
        wne cfl rge0ssre reflcl syl3anc ifcld biantrurd 3bitr4d breq1 syl112anc
        remulcld lemul1 cz bitrd fveq2d oveq2d oveq12d breq2d sylan9bbr 3bitr2d
        ssdifssd sselda nncnd eqeltrd biimparc iftrued ralrimiva ad2antrr recnd
        clt nnne0d cxr rexrd elioomnf elpreima bitr4d 3bitrd wn syl5bb pm5.32da
        citg1 mptex fnmpti a1i cfz mbfi1fseqlem3 elfznn0 nn0red nndivre syl2anr
        reex fmptd fssd wfo fzfid dffn4 fofi ssfi cin mbfi1fseqlem2 fveq1d c0ex
        vex eldifsni syl6 simpllr cxp cpnf cico syl2an sseldi ad2antrl nndivred
        ffvelrn ralrimivva fmpt2 fovrn syl3an1 3expa lemin letri3d eqeq2d leidd
        min2 biantrud ffvelrnda elrege0 simpld lemuldiv nnmulcl mpdan nnzd flge
        nngt0d simpl ovmpt2a eleqtrrd wrex rnmpt abeq2i elfzelz divcan1d eleq1d
        zcnd oveq1 rexlimdva syl5bi imp syldan flbi eqtr3d eqbrtrrd jca impbid1
        eldifi nnre nn0ge0d ifboth eqbrtrd ralrn mpbird r19.21bi sstrd divmul3d
        sylan2 ifnefalse eleq2d nnrecred readdcld adddird recid2d anbi12d ancom
        ex ltmul1 syl6bb pm2.61dane notbid lenltd anbi2d fniniseg elin renegcld
        eldif iccmbl mblss sseld adantrd eqrdv rembl cmbf fss mbfima ifcl inmbl
        difmbl covol mblvol 0re sylbid expimpd ssrdv iccvolcl eqeltrrd ovolsscl
        iccssre i1fd ffnfv sylanbrc ) AFLUCZUAUJZFUDZUUAUEZMZUALUFLVVMFUKVVJADL
[encoded data, 5920 characters]
        VCVJVVDVXJVXLVVEXEYDVVGYGUALVVMFVVHVVI $.

      $( Lemma for ~ mbfi1fseq .  Verify that ` G ` describes an increasing
         sequence of positive functions.  (Contributed by Mario Carneiro,
         16-Aug-2014.) $)
      mbfi1fseqlem5 $p |- ( ( ph /\ A e. NN ) ->
        ( 0p oR <_ ( G ` A ) /\ ( G ` A ) oR <_ ( G ` ( A + 1 ) ) ) ) $=
        ( cn wcel cle wbr co cc0 cr c2 wa c0p cfv cofr caddc cneg cicc cif wral
        c1 cv cexp cmul cfl cdiv clt cn0 cpnf wf adantr ffvelrnda elrege0 sylib
        simpld 2nn nnnn0 nnexpcl sylancr ad2antlr nnred remulcld nnnn0d nn0ge0d
        cico mulge0 syl12anc flge0nn0 syl2anc nn0red nngt0d syl22anc wceq simpr
        divge0 fveq2d simpl oveq2d oveq12d ovex ovmpt2a adantll breqtrrd ifboth
        breq2 0le0 sylancl ralrimiva cc cvv wfn csn fnconstg ax-mp df-0p fneq1i
        cxp 0re mpbir a1i citg1 cdm mbfi1fseqlem4 i1ff ffn 3syl cnex wss adantl
        cmpt mbfi1fseqlem2 fveq1d ffvelrn syl2an reflcl ifcld ifcl fvmpt2 eqtrd
        syl eqid ofrfval mpbird recnd mulassd wb mpbid cz eqbrtrd 3brtr4d letrd
        reex cin ax-resscn sseqin2 mpbi 0pval rge0ssre sseldi ad2antrl nndivred
        ralrimivva fmpt2 fovrn syl3an1 3expa nnre mbfi1fseqlem1 ad2antrr fovrnd
        peano2nn min1 2cn eqeltrrd 2cnd nnne0d divcan1d oveq1d 3eqtr2d flle 2re
        expp1 2pos pm3.2i lemul1 syl3anc eqtr4d flcld zmulcl lemuldiv syl112anc
        2z flge min2 lep1d iftrue renegcld lenegd sselda iftrued iffalse simprd
        iccss wn pm2.61dan inidm jca ) ADMNZUAZUBDGUCZOUDZPZUWSDUJUEQZGUCZUWTPZ
        UWRUXARBUKZDUFZDUGQZNZDUXEHQZDOPZUXIDUHZRUHZOPZBSUIUWRUXMBSUWRUXESNZUAZ
        RUXKOPZRROPZUXMUXORUXIOPZRDOPZUXPUXORUXEFUCZTDULQZUMQZUNUCZUYAUOQZUXIOU
        XOUYCSNZRUYCOPUYASNZRUYAUPPRUYDOPUXOUYCUXOUYBSNZRUYBOPZUYCUQNUXOUXTUYAU
        XOUXTSNZRUXTOPZUXOUXTRURVNQZNUYIUYJUAZUWRSUYKUXEFASUYKFUSZUWQJUTVAUXTVB
        VCZVDZUXOUYAUWQUYAMNZAUXNUWQTMNZDUQNZUYPVEDVFZTDVGVHVIZVJZVKZUXOUYLUYFR
        UYAOPUYHUYNVUAUXOUYAUXOUYAUYTVLVMUXTUYAVOVPUYBVQVRZVSZUXOUYCVUCVMVUAUXO
        UYAUYTVTUYCUYAWDWAUWQUXNUXIUYDWBAECDUXEMSCUKZFUCZTEUKZULQZUMQZUNUCZVUHU
        OQZUYDHVUGDWBZVUEUXEWBZUAZVUJUYCVUHUYAUOVUNVUIUYBUNVUNVUFUXTVUHUYAUMVUN
        VUEUXEFVULVUMWCWEVUNVUGDTULVULVUMWFWGZWHWEVUOWHKUYCUYAUOWIWJWKZWLUWQUXS
        AUXNUWQDUYSVMVIUXJUXRUXSUXPUXIDUXIUXKROWNDUXKROWNWMVRWOUXHUXPUXQUXMUXKR
        UXKUXLROWNRUXLROWNWMWPWQUWRBWRSRUXLOSUBUWSWSWSUBWRWTZUWRVUQWRRXAXFZWRWT
        ZRSNZVUSXGWRRSXBXCWRUBVURXDXEXHXIUWRUWSXJXKZNSSUWSUSUWSSWTAMVVADGABCEFG
        HIJKLXLZVAUWSXMSSUWSXNXOZWRWSNUWRXPXISWSNUWRUUAXIZSWRXQWRSUUBSWBUUCSWRU
        UDUUEUXEWRNUXEUBUCRWBUWRUXEUUFXRUXOUXEUWSUCZUXEBSUXLXSZUCZUXLUWQVVEVVGW
        BAUXNUWQUXEUWSVVFABCDEFGHIJKLXTYAVIUXOUXNUXLSNZVVGUXLWBUWRUXNWCZUXOUXKS
        NVUTVVHUXOUXJUXIDSAUWQUXNUXISNZAMSXFZSHUSZUWQUXNVVJAVUKSNZCSUIEMUIVVLAV
        VMECMSAVUGMNZVUESNZUAZUAZVUJVUHVVQVUISNVUJSNVVQVUFVUHVVQUYKSVUFUUGAUYMV
        VOVUFUYKNVVPJVVNVVOWCSUYKVUEFYBYCUUHVVQVUHVVNVUHMNZAVVOVVNUYQVUGUQNVVRV
        EVUGVFTVUGVGVHUUIZVJVKVUIYDYIVVSUUJUUKECMSVUKSHKUULVCDUXESMSHUUMUUNUUOZ
        UWQDSNZAUXNDUUPVIZYEZXGUXHUXKRSYFWPBSUXLSVVFVVFYJYGVRYHZYKYLUWRUXDUXLUX
        EUXBUFZUXBUGQZNZUXBUXEHQZUXBOPZVWHUXBUHZRUHZOPZBSUIUWRVWLBSUXOUXHVWLUXO
        UXHUAZUXKVWJUXLVWKOUXOUXKVWJOPZUXHUXOUXKVWHOPZUXKUXBOPZVWNUXOUXKUXIVWHV
        WCVVTUXOVWHSNZRVWHOPZUXOVWHUYKNVWQVWRUAUXOUXBUXEUYKMSHAVVKUYKHUSUWQUXNA
        CEFHIJKUUQUURUWQUXBMNZAUXNDUUTZVIZVVIUUSVWHVBVCZVDZUXOVVJVWAUXKUXIOPVVT
        VWBUXIDUVAVRUXOUYDUXTTUXBULQZUMQZUNUCZVXDUOQZUXIVWHOUXOUYDVXDUMQZVXFOPZ
        UYDVXGOPZUXOVXHUYCTUMQZVXFOUXOVXHUYDUYATUMQZUMQUYDUYAUMQZTUMQVXKUXOVXDV
        XLUYDUMUXOTWRNUYRVXDVXLWBUVBUWQUYRAUXNUYSVITDUVKVHZWGUXOUYDUYATUXOUYDUX
        OUXIUYDSVUPVVTUVCZYMUXOUYAVUAYMZUXOUVDZYNUXOVXMUYCTUMUXOUYCUYAUXOUYCVUD
        YMVXPUXOUYAUYTUVEUVFUVGUVHUXOVXKVXEOPZVXKVXFOPZUXOVXKUYBTUMQZVXEOUXOUYC
        UYBOPZVXKVXTOPZUXOUYGVYAVUBUYBUVIYIUXOUYEUYGTSNZRTUPPZUAZVYAVYBYOVUDVUB
        VYEUXOVYCVYDUVJUVLUVMXIUYCUYBTUVNUVOYPUXOVXEUXTVXLUMQVXTUXOVXDVXLUXTUMV
        XNWGUXOUXTUYATUXOUXTUYOYMVXPVXQYNUVPWLUXOVXESNZVXKYQNZVXRVXSYOUXOUXTVXD
        UYOUXOVXDUXOUYQUXBUQNVXDMNVEUXOUXBVXAVLZTUXBVGVHZVJZVKZUXOUYCYQNTYQNVYG
        UXOUYBVUBUVQUWAUYCTUVRWPVXEVXKUWBVRYPYRUXOUYDSNVXFSNZVXDSNRVXDUPPVXIVXJ
        YOVXOUXOVYFVYLVYKVXEYDYIVYJUXOVXDVYIVTUYDVXFVXDUVSUVTYPVUPUXOVWSUXNVWHV
        XGWBVXAVVIECUXBUXEMSVUKVXGHVUGUXBWBZVUMUAZVUJVXFVUHVXDUOVYNVUIVXEUNVYNV
        UFUXTVUHVXDUMVYNVUEUXEFVYMVUMWCWEVYNVUGUXBTULVYMVUMWFWGZWHWEVYOWHKVXFVX
        DUOWIWJVRYSYTUXOUXKDUXBVWCVWBUXOUXBVXAVJZUXOVVJVWAUXKDOPVVTVWBUXIDUWCVR
        UXODVWBUWDZYTVWIVWOVWPVWNVWHUXBVWHVWJUXKOWNUXBVWJUXKOWNWMVRUTUXHUXLUXKW
        BUXOUXHUXKRUWEXRVWMVWGVWJRUXOUXGVWFUXEUXOVWESNUXBSNVWEUXFOPZDUXBOPZUXGV
        WFXQUXOUXBVYPUWFVYPUXOVYSVYRVYQUXODUXBVWBVYPUWGYPVYQVWEUXBUXFDUWLWAUWHU
        WIYSUXOUXHUWMZUAUXLRVWKOVYTUXLRWBUXOUXHUXKRUWJXRUXORVWKOPZVYTUXORVWJOPZ
        UXQWUAUXOVWRRUXBOPZWUBUXOVWQVWRVXBUWKUXOUXBVYHVMVWIVWRWUCWUBVWHUXBVWHVW
        JROWNUXBVWJROWNWMVRWOVWGWUBUXQWUAVWJRVWJVWKROWNRVWKROWNWMWPUTYRUWNWQUWR
        BSSUXLVWKOSUWSUXCWSWSVVCUWRUXCVVANZSSUXCUSUXCSWTAMVVAGUSVWSWUDUWQVVBVWT
        MVVAUXBGYBYCUXCXMSSUXCXNXOVVDVVDSUWOVWDUXOUXEUXCUCZUXEBSVWKXSZUCZVWKUXO
        VWSWUEWUGWBVXAVWSUXEUXCWUFABCUXBEFGHIJKLXTYAYIUXOUXNVWKSNZWUGVWKWBVVIUX
        OVWJSNVUTWUHUXOVWIVWHUXBSVXCVYPYEXGVWGVWJRSYFWPBSVWKSWUFWUFYJYGVRYHYKYL
        UWP $.

      $( Lemma for ~ mbfi1fseq .  Verify that ` G ` converges pointwise to
         ` F ` , and wrap up the existence quantifier.  (Contributed by Mario
         Carneiro, 16-Aug-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
      mbfi1fseqlem6 $p |- ( ph -> E. g ( g : NN --> dom S.1 /\ A. n e. NN
        ( 0p oR <_ ( g ` n ) /\ ( g ` n ) oR <_ ( g ` ( n + 1 ) ) ) /\
        A. x e. RR ( n e. NN |-> ( ( g ` n ) ` x ) ) ~~> ( F ` x ) ) ) $=
        ( cn cfv cle wbr co cr wcel vk vj citg1 cdm wf cv cofr c1 caddc wa wral
        c0p cmpt cli w3a mbfi1fseqlem4 mbfi1fseqlem5 ralrimiva cabs simpr recnd
        wex clt wrex abscld cc0 cpnf cico ffvelrnda elrege0 sylib readdcld arch
        simpld syl c2 cdiv cexp cmin cvv cuz eqid cz nnz ad2antrl cn0 nnuz 1zzd
        cc halfcn a1i wceq halfre 0re halfgt0 ltleii absid mp2an halflt1 expcnv
        eqbrtri nnex mptex nnnn0 adantl oveq2 ovex fvmpt sylancr eqeltrd oveq2d
        expcl weq eqtr4d climsubc2 adantr ad2antrr fveq1d ffvelrnd cmul oveq12d
        cfl nnred mpbird wb syl112anc mpbid eqbrtrd cneg cicc cif 3eqtrd simprd
        ifex letrd syl2anc iftrued fveq2d fveq1 ralbidv subid1d breqtrd reexpcl
        simprl eluznn sylan resubcld fveq2 fvex ad3antrrr i1ff nnexpcl divcan4d
        2nn nnne0d eqcomd 2cnd wne 2ne0 eluzelz remulcld 1cnd divsubdird fllep1
        exprecd 1red reflcl lesubaddd peano2rem nngt0d lediv1 mbfi1fseqlem2 vex
        fvmpt2 sylancl addge01d simplrr eluzle absled renegcld elicc2 mpbir3and
        c0ex ltled simpl ovmpt2a nndivred flle ledivmul2 absge0d addge02d eqtrd
        3brtr4d climsqz rexlimddv eqeltri feq1 breq2d breq12d anbi12d 3anbi123d
        mpteq2dv breq1d spcev syl3anc ) ANUCUDZHUEZULFUFZHOZPUGZQZUXIUXHUHUIRZH
        OZUXJQZUJZFNUKZFNBUFZUXIOZUMZUXQGOZUNQZBSUKZNUXFDUFZUEZULUXHUYCOZUXJQZU
        YEUXLUYCOZUXJQZUJZFNUKZFNUXQUYEOZUMZUXTUNQZBSUKZUOZDVBABCEGHIJKLMUPZAUX
        OFNABCUXHEGHIJKLMUQURAUYABSAUXQSTZUJZUXQUSOZUXTUIRZUAUFZVCQZUYAUANUYRUY
        TSTZVUBUANVDUYRUYSUXTUYRUXQUYRUXQAUYQUTZVAZVEZUYRUXTSTZVFUXTPQZUYRUXTVF
        VGVHRZTZVUGVUHUJZASVUIUXQGKVIZUXTVJZVKVNZVLZUYTUAVMVOUYRVUANTZVUBUJZUJZ
        UXTUBFNUXTUHVPVQRZUXHVRRZVSRZUMZUXSVUAVTVUAWAOZVVCWBVUPVUAWCTUYRVUBVUAW
        DWEUYRVVBUXTUNQVUQUYRVVBUXTVFVSRUXTUNUYRVFUXTUBFWFVUTUMZVVBUHVTNWGUYRWH
        UYRVUSFVUSWITZUYRWJWKVUSUSOZUHVCQUYRVVFVUSUHVCVUSSTZVFVUSPQVVFVUSWLWMVF
        VUSWNWMWOWPVUSWQWRWSXAWKWTUYRUXTVUNVAZVVBVTTUYRFNVVAXBXCWKUYRUBUFZNTZUJ
        ZVVIVVDOZVUSVVIVRRZWIVVKVVIWFTZVVLVVMWLVVJVVNUYRVVIXDZXEZFVVIVUTVVMWFVV
        DUXHVVIVUSVRXFZVVDWBVUSVVIVRXGXHVOZVVKVVEVVNVVMWITWJVVPVUSVVIXLXIXJVVKV
        VIVVBOZUXTVVMVSRZUXTVVLVSRVVJVVSVVTWLZUYRFVVIVVAVVTNVVBFUBXMZVUTVVMUXTV
        SVVQXKVVBWBUXTVVMVSXGXHZXEVVKVVLVVMUXTVSVVRXKXNXOUYRUXTVVHUUAUUBXPUXSVT
        TVURFNUXRXBXCWKVURVVIVVCTZUJZVVSVVTSVWEVVJVWAVURVUPVWDVVJUYRVUPVUBUUDZV
        VIVUAUUEUUFZVWCVOZVWEUXTVVMUYRVUGVUQVWDVUNXQZVWEVVGVVNVVMSTWMVWEVVJVVNV
        WGVVOVOZVUSVVIUUCXIUUGXJVWEVVIUXSOZUXQVVIHOZOZSVWEVVJVWKVWMWLVWGFVVIUXR
        VWMNUXSVWBUXQUXIVWLUXHVVIHUUHXRUXSWBUXQVWLUUIXHVOZVWESSUXQVWLVWEVWLUXFT
        SSVWLUEVWENUXFVVIHAUXGUYQVUQVWDUYPUUJVWGXSVWLUUKVOUYRUYQVUQVWDVUDXQZXSX
        JVWEVVTUXTVPVVIVRRZXTRZYBOZVWPVQRZVVSVWKPVWEVVTVWQUHVSRZVWPVQRZVWSPVWEV
        VTVWQVWPVQRZUHVWPVQRZVSRVXAVWEUXTVXBVVMVXCVSVWEVXBUXTVWEUXTVWPUYRUXTWIT
        VUQVWDVVHXQVWEVWPVWEVWPVWEVPNTVVNVWPNTUUNVWJVPVVIUULXIZYCZVAZVWEVWPVXDU
        UOZUUMUUPVWEVPVVIVWEUUQVPVFUURVWEUUSWKVWDVVIWCTVURVUAVVIUUTXEUVEYAVWEVW
        QUHVWPVWEVWQVWEUXTVWPVWIVXEUVAZVAVWEUVBVXFVXGUVCXNVWEVWTVWRPQZVXAVWSPQZ
        VWEVXIVWQVWRUHUIRPQZVWEVWQSTZVXKVXHVWQUVDVOVWEVWQUHVWRVXHVWEUVFVWEVXLVW
        RSTZVXHVWQUVGVOZUVHYDVWEVWTSTZVXMVWPSTZVFVWPVCQZVXIVXJYEVWEVXLVXOVXHVWQ
        UVIVOVXNVXEVWEVWPVXDUVJZVWTVWRVWPUVKYFYGYHVWHVWEVWKUXQVVIYIZVVIYJRTZVVI
        UXQIRZVVIPQZVYAVVIYKZVFYKZVYCVWSVWEVWKVWMUXQBSVYDUMZOZVYDVWNVWEUXQVWLVY
        EVWEVVJVWLVYEWLVWGABCVVIEGHIJKLMUVLVOXRVWEUYQVYDVTTVYFVYDWLVWOVXTVYCVFV
        YBVYAVVIVVIUXQIXGUBUVMYNUWCYNBSVYDVTVYEVYEWBUVNUVOYLVWEVXTVYCVFVWEVXTUY
        QVXSUXQPQZUXQVVIPQZVWOVWEVYGVYHVWEUYSVVIPQVYGVYHUJVWEUYSUYTVVIUYRUYSSTV
        UQVWDVUFXQZUYRVUCVUQVWDVUOXQZVWEVVIVWGYCZVWEVUHUYSUYTPQVWEVUGVUHVWEVUJV
        UKUYRVUJVUQVWDVULXQVUMVKYMVWEUYSUXTVYIVWIUVPYGVWEUYTVUAVVIVYJVWEVUAVURV
        UPVWDVWFXPYCZVYKVWEUYTVUAVYJVYLUYRVUPVUBVWDUVQUWDVWDVUAVVIPQVURVUAVVIUV
        RXEYOZYOVWEUXQVVIVWOVYKUVSYGZVNVWEVYGVYHVYNYMVWEVXSSTVVISTVXTUYQVYGVYHU
        OYEVWEVVIVYKUVTVYKVXSVVIUXQUWAYPUWBYQVWEVYCVYAVWSVWEVYBVYAVVIVWEVYAVWSV
        VIPVWEVVJUYQVYAVWSWLVWGVWOECVVIUXQNSCUFZGOZVPEUFZVRRZXTRZYBOZVYRVQRVWSI
        EUBXMZCBXMZUJZVYTVWRVYRVWPVQWUCVYSVWQYBWUCVYPUXTVYRVWPXTWUCVYOUXQGWUAWU
        BUTYRWUCVYQVVIVPVRWUAWUBUWEXKZYAYRWUDYALVWRVWPVQXGUWFYPZVWEVWSUXTVVIVWE
        VWRVWPVXNVXDUWGVWIVYKVWEVWSUXTPQZVWRVWQPQZVWEVXLWUGVXHVWQUWHVOVWEVXMVUG
        VXPVXQWUFWUGYEVXNVWIVXEVXRVWRUXTVWPUWIYFYDZVWEUXTUYTVVIVWIVYJVYKVWEVFUY
        SPQUXTUYTPQVWEUXQUYRUXQWITVUQVWDVUEXQUWJVWEUXTUYSVWIVYIUWKYGVYMYOYOYHYQ
        WUEUWLYLZUWMVWEVWKVWSUXTPWUIWUHYHUWNUWOURUYOUXGUXPUYBUODHHENBSUXQVYQYIV
        YQYJRTVYQUXQIRZVYQPQWUJVYQYKVFYKUMZUMVTMENWUKXBXCUWPUYCHWLZUYDUXGUYJUXP
        UYNUYBNUXFUYCHUWQWULUYIUXOFNWULUYFUXKUYHUXNWULUYEUXIULUXJUXHUYCHYSZUWRW
        ULUYEUXIUYGUXMUXJWUMUXLUYCHYSUWSUWTYTWULUYMUYABSWULUYLUXSUXTUNWULFNUYKU
        XRWULUXQUYEUXIWUMXRUXBUXCYTUXAUXDUXE $.
    $}

    $( A characterization of measurability in terms of simple functions (this
       is an if and only if for nonnegative functions, although we don't prove
       it).  Any nonnegative measurable function is the limit of an increasing
       sequence of nonnegative simple functions.  This proof is an example of a
       poor de Bruijn factor - the formalized proof is much longer than an
       average hand proof, which usually just describes the function ` G ` and
       "leaves the details as an exercise to the reader".  (Contributed by
       Mario Carneiro, 16-Aug-2014.)  (Revised by Mario Carneiro,
       23-Aug-2014.) $)
    mbfi1fseq $p |- ( ph -> E. g ( g : NN --> dom S.1 /\ A. n e. NN
      ( 0p oR <_ ( g ` n ) /\ ( g ` n ) oR <_ ( g ` ( n + 1 ) ) ) /\
        A. x e. RR ( n e. NN |-> ( ( g ` n ) ` x ) ) ~~> ( F ` x ) ) ) $=
      ( vy vk vm cr cv co cfv cmul cfl cdiv cle cif cc0 vj vz cn cneg cicc wcel
      cexp cmpt2 wbr cmpt weq oveq2 oveq2d fveq2d oveq12d fveq2 oveq1d cbvmpt2v
      c2 eleq1 breq1d ifbieq1d cbvmptv negeq id eleq2d oveq1 ifbieq12d mpteq2dv
      breq12d syl5eq mbfi1fseqlem6 ) ABHCIDEJUCHKHLZJLZUDZVNUEMZUFZVNVMUAUBUCKU
      BLZENZUSUALZUGMZOMZPNZWAQMZUHZMZVNRUIZWFVNSZTSZUJZUJWEFGUAUBIHUCKWDVMENZU
      SILZUGMZOMZPNZWMQMVSWMOMZPNZWMQMUAIUKZWCWQWAWMQWRWBWPPWRWAWMVSOVTWLUSUGUL
      ZUMUNWSUOUBHUKZWQWOWMQWTWPWNPWTVSWKWMOVRVMEUPUQUNUQURJIUCWJBKBLZWLUDZWLUE
      MZUFZWLXAWEMZWLRUIZXEWLSZTSZUJZJIUKZWJBKXAVPUFZVNXAWEMZVNRUIZXLVNSZTSZUJX
      IHBKWIXOHBUKZVQXKWHXNTVMXAVPUTXPWGXMWFXLVNXPWFXLVNRVMXAVNWEULZVAXQVBVBVCX
      JBKXOXHXJXKXDXNXGTXJVPXCXAXJVOXBVNWLUEVNWLVDXJVEZUOVFXJXMXFXLVNXEWLXJXLXE
      VNWLRVNWLXAWEVGZXRVJXSXRVHVBVIVKVCVL $.
  $}

  ${
    $d g n x y A $.  $d f g h k n x y F $.  $d f g h k n x y ph $.
    mbfi1flim.1 $e |- ( ph -> F e. MblFn ) $.
    ${
      mbfi1flimlem.2 $e |- ( ph -> F : RR --> RR ) $.
      $( Lemma for ~ mbfi1flim .  (Contributed by Mario Carneiro,
         5-Sep-2014.) $)
      mbfi1flimlem $p |- ( ph -> E. g ( g : NN --> dom S.1 /\
          A. x e. RR ( n e. NN |-> ( ( g ` n ) ` x ) ) ~~> ( F ` x ) ) ) $=
        ( vy cn wf cfv cle wbr wa cr cc0 cli ffvelrnda wcel cvv vf vh citg1 cdm
        vk cv c0p cofr c1 caddc co wral cmpt cif w3a cneg cmbf feqmptd eqeltrrd
        wex cpnf cico 0re ifcl sylancl max1 sylancr elrege0 sylanbrc eqid fmptd
        mbfpos mbfi1fseq renegcld mbfneg eeanv 3simpb anim12i sylib r19.26 cmin
        an4 cof i1fsub adantl simprl simprr nnex a1i inidm off weq fveq2 breq2d
        ifbieq1d fvex c0ex ifex fvmpt negeqd negex anbi12d nnuz 1zzd mptex i1ff
        wb cc syl an32s recnd adantr wceq wfn ffn eqidd ofval fveq1d 3syl eqtrd
        reex oveq12d 3eqtr4d adantlr climsub max0sub breqtrd ex sylbid ralimdva
        ovex feq1 fveq1 mpteq2dv breq1d ralbidv spcev syl6an syl5bir expimpd
        syl5 exlimdvv mp2and ) AIUCUDZUAUFZJZUGDUFZUUEKZLUHZMUUHUUGUIUJUKZUUEKU
        UIMNDIULZDIBUFZUUHKZUMZUULHOPHUFZEKZLMZUUPPUNZUMZKZQMZBOULZUOZUAUTZIUUD
        UBUFZJZUGUUGUVEKZUUIMUVGUUJUVEKUUIMNDIULZDIUULUVGKZUMZUULHOPUUPUPZLMZUV
        KPUNZUMZKZQMZBOULZUOZUBUTZIUUDCUFZJZDIUULUUGUVTKZKZUMZUULEKZQMZBOULZNZC
        UTZABUADUUSAHOUUPAOOUUOEGRZAEHOUUPUMUQAHOOEGURFUSZVLAHOUURPVAVBUKZUUSAU
        UOOSNZUUROSZPUURLMZUURUWLSUWMUUPOSZPOSZUWNUWJVCUUQUUPPOVDVEUWMUWQUWPUWO
        VCUWJPUUPVFVGUURVHVIUUSVJZVKVMABUBDUVNAHOUVKUWMUUPUWJVNZAHOUUPOUWJUWKVO
        VLAHOUVMUWLUVNUWMUVMOSZPUVMLMZUVMUWLSUWMUVKOSZUWQUWTUWSVCUVLUVKPOVDVEUW
        MUWQUXBUXAVCUWSPUVKVFVGUVMVHVIUVNVJZVKVMUVDUVSNUVCUVRNZUBUTUAUTAUWIUVCU
        VRUAUBVPAUXDUWIUAUBUXDUUFUVFNZUVBUVQNZNZAUWIUXDUUFUVBNZUVFUVQNZNUXGUVCU
        XHUVRUXIUUFUUKUVBVQUVFUVHUVQVQVRUUFUVBUVFUVQWBVSAUXEUXFUWIUXFUVAUVPNZBO
        ULZAUXENZUWIUVAUVPBOVTUXLIUUDUUEUVEWAWCZWCZUKZJZUXKDIUULUUGUXOKZKZUMZUW
        EQMZBOULZUWIUXLBHIIIUXMUUDUUDUUDUUEUVETTUULUUDSUUOUUDSNUULUUOUXMUKUUDSU
        XLUULUUOWDWEAUUFUVFWFZAUUFUVFWGZITSUXLWHWIZUYDIWJZWKUXLUXJUXTBOUXLUULOS
        ZNZUXJUUNPUWELMZUWEPUNZQMZUVJPUWEUPZLMZUYKPUNZQMZNZUXTUYFUXJUYOXGUXLUYF
        UVAUYJUVPUYNUYFUUTUYIUUNQHUULUURUYIOUUSHBWLZUUQUYHUUPUWEPUYPUUPUWEPLUUO
        UULEWMZWNUYQWOUWRUYHUWEPUULEWPWQWRWSWNUYFUVOUYMUVJQHUULUVMUYMOUVNUYPUVL
        UYLUVKUYKPUYPUVKUYKPLUYPUUPUWEUYQWTZWNUYRWOUXCUYLUYKPUWEXAWQWRWSWNXBWEU
        YGUYOUXTUYGUYONZUXSUYIUYMWAUKZUWEQUYSUYIUYMUEUUNUVJUXSUITIXCUYSXDUYGUYJ
        UYNWFUXSTSUYSDIUXRWHXEWIUYGUYJUYNWGUYSIXHUEUFZUUNUYGIXHUUNJUYOUYGDIUUMX
        HUUNUYGUUGISZNZUUMUXLVUBUYFUUMOSUXLVUBNZOOUULUUHVUDUUHUUDSOOUUHJUXLIUUD
        UUGUUEUYBRUUHXFXIRXJXKUUNVJZVKXLRUYSIXHVUAUVJUYGIXHUVJJUYOUYGDIUVIXHUVJ
        VUCUVIUXLVUBUYFUVIOSVUDOOUULUVGVUDUVGUUDSOOUVGJUXLIUUDUUGUVEUYCRUVGXFXI
        RXJXKUVJVJZVKXLRUYGVUAISZVUAUXSKZVUAUUNKZVUAUVJKZWAUKZXMUYOUYGVUGNUULVU
        AUXOKZKZUULVUAUUEKZKZUULVUAUVEKZKZWAUKZVUHVUKUXLVUGUYFVUMVURXMUXLVUGNZU
        YFNZVUMUULVUNVUPUXMUKZKZVURVUSVUMVVBXMUYFVUSUULVULVVAUXLIIVUNVUPUXMIUUE
        UVETTVUAUXLUUFUUEIXNUYBIUUDUUEXOXIUXLUVFUVEIXNUYCIUUDUVEXOXIUYDUYDUYEVU
        SVUNXPVUSVUPXPXQXRXLVUSOOVUOVUQWAOVUNVUPTTUULVUSVUNUUDSOOVUNJVUNOXNUXLI
        UUDVUAUUEUYBRVUNXFOOVUNXOXSVUSVUPUUDSOOVUPJVUPOXNUXLIUUDVUAUVEUYCRVUPXF
        OOVUPXOXSOTSVUSYAWIZVVCOWJVUTVUOXPVUTVUQXPXQXTXJVUGVUHVUMXMUYGDVUAUXRVU
        MIUXSDUEWLZUULUXQVULUUGVUAUXOWMXRUXSVJUULVULWPWSWEVUGVUKVURXMUYGVUGVUIV
        UOVUJVUQWADVUAUUMVUOIUUNVVDUULUUHVUNUUGVUAUUEWMXRVUEUULVUNWPWSDVUAUVIVU
        QIUVJVVDUULUVGVUPUUGVUAUVEWMXRVUFUULVUPWPWSYBWEYCYDYEUYGUYTUWEXMZUYOUYG
        UWEOSVVEUXLOOUULEAOOEJUXEGXLRUWEYFXIXLYGYHYIYJUWHUXPUYANCUXOUUEUVEUXNYK
        UVTUXOXMZUWAUXPUWGUYAIUUDUVTUXOYLVVFUWFUXTBOVVFUWDUXSUWEQVVFDIUWCUXRVVF
        UULUWBUXQUUGUVTUXOYMXRYNYOYPXBYQYRYSYTUUAUUBYSUUC $.
    $}

    mbfi1flim.2 $e |- ( ph -> F : A --> RR ) $.
    $( Any real measurable function has a sequence of simple functions that
       converges to it.  (Contributed by Mario Carneiro, 5-Sep-2014.) $)
    mbfi1flim $p |- ( ph -> E. g ( g : NN --> dom S.1 /\
        A. x e. A ( n e. NN |-> ( ( g ` n ) ` x ) ) ~~> ( F ` x ) ) ) $=
      ( vy cv cfv cmpt cr wcel cc0 cli wral wa cvv syl cn citg1 cdm cif wbr wex
      wf cvol wss cmbf iftrue mpteq2ia feqmptd eqeltrrd syl5eqel fvex c0ex ifex
      a1i mbfdm2 mblss rembl cdif eldifn adantl iffalsed mbfss ffvelrnda ifclda
      wn 0red adantr eqid fmptd mbfi1flimlem ssralv sselda eleq1 fveq2 ifbieq1d
      wi wceq fvmpt eqtrd breq2d ralbidva sylibd anim2d eximdv mpd ) AUAUBUCDJZ
      UGZEUABJZEJWKKKLZWMIMIJZCNZWOFKZOUDZLZKZPUEZBMQZRZDUFWLWNWMFKZPUEZBCQZRZD
      UFABDEWSAICMWRSACUHUCZNCMUIZAICWRSAICWRLICWQLZUJICWRWQWPWQOUKULAFXJUJAICM
      FHUMGUNUOZWRSNAWPRWPWQOWOFUPUQURUSZUTCVATZMXHNAVBUSXLAWOMCVCNZRWPWQOXNWPV
      JZAWOMCVDVEVFXKVGAIMWRMWSAWRMNWOMNAWPWQOMACMWOFHVHAXORVKVIVLWSVMZVNVOAXCX
      GDAXBXFWLAXBXABCQZXFAXIXBXQWAXMXABCMVPTAXAXEBCAWMCNZRZWTXDWNPXSWTXRXDOUDZ
      XDXSWMMNWTXTWBACMWMXMVQIWMWRXTMWSWOWMWBWPXRWQXDOWOWMCVRWOWMFVSVTXPXRXDOWM
      FUPUQURWCTXRXTXDWBAXRXDOUKVEWDWEWFWGWHWIWJ $.
  $}

  ${
    $d f g k m n x y A $.  $d k n x P $.  $d f g k m n x y ph $.  $d k n x Q $.
    $d f g k m n x y F $.  $d f g k m n x y G $.
    mbfmul.1 $e |- ( ph -> F e. MblFn ) $.
    mbfmul.2 $e |- ( ph -> G e. MblFn ) $.
    ${
      mbfmul.3 $e |- ( ph -> F : A --> RR ) $.
      mbfmul.4 $e |- ( ph -> G : A --> RR ) $.
      ${
        mbfmul.5 $e |- ( ph -> P : NN --> dom S.1 ) $.
        mbfmul.6 $e |- ( ( ph /\ x e. A ) ->
          ( n e. NN |-> ( ( P ` n ) ` x ) ) ~~> ( F ` x ) ) $.
        mbfmul.7 $e |- ( ph -> Q : NN --> dom S.1 ) $.
        mbfmul.8 $e |- ( ( ph /\ x e. A ) ->
          ( n e. NN |-> ( ( Q ` n ) ` x ) ) ~~> ( G ` x ) ) $.
        $( Lemma for ~ mbfmul .  (Contributed by Mario Carneiro,
           7-Sep-2014.) $)
        mbfmullem2 $p |- ( ph -> ( F oF x. G ) e. MblFn ) $=
          ( cfv cr wcel cn vk cmul cof co cv cmpt cmbf cvol cdm wf wfn ffn wceq
          syl fdm mbfdm eqeltrrd inidm wa eqidd offval cvv nnuz 1zzd nnex mptex
          c1 cc citg1 ffvelrnda i1ff adantlr mblss sselda adantr ffvelrnd recnd
          a1i wss eqid fmptd fveq2 fveq1d oveq12d ovex fvmpt adantl fvex eqtr4d
          climmul cres resmptd reex i1fmul i1fmbf mbfres syl2anc mbflim eqeltrd
          ) AGHUBUCZUDBCBUEZGQZXAHQZUBUDZUFUGABCCXBXCUBCGHUHUIZXEACRGUJZGCUKKCR
          GULUNACRHUJHCUKLCRHULUNAGUIZCXEAXFXGCUMKCRGUOUNAGUGSXGXESIGUPUNUQZXHC
          URAXACSZUSZXBUTXJXCUTVAABCXAFUEZDQZQZXAXKEQZQZUBUDZXDFVGVBTVCAVDXJXBX
          CUAFTXMUFZFTXOUFZFTXPUFZVGVBTVCXJVDNXSVBSXJFTXPVEVFVRPXJTVHUAUEZXQXJF
          TXMVHXQXJXKTSZUSZXMYBRRXAXLAYARRXLUJZXIAYAUSZXLVIUIZSYCATYEXKDMVJZXLV
          KUNZVLXJXARSZYAACRXAACXESZCRVSZXHCVMUNZVNVOZVPVQXQVTZWAVJXJTVHXTXRXJF
          TXOVHXRYBXOYBRRXAXNAYARRXNUJZXIYDXNYESYNATYEXKEOVJZXNVKUNZVLYLVPVQXRV
          TZWAVJXJXTTSZUSXTXSQZXAXTDQZQZXAXTEQZQZUBUDZXTXQQZXTXRQZUBUDZYRYSUUDU
          MXJFXTXPUUDTXSXKXTUMZXMUUAXOUUCUBUUHXAXLYTXKXTDWBWCZUUHXAXNUUBXKXTEWB
          WCZWDXSVTUUAUUCUBWEWFWGYRUUGUUDUMXJYRUUEUUAUUFUUCUBFXTXMUUATXQUUIYMXA
          YTWHWFFXTXOUUCTXRUUJYQXAUUBWHWFWDWGWIWJYDBRXPUFZCWKZBCXPUFUGYDBRCXPAY
          JYAYKVOWLYDUUKUGSYIUULUGSYDXLXNWTUDZUUKUGYDBRRXMXOUBRXLXNVBVBYDYCXLRU
          KYGRRXLULUNYDYNXNRUKYPRRXNULUNRVBSYDWMVRZUUNRURYDYHUSZXMUTUUOXOUTVAYD
          UUMYESUUMUGSYDXLXNYFYOWNUUMWOUNUQAYIYAXHVOCUUKWPWQUQXPVBSAYAXIUSUSXMX
          OUBWEVRWRWS $.
      $}

      $( Lemma for ~ mbfmul .  (Contributed by Mario Carneiro, 7-Sep-2014.) $)
      mbfmullem $p |- ( ph -> ( F oF x. G ) e. MblFn ) $=
        ( vf vn vy vg vm cn cv cfv cmpt cli wa fveq2 vx citg1 cdm wbr wral cmul
        wf wex cof co cmbf wcel mbfi1flim eeanv adantr simprll simprlr mpteq2dv
        cr weq fveq1d cbvmptv syl6eq breq12d rspccva simprrl simprrr mbfmullem2
        sylan ex exlimdvv syl5bir mp2and ) ANUBUCZIOZUGZJNKOZJOZVOPZPZQZVQCPZRU
        DZKBUEZSZIUHZNVNLOZUGZJNVQVRWGPZPZQZVQDPZRUDZKBUEZSZLUHZCDUFUIUJUKULZAK
        BIJCEGUMAKBLJDFHUMWFWPSWEWOSZLUHIUHAWQWEWOILUNAWRWQILAWRWQAWRSZUABVOWGM
        CDACUKULWREUOADUKULWRFUOABUSCUGWRGUOABUSDUGWRHUOAVPWDWOUPWSWDUAOZBULZMN
        WTMOZVOPZPZQZWTCPZRUDZAVPWDWOUQWCXGKWTBKUAUTZWAXEWBXFRXHWAJNWTVSPZQXEXH
        JNVTXIVQWTVSTURJMNXIXDJMUTZWTVSXCVRXBVOTVAVBVCVQWTCTVDVEVIAWEWHWNVFWSWN
        XAMNWTXBWGPZPZQZWTDPZRUDZAWEWHWNVGWMXOKWTBXHWKXMWLXNRXHWKJNWTWIPZQXMXHJ
        NWJXPVQWTWITURJMNXPXLXJWTWIXKVRXBWGTVAVBVCVQWTDTVDVEVIVHVJVKVLVM $.
    $}

    $( The product of two measurable functions is measurable.  (Contributed by
       Mario Carneiro, 7-Sep-2014.) $)
    mbfmul $p |- ( ph -> ( F oF x. G ) e. MblFn ) $=
      ( vx cmul co cfv cmpt cmbf cc wcel syl eqid wa eqidd cvv cr offval2 cv wf
      cof cdm cin cvol wfn mbff ffn mbfdm offval cre cim simplbi ffvelrn syl2an
      cmin elin simprbi remuld mpteq2dva inmbl syl2anc ovexd recld imcld eqtr4d
      cres wss wceq inss1 resmpt ax-mp eqeltrrd mbfres syl5eqelr ismbfcn2 mpbid
      feqmptd simpld inss2 mbfmullem simprd mbfsub eqeltrd immuld mbfadd mulcld
      fmptd caddc mpbir2and ) ABCGUCZHFBUDZCUDZUEZFUAZBIZWPCIZGHZJZKAFWMWNWQWRG
      WOBCUFUDZXAAWMLBUBZBWMUGABKMZXBDBUHNZWMLBUINAWNLCUBZCWNUGACKMZXEECUHNZWNL
      CUINAXCWMXAMZDBUJNZAXFWNXAMZECUJNZWOOAWPWMMZPWQQAWPWNMZPWRQUKAWTKMFWOWSUL
      IZJZKMFWOWSUMIZJZKMAXOFWOWQULIZJZFWOWRULIZJZWLHZFWOWQUMIZJZFWOWRUMIZJZWLH
      ZUQUCHZKAXOFWOXRXTGHZYCYEGHZUQHZJYHAFWOXNYKAWPWOMZPZWQWRAXBXLWQLMYLXDYLXL
      XMWPWMWNURZUNWMLWPBUOUPZAXEXMWRLMYLXGYLXLXMYNUSWNLWPCUOUPZUTVAAFWOYIYJUQY
      BYGXARRAXHXJWOXAMZXIXKWMWNVBVCZYMXRXTGVDYMYCYEGVDAFWOXRXTGXSYAXASSYRYMWQY
      OVEZYMWRYPVEZAXSQZAYAQZTAFWOYCYEGYDYFXASSYRYMWQYOVFZYMWRYPVFZAYDQZAYFQZTT
      VGAYBYGAWOXSYAAXSKMZYDKMZAFWOWQJZKMUUGUUHPAUUIFWMWQJZWOVHZKWOWMVIUUKUUIVJ
      WMWNVKFWMWOWQVLVMAUUJKMYQUUKKMABUUJKAFWMLBXDVSDVNYRWOUUJVOVCVPAFWOWQYOVQV
      RZVTZAYAKMZYFKMZAFWOWRJZKMUUNUUOPAUUPFWNWRJZWOVHZKWOWNVIUURUUPVJWMWNWAFWN
      WOWRVLVMAUUQKMYQUURKMACUUQKAFWNLCXGVSEVNYRWOUUQVOVCVPAFWOWRYPVQVRZVTZAFWO
      XRSXSYSXSOWIZAFWOXTSYAYTYAOWIZWBAWOYDYFAUUGUUHUULWCZAUUNUUOUUSWCZAFWOYCSY
      DUUCYDOWIZAFWOYESYFUUDYFOWIZWBWDWEAXQXSYFWLHZYDYAWLHZWJUCHZKAXQFWOXRYEGHZ
      YCXTGHZWJHZJUVIAFWOXPUVLYMWQWRYOYPWFVAAFWOUVJUVKWJUVGUVHXARRYRYMXRYEGVDYM
      YCXTGVDAFWOXRYEGXSYFXASSYRYSUUDUUAUUFTAFWOYCXTGYDYAXASSYRUUCYTUUEUUBTTVGA
      UVGUVHAWOXSYFUUMUVDUVAUVFWBAWOYDYAUVCUUTUVEUVBWBWGWEAFWOWSYMWQWRYOYPWHVQW
      KWE $.
  $}

  ${
    $d g x A $.  $d f g x F $.  $d g x G $.  $d f L $.
    itg2val.1 $e |- L = { x | E. g e. dom S.1
                          ( g oR <_ F /\ x = ( S.1 ` g ) ) } $.
    $( The set of lower sums is a set of extended reals.  (Contributed by Mario
       Carneiro, 28-Jun-2014.) $)
    itg2lcl $p |- L C_ RR* $=
      ( cv cle cofr wbr citg1 cfv wceq wa cdm wrex cab cxr wcel itg1cl rexrd
      simpr eleq1d syl5ibrcom rexlimiv abssi eqsstri ) DBFZCGHIZAFZUGJKZLZMZBJN
      ZOZAPQEUNAQULUIQRZBUMUGUMRZUOULUJQRUPUJUGSTULUIUJQUHUKUAUBUCUDUEUF $.

    $( Value of the integral on nonnegative real functions.  (Contributed by
       Mario Carneiro, 28-Jun-2014.) $)
    itg2val $p |- ( F : RR --> ( 0 [,] +oo ) ->
                    ( S.2 ` F ) = sup ( L , RR* , < ) ) $=
      ( vf cv cle wbr citg1 wceq wa wrex cab cxr clt csup cc0 cpnf cicc cfv cdm
      cofr cr citg2 xrltso supex reex ovex breq2 anbi1d rexbidv syl6eqr supeq1d
      co abbidv df-itg2 fvmptmap ) FCBGZFGZHUCZIZAGUSJUAKZLZBJUBZMZANZOPQDOPQUD
      RSTUOUEODPUFUGUHRSTUIUTCKZOVGDPVHVGUSCVAIZVCLZBVEMZANDVHVFVKAVHVDVJBVEVHV
      BVIVCUTCUSVAUJUKULUPEUMUNAFBUQUR $.

    $( Elementhood in the set ` L ` of lower sums of the integral.
       (Contributed by Mario Carneiro, 28-Jun-2014.) $)
    itg2l $p |- ( A e. L <-> E. g e. dom S.1
      ( g oR <_ F /\ A = ( S.1 ` g ) ) ) $=
      ( wcel cv cle cofr wbr citg1 cfv wceq wa cdm wrex cab eleq2i cvv syl6eqel
      simpr fvex rexlimivw eqeq1 anbi2d rexbidv elab3 bitri ) BEGBCHZDIJKZAHZUJ
      LMZNZOZCLPZQZARZGUKBUMNZOZCUPQZEURBFSUQVAABUTBTGCUPUTBUMTUKUSUBUJLUCUAUDU
      LBNZUOUTCUPVBUNUSUKULBUMUEUFUGUHUI $.

    $( Sufficient condition for elementhood in the set ` L ` .  (Contributed by
       Mario Carneiro, 28-Jun-2014.) $)
    itg2lr $p |- ( ( G e. dom S.1 /\ G oR <_ F ) -> ( S.1 ` G ) e. L ) $=
      ( citg1 cdm wcel cle cofr wbr wa cv cfv wceq wrex eqid breq1 fveq2 eqeq2d
      anbi12d rspcev mpanr2 itg2l sylibr ) DGHZIZDCJKZLZMBNZCUILZDGOZUKGOZPZMZB
      UGQZUMEIUHUJUMUMPZUQUMRUPUJURMBDUGUKDPZULUJUOURUKDCUISUSUNUMUMUKDGTUAUBUC
      UDAUMBCEFUEUF $.
  $}

  ${
    $d g x z A $.  $d x z B $.  $d g h x y z F $.  $d g h x y z G $.
    $( A real function is a nonnegative extended real function if all its
       values are greater or equal to zero.  (Contributed by Mario Carneiro,
       28-Jun-2014.)  (Revised by Mario Carneiro, 28-Jul-2014.) $)
    xrge0f $p |- ( ( F : RR --> RR /\ 0p oR <_ F ) ->
                   F : RR --> ( 0 [,] +oo ) ) $=
      ( vx cr wf c0p cle cofr wbr wa wfn cv cfv cc0 cpnf cicc wcel wral a1i cvv
      co ffn adantr csn cxp cc wss ax-resscn 0pledm 0re fnconstg mp1i reex wceq
      inidm fvconst2 adantl eqidd ofrfval cxr ffvelrn biantrurd elxrge0 syl6bbr
      c0ex rexrd ralbidva 3bitrd biimpa ffnfv sylanbrc ) CCADZEAFGZHZIACJZBKZAL
      ZMNOTZPZBCQZCVQADVKVNVMCCAUAZUBVKVMVSVKVMCMUCUDZAVLHMVPFHZBCQVSVKCACUEUFV
      KUGRVTUHVKBCCMVPFCWAASSMCPWACJVKUICMCUJUKVTCSPVKULRZWCCUNVOCPZVOWALMUMVKC
      MVOVDUOUPVKWDIZVPUQURVKWBVRBCWEWBVPUSPZWBIVRWEWFWBWEVPCCVOAUTVEVAVPVBVCVF
      VGVHBCVQAVIVJ $.

    $( The integral of a nonnegative real function is an extended real number.
       (Contributed by Mario Carneiro, 28-Jun-2014.) $)
    itg2cl $p |- ( F : RR --> ( 0 [,] +oo ) -> ( S.2 ` F ) e. RR* ) $=
      ( vg vx cr cc0 cpnf cicc co wf citg2 cfv cv cle cofr wbr citg1 wa cdm cxr
      wceq wrex cab clt csup eqid itg2val wcel itg2lcl supxrcl ax-mp syl6eqel
      wss ) DEFGHAIAJKBLZAMNOCLUMPKTQBPRUACUBZSUCUDZSCBAUNUNUEZUFUNSULUOSUGCBAU
      NUPUHUNUIUJUK $.

    $( The integral of a nonnegative real function ` F ` is an upper bound on
       the integrals of all simple functions ` G ` dominated by ` F ` .
       (Contributed by Mario Carneiro, 28-Jun-2014.) $)
    itg2ub $p |- ( ( F : RR --> ( 0 [,] +oo ) /\ G e. dom S.1 /\ G oR <_ F ) ->
                   ( S.1 ` G ) <_ ( S.2 ` F ) ) $=
      ( vg vx cr cc0 cpnf cicc co wf citg1 cdm wcel cle cofr wbr cfv wceq cxr
      cv w3a wa wrex cab clt csup citg2 wss eqid itg2lcl itg2lr 3adant1 supxrub
      sylancr itg2val 3ad2ant1 breqtrrd ) EFGHIAJZBKLZMZBANOZPZUAZBKQZCTZAVAPDT
      VEKQRUBCUSUCDUDZSUEUFZAUGQZNVCVFSUHVDVFMZVDVGNPDCAVFVFUIZUJUTVBVIURDCABVF
      VJUKULVFVDUMUNURUTVHVGRVBDCAVFVJUOUPUQ $.

    $( Any upper bound on the integrals of all simple functions ` G ` dominated
       by ` F ` is greater than ` ( S.2 `` F ) ` , the least upper bound.
       (Contributed by Mario Carneiro, 28-Jun-2014.) $)
    itg2leub $p |- ( ( F : RR --> ( 0 [,] +oo ) /\ A e. RR* ) ->
      ( ( S.2 ` F ) <_ A <->
        A. g e. dom S.1 ( g oR <_ F -> ( S.1 ` g ) <_ A ) ) ) $=
      ( vx vz cxr wa cfv cle wbr cv citg1 wceq wrex wi wral bitri ralbii bitr3i
      wal cr cc0 cpnf cicc co wf wcel cofr cdm cab clt csup eqid itg2val adantr
      citg2 breq1d wss itg2lcl supxrleub mpan adantl eqeq1 anbi2d rexbidv ralab
      wb r19.23v ancomst impexp albii ralcom4 breq1 imbi2d ceqsalv syl6bb bitrd
      fvex ) UAUBUCUDUECUFZAFUGZGZCUPHZAIJBKZCIUHJZDKZWCLHZMZGZBLUIZNZDUJZFUKUL
      ZAIJZWDWFAIJZOZBWIPZWAWBWLAIVSWBWLMVTDBCWKWKUMZUNUOUQWAWMEKZAIJZEWKPZWPVT
      WMWTVGZVSWKFURVTXADBCWKWQUSEWKAUTVAVBWTWDWRWFMZGZBWINZWSOZETZWPWJXDWSEDWE
      WRMZWHXCBWIXGWGXBWDWEWRWFVCVDVEVFXFXBWDWSOZOZBWIPZETZWPXEXJEXEXCWSOZBWIPX
      JXCWSBWIVHXLXIBWIXLXBWDGWSOXIWDXBWSVIXBWDWSVJQRSVKXKXIETZBWIPWPXIBEWIVLXM
      WOBWIXHWOEWFWCLVRXBWSWNWDWRWFAIVMVNVORSQQVPVQ $.

    $( The integral of a nonnegative real function is greater or equal to zero.
       (Contributed by Mario Carneiro, 28-Jun-2014.) $)
    itg2ge0 $p |- ( F : RR --> ( 0 [,] +oo ) -> 0 <_ ( S.2 ` F ) ) $=
      ( vy cr cc0 cpnf cicc co wf csn cxp citg1 cfv citg2 cle cofr wbr wcel cxr
      itg10 cvv cv wral wa ffvelrn w3a 0xr pnfxr elicc1 mp2an simp2bi ralrimiva
      wb syl wfn 0re fnconstg mp1i ffn reex a1i inidm wceq c0ex fvconst2 adantl
      eqidd ofrfval mpbird cdm i1f0 itg2ub mp3an2 mpdan syl5eqbrr ) CDEFGZAHZDC
      DIJZKLZAMLZNSVPVQANOPZVRVSNPZVPVTDBUAZALZNPZBCUBVPWDBCVPWBCQZUCZWCVOQZWDC
      VOWBAUDWGWCRQZWDWCENPZDRQERQWGWHWDWIUEULUFUGDEWCUHUIUJUMUKVPBCCDWCNCVQATT
      DCQVQCUNVPUOCDCUPUQCVOAURCTQVPUSUTZWJCVAWEWBVQLDVBVPCDWBVCVDVEWFWCVFVGVHV
      PVQKVIQVTWAVJAVQVKVLVMVN $.

    $( The integral of a nonnegative simple function using ` S.2 ` is the same
       as its value under ` S.1 ` .  (Contributed by Mario Carneiro,
       28-Jun-2014.) $)
    itg2itg1 $p |- ( ( F e. dom S.1 /\ 0p oR <_ F ) ->
                     ( S.2 ` F ) = ( S.1 ` F ) ) $=
      ( vg vx citg1 cdm wcel c0p cle cofr wbr wa cfv cv adantr cr wf wb syl2anc
      cxr cvv citg2 wceq wral itg1le 3expia ancoms ralrimiva cc0 cpnf cicc i1ff
      wi co xrge0f sylan itg1cl rexrd itg2leub mpbird simpl reex adantl caofref
      a1i leid itg2ub syl3anc itg2cl syl xrletri3 mpbir2and ) ADEZFZGAHIZJZKZAU
      ALZADLZUBZVQVRHJZVRVQHJZVPVTBMZAVNJZWBDLVRHJZULZBVLUCZVMWFVOVMWEBVLWBVLFZ
      VMWEWGVMWCWDWBAUDUEUFUGNVPOUHUIUJUMAPZVRSFZVTWFQVMOOAPVOWHAUKZAUNUOZVPVRV
      MVROFVOAUPNUQZVRBAURRUSVPWHVMAAVNJZWAWKVMVOUTVMWMVOVMCOHOATOTFVMVAVDWJCMZ
      OFWNWNHJVMWNVEVBVCNAAVFVGVPVQSFZWIVSVTWAKQVPWHWOWKAVHVIWLVQVRVJRVK $.

    $( The integral of the zero function.  (Contributed by Mario Carneiro,
       28-Jun-2014.) $)
    itg20 $p |- ( S.2 ` ( RR X. { 0 } ) ) = 0 $=
      ( vx cc0 csn cxp citg2 cfv citg1 cdm wcel c0p cle cofr wbr wceq i1f0 wtru
      cr cvv reex a1i wf i1ff ax-mp cv leid adantl caofref cc wss ax-resscn wfn
      ffn syl 0pledm mpbird trud itg2itg1 mp2an itg10 eqtri ) QBCDZEFZVAGFZBVAG
      HIZJVAKLZMZVBVCNOVFPVFVAVAVEMPAQKQVARQRIPSTQQVAUAZPVDVGOVAUBUCTZAUDZQIVIV
      IKMPVIUEUFUGPQVAQUHUIPUJTPVGVAQUKVHQQVAULUMUNUOUPVAUQURUSUT $.

    $( If an ` S.2 ` integral is bounded above, then it is real.  (Contributed
       by Mario Carneiro, 28-Jun-2014.) $)
    itg2lecl $p |- ( ( F : RR --> ( 0 [,] +oo ) /\
                       A e. RR /\ ( S.2 ` F ) <_ A ) -> ( S.2 ` F ) e. RR ) $=
      ( cr cc0 cpnf cicc co wf wcel citg2 cfv cle wbr w3a itg2cl 3ad2ant1 simp2
      cxr itg2ge0 simp3 xrrege0 syl22anc ) CDEFGBHZACIZBJKZALMZNUERIZUDDUELMZUF
      UECIUCUDUGUFBOPUCUDUFQUCUDUHUFBSPUCUDUFTUEAUAUB $.

    $( If one function dominates another, then the integral of the larger is
       also larger.  (Contributed by Mario Carneiro, 28-Jun-2014.) $)
    itg2le $p |- ( ( F : RR --> ( 0 [,] +oo ) /\ G : RR --> ( 0 [,] +oo ) /\
                     F oR <_ G ) -> ( S.2 ` F ) <_ ( S.2 ` G ) ) $=
      ( vh vx vy vz cr cc0 cpnf wf cle wbr cfv cv wi wcel wa cxr fss sylancl co
      cicc cofr w3a citg2 citg1 cdm wral cvv reex a1i i1ff adantl ressxr simpll
      wss iccssxr simplr xrletr caoftrn simprl simprr syl3anc expr syld ancomsd
      itg2ub exp4b com23 3impia ralrimiv simp1 itg2cl 3ad2ant2 itg2leub syl2anc
      wb mpbird ) GHIUBUAZAJZGVSBJZABKUCZLZUDZAUEMBUEMZKLZCNZAWBLZWGUFMWEKLZOZC
      UFUGZUHZWDWJCWKVTWAWCWGWKPZWJOVTWAQZWMWCWJWNWMWCWHWIWNWMQZWHWCWIWOWHWCQWG
      BWBLZWIWODEFGKRKKWGABUIGUIPWOUJUKWOGGWGJZGRUPGRWGJWMWQWNWGULUMUNGGRWGSTWO
      VTVSRUPZGRAJVTWAWMUOHIUQZGVSRASTWOWAWRGRBJVTWAWMURWSGVSRBSTDNZRPENZRPFNZR
      PUDWTXAKLXAXBKLQWTXBKLOWOWTXAXBUSUMUTWNWMWPWIWNWMWPQZQWAWMWPWIVTWAXCURWNW
      MWPVAWNWMWPVBBWGVGVCVDVEVFVHVIVJVKWDVTWERPZWFWLVQVTWAWCVLWAVTXDWCBVMVNWEC
      AVOVPVR $.

    $( Integral of a constant function.  (Contributed by Mario Carneiro,
       12-Aug-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    itg2const $p |- ( ( A e. dom vol /\ ( vol ` A ) e. RR /\
      B e. ( 0 [,) +oo ) ) -> ( S.2 ` ( x e. RR |-> if ( x e. A , B , 0 ) ) ) =
        ( B x. ( vol ` A ) ) ) $=
      ( cvol wcel cfv cr cc0 co cif cmpt citg1 cmul cle wbr wceq c1 cvv a1i 0re
      cdm cpnf cico w3a cv citg2 c0p cofr csn cxp cof reex simpl3 wa 1re keepel
      fconstmpt eqidd offval2 ovif2 simp3 elrege0 simpld mulid1d mul01d ifeq12d
      sylib recnd syl5eq mpteq2dv eqtrd eqid i1f1 3adant3 i1fmulc eqeltrrd wral
      simprd 0le0 breq2 ifboth sylancl ralrimivw cc wss ax-resscn wfn ralrimiva
      adantr ifcl fnmpt 0pledm ofrfval2 mpbird itg2itg1 syl2anc itg1mulc fveq2d
      syl bitrd itg11 oveq2d 3eqtr3d ) BDUAEZBDFZGEZCHUBUCIZEZUDZAGAUEZBEZCHJZK
      ZUFFZXMLFZCXEMIZXIXMLUAZEUGXMNUHZOZXNXOPXIGCUIUJZAGXKQHJZKZMUKIZXMXQXIYCA
      GCYAMIZKXMXIAGCYAMXTYBRXGGGREXIULSZXDXFXHXJGEZUMYAGEXIYFUNZXKQHGUOTUPSXTA
      GCKPXIAGCUQSXIYBURUSXIAGYDXLXIYDXKCQMIZCHMIZJXLXKCQHMUTXIXKYHCYIHXICXICXI
      CGEZHCNOZXIXHYJYKUNXDXFXHVACVBVGZVCZVHZVDXICYNVEVFVIVJVKZXICYBXDXFYBXQEXH
      ABYBYBVLZVMVNZYMVOVPXIXSHXLNOZAGVQZXIYRAGXIYKHHNOZYRXIYJYKYLVRVSXKYKYTYRC
      HCXLHNVTHXLHNVTWAWBWCXIXSGHUIUJZXMXROYSXIGXMGWDWEXIWFSXIXLGEZAGVQXMGWGXIU
      UBAGYGYJHGEZUUBXIYJYFYMWITXKCHGWJWBZWHAGXLXMGXMVLWKWSWLXIAGHXLNUUAXMRGGYE
      UUCYGTSUUDUUAAGHKPXIAGHUQSXIXMURWMWTWNXMWOWPXIYCLFCYBLFZMIXOXPXICYBYQYMWQ
      XIYCXMLYOWRXIUUEXECMXDXFUUEXEPXHABYBYPXAVNXBXCVK $.

    $( When the base set of a constant function has infinite volume, the
       integral is also infinite and vice-versa.  (Contributed by Mario
       Carneiro, 30-Aug-2014.) $)
    itg2const2 $p |- ( ( A e. dom vol /\ B e. RR+ ) -> ( ( vol ` A ) e. RR <->
      ( S.2 ` ( x e. RR |-> if ( x e. A , B , 0 ) ) ) e. RR ) ) $=
      ( vz cvol wcel wa cfv cr cc0 cmul co wceq ad2antlr sylanbrc adantl adantr
      cle wbr cxr cdm crp cv cif cmpt citg2 cpnf cico simpll simpr rpre elrege0
      rpge0 itg2const syl3anc remulcld eqeltrd covol mblvol ad2antrr caddc cdiv
      wss mblss ad3antrrr peano2re simplr rerpdivcld ovollecl wrex cicc simplll
      c1 rexrd wf elxrge0 0e0iccpnf ifcl sylancl eqid itg2ge0 ge0p1rpd rpdivcld
      fmptd syl rpge0d breq2d biimpar w3a wb 0xr iccssxr ffvelrni sseldi elicc1
      volf sylancr mpbir3and volivth syl2anc ex simprl simprrr oveq2d recnd wne
      rpne0 divcan2d 3eqtrd cofr simpl wral leidd iftrue sselda iftrued 3brtr4d
      wn iffalse 0le0 breq2 ifboth eqbrtrd pm2.61dan ralrimiva cvv a1i ofrfval2
      reex eqidd syldan syl2an itg2le eqbrtrrd clt ltp1 ltnled mpbid rexlimdvaa
      pm2.21dd syld imp wo eqeltrrd xrletri mpjaodan impbida ) BEUAZFZCUBFZGZBE
      HZIFZAIAUCZBFZCJUDZUEZUFHZIFZUUKUUMGZUURCUULKLZIUUTUUIUUMCJUGUHLFZUURUVAM
      UUIUUJUUMUIUUKUUMUJZUUTCIFZJCRSZUVBUUJUVDUUIUUMCUKZNZUUJUVEUUIUUMCUMZNCUL
      ZOABCUNUOUUTCUULUVGUVCUPUQUUKUUSGZUULBURHZIUUIUULUVKMUUJUUSBUSUTZUVJUVKUU
      RVMVALZCVBLZRSZUVKIFZUVNUVKRSZUVJUVOGBIVCZUVNIFZUVOUVPUUIUVRUUJUUSUVOBVDV
      EUVJUVSUVOUVJUVMCUUSUVMIFZUUKUURVFZPZUUIUUJUUSVGZVHZQUVJUVOUJBUVNVIUOUVJU
      VQUVPUVJUVQDUCZBVCZUWEEHZUVNMZGZDUUHVJZUVPUVJUVQUWJUVJUVQGZUUIUVNJUULVKLF
      ZUWJUUIUUJUUSUVQVLZUWKUWLUVNTFZJUVNRSZUVNUULRSZUWKUVNUVJUVSUVQUWDQVNUVJUW
      OUVQUVJUVNUVJUVMCUVJUURUUKUUSUJUVJIJUGVKLZUUQVOZJUURRSUUKUWRUUSUUKAIUUPUW
      QUUQUUKUUNIFZGZCUWQFZJUWQFZUUPUWQFUWTCTFZUVEUXAUWTCUUJUVDUUIUWSUVFNVNUUJU
      VEUUIUWSUVHNCVPZOVQUUOCJUWQVRVSZUUQVTWDQZUUQWAWEWBUWCWCWFQUVJUWPUVQUVJUUL
      UVKUVNRUVLWGWHUWKJTFUULTFZUWLUWNUWOUWPWIWJWKUWKUUIUXGUWMUUIUWQTUULJUGWLUU
      HUWQBEWPWMWNZWEJUULUVNWOWQWRDBUVNWSWTXAUVJUWIUVPDUUHUVJUWEUUHFZUWIGZGZUVM
      UURRSZUVPUXKAIUUNUWEFZCJUDZUEZUFHZUVMUURRUXKUXPCUWGKLZCUVNKLZUVMUXKUXIUWG
      IFUVBUXPUXQMUVJUXIUWIXBUXKUWGUVNIUVJUXIUWFUWHXCZUVJUVSUXJUWDQUQUXKUVDUVEU
      VBUVJUVDUXJUUJUVDUUIUUSUVFNZQUXKCUVJUUJUXJUWCQWFUVIOAUWECUNUOUXKUWGUVNCKU
      XSXDUVJUXRUVMMUXJUVJUVMCUVJUVMUWBXEUVJCUXTXEUUJCJXFUUIUUSCXGNXHQXIUXKIUWQ
      UXOVOZUWRUXOUUQRXJSZUXPUURRSUUKUYAUUSUXJUUKAIUXNUWQUXOUUKUXNUWQFZUWSUUKUX
      AUXBUYCUUKUXCUVEUXAUUKCUUJUVDUUIUVFPZVNUUJUVEUUIUVHPZUXDOVQUXMCJUWQVRVSQZ
      UXOVTWDUTUVJUWRUXJUXFQUVJUUKUWFUYBUXJUUKUUSXKUXIUWFUWHXBUUKUWFUXNUUPRSZAI
      XLZUYBUUKUWFGZUYGAIUYIUWSGZUXMUYGUYJUXMGZCCUXNUUPRUYKCUUKUVDUWFUWSUXMUYDV
      EXMUXMUXNCMUYJUXMCJXNPUYKUUOCJUYJUWEBUUNUUKUWFUWSVGXOXPXQUYJUXMXRZGUXNJUU
      PRUYLUXNJMUYJUXMCJXSPUUKJUUPRSZUWFUWSUYLUUKUVEJJRSZUYMUYEXTUUOUVEUYNUYMCJ
      CUUPJRYAJUUPJRYAYBVSVEYCYDYEUUKUYBUYHUUKAIUXNUUPRUXOUUQYFUWQUWQIYFFUUKYIY
      GUYFUXEUUKUXOYJUUKUUQYJYHWHYKYLUXOUUQYMUOYNUXKUURUVMYOSZUXLXRUUSUYOUUKUXJ
      UURYPNUXKUURUVMUUKUUSUXJVGUUSUVTUUKUXJUWANYQYRYTYSUUAUUBUVJUVKTFUWNUVOUVQ
      UUCUVJUULUVKTUVLUUIUXGUUJUUSUXHUTUUDUVJUVNUWDVNUVKUVNUUEWTUUFUQUUG $.
  $}

  ${
    $d f g m n x z F $.
    $( Definitional property of the ` S.2 ` integral: for any function ` F `
       there is a countable sequence ` g ` of simple functions less than ` F `
       whose integrals converge to the integral of ` F ` .  (This theorem is
       for the most part unnecessary in lieu of ~ itg2i1fseq , but unlike that
       theorem this one doesn't require ` F ` to be measurable.)  (Contributed
       by Mario Carneiro, 14-Aug-2014.) $)
    itg2seq $p |- ( F : RR --> ( 0 [,] +oo ) -> E. g ( g : NN --> dom S.1 /\
        A. n e. NN ( g ` n ) oR <_ F /\ ( S.2 ` F ) =
        sup ( ran ( n e. NN |-> ( S.1 ` ( g ` n ) ) ) , RR* , < ) ) ) $=
      ( vf vm cr cpnf cn citg1 cle wbr clt wa wral cxr wcel wn syl cmnf wb cicc
      vx vz cc0 co wf cdm cv cfv cofr citg2 wceq c1 cdiv cmin cif wex cmpt csup
      crn w3a wrex wi ad2antlr ltpnf iftrue adantl simpr 3brtr4d iffalse itg2cl
      xrrebnd itg2ge0 mnflt0 mnfxr 0xr xrltletr mp3an12 mpani biantrurd nltpnft
      nnre mpd con2bid 3bitr2rd biimpa adantlr nnrp rpreccld ltsubrpd pm2.61dan
      crp eqbrtrd nnrecre resubcld ifclda rexrd adantr xrltnle syl2anc itg2leub
      mpbid syldan mtbid rexanali sylibr itg1cl ltnle syl2an rexbidva ralrimiva
      anbi2d mpbird cmap ovex i1ff reex elmap ssriv breq1 breq2d weq fveq2d wss
      fveq2 eqid ressxr syl5eqelr simplrl syl3anc rexr mpan fvex fvmpt ralimdva
      syl6ss wfn impr breq2 breq1d ssexi nnenom anbi12d simprl ad2antll cbvmptv
      axcc4 simpl ralimi rneqi supeq1i ffvelrn fmptd ad2antrl supxrcl elxr arch
      frn w3o rexbidv simplrr posdifd nnrecl ltsub13 bitr4d expr syl2anr rexnal
      syl6bb 3imtr3d con4d pnfge breqtrrd a1d c0 wne ne0ii r19.2z mnflt sylancr
      1nn simplr mtbird nrexdv pm2.21d 3jaodan sylan2b adantll xrltle syl5eqssr
      syl5 fnmpti fnfvelrn eqeltrrd supxrub xrletr syld adantld ralbidv imbi12d
      mpan2d rspcv syl3c syl6breqr itg2ub 3expia sylan2 anassrs adantrd ralbiia
      cbvralv bitr4i ffn ralrn 3syl supxrleub xrletri3 adantrr mpbir2and eximdv
      3jca ex ) FUDGUAUECUFZHIUGZAUHZUFZBUHZUYEUIZCJUJZKZCUKUIZGULZUYGUYKUMUYGU
      NUEZUOUEZUPZUYHIUIZLKZMZBHNZMZAUQZUYFUYJBHNZUYKBHUYPURZUTZOLUSZULZVAZAUQU
      YCDUHZCUYIKZUYOVUHIUIZLKZMZDUYDVBZBHNVUAUYCVUMBHUYCUYGHPZMZVUMVUIVUJUYOJK
      ZQZMZDUYDVBZVUOVUIVUPVCDUYDNZQVUSVUOUYKUYOJKZVUTVUOUYOUYKLKZVVAQZVUOUYLVV
      BVUOUYLMZUYGGUYOUYKLVVDUYGFPZUYGGLKVUNVVEUYCUYLUYGWBVDZUYGVERUYLUYOUYGULZ
      VUOUYLUYGUYNVFZVGVUOUYLVHVIVUOUYLQZMZUYOUYNUYKLVVIUYOUYNULZVUOUYLUYGUYNVJ
      ZVGVVJUYKUYMUYCVVIUYKFPZVUNUYCVVIVVMUYCVVMSUYKLKZUYKGLKZMZVVOVVIUYCUYKOPZ
      VVMVVPTCVKZUYKVLRUYCVVNVVOUYCUDUYKJKZVVNCVMUYCSUDLKZVVSVVNVNUYCVVQVVTVVSM
      VVNVCZVVRSOPZUDOPVVQVWAVOVPSUDUYKVQVRRVSWCVTUYCUYLVVOUYCVVQUYLVVOQTVVRUYK
      WARWDWEWFZWGZVUNUYMWLPUYCVVIVUNUYGUYGWHWIVDWJWMWKVUOUYOOPZVVQVVBVVCTVUOUY
      OVUOUYLUYGUYNFVVFVVJUYKUYMVWDVUNUYMFPZUYCVVIUYGWNZVDWOWPZWQZUYCVVQVUNVVRW
      RUYOUYKWSWTXBUYCVUNVWEVVAVUTTVWIUYODCXAXCXDVUIVUPDUYDXEXFVUOVULVURDUYDVUO
      VUHUYDPZMVUKVUQVUIVUOUYOFPZVUJFPVUKVUQTVWJVWHVUHXGUYOVUJXHXIXLXJXMXKVULUY
      RDUYDABHUYDFFXNUEZFFXNXOUBUYDVWLUBUHZUYDPFFVWMUFVWMVWLPVWMXPFFVWMXQXQXRXF
      XSUUAUUBVUHUYHULZVUIUYJVUKUYQVUHUYHCUYIXTVWNVUJUYPUYOLVUHUYHIYEYAUUCUUGRU
      YCUYTVUGAUYCUYTVUGUYCUYTMZUYFVUBVUFUYCUYFUYSUUDUYSVUBUYCUYFUYRUYJBHUYJUYQ
      UUHUUIUUEVWOVUFUYKVUEJKZVUEUYKJKZVWOUYKEHEUHZUYEUIZIUIZURZUTZOLUSZVUEJVWO
      VXCOPZUYOVWMJKZBHNZUYKVWMJKZVCZUBONZUYOVXCJKZBHNZUYKVXCJKZVWOVXCVUEOOVUDV
      XBLVUCVXABEHUYPVWTBEYBZUYHVWSIUYGVWRUYEYEYCZUUFUUJZUUKZVWOVUDOYDZVUEOPZVW
      OVUDFOVWOHFVUCUFZVUDFYDZUYFVXSUYCUYSUYFBHUYPFVUCUYFVUNMZUYHUYDPZUYPFPZHUY
      DUYGUYEUULZUYHXGRZVUCYFZUUMZUUNZHFVUCUURZRYGYPZVUDUUOZRYHUYCVXIUYTUYCVXHU
      BOVWMOPZUYCVWMFPZVWMGULZVWMSULZUUSVXHVWMUUPUYCVYMVXHVYNVYOUYCVYMMZVXGVXFV
      YPVWMUYKLKZVWMUYOLKZBHVBZVXGQZVXFQZUYCVYMVYQVYSUYCVYMVYQMZMZUYLVYSWUCUYLM
      ZVYSVWMUYGLKZBHVBZWUDVYMWUFUYCVYMVYQUYLYIVWMBUUQRWUDVYRWUEBHWUDUYOUYGVWML
      UYLVVGWUCVVHVGYAUUTXMWUCVVIMZUYMUYKVWMUOUEZLKZBHVBZVYSWUGWUHFPUDWUHLKZWUJ
      WUGUYKVWMUYCVVIVVMWUBVWCWGZUYCVYMVYQVVIYIZWOWUGVYQWUKUYCVYMVYQVVIUVAWUGVW
      MUYKWUMWULUVBXBWUHBUVCWTWUGWUIVYRBHWUGVUNMZWUIVWMUYNLKZVYRWUNVWFVVMVYMWUI
      WUOTVUNVWFWUGVWGVGWUGVVMVUNWULWRWUGVYMVUNWUMWRUYMUYKVWMUVDYJWUNUYOUYNVWML
      VVIVVKWUCVUNVVLVDYAUVEXJXBWKUVFVYMVYLVVQVYQVYTTUYCVWMYKZVVRVWMUYKWSUVGVYP
      VYSVXEQZBHVBWUAVYPVYRWUQBHVYPVUNMVYLVWEVYRWUQTVYMVYLUYCVUNWUPVDUYCVUNVWEV
      YMVWIWGVWMUYOWSWTXJVXEBHUVHUVIUVJUVKUYCVYNMZVXGVXFWURUYKGVWMJWURVVQUYKGJK
      UYCVVQVYNVVRWRUYKUVLRUYCVYNVHUVMUVNVXFVXEBHVBZUYCVYOMZVXGHUVOUVPVXFWUSUMH
      UWAUVQVXEBHUVRYLWUTWUSVXGWUTVXEBHWUTVUNMZVXEUYOSJKZWVAVWKWVBQZUYCVUNVWKVY
      OVWHWGVWKSUYOLKZWVCUYOUVSVWKVWBVWEWVDWVCTVOUYOYKSUYOWSUVTXBRWVAVWMSUYOJUY
      CVYOVUNUWBYAUWCUWDUWEUWKUWFUWGXKWRUYCUYFUYSVXKUYCUYFMZUYRVXJBHWVEVUNMZUYQ
      VXJUYJWVFUYQUYOUYPJKZVXJWVFVWEUYPOPZUYQWVGVCUYCVUNVWEUYFVWIWGZWVFUYPUYFVU
      NVYCUYCVYEUWHWQZUYOUYPUWIWTWVFWVGUYPVXCJKZVXJWVFVXBOYDUYPVXBPZWVKWVFVXBVU
      DOVXOWVEVXQVUNWVEVUDFOWVEVXSVXTUYFVXSUYCVYGVGVYIRYGYPZWRZUWJVUNWVLWVEVUNU
      YGVXAUIZUYPVXBEUYGVWTUYPHVXAEBYBVWSUYHIVWRUYGUYEYEYCVXAYFZUYHIYMYNVXAHYQV
      UNWVOVXBPEHVWTVXAVWSIYMZWVPUWLHUYGVXAUWMYLUWNVGVXBUYPUWOWTWVFVWEWVHVXDWVG
      WVKMVXJVCWVIWVJWVFVXCVUEOVXPWVFVXQVXRWVNVYKRYHUYOUYPVXCUWPYJUXAUWQUWRYOYR
      VXHVXKVXLVCUBVXCOVWMVXCULZVXFVXKVXGVXLWVRVXEVXJBHVWMVXCUYOJYSUWSVWMVXCUYK
      JYSUWTUXBUXCVXPUXDVWOVWQUCUHZUYKJKZUCVUDNZVWOWWAVWRVUCUIZUYKJKZEHNZVWOUYP
      UYKJKZBHNZWWDUYCUYFUYSWWFWVEUYRWWEBHWVFUYJWWEUYQUYCUYFVUNUYJWWEVCZVYAUYCV
      YBWWGVYDUYCVYBUYJWWECUYHUXEUXFUXGUXHUXIYOYRWWDVWTUYKJKZEHNWWFWWCWWHEHVWRH
      PWWBVWTUYKJBVWRUYPVWTHVUCVXNVYFWVQYNYTUXJWWEWWHBEHVXMUYPVWTUYKJVXNYTUXKUX
      LXFVWOVXSVUCHYQWWAWWDTVYHHFVUCUXMWVTWWCUCEHVUCWVSWWBUYKJXTUXNUXOXMVWOVXQV
      VQVWQWWATVYJUYCVVQUYTVVRWRUCVUDUYKUXPWTXMUYCUYFVUFVWPVWQMTZUYSWVEVVQVXRWW
      IUYCVVQUYFVVRWRWVEVXQVXRWVMVYKRUYKVUEUXQWTUXRUXSUYAUYBUXTWC $.

    $(
    @( Refinement of ~ itg2seq : the sequence of functions in ~ itg2seq can be
       chosen to be weakly increasing. @)
    itg2seq2 @p |- ( F : RR --> ( 0 [,] +oo ) -> E. g ( g : NN --> dom S.1 /\
        A. n e. NN ( ( g ` ( n + 1 ) ) oR <_ ( g ` n ) /\
        ( g ` n ) oR <_ F ) /\ ( S.2 ` F ) =
        sup ( ran ( n e. NN |-> ( S.1 ` ( g ` n ) ) ) , RR* , < ) ) ) @=
      ? @.
    $)
  $}

  ${
    $d x y A $.  $d x F $.  $d x y G $.  $d x y ph $.
    itg2uba.1 $e |- ( ph -> F : RR --> ( 0 [,] +oo ) ) $.
    itg2uba.2 $e |- ( ph -> G e. dom S.1 ) $.
    itg2uba.3 $e |- ( ph -> A C_ RR ) $.
    itg2uba.4 $e |- ( ph -> ( vol* ` A ) = 0 ) $.
    itg2uba.5 $e |- ( ( ph /\ x e. ( RR \ A ) ) -> ( G ` x ) <_ ( F ` x ) ) $.
    $( Approximate version of ~ itg2ub .  If ` F ` approximately dominates
       ` G ` , then ` S.1 G <_ S.2 F ` .  (Contributed by Mario Carneiro,
       11-Aug-2014.) $)
    itg2uba $p |- ( ph -> ( S.1 ` G ) <_ ( S.2 ` F ) ) $=
      ( cfv cr wcel cc0 syl wceq wa cle wbr cvv vy citg1 cv cif cmpt cdm itg1cl
      citg2 rexrd cdif cvol wss covol nulmbl syl2anc cmmbl wn ifnot eldif baibr
      ifbid syl5eqr mpteq2ia i1fres cpnf cicc co cxr itg2cl i1ff eldifi ffvelrn
      wf syl2an leidd eleq1 fveq2 ifbieq2d eqid c0ex fvex ifex iffalse sylan9eq
      fvmpt sylbi adantl breqtrrd itg1lea cofr wral iftrue elxrge0 sylib simprd
      ffvelrnda adantr eqbrtrd sylan2br anassrs pm2.61dan ralrimiva fvexd eqidd
      reex a1i feqmptd ofrfval2 mpbird itg2ub syl3anc xrletrd ) AEUBKZBLBUCZCMZ
      NXNEKZUDZUEZUBKZDUHKZAXMAEUBUFZMZXMLMGEUGOUIAXSAXRYAMZXSLMAYBLCUJZUKUFZMZ
      YCGACYEMZYFACLULCUMKNPYGHICUNUOCUPOBYDEXRBLXQXNYDMZXPNUDZXNLMZXQXOUQZXPNU
      DYIXOXPNURYJYKYHXPNYHYJYKXNLCUSZUTVAVBVCVDUOZXRUGOUIALNVEVFVGZDVMZXTVHMFD
      VIOAUACEXRGHIYMAUAUCZYDMZQZYPEKZYSYPXRKZRYRYSALLEVMZYPLMZYSLMYQAYBUUAGEVJ
      OYPLCVKLLYPEVLVNVOYQYTYSPZAYQUUBYPCMZUQZQUUCYPLCUSUUBUUEYTUUDNYSUDZYSBYPX
      QUUFLXRXNYPPXOUUDXPYSNXNYPCVPXNYPEVQVRXRVSUUDNYSVTYPEWAWBWEUUDNYSWCWDWFWG
      WHWIAYOYCXRDRWJSZXSXTRSFYMAUUGXQXNDKZRSZBLWKAUUIBLAYJQZXOUUIUUJXOQXQNUUHR
      XOXQNPUUJXONXPWLWGUUJNUUHRSZXOUUJUUHVHMZUUKUUJUUHYNMUULUUKQALYNXNDFWPUUHW
      MWNWOWQWRUUJYKQXQXPUUHRYKXQXPPUUJXONXPWCWGAYJYKXPUUHRSZYJYKQAYHUUMYLJWSWT
      WRXAXBABLXQUUHRXRDTTTLTMAXEXFXQTMUUJXONXPVTXNEWAWBXFUUJXNDXCAXRXDABLYNDFX
      GXHXIDXRXJXKXL $.
  $}

  ${
    $d x A $.  $d f x F $.  $d f x G $.  $d f x ph $.
    itg2lea.1 $e |- ( ph -> F : RR --> ( 0 [,] +oo ) ) $.
    itg2lea.2 $e |- ( ph -> G : RR --> ( 0 [,] +oo ) ) $.
    itg2lea.3 $e |- ( ph -> A C_ RR ) $.
    itg2lea.4 $e |- ( ph -> ( vol* ` A ) = 0 ) $.
    ${
      itg2lea.5 $e |- ( ( ph /\ x e. ( RR \ A ) ) -> ( F ` x ) <_ ( G ` x ) )
          $.
      $( Approximate version of ~ itg2le .  If ` F <_ G ` for almost all
         ` x ` , then ` S.2 F <_ S.2 G ` .  (Contributed by Mario Carneiro,
         11-Aug-2014.) $)
      itg2lea $p |- ( ph -> ( S.2 ` F ) <_ ( S.2 ` G ) ) $=
        ( vf cfv cle wbr wcel wa cr cc0 wf adantr citg2 cv cofr citg1 wral cpnf
        wi cdm cicc co simprl wss wceq cdif i1ff ad2antrl eldifi ffvelrn syl2an
        covol rexrd cxr iccssxr sseldi simprr cvv wfn ffn syl a1i inidm ofrfval
        reex eqidd mpbid r19.21bi sylan2 adantlr xrletrd itg2uba expr ralrimiva
        wb itg2cl itg2leub syl2anc mpbird ) ADUALEUALZMNZKUBZDMUCNZWJUDLWHMNZUG
        ZKUDUHZUEZAWMKWNAWJWNOZWKWLAWPWKPZPZBCEWJAQRUFUIUJZESZWQGTZAWPWKUKACQUL
        WQHTACUTLRUMWQITWRBUBZQCUNOZPZXBWJLZXBDLZXBELZXDXEWRQQWJSZXBQOZXEQOXCWP
        XHAWKWJUOUPZXBQCUQZQQXBWJURUSVAXDWSVBXFRUFVCZWRQWSDSZXIXFWSOXCAXMWQFTZX
        KQWSXBDURUSVDXDWSVBXGXLWRWTXIXGWSOXCXAXKQWSXBEURUSVDXCWRXIXEXFMNZXKWRXO
        BQWRWKXOBQUEAWPWKVEWRBQQXEXFMQWJDVFVFWRXHWJQVGXJQQWJVHVIWRXMDQVGXNQWSDV
        HVIQVFOWRVMVJZXPQVKWRXIPZXEVNXQXFVNVLVOVPVQAXCXFXGMNWQJVRVSVTWAWBAXMWHV
        BOZWIWOWCFAWTXRGEWDVIWHKDWEWFWG $.
    $}

    itg2eqa.5 $e |- ( ( ph /\ x e. ( RR \ A ) ) -> ( F ` x ) = ( G ` x ) ) $.
    $( Approximate equality of integrals.  If ` F = G ` for almost all ` x ` ,
       then ` S.2 F = S.2 G ` .  (Contributed by Mario Carneiro,
       12-Aug-2014.) $)
    itg2eqa $p |- ( ph -> ( S.2 ` F ) = ( S.2 ` G ) ) $=
      ( citg2 cfv cle wbr cr wcel wa cxr cc0 syl wceq cv cdif cpnf cicc iccssxr
      co wf eldifi ffvelrn syl2an sseldi xrleid breqtrd itg2lea eqbrtrrd itg2cl
      wb xrletri3 syl2anc mpbir2and ) ADKLZEKLZUAZVBVCMNZVCVBMNZABCDEFGHIABUBZO
      CUCPZQZVGDLZVJVGELZMVIVJRPVJVJMNVISUDUEUGZRVJSUDUFAOVLDUHZVGOPVJVLPVHFVGO
      CUIOVLVGDUJUKULVJUMTZJUNUOABCEDGFHIVIVJVKVJMJVNUPUOAVBRPZVCRPZVDVEVFQURAV
      MVOFDUQTAOVLEUHVPGEUQTVBVCUSUTVA $.
  $}

  ${
    $d f x y z A $.  $d f x y z F $.  $d f x y z ph $.
    itg2mulc.2 $e |- ( ph -> F : RR --> ( 0 [,) +oo ) ) $.
    itg2mulc.3 $e |- ( ph -> ( S.2 ` F ) e. RR ) $.
    ${
      itg2mulclem.4 $e |- ( ph -> A e. RR+ ) $.
      $( Lemma for ~ itg2mulc .  (Contributed by Mario Carneiro,
         8-Jul-2014.) $)
      itg2mulclem $p |- ( ph ->
        ( S.2 ` ( ( RR X. { A } ) oF x. F ) ) <_ ( A x. ( S.2 ` F ) ) ) $=
        ( vf vy cr cmul co cfv cle wbr wcel cc0 wf adantr crp cvv csn cxp citg2
        vx cof cv cofr citg1 wi cdm wral wa c1 cdiv cpnf cicc cico wss icossicc
        fss sylancl simpr rpreccld rpred i1fmulc itg2ub 3expia syl2anc clt i1ff
        adantl ffvelrnda rge0ssre ad2antrr rpgt0d ledivmul syl112anc wne rpne0d
        recnd divrec2d breq1d bitr3d ralbidva reex ovexd feqmptd cmpt fconstmpt
        a1i wceq offval2 ofrfval2 3bitr4d itg1mulc itg1cl eqtr4d bitr2d 3imtr4d
        wb ralrimiva cxr ge0mulcl fconstg syl rpre rpge0 elrege0 sylanbrc snssd
        fssd inidm off remulcld rexrd itg2leub mpbird ) AIBUAZUBZCJUEZKZUCLBCUC
        LZJKZMNZGUFZYAMUGZNZYEUHLZYCMNZUIZGUHUJZUKZAYJGYKAYEYKOZULZIUMBUNKZUAUB
        ZYEXTKZCYFNZYQUHLZYBMNZYGYIYNIPUOUPKZCQZYQYKOZYRYTUIAUUBYMAIPUOUQKZCQZU
        UDUUAURZUUBDPUOUSZIUUDUUACUTVARYNYOYEAYMVBZYNYOAYOSOZYMABFVCZRVDZVEUUBU
        UCYRYTCYQVFVGVHYNHUFZYELZBUULCLZJKZMNZHIUKYOUUMJKZUUNMNZHIUKYGYRYNUUPUU
        RHIYNUULIOZULZUUMBUNKZUUNMNZUUPUURUUTUUMIOUUNIOBIOZPBVINZUVBUUPWTYNIIUU
        LYEYMIIYEQAYEVJVKZVLZYNIIUULCAIICQZYMAUUEUUDIURUVGDVMIUUDICUTVARVLZAUVC
        YMUUSABFVDZVNZAUVDYMUUSABFVOZVNUUMUUNBVPVQUUTUVAUUQUUNMUUTUUMBUUTUUMUVF
        VTUUTBUVJVTYNBPVRUUSYNBABSOZYMFRVSZRWAWBWCWDYNHIUUMUUOMYEYATITITOZYNWEW
        JZUVFUUTBUUNJWFYNHIIYEUVEWGZYNHIBUUNJXSCTSIUVOAUVLYMUUSFVNUVHXSHIBWHWKY
        NHIBWIWJACHIUUNWHWKYMAHIUUDCDWGRZWLWMYNHIUUQUUNMYQCTTIUVOUUTYOUUMJWFUVH
        YNHIYOUUMJYPYETSIUVOAUUIYMUUSUUJVNUVFYPHIYOWHWKYNHIYOWIWJUVPWLUVQWMWNYN
        YTYHBUNKZYBMNZYIYNYSUVRYBMYNYSYOYHJKUVRYNYOYEUUHUUKWOYNYHBYNYHYMYHIOZAY
        EWPVKZVTYNBAUVCYMUVIRZVTUVMWAWQWBYNUVTYBIOZUVCUVDUVSYIWTUWAAUWCYMERUWBA
        UVDYMUVKRYHYBBVPVQWRWSXAAIUUAYAQZYCXBOYDYLWTAIUUDYAQUUFUWDAUDHIIIJUUDUU
        DUUDXSCTTUDUFZUUDOUULUUDOULUWEUULJKUUDOAUWEUULXCVKAIXRUUDXSAUVLIXRXSQFI
        BSXDXEABUUDAUVLBUUDOZFUVLUVCPBMNUWFBXFBXGBXHXIXEXJXKDUVNAWEWJZUWGIXLXMU
        UGIUUDUUAYAUTVAAYCABYBUVIEXNXOYCGYAXPVHXQ $.
    $}

    itg2mulc.4 $e |- ( ph -> A e. ( 0 [,) +oo ) ) $.
    $( The integral of a nonnegative constant times a function is the constant
       times the integral of the original function.  (Contributed by Mario
       Carneiro, 28-Jun-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    itg2mulc $p |- ( ph ->
      ( S.2 ` ( ( RR X. { A } ) oF x. F ) ) = ( A x. ( S.2 ` F ) ) ) $=
      ( vy cc0 wbr cr cmul co citg2 cfv wa wf adantr wcel cvv cc vx clt csn cxp
      cof wceq cle cpnf cico crp elrege0 sylib simpld anim1i sylibr itg2mulclem
      vz elrp cdiv c1 ge0mulcl adantl fconst6g syl reex a1i inidm cicc icossicc
      off wss sylancl remulcld itg2lecl syl3anc rpreccld cmpt feqmptd ax-resscn
      cv rge0ssre sstri ffvelrnda mulid2d mpteq2dva eqtr4d 1red ofc12 fconstmpt
      fss syl6eq recnd rpne0d recid2d mpteq2dv eqtrd offval2 w3a mulass caofass
      rpcnd 3eqtr2d fveq2d divrec2d 3brtr4d lemuldiv2d mpbird wb rexrd xrletri3
      cxr itg2cl syl2anc mpbir2and 0re simplr oveq1d mul02 eqtr3d caofid2 itg20
      mul02d simpr wo simprd leloe sylancr mpbid mpjaodan ) AHBUBIZJBUCUDZCKUEZ
      LZMNZBCMNZKLZUFZHBUFZAYJOZYQYNYPUGIZYPYNUGIZYSBCAJHUHUILZCPZYJDQZAYOJRZYJ
      EQZYSBJRZYJOBUJRAUUGYJAUUGHBUGIZABUUBRZUUGUUHOFBUKULZUMZUNBURUOZUPZYSUUAY
      OYNBUSLZUGIYSJUTBUSLZUCUDZYMYLLZMNUUOYNKLYOUUNUGYSUUOYMAJUUBYMPZYJAUAGJJJ
      KUUBUUBUUBYKCSSUAVTZUUBRGVTZUUBROUUSUUTKLZUUBRAUUSUUTVAVBAUUIJUUBYKPFJBUU
      BVCVDDJSRZAVEVFZUVCJVGVJZQYSJHUHVHLZYMPZYPJRZYTYNJRAUVFYJAUURUUBUVEVKUVFU
      VDHUHVIJUUBUVEYMWJVLZQAUVGYJABYOUUKEVMZQUUMYPYMVNVOZYSBUULVPZUPYSCUUQMYSC
      GJUTUUTCNZKLZVQZUUPYKYLLZCYLLUUQYSCGJUVLVQUVNYSGJUUBCUUDVRZYSGJUVMUVLYSUU
      TJROZUVLYSJTUUTCAJTCPZYJAUUCUUBTVKUVRDUUBJTWAVSWBJUUBTCWJVLZQZWCZWDWEWFYS
      GJUTUVLKUVOCSJTUVBYSVEVFZUVQWGUWAYSUVOGJUUOBKLZVQZGJUTVQYSUVOJUWCUCUDUWDY
      SJUUOBKSUJUJUWBUVKUULWHGJUWCWIWKYSGJUWCUTYSBABTRZYJABUUKWLQZYSBUULWMZWNWO
      WPUVPWQYSUAGUQJKKTKUUPYKCKSUWBYSUUOTRJTUUPPYSUUOUVKXAJUUOTVCVDYSUWEJTYKPU
      WFJBTVCVDUVTUUSTRZUUTTRUQVTZTRWRUVAUWIKLUUSUUTUWIKLKLUFYSUUSUUTUWIWSVBWTX
      BXCYSYNBYSYNUVJWLUWFUWGXDXEYSYOYNBUUFUVJUULXFXGAYQYTUUAOXHZYJAYNXKRZYPXKR
      UWJAUVFUWKUVHYMXLVDAYPUVIXIYNYPXJXMQXNAYROZYNHHYOKLYPUWLYNJHUCUDZMNHUWLYM
      UWMMUWLUAJBHKTCSJJUVBUWLVEVFAUVRYRUVSQAUUGYRUUKQHJRZUWLXOVFUWLUWHOZHUUSKL
      ZBUUSKLHUWOHBUUSKAYRUWHXPXQUWHUWPHUFUWLUUSXRVBXSXTXCYAWKUWLYOUWLYOAUUEYRE
      QWLYBUWLHBYOKAYRYCXQXBAUUHYJYRYDZAUUGUUHUUJYEAUWNUUGUUHUWQXHXOUUKHBYFYGYH
      YI $.
  $}

  ${
    $d f g y F $.  $d f g y G $.  $d f g y H $.  $d f g x y ph $.  $d x y A $.
    $d x y B $.  $d x U $.
    itg2split.a $e |- ( ph -> A e. dom vol ) $.
    itg2split.b $e |- ( ph -> B e. dom vol ) $.
    itg2split.i $e |- ( ph -> ( vol* ` ( A i^i B ) ) = 0 ) $.
    itg2split.u $e |- ( ph -> U = ( A u. B ) ) $.
    itg2split.c $e |- ( ( ph /\ x e. U ) -> C e. ( 0 [,] +oo ) ) $.
    itg2split.f $e |- F = ( x e. RR |-> if ( x e. A , C , 0 ) ) $.
    itg2split.g $e |- G = ( x e. RR |-> if ( x e. B , C , 0 ) ) $.
    itg2split.h $e |- H = ( x e. RR |-> if ( x e. U , C , 0 ) ) $.
    itg2split.sf $e |- ( ph -> ( S.2 ` F ) e. RR ) $.
    itg2split.sg $e |- ( ph -> ( S.2 ` G ) e. RR ) $.
    $( Lemma for ~ itg2split .  (Contributed by Mario Carneiro,
       11-Aug-2014.) $)
    itg2splitlem $p |- ( ph ->
      ( S.2 ` H ) <_ ( ( S.2 ` F ) + ( S.2 ` G ) ) ) $=
      ( cr vf vy citg2 cfv caddc co cle wbr cv cofr citg1 cdm wral wcel cc0 cif
      wi wa cmpt simprl itg1cl syl cvol adantr eqid i1fres syl2anc readdcld cin
      wss inss1 mblss syl5ss covol wceq cof cvv reex a1i fvex c0ex ifex offval2
      eqidd i1fadd eqeltrrd cdif i1ff eldifi ffvelrn syl2an leidd iftrue adantl
      wf wn eldifn elin sylnib imnan iffalse oveq12d cc recnd breqtrrd ad2antrr
      sylibr eqtrd syl6bb wfn ffn adantlr 0e0iccpnf ifclda fmptd r19.21bi eldif
      fveq2 cid fveq2d breqtrd syldan pm2.61dan eleq1 ifbieq1d syl5sseqr sselda
      nfcv nfv nfan ofrfval2 iftrued 3brtr4d 0le0 a1d ralrimi wb mpbird syl3anc
      itg2ub imp addid1d cun eleq2d elun notbid ioran biimpar simprr cpnf inidm
      cicc ofrfval mpbid sylan2 nfmpt1 nfcxfr nffv nfeq1 eqeq1d fvmpt2i 0cn fvi
      ax-mp syl6eq sylan9eq sylbi vtoclgaf sylbir sylan anassrs oveq1d 0re ifcl
      wo sylancl addid2d ovex fvmpt itg1lea itg1add eqtr3d ssun1 feqmptd biimpd
      nfbr impr ssun2 le2addd letrd expr ralrimiva cxr rexrd itg2leub ) AIUCUDG
      UCUDZHUCUDZUEUFZUGUHZUAUIZIUGUJZUHZUWTUKUDZUWRUGUHZUQZUAUKULZUMZAUXEUAUXF
      AUWTUXFUNZUXBUXDAUXHUXBURZURZUXCBTBUIZCUNZUXKUWTUDZUOUPZUSZUKUDZBTUXKDUNZ
      UXMUOUPZUSZUKUDZUEUFZUWRUXJUXHUXCTUNAUXHUXBUTZUWTVAVBUXJUXPUXTUXJUXOUXFUN
      ZUXPTUNUXJUXHCVCULZUNZUYCUYBAUYEUXIJVDZBCUWTUXOUXOVEVFVGZUXOVAVBZUXJUXSUX
      FUNZUXTTUNUXJUXHDUYDUNZUYIUYBAUYJUXIKVDZBDUWTUXSUXSVEVFVGZUXSVAVBZVHAUWRT
      UNUXIAUWPUWQRSVHZVDUXJUXCBTUXNUXRUEUFZUSZUKUDZUYAUGUXJUBCDVIZUWTUYPUYBAUY
      RTVJUXIAUYRCTCDVKAUYECTVJZJCVLZVBVMVDAUYRVNUDUOVOUXILVDUXJUXOUXSUEVPUFZUY
      PUXFAVUAUYPVOUXIABTUXNUXRUEUXOUXSVQVQVQTVQUNZAVRVSZUXNVQUNAUXKTUNZURZUXLU
      XMUOUXKUWTVTZWAWBVSZUXRVQUNVUEUXQUXMUOVUFWAWBVSZAUXOWDZAUXSWDZWCVDZUXJUXO
      UXSUYGUYLWEWFUXJUBUIZTUYRWGUNZURZVULUWTUDZVULCUNZVUOUOUPZVULDUNZVUOUOUPZU
      EUFZVULUYPUDZUGVUNVUPVUOVUTUGUHVUNVUPURZVUOVUOVUTUGVUNVUOVUOUGUHZVUPVUNVU
      OUXJTTUWTWOZVULTUNZVUOTUNZVUMUXJUXHVVDUYBUWTWHZVBZVULTUYRWIZTTVULUWTWJWKZ
      WLZVDVVBVUTVUOUOUEUFVUOVVBVUQVUOVUSUOUEVUPVUQVUOVOVUNVUPVUOUOWMWNVVBVURWP
      ZVUSUOVOZVUNVUPVVLVUNVUPVURURZWPVUPVVLUQVUNVULUYRUNZVVNVUMVVOWPUXJVULTUYR
      WQWNVULCDWRWSVUPVURWTXGUUAVURVUOUOXAZVBXBVVBVUOVUNVUOXCUNVUPVUNVUOVVJXDVD
      UUBXHXEVUNVUPWPZURZVUOVUSVUTUGVVRVURVUOVUSUGUHVVRVURURVUOVUOVUSUGVUNVVCVV
      QVURVVKXFVURVUSVUOVOVVRVURVUOUOWMWNXEVVRVVLURVUOUOVUSUGVUNVVQVVLVUOUOUGUH
      ZVUNVVQVVLURZVULFUNZWPZVVSVUNVWBVVTVUNVWBVUPVURUVOZWPVVTVUNVWAVWCVUNVWAVU
      LCDUUCZUNVWCVUNFVWDVULAFVWDVOUXIVUMMXFUUDVULCDUUEXIUUFVUPVURUUGXIUUHVUNVW
      BURVUOVULIUDZUOUGVUNVUOVWEUGUHZVWBVUMUXJVVEVWFVVIUXJVWFUBTUXJUXBVWFUBTUMA
      UXHUXBUUIUXJUBTTVUOVWEUGTUWTIVQVQUXJVVDUWTTXJVVHTTUWTXKVBAITXJZUXIATUOUUJ
      UULUFZIWOZVWGABTUXKFUNZEUOUPZVWHIVUEVWJEUOVWHAVWJEVWHUNZVUDNXLZUOVWHUNZVU
      EVWJWPZURXMVSXNZQXOZTVWHIXKVBVDVUBUXJVRVSZVWRTUUKUXJVVEURZVUOWDVWSVWEWDUU
      MUUNXPUUOVDVUNVVEVWBVWEUOVOZVUMVVEUXJVVIWNZVVEVWBURVULTFWGZUNVWTVULTFXQUX
      KIUDZUOVOZVWTBVULVXBBVULYHZBVWEUOBVULIBIBTVWKUSZQBTVWKUUPUUQZVXEUURUUSUXK
      VULVOZVXCVWEUOUXKVULIXRUUTUXKVXBUNVUDVWOURVXDUXKTFXQVUDVWOVXCVWKXSUDZUOBT
      VWKIQUVAVWOVXIUOXSUDZUOVWOVWKUOXSVWJEUOXAXTUOXCUNVXJUOVOUVBUOXCUVCUVDUVEU
      VFUVGUVHUVIUVJYAYBUVKVVLVVMVVRVVPWNXEYCVVRVUTUOVUSUEUFVUSVVRVUQUOVUSUEVVQ
      VUQUOVOVUNVUPVUOUOXAWNUVLVVRVUSVUNVUSXCUNVVQVUNVUSVUNVVFUOTUNVUSTUNVVJUVM
      VURVUOUOTUVNUVPXDVDUVQXHXEYCVUNVVEVVAVUTVOVXABVULUYOVUTTUYPVXHUXNVUQUXRVU
      SUEVXHUXLVUPUXMVUOUOUXKVULCYDUXKVULUWTXRZYEVXHUXQVURUXMVUOUOUXKVULDYDVXKY
      EXBUYPVEVUQVUSUEUVRUVSVBXEUVTUXJVUAUKUDUYQUYAUXJVUAUYPUKVUKXTUXJUXOUXSUYG
      UYLUWAUWBYAUXJUXPUXTUWPUWQUYHUYMAUWPTUNUXIRVDAUWQTUNUXISVDUXJTVWHGWOZUYCU
      XOGUXAUHZUXPUWPUGUHAVXLUXIABTUXLEUOUPZVWHGVUEUXLEUOVWHVUEUXLVWJVWLAUXLVWJ
      VUDACFUXKAVWDCFCDUWCMYFYGZXLVWMYBVWNVUEUXLWPZURXMVSXNZOXOVDUYGUXJVXMUXNVX
      NUGUHZBTUMZUXJVXRBTAUXIBABYIUXHUXBBUXHBYIBUWTIUXABUWTYHBUXAYHVXGUWFYJYJZU
      XJVXRVUDUXJUXLVXRUXJUXLURZUXMEUXNVXNUGVYAUXMVWKEUGUXJUXLVUDUXMVWKUGUHZUXJ
      CTUXKUXJUYEUYSUYFUYTVBYGUXJVYBBTAUXHUXBVYBBTUMZAUXHURZUXBVYCVYDBTUXMVWKUG
      UWTIVQVQVWHVUBVYDVRVSUXMVQUNVYDVUDURVUFVSAVUDVWKVWHUNUXHVWPXLVYDBTTUWTUXH
      VVDAVVGWNUWDIVXFVOVYDQVSYKUWEUWGXPZYBVYAVWJEUOAUXLVWJUXIVXOXLYLYAUXLUXNUX
      MVOUXJUXLUXMUOWMWNUXLVXNEVOUXJUXLEUOWMWNYMVXPVXRUXJVXPUOUOUXNVXNUGUOUOUGU
      HZVXPYNVSUXLUXMUOXAUXLEUOXAYMWNYCYOYPAVXMVXSYQUXIABTUXNVXNUGUXOGVQVQVWHVU
      CVUGVXQVUIGBTVXNUSVOAOVSYKVDYRGUXOYTYSUXJTVWHHWOZUYIUXSHUXAUHZUXTUWQUGUHA
      VYGUXIABTUXQEUOUPZVWHHVUEUXQEUOVWHVUEUXQVWJVWLAUXQVWJVUDADFUXKAVWDDFDCUWH
      MYFYGZXLVWMYBVWNVUEUXQWPZURXMVSXNZPXOVDUYLUXJVYHUXRVYIUGUHZBTUMZUXJVYMBTV
      XTUXJVYMVUDUXJUXQVYMUXJUXQURZUXMEUXRVYIUGVYOUXMVWKEUGUXJUXQVUDVYBUXJDTUXK
      UXJUYJDTVJUYKDVLVBYGVYEYBVYOVWJEUOAUXQVWJUXIVYJXLYLYAUXQUXRUXMVOUXJUXQUXM
      UOWMWNUXQVYIEVOUXJUXQEUOWMWNYMVYKVYMUXJVYKUOUOUXRVYIUGVYFVYKYNVSUXQUXMUOX
      AUXQEUOXAYMWNYCYOYPAVYHVYNYQUXIABTUXRVYIUGUXSHVQVQVWHVUCVUHVYLVUJHBTVYIUS
      VOAPVSYKVDYRHUXSYTYSUWIUWJUWKUWLAVWIUWRUWMUNUWSUXGYQVWQAUWRUYNUWNUWRUAIUW
      OVGYR $.

    $( The ` S.2 ` integral splits under an almost disjoint union.  (The proof
       avoids the use of ~ itg2add which requires CC.) (Contributed by Mario
       Carneiro, 11-Aug-2014.) $)
    itg2split $p |- ( ph -> ( S.2 ` H ) = ( ( S.2 ` F ) + ( S.2 ` G ) ) ) $=
      ( cr vf vg vy citg2 cfv caddc co wceq cle itg2splitlem cmin cv cofr citg1
      wbr wi cdm wral wcel wa adantr cc0 cpnf cicc wf cif adantlr 0e0iccpnf a1i
      wn ifclda fmptd readdcld itg2lecl syl3anc itg1cl ad2antrl simprll simprrl
      cof itg1add cin i1fadd wss inss1 cvol mblss syl syl5ss cdif nfv nfcv cmpt
      covol nfmpt1 nfcxfr nfbr nfan eldifi cvv wfn i1ff reex inidm eqidd sylan2
      ffn ofval cxr ffvelrn syl2an rexrd iccssxr sseldi simprrr fvexd syl5sseqr
      0red wb cun sselda syldan simpr dffn5 sylib ofrfval2 mpbid adantl breqtrd
      r19.21bi recnd syl2anc breqtrrd xrletrd fveq2 ralrimiva resubcld itg2leub
      expr mpbird ssun2 eldifn elin sylnib sylibr imp iffalsed leadd2dd addid1d
      simprlr ad2antrr iftrued fvmpt2 iftrue 3eqtr4d iffalse leadd1dd ad3antrrr
      imnan ssun1 addid2d eleq2d wo biorf elun syl6rbbr bitrd pm2.61dan eqbrtrd
      ifbid eqtrd ex ralrimi breq12d cbvral itg2uba eqbrtrrd adantrr leaddsub2d
      nffv anassrs lesubd leaddsub itg2cl xrletri3 mpbir2and ) AIUDUEZGUDUEZHUD
      UEZUFUGZUHZUWGUWJUIUOZUWJUWGUIUOZABCDEFGHIJKLMNOPQRSUJZAUWMUWHUWGUWIUKUGZ
      UIUOZAUWPUAULZGUIUMZUOZUWQUNUEZUWOUIUOZUPZUAUNUQZURZAUXBUAUXCAUWQUXCUSZUW
      SUXAAUXEUWSUTZUTZUWIUWGUWTAUWITUSZUXFSVAAUWGTUSZUXFATVBVCVDUGZIVEZUWJTUSU
      WLUXIABTBULZFUSZEVBVFZUXJIAUXLTUSZUTZUXMEVBUXJAUXMEUXJUSZUXONVGZVBUXJUSZU
      XPUXMVJUTVHVIVKZQVLZAUWHUWIRSVMZUWNUWJIVNVOZVAZUXEUWTTUSZAUWSUWQVPVQZUXGU
      WIUWGUWTUKUGZUIUOZUBULZHUWRUOZUYIUNUEZUYGUIUOZUPZUBUXCURZUXGUYMUBUXCUXGUY
      IUXCUSZUYJUYLAUXFUYOUYJUTZUYLAUXFUYPUTZUTZUWTUYKUFUGZUWGUIUOUYLUYRUWQUYIU
      FVTUGZUNUEUYSUWGUIUYRUWQUYIAUXEUWSUYPVRZAUXFUYOUYJVSZWAUYRUCCDWBZIUYTAUXK
      UYQUYAVAZUYRUWQUYIVUAVUBWCAVUCTWDUYQAVUCCTCDWEACWFUQUSCTWDJCWGWHWIVAAVUCW
      NUEVBUHUYQLVAUYRUCULZUYTUEZVUEIUEZUIUOZUCTVUCWJZUYRUXLUYTUEZUXLIUEZUIUOZB
      VUIURVUHUCVUIURUYRVULBVUIAUYQBABWKUXFUYPBUXEUWSBUXEBWKBUWQGUWRBUWQWLBUWRW
      LZBGBTUXLCUSZEVBVFZWMZOBTVUOWOWPWQWRUYOUYJBUYOBWKBUYIHUWRBUYIWLVUMBHBTUXL
      DUSZEVBVFZWMZPBTVURWOWPWQWRWRWRUYRUXLVUIUSZVULUYRVUTUTZVUJUXLUWQUEZUXLUYI
      UEZUFUGZVUKUIVUTUYRUXOVUJVVDUHUXLTVUCWSZUYRTTVVBVVCUFTUWQUYIWTWTUXLUYRTTU
      WQVEZUWQTXAZUYRUXEVVFVUAUWQXBWHZTTUWQXGWHZUYRTTUYIVEZUYITXAZUYRUYOVVJVUBU
      YIXBWHZTTUYIXGWHZTWTUSZUYRXCVIZVVOTXDUYRUXOUTZVVBXEVVPVVCXEXHXFVVAVUNVVDV
      UKUIUOVVAVUNUTZVVDVVBVUKVVAVVDXIUSZVUNVVAVVDVVAVVBVVCUYRVVFUXOVVBTUSZVUTV
      VHVVETTUXLUWQXJXKZUYRVVJUXOVVCTUSZVUTVVLVVETTUXLUYIXJXKZVMXLZVAVVQVVBVVAV
      VSVUNVVTVAZXLVVAVUKXIUSZVUNVVAUXJXIVUKVBVCXMUYRUXKUXOVUKUXJUSVUTVUDVVETUX
      JUXLIXJXKXNZVAVVQVVDVVBVBUFUGVVBUIVVQVVCVBVVBVVAVWAVUNVWBVAVVQXRVWDVVQVVC
      VURVBUIVVAVVCVURUIUOZVUNVUTUYRUXOVWGVVEUYRVWGBTUYRUYJVWGBTURZAUXFUYOUYJXO
      AUYQVVKUYJVWHXSVVMAVVKUTZBTVVCVURUIUYIHWTWTUXJVVNVWIXCVIVWIUXOUTUXLUYIXPA
      UXOVURUXJUSVVKUXPVUQEVBUXJUXPVUQUXMUXQAVUQUXMUXOADFUXLACDXTZDFDCUUAMXQYAV
      GUXRYBUXSUXPVUQVJZUTVHVIVKZVGVWIVVKUYIBTVVCWMUHAVVKYCBTUYIYDYEHVUSUHVWIPV
      IYFYBYGYJXFZVAVVQVUQEVBVVAVUNVWKVVAVUNVUQUTZVJVUNVWKUPVVAUXLVUCUSZVWNVUTV
      WOVJUYRUXLTVUCUUBYHUXLCDUUCUUDVUNVUQUUSUUEUUFUUGYIUUHVVQVVBVVQVVBVWDYKUUI
      YIVVQVVBVUOVUKUIVVAVVBVUOUIUOZVUNVUTUYRUXOVWPVVEUYRVWPBTUYRUWSVWPBTURZAUX
      EUWSUYPUUJAUYQVVGUWSVWQXSVVIAVVGUTZBTVVBVUOUIUWQGWTWTUXJVVNVWRXCVIVWRUXOU
      TUXLUWQXPAUXOVUOUXJUSVVGUXPVUNEVBUXJUXPVUNUXMUXQAVUNUXMUXOACFUXLAVWJCFCDU
      UTMXQZYAVGUXRYBUXSUXPVUNVJZUTVHVIVKZVGVWRVVGUWQBTVVBWMUHAVVGYCBTUWQYDYEGV
      UPUHVWROVIYFYBYGYJXFZVAVVQUXNEVUKVUOVVQUXMEVBVVACFUXLACFWDUYQVUTVWSUUKYAU
      ULVVAVUKUXNUHZVUNVUTUYRUXOVXCVVEVVPUXOUXNUXJUSZVXCUYRUXOYCAUXOVXDUYQUXTVG
      BTUXNUXJIQUUMYLXFZVAVUNVUOEUHVVAVUNEVBUUNYHUUOYMYNVVAVWTUTZVVDVVCVUKVVAVV
      RVWTVWCVAVXFVVCVVAVWAVWTVWBVAZXLVVAVWEVWTVWFVAVXFVVDVBVVCUFUGVVCUIVXFVVBV
      BVVCVVAVVSVWTVVTVAVXFXRVXGVXFVVBVUOVBUIVVAVWPVWTVXBVAVWTVUOVBUHVVAVUNEVBU
      UPYHYIUUQVXFVVCVXFVVCVXGYKUVAYIVXFVVCVURVUKUIVVAVWGVWTVWMVAVXFVUKUXNVURVV
      AVXCVWTVXEVAVXFUXMVUQEVBVXFUXMUXLVWJUSZVUQVXFFVWJUXLAFVWJUHUYQVUTVWTMUURU
      VBVWTVXHVUQXSVVAVWTVUQVUNVUQUVCVXHVUNVUQUVDUXLCDUVEUVFYHUVGUVJUVKYMYNUVHU
      VIUVLUVMVULVUHBUCVUIVULUCWKBVUFVUGUIBVUFWLBUIWLBVUEIBIBTUXNWMQBTUXNWOWPBV
      UEWLUVTWQUXLVUEUHVUJVUFVUKVUGUIUXLVUEUYTYOUXLVUEIYOUVNUVOYEYJUVPUVQUYRUWT
      UYKUWGAUXFUYEUYPUYFUVRUYRUYOUYKTUSVUBUYIVPWHAUXIUYQUYCVAUVSYGUWAYSYPUXGTU
      XJHVEZUYGXIUSUYHUYNXSAVXIUXFABTVURUXJHVWLPVLVAUXGUYGUXGUWGUWTUYDUYFYQXLUY
      GUBHYRYLYTUWBYSYPATUXJGVEUWOXIUSUWPUXDXSABTVUOUXJGVXAOVLAUWOAUWGUWIUYCSYQ
      XLUWOUAGYRYLYTAUWHTUSUXHUXIUWMUWPXSRSUYCUWHUWIUWGUWCVOYTAUWGXIUSZUWJXIUSU
      WKUWLUWMUTXSAUXKVXJUYAIUWDWHAUWJUYBXLUWGUWJUWEYLUWF $.
  $}

  ${
    $d j k x A $.  $d f m n t x y z G $.  $d j k n w x y H $.  $d n t x y P $.
    $d j k m n w x y z F $.  $d f j k m n t w x y z ph $.  $d f k n t x y S $.
    $d j k n w x y T $.
    itg2mono.1 $e |- G = ( x e. RR |-> sup ( ran
                           ( n e. NN |-> ( ( F ` n ) ` x ) ) , RR , < ) ) $.
    itg2mono.2 $e |- ( ( ph /\ n e. NN ) -> ( F ` n ) e. MblFn ) $.
    itg2mono.3 $e |- ( ( ph /\ n e. NN ) ->
                       ( F ` n ) : RR --> ( 0 [,) +oo ) ) $.
    itg2mono.4 $e |- ( ( ph /\ n e. NN ) ->
                       ( F ` n ) oR <_ ( F ` ( n + 1 ) ) ) $.
    itg2mono.5 $e |- ( ( ph /\ x e. RR ) ->
      E. y e. RR A. n e. NN ( ( F ` n ) ` x ) <_ y ) $.
    itg2mono.6 $e |- S =
      sup ( ran ( n e. NN |-> ( S.2 ` ( F ` n ) ) ) , RR* , < ) $.
    ${
      itg2mono.7 $e |- ( ph -> T e. ( 0 (,) 1 ) ) $.
      itg2mono.8 $e |- ( ph -> H e. dom S.1 ) $.
      itg2mono.9 $e |- ( ph -> H oR <_ G ) $.
      itg2mono.10 $e |- ( ph -> S e. RR ) $.
      itg2mono.11 $e |- A = ( n e. NN |-> { x e. RR |
        ( T x. ( H ` x ) ) <_ ( ( F ` n ) ` x ) } ) $.
      $( Lemma for ~ itg2mono .  We show that for any constant ` t ` less than
         one, ` t x. S.1 H ` is less than ` S ` , and so ` S.1 H <_ S ` , which
         is one half of the equality in ~ itg2mono .  Consider the sequence
         ` A ( n ) = { x | t x. H <_ F ( n ) } ` .  This is an increasing
         sequence of measurable sets whose union is ` RR ` , and so
         ` H |`` A ( n ) ` has an integral which equals ` S.1 H ` in the limit,
         by ~ itg1climres .  Then by taking the limit in
         ` ( t x. H ) |`` A ( n ) <_ F ( n ) ` , we get ` t x. S.1 H <_ S ` as
         desired.  (Contributed by Mario Carneiro, 16-Aug-2014.)  (Revised by
         Mario Carneiro, 23-Aug-2014.) $)
      itg2monolem1 $p |- ( ph -> ( T x. ( S.1 ` H ) ) <_ S ) $=
        ( vk vj vw vz vm citg1 cfv cmul co cn cr cv wcel cc0 cmpt citg2 c1 nnuz
        cif cvv cle wbr crab cdm wa cneg csn cxp cof caddc cmnf cioo wn clt wfn
        wb wf adantl cpnf wss rge0ssre fss sylancl cxr 0xr sylib i1fmulc adantr
        i1ff syl a1i ffn biantrurd ffvelrnda eqidd recnd ad2antrr adantlr eqtrd
        reex remulcld breq1d 0red breq2d syl2anc fmptd wral ralrimiva weq fveq2
        3bitrd fveq2d breq12d cbvralv r19.21bi feq1d peano2nn wceq mpbid fveq1d
        syl3anc rabbidv rabex fvmpt crn wrex csup adantrr wne eqid fvex ralbiia
        c0 frn bitr4i mpbird breqtrd mpteq2dv sylibr 1zzd cvol ccnv cin readdcl
        cima cdif w3a 1re rexri elioo2 mp2an simp1d renegcld inidm off elpreima
        cico simpr bitr4d elioomnf ax-mp syl6rbbr cmin ofc1 cc mulneg1d negsubd
        ofval ltsubaddd addid2d notbid eldif baib lenltd 3bitr4d rabbi2dva cmbf
        rembl i1fmbf mbfadd mbfima cmmbl inmbl sylancr eqeltrrd rspccva ofrfval
        cofr oveq1 syl2an wi letr mpan2d ss2rabdv 3sstr4d ciun an32s 1nn dmmptd
        cuni syl5eleqr ne0i dm0rn0 necon3bii breq1 syl6bb rexbidv suprcl simp3d
        ralrn 1red simprr ltmul1 syl112anc mulid2d supeq1d ltso ltletrd suprlub
        rneqd supex syl31anc breq2 rexrn rexbiia simplr ffvelrnd elrege0 simpld
        adantlrr reximdva mpd anassrs ne0ii simplrr simp2d lemul2 mul01d simprd
        ltle letrd r19.2z ltlecasei rabid2 syl6eqr iuneq2dv fniunfv itg1climres
        iunrab nnex mptex eleq2d ifbid i1fres itg1cl eqeltrd oveq2d ovex eqtr4d
        3eqtr2rd climmulc2 cli cicc icossicc itg2cl cab elabrex rnmpt syl6eleqr
        supxrub syl6breqr itg2lecl itg2le ralbidv syl5bb rspcev climsup eqnetrd
        fnmpti supxrre syl5req c0ex ifex fconstmpt offval2 ifeq2d syl5eq iftrue
        ovif2 ad2antlr rabid simprbi eqbrtrd iffalse pm2.61dan feqmptd ofrfval2
        biimpa fvexd itg2ub itg1mulc 3eqtr2d 3brtr4d climle ) AFJUGUHZUIUJEUBUC
[encoded data, 8800 characters]
        VSXXRFXYCXYIYWSVXBXXRYWPYWJUGYXAXMVXCXXQYULYVFXSAYVKVSVXDVXE $.
    $}

    ${
      itg2monolem2.7 $e |- ( ph -> P e. dom S.1 ) $.
      itg2monolem2.8 $e |- ( ph -> P oR <_ G ) $.
      itg2monolem2.9 $e |- ( ph -> -. ( S.1 ` P ) <_ S ) $.
      $( Lemma for ~ itg2mono .  (Contributed by Mario Carneiro,
         16-Aug-2014.) $)
      itg2monolem2 $p |- ( ph -> S e. RR ) $=
        ( cxr wcel cn citg1 cfv cr cmnf clt wbr cle cv citg2 cmpt crn wss wf wa
        csup cc0 cpnf cicc co cico icossicc fss sylancl itg2cl syl eqid supxrcl
        fmptd frn syl5eqel cdm itg1cl mnfxr a1i wral ralrimiva wceq fveq2 feq1d
        c1 1nn rspcv mpsyl itg2ge0 mnflt0 0xr xrltletr mp3an12 mpani mpd fveq2d
        fvex fvmpt ax-mp wfn ffn fnfvelrn syl5eqelr supxrub syl6breqr xrltletrd
        wi syl2anc wn wb rexrd xrltnle mpbird xrltle xrre syl22anc ) AERSZDUAUB
        ZUCSZUDEUEUFEXMUGUFZEUCSAEFTFUHZGUBZUIUBZUJZUKZRUEUOZRNAXTRULZYARSATRXS
        UMZYBAFTXRRXSAXPTSUNZUCUPUQURUSZXQUMZXRRSYDUCUPUQUTUSZXQUMYGYEULYFKUPUQ
        VAUCYGYEXQVBVCZXQVDVEXSVFZVHZTRXSVIVEZXTVGVEVJZADUAVKSXNODVLVEZAUDVTGUB
        ZUIUBZEUDRSZAVMVNAUCYEYNUMZYORSZVTTSZAYFFTVOYQWAAYFFTYHVPYFYQFVTTXPVTVQ
        ZUCYEXQYNXPVTGVRZVSWBWCZYNVDVEZYLAUPYOUGUFZUDYOUEUFZAYQUUDUUBYNWDVEAUDU
        PUEUFZUUDUUEWEAYRUUFUUDUNUUEXBZUUCYPUPRSYRUUGVMWFUDUPYOWGWHVEWIWJAYOYAE
        UGAYBYOXTSYOYAUGUFYKAYOVTXSUBZXTYSUUHYOVQWAFVTXRYOTXSYTXQYNUIUUAWKYIYNU
        IWLWMWNAXSTWOZYSUUHXTSAYCUUIYJTRXSWPVEWATVTXSWQVCWRXTYOWSXCNWTXAAEXMUEU
        FZXOAUUJXMEUGUFXDZQAXLXMRSZUUJUUKXEYLAXMYMXFZEXMXGXCXHAXLUULUUJXOXBYLUU
        MEXMXIXCWJEXMXJXK $.

      $( Lemma for ~ itg2mono .  (Contributed by Mario Carneiro,
         16-Aug-2014.) $)
      itg2monolem3 $p |- ( ph -> ( S.1 ` P ) <_ S ) $=
        ( wbr wcel c1 vt citg1 cfv cle cv caddc crp wral cmul cdiv itg2monolem2
        co wa cr adantr recnd cdm itg1cl syl simpr rpred readdcld cc0 citg2 cxr
        0red 0xr a1i cpnf cicc 1nn cico wss icossicc fss sylancl ralrimiva wceq
        wf cn fveq2 feq1d rspcv mpsyl itg2cl cmpt crn clt csup eqid frn supxrcl
        fmptd syl5eqel itg2ge0 fveq2d fvex fvmpt ax-mp wfn ffn fnfvelrn supxrub
        syl5eqelr syl2anc syl6breqr xrletrd ltaddrpd lelttrd gt0ne0d div23d cif
        c2 redivcld remulcld halfre ifcl max2 sylancr wb wn rexrd mpbird lemul1
        xrltnle syl112anc crab cmbf adantlr cofr wrex cioo halfgt0 max1 ltletrd
        mpbid mulid1d breqtrrd 1red breq1 ltdivmul halflt1 ifboth w3a 1re rexri
        elioo2 mp2an syl3anbrc oveq2d breq12d cbvrabv mpteq2i eqbrtrd ledivmul2
        itg2monolem1 letrd mulgt0d lemul2 alrple ) ADUBUCZEUDRZUVAEUAUEZUFULZUD
        RZUAUGUHZAUVEUAUGAUVCUGSZUMZUVEEUVAUIULZEUVDUIULUDRZUVHUVIUVDUJULZEUDRZ
        UVJUVHUVKEUVDUJULZUVAUIULZEUDUVHEUVAUVDUVHEAEUNSZUVGABCDEFGHIJKLMNOPQUK
        ZUOZUPUVHUVAUVHDUBUQSZUVAUNSZAUVRUVGOUOZDURZUSZUPUVHUVDUVHEUVCUVQUVHUVC
        AUVGUTZVAVBZUPZUVHUVDUVHVCEUVDUVHVFZUVQUWDAVCEUDRUVGAVCTGUCZVDUCZEVCVES
        ZAVGVHAUNVCVIVJULZUWGVSZUWHVESTVTSZAUNUWJFUEZGUCZVSZFVTUHUWKVKAUWOFVTAU
        WMVTSZUMZUNVCVIVLULZUWNVSZUWRUWJVMUWOKVCVIVNUNUWRUWJUWNVOVPZVQUWOUWKFTV
        TUWMTVRZUNUWJUWNUWGUWMTGWAZWBWCWDZUWGWEUSAEFVTUWNVDUCZWFZWGZVEWHWIZVENA
        UXFVEVMZUXGVESAVTVEUXEVSZUXHAFVTUXDVEUXEUWQUWOUXDVESUWTUWNWEUSUXEWJZWMZ
        VTVEUXEWKUSZUXFWLUSWNZAUWKVCUWHUDRUXCUWGWOUSAUWHUXGEUDAUXHUWHUXFSUWHUXG
        UDRUXLAUWHTUXEUCZUXFUWLUXNUWHVRVKFTUXDUWHVTUXEUXAUWNUWGVDUXBWPUXJUWGVDW
        QWRWSAUXEVTWTZUWLUXNUXFSAUXIUXOUXKVTVEUXEXAUSVKVTTUXEXBVPXDUXFUWHXCXENX
        FXGUOZUVHEUVCUVQUWCXHZXIZXJZXKUVHUVNTXMUJULZUVMUDRZUVMUXTXLZUVAUIULZEUV
        HUVMUVAUVHEUVDUVQUWDUXSXNZUWBXOUVHUYBUVAUVHUVMUNSZUXTUNSZUYBUNSZUYDXPUY
        AUVMUXTUNXQVPZUWBXOZUVQUVHUVMUYBUDRZUVNUYCUDRZUVHUYFUYEUYJXPUYDUXTUVMXR
        XSUVHUYEUYGUVSVCUVAWHRUYJUYKXTUYDUYHUWBUVHVCEUVAUWFUVQUWBUXPAEUVAWHRZUV
        GAUYLUVBYAZQAEVESUVAVESUYLUYMXTUXMAUVAAUVRUVSOUWAUSZYBEUVAYEXEYCUOXIZUV
        MUYBUVAYDYFYPUVHBCFVTUYBCUEZDUCZUIULZUYPUWNUCZUDRZCUNYGZWFEUYBFGHDIAUWP
        UWNYHSUVGJYIAUWPUWSUVGKYIAUWPUWNUWMTUFULGUCUDYJZRUVGLYIABUEZUNSVUCUWNUC
        ZUYPUDRFVTUHCUNYKUVGMYINUVHUYGVCUYBWHRZUYBTWHRZUYBVCTYLULSZUYHUVHVCUXTU
        YBUWFUYFUVHXPVHUYHVCUXTWHRUVHYMVHUVHUYFUYEUXTUYBUDRXPUYDUXTUVMYNXSYOZUV
        HUVMTWHRZUXTTWHRZVUFUVHVUIEUVDTUIULZWHRZUVHEUVDVUKWHUXQUVHUVDUWEYQYRUVH
        UVOTUNSUVDUNSZVCUVDWHRZVUIVULXTUVQUVHYSUWDUXRETUVDUUAYFYCUUBUYAVUIVUJVU
        FUVMUXTUVMUYBTWHYTUXTUYBTWHYTUUCVPUWITVESVUGUYGVUEVUFUUDXTVGTUUEUUFVCTU
        YBUUGUUHUUIUVTADHVUBRUVGPUOUVQFVTVUAUYBVUCDUCZUIULZVUDUDRZBUNYGUYTVUQCB
        UNUYPVUCVRZUYRVUPUYSVUDUDVURUYQVUOUYBUIUYPVUCDWAUUJUYPVUCUWNWAUUKUULUUM
        UUPZUUQUUNUVHUVIUNSUVOVUMVUNUVLUVJXTUVHEUVAUVQUWBXOUVQUWDUXRUVIEUVDUUOY
        FYPUVHUVSVUMUVOVCEWHRUVEUVJXTUWBUWDUVQUVHVCUYCEUWFUYIUVQUVHUYBUVAUYHUWB
        VUHUYOUURVUSYOUVAUVDEUUSYFYCVQAUVSUVOUVBUVFXTUYNUVPUAUVAEUUTXEYC $.
    $}

    $( The Monotone Convergence Theorem for nonnegative functions.  If
       ` { ( F `` n ) : n e. NN } ` is a monotone increasing sequence of
       positive, measurable, real-valued functions, and ` G ` is the pointwise
       limit of the sequence, then ` ( S.2 `` G ) ` is the limit of the
       sequence ` { ( S.2 `` ( F `` n ) ) : n e. NN } ` .  (Contributed by
       Mario Carneiro, 16-Aug-2014.) $)
    itg2mono $p |- ( ph -> ( S.2 ` G ) = S ) $=
      ( vm cfv cle wbr wcel cn cr vf vz citg2 wceq cv cofr citg1 wi cdm wral wa
      wn cmbf adantlr cc0 cpnf cico co wf c1 caddc simprll simprlr itg2monolem3
      wrex simprr expr pm2.18d ralrimiva cicc cxr wb cmpt crn clt csup rge0ssre
      wss c0 wne fss sylancl ffvelrnda an32s fmptd frn syl 1nn dmmptd syl5eleqr
      eqid ne0i dm0rn0 necon3bii sylib wfn ffn breq1 ralrn weq fveq2 fvex fvmpt
      fveq1d breq1d ralbiia cbvralv bitr4i syl6bb rexbidv mpbird suprcl syl3anc
      rexrd 0red feq1d rspcv mpsyl elrege0 simpld simprd ax-mp syl5eqelr suprub
      fnfvelrn syl31anc letrd elxrge0 sylanbrc icossicc itg2cl supxrcl syl5eqel
      itg2leub syl2anc r19.21bi adantr w3a cvv eqidd 3jca ad2antlr simplr simpr
      eqeltrrd ltso supex fvmpt2 breqtrrd breq12d reex a1i inidm ofrfval itg2le
      fveq2d supxrleub syl5eqbr xrletri3 mpbir2and ) AGUCOZDUDZUVADPQZDUVAPQZAU
      VCUAUEZGPUFZQZUVEUGODPQZUHZUAUGUIZUJZAUVIUAUVJAUVEUVJRZUVGUVHAUVLUVGUKZUK
      UVHAUVMUVHULZUVHAUVMUVNUKZUKBCUVEDEFGHAEUEZSRZUVPFOZUMRUVOIUNAUVQTUOUPUQU
      RZUVRUSZUVOJUNAUVQUVRUVPUTVAURFOUVFQUVOKUNABUEZTRZUWAUVROZCUEZPQZESUJZCTV
      EZUVOLUNMAUVLUVGUVNVBAUVLUVGUVNVCAUVMUVNVFVDVGVHVGVIATUOUPVJURZGUSZDVKRZU
      VCUVKVLABTESUWCVMZVNZTVOVPZUWHGAUWBUKZUWMVKRUOUWMPQUWMUWHRUWNUWMUWNUWLTVR
      ZUWLVSVTZUBUEZUWDPQZUBUWLUJZCTVEZUWMTRUWNSTUWKUSZUWOUWNESUWCTUWKAUVQUWBUW
      CTRAUVQUKZTTUWAUVRUXBUVTUVSTVRTTUVRUSJVQTUVSTUVRWAWBWCWDZUWKWKZWEZSTUWKWF
      WGZUWNUWKUIZVSVTZUWPUWNUTUXGRUXHUWNUTSUXGWHUWNEUWKSUWCTUXDUXCWIWJUXGUTWLW
      GUXGVSUWLVSUWKWMWNWOZUWNUWTUWGLUWNUWSUWFCTUWNUWSNUEZUWKOZUWDPQZNSUJZUWFUW
      NUWKSWPZUWSUXMVLUWNUXAUXNUXESTUWKWQWGZUWRUXLUBNSUWKUWQUXKUWDPWRWSWGUXMUWA
      UXJFOZOZUWDPQZNSUJUWFUXLUXRNSUXJSRZUXKUXQUWDPEUXJUWCUXQSUWKENWTZUWAUVRUXP
      UVPUXJFXAZXDZUXDUWAUXPXBXCZXEXFUWEUXRENSUXTUWCUXQUWDPUYBXEXGXHXIXJXKZCUBU
      WLXLXMZXNUWNUOUWAUTFOZOZUWMUWNXOUWNUYGTRZUOUYGPQZUWNUYGUVSRUYHUYIUKATUVSU
      WAUYFUTSRZAUVTESUJZTUVSUYFUSZWHAUVTESJVIZUVTUYLEUTSUVPUTUDZTUVSUVRUYFUVPU
      TFXAZXPXQXRWCUYGXSWOZXTUYEUWNUYHUYIUYPYAUWNUWOUWPUWTUYGUWLRUYGUWMPQUXFUXI
      UYDUWNUYGUTUWKOZUWLUYJUYQUYGUDWHEUTUWCUYGSUWKUYNUWAUVRUYFUYOXDUXDUWAUYFXB
      XCYBUWNUXNUYJUYQUWLRUXOWHSUTUWKYEWBYCCUBUWLUYGYDYFYGUWMYHYIHWEZADESUVRUCO
      ZVMZVNZVKVOVPZVKMAVUAVKVRZVUBVKRASVKUYTUSZVUCAESUYSVKUYTUXBTUWHUVRUSZUYSV
      KRUXBUVTUVSUWHVRZVUEJUOUPYJZTUVSUWHUVRWAWBUVRYKWGUYTWKZWEZSVKUYTWFWGZVUAY
      LWGYMZDUAGYNYOXKADVUBUVAPMAVUBUVAPQZUWQUVAPQZUBVUAUJZAVUNUXPUCOZUVAPQZNSU
      JZAVUPNSAUXSUKZTUWHUXPUSZUWIUXPGUVFQZVUPVURTUVSUXPUSZVUFVUSAVVANSAUYKVVAN
      SUJUYMUVTVVAENSUXTTUVSUVRUXPUYAXPXGWOYPVUGTUVSUWHUXPWAWBZAUWIUXSUYRYQVURV
      UTUWQUXPOZUWQGOZPQZUBTUJZVURUXQUWAGOZPQZBTUJVVFVURVVHBTVURUWBUKZUXQUWMVVG
      PVVIUWOUWPUWTYRZUXQUWLRUXQUWMPQAUWBVVJUXSUWNUWOUWPUWTUXFUXIUYDUUAUNVVIUXK
      UXQUWLUXSUXKUXQUDAUWBUYCUUBVVIUXNUXSUXKUWLRAUWBUXNUXSUXOUNAUXSUWBUUCSUXJU
      WKYEYOUUECUBUWLUXQYDYOVVIUWBUWMYSRVVGUWMUDVURUWBUUDTUWLVOUUFUUGBTUWMYSGHU
      UHWBUUIVIVVHVVEBUBTBUBWTUXQVVCVVGVVDPUWAUWQUXPXAUWAUWQGXAUUJXGWOVURUBTTVV
      CVVDPTUXPGYSYSVURVUSUXPTWPVVBTUWHUXPWQWGAGTWPZUXSATTGUSVVKABTUWMTGUYEHWET
      TGWQWGYQTYSRVURUUKUULZVVLTUUMVURUWQTRUKZVVCYTVVMVVDYTUUNXKUXPGUUOXMVIAVUN
      UXJUYTOZUVAPQZNSUJZVUQAUYTSWPZVUNVVPVLAVUDVVQVUISVKUYTWQWGVUMVVOUBNSUYTUW
      QVVNUVAPWRWSWGVVOVUPNSUXSVVNVUOUVAPEUXJUYSVUOSUYTUXTUVRUXPUCUYAUUPVUHUXPU
      CXBXCXEXFXIXKAVUCUVAVKRZVULVUNVLVUJAUWIVVRUYRGYKWGZUBVUAUVAUUQYOXKUURAVVR
      UWJUVBUVCUVDUKVLVVSVUKUVADUUSYOUUT $.
  $}

  ${
    $d k m n x y z F $.  $d k n y z M $.  $d k m n x y z P $.  $d k m y z ph $.
    $d k y z S $.
    itg2i1fseq.1 $e |- ( ph -> F e. MblFn ) $.
    itg2i1fseq.2 $e |- ( ph -> F : RR --> ( 0 [,) +oo ) ) $.
    itg2i1fseq.3 $e |- ( ph -> P : NN --> dom S.1 ) $.
    itg2i1fseq.4 $e |- ( ph -> A. n e. NN
      ( 0p oR <_ ( P ` n ) /\ ( P ` n ) oR <_ ( P ` ( n + 1 ) ) ) ) $.
    itg2i1fseq.5 $e |- ( ph -> A. x e. RR
      ( n e. NN |-> ( ( P ` n ) ` x ) ) ~~> ( F ` x ) ) $.
    $( Subject to the conditions coming from ~ mbfi1fseq , the sequence of
       simple functions are all less than the target function ` F ` .
       (Contributed by Mario Carneiro, 17-Aug-2014.) $)
    itg2i1fseqle $p |- ( ( ph /\ M e. NN ) -> ( P ` M ) oR <_ F ) $=
      ( vy cn wcel wa cfv cle wbr cr wceq vk cofr cv wral cmpt fveq1d eqid fvex
      fveq2 fvmpt ad2antlr c1 simplr cli mpteq2dv breq12d rspccva sylan adantlr
      nnuz adantl citg1 cdm ffvelrnda i1ff syl an32s eqeltrd adantllr caddc c0p
      wf co simpr ralimi oveq1 fveq2d cvv wfn 3syl peano2nn ffvelrn syl2an reex
      ffn a1i inidm eqidd ofrfval mpbid r19.21bi 3brtr4d eqbrtrrd ralrimiva cc0
      climub cpnf cicc cico wss icossicc fss sylancl adantr mpbird ) AFMNZOZFCP
      ZEQUBZRLUCZXHPZXJEPZQRZLSUDXGXMLSXGXJSNZOZFDMXJDUCZCPZPZUEZPZXKXLQXFXTXKT
      AXNDFXRXKMXSXPFTXJXQXHXPFCUIUFXSUGZXJXHUHUJUKXOXLUAXSULFMUTAXFXNUMAXNXSXL
      UNRZXFADMBUCZXQPZUEZYCEPZUNRZBSUDXNYBKYGYBBXJSYCXJTZYEXSYFXLUNYHDMYDXRYCX
      JXQUIUOYCXJEUIUPUQURUSAXNUAUCZMNZYIXSPZSNXFAXNOZYJOZYKXJYICPZPZSYJYKYOTYL
      DYIXRYOMXSXPYITZXJXQYNXPYICUIZUFYAXJYNUHUJVAZAYJXNYOSNAYJOZSSXJYNYSYNVBVC
      ZNZSSYNVLZAMYTYICIVDZYNVEZVFVDVGVHVIAXNYJYKYIULVJVMZXSPZQRXFYMYOXJUUECPZP
      ZYKUUFQAYJXNYOUUHQRZYSUUILSYSYNUUGXIRZUUILSUDAXQXPULVJVMZCPZXIRZDMUDZYJUU
      JAVKXQXIRZUUMOZDMUDUUNJUUPUUMDMUUOUUMVNVOVFUUMUUJDYIMYPXQYNUULUUGXIYQYPUU
      KUUECXPYIULVJVPVQUPUQURYSLSSYOUUHQSYNUUGVRVRYSUUAUUBYNSVSUUCUUDSSYNWEVTYS
      UUGYTNZSSUUGVLUUGSVSAMYTCVLUUEMNZUUQYJIYIWAZMYTUUECWBWCUUGVESSUUGWEVTSVRN
      ZYSWDWFZUVASWGZYSXNOZYOWHUVCUUHWHWIWJWKVGYRYJUUFUUHTZYLYJUURUVDUUSDUUEXRU
      UHMXSXPUUETXJXQUUGXPUUECUIUFYAXJUUGUHUJVFVAWLVIWPWMWNXGLSSXKXLQSXHEVRVRXG
      XHYTNSSXHVLXHSVSAMYTFCIVDXHVESSXHWEVTAESVSZXFASWOWQWRVMZEVLZUVEASWOWQWSVM
      ZEVLUVHUVFWTUVGHWOWQXASUVHUVFEXBXCSUVFEWEVFXDUUTXGWDWFZUVIUVBXOXKWHXOXLWH
      WIXE $.

    itg2i1fseq.6 $e |- S = ( m e. NN |-> ( S.1 ` ( P ` m ) ) ) $.
    $( Subject to the conditions coming from ~ mbfi1fseq , the integral of the
       sequence of simple functions converges to the integral of the target
       function.  (Contributed by Mario Carneiro, 17-Aug-2014.) $)
    itg2i1fseq $p |- ( ph -> ( S.2 ` F ) = sup ( ran S , RR* , < ) ) $=
      ( vy cr cn cfv cmpt cle wbr vz crn clt csup citg2 cxr wceq fveq1d cbvmptv
      cv fveq2 mpteq2dv syl5eq rneqd supeq1d wcel wa citg1 cdm ffvelrnda i1fmbf
      cmbf syl wf c0p cofr cc0 cpnf cico co i1ff caddc wral breq2d oveq1 fveq2d
      c1 breq12d anbi12d rspccva sylan simpld 0plef sylanbrc simprd wrex sseldi
      rge0ssre itg2i1fseqle cvv wfn ffn adantr a1i inidm eqidd ofrfval r19.21bi
      mpbid an32s ralrimiva breq2 ralbidv rspcev syl2anc rneqi supeq1i itg2mono
      reex feqmptd cli nnuz 1zzd fmptd peano2nn ffvelrn syl2an eqid fvex adantl
      fvmpt 3brtr4d breq1d ralbiia rexbii sylibr climsup climuni syl5eqr eqtr4d
      mpteq2dva syl6eqr itg2itg1 syl6reqr 3eqtr4d ) ABOFPBUJZFUJZCQZQZRZUBZOUCU
      DZRZUEQFPYRUEQZRZUBZUFUCUDZGUEQDUBZUFUCUDANUAUUGECUUCBNOUUBEPNUJZEUJZCQZQ
      ZRZUBZOUCUDZYPUUIUGZOUUAUUNUCUUPYTUUMUUPYTEPYPUUKQZRUUMFEPYSUUQYQUUJUGZYP
      YRUUKYQUUJCUKZUHUIUUPEPUUQUULYPUUIUUKUKULUMUNUOUIZAUUJPUPZUQZUUKURUSZUPZU
      UKVBUPAPUVCUUJCJUTZUUKVAVCUVBOOUUKVDZVEUUKSVFZTZOVGVHVIVJZUUKVDUVBUVDUVFU
      VEUUKVKVCZUVBUVHUUKUUJVQVLVJZCQZUVGTZAVEYRUVGTZYRYQVQVLVJZCQZUVGTZUQZFPVM
      UVAUVHUVMUQZKUVRUVSFUUJPUURUVNUVHUVQUVMUURYRUUKVEUVGUUSVNUURYRUUKUVPUVLUV
      GUUSUURUVOUVKCYQUUJVQVLVOVPVRVSVTWAZWBZUUKWCWDUVBUVHUVMUVTWEZAUUIOUPZUQZU
      UIGQZOUPUULUWESTZEPVMZUULUAUJZSTZEPVMZUAOWFZUWDUVIOUWEWHAOUVIUUIGIUTWGUWD
      UWFEPAUVAUWCUWFUVBUWFNOUVBUUKGUVGTUWFNOVMABCFGUUJHIJKLWIUVBNOOUULUWESOUUK
      GWJWJUVBUVFUUKOWKUVJOOUUKWLVCZAGOWKZUVAAOUVIGVDUWMIOUVIGWLVCWMOWJUPUVBXIW
      NZUWNOWOZUVBUWCUQZUULWPZUWPUWEWPWQWSWRWTXAUWJUWGUAUWEOUWHUWEUGUWIUWFEPUWH
      UWEUULSXBXCXDXEZUFUUFEPUUKUEQZRZUBUCUUEUWTFEPUUDUWSUURYRUUKUEUUSVPUIZXFXG
      XHAGUUCUEAGNOUUORZUUCAGNOUWERUXBANOUVIGIXJANOUUOUWEUWDUUOFPUUIYRQZRZUBZOU
      CUDZUWEOUXEUUNUCUXDUUMFEPUXCUULUURUUIYRUUKUUSUHZUIZXFXGUWDUXDUXFXKTUXDUWE
      XKTZUXFUWEUGUWDUAEUXDVQPXLUWDXMUWDEPUULOUXDAUVAUWCUULOUPUVBOOUUIUUKUVJUTW
      TUXHXNUWDUVAUQUULUUIUVLQZUUJUXDQZUVKUXDQZSAUVAUWCUULUXJSTZUVBUXMNOUVBUVMU
      XMNOVMUWBUVBNOOUULUXJSOUUKUVLWJWJUWLUVBOOUVLVDZUVLOWKUVBUVLUVCUPZUXNAPUVC
      CVDUVKPUPZUXOUVAJUUJXOZPUVCUVKCXPXQUVLVKVCOOUVLWLVCUWNUWNUWOUWQUWPUXJWPWQ
      WSWRWTUVAUXKUULUGUWDFUUJUXCUULPUXDUXGUXDXRZUUIUUKXSYAZXTUVAUXLUXJUGZUWDUV
      AUXPUXTUXQFUVKUXCUXJPUXDYQUVKUGUUIYRUVLYQUVKCUKUHUXRUUIUVLXSYAVCXTYBUWDUW
      KUXKUWHSTZEPVMZUAOWFUWRUYBUWJUAOUYAUWIEPUVAUXKUULUWHSUXSYCYDYEYFYGAYTYPGQ
      ZXKTZBOVMUWCUXILUYDUXIBUUIOUUPYTUXDUYCUWEXKUUPFPYSUXCYPUUIYRUKULYPUUIGUKV
      RVTWAUXFUWEUXDYHXEYIYKYJUUTYLVPAUFUUHUUFUCADUUEADUWTUUEAUWTEPUUKURQZRDAEP
      UWSUYEUVBUVDUVHUWSUYEUGUVEUWAUUKYMXEYKMYNUXAYLUNUOYO $.

    ${
      itg2i1fseq2.7 $e |- ( ph -> M e. RR ) $.
      itg2i1fseq2.8 $e |- ( ( ph /\ k e. NN ) -> ( S.1 ` ( P ` k ) ) <_ M ) $.
      $( In an extension to the results of ~ itg2i1fseq , if there is an upper
         bound on the integrals of the simple functions approaching ` F ` ,
         then ` S.2 F ` is real and the standard limit relation applies.
         (Contributed by Mario Carneiro, 17-Aug-2014.) $)
      itg2i1fseq2 $p |- ( ph -> S ~~> ( S.2 ` F ) ) $=
        ( cr cfv cn vz vy crn clt csup citg2 cli c1 nnuz 1zzd cv citg1 wcel cdm
        wa ffvelrnda itg1cl syl fmptd caddc co cle cofr wbr wf peano2nn ffvelrn
        syl2an wral simpr ralimi wceq fveq2 oveq1 fveq2d breq12d rspccva itg1le
        sylan syl3anc fvex fvmpt adantl 3brtr4d eqbrtrd ralrimiva breq2 ralbidv
        c0p wrex rspcev syl2anc climsup cxr itg2i1fseq wss c0 wne frn ne0i mp1i
        dmmptd 1nn eqnetrd dm0rn0 necon3bii sylib wfn wb ffn breq1 3syl rexbidv
        ralrn mpbird supxrre eqtrd breqtrrd ) ADDUCZRUDUEZHUFSZUGAUAEDUHTUIAUJA
        FTFUKZCSZULSZRDAYBTUMUOYCULUNZUMYDRUMATYEYBCLUPYCUQURZOUSZAEUKZTUMZUOZY
        HCSZULSZYHUHUTVAZCSZULSZYHDSZYMDSZVBYJYKYEUMYNYEUMZYKYNVBVCZVDZYLYOVBVD
        ATYEYHCLUPATYECVEYMTUMZYRYILYHVFZTYEYMCVGVHAGUKZCSZUUCUHUTVAZCSZYSVDZGT
        VIZYIYTAWIUUDYSVDZUUGUOZGTVIUUHMUUJUUGGTUUIUUGVJVKURUUGYTGYHTUUCYHVLZUU
        DYKUUFYNYSUUCYHCVMUUKUUEYMCUUCYHUHUTVNVOVPVQVSYKYNVRVTYIYPYLVLAFYHYDYLT
        DYBYHVLYCYKULYBYHCVMVOOYKULWAWBWCZYIYQYOVLZAYIUUAUUMUUBFYMYDYOTDYBYMVLY
        CYNULYBYMCVMVOOYNULWAWBURWCWDAIRUMYPIVBVDZETVIZYPUAUKZVBVDZETVIZUARWJZP
        AUUNETYJYPYLIVBUULQWEWFUURUUOUAIRUUPIVLUUQUUNETUUPIYPVBWGWHWKWLZWMAYAXS
        WNUDUEZXTABCDFGHJKLMNOWOAXSRWPZXSWQWRZUBUKZUUPVBVDZUBXSVIZUARWJZUVAXTVL
        ATRDVEZUVBYGTRDWSURADUNZWQWRUVCAUVITWQAFDTYDROYFXBUHTUMTWQWRAXCTUHWTXAX
        DUVIWQXSWQDXEXFXGAUVGUUSUUTAUVFUURUARAUVHDTXHUVFUURXIYGTRDXJUVEUUQUBETD
        UVDYPUUPVBXKXNXLXMXOUAUBXSXPVTXQXR $.
    $}

    itg2i1fseq3.7 $e |- ( ph -> ( S.2 ` F ) e. RR ) $.
    $( Special case of ~ itg2i1fseq2 : if the integral of ` F ` is a real
       number, then the standard limit relation holds on the integrals of
       simple functions approaching ` F ` .  (Contributed by Mario Carneiro,
       17-Aug-2014.) $)
    itg2i1fseq3 $p |- ( ph -> S ~~> ( S.2 ` F ) ) $=
      ( vk cfv cn cr cc0 cpnf citg2 cv wcel wa cicc co wf cdm cle cofr wbr cico
      wss icossicc fss sylancl adantr ffvelrnda itg2i1fseqle itg2ub itg2i1fseq2
      citg1 syl3anc ) ABCDOEFGGUAPZHIJKLMNAOUBZQUCZUDRSTUEUFZGUGZVECPZVBUHZUCVI
      GUIUJUKVIVBPVDUIUKAVHVFARSTULUFZGUGVKVGUMVHISTUNRVKVGGUOUPUQAQVJVECJURABC
      FGVEHIJKLUSGVIUTVCVA $.
  $}

  ${
    $d f g j k m n x y z F $.  $d f g j k m n x y P $.  $d f g j k m n x y Q $.
    $d f g j k m n x y z G $.  $d f g j k m y z ph $.
    itg2add.f1 $e |- ( ph -> F e. MblFn ) $.
    itg2add.f2 $e |- ( ph -> F : RR --> ( 0 [,) +oo ) ) $.
    itg2add.f3 $e |- ( ph -> ( S.2 ` F ) e. RR ) $.
    itg2add.g1 $e |- ( ph -> G e. MblFn ) $.
    itg2add.g2 $e |- ( ph -> G : RR --> ( 0 [,) +oo ) ) $.
    itg2add.g3 $e |- ( ph -> ( S.2 ` G ) e. RR ) $.
    ${
      itg2add.p1 $e |- ( ph -> P : NN --> dom S.1 ) $.
      itg2add.p2 $e |- ( ph -> A. n e. NN
        ( 0p oR <_ ( P ` n ) /\ ( P ` n ) oR <_ ( P ` ( n + 1 ) ) ) ) $.
      itg2add.p3 $e |- ( ph -> A. x e. RR
        ( n e. NN |-> ( ( P ` n ) ` x ) ) ~~> ( F ` x ) ) $.
      itg2add.q1 $e |- ( ph -> Q : NN --> dom S.1 ) $.
      itg2add.q2 $e |- ( ph -> A. n e. NN
        ( 0p oR <_ ( Q ` n ) /\ ( Q ` n ) oR <_ ( Q ` ( n + 1 ) ) ) ) $.
      itg2add.q3 $e |- ( ph -> A. x e. RR
        ( n e. NN |-> ( ( Q ` n ) ` x ) ) ~~> ( G ` x ) ) $.
      $( Lemma for ~ itg2add .  (Contributed by Mario Carneiro,
         17-Aug-2014.) $)
      itg2addlem $p |- ( ph ->
        ( S.2 ` ( F oF + G ) ) = ( ( S.2 ` F ) + ( S.2 ` G ) ) ) $=
        ( cr vy vk vj vm vz vf vg cn cv caddc cof cfv citg1 cmpt citg2 cli wceq
        co wbr mbfadd cc0 cpnf cico cvv wcel ge0addcl adantl reex a1i inidm off
        wa cdm simpl simpr i1fadd nnex c0p cle cofr c1 ffvelrnda wral weq fveq2
        wf breq2d fveq2d breq12d anbi12d rspccva sylan simpld wi breq2 feq1 wfn
        imbi12d i1ff ffn syl adantr wss eqidd ofrfval vtoclga sylc simprd ofval
        breqtrrd ffvelrn syl2an mpbid r19.21bi le2addd ralrimiva fveq1d cbvmptv
        cc nnuz 1zzd mpteq2dv mptex eqid fvex fvmpt an32s eqeltrd recnd oveq12d
        3eqtr4d climadd itg1cl sylancl itg2i1fseqle itg2ub syl3anc itg2i1fseq3
        eqtrd fss oveq1 csn cxp 0cn fnconstg ax-mp df-0p fneq1i mpbir ax-resscn
        cnex cin sseqin2 mpbi 0pval biimpa elrege0 simplbi2 ralimdva imp syldan
        ffnfv sylanbrc ex 0plef sylib peano2nn 3syl mpbird sylan2 jca syl5eqbrr
        3brtr4d readdcld itg1add cicc icossicc eqbrtrd breq1d climuni syl2anc
        itg2i1fseq2 ) AEUHEUIZCDUJUKZUKURZULZUMULZUNZFGUWDURZUOULZUPUSUWHFUOULZ
[encoded data, 5280 characters]
        DYJYKYLUWJUWMUWHUVTUWA $.
    $}

    $d n x ph $.
    $( The ` S.2 ` integral is linear.  (Measurability is an essential
       component of this theorem; otherwise consider the characteristic
       function of a nonmeasurable set and its complement.)  (Contributed by
       Mario Carneiro, 17-Aug-2014.) $)
    itg2add $p |- ( ph ->
      ( S.2 ` ( F oF + G ) ) = ( ( S.2 ` F ) + ( S.2 ` G ) ) ) $=
      ( vf vn vx vg cn cv cfv wbr wa cr adantr citg1 cdm wf c0p cle c1 caddc co
      cofr wral cmpt cli w3a wex citg2 wceq mbfi1fseq eeanv cmbf wcel cpnf cico
      cof simprl1 simprl2 simprl3 simprr1 simprr2 simprr3 itg2addlem ex syl5bir
      cc0 exlimdvv mp2and ) ANUAUBZJOZUCZUDKOZVQPZUEUIZQVTVSUFUGUHZVQPWAQRKNUJZ
      KNLOZVTPUKWDBPULQLSUJZUMZJUNZNVPMOZUCZUDVSWHPZWAQWJWBWHPWAQRKNUJZKNWDWJPU
      KWDCPULQLSUJZUMZMUNZBCUGVCUHUOPBUOPZCUOPZUGUHUPZALJKBDEUQALMKCGHUQWGWNRWF
      WMRZMUNJUNAWQWFWMJMURAWRWQJMAWRWQAWRRLVQWHKBCABUSUTWRDTASVMVAVBUHZBUCWRET
      AWOSUTWRFTACUSUTWRGTASWSCUCWRHTAWPSUTWRITVRWCWEWMAVDVRWCWEWMAVEVRWCWEWMAV
      FWIWKWLWFAVGWIWKWLWFAVHWIWKWLWFAVIVJVKVNVLVO $.
  $}

  ${
    $d k x A $.  $d k n x z F $.  $d k n x ph $.
    itg2gt0.1 $e |- ( ph -> A e. dom vol ) $.
    itg2gt0.2 $e |- ( ph -> 0 < ( vol ` A ) ) $.
    itg2gt0.3 $e |- ( ph -> F : RR --> ( 0 [,) +oo ) ) $.
    itg2gt0.4 $e |- ( ph -> F e. MblFn ) $.
    itg2gt0.5 $e |- ( ( ph /\ x e. A ) -> 0 < ( F ` x ) ) $.
    $( If the function ` F ` is strictly positive on a set of positive measure,
       then the integral of the function is positive.  (Contributed by Mario
       Carneiro, 30-Aug-2014.) $)
    itg2gt0 $p |- ( ph -> 0 < ( S.2 ` F ) ) $=
      ( vk cc0 cvol wbr cle cn wcel syl adantr cr cvv vn vz cfv clt citg2 wn wa
      ccnv c1 cv cdiv co cpnf cioo cima cmpt crn cuni cxr cdm cicc iccssxr volf
      covol ffvelrni sseldi wss ciun wfn wceq wf cico fex sylancl cnvexg imaexg
      reex eqid fmptd ffn fniunfv wral cmbf rge0ssre mbfima ffvelrnda ralrimiva
      fss syl2anc iunmbl eqeltrrd mblss ovolcl 0xr a1i mblvol wrex sselda sylib
      elrege0 simpld syldan nnrecl wb ad2antrr elpreima biantrurd nnrecre rexrd
      adantl adantlr elioopnf 3bitr2d oveq2 oveq1d imaeq2d fvmptg syl2anr mpbid
      id eleq2d sylibrd eqbrtrd 0re sylancr sylanbrc adantrr itg2cl simpr elrpd
      ex crp mpbird syl3anc simprd breq1 xrlenlt ax-mp frn sstri 3bitr4rd eleq2
      rexbidva eluni2 rexrn syl5bb ssrdv ovolss csup caddc peano2nn lep1d nngt0
      nnre nnred nngt0d syl22anc iooss1 imass2 3sstr4d volsup eqtr3d fveq2d cif
      lerec nnrecgt0 wi ltle mpd elxrge0 0e0iccpnf ifcl icossicc 0nrp syl6eqelr
      cmul itg2const2 itg2const eqtrd simplrr rpmulcld eqeltrd mtoi itg2ge0 ord
      wo xrleloe mt3d cofr biimpa syl6bi sylc ltled iffalse pm2.61dan ovex c0ex
      ifboth ifex fvexd eqidd feqmptd ofrfval2 biimpar xrltletrd expr con3d imp
      itg2le an32s fveq2 breq1d ralrn 3syl ralima supxrleub mp2an sylibr sylibd
      imassrn xrletrd mt4d ) AKCLUCZUDMZKDUEUCZUDMZFAUYFUFZUYCKNMZUYDUFZAUYGUYH
[encoded data, 4160 characters]
      SUYB $.
  $}

  ${
    $d d m u x y z C $.  $d d m n u w x y z F $.  $d m n u x y z ph $.
    $d d u x M $.
    itg2cn.1 $e |- ( ph -> F : RR --> ( 0 [,) +oo ) ) $.
    itg2cn.2 $e |- ( ph -> F e. MblFn ) $.
    itg2cn.3 $e |- ( ph -> ( S.2 ` F ) e. RR ) $.
    $( Lemma for ~ itgcn .  (Contributed by Mario Carneiro, 30-Aug-2014.) $)
    itg2cnlem1 $p |- ( ph -> sup ( ran ( n e. NN |-> ( S.2 ` ( x e. RR |->
    if ( ( F ` x ) <_ n , ( F ` x ) , 0 ) ) ) ) , RR* , < ) = ( S.2 ` F ) ) $=
      ( vy vm cr cn cfv cle wbr cc0 cmpt wcel cvv wceq wa vz vw cv cif crn csup
      clt citg2 cxr fvex c0ex ifex fvmpt2 mpan2 mpteq2dv rneqd supeq1d mpteq2ia
      eqid nfcv nfmpt1 nfmpt nffv nfrn nfsup weq fveq2 breq2 ifbid cbvmptv reex
      fveq1d mptex eqtr4i syl6eq cbvmpt eqtr3i ccnv cpnf cioo co cima cdif cmbf
      fvmpt breq1d ifbieq1d adantl wn nnre ad2antlr rexrd elioopnf syl wfn cico
      wb wf ffn ad2antrr elpreima simpr biantrurd bitr4d wss fss sylancl adantr
      rge0ssre ffvelrnda 3bitr4d mpteq2dva a1i cdm iftrue feqmptd eqeltrrd ifcl
      syl2anc adantlr fmptd mpbird c1 wral sylib iftrued 3brtr4d ifboth eqbrtrd
      leidd ralrimiva eqidd ofrfval2 wrex breq1 ralbidv rspcev fveq2d syl31anc
      c0 notbid eldif baib lenltd 3eqtr4a difss cvol rembl eldifn iffalsed cres
      resmpt ax-mp mbfima cmmbl mbfres mbfss eqeltrd 0e0icopnf feq1d caddc cofr
      syl5eqel elrege0 simpld ad3antlr peano2re lep1d letrd iffalse simprd 0le0
      pm2.61dan peano2nn inidm ofrfval mpbid r19.21bi an32s rneqi supeq1i ralrn
      itg2mono wne 0re frn 1nn dmmptd syl5eleqr dm0rn0 necon3bbii suprleub arch
      n0i ad2antrl wi ltle syl2an eqtrd simprl fnfvelrn rexlimddv suprub suprcl
      impr syl3anc letri3d mpbir2and eqtr4d eqtr3d ) ABJCKBUCZDLZCUCZMNZUXLOUDZ
[encoded data, 4160 characters]
      IWVMWVNUAUBUXQUXDUXFVXPUXGUXHXLWUCUXIYRUXJ $.

    itg2cn.4 $e |- ( ph -> C e. RR+ ) $.
    ${
      itg2cn.5 $e |- ( ph -> M e. NN ) $.
      itg2cn.6 $e |- ( ph -> -. ( S.2 ` ( x e. RR |-> if ( ( F ` x ) <_ M ,
        ( F ` x ) , 0 ) ) ) <_ ( ( S.2 ` F ) - ( C / 2 ) ) ) $.
      $( Lemma for ~ itgcn .  (Contributed by Mario Carneiro, 31-Aug-2014.) $)
      itg2cnlem2 $p |- ( ph ->
      E. d e. RR+ A. u e. dom vol ( ( vol ` u ) < d ->
        ( S.2 ` ( x e. RR |-> if ( x e. u , ( F ` x ) , 0 ) ) ) < C ) ) $=
        ( wcel cfv clt wbr cr cc0 cle c2 cdiv co crp cv cvol cif cmpt citg2 cdm
        wi wral wrex rphalfcld nnrpd rpdivcld wa caddc ccnv cpnf cioo cima cdif
        cin simprl cmbf wf adantr wss rge0ssre fss sylancl mbfima syl2anc inmbl
        cico difmbl covol c0 inass disjdif ineq2i in0 3eqtri fveq2i ovol0 eqtri
        wceq a1i cun inundif eqcomi cicc mblss syl sselda cxr ffvelrnda elrege0
        sylib simpld rexrd simprd elxrge0 syldan eqid 0e0iccpnf ifcl fmptd cofr
        sylanbrc icossicc leidd breq1 ifboth ralrimiva cvv eqidd mpbird syl3anc
        ofrfval2 itg2le itg2lecl itg2split rpred fveq2d iftrue adantl biantrurd
        wn ad2antrr ltnled con1bid mpbid eqbrtrrd lelttrd breq2 eqbrtrd breqtrd
        wb reex feqmptd 0red elinel2 ifle syl31anc cmmbl undif2 ssequn1 syl5req
        mpteq2ia eqtrd cmin eldif baib wfn ffnd elpreima nnred elioopnf 3bitr2d
        simpr 3bitr2rd bitrd ifbid mpteq2dva breq1d resubcld ltsubadd2d ltadd1d
        mtbird mblvol simprr ovolcl xrltle mpd ovollecl eqeltrd remulcld nnnn0d
        cmul cn nn0ge0d eldifn iftrued 3brtr4d iffalse 0le0 pm2.61dan ralrimivw
        difssd itg2const nngt0d ltmuldiv2 syl112anc lt2addd rpcnd 2halvesd expr
        imbi1d ralbidv rspcev ) ADUAUBUCZFUBUCZUDNCUEZUFOZUXDPQZBRBUEZUXENZUXHE
[encoded data, 4640 characters]
        XGUXMUXQUXDUXFPYQUWTUXAUXBVN $.
    $}

    $( A sort of absolute continuity of the Lebesgue integral (this is the core
       of ~ ftc1a which is about actual absolute continuity).  (Contributed by
       Mario Carneiro, 1-Sep-2014.) $)
    itg2cn $p |- ( ph ->
      E. d e. RR+ A. u e. dom vol ( ( vol ` u ) < d ->
        ( S.2 ` ( x e. RR |-> if ( x e. u , ( F ` x ) , 0 ) ) ) < C ) ) $=
      ( vm cr cfv cle wbr cc0 citg2 wcel cn cxr vn vz vy cv cif cmpt c2 cdiv co
      cmin wn cvol clt wi cdm wral crp rphalfcld ltsubrpd rpred resubcld ltnled
      wrex mpbid crn csup wss wb wf wa cpnf cicc ffvelrnda elrege0 sylib simpld
      cico rexrd simprd elxrge0 sylanbrc 0e0iccpnf sylancl adantlr fmptd itg2cl
      ifcl eqid syl frn supxrleub syl2anc itg2cnlem1 breq1d wfn ffn breq1 ralrn
      weq breq2 ifbid mpteq2dv fveq2d fvmpt ralbiia syl6bb 3bitr3d mtbid rexnal
      fvex sylibr adantr cmbf simprl simprr fveq2 ifbieq1d fveq2i breq1i sylnib
      cbvmptv itg2cnlem2 elequ1 imbi2i ralbii rexbii rexlimddv ) ABLBUDZEMZKUDZ
      NOZYIPUEZUFZQMZEQMZDUGUHUIZUJUIZNOZUKZCUDZULMFUDUMOZBLYHYTRZYIPUEZUFZQMZD
      UMOZUNZCULUOZUPZFUQVCZKSAYRKSUPZUKYSKSVCAYOYQNOZUUKAYQYOUMOUULUKAYOYPIADJ
      URZUSAYQYOAYOYPIAYPUUMUTVAZIVBVDAUASBLYIUAUDZNOZYIPUEZUFZQMZUFZVEZTUMVFZY
      QNOZUBUDZYQNOZUBUVAUPZUULUUKAUVATVGZYQTRUVCUVFVHASTUUTVIZUVGAUASUUSTUUTAU
      UOSRZVJZLPVKVLUIZUURVIUUSTRUVJBLUUQUVKUURAYHLRZUUQUVKRZUVIAUVLVJZYIUVKRZP
      UVKRUVMUVNYITRPYINOZUVOUVNYIUVNYILRZUVPUVNYIPVKVQUIZRUVQUVPVJALUVRYHEGVMY
      IVNVOZVPVRUVNUVQUVPUVSVSYIVTWAWBUUPYIPUVKWGWCWDUURWHWEUURWFWIUUTWHZWEZSTU
      UTWJWIAYQUUNVRUBUVAYQWKWLAUVBYOYQNABUAEGHIWMWNAUUTSWOZUVFUUKVHAUVHUWBUWAS
      TUUTWPWIUWBUVFYJUUTMZYQNOZKSUPUUKUVEUWDUBKSUUTUVDUWCYQNWQWRUWDYRKSYJSRZUW
      CYNYQNUAYJUUSYNSUUTUAKWSZUURYMQUWFBLUUQYLUWFUUPYKYIPUUOYJYINWTXAXBXCUVTYM
      QXJXDWNXEXFWIXGXHYRKSXIXKAUWEYSVJZVJZUUAUCLUCUDZYTRZUWIEMZPUEZUFZQMZDUMOZ
      UNZCUUHUPZFUQVCUUJUWHUCCDEYJFALUVREVIUWGGXLAEXMRUWGHXLAYOLRUWGIXLADUQRUWG
      JXLAUWEYSXNUWHYRUCLUWKYJNOZUWKPUEZUFZQMZYQNOAUWEYSXOYNUXAYQNYMUWTQBUCLYLU
      WSBUCWSZYKUWRYIUWKPUXBYIUWKYJNYHUWIEXPZWNUXCXQYAXRXSXTYBUUIUWQFUQUUGUWPCU
      UHUUFUWOUUAUUEUWNDUMUUDUWMQBUCLUUCUWLUXBUUBUWJYIUWKPBUCCYCUXCXQYAXRXSYDYE
      YFXKYG $.
  $}

  ${
    ibllem.1 $e |- ( ( ph /\ x e. A ) -> B = C ) $.
    $( Conditioned equality theorem for the if statement.  (Contributed by
       Mario Carneiro, 31-Jul-2014.) $)
    ibllem $p |- ( ph -> if ( ( x e. A /\ 0 <_ B ) , B , 0 ) =
                         if ( ( x e. A /\ 0 <_ C ) , C , 0 ) ) $=
      ( cv wcel cc0 cle wbr wa breq2d pm5.32da ifbid wceq adantrr ifeq1da eqtrd
      cif ) ABGCHZIDJKZLZDITUAIEJKZLZDITUEEITAUCUEDIAUAUBUDAUALDEIJFMNOAUEDEIAU
      ADEPUDFQRS $.
  $}

  ${
    $d f k x y A $.  $d k y B $.  $d f k x F $.  $d k x y ph $.  $d x V $.
    isibl.1 $e |- ( ph -> G =
      ( x e. RR |-> if ( ( x e. A /\ 0 <_ T ) , T , 0 ) ) ) $.
    isibl.2 $e |- ( ( ph /\ x e. A ) -> T = ( Re ` ( B / ( _i ^ k ) ) ) ) $.
    ${
      isibl.3 $e |- ( ph -> dom F = A ) $.
      isibl.4 $e |- ( ( ph /\ x e. A ) -> ( F ` x ) = B ) $.
      $( The predicate " ` F ` is integrable".  The "integrable" predicate
         corresponds roughly to the range of validity of ` S. A B _d x ` ,
         which is to say that the expression ` S. A B _d x ` doesn't make sense
         unless ` ( x e. A |-> B ) e. L^1 ` .  (Contributed by Mario Carneiro,
         28-Jun-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
      isibl $p |- ( ph -> ( F e. L^1 <-> ( F e. MblFn /\
                    A. k e. ( 0 ... 3 ) ( S.2 ` G ) e. RR ) ) ) $=
        ( wcel cr cc0 cfv co cre cle wa vy vf cibl cmbf cv cdm ci cexp cdiv wbr
        cif cmpt citg2 c3 cfz wral csb wceq fvex breq2 anbi2d id ifbieq1d csbie
        dmeq eleq2d oveq1d fveq2d breq2d anbi12d syl5eq mpteq2dv eleq1d ralbidv
        fveq1 df-ibl elrab2 anbi1d ifbid eqtr4d ibllem eqtrd syl5bb ) GUCMGUDMZ
        BNBUEZGUFZMZOWEGPZUGFUEUHQZUIQZRPZSUJZTZWKOUKZULZUMPZNMZFOUNUOQZUPZTAWD
        HUMPZNMZFWRUPZTBNUAWEUBUEZPZWIUIQZRPZWEXCUFZMZOUAUEZSUJZTZXIOUKZUQZULZU
        MPZNMZFWRUPWSUBGUDUCXCGURZXPWQFWRXQXOWPNXQXNWOUMXQBNXMWNXQXMXHOXFSUJZTZ
        XFOUKZWNUAXFXLXTXERUSXIXFURZXKXSXIXFOYAXJXRXHXIXFOSUTVAYAVBVCVDXQXSWMXF
        WKOXQXHWGXRWLXQXGWFWEXCGVEVFXQXFWKOSXQXEWJRXQXDWHWIUIWEXCGVOVGVHZVIVJYB
        VCVKVLVHVMVNBUAUBFVPVQAWSXBWDAWQXAFWRAWPWTNAWOHUMAWOBNWECMZOESUJTEOUKZU
        LHABNWNYDAWNYCWLTZWKOUKYDAWMYEWKOAWGYCWLAWFCWEKVFVRVSABCWKEAYCTZWKDWIUI
        QZRPEYFWJYGRYFWHDWIUILVGVHJVTWAWBVLIVTVHVMVNVAWC $.
    $}

    isibl2.3 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    $( The predicate " ` F ` is integrable" when ` F ` is a mapping operation.
       (Contributed by Mario Carneiro, 31-Jul-2014.)  (Revised by Mario
       Carneiro, 23-Aug-2014.) $)
    isibl2 $p |- ( ph -> ( ( x e. A |-> B ) e. L^1 <->
  ( ( x e. A |-> B ) e. MblFn /\ A. k e. ( 0 ... 3 ) ( S.2 ` G ) e. RR ) ) ) $=
      ( vy cfv cdiv cre cr cc0 cle wa nfcv cv cmpt ci cexp co wcel wbr nffvmpt1
      cif nfv nfov nffv nfbr nfan nfif eleq1 fveq2 oveq1d fveq2d breq2d anbi12d
      wceq ifbieq1d cbvmpt simpr eqid fvmpt2 syl2anc eqtr4d ibllem syl5eq eqidd
      mpteq2dv dmmptd isibl ) ALCLUAZBCDUBZMZVRUCFUAUDUEZNUEZOMZFVQGAGBPBUAZCUF
      ZQERUGSEQUIZUBZLPVPCUFZQWARUGZSZWAQUIZUBZIAWJBPWCQWBVQMZVSNUEZOMZRUGZSZWM
      QUIZUBWELBPWIWPWHBWAQWFWGBWFBUJBQWARBQTZBRTBVTOBOTBVRVSNBCDVPUHBNTBVSTUKU
      LZUMUNWRWQUOLWPTVPWBVBZWHWOWAWMQWSWFWCWGWNVPWBCUPWSWAWMQRWSVTWLOWSVRWKVSN
      VPWBVQUQURUSZUTVAWTVCVDABPWPWDABCWMEAWCSZWMDVSNUEZOMEXAWLXBOXAWKDVSNXAWCD
      HUFWKDVBAWCVEKBCDHVQVQVFZVGVHURUSJVIVJVMVKVIAWFSZWAVLABVQCDHXCKVNXDVRVLVO
      $.
  $}

  ${
    $d f k x y A $.  $d k y B $.  $d k G $.  $d k x y K $.  $d k x y ph $.
    $d y T $.  $d x V $.
    $( An integrable function is measurable.  (Contributed by Mario Carneiro,
       7-Jul-2014.) $)
    iblmbf $p |- ( F e. L^1 -> F e. MblFn ) $=
      ( vx vy vf vk cibl cmbf cr cv cfv ci cexp cdiv cre cdm wcel cc0 cle wbr
      co wa cif csb cmpt citg2 c3 cfz wral crab df-ibl ssrab2 eqsstri sseli ) F
      GAFBHCBIZDIZJKEILTMTNJUNUOOPQCIZRSUAUPQUBUCUDUEJHPEQUFUGTUHZDGUIGBCDEUJUQ
      DGUKULUM $.

    iblitg.1 $e |- ( ph -> G =
      ( x e. RR |-> if ( ( x e. A /\ 0 <_ T ) , T , 0 ) ) ) $.
    iblitg.2 $e |- ( ( ph /\ x e. A ) -> T = ( Re ` ( B / ( _i ^ K ) ) ) ) $.
    iblitg.3 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    iblitg.4 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    $( If a function is integrable, then the ` S.2 ` integrals of the
       function's decompositions all exist.  (Contributed by Mario Carneiro,
       7-Jul-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    iblitg $p |- ( ( ph /\ K e. ZZ ) -> ( S.2 ` G ) e. RR ) $=
      ( wcel wa cfv cr cc0 c4 co c3 vk cz citg2 cv ci cmo cexp cdiv cre cle wbr
      cif cmpt wceq adantr adantlr iexpcyc oveq2d fveq2d ad2antlr eqtr4d ibllem
      mpteq2dv eqtrd cfz wral c1 cmin 4nn zmodfz mpan2 4cn ax-1cn caddc addcomi
      cn 3cn df-4 eqtr4i subaddrii oveq2i syl6eleq adantl cmbf cibl eqidd mpbid
      isibl2 simprd oveq2 breq2d anbi2d ifbieq1d eleq1d rspcv sylc eqeltrd ) AG
      UBMZNZFUCOBPBUDCMZQDUEGRUFSZUGSZUHSZUIOZUJUKZNZXDQULZUMZUCOZPWSFXHUCWSFBP
      WTQEUJUKNEQULZUMZXHAFXKUNWRIUOWSBPXJXGWSBCEXDWSWTNEDUEGUGSZUHSZUIOZXDAWTE
      XNUNWRJUPWRXDXNUNAWTWRXCXMUIWRXBXLDUHGUQURUSUTVAVBVCVDUSWSXAQTVESZMZBPWTQ
      DUEUAUDZUGSZUHSZUIOZUJUKZNZXTQULZUMZUCOZPMZUAXOVFZXIPMZWRXPAWRXAQRVGVHSZV
      ESZXOWRRVPMXAYJMVIGRVJVKYITQVERVGTVLVMVQVGTVNSTVGVNSRVGTVMVQVOVRVSVTWAWBW
      CAYGWRABCDUMZWDMZYGAYKWEMYLYGNKABCDXTUAYDHAYDWFAWTNXTWFLWHWGWIUOYFYHUAXAX
      OXQXAUNZYEXIPYMYDXHUCYMBPYCXGYMYBXFXTXDQYMYAXEWTYMXTXDQUJYMXSXCUIYMXRXBDU
      HXQXAUEUGWJURUSZWKWLYNWMVCUSWNWOWPWQ $.
  $}

  ${
    $d k x y $.  $d k y A $.  $d k y B $.  $d y T $.
    dfitg.1 $e |- T = ( Re ` ( B / ( _i ^ k ) ) ) $.
    $( Evaluate the class substitution in ~ df-itg .  (Contributed by Mario
       Carneiro, 28-Jun-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    dfitg $p |- S. A B _d x = sum_ k e. ( 0 ... 3 ) ( ( _i ^ k ) x.
             ( S.2 ` ( x e. RR |-> if ( ( x e. A /\ 0 <_ T ) , T , 0 ) ) ) ) $=
      ( vy cc0 co cv cr cre cfv wcel cle wbr wa cif citg2 cmul citg c3 cfz cexp
      ci cdiv csb cmpt df-itg wceq fvex id syl6eqr breq2d anbi2d ifbieq1d csbie
      csu mpteq2i fveq2i oveq2i a1i sumeq2i eqtri ) ABCUAHUBUCIZUEEJZUDIZAKGCVG
      UFIZLMZAJBNZHGJZOPZQZVKHRZUGZUHZSMZTIZEURVEVGAKVJHDOPZQZDHRZUHZSMZTIZEURA
      GBCEUIVEVRWDEVRWDUJVFVENVQWCVGTVPWBSAKVOWAGVIVNWAVHLUKVKVIUJZVMVTVKDHWEVL
      VSVJWEVKDHOWEVKVIDWEULFUMZUNUOWFUPUQUSUTVAVBVCVD $.
  $}

  ${
    $d k x y $.  $d k y A $.  $d k y B $.  $d k C $.
    $( An integral is a set.  (Contributed by Mario Carneiro, 28-Jun-2014.) $)
    itgex $p |- S. A B _d x e. _V $=
      ( vk vy citg cc0 c3 cfz co ci cv cexp cr cdiv cre cfv wcel cle wbr wa cif
      csb cmpt citg2 cmul csu cvv df-itg sumex eqeltri ) ABCFGHIJZKDLMJZANECUMO
      JPQALBRGELZSTUAUNGUBUCUDUEQUFJZDUGUHAEBCDUIULUODUJUK $.

    itgeq1f.1 $e |- F/_ x A $.
    itgeq1f.2 $e |- F/_ x B $.
    $( Equality theorem for an integral.  (Contributed by Mario Carneiro,
       28-Jun-2014.) $)
    itgeq1f $p |- ( A = B -> S. A C _d x = S. B C _d x ) $=
      ( vk wceq cc0 co cv cr wcel cfv wa cif cmpt citg2 cmul csu c3 cfz ci cexp
      cdiv cre cle wbr citg wral eqid nfeq eleq2 anbi1d ralrimi mpteq12 sylancr
      ifbid a1d fveq2d oveq2d sumeq2sdv dfitg 3eqtr4g ) BCHZIUAUBJZUCGKUDJZALAK
      ZBMZIDVGUEJUFNZUGUHZOZVJIPZQZRNZSJZGTVFVGALVHCMZVKOZVJIPZQZRNZSJZGTABDUIA
      CDUIVEVFVPWBGVEVOWAVGSVEVNVTRVELLHVMVSHZALUJVNVTHLUKVEWCALABCEFULVEWCVHLM
      VEVLVRVJIVEVIVQVKBCVHUMUNURUSUOALVMLVSUPUQUTVAVBABDVJGVJUKZVCACDVJGWDVCVD
      $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Equality theorem for an integral.  (Contributed by Mario Carneiro,
       28-Jun-2014.) $)
    itgeq1 $p |- ( A = B -> S. A C _d x = S. B C _d x ) $=
      ( nfcv itgeq1f ) ABCDABEACEF $.
  $}

  ${
    $d k x z $.  $d k z A $.  $d k z B $.
    $( Bound-variable hypothesis builder for an integral.  (Contributed by
       Mario Carneiro, 28-Jun-2014.) $)
    nfitg1 $p |- F/_ x S. A B _d x $=
      ( vk vz citg cc0 c3 cfz co ci cv cexp cr cdiv cre cfv citg2 cmul nfcv cle
      wcel wbr wa cif csb cmpt csu df-itg nfmpt1 nffv nfov nfsum nfcxfr ) AABCF
      GHIJZKDLMJZANECUPOJPQALBUBGELZUAUCUDUQGUEUFZUGZRQZSJZDUHAEBCDUIAUOVADAUOT
      AUPUTSAUPTASTAUSRARTANURUJUKULUMUN $.
  $}

  ${
    $d k x y $.  $d k A $.  $d k B $.
    nfitg.1 $e |- F/_ y A $.
    nfitg.2 $e |- F/_ y B $.
    $( Bound-variable hypothesis builder for an integral: if ` y ` is
       (effectively) not free in ` A ` and ` B ` , it is not free in
       ` S. A B _d x ` .  (Contributed by Mario Carneiro, 28-Jun-2014.) $)
    nfitg $p |- F/_ y S. A B _d x $=
      ( vk cc0 co cv cr cdiv cre cfv cle citg2 cmul nfcv nfov nffv citg c3 cexp
      cfz ci wcel wbr cif cmpt csu eqid dfitg nfcri nfbr nfan nfif nfmpt nfcxfr
      wa nfsum ) BACDUAHUBUDIZUEGJUCIZAKAJCUFZHDVBLIZMNZOUGZUSZVEHUHZUIZPNZQIZG
      UJACDVEGVEUKULBVAVKGBVARBVBVJQBVBRZBQRBVIPBPRBAKVHBKRVGBVEHVCVFBBACEUMBHV
      EOBHRZBORBVDMBMRBDVBLFBLRVLSTZUNUOVNVMUPUQTSUTUR $.
  $}

  ${
    $d k x y A $.  $d k B $.  $d k C $.
    cbvitg.1 $e |- ( x = y -> B = C ) $.
    ${
      cbvitg.2 $e |- F/_ y B $.
      cbvitg.3 $e |- F/_ x C $.
      $( Change bound variable in an integral.  (Contributed by Mario Carneiro,
         28-Jun-2014.) $)
      cbvitg $p |- S. A B _d x = S. A C _d y $=
        ( vk cc0 co cv cr wcel cdiv cre cfv cle citg2 nfcv c3 cfz ci wbr wa cif
        cexp cmpt cmul csu citg wceq nfv nfov nffv nfbr nfan nfif oveq1d fveq2d
        eleq1 breq2d anbi12d ifbieq1d cbvmpt oveq2d sumeq2i eqid dfitg 3eqtr4i
        a1i ) JUAUBKZUCILZUGKZAMALZCNZJDVNOKZPQZRUDZUEZVRJUFZUHZSQZUIKZIUJVLVNB
        MBLZCNZJEVNOKZPQZRUDZUEZWHJUFZUHZSQZUIKZIUJACDUKBCEUKVLWDWNIVMVLNZWCWMV
        NUIWOWBWLSWBWLULWOABMWAWKVTBVRJVPVSBVPBUMBJVRRBJTZBRTBVQPBPTBDVNOGBOTBV
        NTUNUOZUPUQWQWPURWJAWHJWFWIAWFAUMAJWHRAJTZARTAWGPAPTAEVNOHAOTAVNTUNUOZU
        PUQWSWRURVOWEULZVTWJVRWHJWTVPWFVSWIVOWECVAWTVRWHJRWTVQWGPWTDEVNOFUSUTZV
        BVCXAVDVEVKUTVFVGACDVRIVRVHVIBCEWHIWHVHVIVJ $.
    $}

    $d y B $.  $d x C $.
    $( Change bound variable in an integral.  (Contributed by Mario Carneiro,
       28-Jun-2014.) $)
    cbvitgv $p |- S. A B _d x = S. A C _d y $=
      ( nfcv cbvitg ) ABCDEFBDGAEGH $.
  $}

  ${
    $d k x $.  $d k A $.  $d k B $.  $d k C $.
    $( Equality theorem for an integral.  (Contributed by Mario Carneiro,
       28-Jun-2014.) $)
    itgeq2 $p |- ( A. x e. A B = C -> S. A B _d x = S. A C _d x ) $=
      ( vk wceq wral cc0 co cv cr wcel cdiv cre cfv cle wbr citg2 cmul eqid cfz
      c3 ci cexp wa cif cmpt csu wi wn simpl con3i iffalsed eqtr4d oveq1 fveq2d
      citg breq2d anbi2d ifbieq1d ja a1d ralimi2 mpteq12 oveq2d sumeq2sdv dfitg
      sylancr 3eqtr4g ) CDFZABGZHUBUAIZUCEJUDIZAKAJZBLZHCVMMIZNOZPQZUEZVQHUFZUG
      ZROZSIZEUHVLVMAKVOHDVMMIZNOZPQZUEZWEHUFZUGZROZSIZEUHABCUQABDUQVKVLWCWKEVK
      WBWJVMSVKWAWIRVKKKFVTWHFZAKGWAWIFKTVJWLABKVOVJUIWLVNKLVOVJWLVOUJZVTHWHWMV
      SVQHVSVOVOVRUKULUMWMWGWEHWGVOVOWFUKULUMUNVJVSWGVQWEHVJVRWFVOVJVQWEHPVJVPW
      DNCDVMMUOUPZURUSWNUTVAVBVCAKVTKWHVDVHUPVEVFABCVQEVQTVGABDWEEWETVGVI $.

    $( The domain of an integral only matters in its intersection with ` RR ` .
       (Contributed by Mario Carneiro, 29-Jun-2014.) $)
    itgresr $p |- S. A B _d x = S. ( A i^i RR ) B _d x $=
      ( vk cc0 c3 cfz co cv cr wcel cfv wa cif cmpt citg2 cmul csu citg dfitg
      ci cexp cdiv cre cle wbr cin simpr biantrud elin syl6bbr anbi1d mpteq2dva
      ifbid fveq2d oveq2d sumeq2i eqid 3eqtr4i ) EFGHZUADIZUBHZAJAIZBKZECVBUCHU
      DLZUEUFZMZVEENZOZPLZQHZDRUTVBAJVCBJUGZKZVFMZVEENZOZPLZQHZDRABCSAVLCSUTVKV
      RDVAUTKZVJVQVBQVSVIVPPVSAJVHVOVSVCJKZMZVGVNVEEWAVDVMVFWAVDVDVTMVMWAVTVDVS
      VTUHUIVCBJUJUKULUNUMUOUPUQABCVEDVEURZTAVLCVEDWBTUS $.

    $( The integral of anything on the empty set is zero.  (Contributed by
       Mario Carneiro, 13-Aug-2014.) $)
    itg0 $p |- S. (/) A _d x = 0 $=
      ( vk c0 citg cc0 c3 co ci cv cr wcel cfv cif cmpt citg2 cmul csu eqtri cc
      cfz cexp cdiv cre cle wbr eqid dfitg csn cxp ifan noel iffalsei fconstmpt
      wa mpteq2i eqtr4i fveq2i itg20 oveq2i ax-icn elfznn0 expcl sylancr mul01d
      cn0 syl5eq sumeq2i cuz wss cfn wo wceq fzfi olci sumz ax-mp ) ADBEFGUAHZI
      CJZUBHZAKAJZDLZFBVTUCHUDMZUEUFZUOWCFNZOZPMZQHZCRZFADBWCCWCUGUHWIVRFCRZFVR
      WHFCVSVRLZWHVTFQHFWGFVTQWGKFUIUJZPMFWFWLPWFAKFOWLAKWEFWEWBWDWCFNZFNFWBWDW
      CFUKWBWMFWAULUMSUPAKFUNUQURUSSUTWKVTWKITLVSVFLVTTLVAVSGVBIVSVCVDVEVGVHVRF
      VIMVJZVRVKLZVLWJFVMWOWNFGVNVOVRCFVPVQSS $.

    $( The integral of zero on any set is zero.  (Contributed by Mario
       Carneiro, 29-Jun-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    itgz $p |- S. A 0 _d x = 0 $=
      ( vk cc0 c3 co ci cv cr wcel cre cfv cif cmpt citg2 cmul cc ax-icn syl6eq
      csu citg cfz cexp cdiv cle wbr wa dfitg csn cxp cn0 elfznn0 expcl sylancr
      eqid cz wne elfzelz ine0 expne0i mp3an12 syl div0d fveq2d re0 ifeq1d ifid
      mpteq2dv fconstmpt syl6eqr itg20 oveq2d mul01d eqtrd sumeq2i cuz wss wceq
      cfn wo fzfi olci sumz ax-mp 3eqtri ) ABDUADEUBFZGCHZUCFZAIAHBJDDWHUDFZKLZ
      UEUFUGZWJDMZNZOLZPFZCTWFDCTZDABDWJCWJUOUHWFWODCWGWFJZWOWHDPFDWQWNDWHPWQWN
      IDUIUJZOLDWQWMWROWQWMAIDNWRWQAIWLDWQWLWKDDMDWQWKWJDDWQWJDKLDWQWIDKWQWHWQG
      QJZWGUKJWHQJRWGEULGWGUMUNZWQWGUPJZWHDUQZWGDEURWSGDUQXAXBRUSGWGUTVAVBVCVDV
      ESVFWKDVGSVHAIDVIVJVDVKSVLWQWHWTVMVNVOWFDVPLVQZWFVSJZVTWPDVRXDXCDEWAWBWFC
      DWCWDWE $.
  $}

  ${
    $d x ph $.
    itgeq2dv.1 $e |- ( ( ph /\ x e. A ) -> B = C ) $.
    $( Equality theorem for an integral.  (Contributed by Mario Carneiro,
       7-Jul-2014.) $)
    itgeq2dv $p |- ( ph -> S. A B _d x = S. A C _d x ) $=
      ( wceq wral citg ralrimiva itgeq2 syl ) ADEGZBCHBCDIBCEIGAMBCFJBCDEKL $.
  $}

  ${
    $d k x y A $.  $d k y B $.  $d k x ph $.  $d x V $.
    itgmpt.1 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    $( Change bound variable in an integral.  (Contributed by Mario Carneiro,
       29-Jun-2014.) $)
    itgmpt $p |- ( ph -> S. A B _d x = S. A ( ( x e. A |-> B ) ` y ) _d y ) $=
      ( cv cmpt cfv citg fveq2 nffvmpt1 nfcv cbvitg wcel wa wceq simpr eqid
      fvmpt2 syl2anc itgeq2dv syl5req ) ACDCHZBDEIZJZKBDBHZUFJZKBDEKCBDUGUIUEUH
      UFLBDEUEMCUINOABDUIEAUHDPZQUJEFPUIERAUJSGBDEFUFUFTUAUBUCUD $.

    itgcl.2 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    $( The integral of an integrable function is a complex number.  This is
       Metamath 100 proof #86.  (Contributed by Mario Carneiro,
       29-Jun-2014.) $)
    itgcl $p |- ( ph -> S. A B _d x e. CC ) $=
      ( vk citg cc0 c3 co ci cv cr wcel cfv wa cc eqidd cfz cexp cdiv cre citg2
      cle wbr cif cmpt cmul csu dfitg fzfid ax-icn elfznn0 adantl expcl sylancr
      eqid cn0 cz elfzelz iblitg sylan2 recnd mulcld fsumcl syl5eqel ) ABCDIJKU
      ALZMHNZUBLZBOBNCPZJDVKUCLUDQZUFUGRVMJUHUIZUEQZUJLZHUKSBCDVMHVMUSULAVIVPHA
      JKUMAVJVIPZRZVKVOVRMSPVJUTPZVKSPUNVQVSAVJKUOUPMVJUQURVRVOVQAVJVAPVOOPVJJK
      VBABCDVMVNVJEAVNTAVLRVMTGFVCVDVEVFVGVH $.
  $}

  ${
    $d x k $.  $d x K $.
    itgvallem.1 $e |- ( _i ^ K ) = T $.
    $( Substitution lemma.  (Contributed by Mario Carneiro, 7-Jul-2014.)
       (Revised by Mario Carneiro, 23-Aug-2014.) $)
    itgvallem $p |- ( k = K -> ( S.2 ` ( x e. RR |->
        if ( ( x e. A /\ 0 <_ ( Re ` ( B / ( _i ^ k ) ) ) ) ,
             ( Re ` ( B / ( _i ^ k ) ) ) , 0 ) ) ) =
             ( S.2 ` ( x e. RR |->
        if ( ( x e. A /\ 0 <_ ( Re ` ( B / T ) ) ) ,
             ( Re ` ( B / T ) ) , 0 ) ) ) ) $=
      ( cv cr cc0 ci cexp co cdiv cre cfv cle wbr wa cif wceq wcel citg2 syl6eq
      cmpt oveq2 oveq2d fveq2d breq2d anbi2d ifbieq1d mpteq2dv ) EHZFUAZAIAHBUB
      ZJCKUMLMZNMZOPZQRZSZURJTZUEAIUOJCDNMZOPZQRZSZVCJTZUEUCUNAIVAVFUNUTVEURVCJ
      UNUSVDUOUNURVCJQUNUQVBOUNUPDCNUNUPKFLMDUMFKLUFGUDUGUHZUIUJVGUKULUH $.
  $}

  ${
    $d x ph $.
    itgvallem3.1 $e |- ( ( ph /\ x e. A ) -> B = 0 ) $.
    $( Lemma for ~ itgposval and ~ itgreval .  (Contributed by Mario Carneiro,
       7-Jul-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    itgvallem3 $p |- ( ph ->
      ( S.2 ` ( x e. RR |-> if ( ( x e. A /\ 0 <_ B ) , B , 0 ) ) ) = 0 ) $=
      ( cr cv wcel cc0 cle wbr wa cif cmpt citg2 cfv csn cxp wceq syl6eq fveq2d
      adantrr ifeq1da ifid mpteq2dv fconstmpt syl6eqr itg20 ) ABFBGCHZIDJKZLZDI
      MZNZOPFIQRZOPIAUMUNOAUMBFINUNABFULIAULUKIIMIAUKDIIAUIDISUJEUBUCUKIUDTUEBF
      IUFUGUAUHT $.
  $}

  ${
    $d k x A $.
    $( The zero function is integrable on any measurable set.  (Unlike
       ~ iblconst , this does not require ` A ` to have finite measure.)
       (Contributed by Mario Carneiro, 23-Aug-2014.) $)
    ibl0 $p |- ( A e. dom vol -> ( A X. { 0 } ) e. L^1 ) $=
      ( vx vk cvol cdm wcel cc0 csn cr cv ci co cre cfv wa c3 wceq eqidd c0ex
      cc cxp cibl cmbf cexp cdiv cle wbr cif cmpt citg2 cfz wral mbfconst mpan2
      0cn elfzelz ad2antlr wne ax-icn ine0 w3a expclz expne0i div0d mp3an12 syl
      cz fveq2d re0 syl6eq itgvallem3 0re syl6eqel ralrimiva wf fconst fdm mp1i
      fvconst2 adantl isibl mpbir2and ) ADEFZAGHZUAZUBFWEUCFZBIBJZAFZGGKCJZUDLZ
      UELZMNZUFUGOWLGUHUIZUJNZIFZCGPUKLZULWCGTFWFUOAGUMUNWCWOCWPWCWIWPFZOZWNGIW
      RBAWLWRWHOZWLGMNGWSWKGMWSWIVGFZWKGQZWQWTWCWHWIGPUPUQKTFZKGURZWTXAUSUTXBXC
      WTVAWJKWIVBKWIVCVDVEVFVHVIVJVKVLVMVNWCBAGWLCWEWMWCWMRWCWHOWLRAWDWEVOWEEAQ
      WCAGSVPAWDWEVQVRWHWGWENGQWCAGWGSVSVTWAWB $.
  $}

  ${
    $d k x A $.  $d k B $.  $d k x ph $.  $d x V $.
    itgcnlem.r $e |- R = ( S.2 ` ( x e. RR |->
      if ( ( x e. A /\ 0 <_ ( Re ` B ) ) , ( Re ` B ) , 0 ) ) ) $.
    itgcnlem.s $e |- S = ( S.2 ` ( x e. RR |->
      if ( ( x e. A /\ 0 <_ -u ( Re ` B ) ) , -u ( Re ` B ) , 0 ) ) ) $.
    itgcnlem.t $e |- T = ( S.2 ` ( x e. RR |->
      if ( ( x e. A /\ 0 <_ ( Im ` B ) ) , ( Im ` B ) , 0 ) ) ) $.
    itgcnlem.u $e |- U = ( S.2 ` ( x e. RR |->
      if ( ( x e. A /\ 0 <_ -u ( Im ` B ) ) , -u ( Im ` B ) , 0 ) ) ) $.
    ${
      itgcnlem1.v $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
      $( Lemma for ~ iblcnlem .  (Contributed by Mario Carneiro, 6-Aug-2014.)
         (Revised by Mario Carneiro, 23-Aug-2014.) $)
      iblcnlem1 $p |- ( ph ->
        ( ( x e. A |-> B ) e. L^1 <-> ( ( x e. A |-> B ) e. MblFn /\
          ( R e. RR /\ S e. RR ) /\ ( T e. RR /\ U e. RR ) ) ) ) $=
        ( wcel cr cc0 co cfv wa c1 vk cmpt cibl cmbf cv ci cexp cre cle wbr cif
        cdiv citg2 c3 cfz wral w3a cc eqidd isibl2 cpr c2 c0ex wceq ax-icn exp0
        1ex ax-mp itgvallem eleq1d exp1 ralpr div1d fveq2d mpteq2dv syl6eqr cim
        ibllem syl syl5req anbi12d syl5bb cneg 2ex 3ex i2 renegd ax-1cn negnegi
        imval i3 oveq2i negcld syl5eq wne negcli neg1ne0 div2neg mp3an23 eqtr3d
        imnegd eqcomi ine0 negne0i 3eqtr3d cun caddc 1le3 cuz cz wb 1eluzge0 3z
        elfz5 mp2an mpbir fzsplit 0z fzpr 1e0p1 preq2i 3eqtr4i 2z 1p1e2 oveq12i
        df-3 uneq12i eqtri raleqi ralunb bitri an4 3bitr4g anbi2d syl6bbr bitrd
        3anass ) ABCDUBZUCNYRUDNZBOBUECNZPDUFUAUEZUGQULQUHRZUIUJSUUBPUKUBZUMRZO
        NZUAPUNUOQZUPZSZYSEONZFONZSZGONZHONZSZUQZABCDUUBUAUUCURAUUCUSAYTSZUUBUS
        MUTAUUHYSUUKUUNSZSUUOAUUGUUQYSAUUEUAPTVAZUPZUUEUAVBUNVAZUPZSZUUIUULSZUU
        JUUMSZSUUGUUQAUUSUVCUVAUVDUUSBOYTPDTULQZUHRZUIUJSUVFPUKZUBZUMRZONZBOYTP
        DUFULQUHRZUIUJSUVKPUKZUBZUMRZONZSAUVCUUEUVJUVOUAPTVCVGUUAPVDUUDUVIOBCDT
        UAPUFURNZUFPUGQTVDVEUFVFVHVIVJUUATVDUUDUVNOBCDUFUATUVPUFTUGQUFVDVEUFVKV
        HVIVJVLAUVJUUIUVOUULAUVIEOAUVIBOYTPDUHRZUIUJSUVQPUKZUBZUMREAUVHUVSUMABO
        UVGUVRABCUVFUVQUUPUVEDUHUUPDMVMVNVRVOVNIVPVJAUVNGOAGBOYTPDVQRZUIUJSUVTP
        UKZUBZUMRUVNKAUWBUVMUMABOUWAUVLABCUVTUVKUUPDURNZUVTUVKVDMDWJVSVRVOVNVTV
        JWAWBUVABOYTPDTWCZULQZUHRZUIUJSUWFPUKZUBZUMRZONZBOYTPDUFWCZULQZUHRZUIUJ
        SUWMPUKZUBZUMRZONZSAUVDUUEUWJUWQUAVBUNWDWEUUAVBVDUUDUWIOBCDUWDUAVBWFVIV
        JUUAUNVDUUDUWPOBCDUWKUAUNWKVIVJVLAUWJUUJUWQUUMAUWIFOAFBOYTPUVQWCZUIUJSU
        WRPUKZUBZUMRUWIJAUWTUWHUMABOUWSUWGABCUWRUWFUUPDWCZUHRUWRUWFUUPDMWGUUPUX
        AUWEUHUUPUXAUWDWCZULQZUXAUWEUUPUXCUXATULQUXAUXBTUXAULTWHWIWLUUPUXAUUPDM
        WMZVMWNUUPUWCUXCUWEVDZMUWCUWDURNUWDPWOUXETWHWPWQDUWDWRWSVSWTVNWTVRVOVNV
        TVJAUWPHOAHBOYTPUVTWCZUIUJSUXFPUKZUBZUMRUWPLAUXHUWOUMABOUXGUWNABCUXFUWM
        UUPUXAVQRZUXAUFULQZUHRZUXFUWMUUPUXAURNUXIUXKVDUXDUXAWJVSUUPDMXAUUPUXJUW
        LUHUUPUXJUXAUWKWCZULQZUWLUFUXLUXAULUXLUFUFVEWIXBWLUUPUWCUXMUWLVDZMUWCUW
        KURNUWKPWOUXNUFVEWPUFVEXCXDDUWKWRWSVSWNVNXEVRVOVNVTVJWAWBWAUUGUUEUAUURU
        UTXFZUPUVBUUEUAUUFUXOUUFPTUOQZTTXGQZUNUOQZXFZUXOTUUFNZUUFUXSVDUXTTUNUIU
        JZXHTPXIRNUNXJNUXTUYAXKXLXMTPUNXNXOXPTPUNXQVHUXPUURUXRUUTPPTXGQZUOQZPUY
        BVAZUXPUURPXJNUYCUYDVDXRPXSVHTUYBPUOXTWLTUYBPXTYAYBVBVBTXGQZUOQZVBUYEVA
        ZUXRUUTVBXJNUYFUYGVDYCVBXSVHUXQVBUNUYEUOYDYFYEUNUYEVBYFYAYBYGYHYIUUEUAU
        URUUTYJYKUUIUUJUULUUMYLYMYNYSUUKUUNYQYOYP $.
    $}

    itgcnlem.v $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    $( Expand out the forall in ~ isibl2 .  (Contributed by Mario Carneiro,
       6-Aug-2014.) $)
    iblcnlem $p |- ( ph ->
      ( ( x e. A |-> B ) e. L^1 <-> ( ( x e. A |-> B ) e. MblFn /\
        ( R e. RR /\ S e. RR ) /\ ( T e. RR /\ U e. RR ) ) ) ) $=
      ( wcel cr wa cc0 cfv citg2 cmpt cmbf w3a wi iblmbf a1i simp1 wb cc cif cv
      cibl cre cle wbr cneg cim eqid 0cn elimel iblcnlem1 adantr wceq wral mbff
      wf cdm dmmptd biimpa sylan2 fmpt sylibr iftrue ralimi syl mpteq12 sylancr
      feq2d eleq1d imim2i imp fveq2d ibllem a1d ralimi2 syl6eqr anbi12d 3bitr3d
      negeqd 3anbi123d ex pm5.21ndd ) ABCDUAZUBOZWMULOZWNEPOZFPOZQZGPOZHPOZQZUC
      ZWOWNUDAWMUEUFXBWNUDAWNWRXAUGUFAWNWOXBUHAWNQZBCDUIOZDRUJZUAZULOZXFUBOZBPB
      UKZCOZRXEUMSZUNUOQXKRUJZUAZTSZPOZBPXJRXKUPZUNUOQXPRUJZUAZTSZPOZQZBPXJRXEU
      QSZUNUOQYBRUJZUAZTSZPOZBPXJRYBUPZUNUOQYGRUJZUAZTSZPOZQZUCZWOXBAXGYMUHWNAB
      CXEXNXSYEYJXNURXSURYEURYJURXEUIOAXJQDRUIUSUTUFVAVBXCXFWMULXCCCVCXEDVCZBCV
      DZXFWMVCCURXCXDBCVDZYOXCCUIWMVFZYPWNAWMVGZUIWMVFZYQWMVEAYSYQAYRCUIWMABWMC
      DIWMURZNVHVRVIVJBCUIDWMYTVKVLZXDYNBCXDDRVMZVNVOBCXECDVPVQZVSXCXHWNYAWRYLX
      AXCXFWMUBUUCVSXCXOWPXTWQXCXNEPXCXNBPXJRDUMSZUNUOQUUDRUJZUAZTSEXCXMUUFTXCP
      PVCZXLUUEVCZBPVDZXMUUFVCPURZXCYPUUIUUAXDUUHBCPXJXDUDZUUHXIPOZUUKBCXKUUDUU
      KXJQZXEDUMUUKXJYNXDYNXJUUBVTWAZWBZWCWDWEVOBPXLPUUEVPVQWBJWFVSXCXSFPXCXSBP
      XJRUUDUPZUNUOQUUPRUJZUAZTSFXCXRUURTXCUUGXQUUQVCZBPVDZXRUURVCUUJXCYPUUTUUA
      XDUUSBCPUUKUUSUULUUKBCXPUUPUUMXKUUDUUOWIWCWDWEVOBPXQPUUQVPVQWBKWFVSWGXCYF
      WSYKWTXCYEGPXCYEBPXJRDUQSZUNUOQUVARUJZUAZTSGXCYDUVCTXCUUGYCUVBVCZBPVDZYDU
      VCVCUUJXCYPUVEUUAXDUVDBCPUUKUVDUULUUKBCYBUVAUUMXEDUQUUNWBZWCWDWEVOBPYCPUV
      BVPVQWBLWFVSXCYJHPXCYJBPXJRUVAUPZUNUOQUVGRUJZUAZTSHXCYIUVITXCUUGYHUVHVCZB
      PVDZYIUVIVCUUJXCYPUVKUUAXDUVJBCPUUKUVJUULUUKBCYGUVGUUMYBUVAUVFWIWCWDWEVOB
      PYHPUVHVPVQWBMWFVSWGWJWHWKWL $.

    itgcnlem.i $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    $( Expand out the sum in ~ dfitg .  (Contributed by Mario Carneiro,
       1-Aug-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    itgcnlem $p |- ( ph ->
      S. A B _d x = ( ( R - S ) + ( _i x. ( T - U ) ) ) ) $=
      ( co ci cmul cc0 wcel vk citg cmin caddc cneg c3 cfz cv cexp cdiv cre cfv
      cr cle wbr wa cif cmpt citg2 csu eqid dfitg cn0 wceq c2 nn0uz df-3 syl6eq
      oveq2 i3 itgvallem oveq12d cc ax-icn a1i expcl sylan cz nn0z eqidd iblitg
      recnd sylan2 mulcld c1 df-2 i2 1e0p1 exp1 ax-mp cibl cmbf iblmbf mbfmptcl
      0z syl div1d fveq2d ibllem mpteq2dv syl6reqr oveq2d iblcnlem mpbid simp2d
      w3a simpld mulid2d eqtr3d eqeltrd exp0 fsum1 sylancr eqtrd 0nn0 jctil cim
      syl5req fsump1i renegd ax-1cn negnegi oveq2i negcld syl5eq negcli neg1ne0
      imval wne div2neg mp3an23 simprd mulm1d simp3d mulcl addcld 3eqtrd imnegd
      negsubd addsubd eqcomi negne0i 3eqtr3d mulneg12 subcld addassd adddid
      ine0 ) ABCDUBZEFUCPZQGRPZUDPZQHUEZRPZUDPZUUJUUKUUNUDPZUDPUUJQGHUCPZRPZUDP
      AUUISUFUGPQUAUHZUIPZBUMBUHCTZSDUUTUJPUKULZUNUOUPUVBSUQURZUSULZRPZUAUTZUUO
      BCDUVBUAUVBVAVBAUFVCTUVFUUOVDAUVEQUEZBUMUVASDUVGUJPZUKULZUNUOUPUVISUQZURZ
      USULZRPZUULUUOUAVESUFVCVFVGUUSUFVDZUUTUVGUVDUVLRUVNUUTQUFUIPUVGUUSUFQUIVI
      VJVHBCDUVGUAUFVJVKVLAUUSVCTZUPUUTUVDAQVMTZUVOUUTVMTUVPAVNVOZQUUSVPVQUVOAU
      USVRTZUVDVMTUUSVSAUVRUPUVDABCDUVBUVCUUSIAUVCVTAUVAUPZUVBVTONWAWBWCWDZAUVE
      WEUEZBUMUVASDUWAUJPZUKULZUNUOUPUWCSUQZURZUSULZRPZEUUKUDPZUULUAWESVEVCVFWF
      UUSVEVDZUUTUWAUVDUWFRUWIUUTQVEUIPUWAUUSVEQUIVIWGVHBCDUWAUAVEWGVKVLUVTAUVE
      QBUMUVASDQUJPUKULZUNUOUPUWJSUQZURZUSULZRPZEUWHUASSWEVCVFWHUUSWEVDZUUTQUVD
      UWMRUWOUUTQWEUIPZQUUSWEQUIVIUVPUWPQVDVNQWIWJZVHBCDQUAWEUWQVKVLUVTASSUGPUV
      EUAUTZEVDSVCTAUWRWEBUMUVASDWEUJPZUKULZUNUOUPUWTSUQZURZUSULZRPZEASVRTUXDVM
      TUWRUXDVDWOAUXDEVMAWEERPUXDEAEUXCWERAUXCBUMUVASDUKULZUNUOUPUXESUQZURZUSUL
      EAUXBUXGUSABUMUXAUXFABCUWTUXEUVSUWSDUKUVSDABCDIABCDURZWKTZUXHWLTZOUXHWMWP
      NWNZWQWRWSWTWRJXAXBAEAEAEUMTZFUMTZAUXJUXLUXMUPZGUMTZHUMTZUPZAUXIUXJUXNUXQ
      XFOABCDEFGHIJKLMNXCXDZXEZXGWBZXHXIZUXTXJUVEUXDUASUUSSVDZUUTWEUVDUXCRUYBUU
      TQSUIPZWEUUSSQUIVIUVPUYCWEVDVNQXKWJZVHBCDWEUASUYDVKVLXLXMUYAXNXOXPAUWNUUK
      EUDAUWMGQRAGBUMUVASDXQULZUNUOUPUYESUQZURZUSULUWMLAUYGUWLUSABUMUYFUWKABCUY
      EUWJUVSDVMTZUYEUWJVDUXKDYHWPWSWTWRXRXBXBXSAUWHUWGUDPUWHFUEZUDPUWHFUCPUULA
      UWGUYIUWHUDAUWAFRPUWGUYIAFUWFUWARAFBUMUVASUXEUEZUNUOUPUYJSUQZURZUSULUWFKA
      UYLUWEUSABUMUYKUWDABCUYJUWCUVSDUEZUKULUYJUWCUVSDUXKXTUVSUYMUWBUKUVSUYMUWA
      UEZUJPZUYMUWBUVSUYOUYMWEUJPUYMUYNWEUYMUJWEYAYBYCUVSUYMUVSDUXKYDZWQYEUVSUY
      HUYOUWBVDZUXKUYHUWAVMTUWASYIUYQWEYAYFYGDUWAYJYKWPXIWRXIWSWTWRYEXBAFAFAUXL
      UXMUXSYLWBZYMXIXBAUWHFAEUUKUXTAUVPGVMTUUKVMTVNAGAUXOUXPAUXJUXNUXQUXRYNZXG
      WBZQGYOXMZYPUYRYSAEUUKFUXTVUAUYRYTYQXSAUVMUUNUULUDAUVGHRPZUVMUUNAHUVLUVGR
      AHBUMUVASUYEUEZUNUOUPVUCSUQZURZUSULUVLMAVUEUVKUSABUMVUDUVJABCVUCUVIUVSUYM
      XQULZUYMQUJPZUKULZVUCUVIUVSUYMVMTVUFVUHVDUYPUYMYHWPUVSDUXKYRUVSVUGUVHUKUV
      SVUGUYMUVGUEZUJPZUVHQVUIUYMUJVUIQQVNYBUUAYCUVSUYHVUJUVHVDZUXKUYHUVGVMTUVG
      SYIVUKQVNYFQVNUUHUUBDUVGYJYKWPYEWRUUCWSWTWRYEXBAUVPHVMTVUBUUNVDVNAHAUXOUX
      PUYSYLWBZQHUUDXMXIXBXSYLYEAUUJUUKUUNAEFUXTUYRUUEVUAAUVPUUMVMTUUNVMTVNAHVU
      LYDZQUUMYOXMUUFAUUPUURUUJUDAQGUUMUDPZRPUUPUURAQGUUMUVQUYTVUMUUGAVUNUUQQRA
      GHUYTVULYSXBXIXBYQ $.
  $}

  ${
    $d x A $.  $d x ph $.
    iblrelem.1 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    $( Integrability of a real function.  (Contributed by Mario Carneiro,
       31-Jul-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    iblrelem $p |- ( ph -> ( ( x e. A |-> B ) e. L^1 <->
      ( ( x e. A |-> B ) e. MblFn /\
        ( S.2 ` ( x e. RR |->
          if ( ( x e. A /\ 0 <_ B ) , B , 0 ) ) ) e. RR /\
        ( S.2 ` ( x e. RR |->
          if ( ( x e. A /\ 0 <_ -u B ) , -u B , 0 ) ) ) e. RR ) ) ) $=
      ( cmpt wcel cr cc0 cfv cle wbr wa cif citg2 cneg w3a eqid itgvallem3 0re
      cibl cmbf cv cre cim iblcnlem reim0d syl6eqel negeqd neg0 syl6eq biantrud
      jca rered ibllem fveq2d eleq1d anbi12d bitr3d anbi2d 3anass 3bitr4g bitrd
      mpteq2dv ) ABCDFZUAGVEUBGZBHBUCCGZIDUDJZKLMVHINZFZOJZHGZBHVGIVHPZKLMVMINZ
      FZOJZHGZMZBHVGIDUEJZKLMVSINFOJZHGZBHVGIVSPZKLMWBINFOJZHGZMZQZVFBHVGIDKLMD
      INZFZOJZHGZBHVGIDPZKLMWKINZFZOJZHGZQZABCDVKVPVTWCHVKRVPRVTRWCREUFAVFVRWEM
      ZMVFWJWOMZMWFWPAWQWRVFAVRWQWRAWEVRAWAWDAVTIHABCVSAVGMZDEUGZSTUHAWCIHABCWB
      WSWBIPIWSVSIWTUIUJUKSTUHUMULAVLWJVQWOAVKWIHAVJWHOABHVIWGABCVHDWSDEUNZUOVD
      UPUQAVPWNHAVOWMOABHVNWLABCVMWKWSVHDXAUIUOVDUPUQURUSUTVFVRWEVAVFWJWOVAVBVC
      $.

    ${
      iblpos.2 $e |- ( ( ph /\ x e. A ) -> 0 <_ B ) $.
      $( Lemma for ~ iblpos .  (Contributed by Mario Carneiro, 31-Jul-2014.)
         (Revised by Mario Carneiro, 23-Aug-2014.) $)
      iblposlem $p |- ( ph -> ( S.2 ` ( x e. RR |->
        if ( ( x e. A /\ 0 <_ -u B ) , -u B , 0 ) ) ) = 0 ) $=
        ( cr cv wcel cc0 cneg cle wbr wa cif cmpt citg2 cfv adantrr syl6eq wceq
        csn cxp le0neg2d mpbid simprr wb renegcld 0re sylancl mpbir2and ifeq1da
        letri3 ifid mpteq2dv fconstmpt syl6eqr fveq2d itg20 ) ABGBHCIZJDKZLMZNZ
        VAJOZPZQRGJUBUCZQRJAVEVFQAVEBGJPVFABGVDJAVDVCJJOJAVCVAJJAVCNZVAJUAZVAJL
        MZVBAUTVIVBAUTNZJDLMVIFVJDEUDUESAUTVBUFVGVAGIJGIVHVIVBNUGVGDAUTDGIVBESU
        HUIVAJUMUJUKULVCJUNTUOBGJUPUQURUST $.

      $( Integrability of a nonnegative function.  (Contributed by Mario
         Carneiro, 31-Jul-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
      iblpos $p |- ( ph -> ( ( x e. A |-> B ) e. L^1 <->
        ( ( x e. A |-> B ) e. MblFn /\
          ( S.2 ` ( x e. RR |-> if ( x e. A , B , 0 ) ) ) e. RR ) ) ) $=
        ( cmpt cibl wcel cmbf cr cv cc0 cle wbr wa cif citg2 cfv cneg iblposlem
        w3a iblrelem df-3an syl6bb 0re syl6eqel biantrud pm4.71rd ancom syl6rbb
        ex ifbid mpteq2dv fveq2d eleq1d anbi2d 3bitr2d ) ABCDGZHIZUSJIZBKBLCIZM
        DNOZPZDMQZGZRSZKIZPZBKVBMDTZNOPVJMQGRSZKIZPZVIVABKVBDMQZGZRSZKIZPAUTVAV
        HVLUBVMABCDEUCVAVHVLUDUEAVLVIAVKMKABCDEFUAUFUGUHAVHVQVAAVGVPKAVFVORABKV
        EVNAVDVBDMAVBVCVBPVDAVBVCAVBVCFULUIVCVBUJUKUMUNUOUPUQUR $.
    $}

    $( Integrability of a real function.  (Contributed by Mario Carneiro,
       11-Aug-2014.) $)
    iblre $p |- ( ph -> ( ( x e. A |-> B ) e. L^1 <->
      ( ( x e. A |-> if ( 0 <_ B , B , 0 ) ) e. L^1 /\
        ( x e. A |-> if ( 0 <_ -u B , -u B , 0 ) ) e. L^1 ) ) ) $=
      ( cmpt cmbf wcel cr cc0 cle wbr wa cif citg2 cfv cibl ifan mpteq2i 0re cv
      cneg w3a mbfposb wb fveq2i eleq1i anbi12i a1i anbi12d 3anass an4 iblrelem
      3bitr4g ifcl sylancl max1 sylancr iblpos renegcld 3bitr4d ) ABCDFZGHZBIBU
      ACHZJDKLZMDJNZFZOPZIHZBIVDJDUBZKLZMVJJNZFZOPZIHZUCZBCVEDJNZFZGHZBIVDVQJNZ
      FZOPZIHZMZBCVKVJJNZFZGHZBIVDWEJNZFZOPZIHZMZMZVBQHVRQHZWFQHZMAVCVIVOMZMVSW
      GMZWCWKMZMVPWMAVCWQWPWRABCDEUDWPWRUEAVIWCVOWKVHWBIVGWAOBIVFVTVDVEDJRSUFUG
      VNWJIVMWIOBIVLWHVDVKVJJRSUFUGUHUIUJVCVIVOUKVSWCWGWKULUNABCDEUMAWNWDWOWLAB
      CVQAVDMZDIHZJIHZVQIHETVEDJIUOUPWSXAWTJVQKLTEJDUQURUSABCWEWSVJIHZXAWEIHWSD
      EUTZTVKVJJIUOUPWSXAXBJWEKLTXCJVJUQURUSUJVA $.

    itgreval.2 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    $( Lemma for ~ itgposval and ~ itgreval .  (Contributed by Mario Carneiro,
       31-Jul-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    itgrevallem1 $p |- ( ph -> S. A B _d x =
 ( ( S.2 ` ( x e. RR |-> if ( ( x e. A /\ 0 <_ B ) , B , 0 ) ) ) -
   ( S.2 ` ( x e. RR |-> if ( ( x e. A /\ 0 <_ -u B ) , -u B , 0 ) ) ) ) ) $=
      ( cr wcel cc0 cfv cle wbr wa cif cmpt citg2 cneg cmin co eqid citg cv cre
      ci cmul caddc itgcnlem rered ibllem mpteq2dv fveq2d negeqd oveq12d reim0d
      itgvallem3 neg0 syl6eq 0m0e0 oveq2d it0e0 cmbf cibl iblrelem mpbid simp2d
      cim w3a simp3d resubcld recnd addid1d 3eqtrd ) ABCDUABGBUBCHZIDUCJZKLMVNI
      NZOZPJZBGVMIVNQZKLMVRINZOZPJZRSZUDBGVMIDVFJZKLMWCINOPJZBGVMIWCQZKLMWEINOP
      JZRSZUESZUFSBGVMIDKLMDINZOZPJZBGVMIDQZKLMWLINZOZPJZRSZIUFSWPABCDVQWAWDWFG
      VQTWATWDTWFTEFUGAWBWPWHIUFAVQWKWAWORAVPWJPABGVOWIABCVNDAVMMZDEUHZUIUJUKAV
      TWNPABGVSWMABCVRWLWQVNDWRULUIUJUKUMAWHUDIUESIAWGIUDUEAWGIIRSIAWDIWFIRABCW
      CWQDEUNZUOABCWEWQWEIQIWQWCIWSULUPUQUOUMURUQUSUTUQUMAWPAWPAWKWOABCDOZVAHZW
      KGHZWOGHZAWTVBHXAXBXCVGFABCDEVCVDZVEAXAXBXCXDVHVIVJVKVL $.

    ${
      itgposval.3 $e |- ( ( ph /\ x e. A ) -> 0 <_ B ) $.
      $( The integral of a nonnegative function.  (Contributed by Mario
         Carneiro, 31-Jul-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
      itgposval $p |- ( ph -> S. A B _d x =
                        ( S.2 ` ( x e. RR |-> if ( x e. A , B , 0 ) ) ) ) $=
        ( citg cr wcel cc0 cle wbr wa cif cmpt citg2 cfv cmin co cv ex pm4.71rd
        cneg itgrevallem1 ancom syl6rbb ifbid mpteq2dv fveq2d iblposlem oveq12d
        cmbf cibl iblpos mpbid simprd recnd subid1d 3eqtrd ) ABCDHBIBUACJZKDLMZ
        NZDKOZPZQRZBIVAKDUDZLMNVGKOPQRZSTBIVADKOZPZQRZKSTVKABCDEFUEAVFVKVHKSAVE
        VJQABIVDVIAVCVADKAVAVBVANVCAVAVBAVAVBGUBUCVBVAUFUGUHUIUJABCDEGUKULAVKAV
        KABCDPZUMJZVKIJZAVLUNJVMVNNFABCDEGUOUPUQURUSUT $.
    $}

    $( Decompose the integral of a real function into positive and negative
       parts.  (Contributed by Mario Carneiro, 31-Jul-2014.) $)
    itgreval $p |- ( ph -> S. A B _d x =
                    ( S. A if ( 0 <_ B , B , 0 ) _d x -
                      S. A if ( 0 <_ -u B , -u B , 0 ) _d x ) ) $=
      ( citg cr wcel cc0 cle wbr wa cif cmpt citg2 cfv cmin 0re cibl cv cneg co
      itgrevallem1 ifcl sylancl w3a iblrelem mpbid simp1d mbfpos mpteq2i fveq2i
      cmbf ifan simp2d syl5eqelr max1 sylancr iblpos mpbir2and syl6eqr renegcld
      itgposval mbfneg simp3d oveq12d eqtr4d ) ABCDGBHBUACIZJDKLZMDJNZOZPQZBHVI
      JDUBZKLZMVNJNZOZPQZRUCBCVJDJNZGZBCVOVNJNZGZRUCABCDEFUDAVTVMWBVRRAVTBHVIVS
      JNZOZPQZVMABCVSAVIMZDHIZJHIZVSHIESVJDJHUEUFZABCVSOZTIWJUNIWEHIABCDEABCDOZ
      UNIZVMHIZVRHIZAWKTIWLWMWNUGFABCDEUHUIZUJZUKAWEVMHVLWDPBHVKWCVIVJDJUOULUMZ
      AWLWMWNWOUPUQABCVSWIWFWHWGJVSKLSEJDURUSZUTVAWRVDWQVBAWBBHVIWAJNZOZPQZVRAB
      CWAWFVNHIZWHWAHIWFDEVCZSVOVNJHUEUFZABCWAOZTIXEUNIXAHIABCVNXCABCDHEWPVEUKA
      XAVRHVQWTPBHVPWSVIVOVNJUOULUMZAWLWMWNWOVFUQABCWAXDWFWHXBJWAKLSXCJVNURUSZU
      TVAXGVDXFVBVGVH $.
  $}

  ${
    $d x A $.  $d x ph $.
    itgrecl.1 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    itgrecl.2 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    $( Real closure of an integral.  (Contributed by Mario Carneiro,
       11-Aug-2014.) $)
    itgrecl $p |- ( ph -> S. A B _d x e. RR ) $=
      ( citg cr cv wcel cc0 cle wbr wa cif cmpt citg2 cfv cneg cmin co cmbf w3a
      itgrevallem1 cibl iblrelem mpbid resubcl 3adant1 syl eqeltrd ) ABCDGBHBIC
      JZKDLMNDKOPQRZBHULKDSZLMNUNKOPQRZTUAZHABCDEFUDABCDPZUBJZUMHJZUOHJZUCZUPHJ
      ZAUQUEJVAFABCDEUFUGUSUTVBURUMUOUHUIUJUK $.
  $}

  ${
    $d x A $.  $d x ph $.
    iblcn.1 $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
    $( Integrability of a complex function.  (Contributed by Mario Carneiro,
       6-Aug-2014.) $)
    iblcn $p |- ( ph -> ( ( x e. A |-> B ) e. L^1 <->
                  ( ( x e. A |-> ( Re ` B ) ) e. L^1 /\
                    ( x e. A |-> ( Im ` B ) ) e. L^1 ) ) ) $=
      ( cmpt cmbf wcel cr cc0 cfv cle wbr wa cif citg2 w3a cibl 3anass eqid cre
      cv cneg cim ismbfcn2 anbi1d 3bitr4g iblcnlem1 recld iblrelem syl6bb imcld
      an4 anbi12d 3bitr4d ) ABCDFZGHZBIBUBCHZJDUAKZLMNUSJOFPKZIHZBIURJUSUCZLMNV
      BJOFPKZIHZNZBIURJDUDKZLMNVFJOFPKZIHZBIURJVFUCZLMNVIJOFPKZIHZNZQZBCUSFZGHZ
      VENZBCVFFZGHZVLNZNZUPRHVNRHZVQRHZNAUQVEVLNZNVOVRNZWCNVMVTAUQWDWCABCDEUEUF
      UQVEVLSVOVEVRVLUMUGABCDUTVCVGVJUTTVCTVGTVJTEUHAWAVPWBVSAWAVOVAVDQVPABCUSA
      URNZDEUIUJVOVAVDSUKAWBVRVHVKQVSABCVFWEDEULUJVRVHVKSUKUNUO $.
  $}

  ${
    $d x A $.  $d x ph $.  $d x V $.
    itgcnval.1 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    itgcnval.2 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    $( Decompose the integral of a complex function into real and imaginary
       parts.  (Contributed by Mario Carneiro, 6-Aug-2014.) $)
    itgcnval $p |- ( ph -> S. A B _d x =
      ( S. A ( Re ` B ) _d x + ( _i x. S. A ( Im ` B ) _d x ) ) ) $=
      ( citg cr wcel cc0 cfv cle wbr wa cif cmpt citg2 co eqid cv cre cneg cmin
      ci cmul caddc itgcnlem cibl cmbf iblmbf mbfmptcl recld iblcn mpbid simpld
      cim syl itgrevallem1 imcld simprd oveq2d oveq12d eqtr4d ) ABCDHBIBUACJZKD
      UBLZMNOVFKPQRLZBIVEKVFUCZMNOVHKPQRLZUDSZUEBIVEKDUQLZMNOVKKPQRLZBIVEKVKUCZ
      MNOVMKPQRLZUDSZUFSZUGSBCVFHZUEBCVKHZUFSZUGSABCDVGVIVLVNEVGTVITVLTVNTFGUHA
      VQVJVSVPUGABCVFAVEOZDABCDEABCDQZUIJZWAUJJGWAUKURFULZUMABCVFQUIJZBCVKQUIJZ
      AWBWDWEOGABCDWCUNUOZUPUSAVRVOUEUFABCVKVTDWCUTAWDWEWFVAUSVBVCVD $.

    $( Real part of an integral.  (Contributed by Mario Carneiro,
       14-Aug-2014.) $)
    itgre $p |- ( ph -> ( Re ` S. A B _d x ) = S. A ( Re ` B ) _d x ) $=
      ( citg cre cfv ci cim cmul co caddc wcel wa cmpt cibl itgrecl itgcnval cv
      fveq2d cmbf iblmbf syl recld iblcn mpbid simpld imcld simprd crred eqtrd
      mbfmptcl ) ABCDHZIJBCDIJZHZKBCDLJZHZMNONZIJURAUPVAIABCDEFGUAUCAURUTABCUQA
      BUBCPQZDABCDEABCDRZSPZVCUDPGVCUEUFFUOZUGABCUQRSPZBCUSRSPZAVDVFVGQGABCDVEU
      HUIZUJTABCUSVBDVEUKAVFVGVHULTUMUN $.

    $( Imaginary part of an integral.  (Contributed by Mario Carneiro,
       14-Aug-2014.) $)
    itgim $p |- ( ph -> ( Im ` S. A B _d x ) = S. A ( Im ` B ) _d x ) $=
      ( citg cim cfv cre ci cmul co caddc wcel wa cmpt cibl itgrecl itgcnval cv
      fveq2d cmbf iblmbf syl recld iblcn mpbid simpld imcld simprd crimd eqtrd
      mbfmptcl ) ABCDHZIJBCDKJZHZLBCDIJZHZMNONZIJUTAUPVAIABCDEFGUAUCAURUTABCUQA
      BUBCPQZDABCDEABCDRZSPZVCUDPGVCUEUFFUOZUGABCUQRSPZBCUSRSPZAVDVFVGQGABCDVEU
      HUIZUJTABCUSVBDVEUKAVFVGVHULTUMUN $.

    $( The negative of an integrable function is integrable.  (Contributed by
       Mario Carneiro, 25-Aug-2014.) $)
    iblneg $p |- ( ph -> ( x e. A |-> -u B ) e. L^1 ) $=
      ( cneg cmpt cibl wcel cfv cc0 cle wbr cif wa breq2d ifbieq1d mpteq2dva cv
      cre cim cmbf iblmbf mbfmptcl renegd iblcn mpbid simpld recld iblre simprd
      syl eqeltrd negeqd recnd negnegd eqtrd negcld mpbir2and imnegd imcld ) AB
      CDHZIJKBCVDUBLZIJKZBCVDUCLZIJKZAVFBCMVENOZVEMPZIZJKBCMVEHZNOZVLMPZIZJKAVK
      BCMDUBLZHZNOZVQMPZIZJABCVJVSABUACKQZVIVRVEVQMWAVEVQMNWADABCDEABCDIZJKZWBU
      DKGWBUEUNFUFZUGZRWESTABCMVPNOZVPMPZIZJKZVTJKZABCVPIJKZWIWJQAWKBCDUCLZIJKZ
      AWCWKWMQGABCDWDUHUIZUJABCVPWADWDUKZULUIZUMUOAVOWHJABCVNWGWAVMWFVLVPMWAVLV
      PMNWAVLVQHVPWAVEVQWEUPWAVPWAVPWOUQURUSZRWQSTAWIWJWPUJUOABCVEWAVDWADWDUTZU
      KULVAAVHBCMVGNOZVGMPZIZJKBCMVGHZNOZXBMPZIZJKAXABCMWLHZNOZXFMPZIZJABCWTXHW
      AWSXGVGXFMWAVGXFMNWADWDVBZRXJSTABCMWLNOZWLMPZIZJKZXIJKZAWMXNXOQAWKWMWNUMA
      BCWLWADWDVCZULUIZUMUOAXEXMJABCXDXLWAXCXKXBWLMWAXBWLMNWAXBXFHWLWAVGXFXJUPW
      AWLWAWLXPUQURUSZRXRSTAXNXOXQUJUOABCVGWAVDWRVCULVAABCVDWRUHVA $.

    $( Negation of an integral.  (Contributed by Mario Carneiro,
       25-Aug-2014.) $)
    itgneg $p |- ( ph -> -u S. A B _d x = S. A -u B _d x ) $=
      ( citg ci co cneg cr wcel cmpt cibl cc0 cle wbr cif cmin cre cfv cim cmul
      caddc cv wa cmbf iblmbf mbfmptcl recld iblcn mpbid simpld itgcl cc ax-icn
      syl imcld simprd mulcl sylancr 0re ifcl sylancl iblre renegcld negsubdi2d
      negdid itgreval negeqd negcld iblneg renegd breq2d ifbieq1d recnd negnegd
      itgeq2dv eqtrd oveq12d 3eqtr4d wceq mulneg2 imnegd eqtr4d oveq2d itgcnval
      eqtr3d ) ABCDUAUBZHZIBCDUCUBZHZUDJZUEJZKZBCDKZUAUBZHZIBCWQUCUBZHZUDJZUEJZ
      BCDHZKBCWQHAWPWKKZWNKZUEJXCAWKWNABCWJLABUFCMUGZDABCDEABCDNZOMZXHUHMGXHUIU
      RFUJZUKZABCWJNOMZBCWLNOMZAXIXLXMUGGABCDXJULUMZUNZUOAIUPMZWMUPMZWNUPMUQABC
      WLLXGDXJUSZAXLXMXNUTZUOZIWMVAVBVIAXEWSXFXBUEABCPWJQRZWJPSZHZBCPWJKZQRZYDP
      SZHZTJZKYGYCTJZXEWSAYCYGABCYBLXGWJLMPLMZYBLMXKVCYAWJPLVDVEABCYBNOMZBCYFNO
      MZAXLYKYLUGXOABCWJXKVFUMZUNUOABCYFLXGYDLMYJYFLMXGWJXKVGVCYEYDPLVDVEAYKYLY
      MUTUOVHAWKYHABCWJXKXOVJVKAWSBCPWRQRZWRPSZHZBCPWRKZQRZYQPSZHZTJYIABCWRXGWQ
      XGDXJVLZUKABCWRNOMZBCWTNOMZABCWQNOMUUBUUCUGABCDEFGVMZABCWQUUAULUMZUNVJAYP
      YGYTYCTABCYOYFXGYNYEWRYDPXGWRYDPQXGDXJVNZVOUUFVPVSABCYSYBXGYRYAYQWJPXGYQW
      JPQXGYQYDKWJXGWRYDUUFVKXGWJXGWJXKVQVRVTZVOUUGVPVSWAVTWBAIWMKZUDJZXFXBAXPX
      QUUIXFWCUQXTIWMWDVBAUUHXAIUDABCPWLQRZWLPSZHZBCPWLKZQRZUUMPSZHZTJZKZBCPWTQ
      RZWTPSZHZBCPWTKZQRZUVBPSZHZTJZUUHXAAUURUUPUULTJUVFAUULUUPABCUUKLXGWLLMYJU
      UKLMXRVCUUJWLPLVDVEABCUUKNOMZBCUUONOMZAXMUVGUVHUGXSABCWLXRVFUMZUNUOABCUUO
      LXGUUMLMYJUUOLMXGWLXRVGVCUUNUUMPLVDVEAUVGUVHUVIUTUOVHAUVAUUPUVEUULTABCUUT
      UUOXGUUSUUNWTUUMPXGWTUUMPQXGDXJWEZVOUVJVPVSABCUVDUUKXGUVCUUJUVBWLPXGUVBWL
      PQXGUVBUUMKWLXGWTUUMUVJVKXGWLXGWLXRVQVRVTZVOUVKVPVSWAWFAWMUUQABCWLXRXSVJV
      KABCWTXGWQUUAUSAUUBUUCUUEUTVJWBWGWIWAVTAXDWOABCDEFGWHVKABCWQUPUUAUUDWHWB
      $.
  $}

  ${
    $d k x A $.  $d x B $.  $d k C $.  $d k x ph $.  $d x V $.
    iblss.1 $e |- ( ph -> A C_ B ) $.
    iblss.2 $e |- ( ph -> A e. dom vol ) $.
    iblss.3 $e |- ( ( ph /\ x e. B ) -> C e. V ) $.
    iblss.4 $e |- ( ph -> ( x e. B |-> C ) e. L^1 ) $.
    $( A subset of an integrable function is integrable.  (Contributed by Mario
       Carneiro, 12-Aug-2014.) $)
    iblss $p |- ( ph -> ( x e. A |-> C ) e. L^1 ) $=
      ( vk wcel cr cc0 ci cle wbr wa cif eqidd cmpt cibl cmbf cexp cdiv cre cfv
      cv co citg2 c3 cfz wral cres resmptd cvol cdm iblmbf syl syl2anc eqeltrrd
      mbfres cpnf cicc wf ifan simpll sselda sylan cc mbfmptcl elfzelz ad3antlr
      cxr cz wne ax-icn ine0 expclz mp3an12 expne0i divcld recld 0re ifcl rexrd
      sylancl max1 sylancr elxrge0 sylanbrc syldan wn 0e0iccpnf ifclda syl5eqel
      a1i eqid fmptd iblitg sylan2 cofr leidd breq1 ifboth wceq iftrue breqtrrd
      adantl 0le0 stoic1a iffalse 3brtr4d pm2.61dan ralrimiva cvv reex ofrfval2
      3brtr4g mpbird itg2le syl3anc itg2lecl isibl2 mpbir2and ) ABCEUAZUBLYFUCL
      BMBUHZCLZNEOKUHZUDUIZUEUIZUFUGZPQZRYLNSZUAZUJUGZMLZKNUKULUIZUMABDEUAZCUNZ
      YFUCABDCEGUOAYSUCLZCUPUQLYTUCLAYSUBLUUAJYSURUSZHCYSVBUTVAAYQKYRAYIYRLZRZM
      NVCVDUIZYOVEZBMYGDLZYMRYLNSZUAZUJUGZMLZYPUUJPQZYQUUDBMYNUUEYOUUDYGMLZRZYN
      YHYMYLNSZNSZUUEYHYMYLNVFZUUNYHUUONUUEUUNYHUUGUUOUUELZUUNAYHUUGAUUCUUMVGZA
      CDYGGVHZVIZUUNUUGRZUUOVNLNUUOPQZUURUVBUUOUVBYLMLZNMLZUUOMLUVBYKUVBEYJUUNA
      UUGEVJLZUUSABDEFUUBIVKZVIUVBYIVOLZYJVJLZUUCUVHAUUMUUGYINUKVLZVMZOVJLZONVP
      ZUVHUVIVQVROYIVSVTUSUVBUVHYJNVPZUVKUVLUVMUVHUVNVQVROYIWAVTUSWBWCZWDYMYLNM
      WEWGZWFUVBUVEUVDUVCWDUVONYLWHWIZUUOWJWKZWLNUUELZUUNYHWMZRWNWQWOWPZYOWRWSZ
      UUCAUVHUUKUVJABDEYLUUIYIFAUUITAUUGRYLTJIWTXAUUDUUFMUUEUUIVEYOUUIPXBQZUULU
      WBUUDBMUUHUUEUUIUUNUUHUUGUUONSZUUEUUGYMYLNVFZUUNUUGUUONUUEUVRUVSUUNUUGWMZ
      RZWNWQWOWPZUUIWRWSUUDUWCYNUUHPQZBMUMUUDUWIBMUUNUUPUWDYNUUHPUUNUUGUUPUWDPQ
      UVBUUPUUOUWDPUVBUUOUUOPQZUVCUUPUUOPQZUVBUUOUVPXCUVQYHUWJUVCUWKUUONUUOUUPU
      UOPXDNUUPUUOPXDXEUTUUGUWDUUOXFUUNUUGUUONXGXIXHUWGNNUUPUWDPNNPQUWGXJWQUWGU
      VTUUPNXFUUNYHUUGUVAXKYHUUONXLUSUWFUWDNXFUUNUUGUUONXLXIXMXNUUQUWEXSXOUUDBM
      YNUUHPYOUUIXPUUEUUEMXPLUUDXQWQUWAUWHUUDYOTUUDUUITXRXTYOUUIYAYBUUJYOYCYBXO
      ABCEYLKYOVJAYOTAYHRYLTAYHUUGUVFUUTUVGWLYDYE $.
  $}

  ${
    $d x A $.  $d k x B $.  $d k C $.  $d k x ph $.  $d x V $.
    iblss2.1 $e |- ( ph -> A C_ B ) $.
    iblss2.2 $e |- ( ph -> B e. dom vol ) $.
    iblss2.3 $e |- ( ( ph /\ x e. A ) -> C e. V ) $.
    iblss2.4 $e |- ( ( ph /\ x e. ( B \ A ) ) -> C = 0 ) $.
    iblss2.5 $e |- ( ph -> ( x e. A |-> C ) e. L^1 ) $.
    $( Change the domain of an integrability predicate.  (Contributed by Mario
       Carneiro, 13-Aug-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    iblss2 $p |- ( ph -> ( x e. B |-> C ) e. L^1 ) $=
      ( vk cmpt wcel cr cc0 ci wa cif wceq cibl cmbf cv cexp co cre cfv cle wbr
      cdiv citg2 c3 cfz wral iblmbf syl wss adantr sselda iftrued iftrue adantl
      mbfss eqtr4d ifid cdif simplll simpr simplr eldifd syl2anc oveq1d simpllr
      wn cz elfzelz wne ax-icn ine0 w3a expclz expne0i div0d mp3an12 3syl eqtrd
      cc fveq2d re0 syl6eq ifeq1d ifeq1da iffalse 3eqtr4a ifan 3eqtr4g mpteq2dv
      pm2.61dan eqidd iblitg sylan2 eqeltrd ralrimiva wo cun elun ssequn1 sylib
      undif2 syl5eq eleq2d syl5bbr biimpar mbfmptcl 0cn jaodan syldan mpbir2and
      syl6eqel isibl2 ) ABDEMZUANYAUBNBOBUCZDNZPEQLUCZUDUEZUJUEZUFUGZUHUIZRYGPS
      ZMZUKUGZONZLPULUMUEZUNABCDEFGHIJABCEMZUANYNUBNKYNUOUPZVCAYLLYMAYDYMNZRZYK
      BOYBCNZYHRYGPSZMZUKUGZOYQYJYTUKYQBOYIYSYQYCYHYGPSZPSZYRUUBPSZYIYSYQYRUUCU
      UDTYQYRRZUUCUUBUUDUUEYCUUBPYQCDYBACDUQZYPGURUSUTYRUUDUUBTYQYRUUBPVAVBVDYQ
      YRVNZRZYCPPSPUUCUUDYCPVEUUHYCUUBPPUUHYCRZUUBYHPPSPUUIYHYGPPUUIYGPUFUGPUUI
      YFPUFUUIYFPYEUJUEZPUUIEPYEUJUUIAYBDCVFZNZEPTAYPUUGYCVGUUIYBDCUUHYCVHYQUUG
      YCVIVJJVKVLUUIYPYDVONZUUJPTZAYPUUGYCVMYDPULVPZQWGNZQPVQZUUMUUNVRVSUUPUUQU
      UMVTYEQYDWAQYDWBWCWDWEWFWHWIWJWKYHPVEWJWLUUGUUDPTYQYRUUBPWMVBWNWRYCYHYGPW
      OYRYHYGPWOWPWQWHYPAUUMUUAONUUOABCEYGYTYDFAYTWSAYRRYGWSKIWTXAXBXCABDEYGLYJ
      WGAYJWSAYCRYGWSAYCYRUULXDZEWGNZAUURYCUURYBCUUKXEZNAYCYBCUUKXFAUUTDYBAUUTC
      DXEZDCDXIAUUFUVADTGCDXGXHXJXKXLXMAYRUUSUULABCEFYOIXNAUULREPWGJXOXSXPXQXTX
      R $.
  $}

  ${
    $d x ph $.
    itgitg2.1 $e |- ( ( ph /\ x e. RR ) -> A e. RR ) $.
    itgitg2.2 $e |- ( ( ph /\ x e. RR ) -> 0 <_ A ) $.
    itgitg2.3 $e |- ( ph -> ( x e. RR |-> A ) e. L^1 ) $.
    $( Transfer an integral using ` S.2 ` to an equivalent integral using
       ` S. ` .  (Contributed by Mario Carneiro, 6-Aug-2014.) $)
    itgitg2 $p |- ( ph -> S. RR A _d x = ( S.2 ` ( x e. RR |-> A ) ) ) $=
      ( cr citg cv wcel cc0 cif cmpt citg2 cfv itgposval iftrue mpteq2ia fveq2i
      syl6eq ) ABGCHBGBIGJZCKLZMZNOBGCMZNOABGCDFEPUCUDNBGUBCUACKQRST $.
  $}

  ${
    $d x F $.
    $( A simple function is integrable.  (Contributed by Mario Carneiro,
       6-Aug-2014.) $)
    i1fibl $p |- ( F e. dom S.1 -> F e. L^1 ) $=
      ( vx citg1 wcel cr cfv cmpt cc0 cle wbr wa cif mpteq2dva wceq 0re cvv a1i
      citg2 mpbird eqeltrd cv cibl i1ff feqmptd cmbf cneg i1fmbf eqeltrrd simpr
      cdm biantrurd ifbid fveq2d c0p cofr eqid i1fpos csn cxp ffvelrnda sylancr
      wral max1 ralrimiva reex fvex c0ex fconstmpt eqidd ofrfval2 wss ax-resscn
      ifex wfn fnmpti 0pledm itg2itg1 syl2anc eqtr3d itg1cl syl cmul cof neg1rr
      cc c1 co offval2 recnd mulm1d eqtrd id i1fmulc i1fposd renegcld mpbir3and
      negex iblrelem ) ACUJZDZABEBUAZAFZGZUBWTBEEAAUCZUDZWTXCUBDXCUEDBEXAEDZHXB
      IJZKZXBHLZGZRFZEDBEXFHXBUFZIJZKZXLHLZGZRFZEDWTAXCUEXEAUGUHWTXKBEXGXBHLZGZ
      CFZEWTXSRFZXKXTWTXSXJRWTBEXRXIWTXFKZXGXHXBHYBXFXGWTXFUIZUKULMUMWTXSWSDZUN
      XSIUOZJZYAXTNBAXSXSUPZUQZWTYFEHURUSZXSYEJZWTYJHXRIJZBEVBWTYKBEYBHEDZXBEDY
      KOWTEEXAAXDUTZHXBVCVAVDWTBEHXRIYIXSPEPEPDWTVEQZYLYBOQZXRPDYBXGXBHXAAVFVGV
      MZQYIBEHGNWTBEHVHQZWTXSVIVJSWTEXSEWEVKWTVLQZXSEVNWTBEXRXSYPYGVOQVPSXSVQVR
      VSWTYDXTEDYHXSVTWATWTXQBEXMXLHLZGZCFZEWTYTRFZXQUUAWTYTXPRWTBEYSXOYBXMXNXL
      HYBXFXMYCUKULMUMWTYTWSDZUNYTYEJZUUBUUANWTBXLWTEWFUFZURUSZAWBWCWGZBEXLGZWS
      WTUUGBEUUEXBWBWGZGUUHWTBEUUEXBWBUUFAPEEYNUUEEDZYBWDQYMUUFBEUUEGNWTBEUUEVH
      QXEWHWTBEUUIXLYBXBYBXBYMWIWJMWKWTUUEAWTWLUUJWTWDQWMUHWNZWTUUDYIYTYEJZWTUU
      LHYSIJZBEVBWTUUMBEYBYLXLEDUUMOYBXBYMWOHXLVCVAVDWTBEHYSIYIYTPEPYNYOYSPDYBX
      MXLHXBWQVGVMZQYQWTYTVIVJSWTEYTYRYTEVNWTBEYSYTUUNYTUPVOQVPSYTVQVRVSWTUUCUU
      AEDUUKYTVTWATWTBEXBYMWRWPT $.

    $( Transfer an integral using ` S.1 ` to an equivalent integral using
       ` S. ` .  (Contributed by Mario Carneiro, 6-Aug-2014.) $)
    itgitg1 $p |- ( F e. dom S.1 -> S. RR ( F ` x ) _d x = ( S.1 ` F ) ) $=
      ( citg1 wcel cr cfv citg cc0 cle wbr cmin co cmpt cibl 0re syl cvv mpbird
      wceq a1i cdm cif cneg cof i1ff ffvelrnda feqmptd i1fibl eqeltrrd itgreval
      cv citg2 wa ifcl sylancl max1 sylancr id i1fposd itgitg2 c0p cofr csn cxp
      wral ralrimiva reex fconstmpt eqidd ofrfval2 cc wss ax-resscn wf wfn eqid
      fmptd 0pledm itg2itg1 syl2anc eqtrd renegcld c1 cmul neg1rr offval2 recnd
      ffn mulm1d mpteq2dva i1fmulc oveq12d itg1sub eqtr4d max0sub fveq2d 3eqtrd
      3eqtr4d ) BCUAZDZAEAUKZBFZGAEHXBIJZXBHUBZGZAEHXBUCZIJZXFHUBZGZKLZAEXDMZAE
      XHMZKUDLZCFZBCFWTAEXBWTEEXABBUEZUFZWTBAEXBMZNWTAEEBXOUGZBUHUIUJWTXJXKCFZX
      LCFZKLZXNWTXEXSXIXTKWTXEXKULFZXSWTAXDWTXAEDUMZXBEDZHEDZXDEDXPOXCXBHEUNUOZ
      YCYEYDHXDIJZOXPHXBUPUQZWTXKWSDZXKNDWTAXBWTBXQWSXRWTURZUIUSZXKUHPUTWTYIVAX
      KIVBZJZYBXSSYKWTYMEHVCVDZXKYLJZWTYOYGAEVEWTYGAEYHVFWTAEHXDIYNXKQEEEQDWTVG
      TZYEYCOTZYFYNAEHMSWTAEHVHTZWTXKVIZVJRWTEXKEVKVLWTVMTZWTEEXKVNXKEVOWTAEXDE
      XKYFXKVPVQEEXKWHPVRRXKVSVTWAWTXIXLULFZXTWTAXHYCXFEDZYEXHEDYCXBXPWBZOXGXFH
      EUNUOZYCYEUUBHXHIJZOUUCHXFUPUQZWTXLWSDZXLNDWTAXFWTEWCUCZVCVDZBWDUDLZAEXFM
      ZWSWTUUJAEUUHXBWDLZMUUKWTAEUUHXBWDUUIBQEEYPUUHEDZYCWETXPUUIAEUUHMSWTAEUUH
      VHTXRWFWTAEUULXFYCXBYCXBXPWGWIWJWAWTUUHBYJUUMWTWETWKUIUSZXLUHPUTWTUUGVAXL
      YLJZUUAXTSUUNWTUUOYNXLYLJZWTUUPUUEAEVEWTUUEAEUUFVFWTAEHXHIYNXLQEEYPYQUUDY
      RWTXLVIZVJRWTEXLYTWTEEXLVNXLEVOWTAEXHEXLUUDXLVPVQEEXLWHPVRRXLVSVTWAWLWTYI
      UUGXNYASYKUUNXKXLWMVTWNWTXMBCWTAEXDXHKLZMXQXMBWTAEUURXBYCYDUURXBSXPXBWOPW
      JWTAEXDXHKXKXLQEEYPYFUUDYSUUQWFXRWRWPWQ $.
  $}

  ${
    $d x A $.  $d x ph $.
    itgle.1 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    itgle.2 $e |- ( ph -> ( x e. A |-> C ) e. L^1 ) $.
    itgle.3 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    itgle.4 $e |- ( ( ph /\ x e. A ) -> C e. RR ) $.
    itgle.5 $e |- ( ( ph /\ x e. A ) -> B <_ C ) $.
    $( Monotonicity of an integral.  (Contributed by Mario Carneiro,
       11-Aug-2014.) $)
    itgle $p |- ( ph -> S. A B _d x <_ S. A C _d x ) $=
      ( cr wcel cc0 cle wbr wa cif cmpt a1i 0re cv citg2 cneg cmin co citg cmbf
      cfv cibl w3a iblrelem mpbid simp2d simp3d cpnf cicc wf cxr ad2ant2r rexrd
      cofr simprr elxrge0 sylanbrc 0e0iccpnf ifclda eqid wral max1 sylancr ifcl
      wn fmptd sylancl max2 letrd wb maxle syl3anc mpbir2and wceq iftrue adantl
      3brtr4d ex 0le0 iffalse pm2.61d1 ifan 3brtr4g ralrimivw cvv reex ofrfval2
      eqidd mpbird itg2le renegcld lenegd le2subd itgrevallem1 ) ABKBUAZCLZMDNO
      ZPZDMQZRZUBUHZBKXCMDUCZNOZPZXIMQZRZUBUHZUDUEBKXCMENOZPZEMQZRZUBUHZBKXCMEU
      CZNOZPZXTMQZRZUBUHZUDUEBCDUFBCEUFNAXHYEXSXNABCDRZUGLZXHKLZXNKLZAYFUILYGYH
      YIUJFABCDHUKULZUMABCERZUGLZXSKLZYEKLZAYKUILYLYMYNUJGABCEIUKULZUNAYLYMYNYO
      UMAYGYHYIYJUNAKMUOUPUEZXGUQKYPXRUQXGXRNVAZOZXHXSNOABKXFYPXGAXBKLZPZXEDMYP
      YTXEPZDURLXDDYPLUUADAXCDKLZYSXDHUSUTYTXCXDVBDVCVDMYPLZYTXEVLPVESVFZXGVGVM
      ABKXQYPXRYTXPEMYPYTXPPZEURLXOEYPLUUEEAXCEKLZYSXOIUSUTYTXCXOVBEVCVDUUCYTXP
      VLPVESVFZXRVGVMAYRXFXQNOZBKVHAUUHBKAXCXDDMQZMQZXCXOEMQZMQZXFXQNAXCUUJUULN
      OZAXCUUMAXCPZUUIUUKUUJUULNUUNUUIUUKNOZMUUKNOZDUUKNOZUUNMKLZUUFUUPTIMEVIVJ
      UUNDEUUKHIUUNUUFUURUUKKLZITXOEMKVKVNZJUUNUURUUFEUUKNOTIMEVOVJVPUUNUURUUBU
      USUUOUUPUUQPVQUURUUNTSZHUUTMDUUKVRVSVTXCUUJUUIWAAXCUUIMWBWCXCUULUUKWAAXCU
      UKMWBWCWDWEXCVLZMMUUJUULNMMNOUVBWFSZXCUUIMWGXCUUKMWGWDWHXCXDDMWIXCXOEMWIW
      JWKABKXFXQNXGXRWLYPYPKWLLAWMSZUUDUUGAXGWOAXRWOWNWPXGXRWQVSAKYPYDUQKYPXMUQ
      YDXMYQOZYEXNNOABKYCYPYDYTYBXTMYPYTYBPZXTURLYAXTYPLUVFXTAXCXTKLZYSYAUUNEIW
      RZUSUTYTXCYAVBXTVCVDUUCYTYBVLPVESVFZYDVGVMABKXLYPXMYTXKXIMYPYTXKPZXIURLXJ
      XIYPLUVJXIAXCXIKLZYSXJUUNDHWRZUSUTYTXCXJVBXIVCVDUUCYTXKVLPVESVFZXMVGVMAUV
      EYCXLNOZBKVHAUVNBKAXCYAXTMQZMQZXCXJXIMQZMQZYCXLNAXCUVPUVRNOZAXCUVSUUNUVOU
      VQUVPUVRNUUNUVOUVQNOZMUVQNOZXTUVQNOZUUNUURUVKUWATUVLMXIVIVJUUNXTXIUVQUVHU
      VLUUNUVKUURUVQKLZUVLTXJXIMKVKVNZUUNDENOXTXINOJUUNDEHIWSULUUNUURUVKXIUVQNO
      TUVLMXIVOVJVPUUNUURUVGUWCUVTUWAUWBPVQUVAUVHUWDMXTUVQVRVSVTXCUVPUVOWAAXCUV
      OMWBWCXCUVRUVQWAAXCUVQMWBWCWDWEUVBMMUVPUVRNUVCXCUVOMWGXCUVQMWGWDWHXCYAXTM
      WIXCXJXIMWIWJWKABKYCXLNYDXMWLYPYPUVDUVIUVMAYDWOAXMWOWNWPYDXMWQVSWTABCDHFX
      AABCEIGXAWD $.
  $}

  ${
    $d x A $.  $d x ph $.
    itgge0.1 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    itgge0.2 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    itgge0.3 $e |- ( ( ph /\ x e. A ) -> 0 <_ B ) $.
    $( The integral of a positive function is positive.  (Contributed by Mario
       Carneiro, 25-Aug-2014.) $)
    itgge0 $p |- ( ph -> 0 <_ S. A B _d x ) $=
      ( cc0 citg cle itgz cmpt csn cxp cibl fconstmpt cvol cdm wcel syl cr cmbf
      iblmbf mbfdm2 ibl0 syl5eqelr cv wa 0red itgle syl5eqbrr ) AHBCHIBCDIJBCKA
      BCHDABCHLCHMNZOBCHPACQRSULOSABCDUAABCDLZOSUMUBSEUMUCTFUDCUETUFEABUGCSUHUI
      FGUJUK $.
  $}

  ${
    $d k A $.  $d k B $.  $d k C $.  $d k x ph $.
    itgss.1 $e |- ( ph -> A C_ B ) $.
    itgss.2 $e |- ( ( ph /\ x e. ( B \ A ) ) -> C = 0 ) $.
    $( Expand the set of an integral by adding zeroes outside the domain.
       (Contributed by Mario Carneiro, 11-Aug-2014.)  (Revised by Mario
       Carneiro, 23-Aug-2014.) $)
    itgss $p |- ( ph -> S. A C _d x = S. B C _d x ) $=
      ( vk cc0 co ci cr wcel cdiv cre cfv wa cif citg2 wceq c3 cfz cexp cle wbr
      cv cmpt cmul csu citg cz elfzelz wn iffalse ad2antll eldif adantlr oveq1d
      cdif cc wne ax-icn expclz mp3an12 expne0i div0d ad2antlr eqtrd fveq2d re0
      ine0 syl6eq ifeq1d ifid sylan2br eqtr4d iftrue pm2.61d2 adantl wss adantr
      expr sseld con3dimp syl pm2.61dan 3eqtr4g mpteq2dv oveq2d sylan2 sumeq2dv
      ifan eqid dfitg ) AIUAUBJZKHUFZUCJZBLBUFZCMZIEWQNJZOPZUDUEZQXAIRZUGZSPZUH
      JZHUIWOWQBLWRDMZXBQXAIRZUGZSPZUHJZHUIBCEUJBDEUJAWOXFXKHWPWOMAWPUKMZXFXKTW
      PIUAULAXLQZXEXJWQUHXMXDXISXMBLXCXHXMWSXBXAIRZIRZXGXNIRZXCXHXMXGXOXPTXMXGQ
      ZXOXNXPXQWSXOXNTZXMXGWSUMZXRXMXGXSQZQXOIXNXSXOITZXMXGWSXNIUNZUOXTXMWRDCUS
      MZXNITWRDCUPXMYCQZXNXBIIRIYDXBXAIIYDXAIOPIYDWTIOYDWTIWQNJZIYDEIWQNAYCEITX
      LGUQURXLYEITAYCXLWQKUTMZKIVAZXLWQUTMVBVKKWPVCVDYFYGXLWQIVAVBVKKWPVEVDVFVG
      VHVIVJVLVMXBIVNVLVOVPWBWSXNIVQVRXGXPXNTXMXGXNIVQVSVPXMXGUMZQZXOIXPYIXSYAX
      MWSXGXMCDWRACDVTXLFWAWCWDYBWEYHXPITXMXGXNIUNVSVPWFWSXBXAIWLXGXBXAIWLWGWHV
      IWIWJWKBCEXAHXAWMZWNBDEXAHYJWNWG $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Expand the set of an integral by adding zeroes outside the domain.
       (Contributed by Mario Carneiro, 11-Aug-2014.) $)
    itgss2 $p |- ( A C_ B -> S. A C _d x = S. B if ( x e. A , C , 0 ) _d x ) $=
      ( wss cv wcel cc0 cif citg wceq iftrue adantl itgeq2dv id eldifn iffalsed
      cdif itgss eqtr3d ) BCEZABAFZBGZDHIZJABDJACUDJUAABUDDUCUDDKUAUCDHLMNUAABC
      UDUAOUBCBRGZUDHKUAUEUCDHUBCBPQMST $.
  $}

  ${
    $d x y A $.  $d k x y B $.  $d k y C $.  $d k y D $.  $d k x y ph $.
    itgeqa.1 $e |- ( ( ph /\ x e. B ) -> C e. CC ) $.
    itgeqa.2 $e |- ( ( ph /\ x e. B ) -> D e. CC ) $.
    itgeqa.3 $e |- ( ph -> A C_ RR ) $.
    itgeqa.4 $e |- ( ph -> ( vol* ` A ) = 0 ) $.
    itgeqa.5 $e |- ( ( ph /\ x e. ( B \ A ) ) -> C = D ) $.
    $( Approximate equality of integrals.  If ` C ( x ) = D ( x ) ` for almost
       all ` x ` , then ` S. B C ( x ) _d x = S. B D ( x ) _d x ` and one is
       integrable iff the other is.  (Contributed by Mario Carneiro,
       12-Aug-2014.)  (Revised by Mario Carneiro, 2-Sep-2014.) $)
    itgeqa $p |- ( ph ->
      ( ( ( x e. B |-> C ) e. L^1 <-> ( x e. B |-> D ) e. L^1 ) /\
        S. B C _d x = S. B D _d x ) ) $=
      ( vk vy wcel wceq cr cc0 co cfv wa cmpt cibl wb citg cmbf cv ci cexp cdiv
      cre cle wbr cif citg2 c3 cfz wral mbfeqa cpnf cicc ifan cxr cc adantlr cz
      elfzelz ad2antlr wne ax-icn ine0 expclz mp3an12 expne0i divcld recld ifcl
      syl 0re sylancl rexrd max1 sylancr elxrge0 sylanbrc wn 0e0iccpnf syl5eqel
      a1i ifclda adantr eqid fmptd wss covol simpll simpr eldifn eldifd syl2anc
      cdif oveq1d fveq2d ibllem cvv eldifi adantl fvex c0ex ifex fvmpt2 3eqtr4d
      ralrimiva nfv nffvmpt1 fveq2 eqeq12d cbvral sylib r19.21bi itg2eqa eleq1d
      nfeq ralbidva anbi12d eqidd isibl2 3bitr4d cmul csu oveq2d sumeq2dv dfitg
      3eqtr4g jca ) ABDEUAZUBNZBDFUAZUBNZUCBDEUDZBDFUDZOAYOUENZBPBUFZDNZQEUGLUF
      ZUHRZUIRZUJSZUKULZTZUUGQUMZUAZUNSZPNZLQUOUPRZUQZTYQUENZBPUUCQFUUEUIRZUJSZ
      UKULZTZUURQUMZUAZUNSZPNZLUUNUQZTYPYRAUUAUUPUUOUVEABCDEFIJKGHURAUUMUVDLUUN
      AUUDUUNNZTZUULUVCPUVGMCUUKUVBUVGBPUUJQUSUTRZUUKUVGUUJUVHNUUBPNZUVGUUJUUCU
      UHUUGQUMZQUMUVHUUCUUHUUGQVAUVGUUCUVJQUVHUVGUUCTZUVJVBNQUVJUKULZUVJUVHNUVK
      UVJUVKUUGPNZQPNZUVJPNUVKUUFUVKEUUEAUUCEVCNUVFGVDUVKUUDVENZUUEVCNZUVFUVOAU
      UCUUDQUOVFVGZUGVCNZUGQVHZUVOUVPVIVJUGUUDVKVLVQZUVKUVOUUEQVHZUVQUVRUVSUVOU
      WAVIVJUGUUDVMVLVQZVNVOZVRUUHUUGQPVPVSVTUVKUVNUVMUVLVRUWCQUUGWAWBUVJWCWDQU
      VHNUVGUUCWETWFWHZWIWGWJUUKWKZWLUVGBPUVAUVHUVBUVGUVAUVHNUVIUVGUVAUUCUUSUUR
      QUMZQUMUVHUUCUUSUURQVAUVGUUCUWFQUVHUVKUWFVBNQUWFUKULZUWFUVHNUVKUWFUVKUURP
      NZUVNUWFPNUVKUUQUVKFUUEAUUCFVCNUVFHVDUVTUWBVNVOZVRUUSUURQPVPVSVTUVKUVNUWH
      UWGVRUWIQUURWAWBUWFWCWDUWDWIWGWJUVBWKZWLACPWMUVFIWJACWNSQOUVFJWJAMUFZPCWT
      ZNUWKUUKSZUWKUVBSZOZUVFAUWOMUWLAUUBUUKSZUUBUVBSZOZBUWLUQUWOMUWLUQAUWRBUWL
      AUUBUWLNZTZUUJUVAUWPUWQUWTBDUUGUURUWTUUCTZUUFUUQUJUXAEFUUEUIUXAAUUBDCWTNE
      FOAUWSUUCWOUXAUUBDCUWTUUCWPUWSUUBCNWEAUUCUUBPCWQVGWRKWSXAXBXCUWTUVIUUJXDN
      UWPUUJOUWSUVIAUUBPCXEXFZUUIUUGQUUFUJXGXHXIBPUUJXDUUKUWEXJVSUWTUVIUVAXDNUW
      QUVAOUXBUUTUURQUUQUJXGXHXIBPUVAXDUVBUWJXJVSXKXLUWRUWOBMUWLUWRMXMBUWMUWNBP
      UUJUWKXNBPUVAUWKXNYBUUBUWKOUWPUWMUWQUWNUUBUWKUUKXOUUBUWKUVBXOXPXQXRXSVDXT
      ZYAYCYDABDEUUGLUUKVCAUUKYEAUUCTZUUGYEGYFABDFUURLUVBVCAUVBYEUXDUURYEHYFYGA
      UUNUUEUULYHRZLYIUUNUUEUVCYHRZLYIYSYTAUUNUXEUXFLUVGUULUVCUUEYHUXCYJYKBDEUU
      GLUUGWKYLBDFUURLUURWKYLYMYN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x y ph $.
    itgss3.1 $e |- ( ph -> A C_ B ) $.
    itgss3.2 $e |- ( ph -> B C_ RR ) $.
    itgss3.3 $e |- ( ph -> ( vol* ` ( B \ A ) ) = 0 ) $.
    itgss3.4 $e |- ( ( ph /\ x e. B ) -> C e. CC ) $.
    $( Expand the set of an integral by a nullset.  (Contributed by Mario
       Carneiro, 13-Aug-2014.)  (Revised by Mario Carneiro, 2-Sep-2014.) $)
    itgss3 $p |- ( ph ->
      ( ( ( x e. A |-> C ) e. L^1 <-> ( x e. B |-> C ) e. L^1 ) /\
         S. A C _d x = S. B C _d x ) ) $=
      ( vy cmpt cibl wcel wceq cc0 wa cc adantr syl wf wb citg cif csb nfcv nfv
      cv nfcsb1v nfif csbeq1a ifbieq1d cbvmpt wss cvol cdm cmbf iftrue mpteq2ia
      eleq1 eqtr4i simpr syl5eqelr iblmbf wral sselda syldan fmptd feq1i sylibr
      eqid sylib fmpt r19.21bi mbfdm2 cun undif id cr covol cfv ssdifssd nulmbl
      cdif syl2anc unmbl eqeltrrd eldifn adantl iffalsed iblss2 syl5eqel eqtr3i
      syl2anr 0cn ifcl sylancl dfss4 difmbl impbida eleq2d biimpa itgeqa simpld
      wn iblss bitrd itgss2 simprd eqtrd jca ) ABCEKZLMZBDEKLMZUABCEUBZBDEUBZNA
      XLBDBUGZCMZEOUCZKZLMZXMAXLXTAXLPZXSJDJUGZCMZBYBEUDZOUCZKZLBJDXRYEJXRUEZYC
      BYDOYCBUFBYBEUHZBOUEUIZXPYBNXQYCEYDOXPYBCUSBYBEUJZUKZULZYAJCDYEQACDUMZXLF
      RAXLCUNUOZMZDYNMZYAJCYEQYAJCYEKZLMYQUPMYAYQXKLXKJCYDKYQBJCEYDJEUEYHYJULJC
      YEYDYCYDOUQURUTZAXLVAVBZYQVCSYAYEQMZJCYACQYQTZYTJCVDYACQXKTZUUAAUUBXLABCE
      QXKAXQXPDMZEQMZACDXPFVEIVFXKVJVGRCQXKYQYRVHVKJCQYEYQYQVJVLVIVMZVNAYOPCDCW
      CZVOZDYNAUUGDNZYOAYMUUHFCDVPVKRYOYOUUFYNMZUUGYNMAYOVQAUUFVRUMUUFVSVTONUUI
      ADVRCGWAZHUUFWBWDZCUUFWEWMWFVFUUEYAYBUUFMZPYCYDOUULYCXDYAYBDCWGWHWIYSWJWK
      AXTPZXKYQLBCXRKXKYQBCXREXQEOUQZURBJCXRYEYGYIYKULWLUUMJCDYEQAYMXTFRAXTYPYO
      UUMJDYEQUUMYFLMYFUPMUUMYFXSLYLAXTVAVBZYFVCSUUMYTJDUUMDQYFTZYTJDVDAUUPXTAD
      QXSTUUPABDXRQXSAUUCPUUDOQMXRQMIWNXQEOQWOWPZXSVJVGDQXSYFYLVHVKRJDQYEYFYFVJ
      VLVIVMZVNAYPPDUUFWCZCYNAUUSCNZYPAYMUUTFCDWQVKZRYPYPUUIUUSYNMAYPVQUUKDUUFW
      RWMWFVFUURUUOXEWKWSAXTXMUAZBDXRUBZXONZABUUFDXREUUQIUUJHAXPUUSMZPXQXRENAUV
      EXQAUUSCXPUVAWTXAUUNSXBZXCXFAXNUVCXOAYMXNUVCNFBCDEXGSAUVBUVDUVFXHXIXJ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    itgioo.1 $e |- ( ph -> A e. RR ) $.
    itgioo.2 $e |- ( ph -> B e. RR ) $.
    itgioo.3 $e |- ( ( ph /\ x e. ( A [,] B ) ) -> C e. CC ) $.
    $( Equality of integrals on open and closed intervals.  (Contributed by
       Mario Carneiro, 2-Sep-2014.) $)
    itgioo $p |- ( ph -> S. ( A (,) B ) C _d x = S. ( A [,] B ) C _d x ) $=
      ( co cmpt cibl wcel wb citg wceq wss cr syl2anc cdif c0 cioo ioossicc a1i
      cicc iccssre cpr covol cfv cc0 clt wbr wa rexrd icc0 biimpar difeq1d 0dif
      cxr 0ss eqsstri cle cun uncom adantr simpr prunioo syl3anc syl5req difun2
      syl6eqss syl6eq difss ltlecasei prssi cfn ovolfi sylancr ovolssnul itgss3
      prfi simprd ) ABCDUAIZEJKLBCDUDIZEJKLMBWBENBWCENOABWBWCEWBWCPACDUBUCACQLZ
      DQLZWCQPFGCDUERAWCWBSZCDUFZPZWGQPZWGUGUHUIOZWFUGUHUIOAWHDCADCUJUKZULZWFTW
      BSZWGWLWCTWBAWCTOZWKACURLZDURLZWNWKMACFUMZADGUMZCDUNRUOUPWMTWGWBUQWGUSUTV
      JACDVAUKZULZWFWGWBSZWGWTWFWGWBVBZWBSXAWTWCXBWBWTXBWBWGVBZWCWGWBVCWTWOWPWS
      XCWCOAWOWSWQVDAWPWSWRVDAWSVECDVFVGVHUPWGWBVIVKWGWBVLVJGFVMAWDWEWIFGCDQVNR
      ZAWGVOLWIWJCDVTXDWGVPVQWFWGVRVGHVSWA $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    itgless.1 $e |- ( ph -> A C_ B ) $.
    itgless.2 $e |- ( ph -> A e. dom vol ) $.
    itgless.3 $e |- ( ( ph /\ x e. B ) -> C e. RR ) $.
    itgless.4 $e |- ( ( ph /\ x e. B ) -> 0 <_ C ) $.
    itgless.5 $e |- ( ph -> ( x e. B |-> C ) e. L^1 ) $.
    $( Expand the integral of a nonnegative function.  (Contributed by Mario
       Carneiro, 31-Aug-2014.) $)
    itgless $p |- ( ph -> S. A C _d x <_ S. B C _d x ) $=
      ( citg wcel cc0 cle syl cr cmpt cibl wa wbr cv cif wss wceq itgss2 iblmbf
      cmbf mbfdm2 sselda syldan 0re ifcl sylancl cdif wn eldifn adantl iffalsed
      iftrue mpteq2ia iblss syl5eqel iblss2 leidd breq1 ifboth syl2anc eqbrtrd
      itgle ) ABCEKZBDBUAZCLZEMUBZKZBDEKNACDUCVJVNUDFBCDEUEOABDVMEABCDVMPFABDEP
      ABDEQZRLVOUGLJVOUFOHUHAVLSEPLZMPLZVMPLZAVLVKDLZVPACDVKFUIHUJUKVLEMPULZUMA
      VKDCUNLZSVLEMWAVLUOAVKDCUPUQURABCVMQBCEQRBCVMEVLEMUSUTABCDEPFGHJVAVBVCJAV
      SSZVPVQVRHUKVTUMHWBEENTZMENTZVMENTZWBEHVDIVLWCWDWEEMEVMENVEMVMENVEVFVGVIV
      H $.
  $}

  ${
    $d k x y A $.  $d k x y B $.
    $( A constant function is integrable.  (Contributed by Mario Carneiro,
       12-Aug-2014.) $)
    iblconst $p |- ( ( A e. dom vol /\ ( vol ` A ) e. RR /\ B e. CC ) ->
      ( A X. { B } ) e. L^1 ) $=
      ( vx vk cvol wcel cfv cr cc cmpt cibl cmbf cv cc0 ci co cle wa cif citg2
      cdm w3a csn cxp fconstmpt cexp cdiv cre wbr c3 cfz wral 3adant2 syl5eqelr
      mbfconst cmul ifan mpteq2i fveq2i cpnf cico wceq simpl1 simpl2 cz elfzelz
      simpl3 adantl wne ax-icn ine0 expclz mp3an12 syl expne0i divcld recld 0re
      ifcl sylancl sylancr elrege0 sylanbrc itg2const syl5eq remulcld ralrimiva
      max1 syl3anc eqeltrd eqidd isibl2 mpbir2and syl5eqel ) AEUAFZAEGZHFZBIFZU
      BZABUCUDZCABJZKCABUEZWSXAKFXALFCHCMAFZNBODMZUFPZUGPZUHGZQUIZRXGNSZJZTGZHF
      ZDNUJUKPZULWSXAWTLXBWOWRWTLFWQABUOUMUNWSXLDXMWSXDXMFZRZXKXHXGNSZWPUPPZHXO
      XKCHXCXPNSZJZTGZXQXJXSTCHXIXRXCXHXGNUQURUSXOWOWQXPNUTVAPFZXTXQVBWOWQWRXNV
      CWOWQWRXNVDZXOXPHFZNXPQUIZYAXOXGHFZNHFZYCXOXFXOBXEWOWQWRXNVGXOXDVEFZXEIFZ
      XNYGWSXDNUJVFVHZOIFZONVIZYGYHVJVKOXDVLVMVNXOYGXENVIZYIYJYKYGYLVJVKOXDVOVM
      VNVPVQZVRXHXGNHVSVTZXOYFYEYDVRYMNXGWHWAXPWBWCCAXPWDWIWEXOXPWPYNYBWFWJWGWS
      CABXGDXJIWSXJWKWSXCRXGWKWOWQWRXCVGWLWMWN $.

    $( Integral of a constant function.  (Contributed by Mario Carneiro,
       12-Aug-2014.) $)
    itgconst $p |- ( ( A e. dom vol /\ ( vol ` A ) e. RR /\ B e. CC ) ->
      S. A B _d x = ( B x. ( vol ` A ) ) ) $=
      ( vy wcel cfv cr cc citg ci cmul caddc wceq cc0 cle cif cmpt citg2 recnd
      co cvol cdm w3a cre cim cv wral recl 3ad2ant3 wa wbr cneg cmin simplr csn
      cxp fconstmpt simpl1 simp2 adantr iblconst syl3anc syl5eqelr itgrevallem1
      cibl simpr ifan mpteq2i fveq2i cpnf cico 0re ifcl sylancl sylancr elrege0
      sylanbrc itg2const syl5eq renegcl adantl oveq12d subdird max0sub 3eqtr2rd
      max1 oveq1d eqtr4d ralrimiva simpl itgeq2dv oveq1 eqeq12d rspcv sylc imcl
      oveq2d ax-icn a1i mulassd mulcl adddird simpl3 itgcnval replim 3eqtr4d )
      BUAUBEZBUAFZGEZCHEZUCZABCUDFZIZJABCUEFZIZKTZLTZXLJXNKTZLTZXHKTZABCICXHKTX
      KXQXLXHKTZXRXHKTZLTXTXKXMYAXPYBLXKXLGEZABDUFZIZYDXHKTZMZDGUGZXMYAMZXJXGYC
      XICUHUIZXKYGDGXKYDGEZUJZYEAGAUFBEZNYDOUKZUJYDNPZQZRFZAGYMNYDULZOUKZUJYRNP
      ZQZRFZUMTZYFYLABYDXKYKYMUNYLABYDQBYDUOUPZVEABYDUQYLXGXIYDHEUUDVEEXGXIXJYK
      URZXKXIYKXGXIXJUSZUTZYLYDXKYKVFZSBYDVAVBVCVDYLUUCYNYDNPZXHKTZYSYRNPZXHKTZ
      UMTUUIUUKUMTZXHKTYFYLYQUUJUUBUULUMYLYQAGYMUUINPZQZRFZUUJYPUUORAGYOUUNYMYN
      YDNVGVHVIYLXGXIUUINVJVKTZEZUUPUUJMUUEUUGYLUUIGEZNUUIOUKZUURYLYKNGEZUUSUUH
      VLYNYDNGVMVNZYLUVAYKUUTVLUUHNYDWFVOUUIVPVQABUUIVRVBVSYLUUBAGYMUUKNPZQZRFZ
      UULUUAUVDRAGYTUVCYMYSYRNVGVHVIYLXGXIUUKUUQEZUVEUULMUUEUUGYLUUKGEZNUUKOUKZ
      UVFYLYRGEZUVAUVGYKUVIXKYDVTWAZVLYSYRNGVMVNZYLUVAUVIUVHVLUVJNYRWFVOUUKVPVQ
      ABUUKVRVBVSWBYLUUIUUKXHYLUUIUVBSYLUUKUVKSXKXHHEYKXKXHUUFSZUTWCYLUUMYDXHKY
      KUUMYDMXKYDWDWAWGWEWHWIZYGYIDXLGYDXLMZYEXMYFYAUVNABYDXLUVNYMWJWKYDXLXHKWL
      WMWNWOXKXPJXNXHKTZKTYBXKXOUVOJKXKXNGEZYHXOUVOMZXJXGUVPXICWPUIZUVMYGUVQDXN
      GYDXNMZYEXOYFUVOUVSABYDXNUVSYMWJWKYDXNXHKWLWMWNWOWQXKJXNXHJHEZXKWRWSXKXNU
      VRSZUVLWTWHWBXKXLXRXHXKXLYJSXKUVTXNHEXRHEWRUWAJXNXAVOUVLXBWHXKABCHXGXIXJY
      MXCXKABCQBCUOUPVEABCUQBCVAVCXDXKCXSXHKXJXGCXSMXICXEUIWGXF $.
  $}

  ${
    $d x A $.  $d x ph $.
    ibladd.1 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    ibladd.2 $e |- ( ( ph /\ x e. A ) -> C e. RR ) $.
    ibladd.3 $e |- ( ( ph /\ x e. A ) -> D = ( B + C ) ) $.
    ibladd.4 $e |- ( ph -> ( x e. A |-> B ) e. MblFn ) $.
    ibladd.5 $e |- ( ph -> ( x e. A |-> C ) e. MblFn ) $.
    ibladd.6 $e |- ( ph -> ( S.2 ` ( x e. RR |->
      if ( ( x e. A /\ 0 <_ B ) , B , 0 ) ) ) e. RR ) $.
    ibladd.7 $e |- ( ph -> ( S.2 ` ( x e. RR |->
      if ( ( x e. A /\ 0 <_ C ) , C , 0 ) ) ) e. RR ) $.
    $( Lemma for ~ ibladd .  (Contributed by Mario Carneiro, 17-Aug-2014.) $)
    ibladdlem $p |- ( ph -> ( S.2 ` ( x e. RR |->
      if ( ( x e. A /\ 0 <_ D ) , D , 0 ) ) ) e. RR ) $=
      ( cr cc0 wcel cle wbr cif cmpt cpnf cicc co cv wa wf caddc citg2 cfv ifan
      cxr readdcld eqeltrd 0re ifcl sylancl rexrd max1 sylancr elxrge0 sylanbrc
      wn 0e0iccpnf a1i ifclda adantr syl5eqel eqid fmptd cof reex eqidd offval2
      wceq iftrue ibar ifbid oveq12d eqtr2d 00id simpl iffalsed iffalse 3eqtr4a
      cvv con3i pm2.61i mpteq2i syl6eq fveq2d cvol cdm wss mblss syl rembl cdif
      mbfdm2 eldifn adantl intnanrd cmbf mpteq2ia mbfpos syl5eqelr cico elrege0
      mbfss 0e0icopnf itg2add eqtr3d cofr addge0d le2addd eqbrtrd breq1 syl2anc
      wral max2 ifboth 3brtr4d 0le0 pm2.61d1 syl5eqbr ralrimivw ofrfval2 mpbird
      ex itg2le syl3anc itg2lecl ) ANOUAUBUCZBNBUDZCPZOFQRZUEFOSZTZUFZBNYNODQRZ
      DOSZOEQRZEOSZUGUCZOSZTZUHUIZNPYQUHUIZUUFQRZUUGNPABNYPYLYQAYMNPZUEYPYNYOFO
      SZOSZYLYNYOFOUJZAUUKYLPUUIAYNUUJOYLAYNUEZUUJUKPOUUJQRZUUJYLPUUMUUJUUMFNPZ
      ONPZUUJNPUUMFDEUGUCZNIUUMDEGHULUMZUNYOFONUOUPUQUUMUUPUUOUUNUNUUROFURUSUUJ
      UTVAOYLPAYNVBZUEZVCVDZVEVFVGZYQVHVIZAUUFBNYNYSUEZDOSZTZUHUIZBNYNUUAUEZEOS
      ZTZUHUIZUGUCZNAUVFUVJUGVJUCZUHUIUUFUVLAUVMUUEUHAUVMBNUVEUVIUGUCZTUUEABNUV
      EUVIUGUVFUVJWENNNWEPAVKVDZAUVENPZUUIAUVEYNYTOSZNYNYSDOUJZAYNYTONUUMDNPZUU
      PYTNPZGUNYSDONUOUPZUUPUUTUNVDZVEVGZVFAUVINPZUUIAUVIYNUUBOSZNYNUUAEOUJZAYN
      UUBONUUMENPZUUPUUBNPZHUNUUAEONUOUPZUWBVEVGZVFAUVFVLAUVJVLVMBNUVNUUDYNUVNU
      UDVNYNUUDUUCUVNYNUUCOVOZYNYTUVEUUBUVIUGYNYSUVDDOYNYSVPVQZYNUUAUVHEOYNUUAV
      PVQZVRVSUUSOOUGUCOUVNUUDVTUUSUVEOUVIOUGUUSUVDDOUVDYNYNYSWAWFWBUUSUVHEOUVH
      YNYNUUAWAWFWBZVRYNUUCOWCZWDWGWHWIWJAUVFUVJABCNUVENACWKWLZPCNWMABCDNJGWRCW
      NWOZNUWPPAWPVDZAUVPYNUWCVFAYMNCWQPZUEZUVDDOUWTYNYSUWSUUSAYMNCWSWTZXAWBABC
      UVETBCYTTXBBCYTUVEUWLXCABCDGJXDXEXHABNUVEOUAXFUCZUVFAUVEUXBPUUIAUVEUVQUXB
      UVRAYNYTOUXBUUMUVTOYTQRZYTUXBPUWAUUMUUPUVSUXCUNGODURUSZYTXGVAOUXBPUUTXIVD
      ZVEVGVFUVFVHVILABCNUVINUWQUWRAUWDYNUWJVFUWTUUSUVIOVNUXAUWNWOABCUVITBCUUBT
      XBBCUUBUVIUWMXCABCEHKXDXEXHABNUVIUXBUVJAUVIUXBPUUIAUVIUWEUXBUWFAYNUUBOUXB
      UUMUWHOUUBQRZUUBUXBPUWIUUMUUPUWGUXFUNHOEURUSZUUBXGVAUXEVEVGVFUVJVHVIMXJXK
      AUVGUVKLMULUMAYRNYLUUEUFYQUUEQXLRZUUHUVCABNUUDYLUUEAUUDYLPUUIAYNUUCOYLUUM
      UUCUKPOUUCQRZUUCYLPUUMUUCUUMYTUUBUWAUWIULUQUUMYTUUBUWAUWIUXDUXGXMZUUCUTVA
      UVAVEVFZUUEVHVIAUXHYPUUDQRZBNXRAUXLBNAYPUUKUUDQUULAYNUUKUUDQRZAYNUXMUUMUU
      JUUCUUKUUDQUUMFUUCQRZUXIUUJUUCQRZUUMFUUQUUCQIUUMDEYTUUBGHUWAUWIUUMUUPUVSD
      YTQRUNGODXSUSUUMUUPUWGEUUBQRUNHOEXSUSXNXOUXJYOUXNUXIUXOFOFUUJUUCQXPOUUJUU
      CQXPXTXQYNUUKUUJVNAYNUUJOVOWTYNUUDUUCVNAUWKWTYAYHUUSOOUUKUUDQOOQRUUSYBVDY
      NUUJOWCUWOYAYCYDYEABNYPUUDQYQUUEWEYLYLUVOUVBUXKAYQVLAUUEVLYFYGYQUUEYIYJUU
      FYQYKYJ $.
  $}

  ${
    $d x A $.  $d x V $.  $d x ph $.
    itgadd.1 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    itgadd.2 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    itgadd.3 $e |- ( ( ph /\ x e. A ) -> C e. V ) $.
    itgadd.4 $e |- ( ph -> ( x e. A |-> C ) e. L^1 ) $.
    $( Add two integrals over the same domain.  (Contributed by Mario Carneiro,
       17-Aug-2014.) $)
    ibladd $p |- ( ph -> ( x e. A |-> ( B + C ) ) e. L^1 ) $=
      ( cmpt wcel cr cc0 cfv cle wbr wa cif citg2 caddc co cibl cmbf cv cre cim
      cneg cof cvol cdm w3a iblcnlem mpbid simp1d mbfdm2 eqidd offval2 eqeltrrd
      eqid mbfadd mbfmptcl recld readdd ismbfcn2 simpld simp2d ibladdlem negeqd
      renegcld recnd negdid eqtrd mbfneg simprd jca imaddd simp3d cvv mpbir3and
      imcld ovexd ) ABCDEUAUBZKZUCLWDUDLBMBUECLZNWCUFOZPQRWFNSKTOZMLZBMWENWFUHZ
      PQRWINSKTOZMLZRBMWENWCUGOZPQRWLNSKTOZMLZBMWENWLUHZPQRWONSKTOZMLZRABCDKZBC
      EKZUAUIUBWDUDABCDEUAWRWSUJUKFFABCDFAWRUDLZBMWENDUFOZPQRXANSKTOZMLZBMWENXA
      UHZPQRXDNSKTOZMLZRZBMWENDUGOZPQRXHNSKTOZMLZBMWENXHUHZPQRXKNSKTOZMLZRZAWRU
      CLWTXGXNULHABCDXBXEXIXLFXBUTXEUTXIUTXLUTGUMUNZUOZGUPGIAWRUQAWSUQURAWRWSXP
      AWSUDLZBMWENEUFOZPQRXRNSKTOZMLZBMWENXRUHZPQRYANSKTOZMLZRZBMWENEUGOZPQRYEN
      SKTOZMLZBMWENYEUHZPQRYHNSKTOZMLZRZAWSUCLXQYDYKULJABCEXSYBYFYIFXSUTYBUTYFU
      TYIUTIUMUNZUOZVAUSAWHWKABCXAXRWFAWERZDABCDFXPGVBZVCZYNEABCEFYMIVBZVCZYNDE
      YOYQVDZABCXAKUDLZBCXHKUDLZAWTYTUUARXPABCDYOVEUNZVFZABCXRKUDLZBCYEKUDLZAXQ
      UUDUUERYMABCEYQVEUNZVFZAXCXFAWTXGXNXOVGZVFAXTYCAXQYDYKYLVGZVFVHABCXDYAWIY
      NXAYPVJYNXRYRVJYNWIXAXRUAUBZUHXDYAUAUBYNWFUUJYSVIYNXAXRYNXAYPVKYNXRYRVKVL
      VMABCXAMYPUUCVNABCXRMYRUUGVNAXCXFUUHVOAXTYCUUIVOVHVPAWNWQABCXHYEWLYNDYOWA
      ZYNEYQWAZYNDEYOYQVQZAYTUUAUUBVOZAUUDUUEUUFVOZAXJXMAWTXGXNXOVRZVFAYGYJAXQY
      DYKYLVRZVFVHABCXKYHWOYNXHUUKVJYNYEUULVJYNWOXHYEUAUBZUHXKYHUAUBYNWLUURUUMV
      IYNXHYEYNXHUUKVKYNYEUULVKVLVMABCXHMUUKUUNVNABCYEMUULUUOVNAXJXMUUPVOAYGYJU
      UQVOVHVPABCWCWGWJWMWPVSWGUTWJUTWMUTWPUTYNDEUAWBUMVT $.

    $( Subtract two integrals over the same domain.  (Contributed by Mario
       Carneiro, 25-Aug-2014.) $)
    iblsub $p |- ( ph -> ( x e. A |-> ( B - C ) ) e. L^1 ) $=
      ( cneg caddc co cmpt cibl wcel cmbf iblmbf syl mbfmptcl cmin cv mpteq2dva
      wa negsubd cc negcld iblneg ibladd eqeltrrd ) ABCDEKZLMZNBCDEUAMZNOABCULU
      MABUBCPUDZDEABCDFABCDNZOPUOQPHUORSGTZABCEFABCENZOPUQQPJUQRSITZUEUCABCDUKU
      FUPHUNEURUGABCEFIJUHUIUJ $.

    ${
      itgadd.5 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
      itgadd.6 $e |- ( ( ph /\ x e. A ) -> C e. RR ) $.
      ${
        itgadd.7 $e |- ( ( ph /\ x e. A ) -> 0 <_ B ) $.
        itgadd.8 $e |- ( ( ph /\ x e. A ) -> 0 <_ C ) $.
        $( Lemma for ~ itgadd .  (Contributed by Mario Carneiro,
           17-Aug-2014.) $)
        itgaddlem1 $p |- ( ph -> S. A ( B + C ) _d x =
          ( S. A B _d x + S. A C _d x ) ) $=
          ( caddc co cr wcel cc0 cmpt citg cv cif citg2 cfv wa readdcld addge0d
          ibladd itgposval cof oveq12d cpnf cico cvol cdm wss cmbf iblpos mpbid
          cibl simpld mbfdm2 mblss syl rembl a1i cle elrege0 sylanbrc 0e0icopnf
          wn ifclda adantr cdif eldifn adantl iffalsed iftrue mpteq2ia syl5eqel
          wbr mbfss eqid fmptd simprd itg2add reex eqidd offval2 eqtr4d iffalse
          cvv wceq 00id syl6eq pm2.61i mpteq2i fveq2d 3eqtr2d ) ABCDEOPZUABQBUB
          ZCRZXASUCZTZUDUEZBCDUAZBCEUAZOPZABCXAAXCUFZDEKLUGABCDEFGHIJUIXJDEKLMN
          UHUJAXIBQXCDSUCZTZUDUEZBQXCESUCZTZUDUEZOPXLXOOUKPZUDUEXFAXGXMXHXPOABC
          DKHMUJABCELJNUJULAXLXOABCQXKSUMUNPZACUOUPZRCQUQABCDQABCDTZURRZXMQRZAX
          TVARYAYBUFHABCDKMUSUTZVBZKVCCVDVEZQXSRAVFVGZAXKXRRZXCAXCDSXRXJDQRSDVH
          WBDXRRKMDVIVJSXRRAXCVLZUFVKVGZVMZVNAXBQCVORZUFZXCDSYKYHAXBQCVPVQZVRAB
          CXKTXTURBCXKDXCDSVSZVTYDWAWCABQXKXRXLAYGXBQRZYJVNZXLWDWEAYAYBYCWFABCQ
          XNXRYEYFAXNXRRZXCAXCESXRXJEQRSEVHWBEXRRLNEVIVJYIVMZVNYLXCESYMVRABCXNT
          BCETZURBCXNEXCESVSZVTAYSURRZXPQRZAYSVARUUAUUBUFJABCELNUSUTZVBWAWCABQX
          NXRXOAYQYOYRVNZXOWDWEAUUAUUBUUCWFWGAXQXEUDAXQBQXKXNOPZTXEABQXKXNOXLXO
          WMXRXRQWMRAWHVGYPUUDAXLWIAXOWIWJBQUUEXDXCUUEXDWNXCUUEXAXDXCXKDXNEOYNY
          TULXCXASVSWKYHUUESXDYHUUESSOPSYHXKSXNSOXCDSWLXCESWLULWOWPXCXASWLWKWQW
          RWPWSWTWK $.
      $}

      $( Lemma for ~ itgadd .  (Contributed by Mario Carneiro, 17-Aug-2014.) $)
      itgaddlem2 $p |- ( ph -> S. A ( B + C ) _d x =
        ( S. A B _d x + S. A C _d x ) ) $=
        ( cc0 caddc co cle wbr citg wcel cr cif cneg cmin cv wa max0sub oveq12d
        wceq syl 0re sylancl recnd renegcld addsub4d readdcld addcld addsubeq4d
        ifcl 3eqtr4rd mpbird itgeq2dv cmpt cibl ibladd iblre simprd simpld max1
        mpbid sylancr addge0d itgaddlem1 3eqtr3d itgcl eqeltrd itgreval 3eqtr4d
        cc 3eqtrd ) ABCMDENOZPQZVTMUAZRZBCMVTUBZPQZWDMUAZRZUCOZBCMDPQZDMUAZRZBC
        MDUBZPQZWLMUAZRZUCOZBCMEPQZEMUAZRZBCMEUBZPQZWTMUAZRZUCOZNOZBCVTRBCDRZBC
        ERZNOAWHBCWJWRNOZRZBCWNXBNOZRZUCOZWKWSNOZWOXCNOZUCOXEAWGXINOZWCXKNOZUHW
        HXLUHABCWFXHNOZRBCWBXJNOZRXOXPABCXQXRABUDCSUEZXQXRUHWBWFUCOZXHXJUCOZUHX
        SWJWNUCOZWRXBUCOZNOVTYAXTXSYBDYCENXSDTSZYBDUHKDUFUIXSETSZYCEUHLEUFUIUGX
        SWJWRWNXBXSWJXSYDMTSZWJTSKUJWIDMTURUKZULZXSWRXSYEYFWRTSLUJWQEMTURUKZULZ
        XSWNXSWLTSZYFWNTSXSDKUMZUJWMWLMTURUKZULZXSXBXSWTTSZYFXBTSXSELUMZUJXAWTM
        TURUKZULZUNXSVTTSZXTVTUHXSDEKLUOZVTUFUIUSXSWFXHWBXJXSWFXSWDTSZYFWFTSXSV
        TYTUMZUJWEWDMTURUKZULXSWJWRYHYJUPXSWBXSYSYFWBTSYTUJWAVTMTURUKZULXSWNXBY
        NYRUPUQUTVAABCWFXHTUUCABCWBVBVCSZBCWFVBVCSZABCVTVBVCSUUEUUFUEABCDEFGHIJ
        VDZABCVTYTVEVIZVFZXSWJWRYGYIUOZABCWJWRTYGABCWJVBVCSZBCWNVBVCSZABCDVBVCS
        UUKUULUEHABCDKVEVIZVGZYIABCWRVBVCSZBCXBVBVCSZABCEVBVCSUUOUUPUEJABCELVEV
        IZVGZVDUUCUUJXSYFUUAMWFPQUJUUBMWDVHVJXSWJWRYGYIXSYFYDMWJPQUJKMDVHVJZXSY
        FYEMWRPQUJLMEVHVJZVKVLABCWBXJTUUDAUUEUUFUUHVGZXSWNXBYMYQUOZABCWNXBTYMAU
        UKUULUUMVFZYQAUUOUUPUUQVFZVDUUDUVBXSYFYSMWBPQUJYTMVTVHVJXSWNXBYMYQXSYFY
        KMWNPQUJYLMWLVHVJZXSYFYOMXBPQUJYPMWTVHVJZVKVLVMAWGXIWCXKABCWFTUUCUUIVNA
        XIXMVRABCWJWRTYGUUNYIUURYGYIUUSUUTVLZAWKWSABCWJTYGUUNVNZABCWRTYIUURVNZU
        PVOABCWBTUUDUVAVNAXKXNVRABCWNXBTYMUVCYQUVDYMYQUVEUVFVLZAWOXCABCWNTYMUVC
        VNZABCXBTYQUVDVNZUPVOUQVIAXIXMXKXNUCUVGUVJUGAWKWSWOXCUVHUVIUVKUVLUNVSAB
        CVTYTUUGVPAXFWPXGXDNABCDKHVPABCELJVPUGVQ $.
    $}

    $( Add two integrals over the same domain.  (Contributed by Mario Carneiro,
       17-Aug-2014.) $)
    itgadd $p |- ( ph -> S. A ( B + C ) _d x =
      ( S. A B _d x + S. A C _d x ) ) $=
      ( caddc co cfv citg ci cmul wcel cmpt cibl cr cre cim cv wa cmbf mbfmptcl
      iblmbf syl readdd recld iblcn mpbid simpld itgaddlem2 eqtrd imaddd simprd
      itgeq2dv imcld oveq2d ax-icn a1i itgcl adddid oveq12d mulcl sylancr add4d
      cc cvv ovexd ibladd itgcnval 3eqtr4d ) ABCDEKLZUAMZNZOBCVOUBMZNZPLZKLZBCD
      UAMZNZOBCDUBMZNZPLZKLZBCEUAMZNZOBCEUBMZNZPLZKLZKLZBCVONBCDNZBCENZKLAWAWCW
      IKLZWFWLKLZKLWNAVQWQVTWRKAVQBCWBWHKLZNWQABCVPWSABUCCQUDZDEABCDFABCDRZSQZX
      AUEQHXAUGUHGUFZABCEFABCERZSQZXDUEQJXDUGUHIUFZUIURABCWBWHTWTDXCUJZABCWBRSQ
      ZBCWDRSQZAXBXHXIUDHABCDXCUKULZUMZWTEXFUJZABCWHRSQZBCWJRSQZAXEXMXNUDJABCEX
      FUKULZUMZXGXLUNUOAVTOWEWKKLZPLWRAVSXQOPAVSBCWDWJKLZNXQABCVRXRWTDEXCXFUPUR
      ABCWDWJTWTDXCUSZAXHXIXJUQZWTEXFUSZAXMXNXOUQZXSYAUNUOUTAOWEWKOVIQZAVAVBABC
      WDTXSXTVCZABCWJTYAYBVCZVDUOVEAWCWIWFWLABCWBTXGXKVCABCWHTXLXPVCAYCWEVIQWFV
      IQVAYDOWEVFVGAYCWKVIQWLVIQVAYEOWKVFVGVHUOABCVOVJWTDEKVKABCDEFGHIJVLVMAWOW
      GWPWMKABCDFGHVMABCEFIJVMVEVN $.

    $( Subtract two integrals over the same domain.  (Contributed by Mario
       Carneiro, 25-Aug-2014.) $)
    itgsub $p |- ( ph -> S. A ( B - C ) _d x =
      ( S. A B _d x - S. A C _d x ) ) $=
      ( cneg caddc co citg cmin cmpt cibl wcel cmbf iblmbf cc syl negcld iblneg
      mbfmptcl cv wa itgadd itgneg oveq2d eqtr4d negsubd itgeq2dv itgcl 3eqtr3d
      ) ABCDEKZLMZNZBCDNZBCENZKZLMZBCDEOMZNUSUTOMAURUSBCUPNZLMVBABCDUPUAABCDFAB
      CDPZQRVESRHVETUBGUEZHABUFCRUGZEABCEFABCEPZQRVHSRJVHTUBIUEZUCABCEFIJUDUHAV
      AVDUSLABCEFIJUIUJUKABCUQVCVGDEVFVIULUMAUSUTABCDFGHUNABCEFIJUNULUO $.
  $}

  ${
    $d k m t w x y z A $.  $d k m t w x y z B $.  $d k m t w x y z ph $.
    $d m t w y z C $.
    itgfsum.1 $e |- ( ph -> A e. dom vol ) $.
    itgfsum.2 $e |- ( ph -> B e. Fin ) $.
    itgfsum.3 $e |- ( ( ph /\ ( x e. A /\ k e. B ) ) -> C e. V ) $.
    itgfsum.4 $e |- ( ( ph /\ k e. B ) -> ( x e. A |-> C ) e. L^1 ) $.
    $( Take a finite sum of integrals over the same domain.  (Contributed by
       Mario Carneiro, 24-Aug-2014.) $)
    itgfsum $p |- ( ph -> ( ( x e. A |-> sum_ k e. B C ) e. L^1 /\
      S. A sum_ k e. B C _d x = sum_ k e. B S. A C _d x ) ) $=
      ( vy vm csu cibl wcel citg wceq wa adantr vt vw vz wss cmpt ssid wi cv c0
      cfn cc0 csn cxp cun sseq1 sumeq1 syl6eq mpteq2dv fconstmpt syl6eqr eleq1d
      sum0 anbi1d itgz itgeq2dv 3eqtr4a biantrud bitr4d imbi12d eqeq12d anbi12d
      imbi2d weq cvol cdm ibl0 syl a1d wn ssun1 sstr mpan imim1i csb caddc nfcv
      co nfcsb1v csbeq1a cbvsumi simprl disjsn sylibr eqidd simprr ssfi syl2anc
      cin cc simplrr sselda wral cmbf anass1rs mbfmptcl an32s ralrimiva adantlr
      iblmbf nfel1 cbvral sylib r19.21bi syldan fsumsplit cvv vex unssbd csbeq1
      snss rspcv sylc sumsn sylancr oveq2d syl5eq mpteq2dva nfov oveq12d cbvmpt
      eqtrd a1i syl5eqelr nfv cbvitg 3eqtr4g itgcl itgeq2 mprg a2d mpteq2i elex
      sumex csbex eqtri nfmpt ibladd eqeltrd itgadd oveq12i nfitg eqcomd eqtr4d
      3eqtr3g 3eqtr4d jca ex expr syl5 expcom adantl findcard2s mpcom mpi ) ADD
      UDZBCDEFNZUEZOPZBCUVFQZDBCEQZFNZRZSZDUFDUJPZAUVEUVMUGZIAUAUHZDUDZBCUVPEFN
      ZUEZOPZBCUVRQZUVPUVJFNZRZSZUGZUGAUIDUDZCUKULUMZOPZUGZUGAUBUHZDUDZBCUWJEFN
      ZUEZOPZBCUWLQZUWJUVJFNZRZSZUGZUGAUWJUCUHZULZUNZDUDZBCUXBEFNZUEZOPZBCUXDQZ
      UXBUVJFNZRZSZUGZUGAUVOUGUAUBUCDUVPUIRZUWEUWIAUXLUVQUWFUWDUWHUVPUIDUOUXLUW
      DUWHUWCSUWHUXLUVTUWHUWCUXLUVSUWGOUXLUVSBCUKUEUWGUXLBCUVRUKUXLUVRUIEFNUKUV
      PUIEFUPEFVBUQZURBCUKUSUTVAVCUXLUWCUWHUXLBCUKQUKUWAUWBBCVDUXLBCUVRUKUXLUVR
      UKRBUHCPZUXMTVEUXLUWBUIUVJFNUKUVPUIUVJFUPUVJFVBUQVFVGVHVIVLUAUBVMZUWEUWSA
      UXOUVQUWKUWDUWRUVPUWJDUOUXOUVTUWNUWCUWQUXOUVSUWMOUXOBCUVRUWLUVPUWJEFUPZUR
      VAUXOUWAUWOUWBUWPUXOBCUVRUWLUXOUVRUWLRUXNUXPTVEUVPUWJUVJFUPVJVKVIVLUVPUXB
      RZUWEUXKAUXQUVQUXCUWDUXJUVPUXBDUOUXQUVTUXFUWCUXIUXQUVSUXEOUXQBCUVRUXDUVPU
      XBEFUPZURVAUXQUWAUXGUWBUXHUXQBCUVRUXDUXQUVRUXDRUXNUXRTVEUVPUXBUVJFUPVJVKV
      IVLUVPDRZUWEUVOAUXSUVQUVEUWDUVMUVPDDUOUXSUVTUVHUWCUVLUXSUVSUVGOUXSBCUVRUV
      FUVPDEFUPZURVAUXSUWAUVIUWBUVKUXSBCUVRUVFUXSUVRUVFRUXNUXTTVEUVPDUVJFUPVJVK
      VIVLAUWHUWFACVNVOPUWHHCVPVQVRUWJUJPZUWTUWJPVSZSAUWSUXKUYBAUWSUXKUGZUGUYAA
      UYBUYCUWSUXCUWRUGAUYBSZUXKUXCUWKUWRUWJUXBUDUXCUWKUWJUXAVTUWJUXBDWAWBWCUYD
      UXCUWRUXJAUYBUXCUWRUXJUGAUYBUXCSZSZUWRUXJUYFUWRSZUXFUXIUYGUXELCBLUHZUWJFM
      UHZEWDZMNZWDZBUYHFUWTEWDZWDZWEWGZUEZOUYFUXEUYPRUWRUYFUXEBCUYKUYMWEWGZUEUY
      PUYFBCUXDUYQUYFUXNSZUXDUXBUYJMNZUYQUXBEUYJFMMEWFZFUYIEWHZFUYIEWIZWJZUYRUY
      SUYKUXAUYJMNZWEWGUYQUYRUWJUXAUYJUXBMUYFUWJUXAWRUIRZUXNUYFUYBVUEAUYBUXCWKU
      WJUWTWLWMZTUYRUXBWNUYFUXBUJPZUXNUYFUVNUXCVUGAUVNUYEITAUYBUXCWOZDUXBWPWQZT
      UYRUYIUXBPZUYIDPZUYJWSPZUYRUXBDUYIAUYBUXCUXNWTXAUYRVULMDUYREWSPZFDXBZVULM
      DXBZAUXNVUNUYEAUXNSVUMFDAFUHDPZUXNVUMAVUPSZBCEGVUQBCEUEZOPZVURXCPKVURXIVQ
      AUXNVUPEGPJXDXEXFXGXHVUMVULFMDMEWSUYTXJFUYJWSVUAXJFMVMZEUYJWSVUBVAXKXLZXM
      ZXNXOUYRVUDUYMUYKWEUYRUWTXPPZUYMWSPZVUDUYMRUCXQZUYRUWTDPZVUOVVDUYFVVFUXNU
      YFUXADUDVVFUYFUWJUXADVUHXRUWTDVVEXTWMZTVVAVULVVDMUWTDMUCVMZUYJUYMWSFUYIUW
      TEXSZVAYAYBZUYJUYMMUWTXPVVIYCYDYEYKZYFYGBLCUYQUYOLUYQWFZBUYLUYNWEBUYHUYKW
      HZBWEWFBUYHUYMWHZYHZBLVMZUYKUYLUYMUYNWEBUYHUYKWIZBUYHUYMWIZYIZYJUQTUYGLCU
      YLUYNXPUYLXPPUYGUYHCPSBUYHUYKUWJUYJMUUCUUDYLZUYGLCUYLUEZUWMOUWMBCUYKUEVWA
      BCUWLUYKUWJEUYJFMUYTVUAVUBWJZUUABLCUYKUYLLUYKWFZVVMVVQYJUUEUYFUWNUWQWKYMZ
      UYGUYNXPPZLCUYGUYMXPPZBCXBZVWELCXBUYFVWGUWRUYFVWFBCUYRVVDVWFVVJUYMWSUUBVQ
      XGTVWFVWEBLCVWFLYNBUYNXPVVNXJVVPUYMUYNXPVVRVAXKXLXMZUYFLCUYNUEZOPUWRUYFVW
      IBCUYMUEZOBLCUYMUYNLUYMWFZVVNVVRYJUYFVVFBCUYJUEZOPZMDXBZVWJOPZVVGAVWNUYEA
      VUSFDXBVWNAVUSFDKXGVUSVWMFMDVUSMYNFVWLOFBCUYJFCWFZVUAUUFXJVUTVURVWLOVUTBC
      EUYJVUBURVAXKXLTZVWMVWOMUWTDVVHVWLVWJOVVHBCUYJUYMVVIURVAYAYBZYMTZUUGUUHUY
      GBCUYSQZUXBBCUYJQZMNZUXGUXHUYGBCUYQQZBCUYKQZBCUYMQZWEWGZVWTVXBUYGLCUYOQLC
      UYLQZLCUYNQZWEWGVXCVXFUYGLCUYLUYNXPVVTVWDVWHVWSUUIBLCUYQUYOVVSVVLVVOYOVXD
      VXGVXEVXHWEBLCUYKUYLVVQVWCVVMYOBLCUYMUYNVVRVWKVVNYOUUJYPUYFVWTVXCRUWRUYFB
      CUYSUYQVVKVETUYGVXBUWJVXAMNZUXAVXAMNZWEWGZVXFUYFVXBVXKRUWRUYFUWJUXAVXAUXB
      MVUFUYFUXBWNVUIUYFVUJVUKVXAWSPUYFUXBDUYIVUHXAUYFVUKSBCUYJWSUYFUXNVUKVULVV
      BXFUYFVWMMDVWQXMYQXNXOTUYGVXDVXIVXEVXJWEUYGUWOUWPVXDVXIUYFUWNUWQWOUWLUYKR
      ZUWOVXDRBCBCUWLUYKYRVXLUXNVWBYLYSUWJUVJVXAFMMUVJWFZBFCUYJVWPVUAUUKZVUTBCE
      UYJVUTEUYJRUXNVUBTVEZWJUUNUYGVXJVXEUYGVVCVXEWSPZVXJVXERVVEUYFVXPUWRUYFBCU
      YMWSVVJVWRYQTVXAVXEMUWTXPVVHBCUYJUYMVVHUYJUYMRUXNVVITVEYCYDUULYIUUMUUOUXD
      UYSRZUXGVWTRBCBCUXDUYSYRVXQUXNVUCYLYSUXBUVJVXAFMVXMVXNVXOWJYPUUPUUQUURYTU
      USUUTUVAYTUVBUVCUVD $.
  $}

  ${
    $d x y A $.  $d y B $.  $d y F $.  $d x ph $.
    iblabs.1 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    iblabs.2 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    ${
      iblabs.3 $e |- G = ( x e. RR |->
        if ( x e. A , ( abs ` ( F ` B ) ) , 0 ) ) $.
      iblabs.4 $e |- ( ph -> ( x e. A |-> ( F ` B ) ) e. L^1 ) $.
      iblabs.5 $e |- ( ( ph /\ x e. A ) -> ( F ` B ) e. RR ) $.
      $( Lemma for ~ iblabs .  (Contributed by Mario Carneiro, 25-Aug-2014.) $)
      iblabslem $p |- ( ph -> ( G e. MblFn /\ ( S.2 ` G ) e. RR ) ) $=
        ( wcel cr cabs cc0 cmpt cc co caddc cmbf citg2 cfv cif cvol cdm wss cle
        vy cv wbr wa cneg cibl w3a iblrelem mpbid simp1d mbfdm2 mblss syl rembl
        a1i wceq iftrue adantl recnd abscld eqeltrd cdif wn eldifn iffalse ccom
        eqidd absf feqmptd fveq2 fmptco mpteq2ia syl6reqr ccncf fmptd ax-resscn
        wf eqid ssid cncfss mp2an abscncf sselii cncombf syl3anc mbfss syl5eqel
        cof cvv cpnf cico reex ifan ifcl sylancl max1 sylancr elrege0 0e0icopnf
        sylanbrc ifclda adantr renegcld offval2 oveq12i max0add oveq12d 3eqtr4d
        ex 00id 3eqtr4a pm2.61d1 syl5eq mpteq2dv eqtrd fveq2d ibar ifbid mbfpos
        0re syl5eqelr simp2d mbfneg simp3d itg2add readdcld jca ) AFUAMFUBUCZNM
        AFBNBUJZCMZDEUCZOUCZPUDZQZUAJABCNUUANACUEUFZMCNUGABCYSNABCYSQZUAMZBNYRP
        YSUHUKZULZYSPUDZQZUBUCZNMZBNYRPYSUMZUHUKZULZUULPUDZQZUBUCZNMZAUUDUNMUUE
        UUKUURUOKABCYSLUPUQZURZLUSCUTVAZNUUCMAVBVCZAYRULZUUAYTNYRUUAYTVDAYRYTPV
        EZVFZUVCYSUVCYSLVGZVHVIAYQNCVJMZULZYRVKZUUAPVDUVGUVIAYQNCVLVFZYRYTPVMZV
        AABCUUAQZOUUDVNZUAAUVMBCYTQUVLABUICRYSUIUJZOUCYTUUDOUVFAUUDVOAUIRNORNOW
        EAVPVCVQUVNYSOVRVSBCUUAYTUVDVTWAAUUECRUUDWEORRWBSZMZUVMUAMUUTABCYSRUUDU
        VFUUDWFWCUVPARNWBSZUVOONRUGRRUGUVQUVOUGWDRWGRNRWHWIWJWKVCCRUUDOWLWMVIWN
        WOAYPUUJUUQTSZNAYPUUIUUPTWPSZUBUCUVRAFUVSUBAUVSUUBFAUVSBNUUHUUOTSZQUUBA
        BNUUHUUOTUUIUUPWQPWRWSSZUWANWQMAWTVCAUUHUWAMZYQNMZAUUHYRUUFYSPUDZPUDZUW
        AYRUUFYSPXAZAYRUWDPUWAUVCUWDNMZPUWDUHUKZUWDUWAMUVCYSNMZPNMZUWGLYHUUFYSP
        NXBXCUVCUWJUWIUWHYHLPYSXDXEUWDXFXHPUWAMAUVIULXGVCZXIWOZXJZAUUOUWAMZUWCA
        UUOYRUUMUULPUDZPUDZUWAYRUUMUULPXAZAYRUWOPUWAUVCUWONMZPUWOUHUKZUWOUWAMUV
        CUULNMZUWJUWRUVCYSLXKZYHUUMUULPNXBXCUVCUWJUWTUWSYHUXAPUULXDXEUWOXFXHUWK
        XIWOZXJZAUUIVOAUUPVOXLABNUVTUUAAUVTUWEUWPTSZUUAUUHUWEUUOUWPTUWFUWQXMAYR
        UXDUUAVDZAYRUXEUVCUWDUWOTSZYTUXDUUAUVCUWIUXFYTVDLYSXNVAUVCUWEUWDUWPUWOT
        YRUWEUWDVDAYRUWDPVEVFYRUWPUWOVDAYRUWOPVEVFXOUVEXPXQUVIPPTSPUXDUUAXRUVIU
        WEPUWPPTYRUWDPVMZYRUWOPVMZXOUVKXSXTYAYBYCJWAYDAUUIUUPABCNUUHUWAUVAUVBAU
        WBYRUWLXJUVHUVIUUHPVDUVJUVIUUHUWEPUWFUXGYAVAABCUUHQBCUWDQUABCUWDUUHYRUU
        FUUGYSPYRUUFYEYFVTABCYSLUUTYGYIWNABNUUHUWAUUIUWMUUIWFWCAUUEUUKUURUUSYJZ
        ABCNUUOUWAUVAUVBAUWNYRUXBXJUVHUVIUUOPVDUVJUVIUUOUWPPUWQUXHYAVAABCUUOQBC
        UWOQUABCUWOUUOYRUUMUUNUULPYRUUMYEYFVTABCUULUXAABCYSNLUUTYKYGYIWNABNUUOU
        WAUUPUXCUUPWFWCAUUEUUKUURUUSYLZYMYCAUUJUUQUXIUXJYNVIYO $.
    $}

    $( The absolute value of an integrable function is integrable.
       (Contributed by Mario Carneiro, 25-Aug-2014.) $)
    iblabs $p |- ( ph -> ( x e. A |-> ( abs ` B ) ) e. L^1 ) $=
      ( cabs cfv cmpt wcel cmbf cr cc0 citg2 cc co caddc cle wbr vy cibl cv cif
      ccom iblmbf syl mbfmptcl eqidd wf absf a1i feqmptd fveq2 ccncf eqid fmptd
      fmptco wss ax-resscn cncfss mp2an abscncf sselii cncombf syl3anc eqeltrrd
      ssid cpnf cicc cre cim wa abscld rexrd absge0d elxrge0 sylanbrc 0e0iccpnf
      cxr ifclda adantr cof cvv cico reex recld recnd elrege0 0e0icopnf offval2
      wn imcld wceq iftrue oveq12d 00id iffalse 3eqtr4a pm2.61i mpteq2i syl6req
      eqtr4d fveq2d iblcn mpbid simpld iblabslem itg2add eqtrd readdcld eqeltrd
      simprd cofr addge0d wral cmul ax-icn mulcl sylancr abstrid replimd absmul
      ci c1 absi oveq1i mulid2d syl5eq eqtr2d oveq2d 3brtr4d adantl ex pm2.61d1
      0le0 ralrimivw ofrfval2 mpbird itg2le itg2lecl iblpos mpbir2and ) ABCDHIZ
      JZUBKUUELKBMBUCZCKZUUDNUDZJZOIZMKZAHBCDJZUEZUUELABUACPDUAUCZHIUUDUULHABCD
      EAUULUBKZUULLKZGUULUFUGZFUHZAUULUIAUAPMHPMHUJAUKULUMUUNDHUNURAUUPCPUULUJH
      PPUOQZKZUUMLKUUQABCDPUULUURUULUPUQUUTAPMUOQZUUSHMPUSPPUSUVAUUSUSUTPVHPMPV
      AVBVCVDULCPUULHVEVFVGAMNVIVJQZUUIUJZBMUUGDVKIZHIZDVLIZHIZRQZNUDZJZOIZMKUU
      JUVKSTZUUKABMUUHUVBUUIAUUHUVBKUUFMKZAUUGUUDNUVBAUUGVMZUUDVTKNUUDSTUUDUVBK
      UVNUUDUVNDUURVNZVOUVNDUURVPZUUDVQVRNUVBKAUUGWLZVMZVSULZWAWBZUUIUPUQZAUVKB
      MUUGUVENUDZJZOIZBMUUGUVGNUDZJZOIZRQZMAUVKUWCUWFRWCQZOIUWHAUVJUWIOAUWIBMUW
      BUWERQZJUVJABMUWBUWERUWCUWFWDNVIWEQZUWKMWDKAWFULZAUWBUWKKUVMAUUGUVENUWKUV
      NUVEMKNUVESTUVEUWKKUVNUVDUVNUVDUVNDUURWGZWHZVNZUVNUVDUWNVPZUVEWIVRNUWKKUV
      RWJULZWAWBZAUWEUWKKUVMAUUGUVGNUWKUVNUVGMKNUVGSTUVGUWKKUVNUVFUVNUVFUVNDUUR
      WMZWHZVNZUVNUVFUWTVPZUVGWIVRUWQWAWBZAUWCUIAUWFUIWKBMUWJUVIUUGUWJUVIWNUUGU
      WJUVHUVIUUGUWBUVEUWEUVGRUUGUVENWOUUGUVGNWOWPUUGUVHNWOZXCUVQNNRQNUWJUVIWQU
      VQUWBNUWENRUUGUVENWRUUGUVGNWRWPUUGUVHNWRZWSWTXAXBXDAUWCUWFAUWCLKZUWDMKZAB
      CDVKUWCEFGUWCUPZABCUVDJUBKZBCUVFJUBKZAUUOUXIUXJVMGABCDUURXEXFZXGUWMXHZXGA
      BMUWBUWKUWCUWRUXHUQAUXFUXGUXLXMZAUWFLKZUWGMKZABCDVLUWFEFGUWFUPZAUXIUXJUXK
      XMUWSXHZXGABMUWEUWKUWFUXCUXPUQAUXNUXOUXQXMZXIXJAUWDUWGUXMUXRXKXLAUVCMUVBU
      VJUJUUIUVJSXNTZUVLUWAABMUVIUVBUVJAUVIUVBKUVMAUUGUVHNUVBUVNUVHVTKNUVHSTUVH
      UVBKUVNUVHUVNUVEUVGUWOUXAXKVOUVNUVEUVGUWOUXAUWPUXBXOUVHVQVRUVSWAWBZUVJUPU
      QAUXSUUHUVISTZBMXPAUYABMAUUGUYAAUUGUYAUVNUUDUVHUUHUVISUVNUVDYDUVFXQQZRQZH
      IUVEUYBHIZRQUUDUVHSUVNUVDUYBUWNUVNYDPKZUVFPKZUYBPKXRUWTYDUVFXSXTYAUVNDUYC
      HUVNDUURYBXDUVNUVGUYDUVERUVNUYDYDHIZUVGXQQZUVGUVNUYEUYFUYDUYHWNXRUWTYDUVF
      YCXTUVNUYHYEUVGXQQUVGUYGYEUVGXQYFYGUVNUVGUVNUVGUXAWHYHYIYJYKYLUUGUUHUUDWN
      AUUGUUDNWOYMUUGUVIUVHWNAUXDYMYLYNUVQNNUUHUVISNNSTUVQYPULUUGUUDNWRUXEYLYOY
      QABMUUHUVISUUIUVJWDUVBUVBUWLUVTUXTAUUIUIAUVJUIYRYSUUIUVJYTVFUVKUUIUUAVFAB
      CUUDUVOUVPUUBUUC $.
  $}

  ${
    $d k x A $.  $d k B $.  $d k x ph $.  $d x V $.
    iblabsr.1 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    iblabsr.2 $e |- ( ph -> ( x e. A |-> B ) e. MblFn ) $.
    iblabsr.3 $e |- ( ph -> ( x e. A |-> ( abs ` B ) ) e. L^1 ) $.
    $( A measurable function is integrable iff its absolute value is
       integrable.  (See ~ iblabs for the forward implication.)  (Contributed
       by Mario Carneiro, 25-Aug-2014.) $)
    iblabsr $p |- ( ph -> ( x e. A |-> B ) e. L^1 ) $=
      ( vk wcel cr cc0 ci co cfv cle wbr wa adantr c1 cmpt cibl cmbf cv cre cif
      cexp cdiv citg2 c3 cfz wral cpnf cicc wf cabs ifan cc mbfmptcl adantlr cz
      cxr elfzelz ad2antlr wne ax-icn ine0 expclz mp3an12 syl expne0i recld 0re
      divcld ifcl sylancl max1 sylancr elxrge0 sylanbrc wn 0e0iccpnf a1i ifclda
      rexrd syl5eqel eqid fmptd abscld absge0d iblpos mpbid simprd cofr absdivd
      releabsd cn0 wceq absexp absi oveq1i 1exp syl5eq eqtrd oveq2d recnd div1d
      elfznn0 3eqtrd breqtrd breq1 ifboth syl2anc iftrue adantl 3brtr4d ex 0le0
      iffalse pm2.61d1 syl5eqbr ralrimivw cvv reex eqidd ofrfval2 mpbird itg2le
      syl3anc itg2lecl ralrimiva isibl2 mpbir2and ) ABCDUAZUBJYNUCJBKBUDZCJZLDM
      IUDZUGNZUHNZUEOZPQZRYTLUFZUAZUIOZKJZILUJUKNZULGAUUEIUUFAYQUUFJZRZKLUMUNNZ
      UUCUOZBKYPDUPOZLUFZUAZUIOZKJZUUDUUNPQZUUEUUHBKUUBUUIUUCUUHUUBUUIJYOKJZUUH
      UUBYPUUAYTLUFZLUFZUUIYPUUAYTLUQZUUHYPUURLUUIUUHYPRZUURVBJLUURPQZUURUUIJUV
      AUURUVAYTKJZLKJZUURKJUVAYSUVADYRAYPDURJUUGABCDEGFUSZUTZUVAYQVAJZYRURJZUUG
      UVGAYPYQLUJVCVDZMURJZMLVEZUVGUVHVFVGMYQVHVIVJZUVAUVGYRLVEZUVIUVJUVKUVGUVM
      VFVGMYQVKVIVJZVNZVLZVMUUAYTLKVOVPWEUVAUVDUVCUVBVMUVPLYTVQVRUURVSVTLUUIJZU
      UHYPWAZRWBWCZWDWFSZUUCWGWHZAUUOUUGABCUUKUAZUCJZUUOAUWBUBJUWCUUORHABCUUKAY
      PRZDUVEWIZUWDDUVEWJZWKWLWMSUUHUUJKUUIUUMUOZUUCUUMPWNQZUUPUWAAUWGUUGABKUUL
      UUIUUMAUULUUIJZUUQAYPUUKLUUIUWDUUKVBJZLUUKPQZUUKUUIJZUWDUUKUWEWEZUWFUUKVS
      ZVTUVQAUVRRWBWCWDSUUMWGWHSUUHUWHUUBUULPQZBKULUUHUWOBKUUHUUBUUSUULPUUTUUHY
      PUUSUULPQZUUHYPUWPUVAUURUUKUUSUULPUVAYTUUKPQZUWKUURUUKPQZUVAYTYSUPOZUUKPU
      VAYSUVOWPUVAUWSUUKYRUPOZUHNUUKTUHNUUKUVADYRUVFUVLUVNWOUVAUWTTUUKUHUVAUWTM
      UPOZYQUGNZTUVAUVJYQWQJZUWTUXBWRVFUUGUXCAYPYQUJXHVDMYQWSVRUVAUXBTYQUGNZTUX
      ATYQUGWTXAUVAUVGUXDTWRUVIYQXBVJXCXDXEUVAUUKAYPUUKURJUUGUWDUUKUWEXFUTXGXIX
      JUVADUVFWJZUUAUWQUWKUWRYTLYTUURUUKPXKLUURUUKPXKXLXMYPUUSUURWRUUHYPUURLXNX
      OYPUULUUKWRUUHYPUUKLXNXOXPXQUVRLLUUSUULPLLPQUVRXRWCYPUURLXSYPUUKLXSXPXTYA
      YBUUHBKUUBUULPUUCUUMYCUUIUUIKYCJUUHYDWCUVTUUHUWIUUQUUHYPUUKLUUIUVAUWJUWKU
      WLAYPUWJUUGUWMUTUXEUWNVTUVSWDSUUHUUCYEUUHUUMYEYFYGUUCUUMYHYIUUNUUCYJYIYKA
      BCDYTIUUCEAUUCYEUWDYTYEFYLYM $.
  $}

  ${
    $d k x A $.  $d k B $.  $d k x C $.  $d k x ph $.  $d x V $.
    itgmulc2.1 $e |- ( ph -> C e. CC ) $.
    itgmulc2.2 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    itgmulc2.3 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    $( Multiply an integral by a constant.  (Contributed by Mario Carneiro,
       25-Aug-2014.) $)
    iblmulc2 $p |- ( ph -> ( x e. A |-> ( C x. B ) ) e. L^1 ) $=
      ( cmul co cmpt wcel cr cc0 ci cfv cle wbr wa vk cibl cmbf cv cexp cre cif
      cdiv citg2 c3 cfz wral iblmbf syl mbfmulc2 cpnf cicc cabs ifan cxr adantr
      wf cc mbfmptcl mulcld adantlr cz elfzelz ad2antlr wne ax-icn ine0 mp3an12
      expclz expne0i recld 0re ifcl sylancl rexrd max1 sylancr elxrge0 sylanbrc
      divcld 0e0iccpnf a1i ifclda syl5eqel eqid fmptd csn cxp cof cvv cico reex
      wn abscld absge0d elrege0 0e0icopnf fconstmpt eqidd offval2 ovif2 absmuld
      wceq ifeq1da recnd mul01d ifeq2d eqtr3d syl5eq eqtrd fveq2d iblabs iblpos
      mpteq2dv mpbid simprd abscl absge0 itg2mulc remulcld eqeltrd cofr absdivd
      releabsd c1 cn0 elfznn0 absexp absi iftrue adantl 3brtr4d iffalse syl3anc
      breq1 oveq1i oveq2d div1d 3eqtrd breqtrd ifboth syl2anc pm2.61d1 syl5eqbr
      1exp ralrimivw ofrfval2 mpbird itg2le itg2lecl ralrimiva isibl2 mpbir2and
      ex 0le0 ) ABCEDJKZLZUBMUVBUCMBNBUDZCMZOUVAPUAUDZUEKZUHKZUFQZRSZTUVHOUGZLZ
      UIQZNMZUAOUJUKKZULABCDEFGHABCDLZUBMUVOUCMIUVOUMUNZUOAUVMUAUVNAUVEUVNMZTZN
      OUPUQKZUVKVBZBNUVDUVAURQZOUGZLZUIQZNMZUVLUWDRSZUVMUVRBNUVJUVSUVKUVRUVCNMZ
      TUVJUVDUVIUVHOUGZOUGZUVSUVDUVIUVHOUSZUVRUWIUVSMUWGUVRUVDUWHOUVSUVRUVDTZUW
      HUTMOUWHRSZUWHUVSMUWKUWHUWKUVHNMZONMZUWHNMUWKUVGUWKUVAUVFAUVDUVAVCMUVQAUV
      DTZEDAEVCMZUVDGVAZABCDFUVPHVDZVEZVFZUWKUVEVGMZUVFVCMZUVQUXAAUVDUVEOUJVHVI
      ZPVCMZPOVJZUXAUXBVKVLPUVEVNVMUNZUWKUXAUVFOVJZUXCUXDUXEUXAUXGVKVLPUVEVOVMU
      NZWEZVPZVQUVIUVHONVRVSVTUWKUWNUWMUWLVQUXJOUVHWAWBUWHWCWDOUVSMZUVRUVDWRZTW
      FWGWHVAWIZUVKWJWKZAUWEUVQAUWDEURQZBNUVDDURQZOUGZLZUIQZJKZNANUXOWLWMZUXRJW
      NKZUIQUWDUXTAUYBUWCUIAUYBBNUXOUXQJKZLUWCABNUXOUXQJUYAUXRWONOUPWPKZNWOMZAW
      QWGAUXONMZUWGAEGWSZVAAUXQUYDMUWGAUVDUXPOUYDUWOUXPNMOUXPRSUXPUYDMUWODUWRWS
      ZUWODUWRWTZUXPXAWDOUYDMAUXLTZXBWGWHVAZUYABNUXOLXHABNUXOXCWGAUXRXDXEABNUYC
      UWBAUYCUVDUXOUXPJKZUXOOJKZUGZUWBUVDUXOUXPOJXFAUVDUWAUYMUGUYNUWBAUVDUWAUYL
      UYMUWOEDUWQUWRXGXIAUVDUYMOUWAAUXOAUXOUYGXJXKXLXMXNXSXOXPAUXOUXRABNUXQUYDU
      XRUYKUXRWJWKABCUXPLZUCMZUXSNMZAUYOUBMUYPUYQTABCDFHIXQABCUXPUYHUYIXRXTYAZA
      UWPUXOUYDMZGUWPUYFOUXORSUYSEYBEYCUXOXAWDUNYDXMAUXOUXSUYGUYRYEYFVAUVRUVTNU
      VSUWCVBZUVKUWCRYGSZUWFUXNAUYTUVQABNUWBUVSUWCAUWBUVSMZUWGAUVDUWAOUVSUWOUWA
      UTMOUWARSZUWAUVSMUWOUWAUWOUVAUWSWSZVTUWOUVAUWSWTZUWAWCWDUXKUYJWFWGWHVAZUW
      CWJWKVAUVRVUAUVJUWBRSZBNULUVRVUGBNUVRUVJUWIUWBRUWJUVRUVDUWIUWBRSZUVRUVDVU
      HUWKUWHUWAUWIUWBRUWKUVHUWARSZVUCUWHUWARSZUWKUVHUVGURQZUWARUWKUVGUXIYIUWKV
      UKUWAUVFURQZUHKUWAYJUHKUWAUWKUVAUVFUWTUXFUXHYHUWKVULYJUWAUHUWKVULPURQZUVE
      UEKZYJUWKUXDUVEYKMZVULVUNXHVKUVQVUOAUVDUVEUJYLVIPUVEYMWBUWKVUNYJUVEUEKZYJ
      VUMYJUVEUEYNUUAUWKUXAVUPYJXHUXCUVEUUJUNXNXOUUBUWKUWAAUVDUWAVCMUVQUWOUWAVU
      DXJVFUUCUUDUUEAUVDVUCUVQVUEVFUVIVUIVUCVUJUVHOUVHUWHUWARYTOUWHUWARYTUUFUUG
      UVDUWIUWHXHUVRUVDUWHOYOYPUVDUWBUWAXHUVRUVDUWAOYOYPYQUUSUXLOOUWIUWBROORSUX
      LUUTWGUVDUWHOYRUVDUWAOYRYQUUHUUIUUKUVRBNUVJUWBRUVKUWCWOUVSUVSUYEUVRWQWGUX
      MAUWGVUBUVQVUFVFUVRUVKXDUVRUWCXDUULUUMUVKUWCUUNYSUWDUVKUUOYSUUPABCUVAUVHU
      AUVKVCAUVKXDUWOUVHXDUWSUUQUUR $.

    ${
      itgmulc2.4 $e |- ( ph -> C e. RR ) $.
      itgmulc2.5 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
      ${
        itgmulc2.6 $e |- ( ph -> 0 <_ C ) $.
        itgmulc2.7 $e |- ( ( ph /\ x e. A ) -> 0 <_ B ) $.
        $( Lemma for ~ itgmulc2 : positive real case.  (Contributed by Mario
           Carneiro, 25-Aug-2014.) $)
        itgmulc2lem1 $p |- ( ph ->
          ( C x. S. A B _d x ) = S. A ( C x. B ) _d x ) $=
          ( cr wcel cc0 cmpt cmul co adantr cif citg2 cfv citg csn cxp cof cpnf
          cv cico wa cle wbr elrege0 sylanbrc wn 0e0icopnf a1i ifclda eqid cmbf
          fmptd cibl iblpos mpbid simprd itg2mulc cvv reex wceq fconstmpt eqidd
          offval2 mul01d ifeq2d syl5eq mpteq2dva fveq2d eqtr3d itgposval oveq2d
          ovif2 eqtrd remulcld iblmulc2 mulge0d 3eqtr4d ) AEBNBUIZCOZDPUAZQZUBU
          CZRSZBNWIEDRSZPUAZQZUBUCZEBCDUDZRSBCWNUDANEUEUFZWKRUGSZUBUCWMWQAEWKAB
          NWJPUHUJSZWKAWJXAOWHNOZAWIDPXAAWIUKZDNOPDULUMDXAOKMDUNUOPXAOAWIUPUKUQ
          URUSTZWKUTVBABCDQZVAOZWLNOZAXEVCOXFXGUKIABCDKMVDVEVFAENOZPEULUMZEXAOJ
          LEUNUOVGAWTWPUBAWTBNEWJRSZQWPABNEWJRWSWKVHNXANVHOAVIURAXHXBJTXDWSBNEQ
          VJABNEVKURAWKVLVMABNXJWOAXBUKZXJWIWNEPRSZUAWOWIEDPRWBXKWIXLPWNAXLPVJX
          BAEGVNTVOVPVQWCVRVSAWRWLERABCDKIMVTWAABCWNXCEDAXHWIJTZKWDABCDEFGHIWEX
          CEDXMKAXIWILTMWFVTWG $.
      $}

      $( Lemma for ~ itgmulc2 : real case.  (Contributed by Mario Carneiro,
         25-Aug-2014.) $)
      itgmulc2lem2 $p |- ( ph ->
        ( C x. S. A B _d x ) = S. A ( C x. B ) _d x ) $=
        ( cmul co citg cc0 cle wbr cmin wcel cr cif cneg cv wceq adantr max0sub
        wa syl oveq1d 0re ifcl sylancl recnd renegcld subdird itgeq2dv remulcld
        cc eqtr3d iblmulc2 itgsub cmpt cibl iblre simpld simprd oveq2d itgreval
        mpbid subdid itgcl sylancr itgmulc2lem1 oveq12d 3eqtr4d 3eqtr2d 3eqtrrd
        max1 3eqtrd ) ABCEDLMZNBCOEPQZEOUAZDLMZOEUBZPQZWDOUAZDLMZRMZNBCWCNZBCWG
        NZRMZEBCDNZLMZABCVTWHABUCCSZUGZWBWFRMZDLMVTWHWOWPEDLWOETSZWPEUDZAWQWNJU
        EEUFZUHUIWOWBWFDAWBURSWNAWBAWQOTSZWBTSZJUJWAEOTUKULZUMZUEZAWFURSWNAWFAW
        DTSZWTWFTSZAEJUNZUJWEWDOTUKULZUMZUEZWODKUMUOUSUPABCWCWGTWOWBDAXAWNXBUEZ
        KUQABCDWBFXCHIUTWOWFDAXFWNXHUEZKUQABCDWFFXIHIUTVAAWKWBWLLMZWFWLLMZRMWPW
        LLMWMAWIXMWJXNRABCWBODPQZDOUAZLMZWBODUBZPQZXROUAZLMZRMZNBCXQNZBCYANZRMZ
        WIXMABCXQYATWOWBXPXKWODTSZWTXPTSKUJXODOTUKULZUQABCXPWBTXCYGABCXPVBVCSZB
        CXTVBVCSZABCDVBVCSYHYIUGIABCDKVDVIZVEZUTWOWBXTXKWOXRTSZWTXTTSWODKUNZUJX
        SXROTUKULZUQABCXTWBTXCYNAYHYIYJVFZUTVAABCWCYBWOWBXPXTRMZLMWCYBWOYPDWBLW
        OYFYPDUDKDUFUHZVGWOWBXPXTXDWOXPYGUMZWOXTYNUMZVJUSUPAXMWBBCXPNZBCXTNZRMZ
        LMWBYTLMZWBUUALMZRMYEAWLUUBWBLABCDKIVHZVGAWBYTUUAXCABCXPTYGYKVKZABCXTTY
        NYOVKZVJAUUCYCUUDYDRABCXPWBTXCYGYKXBYGAWTWQOWBPQUJJOEVRVLZWOWTYFOXPPQUJ
        KODVRVLZVMABCXTWBTXCYNYOXBYNUUHWOWTYLOXTPQUJYMOXRVRVLZVMVNVSVOABCWFXPLM
        ZWFXTLMZRMZNBCUUKNZBCUULNZRMZWJXNABCUUKUULTWOWFXPXLYGUQABCXPWFTXIYGYKUT
        WOWFXTXLYNUQABCXTWFTXIYNYOUTVAABCWGUUMWOWFYPLMWGUUMWOYPDWFLYQVGWOWFXPXT
        XJYRYSVJUSUPAXNWFUUBLMWFYTLMZWFUUALMZRMUUPAWLUUBWFLUUEVGAWFYTUUAXIUUFUU
        GVJAUUQUUNUURUUORABCXPWFTXIYGYKXHYGAWTXEOWFPQUJXGOWDVRVLZUUIVMABCXTWFTX
        IYNYOXHYNUUSUUJVMVNVSVOVNAWBWFWLXCXIABCDFHIVKUOAWPEWLLAWQWRJWSUHUIVPVQ
        $.
    $}

    $( Multiply an integral by a constant.  (Contributed by Mario Carneiro,
       25-Aug-2014.) $)
    itgmulc2 $p |- ( ph -> ( C x. S. A B _d x ) = S. A ( C x. B ) _d x ) $=
      ( cfv ci cmul co caddc citg cc wcel mulcld cr itgcl cre cim cneg cv recld
      wa recnd adantr cmpt cibl iblmbf syl mbfmptcl iblcn mpbid simpld iblmulc2
      ax-icn imcld simprd mulcl sylancr renegcld adddird itgcnval oveq2d adddid
      cmbf add4d itgmulc2lem2 a1i mul12d eqtrd oveq12d 3eqtrd mulassd mul4d ixi
      oveq1i mulm1d syl5eq mulneg1d eqtr3d addcomd cmin negsubd remuld itgeq2dv
      c1 3eqtr4d itgadd immuld replimd oveq1d ) AEUAJZKEUBJZLMZNMZBCDOZLMZBCEDL
      MZUAJZOZKBCXAUBJZOZLMZNMZEWSLMBCXAOABCWODUAJZLMZOZKBCWODUBJZLMZOZLMZNMZBC
      WPUCZXKLMZOZKBCWPXHLMZOZLMZNMZNMZXJXRNMZXNYANMZNMWTXGAXJXNXRYAABCXIPABUDC
      QZUFZWOXHAWOPQYFAWOAEGUEZUGZUHZYGXHYGDABCDFABCDUIZUJQZYKVHQIYKUKULHUMZUEZ
      UGZRZABCXHWOSYIYNABCXHUIUJQZBCXKUIUJQZAYLYQYRUFIABCDYMUNUOZUPZUQZTAKPQZXM
      PQXNPQURABCXLPYGWOXKYJYGXKYGDYMUSZUGZRZABCXKWOSYIUUCAYQYRYSUTZUQZTZKXMVAV
      BABCXQPYGXPXKAXPPQYFAXPAWPAEGUSZVCZUGZUHUUDRZABCXKXPSUUKUUCUUFUQZTZAUUBXT
      PQYAPQURABCXSPYGWPXHAWPPQZYFAWPUUIUGZUHZYORZABCXHWPSUUPYNYTUQZTZKXTVAVBZV
      IAWTWOWSLMZWQWSLMZNMYCAWOWQWSYIAUUBUUOWQPQURUUPKWPVAVBZABCDFHITVDAUVBXOUV
      CYBNAUVBWOBCXHOZKBCXKOZLMZNMZLMWOUVELMZWOUVGLMZNMXOAWSUVHWOLABCDFHIVEZVFA
      WOUVEUVGYIABCXHSYNYTTZAUUBUVFPQUVGPQURABCXKSUUCUUFTZKUVFVAVBZVGAUVIXJUVJX
      NNABCXHWOSYIYNYTYHYNVJAUVJKWOUVFLMZLMXNAWOKUVFYIUUBAURVKZUVMVLAUVOXMKLABC
      XKWOSYIUUCUUFYHUUCVJVFVMVNVOAUVCWQUVHLMWQUVELMZWQUVGLMZNMZYBAWSUVHWQLUVKV
      FAWQUVEUVGUVDUVLUVNVGAUVSYAXRNMYBAUVQYAUVRXRNAUVQKWPUVELMZLMYAAKWPUVEUVPU
      UPUVLVPAUVTXTKLABCXHWPSUUPYNYTUUIYNVJVFVMAUVRKKLMZWPUVFLMZLMZUWBUCZXRAKWP
      KUVFUVPUUPUVPUVMVQAUWCWIUCZUWBLMUWDUWAUWEUWBLVRVSAUWBAWPUVFUUPUVMRVTWAAXP
      UVFLMUWDXRAWPUVFUUPUVMWBABCXKXPSUUKUUCUUFUUJUUCVJWCVOVNAYAXRUVAUUNWDVMVOV
      NVMAXCYDXFYENABCXIXQNMZOXCYDABCUWFXBYGXIWPXKLMZUCZNMXIUWGWEMUWFXBYGXIUWGY
      PYGWPXKUUQUUDRWFYGXQUWHXINYGWPXKUUQUUDWBVFYGEDAEPQYFGUHZYMWGWJWHABCXIXQPY
      PUUAUULUUMWKWCAXFKXMXTNMZLMYEAXEUWJKLAXEBCXLXSNMZOUWJABCXDUWKYGEDUWIYMWLW
      HABCXLXSPUUEUUGUURUUSWKVMVFAKXMXTUVPUUHUUTVGVMVNWJAEWRWSLAEGWMWNABCXAPYGE
      DUWIYMRABCDEFGHIUQVEWJ $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y ph $.  $d x V $.
    itgabs.1 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    itgabs.2 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    $( The triangle inequality for integrals.  (Contributed by Mario Carneiro,
       25-Aug-2014.) $)
    itgabs $p |- ( ph -> ( abs ` S. A B _d x ) <_ S. A ( abs ` B ) _d x ) $=
      ( vy cc0 citg cabs cfv wbr cle cmul co cmpt cibl wcel cc clt wceq ccj csb
      wa cv cre cim itgcl cjcld wral cmbf iblmbf syl mbfmptcl ralrimiva nfcsb1v
      nfel1 csbeq1a eleq1d cbvral sylib r19.21bi nfcv cbvmpt syl5eqelr iblmulc2
      adantr mulcld iblcn mpbid simpld ovexd iblabs recld abscld releabsd itgle
      nfv cvv cexp recnd sqvald absvalsqd mulcomd cbvitg oveq2i itgmulc2 syl5eq
      c2 3eqtrd fveq2d resqcld rered itgre 3eqtr3d eqtr3d nffv cr abscjd oveq1d
      absmuld eqtrd itgeq2dv eqtr4d 3brtr4d wb simpr lemul2 syl112anc mpbird ex
      itgrecl absge0d itgge0 breq1 syl5ibcom wo 0re leloe sylancr mpjaod ) AIBC
      DJZKLZUAMZYDBCDKLZJZNMZIYDUBZAYEYHAYEUEZYHYDYDOPZYDYGOPZNMZAYMYEAHCYCUCLZ
      BHUFZDUDZOPZUGLZJZHCYQKLZJZYKYLNAHCYRYTAHCYRQRSZHCYQUHLQRSZAHCYQQRSUUBUUC
      UEAHCYPYNTAYCABCDEFGUIZUJZAYPTSZHCADTSZBCUKUUFHCUKAUUGBCABCDEABCDQZRSUUHU
      LSGUUHUMUNFUOZUPUUGUUFBHCUUGHVSBYPTBYODUQZURBUFZYOUBZDYPTBYODUSZUTVAVBVCZ
      AHCYPQUUHRBHCDYPHDVDZUUJUUMVEGVFZVGZAHCYQAYOCSZUEZYNYPAYNTSUURUUEVHZUUNVI
      ZVJVKVLAHCYQVTUUSYNYPOVMZUUQVNUUSYQUVAVOUUSYQUVAVPUUSYQUVAVQVRAYDWJWAPZYK
      YSAYDAYDAYCUUDVPZWBZWCAUVCUGLHCYQJZUGLUVCYSAUVCUVFUGAUVCYCYNOPYNYCOPZUVFA
      YCUUDWDAYCYNUUDUUEWEAUVGYNHCYPJZOPUVFYCUVHYNOBHCDYPUUMUUOUUJWFWGAHCYPYNTU
      UEUUNUUPWHWIWKWLAUVCAYDUVDWMWNAHCYQVTUVBUUQWOWPWQAYLYDHCYPKLZJZOPZUUAYGUV
      JYDOBHCYFUVIUULDYPKUUMWLHYFVDBYPKBKVDUUJWRWFWGAUVKHCYDUVIOPZJUUAAHCUVIYDW
      SUVEUUSYPUUNVPAHCYPTUUNUUPVNWHAHCYTUVLUUSYTYNKLZUVIOPUVLUUSYNYPUUTUUNXBUU
      SUVMYDUVIOUUSYCAYCTSUURUUDVHWTXAXCXDXEWIXFVHYJYDWSSZYGWSSZUVNYEYHYMXGAUVN
      YEUVDVHZAUVOYEABCYFAUUKCSUEZDUUIVPZABCDEFGVNZXMVHUVPAYEXHYDYGYDXIXJXKXLAI
      YGNMYIYHABCYFUVSUVRUVQDUUIXNXOIYDYGNXPXQAIYDNMZYEYIXRZAYCUUDXNAIWSSUVNUVT
      UWAXGXSUVDIYDXTYAVKYB $.
  $}

  ${
    $d k x A $.  $d k x B $.  $d k C $.  $d k x ph $.  $d k x U $.  $d x V $.
    itgsplit.i $e |- ( ph -> ( vol* ` ( A i^i B ) ) = 0 ) $.
    itgsplit.u $e |- ( ph -> U = ( A u. B ) ) $.
    itgsplit.c $e |- ( ( ph /\ x e. U ) -> C e. V ) $.
    itgsplit.a $e |- ( ph -> ( x e. A |-> C ) e. L^1 ) $.
    itgsplit.b $e |- ( ph -> ( x e. B |-> C ) e. L^1 ) $.
    $( The ` S. ` integral splits under an almost disjoint union.  (Contributed
       by Mario Carneiro, 11-Aug-2014.) $)
    itgsplit $p |- ( ph -> S. U C _d x = ( S. A C _d x + S. B C _d x ) ) $=
      ( vk cc0 co cr wcel wa cif adantr c3 cfz ci cv cexp cdiv cre cfv cle cmpt
      wbr citg2 cmul csu caddc citg cvol cdm cibl cmbf iblmbf syl cun syl5sseqr
      ssun1 sselda syldan mbfdm2 ssun2 cin covol wceq cxr cpnf cicc eleq2d elun
      cc wo syl6bb biimpa mbfmptcl jaodan adantlr ax-icn elfznn0 adantl sylancr
      cn0 expcl wne cz elfzelz ine0 expne0i mp3an12 divcld recld 0re ifcl rexrd
      sylancl max1 elxrge0 sylanbrc ifan mpteq2i iblitg sylan2 itg2split oveq2d
      eqidd recnd adddid eqtrd sumeq2dv fzfid mulcld fsumadd eqid dfitg oveq12i
      3eqtr4g ) ANUAUBOZUCMUDZUEOZBPBUDZFQZNEYFUFOZUGUHZUIUKZRYJNSZUJZULUHZUMOZ
      MUNZYDYFBPYGCQZYKRYJNSZUJZULUHZUMOZMUNZYDYFBPYGDQZYKRYJNSZUJZULUHZUMOZMUN
      ZUOOZBFEUPBCEUPZBDEUPZUOOAYPYDUUAUUGUOOZMUNUUIAYDYOUULMAYEYDQZRZYOYFYTUUF
      UOOZUMOUULUUNYNUUOYFUMUUNBCDYKYJNSZFYSUUEYMACUQURZQUUMABCEGABCEUJZUSQUURU
      TQKUURVAVBZAYQYHEGQZACFYGACDVCZCFCDVEIVDVFJVGZVHTADUUQQUUMABDEGABDEUJZUSQ
      UVCUTQLUVCVAVBZAUUCYHUUTADFYGAUVADFDCVIIVDVFJVGZVHTACDVJVKUHNVLUUMHTAFUVA
      VLUUMITUUNYHRZUUPVMQNUUPUIUKZUUPNVNVOOQUVFUUPUVFYJPQZNPQZUUPPQUVFYIUVFEYF
      AYHEVRQZUUMAYHYQUUCVSZUVJAYHUVKAYHYGUVAQUVKAFUVAYGIVPYGCDVQVTWAAYQUVJUUCA
      BCEGUUSUVBWBABDEGUVDUVEWBWCVGWDUUNYFVRQZYHUUNUCVRQZYEWIQZUVLWEUUMUVNAYEUA
      WFWGUCYEWJWHZTUUNYFNWKZYHUUNYEWLQZUVPUUMUVQAYENUAWMZWGUVMUCNWKUVQUVPWEWNU
      CYEWOWPVBTWQWRZWSYKYJNPWTXBXAUVFUVIUVHUVGWSUVSNYJXCWHUUPXDXEBPYRYQUUPNSYQ
      YKYJNXFXGBPUUDUUCUUPNSUUCYKYJNXFXGBPYLYHUUPNSYHYKYJNXFXGUUMAUVQYTPQUVRABC
      EYJYSYEGAYSXLAYQRYJXLKUVBXHZXIUUMAUVQUUFPQUVRABDEYJUUEYEGAUUEXLAUUCRYJXLL
      UVEXHXIZXJXKUUNYFYTUUFUVOUUMAUVQYTVRQUVRAUVQRYTUVTXMXIZUUNUUFUWAXMZXNXOXP
      AYDUUAUUGMANUAXQUUNYFYTUVOUWBXRUUNYFUUFUVOUWCXRXSXOBFEYJMYJXTZYAUUJUUBUUK
      UUHUOBCEYJMUWDYABDEYJMUWDYAYBYC $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x V $.  $d x ph $.
    itgspliticc.1 $e |- ( ph -> A e. RR ) $.
    itgspliticc.2 $e |- ( ph -> C e. RR ) $.
    itgspliticc.3 $e |- ( ph -> B e. ( A [,] C ) ) $.
    itgspliticc.4 $e |- ( ( ph /\ x e. ( A [,] C ) ) -> D e. V ) $.
    itgspliticc.5 $e |- ( ph -> ( x e. ( A [,] B ) |-> D ) e. L^1 ) $.
    itgspliticc.6 $e |- ( ph -> ( x e. ( B [,] C ) |-> D ) e. L^1 ) $.
    $( The ` S. ` integral splits on closed intervals with matching endpoints.
       (Contributed by Mario Carneiro, 13-Aug-2014.) $)
    itgspliticc $p |- ( ph -> S. ( A [,] C ) D _d x =
      ( S. ( A [,] B ) D _d x + S. ( B [,] C ) D _d x ) ) $=
      ( vz cicc co covol cle wcel wceq vy cin cfv csn cc0 wbr cif cxr rexrd w3a
      cr wb elicc2 syl2anc mpbid simp1d df-icc cv xrmaxle ixxin syl22anc simp2d
      xrlemin iftrued simp3d oveq12d iccid syl 3eqtrd fveq2d eqtrd cun iccsplit
      ovolsn syl3anc itgsplit ) ABCDOPZDEOPZFCEOPZGAVQVRUBZQUCDUDZQUCZUEAVTWAQA
      VTCDRUFZDCUGZDERUFZDEUGZOPZDDOPZWAACUHSDUHSZWIEUHSVTWGTACHUIADADUKSZWCWEA
      DVSSZWJWCWEUJZJACUKSZEUKSZWKWLULHICEDUMUNUOZUPZUIZWQAEIUIBUANCDDERROBUANU
      QCDNURZUSWRDEVCUTVAAWDDWFDOAWCDCAWJWCWEWOVBVDAWEDEAWJWCWEWOVEVDVFAWIWHWAT
      WQDVGVHVIVJAWJWBUETWPDVNVHVKAWMWNWKVSVQVRVLTHIJCEDVMVOKLMVP $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.
    itgsplitioo.1 $e |- ( ph -> A e. RR ) $.
    itgsplitioo.2 $e |- ( ph -> C e. RR ) $.
    itgsplitioo.3 $e |- ( ph -> B e. ( A [,] C ) ) $.
    itgsplitioo.4 $e |- ( ( ph /\ x e. ( A (,) C ) ) -> D e. CC ) $.
    itgsplitioo.5 $e |- ( ph -> ( x e. ( A (,) B ) |-> D ) e. L^1 ) $.
    itgsplitioo.6 $e |- ( ph -> ( x e. ( B (,) C ) |-> D ) e. L^1 ) $.
    $( The ` S. ` integral splits on open intervals with matching endpoints.
       (Contributed by Mario Carneiro, 2-Sep-2014.) $)
    itgsplitioo $p |- ( ph -> S. ( A (,) C ) D _d x =
      ( S. ( A (,) B ) D _d x + S. ( B (,) C ) D _d x ) ) $=
      ( cioo co caddc wceq cr wcel cc0 c0 clt wbr citg wn cle wo cicc wb elicc2
      w3a syl2anc mpbid simp2d simp1d leloed ord cc cxr wss rexrd iooss1 sselda
      cv syldan itgcl addid2d eqcomd oveq1 itgeq1 syl iooid syl6eq itg0 eqeq12d
      oveq1d syl5ibrcom simp3d iooss2 addid1d oveq2 syl5eqr oveq2d syl5ibcom wa
      csn cun cin covol cfv indir jca adantr leidd ioodisj syl21anc incom ltnrd
      syld eliooord simpld nsyl disjsn sylibr syl5eq uneq12d un0 fveq2d ioojoin
      ovol0 3jca sylan adantlr cmpt cibl ssun1 ioossre snssd unssd cdif difeq1i
      uncom difun2 eqtri difss eqsstri ovolsn ovolssnul syl3anc syl5sseq itgss3
      a1i itgsplit simprd eqtr4d ex ecased ) ACDUAUBZDEUAUBZBCEMNZFUCZBCDMNZFUC
      ZBDEMNZFUCZONZPZAYQUDCDPZUUFAYQUUGACDUEUBZYQUUGUFADQRZUUHDEUEUBZADCEUGNRZ
      UUIUUHUUJUJZIACQREQRUUKUULUHGHCEDUIUKULZUMZACDGAUUIUUHUUJUUMUNZUOULUPAUUF
      UUGUUDSUUDONZPAUUPUUDAUUDABUUCFUQABVCZUUCRUUQYSRZFUQRZAUUCYSUUQACURRZUUHU
      UCYSUSACGUTZUUNCDEVAUKVBJVDLVEVFVGUUGYTUUDUUEUUPUUGYSUUCPYTUUDPCDEMVHBYSU
      UCFVIVJUUGUUBSUUDOUUGUUBBTFUCZSUUGUUATPUUBUVBPUUGUUADDMNZTCDDMVHDVKZVLBUU
      ATFVIVJBFVMZVLVOVNVPWRAYRUDDEPZUUFAYRUVFAUUJYRUVFUFAUUIUUHUUJUUMVQZADEUUO
      HUOULUPAUUBUUBSONZPUVFUUFAUVHUUBAUUBABUUAFUQAUUQUUARUURUUSAUUAYSUUQAEURRZ
      UUJUUAYSUSAEHUTZUVGCDEVRUKVBJVDKVEVSVGUVFUUBYTUVHUUEUVFUUAYSPUUBYTPDECMVT
      BUUAYSFVIVJUVFSUUDUUBOUVFSUVBUUDUVEUVFTUUCPUVBUUDPUVFTUVCUUCUVDDEDMVTWABT
      UUCFVIVJWAWBVNWCWRAYQYRWDZUUFAUVKWDZYTBUUADWEZWFZFUCZUUDONUUEUVLBUVNUUCFY
      SUQUVLUVNUUCWGZWHWITWHWISUVLUVPTWHUVLUVPUUAUUCWGZUVMUUCWGZWFZTUUAUVMUUCWJ
      UVLUVSTTWFTUVLUVQTUVRTUVLUUTDURRZWDZUVTUVIWDZDDUEUBUVQTPAUWAUVKAUUTUVTUVA
      ADUUOUTZWKWLAUWBUVKAUVTUVIUWCUVJWKWLUVLDAUUIUVKUUOWLZWMCDDEWNWOUVLUVRUUCU
      VMWGZTUVMUUCWPUVLDUUCRZUDUWETPUVLDDUAUBZUWFUVLDUWDWQUWFUWGYRDDEWSWTXAUUCD
      XBXCXDXETXFVLXDXGXIVLUVLUVNUUCWFZYSAUUTUVTUVIUJUVKUWHYSPAUUTUVTUVIUVAUWCU
      VJXJCDEXHXKZVGAUURUUSUVKJXLZUVLBUUAFXMXNRZBUVNFXMXNRZAUWKUVKKWLUVLUWKUWLU
      HZUUBUVOPZUVLBUUAUVNFUUAUVNUSUVLUUAUVMXOYKUVLUUAUVMQUUAQUSUVLCDXPYKUVLDQU
      WDXQZXRUVLUVNUUAXSZUVMUSZUVMQUSUVMWHWISPZUWPWHWISPUWQUVLUWPUVMUUAXSZUVMUW
      PUVMUUAWFZUUAXSUWSUVNUWTUUAUUAUVMYAXTUVMUUAYBYCUVMUUAYDYEYKUWOUVLUUIUWRUW
      DDYFVJUWPUVMYGYHUVLUUQUVNRUURUUSUVLUVNYSUUQUVLUWHUVNYSUVNUUCXOUWIYIVBUWJV
      DYJZWTULABUUCFXMXNRUVKLWLYLUVLUUBUVOUUDOUVLUWMUWNUXAYMVOYNYOYP $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y z F $.  $d x y z G $.
    $( A bounded function times an integrable function is integrable.
       (Contributed by Mario Carneiro, 12-Aug-2014.) $)
    bddmulibl $p |- ( ( F e. MblFn /\ G e. L^1 /\ E. x e. RR A. y e. dom F
      ( abs ` ( F ` y ) ) <_ x ) -> ( F oF x. G ) e. L^1 ) $=
      ( vz cmbf wcel cfv cabs cle wbr cr cmul co wa cmpt cc wf cc0 a1i cibl cdm
      cv wral wrex cof cin cvol wfn mbff ad2antrr ffn syl iblmbf ad2antlr mbfdm
      eqid eqidd offval cvv ovexd simpll mbfmul eqeltrrd cif ccom mbfmptcl absf
      citg2 feqmptd fveq2 fmptco ccncf fmptd wss ax-resscn cncfss mp2an abscncf
      ssid sselii cncombf syl3anc cpnf cicc cxr abscld absge0d elxrge0 sylanbrc
      rexrd wn 0e0iccpnf ifclda adantr c0 wceq csn cxp cico reex simprl simprbi
      elin ffvelrn syl2an elrege0 0e0icopnf fconstmpt ovif2 recnd mul01d ifeq2d
      offval2 syl5eq mpteq2dv eqtrd fveq2d inss2 mbfdm2 ffvelrnda simplr iblabs
      iblss iblpos mpbid simprd simplrl wex neq0 0re simplbi simprr ex remulcld
      eqeltrd iffalse iftrue adantl 3brtr4d breq1d rspccva letrd exlimdv syl5bi
      itg2mulc eqtr3d noel eleq2 mtbiri syl6eqr itg20 eqeltri syl6eqel pm2.61d2
      imp cofr mulge0d absmuld abscl absge0 jca lemul1a syl31anc 0le0 pm2.61dan
      eqbrtrd ralrimivw ofrfval2 mpbird itg2lecl mpbir2and iblabsr rexlimdvaa
      itg2le 3impia ) CFGZDUAGZBUCZCHZIHZAUCZJKZBCUBZUDZALUECDMUFZNZUAGZUVQUVRO
      ZUWEUWHALUWIUWBLGZUWEOZOZUWGEUWDDUBZUGZEUCZCHZUWODHZMNZPZUAUWLEUWDUWMUWPU
      WQMUWNCDUHUBZUWTUWLUWDQCRZCUWDUIUVQUXAUVRUWKCUJUKZUWDQCULUMUWLUWMQDRZDUWM
      UIUWLDFGZUXCUVRUXDUVQUWKDUNUOZDUJUMZUWMQDULUMUVQUWDUWTGUVRUWKCUPUKUWLUXDU
      WMUWTGUXEDUPUMUWNUQUWLUWOUWDGZOUWPURUWLUWOUWMGZOUWQURUSZUWLEUWNUWRUTUWLUW
      OUWNGZOZUWPUWQMVAZUWLUWGUWSFUXIUWLCDUVQUVRUWKVBUXEVCVDZUWLEUWNUWRIHZPZUAG
      UXOFGELUXJUXNSVEZPZVIHZLGZUWLIUWSVFZUXOFUWLEBUWNQUWRUVSIHUXNUWSIUWLEUWNUW
      RUTUXMUXLVGZUWLUWSURUWLBQLIQLIRUWLVHTVJUVSUWRIVKVLUWLUWSFGUWNQUWSRIQQVMNZ
      GZUXTFGUXMUWLEUWNUWRQUWSUYAUWSUQVNUYCUWLQLVMNZUYBILQVOQQVOUYDUYBVOVPQVTQL
      QVQVRVSWATUWNQUWSIWBWCVDUWLLSWDWENZUXQRZELUXJUWBUWQIHZMNZSVEZPZVIHZLGZUXR
      UYKJKZUXSUWLELUXPUYEUXQUWLUXPUYEGUWOLGZUWLUXJUXNSUYEUXKUXNWFGSUXNJKUXNUYE
      GUXKUXNUXKUWRUYAWGZWKUXKUWRUYAWHZUXNWIWJSUYEGUWLUXJWLZOZWMTZWNWOZUXQUQVNZ
      UWLUWNWPWQZUYLUWLVUBWLZUYLUWLVUCOZUYKUWBELUXJUYGSVEZPZVIHZMNZLVUDLUWBWRWS
      ZVUFUWFNZVIHUYKVUHVUDVUJUYJVIVUDVUJELUWBVUEMNZPUYJVUDELUWBVUEMVUIVUFUTLSW
      DWTNZLUTGZVUDXATUWLUWJVUCUYNUWIUWJUWEXBZUKUWLVUEVULGZVUCUYNUWLUXJUYGSVULU
      XKUYGLGZSUYGJKZUYGVULGUXKUWQUWLUXCUXHUWQQGZUXJUXFUXJUXGUXHUWOUWDUWMXDZXCU
      WMQUWODXEXFZWGZUXKUWQVUTWHZUYGXGWJSVULGUYRXHTWNZUKVUIELUWBPWQVUDELUWBXITV
      UDVUFURXNVUDELVUKUYIVUDVUKUXJUYHUWBSMNZVEUYIUXJUWBUYGSMXJVUDUXJVVDSUYHVUD
      UWBUWLUWBQGVUCUWLUWBVUNXKWOXLXMXOXPXQXRVUDUWBVUFUWLLVULVUFRVUCUWLELVUEVUL
      VUFUWLVUOUYNVVCWOVUFUQVNWOUWLVUGLGZVUCUWLEUWNUYGPZFGZVVEUWLVVFUAGVVGVVEOU
      WLEUWNUWQQVUTUWLEUWNUWMUWQQUWNUWMVOUWLUWDUWMXSTUWLEUWNUWRUTUXMUXLXTUWLUWM
      QUWODUXFYAUWLDEUWMUWQPUAUWLEUWMQDUXFVJUVQUVRUWKYBVDYDYCUWLEUWNUYGVVAVVBYE
      YFYGWOZVUDUWJSUWBJKZUWBVULGUWIUWJUWEVUCYHZUWLVUCVVIVUCUXJEYIUWLVVIEUWNYJU
      WLUXJVVIEUWLUXJVVIUXKSUWPIHZUWBSLGUXKYKTUXKUWPUWLUXAUXGUWPQGUXJUXBUXJUXGU
      XHVUSYLZUWDQUWOCXEXFZWGZUWIUWJUWEUXJYHZUXKUWPVVMWHUWLUWEUXGVVKUWBJKZUXJUW
      IUWJUWEYMVVLUWCVVPBUWOUWDUVSUWOWQZUWAVVKUWBJVVQUVTUWPIUVSUWOCVKXRUUAUUBXF
      ZUUCZYNUUDUUEUUPUWBXGWJUUFUUGVUDUWBVUGVVJVVHYOYPYNVUBUYKLSWRWSZVIHZLVUBUY
      JVVTVIVUBUYJELSPVVTVUBELUYISVUBUYQUYISWQVUBUXJUWOWPGUWOUUHUWNWPUWOUUIUUJU
      XJUYHSYQZUMXPELSXIUUKXRVWASLUULYKUUMUUNUUOUWLUYFLUYEUYJRUXQUYJJUUQKZUYMVU
      AUWLELUYIUYEUYJUWLUYIUYEGUYNUWLUXJUYHSUYEUXKUYHWFGSUYHJKUYHUYEGUXKUYHUXKU
      WBUYGVVOVVAYOWKUXKUWBUYGVVOVVAVVSVVBUURUYHWIWJUYSWNWOZUYJUQVNUWLVWCUXPUYI
      JKZELUDUWLVWEELUWLUXJVWEUXKUXNUYHUXPUYIJUXKUXNVVKUYGMNZUYHJUXKUWPUWQVVMVU
      TUUSUXKVVKLGUWJVUPVUQOZVVPVWFUYHJKVVNVVOUXKVURVWGVUTVURVUPVUQUWQUUTUWQUVA
      UVBUMVVRVVKUWBUYGUVCUVDUVGUXJUXPUXNWQUWLUXJUXNSYRYSUXJUYIUYHWQUWLUXJUYHSY
      RYSYTUYQVWEUWLUYQSSUXPUYIJSSJKUYQUVETUXJUXNSYQVWBYTYSUVFUVHUWLELUXPUYIJUX
      QUYJUTUYEUYEVUMUWLXATUYTVWDUWLUXQURUWLUYJURUVIUVJUXQUYJUVOWCUYKUXQUVKWCUW
      LEUWNUXNUYOUYPYEUVLUVMYPUVNUVP $.

    $( A bounded function is integrable.  (Contributed by Mario Carneiro,
       12-Aug-2014.) $)
    bddibl $p |- ( ( F e. MblFn /\ ( vol ` dom F ) e. RR /\
      E. x e. RR A. y e. dom F ( abs ` ( F ` y ) ) <_ x ) -> F e. L^1 ) $=
      ( vz cmbf wcel cdm cvol cfv cr cv cabs cle c1 cmul cibl 3ad2ant1 wfn syl
      cc wbr wral wrex w3a csn cxp cof co mbfdm wf mbff ffn 1cnd fnconstg eqidd
      wa wceq fvconst2 adantl ffvelrnda mulid1d offveq simp2 iblconst bddmulibl
      1ex syl3anc syld3an2 eqeltrrd ) CEFZCGZHIJFZBKCILIAKMUABVKUBAJUCZUDZCVKNU
      EUFZOUGUHZCPVNDVKDKZCIZNOCVOCHGZVJVLVKVSFZVMCUIQZVNVKTCUJZCVKRVJVLWBVMCUK
      QZVKTCULSZVNNTFZVOVKRVNUMZVKNTUNSWDVNVQVKFZUPZVRUOWGVQVOINUQVNVKNVQVFURUS
      WHVRVNVKTVQCWCUTVAVBVJVOPFZVLVMVPPFVNVTVLWEWIWAVJVLVMVCWFVKNVDVGABCVOVEVH
      VI $.

    $( A continuous function on a closed bounded interval is integrable.
       (Contributed by Mario Carneiro, 12-Aug-2014.) $)
    cniccibl $p |- ( ( A e. RR /\ B e. RR /\ F e. ( ( A [,] B ) -cn-> CC ) ) ->
      F e. L^1 ) $=
      ( vy vx cr wcel cicc co cc ccncf w3a cmbf cdm cvol cfv cv cabs wral wrex
      cle wbr cibl iccmbl cnmbf stoic3 wf wceq simp3 cncff 3syl fveq2d iccvolcl
      fdm 3adant3 eqeltrd cniccbdd raleqdv rexbidv mpbird bddibl syl3anc ) AFGZ
      BFGZCABHIZJKIGZLZCMGZCNZOPZFGDQCPRPEQUAUBZDVISZEFTZCUCGVCVDVEONGVFVHABUDV
      ECUEUFVGVJVEOPZFVGVIVEOVGVFVEJCUGVIVEUHVCVDVFUIVEJCUJVEJCUNUKZULVCVDVNFGV
      FABUMUOUPVGVMVKDVESZEFTEDABCUQVGVLVPEFVGVKDVIVEVOURUSUTEDCVAVB $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y ph $.
    itggt0.1 $e |- ( ph -> 0 < ( vol ` A ) ) $.
    itggt0.2 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    itggt0.3 $e |- ( ( ph /\ x e. A ) -> B e. RR+ ) $.
    $( The integral of a strictly positive function is positive.  (Contributed
       by Mario Carneiro, 30-Aug-2014.) $)
    itggt0 $p |- ( ph -> 0 < S. A B _d x ) $=
      ( vy cc0 cr cv wcel cmpt cfv clt crp cmbf wa wbr wceq cif citg2 citg cibl
      iblmbf syl mbfdm2 cpnf cico co rpred rpge0d elrege0 sylanbrc wn 0e0icopnf
      cle a1i ifclda adantr eqid fmptd cvol cdm wss mblss rembl eldifn iffalsed
      cdif adantl iftrue mpteq2ia syl5eqel rpgt0d sselda eqeltrd fvmpt2 syl2anc
      mbfss wral eqtrd breqtrrd ralrimiva nfcv nffvmpt1 nfv fveq2 breq2d cbvral
      nfbr sylibr r19.21bi itg2gt0 itgposval ) AIBJBKZCLZDIUAZMZUBNBCDUCOAHCWSA
      BCDPABCDMZUDLWTQLFWTUEUFZGUGZEABJWRIUHUIUJZWSAWRXCLZWPJLZAWQDIXCAWQRZDJLI
      DUQSDXCLXFDGUKZXFDGULZDUMUNIXCLAWQUOZRUPURUSZUTWSVAZVBABCJWRXCACVCVDZLCJV
      EXBCVFUFZJXLLAVGURAXDWQXJUTAWPJCVJLZRWQDIXNXIAWPJCVHVKVIABCWRMWTQBCWRDWQD
      IVLZVMXAVNVTAIHKZWSNZOSZHCAIWPWSNZOSZBCWAXRHCWAAXTBCXFIDXSOXFDGVOXFXSWRDX
      FXEWRPLXSWRTACJWPXMVPXFWRDPWQWRDTAXOVKZGVQBJWRPWSXKVRVSYAWBWCWDXRXTHBCBIX
      QOBIWEBOWEBJWRXPWFWKXTHWGXPWPTXQXSIOXPWPWSWHWIWJWLWMWNABCDXGFXHWOWC $.
  $}

  ${
    $d d u x y A $.  $d d u y B $.  $d d u y C $.  $d d u x y ph $.
    itgcn.1 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    itgcn.2 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    itgcn.3 $e |- ( ph -> C e. RR+ ) $.
    $( Transfer ~ itg2cn to the full Lebesgue integral.  (Contributed by Mario
       Carneiro, 1-Sep-2014.) $)
    itgcn $p |- ( ph -> E. d e. RR+ A. u e. dom vol
      ( ( u C_ A /\ ( vol ` u ) < d ) -> S. u ( abs ` B ) _d x < C ) ) $=
      ( vy cfv cr wcel cc0 cif cmpt citg2 wa cv cvol clt wbr cabs cdm wral wrex
      wi crp wss citg cpnf cico co cle cibl cmbf iblmbf mbfmptcl abscld absge0d
      syl elrege0 sylanbrc 0e0icopnf a1i ifclda adantr fmptd mbfdm2 mblss rembl
      wn eqid eldifn adantl iffalsed iftrue mpteq2ia iblabs iblpos mpbid simpld
      syl5eqel mbfss simprd itg2cn cc simprr sselda adantlr syldan simprl iblss
      cdif itgposval sseld ifbid ifan syl6eq mpteq2dv fveq2d eqtrd nfv nffvmpt1
      pm4.71d nfcv nfif wceq elequ1 fveq2 ifbieq1d cbvmpt fvex c0ex ifex fvmpt2
      cvv mpan2 ifeq1d eqtri fveq2i syl6eqr breq1d biimprd imim2d expr ralimdva
      com23 imp4a reximdv mpd ) ACUAZUBMHUAUCUDZLNLUAZYNOZYPBNBUAZDOZEUEMZPQZRZ
      MZPQZRZSMZFUCUDZUIZCUBUFZUGZHUJUHYNDUKZYOTBYNYTULZFUCUDZUIZCUUIUGZHUJUHAL
      CFUUBHABNUUAPUMUNUOZUUBAUUAUUPOZYRNOZAYSYTPUUPAYSTZYTNOPYTUPUDYTUUPOUUSEA
      BDEGABDERZUQOUUTUROJUUTUSVCZIUTZVAZUUSEUVBVBZYTVDVEPUUPOAYSVNZTVFVGVHZVIU
      UBVOZVJABDNUUAUUPADUUIODNUKABDEGUVAIVKDVLVCNUUIOAVMVGAUUQYSUVFVIAYRNDWPOZ
      TYSYTPUVHUVEAYRNDVPVQVRABDUUARBDYTRZURBDUUAYTYSYTPVSVTAUVIUROZUUBSMNOZAUV
      IUQOZUVJUVKTABDEGIJWAZABDYTUVCUVDWBWCZWDWEWFAUVJUVKUVNWGKWHAUUJUUOHUJAUUH
      UUNCUUIAYNUUIOZTZUUHUUKYOUUMUVPUUKUUHYOUUMUIZAUVOUUKUUHUVQUIAUVOUUKTZTZUU
      GUUMYOUVSUUMUUGUVSUULUUFFUCUVSUULBNYRYNOZUUAPQZRZSMZUUFUVSUULBNUVTYTPQZRZ
      SMUWCUVSBYNYTUVSUVTTZEUVSUVTYSEWIOZUVSYNDYRAUVOUUKWJZWKAYSUWGUVRUVBWLZWMZ
      VAUVSBYNDYTNUWHAUVOUUKWNUVSYSTEUWIVAAUVLUVRUVMVIWOUWFEUWJVBWQUVSUWEUWBSUV
      SBNUWDUWAUVSUWDUVTYSTZYTPQUWAUVSUVTUWKYTPUVSUVTYSUVSYNDYRUWHWRXGWSUVTYSYT
      PWTXAXBXCXDUUEUWBSUUEBNUVTYRUUBMZPQZRUWBLBNUUDUWMYQBUUCPYQBXEBNUUAYPXFBPX
      HXILUWMXHYPYRXJYQUVTUUCUWLPLBCXKYPYRUUBXLXMXNBNUWMUWAUURUVTUWLUUAPUURUUAX
      SOUWLUUAXJYSYTPEUEXOXPXQBNUUAXSUUBUVGXRXTYAVTYBYCYDYEYFYGYHYJYKYIYLYM $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Lesbesgue directed integral
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Extend class notation with the directed integral. $)
  cdit $a class S_ [ A -> B ] C _d x $.

  $( Define the directed integral, which is just a regular integral but with a
     sign change when the limits are interchanged.  The ` A ` and ` B ` here
     are the lower and upper limits of the integral, usually written as a
     subscript and superscript next to the integral sign.  We define the region
     of integration to be an open interval instead of closed so that we can use
     ` +oo , -oo ` for limits and also integrate up to a singularity at an
     endpoint.  (Contributed by Mario Carneiro, 13-Aug-2014.) $)
  df-ditg $a |- S_ [ A -> B ] C _d x = if ( A <_ B ,
    S. ( A (,) B ) C _d x , -u S. ( B (,) A ) C _d x ) $.

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.
    $( Equality theorem for the directed integral.  (Contributed by Mario
       Carneiro, 13-Aug-2014.) $)
    ditgeq1 $p |- ( A = B -> S_ [ A -> C ] D _d x = S_ [ B -> C ] D _d x ) $=
      ( wceq cle wbr cioo co citg cneg cif breq1 oveq1 itgeq1 syl oveq2 df-ditg
      cdit negeqd ifbieq12d 3eqtr4g ) BCFZBDGHZABDIJZEKZADBIJZEKZLZMCDGHZACDIJZ
      EKZADCIJZEKZLZMABDETACDETUDUEUKUGUJUMUPBCDGNUDUFULFUGUMFBCDIOAUFULEPQUDUI
      UOUDUHUNFUIUOFBCDIRAUHUNEPQUAUBABDESACDESUC $.

    $( Equality theorem for the directed integral.  (Contributed by Mario
       Carneiro, 13-Aug-2014.) $)
    ditgeq2 $p |- ( A = B -> S_ [ C -> A ] D _d x = S_ [ C -> B ] D _d x ) $=
      ( wceq cle wbr cioo co citg cneg cif breq2 oveq2 itgeq1 syl oveq1 df-ditg
      cdit negeqd ifbieq12d 3eqtr4g ) BCFZDBGHZADBIJZEKZABDIJZEKZLZMDCGHZADCIJZ
      EKZACDIJZEKZLZMADBETADCETUDUEUKUGUJUMUPBCDGNUDUFULFUGUMFBCDIOAUFULEPQUDUI
      UOUDUHUNFUIUOFBCDIRAUHUNEPQUAUBADBESADCESUC $.

    $( Equality theorem for the directed integral.  (The domain of the equality
       here is very rough; for more precise bounds one should decompose it with
       ~ ditgpos first and use the equality theorems for ~ df-itg .)
       (Contributed by Mario Carneiro, 13-Aug-2014.) $)
    ditgeq3 $p |- ( A. x e. RR D = E ->
      S_ [ A -> B ] D _d x = S_ [ A -> B ] E _d x ) $=
      ( wceq cr wral cioo co citg cneg cif cdit wss ioossre ssralv ax-mp itgeq2
      wi cle wbr syl negeqd ifeq12d df-ditg 3eqtr4g ) DEFZAGHZBCUAUBZABCIJZDKZA
      CBIJZDKZLZMUJAUKEKZAUMEKZLZMABCDNABCENUIUJULUPUOURUIUHAUKHZULUPFUKGOUIUST
      BCPUHAUKGQRAUKDESUCUIUNUQUIUHAUMHZUNUQFUMGOUIUTTCBPUHAUMGQRAUMDESUCUDUEAB
      CDUFABCEUFUG $.

    ditgeq3dv.1 $e |- ( ( ph /\ x e. RR ) -> D = E ) $.
    $( Equality theorem for the directed integral.  (Contributed by Mario
       Carneiro, 13-Aug-2014.) $)
    ditgeq3dv $p |- ( ph -> S_ [ A -> B ] D _d x = S_ [ A -> B ] E _d x ) $=
      ( wceq cr wral cdit ralrimiva ditgeq3 syl ) AEFHZBIJBCDEKBCDFKHAOBIGLBCDE
      FMN $.
  $}

  $( A directed integral is a set.  (Contributed by Mario Carneiro,
     7-Sep-2014.) $)
  ditgex $p |- S_ [ A -> B ] C _d x e. _V $=
    ( cdit cle wbr cioo co citg cneg cif cvv df-ditg itgex negex ifex eqeltri )
    ABCDEBCFGZABCHIZDJZACBHIDJZKZLMABCDNSUAUCATDOUBPQR $.

  ${
    $d x A $.
    $( Value of the directed integral from a point to itself.  (Contributed by
       Mario Carneiro, 13-Aug-2014.) $)
    ditg0 $p |- S_ [ A -> A ] B _d x = 0 $=
      ( cdit cle wbr cioo co citg cneg cif cc0 df-ditg wceq c0 iooid ax-mp itg0
      itgeq1 eqtri negeqi neg0 ifeq12 mp2an ifid ) ABBCDBBEFZABBGHZCIZUHJZKZLAB
      BCMUJUFLLKZLUHLNUILNUJUKNUHAOCIZLUGONUHULNBPAUGOCSQACRTZUILJLUHLUMUAUBTUF
      UHLUILUCUDUFLUETT $.
  $}

  ${
    $d x y A $.  $d x y B $.
    cbvditg.1 $e |- ( x = y -> C = D ) $.
    ${
      cbvditg.2 $e |- F/_ y C $.
      cbvditg.3 $e |- F/_ x D $.
      $( Change bound variable in a directed integral.  (Contributed by Mario
         Carneiro, 7-Sep-2014.) $)
      cbvditg $p |- S_ [ A -> B ] C _d x = S_ [ A -> B ] D _d y $=
        ( cle wbr cioo co citg cneg cif cdit biid cbvitg df-ditg negeqi 3eqtr4i
        ifbieq12i ) CDJKZACDLMZENZADCLMZENZOZPUDBUEFNZBUGFNZOZPACDEQBCDFQUDUDUF
        UIUJULUDRABUEEFGHISUHUKABUGEFGHISUAUCACDETBCDFTUB $.
    $}

    $d y C $.  $d x D $.
    $( Change bound variable in a directed integral.  (Contributed by Mario
       Carneiro, 7-Sep-2014.) $)
    cbvditgv $p |- S_ [ A -> B ] C _d x = S_ [ A -> B ] D _d y $=
      ( nfcv cbvditg ) ABCDEFGBEHAFHI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.
    ditgpos.1 $e |- ( ph -> A <_ B ) $.
    $( Value of the directed integral in the forward direction.  (Contributed
       by Mario Carneiro, 13-Aug-2014.) $)
    ditgpos $p |- ( ph -> S_ [ A -> B ] C _d x = S. ( A (,) B ) C _d x ) $=
      ( cdit cle wbr cioo co citg cneg cif df-ditg iftrued syl5eq ) ABCDEGCDHIZ
      BCDJKELZBDCJKELMZNSBCDEOARSTFPQ $.

    ditgneg.2 $e |- ( ph -> A e. RR ) $.
    ditgneg.3 $e |- ( ph -> B e. RR ) $.
    $( Value of the directed integral in the backward direction.  (Contributed
       by Mario Carneiro, 13-Aug-2014.) $)
    ditgneg $p |- ( ph -> S_ [ B -> A ] C _d x = -u S. ( A (,) B ) C _d x ) $=
      ( cle wbr cdit cioo co citg cneg wceq wa cc0 c0 syl6eq letri3d ditg0 neg0
      biantrurd bitr4d eqtr4i ditgeq2 oveq1 iooid itgeq1 syl itg0 negeqd syl6bi
      3eqtr4a wn cif df-ditg iffalse syl5eq pm2.61d1 ) ADCIJZBDCEKZBCDLMZENZOZP
      ZAVBCDPZVGAVBCDIJZVBQVHAVIVBFUDACDGHUAUEVHBDDEKZROZVCVFVJRVKBDEUBUCUFBCDD
      EUGVHVERVHVEBSENZRVHVDSPVEVLPVHVDDDLMSCDDLUHDUITBVDSEUJUKBEULTUMUOUNVBUPV
      CVBBDCLMENZVFUQVFBDCEURVBVMVFUSUTVA $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.  $d x V $.  $d x X $.  $d x Y $.
    ditgcl.x $e |- ( ph -> X e. RR ) $.
    ditgcl.y $e |- ( ph -> Y e. RR ) $.
    ditgcl.a $e |- ( ph -> A e. ( X [,] Y ) ) $.
    ditgcl.b $e |- ( ph -> B e. ( X [,] Y ) ) $.
    ditgcl.c $e |- ( ( ph /\ x e. ( X (,) Y ) ) -> C e. V ) $.
    ditgcl.i $e |- ( ph -> ( x e. ( X (,) Y ) |-> C ) e. L^1 ) $.
    $( Closure of a directed integral.  (Contributed by Mario Carneiro,
       13-Aug-2014.) $)
    ditgcl $p |- ( ph -> S_ [ A -> B ] C _d x e. CC ) $=
      ( cc wcel cle wbr co syl2anc cdit cr cicc w3a wb elicc2 mpbid simp1d cioo
      wa citg simpr ditgpos cv cxr wss rexrd simp2d iooss1 simp3d iooss2 sselda
      sstrd syldan cvol cdm ioombl a1i iblss adantr eqeltrd cneg ditgneg negcld
      itgcl lecasei ) ABCDEUAZOPCDACUBPZGCQRZCHQRZACGHUCSZPZVRVSVTUDZKAGUBPZHUB
      PZWBWCUEIJGHCUFTUGZUHZADUBPZGDQRZDHQRZADWAPZWHWIWJUDZLAWDWEWKWLUEIJGHDUFT
      UGZUHZACDQRZUJZVQBCDUISZEUKZOWPBCDEAWOULUMAWROPWOABWQEFABUNZWQPWSGHUISZPZ
      EFPZAWQWTWSAWQGDUISZWTAGUOPZVSWQXCUPAGIUQZAVRVSVTWFURGCDUSTAHUOPZWJXCWTUP
      AHJUQZAWHWIWJWMUTGDHVATVCZVBMVDABWQWTEFXHWQVEVFZPACDVGVHMNVIVOVJVKADCQRZU
      JZVQBDCUISZEUKZVLZOXKBDCEAXJULAWHXJWNVJAVRXJWGVJVMAXNOPXJAXMABXLEFAWSXLPX
      AXBAXLWTWSAXLGCUISZWTAXDWIXLXOUPXEAWHWIWJWMURGDCUSTAXFVTXOWTUPXGAVRVSVTWF
      UTGCHVATVCZVBMVDABXLWTEFXPXLXIPADCVGVHMNVIVOVNVJVKVP $.

    $( Reverse a directed integral.  (Contributed by Mario Carneiro,
       13-Aug-2014.) $)
    ditgswap $p |- ( ph -> S_ [ B -> A ] C _d x = -u S_ [ A -> B ] C _d x ) $=
      ( cneg wcel cle wbr co adantr cdit wceq cr cicc w3a elicc2 syl2anc simp1d
      wb mpbid wa cioo citg simpr ditgneg ditgpos negeqd eqtr4d cc cv cxr rexrd
      wss simp2d iooss1 simp3d iooss2 sselda cmpt cibl cmbf iblmbf syl mbfmptcl
      sstrd syldan cvol cdm ioombl a1i iblss itgcl negnegd 3eqtr4rd lecasei ) A
      BDCEUAZBCDEUAZOZUBCDACUCPZGCQRZCHQRZACGHUDSZPZWIWJWKUEZKAGUCPZHUCPZWMWNUI
      IJGHCUFUGUJZUHZADUCPZGDQRZDHQRZADWLPZWSWTXAUEZLAWOWPXBXCUIIJGHDUFUGUJZUHZ
      ACDQRZUKZWFBCDULSEUMZOWHXGBCDEAXFUNZAWIXFWRTAWSXFXETUOXGWGXHXGBCDEXIUPUQU
      RADCQRZUKZBDCULSZEUMZOZOXMWHWFXKXMAXMUSPXJABXLEUSABUTZXLPXOGHULSZPEUSPAXL
      XPXOAXLGCULSZXPAGVAPWTXLXQVCAGIVBAWSWTXAXDVDGDCVEUGAHVAPWKXQXPVCAHJVBAWIW
      JWKWQVFGCHVGUGVOZVHABXPEFABXPEVIZVJPXSVKPNXSVLVMMVNVPABXLXPEFXRXLVQVRPADC
      VSVTMNWAWBTWCXKWGXNXKBDCEAXJUNZAWSXJXETAWIXJWRTUOUQXKBDCEXTUPWDWE $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.  $d x ps $.  $d x th $.
    $d x V $.  $d x X $.  $d x Y $.
    ditgsplit.x $e |- ( ph -> X e. RR ) $.
    ditgsplit.y $e |- ( ph -> Y e. RR ) $.
    ditgsplit.a $e |- ( ph -> A e. ( X [,] Y ) ) $.
    ditgsplit.b $e |- ( ph -> B e. ( X [,] Y ) ) $.
    ditgsplit.c $e |- ( ph -> C e. ( X [,] Y ) ) $.
    ditgsplit.d $e |- ( ( ph /\ x e. ( X (,) Y ) ) -> D e. V ) $.
    ditgsplit.i $e |- ( ph -> ( x e. ( X (,) Y ) |-> D ) e. L^1 ) $.
    ${
      ditgsplit.1 $e |- ( ( ps /\ th ) <-> ( A <_ B /\ B <_ C ) ) $.
      $( Lemma for ~ ditgsplit .  (Contributed by Mario Carneiro,
         13-Aug-2014.) $)
      ditgsplitlem $p |- ( ( ( ph /\ ps ) /\ th ) -> S_ [ A -> C ] D _d x =
        ( S_ [ A -> B ] D _d x + S_ [ B -> C ] D _d x ) ) $=
        ( wcel cdit caddc co wceq wa cioo citg cr cle wbr w3a wb elicc2 syl2anc
        cicc mpbid simp1d adantr simpr sylib simpld simprd mpbir3and cv cxr wss
        cc rexrd simp2d iooss1 simp3d iooss2 sstrd sselda cmpt cibl cmbf iblmbf
        syl mbfmptcl syldan adantlr cvol cdm ioombl a1i iblss itgsplitioo letrd
        ditgpos oveq12d 3eqtr4d anassrs ) ABCDEGHUAZDEFHUAZDFGHUAZUBUCZUDABCUEZ
        UEZDEGUFUCZHUGDEFUFUCZHUGZDFGUFUCZHUGZUBUCWNWQWSDEFGHAEUHTZWRAXEJEUIUJZ
        EKUIUJZAEJKUOUCZTZXEXFXGUKZNAJUHTZKUHTZXIXJULLMJKEUMUNUPZUQZURZAGUHTZWR
        AXPJGUIUJZGKUIUJZAGXHTZXPXQXRUKZPAXKXLXSXTULLMJKGUMUNUPZUQZURZWSFEGUOUC
        TZFUHTZEFUIUJZFGUIUJZAYEWRAYEJFUIUJZFKUIUJZAFXHTZYEYHYIUKZOAXKXLYJYKULL
        MJKFUMUNUPZUQURZWSYFYGWSWRYFYGUEAWRUSSUTZVAZWSYFYGYNVBZAYDYEYFYGUKULZWR
        AXEXPYQXNYBEGFUMUNURVCADVDZWTTZHVGTZWRAYSYRJKUFUCZTYTAWTUUAYRAWTJGUFUCZ
        UUAAJVETZXFWTUUBVFAJLVHZAXEXFXGXMVIZJEGVJUNAKVETZXRUUBUUAVFAKMVHZAXPXQX
        RYAVKJGKVLUNZVMVNADUUAHIADUUAHVOZVPTUUIVQTRUUIVRVSQVTWAWBADXAHVOVPTWRAD
        XAUUAHIAXAJFUFUCZUUAAUUCXFXAUUJVFUUDUUEJEFVJUNAUUFYIUUJUUAVFUUGAYEYHYIY
        LVKJFKVLUNVMXAWCWDZTAEFWEWFQRWGURADXCHVOVPTWRADXCUUAHIAXCUUBUUAAUUCYHXC
        UUBVFUUDAYEYHYIYLVIJFGVJUNUUHVMXCUUKTAFGWEWFQRWGURWHWSDEGHWSEFGXOYMYCYO
        YPWIWJWSWOXBWPXDUBWSDEFHYOWJWSDFGHYPWJWKWLWM $.
    $}

    $( This theorem is the raison d'&ecirc;tre for the directed integral,
       because unlike ~ itgspliticc , there is no constraint on the ordering of
       the points ` A , B , C ` in the domain.  (Contributed by Mario Carneiro,
       13-Aug-2014.) $)
    ditgsplit $p |- ( ph -> S_ [ A -> C ] D _d x =
      ( S_ [ A -> B ] D _d x + S_ [ B -> C ] D _d x ) ) $=
      ( caddc co wa cc0 cdit wceq cr wcel cle wbr cicc w3a elicc2 syl2anc mpbid
      wb simp1d adantr ad2antrr biid ditgsplitlem adantlr oveq1d ditgcl addassd
      ditgswap oveq2d negidd eqtrd addid1d 3eqtrd eqtr2d adantllr lecasei ancom
      cneg addid2d 3eqtr3d eqtr3d ) ABCEFUAZBCDFUAZBDEFUAZQRZUBZCDACUCUDZHCUEUF
      ZCIUEUFZACHIUGRZUDZWAWBWCUHZLAHUCUDZIUCUDZWEWFULJKHICUIUJUKUMZADUCUDZHDUE
      UFZDIUEUFZADWDUDZWJWKWLUHZMAWGWHWMWNULJKHIDUIUJUKUMZACDUEUFZSZVTCEAWAWPWI
      UNAEUCUDZWPAWRHEUEUFZEIUEUFZAEWDUDZWRWSWTUHZNAWGWHXAXBULJKHIEUIUJUKUMZUNW
      QCEUEUFZSVTDEAWJWPXDWOUOAWRWPXDXCUOWQDEUEUFZVTXDAWPXEBCDEFGHIJKLMNOPWPXES
      UPUQURAXDEDUEUFZVTWPAXDSXFSZVSVPBEDFUAZQRZVRQRZVPXGVQXIVRQAXDXFBCEDFGHIJK
      LNMOPXDXFSUPUQUSAXJVPUBZXDXFAXJVPXHVRQRZQRVPTQRVPAVPXHVRABCEFGHIJKLNOPUTZ
      ABEDFGHIJKNMOPUTZABDEFGHIJKMNOPUTZVAAXLTVPQAXLXHXHVLZQRTAVRXPXHQABEDFGHIJ
      KNMOPVBVCAXHXNVDVEVCAVPXMVFVGZUOVHVIVJWQECUEUFZSZXJVPVSAXKWPXRXQUOXSXIVQV
      RQXSXIVPBECFUAZVQQRZQRZVQXSXHYAVPQAWPXRBECDFGHIJKNLMOPWPXRVKUQVCAYBVQUBZW
      PXRAVPXTQRZVQQRTVQQRYBVQAYDTVQQAYDVPVPVLZQRTAXTYEVPQABCEFGHIJKLNOPVBVCAVP
      XMVDVEUSAVPXTVQXMABECFGHIJKNLOPUTZABCDFGHIJKLMOPUTZVAAVQYGVMVNZUOVEUSVOVJ
      ADCUEUFZSZVTCEAWAYIWIUNAWRYIXCUNYJXDSZVSVQBDCFUAZVPQRZQRZVPYKVRYMVQQAYIXD
      BDCEFGHIJKMLNOPYIXDSUPUQVCAYNVPUBZYIXDAVQYLQRZVPQRTVPQRYNVPAYPTVPQAYPVQVQ
      VLZQRTAYLYQVQQABCDFGHIJKLMOPVBVCAVQYGVDVEUSAVQYLVPYGABDCFGHIJKMLOPUTZXMVA
      AVPXMVMVNZUOVHYJXRSVTDEAWJYIXRWOUOAWRYIXRXCUOAXRXEVTYIAXRSXESZVSYNVPYTVRY
      MVQQYTYMVRXTQRZVPQRZVRYTYLUUAVPQAXRXEBDECFGHIJKMNLOPXRXEVKUQUSAUUBVRUBXRX
      EAUUBVRXTVPQRZQRVRTQRVRAVRXTVPXOYFXMVAAUUCTVRQAUUCXTXTVLZQRTAVPUUDXTQABEC
      FGHIJKNLOPVBVCAXTYFVDVEVCAVRXOVFVGUOVHVCAYOXRXEYSUOVHVIYJXFVTXRYJXFSZVSXJ
      VPUUEVQXIVRQUUEXIYBVQUUEXHYAVPQUUEYAXHYLQRZVQQRZXHUUEXTUUFVQQAYIXFBEDCFGH
      IJKNMLOPYIXFVKUQUSAUUGXHUBYIXFAUUGXHYLVQQRZQRXHTQRXHAXHYLVQXNYRYGVAAUUHTX
      HQAUUHYLYLVLZQRTAVQUUIYLQABDCFGHIJKMLOPVBVCAYLYRVDVEVCAXHXNVFVGUOVHVCAYCY
      IXFYHUOVHUSAXKYIXFXQUOVHURVJVJVJ $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Derivatives
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Real and complex differentiation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Derivatives of functions of one complex or real variable
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Introduce new constant symbols. $)
  $c limCC $. $( Limit operator $)
  $c _D $. $( Derivative operator $)
  $c Dn $. $( n-th derivative operator $)
  $c C^n $. $( Continuously differentiable function $)

  $( The limit operator. $)
  climc $a class limCC $.

  $( The derivative operator. $)
  cdv $a class _D $.

  $( The ` n ` -th derivative operator. $)
  cdvn $a class Dn $.

  $( The set of ` n ` -times continuously differentiable functions. $)
  ccpn $a class C^n $.

  ${
    $d f j s x y z $.
    $( Define the set of limits of a complex function at a point.  Under normal
       circumstances, this will be a singleton or empty, depending on whether
       the limit exists.  (Contributed by Mario Carneiro, 24-Dec-2016.) $)
    df-limc $a |- limCC = ( f e. ( CC ^pm CC ) , x e. CC |->
      { y | [. ( TopOpen ` CCfld ) / j ]. ( z e. ( dom f u. { x } ) |->
      if ( z = x , y , ( f ` z ) ) ) e.
        ( ( ( j |`t ( dom f u. { x } ) ) CnP j ) ` x ) } ) $.

    $( Define the derivative operator on functions on the reals.  This acts on
       functions to produce a function that is defined where the original
       function is differentiable, with value the derivative of the function at
       these points.  The set ` s ` here is the ambient topological space under
       which we are evaluating the continuity of the difference quotient.
       Although the definition is valid for any subset of ` CC ` and is
       well-behaved when ` s ` contains no isolated points, we will restrict
       our attention to the cases ` s = RR ` or ` s = CC ` for the majority of
       the development, these corresponding respectively to real and complex
       differentiation.  (Contributed by Mario Carneiro, 7-Aug-2014.) $)
    df-dv $a |- _D = ( s e. ~P CC , f e. ( CC ^pm s ) |->
      U_ x e. ( ( int ` ( ( TopOpen ` CCfld ) |`t s ) ) ` dom f )
        ( { x } X. ( ( z e. ( dom f \ { x } ) |->
          ( ( ( f ` z ) - ( f ` x ) ) / ( z - x ) ) ) limCC x ) ) ) $.

    $( Define the ` n ` -th derivative operator on functions on the complex
       numbers.  This just iterates the derivative operation according to the
       last argument.  (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    df-dvn $a |- Dn = ( s e. ~P CC , f e. ( CC ^pm s ) |->
      seq 0 ( ( ( x e. _V |-> ( s _D x ) ) o. 1st ) , ( NN0 X. { f } ) ) ) $.

    $( Define the set of ` n ` -times continuously differentiable functions.
       (Contributed by Stefan O'Rear, 15-Nov-2014.) $)
    df-cpn $a |- C^n = ( s e. ~P CC |-> ( x e. NN0 |-> { f e. ( CC ^pm s ) |
                         ( ( s Dn f ) ` x ) e. ( dom f -cn-> CC ) } ) ) $.

    $( The derivative function is a relation.  (Contributed by Mario Carneiro,
       7-Aug-2014.)  (Revised by Mario Carneiro, 24-Dec-2016.) $)
    reldv $p |- Rel ( S _D F ) $=
      ( vx vf vs vz cdv co wrel cvv cxp wss cv cfv cmin wral rgenw mpbir df-rel
      cc cdm ccnfld ctopn crest cnt csn cdif cdiv cmpt climc ciun cpm cpw relxp
      reliun mpbi df-dv ovmptss ax-mp ) ABGHZIUTJJKZLZCDMZUAZUBUCNEMZUDHUENNZCM
      ZUFZFVDVHUGFMZVCNVGVCNOHVIVGOHUHHUIVGUJHZKZUKZVALZDTVEULHZPZETUMZPVBVOEVP
      VMDVNVLIZVMVQVKIZCVFPVRCVFVHVJUNQCVFVKUORVLSUPQQEDVPVNVLAGBVACFDEUQURUSUT
      SR $.
  $}

  ${
    $d f j x y z A $.  $d f j x y z B $.  $d f j x y z F $.  $d f j x y z K $.
    $d y z C $.  $d y G $.  $d f j x y J $.
    limcval.j $e |- J = ( K |`t ( A u. { B } ) ) $.
    limcval.k $e |- K = ( TopOpen ` CCfld ) $.
    ${
      limcvallem.g $e |- G =
        ( z e. ( A u. { B } ) |-> if ( z = B , C , ( F ` z ) ) ) $.
      $( Lemma for ~ ellimc .  (Contributed by Mario Carneiro, 25-Dec-2016.) $)
      limcvallem $p |- ( ( F : A --> CC /\ A C_ CC /\ B e. CC ) ->
        ( G e. ( ( J CnP K ) ` B ) -> C e. CC ) ) $=
        ( cc wf wss wcel w3a ccnp co cfv ctopon wa csn cun cv wceq cif ssun2 wb
        simpl3 snssg syl mpbiri crest cnfldtopon simpl2 snssd resttopon sylancr
        wral unssd syl5eqel simpr cnpf2 syl3anc fmpt sylibr iftrue eleq1d rspcv
        a1i sylc ex ) BLEMZBLNZCLOZPZFCGHQRSOZDLOZVPVQUAZCBCUBZUCZOZAUDZCUEZDWC
        ESZUFZLOZAWAUSZVRVSWBVTWANZVTBUGVSVOWBWIUHVMVNVOVQUIZCWALUJUKULVSWALFMZ
        WHVSGWATSZOHLTSOZVQWKVSGHWAUMRZWLIVSWMWALNWNWLOHJUNZVSBVTLVMVNVOVQUOVSC
        LWJUPUTWAHLUQURVAWMVSWOVJVPVQVBCFGHWALVCVDAWALWFFKVEVFWGVRACWAWDWFDLWDD
        WEVGVHVIVKVL $.
    $}

    $( Value and set bounds on the limit operator.  (Contributed by Mario
       Carneiro, 25-Dec-2016.) $)
    limcfval $p |- ( ( F : A --> CC /\ A C_ CC /\ B e. CC ) ->
      ( ( F limCC B ) = { y |
        ( z e. ( A u. { B } ) |-> if ( z = B , y , ( F ` z ) ) ) e.
        ( ( J CnP K ) ` B ) } /\ ( F limCC B ) C_ CC ) ) $=
      ( vf vx vj cc wcel co cv wceq cfv cvv wa wf wss w3a csn cun cif cmpt ccnp
      climc cab cpm cdm crest ccnfld ctopn wsbc cmpt2 df-limc a1i fvexd simplrl
      dmeqd simpll1 fdm syl eqtrd simplrr sneqd uneq12d eqeq2d fveq1d mpteq12dv
      ifbieq2d simpr syl6eqr oveq12d fveq12d eleq12d sbcied abbidv cnex mpanl12
      elpm2r 3adant3 simp3 eqid limcvallem abssdv ssex ovmpt2d eqsstrd jca ) CM
      EUAZCMUBZDMNZUCZEDUIOZBCDUDZUEZBPZDQZAPZWTERZUFZUGZDFGUHOZRZNZAUJZQWQMUBW
      PJKEDMMUKOZMBJPZULZKPZUDZUEZWTXMQZXBWTXKRZUFZUGZXMLPZXOUMOZXTUHOZRZNZLUNU
      ORZUPZAUJZXIUISUIJKXJMYGUQQWPKABJLURUSWPXKEQZXMDQZTZTZYFXHAYKYDXHLYESYKUN
      UOUTYKXTYEQZTZXSXEYCXGYMBXOXRWSXDYMXLCXNWRYMXLEULZCYMXKEWPYHYIYLVAZVBYMWM
      YNCQWMWNWOYJYLVCCMEVDVEVFYMXMDWPYHYIYLVGZVHVIZYMXPXAXQXCXBYMXMDWTYPVJYMWT
      XKEYOVKVMVLYMXMDYBXFYMYAFXTGUHYMYAGWSUMOFYMXTGXOWSUMYMXTYEGYKYLVNIVOZYQVP
      HVOYRVPYPVQVRVSVTWMWNEXJNZWOMSNZYTWMWNTYSWAWAMMCESSWCWBWDWMWNWOWEWPXIMUBX
      ISNWPXHAMBCDXBEXEFGHIXEWFWGWHZXIMWAWIVEWJZWPWQXIMUUBUUAWKWL $.

    ellimc.g $e |- G =
        ( z e. ( A u. { B } ) |-> if ( z = B , C , ( F ` z ) ) ) $.
    ellimc.f $e |- ( ph -> F : A --> CC ) $.
    ellimc.a $e |- ( ph -> A C_ CC ) $.
    ellimc.b $e |- ( ph -> B e. CC ) $.
    $( Value of the limit predicate. ` C ` is the limit of the function ` F `
       at ` B ` if the function ` G ` , formed by adding ` B ` to the domain of
       ` F ` and setting it to ` C ` , is continuous at ` B ` .  (Contributed
       by Mario Carneiro, 25-Dec-2016.) $)
    ellimc $p |- ( ph ->
      ( C e. ( F limCC B ) <-> G e. ( ( J CnP K ) ` B ) ) ) $=
      ( vy co wcel wceq cc climc csn cun cv cfv cif cmpt cab wss wf wa limcfval
      ccnp syl3anc simpld eleq2d wi wb limcvallem ifeq1 mpteq2dv syl6eqr eleq1d
      elab3g syl bitrd ) AEFDUAQZREBCDUBUCZBUDZDSZPUDZVIFUEZUFZUGZDHIUMQUEZRZPU
      HZRZGVORZAVGVQEAVGVQSZVGTUIZACTFUJZCTUIZDTRZVTWAUKMNOPBCDFHIJKULUNUOUPAVS
      ETRUQZVRVSURAWBWCWDWEMNOBCDEFGHIJKLUSUNVPVSPETVKESZVNGVOWFVNBVHVJEVLUFZUG
      GWFBVHVMWGVJVKEVLUTVALVBVCVDVEVF $.
  $}

  ${
    $d f j x y z $.  $d u v w x z A $.  $d u v w x y z B $.  $d u v w x z ph $.
    $d u v w z C $.  $d u v w x y z F $.  $d u v w z K $.
    $( Reverse closure for the limit operator.  (Contributed by Mario Carneiro,
       28-Dec-2016.) $)
    limcrcl $p |- ( C e. ( F limCC B ) ->
      ( F : dom F --> CC /\ dom F C_ CC /\ B e. CC ) ) $=
      ( vf vx vz vy vj climc co wcel cc cpm wa cdm wf wss cv cfv cnex w3a crest
      csn cun weq cif cmpt ccnp ccnfld ctopn wsbc df-limc elmpt2cl elpm2 anbi1i
      cab df-3an bitr4i sylib ) BCAIJKCLLMJZKZALKZNZCOZLCPZVDLQZVBUAZDEUTLFDRZO
      ERZUCUDZFEUEGRFRVHSUFUGVIHRZVJUBJVKUHJSKHUIUJSUKGUPCAIBEGFDHULUMVCVEVFNZV
      BNVGVAVLVBLLCTTUNUOVEVFVBUQURUS $.

    $( Closure of the limit operator.  (Contributed by Mario Carneiro,
       25-Dec-2016.) $)
    limccl $p |- ( F limCC B ) C_ CC $=
      ( vx vz vy climc co cc wcel cdm csn cun wceq cfv cif cmpt ccnfld wss eqid
      cv ctopn crest ccnp cab wf w3a wa limcrcl limcfval simprd id sseldd ssriv
      syl ) CBAFGZHCTZUOIZUOHUPUQUODBJZAKLZDTZAMETUTBNOPAQUANZUSUBGZVAUCGNIEUDM
      ZUOHRZUQURHBUEURHRAHIUFVCVDUGAUPBUHEDURABVBVAVBSVASUIUNUJUQUKULUM $.

    limccl.f $e |- ( ph -> F : A --> CC ) $.
    $( It suffices to consider functions which are not defined at ` B ` to
       define the limit of a function.  In particular, the value of the
       original function ` F ` at ` B ` does not affect the limit of ` F ` .
       (Contributed by Mario Carneiro, 25-Dec-2016.) $)
    limcdif $p |- ( ph ->
      ( F limCC B ) = ( ( F |` ( A \ { B } ) ) limCC B ) ) $=
      ( vx vz co cc wss wcel wa wceq wf adantr ex cfv cmpt eqid sylbi climc csn
      cdif cres cv cdm fdm syl w3a limcrcl adantl simp2d eqsstr3d simp3d undif1
      jca cun difss fssres sylancl snssd unssd syl5eqssr unssad wb ccnfld ctopn
      cif crest ccnp simprl simprr ellimc eqcomi oveq2i mpteq12i wo elun orbi2i
      velsn wn pm5.61 fvres ifeq2da mpteq2ia eqtr4i ssdifssd bitr4d pm5.21ndd
      eqrdv ) AFDCUAHZDBCUBZUCZUDZCUAHZABIJZCIKZLZFUEZWKKZWSWOKZAWTWRAWTLZWPWQX
      BBDUFZIAXCBMZWTABIDNZXDEBIDUGUHOXBXCIDNZXCIJZWQWTXFXGWQUIACWSDUJUKZULUMXB
      XFXGWQXHUNUPPAXAWRAXALZWPWQXIBWLIXIBWLUQZWMWLUQZIBWLUOZXIWMWLIXIWMWNUFZIA
      XMWMMZXAAWMIWNNZXNAXEWMBJXOEBWLURBIWMDUSUTZWMIWNUGUHOXIXMIWNNZXMIJZWQXAXQ
      XRWQUIACWSWNUJUKZULUMXICIXIXQXRWQXSUNZVAVBVCVDXTUPPAWRWTXAVEAWRLZWTGXJGUE
      ZCMZWSYBDQZVHZRZCVFVGQZXJVIHZYGVJHQKXAYAGBCWSDYFYHYGYHSYGSZYFSAXEWREOAWPW
      QVKZAWPWQVLZVMYAGWMCWSWNYFYHYGXJXKYGVIXKXJXLVNZVOYIYFGXKYERGXKYCWSYBWNQZV
      HZRGXJYEXKYEYLYESVPGXKYNYEYBXKKYBWMKZYBWLKZVQZYNYEMZYBWMWLVRYQYOYCVQZYRYP
      YCYOGCVTVSYSYCYMYDWSYSYCWAZLYOYTLYMYDMZYOYCWBYOUUAYTYBWMDWCOTWDTTWEWFAXOW
      RXPOYABIWLYJWGYKVMWHPWIWJ $.

    limccl.a $e |- ( ph -> A C_ CC ) $.
    limccl.b $e |- ( ph -> B e. CC ) $.
    ellimc2.k $e |- K = ( TopOpen ` CCfld ) $.
    $( Write the definition of a limit directly in terms of open sets of the
       topology on the complex numbers.  (Contributed by Mario Carneiro,
       25-Dec-2016.) $)
    ellimc2 $p |- ( ph -> ( C e. ( F limCC B ) <-> ( C e. CC /\
      A. u e. K ( C e. u -> E. w e. K ( B e. w /\
        ( F " ( w i^i ( A \ { B } ) ) ) C_ u ) ) ) ) ) $=
      ( vz wcel cc wa wss wral wb syl vv climc co csn cdif cin cima wrex limccl
      cv wi sseli pm4.71ri cun wceq cfv cif cmpt ccnp eqid ellimc adantr ctopon
      crest wf cnfldtopon snssd unssd resttopon sylancr ssun2 snssg mpbiri elun
      wo velsn orbi2i bitri simpllr wn pm5.61 ffvelrnda ad2ant2r sylan2b ifclda
      a1i anassrs fmptd w3a iscnp baibd syl31anc iftrue fvmptg sylan eleq1d crn
      imbi1d ctop cnfldtop cnex ssex ad2antrr restval rexeqdv inex1 rgenw eleq2
      cvv vex imaeq2 sseq1d anbi12d rexrnmpt mp1i ad3antrrr elin rbaib wfn fvex
      ifexg sylancl ralrimivw fnmpt fmpt df-f baib simplrr inss2 sylbi ralrimiv
      3syl syl5ibrcom undif1 ineq2i indi eqtr3i raleqi ralunb 3bitrd bitr3d wne
      eldifsni ifnefalse ralbiia syl6bb cres df-ima resmpt syl5eq wfun cdm ffun
      rneqd difss sstri fdm syl5sseqr funimass4 syl2anc rexbidva pm5.74da bitrd
      3bitr4d ralbidva pm5.32da syl5bb ) FGEUBUCZNZFONZUVIPAUVJFCUJZNZEBUJZNZGU
      VMDEUDZUEZUFZUGUVKQZPZBHUHZUKZCHRZPUVIUVJUVHOFEGUIULUMAUVJUVIUWBAUVJPZUVI
      MDUVOUNZMUJZEUOZFUWEGUPZUQZURZEHUWDVDUCZHUSUCUPNZEUWIUPZUVKNZEUAUJZNZUWIU
      WNUGZUVKQZPZUAUWJUHZUKZCHRZUWBAUVIUWKSUVJAMDEFGUWIUWJHUWJUTLUWIUTZIJKVAVB
      UWCUWJUWDVCUPNZHOVCUPNZEUWDNZUWDOUWIVEZUWKUXASAUXCUVJAUXDUWDOQZUXCHLVFZAD
      UVOOJAEOKVGVHZUWDHOVIVJVBUXDUWCUXHWFAUXEUVJAUXEUVOUWDQZUVODVKAEONUXEUXJSK
      EUWDOVLTVMZVBUWCMUWDUWHOUWIUWEUWDNZUWCUWEDNZUWFVOZUWHONUXLUXMUWEUVONZVOUX
      NUWEDUVOVNUXOUWFUXMMEVPZVQVRUWCUXNPUWFFUWGOAUVJUXNUWFVSUWCUXNUWFVTZUWGONZ
      UXNUXQPUWCUXMUXQPUXRUXMUWFWAAUXMUXRUVJUXQADOUWEGIWBWCWDWGWEWDUXBWHUXCUXDU
      XEWIUWKUXFUXAUACEUWIUWJHUWDOWJWKWLUWCUWTUWACHUWCUVKHNZPZUWTUVLUWSUKZUWAUW
      CUWTUYASUXSUWCUWMUVLUWSUWCUWLFUVKAUXEUVJUWLFUOUXKMEUWHFUWDOUWIUWFFUWGWMZU
      XBWNWOWPWRVBUXTUVLUWSUVTUWCUXSUVLUWSUVTSUWCUXSUVLPZPZUWSUWRUABHUVMUWDUFZU
      RZWQZUHZEUYENZUWIUYEUGZUVKQZPZBHUHZUVTUYDUWRUAUWJUYGUYDHWSNUWDXINZUWJUYGU
      OHLWTAUYNUVJUYCAUXGUYNUXIUWDOXAXBTXCBUWDHWSXIXDVJXEUYEXINZBHRUYHUYMSUYDUY
      OBHUVMUWDBXJXFXGUWRUYLBUAHUYEUYFXIUYFUTUWNUYEUOZUWOUYIUWQUYKUWNUYEEXHUYPU
      WPUYJUVKUWNUYEUWIXKXLXMXNXOUYDUYLUVSBHUYDUVMHNZPZUYIUVNUYKUVRUYRUXEUYIUVN
      SAUXEUVJUYCUYQUXKXPUYIUVNUXEEUVMUWDXQXRTUYRMUYEUWHURZWQZUVKQZUWGUVKNZMUVQ
      RZUYKUVRUYRVUAUWHUVKNZMUVQRZVUCUYRVUDMUYERZVUAVUEUYRUWHXINZMUYERUYSUYEXSZ
      VUFVUASUYRVUGMUYEUYRUVJUWGXINVUGAUVJUYCUYQVSUWEGXTUWFFUWGOXIYAYBYCMUYEUWH
      UYSXIUYSUTZYDVUFVUHVUAVUFUYEUVKUYSVEVUHVUAPMUYEUVKUWHUYSVUIYEUYEUVKUYSYFV
      RYGYLUYRVUDMUVMUVOUFZRZVUFVUESUYRVUDMVUJUYRVUDUWEVUJNZUVLUWCUXSUVLUYQYHVU
      LUXOVUDUVLSVUJUVOUWEUVMUVOYIULUXOUWHFUVKUXOUWFUWHFUOUXPUYBYJWPTYMYKVUFVUE
      VUKVUFVUDMUVQVUJUNZRVUEVUKPVUDMUYEVUMUVMUVPUVOUNZUFUYEVUMVUNUWDUVMDUVOYNY
      OUVMUVPUVOYPYQYRVUDMUVQVUJYSVRXRTUUAVUDVUBMUVQUWEUVQNUWEUVPNZVUDVUBSUVQUV
      PUWEUVMUVPYIZULVUOUWHUWGUVKVUOUWEEUUBUWHUWGUOUWEDEUUCUWEEFUWGUUDTWPTUUEUU
      FUYRUYJUYTUVKUYRUYJUWIUYEUUGZWQUYTUWIUYEUUHUYRVUQUYSUYEUWDQVUQUYSUOUYRUVM
      UWDYIMUWDUYEUWHUUIXOUUNUUJXLUYRGUUKZUVQGUULZQUVRVUCSUYRDOGVEZVURAVUTUVJUY
      CUYQIXPZDOGUUMTUYRDUVQVUSUVQUVPDVUPDUVOUUOUUPUYRVUTVUSDUOVVADOGUUQTUURMUV
      QUVKGUUSUUTUVDXMUVAYTWGUVBUVCUVEYTUVFUVG $.

    limcnlp.n $e |- ( ph -> -. B e. ( ( limPt ` K ) ` A ) ) $.
    $( If ` B ` is not a limit point of the domain of the function ` F ` , then
       every point is a limit of ` F ` at ` B ` .  (Contributed by Mario
       Carneiro, 25-Dec-2016.) $)
    limcnlp $p |- ( ph -> ( F limCC B ) = CC ) $=
      ( vu vv cc cv wcel cdif wss wa cfv c0 vx climc co csn cin cima wi ellimc2
      wrex wral ccld ctop cnfldtop adantr ssdifssd cnfldtopon toponunii sylancr
      ccl clscld cldopn syl wb islp mtbid eldifd wceq difin2 sscls ssdif0 sylib
      clp eqtr3d imaeq2d ima0 syl6eq syl6eqss eleq2 ineq1 sseq1d anbi12d rspcev
      0ss syl12anc a1d ralrimivw ex pm4.71d bitr4d eqrdv ) AUADCUBUCZMAUANZWKOW
      LMOZWLKNZOZCLNZOZDWPBCUDZPZUEZUFZWNQZRZLEUIZUGZKEUJZRWMALKBCWLDEFGHIUHAWM
      XFAWMXFAWMRZXEKEXGXDWOXGMWSEUSSSZPZEOZCXIOZDXIWSUEZUFZWNQZXDXGXHEUKSOZXJX
      GEULOZWSMQZXOEIUMZXGBMWRABMQZWMGUNUOZWSEMMEEIUPUQZUTURXHEMYAVAVBAXKWMACMX
      HHACBEVLSSOZCXHOZJAXPXSYBYCVCXRGCBEMYAVDURVEVFUNXGXMTWNXGXMDTUFTXGXLTDXGW
      SXHPZXLTXGXQYDXLVGXTWSXHMVHVBXGWSXHQZYDTVGXGXPXQYEXRXTWSEMYAVIURWSXHVJVKV
      MVNDVOVPWNWCVQXCXKXNRLXIEWPXIVGZWQXKXBXNWPXICVRYFXAXMWNYFWTXLDWPXIWSVSVNV
      TWAWBWDWEWFWGWHWIWJ $.
  $}

  ${
    $d u v x y z A $.  $d u v x y z B $.  $d u v x y z C $.  $d u v x y z ph $.
    $d u v x y z F $.
    ellimc3.f $e |- ( ph -> F : A --> CC ) $.
    ellimc3.a $e |- ( ph -> A C_ CC ) $.
    ellimc3.b $e |- ( ph -> B e. CC ) $.
    $( Write the epsilon-delta definition of a limit.  (Contributed by Mario
       Carneiro, 28-Dec-2016.) $)
    ellimc3 $p |- ( ph -> ( C e. ( F limCC B ) <-> ( C e. CC /\
      A. x e. RR+ E. y e. RR+ A. z e. A
        ( ( z =/= B /\ ( abs ` ( z - B ) ) < y ) ->
          ( abs ` ( ( F ` z ) - C ) ) < x ) ) ) ) $=
      ( vv co wcel cc wss wa wrex wi crp vu climc cv csn cdif cima ccnfld ctopn
      cin cfv wral wne cmin cabs clt wbr eqid ellimc2 ccom cbl cnxmet a1i simpr
      cxmt simplr blcntr syl3anc rpxr adantl cnfldtopn blopn eleq2 sseq2 anbi2d
      cxr wceq rexbidv imbi12d rspcv mpid mopni2 mp3an1 ssrin imass2 sstr2 3syl
      syl com12 reximdv syl5com impr rexlimiva syl6 ralrimdva r19.29r ad3antrrr
      rpxrd ineq1 imaeq2d sseq1d anbi12d rspcev expr rexlimdva anim2d syl9 impd
      syl2anc syl5 expd expdimp com23 impbid wb wfun cdm wf ad2antrr ffun inss2
      difss fdm syl5sseqr syl5ss funimass4 simplrr sselda elbl3 syl22anc breq1d
      cnmetdval simplrl simpllr eldifi ffvelrn ralbidva imbi1i impexp ralbii2
      bitrd syl2an ancom bitr2i eldifsn imbi2i 3bitr4i 3bitr3g anassrs rexbidva
      elin bitri pm5.32da ) AGHFUBMNGONZGUAUCZNZFLUCZNZHUUPEFUDZUEZUIZUFZUUNPZQ
      ZLUGUHUJZRZSZUAUVDUKZQUUMDUCZFULZUVHFUMMUNUJZCUCZUOUPZQUVHHUJZGUMMUNUJZBU
      CZUOUPZSZDEUKZCTRZBTUKZQALUAEFGHUVDIJKUVDUQZURAUUMUVGUVTAUUMQZUVGHFUVKUNU
      MUSZUTUJZMZUUSUIZUFZGUVOUWDMZPZCTRZBTUKZUVTUWBUVGUWKUWBUVGUWJBTUWBUVOTNZQ
      ZUVGUUQUVAUWHPZQZLUVDRZUWJUWMUVGGUWHNZUWPUWMUWCOVDUJNZUUMUWLUWQUWRUWMVAVB
      ZAUUMUWLVEZUWBUWLVCUWCGUVOOVFVGUWMUWHUVDNZUVGUWQUWPSZSUWMUWRUUMUVOVONZUXA
      UWSUWTUWLUXCUWBUVOVHVIUWCGUVOUVDOUVDUWAVJZVKVGUVFUXBUAUWHUVDUUNUWHVPZUUOU
      WQUVEUWPUUNUWHGVLUXEUVCUWOLUVDUXEUVBUWNUUQUUNUWHUVAVMVNVQVRVSWGVTUWOUWJLU
      VDUUPUVDNZUUQUWNUWJUXFUUQQUWEUUPPZCTRZUWNUWJUWRUXFUUQUXHVACUUPUWCFUVDOUXD
      WAWBUWNUXGUWICTUXGUWNUWIUXGUWFUUTPUWGUVAPUWNUWISUWEUUPUUSWCUWFUUTHWDUWGUV
      AUWHWEWFWHWIWJWKWLWMWNUWBUWKUVFUAUVDUWBUUNUVDNZQUUOUWKUVEUWBUXIUUOUWKUVES
      ZUXIUUOQUWHUUNPZBTRZUWBUXJUWRUXIUUOUXLVABUUNUWCGUVDOUXDWAWBUWBUXLUWKUVEUX
      LUWKQUXKUWJQZBTRUWBUVEUXKUWJBTWOUWBUXMUVEBTUWMUXKUWJUVEUWMUWJUWPUXKUVEUWM
      UWIUWPCTUWMUVKTNZQZUWEUVDNZFUWENZUWIUWPSUXOUWRFONZUVKVONZUXPUWRUXOVAVBZAU
      XRUUMUWLUXNKWPZUXOUVKUWMUXNVCZWQUWCFUVKUVDOUXDVKVGUXOUWRUXRUXNUXQUXTUYAUY
      BUWCFUVKOVFVGUXPUXQUWIUWPUWOUXQUWIQLUWEUVDUUPUWEVPZUUQUXQUWNUWIUUPUWEFVLU
      YCUVAUWGUWHUYCUUTUWFHUUPUWEUUSWRWSWTXAXBXCXHXDUXKUWOUVCLUVDUXKUWNUVBUUQUW
      NUXKUVBUVAUWHUUNWEWHXEWIXFXGXDXIXJXIXKXLWNXMUWBUWJUVSBTUWMUWIUVRCTUWBUWLU
      XNUWIUVRXNUWBUWLUXNQZQZUWIUVMUWHNZDUWFUKZUVRUYEHXOZUWFHXPZPUWIUYGXNUYEEOH
      XQZUYHAUYJUUMUYDIXRZEOHXSWGUYEUWFUUSUYIUWEUUSXTUYEEUUSUYIEUURYAZUYEUYJUYI
      EVPUYKEOHYBWGYCYDDUWFUWHHYEXHUYEUVHUWENZUYFSZDUUSUKUVLUVPSZDUUSUKUYGUVRUY
      EUYNUYODUUSUYEUVHUUSNZQZUYMUVLUYFUVPUYQUYMUVHFUWCMZUVKUOUPZUVLUYQUWRUXSUX
      RUVHONZUYMUYSXNUWRUYQVAVBZUYQUVKUWBUWLUXNUYPYFWQAUXRUUMUYDUYPKWPZUYEUUSOU
      VHAUUSOPUUMUYDAUUSEOUYLJYDXRYGZUVHUWCFUVKOYHYIUYQUYRUVJUVKUOUYQUYTUXRUYRU
      VJVPVUCVUBUVHFUWCUWCUQZYKXHYJYTUYQUYFUVMGUWCMZUVOUOUPZUVPUYQUWRUXCUUMUVMO
      NZUYFVUFXNVUAUYQUVOUWBUWLUXNUYPYLWQAUUMUYDUYPYMZUYEUYJUVHENZVUGUYPUYKUVHE
      UURYNEOUVHHYOUUAZUVMUWCGUVOOYHYIUYQVUEUVNUVOUOUYQVUGUUMVUEUVNVPVUJVUHUVMG
      UWCVUDYKXHYJYTVRYPUYNUYFDUUSUWFUVHUWFNZUYFSUYPUYMQZUYFSUYPUYNSVUKVULUYFVU
      KUYMUYPQVULUVHUWEUUSUUJUYMUYPUUBUUKYQUYPUYMUYFYRUUCYSUYOUVQDUUSEVUIUVIQZU
      YOSVUIUVIUYOSZSUYPUYOSVUIUVQSVUIUVIUYOYRUYPVUMUYOUVHEFUUDYQUVQVUNVUIUVIUV
      LUVPYRUUEUUFYSUUGYTUUHUUIYPYTUULYT $.
  $}

  ${
    $d s t u w x B $.  $d s t u w x C $.  $d s t u w x F $.  $d s t u w x K $.
    $d t u w x A $.  $d s u x L $.  $d t u w x ph $.
    limcflf.f $e |- ( ph -> F : A --> CC ) $.
    limcflf.a $e |- ( ph -> A C_ CC ) $.
    limcflf.b $e |- ( ph -> B e. ( ( limPt ` K ) ` A ) ) $.
    limcflf.k $e |- K = ( TopOpen ` CCfld ) $.
    ${
      limcflf.c $e |- C = ( A \ { B } ) $.
      limcflf.l $e |- L = ( ( ( nei ` K ) ` { B } ) |`t C ) $.
      $( Lemma for ~ limcflf .  (Contributed by Mario Carneiro,
         25-Dec-2016.) $)
      limcflflem $p |- ( ph -> L e. ( Fil ` C ) ) $=
        ( cfv wcel cc wss wb sylancr mpbid csn cnei crest co cfil ccl cdif ctop
        clp cnfldtop cnfldtopon toponunii fveq2i syl6eleqr ctopon difss eqsstri
        islp a1i syl5ss lpss sseldd trnei syl3anc syl5eqel ) AGCUAZFUBNNDUCUDZD
        UENZMACDFUFNZNZOZVGVHOZACBVFUGZVINZVJACBFUINNZOZCVNOZJAFUHOZBPQZVPVQRFK
        UJZICBFPPFFKUKZULZURSTDVMVILUMUNAFPUONOZDPQCPOVKVLRWCAWAUSADBPDVMBLBVFU
        PUQIUTAVOPCAVRVSVOPQVTIBFPWBVASJVBDCFPVCVDTVE $.

      $( The limit operator can be expressed as a filter limit, from the filter
         of neighborhoods of ` B ` restricted to ` A \ { B } ` , to the
         topology of the complex numbers.  (If ` B ` is not a limit point of
         ` A ` , then it is still formally a filter limit, but the neighborhood
         filter is not a proper filter in this case.)  (Contributed by Mario
         Carneiro, 25-Dec-2016.) $)
      limcflf $p |- ( ph -> ( F limCC B ) = ( ( K fLimf L ) ` ( F |` C ) ) ) $=
        ( vu vt cfv cc wcel wss wa vx vw vs climc co cres cflf cv csn cdif cima
        cin wrex wi wral wb cnei cmpt crn cvv vex inex1 rgenw eqid imaeq2 inss2
        wceq resima2 ax-mp syl6eq sseq1d rexrnmpt mp1i crest fvex difss eqsstri
        syl5ss cnex ssex ad2antrr restval sylancr rexeqdv ctop cnfldtop opnneip
        syl syl5eq mp3an1 a1i ineq12d imaeq2d rspcev sylan anasss rexlimiva cnt
        id simprl cnfldtopon toponunii neii1 ntropn lpss sseldd snssd ad3antrrr
        neiint syl3anc mpbid snssg mpbird ntrss2 ssrin imass2 3syl simprr sstrd
        eleq2 ineq2i ineq1 syl5eqr anbi12d syl12anc rexlimdvaa impbid2 3bitr4rd
        clp anassrs pm5.74da ralbidva pm5.32da ellimc2 ctopon limcflflem fssres
        cfil wf sylancl isflf 3bitr4d eqrdv ) AUAECUDUEZEDUFZFGUGUEPZAUAUHZQRZU
        UGNUHZRZCUBUHZRZEUUKBCUIZUJZULZUKZUUISZTZUBFUMZUNZNFUOZTUUHUUJUUEUCUHZU
        KZUUISZUCGUMZUNZNFUOZTZUUGUUDRUUGUUFRZAUUHUVAUVGAUUHTZUUTUVFNFUVJUUIFRZ
        TUUJUUSUVEUVJUVKUUJUUSUVEUPUVJUVKUUJTZTZUVDUCOUUMFUQPZPZOUHZDULZURZUSZU
        MZEUVQUKZUUISZOUVOUMZUVEUUSUVQUTRZOUVOUOUVTUWCUPUVMUWDOUVOUVPDOVAVBVCUV
        DUWBOUCUVOUVQUVRUTUVRVDUVBUVQVGZUVCUWAUUIUWEUVCUUEUVQUKZUWAUVBUVQUUEVEU
        VQDSUWFUWAVGUVPDVFEUVQDVHVIVJVKVLVMUVMUVDUCGUVSUVMGUVODVNUEZUVSMUVMUVOU
        TRDUTRZUWGUVSVGUUMUVNVOAUWHUUHUVLADQSUWHADBQDUUNBLBUUMVPVQZIVRDQVSVTWHW
        AODUVOUTUTWBWCWIWDUVMUUSUWCUURUWCUBFUUKFRZUULUUQUWCUWJUULTUUKUVORZUUQUW
        CFWERZUWJUULUWKFKWFZCFUUKWGWJUWBUUQOUUKUVOUVPUUKVGZUWAUUPUUIUWNUVQUUOEU
        WNUVPUUKDUUNUWNWSDUUNVGUWNLWKWLWMVKWNWOWPWQUVMUWBUUSOUVOUVMUVPUVORZUWBT
        ZTZUVPFWRPPZFRZCUWRRZEUWRDULZUKZUUISZUUSUWQUWLUVPQSZUWSUWMUWQUWLUWOUXDU
        WMUVMUWOUWBWTZUUMFUVPQQFFKXAZXBZXCWCZUVPFQUXGXDWCUWQUWTUUMUWRSZUWQUWOUX
        IUXEUWQUWLUUMQSZUXDUWOUXIUPUWLUWQUWMWKAUXJUUHUVLUWPACQABFYIPPZQCAUWLBQS
        UXKQSUWMIBFQUXGXEWCJXFZXGXHUXHUUMFUVPQUXGXIXJXKUWQCQRZUWTUXIUPAUXMUUHUV
        LUWPUXLXHCUWRQXLWHXMUWQUXBUWAUUIUWQUWRUVPSZUXAUVQSUXBUWASUWQUWLUXDUXNUW
        MUXHUVPFQUXGXNWCUWRUVPDXOUXAUVQEXPXQUVMUWOUWBXRXSUURUWTUXCTUBUWRFUUKUWR
        VGZUULUWTUUQUXCUUKUWRCXTUXOUUPUXBUUIUXOUUOUXAEUXOUUOUUKDULUXADUUNUUKLYA
        UUKUWRDYBYCWMVKYDWNYEYFYGYHYJYKYLYMAUBNBCUUGEFHIUXLKYNAFQYOPRZGDYRPRDQU
        UEYSZUVIUVHUPUXPAUXFWKABCDEFGHIJKLMYPABQEYSDBSUXQHUWIBQDEYQYTUUGNUUEFGQ
        DUCUUAXJUUBUUC $.
    $}

    $( If ` B ` is a limit point of the domain of the function ` F ` , then
       there is at most one limit value of ` F ` at ` B ` .  (Contributed by
       Mario Carneiro, 25-Dec-2016.) $)
    limcmo $p |- ( ph -> E* x x e. ( F limCC B ) ) $=
      ( cv climc co wcel wmo csn cfv cc wf eqid cdif cres cnei crest limcflflem
      cflf cha cfil cnfldhaus a1i wss difss fssres sylancl cnfldtopon toponunii
      hausflf syl3anc limcflf eleq2d mobidv mpbird ) ABKZEDLMZNZBOVCECDPZUAZUBZ
      FVFFUCQQVGUDMZUFMQZNZBOZAFUGNZVIVGUHQNVGRVHSZVLVMAFJUIUJACDVGEFVIGHIJVGTZ
      VITZUEACRESVGCUKVNGCVFULCRVGEUMUNBVHFVIRVGRFFJUOUPUQURAVEVKBAVDVJVCACDVGE
      FVIGHIJVOVPUSUTVAVB $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d y z C $.  $d y D $.  $d y K $.  $d z ph $.
    limcmpt.a $e |- ( ph -> A C_ CC ) $.
    limcmpt.b $e |- ( ph -> B e. CC ) $.
    limcmpt.f $e |- ( ( ph /\ z e. A ) -> D e. CC ) $.
    limcmpt.j $e |- J = ( K |`t ( A u. { B } ) ) $.
    limcmpt.k $e |- K = ( TopOpen ` CCfld ) $.
    $( Express the limit operator for a function defined by a mapping.
       (Contributed by Mario Carneiro, 25-Dec-2016.) $)
    limcmpt $p |- ( ph -> ( C e. ( ( z e. A |-> D ) limCC B ) <->
 ( z e. ( A u. { B } ) |-> if ( z = B , C , D ) ) e. ( ( J CnP K ) ` B ) ) ) $=
      ( vy cmpt wcel wceq cfv cif wa climc co csn cun cv ccnp nfcv nfv nffvmpt1
      nfif eqeq1 fveq2 ifbieq2d cbvmpt cc eqid fmptd ellimc wn elun velsn bitri
      orbi2i pm5.61 simplbi sylanb adantl sylan2 fvmpt2 syl2anc anassrs ifeq2da
      wo mpteq2dva eleq1d bitrd ) AEBCFOZDUAUBPBCDUCZUDZBUEZDQZEVTVQRZSZOZDGHUF
      UBRZPBVSWAEFSZOZWEPANCDEVQWDGHLMBNVSWCNUEZDQZEWHVQRZSNWCUGWIBEWJWIBUHBEUG
      BCFWHUIUJVTWHQWAWIWBWJEVTWHDUKVTWHVQULUMUNABCFUOVQKVQUPZUQIJURAWDWGWEABVS
      WCWFAVTVSPZTWAWBFEAWLWAUSZWBFQZAWLWMTZTVTCPZFUOPZWNWOWPAWLWPWAVMZWMWPWLWP
      VTVRPZVMWRVTCVRUTWSWAWPBDVAVCVBWRWMTWPWMWPWAVDVEVFZVGWOAWPWQWTKVHBCFUOVQW
      KVIVJVKVLVNVOVP $.
  $}

  ${
    $d z A $.  $d z B $.  $d z C $.  $d z ph $.
    limcmpt2.a $e |- ( ph -> A C_ CC ) $.
    limcmpt2.b $e |- ( ph -> B e. A ) $.
    limcmpt2.f $e |- ( ( ph /\ ( z e. A /\ z =/= B ) ) -> D e. CC ) $.
    limcmpt2.j $e |- J = ( K |`t A ) $.
    limcmpt2.k $e |- K = ( TopOpen ` CCfld ) $.
    $( Express the limit operator for a function defined by a mapping.
       (Contributed by Mario Carneiro, 25-Dec-2016.) $)
    limcmpt2 $p |- ( ph -> ( C e. ( ( z e. ( A \ { B } ) |-> D ) limCC B ) <->
      ( z e. A |-> if ( z = B , C , D ) ) e. ( ( J CnP K ) ` B ) ) ) $=
      ( cmpt co wcel cun crest ccnp cc csn cdif cv wceq cif cfv ssdifssd sseldd
      climc wne wa eldifsn sylan2b eqid limcmpt undif1 wss snssd ssequn2 syl5eq
      sylib mpteq1d oveq2d syl6eqr oveq1d fveq1d eleq12d bitrd ) AEBCDUAZUBZFND
      UIOPBVJVIQZBUCZDUDEFUEZNZDHVKROZHSOZUFZPBCVMNZDGHSOZUFZPABVJDEFVOHACTVIIU
      GACTDIJUHVLVJPAVLCPVLDUJUKFTPVLCDULKUMVOUNMUOAVNVRVQVTABVKCVMAVKCVIQZCCVI
      UPAVICUQWACUDADCJURVICUSVAUTZVBADVPVSAVOGHSAVOHCROGAVKCHRWBVCLVDVEVFVGVH
      $.
  $}

  ${
    $d u v x B $.  $d u v x C $.  $d u v x F $.
    $( Any limit of ` F ` is also a limit of the restriction of ` F ` .
       (Contributed by Mario Carneiro, 28-Dec-2016.) $)
    limcresi $p |- ( F limCC B ) C_ ( ( F |` C ) limCC B ) $=
      ( vx vu vv climc co cv wcel cc cin cdif cima wss wa wrex wi wral wf ctopn
      cres cdm csn ccnfld cfv limcrcl simp1d simp2d eqid ellimc2 ibi wceq inss2
      simp3d difss sstri resima2 ax-mp inss1 ssdif sslin mp2b eqsstri sstr mpan
      imass2 anim2i reximi imim2i ralimi syl fresin syl5ss mpbird ssriv ) DCAGH
      ZCBUBZAGHZDIZVQJZVTVSJVTKJZVTEIZJZAFIZJZVRWECUCZBLZAUDZMZLZNZWCOZPZFUEUAU
      FZQZRZEWOSZPZWAWBWDWFCWEWGWIMZLZNZWCOZPZFWOQZRZEWOSZPZWSWAXHWAFEWGAVTCWOW
      AWGKCTZWGKOZAKJZAVTCUGZUHZWAXIXJXKXLUIZWAXIXJXKXLUOZWOUJZUKULXGWRWBXFWQEW
      OXEWPWDXDWNFWOXCWMWFWLXBOXCWMWLCWKNZXBWKBOWLXQUMWKWJBWEWJUNWJWHBWHWIUPWGB
      UNUQUQCWKBURUSWJWTOZWKXAOXQXBOWHWGOXRWGBUTZWHWGWIVAUSWJWTWEVBWKXACVGVCVDW
      LXBWCVEVFVHVIVJVKVHVLWAFEWHAVTVRWOWAXIWHKVRTXMWGKCBVMVLWAWHWGKXSXNVNXOXPU
      KVOVP $.
  $}

  ${
    $d z A $.  $d x z B $.  $d x z C $.  $d x z F $.  $d z K $.  $d x z ph $.
    limcres.f $e |- ( ph -> F : A --> CC ) $.
    limcres.c $e |- ( ph -> C C_ A ) $.
    limcres.a $e |- ( ph -> A C_ CC ) $.
    limcres.k $e |- K = ( TopOpen ` CCfld ) $.
    limcres.j $e |- J = ( K |`t ( A u. { B } ) ) $.
    limcres.i $e |- ( ph -> B e. ( ( int ` J ) ` ( C u. { B } ) ) ) $.
    $( If ` B ` is an interior point of ` C u. { B } ` relative to the domain
       ` A ` , then a limit point of ` F |`` C ` extends to a limit of ` F ` .
       (Contributed by Mario Carneiro, 27-Dec-2016.) $)
    limcres $p |- ( ph -> ( ( F |` C ) limCC B ) = ( F limCC B ) ) $=
      ( vz co cc wcel wa wss cfv vx cres climc cv wi cdm wf simp3d limccl sseli
      limcrcl jca a1i csn cun wceq cif cmpt ccnp crest ctop cuni cnt cnfldtopon
      wb ctopon adantr simprl snssd unssd resttopon syl5eqel topontop syl unss1
      sylancr toponuni sseqtrd wo simplrr ffvelrnda ifcld elsni iftrued eqeltrd
      elun adantl jaodan sylan2b eqid fmptd feq2d mpbid cnprest syl22anc ellimc
      toponunii fssresd sstrd resmptd velsn orbi2i bitri wn fvres sylbi ifeq2da
      pm5.61 mpteq2ia syl6reqr oveq1i cvv restabs syl3anc syl5req oveq1d fveq1d
      cnex ssex eleq12d bitrd 3bitr4rd ex pm5.21ndd eqrdv ) AUAEDUBZCUCOZECUCOZ
      ACPQZUAUDZPQZRZYJYGQZYJYHQZYMYLUEAYMYIYKYMYFUFZPYFUGYOPSYICYJYFUKUHYGPYJC
      YFUIUJULUMYNYLUEAYNYIYKYNEUFZPEUGYPPSYICYJEUKUHYHPYJCEUIUJULUMAYLYMYNVEAY
      LRZNBCUNZUOZNUDZCUPZYJYTETZUQZURZCFGUSOTQZUUDDYRUOZUBZCFUUFUTOZGUSOZTZQZY
      NYMYQFVAQZUUFFVBZSCUUFFVCTTQZUUMPUUDUGZUUEUUKVEYQFYSVFTZQZUULYQFGYSUTOZUU
      PLYQGPVFTZQZYSPSZUURUUPQGKVDZYQBYRPABPSYLJVGZYQCPAYIYKVHZVIVJZYSGPVKVPVLZ
      YSFVMVNYQUUFYSUUMYQDBSZUUFYSSZAUVGYLIVGZDBYRVOVNZYQUUQYSUUMUPUVFYSFVQVNZV
      RAUUNYLMVGYQYSPUUDUGUUOYQNYSUUCPUUDYTYSQYQYTBQZYTYRQZVSUUCPQZYTBYRWFYQUVL
      UVNUVMYQUVLRUUAYJUUBPAYIYKUVLVTYQBPYTEABPEUGYLHVGZWAWBYQUVMRZUUCYJPUVPUUA
      YJUUBUVMUUAYQYTCWCWGWDAYIYKUVMVTWEWHWIUUDWJZWKYQYSUUMPUUDUVKWLWMUUFCUUDFG
      UUMPUUMWJPGUVBWQWNWOYQNBCYJEUUDFGLKUVQUVOUVCUVDWPYQYMNUUFUUAYJYTYFTZUQZUR
      ZCGUUFUTOZGUSOZTZQUUKYQNDCYJYFUVTUWAGUWAWJKUVTWJYQBPDEUVOUVIWRYQDBPUVIUVC
      WSUVDWPYQUVTUUGUWCUUJYQUUGNUUFUUCURUVTYQNYSUUFUUCUVJWTNUUFUVSUUCYTUUFQZYT
      DQZUUAVSZUVSUUCUPUWDUWEUVMVSUWFYTDYRWFUVMUUAUWENCXAXBXCUWFUUAUVRUUBYJUWFU
      UAXDZRUWEUWGRUVRUUBUPZUWEUUAXHUWEUWHUWGYTDEXEVGXFXGXFXIXJYQCUWBUUIYQUWAUU
      HGUSYQUUHUURUUFUTOZUWAFUURUUFUTLXKYQUUTUVHYSXLQZUWIUWAUPUUTYQUVBUMUVJYQUV
      AUWJUVEYSPXRXSVNUUFYSGUUSXLXMXNXOXPXQXTYAYBYCYDYE $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.  $d x K $.
    cnplimc.k $e |- K = ( TopOpen ` CCfld ) $.
    cnplimc.j $e |- J = ( K |`t A ) $.
    $( A function is continuous at ` B ` iff its limit at ` B ` equals the
       value of the function there.  (Contributed by Mario Carneiro,
       28-Dec-2016.) $)
    cnplimc $p |- ( ( A C_ CC /\ B e. A ) -> ( F e. ( ( J CnP K ) ` B ) <->
      ( F : A --> CC /\ ( F ` B ) e. ( F limCC B ) ) ) ) $=
      ( vx cc wss wcel wa ccnp co cfv wf ctopon crest wceq cif climc cnfldtopon
      wi simpl resttopon sylancr syl5eqel cnpf2 3expia sylancl pm4.71rd csn cun
      cmpt simpr simplr snssd ssequn2 sylib feq2d mpbird oveq2d syl6reqr oveq1d
      cv feqmptd fveq1d eleq12d eqid ifid fveq2 adantl ifeq1da syl5eqr mpteq2ia
      simpll sseldd ellimc bitr4d pm5.32da bitrd ) AIJZBAKZLZCBDEMNZOZKZAICPZWG
      LWHBCOZCBUANKZLWDWGWHWDDAQOZKZEIQOKZWGWHUCWDDEARNZWKGWDWMWBWNWKKEFUBZWBWC
      UDAEIUEUFUGWOWLWMWGWHBCDEAIUHUIUJUKWDWHWGWJWDWHLZWGHABULZUMZHVEZCOZUNZBEW
      RRNZEMNZOZKWJWPCXAWFXDWPHWRICWPWRICPWHWDWHUOZWPWRAICWPWQAJWRASWPBAWBWCWHU
      PZUQWQAURUSZUTVAVFWPBWEXCWPDXBEMWPXBWNDWPWRAERXGVBGVCVDVGVHWPHABWICXAXBEX
      BVIFHWRWTWSBSZWIWTTZWSWRKZWTXHWTWTTXIXHWTVJXJXHWTWIWTXHWTWISXJWSBCVKVLVMV
      NVOXEWBWCWHVPZWPAIBXKXFVQVRVSVTWA $.
  $}

  ${
    $d x A $.  $d x F $.
    $( ` F ` is a continuous function iff the limit of the function at each
       point equals the value of the function.  (Contributed by Mario Carneiro,
       28-Dec-2016.) $)
    cnlimc $p |- ( A C_ CC -> ( F e. ( A -cn-> CC ) <->
      ( F : A --> CC /\ A. x e. A ( F ` x ) e. ( F limCC x ) ) ) ) $=
      ( cc wss ccncf co wcel ccnfld ctopn cfv crest wf wral wa wceq eqid ctopon
      ccn wb cv ccnp climc ssid cnfldtopon toponunii restid ax-mp eqcomi cncfcn
      mpan2 eleq2d resttopon mpan cncnp sylancl cnplimc baibd ralbidva pm5.32da
      an32s 3bitrd ) BDEZCBDFGZHCIJKZBLGZVESGZHZBDCMZCAUAZVFVEUBGKHZABNZOZVIVJC
      KCVJUCGHZABNZOVCVDVGCVCDDEVDVGPDUDBDVEVFVEVEQZVFQZVEDLGZVEVEDRKZHZVRVEPVE
      VPUEZVEVSDDVEWAUFUGUHUIUJUKULVCVFBRKHZVTVHVMTVTVCWBWABVEDUMUNWAACVFVEBDUO
      UPVCVIVLVOVCVIOVKVNABVCVJBHZVIVKVNTVCWCOVKVIVNBVJCVFVEVPVQUQURVAUSUTVB $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    cnlimci.f $e |- ( ph -> F e. ( A -cn-> D ) ) $.
    cnlimci.c $e |- ( ph -> B e. A ) $.
    $( If ` F ` is a continuous function, then the limit of the function at any
       point equals its value.  (Contributed by Mario Carneiro,
       28-Dec-2016.) $)
    cnlimci $p |- ( ph -> ( F ` B ) e. ( F limCC B ) ) $=
      ( vx wcel cv cfv climc co wral cc wss ccncf cncfrss syl cncfrss2 simplbda
      ssid cncfss sylancl sseldd wf syl2anc wceq fveq2 oveq2 eleq12d rspcv sylc
      cnlimc ) ACBIHJZEKZEUOLMZIZHBNZCEKZECLMZIZGABOPZEBOQMZIZUSAEBDQMZIZVCFBDE
      RSAVFVDEADOPZOOPVFVDPAVGVHFBDETSOUBBDOUCUDFUEVCVEBOEUFUSHBEUNUAUGURVBHCBU
      OCUHUPUTUQVAUOCEUIUOCELUJUKULUM $.
  $}

  ${
    $d x A $.  $d x B $.  $d x D $.  $d x Y $.
    cnmptlimc.f $e |- ( ph -> ( x e. A |-> X ) e. ( A -cn-> D ) ) $.
    cnmptlimc.b $e |- ( ph -> B e. A ) $.
    cnmptlimc.1 $e |- ( x = B -> X = Y ) $.
    $( If ` F ` is a continuous function, then the limit of the function at any
       point equals its value.  (Contributed by Mario Carneiro,
       28-Dec-2016.) $)
    cnmptlimc $p |- ( ph -> Y e. ( ( x e. A |-> X ) limCC B ) ) $=
      ( cmpt cfv climc co wcel wceq wral wf ccncf cncff syl eqid fmpt sylibr cv
      eleq1d rspcv sylc fvmptg syl2anc cnlimci eqeltrrd ) ADBCFKZLZGUMDMNADCOZG
      EOZUNGPIAUOFEOZBCQZUPIACEUMRZURAUMCESNOUSHCEUMTUABCEFUMUMUBZUCUDUQUPBDCBU
      EDPFGEJUFUGUHBDFGCEUMJUTUIUJACDEUMHIUKUL $.
  $}

  ${
    $d x y B $.  $d x y C $.  $d x y D $.  $d x y F $.  $d x y G $.  $d x ph $.
    $d x A $.  $d x K $.
    limccnp.f $e |- ( ph -> F : A --> D ) $.
    limccnp.d $e |- ( ph -> D C_ CC ) $.
    limccnp.k $e |- K = ( TopOpen ` CCfld ) $.
    limccnp.j $e |- J = ( K |`t D ) $.
    limccnp.c $e |- ( ph -> C e. ( F limCC B ) ) $.
    limccnp.b $e |- ( ph -> G e. ( ( J CnP K ) ` C ) ) $.
    $( If the limit of ` F ` at ` B ` is ` C ` and ` G ` is continuous at
       ` C ` , then the limit of ` G o. F ` at ` B ` is ` G ( C ) ` .
       (Contributed by Mario Carneiro, 28-Dec-2016.) $)
    limccnp $p |- ( ph -> ( G ` C ) e. ( ( G o. F ) limCC B ) ) $=
      ( vx cfv co wcel cc vy ccom climc csn cun cv wceq cmpt crest ccnp wa cuni
      cif eqid cnprcl syl ctopon cnfldtopon resttopon sylancr syl5eqel toponuni
      wss eleqtrrd ad2antrr wn wf elun elsni orim2i sylbi adantl orcomd orcanai
      wo ffvelrnd ifclda eqidd cnpf2 syl3anc feqmptd fveq2 fmptco fvco3 syl2anc
      a1i ifeq2da fvif syl6eqr mpteq2dva eqtr4d fssd cdm fdm w3a limcrcl simp2d
      eqsstr3d simp3d ellimc mpbid ctop wb cnfldtop fmptd snssd unssd toponunii
      feq2d cnprest2 oveq2i fveq1i syl6eleqr ssun2 snssg mpbiri iftrue eqeltrrd
      fvmptg fveq2d cnpco fco mpbird ) ADGQZGFUBZCUCRSPBCUDZUEZPUFZCUGZYDYHYEQZ
      UMZUHZCIYGUIRZIUJRQZSAGPYGYIDYHFQZUMZUHZUBZYLYNAYRPYGYPGQZUHYLAPUAYGEYPUA
      UFZGQYSYQGAYHYGSZUKZYIDYOEADESZUUAYIADHULZEAGDHIUJRZQZSZDUUDSODGHIUUDUUDU
      NUOUPAHEUQQZSZEUUDUGAHIEUIRZUUHMAITUQQSZETVCZUUJUUHSILURZKEITUSUTVAZEHVBU
      PVDZVEUUBYIVFZUKZBEYHFABEFVGZUUAUUPJVEZUUBYIYHBSZUUBUUTYIUUAUUTYIVOZAUUAU
      UTYHYFSZVOUVAYHBYFVHUVBYIUUTYHCVIVJVKVLVMVNZVPVQZAYQVRAUAETGAUUIUUKUUGETG
      VGZUUNUUKAUUMWFODGHIETVSVTZWAYTYPGWBWCAPYGYKYSUUBYKYIYDYOGQZUMYSUUBYIYJUV
      GYDUUQUURUUTYJUVGUGUUSUVCBEYHGFWDWEWGYIDYOGWHWIWJWKAYQCYMHUJRZQZSGCYQQZUU
      EQZSYRYNSAYQCYMUUJUJRZQZUVIAYQYNSZYQUVMSZADFCUCRSZUVNNAPBCDFYQYMIYMUNZLYQ
      UNZABETFJKWLABFWMZTAUURUVSBUGJBEFWNUPAUVSTFVGZUVSTVCZCTSZAUVPUVTUWAUWBWON
      CDFWPUPZWQWRZAUVTUWAUWBUWCWSZWTXAAIXBSZYMULZEYQVGZUULUVNUVOXCUWFAILXDWFAY
      GEYQVGUWHAPYGYPEYQUVDUVRXEAYGUWGEYQAYMYGUQQSZYGUWGUGAUUKYGTVCUWIUUMABYFTU
      WDACTUWEXFXGYGITUSUTYGYMVBUPXIXAKECYQYMIUWGTUWGUNTIUUMXHXJVTXACUVHUVLHUUJ
      YMUJMXKXLXMAGUUFUVKOAUVJDUUEACYGSZUUCUVJDUGAUWJYFYGVCZYFBXNAUWBUWJUWKXCUW
      ECYGTXOUPXPUUOPCYPDYGEYQYIDYOXQUVRXSWEXTVDCYQGYMHIYAWEXRAPBCYDYEYLYMIUVQL
      YLUNAUVEUURBTYEVGUVFJBETGFYBWEUWDUWEWTYC $.
  $}

  ${
    $d x y B $.  $d x y C $.  $d x y D $.  $d x y H $.  $d x ph $.  $d x y X $.
    $d x A $.  $d y R $.  $d y S $.  $d x y Y $.
    limccnp2.r $e |- ( ( ph /\ x e. A ) -> R e. X ) $.
    limccnp2.s $e |- ( ( ph /\ x e. A ) -> S e. Y ) $.
    limccnp2.x $e |- ( ph -> X C_ CC ) $.
    limccnp2.y $e |- ( ph -> Y C_ CC ) $.
    limccnp2.k $e |- K = ( TopOpen ` CCfld ) $.
    limccnp2.j $e |- J = ( ( K tX K ) |`t ( X X. Y ) ) $.
    limccnp2.c $e |- ( ph -> C e. ( ( x e. A |-> R ) limCC B ) ) $.
    limccnp2.d $e |- ( ph -> D e. ( ( x e. A |-> S ) limCC B ) ) $.
    limccnp2.h $e |- ( ph -> H e. ( ( J CnP K ) ` <. C , D >. ) ) $.
    $( The image of a convergent sequence under a continuous map is convergent
       to the image of the original point.  Binary operation version.
       (Contributed by Mario Carneiro, 28-Dec-2016.) $)
    limccnp2 $p |- ( ph ->
      ( C H D ) e. ( ( x e. A |-> ( R H S ) ) limCC B ) ) $=
      ( vy co cmpt climc wcel csn cun wceq cif crest ccnp cfv cop ccom cxp cuni
      cv wa eqid cnprcl syl ctopon ctx cc wss cnfldtopon txtopon xpss12 syl2anc
      mp2an resttopon sylancr syl5eqel toponuni eleqtrrd opelxp simpld ad2antrr
      sylib wn simpll simpr elun ord elsni syl6 con1d imp ifclda simprd opelxpi
      wo eqidd wf cnpf2 syl3anc feqmptd fveq2 df-ov ovif12 eqtr3i syl6eq fmptco
      a1i cdm dmmptd w3a limcrcl simp2d eqsstr3d simp3d snssd unssd ssun2 snssg
      wb mpbiri adantr limcmpt mpbid txcnp ctop topontopi fmptd feq2d toponunii
      sseldd cnprest2 oveq2i fveq1i syl6eleqr iftrue opeq12d fvmpt fveq2d cnpco
      opex eqeltrrd fovrnd mpbird ) AEFIUDZBCGHIUDZUEDUFUDUGBCDUHZUIZBUSZDUJZUU
      CUUDUKZUEZDKUUFULUDZKUMUDUNZUGAIBUUFUUHEGUKZUUHFHUKZUOZUEZUPZUUJUULABUCUU
      FLMUQZUUOUCUSZIUNZUUIUUPIAUUGUUFUGZUTZUUMLUGUUNMUGUUOUURUGUVBUUHEGLAELUGZ
      UVAUUHAUVCFMUGZAEFUOZUURUGUVCUVDUTAUVEJURZUURAIUVEJKUMUDZUNZUGZUVEUVFUGUB
      UVEIJKUVFUVFVAVBVCAJUURVDUNZUGZUURUVFUJAJKKVEUDZUURULUDZUVJSAUVLVFVFUQZVD
      UNUGZUURUVNVGZUVMUVJUGKVFVDUNUGZUVQUVOKRVHZUVRKKVFVFVIVLZALVFVGZMVFVGZUVP
      PQLVFMVFVJVKZUURUVLUVNVMVNVOZUURJVPVCVQEFLMVRWAZVSVTUVBUUHWBZUTZAUUGCUGZG
      LUGAUVAUWEWCZUVBUWEUWGUVBUWGUUHUVBUWGWBUUGUUEUGZUUHUVBUWGUWIUVBUVAUWGUWIW
      NAUVAWDUUGCUUEWEWAWFUUGDWGWHWIWJZNVKWKUVBUUHFHMAUVDUVAUUHAUVCUVDUWDWLVTUW
      FAUWGHMUGUWHUWJOVKWKUUMUUNLMWMVKZAUUPWOAUCUURVFIAUVKUVQUVIUURVFIWPZUWCUVQ
      AUVRXFZUBUVEIJKUURVFWQWRZWSUUSUUOUJUUTUUOIUNZUUIUUSUUOIWTUUMUUNIUDUWOUUIU
      UMUUNIXAUUHEGFHIXBXCXDXEAUUPDUUKJUMUDZUNZUGIDUUPUNZUVGUNZUGUUQUULUGAUUPDU
      UKUVMUMUDZUNZUWQAUUPDUUKUVLUMUDUNUGZUUPUXAUGZABUUMUUNDUUKKKUUFVFVFAUVQUUF
      VFVGUUKUUFVDUNUGZUVRACUUEVFACBCGUEZXGZVFABUXECGLUXEVANXHAUXFVFUXEWPZUXFVF
      VGZDVFUGZAEUXEDUFUDUGZUXGUXHUXIXITDEUXEXJVCZXKXLZADVFAUXGUXHUXIUXKXMZXNXO
      UUFKVFVMVNZUWMUWMADUUFUGZUUEUUFVGZUUECXPAUXIUXOUXPXRUXMDUUFVFXQVCXSZAUXJB
      UUFUUMUEUULUGTABCDEGUUKKUXLUXMAUWGUTZLVFGAUVTUWGPXTNYIUUKVAZRYAYBAFBCHUED
      UFUDUGBUUFUUNUEUULUGUAABCDFHUUKKUXLUXMUXRMVFHAUWAUWGQXTOYIUXSRYAYBYCAUVLY
      DUGZUUKURZUURUUPWPZUVPUXBUXCXRUXTAUVNUVLUVSYEXFAUUFUURUUPWPUYBABUUFUUOUUR
      UUPUWKUUPVAZYFAUUFUYAUURUUPAUXDUUFUYAUJUXNUUFUUKVPVCYGYBUWBUURDUUPUUKUVLU
      YAUVNUYAVAUVNUVLUVSYHYJWRYBDUWPUWTJUVMUUKUMSYKYLYMAIUVHUWSUBAUWRUVEUVGAUX
      OUWRUVEUJUXQBDUUOUVEUUFUUPUUHUUMEUUNFUUHEGYNUUHFHYNYOUYCEFYSYPVCYQVQDUUPI
      UUKJKYRVKYTABCDUUCUUDUUKKUXLUXMUXRGHVFLMIAUWLUWGUWNXTNOUUAUXSRYAUUB $.
  $}

  ${
    $d x A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y ph $.  $d y R $.
    $d x S $.  $d y T $.
    limcco.r $e |- ( ( ph /\ ( x e. A /\ R =/= C ) ) -> R e. B ) $.
    limcco.s $e |- ( ( ph /\ y e. B ) -> S e. CC ) $.
    limcco.c $e |- ( ph -> C e. ( ( x e. A |-> R ) limCC X ) ) $.
    limcco.d $e |- ( ph -> D e. ( ( y e. B |-> S ) limCC C ) ) $.
    limcco.1 $e |- ( y = R -> S = T ) $.
    limcco.2 $e |- ( ( ph /\ ( x e. A /\ R = C ) ) -> T = D ) $.
    $( Composition of two limits.  (Contributed by Mario Carneiro,
       29-Dec-2016.) $)
    limcco $p |- ( ph -> D e. ( ( x e. A |-> T ) limCC X ) ) $=
      ( co wcel cc csn cun cv wceq cif cmpt ccom climc ccnfld ctopn crest wa wo
      cfv wn wne expr necon1bd wb limccl sseldi adantr elsn2g sylibrd orrd elun
      syl sylibr eqid fmptd cdm dmmptd wf wss w3a limcrcl simp2d eqsstr3d snssd
      unssd ccnp limcmpt mpbid limccnp ssun2 snssg mpbiri iftrue fvmptg syl2anc
      eqidd eqeq1 ifbieq2d fmptco ifid anassrs ifeq1da syl5reqr mpteq2dva eqtrd
      oveq1d 3eltr3d ) AFCEFUAZUBZCUCZFUDZGIUEZUFZUNZXHBDHUFZUGZKUHRGBDJUFZKUHR
      ADKFXDXJXHUIUJUNZXDUKRZXMABDHXDXJABUCDSZULZHESZHXCSZUMHXDSXPXQXRXPXQUOHFU
      DZXRXPXQHFAXOHFUPXQLUQURXPFTSZXRXSUSAXTXOAXJKUHRZTFKXJUTNVAZVBHFTVCVGVDVE
      HEXCVFVHZXJVIVJAEXCTAECEIUFZVKZTACYDEITYDVIMVLAYETYDVMZYETVNZXTAGYDFUHRZS
      ZYFYGXTVOOFGYDVPVGVQVRZAFTYBVSVTXMVIZXNVIZNAYIXHFXNXMWARUNSOACEFGIXNXMYJY
      BMYLYKWBWCWDAFXDSZYIXIGUDAYMXCXDVNZXCEWEAFYASYMYNUSNFXDYAWFVGWGOCFXGGXDYH
      XHXFGIWHXHVIWIWJAXKXLKUHAXKBDXSGJUEZUFXLABCDXDHXGYOXJXHYCAXJWKAXHWKXEHUDX
      FXSIJGXEHFWLPWMWNABDYOJXPJXSJJUEYOXSJWOXPXSJGJAXOXSJGUDQWPWQWRWSWTXAXB $.
  $}

  ${
    $d a g k u v x y z A $.  $d a g k u v x y z C $.  $d a g k u v x y F $.
    $d a g k u v y B $.  $d a g k u v y ph $.
    limciun.1 $e |- ( ph -> A e. Fin ) $.
    limciun.2 $e |- ( ph -> A. x e. A B C_ CC ) $.
    limciun.3 $e |- ( ph -> F : U_ x e. A B --> CC ) $.
    limciun.4 $e |- ( ph -> C e. CC ) $.
    $( A point is a limit of ` F ` on the finite union ` U_ x e. A B ( x ) `
       iff it is the limit of the restriction of ` F ` to each ` B ( x ) ` .
       (Contributed by Mario Carneiro, 30-Dec-2016.) $)
    limciun $p |- ( ph -> ( F limCC C ) =
      ( CC i^i |^|_ x e. A ( ( F |` B ) limCC C ) ) ) $=
      ( va cc cin wss wral cv wcel wa cima nfcv vy vu vv vg vk vz climc co cres
      ciin limccl limcresi rgenw ssiin mpbir ssini a1i elriin ciun ccnfld ctopn
      csn cdif cfv wrex wi simprl wf cfn wex ad2antrr csb simplrr nfcsb1v nfres
      nfov nfcri wceq csbeq1a reseq2d oveq1d eleq2d rspc mpan9 wb ssiun2 cbviun
      syl6sseqr adantl fssresd simpr nfss sseq1d sylc eqid ellimc2 mpbid simprd
      adantlr simplrl rsp syl3c ralrimiva nfdif nfin nfima nfrex difeq1d ineq2d
      nfv nfan imaeq12d anbi2d rexbidv cbvral sylibr eleq2 ineq1 imaeq2d ac6sfi
      anbi12d syl2anc crn cint cnfldtop frn ad2antrl wfo adantr wfn dffn4 sylib
      ctop ffn fofi syl indifcom imaeq2i eqtri iunss cnfldtopon rintopn syl3anc
      toponunii simpl ralimi ad2antll ralrn mpbird elrint sylanbrc iunin1 inss2
      eqtr4i imaiun fnfvelrn sylan intss1 syl5ss ssdifd sslin imass2 3syl inss1
      resima2 ax-mp adantld ralimdva imp syl5eqss rspcev syl12anc exlimddv expr
      sstr2 mpbir2and ex syl5bi ssrdv eqssd ) AFEUGUHZLBCFDUIZEUGUHZUJZMZUWAUWE
      NAUWALUWDEFUKUWAUWDNUWAUWCNZBCOUWFBCEDFULUMBCUWCUWAUNUOUPUQAUAUWEUWAUAPZU
      WEQUWGLQZUWGUWCQZBCOZRZAUWGUWAQZBLUWGUWCCURAUWKUWLAUWKRZUWLUWHUWGUBPZQZEU
      CPZQZFUWPBCDUSZEVBZVCZMZSZUWNNZRZUCUTVAVDZVEZVFZUBUXEOAUWHUWJVGUWMUXGUBUX
      EUWMUWNUXEQZUWOUXFUWMUXHUWORZRZCUXEUDPZVHZEBPZUXKVDZQZUWBUXNDUWSVCZMZSZUW
      NNZRZBCOZRZUXFUDUXJCVIQZEUEPZQZUWBUYDUXPMZSZUWNNZRZUEUXEVEZBCOZUYBUDVJAUY
      CUWKUXIGVKZUXJUYEFBKPZDVLZUIZUYDUYNUWSVCZMZSZUWNNZRZUEUXEVEZKCOUYKUXJVUAK
      CUXJUYMCQZRZUWOVUAVFZUBUXEOZUXHUWOVUAVUCUWHVUEVUCUWGUYOEUGUHZQZUWHVUERZUX
      JUWJVUBVUGAUWHUWJUXIVMUWIVUGBUYMCBUAVUFBUYOEUGBFUYNBFTBUYMDVNZVOZBUGTBETV
      PVQUXMUYMVRZUWCVUFUWGVUKUWBUYOEUGVUKDUYNFBUYMDVSZVTZWAWBWCWDUWMVUBVUGVUHW
      EUXIUWMVUBRZUEUBUYNEUWGUYOUXEVUNUWRLUYNFAUWRLFVHZUWKVUBIVKVUBUYNUWRNUWMVU
      BUYNKCUYNUSUWRKCUYNWFBKCDUYNKDTVUIVULWGWHWIWJVUNVUBDLNZBCOZUYNLNZUWMVUBWK
      AVUQUWKVUBHVKVUPVURBUYMCBUYNLVUIBLTWLVUKDUYNLVULWMWCWNAELQZUWKVUBJVKUXEWO
      ZWPWSWQWRUWMUXHUWOVUBWTUWMUXHUWOVUBVMVUDUBUXEXAXBXCUYJVUABKCUYJKXJUYTBUEU
      XEBUXETUYEUYSBUYEBXJBUYRUWNBUYOUYQVUJBUYDUYPBUYDTBUYNUWSVUIBUWSTXDXEXFBUW
      NTWLXKXGVUKUYIUYTUEUXEVUKUYHUYSUYEVUKUYGUYRUWNVUKUWBUYOUYFUYQVUMVUKUXPUYP
      UYDVUKDUYNUWSVULXHXIXLWMXMXNXOXPUYIUXTBUECUXEUDUYDUXNVRZUYEUXOUYHUXSUYDUX
      NEXQVVAUYGUXRUWNVVAUYFUXQUWBUYDUXNUXPXRXSWMYAXTYBUXJUYBRZLUXKYCZYDZMZUXEQ
      ZEVVEQZFVVEUWTMZSZUWNNZUXFVVBUXEYMQZVVCUXENZVVCVIQZVVFVVKVVBUXEVUTYEUQUXL
      VVLUXJUYACUXEUXKYFYGVVBUYCCVVCUXKYHZVVMUXJUYCUYBUYLYIVVBUXKCYJZVVNUXLVVOU
      XJUYACUXEUXKYNZYGZCUXKYKYLCVVCUXKYOYBVVCUXELLUXEUXEVUTUUAUUDUUBUUCVVBVUSE
      UFPZQZUFVVCOZVVGUWMVUSUXIUYBAVUSUWKJYIZVKVVBVVTUXOBCOZUYAVWBUXJUXLUXTUXOB
      CUXOUXSUUEUUFUUGVVBVVOVVTVWBWEVVQVVSUXOUFBCUXKVVRUXNEXQUUHYPUUIUFLVVCEUUJ
      UUKVVBVVIBCFDVVEUWSVCZMZSZUSZUWNVVIFBCVWDUSZSVWFVVHVWGFVVHUWRVWCMVWGVVEUW
      RUWSYQBCVWCDUULUUNYRBFCVWDUUOYSVVBVWEUWNNZBCOZVWFUWNNUYBVWIUXJUXLUYAVWIUX
      LUXTVWHBCUXLUXMCQZRZUXSVWHUXOVWKVWEUXRNUXSVWHVFVWKVWEFDUXNUWSVCZMZSZUXRVW
      KVWCVWLNVWDVWMNVWEVWNNVWKVVEUXNUWSVWKVVEVVDUXNLVVDUUMVWKUXNVVCQZVVDUXNNUX
      LVVOVWJVWOVVPCUXMUXKUUPUUQUXNVVCUURYPUUSUUTVWCVWLDUVAVWDVWMFUVBUVCUXRUWBV
      WMSZVWNUXQVWMUWBUXNDUWSYQYRVWMDNVWPVWNVRDVWLUVDFVWMDUVEUVFYSWHVWEUXRUWNUV
      OYPUVGUVHUVIWIBCVWEUWNYTXPUVJUXDVVGVVJRUCVVEUXEUWPVVEVRZUWQVVGUXCVVJUWPVV
      EEXQVWQUXBVVIUWNVWQUXAVVHFUWPVVEUWTXRXSWMYAUVKUVLUVMUVNXCUWMUCUBUWREUWGFU
      XEAVUOUWKIYIAUWRLNZUWKAVUQVWRHBCDLYTXPYIVWAVUTWPUVPUVQUVRUVSUVT $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y F $.  $d x ph $.
    limcun.1 $e |- ( ph -> A C_ CC ) $.
    limcun.2 $e |- ( ph -> B C_ CC ) $.
    limcun.3 $e |- ( ph -> F : ( A u. B ) --> CC ) $.
    $( A point is a limit of ` F ` on ` A u. B ` iff it is the limit of the
       restriction of ` F ` to ` A ` and to ` B ` .  (Contributed by Mario
       Carneiro, 30-Dec-2016.) $)
    limcun $p |- ( ph -> ( F limCC C ) =
      ( ( ( F |` A ) limCC C ) i^i ( ( F |` B ) limCC C ) ) ) $=
      ( vy climc co cres cc wcel wf wss a1i wa adantr cvv vx cin cv cdm limcrcl
      wi simp3d inss1 sseli syl cpr ciin cfn prfi wral cnex ssex ralprg syl2anc
      wb sseq1 mpbir2and ciun cun cuni uniiun uniprg syl5eqr feq2d mpbird simpr
      wceq limciun eleq2d reseq2 oveq1d anbi2d limccl syl6bbr elriin elin bitrd
      pm4.71ri 3bitr4g ex pm5.21ndd eqrdv ) AUAEDJKZEBLZDJKZECLZDJKZUBZADMNZUAU
      CZWHNZWOWMNZWPWNUFAWPEUDZMEOWRMPWNDWOEUEUGQWQWNUFAWQWOWJNZWNWMWJWOWJWLUHU
      IWSWIUDZMWIOWTMPWNDWOWIUEUGUJQAWNWPWQUTAWNRZWPWOMIBCUKZEIUCZLZDJKZULUBZNZ
      WQXAWHXFWOXAIXBXCDEXBUMNXABCUNQXAXCMPZIXBUOZBMPZCMPZAXJWNFSZAXKWNGSZXABTN
      ZCTNZXIXJXKRUTXAXJXNXLBMUPUQUJZXAXKXOXMCMUPUQUJZXHXJXKIBCTTXCBMVAXCCMVAUR
      USVBXAIXBXCVCZMEOBCVDZMEOZAXTWNHSXAXRXSMEXAXRXBVEZXSIXBVFXAXNXOYAXSVLXPXQ
      BCTTVGUSVHVIVJAWNVKVMVNXAWOMNZWOXENZIXBUOZRZWSWOWLNZRZXGWQXAYEYBYGRYGXAYD
      YGYBXAXNXOYDYGUTXPXQYCWSYFIBCTTXCBVLZXEWJWOYHXDWIDJXCBEVOVPVNXCCVLZXEWLWO
      YIXDWKDJXCCEVOVPVNURUSVQYGYBWSYBYFWJMWODWIVRUISWCVSIMWOXEXBVTWOWJWLWAWDWB
      WEWFWG $.
  $}

  ${
    dvlem.1 $e |- ( ph -> F : D --> CC ) $.
    dvlem.2 $e |- ( ph -> D C_ CC ) $.
    dvlem.3 $e |- ( ph -> B e. D ) $.
    $( Closure for a difference quotient.  (Contributed by Mario Carneiro,
       1-Sep-2014.)  (Revised by Mario Carneiro, 9-Feb-2015.) $)
    dvlem $p |- ( ( ph /\ A e. ( D \ { B } ) ) ->
        ( ( ( F ` A ) - ( F ` B ) ) / ( A - B ) ) e. CC ) $=
      ( csn cdif wcel wa cfv cmin co cc adantr ffvelrnd subcld sseldd wf simprl
      wne cdiv eldifsn wss simprr subne0d divcld sylan2b ) BDCIJKABDKZBCUCZLZBE
      MZCEMZNOZBCNOZUDOPKBDCUEAUMLZUPUQURUNUOURDPBEADPEUAUMFQZAUKULUBZRURDPCEUS
      ACDKUMHQZRSURBCURDPBADPUFUMGQZUTTZURDPCVBVATZSURBCVCVDAUKULUGUHUIUJ $.
  $}

  ${
    $d f s x z A $.  $d x z B $.  $d f s x z F $.  $d x z C $.  $d f s x z K $.
    $d f s x z S $.  $d f s x T $.  $d x G $.
    dvval.t $e |- T = ( K |`t S ) $.
    dvval.k $e |- K = ( TopOpen ` CCfld ) $.
    $( Value and set bounds on the derivative operator.  (Contributed by Mario
       Carneiro, 7-Aug-2014.)  (Revised by Mario Carneiro, 25-Dec-2016.) $)
    dvfval $p |- ( ( S C_ CC /\ F : A --> CC /\ A C_ S ) -> ( ( S _D F ) =
      U_ x e. ( ( int ` T ) ` A ) ( { x } X. ( ( z e. ( A \ { x } ) |->
          ( ( ( F ` z ) - ( F ` x ) ) / ( z - x ) ) ) limCC x ) ) /\
          ( S _D F ) C_ ( ( ( int ` T ) ` A ) X. CC ) ) ) $=
      ( vs vf cc wss co cfv cv cmin cxp wceq crest wf w3a cdv cnt csn cdif cdiv
      cmpt climc ciun cpw cpm cdm ccnfld ctopn cvv cmpt2 df-dv wa oveq1i simprl
      a1i oveq2d syl6eqr syl5eqr fveq2d simprr dmeqd simpl2 fdm fveq12d difeq1d
      syl eqtrd fveq1d oveq12d oveq1d mpteq12dv xpeq2d iuneq12d simpr wcel cnex
      simp1 elpw2 sylibr simp2 simp3 syl22anc wral xpss2 ax-mp rgenw iunxpconst
      elpm2r limccl ss2iun sseqtri fvex xpex ssex ovmpt2dx eqsstrd jca ) DLMZCL
      FUAZCDMZUBZDFUCNZACEUDOZOZAPZUEZBCXMUFZBPZFOZXLFOZQNZXOXLQNZUGNZUHZXLUINZ
      RZUJZSXIXKLRZMXHJKDFLUKZLJPZULNZAKPZUMZUNUOOZYGTNZUDOZOZXMBYJXMUFZXOYIOZX
      LYIOZQNZXSUGNZUHZXLUINZRZUJZYDUCLDULNZUPUCJKYFYHUUCUQSXHABKJURVBXHYGDSZYI
      FSZUSZUSZAYNXKUUBYCUUHYJCYMXJUUHYLEUDUUHYLGYGTNZEGYKYGTIUTUUHUUIGDTNEUUHY
      GDGTXHUUEUUFVAVCHVDVEVFUUHYJFUMZCUUHYIFXHUUEUUFVGZVHUUHXFUUJCSXEXFXGUUGVI
      CLFVJVMVNZVKUUHUUAYBXMUUHYTYAXLUIUUHBYOYSXNXTUUHYJCXMUULVLUUHYRXRXSUGUUHY
      PXPYQXQQUUHXOYIFUUKVOUUHXLYIFUUKVOVPVQVRVQVSVTXHUUEUSYGDLULXHUUEWAVCXHXED
      YFWBZXEXFXGWDDLWCWEWFZXHLUPWBZUUMXFXGFUUDWBUUOXHWCVBUUNXEXFXGWGXEXFXGWHLD
      CFUPYFWOWIXHYDYEMZYDUPWBUUPXHYDAXKXMLRZUJZYEYCUUQMZAXKWJYDUURMUUSAXKYBLMU
      USXLYAWPYBLXMWKWLWMAXKYCUUQWQWLAXKLWNWRVBZYDYEXKLCXJWSWCWTXAVMXBZXHXIYDYE
      UVAUUTXCXD $.

    eldv.g $e |- G = ( z e. ( A \ { B } ) |->
        ( ( ( F ` z ) - ( F ` B ) ) / ( z - B ) ) ) $.
    eldv.s $e |- ( ph -> S C_ CC ) $.
    eldv.f $e |- ( ph -> F : A --> CC ) $.
    eldv.a $e |- ( ph -> A C_ S ) $.
    $( The differentiable predicate.  A function ` F ` is differentiable at
       ` B ` with derivative ` C ` iff ` F ` is defined in a neighborhood of
       ` B ` and the difference quotient has limit ` C ` at ` B ` .
       (Contributed by Mario Carneiro, 7-Aug-2014.)  (Revised by Mario
       Carneiro, 25-Dec-2016.) $)
    eldv $p |- ( ph -> ( B ( S _D F ) C <->
      ( B e. ( ( int ` T ) ` A ) /\ C e. ( G limCC B ) ) ) ) $=
      ( vx co cfv cmin cop cdv wcel cnt cv csn cdif cdiv cmpt climc cxp ciun wa
      wbr wceq cc wss wf dvfval syl3anc simpld eleq2d df-br bicomi sneq difeq2d
      fveq2 oveq2d oveq2 oveq12d mpteq12dv syl6eqr id opeliunxp2 3bitr3g ) ADEU
      AZFHUBRZUCZVPQCGUDSSZQUEZUFZBCWAUGZBUEZHSZVTHSZTRZWCVTTRZUHRZUIZVTUJRZUKU
      LZUCDEVQUNZDVSUCEIDUJRZUCUMAVQWKVPAVQWKUOZVQVSUPUKUQZAFUPUQCUPHURCFUQWNWO
      UMNOPQBCFGHJKLUSUTVAVBWLVRDEVQVCVDQVSWJDEWMVTDUOZWIIVTDUJWPWIBCDUFZUGZWDD
      HSZTRZWCDTRZUHRZUIIWPBWBWHWRXBWPWAWQCVTDVEVFWPWFWTWGXAUHWPWEWSWDTVTDHVGVH
      VTDWCTVIVJVKMVLWPVMVJVNVO $.
  $}

  ${
    $d x z A $.  $d z B $.  $d z C $.  $d x z F $.  $d x z K $.  $d x z S $.
    $d x J $.
    dvcl.s $e |- ( ph -> S C_ CC ) $.
    dvcl.f $e |- ( ph -> F : A --> CC ) $.
    dvcl.a $e |- ( ph -> A C_ S ) $.
    $( The derivative function takes values in the complex numbers.
       (Contributed by Mario Carneiro, 7-Aug-2014.)  (Revised by Mario
       Carneiro, 9-Feb-2015.) $)
    dvcl $p |- ( ( ph /\ B ( S _D F ) C ) -> C e. CC ) $=
      ( vz cdv co wbr wa csn cdif cfv cmin wcel eqid cv cdiv cmpt limccl ccnfld
      climc cc ctopn crest cnt eldv simplbda sseldi ) ACDEFKLMZNJBCOPJUAZFQCFQR
      LUOCRLUBLUCZCUFLZUGDCUPUDAUNCBUEUHQZEUILZUJQQSDUQSAJBCDEUSFUPURUSTURTUPTG
      HIUKULUM $.

    ${
      dvbssntr.j $e |- J = ( K |`t S ) $.
      dvbssntr.k $e |- K = ( TopOpen ` CCfld ) $.
      $( The set of differentiable points is a subset of the interior of the
         domain of the function.  (Contributed by Mario Carneiro, 7-Aug-2014.)
         (Revised by Mario Carneiro, 9-Feb-2015.) $)
      dvbssntr $p |- ( ph -> dom ( S _D F ) C_ ( ( int ` J ) ` A ) ) $=
        ( vx vz co cdm cfv cc cxp wss cv cdv cnt cdif cmin cdiv cmpt climc ciun
        csn wceq wf wa dvfval syl3anc simprd dmss syl dmxpss syl6ss ) ACDUANZOZ
        BEUBPPZQRZOZVBAUTVCSZVAVDSAUTLVBLTZUIZMBVGUCMTZDPVFDPUDNVHVFUDNUENUFVFU
        GNRUHUJZVEACQSBQDUKBCSVIVEULGHILMBCEDFJKUMUNUOUTVCUPUQVBQURUS $.
    $}

    $( The set of differentiable points is a subset of the domain of the
       function.  (Contributed by Mario Carneiro, 6-Aug-2014.)  (Revised by
       Mario Carneiro, 9-Feb-2015.) $)
    dvbss $p |- ( ph -> dom ( S _D F ) C_ A ) $=
      ( cdv co cdm ccnfld cfv eqid ctop wcel wss cvv cc sylancr ctopon dvbssntr
      ctopn crest cuni cnfldtop cnex ssexg sylancl resttop cnfldtopon resttopon
      cnt wceq toponuni syl sseqtrd ntrss2 syl2anc sstrd ) ACDHIJBKUBLZCUCIZULL
      LZBABCDVAUTEFGVAMUTMZUAAVANOZBVAUDZPVBBPAUTNOCQOZVDUTVCUEACRPZRQOVFEUFCRQ
      UGUHCUTQUISABCVEGAVACTLOZCVEUMAUTRTLOVGVHUTVCUJECUTRUKSCVAUNUOUPBVAVEVEMU
      QURUS $.
  $}

  ${
    $d f s x z F $.  $d s S $.
    $( The set of differentiable points is a subset of the ambient topology.
       (Contributed by Mario Carneiro, 18-Mar-2015.) $)
    dvbsss $p |- dom ( S _D F ) C_ S $=
      ( vs vf vx vz cop cdv cdm wcel co wss cc cpm cvv wa cxp cv cfv c0 cpw cnt
      wrel ccnfld ctopn crest csn cdif cmin cdiv cmpt climc ciun reldmmpt2 mpbi
      df-dv df-rel sseli opelxp1 syl wi opeq1 eleq1d eleq1 oveq2 eleq2d anbi12d
      imbi12d dmmpt2ssx opeliunxp sylib vtoclg mpcom simpld elpwid wf simprd wb
      wceq elpm2g sylancr mpbid dvbss sstrd df-ov ndmfv syl5eq dmeqd dm0 syl6eq
      cnex wn 0ss syl6eqss pm2.61i ) ABGZHIZJZABHKZIZALWRWTBIZAWRXAABWRAMWRAMUA
      ZJZBMANKZJZAOJZWRXCXEPZWRWPOOQZJXFWQXHWPWQUCWQXHLCDXBMCRZNKZEDRZIZUDUESXI
      UFKUBSSERZUGZFXLXNUHFRZXKSXMXKSUIKXOXMUIKUJKUKXMULKQUMZHEFDCUPZUNWQUQUOUR
      ABOOUSUTXIBGZWQJZXIXBJZBXJJZPZVAWRXGVACAOXIAVSZXSWRYBXGYCXRWPWQXIABVBVCYC
      XTXCYAXEXIAXBVDYCXJXDBXIAMNVEVFVGVHXSXRCXBXIUGXJQUMZJYBWQYDXRCDXBXJXPHXQV
      IURCXBXJBVJVKVLVMZVNZVOWRXAMBVPZXAALZWRXEYGYHPZWRXCXEYEVQWRMOJXCXEYIVRWKY
      FMABOXBVTWAWBZVNWRYGYHYJVQZWCYKWDWRWLZWTTAYLWTTITYLWSTYLWSWPHSTABHWEWPHWF
      WGWHWIWJAWMWNWO $.
  $}

  ${
    $d f s x z $.  $d s x y z F $.  $d x y z K $.  $d s x y z S $.
    perfdvf.1 $e |- K = ( TopOpen ` CCfld ) $.
    $( The derivative is a function, whenever it is defined relative to a
       perfect subset of the complex numbers.  (Contributed by Mario Carneiro,
       25-Dec-2016.) $)
    perfdvf $p |- ( ( K |`t S ) e. Perf ->
                  ( S _D F ) : dom ( S _D F ) --> CC ) $=
      ( vx vy vz vs cdv cdm wcel co cc wa wss cv cfv sylancr eqid c0 vf cop wfn
      crest cperf wf crn wfun wbr wmo wal cnt csn cdif cmin cdiv cmpt climc cpm
      wi cpw cxp ciun ccnfld ctopn df-dv dmmpt2ssx simpl oveq2 opeliunxp2 sylib
      sseldi simprd cvv cnex simpld elpm2g mpbid adantr sseli elpwid sstrd ctop
      wb cuni ctopon cnfldtopon resttopon topontop wceq toponuni sseqtrd ntrss2
      syl syl2anc sselda dvlem ssdifssd clp a1i ntrss3 sseqtr4d restabs syl3anc
      fmptd simpr perfopn eqeltrrd cnfldtop toponunii restperf lpss3 lpdifsn ex
      ntropn limcmo moanimv sylibr eldv mobidv mpbird alrimiv wrel reldv dffun6
      mpbiran funfn wex vex elrn dvcl exlimdv syl5bi ssrdv sylanbrc wn f0 df-ov
      df-f ndmfv syl5eq dmeqd dm0 syl6eq feq12d mpbiri a1d pm2.61i ) ABUBZIJZKZ
      CAUDLZUEKZABILZJZMUUNUFZUTUUKUUMUUPUUKUUMNZUUNUUOUCZUUNUGZMOUUPUUQUUNUHZU
      URUUQEPZFPZUUNUIZFUJZEUKZUUTUUQUVDEUUQUVDUVABJZUULULQQZKZUVBGUVFUVAUMZUNZ
      GPZBQUVABQUOLUVKUVAUOLZUPLZUQZUVAURLKZNZFUJZUUQUVHUVOFUJZUTUVQUUQUVHUVRUU
      QUVHNZFUVJUVAUVNCUVSGUVJUVMMUVNUVSUVKUVAUVFBUUQUVFMBUFZUVHUUQUVTUVFAOZUUQ
      BMAUSLZKZUVTUWANZUUQAMVAZKZUWCUUQUUIHUWEHPZUMMUWGUSLZVBVCZKZUWFUWCNZUUQUU
      JUWIUUIHUAUWEUWHEUAPZJZVDVEQUWGUDLULQQUVIGUWMUVIUNUVKUWLQUVAUWLQUOLUVLUPL
      UQUVAURLVBVCIEGUAHVFVGZUUKUUMVHVLHUWEUWHABUWBUWGAMUSVIVJZVKZVMUUQMVNKZUWF
      UWCUWDWDZVOUUQUWFUWCUWPVPZMABVNUWEVQZRVRVPZVSUUQUVFMOZUVHUUQUVFAMUUKUWAUU
      MUUKUVTUWAUUKUWCUWDUUKUWFUWCUUKUWJUWKUUJUWIUUIUWNVTUWOVKZVMUUKUWQUWFUWRVO
      UUKUWFUWCUXCVPUWTRVRVMVSZUUQAMUWSWAZWBZVSZUUQUVGUVFUVAUUQUULWCKZUVFUULWEZ
      OZUVGUVFOZUUQUULAWFQKZUXHUUQCMWFQZKZAMOUXLCDWGZUXEACMWHRZAUULWIWNZUUQUVFA
      UXIUXDUUQUXLAUXIWJUXPAUULWKWNZWLZUVFUULUXIUXISZWMWOZWPWQUVNSZXEUVSUVFMUVI
      UXGWRUVSUVAUVFCWSQZQZKZUVAUVJUYCQKZUUQUVGUYDUVAUUQUVGUVGUYCQZUYDUUQCUVGUD
      LZUEKZUVGUYGOZUUQUULUVGUDLZUYHUEUUQUXNUVGAOUWFUYKUYHWJUXNUUQUXOWTUUQUVGUX
      IAUUQUXHUXJUVGUXIOUXQUXSUVFUULUXIUXTXAWOUXRXBZUWSUVGACUXMUWEXCXDUUQUUMUVG
      UULKZUYKUEKUUKUUMXFUUQUXHUXJUYMUXQUXSUVFUULUXIUXTXOWOUULUYKUXIUVGUXTUYKSX
      GWOXHUUQCWCKZUVGMOUYIUYJWDCDXIZUUQUVGAMUYLUXEWBCUYHMUVGMCUXOXJZUYHSXKRVRU
      UQUYNUXBUXKUYGUYDOUYNUUQUYOWTUXFUYAUVFUVGCMUYPXLXDWBWPUVSUYNUXBUYEUYFWDUY
      OUXGUVAUVFCMUYPXMRVRDXPXNUVHUVOFXQXRUUQUVCUVPFUUQGUVFUVAUVBAUULBUVNCUULSD
      UYBUXEUXAUXDXSXTYAYBUUTUUNYCUVEABYDEFUUNYEYFXRUUNYGVKUUQFUUSMUVBUUSKUVCEY
      HUUQUVBMKZEUVBUUNFYIYJUUQUVCUYQEUUQUVCUYQUUQUVFUVAUVBABUXEUXAUXDYKXNYLYMY
      NUUOMUUNYSYOXNUUKYPZUUPUUMUYRUUPTMTUFMYQUYRUUOTMUUNTUYRUUNUUIIQTABIYRUUII
      YTUUAZUYRUUOTJTUYRUUNTUYSUUBUUCUUDUUEUUFUUGUUH $.
  $}

  $( Both ` RR ` and ` CC ` are subsets of ` CC ` .  (Contributed by Mario
     Carneiro, 10-Feb-2015.) $)
  recnprss $p |- ( S e. { RR , CC } -> S C_ CC ) $=
    ( cr cc cpr wcel wceq wo wss elpri ax-resscn sseq1 mpbiri eqimss jaoi syl )
    ABCDEABFZACFZGACHZABCIPRQPRBCHJABCKLACMNO $.

  ${
    recnperf.k $e |- K = ( TopOpen ` CCfld ) $.
    $( Both ` RR ` and ` CC ` are perfect subsets of ` CC ` .  (Contributed by
       Mario Carneiro, 28-Dec-2016.) $)
    recnperf $p |- ( S e. { RR , CC } -> ( K |`t S ) e. Perf ) $=
      ( cr cc cpr wcel wo crest co cperf elpri oveq2 reperf syl6eqel ctopon cfv
      wceq cnfldtopon toponunii restid ax-mp cnperf eqeltri jaoi syl ) ADEFGADR
      ZAERZHBAIJZKGZADELUGUJUHUGUIBDIJKADBIMBCNOUHUIBEIJZKAEBIMUKBKBEPQZGUKBRBC
      SZBULEEBUMTUAUBBCUCUDOUEUF $.
  $}

  $( Explicitly write out the functionality condition on derivative for
     ` S = RR ` and ` CC ` .  (Contributed by Mario Carneiro, 9-Feb-2015.) $)
  dvfg $p |- ( S e. { RR , CC } -> ( S _D F ) : dom ( S _D F ) --> CC ) $=
    ( cr cc cpr wcel ccnfld ctopn cfv crest cperf cdv cdm eqid recnperf perfdvf
    co wf syl ) ACDEFGHIZAJQKFABLQZMDUARATTNZOABTUBPS $.

  $( The derivative is a function.  (Contributed by Mario Carneiro,
     8-Aug-2014.)  (Revised by Mario Carneiro, 9-Feb-2015.) $)
  dvf $p |- ( RR _D F ) : dom ( RR _D F ) --> CC $=
    ( cr cc cpr wcel cdv co cdm wf reelprrecn dvfg ax-mp ) BBCDEBAFGZHCMIJBAKL
    $.

  $( The derivative is a function.  (Contributed by Mario Carneiro,
     9-Feb-2015.) $)
  dvfcn $p |- ( CC _D F ) : dom ( CC _D F ) --> CC $=
    ( cc cr cpr wcel cdv co cdm wf cnelprrecn dvfg ax-mp ) BCBDEBAFGZHBMIJBAKL
    $.

  ${
    $d x y z A $.  $d x y z B $.  $d x y z F $.  $d x y z S $.  $d x y z T $.
    $d z K $.  $d z ph $.
    dvres.k $e |- K = ( TopOpen ` CCfld ) $.
    dvres.t $e |- T = ( K |`t S ) $.
    ${
      dvres.g $e |- G = ( z e. ( A \ { x } ) |->
        ( ( ( F ` z ) - ( F ` x ) ) / ( z - x ) ) ) $.
      dvres.s $e |- ( ph -> S C_ CC ) $.
      dvres.f $e |- ( ph -> F : A --> CC ) $.
      dvres.a $e |- ( ph -> A C_ S ) $.
      dvres.b $e |- ( ph -> B C_ S ) $.
      dvres.y $e |- ( ph -> y e. CC ) $.
      $( Lemma for ~ dvres .  (Contributed by Mario Carneiro, 8-Aug-2014.)
         (Revised by Mario Carneiro, 28-Dec-2016.) $)
      dvreslem $p |- ( ph -> ( x ( S _D ( F |` B ) ) y <->
        ( x ( S _D F ) y /\ x e. ( ( int ` T ) ` B ) ) ) ) $=
        ( cfv cv cin cnt wcel csn cdif cres cmin co cdiv cmpt climc wa cdv wceq
        wbr difss inss2 sstri simpr sseldi fvres syl ctop cuni wss cvv cnfldtop
        crest cc ssexg sylancl resttop sylancr syl5eqel inss1 syl5ss cnfldtopon
        cnex ctopon resttopon toponuni sseqtrd eqid ntrss2 syl6ss sselda adantr
        syl2anc oveq12d oveq1d mpteq2dva reseq1i ssdif resmpt eqtri syl6eqr cun
        mp2b wf sstrd dvlem fmptd mp1i difssd unssd ssun1 ntrss syl3anc restntr
        a1i ssind oveq1i restabs syl5eq fveq2d fveq1d eqtr3d undif1 snssd sylib
        ssequn2 oveq2d fveq12d eleqtrrd eqtrd eleq2d pm5.32da ntrin elin syl6bb
        limcres anbi1d bitrd an32 fresin eldv 3bitr4d ) ABUAZEFUBZHUCTZTZUDZCUA
        ZDYTYSUEZUFZDUAZIFUGZTZYSUUHTZUHUIZUUGYSUHUIZUJUIZUKZYSULUIZUDZUMZYSEUU
        ATZUDZUUDJYSULUIZUDZUMZYSFUUATZUDZUMZYSUUDGUUHUNUIUPYSUUDGIUNUIUPZUVDUM
        AUUQUUSUVDUMZUVAUMZUVEAUUQUUCUVAUMUVHAUUCUUPUVAAUUCUMZUUOUUTUUDUVIUUOJU
        UFUGZYSULUIUUTUVIUUNUVJYSULUVIUUNDUUFUUGITZYSITZUHUIZUULUJUIZUKZUVJUVID
        UUFUUMUVNUVIUUGUUFUDZUMZUUKUVMUULUJUVQUUIUVKUUJUVLUHUVQUUGFUDUUIUVKUOUV
        QUUFFUUGUUFYTFYTUUEUQEFURZUSUVIUVPUTVAUUGFIVBVCUVIUUJUVLUOZUVPUVIYSFUDU
        VSAUUBFYSAUUBYTFAHVDUDZYTHVEZVFUUBYTVFAHKGVIUIZVDMAKVDUDZGVGUDZUWBVDUDK
        LVHZAGVJVFZVJVGUDUWDOVSGVJVGVKVLZGKVGVMVNVOZAYTGUWAAYTEGEFVPZQVQZAHGVTT
        ZUDGUWAUOAHUWBUWKMAKVJVTTUDUWFUWBUWKUDKLVROGKVJWAVNVOGHWBVCZWCZYTHUWAUW
        AWDZWEWIZUVRWFWGYSFIVBVCWHWJWKWLUVJDEUUEUFZUVNUKZUUFUGZUVOJUWQUUFNWMYTE
        VFZUUFUWPVFZUWRUVOUOUWIYTEUUEWNZDUWPUUFUVNWOWSWPWQWKUVIUWPYSUUFJKUWPUUE
        WRZVIUIZKUVIDUWPUVNVJJUVIUUGYSEIAEVJIWTZUUCPWHAEVJVFUUCAEGVJQOXAWHZAUUB
        EYSAUUBYTEUWOUWIWFZWGXBNXCUWSUWTUVIUWIUXAXDUVIUWPEVJEUUEUQUXEVQLUXCWDUV
        IYSYTKEVIUIZUCTZTZUUFUUEWRZUXCUCTZTAUUBUXIYSAUUBYTUWAEUFZWRZUUATZEUBZUX
        IAUUBUXNEAUVTUXMUWAVFYTUXMVFZUUBUXNVFUWHAYTUXLUWAUWMAUWAEXEXFUXPAYTUXLX
        GXKUXMYTHUWAUWNXHXIUXFXLAYTHEVIUIZUCTZTZUXOUXIAUVTEUWAVFZUWSUXSUXOUOUWH
        AEGUWAQUWLWCZUWSAUWIXKYTHUXQUWAEUWNUXQWDXJXIAYTUXRUXHAUXQUXGUCAUXQUWBEV
        IUIZUXGHUWBEVIMXMAUWCEGVFUWDUYBUXGUOUWCAUWEXKQUWGEGKVDVGXNXIXOXPXQXRWCW
        GUVIUXJYTUXKUXHUVIUXCUXGUCUVIUXBEKVIUVIUXBEUUEWRZEEUUEXSUVIUUEEVFUYCEUO
        UVIUUEYTEUVIYSYTAUUBYTYSUWOWGXTZUWIWFUUEEYBYAXOYCXPUVIUXJYTUUEWRZYTYTUU
        EXSUVIUUEYTVFUYEYTUOUYDUUEYTYBYAXOYDYEYLYFYGYHAUUCUVGUVAAUUCYSUURUVCUBZ
        UDUVGAUUBUYFYSAUVTUXTFUWAVFUUBUYFUOUWHUYAAFGUWARUWLWCEFHUWAUWNYIXIYGYSU
        URUVCYJYKYMYNUUSUVDUVAYOYKADYTYSUUDGHUUHUUNKMLUUNWDOAUXDYTVJUUHWTPEVJIF
        YPVCUWJYQAUVFUVBUVDADEYSUUDGHIJKMLNOPQYQYMYR $.

      dvres2lem.d $e |- ( ph -> x ( S _D F ) y ) $.
      dvres2lem.x $e |- ( ph -> x e. B ) $.
      $( Lemma for ~ dvres2 .  (Contributed by Mario Carneiro, 9-Feb-2015.)
         (Revised by Mario Carneiro, 28-Dec-2016.) $)
      dvres2lem $p |- ( ph -> x ( B _D ( F |` B ) ) y ) $=
        ( cv cres cdv wbr cin crest cnt cfv wcel cdif cmin cdiv cmpt climc cuni
        co csn cun ctop wss cvv cnfldtop cc cnex ssexg sylancl resttop syl5eqel
        sylancr syl5ss ctopon wceq cnfldtopon resttopon toponuni sseqtrd difssd
        inss1 syl unssd inundif ssdif unss2 3syl syl5eqssr eqid syl3anc wa eldv
        ntrss mpbid simpld sseldd elind inss2 a1i restntr oveq1i restabs syl5eq
        fveq2d fveq1d eqtr3d eleqtrd simprd sseldi difss sstri sseli oveqan12rd
        limcresi fvres oveq1d sylan2 reseq1i resmpt mp2b eqtri syl6eqr eleqtrrd
        mpteq2dva sstrd wf fresin mpbir2and ) ABUBZCUBZFIFUCZUDUQUEYGEFUFZKFUGU
        QZUHUIZUIZUJYHDYJYGURZUKZDUBZYIUIZYGYIUIZULUQZYPYGULUQZUMUQZUNZYGUOUQZU
        JAYGYJHUPZFUKZUSZHUHUIZUIZFUFZYMAUUHFYGAEUUGUIZUUHYGAHUTUJZUUFUUDVAEUUF
        VAUUJUUHVAAHKGUGUQZUTMAKUTUJZGVBUJZUULUTUJKLVCZAGVDVAZVDVBUJUUNOVEGVDVB
        VFVGZGKVBVHVJVIZAYJUUEUUDAYJGUUDAYJEGEFVSZQVKAHGVLUIZUJGUUDVMAHUULUUTMA
        KVDVLUIUJUUPUULUUTUJKLVNOGKVDVOVJVIGHVPVTZVQAUUDFVRWAAEYJEFUKZUSZUUFEFW
        BAEUUDVAUVBUUEVAUVCUUFVAAEGUUDQUVAVQEUUDFWCUVBUUEYJWDWEWFUUFEHUUDUUDWGZ
        WKWHAYGUUJUJZYHJYGUOUQZUJZAYGYHGIUDUQUEUVEUVGWITADEYGYHGHIJKMLNOPQWJWLZ
        WMWNUAWOAYJHFUGUQZUHUIZUIZUUIYMAUUKFUUDVAYJFVAZUVKUUIVMUURAFGUUDRUVAVQU
        VLAEFWPZWQZYJHUVIUUDFUVDUVIWGWRWHAYJUVJYLAUVIYKUHAUVIUULFUGUQZYKHUULFUG
        MWSAUUMFGVAUUNUVOYKVMUUMAUUOWQRUUQFGKUTVBWTWHXAXBXCXDXEAYHJYOUCZYGUOUQZ
        UUCAUVFUVQYHYGYOJXLAUVEUVGUVHXFXGAUUBUVPYGUOAUUBDYOYPIUIZYGIUIZULUQZYTU
        MUQZUNZUVPADYOUUAUWAYPYOUJAYPFUJZUUAUWAVMYOFYPYOYJFYJYNXHUVMXIXJAUWCWIY
        SUVTYTUMUWCAYQUVRYRUVSULYPFIXMAYGFUJYRUVSVMUAYGFIXMVTXKXNXOYBUVPDEYNUKZ
        UWAUNZYOUCZUWBJUWEYONXPYJEVAYOUWDVAUWFUWBVMUUSYJEYNWCDUWDYOUWAXQXRXSXTX
        NYAADYJYGYHFYKYIUUBKYKWGLUUBWGAFGVDROYCAEVDIYDYJVDYIYDPEVDIFYEVTUVNWJYF
        $.
    $}

    $( Restriction of a derivative.  Note that our definition of derivative
       ~ df-dv would still make sense if we demanded that ` x ` be an element
       of the domain instead of an interior point of the domain, but then it is
       possible for a non-differentiable function to have two different
       derivatives at a single point ` x ` when restricted to different subsets
       containing ` x ` ; a classic example is the absolute value function
       restricted to ` [ 0 , +oo ) ` and ` ( -oo , 0 ] ` .  (Contributed by
       Mario Carneiro, 8-Aug-2014.)  (Revised by Mario Carneiro,
       9-Feb-2015.) $)
    dvres $p |- ( ( ( S C_ CC /\ F : A --> CC ) /\ ( A C_ S /\ B C_ S ) ) ->
      ( S _D ( F |` B ) ) = ( ( S _D F ) |` ( ( int ` T ) ` B ) ) ) $=
      ( vx vy vz cc wss wf wa cres co cfv cv wbr cdv cnt relres wcel cin simpll
      reldv simplr inss1 fssres sylancl resres wfn wceq fnresdm reseq1d syl5eqr
      ffn 3syl feq1d mpbid simprl syl5ss dvcl ex adantrd wb cdif cmin cdiv cmpt
      csn eqid adantr simplrr simpr dvreslem pm5.21ndd brres syl6bbr eqbrrdiv
      vex ) CLMZALENZOZACMZBCMZOZOZIJCEBPZUAQZCEUAQZBDUBRRZPZCWJUGWLWMUCWIISZJS
      ZWKTZWOWPWLTZWOWMUDZOZWOWPWNTWIWPLUDZWQWTWIWQXAWIABUEZWOWPCWJWCWDWHUFZWIX
      BLEXBPZNZXBLWJNWIWDXBAMXEWCWDWHUHZABUIZALXBEUJUKWIXBLXDWJWIXDEAPZBPWJEABU
      LWIXHEBWIWDEAUMXHEUNXFALEURAEUOUSUPUQUTVAWIXBACXGWEWFWGVBZVCVDVEWIWRXAWSW
      IWRXAWIAWOWPCEXCXFXIVDVEVFWIXAWQWTVGWIXAOIJKABCDEKAWOVLVHKSZERWOERVIQXJWO
      VIQVJQVKZFGHXKVMWIWCXAXCVNWIWDXAXFVNWIWFXAXIVNWEWFWGXAVOWIXAVPVQVEVRWOWPW
      LWMJWBVSVTWA $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z F $.  $d x y z S $.
    $( Restriction of the base set of a derivative.  The primary application of
       this theorem says that if a function is complex differentiable then it
       is also real differentiable.  Unlike ~ dvres , there is no simple
       reverse relation relating real differentiable functions to complex
       differentiability, and indeed there are functions like ` Re ( x ) `
       which are everywhere real-differentiable but nowhere
       complex-differentiable.)  (Contributed by Mario Carneiro,
       9-Feb-2015.) $)
    dvres2 $p |- ( ( ( S C_ CC /\ F : A --> CC ) /\ ( A C_ S /\ B C_ S ) ) ->
      ( ( S _D F ) |` B ) C_ ( B _D ( F |` B ) ) ) $=
      ( vx vy vz cc wss wa cdv co cres cv wbr wcel cfv cmin eqid df-br wrel a1i
      relres cop w3a ccnfld ctopn crest csn cdif cdiv cmpt simp1l simp1r simp2l
      simp2r simp3l dvcl mpdan simp3r dvres2lem 3expia vex brres bitr3i 3imtr3g
      wf relssdv ) CHIZAHDVGZJZACIZBCIZJZJZEFCDKLZBMZBDBMKLZVQUAVOVPBUCUBVOENZF
      NZVPOZVSBPZJZVSVTVROZVSVTUDZVQPZWEVRPVKVNWCWDVKVNWCUEZEFGABCUFUGQZCUHLZDG
      AVSUIUJGNZDQVSDQRLWJVSRLUKLULZWHWHSWISWKSVIVJVNWCUMZVIVJVNWCUNZVKVLVMWCUO
      ZVKVLVMWCUPWGWAVTHPVKVNWAWBUQZWGAVSVTCDWLWMWNURUSWOVKVNWAWBUTVAVBWCVSVTVQ
      OWFVSVTVPBFVCVDVSVTVQTVEVSVTVRTVFVH $.
  $}

  $( Restriction of a complex differentiable function to the reals.
     (Contributed by Mario Carneiro, 10-Feb-2015.) $)
  dvres3 $p |- ( ( ( S e. { RR , CC } /\ F : A --> CC ) /\
    ( A C_ CC /\ S C_ dom ( CC _D F ) ) ) ->
      ( S _D ( F |` S ) ) = ( ( CC _D F ) |` S ) ) $=
    ( cr cc cpr wcel wf wa wss cdv cdm cres wrel wceq ad2antrr ssid a1i dvbss
    co reldv recnprss simplr simprr simprl sstrd fssresd ssdmres sylib sseqtr4d
    relssres sylancr wfun dvfg ffun syl dvres2 syl22anc funssres syl2anc eqtr3d
    ) BDEFGZAECHZIZAEJZBECKTZLZJZIZIZBCBMZKTZVFBMZLZMZVLVMVJVLNVLLZVNJVOVLOBVKU
    AVJVPBVNVJBBVKVBBEJZVCVIBUBPZVJAEBCVBVCVIUCZVJBVGAVDVEVHUDZVJAECEEJZVJEQRZV
    SVDVEVHUEZSUFUGBBJVJBQRSVJVHVNBOVTBVFUHUIUJVLVNUKULVJVLUMZVMVLJZVOVMOVJVPEV
    LHZWDVBWFVCVIBVKUNPVPEVLUOUPVJWAVCVEVQWEWBVSWCVRABECUQURVLVMUSUTVA $.

  ${
    dvres3a.j $e |- J = ( TopOpen ` CCfld ) $.
    $( Restriction of a complex differentiable function to the reals.  This
       version of ~ dvres3 assumes that ` F ` is differentiable on its domain,
       but does not require ` F ` to be differentiable on the whole real line.
       (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    dvres3a $p |- ( ( ( S e. { RR , CC } /\ F : A --> CC ) /\
      ( A e. J /\ dom ( CC _D F ) = A ) ) ->
        ( S _D ( F |` S ) ) = ( ( CC _D F ) |` S ) ) $=
      ( cr cc wcel wf wa cdv co cdm wceq cres wss cin ad2antrr a1i sylancr wrel
      cpr reldv simplr inss2 fssres sylancl rescom resres eqtri wfn ffn fnresdm
      recnprss 3syl reseq1d syl5eqr feq1d mpbid inss1 dvbss dmres simprr ineq2d
      syl5eq sseqtr4d relssres wfun dvfg ffun syl ssid ctopon cnfldtopon simprl
      cfv toponss dvres2 syl22anc funssres syl2anc eqtr3d ) BFGUBHZAGCIZJZADHZG
      CKLZMZANZJZJZBCBOZKLZWGBOZMZOZWMWNWKWMUAWMMZWOPWPWMNBWLUCWKWQBAQZWOWKWRBW
      LWCBGPZWDWJBUNRZWKWRGCWROZIZWRGWLIWKWDWRAPXBWCWDWJUDZBAUEAGWRCUFUGWKWRGXA
      WLWKXACAOZBOZWLXEWLAOXACABUHCBAUIUJWKXDCBWKWDCAUKXDCNXCAGCULACUMUOUPUQURU
      SWRBPWKBAUTSVAWKWOBWHQWRWGBVBWKWHABWEWFWIVCVDVEVFWMWOVGTWKWMVHZWNWMPZWPWN
      NWKWQGWMIZXFWCXHWDWJBWLVIRWQGWMVJVKWKGGPZWDAGPZWSXGXIWKGVLSXCWKDGVMVPHWFX
      JDEVNWEWFWIVOADGVQTWTABGCVRVSWMWNVTWAWB $.
  $}

  ${
    $d x z B $.  $d x z F $.  $d x z ph $.
    dvidlem.1 $e |- ( ph -> F : CC --> CC ) $.
    dvidlem.2 $e |- ( ( ph /\ ( x e. CC /\ z e. CC /\ z =/= x ) ) ->
                  ( ( ( F ` z ) - ( F ` x ) ) / ( z - x ) ) = B ) $.
    dvidlem.3 $e |- B e. CC $.
    $( Lemma for ~ dvid and ~ dvconst .  (Contributed by Mario Carneiro,
       8-Aug-2014.)  (Revised by Mario Carneiro, 9-Feb-2015.) $)
    dvidlem $p |- ( ph -> ( CC _D F ) = ( CC X. { B } ) ) $=
      ( cc co csn wf wfn a1i wcel cfv cmpt climc wceq ax-mp cdv cxp dvfcn dvbss
      cdm wss ssid cv wrel wbr reldv ccnfld ctopn cnt cdif cmin cdiv simpr ctop
      wa cnfldtop cnfldtopon toponunii ntrtop syl6eleqr limcresi ccncf cncfmptc
      eqid syl3anc eqidd cnmptlimc sseldi eldifsn 3exp2 imp43 sylan2b mpteq2dva
      cres difss resmpt syl6eqr oveq1d eleqtrrd crest restid eqcomi adantr eldv
      wne mpbir2and releldm sylancr ex ssrdv eqssd feq2d mpbii ffn syl fnconstg
      mp1i wfun wb ffun funbrfvb syl2anc mpbird fvconst2g sylan eqtr4d eqfnfvd
      ) ABIIEUAJZIDKUBZAIIXMLZXMIMAXMUEZIXMLZXOEUCZAXPIIXMAXPIAIIEIIUFZAIUGZNZF
      YAUDABIXPABUHZIOZYBXPOZAYCUTZXMUIYBDXMUJZYDIEUKYEYFYBIULUMPZUNPPZODCIYBKZ
      UOZCUHZEPYBEPUPJYKYBUPJUQJZQZYBRJZOYEYBIYHAYCURZYGUSOZYHISYGYGVIZVAZYGIIY
      GYGYQVBVCZVDTVEYEDCIDQZYJVSZYBRJZYNYEYTYBRJUUBDYBYJYTVFYECIYBIDDYEDIOZXSX
      SYTIIVGJOUUCYEHNXSYEXTNZUUDCDIIVHVJYOYKYBSDVKVLVMYEYMUUAYBRYEYMCYJDQZUUAY
      ECYJYLDYKYJOYEYKIOZYKYBWJZUTYLDSZYKIYBVNAYCUUFUUGUUHAYCUUFUUGUUHGVOVPVQVR
      YJIUFUUAUUESIYIVTCIYJDWATWBWCWDYECIYBDIYGEYMYGYGIWEJZYGYPUUIYGSYRYGUSIYSW
      FTWGYQYMVIUUDAIIELYCFWHUUDWIWKZYBDXMWLWMZWNWOWPWQWRIIXMWSWTUUCXNIMAHIDIXA
      XBYEYBXMPZDYBXNPZYEUULDSZYFUUJYEXMXCZYDUUNYFXDXQUUOYEXRXPIXMXEXBUUKYBDXMX
      FXGXHAUUCYCUUMDSUUCAHNIDYBIXIXJXKXL $.
  $}

  ${
    $d x z A $.
    $( Derivative of a constant function.  (Contributed by Mario Carneiro,
       8-Aug-2014.)  (Revised by Mario Carneiro, 9-Feb-2015.) $)
    dvconst $p |- ( A e. CC -> ( CC _D ( CC X. { A } ) ) = ( CC X. { 0 } ) ) $=
      ( vx vz cc wcel cc0 csn cxp fconst6g cv wne w3a wa cmin co cdiv fvconst2g
      cfv wceq eqtrd simpr2 syldan 3ad2antr1 oveq12d subid adantr oveq1d simpr1
      subcld simpr3 subne0d div0d 0cn dvidlem ) ADEZBCFDAGHZDADIUOBJZDEZCJZDEZU
      SUQKZLZMZUSUPRZUQUPRZNOZUSUQNOZPOFVGPOFVCVFFVGPVCVFAANOZFVCVDAVEANUOVBUTV
      DASUOURUTVAUAZDAUSDQUBUOUTURVEASVADAUQDQUCUDUOVHFSVBAUEUFTUGVCVGVCUSUQVIU
      OURUTVAUHZUIVCUSUQVIVJUOURUTVAUJUKULTUMUN $.

    $( Derivative of the identity function.  (Contributed by Mario Carneiro,
       8-Aug-2014.)  (Revised by Mario Carneiro, 9-Feb-2015.) $)
    dvid $p |- ( CC _D ( _I |` CC ) ) = ( CC X. { 1 } ) $=
      ( vx vz cc cid cres cdv co c1 csn cxp wceq wtru wf1o wf f1oi cv wcel cmin
      cfv fvresi f1of mp1i wne cdiv simp2 simp1 subcld simp3 subne0d oveqan12rd
      w3a 3adant3 diveq1bd adantl ax-1cn dvidlem trud ) CDCEZFGCHIJKLABHURCCURM
      CCURNLCOCCURUAUBAPZCQZBPZCQZVAUSUCZUKZVAURSZUSURSZRGZVAUSRGZUDGHKLVDVGVHV
      DVAUSUTVBVCUEZUTVBVCUFZUGVDVAUSVIVJUTVBVCUHUIUTVBVGVHKVCVBUTVEVAVFUSRCVAT
      CUSTUJULUMUNUOUPUQ $.
  $}

  ${
    $d y z A $.  $d y z B $.  $d y z F $.  $d y z K $.  $d y z S $.
    $d y z J $.
    dvcnp.j $e |- J = ( K |`t A ) $.
    dvcnp.k $e |- K = ( TopOpen ` CCfld ) $.
    ${
      dvcnp.g $e |- G = ( z e. A |-> if ( z = B , ( ( S _D F ) ` B ) ,
        ( ( ( F ` z ) - ( F ` B ) ) / ( z - B ) ) ) ) $.
      $( The difference quotient is continuous at ` B ` when the original
         function is differentiable at ` B ` .  (Contributed by Mario Carneiro,
         8-Aug-2014.)  (Revised by Mario Carneiro, 28-Dec-2016.) $)
      dvcnp $p |- ( ( ( S e. { RR , CC } /\ F : A --> CC /\ A C_ S ) /\
        B e. dom ( S _D F ) ) -> G e. ( ( J CnP K ) ` B ) ) $=
        ( cc wcel wf wss co wa cfv cmin cmpt cpr w3a cdv cdm wceq cdiv cif ccnp
        cr cv csn cdif climc crest cnt wfun wb dvfg 3ad2ant1 ffun funfvbrb 3syl
        eqid recnprss simp2 simp3 eldv bitrd simplbda sstrd adantr dvbss sselda
        wbr wne eldifsn dvlem sylan2br limcmpt2 mpbid syl5eqel ) DUILUAMZBLENZB
        DOZUBZCDEUCPZUDZMZQZFABAUJZCUECWFRZWJERCERSPWJCSPUFPZUGTZCGHUHPRZKWIWKA
        BCUKULZWLTZCUMPMZWMWNMWEWHCBHDUNPZUORRMZWQWEWHCWKWFVNZWSWQQWEWGLWFNZWFU
        PWHWTUQWBWCXAWDDEURUSWGLWFUTCWFVAVBWEABCWKDWREWPHWRVCJWPVCWBWCDLOWDDVDU
        SZWBWCWDVEZWBWCWDVFZVGVHVIWIABCWKWLGHWEBLOWHWEBDLXDXBVJVKZWEWGBCWEBDEXB
        XCXDVLVMZWJBMWJCVOQWIWJWOMWLLMWJBCVPWIWJCBEWEWCWHXCVKXEXFVQVRIJVSVTWA
        $.
    $}

    $( A function is continuous at each point for which it is differentiable.
       (Contributed by Mario Carneiro, 9-Aug-2014.)  (Revised by Mario
       Carneiro, 28-Dec-2016.) $)
    dvcnp2 $p |- ( ( ( S C_ CC /\ F : A --> CC /\ A C_ S ) /\
      B e. dom ( S _D F ) ) -> F e. ( ( J CnP K ) ` B ) ) $=
      ( vz co wcel cc wss cfv climc cc0 caddc cmin cmpt cmul vy cdv cdm w3a wbr
      wf cv wex ccnp eldmg ibi wa simpl2 ctx ffvelrnda crest ctop cuni cnfldtop
      cnt cvv simpl1 cnex sylancl resttop sylancr simpl3 ctopon wceq cnfldtopon
      ssexg resttopon toponuni syl sseqtrd eqid ntrss2 syl2anc cdif simp1 simp2
      csn cdiv eldv simprbda sseldd ffvelrnd adantr subcld ssid a1i cxp txtopon
      simp3 mp2an restid ax-mp eqcomi sstrd dvlem ssdifssd sselda simplbda cres
      toponunii limcresi difss resmpt oveq1i sseqtri subidd ccn subcn cncfmptid
      ccncf cncfmptc syl3anc cncfmpt2f oveq1 cnmptlimc eqeltrrd sseldi cop dvcl
      mulcn 0cn opelxpi cncnpi limccnp2 mul01d eldifsni adantl subne0d divcan1d
      simpr wne mpteq2dva oveq1d 3eltr3d fmptd limcdif eleqtrrd addid2d feqmptd
      syl6eq eqidd addcn npcand eqtr4d wb cnplimc mpbir2and exlimdv imp sylan2
      ex ) BCDUBJZUCZKZCLMZALDUFZACMZUDZBUAUGZUUQUEZUAUHZDBEFUIJNKZUUSUVFUABUUQ
      UURUJUKUVCUVFUVGUVCUVEUVGUAUVCUVEUVGUVCUVEULZUVGUVABDNZDBOJZKZUUTUVAUVBUV
      EUMZUVHPUVIQJIAIUGZDNZUVIRJZUVIQJZSZBOJUVIUVJUVHIABPUVIUVOUVIQFFUNJZFLLUV
      HUVMAKZULZUVNUVIUVHALUVMDUVLUOZUVHUVILKZUVSUVHALBDUVLUVHAFCUPJZUTNNZABUVH
      UWCUQKZAUWCURZMUWDAMUVHFUQKCVAKZUWEFHUSUVHUUTLVAKUWGUUTUVAUVBUVEVBZVCCLVA
      VKVDCFVAVEVFUVHACUWFUUTUVAUVBUVEVGZUVHUWCCVHNKZCUWFVIUVHFLVHNKZUUTUWJFHVJ
      ZUWHCFLVLVFCUWCVMVNVOAUWCUWFUWFVPVQVRUVCUVEBUWDKZUVDIABWBZVSZUVOUVMBRJZWC
      JZSZBOJKZUVCIABUVDCUWCDUWRFUWCVPHUWRVPUUTUVAUVBVTZUUTUVAUVBWAZUUTUVAUVBWN
      ZWDZWEWFZWGZWHZWIZUXFLLMZUVHLWJZWKZUXJHUVRLLWLZUPJZUVRUVRUXKVHNZKZUXLUVRV
      IUWKUWKUXNUWLUWLFFLLWMWOZUVRUXMUXKUXKUVRUXOXEZWPWQWRZUVHPIUWOUVOSZBOJZIAU
      VOSZBOJZUVHUVDPTJIUWOUWQUWPTJZSZBOJPUXSUVHIUWOBUVDPUWQUWPTUVRFLLUVHUVMBAD
      UVLUVHACLUWIUWHWSZUXDWTUVHUVMUWOKZULZUVMBUVHUWOLUVMUVHALUWNUYDXAXBZUVHBLK
      ZUYEUVHALBUYDUXDWFZWHZWIZUXJUXJHUXQUVCUVEUWMUWSUXCXCUVHIAUWPSZBOJZIUWOUWP
      SZBOJZPUYMUYLUWOXDZBOJUYOBUWOUYLXFUYPUYNBOUWOAMZUYPUYNVIAUWNXGZIAUWOUWPXH
      WQXIXJUVHBBRJZPUYMUVHBUYIXKUVHIABLUWPUYSUVHIUVMBRFAHRUVRFXLJZKUVHFHXMWKUV
      HALMZUXHIAUVMSALXOJZKUYDUXIIALXNVDUVHUYHVUAUXHIABSVUBKUYIUYDUXJIBALXPXQXR
      UXDUVMBBRXSXTYAYBUVHTUYTKUVDPYCZUXKKZTVUCUVRFUIJZNKFHYEUVHUVDLKPLKZVUDUVC
      ABUVDCDUWTUXAUXBYDZYFUVDPLLYGVDVUCTUVRFUXKUXPYHVFYIUVHUVDVUGYJUVHUYCUXRBO
      UVHIUWOUYBUVOUYFUVOUWPUYFUVNUVIUYFALUVMDUVHUVAUYEUVLWHUYFUWOAUVMUYRUVHUYE
      YOYBWGUVHUWBUYEUXEWHWIUYKUYFUVMBUYGUYJUYEUVMBYPUVHUVMABYKYLYMYNYQYRYSUVHU
      YAUXTUWOXDZBOJUXSUVHABUXTUVHIAUVOLUXTUXGUXTVPYTUUAVUHUXRBOUYQVUHUXRVIUYRI
      AUWOUVOXHWQXIUUEUUBUVHIABLUVIUVIUVHUWBVUAUXHIAUVISVUBKUXEUYDUXJIUVIALXPXQ
      UXDUVMBVIUVIUUFXTUVHQUYTKPUVIYCZUXKKZQVUIVUENKFHUUGUVHVUFUWBVUJYFUXEPUVIL
      LYGVFVUIQUVRFUXKUXPYHVFYIUVHUVIUXEUUCUVHUVQDBOUVHUVQIAUVNSDUVHIAUVPUVNUVT
      UVNUVIUWAUXFUUHYQUVHIALDUVLUUDUUIYRYSUVHVUABAKUVGUVAUVKULUUJUYDUXDABDEFHG
      UUKVRUULUUPUUMUUNUUO $.
  $}

  ${
    $d x A $.  $d x F $.  $d x S $.
    $( A differentiable function is continuous.  (Contributed by Mario
       Carneiro, 7-Sep-2014.)  (Revised by Mario Carneiro, 7-Sep-2015.) $)
    dvcn $p |- ( ( ( S C_ CC /\ F : A --> CC /\ A C_ S ) /\
      dom ( S _D F ) = A ) -> F e. ( A -cn-> CC ) ) $=
      ( vx cc wss wf w3a cdv co cdm wceq wa crest wcel wral eqid ctopon sylancl
      cfv ccnfld ctopn ccncf cv ccnp simpl2 dvcnp2 ralrimiva raleq biimpd mpan9
      ccn cnfldtopon simpl3 simpl1 sstrd resttopon sylancr cncnp mpbir2and ssid
      wb toponunii restid ax-mp eqcomi cncfcn eleqtrrd ) BEFZAECGZABFZHZBCIJKZA
      LZMZCUAUBTZANJZVPULJZAEUCJZVOCVROZVJCDUDZVQVPUEJTOZDAPZVIVJVKVNUFVLWBDVMP
      ZVNWCVLWBDVMAWABCVQVPVQQZVPQZUGUHVNWDWCWBDVMAUIUJUKVOVQARTOZVPERTZOZVTVJW
      CMVBVOWIAEFZWGVPWFUMZVOABEVIVJVKVNUNVIVJVKVNUOUPZAVPEUQURWKDCVQVPAEUSSUTV
      OWJEEFVSVRLWLEVAAEVPVQVPWFWEVPENJZVPWIWMVPLWKVPWHEEVPWKVCVDVEVFVGSVH $.
  $}

  ${
    $d f s x F $.  $d f s G $.  $d f s x S $.
    dvnfval.1 $e |- G = ( x e. _V |-> ( S _D x ) ) $.
    $( Value of the iterated derivative.  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    dvnfval $p |- ( ( S C_ CC /\ F e. ( CC ^pm S ) ) ->
        ( S Dn F ) = seq 0 ( ( G o. 1st ) , ( NN0 X. { F } ) ) ) $=
      ( vs vf cc cpm co wcel wa cv cvv cdv c1st cn0 cc0 cseq wceq wss cmpt ccom
      cpw csn cxp cdvn df-dvn a1i simprl oveq1d mpteq2dv syl6eqr coeq1d seqeq2d
      cmpt2 simprr sneqd xpeq2d seqeq3d eqtrd simpr oveq2d simpl elpw2 ovmpt2dx
      cnex sylibr seqex ) BHUAZCHBIJZKZLZFGBCHUDZHFMZIJZANVOAMZOJZUBZPUCZQGMZUE
      ZUFZRSZDPUCZQCUEZUFZRSZUGVKNUGFGVNVPWDUPTVMAGFUHUIVMVOBTZWACTZLLZWDWEWCRS
      WHWKVTWEWCRWKVSDPWKVSANBVQOJZUBDWKANVRWLWKVOBVQOVMWIWJUJUKULEUMUNUOWKWCWG
      WERWKWBWFQWKWACVMWIWJUQURUSUTVAVMWILVOBHIVMWIVBVCVMVJBVNKVJVLVDBHVGVEVHVJ
      VLVBWHNKVMWEWGRVIUIVF $.
  $}

  ${
    $d f k n x F $.  $d f k m n M $.  $d f n x N $.  $d f k m n s x S $.
    $( The iterated derivative is a function.  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    dvnff $p |- ( ( S e. { RR , CC } /\ F e. ( CC ^pm S ) ) ->
        ( S Dn F ) : NN0 --> ( CC ^pm dom F ) ) $=
      ( vx vk vn cc wcel cpm co wa cn0 cdm wf cvv cv cdv cc0 wceq cnex wss cdvn
      cr cpr cmpt c1st ccom csn cxp cseq nn0uz 0zd cfv fvconst2g dmexg ad2antlr
      adantll wb elpm2g mpan biimpa simpld adantr fpmg syl3anc eqeltrd algrflem
      a1i vex oveq2 eqid ovex fvmpt ax-mp dvfg ad2antrr recnprss simprl sylancr
      eqtri mpbid simprd sstrd dvbss syl22anc syl5eqel seqf dvnfval sylan feq1d
      elpm2r mpbird ) AUBFUCZGZBFAHIZGZJZKFBLZHIZABUAIZMKWRCNACOZPIZUDZUEUFZKBU
      GUHZQUIZMWPDEXCWRXDQKUJWPUKWPDOZKGZJZXFXDULZBWRWOXGXIBRWMKBXFWNUMUPXHWQNG
      ZFNGZWQFBMZBWRGWOXJWMXGBWNUNZUOXKXHSVGWPXLXGWPXLWQATZWMWOXLXNJZXKWMWOXOUQ
      SFABNWLURUSUTZVAVBWQFBNNVCVDVEWPXFWRGZEOZWRGZJZJZXFXRXCIZAXFPIZWRYBXFXBUL
      ZYCXFXRXBDVHZEVHVFXFNGYDYCRYECXFXAYCNXBWTXFAPVIXBVJZAXFPVKVLVMVSYAXKXJYCL
      ZFYCMZYGWQTYCWRGXKYASVGWOXJWMXTXMUOZWMYHWOXTAXFVNVOYAYGXFLZWQYAYJAXFWMAFT
      ZWOXTAVPZVOYAYJFXFMZYJWQTZYAXQYMYNJZWPXQXSVQYAXKXJXQYOUQSYIFWQXFNNURVRVTZ
      VAYAYJWQAYAYMYNYPWAZWPXNXTWPXLXNXPWAVBWBWCYQWBFWQYGYCNNWJWDWEWFWPKWRWSXEW
      MYKWOWSXERYLCABXBYFWGWHWIWK $.

    $( Zero times iterated derivative.  (Contributed by Stefan O'Rear,
       15-Nov-2014.)  (Revised by Mario Carneiro, 11-Feb-2015.) $)
    dvn0 $p |- ( ( S C_ CC /\ F e. ( CC ^pm S ) ) ->
        ( ( S Dn F ) ` 0 ) = F ) $=
      ( vx cc wss cpm co wcel wa cc0 cdvn cfv cvv cv cdv cmpt c1st ccom cn0 csn
      cseq eqid dvnfval fveq1d 0z wceq simpr 0nn0 fvconst2g sylancl seq1i eqtrd
      cxp ) ADEZBDAFGZHZIZJABKGZLJCMACNOGPZQRZSBTUMZJUAZLBUQJURVBCABUSUSUBUCUDU
      QBUTVAJUEUQUPJSHJVALBUFUNUPUGUHSBJUOUIUJUKUL $.

    $( Successor iterated derivative.  (Contributed by Stefan O'Rear,
       15-Nov-2014.)  (Revised by Mario Carneiro, 11-Feb-2015.) $)
    dvnp1 $p |- ( ( S C_ CC /\ F e. ( CC ^pm S ) /\ N e. NN0 ) ->
        ( ( S Dn F ) ` ( N + 1 ) ) = ( S _D ( ( S Dn F ) ` N ) ) ) $=
      ( vx cc wss cpm co wcel cn0 w3a c1 caddc cvv cdv cc0 cfv wceq fvex fveq1d
      cv cmpt c1st ccom csn cxp cseq cdvn cuz simp3 nn0uz syl6eleq syl algrflem
      seqp1 syl6eq eqid dvnfval 3adant3 oveq2 ovex fvmpt fveq2d syl5eqr 3eqtr4d
      ax-mp ) AEFZBEAGHIZCJIZKZCLMHZDNADUAZOHZUBZUCUDZJBUEUFZPUGZQZCVQQZVNQZVKA
      BUHHZQACWAQZOHZVJVRVSVKVPQZVOHZVTVJCPUIQZIVRWERVJCJWFVGVHVIUJUKULVOVPPCUO
      UMVSWDVNCVQSVKVPSUNUPVJVKWAVQVGVHWAVQRVIDABVNVNUQZURUSZTVJWCWBVNQZVTWBNIW
      IWCRCWASDWBVMWCNVNVLWBAOUTWGAWBOVAVBVFVJWBVSVNVJCWAVQWHTVCVDVE $.

    $( One times iterated derivative.  (Contributed by Mario Carneiro,
       1-Jan-2017.) $)
    dvn1 $p |- ( ( S C_ CC /\ F e. ( CC ^pm S ) ) ->
        ( ( S Dn F ) ` 1 ) = ( S _D F ) ) $=
      ( cc wss cpm co wcel wa cdvn cfv cc0 caddc cdv 0p1e1 fveq2i cn0 wceq 0nn0
      c1 dvnp1 mp3an3 dvn0 oveq2d eqtrd syl5eqr ) ACDZBCAEFGZHZSABIFZJKSLFZUIJZ
      ABMFZUJSUINOUHUKAKUIJZMFZULUFUGKPGUKUNQRABKTUAUHUMBAMABUBUCUDUE $.

    $( The N-times derivative is a function.  (Contributed by Stefan O'Rear,
       16-Nov-2014.)  (Revised by Mario Carneiro, 11-Feb-2015.) $)
    dvnf $p |- ( ( S e. { RR , CC } /\ F e. ( CC ^pm S ) /\ N e. NN0 ) ->
      ( ( S Dn F ) ` N ) : dom ( ( S Dn F ) ` N ) --> CC ) $=
      ( cr cc cpr wcel cpm co cn0 cdm wf wss wa cvv cnex elpm2g sylancr mpbid
      wb w3a cdvn cfv dvnff ffvelrnda 3impa simp1 simp2 simprd ssexd simpld ) A
      DEFZGZBEAHIGZCJGZUAZCABUBIZUCZKZEURLZUSBKZMZUPUREVAHIZGZUTVBNZUMUNUOVDUMU
      NNJVCCUQABUDUEUFUPEOGZVAOGVDVETPUPVAAULUMUNUOUGZUPVAEBLZVAAMZUPUNVHVINZUM
      UNUOUHUPVFUMUNVJTPVGEABOULQRSUIUJEVAUROOQRSUK $.

    $( The set of N-times differentiable points is a subset of the domain of
       the function.  (Contributed by Stefan O'Rear, 16-Nov-2014.)  (Revised by
       Mario Carneiro, 11-Feb-2015.) $)
    dvnbss $p |- ( ( S e. { RR , CC } /\ F e. ( CC ^pm S ) /\ N e. NN0 ) ->
      dom ( ( S Dn F ) ` N ) C_ dom F ) $=
      ( cr cc wcel cpm co cn0 cdm wf wss wa wb cnex elpm2g sylancr mpbid simprd
      cvv cpr w3a cdvn cfv dvnff ffvelrnda 3impa simp1 simp2 ssexd ) ADEUAZFZBE
      AGHFZCIFZUBZCABUCHZUDZJZEUQKZURBJZLZUOUQEUTGHZFZUSVAMZULUMUNVCULUMMIVBCUP
      ABUEUFUGUOETFZUTTFVCVDNOUOUTAUKULUMUNUHZUOUTEBKZUTALZUOUMVGVHMZULUMUNUIUO
      VEULUMVINOVFEABTUKPQRSUJEUTUQTTPQRS $.

    $( The ` N ` -th derivative of the ` M ` -th derivative of ` F ` is the
       same as the ` M + N ` -th derivative of ` F ` .  (Contributed by Mario
       Carneiro, 11-Feb-2015.) $)
    dvnadd $p |- ( ( ( S e. { RR , CC } /\ F e. ( CC ^pm S ) ) /\
      ( M e. NN0 /\ N e. NN0 ) ) ->
      ( ( S Dn ( ( S Dn F ) ` M ) ) ` N ) = ( ( S Dn F ) ` ( M + N ) ) ) $=
      ( cc wcel co wa cn0 cfv caddc wceq wi cc0 fveq2 fveq2d eqeq12d imbi2d wss
      oveq2 vn vk cr cpr cpm cdvn cv c1 recnprss ad2antrr cdm cvv ssid a1i cnex
      wf wb elpm2g mpan simplbda simpl pmss12g syl22anc adantr ffvelrnda sseldd
      dvnff syl2anc nn0cn adantl addid1d eqtr4d cdv simpr dvnp1 syl3anc addassd
      dvn0 1cnd simpllr nn0addcl adantll eqtr3d syl5ibr expcom a2d nn0ind com12
      impr ) AUCEUDZFZBEAUEGZFZHZCIFZDIFZDACABUFGZJZUFGZJZCDKGZWQJZLZWPWNWOHZXC
      XDUAUGZWSJZCXEKGZWQJZLZMXDNWSJZCNKGZWQJZLZMXDUBUGZWSJZCXNKGZWQJZLZMXDXNUH
      KGZWSJZCXSKGZWQJZLZMXDXCMUAUBDXENLZXIXMXDYDXFXJXHXLXENWSOYDXGXKWQXENCKTPQ
      RXEXNLZXIXRXDYEXFXOXHXQXEXNWSOYEXGXPWQXEXNCKTPQRXEXSLZXIYCXDYFXFXTXHYBXEX
      SWSOYFXGYAWQXEXSCKTPQRXEDLZXIXCXDYGXFWTXHXBXEDWSOYGXGXAWQXEDCKTPQRXDXJWRX
      LXDAESZWRWLFZXJWRLWKYHWMWOAUIUJZXDEBUKZUEGZWLWRWNYLWLSZWOWNEESZYKASZEULFZ
      WKYMYNWNEUMUNWKWMYKEBUPZYOYPWKWMYQYOHUQUOEABULWJURUSUTYPWNUOUNWKWMVAEYKEA
      ULWJVBVCVDWNIYLCWQABVGVEVFZAWRVRVHXDXKCWQXDCWOCEFZWNCVIVJZVKPVLXNIFZXDXRY
      CXDUUAXRYCMXRYCXDUUAHZAXOVMGZAXQVMGZLXOXQAVMTUUBXTUUCYBUUDUUBYHYIUUAXTUUC
      LXDYHUUAYJVDZXDYIUUAYRVDXDUUAVNAWRXNVOVPUUBXPUHKGZWQJZYBUUDUUBUUFYAWQUUBC
      XNUHXDYSUUAYTVDUUAXNEFXDXNVIVJUUBVSVQPUUBYHWMXPIFZUUGUUDLUUEWKWMWOUUAVTWO
      UUAUUHWNCXNWAWBABXPVOVPWCQWDWEWFWGWHWI $.

    $( An N-times differentiable point is an M-times differentiable point, if
       ` M <_ N ` .  (Contributed by Mario Carneiro, 30-Dec-2016.) $)
    dvn2bss $p |- ( ( S e. { RR , CC } /\ F e. ( CC ^pm S ) /\
      M e. ( 0 ... N ) ) ->
        dom ( ( S Dn F ) ` N ) C_ dom ( ( S Dn F ) ` M ) ) $=
      ( cc wcel co cc0 cdvn cfv cdm cn0 3ad2ant3 cuz syl22anc nn0cnd wss cvv wf
      syl3an3 cr cpr cpm cfz w3a cmin caddc wceq simp1 elfznn0 elfzuz3 uznn0sub
      simp2 dvnadd elfzuz2 nn0uz syl6eleqr pncan3d fveq2d eqtrd dmeqd cnex dvnf
      syl a1i dvnbss wa elpmi 3ad2ant2 simprd sstrd elpm2r syl3anc eqsstr3d ) A
      UAEUBZFZBEAUCGZFZCHDUDGFZUEZDABIGZJZKDCUFGZACWAJZIGJZKZWDKZVTWEWBVTWECWCU
      GGZWAJZWBVTVPVRCLFZWCLFZWEWIUHVPVRVSUIZVPVRVSUMVSVPWJVRCDUJZMZVTDCNJFZWKV
      SVPWOVRCHDUKMCDULVDZABCWCUNOVTWHDWAVTCDVTCWNPVTDVTDHNJZLVSVPDWQFVRCHDUOMU
      PUQPURUSUTVAVTVPWDVQFZWKWFWGQWLVTERFZVPWGEWDSZWGAQWRWSVTVBVEWLVSVPVRWJWTW
      MABCVCTVTWGBKZAVSVPVRWJWGXAQWMABCVFTVTXAEBSZXAAQZVRVPXBXCVGVSEABVHVIVJVKE
      AWGWDRVOVLOWPAWDWCVFVMVN $.

    $( Multiple derivative version of ~ dvres3a .  (Contributed by Mario
       Carneiro, 11-Feb-2015.) $)
    dvnres $p |- ( ( ( S e. { RR , CC } /\ F e. ( CC ^pm CC ) /\ N e. NN0 ) /\
      dom ( ( CC Dn F ) ` N ) = dom F ) ->
        ( ( S Dn ( F |` S ) ) ` N ) = ( ( ( CC Dn F ) ` N ) |` S ) ) $=
      ( cc wcel co cfv cdm wceq cres wi cc0 fveq2 dmeqd reseq1d eqeq12d imbi12d
      wa eqeq1d wss vx vn cr cpr cpm cn0 w3a cv c1 caddc imbi2d recnprss adantr
      cdvn pmresg dvn0 syl2anc a1i sylan eqtr4d cnelprrecn simplr simprl dvnbss
      ssid a1d syl3anc cdv simprr dvnp1 eqtr3d wf dvnf cnex elpm2 simprbi sstrd
      syl dvbss eqsstrd eqssd expr imim1d oveq2 ccnfld simpll cnt ctop cnfldtop
      ctopn eqid cnfldtopon toponunii ntrss2 crest restid ax-mp eqcomi dvbssntr
      sylancr wb isopn3 mpbird eqtr2d dvres3a syl22anc syl5ibr a2d expcom com12
      syld nn0ind 3impia imp ) AUCDUDZEZBDDUEFEZCUFEZUGCDBUNFZGZHZBHZIZCABAJZUN
      FZGZXTAJZIZXPXQXRYCYHKZXRXPXQRZYIYJUAUHZXSGZHZYBIZYKYEGZYLAJZIZKZKYJLXSGZ
      HZYBIZLYEGZYSAJZIZKZKYJUBUHZXSGZHZYBIZUUFYEGZUUGAJZIZKZKYJUUFUIUJFZXSGZHZ
      YBIZUUNYEGZUUOAJZIZKZKYJYIKUAUBCYKLIZYRUUEYJUVBYNUUAYQUUDUVBYMYTYBUVBYLYS
      YKLXSMZNSUVBYOUUBYPUUCYKLYEMUVBYLYSAUVCOPQUKYKUUFIZYRUUMYJUVDYNUUIYQUULUV
      DYMUUHYBUVDYLUUGYKUUFXSMZNSUVDYOUUJYPUUKYKUUFYEMUVDYLUUGAUVEOPQUKYKUUNIZY
      RUVAYJUVFYNUUQYQUUTUVFYMUUPYBUVFYLUUOYKUUNXSMZNSUVFYOUURYPUUSYKUUNYEMUVFY
      LUUOAUVGOPQUKYKCIZYRYIYJUVHYNYCYQYHUVHYMYAYBUVHYLXTYKCXSMZNSUVHYOYFYPYGYK
      CYEMUVHYLXTAUVIOPQUKYJUUDUUAYJUUBYDUUCYJADTZYDDAUEFEZUUBYDIXPUVJXQAULUMZD
      ADBXOUOZAYDUPUQYJYSBAXPDDTZXQYSBIUVNXPDVEZURDBUPUSOUTVFUUFUFEZYJUUMUVAYJU
      VPUUMUVAKYJUVPRZUUMUUQUULKUVAUVQUUQUUIUULYJUVPUUQUUIYJUVPUUQRZRZUUHYBUVSD
      XOEZXQUVPUUHYBTUVTUVSVAURZXPXQUVRVBZYJUVPUUQVCZDBUUFVDVGZUVSYBDUUGVHFZHZU
      UHUVSUUPYBUWFYJUVPUUQVIUVSUUOUWEUVSUVNXQUVPUUOUWEIUVNUVSUVOURZUWBUWCDBUUF
      VJVGZNVKZUVSUUHDUUGUWGUVSUVTXQUVPUUHDUUGVLZUWAUWBUWCDBUUFVMVGZUVSUUHYBDUW
      DUVSXQYBDTZUWBXQYBDBVLUWLDDBVNVNVOVPVRVQZVSVTWAZWBWCUVQUUQUULUUTYJUVPUUQU
      ULUUTKUULUUTUVSAUUJVHFZAUUKVHFZIUUJUUKAVHWDUVSUURUWOUUSUWPUVSUVJUVKUVPUUR
      UWOIYJUVJUVRUVLUMYJUVKUVRUVMUMUWCAYDUUFVJVGUVSUUSUWEAJZUWPUVSUUOUWEAUWHOU
      VSXPUWJUUHWEWJGZEZUWFUUHIUWPUWQIXPXQUVRWFUWKUVSUWSUUHUWRWGGGZUUHIZUVSUWTU
      UHUVSUWRWHEZUUHDTZUWTUUHTUWRUWRWKZWIZUWMUUHUWRDDUWRUWRUXDWLWMZWNWTUVSUUHY
      BUWTUWDUVSYBUWFUWTUWIUVSUUHDUUGUWRUWRUWGUWKUWMUWRDWOFZUWRUXBUXGUWRIUXEUWR
      WHDUXFWPWQWRUXDWSVTVQWAUVSUXBUXCUWSUXAXAUXEUWMUUHUWRDUXFXBWTXCUVSUUHYBUWF
      UWNUWIXDUUHAUUGUWRUXDXEXFUTPXGWBXHXKXIXHXLXJXMXN $.

    $( Condition for n-times continuous differentiability.  (Contributed by
       Stefan O'Rear, 15-Nov-2014.)  (Revised by Mario Carneiro,
       11-Feb-2015.) $)
    cpnfval $p |- ( S C_ CC -> ( C^n ` S ) = ( n e. NN0 |->
      { f e. ( CC ^pm S ) | ( ( S Dn f ) ` n ) e. ( dom f -cn-> CC ) } ) ) $=
      ( vs cc wss cpw wcel ccpn cfv cn0 cv cdvn co cdm ccncf cpm crab cmpt wceq
      cnex elpw2 oveq2 oveq1 fveq1d eleq1d rabeqbidv mpteq2dv nn0ex mptex fvmpt
      df-cpn sylbir ) AEFAEGZHAIJCKCLZABLZMNZJZUPOEPNZHZBEAQNZRZSZTAEUAUBDACKUO
      DLZUPMNZJZUSHZBEVDQNZRZSVCUNIVDATZCKVIVBVJVGUTBVHVAVDAEQUCVJVFURUSVJUOVEU
      QVDAUPMUDUEUFUGUHCBDULCKVBUIUJUKUM $.

    $( The ` C^n ` object is a function.  (Contributed by Stefan O'Rear,
       16-Nov-2014.)  (Revised by Mario Carneiro, 11-Feb-2015.) $)
    fncpn $p |- ( S C_ CC -> ( C^n ` S ) Fn NN0 ) $=
      ( vn vf cc wss ccpn cfv cn0 wfn cv cdvn cdm ccncf wcel cpm crab cmpt ovex
      co rabex eqid fnmpti cpnfval fneq1d mpbiri ) ADEZAFGZHIBHBJACJZKSGUHLDMSN
      ZCDAOSZPZQZHIBHUKULUICUJDAORTULUAUBUFHUGULACBUCUDUE $.

    $( Condition for n-times continuous differentiability.  (Contributed by
       Stefan O'Rear, 15-Nov-2014.)  (Revised by Mario Carneiro,
       11-Feb-2015.) $)
    elcpn $p |- ( ( S C_ CC /\ N e. NN0 ) -> ( F e. ( ( C^n ` S ) ` N ) <->
      ( F e. ( CC ^pm S ) /\ ( ( S Dn F ) ` N ) e. ( dom F -cn-> CC ) ) ) ) $=
      ( vf vn cc wss cn0 wcel wa cfv cv cdvn co cdm ccncf cpm crab fveq1d wceq
      ccpn cmpt cpnfval fveq2 eleq1d rabbidv eqid ovex rabex fvmpt eleq2d oveq2
      sylan9eq dmeq oveq1d eleq12d elrab syl6bb ) AFGZCHIZJZBCAUAKZKZIBCADLZMNZ
      KZVDOZFPNZIZDFAQNZRZIBVJICABMNZKZBOZFPNZIZJVAVCVKBUSUTVCCEHELZVEKZVHIZDVJ
      RZUBZKVKUSCVBWAADEUCSECVTVKHWAVQCTZVSVIDVJWBVRVFVHVQCVEUDUEUFWAUGVIDVJFAQ
      UHUIUJUMUKVIVPDBVJVDBTZVFVMVHVOWCCVEVLVDBAMULSWCVGVNFPVDBUNUOUPUQUR $.

    $( ` C^n ` conditions are ordered by strength.  (Contributed by Stefan
       O'Rear, 16-Nov-2014.)  (Revised by Mario Carneiro, 11-Feb-2015.) $)
    cpnord $p |- ( ( S e. { RR , CC } /\ M e. NN0 /\ N e. ( ZZ>= ` M ) ) ->
        ( ( C^n ` S ) ` N ) C_ ( ( C^n ` S ) ` M ) ) $=
      ( cc wcel cn0 cfv wss wa cv wi co wceq fveq2 sseq1d imbi2d cdm wf syl3anc
      syl vn vm vf cr cpr cuz ccpn c1 caddc ssid 2a1i cpm cdvn ccncf simprl cdv
      recnprss ad2antrr adantr simplll eluznn0 adantll dvnf dvnbss dvnp1 simprr
      cz eqeltrrd cncff fdm cvv wb cnex elpm2g sylancr mpbid simprd sstrd dvbss
      eqsstr3d eqssd feq2d dvcn syl31anc jca ex peano2nn0 elcpn syl2anc 3imtr4d
      ssrdv sstr2 expcom a2d uzind4 com12 3impia ) AUDDUEZEZBFEZCBUFGZEZCAUGGZG
      ZBXCGZHZXBWSWTIZXFXGUAJZXCGZXEHZKXGXEXEHZKXGUBJZXCGZXEHZKXGXLUHUILZXCGZXE
      HZKXGXFKUAUBBCXHBMZXJXKXGXRXIXEXEXHBXCNOPXHXLMZXJXNXGXSXIXMXEXHXLXCNOPXHX
      OMZXJXQXGXTXIXPXEXHXOXCNOPXHCMZXJXFXGYAXIXDXEXHCXCNOPXKBVGEXGXEUJUKXLXAEZ
      XGXNXQXGYBXNXQKZXGYBIZXPXMHYCYDUCXPXMYDUCJZDAULLEZXOAYEUMLZGZYEQZDUNLZEZI
      ZYFXLYGGZYJEZIZYEXPEZYEXMEZYDYLYOYDYLIZYFYNYDYFYKUOZYRADHZYIDYMRZYIAHZAYM
      UPLZQZYIMZYNYDYTYLWSYTWTYBAUQURZUSZYRYMQZDYMRZUUAYRWSYFXLFEZUUIWSWTYBYLUT
      ZYSYDUUJYLWTYBUUJWSXLBVAVBZUSZAYEXLVCSZYRUUHYIDYMYRUUHYIYRWSYFUUJUUHYIHUU
      KYSUUMAYEXLVDSZYRYIUUDUUHYRYIDUUCRZUUEYRUUCYJEUUPYRYHUUCYJYRYTYFUUJYHUUCM
      UUGYSUUMAYEXLVESYDYFYKVFVHYIDUUCVITYIDUUCVJTZYRUUHAYMUUGUUNYRUUHYIAUUOYRY
      IDYERZUUBYRYFUURUUBIZYSYRDVKEWSYFUUSVLVMUUKDAYEVKWRVNVOVPVQZVRVSVTWAWBVPU
      UTUUQYIAYMWCWDWEWFYDYTXOFEZYPYLVLUUFYDUUJUVAUULXLWGTAYEXOWHWIYDYTUUJYQYOV
      LUUFUULAYEXLWHWIWJWKXPXMXEWLTWMWNWOWPWQ $.

    $( A ` C^n ` function is continuous.  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    cpncn $p |- ( ( S e. { RR , CC } /\ F e. ( ( C^n ` S ) ` N ) ) ->
      F e. ( dom F -cn-> CC ) ) $=
      ( cr cc cpr wcel ccpn cfv wa cc0 cdvn cdm ccncf wss cpm wceq cn0 syl2anc
      co recnprss adantr cuz simpl 0nn0 a1i elfvdm adantl wfn fndm 3syl eleqtrd
      fncpn nn0uz syl6eleq cpnord syl3anc simpr sseldd elcpn simpld dvn0 simprd
      wb mpbid eqeltrrd ) ADEFGZBCAHIZIZGZJZKABLTIZBBMENTZVKAEOZBEAPTGZVLBQVGVN
      VJAUAUBZVKVOVLVMGZVKBKVHIZGZVOVQJZVKVIVRBVKVGKRGZCKUCIZGVIVROVGVJUDWAVKUE
      UFZVKCRWBVKCVHMZRVJCWDGVGBCVHUGUHVKVNVHRUIWDRQVPAUMRVHUJUKULUNUOAKCUPUQVG
      VJURUSVKVNWAVSVTVDVPWCABKUTSVEZVAABVBSVKVOVQWEVCVF $.

    $( The restriction of a ` C^n ` function is ` C^n ` .  (Contributed by
       Mario Carneiro, 11-Feb-2015.) $)
    cpnres $p |- ( ( S e. { RR , CC } /\ F e. ( ( C^n ` CC ) ` N ) ) ->
        ( F |` S ) e. ( ( C^n ` S ) ` N ) ) $=
      ( cc wcel ccpn cfv wa cres cpm co cdvn cdm ccncf wss cn0 wfn wceq elcpn
      wb cr cpr simpl simpr ssid elfvdm adantl fncpn ax-mp fndm eleqtrd sylancr
      mp1i mpbid simpld pmresg syl2anc simprd cncff syl fdm dvnres syl31anc cin
      wf resres rescom eqtr3i ffn fnresdm reseq1d syl5eq inss2 rescncf eqeltrrd
      3syl mpsyl dmres oveq1i syl6eleqr eqeltrd recnprss adantr mpbir2and ) AUA
      DUBZEZBCDFGZGEZHZBAIZCAFGGEZWJDAJKEZCAWJLKGZWJMZDNKZEZWIWFBDDJKEZWLWFWHUC
      ZWIWQCDBLKGZBMZDNKEZWIWHWQXAHZWFWHUDWIDDOZCPEZWHXBTDUEZWICWGMZPWHCXFEWFBC
      WGUFUGWGPQZXFPRWIXCXGXEDUHUIPWGUJUMUKZDBCSULUNZUOZDADBWEUPUQWIWMWSAIZWOWI
      WFWQXDWSMWTRZWMXKRWRXJXHWIWTDWSVEZXLWIXAXMWIWQXAXIURZWTDWSUSUTZWTDWSVAUTA
      BCVBVCWIXKAWTVDZDNKZWOWIWSXPIZXKXQWIXRWSWTIZAIZXKXKWTIXRXTWSAWTVFWSAWTVGV
      HWIXSWSAWIXMWSWTQXSWSRXOWTDWSVIWTWSVJVPVKVLXPWTOWIXAXRXQEAWTVMXNWTDXPWSVN
      VQVOWNXPDNBAVRVSVTWAWIADOZXDWKWLWPHTWFYAWHAWBWCXHAWJCSUQWD $.
  $}

  ${
    $d y z C $.  $d y z G $.  $d y z J $.  $d x y z ph $.  $d x y z F $.
    $d z K $.  $d z L $.  $d z S $.  $d z X $.  $d z Y $.
    dvadd.f $e |- ( ph -> F : X --> CC ) $.
    dvadd.x $e |- ( ph -> X C_ S ) $.
    dvadd.g $e |- ( ph -> G : Y --> CC ) $.
    dvadd.y $e |- ( ph -> Y C_ S ) $.
    ${
      dvaddbr.s $e |- ( ph -> S C_ CC ) $.
      dvadd.k $e |- ( ph -> K e. V ) $.
      dvadd.l $e |- ( ph -> L e. V ) $.
      dvadd.bf $e |- ( ph -> C ( S _D F ) K ) $.
      dvadd.bg $e |- ( ph -> C ( S _D G ) L ) $.
      dvadd.j $e |- J = ( TopOpen ` CCfld ) $.
      $( The sum rule for derivatives at a point.  For the (simpler but more
         limited) function version, see ~ dvadd .  (Contributed by Mario
         Carneiro, 9-Aug-2014.)  (Revised by Mario Carneiro, 28-Dec-2016.) $)
      dvaddbr $p |- ( ph -> C ( S _D ( F oF + G ) ) ( K + L ) ) $=
        ( vz vx vy caddc co cof cdv wbr cin crest cnt cfv wcel csn cdif cv cmin
        cdiv cmpt climc wa eqid eldv mpbid simpld elind ctop cuni wss ctopon cc
        wceq cnfldtopon resttopon sylancr topontop syl toponuni sseqtrd syl3anc
        ntrin eleqtrrd ctx ssdif mp1i sselda sstrd ntrss2 syl2anc sseldd syldan
        dvlem a1i simprd cres cun fmptd syl5ss difssd unssd ssun1 ntrss restntr
        ssdifssd cnex ssexg sylancl restabs fveq2d fveq1d eqtr3d eleqtrd undif1
        cvv snssd ssequn2 sylib syl5eq oveq2d fveq12d limcres oveq1d dvcl mpdan
        resmptd adantl wfn wf ffn adantr eqidd ofval sstri sseli ffvelrn syl2an
        ffvelrnd eqtrd subcld inss1 inss2 ssid cxp mp2an toponunii restid ax-mp
        txtopon eqcomi cnfldtop ccn cop ccnp addcn opelxpi cncnpi eldifi mpidan
        limccnp2 oveq12d difss addsub4d wne subne0d divdird mpteq2dva addcl off
        eldifsni mpbir2and ) ABGHUEUFZCDEUEUGUFZUHUFUIBJKUJZFCUKUFZULUMZUMZUNUV
        LUBUVNBUOZUPZUBUQZUVMUMZBUVMUMZURUFZUVTBURUFZUSUFZUTZBVAUFZUNABJUVPUMZK
        UVPUMZUJZUVQAUWHUWIBABUWHUNZGUBJUVRUPZUVTDUMZBDUMZURUFZUWDUSUFZUTZBVAUF
        ZUNZABGCDUHUFUIZUWKUWSVBSAUBJBGCUVODUWQFUVOVCZUAUWQVCZPLMVDVEZVFZABUWIU
        NZHUBKUVRUPZUVTEUMZBEUMZURUFZUWDUSUFZUTZBVAUFZUNZABHCEUHUFUIZUXEUXMVBTA
        UBKBHCUVOEUXKFUXAUAUXKVCZPNOVDVEZVFZVGAUVOVHUNZJUVOVIZVJZKUXSVJZUVQUWJV
        MAUVOCVKUMUNZUXRAFVLVKUMUNZCVLVJZUYBFUAVNZPCFVLVOVPZCUVOVQVRZAJCUXSMAUY
        BCUXSVMUYFCUVOVSVRZVTZAKCUXSOUYHVTZJKUVOUXSUXSVCZWBWAWCZAUVLUBUVSUWPUXJ
        UEUFZUTZBVAUFUWGAUBUVSBGHUWPUXJUEFFWDUFZFVLVLAUVTUVSUNZUVTUWLUNUWPVLUNA
        UVSUWLUVTUVNJVJZUVSUWLVJAJKUUAZUVNJUVRWEWFZWGAUVTBJDLAJCVLMPWHZAUWHJBAU
        XRUXTUWHJVJUYGUYIJUVOUXSUYKWIWJUXDWKZWMZWLAUYPUVTUXFUNUXJVLUNAUVSUXFUVT
        UVNKVJZUVSUXFVJAJKUUBZUVNKUVRWEWFZWGAUVTBKENAKCVLOPWHZAUWIKBAUXRUYAUWIK
        VJUYGUYJKUVOUXSUYKWIWJUXQWKZWMZWLVLVLVJAVLUUCWNZVUIUAUYOVLVLUUDZUKUFZUY
        OUYOVUJVKUMZUNZVUKUYOVMUYCUYCVUMUYEUYEFFVLVLUUIUUEZUYOVULVUJVUJUYOVUNUU
        FZUUGUUHUUJAGUWRUBUVSUWPUTZBVAUFZAUWKUWSUXCWOAUWQUVSWPZBVAUFUWRVUQAUWLB
        UVSUWQFUWLUVRWQZUKUFZFAUBUWLUWPVLUWQVUBUXBWRUYSAJVLUVRUYTXEUAVUTVCABUVN
        FJUKUFZULUMZUMZUVSUVRWQZVUTULUMZUMABUVNUXSJUPZWQZUVPUMZJUJZVVCAVVHJBAUV
        QVVHBAUXRVVGUXSVJUVNVVGVJZUVQVVHVJUYGAUVNVVFUXSAUVNCUXSAUVNJCUYRMWSZUYH
        VTZAUXSJWTXAVVJAUVNVVFXBWNVVGUVNUVOUXSUYKXCWAUYLWKVUAVGAUVNUVOJUKUFZULU
        MZUMZVVIVVCAUXRUXTUYQVVOVVIVMUYGUYIUYQAUYRWNUVNUVOVVMUXSJUYKVVMVCXDWAAU
        VNVVNVVBAVVMVVAULAFVHUNZJCVJCXOUNZVVMVVAVMVVPAFUAUUKWNZMAUYDVLXOUNZVVQP
        XFCVLXOXGXHZJCFVHXOXIWAXJXKXLXMAVVDUVNVVEVVBAVUTVVAULAVUSJFUKAVUSJUVRWQ
        ZJJUVRXNAUVRJVJVWAJVMABJVUAXPUVRJXQXRXSXTXJAVVDUVNUVRWQZUVNUVNUVRXNAUVR
        UVNVJVWBUVNVMABUVNAJKBVUAVUGVGZXPUVRUVNXQXRXSZYAWCYBAVURVUPBVAAUBUWLUVS
        UWPUYSYFYCXLXMAHUXLUBUVSUXJUTZBVAUFZAUXEUXMUXPWOAUXKUVSWPZBVAUFUXLVWFAU
        XFBUVSUXKFUXFUVRWQZUKUFZFAUBUXFUXJVLUXKVUHUXOWRVUEAKVLUVRVUFXEUAVWIVCAB
        UVNFKUKUFZULUMZUMZVVDVWIULUMZUMABUVNUXSKUPZWQZUVPUMZKUJZVWLAVWPKBAUVQVW
        PBAUXRVWOUXSVJUVNVWOVJZUVQVWPVJUYGAUVNVWNUXSVVLAUXSKWTXAVWRAUVNVWNXBWNV
        WOUVNUVOUXSUYKXCWAUYLWKVUGVGAUVNUVOKUKUFZULUMZUMZVWQVWLAUXRUYAVUCVXAVWQ
        VMUYGUYJVUCAVUDWNUVNUVOVWSUXSKUYKVWSVCXDWAAUVNVWTVWKAVWSVWJULAVVPKCVJVV
        QVWSVWJVMVVROVVTKCFVHXOXIWAXJXKXLXMAVVDUVNVWMVWKAVWIVWJULAVWHKFUKAVWHKU
        VRWQZKKUVRXNAUVRKVJVXBKVMABKVUGXPUVRKXQXRXSXTXJVWDYAWCYBAVWGVWEBVAAUBUX
        FUVSUXJVUEYFYCXLXMAUEUYOFUULUFUNGHUUMZVUJUNZUEVXCUYOFUUNUFUMUNFUAUUOAGV
        LUNZHVLUNZVXDAUWTVXESAJBGCDPLMYDYEAUXNVXFTAKBHCEPNOYDYEGHVLVLUUPWJVXCUE
        UYOFVUJVUOUUQVPUUTAUWFUYNBVAAUBUVSUWEUYMAUYPVBZUWEUWOUXIUEUFZUWDUSUFUYM
        VXGUWCVXHUWDUSVXGUWCUWMUXGUEUFZUWNUXHUEUFZURUFVXHVXGUWAVXIUWBVXJURVXGUV
        TUVNUNZUWAVXIVMUYPVXKAUVTUVNUVRUURYGVXGJKUWMUXGUEUVNDEXOXOUVTADJYHZUYPA
        JVLDYIZVXLLJVLDYJVRYKZAEKYHZUYPAKVLEYIZVXONKVLEYJVRYKZAJXOUNZUYPAJVLVJV
        VSVXRUYTXFJVLXOXGXHZYKZAKXOUNZUYPAKVLVJVVSVYAVUFXFKVLXOXGXHZYKZUVNVCZVX
        GUVTJUNZVBUWMYLVXGUVTKUNZVBUXGYLYMYEAUYPBUVNUNUWBVXJVMVWCVXGJKUWNUXHUEU
        VNDEXOXOBVXNVXQVXTVYCVYDVXGBJUNVBUWNYLVXGBKUNVBUXHYLYMUUSUVAVXGUWMUXGUW
        NUXHAVXMVYEUWMVLUNUYPLUVSJUVTUVSUVNJUVNUVRUVBZUYRYNZYOJVLUVTDYPYQZAVXPV
        YFUXGVLUNUYPNUVSKUVTUVSUVNKVYGVUDYNYOKVLUVTEYPYQZAUWNVLUNUYPAJVLBDLVUAY
        RYKZAUXHVLUNUYPAKVLBENVUGYRYKZUVCYSYCVXGUWOUXIUWDVXGUWMUWNVYIVYKYTVXGUX
        GUXHVYJVYLYTVXGUVTBAUVSVLUVTAUVSJVLVYHUYTWSWGZABVLUNUYPAJVLBUYTVUAWKYKZ
        YTVXGUVTBVYMVYNUYPUVTBUVDAUVTUVNBUVJYGUVEUVFYSUVGYCWCAUBUVNBUVLCUVOUVMU
        WFFUXAUAUWFVCPAUCUDJKUVNUEVLVLVLDEXOXOUCUQZVLUNUDUQZVLUNVBVYOVYPUEUFVLU
        NAVYOVYPUVHYGLNVXSVYBVYDUVIVVKVDUVK $.

      $( The product rule for derivatives at a point.  For the (simpler but
         more limited) function version, see ~ dvmul .  (Contributed by Mario
         Carneiro, 9-Aug-2014.)  (Revised by Mario Carneiro, 28-Dec-2016.) $)
      dvmulbr $p |- ( ph -> C ( S _D ( F oF x. G ) )
                      ( ( K x. ( G ` C ) ) + ( L x. ( F ` C ) ) ) ) $=
        ( vz vx vy cfv cmul co caddc cof cdv wbr cin crest cnt wcel csn cdif cv
        cmin cdiv cmpt climc wa eqid eldv mpbid simpld elind ctop wss ctopon cc
        wceq sylancr syl sseqtrd syl3anc eleqtrrd adantr adantl sseldi ffvelrnd
        wf dvbss wrel reldv releldm sseldd subcld sstrd mulcld ssdif mp1i dvlem
        cdm a1i simprd cres cun fmptd ssdifssd difssd unssd ssun1 ntrss restntr
        ssexg sylancl restabs fveq2d fveq1d eqtr3d eleqtrd undif1 snssd ssequn2
        cvv cnex sylib syl5eq oveq2d fveq12d limcres resmptd oveq1d syl2anc cop
        ccnp mpdan opelxpi cncnpi limccnp2 eqidd eqtrd oveq12d wfn ofval div23d
        dvcl ffn cuni cnfldtopon resttopon topontop toponuni ntrin inss1 eldifi
        ctx wne eldifsni subne0d divcld inss2 sselda ssid cxp txtopon toponunii
        syldan mp2an restid ax-mp eqcomi syl5ss cnfldtop syl31anc cnplimc difss
        dvcnp2 wb sstri feqresmpt mulcn ccncf cncfmptc cnmptlimc limcdif resmpt
        ccn addcn divdird npncand subdird mulcomd subdid mpidan 3eqtr4d 3eqtr3d
        mpteq2dva mulcl off mpbir2and ) ABGBEUEZUFUGZHBDUEZUFUGZUHUGZCDEUFUIUGZ
[encoded data, 5200 characters]
        NWXMWXPWXRUWLVYBVEUWM $.
    $}

    dvadd.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvadd.df $e |- ( ph -> C e. dom ( S _D F ) ) $.
    dvadd.dg $e |- ( ph -> C e. dom ( S _D G ) ) $.
    $( The sum rule for derivatives at a point.  For the (more general)
       relation version, see ~ dvaddbr .  (Contributed by Mario Carneiro,
       9-Aug-2014.)  (Revised by Mario Carneiro, 10-Feb-2015.) $)
    dvadd $p |- ( ph -> ( ( S _D ( F oF + G ) ) ` C ) =
                  ( ( ( S _D F ) ` C ) + ( ( S _D G ) ` C ) ) ) $=
      ( co cdv wfun cfv wbr cc caddc cof wceq cr cpr wcel cdm wf dvfg ffun 3syl
      ccnfld ctopn cvv wss recnprss syl fvexd wb funfvbrb mpbid dvaddbr funbrfv
      4syl eqid sylc ) ACDEUAUBOZPOZQZBBCDPOZRZBCEPOZRZUAOZVHSBVHRVNUCACUDTUEUF
      ZVHUGZTVHUHVILCVGUIVPTVHUJUKABCDEULUMRZVKVMUNFGHIJKAVOCTUOLCUPUQABVJURABV
      LURABVJUGZUFZBVKVJSZMAVOVRTVJUHVJQVSVTUSLCDUIVRTVJUJBVJUTVDVAABVLUGZUFZBV
      MVLSZNAVOWATVLUHVLQWBWCUSLCEUIWATVLUJBVLUTVDVAVQVEVBBVNVHVCVF $.

    $( The product rule for derivatives at a point.  For the (more general)
       relation version, see ~ dvmulbr .  (Contributed by Mario Carneiro,
       9-Aug-2014.)  (Revised by Mario Carneiro, 10-Feb-2015.) $)
    dvmul $p |- ( ph -> ( ( S _D ( F oF x. G ) ) ` C ) =
                  ( ( ( ( S _D F ) ` C ) x. ( G ` C ) ) +
                    ( ( ( S _D G ) ` C ) x. ( F ` C ) ) ) ) $=
      ( cmul co cdv wfun cfv cc cof caddc wbr wceq cr cpr wcel cdm wf dvfg ffun
      3syl ccnfld ctopn cvv wss recnprss fvexd funfvbrb 4syl mpbid eqid dvmulbr
      syl wb funbrfv sylc ) ACDEOUAPZQPZRZBBCDQPZSZBESOPBCEQPZSZBDSOPUBPZVIUCBV
      ISVOUDACUETUFUGZVIUHZTVIUIVJLCVHUJVQTVIUKULABCDEUMUNSZVLVNUOFGHIJKAVPCTUP
      LCUQVDABVKURABVMURABVKUHZUGZBVLVKUCZMAVPVSTVKUIVKRVTWAVELCDUJVSTVKUKBVKUS
      UTVAABVMUHZUGZBVNVMUCZNAVPWBTVMUIVMRWCWDVELCEUJWBTVMUKBVMUSUTVAVRVBVCBVOV
      IVFVG $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x y ph $.  $d x S $.  $d x X $.
    dvaddf.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvaddf.f $e |- ( ph -> F : X --> CC ) $.
    dvaddf.g $e |- ( ph -> G : X --> CC ) $.
    dvaddf.df $e |- ( ph -> dom ( S _D F ) = X ) $.
    dvaddf.dg $e |- ( ph -> dom ( S _D G ) = X ) $.
    $( The sum rule for everywhere-differentiable functions.  (Contributed by
       Mario Carneiro, 9-Aug-2014.)  (Revised by Mario Carneiro,
       10-Feb-2015.) $)
    dvaddf $p |- ( ph -> ( S _D ( F oF + G ) ) =
                   ( ( S _D F ) oF + ( S _D G ) ) ) $=
      ( vx co caddc cfv cc wf wcel syl mpbid adantr vy cdv cof cv cvv cr dvbsss
      cpr cdm syl6eqssr ssexd wfn dvfg feq2d ffn recnprss wa addcl adantl inidm
      wss off dvbss wbr ccnfld ctopn fvexd eleq2d biimpar wfun wb ffun funfvbrb
      4syl eqid dvaddbr reldv releldmi ex ssrdv eqssd eqidd dvadd eqcomd offveq
      ) ABCUBLZBDUBLZMUCZLBCDWHLZUBLZAKEKUDZWFNZWKWGNZMWFWGWJUEAEBUFOUHZFAEWFUI
      ZBIBCUGUJZUKZAEOWFPZWFEULAWOOWFPZWRABWNQZWSFBCUMZRAWOEOWFIUNSEOWFUORAEOWG
      PZWGEULAWGUIZOWGPZXBAWTXDFBDUMZRAXCEOWGJUNSEOWGUORAEOWJPZWJEULAWJUIZOWJPZ
      XFAWTXHFBWIUMRAXGEOWJAXGEAEBWIAWTBOVAZFBUPRZAKUAEEEMOOOCDUEUEWKOQUAUDZOQU
      QWKXKMLOQAWKXKURUSGHWQWQEUTVBWPVCAKEXGAWKEQZWKXGQZAXLUQZWKWLWMMLZWJVDXMXN
      WKBCDVEVFNZWLWMUEEEAEOCPXLGTZAEBVAXLWPTZAEODPXLHTZXRAXIXLXJTXNWKWFVGXNWKW
      GVGXNWKWOQZWKWLWFVDZAXTXLAWOEWKIVHVIZXNWTWSWFVJXTYAVKAWTXLFTZXAWOOWFVLWKW
      FVMVNSXNWKXCQZWKWMWGVDZAYDXLAXCEWKJVHVIZXNWTXDWGVJYDYEVKYCXEXCOWGVLWKWGVM
      VNSXPVOVPWKXOWJBWIVQVRRVSVTWAUNSEOWJUORXNWLWBXNWMWBXNWKWJNXOXNWKBCDEEXQXR
      XSXRYCYBYFWCWDWEWD $.

    $( The product rule for everywhere-differentiable functions.  (Contributed
       by Mario Carneiro, 9-Aug-2014.)  (Revised by Mario Carneiro,
       10-Feb-2015.) $)
    dvmulf $p |- ( ph -> ( S _D ( F oF x. G ) ) =
                   ( ( ( S _D F ) oF x. G ) oF + ( ( S _D G ) oF x. F ) ) ) $=
      ( vx cmul co cfv wcel cc wf adantr syl cvv vy cv cof cdv caddc wa wss cdm
      cmpt dvbsss syl6eqssr cr cpr eleq2d biimpar dvmul mpteq2dva dvfg recnprss
      mulcl adantl ssexd inidm off dvbss wbr ccnfld ctopn wfun wb ffun funfvbrb
      fvexd 3syl mpbid eqid dvmulbr reldv releldmi ex ssrdv eqssd feq2d feqmptd
      ovexd offval2 3eqtr4d ) AKEKUBZBCDLUCZMZUDMZNZUIKEWHBCUDMZNZWHDNZLMZWHBDU
      DMZNZWHCNZLMZUEMZUIWKWMDWIMZWQCWIMZUEUCMAKEWLXAAWHEOZUFZWHBCDEEAEPCQXDGRZ
      AEBUGXDAEWMUHZBIBCUJUKZRZAEPDQXDHRZXIABULPUMZOZXDFRAWHXGOZXDAXGEWHIUNUOZA
      WHWQUHZOZXDAXOEWHJUNUOZUPUQAKEPWKAWKUHZPWKQZEPWKQAXLXSFBWJURSAXREPWKAXREA
      EBWJAXLBPUGZFBUSSZAKUAEEELPPPCDTTWHPOUAUBZPOUFWHYBLMPOAWHYBUTVAGHAEBXKFXH
      VBZYCEVCVDXHVEAKEXRAXDWHXROZXEWHXAWKVFYDXEWHBCDVGVHNZWNWRTEEXFXIXJXIAXTXD
      YARXEWHWMVMZXEWHWQVMZXEXMWHWNWMVFZXNXEXGPWMQZWMVIXMYHVJAYIXDAXLYIFBCURSZR
      XGPWMVKWHWMVLVNVOXEXPWHWRWQVFZXQXEXOPWQQZWQVIXPYKVJAYLXDAXLYLFBDURSZRXOPW
      QVKWHWQVLVNVOYEVPVQWHXAWKBWJVRVSSVTWAWBWCVOWDAKEWPWTUEXBXCTTTYCXEWNWOLWEX
      EWRWSLWEAKEWNWOLWMDTTTYCYFXEWHDVMAKEPWMAYIEPWMQYJAXGEPWMIWCVOWDAKEPDHWDWF
      AKEWRWSLWQCTTTYCYGXEWHCVMAKEPWQAYLEPWQQYMAXOEPWQJWCVOWDAKEPCGWDWFWFWG $.
  $}

  ${
    $d x A $.  $d x F $.  $d x ph $.  $d x S $.  $d x X $.
    dvcmul.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvcmul.f $e |- ( ph -> F : X --> CC ) $.
    dvcmul.a $e |- ( ph -> A e. CC ) $.
    ${
      dvcmul.x $e |- ( ph -> X C_ S ) $.
      dvcmul.c $e |- ( ph -> C e. dom ( S _D F ) ) $.
      $( The product rule when one argument is a constant.  (Contributed by
         Mario Carneiro, 9-Aug-2014.)  (Revised by Mario Carneiro,
         10-Feb-2015.) $)
      dvcmul $p |- ( ph -> ( ( S _D ( ( S X. { A } ) oF x. F ) ) ` C ) =
                     ( A x. ( ( S _D F ) ` C ) ) ) $=
        ( cxp cmul co cdv cfv cc0 cc syl wceq csn cof wcel wf fconst6g wss ssid
        caddc a1i cdm cr cpr recnprss dvbss sseldd cres dvconst dmeqd c0ex fdmi
        fconst syl6eq sseqtr4d dvres3 syl22anc xpssres oveq2d reseq1d eqtrd fdm
        3eqtr3d sylibr eleqtrrd dvmul fveq1d fvconst2 oveq1d ffvelrnd fvconst2g
        fconst2 mul02d syl2anc dvfg mulcomd oveq12d mulcld addid2d 3eqtrd ) ACD
        DBUAZLZEMUBNONPCDWJONZPZCEPZMNZCDEONZPZCWJPZMNZUHNQBWPMNZUHNWSACDWJEDFA
        BRUCZDRWJUDIDBRUESDDUFADUGUIHJGACDWKUJZAFDCJAWOUJZFCAFDEADUKRULUCZDRUFZ
        GDUMSZHJUNKUOZUOZADQUAZWKUDZXADTAWKDXHLZTXIADRWILZDUPZONZRXKONZDUPZWKXJ
        AXCRRXKUDZRRUFZDXNUJZUFXMXOTGAWTXPIRBRUESXQARUGUIADRXRXEAXRRXHLZUJRAXNX
        SAWTXNXSTIBUQSZURRXHXSRQUSVAUTVBVCRDXKVDVEAXLWJDOAXDXLWJTXERWIDVFSVGAXO
        XSDUPZXJAXNXSDXTVHAXDYAXJTXERXHDVFSVIVKZDQWKUSVTVLDXHWKVJSVMKVNAWNQWRWS
        UHAWNQWMMNQAWLQWMMAWLCXJPZQACWKXJYBVOACDUCZYCQTXGDQCUSVPSVIVQAWMAFRCEHX
        FVRWAVIAWRWPBMNWSAWQBWPMAWTYDWQBTIXGDBCRVSWBVGAWPBAXBRCWOAXCXBRWOUDGDEW
        CSKVRZIWDVIWEAWSABWPIYEWFWGWH $.
    $}

    dvcmulf.df $e |- ( ph -> dom ( S _D F ) = X ) $.
    $( The product rule when one argument is a constant.  (Contributed by Mario
       Carneiro, 9-Aug-2014.)  (Revised by Mario Carneiro, 10-Feb-2015.) $)
    dvcmulf $p |- ( ph -> ( S _D ( ( S X. { A } ) oF x. F ) ) =
                          ( ( S X. { A } ) oF x. ( S _D F ) ) ) $=
      ( vx cmul co cdv cc wf syl cc0 wceq cfv cmpt csn cxp cof caddc wcel snssd
      fconstg fssd cdm c0ex fconst cres ccnfld ctopn crest cnt wss cpr recnprss
      cr ssid a1i dvbsss eqsstr3d eqid dvres syl22anc resmptd fconstmpt reseq1i
      3eqtr4g oveq2d dvconst dmeqd syl6eq sseqtr4d dvres3 xpssres reseq1d eqtrd
      fdmi 3eqtr3d ctop cuni ctopon resttopon sylancr topontop toponuni sseqtrd
      cnfldtopon ntrss2 syl2anc dvbssntr eqssd reseq12d feq1d mpbiri fdm dvmulf
      3eqtr4d cin cv sseqin2 sylib mpteq1d cvv wfn ffn ssexd fvconst2g sylan wa
      eqidd offval inidm dvfg feq2d mpbid 0cnd ovexd oveq1d mul02 caofid2 fvexd
      adantl adantr feqmptd offval2 ffvelrnda mulcld addid2d mulcomd mpteq2dva
      ) ACEBUAZUBZDKUCZLZMLCYPMLZDYQLZCDMLZYPYQLZUDUCLZCCYOUBZDYQLZMLUUDUUAYQLZ
      ACYPDEFAEYONYPABNUEZEYOYPOZHEBNUGPZABNHUFZUHGAEQUAZYSOZYSUIERAUULEUUKEUUK
      UBZOEQUJUKAEUUKYSUUMACUUDEULZMLZCUUDMLZEUMUNSZCUOLZUPSSZULZYSUUMACNUQZCNU
      UDOCCUQZECUQZUUOUUTRACUTNURZUEZUVAFCUSPZACYONUUDAUUGCYOUUDOZHCBNUGPZUUJUH
      UVBACVAVBAEUUAUIZCIUVICUQACDVCVBVDZCECUURUUDUUQUUQVEZUURVEZVFVGAUUNYPCMAJ
      CBTZEULJEBTZUUNYPAJCEBUVJVHUUDUVMEJCBVIVJJEBVIZVKVLAJCQTZEULJEQTZUUTUUMAJ
      CEQUVJVHAUUPUVPUUSEAUUPCUUKUBZUVPACNYOUBZCULZMLZNUVSMLZCULZUUPUVRAUVENNUV
      SONNUQZCUWBUIZUQUWAUWCRFANYONUVSAUUGNYOUVSOHNBNUGPUUJUHUWDANVAVBACNUWEUVF
      AUWENUUKUBZUINAUWBUWFAUUGUWBUWFRHBVMPZVNNUUKUWFNQUJUKWAVOVPNCUVSVQVGAUVTU
      UDCMAUVAUVTUUDRUVFNYOCVRPVLAUWCUWFCULZUVRAUWBUWFCUWGVSAUVAUWHUVRRUVFNUUKC
      VRPVTWBJCQVIVOAUUSEAUURWCUEZEUURWDZUQUUSEUQAUURCWESUEZUWIAUUQNWESUEUVAUWK
      UUQUVKWKUVFCUUQNWFWGZCUURWHPAECUWJUVJAUWKCUWJRUWLCUURWIPWJEUURUWJUWJVEWLW
      MAEUVIUUSIAECDUURUUQUVFGUVJUVLUVKWNVDWOWPUUMUVQRAJEQVIZVBXAWBZWQWREUUKYSW
      SPIWTAUUEYRCMAJCEXBZBJXCZDSZKLZTJEUWRTUUEYRAJUWOEUWRAUVCUWOERUVJECXDXEZXF
      AJCEBUWQKUWOUUDDUVDXGAUVGUUDCXHUVHCYOUUDXIPZAENDODEXHGENDXIPZFAECUVDFUVJX
      JZUWOVEZAUUGUWPCUEUWPUUDSBRHCBUWPNXKXLZAUWPEUEZXMZUWQXNZXOAJEEBUWQKEYPDXG
      XGAUUHYPEXHUUIEYOYPXIPUXAUXBUXBEXPAUUGUXEUWPYPSBRHEBUWPNXKXLUXGXOXAVLAJUW
      OBUWPUUASZKLZTJEUXITZUUFUUCAJUWOEUXIUWSXFAJCEBUXHKUWOUUDUUAUVDXGUWTAENUUA
      OZUUAEXHAUVINUUAOZUXKAUVEUXLFCDXQPAUVIENUUAIXRXSZENUUAXIPFUXBUXCUXDUXFUXH
      XNXOAUUCJEQUXHBKLZUDLZTUXJAJEQUXNUDYTUUBXGNXGUXBUXFXTUXFUXHBKYAAYTUUMUVQA
      YTUUMDYQLUUMAYSUUMDYQUWNYBAJEQQKNDXGNNUXBGAXTZUXPUWPNUEQUWPKLQRAUWPYCYFYD
      VTUWMVOAJEUXHBKUUAYPXGXGNUXBUXFUWPUUAYEAUUGUXEHYGZAJENUUAUXMYHYPUVNRAUVOV
      BYIYIAJEUXOUXIUXFUXOUXNUXIUXFUXNUXFUXHBAENUWPUUAUXMYJZUXQYKYLUXFUXHBUXRUX
      QYMVTYNVTXAXA $.
  $}

  ${
    $d y z C $.  $d y z F $.  $d y z G $.  $d y z J $.  $d z L $.  $d y z ph $.
    $d y z K $.  $d y S $.  $d z T $.  $d y z X $.  $d z Y $.
    dvco.f $e |- ( ph -> F : X --> CC ) $.
    dvco.x $e |- ( ph -> X C_ S ) $.
    dvco.g $e |- ( ph -> G : Y --> X ) $.
    dvco.y $e |- ( ph -> Y C_ T ) $.
    ${
      dvcobr.s $e |- ( ph -> S C_ CC ) $.
      dvcobr.t $e |- ( ph -> T C_ CC ) $.
      dvco.k $e |- ( ph -> K e. V ) $.
      dvco.l $e |- ( ph -> L e. V ) $.
      dvco.bf $e |- ( ph -> ( G ` C ) ( S _D F ) K ) $.
      dvco.bg $e |- ( ph -> C ( T _D G ) L ) $.
      dvco.j $e |- J = ( TopOpen ` CCfld ) $.
      $( The chain rule for derivatives at a point.  For the (simpler but more
         limited) function version, see ~ dvco .  (Contributed by Mario
         Carneiro, 9-Aug-2014.)  (Revised by Mario Carneiro, 28-Dec-2016.) $)
      dvcobr $p |- ( ph -> C ( T _D ( F o. G ) ) ( K x. L ) ) $=
        ( vz vy cmul co ccom cdv wbr crest cnt cfv wcel csn cdif cmin cdiv cmpt
        cv climc wa eqid cc sstrd fssd eldv mpbid simpld wceq cif dvcl ad2antrr
        ctx mpdan wn adantr eldifi ffvelrn syl2an ffvelrnd cdm dvbss wrel reldv
        wf releldm sylancr sseldd subcld ad2antlr cc0 simpr subeq0ad necon3abid
        wne mpbird divcld ifclda dvlem wss ssid a1i cxp ctopon cnfldtopon mp2an
        txtopon toponunii restid ax-mp eqcomi anim1i eldifsn eldifsni ifnefalse
        sylibr anasss adantl eqeltrd cres limcresi feqmptd reseq1d difss resmpt
        syl6eq oveq1d syl5sseq dvcnp2 syl2anc simprd fveq2 oveq1 oveq12d eqeq1d
        syl ccnp eqtrd fvco3 syl31anc wb cnplimc mpteq2ia oveq1i eqeq1 ifbieq2d
        syl6eleqr iftrue ad2antll limcco ccn cop opelxpi cncnpi limccnp2 mul01d
        mulcn biimpar subne0d div0d oveq2d syl5ibr imp dmdcan2d ifbothda eqtr4d
        3eqtr4d mpteq2dva eleqtrd fco mpbir2and ) ABHIUFUGZDEFUHZUIUGUJBLGDUKUG
        ZULUMUMUNZUVMUDLBUOZUPZUDUTZUVNUMZBUVNUMZUQUGZUVSBUQUGZURUGZUSZBVAUGZUN
        AUVPIUDUVRUVSFUMZBFUMZUQUGZUWCURUGZUSZBVAUGUNZABIDFUIUGZUJZUVPUWLVBUBAU
        DLBIDUVOFUWKGUVOVCZUCUWKVCRALKVDFOAKCVDNQVEZVFZPVGVHZVIAUVMUDUVRUWGUWHV
        JZHUWGEUMZUWHEUMZUQUGZUWIURUGZVKZUWJUFUGZUSZBVAUGUWFAUDUVRBHIUXDUWJUFGG
        VNUGZGVDVDAUVSUVRUNZVBZUWSHUXCVDAHVDUNZUXHUWSAUWHHCEUIUGUJZUXJUAAKUWHHC
        EQMNVLVOZVMZUXIUWSVPZVBZUXBUWIUXOUWTUXAUXIUWTVDUNUXNUXIKVDUWGEAKVDEWFZU
        XHMVQZALKFWFZUVSLUNZUWGKUNZUXHOUVSLUVQVRZLKUVSFVSVTZWAZVQUXIUXAVDUNUXNU
        XIKVDUWHEUXQUXILKBFAUXRUXHOVQABLUNZUXHAUWMWBZLBALDFRUWQPWCAUWMWDUWNBUYE
        UNZDFWEUBBIUWMWGWHZWIZVQZWAZWAZVQWJZUXOUWGUWHUXOLVDUVSFALVDFWFZUXHUXNUW
        QVMZUXHUXSAUXNUYAWKWAZUXOLVDBFUYNAUYDUXHUXNUYHVMWAZWJZUXOUWIWLWPUXNUXIU
        XNWMUXOUWSUWIWLUXOUWGUWHUYOUYPWNWOWQZWRWSAUVSBLFUWQALDVDPRVEZUYHWTVDVDX
        AAVDXBXCZUYTUCUXGVDVDXDZUKUGZUXGUXGVUAXEUMZUNZVUBUXGVJGVDXEUMUNZVUEVUDG
        UCXFZVUFGGVDVDXHXGZUXGVUCVUAVUAUXGVUGXIZXJXKXLAUDUEUVRKUWHUOUPZUWHHUWGU
        EUTZUWHVJZHVUJEUMZUXAUQUGZVUJUWHUQUGZURUGZVKZUXDBAUXHUWGUWHWPZUWGVUIUNZ
        UXIVUQVBUXTVUQVBVURUXIUXTVUQUYBXMUWGKUWHXNXQXRAVUJVUIUNZVBVUPVUOVDVUSVU
        PVUOVJZAVUSVUJUWHWPVUTVUJKUWHXOVUJUWHHVUOXPYQZXSAVUJUWHKEMUWPALKBFOUYHW
        AWTXTAFBVAUGZUDUVRUWGUSZBVAUGZUWHAFUVRYAZBVAUGVVBVVDBUVRFYBAVVEVVCBVAAV
        VEUDLUWGUSZUVRYAZVVCAFVVFUVRAUDLKFOYCYDUVRLXAVVGVVCVJLUVQYEUDLUVRUWGYFX
        KYGYHYIAUYMUWHVVBUNZAFBGLUKUGZGYRUGUMUNZUYMVVHVBZADVDXAUYMLDXAUYFVVJRUW
        QPUYGLBDFVVIGVVIVCZUCYJUUAALVDXAZUYDVVJVVKUUBUYSUYHLBFVVIGUCVVLUUCYKVHY
        LWIAHUEVUIVUOUSZUWHVAUGZUEVUIVUPUSZUWHVAUGAUWHKGCUKUGZULUMUMUNZHVVOUNZA
        UXKVVRVVSVBUAAUEKUWHHCVVQEVVNGVVQVCUCVVNVCQMNVGVHYLVVPVVNUWHVAUEVUIVUPV
        UOVVAUUDUUEUUHVUJUWGVJZVUKUWSVUOUXCHVUJUWGUWHUUFVVTVUMUXBVUNUWIURVVTVUL
        UWTUXAUQVUJUWGEYMYHVUJUWGUWHUQYNYOUUGUWSUXDHVJAUXHUWSHUXCUUIUUJUUKAUVPU
        WLUWRYLAUFUXGGUULUGUNHIUUMZVUAUNZUFVWAUXGGYRUGUMUNGUCUURAUXJIVDUNZVWBUX
        LAUWNVWCUBALBIDFRUWQPVLVOHIVDVDUUNYKVWAUFUXGGVUAVUHUUOWHUUPAUXFUWEBVAAU
        DUVRUXEUWDUXIUXEUXBUWCURUGZUWDUWSHUWJUFUGZVWDVJUXCUWJUFUGZVWDVJUXEVWDVJ
        UXIHUXCHUXDVJVWEUXEVWDHUXDUWJUFYNYPUXCUXDVJVWFUXEVWDUXCUXDUWJUFYNYPUXIU
        WSVBZHWLUFUGWLVWEVWDVWGHUXMUUQVWGUWJWLHUFVWGUWJWLUWCURUGZWLVWGUWIWLUWCU
        RUXIUWIWLVJUWSUXIUWGUWHUXIKVDUWGAKVDXAUXHUWPVQZUYBWIUXIKVDUWHVWIUYJWIWN
        UUSYHUXIVWHWLVJUWSUXIUWCUXIUVSBUXILVDUVSAVVMUXHUYSVQZUXHUXSAUYAXSWIZUXI
        LVDBVWJUYIWIZWJZUXIUVSBVWKVWLUXHUVSBWPAUVSLBXOXSUUTZUVAVQZYSUVBVWGVWDVW
        HWLVWGUXBWLUWCURUXIUWSUXBWLVJZUWSVWPUXIUWTUXAVJUWGUWHEYMUXIUWTUXAUYCUYK
        WNUVCUVDYHVWOYSUVHUXOUXBUWIUWCUYLUYQUXIUWCVDUNUXNVWMVQUYRUXIUWCWLWPUXNV
        WNVQUVEUVFUXIUWBUXBUWCURUXIUVTUWTUWAUXAUQAUXRUXSUVTUWTVJUXHOUYALKUVSEFY
        TVTAUWAUXAVJZUXHAUXRUYDVWQOUYHLKBEFYTYKVQYOYHUVGUVIYHUVJAUDLBUVMDUVOUVN
        UWEGUWOUCUWEVCRAUXPUXRLVDUVNWFMOLKVDEFUVKYKPVGUVL $.
    $}

    dvco.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvco.t $e |- ( ph -> T e. { RR , CC } ) $.
    dvco.df $e |- ( ph -> ( G ` C ) e. dom ( S _D F ) ) $.
    dvco.dg $e |- ( ph -> C e. dom ( T _D G ) ) $.
    $( The chain rule for derivatives at a point.  For the (more general)
       relation version, see ~ dvcobr .  (Contributed by Mario Carneiro,
       9-Aug-2014.)  (Revised by Mario Carneiro, 10-Feb-2015.) $)
    dvco $p |- ( ph -> ( ( T _D ( F o. G ) ) ` C ) =
                 ( ( ( S _D F ) ` ( G ` C ) ) x. ( ( T _D G ) ` C ) ) ) $=
      ( co cfv cc wcel ccom cdv wfun cmul wbr wceq cr cpr cdm wf dvfg ffun 3syl
      ccnfld ctopn cvv wss recnprss fvexd wb funfvbrb 4syl mpbid dvcobr funbrfv
      syl eqid sylc ) ADEFUAZUBQZUCZBBFRZCEUBQZRZBDFUBQZRZUDQZVJUEBVJRVQUFADUGS
      UHZTZVJUIZSVJUJVKNDVIUKVTSVJULUMABCDEFUNUORZVNVPUPGHIJKLACVRTZCSUQMCURVFA
      VSDSUQNDURVFAVLVMUSABVOUSAVLVMUIZTZVLVNVMUEZOAWBWCSVMUJVMUCWDWEUTMCEUKWCS
      VMULVLVMVAVBVCABVOUIZTZBVPVOUEZPAVSWFSVOUJVOUCWGWHUTNDFUKWFSVOULBVOVAVBVC
      WAVGVDBVQVJVEVH $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x ph $.  $d x y S $.  $d x y X $.  $d x T $.
    $d x Y $.
    dvcof.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvcof.t $e |- ( ph -> T e. { RR , CC } ) $.
    dvcof.f $e |- ( ph -> F : X --> CC ) $.
    dvcof.g $e |- ( ph -> G : Y --> X ) $.
    dvcof.df $e |- ( ph -> dom ( S _D F ) = X ) $.
    dvcof.dg $e |- ( ph -> dom ( T _D G ) = Y ) $.
    $( The chain rule for everywhere-differentiable functions.  (Contributed by
       Mario Carneiro, 10-Aug-2014.)  (Revised by Mario Carneiro,
       10-Feb-2015.) $)
    dvcof $p |- ( ph -> ( T _D ( F o. G ) ) =
                 ( ( ( S _D F ) o. G ) oF x. ( T _D G ) ) ) $=
      ( vx cfv wcel cc wf adantr syl vy cv ccom cdv co cmpt cmul cof wa wss cdm
      dvbsss syl6eqssr cr ffvelrnda wceq eleqtrrd eleq2d biimpar dvco mpteq2dva
      cpr dvfg recnprss fco syl2anc dvbss wbr ccnfld ctopn cvv wfun wb funfvbrb
      fvexd ffun 4syl mpbid eqid reldv releldmi ssrdv eqssd feq2d feqmptd ssexd
      dvcobr ex fveq2 fmptco offval2 3eqtr4d ) ANGNUBZCDEUCZUDUEZOZUFNGWMEOZBDU
      DUEZOZWMCEUDUEZOZUGUEZUFWOWREUCZWTUGUHUEANGWPXBAWMGPZUIZWMBCDEFGAFQDRZXDJ
      SZAFBUJXDAFWRUKZBLBDULUMSZAGFERZXDKSZAGCUJXDAGWTUKZCMCEULUMZSZABUNQVBZPZX
      DHSZACXOPZXDISZXEWQFXHAGFWMEKUOZAXHFUPXDLSUQZAWMXLPZXDAXLGWMMURUSZUTVAANG
      QWOAWOUKZQWORZGQWORAXRYEICWNVCTAYDGQWOAYDGAGCWNAXRCQUJZICVDZTAXFXJGQWNRJK
      GFQDEVEVFXMVGANGYDAXDWMYDPZXEWMXBWOVHYHXEWMBCDEVIVJOZWSXAVKFGXGXIXKXNXEXP
      BQUJXQBVDTXEXRYFXSYGTXEWQWRVOZXEWMWTVOZXEWQXHPZWQWSWRVHZYAXEXPXHQWRRZWRVL
      YLYMVMXQBDVCZXHQWRVPWQWRVNVQVRXEYBWMXAWTVHZYCXEXRXLQWTRZWTVLYBYPVMXSCEVCZ
      XLQWTVPWMWTVNVQVRYIVSWGWMXBWOCWNVTWATWHWBWCWDVRWEANGWSXAUGXCWTVKVKVKAGCXO
      IXMWFYJYKANUAGFWQUAUBZWROWSEWRXTANGFEKWEAUAFQWRAYNFQWRRAXPYNHYOTAXHFQWRLW
      DVRWEYSWQWRWIWJANGQWTAYQGQWTRAXRYQIYRTAXLGQWTMWDVRWEWKWL $.
  $}

  ${
    $d x y C $.  $d x y F $.  $d x ph $.  $d x X $.
    dvcj.f $e |- ( ph -> F : X --> CC ) $.
    dvcj.x $e |- ( ph -> X C_ RR ) $.
    dvcj.c $e |- ( ph -> C e. dom ( RR _D F ) ) $.
    $( The derivative of the conjugate of a function.  For the (simpler but
       more limited) function version, see ~ dvcj .  (This doesn't follow from
       ~ dvcobr because ` * ` is not a function on the reals, and even if we
       used complex derivatives, ` * ` is not complex-differentiable.)
       (Contributed by Mario Carneiro, 1-Sep-2014.)  (Revised by Mario
       Carneiro, 10-Feb-2015.) $)
    dvcjbr $p |- ( ph ->
      C ( RR _D ( * o. F ) ) ( * ` ( ( RR _D F ) ` C ) ) ) $=
      ( vx cr co cfv ccj wcel cmin cdiv climc cc wss a1i wf vy cdv ccom wbr crn
      cioo ctg cnt csn cdif cv cmpt ccnfld ctopn ax-resscn eqid tgioo2 dvbssntr
      cdm sseldd syl6ss simpl simpr dvbss syl2anc dvlem fmptd ssid crest ctopon
      wceq cnfldtopon toponunii restid ax-mp eqcomi wfun dvf ffun funfvbrb mp2b
      wa sylib eldv mpbid simprd ccn ccnp ccncf cjcncf cncfcn1 eleqtri ffvelrni
      wb syl cncnpi sylancr limccnp eqidd cjf fveq2 fmptco adantr eldifi adantl
      feqmptd ffvelrnd subcld sselda sylan2 resubcld recnd wne eldifsni subne0d
      cjdivd cjsub fvco3 syl2an oveq12d eqtr4d cjred eqtrd mpteq2dva oveq1d fco
      eleqtrd mpbir2and ) ABBICUBJZKZLKZILCUCZUBJUDBDUFUEUGKZUHKKZMZYKHDBUIZUJZ
      HUKZYLKZBYLKZNJZYRBNJZOJZULZBPJZMAYIUSZYNBADICYMUMUNKZIQRZAUOSZEFUUGUUGUP
      ZUQZUUJURGUTAYKLHYQYRCKZBCKZNJZUUBOJZULZUCZBPJUUEAYQBYJQUUPLUUGUUGAHYQUUO
      QUUPAYRBDCEADIQFUOVAAUUFDBADQCTZDIRZUUFDREFUURUUSWBZDICUUHUUTUOSUURUUSVBU
      URUUSVCVDVEGUTZVFZUUPUPZVGQQRAQVHSUUJUUGQVIJZUUGUUGQVJKZMUVDUUGVKUUGUUJVL
      ZUUGUVEQQUUGUVFVMZVNVOVPAYOYJUUPBPJMZABYJYIUDZYOUVHWBABUUFMZUVIGUUFQYITYI
      VQUVJUVIWNCVRZUUFQYIVSBYIVTWAWCAHDBYJIYMCUUPUUGUUKUUJUVCUUIEFWDWEWFALUUGU
      UGWGJZMYJQMZLYJUUGUUGWHJKMLQQWIJUVLWJUUGUUJWKWLAUVJUVMGUUFQBYIUVKWMWOYJLU
      UGUUGQUVGWPWQWRAUUQUUDBPAUUQHYQUUOLKZULUUDAHUAYQQUUOUAUKZLKUVNUUPLUVBAUUP
      WSAUAQQLQQLTZAWTSXFUVOUUOLXAXBAHYQUVNUUCAYRYQMZWBZUVNUUNLKZUUBLKZOJUUCUVR
      UUNUUBUVRUULUUMUVRDQYRCAUURUVQEXCUVQYRDMZAYRDYPXDZXEXGZAUUMQMZUVQADQBCEUV
      AXGXCZXHUVRUUBUVRYRBUVQAUWAYRIMUWBADIYRFXIXJZABIMUVQADIBFUVAUTXCZXKZXLUVR
      YRBUVRYRUWFXLUVRBUWGXLUVQYRBXMAYRDBXNXEXOXPUVRUVSUUAUVTUUBOUVRUVSUULLKZUU
      MLKZNJZUUAUVRUULQMUWDUVSUWKVKUWCUWEUULUUMXQVEUVRYSUWIYTUWJNAUURUWAYSUWIVK
      UVQEUWBDQYRLCXRXSAYTUWJVKZUVQAUURBDMUWLEUVADQBLCXRVEXCXTYAUVRUUBUWHYBXTYC
      YDYCYEYGAHDBYKIYMYLUUDUUGUUKUUJUUDUPUUIAUVPUURDQYLTWTEDQQLCYFWQFWDYH $.
  $}

  ${
    $d x y F $.  $d x X $.
    $( The derivative of the conjugate of a function.  For the (more general)
       relation version, see ~ dvcjbr .  (Contributed by Mario Carneiro,
       1-Sep-2014.)  (Revised by Mario Carneiro, 10-Feb-2015.) $)
    dvcj $p |- ( ( F : X --> CC /\ X C_ RR ) ->
      ( RR _D ( * o. F ) ) = ( * o. ( RR _D F ) ) ) $=
      ( vx vy cc wf cr wa cdv co cdm cv ccj ccom cmpt wcel feqmptd fveq2 fmptco
      cfv wss wfun wbr wceq ffun ax-mp simpll simplr simpr dvcjbr funbrfv mpsyl
      dvf mpteq2dva cjf fco mpan ad2antrr vex fvex breldm ssrdv ffvelrn adantlr
      syl cjcjd cjcld simpl a1i 3eqtr4d oveq2d dmeqd eqssd feq2d mpbii ffvelrni
      ex sseqtrd adantl ) BEAFZBGUAZHZCGAIJZKZCLZGMANZIJZTZOCWDWEWCTZMTZOWGMWCN
      WBCWDWHWJWGUBZWBWEWDPZHZWEWJWGUCZWHWJUDWGKZEWGFZWKWFUMZWOEWGUEUFWMWEABVTW
      AWLUGVTWAWLUHWBWLUIUJZWEWJWGUKULUNWBCWDEWGWBWPWDEWGFWQWBWOWDEWGWBWOWDWBWO
      GMWFNZIJZKZWDWBCWOXAWBWEWOPZWEXAPZWBXBHZWEWHMTZWTUCXCXDWEWFBVTBEWFFZWAXBE
      EMFZVTXFUOBEEMAUPUQURVTWAXBUHWBXBUIUJWEXEWTCUSZWHMUTVAVEVQVBWBWTWCWBWSAGI
      WBCBWEATZMTZMTZOCBXIOWSAWBCBXKXIWBWEBPZHZXIVTXLXIEPWABEWEAVCVDZVFUNWBCDBE
      XJDLZMTZXKWFMXMXIXNVGWBCDBEXIXPXJAMXNWBCBEAVTWAVHQZWBDEEMXGWBUOVIQZXOXIMR
      SXRXOXJMRSXQVJVKVLVRWBCWDWOWBWLXBWMWNXBWRWEWJWGXHWIMUTVAVEVQVBVMVNVOQWBCD
      WDEWIXPWJWCMWLWIEPWBWDEWEWCAUMZVPVSWBCWDEWCWDEWCFWBXSVIQXRXOWIMRSVJ $.
  $}

  ${
    $d n x y A $.  $d n x y z F $.  $d x N $.
    $( The derivative of a real function is real.  (Contributed by Mario
       Carneiro, 1-Sep-2014.) $)
    dvfre $p |- ( ( F : A --> RR /\ A C_ RR ) ->
                  ( RR _D F ) : dom ( RR _D F ) --> RR ) $=
      ( vx vy vz cr wf wss wa cdv co cv cfv wcel cc ccj ccom wceq cmpt feqmptd
      cdm wfn wral dvf mp1i ffvelrni adantl simpr fvco3 sylancr ax-resscn mpan2
      ffn fss dvcj sylan ffvelrn adantlr cjred mpteq2dva recnd simpl cjf fmptco
      fveq2 3eqtr4d oveq2d eqtr3d fveq1d adantr cjrebd ralrimiva ffnfv sylanbrc
      a1i ) AFBGZAFHZIZFBJKZVSUAZUBZCLZVSMZFNZCVTUCVTFVSGVTOVSGZWAVRBUDZVTOVSUM
      UEVRWDCVTVRWBVTNZIZWCWGWCONVRVTOWBVSWFUFUGWHWBPVSQZMZWCPMZWCWHWEWGWJWKRWF
      VRWGUHVTOWBPVSUIUJVRWJWCRWGVRWBWIVSVRFPBQZJKZWIVSVPAOBGZVQWMWIRVPFOHWNUKA
      FOBUNULBAUOUPVRWLBFJVRDADLZBMZPMZSDAWPSWLBVRDAWQWPVRWOANZIZWPVPWRWPFNVQAF
      WOBUQURZUSUTVRDEAOWPELZPMWQBPWSWPWTVAVRDAFBVPVQVBTZVREOOPOOPGVRVCVOTXAWPP
      VEVDXBVFVGVHVIVJVHVKVLCVTFVSVMVN $.

    $( The ` N ` -th derivative of a real function is real.  (Contributed by
       Mario Carneiro, 1-Jan-2017.) $)
    dvnfre $p |- ( ( F : A --> RR /\ A C_ RR /\ N e. NN0 ) ->
                  ( ( RR Dn F ) ` N ) : dom ( ( RR Dn F ) ` N ) --> RR ) $=
      ( cr wf wss wcel co cfv cdm wa wi cc0 wceq fveq2 dmeqd feq12d imbi2d cvv
      cc vx vn cn0 cdvn cv caddc simpl cpm ax-resscn fss mpan2 cnex reex elpm2r
      c1 mpanl12 sylan sylancr fdm adantr eqtrd mpbird cdv simprr cpr prid1 a1i
      dvn0 simprl dvnbss syl3anc sseqtrd simplr sstrd dvfre syl2anc expr expcom
      dvnp1 a2d nn0ind com12 3impia ) ADBEZADFZCUCGZCDBUDHZIZJZDWHEZWFWDWEKZWJW
      KUAUEZWGIZJZDWMEZLWKMWGIZJZDWPEZLWKUBUEZWGIZJZDWTEZLWKWSUOUFHZWGIZJZDXDEZ
      LWKWJLUAUBCWLMNZWOWRWKXGWNWQDWMWPWLMWGOZXGWMWPXHPQRWLWSNZWOXBWKXIWNXADWMW
      TWLWSWGOZXIWMWTXJPQRWLXCNZWOXFWKXKWNXEDWMXDWLXCWGOZXKWMXDXLPQRWLCNZWOWJWK
      XMWNWIDWMWHWLCWGOZXMWMWHXNPQRWKWRWDWDWEUGWKWQADWPBWKDTFZBTDUHHGZWPBNUIWDA
      TBEZWEXPWDXOXQUIADTBUJUKTSGDSGXQWEKXPULUMTDABSSUNUPUQZDBVHURZWKWQBJZAWKWP
      BXSPWDXTANZWEADBUSUTZVAQVBWSUCGZWKXBXFWKYCXBXFLWKYCXBXFWKYCXBKZKZXFDWTVCH
      ZJZDYFEZYEXBXADFYHWKYCXBVDYEXAADYEXAXTAYEDDTVEGZXPYCXAXTFYIYEDTUMVFVGWKXP
      YDXRUTZWKYCXBVIZDBWSVJVKWKYAYDYBUTVLWDWEYDVMVNXAWTVOVPYEXEYGDXDYFYEXOXPYC
      XDYFNXOYEUIVGYJYKDBWSVSVKZYEXDYFYLPQVBVQVRVTWAWBWC $.
  $}

  ${
    $d k n x N $.
    $( Derivative of a power function.  (Contributed by Mario Carneiro,
       9-Aug-2014.)  (Revised by Mario Carneiro, 10-Feb-2015.) $)
    dvexp $p |- ( N e. NN -> ( CC _D ( x e. CC |-> ( x ^ N ) ) ) =
                  ( x e. CC |-> ( N x. ( x ^ ( N - 1 ) ) ) ) ) $=
      ( cc cexp co cmpt cdv c1 cmin cmul wceq caddc mpteq2dv oveq2d id wcel a1i
      oveq1 cvv wf vn vk oveq2 oveq12d eqeq12d cid cres mpteq2ia mptresid eqtri
      cv exp1 oveq2i csn cxp cc0 1m1e0 exp0 syl5eq syl6eq fconstmpt eqtr4i dvid
      1t1e1 cn cof nncn adantr ax-1cn pncan sylancl nnnn0 expcl syl2anr adddird
      wa cn0 mulid2d 3eqtrd mpteq2dva mulcld nnm1nn0 simpr eqidd eqcomi offval2
      cnex mulassd expm1t ancoms eqtr4d eqtrd oveq1d eqcomd sylan9eq cnelprrecn
      cr cpr eqid fmptd wf1o f1oi f1of cdm dmeqd fdm syl 1ex fconst feq1i mpbir
      mp1i fdmi dvmulf expp1 3eqtr2rd ex nnind ) CACAUKZUAUKZDEZFZGEZACXTXSXTHI
      EZDEZJEZFZKCACXSHDEZFZGEZACHXSHHIEZDEZJEZFZKCACXSUBUKZDEZFZGEZACYOXSYOHIE
      ZDEZJEZFZKZCACXSYOHLEZDEZFZGEZACUUDXSUUDHIEZDEZJEZFZKZCACXSBDEZFZGEZACBXS
      BHIEZDEZJEZFZKUAUBBXTHKZYCYJYGYNUUTYBYICGUUTACYAYHXTHXSDUCMNUUTACYFYMUUTX
      THYEYLJUUTOUUTYDYKXSDXTHHIRNUDMUEXTYOKZYCYRYGUUBUVAYBYQCGUVAACYAYPXTYOXSD
      UCMNUVAACYFUUAUVAXTYOYEYTJUVAOUVAYDYSXSDXTYOHIRNUDMUEXTUUDKZYCUUGYGUUKUVB
      YBUUFCGUVBACYAUUEXTUUDXSDUCMNUVBACYFUUJUVBXTUUDYEUUIJUVBOUVBYDUUHXSDXTUUD
      HIRNUDMUEXTBKZYCUUOYGUUSUVCYBUUNCGUVCACYAUUMXTBXSDUCMNUVCACYFUURUVCXTBYEU
      UQJUVCOUVCYDUUPXSDXTBHIRNUDMUEYJCUFCUGZGEZYNYIUVDCGYIACXSFZUVDACYHXSXSULU
      HACUIZUJUMYNCHUNZUOZUVEYNACHFZUVIACYMHXSCPZYMHHJEHUVKYLHHJUVKYLXSUPDEHYKU
      PXSDUQUMXSURUSNVDUTUHACHVAZVBVCVBVBYOVEPZUUCUULUVMUUCVPZUUKYRUVDJVFZEZUVE
      YQUVOEZLVFZEZCYQUVDUVOEZGEZUUGUVMUUCUUKUUBUVDUVOEZUVQUVREZUVSUVMUUKACYOYP
      JEZYPLEZFUWCUVMACUUJUWEUVMUVKVPZUUJUUDYPJEUWDHYPJEZLEUWEUWFUUIYPUUDJUWFUU
      HYOXSDUWFYOCPZHCPZUUHYOKUVMUWHUVKYOVGVHZVIYOHVJVKNNUWFYOHYPUWJUWIUWFVIQZU
      VKUVKYOVQPZYPCPUVMUVKOZYOVLZXSYOVMVNZVOUWFUWGYPUWDLUWFYPUWOVRZNVSVTUVMACU
      WDYPLUWBUVQSCCCSPUVMWGQZUWFYOYPUWJUWOWAUWOUVMUWBACUUAXSJEZFACUWDFUVMACUUA
      XSJUUBUVDSCCUWQUWFYOYTUWJUVKUVKYSVQPYTCPUVMUWMYOWBXSYSVMVNZWAZUVMUVKWCZUV
      MUUBWDUVDUVFKUVMUVFUVDUVGWEQZWFUVMACUWRUWDUWFUWRYOYTXSJEZJEUWDUWFYOYTXSUW
      JUWSUXAWHUWFYPUXCYOJUVKUVMYPUXCKXSYOWIWJNWKVTWLUVMUVQACUWGFYQUVMACHYPJUVE
      YQSCCUWQUWKUWOUVEUVJKUVMUVEUVIUVJVCUVLUJQUVMYQWDZWFUVMACUWGYPUWPVTWLWFWKU
      UCUVSUWCUUCUVPUWBUVQUVRYRUUBUVDUVORWMWNWOUVNCYQUVDCCWQCWRPUVNWPQUVMCCYQTU
      UCUVMACYPCYQUWOYQWSWTVHCCUVDXACCUVDTUVNCXBCCUVDXCXLUVNYRXDUUBXDZCUVNYRUUB
      UVMUUCWCXEUVNCCUUBTZUXECKUVMUXFUUCUVMACUUACUUBUWTUUBWSWTVHCCUUBXFXGWLUVEX
      DCKUVNCUVHUVECUVHUVETCUVHUVITCHXHXICUVHUVEUVIVCXJXKXMQXNUVMUWAUUGKUUCUVMU
      VTUUFCGUVMUVTACYPXSJEZFUUFUVMACYPXSJYQUVDSCCUWQUWOUXAUXDUXBWFUVMACUUEUXGU
      VKUVKUWLUUEUXGKUVMUWMUWNXSYOXOVNVTWKNVHXPXQXR $.
  $}

  ${
    $d x N $.
    $( Derivative of an exponential, possibly zero power.  (Contributed by
       Stefan O'Rear, 13-Nov-2014.)  (Revised by Mario Carneiro,
       10-Feb-2015.) $)
    dvexp2 $p |- ( N e. NN0 -> ( CC _D ( x e. CC |-> ( x ^ N ) ) ) =
        ( x e. CC |-> if ( N = 0 , 0 , ( N x. ( x ^ ( N - 1 ) ) ) ) ) ) $=
      ( cn0 wcel cn cc0 wceq wo cc cexp co cdv c1 mpteq2dv eqtr4d csn fconstmpt
      cmpt cxp syl6eq cv cmin cmul elnn0 dvexp nnne0 neneqd iffalsed oveq2 exp0
      sylan9eq mpteq2dva syl6eqr oveq2d ax-1cn dvconst ax-mp iftrue jaoi sylbi
      cif ) BCDBEDZBFGZHIAIAUAZBJKZRZLKZAIVCFBVDBMUBKJKUCKZVAZRZGZBUDVBVKVCVBVG
      AIVHRVJABUEVBAIVIVHVBVCFVHVBBFBUFUGUHNOVCVGAIFRZVJVCVGIFPSZVLVCVGIIMPSZLK
      ZVMVCVFVNILVCVFAIMRVNVCAIVEMVCVDIDVEVDFJKMBFVDJUIVDUJUKULAIMQUMUNMIDVOVMG
      UOMUPUQTAIFQTVCAIVIFVCFVHURNOUSUT $.
  $}

  ${
    $d x y z A $.
    $( Derivative of the reciprocal function.  (Contributed by Mario Carneiro,
       25-Feb-2015.)  (Revised by Mario Carneiro, 28-Dec-2016.) $)
    dvrec $p |- ( A e. CC -> ( CC _D ( x e. ( CC \ { 0 } ) |-> ( A / x ) ) ) =
        ( x e. ( CC \ { 0 } ) |-> -u ( A / ( x ^ 2 ) ) ) ) $=
      ( vy vz cc wcel cc0 cdiv cmpt cneg wne eqid cfv cmin wceq cmul adantl syl
      co wf csn cdif cv cdv c2 cexp wfn cdm dvfcn wss ssid a1i wa eldifsn divcl
      3expb sylan2b fmptd difssd dvbss wbr ccnfld ctopn cnt climc ctop cnfldtop
      simpr cha cnfldhaus cnfldtopon toponunii sncld mp2an cldopn ax-mp isopn3i
      ccld syl6eleqr eldifi sqvald oveq2d simpl eldifsni divdiv1d eqtr4d negeqd
      0cn divcld divnegd eqtrd ccncf negcld cdivcncf oveq2 cnmptlimc cres cncff
      eqeltrd limcdif eldifad ad2antlr subcld adantr syl2anc subdird negsubdi2d
      mulneg12 oveq1d ovex fvmpt simpll divassd 3eqtr2d oveq12d 3eqtr4d 3eqtr3d
      divcan2d subne0d mpteq2dva difss resmpt syl6eqr eleqtrd crest restid eldv
      divcan3d eqcomi mpbir2and vex negex breldm ex ssrdv eqssd feq2d mpbii cvv
      mp1i ffn wral rgenw fnmpt wfun ffun funbrfv sylc oveq1 eqfnfvd ) BEFZCEGU
      AZUBZEAUUMBAUCZHSZIZUDSZAUUMBUUNUEUFSZHSZJZIZUUKUUMEUUQTZUUQUUMUGUUKUUQUH
      ZEUUQTZUVBUUPUIZUUKUVCUUMEUUQUUKUVCUUMUUKUUMEUUPEEUJZUUKEUKZULUUKAUUMUUOE
      UUPUUNUUMFUUKUUNEFZUUNGKZUMUUOEFZUUNEGUNUUKUVHUVIUVJBUUNUOUPUQUUPLZURZUUK
      EUULUSUTUUKCUUMUVCUUKCUCZUUMFZUVMUVCFZUUKUVNUMZUVMBUVMUEUFSZHSZJZUUQVAZUV
      OUVPUVTUVMUUMVBVCMZVDMMZFUVSDUUMUVMUAZUBZDUCZUUPMZUVMUUPMZNSZUWEUVMNSZHSZ
      IZUVMVESZFUVPUVMUUMUWBUUKUVNVHZUWAVFFZUUMUWAFZUWBUUMOUWAUWALZVGZUULUWAVRM
      FZUWOUWAVIFGEFUWRUWAUWPVJWHGUWAEEUWAUWAUWPVKVLZVMVNUULUWAEUWSVOVPUUMUWAVQ
      VNVSUVPUVSDUUMBUVMHSZJZUWEHSZIZUVMVESZUWLUVPUVSUXAUVMHSZUXDUVPUVSUWTUVMHS
      ZJUXEUVPUVRUXFUVPUVRBUVMUVMPSZHSUXFUVPUVQUXGBHUVPUVMUVNUVMEFZUUKUVMEUULVT
      ZQZWAWBUVPBUVMUVMUUKUVNWCZUXJUXJUVNUVMGKZUUKUVMEGWDZQZUXNWEWFWGUVPUWTUVMU
      VPBUVMUXKUXJUXNWIZUXJUXNWJWKUVPDUUMUVMEUXBUXEUVPUXAEFUXCUUMEWLSFZUVPUWTUX
      OWMDUXAUXCUXCLWNRZUWMUWEUVMUXAHWOWPWSUVPUXDUXCUWDWQZUVMVESUWLUVPUUMUVMUXC
      UVPUXPUUMEUXCTUXQUUMEUXCWRRWTUVPUWKUXRUVMVEUVPUWKDUWDUXBIZUXRUVPDUWDUWJUX
      BUVPUWEUWDFZUMZUWJUWIUXBPSZUWIHSUXBUYAUWHUYBUWIHUYAUWIJZUWTUWEHSZPSZUWIUY
      DJZPSZUWHUYBUYAUWIEFUYDEFUYEUYGOUYAUWEUVMUYAUWEEUULUXTUWEUUMFZUVPUWEUUMUW
      CVTQZXAZUVNUXHUUKUXTUXIXBZXCZUYAUWTUWEUVPUWTEFUXTUXOXDZUYJUYAUYHUWEGKUYIU
      WEEGWDRZWIZUWIUYDXHXEUYAUVMUWENSZUYDPSUVMUYDPSZUWEUYDPSZNSUYEUWHUYAUVMUWE
      UYDUYKUYJUYOXFUYAUYCUYPUYDPUYAUWEUVMUYJUYKXGXIUYAUWFUYQUWGUYRNUYAUWFBUWEH
      SZUVMUWTPSZUWEHSUYQUYAUYHUWFUYSOUYIAUWEUUOUYSUUMUUPUUNUWEBHWOUVKBUWEHXJXK
      RUYAUYTBUWEHUYABUVMUUKUVNUXTXLUYKUVNUXLUUKUXTUXMXBXRXIUYAUVMUWTUWEUYKUYMU
      YJUYNXMXNUYAUWGUWTUYRUVNUWGUWTOUUKUXTAUVMUUOUWTUUMUUPUUNUVMBHWOUVKBUVMHXJ
      XKXBUYAUWTUWEUYMUYJUYNXRWFXOXPUYAUYFUXBUWIPUYAUWTUWEUYMUYJUYNWJWBXQXIUYAU
      XBUWIUYAUXAUWEUYAUWTUYMWMUYJUYNWIUYLUYAUWEUVMUYJUYKUXTUWEUVMKUVPUWEUUMUVM
      WDQXSYHWKXTUWDUUMUJUXRUXSOUUMUWCYADUUMUWDUXBYBVPYCXIWFYDUVPDUUMUVMUVSEUWA
      UUPUWKUWAUWAEYESZUWAUWNVUAUWAOUWQUWAVFEUWSYFVPYIUWPUWKLUVFUVPUVGULUUKUUME
      UUPTUVNUVLXDUVPEUULUSYGYJZUVMUVSUUQCYKUVRYLZYMRYNYOYPYQYRUUMEUUQUUARUUTYS
      FZAUUMUUBUVAUUMUGUUKVUDAUUMUUSYLUUCAUUMUUTUVAYSUVALZUUDYTUVPUVMUUQMZUVSUV
      MUVAMZUVPUUQUUEZUVTVUFUVSOUVDVUHUVPUVEUVCEUUQUUFYTVUBUVMUVSUUQUUGUUHUVNVU
      GUVSOUUKAUVMUUTUVSUUMUVAUUNUVMOZUUSUVRVUIUURUVQBHUUNUVMUEUFUUIWBWGVUEVUCX
      KQWFUUJ $.
  $}

  ${
    $d x ph $.  $d x X $.  $d x Y $.
    dvmptres3.j $e |- J = ( TopOpen ` CCfld ) $.
    dvmptres3.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvmptres3.x $e |- ( ph -> X e. J ) $.
    dvmptres3.y $e |- ( ph -> ( S i^i X ) = Y ) $.
    dvmptres3.a $e |- ( ( ph /\ x e. X ) -> A e. CC ) $.
    dvmptres3.b $e |- ( ( ph /\ x e. X ) -> B e. V ) $.
    dvmptres3.d $e |- ( ph ->
      ( CC _D ( x e. X |-> A ) ) = ( x e. X |-> B ) ) $.
    $( Function-builder for derivative: restrict a derivative to a subset.
       (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    dvmptres3 $p |- ( ph ->
      ( S _D ( x e. Y |-> A ) ) = ( x e. Y |-> B ) ) $=
      ( cmpt cres cdv cc co cr cpr wcel wf wceq eqid fmptd dmeqd dmmptd dvres3a
      cdm eqtrd syl22anc cin rescom resres eqtri reseq2d syl5eq wfn ffn fnresdm
      3syl reseq1d inss2 syl6eqssr resmptd 3eqtr3d oveq2d wral ralrimiva eqtr4d
      fnmpt ) AEBHCQZERZSUAZTVOSUAZERZEBICQZSUABIDQZAEUBTUCUDHTVOUEZHFUDVRULZHU
      FVQVSUFKABHCTVONVOUGUHZLAWCBHDQZULHAVRWEPUIABWEHDGWEUGZOUJUMHEVOFJUKUNAVP
      VTESAVOHRZERZVOIRZVPVTAWHVOEHUOZRZWIWHVPHRWKVOHEUPVOEHUQURAWJIVOMUSUTAWGV
      OEAWBVOHVAWGVOUFWDHTVOVBHVOVCVDVEABHICAIWJHMEHVFVGZVHVIVJAWEHRZERZWEIRZVS
      WAAWNWEWJRZWOWNWEERHRWPWEHEUPWEEHUQURAWJIWEMUSUTAWMVREAWMWEVRADGUDZBHVKWE
      HVAWMWEUFAWQBHOVLBHDWEGWFVNHWEVCVDPVMVEABHIDWLVHVIVI $.
  $}

  ${
    $d x A $.  $d x ph $.  $d x S $.
    dvmptid.1 $e |- ( ph -> S e. { RR , CC } ) $.
    $( Function-builder for derivative: derivative of the identity.
       (Contributed by Mario Carneiro, 1-Sep-2014.)  (Revised by Mario
       Carneiro, 11-Feb-2015.) $)
    dvmptid $p |- ( ph -> ( S _D ( x e. S |-> x ) ) = ( x e. S |-> 1 ) ) $=
      ( cv ccnfld ctopn cfv eqid ctopon wcel cnfldtopon toponmax mp1i wceq cmpt
      c1 cc cdv co wss cin cpr recnprss syl df-ss sylib simpr 1cnd cid cres csn
      cr wa cxp mptresid oveq2i dvid fconstmpt 3eqtri a1i dvmptres3 ) ABBEZQCFG
      HZRRCVDIZDVDRJHKRVDKAVDVELRVDMNACRUAZCRUBCOACUMRUCKVFDCUDUECRUFUGAVCRKZUH
      AVGUNUIRBRVCPZSTZBRQPZOAVIRUJRUKZSTRQULUOVJVHVKRSBRUPUQURBRQUSUTVAVB $.

    dvmptc.2 $e |- ( ph -> A e. CC ) $.
    $( Function-builder for derivative: derivative of a constant.  (Contributed
       by Mario Carneiro, 1-Sep-2014.)  (Revised by Mario Carneiro,
       11-Feb-2015.) $)
    dvmptc $p |- ( ph -> ( S _D ( x e. S |-> A ) ) = ( x e. S |-> 0 ) ) $=
      ( cc0 ccnfld ctopn cfv cc wcel wceq syl csn cxp cdv co cmpt fconstmpt wss
      eqid ctopon cnfldtopon toponmax cin cr cpr recnprss df-ss sylib cv adantr
      mp1i wa 0cnd dvconst oveq2i 3eqtr3g dvmptres3 ) ABCGDHIJZKKDVAUBZEVAKUCJL
      KVALAVAVBUDKVAUEUNADKUAZDKUFDMADUGKUHLVCEDUINDKUJUKACKLZBULKLZFUMAVEUOUPA
      KKCOPZQRZKGOPZKBKCSZQRBKGSAVDVGVHMFCUQNVFVIKQBKCTURBKGTUSUT $.
  $}

  ${
    $d x ph $.  $d x S $.  $d x V $.  $d x W $.  $d x X $.  $d x Y $.
    $d x Z $.
    dvmptadd.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvmptadd.a $e |- ( ( ph /\ x e. X ) -> A e. CC ) $.
    dvmptadd.b $e |- ( ( ph /\ x e. X ) -> B e. V ) $.
    dvmptadd.da $e |- ( ph -> ( S _D ( x e. X |-> A ) ) = ( x e. X |-> B ) ) $.
    $( Closure lemma for ~ dvmptcmul and other related theorems.  (Contributed
       by Mario Carneiro, 1-Sep-2014.)  (Revised by Mario Carneiro,
       11-Feb-2015.) $)
    dvmptcl $p |- ( ( ph /\ x e. X ) -> B e. CC ) $=
      ( cc wcel cmpt wf wral cdv cdm syl mpbid co cpr dvfg dmeqd wceq ralrimiva
      cr dmmptg eqtrd feq2d feq1d eqid fmpt sylibr r19.21bi ) ADLMZBGAGLBGDNZOZ
      UPBGPAGLEBGCNZQUAZOZURAUTRZLUTOZVAAEUGLUBMVCHEUSUCSAVBGLUTAVBUQRZGAUTUQKU
      DADFMZBGPVDGUEAVEBGJUFBGDFUHSUIUJTAGLUTUQKUKTBGLDUQUQULUMUNUO $.

    ${
      dvmptadd.c $e |- ( ( ph /\ x e. X ) -> C e. CC ) $.
      dvmptadd.d $e |- ( ( ph /\ x e. X ) -> D e. W ) $.
      dvmptadd.dc $e |- ( ph ->
        ( S _D ( x e. X |-> C ) ) = ( x e. X |-> D ) ) $.
      $( Function-builder for derivative, addition rule.  (Contributed by Mario
         Carneiro, 1-Sep-2014.)  (Revised by Mario Carneiro, 11-Feb-2015.) $)
      dvmptadd $p |- ( ph ->
        ( S _D ( x e. X |-> ( A + C ) ) ) = ( x e. X |-> ( B + D ) ) ) $=
        ( cmpt co cdv caddc cof eqid fmptd cdm dmeqd wcel wral ralrimiva dmmptg
        cc wceq syl eqtrd dvaddf cvv ovex dmex syl6eqelr offval2 oveq2d 3eqtr3d
        eqidd ) AGBJCRZBJERZUAUBZSZTSGVDTSZGVETSZVFSGBJCEUASRZTSBJDFUASRAGVDVEJ
        KABJCUKVDLVDUCUDABJEUKVEOVEUCUDAVHUEBJDRZUEZJAVHVKNUFADHUGZBJUHVLJULAVM
        BJMUIBJDHUJUMUNAVIUEZBJFRZUEZJAVIVOQUFAFIUGZBJUHVPJULAVQBJPUIBJFIUJUMUN
        ZUOAVGVJGTABJCEUAVDVEUPUKUKAJVNUPVRVIGVETUQURUSZLOAVDVCAVEVCUTVAABJDFUA
        VHVIUPHIVSMPNQUTVB $.

      $( Function-builder for derivative, product rule.  (Contributed by Mario
         Carneiro, 1-Sep-2014.)  (Revised by Mario Carneiro, 11-Feb-2015.) $)
      dvmptmul $p |- ( ph ->
        ( S _D ( x e. X |-> ( A x. C ) ) ) =
          ( x e. X |-> ( ( B x. C ) + ( D x. A ) ) ) ) $=
        ( cmul co cvv cmpt cof cdv caddc cc eqid fmptd cdm dmeqd wcel wral wceq
        ralrimiva dmmptg syl eqtrd dvmulf ovex dmex syl6eqelr offval2 oveq2d cv
        eqidd wa ovexd 3eqtr3d ) AGBJCUAZBJEUAZRUBZSZUCSGVHUCSZVIVJSZGVIUCSZVHV
        JSZUDUBSGBJCERSUAZUCSBJDERSZFCRSZUDSUAAGVHVIJKABJCUEVHLVHUFUGABJEUEVIOV
        IUFUGAVLUHBJDUAZUHZJAVLVSNUIADHUJZBJUKVTJULAWABJMUMBJDHUNUOUPAVNUHZBJFU
        AZUHZJAVNWCQUIAFIUJZBJUKWDJULAWEBJPUMBJFIUNUOUPZUQAVKVPGUCABJCERVHVITUE
        UEAJWBTWFVNGVIUCURUSUTZLOAVHVDZAVIVDZVAVBABJVQVRUDVMVOTTTWGABVCJUJVEZDE
        RVFWJFCRVFABJDERVLVITHUEWGMONWIVAABJFCRVNVHTIUEWGPLQWHVAVAVG $.
    $}

    ${
      dvmptres2.z $e |- ( ph -> Z C_ X ) $.
      dvmptres2.j $e |- J = ( K |`t S ) $.
      dvmptres2.k $e |- K = ( TopOpen ` CCfld ) $.
      dvmptres2.i $e |- ( ph -> ( ( int ` J ) ` Z ) = Y ) $.
      $( Function-builder for derivative: restrict a derivative to a subset.
         (Contributed by Mario Carneiro, 1-Sep-2014.)  (Revised by Mario
         Carneiro, 11-Feb-2015.) $)
      dvmptres2 $p |- ( ph ->
        ( S _D ( x e. Z |-> A ) ) = ( x e. Y |-> B ) ) $=
        ( cc cmpt cres cdv co cnt cfv wss wf wceq cr cpr wcel recnprss syl eqid
        fmptd dmeqd wral ralrimiva dmmptg eqtrd dvbsss syl6eqssr sstrd syl22anc
        cdm dvres resmptd oveq2d reseq1d reseq2d ctop cuni cnfldtopon resttopon
        ctopon crest sylancr syl5eqel topontop toponuni sseqtrd ntrss2 eqsstr3d
        syl2anc 3eqtrd 3eqtr3d ) AEBICUAZKUBZUCUDZEWHUCUDZKFUEUFUFZUBZEBKCUAZUC
        UDBJDUAZAETUGZITWHUHIEUGKEUGWJWMUIAEUJTUKULWPLEUMUNZABICTWHMWHUOUPAIWKV
        FZEAWRBIDUAZVFZIAWKWSOUQADHULZBIURWTIUIAXABINUSBIDHUTUNVAEWHVBVCZAKIEPX
        BVDZIKEFWHGRQVGVEAWIWNEUCABIKCPVHVIAWMWSWLUBWSJUBWOAWKWSWLOVJAWLJWSSVKA
        BIJDAJKIAJWLKSAFVLULZKFVMZUGWLKUGAFEVPUFZULZXDAFGEVQUDZXFQAGTVPUFULWPXH
        XFULGRVNWQEGTVOVRVSZEFVTUNAKEXEXCAXGEXEUIXIEFWAUNWBKFXEXEUOWCWEWDPVDVHW
        FWG $.
    $}

    ${
      dvmptres.y $e |- ( ph -> Y C_ X ) $.
      dvmptres.j $e |- J = ( K |`t S ) $.
      dvmptres.k $e |- K = ( TopOpen ` CCfld ) $.
      dvmptres.t $e |- ( ph -> Y e. J ) $.
      $( Function-builder for derivative: restrict a derivative to an open
         subset.  (Contributed by Mario Carneiro, 1-Sep-2014.)  (Revised by
         Mario Carneiro, 11-Feb-2015.) $)
      dvmptres $p |- ( ph ->
        ( S _D ( x e. Y |-> A ) ) = ( x e. Y |-> B ) ) $=
        ( ctop wcel cnt cfv wceq crest co cpr cnfldtop resttop sylancr syl5eqel
        cr cc isopn3i syl2anc dvmptres2 ) ABCDEFGHIJJKLMNOPQAFSTJFTJFUAUBUBJUCA
        FGEUDUEZSPAGSTEUKULUFZTUPSTGQUGKEGUQUHUIUJRJFUMUNUO $.
    $}

    ${
      $d x C $.
      dvmptcmul.c $e |- ( ph -> C e. CC ) $.
      $( Function-builder for derivative, product rule for constant multiplier.
         (Contributed by Mario Carneiro, 1-Sep-2014.)  (Revised by Mario
         Carneiro, 11-Feb-2015.) $)
      dvmptcmul $p |- ( ph ->
        ( S _D ( x e. X |-> ( C x. A ) ) ) = ( x e. X |-> ( C x. B ) ) ) $=
        ( cmul co cmpt cc0 cc wcel cfv cdv caddc cv adantr wa 0cnd ccnfld ctopn
        crest dvmptc cdm dmeqd wral ralrimiva dmmptg syl eqtrd dvbsss syl6eqssr
        wceq eqid cnt ctop cuni wss ctopon cnfldtopon cr cpr recnprss resttopon
        sylancr topontop toponuni sseqtrd syl2anc fmptd dvbssntr eqsstr3d eqssd
        ntrss2 dvmptres2 mul02d oveq1d dvmptcl mulcld addid2d mulcomd mpteq2dva
        dvmptmul 3eqtrd ) AFBHECNOPUAOBHQCNOZDENOZUBOZPBHEDNOZPABEQCDFRGHIAERSZ
        BUCZHSZMUDZAWRUEZUFABEQFUGUHTZFUIOZXARFHHIAWPWQFSZMUDAXCUEUFABEFIMUJAHF
        BHCPZUAOZUKZFAXFBHDPZUKZHAXEXGLULADGSZBHUMXHHUTAXIBHKUNBHDGUOUPUQZFXDUR
        USZXBVAZXAVAZAHXBVBTTZHAXBVCSZHXBVDZVEXNHVEAXBFVFTSZXOAXARVFTSFRVEZXQXA
        XMVGAFVHRVISXRIFVJUPZFXARVKVLZFXBVMUPAHFXPXKAXQFXPUTXTFXBVNUPVOHXBXPXPV
        AWAVPAHXFXNXJAHFXDXBXAXSABHCRXDJXDVAVQXKXLXMVRVSVTWBJKLWJABHWNWOWTWNQWM
        UBOWMWOWTWLQWMUBWTCJWCWDWTWMWTDEABCDFGHIJKLWEZWSWFWGWTDEYAWSWHWKWIUQ $.

      dvmptdivc.0 $e |- ( ph -> C =/= 0 ) $.
      $( Function-builder for derivative, division rule for constant divisor.
         (Contributed by Mario Carneiro, 18-May-2016.) $)
      dvmptdivc $p |- ( ph ->
        ( S _D ( x e. X |-> ( A / C ) ) ) = ( x e. X |-> ( B / C ) ) ) $=
        ( cdiv co cmul cmpt cdv wcel c1 reccld dvmptcmul cv adantr cc0 divrec2d
        wa cc wne mpteq2dva oveq2d dvmptcl 3eqtr4d ) AFBHUAEOPZCQPZRZSPBHUODQPZ
        RFBHCEOPZRZSPBHDEOPZRABCDUOFGHIJKLAEMNUBUCAUTUQFSABHUSUPABUDHTZUHZCEJAE
        UITVBMUEZAEUFUJVBNUEZUGUKULABHVAURVCDEABCDFGHIJKLUMVDVEUGUKUN $.
    $}

    $( Function-builder for derivative, product rule for negatives.
       (Contributed by Mario Carneiro, 1-Sep-2014.)  (Revised by Mario
       Carneiro, 11-Feb-2015.) $)
    dvmptneg $p |- ( ph ->
      ( S _D ( x e. X |-> -u A ) ) = ( x e. X |-> -u B ) ) $=
      ( c1 cneg cmul co cmpt cdv wcel mulm1d mpteq2dva neg1cn dvmptcmul dvmptcl
      cc a1i cv wa oveq2d 3eqtr3d ) AEBGLMZCNOZPZQOBGUJDNOZPEBGCMZPZQOBGDMZPABC
      DUJEFGHIJKUJUDRAUAUEUBAULUOEQABGUKUNABUFGRUGZCISTUHABGUMUPUQDABCDEFGHIJKU
      CSTUI $.

    ${
      dvmptsub.c $e |- ( ( ph /\ x e. X ) -> C e. CC ) $.
      dvmptsub.d $e |- ( ( ph /\ x e. X ) -> D e. W ) $.
      dvmptsub.dc $e |- ( ph ->
        ( S _D ( x e. X |-> C ) ) = ( x e. X |-> D ) ) $.
      $( Function-builder for derivative, subtraction rule.  (Contributed by
         Mario Carneiro, 1-Sep-2014.)  (Revised by Mario Carneiro,
         11-Feb-2015.) $)
      dvmptsub $p |- ( ph ->
        ( S _D ( x e. X |-> ( A - C ) ) ) = ( x e. X |-> ( B - D ) ) ) $=
        ( co cmpt cdv cneg caddc cmin cv wcel wa negcld negex dvmptneg dvmptadd
        cvv a1i negsubd mpteq2dva oveq2d dvmptcl 3eqtr3d ) AGBJCEUAZUBRZSZTRBJD
        FUAZUBRZSGBJCEUCRZSZTRBJDFUCRZSABCDURVAGHUKJKLMNABUDJUEUFZEOUGVAUKUEVFF
        UHULABEFGIJKOPQUIUJAUTVDGTABJUSVCVFCELOUMUNUOABJVBVEVFDFABCDGHJKLMNUPAB
        EFGIJKOPQUPUMUNUQ $.
    $}
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d x ph $.  $d x V $.  $d x X $.
    dvmptcj.a $e |- ( ( ph /\ x e. X ) -> A e. CC ) $.
    dvmptcj.b $e |- ( ( ph /\ x e. X ) -> B e. V ) $.
    dvmptcj.da $e |- ( ph ->
      ( RR _D ( x e. X |-> A ) ) = ( x e. X |-> B ) ) $.
    $( Function-builder for derivative, conjugate rule.  (Contributed by Mario
       Carneiro, 1-Sep-2014.)  (Revised by Mario Carneiro, 11-Feb-2015.) $)
    dvmptcj $p |- ( ph ->
      ( RR _D ( x e. X |-> ( * ` A ) ) ) = ( x e. X |-> ( * ` B ) ) ) $=
      ( vy cr ccj cmpt ccom cdv co cfv cc wf wceq wss eqid fmptd cdm dmeqd wcel
      wral ralrimiva dmmptg syl eqtrd dvbsss syl6eqssr syl2anc cv eqidd cjf a1i
      dvcj feqmptd fveq2 fmptco oveq2d cpr reelprrecn dvmptcl 3eqtr3d ) AKLBFCM
      ZNZOPZLKVHOPZNZKBFCLQZMZOPBFDLQZMAFRVHSFKUAVJVLTABFCRVHGVHUBUCAFVKUDZKAVP
      BFDMZUDZFAVKVQIUEADEUFZBFUGVRFTAVSBFHUHBFDEUIUJUKKVHULUMVHFUSUNAVIVNKOABJ
      FRCJUOZLQZVMVHLGAVHUPAJRRLRRLSAUQURUTZVTCLVAVBVCABJFRDWAVOVKLABCDKEFKKRVD
      UFAVEURGHIVFIWBVTDLVAVBVG $.

    $( Function-builder for derivative, real part.  (Contributed by Mario
       Carneiro, 1-Sep-2014.) $)
    dvmptre $p |- ( ph ->
      ( RR _D ( x e. X |-> ( Re ` A ) ) ) = ( x e. X |-> ( Re ` B ) ) ) $=
      ( cr c2 cdiv co cfv cmpt cdv cc wcel wceq syl c1 ccj caddc cre reelprrecn
      cmul cpr a1i cv wa cjcld addcld dvmptcl dvmptcj dvmptadd halfcn dvmptcmul
      reval cc0 wne 2cn 2ne0 divrec2 mp3an23 eqtrd mpteq2dva oveq2d 3eqtr4d ) A
      JBFUAKLMZCCUBNZUCMZUFMZOZPMBFVIDDUBNZUCMZUFMZOJBFCUDNZOZPMBFDUDNZOABVKVOV
      IJQFJJQUGRAUEUHZABUIFRUJZCVJGWACGUKZULZWADVNABCDJEFVTGHIUMZWADWDUKZULZABC
      DVJVNJEQFVTGHIWBWEABCDEFGHIUNUOVIQRAUPUHUQAVRVMJPABFVQVLWAVQVKKLMZVLWACQR
      VQWGSGCURTWAVKQRZWGVLSZWCWHKQRZKUSUTZWIVAVBVKKVCVDTVEVFVGABFVSVPWAVSVOKLM
      ZVPWADQRVSWLSWDDURTWAVOQRZWLVPSZWFWMWJWKWNVAVBVOKVCVDTVEVFVH $.

    $( Function-builder for derivative, imaginary part.  (Contributed by Mario
       Carneiro, 1-Sep-2014.) $)
    dvmptim $p |- ( ph ->
      ( RR _D ( x e. X |-> ( Im ` A ) ) ) = ( x e. X |-> ( Im ` B ) ) ) $=
      ( cr cmul co cdiv cfv cmpt cdv cc wcel wceq syl c1 c2 ci ccj cmin cim cpr
      reelprrecn a1i cv wa cjcld subcld dvmptcl dvmptcj dvmptsub 2mulicn reccli
      2muline0 dvmptcmul imval2 cc0 wne divrec2 mp3an23 eqtrd mpteq2dva 3eqtr4d
      oveq2d ) AJBFUAUBUCKLZMLZCCUDNZUELZKLZOZPLBFVKDDUDNZUELZKLZOJBFCUFNZOZPLB
      FDUFNZOABVMVQVKJQFJJQUGRAUHUIZABUJFRUKZCVLGWCCGULZUMZWCDVPABCDJEFWBGHIUNZ
      WCDWFULZUMZABCDVLVPJEQFWBGHIWDWGABCDEFGHIUOUPVKQRAVJUQUSURUIUTAVTVOJPABFV
      SVNWCVSVMVJMLZVNWCCQRVSWISGCVATWCVMQRZWIVNSZWEWJVJQRZVJVBVCZWKUQUSVMVJVDV
      ETVFVGVIABFWAVRWCWAVQVJMLZVRWCDQRWAWNSWFDVATWCVQQRZWNVRSZWHWOWLWMWPUQUSVQ
      VJVDVETVFVGVH $.
  $}

  ${
    $d x ph $.  $d x X $.  $d x Y $.
    dvmptntr.s $e |- ( ph -> S C_ CC ) $.
    dvmptntr.x $e |- ( ph -> X C_ S ) $.
    dvmptntr.a $e |- ( ( ph /\ x e. X ) -> A e. CC ) $.
    dvmptntr.j $e |- J = ( K |`t S ) $.
    dvmptntr.k $e |- K = ( TopOpen ` CCfld ) $.
    dvmptntr.i $e |- ( ph -> ( ( int ` J ) ` X ) = Y ) $.
    $( Function-builder for derivative: expand the function from an open set to
       its closure.  (Contributed by Mario Carneiro, 1-Sep-2014.)  (Revised by
       Mario Carneiro, 11-Feb-2015.) $)
    dvmptntr $p |- ( ph ->
      ( S _D ( x e. X |-> A ) ) = ( S _D ( x e. Y |-> A ) ) ) $=
      ( cdv co cfv wss wceq cc cmpt cres ctop wcel cuni ctopon crest cnfldtopon
      cnt resttopon sylancr syl5eqel topontop syl toponuni sseqtrd eqid syl2anc
      ntridm fveq2d eqtr3d reseq2d fmptd dvres syl22anc ntrss2 eqsstr3d 3eqtr4d
      wf sstrd ssid resmpt mp1i oveq2d resmptd ) ADBGCUAZHUBZOPZDVPOPZDBHCUAZOP
      ADVPGUBZOPZVRVSAVSGEUIQZQZUBZVSHWCQZUBZWBVRAWDWFVSAWDWCQZWDWFAEUCUDZGEUEZ
      RZWHWDSAEDUFQZUDZWIAEFDUGPZWLLAFTUFQUDDTRZWNWLUDFMUHIDFTUJUKULZDEUMUNZAGD
      WJJAWMDWJSWPDEUOUNUPZGEWJWJUQZUSURAWDHWCNUTVAVBAWOGTVPVIZGDRZXAWBWESIABGC
      TVPKVPUQVCZJJGGDEVPFMLVDVEAWOWTXAHDRVRWGSIXBJAHGDAHWDGNAWIWKWDGRWQWRGEWJW
      SVFURVGZJVJGHDEVPFMLVDVEVHAWAVPDOGGRWAVPSAGVKBGGCVLVMVNVAAVQVTDOABGHCXCVO
      VNVA $.
  $}

  ${
    $d y A $.  $d x C $.  $d x D $.  $d y E $.  $d y F $.  $d y T $.  $d x V $.
    $d x y ph $.  $d y W $.  $d x X $.  $d x y Y $.
    dvmptco.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvmptco.t $e |- ( ph -> T e. { RR , CC } ) $.
    dvmptco.a $e |- ( ( ph /\ x e. X ) -> A e. Y ) $.
    dvmptco.b $e |- ( ( ph /\ x e. X ) -> B e. V ) $.
    dvmptco.c $e |- ( ( ph /\ y e. Y ) -> C e. CC ) $.
    dvmptco.d $e |- ( ( ph /\ y e. Y ) -> D e. W ) $.
    dvmptco.da $e |- ( ph -> ( S _D ( x e. X |-> A ) ) = ( x e. X |-> B ) ) $.
    dvmptco.dc $e |- ( ph -> ( T _D ( y e. Y |-> C ) ) = ( y e. Y |-> D ) ) $.
    dvmptco.e $e |- ( y = A -> C = E ) $.
    dvmptco.f $e |- ( y = A -> D = F ) $.
    $( Function-builder for derivative, chain rule.  (Contributed by Mario
       Carneiro, 1-Sep-2014.) $)
    dvmptco $p |- ( ph ->
      ( S _D ( x e. X |-> E ) ) = ( x e. X |-> ( F x. B ) ) ) $=
      ( cmpt ccom cdv co cmul cof eqid fmptd cdm dmeqd wcel wral wceq ralrimiva
      cc dmmptg syl eqtrd dvcof eqidd fmptco oveq2d ovex dmex syl6eqelr dvmptcl
      cvv feq1d mpbird fco syl2anc mpbid fmpt sylibr r19.21bi offval2 3eqtr3d
      wf ) AHCOFUFZBNDUFZUGZUHUIIWDUHUIZWEUGZHWEUHUIZUJUKUIHBNJUFZUHUIBNKEUJUIU
      FAIHWDWEONQPACOFUTWDTWDULUMABNDOWERWEULUMZAWGUNCOGUFZUNZOAWGWLUCUOAGMUPZC
      OUQWMOURAWNCOUAUSCOGMVAVBVCAWIUNZBNEUFZUNZNAWIWPUBUOAELUPZBNUQWQNURAWRBNS
      USBNELVAVBVCZVDAWFWJHUHABCNODFJWEWDRAWEVEZAWDVEUDVFVGABNKEUJWHWIVLUTLANWO
      VLWSWIHWEUHVHVIVJAKUTUPZBNANUTBNKUFZWCZXABNUQANUTWHWCZXCAOUTWGWCZNOWEWCXD
      AXEOUTWLWCACOGUTWLACFGIMOQTUAUCVKWLULUMAOUTWGWLUCVMVNWKNOUTWGWEVOVPANUTWH
      XBABCNODGKWEWGRWTUCUEVFZVMVQBNUTKXBXBULVRVSVTSXFUBWAWB $.
  $}

  ${
    $d A x y $.  $d B y $.  $d S x y $.  $d V x $.  $d X x $.  $d ph x y $.
    dvrecg.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvrecg.a $e |- ( ph -> A e. CC ) $.
    dvrecg.b $e |- ( ( ph /\ x e. X ) -> B e. ( CC \ { 0 } ) ) $.
    dvrecg.c $e |- ( ( ph /\ x e. X ) -> C e. V ) $.
    dvrecg.db $e |- ( ph -> ( S _D ( x e. X |-> B ) ) = ( x e. X |-> C ) ) $.
    $( Derivative of the reciprocal of a function.  (Contributed by Glauco
       Siliprandi, 11-Dec-2019.) $)
    dvrecg $p |- ( ph -> ( S _D ( x e. X |-> ( A / B ) ) ) = ( x e. X |-> -u (
       ( A x. C ) / ( B ^ 2 ) ) ) ) $=
      ( vy cdiv co cmpt c2 cc wcel cdv cexp cneg cmul cv cc0 cdif cr cnelprrecn
      csn cpr a1i adantr eldifi adantl wne eldifsni divcld sqcld expne0d negcld
      wa cz 2z dvrec syl oveq2 oveq1 oveq2d negeqd dvmptco eldifsn sylib simprd
      wceq dvmptcl mulneg1d div23d eqcomd eqtrd mpteq2dva ) AFBHCDOPZQUAPBHCDRU
      BPZOPZUCZEUDPZQBHCEUDPWCOPZUCZQABNDECNUEZOPZCWIRUBPZOPZUCZFSWBWEGSHSUFUJZ
      UGZISUHSUKTAUIULKLAWIWOTZVBZCWIACSTZWPJUMZWPWISTAWISWNUNUOZWPWIUFUPAWISUF
      UQUOZURWQWLWQCWKWSWQWIWTUSWQWIRWTXARVCTZWQVDULUTURVAMAWRSNWOWJQUAPNWOWMQV
      OJNCVEVFWIDCOVGWIDVOZWLWDXCWKWCCOWIDRUBVHVIVJVKABHWFWHABUEHTZVBZWFWDEUDPZ
      UCWHXEWDEXECWCAWRXDJUMZXEDXEDWOTZDSTZKDSWNUNVFZUSZXEDRXJXEXIDUFUPZXEXHXIX
      LVBKDSUFVLVMVNXBXEVDULUTZURABDEFGHIXJLMVPZVQXEXFWGXEWGXFXECEWCXGXNXKXMVRV
      SVJVTWAVT $.
  $}

  ${
    $d S x $.  $d V x $.  $d X x $.  $d ph x $.
    dvmptdiv.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvmptdiv.a $e |- ( ( ph /\ x e. X ) -> A e. CC ) $.
    dvmptdiv.b $e |- ( ( ph /\ x e. X ) -> B e. V ) $.
    dvmptdiv.da $e |- ( ph -> ( S _D ( x e. X |-> A ) ) = ( x e. X |-> B ) )
       $.
    dvmptdiv.c $e |- ( ( ph /\ x e. X ) -> C e. ( CC \ { 0 } ) ) $.
    dvmptdiv.d $e |- ( ( ph /\ x e. X ) -> D e. CC ) $.
    dvmptdiv.dc $e |- ( ph -> ( S _D ( x e. X |-> C ) ) = ( x e. X |-> D ) )
       $.
    $( Function-builder for derivative, quotient rule.  (Contributed by Glauco
       Siliprandi, 11-Dec-2019.) $)
    dvmptdiv $p |- ( ph -> ( S _D ( x e. X |-> ( A / C ) ) ) = ( x e. X |-> ( (
       ( B x. C ) - ( D x. A ) ) / ( C ^ 2 ) ) ) ) $=
      ( cdiv co cmul cc0 cmpt cdv c1 c2 cexp cneg caddc cmin cv wcel wa eldifad
      cc csn wne cdif eldifsn sylib simprd divrecd mpteq2dva oveq2d reccld 1cnd
      mulcld sqcld neneqd sqeq0 syl mtbird neqned divcld negcld dvrecg dvmptmul
      wceq dvmptcl negsubd div12d mulid2d sqvald divcan5rd eqtr2d 3eqtrd oveq1d
      wb negeqd mulneg1d div23d eqcomd oveq12d divsubdird 3eqtr4d ) AGBICEQRZUA
      ZUBRGBICUCEQRZSRZUAZUBRBIDWPSRZUCFSRZEUDUERZQRZUFZCSRZUGRZUABIDESRZFCSRZU
      HRXAQRZUAAWOWRGUBABIWNWQABUIIUJUKZCEKXIEUMTUNZNULZXIEUMUJZETUOZXIEUMXJUPU
      JXLXMUKNEUMTUQURUSZUTVAVBABCDWPXCGHUMIJKLMXIEXKXNVCXIXBXIWTXAXIUCFXIVDZOV
      EXIEXKVFZXIXATXIXATVPZETVPZXIETXNVGXIXLXQXRWFXKEVHVIVJVKZVLVMABUCEFGUMIJA
      VDNOPVNVOABIXEXHXIXFXAQRZXGXAQRZUFZUGRXTYAUHRXEXHXIXTYAXIXFXAXIDEABCDGHIJ
      KLMVQZXKVEZXPXSVLXIXGXAXIFCOKVEZXPXSVLVRXIWSXTXDYBUGXIWSUCDEQRZSRYFXTXIDU
      CEYCXOXKXNVSXIYFXIDEYCXKXNVLVTXIXTXFEESRZQRYFXIXAYGXFQXIEXKWAVBXIDEEYCXKX
      KXNXNWBWCWDXIXDFXAQRZUFZCSRYHCSRZUFYBXIXCYICSXIXBYHXIWTFXAQXIFOVTWEWGWEXI
      YHCXIFXAOXPXSVLKWHXIYJYAXIYAYJXIFCXAOKXPXSWIWJWGWDWKXIXFXGXAYDYEXPXSWLWMV
      AWD $.
  $}

  ${
    $d a b c A $.  $d a b c i x I $.  $d a b c i x ph $.  $d a b c i x S $.
    $d a b c B $.  $d a b c i x X $.
    dvmptfsum.j $e |- J = ( K |`t S ) $.
    dvmptfsum.k $e |- K = ( TopOpen ` CCfld ) $.
    dvmptfsum.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvmptfsum.x $e |- ( ph -> X e. J ) $.
    dvmptfsum.i $e |- ( ph -> I e. Fin ) $.
    dvmptfsum.a $e |- ( ( ph /\ i e. I /\ x e. X ) -> A e. CC ) $.
    dvmptfsum.b $e |- ( ( ph /\ i e. I /\ x e. X ) -> B e. CC ) $.
    dvmptfsum.d $e |- ( ( ph /\ i e. I ) -> ( S _D ( x e. X |-> A ) ) =
        ( x e. X |-> B ) ) $.
    $( Function-builder for derivative, finite sums rule.  (Contributed by
       Stefan O'Rear, 12-Nov-2014.) $)
    dvmptfsum $p |- ( ph -> ( S _D ( x e. X |-> sum_ i e. I A ) ) =
        ( x e. X |-> sum_ i e. I B ) ) $=
      ( va wcel vb vc wss csu cmpt cdv co wceq ssid cfn wi cv c0 csn cun sumeq1
      sseq1 mpteq2dv oveq2d eqeq12d imbi12d imbi2d weq cc wa 0cnd dvmptc ctopon
      cc0 cfv cnfldtopon cr cpr recnprss syl resttopon sylancr syl5eqel toponss
      crest syl2anc dvmptres sum0 mpteq2i oveq2i 3eqtr4g a1d wn ssun1 sstr mpan
      imim1i csb caddc cvv simpll ad3antrrr ad2antlr ssfi simp-4l sselda simplr
      w3a nfv nfcsb1v nfel1 eleq1 3anbi3d csbeq1a eleq1d chvar syl3anc adantlrr
      nfim fsumcl sumex a1i nfcv nfsum sumeq2sdv cbvmpt sylibr 3expb ralrimivva
      ancom2s rspc2 ancoms mpan9 syl12anc nfmpt nfcsb csbeq2dv fsumsplit sumsns
      wral eqtrd mpteq2dva syl5eq adantrr a2d eqeq12i biimpi ad2antll ssun2 vex
      simplll snss simpr ad2antrl nfov nfeq anbi2d 3eqtr3g dvmptadd cin simpllr
      disjsn eqidd 3eqtr4d exp32 syl5 expcom adantl findcard2s mpcom mpi ) AGGU
      CZEBJGCFUDZUEZUFUGZBJGDFUDZUEZUHZGUIGUJTZAUVGUVMUKZOASULZGUCZEBJUVPCFUDZU
      EZUFUGZBJUVPDFUDZUEZUHZUKZUKAUMGUCZEBJUMCFUDZUEZUFUGZBJUMDFUDZUEZUHZUKZUK
      AUAULZGUCZEBJUWMCFUDZUEZUFUGZBJUWMDFUDZUEZUHZUKZUKAUWMUBULZUNZUOZGUCZEBJU
      XDCFUDZUEZUFUGZBJUXDDFUDZUEZUHZUKZUKAUVOUKSUAUBGUVPUMUHZUWDUWLAUXMUVQUWEU
      WCUWKUVPUMGUQUXMUVTUWHUWBUWJUXMUVSUWGEUFUXMBJUVRUWFUVPUMCFUPURUSUXMBJUWAU
      WIUVPUMDFUPURUTVAVBSUAVCZUWDUXAAUXNUVQUWNUWCUWTUVPUWMGUQUXNUVTUWQUWBUWSUX
      NUVSUWPEUFUXNBJUVRUWOUVPUWMCFUPURUSUXNBJUWAUWRUVPUWMDFUPURUTVAVBUVPUXDUHZ
      UWDUXLAUXOUVQUXEUWCUXKUVPUXDGUQUXOUVTUXHUWBUXJUXOUVSUXGEUFUXOBJUVRUXFUVPU
      XDCFUPURUSUXOBJUWAUXIUVPUXDDFUPURUTVAVBUVPGUHZUWDUVOAUXPUVQUVGUWCUVMUVPGG
      UQUXPUVTUVJUWBUVLUXPUVSUVIEUFUXPBJUVRUVHUVPGCFUPURUSUXPBJUWAUVKUVPGDFUPUR
      UTVAVBAUWKUWEAEBJVIUEZUFUGUXQUWHUWJABVIVIEHIVDEJMABULZETVEVFZUXSABVIEMAVF
      VGAHEVHVJZTJHTJEUCAHIEVTUGZUXTKAIVDVHVJTEVDUCZUYAUXTTILVKAEVLVDVMTZUYBMEV
      NVOEIVDVPVQVRNJHEVSWAKLNWBUWGUXQEUFBJUWFVICFWCWDWEBJUWIVIDFWCWDWFWGUWMUJT
      ZUXBUWMTWHZVEAUXAUXLUYEAUXAUXLUKZUKUYDAUYEUYFUXAUXEUWTUKAUYEVEZUXLUXEUWNU
      WTUWMUXDUCUXEUWNUWMUXCWIUWMUXDGWJWKZWLUYGUXEUWTUXKUYGUXEUWTUXKUYGUXEUWTVE
      ZVEZESJUWMBUVPCWMZFUDZFUXBUYKWMZWNUGZUEZUFUGSJUWMBUVPDWMZFUDZFUXBUYPWMZWN
      UGZUEZUXHUXJUYJSUYLUYQUYMUYREWOVDJUYJAUYCAUYEUYIWPZMVOUYGUXEUVPJTZUYLVDTU
      WTUYGUXEVEZVUBVEZUWMUYKFVUDUVNUWNUYDAUVNUYEUXEVUBOWQZUXEUWNUYGVUBUYHWRZGU
      WMWSWAVUDFULZUWMTZVEAVUGGTZVUBUYKVDTZAUYEUXEVUBVUHWTVUDUWMGVUGVUFXAVUCVUB
      VUHXBAVUIUXRJTZXCZCVDTZUKAVUIVUBXCZVUJUKBSVUNVUJBVUNBXDZBUYKVDBUVPCXEZXFZ
      XNBSVCZVULVUNVUMVUJVURVUKVUBAVUIUXRUVPJXGXHZVURCUYKVDBUVPCXIZXJZVAPXKZXLX
      OXMUYQWOTUYJVUBVEUWMUYPFXPXQUWTESJUYLUEZUFUGZSJUYQUEZUHZUYGUXEUWTVVFUWQVV
      DUWSVVEUWPVVCEUFBSJUWOUYLSUWOXRBUWMUYKFBUWMXRZVUPXSVURUWMCUYKFVUTXTYAWEBS
      JUWRUYQSUWRXRBUWMUYPFVVGBUVPDXEZXSVURUWMDUYPFBUVPDXIZXTYAUUAUUBUUCUYGUXEV
      UBUYMVDTZUWTVUDAUXBGTZVUBVVJAUYEUXEVUBUUFZUXEVVKUYGVUBUXEUXCGUCZVVKUXCUXD
      UCUXEVVMUXCUWMUUDUXCUXDGWJWKUXBGUBUUEZUUGYBZWRZVUCVUBUUHZAVUMFGYOBJYOZVVK
      VUBVEZVVJAVUMBFJGAVUIVUKVUMAVUIVUKVUMPYCYEYDVUBVVKVVRVVJUKVUMVVJVUJBFUVPU
      XBJGVUQFUYMVDFUXBUYKXEXFVVAFUBVCZUYKUYMVDFUXBUYKXIXJYFYGYHYIZXMUYGUXEVUBU
      YRVDTZUWTVUDAVVKVUBVWBVVLVVPVVQADVDTZFGYOBJYOZVVSVWBAVWCBFJGAVUIVUKVWCAVU
      IVUKVWCQYCYEYDVUBVVKVWDVWBUKVWCVWBUYPVDTZBFUVPUXBJGBUYPVDVVHXFZFUYRVDFUXB
      UYPXEXFVURDUYPVDVVIXJZVVTUYPUYRVDFUXBUYPXIXJYFYGYHYIZXMUYJAVVKESJUYMUEZUF
      UGZSJUYRUEZUHVUAUXEVVKUYGUWTVVOUUIAVVKVEZEBJFUXBCWMZUEZUFUGZBJFUXBDWMZUEZ
      VWJVWKAVUIVEZEBJCUEZUFUGZBJDUEZUHZUKVWLVWOVWQUHZUKFUBVWLVXCFVWLFXDFVWOVWQ
      FEVWNUFFEXRFUFXRFBJVWMFJXRZFUXBCXEYJUUJFBJVWPVXDFUXBDXEYJUUKXNVVTVWRVWLVX
      BVXCVVTVUIVVKAVUGUXBGXGUULVVTVWTVWOVXAVWQVVTVWSVWNEUFVVTBJCVWMFUXBCXIURUS
      VVTBJDVWPFUXBDXIURUTVARXKVWNVWIEUFBSJVWMUYMSVWMXRBFUXBUYKBUXBXRZVUPYKVURF
      UXBCUYKVUTYLYAWEBSJVWPUYRSVWPXRBFUXBUYPVXEVVHYKVURFUXBDUYPVVIYLYAUUMWAUUN
      UYJUXGUYOEUFUYGUXEUXGUYOUHUWTVUCUXGSJUXDUYKFUDZUEUYOBSJUXFVXFSUXFXRBUXDUY
      KFBUXDXRZVUPXSVURUXDCUYKFVUTXTYAVUCSJVXFUYNVUDVXFUYLUXCUYKFUDZWNUGUYNVUDU
      WMUXCUYKUXDFVUDUYEUWMUXCUUOUMUHAUYEUXEVUBUUPUWMUXBUUQYBZVUDUXDUURZVUDUVNU
      XEUXDUJTVUEUYGUXEVUBXBZGUXDWSWAZVUDVUGUXDTZVEZAVUIVUBVUJAUYEUXEVUBVXMWTZV
      UDUXDGVUGVXKXAZVUCVUBVXMXBZVVBXLYMVUDVXHUYMUYLWNVUDUXBWOTZVVJVXHUYMUHVVNV
      WAUYKFUXBWOYNVQUSYPYQYRYSUSUYGUXEUXJUYTUHUWTVUCUXJSJUXDUYPFUDZUEUYTBSJUXI
      VXSSUXIXRBUXDUYPFVXGVVHXSVURUXDDUYPFVVIXTYAVUCSJVXSUYSVUDVXSUYQUXCUYPFUDZ
      WNUGUYSVUDUWMUXCUYPUXDFVXIVXJVXLVXNAVUIVUBVWEVXOVXPVXQVULVWCUKVUNVWEUKBSV
      UNVWEBVUOVWFXNVURVULVUNVWCVWEVUSVWGVAQXKXLYMVUDVXTUYRUYQWNVUDVXRVWBVXTUYR
      UHVVNVWHUYPFUXBWOYNVQUSYPYQYRYSUUSUUTYTUVAUVBUVCYTUVDUVEUVF $.
  $}

  ${
    $d x y z C $.  $d x y z F $.  $d x y z J $.  $d x y z ph $.  $d x y z S $.
    $d y z X $.  $d x z Y $.
    dvcnv.j $e |- J = ( TopOpen ` CCfld ) $.
    dvcnv.k $e |- K = ( J |`t S ) $.
    dvcnv.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvcnv.y $e |- ( ph -> Y e. K ) $.
    dvcnv.f $e |- ( ph -> F : X -1-1-onto-> Y ) $.
    dvcnv.i $e |- ( ph -> `' F e. ( Y -cn-> X ) ) $.
    dvcnv.d $e |- ( ph -> dom ( S _D F ) = X ) $.
    dvcnv.z $e |- ( ph -> -. 0 e. ran ( S _D F ) ) $.
    ${
      dvcnv.c $e |- ( ph -> C e. X ) $.
      $( Lemma for ~ dvcnvre .  (Contributed by Mario Carneiro, 25-Feb-2015.)
         (Revised by Mario Carneiro, 8-Sep-2015.) $)
      dvcnvlem $p |- ( ph ->
        ( F ` C ) ( S _D `' F ) ( 1 / ( ( S _D F ) ` C ) ) ) $=
        ( co wcel cc vz vy vx cfv c1 cdv cdiv ccnv wbr cnt cdif cmin cmpt climc
        csn cv wf1o f1of syl ffvelrnd ctop wceq ctopon crest wss cnfldtopon cpr
        wf cr recnprss resttopon sylancr syl5eqel topontop isopn3i eleqtrrd wne
        syl2anc wa f1ocnv eldifi ffvelrn syl2an anim1i sylibr anasss cdm dvbsss
        3syl eldifsn syl6eqssr sstrd sselda sylan2 sseldd adantr subcld toponss
        fssd cc0 eldifsni adantl subeq0ad wf1 wb f1of1 syl12anc bitrd necon3bid
        f1fveq mpbird divcld limcresi feqmptd reseq1d difss resmpt ax-mp syl6eq
        cres syl5sseq f1ocnvfv1 cnlimci eqeltrrd dvlem subne0d divne0d sylanbrc
        oveq1d ccom eqid a1i mpbid eldv ccn wn oveq2 eqidd mpteq2dva oveq12d
        fmptd wfun dvfg ffun funfvbrb 4syl simprd ccnp mp2an cnmptc cnmptid ctx
        1cnd divcn cnmpt12f feq2d crn wfn ffn fnfvelrn nelne2 toponunii limccnp
        cncnpi fvmpt fmptco recdivd eqtrd 3eltr3d oveq1 fveq2 f1ocnvfvb syl3anc
        ovex necomd necon3abid pm2.21d limcco eqcomd oveq2d f1ocnvfv2 mpbir2and
        impr eleqtrd ) ABDUDZUEBCDUFRZUDZUGRZCDUHZUFRUIUWEHFUJUDZUDZSUWHUAHUWEU
        OZUKZUAUPZUWIUDZUWEUWIUDZULRZUWNUWEULRZUGRZUMZUWEUNRZSAUWEHUWKAGHBDAGHD
        UQZGHDVHMGHDURUSZQUTZAFVASZHFSZUWKHVBAFCVCUDZSZUXEAFECVDRZUXGJAETVCUDSZ
        CTVEZUXIUXGSEIVFZACVITVGSZUXKKCVJUSZCETVKVLVMZCFVNUSLHFVOVRVPAUWHUAUWMU
        WOBULRZUWODUDZUWEULRZUGRZUMZUWEUNRUXAAUAUBUWMGBUOZUKZBUWHUWOUBUPZBULRZU
        YCDUDZUWEULRZUGRZUXSUWEAUWNUWMSZUWOBVQZUWOUYBSZAUYHVSZUYIVSUWOGSZUYIVSU
        YJUYKUYLUYIAHGUWIVHZUWNHSZUYLUYHAUXBHGUWIUQUYMMGHDVTHGUWIURWIZUWNHUWLWA
        ZHGUWNUWIWBWCWDUWOGBWJWEWFAUYCUYBSZVSZUYDUYFUYRUYCBUYQAUYCGSZUYCTSUYCGU
        YAWAZAGTUYCAGCTAGUWFWGZCOCDWHWKZUXNWLZWMWNZABTSUYQACTBUXNAGCBVUBQWOWOWP
        ZWQZUYRUYEUWEAGTDVHUYSUYETSUYQAGHTDUXCAHCTAUXHUXFHCVEUXOLHFCWRVRZUXNWLZ
        WSZUYTGTUYCDWBWCZAUWETSUYQAHTUWEVUHUXDWOWPZWQZUYRUYFWTVQUYCBVQZUYQVUMAU
        YCGBXAXBZUYRUYFWTUYCBUYRUYFWTVBUYEUWEVBZUYCBVBZUYRUYEUWEVUJVUKXCUYRGHDX
        DZUYSBGSZVUOVUPXEAVUQUYQAUXBVUQMGHDXFUSWPUYQUYSAUYTXBAVURUYQQWPGHUYCBDX
        JXGXHXIXKZXLAUWIUWEUNRZUAUWMUWOUMZUWEUNRZBAUWIUWMXTZUWEUNRVUTVVBUWEUWMU
        WIXMAVVCVVAUWEUNAVVCUAHUWOUMZUWMXTZVVAAUWIVVDUWMAUAHGUWIUYOXNXOUWMHVEVV
        EVVAVBHUWLXPUAHUWMUWOXQXRXSYIYAAUWPBVUTAUXBVURUWPBVBMQGHBDYBVRZAHUWEGUW
        INUXDYCYDWOAUWGUCTWTUOZUKZUEUCUPZUGRZUMZUDZVVKUBUYBUYFUYDUGRZUMZYJZBUNR
        UWHUBUYBUYGUMZBUNRAUYBBUWGVVHVVNVVKEVVHVDRZEAUBUYBVVMVVHVVNUYRVVMTSVVMW
        TVQVVMVVHSAUYCBGDVUIVUCQYEUYRUYFUYDVULVUFVUSUYRUYCBVUDVUEVUNYFZYGVVMTWT
        WJYHZVVNYKZUUAVVHTVEZATVVGXPZYLIVVQYKZABGUWJUDSZUWGVVNBUNRSZABUWGUWFUIZ
        VWDVWEVSABVUASZVWFABGVUAQOVPZAUXMVUATUWFVHZUWFUUBVWGVWFXEKCDUUCZVUATUWF
        UUDBUWFUUEUUFYMAUBGBUWGCFDVVNEJIVVTUXNVUIVUBYNYMUUGAVVKVVQEYORSUWGVVHSZ
        VVKUWGVVQEUUHRUDSAUCUEVVIUGVVQEVVQEVVHVVQVVHVCUDSZAUXJVWAVWLUXLVWBVVHET
        VKUUIZYLZAUCUEVVQEVVHTVWNUXJAUXLYLAUUMUUJAUCVVQVVHVWNUUKUGEVVQUULREYORS
        AEVVQIVWCUUNYLUUOAUWGTSUWGWTVQZVWKAGTBUWFAVWIGTUWFVHAUXMVWIKVWJUSZAVUAG
        TUWFOUUPYMQUTAUWGUWFUUQZSZWTVWQSYPVWOAUWFVUAUURZVWGVWRAVWIVWSVWPVUATUWF
        UUSUSVWHVUABUWFUUTVRPUWGWTVWQUVAVRUWGTWTWJYHZUWGVVKVVQEVVHVVHVVQVWMUVBU
        VDVRUVCAVWKVVLUWHVBVWTUCUWGVVJUWHVVHVVKVVIUWGUEUGYQVVKYKUEUWGUGUVNUVEUS
        AVVOVVPBUNAVVOUBUYBUEVVMUGRZUMVVPAUBUCUYBVVHVVMVVJVXAVVNVVKVVSAVVNYRAVV
        KYRVVIVVMUEUGYQUVFAUBUYBVXAUYGUYRUYFUYDVULVUFVUSVVRUVGYSUVHYIUVIUYCUWOV
        BZUYDUXPUYFUXRUGUYCUWOBULUVJVXBUYEUXQUWEULUYCUWODUVKYIYTAUYHUWOBVBZUXSU
        WHVBZUYKVXCVXDUYKUWEUWNVQVXCYPUYKUWNUWEUYHUWNUWEVQAUWNHUWEXAXBUVOUYKVXC
        UWEUWNUYKUXBVURUYNUWEUWNVBVXCXEAUXBUYHMWPAVURUYHQWPUYHUYNAUYPXBGHBUWNDU
        VLUVMUVPYMUVQUWCUVRAUXTUWTUWEUNAUAUWMUXSUWSUYKUXPUWQUXRUWRUGUYKBUWPUWOU
        LABUWPVBUYHAUWPBVVFUVSWPUVTUYKUXQUWNUWEULAUXBUYNUXQUWNVBUYHMUYPGHUWNDUW
        AWCYIYTYSYIUWDAUAHUWEUWHCFUWIUWTEJIUWTYKUXNAHGTUWIUYOVUCWSVUGYNUWB $.
    $}

    $( A weak version of ~ dvcnvre , valid for both real and complex domains
       but under the hypothesis that the inverse function is already known to
       be continuous, and the image set is known to be open.  A more advanced
       proof can show that these conditions are unnecessary.  (Contributed by
       Mario Carneiro, 25-Feb-2015.)  (Revised by Mario Carneiro,
       8-Sep-2015.) $)
    dvcnv $p |- ( ph -> ( S _D `' F ) =
      ( x e. Y |-> ( 1 / ( ( S _D F ) ` ( `' F ` x ) ) ) ) ) $=
      ( cfv cc wcel adantr ccnv cdv co cv cmpt c1 cdiv cdm wf cpr dvfg recnprss
      cr syl wss wf1o f1ocnv f1of 3syl dvbsss syl6eqssr sstrd fssd ctopon crest
      cnfldtopon resttopon sylancr syl5eqel toponss syl2anc dvbss wbr f1ocnvfv2
      wa wceq sylan ccncf cc0 crn wn ffvelrnda dvcnvlem eqbrtrrd reldv releldmi
      ex ssrdv eqssd feq2d mpbid feqmptd wfun ffun funbrfv sylc mpteq2dva eqtrd
      ) ACDUAZUBUCZBHBUDZWTQZUEBHUFXAWSQZCDUBUCZQUGUCZUEABHRWTAWTUHZRWTUIZHRWTU
      IACUMRUJSZXGKCWSUKUNZAXFHRWTAXFHAHCWSAXHCRUOZKCULUNZAHGRWSAGHDUPZHGWSUPHG
      WSUIMGHDUQHGWSURUSZAGCRAGXDUHZCOCDUTVAXKVBVCAFCVDQZSHFSZHCUOAFECVEUCZXOJA
      ERVDQSXJXQXOSEIVFXKCERVGVHVILHFCVJVKVLABHXFAXAHSZXAXFSZAXRVOZXAXEWTVMZXSX
      TXCDQZXAXEWTAXLXRYBXAVPMGHXADVNVQXTXCCDEFGHIJAXHXRKTAXPXRLTAXLXRMTAWSHGVR
      UCSXRNTAXNGVPXROTAVSXDVTSWAXRPTAHGXAWSXMWBWCWDZXAXEWTCWSWEWFUNWGWHWIWJWKW
      LABHXBXEXTWTWMZYAXBXEVPXTXGYDAXGXRXITXFRWTWNUNYCXAXEWTWOWPWQWR $.
  $}

  ${
    $d x y N $.
    $( Derivative of an exponential of integer exponent.  (Contributed by Mario
       Carneiro, 26-Feb-2015.) $)
    dvexp3 $p |- ( N e. ZZ -> ( CC _D ( x e. ( CC \ { 0 } ) |-> ( x ^ N ) ) ) =
                  ( x e. ( CC \ { 0 } ) |-> ( N x. ( x ^ ( N - 1 ) ) ) ) ) $=
      ( vy cz wcel wa cc cc0 cexp co cmpt c1 cmin cmul wceq cvv a1i oveq2d cdiv
      c2 cn0 cr cneg cn wo csn cdif cv cdv elznn0nn cif ccnfld ctopn cnelprrecn
      cfv cpr expcl ancoms c0ex ovex ifex dvexp2 crest ctop cnfldtop cnfldtopon
      difssd eqid toponunii restid ax-mp eqcomi ccld cha cnfldhaus sncld cldopn
      0cn mp2an dvmptres id oveq1 oveq12d wne eldifsn 0z peano2zm expclz mp3an3
      ifid sylbi adantl mul02d sylan9eqr ifeq1da mpteq2dva eqtr4d eldifi simpll
      syl5eqr recnd nnnn0 ad2antlr expneg2 syl3anc eldifsni nnz expclzd expne0d
      sylanbrc simpr sylib reccl syl negex expcld dvexp ax-1cn dvrec mp1i oveq2
      negeqd dvmptco 2z expmulz syl22anc eqcomd mulneg1d zmulcl reccld mul2negd
      sylancl mulcld mul12d expsubd nncn zcnd sub32d eqtrd 3eqtrd caddc times2d
      negsubd nncand oveq1d divrec2d 3eqtr3rd jaoi ) BDEBUAEZBUBEZBUCZUDEZFZUEG
      AGHUFZUGZAUHZBIJZKZUIJZAUUOBUUPBLMJZIJZNJZKZOZBUJUUIUVDUUMUUIUUSAUUOBHOZH
      UVBUKZKUVCUUIAUUQUVFGULUMUOZUVGPGUUOGUBGUPEZUUIUNQUUPGEZUUIUUQGEUUPBUQURU
      VFPEUUIUVIFUVEHUVBUSBUVANUTVAQABVBUUIGUUNVGUVGGVCJZUVGUVGVDEUVJUVGOUVGUVG
      VHZVEUVGVDGGUVGUVGUVKVFVIZVJVKVLZUVKUUOUVGEZUUIUUNUVGVMUOEZUVNUVGVNEHGEUV
      OUVGUVKVOVRHUVGGUVLVPVSUUNUVGGUVLVQVKZQVTUUIAUUOUVBUVFUUIUUPUUOEZFZUVBUVE
      UVBUVBUKUVFUVEUVBWJUVRUVEUVBHUVBUVEUVRUVBHUUPHLMJZIJZNJHUVEBHUVAUVTNUVEWA
      UVEUUTUVSUUPIBHLMWBRWCUVRUVTUVQUVTGEZUUIUVQUVIUUPHWDZFUWAUUPGHWEUVIUWBUVS
      DEZUWAHDEUWCWFHWGVKUUPUVSWHWIWKWLWMWNWOWTWPWQUUMUUSGAUUOLUUPUUKIJZSJZKZUI
      JAUUOLUWDTIJZSJZUCZUUKUUPUUKLMJZIJZNJZNJZKUVCUUMUURUWFGUIUUMAUUOUUQUWEUUM
      UVQFZUVIBGEUUKUAEZUUQUWEOUVQUVIUUMUUPGUUNWRWLZUWNBUUJUULUVQWSXAZUULUWOUUJ
      UVQUUKXBZXCUUPBXDXEWPRUUMACUWDUWLLCUHZSJZLUWSTIJZSJZUCZGGUWEUWIPPUUOUUOUV
      HUUMUNQZUXDUWNUWDGEUWDHWDUWDUUOEUWNUUPUUKUWPUVQUWBUUMUUPGHXFWLZUULUUKDEZU
      UJUVQUUKXGXCZXHUWNUUPUUKUWPUXEUXGXIUWDGHWEXJUWLPEZUWNUUKUWKNUTZQUUMUWSUUO
      EZFZUWSGEUWSHWDFZUWTGEUXKUXJUXLUUMUXJXKUWSGHWEXLUWSXMXNUXCPEUXKUXBXOQUUMA
      UWDUWLGUVGUVGPGUUOUXDUUMUVIFZUUPUUKUUMUVIXKUULUWOUUJUVIUWRXCXPUXHUXMUXIQU
      ULGAGUWDKUIJAGUWLKOUUJAUUKXQWLUUMGUUNVGUVMUVKUVNUUMUVPQVTLGEZGCUUOUWTKUIJ
      CUUOUXCKOUUMXRCLXSXTUWSUWDLSYAUWSUWDOZUXBUWHUXOUXAUWGLSUWSUWDTIWBRYBYCUUM
      AUUOUWMUVBUWNUWMLUUPUUKTNJZIJZSJZUCZBUWKNJZUCZNJUXRUXTNJZUVBUWNUWIUXSUWLU
      YANUWNUWHUXRUWNUWGUXQLSUWNUXQUWGUWNUVIUWBUXFTDEZUXQUWGOUWPUXEUXGUYCUWNYDQ
      UUPUUKTYEYFYGRYBUWNBUWKUWQUWNUUPUWJUWPUXEUWNUXFUWJDEUXGUUKWGXNZXHZYHWCUWN
      UXRUXTUWNUXQUWNUUPUXPUWPUXEUWNUXFUYCUXPDEUXGYDUUKTYIYLZXHZUWNUUPUXPUWPUXE
      UYFXIZYJZUWNBUWKUWQUYEYMYKUWNUYBBUXRUWKNJZNJUVBUWNUXRBUWKUYIUWQUYEYNUWNUY
      JUVABNUWNUUPUWJUXPMJZIJUWKUXQSJUVAUYJUWNUUPUWJUXPUWPUXEUYFUYDYOUWNUYKUUTU
      UPIUWNUYKUUKUXPMJZLMJUUTUWNUUKLUXPUULUUKGEUUJUVQUUKYPXCZUXNUWNXRQUWNUXPUY
      FYQYRUWNUYLBLMUWNUYLUUKUUKBMJZMJBUWNUXPUYNUUKMUWNUXPUUKUUKUUAJUYNUWNUUKUY
      MUUBUWNUUKBUYMUWQUUCYSRUWNUUKBUYMUWQUUDYSUUEYSRUWNUWKUXQUYEUYGUYHUUFUUGRY
      SYTWPYTUUHWK $.
  $}

  ${
    $d k n w $.  $d w x y z $.
    $( Derivative of the exponential function at 0.  The key step in the proof
       is ~ eftlub , to show that
       ` abs ( exp ( x ) - 1 - x ) <_ abs ( x ) ^ 2 x. ( 3 / 4 ) ` .
       (Contributed by Mario Carneiro, 9-Aug-2014.)  (Revised by Mario
       Carneiro, 28-Dec-2016.) $)
    dveflem $p |- 0 ( CC _D exp ) 1 $=
      ( vk vn cc0 c1 cc co wbr cfv wcel cmin cdiv wceq cabs clt wa crp c2 caddc
      cmul c4 vz vw vy vx ce cdv ccnfld ctopn cnt csn cdif cmpt climc ctop eqid
      cv 0cn cnfldtop cnfldtopon toponunii ntrtop ax-mp eleqtrri wi wral ax-1cn
      wne wrex cle cif 1rp mpan2 eldifsn simprl subid1d fveq2d breq1d cr abscld
      ifcl wb rpre adantr 1red ltmin syl3anc bitrd simplr sylibr oveq1d oveq12d
      fveq2 ovex fvmpt syl simplrl efcl 1cnd subcld simplrr divcld simpll rpred
      id cexp c3 abscl ad2antrr subcl sylancl remulcld resqcld cn 3re 4nn mp2an
      nndivre remulcl cfa cuz cn0 divcan2d divsubdird oveq2d eqtrd 0cnd syl6req
      csu 1e0p1 efsep oveq2i mpbird a1i oveq1i 1re breqtrd wtru trud mpbir2an
      wf dividd subsub4d df-2 1nn0 efval2 nn0uz sumeq1i addid2d eft0val syl6eqr
      0nn0 eqtr2d exp1 fac1 syl6eq eqcomd addcl sylancr subaddd 3eqtr3d absmuld
      div1 2nn0 eftlcl eqtr3d 2nn simpr ltled eftlub eqbrtrrd df-3 2t2e4 eqtr2i
      fac2 oveq12i syl6breqr sqge0d 3lt4 4cn mulid1i breqtrri 4re 4pos ltdivmul
      pm3.2i mp3an mpbir ltleii lemul2ad recnd sqcld mulid1d letrd sqvald mpbid
      absgt0 elrpd lemul2d ad2ant2l lelttrd eqbrtrd ex sylbid adantld ralrimiva
      sylan2b breq2 anbi2d imbi1d ralbidv rspcev syl2anc eldifi eldifsni difssd
      rgen fmpti ellimc3 crest restid eqcomi ef0 mpteq2ia wss ssid eff eldv ) C
      DEUEUFFGZCEUGUHHZUIHHZIZDUAECUJZUKZUAUPZUEHZDJFZUYNKFZULZCUMFIZCEUYJUQUYI
      UNIZUYJELUYIUYIUOZURZUYIEEUYIUYIVUAUSUTZVAVBVCUYSDEIZUBUPZCVGZVUECJFZMHZU
      CUPZNGZOZVUEUYRHZDJFZMHZUDUPZNGZVDZUBUYMVEZUCPVHZUDPVEZVFVUSUDPVUOPIZVUOD
      VIGZVUODVJZPIZVUFVUHVVCNGZOZVUPVDZUBUYMVEZVUSVVADPIVVDVKVVBVUODPVTVLVVAVV
      GUBUYMVUEUYMIZVVAVUEEIZVUFOZVVGVUEECVMZVVAVVKOZVVEVUPVUFVVMVVEVUEMHZVUONG
      ZVVNDNGZOZVUPVVMVVEVVNVVCNGZVVQVVMVUHVVNVVCNVVMVUGVUEMVVMVUEVVAVVJVUFVNZV
      OVPVQVVMVVNVRIZVUOVRIZDVRIZVVRVVQWAVVMVUEVVSVSVVAVWAVVKVUOWBWCVVMWDVVNVUO
      DWEWFWGVVMVVQVUPVVMVVQOZVUNVUEUEHZDJFZVUEKFZDJFZMHZVUONVWCVUMVWGMVWCVULVW
      FDJVWCVVIVULVWFLVWCVVKVVIVVAVVKVVQWHVVLWIUAVUEUYQVWFUYMUYRUYNVUELZUYPVWEU
      YNVUEKVWIUYOVWDDJUYNVUEUEWLWJVWIXDWKUYRUOZVWEVUEKWMWNWOWJVPVWCVWHVVNVUOVW
      CVWGVWCVWFDVWCVWEVUEVWCVWDDVWCVVJVWDEIZVVAVVJVUFVVQWPZVUEWQZWOVWCWRZWSVWL
      VVAVVJVUFVVQWTXAVWNWSVSVWCVUEVWLVSVWCVUOVVAVVKVVQXBXCVVKVVPVWHVVNVIGZVVAV
      VOVVKVVPOZVWOVVNVWHSFZVVNVVNSFZVIGVWPVWQVVNQXEFZVWRVIVWPVWQVWSXFTKFZSFZVW
      SVWPVVNVWHVVJVVTVUFVVPVUEXGXHZVWPVWGVWPVWFDVWPVWEVUEVWPVWKVUDVWEEIVVJVWKV
      UFVVPVWMXHZVFVWDDXIXJZVVJVUFVVPXBZVVJVUFVVPWHZXAVWPWRZWSZVSZXKVWPVWSVRIVW
      TVRIZVXAVRIVWPVVNVXBXLZXFVRIZTXMIVXJXNXOXFTXQXPZVWSVWTXRXJVXKVWPVWQVWSQDR
      FZQXSHZQSFZKFZSFZVXAVIVWPQXTHAUPBYAVUEBUPZXEFVXSXSHZKFULZHZAYHZMHZVWQVXRV
      IVWPVUEVWGSFZMHVYDVWQVWPVYEVYCMVWPVUEVWEVUEJFZVUEKFZSFVYFVYEVYCVWPVYFVUEV
      WPVWEVUEVXDVXEWSVXEVXFYBVWPVYGVWGVUESVWPVYGVWFVUEVUEKFZJFVWGVWPVWEVUEVUEV
      XDVXEVXEVXFYCVWPVYHDVWFJVWPVUEVXEVXFUUAYDYEYDVWPVYFVWDDVUERFZJFZVYCVWPVWD
      DVUEVXCVXGVXEUUBVWPVYJVYCLVYIVYCRFZVWDLVWPVWDVYKVWPVUEDVYIABVYADQVYAUOZUU
      CUUDVXEVXGVWPVUECDABVYACDVYLYIUUKVXEVWPYFVWPCCXTHZVYBAYHZRFCVWDRFVWDVWPVY
      NVWDCRVWPVWDYAVYBAYHZVYNVVJVWDVYOLVUFVVPVUEABVYAVYLUUEXHYAVYMVYBAUUFUUGYG
      YDVWPVWDVXCUUHUULVWPCVUECXEFCXSHKFZRFCDRFDVWPVYPDCRVVJVYPDLVUFVVPVUEUUIXH
      YDYIUUJYJVWPVUEDXEFZDXSHZKFZVUEDRVWPVYSVUEDKFZVUEVWPVYSVUEVYRKFVYTVWPVYQV
      UEVYRKVVJVYQVUELVUFVVPVUEUUMXHWJVYRDVUEKUUNYKUUOVVJVYTVUELVUFVVPVUEUVBXHY
      EYDYJUUPVWPVWDVYIVYCVXCVWPVUDVVJVYIEIVFVXEDVUEUUQUURVWPVVJQYAIVYCEIVXEUVC
      VUEABVYAQVYLUVDXJUUSYLYEUUTVPVWPVUEVWGVXEVXHUVAUVEVWPVUEABVYABYAVVNVXSXEF
      VXTKFULZBYAVWSVXOKFDVXNKFVXSXEFSFULZQVYLWUAUOWUBUOQXMIVWPUVFYMVXEVWPVVNDV
      XBVWPWDZVVKVVPUVGUVHUVIUVJVWTVXQVWSSXFVXNTVXPKUVKVXPQQSFTVXOQQSUVNYNUVLUV
      MUVOYKUVPVWPVXAVWSDSFVWSVIVWPVWTDVWSVXJVWPVXMYMWUCVXKVWPVVNVXBUVQVWTDVIGV
      WPVWTDVXMYOVWTDNGZXFTDSFZNGZXFTWUENUVRTUVSUVTUWAVXLVWBTVRIZCTNGZOWUDWUFWA
      XNYOWUGWUHUWBUWCUWEXFDTUWDUWFUWGUWHYMUWIVWPVWSVWPVVNVWPVVNVXBUWJZUWKUWLYP
      UWMVWPVVNWUIUWNYPVWPVWHVVNVVNVXIVXBVWPVVNVXBVWPVUFCVVNNGZVXFVVJVUFWUJWAVU
      FVVPVUEUWPXHUWOUWQUWRYLUWSVVMVVOVVPVNUWTUXAUXBUXCUXDUXFUXEVURVVHUCVVCPVUI
      VVCLZVUQVVGUBUYMWUKVUKVVFVUPWUKVUJVVEVUFVUIVVCVUHNUXGUXHUXIUXJUXKUXLUXPUY
      SVUDVUTOWAYQUDUCUBUYMCDUYRUYMEUYRYTYQUAUYMEUYQUYRVWJUYNUYMIZUYPUYNWULUYOD
      WULUYNEIUYOEIUYNEUYLUXMZUYNWQWOWULWRWSWUMUYNECUXNXAUXQYMYQEUYLUXOYQYFUXRY
      RYSUYHUYKUYSOWAYQUAECDEUYIUEUYRUYIUYIEUXSFZUYIUYTWUNUYILVUBUYIUNEVUCUXTVB
      UYAVUAUAUYMUYQUYOCUEHZJFZUYNCJFZKFZWULWURWUPUYNKFUYQWULWUQUYNWUPKWULUYNWU
      MVOYDWUPUYPUYNKWUODUYOJUYBYKYNYGUYCEEUYDYQEUYEYMZEEUEYTYQUYFYMWUSUYGYRYS
      $.
  $}

  ${
    $d x y z $.
    $( Derivative of the exponential function.  (Contributed by Mario Carneiro,
       9-Aug-2014.)  (Proof shortened by Mario Carneiro, 10-Feb-2015.) $)
    dvef $p |- ( CC _D exp ) = exp $=
      ( vx vz cc ce cdv co wceq wtru cfv cmpt wf wcel wbr cmin cc0 c1 caddc a1i
      cmul cvv vy cv cdm dvfcn dvbsss csn cxp cof ccnfld ctopn efcl fconstg syl
      snssd fssd wss ssid subcl ancoms eqid fmptd 0cn ax-1cn elexi snid opelxpi
      cop mpan2 dvconst eleqtrrd df-br sylibr ccom oveq1 ovex fvmpt subid eqtrd
      wa eff dveflem syl6eqbr cr cpr cnelprrecn simpr dvmptid simpl id dvmptsub
      dvmptc 1m0e1 mpteq2i fconstmpt eqtr4i syl6eq 1t1e1 syl6breq eqidd feqmptd
      dvcobr fveq2 fmptco oveq2d breqd dvmulbr ffvelrnd mul02d fvconst2 mulid2d
      mpbid fvex oveq12d addid2d breqtrd cnex efadd syldan pncan3 fveq2d eqtr3d
      offval2 mpteq2dva eqtr4d breldm ssriv eqssi feq2i mpbi wfun ax-mp funbrfv
      vex ffun mpsyl mpteq2ia trud ) CDEFZDGHYRACAUBZDIZJZDHYRACYSYRIZJUUAHACCY
      RCCYRKZHYRUCZCYRKZUUCDUDZUUDCCYRUUDCCDUEACUUDYSCLZYSYTYRMZYSUUDLUUGYSYTCC
      YTUFZUGZBCBUBZYSNFZDIZJZSUHFZEFZMUUHUUGYSOYSUUNIZSFZPYSUUJIZSFZQFZYTUUPUU
      GYSCUUJUUNUIUJIZOPCCCUUGCUUICUUJUUGYTCLZCUUIUUJKYSUKZCYTCULUMUUGYTCUVDUNU
      OCCUPUUGCUQRZUUGBCUUMCUUNUUGUUKCLZVSZUULCLZUUMCLUVFUUGUVHUUKYSURUSZUULUKU
      MUUNUTVAZUVEUVEOCLZUUGVBRPCLZUUGVCRZUUGYSOVGZCUUJEFZLYSOUVOMUUGUVNCOUFZUG
      ZUVOUUGOUVPLUVNUVQLOOCVBVDVEYSOCUVPVFVHUUGUVCUVOUVQGUVDYTVIUMVJYSOUVOVKVL
      UUGYSPCDBCUULJZVMZEFZMYSPCUUNEFZMUUGYSPPSFPUVTUUGYSCCDUVRUVBPPCCCCCDKZUUG
      VTRZUVEUUGBCUULCUVRUVIUVRUTZVAUVEUVEUVEUVMUVMUUGYSUVRIZOPYRUUGUWEYSYSNFZO
      BYSUULUWFCUVRUUKYSYSNVNUWDYSYSNVOVPYSVQVRWAWBUUGYSPVGZCUVREFZLYSPUWHMUUGU
      WGCPUFZUGZUWHUUGPUWILUWGUWJLPPCVCVDVEYSPCUWIVFVHUUGUWHBCPONFZJZUWJUUGBUUK
      PYSOCCCCCWCCWDLUUGWERZUUGUVFWFUVLUVGVCRUUGBCUWMWGUUGUVFWHUVKUVGVBRUUGBYSC
      UWMUUGWIZWKWJUWLBCPJUWJBCUWKPWLWMBCPWNWOWPVJYSPUWHVKVLUVBUTZXAWQWRUUGUVTU
      WAYSPUUGUVSUUNCEUUGBUACCUULUAUBZDIUUMUVRDUVIUUGUVRWSUUGUACCDUWCWTUWPUULDX
      BXCXDXEXKUWOXFUUGUVAOYTQFYTUUGUUROUUTYTQUUGUUQUUGCCYSUUNUVJUWNXGXHUUGUUTP
      YTSFYTUUGUUSYTPSCYTYSYSDXLZXIXDUUGYTUVDXJVRXMUUGYTUVDXNVRXOUUGUUPYRYSYTUU
      GUUODCEUUGUUOBCYTUUMSFZJZDUUGBCYTUUMSUUJUUNTTTCTLUUGXPRYTTLUVGUWQRUUMTLUV
      GUULDXLRUUJBCYTJGUUGBCYTWNRUUGUUNWSYBUUGDBCUUKDIZJUWSUUGBCCDUWCWTUUGBCUWR
      UWTUVGYSUULQFZDIZUWRUWTUUGUVFUVHUXBUWRGUVIYSUULXQXRUVGUXAUUKDYSUUKXSXTYAY
      CYDYDXDXEXKZYSYTYRAYMUWQYEUMYFYGYHYIRWTACUUBYTYRYJZUUGUUHUUBYTGUUEUXDUUFU
      UDCYRYNYKUXCYSYTYRYLYOYPWPHACCDUWBHVTRWTYDYQ $.

    $( Derivative of the sine and cosine functions.  (Contributed by Mario
       Carneiro, 21-May-2016.) $)
    dvsincos $p |- ( ( CC _D sin ) = cos /\
      ( CC _D cos ) = ( x e. CC |-> -u ( sin ` x ) ) ) $=
      ( vy cc cdv co ccos wceq cneg cmpt wtru ci cmul ce cdiv caddc c2 wcel a1i
      ax-icn negicn csin cv cfv wa cpr cnelprrecn simpr mulcld efcl syl cc0 wne
      cr ine0 divcld mulcl sylancr negcld addcld adantl c1 1cnd dvmptid mulid1i
      dvmptcmul mpteq2i syl6eq wf eff feqmptd oveq2d dvef syl5eq eqtr3d dvmptco
      fveq2 dvmptdivc divcan4d eqtrd sylancl dvmptneg divneg2d negne0i dvmptadd
      mpteq2dva 2cnd 2ne0 cmin df-sin subcld divdiv1d mulcomi oveq2i divsubdird
      2cn negsubd eqtr4d oveq1d 3eqtr4d divnegd negnegi mulneg2 syl5eqr subdird
      df-cos sinval negeqd divrecd irec jca trud ) CUADEZFGZCFDEZACAUBZUAUCZHZI
      ZGZUDJXMXSJCACKXOLEZMUCZKNEZKHZXOLEZMUCZKNEZHZOEZPNEZIZDEACYAYEOEZPNEIZXL
      FJAYHYKPCCCCUMCUEQJUFRZJXOCQZUDZYBYGYOYAKYOXTCQYACQYOKXOKCQZYOSRZJYNUGZUH
      ZXTUIUJZYQKUKULZYOUNRZUOZYOYFYOYEKYOYDCQZYECQZYOYCCQZYNUUDTYRYCXOUPUQZYDU
      IUJZYQUUBUOZURZUSYOYAYEYTUUHUSZJAYBYAYGYECCCCYMUUCYTJCACYBIDEACYAKLEZKNEZ
      IACYAIJAYAUULKCCCYMYTYOYAKYTYQUHZJABXTKBUBZMUCZUUPCCYAYACCCCYMYMYSYQUUOCQ
      UUPCQJUUOUIUTZUUQJCACXTIDEACKVALEZIACKIJAXOVAKCCCYMYRYOVBZJACYMVCZYPJSRZV
      EACUURKKSVDVFVGJCMDEZCBCUUPIZDEUVCJMUVCCDJBCCMCCMVHJVIRVJZVKJUVBMUVCVLUVD
      VMVNZUUOXTMVPZUVFVOZUVAUUAJUNRZVQJACUUMYAYOYAKYTYQUUBVRWEVSUUJUUHJCACYGID
      EACYEYCLEZKNEZHZIACYEIJAYFUVJCCCYMUUIYOUVIKYOUUEUUFUVICQUUHTYEYCUPVTZYQUU
      BUOJAYEUVIKCCCYMUUHUVLJABYDYCUUPUUPCCYEYECCCCYMYMUUGUUFYOTRZUUQUUQJCACYDI
      DEACYCVALEZIACYCIJAXOVAYCCCCYMYRUUSUUTUUFJTRVEACUVNYCYCTVDVFVGUVEUUOYDMVP
      ZUVOVOZUVAUVHVQWAJACUVKYEYOUVKUVIYCNEYEYOUVIKUVLYQUUBWBYOYEYCUUHUVMYCUKUL
      YOKSUNWCRVRVSWEVSWDJWFZPUKULZJWGRZVQJUAYJCDJUAACYAYEWHEZPKLEZNEZIYJAWIJAC
      UWBYIYOUVTKNEZPNEZUWBYIYOUWDUVTKPLEZNEUWBYOUVTKPYOYAYEYTUUHWJZYQYOWFZUUBU
      VRYOWGRZWKUWEUWAUVTNKPSWOWLWMVGZYOUWCYHPNYOUWCYBYFWHEYHYOYAYEKYTUUHYQUUBW
      NYOYBYFUUCUUIWPWQWRVNWEVMVKFYLGJAXERZWSJCYLDEACUULUVIOEZPNEZIXNXRJAYKUWKP
      CCCYMUUKYOUULUVIUUNUVLUSJAYAUULYEUVICCCCYMYTUUNUVGUUHUVLUVPWDUVQUVSVQJFYL
      CDUWJVKJACXQUWLYOUWDHUWCHZPNEXQUWLYOUWCPYOUVTKUWFYQUUBUOUWGUWHWTYOXPUWDYO
      XPUWBUWDYNXPUWBGJXOXFUTUWIWQXGYOUWKUWMPNYOUVTKLEZUVTYCLEZHZUWKUWMYOUWNUVT
      YCHZLEZUWPUWQKUVTLKSXAWMYOUVTCQUUFUWRUWPGUWFTUVTYCXBVTXCYOUULYEKLEZHZOEUU
      LUWSWHEUWKUWNYOUULUWSUUNYOUUEYPUWSCQUUHSYEKUPVTWPYOUVIUWTUULOYOUUEYPUVIUW
      TGUUHSYEKXBVTVKYOYAYEKYTUUHYQXDWSYOUWCUWOYOUWCUVTVAKNEZLEUWOYOUVTKUWFYQUU
      BXHUXAYCUVTLXIWMVGXGWSWRWSWEWSXJXK $.
  $}

  $( Derivative of the sine function.  (Contributed by Mario Carneiro,
     21-May-2016.) $)
  dvsin $p |- ( CC _D sin ) = cos $=
    ( vx cc csin cdv co ccos wceq cv cfv cneg cmpt dvsincos simpli ) BCDEFGBFDE
    ABAHCIJKGALM $.

  $( Derivative of the cosine function.  (Contributed by Mario Carneiro,
     21-May-2016.) $)
  dvcos $p |- ( CC _D cos ) = ( x e. CC |-> -u ( sin ` x ) ) $=
    ( cc csin cdv co ccos wceq cv cfv cneg cmpt dvsincos simpri ) BCDEFGBFDEABA
    HCIJKGALM $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Results on real differentiation
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d y z A $.  $d y z B $.  $d u x y z F $.  $d u x y z U $.  $d u x y z X $.
    $d u y ph $.  $d y z S $.  $d z T $.
    dvferm.a $e |- ( ph -> F : X --> RR ) $.
    dvferm.b $e |- ( ph -> X C_ RR ) $.
    dvferm.u $e |- ( ph -> U e. ( A (,) B ) ) $.
    dvferm.s $e |- ( ph -> ( A (,) B ) C_ X ) $.
    dvferm.d $e |- ( ph -> U e. dom ( RR _D F ) ) $.
    ${
      dvferm1.r $e |- ( ph -> A. y e. ( U (,) B ) ( F ` y ) <_ ( F ` U ) ) $.
      ${
        dvferm1.z $e |- ( ph -> 0 < ( ( RR _D F ) ` U ) ) $.
        dvferm1.t $e |- ( ph -> T e. RR+ ) $.
        dvferm1.l $e |- ( ph -> A. z e. ( X \ { U } )
          ( ( z =/= U /\ ( abs ` ( z - U ) ) < T ) ->
            ( abs ` ( ( ( ( F ` z ) - ( F ` U ) ) / ( z - U ) ) -
              ( ( RR _D F ) ` U ) ) ) < ( ( RR _D F ) ` U ) ) ) $.
        dvferm1.x $e |- S =
          ( ( U + if ( B <_ ( U + T ) , B , ( U + T ) ) ) / 2 ) $.
        $( Lemma for ~ dvferm .  (Contributed by Mario Carneiro,
           24-Feb-2015.) $)
        dvferm1lem $p |- -. ph $=
          ( cfv clt wbr cc0 cmin co cdiv cr cdv cdm wf wss dvfre ffvelrnd recnd
          syl2anc subidd caddc cabs wa csn cdif wcel cv wne wi wral cioo cxr c0
          cle ne0i ndmioo necon1ai 3syl simpld eliooord syl sseldi rexrd xrltle
          ioossre mpd iooss1 sstrd cif c2 simprd rpred readdcld ifcld mnfxr a1i
          cmnf mnflt xrlttrd ifboth xrmin2 syl22anc rehalfcld syl5eqel ltaddrpd
          breq2 xrre wb avglt1 mpbid syl6breqr avglt2 syl5eqbr xrmin1 xrltletrd
          w3a elioo2 mpbir3and sseldd gtned eldifsn sylanbrc abssubge0d ltletrd
          ltled ltsubadd2d mpbird eqbrtrd jca neeq1 oveq1 fveq2d breq1d anbi12d
          wceq fveq2 oveq1d oveq12d imbi12d rspcv syl3c resubcld posdifd gt0div
          elrpd rerpdivcld absdifltd eqbrtrrd syl3anc wn sylc lenltd pm2.65i )
          AHIUAZFIUAZUBUCZAUUMUDUULUUKUEUFZUBUCZAUUOUDUUNFHUEUFZUGUFZUBUCZAHUHI
          UIUFZUAZUUTUEUFZUDUUQUBAUUTAUUTAUUSUJZUHHUUSAJUHIUKJUHULUVBUHUUSUKKLJ
          IUMUPOUNZUOUQAUVAUUQUBUCZUUQUUTUUTURUFUBUCZAUUQUUTUEUFZUSUAZUUTUBUCZU
          VDUVEUTAFJHVAVBZVCZCVDZHVEZUVKHUEUFZUSUAZGUBUCZUTZUVKIUAZUUKUEUFZUVMU
          GUFZUUTUEUFZUSUAZUUTUBUCZVFZCUVIVGFHVEZUUPUSUAZGUBUCZUTZUVHAFJVCUWDUV
          JAHEVHUFZJFAUWHDEVHUFZJADVIVCZDHVKUCZUWHUWIULAUWJEVIVCZAHUWIVCZUWIVJV
          EUWJUWLUTZMUWIHVLUWNUWIVJDEVMVNVOZVPZADHUBUCZUWKAUWQHEUBUCZAUWMUWQUWR
          UTMHDEVQVRZVPAUWJHVIVCZUWQUWKVFUWPAHAUWIUHHDEWBMVSZVTZDHWAUPWCDHEWDUP
          NWEAFUWHVCZFUHVCZHFUBUCZFEUBUCZAFHEHGURUFZVKUCZEUXGWFZURUFZWGUGUFZUHT
          AUXJAHUXIUXAAUXIVIVCUXGUHVCZWNUXIUBUCZUXIUXGVKUCZUXIUHVCZAUXHEUXGVIAU
          WJUWLUWOWHZAUXGAHGUXAAGRWIZWJZVTZWKZUXRAWNEUBUCZWNUXGUBUCZUXMAWNHEWNV
          IVCAWLWMUXBUXPAHUHVCZWNHUBUCUXAHWOVRAUWQUWRUWSWHZWPAUXLUYBUXRUXGWOVRU
          XHUYAUYBUXMEUXGEUXIWNUBXCUXGUXIWNUBXCWQUPAUWLUXGVIVCZUXNUXPUXSEUXGWRU
          PZUXIUXGXDWSZWJWTXAZAHUXKFUBAHUXIUBUCZHUXKUBUCZAUWRHUXGUBUCZUYIUYDAHG
          UXARXBUXHUWRUYKUYIEUXGEUXIHUBXCUXGUXIHUBXCWQUPZAUYCUXOUYIUYJXEUXAUYGH
          UXIXFUPXGTXHZAFUXIEAFUYHVTUXTUXPAFUXKUXIUBTAUYIUXKUXIUBUCZUYLAUYCUXOU
          YIUYNXEUXAUYGHUXIXIUPXGXJZAUWLUYEUXIEVKUCUXPUXSEUXGXKUPXLAUWTUWLUXCUX
          DUXEUXFXMXEUXBUXPHEFXNUPXOZXPZAHFUXAUYMXQZFJHXRXSSAUWDUWFUYRAUWEUUPGU
          BAHFUXAUYHAHFUXAUYHUYMYBXTAUUPGUBUCFUXGUBUCAFUXIUXGUYHUYGUXRUYOUYFYAA
          FHGUYHUXAUXQYCYDYEYFUWCUWGUVHVFCFUVIUVKFYLZUVPUWGUWBUVHUYSUVLUWDUVOUW
          FUVKFHYGUYSUVNUWEGUBUYSUVMUUPUSUVKFHUEYHZYIYJYKUYSUWAUVGUUTUBUYSUVTUV
          FUSUYSUVSUUQUUTUEUYSUVRUUNUVMUUPUGUYSUVQUULUUKUEUVKFIYMYNUYTYOYNYIYJY
          PYQYRAUUQUUTUUTAUUNUUPAUULUUKAJUHFIKUYQUNZAJUHHIKAUWIJHNMXPUNZYSZAUUP
          AFHUYHUXAYSZAUXEUDUUPUBUCZUYMAHFUXAUYHYTXGZUUBUUCUVCUVCUUDXGVPUUEAUUN
          UHVCUUPUHVCVUEUUOUURXEVUCVUDVUFUUNUUPUUAUUFYDAUUKUULVUBVUAYTYDAUULUUK
          VKUCZUUMUUGAUXCBVDZIUAZUUKVKUCZBUWHVGVUGUYPPVUJVUGBFUWHVUHFYLVUIUULUU
          KVKVUHFIYMYJYQUUHAUULUUKVUAVUBUUIXGUUJ $.
      $}

      $d x z ph $.
      $( One-sided version of ~ dvferm .  A point ` U ` which is the local
         maximum of its right neighborhood has derivative at most zero.
         (Contributed by Mario Carneiro, 24-Feb-2015.)  (Proof shortened by
         Mario Carneiro, 28-Dec-2016.) $)
      dvferm1 $p |- ( ph -> ( ( RR _D F ) ` U ) <_ 0 ) $=
        ( cr co cfv wbr cmin wcel cc vz vu vx cdv cc0 cle clt wn cv wne cabs wa
        cdiv wi csn cdif wral crp wrex cdm wf wss dvfre syl2anc ffvelrnd anim1i
        cmpt elrp sylibr climc ccnfld ctopn crest cnt wfun wb dvf ffun funfvbrb
        mp2b sylib eqid ax-resscn a1i fss sylancl eldv mpbid simprd adantr cioo
        syl6ss sseldd dvlem fmptd ssdifssd ellimc3 wceq fveq2 oveq1d oveq1 ovex
        oveq12d fvmpt fveq2d breqan12rd imbi2d ralbidva rexbidv rspcv caddc cif
        id sylc c2 ad3antrrr simplr simpr dvferm1lem imnani nrexdv pm2.65da 0re
        simpllr lenlt mpbird ) AENFUDOZPZUEUFQZUEYHUGQZUHZAYJUAUIZEUJYLEROZUKPU
        BUIZUGQULZYLFPZEFPZROZYMUMOZYHROZUKPZYHUGQZUNZUAGEUOZUPZUQZUBURUSZAYJUL
        ZYHURSZYOYLUCUUEUCUIZFPZYQROZUUJEROZUMOZVGZPZYHROZUKPZBUIZUGQZUNZUAUUEU
        QZUBURUSZBURUQZUUGUUHYHNSZYJULUUIAUVEYJAYGUTZNEYGAGNFVAZGNVBZUVFNYGVAHI
        GFVCVDLVEZVFYHVHVIUUHYHTSZUVDUUHYHUUOEVJOSZUVJUVDULAUVKYJAEGVKVLPZNVMOZ
        VNPPSZUVKAEYHYGQZUVNUVKULAEUVFSZUVOLUVFTYGVAYGVOUVPUVOVPFVQUVFTYGVREYGV
        SVTWAAUCGEYHNUVMFUUOUVLUVMWBUVLWBUUOWBZNTVBZAWCWDAUVGUVRGTFVAHWCGNTFWEW
        FZIWGWHWIWJUUHBUBUAUUEEYHUUOAUUETUUOVAYJAUCUUEUUNTUUOAUUJEGFUVSAGNTIWCW
        LZACDWKOZGEKJWMZWNUVQWOWJUUHGTUUDAGTVBYJUVTWJWPAETSYJAGTEUVTUWBWMWJWQWH
        WIUVCUUGBYHURUUSYHWRZUVBUUFUBURUWCUVAUUCUAUUEUWCYLUUESZULUUTUUBYOUWDUWC
        UURUUAUUSYHUGUWDUUQYTUKUWDUUPYSYHRUCYLUUNYSUUEUUOUUJYLWRZUULYRUUMYMUMUW
        EUUKYPYQRUUJYLFWSWTUUJYLERXAXCUVQYRYMUMXBXDWTXEUWCXMXFXGXHXIXJXNUUHUUFU
        BURUUHYNURSZULZUUFUWGUUFULBUACDEDEYNXKOZUFQDUWHXLXKOXOUMOZYNEFGAUVGYJUW
        FUUFHXPAUVHYJUWFUUFIXPAEUWASYJUWFUUFJXPAUWAGVBYJUWFUUFKXPAUVPYJUWFUUFLX
        PAUUSFPYQUFQBEDWKOUQYJUWFUUFMXPAYJUWFUUFYDUUHUWFUUFXQUWGUUFXRUWIWBXSXTY
        AYBAUVEUENSYIYKVPUVIYCYHUEYEWFYF $.
    $}

    ${
      dvferm2.r $e |- ( ph -> A. y e. ( A (,) U ) ( F ` y ) <_ ( F ` U ) ) $.
      ${
        dvferm2.z $e |- ( ph -> ( ( RR _D F ) ` U ) < 0 ) $.
        dvferm2.t $e |- ( ph -> T e. RR+ ) $.
        dvferm2.l $e |- ( ph -> A. z e. ( X \ { U } )
          ( ( z =/= U /\ ( abs ` ( z - U ) ) < T ) ->
            ( abs ` ( ( ( ( F ` z ) - ( F ` U ) ) / ( z - U ) ) -
              ( ( RR _D F ) ` U ) ) ) < -u ( ( RR _D F ) ` U ) ) ) $.
        dvferm2.x $e |- S =
          ( ( if ( A <_ ( U - T ) , ( U - T ) , A ) + U ) / 2 ) $.
        $( Lemma for ~ dvferm .  (Contributed by Mario Carneiro,
           24-Feb-2015.) $)
        dvferm2lem $p |- -. ph $=
          ( cfv clt wbr cc0 cmin co cneg cdiv cr cdv caddc cabs wa cdif wcel cv
          csn wne wi wral cioo cxr cle wss ne0i ndmioo necon1ai simprd eliooord
          c0 3syl syl ioossre sseldi rexrd xrltle syl2anc mpd iooss2 sstrd cmnf
          cif c2 mnfxr a1i rpred resubcld simpld ifcld mnflt xrltletrd ltsubrpd
          xrmax2 breq1 ifboth xrre2 syl32anc readdcld rehalfcld syl5eqel xrmax1
          avglt1 mpbid syl6breqr xrlelttrd avglt2 syl5eqbr w3a elioo2 mpbir3and
          wb sseldd ltned eldifsn sylanbrc ltled abssuble0d lelttrd eqbrtrd jca
          ltsub23d wceq neeq1 oveq1 fveq2d breq1d anbi12d fveq2 oveq12d imbi12d
          oveq1d rspcv syl3c ffvelrnd recnd wf renegcld breqtrd posdifd mpbird
          redivcld dvfre absdifltd negidd lt0neg1d divneg2d negsubdi2d breqtrrd
          subne0d cdm gt0div syl3anc wn sylc lenltd pm2.65i ) AHIUAZFIUAZUBUCZA
          UUSUDUURUUQUEUFZUBUCZAUVAUDUUTFHUEUFZUGZUHUFZUBUCZAUDUUTUVBUHUFZUGZUV
          DUBAUVFUDUBUCUDUVGUBUCAUVFHUIIUJUFZUAZUVIUGZUKUFZUDUBAUVIUVJUEUFUVFUB
          UCZUVFUVKUBUCZAUVFUVIUEUFZULUAZUVJUBUCZUVLUVMUMAFJHUQUNZUOZCUPZHURZUV
          SHUEUFZULUAZGUBUCZUMZUVSIUAZUUQUEUFZUWAUHUFZUVIUEUFZULUAZUVJUBUCZUSZC
          UVQUTFHURZUVBULUAZGUBUCZUMZUVPAFJUOUWLUVRADHVAUFZJFAUWPDEVAUFZJAEVBUO
          ZHEVCUCZUWPUWQVDADVBUOZUWRAHUWQUOZUWQVJURUWTUWRUMZMUWQHVEUXBUWQVJDEVF
          VGVKZVHZAHEUBUCZUWSADHUBUCZUXEAUXAUXFUXEUMMHDEVIVLZVHAHVBUOZUWRUXEUWS
          USAHAUWQUIHDEVMMVNZVOZUXDHEVPVQVRDHEVSVQNVTAFUWPUOZFUIUOZDFUBUCZFHUBU
          CZAFDHGUEUFZVCUCZUXODWBZHUKUFZWCUHUFZUITAUXRAUXQHAWAVBUOZUXQVBUOUXHWA
          UXQUBUCUXQHUBUCZUXQUIUOZUXTAWDWEZAUXPUXODVBAUXOAHGUXIAGRWFZWGZVOZAUWT
          UWRUXCWHZWIZUXJAWAUXOUXQUYCUYFUYHAUXOUIUOWAUXOUBUCUYEUXOWJVLAUWTUXOVB
          UOZUXOUXQVCUCUYGUYFDUXOWMVQZWKAUXOHUBUCZUXFUYAAHGUXIRWLAUXFUXEUXGWHUX
          PUYKUXFUYAUXODUXOUXQHUBWNDUXQHUBWNWOVQZWAUXQHWPWQZUXIWRWSWTZADUXQFUYG
          UYHAFUYNVOAUWTUYIDUXQVCUCUYGUYFDUXOXAVQAUXQUXSFUBAUYAUXQUXSUBUCZUYLAU
          YBHUIUOZUYAUYOXKUYMUXIUXQHXBVQXCTXDZXEAFUXSHUBTAUYAUXSHUBUCZUYLAUYBUY
          PUYAUYRXKUYMUXIUXQHXFVQXCXGZAUWTUXHUXKUXLUXMUXNXHXKUYGUXJDHFXIVQXJZXL
          ZAFHUYNUYSXMZFJHXNXOSAUWLUWNVUBAUWMHFUEUFZGUBAFHUYNUXIAFHUYNUXIUYSXPX
          QAHGFUXIUYDUYNAUXOUXQFUYEUYMUYNUYJUYQXRYAXSXTUWKUWOUVPUSCFUVQUVSFYBZU
          WDUWOUWJUVPVUDUVTUWLUWCUWNUVSFHYCVUDUWBUWMGUBVUDUWAUVBULUVSFHUEYDZYEY
          FYGVUDUWIUVOUVJUBVUDUWHUVNULVUDUWGUVFUVIUEVUDUWFUUTUWAUVBUHVUDUWEUURU
          UQUEUVSFIYHYKVUEYIYKYEYFYJYLYMAUVFUVIUVJAUUTUVBAUURUUQAJUIFIKVUAYNZAJ
          UIHIKAUWQJHNMXLYNZWGZAFHUYNUXIWGZAFHAFUYNYOZAHUXIYOZVUBUUIZUUAZAUVHUU
          JZUIHUVHAJUIIYPJUIVDVUNUIUVHYPKLJIUUBVQOYNZAUVIVUOYQUUCXCVHAUVIAUVIVU
          OYOUUDYRAUVFVUMUUEXCAUUTUVBAUUTVUHYOAUVBVUIYOVULUUFYRAUUTUIUOUVCUIUOU
          DUVCUBUCUVAUVEXKVUHAUVBVUIYQAUDVUCUVCUBAUXNUDVUCUBUCUYSAFHUYNUXIYSXCA
          FHVUJVUKUUGUUHUUTUVCUUKUULYTAUUQUURVUGVUFYSYTAUURUUQVCUCZUUSUUMAUXKBU
          PZIUAZUUQVCUCZBUWPUTVUPUYTPVUSVUPBFUWPVUQFYBVURUURUUQVCVUQFIYHYFYLUUN
          AUURUUQVUFVUGUUOXCUUP $.
      $}

      $d x z ph $.
      $( One-sided version of ~ dvferm .  A point ` U ` which is the local
         maximum of its left neighborhood has derivative at least zero.
         (Contributed by Mario Carneiro, 24-Feb-2015.)  (Proof shortened by
         Mario Carneiro, 28-Dec-2016.) $)
      dvferm2 $p |- ( ph -> 0 <_ ( ( RR _D F ) ` U ) ) $=
        ( cr co cfv wbr cmin wcel cc vz vu vx cc0 cdv cle clt wn cv wne cabs wa
        cdiv cneg wi csn cdif wral crp wrex cmpt cdm wss dvfre syl2anc ffvelrnd
        adantr renegcld lt0neg1d biimpa elrpd climc ccnfld ctopn crest cnt wfun
        wf wb dvf ffun funfvbrb mp2b sylib eqid ax-resscn a1i fss sylancl mpbid
        eldv simprd syl6ss cioo sseldd dvlem fmptd ssdifssd ellimc3 wceq oveq1d
        fveq2 oveq1 oveq12d ovex fvmpt fveq2d breqan12rd ralbidva rexbidv rspcv
        id imbi2d cif caddc c2 ad3antrrr simpllr simplr simpr dvferm2lem imnani
        sylc nrexdv pm2.65da 0re lenlt sylancr mpbird ) AUDENFUEOZPZUFQZYKUDUGQ
        ZUHZAYMUAUIZEUJYOEROZUKPUBUIZUGQULZYOFPZEFPZROZYPUMOZYKROZUKPZYKUNZUGQZ
        UOZUAGEUPZUQZURZUBUSUTZAYMULZUUEUSSYRYOUCUUIUCUIZFPZYTROZUUMEROZUMOZVAZ
        PZYKROZUKPZBUIZUGQZUOZUAUUIURZUBUSUTZBUSURZUUKUULUUEUULYKAYKNSZYMAYJVBZ
        NEYJAGNFVRZGNVCZUVINYJVRHIGFVDVELVFZVGVHAYMUDUUEUGQAYKUVLVIVJVKUULYKTSZ
        UVGUULYKUUREVLOSZUVMUVGULAUVNYMAEGVMVNPZNVOOZVPPPSZUVNAEYKYJQZUVQUVNULA
        EUVISZUVRLUVITYJVRYJVQUVSUVRVSFVTUVITYJWAEYJWBWCWDAUCGEYKNUVPFUURUVOUVP
        WEUVOWEUURWEZNTVCZAWFWGAUVJUWAGTFVRHWFGNTFWHWIZIWKWJWLVGUULBUBUAUUIEYKU
        URAUUITUURVRYMAUCUUIUUQTUURAUUMEGFUWBAGNTIWFWMZACDWNOZGEKJWOZWPUVTWQVGU
        ULGTUUHAGTVCYMUWCVGWRAETSYMAGTEUWCUWEWOVGWSWJWLUVFUUKBUUEUSUVBUUEWTZUVE
        UUJUBUSUWFUVDUUGUAUUIUWFYOUUISZULUVCUUFYRUWGUWFUVAUUDUVBUUEUGUWGUUTUUCU
        KUWGUUSUUBYKRUCYOUUQUUBUUIUURUUMYOWTZUUOUUAUUPYPUMUWHUUNYSYTRUUMYOFXBXA
        UUMYOERXCXDUVTUUAYPUMXEXFXAXGUWFXLXHXMXIXJXKYCUULUUJUBUSUULYQUSSZULZUUJ
        UWJUUJULBUACDCEYQROZUFQUWKCXNEXOOXPUMOZYQEFGAUVJYMUWIUUJHXQAUVKYMUWIUUJ
        IXQAEUWDSYMUWIUUJJXQAUWDGVCYMUWIUUJKXQAUVSYMUWIUUJLXQAUVBFPYTUFQBCEWNOU
        RYMUWIUUJMXQAYMUWIUUJXRUULUWIUUJXSUWJUUJXTUWLWEYAYBYDYEAUDNSUVHYLYNVSYF
        UVLUDYKYGYHYI $.
    $}

    dvferm.r $e |- ( ph -> A. y e. ( A (,) B ) ( F ` y ) <_ ( F ` U ) ) $.
    $( Fermat's theorem on stationary points.  A point ` U ` which is a local
       maximum has derivative equal to zero.  (Contributed by Mario Carneiro,
       1-Sep-2014.) $)
    dvferm $p |- ( ph -> ( ( RR _D F ) ` U ) = 0 ) $=
      ( cr co cc0 cle wbr wcel syl2anc cdv cfv wceq cioo wss cv wral cxr c0 wne
      wa ne0i ndmioo necon1ai 3syl simpld clt eliooord syl ioossre sseldi rexrd
      wi xrltle mpd iooss1 ssralv dvferm1 simprd iooss2 dvferm2 wb cdm wf dvfre
      sylc ffvelrnd 0re letri3 sylancl mpbir2and ) AENFUAOZUBZPUCZWCPQRZPWCQRZA
      BCDEFGHIJKLAEDUDOZCDUDOZUEZBUFFUBEFUBQRZBWHUGZWJBWGUGACUHSZCEQRZWIAWLDUHS
      ZAEWHSZWHUIUJWLWNUKZJWHEULWPWHUICDUMUNUOZUPZACEUQRZWMAWSEDUQRZAWOWSWTUKJE
      CDURUSZUPAWLEUHSZWSWMVCWRAEAWHNECDUTJVAVBZCEVDTVECEDVFTMWJBWGWHVGVPVHABCD
      EFGHIJKLACEUDOZWHUEZWKWJBXDUGAWNEDQRZXEAWLWNWQVIZAWTXFAWSWTXAVIAXBWNWTXFV
      CXCXGEDVDTVECEDVJTMWJBXDWHVGVPVKAWCNSPNSWDWEWFUKVLAWBVMZNEWBAGNFVNGNUEXHN
      WBVNHIGFVOTLVQVRWCPVSVTWA $.
  $}

  ${
    $d t u v x y A $.  $d t u v x y ph $.  $d t u v x y B $.  $d t u v x y F $.
    $d u v x y U $.
    rolle.a $e |- ( ph -> A e. RR ) $.
    rolle.b $e |- ( ph -> B e. RR ) $.
    rolle.lt $e |- ( ph -> A < B ) $.
    rolle.f $e |- ( ph -> F e. ( ( A [,] B ) -cn-> RR ) ) $.
    rolle.d $e |- ( ph -> dom ( RR _D F ) = ( A (,) B ) ) $.
    ${
      rolle.r $e |- ( ph -> A. y e. ( A [,] B ) ( F ` y ) <_ ( F ` U ) ) $.
      rolle.u $e |- ( ph -> U e. ( A [,] B ) ) $.
      rolle.n $e |- ( ph -> -. U e. { A , B } ) $.
      $( Lemma for ~ rolle .  (Contributed by Mario Carneiro, 1-Sep-2014.) $)
      rollelem $p |- ( ph -> E. x e. ( A (,) B ) ( ( RR _D F ) ` x ) = 0 ) $=
        ( co wcel cr cfv wceq cioo cdv cc0 cv wrex cpr cun wo cxr cle wbr rexrd
        cicc ltled prunioo syl3anc eleqtrrd elun sylib ord mt3d ccncf cncff syl
        wf wss iccssre syl2anc ioossicc a1i cdm wral ssralv dvferm fveq2 eqeq1d
        sylc rspcev ) AFDEUAPZQZFRGUBPZSZUCTZBUDZWASZUCTZBVSUEAVTFDEUFZQZOAVTWH
        AFVSWGUGZQVTWHUHAFDEUMPZWINADUIQEUIQDEUJUKWIWJTADHULAEIULADEHIJUNDEUOUP
        UQFVSWGURUSUTVAZACDEFGWJAGWJRVBPQWJRGVEKWJRGVCVDADRQERQWJRVFHIDEVGVHWKV
        SWJVFZADEVIVJZAFVSWAVKWKLUQAWLCUDGSFGSUJUKZCWJVLWNCVSVLWMMWNCVSWJVMVQVN
        WFWCBFVSWDFTWEWBUCWDFWAVOVPVRVH $.
    $}

    rolle.e $e |- ( ph -> ( F ` A ) = ( F ` B ) ) $.
    $( Rolle's theorem.  If ` F ` is a real continuous function on
       ` [ A , B ] ` which is differentiable on ` ( A , B ) ` , and
       ` F ( A ) = F ( B ) ` , then there is some ` x e. ( A , B ) ` such that
       ` ( RR _D F ) `` x = 0 ` .  (Contributed by Mario Carneiro,
       1-Sep-2014.) $)
    rolle $p |- ( ph -> E. x e. ( A (,) B ) ( ( RR _D F ) ` x ) = 0 ) $=
      ( vy vu cfv wa cr wceq wcel ad2antrr cc vv vt cv cle wbr cicc co wral cdv
      wrex cc0 cioo ltled evthicc reeanv sylibr r19.26 cpr clt ccncf cdm ralimi
      wn simpl fveq2 breq1d cbvralv sylib ad2antrl simplrl simprr rollelem expr
      weq cneg cmpt wf cncff syl ffvelrnda renegcld eqid fmptd wss wb ax-resscn
      cncfss mp2an sseldi negfcncf cncffvrn sylancr mpbird crn ctg ccnfld ctopn
      ssid a1i iccssre syl2anc sylancl negcld tgioo2 iccntr dvmptntr reelprrecn
      fss cnt cvv ioossicc sseli sylan2 fvexd feqmptd oveq2d dvf feq2d 3eqtr3rd
      mpbii dvmptneg negex simplrr ffvelrnd adantr negeqd fvmpt bitr4d sylan9eq
      imp fveq1d eqeq1d wi syl5ibrcom cxr rexrd impancom wfn ex sylbird breq12d
      eqtrd dmeqd dmmptg mprg syl6eq simpr lenegd adantl syl5ib ralimdva eleq2d
      adantrr biimpar ffvelrni negeq0d rexbidva mpbid wo vex elpr eqcomd syl5bi
      eleq1 imbi12d imbi2d chvarv anim12d lbicc2 syl3anc letri3d breq2 bi2anan9
      breq1 bibi2d ralbidva csn cxp ffn fnconstg eqfnfv fvconst2 eqeq2d ralbiia
      jaod fvex syl6bb fconstmpt eqeq2i biimpi recnd dvmptc dvmptres2 sylan9eqr
      0cnd eqidd c0ex ralrimiva c0 wne ioon0 r19.2z sylan syldan ecased syl5bir
      syld rexlimdvva mpd ) ALUCZENZMUCZENZUDUEZLCDUFUGZUHZUAUCZENZUXKUDUEZLUXO
      UHZOZUAUXOUJMUXOUJZBUCZPEUIUGZNZUKQZBCDULUGZUJZAUXPMUXOUJUXTUAUXOUJOUYBAM
      LUALCDEFGACDFGHUMZIUNUXPUXTMUAUXOUXOUOUPAUYAUYHMUAUXOUXOUYAUXNUXSOZLUXOUH
      ZAUXLUXORZUXQUXORZOZOZUYHUXNUXSLUXOUQUYOUYKUYHUYOUYKOZUXLCDURZRZUXQUYQRZU
      YHUYOUYKUYRVCZUYHUYOUYKUYTOZOBUBCDUXLEACPRZUYNVUAFSADPRZUYNVUAGSACDUSUEZU
      YNVUAHSAEUXOPUTUGZRZUYNVUAISAUYDVAZUYGQUYNVUAJSUYKUBUCZENZUXMUDUEZUBUXOUH
      ZUYOUYTUYKUXPVUKUYJUXNLUXOUXNUXSVDVBUXNVUJLUBUXOLUBVNZUXKVUIUXMUDUXJVUHEV
      EVFVGVHVIAUYLUYMVUAVJUYOUYKUYTVKVLVMUYOUYKUYSVCZUYHUYOUYKVUMOZOZUYCPMUXOU
      XMVOZVPZUIUGZNZUKQZBUYGUJZUYHVUOBUBCDUXQVUQAVUBUYNVUNFSAVUCUYNVUNGSAVUDUY
      NVUNHSAVUQVUERZUYNVUNAVVBUXOPVUQVQZAMUXOVUPPVUQAUYLOZUXMAUXOPUXLEAVUFUXOP
      EVQZIUXOPEVRVSZVTWAVUQWBZWCAPTWDZVUQUXOTUTUGZRZVVBVVCWEWFAEVVIRVVJAVUEVVI
      EVVHTTWDVUEVVIWDWFTWRUXOPTWGWHIWIMUXOEVUQVVGWJVSUXOTPVUQWKWLWMSAVURVAZUYG
      QUYNVUNAVVKMUYGUXLUYDNZVOZVPZVAZUYGAVURVVNAVURPMUYGVUPVPUIUGVVNAMVUPPULWN
      WONZWPWQNZUXOUYGVVHAWFWSZAVUBVUCUXOPWDFGCDWTXAZVVDUXMAUXOTUXLEAVVEVVHUXOT
      EVQVVFWFUXOPTEXHXBVTZXCVVQVVQWBZXDZVWAAVUBVUCUXOVVPXINNUYGQFGCDXEXAZXFAMU
      XMVVLPXJUYGPPTURRAXGWSZUXLUYGRZAUYLUXMTRUYGUXOUXLCDXKXLVVTXMAVWEOUXLUYDXN
      AUYDPMUXOUXMVPZUIUGMUYGVVLVPPMUYGUXMVPUIUGAEVWFPUIAMUXOPEVVFXOXPAMUYGTUYD
      AVUGTUYDVQUYGTUYDVQEXQZAVUGUYGTUYDJXRXTXOAMUXMPVVPVVQUXOUYGVVRVVSVVTVWBVW
      AVWCXFXSYAUUBZUUCVVMXJRZVVOUYGQMUYGMUYGVVMXJUUDVWIVWEVVLYBWSUUEUUFSUYOUYK
      VUHVUQNZUXQVUQNZUDUEZUBUXOUHZVUMUYPUXJVUQNZVWKUDUEZLUXOUHZVWMUYOUYKVWPUYO
      UYJVWOLUXOUYJUXSUYOUXJUXORZOZVWOUXNUXSUUGVWRUXSUXKVOZUXRVOZUDUEVWOVWRUXRU
      XKVWRUXOPUXQEAVVEUYNVWQVVFSAUYLUYMVWQYCZYDUYOUXOPUXJEAVVEUYNVVFYEVTZUUHVW
      RVWNVWSVWKVWTUDVWQVWNVWSQUYOMUXJVUPVWSUXOVUQMLVNUXMUXKUXLUXJEVEYFVVGUXKYB
      YGUUIVWRUYMVWKVWTQVXAMUXQVUPVWTUXOVUQMUAVNZUXMUXRUXLUXQEVEZYFVVGUXRYBYGVS
      UUAYHUUJUUKYJVWOVWLLUBUXOVULVWNVWJVWKUDUXJVUHVUQVEVFVGVHUUMAUYLUYMVUNYCUY
      OUYKVUMVKVLAVVAUYHWEUYNVUNAVUTUYFBUYGAUYCUYGRZOZVUTUYEVOZUKQUYFVXFVUSVXGU
      KAVXEVUSUYCVVNNVXGAUYCVURVVNVWHYKMUYCVVMVXGUYGVVNMBVNZVVLUYEUXLUYCUYDVEYF
      VVNWBUYEYBYGYIYLVXFUYEVXFUYCVUGRZUYETRAVXIVXEAVUGUYGUYCJUULUUNVUGTUYCUYDV
      WGUUOVSUUPYHUUQSUURVMUYPUYRUYSOZUXMCENZQZUXRVXKQZOZUYHAVXJVXNYMUYNUYKAUYR
      VXLUYSVXMUYRUXLCQZUXLDQZUUSAVXLUXLCDMUUTUVAAVXOVXLVXPVXOVXLYMAUXLCEVEWSAV
      XLVXPDENZVXKQAVXKVXQKUVBVXPUXMVXQVXKUXLDEVEYLYNUWEUVCZAUYRVXLYMZYMAUYSVXM
      YMZYMMUAVXCVXSVXTAVXCUYRUYSVXLVXMUXLUXQUYQUVDVXCUXMUXRVXKVXDYLUVEUVFVXRUV
      GUVHSUYOVXNUYKUYHUYOVXNOZUYKUXKVXKQZLUXOUHZUYHVYAVYBUYJLUXOVYAVWQVYBUYJWE
      ZUYOVWQVXNVYDVWRVYDVXNVYBUXKVXKUDUEZVXKUXKUDUEZOZWEVWRUXKVXKVXBAVXKPRZUYN
      VWQAUXOPCEVVFACYORZDYORZCDUDUECUXORACFYPZADGYPZUYICDUVIUVJYDZSUVKVXNUYJVY
      GVYBVXLUXNVYEVXMUXSVYFUXMVXKUXKUDUVLUXRVXKUXKUDUVNUVMUVOYNYQYJUVPAVYCUYHY
      MUYNVXNAVYCEUXOVXKUVQUVRZQZUYHAVYOUXKUXJVYNNZQZLUXOUHZVYCAEUXOYRZVYNUXOYR
      ZVYOVYRWEAVVEVYSVVFUXOPEUVSVSAVYHVYTVYMUXOVXKPUVTVSLUXOEVYNUWAXAVYQVYBLUX
      OVWQVYPVXKUXKUXOVXKUXJCEUWFUWBUWCUWDUWGAVYOUYHAVYOUYFBUYGUHZUYHAVYOOZUYFB
      UYGWUBVXEUYEUYCMUYGUKVPZNUKWUBUYCUYDWUCVYOAUYDPMUXOVXKVPZUIUGWUCVYOEWUDPU
      IVYOEWUDQVYNWUDEMUXOVXKUWHUWIUWJXPAMVXKUKPVVPVVQTPUYGUXOVWDAVXKTRUXLPRZAV
      XKVYMUWKZYEAWUEOUWOAMVXKPVWDWUFUWLVVSVWBVWAVWCUWMUWNYKMUYCUKUKUYGWUCVXHUK
      UWPWUCWBUWQYGYIUWRAUYGUWSUWTZWUAUYHAWUGVUDHAVYIVYJWUGVUDWEVYKVYLCDUXAXAWM
      UYFBUYGUXBUXCUXDYSYTSYTYQUXGUXEYSUXFUXHUXI $.
  $}

  ${
    $d x z A $.  $d x z B $.  $d x z F $.  $d x z G $.  $d x z ph $.
    cmvth.a $e |- ( ph -> A e. RR ) $.
    cmvth.b $e |- ( ph -> B e. RR ) $.
    cmvth.lt $e |- ( ph -> A < B ) $.
    cmvth.f $e |- ( ph -> F e. ( ( A [,] B ) -cn-> RR ) ) $.
    cmvth.g $e |- ( ph -> G e. ( ( A [,] B ) -cn-> RR ) ) $.
    cmvth.df $e |- ( ph -> dom ( RR _D F ) = ( A (,) B ) ) $.
    cmvth.dg $e |- ( ph -> dom ( RR _D G ) = ( A (,) B ) ) $.
    $( Cauchy's Mean Value Theorem.  If ` F , G ` are real continuous functions
       on ` [ A , B ] ` differentiable on ` ( A , B ) ` , then there is some
       ` x e. ( A , B ) ` such that ` F ` ' ` ( x ) / G ` ' ` ( x ) = `
       ` ( F ( A ) - F ( B ) ) / ( G ( A ) - G ( B ) ) ` .  (We express the
       condition without division, so that we need no nonzero constraints.)
       (Contributed by Mario Carneiro, 29-Dec-2016.) $)
    cmvth $p |- ( ph -> E. x e. ( A (,) B )
      ( ( ( F ` B ) - ( F ` A ) ) x. ( ( RR _D G ) ` x ) ) =
      ( ( ( G ` B ) - ( G ` A ) ) x. ( ( RR _D F ) ` x ) ) ) $=
      ( vz cr co cmin cmul wcel cc cicc cfv cmpt cdv cc0 wceq cioo ccnfld ctopn
      cv wrex subcn mulcn wss ccncf wf cncff syl cxr cle wbr rexrd ltled ubicc2
      eqid syl3anc ffvelrnd lbicc2 resubcld iccssre syl2anc syl6ss a1i cncfmptc
      ax-resscn feqmptd eqeltrrd remulcl cncfmpt2ss resubcl cdm wa recnd adantr
      crn ctg ffvelrnda mulcld remulcld subcld tgioo2 cnt iccntr cvv reelprrecn
      dvmptntr cpr ioossicc sseli sylan2 ovex fvexd oveq2d feq2d mpbii 3eqtr3rd
      dvf dvmptcmul dvmptsub eqtrd dmeqd dmmpti syl6eq nnncan2d nnncan1d eqtr4d
      subdird mulcomd subdid oveq12d 3eqtr4d fveq2 rolle fveq1d sylan9eq eqeq1d
      fvmpt3i subeq0ad bitrd rexbidva mpbid ) ABUJZONCDUAPZDEUBZCEUBZQPZNUJZFUB
      ZRPZDFUBZCFUBZQPZYQEUBZRPZQPZUCZUDPZUBZUEUFZBCDUGPZUKYPYLOFUDPZUBZRPZUUBY
      LOEUDPZUBZRPZUFZBUUJUKABCDUUFGHIANYSUUDOQUHUIUBZYMUURVEZUURUUSULANYPYRORU
      URYMUUSUURUUSUMZAYPOSYMTUNZOTUNZNYMYPUCYMOUOPZSAYNYOAYMODEAEUVCSYMOEUPJYM
      OEUQURZACUSSZDUSSZCDUTVAZDYMSZACGVBZADHVBZACDGHIVCZCDVDVFZVGZAYMOCEUVDAUV
      EUVFUVGCYMSZUVIUVJUVKCDVHVFZVGZVIZAYMOTACOSZDOSZYMOUNGHCDVJVKZVOVLZUVBAVO
      VMZNYPYMOVNVFAFNYMYRUCZUVCANYMOFAFUVCSYMOFUPKYMOFUQURZVPZKVQVOYPYRVRVSANU
      UBUUCORUURYMUUSUUTAUUBOSZUVAUVBNYMUUBUCUVCSAYTUUAAYMODFUWDUVLVGZAYMOCFUWD
      UVOVGZVIZUWAUWBNUUBYMOVNVFAENYMUUCUCZUVCANYMOEUVDVPZJVQVOUUBUUCVRVSVOYSUU
      DVTVSAUUGWANUUJYPYQUUKUBZRPZUUBYQUUNUBZRPZQPZUCZWAUUJAUUGUWQAUUGONUUJUUEU
      CUDPUWQANUUEOUGWEWFUBZUURYMUUJUWBUVTAYQYMSZWBZYSUUDUWTYPYRAYPTSZUWSAYPUVQ
      WCZWDUWTYRAYMOYQFUWDWGWCZWHZUWTUUDUWTUUBUUCAUWFUWSUWIWDAYMOYQEUVDWGZWIWCZ
      WJUURUUSWKZUUSAUVRUVSYMUWRWLUBUBUUJUFGHCDWMVKZWPANYSUWMUUDUWOOWNWNUUJOOTW
      QSAWOVMZYQUUJSZAUWSYSTSUUJYMYQCDWRWSZUXDWTUWMWNSAUXJWBZYPUWLRXAVMANYRUWLY
      POWNUUJUXIUXJAUWSYRTSUXKUXCWTUXLYQUUKXBAUUKOUWCUDPNUUJUWLUCONUUJYRUCUDPAF
      UWCOUDUWEXCANUUJTUUKAUUKWAZTUUKUPUUJTUUKUPFXGAUXMUUJTUUKMXDXEZVPANYROUWRU
      URYMUUJUWBUVTUXCUXGUUSUXHWPXFUXBXHUXJAUWSUUDTSUXKUXFWTUWOWNSUXLUUBUWNRXAV
      MANUUCUWNUUBOWNUUJUXIUXJAUWSUUCTSUXKUWTUUCUXEWCZWTUXLYQUUNXBAUUNOUWJUDPNU
      UJUWNUCONUUJUUCUCUDPAEUWJOUDUWKXCANUUJTUUNAUUNWAZTUUNUPUUJTUUNUPEXGAUXPUU
      JTUUNLXDXEZVPANUUCOUWRUURYMUUJUWBUVTUXOUXGUUSUXHWPXFAUUBUWIWCZXHXIXJZXKNU
      UJUWPUWQUWMUWOQXAZUWQVEZXLXMAYPUUARPZUUBYORPZQPZYPYTRPZUUBYNRPZQPZCUUFUBZ
      DUUFUBZAYNUUARPZYOUUARPZQPZYOYTRPZUYKQPZQPZYNYTRPZUYMQPZUYPUYJQPZQPZUYDUY
      GAUYOUYJUYMQPUYSAUYJUYMUYKAYNUUAAYNUVMWCZAUUAUWHWCZWHZAYOYTAYOUVPWCZAYTUW
      GWCZWHZAYOUUAVUCVUAWHXNAUYPUYMUYJAYNYTUYTVUDWHVUEVUBXOXPAUYBUYLUYCUYNQAYN
      YOUUAUYTVUCVUAXQAUYCYOUUBRPUYNAUUBYOUXRVUCXRAYOYTUUAVUCVUDVUAXSXJXTAUYEUY
      QUYFUYRQAYNYOYTUYTVUCVUDXQAUYFYNUUBRPUYRAUUBYNUXRUYTXRAYNYTUUAUYTVUDVUAXS
      XJXTYAAUVNUYHUYDUFUVONCUUEUYDYMUUFYQCUFZYSUYBUUDUYCQVUFYRUUAYPRYQCFYBXCVU
      FUUCYOUUBRYQCEYBXCXTUUFVEZYSUUDQXAZYGURAUVHUYIUYGUFUVLNDUUEUYGYMUUFYQDUFZ
      YSUYEUUDUYFQVUIYRYTYPRYQDFYBXCVUIUUCYNUUBRYQDEYBXCXTVUGVUHYGURYAYCAUUIUUQ
      BUUJAYLUUJSZWBZUUIUUMUUPQPZUEUFUUQVUKUUHVULUEAVUJUUHYLUWQUBVULAYLUUGUWQUX
      SYDNYLUWPVULUUJUWQYQYLUFZUWMUUMUWOUUPQVUMUWLUULYPRYQYLUUKYBXCVUMUWNUUOUUB
      RYQYLUUNYBXCXTUYAUXTYGYEYFVUKUUMUUPVUKYPUULAUXAVUJUXBWDAUUJTYLUUKUXNWGWHV
      UKUUBUUOAUUBTSVUJUXRWDAUUJTYLUUNUXQWGWHYHYIYJYK $.
  $}

  ${
    $d x z A $.  $d x z B $.  $d x z F $.  $d x z ph $.
    mvth.a $e |- ( ph -> A e. RR ) $.
    mvth.b $e |- ( ph -> B e. RR ) $.
    mvth.lt $e |- ( ph -> A < B ) $.
    mvth.f $e |- ( ph -> F e. ( ( A [,] B ) -cn-> RR ) ) $.
    mvth.d $e |- ( ph -> dom ( RR _D F ) = ( A (,) B ) ) $.
    $( The Mean Value Theorem.  If ` F ` is a real continuous function on
       ` [ A , B ] ` which is differentiable on ` ( A , B ) ` , then there is
       some ` x e. ( A , B ) ` such that ` ( RR _D F ) `` x ` is equal to the
       average slope over ` [ A , B ] ` .  This is Metamath 100 proof #75.
       (Contributed by Mario Carneiro, 1-Sep-2014.)  (Proof shortened by Mario
       Carneiro, 29-Dec-2016.) $)
    mvth $p |- ( ph -> E. x e. ( A (,) B ) ( ( RR _D F ) ` x ) =
      ( ( ( F ` B ) - ( F ` A ) ) / ( B - A ) ) ) $=
      ( vz cfv cmin co cr cmul wceq cc wcel c1 cid cicc cres cdv cioo wrex cdiv
      cmpt ccncf mptresid iccssre syl2anc ax-resscn cncfmptid sylancl syl5eqelr
      cv wss cdm oveq2i crn ctg ccnfld ctopn cpr reelprrecn wa simpr recnd 1red
      a1i dvmptid tgioo2 cnt iccntr dvmptres2 syl5eqr dmeqd dmmpti syl6eq cmvth
      eqid 1ex cxr cle wbr rexrd ltled ubicc2 syl3anc fvresi syl lbicc2 oveq12d
      adantr oveq1d fveq1d eqidd fvmpt3i sylan9eq oveq2d cncff ffvelrnd mulid1d
      wf resubcld eqtrd eqeq12d dvf feq2d mpbii ffvelrnda cc0 wne posdifd mpbid
      clt gt0ne0d divmuld bitr4d eqcom 3bitr4g rexbidva ) ADELZCELZMNZBUQZOUACD
      UBNZUCZUDNZLZPNZDYILZCYILZMNZYGOEUDNZLZPNZQZBCDUENZUFYQYFDCMNZUGNZQZBYTUF
      ABCDEYIFGHIAYIKYHKUQZUHZYHOUINZKYHUJZAYHOURZORURUUEUUFSACOSZDOSZUUHFGCDUK
      ULZUMKYHOUNUOUPJAYJUSKYTTUHZUSYTAYJUULAYJOUUEUDNUULUUEYIOUDUUGUTAKUUDTOUE
      VAVBLZVCVDLZOOYTYHOORVESAVFVKZAUUDOSZVGZUUDAUUPVHVIUUQVJAKOUUOVLUUKUUNUUN
      WBZVMUURAUUIUUJYHUUMVNLLYTQFGCDVOULVPVQZVRKYTTUULWCUULWBZVSVTWAAYSUUCBYTA
      YGYTSZVGZYRYLQZUUBYQQZYSUUCUVBUVCUUAYQPNZYFQUVDUVBYRUVEYLYFUVBYOUUAYQPAYO
      UUAQUVAAYMDYNCMADYHSZYMDQACWDSZDWDSZCDWEWFZUVFACFWGZADGWGZACDFGHWHZCDWIWJ
      ZYHDWKWLACYHSZYNCQAUVGUVHUVIUVNUVJUVKUVLCDWMWJZYHCWKWLWNWOWPUVBYLYFTPNYFU
      VBYKTYFPAUVAYKYGUULLTAYGYJUULUUSWQKYGTTYTUULUUDYGQTWRUUTWCWSWTXAUVBYFAYFR
      SUVAAYFAYDYEAYHODEAEUUFSYHOEXEIYHOEXBWLZUVMXCAYHOCEUVPUVOXCXFVIWOZXDXGXHU
      VBYFUUAYQUVQAUUARSUVAAUUAADCGFXFVIWOAYTRYGYPAYPUSZRYPXEYTRYPXEEXIAUVRYTRY
      PJXJXKXLAUUAXMXNUVAAUUAACDXQWFXMUUAXQWFHACDFGXOXPXRWOXSXTYLYRYAYQUUBYAYBY
      CXP $.
  $}

  ${
    $d a b x y A $.  $d a b x y B $.  $d a b x y ph $.  $d b X $.  $d a b Y $.
    $d a b x y F $.  $d a b x y M $.
    dvlip.a $e |- ( ph -> A e. RR ) $.
    dvlip.b $e |- ( ph -> B e. RR ) $.
    dvlip.f $e |- ( ph -> F e. ( ( A [,] B ) -cn-> CC ) ) $.
    dvlip.d $e |- ( ph -> dom ( RR _D F ) = ( A (,) B ) ) $.
    dvlip.m $e |- ( ph -> M e. RR ) $.
    dvlip.l $e |- ( ( ph /\ x e. ( A (,) B ) ) ->
      ( abs ` ( ( RR _D F ) ` x ) ) <_ M ) $.
    $( A function with derivative bounded by ` M ` is Lipschitz continuous with
       Lipschitz constant equal to ` M ` .  (Contributed by Mario Carneiro,
       3-Mar-2015.) $)
    dvlip $p |- ( ( ph /\ ( X e. ( A [,] B ) /\ Y e. ( A [,] B ) ) ) ->
      ( abs ` ( ( F ` X ) - ( F ` Y ) ) ) <_ ( M x. ( abs ` ( X - Y ) ) ) ) $=
      ( co wcel cfv cle cr cc vb va vy cicc wa cmin cabs cmul wbr wi wceq fveq2
      cv oveq2d fveq2d oveq2 imbi2d oveq1d oveq1 weq wb oveqan12d oveq12 ancoms
      breq12d wss iccssre syl2anc wf ccncf cncff ffvelrn anim12dan sylan simprd
      syl simpld abssubd ax-resscn syl6ss sselda adantrl adantrr w3a cc0 adantr
      simpr2 ffvelrnd simpr1 subeq0ad biimpar abs00bd clt cioo c0 wne cxr rexrd
      sseldd ioon0 ad2antrr elicc2 mpbid cdv cdm ffvelrnda abscld absge0d letrd
      ex imp adantlr syldan sylbird recnd eqcomd eqbrtrd cdiv c1 wrex cmpt cres
      cre ccom divcld feqresmpt fmptco a1i feqmptd eqid cncfco recld cvv sylan2
      syl6eq eqtrd fvex fvmpt syl3anc eqtr3d resubcld simp2d iooss1 simp3d ssn0
      iooss2 sstrd wex n0 dvf feq2d mpbii exlimdv sylan2b simpr3 subge0d mpbird
      0red mulge0d equcom syl6bb 0re mul01d sylancr breq2d syl5ibrcom wo leloed
      eqle mpjaod subcld wn ord syl6 necon1ad posdifd divrec2d iccss2 necon3bid
      gt0ne0d eqidd ref rescncf sylc divccncf recncf eqeltrrd crn ccnfld tgioo2
      ctg ctopn cnt iccntr dvmptntr ioossicc sseli ovexd cpr reelprrecn ioossre
      dvres syl22anc ctop retop iooretop isopn3i mp2an reseq2i fssresd mpteq2ia
      syl5ss fvres 3eqtr3d dvmptdivc dvmptre dmmptg mprg fveq1d sylan9eq ubicc2
      dmeqd mvth lbicc2 oveq12d resubd divsubdird re1 eqeq12d rexbidva remulcld
      dividd releabsd lemul1ad absmuld divcan1d breqtrd syl5ibcom rexlimdva mpd
      breq1d ledivmul2 syl112anc pm2.61dane abssubge0d breqtrrd wlogle vtocl2ga
      expcom impcom ) GCDUDOZPZHVUKPZUEAGEQZHEQZUFOZUGQZFGHUFOZUGQZUHOZRUIZVUMV
[encoded data, 5920 characters]
      BVVEVVCWUAWUCWVOVUEUNVUFVUGVUIVUHVDVUJ $.
  $}

  ${
    $d t x y z B $.  $d t x y z F $.  $d t x y z M $.  $d t x z ph $.
    $d t y z Y $.  $d t y z Z $.
    dvlipcn.x $e |- ( ph -> X C_ CC ) $.
    dvlipcn.f $e |- ( ph -> F : X --> CC ) $.
    dvlipcn.a $e |- ( ph -> A e. CC ) $.
    dvlipcn.r $e |- ( ph -> R e. RR* ) $.
    dvlipcn.b $e |- B = ( A ( ball ` ( abs o. - ) ) R ) $.
    dvlipcn.d $e |- ( ph -> B C_ dom ( CC _D F ) ) $.
    dvlipcn.m $e |- ( ph -> M e. RR ) $.
    dvlipcn.l $e |- ( ( ph /\ x e. B ) ->
      ( abs ` ( ( CC _D F ) ` x ) ) <_ M ) $.
    $( A complex function with derivative bounded by ` M ` on an open ball is
       Lipschitz continuous with Lipschitz constant equal to ` M ` .
       (Contributed by Mario Carneiro, 18-Mar-2015.) $)
    dvlipcn $p |- ( ( ph /\ ( Y e. B /\ Z e. B ) ) ->
      ( abs ` ( ( F ` Y ) - ( F ` Z ) ) ) <_ ( M x. ( abs ` ( Y - Z ) ) ) ) $=
      ( vt cc vz vy wcel wa c1 cc0 cicc co cv cmul cmin caddc cfv cmpt cabs cle
      wbr 1elunit 0elunit 0red 1red cres ccom ccncf wss cdv cdm a1i dvbss sstrd
      ssid adantr simprl sseldd cr unitssre ax-resscn sstri simpr sseldi simprr
      mulcomd iirev adantl oveq12d cxr ad2antrr blcvx syl23anc feqmptd mpteq2ia
      wceq fvres syl6eq wf eqid cncfmptc mp3an23 syl mulcncf cncfmpt2f cnt ctop
      fveq2 ax-mp syl22anc sylancr reseq2d eqtrd dmeqd sylib syl5eq sylancl cvv
      cioo sylan2 mulcld recnd dvmptres dvmptcmul mulid1d mpteq2dv negex oveq2d
      cneg 1cnd dvfcn wral abscld fveq2d ralrimiva breq1d nfcv nffv oveq2 fvmpt
      weq fvex mul01d 1m0e1 eqeltrd eqidd fssresd fmptco fmptd ccnfld ctopn ctx
      wb addcn cncfmptid mp2an subcn ax-1cn mp3an cncffvrn syl2anc mpbird crest
      ccn cnfldtop cnfldtopon toponunii restid eqcomi cbl cxmt cnxmet cnfldtopn
      dvres blopn syl3anc syl5eqel isopn3i cin dmres df-ss dvcn syl31anc cncfco
      eqeltrrd crn ctg ffvelrnd 1re dvmptntr cpr reelprrecn cnelprrecn ioossicc
      tgioo2 iccntr sseli subcld sselda ffvelrnda syldan fvexd dvmptid iooretop
      ioossre dvmptc dvmptsub df-neg mpteq2i syl6eqr neg1cn mulcom mulm1d feq2d
      dvmptadd negsubd mpbii feq1d mpbid 3eqtr3d dvmptco ovex rgenw dmmptg mp1i
      remulcld fveq1d mpan2 sylan9eq ffvelrn absmuld absge0d cbvralv rspcv sylc
      fvmpt2 lemul1ad eqbrtrd nfv nfmpt1 nfov nfbr r19.21bi dvlip mpanr12 1m1e0
      cbvral addid1d addid2d fveq2i abs1 eqtri oveq2i 3brtr3d ) AIDUCZJDUCZUDZU
[encoded data, 5040 characters]
      UMUEVVJUEUOYTVUFVUGVUHVUIVUNVVIVUNVVIWWQXRYAXLVUJ $.
  $}

  ${
    $d r x A $.  $d r x B $.  $d r x F $.  $d r x J $.  $d r x ph $.
    $d r x M $.  $d r x R $.  $d r x S $.  $d r x Y $.  $d r x Z $.
    dvlip2.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvlip2.j $e |- J = ( ( abs o. - ) |` ( S X. S ) ) $.
    dvlip2.x $e |- ( ph -> X C_ S ) $.
    dvlip2.f $e |- ( ph -> F : X --> CC ) $.
    dvlip2.a $e |- ( ph -> A e. S ) $.
    dvlip2.r $e |- ( ph -> R e. RR* ) $.
    dvlip2.b $e |- B = ( A ( ball ` J ) R ) $.
    dvlip2.d $e |- ( ph -> B C_ dom ( S _D F ) ) $.
    dvlip2.m $e |- ( ph -> M e. RR ) $.
    dvlip2.l $e |- ( ( ph /\ x e. B ) ->
      ( abs ` ( ( S _D F ) ` x ) ) <_ M ) $.
    $( Combine the results of ~ dvlip and ~ dvlipcn into one.  (Contributed by
       Mario Carneiro, 18-Mar-2015.)  (Revised by Mario Carneiro,
       8-Sep-2015.) $)
    dvlip2 $p |- ( ( ph /\ ( Y e. B /\ Z e. B ) ) ->
      ( abs ` ( ( F ` Y ) - ( F ` Z ) ) ) <_ ( M x. ( abs ` ( Y - Z ) ) ) ) $=
      ( vr wcel wa cr wceq cfv cmin co cabs cmul cle wbr cc cif cv clt wrex cxr
      cxmt ccom cxp cres wss cnxmet cpr recnprss syl xmetres2 syl5eqel ad2antrr
      cq sylancr cbl simplrr syl6eleq wb elbl syl3anc mpbid simpld xmetcl ifcld
      simplrl simprd breq1 ifboth syl2anc qbtwnxr wi qre adantr rexr cioo simpr
      eleqtrd xmetsym sqxpeqd reseq2d syl5eq oveqd remetdval eqbrtrrd absdifltd
      eqid 3eqtrd w3a rexrd elioo2 mpbir3and sseldi fvres ccncf ad3antrrr eqtrd
      fveq2d biimpa eqbrtrd syl22anc ex cdv cdm ax-resscn ad4antr sstrd sseqtrd
      wf a1i dvres eqeltrrd dmeqd dmres oveq1d df-ss sylib fveq1d syldan eleq2d
      cin adantl xrmaxlt cicc ioossicc simprll simplr resubcld readdcld simprlr
      caddc oveq12d elicc2 simp1d eleqtrrd simp2d absdifled mpbir2and xrlelttrd
      simp3d elbl3 mpbird ssrdv syl6sseqr resabs1d dvbss fssresd blssm syl5eqss
      crn ctg cnt ccnfld ctopn tgioo2 ctop retop cmopn tgioo blopn eqeltrd dvcn
      isopn3i syl31anc rescncf sylc oveq2d iccntr 3eqtr3d syl5ss reseq1d eqtr4d
      sseqtr4d sylan9eq sselda simp-4l sylan dvlip mp2and sylbid impd rexlimdva
      exp32 sylan2 mpd wfn absf subf fco mp2an ffn fnresdm mp2b anbi12d 3sstr3d
      syl6eq breq1d 3imtr3d imp dvlipcn an32s wo elpri mpjaodan ) AKDUDZLDUDZUE
[encoded data, 5200 characters]
      UYC $.
  $}

  ${
    $d ph x y a b $.  $d A x y a b $.  $d B x y a b $.  $d F x y a b $.
    c1liplem1.a $e |- ( ph -> A e. RR ) $.
    c1liplem1.b $e |- ( ph -> B e. RR ) $.
    c1liplem1.le $e |- ( ph -> A <_ B ) $.
    c1liplem1.f $e |- ( ph -> F e. ( CC ^pm RR ) ) $.
    c1liplem1.dv $e |- ( ph -> ( ( RR _D F ) |` ( A [,] B ) ) e.
        ( ( A [,] B ) -cn-> RR ) ) $.
    c1liplem1.cn $e |- ( ph -> ( F |` ( A [,] B ) ) e.
        ( ( A [,] B ) -cn-> RR ) ) $.
    c1liplem1.k $e |- K = sup ( ( abs " ( ( RR _D F ) " ( A [,] B ) ) ) ,
        RR , < ) $.
    $( Lemma for ~ c1lip1 .  (Contributed by Stefan O'Rear, 15-Nov-2014.) $)
    c1liplem1 $p |- ( ph -> ( K e. RR /\ A. x e. ( A [,] B )
        A. y e. ( A [,] B ) ( x < y -> ( abs ` ( ( F ` y ) - ( F ` x ) ) ) <_
          ( K x. ( abs ` ( y - x ) ) ) ) ) ) $=
      ( cr wcel cfv cabs cle cc vb va cv clt wbr cmin co cmul wi cicc wral cima
      cdv csup wss c0 wne wrex crn imassrn wf absf frn ax-mp sstri a1i wfun cdm
      dvf ffun cres wceq ccncf cncff fdm 3syl ssdmres sylibr cxr lbicc2 syl3anc
      rexrd wa funfvima2 imp syl21anc fdmi sseqtr4i mp2an ne0i ax-resscn cncfss
      sseldi cniccbdd fvelima fvres adantl fveq2d fveq2 breq1d rspccva eqbrtrrd
      ssid mpan adantll syl5ibcom rexlimdva syl5 breq1 ralrimiv ex reximdva mpd
      suprcl syl5eqel cdiv simplrr syl ad2antrr ffvelrnd recnd eqeltrrd simplrl
      subcld iccssre syl2anc sseldd resubcld simpr wb difrp mpbid rpne0d divcld
      crp absdivd syl6eleqr ltled cioo eqtrd ubicc2 oveq1d iccss2 ad2antlr sylc
      oveq12d resabs1d rescncf ctg cnt cpm cnex reex elpm2 simplbi ccnfld ctopn
      simprbi eqid tgioo2 dvres syl22anc iccntr reseq2d dmeqd syl5ss sstrd mvth
      ioossicc sylib fveq1d adantrr ad2antll sseld impr eleq1 rexlimdv funfvima
      eqeltrd suprub syl31anc syl6breqr abscld absrpcld ledivmuld rpcnd mulcomd
      expr breqtrd ralrimivva jca ) AGOPZBUCZCUCZUDUEZUWNFQZUWMFQZUFUGZRQZGUWNU
      WMUFUGZRQZUHUGZSUEZUIZCDEUJUGZUKBUXEUKAGROFUMUGZUXEULZULZOUDUNZONAUXHOUOZ
      UXHUPUQZUAUCZUBUCZSUEZUAUXHUKZUBOURZUXIOPUXJAUXHRUSZORUXGUTTORVAZUXQOUOVB
      TORVCVDVEZVFADUXFQZUXGPZUXTRQZUXHPZUXKAUXFVGZUXEUXFVHZUOZDUXEPZUYAUYDAUYE
      TUXFVAZUYDFVIZUYETUXFVJVDZVFAUXFUXEVKZVHUXEVLZUYFAUYKUXEOVMUGZPUXEOUYKVAU
      YLLUXEOUYKVNUXEOUYKVOVPUXEUXFVQVRZADVSPEVSPDESUEUYGADHWBAEIWBJDEVTWAUYDUY
      FWCZUYGUYAUXEDUXFWDWEWFRVGZUXGRVHZUOUYAUYCUIUXRUYPVBTORVJVDZUXGTUYQUXGUXF
      USZTUXFUXEUTUYHUYSTUOUYIUYETUXFVCVDVETORVBWGZWHUXGUXTRWDWIUXHUYBWJVPZAUWM
      UYKQZRQZUXMSUEZBUXEUKZUBOURZUXPADOPZEOPZUYKUXETVMUGZPVUFHIAUYMVUIUYKOTUOZ
      TTUOUYMVUIUOWKTXCUXEOTWLWILWMUBBDEUYKWNWAAVUEUXOUBOAUXMOPWCZVUEUXOVUKVUEW
      CZUXNUAUXHUXLUXHPZUWNRQZUXLVLZCUXGURZVULUXNUYPVUMVUPUYRCUXLUXGRWOXDVULVUO
      UXNCUXGVULUWNUXGPZWCVUNUXMSUEZVUOUXNVULVUQVURVUQUXLUXFQZUWNVLZUAUXEURZVUL
      VURUYDVUQVVAUYJUAUWNUXEUXFWOXDVULVUTVURUAUXEVULUXLUXEPZWCVUSRQZUXMSUEZVUT
      VURVUEVVBVVDVUKVUEVVBWCZUXLUYKQZRQZVVCUXMSVVEVVFVUSRVVBVVFVUSVLVUEUXLUXEU
      XFWPWQWRVUDVVGUXMSUEBUXLUXEUWMUXLVLZVUCVVGUXMSVVHVUBVVFRUWMUXLUYKWSWRWTXA
      XBXEVUTVVCVUNUXMSVUSUWNRWSWTXFXGXHWEVUNUXLUXMSXIXFXGXHXJXKXLXMZUBUAUXHXNW
      AXOZAUXDBCUXEUXEAUWMUXEPZUWNUXEPZWCZWCZUWOUXCVVNUWOWCZUWSUXAGUHUGZUXBSVVO
      UWSUXAXPUGZGSUEUWSVVPSUEVVOUWRUWTXPUGZRQZVVQGSVVOUWRUWTVVOUWPUWQVVOUWNFUX
      EVKZQZUWPTVVOVVLVWAUWPVLAVVKVVLUWOXQZUWNUXEFWPXRVVOVWAVVOUXEOUWNVVTAUXEOV
      VTVAZVVMUWOAVVTUYMPZVWCMUXEOVVTVNXRXSZVWBXTYAYBVVOUWMVVTQZUWQTVVOVVKVWFUW
      QVLAVVKVVLUWOYCZUWMUXEFWPXRVVOVWFVVOUXEOUWMVVTVWEVWGXTYAYBYDZVVOUWTVVOUWN
      UWMVVOUXEOUWNAUXEOUOZVVMUWOAVUGVUHVWIHIDEYEYFXSZVWBYGZVVOUXEOUWMVWJVWGYGZ
      YHYAZVVOUWTVVOUWOUWTYOPZVVNUWOYIZVVOUWMOPZUWNOPZUWOVWNYJVWLVWKUWMUWNYKYFY
      LYMZYPVVOVVSUXIGSVVOUXJUXKUXPVVSUXHPZVVSUXISUEUXJVVOUXSVFAUXKVVMUWOVUAXSA
      UXPVVMUWOVVIXSVVOUYPVVRUYQPZVVRUXGPZVWSUYPVVOUYRVFVVOVVRTUYQVVOUWRUWTVWHV
      WMVWRYNUYTYQVVOUWNFUWMUWNUJUGZVKZQZUWMVXCQZUFUGZUWTXPUGZVVRUXGVVOVXFUWRUW
      TXPVVOVXDUWPVXEUWQUFVVOUWNVXBPZVXDUWPVLVVOUWMVSPZUWNVSPZUWMUWNSUEZVXHVVOU
      WMVWLWBZVVOUWNVWKWBZVVOUWMUWNVWLVWKVWOYRZUWMUWNUUAWAUWNVXBFWPXRVVOUWMVXBP
      ZVXEUWQVLVVOVXIVXJVXKVXOVXLVXMVXNUWMUWNVTWAUWMVXBFWPXRUUFUUBVVOUXMOVXCUMU
      GZQZVXGVLZUBUWMUWNYSUGZURVXGUXGPZVVOUBUWMUWNVXCVWLVWKVWOVVOVVTVXBVKZVXCVX
      BOVMUGZVVOFVXBUXEVVMVXBUXEUOZAUWODEUWMUWNUUCUUDZUUGVVOVYCVWDVYAVYBPVYDAVW
      DVVMUWOMXSUXEOVXBVVTUUHUUEYBVVOVXPVHUXFVXSVKZVHZVXSVVOVXPVYEVVOVXPUXFVXBY
      SUSUUIQZUUJQQZVKZVYEVVOVUJFVHZTFVAZVYJOUOZVXBOUOZVXPVYIVLVUJVVOWKVFVVOFTO
      UUKUGPZVYKAVYNVVMUWOKXSZVYNVYKVYLTOFUULUUMUUNZUUOXRVVOVYNVYLVYOVYNVYKVYLV
      YPUURXRVVOVWPVWQVYMVWLVWKUWMUWNYEYFVYJVXBOVYGFUUPUUQQZVYQUUSZVYQVYRUUTUVA
      UVBVVOVYHVXSUXFVVOVWPVWQVYHVXSVLVWLVWKUWMUWNUVCYFUVDYTZUVEVVOVXSUYEUOVYFV
      XSVLVVOVXSUXEUYEVVOVXSVXBUXEUWMUWNUVIVYDUVFZAUYFVVMUWOUYNXSUVGVXSUXFVQUVJ
      YTUVHVVOVXRVXTUBVXSVVNUWOUXMVXSPZVXRVXTUIVVNUWOWUAWCZWCZVXQUXGPVXRVXTWUCV
      XQUXMUXFQZUXGWUCVXQUXMVYEQZWUDVVNUWOVXQWUEVLWUAVVOUXMVXPVYEVYSUVKUVLWUAWU
      EWUDVLVVNUWOUXMVXSUXFWPUVMYTWUCUYDUYFUXMUXEPZWUDUXGPZUYDWUCUYJVFAUYFVVMWU
      BUYNXSVVNUWOWUAWUFVVOVXSUXEUXMVYTUVNUVOUYOWUFWUGUXEUXMUXFWDWEWFUVSVXQVXGU
      XGUVPXFUWHUVQXMYBUYPVWTWCVXAVWSUXGVVRRUVRWEWFUBUAUXHVVSUVTUWANUWBXBVVOUWS
      GUXAVVOUWRVWHUWCAUWLVVMUWOVVJXSZVVOUWTVWMVWRUWDZUWEYLVVOUXAGVVOUXAWUIUWFV
      VOGWUHYAUWGUWIXKUWJUWK $.
  $}

  ${
    $d ph x y k a b $.  $d A x y k a b $.  $d B x y k a b $.  $d F x y k a b $.
    c1lip1.a $e |- ( ph -> A e. RR ) $.
    c1lip1.b $e |- ( ph -> B e. RR ) $.
    c1lip1.f $e |- ( ph -> F e. ( CC ^pm RR ) ) $.
    c1lip1.dv $e |- ( ph -> ( ( RR _D F ) |` ( A [,] B ) ) e.
        ( ( A [,] B ) -cn-> RR ) ) $.
    c1lip1.cn $e |- ( ph -> ( F |` ( A [,] B ) ) e.
        ( ( A [,] B ) -cn-> RR ) ) $.
    $( C1 functions are Lipschitz continuous on closed intervals.  (Contributed
       by Stefan O'Rear, 16-Nov-2014.) $)
    c1lip1 $p |- ( ph -> E. k e. RR A. x e. ( A [,] B ) A. y e. ( A [,] B )
        ( abs ` ( ( F ` y ) - ( F ` x ) ) ) <_
          ( k x. ( abs ` ( y - x ) ) ) ) $=
      ( cfv cmin co cabs cmul cle cr wcel va vb cv wbr cicc wral wrex clt wa c0
      wne cc0 0re ne0ii ral0 wceq cxr rexrd icc0 syl2anc biimpar raleqdv mpbiri
      wb ralrimivw r19.2z sylancr wi cdv cima csup adantr simpr cres ccncf eqid
      cc cpm c1liplem1 oveq1 breq2d imbi2d 2ralbidv rspcev syl weq breq1 oveq2d
      fveq2 fveq2d oveq2 breq12d imbi12d breq2 oveq1d rspc2v pm2.27 adantl syld
      ad2antlr 0le0 fvres ad2antrl cncff ad2antrr simpl ffvelrn syl2an eqeltrrd
      wf recnd subidd abs00bd wss iccssre ad3antrrr simprl sseldd simplr mul01d
      eqtrd syl5ibcom imp a1d ancoms ad2antll abssubd sseld anim12d recn abssub
      biimpd embantd w3o lttri4 mpjao3dan ralrimdvva reximdva mpd ltlecasei ) A
      CUCZGMZBUCZGMZNOZPMZFUCZUUAUUCNOZPMZQOZRUDZCDEUEOZUFZBUULUFZFSUGZEDAEDUHU
      DZUIZSUJUKUUNFSUFUUOULSUMUNUUQUUNFSUUQUUNUUMBUJUFUUMBUOUUQUUMBUULUJAUULUJ
      UPZUUPADUQTEUQTUURUUPVDADHURAEIURDEUSUTVAVBVCVEUUNFSVFVGADERUDZUIZUAUCZUB
      UCZUHUDZUVBGMZUVAGMZNOZPMZUUGUVBUVANOZPMZQOZRUDZVHZUBUULUFUAUULUFZFSUGZUU
      OUUTPSGVIOZUULVJVJSUHVKZSTUVCUVGUVPUVIQOZRUDZVHZUBUULUFUAUULUFZUIUVNUUTUA
      UBDEGUVPADSTZUUSHVLAESTZUUSIVLAUUSVMAGVQSVROTUUSJVLAUVOUULVNUULSVOOZTUUSK
      VLAGUULVNZUWCTZUUSLVLUVPVPVSUVMUVTFUVPSUUGUVPUPZUVLUVSUAUBUULUULUWFUVKUVR
      UVCUWFUVJUVQUVGRUUGUVPUVIQVTWAWBWCWDWEUUTUVMUUNFSUUTUUGSTZUIZUVMUUKBCUULU
      ULUWHUUCUULTZUUAUULTZUIZUIZUUCUUAUHUDZUVMUUKVHBCWFZUUAUUCUHUDZUWLUWMUIUVM
      UWMUUKVHZUUKUWKUVMUWPVHUWHUWMUVLUWPUUCUVBUHUDZUVDUUDNOZPMZUUGUVBUUCNOZPMZ
      QOZRUDZVHUAUBUUCUUAUULUULUABWFZUVCUWQUVKUXCUVAUUCUVBUHWGUXDUVGUWSUVJUXBRU
      XDUVFUWRPUXDUVEUUDUVDNUVAUUCGWIWHWJUXDUVIUXAUUGQUXDUVHUWTPUVAUUCUVBNWKWJW
      HWLWMUBCWFZUWQUWMUXCUUKUVBUUAUUCUHWNUXEUWSUUFUXBUUJRUXEUWRUUEPUXEUVDUUBUU
      DNUVBUUAGWIWOWJUXEUXAUUIUUGQUXEUWTUUHPUVBUUAUUCNVTWJWHWLWMWPWTUWMUWPUUKVH
      UWLUWMUUKWQWRWSUWLUWNUIUUKUVMUWLUWNUUKUWLUUDUUDNOZPMZUUGUUCUUCNOZPMZQOZRU
      DZUWNUUKUWLUXKULULRUDXAUWLUXGULUXJULRUWLUXFUWLUUDUWLUUDUWLUUCUWDMZUUDSUWI
      UXLUUDUPUWHUWJUUCUULGXBXCUWHUULSUWDXJZUWIUXLSTUWKAUXMUUSUWGAUWEUXMLUULSUW
      DXDWEXEZUWIUWJXFUULSUUCUWDXGXHXIXKZXLXMUWLUXJUUGULQOULUWLUXIULUUGQUWLUXHU
      WLUUCUWLUUCUWLUULSUUCAUULSXNZUUSUWGUWKAUWAUWBUXPHIDEXOUTZXPUWHUWIUWJXQXRX
      KXLXMWHUWLUUGUWLUUGUUTUWGUWKXSXKXTYAWLVCUWNUXGUUFUXJUUJRUWNUXFUUEPUWNUUDU
      UBUUDNUUCUUAGWIWOWJUWNUXIUUIUUGQUWNUXHUUHPUUCUUAUUCNVTWJWHWLYBYCYDUWLUWOU
      IZUVMUWOUUDUUBNOZPMZUUGUUCUUANOZPMZQOZRUDZVHZUUKUWKUVMUYEVHZUWHUWOUWJUWIU
      YFUVLUYEUUAUVBUHUDZUVDUUBNOZPMZUUGUVBUUANOZPMZQOZRUDZVHUAUBUUAUUCUULUULUA
      CWFZUVCUYGUVKUYMUVAUUAUVBUHWGUYNUVGUYIUVJUYLRUYNUVFUYHPUYNUVEUUBUVDNUVAUU
      AGWIWHWJUYNUVIUYKUUGQUYNUVHUYJPUVAUUAUVBNWKWJWHWLWMUBBWFZUYGUWOUYMUYDUVBU
      UCUUAUHWNUYOUYIUXTUYLUYCRUYOUYHUXSPUYOUVDUUDUUBNUVBUUCGWIWOWJUYOUYKUYBUUG
      QUYOUYJUYAPUVBUUCUUANVTWJWHWLWMWPYEWTUXRUWOUYDUUKUWLUWOVMUXRUYDUUKUXRUXTU
      UFUYCUUJRUWLUXTUUFUPUWOUWLUUDUUBUXOUWLUUBUWLUUAUWDMZUUBSUWJUYPUUBUPUWHUWI
      UUAUULGXBYFUWHUXMUWJUYPSTUWKUXNUWIUWJVMUULSUUAUWDXGXHXIXKYGVLUXRUYBUUIUUG
      QUWLUYBUUIUPZUWOUWLUUCSTZUUASTZUIZUYQUWHUWKUYTUWHUWIUYRUWJUYSUWHUULSUUCAU
      XPUUSUWGUXQXEZYHUWHUULSUUAVUAYHYIYCZUYRUUCVQTUUAVQTUYQUYSUUCYJUUAYJUUCUUA
      YKXHWEVLWHWLYLYMWSUWLUYTUWMUWNUWOYNVUBUUCUUAYOWEYPYQYRYSIHYT $.
  $}

  ${
    $d ph x y k $.  $d A x y k $.  $d B x y k $.  $d F x y k $.
    c1lip2.a $e |- ( ph -> A e. RR ) $.
    c1lip2.b $e |- ( ph -> B e. RR ) $.
    c1lip2.f $e |- ( ph -> F e. ( ( C^n ` RR ) ` 1 ) ) $.
    c1lip2.rn $e |- ( ph -> ran F C_ RR ) $.
    c1lip2.dm $e |- ( ph -> ( A [,] B ) C_ dom F ) $.
    $( C1 functions are Lipschitz continuous on closed intervals.  (Contributed
       by Stefan O'Rear, 16-Nov-2014.)  (Revised by Stefan O'Rear,
       6-May-2015.) $)
    c1lip2 $p |- ( ph -> E. k e. RR A. x e. ( A [,] B ) A. y e. ( A [,] B )
        ( abs ` ( ( F ` y ) - ( F ` x ) ) ) <_
          ( k x. ( abs ` ( y - x ) ) ) ) $=
      ( c1 cr cfv wcel cc co ax-resscn cc0 ccpn cpm cdvn cdm ccncf wss cn0 1nn0
      wa wb elcpn mp2an simplbi syl cicc cdv cres wf wfn wfun pmfun funfn sylib
      crn df-f sylanbrc cnex reex elpm2 simprbi dvfre syl2anc wceq caddc fveq2i
      0p1e1 0nn0 dvnp1 mp3an13 syl5eqr dvn0 sylancr oveq2d eqtrd eqeltrrd cncff
      fdm 3syl feq2d mpbid cncffvrn mpbird rescncf sylc cpr cuz 1eluzge0 cpnord
      prid1 mp3an sseldi c1lip1 ) ABCDEFGHIAGMNUAOZOZPZGQNUBRPZJXEXFMNGUCRZOZGU
      DZQUERZPZNQUFZMUGPXEXFXKUIUJSUHNGMUKULZUMUNZADEUORZXIUFZNGUPRZXINUERZPZXQ
      XOUQXONUERZPLAXSXINXQURZAXQUDZNXQURZYAAXINGURZXINUFZYCAGXIUSZGVDNUFYDAGUT
      ZYFAXFYGXNQNGVAUNGVBVCKXINGVEVFZAXFYEXNXFXIQGURYEQNGVGVHVIVJUNXIGVKVLAYBX
      INXQAXQXJPZXIQXQURYBXIVMAXHXQXJAXHNTXGOZUPRZXQAXHTMVNRZXGOZYKYLMXGVPVOAXF
      YMYKVMZXNXLXFTUGPZYNSVQNGTVRVSUNVTAYJGNUPAXLXFYJGVMSXNNGWAWBZWCWDAXEXKJXE
      XFXKXMVJUNWEZXIQXQWFXIQXQWGWHWIWJAXLYIXSYAUJSYQXIQNXQWKWBWLXINXOXQWMWNAXP
      GXRPZGXOUQXTPLAYRYDYHAXLGXJPYRYDUJSAYJGXJYPAGTXCOZPZYJXJPZAXDYSGNNQWOPYOM
      TWPOPXDYSUFNQVHWSVQWQNTMWRWTJXAYTXFUUAXLYOYTXFUUAUIUJSVQNGTUKULVJUNWEXIQN
      GWKWBWLXINXOGWMWNXB $.
  $}

  ${
    $d ph x y k $.  $d A x y k $.  $d B x y k $.  $d F x y k $.
    c1lip3.a $e |- ( ph -> A e. RR ) $.
    c1lip3.b $e |- ( ph -> B e. RR ) $.
    c1lip3.f $e |- ( ph -> ( F |` RR ) e. ( ( C^n ` RR ) ` 1 ) ) $.
    c1lip3.rn $e |- ( ph -> ( F " RR ) C_ RR ) $.
    c1lip3.dm $e |- ( ph -> ( A [,] B ) C_ dom F ) $.
    $( C1 functions are Lipschitz continuous on closed intervals.  (Contributed
       by Stefan O'Rear, 16-Nov-2014.) $)
    c1lip3 $p |- ( ph -> E. k e. RR A. x e. ( A [,] B ) A. y e. ( A [,] B )
        ( abs ` ( ( F ` y ) - ( F ` x ) ) ) <_
          ( k x. ( abs ` ( y - x ) ) ) ) $=
      ( cv cr cfv cmin co cabs wral wcel cres cmul cle wbr cicc wrex crn df-ima
      cima syl5eqssr cdm cin iccssre syl2anc ssind dmres syl6sseqr c1lip2 wa wi
      wss sseld anim12d imp fvres oveqan12rd fveq2d breq1d biimpd syl ralimdvva
      reximdv mpd ) ACMZGNUAZOZBMZVOOZPQZROZFMVNVQPQROUBQZUCUDZCDEUEQZSBWCSZFNU
      FVNGOZVQGOZPQZROZWAUCUDZCWCSBWCSZFNUFABCDEFVOHIJAVOUGGNUINGNUHKUJAWCNGUKZ
      ULVOUKAWCNWKADNTENTWCNVAHIDEUMUNZLUOGNUPUQURAWDWJFNAWBWIBCWCWCAVQWCTZVNWC
      TZUSZUSVQNTZVNNTZUSZWBWIUTAWOWRAWMWPWNWQAWCNVQWLVBAWCNVNWLVBVCVDWRWBWIWRV
      TWHWAUCWRVSWGRWQWPVPWEVRWFPVNNGVEVQNGVEVFVGVHVIVJVKVLVM $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.  $d x y ph $.
    dveq0.a $e |- ( ph -> A e. RR ) $.
    dveq0.b $e |- ( ph -> B e. RR ) $.
    dveq0.c $e |- ( ph -> F e. ( ( A [,] B ) -cn-> CC ) ) $.
    dveq0.d $e |- ( ph -> ( RR _D F ) = ( ( A (,) B ) X. { 0 } ) ) $.
    $( If a continuous function has zero derivative at all points on the
       interior of a closed interval, then it must be a constant function.
       (Contributed by Mario Carneiro, 2-Sep-2014.)  (Proof shortened by Mario
       Carneiro, 3-Mar-2015.) $)
    dveq0 $p |- ( ph -> F = ( ( A [,] B ) X. { ( F ` A ) } ) ) $=
      ( co cfv cc wcel wa wceq adantr cle wbr cr cabs cc0 vx vy cicc csn cxp wf
      wfn ccncf cncff syl ffn cvv fvex fnconstg mp1i cv fvconst2 adantl cxr w3a
      rexrd wb elicc2 syl2anc biimpa simp1d simp2d simp3d letrd lbicc2 ffvelrnd
      syl3anc ffvelrnda cmin subcld cmul simpr jca cdv cdm cioo dmeqd c0ex snnz
      c0 wne dmxp ax-mp syl6eq 0red fveq1d sylan9eq abs00bd 0le0 syl6eqbr dvlip
      syldan abscld mul02d breqtrd absge0d 0re letri3 sylancl mpbir2and subeq0d
      recnd abs00d eqtr2d eqfnfvd ) AUABCUCIZDXKBDJZUDUEZAXKKDUFZDXKUGADXKKUHIL
      XNGXKKDUIUJZXKKDUKUJXLULLXMXKUGABDUMZXKXLULUNUOAUAUPZXKLZMZXQXMJZXLXQDJZX
      RXTXLNAXKXLXQXPUQURXSXLYAXSXKKBDAXNXRXOOXSBUSLCUSLBCPQBXKLZXSBABRLZXREOZV
      AXSCACRLZXRFOZVAXSBXQCYDXSXQRLZBXQPQZXQCPQZAXRYGYHYIUTZAYCYEXRYJVBEFBCXQV
      CVDVEZVFZYFXSYGYHYIYKVGXSYGYHYIYKVHVIBCVJVLZVKZAXKKXQDXOVMZXSXLYAVNIZXSXL
      YAYNYOVOZXSYPSJZTNZYRTPQZTYRPQZXSYRTBXQVNIZSJZVPIZTPAXRYBXRMYRUUDPQXSYBXR
      YMAXRVQVRAUBBCDTBXQEFGARDVSIZVTBCWAIZTUDZUEZVTZUUFAUUEUUHHWBUUGWEWFUUIUUF
      NTWCWDUUFUUGWGWHWIAWJAUBUPZUUFLZMZUUJUUEJZSJTTPUULUUMAUUKUUMUUJUUHJTAUUJU
      UEUUHHWKUUFTUUJWCUQWLWMWNWOWPWQXSUUCXSUUCXSUUBXSBXQXSBYDXGXSXQYLXGVOWRXGW
      SWTXSYPYQXAXSYRRLTRLYSYTUUAMVBXSYPYQWRXBYRTXCXDXEXHXFXIXJ $.
  $}

  ${
    $d x C $.  $d x y F $.  $d x y G $.  $d x y ph $.  $d x X $.
    dv11cn.x $e |- X = ( A ( ball ` ( abs o. - ) ) R ) $.
    dv11cn.a $e |- ( ph -> A e. CC ) $.
    dv11cn.r $e |- ( ph -> R e. RR* ) $.
    dv11cn.f $e |- ( ph -> F : X --> CC ) $.
    dv11cn.g $e |- ( ph -> G : X --> CC ) $.
    dv11cn.d $e |- ( ph -> dom ( CC _D F ) = X ) $.
    dv11cn.e $e |- ( ph -> ( CC _D F ) = ( CC _D G ) ) $.
    dv11cn.c $e |- ( ph -> C e. X ) $.
    dv11cn.p $e |- ( ph -> ( F ` C ) = ( G ` C ) ) $.
    $( Two functions defined on a ball whose derivatives are the same and which
       are equal at any given point ` C ` in the ball must be equal everywhere.
       (Contributed by Mario Carneiro, 31-Mar-2015.) $)
    dv11cn $p |- ( ph -> F = G ) $=
      ( vx co cc0 cc vy cmin cof csn cxp wceq cvv wf wfn ffn syl wcel cabs ccom
      cbl cfv ovex eqeltri a1i inidm offn 0cn fnconstg mp1i cv subcl adantl off
      ffvelrnda cle wbr cmul simpr adantr jca cxmt cxr wss cnxmet blssm syl3anc
      wa syl5eqss cdv cdm cmpt feqmptd offval2 oveq2d cr cnelprrecn fvexd dvfcn
      cpr feq2d mpbii eqtr3d 3eqtr3rd subidd mpteq2dva fconstmpt syl6eqr 3eqtrd
      dvmptsub dmeqd c0 wne snnzg dmxp mp2b syl6eq eqimss2 0red fveq1d fvconst2
      c0ex sylan9eq abs00bd 0le0 syl6eqbr dvlipcn syldan fveq2 oveq12d ffvelrnd
      eqid fvmpt subeq0bd eqtrd fveq2d sselda sseldd subcld abscld recnd mul02d
      subid1d 3brtr3d absge0d wb letri3 sylancl mpbir2and abs00d eqtr4d eqfnfvd
      0re ofsubeq0 mpbid ) AEFUBUCRZGSUDZUEZUFZEFUFZAQGUUJUULAGGUBGEFUGUGAGTEUH
      ZEGUIKGTEUJUKAGTFUHZFGUILGTFUJUKGUGULZAGBDUMUBUNZUOUPZRZUGHBDUUSUQURUSZUV
      AGUTZVASTULZUULGUIAVBGSTVCVDAQVEZGULZWBZUVDUUJUPZSUVDUULUPZUVFUVGAGTUVDUU
      JAQUAGGGUBTTTEFUGUGUVDTULUAVEZTULWBUVDUVIUBRTULAUVDUVIVFVGKLUVAUVAUVBVHZV
      IZUVFUVGUMUPZSUFZUVLSVJVKZSUVLVJVKZUVFUVGCUUJUPZUBRZUMUPZSUVDCUBRZUMUPZVL
      RZUVLSVJAUVEUVECGULZWBUVRUWAVJVKUVFUVEUWBAUVEVMAUWBUVEOVNVOAQBGDUUJSGUVDC
      AGUUTTHAUURTVPUPULZBTULDVQULUUTTVRUWCAVSUSIJUURBDTVTWAWCZUVJIJHATUUJWDRZW
      EZGUFGUWFVRAUWFUULWEZGAUWEUULAUWETQGUVDEUPZUVDFUPZUBRZWFZWDRQGUVDTEWDRZUP
      ZUWMUBRZWFZUULAUUJUWKTWDAQGUWHUWIUBEFUGTTUVAAGTUVDEKVIZAGTUVDFLVIZAQGTEKW
      GZAQGTFLWGZWHZWIAQUWHUWMUWIUWMTUGUGGTWJTWNULAWKUSUWPUVFUVDUWLWLZAUWLTQGUW
      HWFZWDRQGUWMWFZAEUXBTWDUWRWIAQGTUWLAUWLWEZTUWLUHGTUWLUHEWMAUXDGTUWLMWOWPZ
      WGZWQUWQUXAAUWLTFWDRUXCTQGUWIWFZWDRNUXFAFUXGTWDUWSWIWRXDAUWOQGSWFUULAQGUW
      NSUVFUWMAGTUVDUWLUXEVIWSWTQGSXAXBXCZXEUVCUUKXFXGUWGGUFVBSTXHGUUKXIXJXKGUW
      FXLUKAXMUVFUVDUWEUPZUMUPSSVJUVFUXIAUVEUXIUVHSAUVDUWEUULUXHXNGSUVDXPXOZXQX
      RXSXTYAYBUVFUVQUVGUMUVFUVQUVGSUBRUVGUVFUVPSUVGUBAUVPSUFUVEAUVPCUWKUPZCEUP
      ZCFUPZUBRZSACUUJUWKUWTXNAUWBUXKUXNUFOQCUWJUXNGUWKUVDCUFUWHUXLUWIUXMUBUVDC
      EYCUVDCFYCYDUWKYFUXLUXMUBUQYGUKAUXLUXMAGTCEKOYEPYHXCVNWIUVFUVGUVKYQYIYJUV
      FUVTUVFUVTUVFUVSUVFUVDCAGTUVDUWDYKACTULUVEAGTCUWDOYLVNYMYNYOYPYRUVFUVGUVK
      YSUVFUVLWJULSWJULUVMUVNUVOWBYTUVFUVGUVKYNUUGUVLSUUAUUBUUCUUDUVEUVHSUFAUXJ
      VGUUEUUFAUUQUUOUUPUUMUUNYTUVAKLGEFUGUUHWAUUI $.
  $}

  ${
    $d x y z A $.  $d x y O $.  $d x y z ph $.  $d z S $.  $d z X $.  $d z Y $.
    $d x y z B $.  $d x y z F $.
    dvgt0.a $e |- ( ph -> A e. RR ) $.
    dvgt0.b $e |- ( ph -> B e. RR ) $.
    dvgt0.f $e |- ( ph -> F e. ( ( A [,] B ) -cn-> RR ) ) $.
    ${
      dvgt0lem.d $e |- ( ph -> ( RR _D F ) : ( A (,) B ) --> S ) $.
      $( Lemma for ~ dvgt0 and ~ dvlt0 .  (Contributed by Mario Carneiro,
         19-Feb-2015.) $)
      dvgt0lem1 $p |- ( ( ( ph /\
        ( X e. ( A [,] B ) /\ Y e. ( A [,] B ) ) ) /\ X < Y ) ->
          ( ( ( F ` Y ) - ( F ` X ) ) / ( Y - X ) ) e. S ) $=
        ( co wcel wbr cfv wceq cxr cr wss syl2anc vz cicc wa clt cres cmin cdiv
        cle iccssxr simplrl sseldi simplrr iccssre ad2antrr sseldd simpr ubicc2
        ltled syl3anc fvres syl lbicc2 oveq12d oveq1d cv cioo wrex ccncf iccss2
        cdv ad2antlr rescncf wf cdm rexrd w3a elicc2 mpbid simp2d iooss1 simp3d
        sylc wb iooss2 sstrd fssresd crn ctg cnt cc ax-resscn a1i cncff sylancl
        fss ccnfld ctopn eqid tgioo2 dvres syl22anc iccntr reseq2d eqtrd mpbird
        feq1d fdm mvth ffvelrnda eleq1 syl5ibcom rexlimdva mpd eqeltrrd ) AFBCU
        BLZMZGXOMZUCZUCZFGUDNZUCZGEFGUBLZUEZOZFYCOZUFLZGFUFLZUGLZGEOZFEOZUFLZYG
        UGLDYAYFYKYGUGYAYDYIYEYJUFYAGYBMZYDYIPYAFQMZGQMZFGUHNZYLYAXOQFBCUIZAXPX
        QXTUJZUKZYAXOQGYPAXPXQXTULZUKZYAFGYAXORFAXORSZXRXTABRMZCRMZUUAHIBCUMTUN
        ZYQUOZYAXORGUUDYSUOZXSXTUPZURZFGUQUSGYBEUTVAYAFYBMZYEYJPYAYMYNYOUUIYRYT
        UUHFGVBUSFYBEUTVAVCVDYAUAVEZRYCVJLZOZYHPZUAFGVFLZVGYHDMZYAUAFGYCUUEUUFU
        UGYAYBXOSZEXORVHLMZYCYBRVHLMXRUUPAXTBCFGVIVKAUUQXRXTJUNXORYBEVLWBYAUUND
        UUKVMZUUKVNUUNPYAUURUUNDREVJLZUUNUEZVMYABCVFLZDUUNUUSAUVADUUSVMXRXTKUNY
        AUUNBGVFLZUVAYABQMBFUHNZUUNUVBSYABAUUBXRXTHUNZVOYAFRMZUVCFCUHNZYAXPUVEU
        VCUVFVPZYQYAUUBUUCXPUVGWCUVDAUUCXRXTIUNZBCFVQTVRVSBFGVTTYACQMGCUHNZUVBU
        VASYACUVHVOYAGRMZBGUHNZUVIYAXQUVJUVKUVIVPZYSYAUUBUUCXQUVLWCUVDUVHBCGVQT
        VRWABGCWDTWEWFYAUUNDUUKUUTYAUUKUUSYBVFWGWHOZWIOOZUEZUUTYARWJSZXOWJEVMZU
        UAYBRSZUUKUVOPUVPYAWKWLYAXOREVMZUVPUVQAUVSXRXTAUUQUVSJXOREWMVAUNWKXORWJ
        EWOWNUUDYAUVEUVJUVRUUEUUFFGUMTXOYBRUVMEWPWQOZUVTWRZUVTUWAWSWTXAYAUVNUUN
        UUSYAUVEUVJUVNUUNPUUEUUFFGXBTXCXDXFXEZUUNDUUKXGVAXHYAUUMUUOUAUUNYAUUJUU
        NMUCUULDMUUMUUOYAUUNDUUJUUKUWBXIUULYHDXJXKXLXMXN $.

      dvgt0lem.o $e |- O Or RR $.
      dvgt0lem.i $e |- ( ( ( ph /\
        ( x e. ( A [,] B ) /\ y e. ( A [,] B ) ) ) /\ x < y ) ->
          ( F ` x ) O ( F ` y ) ) $.
      $( Lemma for ~ dvgt0 and ~ dvlt0 .  (Contributed by Mario Carneiro,
         19-Feb-2015.) $)
      dvgt0lem2 $p |- ( ph -> F Isom < , O ( ( A [,] B ) , ran F ) ) $=
        ( clt wiso wcel wor cr wb cicc co cima crn cres wbr cfv wral ralrimivva
        cv wi wa ex wf wss iccssre syl2anc ltso soss mpisyl a1i ccncf cncff syl
        ssid soisores syl22anc mpbird wfn wceq 3syl fnresdm isoeq1 mpbid isoeq5
        ffn fnima ) ADEUAUBZGVRUCZOHGPZVRGUDZOHGPZAVRVSOHGVRUEZPZVTAWDBUJZCUJZO
        UFZWEGUGWFGUGHUFZUKZCVRUHBVRUHZAWIBCVRVRAWEVRQWFVRQULULWGWHNUMUIAVRORZS
        HRZVRSGUNZVRVRUOZWDWJTAVRSUOZSORWKADSQESQWOIJDEUPUQURVRSOUSUTWLAMVAAGVR
        SVBUBQZWMKVRSGVCZVDWNAVRVEVABCVRVRSOHGVFVGVHAGVRVIZWCGVJWDVTTAWPWMWRKWQ
        VRSGVPVKZVRGVLVRVSOHGWCVMVKVNAWRVSWAVJVTWBTWSVRGVQVRVSWAOHGVOVKVN $.
    $}

    ${
      dvgt0.d $e |- ( ph -> ( RR _D F ) : ( A (,) B ) --> RR+ ) $.
      $( A function on a closed interval with positive derivative is
         increasing.  (Contributed by Mario Carneiro, 19-Feb-2015.) $)
      dvgt0 $p |- ( ph -> F Isom < , < ( ( A [,] B ) , ran F ) ) $=
        ( vx vy crp clt cv co wcel wa wbr cfv cc0 cr ltso cicc cmin cdiv rpgt0d
        dvgt0lem1 wb ccncf cncff syl ad2antrr simplrr ffvelrnd simplrl resubcld
        wf wss iccssre syl2anc sseldd simpr posdifd mpbid gt0div syl3anc mpbird
        dvgt0lem2 ) AIJBCKDLEFGHUAAIMZBCUBNZOZJMZVIOZPZPZVHVKLQZPZVHDRZVKDRZLQS
        VRVQUCNZLQZVPVTSVSVKVHUCNZUDNZLQZVPWBABCKDVHVKEFGHUFUEVPVSTOWATOSWALQZV
        TWCUGVPVRVQVPVITVKDAVITDUPZVMVOADVITUHNOWEGVITDUIUJUKZAVJVLVOULZUMZVPVI
        TVHDWFAVJVLVOUNZUMZUOVPVKVHVPVITVKAVITUQZVMVOABTOCTOWKEFBCURUSUKZWGUTZV
        PVITVHWLWIUTZUOVPVOWDVNVOVAVPVHVKWNWMVBVCVSWAVDVEVFVPVQVRWJWHVBVFVG $.
    $}

    ${
      dvlt0.d $e |- ( ph -> ( RR _D F ) : ( A (,) B ) --> ( -oo (,) 0 ) ) $.
      $( A function on a closed interval with negative derivative is
         decreasing.  (Contributed by Mario Carneiro, 19-Feb-2015.) $)
      dvlt0 $p |- ( ph -> F Isom < , `' < ( ( A [,] B ) , ran F ) ) $=
        ( vx vy cmnf cc0 co clt cv wcel wa wbr cr mpbid cioo ccnv gtso cicc cfv
        caddc cmin cmul cdiv dvgt0lem1 eliooord syl simprd wb wf ccncf ad2antrr
        cncff simplrr ffvelrnd simplrl resubcld 0red wss iccssre syl2anc sseldd
        simpr posdifd ltdivmul syl112anc recnd mul01d breqtrd ltsubaddd addid2d
        fvex brcnv sylibr dvgt0lem2 ) AIJBCKLUAMZDNUBZEFGHUCAIOZBCUDMZPZJOZWDPZ
        QZQZWCWFNRZQZWFDUEZWCDUEZNRWMWLWBRWKWLLWMUFMZWMNWKWLWMUGMZLNRWLWNNRWKWO
        WFWCUGMZLUHMZLNWKWOWPUIMZLNRZWOWQNRZWKKWRNRZWSWKWRWAPXAWSQABCWADWCWFEFG
        HUJWRKLUKULUMWKWOSPLSPWPSPLWPNRZWSWTUNWKWLWMWKWDSWFDAWDSDUOZWHWJADWDSUP
        MPXCGWDSDURULUQZAWEWGWJUSZUTZWKWDSWCDXDAWEWGWJVAZUTZVBWKVCZWKWFWCWKWDSW
        FAWDSVDZWHWJABSPCSPXJEFBCVEVFUQZXEVGZWKWDSWCXKXGVGZVBZWKWJXBWIWJVHWKWCW
        FXMXLVITWOLWPVJVKTWKWPWKWPXNVLVMVNWKWLWMLXFXHXIVOTWKWMWKWMXHVLVPVNWMWLN
        WCDVQWFDVQVRVSVT $.
    $}

    ${
      dvge0.d $e |- ( ph -> ( RR _D F ) : ( A (,) B ) --> ( 0 [,) +oo ) ) $.
      dvge0.x $e |- ( ph -> X e. ( A [,] B ) ) $.
      dvge0.y $e |- ( ph -> Y e. ( A [,] B ) ) $.
      dvge0.l $e |- ( ph -> X <_ Y ) $.
      $( A function on a closed interval with nonnegative derivative is weakly
         increasing.  (Contributed by Mario Carneiro, 30-Apr-2016.) $)
      dvge0 $p |- ( ph -> ( F ` X ) <_ ( F ` Y ) ) $=
        ( clt wbr cle cc0 co wcel cr wceq cmin wa cdiv cpnf cico cicc dvgt0lem1
        cfv wi exp31 mp2and elrege0 simprbi wb ccncf wf cncff ffvelrnd resubcld
        imp syl adantr wss iccssre syl2anc sseldd posdifd biimpa ge0div syl3anc
        mpbird ex subge0d sylibd leidd fveq2 breq1d syl5ibrcom wo leloed mpjaod
        mpbid ) AEFNOZEDUIZFDUIZPOZEFUAZAWDQWFWEUBRZPOZWGAWDWJAWDUCZWJQWIFEUBRZ
        UDRZPOZWKWMQUEUFRZSZWNAWDWPAEBCUGRZSZFWQSZWDWPUJKLAWRWSUCWDWPABCWODEFGH
        IJUHUKULVAWPWMTSWNWMUMUNVBWKWITSZWLTSZQWLNOZWJWNUOAWTWDAWFWEAWQTFDADWQT
        UPRSWQTDUQIWQTDURVBZLUSZAWQTEDXCKUSZUTVCAXAWDAFEAWQTFABTSCTSWQTVDGHBCVE
        VFZLVGZAWQTEXFKVGZUTVCAWDXBAEFXHXGVHVIWIWLVJVKVLVMAWFWEXDXEVNVOAWGWHWFW
        FPOAWFXDVPWHWEWFWFPEFDVQVRVSAEFPOWDWHVTMAEFXHXGWAWCWB $.
    $}
  $}

  ${
    $d x M $.  $d x N $.  $d x P $.  $d x Q $.  $d x R $.  $d x S $.  $d x X $.
    $d x ph $.  $d x Y $.
    dvle.m $e |- ( ph -> M e. RR ) $.
    dvle.n $e |- ( ph -> N e. RR ) $.
    dvle.a $e |- ( ph ->
      ( x e. ( M [,] N ) |-> A ) e. ( ( M [,] N ) -cn-> RR ) ) $.
    dvle.b $e |- ( ph ->
      ( RR _D ( x e. ( M (,) N ) |-> A ) ) = ( x e. ( M (,) N ) |-> B ) ) $.
    dvle.c $e |- ( ph ->
      ( x e. ( M [,] N ) |-> C ) e. ( ( M [,] N ) -cn-> RR ) ) $.
    dvle.d $e |- ( ph ->
      ( RR _D ( x e. ( M (,) N ) |-> C ) ) = ( x e. ( M (,) N ) |-> D ) ) $.
    dvle.f $e |- ( ( ph /\ x e. ( M (,) N ) ) -> B <_ D ) $.
    dvle.x $e |- ( ph -> X e. ( M [,] N ) ) $.
    dvle.y $e |- ( ph -> Y e. ( M [,] N ) ) $.
    dvle.l $e |- ( ph -> X <_ Y ) $.
    dvle.p $e |- ( x = X -> A = P ) $.
    dvle.q $e |- ( x = X -> C = Q ) $.
    dvle.r $e |- ( x = Y -> A = R ) $.
    dvle.s $e |- ( x = Y -> C = S ) $.
    $( If ` A ( x ) , C ( x ) ` are differentiable functions and
       ` A `` <_ C `` ` , then for ` x <_ y ` ,
       ` A ( y ) - A ( x ) <_ C ( y ) - C ( x ) ` .  (Contributed by Mario
       Carneiro, 16-May-2016.) $)
    dvle $p |- ( ph -> ( R - P ) <_ ( S - Q ) ) $=
      ( cmin co cicc wcel cr wral cmpt wf ccncf cncff syl eqid fmpt sylibr wceq
      cv eleq1d rspcv sylc resubcld caddc recnd subcld addcomd subsub2d subsubd
      cle 3eqtr4d cfv ccnfld ctopn subcn ax-resscn resubcl cncfmpt2ss cioo cpnf
      cc0 cdv wa wbr cdm wss ioossicc sseli r19.21bi sylan2 fmptd ioossre dvfre
      cico sylancl dmeqd lerel brrelex2i ralrimiva dmmptg eqtrd feq12d brrelexi
      cvv subge0d mpbird elrege0 sylanbrc crn ctg cc a1i iccssre syl2anc tgioo2
      mpbid cnt iccntr dvmptntr reelprrecn dvmptsub feq1d dvge0 oveq12d fvmpt3i
      cpr ovex 3brtr3d subled eqbrtrd ) AIJHUIUJZGANKLUKUJZULZCUMULZBYQUNZIUMUL
      ZUCAYQUMBYQCUOZUPZYTAUUBYQUMUQUJZULUUCQYQUMUUBURUSBYQUMCUUBUUBUTVAVBZYSUU
      ABNYQBVDZNVCZCIUMUGVEVFVGZAJHAYREUMULZBYQUNZJUMULZUCAYQUMBYQEUOZUPZUUJAUU
      LUUDULUUMSYQUMUULURUSBYQUMEUULUULUTVAVBZUUIUUKBNYQUUGEJUMUHVEVFVGZAMYQULZ
      UUJHUMULZUBUUNUUIUUQBMYQUUFMVCZEHUMUFVEVFVGZVHAUUPYTGUMULZUBUUEYSUUTBMYQU
      URCGUMUEVEVFVGZAIYPUIUJZHJIUIUJZUIUJZGVOAIHJUIUJZVIUJUVEIVIUJUVBUVDAIUVEA
      IUUHVJZAHJAHUUSVJZAJUUOVJZVKVLAIJHUVFUVHUVGVMAHJIUVGUVHUVFVNVPAHGUVCUUSUV
      AAJIUUOUUHVHAMBYQECUIUJZUOZVQZNUVJVQZHGUIUJZUVCVOAKLUVJMNOPABECUMUIVRVSVQ
      ZYQUVNUTZUVNUVOVTSQWAECWBWCAKLWDUJZWFWEWSUJZUMUVJWGUJZUPUVPUVQBUVPFDUIUJZ
      UOZUPABUVPUVSUVQUVTAUUFUVPULZWHZUVSUMULWFUVSVOWIZUVSUVQULUWBFDAFUMULZBUVP
      AUVPUMBUVPFUOZUPZUWDBUVPUNAUMBUVPEUOZWGUJZWJZUMUWHUPZUWFAUVPUMUWGUPUVPUMW
      KZUWJABUVPEUMUWGUWAAUUFYQULZUUIUVPYQUUFKLWLWMZAUUIBYQUUNWNZWOUWGUTWPKLWQZ
      UVPUWGWRWTAUWIUVPUMUWHUWETAUWIUWEWJZUVPAUWHUWETXAAFXIULZBUVPUNUWPUVPVCAUW
      QBUVPUWBDFVOWIZUWQUADFVOXBXCUSZXDBUVPFXIXEUSXFXGYABUVPUMFUWEUWEUTVAVBWNZA
      DUMULZBUVPAUVPUMBUVPDUOZUPZUXABUVPUNAUMBUVPCUOZWGUJZWJZUMUXEUPZUXCAUVPUMU
      XDUPUWKUXGABUVPCUMUXDUWAAUWLYSUWMAYSBYQUUEWNZWOUXDUTWPUWOUVPUXDWRWTAUXFUV
      PUMUXEUXBRAUXFUXBWJZUVPAUXEUXBRXAADXIULZBUVPUNUXIUVPVCAUXJBUVPUWBUWRUXJUA
      DFVOXBXHUSZXDBUVPDXIXEUSXFXGYABUVPUMDUXBUXBUTVAVBWNZVHUWBUWCUWRUAUWBFDUWT
      UXLXJXKUVSXLXMUVTUTWPAUVPUVQUVRUVTAUVRUMBUVPUVIUOWGUJUVTABUVIUMWDXNXOVQZU
      VNYQUVPUMXPWKAWAXQAKUMULZLUMULZYQUMWKOPKLXRXSAUWLWHZUVIUXPECUWNUXHVHVJUVN
      UVOXTUVOAUXNUXOYQUXMYBVQVQUVPVCOPKLYCXSYDABEFCDUMXIXIUVPUMUMXPYKULAYEXQUW
      AAUWLEXPULUWMUXPEUWNVJWOUWSTUWAAUWLCXPULUWMUXPCUXHVJWOUXKRYFXFYGXKUBUCUDY
      HAUUPUVKUVMVCUBBMUVIUVMYQUVJUUREHCGUIUFUEYIUVJUTZECUIYLZYJUSAYRUVLUVCVCUC
      BNUVIUVCYQUVJUUGEJCIUIUHUGYIUXQUXRYJUSYMYNYOYN $.
  $}

  ${
    $d w x y A $.  $d w x y B $.  $d w x y F $.  $d w x z G $.  $d w x y z M $.
    $d x y C $.  $d w x y z N $.  $d w x y z ph $.
    dvivth.1 $e |- ( ph -> M e. ( A (,) B ) ) $.
    dvivth.2 $e |- ( ph -> N e. ( A (,) B ) ) $.
    dvivth.3 $e |- ( ph -> F e. ( ( A (,) B ) -cn-> RR ) ) $.
    dvivth.4 $e |- ( ph -> dom ( RR _D F ) = ( A (,) B ) ) $.
    ${
      dvivth.5 $e |- ( ph -> M < N ) $.
      dvivth.6 $e |- ( ph ->
        C e. ( ( ( RR _D F ) ` N ) [,] ( ( RR _D F ) ` M ) ) ) $.
      dvivth.7 $e |- G = ( y e. ( A (,) B ) |-> ( ( F ` y ) - ( C x. y ) ) ) $.
      $( Lemma for ~ dvivth .  (Contributed by Mario Carneiro, 24-Feb-2015.) $)
      dvivthlem1 $p |- ( ph -> E. x e. ( M [,] N ) ( ( RR _D F ) ` x ) = C ) $=
        ( co cr wcel vz vw cv cicc cres cfv cle wbr wral wrex wceq cioo ioossre
        cdv sseldi ltled ccncf wf cmul cmin cncff syl ffvelrnda wss cdm sylancl
        dvfre eleqtrrd ffvelrnd iccssre syl2anc sseldd adantr remulcld resubcld
        wa a1i sselda fmptd iccssioo2 fssresd cc wb ax-resscn oveq2i reelprrecn
        fss cmpt cpr recnd feq2d mpbid feqmptd oveq2d eqtr3d crn ccnfld remulcl
        ctg ctopn sylan c1 1cnd dvmptid dvmptcmul mulid1d eqtrd eqid cvv mpbird
        simpld fvres wi ad2antrr cc0 weq fveq2 oveq1d simprl simprr sylib exp32
        wo clt eliooord cxr w3a c0 rexrd elioo2 mpbir3and eqeltrd simprd xrltle
        ovex mpd raleqdv fveq2d letri3d mpbir2and mpteq2dv tgioo2 syl5eq dmmptg
        iooretop dvmptres dvmptsub dmeqd mprg syl6eq dvcn syl31anc rescncf sylc
        cncffvrn sylancr evthicc breqan12rd ralbidva adantl ssralv ax-mp syl6bi
        ioossicc syldan fveq1d fvmpt syl5ss breq1d cbvralv subeq0d vex elpr wne
        dvferm ne0i ndmioo necon1ai 3syl iooss2 dvferm1 eqbrtrrd suble0d elicc2
        simp3d breqtrrd simp2d eqbrtrd iooss1 dvferm2 breqtrd subge0d jaod elun
        syl5bi cun prunioo syl3anc eleq2d syl5bbr biimpar mpjaod syld reximdva
        ) AUAUCZHIJUDRZUEZUFZBUCZUXGUFZUGUHZUAUXFUIZBUXFUJZUXISGUNRZUFZFUKZBUXF
        UJAUXMUXJUXHUGUHUAUXFUIBUXFUJABUABUAIJUXGADEULRZSIDEUMZKUOZAUXQSJUXRLUO
        ZAIJUXSUXTOUPZAUXGUXFSUQRTZUXFSUXGURZAUXQSUXFHACUXQCUCZGUFZFUYDUSRZUTRZ
        SHAUYDUXQTZVPZUYEUYFAUXQSUYDGAGUXQSUQRTUXQSGURZMUXQSGVAVBZVCZUYIFUYDAFS
        TZUYHAJUXNUFZIUXNUFZUDRZSFAUYNSTZUYOSTZUYPSVDAUXNVEZSJUXNAUYJUXQSVDZUYS
        SUXNURZUYKUXRUXQGVGVFZAJUXQUYSLNVHVIZAUYSSIUXNVUBAIUXQUYSKNVHVIZUYNUYOV
        JVKPVLZVMZAUXQSUYDUYTAUXRVQZVRVNZVOQVSZAIUXQTZJUXQTZUXFUXQVDZKLDEIJVTVK
        ZWAASWBVDZUXGUXFWBUQRTZUYBUYCWCWDAVULHUXQWBUQRTZVUOVUMAVUNUXQWBHURZUYTS
        HUNRZVEZUXQUKZVUPVUNAWDVQZAUXQSHURZVUNVUQVUIWDUXQSWBHWGVFVUGAVUSCUXQUYD
        UXNUFZFUTRZWHZVEZUXQAVURVVEAVURSCUXQUYGWHZUNRVVEHVVGSUNQWEACUYEVVCUYFFS
        SSUXQSSWBWITAWFVQZUYIUYEUYLWJAUXQSUYDUXNAVUAUXQSUXNURVUBAUYSUXQSUXNNWKW
        LZVCAUXNSCUXQUYEWHZUNRCUXQVVCWHAGVVJSUNACUXQSGUYKWMWNACUXQSUXNVVIWMWOUY
        IUYFVUHWJVUFACUYFFSULWPWSUFZWQWTUFZSSUXQVVHAUYDSTZVPZUYFAUYMVVMUYFSTVUE
        FUYDWRXAWJAUYMVVMVUEVMASCSUYFWHUNRCSFXBUSRZWHCSFWHACUYDXBFSWBSVVHASWBUY
        DVVAVRVVNXCACSVVHXDAFVUEWJZXEACSVVOFAFVVPXFUUAXGVUGVVLVVLXHZUUBVVQUXQVV
        KTADEUUEVQUUFUUGUUCZUUHVVDXITZVVFUXQUKCUXQCUXQVVDXIUUDVVSUYHVVCFUTYOVQU
        UIUUJZUXQSHUUKUULUXQWBUXFHUUMUUNUXFWBSUXGUUOUUPXJUUQXKAUXLUXPBUXFAUXIUX
        FTZVPZUXLUXEHUFZUXIHUFZUGUHZUAIJULRZUIZUXPVWBUXLVWEUAUXFUIZVWGVWAUXLVWH
        WCAVWAUXKVWEUAUXFUXEUXFTVWAUXHVWCUXJVWDUGUXEUXFHXLUXIUXFHXLUURUUSUUTVWF
        UXFVDVWHVWGXMIJUVDZVWEUAVWFUXFUVAUVBUVCVWBUXIVWFTZVWGUXPXMZUXIIJWIZTZVW
        BVWJVWGUXPVWBVWJVWGVPZVPZUXOFVWBUXOWBTVWNVWBUXOAVWAUXIUXQTZUXOSTZAUXFUX
        QUXIVUMVRZAUXQSUXIUXNVVIVCUVEZWJVMAFWBTVWAVWNVVPXNVWOUXIVURUFZUXOFUTRZX
        OVWBVWTVXAUKZVWNVWBVWTUXIVVEUFZVXAAVWTVXCUKVWAAUXIVURVVEVVRUVFVMVWBVWPV
        XCVXAUKVWRCUXIVVDVXAUXQVVECBXPVVCUXOFUTUYDUXIUXNXQXRVVEXHUXOFUTYOUVGVBX
        GZVMVWOUBIJUXIHUXQAVVBVWAVWNVUIXNUYTVWOUXRVQVWBVWJVWGXSAVWFUXQVDVWAVWNA
        VWFUXFUXQVWIVUMUVHXNVWOUXIUXQVUSVWBVWPVWNVWRVMAVUTVWAVWNVVTXNVHVWOVWGUB
        UCZHUFZVWDUGUHZUBVWFUIZVWBVWJVWGXTVWEVXGUAUBVWFUAUBXPVWCVXFVWDUGUXEVXEH
        XQUVIUVJZYAUVOWOUVKYBVWMUXIIUKZUXIJUKZYCVWBVWKUXIIJBUVLUVMVWBVXJVWKVXKV
        WBVXJVWGUXPVWBVXJVWGVPZVPZUXPUXOFUGUHZFUXOUGUHZVXMVXAXOUGUHVXNVXMVWTVXA
        XOUGVWBVXBVXLVXDVMVXMUBDJUXIHUXQAVVBVWAVXLVUIXNUYTVXMUXRVQVXMUXIIDJULRZ
        VWBVXJVWGXSZAIVXPTZVWAVXLAVXRISTZDIYDUHZIJYDUHZUXSAVXTIEYDUHZAVUJVXTVYB
        VPKIDEYEVBXKZOADYFTZJYFTZVXRVXSVXTVYAYGWCAVYDEYFTZAVUJUXQYHUVNVYDVYFVPZ
        KUXQIUVPVYGUXQYHDEUVQUVRUVSZXKZAJUXTYIZDJIYJVKYKXNYLAVXPUXQVDZVWAVXLAVY
        FJEUGUHZVYKAVYDVYFVYHYMZAJEYDUHZVYLADJYDUHZVYNAVUKVYOVYNVPLJDEYEVBYMZAV
        YEVYFVYNVYLXMVYJVYMJEYNVKYPDJEUVTVKXNVXMUXIUXQVUSVWBVWPVXLVWRVMAVUTVWAV
        XLVVTXNVHVXMVXGUBUXIJULRZUIVXHVXMVWGVXHVWBVXJVWGXTVXIYAVXMVXGUBVYQVWFVX
        MUXIIJULVXQXRYQXJUWAUWBVXMUXOFVWBVWQVXLVWSVMZAUYMVWAVXLVUEXNZUWCWLVXMFU
        YOUXOUGAFUYOUGUHZVWAVXLAUYMUYNFUGUHZVYTAFUYPTZUYMWUAVYTYGZPAUYQUYRWUBWU
        CWCVUCVUDUYNUYOFUWDVKWLZUWEXNVXMUXIIUXNVXQYRUWFVXMUXOFVYRVYSYSYTYBVWBVX
        KVWGUXPVWBVXKVWGVPZVPZUXPVXNVXOWUFUXOUYNFUGWUFUXIJUXNVWBVXKVWGXSZYRAWUA
        VWAWUEAUYMWUAVYTWUDUWGXNUWHWUFXOVXAUGUHVXOWUFXOVWTVXAUGWUFUBIEUXIHUXQAV
        VBVWAWUEVUIXNUYTWUFUXRVQWUFUXIJIEULRZWUGAJWUHTZVWAWUEAWUIJSTZVYAVYNUXTO
        VYPAIYFTZVYFWUIWUJVYAVYNYGWCAIUXSYIZVYMIEJYJVKYKXNYLAWUHUXQVDZVWAWUEAVY
        DDIUGUHZWUMVYIAVXTWUNVYCAVYDWUKVXTWUNXMVYIWULDIYNVKYPDIEUWIVKXNWUFUXIUX
        QVUSVWBVWPWUEVWRVMAVUTVWAWUEVVTXNVHWUFVXGUBIUXIULRZUIVXHWUFVWGVXHVWBVXK
        VWGXTVXIYAWUFVXGUBWUOVWFWUFUXIJIULWUGWNYQXJUWJVWBVXBWUEVXDVMUWKWUFUXOFV
        WBVWQWUEVWSVMZAUYMVWAWUEVUEXNZUWLWLWUFUXOFWUPWUQYSYTYBUWMUWOAVWJVWMYCZV
        WAWURUXIVWFVWLUWPZTAVWAUXIVWFVWLUWNAWUSUXFUXIAWUKVYEIJUGUHWUSUXFUKWULVY
        JUYAIJUWQUWRUWSUWTUXAUXBUXCUXDYP $.

      $( Lemma for ~ dvivth .  (Contributed by Mario Carneiro, 20-Feb-2015.) $)
      dvivthlem2 $p |- ( ph -> C e. ran ( RR _D F ) ) $=
        ( vx co wcel cc cv cr cdv cfv wceq cicc wrex crn dvivthlem1 wa cioo wfn
        wf cdm dvf feq2d mpbii ffn syl adantr iccssioo2 syl2anc sselda fnfvelrn
        wss eleq1 syl5ibcom rexlimdva mpd ) AQUAZUBFUCRZUDZEUEZQHIUFRZUGEVKUHZS
        ZAQBCDEFGHIJKLMNOPUIAVMVPQVNAVJVNSZUJZVLVOSZVMVPVRVKCDUKRZULZVJVTSVSAWA
        VQAVTTVKUMZWAAVKUNZTVKUMWBFUOAWCVTTVKMUPUQVTTVKURUSUTAVNVTVJAHVTSIVTSVN
        VTVEJKCDHIVAVBVCVTVJVKVDVBVLEVOVFVGVHVI $.
    $}

    $( Darboux' theorem, or the intermediate value theorem for derivatives.  A
       differentiable function's derivative satisfies the intermediate value
       property, even though it may not be continuous (so that ~ ivthicc does
       not directly apply).  (Contributed by Mario Carneiro, 24-Feb-2015.) $)
    dvivth $p |- ( ph ->
      ( ( ( RR _D F ) ` M ) [,] ( ( RR _D F ) ` N ) ) C_ ran ( RR _D F ) ) $=
      ( vw cr co cfv wceq wa wcel adantr syl cc vx vy clt wbr cdv cicc crn cioo
      wss cv wrex cneg cmpt cmul cmin ccncf cncff ffvelrnda renegcld eqid fmptd
      wf wb ax-resscn ssid cncfss mp2an sseldi negfcncf cncffvrn sylancr mpbird
      cdm cvv cpr reelprrecn a1i recnd fvexd feqmptd oveq2d ioossre dvfre feq2d
      sylancl mpbid eqtr3d dvmptneg dmeqd dmmptg negex syl6eq ffvelrnd eleqtrrd
      mprg simprl simprr iccssre syl2anc sseldd iccneg fveq1d fveq2 fvmpt eqtrd
      syl3anc negeqd oveq12d dvivthlem2 rneqd eleqtrd elrnmpt ax-mp sylib eqcom
      dvmptcl neg11ad syl6bb rexbidva wfn ffn fvelrnb expr ssrdv csn oveq1d cxr
      rexrd iccid sylan9eqr fnfvelrn snssd eqsstrd lttri4d mpjao3dan ) AEFUCUDZ
      ELDUEMZNZFYQNZUFMZYQUGZUIEFOZFEUCUDZAYPPUAYTUUAAYPUAUJZYTQZUUDUUAQZAYPUUE
      PZPZUUFKUJZYQNZUUDOZKBCUHMZUKZUUHUUDULZUUJULZOZKUULUKZUUMUUHUUNKUULUUOUMZ
      UGZQZUUQUUHUUNLKUULUUIDNZULZUMZUEMZUGUUSUUHUBBCUUNUVCUBUULUBUJZUVCNUUNUVE
      UNMUOMUMZEFAEUULQZUUGGRZAFUULQZUUGHRZAUVCUULLUPMZQZUUGAUVLUULLUVCVBZAKUUL
      UVBLUVCAUUIUULQZPUVAAUULLUUIDADUVKQZUULLDVBZIUULLDUQSZURUSUVCUTZVAALTUIZU
      VCUULTUPMZQZUVLUVMVCVDADUVTQUWAAUVKUVTDUVSTTUIUVKUVTUIVDTVEUULLTVFVGIVHKU
      ULDUVCUVRVISUULTLUVCVJVKVLRUUHUVDVMUURVMZUULUUHUVDUURUUHKUVAUUJLVNUULLLTV
      OQUUHVPVQZUUHUVNPZUVAUUHUULLUUIDAUVPUUGUVQRZURVRZUWDUUIYQVSZUUHYQLKUULUVA
      UMZUEMKUULUUJUMUUHDUWHLUEUUHKUULLDUWEVTWAUUHKUULLYQAUULLYQVBZUUGAYQVMZLYQ
      VBZUWIAUVPUULLUIUWKUVQBCWBZUULDWCWEZAUWJUULLYQJWDWFZRZVTWGZWHZWIUUOVNQZUW
      BUULOKUULKUULUUOVNWJUWRUVNUUJWKVQWOWLAYPUUEWPUUHUUNYSULZYRULZUFMZFUVDNZEU
      VDNZUFMUUHUUEUUNUXAQZAYPUUEWQZUUHYRLQZYSLQZUUDLQUUEUXDVCAUXFUUGAUULLEYQUW
      NGWMZRAUXGUUGAUWJLFYQUWMAFUULUWJHJWNZWMZRUUHYTLUUDAYTLUIZUUGAUXFUXGUXKUXH
      UXJYRYSWRWSRUXEWTZYRYSUUDXAXFWFUUHUXBUWSUXCUWTUFUUHUXBFUURNZUWSUUHFUVDUUR
      UWQXBUUHUVIUXMUWSOUVJKFUUOUWSUULUURUUIFOUUJYSUUIFYQXCXGUURUTZYSWKXDSXEUUH
      UXCEUURNZUWTUUHEUVDUURUWQXBUUHUVGUXOUWTOUVHKEUUOUWTUULUURUUIEOUUJYRUUIEYQ
      XCXGUXNYRWKXDSXEXHWNUVFUTXIUUHUVDUURUWQXJXKUUNVNQUUTUUQVCUUDWKKUULUUOUUNU
      URVNUXNXLXMXNUUHUUPUUKKUULUWDUUPUUDUUJOUUKUWDUUDUUJUUHUUDTQUVNUUHUUDUXLVR
      RUUHKUVAUUJLVNUULUWCUWFUWGUWPXPXQUUDUUJXOXRXSWFUUHYQUULXTZUUFUUMVCUUHUWIU
      XPUWOUULLYQYASKUULUUDYQYBSVLYCYDAUUBPYTYSYEZUUAUUBAYTYSYSUFMZUXQUUBYRYSYS
      UFEFYQXCYFAYSYGQUXRUXQOAYSUXJYHYSYISYJAUXQUUAUIUUBAYSUUAAYQUWJXTZFUWJQYSU
      UAQAUWKUXSUWMUWJLYQYASUXIUWJFYQYKWSYLRYMAUUCPUAYTUUAAUUCUUEUUFAUUCUUEPZPU
      BBCUUDDUBUULUVEDNUUDUVEUNMUOMUMZFEAUVIUXTHRAUVGUXTGRAUVOUXTIRAUWJUULOUXTJ
      RAUUCUUEWPAUUCUUEWQUYAUTXIYCYDAEFAUULLEUWLGVHAUULLFUWLHVHYNYO $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z F $.  $d x y z ph $.
    dvne0.a $e |- ( ph -> A e. RR ) $.
    dvne0.b $e |- ( ph -> B e. RR ) $.
    dvne0.f $e |- ( ph -> F e. ( ( A [,] B ) -cn-> RR ) ) $.
    dvne0.d $e |- ( ph -> dom ( RR _D F ) = ( A (,) B ) ) $.
    dvne0.z $e |- ( ph -> -. 0 e. ran ( RR _D F ) ) $.
    $( A function on a closed interval with nonzero derivative is either
       monotone increasing or monotone decreasing.  (Contributed by Mario
       Carneiro, 19-Feb-2015.) $)
    dvne0 $p |- ( ph -> ( F Isom < , < ( ( A [,] B ) , ran F ) \/
      F Isom < , `' < ( ( A [,] B ) , ran F ) ) ) $=
      ( co clt cr cc0 wceq crp wcel wa wb adantr cfv vx vy vz cicc wiso ccnv wo
      crn cdv cmnf cioo cin c0 wss cun cv wne wn notbid syl5ibrcom necon2ad imp
      eleq1 wbr cdm ccncf cncff syl iccssre syl2anc dvfre frn sselda 0re lttri2
      sylancl cxr 0xr elioomnf ax-mp baib elrp orbi12d bitr4d mpbid elun sylibr
      wf ex ssrdv disjssun syl5ibcom wfn feq2d ffn anim1i df-f dvgt0 syldan wex
      orcd n0 elin wrex fvelrnb wral ffvelrnda cle ad2antrr cres simplrl simprl
      wi ioossicc rescncf mpsyl ctg cnt cc ax-resscn a1i fss syl5ss ccnfld eqid
      ctopn tgioo2 dvres syl22anc ctop retop isopn3i mp2an reseq2i eqtrd fveq1d
      iooretop expr sylanbrc syl5bi fnresdm syl5eq dmeqd dvivth oveq12d 3sstr3d
      rneqd simplrr sylib simprd simpld ltle mpd simprr elicc2 mpbir3and sseldd
      mtod ltnle mpbird ralrimiva ffnfv dvlt0 olcd imbi1d rexlimdva sylbid impd
      w3a exlimdv pm2.61dane ) ABCUDJZDUHZKKDUEZUVLUVMKKUFDUEZUGZLDUIJZUHZUJMUK
      JZULZUMAUVTUMNZUVROUNZUVPAUWAUWBAUVRUVSOUOZUNUWAUWBAUAUVRUWCAUAUPZUVRPZUW
      DUWCPZAUWEQZUWDUVSPZUWDOPZUGZUWFUWGUWDMUQZUWJAUWEUWKAUWEUWDMAUWEURUWDMNZM
      UVRPZURZIUWLUWEUWMUWDMUVRVCUSUTVAVBUWGUWKUWDMKVDZMUWDKVDZUGZUWJUWGUWDLPZM
      LPZUWKUWQRAUVRLUWDAUVQVEZLUVQWHZUVRLUNAUVLLDWHZUVLLUNZUXAADUVLLVFJPZUXBGU
      VLLDVGVHZABLPZCLPZUXCEFBCVIVJZUVLDVKVJZUWTLUVQVLVHVMZVNUWDMVOVPUWGUWRUWJU
      WQRUXJUWRUWHUWOUWIUWPUWHUWRUWOMVQPZUWHUWRUWOQRVRMUWDVSVTWAUWIUWRUWPUWDWBW
      AWCVHWDWEUWDUVSOWFWGWIWJUVRUVSOWKWLVBAUWBQZUVNUVOUXLBCDAUXFUWBESAUXGUWBFS
      AUXDUWBGSUXLUVQBCUKJZWMZUWBQUXMOUVQWHAUXNUWBAUXMLUVQWHZUXNAUXAUXOUXIAUWTU
      XMLUVQHWNWEZUXMLUVQWOVHZWPUXMOUVQWQWGWRXAWSAUVTUMUQZUVPUXRUWDUVTPZUAWTAUV
      PUAUVTXBAUXSUVPUAUXSUWEUWHQAUVPUWDUVRUVSXCAUWEUWHUVPAUWEUBUPZUVQTZUWDNZUB
      UXMXDZUWHUVPXMZAUXNUWEUYCRUXQUBUXMUWDUVQXEVHAUYBUYDUBUXMAUXTUXMPZQUYAUVSP
      ZUVPXMUYBUYDAUYEUYFUVPAUYEUYFQZQZUVOUVNUYHBCDAUXFUYGESAUXGUYGFSAUXDUYGGSU
      YHUXNUCUPZUVQTZUVSPZUCUXMXFUXMUVSUVQWHAUXNUYGUXQSUYHUYKUCUXMUYHUYIUXMPZQZ
      UYJLPZUYJMKVDZUYKUYHUXMLUYIUVQAUXOUYGUXPSXGZUYMUYOMUYJXHVDZURZUYMUYQUWMAU
      WNUYGUYLIXIUYHUYLUYQUWMUYHUYLUYQQZQZUYAUYJUDJZUVRMUYTUXTLDUXMXJZUIJZTZUYI
      VUCTZUDJVUCUHVUAUVRUYTBCVUBUXTUYIAUYEUYFUYSXKUYHUYLUYQXLZAVUBUXMLVFJPZUYG
      UYSUXMUVLUNAUXDVUGBCXNZGUVLLUXMDXOXPXIAVUCVEZUXMNUYGUYSAVUIUWTUXMAVUCUVQA
      VUCUVQUXMUKUHXQTZXRTTZXJZUVQALXSUNZUVLXSDWHZUXCUXMLUNVUCVULNVUMAXTYAAUXBV
      UMVUNUXEXTUVLLXSDYBVPUXHAUXMUVLLVUHUXHYCUVLUXMLVUJDYDYFTZVUOYEZVUOVUPYGYH
      YIAVULUVQUXMXJZUVQVUKUXMUVQVUJYJPUXMVUJPVUKUXMNYKBCYQUXMVUJYLYMYNAUXNVUQU
      VQNUXQUXMUVQUUAVHUUBYOZUUCHYOXIUUDUYTVUDUYAVUEUYJUDUYTUXTVUCUVQAVUCUVQNUY
      GUYSVURXIZYPUYTUYIVUCUVQVUSYPUUEUYTVUCUVQVUSUUGUUFUYTMVUAPZUWSUYAMXHVDZUY
      QUWSUYTVNYAUYTUYAMKVDZVVAUYTUYALPZVVBUYTUYFVVCVVBQZAUYEUYFUYSUUHUXKUYFVVD
      RVRMUYAVSVTUUIZUUJUYTVVCUWSVVBVVAXMUYTVVCVVBVVEUUKZVNUYAMUULVPUUMUYHUYLUY
      QUUNUYTVVCUYNVUTUWSVVAUYQUVIRVVFUYHUYSUYLUYNVUFUYPWSUYAUYJMUUOVJUUPUUQYRU
      URUYMUYNUWSUYOUYRRUYPVNUYJMUUSVPUUTUXKUYKUYNUYOQRVRMUYJVSVTYSUVAUCUXMUVSU
      VQUVBYSUVCUVDYRUYBUYFUWHUVPUYAUWDUVSVCUVEWLUVFUVGUVHYTUVJYTVBUVK $.

    $( A function on a closed interval with nonzero derivative is one-to-one.
       (Contributed by Mario Carneiro, 19-Feb-2015.) $)
    dvne0f1 $p |- ( ph -> F : ( A [,] B ) -1-1-> RR ) $=
      ( cicc co crn wf1 cr wss clt wiso ccnv isof1o 3syl wf1o dvne0 f1of1 ccncf
      wo jaoi wcel wf cncff frn f1ss syl2anc ) ABCJKZDLZDMZUNNOZUMNDMAUMUNPPDQZ
      UMUNPPRZDQZUEUMUNDUAZUOABCDEFGHIUBUQUTUSUMUNPPDSUMUNPURDSUFUMUNDUCTADUMNU
      DKUGUMNDUHUPGUMNDUIUMNDUJTUMUNNDUKUL $.
  $}

  ${
    $d d e r v x y z B $.  $d t D $.  $d d e r u v w x y z ph $.  $d u w z R $.
    $d d e r t u v w x y z A $.  $d r t u v w x E $.  $d r u v w x z X $.
    $d d e r t u v w x y z C $.  $d d e r t u v w x y z F $.
    $d d e r t u v w x y z G $.
    lhop1.a $e |- ( ph -> A e. RR ) $.
    lhop1.b $e |- ( ph -> B e. RR* ) $.
    lhop1.l $e |- ( ph -> A < B ) $.
    lhop1.f $e |- ( ph -> F : ( A (,) B ) --> RR ) $.
    lhop1.g $e |- ( ph -> G : ( A (,) B ) --> RR ) $.
    lhop1.if $e |- ( ph -> dom ( RR _D F ) = ( A (,) B ) ) $.
    lhop1.ig $e |- ( ph -> dom ( RR _D G ) = ( A (,) B ) ) $.
    lhop1.f0 $e |- ( ph -> 0 e. ( F limCC A ) ) $.
    lhop1.g0 $e |- ( ph -> 0 e. ( G limCC A ) ) $.
    lhop1.gn0 $e |- ( ph -> -. 0 e. ran G ) $.
    lhop1.gd0 $e |- ( ph -> -. 0 e. ran ( RR _D G ) ) $.
    lhop1.c $e |- ( ph -> C e. ( ( z e. ( A (,) B ) |->
      ( ( ( RR _D F ) ` z ) / ( ( RR _D G ) ` z ) ) ) limCC A ) ) $.
    ${
      lhop1lem.e $e |- ( ph -> E e. RR+ ) $.
      lhop1lem.d $e |- ( ph -> D e. RR ) $.
      lhop1lem.db $e |- ( ph -> D <_ B ) $.
      lhop1lem.x $e |- ( ph -> X e. ( A (,) D ) ) $.
      lhop1lem.t $e |- ( ph -> A. t e. ( A (,) D )
       ( abs ` ( ( ( ( RR _D F ) ` t ) / ( ( RR _D G ) ` t ) ) - C ) ) < E ) $.
      lhop1lem.r $e |- R = ( A + ( r / 2 ) ) $.
      $( Lemma for ~ lhop1 .  (Contributed by Mario Carneiro, 29-Dec-2016.) $)
      lhop1lem $p |- ( ph ->
          ( abs ` ( ( ( F ` X ) / ( G ` X ) ) - C ) ) < ( 2 x. E ) ) $=
        ( vv vx vu vw cfv cdiv co cmin cabs c2 cmul cioo cr cxr wcel cle iooss2
        wbr wss syl2anc sseldd ffvelrnd recnd cc0 crn wn wne wceq wfn syl eleq1
        wf syl5ibcom necon3bd mpd divcld cv cdv cmpt climc cc sseldi subcld a1i
        rpred cdif cin crab wa wrex wi wral clt crp cnxmet adantr oveq1i fveq2d
        wb eqid rexrd syl22anc mpbird ltled sselda ad2antrr ccncf ax-resscn cdm
        cres sylancl sylancr sylc eqtrd sylib syl3anc fvres fveq2 oveq2d oveq1d
        oveq12d breq1d mp2an crest ctx ctopon cvv ax-mp limcresi ffn limccl 2re
        fnfvelrn abscld remulcld csn cima ccnfld ctopn ccom cbl simprl eliooord
        cxmt simprr simpld ioossre difrp mpbid cnfldtopn mopni3 caddc rehalfcld
        syl31anc readdcld cnmetdval halfcld pncan2d syl5eq rpge0d absidd 3eqtrd
        syl5eqel rphalfcld rphalflt eqbrtrd elbl3 ltaddrpd syl6breqr ltaddsub2d
        resubcld lttrd syl5eqbr elioo2 mpbir3and elind simprd xrletrd ffvelrnda
        w3a syldan subeq0ad cicc adantl xrltletrd iccssioo fss cncffvrn rescncf
        dvcn ctg cnt syl6ss tgioo2 dvres iccntr reseq2d dmeqd ioossicc sseqtr4d
        syl5ss ssdmres ubicc2 lbicc2 eqeq12d biimpar eqcomd fveq1d sylan9eq dvf
        rolle feq2d mpbii eqeltrd rexlimdva sylbid ralrimiva neeq1d rspcv sstrd
        iccssre iooss1 cmvth mulcomd divmuleqd bitr4d rexbidva oveq1 syl5ibrcom
        ex rspcev adantlr ssrin lbioo disjsn mpbir disj3 ineq2i syl6sseq ssrexv
        mpbi syl5com anassrs expimpd inss2 difss sstri sseli ovex fvmpt rexbiia
        c0 sylibr fnmpti rexima dfrex2 simprbi nsyl expr ralinexa notbid elrab3
        ssrab notrab ccld abssub sylan rabbidva blcld eqeltrrd toponunii cldopn
        cnfldtopon syl5eqelr eldifsn sylanbrc ssid cxp cnex ssexi txrest restid
        mp4an eqtr2i subid1d txtopon eqcomi resmpt cncfmptc cnmptlimc feqresmpt
        sseqtri eqidd syl5sseq ccn cop ccnp subcn opelxpi cncnpi limccnp2 divcn
        resttopon fmptd ellimc2 eleq2 sseq2 anbi2d rexbidv imbi12d sylbird mt3d
        0cn c1 mulid2d 1red 1lt2 ltmul1dd eqbrtrrd lelttrd ) ALJUPZLKUPZUQURZFU
[encoded data, 10480 characters]
        YFAVYEVAIAVYGWVBUFVYEVAXDVIAVYHWOVYIVYJVYK $.
    $}

    $( L'H&ocirc;pital's Rule for limits from the right.  If ` F ` and ` G `
       are differentiable real functions on ` ( A , B ) ` , and ` F ` and ` G `
       both approach 0 at ` A ` , and ` G ( x ) ` and ` G ` ' ` ( x ) ` are not
       zero on ` ( A , B ) ` , and the limit of
       ` F ` ' ` ( x ) / G ` ' ` ( x ) ` at ` A ` is ` C ` , then the limit
       ` F ( x ) / G ( x ) ` at ` A ` also exists and equals ` C ` .
       (Contributed by Mario Carneiro, 29-Dec-2016.) $)
    lhop1 $p |- ( ph -> C e. ( ( z e. ( A (,) B ) |->
      ( ( F ` z ) / ( G ` z ) ) ) limCC A ) ) $=
      ( wcel vy vd ve vv vx vr cioo co cv cdv cfv cdiv cmpt climc wne cmin cabs
      cr cc clt wbr wa wi wral crp wrex simpr rphalfcld breq2 imbi2d rexralbidv
      c2 wceq rspcv syl caddc cle cif crab cin eliooord adantl simprd biantrurd
      rabid sseldi ad3antrrr rpred adantr ltsubaddd cxr rexrd ad2antrr readdcld
      ioossre xrltmin syl3anc 3bitr4rd ifcld simpld w3a elioo5 baibd breq1d wss
      wb syl2anc eleq1 weq fveq2 oveq12d eqid ovex fvmpt3i oveq1d fveq2d wf cdm
      cc0 crn wn a1i expr sylbid ralrimdva dvf feq2d ffvelrnda wfn ffn fnfvelrn
      mpbii sylan syl5ibcom necon3bd mpd divcld fmptd recnd ellimc3 ltled sylib
      syl31anc abssubge0d 3bitr4d rabbi2dva xrmin1 iooss2 sseqin2 eqtr3d eleq2d
      syl5bbr lbioo mtbiri necon2ai bicomd imbi12d ralbiia oveq1 ralrab adantrr
      bitr4i raleqdv cmul cioc simprll ifclda ltaddrp2d mpbir2and xrmin2 elioc1
      iocssre mpbir3and sseldd simprlr simprr lhop1lem rpcnd 2cnd 2ne0 divcan2d
      breqtrd syl5bi expdimp sylibrd com23 reximdva syld anim2d ax-resscn sstri
      adantld 3imtr4d ) AEBCDUGUHZBUIZURFUJUHZUKZUWOURGUJUHZUKZULUHZUMZCUNUHTZE
      BUWNUWOFUKZUWOGUKZULUHZUMZCUNUHTZSAEUSTZUAUIZCUOZUXICUPUHZUQUKZUBUIZUTVAZ
      VBZUXIUXAUKZEUPUHZUQUKZUCUIZUTVAZVCZUAUWNVDUBVEVFZUCVEVDZVBUXHUDUIZCUOZUY
      DCUPUHZUQUKZUXMUTVAZVBZUYDUXFUKZEUPUHZUQUKZUEUIZUTVAZVCZUDUWNVDZUBVEVFZUE
      VEVDZVBUXBUXGAUYCUYRUXHAUYCUYQUEVEAUYMVETZVBZUYCUXOUXRUYMVLULUHZUTVAZVCZU
      AUWNVDZUBVEVFZUYQUYTVUAVETZUYCVUEVCUYTUYMAUYSVGZVHZUYBVUEUCVUAVEUXSVUAVMZ
      UYAVUCUBUAVEUWNVUIUXTVUBUXOUXSVUAUXRUTVIVJVKVNVOUYTVUDUYPUBVEUYTUXMVETZVB
      ZVUDUYOUDUWNVUKUYDUWNTZVBZUYIVUDUYNVUMUYHVUDUYNVCZUYEVUMUYHVUDUYDFUKZUYDG
      UKZULUHZEUPUHZUQUKZUYMUTVAZVCZVUNVUKVULUYHVVAVUKVULUYHVBZUYDCDUXMCVPUHZVQ
      VAZDVVCVRZUGUHZTZVVAVVBUYDUYHUDUWNVSZTVUKVVGUYHUDUWNWEVUKVVHVVFUYDVUKUWNV
      VFVTZVVHVVFVUKUYHUDUWNVVFVUMUYDVVEUTVAZUYFUXMUTVAZVVGUYHVUMUYDVVCUTVAZUYD
      DUTVAZVVLVBZVVKVVJVUMVVMVVLVUMCUYDUTVAZVVMVULVVOVVMVBVUKUYDCDWAWBZWCWDVUM
      UYDCUXMVUMUWNURUYDCDWOZVUKVULVGWFZACURTZUYSVUJVULHWGZVUKUXMURTZVULVUKUXMU
      YTVUJVGWHZWIWJVUMUYDWKTZDWKTZVVCWKTZVVJVVNXFVUMUYDVVRWLZAVWDUYSVUJVULIWGZ
      VUKVWEVULVUKVVCVUKUXMCVWBAVVSUYSVUJHWMWNWLZWIZUYDDVVCWPWQWRVUMCWKTZVVEWKT
      ZVWCVVOVVGVVJXFVUMCVVTWLVUMVVDDVVCWKVWGVWIWSVWFVUMVVOVVMVVPWTZVWJVWKVWCXA
      VVGVVOVVJCVVEUYDXBXCUUCVUMUYGUYFUXMUTVUMCUYDVVTVVRVUMCUYDVVTVVRVWLUUAUUDX
      DUUEUUFVUKVVFUWNXEZVVIVVFVMVUKVWDVVEDVQVAZVWMAVWDUYSVUJIWMZVUKVWDVWEVWNVW
      OVWHDVVCUUGZXGCVVEDUUHXGVVFUWNUUIUUBUUJZUUKUULUYTVUJVVGVVAVUDUXIUWPUKZUXI
      UWRUKZULUHZEUPUHZUQUKZVUAUTVAZUAVVHVDZUYTVUJVVGVBZVBZVUTVUDUXNVXCVCZUAUWN
      VDVXDVUCVXGUAUWNUXIUWNTZUXOUXNVUBVXCVXHUXNUXOVXHUXJUXNVXHUXICUXICVMVXHCUW
      NTCDUUMUXICUWNXHUUNUUOWDUUPVXHUXRVXBVUAUTVXHUXQVXAUQVXHUXPVWTEUPBUXIUWTVW
      TUWNUXABUAXIUWQVWRUWSVWSULUWOUXIUWPXJUWOUXIUWRXJXKUXAXLZUWQUWSULXMXNXOXPX
      DUUQUURUYHUXNVXCUAUDUWNUDUAXIZUYGUXLUXMUTVXJUYFUXKUQUYDUXICUPUUSXPXDUUTUV
      BVXFVXDVXCUAVVFVDZVUTVXFVXCUAVVHVVFUYTVUJVVHVVFVMVVGVWQUVAUVCUYTVXEVXKVUT
      UYTVXEVXKVBZVBZVUSVLVUAUVDUHZUYMUTVXMBUACDEVVECUFUIVLULUHVPUHZVUAFGUYDUFA
      VVSUYSVXLHWMZAVWDUYSVXLIWMZACDUTVAZUYSVXLJWMZAUWNURFXQUYSVXLKWMAUWNURGXQZ
      UYSVXLLWMAUWPXRZUWNVMUYSVXLMWMAUWRXRZUWNVMUYSVXLNWMAXSFCUNUHTUYSVXLOWMAXS
      GCUNUHTUYSVXLPWMAXSGXTZTZYAZUYSVXLQWMAXSUWRXTZTZYAZUYSVXLRWMAUXBUYSVXLSWM
      UYTVUFVXLVUHWIVXMCVVCUVEUHZURVVEVXMVWJVVCURTVYIURXEVXMCVXPWLZVXMUXMCVXMUX
      MUYTVUJVVGVXKUVFZWHZVXPWNZCVVCUVLXGVXMVVEVYITZVWKCVVEUTVAZVVEVVCVQVAZVXMV
      VDDVVCWKVXMVWDVVDVXQWIVXMVVDYAZVBZVVCVYRUXMCVXMVWAVYQVYLWIVXMVVSVYQVXPWIW
      NWLUVGVXMVYOVXRCVVCUTVAZVXSVXMCUXMVXPVYKUVHVXMVWJVWDVWEVYOVXRVYSVBXFVYJVX
      QVXMVVCVYMWLZCDVVCWPWQUVIVXMVWDVWEVYPVXQVYTDVVCUVJXGVXMVWJVWEVYNVWKVYOVYP
      XAXFVYJVYTCVVCVVEUVKXGUVMUVNVXMVWDVWEVWNVXQVYTVWPXGUYTVUJVVGVXKUVOUYTVXEV
      XKUVPVXOXLUVQUYTVXNUYMVMVXLUYTUYMVLUYTUYMVUGUVRUYTUVSVLXSUOUYTUVTYBUWAWIU
      WBYCYDUWCYCYDUWDVULVUNVVAXFVUKVULUYNVUTVUDVULUYLVUSUYMUTVULUYKVURUQVULUYJ
      VUQEUPBUYDUXEVUQUWNUXFBUDXIUXCVUOUXDVUPULUWOUYDFXJUWOUYDGXJXKUXFXLZUXCUXD
      ULXMXNXOXPXDVJWBUWEUWLUWFYEUWGUWHYEUWIAUCUBUAUWNCEUXAABUWNUWTUSUXAAUWOUWN
      TZVBZUWQUWSAUWNUSUWOUWPAVYAUSUWPXQUWNUSUWPXQFYFAVYAUWNUSUWPMYGYLYHAUWNUSU
      WOUWRAVYBUSUWRXQUWNUSUWRXQZGYFAVYBUWNUSUWRNYGYLZYHWUCVYHUWSXSUOAVYHWUBRWI
      WUCVYGUWSXSWUCUWSVYFTZUWSXSVMVYGAUWRUWNYIZWUBWUFAWUDWUGWUEUWNUSUWRYJVOUWN
      UWOUWRYKYMUWSXSVYFXHYNYOYPYQVXIYRUWNUSXEAUWNURUSVVQUWJUWKYBZACHYSZYTAUEUB
      UDUWNCEUXFABUWNUXEUSUXFWUCUXCUXDWUCUXCAUWNURUWOFKYHYSWUCUXDAUWNURUWOGLYHY
      SWUCVYEUXDXSUOAVYEWUBQWIWUCVYDUXDXSWUCUXDVYCTZUXDXSVMVYDAGUWNYIZWUBWUJAVX
      TWUKLUWNURGYJVOUWNUWOGYKYMUXDXSVYCXHYNYOYPYQWUAYRWUHWUIYTUWMYP $.
  $}

  ${
    $d a x y z A $.  $d a x y z B $.  $d a x y z C $.  $d a x y z ph $.
    $d a x y z F $.  $d a x y z G $.
    lhop2.a $e |- ( ph -> A e. RR* ) $.
    lhop2.b $e |- ( ph -> B e. RR ) $.
    lhop2.l $e |- ( ph -> A < B ) $.
    lhop2.f $e |- ( ph -> F : ( A (,) B ) --> RR ) $.
    lhop2.g $e |- ( ph -> G : ( A (,) B ) --> RR ) $.
    lhop2.if $e |- ( ph -> dom ( RR _D F ) = ( A (,) B ) ) $.
    lhop2.ig $e |- ( ph -> dom ( RR _D G ) = ( A (,) B ) ) $.
    lhop2.f0 $e |- ( ph -> 0 e. ( F limCC B ) ) $.
    lhop2.g0 $e |- ( ph -> 0 e. ( G limCC B ) ) $.
    lhop2.gn0 $e |- ( ph -> -. 0 e. ran G ) $.
    lhop2.gd0 $e |- ( ph -> -. 0 e. ran ( RR _D G ) ) $.
    lhop2.c $e |- ( ph -> C e. ( ( z e. ( A (,) B ) |->
      ( ( ( RR _D F ) ` z ) / ( ( RR _D G ) ` z ) ) ) limCC B ) ) $.
    $( L'H&ocirc;pital's Rule for limits from the left.  If ` F ` and ` G ` are
       differentiable real functions on ` ( A , B ) ` , and ` F ` and ` G `
       both approach 0 at ` B ` , and ` G ( x ) ` and ` G ` ' ` ( x ) ` are not
       zero on ` ( A , B ) ` , and the limit of
       ` F ` ' ` ( x ) / G ` ' ` ( x ) ` at ` B ` is ` C ` , then the limit
       ` F ( x ) / G ( x ) ` at ` B ` also exists and equals ` C ` .
       (Contributed by Mario Carneiro, 29-Dec-2016.) $)
    lhop2 $p |- ( ph -> C e. ( ( z e. ( A (,) B ) |->
      ( ( F ` z ) / ( G ` z ) ) ) limCC B ) ) $=
      ( cr va vx vy cv clt wbr wa cioo co cfv cdiv cmpt climc wcel wss wrex cxr
      cq rexrd syl3anc wne simpr wb adantr ad2antrr elioore adantl iooneg mpbid
      cneg adantrr recnd negnegd renegcld cle syl2anc mpd ffvelrnd cc0 crn wceq
      wf wn wfn ax-resscn fss sylancl ffn syl fnfvelrn eleq1 syl5ibcom necon3bd
      cc divcld cres limcresi ioossre resmpt ax-mp oveq1i sseqtri negcncf negeq
      eqid mp1i cnmptlimc sseldi ltnegd fmptd cdv cdm c1 cmul cvv a1i ffvelrnda
      fvexd 1cnd iooretop feqmptd fveq2 mpteq2dva oveq1d eleqtrd pm2.21d limcco
      eqtrd impr oveq12d nfcv nfov fvmpt2 syl5eq eleqtrrd fveq2d cun ctop cpnf
      cin qssre qbtwnxr ssrexv mpsyl simprl eqeltrd mpbird xrltle iooss1 sselda
      simprrl wi syldan ccncf simprrr cpr reelprrecn neg1cn ccnfld ctopn tgioo2
      ctg dvmptid dvmptres oveq2d dvf feq2d mpbii eqtr3d dvmptco mulcomd mulm1d
      dvmptneg dmeqd negex dmmpti syl6eq eqeltrrd eliooord ltnegcon1d ltned frn
      simpld neneqd ssneldd rneqd eleq2d eqcom negeq0d sylbird syl5bi rexlimdva
      elrnmpti sylbid mtod sylan nfmpt1 nffv cbvmpt fveq1d mpan2 sylan9eq lhop1
      div2negd nffvmpt1 simprd gtned resmptd csn crest sstri ssun2 snssg mpbiri
      fvex ctopon cnfldtopon snssd unssd syl6ss resttopon sylancr topontop indi
      cnt pnfxr iooin syl22anc xrltnle iffalsed ltpnf mpbir2and sseqin2 uneq12d
      cif elioopnf sylib retop reex ssex elrestr rerest isopn3i limcres 3eqtr2d
      rexlimddv ) ACUAUDZUEUFZVUGDUEUFZUGZEBCDUHUIZBUDZFUJZVULGUJZUKUIZULZDUMUI
[encoded data, 6880 characters]
      TUVRVVDXWJXVAXVKWAXVJXUTWUQWURWVBWUQXEVUBWIYOXVDXVAVUCVPYOVUDVUEYEVUF $.
  $}

  ${
    $d r z B $.  $d r z C $.  $d r z D $.  $d r z F $.  $d r z ph $.
    $d r z G $.  $d r z I $.
    lhop.a $e |- ( ph -> A C_ RR ) $.
    lhop.f $e |- ( ph -> F : A --> RR ) $.
    lhop.g $e |- ( ph -> G : A --> RR ) $.
    lhop.i $e |- ( ph -> I e. ( topGen ` ran (,) ) ) $.
    lhop.b $e |- ( ph -> B e. I ) $.
    lhop.d $e |- D = ( I \ { B } ) $.
    lhop.if $e |- ( ph -> D C_ dom ( RR _D F ) ) $.
    lhop.ig $e |- ( ph -> D C_ dom ( RR _D G ) ) $.
    lhop.f0 $e |- ( ph -> 0 e. ( F limCC B ) ) $.
    lhop.g0 $e |- ( ph -> 0 e. ( G limCC B ) ) $.
    lhop.gn0 $e |- ( ph -> -. 0 e. ( G " D ) ) $.
    lhop.gd0 $e |- ( ph -> -. 0 e. ( ( RR _D G ) " D ) ) $.
    lhop.c $e |- ( ph -> C e. ( ( z e. D |->
      ( ( ( RR _D F ) ` z ) / ( ( RR _D G ) ` z ) ) ) limCC B ) ) $.
    $( L'H&ocirc;pital's Rule.  If ` I ` is an open set of the reals, ` F ` and
       ` G ` are real functions on ` A ` containing all of ` I ` except
       possibly ` B ` , which are differentiable everywhere on ` I \ { B } ` ,
       ` F ` and ` G ` both approach 0, and the limit of
       ` F ` ' ` ( x ) / G ` ' ` ( x ) ` at ` B ` is ` C ` , then the limit
       ` F ( x ) / G ( x ) ` at ` B ` also exists and equals ` C ` .  This is
       Metamath 100 proof #64.  (Contributed by Mario Carneiro,
       30-Dec-2016.) $)
    lhop $p |- ( ph -> C e. ( ( z e. D |->
      ( ( F ` z ) / ( G ` z ) ) ) limCC B ) ) $=
      ( vr cv cmin cr cres cfv co wss crp cdiv cmpt climc wcel cioo crn syl3anc
      eqid a1i wa wceq syl6sseqr syl sseldd cdif cin adantr rexrd wf cun uneq1i
      cxr clt wbr syl5eq c0 wb syl2anc wn eqtri sylancl mpbid syl5sseqr cdv cdm
      cc ax-resscn fss sstrd fssresd ioossre dvres syl22anc ctop retop iooretop
      cnt isopn3i mp2an reseq2i syl6eq dmeqd ssdmres sylib limcresi sseldi cima
      eqtrd df-ima imass2 syl5eqssr ssneldd rneqd syl6eqr eqsstrd resmptd fvres
      fveq1d sylan9eq oveq12d mpteq2dva eqtr4d syl5sseq mpteq2ia eleqtrrd crest
      cc0 oveq1d sselda ffvelrnda syldan recnd mpd undif1 ssequn2 fveq2d ctopon
      fmptd sylancr cabs ccom cxp cbl wrex cxmt rexmet cmopn tgioo mopni2 caddc
      ctg cuni elssuni uniretop rpre bl2ioo syl2an sseq1d simprl rpred resubcld
      csn ltsubrpd ssun1 unass eqtr3i readdcld ltaddrpd ioojoin syl32anc elioo2
      uncom w3a mpbir3and snssd incom wo ubioo lbioo pm3.2ni mtbir disjsn mpbir
      elun uneqdifeq ssdif ad2antll dvbss ccnfld ctopn tgioo2 lhop2 ssun2 lhop1
      elind wne wfn simpr fnfvima eleq1 syl5ibcom necon3bd divcld adantlr difss
      syl6ss syl5ss simprr oveq2d rerest cnfldtopon resttopon topontop eqeltrrd
      ffn eqsstri restopn2 mpbir2and limcres sstri limcun 3eqtr3rd eleqtrd expr
      feq2d sylbid rexlimdva ) ADUCUDZUUAUEUUBUFUFUUCUGZUUDUHUIZIUJZUCUKUUEZEBF
[encoded data, 5360 characters]
      USFUYNVXFYJWYCYLVUTUSYSVUQVUSVWAWGVUTVXCUYFWCUYBUYCUYDUYEUYGUYHYN $.
  $}

  ${
    $d x y C $.  $d r x y F $.  $d r x y ph $.  $d r x y X $.  $d r x y Y $.
    $d x y R $.
    dvcnvre.f $e |- ( ph -> F e. ( X -cn-> RR ) ) $.
    dvcnvre.d $e |- ( ph -> dom ( RR _D F ) = X ) $.
    dvcnvre.z $e |- ( ph -> -. 0 e. ran ( RR _D F ) ) $.
    dvcnvre.1 $e |- ( ph -> F : X -1-1-onto-> Y ) $.
    ${
      dvcnvre.c $e |- ( ph -> C e. X ) $.
      dvcnvre.r $e |- ( ph -> R e. RR+ ) $.
      dvcnvre.s $e |- ( ph -> ( ( C - R ) [,] ( C + R ) ) C_ X ) $.
      $( Lemma for ~ dvcnvre .  (Contributed by Mario Carneiro,
         24-Feb-2015.) $)
      dvcnvrelem1 $p |- ( ph -> ( F ` C ) e. ( ( int ` ( topGen ` ran (,) ) ) `
        ( F " ( ( C - R ) [,] ( C + R ) ) ) ) ) $=
        ( cr cfv wcel wa clt wbr wi vx vy cmin co caddc cicc cres crn wceq wrex
        cv cima ctg cnt cdv cdm dvbsss syl6eqssr sseldd rpred resubcld readdcld
        cioo ltsubrpd ltaddrpd lttrd ltled ccncf rescncf sylc evthicc2 wf cncff
        wss syl ffvelrnd adantr wiso cxr cle rexrd lbicc2 syl3anc w3a wb elicc2
        ccnv syl2anc mpbir3and isorel exp32 com4l syl3c fvres breq12d wfun ffun
        biimpd sylibd fdm sseqtr4d funfvima2 mpd df-ima simprr eleqtrd ad2antrl
        syl5eq mpbid simp2d simprll lelttr mpand syld ubicc2 brcnv syl5bb wo cc
        fvex ax-resscn a1i fss sylancl sstrd ccnfld ctopn tgioo2 dvres syl22anc
        eqid iccntr reseq2d eqtrd dmeqd cin mpjaod simp3d ltletr mpan2d ssneldd
        dmres ioossicc syl5ss df-ss sylib cc0 resss syl6eqss rnss dvne0 simprlr
        elioo2 fveq2d eleqtrrd expr rexlimdvva ) ADBCUCUDZBCUEUDZUFUDZUGZUHZUAU
        KZUBUKZUFUDZUIZUBNUJUANUJBDOZDUUTULZVCUHUMOZUNOZOZPZAUAUBUURUUSUVAABCAE
        NBAENDUOUDZUPZNHNDUQURZKUSZACLUTZVAZABCUVPUVQVBZAUURUUSUVRUVSAUURBUUSUV
        RUVPUVSABCUVPLVDZABCUVPLVEZVFVGZAUUTEVNZDENVHUDPZUVAUUTNVHUDPMGENUUTDVI
        VJZVKAUVFUVLUAUBNNAUVCNPZUVDNPZQZUVFUVLAUWHUVFQZQZUVGUVCUVDVCUDZUVKUWJU
        VGUWKPZUVGNPZUVCUVGRSZUVGUVDRSZAUWMUWIAENBDAUWDENDVLZGENDVMVOZKVPVQZUWJ
        UUTUVBRRUVAVRZUWNUUTUVBRRWGZUVAVRZUWJUWSUURDOZUVGRSZUWNUWJUWSUURUVAOZBU
        VAOZRSZUXCUWJUURUUTPZBUUTPZUURBRSZUWSUXFTAUXGUWIAUURVSPZUUSVSPZUURUUSVT
        SZUXGAUURUVRWAZAUUSUVSWAZUWBUURUUSWBWCZVQZAUXHUWIAUXHBNPZUURBVTSZBUUSVT
        SZUVPAUURBUVRUVPUVTVGABUUSUVPUVSUWAVGAUURNPZUUSNPZUXHUXQUXRUXSWDWEUVRUV
        SUURUUSBWFWHWIVQZAUXIUWIUVTVQZUWSUXGUXHUXIUXFUWSUXGUXHUXIUXFTUWSUXGUXHQ
        ZQUXIUXFUUTUVBUURBRRUVAWJWRWKWLWMUWJUXDUXBUXEUVGRUWJUXGUXDUXBUIUXPUURUU
        TDWNVOZUWJUXHUXEUVGUIUYBBUUTDWNVOZWOWSUWJUVCUXBVTSZUXCUWNUWJUXBNPZUYGUX
        BUVDVTSZUWJUXBUVEPZUYHUYGUYIWDZUWJUXBUVHUVEUWJUXGUXBUVHPZUXPUWJDWPZUUTD
        UPZVNZUXGUYLTUWJUWPUYMAUWPUWIUWQVQZENDWQVOZUWJUUTEUYNAUWCUWIMVQUWJUWPUY
        NEUIUYPENDWTVOXAZUUTUURDXBWHXCUWJUVHUVBUVEDUUTXDAUWHUVFXEXHZXFUWHUYJUYK
        WEAUVFUVCUVDUXBWFXGXIZXJUWJUWFUYHUWMUYGUXCQUWNTAUWFUWGUVFXKZAUYHUWIAENU
        URDUWQAUUTEUURMUXOUSVPVQZUWRUVCUXBUVGXLWCXMXNUWJUXAUUSDOZUVGRSZUWNUWJUX
        AUXEUUSUVAOZUWTSZVUDUWJUXHUUSUUTPZBUUSRSZUXAVUFTUYBAVUGUWIAUXJUXKUXLVUG
        UXMUXNUWBUURUUSXOWCZVQZAVUHUWIUWAVQZUXAUXHVUGVUHVUFUXAUXHVUGVUHVUFTUXAU
        XHVUGQZQVUHVUFUUTUVBBUUSRUWTUVAWJWRWKWLWMVUFVUEUXERSUWJVUDUXEVUERBUVAXT
        ZUUSUVAXTXPUWJVUEVUCUXEUVGRUWJVUGVUEVUCUIVUJUUSUUTDWNVOZUYFWOXQWSUWJUVC
        VUCVTSZVUDUWNUWJVUCNPZVUOVUCUVDVTSZUWJVUCUVEPZVUPVUOVUQWDZUWJVUCUVHUVEU
        WJVUGVUCUVHPZVUJUWJUYMUYOVUGVUTTUYQUYRUUTUUSDXBWHXCUYSXFUWHVURVUSWEAUVF
        UVCUVDVUCWFXGXIZXJUWJUWFVUPUWMVUOVUDQUWNTVUAAVUPUWIAENUUSDUWQAUUTEUUSMV
        UIUSVPVQZUWRUVCVUCUVGXLWCXMXNAUWSUXAXRUWIAUURUUSUVAUVRUVSUWEANUVAUOUDZU
        PUVMUURUUSVCUDZUGZUPZVVDAVVCVVEAVVCUVMUUTUVJOZUGZVVEANXSVNZEXSDVLZENVNU
        UTNVNVVCVVHUIVVIAYAYBAUWPVVIVVJUWQYAENXSDYCYDUVOAUUTENMUVOYEEUUTNUVIDYF
        YGOZVVKYKZVVKVVLYHYIYJAVVGVVDUVMAUXTUYAVVGVVDUIUVRUVSUURUUSYLWHYMYNZYOA
        VVFVVDUVNYPZVVDUVMVVDUUBAVVDUVNVNVVNVVDUIAVVDEUVNAVVDUUTEUURUUSUUCMUUDH
        XAVVDUVNUUEUUFXHYNAVVCUHZUVMUHZUUGAVVCUVMVNVVOVVPVNAVVCVVEUVMVVMUVMVVDU
        UHUUIVVCUVMUUJVOIUUAUUKVQZYQUWJUWSUWOUXAUWJUWSUVGVUCRSZUWOUWJUWSUXEVUER
        SZVVRUWJUXHVUGVUHUWSVVSTUYBVUJVUKUWSUXHVUGVUHVVSUWSUXHVUGVUHVVSTUWSVULQ
        VUHVVSUUTUVBBUUSRRUVAWJWRWKWLWMUWJUXEUVGVUEVUCRUYFVUNWOWSUWJVVRVUQUWOUW
        JVUPVUOVUQVVAYRUWJUWMVUPUWGVVRVUQQUWOTUWRVVBAUWFUWGUVFUULZUVGVUCUVDYSWC
        YTXNUWJUXAUVGUXBRSZUWOUWJUXAUXDUXEUWTSZVWAUWJUXGUXHUXIUXAVWBTUXPUYBUYCU
        XAUXGUXHUXIVWBUXAUXGUXHUXIVWBTUXAUYDQUXIVWBUUTUVBUURBRUWTUVAWJWRWKWLWMV
        WBUXEUXDRSUWJVWAUXDUXERUURUVAXTVUMXPUWJUXEUVGUXDUXBRUYFUYEWOXQWSUWJVWAU
        YIUWOUWJUYHUYGUYIUYTYRUWJUWMUYHUWGVWAUYIQUWOTUWRVUBVVTUVGUXBUVDYSWCYTXN
        VVQYQUWJUVCVSPUVDVSPUWLUWMUWNUWOWDWEUWJUVCVUAWAUWJUVDVVTWAUVCUVDUVGUUMW
        HWIUWJUVKUVEUVJOZUWKUWJUVHUVEUVJUYSUUNUWHVWCUWKUIAUVFUVCUVDYLXGYNUUOUUP
        UUQXC $.

      dvcnvre.t $e |- T = ( topGen ` ran (,) ) $.
      dvcnvre.j $e |- J = ( TopOpen ` CCfld ) $.
      dvcnvre.m $e |- M = ( J |`t X ) $.
      dvcnvre.n $e |- N = ( J |`t Y ) $.
      $( Lemma for ~ dvcnvre .  (Contributed by Mario Carneiro, 19-Feb-2015.)
         (Revised by Mario Carneiro, 8-Sep-2015.) $)
      dvcnvrelem2 $p |- ( ph -> ( ( F ` C ) e. ( ( int ` T ) ` Y ) /\
        `' F e. ( ( N CnP M ) ` ( F ` C ) ) ) ) $=
        ( cfv cnt wcel ccnv ccnp co cmin caddc cicc cima ctop cr wss cioo retop
        crn ctg eqeltri a1i wf1o wfo wceq f1ofo forn 3syl ccncf wf frn eqsstr3d
        cncff imassrn syl5sseq uniretop unieqi eqtr4i ntrss syl3anc dvcnvrelem1
        cuni fveq2i fveq1i syl6eleqr sseldd cres crest wfun f1of ffun funcnvres
        f1ocnv ccn cdv cdm dvbsss syl6eqssr ax-resscn syl6ss cncfss syl2anc wf1
        cc f1of1 syl f1ores ccmp wb tgioo2 eqtri oveq1i cvv cnfldtop sstrd reex
        restabs syl5eq rpred resubcld readdcld eqid icccmp eqeltrrd syl5ss sylc
        rescncf cncffvrn mpbird cncfcnvcn mpbid cncfcn eleqtrd cle ltled ctopon
        wbr resttopon sylancr toponuni fveq1d syl5eqel ltsubrpd ltaddrpd elicc2
        w3a mpbir3and wi fdm sseqtr4d funfvima2 cnfldtopon cncnpi ssexg sylancl
        mpd oveq1d eleqtrrd topontop sseqtrd cdif cun cin difssd unssd ffvelrnd
        ssun1 elind restntr 3eqtr4g fveq2d eqtr3d feq2d feq3 cnprest syl22anc
        jca ) ABEUBZJDUCUBZUBZUDEUEZUVPHGUFUGUBUDZAEBCUHUGZBCUIUGZUJUGZUKZUVQUB
        ZUVRUVPADULUDZJUMUNZUWDJUNZUWEUVRUNUWFADUOUQURUBZULRUPUSUTZAJEUQZUMAIJE
        VAZIJEVBUWKJVCNIJEVDIJEVEVFZAEIUMVGUGUDZIUMEVHZUWKUMUNKIUMEVKZIUMEVIVFZ
        VJZAUWKUWDJEUWCVLZUWMVMZJUWDDUMUMUWIVTDVTVNDUWIRVOVPZVQVRAUVPUWDUWIUCUB
        ZUBUWEABCEIJKLMNOPQVSUWDUVQUXBDUWIUCRWAWBWCZWDAUVTUVSUWDWEZUVPHUWDWFUGZ
        GUFUGZUBZUDZAUXDUVPFUWDWFUGZGUFUGZUBZUXGAEUWCWEZUEZUXDUXKAJIUVSVHZUVSWG
        UXMUXDVCAUWLJIUVSVAUXNNIJEWKJIUVSWHVFZJIUVSWIUWCEWJVFAUXMUXIGWLUGZUDUVP
        UXIVTZUDUXMUXKUDAUXMUWDIVGUGZUXPAUWDUWCVGUGZUXRUXMAUWCIUNZIXBUNZUXSUXRU
        NQAIUMXBAIUMEWMUGWNUMLUMEWOWPZWQWRZUWDUWCIWSWTAUWCUWDUXLVAZUXMUXSUDZAIJ
        EXAZUXTUYDAUWLUYFNIJEXCXDQIJUWCEXEWTZAFUWCWFUGZXFUDUXLUWCUWDVGUGUDZUYDU
        YEXGADUWCWFUGZUYHXFAUYJFUMWFUGZUWCWFUGZUYHDUYKUWCWFDUWIUYKRFSXHXIZXJAFU
        LUDZUWCUMUNUMXKUDZUYLUYHVCUYNAFSXLUTZAUWCIUMQUYBXMUYOAXNUTZUWCUMFULXKXO
        VRXPAUWAUMUDZUWBUMUDZUYJXFUDABCAIUMBUYBOWDZACPXQZXRZABCUYTVUAXSZUWAUWBU
        YJDRUYJXTYAWTYBAUYIUWCUWDUXLVHZAUYDVUDUYGUWCUWDUXLWHXDAUWDXBUNZUXLUWCUM
        VGUGUDZUYIVUDXGAUWDUWKXBUWSAUWKUMXBUWQWQWRYCZAUXTUWNVUFQKIUMUWCEYEYDUWC
        UMUWDUXLYFWTYGUXLFUYHUWCUWDSUYHXTYHWTYIWDAVUEUYAUXRUXPVCVUGUYCUWDIFUXIG
        SUXIXTTYJWTYKAUVPUWDUXQABUWCUDZUVPUWDUDZAVUHBUMUDZUWABYLYOZBUWBYLYOZUYT
        AUWABVUBUYTABCUYTPUUAYMABUWBUYTVUCABCUYTPUUBYMAUYRUYSVUHVUJVUKVULUUDXGV
        UBVUCUWAUWBBUUCWTUUEAEWGZUWCEWNZUNVUHVUIUUFAUWNUWOVUMKUWPIUMEWIVFAUWCIV
        UNQAUWNUWOVUNIVCKUWPIUMEUUGVFUUHUWCBEUUIWTUUNAUXIUWDYNUBUDZUWDUXQVCAFXB
        YNUBUDZVUEVUOFSUUJZVUGUWDFXBYPYQUWDUXIYRXDYKUVPUXMUXIGUXQUXQXTUUKWTYBAU
        VPUXFUXJAUXEUXIGUFAUXEFJWFUGZUWDWFUGZUXIHVURUWDWFUAXJAUYNUWHJXKUDZVUSUX
        IVCUYPUWTAUWGUYOVUTUWRXNJUMXKUULUUMUWDJFULXKXOVRXPUUOYSUUPAHULUDZUWDHVT
        ZUNUVPUWDHUCUBZUBZUDVVBGVTZUVSVHZUVTUXHXGAHJYNUBZUDZVVAAHVURVVGUAAVUPJX
        BUNVURVVGUDVUQAJUMXBUWRWQWRJFXBYPYQYTZJHUUQXDAUWDJVVBUWTAVVHJVVBVCVVIJH
        YRXDZUURAUVPUWDUMJUUSZUUTZUVQUBZJUVAZVVDAVVMJUVPAUWEVVMUVPAUWFVVLUMUNUW
        DVVLUNZUWEVVMUNUWJAUWDVVKUMAUWDJUMUWTUWRXMAUMJUVBUVCVVOAUWDVVKUVEUTVVLU
        WDDUMUXAVQVRUXCWDAIJBEAUWLIJEVHNIJEWHXDOUVDUVFAUWDDJWFUGZUCUBZUBZVVNVVD
        AUWFUWGUWHVVRVVNVCUWJUWRUWTUWDDVVPUMJUXAVVPXTUVGVRAUWDVVQVVCAVVPHUCAUYK
        JWFUGZVURVVPHAUYNUWGUYOVVSVURVCUYPUWRUYQJUMFULXKXOVRDUYKJWFUYMXJUAUVHUV
        IYSUVJYKAVVBIUVSVHZVVFAUXNVVTUXOAJVVBIUVSVVJUVKYIAGIYNUBZUDIVVEVCVVTVVF
        XGAGFIWFUGZVWATAVUPUYAVWBVWAUDVUQUYCIFXBYPYQYTIGYRIVVEVVBUVSUVLVFYIUWDU
        VPUVSHGVVBVVEVVBXTVVEXTUVMUVNYGUVO $.
    $}

    $( The derivative rule for inverse functions.  If ` F ` is a continuous and
       differentiable bijective function from ` X ` to ` Y ` which never has
       derivative ` 0 ` , then ` ``' F ` is also differentiable, and its
       derivative is the reciprocal of the derivative of ` F ` .  (Contributed
       by Mario Carneiro, 24-Feb-2015.) $)
    dvcnvre $p |- ( ph -> ( RR _D `' F ) =
      ( x e. Y |-> ( 1 / ( ( RR _D F ) ` ( `' F ` x ) ) ) ) ) $=
      ( cr cfv eqid cc wcel wceq wss co sylancr wa wb vr vy ccnfld cioo crn ctg
      ctopn tgioo2 cpr reelprrecn a1i cnt ctop retop wf1o f1ofo forn 3syl ccncf
      wfo wf cncff frn eqsstr3d uniretop ntrss2 ccnv f1ocnvfv2 sylan crest ccnp
      cabs cmin ccom cxp cres cbl crp wrex f1ocnv f1of ffvelrnda cdv cdm dvbsss
      ax-resscn syl fss sylancl dvbssntr eqssd isopn3 mpbird rexmet cmopn tgioo
      cv cxmt mopni2 mp3an1 syldan c2 cdiv ad2antrr wn adantr rphalfcl ad2antrl
      cc0 caddc cicc clt wbr cle sseldd resubcld readdcld elicc2 syl2anc biimpa
      w3a rpred simp1d simplrl rphalflt ltsub2dd simp2d ltletrd simp3d ltadd2dd
      lelttrd cxr rexrd elioo2 mpbir3and ex ssrdv ctopon syl6ss resttopon sstrd
      rpre bl2ioo sseqtr4d simprr dvcnvrelem2 simpld eqeltrrd ccn simprd fveq2d
      rexlimddv wral ralrimiva cnfldtopon cncnp mpbir2and cncfcn eleqtrrd dvcnv
      eleqtrd ) ABJCUCUGKZUDUEUFKZDEUVBLZUVBUVDUHZJJMUINAUJUKAEUVCNZEUVCULKZKZE
      OZAUVHEAUVCUMNZEJPZUVHEPUNAECUEZJADECUOZDECUTUVLEOIDECUPDECUQURACDJUSQNZD
      JCVAZUVLJPFDJCVBZDJCVCURVDZEUVCJVEVFRABEUVHABWQZENZUVRUVHNAUVSSZUVRCVGZKZ
      CKZUVRUVHAUVMUVSUWCUVROIDEUVRCVHVIZUVTUWCUVHNZUWAUWCUVBEVJQZUVBDVJQZVKQZK
      ZNZUVTUWBUAWQZVLVMVNJJVOVPZVQKQZDPZUWEUWJSUAVRAUVSUWBDNZUWNUAVRVSZAEDUVRU
      WAAUVMEDUWAUOEDUWAVAZIDECVTEDUWAWAURZWBZADUVCNZUWOUWPAUWTDUVGKZDOZAUXADAU
      VJDJPZUXADPUNADJCWCQZWDZJGUXEJPAJCWEUKVDZDUVCJVEVFRADUXEUXAGADJCUVCUVBJMP
      ZAWFUKAUVOUXGDMCVAAUVNUVOFUVPWGWFDJMCWHWIUXFUVEUVDWJVDWKAUVJUXCUWTUXBTUNU
      XFDUVCJVEWLRWMUWLJWRKNUWTUWOUWPUWLUWLLZWNUADUWLUWBUVCJUWLUWLWOKZUXHUXILWP
      WSWTVIXAUVTUWKVRNZUWNSZSZUWBUWKXBXCQZUVCCUVBUWGUWFDEAUVNUVSUXKFXDAUXEDOUV
      SUXKGXDAXIUXDUENXEUVSUXKHXDAUVMUVSUXKIXDUVTUWOUXKUWSXFZUXJUXMVRNZUVTUWNUW
      KXGZXHZUXLUWBUXMVMQZUWBUXMXJQZXKQZUWMDUXLUXTUWBUWKVMQZUWBUWKXJQZUDQZUWMUX
      LUBUXTUYCUXLUBWQZUXTNZUYDUYCNZUXLUYESZUYFUYDJNZUYAUYDXLXMZUYDUYBXLXMZUYGU
      YHUXRUYDXNXMZUYDUXSXNXMZUXLUYEUYHUYKUYLYAZUXLUXRJNZUXSJNZUYEUYMTUXLUWBUXM
      UXLDJUWBAUXCUVSUXKUXFXDUXNXOZUXLUXMUXQYBZXPZUXLUWBUXMUYPUYQXQZUXRUXSUYDXR
      XSXTZYCZUYGUYAUXRUYDUYGUWBUWKUXLUWBJNZUYEUYPXFZUYGUWKUVTUXJUWNUYEYDZYBZXP
      ZUXLUYNUYEUYRXFVUAUYGUXMUWKUWBUYGUXMUYGUXJUXOVUDUXPWGYBZVUEVUCUYGUXJUXMUW
      KXLXMVUDUWKYEWGZYFUYGUYHUYKUYLUYTYGYHUYGUYDUXSUYBVUAUXLUYOUYEUYSXFUYGUWBU
      WKVUCVUEXQZUYGUYHUYKUYLUYTYIUYGUXMUWKUWBVUGVUEVUCVUHYJYKUYGUYAYLNUYBYLNUY
      FUYHUYIUYJYATUYGUYAVUFYMUYGUYBVUIYMUYAUYBUYDYNXSYOYPYQUXLVUBUWKJNZUWMUYCO
      UYPUXJVUJUVTUWNUWKUUBXHUWBUWKUWLUXHUUCXSUUDUVTUXJUWNUUEUUAUVCLUVDUWGLZUWF
      LZUUFUULZUUGUUHYPYQWKAUVJUVKUVFUVITUNUVQEUVCJVEWLRWMIAUWAUWFUWGUUIQZEDUSQ
      ZAUWAVUNNZUWQUWAUVRUWHKZNZBEUUMZUWRAVURBEUVTUWAUWIVUQUVTUWEUWJVUMUUJUVTUW
      CUVRUWHUWDUUKUVAUUNAUWFEYRKNZUWGDYRKNZVUPUWQVUSSTAUVBMYRKNZEMPZVUTUVBUVDU
      UOZAEJMUVQWFYSZEUVBMYTRAVVBDMPZVVAVVDADJMUXFWFYSZDUVBMYTRBUWAUWFUWGEDUUPX
      SUUQAVVCVVFVUOVUNOVVEVVGEDUVBUWFUWGUVDVULVUKUURXSUUSGHUUT $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y F $.  $d x y ph $.
    $d x y T $.
    dvcvx.a $e |- ( ph -> A e. RR ) $.
    dvcvx.b $e |- ( ph -> B e. RR ) $.
    dvcvx.l $e |- ( ph -> A < B ) $.
    dvcvx.f $e |- ( ph -> F e. ( ( A [,] B ) -cn-> RR ) ) $.
    dvcvx.d $e |- ( ph -> ( RR _D F ) Isom < , < ( ( A (,) B ) , W ) ) $.
    dvcvx.t $e |- ( ph -> T e. ( 0 (,) 1 ) ) $.
    dvcvx.c $e |- C = ( ( T x. A ) + ( ( 1 - T ) x. B ) ) $.
    $( A real function with strictly increasing derivative is strictly convex.
       (Contributed by Mario Carneiro, 20-Jun-2015.) $)
    dvcvx $p |- ( ph -> ( F ` C ) <
        ( ( T x. ( F ` A ) ) + ( ( 1 - T ) x. ( F ` B ) ) ) ) $=
      ( cr co cmin clt wbr wcel vx vy cv cicc cres cdv cdiv wceq cioo wrex cmul
      cfv caddc cc0 elioore syl remulcld resubcl sylancr readdcld syl5eqel 1cnd
      c1 1re recnd subdird mulid2d oveq1d eqtrd wb eliooord simprd posdif mpbid
      wa sylancl ltmul2 syl112anc eqbrtrrd ltsubadd2d syl6breqr wss ccncf leidd
      cle simpld ltsub2dd eqbrtrd ltaddsub2d mpbird ltled syl22anc rescncf sylc
      iccss cdm cc ax-resscn iccssre syl2anc dvres iccntr reseq2d dmeqd cin cxr
      dmres rexrd sseqtr4d df-ss sylib syl5eq mvth fveq1d fvres adantr sylan9eq
      wf ubicc2 syl3anc lbicc2 oveq12d ad2antrl ad2antll sselda sseldd ffvelrnd
      eqeq12d resubcld gt0ne0d redivcld mulcomd subdid breq12d 3bitr3d divdiv1d
      jca eqtr3d oveq2d 3eqtr4d syl5eqbr crn ctg cnt a1i cncff fss ccnfld ctopn
      eqid tgioo2 iooss2 wiso wf1o isof1o f1odm 3syl iooss1 reeanv adantl lttrd
      anbi12d adantrr adantrl isorel breq12 syl5ibcom posdifd ltdiv1 lt2mul2div
      syl12anc addsubd ax-1cn pncan3 adddird 3eqtr3d ltaddsubd subsub3d addcomd
      breq1d subsub4d nncand eqtr4d 3bitr3rd sylibd sylbid rexlimdvva syl5bir
      mp2and ) AUAUCZOFBDUDPZUEZUFPZULZDUWLULZBUWLULZQPZDBQPZUGPZUHZUABDUIPZUJZ
[encoded data, 4400 characters]
      EUWFUWGUWHUWI $.
  $}

  ${
    $d k y A $.  $d k x y M $.  $d k x y N $.  $d k x y ph $.  $d x y X $.
    $d y B $.  $d x y C $.  $d x y D $.  $d x V $.
    dvfsumle.m $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    dvfsumle.a $e |- ( ph ->
      ( x e. ( M [,] N ) |-> A ) e. ( ( M [,] N ) -cn-> RR ) ) $.
    dvfsumle.v $e |- ( ( ph /\ x e. ( M (,) N ) ) -> B e. V ) $.
    dvfsumle.b $e |- ( ph ->
      ( RR _D ( x e. ( M (,) N ) |-> A ) ) = ( x e. ( M (,) N ) |-> B ) ) $.
    dvfsumle.c $e |- ( x = M -> A = C ) $.
    dvfsumle.d $e |- ( x = N -> A = D ) $.
    dvfsumle.x $e |- ( ( ph /\ k e. ( M ..^ N ) ) -> X e. RR ) $.
    ${
      dvfsumle.l $e |- ( ( ph /\ ( k e. ( M ..^ N ) /\
        x e. ( k (,) ( k + 1 ) ) ) ) -> X <_ B ) $.
      $( Compare a finite sum to an integral (the integral here is given as a
         function with a known derivative).  (Contributed by Mario Carneiro,
         14-May-2016.) $)
      dvfsumle $p |- ( ph -> sum_ k e. ( M ..^ N ) X <_ ( D - C ) ) $=
        ( cr vy cfzo co csu cv c1 caddc csb cmin cle cfn wcel fzofi a1i wa wral
        cfz cicc cz cin wceq cuz cfv eluzel2 syl eluzelz syl2anc inss1 syl6eqss
        fzval2 sselda cmpt wf ccncf cncff eqid sylibr nfcsb1v nfel1 weq csbeq1a
        fmpt eleq1d rspc syldan ralrimiva fzofzp1 csbeq1 rspccva syl2an elfzofz
        mpan9 resubcld cmul cc elfzoelz adantl zred recnd ax-1cn pncan2 sylancl
        oveq2d peano2re subdid mulid1d 3eqtr3d ccnfld ctopn wss adantr elfzole1
        mulcn wbr elfzle2 iccss syl22anc iccssre sstrd ax-resscn syl6ss syl3anc
        cioo cdv cxr rexrd 1cnd ioossre dvmptres eqtrd cbvmpt sseli cdm adantlr
        nfcv oveq2 cvv eqeq2 biimpa csbied cncfmptc cncfmptid cncfmpt2ss iooss1
        remulcl cpr reelprrecn iooss2 ioossicc syl5ss crn ctg dvmptid dvmptcmul
        tgioo2 iooretop mpteq2dv cres resmptd rescncf eqeltrrd syl5eqelr impcom
        sylc r19.21bi sylan2 fmptd dvfre dmeqd dmmptg feq12d mpbid 3eqtr3g nfbr
        oveq2i anassrs breq2d lep1d lbicc2 ubicc2 eqbrtrrd fsumle vex telfsumo2
        dvle breqtrd ) AHIUBUCZKGUDUWGBGUEZUFUGUCZCUHZBUWHCUHZUIUCZGUDFEUIUCUJA
        UWGKUWLGUWGUKULAHIUMUNRAUWHUWGULZUOZUWJUWKABUAUEZCUHZTULZUAHIUQUCZUPZUW
        IUWRULZUWJTULZUWMAUWQUAUWRAUWOUWRULZUWOHIURUCZULZUWQAUWRUXCUWOAUWRUXCUS
        UTZUXCAHUSULZIUSULZUWRUXEVAAIHVBVCULZUXFLHIVDVEZAUXHUXGLHIVFVEZHIVJVGUX
        CUSVHVIVKACTULZBUXCUPZUXDUWQAUXCTBUXCCVLZVMZUXLAUXMUXCTVNUCULZUXNMUXCTU
        XMVOVEZBUXCTCUXMUXMVPWBZVQZUXKUWQBUWOUXCBUWPTBUWOCVRZVSBUAVTZCUWPTBUWOC
        WAZWCWDZWLWEZWFZHIUWHWGZUWQUXAUAUWIUWRUWOUWIVAUWPUWJTBUWOUWICWHZWCWIWJA
        UWSUWHUWRULUWKTULZUWMUYDUWHHIWKUWQUYGUAUWHUWRUAGVTUWPUWKTBUWOUWHCWHZWCW
        IWJWMUWNKUWIWNUCZKUWHWNUCZUIUCZKUWLUJUWNKUWIUWHUIUCZWNUCKUFWNUCZUYKKUWN
        UYLUFKWNUWNUWHWOULUFWOULUYLUFVAUWNUWHUWNUWHUWMUWHUSULAUWHHIWPWQWRZWSZWT
        UWHUFXAXBXCUWNKUWIUWHUWNKRWSZUWNUWIUWNUWHTULUWITULUYNUWHXDVEZWSUYOXEUWN
        KUYPXFZXGUWNUAKUWOWNUCZKUWPBUWODUHZUYJUWKUYIUWJUWHUWIUWHUWIUYNUYQUWNUAK
        UWOTWNXHXIVCZUWHUWIURUCZVUAVPZVUAVUCXMUWNKTULVUBWOXJTWOXJZUAVUBKVLVUBTV
        NUCZULRUWNVUBTWOUWNVUBUXCTUWNHTULZITULZHUWHUJXNZUWIIUJXNZVUBUXCXJZAVUFU
        WMAHUXIWRZXKZAVUGUWMAIUXJWRZXKZUWMVUHAUWHHIXLWQZUWNUWTVUIUWMUWTAUYEWQUW
        IHIXOVEZHIUWHUWIXPXQZAUXCTXJZUWMAVUFVUGVURVUKVUMHIXRVGXKZXSZXTYAVUDUWNX
        TUNZUAKVUBTUUAYBUWNVUBTXJVUDUAVUBUWOVLVUEULVUTXTUAVUBTUUBXBXTKUWOUUEUUC
        UWNTUAUWHUWIYCUCZUYSVLYDUCUAVVBUYMVLUAVVBKVLUWNUAUWOUFKTWOVVBTTWOUUFULU
        WNUUGUNZUWNVVBWOUWOUWNVVBHIYCUCZWOUWNVVBHUWIYCUCZVVDUWNHYEULVUHVVBVVEXJ
        UWNHVULYFVUOHUWHUWIUUDVGUWNIYEULVUIVVEVVDXJUWNIVUNYFVUPHUWIIUUHVGXSZUWN
        VVDUXCWOHIUUIZUWNUXCTWOVUSXTYAUUJXSVKUWNUWOVVBULZUOYGUWNUAUWOUFTYCUUKUU
        LVCZVUAWOTVVBVVCUWNTWOUWOVVAVKUWNUWOTULUOYGUWNUATVVCUUMVVBTXJUWNUWHUWIY
        HUNVUAVUCUUOZVUCVVBVVIULUWNUWHUWIUUPUNZYIUYPUUNUWNUAVVBUYMKUYRUUQYJUWNU
        AVUBUWPVLBVUBCVLZVUEBUAVUBCUWPUACYOZUXSUYAYKUWNUXMVUBUURZVVLVUEUWNBUXCV
        UBCVUQUUSUWNVUJUXOVVNVUEULVUQAUXOUWMMXKUXCTVUBUXMUUTUVDUVAUVBUWNUAUWPUY
        TTVVIVUATVVDVVBVVCUWNUWOVVDULZUOUWPUWNUXLUXDUWQVVOUWNUXNUXLAUXNUWMUXPXK
        UXQVQVVDUXCUWOVVGYLUXDUXLUWQUYBUVCWJWSUWNDTULZBVVDUPZVVOUYTTULZUWNVVDTB
        VVDDVLZVMZVVQUWNTBVVDCVLZYDUCZYMZTVWBVMZVVTUWNVVDTVWAVMVVDTXJVWDUWNBVVD
        CTVWABUEZVVDULZUWNVWEUXCULZUXKVVDUXCVWEVVGYLAVWGUXKUWMAUXKBUXCUXRUVEYNU
        VFVWAVPUVGHIYHVVDVWAUVHXBUWNVWCVVDTVWBVVSAVWBVVSVAUWMOXKZUWNVWCVVSYMZVV
        DUWNVWBVVSVWHUVIUWNDJULZBVVDUPVWIVVDVAUWNVWJBVVDAVWFVWJUWMNYNWFBVVDDJUV
        JVEYJUVKUVLBVVDTDVVSVVSVPWBVQVVPVVRBUWOVVDBUYTTBUWODVRZVSUXTDUYTTBUWODW
        AZWCWDWLUWNVWBVVSTUAVVDUWPVLZYDUCUAVVDUYTVLVWHVWAVWMTYDBUAVVDCUWPVVMUXS
        UYAYKUVOBUAVVDDUYTUADYOVWKVWLYKUVMVVFVVJVUCVVKYIUWNKDUJXNZBVVBUPVVHKUYT
        UJXNZUWNVWNBVVBAUWMVWEVVBULVWNSUVPWFVWNVWOBUWOVVBBKUYTUJBKYOBUJYOVWKUVN
        UXTDUYTKUJVWLUVQWDWLUWNUWHYEULZUWIYEULZUWHUWIUJXNZUWHVUBULUWNUWHUYNYFZU
        WNUWIUYQYFZUWNUWHUYNUVRZUWHUWIUVSYBUWNVWPVWQVWRUWIVUBULVWSVWTVXAUWHUWIU
        VTYBVXAUWOUWHKWNYPUYHUWOUWIKWNYPUYFUWEUWAUWBAUWPUWKUWJEGUAFHIUYHUYFUWOH
        VAZBUWOCEYQUWOYQULZVXBUAUWCZUNVXBUXTUOVWEHVAZCEVAVXBUXTVXEUWOHVWEYRYSPV
        EYTUWOIVAZBUWOCFYQVXCVXFVXDUNVXFUXTUOVWEIVAZCFVAVXFUXTVXGUWOIVWEYRYSQVE
        YTLAUXBUOUWPUYCWSUWDUWF $.
    $}

    ${
      dvfsumge.l $e |- ( ( ph /\ ( k e. ( M ..^ N ) /\
        x e. ( k (,) ( k + 1 ) ) ) ) -> B <_ X ) $.
      $( Compare a finite sum to an integral (the integral here is given as a
         function with a known derivative).  (Contributed by Mario Carneiro,
         14-May-2016.) $)
      dvfsumge $p |- ( ph -> ( D - C ) <_ sum_ k e. ( M ..^ N ) X ) $=
        ( cr cmin cfzo csu cle wbr cneg cvv cicc cmpt cc0 df-neg mpteq2i ccnfld
        co ccncf ctopn cfv eqid subcn wcel cc wss 0red cuz eluzel2 zred eluzelz
        cz syl iccssre syl2anc ax-resscn syl6ss a1i cncfmptc syl3anc cncfmpt2ss
        resubcl syl5eqel cv cioo wa negex cpr reelprrecn ioossicc sseli wf wral
        cncff fmpt sylibr r19.21bi sylan2 recnd dvmptneg wceq renegcld c1 caddc
        negeqd cxr adantr rexrd elfzole1 adantl iooss1 cfz fzofzp1 iooss2 sstrd
        elfzle2 sselda cdv cdm adantlr fmptd ioossre dvfre sylancl dmeqd dmmptg
        ralrimiva eqtrd feq12d mpbid syldan anasss adantrr dvfsumle cfn fsumneg
        lenegd fzofi eluzle ubicc2 eleq1d rspcv sylc lbicc2 neg2subd negsubdi2d
        eqtr4d 3brtr3d resubcld fsumrecl mpbird ) AFEUAUNZHIUBUNZKGUCZUDUEUUJUF
        ZUUHUFZUDUEAUUIKUFZGUCFUFZEUFZUAUNZUUKUULUDABCUFZDUFZUUOUUNGHIUGUUMLABH
        IUHUNZUUQUIBUUSUJCUAUNZUIUUSTUOUNZBUUSUUQUUTCUKULABUJCTUAUMUPUQZUUSUVBU
        RZUVBUVCUSAUJTUTUUSVAVBTVAVBZBUUSUJUIUVAUTAVCAUUSTVAAHTUTZITUTZUUSTVBAH
        AIHVDUQUTZHVHUTLHIVEVIVFZAIAUVGIVHUTLHIVGVIVFZHIVJVKVLVMUVDAVLVNBUJUUST
        VOVPMVLUJCVRVQVSUURUGUTABVTZHIWAUNZUTZWBZDWCVNABCDTJUVKTTVAWDUTAWEVNUVM
        CUVLAUVJUUSUTZCTUTZUVKUUSUVJHIWFWGZAUVOBUUSAUUSTBUUSCUIZWHZUVOBUUSWIZAU
        VQUVAUTUVRMUUSTUVQWJVIBUUSTCUVQUVQURWKWLZWMZWNWONOWPUVJHWQZCEPXAUVJIWQZ
        CFQXAAGVTZUUIUTZWBZKRWRAUWEUVJUWDUWDWSWTUNZWAUNZUTZWBWBZDKUDUEUUMUURUDU
        ESUWJDKAUWEUWIDTUTZUWFUWIUVLUWKUWFUWHUVKUVJUWFUWHHUWGWAUNZUVKUWFHXBUTZH
        UWDUDUEZUWHUWLVBUWFHAUVEUWEUVHXCXDUWEUWNAUWDHIXEXFHUWDUWGXGVKUWFIXBUTZU
        WGIUDUEZUWLUVKVBUWFIAUVFUWEUVIXCXDUWFUWGHIXHUNUTZUWPUWEUWQAHIUWDXIXFUWG
        HIXLVIHUWGIXJVKXKXMUWFUWKBUVKUWFUVKTBUVKDUIZWHZUWKBUVKWIUWFTBUVKCUIZXNU
        NZXOZTUXAWHZUWSUWFUVKTUWTWHUVKTVBUXCUWFBUVKCTUWTUVLUWFUVNUVOUVPAUVNUVOU
        WEUWAXPWNUWTURXQHIXRUVKUWTXSXTUWFUXBUVKTUXAUWRAUXAUWRWQUWEOXCZUWFUXBUWR
        XOZUVKUWFUXAUWRUXDYAUWFDJUTZBUVKWIUXEUVKWQUWFUXFBUVKAUVLUXFUWENXPYCBUVK
        DJYBVIYDYEYFBUVKTDUWRUWRURWKWLWMYGYHAUWEKTUTUWIRYIYMYFYJAUUIKGUUIYKUTAH
        IYNVNZUWFKRWOYLAUUPEFUAUNUULAFEAFAIUUSUTZUVSFTUTZAUWMUWOHIUDUEZUXHAHUVH
        XDZAIUVIXDZAUVGUXJLHIYOVIZHIYPVPUVTUVOUXIBIUUSUWCCFTQYQYRYSZWOZAEAHUUSU
        TZUVSETUTZAUWMUWOUXJUXPUXKUXLUXMHIYTVPUVTUVOUXQBHUUSUWBCETPYQYRYSZWOZUU
        AAFEUXOUXSUUBUUCUUDAUUHUUJAFEUXNUXRUUEAUUIKGUXGRUUFYMUUG $.
    $}
  $}

  ${
    $d k y A $.  $d k x y M $.  $d k x y N $.  $d k x y ph $.  $d x y X $.
    $d x y C $.  $d x y D $.  $d x V $.  $d x y Y $.
    dvfsumabs.m $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    dvfsumabs.a $e |- ( ph ->
      ( x e. ( M [,] N ) |-> A ) e. ( ( M [,] N ) -cn-> CC ) ) $.
    dvfsumabs.v $e |- ( ( ph /\ x e. ( M (,) N ) ) -> B e. V ) $.
    dvfsumabs.b $e |- ( ph ->
      ( RR _D ( x e. ( M (,) N ) |-> A ) ) = ( x e. ( M (,) N ) |-> B ) ) $.
    dvfsumabs.c $e |- ( x = M -> A = C ) $.
    dvfsumabs.d $e |- ( x = N -> A = D ) $.
    dvfsumabs.x $e |- ( ( ph /\ k e. ( M ..^ N ) ) -> X e. CC ) $.
    dvfsumabs.y $e |- ( ( ph /\ k e. ( M ..^ N ) ) -> Y e. RR ) $.
    dvfsumabs.l $e |- ( ( ph /\ ( k e. ( M ..^ N ) /\
      x e. ( k (,) ( k + 1 ) ) ) ) -> ( abs ` ( X - B ) ) <_ Y ) $.
    $( Compare a finite sum to an integral (the integral here is given as a
       function with a known derivative).  (Contributed by Mario Carneiro,
       14-May-2016.) $)
    dvfsumabs $p |- ( ph -> ( abs ` ( sum_ k e. ( M ..^ N ) X - ( D - C ) ) )
      <_ sum_ k e. ( M ..^ N ) Y ) $=
      ( vy cfzo co cv c1 caddc csb cmin csu cabs cfv cle cfn wcel fzofi a1i cfz
      wa cc wral cicc cz cin wceq cuz eluzel2 syl eluzelz fzval2 inss1 syl6eqss
      syl2anc sselda cmpt wf ccncf cncff eqid fmpt sylibr nfcsb1v nfel1 csbeq1a
      weq eleq1d rspc mpan9 syldan fzofzp1 csbeq1 rspccva syl2an elfzofz subcld
      ralrimiva fsumsub eqeq2 biimpa csbied oveq2d eqtrd fveq2d abscld fsumrecl
      cvv vex cmul wbr cxr adantl rexrd cr syl3anc wss adantr ax-resscn sylancl
      zred cdv cdm cioo sstrd mulcld adantlr sylan2 ovex 1cnd iooretop dvmptres
      syl5ss mulid1d syl6eq nfcv nfov nffv oveq2 oveq12d fvmptf recnd telfsumo2
      fsumcl fsumabs elfzoelz peano2re lep1d ubicc2 cres elfzole1 elfzle2 iccss
      lbicc2 syl22anc resmptd ccnfld ctopn ctx ccn iccssre syl6ss ssid cncfmptc
      cncfmptid mulcncf cncfmpt2f rescncf sylc eqeltrrd crn ctg r19.21bi tgioo2
      subcn cnt iccntr dvmptntr cpr reelprrecn ioossicc sseli dvmptid dvmptcmul
      mpteq2dv dvmptsub iooss1 iooss2 dmeqd dmmpti fveq1d simpr anassrs eqbrtrd
      fvmpt2 nfmpt1 fveq2 breq1d dvlip ex mp2and peano2cn sub4d pncan2d 3eqtr3d
      nfbr subdid oveq1d 3eqtr2rd abs1 eqtr2d 3brtr4d fsumle letrd eqbrtrrd ) A
      HIUCUDZKBGUEZUFUGUDZCUHZBUXOCUHZUIUDZUIUDZGUJZUKULZUXNKGUJZFEUIUDZUIUDZUK
      ULUXNLGUJZUMAUYAUYEUKAUYAUYCUXNUXSGUJZUIUDUYEAUXNKUXSGUXNUNUOAHIUPUQZSAUX
      OUXNUOZUSZUXQUXRABUBUEZCUHZUTUOZUBHIURUDZVAZUXPUYNUOZUXQUTUOZUYIAUYMUBUYN
      AUYKUYNUOUYKHIVBUDZUOZUYMAUYNUYRUYKAUYNUYRVCVDZUYRAHVCUOZIVCUOZUYNUYTVEAI
      HVFULUOZVUAMHIVGVHZAVUCVUBMHIVIVHZHIVJVMUYRVCVKVLVNACUTUOZBUYRVAZUYSUYMAU
      YRUTBUYRCVOZVPZVUGAVUHUYRUTVQUDZUOZVUINUYRUTVUHVRVHBUYRUTCVUHVUHVSVTWAZVU
      FUYMBUYKUYRBUYLUTBUYKCWBWCBUBWEZCUYLUTBUYKCWDWFWGWHWIZWPZHIUXOWJZUYMUYQUB
      UXPUYNUYKUXPVEUYLUXQUTBUYKUXPCWKZWFWLWMZAUYOUXOUYNUOUXRUTUOZUYIVUOUXOHIWN
      UYMVUSUBUXOUYNUBGWEUYLUXRUTBUYKUXOCWKZWFWLWMZWOZWQAUYGUYDUYCUIAUYLUXRUXQE
      GUBFHIVUTVUQUYKHVEZBUYKCEXFUYKXFUOZVVCUBXGZUQVVCVUMUSBUEZHVEZCEVEVVCVUMVV
      GUYKHVVFWRWSQVHWTUYKIVEZBUYKCFXFVVDVVHVVEUQVVHVUMUSVVFIVEZCFVEVVHVUMVVIUY
      KIVVFWRWSRVHWTMVUNUUAXAXBXCAUYBUXNUXTUKULZGUJUYFAUYAAUXNUXTGUYHUYJKUXSSVV
      BWOZUUBXDAUXNVVJGUYHUYJUXTVVKXDZXEAUXNLGUYHTXEAUXNUXTGUYHVVKUUCAUXNVVJLGU
      YHVVLTUYJUXPBUXOUXPVBUDZKVVFXHUDZCUIUDZVOZULZUXOVVPULZUIUDZUKULZLUXPUXOUI
      UDZUKULZXHUDZVVJLUMUYJUXPVVMUOZUXOVVMUOZVVTVWCUMXIZUYJUXOXJUOZUXPXJUOZUXO
      UXPUMXIZVWDUYJUXOUYJUXOUYIUXOVCUOAUXOHIUUDXKXSZXLZUYJUXPUYJUXOXMUOZUXPXMU
      OZVWJUXOUUEVHZXLZUYJUXOVWJUUFZUXOUXPUUGXNZUYJVWGVWHVWIVWEVWKVWOVWPUXOUXPU
      ULXNZUYJVWDVWEUSVWFUYJUBUXOUXPVVPLUXPUXOVWJVWNUYJBUYRVVOVOZVVMUUHZVVPVVMU
      TVQUDZUYJBUYRVVMVVOUYJHXMUOZIXMUOZHUXOUMXIZUXPIUMXIZVVMUYRXOZAVXBUYIAHVUD
      XSZXPZAVXCUYIAIVUEXSZXPZUYIVXDAUXOHIUUIXKZUYJUYPVXEUYIUYPAVUPXKUXPHIUUJVH
      ZHIUXOUXPUUKUUMZUUNUYJVXFVWSVUJUOVWTVXAUOVXMUYJBVVNCUIUUOUUPULZUYRVXNVSZU
      IVXNVXNUUQUDVXNUURUDUOUYJVXNVXOUVMUQUYJBKVVFUYRUYJKUTUOZUYRUTXOZUTUTXOZBU
      YRKVOVUJUOSUYJUYRXMUTAUYRXMXOZUYIAVXBVXCVXSVXGVXIHIUUSVMXPZXQUUTZVXRUYJUT
      UVAZUQBKUYRUTUVBXNUYJVXQVXRBUYRVVFVOVUJUOVYAVYBBUYRUTUVCXRUVDAVUKUYINXPUV
      EUYRUTVVMVWSUVFUVGUVHUYJXMVVPXTUDZYABUXOUXPYBUDZKDUIUDZVOZYAVYDUYJVYCVYFU
      YJVYCXMBVYDVVOVOXTUDVYFUYJBVVOXMYBUVIUVJULZVXNVVMVYDXMUTXOUYJXQUQZUYJVVMU
      YRXMVXMVXTYCUYJVVFVVMUOVVFUYRUOZVVOUTUOZUYJVVMUYRVVFVXMVNUYJVYIUSZVVNCVYK
      KVVFUYJVXPVYISXPUYJUYRUTVVFVYAVNYDZAVYIVUFUYIAVUFBUYRVULUVKYEZWOZWIVXNVXO
      UVLZVXOUYJVWLVWMVVMVYGUVNULULVYDVEVWJVWNUXOUXPUVOVMUVPUYJBVVOVYEXMVYGVXNX
      FHIYBUDZVYDXMXMUTUVQUOUYJUVRUQZVVFVYPUOZUYJVYIVYJVYPUYRVVFHIUVSZUVTZVYNYF
      VYEXFUOZUYJVYRUSZKDUIYGZUQUYJBVVNKCDXMUTJVYPVYQVYRUYJVYIVVNUTUOVYTVYLYFUY
      JVXPVYRSXPUYJXMBVYPVVNVOXTUDBVYPKUFXHUDZVOBVYPKVOUYJBVVFUFKXMUTVYPVYQUYJV
      YPUTVVFUYJVYPUYRUTVYSVYAYKVNWUBYHUYJBVVFUFXMVYGVXNUTXMVYPVYQUYJXMUTVVFVYH
      VNUYJVVFXMUOUSYHUYJBXMVYQUWAUYJVYPUYRXMVYSVXTYKVYOVXOVYPVYGUOUYJHIYIUQYJS
      UWBUYJBVYPWUDKUYJKSYLZUWCXBVYRUYJVYIVUFVYTVYMYFAVYRDJUOUYIOYEAXMBVYPCVOXT
      UDBVYPDVOVEUYIPXPUWDUYJVYDHUXPYBUDZVYPUYJHXJUOVXDVYDWUFXOUYJHVXHXLVXKHUXO
      UXPUWEVMUYJIXJUOVXEWUFVYPXOUYJIVXJXLVXLHUXPIUWFVMYCVYOVXOVYDVYGUOUYJUXOUX
      PYIUQYJXBZUWGBVYDVYEVYFWUCVYFVSZUWHYMTUYJVVFVYCULZUKULZLUMXIZBVYDVAUYKVYD
      UOUYKVYCULZUKULZLUMXIZUYJWUKBVYDUYJVVFVYDUOZUSZWUJVYEUKULZLUMWUPWUIVYEUKW
      UPWUIVVFVYFULZVYEWUPVVFVYCVYFUYJVYCVYFVEWUOWUGXPUWIWUPWUOWUAWURVYEVEUYJWU
      OUWJWUCBVYDVYEXFVYFWUHUWMXRXBXCAUYIWUOWUQLUMXIUAUWKUWLWPWUKWUNBUYKVYDBWUM
      LUMBWULUKBUKYNBUYKVYCBXMVVPXTBXMYNBXTYNBVVMVVOUWNYOBUYKYNYPYPBUMYNBLYNUXD
      VUMWUJWUMLUMVUMWUIWULUKVVFUYKVYCUWOXCUWPWGWHUWQUWRUWSUYJUXTVVSUKUYJVVSKUX
      PXHUDZUXQUIUDZKUXOXHUDZUXRUIUDZUIUDWUSWVAUIUDZUXSUIUDUXTUYJVVQWUTVVRWVBUI
      UYJVWDWUTXFUOVVQWUTVEVWQWUSUXQUIYGBUXPVVOWUTVVMVVPXFBUXPYNBWUSUXQUIBWUSYN
      BUIYNZBUXPCWBYOVVFUXPVEVVNWUSCUXQUIVVFUXPKXHYQBUXPCWDYRVVPVSZYSXRUYJVWEWV
      BUTUOVVRWVBVEVWRUYJWVAUXRUYJKUXOSUYJUXOVWJYTZYDZVVAWOBUXOVVOWVBVVMVVPUTBU
      XOYNBWVAUXRUIBWVAYNWVDBUXOCWBYOBGWEVVNWVACUXRUIVVFUXOKXHYQBUXOCWDYRWVEYSV
      MYRUYJWUSWVAUXQUXRUYJKUXPSUYJUXOUTUOUXPUTUOWVFUXOUWTVHZYDWVGVURVVAUXAUYJW
      VCKUXSUIUYJKVWAXHUDWUDWVCKUYJVWAUFKXHUYJUXOUFWVFUYJYHUXBZXAUYJKUXPUXOSWVH
      WVFUXEWUEUXCUXFUXGXCUYJVWCLUFXHUDLUYJVWBUFLXHUYJVWBUFUKULUFUYJVWAUFUKWVIX
      CUXHYMXAUYJLUYJLTYTYLUXIUXJUXKUXLUXM $.
  $}

  ${
    $d x ph $.  $d x S $.
    dvmptrecl.s $e |- ( ph -> S C_ RR ) $.
    dvmptrecl.a $e |- ( ( ph /\ x e. S ) -> A e. RR ) $.
    dvmptrecl.v $e |- ( ( ph /\ x e. S ) -> B e. V ) $.
    dvmptrecl.b $e |- ( ph ->
      ( RR _D ( x e. S |-> A ) ) = ( x e. S |-> B ) ) $.
    $( Real closure of a derivative.  (Contributed by Mario Carneiro,
       18-May-2016.) $)
    dvmptrecl $p |- ( ( ph /\ x e. S ) -> B e. RR ) $=
      ( cr wcel cmpt wf wral cdv co cdm wss eqid fmptd dvfre syl2anc dmeqd wceq
      ralrimiva dmmptg syl eqtrd feq12d mpbid fmpt sylibr r19.21bi ) ADKLZBEAEK
      BEDMZNZUOBEOAKBECMZPQZRZKUSNZUQAEKURNEKSVAABECKURHURTUAGEURUBUCAUTEKUSUPJ
      AUTUPRZEAUSUPJUDADFLZBEOVBEUEAVCBEIUFBEDFUGUHUIUJUKBEKDUPUPTULUMUN $.
  $}

  ${
    $d y z A $.  $d c e k m y z B $.  $d x z C $.  $d c k x y D $.  $d x y E $.
    $d c e y z G $.  $d m y z H $.  $d c e k m x y ph $.  $d c e k m x y z S $.
    $d y L $.  $d k x z M $.  $d c u v w x z T $.  $d k m x y z Y $.  $d x Z $.
    $d k x U $.  $d k m u v w x y z X $.
    dvfsum.s $e |- S = ( T (,) +oo ) $.
    dvfsum.z $e |- Z = ( ZZ>= ` M ) $.
    dvfsum.m $e |- ( ph -> M e. ZZ ) $.
    dvfsum.d $e |- ( ph -> D e. RR ) $.
    dvfsum.md $e |- ( ph -> M <_ ( D + 1 ) ) $.
    dvfsum.t $e |- ( ph -> T e. RR ) $.
    dvfsum.a $e |- ( ( ph /\ x e. S ) -> A e. RR ) $.
    dvfsum.b1 $e |- ( ( ph /\ x e. S ) -> B e. V ) $.
    dvfsum.b2 $e |- ( ( ph /\ x e. Z ) -> B e. RR ) $.
    dvfsum.b3 $e |- ( ph ->
      ( RR _D ( x e. S |-> A ) ) = ( x e. S |-> B ) ) $.
    dvfsum.c $e |- ( x = k -> B = C ) $.
    ${
      dvfsumrlimf.g $e |- G = ( x e. S |->
        ( sum_ k e. ( M ... ( |_ ` x ) ) C - A ) ) $.
      $( Lemma for ~ dvfsumrlim .  (Contributed by Mario Carneiro,
         18-May-2016.) $)
      dvfsumrlimf $p |- ( ph -> G : S --> RR ) $=
        ( cv cfl cfv cfz co csu cmin cr wcel wa fzfid wral ralrimiva adantr cuz
        elfzuz syl6eleqr weq eleq1d rspccva syl2an fsumrecl resubcld fmptd ) AB
        GKBUFZUGUHZUIUJZEIUKZCULUJUMJAVJGUNZUOZVMCVOVLEIVOKVKUPVODUMUNZBMUQZIUF
        ZMUNEUMUNZVRVLUNZAVQVNAVPBMUBURUSVTVRKUTUHMVRKVKVAOVBVPVSBVRMBIVCDEUMUD
        VDVEVFVGTVHUEVI $.
    $}

    ${
      dvfsum.u $e |- ( ph -> U e. RR* ) $.
      dvfsum.l $e |- ( ( ph /\ ( x e. S /\ k e. S ) /\
        ( D <_ x /\ x <_ k /\ k <_ U ) ) -> C <_ B ) $.
      ${
        dvfsum.h $e |- H = ( x e. S |-> ( ( ( x - ( |_ ` x ) ) x. B ) +
          ( sum_ k e. ( M ... ( |_ ` x ) ) C - A ) ) ) $.
        dvfsumlem1.1 $e |- ( ph -> X e. S ) $.
        dvfsumlem1.2 $e |- ( ph -> Y e. S ) $.
        dvfsumlem1.3 $e |- ( ph -> D <_ X ) $.
        dvfsumlem1.4 $e |- ( ph -> X <_ Y ) $.
        dvfsumlem1.5 $e |- ( ph -> Y <_ U ) $.
        ${
          dvfsumlem1.6 $e |- ( ph -> Y <_ ( ( |_ ` X ) + 1 ) ) $.
          $( Lemma for ~ dvfsumrlim .  (Contributed by Mario Carneiro,
             17-May-2016.) $)
          dvfsumlem1 $p |- ( ph -> ( H ` Y ) =
            ( ( ( ( Y - ( |_ ` X ) ) x. [_ Y / x ]_ B ) - [_ Y / x ]_ A ) +
              sum_ k e. ( M ... ( |_ ` X ) ) C ) ) $=
            ( cfl cfv cmin co csb cmul cfz csu caddc c1 clt wbr wceq wa cr wcel
            cz cle cpnf cioo ioossre eqsstri sseldi flcld reflcl syl flle letrd
            wb flbi baibd syl21anc biimpar oveq2d oveq1d sumeq1d oveq12d adantr
            simpr peano2zd eqeltrd flid eqtrd recnd subcld 1cnd cc wral wss a1i
            dvmptrecl ralrimiva nfcsb1v nfel1 csbeq1a eleq1d rspc sylc subsub4d
            cv subdird mulid2d 3eqtr3d cuz zred peano2rem 1red lesubaddd mpbird
            peano2zm flge syl2anc mpbid eluz2 syl3anbrc elfzuz syl6eleqr syl2an
            rspccva cvv sylancl 3eqtr4d nfcv nfov eqvisset csbied eqcomd fsumm1
            eqeq2 ax-1cn pncan csbeq1d fzfid fsumcl mulcld nppcan3d wo peano2re
            addsubd leloed mpjaodan ovex id fveq2 fvmptf subadd23d ) AOOUQURZUS
            UTZBODVAZVBUTZLUVCVCUTZEJVDZBOCVAZUSUTZVEUTZONUQURZUSUTZUVEVBUTZLUV
            LVCUTZEJVDZUVIUSUTZVEUTZOKURZUVNUVIUSUTUVPVEUTAOUVLVFVEUTZVGVHZUVKU
            VRVIOUVTVIZAUWAVJZUVFUVNUVJUVQVEUWCUVDUVMUVEVBUWCUVCUVLOUSAUVCUVLVI
            ZUWAAOVKVLZUVLVMVLZUVLOVNVHZUWDUWAWEAGVKOGHVOVPUTVKQHVOVQVRZULVSZAN
            AGVKNUWHUKVSZVTZAUVLNOANVKVLZUVLVKVLZUWJNWAWBZUWJUWIAUWLUVLNVNVHUWJ
            NWCWBUNWDUWEUWFVJUWDUWGUWAOUVLWFWGWHWIZWJWKUWCUVHUVPUVIUSUWCUVGUVOE
            JUWCUVCUVLLVCUWOWJWLWKWMAUWBVJZUVKUVNUVEUSUTZUVQUVEVEUTZVEUTUVRUWPU
            VFUWQUVJUWRVEUWPUVFOUVTUSUTZUVEVBUTZUWQUWPUVDUWSUVEVBUWPUVCUVTOUSUW
            PUVCOUVTUWPOVMVLUVCOVIUWPOUVTVMAUWBWOZUWPUVLUWPNAUWLUWBUWJWNVTWPWQO
            WRWBUXAWSZWJWKAUWTUWQVIUWBAUVMVFUSUTZUVEVBUTUVNVFUVEVBUTZUSUTUWTUWQ
            AUVMVFUVEAOUVLAOUWIWTZAUVLUWNWTZXAZAXBZAOGVLZDXCVLZBGXDUVEXCVLZULAU
            XJBGABXPZGVLVJZDABCDGMGVKXEAUWHXFUCUDUFXGWTXHUXJUXKBOGBUVEXCBODXIZX
            JUXLOVIZDUVEXCBODXKZXLXMXNZXQAUXCUWSUVEVBAOUVLVFUXEUXFUXHXOWKAUXDUV
            EUVNUSAUVEUXQXRWJXSWNWSUWPUVJUVPUVEVEUTZUVIUSUTZUWRUWPUVHUXRUVIUSUW
            PLUVTVCUTZEJVDZUVPBUVTDVAZVEUTZUVHUXRAUYAUYCVIUWBAUYALUVTVFUSUTZVCU
            TZEJVDZUYBVEUTUYCAEUYBJLUVTALVMVLZUVTVMVLLUVTVNVHZUVTLXTURZVLSAUVLU
            WKWPALVFUSUTZUVLVNVHZUYHAUYJNVNVHZUYKAUYJFNALVKVLUYJVKVLALSYAZLYBWB
            TUWJAUYJFVNVHLFVFVEUTVNVHUAALVFFUYMAYCZTYDYEUMWDAUWLUYJVMVLZUYLUYKW
            EUWJAUYGUYOSLYFWBNUYJYGYHYIALVFUVLUYMUYNUWNYDYILUVTYJYKAUXJBPXDZJXP
            ZPVLZEXCVLZUYQUXTVLZAUXJBPAUXLPVLVJDUEWTXHZUYTUYQUYIPUYQLUVTYLRYMUX
            JUYSBUYQPUXLUYQVIZDEXCUGXLYOZYNUYQUVTVIZUYBEVUDBUVTDEYPJUVTUUAVUDUX
            LUVTVIZVJVUBDEVIVUDVUBVUEUYQUVTUXLUUEWIUGWBUUBUUCUUDAUYFUVPUYBVEAUY
            EUVOEJAUYDUVLLVCAUVLXCVLVFXCVLUYDUVLVIUXFUUFUVLVFUUGYQWJWLWKWSWNUWP
            UVGUXTEJUWPUVCUVTLVCUXBWJWLUWPUVEUYBUVPVEUWPBOUVTDUXAUUHWJYRWKAUXSU
            WRVIUWBAUVPUVEUVIAUVOEJALUVLUUIAUYPUYRUYSUYQUVOVLZVUAVUFUYQUYIPUYQL
            UVLYLRYMVUCYNUUJZUXQAUXICXCVLZBGXDUVIXCVLZULAVUHBGUXMCUCWTXHVUHVUIB
            OGBUVIXCBOCXIZXJUXOCUVIXCBOCXKZXLXMXNZUUOWNWSWMUWPUVNUVEUVQAUVNXCVL
            UWBAUVMUVEUXGUXQUUKZWNAUXKUWBUXQWNAUVQXCVLUWBAUVPUVIVUGVULXAWNUULWS
            AOUVTVNVHUWAUWBUUMUPAOUVTUWIAUWMUVTVKVLUWNUVLUUNWBUUPYIUUQAUXIUVKYP
            VLUVSUVKVIULUVFUVJVEUURBOUXLUXLUQURZUSUTZDVBUTZLVUNVCUTZEJVDZCUSUTZ
            VEUTUVKGKYPBOYSBUVFUVJVEBUVDUVEVBBUVDYSBVBYSUXNYTBVEYSBUVHUVIUSBUVH
            YSBUSYSVUJYTYTUXOVUPUVFVUSUVJVEUXOVUOUVDDUVEVBUXOUXLOVUNUVCUSUXOUUS
            UXLOUQUUTZWMUXPWMUXOVURUVHCUVIUSUXOVUQUVGEJUXOVUNUVCLVCVUTWJWLVUKWM
            WMUJUVAYQAUVNUVIUVPVUMVULVUGUVBYR $.

          $( Lemma for ~ dvfsumrlim .  (Contributed by Mario Carneiro,
             17-May-2016.) $)
          dvfsumlem2 $p |- ( ph -> ( ( H ` Y ) <_ ( H ` X ) /\
          ( ( H ` X ) - [_ X / x ]_ B ) <_ ( ( H ` Y ) - [_ Y / x ]_ B ) ) ) $=
            ( vy cfv cle wbr csb cmin co cmul caddc cr cpnf cioo wcel clt wa wb
            cxr rexrd syl mpbid resubcld cv wral syl3anc wss a1i sselda cmpt wf
            eqid fmptd nfcv nfcsb1v csbeq1a cbvmpt fmpt sylibr syldan ralrimiva
            r19.21bi wceq csbeq1 eleq1d rspcv sylc remulcld weq recnd subdid cc
            syl6ss ax-resscn cncfmptc remulcl cncfmpt2ss cdv c1 syl5ss dvmptres
            ccncf 1cnd dvmptcmul mulid1d mpteq2dv eqtrd cdm mpbird adantr letrd
            w3a wi eleq1 breq2 breq1 3anbi23d imbi12d breq2d oveq2 cneg subdird
            oveq1d cc0 3brtr4d oveq2d cfl cfz ioossre eqsstri syl6eleq elioopnf
            csu sseldi simpld reflcl cicc ubicc2 pnfxr simprd iccssioo syl22anc
            ltpnf syl6sseqr dvmptrecl lbicc2 fzfid cuz elfzuz syl6eleqr rspccva
            syl2an fsumrecl ccnfld ctopn mulcn cncfmptid sylancl cpr reelprrecn
            ioossicc crn ctg simpr dvmptid tgioo2 iooretop resmptd dmeqd dmmptg
            cres dvcn syl31anc cncffvrn sylancr rescncf eqeltrrd oveq2i 3eqtr3g
            syl5eqelr sseli simpl elicc2 biimpa simp1d simp2d simp3d simp2r vex
            syl2anc anbi2d csbie syl5eqr breq1d nfbr nfim anbi1d 3anbi12d chvar
            nfv vtoclg mpcom syl123anc sylan2 eqbrtrd lesubd subsubd negsubdi2d
            dvle nnncan2d mulcomd 3eqtr3d negeqd eqtr3d negsubdid eqtr4d 3eqtrd
            breqtrrd flle subge0d lemul2ad lesub1dd leadd1dd dvfsumlem1 xrletrd
            leidd fllep1 peano2rem subcld addcomd subsub2d 3eqtr4d simp2l vtocl
            vtoclg1f renegcld 1red lesubadd2d suble0d le0neg1d mulneg1d 3brtr3d
            subled lenegd mulid2d sub32d addsubd jca ) AOKURZNKURZUSUTVVDBNDVAZ
[encoded data, 7360 characters]
            CVVPVVGVBXVKYQYSVVB $.
        $}

        $( Lemma for ~ dvfsumrlim .  (Contributed by Mario Carneiro,
           17-May-2016.) $)
        dvfsumlem3 $p |- ( ph -> ( ( H ` Y ) <_ ( H ` X ) /\
          ( ( H ` X ) - [_ X / x ]_ B ) <_ ( ( H ` Y ) - [_ Y / x ]_ B ) ) ) $=
          ( vm vy cfv cle wbr csb cmin co wa c1 caddc cpnf cioo ioossre eqsstri
          cfl cr sseldi wcel reflcl peano2re 3syl cz adantr cv adantlr cmpt cdv
          wceq cxr w3a 3adant1r simpr dvfsumlem2 wf cmul cfz csu wss a1i sselda
          syl resubcld dvmptrecl remulcld fzfid wral ralrimiva elfzuz syl6eleqr
          cuz weq eleq1d rspccva syl2an ffvelrnd wb rexrd elioopnf mpbid simprd
          clt fllep1 ltletrd flcld syl2anc mpbir2and letrd oveq1d simpld adantl
          elfzelz zred ad2antrr elfzle1 xrletrd csbeq1 rspcv sylc fveq2 oveq12d
          cvv ovex fvmpt3i ax-mp fsumrecl readdcld fmptd syl6eleq peano2zd flge
          flle flidm breqtrrd eluz2 syl3anbrc lep1d elfzle2 1red syl3anc mpbird
          leaddsub flid eqcomd eqle monoord2 leidd nfcsb1v nfel1 rspc mpan9 vex
          csbeq1a eqid syldan syl5eqel 3brtr4g monoord fvex 3brtr3g jca lecasei
          ) AOKURZNKURZUSUTZUVSBNDVAZVBVCZUVRBODVAZVBVCZUSUTZVDONVKURZVEVFVCZAG
[encoded data, 4800 characters]
          WUSVVHVBWUQUYAKYOBWUQUYADYLYPWVEWVFYSYTUVOYCUXTVVGVVJVWGXPYCUVPUVQ $.
      $}

      dvfsumlem4.g $e |- G = ( x e. S |->
        ( sum_ k e. ( M ... ( |_ ` x ) ) C - A ) ) $.
      dvfsumlem4.0 $e |- ( ( ph /\ ( x e. S /\ D <_ x /\ x <_ U ) ) ->
       0 <_ B ) $.
      dvfsumlem4.1 $e |- ( ph -> X e. S ) $.
      dvfsumlem4.2 $e |- ( ph -> Y e. S ) $.
      dvfsumlem4.3 $e |- ( ph -> D <_ X ) $.
      dvfsumlem4.4 $e |- ( ph -> X <_ Y ) $.
      dvfsumlem4.5 $e |- ( ph -> Y <_ U ) $.
      $( Lemma for ~ dvfsumrlim .  (Contributed by Mario Carneiro,
         18-May-2016.) $)
      dvfsumlem4 $p |- ( ph ->
        ( abs ` ( ( G ` Y ) - ( G ` X ) ) ) <_ [_ X / x ]_ B ) $=
        ( vm cfv cmin co cabs cfl cfz csu csb wcel cr wceq fzfid wral ralrimiva
        cle cv cuz elfzuz syl6eleqr eleq1d syl2an fsumrecl nfcsb1v csbeq1a rspc
        weq nfel1 sylc resubcld nfcv nfov oveq2d sumeq1d oveq12d fvmptf syl2anc
        fveq2 wbr caddc cmul cpnf nfv csbeq1 rspcv sseldi syl remulcld readdcld
        reflcl cc0 fracge0 w3a rexrd 3jca wa simpr1 nfbr nfim eleq1 breq2 breq1
        wi 3anbi123d anbi2d imbi12d vtoclg1f mpcom mpdan mulge0d addge02d mpbid
        breq2d id oveq1d 3brtr3d recnd addcomd c1 letrd fracle1 mulid2d breqtrd
        lemul1ad rspccva fveq2d wss cioo ioossre eqsstri dvmptrecl cbvral sylib
        a1i xrletrd lesub1dd cmpt eqid dvfsumlem3 simprd subsub3d eqtrd subge0d
        mpbird subge02d eqbrtrrd simpld leadd1dd absdifled mpbir2and eqbrtrd
        1red ) AOKURZNKURZUSUTZVAURLOVBURZVCUTZEJVDZBOCVEZUSUTZLNVBURZVCUTZEJVD
        ZBNCVEZUSUTZUSUTZVAURZBNDVEZVLAUVKUWBVAAUVIUVPUVJUWAUSAOGVFZUVPVGVFUVIU
        VPVHUMAUVNUVOAUVMEJALUVLVIADVGVFZBPVJZJVMZPVFZEVGVFZUWHUVMVFZAUWFBPUEVK
        ZUWKUWHLVNURZPUWHLUVLVORVPUWFUWJBUWHPBJWCDEVGUGVQUUAZVRVSAUWECVGVFZBGVJ
        ZUVOVGVFZUMAUWOBGUCVKZUWOUWQBOGBUVOVGBOCVTZWDBVMZOVHZCUVOVGBOCWAZVQWBWE
        WFZBOLUWTVBURZVCUTZEJVDZCUSUTZUVPGKVGBOWGZBUVNUVOUSBUVNWGBUSWGZUWSWHZUX
        AUXFUVNCUVOUSUXAUXEUVMEJUXAUXDUVLLVCUWTOVBWNZWIWJUXBWKZUJWLWMANGVFZUWAV
        GVFUVJUWAVHULAUVSUVTAUVREJALUVQVIAUWGUWIUWJUWHUVRVFZUWLUXNUWHUWMPUWHLUV
        QVORVPUWNVRVSAUXMUWPUVTVGVFZULUWRUWOUXOBNGBUVTVGBNCVTZWDUWTNVHZCUVTVGBN
        CWAZVQWBWEWFZBNUXGUWAGKVGBNWGZBUVSUVTUSBUVSWGUXIUXPWHZUXQUXFUVSCUVTUSUX
        QUXEUVREJUXQUXDUVQLVCUWTNVBWNZWIWJUXRWKZUJWLWMWKUUBAUWCUWDVLWOUWAUWDUSU
        TZUVPVLWOUVPUWAUWDWPUTZVLWOAUYDNUVQUSUTZUWDWQUTZUWAWPUTZUWDUSUTZUVPAUWA
        UWDUXSAUXMBUQVMZDVEZVGVFZUQGVJZUWDVGVFZULAUWFBGVJUYMAUWFBGABCDGMGVGUUCA
        GHWRUUDUTVGQHWRUUEUUFZUUJUCUDUFUUGVKUWFUYLBUQGUWFUQWSBUYKVGBUYJDVTWDBUQ
        WCDUYKVGBUYJDWAVQUUHUUIZUYLUYNUQNGUYJNVHUYKUWDVGBUYJNDWTVQXAWEZWFAUYHUW
        DAUYGUWAAUYFUWDANUVQAGVGNUYOULXBZANVGVFZUVQVGVFUYRNXFXCWFZUYQXDZUXSXEZU
        YQWFZUXCAUWAUYHUWDUXSVUBUYQAXGUYGVLWOUWAUYHVLWOAUYFUWDUYTUYQAUYSXGUYFVL
        WOUYRNXHXCAUXMFNVLWOZNIVLWOZXIZXGUWDVLWOZAUXMVUDVUEULUNANOIANUYRXJAOAGV
        GOUYOUMXBZXJUHUOUPUUKXKUXMAVUFXLZVUGAUXMVUDVUEXMAUWTGVFZFUWTVLWOZUWTIVL
        WOZXIZXLZXGDVLWOZXSZVUIVUGXSBNGVUIVUGBVUIBWSBXGUWDVLBXGWGZBVLWGZBNDVTZX
        NXOUXQVUNVUIVUOVUGUXQVUMVUFAUXQVUJUXMVUKVUDVULVUEUWTNGXPUWTNFVLXQUWTNIV
        LXRXTYAUXQDUWDXGVLBNDWAZYIYBUKYCYDYEZYFAUWAUYGUXSVUAYGYHUULAUYIOUVLUSUT
        ZBODVEZWQUTZUVPWPUTZVVCUSUTZUVPVUCAVVEVVCAVVDUVPAVVBVVCAOUVLVUHAOVGVFZU
        VLVGVFVUHOXFXCWFZAUWEUYMVVCVGVFZUMUYPUYLVVIUQOGUYJOVHUYKVVCVGBUYJODWTVQ
        XAWEZXDZUXCXEZVVJWFUXCANBGUWTUXDUSUTZDWQUTZUXGWPUTZUUMZURZUWDUSUTZOVVPU
        RZVVCUSUTZUYIVVFVLAVVSVVQVLWOZVVRVVTVLWOZABCDEFGHIJVVPLMNOPQRSTUAUBUCUD
        UEUFUGUHUIVVPUUNZULUMUNUOUPUUOZUUPAVVQUYHUWDUSAUXMUYHVGVFVVQUYHVHULVUBB
        NVVOUYHGVVPVGUXTBUYGUWAWPBUYFUWDWQBUYFWGBWQWGZVUSWHBWPWGZUYAWHUXQVVNUYG
        UXGUWAWPUXQVVMUYFDUWDWQUXQUWTNUXDUVQUSUXQYJUYBWKVUTWKUYCWKVWCWLWMZYKAVV
        SVVEVVCUSAUWEVVEVGVFVVSVVEVHUMVVLBOVVOVVEGVVPVGUXHBVVDUVPWPBVVBVVCWQBVV
        BWGVWEBODVTZWHVWFUXJWHUXAVVNVVDUXGUVPWPUXAVVMVVBDVVCWQUXAUWTOUXDUVLUSUX
        AYJUXKWKBODWAZWKUXLWKVWCWLWMZYKYLAUVPVVCVVDUSUTZUSUTZVVFUVPVLAVWLUVPVVD
        WPUTZVVCUSUTVVFAUVPVVCVVDAUVPUXCYMZAVVCVVJYMZAVVDVVKYMZUUQAVWMVVEVVCUSA
        UVPVVDVWNVWPYNYKUURAXGVWKVLWOZVWLUVPVLWOAVWQVVDVVCVLWOAVVDYOVVCWQUTVVCV
        LAVVBYOVVCVVHAUVHZVVJAUWEFOVLWOZOIVLWOZXIZXGVVCVLWOZAUWEVWSVWTUMAFNOTUY
        RVUHUNUOYPUPXKUWEAVXAXLZVXBAUWEVWSVWTXMVUPVXCVXBXSBOGVXCVXBBVXCBWSBXGVV
        CVLVUQVURVWHXNXOUXAVUNVXCVUOVXBUXAVUMVXAAUXAVUJUWEVUKVWSVULVWTUWTOGXPUW
        TOFVLXQUWTOIVLXRXTYAUXADVVCXGVLVWIYIYBUKYCYDYEZAVVGVVBYOVLWOVUHOYQXCYTA
        VVCVWOYRYSAVVCVVDVVJVVKUUSUUTAUVPVWKUXCAVVCVVDVVJVVKWFUVAYHUVBYPYPAUVPU
        WDUWAWPUTZUYEVLAUVPUYHVXEUXCVUBAUWDUWAUYQUXSXEAUVPVVEUYHUXCVVLVUBAXGVVD
        VLWOUVPVVEVLWOAVVBVVCVVHVVJAVVGXGVVBVLWOVUHOXHXCVXDYFAUVPVVDUXCVVKYGYHA
        VVSVVQVVEUYHVLAVWAVWBVWDUVCVWJVWGYLYPAUYGUWDUWAVUAUYQUXSAUYGYOUWDWQUTUW
        DVLAUYFYOUWDUYTVWRUYQVVAAUYSUYFYOVLWOUYRNYQXCYTAUWDAUWDUYQYMZYRYSUVDYPA
        UWDUWAVXFAUWAUXSYMYNYSAUVPUWAUWDUXCUXSUYQUVEUVFUVG $.
    $}

    dvfsumrlim.l $e |- ( ( ph /\ ( x e. S /\ k e. S ) /\ ( D <_ x /\ x <_ k ) )
      -> C <_ B ) $.
    dvfsumrlim.g $e |- G = ( x e. S |->
      ( sum_ k e. ( M ... ( |_ ` x ) ) C - A ) ) $.
    dvfsumrlim.k $e |- ( ph -> ( x e. S |-> B ) ~~>r 0 ) $.
    $( Lemma for ~ dvfsumrlim .  Satisfy the assumption of ~ dvfsumlem4 .
       (Contributed by Mario Carneiro, 18-May-2016.) $)
    dvfsumrlimge0 $p |- ( ( ph /\ ( x e. S /\ D <_ x ) ) -> 0 <_ B ) $=
      ( vu vv vw vz cv wcel cle wbr wa cpnf cico cc0 cxr wne clt csup wceq cioo
      co cr ioossre eqsstri simprl sseldi renepnfd icopnfsup syl2anc wss adantr
      rexrd syl6eleq wb elioopnf syl mpbid simprd df-ioo df-ico xrltletr ixxss1
      syl6sseqr cmpt crli cbvmptv syl5eqbrr rlimres2 cc dvmptrecl adantrr recnd
      a1i rlimconst sselda ralrimiva eleq1d rspccva sylan syldan simpll simplrl
      wral simplrr elicopnf simplbda syl122anc rlimle ) ABULZGUMZFXNUNUOZUPZUPZ
      IXNUQURVFZEDUSDXRXNUTUMXNUQVAXSUTVBVCUQVDXRXNXRGVGXNGHUQVEVFZVGNHUQVHVIZA
      XOXPVJZVKZVQXRXNYCVLXNVMVNXRIXSGEUSXRXSXTGXRHUTUMZHXNVBUOZXSXTVOAYDXQAHSV
      QVPZXRXNVGUMZYEXRXNXTUMZYGYEUPZXRXNGXTYBNVRXRYDYHYIVSYFHXNVTWAWBWCUHUIUJU
      KHXNUQURVBVBUNVEVBUHUIUJWDUHUIUJWEHXNUKULWFWGVNNWHZXRIGEWIBGDWIZUSWJBIGDE
      UDWKAYKUSWJUOXQUGVPWLWMXRIXSGDDYJXRGVGVOZDWNUMIGDWIDWJUOYLXRYAWRXRDAXODVG
      UMZXPABCDGLYLAYAWRTUAUCWOZWPZWQIGDWSVNWMXRIULZXSUMZYPGUMZEVGUMZXRXSGYPYJW
      TZXRYMBGXHZYRYSAUUAXQAYMBGYNXAVPYMYSBYPGXNYPVDDEVGUDXBXCXDXEXRYMYQYOVPXRY
      QUPAXOYRXPXNYPUNUOZEDUNUOAXQYQXFAXOXPYQXGYTAXOXPYQXIXRYQYPVGUMZUUBXRYGYQU
      UCUUBUPVSYCXNYPXJWAXKUEXLXM $.

    $( Compare a finite sum to an integral (the integral here is given as a
       function with a known derivative).  The statement here says that if
       ` x e. S |-> B ` is a decreasing function with antiderivative ` A `
       converging to zero, then the difference between
       ` sum_ k e. ( M ... ( |_ `` x ) ) B ( k ) ` and
       ` A ( x ) = S. u e. ( M [,] x ) B ( u ) _d u ` converges to a constant
       limit value, with the remainder term bounded by ` B ( x ) ` .
       (Contributed by Mario Carneiro, 18-May-2016.) $)
    dvfsumrlim $p |- ( ph -> G e. dom ~~>r ) $=
      ( ve vc vy cr wss cpnf co ioossre eqsstri a1i wf cc dvfsumrlimf ax-resscn
      cioo fss sylancl cxr clt csup supeq1i wcel wceq ressxr renepnfd ioopnfsup
      wne sseldi syl2anc syl5eq cv cle wbr cabs cfv wral wrex crp cmin cmpt cc0
      wi crli rlimmptrcl ralrimiva rlim0 mpbid wa c1 caddc cif cico wb peano2re
      ifcld adantr rexico elicopnf simprbda ltp1d simplbda maxle syl3anc simprd
      syl ltletrd elioopnf mpbir2and syl6eleqr simpld jca adantlr simprrl leidd
      csb adantrr nfcv nfcsb1v nffv nfbr nfim breq2 csbeq1a breq1d imbi12d rspc
      nfv elrege0 expr simprrr w3a ffvelrnd anassrs mpid dvfsumrlimge0 sylanbrc
      fveq2d dvmptrecl nfel1 eleq1d syl3c sylib absid cdv pnfxr 3simpa 3adant1r
      syl3an3 3adantr3 sstri pnfge dvfsumlem4 subcld abscld simprll rpred mpand
      lelttr sylbid syld com23 ralrimdva jctild syldan expimpd reximdv2 sylbird
      cz ralimdva mpd caucvgr ) AUHGUIUJJGUKULZAGHUMVBUNZUKNHUMUOUPZUQZAGUKJURU
      KUSULGUSJURZABCDEFGHIJKLMNOPQRSTUAUBUCUDUFUTVAGUKUSJVCVDZAGVEVFVGUVTVEVFV
      GZUMVEGUVTVFNVHAHVEVIZHUMVNUWEUMVJAUKVEHVKSVOZAHSVLHVMVPVQAUIVRZBVRZVSVTZ
      DWAWBZUHVRZVFVTZWIZBGWCZUIUKWDZUHWEWCZUWHUJVRZVSVTZUWRJWBZUWHJWBZWFUNZWAW
      BZUWLVFVTZWIZUJGWCZUIGWDZUHWEWCABGDWGZWHWJVTUWQUGAUHUIBGDADUSVIBGAGDWHBLU
      AUGWKWLUWBWMWNAUWPUXGUHWEAUWLWEVIZWOZUWPUWOUIFHWPWQUNZVSVTZUXKFWRZUMWSUNZ
      WDZUXGUXJUVSUXMUKVIZUXOUWPWTUVSUXJUWAUQAUXPUXIAUXLUXKFUKAHUKVIZUXKUKVIZSH
      XAZXLQXBZXCUWMGUXMUIBXDVPUXJUWOUXFUIUXNGUXJUWHUXNVIZUWOUWHGVIZUXFWOZUXJUY
      AUYBFUWHVSVTZWOZUWOUYCWIZAUYAUYEUXIAUYAWOZUYBUYDUYGUWHUVTGUYGUWHUVTVIZUWH
      UKVIZHUWHVFVTZAUYAUYIUXMUWHVSVTZAUXPUYAUYIUYKWOWTUXTUXMUWHXEXLZXFZUYGHUXK
      UWHAUXQUYASXCZUYGUXQUXRUYNUXSXLZUYMUYGHUYNXGUYGUYDUXKUWHVSVTZUYGUYKUYDUYP
      WOZAUYAUYIUYKUYLXHUYGFUKVIZUXRUYIUYKUYQWTAUYRUYAQXCUYOUYMFUXKUWHXIXJWNZXK
      XMUYGUWFUYHUYIUYJWOWTAUWFUYAUWGXCHUWHXNXLXONXPUYGUYDUYPUYSXQXRXSAUXIUYEUY
      FAUXIUYEWOZWOZUWOUXFUYBVUAUWOUXEUJGVUAUWRGVIZWOUWSUWOUXDVUAVUBUWSUWOUXDWI
      ZAUYTVUBUWSWOZVUCAUYTVUDWOZWOZUWOBUWHDYBZWAWBZUWLVFVTZUXDVUFUWOUWHUWHVSVT
      ZVUIVUFUWHVUFGUKUWHUWAAUYTUYBVUDAUXIUYBUYDXTZYCZVOYAVUFUYBUWOVUJVUIWIZWIV
      ULUWNVUMBUWHGVUJVUIBVUJBYNBVUHUWLVFBVUGWABWAYDBUWHDYEZYFBVFYDBUWLYDYGYHUW
      IUWHVJZUWJVUJUWMVUIUWIUWHUWHVSYIVUOUWKVUHUWLVFVUODVUGWABUWHDYJZUUDYKYLYMX
      LUUAVUFVUIVUGUWLVFVTZUXDVUFVUHVUGUWLVFVUFVUGUKVIZWHVUGVSVTZWOZVUHVUGVJVUF
      VUGWHUMWSUNZVIZVUTVUFUYBFUWIVSVTZDVVAVIZWIZBGWCZUYDVVBVULAVVFVUEAVVEBGAUW
      IGVIZVVCVVDAVVGVVCWOWODUKVIZWHDVSVTZVVDAVVGVVHVVCABCDGLUWBTUAUCUUEYCABCDE
      FGHIJKLMNOPQRSTUAUBUCUDUEUFUGUUBZDYOUUCYPWLXCAUYTUYDVUDAUXIUYBUYDYQYCZVVE
      UYDVVBWIBUWHGUYDVVBBUYDBYNBVUGVVAVUNUUFYHVUOVVCUYDVVDVVBUWIUWHFVSYIVUODVU
      GVVAVUPUUGYLYMUUHVUGYOUUIZVUGUUJXLYKVUFUXCVUGVSVTZVUQUXDVUFBCDEFGHUMIJKLU
      WHUWRMNOAKUVOVIVUEPXCAUYRVUEQXCAKFWPWQUNVSVTVUERXCAUXQVUESXCAVVGCUKVIVUET
      XSAVVGDLVIVUEUAXSAUWIMVIVVHVUEUBXSAUKBGCWGUUKUNUXHVJVUEUCXCUDUMVEVIVUFUUL
      UQAVVGIVRZGVIWOZVVCUWIVVNVSVTZVVNUMVSVTZYRZEDVSVTZVUEVVRAVVOVVCVVPWOVVSVV
      CVVPVVQUUMUEUUOUUNUFAVVGVVCUWIUMVSVTZYRVVIVUEAVVGVVCVVIVVTVVJUUPXSVULAUYT
      VUBUWSXTZVVKAUYTVUBUWSYQVUFUWRVEVIUWRUMVSVTVUFGVEUWRGUKVEUWAVKUUQVWAVOUWR
      UURXLUUSVUFUXCUKVIVURUWLUKVIVVMVUQWOUXDWIVUFUXBVUFUWTUXAVUFGUSUWRJAUWCVUE
      UWDXCZVWAYSVUFGUSUWHJVWBVULYSUUTUVAVUFVURVUSVVLXQVUFUWLAUXIUYEVUDUVBUVCUX
      CVUGUWLUVEXJUVDUVFUVGYTYPUVHUVIVUKUVJYTUVKUVLUVMUVNUVPUVQUVR $.

    ${
      dvfsumrlim2.1 $e |- ( ph -> X e. S ) $.
      dvfsumrlim2.2 $e |- ( ph -> D <_ X ) $.
      $( Compare a finite sum to an integral (the integral here is given as a
         function with a known derivative).  The statement here says that if
         ` x e. S |-> B ` is a decreasing function with antiderivative ` A `
         converging to zero, then the difference between
         ` sum_ k e. ( M ... ( |_ `` x ) ) B ( k ) ` and
         ` S. u e. ( M [,] x ) B ( u ) _d u = A ( x ) ` converges to a constant
         limit value, with the remainder term bounded by ` B ( x ) ` .
         (Contributed by Mario Carneiro, 18-May-2016.) $)
      dvfsumrlim2 $p |- ( ( ph /\ G ~~>r L ) ->
        ( abs ` ( ( G ` X ) - L ) ) <_ [_ X / x ]_ B ) $=
        ( vy vu vv vw vz crli wbr wa cpnf cico co cfv cv cmin cabs csb cxr csup
        clt wceq wcel wne cr cioo ioossre eqsstri sseldi rexrd renepnfd syl2anc
        icopnfsup adantr cc wf dvfsumrlimf ad2antrr ffvelrnd recnd wss syl6eleq
        wb elioopnf mpbid simprd df-ioo df-ico xrltletr ixxss1 syl6sseqr sselda
        syl cle subcld cmpt pnfxr icossre sylancl cdm rlimf adantl cfl cfz ovex
        csu dmmpti feq2i sylib rlimconst feqmptd simpr eqbrtrrd rlimsub rlimabs
        rlimres2 wral a1i dvmptrecl ralrimiva nfcsb1v nfel1 csbeq1a eleq1d rspc
        sylc abscld abssubd cz adantlr w3a c1 caddc cdv 3simpa syl3an3 3adant1r
        cc0 dvfsumrlimge0 3adantr3 elicopnf simplbda simprbda dvfsumlem4 rlimle
        pnfge eqbrtrd ) AJKUQURZUSZULNUTVAVBZNJVCZULVDZJVCZVEVBZVFVCZBNDVGZUUTK
        VEVBZVFVCUVEAUUSVHVJVIUTVKZUUQANVHVLNUTVMUVGANAGVNNGHUTVOVBZVNPHUTVPVQZ
        UJVRZVSANUVJVTNWBWAWCUURUUSUVCUVFULWDUURUVAUUSVLZUSZUUTUVBUVLUUTUVLGVNN
        JAGVNJWEUUQUVKABCDEFGHIJLMOPQRSTUAUBUCUDUEUFUHWFWGZANGVLZUUQUVKUJWGWHWI
        ZUVLUVBUVLGVNUVAJUVMUURUUSGUVAAUUSGWJUUQAUUSUVHGAHVHVLZHNVJURZUUSUVHWJA
        HUAVSZANVNVLZUVQANUVHVLZUVSUVQUSZANGUVHUJPWKAUVPUVTUWAWLUVRHNWMXBWNWOUM
        UNUOUPHNUTVAVJVJXCVOVJUMUNUOWPUMUNUOWQHNUPVDWRWSWAPWTZWCZXAWHWIZXDZUURU
        LUUSUUTUVBUUTKWDUVOUWDUURUUSVNWJZUUTWDVLULUUSUUTXEUUTUQURAUWFUUQAUVSUTV
        HVLZUWFUVJXFNUTXGXHZWCUURGWDNJUURJXIZWDJWEZGWDJWEUUQUWJAKJXJXKUWIGWDJBG
        LBVDZXLVCXMVBEIXOZCVEVBJUWLCVEXNUHXPXQXRZAUVNUUQUJWCWHULUUSUUTXSWAUURUL
        UUSGUVBKUWCUURJULGUVBXEKUQUURULGWDJUWMXTAUUQYAYBYEYCYDAULUUSUVEXEUVEUQU
        RZUUQAUWFUVEWDVLUWNUWHAUVEAUVNDVNVLZBGYFUVEVNVLZUJAUWOBGABCDGMGVNWJAUVI
        YGUBUCUEYHYIUWOUWPBNGBUVEVNBNDYJYKUWKNVKDUVEVNBNDYLYMYNYOZWIULUUSUVEXSW
        AWCUVLUVCUWEYPAUWPUUQUVKUWQWGUVLUVDUVBUUTVEVBVFVCZUVEXCUVLUUTUVBUVOUWDY
        QAUVKUWRUVEXCURUUQAUVKUSZBCDEFGHUTIJLMNUVAOPQALYRVLUVKRWCAFVNVLUVKSWCAL
        FUUAUUBVBXCURUVKTWCAHVNVLUVKUAWCAUWKGVLZCVNVLUVKUBYSAUWTDMVLUVKUCYSAUWK
        OVLUWOUVKUDYSAVNBGCXEUUCVBBGDXEVKUVKUEWCUFUWGUWSXFYGAUWTIVDZGVLUSZFUWKX
        CURZUWKUXAXCURZUXAUTXCURZYTZEDXCURZUVKUXFAUXBUXCUXDUSUXGUXCUXDUXEUUDUGU
        UEUUFUHAUWTUXCUWKUTXCURZYTUUGDXCURZUVKAUWTUXCUXIUXHABCDEFGHIJLMOPQRSTUA
        UBUCUDUEUFUGUHUIUUHUUIYSAUVNUVKUJWCAUUSGUVAUWBXAAFNXCURUVKUKWCAUVKUVAVN
        VLZNUVAXCURZAUVSUVKUXJUXKUSWLUVJNUVAUUJXBZUUKUWSUVAVHVLUVAUTXCURUWSUVAA
        UVKUXJUXKUXLUULVSUVAUUOXBUUMYSUUPUUN $.
    $}

    dvfsumrlim3.1 $e |- ( x = X -> B = E ) $.
    $( Conjoin the statements of ~ dvfsumrlim and ~ dvfsumrlim2 .  (This is
       useful as a target for lemmas, because the hypotheses to this theorem
       are complex, and we don't want to repeat ourselves.)  (Contributed by
       Mario Carneiro, 18-May-2016.) $)
    dvfsumrlim3 $p |- ( ph -> ( G : S --> RR /\ G e. dom ~~>r /\
      ( ( G ~~>r L /\ X e. S /\ D <_ X ) ->
        ( abs ` ( ( G ` X ) - L ) ) <_ E ) ) ) $=
      ( cr wf crli cdm wcel wbr cle w3a cfv cmin co cabs dvfsumrlimf dvfsumrlim
      wi wa csb cz adantr c1 caddc cv adantlr cmpt cdv wceq 3adant1r cc0 simprr
      simprl dvfsumrlim2 nfcvd csbiegf syl breqtrd exp42 com24 3impd 3jca ) AGU
      LKUMKUNUOUPKLUNUQZOGUPZFOURUQZUSOKUTLVAVBVCUTZJURUQZVFABCDEFGHIKMNPQRSTUA
      UBUCUDUEUFUGUIVDABCDEFGHIKMNPQRSTUAUBUCUDUEUFUGUHUIUJVEAWKWLWMWOAWMWLWKWO
      AWMWLWKWOAWMWLVGZVGZWKVGZWNBODVHZJURWQBCDEFGHIKLMNOPQRAMVIUPWPSVJAFULUPWP
      TVJAMFVKVLVBURUQWPUAVJAHULUPWPUBVJABVMZGUPZCULUPWPUCVNAXADNUPWPUDVNAWTPUP
      DULUPWPUEVNAULBGCVOVPVBBGDVOZVQWPUFVJUGAXAIVMZGUPVGFWTURUQWTXCURUQVGEDURU
      QWPUHVRUIAXBVSUNUQWPUJVJAWMWLVTZAWMWLWAWBWRWLWSJVQWQWLWKXDVJBODJGWLBJWCUK
      WDWEWFWGWHWIWJ $.
  $}

  ${
    $d k m B $.  $d x C $.  $d k x D $.  $d k x ph $.  $d x E $.  $d k x M $.
    $d k m x S $.  $d k m x X $.  $d k x Y $.  $d x T $.  $d k x U $.
    $d x V $.  $d x Z $.
    dvfsum2.s $e |- S = ( T (,) +oo ) $.
    dvfsum2.z $e |- Z = ( ZZ>= ` M ) $.
    dvfsum2.m $e |- ( ph -> M e. ZZ ) $.
    dvfsum2.d $e |- ( ph -> D e. RR ) $.
    dvfsum2.u $e |- ( ph -> U e. RR* ) $.
    dvfsum2.md $e |- ( ph -> M <_ ( D + 1 ) ) $.
    dvfsum2.t $e |- ( ph -> T e. RR ) $.
    dvfsum2.a $e |- ( ( ph /\ x e. S ) -> A e. RR ) $.
    dvfsum2.b1 $e |- ( ( ph /\ x e. S ) -> B e. V ) $.
    dvfsum2.b2 $e |- ( ( ph /\ x e. Z ) -> B e. RR ) $.
    dvfsum2.b3 $e |- ( ph ->
      ( RR _D ( x e. S |-> A ) ) = ( x e. S |-> B ) ) $.
    dvfsum2.c $e |- ( x = k -> B = C ) $.
    dvfsum2.l $e |- ( ( ph /\ ( x e. S /\ k e. S ) /\
      ( D <_ x /\ x <_ k /\ k <_ U ) ) -> B <_ C ) $.
    dvfsum2.g $e |- G = ( x e. S |->
      ( sum_ k e. ( M ... ( |_ ` x ) ) C - A ) ) $.
    dvfsum2.0 $e |- ( ( ph /\ ( x e. S /\ D <_ x ) ) -> 0 <_ B ) $.
    dvfsum2.1 $e |- ( ph -> X e. S ) $.
    dvfsum2.2 $e |- ( ph -> Y e. S ) $.
    dvfsum2.3 $e |- ( ph -> D <_ X ) $.
    dvfsum2.4 $e |- ( ph -> X <_ Y ) $.
    dvfsum2.5 $e |- ( ph -> Y <_ U ) $.
    dvfsum2.e $e |- ( x = Y -> B = E ) $.
    $( The reverse of ~ dvfsumrlim , when comparing a finite sum of
       _increasing_ terms to an integral.  In this case there is no point in
       stating the limit properties, because the terms of the sum aren't
       approaching zero, but there is nevertheless still a natural asymptotic
       statement that can be made.  (Contributed by Mario Carneiro,
       20-May-2016.) $)
    dvfsum2 $p |- ( ph -> ( abs ` ( ( G ` Y ) - ( G ` X ) ) ) <_ E ) $=
      ( vm cfv cmin co cabs cfl cfz csu csb cle wcel cr wceq fzfid cv ralrimiva
      wral elfzuz syl6eleqr weq eleq1d fsumrecl nfcsb1v nfel1 csbeq1a rspc sylc
      syl2an resubcld nfcv nfov fveq2 oveq2d sumeq1d oveq12d fvmptf recnd eqtrd
      syl2anc wbr caddc cmul cpnf a1i rspcv sseldi reflcl syl remulcld readdcld
      nfv cc0 fracge0 wi letrd breq2 breq2d imbi12d syl3c mulge0d addge02d cneg
      wa renegcld negeqd w3a lenegd mulneg2d neg2subd fsumneg oveq1d negsubdi2d
      mpbid 3eqtr4d negdid eqtr4d eqeltrd nfneg 3brtr3d mpbird c1 breqtrd sylib
      cuz rspccva fveq2d abssubd wss cioo ioossre eqsstri dvmptrecl cbvral expr
      csbeq1 lesub1dd cmpt cc reelprrecn dvmptneg adantrr 3adant3 3ad2ant1 eqid
      cpr simp2r dvfsumlem3 simprd csbnegg adantl csbied 3brtr4d 1red nfbr nfim
      id fracle1 lemul1ad mulid2d lesubadd2d simpld addcomd absdifled mpbir2and
      leadd1dd eqbrtrd ) APLUTZOLUTZVAVBZVCUTZMOVDUTZVEVBZEJVFZBOCVGZVAVBZMPVDU
[encoded data, 4240 characters]
      WMUWRKVUDUYEVVBUWAUWBUWD $.
  $}

  ${
    $d s t u v w x y z C $.  $d d r s t u v w x y z D $.  $d d e r s u y z G $.
    $d d e r s t u v w x y z A $.  $d d e r s t u v w x y z B $.  $d t x z X $.
    $d t y E $.  $d s u v w y H $.  $d d e r s t u v w x y z ph $.  $d t x Y $.
    $d d r s t u v w x y z F $.  $d s u v w x y z L $.  $d y R $.
    ftc1.g $e |- G = ( x e. ( A [,] B ) |-> S. ( A (,) x ) ( F ` t ) _d t ) $.
    ftc1.a $e |- ( ph -> A e. RR ) $.
    ftc1.b $e |- ( ph -> B e. RR ) $.
    ftc1.le $e |- ( ph -> A <_ B ) $.
    ftc1.s $e |- ( ph -> ( A (,) B ) C_ D ) $.
    ftc1.d $e |- ( ph -> D C_ RR ) $.
    ftc1.i $e |- ( ph -> F e. L^1 ) $.

    ${
      ftc1a.f $e |- ( ph -> F : D --> CC ) $.
      ${
        ftc1lem1.x $e |- ( ph -> X e. ( A [,] B ) ) $.
        ftc1lem1.y $e |- ( ph -> Y e. ( A [,] B ) ) $.
        $( Lemma for ~ ftc1a and ~ ftc1 .  (Contributed by Mario Carneiro,
           31-Aug-2014.) $)
        ftc1lem1 $p |- ( ( ph /\ X <_ Y ) ->
          ( ( G ` Y ) - ( G ` X ) ) = S. ( X (,) Y ) ( F ` t ) _d t ) $=
          ( cle wbr wa cfv cmin co cioo cv citg caddc wceq cicc wcel itgeq1 syl
          oveq2 itgex fvmpt adantr wss iccssre syl2anc sseldd w3a elicc2 simp2d
          cr wb mpbid simpr mpbir3and cc cxr rexrd simp3d iooss2 sselda adantlr
          sstrd ffvelrnda syldan cmpt cibl cvv cvol cdm ioombl feqmptd eqeltrrd
          a1i fvexd iblss iooss1 itgsplitioo eqtrd oveq12d itgcl pncan2d ) AIJU
          AUBZUCZJHUDZIHUDZUEUFCDIUGUFZCUHZGUDZUIZCIJUGUFZXEUIZUJUFZXFUEUFZXHWT
          XAXIXBXFUEWTXACDJUGUFZXEUIZXIAXAXLUKZWSAJDEULUFZUMZXMTBJCDBUHZUGUFZXE
          UIZXLXNHXPJUKXQXKUKXRXLUKXPJDUGUPCXQXKXEUNUOKCXKXEUQURUOUSWTCDIJXEADV
          GUMZWSLUSAJVGUMZWSAXNVGJAXSEVGUMZXNVGUTLMDEVAVBZTVCZUSWTIDJULUFUMZIVG
          UMZDIUAUBZWSAYEWSAXNVGIYBSVCUSAYFWSAYEYFIEUAUBZAIXNUMZYEYFYGVDZSAXSYA
          YHYIVHLMDEIVEVBVIZVFZUSAWSVJAYDYEYFWSVDVHZWSAXSXTYLLYCDJIVEVBUSVKWTXD
          XKUMXDFUMZXEVLUMZWTXKFXDAXKFUTWSAXKDEUGUFZFAEVMUMZJEUAUBZXKYOUTAEMVNZ
          AXTDJUAUBZYQAXOXTYSYQVDZTAXSYAXOYTVHLMDEJVEVBVIVODJEVPVBZOVSUSVQAYMYN
          WSAFVLXDGRVTZVRWAACXCXEWBWCUMWSACXCFXEWDAXCYOFAYPYGXCYOUTYRAYEYFYGYJV
          ODIEVPVBOVSXCWEWFZUMADIWGWJAYMUCXDGWKZAGCFXEWBWCACFVLGRWHQWIZWLZUSACX
          GXEWBWCUMWSACXGFXEWDAXGYOFAXGXKYOADVMUMYFXGXKUTADLVNYKDIJWMVBUUAVSOVS
          ZXGUUCUMAIJWGWJUUDUUEWLZUSWNWOAXBXFUKZWSAYHUUISBIXRXFXNHXPIUKXQXCUKXR
          XFUKXPIDUGUPCXQXCXEUNUOKCXCXEUQURUOUSWPAXJXHUKWSAXFXHACXCXEWDAXDXCUMU
          CXDGWKUUFWQACXGXEVLAXDXGUMYMYNAXGFXDUUGVQUUBWAUUHWQWRUSWO $.
      $}

      $( Lemma for ~ ftc1 .  (Contributed by Mario Carneiro, 12-Aug-2014.) $)
      ftc1lem2 $p |- ( ph -> G : ( A [,] B ) --> CC ) $=
        ( co wcel wa cr cicc cv cioo cfv citg cc cvv fvexd cxr cle adantr rexrd
        wbr wss w3a wb elicc2 syl2anc biimpa simp3d iooss2 sstrd cdm ioombl a1i
        cvol cmpt cibl feqmptd eqeltrrd iblss itgcl fmptd ) ABDEUAQZCDBUBZUCQZC
        UBZGUDZUEUFHAVOVNRZSZCVPVRUGVTVQVPRSVQGUHVTCVPFVRUGVTVPDEUCQZFVTEUIRVOE
        UJUMZVPWAUNVTEAETRZVSKUKULVTVOTRZDVOUJUMZWBAVSWDWEWBUOZADTRWCVSWFUPJKDE
        VOUQURUSUTDVOEVAURAWAFUNVSMUKVBVPVFVCRVTDVOVDVEVTVQFRSVQGUHACFVRVGZVHRV
        SAGWGVHACFUFGPVIOVJUKVKVLIVM $.

      $( The Fundamental Theorem of Calculus, part one.  The function ` G `
         formed by varying the right endpoint of an integral of ` F ` is
         continuous if ` F ` is integrable.  (Contributed by Mario Carneiro,
         1-Sep-2014.) $)
      ftc1a $p |- ( ph -> G e. ( ( A [,] B ) -cn-> CC ) ) $=
        ( wcel cfv clt wbr vz vy vd ve vu vw vs vr cicc co ccncf cmin cabs wral
        cc wf cv wi crp wrex ftc1lem2 wss cvol citg cdm fvexd cmpt cibl feqmptd
        wa cvv eqeltrrd adantr simpr itgcn weq wb oveq12 fveq2d fveq2 oveqan12d
        breq1d imbi12d ancoms cr iccssre ad2antrr ad3antrrr simprr sseldd recnd
        syl2anc simprl abssubd ffvelrnd cioo wceq simpr3 simpr1 simpr2 ftc1lem1
        cle w3a mpdan adantlr ad2ant2r rexrd simprl1 elicc2 mpbid simp2d iooss1
        cxr simprl2 simp3d iooss2 sstrd ioombl a1i iblss abscld cmbf iblmbf syl
        itgcl mbfmptcl iblabs itgrecl rpred itgabs simplr mblvol ioossre ovolcl
        covol ax-mp mp1i simp1d resubcld rpxrd ioossicc sylancr simprl3 ovolicc
        ovolss syl3anc breqtrd abssubge0d eqbrtrrd xrlelttrd syl5eqbr jca sseq1
        anbi12d cbvitgv itgeq1 syl5eq rspcv syl3c lelttrd eqbrtrd ralrimivva ex
        expr wlogle reximdva mpd r19.12 ralrimiva ralcom sylib ax-resscn syl6ss
        anassrs ssid elcncf2 sylancl mpbir2and ) AHDEUIUJZUOUKUJQZUVSUOHUPZUAUQ
        ZUBUQZULUJZUMRZUCUQZSTZUWBHRZUWCHRZULUJZUMRZUDUQZSTZURZUAUVSUNZUCUSUTZU
        DUSUNUBUVSUNZABCDEFGHIJKLMNOPVAZAUWPUBUVSUNZUDUSUNUWQAUWSUDUSAUWLUSQZVJ
        ZUWOUBUVSUNZUCUSUTZUWSUXAUEUQZFVBZUXDVCRZUWFSTZVJZUFUXDUFUQZGRZUMRZVDZU
        WLSTZURZUEVCVEZUNZUCUSUTUXCUXAUFUEFUXJUWLVKUCUXAUXIFQVJUXIGVFAUFFUXJVGZ
        VHQUWTAGUXQVHAUFFUOGPVIOVLVMAUWTVNVOUXAUXPUXBUCUSAUWTUWFUSQZUXPUXBURAUW
        TUXRVJZVJZUXPUXBUXTUXPVJZUWNUBUAUVSUVSUYAUGUQZUHUQZULUJZUMRZUWFSTZUYBHR
        ZUYCHRZULUJZUMRZUWLSTZURZUWNUWCUWBULUJZUMRZUWFSTZUWIUWHULUJZUMRZUWLSTZU
        RZUBUAUHUGUVSUGUAVPZUHUBVPZUYLUWNVQUYTVUAVJZUYFUWGUYKUWMVUBUYEUWEUWFSVU
        BUYDUWDUMUYBUWBUYCUWCULVRVSWBVUBUYJUWKUWLSVUBUYIUWJUMUYTVUAUYGUWHUYHUWI
        ULUYBUWBHVTUYCUWCHVTWAVSWBWCWDUGUBVPZUHUAVPZUYLUYSVQVUCVUDVJZUYFUYOUYKU
        YRVUEUYEUYNUWFSVUEUYDUYMUMUYBUWCUYCUWBULVRVSWBVUEUYJUYQUWLSVUEUYIUYPUMV
        UCVUDUYGUWIUYHUWHULUYBUWCHVTUYCUWBHVTWAVSWBWCWDAUVSWEVBZUXSUXPADWEQZEWE
        QZVUFJKDEWFWLZWGUYAUWCUVSQZUWBUVSQZVJZVJZUWGUYOUWMUYRVUMUWEUYNUWFSVUMUW
        BUWCVUMUWBVUMUVSWEUWBAVUFUXSUXPVULVUIWHZUYAVUJVUKWIZWJWKVUMUWCVUMUVSWEU
        WCVUNUYAVUJVUKWMZWJWKWNWBVUMUWKUYQUWLSVUMUWHUWIVUMUVSUOUWBHAUWAUXSUXPVU
        LUWRWHZVUOWOVUMUVSUOUWCHVUQVUPWOWNWBWCUYAVUJVUKUWCUWBXBTZXCZUWGUWMUYAVU
        SUWGVJZVJZUWKCUWCUWBWPUJZCUQZGRZVDZUMRZUWLSVVAUWJVVEUMUXTVUSUWJVVEWQZUX
        PUWGAVUSVVGUXSAVUSVJZVURVVGAVUJVUKVURWRVVHBCDEFGHUWCUWBIAVUGVUSJVMAVUHV
        USKVMADEXBTVUSLVMADEWPUJZFVBZVUSMVMAFWEVBVUSNVMAGVHQVUSOVMAFUOGUPVUSPVM
        AVUJVUKVURWSAVUJVUKVURWTXAXDXEXFVSVVAVVFCVVBVVDUMRZVDZUWLVVAVVEVVACVVBV
        VDVKVVAVVCVVBQVJZVVCGVFZVVACVVBFVVDVKVVAVVBVVIFVVAVVBDUWBWPUJZVVIVVADXM
        QDUWCXBTZVVBVVOVBVVADAVUGUXSUXPVUTJWHZXGVVAUWCWEQZVVPUWCEXBTZVVAVUJVVRV
        VPVVSXCZVUJVUKVURUWGUYAXHVVAVUGVUHVUJVVTVQVVQAVUHUXSUXPVUTKWHZDEUWCXIWL
        XJZXKDUWCUWBXLWLVVAEXMQUWBEXBTZVVOVVIVBVVAEVWAXGVVAUWBWEQZDUWBXBTZVWCVV
        AVUKVWDVWEVWCXCZVUJVUKVURUWGUYAXNVVAVUGVUHVUKVWFVQVVQVWADEUWBXIWLXJZXOD
        UWBEXPWLXQAVVJUXSUXPVUTMWHXQZVVBUXOQZVVAUWCUWBXRZXSZVVAVVCFQVJVVCGVFACF
        VVDVGZVHQUXSUXPVUTAGVWLVHACFUOGPVIOVLWHXTZYEYAVVACVVBVVKVVMVVDVVACVVBVV
        DVKVVACVVBVVDVGZVHQVWNYBQVWMVWNYCYDVVNYFYAVVACVVBVVDVKVVNVWMYGYHVVAUWLU
        XTUWTUXPVUTAUWTUXRWMWGYIVVACVVBVVDVKVVNVWMYJVVAVWIUXPVVBFVBZVVBVCRZUWFS
        TZVJZVVLUWLSTZVWKUXTUXPVUTYKVVAVWOVWQVWHVVAVWPVVBYORZUWFSVWIVWPVWTWQVWJ
        VVBYLYPVVAVWTUWDUWFVVBWEVBVWTXMQVVAUWCUWBYMVVBYNYQVVAUWDVVAUWBUWCVVAVWD
        VWEVWCVWGYRZVVAVVRVVPVVSVWBYRZYSXGVVAUWFUXTUXRUXPVUTAUWTUXRWIWGYTVVAVWT
        UWCUWBUIUJZYORZUWDXBVVAVVBVXCVBVXCWEVBZVWTVXDXBTUWCUWBUUAVVAVVRVWDVXEVX
        BVXAUWCUWBWFWLVVBVXCUUEUUBVVAVVRVWDVURVXDUWDWQVXBVXAVUJVUKVURUWGUYAUUCZ
        UWCUWBUUDUUFUUGVVAUWEUWDUWFSVVAUWCUWBVXBVXAVXFUUHUYAVUSUWGWIUUIUUJUUKUU
        LUXNVWRVWSURUEVVBUXOUXDVVBWQZUXHVWRUXMVWSVXGUXEVWOUXGVWQUXDVVBFUUMVXGUX
        FVWPUWFSUXDVVBVCVTWBUUNVXGUXLVVLUWLSVXGUXLCUXDVVKVDVVLUFCUXDUXKVVKUFCVP
        UXJVVDUMUXIVVCGVTVSUUOCUXDVVBVVKUUPUUQWBWCUURUUSUUTUVAUVDUVEUVBUVCUVNUV
        FUVGUWOUCUBUSUVSUVHYDUVIUWPUDUBUSUVSUVJUVKAUVSUOVBUOUOVBUVTUWAUWQVJVQAU
        VSWEUOVUIUVLUVMUOUVOUBUDUCUAUVSUOHUVPUVQUVR $.
    $}

    ftc1.c $e |- ( ph -> C e. ( A (,) B ) ) $.
    ftc1.f $e |- ( ph -> F e. ( ( K CnP L ) ` C ) ) $.
    ftc1.j $e |- J = ( L |`t RR ) $.
    ftc1.k $e |- K = ( L |`t D ) $.
    ftc1.l $e |- L = ( TopOpen ` CCfld ) $.
    $( Lemma for ~ ftc1 .  (Contributed by Mario Carneiro, 1-Sep-2014.)
       (Revised by Mario Carneiro, 8-Sep-2015.) $)
    ftc1lem3 $p |- ( ph -> F : D --> CC ) $=
      ( ctopon cfv wcel cc ccnp co wf wss cnfldtopon ax-resscn syl6ss resttopon
      crest cr sylancr syl5eqel a1i cnpf2 syl3anc ) AKGUEUFZUGLUHUEUFUGZHFKLUIU
      JUFUGGUHHUKAKLGUQUJZVDUCAVEGUHULVFVDUGLUDUMZAGURUHRUNUOGLUHUPUSUTVEAVGVAU
      AFHKLGUHVBVC $.

    ${
      ftc1.h $e |- H = ( z e. ( ( A [,] B ) \ { C } ) |->
      ( ( ( G ` z ) - ( G ` C ) ) / ( z - C ) ) ) $.
      ${
        ftc1.e $e |- ( ph -> E e. RR+ ) $.
        ftc1.r $e |- ( ph -> R e. RR+ ) $.
        ftc1.fc $e |- ( ( ph /\ y e. D ) -> ( ( abs ` ( y - C ) ) < R ->
          ( abs ` ( ( F ` y ) - ( F ` C ) ) ) < E ) ) $.
        ftc1.x1 $e |- ( ph -> X e. ( A [,] B ) ) $.
        ftc1.x2 $e |- ( ph -> ( abs ` ( X - C ) ) < R ) $.
        ${
          ftc1.y1 $e |- ( ph -> Y e. ( A [,] B ) ) $.
          ftc1.y2 $e |- ( ph -> ( abs ` ( Y - C ) ) < R ) $.
          $( Lemma for ~ ftc1 .  (Contributed by Mario Carneiro,
             31-Aug-2014.) $)
          ftc1lem4 $p |- ( ( ph /\ X < Y ) -> ( abs `
          ( ( ( ( G ` Y ) - ( G ` X ) ) / ( Y - X ) ) - ( F ` C ) ) ) < E ) $=
            ( clt wbr wa cfv cmin co cdiv cabs cioo cv citg caddc cmul cle wceq
            cr wcel wi cicc wss iccssre syl2anc sseldd ltle imp ftc1lem3 syldan
            ftc1lem1 cc rexrd wb elicc2 mpbid simp2d iooss1 simp3d iooss2 sstrd
            cxr w3a sselda ffvelrnda ffvelrnd adantr npcand itgeq2dv subcld cvv
            cvol cdm a1i cmpt cibl eqeltrrd csn cxp fconstmpt covol syl syl3anc
            mblvol iblconst iblsub itgconst oveq2d eqtrd 3eqtrd oveq1d resubcld
            syl5eqelr recnd posdifd fveq2d abscld rpred absdifltd simpld simprd
            cc0 lttrd breq1d ioombl fvexd feqmptd iblss ax-mp ioossicc iccvolcl
            iccmbl ovolsscl syl5eqel itgadd eqtr3d ovolioo syl5eq mulcld biimpa
            mblss ovexd itgcl gt0ne0d divdird divcld pncand absdivd 0re sylancr
            divcan4d mpd absidd iblabs itgrecl remulcld breqtrrd wral ralrimiva
            itgabs eliooord adantl readdcld mpbir2and oveq1 fveq2 imbi12d rspcv
            syl3c difrp adantlr itggt0 mulcomd breqtrd biimpar lelttrd ltdivmul
            crp itgsub syl112anc mpbird eqbrtrd ) ARSUTVAZVBZSMVCRMVCVDVEZSRVDV
            EZVFVEZHLVCZVDVEZVGVCZERSVHVEZEVIZLVCZUXDVDVEZVJZVGVCZUXBVFVEZKUTUW
            TUXFUXKUXBVFVEZVGVCUXLUXBVGVCZVFVEUXMUWTUXEUXNVGUWTUXEUXNUXDVKVEZUX
            DVDVEUXNUWTUXCUXPUXDVDUWTUXCUXKUXDUXBVLVEZVKVEZUXBVFVEUXNUXQUXBVFVE
            ZVKVEUXPUWTUXAUXRUXBVFUWTUXAEUXGUXIVJZUXKEUXGUXDVJZVKVEZUXRAUWSRSVM
            VAZUXAUXTVNAUWSUYCARVOVPZSVOVPZUWSUYCVQAFGVRVEZVORAFVOVPZGVOVPZUYFV
            OVSUAUBFGVTWAZUPWBZAUYFVOSUYIURWBZRSWCWAWDZABEFGILMRSTUAUBUCUDUEUFA
            BEFGHILMOPQTUAUBUCUDUEUFUGUHUIUJUKWEZUPURWGWFAUXTUYBVNUWSAEUXGUXJUX
            DVKVEZVJUXTUYBAEUXGUYNUXIAUXHUXGVPZVBZUXIUXDAUYOUXHIVPZUXIWHVPAUXGI
            UXHAUXGFGVHVEZIAUXGFSVHVEZUYRAFWRVPFRVMVAZUXGUYSVSAFUAWIAUYDUYTRGVM
            VAZARUYFVPZUYDUYTVUAWSZUPAUYGUYHVUBVUCWJUAUBFGRWKWAWLWMFRSWNWAAGWRV
            PSGVMVAZUYSUYRVSAGUBWIAUYEFSVMVAZVUDASUYFVPZUYEVUEVUDWSZURAUYGUYHVU
            FVUGWJUAUBFGSWKWAWLWOFSGWPWAWQUDWQZWTZAIWHUXHLUYMXAWFZAUXDWHVPZUYOA
            IWHHLUYMAUYRIHUDUGWBZXBZXCZXDXEAEUXGUXJUXDWHUYPUXIUXDVUJVUNXFZAEUXG
            UXIUXDWHVUJAEUXGIUXIXGVUHUXGXHXIZVPZARSUUAZXJZAUYQVBUXHLUUBALEIUXIX
            KXLAEIWHLUYMUUCUFXMUUDVUNAEUXGUXDXKUXGUXDXNXOZXLEUXGUXDXPAVUQUXGXHV
            CZVOVPZVUKVUTXLVPVUSAVVAUXGXQVCZVOVUQVVAVVCVNVURUXGXTUUEZAUXGRSVRVE
            ZVSZVVEVOVSZVVEXQVCZVOVPVVCVOVPVVFARSUUFXJAVVEVUPVPZVVGAUYDUYEVVIUY
            JUYKRSUUHWAZVVEUUQXRAVVEXHVCZVVHVOAVVIVVKVVHVNVVJVVEXTXRAUYDUYEVVKV
            OVPUYJUYKRSUUGWAXMUXGVVEUUIXSUUJZVUMUXGUXDYAXSYIZYBZVUNVVMUUKUULXCU
            WTUYAUXQUXKVKUWTUYAUXDVVAVLVEZUXQAUYAVVOVNZUWSAVUQVVBVUKVVPVUSVVLVU
            MEUXGUXDYCXSXCUWTVVAUXBUXDVLUWTVVAVVCUXBVVDUWTUYDUYEUYCVVCUXBVNAUYD
            UWSUYJXCAUYEUWSUYKXCUYLRSUUMXSUUNZYDYEYDYFYGUWTUXKUXQUXBAUXKWHVPUWS
            AEUXGUXJXGUYPUXIUXDVDUURZVVNUUSZXCZUWTUXDUXBAVUKUWSVUMXCZUWTUXBAUXB
            VOVPZUWSASRUYKUYJYHZXCZYJZUUOVWEUWTUXBAUWSYRUXBUTVAZARSUYJUYKYKUUPZ
            UUTZUVAUWTUXSUXDUXNVKUWTUXDUXBVWAVWEVWHUVGYDYFYGUWTUXNUXDUWTUXKUXBV
            VTVWEVWHUVBVWAUVCYEYLUWTUXKUXBVVTVWEVWHUVDUWTUXOUXBUXLVFUWTUXBVWDUW
            TVWFYRUXBVMVAZVWGUWTYRVOVPVWBVWFVWIVQUVEVWDYRUXBWCUVFUVHUVIYDYFUWTU
            XMKUTVAZUXLUXBKVLVEZUTVAZUWTUXLEUXGUXJVGVCZVJZVWKAUXLVOVPZUWSAUXKVV
            SYMXCAVWNVOVPUWSAEUXGVWMUYPUXJVUOYMZAEUXGUXJXGVVRVVNUVJZUVKZXCAVWKV
            OVPUWSAUXBKVWCAKUMYNZUVLZXCAUXLVWNVMVAUWSAEUXGUXJWHVUOVVNUVPXCAUWSY
            RVWKVWNVDVEZUTVAZVWNVWKUTVAZUWTYREUXGKVWMVDVEZVJZVXAUTUWTEUXGVXDUWT
            YRUXBVVAUTVWGVVQUVMAEUXGVXDXKXLVPUWSAEUXGKVWMVOAKVOVPZUYOVWSXCZAEUX
            GKXKUXGKXNXOZXLEUXGKXPAVUQVVBKWHVPZVXHXLVPVUSVVLAKVWSYJZUXGKYAXSYIZ
            VWPVWQYBXCAUYOVXDUWNVPZUWSUYPVWMKUTVAZVXLUYPUYQCVIZHVDVEZVGVCZJUTVA
            ZVXNLVCZUXDVDVEZVGVCZKUTVAZVQZCIUVNZUXHHVDVEZVGVCZJUTVAZVXMVUIAVYCU
            YOAVYBCIUOUVOXCUYPVYFHJVDVEZUXHUTVAUXHHJVKVEZUTVAUYPVYGRUXHAVYGVOVP
            UYOAHJAIVOHUEVULWBZAJUNYNZYHXCAUYDUYOUYJXCAUXGVOUXHAUXGIVOVUHUEWQWT
            ZAVYGRUTVAZUYOAVYLRVYHUTVAZARHVDVEVGVCJUTVAVYLVYMVBUQARHJUYJVYIVYJY
            OWLYPXCUYPRUXHUTVAZUXHSUTVAZUYOVYNVYOVBAUXHRSUVQUVRZYPYSUYPUXHSVYHV
            YKAUYEUYOUYKXCAVYHVOVPUYOAHJVYIVYJUVSXCUYPVYNVYOVYPYQASVYHUTVAZUYOA
            VYGSUTVAZVYQASHVDVEVGVCJUTVAVYRVYQVBUSASHJUYKVYIVYJYOWLYQXCYSUYPUXH
            HJVYKAHVOVPUYOVYIXCAJVOVPUYOVYJXCYOUVTVYBVYFVXMVQCUXHIVXNUXHVNZVXQV
            YFVYAVXMVYSVXPVYEJUTVYSVXOVYDVGVXNUXHHVDUWAYLYTVYSVXTVWMKUTVYSVXSUX
            JVGVYSVXRUXIUXDVDVXNUXHLUWBYGYLYTUWCUWDUWEUYPVWMVOVPVXFVXMVXLWJVWPV
            XGVWMKUWFWAWLUWGUWHUWTVXEEUXGKVJZVWNVDVEZVXAAVXEWUAVNUWSAEUXGKVWMVO
            VXGVXKVWPVWQUWOXCUWTVYTVWKVWNVDUWTVYTKVVAVLVEZKUXBVLVEZVWKAVYTWUBVN
            ZUWSAVUQVVBVXIWUDVUSVVLVXJEUXGKYCXSXCUWTVVAUXBKVLVVQYDAWUCVWKVNUWSA
            KUXBVXJAUXBVWCYJUWIXCYFYGYEUWJAVXCVXBAVWNVWKVWRVWTYKUWKWFUWLUWTVWOV
            XFVWBVWFVWJVWLWJUWTUXKVVTYMAVXFUWSVWSXCVWDVWGUXLKUXBUWMUWPUWQUWR $.
        $}

        $( Lemma for ~ ftc1 .  (Contributed by Mario Carneiro, 14-Aug-2014.)
           (Revised by Mario Carneiro, 28-Dec-2016.) $)
        ftc1lem5 $p |- ( ( ph /\ X =/= C ) ->
          ( abs ` ( ( H ` X ) - ( F ` C ) ) ) < E ) $=
          ( wne clt wbr wo cfv cmin co cabs cicc cr wcel iccssre syl2anc sseldd
          wss cioo ioossicc sseldi lttri2d biimpa wa cdiv cneg cdif wceq adantr
          simpr ltned eldifsn sylanbrc cv fveq2 oveq1d oveq1 oveq12d ovex fvmpt
          csn syl cc ftc1lem3 ftc1lem2 ffvelrnd subcld recnd subeq0ad necon3bid
          cc0 biimpar syldan div2negd negsubdi2d 3eqtr2d fveq2d abs00bd eqbrtrd
          subidd rpgt0d ftc1lem4 gtned jaodan ) ARHUQZRHURUSZHRURUSZUTZRNVAZHLV
          AZVBVCZVDVAZKURUSZAXRYAARHAFGVEVCZVFRAFVFVGGVFVGYGVFVKTUAFGVHVIZUOVJZ
          AYGVFHYHAFGVLVCYGHFGVMUFVNZVJZVOVPAXSYFXTAXSVQZYEHMVAZRMVAZVBVCZHRVBV
          CZVRVCZYCVBVCZVDVAKURYLYDYRVDYLYBYQYCVBYLYBYNYMVBVCZRHVBVCZVRVCZYSVSZ
          YTVSZVRVCZYQYLRYGHWNVTZVGZYBUUAWAZYLRYGVGZXRUUFAUUHXSUOWBYLRHARVFVGXS
          YIWBAXSWCWDZRYGHWEZWFDRDWGZMVAZYMVBVCZUUKHVBVCZVRVCUUAUUENUUKRWAZUUMY
          SUUNYTVRUUOUULYNYMVBUUKRMWHWIUUKRHVBWJWKUKYSYTVRWLWMZWOYLYSYTAYSWPVGX
          SAYNYMAYGWPRMABEFGILMSTUAUBUCUDUEABEFGHILMOPQSTUAUBUCUDUEUFUGUHUIUJWQ
          WRZUOWSZAYGWPHMUUQYJWSZWTWBAYTWPVGXSARHARYIXAZAHYKXAZWTWBAXSXRYTXDUQZ
          UUIAUVBXRAYTXDRHARHUUTUVAXBXCXEXFXGAUUDYQWAXSAUUBYOUUCYPVRAYNYMUURUUS
          XHARHUUTUVAXHWKWBXIWIXJABCDEFGHIJKLMNOPQRHSTUAUBUCUDUEUFUGUHUIUJUKULU
          MUNUOUPYJAHHVBVCZVDVAXDJURAUVCAHUVAXMXKAJUMXNXLZXOXLAXTVQZYEUUAYCVBVC
          ZVDVAKURUVEYDUVFVDUVEYBUUAYCVBUVEUUFUUGUVEUUHXRUUFAUUHXTUOWBUVEHRAHVF
          VGXTYKWBAXTWCXPUUJWFUUPWOWIXJABCDEFGHIJKLMNOPQHRSTUAUBUCUDUEUFUGUHUIU
          JUKULUMUNYJUVDUOUPXOXLXQXF $.
      $}

      $( Lemma for ~ ftc1 .  (Contributed by Mario Carneiro, 14-Aug-2014.)
         (Proof shortened by Mario Carneiro, 28-Dec-2016.) $)
      ftc1lem6 $p |- ( ph -> ( F ` C ) e. ( H limCC C ) ) $=
        ( vs vv vw vy vu cfv climc co wcel cc cv wne cmin cabs clt wbr cicc csn
        wa cdif wral crp wrex ftc1lem3 cioo sseldd ffvelrnd ccom cxp cres cmopn
        wi cxmt ccnp wss cnxmet cr ax-resscn syl6ss adantr xmetres2 sylancr a1i
        crest wceq eqid cnfldtopn metrest syl5eq oveq1d fveq1d eleqtrd metcnpi2
        simpr syl22anc ad2antrr ovresd sselda iccssre ioossicc sseldi cnmetdval
        syl2anc eqtrd breq1d wf ffvelrnda imbi12d ralbidva simprll eldifsni syl
        simplrl simplrr simprlr oveq1 fveq2d fveq2 rspccva sylan eldifad simprr
        cle cibl ftc1lem5 mpdan expr adantld ralrimdva sylbid anassrs reximdva
        mpd ralrimiva cdiv ftc1lem2 dvlem fmptd ssdifssd ellimc3 mpbir2and ) AG
        IUMZKGUNUOUPUUIUQUPZUHURZGUSZUUKGUTUOVAUMUIURZVBVCZVFUUKKUMUUIUTUOVAUMU
        JURZVBVCZVSZUHEFVDUOZGVEZVGZVHZUIVIVJZUJVIVHAHUQGIABDEFGHIJLMNOPQRSTUAU
        BUCUDUEUFVKZAEFVLUOZHGSUBVMZVNZAUVBUJVIAUUOVIUPZVFZUKURZGVAUTVOZHHVPVQZ
        UOZUUMVBVCZUVIIUMZUUIUVJUOZUUOVBVCZVSZUKHVHZUIVIVJZUVBUVHUVKHVTUMUPZUVJ
        UQVTUMUPZIGUVKVRUMZNWAUOZUMZUPZUVGUVSUVHUWAHUQWBZUVTWCAUWFUVGAHWDUQTWEW
        FZWGUVJHUQWHWIUWAUVHWCWJAUWEUVGAIGMNWAUOZUMZUWDUCAGUWHUWCAMUWBNWAAMNHWK
        UOZUWBUEAUWAUWFUWJUWBWLWCUWGUVJUVKNUWBUQHUVKWMNUFWNZUWBWMZWOWIWPWQWRWSW
        GAUVGXAUIUKUUOUVKUVJGIUWBNHUQUWLUWKWTXBUVHUVRUVAUIVIAUVGUUMVIUPZUVRUVAV
        SAUVGUWMVFZVFZUVRUVIGUTUOZVAUMZUUMVBVCZUVNUUIUTUOZVAUMZUUOVBVCZVSZUKHVH
        ZUVAUWOUVQUXBUKHUWOUVIHUPZVFZUVMUWRUVPUXAUXEUVLUWQUUMVBUXEUVLUVIGUVJUOZ
        UWQUXEUVIGUVJHUWOUXDXAAGHUPUWNUXDUVEXCXDUXEUVIUQUPGUQUPZUXFUWQWLUWOHUQU
        VIAUWFUWNUWGWGXEAUXGUWNUXDAUURUQGAUURWDUQAEWDUPZFWDUPZUURWDWBPQEFXFXJWE
        WFZAUVDUURGEFXGUBXHZVMZXCUVIGUVJUVJWMZXIXJXKXLUXEUVOUWTUUOVBUXEUVNUQUPU
        UJUVOUWTWLUWOHUQUVIIAHUQIXMUWNUVCWGXNAUUJUWNUXDUVFXCUVNUUIUVJUXMXIXJXLX
        OXPUWOUXCUUQUHUUTUWOUUKUUTUPZUXCUUQUWOUXNUXCVFZVFUUNUUPUULUWOUXOUUNUUPU
        WOUXOUUNVFZVFZUULUUPUXQUXNUULUWOUXNUXCUUNXQZUUKUURGXRXSUXQBULCDEFGHUUMU
        UOIJKLMNUUKOAUXHUWNUXPPXCAUXIUWNUXPQXCAEFYJVCUWNUXPRXCAUVDHWBUWNUXPSXCA
        HWDWBUWNUXPTXCAIYKUPUWNUXPUAXCAGUVDUPUWNUXPUBXCAIUWIUPUWNUXPUCXCUDUEUFU
        GAUVGUWMUXPXTAUVGUWMUXPYAUXQUXCULURZHUPUXSGUTUOZVAUMZUUMVBVCZUXSIUMZUUI
        UTUOZVAUMZUUOVBVCZVSZUWOUXNUXCUUNYBUXBUYGUKUXSHUVIUXSWLZUWRUYBUXAUYFUYH
        UWQUYAUUMVBUYHUWPUXTVAUVIUXSGUTYCYDXLUYHUWTUYEUUOVBUYHUWSUYDVAUYHUVNUYC
        UUIUTUVIUXSIYEWQYDXLXOYFYGUXQUUKUURUUSUXRYHUWOUXOUUNYIYLYMYNYOYNYPYQYRY
        SYTUUAAUJUIUHUUTGUUIKACUUTCURZJUMGJUMUTUOUYIGUTUOUUBUOUQKAUYIGUURJABDEF
        HIJOPQRSTUAUVCUUCUXJUXKUUDUGUUEAUURUQUUSUXJUUFUXLUUGUUH $.
    $}

    $( The Fundamental Theorem of Calculus, part one.  The function formed by
       varying the right endpoint of an integral is differentiable at ` C `
       with derivative ` F ( C ) ` if the original function is continuous at
       ` C ` .  This is part of Metamath 100 proof #15.  (Contributed by Mario
       Carneiro, 1-Sep-2014.) $)
    ftc1 $p |- ( ph -> C ( RR _D G ) ( F ` C ) ) $=
      ( vz cfv cr cdv co wbr cicc cnt wcel csn cdif cv cmin cdiv cmpt cioo ctop
      climc wss crn ctg crest tgioo2 retop eqeltri a1i iccssre syl2anc iooretop
      eqtr4i eleqtrri ioossicc cuni uniretop unieqi syl22anc sseldd ftc1lem6 cc
      ssntr eqid ax-resscn ftc1lem3 ftc1lem2 eldv mpbir2and ) AFFHUFZUGIUHUIUJF
      DEUKUIZJULUFUFZUMWKUEWLFUNUOUEUPZIUFFIUFUQUIWNFUQUIURUIUSZFVBUIUMADEUTUIZ
      WMFAJVAUMZWLUGVCZWPJUMZWPWLVCZWPWMVCWQAJUTVDVEUFZVAJLUGVFUIXAUBLUDVGVNZVH
      VIVJADUGUMEUGUMWRNODEVKVLZWSAWPXAJDEVMXBVOVJWTADEVPVJWLJWPUGUGXAVQJVQVRJX
      AXBVSVNWDVTTWAABUECDEFGHIWOJKLMNOPQRSTUAUBUCUDWOWEZWBAUEWLFWKUGJIWOLUBUDX
      DUGWCVCAWFVJABCDEGHIMNOPQRSABCDEFGHIJKLMNOPQRSTUAUBUCUDWGWHXCWIWJ $.
  $}

  ${
    $d t x y A $.  $d t x y B $.  $d t x y F $.  $d y G $.  $d t x y ph $.
    ftc1cn.g $e |- G =
      ( x e. ( A [,] B ) |-> S. ( A (,) x ) ( F ` t ) _d t ) $.
    ftc1cn.a $e |- ( ph -> A e. RR ) $.
    ftc1cn.b $e |- ( ph -> B e. RR ) $.
    ftc1cn.le $e |- ( ph -> A <_ B ) $.
    ftc1cn.f $e |- ( ph -> F e. ( ( A (,) B ) -cn-> CC ) ) $.
    ftc1cn.i $e |- ( ph -> F e. L^1 ) $.
    $( Strengthen the assumptions of ~ ftc1 to when the function ` F ` is
       continuous on the entire interval ` ( A , B ) ` ; in this case we can
       calculate ` _D G ` exactly.  (Contributed by Mario Carneiro,
       1-Sep-2014.) $)
    ftc1cn $p |- ( ph -> ( RR _D G ) = F ) $=
      ( co cr wceq cc a1i cfv wcel vy cioo cdv wfun cdm wfn wf dvf ffun syl crn
      cicc ctg cnt ccnfld ctopn wss ax-resscn ssid ioossre ccncf cncff ftc1lem2
      iccssre syl2anc tgioo2 dvbssntr iccntr sseqtrd cv wa wbr crest adantr cle
      eqid cibl simpr cuni ccnp sstri ctop cnfldtop cnfldtopon toponunii restid
      ccn ax-mp eqcomi cncfcn syl6eleq ctopon resttopon sylancr toponuni eleq2d
      mp2an biimpa cncnpi ftc1 vex breldm ex ssrdv eqssd df-fn sylanbrc funbrfv
      fvex ffn sylc eqfnfvd ) AUADEUBNZOGUCNZFAXNUDZXNUEZXMPXNXMUFAXPQXNUGZXOXQ
      AGUHRXPQXNUIUJZAXPXMAXPDEULNZUBUKUMSZUNSSZXMAXSOGXTUOUPSZOQUQAURRABCDEXMF
      GHIJKXMXMUQZAXMUSZRXMOUQZADEUTZRMAFXMQVANZTXMQFUGZLXMQFVBUJZVCADOTZEOTZXS
      OUQIJDEVDVEYBYBVPZVFZYLVGAYJYKYAXMPIJDEVHVEVIAUAXMXPAUAVJZXMTZYNXPTZAYOVK
      ZYNYNFSZXNVLZYPYQBCDEYNXMFGXTYBXMVMNZYBHAYJYOIVNAYKYOJVNADEVOVLYOKVNYCYQY
      DRYEYQYFRAFVQTYOMVNAYOVRYQFYTYBWGNZTZYNYTVSZTZFYNYTYBVTNSTAUUBYOAFYGUUALX
      MQUQZQQUQYGUUAPXMOQYFURWAZQUSXMQYBYTYBYLYTVPZYBQVMNZYBYBWBTUUHYBPYBYLWCYB
      WBQQYBYBYLWDZWEWFWHWIWJWQWKVNAYOUUDAXMUUCYNAYTXMWLSTZXMUUCPAYBQWLSTUUEUUJ
      UUIUUEAUUFRXMYBQWMWNXMYTWOUJWPWRYNFYTYBUUCUUCVPWSVEYMUUGYLWTZYNYRXNUAXAYN
      FXIXBUJXCXDXEXNXMXFXGAYHFXMUFYIXMQFXJUJYQXOYSYNXNSYRPAXOYOXRVNUUKYNYRXNXH
      XKXL $.
  $}

  ${
    $d t x A $.  $d t x B $.  $d t x F $.  $d t x ph $.
    ftc2.a $e |- ( ph -> A e. RR ) $.
    ftc2.b $e |- ( ph -> B e. RR ) $.
    ftc2.le $e |- ( ph -> A <_ B ) $.
    ftc2.c $e |- ( ph -> ( RR _D F ) e. ( ( A (,) B ) -cn-> CC ) ) $.
    ftc2.i $e |- ( ph -> ( RR _D F ) e. L^1 ) $.
    ftc2.f $e |- ( ph -> F e. ( ( A [,] B ) -cn-> CC ) ) $.
    $( The Fundamental Theorem of Calculus, part two.  If ` F ` is a function
       continuous on ` [ A , B ] ` and continuously differentiable on
       ` ( A , B ) ` , then the integral of the derivative of ` F ` is equal to
       ` F ( B ) - F ( A ) ` .  This is part of Metamath 100 proof #15.
       (Contributed by Mario Carneiro, 2-Sep-2014.) $)
    ftc2 $p |- ( ph ->
      S. ( A (,) B ) ( ( RR _D F ) ` t ) _d t = ( ( F ` B ) - ( F ` A ) ) ) $=
      ( vx cfv co cr cmin cmpt wcel wceq cc cioo cv cdv citg caddc cneg csn cxp
      cicc cxr cle wbr rexrd ubicc2 syl3anc fvex fvconst2 syl ccnfld ctopn eqid
      ctx ccn subcn a1i wss ssid ioossre ccncf wf cncff ftc1a feqmptd cncfmpt2f
      eqeltrrd cc0 crn ctg ax-resscn iccssre syl2anc wa adantr wb elicc2 biimpa
      cvv w3a simp3d iooss2 cvol cdm ioombl iblss itgcl ffvelrnda subcld tgioo2
      cibl cnt iccntr dvmptntr reelprrecn ioossicc sylan2 ftc1cn 3eqtr3d oveq2d
      cpr sseli eqtr3d dvmptsub subidd mpteq2dva 3eqtrd fconstmpt syl6eqr dveq0
      fveq1d oveq2 itgeq1 fveq2 oveq12d ovex fvmpt lbicc2 c0 syl6eq itg0 df-neg
      iooid negex ffvelrnd pncan3d negsubd ) ADEMZBCDUANZBUBZOEUCNZMZUDZYPPNZUE
      NYPCEMZUFZUENUUAYPUUCPNAUUBUUDYPUEADCDUINZCLUUEBCLUBZUANZYTUDZUUFEMZPNZQZ
      MZUGUHZMZUULUUBUUDADUUERZUUNUULSACUJRZDUJRZCDUKULZUUOACFUMZADGUMZHCDUNUOZ
      UUEUULDCUUKUPUQURADUUKMZUUNUUBADUUKUUMACDUUKFGALUUHUUIPUSUTMZUUEUVCVAZPUV
      CUVCVBNUVCVCNRAUVCUVDVDVEALBCDYQYSLUUEUUHQZUVEVAZFGHYQYQVFAYQVGVEYQOVFACD
      VHVEJAYSYQTVINRYQTYSVJIYQTYSVKURZVLAELUUEUUIQZUUETVINZALUUETEAEUVIRUUETEV
      JKUUETEVKURZVMZKVOVNAOUUKUCNZLYQVPQZYQVPUGUHAUVLOLYQUUJQUCNLYQUUFYSMZUVNP
      NZQUVMALUUJOUAVQVRMZUVCUUEYQOTVFAVSVEZACORZDORZUUEOVFFGCDVTWAZAUUFUUERZWB
      ZUUHUUIUWBBUUGYTWGYTWGRZUWBYRUUGRWBYRYSUPZVEUWBBUUGYQYTWGUWBUUQUUFDUKULZU
      UGYQVFUWBDAUVSUWAGWCUMUWBUUFORZCUUFUKULZUWEAUWAUWFUWGUWEWHZAUVRUVSUWAUWHW
      DFGCDUUFWEWAWFWICUUFDWJWAUUGWKWLRUWBCUUFWMVEUWCUWBYRYQRZWBUWDVEABYQYTQZWS
      RUWAAYSUWJWSABYQTYSUVGVMJVOZWCWNWOZAUUETUUFEUVJWPZWQUVCUVDWRZUVDAUVRUVSUU
      EUVPWTMMYQSFGCDXAWAZXBALUUHUVNUUIUVNOTTYQOOTXIRAXCVEUUFYQRZAUWAUUHTRYQUUE
      UUFCDXDXJZUWLXEAYQTUUFYSUVGWPZAOUVEUCNYSOLYQUUHQUCNLYQUVNQZALBCDYSUVEUVFF
      GHIJXFALUUHOUVPUVCUUEYQUVQUVTUWLUWNUVDUWOXBALYQTYSUVGVMZXGUWPAUWAUUITRUWQ
      UWMXEUWRAOUVHUCNZOLYQUUIQUCNUWSALUUIOUVPUVCUUEYQUVQUVTUWMUWNUVDUWOXBAYSUX
      AUWSAEUVHOUCUVKXHUWTXKXKXLALYQUVOVPAUWPWBUVNUWRXMXNXOLYQVPXPXQXRXSAUUOUVB
      UUBSUVALDUUJUUBUUEUUKUUFDSZUUHUUAUUIYPPUXBUUGYQSUUHUUASUUFDCUAXTBUUGYQYTY
      AURUUFDEYBYCUUKVAZUUAYPPYDYEURXKACUUERZUULUUDSAUUPUUQUURUXDUUSUUTHCDYFUOZ
      LCUUJUUDUUEUUKUUFCSZUUJVPUUCPNUUDUXFUUHVPUUIUUCPUXFUUHBYGYTUDZVPUXFUUGYGS
      UUHUXGSUXFUUGCCUANYGUUFCCUAXTCYKYHBUUGYGYTYAURBYTYIYHUUFCEYBYCUUCYJXQUXCU
      UCYLYEURXGXHAYPUUAAUUETDEUVJUVAYMZABYQYTWGUWCAUWIWBUWDVEUWKWOYNAYPUUCUXHA
      UUETCEUVJUXEYMYOXG $.
  $}

  ${
    $d t A $.  $d t B $.  $d t F $.  $d t ph $.  $d t X $.  $d t Y $.
    ftc2ditg.x $e |- ( ph -> X e. RR ) $.
    ftc2ditg.y $e |- ( ph -> Y e. RR ) $.
    ftc2ditg.a $e |- ( ph -> A e. ( X [,] Y ) ) $.
    ftc2ditg.b $e |- ( ph -> B e. ( X [,] Y ) ) $.
    ftc2ditg.c $e |- ( ph -> ( RR _D F ) e. ( ( X (,) Y ) -cn-> CC ) ) $.
    ftc2ditg.i $e |- ( ph -> ( RR _D F ) e. L^1 ) $.
    ftc2ditg.f $e |- ( ph -> F e. ( ( X [,] Y ) -cn-> CC ) ) $.
    $( Lemma for ~ ftc2ditg .  (Contributed by Mario Carneiro, 3-Sep-2014.) $)
    ftc2ditglem $p |- ( ( ph /\ A <_ B ) ->
      S_ [ A -> B ] ( ( RR _D F ) ` t ) _d t = ( ( F ` B ) - ( F ` A ) ) ) $=
      ( cr co cfv wcel adantr cc cle wbr wa cv cdv cdit cioo citg simpr ditgpos
      cmin cicc cres wss iccssre syl2anc sseldd ccncf crn ctg wf wceq ax-resscn
      cnt a1i cncff syl ccnfld ctopn tgioo2 dvres syl22anc iccntr reseq2d eqtrd
      eqid cxr rexrd w3a elicc2 mpbid simp2d iooss1 simp3d iooss2 sstrd rescncf
      wb sylc eqeltrd cmpt cibl feqmptd reseq1d resmptd cvv cdm ioombl eqeltrrd
      cvol fvexd iblss iccss2 ftc2 fveq1d fvres sylan9eq itgeq2dv ubicc2 lbicc2
      oveqan12d syl3anc 3eqtr3d ) ACDUAUBZUCZBCDBUDZOEUEPZQZUFBCDUGPZXRUHZDEQZC
      EQZUKPZXOBCDXRAXNUIZUJXOBXSXPOECDULPZUMZUEPZQZUHDYFQZCYFQZUKPZXTYCXOBCDYF
      ACORZXNAFGULPZOCAFORZGORZYMOUNZHIFGUOUPZJUQZSZADORZXNAYMODYQKUQZSZYDXOYGX
      QXSUMZXSTURPZXOYGXQYEUGUSUTQZVDQQZUMZUUCXOOTUNZYMTEVAZYPYEOUNZYGUUGVBUUHX
      OVCVEAUUIXNAEYMTURPRZUUINYMTEVFVGSAYPXNYQSAUUJXNAYLYTUUJYRUUACDUOUPSYMYEO
      UUEEVHVIQZUULVPZUULUUMVJVKVLXOUUFXSXQAUUFXSVBZXNAYLYTUUNYRUUACDVMUPSVNVOZ
      XOXSFGUGPZUNZXQUUPTURPRZUUCUUDRAUUQXNAXSFDUGPZUUPAFVQRFCUAUBZXSUUSUNAFHVR
      AYLUUTCGUAUBZACYMRZYLUUTUVAVSZJAYNYOUVBUVCWHHIFGCVTUPWAWBFCDWCUPAGVQRDGUA
      UBZUUSUUPUNAGIVRAYTFDUAUBZUVDADYMRZYTUVEUVDVSZKAYNYOUVFUVGWHHIFGDVTUPWAWD
      FDGWEUPWFSZAUURXNLSUUPTXSXQWGWIWJXOYGBXSXRWKZWLXOYGUUCUVIUUOXOUUCBUUPXRWK
      ZXSUMUVIXOXQUVJXSAXQUVJVBXNABUUPTXQAUURUUPTXQVALUUPTXQVFVGWMSZWNXOBUUPXSX
      RUVHWOVOVOXOBXSUUPXRWPUVHXSWTWQRXOCDWRVEXOXPUUPRUCXPXQXAXOXQUVJWLUVKAXQWL
      RXNMSWSXBWJAYFYETURPRZXNAYEYMUNZUUKUVLAUVBUVFUVMJKFGCDXCUPNYMTYEEWGWISXDX
      OBXSYHXRXOXPXSRYHXPUUCQXRXOXPYGUUCUUOXEXPXSXQXFXGXHXOCVQRZDVQRZXNYKYCVBZX
      OCYSVRXODUUBVRYDUVNUVOXNVSDYERZCYERZUVPCDXICDXJUVQUVRYIYAYJYBUKDYEEXFCYEE
      XFXKUPXLXMVO $.

    $( Directed integral analogue of ~ ftc2 .  (Contributed by Mario Carneiro,
       3-Sep-2014.) $)
    ftc2ditg $p |- ( ph ->
      S_ [ A -> B ] ( ( RR _D F ) ` t ) _d t = ( ( F ` B ) - ( F ` A ) ) ) $=
      ( cr co cfv wceq wcel cc cv cdv cdit cmin cicc wss iccssre syl2anc sseldd
      ftc2ditglem cle wbr wa cneg cvv cioo fvexd cmpt cibl ccncf wf syl feqmptd
      cncff eqeltrrd ditgswap adantr negeqd ffvelrnd negsubdi2d 3eqtrd lecasei
      ) ABCDBUAZOEUBPZQZUCZDEQZCEQZUDPZRCDAFGUEPZOCAFOSGOSVTOUFHIFGUGUHZJUIAVTO
      DWAKUIABCDEFGHIJKLMNUJADCUKULZUMZVPBDCVOUCZUNZVRVQUDPZUNZVSAVPWERWBABDCVO
      UOFGHIKJAVMFGUPPZSUMVMVNUQAVNBWHVOURUSABWHTVNAVNWHTUTPSWHTVNVALWHTVNVDVBV
      CMVEVFVGWCWDWFABDCEFGHIKJLMNUJVHAWGVSRWBAVRVQAVTTCEAEVTTUTPSVTTEVANVTTEVD
      VBZJVIAVTTDEWIKVIVJVGVKVL $.
  $}

  ${
    $d t A $.  $d t C $.  $d t x ph $.  $d t x X $.  $d t x Y $.  $d x E $.
    $d x F $.
    itgparts.x $e |- ( ph -> X e. RR ) $.
    itgparts.y $e |- ( ph -> Y e. RR ) $.
    itgparts.le $e |- ( ph -> X <_ Y ) $.
    itgparts.a $e |- ( ph ->
      ( x e. ( X [,] Y ) |-> A ) e. ( ( X [,] Y ) -cn-> CC ) ) $.
    itgparts.c $e |- ( ph ->
      ( x e. ( X [,] Y ) |-> C ) e. ( ( X [,] Y ) -cn-> CC ) ) $.
    itgparts.b $e |- ( ph ->
      ( x e. ( X (,) Y ) |-> B ) e. ( ( X (,) Y ) -cn-> CC ) ) $.
    itgparts.d $e |- ( ph ->
      ( x e. ( X (,) Y ) |-> D ) e. ( ( X (,) Y ) -cn-> CC ) ) $.
    itgparts.ad $e |- ( ph -> ( x e. ( X (,) Y ) |-> ( A x. D ) ) e. L^1 ) $.
    itgparts.bc $e |- ( ph -> ( x e. ( X (,) Y ) |-> ( B x. C ) ) e. L^1 ) $.
    itgparts.da $e |- ( ph ->
      ( RR _D ( x e. ( X [,] Y ) |-> A ) ) = ( x e. ( X (,) Y ) |-> B ) ) $.
    itgparts.dc $e |- ( ph ->
      ( RR _D ( x e. ( X [,] Y ) |-> C ) ) = ( x e. ( X (,) Y ) |-> D ) ) $.
    itgparts.e $e |- ( ( ph /\ x = X ) -> ( A x. C ) = E ) $.
    itgparts.f $e |- ( ( ph /\ x = Y ) -> ( A x. C ) = F ) $.
    $( Integration by parts.  If ` B ( x ) ` is the derivative of ` A ( x ) `
       and ` D ( x ) ` is the derivative of ` C ( x ) ` , and
       ` E = ( A x. B ) ( X ) ` and ` F = ( A x. B ) ( Y ) ` , then under
       suitable integrability and differentiability assumptions, the integral
       of ` A x. D ` from ` X ` to ` Y ` is equal to ` F - E ` minus the
       integral of ` B x. C ` .  (Contributed by Mario Carneiro,
       3-Sep-2014.) $)
    itgparts $p |- ( ph -> S. ( X (,) Y ) ( A x. D ) _d x =
      ( ( F - E ) - S. ( X (,) Y ) ( B x. C ) _d x ) ) $=
      ( vt cioo co cmul citg caddc cmin cc cv wcel wa cmpt wral ccncf cncff syl
      eqid fmpt sylibr r19.21bi cicc ioossicc sseli sylan2 mulcld itgcl pncan2d
      wf itgadd cdv cfv fveq2 nfcv nfmpt1 nfov nffv cbvitg crn ctg ccnfld ctopn
      wss ax-resscn a1i iccssre syl2anc tgioo2 cnt wceq dvmptntr cpr reelprrecn
      iccntr eqtr3d dvmptmul mulcomd oveq2d mpteq2dva 3eqtrd ctx ccn addcn cres
      resmpt ax-mp rescncf syl5eqelr mulcncf cncfmpt2f eqeltrd cibl ibladd ftc2
      cr mpsyl syl5eq fveq1d adantr cvv simpr fvmpt2 sylancl eqtrd itgeq2dv csb
      ovex cxr cle wbr rexrd ubicc2 syl3anc csbex fvmpts csbied lbicc2 oveq12d
      3eqtr3d oveq1d ) ABIJUEUFZDEUGUFZUHZBUUCCFUGUFZUHZUIUFZUUEUJUFUUGHGUJUFZU
      UEUJUFAUUEUUGABUUCUUDUKABULZUUCUMZUNZDEADUKUMZBUUCAUUCUKBUUCDUOZVKZUUMBUU
      CUPAUUNUUCUKUQUFZUMUUOPUUCUKUUNURUSBUUCUKDUUNUUNUTVAVBVCZUUKAUUJIJVDUFZUM
      ZEUKUMZUUCUURUUJIJVEZVFZAUUTBUURAUURUKBUUREUOZVKZUUTBUURUPAUVCUURUKUQUFZU
      MZUVDOUURUKUVCURUSBUURUKEUVCUVCUTVAVBVCZVGZVHZSVIABUUCUUFUKUULCFUUKAUUSCU
      KUMZUVBAUVJBUURAUURUKBUURCUOZVKZUVJBUURUPAUVKUVEUMZUVLNUURUKUVKURUSBUURUK
      CUVKUVKUTVAVBVCZVGZAFUKUMZBUUCAUUCUKBUUCFUOZVKZUVPBUUCUPAUVQUUPUMUVRQUUCU
      KUVQURUSBUUCUKFUVQUVQUTVAVBVCZVHZRVIVJAUUHUUIUUEUJABUUCUUDUUFUIUFZUHZUUHU
      UIABUUCUUDUUFUKUVISUVTRVLABUUCUUJXQBUURCEUGUFZUOZVMUFZVNZUHZJUWDVNZIUWDVN
      ZUJUFZUWBUUIAUWGUDUUCUDULZUWEVNZUHUWJBUDUUCUWFUWLUUJUWKUWEVOUDUWFVPBUWKUW
      EBXQUWDVMBXQVPBVMVPBUURUWCVQVRBUWKVPVSVTAUDIJUWDKLMAUWEBUUCUWAUOZUUPAUWEX
      QBUUCUWCUOVMUFBUUCUUDFCUGUFZUIUFZUOUWMABUWCXQUEWAWBVNZWCWDVNZUURUUCXQUKWE
      AWFWGZAIXQUMZJXQUMZUURXQWEKLIJWHWIZAUUSUNCEUVNUVGVHUWQUWQUTZWJZUXBAUWSUWT
      UURUWPWKVNVNUUCWLKLIJWPWIZWMABCDEFXQUKUKUUCXQXQUKWNUMAWOWGUVOUUQAXQUVKVMU
      FXQBUUCCUOZVMUFUUNABCXQUWPUWQUURUUCUWRUXAUVNUXCUXBUXDWMTWQUVHUVSAXQUVCVMU
      FXQBUUCEUOZVMUFUVQABEXQUWPUWQUURUUCUWRUXAUVGUXCUXBUXDWMUAWQWRABUUCUWOUWAU
      ULUWNUUFUUDUIUULFCUVSUVOWSWTXAXBZABUUDUUFUIUWQUUCUXBUIUWQUWQXCUFUWQXDUFUM
      AUWQUXBXEWGABDEUUCPAUXFUVCUUCXFZUUPUUCUURWEZUXHUXFWLUVABUURUUCEXGXHUXIAUV
      FUXHUUPUMUVAOUURUKUUCUVCXIXRXJXKABCFUUCAUXEUVKUUCXFZUUPUXIUXJUXEWLUVABUUR
      UUCCXGXHUXIAUVMUXJUUPUMUVANUURUKUUCUVKXIXRXJQXKXLXMAUWEUWMXNUXGABUUCUUDUU
      FUKUVISUVTRXOXMABCEUURNOXKXPXSABUUCUWFUWAUULUWFUUJUWMVNZUWAAUWFUXKWLUUKAU
      UJUWEUWMUXGXTYAUULUUKUWAYBUMUXKUWAWLAUUKYCUUDUUFUIYIBUUCUWAYBUWMUWMUTYDYE
      YFYGAUWHHUWIGUJAUWHBJUWCYHZHAJUURUMZUXLYBUMUWHUXLWLAIYJUMZJYJUMZIJYKYLZUX
      MAIKYMZAJLYMZMIJYNYOBJUWCCEUGYIZYPBJUWCUURUWDYBUWDUTZYQYEABJUWCHXQLUCYRYF
      AUWIBIUWCYHZGAIUURUMZUYAYBUMUWIUYAWLAUXNUXOUXPUYBUXQUXRMIJYSYOBIUWCUXSYPB
      IUWCUURUWDYBUXTYQYEABIUWCGXQKUBYRYFYTUUAWQUUBWQ $.
  $}

  ${
    $d m n y z B $.  $d m n u y z E $.  $d m n u x z K $.  $d t u v x y z M $.
    $d m n t u v x y z ph $.  $d m n t u v x y z X $.  $d m n t u v x y z Y $.
    $d m n t u v y z A $.  $d m n t v x y z C $.  $d m n u v x y z W $.
    $d m n u x z L $.  $d t u v x y z N $.  $d m n u v x y z Z $.
    $d m n u x z L $.  $d m n u x y z W $.  $d m n u x y z Z $.
    itgsubst.x $e |- ( ph -> X e. RR ) $.
    itgsubst.y $e |- ( ph -> Y e. RR ) $.
    itgsubst.le $e |- ( ph -> X <_ Y ) $.
    itgsubst.z $e |- ( ph -> Z e. RR* ) $.
    itgsubst.w $e |- ( ph -> W e. RR* ) $.
    itgsubst.a $e |- ( ph ->
      ( x e. ( X [,] Y ) |-> A ) e. ( ( X [,] Y ) -cn-> ( Z (,) W ) ) ) $.
    itgsubst.b $e |- ( ph ->
      ( x e. ( X (,) Y ) |-> B ) e. ( ( ( X (,) Y ) -cn-> CC ) i^i L^1 ) ) $.
    itgsubst.c $e |- ( ph ->
      ( u e. ( Z (,) W ) |-> C ) e. ( ( Z (,) W ) -cn-> CC ) ) $.
    itgsubst.da $e |- ( ph ->
      ( RR _D ( x e. ( X [,] Y ) |-> A ) ) = ( x e. ( X (,) Y ) |-> B ) ) $.
    itgsubst.e $e |- ( u = A -> C = E ) $.
    itgsubst.k $e |- ( x = X -> A = K ) $.
    itgsubst.l $e |- ( x = Y -> A = L ) $.
    ${
      itgsubst.m $e |- ( ph -> M e. ( Z (,) W ) ) $.
      itgsubst.n $e |- ( ph -> N e. ( Z (,) W ) ) $.
      itgsubst.cl2 $e |- ( ( ph /\ x e. ( X [,] Y ) ) -> A e. ( M (,) N ) ) $.
      $( Lemma for ~ itgsubst .  (Contributed by Mario Carneiro,
         12-Sep-2014.) $)
      itgsubstlem $p |- ( ph ->
        S_ [ K -> L ] C _d u = S_ [ X -> Y ] ( E x. B ) _d x ) $=
        ( vt vv vz vy cmul co cdit cioo citg ditgpos cv cr cicc cmpt cdv cfv cc
        cmin ccncf csb wss ax-resscn a1i wcel syl2anc wf wral ccom eqidd fmptco
        wceq syl fmptd wb ioossicc cxr clt wbr wa eliooord simpld simprd syl6ss
        eqid cdm sseli cle sseldi rexrd adantr w3a elicc2 sselda cncff r19.21bi
        fmpt sylibr syldan ioombl cibl cres rescncf sylc eqeltrrd syl3anc iblss
        cniccibl sylan2 fveq2 cbvitg fvmpt2 itgeq2dv syl5eq mpteq2dva wn lbicc2
        nfcv c0 mpd resmpt ax-mp syl5eqelr iccntr dvmptntr dmmptd cncfco eqtr3d
        mpsyl cabs fveq1d crn ctg ccnfld ctopn iccssre itgeq1 iccssioo syl22anc
        oveq2 syl5ss ioossre sstrd cncffvrn mpbird biimpa simp3d iooss2 adantlr
        cvol resmptd itgcl nffvmpt1 oveq2d n0i feq3 syl5ibcom simprbi syl6 mtod
        f00 ioo0 mtbid letrid ord ftc1cn cnt 3eqtr3rd dmeqd eqtrd dvcn syl31anc
        tgioo2 cpr reelprrecn cin elin sylib nfcsb1v cbvmpt sstri syl6eq csbeq1
        csbeq1a dvmptco nfcvd csbiegf oveq1d 3eqtrd mulcncf eqeltrd feq1d mpbid
        cof fco offval2 eqtr4d cmbf wrex iblmbf cniccbdd wi ssralv fveq1i fvres
        raleqdv syl5eqr fveq2d breq1d ralbiia syl5ib bddmulibl ftc2 nfmpt1 nfov
        syl6rbb reximdv nffv cvv ovex mpan2 sylan9eq caddc simp2d ubicc2 ditgex
        ditgeq2 fvmpt oveq12d ralrimiva eleq1d ditgsplit ditgcl pncan2d 3eqtr3d
        rspcv eqtr2d ) ABMNGEUOUPZUQBMNURUPZVUGUSZCHIFUQZABMNVUGRUTAUKVUHUKVAZV
[encoded data, 5280 characters]
        KVXRVXKXUMXUOVYGVYRVUBVUCUWRVUDVUF $.
    $}

    $( Integration by ` u ` -substitution.  If ` A ( x ) ` is a continuous,
       differentiable function from ` [ X , Y ] ` to ` ( Z , W ) ` , whose
       derivative is continuous and integrable, and ` C ( u ) ` is a continuous
       function on ` ( Z , W ) ` , then the integral of ` C ( u ) ` from
       ` K = A ( X ) ` to ` L = A ( Y ) ` is equal to the integral of
       ` C ( A ( x ) ) _D A ( x ) ` from ` X ` to ` Y ` .  In this part of the
       proof we discharge the assumptions in ~ itgsubstlem , which use the fact
       that ` ( Z , W ) ` is open to shrink the interval a little to
       ` ( M , N ) ` where ` Z < M < N < W ` - this is possible because
       ` A ( x ) ` is a continuous function on a closed interval, so its range
       is in fact a closed interval, and we have some wiggle room on the edges.
       (Contributed by Mario Carneiro, 7-Sep-2014.) $)
    itgsubst $p |- ( ph ->
      S_ [ K -> L ] C _d u = S_ [ X -> Y ] ( E x. B ) _d x ) $=
      ( vz vy vn vm vv cv cicc co cmpt cfv cle wral wrex wa cdit cmul wceq cioo
      wbr ccncf cr wss cc ioossre ax-resscn cncfss mp2an sseldi evthicc wcel cq
      clt cxr ressxr sstri wf cncff syl adantr simprl ffvelrnd eliooord qbtwnxr
      simprd syl3anc qre ad2antrl ad2antrr rexrd simpld simprrl xrlttrd simprrr
      w3a wb elioo2 syl2anc mpbir3and anass wi ffvelrnda simplr xrlelttr mpan2d
      ralimdva imp an32s sylanbr ex reximdv2 rexlimdvaa xrltletr mpand ralbidva
      jca mpd nfel1 weq eleq1d csb nfcv nfcsb1v csbeq1a cbvmpt syl5eqelr csbeq1
      cdv cbvditg nfcvd csbiegf 3syl syl5eqr citg ditgpos sylbid ancom 3biant1d
      reeanv bitr4i r19.26 simplrl simplrr bitr4d nffvmpt1 nfv fveq2 simpr eqid
      cbvral fmpt sylibr r19.21bi fvmpt2 syl5bb cibl cin oveq2i 3eqtr3g simprll
      simprlr simprr rspc mpan9 itgsubstlem ditgeq1 ditgeq2 eqtrd csbeq1d nfcsb
      oveq12d nfov ioossicc sylan2 oveq1d itgeq2dv 3eqtr4d 3eqtr3d expr syl5bir
      sseli rexlimdvva syl5bi syl2and ) AUFUKZBKLULUMZDUNZUOZUGUKZUWKUOZUPVDZUF
      UWJUQZUGUWJURZUWNUWLUPVDZUFUWJUQZUGUWJURZUSCHIFUTZBKLGEVAUMZUTZVBZAUGUFUG
      UFKLUWKNOPAUWJMJVCUMZVEUMZUWJVFVEUMZUWKUXEVFVGVFVHVGUXFUXGVGMJVIZVJUWJUXE
      VFVKVLSVMVNAUWQUWLUHUKZVQVDZUFUWJUQZUHUXEURZUWTUIUKZUWLVQVDZUFUWJUQZUIUXE
      URZUXDAUWPUXLUGUWJAUWMUWJVOZUWPUSZUSZUWNUXIVQVDZUXIJVQVDZUSZUHVPURZUXLUXS
      UWNVRVOZJVRVOZUWNJVQVDZUYCUXSUXEVRUWNUXEVFVRUXHVSVTZUXSUWJUXEUWMUWKAUWJUX
      EUWKWAZUXRAUWKUXFVOUYHSUWJUXEUWKWBWCZWDAUXQUWPWEWFZVMZAUYEUXRRWDUXSMUWNVQ
      VDZUYFUXSUWNUXEVOZUYLUYFUSZUYJUWNMJWGZWCZWIUHUWNJWHWJUXSUYBUXKUHVPUXEUXSU
      XIVPVOZUYBUSZUXIUXEVOZUXKUSUXSUYRUSZUYSUXKUYTUYSUXIVFVOZMUXIVQVDZUYAUYQVU
      AUXSUYBUXIWKZWLZUYTMUWNUXIAMVRVOZUXRUYRQWMZUXSUYDUYRUYKWDUYTUXIVUDWNUXSUY
      LUYRUXSUYLUYFUYPWOWDUXSUYQUXTUYAWPWQUXSUYQUXTUYAWRUYTVUEUYEUYSVUAVUBUYAWS
      WTVUFAUYEUXRUYRRWMMJUXIXAXBXCUXSAUXQUSZUWPUSUYRUXKAUXQUWPXDVUGUYRUWPUXKVU
      GUYRUSZUWPUXKVUHUWOUXJUFUWJVUHUWIUWJVOZUSZUWOUXTUXJVUHUXTVUIVUGUYQUXTUYAW
      PWDVUJUWLVRVOZUYDUXIVRVOZUWOUXTUSUXJXEVUJUXEVRUWLUYGVUHUWJUXEUWIUWKAUYHUX
      QUYRUYIWMZXFVMVUHUYDVUIVUHUXEVRUWNUYGVUHUWJUXEUWMUWKVUMAUXQUYRXGWFVMWDVUJ
      UXIVUHVUAVUIUYQVUAVUGUYBVUCWLWDWNUWLUWNUXIXHWJXIXJXKXLXMXTXNXOYAXPAUWSUXP
      UGUWJAUXQUWSUSZUSZMUXMVQVDZUXMUWNVQVDZUSZUIVPURZUXPVUOVUEUYDUYLVUSAVUEVUN
      QWDVUOUXEVRUWNUYGVUOUWJUXEUWMUWKAUYHVUNUYIWDAUXQUWSWEWFZVMZVUOUYLUYFVUOUY
      MUYNVUTUYOWCZWOUIMUWNWHWJVUOVURUXOUIVPUXEVUOUXMVPVOZVURUSZUXMUXEVOZUXOUSV
      UOVVDUSZVVEUXOVVFVVEUXMVFVOZVUPUXMJVQVDZVVCVVGVUOVURUXMWKZWLZVUOVVCVUPVUQ
      WPVVFUXMUWNJVVFUXMVVJWNVUOUYDVVDVVAWDAUYEVUNVVDRWMZVUOVVCVUPVUQWRVUOUYFVV
      DVUOUYLUYFVVBWIWDWQVVFVUEUYEVVEVVGVUPVVHWSWTAVUEVUNVVDQWMVVKMJUXMXAXBXCVU
      OVUGUWSUSVVDUXOAUXQUWSXDVUGVVDUWSUXOVUGVVDUSZUWSUXOVVLUWRUXNUFUWJVVLVUIUS
      ZVUQUWRUXNVVLVUQVUIVUGVVCVUPVUQWRWDVVMUXMVRVOZUYDVUKVUQUWRUSUXNXEVVMUXMVV
      LVVGVUIVVCVVGVUGVURVVIWLWDWNVVLUYDVUIVVLUXEVRUWNUYGVVLUWJUXEUWMUWKAUYHUXQ
      VVDUYIWMZAUXQVVDXGWFVMWDVVMUXEVRUWLUYGVVLUWJUXEUWIUWKVVOXFVMUXMUWNUWLXQWJ
      XRXJXKXLXMXTXNXOYAXPUXLUXPUSZUXOUXKUSZUHUXEURUIUXEURZAUXDVVPUXPUXLUSVVRUX
      LUXPUUAUXOUXKUIUHUXEUXEUUCUUDAVVQUXDUIUHUXEUXEVVQUXNUXJUSZUFUWJUQZAVVEUYS
      USZUSZUXDUXNUXJUFUWJUUEVWBVVTUWLUXMUXIVCUMZVOZUFUWJUQZUXDVWBVVSVWDUFUWJVW
      BVUIUSZVVSUWLVFVOZUXNUXJWSZVWDVWFUXJUXNVWGVWFUXEVFUWLUXHVWBUWJUXEUWIUWKAU
      YHVWAUYIWDXFVMUUBVWFVVNVULVWDVWHWTVWFUXEVRUXMUYGAVVEUYSVUIUUFVMVWFUXEVRUX
      IUYGAVVEUYSVUIUUGVMUXMUXIUWLXAXBUUHXSVWBVWEDVWCVOZBUWJUQZUXDAVWEVWJWTVWAV
      WEBUKZUWKUOZVWCVOZBUWJUQAVWJVWDVWMUFBUWJBUWLVWCBUWJDUWIUUIYBVWMUFUUJUFBYC
      UWLVWLVWCUWIVWKUWKUUKYDUUNAVWMVWIBUWJAVWKUWJVOZUSZVWLDVWCVWOVWNDUXEVOZVWL
      DVBAVWNUULAVWPBUWJAUYHVWPBUWJUQUYIBUWJUXEDUWKUWKUUMZUUOUUPUUQZBUWJDUXEUWK
      VWQUURXBYDXSUUSWDAVWAVWJUXDAVWAVWJUSZUSZUJBKDYEZBLDYEZCUJUKZFYEZUTZUGKLCB
      UWMDYEZFYEZBUWMEYEZVAUMZUTZUXAUXCVWTUGUJVXFVXHVXDVXGVXAVXBUXMUXIJKLMAKVFV
      OZVWSNWDALVFVOZVWSOWDAKLUPVDVWSPWDAVUEVWSQWDAUYEVWSRWDAUGUWJVXFUNZUXFVOVW
      SAVXMUWKUXFBUGUWJDVXFUGDYFBUWMDYGZBUWMDYHZYIZSYJWDAUGKLVCUMZVXHUNZVXQVHVE
      UMUUTUVAZVOVWSAVXRBVXQEUNZVXSBUGVXQEVXHUGEYFBUWMEYGZBUWMEYHZYIZTYJWDAUJUX
      EVXDUNZUXEVHVEUMZVOVWSAVYDCUXEFUNVYECUJUXEFVXDUJFYFZCVXCFYGZCVXCFYHZYIUAY
      JWDAVFVXMYLUMZVXRVBVWSAVFUWKYLUMVXTVYIVXRUBUWKVXMVFYLVXPUVBVYCUVCWDCVXCVX
      FFYKBUWMKDYKBUWMLDYKAVVEUYSVWJUVDAVVEUYSVWJUVEVWTVWJUXQVXFVWCVOZAVWAVWJUV
      FVWIVYJBUWMUWJBVXFVWCVXNYBBUGYCZDVXFVWCVXOYDUVGUVHUVIAVXEUXAVBVWSAVXECVXA
      VXBFUTZUXACUJVXAVXBFVXDVYHVYFVYGYMAVYLCHVXBFUTZUXAAVXKVXAHVBVYLVYMVBNBKDH
      VFVXKBHYNUDYOCVXAHVXBFUVJYPAVXLVXBIVBVYMUXAVBOBLDIVFVXLBIYNUEYOCVXBIHFUVK
      YPUVLYQWDAVXJUXCVBVWSAVXJBKLCDFYEZEVAUMZUTZUXCBUGKLVYOVXIVYKVYNVXGEVXHVAV
      YKCDVXFFVXOUVMVYBUVOUGVYOYFBVXGVXHVABCVXFFVXNBFYFUVNBVAYFVYAUVPYMABVXQVYO
      YRBVXQUXBYRVYPUXCABVXQVYOUXBAVWKVXQVOZUSZVYNGEVAVYRVWPVYNGVBVYQAVWNVWPVXQ
      UWJVWKKLUVQUWEVWRUVRCDFGUXEVWPCGYNUCYOWCUVSUVTABKLVYOPYSABKLUXBPYSUWAYQWD
      UWBUWCYTYTUWDUWFUWGUWHYA $.
  $}


$(
###############################################################################
  BASIC REAL AND COMPLEX FUNCTIONS
###############################################################################
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Polynomials
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Polynomial degrees
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c mDeg $. $( Multivariate polynomial degree $)
  $c deg1 $. $( Univariate polynomial degree $)

  $( Multivariate polynomial degree. $)
  cmdg $a class mDeg $.

  $( Univariate polynomial degree. $)
  cdg1 $a class deg1 $.

  ${
    $d i r h f $.
    $( Define the degree of a polynomial.  Note (SO): as an experiment I am
       using a definition which makes the degree of the zero polynomial
       ` -oo ` , contrary to the convention used in ~ df-dgr .  (Contributed by
       Stefan O'Rear, 19-Mar-2015.)  (Revised by AV, 25-Jun-2019.) $)
    df-mdeg $a |- mDeg = ( i e. _V , r e. _V |->
      ( f e. ( Base ` ( i mPoly r ) ) |->
        sup ( ran ( h e. ( f supp ( 0g ` r ) ) |->
          ( CCfld gsum h ) ) , RR* , < ) ) ) $.

    $( Define the degree of a univariate polynomial.  (Contributed by Stefan
       O'Rear, 23-Mar-2015.) $)
    df-deg1 $a |- deg1 = ( r e. _V |-> ( 1o mDeg r ) ) $.

    $( Multivariate degree is a binary operation.  (Contributed by Stefan
       O'Rear, 28-Mar-2015.) $)
    reldmmdeg $p |- Rel dom mDeg $=
      ( vi vr vf vh cvv cv cmpl cbs cfv c0g csupp ccnfld cgsu cmpt crn cxr csup
      co clt cmdg df-mdeg reldmmpt2 ) ABEECAFBFZGRHIDCFUCJIKRLDFMRNOPSQNTCDABUA
      UB $.
  $}

  ${
    $d A h x y $.  $d I h m $.  $d I x y $.  $d V h x y $.
    tdeglem.a $e |- A = { m e. ( NN0 ^m I ) | ( `' m " NN ) e. Fin } $.
    tdeglem.h $e |- H = ( h e. A |-> ( CCfld gsum h ) ) $.
    $( Functionality of the total degree helper function.  (Contributed by
       Stefan O'Rear, 19-Mar-2015.)  (Proof shortened by AV, 27-Jul-2019.) $)
    tdeglem1 $p |- ( I e. V -> H : A --> NN0 ) $=
      ( wcel ccnfld cv cgsu co cn0 wa cc0 cnfld0 crg ccmn cnring mp1i simpl cfv
      ringcmn csubmnd nn0subm a1i psrbagf cfsupp psrbagfsupp ancoms gsumsubmcl
      wbr fmptd ) EFIZBAJBKZLMNDUOUPAIZOZENUPJFPQJRIJSIURTJUDUAUOUQUBNJUEUCIURU
      FUGACUPEFGUHUQUOUPPUIUMACEFUPGUJUKULHUN $.

    $d X h $.  $d X m $.  $d Y h $.  $d Y m $.
    $( Additivity of the total degree helper function.  (Contributed by Stefan
       O'Rear, 26-Mar-2015.)  (Proof shortened by AV, 27-Jul-2019.) $)
    tdeglem3 $p |- ( ( I e. V /\ X e. A /\ Y e. A ) ->
        ( H ` ( X oF + Y ) ) = ( ( H ` X ) + ( H ` Y ) ) ) $=
      ( wcel ccnfld caddc co cgsu cfv cc cc0 wf cn0 w3a cof cnfldbas cnfld0 crg
      cnfldadd ccmn cnring ringcmn simp1 wa wss psrbagf nn0sscn sylancl 3adant3
      mp1i fss 3adant2 cfsupp psrbagfsupp ancoms gsumadd wceq psrbagaddcl oveq2
      wbr cv ovex fvmpt syl oveqan12d 3adant1 3eqtr4d ) EFKZGAKZHAKZUAZLGHMUBNZ
      ONZLGONZLHONZMNZVSDPZGDPZHDPZMNZVREQMGLHFRUCUDUFLUEKLUGKVRUHLUIUQVOVPVQUJ
      VOVPEQGSZVQVOVPUKETGSTQULZWHACGEFIUMUNETQGURUOUPVOVQEQHSZVPVOVQUKETHSWIWJ
      ACHEFIUMUNETQHURUOUSVOVPGRUTVGZVQVPVOWKACEFGIVAVBUPVOVQHRUTVGZVPVQVOWLACE
      FHIVAVBUSVCVRVSAKWDVTVDACGHEFIVEBVSLBVHZONZVTADWMVSLOVFJLVSOVIVJVKVPVQWGW
      CVDVOVPVQWEWAWFWBMBGWNWAADWMGLOVFJLGOVIVJBHWNWBADWMHLOVFJLHOVIVJVLVMVN $.

    $d H x $.  $d X x y $.
    $( There is only one multi-index with total degree 0.  (Contributed by
       Stefan O'Rear, 29-Mar-2015.) $)
    tdeglem4 $p |- ( ( I e. V /\ X e. A ) -> ( ( H ` X ) = 0 <->
          X = ( I X. { 0 } ) ) ) $=
      ( vx vy wcel cfv cc0 wceq ccnfld cgsu co cn0 cvv wa csn cxp wral wrex wne
      cv rexnal df-ne cdif cmpt caddc oveq2 ovex fvmpt ad2antlr psrbagf feqmptd
      wn adantr oveq2d cc cnfldbas cnfld0 cnfldadd crg ccmn cnring ringcmn mp1i
      simpll wf ffvelrnda nn0cnd cfsupp wbr psrbagfsupp ancoms eqbrtrrd disjdif
      cin c0 incom eqtri a1i difsnid eqcomd ad2antrl gsumsplit2 3eqtrd ad2antrr
      cun cn difexg csubmnd nn0subm eldifi ffvelrn syl2an eqid fmptd wfun csupp
      wss mptexg syl funmpt cres difss ax-mp resss eqsstr3i funsssuppss syl3anc
      resmpt fsuppsssupp syl22anc gsumsubmcl cmnd ringmnd simprl ffvelrnd fveq2
      gsumsn wo simprr sylib elnn0 orel2 sylc eqeltrd nn0nnaddcl syl2anc nnne0d
      eqnetrd expr syl5bir rexlimdva necon4bd wfn ffn 0nn0 fnconstg eqfnfv c0ex
      wb fvconst2 eqeq2d ralbiia syl6bb sylibrd psrbag0 fconstmpt oveq2i syl5eq
      gsumz mpan eqtrd eqeq1d syl5ibrcom impbid ) EFLZGALZUAZGDMZNOZGENUBUCZOZU
      VDUVFJUGZGMZNOZJEUDZUVHUVDUVLUVENUVLUSUVKUSZJEUEUVDUVENUFZUVKJEUHUVDUVMUV
      NJEUVMUVJNUFZUVDUVIELZUAUVNUVJNUIZUVDUVPUVOUVNUVDUVPUVOUAZUAZUVEPKEUVIUBZ
      UJZKUGZGMZUKZQRZPKUVTUWCUKQRZULRZNUVSUVEPGQRZPKEUWCUKZQRUWGUVCUVEUWHOUVBU
      VRBGPBUGZQRZUWHADUWJGPQUMIPGQUNUOUPUVSGUWIPQUVDGUWIOUVRUVDKESGACGEFHUQZUR
      UTZVAUVSEVBUWAUVTULKPFUWCNVCVDVEPVFLZPVGLUVSVHPVIVJZUVBUVCUVRVKUVSUWBELZU
      AUWCUVSESUWBGUVDESGVLZUVRUWLUTZVMVNUVSGUWINVOUWMUVDGNVOVPZUVRUVCUVBUWSACE
      FGHVQVRUTVSZUWAUVTWAZWBOUVSUXAUVTUWAWAWBUWAUVTWCUVTEVTWDWEUVPEUWAUVTWLZOU
      VDUVOUVPUXBEEUVIWFWGWHWIWJUVSUWGUVSUWESLUWFWMLUWGWMLUVSUWASUWDPTNVDUWOUVB
      UWATLZUVCUVREUVTFWNZWKSPWOMLUVSWPWEUVSKUWAUWCSUWDUVSUWQUWPUWCSLUWBUWALUWR
      UWBEUVTWQESUWBGWRWSUWDWTXAUVSUWDTLZUWDXBZUWINVOVPUWDNXCRUWINXCRXDZUWDNVOV
      PUVBUXEUVCUVRUVBUXCUXEUXDKUWAUWCTXEXFWKUXFUVSKUWAUWCXGWEUWTUVSUWIXBZUWDUW
      IXDZUWITLZUXGUXHUVSKEUWCXGWEUXIUVSUWDUWIUWAXHZUWIUWAEXDUXKUWDOEUVTXIKEUWA
      UWCXOXJUWIUWAXKXLWEUVBUXJUVCUVRKEUWCFXEWKUWDUWITNXMXNUWIUWDTNXPXQXRUVSUWF
      UVJWMUVSPXSLZUVPUVJVBLUWFUVJOUWNUXLUVSVHPXTZVJUVDUVPUVOYAZUVSUVJUVSESUVIG
      UWRUXNYBZVNUWCVBUVJKPUVIEVCUWBUVIGYCYDXNUVSUVMUVJWMLZUVKYEZUXPUVSUVOUVMUV
      DUVPUVOYFUVQYGUVSUVJSLUXQUXOUVJYHYGUVKUXPYIYJYKUWEUWFYLYMYNYOYPYQYRYQYSUV
      DUVHUVJUVIUVGMZOZJEUDZUVLUVDGEYTZUVGEYTZUVHUXTUUFUVDUWQUYAUWLESGUUAXFNSLU
      YBUVDUUBENSUUCVJJEGUVGUUDYMUXSUVKJEUVPUXRNUVJENUVIUUEUUGUUHUUIUUJUUKUVDUV
      FUVHUVGDMZNOUVDUYCPUVGQRZNUVDUVGALZUYCUYDOUVBUYEUVCACEFHUULUTBUVGUWKUYDAD
      UWJUVGPQUMIPUVGQUNUOXFUVDUYDPJENUKZQRZNUVGUYFPQJENUUMUUNUVBUYGNOZUVCUXLUV
      BUYHUWNUXLVHUXMXJEJPFNVDUUPUUQUTUUOUURUVHUVEUYCNGUVGDYCUUSUUTUVA $.
  $}

  ${
    $d h x $.
    $( Simplification of total degree for the univariate case.  (Contributed by
       Stefan O'Rear, 23-Mar-2015.) $)
    tdeglem2 $p |- ( h e. ( NN0 ^m 1o ) |-> ( h ` (/) ) ) =
        ( h e. ( NN0 ^m 1o ) |-> ( CCfld gsum h ) ) $=
      ( vx cn0 c1o cmap co c0 cfv ccnfld cgsu wcel wceq csn cmpt elmapi feqmptd
      cv cvv cc 0ex oveq2d cmnd crg cnring ringmnd mp1i wf snid ffvelrn sylancl
      a1i nn0cnd cnfldbas fveq2 gsumsn syl3anc eqtrd df1o2 oveq2i eleq2s eqcomd
      mpteq2ia ) ACDEFZGAQZHZIVDJFZVDVCKVFVEVFVELVDCGMZEFZVCVDVHKZVFIBVGBQZVDHZ
      NZJFZVEVIVDVLIJVIBVGCVDVDCVGOZPUAVIIUBKZGRKZVESKVMVELIUCKVOVIUDIUEUFVPVIT
      UKVIVEVIVGCVDUGGVGKVECKVNGTUHVGCGVDUIUJULVKSVEBIGRUMVJGVDUNUOUPUQDVGCEURU
      SUTVAVB $.
  $}

  ${
    $d A h $.  $d B f i r $.  $d I f i r $.  $d I m $.  $d R f i r $.
    $d .0. h i r $.  $d f h $.
    mdegval.d $e |- D = ( I mDeg R ) $.
    mdegval.p $e |- P = ( I mPoly R ) $.
    mdegval.b $e |- B = ( Base ` P ) $.
    mdegval.z $e |- .0. = ( 0g ` R ) $.
    mdegval.a $e |- A = { m e. ( NN0 ^m I ) | ( `' m " NN ) e. Fin } $.
    mdegval.h $e |- H = ( h e. A |-> ( CCfld gsum h ) ) $.
    $( Value of the multivariate degree function.  (Contributed by Stefan
       O'Rear, 19-Mar-2015.)  (Revised by AV, 25-Jun-2019.) $)
    mdegfval $p |- D = ( f e. B
                         |-> sup ( ( H " ( f supp .0. ) ) , RR* , < ) ) $=
      ( cmpt cbs c0 vi vr cmdg co cv csupp cima cxr clt csup cvv wcel wa ccnfld
      wceq cgsu crn cmpl cfv oveq12 syl6eqr fveq2d fveq2 oveq2d mpteq1d supeq1d
      c0g rneqd adantl mpteq12dv df-mdeg fvex eqeltri mptex ovmpt2a reseq1i cdm
      cres suppssdm wf eqid simpr mplelf fdm syl5sseq resmptd syl5req mpteq2dva
      df-ima eqtrd wn reldmmdeg ovprc mpt0 reldmmpl syl5eq base0 3eqtr4g eqtr4d
      syl pm2.61i eqtri ) CJEUCUDZFBIFUEZKUFUDZUGZUHUIUJZRZLJUKULEUKULUMZXCXHUO
      XIXCFBGXEUNGUEUPUDZRZUQZUHUIUJZRZXHUAUBJEUKUKFUAUEZUBUEZURUDZSUSZGXDXPVGU
      SZUFUDZXJRZUQZUHUIUJZRXNUCXOJUOZXPEUOZUMZFXRYCBXMYFXRDSUSZBYFXQDSYFXQJEUR
      UDZDXOJXPEURUTMVAVBNVAYEYCXMUOYDYEUHYBXLUIYEYAXKYEGXTXEXJYEXSKXDUFYEXSEVG
      USKXPEVGVCOVAVDVEVHVFVIVJFGUAUBVKFBXMBYGUKNDSVLVMVNVOXIFBXMXGXIXDBULZUMZU
      HXLXFUIYJXLIXEVRZUQXFYJXKYKYJYKGAXJRZXEVRXKIYLXEQVPYJGAXEXJYJXDVQZXEAXDKV
      SYJAESUSZXDVTYMAUOYJBADEHJYNXDMYNWANPXIYIWBWCAYNXDWDWTWEWFWGVHIXEWIVAVFWH
      WJXIWKZXCFTXGRZXHYOXCTYPJEUCWLWMFXGWNVAYOFBTXGYOYGTSUSBTYODTSYODYHTMJEURW
      OWMWPVBNWQWRVEWSXAXB $.

    $d F f $.  $d H f $.  $d .0. f $.
    $( Value of the multivariate degree function at some particular polynomial.
       (Contributed by Stefan O'Rear, 19-Mar-2015.)  (Revised by AV,
       25-Jun-2019.) $)
    mdegval $p |- ( F e. B
                   -> ( D ` F ) = sup ( ( H " ( F supp .0. ) ) , RR* , < ) ) $=
      ( vf cxr clt cv csupp cima csup wceq oveq1 imaeq2d supeq1d mdegfval supex
      co xrltso fvmpt ) RHIRUAZKUBUKZUCZSTUDIHKUBUKZUCZSTUDBCUNHUEZSUPURTUSUOUQ
      IUNHKUBUFUGUHABCDERFGIJKLMNOPQUISURTULUJUM $.

    $d A x y $.  $d B x $.  $d F x y $.  $d G x y $.  $d H x y $.  $d I h $.
    $d R x $.  $d .0. x y $.  $d h m $.
    $( Property of being of limited degree.  (Contributed by Stefan O'Rear,
       19-Mar-2015.) $)
    mdegleb $p |- ( ( F e. B /\ G e. RR* ) -> ( ( D ` F ) <_ G <->
          A. x e. A ( G < ( H ` x ) -> ( F ` x ) = .0. ) ) ) $=
      ( wcel vy cxr wa cfv cle wbr csupp cima clt csup wral wceq mdegval adantr
      co cv wi breq1d wss wb crn imassrn cn0 wf cvv mplrcl tdeglem1 syl nn0ssre
      frn cr ressxr sstri syl6ss syl5ss supxrleub sylancom wfn ffn cdm suppssdm
      cbs eqid simpl mplelf fdm syl5sseq breq1 ralima syl2anc csn cdif ccnv cfn
      cn cmap crab ovex a1i syl5eqel c0g fvex eqeltri w3a wne elsuppfn biantrur
      rabex eldifsn bitr4i anbi2d syl3anc imbi1d impexp con34b simplr ffvelrnda
      bitrd wn sseldi xrltnle bicomd wo ianor xchnxbir orcom notnoti biorfi nne
      3bitr2i syl5bb imbi12d pm5.74da ralbidv2 3bitrd ) ICTZJUBTZUCZIDUDZJUEUFK
      IMUGUOZUHZUBUIUJZJUEUFZUAUPZJUEUFZUAUUAUKZJAUPZKUDZUIUFZUUGIUDZMULZUQZABU
      KZYRYSUUBJUEYPYSUUBULYQBCDEFGHIKLMNOPQRSUMUNURYPYQUUAUBUSUUCUUFUTYRUUAKVA
      ZUBKYTVBYRUUNVCUBYRBVCKVDZUUNVCUSYRLVETZUUOYPUUPYQCEFLIOPVFUNBGHKLVERSVGV
      HZBVCKVJVHVCVKUBVIVLVMZVNVOUAUUAJVPVQYRUUFUUHJUEUFZAYTUKZUUMYRKBVRZYTBUSU
      UFUUTUTYRUUOUVAUUQBVCKVSVHYRIVTZYTBIMWAYRBFWBUDZIVDZUVBBULYRCBEFHLUVCIOUV
      CWCPRYPYQWDWEZBUVCIWFVHWGUUEUUSUAABYTKUUDUUHJUEWHWIWJYRUUSUULAYTBYRUUGYTT
      ZUUSUQUUGBTZUUJVEMWKWLTZUCZUUSUQZUVGUULUQZYRUVFUVIUUSYRIBVRZBVETZMVETZUVF
      UVIUTYRUVDUVLUVEBUVCIVSVHYRBHUPWMWOUHWNTZHVCLWPUOZWQZVERUVQVETYRUVOHUVPVC
      LWPWRXHWSWTUVNYRMFXAUDVEQFXAXBXCWSUVLUVMUVNXDZUVFUVGUUJMXEZUCUVIUUGIVEVEB
      MXFUVRUVSUVHUVGUVSUVHUTUVRUVSUUJVETZUVSUCZUVHUVTUVSUUGIXBZXGUUJVEMXIZXJWS
      XKXRXLXMUVJUVGUVHUUSUQZUQYRUVKUVGUVHUUSXNYRUVGUWDUULUWDUUSXSZUVHXSZUQYRUV
      GUCZUULUVHUUSXOUWGUWEUUIUWFUUKUWGUUIUWEUWGYQUUHUBTUUIUWEUTYPYQUVGXPUWGVCU
      BUUHUURYRBVCUUGKUUQXQXTJUUHYAWJYBUWFUVTXSZUVSXSZYCZUWGUUKUWAUWJUVHUVTUVSY
      DUWCYEUWJUUKUTUWGUWJUWIUWHYCUWIUUKUWHUWIYFUWHUWIUVTUWBYGYHUUJMYIYJWSYKYLY
      KYMYKXRYNXRYO $.

    ${
      $d D x $.  $d X x $.
      mdeglt.f $e |- ( ph -> F e. B ) $.
      medglt.x $e |- ( ph -> X e. A ) $.
      mdeglt.lt $e |- ( ph -> ( D ` F ) < ( H ` X ) ) $.
      $( If there is an upper limit on the degree of a polynomial that is lower
         than the degree of some exponent bag, then that exponent bag is
         unrepresented in the polynomial.  (Contributed by Stefan O'Rear,
         26-Mar-2015.)  (Proof shortened by AV, 27-Jul-2019.) $)
      mdeglt $p |- ( ph -> ( F ` X ) = .0. ) $=
        ( vx cfv clt wbr wceq wcel cv wi wral cle cxr csupp co cima mdegval syl
        csup wss crn imassrn cn0 cvv wf mplrcl tdeglem1 frn 4syl nn0ssre ressxr
        cr sstri syl6ss syl5ss supxrcl eqeltrd xrleid wb mdegleb syl2anc breq2d
        mpbid fveq2 eqeq1d imbi12d rspcva mpd ) AIDUDZLJUDZUEUFZLIUDZMUGZUBALBU
        HWIUCUIZJUDZUEUFZWNIUDZMUGZUJZUCBUKZWKWMUJZUAAWIWIULUFZWTAWIUMUHZXBAWIJ
        IMUNUOZUPZUMUEUSZUMAICUHZWIXFUGTBCDEFGHIJKMNOPQRSUQURAXEUMUTXFUMUHAXEJV
        AZUMJXDVBAXHVCUMAXGKVDUHBVCJVEXHVCUTTCEFKIOPVFBGHJKVDRSVGBVCJVHVIVCVLUM
        VJVKVMVNVOXEVPURVQZWIVRURAXGXCXBWTVSTXIUCBCDEFGHIWIJKMNOPQRSVTWAWCWSXAU
        CLBWNLUGZWPWKWRWMXJWOWJWIUEWNLJWDWBXJWQWLMWNLIWDWEWFWGWAWH $.
    $}

    $d D x $.
    mdegldg.y $e |- Y = ( 0g ` P ) $.
    $( A nonzero polynomial has some coefficient which witnesses its degree.
       (Contributed by Stefan O'Rear, 23-Mar-2015.) $)
    mdegldg $p |- ( ( R e. Ring /\ F e. B /\ F =/= Y ) ->
        E. x e. A ( ( F ` x ) =/= .0. /\ ( H ` x ) = ( D ` F ) ) ) $=
      ( crg wcel wne w3a cfv csupp co cima cv wceq wa wrex cxr clt csup mdegval
      3ad2ant2 cfn c0 wss wfun cn0 cvv wf mplrcl tdeglem1 syl ffund simp2 simp1
      mplelsfi fsuppimpd imafi syl2anc csn cxp simp3 cgrp ringgrp 3ad2ant1 mpl0
      neeqtrd wfn wb cbs eqid mplelf ffnd fvex eqeltri ccnv cn cmap ovex rabex2
      c0g fnsuppeq0 mp3an2 sylancl necon3bid cdm suppssdm fdm syl5sseq fnimaeq0
      mpbird crn imassrn frn syl5ss cr nn0ssre ressxr syl6ss wor xrltso fisupcl
      sstri mpan syl3anc eqeltrd fvelimab rexsupp mp3an23 bitrd mpbid ) FUAUBZI
      CUBZILUCZUDZIDUEZJIMUFUGZUHZUBZAUIZIUEMUCYOJUEYKUJZUKABULZYJYKYMUMUNUOZYM
      YHYGYKYRUJYIBCDEFGHIJKMNOPQRSUPUQYJYMURUBZYMUSUCZYMUMUTZYRYMUBZYJJVAYLURU
      BYSYJBVBJYJKVCUBZBVBJVDZYHYGUUCYICEFKIOPVEUQZBGHJKVCRSVFVGZVHYJIMYJCEFIKU
      AMOPQYGYHYIVIZYGYHYIVJVKVLJYLVMVNYJYTYLUSUCZYJUUHIBMVOVPZUCYJILUUIYGYHYIV
      QYJBEFHKMVCLORQTUUEYGYHFVRUBYIFVSVTWAWBYJYLUSIUUIYJIBWCZMVCUBZYLUSUJZIUUI
      UJWDZYJBFWEUEZIYJCBEFHKUUNIOUUNWFPRUUGWGZWHZMFWPUEVCQFWPWIWJZUUJBVCUBZUUK
      UUMHUIWKWLUHURUBHVBKWMUGBRVBKWMWNWOZBIVCVCMWQWRWSWTXFYJYMUSYLUSYJJBWCZYLB
      UTZYMUSUJUULWDYJBVBJUUFWHZYJIXAZYLBIMXBYJBUUNIVDUVCBUJUUOBUUNIXCVGXDZBYLJ
      XEVNWTXFYJYMVBUMYJYMJXGZVBJYLXHYJUUDUVEVBUTUUFBVBJXIVGXJVBXKUMXLXMXRXNUMU
      NXOYSYTUUAUDUUBXPUMYMUNXQXSXTYAYJYNYPAYLULZYQYJUUTUVAYNUVFWDUVBUVDABYLYKJ
      YBVNYJUUJUVFYQWDZUUPUUJUURUUKUVGUUSUUQYPAIVCVCBMYCYDVGYEYF $.
  $}

  ${
    $d I x y $.  $d R y $.
    mdegxrcl.d $e |- D = ( I mDeg R ) $.
    mdegxrcl.p $e |- P = ( I mPoly R ) $.
    mdegxrcl.b $e |- B = ( Base ` P ) $.
    $( Closure of polynomial degree in the extended reals.  (Contributed by
       Stefan O'Rear, 19-Mar-2015.)  (Proof shortened by AV, 27-Jul-2019.) $)
    mdegxrcl $p |- ( F e. B -> ( D ` F ) e. RR* ) $=
      ( vy vx wcel cfv cv cima cn0 co cxr eqid wss ccnv cn cfn cmap crab ccnfld
      cgsu cmpt c0g csupp clt csup mdegval crn imassrn cvv mplrcl tdeglem1 3syl
      wf frn cr nn0ssre ressxr sstri syl6ss syl5ss supxrcl syl eqeltrd ) EALZEB
      MJKNUAUBOUCLKPFUDQUEZUFJNUGQUHZEDUIMZUJQZOZRUKULZRVLABCDJKEVMFVNGHIVNSVLS
      ZVMSZUMVKVPRTVQRLVKVPVMUNZRVMVOUOVKVTPRVKFUPLVLPVMUTVTPTACDFEHIUQVLJKVMFU
      PVRVSURVLPVMVAUSPVBRVCVDVEVFVGVPVHVIVJ $.

    $d B f $.  $d B z $.  $d D f $.  $d I f $.  $d I z $.  $d R f $.  $d R z $.
    $d y z $.
    $( Functionality of polynomial degree in the extended reals.  (Contributed
       by Stefan O'Rear, 19-Mar-2015.)  (Proof shortened by AV,
       27-Jul-2019.) $)
    mdegxrf $p |- D : B --> RR* $=
      ( vf vz vy vx cxr cv cfv wcel cima co clt eqid wfn wral ccnv cfn cn0 cmap
      wf cn crab ccnfld cgsu cmpt c0g csupp csup xrltso supex mdegfval mdegxrcl
      fnmpti rgen ffnfv mpbir2an ) AMBUGBAUAINZBOMPZIAUBJAKLNUCUHQUDPLUEEUFRUIZ
      UJKNUKRULZJNDUMOZUNRQZMSUOBMVISUPUQVFABCDJKLVGEVHFGHVHTVFTVGTURUTVEIAABCD
      VDEFGHUSVAIAMBVBVC $.
  $}

  ${
    $d I a b $.  $d R b $.
    mdegcl.d $e |- D = ( I mDeg R ) $.
    mdegcl.p $e |- P = ( I mPoly R ) $.
    mdegcl.b $e |- B = ( Base ` P ) $.
    $( Sharp closure for multivariate polynomials.  (Contributed by Stefan
       O'Rear, 23-Mar-2015.) $)
    mdegcl $p |- ( F e. B -> ( D ` F ) e. ( NN0 u. { -oo } ) ) $=
      ( vb va wcel cfn cn0 co cxr clt cmnf c0 cvv cfv cv ccnv cn cima cmap crab
      ccnfld cgsu cmpt c0g csupp csup csn cun eqid mdegval supeq1 eleq1d wne wa
      wceq wss crn imassrn wf mplrcl tdeglem1 frn 3syl syl5ss adantr ssun1 wfun
      syl6ss ffun cmpl reldmmpl elbasov simprd mplelsfi fsuppimpd imafi syl2anc
      id simpr cr nn0ssre ressxr sstri wor xrltso fisupcl syl3anc sseldd xrsup0
      w3a mpan ssun2 mnfxr elexi snid sselii eqeltri a1i pm2.61ne eqeltrd ) EAL
      ZEBUAJKUBUCUDUEMLKNFUFOUGZUHJUBUIOUJZEDUKUAZULOZUEZPQUMZNRUNZUOZXIABCDJKE
      XJFXKGHIXKUPZXIUPZXJUPZUQXHXNXPLSPQUMZXPLZXMSXMSVBXNXTXPPXMSQURUSXHXMSUTZ
      VAZXMXPXNYCXMNXPXHXMNVCYBXHXMXJVDZNXJXLVEXHFTLZXINXJVFZYDNVCACDFEHIVGZXIJ
      KXJFTXRXSVHZXINXJVIVJVKVLZNXOVMVOYCXMMLZYBXMPVCZXNXMLZXHYJYBXHXJVNZXLMLYJ
      XHYEYFYMYGYHXINXJVPVJXHEXKXHACDEFTXKHIXQXHWEXHYEDTLEACVQFDVRHIVSVTWAWBXJX
      LWCWDVLXHYBWFYCXMNPYINWGPWHWIWJVOPQWKYJYBYKWQYLWLPXMQWMWRWNWOYAXHXTRXPWPX
      OXPRXONWSRRPWTXAXBXCXDXEXFXG $.
  $}

  ${
    $d I x y $.  $d R y $.  $d V y $.
    mdeg0.d $e |- D = ( I mDeg R ) $.
    mdeg0.p $e |- P = ( I mPoly R ) $.
    mdeg0.z $e |- .0. = ( 0g ` P ) $.
    $( Degree of the zero polynomial.  (Contributed by Stefan O'Rear,
       20-Mar-2015.)  (Proof shortened by AV, 27-Jul-2019.) $)
    mdeg0 $p |- ( ( I e. V /\ R e. Ring ) -> ( D ` .0. ) = -oo ) $=
      ( vy vx wcel cfv cima co cxr clt eqid c0 cvv crg wa cv ccnv cfn cmap crab
      cn cn0 ccnfld cgsu cmpt c0g csup cmnf cgrp cbs wceq ringgrp mplgrp sylan2
      csupp grpidcl mdegval 3syl csn cxp simpl adantl mpl0 wfn wb fvex fnconstg
      mp1i fneq1d mpbird ovex a1i fnsuppeq0 syl3anc imaeq2d ima0 syl6eq supeq1d
      rabex xrsup0 eqtrd ) DELZCUALZUBZFAMZJKUCUDUHNUELZKUIDUFOZUGZUJJUCUKOULZF
      CUMMZVBOZNZPQUNZUOWKBUPLZFBUQMZLWLWTURWJWICUPLZXACUSZBCDEHUTVAXBBFXBRZIVC
      WOXBABCJKFWPDWQGHXEWQRZWORZWPRVDVEWKWTSPQUNUOWKPWSSQWKWSWPSNSWKWRSWPWKWRS
      URZFWOWQVFVGZURZWKWOBCKDWQEFHXGXFIWIWJVHWJXCWIXDVIVJZWKFWOVKZWOTLZWQTLZXH
      XJVLWKXLXIWOVKZXNXOWKCUMVMZWOWQTVNVOWKWOFXIXKVPVQXMWKWMKWNUIDUFVRWFVSXNWK
      XPVSWOFTTWQVTWAVQWBWPWCWDWEWGWDWH $.

    mdegnn0cl.b $e |- B = ( Base ` P ) $.
    $d B x $.  $d D x $.  $d F x $.  $d I h m $.  $d R h x $.  $d .0. x $.
    $d m x $.
    $( Degree of a nonzero polynomial.  (Contributed by Stefan O'Rear,
       23-Mar-2015.) $)
    mdegnn0cl $p |- ( ( R e. Ring /\ F e. B /\ F =/= .0. ) ->
        ( D ` F ) e. NN0 ) $=
      ( vx vh vm wcel wne cv cfv cn0 eqid crg w3a c0g ccnv cn cima cmap co crab
      cfn ccnfld cgsu cmpt wceq wa wrex mdegldg cvv wf mplrcl 3ad2ant2 tdeglem1
      syl ffvelrnda eleq1 syl5ibcom adantld rexlimdva mpd ) DUAOZEAOZEGPZUBZLQZ
      ERDUCRZPZVNMNQUDUEUFUJONSFUGUHUIZUKMQULUHUMZRZEBRZUNZUOZLVQUPVTSOZLVQABCD
      MNEVRFGVOHIKVOTVQTZVRTZJUQVMWBWCLVQVMVNVQOUOZWAWCVPWFVSSOWAWCVMVQSVNVRVMF
      UROZVQSVRUSVKVJWGVLACDFEIKUTVAVQMNVRFURWDWEVBVCVDVSVTSVEVFVGVHVI $.
  $}

  $( Theorem on arithmetic of extended reals useful for degrees.  (Contributed
     by Stefan O'Rear, 23-Mar-2015.) $)
  degltlem1 $p |- ( ( X e. ( NN0 u. { -oo } ) /\ Y e. ZZ ) ->
      ( X < Y <-> X <_ ( Y - 1 ) ) ) $=
    ( cn0 cmnf csn cun wcel wo cz clt wbr c1 cmin co cle wb elun nn0z syl breq1
    zltlem1 sylan cr zre mnflt cxr peano2zm zred rexrd mnfle 2thd elsni bibi12d
    wceq syl5ibrcom impcom jaoian sylanb ) ACDEZFGACGZAUSGZHBIGZABJKZABLMNZOKZP
    ZACUSQUTVBVFVAUTAIGVBVFARABUAUBVBVAVFVBVFVADBJKZDVDOKZPZVBVGVHVBBUCGVGBUDBU
    ESVBVDUFGVHVBVDVBVDBUGUHUIVDUJSUKVAADUNZVFVIPADULVJVCVGVEVHADBJTADVDOTUMSUO
    UPUQUR $.

  $( Theorem on arithmetic of extended reals useful for degrees.  (Contributed
     by Stefan O'Rear, 1-Apr-2015.) $)
  degltp1le $p |- ( ( X e. ( NN0 u. { -oo } ) /\ Y e. ZZ ) ->
      ( X < ( Y + 1 ) <-> X <_ Y ) ) $=
    ( cn0 cmnf csn cun wcel cz wa c1 caddc co clt wbr cmin wb peano2z degltlem1
    cle cc sylan2 wceq zcn ax-1cn pncan sylancl breq2d adantl bitrd ) ACDEFGZBH
    GZIABJKLZMNZAULJOLZSNZABSNZUKUJULHGUMUOPBQAULRUAUKUOUPPUJUKUNBASUKBTGJTGUNB
    UBBUCUDBJUEUFUGUHUI $.

  ${
    mdegaddle.y $e |- Y = ( I mPoly R ) $.
    mdegaddle.d $e |- D = ( I mDeg R ) $.
    mdegaddle.i $e |- ( ph -> I e. V ) $.
    mdegaddle.r $e |- ( ph -> R e. Ring ) $.

    ${
      $d ph c $.  $d B c $.  $d D c $.  $d F c $.  $d G c $.  $d I a b c $.
      $d .+ c $.  $d R b c $.  $d V b $.
      mdegaddle.b $e |- B = ( Base ` Y ) $.
      mdegaddle.p $e |- .+ = ( +g ` Y ) $.
      mdegaddle.f $e |- ( ph -> F e. B ) $.
      mdegaddle.g $e |- ( ph -> G e. B ) $.
      $( The degree of a sum is at most the maximum of the degrees of the
         factors.  (Contributed by Stefan O'Rear, 26-Mar-2015.) $)
      mdegaddle $p |- ( ph -> ( D ` ( F .+ G ) ) <_
            if ( ( D ` F ) <_ ( D ` G ) , ( D ` G ) , ( D ` F ) ) ) $=
        ( cfv wcel vc vb va co cle wbr cif cv ccnv cn cima cfn cmap crab ccnfld
        cn0 cgsu cmpt clt c0g wceq wi wral cplusg cof eqid mpladd fveq1d adantr
        wa wfn cvv cbs wf mplelf ffn syl ovex rabex simpr fnfvof syl22anc eqtrd
        a1i adantrr simprl cxr w3a mdegxrcl ifcld nn0ssre ressxr sstri tdeglem1
        cr ffvelrnda sseldi 3jca xrmax1 syl2anc simprr jca xrlelttr sylc mdeglt
        xrmax2 oveq12d cgrp ringgrp ring0cl grplid ralrimiva wb mplring ringacl
        crg expr syl3anc mdegleb mpbird ) AFGDUDZCSFCSZGCSZUEUFZYCYBUGZUEUFZYEU
        AUHZUBUCUHUIUJUKULTZUCUPHUMUDZUNZUOUBUHUQUDURZSZUSUFZYGYASZEUTSZVAZVBZU
        AYJVCZAYQUAYJAYGYJTZYMYPAYSYMVJZVJZYNYGFSZYGGSZEVDSZUDZYOAYSYNUUEVAYMAY
        SVJZYNYGFGUUDVEUDZSZUUEAYNUUHVAYSAYGYAUUGABJUUDDEHFGKOUUDVFZPQRVGVHVIUU
        FFYJVKZGYJVKZYJVLTZYSUUHUUEVAAUUJYSAYJEVMSZFVNUUJABYJJEUCHUUMFKUUMVFZOY
        JVFZQVOYJUUMFVPVQVIAUUKYSAYJUUMGVNUUKABYJJEUCHUUMGKUUNOUUORVOYJUUMGVPVQ
        VIUULUUFYHUCYIUPHUMVRVSWDAYSVTYJUUDFGVLYGWAWBWCWEUUAUUEYOYOUUDUDZYOUUAU
        UBYOUUCYOUUDUUAYJBCJEUBUCFYKHYGYOLKOYOVFZUUOYKVFZAFBTZYTQVIAYSYMWFZUUAY
        BWGTZYEWGTZYLWGTZWHZYBYEUEUFZYMVJYBYLUSUFAYSUVDYMUUFUVAUVBUVCAUVAYSAUUS
        UVAQBCJEFHLKOWIVQZVIAUVBYSAYDYCYBWGAGBTZYCWGTZRBCJEGHLKOWIVQZUVFWJZVIZU
        UFUPWGYLUPWOWGWKWLWMAYJUPYGYKAHITZYJUPYKVNMYJUBUCYKHIUUOUURWNVQWPWQZWRW
        EUUAUVEYMAUVEYTAUVAUVHUVEUVFUVIYBYCWSWTVIAYSYMXAZXBYBYEYLXCXDXEUUAYJBCJ
        EUBUCGYKHYGYOLKOUUQUUOUURAUVGYTRVIUUTUUAUVHUVBUVCWHZYCYEUEUFZYMVJYCYLUS
        UFAYSUVOYMUUFUVHUVBUVCAUVHYSUVIVIUVKUVMWRWEUUAUVPYMAUVPYTAUVAUVHUVPUVFU
        VIYBYCXFWTVIUVNXBYCYEYLXCXDXEXGAUUPYOVAZYTAEXHTZYOUUMTZUVQAEXPTZUVRNEXI
        VQAUVTUVSNUUMEYOUUNUUQXJVQUUMUUDEYOYOUUNUUIUUQXKWTVIWCWCXQXLAYABTZUVBYF
        YRXMAJXPTZUUSUVGUWAAUVLUVTUWBMNJEHIKXNWTQRBDJFGOPXOXRUVJUAYJBCJEUBUCYAY
        EYKHYOLKOUUQUUOUURXSWTXT $.
    $}

    ${
      $d ph x $.  $d B x $.  $d D x $.  $d F x $.  $d G x $.  $d I a b x $.
      $d .x. x $.  $d R b x $.
      mdegvscale.b $e |- B = ( Base ` Y ) $.
      mdegvscale.k $e |- K = ( Base ` R ) $.
      mdegvscale.p $e |- .x. = ( .s ` Y ) $.
      mdegvscale.f $e |- ( ph -> F e. K ) $.
      mdegvscale.g $e |- ( ph -> G e. B ) $.
      $( The degree of a scalar multiple of a polynomial is at most the degree
         of the original polynomial.  (Contributed by Stefan O'Rear,
         26-Mar-2015.) $)
      mdegvscale $p |- ( ph -> ( D ` ( F .x. G ) ) <_ ( D ` G ) ) $=
        ( vx vb va co cfv cle wbr cv ccnv cn cima cfn wcel cn0 cmap crab ccnfld
        cgsu cmpt clt c0g wceq wi wral wa cmulr adantr simpr mplvscaval adantrr
        eqid simprl simprr mdeglt oveq2d crg ringrz syl2anc 3eqtrd ralrimiva wb
        expr cxr csca cbs mpllmod mplsca fveq2d syl5eq eleqtrd lmodvscl syl3anc
        clmod mdegxrcl syl mdegleb mpbird ) AFGEUDZCUEGCUEZUFUGZWSUAUHZUBUCUHUI
        UJUKULUMUCUNHUOUDUPZUQUBUHURUDUSZUEUTUGZXAWRUEZDVAUEZVBZVCZUAXBVDZAXHUA
        XBAXAXBUMZXDXGAXJXDVEZVEZXEFXAGUEZDVFUEZUDZFXFXNUDZXFAXJXEXOVBXDAXJVEBX
        BKDEXNUCGHIFXALRQPXNVKZXBVKZAFIUMZXJSVGAGBUMZXJTVGAXJVHVIVJXLXMXFFXNXLX
        BBCKDUBUCGXCHXAXFMLPXFVKZXRXCVKZAXTXKTVGAXJXDVLAXJXDVMVNVOAXPXFVBZXKADV
        PUMZXSYCOSIDXNFXFQXQYAVQVRVGVSWBVTAWRBUMZWSWCUMZWTXIWAAKWMUMZFKWDUEZWEU
        EZUMXTYEAHJUMYDYGNOKDHJLWFVRAFIYISAIDWEUEYIQADYHWEAKDHJVPLNOWGWHWIWJTFE
        YHYIBKGPYHVKRYIVKWKWLAXTYFTBCKDGHMLPWNWOUAXBBCKDUBUCWRWSXCHXFMLPYAXRYBW
        PVRWQ $.
    $}

    ${
      $d I x y $.  $d R y $.
      mdegvsca.b $e |- B = ( Base ` Y ) $.
      mdegvsca.e $e |- E = ( RLReg ` R ) $.
      mdegvsca.p $e |- .x. = ( .s ` Y ) $.
      mdegvsca.f $e |- ( ph -> F e. E ) $.
      mdegvsca.g $e |- ( ph -> G e. B ) $.
      $( The degree of a scalar multiple of a polynomial is exactly the degree
         of the original polynomial when the multiple is a nonzero-divisor.
         (Contributed by Stefan O'Rear, 28-Mar-2015.)  (Proof shortened by AV,
         27-Jul-2019.) $)
      mdegvsca $p |- ( ph -> ( D ` ( F .x. G ) ) = ( D ` G ) ) $=
        ( vy vx cv ccnv cn cima cfn wcel cn0 cmap crab ccnfld cgsu cmpt c0g cfv
        co csupp cxr clt csup csn cxp cmulr cof cbs rrgss sseldi mplvsca oveq1d
        eqid cvv ovex rabex a1i mplelf rrgsupp eqtrd imaeq2d supeq1d wceq clmod
        csca crg mpllmod syl2anc mplsca fveq2d eleqtrd lmodvscl syl3anc mdegval
        syl 3eqtr4d ) AUAUBUCUDUEUFUGUHZUBUIIUJUQZUKZULUAUCUMUQUNZGHEUQZDUOUPZU
        RUQZUFZUSUTVAZWRHWTURUQZUFZUSUTVAZWSCUPZHCUPZAUSXBXEUTAXAXDWRAXAWQGVBVC
        HDVDUPZVEUQZWTURUQXDAWSXJWTURABWQKDEXIUBHIDVFUPZGLRXKVKZPXIVKZWQVKZAFXK
        GXKDFQXLVGSVHZTVIVJAXKDXIFWQVLGHWTQXLXMWTVKZWQVLUHAWOUBWPUIIUJVMVNVOOSA
        BWQKDUBIXKHLXLPXNTVPVQVRVSVTAWSBUHZXGXCWAAKWBUHZGKWCUPZVFUPZUHHBUHZXQAI
        JUHDWDUHXRNOKDIJLWEWFAGXKXTXOADXSVFAKDIJWDLNOWGWHWITGEXSXTBKHPXSVKRXTVK
        WJWKWQBCKDUAUBWSWRIWTMLPXPXNWRVKZWLWMAYAXHXFWATWQBCKDUAUBHWRIWTMLPXPXNY
        BWLWMWN $.
    $}

    ${
      $d ph x $.  $d B x $.  $d F x $.  $d I a b x $.  $d R a b x $.
      $d V b x $.
      mdegle0.b $e |- B = ( Base ` Y ) $.
      mdegle0.a $e |- A = ( algSc ` Y ) $.
      mdegle0.f $e |- ( ph -> F e. B ) $.
      $( A polynomial has nonpositive degree iff it is a constant.
         (Contributed by Stefan O'Rear, 29-Mar-2015.) $)
      mdegle0 $p |- ( ph -> ( ( D ` F ) <_ 0 <->
            F = ( A ` ( F ` ( I X. { 0 } ) ) ) ) ) $=
        ( vx cc0 wcel wceq vb va cfv cle wbr cv ccnv cn cima cfn cmap co ccnfld
        cn0 crab cgsu cmpt clt c0g wi wral csn cxp cxr 0xr eqid mdegleb sylancl
        wb cif wa wn wne cr tdeglem1 syl ffvelrnda nn0re nn0ge0 jca ne0gt0 3syl
        tdeglem4 sylan necon3abid bitr3d imbi1d eqeq2 bibi1d pm2.24 2thd adantl
        fveq2 biimt ifbothda adantr bitr4d ralbidva cbs mplelf feqmptd ffvelrnd
        wf psrbag0 mplascl eqeq12d cvv fvex rgenw mpteqb mp1i bitrd ) AFDUCRUDU
        EZRQUFZUAUBUFUGUHUIUJSUBUNGUKULUOZUMUAUFUPULUQZUCZURUEZXNFUCZEUSUCZTZUT
        ZQXOVAZFGRVBVCZFUCZBUCZTZAFCSRVDSXMYCVIPVEQXOCDIEUAUBFRXPGXTKJNXTVFZXOV
        FZXPVFZVGVHAYCXSXNYDTZYEXTVJZTZQXOVAZYGAYBYMQXOAXNXOSZVKZYBYKVLZYAUTZYM
        YPXRYQYAYPXQRVMZXRYQYPXQUNSZXQVNSZRXQUDUEZVKYSXRVIAXOUNXNXPAGHSZXOUNXPX
        CLXOUAUBXPGHYIYJVOVPVQYTUUAUUBXQVRXQVSVTXQWAWBYPYKXQRAUUCYOXQRTYKVILXOU
        AUBXPGHXNYIYJWCWDWEWFWGAYMYRVIZYOYKXSYETZYRVIZYAYRVIZUUDAYEXTYEYLTUUEYM
        YRYEYLXSWHWIXTYLTYAYMYRXTYLXSWHWIYKUUFAYKUUEYRXNYDFWMYKYAWJWKWLYQUUGAYQ
        YAWNWLWOWPWQWRAYGQXOXSUQZQXOYLUQZTZYNAFUUHYFUUIAQXOEWSUCZFACXOIEUBGUUKF
        JUUKVFZNYIPWTZXAAQBUUKXOIEUBGHYEXTJYIYHUULOLMAXOUUKYDFUUMAUUCYDXOSLXOUB
        GHYIXDVPXBXEXFXSXGSZQXOVAUUJYNVIAUUNQXOXNFXHXIQXOXSYLXGXJXKXLWQXL $.
    $}

    ${
      $d ph c d x $.  $d B x $.  $d F c d x $.  $d G c d x $.  $d I a b d x $.
      $d I c e $.  $d J d x $.  $d K d x $.  $d R b d x $.  $d R c $.
      $d .x. x $.  $d V b $.  $d a c e $.  $d d e $.  $d e x $.
      mdegmulle2.b $e |- B = ( Base ` Y ) $.
      mdegmulle2.t $e |- .x. = ( .r ` Y ) $.
      mdegmulle2.f $e |- ( ph -> F e. B ) $.
      mdegmulle2.g $e |- ( ph -> G e. B ) $.
      mdegmulle2.j1 $e |- ( ph -> J e. NN0 ) $.
      mdegmulle2.k1 $e |- ( ph -> K e. NN0 ) $.
      mdegmulle2.j2 $e |- ( ph -> ( D ` F ) <_ J ) $.
      mdegmulle2.k2 $e |- ( ph -> ( D ` G ) <_ K ) $.
      ${
        $d A b $.  $d A c $.  $d A d $.  $d A e $.  $d A x $.  $d H d $.
        $d H x $.  $d V e $.
        mdegmullem.a $e |- A = { a e. ( NN0 ^m I ) | ( `' a " NN ) e. Fin } $.
        mdegmullem.h $e |- H = ( b e. A |-> ( CCfld gsum b ) ) $.
        $( Lemma for ~ mdegmulle2 .  (Contributed by Stefan O'Rear,
           26-Mar-2015.) $)
        mdegmullem $p |- ( ph -> ( D ` ( F .x. G ) ) <_ ( J + K ) ) $=
          ( vx vc vd ve co cfv caddc cle wbr cv clt wceq wi wral wcel cofr crab
          c0g wa cmin cof cmulr cmpt cgsu eqid mplmul fveq1d adantr breq2 oveq1
          rabbidv fveq2d oveq2d mpteq12dv fvmpt ad2antrl ad2antrr elrabi adantl
          ovex adantrr cxr w3a mdegxrcl syl cn0 cr ressxr sstri sseldi tdeglem1
          nn0ssre wf ffvelrnd 3jca anim1i anasss xrlelttr mdeglt oveq1d crg cbs
          sylc mplelf ssrab2 simplrl psrbagconcl syl3anc ringlz syl2anc anassrs
          simpr eqtrd ringrz wo simplrr nn0red le2add syl22anc ffvelrnda nn0cnd
          wn psrbagf mpteq2dva cvv fvexd feqmptd offval2 lenltd cmap simp1 mt4d
          tdeglem3 3adant3 3adant2 pncan3d 3eqtr4d eqtr3d breq1d sylibd anbi12d
          ovexd ioran syl6bbr nn0addcld 3imtr3d mpjaodan cmnd ringmnd ccnv cima
          cfn rab2ex gsumz sylancl 3eqtrd expr ralrimiva mplring ringcl mdegleb
          cn wb mpbird ) AGHFUOZDUPKLUQUOZURUSZUVPUKUTZIUPZVAUSZUVRUVOUPZEVHUPZ
          VBZVCZUKBVDZAUWDUKBAUVRBVEZUVTUWCAUWFUVTVIZVIZUWAUVRULBEUMUNUTZULUTZU
          RVFZUSZUNBVGZUMUTZGUPZUWJUWNVJVKZUOZHUPZEVLUPZUOZVMZVNUOZVMZUPZEUMUWI
          UVRUWKUSZUNBVGZUWOUVRUWNUWPUOZHUPZUWSUOZVMZVNUOZUWBAUWAUXDVBUWGAUVRUV
          OUXCAUMUNCBNEFUWSOULGHJQUAUWSVOZUBUIUCUDVPVQVRUWFUXDUXKVBAUVTULUVRUXB
          UXKBUXCUWJUVRVBZUXAUXJEVNUXMUMUWMUWTUXFUXIUXMUWLUXEUNBUWJUVRUWIUWKVSW
          AUXMUWRUXHUWOUWSUXMUWQUXGHUWJUVRUWNUWPVTWBWCWDWCUXCVOEUXJVNWJWEWFUWHU
          XKEUMUXFUWBVMZVNUOZUWBUWHUXJUXNEVNUWHUMUXFUXIUWBUWHUWNUXFVEZVIZKUWNIU
          PZVAUSZUXIUWBVBZLUXGIUPZVAUSZUWHUXPUXSUXTUWHUXPUXSVIZVIZUXIUWBUXHUWSU
          OZUWBUYDUWOUWBUXHUWSUYDBCDNEPOGIJUWNUWBRQUAUWBVOZUIUJAGCVEZUWGUYCUCWG
          UWHUXPUWNBVEZUXSUXPUYHUWHUXEUNUWNBWHWIZWKUYDGDUPZWLVEZKWLVEZUXRWLVEZW
          MZUYJKURUSZUXSVIZUYJUXRVAUSUWHUXPUYNUXSUXQUYKUYLUYMAUYKUWGUXPAUYGUYKU
          CCDNEGJRQUAWNWOWGAUYLUWGUXPAWPWLKWPWQWLXBWRWSZUEWTWGUXQWPWLUXRUYQUXQB
          WPUWNIABWPIXCZUWGUXPAJMVEZUYRSBPOIJMUIUJXAWOWGZUYIXDZWTXEWKUWHUXPUXSU
          YPUXQUYOUXSAUYOUWGUXPUGWGXFXGUYJKUXRXHXMXIXJUWHUXPUYEUWBVBZUXSUXQEXKV
          EZUXHEXLUPZVEVUBAVUCUWGUXPTWGZUXQBVUDUXGHABVUDHXCUWGUXPACBNEOJVUDHQVU
          DVOZUAUIUDXNWGUXQUXFBUXGUXEUNBXOUXQUYSUWFUXPUXGUXFVEAUYSUWGUXPSWGZAUW
          FUVTUXPXPZUWHUXPYBUNBUXFOUVRJMUWNUIUXFVOXQXRWTZXDVUDEUWSUXHUWBVUFUXLU
          YFXSXTWKYCYAUWHUXPUYBUXTUWHUXPUYBVIZVIZUXIUWOUWBUWSUOZUWBVUKUXHUWBUWO
          UWSVUKBCDNEPOHIJUXGUWBRQUAUYFUIUJAHCVEZUWGVUJUDWGUWHUXPUXGBVEZUYBVUIW
          KVUKHDUPZWLVEZLWLVEZUYAWLVEZWMZVUOLURUSZUYBVIZVUOUYAVAUSUWHUXPVUSUYBU
          XQVUPVUQVURAVUPUWGUXPAVUMVUPUDCDNEHJRQUAWNWOWGAVUQUWGUXPAWPWLLUYQUFWT
          WGUXQWPWLUYAUYQUXQBWPUXGIUYTVUIXDZWTXEWKUWHUXPUYBVVAUXQVUTUYBAVUTUWGU
          XPUHWGXFXGVUOLUYAXHXMXIWCUWHUXPVULUWBVBZUYBUXQVUCUWOVUDVEVVCVUEUXQBVU
          DUWNGABVUDGXCUWGUXPACBNEOJVUDGQVUFUAUIUCXNWGUYIXDVUDEUWSUWOUWBVUFUXLU
          YFYDXTWKYCYAUXQUVTUXSUYBYEZAUWFUVTUXPYFUXQUXRKURUSZUYALURUSZVIZUVSUVP
          URUSZVVDYLZUVTYLUXQVVGUXRUYAUQUOZUVPURUSZVVHUXQUXRWQVEUYAWQVEKWQVELWQ
          VEVVGVVKVCUXQUXRVUAYGZUXQUYAVVBYGZUXQKAKWPVEUWGUXPUEWGYGZUXQLALWPVEUW
          GUXPUFWGYGZUXRUYAKLYHYIUXQVVJUVSUVPURUXQUWNUXGUQVKUOZIUPZVVJUVSUXQUYS
          UYHVUNVVQVVJVBVUGUYIVUIBPOIJMUWNUXGUIUJUUCXRUXQVVPUVRIUXQUYSUYHUWFVVP
          UVRVBVUGUYIVUHUYSUYHUWFWMZPJPUTZUWNUPZVVSUVRUPZVVTVJUOZUQUOZVMPJVWAVM
          VVPUVRVVRPJVWCVWAVVRVVSJVEVIZVVTVWAVWDVVTVVRJWPVVSUWNUYSUYHJWPUWNXCUW
          FBOUWNJMUIYMUUDZYJYKVWDVWAVVRJWPVVSUVRUYSUWFJWPUVRXCUYHBOUVRJMUIYMUUE
          ZYJYKUUFYNVVRPJVVTVWBUQUWNUXGMYOYOUYSUYHUWFUUAZVWDVVSUWNYPZVWDVWAVVTV
          JUULVVRPJWPUWNVWEYQZVVRPJVWAVVTVJUVRUWNMYOYOVWGVWDVVSUVRYPVWHVVRPJWPU
          VRVWFYQZVWIYRYRVWJUUGXRWBUUHUUIUUJUXQVVGUXSYLZUYBYLZVIVVIUXQVVEVWKVVF
          VWLUXQUXRKVVLVVNYSUXQUYALVVMVVOYSUUKUXSUYBUUMUUNUXQUVSUVPUXQUVSUXQBWP
          UVRIUYTVUHXDYGUXQUVPAUVPWPVEUWGUXPAKLUEUFUUOZWGYGYSUUPUUBUUQYNWCUWHEU
          URVEZUXFYOVEUXOUWBVBAVWNUWGAVUCVWNTEUUSWOVRUXEOUTUUTUVLUVAUVBVEUNOWPJ
          YTUOBUIWPJYTWJUVCUXFUMEYOUWBUYFUVDUVEYCUVFUVGUVHAUVOCVEZUVPWLVEUVQUWE
          UVMANXKVEZUYGVUMVWOAUYSVUCVWPSTNEJMQUVIXTUCUDCNFGHUAUBUVJXRAWPWLUVPUY
          QVWMWTUKBCDNEPOUVOUVPIJUWBRQUAUYFUIUJUVKXTUVN $.
      $}

      $( The multivariate degree of a product of polynomials is at most the sum
         of the degrees of the polynomials.  (Contributed by Stefan O'Rear,
         26-Mar-2015.) $)
      mdegmulle2 $p |- ( ph -> ( D ` ( F .x. G ) ) <_ ( J + K ) ) $=
        ( va vb cv ccnv cn cima cfn wcel cn0 cmap co crab ccnfld cgsu cmpt eqid
        mdegmullem ) AUEUGUHUIUJUKULUEUMHUNUOUPZBCDEFGUFVBUQUFUGURUOUSZHIJKLUEU
        FMNOPQRSTUAUBUCUDVBUTVCUTVA $.
    $}
  $}

  ${
    $d R r $.
    deg1fval.d $e |- D = ( deg1 ` R ) $.
    $( Relate univariate polynomial degree to multivariate.  (Contributed by
       Stefan O'Rear, 23-Mar-2015.)  (Revised by Mario Carneiro,
       7-Oct-2015.) $)
    deg1fval $p |- D = ( 1o mDeg R ) $=
      ( vr cdg1 cfv c1o cmdg co cvv wcel wceq cv oveq2 df-deg1 ovex fvmpt wn c0
      fvprc reldmmdeg ovprc2 eqtr4d pm2.61i eqtri ) ABEFZGBHIZCBJKZUFUGLDBGDMZH
      IUGJEUIBGHNDOGBHPQUHRUFSUGBETGBHUAUBUCUDUE $.
  $}

  ${
    deg1xrf.d $e |- D = ( deg1 ` R ) $.
    deg1xrf.p $e |- P = ( Poly1 ` R ) $.
    deg1xrf.b $e |- B = ( Base ` P ) $.
    $( Functionality of univariate polynomial degree, weak range.  (Contributed
       by Stefan O'Rear, 23-Mar-2015.) $)
    deg1xrf $p |- D : B --> RR* $=
      ( c1o cmpl co deg1fval eqid cps1 cfv ply1bas mdegxrf ) ABHDIJZDHBDEKQLCDD
      MNZAFRLGOP $.

    $( Closure of univariate polynomial degree in extended reals.  (Contributed
       by Stefan O'Rear, 23-Mar-2015.) $)
    deg1xrcl $p |- ( F e. B -> ( D ` F ) e. RR* ) $=
      ( cxr deg1xrf ffvelrni ) AIEBABCDFGHJK $.

    $( Sharp closure of univariate polynomial degree.  (Contributed by Stefan
       O'Rear, 23-Mar-2015.) $)
    deg1cl $p |- ( F e. B -> ( D ` F ) e. ( NN0 u. { -oo } ) ) $=
      ( c1o cmpl co deg1fval eqid cps1 cfv ply1bas mdegcl ) ABIDJKZDEIBDFLRMCDD
      NOZAGSMHPQ $.
  $}

  ${
    $d ph c $.  $d ph x y $.  $d B x y $.  $d I a b $.  $d I c $.  $d R b c $.
    $d R x y $.  $d S b c $.  $d S x y $.
    mdegpropd.b1 $e |- ( ph -> B = ( Base ` R ) ) $.
    mdegpropd.b2 $e |- ( ph -> B = ( Base ` S ) ) $.
    mdegpropd.p $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( x ( +g ` R ) y ) = ( x ( +g ` S ) y ) ) $.
    $( Property deduction for polynomial degree.  (Contributed by Stefan
       O'Rear, 28-Mar-2015.)  (Proof shortened by AV, 27-Jul-2019.) $)
    mdegpropd $p |- ( ph -> ( I mDeg R ) = ( I mDeg S ) ) $=
      ( vc vb va co cfv cv cima cmpt csupp eqid cmpl cbs ccnv cfn wcel cn0 cmap
      crab ccnfld cgsu c0g cxr csup cmdg mplbaspropd grpidpropd imaeq2d supeq1d
      cn clt oveq2d mpteq12dv mdegfval 3eqtr4g ) AKGEUANZUBOZLMPUCUSQUDUEMUFGUG
      NUHZUILPUJNRZKPZEUKOZSNZQZULUTUMZRKGFUANZUBOZVHVIFUKOZSNZQZULUTUMZRGEUNNZ
      GFUNNZAKVFVMVOVSABCDEFGHIJUOAULVLVRUTAVKVQVHAVJVPVISABCDEFHIJUPVAUQURVBVG
      VFVTVEEKLMVHGVJVTTVETVFTVJTVGTZVHTZVCVGVOWAVNFKLMVHGVPWATVNTVOTVPTWBWCVCV
      D $.
  $}

  $( Univariate polynomial degree respects protection.  (Contributed by Stefan
     O'Rear, 28-Mar-2015.) $)
  deg1fvi $p |- ( deg1 ` R ) = ( deg1 ` ( _I ` R ) ) $=
    ( cid cfv cdg1 cvv wcel wceq fvi fveq2d wn c0 wfn wf cpl1 00ply1bas deg1xrf
    cxr eqid ffn fvprc ax-mp fn0 mpbi 3eqtr4a pm2.61i eqcomi ) ABCZDCZADCZAEFZU
    HUIGUJUGADAEHIUJJZKDCZKUHUIULKLZULKGKQULMUMKULKNCZKULRUNROPKQULSUAULUBUCUKU
    GKDABTIADTUDUEUF $.

  ${
    $d ph x y $.  $d B x y $.  $d R x y $.  $d S x y $.
    deg1propd.b1 $e |- ( ph -> B = ( Base ` R ) ) $.
    deg1propd.b2 $e |- ( ph -> B = ( Base ` S ) ) $.
    deg1propd.p $e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
        ( x ( +g ` R ) y ) = ( x ( +g ` S ) y ) ) $.
    $( Property deduction for polynomial degree.  (Contributed by Stefan
       O'Rear, 28-Mar-2015.) $)
    deg1propd $p |- ( ph -> ( deg1 ` R ) = ( deg1 ` S ) ) $=
      ( c1o cmdg co cdg1 cfv mdegpropd eqid deg1fval 3eqtr4g ) AJEKLJFKLEMNZFMN
      ZABCDEFJGHIOSESPQTFTPQR $.
  $}

  ${
    deg1z.d $e |- D = ( deg1 ` R ) $.
    deg1z.p $e |- P = ( Poly1 ` R ) $.
    deg1z.z $e |- .0. = ( 0g ` P ) $.
    $( Degree of the zero univariate polynomial.  (Contributed by Stefan
       O'Rear, 23-Mar-2015.) $)
    deg1z $p |- ( R e. Ring -> ( D ` .0. ) = -oo ) $=
      ( c1o con0 wcel crg cfv cmnf wceq 1on cmpl co deg1fval eqid ply1mpl0 mpan
      mdeg0 ) HIJCKJDALMNOAHCPQZCHIDACERUCSZBCUCDUDFGTUBUA $.

    deg1nn0cl.b $e |- B = ( Base ` P ) $.
    $( Degree of a nonzero univariate polynomial.  (Contributed by Stefan
       O'Rear, 23-Mar-2015.)  (Revised by Mario Carneiro, 7-Oct-2015.) $)
    deg1nn0cl $p |- ( ( R e. Ring /\ F e. B /\ F =/= .0. ) ->
        ( D ` F ) e. NN0 ) $=
      ( c1o cmpl co deg1fval eqid ply1mpl0 cps1 cfv ply1bas mdegnn0cl ) ABKDLMZ
      DEKFBDGNUAOZCDUAFUBHIPCDDQRZAHUCOJST $.

    ${
      $d B x $.  $d D x $.  $d R x $.  $d .0. x $.
      $( Degree image of a set of polynomials which does not include zero.
         (Contributed by Stefan O'Rear, 28-Mar-2015.) $)
      deg1n0ima $p |- ( R e. Ring -> ( D " ( B \ { .0. } ) ) C_ NN0 ) $=
        ( vx crg wcel cv cfv cn0 csn cdif wss adantl cxr wral cima wa wne simpl
        eldifi eldifsni deg1nn0cl syl3anc ralrimiva wfun cdm wb wf deg1xrf ffun
        ax-mp difss fdmi sseqtr4i funimass4 mp2an sylibr ) DKLZJMZBNOLZJAEPZQZU
        AZBVHUBORZVDVFJVHVDVEVHLZUCVDVEALZVEEUDZVFVDVKUEVKVLVDVEAVGUFSVKVMVDVEA
        EUGSABCDVEEFGHIUHUIUJBUKZVHBULZRVJVIUMATBUNVNABCDFGIUOZATBUPUQVHAVOAVGU
        RATBVPUSUTJVHOBVAVBVC $.
    $}

    $( A polynomial is nonzero iff it has definite degree.  (Contributed by
       Stefan O'Rear, 23-Mar-2015.) $)
    deg1nn0clb $p |- ( ( R e. Ring /\ F e. B ) ->
        ( F =/= .0. <-> ( D ` F ) e. NN0 ) ) $=
      ( crg wcel wa cfv cn0 wn wceq cmnf cr eleq1d deg1nn0cl 3expia mnfnre neli
      wne nn0re mto deg1z adantr mtbiri fveq2 notbid syl5ibrcom necon2ad impbid
      ) DKLZEALZMZEFUEZEBNZOLZUPUQUSVAABCDEFGHIJUAUBURVAEFURVAPEFQZFBNZOLZPURVD
      ROLZVERSLRSUCUDRUFUGURVCROUPVCRQUQBCDFGHIUHUITUJVBVAVDVBUTVCOEFBUKTULUMUN
      UO $.

    $( A polynomial is zero iff it has negative degree.  (Contributed by Stefan
       O'Rear, 1-Apr-2015.) $)
    deg1lt0 $p |- ( ( R e. Ring /\ F e. B ) ->
      ( ( D ` F ) < 0 <-> F = .0. ) ) $=
      ( crg wcel wa cfv cc0 clt wbr wceq wne wn w3a cn0 nn0nlt0 3expia necon4ad
      deg1nn0cl syl deg1z mnflt0 syl6eqbr adantr fveq2 breq1d syl5ibrcom impbid
      cmnf ) DKLZEALZMZEBNZOPQZEFRZUSVAEFUQUREFSZVATZUQURVCUAUTUBLVDABCDEFGHIJU
      FUTUCUGUDUEUSVAVBFBNZOPQZUQVFURUQVEUPOPBCDFGHIUHUIUJUKVBUTVEOPEFBULUMUNUO
      $.

    ${
      $d A b d $.  $d B b $.  $d D b d $.  $d F b d $.  $d R b $.
      $d Y a b d $.  $d .0. b $.  $d a c $.
      deg1ldg.y $e |- Y = ( 0g ` R ) $.
      deg1ldg.a $e |- A = ( coe1 ` F ) $.
      $( A nonzero univariate polynomial always has a nonzero leading
         coefficient.  (Contributed by Stefan O'Rear, 23-Mar-2015.) $)
      deg1ldg $p |- ( ( R e. Ring /\ F e. B /\ F =/= .0. ) ->
          ( A ` ( D ` F ) ) =/= Y ) $=
        ( vb va wne cfv cn0 c0 vc vd crg wcel w3a cv c1o cmap co cmpt wceq wrex
        wa cmpl deg1fval eqid cps1 ply1bas psr1baslem tdeglem2 ply1mpl0 mdegldg
        fvcoe1 fveq1 fvex fvmpt fveq2d adantl eqtr4d neeq1d anbi1d ancom syl6bb
        3ad2antl2 rexbidva wf1o wfo df1o2 nn0ex 0ex mapsnf1o2 f1ofo eqeq1 fveq2
        wb anbi12d cbvexfo mp2b deg1nn0cl ceqsrexv syl bitrd mpbid ) EUCUDZFBUD
        ZFHQZUEZOUFZFRZGQZWRPSUGUHUIZTPUFZRZUJZRZFCRZUKZUMZOXAULZXFARZGQZOXABCU
        GEUNUIZEPUAFXDUGHGCEIUOXLUPZDEEUQRZBJXNUPLURMUAUSPUTDEXLHXMJKVAVBWQXIUB
        UFZXFUKZXOARZGQZUMZUBSULZXKWQXIXGXEARZGQZUMZOXAULZXTWQXHYCOXAWQWRXAUDZU
        MZXHYBXGUMYCYFWTYBXGYFWSYAGYFWSTWRRZARZYAWOWNYEWSYHUKWPAFBWRNVCVNYEYAYH
        UKWQYEXEYGAPWRXCYGXAXDTXBWRVDXDUPZTWRVEVFVGVHVIVJVKYBXGVLVMVOXASXDVPXAS
        XDVQYDXTWEPSUGXDTVRVSVTYIWAXASXDWBYCXSOUBXASXDXEXOUKZXGXPYBXRXEXOXFWCYJ
        YAXQGXEXOAWDVJWFWGWHVMWQXFSUDXTXKWEBCDEFHIJKLWIXRXKUBXFSXPXQXJGXOXFAWDV
        JWJWKWLWM $.

      deg1ldgn.r $e |- ( ph -> R e. Ring ) $.
      deg1ldgn.f $e |- ( ph -> F e. B ) $.
      deg1ldgn.x $e |- ( ph -> X e. NN0 ) $.
      deg1ldgn.e $e |- ( ph -> ( A ` X ) = Y ) $.
      $( An index at which a polynomial is zero, cannot be its degree.
         (Contributed by Stefan O'Rear, 23-Mar-2015.) $)
      deg1ldgn $p |- ( ph -> ( D ` F ) =/= X ) $=
        ( cfv wceq wne wa fveq2 adantl crg wcel adantr cn0 wi eleq1a syl imp wb
        deg1nn0clb syl2anc mpbird deg1ldg syl3anc eqnetrrd ex necon2d mpd ) AHB
        UAZIUBGDUAZHUCTAVFHVEIAVFHUBZVEIUCAVGUDZVFBUAZVEIVGVIVEUBAVFHBUEUFVHFUG
        UHZGCUHZGJUCZVIIUCAVJVGQUIAVKVGRUIVHVLVFUJUHZAVGVMAHUJUHVGVMUKSHUJVFULU
        MUNAVLVMUOZVGAVJVKVNQRCDEFGJKLMNUPUQUIURBCDEFGIJKLMNOPUSUTVAVBVCVD $.

    $}

    ${
      deg1ldgdomn.e $e |- E = ( RLReg ` R ) $.
      deg1ldgdomn.a $e |- A = ( coe1 ` F ) $.
      $( A nonzero univariate polynomial over a domain always has a
         nonzero-divisor leading coefficient.  (Contributed by Stefan O'Rear,
         28-Mar-2015.) $)
      deg1ldgdomn $p |- ( ( R e. Domn /\ F e. B /\ F =/= .0. ) ->
          ( A ` ( D ` F ) ) e. E ) $=
        ( wcel wne cfv cn0 eqid syl3an1 cdomn w3a cbs c0g simp1 wf 3ad2ant2 crg
        coe1f domnring deg1nn0cl ffvelrnd deg1ldg domnrrg syl3anc ) EUAOZGBOZGH
        PZUBZUPGCQZAQZEUCQZOVAEUDQZPZVAFOUPUQURUEUSRVBUTAUQUPRVBAUFURABDEGVBNLJ
        VBSZUIUGUPEUHOZUQURUTROEUJZBCDEGHIJKLUKTULUPVFUQURVDVGABCDEGVCHIJKLVCSZ
        NUMTVBEFVAVCVEMVHUNUO $.
    $}
  $}

  ${
    $d A x y $.  $d B y $.  $d F y $.  $d G x y $.  $d R y $.  $d .0. b x y $.
    $d a b $.
    deg1leb.d $e |- D = ( deg1 ` R ) $.
    deg1leb.p $e |- P = ( Poly1 ` R ) $.
    deg1leb.b $e |- B = ( Base ` P ) $.
    deg1leb.y $e |- .0. = ( 0g ` R ) $.
    deg1leb.a $e |- A = ( coe1 ` F ) $.
    $( Property of being of limited degree.  (Contributed by Stefan O'Rear,
       23-Mar-2015.) $)
    deg1leb $p |- ( ( F e. B /\ G e. RR* ) -> ( ( D ` F ) <_ G <->
          A. x e. NN0 ( G < x -> ( A ` x ) = .0. ) ) ) $=
      ( vy vb cfv cn0 c0 wceq va wcel cxr wa cle wbr cv c1o cmap co cmpt clt wi
      wral cmpl deg1fval eqid cps1 ply1bas psr1baslem tdeglem2 mdegleb wf1o wfo
      wb df1o2 nn0ex 0ex mapsnf1o2 f1ofo breq2 fveq2 eqeq1d imbi12d cbvfo fveq1
      mp2b fvex fvmpt fveq2d adantl fvcoe1 adantlr eqtr4d imbi2d syl5bbr bitr4d
      ralbidva ) GCUBZHUCUBZUDZGDQHUEUFHOUGZPRUHUIUJZSPUGZQZUKZQZULUFZWLGQZITZU
      MZOWMUNZHAUGZULUFZXCBQZITZUMZARUNZOWMCDUHFUOUJZFPUAGHWPUHIDFJUPXIUQEFFURQ
      ZCKXJUQLUSMUAUTPVAVBXHWRWQBQZITZUMZOWMUNZWKXBWMRWPVCWMRWPVDXNXHVEPRUHWPSV
      FVGVHWPUQZVIWMRWPVJXMXGOAWMRWPWQXCTZWRXDXLXFWQXCHULVKXPXKXEIWQXCBVLVMVNVO
      VQWKXMXAOWMWKWLWMUBZUDZXLWTWRXRXKWSIXRXKSWLQZBQZWSXQXKXTTWKXQWQXSBPWLWOXS
      WMWPSWNWLVPXOSWLVRVSVTWAWIXQWSXTTWJBGCWLNWBWCWDVMWEWHWFWG $.

    $( Value of the univariate degree as a supremum.  (Contributed by Stefan
       O'Rear, 29-Mar-2015.)  (Revised by AV, 25-Jul-2019.) $)
    deg1val $p |- ( F e. B -> ( D ` F ) =
          sup ( ( A supp .0. ) , RR* , < ) ) $=
      ( vx vy cfv c1o co cima ccnv cvv wcel cn0 cmap c0 cmpt csupp cxr clt csup
      cmpl deg1fval eqid cps1 ply1bas psr1baslem tdeglem2 mdegval csn cdif ccom
      cv wceq c0g fvex eqeltri suppimacnv mpan2 imaeq2d imaco syl6eqr df1o2 0ex
      nn0ex mapsncnv coe1fval2 cnvco cocnvcnv1 eqtri syl6req imaeq1d eqtrd cco1
      cnveqd wa eqcomd mp2an syl6eq supeq1d ) FBUAZFCOMUBPUCQZUDMVAOUEZFGUFQZRZ
      UGUHUIAGUFQZUGUHUIWJBCPEUJQZEMNFWKPGCEHUKWOULDEEUMOZBIWPULJUNKNUOMUPUQWIU
      GWMWNUHWIWMASZTGURUSZRZWNWIWMWKFSZUTZWRRZWSWIWMWKWTWRRZRXBWIWLXCWKWIGTUAZ
      WLXCVBGEVCOTKEVCVDVEZFBTGVFVGVHWKWTWRVIVJWIXAWQWRWIWQFWKSZUTZSZXAWIAXGNAB
      DEFXFLJIMNUBPWKUDVKVMVLWKULVNVOWCXHXFSWTUTXAFXFVPWKWTVQVRVSVTWAATUAZXDWSW
      NVBAFWBOTLFWBVDVEXEXIXDWDWNWSATTGVFWEWFWGWHWA $.

    $d D x $.  $d F x $.
    $( If the degree of a univariate polynomial is less than some index, then
       that coefficient must be zero.  (Contributed by Stefan O'Rear,
       23-Mar-2015.) $)
    deg1lt $p |- ( ( F e. B /\ G e. NN0 /\ ( D ` F ) < G ) ->
        ( A ` G ) = .0. ) $=
      ( vx wcel cn0 cfv clt wbr wceq w3a simp3 cv wi wral cle deg1xrcl 3ad2ant1
      simp2 cxr xrleid wb simp1 deg1leb syl2anc mpbid breq2 fveq2 eqeq1d rspcva
      syl imbi12d mpd ) FBOZGPOZFCQZGRSZUAZVGGAQZHTZVDVEVGUBVHVEVFNUCZRSZVKAQZH
      TZUDZNPUEZVGVJUDZVDVEVGUIVHVFVFUFSZVPVHVFUJOZVRVDVEVSVGBCDEFIJKUGUHZVFUKV
      AVHVDVSVRVPULVDVEVGUMVTNABCDEFVFHIJKLMUNUOUPVOVQNGPVKGTZVLVGVNVJVKGVFRUQW
      AVMVIHVKGAURUSVBUTUOVC $.

    $( Conversely, a nonzero coefficient sets a lower bound on the degree.
       (Contributed by Stefan O'Rear, 23-Mar-2015.) $)
    deg1ge $p |- ( ( F e. B /\ G e. NN0 /\ ( A ` G ) =/= .0. ) ->
        G <_ ( D ` F ) ) $=
      ( wcel cn0 cfv wne cle wbr cxr wa wn wceq wb deg1xrcl nn0re rexrd xrltnle
      clt syl2an deg1lt 3expia sylbird necon1ad 3impia ) FBNZGONZGAPZHQGFCPZRSZ
      UPUQUAZUTURHVAUTUBZUSGUISZURHUCZUPUSTNGTNVCVBUDUQBCDEFIJKUEUQGGUFUGUSGUHU
      JUPUQVCVDABCDEFGHIJKLMUKULUMUNUO $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x y I $.  $d x y J $.  $d y ph $.  $d x y R $.
    $d x .xb $.  $d x y .x. $.
    coe1mul3.s $e |- Y = ( Poly1 ` R ) $.
    coe1mul3.t $e |- .xb = ( .r ` Y ) $.
    coe1mul3.u $e |- .x. = ( .r ` R ) $.
    coe1mul3.b $e |- B = ( Base ` Y ) $.
    coe1mul3.d $e |- D = ( deg1 ` R ) $.
    ${
      coe1mul3.r $e |- ( ph -> R e. Ring ) $.
      coe1mul3.f1 $e |- ( ph -> F e. B ) $.
      coe1mul3.f2 $e |- ( ph -> I e. NN0 ) $.
      coe1mul3.f3 $e |- ( ph -> ( D ` F ) <_ I ) $.
      coe1mul3.g1 $e |- ( ph -> G e. B ) $.
      coe1mul3.g2 $e |- ( ph -> J e. NN0 ) $.
      coe1mul3.g3 $e |- ( ph -> ( D ` G ) <_ J ) $.
      $( The coefficient vector of multiplication in the univariate polynomial
         ring, at indices high enough that at most one component can be active
         in the sum.  (Contributed by Stefan O'Rear, 25-Mar-2015.) $)
      coe1mul3 $p |- ( ph -> ( ( coe1 ` ( F .xb G ) ) ` ( I + J ) ) =
            ( ( ( coe1 ` F ) ` I ) .x. ( ( coe1 ` G ) ` J ) ) ) $=
        ( vx vy caddc cco1 cfv cn0 cc0 cfz cmin cmpt cgsu crg wcel wceq coe1mul
        co cv syl3anc fveq1d nn0addcld oveq2 oveq1 fveq2d oveq2d mpteq12dv eqid
        ovex fvmpt syl cbs cvv c0g cmnd ringmnd ovexd cle wbr cr nn0red syl2anc
        nn0addge1 wa wb fznn0 mpbir2and adantr wf coe1f elfznn0 syl2an fznn0sub
        ffvelrn ringcl fmptd csn wne eldifsn clt wo adantl lttri2d ad2antrr cxr
        cdif deg1xrcl rexrd resubcld ltadd1d ltaddsub2d biimpa xrlelttrd deg1lt
        bitrd ringrz eqtrd simpr oveq1d ringlz jaodan ex sylbid sylan2b suppss2
        impr gsumpt fveq2 oveq12d nn0cnd pncan2d 3eqtrd ) AIJUFUSZGHEUSUGUHZUHY
        NUDUIDUEUJUDUTZUKUSZUEUTZGUGUHZUHZYPYRULUSZHUGUHZUHZFUSZUMZUNUSZUMZUHZD
        UEUJYNUKUSZYTYNYRULUSZUUBUHZFUSZUMZUNUSZIYSUHZJUUBUHZFUSZAYNYOUUGADUOUP
        ZGBUPZHBUPZYOUUGUQQRUAUEBDEFUDGHKLMNOURVAVBAYNUIUPZUUHUUNUQAIJSUBVCZUDY
        NUUFUUNUIUUGYPYNUQZUUEUUMDUNUVCUEYQUUDUUIUULYPYNUJUKVDUVCUUCUUKYTFUVCUU
        AUUJUUBYPYNYRULVEVFVGVHVGUUGVIDUUMUNVJVKVLAUUNIUUMUHZUUOYNIULUSZUUBUHZF
        USZUUQAUUIDVMUHZUUMDVNIDVOUHZUVHVIZUVIVIZAUURDVPUPQDVQVLAUJYNUKVRZAIUUI
        UPZIUIUPZIYNVSVTZSAIWAUPZJUIUPUVOAISWBZUBIJWDWCAUVAUVMUVNUVOWEWFUVBIYNW
        GVLWHZAUEUUIUULUVHUUMAYRUUIUPZWEZUURYTUVHUPZUUKUVHUPZUULUVHUPAUURUVSQWI
        ZAUIUVHYSWJZYRUIUPZUWAUVSAUUSUWDRYSBKDGUVHYSVIZOLUVJWKVLYRYNWLZUIUVHYRY
        SWOWMZAUIUVHUUBWJZUUJUIUPZUWBUVSAUUTUWIUAUUBBKDHUVHUUBVIZOLUVJWKVLYRUJY
        NWNZUIUVHUUJUUBWOWMZUVHDFYTUUKUVJNWPVAUUMVIZWQAUUIUULUEVNIWRZUVIYRUUIUW
        OXGUPAUVSYRIWSZWEUULUVIUQZYRUUIIWTAUVSUWPUWQUVTUWPYRIXAVTZIYRXAVTZXBZUW
        QUVTYRIUVTYRUVSUWEAUWGXCZWBZAUVPUVSUVQWIZXDUVTUWTUWQUVTUWRUWQUWSUVTUWRW
        EZUULYTUVIFUSZUVIUXDUUKUVIYTFUXDUUTUWJHCUHZUUJXAVTUUKUVIUQAUUTUVSUWRUAX
        EUVTUWJUWRUVSUWJAUWLXCWIUXDUXFJUUJAUXFXFUPZUVSUWRAUUTUXGUABCKDHPLOXHVLX
        EAJXFUPUVSUWRAJAJUBWBZXIXEUVTUUJXFUPUWRUVTUUJUVTYNYRAYNWAUPUVSAYNUVBWBW
        IZUXBXJXIWIAUXFJVSVTUVSUWRUCXEUVTUWRJUUJXAVTZUVTUWRYRJUFUSYNXAVTUXJUVTY
        RIJUXBUXCAJWAUPUVSUXHWIZXKUVTYRJYNUXBUXKUXIXLXPXMXNUUBBCKDHUUJUVIPLOUVK
        UWKXOVAVGUVTUXEUVIUQZUWRUVTUURUWAUXLUWCUWHUVHDFYTUVIUVJNUVKXQWCWIXRUVTU
        WSWEZUULUVIUUKFUSZUVIUXMYTUVIUUKFUXMUUSUWEGCUHZYRXAVTYTUVIUQAUUSUVSUWSR
        XEUVTUWEUWSUXAWIUXMUXOIYRAUXOXFUPZUVSUWSAUUSUXPRBCKDGPLOXHVLXEAIXFUPUVS
        UWSAIUVQXIXEUVTYRXFUPUWSUVTYRUXBXIWIAUXOIVSVTUVSUWSTXEUVTUWSXSXNYSBCKDG
        YRUVIPLOUVKUWFXOVAXTUVTUXNUVIUQZUWSUVTUURUWBUXQUWCUWMUVHDFUUKUVIUVJNUVK
        YAWCWIXRYBYCYDYGYEUVLYFYHAUVMUVDUVGUQUVRUEIUULUVGUUIUUMYRIUQZYTUUOUUKUV
        FFYRIYSYIUXRUUJUVEUUBYRIYNULVDVFYJUWNUUOUVFFVJVKVLAUVFUUPUUOFAUVEJUUBAI
        JAISYKAJUBYKYLVFVGYMYM $.
    $}

    coe1mul4.z $e |- .0. = ( 0g ` Y ) $.
    coe1mul4.r $e |- ( ph -> R e. Ring ) $.
    coe1mul4.f1 $e |- ( ph -> F e. B ) $.
    coe1mul4.f2 $e |- ( ph -> F =/= .0. ) $.
    coe1mul4.g1 $e |- ( ph -> G e. B ) $.
    coe1mul4.g2 $e |- ( ph -> G =/= .0. ) $.
    $( Value of the "leading" coefficient of a product of two nonzero
       polynomials.  This will fail to actually be the leading coefficient only
       if it is zero (requiring the basic ring to contain zero divisors).
       (Contributed by Stefan O'Rear, 25-Mar-2015.) $)
    coe1mul4 $p |- ( ph -> ( ( coe1 ` ( F .xb G ) ) `
            ( ( D ` F ) + ( D ` G ) ) ) = ( ( ( coe1 ` F ) ` ( D ` F ) ) .x.
            ( ( coe1 ` G ) ` ( D ` G ) ) ) ) $=
      ( cfv crg wcel wne cn0 deg1nn0cl syl3anc nn0red leidd coe1mul3 ) ABCDEFGH
      GCUBZHCUBZIKLMNOQRADUCUDZGBUDGJUEULUFUDQRSBCIDGJOKPNUGUHZAULAULUOUIUJTAUN
      HBUDHJUEUMUFUDQTUABCIDHJOKPNUGUHZAUMAUMUPUIUJUK $.
  $}

  ${
    deg1addle.y $e |- Y = ( Poly1 ` R ) $.
    deg1addle.d $e |- D = ( deg1 ` R ) $.
    deg1addle.r $e |- ( ph -> R e. Ring ) $.

    ${
      deg1addle.b $e |- B = ( Base ` Y ) $.
      deg1addle.p $e |- .+ = ( +g ` Y ) $.
      deg1addle.f $e |- ( ph -> F e. B ) $.
      deg1addle.g $e |- ( ph -> G e. B ) $.
      $( The degree of a sum is at most the maximum of the degrees of the
         factors.  (Contributed by Stefan O'Rear, 26-Mar-2015.) $)
      deg1addle $p |- ( ph -> ( D ` ( F .+ G ) ) <_
            if ( ( D ` F ) <_ ( D ` G ) , ( D ` G ) , ( D ` F ) ) ) $=
        ( c1o con0 eqid wcel ply1bascl2 cmpl cbs cfv deg1fval 1on a1i ply1plusg
        co syl mdegaddle ) APEUAUHZUBUCZCDEFGPQUKUKRZCEJUDPQSAUEUFKULRDEUKHIUMM
        UGAFBSFULSNBHEFILTUIAGBSGULSOBHEGILTUIUJ $.

      ${
        deg1addle2.l1 $e |- ( ph -> L e. RR* ) $.
        deg1addle2.l2 $e |- ( ph -> ( D ` F ) <_ L ) $.
        deg1addle2.l3 $e |- ( ph -> ( D ` G ) <_ L ) $.
        $( If both factors have degree bounded by ` L ` , then the sum of the
           polynomials also has degree bounded by ` L ` .  (Contributed by
           Stefan O'Rear, 1-Apr-2015.) $)
        deg1addle2 $p |- ( ph -> ( D ` ( F .+ G ) ) <_ L ) $=
          ( wcel co cfv cle wbr cif cxr crg ply1ring syl ringacl deg1xrcl ifcld
          syl3anc deg1addle wa wb xrmaxle mpbir2and xrletrd ) AFGDUAZCUBZFCUBZG
          CUBZUCUDZVCVBUEZHAUTBTZVAUFTAIUGTZFBTZGBTZVFAEUGTVGLIEJUHUIOPBDIFGMNU
          JUMBCIEUTKJMUKUIAVDVCVBUFAVIVCUFTZPBCIEGKJMUKUIZAVHVBUFTZOBCIEFKJMUKU
          IZULQABCDEFGIJKLMNOPUNAVEHUCUDZVBHUCUDZVCHUCUDZRSAVLVJHUFTVNVOVPUOUPV
          MVKQVBVCHUQUMURUS $.
      $}

      deg1add.l $e |- ( ph -> ( D ` G ) < ( D ` F ) ) $.
      $( Exact degree of a sum of two polynomials of unequal degree.
         (Contributed by Stefan O'Rear, 28-Mar-2015.) $)
      deg1add $p |- ( ph -> ( D ` ( F .+ G ) ) = ( D ` F ) ) $=
        ( cfv wcel syl eqid co wceq cle wbr cif deg1addle clt wn cxr wb xrltnle
        deg1xrcl syl2anc iffalsed breqtrd cn0 cco1 c0g wne crg ply1ring ringacl
        mpbid syl3anc nltmnf wa adantr fveq2 deg1z sylan9eqr necon3bd deg1nn0cl
        cmnf ex mpd cplusg coe1addfv syl31anc deg1lt oveq2d cgrp cbs ringgrp wf
        coe1f ffvelrnd grprid 3eqtrd deg1ldg eqnetrd deg1ge xrletri3 mpbir2and
        ) AFGDUAZCQZFCQZUBZWOWPUCUDZWPWOUCUDZAWOWPGCQZUCUDZWTWPUEWPUCABCDEFGHIJ
        KLMNOUFAXAWTWPAWTWPUGUDZXAUHZPAWTUIRZWPUIRZXBXCUJAGBRZXDOBCHEGJILULSZAF
        BRZXENBCHEFJILULSZWTWPUKUMVCUNUOAWNBRZWPUPRZWPWNUQQZQZEURQZUSWSAHUTRZXH
        XFXJAEUTRZXOKHEIVASNOBDHFGLMVBVDZAXPXHFHURQZUSZXKKNAWTVMUGUDZUHZXSAXDYA
        XGWTVESAXTFXRAFXRUBZXTAYBVFWTWPVMUGAXBYBPVGYBAWPXRCQZVMFXRCVHAXPYCVMUBK
        CHEXRJIXRTZVISVJUOVNVKVOZBCHEFXRJIYDLVLVDZAXMWPFUQQZQZXNAXMYHWPGUQQZQZE
        VPQZUAZYHXNYKUAZYHAXPXHXFXKXMYLUBKNOYFBYKDEFGWPHILMYKTZVQVRAYJXNYHYKAXF
        XKXBYJXNUBOYFPYIBCHEGWPXNJILXNTZYITVSVDVTAEWARZYHEWBQZRYMYHUBAXPYPKEWCS
        AUPYQWPYGAXHUPYQYGWDNYGBHEFYQYGTZLIYQTZWESYFWFYQYKEYHXNYSYNYOWGUMWHAXPX
        HXSYHXNUSKNYEYGBCHEFXNXRJIYDLYOYRWIVDWJXLBCHEWNWPXNJILYOXLTWKVDAWOUIRZX
        EWQWRWSVFUJAXJYTXQBCHEWNJILULSXIWOWPWLUMWM $.
    $}

    ${
      deg1vscale.b $e |- B = ( Base ` Y ) $.
      deg1vscale.k $e |- K = ( Base ` R ) $.
      deg1vscale.p $e |- .x. = ( .s ` Y ) $.
      deg1vscale.f $e |- ( ph -> F e. K ) $.
      deg1vscale.g $e |- ( ph -> G e. B ) $.
      $( The degree of a scalar times a polynomial is at most the degree of the
         original polynomial.  (Contributed by Stefan O'Rear, 26-Mar-2015.) $)
      deg1vscale $p |- ( ph -> ( D ` ( F .x. G ) ) <_ ( D ` G ) ) $=
        ( c1o con0 eqid cmpl co deg1fval wcel 1on a1i cps1 cfv ply1bas ply1vsca
        mdegvscale ) ABCDEFGRHSRDUAUBZULTZCDKUCRSUDAUEUFLIDDUGUHZBJUNTMUINDULEI
        JUMOUJPQUK $.
    $}

    ${
      deg1vsca.b $e |- B = ( Base ` Y ) $.
      deg1vsca.e $e |- E = ( RLReg ` R ) $.
      deg1vsca.p $e |- .x. = ( .s ` Y ) $.
      deg1vsca.f $e |- ( ph -> F e. E ) $.
      deg1vsca.g $e |- ( ph -> G e. B ) $.
      $( The degree of a scalar times a polynomial is exactly the degree of the
         original polynomial when the scalar is not a zero divisor.
         (Contributed by Stefan O'Rear, 28-Mar-2015.) $)
      deg1vsca $p |- ( ph -> ( D ` ( F .x. G ) ) = ( D ` G ) ) $=
        ( c1o con0 eqid cmpl co deg1fval wcel 1on a1i cps1 cfv ply1bas ply1vsca
        mdegvsca ) ABCDEFGHRSRDUAUBZULTZCDKUCRSUDAUEUFLIDDUGUHZBJUNTMUINDULEIJU
        MOUJPQUK $.
    $}

    ${
      deg1invg.b $e |- B = ( Base ` Y ) $.
      deg1invg.n $e |- N = ( invg ` Y ) $.
      deg1invg.f $e |- ( ph -> F e. B ) $.
      $( The degree of the negated polynomial is the same as the original.
         (Contributed by Stefan O'Rear, 28-Mar-2015.) $)
      deg1invg $p |- ( ph -> ( D ` ( N ` F ) ) = ( D ` F ) ) $=
        ( cfv cur wcel wceq syl eqid fveq2d cid cminusg cvsca co clmod ply1lmod
        crg ply1sca2 grpinvfvi lmodvneg1 syl2anc crlreg fvi cui 1unit unitnegcl
        wss unitrrg sseldd eqeltrd deg1vsca eqtr3d ) ADUANZONZDUBNZNZEGUCNZUDZC
        NEFNZCNECNAVHVICAGUEPZEBPVHVIQADUGPZVJJGDHUFRMVGVDVCVEFBGEKLGDHUHVGSZVD
        SDVEVESZUIUJUKTABCDVGDULNZVFEGHIJKVNSZVLAVFDONZVENZVNAVDVPVEAVCDOAVKVCD
        QJDUGUMRTTADUNNZVNVQAVKVRVNUQJDVRVNVOVRSZURRAVKVPVRPZVQVRPJAVKVTJDVRVPV
        SVPSUORDVRVEVPVSVMUPUKUSUTMVAVB $.
    $}

    ${
      deg1suble.b $e |- B = ( Base ` Y ) $.
      deg1suble.m $e |- .- = ( -g ` Y ) $.
      deg1suble.f $e |- ( ph -> F e. B ) $.
      deg1suble.g $e |- ( ph -> G e. B ) $.
      $( The degree of a difference of polynomials is bounded by the maximum of
         degrees.  (Contributed by Stefan O'Rear, 26-Mar-2015.) $)
      deg1suble $p |- ( ph -> ( D ` ( F .- G ) ) <_
            if ( ( D ` F ) <_ ( D ` G ) , ( D ` G ) , ( D ` F ) ) ) $=
        ( cfv co cle wbr wcel cminusg cplusg cif eqid cgrp crg ply1ring ringgrp
        3syl grpinvcl syl2anc deg1addle grpsubval fveq2d deg1invg eqcomd breq2d
        wceq ifbieq1d 3brtr4d ) AEFHUAPZPZHUBPZQZCPECPZVBCPZRSZVFVEUCEFGQZCPVEF
        CPZRSZVIVEUCRABCVCDEVBHIJKLVCUDZNAHUETZFBTZVBBTADUFTHUFTVLKHDIUGHUHUIOB
        HVAFLVAUDZUJUKULAVHVDCAEBTVMVHVDURNOBVCHVAGEFLVKVNMUMUKUNAVJVGVIVFVEAVI
        VFVERAVFVIABCDFVAHIJKLVNOUOUPZUQVOUSUT $.

      deg1sub.l $e |- ( ph -> ( D ` G ) < ( D ` F ) ) $.
      $( Exact degree of a difference of two polynomials of unequal degree.
         (Contributed by Stefan O'Rear, 28-Mar-2015.) $)
      deg1sub $p |- ( ph -> ( D ` ( F .- G ) ) = ( D ` F ) ) $=
        ( co cfv wcel eqid cminusg cplusg grpsubval syl2anc fveq2d crg ply1ring
        wceq cgrp ringgrp 3syl grpinvcl clt deg1invg eqbrtrd deg1add eqtrd ) AE
        FGQZCREFHUARZRZHUBRZQZCRECRZAURVBCAEBSFBSZURVBUHNOBVAHUSGEFLVATZUSTZMUC
        UDUEABCVADEUTHIJKLVENAHUISZVDUTBSADUFSHUFSVGKHDIUGHUJUKOBHUSFLVFULUDAUT
        CRFCRVCUMABCDFUSHIJKLVFOUNPUOUPUQ $.
    $}

    ${
      deg1mulle2.b $e |- B = ( Base ` Y ) $.
      deg1mulle2.t $e |- .x. = ( .r ` Y ) $.
      deg1mulle2.f $e |- ( ph -> F e. B ) $.
      deg1mulle2.g $e |- ( ph -> G e. B ) $.
      deg1mulle2.j1 $e |- ( ph -> J e. NN0 ) $.
      deg1mulle2.k1 $e |- ( ph -> K e. NN0 ) $.
      deg1mulle2.j2 $e |- ( ph -> ( D ` F ) <_ J ) $.
      deg1mulle2.k2 $e |- ( ph -> ( D ` G ) <_ K ) $.
      $( Produce a bound on the product of two univariate polynomials given
         bounds on the factors.  (Contributed by Stefan O'Rear,
         26-Mar-2015.) $)
      deg1mulle2 $p |- ( ph -> ( D ` ( F .x. G ) ) <_ ( J + K ) ) $=
        ( c1o con0 cmpl co eqid deg1fval wcel 1on a1i cps1 cfv ply1bas ply1mulr
        mdegmulle2 ) ABCDEFGUBHIUCUBDUDUEZUPUFZCDLUGUBUCUHAUIUJMJDDUKULZBKURUFN
        UMDUPEJKUQOUNPQRSTUAUO $.
    $}
  $}

  ${
    deg1sublt.d $e |- D = ( deg1 ` R ) $.
    deg1sublt.p $e |- P = ( Poly1 ` R ) $.
    deg1sublt.b $e |- B = ( Base ` P ) $.
    deg1sublt.m $e |- .- = ( -g ` P ) $.
    deg1sublt.l $e |- ( ph -> L e. NN0 ) $.
    deg1sublt.r $e |- ( ph -> R e. Ring ) $.
    deg1sublt.fb $e |- ( ph -> F e. B ) $.
    deg1sublt.fd $e |- ( ph -> ( D ` F ) <_ L ) $.
    deg1sublt.gb $e |- ( ph -> G e. B ) $.
    deg1sublt.gd $e |- ( ph -> ( D ` G ) <_ L ) $.
    deg1sublt.a $e |- A = ( coe1 ` F ) $.
    deg1sublt.c $e |- C = ( coe1 ` G ) $.
    deg1sublt.eq $e |- ( ph -> ( ( coe1 ` F ) ` L ) = ( ( coe1 ` G ) ` L ) ) $.
    $( Subtraction of two polynomials limited to the same degree with the same
       leading coefficient gives a polynomial with a smaller degree.
       (Contributed by Stefan O'Rear, 26-Mar-2015.) $)
    deg1sublt $p |- ( ph -> ( D ` ( F .- G ) ) < L ) $=
      ( co cfv wceq wn clt wbr wo cco1 c0g eqid cgrp wcel ply1ring ringgrp 3syl
      crg grpsubcl syl3anc csg cn0 coe1subfv syl31anc oveq1d cbs coe1f ffvelrnd
      syl wf grpsubid syl2anc 3eqtrd deg1ldgn neneqd cle cif cxr deg1xrcl ifcld
      nn0red rexrd deg1suble wa wb xrmaxle mpbir2and xrletrd xrleloe mpbid sylc
      orel2 ) AHIKUEZEUFZJUGZUHWPJUIUJZWQUKZWRAWPJAWOULUFZCEFGWOJGUMUFZFUMUFZLM
      XBUNNXAUNZWTUNQAFUOUPZHCUPZICUPZWOCUPZAGUTUPZFUTUPXDQFGMUQFURUSRTCFKHINOV
      AVBZPAJWTUFZJHULUFUFZJIULUFZUFZGVCUFZUEZXMXMXNUEZXAAXHXEXFJVDUPXJXOUGQRTP
      CGHIKXNJFMNOXNUNZVEVFAXKXMXMXNUDVGAGUOUPZXMGVHUFZUPXPXAUGAXHXRQGURVKAVDXS
      JXLAXFVDXSXLVLTXLCFGIXSXLUNNMXSUNZVIVKPVJXSGXNXMXAXTXCXQVMVNVOVPVQAWPJVRU
      JZWSAWPHEUFZIEUFZVRUJZYCYBVSZJAXGWPVTUPZXICEFGWOLMNWAVKZAYDYCYBVTAXFYCVTU
      PZTCEFGILMNWAVKZAXEYBVTUPZRCEFGHLMNWAVKZWBAJAJPWCWDZACEGHIKFMLQNORTWEAYEJ
      VRUJZYBJVRUJZYCJVRUJZSUAAYJYHJVTUPZYMYNYOWFWGYKYIYLYBYCJWHVBWIWJAYFYPYAWS
      WGYGYLWPJWKVNWLWQWRWNWM $.
  $}

  ${
    deg1le0.d $e |- D = ( deg1 ` R ) $.
    deg1le0.p $e |- P = ( Poly1 ` R ) $.
    deg1le0.b $e |- B = ( Base ` P ) $.
    deg1le0.a $e |- A = ( algSc ` P ) $.
    $( A polynomial has nonpositive degree iff it is a constant.  (Contributed
       by Stefan O'Rear, 29-Mar-2015.) $)
    deg1le0 $p |- ( ( R e. Ring /\ F e. B ) -> ( ( D ` F ) <_ 0 <->
          F = ( A ` ( ( coe1 ` F ) ` 0 ) ) ) ) $=
      ( crg wcel wa cfv cc0 cle c1o wceq con0 eqid wbr csn cxp cco1 co deg1fval
      cmpl 1on a1i simpl cps1 ply1bas ply1ascl simpr mdegle0 cn0 coe1fv sylancl
      0nn0 fveq2d eqeq2d bitr4d ) EKLZFBLZMZFCNOPUAFQOUBUCFNZANZRFOFUDNZNZANZRV
      EABCEFQSQEUGUEZVKTCEGUFQSLVEUHUIVCVDUJDEEUKNZBHVLTIULADEHJUMVCVDUNZUOVEVJ
      VGFVEVIVFAVEVDOUPLVIVFRVMUSVHFOBVHTUQURUTVAVB $.
  $}

  ${
    deg1sclle.d $e |- D = ( deg1 ` R ) $.
    deg1sclle.p $e |- P = ( Poly1 ` R ) $.
    deg1sclle.k $e |- K = ( Base ` R ) $.
    deg1sclle.a $e |- A = ( algSc ` P ) $.
    $( A scalar polynomial has nonpositive degree.  (Contributed by Stefan
       O'Rear, 29-Mar-2015.) $)
    deg1sclle $p |- ( ( R e. Ring /\ F e. K ) -> ( D ` ( A ` F ) ) <_ 0 ) $=
      ( crg wcel wa cfv cc0 cle wbr cco1 wceq ply1sclid fveq2d cbs wb ply1sclcl
      eqid deg1le0 syldan mpbird ) DKLZEFLZMZEANZBNOPQZULOULRNNZANSZUKEUNAACDFE
      HJITUAUIUJULCUBNZLUMUOUCAUPCDEFHJIUPUEZUDAUPBCDULGHUQJUFUGUH $.

    deg1scl.z $e |- .0. = ( 0g ` R ) $.
    $( A nonzero scalar polynomial has zero degree.  (Contributed by Stefan
       O'Rear, 29-Mar-2015.) $)
    deg1scl $p |- ( ( R e. Ring /\ F e. K /\ F =/= .0. ) ->
        ( D ` ( A ` F ) ) = 0 ) $=
      ( crg wcel wne w3a cfv cc0 3adant3 eqid cle wbr wceq deg1sclle cn0 wb cbs
      c0g simp1 ply1sclcl ply1scln0 deg1nn0cl syl3anc nn0le0eq0 syl mpbid ) DMN
      ZEFNZEGOZPZEAQZBQZRUAUBZVBRUCZUQURVCUSABCDEFHIJKUDSUTVBUENZVCVDUFUTUQVACU
      GQZNZVACUHQZOVEUQURUSUIUQURVGUSAVFCDEFIKJVFTZUJSACDFEVHGIKLVHTZJUKVFBCDVA
      VHHIVJVIULUMVBUNUOUP $.
  $}

  ${
    deg1mul2.d $e |- D = ( deg1 ` R ) $.
    deg1mul2.p $e |- P = ( Poly1 ` R ) $.
    deg1mul2.e $e |- E = ( RLReg ` R ) $.
    deg1mul2.b $e |- B = ( Base ` P ) $.
    deg1mul2.t $e |- .x. = ( .r ` P ) $.
    deg1mul2.z $e |- .0. = ( 0g ` P ) $.
    deg1mul2.r $e |- ( ph -> R e. Ring ) $.
    deg1mul2.fb $e |- ( ph -> F e. B ) $.
    deg1mul2.fz $e |- ( ph -> F =/= .0. ) $.
    deg1mul2.fc $e |- ( ph -> ( ( coe1 ` F ) ` ( D ` F ) ) e. E ) $.
    deg1mul2.gb $e |- ( ph -> G e. B ) $.
    deg1mul2.gz $e |- ( ph -> G =/= .0. ) $.
    $( Degree of multiplication of two nonzero polynomials when the first leads
       with a nonzero-divisor coefficient.  (Contributed by Stefan O'Rear,
       26-Mar-2015.) $)
    deg1mul2 $p |- ( ph -> ( D ` ( F .x. G ) ) = ( ( D ` F ) + ( D ` G ) ) ) $=
      ( co cfv caddc wceq cle wbr crg wcel wne cn0 deg1nn0cl syl3anc deg1mulle2
      nn0red leidd cco1 c0g ply1ring syl ringcl nn0addcld eqid coe1mul4 deg1ldg
      cmulr cbs wi wf coe1f ffvelrnd rrgeq0i syl2anc necon3d mpd eqnetrd deg1ge
      cxr wa wb deg1xrcl rexrd xrletri3 mpbir2and ) AHIFUCZCUDZHCUDZICUDZUEUCZU
      FZWGWJUGUHZWJWGUGUHZABCEFHIWHWIDLKQNORUAAEUIUJZHBUJZHJUKWHULUJQRSBCDEHJKL
      PNUMUNZAWNIBUJZIJUKZWIULUJQUAUBBCDEIJKLPNUMUNZAWHAWHWPUPUQAWIAWIWSUPUQUOA
      WFBUJZWJULUJWJWFURUDZUDZEUSUDZUKWMADUIUJZWOWQWTAWNXDQDELUTVARUABDFHINOVBU
      NZAWHWIWPWSVCZAXBWHHURUDUDZWIIURUDZUDZEVGUDZUCZXCABCEFXJHIDJLOXJVDZNKPQRS
      UAUBVEAXIXCUKZXKXCUKAWNWQWRXMQUAUBXHBCDEIXCJKLPNXCVDZXHVDZVFUNAXKXCXIXCAX
      GGUJXIEVHUDZUJXKXCUFXIXCUFVITAULXPWIXHAWQULXPXHVJUAXHBDEIXPXONLXPVDZVKVAW
      SVLXPEXJGXGXIXCMXQXLXNVMVNVOVPVQXABCDEWFWJXCKLNXNXAVDVRUNAWGVSUJZWJVSUJWK
      WLWMVTWAAWTXRXEBCDEWFKLNWBVAAWJAWJXFUPWCWGWJWDVNWE $.
  $}

  ${
    deg1mul3.d $e |- D = ( deg1 ` R ) $.
    deg1mul3.p $e |- P = ( Poly1 ` R ) $.
    deg1mul3.e $e |- E = ( RLReg ` R ) $.
    deg1mul3.b $e |- B = ( Base ` P ) $.
    deg1mul3.t $e |- .x. = ( .r ` P ) $.
    deg1mul3.a $e |- A = ( algSc ` P ) $.
    $( Degree of multiplication of a polynomial on the left by a
       nonzero-dividing scalar.  (Contributed by Stefan O'Rear, 29-Mar-2015.)
       (Proof shortened by AV, 25-Jul-2019.) $)
    deg1mul3 $p |- ( ( R e. Ring /\ F e. E /\ G e. B ) ->
        ( D ` ( ( A ` F ) .x. G ) ) = ( D ` G ) ) $=
      ( wcel cfv co csupp eqid crg w3a cco1 c0g cxr clt csup cn0 csn cmulr wceq
      cxp cof cbs rrgss sseli coe1sclmul syl3an2 oveq1d nn0ex simp1 simp2 coe1f
      cvv wf 3ad2ant3 rrgsupp eqtrd supeq1d ply1ring 3ad2ant1 ply1sclf 3ad2ant2
      a1i ffvelrnd simp3 ringcl syl3anc deg1val syl 3eqtr4d ) EUAPZHGPZIBPZUBZH
      AQZIFRZUCQZEUDQZSRZUEUFUGZIUCQZWISRZUEUFUGZWGCQZICQZWEUEWJWMUFWEWJUHHUIUL
      WLEUJQZUMRZWISRWMWEWHWRWISWCWBHEUNQZPZWDWHWRUKGWSHWSEGLWSTZUOUPZABDEFWQWS
      HIKMXAONWQTZUQURUSWEWSEWQGUHVDHWLWILXAXCWITZUHVDPWEUTVNWBWCWDVAWBWCWDVBWD
      WBUHWSWLVEWCWLBDEIWSWLTZMKXAVCVFVGVHVIWEWGBPZWOWKUKWEDUAPZWFBPWDXFWBWCXGW
      DDEKVJVKWEWSBHAWBWCWSBAVEWDABDEWSKOXAMVLVKWCWBWTWDXBVMVOWBWCWDVPBDFWFIMNV
      QVRWHBCDEWGWIJKMXDWHTVSVTWDWBWPWNUKWCWLBCDEIWIJKMXDXEVSVFWA $.
  $}

  ${
    $d a A $.  $d a B $.  $d a F $.  $d a G $.  $d a K $.  $d a .x. $.
    $d a R $.
    deg1mul3le.d $e |- D = ( deg1 ` R ) $.
    deg1mul3le.p $e |- P = ( Poly1 ` R ) $.
    deg1mul3le.k $e |- K = ( Base ` R ) $.
    deg1mul3le.b $e |- B = ( Base ` P ) $.
    deg1mul3le.t $e |- .x. = ( .r ` P ) $.
    deg1mul3le.a $e |- A = ( algSc ` P ) $.
    $( Degree of multiplication of a polynomial on the left by a scalar.
       (Contributed by Stefan O'Rear, 1-Apr-2015.) $)
    deg1mul3le $p |- ( ( R e. Ring /\ F e. K /\ G e. B ) ->
        ( D ` ( ( A ` F ) .x. G ) ) <_ ( D ` G ) ) $=
      ( wcel cfv co cxr cn0 va crg w3a cco1 c0g csupp clt csup cle wss ply1ring
      wbr wf 3ad2ant1 ply1sclf simp2 ffvelrnd simp3 ringcl syl3anc coe1f syl cv
      eqid cdif wa cmulr wceq eldifi simpl1 simpl2 simpr coe1sclmulfv syl121anc
      simpl3 sylan2 cvv 3ad2ant3 ssid nn0ex fvexd suppssr oveq2d ringrz 3adant3
      a1i adantr 3eqtrd suppss cdm suppssdm fdm syl5sseq cr ressxr sstri syl6ss
      nn0ssre supxrss syl2anc deg1val 3brtr4d ) EUBPZGIPZHBPZUCZGAQZHFRZUDQZEUE
      QZUFRZSUGUHZHUDQZXJUFRZSUGUHZXHCQZHCQZUIXFXKXNUJXNSUJXLXOUIULXFTIUAXIXNXJ
      XFXHBPZTIXIUMXFDUBPZXGBPXEXRXCXDXSXEDEKUKUNXFIBGAXCXDIBAUMXEABDEIKOLMUOUN
      XCXDXEUPUQXCXDXEURBDFXGHMNUSUTZXIBDEXHIXIVDZMKLVAVBXFUAVCZTXNVEPZVFZYBXIQ
      ZGYBXMQZEVGQZRZGXJYGRZXJYCXFYBTPZYEYHVHZYBTXNVIXFYJVFXCXDXEYJYKXCXDXEYJVJ
      XCXDXEYJVKXCXDXEYJVOXFYJVLABDEFYGIGHYBKMLONYGVDZVMVNVPYDYFXJGYGXFTIVQXMVQ
      XNYBXJXEXCTIXMUMZXDXMBDEHIXMVDZMKLVAVRZXNXNUJXFXNVSWFTVQPXFVTWFXFEUEWAWBW
      CXFYIXJVHZYCXCXDYPXEIEYGGXJLYLXJVDZWDWEWGWHWIXFXNTSXFXMWJZXNTXMXJWKXFYMYR
      TVHYOTIXMWLVBWMTWNSWRWOWPWQXKXNWSWTXFXRXPXLVHXTXIBCDEXHXJJKMYQYAXAVBXEXCX
      QXOVHXDXMBCDEHXJJKMYQYNXAVRXB $.
  $}

  ${
    $d x .^ $.  $d x C $.  $d x F $.  $d x K $.  $d x R $.  $d x .x. $.
    $d x X $.
    deg1tm.d $e |- D = ( deg1 ` R ) $.
    deg1tm.k $e |- K = ( Base ` R ) $.
    deg1tm.p $e |- P = ( Poly1 ` R ) $.
    deg1tm.x $e |- X = ( var1 ` R ) $.
    deg1tm.m $e |- .x. = ( .s ` P ) $.
    deg1tm.n $e |- N = ( mulGrp ` P ) $.
    deg1tm.e $e |- .^ = ( .g ` N ) $.
    $( Limiting degree of a polynomial term.  (Contributed by Stefan O'Rear,
       27-Mar-2015.) $)
    deg1tmle $p |- ( ( R e. Ring /\ C e. K /\ F e. NN0 ) ->
        ( D ` ( C .x. ( F .^ X ) ) ) <_ F ) $=
      ( vx wcel cfv crg cn0 w3a co cle wbr cv clt cco1 c0g wceq wi wral wa eqid
      simpl1 simpl2 simpl3 simprl nn0red ltned coe1tmfv2 expr ralrimiva cbs cxr
      simprr wb ply1tmcl nn0re rexrd 3ad2ant3 deg1leb syl2anc mpbird ) DUASZAHS
      ZGUBSZUCZAGJFUDEUDZBTGUEUFZGRUGZUHUFZWBVTUITZTDUJTZUKZULZRUBUMZVSWGRUBVSW
      BUBSZWCWFVSWIWCUNZUNZAGCDEFWBHIJWEWEUOZLMNOPQVPVQVRWJUPVPVQVRWJUQVPVQVRWJ
      URZVSWIWCUSWKGWBWKGWMUTVSWIWCVGVAVBVCVDVSVTCVETZSGVFSZWAWHVHWNAGCDEFHIJLM
      NOPQWNUOZVIVRVPWOVQVRGGVJVKVLRWDWNBCDVTGWEKMWPWLWDUOVMVNVO $.

    deg1tm.z $e |- .0. = ( 0g ` R ) $.
    $( Exact degree of a polynomial term.  (Contributed by Stefan O'Rear,
       27-Mar-2015.) $)
    deg1tm $p |- ( ( R e. Ring /\ ( C e. K /\ C =/= .0. ) /\ F e. NN0 ) ->
        ( D ` ( C .x. ( F .^ X ) ) ) = F ) $=
      ( wcel crg wne wa cn0 w3a co cfv wceq cle wbr deg1tmle 3adant2r cco1 eqid
      ply1tmcl simp3 coe1tmfv1 simp2r eqnetrd deg1ge syl3anc wb deg1xrcl nn0red
      cbs cxr syl rexrd xrletri3 syl2anc mpbir2and ) DUATZAHTZAKUBZUCZGUDTZUEZA
      GJFUFEUFZBUGZGUHZVSGUIUJZGVSUIUJZVLVMVPWAVNABCDEFGHIJLMNOPQRUKULVQVRCVEUG
      ZTZVPGVRUMUGZUGZKUBWBVLVMVPWDVNWCAGCDEFHIJMNOPQRWCUNZUOULZVLVOVPUPZVQWFAK
      VLVMVPWFAUHVNAGCDEFHIJKSMNOPQRUQULVLVMVNVPURUSWEWCBCDVRGKLNWGSWEUNUTVAVQV
      SVFTZGVFTVTWAWBUCVBVQWDWJWHWCBCDVRLNWGVCVGVQGVQGWIVDVHVSGVIVJVK $.
  $}

  ${
    deg1pw.d $e |- D = ( deg1 ` R ) $.
    deg1pw.p $e |- P = ( Poly1 ` R ) $.
    deg1pw.x $e |- X = ( var1 ` R ) $.
    deg1pw.n $e |- N = ( mulGrp ` P ) $.
    deg1pw.e $e |- .^ = ( .g ` N ) $.
    $( Limiting degree of a variable power.  (Contributed by Stefan O'Rear,
       1-Apr-2015.) $)
    deg1pwle $p |- ( ( R e. Ring /\ F e. NN0 ) -> ( D ` ( F .^ X ) ) <_ F ) $=
      ( crg wcel cfv cur co cle cbs eqid cn0 wa csca cvsca wceq ply1lmod adantr
      clmod ply1moncl lmodvs1 syl2anc wbr simpl ply1sca ringidcl eqeltrrd simpr
      fveq2d deg1tmle syl3anc eqbrtrrd ) CMNZEUANZUBZBUCOZPOZEGDQZBUDOZQZAOZVGA
      OERVDVIVGAVDBUHNZVGBSOZNVIVGUEVBVKVCBCIUFUGVLEBCDFGIJKLVLTZUIVHVFVEVLBVGV
      MVETVHTZVFTUJUKURVDVBVFCSOZNZVCVJERULVBVCUMVBVPVCVBCPOZVFVOVBCVEPBCMIUNUR
      VOCVQVOTZVQTUOUPUGVBVCUQVFABCVHDEVOFGHVRIJVNKLUSUTVA $.

    $( Exact degree of a variable power over a nontrivial ring.  (Contributed
       by Stefan O'Rear, 1-Apr-2015.) $)
    deg1pw $p |- ( ( R e. NzRing /\ F e. NN0 ) -> ( D ` ( F .^ X ) ) = F ) $=
      ( wcel cur cfv co wceq adantr syl eqid cnzr cn0 cvsca csca ply1sca fveq2d
      wa oveq1d clmod cbs crg nzrring ply1lmod cmnd ply1ring ringmgp 3syl simpr
      vr1cl mgpbas mulgnn0cl syl3anc lmodvs1 syl2anc eqtrd c0g wne nzrnz deg1tm
      ringidcl syl121anc eqtr3d ) CUAMZEUBMZUGZCNOZEGDPZBUCOZPZAOZVQAOEVOVSVQAV
      OVSBUDOZNOZVQVRPZVQVOVPWBVQVRVOCWANVMCWAQVNBCUAIUERUFUHVOBUIMZVQBUJOZMZWC
      VQQVOCUKMZWDVMWGVNCULRZBCIUMSVOFUNMZVNGWEMZWFVOWGBUKMWIWHBCIUOBFKUPUQVMVN
      URZVOWGWJWHWEBCGJIWETZUSSWEDFEGWEBFKWLUTLVAVBVRWBWAWEBVQWLWATVRTZWBTVCVDV
      EUFVOWGVPCUJOZMZVPCVFOZVGZVNVTEQWHVOWGWOWHWNCVPWNTZVPTZVJSVMWQVNCVPWPWSWP
      TZVHRWKVPABCVRDEWNFGWPHWRIJWMKLWTVIVKVL $.
  $}

  ${
    $d P x y $.  $d R x y $.
    ply1domn.p $e |- P = ( Poly1 ` R ) $.
    $( Univariate polynomials over a nonzero ring are a nonzero ring.
       (Contributed by Stefan O'Rear, 29-Mar-2015.) $)
    ply1nz $p |- ( R e. NzRing -> P e. NzRing ) $=
      ( cnzr wcel crg cur cfv cbs c0g csn cdif nzrring ply1ring syl wne wf eqid
      cascl ply1sclf ringidcl ffvelrnd nzrnz ply1scln0 syl3anc eldifsn sylanbrc
      ringelnzr syl2anc ) BDEZAFEZBGHZASHZHZAIHZAJHZKLEZADEUJBFEZUKBMZABCNOUJUN
      UOEUNUPPZUQUJBIHZUOULUMUJURVAUOUMQUSUMUOABVACUMRZVARZUORZTOUJURULVAEZUSVA
      BULVCULRZUAOZUBUJURVEULBJHZPUTUSVGBULVHVFVHRZUCUMABVAULUPVHCVBVIUPRZVCUDU
      EUNUOUPUFUGUOAUNUPVJVDUHUI $.

    $( Univariate polynomials are nonzero iff the base is nonzero.  Or in
       contraposition, the univariate polynomials over the zero ring are also
       zero.  (Contributed by Mario Carneiro, 13-Jun-2015.) $)
    ply1nzb $p |- ( R e. Ring -> ( R e. NzRing <-> P e. NzRing ) ) $=
      ( vy vx wcel cnzr cur cfv c0g wne eqid wceq cv c1o csn cxp cif co con0 wa
      crg ply1nz simpl nzrnz adantl cc0 ccnv cima cfn cmap crab wral ifeq1 ifid
      cn cn0 syl6eq ralrimivw cmpt cmpl ply1mpl1 1on mpl1 ply1mpl0 cgrp ringgrp
      a1i syl mpl0 fconstmpt eqeq12d cvv wb fvex ifex rgenw mpteqb ax-mp syl6bb
      syl5ibr necon3d mpd isnzr sylanbrc ex impbid2 ) BUBFZBGFZAGFZABCUCWHWJWIW
      HWJUAZWHBHIZBJIZKZWIWHWJUDZWKAHIZAJIZKZWNWJWRWHAWPWQWPLZWQLZUEUFWKWLWMWPW
      QWLWMMZWPWQMZWKDNOUGPQMZWLWMRZWMMZDENUHUPUIUJFEUQOUKSULZUMZXAXEDXFXAXDXCW
      MWMRWMXCWLWMWMUNXCWMUOURUSWKXBDXFXDUTZDXFWMUTZMZXGWKWPXHWQXIWKDXFOBVASZBW
      PWLEOTWMXKLZXFLZWMLZWLLZABWPXKXLCWSVBOTFWKVCVHZWOVDWKWQXFWMPQXIWKXFXKBEOW
      MTWQXLXMXNABXKWQXLCWTVEXPWKWHBVFFWOBVGVIVJDXFWMVKURVLXDVMFZDXFUMXJXGVNXQD
      XFXCWLWMBHVOBJVOVPVQDXFXDWMVMVRVSVTWAWBWCBWLWMXOXNWDWEWFWG $.

    $( Corollary of ~ deg1mul2 : the univariate polynomials over a domain are a
       domain.  This is true for multivariate but with a much more complicated
       proof.  (Contributed by Stefan O'Rear, 28-Mar-2015.) $)
    ply1domn $p |- ( R e. Domn -> P e. Domn ) $=
      ( vx vy cdomn wcel cnzr cv cfv co wceq wral syl wne cn0 eqid crg syl3anc
      wa cmulr c0g wo wi domnnzr ply1nz wn neanior cdg1 caddc domnring ad2antrr
      cbs crlreg simplrl simprl cco1 simpll deg1ldgdomn simplrr simprr deg1mul2
      deg1nn0cl nn0addcld eqeltrd wb ply1ring ringcl deg1nn0clb syl2anc syl5bir
      mpbird ex necon4bd ralrimivva isdomn sylanbrc ) BFGZAHGZDIZEIZAUAJZKZAUBJ
      ZLVTWDLWAWDLUCZUDZEAUMJZMDWGMAFGVRBHGVSBUEABCUFNVRWFDEWGWGVRVTWGGZWAWGGZT
      ZTZWEWCWDWEUGVTWDOZWAWDOZTZWKWCWDOZVTWDWAWDUHWKWNWOWKWNTZWOWCBUIJZJZPGZWP
      WRVTWQJZWAWQJZUJKPWPWGWQABWBBUNJZVTWAWDWQQZCXBQZWGQZWBQZWDQZVRBRGZWJWNBUK
      ZULZVRWHWIWNUOZWKWLWMUPZWPVRWHWLWTVTUQJZJXBGVRWJWNURXKXLXMWGWQABXBVTWDXCC
      XGXEXDXMQUSSVRWHWIWNUTZWKWLWMVAZVBWPWTXAWPXHWHWLWTPGXJXKXLWGWQABVTWDXCCXG
      XEVCSWPXHWIWMXAPGXJXNXOWGWQABWAWDXCCXGXEVCSVDVEWPXHWCWGGZWOWSVFXJWPARGZWH
      WIXPVRXQWJWNVRXHXQXIABCVGNULXKXNWGAWBVTWAXEXFVHSWGWQABWCWDXCCXGXEVIVJVLVM
      VKVNVODEWGAWBWDXEXFXGVPVQ $.

    $( The ring of univariate polynomials over an integral domain is itself an
       integral domain.  (Contributed by Stefan O'Rear, 29-Mar-2015.) $)
    ply1idom $p |- ( R e. IDomn -> P e. IDomn ) $=
      ( ccrg wcel cdomn wa cidom ply1crng ply1domn anim12i isidom 3imtr4i ) BDE
      ZBFEZGADEZAFEZGBHEAHENPOQABCIABCJKBLALM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The division algorithm for univariate polynomials
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Monic1p $. $( Monic polynomial $)
  $c Unic1p $. $( Unitic polynomial $)
  $c quot1p $. $( Univariate polynomial quotient $)
  $c rem1p $. $( Univariate polynomial remainder $)
  $c idlGen1p $. $( Univariate polynomial ideal generator $)

  $( Monic polynomials. $)
  cmn1 $a class Monic1p $.

  $( Unitic polynomials. $)
  cuc1p $a class Unic1p $.

  $( Univariate polynomial quotient. $)
  cq1p $a class quot1p $.

  $( Univariate polynomial remainder. $)
  cr1p $a class rem1p $.

  $( Univariate polynomial ideal generator. $)
  cig1p $a class idlGen1p $.

  ${
    $d r f g b p q i $.
    $( Define the set of monic univariate polynomials.  (Contributed by Stefan
       O'Rear, 28-Mar-2015.) $)
    df-mon1 $a |- Monic1p = ( r e. _V |-> { f e. ( Base ` ( Poly1 ` r ) ) |
      ( f =/= ( 0g ` ( Poly1 ` r ) ) /\
        ( ( coe1 ` f ) ` ( ( deg1 ` r ) ` f ) ) = ( 1r ` r ) ) } ) $.

    $( Define the set of unitic univariate polynomials, as the polynomials with
       an invertible leading coefficient.  This is not a standard concept but
       is useful to us as the set of polynomials which can be used as the
       divisor in the polynomial division theorem ~ ply1divalg .  (Contributed
       by Stefan O'Rear, 28-Mar-2015.) $)
    df-uc1p $a |- Unic1p = ( r e. _V |-> { f e. ( Base ` ( Poly1 ` r ) ) |
      ( f =/= ( 0g ` ( Poly1 ` r ) ) /\
        ( ( coe1 ` f ) ` ( ( deg1 ` r ) ` f ) ) e. ( Unit ` r ) ) } ) $.

    $( Define the quotient of two univariate polynomials, which is guaranteed
       to exist and be unique by ~ ply1divalg .  We actually use the reversed
       version for better harmony with our divisibility ~ df-dvdsr .
       (Contributed by Stefan O'Rear, 28-Mar-2015.) $)
    df-q1p $a |- quot1p = ( r e. _V |-> [_ ( Poly1 ` r ) / p ]_
      [_ ( Base ` p ) / b ]_ ( f e. b , g e. b |->
        ( iota_ q e. b ( ( deg1 ` r ) ` ( f ( -g ` p ) ( q ( .r ` p ) g ) ) ) <
          ( ( deg1 ` r ) ` g ) ) ) ) $.

    $( Define the remainder after dividing two univariate polynomials.
       (Contributed by Stefan O'Rear, 28-Mar-2015.) $)
    df-r1p $a |- rem1p = ( r e. _V |-> [_ ( Base ` ( Poly1 ` r ) ) / b ]_
        ( f e. b , g e. b |-> ( f ( -g ` ( Poly1 ` r ) )
        ( ( f ( quot1p ` r ) g ) ( .r ` ( Poly1 ` r ) ) g ) ) ) ) $.

    $( Define a choice function for generators of ideals over a division ring;
       this is the unique monic polynomial of minimal degree in the ideal.
       (Contributed by Stefan O'Rear, 29-Mar-2015.)  (Revised by AV,
       25-Sep-2020.) $)
    df-ig1p $a |- idlGen1p = ( r e. _V |-> ( i e. ( LIdeal ` ( Poly1 `
      r ) ) |-> if ( i = { ( 0g ` ( Poly1 ` r ) ) } , ( 0g ` ( Poly1 ` r ) ) ,
      ( iota_ g e. ( i i^i ( Monic1p ` r ) ) ( ( deg1 ` r ) ` g ) =
      inf ( ( ( deg1 ` r ) " ( i \ { ( 0g ` ( Poly1 ` r ) ) } ) ) ,
      RR , < ) ) ) ) ) $.
  $}

  ${
    ply1divalg.p $e |- P = ( Poly1 ` R ) $.
    ply1divalg.d $e |- D = ( deg1 ` R ) $.
    ply1divalg.b $e |- B = ( Base ` P ) $.
    ply1divalg.m $e |- .- = ( -g ` P ) $.
    ply1divalg.z $e |- .0. = ( 0g ` P ) $.
    ply1divalg.t $e |- .xb = ( .r ` P ) $.
    ply1divalg.r1 $e |- ( ph -> R e. Ring ) $.
    ply1divalg.f $e |- ( ph -> F e. B ) $.
    ply1divalg.g1 $e |- ( ph -> G e. B ) $.
    ply1divalg.g2 $e |- ( ph -> G =/= .0. ) $.

    ${
      $d ph q r $.  $d B q r $.  $d D q r $.  $d F q r $.  $d G q r $.
      $d .- q r $.  $d .xb q r $.
      ply1divmo.g3 $e |- ( ph -> ( ( coe1 ` G ) ` ( D ` G ) ) e. E ) $.
      ply1divmo.e $e |- E = ( RLReg ` R ) $.
      $( Uniqueness of a quotient in a polynomial division.  For polynomials
         ` F , G ` such that ` G =/= 0 ` and the leading coefficient of ` G `
         is not a zero divisor, there is at most one polynomial ` q ` which
         satisfies ` F = ( G x. q ) + r ` where the degree of ` r ` is less
         than the degree of ` G ` .  (Contributed by Stefan O'Rear,
         26-Mar-2015.)  (Revised by NM, 17-Jun-2017.) $)
      ply1divmo $p |- ( ph -> E* q e. B
              ( D ` ( F .- ( G .xb q ) ) ) < ( D ` G ) ) $=
        ( vr cv co cfv clt wbr wa weq wi wral wrmo wcel cxr cle cif cgrp adantr
        w3a crg ply1ring ringgrp simprl ringcl syl3anc grpsubcl simprr deg1xrcl
        syl ifcld 3jca deg1suble wb xrmaxlt biimpar jca xrlelttr sylc ex wne wn
        cr cn0 deg1nn0cl ad2antrr nn0red wceq grpsubeq0 equcom syl6bb necon3bid
        caddc nn0addge1 syl2anc cco1 deg1mul2 cabl ringabl ablnnncan1 ringsubdi
        breqtrrd eqtr4d fveq2d mpbid necon4ad syld ralrimivva oveq2 oveq2d rmo4
        xrlenlt breq1d sylibr ) AHILUFZFUGZJUGZCUHZICUHZUIUJZHIUEUFZFUGZJUGZCUH
        ZYAUIUJZUKZLUEULZUMZUEBUNLBUNYBLBUOAYJLUEBBAXQBUPZYCBUPZUKZUKZYHXSYEJUG
        ZCUHZYAUIUJZYIYNYHYQYNYHUKZYPUQUPZXTYFURUJZYFXTUSZUQUPZYAUQUPZVBZYPUUAU
        RUJZUUAYAUIUJZUKYQYNUUDYHYNYSUUBUUCYNYOBUPZYSYNDUTUPZXSBUPZYEBUPZUUGYND
        VCUPZUUHYNEVCUPZUUKAUULYMSVAZDEMVDVLZDVEVLZYNUUHHBUPZXRBUPZUUIUUOAUUPYM
        TVAZYNUUKIBUPZYKUUQUUNAUUSYMUAVAZAYKYLVFZBDFIXQORVGVHZBDJHXROPVIVHZYNUU
        HUUPYDBUPZUUJUUOUURYNUUKUUSYLUVDUUNUUTAYKYLVJZBDFIYCORVGVHZBDJHYDOPVIVH
        ZBDJXSYEOPVIVHBCDEYONMOVKVLZYNYTYFXTUQYNUUJYFUQUPZUVGBCDEYENMOVKVLZYNUU
        IXTUQUPZUVCBCDEXSNMOVKVLZVMYNUUSUUCUUTBCDEINMOVKVLZVNVAYRUUEUUFYNUUEYHY
        NBCEXSYEJDMNUUMOPUVCUVGVOVAYNUUFYHYNUVKUVIUUCUUFYHVPUVLUVJUVMXTYFYAVQVH
        VRVSYPUUAYAVTWAWBYNYQXQYCYNXQYCWCZYQWDZYNUVNUKZYAYPURUJZUVOUVPYAIYCXQJU
        GZFUGZCUHZYPURUVPYAYAUVRCUHZWOUGZUVTURUVPYAWEUPUWAWFUPZYAUWBURUJUVPYAAY
        AWFUPZYMUVNAUULUUSIKWCZUWDSUAUBBCDEIKNMQOWGVHWHWIUVPUULUVRBUPZUVRKWCZUW
        CAUULYMUVNSWHZYNUWFUVNYNUUHYLYKUWFUUOUVEUVABDJYCXQOPVIVHVAZYNUWGUVNYNUV
        RKXQYCYNUVRKWJZUELULZYIYNUUHYLYKUWJUWKVPUUOUVEUVABDJYCXQKOQPWKVHUELWLWM
        WNVRZBCDEUVRKNMQOWGVHYAUWAWPWQUVPBCDEFGIUVRKNMUDORQUWHAUUSYMUVNUAWHAUWE
        YMUVNUBWHAYAIWRUHUHGUPYMUVNUCWHUWIUWLWSXDYNYPUVTWJUVNYNYOUVSCYNYOYDXRJU
        GUVSYNBDJHXRYDOPYNUUKDWTUPUUNDXAVLUURUVBUVFXBYNBDFJIYCXQORPUUNUUTUVEUVA
        XCXEXFVAXDYNUVQUVOVPZUVNYNUUCYSUWMUVMUVHYAYPXNWQVAXGWBXHXIXJYBYGLUEBYIX
        TYFYAUIYIXSYECYIXRYDHJXQYCIFXKXLXFXOXMXP $.
    $}

    ${
      $d d q .0. $.  $d d f q F $.  $d f q r I $.  $d f q r P $.  $d f q r R $.
      $d a d f g q r .- $.  $d a d f g q r B $.  $d a d f g q r .xb $.
      $d a d f g q r D $.  $d a d f g q r G $.  $d a d f g q ph $.
      $d f q r .x. $.
      ply1divex.o $e |- .1. = ( 1r ` R ) $.
      ply1divex.k $e |- K = ( Base ` R ) $.
      ply1divex.u $e |- .x. = ( .r ` R ) $.
      ply1divex.i $e |- ( ph -> I e. K ) $.
      ply1divex.g3 $e |- ( ph ->
        ( ( ( coe1 ` G ) ` ( D ` G ) ) .x. I ) = .1. ) $.
      $( Lemma for ~ ply1divalg : existence part.  (Contributed by Stefan
         O'Rear, 27-Mar-2015.) $)
      ply1divex $p |- ( ph -> E. q e. B
            ( D ` ( F .- ( G .xb q ) ) ) < ( D ` G ) ) $=
        ( vd vf va vg vr cfv cv caddc co clt wbr wrex wceq fveq2 breq1d rexbidv
        cn0 wne wa cmin cn wss nnssnn0 wcel crg adantr deg1nn0cl syl3anc nn0red
        simpr resubcld syl ssrexv mpsyl ad2antrr nn0re adantl ltsubadd2d biimpd
        arch reximdva mpd cc0 0nn0 cmnf deg1z 0re readdcl sylancl mnflt eqbrtrd
        cr oveq2 breq2d rspcev sylancr pm2.61ne wi c1 imbi1d ralbidv imbi2d weq
        wral ply1ring syl2anc oveq2d sylan fveq2d nn0cnd ralrimiva cle ad2antlr
        cco1 nn0addcld cc wf eqid coe1f simplr ffvelrnd ringcl adantrr syl13anc
        adantlrr oveq1 imbi12d rspcva ad3antrrr rexlimdva ringrz cgrp grpsubid1
        ring0cl ringgrp eqtr2d addid1d breq12d biimpa ex cv1 cmg cvsca nn0addcl
        cmgp simprl csn cun cz wb peano2nn0 nn0zd degltlem1 impr nn0cn peano2cn
        deg1cl 1cnd addsubassd pncan eqtrd breqtrd ply1tmcl deg1tmle deg1mulle2
        ax-1cn leidd c0g coe1tmmul2fv addcomd oveq1d ringlidm 3eqtr3rd 3eqtr4rd
        ringass grpsubcl simplrr cplusg ringacl grpsubsub4 ringdi eqtr4d syl6an
        deg1sublt expr cbvrexv syl6bb cbvralv sylib exp32 com12 nn0ind impcom
        a2d ) AICUPZJCUPZUKUQZURUSZUTVAZUKVGVBZIJOUQZFUSZMUSZCUPZUXFUTVAZOBVBZA
[encoded data, 4720 characters]
        UFUXOOBWVSVUEUXNUXFUTWVSVUDUXMCVUAIUXLMYPXSVEVFYQYRXPYTWL $.
    $}

    ${
      $d ph q $.  $d B q $.  $d D q $.  $d F q $.  $d G q $.  $d .- q $.
      $d P q $.  $d R q $.  $d .xb q $.  $d .0. q $.
      ply1divalg.g3 $e |- ( ph -> ( ( coe1 ` G ) ` ( D ` G ) ) e. U ) $.
      ply1divalg.u $e |- U = ( Unit ` R ) $.
      $( The division algorithm for univariate polynomials over a ring.  For
         polynomials ` F , G ` such that ` G =/= 0 ` and the leading
         coefficient of ` G ` is a unit, there are unique polynomials ` q ` and
         ` r = F - ( G x. q ) ` such that the degree of ` r ` is less than the
         degree of ` G ` .  (Contributed by Stefan O'Rear, 27-Mar-2015.) $)
      ply1divalg $p |- ( ph -> E! q e. B
            ( D ` ( F .- ( G .xb q ) ) ) < ( D ` G ) ) $=
        ( cv cfv clt wbr wrex wrmo wreu cmulr cur cco1 cinvr cbs eqid ringinvcl
        co crg wcel syl2anc unitrinv ply1divex crlreg wss unitrrg syl ply1divmo
        wceq sseldd reu5 sylanbrc ) AHILUEFUSJUSCUFICUFZUGUHZLBUIVOLBUJVOLBUKAB
        CDEFEULUFZEUMUFZHIVNIUNUFUFZEUOUFZUFZEUPUFZJKLMNOPQRSTUAUBVQUQZWAUQZVPU
        QZAEUTVAZVRGVAZVTWAVASUCWAEGVSVRUDVSUQZWCURVBAWEWFVRVTVPUSVQVJSUCEVPGVQ
        VSVRUDWGWDWBVCVBVDABCDEFEVEUFZHIJKLMNOPQRSTUAUBAGWHVRAWEGWHVFSEGWHWHUQZ
        UDVGVHUCVKWIVIVOLBVLVM $.

      $d B r $.  $d P r $.  $d R r $.  $d q r $.
      $( Reverse the order of multiplication in ~ ply1divalg via the opposite
         ring.  (Contributed by Stefan O'Rear, 28-Mar-2015.) $)
      ply1divalg2 $p |- ( ph -> E! q e. B
            ( D ` ( F .- ( q .xb G ) ) ) < ( D ` G ) ) $=
        ( vr cv cfv clt wbr wreu coppr cpl1 cmulr eqid cdg1 wceq wtru cbs eqidd
        co opprbas a1i cplusg wcel wa oppradd oveqi deg1propd trud eqtri fveq2i
        ply1baspropd csg ply1plusgpropd grpsubpropd c0g grpidpropd crg opprring
        syl opprunit ply1divalg adantr ply1opprmul syl3anc eqcomd oveq2d fveq2d
        simpr breq1d reubidva mpbird ) AHLUFZIFUTZJUTZCUGZICUGZUHUIZLBUJHIWMEUK
        UGZULUGZUMUGZUTZJUTZCUGZWQUHUIZLBUJABCWTWSXAGHIJKLWTUNZCEUOUGZWSUOUGZNX
        GXHUPUQLUEEURUGZEWSUQXIUSZXIWSURUGUPUQXIEWSWSUNZXIUNVAVBZWMUEUFZEVCUGZU
        TWMXMWSVCUGZUTUPUQWMXIVDXMXIVDVEVEXNXOWMXMXNEWSXKXNUNVFVGVBZVHVIVJBDURU
        GZWTURUGZOXQEULUGZURUGZXRDXSURMVKXTXRUPUQLUEXIEWSXJXLXPVLVIVJZVJZJDVMUG
        ZWTVMUGZPYCYDUPUQDWTXQXRUPUQYAVBDVCUGZWTVCUGZUPUQYEXSVCUGZYFDXSVCMVKYGY
        FUPUQLUEXIEWSXJXLXPVNVIVJZVBVOVIVJKDVPUGZWTVPUGZQYIYJUPUQLUEBDWTBXQUPUQ
        OVBBXRUPUQYBVBWMXMYEUTWMXMYFUTUPUQWMBVDZXMBVDVEVEYEYFWMXMYHVGVBVQVIVJXA
        UNZAEVRVDZWSVRVDSEWSXKVSVTTUAUBUCEWSGUDXKWAWBAWRXELBAYKVEZWPXDWQUHYNWOX
        CCYNWNXBHJYNXBWNYNYMIBVDZYKXBWNUPAYMYKSWCAYOYKUAWCAYKWIBEWSXAFIWMDWTMXK
        XFRYLOWDWEWFWGWHWJWKWL $.
    $}
  $}

  ${
    uc1pval.p $e |- P = ( Poly1 ` R ) $.
    uc1pval.b $e |- B = ( Base ` P ) $.
    uc1pval.z $e |- .0. = ( 0g ` P ) $.
    uc1pval.d $e |- D = ( deg1 ` R ) $.
    ${
      $d B f r $.  $d D f r $.  $d F f $.  $d R f r $.  $d U f r $.
      $d .0. f r $.
      uc1pval.c $e |- C = ( Unic1p ` R ) $.
      uc1pval.u $e |- U = ( Unit ` R ) $.
      $( Value of the set of unitic polynomials.  (Contributed by Stefan
         O'Rear, 28-Mar-2015.) $)
      uc1pval $p |- C = { f e. B | ( f =/= .0. /\
              ( ( coe1 ` f ) ` ( D ` f ) ) e. U ) } $=
        ( cfv cpl1 cbs syl6eqr fveq2d c0 vr cuc1p cv wne cco1 wcel wa crab wceq
        cvv c0g cdg1 fveq2 neeq2d fveq1d eleq12d anbi12d rabeqbidv df-uc1p fvex
        cui eqeltri rabex fvmpt wn fvprc wss ssrab2 syl5eq base0 ss0 syl eqtr4d
        syl5sseq pm2.61i eqtri ) BEUBOZGUCZHUDZVRCOZVRUEOZOZFUFZUGZGAUHZMEUJUFZ
        VQWEUIUAEVRUAUCZPOZUKOZUDZVRWGULOZOZWAOZWGVAOZUFZUGZGWHQOZUHWEUJUBWGEUI
        ZWPWDGWQAWRWQDQOZAWRWHDQWRWHEPOZDWGEPUMIRZSJRWRWJVSWOWCWRWIHVRWRWIDUKOH
        WRWHDUKXASKRUNWRWMWBWNFWRWLVTWAWRVRWKCWRWKEULOCWGEULUMLRUOSWRWNEVAOFWGE
        VAUMNRUPUQURGUAUSWDGAAWSUJJDQUTVBVCVDWFVEZVQTWEEUBVFXBWETVGWETUIXBAWETW
        DGAVHXBAWSTJXBWSTQOTXBDTQXBDWTTIEPVFVISVJRVIVNWEVKVLVMVOVP $.

      $( Being a unitic polynomial.  (Contributed by Stefan O'Rear,
         28-Mar-2015.) $)
      isuc1p $p |- ( F e. C <-> ( F e. B /\ F =/= .0. /\
            ( ( coe1 ` F ) ` ( D ` F ) ) e. U ) ) $=
        ( vf wcel wne cfv cco1 wa w3a wceq neeq1 fveq12d eleq1d anbi12d uc1pval
        cv fveq2 elrab2 3anass bitr4i ) GBPGAPZGHQZGCRZGSRZRZFPZTZTUMUNURUAOUHZ
        HQZUTCRZUTSRZRZFPZTUSOGABUTGUBZVAUNVEURUTGHUCVFVDUQFVFVBUOVCUPUTGSUIUTG
        CUIUDUEUFABCDEFOHIJKLMNUGUJUMUNURUKUL $.
    $}

    ${
      $d B f r $.  $d D f r $.  $d F f $.  $d .1. f r $.  $d R f r $.
      $d .0. f r $.
      mon1pval.m $e |- M = ( Monic1p ` R ) $.
      mon1pval.o $e |- .1. = ( 1r ` R ) $.
      $( Value of the set of monic polynomials.  (Contributed by Stefan O'Rear,
         28-Mar-2015.) $)
      mon1pval $p |- M = { f e. B | ( f =/= .0. /\
              ( ( coe1 ` f ) ` ( D ` f ) ) = .1. ) } $=
        ( cfv wceq cpl1 cbs syl6eqr c0 vr cmn1 cv wne cco1 wa crab cvv wcel c0g
        cdg1 cur fveq2d neeq2d fveq1d eqeq12d anbi12d rabeqbidv df-mon1 eqeltri
        fveq2 fvex rabex fvmpt wn fvprc wss ssrab2 syl5eq base0 syl5sseq eqtr4d
        ss0 syl pm2.61i eqtri ) GDUBOZFUCZHUDZVRBOZVRUEOZOZEPZUFZFAUGZMDUHUIZVQ
        WEPUADVRUAUCZQOZUJOZUDZVRWGUKOZOZWAOZWGULOZPZUFZFWHROZUGWEUHUBWGDPZWPWD
        FWQAWRWQCROZAWRWHCRWRWHDQOZCWGDQVAISZUMJSWRWJVSWOWCWRWIHVRWRWICUJOHWRWH
        CUJXAUMKSUNWRWMWBWNEWRWLVTWAWRVRWKBWRWKDUKOBWGDUKVALSUOUMWRWNDULOEWGDUL
        VANSUPUQURFUAUSWDFAAWSUHJCRVBUTVCVDWFVEZVQTWEDUBVFXBWETVGWETPXBAWETWDFA
        VHXBATROZTXBAWSXCJXBCTRXBCWTTIDQVFVIUMVIVJSVKWEVMVNVLVOVP $.

      $( Being a monic polynomial.  (Contributed by Stefan O'Rear,
         28-Mar-2015.) $)
      ismon1p $p |- ( F e. M <-> ( F e. B /\ F =/= .0. /\
            ( ( coe1 ` F ) ` ( D ` F ) ) = .1. ) ) $=
        ( vf wcel cfv cco1 wceq wa wne w3a neeq1 fveq2 fveq12d anbi12d mon1pval
        cv eqeq1d elrab2 3anass bitr4i ) FGPFAPZFHUAZFBQZFRQZQZESZTZTUMUNURUBOU
        HZHUAZUTBQZUTRQZQZESZTUSOFAGUTFSZVAUNVEURUTFHUCVFVDUQEVFVBUOVCUPUTFRUDU
        TFBUDUEUIUFABCDEOGHIJKLMNUGUJUMUNURUKUL $.
    $}
  $}

  ${
    uc1pcl.p $e |- P = ( Poly1 ` R ) $.
    uc1pcl.b $e |- B = ( Base ` P ) $.
    ${
      uc1pcl.c $e |- C = ( Unic1p ` R ) $.
      $( Unitic polynomials are polynomials.  (Contributed by Stefan O'Rear,
         28-Mar-2015.) $)
      uc1pcl $p |- ( F e. C -> F e. B ) $=
        ( wcel c0g cfv wne cdg1 cco1 cui eqid isuc1p simp1bi ) EBIEAIECJKZLEDMK
        ZKENKKDOKZIABTCDUAESFGSPTPHUAPQR $.
    $}

    ${
      mon1pcl.m $e |- M = ( Monic1p ` R ) $.
      $( Monic polynomials are polynomials.  (Contributed by Stefan O'Rear,
         28-Mar-2015.) $)
      mon1pcl $p |- ( F e. M -> F e. B ) $=
        ( wcel c0g cfv wne cdg1 cco1 cur wceq eqid ismon1p simp1bi ) DEIDAIDBJK
        ZLDCMKZKDNKKCOKZPAUABCUBDETFGTQUAQHUBQRS $.
    $}
  $}

  ${
    uc1pn0.p $e |- P = ( Poly1 ` R ) $.
    uc1pn0.z $e |- .0. = ( 0g ` P ) $.
    ${
      uc1pn0.c $e |- C = ( Unic1p ` R ) $.
      $( Unitic polynomials are not zero.  (Contributed by Stefan O'Rear,
         28-Mar-2015.) $)
      uc1pn0 $p |- ( F e. C -> F =/= .0. ) $=
        ( wcel cbs cfv wne cdg1 cco1 cui eqid isuc1p simp2bi ) DAIDBJKZIDELDCMK
        ZKDNKKCOKZISATBCUADEFSPGTPHUAPQR $.
    $}

    ${
      mon1pn0.m $e |- M = ( Monic1p ` R ) $.
      $( Monic polynomials are not zero.  (Contributed by Stefan O'Rear,
         28-Mar-2015.) $)
      mon1pn0 $p |- ( F e. M -> F =/= .0. ) $=
        ( wcel cbs cfv wne cdg1 cco1 cur wceq eqid ismon1p simp2bi ) CDICAJKZIC
        ELCBMKZKCNKKBOKZPTUAABUBCDEFTQGUAQHUBQRS $.
    $}
  $}

  ${
    uc1pdeg.d $e |- D = ( deg1 ` R ) $.
    uc1pdeg.c $e |- C = ( Unic1p ` R ) $.
    $( Unitic polynomials have nonnegative degrees.  (Contributed by Stefan
       O'Rear, 28-Mar-2015.) $)
    uc1pdeg $p |- ( ( R e. Ring /\ F e. C ) -> ( D ` F ) e. NN0 ) $=
      ( crg wcel wa cpl1 cfv cbs c0g wne cn0 simpl eqid uc1pcl adantl uc1pn0
      deg1nn0cl syl3anc ) CGHZDAHZIUCDCJKZLKZHZDUEMKZNZDBKOHUCUDPUDUGUCUFAUECDU
      EQZUFQZFRSUDUIUCAUECDUHUJUHQZFTSUFBUECDUHEUJULUKUAUB $.
  $}

  ${
    uc1pldg.d $e |- D = ( deg1 ` R ) $.
    uc1pldg.u $e |- U = ( Unit ` R ) $.
    uc1pldg.c $e |- C = ( Unic1p ` R ) $.
    $( Unitic polynomials have unit leading coefficients.  (Contributed by
       Stefan O'Rear, 28-Mar-2015.) $)
    uc1pldg $p |- ( F e. C -> ( ( coe1 ` F ) ` ( D ` F ) ) e. U ) $=
      ( wcel cpl1 cfv cbs c0g wne cco1 eqid isuc1p simp3bi ) EAIECJKZLKZIESMKZN
      EBKEOKKDITABSCDEUASPTPUAPFHGQR $.
  $}

  ${
    mon1pldg.d $e |- D = ( deg1 ` R ) $.
    mon1pldg.o $e |- .1. = ( 1r ` R ) $.
    mon1pldg.m $e |- M = ( Monic1p ` R ) $.
    $( Unitic polynomials have one leading coefficients.  (Contributed by
       Stefan O'Rear, 28-Mar-2015.) $)
    mon1pldg $p |- ( F e. M -> ( ( coe1 ` F ) ` ( D ` F ) ) = .1. ) $=
      ( wcel cpl1 cfv cbs c0g wne cco1 wceq eqid ismon1p simp3bi ) DEIDBJKZLKZI
      DTMKZNDAKDOKKCPUAATBCDEUBTQUAQUBQFHGRS $.
  $}

  ${
    mon1puc1p.c $e |- C = ( Unic1p ` R ) $.
    mon1puc1p.m $e |- M = ( Monic1p ` R ) $.
    $( Monic polynomials are unitic.  (Contributed by Stefan O'Rear,
       28-Mar-2015.) $)
    mon1puc1p $p |- ( ( R e. Ring /\ X e. M ) -> X e. C ) $=
      ( crg wcel wa cpl1 cfv cbs c0g wne cdg1 cco1 cui eqid mon1pcl adantl wceq
      mon1pn0 cur mon1pldg 1unit adantr eqeltrd isuc1p syl3anbrc ) BGHZDCHZIZDB
      JKZLKZHZDUMMKZNZDBOKZKDPKKZBQKZHDAHUKUOUJUNUMBDCUMRZUNRZFSTUKUQUJUMBDCUPV
      AUPRZFUBTULUSBUCKZUTUKUSVDUAUJURBVDDCURRZVDRZFUDTUJVDUTHUKBUTVDUTRZVFUEUF
      UGUNAURUMBUTDUPVAVBVCVEEVGUHUI $.
  $}

  ${
    uc1pmon1p.c $e |- C = ( Unic1p ` R ) $.
    uc1pmon1p.m $e |- M = ( Monic1p ` R ) $.
    uc1pmon1p.p $e |- P = ( Poly1 ` R ) $.
    uc1pmon1p.t $e |- .x. = ( .r ` P ) $.
    uc1pmon1p.a $e |- A = ( algSc ` P ) $.
    uc1pmon1p.d $e |- D = ( deg1 ` R ) $.
    uc1pmon1p.i $e |- I = ( invr ` R ) $.
    $( Make a unitic polynomial monic by multiplying a factor to normalize the
       leading coefficient.  (Contributed by Stefan O'Rear, 29-Mar-2015.) $)
    uc1pmon1p $p |- ( ( R e. Ring /\ X e. C ) ->
        ( ( A ` ( I ` ( ( coe1 ` X ) ` ( D ` X ) ) ) ) .x. X ) e. M ) $=
      ( wcel cfv eqid cn0 crg wa cco1 co cbs c0g wne cur wceq ply1ring ply1sclf
      adantr cui uc1pldg ringinvcl sylan2 ffvelrnd uc1pcl adantl ringcl syl3anc
      wf crlreg simpl wss unitrrg unitinvcl deg1mul3 uc1pdeg eqeltrd deg1nn0clb
      sseldd syldan mpbird csn cxp cmulr cof fveq2d coe1sclmul fveq1d cvv nn0ex
      wb a1i fvexd wfn coe1f ffn 3syl eqidd mpdan unitlinv eqtrd 3eqtrd ismon1p
      ofc1 syl3anbrc ) EUAQZIBQZUBZICRZIUCRZRZGRZARZIFUDZDUERZQZXGDUFRZUGZXGCRZ
      XGUCRZRZEUHRZUIXGHQXADUAQZXFXHQIXHQZXIWSXPWTDELUJULXAEUERZXHXEAWSXRXHAVBW
      TAXHDEXRLNXRSZXHSZUKULWTWSXDEUMRZQZXEXRQZBCEYAIOYASZJUNZXREYAGXDYDPXSUOUP
      ZUQWTXQWSXHBDEILXTJURUSZXHDFXFIXTMUTVAZXAXKXLTQZXAXLXBTXAWSXEEVCRZQXQXLXB
      UIWSWTVDZXAYAYJXEWSYAYJVEWTEYAYJYJSZYDVFULWTWSYBXEYAQYEEYAGXDYDPVGUPVLYGA
      XHCDEFYJXEIOLYLXTMNVHVAZBCEIOJVIZVJWSWTXIXKYIWDYHXHCDEXGXJOLXJSZXTVKVMVNX
      AXNXBXMRXBTXEVOVPXCEVQRZVRUDZRZXOXAXLXBXMYMVSXAXBXMYQXAWSYCXQXMYQUIYKYFYG
      AXHDEFYPXRXEILXTXSNMYPSZVTVAWAXAYRXEXDYPUDZXOXAXBTQZYRYTUIYNXATXEXDYPXCWB
      WBXBTWBQXAWCWEXAXDGWFXAXQTXRXCVBXCTWGYGXCXHDEIXRXCSXTLXSWHTXRXCWIWJXAUUAU
      BXDWKWQWLWTWSYBYTXOUIYEEYPYAXOGXDYDPYSXOSZWMUPWNWOXHCDEXOXGHXJLXTYOOKUUBW
      PWR $.
  $}

  ${
    deg1submon1p.d $e |- D = ( deg1 ` R ) $.
    deg1submon1p.o $e |- O = ( Monic1p ` R ) $.
    deg1submon1p.p $e |- P = ( Poly1 ` R ) $.
    deg1submon1p.m $e |- .- = ( -g ` P ) $.
    deg1submon1p.r $e |- ( ph -> R e. Ring ) $.
    deg1submon1p.f1 $e |- ( ph -> F e. O ) $.
    deg1submon1p.f2 $e |- ( ph -> ( D ` F ) = X ) $.
    deg1submon1p.g1 $e |- ( ph -> G e. O ) $.
    deg1submon1p.g2 $e |- ( ph -> ( D ` G ) = X ) $.
    $( The difference of two monic polynomials of the same degree is a
       polynomial of lesser degree.  (Contributed by Stefan O'Rear,
       28-Mar-2015.) $)
    deg1submon1p $p |- ( ph -> ( D ` ( F .- G ) ) < X ) $=
      ( cfv wcel cco1 cbs cn0 crg c0g wne mon1pcl syl mon1pn0 deg1nn0cl syl3anc
      eqid eqeltrrd cle nn0red leidd eqbrtrd cur fveq2d mon1pldg eqtr3d 3eqtr2d
      wceq deg1sublt ) AEUASZCUBSZFUASZBCDEFIGJLVFULZMAEBSZIUCPADUDTEVFTZECUESZ
      UFZVIUCTNAEHTZVJOVFCDEHLVHKUGUHZAVMVLOCDEHVKLVKULZKUIUHVFBCDEVKJLVOVHUJUK
      UMZNVNAVIIIUNPAIAIVPUOUPZUQAFHTZFVFTQVFCDFHLVHKUGUHAFBSZIIUNRVQUQVEULVGUL
      AIVESZDURSZVSVGSZIVGSAVIVESZVTWAAVIIVEPUSAVMWCWAVCOBDWAEHJWAULZKUTUHVAAVR
      WBWAVCQBDWAFHJWDKUTUHAVSIVGRUSVBVD $.
  $}

  ${
    $d B b f g p q r $.  $d D b f g p r $.  $d F f g q $.  $d G f g q $.
    $d .- b f g p r $.  $d P b f g p q $.  $d R b f g p q r $.
    $d .x. b f g p r $.
    q1pval.q $e |- Q = ( quot1p ` R ) $.
    q1pval.p $e |- P = ( Poly1 ` R ) $.
    q1pval.b $e |- B = ( Base ` P ) $.
    q1pval.d $e |- D = ( deg1 ` R ) $.
    q1pval.m $e |- .- = ( -g ` P ) $.
    q1pval.t $e |- .x. = ( .r ` P ) $.
    $( Value of the univariate polynomial quotient function.  (Contributed by
       Stefan O'Rear, 28-Mar-2015.) $)
    q1pval $p |- ( ( F e. B /\ G e. B ) -> ( F Q G ) =
          ( iota_ q e. B ( D ` ( F .- ( q .x. G ) ) ) < ( D ` G ) ) ) $=
      ( vf cfv cvv wceq vg vr vp vb wcel wa cv clt crio cmpt2 cpl1 elbasfv cq1p
      co wbr cbs cmulr csg cdg1 fveq2 syl6eqr csbeq1d fvex eqeltri adantl simpr
      csb a1i ad2antrr ad2antlr eqidd oveqd oveq123d fveq12d fveq1d riotaeqbidv
      breq12d mpt2eq123dv csbied eqtrd df-q1p mpt2ex fvmpt syl5eq syl oveqan12d
      id oveq2 fveq2d riotabidv simpl riotaex ovmpt2d ) GAUEZHAUEZUFZQUAGHAAQUG
      ZJUGZUAUGZFUNZIUNZBRZWSBRZUHUOZJAUIZGWRHFUNZIUNZBRZHBRZUHUOZJAUIZDSWODQUA
      AAXEUJZTZWNWOESUEZXMACUKHELMULXNDEUMRXLKUBEUCUBUGZUKRZUDUCUGZUPRZQUAUDUGZ
      XSWQWRWSXQUQRZUNZXQURRZUNZXOUSRZRZWSYDRZUHUOZJXSUIZUJZVGZVGZXLSUMXOETZYKU
      CCYJVGXLYLUCXPCYJYLXPEUKRZCXOEUKUTLVAVBYLUCCYJXLSCSUEYLCYMSLEUKVCVDVHYLXQ
      CTZUFZYJUDAYIVGXLYOUDXRAYIYOXRCUPRZAYNXRYPTYLXQCUPUTVEMVAVBYOUDAYIXLSASUE
      YOAYPSMCUPVCVDZVHYOXSATZUFZQUAXSXSYHAAXEYOYRVFZYTYSYGXDJXSAYTYSYEXBYFXCUH
      YSYCXAYDBYSYDEUSRZBYLYDUUATYNYRXOEUSUTVINVAZYSWQWQYAWTYBIYSYBCURRZIYNYBUU
      CTYLYRXQCURUTVJOVAYSWQVKYSXTFWRWSYSXTCUQRZFYNXTUUDTYLYRXQCUQUTVJPVAVLVMVN
      YSWSYDBUUBVOVQVPVRVSVTVSVTQUAUBJUCUDWAQUAAAXEYQYQWBWCWDWEVEWQGTZWSHTZUFZX
      EXKTWPUUGXDXJJAUUGXBXHXCXIUHUUGXAXGBUUEUUFWQGWTXFIUUEWGWSHWRFWHWFWIUUFXCX
      ITUUEWSHBUTVEVQWJVEWNWOWKWNWOVFXKSUEWPXJJAWLVHWM $.

    $d C q $.  $d D q $.  $d .- q $.  $d .x. q $.  $d X q $.
    q1peqb.c $e |- C = ( Unic1p ` R ) $.
    $( Characterizing property of the polynomial quotient.  (Contributed by
       Stefan O'Rear, 28-Mar-2015.) $)
    q1peqb $p |- ( ( R e. Ring /\ F e. B /\ G e. C ) ->
        ( ( X e. B /\ ( D ` ( F .- ( X .x. G ) ) ) < ( D ` G ) ) <->
          ( F Q G ) = X ) ) $=
      ( vq wcel crg w3a cvv co cfv clt wbr wa wceq elex adantr ovex eleq1 mpbii
      wi a1i wb cio simpr weu wreu cui c0g eqid simp1 simp2 uc1pcl 3ad2ant3 wne
      uc1pn0 cco1 uc1pldg ply1divalg2 df-reu sylib oveq2d fveq2d breq1d anbi12d
      cv oveq1 adantl iota2d crio q1pval syl2anc syl6eq eqeq1d bitr4d pm5.21ndd
      df-riota ex ) FUATZHATZIBTZUBZKUCTZKATZHKIGUDZJUDZCUEZICUEZUFUGZUHZHIEUDZ
      KUIZXDWQUOWPWRWQXCKAUJUKUPXFWQUOWPXFXEUCTWQHIEULXEKUCUMUNUPWPWQXDXFUQWPWQ
      UHZXDSVTZATZHXHIGUDZJUDZCUEZXBUFUGZUHZSURZKUIXFXGXNXDSKUCWPWQUSWPXNSUTZWQ
      WPXMSAVAXPWPACDFGFVBUEZHIJDVCUEZSMONPXRVDZQWMWNWOVEWMWNWOVFZWOWMIATZWNABD
      FIMNRVGVHZWOWMIXRVIWNBDFIXRMXSRVJVHWOWMXBIVKUEUEXQTWNBCFXQIOXQVDZRVLVHYCV
      MXMSAVNVOUKXHKUIZXNXDUQXGYDXIWRXMXCXHKAUMYDXLXAXBUFYDXKWTCYDXJWSHJXHKIGWA
      VPVQVRVSWBWCXGXEXOKWPXEXOUIWQWPXEXMSAWDZXOWPWNYAXEYEUIXTYBACDEFGHIJSLMNOP
      QWEWFXMSAWKWGUKWHWIWLWJ $.
  $}

  ${
    q1pcl.q $e |- Q = ( quot1p ` R ) $.
    q1pcl.p $e |- P = ( Poly1 ` R ) $.
    q1pcl.b $e |- B = ( Base ` P ) $.
    q1pcl.c $e |- C = ( Unic1p ` R ) $.
    $( Closure of the quotient by a unitic polynomial.  (Contributed by Stefan
       O'Rear, 28-Mar-2015.) $)
    q1pcl $p |- ( ( R e. Ring /\ F e. B /\ G e. C ) -> ( F Q G ) e. B ) $=
      ( crg wcel w3a co cmulr cfv csg cdg1 eqid clt wbr wa q1peqb mpbiri simpld
      wceq ) ELMFAMGBMNZFGDOZAMZFUIGCPQZOCRQZOESQZQGUMQUAUBZUHUJUNUCUIUIUGUITAB
      UMCDEUKFGULUIHIJUMTULTUKTKUDUEUF $.
  $}

  ${
    r1pval.e $e |- E = ( rem1p ` R ) $.
    r1pval.p $e |- P = ( Poly1 ` R ) $.
    r1pval.b $e |- B = ( Base ` P ) $.
    ${
      $d B b f g r $.  $d F f g $.  $d G f g $.  $d .- b f g r $.
      $d Q b f g r $.  $d R b f g r $.  $d .x. b f g r $.
      r1pval.q $e |- Q = ( quot1p ` R ) $.
      r1pval.t $e |- .x. = ( .r ` P ) $.
      r1pval.m $e |- .- = ( -g ` P ) $.
      $( Value of the polynomial remainder function.  (Contributed by Stefan
         O'Rear, 28-Mar-2015.) $)
      r1pval $p |- ( ( F e. B /\ G e. B ) -> ( F E G ) =
          ( F .- ( ( F Q G ) .x. G ) ) ) $=
        ( vf vg co wceq cfv vr vb wcel wa cv cvv cmpt2 cpl1 elbasfv adantr cr1p
        cbs cq1p cmulr csg csb fveq2 syl6eqr fveq2d csbeq1d eqeltri simpr eqidd
        fvex oveqd oveq123d mpt2eq123dv csbied eqtrd df-r1p mpt2ex fvmpt syl5eq
        a1i syl simpl oveq12 oveq12d adantl ovexd ovmpt2d ) GAUCZHAUCZUDZPQGHAA
        PUEZWEQUEZCRZWFERZIRZGGHCRZHERZIRZFUFWDDUFUCZFPQAAWIUGZSWBWMWCABUHGDKLU
        IUJWMFDUKTWNJUADUBUAUEZUHTZULTZPQUBUEZWRWEWEWFWOUMTZRZWFWPUNTZRZWPUOTZR
        ZUGZUPZWNUFUKWODSZXFUBAXEUPWNXGUBWQAXEXGWQBULTZAXGWPBULXGWPDUHTBWODUHUQ
        KURZUSLURUTXGUBAXEWNUFAUFUCXGAXHUFLBULVDVAZVNXGWRASZUDPQWRWRXDAAWIXGXKV
        BZXLXGXDWISXKXGWEWEXBWHXCIXGXCBUOTIXGWPBUOXIUSOURXGWEVCXGWTWGWFWFXAEXGX
        ABUNTEXGWPBUNXIUSNURXGWSCWEWFXGWSDUMTCWODUMUQMURVEXGWFVCVFVFUJVGVHVIPQU
        AUBVJPQAAWIXJXJVKVLVMVOWEGSZWFHSZUDZWIWLSWDXOWEGWHWKIXMXNVPXOWGWJWFHEWE
        GWFHCVQXMXNVBVRVRVSWBWCVPWBWCVBWDGWKIVTWA $.
    $}

    r1pcl.c $e |- C = ( Unic1p ` R ) $.
    $( Closure of remainder following division by a unitic polynomial.
       (Contributed by Stefan O'Rear, 28-Mar-2015.) $)
    r1pcl $p |- ( ( R e. Ring /\ F e. B /\ G e. C ) -> ( F E G ) e. B ) $=
      ( crg wcel w3a co cq1p cfv cmulr eqid syl3anc wceq uc1pcl 3ad2ant3 r1pval
      csg simp2 syl2anc cgrp ply1ring 3ad2ant1 ringgrp syl q1pcl ringcl eqeltrd
      grpsubcl ) DLMZFAMZGBMZNZFGEOZFFGDPQZOZGCRQZOZCUEQZOZAUTURGAMZVAVGUAUQURU
      SUFZUSUQVHURABCDGIJKUBUCZACVBDVDEFGVFHIJVBSZVDSZVFSZUDUGUTCUHMZURVEAMZVGA
      MUTCLMZVNUQURVPUSCDIUIUJZCUKULVIUTVPVCAMVHVOVQABCVBDFGVKIJKUMVJACVDVCGJVL
      UNTACVFFVEJVMUPTUO $.

    r1pdeglt.d $e |- D = ( deg1 ` R ) $.
    $( The remainder has a degree smaller than the divisor.  (Contributed by
       Stefan O'Rear, 28-Mar-2015.) $)
    r1pdeglt $p |- ( ( R e. Ring /\ F e. B /\ G e. C ) ->
        ( D ` ( F E G ) ) < ( D ` G ) ) $=
      ( crg wcel co cfv clt wceq eqid w3a cq1p cmulr csg uc1pcl 3ad2ant3 r1pval
      simp2 syl2anc fveq2d wbr wa q1peqb mpbiri simprd eqbrtrd ) ENOZGAOZHBOZUA
      ZGHFPZCQGGHEUBQZPZHDUCQZPDUDQZPZCQZHCQZRUTVAVFCUTURHAOZVAVFSUQURUSUHUSUQV
      IURABDEHJKLUEUFADVBEVDFGHVEIJKVBTZVDTZVETZUGUIUJUTVCAOZVGVHRUKZUTVMVNULVC
      VCSVCTABCDVBEVDGHVEVCVJJKMVLVKLUMUNUOUP $.
  $}

  ${
    r1pid.p $e |- P = ( Poly1 ` R ) $.
    r1pid.b $e |- B = ( Base ` P ) $.
    r1pid.c $e |- C = ( Unic1p ` R ) $.
    r1pid.q $e |- Q = ( quot1p ` R ) $.
    r1pid.e $e |- E = ( rem1p ` R ) $.
    r1pid.t $e |- .x. = ( .r ` P ) $.
    r1pid.m $e |- .+ = ( +g ` P ) $.
    $( Express the original polynomial ` F ` as ` F = ( q x. G ) + r ` using
       the quotient and remainder functions for ` q ` and ` r ` .  (Contributed
       by Mario Carneiro, 5-Jun-2015.) $)
    r1pid $p |- ( ( R e. Ring /\ F e. B /\ G e. C ) ->
      F = ( ( ( F Q G ) .x. G ) .+ ( F E G ) ) ) $=
      ( wcel co syl3anc crg w3a csg wceq uc1pcl eqid r1pval sylan2 3adant1 cabl
      cfv oveq2d ply1ring 3ad2ant1 ringabl syl q1pcl 3ad2ant3 ringcl cgrp simp2
      ringgrp grpsubcl ablcom grpnpcan 3eqtrrd ) FUARZIARZJBRZUBZIJESZJGSZIJHSZ
      DSVLIVLCUCUKZSZDSZVOVLDSZIVJVMVOVLDVHVIVMVOUDZVGVIVHJARZVRABCFJKLMUEZACEF
      GHIJVNOKLNPVNUFZUGUHUIULVJCUJRZVLARZVOARZVPVQUDVJCUARZWBVGVHWEVICFKUMUNZC
      UOUPVJWEVKARVSWCWFABCEFIJNKLMUQVIVGVSVHVTURACGVKJLPUSTZVJCUTRZVHWCWDVJWEW
      HWFCVBUPZVGVHVIVAZWGACVNIVLLWAVCTADCVLVOLQVDTVJWHVHWCVQIUDWIWJWGADCVNIVLL
      QWAVETVF $.
  $}

  ${
    dvdsq1p.p $e |- P = ( Poly1 ` R ) $.
    dvdsq1p.d $e |- .|| = ( ||r ` P ) $.
    dvdsq1p.b $e |- B = ( Base ` P ) $.
    dvdsq1p.c $e |- C = ( Unic1p ` R ) $.
    ${
      $d B q $.  $d C q $.  $d F q $.  $d G q $.  $d P q $.  $d Q q $.
      $d R q $.  $d .x. q $.
      dvdsq1p.t $e |- .x. = ( .r ` P ) $.
      dvdsq1p.q $e |- Q = ( quot1p ` R ) $.
      $( Divisibility in a polynomial ring is witnessed by the quotient.
         (Contributed by Stefan O'Rear, 28-Mar-2015.) $)
      dvdsq1p $p |- ( ( R e. Ring /\ F e. B /\ G e. C ) -> ( G .|| F <->
            F = ( ( F Q G ) .x. G ) ) ) $=
        ( vq wcel wceq syl cfv crg w3a wbr co cv wrex wb uc1pcl 3ad2ant3 dvdsr2
        wa eqcom simprr csg cdg1 clt simprl cmnf c0g cgrp simpl1 ringgrp simpl2
        ply1ring simpr adantr ringcl syl3anc eqid grpsubeq0 biimprd impr fveq2d
        deg1z eqtrd cr cn0 uc1pdeg 3adant2 nn0red mnflt eqbrtrd q1peqb mpbi2and
        oveq1d eqtr4d expr syl5bi rexlimdva sylbid q1pcl dvdsrmul syl2anc breq2
        syl5ibrcom impbid ) FUAQZHAQZIBQZUBZIHCUCZHHIEUDZIGUDZRZWTXAPUEZIGUDZHR
        ZPAUFZXDWTIAQZXAXHUGWSWQXIWRABDFIJLMUHUIZPACDGIHLKNUJSWTXGXDPAXGHXFRZWT
        XEAQZUKZXDXFHULWTXLXKXDWTXLXKUKZUKZHXFXCWTXLXKUMXOXBXEIGXOXLHXFDUNTZUDZ
        FUOTZTZIXRTZUPUCZXBXERZWTXLXKUQXOXSURXTUPXOXSDUSTZXRTZURXOXQYCXRWTXLXKX
        QYCRZXMYEXKXMDUTQZWRXFAQZYEXKUGXMDUAQZYFXMWQYHWQWRWSXLVADFJVDSZDVBSWQWR
        WSXLVCXMYHXLXIYGYIWTXLVEWTXIXLXJVFADGXEILNVGVHADXPHXFYCLYCVIZXPVIZVJVHV
        KVLVMXOWQYDURRWQWRWSXNVAXRDFYCXRVIZJYJVNSVOXOXTVPQZURXTUPUCWTYMXNWTXTWQ
        WSXTVQQWRBXRFIYLMVRVSVTVFXTWASWBWTXLYAUKYBUGXNABXRDEFGHIXPXEOJLYLYKNMWC
        VFWDWEWFWGWHWIWJWTXAXDIXCCUCZWTXIXBAQYNXJABDEFHIOJLMWKACDGIXBLKNWLWMHXC
        ICWNWOWP $.
    $}

    ${
      dvdsr1p.z $e |- .0. = ( 0g ` P ) $.
      dvdsr1p.e $e |- E = ( rem1p ` R ) $.
      $( Divisibility in a polynomial ring in terms of the remainder.
         (Contributed by Stefan O'Rear, 28-Mar-2015.) $)
      dvdsr1p $p |- ( ( R e. Ring /\ F e. B /\ G e. C ) -> ( G .|| F <->
            ( F E G ) = .0. ) ) $=
        ( wcel cfv co wceq eqid crg w3a cq1p cmulr csg wbr wb ply1ring 3ad2ant1
        ringgrp syl simp2 q1pcl uc1pcl 3ad2ant3 ringcl syl3anc grpsubeq0 r1pval
        cgrp syl2anc eqeq1d dvdsq1p 3bitr4rd ) EUAPZGAPZHBPZUBZGGHEUCQZRZHDUDQZ
        RZDUEQZRZISZGVLSZGHFRZISHGCUFVHDUTPZVFVLAPZVOVPUGVHDUAPZVRVEVFVTVGDEJUH
        UIZDUJUKVEVFVGULZVHVTVJAPHAPZVSWAABDVIEGHVITZJLMUMVGVEWCVFABDEHJLMUNUOZ
        ADVKVJHLVKTZUPUQADVMGVLILNVMTZURUQVHVQVNIVHVFWCVQVNSWBWEADVIEVKFGHVMOJL
        WDWFWGUSVAVBABCDVIEVKGHJKLMWFWDVCVD $.
    $}
  $}

  ${
    $d x A $.  $d x G $.  $d x K $.  $d x N $.  $d x O $.  $d x P $.  $d x R $.
    $d x ph $.  $d x .0. $.
    ply1rem.p $e |- P = ( Poly1 ` R ) $.
    ply1rem.b $e |- B = ( Base ` P ) $.
    ply1rem.k $e |- K = ( Base ` R ) $.
    ply1rem.x $e |- X = ( var1 ` R ) $.
    ply1rem.m $e |- .- = ( -g ` P ) $.
    ply1rem.a $e |- A = ( algSc ` P ) $.
    ply1rem.g $e |- G = ( X .- ( A ` N ) ) $.
    ply1rem.o $e |- O = ( eval1 ` R ) $.
    ply1rem.1 $e |- ( ph -> R e. NzRing ) $.
    ply1rem.2 $e |- ( ph -> R e. CRing ) $.
    ply1rem.3 $e |- ( ph -> N e. K ) $.
    ${
      ply1rem.u $e |- U = ( Monic1p ` R ) $.
      ply1rem.d $e |- D = ( deg1 ` R ) $.
      ply1rem.z $e |- .0. = ( 0g ` R ) $.
      $( A term of the form ` x - N ` is linear, monic, and has exactly one
         zero.  (Contributed by Mario Carneiro, 12-Jun-2015.) $)
      ply1remlem $p |- ( ph ->
         ( G e. U /\ ( D ` G ) = 1 /\ ( `' ( O ` G ) " { .0. } ) = { N } ) ) $=
        ( vx wcel cfv wceq ccnv csn cima c0g wne cco1 cur cgrp crg cnzr nzrring
        c1 co syl ply1ring ringgrp vr1cl wf ply1sclf ffvelrnd grpsubcl syl5eqel
        syl3anc cn0 fveq2i clt cc0 cxr deg1xrcl 0xr a1i 1re rexr mp1i deg1sclle
        cle wbr syl2anc 0lt1 xrlelttrd cmgp cmg eqid mgpbas mulg1 fveq2d deg1pw
        cr 1nn0 sylancl eqtr3d breqtrrd deg1sub syl5eq eqtrd syl6eqel wb mpbird
        deg1nn0clb csg fveq1i coe1subfv syl31anc cvsca csca oveq2d oveq1d clmod
        ply1sca ply1lmod lmodvs1 3eqtrd fveq1d coe1tmfv1 cv cif coe1scl ax-1ne0
        ringidcl cmpt neeq1 mpbiri ifnefalse fvex wa adantr cbs cvv fvmpt ax-mp
        syl6eq oveq12d grpsubid1 ismon1p syl3anbrc ccrg simpr evl1vard evl1scad
        evl1subd simprd grpsubeq0 bitrd velsn syl6bbr pm5.32da wfn cpws eqeltri
        eqeq1d crh evl1rhm rhmf pwselbas ffn fniniseg snssd sseld 3bitr4d eqrdv
        pm4.71rd 3jca ) AHGUJZHDUKZVDULHLUKZUMNUNUOZKUNZULAHCUJZHEUPUKZUQZUVPHU
        RUKZUKZFUSUKZULUVOAHMKBUKZJVEZCUAAEUTUJZMCUJZUWFCUJZUWGCUJZAEVAUJZUWHAF
        VAUJZUWLAFVBUJZUWMUCFVCVFZEFOVGVFEVHVFAUWMUWIUWOCEFMROPVIVFZAICKBAUWMIC
        BVJUWOBCEFIOTQPVKVFUEVLZCEJMUWFPSVMVOVNZAUWBUVPVPUJZAUVPVDVPAUVPMDUKZVD
        AUVPUWGDUKUWTHUWGDUAVQACDFMUWFJEOUGUWOPSUWPUWQAUWFDUKZVDUWTVRAUXAVSVDAU
        WJUXAVTUJUWQCDEFUWFUGOPWAVFVSVTUJAWBWCVDWTUJVDVTUJAWDVDWEWFAUWMKIUJZUXA
        VSWHWIUWOUEBDEFKIUGOQTWGWJVSVDVRWIAWKWCWLAVDMEWMUKZWNUKZVEZDUKZUWTVDAUX
        EMDAUWIUXEMULUWPCUXDUXCMCEUXCUXCWOZPWPUXDWOZWQVFZWRAUWNVDVPUJZUXFVDULUC
        XADEFUXDVDUXCMUGORUXGUXHWSXBXCZXDXEXFUXKXGZXAXHAUWMUVTUWBUWSXIUWOUWRCDE
        FHUWAUGOUWAWOZPXKWJXJAUWDVDUWCUKZVDMURUKZUKZVDUWFURUKZUKZFXLUKZVEZUWEAU
        VPVDUWCUXLWRAUXNVDUWGURUKZUKZUXTVDUWCUYAHUWGURUAVQXMAUWMUWIUWJUXJUYBUXT
        ULUWOUWPUWQUXJAXAWCZCFMUWFJUXSVDEOPSUXSWOZXNXOXFAUXTUWEFUPUKZUXSVEZUWEA
        UXPUWEUXRUYEUXSAVDUWEUXEEXPUKZVEZURUKZUKZUXPUWEAVDUYIUXOAUYHMURAUYHUWEM
        UYGVEEXQUKZUSUKZMUYGVEZMAUXEMUWEUYGUXIXRAUWEUYLMUYGAFUYKUSAUWNFUYKULUCE
        FVBOYAVFWRXSAEXTUJZUWIUYMMULAUWMUYNUWOEFOYBVFUWPUYGUYLUYKCEMPUYKWOUYGWO
        ZUYLWOYCWJYDWRYEAUWMUWEIUJZUXJUYJUWEULUWOAUWMUYPUWOIFUWEQUWEWOZYKVFZUYC
        UWEVDEFUYGUXDIUXCMNUHQORUYOUXGUXHYFVOXCAUXRVDUIVPUIYGZVSULKUYEYHZYLZUKZ
        UYEAVDUXQVUAAUWMUXBUXQVUAULUWOUEUIBEFIKUYEOTQUYEWOZYIWJYEUXJVUBUYEULXAU
        IVDUYTUYEVPVUAUYSVDULZUYSVSUQZUYTUYEULVUDVUEVDVSUQYJUYSVDVSYMYNUYSVSKUY
        EYOVFVUAWOFUPYPUUAUUBUUCUUDAFUTUJZUYPUYFUWEULAUWMVUFUWOFVHVFZUYRIFUXSUW
        EUYEQVUCUYDUUEWJXGYDCDEFUWEHGUWAOPUXMUGUFUYQUUFUUGUXLAUIUVRUVSAUYSIUJZU
        YSUVQUKZNULZYQZVUHUYSUVSUJZYQUYSUVRUJZVULAVUHVUJVULAVUHYQZVUJUYSKULZVUL
        VUNVUJUYSKUXSVEZNULZVUOVUNVUIVUPNVUNVUIUYSUWGLUKZUKZVUPUYSUVQVURHUWGLUA
        VQXMVUNUWKVUSVUPULVUNIUXSEFCMJUWFLUYSKUYSUBOQPAFUUHUJZVUHUDYRZAVUHUUIZV
        UNIEFCLMUYSUBRQOPVVAVVBUUJVUNBIEFCLKUYSUBOQTPVVAAUXBVUHUEYRZVVBUUKSUYDU
        ULUUMXFUVBVUNVUFVUHUXBVUQVUOXIAVUFVUHVUGYRVVBVVCIFUXSUYSKNQUHUYDUUNVOUU
        OUIKUUPUUQUURAUVQIUUSZVUMVUKXIAIIUVQVJVVDAIFIFIUUTVEZYSUKZVBUVQVVEYTVVE
        WOZQVVFWOZUCIYTUJAIFYSUKYTQFYSYPUVAWCACVVFHLALEVVEUVCVEUJZCVVFLVJAVUTVV
        IUDIEFVVELUBOVVGQUVDVFCVVFEVVELPVVHUVEVFUWRVLUVFIIUVQUVGVFINUYSUVQUVHVF
        AVULVUHAUVSIUYSAKIUEUVIUVJUVMUVKUVLUVN $.
    $}

    ply1rem.4 $e |- ( ph -> F e. B ) $.
    ${
      ply1rem.e $e |- E = ( rem1p ` R ) $.
      $( The polynomial remainder theorem, or little B&eacute;zout's theorem
         (by contrast to the regular B&eacute;zout's theorem ~ bezout ).  If a
         polynomial ` F ` is divided by the linear factor ` x - A ` , the
         remainder is equal to ` F ( A ) ` , the evaluation of the polynomial
         at ` A ` (interpreted as a constant polynomial).  (Contributed by
         Mario Carneiro, 12-Jun-2015.) $)
      ply1rem $p |- ( ph ->
        ( F E G ) = ( A ` ( ( O ` F ) ` N ) ) ) $=
        ( co cc0 cco1 cfv cdg1 cle wbr wceq cn0 wcel csn c1 caddc clt crg cuc1p
        cmnf cnzr nzrring syl cmn1 ccnv c0g cima eqid ply1remlem simp1d syl2anc
        mon1puc1p r1pdeglt syl3anc simp2d breqtrd 1e0p1 syl6breq 0nn0 nn0leltp1
        wb mpan2 syl5ibrcom wi elsni cxr 0xr mnfle ax-mp syl6eqbr a1i cun r1pcl
        deg1cl elun sylib mpjaod deg1le0 mpbid cq1p cmulr cplusg cof cpws r1pid
        wo fveq2d cghm ccrg evl1rhm rhmghm ply1ring q1pcl mon1pcl ringcl ghmlin
        crh cbs cvv fvex eqeltri wf rhmf ffvelrnd pwsplusgval 3eqtrd fveq1d wfn
        pwselbas ffn fnfvof syl22anc rhmmul pwsmulrval eqtrd wa snidg cxp coe1f
        simp3d eleqtrrd simprd oveq2d ringrz oveq1d cgrp ringgrp grplid ffvelrn
        fniniseg sylancl evl1sca fvconst2 eqtr4d ) AGHFUGZUHUURUIUJZUJZBUJZKGLU
        JZUJZBUJAUUREUKUJZUJZUHULUMZUURUVAUNZAUVEUOUPZUVFUVEVCUQZUPZAUVFUVHUVEU
        HURUSUGZUTUMZAUVEURUVKUTAUVEHUVDUJZURUTAEVAUPZGCUPZHEVBUJZUPZUVEUVMUTUM
        AEVDUPUVNUBEVEVFZUEAUVNHEVGUJZUPZUVQUVRAUVTUVMURUNZHLUJZVHEVIUJZUQVJZKU
        QZUNZABCUVDDEUVSHIJKLMUWCNOPQRSTUAUBUCUDUVSVKZUVDVKZUWCVKZVLZVMZUVPEUVS
        HUVPVKZUWGVOVNZCUVPUVDDEFGHUFNOUWLUWHVPVQAUVTUWAUWFUWJVRVSVTWAUVHUHUOUP
        ZUVFUVLWDWBUVEUHWCWEWFUVJUVFWGAUVJUVEVCUHULUVEVCWHUHWIUPVCUHULUMWJUHWKW
        LWMWNAUVEUOUVIWOUPZUVHUVJXIAUURCUPZUWOAUVNUVOUVQUWPUVRUEUWMCUVPDEFGHUFN
        OUWLWPVQZCUVDDEUURUWHNOWQVFUVEUOUVIWRWSWTAUVNUWPUVFUVGWDUVRUWQBCUVDDEUU
        RUWHNOSXAVNXBZAUVCUUTBAUVCKGHEXCUJZUGZHDXDUJZUGZLUJZUURLUJZEXEUJZXFUGZU
        JZKUXDUJZUUTAKUVBUXFAUVBUXBUURDXEUJZUGZLUJZUXCUXDEIXGUGZXEUJZUGZUXFAGUX
        JLAUVNUVOUVQGUXJUNUVRUEUWMCUVPDUXIUWSEUXAFGHNOUWLUWSVKZUFUXAVKZUXIVKZXH
        VQXJALDUXLXKUGUPZUXBCUPZUWPUXKUXNUNALDUXLXTUGUPZUXRAEXLUPZUXTUCIDEUXLLU
        ANUXLVKZPXMVFZDUXLLXNVFADVAUPZUWTCUPZHCUPZUXSAUVNUYDUVRDENXOVFAUVNUVOUV
        QUYEUVRUEUWMCUVPDUWSEGHUXONOUWLXPVQZAUVTUYFUWKCDEHUVSNOUWGXQVFZCDUXAUWT
        HOUXPXRVQZUWQUXIUXMDUXLUXBLUURCOUXQUXMVKZXSVQAUXLYAUJZUXEUXMEUXCUXDIVDY
        BUXLUYBUYKVKZUBIYBUPZAIEYAUJYBPEYAYCYDWNZACUYKUXBLAUXTCUYKLYEUYCCUYKDUX
        LLOUYLYFVFZUYIYGZACUYKUURLUYOUWQYGZUXEVKZUYJYHYIYJAUXGKUXCUJZUXHUXEUGZU
        WCUXHUXEUGZUXHAUXCIYKZUXDIYKZUYMKIUPZUXGUYTUNAIIUXCYEVUBAIEIUYKVDUXCUXL
        YBUYBPUYLUBUYNUYPYLIIUXCYMVFAIIUXDYEVUCAIEIUYKVDUXDUXLYBUYBPUYLUBUYNUYQ
        YLZIIUXDYMVFUYNUDIUXEUXCUXDYBKYNYOAUYSUWCUXHUXEAUYSKUWTLUJZUWBEXDUJZXFU
        GZUJZKVUFUJZKUWBUJZVUGUGZUWCAKUXCVUHAUXCVUFUWBUXLXDUJZUGZVUHAUXTUYEUYFU
        XCVUNUNUYCUYGUYHUWTHDUXLUXAVUMLCOUXPVUMVKZYPVQAUYKEVUMVUGVUFUWBIVDYBUXL
        UYBUYLUBUYNACUYKUWTLUYOUYGYGZACUYKHLUYOUYHYGZVUGVKZVUOYQYRYJAVUFIYKZUWB
        IYKZUYMVUDVUIVULUNAIIVUFYEVUSAIEIUYKVDVUFUXLYBUYBPUYLUBUYNVUPYLZIIVUFYM
        VFAIIUWBYEVUTAIEIUYKVDUWBUXLYBUYBPUYLUBUYNVUQYLIIUWBYMVFZUYNUDIVUGVUFUW
        BYBKYNYOAVULVUJUWCVUGUGZUWCAVUKUWCVUJVUGAVUDVUKUWCUNZAKUWDUPZVUDVVDYSZA
        KUWEUWDAVUDKUWEUPUDKIYTVFAUVTUWAUWFUWJUUCUUDAVUTVVEVVFWDVVBIUWCKUWBUUMV
        FXBUUEUUFAUVNVUJIUPVVCUWCUNUVRAIIKVUFVVAUDYGIEVUGVUJUWCPVURUWIUUGVNYRYI
        UUHAEUUIUPZUXHIUPVUAUXHUNAUVNVVGUVREUUJVFAIIKUXDVUEUDYGIUXEEUXHUWCPUYRU
        WIUUKVNYIAUXHKIUUTUQUUAZUJZUUTAKUXDVVHAUXDUVALUJZVVHAUURUVALUWRXJAUYAUU
        TIUPZVVJVVHUNUCAUOIUUSYEZUWNVVKAUWPVVLUWQUUSCDEUURIUUSVKONPUUBVFWBUOIUH
        UUSUULUUNBIDELUUTUANPSUUOVNYRYJAVUDVVIUUTUNUDIUUTKUHUUSYCUUPVFYRYIXJUUQ
        $.
    $}

    facth1.z $e |- .0. = ( 0g ` R ) $.
    facth1.d $e |- .|| = ( ||r ` P ) $.
    $( The factor theorem and its converse.  A polynomial ` F ` has a root at
       ` A ` iff ` G = x - A ` is a factor of ` F ` .  (Contributed by Mario
       Carneiro, 12-Jun-2015.) $)
    facth1 $p |- ( ph -> ( G .|| F <-> ( ( O ` F ) ` N ) = .0. ) ) $=
      ( wbr cr1p cfv co c0g wceq crg wcel cuc1p cnzr nzrring syl cmn1 cdg1 ccnv
      csn cima eqid ply1remlem simp1d mon1puc1p syl2anc dvdsr1p syl3anc ply1rem
      ply1scl0 eqcomd eqeq12d wf1 ply1sclf1 fveval1fvcl ring0cl f1fveq syl12anc
      wb c1 3bitrd ) AHGDUIZGHFUJUKZULZEUMUKZUNZKGLUKUKZBUKZNBUKZUNZWKNUNZAFUOU
      PZGCUPHFUQUKZUPZWFWJWCAFURUPWPUCFUSUTZUFAWPHFVAUKZUPZWRWSAXAHFVBUKZUKWDUN
      HLUKVCNVDVEKVDUNABCXBEFWTHIJKLMNOPQRSTUAUBUCUDUEWTVFZXBVFUGVGVHWQFWTHWQVF
      ZXCVIVJCWQDEFWGGHWIOUHPXDWIVFZWGVFZVKVLAWHWLWIWMABCEFWGGHIJKLMOPQRSTUAUBU
      CUDUEUFXFVMAWMWIAWPWMWIUNWSBEFWINOTUGXEVNUTVOVPAICBVQZWKIUPNIUPZWNWOWCAWP
      XGWSBCEFIOTQPVRUTAIEFCGLKUBOQPUDUEUFVSAWPXHWSIFNQUGVTUTICWKNBWAWBWE $.
  $}

  ${
    $d d f g x B $.  $d d f g x D $.  $d f g x F $.  $d g N $.  $d d f g x O $.
    $d g x G $.  $d g P $.  $d x ph $.  $d d f g x R $.  $d d f g x W $.
    $d x T $.
    fta1g.p $e |- P = ( Poly1 ` R ) $.
    fta1g.b $e |- B = ( Base ` P ) $.
    fta1g.d $e |- D = ( deg1 ` R ) $.
    fta1g.o $e |- O = ( eval1 ` R ) $.
    fta1g.w $e |- W = ( 0g ` R ) $.
    fta1g.z $e |- .0. = ( 0g ` P ) $.
    fta1g.1 $e |- ( ph -> R e. IDomn ) $.
    fta1g.2 $e |- ( ph -> F e. B ) $.
    ${
      fta1glem.k $e |- K = ( Base ` R ) $.
      fta1glem.x $e |- X = ( var1 ` R ) $.
      fta1glem.m $e |- .- = ( -g ` P ) $.
      fta1glem.a $e |- A = ( algSc ` P ) $.
      fta1glem.g $e |- G = ( X .- ( A ` T ) ) $.
      fta1glem.3 $e |- ( ph -> N e. NN0 ) $.
      fta1glem.4 $e |- ( ph -> ( D ` F ) = ( N + 1 ) ) $.
      fta1glem.5 $e |- ( ph -> T e. ( `' ( O ` F ) " { W } ) ) $.
      $( Lemma for ~ fta1g .  (Contributed by Mario Carneiro, 7-Jun-2016.) $)
      fta1glem1 $p |- ( ph -> ( D ` ( F ( quot1p ` R ) G ) ) = N ) $=
        ( c1 cq1p cfv co 1cnd crg wcel wne cnzr cidom cdomn ccrg isidom simprbi
        cn0 domnnzr syl nzrring cuc1p cmn1 wceq ccnv csn cima simplbi wa wfn wb
        wf cpws cbs cvv eqid fvex eqeltri a1i crh evl1rhm ffvelrnd pwselbas ffn
        fniniseg mpbid simpld ply1remlem simp1d mon1puc1p syl2anc q1pcl syl3anc
        rhmf cmulr caddc peano2nn0 eqeltrd deg1nn0clb mpbird cdsr simprd facth1
        dvdsq1p eqcomd ply1crng crngring mon1pcl ringlz 3netr4d oveq1 deg1nn0cl
        wbr necon3i nn0cnd crngcom eqtrd fveq2d crlreg simp2d 1nn0 syl6eqel cui
        cco1 wss unitrrg uc1pldg sseldd deg1mul2 3eqtr3d cc 3eqtr3rd addcanad
        ax-1cn addcom sylancl oveq1d ) AUMHIFUNUOZUPZDUOZLAUQAUUIAFURUSZUUHCUSZ
        UUHPUTZUUIVGUSAFVAUSZUUJAFVBUSZUUMUCUUNFVCUSZUUMUUNFVDUSZUUOFVEZVFFVHVI
        VIZFVJVIZAUUJHCUSZIFVKUOZUSZUUKUUSUDAUUJIFVLUOZUSZUVBUUSAUVDIDUOZUMVMZI
        MUOVNNVOZVPGVOVMZABCDEFUVCIJKGMONQRUEUFUGUHUITUURAUUNUUPUCUUNUUPUUOUUQV
        QVIZAGJUSZGHMUOZUONVMZAGUVKVNUVGVPUSZUVJUVLVRZULAUVKJVSZUVMUVNVTAJJUVKW
        AUVOAJFJFJWBUPZWCUOZVBUVKUVPWDUVPWEZUEUVQWEZUCJWDUSAJFWCUOWDUEFWCWFWGWH
        ACUVQHMAMEUVPWIUPUSZCUVQMWAAUUPUVTUVIJEFUVPMTQUVRUEWJVICUVQEUVPMRUVSXCV
        IUDWKWLJJUVKWMVIJNGUVKWNVIWOZWPZUVCWEZSUAWQZWRZUVAFUVCIUVAWEZUWCWSWTZCU
        VAEUUGFHIUUGWEZQRUWFXAXBZAUUHIEXDUOZUPZPIUWJUPZUTUULAHPUWKUWLAHPUTZHDUO
        ZVGUSZAUWNLUMXEUPZVGUKALVGUSUWPVGUSUJLXFVIXGAUUJUUTUWMUWOVTUUSUDCDEFHPS
        QUBRXHWTXIAHUWKAIHEXJUOZYBZHUWKVMZAUWRUVLAUVJUVLUWAXKABCUWQEFHIJKGMONQR
        UEUFUGUHUITUURUVIUWBUDUAUWQWEZXLXIAUUJUUTUVBUWRUWSVTUUSUDUWGCUVAUWQEUUG
        FUWJHIQUWTRUWFUWJWEZUWHXMXBWOZXNAEURUSZICUSZUWLPVMAEVDUSZUXCAUUPUXEUVIE
        FQXOVIZEXPVIAUVDUXDUWECEFIUVCQRUWCXQVIZCEUWJIPRUXAUBXRWTXSUUHPUWKUWLUUH
        PIUWJXTYCVIZCDEFUUHPSQUBRYAXBYDALUJYDZAUWPUVEUUIXEUPZUMLXEUPZUMUUIXEUPA
        UWNIUUHUWJUPZDUOUWPUXJAHUXLDAHUWKUXLUXBAUXEUUKUXDUWKUXLVMUXFUWIUXGCEUWJ
        UUHIRUXAYEXBYFYGUKACDEFUWJFYHUOZIUUHPSQUXMWEZRUXAUBUUSUXGAIPUTZUVEVGUSZ
        AUVEUMVGAUVDUVFUVHUWDYIZYJYKAUUJUXDUXOUXPVTUUSUXGCDEFIPSQUBRXHWTXIAFYLU
        OZUXMUVEIYMUOUOZAUUJUXRUXMYNUUSFUXRUXMUXNUXRWEZYOVIAUVBUXSUXRUSUWGUVADF
        UXRISUXTUWFYPVIYQUWIUXHYRYSALYTUSUMYTUSUWPUXKVMUXIUUCLUMUUDUUEAUVEUMUUI
        XEUXQUUFUUAUUB $.

      fta1glem.6 $e |- ( ph -> A. g e. B ( ( D ` g ) = N ->
        ( # ` ( `' ( O ` g ) " { W } ) ) <_ ( D ` g ) ) ) $.
      $( Lemma for ~ fta1g .  (Contributed by Mario Carneiro, 12-Jun-2015.) $)
      fta1glem2 $p |- ( ph ->
        ( # ` ( `' ( O ` F ) " { W } ) ) <_ ( D ` F ) ) $=
        ( vx cfv ccnv csn cima chash cq1p co cun cle cv wcel wceq wa cmulr cpws
        wo cof cdsr wbr wfn wb cbs cidom cvv eqid fvex eqeltri a1i crh wf cdomn
        ccrg isidom simplbi evl1rhm rhmf ffvelrnd pwselbas ffnd fniniseg simprd
        syl mpbid cnzr simprbi domnnzr simpld facth1 mpbird crg nzrring cmn1 c1
        cuc1p ply1remlem simp1d mon1puc1p syl2anc dvdsq1p syl3anc q1pcl mon1pcl
        fveq2d rhmmul pwsmulrval 3eqtrd fveq1d adantr simpr fnfvof eqtrd eqeq1d
        syl22anc ffvelrnda domneq0 caddc cfn cn0 wi fveq2 breqtrd hashcl nn0red
        sylancl cr bitrd pm5.32da andi syl6bb elun simp3d eleq2d bitr3d orbi12d
        syl5bb 3bitr4d eqrdv cnvex imaex wral fta1glem1 imaeq1d breq12d imbi12d
        cnveqd rspcv syl3c hashbnd snfi unfi peano2re peano2nn0 eqeltrd hashun2
        hashsng oveq2d 1red leadd1dd breqtrrd letrd eqbrtrd ) AINUPZUQOURZUSZUT
        UPIJFVAUPZVBZNUPZUQZUVRUSZGURZVCZUTUPZIDUPZVDAUVSUWFUTAUOUVSUWFAUOVEZKV
        FZUWIUVQUPZOVGZVHZUWJUWIUWBUPZOVGZVHZUWJUWIJNUPZUPZOVGZVHZVKZUWIUVSVFZU
        WIUWFVFZAUWMUWJUWOUWSVKZVHUXAAUWJUWLUXDAUWJVHZUWLUWNUWRFVIUPZVBZOVGZUXD
        UXEUWKUXGOUXEUWKUWIUWBUWQUXFVLVBZUPZUXGAUWKUXJVGUWJAUWIUVQUXIAUVQUWAJEV
        IUPZVBZNUPZUWBUWQFKVJVBZVIUPZVBZUXIAIUXLNAJIEVMUPZVNZIUXLVGZAUXRGUVQUPO
        VGZAGKVFZUXTAGUVSVFZUYAUXTVHZUMAUVQKVOZUYBUYCVPAKKUVQAKFKUXNVQUPZVRUVQU
        XNVSUXNVTZUFUYEVTZUDKVSVFZAKFVQUPVSUFFVQWAWBZWCZACUYEINANEUXNWDVBVFZCUY
        ENWEAFWGVFZUYKAFVRVFZUYLUDUYMUYLFWFVFZFWHZWIWQZKEFUXNNUARUYFUFWJWQZCUYE
        EUXNNSUYGWKWQZUEWLWMWNZKOGUVQWOWQWRZWPABCUXQEFIJKLGNPORSUFUGUHUIUJUAAUY
        MFWSVFZUDUYMUYNVUAUYMUYLUYNUYOWTZFXAWQWQZUYPAUYAUXTUYTXBZUEUBUXQVTZXCXD
        AFXEVFZICVFZJFXIUPZVFZUXRUXSVPAVUAVUFVUCFXFWQZUEAVUFJFXGUPZVFZVUIVUJAVU
        LJDUPXHVGZUWQUQUVRUSZUWEVGZABCDEFVUKJKLGNPORSUFUGUHUIUJUAVUCUYPVUDVUKVT
        ZTUBXJZXKZVUHFVUKJVUHVTZVUPXLXMZCVUHUXQEUVTFUXKIJRVUESVUSUXKVTZUVTVTZXN
        XOWRXRAUYKUWACVFZJCVFZUXMUXPVGUYQAVUFVUGVUIVVCVUJUEVUTCVUHEUVTFIJVVBRSV
        USXPXOZAVULVVDVURCEFJVUKRSVUPXQWQZUWAJEUXNUXKUXONCSVVAUXOVTZXSXOAUYEFUX
        OUXFUWBUWQKVRVSUXNUYFUYGUDUYJACUYEUWANUYRVVEWLZACUYEJNUYRVVFWLZUXFVTZVV
        GXTYAYBYCUXEUWBKVOZUWQKVOZUYHUWJUXJUXGVGAVVKUWJAKKUWBAKFKUYEVRUWBUXNVSU
        YFUFUYGUDUYJVVHWMZWNZYCAVVLUWJAKKUWQAKFKUYEVRUWQUXNVSUYFUFUYGUDUYJVVIWM
        ZWNZYCUYHUXEUYIWCAUWJYDKUXFUWBUWQVSUWIYEYHYFYGUXEUYNUWNKVFUWRKVFUXHUXDV
        PAUYNUWJAUYMUYNUDVUBWQYCAKKUWIUWBVVMYIAKKUWIUWQVVOYIKFUXFUWNUWROUFVVJUB
        YJXOUUAUUBUWJUWOUWSUUCUUDAUYDUXBUWMVPUYSKOUWIUVQWOWQUXCUWIUWDVFZUWIUWEV
        FZVKAUXAUWIUWDUWEUUEAVVQUWPVVRUWTAVVKVVQUWPVPVVNKOUWIUWBWOWQAUWIVUNVFZV
        VRUWTAVUNUWEUWIAVULVUMVUOVUQUUFUUGAVVLVVSUWTVPVVPKOUWIUWQWOWQUUHUUIUUJU
        UKUULXRAUWGUWDUTUPZXHYKVBZUWHAUWGAUWFYLVFZUWGYMVFAUWDYLVFZUWEYLVFZVWBAU
        WDVSVFZMYMVFZVVTMVDVNVWCVWEAUWCUVRUWBUWANWAUUMUUNWCUKAVVTUWADUPZMVDAVVC
        HVEZDUPZMVGZVWHNUPZUQZUVRUSZUTUPZVWIVDVNZYNZHCUUOVWGMVGZVVTVWGVDVNZVVEU
        NABCDEFGIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUUPZVWPVWQVWRYNHUWACVWHUW
        AVGZVWJVWQVWOVWRVWTVWIVWGMVWHUWADYOZYGVWTVWNVVTVWIVWGVDVWTVWMUWDUTVWTVW
        LUWCUVRVWTVWKUWBVWHUWANYOUUTUUQXRVXAUURUUSUVAUVBVWSYPZUWDMVSUVCXOZGUVDZ
        UWDUWEUVEYSUWFYQWQYRAVVTYTVFVWAYTVFAVVTAVWCVVTYMVFVXCUWDYQWQYRZVVTUVFWQ
        AUWHAUWHMXHYKVBZYMULAVWFVXFYMVFUKMUVGWQUVHYRAUWGVVTUWEUTUPZYKVBZVWAVDAV
        WCVWDUWGVXHVDVNVXCVXDUWDUWEUVIYSAVXGXHVVTYKAUYBVXGXHVGUMGUVSUVJWQUVKYPA
        VWAVXFUWHVDAVVTMXHVXEAMUKYRAUVLVXBUVMULUVNUVOUVP $.
    $}

    fta1g.3 $e |- ( ph -> F =/= .0. ) $.
    $( The one-sided fundamental theorem of algebra.  A polynomial of degree
       ` n ` has at most ` n ` roots.  Unlike the real fundamental theorem
       ~ fta , which is only true in ` CC ` and other algebraically closed
       fields, this is true in any integral domain.  (Contributed by Mario
       Carneiro, 12-Jun-2015.) $)
    fta1g $p |- ( ph -> ( # ` ( `' ( O ` F ) " { W } ) ) <_ ( D ` F ) ) $=
      ( cfv wceq vf vx vd vg ccnv csn cima chash cle eqid wcel cv wi wral cidom
      wbr cn0 crg wne ccrg cdomn isidom simplbi crngring 3syl deg1nn0cl syl3anc
      cc0 c1 caddc co eqeq2 imbi1d ralbidv imbi2d wa c0 wn simprr 0nn0 syl6eqel
      wb syl simpl deg1nn0clb syl2an mpbird cco1 simplrr 0le0 syl6eqbr ad2antrr
      cascl simplrl deg1le0 syl2anc mpbid cbs cxp fveq2d adantr ffvelrn sylancl
      coe1f evl1sca eqtrd fveq1d wfn cpws cvv fvexd crh evl1rhm simprl ffvelrnd
      wf rhmf pwselbas fniniseg simplbda simprbda fvex fvconst2 3eqtr3rd 3eqtrd
      ffn ply1scl0 ex necon3ad hash0 syl6eq fveq2 eqeq1d cnveqd imaeq1d breq12d
      expr imbi12d syl5bi sylc mpd eq0rdv syl5breqr eqbrtrd ralrimiva peano2nn0
      cbvralv ad2antlr eqeltrd nn0ge0d breq1d syl5ibrcom wex n0 cv1 csg simplll
      a1dd simpllr fta1glem2 exp32 exlimdv pm2.61dne com23 ralrimdva expcom a2d
      nn0ind rspcv mpi ) AFCSZUVKTZFGSZUEZHUFZUGZUHSZUVKUIUPZUVKUJAFBUKZUAULZCS
      ZUVKTZUVTGSZUEZUVOUGZUHSZUWAUIUPZUMZUABUNZUVLUVRUMZQAUVKUQUKZEUOUKZUWIAEU
      RUKZUVSFIUSUWKAUWLEUTUKZUWMPUWLUWNEVAUKEVBVCZEVDZVEQRBCDEFILJOKVFVGPUWLUW
      AUBULZTZUWGUMZUABUNZUMUWLUWAVHTZUWGUMZUABUNZUMUWLUWAUCULZTZUWGUMZUABUNZUM
      UWLUWAUXDVIVJVKZTZUWGUMZUABUNZUMUWLUWIUMUBUCUVKUWQVHTZUWTUXCUWLUXLUWSUXBU
      ABUXLUWRUXAUWGUWQVHUWAVLVMVNVOUWQUXDTZUWTUXGUWLUXMUWSUXFUABUXMUWRUXEUWGUW
      QUXDUWAVLVMVNVOUWQUXHTZUWTUXKUWLUXNUWSUXJUABUXNUWRUXIUWGUWQUXHUWAVLVMVNVO
      UWQUVKTZUWTUWIUWLUXOUWSUWHUABUXOUWRUWBUWGUWQUVKUWAVLVMVNVOUWLUXBUABUWLUVT
      BUKZUXAUWGUWLUXPUXAVPZVPZUWFVHUWAUIUXRUWFVQUHSZVHUXRUWEVQUHUXRUBUWEUXRUVT
      IUSZUWQUWEUKZVRUXRUXTUWAUQUKZUXRUWAVHUQUWLUXPUXAVSZVTWAUWLUWMUXPUXTUYBWBU
      XQUWLUWNUWMUWOUWPWCZUXPUXAWDBCDEUVTILJOKWEWFWGUXRUYAUVTIUXRUYAUVTITUXRUYA
      VPZUVTVHUVTWHSZSZDWMSZSZHUYHSZIUYEUWAVHUIUPZUVTUYITZUYEUWAVHVHUIUWLUXPUXA
      UYAWIWJWKUYEUWMUXPUYKUYLWBUWLUWMUXQUYAUYDWLZUWLUXPUXAUYAWNZUYHBCDEUVTLJKU
      YHUJZWOWPWQZUYEUYGHUYHUYEUWQUWCSZUWQEWRSZUYGUFWSZSZHUYGUYEUWQUWCUYSUYEUWC
      UYIGSZUYSUYEUVTUYIGUYPWTUYEUWNUYGUYRUKZVUAUYSTUXRUWNUYAUWLUWNUXQUWOXAZXAU
      YEUQUYRUYFXPZVHUQUKVUBUYEUXPVUDUYNUYFBDEUVTUYRUYFUJKJUYRUJZXDWCVTUQUYRVHU
      YFXBXCUYHUYRDEGUYGMJVUEUYOXEWPXFXGUXRUYAUWQUYRUKZUYQHTZUXRUYRUYRUWCXPUWCU
      YRXHUYAVUFVUGVPWBUXRUYREUYREUYRXIVKZWRSZUOUWCVUHXJVUHUJZVUEVUIUJZUWLUXQWD
      UXREWRXKUXRBVUIUVTGUXRUWNGDVUHXLVKUKBVUIGXPVUCUYRDEVUHGMJVUJVUEXMBVUIDVUH
      GKVUKXQVEUWLUXPUXAXNXOXRUYRUYRUWCYFUYRHUWQUWCXSVEZXTUYEVUFUYTUYGTUXRUYAVU
      FVUGVULYAUYRUYGUWQVHUYFYBYCWCYDWTUYEUWMUYJITUYMUYHDEIHJUYONOYGWCYEYHYIUUA
      UUBWTYJYKUXRVHVHUWAUIWJUYCUUCUUDYQUUEUXDUQUKZUWLUXGUXKUWLVUMUXGUXKUMUXGUD
      ULZCSZUXDTZVUNGSZUEZUVOUGZUHSZVUOUIUPZUMZUDBUNZUWLVUMVPZUXKUXFVVBUAUDBUVT
      VUNTZUXEVUPUWGVVAVVEUWAVUOUXDUVTVUNCYLZYMVVEUWFVUTUWAVUOUIVVEUWEVUSUHVVEU
      WDVURUVOVVEUWCVUQUVTVUNGYLYNYOWTVVFYPYRUUGVVDVVCUXJUABVVDUXPVPUXIVVCUWGVV
      DUXPUXIVVCUWGUMZVVDUXPUXIVPZVPZVVGUWEVQVVIUWEVQTZUWGVVCVVIUWGVVJVHUWAUIUP
      VVIUWAVVIUWAUXHUQVVDUXPUXIVSVUMUXHUQUKUWLVVHUXDUUFUUHUUIUUJVVJUWFVHUWAUIV
      VJUWFUXSVHUWEVQUHYLYJYKUUKUULUURUWEVQUSUYAUBUUMVVIVVGUBUWEUUNVVIUYAVVGUBV
      VIUYAVVCUWGVVIUYAVVCVPZVPUYHBCDEUWQUDUVTEUUOSZUWQUYHSDUUPSZVKZUYRVVMUXDGH
      VVLIJKLMNOUWLVUMVVHVVKUUQVVDUXPUXIVVKWNVUEVVLUJVVMUJUYOVVNUJUWLVUMVVHVVKU
      USVVDUXPUXIVVKWIVVIUYAVVCXNVVIUYAVVCVSUUTUVAUVBYSUVCYQUVDUVEYSUVFUVGUVHYT
      UWHUWJUAFBUVTFTZUWBUVLUWGUVRVVOUWAUVKUVKUVTFCYLZYMVVOUWFUVQUWAUVKUIVVOUWE
      UVPUHVVOUWDUVNUVOVVOUWCUVMUVTFGYLYNYOWTVVPYPYRUVIYTUVJ $.
  $}

  ${
    $d f x y B $.  $d f x y D $.  $d f x y O $.  $d f x y R $.  $d f x y W $.
    $d f P $.  $d f x y .0. $.
    fta1b.p $e |- P = ( Poly1 ` R ) $.
    fta1b.b $e |- B = ( Base ` P ) $.
    fta1b.d $e |- D = ( deg1 ` R ) $.
    fta1b.o $e |- O = ( eval1 ` R ) $.
    fta1b.w $e |- W = ( 0g ` R ) $.
    fta1b.z $e |- .0. = ( 0g ` P ) $.
    ${
      fta1blem.k $e |- K = ( Base ` R ) $.
      fta1blem.t $e |- .X. = ( .r ` R ) $.
      fta1blem.x $e |- X = ( var1 ` R ) $.
      fta1blem.s $e |- .x. = ( .s ` P ) $.
      fta1blem.1 $e |- ( ph -> R e. CRing ) $.
      fta1blem.2 $e |- ( ph -> M e. K ) $.
      fta1blem.3 $e |- ( ph -> N e. K ) $.
      fta1blem.4 $e |- ( ph -> ( M .X. N ) = W ) $.
      fta1blem.5 $e |- ( ph -> M =/= W ) $.
      fta1blem.6 $e |- ( ph -> ( ( M .x. X ) e. ( B \ { .0. } ) ->
       ( # ` ( `' ( O ` ( M .x. X ) ) " { W } ) ) <_ ( D ` ( M .x. X ) ) ) ) $.
      $( Lemma for ~ fta1b .  (Contributed by Mario Carneiro, 14-Jun-2015.) $)
      fta1blem $p |- ( ph -> N = W ) $=
        ( csn wcel wceq co cfv ccnv cima evl1vard evl1vsd simprd eqtrd wfn cpws
        wa wb cbs ccrg cvv eqid fvex eqeltri a1i crh wf evl1rhm syl rhmf simpld
        ffvelrnd pwselbas ffnd fniniseg mpbir2and cfn wss cen wbr cn0 chash cle
        c1 cnvex imaex 1nn0 cdif wne cmg crg crngring vr1cl mgpbas mulg1 oveq2d
        cmgp cco1 coe1tmfv1 syl3anc cxp coe1z fveq1d c0g fvconst2 ax-mp 3netr4d
        syl6eq fveq2 necon3i eqnetrrd eldifsn sylanbrc mpd fveq2d deg1tm eqtr3d
        syl121anc breqtrd hashbnd ring0cl cres cascl cmulr ply1sclf rhmmul casa
        cid cof csca syl2anc oveq12d cr ply1assa ply1sca syl5eq eleqtrd evl1sca
        asclmul1 evl1var 3eqtr3d fnconstg fnresi fnfvof fvconst2g fvresi ringrz
        pwsmulrval syl22anc snssd hashsng cdom ssdomg mpsyl snfi hashdom sylibr
        mp2an eqbrtrrd hashcl nn0red letri3 sylancl eqtr4d hashen sylancr mpbid
        1re fisseneq eleqtrrd elsni ) AJLUKZULJLUMAJIMFUNZKUOZUPZUVSUQZUVSAJUWC
        ULZJHULZJUWAUOZLUMZUGAUWFIJGUNZLAUVTBULZUWFUWHUMZAHDEFGBMIKJJROUAPUEUGA
        HDEBKMJRUCUAOPUEUGURUFUDUBUSZUTUHVAAUWAHVBZUWDUWEUWGVDVEAHHUWAAHEHEHVCU
        NZVFUOZVGUWAUWMVHUWMVIZUAUWNVIZUEHVHULZAHEVFUOZVHUAEVFVJVKVLZABUWNUVTKA
        KDUWMVMUNULZBUWNKVNAEVGULZUWTUEHDEUWMKROUWOUAVOVPZBUWNDUWMKPUWPVQVPZAUW
        IUWJUWKVRZVSVTWAZHLJUWAWBVPWCAUWCWDULZUVSUWCWEZUVSUWCWFWGZUVSUWCUMAUWCV
        HULZWKWHULZUWCWIUOZWKWJWGZUXFUXIAUWBUVSUWAUVTKVJWLWMZVLUXJAWNVLZAUXKUVT
        CUOZWKWJAUVTBNUKWOULZUXKUXOWJWGAUWIUVTNWPUXPUXDAIWKMDXDUOZWQUOZUNZFUNZU
        VTNAUXSMIFAMBULZUXSMUMAEWRULZUYAAUXAUYBUEEWSVPZBDEMUCOPWTVPZBUXRUXQMBDU
        XQUXQVIZPXAUXRVIZXBVPXCZAWKUXTXEUOZUOZWKNXEUOZUOZWPUXTNWPAILUYIUYKUIAUY
        BIHULZUXJUYIIUMUYCUFUXNIWKDEFUXRHUXQMLSUAOUCUDUYEUYFXFXGAUYKWKWHUVSXHZU
        OZLAWKUYJUYMAUYBUYJUYMUMUYCDELNOTSXIVPXJUXJUYNLUMWNWHLWKLEXKUOVHSEXKVJV
        KXLXMXOXNUXTNUYIUYKUXTNUMWKUYHUYJUXTNXEXPXJXQVPXRUVTBNXSXTUJYAAUXTCUOZU
        XOWKAUXTUVTCUYGYBAUYBUYLILWPUXJUYOWKUMUYCUFUIUXNICDEFUXRWKHUXQMLQUAOUCU
        DUYEUYFSYCYEYDYFZUWCWKVHYGXGZALUWCALUWCULZLHULZLUWAUOZLUMZAUYBUYSUYCHEL
        UASYHVPZAUYTLHIUKXHZYOHYIZGYPZUNZUOZLALUWAVUFAIDYJUOZUOZMDYKUOZUNZKUOZV
        UIKUOZMKUOZUWMYKUOZUNZUWAVUFAUWTVUIBULUYAVULVUPUMUXBAHBIVUHAUYBHBVUHVNU
        YCVUHBDEHOVUHVIZUAPYLVPUFVSZUYDVUIMDUWMVUJVUOKBPVUJVIZVUOVIZYMXGAVUKUVT
        KADYNULZIDYQUOZVFUOZULUYAVUKUVTUMAUXAVVAUEDEOUUAVPAIHVVCUFAHUWRVVCUAAEV
        VBVFAUXAEVVBUMUEDEVGOUUBVPYBUUCUUDUYDVUHIFVUJVVBVVCBDMVUQVVBVIVVCVIPVUS
        UDUUFXGYBAVUPVUMVUNVUEUNVUFAUWNEVUOGVUMVUNHVGVHUWMUWOUWPUEUWSABUWNVUIKU
        XCVURVSABUWNMKUXCUYDVSUBVUTUUOAVUMVUCVUNVUDVUEAUXAUYLVUMVUCUMUEUFVUHHDE
        KIROUAVUQUUEYRAUXAVUNVUDUMUEHEKMRUCUAUUGVPYSVAUUHXJAVUGLVUCUOZLVUDUOZGU
        NZLAVUCHVBZVUDHVBZUWQUYSVUGVVFUMAUYLVVGUFHIHUUIVPVVHAHUUJVLUWSVUBHGVUCV
        UDVHLUUKUUPAVVFILGUNZLAVVDIVVELGAUYLUYSVVDIUMUFVUBHILHUULYRAUYSVVELUMVU
        BHLUUMVPYSAUYBUYLVVILUMUYCUFHEGILUAUBSUUNYRVAVAVAAUWLUYRUYSVUAVDVEUXEHL
        LUWAWBVPWCUUQZAUVSWIUOZUXKUMZUXHAVVKWKUXKAUYSVVKWKUMVUBLHUURVPZAUXKWKUM
        ZUXLWKUXKWJWGZUYPAVVKWKUXKWJVVMAUVSUWCUUSWGZVVKUXKWJWGZUXIAUXGVVPUXMVVJ
        UVSUWCVHUUTUVAUVSWDULZUXIVVQVVPVELUVBZUXMUVSUWCVHUVCUVEUVDUVFAUXKYTULWK
        YTULVVNUXLVVOVDVEAUXKAUXFUXKWHULUYQUWCUVGVPUVHUVOUXKWKUVIUVJWCUVKAVVRUX
        FVVLUXHVEVVSUYQUVSUWCUVLUVMUVNUVSUWCUVPXGUVQJLUVRVP $.
    $}

    $( The assumption that ` R ` be a domain in ~ fta1g is necessary.  Here we
       show that the statement is strong enough to prove that ` R ` is a
       domain.  (Contributed by Mario Carneiro, 12-Jun-2015.) $)
    fta1b $p |- ( R e. IDomn <-> ( R e. CRing /\ R e. NzRing /\
   A. f e. ( B \ { .0. } ) ( # ` ( `' ( O ` f ) " { W } ) ) <_ ( D ` f ) ) ) $=
      ( vx vy wcel cfv wa wceq cidom ccrg cnzr ccnv csn cima chash cle wbr cdif
      cv wral w3a cdomn isidom simplbi simprbi domnnzr syl simpl eldifsn adantl
      wne fta1g ralrimiva 3jca simp1 cmulr co wo wi cbs simp2 wn df-ne cv1 eqid
      cvsca simpll1 simplrl simplrr simprl simprr simpll3 cnveqd imaeq1d fveq2d
      fveq2 breq12d rspccv fta1blem expr syl5bir orrd ex isdomn sylanbrc impbii
      ralrimivva ) DUAQZDUBQZDUCQZEUKZFRZUDZGUEZUFZUGRZXCBRZUHUIZEAHUEUJZULZUMZ
      WTXAXBXLWTXADUNQZDUOZUPWTXNXBWTXAXNXOUQDURUSWTXJEXKWTXCXKQZSABCDXCFGHIJKL
      MNWTXPUTXPXCAQZWTXPXQXCHVCZXCAHVAZUPVBXPXRWTXPXQXRXSUQVBVDVEVFXMXAXNWTXAX
      BXLVGXMXBOUKZPUKZDVHRZVIGTZXTGTZYAGTZVJZVKZPDVLRZULOYHULXNXAXBXLVMXMYGOPY
      HYHXMXTYHQZYAYHQZSZSZYCYFYLYCSZYDYEYDVNXTGVCZYMYEXTGVOYLYCYNYEYLYCYNSZSZA
      BCDCVRRZYBYHXTYAFGDVPRZHIJKLMNYHVQZYBVQZYRVQYQVQXAXBXLYKYOVSXMYIYJYOVTXMY
      IYJYOWAYLYCYNWBYLYCYNWCYPXLXTYRYQVIZXKQUUAFRZUDZXFUFZUGRZUUABRZUHUIZVKXAX
      BXLYKYOWDXJUUGEUUAXKXCUUATZXHUUEXIUUFUHUUHXGUUDUGUUHXEUUCXFUUHXDUUBXCUUAF
      WHWEWFWGXCUUABWHWIWJUSWKWLWMWNWOWSOPYHDYBGYSYTMWPWQXOWQWR $.
  $}

  ${
    drnguc1p.p $e |- P = ( Poly1 ` R ) $.
    drnguc1p.b $e |- B = ( Base ` P ) $.
    drnguc1p.z $e |- .0. = ( 0g ` P ) $.
    drnguc1p.c $e |- C = ( Unic1p ` R ) $.
    $( Over a division ring, all nonzero polynomials are unitic.  (Contributed
       by Stefan O'Rear, 29-Mar-2015.) $)
    drnguc1p $p |- ( ( R e. DivRing /\ F e. B /\ F =/= .0. ) -> F e. C ) $=
      ( cdr wcel wne w3a cdg1 cfv cco1 cn0 eqid syl3an1 cui simp2 simp3 cbs c0g
      wf coe1f 3ad2ant2 crg drngring deg1nn0cl ffvelrnd wa wb drngunit 3ad2ant1
      deg1ldg mpbir2and isuc1p syl3anbrc ) DKLZEALZEFMZNZVBVCEDOPZPZEQPZPZDUAPZ
      LZEBLVAVBVCUBVAVBVCUCVDVJVHDUDPZLZVHDUEPZMZVDRVKVFVGVBVARVKVGUFVCVGACDEVK
      VGSZHGVKSZUGUHVADUILZVBVCVFRLDUJZAVECDEFVESZGIHUKTULVAVQVBVCVNVRVGAVECDEV
      MFVSGIHVMSZVOUQTVAVBVJVLVNUMUNVCVKDVIVHVMVPVISZVTUOUPURABVECDVIEFGHIVSJWA
      USUT $.
  $}

  ${
    $d D g h $.  $d I g h $.  $d M g h $.  $d P g $.  $d R g h $.  $d U g h $.
    $d .0. g h $.
    ig1peu.p $e |- P = ( Poly1 ` R ) $.
    ig1peu.u $e |- U = ( LIdeal ` P ) $.
    ig1peu.z $e |- .0. = ( 0g ` P ) $.
    ig1peu.m $e |- M = ( Monic1p ` R ) $.
    ig1peu.d $e |- D = ( deg1 ` R ) $.
    $( There is a unique monic polynomial of minimal degree in any nonzero
       ideal.  (Contributed by Stefan O'Rear, 29-Mar-2015.)  (Revised by AV,
       25-Sep-2020.) $)
    ig1peu $p |- ( ( R e. DivRing /\ I e. U /\ I =/= { .0. } ) ->
        E! g e. ( I i^i M ) ( D ` g ) =
            inf ( ( D " ( I \ { .0. } ) ) , RR , < ) ) $=
      ( wcel cfv wceq wss eqid syl syl2anc vh cdr csn wne w3a cv cdif cima cinf
      cr clt cin wrex wa wi wral wreu cc0 cuz c0 cn0 cbs lidlss 3ad2ant2 ssdifd
      imass2 crg drngring 3ad2ant1 deg1n0ima sstrd nn0uz syl6sseq simp2 lidl0cl
      ply1ring snssd simp3 necomd pssdifn0 wfn wb cxr wf deg1xrf ax-mp ssdifssd
      fnimaeq0 necon3bid mpbird infssuzcl fvelimab mpbid cco1 cinvr cascl cmulr
      ffn a1i co adantr simpl2 ply1sclf cui cuc1p simpl1 sselda eldifsni adantl
      drnguc1p syl3anc uc1pldg unitinvcl unitcl ffvelrnd lidlmcl syl22anc elind
      eldifi uc1pmon1p crlreg unitrrg sseldd deg1mul3 fveq2 eqeq1d rspcev eqeq2
      rexbidv syl5ibcom rexlimdva mpd ad2antrr simprl sseldi simprr ex sylanbrc
      wbr sylibd csg inss2 deg1submon1p inss1 lidlsubcl simpr eldifsn infssuzle
      cle wn fnfvima crn imassrn frn sstri cgrp ringgrp syl5ss grpsubcl xrlenlt
      deg1xrcl necon4ad syld grpsubeq0 ralrimivva reu4 ) CUBNZFDNZFHUCZUDZUEZEU
      FZAOZAFUVIUGZUHZUJUKUIZPZEFGULZUMZUVQUAUFZAOZUVPPZUNZUVLUVTPZUOZUAUVRUPEU
      VRUPUVQEUVRUQUVKUWBUAUVNUMZUVSUVKUVPUVONZUWFUVKUVOURUSOZQZUVOUTUDZUWGUVKU
      VOVAUWHUVKUVOABVBOZUVIUGZUHZVAUVKUVNUWLQUVOUWMQUVKFUWKUVIUVHUVGFUWKQUVJUW
      KFDBUWKRZJVCVDZVEUVNUWLAVFSUVKCVGNZUWMVAQUVGUVHUWPUVJCVHVIZUWKABCHMIKUWNV
      JSVKVLVMZUVKUWJUVNUTUDZUVKUVIFQUVIFUDUWSUVKHFUVKBVGNZUVHHFNUVKUWPUWTUWQBC
      IVPSZUVGUVHUVJVNBDFHJKVOTVQUVKFUVIUVGUVHUVJVRVSUVIFVTTUVKUVOUTUVNUTUVKAUW
      KWAZUVNUWKQZUVOUTPUVNUTPWBUXBUVKUWKWCAWDZUXBUWKABCMIUWNWEZUWKWCAWRWFZWSZU
      VKFUWKUVIUWOWGZUWKUVNAWHTWIWJUVOURWKTZUVKUXBUXCUWGUWFWBUXGUXHUAUWKUVNUVPA
      WLTWMUVKUWBUVSUAUVNUVKUVTUVNNZUNZUVMUWAPZEUVRUMZUWBUVSUXKUWAUVTWNOOZCWOOZ
      OZBWPOZOZUVTBWQOZWTZUVRNUXTAOZUWAPZUXMUXKFGUXTUXKUWTUVHUXRUWKNUVTFNZUXTFN
      UVKUWTUXJUXAXAUVGUVHUVJUXJXBUXKCVBOZUWKUXPUXQUXKUWPUYDUWKUXQWDUVKUWPUXJUW
      QXAZUXQUWKBCUYDIUXQRZUYDRZUWNXCSUXKUXPCXDOZNZUXPUYDNUXKUWPUXNUYHNZUYIUYEU
      XKUVTCXEOZNZUYJUXKUVGUVTUWKNZUVTHUDZUYLUVGUVHUVJUXJXFUVKUVNUWKUVTUXHXGZUX
      JUYNUVKUVTFHXHXIUWKUYKBCUVTHIUWNKUYKRZXJXKZUYKACUYHUVTMUYHRZUYPXLSCUYHUXO
      UXNUYRUXORZXMTZUYDCUYHUXPUYGUYRXNSXOUXJUYCUVKUVTFUVIXSXIUWKBUXSDFUXRUVTJU
      WNUXSRZXPXQUXKUWPUYLUXTGNUYEUYQUXQUYKABCUXSUXOGUVTUYPLIVUAUYFMUYSXTTXRUXK
      UWPUXPCYAOZNUYMUYBUYEUXKUYHVUBUXPUXKUWPUYHVUBQUYECUYHVUBVUBRZUYRYBSUYTYCU
      YOUXQUWKABCUXSVUBUXPUVTMIVUCUWNVUAUYFYDXKUXLUYBEUXTUVRUVLUXTPUVMUYAUWAUVL
      UXTAYEYFYGTUWBUXLUVQEUVRUWAUVPUVMYHYIYJYKYLUVKUWEEUAUVRUVRUVKUVLUVRNZUVTU
      VRNZUNZUNZUWCUVLUVTBUUAOZWTZHPZUWDVUGUWCVUIAOZUVPUKYSZVUJVUGUWCVULVUGUWCU
      NABCUVLUVTVUHGUVPMLIVUHRZUVKUWPVUFUWCUWQYMVUGUVLGNUWCVUGUVRGUVLFGUUBZUVKV
      UDVUEYNZYOXAVUGUVQUWBYNVUGUVTGNUWCVUGUVRGUVTVUNUVKVUDVUEYPZYOXAVUGUVQUWBY
      PUUCYQVUGVULVUIHVUGVUIHUDZUVPVUKUUIYSZVULUUJZVUGVUQVURVUGVUQUNZUWIVUKUVON
      ZVURUVKUWIVUFVUQUWRYMVUTUXBUXCVUIUVNNZVVAUXBVUTUXFWSUVKUXCVUFVUQUXHYMVUTV
      UIFNZVUQVVBVUGVVCVUQVUGUWTUVHUVLFNUYCVVCUVKUWTVUFUXAXAUVGUVHUVJVUFXBVUGUV
      RFUVLFGUUDZVUOYOVUGUVRFUVTVVDVUPYOBDFVUHUVLUVTJVUMUUEXQXAVUGVUQUUFVUIFHUU
      GYRUWKUVNAVUIUUKXKVUKUVOURUUHTYQVUGUVPWCNZVUKWCNZVURVUSWBUVKVVEVUFUVKUVOW
      CUVPUVOAUULZWCAUVNUUMUXDVVGWCQUXEUWKWCAUUNWFUUOUXIYOXAVUGVUIUWKNZVVFVUGBU
      UPNZUVLUWKNZUYMVVHUVKVVIVUFUVKUWTVVIUXABUUQSXAZVUGUVRUWKUVLUVKUVRUWKQVUFU
      VKUVRFUWKVVDUWOUURXAZVUOYCZVUGUVRUWKUVTVVLVUPYCZUWKBVUHUVLUVTUWNVUMUUSXKU
      WKABCVUIMIUWNUVASUVPVUKUUTTYTUVBUVCVUGVVIVVJUYMVUJUWDWBVVKVVMVVNUWKBVUHUV
      LUVTHUWNKVUMUVDXKYTUVEUVQUWBEUAUVRUWDUVMUWAUVPUVLUVTAYEYFUVFYR $.
  $}

  ${
    ig1pval.p $e |- P = ( Poly1 ` R ) $.
    ig1pval.g $e |- G = ( idlGen1p ` R ) $.
    ${
      $d D i r $.  $d I g i $.  $d M g i r $.  $d R g i r $.  $d U i r $.
      $d .0. i r $.
      ig1pval.z $e |- .0. = ( 0g ` P ) $.
      ig1pval.u $e |- U = ( LIdeal ` P ) $.
      ig1pval.d $e |- D = ( deg1 ` R ) $.
      ig1pval.m $e |- M = ( Monic1p ` R ) $.
      $( Substitutions for the polynomial ideal generator function.
         (Contributed by Stefan O'Rear, 29-Mar-2015.)  (Revised by AV,
         25-Sep-2020.) $)
      ig1pval $p |- ( ( R e. V /\ I e. U ) -> ( G ` I ) =
        if ( I = { .0. } , .0. , ( iota_ g e. ( I i^i M ) ( D ` g ) =
             inf ( ( D " ( I \ { .0. } ) ) , RR , < ) ) ) ) $=
        ( vi cfv wceq cr vr wcel csn cdif cima clt cinf cin crio cif cmpt cig1p
        cv cvv elex cpl1 clidl c0g cdg1 cmn1 fveq2 syl6eqr fveq2d eqeq2d ineq2d
        fveq1d difeq2d imaeq12d infeq1d eqeq12d riotaeqbidv ifbieq12d mpteq12dv
        sneqd df-ig1p eqeltri mptex fvmpt syl syl5eq eqeq1 ineq1 difeq1 imaeq2d
        fvex ifbieq2d eqid riotaex ifex sylan9eq ) CIUBZGDUBGFRGQDQUMZJUCZSZJEU
        MZARZAWLWMUDZUEZTUFUGZSZEWLHUHZUIZUJZUKZRGWMSZJWPAGWMUDZUEZTUFUGZSZEGHU
        HZUIZUJZWKGFXDWKFCULRZXDLWKCUNUBXMXDSCIUOUACQUAUMZUPRZUQRZWLXOURRZUCZSZ
        XQWOXNUSRZRZXTWLXRUDZUEZTUFUGZSZEWLXNUTRZUHZUIZUJZUKXDUNULXNCSZQXPYIDXC
        YJXPBUQRZDYJXOBUQYJXOCUPRBXNCUPVAKVBZVCNVBYJXSWNXQYHJXBYJXRWMWLYJXQJYJX
        QBURRZJYJXOBURYLVCMVBZVNZVDYNYJYEWTEYGXAYJYFHWLYJYFCUTRHXNCUTVAPVBVEYJY
        AWPYDWSYJWOXTAYJXTCUSRAXNCUSVAOVBZVFYJTYCWRUFYJXTAYBWQYPYJXRWMWLYOVGVHV
        IVJVKVLVMEQUAVOQDXCDYKUNNBUQWEVPVQVRVSVTVFQGXCXLDXDWLGSZWNXEXBXKJWLGWMW
        AYQWTXIEXAXJWLGHWBYQWSXHWPYQTWRXGUFYQWQXFAWLGWMWCWDVIVDVKWFXDWGXEJXKJYM
        UNMBURWEVPXIEXJWHWIVRWJ $.
    $}

    ${
      $d R g $.  $d .0. g $.
      ig1pval2.z $e |- .0. = ( 0g ` P ) $.
      $( Generator of the zero ideal.  (Contributed by Stefan O'Rear,
         29-Mar-2015.)  (Proof shortened by AV, 25-Sep-2020.) $)
      ig1pval2 $p |- ( R e. Ring -> ( G ` { .0. } ) = .0. ) $=
        ( vg crg wcel csn cfv wceq cv cdg1 cdif cima cr clt eqid cinf cmn1 crio
        cin cif clidl ply1ring lidl0 syl ig1pval mpdan iftruei syl6eq ) BIJZDKZ
        CLZUOUOMZDHNBOLZLURUOUOPQRSUAMHUOBUBLZUDUCZUEZDUNUOAUFLZJZUPVAMUNAIJVCA
        BEUGAVBDVBTZGUHUIURABVBHCUOUSIDEFGVDURTUSTUJUKUQDUTUOTULUM $.
    $}

    ${
      $d D g $.  $d G g $.  $d I g $.  $d M g $.  $d P g $.  $d R g $.
      $d U g $.  $d .0. g $.
      ig1pval3.z $e |- .0. = ( 0g ` P ) $.
      ig1pval3.u $e |- U = ( LIdeal ` P ) $.
      ig1pval3.d $e |- D = ( deg1 ` R ) $.
      ig1pval3.m $e |- M = ( Monic1p ` R ) $.
      $( Characterizing properties of the monic generator of a nonzero ideal of
         polynomials.  (Contributed by Stefan O'Rear, 29-Mar-2015.)  (Revised
         by AV, 25-Sep-2020.) $)
      ig1pval3 $p |- ( ( R e. DivRing /\ I e. U /\ I =/= { .0. } ) ->
          ( ( G ` I ) e. I /\ ( G ` I ) e. M /\ ( D ` ( G ` I ) ) =
              inf ( ( D " ( I \ { .0. } ) ) , RR , < ) ) ) $=
        ( vg cdr wcel cfv wceq wa csn wne w3a cv cdif cima cr clt cinf cin crab
        crio cif ig1pval 3adant3 simp3 neneqd iffalsed wreu ig1peu riotacl2 syl
        eqtrd eqeltrd elin anbi1i fveq2 eqeq1d elrab df-3an 3bitr4i sylib ) CPQ
        ZFDQZFHUAZUBZUCZFERZOUDZARZAFVOUEUFUGUHUIZSZOFGUJZUKZQZVRFQZVRGQZVRARZW
        ASZUCZVQVRWBOWCULZWDVQVRFVOSZHWKUMZWKVMVNVRWMSVPABCDOEFGPHIJKLMNUNUOVQW
        LHWKVQFVOVMVNVPUPUQURVCVQWBOWCUSWKWDQABCDOFGHILKNMUTWBOWCVAVBVDVRWCQZWI
        TWFWGTZWITWEWJWNWOWIVRFGVEVFWBWIOVRWCVSVRSVTWHWAVSVRAVGVHVIWFWGWIVJVKVL
        $.
    $}

    ${
      ig1pcl.u $e |- U = ( LIdeal ` P ) $.
      $( The monic generator of an ideal is always in the ideal.  (Contributed
         by Stefan O'Rear, 29-Mar-2015.)  (Proof shortened by AV,
         25-Sep-2020.) $)
      ig1pcl $p |- ( ( R e. DivRing /\ I e. U ) -> ( G ` I ) e. I ) $=
        ( cdr wcel wa cfv c0g csn wceq fveq2 id eleq12d wne eqid cmn1 cdg1 cdif
        w3a cima clt cinf ig1pval3 simp1d 3expa crg drngring ig1pval2 fvex elsn
        cr syl sylibr adantr pm2.61ne ) BIJZECJZKEDLZEJZAMLZNZDLZVFJZEVFEVFOZVC
        VGEVFEVFDPVIQRVAVBEVFSZVDVAVBVJUDVDVCBUALZJVCBUBLZLVLEVFUCUEUPUFUGOVLAB
        CDEVKVEFGVETZHVLTVKTUHUIUJVAVHVBVAVGVEOZVHVABUKJVNBULABDVEFGVMUMUQVGVEV
        FDUNUOURUSUT $.

      ${
        ig1pdvds.d $e |- .|| = ( ||r ` P ) $.
        $( The monic generator of an ideal divides all elements of the ideal.
           (Contributed by Stefan O'Rear, 29-Mar-2015.)  (Proof shortened by
           AV, 25-Sep-2020.) $)
        ig1pdvds $p |- ( ( R e. DivRing /\ I e. U /\ X e. I ) ->
            ( G ` I ) .|| X ) $=
          ( wcel cfv wceq syl wss eqid syl2anc cxr c0 cdr w3a drngring ply1ring
          wbr c0g csn wa crg cbs 3ad2ant1 lidlss 3ad2ant2 ig1pcl 3adant3 sseldd
          dvdsr01 adantr eleq2 biimpac 3ad2antl3 breqtrrd wne cr1p co cdg1 cdif
          elsni cima cr clt cinf cle wn cuc1p simpl1 simpl2 cmn1 simpr ig1pval3
          simpl3 syl3anc simp2d mon1puc1p r1pdeglt simp3d breqtrd wb wf deg1xrf
          cq1p cmulr csg simp1d r1pval q1pcl lidlmcl syl22anc lidlsubcl eqeltrd
          ffvelrn sylancr cc0 cuz ssdifd imass2 cn0 deg1n0ima nn0uz syl6sseq cz
          sstrd uzssz zssre ressxr sstri syl6ss lidl0cl necomd pssdifn0 wfn ffn
          snssd ax-mp ssdifssd necon3bid mpbird infssuzcl xrltnle mpbid eldifsn
          fnimaeq0 a1i sylanbrc fnfvima infssuzle ex necon1bd mpd dvdsr1p
          pm2.61dane ) CUALZFDLZGFLZUBZFEMZGAUEZFBUFMZUGZUUEFUUINZUHZUUFUUHGAUU
          EUUFUUHAUEZUUJUUEBUILZUUFBUJMZLZUULUUBUUCUUMUUDUUBCUILZUUMCUCZBCHUDZO
          UKUUEFUUNUUFUUCUUBFUUNPZUUDUUNFDBUUNQZJULZUMUUBUUCUUFFLZUUDBCDEFHIJUN
          UOUPUUNABUUFUUHUUTKUUHQZUQRURUUKGUUILZGUUHNUUDUUBUUJUVDUUCUUJUUDUVDFU
          UIGUSUTVAGUUHVHOVBUUEFUUIVCZUHZUUGGUUFCVDMZVEZUUHNZUVFCVFMZFUUIVGZVIZ
          VJVKVLZUVHUVJMZVMUEZVNZUVIUVFUVNUVMVKUEZUVPUVFUVNUUFUVJMZUVMVKUVFUUPG
          UUNLZUUFCVOMZLZUVNUVRVKUEUVFUUBUUPUUBUUCUUDUVEVPZUUQOZUVFFUUNGUVFUUCU
          USUUBUUCUUDUVEVQZUVAOZUUBUUCUUDUVEWAZUPZUVFUUPUUFCVRMZLZUWAUWCUVFUVBU
          WIUVRUVMNZUVFUUBUUCUVEUVBUWIUWJUBUWBUWDUUEUVEVSZUVJBCDEFUWHUUHHIUVCJU
          VJQZUWHQZVTWBZWCUVTCUWHUUFUVTQZUWMWDRZUUNUVTUVJBCUVGGUUFUVGQZHUUTUWOU
          WLWEWBUVFUVBUWIUWJUWNWFWGUVFUVNSLZUVMSLUVQUVPWHUVFUUNSUVJWIZUVHUUNLUW
          RUUNUVJBCUWLHUUTWJZUVFFUUNUVHUWEUVFUVHGGUUFCWKMZVEZUUFBWLMZVEZBWMMZVE
          ZFUVFUVSUUOUVHUXFNUWGUVFFUUNUUFUWEUVFUVBUWIUWJUWNWNZUPUUNBUXACUXCUVGG
          UUFUXEUWQHUUTUXAQZUXCQZUXEQZWORUVFUUMUUCUUDUXDFLZUXFFLUVFUUPUUMUWCUUR
          OZUWDUWFUVFUUMUUCUXBUUNLZUVBUXKUXLUWDUVFUUPUVSUWAUXMUWCUWGUWPUUNUVTBU
          XACGUUFUXHHUUTUWOWPWBUXGUUNBUXCDFUXBUUFJUUTUXIWQWRBDFUXEGUXDJUXJWSWRW
          TZUPUUNSUVHUVJXAXBUVFUVLSUVMUVFUVLXCXDMZSUVFUVLUVJUUNUUIVGZVIZUXOUVFU
          VKUXPPUVLUXQPUVFFUUNUUIUWEXEUVKUXPUVJXFOUVFUXQXGUXOUVFUUPUXQXGPUWCUUN
          UVJBCUUHUWLHUVCUUTXHOXIXJXLZUXOXKSXCXMXKVJSXNXOXPXPXQUVFUVLUXOPZUVLTV
          CZUVMUVLLUXRUVFUXTUVKTVCZUVFUUIFPUUIFVCUYAUVFUUHFUVFUUMUUCUUHFLUXLUWD
          BDFUUHJUVCXRRYCUVFFUUIUWKXSUUIFXTRUVFUVLTUVKTUVFUVJUUNYAZUVKUUNPZUVLT
          NUVKTNWHUWSUYBUWTUUNSUVJYBYDZUVFFUUNUUIUWEYEZUUNUVKUVJYLXBYFYGUVLXCYH
          RUPUVNUVMYIRYJUVFUVOUVHUUHUVFUVHUUHVCZUVOUVFUYFUHZUXSUVNUVLLZUVOUVFUX
          SUYFUXRURUYGUYBUYCUVHUVKLZUYHUYBUYGUYDYMUVFUYCUYFUYEURUYGUVHFLZUYFUYI
          UVFUYJUYFUXNURUVFUYFVSUVHFUUHYKYNUUNUVKUVJUVHYOWBUVNUVLXCYPRYQYRYSUVF
          UUPUVSUWAUUGUVIWHUWCUWGUWPUUNUVTABCUVGGUUFUUHHKUUTUWOUVCUWQYTWBYGUUA
          $.
      $}

      $d G x $.  $d I x $.  $d K x $.  $d P x $.  $d R x $.  $d U x $.
      ig1prsp.k $e |- K = ( RSpan ` P ) $.
      $( Any ideal of polynomials over a division ring is generated by the
         ideal's canonical generator.  (Contributed by Stefan O'Rear,
         29-Mar-2015.) $)
      ig1prsp $p |- ( ( R e. DivRing /\ I e. U ) ->
          I = ( K ` { ( G ` I ) } ) ) $=
        ( vx cdr wcel wa cfv csn wceq cv eqid crg cdsr wbr wral ig1pcl ig1pdvds
        3expa ralrimiva cbs wb drngring ply1ring syl adantr simpr lidlss adantl
        wss sseldd lidldvgen syl3anc mpbir2and ) BLMZECMZNZEEDOZPFOQZVEEMZVEKRZ
        AUAOZUBZKEUCZABCDEGHIUDZVDVJKEVBVCVHEMVJVIABCDEVHGHIVISZUEUFUGVDATMZVCV
        EAUHOZMVFVGVKNUIVBVNVCVBBTMVNBUJABGUKULUMVBVCUNVDEVOVEVCEVOUQVBVOECAVOS
        ZIUOUPVLURKVOVIACVEEFVPIJVMUSUTVA $.
    $}
  $}

  ${
    $d P i j $.  $d R i j $.
    ply1lpir.p $e |- P = ( Poly1 ` R ) $.
    $( The ring of polynomials over a division ring has the principal ideal
       property.  (Contributed by Stefan O'Rear, 29-Mar-2015.) $)
    ply1lpir $p |- ( R e. DivRing -> P e. LPIR ) $=
      ( vi vj cdr wcel crg clidl cfv clpidl wss clpir drngring ply1ring syl csn
      cv wceq eqid crsp cbs wrex cig1p lidlss adantl ig1pcl sseldd ig1prsp sneq
      wa fveq2d eqeq2d rspcev syl2anc wb adantr islpidl mpbird ex ssrdv islpir2
      sylanbrc ) BFGZAHGZAIJZAKJZLAMGVDBHGVEBNABCOPZVDDVFVGVDDRZVFGZVIVGGZVDVJU
      KZVKVIERZQZAUAJZJZSZEAUBJZUCZVLVIBUDJZJZVRGVIWAQZVOJZSZVSVLVIVRWAVJVIVRLV
      DVRVIVFAVRTZVFTZUEUFABVFVTVICVTTZWFUGUHABVFVTVIVOCWGWFVOTZUIVQWDEWAVRVMWA
      SZVPWCVIWIVNWBVOVMWAUJULUMUNUOVLVEVKVSUPVDVEVJVHUQVRVGAEVIVOVGTZWHWEURPUS
      UTVAVGAVFWJWFVBVC $.

    $( The polynomials over a field are a PID. (Contributed by Stefan O'Rear,
       29-Mar-2015.) $)
    ply1pid $p |- ( R e. Field -> P e. PID ) $=
      ( cfield wcel cidom clpir cpid fldidom ply1idom syl ccrg simplbi ply1lpir
      cdr isfld df-pid elin2 sylanbrc ) BDEZAFEZAGEZAHETBFEUABIABCJKTBOEZUBTUCB
      LEBPMABCNKAFGHQRS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Elementary properties of complex polynomials
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Poly $.
  $c Xp $.
  $c coeff $.
  $c deg $.

  $( Extend class notation to include the set of complex polynomials. $)
  cply $a class Poly $.

  $( Extend class notation to include the identity polynomial. $)
  cidp $a class Xp $.

  $( Extend class notation to include the coefficient function on
     polynomials. $)
  ccoe $a class coeff $.

  $( Extend class notation to include the degree function on polynomials. $)
  cdgr $a class deg $.

  ${
    $d a f k n x z $.
    $( Define the set of polynomials on the complex numbers with coefficients
       in the given subset.  (Contributed by Mario Carneiro, 17-Jul-2014.) $)
    df-ply $a |- Poly = ( x e. ~P CC |-> { f | E. n e. NN0
      E. a e. ( ( x u. { 0 } ) ^m NN0 ) f =
        ( z e. CC |-> sum_ k e. ( 0 ... n ) ( ( a ` k ) x. ( z ^ k ) ) ) } ) $.

    $( Define the identity polynomial.  (Contributed by Mario Carneiro,
       17-Jul-2014.) $)
    df-idp $a |- Xp = ( _I |` CC ) $.

    $( Define the coefficient function for a polynomial.  (Contributed by Mario
       Carneiro, 22-Jul-2014.) $)
    df-coe $a |- coeff = ( f e. ( Poly ` CC ) |-> ( iota_ a e. ( CC ^m NN0 )
        E. n e. NN0 ( ( a " ( ZZ>= ` ( n + 1 ) ) ) = { 0 } /\ f =
    ( z e. CC |-> sum_ k e. ( 0 ... n ) ( ( a ` k ) x. ( z ^ k ) ) ) ) ) ) $.

    $( Define the degree of a polynomial.  (Contributed by Mario Carneiro,
       22-Jul-2014.) $)
    df-dgr $a |- deg = ( f e. ( Poly ` CC ) |->
      sup ( ( `' ( coeff ` f ) " ( CC \ { 0 } ) ) , NN0 , < ) ) $.
  $}

  ${
    $d a k n z A $.  $d a k n z N $.  $d a f k n x z S $.  $d a f k n z T $.
    $d a f n F $.
    $( Two ways to say that a function on the nonnegative integers has finite
       support.  (Contributed by Mario Carneiro, 22-Jul-2014.) $)
    plyco0 $p |- ( ( N e. NN0 /\ A : NN0 --> CC ) ->
      ( ( A " ( ZZ>= ` ( N + 1 ) ) ) = { 0 } <->
        A. k e. NN0 ( ( A ` k ) =/= 0 -> k <_ N ) ) ) $=
      ( cn0 wcel cc wa cfv cc0 wceq wne cle wbr clt adantr syl2anc ad2antrr mpd
      wi wb vn wf c1 caddc co cuz cima csn wral simprr wfun cdm wss ffun adantl
      cv wn peano2nn0 eluznn0 ex syl ssrdv fdm sseqtr4d funfvima2 nn0z peano2zd
      cz ad2antrl eluz simplr eleq2d fvex elsn syl6bb 3imtr3d necon3ad cr nn0re
      zred ltnled mpbird zleltp1 expr ralrimiva ccnv simpr syl2an nn0red eluzle
      ltp1d ad2antll ltletrd mpbid simprl fveq2 neeq1d breq1 imbi12d rspcva wfn
      necon1bd ffn ad2antlr fniniseg mpbir2and funimass3 sylan uzid snssd eqssd
      eqeltrrd impbida ) CDEZDFAUBZGZACUCUDUEZUFHZUGZIUHZJZBUPZAHZIKZYBCLMZSZBD
      UIZXPYAGZYFBDYHYBDEZYDYEYHYIYDGZGZYEYBXQNMZYKYLXQYBLMZUQZYKYDYNYHYIYDUJYK
      YMYCIYKYBXREZYCXSEZYMYCIJZXPYOYPSZYAYJXPAUKZXRAULZUMZYRXOYSXNDFAUNUOZXPXR
      DYTXPBXRDXPXQDEZYOYISXNUUCXOCUROZUUCYOYIYBXQUSUTVAVBXOYTDJXNDFAVCUOVDZXRY
      BAVEPQYKXQVHEZYBVHEZYOYMTXPUUFYAYJXPCXNCVHEZXOCVFOZVGZQYIUUGYHYDYBVFVIZXQ
      YBVJPYKYPYCXTEYQYKXSXTYCXPYAYJVKVLYCIYBAVMVNVOVPVQRYKYBXQYIYBVREYHYDYBVSV
      IXPXQVREZYAYJXPXQUUJVTZQWAWBYKUUGUUHYEYLTUUKXPUUHYAYJUUIQYBCWCPWBWDWEXPYG
      GZXSXTUUNXSXTUMZXRAWFXTUGZUMZUUNUAXRUUPXPYGUAUPZXREZUURUUPEZXPYGUUSGZGZUU
      TUURDEZUURAHZIJZXPUUCUUSUVCUVAUUDYGUUSWGUURXQUSWHZUVBUURCLMZUQZUVEUVBCUUR
      NMUVHUVBCXQUURXPCVREZUVAXNUVIXOCVSOZOZXPUULUVAUUMOUVBUURUVFWIZUVBCUVKWKUU
      SXQUURLMXPYGXQUURWJWLWMUVBCUURUVKUVLWAWNUVBUVGUVDIUVBUVCYGUVDIKZUVGSZUVFX
      PYGUUSWOYFUVNBUURDYBUURJZYDUVMYEUVGUVOYCUVDIYBUURAWPWQYBUURCLWRWSWTPXBRUV
      BADXAZUUTUVCUVEGTXOUVPXNUVADFAXCXDDIUURAXEVAXFWDVBXPUUOUUQTZYGXPYSUUAUVQU
      UBUUEXRXTAXGPOWBUUNIXSUUNXQAHZIXSUUNXQCLMZUQZUVRIJXPUVTYGXPCXQNMUVTXPCUVJ
      WKXPCXQUVJUUMWAWNOUUNUVSUVRIXPUUCYGUVRIKZUVSSZUUDYFUWBBXQDYBXQJZYDUWAYEUV
      SUWCYCUVRIYBXQAWPWQYBXQCLWRWSWTXHXBRXPUVRXSEZYGXPXQXREZUWDXPUUFUWEUUJXQXI
      VAXPYSUUAUWEUWDSUUBUUEXRXQAVEPROXLXJXKXM $.

    $( Value of the polynomial set function.  (Contributed by Mario Carneiro,
       17-Jul-2014.) $)
    plyval $p |- ( S C_ CC -> ( Poly ` S ) = { f | E. n e. NN0
      E. a e. ( ( S u. { 0 } ) ^m NN0 ) f =
        ( z e. CC |-> sum_ k e. ( 0 ... n ) ( ( a ` k ) x. ( z ^ k ) ) ) } ) $=
      ( vx cc wss cply cfv cv cc0 co wceq cun cn0 cmap wrex cab cpw cfz csu csn
      wcel cexp cmul cmpt cnex elpw2 uneq1 oveq1d rexeqdv rexbidv abbidv df-ply
      nn0ex ovex ab2rexex fvmpt sylbir ) BHIBHUAZUEBJKCLAHMELUBNDLZFLKALVCUFNUG
      NDUCUHZOZFBMUDZPZQRNZSZEQSZCTZOBHUIUJGBVEFGLZVFPZQRNZSZEQSZCTVKVBJVLBOZVP
      VJCVQVOVIEQVQVEFVNVHVQVMVGQRVLBVFUKULUMUNUOGACDEFUPEFCQVHVDUQVGQRURUSUTVA
      $.

    $( Reverse closure of the parameter ` S ` of the polynomial set function.
       (Contributed by Mario Carneiro, 22-Jul-2014.) $)
    plybss $p |- ( F e. ( Poly ` S ) -> S C_ CC ) $=
      ( vx vf vz vn vk va cply cfv wcel cc cdm cpw cv cc0 cfz co cn0 wrex cexp
      cmul csu cmpt wceq csn cun cmap cab df-ply dmmptss elfvdm sseldi elpwid )
      BAIJKZALUOIMLNZACUPDOELPFOQRGOZHOJEOUQUARUBRGUCUDUEHCOPUFUGSUHRTFSTDUIICE
      DGFHUJUKBAIULUMUN $.

    $( Definition of a polynomial with coefficients in ` S ` .  (Contributed by
       Mario Carneiro, 17-Jul-2014.) $)
    elply $p |- ( F e. ( Poly ` S ) <-> ( S C_ CC /\ E. n e. NN0
      E. a e. ( ( S u. { 0 } ) ^m NN0 ) F =
        ( z e. CC |-> sum_ k e. ( 0 ... n ) ( ( a ` k ) x. ( z ^ k ) ) ) ) ) $=
      ( vf cply cfv wcel cc wss cc0 cv cfz co wceq cn0 wrex cvv cexp csu plybss
      cmul cmpt csn cun cmap cab plyval eleq2d wi wa id cnex mptex syl6eqel a1i
      rexlimivv eqeq1 2rexbidv elab3 syl6bb biadan2 ) EBHIZJZBKLZEAKMDNZOPCNZFN
      ZIANVIUAPUDPCUBZUEZQZFBMUFUGRUHPZSDRSZBEUCVGVFEGNZVLQZFVNSDRSZGUIZJVOVGVE
      VSEABGCDFUJUKVRVOGEVMETJZDFRVNVMVTULVHRJVJVNJUMVMEVLTVMUNAKVKUOUPUQURUSVP
      EQVQVMDFRVNVPEVLUTVAVBVCVD $.

    $( The coefficient function can be assumed to have zeroes outside
       ` 0 ... n ` .  (Contributed by Mario Carneiro, 20-Jul-2014.)  (Revised
       by Mario Carneiro, 23-Aug-2014.) $)
    elply2 $p |- ( F e. ( Poly ` S ) <-> ( S C_ CC /\ E. n e. NN0
    E. a e. ( ( S u. { 0 } ) ^m NN0 ) ( ( a " ( ZZ>= ` ( n + 1 ) ) ) = { 0 } /\
  F = ( z e. CC |-> sum_ k e. ( 0 ... n ) ( ( a ` k ) x. ( z ^ k ) ) ) ) ) ) $=
      ( vf vx cfv wcel cc cv co cc0 wceq wa cn0 wrex cvv sylancl cply wss caddc
      c1 cuz cima csn cfz cexp cmul csu cmpt cun cmap elply cif wf simpr simpll
      wb cnex ssexg snex unexg nn0ex mpbid ffvelrnda ssun2 c0ex snss mpbir ifcl
      elmapg eqid fmptd mpbird wne cle wbr wi wral wn eleq1 fveq2 ifbieq1d fvex
      ifex ad2antll iffalse eqeq2d syl5ibcom necon1ad elfzle2 anassrs ralrimiva
      fvmpt syl6 simplr 0cnd snssd unssd fssd plyco0 syl2anc eqidd imaeq1 fveq1
      eqeq1d elfznn0 syl iftrue eqtrd sylan9eq oveq1d sumeq2dv mpteq2dv anbi12d
      rspcev syl12anc eqeq1 anbi2d rexbidv syl5ibrcom rexlimdva imdistani sylbi
      reximdva reximi anim2i sylibr impbii ) EBUAIJZBKUBZFLZDLZUDUCMUEIZUFZNUGZ
      OZEAKNYOUHMZCLZYNIZALUUAUIMZUJMZCUKZULZOZPZFBYRUMZQUNMZRZDQRZPZYLYMEAKYTU
      UAGLZIZUUCUJMZCUKZULZOZGUUJRZDQRZPUUMABCDEGUOYMUVAUULYMUUTUUKDQYMYOQJZPZU
      USUUKGUUJUVCUUNUUJJZPZUUKUUSYSUURUUFOZPZFUUJRZUVEHQHLZYTJZUVIUUNIZNUPZULZ
      UUJJZUVMYPUFZYROZUURUUROZUVHUVEUVNQUUIUVMUQZUVEHQUVLUUIUVMUVEUVIQJPUVKUUI
      JNUUIJZUVLUUIJUVEQUUIUVIUUNUVEUVDQUUIUUNUQZUVCUVDURUVEUUISJZQSJZUVDUVTUTU
      VEBSJZYRSJUWAUVEYMKSJUWCYMUVBUVDUSZVABKSVBTNVCBYRSSVDTZVEUUIQUUNSSVMTVFVG
      UVSYRUUIUBYRBVHNUUIVIVJVKUVJUVKNUUIVLTUVMVNZVOZUVEUWAUWBUVNUVRUTUWEVEUUIQ
      UVMSSVMTVPUVEUVPUUAUVMIZNVQZUUAYOVRVSZVTZCQWAZUVEUWKCQUVCUVDUUAQJZUWKUVCU
      VDUWMPPZUWIUUAYTJZUWJUWNUWOUWHNUWNUWHUWOUUONUPZOZUWOWBZUWHNOUWMUWQUVCUVDH
      UUAUVLUWPQUVMUVIUUAOUVJUWOUVKUUONUVIUUAYTWCUVIUUAUUNWDWEUWFUWOUUONUUAUUNW
      FVIWGWPZWHUWRUWPNUWHUWOUUONWIWJWKWLUUANYOWMWQWNWOUVEUVBQKUVMUQUVPUWLUTYMU
      VBUVDWRUVEQUUIKUVMUWGUVEBYRKUWDUVENKUVEWSWTXAXBUVMCYOXCXDVPUVEUURXEUVGUVP
      UVQPFUVMUUJYNUVMOZYSUVPUVFUVQUWTYQUVOYRYNUVMYPXFXHUWTUUFUURUURUWTAKUUEUUQ
      UWTYTUUDUUPCUWTUWOPUUBUUOUUCUJUWTUWOUUBUWHUUOUUAYNUVMXGUWOUWHUWPUUOUWOUWM
      UWQUUAYOXIUWSXJUWOUUONXKXLXMXNXOXPWJXQXRXSUUSUUHUVGFUUJUUSUUGUVFYSEUURUUF
      XTYAYBYCYDYGYEYFUUMYMUUGFUUJRZDQRZPYLUULUXBYMUUKUXADQUUHUUGFUUJYSUUGURYHY
      HYIABCDEFUOYJYK $.

    $d k z F $.
    $( The set of polynomials is unaffected by the addition of zero.  (This is
       built into the definition because all higher powers of a polynomial are
       effectively zero, so we require that the coefficient field contain zero
       to simplify some of our closure theorems.)  (Contributed by Mario
       Carneiro, 17-Jul-2014.) $)
    plyun0 $p |- ( Poly ` ( S u. { 0 } ) ) = ( Poly ` S ) $=
      ( vf vz vn vk va cc0 cun cply cfv cc wss cv co cn0 cmap wrex wcel elply
      wa csn cfz cexp cmul csu cmpt wceq snssi ax-mp biantru bitr2i unass unidm
      0cn unss uneq2i eqtri oveq1i rexeqi rexbii anbi12i 3bitr4i eqriv ) BAGUAZ
      HZIJZAIJZVEKLZBMZCKGDMUBNEMZFMJCMVJUCNUDNEUEUFUGZFVEVDHZOPNZQZDOQZTAKLZVK
      FVEOPNZQZDOQZTVIVFRVIVGRVHVPVOVSVPVPVDKLZTVHVTVPGKRVTUNGKUHUIUJAVDKUOUKVN
      VRDOVKFVMVQVLVEOPVLAVDVDHZHVEAVDVDULWAVDAVDUMUPUQURUSUTVACVEEDVIFSCAEDVIF
      SVBVC $.

    $( The polynomial is a function on the complex numbers.  (Contributed by
       Mario Carneiro, 22-Jul-2014.) $)
    plyf $p |- ( F e. ( Poly ` S ) -> F : CC --> CC ) $=
      ( vz vn vk va cfv wcel cc cc0 cv co cn0 wrex wf wss wa cvv sylancl syl2an
      cply cfz cexp cmul csu cmpt wceq csn cmap elply simprbi fzfid plybss 0cnd
      cun snssd unssd ad2antrr adantr simplrr wb cnex ssexg nn0ex mpbid elfznn0
      elmapg ffvelrn sseldd simpr expcl mulcld eqid fmptd syl5ibrcom rexlimdvva
      fsumcl feq1 mpd ) BAUAGHZBCIJDKZUBLZEKZFKZGZCKZWCUCLZUDLZEUEZUFZUGZFAJUHZ
      UOZMUILZNDMNZIIBOZVTAIPWOCAEDBFUJUKVTWKWPDFMWNVTWAMHZWDWNHZQZQZWPWKIIWJOW
      TCIWIIWJWTWFIHZQZWBWHEXBJWAULXBWCWBHZQZWEWGXDWMIWEXBWMIPZXCVTXEWSXAVTAWLI
      ABUMVTJIVTUNUPUQURZUSXBMWMWDOZWCMHZWEWMHXCXBWRXGVTWQWRXAUTXBWMRHZMRHWRXGV
      AXBXEIRHXIXFVBWMIRVCSVDWMMWDRRVGSVEWCWAVFZMWMWCWDVHTVIXBXAXHWGIHXCWTXAVJX
      JWFWCVKTVLVQWJVMVNIIBWJVRVOVPVS $.

    $( The polynomial set function preserves the subset relation.  (Contributed
       by Mario Carneiro, 17-Jul-2014.) $)
    plyss $p |- ( ( S C_ T /\ T C_ CC ) -> ( Poly ` S ) C_ ( Poly ` T ) ) $=
      ( vf vz vn vk va wss cc cv cc0 co cfv wceq cun cn0 cmap wrex cvv wcel cfz
      wa cexp cmul csu cmpt csn cab cply wi simpr cnex ssexg sylancl snex unexg
      unss1 adantr mapss syl2anc ssrexv syl reximdv ss2abdv sstr plyval 3sstr4d
      adantl ) ABHZBIHZUBZCJDIKEJUALFJZGJMDJVLUCLUDLFUEUFNZGAKUGZOZPQLZRZEPRZCU
      HZVMGBVNOZPQLZRZEPRZCUHZAUIMZBUIMZVKVRWCCVKVQWBEPVKVPWAHZVQWBUJVKVTSTZVOV
      THZWGVKBSTZVNSTWHVKVJISTWJVIVJUKULBISUMUNKUOBVNSSUPUNVIWIVJABVNUQURVOVTPS
      USUTVMGVPWAVAVBVCVDVKAIHWEVSNABIVEDACFEGVFVBVJWFWDNVIDBCFEGVFVHVG $.

    $( Every polynomial ring is contained in the ring of polynomials over
       ` CC ` .  (Contributed by Mario Carneiro, 22-Jul-2014.) $)
    plyssc $p |- ( Poly ` S ) C_ ( Poly ` CC ) $=
      ( vf cply cfv cc wss c0 wceq 0ss sseq1 mpbiri wne cv wcel wex plybss ssid
      n0 plyss sylancl exlimiv sylbi pm2.61ine ) ACDZECDZFZUDGUDGHUFGUEFUEIUDGU
      EJKUDGLBMZUDNZBOUFBUDRUHUFBUHAEFEEFUFAUGPEQAESTUAUBUC $.

    $( Sufficient condition for elementhood in the set of polynomials.
       (Contributed by Mario Carneiro, 17-Jul-2014.)  (Revised by Mario
       Carneiro, 23-Aug-2014.) $)
    elplyr $p |- ( ( S C_ CC /\ N e. NN0 /\ A : NN0 --> S ) ->
      ( z e. CC |->
        sum_ k e. ( 0 ... N ) ( ( A ` k ) x. ( z ^ k ) ) ) e. ( Poly ` S ) ) $=
      ( vn va cc wss cn0 wcel cc0 cfz co cv cfv cmul csu wceq cvv w3a cexp cmpt
      wf csn cun cmap wrex cply simp1 simp2 simp3 ssun1 fss sylancl snssd unssd
      wb 0cnd cnex ssexg nn0ex elmapg mpbird eqidd oveq2 sumeq1d mpteq2dv fveq1
      eqeq2d oveq1d sumeq2sdv rspc2ev syl3anc elply sylanbrc ) CHIZEJKZJCBUDZUA
      ZVQAHLEMNZDOZBPZAOWBUBNZQNZDRZUCZAHLFOZMNZWBGOZPZWDQNZDRZUCZSZGCLUEZUFZJU
      GNZUHFJUHZWGCUIPKVQVRVSUJZVTVRBWRKZWGWGSZWSVQVRVSUKVTXAJWQBUDZVTVSCWQIXCV
      QVRVSULCWPUMJCWQBUNUOVTWQTKZJTKXAXCURVTWQHIHTKXDVTCWPHWTVTLHVTUSUPUQUTWQH
      TVAUOVBWQJBTTVCUOVDVTWGVEWOXBWGAHWAWLDRZUCZSFGEBJWRWHESZWNXFWGXGAHWMXEXGW
      IWAWLDWHELMVFVGVHVJWJBSZXFWGWGXHAHXEWFXHWAWLWEDXHWKWCWDQWBWJBVIVKVLVHVJVM
      VNACDFWGGVOVP $.
  $}

  ${
    $d j z A $.  $d j k z N $.  $d k z ph $.  $d j k z S $.
    elplyd.1 $e |- ( ph -> S C_ CC ) $.
    elplyd.2 $e |- ( ph -> N e. NN0 ) $.
    elplyd.3 $e |- ( ( ph /\ k e. ( 0 ... N ) ) -> A e. S ) $.
    $( Sufficient condition for elementhood in the set of polynomials.
       (Contributed by Mario Carneiro, 17-Jul-2014.) $)
    elplyd $p |- ( ph -> ( z e. CC |->
      sum_ k e. ( 0 ... N ) ( A x. ( z ^ k ) ) ) e. ( Poly ` S ) ) $=
      ( vj cc cc0 co cv cexp cmul csu cfv cn0 wcel cmpt cply nffvmpt1 nfcv nfov
      cfz csn cun cif wceq fveq2 oveq2 oveq12d cbvsumi wa elfznn0 adantl iftrue
      eqeltrd eqid fvmpt2 syl2anc eqtrd oveq1d sumeq2dv syl5eq mpteq2dv wf 0cnd
      wss snssd unssd elun1 syl adantlr ssun2 c0ex snss mpbir a1i ifclda elplyr
      wn fmptd syl3anc eqeltrrd plyun0 syl6eleq ) ABKLFUFMZCBNZENZOMZPMZEQZUAZD
      LUGZUHZUBRZDUBRABKWIJNZESWKWITZCLUIZUAZRZWJWSOMZPMZJQZUAZWOWRABKXFWNAXFWI
      WKXBRZWLPMZEQWNWIXEXIJEEXCXDPESXAWSUCEPUDEXDUDUEJXIUDWSWKUJXCXHXDWLPWSWKX
      BUKWSWKWJOULUMUNAWIXIWMEAWTUOZXHCWLPXJXHXACXJWKSTZXADTXHXAUJWTXKAWKFUPUQX
      JXACDWTXACUJAWTCLURUQZIUSESXADXBXBUTZVAVBXLVCVDVEVFVGAWQKVJFSTSWQXBVHXGWR
      TADWPKGALKAVIVKVLHAESXAWQXBAXKUOZWTCLWQAWTCWQTZXKXJCDTXOICDWPVMVNVOLWQTZX
      NWTWCUOXPWPWQVJWPDVPLWQVQVRVSVTWAXMWDBXBWQJFWBWEWFDWGWH $.
  $}

  ${
    $d k z A $.  $d k z N $.  $d k z S $.
    ply1term.1 $e |- F = ( z e. CC |-> ( A x. ( z ^ N ) ) ) $.
    $( Lemma for ~ ply1term .  (Contributed by Mario Carneiro, 26-Jul-2014.) $)
    ply1termlem $p |- ( ( A e. CC /\ N e. NN0 ) -> F = ( z e. CC |->
      sum_ k e. ( 0 ... N ) ( if ( k = N , A , 0 ) x. ( z ^ k ) ) ) ) $=
      ( cc wcel cn0 wa cc0 cfz co cv wceq cexp cmul csu syl adantr cif cmpt cuz
      cfv wss simplr nn0uz syl6eleq elfz1eq adantl iftrue simpll eqeltrd expcld
      fzss1 mulcld cdif wn eldifn cz wb nn0zd fzsn eleq2d elsn2g bitrd iffalsed
      mtbid oveq1d simpr eldifi elfznn0 expcl syl2an mul02d eqtrd fzfid oveq12d
      csn fsumss oveq2 fsum1 syl2anc eqtr3d mpteq2dva syl6reqr ) BGHZEIHZJZAGKE
      LMZCNZEOZBKUAZANZWKPMZQMZCRZUBAGBWNEPMZQMZUBDWIAGWQWSWIWNGHZJZEELMZWPCRZW
      QWSXAXBWJWPCXAEKUCUDZHXBWJUEXAEIXDWGWHWTUFZUGUHEKEUOSXAWKXBHZJZWMWOXGWMBG
      XGWLWMBOXFWLXAWKEUIUJZWLBKUKZSXAWGXFWGWHWTULZTUMXGWNWKWIWTXFUFXGWKEIXHXAW
      HXFXETUMUNUPXAWKWJXBUQHZJZWPKWOQMKXLWMKWOQXLWLBKXLXFWLXKXFURXAWKWJXBUSUJX
      LEUTHZXFWLVAXLEXAWHXKXETVBXMXFWKEVSZHWLXMXBXNWKEVCVDWKEUTVEVFSVHVGVIXLWOX
      AWTWKIHZWOGHXKWIWTVJZXKWKWJHXOWKWJXBVKWKEVLSWNWKVMVNVOVPXAKEVQVTXAXMWSGHX
      CWSOXAEXEVBXABWRXJXAWNEXPXEUNUPWPWSCEWLWMBWOWRQXIWKEWNPWAVRWBWCWDWEFWF $.

    $( A one-term polynomial.  (Contributed by Mario Carneiro, 17-Jul-2014.) $)
    ply1term $p |- ( ( S C_ CC /\ A e. S /\ N e. NN0 ) ->
                     F e. ( Poly ` S ) ) $=
      ( vk cc wss wcel cn0 w3a cc0 csn cun cply cfv co cv wceq cfz cif cexp csu
      cmul cmpt ssel2 ply1termlem stoic3 simp1 0cnd snssd unssd simp3 wa simpl2
      elun1 ssun2 c0ex snss mpbir ifcl sylancl elplyd eqeltrd plyun0 syl6eleq
      syl ) CHIZBCJZEKJZLZDCMNZOZPQZCPQVLDAHMEUARZGSZETZBMUBZASVQUCRUERGUDUFZVO
      VIVJBHJVKDVTTCHBUGABGDEFUHUIVLAVSVNGEVLCVMHVIVJVKUJVLMHVLUKULUMVIVJVKUNVL
      VQVPJZUOZBVNJZMVNJZVSVNJWBVJWCVIVJVKWAUPBCVMUQVHWDVMVNIVMCURMVNUSUTVAVRBM
      VNVBVCVDVECVFVG $.
  $}

  ${
    $d k m n x z A $.  $d k m n M $.  $d k m n x z N $.  $d k m n z ph $.
    $d k x z S $.
    $( A power is a polynomial.  (Contributed by Mario Carneiro,
       17-Jul-2014.) $)
    plypow $p |- ( ( S C_ CC /\ 1 e. S /\ N e. NN0 ) ->
                   ( z e. CC |-> ( z ^ N ) ) e. ( Poly ` S ) ) $=
      ( cc wss c1 wcel cn0 w3a cv cexp co cmul cmpt cply cfv wa id simp3 expcl
      syl2anr mulid2d mpteq2dva eqid ply1term eqeltrrd ) BDEZFBGZCHGZIZADFAJZCK
      LZMLZNZADULNBOPUJADUMULUJUKDGZQULUOUOUIULDGUJUORUGUHUISUKCTUAUBUCAFBUNCUN
      UDUEUF $.

    $( A constant function is a polynomial.  (Contributed by Mario Carneiro,
       17-Jul-2014.) $)
    plyconst $p |- ( ( S C_ CC /\ A e. S ) ->
                     ( CC X. { A } ) e. ( Poly ` S ) ) $=
      ( vz cc wss wcel wa cv cc0 cexp co cmul cmpt csn cxp cply cfv wceq exp0
      c1 adantl oveq2d ssel2 mulid1d eqtrd mpteq2dva fconstmpt syl6eqr cn0 0nn0
      adantr eqid ply1term mp3an3 eqeltrrd ) BDEZABFZGZCDACHZIJKZLKZMZDANOZBPQZ
      URVBCDAMVCURCDVAAURUSDFZGZVAATLKAVFUTTALVEUTTRURUSSUAUBVFAURADFVEBDAUCUKU
      DUEUFCDAUGUHUPUQIUIFVBVDFUJCABVBIVBULUMUNUO $.

    $( A test to show that a polynomial is nonzero.  (Contributed by Mario
       Carneiro, 23-Jul-2014.) $)
    ne0p $p |- ( ( A e. CC /\ ( F ` A ) =/= 0 ) -> F =/= 0p ) $=
      ( cc wcel cfv cc0 wne c0p wceq 0pval fveq1 eqeq1d syl5ibrcom necon3d imp
      ) ACDZABEZFGBHGPBHQFPQFIBHIZAHEZFIAJRQSFABHKLMNO $.

    $( The zero function is a polynomial.  (Contributed by Mario Carneiro,
       17-Jul-2014.) $)
    ply0 $p |- ( S C_ CC -> 0p e. ( Poly ` S ) ) $=
      ( cc wss c0p cc0 csn cun cply cfv cxp df-0p wcel id 0cnd snssd unssd c0ex
      ssun2 snss mpbir plyconst sylancl syl5eqel plyun0 syl6eleq ) ABCZDAEFZGZH
      IZAHIUFDBUGJZUIKUFUHBCEUHLZUJUILUFAUGBUFMUFEBUFNOPUKUGUHCUGAREUHQSTEUHUAU
      BUCAUDUE $.

    $( The identity function is a polynomial.  (Contributed by Mario Carneiro,
       17-Jul-2014.) $)
    plyid $p |- ( ( S C_ CC /\ 1 e. S ) -> Xp e. ( Poly ` S ) ) $=
      ( vz cc wss c1 wcel wa cidp cexp cmpt cply cfv cid cres mptresid mpteq2ia
      cv co exp1 df-idp 3eqtr4ri cn0 1nn0 plypow mp3an3 syl5eqel ) ACDZEAFZGHBC
      BQZEIRZJZAKLZBCUIJMCNUKHBCOBCUJUIUISPTUAUGUHEUBFUKULFUCBAEUDUEUF $.

    plyeq0.1 $e |- ( ph -> S C_ CC ) $.
    plyeq0.2 $e |- ( ph -> N e. NN0 ) $.
    plyeq0.3 $e |- ( ph -> A e. ( ( S u. { 0 } ) ^m NN0 ) ) $.
    plyeq0.4 $e |- ( ph -> ( A " ( ZZ>= ` ( N + 1 ) ) ) = { 0 } ) $.
    plyeq0.5 $e |- ( ph -> 0p =
      ( z e. CC |-> sum_ k e. ( 0 ... N ) ( ( A ` k ) x. ( z ^ k ) ) ) ) $.
    ${
      plyeq0.6 $e |- M = sup ( ( `' A " ( S \ { 0 } ) ) , RR , < ) $.
      plyeq0.7 $e |- ( ph -> ( `' A " ( S \ { 0 } ) ) =/= (/) ) $.
      $( Lemma for ~ plyeq0 .  If ` A ` is the coefficient function for a
         nonzero polynomial such that
         ` P ( z ) = sum_ k e. NN0 A ( k ) x. z ^ k = 0 ` for every ` z e. CC `
         and ` A ( M ) ` is the nonzero leading coefficient, then the function
         ` F ( z ) = P ( z ) / z ^ M ` is a sum of powers of ` 1 / z ` , and so
         the limit of this function as ` z ~~> +oo ` is the constant term,
         ` A ( M ) ` .  But ` F ( z ) = 0 ` everywhere, so this limit is also
         equal to zero so that ` A ( M ) = 0 ` , a contradiction.  (Contributed
         by Mario Carneiro, 22-Jul-2014.) $)
      plyeq0lem $p |- -. ph $=
        ( cc0 wcel cn co cc cn0 vm vn cfv csn wceq cxp cli wbr cfz cif csu cmin
        vx cv cexp cmul cmpt c1 cvv nnuz 1zzd fzfid wa clt cabs cdiv wf cmap wb
        cun wss 0cn snssd unssd ssexg sylancl nn0ex mpbid ffvelrn syl2an adantr
        a1i cnex abscld recnd syl nnex mptex cr eqid fvmpt adantl sylan eqeltrd
        ovex weq oveq1 oveq2d ad2antrr cz cdif cima wne cle syl6ss nn0red caddc
        wral cuz syl2anc elpreima fveq2 nn0zd syl2anr ad3antrrr breqtrrd mpbird
        wi cneg nncn breqtrd nnne0 eqtrd ad2antlr expclzd mulcld adantlr fveq2d
        sylibr oveq1d 3eqtr4d syl6eleq mpbir2and syl31anc 1z climconst2 3eqtr3d
        simpr c0p expcl elmapg fssd elfznn0 oveq2 nndivre crp nnrp elfzelz ccnv
        divcnv cdm cnvimass fdm syl5sseq csup wrex nn0ssz sselda plyco0 wfn ffn
        c0 simplbda eldifsni neeq1d breq1 imbi12d rspcv syl3c ralrimiva ralbidv
        rspcev suprzcl syl3anc syl5eqel sseldd zsubcl rpexpcld remulcld nnrecre
        breq2 rpred absge0d nnre 1red zred simplr zltp1le leaddsub2d negsubdi2d
        nnge1 lenegcon2d neg1z leexp2ad lemul2ad divrecd 3brtr4d rpge0d mulge0d
        eluz expn1 climsqz2 an32s absmuld 3eqtr4rd climabs0 wn ltned necon3bbii
        absidd velsn iffalsed mul02d ifeq1d ifid syl6eq mulid1d nn0ssre eldifsn
        anim1i difun2 suprub syl6breqr simpllr letri3d exp0d iftrued pm2.61dane
        subidd mpteq2dva fconstmpt syl6eqr ifcl eqimss2i eqbrtrd ltlecasei snex
        xpex anasss fveq1d 0pval sumeq2sdv sumex expne0d div0d fsumdivc expsubd
        fvconst2g divassd sumeq2dv climfsum wo suprleub syl5eqbr nn0uz ffvelrnd
        cfn elfz5 elsni eleq1d syl5ibrcom ralrimiv olcd sumss2 syl21anc eqeltri
        ltso supex sumsn sylancr eqtr3d mp2an climuni fvex elsn eldifbd pm2.65i
        simprd ) AFCUCZOUDZPZAVVSOUEZVWAAQVVTUFZVVSUGUHVWCOUGUHZVWBAVWCOGUIRZEU
[encoded data, 5520 characters]
        CXKWFVRVVRVVPVVQ $.
    $}

    $( If a polynomial is zero at every point (or even just zero at the
       positive integers), then all the coefficients must be zero.  This is the
       basis for the method of equating coefficients of equal polynomials, and
       ensures that ~ df-coe is well-defined.  (Contributed by Mario Carneiro,
       22-Jul-2014.) $)
    plyeq0 $p |- ( ph -> A = ( NN0 X. { 0 } ) ) $=
      ( cn0 wceq wss cun co cvv cc cima c0 cc0 csn wf cxp wfn cmap wcel wb 0cnd
      crn snssd unssd cnex ssexg sylancl nn0ex elmapg mpbid ffn syl cdm imadmrn
      ccnv fdm fimacnv eqtr4d cdif simpr wne wa cr clt csup adantr c1 caddc cuz
      cfv c0p cfz cv cexp cmul csu cmpt eqid plyeq0lem pm2.61dane uneq1d undif1
      pm2.21i imaeq2i imaundi eqtr3i un0 uncom eqtrd eqimss wfun ffun funimass3
      3eqtr4g ssid mpbird syl5eqssr df-f sylanbrc c0ex fconst2 sylib ) ALUAUBZC
      UCZCLXKUDMACLUEZCUJZXKNXLALDXKOZCUCZXMACXOLUFPUGZXPIAXOQUGZLQUGXQXPUHAXOR
      NRQUGXRADXKRGAUARAUIUKULUMXORQUNUOUPXOLCQQUQUOURZLXOCUSUTAXNCCVAZSZXKCVBA
      YAXKNZXTCVCZXKSZNZAXTYDMYEAXTYCXOSZYDAXPXTYFMXSXPXTLYFLXOCVDLXOCVEVFUTAYC
      DXKVGZSZYDOZTYDOZYFYDAYHTYDAYHTMZYHTAYKVHAYHTVIZVJZYKYMBCDEYHVKVLVMZFADRN
      YLGVNAFLUGYLHVNAXQYLIVNACFVOVPPVQVRSXKMYLJVNAVSBRUAFVTPEWAZCVRBWAYOWBPWCP
      EWDWEMYLKVNYNWFAYLVHWGWKWHWIYCYGXKOZSYFYIYPXOYCDXKWJWLYCYGXKWMWNYDTOYDYJY
      DWOYDTWPWNXBWQXTYDWRUTACWSZXTXTNYBYEUHAXPYQXSLXOCWTUTXTXCXTXKCXAUOXDXELXK
      CXFXGLUACXHXIXJ $.
  $}

  ${
    $d a f k n x z A $.  $d a f k n x z E $.  $d a f k n x z S $.
    plypf1.r $e |- R = ( CCfld |`s S ) $.
    plypf1.p $e |- P = ( Poly1 ` R ) $.
    plypf1.a $e |- A = ( Base ` P ) $.
    plypf1.e $e |- E = ( eval1 ` CCfld ) $.
    $( Write the set of complex polynomials in a subring in terms of the
       abstract polynomial construction.  (Contributed by Mario Carneiro,
       3-Jul-2015.)  (Proof shortened by AV, 29-Sep-2019.) $)
    plypf1 $p |- ( S e. ( SubRing ` CCfld ) -> ( Poly ` S ) = ( E " A ) ) $=
      ( vz vk ccnfld cfv wcel cc cc0 co cn0 cvv eqid vf vn va vx csubrg cv cmul
      cfz csu cmpt wceq csn cun wrex wss wa cgsu cfn c0g cnfldbas a1i fzfid crg
      cnex ccmn cnring ringcmn subrgss ad2antrr ad2antll csubg subrgsubg cnfld0
      mp1i wf adantr sylib feq3d mpbid elfznn0 sseldd syl2anc mulcld mptex fvex
      syl fsuppmptdm pwsgsum mpteq2dva eqtrd mp2an csubmnd cncrng ax-mp sylancr
      gsumfsum cxp wb pwselbasb sylibr fmptd cnfldmul fconstmpt fnfvima syl3anc
      cbs eqidd eqeltrrd cmgp cmg adantl pwselbas feqmptd simpr evl1vard simprd
      evl1expd eleq1 syl5 wfun cle wbr cmnd ringmnd nn0ex cfsupp funmpt 3pm3.2i
      w3a csupp oveq1d c0ex suppssfifsupp syl12anc wn wi cxr 0xr cmnf eqeltrd
      cply cima cexp elply simprbi elmapi subg0cl snssd ssequn2 ffvelrn adantrl
      cmap cpws syl2an simprl expcl anassrs pwsring cpl1 ccrg evl1rhm subrgply1
      crh rhmima subgsubm 3syl cmulr fconst6g anass1rs pwsmulrval offval2 cascl
      cof evl1sca wfn rhmf ffn simpll subrg1asclcl mpbird subrgvr1cl submmulgcl
      subrgsubm cnfldexp subrgmcl gsumsubmcl syl5ibrcom rexlimdvva ffun fvelima
      cv1 mpan cdg1 cif cco1 cvsca ccom sselda fveq2d ply1ring cghm cmhm rhmghm
      ply1coe clmod ply1lmod coe1f subrgbas syl5ibr imp ffvelrnda ringmgp vr1cl
      ghmmhm mulgnn0cl ply1sca lmodvscl coe1sfi fsuppimpd eqimss2 lmod0vs sylan
      mgpbas csca suppssov1 gsummhm fveq2 fmptco ffvelrni eqeq2d anbi2d evl1vsd
      oveq2d 3eqtr2d adantlr anasss cdif eldifn wne eldifi deg1ge 3expia xrmax2
      adantll deg1xrcl nn0red rexrd ifcl sylancl xrletr mpan2d jctild wo deg1cl
      syld elun nn0ge0 iftrued id mnflt0 mnfxr xrltnle mpbi elsni breq2d mtbiri
      clt iffalsed 0nn0 syl6eqel fznn0 sylibrd necon1bd mpd sylan2 mul02d an32s
      pws0g eqtr3i syl6eq suppss2 fz0ssnn0 resmpt oveq2i gsumres 3eqtr3a 3eqtrd
      jaoi cres elplyr syl5ibcom rexlimdva impbid eqrdv ) DLUEMNZUADUUAMZEAUUBZ
[encoded data, 6480 characters]
      VWRVWPXRVWKVWLXSVWMVWN $.
  $}

  ${
    $d m n A $.  $d k m n B $.  $d k m n M $.  $d k m n N $.  $d k m n z ph $.
    plyaddlem.1 $e |- ( ph -> F e. ( Poly ` S ) ) $.
    plyaddlem.2 $e |- ( ph -> G e. ( Poly ` S ) ) $.
    plyaddlem.m $e |- ( ph -> M e. NN0 ) $.
    plyaddlem.n $e |- ( ph -> N e. NN0 ) $.
    plyaddlem.a $e |- ( ph -> A : NN0 --> CC ) $.
    plyaddlem.b $e |- ( ph -> B : NN0 --> CC ) $.
    plyaddlem.a2 $e |- ( ph -> ( A " ( ZZ>= ` ( M + 1 ) ) ) = { 0 } ) $.
    plyaddlem.b2 $e |- ( ph -> ( B " ( ZZ>= ` ( N + 1 ) ) ) = { 0 } ) $.
    plyaddlem.f $e |- ( ph -> F =
      ( z e. CC |-> sum_ k e. ( 0 ... M ) ( ( A ` k ) x. ( z ^ k ) ) ) ) $.
    plyaddlem.g $e |- ( ph -> G =
      ( z e. CC |-> sum_ k e. ( 0 ... N ) ( ( B ` k ) x. ( z ^ k ) ) ) ) $.
    $( Derive the coefficient function for the sum of two polynomials.
       (Contributed by Mario Carneiro, 23-Jul-2014.) $)
    plyaddlem1 $p |- ( ph -> ( F oF + G ) = ( z e. CC |->
        sum_ k e. ( 0 ... if ( M <_ N , N , M ) )
          ( ( ( A oF + B ) ` k ) x. ( z ^ k ) ) ) ) $=
      ( caddc cof co cc cc0 cfz cv cfv cexp cmul csu cmpt cle wbr cif wcel cnex
      cvv a1i wa sumex offval2 fzfid cn0 elfznn0 adantr ffvelrnda expcl adantll
      wf mulcld sylan2 fsumadd wceq wfn ffn syl nn0ex inidm eqidd ofval adantlr
      oveq1d adddird eqtrd sumeq2dv wss cuz cz nn0zd ifcld cr nn0red max1 eluz2
      syl2anc syl3anbrc fzss2 cdif csn c1 cima wn eldifn adantl cun eldifi cmin
      nn0uz peano2nn0 syl6eleq uzsplit syl5eq nn0cnd ax-1cn pncan oveq2d uneq1d
      wo sylancl ad2antrr eleqtrd elun sylib ord mpd wi wfun cdm ffun syl5sseqr
      ssun2 fdm sseqtr4d funfvima2 elsni mul02d fsumss max2 oveq12d mpteq2dva
      3eqtr4d eqtr4d ) AGHUAUBZUCBUDUEIUFUCZFUGZCUHZBUGZUUFUIUCZUJUCZFUKZUEJUFU
      CZUUFDUHZUUIUJUCZFUKZUAUCZULBUDUEIJUMUNZJIUOZUFUCZUUFCDUUDUCUHZUUIUJUCZFU
      KZULABUDUUKUUOUAGHURURURUDURUPAUQUSUUKURUPAUUHUDUPZUTZUUEUUJFVAUSUUOURUPU
      VDUULUUNFVAUSSTVBABUDUVBUUPUVDUUSUUJUUNUAUCZFUKUUSUUJFUKZUUSUUNFUKZUAUCUV
      BUUPUVDUUSUUJUUNFUVDUEUURVCZUUFUUSUPZUVDUUFVDUPZUUJUDUPZUUFUURVEZUVDUVJUT
      ZUUGUUIUVDVDUDUUFCAVDUDCVJZUVCOVFVGZUVCUVJUUIUDUPZAUUHUUFVHVIZVKZVLUVIUVD
      UVJUUNUDUPZUVLUVMUUMUUIUVDVDUDUUFDAVDUDDVJZUVCPVFVGZUVQVKZVLVMUVDUUSUVAUV
      EFUVIUVDUVJUVAUVEVNUVLUVMUVAUUGUUMUAUCZUUIUJUCUVEUVMUUTUWCUUIUJAUVJUUTUWC
      VNUVCAVDVDUUGUUMUAVDCDURURUUFAUVNCVDVOOVDUDCVPVQAUVTDVDVOPVDUDDVPVQVDURUP
      AVRUSZUWDVDVSAUVJUTZUUGVTUWEUUMVTWAWBWCUVMUUGUUMUUIUVOUWAUVQWDWEVLWFUVDUU
      KUVFUUOUVGUAUVDUUEUUSUUJFAUUEUUSWGZUVCAUURIWHUHUPZUWFAIWIUPUURWIUPZIUURUM
      UNZUWGAIMWJAUURAUUQJIVDNMWKWJZAIWLUPZJWLUPZUWIAIMWMZAJNWMZIJWNWPIUURWOWQI
      UEUURWRVQVFUUFUUEUPZUVDUVJUVKUUFIVEUVRVLUVDUUFUUSUUEWSUPZUTZUUJUEUUIUJUCZ
      UEUWQUUGUEUUIUJUWQUUGUEWTZUPUUGUEVNUWQUUGCIXAUAUCZWHUHZXBZUWSUWQUUFUXAUPZ
      UUGUXBUPZUWQUWOXCZUXCUWPUXEUVDUUFUUSUUEXDXEUWQUWOUXCUWQUUFUUEUXAXFZUPUWOU
      XCXSUWQUUFVDUXFUWPUVJUVDUWPUVIUVJUUFUUSUUEXGUVLVQZXEAVDUXFVNUVCUWPAVDUEUW
      TXAXHUCZUFUCZUXAXFZUXFAVDUEWHUHZUXJXIAUWTUXKUPUXKUXJVNAUWTVDUXKAIVDUPUWTV
      DUPMIXJVQXIXKUEUWTXLVQXMZAUXIUUEUXAAUXHIUEUFAIUDUPXAUDUPZUXHIVNAIMXNXOIXA
      XPXTXQXRWEYAYBUUFUUEUXAYCYDYEYFAUXCUXDYGZUVCUWPACYHZUXACYIZWGUXNAUVNUXOOV
      DUDCYJVQAUXAVDUXPAUXJUXAVDUXAUXIYLUXLYKAUVNUXPVDVNOVDUDCYMVQYNUXAUUFCYOWP
      YAYFAUXBUWSVNUVCUWPQYAYBUUGUEYPVQWCUWQUUIUWPUVDUVJUVPUXGUVQVLYQWEUVHYRUVD
      UULUUSUUNFAUULUUSWGZUVCAUURJWHUHUPZUXQAJWIUPUWHJUURUMUNZUXRAJNWJUWJAUWKUW
      LUXSUWMUWNIJYSWPJUURWOWQJUEUURWRVQVFUUFUULUPZUVDUVJUVSUUFJVEUWBVLUVDUUFUU
      SUULWSUPZUTZUUNUWRUEUYBUUMUEUUIUJUYBUUMUWSUPUUMUEVNUYBUUMDJXAUAUCZWHUHZXB
      ZUWSUYBUUFUYDUPZUUMUYEUPZUYBUXTXCZUYFUYAUYHUVDUUFUUSUULXDXEUYBUXTUYFUYBUU
      FUULUYDXFZUPUXTUYFXSUYBUUFVDUYIUYAUVJUVDUYAUVIUVJUUFUUSUULXGUVLVQZXEAVDUY
      IVNUVCUYAAVDUEUYCXAXHUCZUFUCZUYDXFZUYIAVDUXKUYMXIAUYCUXKUPUXKUYMVNAUYCVDU
      XKAJVDUPUYCVDUPNJXJVQXIXKUEUYCXLVQXMZAUYLUULUYDAUYKJUEUFAJUDUPUXMUYKJVNAJ
      NXNXOJXAXPXTXQXRWEYAYBUUFUULUYDYCYDYEYFAUYFUYGYGZUVCUYAADYHZUYDDYIZWGUYOA
      UVTUYPPVDUDDYJVQAUYDVDUYQAUYMUYDVDUYDUYLYLUYNYKAUVTUYQVDVNPVDUDDYMVQYNUYD
      UUFDYOWPYAYFAUYEUWSVNUVCUYARYAYBUUMUEYPVQWCUYBUUIUYAUVDUVJUVPUYJUVQVLYQWE
      UVHYRYTUUBUUAUUC $.

    $( Derive the coefficient function for the product of two polynomials.
       (Contributed by Mario Carneiro, 23-Jul-2014.) $)
    plymullem1 $p |- ( ph -> ( F oF x. G ) = ( z e. CC |->
        sum_ n e. ( 0 ... ( M + N ) ) ( sum_ k e. ( 0 ... n )
          ( ( A ` k ) x. ( B ` ( n - k ) ) ) x. ( z ^ n ) ) ) ) $=
      ( vm cmul cof co cc cc0 cfz cv cfv cexp csu cmpt caddc cmin cvv wcel cnex
      a1i wa sumex offval2 weq fveq2 oveq2 oveq12d oveq2d cn0 elfznn0 wf adantr
      wceq ffvelrnda expcl adantll mulcld sylan2 anim12dan mulcl syl fsum0diag2
      cuz wss nn0cnd ad2antrr adantl addsubd cz fznn0sub nn0uz syl6eleq eluzadd
      nn0zd syl2anc eqeltrd addid2d fveq2d eleqtrd fzss2 adantlr cdif csn c1 wn
      eldifn cun wo eldifi peano2nn0 uzsplit syl5eq ax-1cn pncan sylancl uneq1d
      cima eqtrd ad3antrrr elun sylib ord mpd wfun cdm ffun ssun2 syl5sseqr fdm
      sseqtr4d funfvima2 elsni oveq1d simplr syl2an mul02d fzfid fsumss eqtr4d
      wi sumeq2dv mul01d fsum2mul addcomd fsumcl cfn olcd sumz simpll fsummulc1
      3eqtr3d expaddd ad2antlr pncan3d eqtr3d 3eqtr4rd cbvsumv oveq2i mpteq2dva
      mul4d syl6eq ) AHIUCUDUEBUFUGJUHUEZFUIZCUJZBUIZUVBUKUEZUCUEZFULZUGKUHUEZU
      VBDUJZUVEUCUEZFULZUCUEZUMBUFUGJKUNUEZUHUEZUGGUIZUHUEZUVCUVOUVBUOUEZDUJZUC
      UEZFULUVDUVOUKUEZUCUEZGULZUMABUFUVGUVKUCHIUPUPUPUFUPUQAURUSUVGUPUQAUVDUFU
      QZUTZUVAUVFFVAUSUVKUPUQUWDUVHUVJFVAUSTUAVBABUFUWBUVLUWDUWBUVGUVHUVODUJZUV
      TUCUEZGULZUCUEZUVLUWDUVNUGUVMUVBUOUEZUHUEZUVFUWFUCUEZGULZFULZUVNUVPUVFUVR
      UVDUVQUKUEZUCUEZUCUEZFULZGULUWHUWBUWDUBUWKUVFUBUIZDUJZUVDUWRUKUEZUCUEZUCU
      EUWPFGUVMUBGVCZUXAUWFUVFUCUXBUWSUWEUWTUVTUCUWRUVODVDUWRUVOUVDUKVEVFVGUWRU
      VQVLZUXAUWOUVFUCUXCUWSUVRUWTUWNUCUWRUVQDVDUWRUVQUVDUKVEVFVGUWDUVBUVNUQZUV
      OUWJUQZUTUTUVFUFUQZUWFUFUQZUTUWKUFUQUWDUXDUXFUXEUXGUXDUWDUVBVHUQZUXFUVBUV
      MVIZUWDUXHUTUVCUVEUWDVHUFUVBCAVHUFCVJZUWCPVKVMUWCUXHUVEUFUQZAUVDUVBVNZVOZ
      VPZVQUXEUWDUVOVHUQZUXGUVOUWIVIZUWDUXOUTUWEUVTUWDVHUFUVODAVHUFDVJZUWCQVKVM
      UWCUXOUVTUFUQZAUVDUVOVNZVOZVPZVQZVRUVFUWFVSVTWAUWDUVAUVHUWKGULZFULUVAUWLF
      ULUWHUWMUWDUVAUYCUWLFUWDUVBUVAUQZUTZUVHUWJUWKGUYEUWIKWBUJZUQUVHUWJWCUYEUW
      IUGKUNUEZWBUJZUYFUYEUWIJUVBUOUEZKUNUEZUYHUYEJKUVBAJUFUQZUWCUYDAJNWDZWEAKU
      FUQZUWCUYDAKOWDZWEZUYEUVBUYDUXHUWDUVBJVIZWFWDWGUYEUYIUGWBUJZUQKWHUQZUYJUY
      HUQUYEUYIVHUYQUYDUYIVHUQUWDUVBUGJWIWFWJWKAUYRUWCUYDAKOWMWEKUGUYIWLWNWOUYE
      UYGKWBUYEKUYOWPWQWRKUGUWIWSVTUYEUVOUVHUQZUTUVFUWFUYEUXFUYSUYDUWDUXHUXFUYP
      UXNVQZVKUWDUYSUXGUYDUYSUWDUXOUXGUVOKVIUYAVQZWTVPUYEUVOUWJUVHXAUQZUTZUWKUV
      FUGUCUEUGVUCUWFUGUVFUCVUCUWFUGUVTUCUEUGVUCUWEUGUVTUCVUCUWEUGXBZUQUWEUGVLV
      UCUWEDKXCUNUEZWBUJZXPZVUDVUCUVOVUFUQZUWEVUGUQZVUCUYSXDZVUHVUBVUJUYEUVOUWJ
      UVHXEWFVUCUYSVUHVUCUVOUVHVUFXFZUQUYSVUHXGVUCUVOVHVUKVUBUXOUYEVUBUXEUXOUVO
      UWJUVHXHUXPVTZWFAVHVUKVLUWCUYDVUBAVHUGVUEXCUOUEZUHUEZVUFXFZVUKAVHUYQVUOWJ
      AVUEUYQUQUYQVUOVLAVUEVHUYQAKVHUQVUEVHUQOKXIVTWJWKUGVUEXJVTXKZAVUNUVHVUFAV
      UMKUGUHAUYMXCUFUQZVUMKVLUYNXLKXCXMXNVGXOXQXRWRUVOUVHVUFXSXTYAYBAVUHVUIYSZ
      UWCUYDVUBADYCZVUFDYDZWCVURAUXQVUSQVHUFDYEVTAVUFVHVUTAVUOVUFVHVUFVUNYFVUPY
      GAUXQVUTVHVLQVHUFDYHVTYIVUFUVODYJWNXRYBAVUGVUDVLUWCUYDVUBSXRWRUWEUGYKVTYL
      VUCUVTUYEUWCUXOUXRVUBAUWCUYDYMVULUXSYNYOXQVGVUCUVFUYEUXFVUBUYTVKUUAXQUYEU
      GUWIYPZYQYTUWDUVAUVHUVFUWFFGUWDUGJYPUWDUGKYPUYTVUAUUBUWDUVAUVNUWLFAUVAUVN
      WCZUWCAUVMJWBUJZUQVVBAUVMKJUNUEZVVCAJKUYLUYNUUCAVVDUGJUNUEZWBUJZVVCAKUYQU
      QJWHUQVVDVVFUQAKVHUYQOWJWKAJNWMJUGKWLWNAVVEJWBAJUYLWPWQWRWOJUGUVMWSVTVKUY
      EUWJUWKGVVAUYEUXEUTUVFUWFUYEUXFUXEUYTVKUWDUXEUXGUYDUYBWTVPUUDUWDUVBUVNUVA
      XAUQZUTZUWLUWJUGGULZUGVVHUWJUWKUGGVVHUXEUTZUWKUGUWFUCUEUGVVJUVFUGUWFUCVVH
      UVFUGVLUXEVVHUVFUGUVEUCUEUGVVHUVCUGUVEUCVVHUVCVUDUQUVCUGVLVVHUVCCJXCUNUEZ
      WBUJZXPZVUDVVHUVBVVLUQZUVCVVMUQZVVHUYDXDZVVNVVGVVPUWDUVBUVNUVAXEWFVVHUYDV
      VNVVHUVBUVAVVLXFZUQUYDVVNXGVVHUVBVHVVQVVGUXHUWDVVGUXDUXHUVBUVNUVAXHUXIVTZ
      WFAVHVVQVLUWCVVGAVHUGVVKXCUOUEZUHUEZVVLXFZVVQAVHUYQVWAWJAVVKUYQUQUYQVWAVL
      AVVKVHUYQAJVHUQVVKVHUQNJXIVTWJWKUGVVKXJVTXKZAVVTUVAVVLAVVSJUGUHAUYKVUQVVS
      JVLUYLXLJXCXMXNVGXOXQWEWRUVBUVAVVLXSXTYAYBAVVNVVOYSZUWCVVGACYCZVVLCYDZWCV
      WCAUXJVWDPVHUFCYEVTAVVLVHVWEAVWAVVLVHVVLVVTYFVWBYGAUXJVWEVHVLPVHUFCYHVTYI
      VVLUVBCYJWNWEYBAVVMVUDVLUWCVVGRWEWRUVCUGYKVTYLVVHUVEVVGUWDUXHUXKVVRUXMVQY
      OXQVKYLVVJUWFUWDUXEUXGVVGUYBWTYOXQYTVVHUWJUYQWCZUWJUUEUQZXGVVIUGVLVVHVWGV
      WFVVHUGUWIYPUUFUWJGUGUUGVTXQUWDUGUVMYPYQUUJUWDUVNUWAUWQGUWDUVOUVNUQZUTZUW
      AUVPUVSUVTUCUEZFULUWQVWIUVPUVSUVTFVWIUGUVOYPVWHUWDUXOUXRUVOUVMVIZUXTVQVWI
      UVBUVPUQZUTZUVCUVRVWIAUXHUVCUFUQVWLAUWCVWHUUHZUVBUVOVIZAVHUFUVBCPVMYNZVWI
      AUVQVHUQZUVRUFUQVWLVWNUVBUGUVOWIZAVHUFUVQDQVMYNZVPUUIVWIUVPUWPVWJFVWMUWPU
      VSUVEUWNUCUEZUCUEVWJVWMUVCUVEUVRUWNVWPVWIUWCUXHUXKVWLAUWCVWHYMZVWOUXLYNVW
      SVWIUWCVWQUWNUFUQVWLVXAVWRUVDUVQVNYNUUSVWMVWTUVTUVSUCVWMUVDUVBUVQUNUEZUKU
      EVWTUVTVWMUVDUVBUVQVWIUWCVWLVXAVKVWLVWQVWIVWRWFVWLUXHVWIVWOWFZUUKVWMVXBUV
      OUVDUKVWMUVBUVOVWMUVBVXCWDVWMUVOVWHUXOUWDVWLVWKUULWDUUMVGUUNVGXQYTYRYTUUO
      UWGUVKUVGUCUVHUWFUVJGFGFVCUWEUVIUVTUVEUCUVOUVBDVDUVOUVBUVDUKVEVFUUPUUQUUT
      UURYR $.
  $}

  ${
    $d k m n x y z B $.  $d a b j m n w x y z F $.  $d a b j k m n w x y z S $.
    $d m n x y z A $.  $d a b j m n w x y z G $.  $d a b j k m n w x y z ph $.
    $d k m n z M $.  $d k m n z N $.
    plyadd.1 $e |- ( ph -> F e. ( Poly ` S ) ) $.
    plyadd.2 $e |- ( ph -> G e. ( Poly ` S ) ) $.
    plyadd.3 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x + y ) e. S ) $.
    ${
      plyadd.m $e |- ( ph -> M e. NN0 ) $.
      plyadd.n $e |- ( ph -> N e. NN0 ) $.
      plyadd.a $e |- ( ph -> A e. ( ( S u. { 0 } ) ^m NN0 ) ) $.
      plyadd.b $e |- ( ph -> B e. ( ( S u. { 0 } ) ^m NN0 ) ) $.
      plyadd.a2 $e |- ( ph -> ( A " ( ZZ>= ` ( M + 1 ) ) ) = { 0 } ) $.
      plyadd.b2 $e |- ( ph -> ( B " ( ZZ>= ` ( N + 1 ) ) ) = { 0 } ) $.
      plyadd.f $e |- ( ph -> F =
        ( z e. CC |-> sum_ k e. ( 0 ... M ) ( ( A ` k ) x. ( z ^ k ) ) ) ) $.
      plyadd.g $e |- ( ph -> G =
        ( z e. CC |-> sum_ k e. ( 0 ... N ) ( ( B ` k ) x. ( z ^ k ) ) ) ) $.
      $( Lemma for ~ plyadd .  (Contributed by Mario Carneiro, 21-Jul-2014.) $)
      plyaddlem $p |- ( ph -> ( F oF + G ) e. ( Poly ` S ) ) $=
        ( caddc cof co cc0 csn cun cply cfv cc cle wbr cif cfz cv cexp cmul csu
        cmpt cn0 cmap wcel wf cvv wb wss plybss syl 0cnd snssd unssd cnex ssexg
        sylancl nn0ex elmapg mpbid fssd plyaddlem1 ifcld un0addcl a1i inidm off
        eqid elfznn0 ffvelrn syl2an elplyd eqeltrd plyun0 syl6eleq ) AIJUDUEZUF
        ZGUGUHZUIZUJUKZGUJUKZAWPDULUGKLUMUNZLKUOZUPUFZHUQZEFWOUFZUKZDUQXDURUFUS
        UFHUTVAWSADEFGHIJKLMNPQAVBWRULEAEWRVBVCUFZVDZVBWREVEZRAWRVFVDZVBVFVDZXH
        XIVGAWRULVHULVFVDXJAGWQULAIWTVDGULVHMGIVIVJZAUGULAVKVLVMZVNWRULVFVOVPZV
        QWRVBEVFVFVRVPVSZXMVTAVBWRULFAFXGVDZVBWRFVEZSAXJXKXPXQVGXNVQWRVBFVFVFVR
        VPVSZXMVTTUAUBUCWAADXFWRHXBXMAXALKVBQPWBAVBWRXEVEXDVBVDXFWRVDXDXCVDABCV
        BVBVBUDWRWRWREFVFVFAGWRBUQCUQXLWRWGOWCXOXRXKAVQWDZXSVBWEWFXDXBWHVBWRXDX
        EWIWJWKWLGWMWN $.

      plymul.x $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x x. y ) e. S ) $.
      $( Lemma for ~ plymul .  (Contributed by Mario Carneiro, 21-Jul-2014.) $)
      plymullem $p |- ( ph -> ( F oF x. G ) e. ( Poly ` S ) ) $=
        ( vn cmul cof co cc0 csn cun cply cfv cc caddc cfz cv cmin csu cexp cn0
        cmpt cmap wcel wf cvv wb wss plybss 0cnd snssd unssd cnex ssexg sylancl
        syl nn0ex elmapg mpbid fssd plymullem1 nn0addcld eqid un0addcl fzfid wa
        elfznn0 ffvelrn syl2an fznn0sub un0mulcl caovclg syldan ssun2 c0ex snss
        jca mpbir a1i fsumcllem adantr elplyd eqeltrd plyun0 syl6eleq ) AIJUFUG
        UHZGUIUJZUKZULUMZGULUMZAXFDUNUIKLUOUHZUPUHZUIUEUQZUPUHZHUQZEUMZXMXOURUH
        ZFUMZUFUHZHUSZDUQXMUTUHUFUHUEUSVBXIADEFGHUEIJKLMNPQAVAXHUNEAEXHVAVCUHZV
        DZVAXHEVEZRAXHVFVDZVAVFVDZYBYCVGAXHUNVHUNVFVDYDAGXGUNAIXJVDGUNVHMGIVIVP
        ZAUIUNAVJVKVLZVMXHUNVFVNVOZVQXHVAEVFVFVRVOVSZYGVTAVAXHUNFAFYAVDZVAXHFVE
        ZSAYDYEYJYKVGYHVQXHVAFVFVFVRVOVSZYGVTTUAUBUCWAADXTXHUEXKYGAKLPQWBAXTXHV
        DXMXLVDABCXNXSXHHYGAGXHBUQZCUQZYFXHWCZOWDAUIXMWEAXOXNVDZXPXHVDZXRXHVDZW
        FXSXHVDAYPWFYQYRAYCXOVAVDYQYPYIXOXMWGVAXHXOEWHWIAYKXQVAVDYRYPYLXOUIXMWJ
        VAXHXQFWHWIWQABCXPXRXHXHXHUFAGXHYMYNYFYOUDWKWLWMUIXHVDZAYSXGXHVHXGGWNUI
        XHWOWPWRWSWTXAXBXCGXDXE $.
    $}

    $( The sum of two polynomials is a polynomial.  (Contributed by Mario
       Carneiro, 21-Jul-2014.) $)
    plyadd $p |- ( ph -> ( F oF + G ) e. ( Poly ` S ) ) $=
      ( vz vk cv co cfv cc cmul wa cn0 wrex wcel va vm vb vn vw vj c1 caddc cuz
      cima cc0 csn wceq cfz cexp csu cmpt cun cof wss elply2 simprbi syl reeanv
      cmap cply w3a simp1l sylan simp1rl simp1rr simp2l simp3ll simp3rl simp3lr
      simp2r oveq1 oveq2d sumeq2sdv fveq2 oveq2 oveq12d cbvsumv cbvmptv simp3rr
      syl6eq plyaddlem 3expia rexlimdvva syl5bir mp2and ) AUALZUBLZUGUHMUINUJUK
      ULZUMZEJOUKWMUNMZKLZWLNZJLZWQUOMZPMZKUPZUQZUMZQZUADWNURRVEMZSZUBRSZUCLZUD
      LZUGUHMUINUJWNUMZFJOUKXJUNMZWQXINZWTPMZKUPZUQZUMZQZUCXFSZUDRSZEFUHUSMDVFN
      ZTZAEYATZXHGYCDOUTZXHJDKUBEUAVAVBVCAFYATZXTHYEYDXTJDKUDFUCVAVBVCXHXTQXGXS
      QZUDRSUBRSAYBXGXSUBUDRRVDAYFYBUBUDRRYFXEXRQZUCXFSUAXFSAWMRTZXJRTZQZQZYBXE
      XRUAUCXFXFVDYKYGYBUAUCXFXFYKWLXFTZXIXFTZQZYGYBYKYNYGVGZBCUEWLXIDUFEFWMXJY
      OAYCAYJYNYGVHZGVCYOAYEYPHVCYOABLZDTCLZDTQYQYRUHMDTYPIVIYHYIAYNYGVJYHYIAYN
      YGVKYKYLYMYGVLYKYLYMYGVPWOXDXRYKYNVMXKXQXEYKYNVNYOEXCUEOWPUFLZWLNZUELZYSU
      OMZPMZUFUPZUQWOXDXRYKYNVOJUEOXBUUDWSUUAUMZXBWPWRUUAWQUOMZPMZKUPUUDUUEWPXA
      UUGKUUEWTUUFWRPWSUUAWQUOVQZVRVSWPUUGUUCKUFWQYSUMZWRYTUUFUUBPWQYSWLVTWQYSU
      UAUOWAZWBWCWFWDWFYOFXPUEOXLYSXINZUUBPMZUFUPZUQXKXQXEYKYNWEJUEOXOUUMUUEXOX
      LXMUUFPMZKUPUUMUUEXLXNUUNKUUEWTUUFXMPUUHVRVSXLUUNUULKUFUUIXMUUKUUFUUBPWQY
      SXIVTUUJWBWCWFWDWFWGWHWIWJWIWJWK $.

    plymul.4 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x x. y ) e. S ) $.
    $( The product of two polynomials is a polynomial.  (Contributed by Mario
       Carneiro, 21-Jul-2014.) $)
    plymul $p |- ( ph -> ( F oF x. G ) e. ( Poly ` S ) ) $=
      ( vz vk cv co cfv cmul wa cn0 wrex wcel va vm vb vn vw vj c1 cuz cima cc0
      caddc csn wceq cfz cexp csu cmpt cun cmap cof cply wss elply2 simprbi syl
      cc reeanv w3a simp1l sylan simp1rl simp1rr simp2l simp3ll simp3rl simp3lr
      simp2r oveq1 oveq2d sumeq2sdv fveq2 oveq2 oveq12d cbvsumv cbvmptv simp3rr
      syl6eq plymullem 3expia rexlimdvva syl5bir mp2and ) AUAMZUBMZUGUKNUHOUIUJ
      ULZUMZEKVFUJWNUNNZLMZWMOZKMZWRUONZPNZLUPZUQZUMZQZUADWOURRUSNZSZUBRSZUCMZU
      DMZUGUKNUHOUIWOUMZFKVFUJXKUNNZWRXJOZXAPNZLUPZUQZUMZQZUCXGSZUDRSZEFPUTNDVA
      OZTZAEYBTZXIGYDDVFVBZXIKDLUBEUAVCVDVEAFYBTZYAHYFYEYAKDLUDFUCVCVDVEXIYAQXH
      XTQZUDRSUBRSAYCXHXTUBUDRRVGAYGYCUBUDRRYGXFXSQZUCXGSUAXGSAWNRTZXKRTZQZQZYC
      XFXSUAUCXGXGVGYLYHYCUAUCXGXGYLWMXGTZXJXGTZQZYHYCYLYOYHVHZBCUEWMXJDUFEFWNX
      KYPAYDAYKYOYHVIZGVEYPAYFYQHVEYPABMZDTCMZDTQZYRYSUKNDTYQIVJYIYJAYOYHVKYIYJ
      AYOYHVLYLYMYNYHVMYLYMYNYHVQWPXEXSYLYOVNXLXRXFYLYOVOYPEXDUEVFWQUFMZWMOZUEM
      ZUUAUONZPNZUFUPZUQWPXEXSYLYOVPKUEVFXCUUFWTUUCUMZXCWQWSUUCWRUONZPNZLUPUUFU
      UGWQXBUUILUUGXAUUHWSPWTUUCWRUOVRZVSVTWQUUIUUELUFWRUUAUMZWSUUBUUHUUDPWRUUA
      WMWAWRUUAUUCUOWBZWCWDWGWEWGYPFXQUEVFXMUUAXJOZUUDPNZUFUPZUQXLXRXFYLYOWFKUE
      VFXPUUOUUGXPXMXNUUHPNZLUPUUOUUGXMXOUUPLUUGXAUUHXNPUUJVSVTXMUUPUUNLUFUUKXN
      UUMUUHUUDPWRUUAXJWAUULWCWDWGWEWGYPAYTYRYSPNDTYQJVJWHWIWJWKWJWKWL $.

    plysub.5 $e |- ( ph -> -u 1 e. S ) $.
    $( The difference of two polynomials is a polynomial.  (Contributed by
       Mario Carneiro, 21-Jul-2014.) $)
    plysub $p |- ( ph -> ( F oF - G ) e. ( Poly ` S ) ) $=
      ( cc c1 cof co cvv wcel wf plyf syl cneg csn cxp cmul caddc cmin cply cfv
      wceq cnex a1i ofnegsub syl3anc wss plybss plyconst plymul plyadd eqeltrrd
      syl2anc ) AELMUAZUBUCZFUDNOZUENOZEFUFNOZDUGUHZALPQZLLERZLLFRZVDVEUIVGAUJU
      KAEVFQZVHGDESTAFVFQVIHDFSTLEFPULUMABCDEVCGABCDVBFADLUNZVADQVBVFQAVJVKGDEU
      OTKVADUPUTHIJUQIURUS $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x y S $.
    $( The sum of two polynomials is a polynomial.  (Contributed by Mario
       Carneiro, 24-Jul-2014.) $)
    plyaddcl $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) ->
      ( F oF + G ) e. ( Poly ` CC ) ) $=
      ( vx vy cply cfv wa cc plyssc simpl sseldi simpr cv caddc co addcl adantl
      wcel plyadd ) BAFGZSZCUASZHZDEIBCUDUAIFGZBAJZUBUCKLUDUAUECUFUBUCMLDNZISEN
      ZISHUGUHOPISUDUGUHQRT $.

    $( The product of two polynomials is a polynomial.  (Contributed by Mario
       Carneiro, 24-Jul-2014.) $)
    plymulcl $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) ->
      ( F oF x. G ) e. ( Poly ` CC ) ) $=
      ( vx vy cply cfv wa cc plyssc simpl sseldi simpr cv caddc co addcl adantl
      wcel cmul mulcl plymul ) BAFGZSZCUCSZHZDEIBCUFUCIFGZBAJZUDUEKLUFUCUGCUHUD
      UEMLDNZISENZISHZUIUJOPISUFUIUJQRUKUIUJTPISUFUIUJUARUB $.

    $( The difference of two polynomials is a polynomial.  (Contributed by
       Mario Carneiro, 24-Jul-2014.) $)
    plysubcl $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) ->
      ( F oF - G ) e. ( Poly ` CC ) ) $=
      ( vx vy cply cfv wa cc plyssc simpl sseldi simpr cv caddc co addcl adantl
      wcel cmul mulcl c1 cneg neg1cn a1i plysub ) BAFGZSZCUGSZHZDEIBCUJUGIFGZBA
      JZUHUIKLUJUGUKCULUHUIMLDNZISENZISHZUMUNOPISUJUMUNQRUOUMUNTPISUJUMUNUARUBU
      CISUJUDUEUF $.
  $}

  ${
    $d k y z B $.  $d a b f j m n w F $.  $d k x y z ph $.  $d a b j m n w S $.
    $d a b f j k m n w z $.  $d k x y z A $.  $d k z M $.  $d k z N $.
    $( Value of the coefficient function.  (Contributed by Mario Carneiro,
       22-Jul-2014.) $)
    coeval $p |- ( F e. ( Poly ` S ) -> ( coeff ` F ) =
      ( iota_ a e. ( CC ^m NN0 )
        E. n e. NN0 ( ( a " ( ZZ>= ` ( n + 1 ) ) ) = { 0 } /\ F =
      ( z e. CC |-> sum_ k e. ( 0 ... n ) ( ( a ` k ) x. ( z ^ k ) ) ) ) ) ) $=
      ( vf cply cfv wcel cc ccoe cv co cc0 wceq wa cn0 wrex crio caddc cuz cima
      c1 csn cfz cexp cmul csu cmpt plyssc sseli eqeq1 anbi2d rexbidv riotabidv
      cmap df-coe riotaex fvmpt syl ) EBHIZJEKHIZJELIFMZDMZUDUANUBIUCOUEPZEAKOV
      EUFNCMZVDIAMVGUGNUHNCUIUJZPZQZDRSZFKRUQNZTZPVBVCEBUKULGEVFGMZVHPZQZDRSZFV
      LTVMVCLVNEPZVQVKFVLVRVPVJDRVRVOVIVFVNEVHUMUNUOUPAGCDFURVKFVLUSUTVA $.

    ${
      coeeu.1 $e |- ( ph -> F e. ( Poly ` S ) ) $.
      coeeu.2 $e |- ( ph -> A e. ( CC ^m NN0 ) ) $.
      coeeu.3 $e |- ( ph -> B e. ( CC ^m NN0 ) ) $.
      coeeu.4 $e |- ( ph -> M e. NN0 ) $.
      coeeu.5 $e |- ( ph -> N e. NN0 ) $.
      coeeu.6 $e |- ( ph -> ( A " ( ZZ>= ` ( M + 1 ) ) ) = { 0 } ) $.
      coeeu.7 $e |- ( ph -> ( B " ( ZZ>= ` ( N + 1 ) ) ) = { 0 } ) $.
      coeeu.8 $e |- ( ph -> F =
        ( z e. CC |-> sum_ k e. ( 0 ... M ) ( ( A ` k ) x. ( z ^ k ) ) ) ) $.
      coeeu.9 $e |- ( ph -> F =
        ( z e. CC |-> sum_ k e. ( 0 ... N ) ( ( B ` k ) x. ( z ^ k ) ) ) ) $.
      $( Lemma for ~ coeeu .  (Contributed by Mario Carneiro, 22-Jul-2014.) $)
      coeeulem $p |- ( ph -> A = B ) $=
        ( cc0 cc vx vy cmin cof co cn0 csn cxp wceq wss ssid a1i nn0addcld cmap
        caddc cun wf wcel cvv cv wa subcl adantl nn0ex elmap sylib inidm sylibr
        cnex off 0cn snssi ax-mp ssequn2 mpbi c1 cuz cfv cima wne cle wbr wi wn
        wral clt cr wb nn0red syl2an wfn ffn syl eqidd adantrr adantr nn0cnd cz
        nn0uz nn0zd eluzadd syl2anc addid2d fveq2d eleqtrd eluzle lelttrd mpbid
        syl6eleq ltnled plyco0 r19.21bi necon1bd mpd eqtrd c0p cmpt cfz adantlr
        cmul csu oveq1d ffvelrnda sylan2 mulcld simpr sumex eqid fvmpt2 sylancl
        fzss2 sselda syldan cdif eldifn eldifi elfz5 sylibrd mul02d fsumss expr
        oveq1i syl6eleqr nn0re ltnle ofval addcomd eqeltrd simprr oveq12d 0m0e0
        syl6eq sylbird necon1ad ralrimiva mpbird cexp df-0p eqtri elfznn0 expcl
        fconstmpt adantll subdird sumeq2dv fsumsub fsumcl eqtr3d fveq1d 3eqtr3d
        fzfid subeq0bd 3eqtrrd mpteq2dva syl5eq plyeq0 ofsubeq0 syl3anc ) ACDUC
        UDUEZUFSUGZUHUIZCDUIZABUVSTFHIUOUEZTTUJATUKULAHIMNUMZAUVSTUFUNUEZTUVTUP
        ZUFUNUEAUFTUVSUQZUVSUWEURAUAUBUFUFUFUCTTTCDUSUSUAUTZTURUBUTZTURVAUWHUWI
        UCUETURAUWHUWIVBVCACUWEURUFTCUQZKTUFCVIVDVEVFZADUWEURUFTDUQZLTUFDVIVDVE
        VFZUFUSURZAVDULZUWOUFVGZVJZTUFUVSVIVDVEVHUWFTUFUNUVTTUJZUWFTUISTURUWRVK
        STVLVMUVTTVNVOUUBUUCAUVSUWCVPUOUEVQVRVSUVTUIZFUTZUVSVRZSVTUWTUWCWAWBZWC
        ZFUFWEZAUXCFUFAUWTUFURZVAZUXBUXASUXFUXBWDZUWCUWTWFWBZUXASUIZAUWCWGURZUW
        TWGURZUXHUXGWHUXEAUWCUWDWIZUWTUUDZUWCUWTUUEWJAUXEUXHUXIAUXEUXHVAZVAZUXA
        UWTCVRZUWTDVRZUCUEZSAUXEUXAUXRUIZUXHAUFUFUXPUXQUCUFCDUSUSUWTAUWJCUFWKUW
        KUFTCWLWMAUWLDUFWKUWMUFTDWLWMUWOUWOUWPUXFUXPWNUXFUXQWNUUFZWOUXOUXRSSUCU
        ESUXOUXPSUXQSUCUXOUWTHWAWBZWDZUXPSUIZUXOHUWTWFWBUYBUXOHUWCUWTAHWGURUXNA
        HMWIWPZAUXJUXNUXLWPZAUXEUXKUXHUXEUXKAUXMVCWOZAHUWCWAWBZUXNAUWCHVQVRZURZ
        UYGAUWCSHUOUEZVQVRZUYHAUWCIHUOUEZUYKAHIAHMWQZAINWQZUUGAISVQVRZURHWRURZU
        YLUYKURAIUFUYONWSXIAHMWTZHSIXAXBUUHAUYJHVQAHUYMXCXDXEZHUWCXFWMWPAUXEUXH
        UUIZXGUXOHUWTUYDUYFXJXHUXOUYAUXPSAUXEUXPSVTZUYAWCZUXHAVUAFUFACHVPUOUEVQ
        VRVSUVTUIZVUAFUFWEZOAHUFURUWJVUBVUCWHMUWKCFHXKXBXHXLZWOXMXNUXOUWTIWAWBZ
        WDZUXQSUIZUXOIUWTWFWBVUFUXOIUWCUWTAIWGURUXNAINWIWPZUYEUYFAIUWCWAWBZUXNA
        UWCIVQVRZURZVUIAUWCSIUOUEZVQVRZVUJAHUYOURIWRURZUWCVUMURAHUFUYOMWSXIAINW
        TZISHXAXBAVULIVQAIUYNXCXDXEZIUWCXFWMWPUYSXGUXOIUWTVUHUYFXJXHUXOVUEUXQSA
        UXEUXQSVTZVUEWCZUXHAVURFUFADIVPUOUEVQVRVSUVTUIZVURFUFWEZPAIUFURUWLVUSVU
        TWHNUWMDFIXKXBXHXLZWOXMXNUUJUUKUULXOUUAUUMUUNUUOAUWCUFURUWGUWSUXDWHUWDU
        WQUVSFUWCXKXBUUPAXPBTSXQZBTSUWCXRUEZUXABUTZUWTUUQUEZXTUEZFYAZXQXPTUVTUH
        VVBUURBTSUVBUUSABTSVVGAVVDTURZVAZVVGVVCUXPVVEXTUEZUXQVVEXTUEZUCUEZFYAVV
        CVVJFYAZVVCVVKFYAZUCUESVVIVVCVVFVVLFUWTVVCURZVVIUXEVVFVVLUIUWTUWCUUTZVV
        IUXEVAZVVFUXRVVEXTUEVVLVVQUXAUXRVVEXTAUXEUXSVVHUXTXSYBVVQUXPUXQVVEVVIUF
        TUWTCAUWJVVHUWKWPYCZVVIUFTUWTDAUWLVVHUWMWPYCZVVHUXEVVETURZAVVDUWTUVAZUV
        CZUVDXOYDUVEVVIVVCVVJVVKFVVISUWCUVKZVVOVVIUXEVVJTURZVVPVVQUXPVVEVVRVWBY
        EYDZVVOVVIUXEVVKTURZVVPVVQUXQVVEVVSVWBYEYDZUVFVVIVVMVVNVVIVVCVVJFVWCVWE
        UVGVVIVVDBTSHXRUEZVVJFYAZXQZVRZVVDBTSIXRUEZVVKFYAZXQZVRZVVMVVNAVWKVWOUI
        VVHAVVDVWJVWNAGVWJVWNQRUVHUVIWPVVIVWKVWIVVMVVIVVHVWIUSURVWKVWIUIAVVHYFZ
        VWHVVJFYGBTVWIUSVWJVWJYHYIYJVVIVWHVVCVVJFAVWHVVCUJZVVHAUYIVWQUYRHSUWCYK
        WMWPZVVIUWTVWHURZVVOVWDVVIVWHVVCUWTVWRYLVWEYMVVIUWTVVCVWHYNURZVAZVVJSVV
        EXTUEZSVXAUXPSVVEXTVXAVWSWDZUYCVWTVXCVVIUWTVVCVWHYOVCVWTVVIUXEVXCUYCWCV
        WTVVOUXEUWTVVCVWHYPVVPWMZVVQVWSUXPSAUXEUYTVWSWCVVHUXFUYTUYAVWSVUDUXFUWT
        UYOURZUYPVWSUYAWHUXFUWTUFUYOAUXEYFWSXIZAUYPUXEUYQWPUWTSHYQXBYRXSXMYDXNY
        BVXAVVEVVIVVHUXEVVTVWTVWPVXDVWAWJYSXOVWCYTXOVVIVWOVWMVVNVVIVVHVWMUSURVW
        OVWMUIVWPVWLVVKFYGBTVWMUSVWNVWNYHYIYJVVIVWLVVCVVKFAVWLVVCUJZVVHAVUKVXGV
        UPISUWCYKWMWPZVVIUWTVWLURZVVOVWFVVIVWLVVCUWTVXHYLVWGYMVVIUWTVVCVWLYNURZ
        VAZVVKVXBSVXKUXQSVVEXTVXKVXIWDZVUGVXJVXLVVIUWTVVCVWLYOVCVXJVVIUXEVXLVUG
        WCVXJVVOUXEUWTVVCVWLYPVVPWMZVVQVXIUXQSAUXEVUQVXIWCVVHUXFVUQVUEVXIVVAUXF
        VXEVUNVXIVUEWHVXFAVUNUXEVUOWPUWTSIYQXBYRXSXMYDXNYBVXKVVEVVIVVHUXEVVTVXJ
        VWPVXMVWAWJYSXOVWCYTXOUVJUVLUVMUVNUVOUVPAUWNUWJUWLUWAUWBWHUWOUWKUWMUFCD
        USUVQUVRXH $.
    $}

    $( Uniqueness of the coefficient function.  (Contributed by Mario Carneiro,
       22-Jul-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    coeeu $p |- ( F e. ( Poly ` S ) -> E! a e. ( CC ^m NN0 )
                  E. n e. NN0 ( ( a " ( ZZ>= ` ( n + 1 ) ) ) = { 0 } /\ F =
        ( z e. CC |-> sum_ k e. ( 0 ... n ) ( ( a ` k ) x. ( z ^ k ) ) ) ) ) $=
      ( vm vw vj cfv wcel cv co wceq cc cmul csu wa cn0 wrex vb cply caddc cima
      c1 cuz cc0 csn cfz cexp cmpt cmap wi wral cun plyssc sseli elply2 simprbi
      wreu wss rexcom sylib syl 0cn snssi ssequn2 mpbi oveq1i rexeqi reeanv w3a
      ax-mp simp1l simp1rl simp1rr simp2l simp2r simp3ll simp3rl simp3lr oveq2d
      oveq1 sumeq2sdv fveq2 oveq2 oveq12d cbvsumv syl6eq cbvmptv simp3rr 3expia
      coeeulem rexlimdvva ralrimivva imaeq1 eqeq1d fveq1 oveq1d mpteq2dv eqeq2d
      syl5bir anbi12d rexbidv fveq2d imaeq2d sumeq1d cbvrexv syl6bb sylanbrc
      reu4 ) EBUBJZKZFLZDLZUEUCMZUFJZUDZUGUHZNZEAOUGXOUIMZCLZXNJZALZYBUJMZPMZCQ
      ZUKZNZRZDSTZFOSULMZTZYKUALZGLZUEUCMZUFJZUDZXSNZEAOUGYOUIMZYBYNJZYEPMZCQZU
      KZNZRZGSTZRZXNYNNZUMZUAYLUNFYLUNYKFYLUTXMYKFOXSUOZSULMZTZYMXMEOUBJZKZUUMX
      LUUNEBUPUQUUOYJFUULTDSTZUUMUUOOOVAUUPAOCDEFURUSYJDFSUULVBVCVDYKFUULYLUUKO
      SULXSOVAZUUKONUGOKUUQVEUGOVFVMXSOVGVHVIVJVCXMUUJFUAYLYLUUHYJUUFRZGSTDSTXM
      XNYLKZYNYLKZRZRZUUIYJUUFDGSSVKUVBUURUUIDGSSUVBXOSKZYOSKZRZUURUUIUVBUVEUUR
      VLZHXNYNBIEXOYOXMUVAUVEUURVNUUSUUTXMUVEUURVOUUSUUTXMUVEUURVPUVBUVCUVDUURV
      QUVBUVCUVDUURVRXTYIUUFUVBUVEVSYSUUEYJUVBUVEVTUVFEYHHOYAILZXNJZHLZUVGUJMZP
      MZIQZUKXTYIUUFUVBUVEWAAHOYGUVLYDUVINZYGYAYCUVIYBUJMZPMZCQUVLUVMYAYFUVOCUV
      MYEUVNYCPYDUVIYBUJWCZWBWDYAUVOUVKCIYBUVGNZYCUVHUVNUVJPYBUVGXNWEYBUVGUVIUJ
      WFZWGWHWIWJWIUVFEUUDHOYTUVGYNJZUVJPMZIQZUKYSUUEYJUVBUVEWKAHOUUCUWAUVMUUCY
      TUUAUVNPMZCQUWAUVMYTUUBUWBCUVMYEUVNUUAPUVPWBWDYTUWBUVTCIUVQUUAUVSUVNUVJPY
      BUVGYNWEUVRWGWHWIWJWIWMWLWNXBWOYKUUGFUAYLUUIYKYNXQUDZXSNZEAOYAUUBCQZUKZNZ
      RZDSTUUGUUIYJUWHDSUUIXTUWDYIUWGUUIXRUWCXSXNYNXQWPWQUUIYHUWFEUUIAOYGUWEUUI
      YAYFUUBCUUIYCUUAYEPYBXNYNWRWSWDWTXAXCXDUWHUUFDGSXOYONZUWDYSUWGUUEUWIUWCYR
      XSUWIXQYQYNUWIXPYPUFXOYOUEUCWCXEXFWQUWIUWFUUDEUWIAOUWEUUCUWIYAYTUUBCXOYOU
      GUIWFXGWTXAXCXHXIXKXJ $.

    $d k z F $.
    $( Lemma for properties of the coefficient function.  (Contributed by Mario
       Carneiro, 22-Jul-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    coelem $p |- ( F e. ( Poly ` S ) -> ( ( coeff ` F ) e. ( CC ^m NN0 ) /\
      E. n e. NN0 ( ( ( coeff ` F ) " ( ZZ>= ` ( n + 1 ) ) ) = { 0 } /\ F =
        ( z e. CC |-> sum_ k e. ( 0 ... n )
          ( ( ( coeff ` F ) ` k ) x. ( z ^ k ) ) ) ) ) ) $=
      ( va cfv wcel cv co cima cc0 wceq cc cmul csu cmpt wa cn0 wrex cply caddc
      ccoe c1 cuz csn cfz cexp cmap crab crio coeval coeeu riotacl2 syl eqeltrd
      wreu imaeq1 eqeq1d fveq1 oveq1d sumeq2sdv mpteq2dv eqeq2d anbi12d rexbidv
      elrab sylib ) EBUAGHZEUCGZFIZDIZUDUBJUEGZKZLUFZMZEANLVLUGJZCIZVKGZAIVRUHJ
      ZOJZCPZQZMZRZDSTZFNSUIJZUJZHVJWGHVJVMKZVOMZEANVQVRVJGZVTOJZCPZQZMZRZDSTZR
      VIVJWFFWGUKZWHABCDEFULVIWFFWGUQWRWHHABCDEFUMWFFWGUNUOUPWFWQFVJWGVKVJMZWEW
      PDSWSVPWJWDWOWSVNWIVOVKVJVMURUSWSWCWNEWSANWBWMWSVQWAWLCWSVSWKVTOVRVKVJUTV
      AVBVCVDVEVFVGVH $.
  $}

  ${
    $d a k n z A $.  $d a n F $.  $d k n z N $.  $d a n S $.
    coeeq.1 $e |- ( ph -> F e. ( Poly ` S ) ) $.
    coeeq.2 $e |- ( ph -> N e. NN0 ) $.
    coeeq.3 $e |- ( ph -> A : NN0 --> CC ) $.
    coeeq.4 $e |- ( ph -> ( A " ( ZZ>= ` ( N + 1 ) ) ) = { 0 } ) $.
    coeeq.5 $e |- ( ph -> F =
      ( z e. CC |-> sum_ k e. ( 0 ... N ) ( ( A ` k ) x. ( z ^ k ) ) ) ) $.
    $( If ` A ` satisfies the properties of the coefficient function, it must
       be equal to the coefficient function.  (Contributed by Mario Carneiro,
       22-Jul-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    coeeq $p |- ( ph -> ( coeff ` F ) = A ) $=
      ( va vn cfv cv co wceq cc cn0 ccoe c1 caddc cuz cima cc0 csn cfz cexp csu
      cmul cmpt wrex cmap crio cply wcel coeval syl oveq1 fveq2d imaeq2d eqeq1d
      wa oveq2 sumeq1d mpteq2dv eqeq2d anbi12d rspcev syl12anc wreu wb wf nn0ex
      cnex elmap sylibr coeeu imaeq1 fveq1 oveq1d sumeq2sdv rexbidv mpbid eqtrd
      riota2 syl2anc ) AFUAOZMPZNPZUBUCQZUDOZUEZUFUGZRZFBSUFWKUHQZEPZWJOZBPWRUI
      QZUKQZEUJZULZRZVDZNTUMZMSTUNQZUOZCAFDUPOUQZWIXHRHBDENFMURUSACWMUEZWORZFBS
      WQWRCOZWTUKQZEUJZULZRZVDZNTUMZXHCRZAGTUQCGUBUCQZUDOZUEZWORZFBSUFGUHQZXMEU
      JZULZRZXRIKLXQYCYGVDNGTWKGRZXKYCXPYGYHXJYBWOYHWMYACYHWLXTUDWKGUBUCUTVAVBV
      CYHXOYFFYHBSXNYEYHWQYDXMEWKGUFUHVEVFVGVHVIVJVKACXGUQZXFMXGVLZXRXSVMATSCVN
      YIJSTCVPVOVQVRAXIYJHBDENFMVSUSXFXRMXGCWJCRZXEXQNTYKWPXKXDXPYKWNXJWOWJCWMV
      TVCYKXCXOFYKBSXBXNYKWQXAXMEYKWSXLWTUKWRWJCWAWBWCVGVHVIWDWGWHWEWF $.
  $}

  ${
    $d a f n x A $.  $d a f n x F $.  $d a k n x z S $.
    dgrval.1 $e |- A = ( coeff ` F ) $.
    $( Value of the degree function.  (Contributed by Mario Carneiro,
       22-Jul-2014.) $)
    dgrval $p |- ( F e. ( Poly ` S ) -> ( deg ` F ) =
      sup ( ( `' A " ( CC \ { 0 } ) ) , NN0 , < ) ) $=
      ( vf cply cfv wcel cc cdgr ccnv cc0 cima cn0 clt csup wceq ccoe cr wor cv
      csn cdif plyssc sseli fveq2 syl6eqr cnveqd imaeq1d supeq1d df-dgr nn0ssre
      wss ltso soss mp2 supex fvmpt syl ) CBFGZHCIFGZHCJGAKZILUBUCZMZNOPZQUTVAC
      BUDUEECEUAZRGZKZVCMZNOPVEVAJVFCQZNVIVDOVJVHVBVCVJVGAVJVGCRGAVFCRUFDUGUHUI
      UJEUKNVDONSUMSOTNOTULUNNSOUOUPUQURUS $.

    $( Lemma for ~ dgrcl and similar theorems.  (Contributed by Mario Carneiro,
       22-Jul-2014.) $)
    dgrlem $p |- ( F e. ( Poly ` S ) -> ( A : NN0 --> ( S u. { 0 } ) /\
        E. n e. ZZ A. x e. ( `' A " ( CC \ { 0 } ) ) x <_ n ) ) $=
      ( va vz vk cfv wcel cn0 cc0 cv cc wrex co wa cvv mpbid csn cun wf cle wbr
      cply ccnv cdif cima wral cz c1 caddc cuz wceq cfz cexp cmul csu cmpt cmap
      wss elply2 simprbi simplrr wb simpll plybss 0cnd snssd unssd cnex sylancl
      ssexg nn0ex elmapg ccoe simplrl fssd simprl simprr coeeq syl5req feq1d ex
      syl rexlimdvva mpd nn0ssz wi wne wfn elpreima 3syl biimpa simprd eldifsni
      ffn simpld plyco0 syl2anc r19.21bi syldan cnveqd imaeq1d raleqdv rexlimdv
      ralrimiva expr reximdva ssrexv mpsyl jca ) ECUFJKZLCMUAZUBZBUCZANZDNZUDUE
      ZABUGZOXOUHZUIZUJZDUKPZXNGNZXSULUMQUNJUIXOUOZEHOMXSUPQINZYFJHNYHUQQURQIUS
      UTUOZRZGXPLVAQZPZDLPZXQXNCOVBZYMHCIDEGVCVDZXNYJXQDGLYKXNXSLKZYFYKKZRZRZYJ
      XQYSYJRZLXPYFUCZXQYTYQUUAXNYPYQYJVEYTXPSKZLSKYQUUAVFYTXPOVBOSKUUBYTCXOOYT
      XNYNXNYRYJVGZCEVHWFYTMOYTVIVJVKZVLXPOSVNVMVOXPLYFSSVPVMTZYTLXPYFBYTBEVQJY
      FFYTHYFCIEXSUUCXNYPYQYJVRZYTLXPOYFUUEUUDVSZYSYGYIVTZYSYGYIWAWBWCZWDTWEWGW
      HLUKVBXNYDDLPZYEWIXNYMUUJYOXNYLYDDLXNYPRYJYDGYKXNYPYQYJYDWJYSYJYDYTXTAYFU
      GZYBUIZUJYDYTXTAUULYTXRUULKZRZXRYFJZMWKZXTUUNUUOYBKZUUPUUNXRLKZUUQYTUUMUU
      RUUQRZYTLOYFUCZYFLWLUUMUUSVFUUGLOYFWRLXRYBYFWMWNWOZWPUUOOMWQWFYTUUMUURUUP
      XTWJZUUNUURUUQUVAWSYTUVBALYTYGUVBALUJZUUHYTYPUUTYGUVCVFUUFUUGYFAXSWTXATXB
      XCWHXHYTXTAUULYCYTUUKYAYBYTYFBUUIXDXEXFTWEXIXGXJWHYDDLUKXKXLXM $.

    $( The domain and range of the coefficient function.  (Contributed by Mario
       Carneiro, 22-Jul-2014.) $)
    coef $p |- ( F e. ( Poly ` S ) -> A : NN0 --> ( S u. { 0 } ) ) $=
      ( vx vn cply cfv wcel cn0 cc0 csn cun wf cv cle wbr ccnv cc cdif cima cz
      wral wrex dgrlem simpld ) CBGHIJBKLZMANEOFOPQEARSUGTUAUCFUBUDEABFCDUEUF
      $.

    $( The domain and range of the coefficient function.  (Contributed by Mario
       Carneiro, 22-Jul-2014.) $)
    coef2 $p |- ( ( F e. ( Poly ` S ) /\ 0 e. S ) -> A : NN0 --> S ) $=
      ( cply cfv wcel cc0 wa cn0 csn cun wf coef adantr wss simpr snssd ssequn2
      wceq sylib feq3d mpbid ) CBEFGZHBGZIZJBHKZLZAMZJBAMUDUIUEABCDNOUFUHBAJUFU
      GBPUHBTUFHBUDUEQRUGBSUAUBUC $.

    $( The domain and range of the coefficient function.  (Contributed by Mario
       Carneiro, 22-Jul-2014.) $)
    coef3 $p |- ( F e. ( Poly ` S ) -> A : NN0 --> CC ) $=
      ( cply cfv wcel cc cc0 cn0 wf plyssc sseli 0cn coef2 sylancl ) CBEFZGCHEF
      ZGIHGJHAKQRCBLMNAHCDOP $.
  $}

  ${
    $d a k n x y z A $.  $d a k n x y F $.  $d k z ph $.  $d a k m n x y z S $.
    $d k z B $.  $d k y z M $.  $d a k n z N $.  $d k z X $.
    $( The degree of any polynomial is a nonnegative integer.  (Contributed by
       Mario Carneiro, 22-Jul-2014.) $)
    dgrcl $p |- ( F e. ( Poly ` S ) -> ( deg ` F ) e. NN0 ) $=
      ( vn vx vy cply cfv wcel cdgr cc0 cn0 clt wor cr wss cz cv wbr wral wrex
      ccoe ccnv cc csn cdif cima csup eqid dgrval nn0ssre ltso soss mp2 a1i cle
      wn wi wa 0zd cdm cnvimass cun wf wceq coef fdm syl syl5sseq dgrlem simprd
      nn0uz uzsupss syl3anc supcl eqeltrd ) BAFGHZBIGBUAGZUBUCJUDZUEZUFZKLUGKVQ
      ABVQUHZUIVPCDEKVTLKLMZVPKNONLMWBUJUKKNLULUMUNVPJPHVTKODQZCQZUORDVTSCPTZWD
      WCLRUPDVTSWCWDLRWCEQLREVTTUQDKSURCKTVPUSVPVQUTZVTKVQVSVAVPKAVRVBZVQVCZWFK
      VDVQABWAVEKWGVQVFVGVHVPWHWEDVQACBWAVIVJCDEVTJKVKVLVMVNVO $.

    dgrub.1 $e |- A = ( coeff ` F ) $.
    dgrub.2 $e |- N = ( deg ` F ) $.
    $( If the ` M ` -th coefficient of ` F ` is nonzero, then the degree of
       ` F ` is at least ` M ` .  (Contributed by Mario Carneiro,
       22-Jul-2014.) $)
    dgrub $p |- ( ( F e. ( Poly ` S ) /\ M e. NN0 /\
      ( A ` M ) =/= 0 ) -> M <_ N ) $=
      ( vn vx vy cfv wcel cn0 cc0 wbr clt wn cc syl cr cply ccnv cdif cima csup
      wne w3a cle csn simp1 simp2 coef3 ffvelrnd simp3 eldifsn sylanbrc cun wfn
      wf wa wb coef ffn elpreima 4syl mpbir2and wor wss nn0ssre ltso mp2 a1i cz
      soss cv wral wrex wi 0zd cdm cnvimass wceq syl5sseq dgrlem simprd uzsupss
      nn0uz syl3anc supub sylc cdgr dgrval syl5eq breq1d mtbird nn0red syl5eqel
      fdm dgrcl lenltd mpbird ) CBUAKLZDMLZDAKZNUFZUGZDEUHOEDPOZQXFXGAUBRNUIZUC
      ZUDZMPUEZDPOZXFXBDXJLZXLQXBXCXEUJZXFXMXCXDXILZXBXCXEUKZXFXDRLXEXOXFMRDAXF
      XBMRAUSXNABCFULSXPUMXBXCXEUNXDRNUOUPXFXBMBXHUQZAUSZAMURXMXCXOUTVAXNABCFVB
      ZMXQAVCMDXIAVDVEVFXBHIJMXJDPMPVGZXBMTVHTPVGXTVIVJMTPVNVKVLXBNVMLXJMVHIVOZ
      HVOZUHOIXJVPHVMVQZYBYAPOQIXJVPYAYBPOYAJVOPOJXJVQVRIMVPUTHMVQXBVSXBAVTZXJM
      AXIWAXBXRYDMWBXSMXQAWRSWCXBXRYCIABHCFWDWEHIJXJNMWGWFWHWIWJXFEXKDPXFXBEXKW
      BXNXBECWKKZXKGABCFWLWMSWNWOXFDEXFDXPWPXFEXFXBEMLXNXBEYEMGBCWSWQSWPWTXA $.

    $( All the coefficients above the degree of ` F ` are zero.  (Contributed
       by Mario Carneiro, 23-Jul-2014.) $)
    dgrub2 $p |- ( F e. ( Poly ` S ) ->
      ( A " ( ZZ>= ` ( N + 1 ) ) ) = { 0 } ) $=
      ( vk cply cfv wcel c1 caddc co cuz cima cc0 csn wceq cv cn0 wne cle dgrub
      wbr wi wral 3expia ralrimiva cc wf wb dgrcl syl5eqel coef3 plyco0 syl2anc
      cdgr mpbird ) CBHIJZADKLMNIOPQRZGSZAIPUAZVADUBUDZUEZGTUFZUSVDGTUSVATJVBVC
      ABCVADEFUCUGUHUSDTJTUIAUJUTVEUKUSDCUQITFBCULUMABCEUNAGDUOUPUR $.

    $( If all the coefficients above ` M ` are zero, then the degree of ` F `
       is at most ` M ` .  (Contributed by Mario Carneiro, 22-Jul-2014.) $)
    dgrlb $p |- ( ( F e. ( Poly ` S ) /\ M e. NN0 /\
      ( A " ( ZZ>= ` ( M + 1 ) ) ) = { 0 } ) -> N <_ M ) $=
      ( vy vx vn cfv wcel cn0 cc0 wbr clt wn wral 3ad2ant1 cr cply c1 caddc cuz
      co cima csn wceq w3a cle ccnv cc cdif csup cv simp2 wa wne cun wf wb wrex
      wfn cz dgrlem simpld ffn elpreima 3syl biimpa simprd eldifsni simp3 coef3
      syl wi plyco0 syl2anc mpbid syldan mpd nn0red adantr lenltd ralrimiva wor
      r19.21bi wss nn0ssre ltso soss mp2 a1i 0zd cdm cnvimass fdm nn0uz uzsupss
      syl5sseq syl3anc supnub mp2and dgrval syl5eq breq2d mtbird dgrcl syl5eqel
      cdgr mpbird ) CBUAKLZDMLZADUBUCUEUDKUFNUGZUHZUIZEDUJODEPOZQXPXQDAUKULXNUM
      ZUFZMPUNZPOZXPXMDHUOZPOQZHXSRYAQXLXMXOUPZXPYCHXSXPYBXSLZUQZYBDUJOZYCYFYBA
      KZNURZYGYFYHXRLZYIYFYBMLZYJXPYEYKYJUQZXPMBXNUSZAUTZAMVCYEYLVAXLXMYNXOXLYN
      IUOZJUOZUJOIXSRJVDVBZIABJCFVEZVFZSMYMAVGMYBXRAVHVIVJZVKYHULNVLVOXPYEYKYIY
      GVPZYFYKYJYTVFZXPUUAHMXPXOUUAHMRZXLXMXOVMXPXMMULAUTZXOUUCVAYDXLXMUUDXOABC
      FVNSAHDVQVRVSWGVTWAYFYBDYFYBUUBWBXPDTLYEXPDYDWBZWCWDVSWEXPJIHMXSDPMPWFZXP
      MTWHTPWFUUFWIWJMTPWKWLWMXLXMYPYOPOQIXSRYOYPPOYOYBPOHXSVBVPIMRUQJMVBZXOXLN
      VDLXSMWHYQUUGXLWNXLAWOZXSMAXRWPXLYNUUHMUHYSMYMAWQVOWTXLYNYQYRVKJIHXSNMWRW
      SXASXBXCXPEXTDPXLXMEXTUHXOXLECXJKZXTGABCFXDXESXFXGXPEDXPEXLXMEMLXOXLEUUIM
      GBCXHXISWBUUEWDXK $.

    ${
      coeid.3 $e |- ( ph -> F e. ( Poly ` S ) ) $.
      coeid.4 $e |- ( ph -> M e. NN0 ) $.
      coeid.5 $e |- ( ph -> B e. ( ( S u. { 0 } ) ^m NN0 ) ) $.
      coeid.6 $e |- ( ph -> ( B " ( ZZ>= ` ( M + 1 ) ) ) = { 0 } ) $.
      coeid.7 $e |- ( ph -> F =
        ( z e. CC |-> sum_ k e. ( 0 ... M ) ( ( B ` k ) x. ( z ^ k ) ) ) ) $.
      $( Lemma for ~ coeid .  (Contributed by Mario Carneiro, 22-Jul-2014.) $)
      coeidlem $p |- ( ph -> F =
        ( z e. CC |-> sum_ k e. ( 0 ... N ) ( ( A ` k ) x. ( z ^ k ) ) ) ) $=
        ( cc cc0 wcel cn0 cfz co cv cfv cexp cmul csu cmpt wa wceq ccoe csn cun
        cmap wf cvv wb wss cply plybss syl 0cnd snssd unssd ssexg sylancl nn0ex
        cnex elmapg mpbid fssd coeeq syl5req adantr oveq1d sumeq2sdv cuz cz cle
        fveq1 wbr cdgr dgrcl syl5eqel nn0zd c1 caddc cima imaeq1d dgrlb syl3anc
        eqtr3d eluz2 syl3anbrc fzss2 plyssc sseldi coef3 ffvelrnda expcl mulcld
        elfznn0 adantll sylan2 cdif wn eldifn adantl wne wi eldifi dgrub 3expia
        syl2an elfzuz elfz5 syl2anr sylibrd mpd simpr mul02d eqtrd fzfid fsumss
        necon1bd eqtr4d mpteq2dva ) AGBQRHUAUBZFUCZDUDZBUCZYIUEUBZUFUBZFUGZUHBQ
        RIUAUBZYICUDZYLUFUBZFUGZUHPABQYNYRAYKQSZUIZYNYHYQFUGZYRYTDCUJZYNUUAUJAU
        UBYSACGUKUDDJABDEFGHLMATERULZUMZQDADUUDTUNUBSZTUUDDUOZNAUUDUPSZTUPSUUEU
        UFUQAUUDQURQUPSUUGAEUUCQAGEUSUDZSZEQURLEGUTVAARQAVBVCVDZVHUUDQUPVEVFVGU
        UDTDUPUPVIVFVJUUJVKOPVLVMVNZUUBYHYMYQFUUBYJYPYLUFYIDCVTVOVPVAYTYOYHYQFY
        THIVQUDSZYOYHURYTIVRSZHVRSIHVSWAZUULYTIYTUUIITSAUUIYSLVNZUUIIGWBUDTKEGW
        CWDVAWEZYTHAHTSZYSMVNZWEYTUUIUUQCHWFWGUBVQUDZWHZUUCUJUUNUUOUURYTDUUSWHZ
        UUTUUCYTDCUUSUUKWIAUVAUUCUJYSOVNWLCEGHIJKWJWKIHWMWNIRHWOVAYIYOSZYTYITSZ
        YQQSYIIXBYTUVCUIYPYLYTTQYICATQCUOZYSAGQUSUDZSUVDAUUHUVEGEWPLWQCQGJWRVAV
        NWSYSUVCYLQSZAYKYIWTZXCXAXDYTYIYHYOXESZUIZYQRYLUFUBRUVIYPRYLUFUVIUVBXFZ
        YPRUJUVHUVJYTYIYHYOXGXHUVIUVBYPRUVIYPRXIZYIIVSWAZUVBYTUUIUVCUVKUVLXJUVH
        UUOUVHYIYHSZUVCYIYHYOXKZYIHXBVAZUUIUVCUVKUVLCEGYIIJKXLXMXNUVHYIRVQUDSZU
        UMUVBUVLUQYTUVHUVMUVPUVNYIRHXOVAUUPYIRIXPXQXRYEXSVOUVIYLYTYSUVCUVFUVHAY
        SXTUVOUVGXNYAYBYTRHYCYDYFYGYB $.
    $}

    $d k z F $.

    $( Reconstruct a polynomial as an explicit sum of the coefficient function
       up to the degree of the polynomial.  (Contributed by Mario Carneiro,
       22-Jul-2014.) $)
    coeid $p |- ( F e. ( Poly ` S ) -> F =
      ( z e. CC |-> sum_ k e. ( 0 ... N ) ( ( A ` k ) x. ( z ^ k ) ) ) ) $=
      ( va vn vx vm cfv cv co wceq cc cexp cmul csu cply wcel c1 caddc cuz cima
      cc0 csn cfz cmpt wa cun cn0 cmap wss elply2 simprbi simpll simplrl simprl
      simplrr simprr fveq2 oveq2 oveq12d cbvsumv oveq1 oveq2d sumeq2sdv cbvmptv
      wrex syl5eq syl6eq coeidlem ex rexlimdvva mpd ) ECUAMUBZINZJNZUCUDOUEMUFU
      GUHZPZEKQUGVTUIOZLNZVSMZKNZWDROZSOZLTZUJZPZUKZICWAULUMUNOZVKJUMVKZEAQUGFU
      IODNZBMANZWOROZSODTUJPZVRCQUOWNKCLJEIUPUQVRWLWRJIUMWMVRVTUMUBZVSWMUBZUKZU
      KZWLWRXBWLUKZABVSCDEVTFGHVRXAWLURVRWSWTWLUSVRWSWTWLVAXBWBWKUTXCEWJAQWCWOV
      SMZWQSOZDTZUJXBWBWKVBKAQWIXFWFWPPZWIWCXDWFWOROZSOZDTXFWCWHXILDWDWOPWEXDWG
      XHSWDWOVSVCWDWOWFRVDVEVFXGWCXIXEDXGXHWQXDSWFWPWORVGVHVIVLVJVMVNVOVPVQ $.

    $( Reconstruct a polynomial as an explicit sum of the coefficient function
       up to the degree of the polynomial.  (Contributed by Mario Carneiro,
       22-Jul-2014.) $)
    coeid2 $p |- ( ( F e. ( Poly ` S ) /\ X e. CC ) -> ( F ` X ) =
                  sum_ k e. ( 0 ... N ) ( ( A ` k ) x. ( X ^ k ) ) ) $=
      ( vz cply cfv wcel cc cc0 cfz co cv cexp cmul csu cmpt coeid fveq1d oveq1
      wceq oveq2d sumeq2sdv eqid sumex fvmpt sylan9eq ) DBJKLZFMLFDKFIMNEOPZCQZ
      AKZIQZUNRPZSPZCTZUAZKUMUOFUNRPZSPZCTZULFDUTIABCDEGHUBUCIFUSVCMUTUPFUEZUMU
      RVBCVDUQVAUOSUPFUNRUDUFUGUTUHUMVBCUIUJUK $.

    $( Reconstruct a polynomial as an explicit sum of the coefficient function
       up to at least the degree of the polynomial.  (Contributed by Mario
       Carneiro, 22-Jul-2014.) $)
    coeid3 $p |- ( ( F e. ( Poly ` S ) /\ M e. ( ZZ>= ` N ) /\ X e. CC ) ->
      ( F ` X ) = sum_ k e. ( 0 ... M ) ( ( A ` k ) x. ( X ^ k ) ) ) $=
      ( cfv wcel cuz cc cc0 cfz co cmul csu cn0 syl cply cv cexp coeid2 3adant2
      w3a wceq wss fzss2 3ad2ant2 elfznn0 wa coef3 3ad2ant1 ffvelrnda 3ad2antl3
      wf expcl mulcld sylan2 cdif wn eldifn adantl wne cle wbr wi simpl1 eldifi
      elfzuz nn0uz syl6eleqr dgrub 3expia syl2anc cz wb simpl2 eluzel2 necon1bd
      elfz5 sylibrd mpd oveq1d mul02d eqtrd fzfid fsumss ) DBUAJKZEFLJKZGMKZUFZ
      GDJZNFOPZCUBZAJZGWPUCPZQPZCRZNEOPZWSCRWJWLWNWTUGWKABCDFGHIUDUEWMWOXAWSCWK
      WJWOXAUHWLFNEUIUJWPWOKZWMWPSKZWSMKWPFUKWMXCULWQWRWMSMWPAWJWKSMAUQWLABDHUM
      UNUOWLWJXCWRMKZWKGWPURUPZUSUTWMWPXAWOVAKZULZWSNWRQPNXGWQNWRQXGXBVBZWQNUGX
      FXHWMWPXAWOVCVDXGXBWQNXGWQNVEZWPFVFVGZXBXGWJXCXIXJVHWJWKWLXFVIXGWPNLJZSXF
      WPXKKZWMXFWPXAKZXLWPXAWOVJZWPNEVKTVDZVLVMWJXCXIXJABDWPFHIVNVOVPXGXLFVQKZX
      BXJVRXOXGWKXPWJWKWLXFVSFEVTTWPNFWBVPWCWAWDWEXGWRXFWMXCXDXFXMXCXNWPEUKTXEU
      TWFWGWMNEWHWIWG $.
  $}

  ${
    $d d k x y z F $.  $d d k x y z G $.  $d d k x y z ph $.  $d d k x y S $.
    plyco.1 $e |- ( ph -> F e. ( Poly ` S ) ) $.
    plyco.2 $e |- ( ph -> G e. ( Poly ` S ) ) $.
    plyco.3 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x + y ) e. S ) $.
    plyco.4 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x x. y ) e. S ) $.
    $( The composition of two polynomials is a polynomial.  (Contributed by
       Mario Carneiro, 23-Jul-2014.)  (Revised by Mario Carneiro,
       23-Aug-2014.) $)
    plyco $p |- ( ph -> ( F o. G ) e. ( Poly ` S ) ) $=
      ( vz vk cc cc0 co cexp cmul cmpt wcel wceq vd ccom cdgr cfv cfz ccoe cply
      cv csu wf plyf ffvelrnda feqmptd eqid coeid oveq1 oveq2d sumeq2sdv fmptco
      syl cn0 dgrcl wi c1 caddc oveq2 sumeq1d mpteq2dv eleq1d imbi2d csn cxp wa
      cz exp0d cun wss plybss 0cnd snssd unssd coef 0nn0 ffvelrn sylancl sseldd
      0z adantr mulid1d eqtrd eqeltrd fveq2 oveq12d sylancr mpteq2dva fconstmpt
      fsum1 syl6eqr plyconst syl2anc plyun0 syl6eleq simprr peano2nn0 syl2an cn
      cof nn0p1nn exp1d eqtr4d adantlr plymul expr cvv cnex ovexd eqidd offval2
      a1i nnnn0 ad2antlr expp1d sylibd expcom nnind impcom adantrr plyadd sumex
      a2d fvexd cuz simplr nn0uz coef3 ad2antrr elfznn0 expcl mulcld fsump1
      nn0ind mpcom ) AEFUBKMNEUCUDZUEOZLUHZEUFUDZUDZKUHZFUDZUUEPOZQOZLUIZRZDUGU
      DZAKBMMUUIUUDUUGBUHZUUEPOZQOZLUIZUULFEAMMUUHFAFUUNSZMMFUJHDFUKUTZULZAKMMF
      UUTUMZAEUUNSZEBMUURRTGBUUFDLEUUCUUFUNZUUCUNUOUTUUOUUITZUUDUUQUUKLUVEUUPUU
      JUUGQUUOUUIUUEPUPUQURUSUUCVASZAUUMUUNSZAUVCUVFGDEVBUTAKMNUUOUEOZUUKLUIZRZ
      UUNSZVCAKMNNUEOZUUKLUIZRZUUNSZVCAKMNUAUHZUEOZUUKLUIZRZUUNSZVCAKMNUVPVDVEO
      ZUEOZUUKLUIZRZUUNSZVCAUVGVCBUAUUCUUONTZUVKUVOAUWFUVJUVNUUNUWFKMUVIUVMUWFU
      VHUVLUUKLUUONNUEVFVGVHVIVJUUOUVPTZUVKUVTAUWGUVJUVSUUNUWGKMUVIUVRUWGUVHUVQ
      UUKLUUOUVPNUEVFVGVHVIVJUUOUWATZUVKUWEAUWHUVJUWDUUNUWHKMUVIUWCUWHUVHUWBUUK
      LUUOUWANUEVFVGVHVIVJUUOUUCTZUVKUVGAUWIUVJUUMUUNUWIKMUVIUULUWIUVHUUDUUKLUU
      OUUCNUEVFVGVHVIVJAUVNMNUUFUDZVKVLZUUNAUVNKMUWJRUWKAKMUVMUWJAUUHMSZVMZUVMU
      WJUUINPOZQOZUWJUWMNVNSUWOMSUVMUWOTWGUWMUWOUWJMUWMUWOUWJVDQOUWJUWMUWNVDUWJ
      QUWMUUIUVAVOUQUWMUWJAUWJMSUWLADNVKZVPZMUWJADUWPMAUVCDMVQGDEVRUTANMAVSVTWA
      ZAVAUWQUUFUJZNVASUWJUWQSZAUVCUWSGUUFDEUVDWBUTZWCVAUWQNUUFWDWEZWFWHZWIWJZU
      XCWKUUKUWOLNUUENTUUGUWJUUJUWNQUUENUUFWLUUENUUIPVFWMWQWNUXDWJWOKMUWJWPWRAU
      WKUWQUGUDZUUNAUWQMVQZUWTUWKUXESUWRUXBUWJUWQWSWTDXAZXBWKUVPVASZAUVTUWEAUXH
      UVTUWEVCAUXHVMZUVTUVSMUWAUUFUDZVKVLZKMUUIUWAPOZRZQXGZOZVEXGOZUUNSZUWEAUXH
      UVTUXQAUXHUVTVMZVMBCDUVSUXOAUXHUVTXCAUXHUXOUUNSUVTUXIBCDUXKUXMUXIUXKUXEUU
      NUXIUXFUXJUWQSZUXKUXESAUXFUXHUWRWHAUWSUWAVASUXSUXHUXAUVPXDVAUWQUWAUUFWDXE
      UXJUWQWSWTUXGXBUXHAUXMUUNSZUXHUWAXFSAUXTVCZUVPXHAKMUUIUUOPOZRZUUNSZVCAKMU
      UIVDPOZRZUUNSZVCAKMUUIUVPPOZRZUUNSZVCUYAUYABUAUWAUUOVDTZUYDUYGAUYKUYCUYFU
      UNUYKKMUYBUYEUUOVDUUIPVFVHVIVJUWGUYDUYJAUWGUYCUYIUUNUWGKMUYBUYHUUOUVPUUIP
      VFVHVIVJUWHUYDUXTAUWHUYCUXMUUNUWHKMUYBUXLUUOUWAUUIPVFVHVIVJZUYLAUYFFUUNAU
      YFKMUUIRZFAKMUYEUUIUWMUUIUVAXIWOUVBXJHWKUVPXFSZAUYJUXTAUYNUYJUXTVCAUYNVMZ
      UYJUYIFUXNOZUUNSZUXTAUYNUYJUYQAUYNUYJVMZVMBCDUYIFAUYNUYJXCAUUSUYRHWHAUUOD
      SCUHZDSVMZUUOUYSVEODSZUYRIXKAUYTUUOUYSQODSZUYRJXKXLXMUYOUYPUXMUUNUYOUYPKM
      UYHUUIQOZRUXMUYOKMUYHUUIQUYIFXNXNMMXNSZUYOXOXSUYOUWLVMZUUIUVPPXPAUWLUUIMS
      ZUYNUVAXKZUYOUYIXQAFUYMTUYNUVBWHXRUYOKMUXLVUCVUEUUIUVPVUGUYNUXHAUWLUVPXTY
      AYBWOXJVIYCYDYJYEUTYFAUYTVUAUXHIXKAUYTVUBUXHJXKXLYGAUYTVUAUXRIXKYHXMUXIUX
      PUWDUUNUXIUXPKMUVRUXJUXLQOZVEOZRUWDUXIKMUVRVUHVEUVSUXOXNXNXNVUDUXIXOXSZUV
      RXNSUXIUWLVMZUVQUUKLYIXSVUKUXJUXLQXPUXIUVSXQUXIKMUXJUXLQUXKUXMXNXNXNVUJVU
      KUWAUUFYKVUKUUIUWAPXPUXKKMUXJRTUXIKMUXJWPXSUXIUXMXQXRXRUXIKMUWCVUIVUKUUKV
      UHLNUVPVUKUVPVANYLUDAUXHUWLYMYNXBVUKUUEUWBSZVMUUGUUJVUKVAMUUFUJZUUEVASZUU
      GMSVULAVUMUXHUWLAUVCVUMGUUFDEUVDYOUTYPUUEUWAYQZVAMUUEUUFWDXEVUKVUFVUNUUJM
      SVULAUWLVUFUXHUVAXKVUOUUIUUEYRXEYSUUEUWATUUGUXJUUJUXLQUUEUWAUUFWLUUEUWAUU
      IPVFWMYTWOXJVIYCYDYJUUAUUBWK $.
  $}

  ${
    $d m z A $.  $d m F $.  $d k m z N $.  $d k m z ph $.
    dgrle.1 $e |- ( ph -> F e. ( Poly ` S ) ) $.
    dgrle.2 $e |- ( ph -> N e. NN0 ) $.
    dgrle.3 $e |- ( ( ph /\ k e. ( 0 ... N ) ) -> A e. CC ) $.
    dgrle.4 $e |- ( ph -> F =
      ( z e. CC |-> sum_ k e. ( 0 ... N ) ( A x. ( z ^ k ) ) ) ) $.
    $( Compute the coefficient function given a sum expression for the
       polynomial.  (Contributed by Mario Carneiro, 24-Jul-2014.) $)
    coeeq2 $p |- ( ph ->
      ( coeff ` F ) = ( k e. NN0 |-> if ( k <_ N , A , 0 ) ) ) $=
      ( vm cn0 cc0 cc wcel wa co syl2anc cmul cle wbr cif cmpt cfz simpll simpr
      cv cuz cfv cz wb simplr nn0uz syl6eleq nn0zd ad2antrr elfz5 mpbird ifclda
      wn 0cnd eqid fmptd c1 caddc cima csn wceq wne wral fvmpt2 neeq1d necon1ai
      iffalse syl6bi ralrimiva nfv nffvmpt1 nfcv nfne nfim fveq2 imbi12d cbvral
      wi breq1 sylib plyco0 cexp csu nfov oveq2 oveq12d cbvsumi elfznn0 elfzle2
      wf adantl iftrued adantlr eqeltrd eqtrd oveq1d sumeq2dv syl5eqr mpteq2dva
      eqtr4d coeeq ) ABEMEUHZGUAUBZCNUCZUDZDLFGHIAEMXLOXMAXJMPZQZXKCNOXOXKQZAXJ
      NGUERZPZCOPZAXNXKUFXPXRXKXOXKUGXPXJNUIUJZPGUKPZXRXKULXPXJMXTAXNXKUMUNUOAY
      AXNXKAGIUPUQXJNGURSUSJSXOXKVAQVBUTZXMVCZVDZAXMGVEVFRUIUJVGNVHVIZLUHZXMUJZ
      NVJZYFGUAUBZWFZLMVKZAXJXMUJZNVJZXKWFZEMVKYKAYNEMXOYMXLNVJXKXOYLXLNXOXNXLO
      PZYLXLVIZAXNUGYBEMXLOXMYCVLZSVMXKXLNXKCNVOVNVPVQYNYJELMYNLVRYHYIEEYGNEMXL
      YFVSZENVTWAYIEVRWBXJYFVIZYMYHXKYIYSYLYGNXJYFXMWCZVMXJYFGUAWGWDWEWHAGMPMOX
      MWRYEYKULIYDXMLGWISUSAFBOXQCBUHZXJWJRZTRZEWKZUDBOXQYGUUAYFWJRZTRZLWKZUDKA
      BOUUGUUDAUUAOPZQZUUGXQYLUUBTRZEWKUUDXQUUJUUFELLUUJVTEYGUUETYRETVTEUUEVTWL
      YSYLYGUUBUUETYTXJYFUUAWJWMWNWOUUIXQUUJUUCEUUIXRQZYLCUUBTUUKYLXLCUUKXNYOYP
      XRXNUUIXJGWPWSUUKXLCOUUKXKCNXRXKUUIXJNGWQWSWTZAXRXSUUHJXAXBYQSUULXCXDXEXF
      XGXHXI $.

    $( Given an explicit expression for a polynomial, the degree is at most the
       highest term in the sum.  (Contributed by Mario Carneiro,
       24-Jul-2014.) $)
    dgrle $p |- ( ph -> ( deg ` F ) <_ N ) $=
      ( vm cfv wcel cn0 cc0 wceq cle wbr wi cply ccoe c1 caddc co cuz cima cdgr
      csn cv wne wral wa wn cif cmpt coeeq2 ad2antrr fveq1d nfcv nffvmpt1 nfeq1
      nfv breq1 notbid fveq2 eqeq1d imbi12d cid iffalse fveq2d cc 0cn fvi ax-mp
      nfim syl6eq fvmpt2i syl5ibr vtoclgaf imp adantll eqtrd necon1ad ralrimiva
      eqid ex wf wb coef3 syl plyco0 syl2anc mpbird dgrlb syl3anc ) AFDUAMNZGON
      ZFUBMZGUCUDUEUFMUGPUIQZFUHMZGRSHIAWTLUJZWSMZPUKXBGRSZTZLOULZAXELOAXBONZUM
      ZXDXCPXHXDUNZXCPQXHXIUMZXCXBEOEUJZGRSZCPUOZUPZMZPXJXBWSXNAWSXNQXGXIABCDEF
      GHIJKUQURUSXGXIXOPQZAXGXIXPXLUNZXKXNMZPQZTXIXPTEXBOEXBUTXIXPEXIEVCEXOPEOX
      MXBVAVBVPXKXBQZXQXIXSXPXTXLXDXKXBGRVDVEXTXRXOPXKXBXNVFVGVHXQXSXKONZXMVIMZ
      PQXQYBPVIMZPXQXMPVIXLCPVJVKPVLNYCPQVMPVLVNVOVQYAXRYBPEOXMXNXNWFVRVGVSVTWA
      WBWCWGWDWEAWROVLWSWHZWTXFWIIAWQYDHWSDFWSWFZWJWKWSLGWLWMWNWSDFGXAYEXAWFWOW
      P $.
  $}

  ${
    $d k z A $.  $d k z N $.  $d k z ph $.
    dgreq.1 $e |- ( ph -> F e. ( Poly ` S ) ) $.
    dgreq.2 $e |- ( ph -> N e. NN0 ) $.
    dgreq.3 $e |- ( ph -> A : NN0 --> CC ) $.
    dgreq.4 $e |- ( ph -> ( A " ( ZZ>= ` ( N + 1 ) ) ) = { 0 } ) $.
    dgreq.5 $e |- ( ph -> F =
      ( z e. CC |-> sum_ k e. ( 0 ... N ) ( ( A ` k ) x. ( z ^ k ) ) ) ) $.
    dgreq.6 $e |- ( ph -> ( A ` N ) =/= 0 ) $.
    $( If the highest term in a polynomial expression is nonzero, then the
       polynomial's degree is completely determined.  (Contributed by Mario
       Carneiro, 24-Jul-2014.) $)
    dgreq $p |- ( ph -> ( deg ` F ) = N ) $=
      ( cfv cle wbr cn0 cc wcel cc0 cdgr wceq cv wf cfz co elfznn0 syl2an dgrle
      ffvelrn cply ccoe wne coeeq fveq1d eqnetrd dgrub syl3anc dgrcl syl nn0red
      eqid letri3d mpbir2and ) AFUANZGUBVEGOPGVEOPZABEUCZCNZDEFGHIAQRCUDVGQSVHR
      SVGTGUEUFSJVGGUGQRVGCUJUHLUIAFDUKNSZGQSGFULNZNZTUMVFHIAVKGCNTAGVJCABCDEFG
      HIJKLUNUOMUPVJDFGVEVJVBVEVBUQURAVEGAVEAVIVEQSHDFUSUTVAAGIVAVCVD $.
  $}

  ${
    $d k z A $.  $d k z F $.  $d k z S $.
    $( A constant function has degree 0.  (Contributed by Mario Carneiro,
       24-Jul-2014.) $)
    0dgr $p |- ( A e. CC -> ( deg ` ( CC X. { A } ) ) = 0 ) $=
      ( vz vk cc wcel csn cxp cdgr cfv cc0 wceq cn0 cv co cexp cmul cmpt oveq2d
      simpl c1 cle wbr wss cply ssid plyconst mpan 0nn0 a1i cfz wa cz 0z mulid1
      csu exp0 sylan9eqr eqeltrd oveq2 fsum1 eqtrd mpteq2dva fconstmpt syl6reqr
      sylancr dgrle wb dgrcl nn0le0eq0 3syl mpbid ) ADEZDAFGZHIZJUAUBZVNJKZVLBA
      DCVMJDDUCVLVMDUDIEZDUEADUFUGZJLEVLUHUIVLCMZJJUJNZESVLBDVTABMZVSONZPNZCUOZ
      QBDAQVMVLBDWDAVLWADEZUKZWDAWAJONZPNZAWFJULEWHDEWDWHKUMWFWHADWEVLWHATPNAWE
      WGTAPWAUPRAUNUQZVLWESURWCWHCJVSJKWBWGAPVSJWAOUSRUTVEWIVAVBBDAVCVDVFVLVQVN
      LEVOVPVGVRDVMVHVNVIVJVK $.

    $( A function has degree zero iff it is a constant function.  (Contributed
       by Mario Carneiro, 23-Jul-2014.) $)
    0dgrb $p |- ( F e. ( Poly ` S ) ->
      ( ( deg ` F ) = 0 <-> F = ( CC X. { ( F ` 0 ) } ) ) ) $=
      ( vz vk cfv wcel cdgr cc0 wceq cc csn cxp wa cfz co cexp cmul cn0 eqtrd
      c1 cply ccoe cmpt cv eqid coeid adantr simplr oveq2d sumeq1d cz 0z adantl
      exp0 wf coef3 0nn0 ffvelrn sylancl ad2antrr mulid1d eqeltrd fveq2 oveq12d
      csu oveq2 fsum1 sylancr mpteq2dva fconstmpt syl6eqr fveq1d 0cn fvex ax-mp
      fvconst2 syl6eq sneqd xpeq2d eqtr4d ex plyf 0dgr eqeq1d syl5ibrcom impbid
      syl ) BAUAEFZBGEZHIZBJHBEZKZLZIZWHWJWNWHWJMZBJHBUBEZEZKZLZWMWOBCJWQUCZWSW
      OBCJHWINOZDUDZWPEZCUDZXBPOZQOZDVEZUCZWTWHBXHIWJCWPADBWIWPUEZWIUEUFUGWOCJX
      GWQWOXDJFZMZXGHHNOZXFDVEZWQXKXAXLXFDXKWIHHNWHWJXJUHUIUJXKXMWQXDHPOZQOZWQX
      KHUKFXOJFXMXOIULXKXOWQJXKXOWQTQOWQXKXNTWQQXJXNTIWOXDUNUMUIXKWQWHWQJFZWJXJ
      WHRJWPUOHRFXPWPABXIUPUQRJHWPURUSUTZVASZXQVBXFXODHXBHIXCWQXEXNQXBHWPVCXBHX
      DPVFVDVGVHXRSSVISCJWQVJVKZWOWLWRJWOWKWQWOWKHWSEZWQWOHBWSXSVLHJFZXTWQIVMJW
      QHHWPVNVPVOVQVRVSVTWAWHWJWNWMGEZHIZWHWKJFZYCWHJJBUOYAYDABWBVMJJHBURUSWKWC
      WGWNWIYBHBWMGVCWDWEWF $.
  $}

  ${
    $( A nonzero polynomial with a root has positive degree.  (Contributed by
       Stefan O'Rear, 25-Nov-2014.) $)
    dgrnznn $p |- ( ( ( P e. ( Poly ` S ) /\ P =/= 0p ) /\
        ( A e. CC /\ ( P ` A ) = 0 ) ) -> ( deg ` P ) e. NN ) $=
      ( cply cfv wcel c0p wne wa cc cc0 wceq cdgr wn cn csn cxp simpr ad2antrr
      wo fveq1d simplr fvex fvconst2 3eqtr3rd sneqd xpeq2d eqtrd df-0p necon3ad
      syl6eqr ex impcom adantll 0dgrb mtbird cn0 dgrcl elnn0 sylib orel2 sylc
      wb ) BCDEFZBGHZIAJFZABEZKLZIZIZBMEZKLZNVKOFZVLTZVMVJVLBJKBEZPZQZLZVEVIVRN
      ZVDVIVEVSVIVRBGVIVRBGLVIVRIZBJKPZQZGVTBVQWBVIVRRZVTVPWAJVTVOKVTVGAVQEZKVO
      VTABVQWCUAVFVHVRUBVFWDVOLVHVRJVOAKBUCUDSUEUFUGUHUIUKULUJUMUNVDVLVRVCVEVIC
      BUOSUPVJVKUQFZVNVDWEVEVICBURSVKUSUTVLVMVAVB $.
  $}

  ${
    $d j k n x y z A $.  $d j k n y z B $.  $d j k n x y z F $.  $d j k z M $.
    $d j k n x y z G $.  $d j k n z N $.  $d j k n x y z S $.
    coefv0.1 $e |- A = ( coeff ` F ) $.
    $( The result of evaluating a polynomial at zero is the constant term.
       (Contributed by Mario Carneiro, 24-Jul-2014.) $)
    coefv0 $p |- ( F e. ( Poly ` S ) -> ( F ` 0 ) = ( A ` 0 ) ) $=
      ( vk cfv wcel cc0 cfz co cexp cmul csu cc wceq cn0 syl wa c1 ffvelrn cply
      cdgr cv 0cn coeid2 mpan2 cuz wss dgrcl nn0uz syl6eleq fzss2 elfz1eq fveq2
      eqid oveq2 0exp0e1 syl6eq oveq12d wf coef3 0nn0 sylancl mulid1d sylan9eqr
      adantr eqeltrd cn eldifn wn wo eldifi elfznn0 elnn0 sylib ord id cz elfz3
      cdif 0z ax-mp syl6eqel syl6 adantl 0expd oveq2d syl2an mul01d eqtrd fzfid
      mt3d fsumss fsum1 sylancr 3eqtr2d ) CBUAFGZHCFZHCUBFZIJZEUCZAFZHXAKJZLJZE
      MZHHIJZXDEMZHAFZWQHNGWRXEOUDABECWSHDWSUOUEUFWQXFWTXDEWQWSHUGFZGXFWTUHWQWS
      PXIBCUIUJUKHHWSULQWQXAXFGZRXDXHNXJWQXDXHSLJZXHXJXAHOZXDXKOXAHUMXLXBXHXCSL
      XAHAUNXLXCHHKJSXAHHKUPUQURUSZQWQXHWQPNAUTZHPGXHNGZABCDVAZVBPNHATVCZVDZVEW
      QXOXJXQVFVGWQXAWTXFVTGZRZXDXBHLJHXTXCHXBLXTXAXSXAVHGZWQXSYAXJXAWTXFVIXSYA
      VJXLXJXSYAXLXSXAPGZYAXLVKXSXAWTGYBXAWTXFVLXAWSVMQZXAVNVOVPXLXAHXFXLVQHVRG
      ZHXFGWAHVSWBWCWDWLWEWFWGXTXBWQXNYBXBNGXSXPYCPNXAATWHWIWJWQHWSWKWMWQXGXKXH
      WQYDXKNGXGXKOWAWQXKXHNXRXQVGXDXKEHXMWNWOXRWJWP $.

    coeadd.2 $e |- B = ( coeff ` G ) $.
    ${
      coeadd.3 $e |- M = ( deg ` F ) $.
      coeadd.4 $e |- N = ( deg ` G ) $.
      $( Lemma for ~ coeadd and ~ dgradd .  (Contributed by Mario Carneiro,
         24-Jul-2014.) $)
      coeaddlem $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) ->
        ( ( coeff ` ( F oF + G ) ) = ( A oF + B ) /\
          ( deg ` ( F oF + G ) ) <_ if ( M <_ N , N , M ) ) ) $=
        ( vk cfv wcel caddc co wceq cc cn0 cc0 vz vx cply cof ccoe cdgr cle wbr
        vy wa cif plyaddcl dgrcl syl5eqel adantl adantr ifcld cv addcl wf coef3
        cvv nn0ex a1i inidm off c1 cuz cima csn wne wi wral wo wn oveq12 syl6eq
        00id wfn ffn eqidd ofval eqeq1d syl5ibr necon3ad neorian syl6ibr dgrub2
        syl wb plyco0 syl2anc mpbid r19.21bi cr nn0red max1 letr syl3anc mpan2d
        nn0re syld max2 jaod ralrimiva simpl simpr cfz cexp cmul csu cmpt coeid
        mpbird plyaddlem1 coeeq elfznn0 ffvelrn syl2an dgrle jca ) DCUCMZNZEYBN
        ZUJZDEOUDZPZUEMABYFPZQYGUFMFGUGUHZGFUKZUGUHYEUAYHRLYGYJCDEULZYEYIGFSYDG
        SNZYCYDGEUFMSKCEUMUNUOZYCFSNZYDYCFDUFMSJCDUMUNUPZUQZYEUBUISSSORRRABVBVB
        UBURZRNUIURZRNUJYQYROPRNYEYQYRUSUOYCSRAUTZYDACDHVAUPZYDSRBUTZYCBCEIVAUO
        ZSVBNYEVCVDZUUCSVEZVFZYEYHYJVGOPVHMVITVJZQZLURZYHMZTVKZUUHYJUGUHZVLZLSV
        MZYEUULLSYEUUHSNZUJZUUJUUHAMZTVKZUUHBMZTVKZVNZUUKUUOUUJUUPTQUURTQUJZVOU
        UTUUOUVAUUITUVAUUITQUUOUUPUUROPZTQUVAUVBTTOPTUUPTUURTOVPVRVQUUOUUIUVBTY
        ESSUUPUUROSABVBVBUUHYEYSASVSYTSRAVTWIYEUUABSVSUUBSRBVTWIUUCUUCUUDUUOUUP
        WAUUOUURWAWBWCWDWEUUPTUURTWFWGUUOUUQUUKUUSUUOUUQUUHFUGUHZUUKYEUUQUVCVLZ
        LSYEAFVGOPVHMVIUUFQZUVDLSVMZYCUVEYDACDFHJWHUPZYEYNYSUVEUVFWJYOYTALFWKWL
        WMWNUUOUVCFYJUGUHZUUKUUOFWONZGWONZUVHUUOFYEYNUUNYOUPWPZUUOGYEYLUUNYMUPW
        PZFGWQWLUUOUUHWONZUVIYJWONZUVCUVHUJUUKVLUUNUVMYEUUHXAUOZUVKUUOYJYEYJSNZ
        UUNYPUPWPZUUHFYJWRWSWTXBUUOUUSUUHGUGUHZUUKYEUUSUVRVLZLSYEBGVGOPVHMVIUUF
        QZUVSLSVMZYDUVTYCBCEGIKWHUOZYEYLUUAUVTUWAWJYMUUBBLGWKWLWMWNUUOUVRGYJUGU
        HZUUKUUOUVIUVJUWCUVKUVLFGXCWLUUOUVMUVJUVNUVRUWCUJUUKVLUVOUVLUVQUUHGYJWR
        WSWTXBXDXBXEYEUVPSRYHUTZUUGUUMWJYPUUEYHLYJWKWLXNYEUAABCLDEFGYCYDXFYCYDX
        GYOYMYTUUBUVGUWBYCDUARTFXHPUUPUAURUUHXIPZXJPLXKXLQYDUAACLDFHJXMUPYDEUAR
        TGXHPUURUWEXJPLXKXLQYCUABCLEGIKXMUOXOZXPYEUAUUIRLYGYJYKYPYEUWDUUNUUIRNU
        UHTYJXHPNUUEUUHYJXQSRUUHYHXRXSUWFXTYA $.

      $( Lemma for ~ coemul and ~ dgrmul .  (Contributed by Mario Carneiro,
         24-Jul-2014.) $)
      coemullem $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) ->
        ( ( coeff ` ( F oF x. G ) ) = ( n e. NN0 |->
            sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) /\
          ( deg ` ( F oF x. G ) ) <_ ( M + N ) ) ) $=
        ( cfv wcel co cn0 cc0 wceq cc vz vj cply wa cmul cof ccoe cfz cmin cmpt
        cv csu cdgr caddc cle wbr plymulcl dgrcl syl5eqel nn0addcl syl2an fzfid
        wf coef3 adantr elfznn0 adantl ad2antrr fznn0sub ffvelrnd mulcld fsumcl
        ffvelrn eqid fmptd c1 cuz cima csn wi wral wn oveq2 oveq1 fveq2d oveq2d
        wne sumeq12dv sumex fvmpt ad2antrl simp2r simp2l nn0red simp3l 3ad2ant1
        w3a syl lesubadd2d simp3r leadd1dd cr readdcld letr syl3anc mpan2d mtod
        sylbid simpr dgrub 3expia syl2anc necon1bd mpd mul01d eqtrd impl oveq1d
        simpl imp ad3antrrr ad2antlr mul02d pm2.61dan sumeq2dv wss wo fzfi olci
        cfn sumz ax-mp syl6eq expr necon1ad ralrimiva wb cexp dgrub2 coeid jca
        plyco0 mpbird plymullem1 sumeq2i mpteq2i syl6eqr coeeq dgrle ) FCUCNZOZ
        GUUJOZUDZFGUEUFPZUGNEQREUKZUHPZDUKZANZUUOUUQUIPZBNZUEPZDULZUJZSUUNUMNHI
        UNPZUOUPUUMUAUVCTUBUUNUVDCFGUQZUUKHQOZIQOZUVDQOZUULUUKHFUMNQLCFURUSZUUL
        IGUMNQMCGURUSZHIUTVAZUUMEQUVBTUVCUUMUUOQOZUDZUUPUVADUVMRUUOVBUVMUUQUUPO
        ZUDZUURUUTUVMQTAVCZUUQQOZUURTOUVNUUMUVPUVLUUKUVPUULACFJVDVEZVEUUQUUOVFQ
        TUUQAVMVAUVOQTUUSBUUMQTBVCZUVLUVNUULUVSUUKBCGKVDVGZVHUVNUUSQOUVMUUQRUUO
        VIVGVJVKVLUVCVNZVOZUUMUVCUVDVPUNPVQNVRRVSZSZUBUKZUVCNZRWGUWEUVDUOUPZVTZ
        UBQWAZUUMUWHUBQUUMUWEQOZUDUWGUWFRUUMUWJUWGWBZUWFRSUUMUWJUWKUDZUDZUWFRUW
        EUHPZUURUWEUUQUIPZBNZUEPZDULZRUWJUWFUWRSZUUMUWKEUWEUVBUWRQUVCUUOUWESZUU
        PUWNUVAUWQDUUOUWERUHWCUWTUVAUWQSUVNUWTUUTUWPUURUEUWTUUSUWOBUUOUWEUUQUIW
        DWEWFVEWHUWAUWNUWQDWIWJZWKUWMUWRUWNRDULZRUWMUWNUWQRDUWMUUQUWNOZUDZUUQHU
        OUPZUWQRSZUWMUXCUXEUXFUUMUWLUXCUXEUDZUXFUUMUWLUXGWQZUWQUURRUEPRUXHUWPRU
        URUEUXHUWOIUOUPZWBUWPRSUXHUXIUWGUUMUWJUWKUXGWLUXHUXIUWEUUQIUNPZUOUPZUWG
        UXHUWEUUQIUXHUWEUUMUWJUWKUXGWMWNZUXHUUQUXHUXCUVQUUMUWLUXCUXEWOZUUQUWEVF
        ZWRZWNZUXHIUUMUWLUVGUXGUULUVGUUKUVJVGZWPWNZWSUXHUXKUXJUVDUOUPZUWGUXHUUQ
        HIUXPUXHHUUMUWLUVFUXGUUKUVFUULUVIVEZWPWNZUXRUUMUWLUXCUXEWTXAUXHUWEXBOUX
        JXBOUVDXBOUXKUXSUDUWGVTUXLUXHUUQIUXPUXRXCUXHHIUYAUXRXCUWEUXJUVDXDXEXFXH
        XGUXHUXIUWPRUXHUULUWOQOZUWPRWGZUXIVTUUMUWLUULUXGUUKUULXIZWPUXHUXCUYBUXM
        UUQRUWEVIZWRUULUYBUYCUXIBCGUWOIKMXJXKXLXMXNWFUXHUURUXHQTUUQAUUMUWLUVPUX
        GUVRWPUXOVJXOXPXKXQUXDUXEWBZUDZUWQRUWPUEPRUYGUURRUWPUEUXDUYFUURRSUXDUXE
        UURRUWMUUKUVQUURRWGZUXEVTUXCUUMUUKUWLUUKUULXSZVEUXNUUKUVQUYHUXEACFUUQHJ
        LXJXKVAXMXTXRUYGUWPUYGQTUWOBUUMUVSUWLUXCUYFUVTYAUXCUYBUWMUYFUYEYBVJYCXP
        YDYEUWNRVQNYFZUWNYJOZYGUXBRSUYKUYJRUWEYHYIUWNDRYKYLYMXPYNYOYPUUMUVHQTUV
        CVCZUWDUWIYQUVKUWBUVCUBUVDUUBXLUUCUUMUUNUATRUVDUHPZUWRUAUKZUWEYRPZUEPZU
        BULZUJUATUYMUWFUYOUEPZUBULZUJUUMUAABCDUBFGHIUYIUYDUXTUXQUVRUVTUUKAHVPUN
        PVQNVRUWCSUULACFHJLYSVEUULBIVPUNPVQNVRUWCSUUKBCGIKMYSVGUUKFUATRHUHPUURU
        YNUUQYRPZUEPDULUJSUULUAACDFHJLYTVEUULGUATRIUHPUUQBNUYTUEPDULUJSUUKUABCD
        GIKMYTVGUUDUATUYSUYQUYMUYRUYPUBUWEUYMOZUWFUWRUYOUEVUAUWJUWSUWEUVDVFZUXA
        WRXRUUEUUFUUGZUUHUUMUAUWFTUBUUNUVDUVEUVKUUMUYLUWJUWFTOVUAUWBVUBQTUWEUVC
        VMVAVUCUUIUUA $.
    $}

    $( The coefficient function of a sum is the sum of coefficients.
       (Contributed by Mario Carneiro, 24-Jul-2014.) $)
    coeadd $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) ->
      ( coeff ` ( F oF + G ) ) = ( A oF + B ) ) $=
      ( cply cfv wcel wa caddc cof co ccoe wceq cdgr cle wbr eqid cif coeaddlem
      simpld ) DCHIZJEUDJKDELMZNZOIABUENPUFQIDQIZEQIZRSUHUGUARSABCDEUGUHFGUGTUH
      TUBUC $.

    $( A coefficient of a product of polynomials.  (Contributed by Mario
       Carneiro, 24-Jul-2014.) $)
    coemul $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) /\ N e. NN0 ) ->
      ( ( coeff ` ( F oF x. G ) ) ` N ) =
      sum_ k e. ( 0 ... N ) ( ( A ` k ) x. ( B ` ( N - k ) ) ) ) $=
      ( vn cfv wcel cn0 cmul co cc0 cfz cmin wceq cdgr cply cof ccoe cv wa cmpt
      csu caddc cle wbr eqid coemullem simpld fveq1d oveq2 fveq2d oveq2d adantr
      oveq1 sumeq12dv sumex fvmpt sylan9eq 3impa ) ECUAKZLZFVELZGMLZGEFNUBOZUCK
      ZKZPGQOZDUDZAKZGVMROZBKZNOZDUGZSVFVGUEZVHVKGJMPJUDZQOZVNVTVMROZBKZNOZDUGZ
      UFZKVRVSGVJWFVSVJWFSVITKETKZFTKZUHOUIUJABCDJEFWGWHHIWGUKWHUKULUMUNJGWEVRM
      WFVTGSZWAVLWDVQDVTGPQUOWIWDVQSVMWALWIWCVPVNNWIWBVOBVTGVMRUSUPUQURUTWFUKVL
      VQDVAVBVCVD $.

    $( The coefficient function is one-to-one, so if the coefficients are equal
       then the functions are equal and vice-versa.  (Contributed by Mario
       Carneiro, 24-Jul-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    coe11 $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) ->
                  ( F = G <-> A = B ) ) $=
      ( vz vk cfv wcel wceq ccoe cc cc0 cfz co cmul cn0 clt cply wa 3eqtr4g w3a
      fveq2 cdgr cv cexp csu cmpt ccnv csn cdif cima csup simp3 imaeq1d supeq1d
      cnveqd dgrval 3ad2ant1 3eqtr4d oveq2d simpl3 fveq1d oveq1d sumeq12dv eqid
      3ad2ant2 mpteq2dv coeid 3expia impbid2 ) DCUAJZKZEVNKZUBDELZABLZVQDMJEMJA
      BDEMUEFGUCVOVPVRVQVOVPVRUDZHNODUFJZPQZIUGZAJZHUGWBUHQZRQZIUIZUJZHNOEUFJZP
      QZWBBJZWDRQZIUIZUJZDEVSHNWFWLVSWAWIWEWKIVSVTWHOPVSAUKZNOULUMZUNZSTUOZBUKZ
      WOUNZSTUOZVTWHVSSWPWSTVSWNWRWOVSABVOVPVRUPUSUQURVOVPVTWQLVRACDFUTVAVPVOWH
      WTLVRBCEGUTVIVBVCVSWBWAKZUBZWCWJWDRXBWBABVOVPVRXAVDVEVFVGVJVOVPDWGLVRHACI
      DVTFVTVHVKVAVPVOEWMLVRHBCIEWHGWHVHVKVIVBVLVM $.

    coemulhi.3 $e |- M = ( deg ` F ) $.
    coemulhi.4 $e |- N = ( deg ` G ) $.
    $( The leading coefficient of a product of polynomials.  (Contributed by
       Mario Carneiro, 24-Jul-2014.) $)
    coemulhi $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) ->
    ( ( coeff ` ( F oF x. G ) ) ` ( M + N ) ) = ( ( A ` M ) x. ( B ` N ) ) ) $=
      ( vk cfv wcel co cmul cc0 cn0 wceq cc cply wa caddc cof ccoe cfz cmin csu
      cv csn cdgr dgrcl syl5eqel nn0addcl syl2an coemul mpd3an3 cle wbr nn0ge0d
      adantl adantr nn0red addge01d mpbid cz nn0uz syl6eleq nn0zd elfz5 syl2anc
      cuz wb mpbird snssd elsni fveq2 oveq2 fveq2d oveq12d recnd pncan2d oveq2d
      syl wf coef3 ffvelrnd mulcld eqeltrd wn wne wi simpl eldifi elfznn0 dgrub
      cdif 3expia necon1bd imp oveq1d ad2antrr ad2antlr fznn0sub mul02d leadd1d
      eqtrd cr lesubadd2d bitr4d notbid biimpa simpr syldan wo eldifsni letri3d
      mul01d necon3abid ianor sylib mpjaodan fzfid fsumss sumsn 3eqtr2d ) DCUAM
      ZNZEYGNZUBZFGUCOZDEPUDOUEMMZQYKUFOZLUIZAMZYKYNUGOZBMZPOZLUHZFUJZYRLUHZFAM
      ZGBMZPOZYHYIYKRNZYLYSSYHFRNZGRNZUUEYIYHFDUKMRJCDULUMZYIGEUKMRKCEULUMZFGUN
      UOZABCLDEYKHIUPUQYJYTYMYRLYJFYMYJFYMNZFYKURUSZYJQGURUSUULYJGYIUUGYHUUIVAZ
      UTYJFGYJFYHUUFYIUUHVBZVCZYJGUUMVCZVDVEYJFQVLMZNYKVFNUUKUULVMYJFRUUQUUNVGV
      HYJYKUUJVIFQYKVJVKVNVOYJYNYTNZUBZYRUUBYKFUGOZBMZPOZTUUSYNFSZYRUVBSUURUVCY
      JYNFVPVAUVCYOUUBYQUVAPYNFAVQUVCYPUUTBYNFYKUGVRVSVTZWDYJUVBTNZUURYJUVBUUDT
      YJUVAUUCUUBPYJUUTGBYJFGYJFUUOWAYJGUUPWAWBVSWCZYJUUBUUCYJRTFAYHRTAWEZYIACD
      HWFVBZUUNWGYJRTGBYIRTBWEZYHBCEIWFVAZUUMWGWHWIZVBWIYJYNYMYTWQNZUBZYNFURUSZ
      WJZYRQSFYNURUSZWJZUVMUVOUBZYRQYQPOQUVRYOQYQPUVMUVOYOQSUVMUVNYOQYJYHYNRNZY
      OQWKZUVNWLUVLYHYIWMUVLYNYMNZUVSYNYMYTWNZYNYKWOZWDZYHUVSUVTUVNACDYNFHJWPWR
      UOWSWTXAUVRYQUVRRTYPBYJUVIUVLUVOUVJXBUVRUWAYPRNZUVLUWAYJUVOUWBXCYNQYKXDZW
      DWGXEXGUVMUVQUBZYRYOQPOQUWGYQQYOPUVMUVQYPGURUSZWJZYQQSZUVMUVQUWIUVMUVPUWH
      UVMUVPYKYNGUCOURUSUWHUVMFYNGYJFXHNUVLUUOVBZUVMYNUVMUWAUVSUVLUWAYJUWBVAUWC
      WDVCZYJGXHNUVLUUPVBZXFUVMYKYNGUVMYKYJUUEUVLUUJVBVCUWLUWMXIXJXKXLUVMUWIUWJ
      UVMUWHYQQYJYIUWEYQQWKZUWHWLUVLYHYIXMUVLUWAUWEUWBUWFWDYIUWEUWNUWHBCEYPGIKW
      PWRUOWSWTXNWCUWGYOUWGRTYNAYJUVGUVLUVQUVHXBUVLUVSYJUVQUWDXCWGXRXGUVMUVNUVP
      UBZWJZUVOUVQXOUVMYNFWKZUWPUVLUWQYJYNYMFXPVAUVMUWOYNFUVMYNFUWLUWKXQXSVEUVN
      UVPXTYAYBYJQYKYCYDYJUUAUVBUUDYJUUFUVEUUAUVBSUUNUVKYRUVBLFRUVDYEVKUVFXGYF
      $.
  $}

  ${
    $d k n A $.  $d k n F $.  $d k n S $.
    $( The coefficient function is linear under scalar multiplication.
       (Contributed by Mario Carneiro, 24-Jul-2014.) $)
    coemulc $p |- ( ( A e. CC /\ F e. ( Poly ` S ) ) ->
                    ( coeff ` ( ( CC X. { A } ) oF x. F ) ) =
                    ( ( NN0 X. { A } ) oF x. ( coeff ` F ) ) ) $=
      ( vk cc wcel cfv wa cn0 cmul co ccoe wf wfn eqid cvv syl adantl cc0 wceq
      vn cply csn cxp cof ssid plyconst mpan plyssc sseli plymulcl syl2an coef3
      wss ffn 3syl fconstg adantr nn0ex a1i offn cv cmin ad2antrr coefv0 simpll
      inidm 0cn fvconst2g sylancl eqtr3d nn0cnd subid1d fveq2d oveq12d ad2antlr
      simpr cfz csu coemul syl3anc cuz nn0uz syl6eleq fzss2 elfz1eq fveq2 oveq2
      ffvelrnda mulcld eqeltrd cdif wn eldifn wne cdgr cle wbr wi elfznn0 dgrub
      eldifi 3expia 0dgr ad3antrrr breq2d wb nn0le0eq0 bitrd sylibd id cz elfz3
      0z ax-mp syl6eqel necon1bd mpd oveq1d fznn0sub ffvelrn mul02d eqtrd fzfid
      syl6 fsumss fsum1 sylancr 3eqtr2d simpl eqidd ofc1 3eqtr4d eqfnfvd ) AEFZ
      CBUBGZFZHZUAIEAUCZUDZCJUEZKZLGZIYSUDZCLGZUUAKZYRUUBEUBGZFZIEUUCMUUCINYOYT
      UUGFZCUUGFZUUHYQEEUNYOUUIEUFAEUGUHZYPUUGCBUIUJZEYTCUKULUUCEUUBUUCOUMIEUUC
      UOUPYRIIJIUUDUUEPPYRIYSUUDMZUUDINYOUUMYQIAEUQURIYSUUDUOQYRIEUUEMZUUEINYQU
      UNYOUUEBCUUEOZUMRZIEUUEUOQZIPFYRUSUTZUURIVGVAYRUAVBZIFZHZSYTLGZGZUUSSVCKZ
      UUEGZJKZAUUSUUEGZJKZUUSUUCGZUUSUUFGUVAUVCAUVEUVGJUVASYTGZUVCAUVAUUIUVJUVC
      TYOUUIYQUUTUUKVDZUVBEYTUVBOZVEQUVAYOSEFUVJATYOYQUUTVFZVHEASEVIVJVKUVAUVDU
      USUUEUVAUUSUVAUUSYRUUTVQZVLVMVNVOZUVAUVISUUSVRKZDVBZUVBGZUUSUVQVCKZUUEGZJ
      KZDVSZSSVRKZUWADVSZUVFUVAUUIUUJUUTUVIUWBTUVKYQUUJYOUUTUULVPUVNUVBUUEEDYTC
      UUSUVLUUOVTWAUVAUWCUVPUWADUVAUUSSWBGZFUWCUVPUNUVAUUSIUWEUVNWCWDSSUUSWEQUV
      AUVQUWCFZHZUWAUVFEUWGUVQSTZUWAUVFTUWFUWHUVAUVQSWFRUWHUVRUVCUVTUVEJUVQSUVB
      WGUWHUVSUVDUUEUVQSUUSVCWHVNVOZQUVAUVFEFZUWFUVAUVFUVHEUVOUVAAUVGUVMYRIEUUS
      UUEUUPWIWJWKZURWKUVAUVQUVPUWCWLFZHZUWASUVTJKSUWMUVRSUVTJUWMUWFWMZUVRSTUWL
      UWNUVAUVQUVPUWCWNRUWMUWFUVRSUWMUVRSWOZUWHUWFUWMUWOUVQYTWPGZWQWRZUWHUVAUUI
      UVQIFZUWOUWQWSUWLUVKUWLUVQUVPFZUWRUVQUVPUWCXBZUVQUUSWTQZUUIUWRUWOUWQUVBEY
      TUVQUWPUVLUWPOXAXCULUWMUWQUVQSWQWRZUWHUWMUWPSUVQWQYOUWPSTYQUUTUWLAXDXEXFU
      WMUWRUXBUWHXGUWLUWRUVAUXARUVQXHQXIXJUWHUVQSUWCUWHXKSXLFZSUWCFXNSXMXOXPYEX
      QXRXSUWMUVTUVAUUNUVSIFZUVTEFUWLYRUUNUUTUUPURUWLUWSUXDUWTUVQSUUSXTQIEUVSUU
      EYAULYBYCUVASUUSYDYFUVAUXCUWJUWDUVFTXNUWKUWAUVFDSUWIYGYHYIYRIAUVGJUUEPEUU
      SUURYOYQYJUUQUVAUVGYKYLYMYN $.

    $( The coefficients of the zero polynomial are zero.  (Contributed by Mario
       Carneiro, 22-Jul-2014.) $)
    coe0 $p |- ( coeff ` 0p ) = ( NN0 X. { 0 } ) $=
      ( vx c0p ccoe cfv cn0 cc0 csn cxp wceq wtru cc cmul cof wcel cvv a1i mp1i
      co wf caofid2 cply 0cnd wss ssid ply0 ax-mp coemulc sylancl cnex cv mul02
      plyf adantl df-0p syl6eqr fveq2d nn0ex eqid coef3 3eqtr3d trud ) BCDZEFGZ
      HZIJKVCHZBLMZRZCDZVDVBVFRZVBVDJFKNBKUADNZVHVIIJUBZKKUCVJKUDKUEUFZFKBUGUHJ
      VGBCJVGVEBJAKFFLKBOKKKONJUIPVJKKBSJVLKBULQVKVKAUJZKNFVMLRFIJVMUKUMZTUNUOU
      PJAEFFLKVBOKKEONJUQPVJEKVBSJVLVBKBVBURUSQVKVKVNTUTVA $.

    coesub.1 $e |- A = ( coeff ` F ) $.
    coesub.2 $e |- B = ( coeff ` G ) $.
    $( The coefficient function of a sum is the sum of coefficients.
       (Contributed by Mario Carneiro, 24-Jul-2014.) $)
    coesub $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) ->
      ( coeff ` ( F oF - G ) ) = ( A oF - B ) ) $=
      ( cply cfv wcel cc cxp cof co ccoe cn0 wceq sseldi cvv wf wa c1 cneg cmul
      csn caddc cmin plyssc simpl wss ssid neg1cn plyconst mp2an simpr plymulcl
      sylancr eqid coeadd syl2anc coemulc oveq2i syl6eqr oveq2d eqtrd cnex plyf
      a1i adantr adantl ofnegsub syl3anc fveq2d nn0ex coef3 3eqtr3d ) DCHIZJZEV
      QJZUAZDKUBUCZUEZLZEUDMZNZUFMZNZOIZAPWBLZBWDNZWFNZDEUGMZNZOIABWLNZVTWHAWEO
      IZWFNZWKVTDKHIZJWEWQJZWHWPQVTVQWQDCUHZVRVSUIRVTWCWQJZEWQJZWRKKUJWAKJZWTKU
      KULWAKUMUNVTVQWQEWSVRVSUORZKWCEUPUQAWOKDWEFWOURUSUTVTWOWJAWFVTWOWIEOIZWDN
      ZWJVTXBXAWOXEQULXCWAKEVAUQBXDWIWDGVBVCVDVEVTWGWMOVTKSJZKKDTZKKETZWGWMQXFV
      TVFVHVRXGVSCDVGVIVSXHVRCEVGVJKDESVKVLVMVTPSJZPKATZPKBTZWKWNQXIVTVNVHVRXJV
      SACDFVOVIVSXKVRBCEGVOVJPABSVKVLVP $.
  $}

  ${
    $d k n z A $.  $d n M $.  $d k n z N $.
    coe1term.1 $e |- F = ( z e. CC |-> ( A x. ( z ^ N ) ) ) $.
    $( The coefficient function of a monomial.  (Contributed by Mario Carneiro,
       26-Jul-2014.)  (Revised by Mario Carneiro, 23-Aug-2014.) $)
    coe1termlem $p |- ( ( A e. CC /\ N e. NN0 ) ->
      ( ( coeff ` F ) = ( n e. NN0 |-> if ( n = N , A , 0 ) ) /\
        ( A =/= 0 -> ( deg ` F ) = N ) ) ) $=
      ( vk cc wcel cn0 wa cfv cv wceq cc0 cmpt wne adantr co cle ccoe cdgr cply
      cif wi wss ssid ply1term mp3an1 simpr simpl ifcl sylancl eqid fmptd caddc
      0cn c1 cuz cima csn wral eqeq1 ifbid fvmptg syl2anc neeq1d nn0re ad2antlr
      wbr leidd necon1ai breq1d syl5ibrcom sylbid ralrimiva wf wb plyco0 mpbird
      iffalse cfz cexp cmul ply1termlem elfznn0 oveq1d sylan2 sumeq2dv mpteq2dv
      csu eqtr4d coeeq iftrue ancoms biimpar dgreq ex jca ) BHIZEJIZKZDUALCJCMZ
      ENZBOUDZPZNBOQZDUBLENZUEXBAXFHGDEHHUFWTXADHUCLIZHUGABHDEFUHUIZWTXAUJZXBCJ
      XEHXFXBXEHIZXCJIXBWTOHIZXLWTXAUKZUQXDBOHULUMRXFUNZUOZXBXFEURUPSUSLUTOVANZ
      GMZXFLZOQZXRETVJZUEZGJVBZXBYBGJXBXRJIZKZXTXRENZBOUDZOQZYAYEXSYGOYEYDYGHIZ
      XSYGNXBYDUJXBYIYDXBWTXMYIXNUQYFBOHULUMRCXRXEYGJHXFXCXRNXDYFBOXCXREVCVDXOV
      EVFZVGYEYAYHEETVJZXAYKWTYDXAEEVHVKVIYHXREETYFYGOYFBOWAVLVMVNVOVPXBXAJHXFV
      QZXQYCVRXKXPXFGEVSVFVTZXBDAHOEWBSZYGAMXRWCSZWDSZGWKZPAHYNXSYOWDSZGWKZPZAB
      GDEFWEXBAHYSYQXBYNYRYPGXRYNIXBYDYRYPNXREWFYEXSYGYOWDYJWGWHWIWJWLZWMXBXGXH
      XBXGKAXFHGDEXBXIXGXJRXBXAXGXKRXBYLXGXPRXBXQXGYMRXBDYTNXGUUARXBEXFLZOQXGXB
      UUBBOXAWTUUBBNCEXEBJHXFXDBOWNXOVEWOVGWPWQWRWS $.

    $( The coefficient function of a monomial.  (Contributed by Mario Carneiro,
       26-Jul-2014.) $)
    coe1term $p |- ( ( A e. CC /\ N e. NN0 /\ M e. NN0 ) ->
                     ( ( coeff ` F ) ` M ) = if ( M = N , A , 0 ) ) $=
      ( vn cc wcel cn0 w3a ccoe cfv cv wceq cc0 cif cmpt wa wne cdgr wi 3adant3
      coe1termlem simpld fveq1d simp3 simp1 0cn ifcl sylancl eqeq1 ifbid fvmptg
      eqid syl2anc eqtrd ) BHIZEJIZDJIZKZDCLMZMZDGJGNZEOZBPQZRZMZDEOZBPQZURUSVC
      VHOUTURUSSZDVBVGVKVBVGOBPTCUAMEOUBABGCEFUDUEUFUCVAUTVJHIZVHVJOURUSUTUGVAU
      RPHIVLURUSUTUHUIVIBPHUJUKGDVFVJJHVGVDDOVEVIBPVDDEULUMVGUOUNUPUQ $.

    $( The degree of a monomial.  (Contributed by Mario Carneiro,
       26-Jul-2014.) $)
    dgr1term $p |- ( ( A e. CC /\ A =/= 0 /\ N e. NN0 ) ->
                     ( deg ` F ) = N ) $=
      ( vn cc wcel cn0 cc0 wne cdgr cfv wceq wa ccoe cv cif cmpt wi coe1termlem
      simprd 3impia 3com23 ) BGHZDIHZBJKZCLMDNZUEUFUGUHUEUFOCPMFIFQDNBJRSNUGUHT
      ABFCDEUAUBUCUD $.
  $}

  ${
    $d k z A $.  $d k z F $.  $d k z N $.  $d k z S $.
    $( A polynomial is a continuous function.  (Contributed by Mario Carneiro,
       23-Jul-2014.) $)
    plycn $p |- ( F e. ( Poly ` S ) -> F e. ( CC -cn-> CC ) ) $=
      ( vz vk cply cfv wcel ccnfld ctopn ccn co cc ccncf cc0 cmul cmpt eqid a1i
      cv cn0 cdgr cfz ccoe cexp csu coeid ctopon cnfldtopon fzfid wa wf elfznn0
      coef3 ffvelrn syl2an cnmptc adantl expcn syl ctx cnmpt12f eqeltrd cncfcn1
      mulcn fsumcn syl6eleqr ) BAEFGZBHIFZVHJKZLLMKVGBCLNBUAFZUBKZDSZBUCFZFZCSV
      LUDKZOKZDUEPVICVMADBVJVMQZVJQUFVGCVKVPDVHVHLVHQZVHLUGFGZVGVHVRUHZRVGNVJUI
      VGVLVKGZUJZCVNVOOVHVHVHVHLVSWBVTRZWBCVNVHVHLLWCWCVGTLVMUKVLTGZVNLGWAVMABV
      QUMVLVJULZTLVLVMUNUOUPWBWDCLVOPVIGWAWDVGWEUQCVHVLVRURUSOVHVHUTKVHJKGWBVHV
      RVDRVAVEVBVHVRVCVF $.

    $( The degree of the zero polynomial is zero.  Note: this differs from some
       other definitions of the degree of the zero polynomial, such as
       ` -u 1 , -oo ` or undefined.  But it is convenient for us to define it
       this way, so that we have ~ dgrcl , ~ dgreq0 and ~ coeid without having
       to special-case zero, although ~ plydivalg is a little more complicated
       as a result.  (Contributed by Mario Carneiro, 22-Jul-2014.) $)
    dgr0 $p |- ( deg ` 0p ) = 0 $=
      ( c0p cdgr cfv cc cc0 csn cxp df-0p fveq2i wcel wceq 0cn 0dgr ax-mp eqtri
      ) ABCDEFGZBCZEAPBHIEDJQEKLEMNO $.

    $( The coefficients of the identity function.  (Contributed by Mario
       Carneiro, 28-Jul-2014.) $)
    coeidp $p |- ( A e. NN0 ->
      ( ( coeff ` Xp ) ` A ) = if ( A = 1 , 1 , 0 ) ) $=
      ( vz c1 cc wcel cn0 cidp ccoe cfv wceq cc0 cif ax-1cn 1nn0 cv cmpt cid co
      cres cmul cexp mptresid exp1 oveq2d mulid2 eqtrd mpteq2ia df-idp 3eqtr4ri
      coe1term mp3an12 ) CDECFEAFEAGHIIACJCKLJMNBCGACBDBOZPQDSBDCULCUARZTRZPGBD
      UBBDUNULULDEZUNCULTRULUOUMULCTULUCUDULUEUFUGUHUIUJUK $.

    $( The degree of the identity function.  (Contributed by Mario Carneiro,
       26-Jul-2014.) $)
    dgrid $p |- ( deg ` Xp ) = 1 $=
      ( vz c1 cc wcel cc0 wne cn0 cidp cdgr cfv wceq ax-1cn ax-1ne0 1nn0 cv cid
      cmpt cres co cmul mptresid oveq2d mulid2 eqtrd mpteq2ia 3eqtr4ri dgr1term
      cexp exp1 df-idp mp3an ) BCDBEFBGDHIJBKLMNABHBACAOZQPCRACBULBUHSZTSZQHACU
      AACUNULULCDZUNBULTSULUOUMULBTULUIUBULUCUDUEUJUFUGUK $.

    dgreq0.1 $e |- N = ( deg ` F ) $.
    dgreq0.2 $e |- A = ( coeff ` F ) $.
    $( The leading coefficient of a polynomial is nonzero, unless the entire
       polynomial is zero.  (Contributed by Mario Carneiro, 22-Jul-2014.)
       (Proof shortened by Fan Zheng, 21-Jun-2016.) $)
    dgreq0 $p |- ( F e. ( Poly ` S ) -> ( F = 0p <-> ( A ` N ) = 0 ) ) $=
      ( vk cfv wcel c0p wceq cc0 cn0 cxp ccoe fveq2 syl6eq wa cc wbr csn syl5eq
      cply coe0 cdgr dgr0 fveq12d 0nn0 fvconst2g mp2an coefv0 adantr cn wn cmin
      c1 co clt simpr nnred ltm1d cle caddc cuz simpll nnm1nn0 adantl cv wne wi
      cima wral dgrub 3expia ad2ant2rl simplr eqeq1d syl5ibcom necon3d cr nn0re
      jcad ad2antll nnre ad2antrl ltlend nn0z nnz zltlem1 syl2anc bitr3d sylibd
      cz wb expr ralrimiv wf coef3 ad2antrr plyco0 mpbird syl3anc peano2rem syl
      dgrlb lenltd mpbid pm2.65da wo dgrcl syl5eqel elnn0 sylib ord mpd 3eqtr2d
      fveq2d sneqd xpeq2d syl5eqr 0dgrb df-0p a1i 3eqtr4d ex impbid2 ) CBUCHIZC
      JKZDAHZLKZYHYILMLUAZNZHZLYHDLAYLYHAJOHZYLYHACOHYNFCJOPUBUDQYHDJUEHZLYHDCU
      EHZYOECJUEPUBUFQUGLMIZYQYMLKUHUHMLLMUIUJQYGYJYHYGYJRZSLCHZUAZNZSYKNZCJYRY
      TYKSYRYSLYRYSLAHZYILYGYSUUCKYJABCFUKULYRDLAYRDUMIZUNDLKZYRUUDDUPUOUQZDURT
      ZYRUUDRZDUUHDYRUUDUSUTVAUUHDUUFVBTZUUGUNUUHYGUUFMIZAUUFUPVCUQVDHVKYKKZUUI
      YGYJUUDVEUUDUUJYRDVFVGZUUHUUKGVHZAHZLVIZUUMUUFVBTZVJZGMVLZUUHUUQGMYRUUDUU
      MMIZUUQYRUUDUUSRZRZUUOUUMDVBTZDUUMVIZRZUUPUVAUUOUVBUVCYGUUSUUOUVBVJYJUUDY
      GUUSUUOUVBABCUUMDFEVMVNVOUVADUUMUUNLUVAYJDUUMKZUUNLKYGYJUUTVPUVEYIUUNLDUU
      MAPVQVRVSWBUVAUUMDURTZUVDUUPUVAUUMDUUSUUMVTIYRUUDUUMWAWCUUDDVTIZYRUUSDWDZ
      WEWFUVAUUMWMIZDWMIZUVFUUPWNUUSUVIYRUUDUUMWGWCUUDUVJYRUUSDWHWEUUMDWIWJWKWL
      WOWPUUHUUJMSAWQZUUKUURWNUULYGUVKYJUUDABCFWRWSAGUUFWTWJXAABCUUFDFEXEXBUUHD
      UUFUUDUVGYRUVHVGZUUHUVGUUFVTIUVLDXCXDXFXGXHYRUUDUUEYRDMIZUUDUUEXIYGUVMYJY
      GDYPMEBCXJXKULDXLXMXNXOZXQYGYJUSXPXRXSYRYPLKZCUUAKZYRYPDLEUVNXTYGUVOUVPWN
      YJBCYAULXGJUUBKYRYBYCYDYEYF $.

    $( Two ways to say that the degree of ` F ` is strictly less than ` N ` .
       (Contributed by Mario Carneiro, 25-Jul-2014.) $)
    dgrlt $p |- ( ( F e. ( Poly ` S ) /\ M e. NN0 ) ->
      ( ( F = 0p \/ N < M ) <-> ( N <_ M /\ ( A ` M ) = 0 ) ) ) $=
      ( cfv wcel cn0 wa c0p wceq wbr wo cle cc0 cdgr ccoe wb cply fveq2d eqcomi
      clt simpr dgr0 3eqtr4g nn0ge0 ad2antlr eqbrtrd csn cxp coe0 c0ex fvconst2
      fveq1d eqtrd jca cr wi dgrcl syl5eqel nn0red nn0re ltle syl2an imp wne wn
      dgrub 3expia lenlt syl2anr sylibd necon4ad jaodan biimpa adantrr ad2antrr
      leloe fveq2 dgreq0 simprr eqeq2d bitr4d syl5ibr orim2d mpd orcomd impbida
      ) CBUAHIZDJIZKZCLMZEDUDNZOEDPNZDAHZQMZKZWMWNWSWOWMWNKZWPWRWTEQDPWTCRHZLRH
      ZEQWTCLRWMWNUEZUBFXBQUFUCUGWLQDPNWKWNDUHUIUJWTWQDJQUKULZHZQWTDAXDWTCSHLSH
      ZAXDWTCLSXCUBGXFXDUMUCUGUPWLXEQMWKWNJQDUNUOUIUQURWMWOKWPWRWMWOWPWKEUSIZDU
      SIZWOWPUTWLWKEWKEXAJFBCVAVBVCZDVDZEDVEVFVGWMWOWRWMWOWQQWMWQQVHZDEPNZWOVIZ
      WKWLXKXLABCDEGFVJVKWLXHXGXLXMTWKXJXIDEVLVMVNVOVGURVPWMWSKZWOWNXNWOEDMZOZW
      OWNOWMWPXPWRWMWPXPWKXGXHWPXPTWLXIXJEDVTVFVQVRXNXOWNWOXOWNXNEAHZWQMZEDAWAX
      NWNXQQMZXRWKWNXSTWLWSABCEFGWBVSXNWQQXQWMWPWRWCWDWEWFWGWHWIWJ $.
  $}

  ${
    $d k n F $.  $d k n G $.  $d k M $.  $d k n N $.  $d k n S $.
    dgradd.1 $e |- M = ( deg ` F ) $.
    dgradd.2 $e |- N = ( deg ` G ) $.
    $( The degree of a sum of polynomials is at most the maximum of the
       degrees.  (Contributed by Mario Carneiro, 24-Jul-2014.) $)
    dgradd $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) ->
                   ( deg ` ( F oF + G ) ) <_ if ( M <_ N , N , M ) ) $=
      ( cply cfv wcel wa caddc cof co ccoe wceq cdgr cle wbr eqid cif coeaddlem
      simprd ) BAHIZJCUDJKBCLMZNZOIBOIZCOIZUENPUFQIDERSEDUARSUGUHABCDEUGTUHTFGU
      BUC $.

    $( The degree of a sum of polynomials of unequal degrees is the degree of
       the larger polynomial.  (Contributed by Mario Carneiro, 24-Jul-2014.) $)
    dgradd2 $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) /\ M < N ) ->
                    ( deg ` ( F oF + G ) ) = N ) $=
      ( cfv wcel wbr caddc co cdgr wceq cle cc cn0 cc0 wne eqid clt w3a cof cif
      plyaddcl 3adant3 dgrcl syl nn0red syl5eqel 3ad2ant2 3ad2ant1 ifcld dgradd
      cply cr leidd simp3 ltled breq1 ifboth syl2anc letrd coeadd fveq1d cvv wf
      wfn coef3 ffn nn0ex a1i inidm wn ltnled mpbid simp1 dgrub 3expia necon1bd
      ccoe wi adantr wa eqidd ofval mpdan ffvelrnd addid2d 3eqtrd simp2 nn0ge0d
      mpd 0red lelttrd gt0ne0d dgreq0 fveq2 dgr0 eqcomi 3eqtr4g syl6bir necon3d
      c0p sylc eqnetrd syl3anc letri3d mpbir2and ) BAUOHZIZCXJIZDEUAJZUBZBCKUCZ
      LZMHZENXQEOJEXQOJZXNXQDEOJZEDUDZEXNXQXNXPPUOHIZXQQIXKXLYAXMABCUEUFZPXPUGU
      HUIZXNXSEDUPXNEXLXKEQIZXMXLECMHZQGACUGUJUKZUIZXNDXKXLDQIXMXKDBMHQFABUGUJU
      LZUIZUMYGXKXLXQXTOJXMABCDEFGUNUFXNEEOJZXSXTEOJZXNEYGUQXNDEYIYGXKXLXMURZUS
      XSYJXSYKEDEXTEOUTDXTEOUTVAVBVCXNYAYDEXPWAHZHZRSXRYBYFXNYNECWAHZHZRXNYNEBW
      AHZYOXOLZHZRYPKLZYPXNEYMYRXKXLYMYRNXMYQYOABCYQTZYOTZVDUFVEXNYDYSYTNYFXNQQ
      RYPKQYQYOVFVFEXNQPYQVGZYQQVHXKXLUUCXMYQABUUAVIULQPYQVJUHXNQPYOVGZYOQVHXLX
      KUUDXMYOACUUBVIUKZQPYOVJUHQVFIXNVKVLZUUFQVMXNEYQHZRNZYDXNEDOJZVNZUUHXNXMU
      UJYLXNDEYIYGVOVPXNUUIUUGRXNXKYDUUGRSZUUIWBXKXLXMVQYFXKYDUUKUUIYQABEDUUAFV
      RVSVBVTWMWCXNYDWDYPWEWFWGXNYPXNQPEYOUUEYFWHWIWJXNXLERSYPRSXKXLXMWKXNEXNRD
      EXNWNYIYGXNDYHWLYLWOWPXLYPRERXLYPRNCXDNZERNYOACEGUUBWQUULYEXDMHZERCXDMWRG
      UUMRWSWTXAXBXCXEXFYMPXPEXQYMTXQTVRXGXNXQEYCYGXHXI $.

    $( The degree of a product of polynomials is at most the sum of degrees.
       (Contributed by Mario Carneiro, 24-Jul-2014.) $)
    dgrmul2 $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) ->
                    ( deg ` ( F oF x. G ) ) <_ ( M + N ) ) $=
      ( vn vk cply cfv wcel wa cmul cof co ccoe cn0 cv eqid cmin cmpt wceq cdgr
      cc0 cfz csu caddc cle wbr coemullem simprd ) BAJKZLCUMLMBCNOPZQKHRUEHSZUF
      PISZBQKZKUOUPUAPCQKZKNPIUGUBUCUNUDKDEUHPUIUJUQURAIHBCDEUQTURTFGUKUL $.

    $( The degree of a product of nonzero polynomials is the sum of degrees.
       (Contributed by Mario Carneiro, 24-Jul-2014.) $)
    dgrmul $p |- ( ( ( F e. ( Poly ` S ) /\ F =/= 0p ) /\
                     ( G e. ( Poly ` S ) /\ G =/= 0p ) ) ->
                   ( deg ` ( F oF x. G ) ) = ( M + N ) ) $=
      ( cfv wcel c0p wne wa co cdgr ad2ant2r cc cn0 ccoe cc0 eqid cply cmul cof
      caddc cle wbr dgrmul2 plymulcl dgrcl syl5eqel ad2antrr ad2antrl nn0addcld
      coemulhi wf coef3 ffvelrnd dgreq0 necon3bid biimpa adantr mulne0d eqnetrd
      wceq adantl dgrub syl3anc syl nn0red letri3d mpbir2and ) BAUAHZIZBJKZLZCV
      LIZCJKZLZLZBCUBUCMZNHZDEUDMZVDWAWBUEUFZWBWAUEUFZVMVPWCVNVQABCDEFGUGOVSVTP
      UAHIZWBQIWBVTRHZHZSKWDVMVPWEVNVQABCUHOZVSDEVMDQIVNVRVMDBNHQFABUIUJUKZVPEQ
      IVOVQVPECNHQGACUIUJULZUMZVSWGDBRHZHZECRHZHZUBMZSVMVPWGWPVDVNVQWLWNABCDEWL
      TZWNTZFGUNOVSWMWOVSQPDWLVMQPWLUOVNVRWLABWQUPUKWIUQVSQPEWNVPQPWNUOVOVQWNAC
      WRUPULWJUQVOWMSKZVRVMVNWSVMBJWMSWLABDFWQURUSUTVAVRWOSKZVOVPVQWTVPCJWOSWNA
      CEGWRURUSUTVEVBVCWFPVTWBWAWFTWATVFVGVSWAWBVSWAVSWEWAQIWHPVTUIVHVIVSWBWKVI
      VJVK $.
  $}

  $( Scalar multiplication by a nonzero constant does not change the degree of
     a function.  (Contributed by Mario Carneiro, 24-Jul-2014.) $)
  dgrmulc $p |- ( ( A e. CC /\ A =/= 0 /\ F e. ( Poly ` S ) ) ->
                  ( deg ` ( ( CC X. { A } ) oF x. F ) ) = ( deg ` F ) ) $=
    ( cc wcel cc0 wne cply cfv csn cxp cmul cdgr wceq c0p fveq2d dgr0 caddc 0cn
    co w3a cof oveq2 fveq2 syl6eq eqeq12d wa wss ssid simpl1 plyconst fvconst2g
    sylancr sylancl simpl2 ne0p plyssc simpl3 sseldi simpr eqid dgrmul syl22anc
    eqnetrd 0dgr syl oveq1d cn0 dgrcl nn0cnd addid2d 3eqtrd cvv a1i simp1 ofc12
    cnex mul01d sneqd xpeq2d eqtrd df-0p oveq2i 3eqtr4g pm2.61ne ) ADEZAFGZCBHI
    ZEZUAZDAJKZCLUBZTZMIZCMIZNWKOWLTZMIZFNCOCONZWNWQWOFWRWMWPMCOWKWLUCPWRWOOMIZ
    FCOMUDQUEUFWJCOGZUGZWNWKMIZWORTZFWORTWOXAWKDHIZEZWKOGZCXDEWTWNXCNXADDUHWFXE
    DUIWFWGWIWTUJZADUKUMXAFDEZFWKIZFGXFSXAXIAFXAWFXHXIANXGSDAFDULUNWFWGWIWTUOVD
    FWKUPUMXAWHXDCBUQWFWGWIWTURZUSWJWTUTDWKCXBWOXBVAWOVAVBVCXAXBFWORXAWFXBFNXGA
    VEVFVGXAWOXAWOXAWIWOVHEXJBCVIVFVJVKVLWJWQWSFWJWPOMWJWKDFJZKZWLTZXLWPOWJXMDA
    FLTZJZKXLWJDAFLVMDDDVMEWJVQVNWFWGWIVOZXHWJSVNVPWJXOXKDWJXNFWJAXPVRVSVTWAOXL
    WKWLWBWCWBWDPQUEWE $.

  ${
    dgrsub.1 $e |- M = ( deg ` F ) $.
    dgrsub.2 $e |- N = ( deg ` G ) $.
    $( The degree of a difference of polynomials is at most the maximum of the
       degrees.  (Contributed by Mario Carneiro, 26-Jul-2014.) $)
    dgrsub $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) ->
                   ( deg ` ( F oF - G ) ) <_ if ( M <_ N , N , M ) ) $=
      ( cply cfv wcel cc cof co cdgr cle wbr cif sseli neg1cn wceq cneg csn cxp
      wa cmul caddc cmin plyssc wss ssid plyconst mp2an plymulcl sylancr dgradd
      c1 eqid syl2an wf plyf cvv ofnegsub mp3an1 fveq2d cc0 wne neg1ne0 dgrmulc
      cnex mp3an12 syl6eqr adantl breq2d ifbieq1d 3brtr3d ) BAHIZJZCVPJZUDZBKUP
      UAZUBUCZCUELMZUFLMZNIZDWBNIZOPZWEDQZBCUGLMZNIDEOPZEDQOVQBKHIZJWBWJJZWDWGO
      PVRVPWJBAUHZRVRWAWJJZCWJJWKKKUIVTKJZWMKUJSVTKUKULVPWJCWLRKWACUMUNKBWBDWEF
      WEUQUOURVSWCWHNVQKKBUSZKKCUSZWCWHTZVRABUTACUTKVAJWOWPWQVIKBCVAVBVCURVDVSW
      FWIWEEDVSWEEDOVRWEETVQVRWECNIZEWNVTVEVFVRWEWRTSVGVTACVHVJGVKVLZVMWSVNVO
      $.
  $}

  ${
    $d d w x y z G $.  $d x y M $.  $d d y N $.  $d d w x y z ph $.
    dgrcolem1.1 $e |- N = ( deg ` G ) $.
    dgrcolem1.2 $e |- ( ph -> M e. NN ) $.
    dgrcolem1.3 $e |- ( ph -> N e. NN ) $.
    dgrcolem1.4 $e |- ( ph -> G e. ( Poly ` S ) ) $.
    $( The degree of a composition of a monomial with a polynomial.
       (Contributed by Mario Carneiro, 15-Sep-2014.) $)
    dgrcolem1 $p |- ( ph ->
      ( deg ` ( x e. CC |-> ( ( G ` x ) ^ M ) ) ) = ( M x. N ) ) $=
      ( wcel cc cfv cexp co cdgr cmul wceq adantr c0p vy vd vz vw cn cv cmpt wi
      c1 caddc oveq2 mpteq2dv fveq2d oveq1 eqeq12d imbi2d wa cply syl ffvelrnda
      plyf exp1d mpteq2dva feqmptd eqtr4d syl6eqr nncnd mulid2d cof adantlr cn0
      wf nnnn0 adantl expp1d cvv cnex a1i ovexd eqidd offval2 nncn 1cnd adddird
      oveq2d eqtrd wne ccom fmptco wss plypow syl3anc plyssc sseldi addcl mulcl
      ssid plyco eqeltrrd cc0 simpr nnmulcld nnne0d eqnetrd dgr0 syl6eq necon3i
      fveq2 syl5eq eqid dgrmul syl22anc ex expcom a2d nnind mpcom ) EUEKABLBUFZ
      DMZENOZUGZPMZEFQOZRZHABLXSUAUFZNOZUGZPMZYEFQOZRZUHABLXSUINOZUGZPMZUIFQOZR
      ZUHABLXSUBUFZNOZUGZPMZYPFQOZRZUHABLXSYPUIUJOZNOZUGZPMZUUBFQOZRZUHAYDUHUAU
      BEYEUIRZYJYOAUUHYHYMYIYNUUHYGYLPUUHBLYFYKYEUIXSNUKULUMYEUIFQUNUOUPYEYPRZY
      JUUAAUUIYHYSYIYTUUIYGYRPUUIBLYFYQYEYPXSNUKULUMYEYPFQUNUOUPYEUUBRZYJUUGAUU
      JYHUUEYIUUFUUJYGUUDPUUJBLYFUUCYEUUBXSNUKULUMYEUUBFQUNUOUPYEERZYJYDAUUKYHY
      BYIYCUUKYGYAPUUKBLYFXTYEEXSNUKULUMYEEFQUNUOUPAYMFYNAYMDPMZFAYLDPAYLBLXSUG
      ZDABLYKXSAXRLKZUQXSALLXRDADCURMZKZLLDVLJCDVAUSZUTZVBVCABLLDUUQVDZVEUMGVFA
      FAFIVGZVHVEYPUEKZAUUAUUGAUVAUUAUUGUHAUVAUQZUUAUUGUVBUUAUQZUUEYRDQVIOZPMZU
      UFUVBUUEUVERUUAUVBUUDUVDPUVBUUDBLYQXSQOZUGUVDUVBBLUUCUVFUVBUUNUQZXSYPAUUN
      XSLKUVAUURVJZUVBYPVKKZUUNUVAUVIAYPVMVNZSVOVCUVBBLYQXSQYRDVPVPLLVPKUVBVQVR
      UVGXSYPNVSUVHUVBYRVTADUUMRUVAUUSSZWAVEUMSUVCUUFYTFUJOZUVEUVBUUFUVLRUUAUVB
      UUFYTYNUJOUVLUVBYPUIFUVAYPLKAYPWBVNUVBWCZAFLKUVAUUTSZWDUVBYNFYTUJUVBFUVNV
      HWEWFSUVCUVEYSFUJOZUVLUVCYRLURMZKZYRTWGZDUVPKZDTWGZUVEUVORUVBUVQUUAUVBUAL
      YEYPNOZUGZDWHYRUVPUVBBUALLXSUWAYQDUWBUVHUVKUVBUWBVTYEXSYPNUNWIUVBUCUDLUWB
      DUVBLLWJZUILKUVIUWBUVPKUWCUVBLWQVRUVMUVJUALYPWKWLUVBUUOUVPDCWMAUUPUVAJSWN
      ZUCUFZLKUDUFZLKUQZUWEUWFUJOLKUVBUWEUWFWOVNUWGUWEUWFQOLKUVBUWEUWFWPVNWRWSS
      UVCYSWTWGUVRUVCYSYTWTUVBUUAXAUVBYTWTWGUUAUVBYTUVBYPFAUVAXAAFUEKUVAISXBXCS
      XDYRTYSWTYRTRYSTPMZWTYRTPXHXEXFXGUSUVBUVSUUAUWDSUVBUVTUUAAUVTUVAAFWTWGUVT
      AFIXCDTFWTDTRZFUULWTGUWIUULUWHWTDTPXHXEXFXIXGUSSSLYRDYSFYSXJGXKXLUUAUVOUV
      LRUVBYSYTFUJUNVNWFVEVEXMXNXOXPXQ $.
  $}

  ${
    $d f w x y z A $.  $d f w x y z F $.  $d f w x y z M $.  $d d f g h x N $.
    $d f D $.  $d d f g h w x y z G $.  $d d f h w x y z ph $.
    dgrco.1 $e |- M = ( deg ` F ) $.
    dgrco.2 $e |- N = ( deg ` G ) $.
    dgrco.3 $e |- ( ph -> F e. ( Poly ` S ) ) $.
    dgrco.4 $e |- ( ph -> G e. ( Poly ` S ) ) $.
    ${
      dgrco.5 $e |- A = ( coeff ` F ) $.
      dgrco.6 $e |- ( ph -> D e. NN0 ) $.
      dgrco.7 $e |- ( ph -> M = ( D + 1 ) ) $.
      dgrco.8 $e |- ( ph -> A. f e. ( Poly ` CC ) ( ( deg ` f ) <_ D ->
        ( deg ` ( f o. G ) ) = ( ( deg ` f ) x. N ) ) ) $.
      $( Lemma for ~ dgrco .  (Contributed by Mario Carneiro, 15-Sep-2014.) $)
      dgrcolem2 $p |- ( ph -> ( deg ` ( F o. G ) ) = ( M x. N ) ) $=
        ( wcel cfv cc vx vy vz vw cn ccom cdgr cmul co wceq cc0 wa cv cexp cmin
        cmpt caddc cof cply wf syl ffvelrnda syldan cn0 coef3 syl5eqel ffvelrnd
        plyf dgrcl adantr expcld mulcld npcand mpteq2dva cvv a1i subcld offval2
        cnex eqidd feqmptd fveq2 fmptco 3eqtr4rd fveq2d clt plyssc sseldi addcl
        wbr adantl mulcl plyco oveq1 oveq2d ssid eqid ply1term syl3anc eqeltrrd
        wss plysubcl syl2anc c1 nn0p1nn eqeltrd nngt0d syl6eq breq1d syl5ibrcom
        c0p dgr0 idd wo cle ccoe cif dgrsub wne nnne0d wb dgreq0 syl5eq syl6bir
        necon3d mpd dgr1term breqtrd wfn ffn 3eqtrd nn0red mpbid eqtr3d csn cxp
        cr wi fconstmpt simpr ifeq1d coesub fveq1d nn0ex inidm coe1term iftruei
        ifid ofval mpdan subidd dgrlt mpbir2and mpjaod nnre ltmul1 syl112anc id
        nngt0 expcl syl2anr oveq12d wral nn0leltp1 mpbird coeq1 eqeq12d imbi12d
        oveq1d rspcv syl3c 1cnd dgrmulc dgrcolem1 eqtrd 3brtr4d dgradd2 ffvelrn
        plypow sylancl 0dgr nn0cnd mul01d eqtr4d ad2antrr syl5eqr 0dgrb syl6eqr
        0cn 3eqtr4d elnn0 sylib mpjaodan ) AIUERZFGUFZUGSZHIUHUIZUJIUKUJZAUWNUL
        ZUWPUATUAUMZGSZFSZHBSZUXAHUNUIZUHUIZUOUIZUPZUATUXEUPZUQURUIZUGSZUXHUGSZ
        UWQAUWPUXJUJUWNAUWOUXIUGAUATUXFUXEUQUIZUPUATUXBUPUXIUWOAUATUXLUXBAUWTTR
        ZULZUXBUXEAUXMUXATRUXBTRATTUWTGAGDUSSZRZTTGUTZMDGVHVAZVBZATTUXAFAFUXORZ
        TTFUTLDFVHVAZVBVCZUXNUXCUXDAUXCTRZUXMAVDTHBAUXTVDTBUTZLBDFNVEVAZAHFUGSZ
        VDJAUXTUYFVDRLDFVIVAVFZVGZVJZUXNUXAHUXSAHVDRZUXMUYGVJVKZVLZVMVNAUATUXFU
        XEUQUXGUXHVOTTTVORAVSVPZUXNUXBUXEUYBUYLVQUYLAUXGVTAUXHVTZVRAUAUBTTUXAUB
        UMZFSZUXBGFUXSAUATTGUXRWAZAUBTTFUYAWAZUYOUXAFWBZWCZWDWEVJUWSUXGTUSSZRZU
        XHVUARZUXGUGSZUXKWFWJUXJUXKUJAVUBUWNAUWOUXHUOURZUIZUXGVUAAUATUXBUXEUOUW
        OUXHVOTTUYMUYBUYLUYTUYNVRAUWOVUARVUCVUFVUARAUCUDTFGAUXOVUAFDWGZLWHZAUXO
        VUAGVUGMWHZUCUMZTRUDUMZTRULZVUJVUKUQUITRAVUJVUKWIWKZVULVUJVUKUHUITRAVUJ
        VUKWLWKZWMAUBTUXCUYOHUNUIZUHUIZUPZGUFUXHVUAAUAUBTTUXAVUPUXEGVUQUXSUYQAV
        UQVTZUYOUXAUJZVUOUXDUXCUHUYOUXAHUNWNZWOZWCAUCUDTVUQGATTXAZUYCUYJVUQVUAR
        ZVVBATWPVPZUYHUYGUBUXCTVUQHVUQWQZWRWSZVUIVUMVUNWMWTZTUWOUXHXBXCWTVJAVUC
        UWNVVGVJUWSFVUQVUEUIZUGSZIUHUIZUWQVUDUXKWFUWSVVIHWFWJZVVJUWQWFWJZAVVKUW
        NAVVHXKUJZVVKVVKAVVKVVMUKHWFWJAHAHCXDUQUIZUEPACVDRZVVNUEROCXEVAXFZXGVVM
        VVIUKHWFVVMVVIXKUGSZUKVVHXKUGWBXLXHXIXJAVVKXMAVVMVVKXNZVVIHXOWJZHVVHXPS
        ZSZUKUJZAVVIHVUQUGSZXOWJZVWCHXQZHXOAFVUARZVVCVVIVWEXOWJVUHVVFTFVUQHVWCJ
        VWCWQXRXCAVWEVWDHHXQHAVWDVWCHHAUYCUXCUKXSZUYJVWCHUJUYHAHUKXSVWGAHVVPXTA
        UXCUKHUKAUXCUKUJZFXKUJZHUKUJAUXTVWIVWHYALBDFHJNYBVAVWIHUYFUKJVWIUYFVVQU
        KFXKUGWBXLXHYCYDYEYFZUYGUBUXCVUQHVVEYGWSUUAVWDHUUHXHYHAVWAHBVUQXPSZVUEU
        IZSZUXCUXCUOUIZUKAHVVTVWLAVWFVVCVVTVWLUJVUHVVFBVWKTFVUQNVWKWQZUUBXCUUCA
        UYJVWMVWNUJUYGAVDVDUXCUXCUOVDBVWKVOVOHAUYDBVDYIUYEVDTBYJVAAVDTVWKUTZVWK
        VDYIAVVCVWPVVFVWKTVUQVWOVEVAVDTVWKYJVAVDVORAUUDVPZVWQVDUUEAUYJULUXCVTAH
        VWKSZUXCUJUYJAVWRHHUJZUXCUKXQZUXCAUYCUYJUYJVWRVWTUJUYHUYGUYGUBUXCVUQHHV
        VEUUFWSVWSUXCUKHWQUUGXHVJUUIUUJAUXCUYHUUKYKAVVHVUARZUYJVVRVVSVWBULYAAVW
        FVVCVXAVUHVVFTFVUQXBXCZUYGVVTTVVHHVVIVVIWQVVTWQUULXCUUMUUNZVJUWSVVIYQRZ
        HYQRZIYQRZUKIWFWJZVVKVVLYAAVXDUWNAVVIAVXAVVIVDRZVXBTVVHVIVAZYLVJAVXEUWN
        AHUYGYLVJUWNVXFAIUUOWKUWNVXGAIUUSWKVVIHIUUPUUQYMAVUDVVJUJUWNAVVHGUFZUGS
        ZVUDVVJAVXJUXGUGAUAUBTTUXAUYPVUPUOUIUXFGVVHUXSUYQAUBTUYPVUPUOFVUQVOTTUY
        MATTUYOFUYAVBAUYOTRZULUXCVUOAUYCVXLUYHVJVXLVXLUYJVUOTRAVXLUURUYGUYOHUUT
        UVAVLUYRVURVRVUSUYPUXBVUPUXEUOUYSVVAUVBWCWEAVXAEUMZUGSZCXOWJZVXMGUFZUGS
        ZVXNIUHUIZUJZYRZEVUAUVCVVICXOWJZVXKVVJUJZVXBQAVYAVVIVVNWFWJZAVVIHVVNWFV
        XCPYHAVXHVVOVYAVYCYAVXIOVVICUVDXCUVEVXTVYAVYBYREVVHVUAVXMVVHUJZVXOVYAVX
        SVYBVYDVXNVVICXOVXMVVHUGWBZXIVYDVXQVXKVXRVVJVYDVXPVXJUGVXMVVHGUVFWEVYDV
        XNVVIIUHVYEUVIUVGUVHUVJUVKYNVJUWSUXKUATUXDUPZUGSZUWQAUXKVYGUJUWNATUXCYO
        YPZVYFUHURUIZUGSZUXKVYGAVYIUXHUGAUATUXCUXDUHVYHVYFVOTTUYMUYIUYKVYHUATUX
        CUPUJAUATUXCYSVPAVYFVTVRWEAUYCVWGVYFVUARVYJVYGUJUYHVWJAUBTVUOUPZGUFVYFV
        UAAUAUBTTUXAVUOUXDGVYKUXSUYQAVYKVTVUTWCAUCUDTVYKGAVVBXDTRUYJVYKVUARVVDA
        UVLUYGUBTHUVSWSVUIVUMVUNWMWTUXCTVYFUVMWSYNVJUWSUADGHIKAHUERUWNVVPVJAUWN
        YTAUXPUWNMVJUVNUVOZUVPTUXGUXHVUDUXKVUDWQUXKWQUVQWSVYLYKAUWRULZTUKGSZFSZ
        YOYPZUGSZHUKUHUIZUWPUWQAVYQVYRUJUWRAVYQUKVYRAVYOTRVYQUKUJATTVYNFUYAAUXQ
        UKTRVYNTRZUXRUWITTUKGUVRUVTZVGVYOUWAVAAHAHUYGUWBUWCUWDVJVYMUWOVYPUGVYMU
        WOUATVYOUPVYPVYMUAUBTTVYNUYPVYOGFAVYSUWRUXMVYTUWEVYMGTVYNYOYPZUATVYNUPV
        YMGUGSZUKUJZGWUAUJZVYMWUBIUKKAUWRYTZUWFAWUCWUDYAZUWRAUXPWUFMDGUWGVAVJYM
        UATVYNYSXHAFUBTUYPUPUJUWRUYRVJUYOVYNFWBWCUATVYOYSUWHWEVYMIUKHUHWUEWOUWJ
        AIVDRUWNUWRXNAIWUBVDKAUXPWUBVDRMDGVIVAVFIUWKUWLUWM $.
    $}

    $( The degree of a composition of two polynomials is the product of the
       degrees.  (Contributed by Mario Carneiro, 15-Sep-2014.) $)
    dgrco $p |- ( ph -> ( deg ` ( F o. G ) ) = ( M x. N ) ) $=
      ( vf cc cfv wcel cdgr cle wbr wceq wi cc0 vx vd vy vg cply ccom cmul wral
      vh cv co plyssc sseldi cn0 dgrcl syl syl5eqel caddc imbi1d ralbidv imbi2d
      c1 breq2 wa nn0cnd adantr mul02d simprr ad2antrl nn0ge0d cr wb nn0red 0re
      letri3 sylancl mpbir2and oveq1d 3eqtr4d csn cmpt fconstmpt 0dgrb mpbid wf
      cxp plyf ffvelrnda feqmptd syl6eq eqidd fmptco 3eqtr4a fveq2d eqtr2d expr
      ralrimiva fveq2 breq1d coeq1 eqeq12d imbi12d cbvralv clt nn0p1nn ad2antlr
      wo cn nnred leloed simplr nn0leltp1 syl2anc rspcva adantl sylbird simprll
      ccoe eqid ad2antrr simprlr sylib dgrcolem2 sylbid ralrimdva syl5bi expcom
      jaod a2d nn0ind mpcom leidd syl6eqr rspcv syl3c ) ACLUEMZNKUJZOMZEPQZYQDU
      FZOMZYRFUGUKZRZSZKYPUHZEEPQZCDUFZOMZEFUGUKZRZABUEMZYPCBULZIUMEUNNAUUEAECO
      MZUNGACUUKNUUMUNNIBCUOUPUQZAYRUAUJZPQZUUCSZKYPUHZSAYRTPQZUUCSZKYPUHZSAYRU
      BUJZPQZUUCSZKYPUHZSAYRUVBVBURUKZPQZUUCSZKYPUHZSAUUESUAUBEUUOTRZUURUVAAUVJ
      UUQUUTKYPUVJUUPUUSUUCUUOTYRPVCUSUTVAUUOUVBRZUURUVEAUVKUUQUVDKYPUVKUUPUVCU
      UCUUOUVBYRPVCUSUTVAUUOUVFRZUURUVIAUVLUUQUVHKYPUVLUUPUVGUUCUUOUVFYRPVCUSUT
      VAUUOERZUURUUEAUVMUUQUUDKYPUVMUUPYSUUCUUOEYRPVCUSUTVAAUUTKYPAYQYPNZUUSUUC
      AUVNUUSVDZVDZUUBYRUUAUVPTFUGUKTUUBYRUVPFAFLNUVOAFAFDOMZUNHADUUKNZUVQUNNJB
      DUOUPUQVEVFVGUVPYRTFUGUVPYRTRZUUSTYRPQZAUVNUUSVHUVPYRUVNYRUNNZAUUSLYQUOZV
      IZVJUVPYRVKNTVKNUVSUUSUVTVDVLUVPYRUWCVMVNYRTVOVPVQZVRUWDVSUVPYQYTOUVPLTYQ
      MZVTWFZUCLUWEWAYQYTUCLUWEWBUVPUVSYQUWFRZUWDUVNUVSUWGVLAUUSLYQWCVIWDZUVPUC
      UALLUCUJZDMZUWEUWEDYQUVPLLUWIDUVPUVRLLDWEAUVRUVOJVFBDWGUPZWHUVPUCLLDUWKWI
      UVPYQUWFUALUWEWAUWHUALUWEWBWJUUOUWJRUWEWKWLWMWNWOWPWQUVBUNNZAUVEUVIAUWLUV
      EUVISUVEUDUJZOMZUVBPQZUWMDUFZOMZUWNFUGUKZRZSZUDYPUHZAUWLVDZUVIUVDUWTKUDYP
      YQUWMRZUVCUWOUUCUWSUXCYRUWNUVBPYQUWMOWRZWSUXCUUAUWQUUBUWRUXCYTUWPOYQUWMDW
      TWNUXCYRUWNFUGUXDVRXAXBXCUXBUXAUVHKYPUXBUVNUXAUVHUXBUVNUXAVDZVDZUVGYRUVFX
      DQZYRUVFRZXGUUCUXFYRUVFUXFYRUVNUWAUXBUXAUWBVIZVMUXFUVFUWLUVFXHNAUXEUVBXEX
      FXIXJUXFUXGUUCUXHUXFUXGUVCUUCUXFUWAUWLUVCUXGVLUXIAUWLUXEXKYRUVBXLXMUXEUVD
      UXBUWTUVDUDYQYPUWMYQRZUWOUVCUWSUUCUXJUWNYRUVBPUWMYQOWRZWSUXJUWQUUAUWRUUBU
      XJUWPYTOUWMYQDWTWNUXJUWNYRFUGUXKVRXAXBXNXOXPUXBUXEUXHUUCUXBUXEUXHVDZVDZYQ
      XRMZUVBLUIYQDYRFYRXSHUXBUVNUXAUXHXQADYPNUWLUXLAUUKYPDUULJUMXTUXNXSAUWLUXL
      XKUXBUXEUXHVHUXMUXAUIUJZOMZUVBPQZUXODUFZOMZUXPFUGUKZRZSZUIYPUHUXBUVNUXAUX
      HYAUWTUYBUDUIYPUWMUXORZUWOUXQUWSUYAUYCUWNUXPUVBPUWMUXOOWRZWSUYCUWQUXSUWRU
      XTUYCUWPUXROUWMUXODWTWNUYCUWNUXPFUGUYDVRXAXBXCYBYCWPYHYDWPYEYFYGYIYJYKAEA
      EUUNVMYLUUDUUFUUJSKCYPYQCRZYSUUFUUCUUJUYEYREEPUYEYRUUMEYQCOWRGYMZWSUYEUUA
      UUHUUBUUIUYEYTUUGOYQCDWTWNUYEYREFUGUYFVRXAXBYNYO $.
  $}

  ${
    $d k x z A $.  $d k x z F $.  $d k x z N $.  $d k x z ph $.  $d k x z S $.
    plycj.1 $e |- N = ( deg ` F ) $.
    plycj.2 $e |- G = ( ( * o. F ) o. * ) $.
    ${
      plycjlem.3 $e |- A = ( coeff ` F ) $.
      $( Lemma for ~ plycj and ~ coecj .  (Contributed by Mario Carneiro,
         24-Jul-2014.) $)
      plycjlem $p |- ( F e. ( Poly ` S ) -> G = ( z e. CC |->
        sum_ k e. ( 0 ... N ) ( ( ( * o. A ) ` k ) x. ( z ^ k ) ) ) ) $=
        ( vx cfv wcel cc co ccj cexp cmul csu syl2an cply cc0 cv cmpt ccom cjcl
        cfz adantl wf cjf a1i feqmptd wa fzfid cn0 coef3 adantr elfznn0 ffvelrn
        expcl sylan2 adantll mulcld fsumcl coeid fveq2 fmptco wceq oveq1 oveq2d
        sumeq2sdv fveq2d syl5eq fsumcj cjmuld fvco3 cjcj ad2antlr oveq1d eqtr2d
        cjexp oveq12d eqtr4d sumeq2dv eqtrd mpteq2dva ) ECUALMZFANUBGUGOZDUCZBL
        ZAUCZPLZWIQOZROZDSZPLZUDZANWHWIPBUELZWKWIQOZROZDSZUDWGFPEUEZPUEWQIWGAKN
        NWLWHWJKUCZWIQOZROZDSZPLZWPPXBWKNMZWLNMZWGWKUFUHZWGANNPNNPUIWGUJUKULZWG
        KANNXFWLXGEPWGXCNMZUMZWHXEDXMUBGUNXMWIWHMZUMWJXDXMUONBUIZWIUOMZWJNMZXNW
        GXOXLBCEJUPZUQWIGURZUONWIBUSZTXLXNXDNMZWGXNXLXPYAXSXCWIUTVAVBVCVDKBCDEG
        JHVEXKWKXFPVFVGXCWLVHZXFWOPYBWHXEWNDYBXDWMWJRXCWLWIQVIVJVKVLVGVMWGANWPX
        AWGXHUMZWPWHWNPLZDSXAYCWHWNDYCUBGUNYCXNUMZWJWMYCXOXPXQXNWGXOXHXRUQZXSXT
        TZYCXIXPWMNMXNXJXSWLWIUTTZVCVNYCWHYDWTDYEYDWJPLZWMPLZROWTYEWJWMYGYHVOYE
        WRYIWSYJRYCXOXPWRYIVHXNYFXSUONWIPBVPTYEYJWLPLZWIQOZWSYCXIXPYJYLVHXNXJXS
        WLWIWATYEYKWKWIQXHYKWKVHWGXNWKVQVRVSVTWBWCWDWEWFWE $.
    $}

    ${
      plycj.3 $e |- ( ( ph /\ x e. S ) -> ( * ` x ) e. S ) $.
      plycj.4 $e |- ( ph -> F e. ( Poly ` S ) ) $.
      $( The double conjugation of a polynomial is a polynomial.  (The single
         conjugation is not because our definition of polynomial includes only
         holomorphic functions, i.e. no dependence on ` ( * `` z ) `
         independently of ` z ` .)  (Contributed by Mario Carneiro,
         24-Jul-2014.) $)
      plycj $p |- ( ph -> G e. ( Poly ` S ) ) $=
        ( vz vk cc0 cfv cc ccj wcel wceq syl cn0 csn cun cply co ccoe ccom cexp
        cfz cv cmul csu cmpt eqid plycjlem wss plybss 0cnd snssd unssd syl5eqel
        cdgr dgrcl wa wf coef elfznn0 fvco3 syl2an ffvelrn wi wo wral ralrimiva
        fveq2 eleq1d rspccv fveq2d cj0 syl6eq fvex elsn sylibr a1i orim12d elun
        elsni 3imtr4g adantr mpd eqeltrd elplyd plyun0 syl6eleq ) AECMUAZUBZUCN
        ZCUCNZAEKOMFUHUDZLUIZPDUENZUFNZKUIWSUGUDUJUDLUKULZWPADWQQZEXBRJKWTCLDEF
        GHWTUMZUNSAKXAWOLFACWNOAXCCOUOJCDUPSAMOAUQURUSAFDVANZTGAXCXETQJCDVBSUTA
        WSWRQZVCZXAWSWTNZPNZWOATWOWTVDZWSTQZXAXIRXFAXCXJJWTCDXDVESZWSFVFZTWOWSP
        WTVGVHXGXHWOQZXIWOQZAXJXKXNXFXLXMTWOWSWTVIVHAXNXOVJXFAXHCQZXHWNQZVKXICQ
        ZXIWNQZVKXNXOAXPXRXQXSABUIZPNZCQZBCVLXPXRVJAYBBCIVMYBXRBXHCXTXHRYAXICXT
        XHPVNVOVPSXQXSVJAXQXIMRXSXQXIMPNMXQXHMPXHMWFVQVRVSXIMXHPVTWAWBWCWDXHCWN
        WEXICWNWEWGWHWIWJWKWJCWLWM $.
    $}

    coecj.3 $e |- A = ( coeff ` F ) $.
    $( Double conjugation of a polynomial causes the coefficients to be
       conjugated.  (Contributed by Mario Carneiro, 24-Jul-2014.) $)
    coecj $p |- ( F e. ( Poly ` S ) -> ( coeff ` G ) = ( * o. A ) ) $=
      ( vz vk cfv wcel ccj cc cn0 wf cc0 wceq wb syl2anc vx cply ccom cv adantl
      cjcl plyssc sseli plycj cdgr dgrcl syl5eqel cjf coef3 sylancr c1 caddc co
      fco cuz cima csn wne cle wbr wi wral fvco3 sylan cj0 eqcomi a1i ffvelrnda
      wa eqeq12d 0cnd cj11 bitrd necon3bid dgrub2 plyco0 mpbid sylbid ralrimiva
      r19.21bi mpbird plycjlem coeeq ) CBUBKZLZIMAUCZNJDEWJUANCDEFGUAUDZNLWLMKN
      LWJWLUFUEWINUBKCBUGUHUIWJECUJKOFBCUKULZWJNNMPONAPZONWKPZUMABCHUNZONNMAUSU
      OZWJWKEUPUQURUTKZVAQVBZRZJUDZWKKZQVCZXAEVDVEZVFZJOVGZWJXEJOWJXAOLZVNZXCXA
      AKZQVCZXDXHXBQXIQXHXBQRXIMKZQMKZRZXIQRZXHXBXKQXLWJWNXGXBXKRWPONXAMAVHVIQX
      LRXHXLQVJVKVLVOXHXINLQNLXMXNSWJONXAAWPVMXHVPXIQVQTVRVSWJXJXDVFZJOWJAWRVAW
      SRZXOJOVGZABCEHFVTWJEOLZWNXPXQSWMWPAJEWATWBWEWCWDWJXRWOWTXFSWMWQWKJEWATWF
      IABJCDEFGHWGWH $.
  $}

  ${
    $d x A $.  $d x F $.  $d x G $.  $d x S $.  $d x V $.
    $( A polynomial with real coefficients distributes under conjugation.
       (Contributed by Mario Carneiro, 24-Jul-2014.) $)
    plyrecj $p |- ( ( F e. ( Poly ` RR ) /\ A e. CC ) ->
                    ( * ` ( F ` A ) ) = ( F ` ( * ` A ) ) ) $=
      ( vx cr cfv wcel cc wa cc0 cexp cmul csu ccj cn0 eqid syl2an eqtrd coeid2
      co wceq cply cdgr cfz cv ccoe fzfid wf coef2 mpan2 adantr elfznn0 ffvelrn
      recnd simpr expcl mulcld fsumcj cjmuld cjred oveq12d sumeq2dv fveq2d cjcl
      0re cjexp sylan2 3eqtr4d ) BDUAEFZAGFZHZIBUBEZUCSZCUDZBUEEZEZAVMJSZKSZCLZ
      MEZVLVOAMEZVMJSZKSZCLZABEZMEVTBEZVJVSVLVQMEZCLWCVJVLVQCVJIVKUFVJVMVLFZHZV
      OVPWHVOVJNDVNUGZVMNFZVODFWGVHWIVIVHIDFWIVDVNDBVNOZUHUIUJVMVKUKZNDVMVNULPZ
      UMZVJVIWJVPGFWGVHVIUNZWLAVMUOPZUPUQVJVLWFWBCWHWFVOMEZVPMEZKSWBWHVOVPWNWPU
      RWHWQVOWRWAKWHVOWMUSVJVIWJWRWATWGWOWLAVMVEPUTQVAQVJWDVRMVNDCBVKAWKVKOZRVB
      VIVHVTGFWEWCTAVCVNDCBVKVTWKWSRVFVG $.

    $( Polynomial multiplication has no zero divisors.  (Contributed by Mario
       Carneiro, 26-Jul-2014.) $)
    plymul0or $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) ->
      ( ( F oF x. G ) = 0p <-> ( F = 0p \/ G = 0p ) ) ) $=
      ( vx cfv wcel cmul c0p wceq ccoe cc0 cn0 syl6eq eqeq1d eqid adantr adantl
      co cc wf cply wa cof wo cdgr caddc csn cxp dgrcl nn0addcl syl2an fvconst2
      c0ex syl fveq2 coe0 fveq1d syl5ibrcom coemulhi coef3 mul0ord bitrd sylibd
      ffvelrnd wb dgreq0 orbi12d sylibrd cvv cnex plyf 0cnd cv mul02 caofid2 id
      a1i df-0p oveq1d mul01 caofid1 oveq2d jaod eqeq2i syl6ibr impbid ) BAUAEZ
      FZCWGFZUBZBCGUCZRZHIZBHIZCHIZUDZWJWMBUEEZBJEZEZKIZCUEEZCJEZEZKIZUDZWPWJWM
      WQXAUFRZWLJEZEZKIZXEWJXIWMXFLKUGZUHZEZKIZWJXFLFZXMWHWQLFZXALFZXNWIABUIZAC
      UIZWQXAUJUKLKXFUMULUNWMXHXLKWMXFXGXKWMXGHJEXKWLHJUOUPMUQNURWJXIWSXCGRZKIX
      EWJXHXSKWRXBABCWQXAWROZXBOZWQOZXAOZUSNWJWSXCWJLSWQWRWHLSWRTWIWRABXTUTPWHX
      OWIXQPVDWJLSXAXBWILSXBTWHXBACYAUTQWIXPWHXRQVDVAVBVCWJWNWTWOXDWHWNWTVEWIWR
      ABWQYBXTVFPWIWOXDVEWHXBACXAYCYAVFQVGVHWJWPWLSXJUHZIZWMWJWNYEWOWJYEWNYDCWK
      RZYDIWJDSKKGSCVISSSVIFWJVJVQZWISSCTWHACVKQWJVLZYHDVMZSFZKYIGRKIWJYIVNQVOW
      NWLYFYDWNBYDCWKWNBHYDWNVPVRMVSNURWJYEWOBYDWKRZYDIWJDSKKGSBVISSYGWHSSBTWIA
      BVKPYHYHYJYIKGRKIWJYIVTQWAWOWLYKYDWOCYDBWKWOCHYDWOVPVRMWBNURWCHYDWLVRWDWE
      WF $.

    $( The set of roots of a product is the union of the roots of the terms.
       (Contributed by Mario Carneiro, 28-Jul-2014.) $)
    ofmulrt $p |- ( ( A e. V /\ F : A --> CC /\ G : A --> CC ) ->
   ( `' ( F oF x. G ) " { 0 } ) = ( ( `' F " { 0 } ) u. ( `' G " { 0 } ) ) ) $=
      ( vx wcel cc wf cmul ccnv cc0 cima cfv wceq wa wo wfn syl wb fniniseg w3a
      cof co csn cun simp2 ffn simp3 simp1 inidm eqidd eqeq1d ffvelrnda mul0ord
      cv ofval bitrd pm5.32da offn orbi12d elun andi 3bitr4g 3bitr4d eqrdv ) AD
      FZAGBHZAGCHZUAZEBCIUBUCZJKUDZLZBJVKLZCJVKLZUEZVIEUOZAFZVPVJMZKNZOZVQVPBMZ
      KNZVPCMZKNZPZOZVPVLFZVPVOFZVIVQVSWEVIVQOZVSWAWCIUCZKNWEWIVRWJKVIAAWAWCIAB
      CDDVPVIVGBAQZVFVGVHUFZAGBUGRZVIVHCAQZVFVGVHUHZAGCUGRZVFVGVHUIZWQAUJZWIWAU
      KWIWCUKUPULWIWAWCVIAGVPBWLUMVIAGVPCWOUMUNUQURVIVJAQWGVTSVIAAIABCDDWMWPWQW
      QWRUSAKVPVJTRVIVPVMFZVPVNFZPVQWBOZVQWDOZPWHWFVIWSXAWTXBVIWKWSXASWMAKVPBTR
      VIWNWTXBSWPAKVPCTRUTVPVMVNVAVQWBWDVBVCVDVE $.
  $}

  ${
    $d F a $.
    $( Real-coefficient polynomials restrict to real functions.  (Contributed
       by Stefan O'Rear, 16-Nov-2014.) $)
    plyreres $p |- ( F e. ( Poly ` RR ) -> ( F |` RR ) : RR --> RR ) $=
      ( va cr cply cfv wcel cres wfn crn wss wf cc plybss wb plyf fnssresb wceq
      ffn adantl ccj 3syl mpbird cv wral wa fvres ffvelrn syl2an plyrecj sylan2
      recn cjre fveq2d eqtrd cjrebd eqeltrd ralrimiva fnfvrnss syl2anc sylanbrc
      df-f ) ACDEFZACGZCHZVCICJZCCVCKVBVDCLJZCAMVBLLAKZALHVDVFNCAOZLLARLCAPUAUB
      ZVBVDBUCZVCEZCFZBCUDVEVIVBVLBCVBVJCFZUEZVKVJAEZCVMVKVOQVBVJCAUFSVNVOVBVGV
      JLFZVOLFVMVHVJUKZLLVJAUGUHVNVOTEZVJTEZAEZVOVMVBVPVRVTQVQVJAUIUJVNVSVJAVMV
      SVJQVBVJULSUMUNUOUPUQBCCVCURUSCCVCVAUT $.
  $}

  ${
    $d ph z j k $.  $d A z j k $.  $d B z $.  $d N j k z $.
    dvply1.f $e |- ( ph -> F = ( z e. CC |-> sum_ k e. ( 0 ... N )
        ( ( A ` k ) x. ( z ^ k ) ) ) ) $.
    dvply1.g $e |- ( ph -> G = ( z e. CC |-> sum_ k e. ( 0 ... ( N - 1 ) )
        ( ( B ` k ) x. ( z ^ k ) ) ) ) $.
    dvply1.a $e |- ( ph -> A : NN0 --> CC ) $.
    dvply1.b $e |- B = ( k e. NN0 |-> ( ( k + 1 ) x. ( A ` ( k + 1 ) ) ) ) $.
    dvply1.n $e |- ( ph -> N e. NN0 ) $.
    $( Derivative of a polynomial, explicit sum version.  (Contributed by
       Stefan O'Rear, 13-Nov-2014.)  (Revised by Mario Carneiro,
       11-Feb-2015.) $)
    dvply1 $p |- ( ph -> ( CC _D F ) = G ) $=
      ( cc co cc0 cmul c1 wcel wa vj cdv cfz cv cfv cexp csu cmpt wceq cmin cif
      oveq2d ccnfld ctopn crest ctop cnfldtop cnfldtopon toponunii restid ax-mp
      eqid eqcomi cr cpr cnelprrecn a1i topopn mp1i fzfid cn0 wf elfznn0 syl2an
      ffvelrn adantr simpr ad2antlr expcld mulcld 3impa w3a 3adant3 0cnd simpl2
      wn syl nn0cnd simpl3 cn wo elnn0 sylib orel2 sylc nnm1nn0 ifclda cvv c0ex
      ovex ifex adantl dvexp2 dvmptcmul dvmptfsum elfznn nnne0d neneqd iffalsed
      sumeq2dv cuz wss 1eluzge0 fzss1 nnnn0d wne simplr cdif caddc eldifn 0p1e1
      eqeltrd oveq1i eleq2i sylnibr eldifi wb syl6eleq ad2antrr elfzp12 iftrued
      nn0uz mpbid mul01d sylan2 eqtrd sylancl oveq1d oveq1 oveq12d fsumss pncan
      ax-1cn peano2nn0 ffvelrnd mulassd mulcomd 3eqtr2d sumeq1i cbvsumv 3eqtr4g
      1m1e0 fveq2d oveq2 1zzd nn0zd fveq2 id fsumshftm fvmpt2 3eqtr4d mpteq2dva
      3eqtr3d eqtr4d 3eqtrd ) ANFUBONBNPHUCOZEUDZCUEZBUDZUVGUFOZQOZEUGUHZUBOBNU
      VFUVHUVGPUIZPUVGUVIUVGRUJOZUFOZQOZUKZQOZEUGZUHZGAFUVLNUBIULABUVKUVRNEUVFU
      MUNUEZUWANUWANUOOZUWAUWAUPSZUWBUWAUIUWAUWAVBZUQZUWAUPNNUWAUWAUWDURUSZUTVA
      VCUWDNVDNVESZAVFVGUWCNUWASAUWEUWANUWFVHVIAPHVJAUVGUVFSZUVINSZUVKNSAUWHTZU
      WITZUVHUVJUWJUVHNSZUWIAVKNCVLZUVGVKSZUWLUWHKUVGHVMZVKNUVGCVOZVNZVPUWKUVIU
      VGUWJUWIVQUWHUWNAUWIUWOVRVSZVTWAAUWHUWIWBZUVHUVQAUWHUWLUWIUWQWCUWSUVMPUVP
      NUWSUVMTWDUWSUVMWFZTZUVGUVOUXAUVGUXAUWHUWNAUWHUWIUWTWEUWOWGZWHUXAUVIUVNAU
      WHUWIUWTWIUXAUVGWJSZUVNVKSZUXAUWTUXCUVMWKZUXCUWSUWTVQUXAUWNUXEUXBUVGWLWMU
      VMUXCWNWOUVGWPZWGVSVTWQVTUWJBUVJUVQUVHNWRNUWGUWJVFVGUWRUVQWRSUWKUVMPUVPWS
      UVGUVOQWTXAVGUWJUWNNBNUVJUHUBOBNUVQUHUIUWHUWNAUWOXBBUVGXCWGUWQXDXEAUVTBNP
      HRUJOZUCOZUVGDUEZUVJQOZEUGZUHGABNUVSUXKAUWITZRHUCOZUVREUGUXMUVHUVPQOZEUGZ
      UVSUXKUXLUXMUVRUXNEUXLUVGUXMSZTZUVQUVPUVHQUXQUVMPUVPUXPUWTUXLUXPUVGPUXPUV
      GUVGHXFZXGZXHXBXIULXJUXLUXMUVFUVRERPXKUEZSUXMUVFXLUXLXMRPHXNVIUXQUVHUVQUX
      LUWMUWNUWLUXPAUWMUWIKVPZUXPUVGUXRXOZUWPVNZUXQUVQUVPNUXQUVMPUVPUXQUVGPUXPU
      VGPXPUXLUXSXBXHXIUXQUVGUVOUXQUVGUXPUWNUXLUYBXBWHUXQUVIUVNAUWIUXPXQUXPUXDU
      XLUXPUXCUXDUXRUXFWGXBVSVTZYBVTUXLUVGUVFUXMXRSZTZUVRUVHPQOZPUYFUVQPUVHQUYF
      UVMPUVPUYFUVGPRXSOZHUCOZSZWFZUVMUYJWKZUVMUYEUYKUXLUYEUXPUYJUVGUVFUXMXTUYI
      UXMUVGUYHRHUCYAYCYDYEXBUYFUWHUYLUYEUWHUXLUVGUVFUXMYFZXBUYFHUXTSZUWHUYLYGA
      UYNUWIUYEAHVKUXTMYLYHYIUVGPHYJWGYMUYJUVMWNWOYKULUYEUXLUWHUYGPUIUYMUXLUWHT
      UVHUXLUWMUWNUWLUWHUYAUWOUWPVNYNYOYPUXLPHVJUUAUXLRRUJOZUXGUCOZUAUDZRXSOZCU
      EZUYRUVIUYRRUJOZUFOZQOZQOZUAUGZUXHUVGRXSOZVUECUEZQOZUVJQOZEUGZUXOUXKUXLUX
      HVUCUAUGUXHUYRUYSQOZUVIUYQUFOZQOZUAUGVUDVUIUXLUXHVUCVULUAUXLUYQUXHSZTZVUC
      UYSUYRVUKQOZQOUYSUYRQOZVUKQOVULVUNVUBVUOUYSQVUNVUAVUKUYRQVUNUYTUYQUVIUFVU
      NUYQNSRNSUYTUYQUIVUNUYQVUMUYQVKSZUXLUYQUXGVMZXBZWHUUCUYQRUUBYQULULULVUNUY
      SUYRVUKVUNVKNUYRCAUWMUWIVUMKYIVUMUYRVKSZUXLVUMVUQVUTVURUYQUUDWGXBZUUEZVUN
      UYRVVAWHZVUNUVIUYQAUWIVUMXQVUSVSUUFVUNVUPVUJVUKQVUNUYSUYRVVBVVCUUGYRUUHXJ
      UYPUXHVUCUAUYOPUXGUCUULYCUUIUXHVUHVULEUAUVGUYQUIZVUGVUJUVJVUKQVVDVUEUYRVU
      FUYSQUVGUYQRXSYSZVVDVUEUYRCVVEUUMYTUVGUYQUVIUFUUNYTUUJUUKUXLUXNVUCEUARRHU
      XLUUOZVVFUXLHAHVKSUWIMVPUUPUXQUVHUVPUYCUYDVTUVGUYRUIZUVHUYSUVPVUBQUVGUYRC
      UUQVVGUVGUYRUVOVUAQVVGUURVVGUVNUYTUVIUFUVGUYRRUJYSULYTYTUUSUXLUXHUXJVUHEU
      XLUVGUXHSZTZUXIVUGUVJQVVIUWNVUGWRSUXIVUGUIVVHUWNUXLUVGUXGVMXBVUEVUFQWTEVK
      VUGWRDLUUTYQYRXJUVAUVCUVBJUVDUVE $.
  $}

  ${
    $d a b c F $.  $d a b c S $.
    $( The derivative of a polynomial with coefficients in a subring is a
       polynomial with coefficients in the same ring.  (Contributed by Mario
       Carneiro, 1-Jan-2017.) $)
    dvply2g $p |- ( ( S e. ( SubRing ` CCfld ) /\ F e. ( Poly ` S ) ) ->
      ( CC _D F ) e. ( Poly ` S ) ) $=
      ( va vb vc ccnfld cfv wcel wa cc co cc0 cfz cv cn0 caddc cmul cmpt adantl
      c1 csubrg cply cdv cdgr ccoe cexp csu wf plyf feqmptd cuz simplr cz dgrcl
      wceq nn0zd adantr uzid peano2uz 3syl simpr coeid3 syl3anc mpteq2dva eqtrd
      eqid cmin nn0cnd ax-1cn pncan sylancl eqcomd sumeq1d mpteq2dv coef3 oveq1
      oveq2d fveq2d oveq12d cbvmptv peano2nn0 syl dvply1 subrgss elfznn0 simpll
      wss cnfldbas zsssubrg sseldd csubg subrgsubg cnfld0 subg0cl coef2 syl2anc
      ad2antrr ffvelrnd cnfldmul subrgmcl fmptd ffvelrnda sylan2 elplyd eqeltrd
      ) AFUAGHZBAUBGZHZIZJBUCKCJLBUDGZMKZDNZEOENZTPKZXNBUEGZGZQKZRZGZCNZXLUFKZQ
      KZDUGZRZXGXICXOXRDBYDXJTPKZXIBCJXTBGZRCJLYEMKXLXOGYAQKDUGZRXICJJBXHJJBUHX
      FABUISUJXICJYFYGXIXTJHZIZXHYEXJUKGZHZYHYFYGUOXFXHYHULYIXJUMHZXJYJHYKXIYLY
      HXIXJXHXJOHZXFABUNSZUPUQXJURXJXJUSUTXIYHVAXOADBYEXJXTXOVFZXJVFVBVCVDVEXIC
      JYCLYETVGKZMKZYBDUGXIXKYQYBDXIXJYPLMXIYPXJXIXJJHTJHYPXJUOXIXJYNVHVIXJTVJV
      KVLVQVMVNXHOJXOUHXFXOABYOVOSEDOXQXLTPKZYRXOGZQKXMXLUOZXNYRXPYSQXMXLTPVPZY
      TXNYRXOUUAVRVSVTXIYMYEOHYNXJWAWBWCXICXSADXJXFAJWGXHAJFWHWDUQYNXLXKHXIXLOH
      XSAHXLXJWEXIOAXLXRXIEOXQAXRXIXMOHZIZXFXNAHXPAHXQAHXFXHUUBWFUUCUMAXNXFUMAW
      GXHUUBAWIWQUUCXNUUBXNOHXIXMWASZUPWJUUCOAXNXOUUCXHLAHZOAXOUHXFXHUUBULXFUUE
      XHUUBXFAFWKGHUUEAFWLAFLWMWNWBWQXOABYOWOWPUUDWRAFQXNXPWSWTVCXRVFXAXBXCXDXE
      $.

    $( The derivative of a polynomial is a polynomial.  (Contributed by Stefan
       O'Rear, 14-Nov-2014.)  (Proof shortened by Mario Carneiro,
       1-Jan-2017.) $)
    dvply2 $p |- ( F e. ( Poly ` S ) -> ( CC _D F ) e. ( Poly ` CC ) ) $=
      ( cply cfv wcel cc ccnfld csubrg cdv co crg cnring cnfldbas subrgid ax-mp
      plyssc sseli dvply2g sylancr ) BACDZEFGHDEZBFCDZEFBIJUBEGKEUALFGMNOTUBBAP
      QFBRS $.
  $}

  ${
    $d n x F $.  $d x N $.  $d n x S $.
    $( Polynomials have polynomials as derivatives of all orders.  (Contributed
       by Mario Carneiro, 1-Jan-2017.) $)
    dvnply2 $p |- ( ( S e. ( SubRing ` CCfld ) /\ F e. ( Poly ` S ) /\
      N e. NN0 ) -> ( ( CC Dn F ) ` N ) e. ( Poly ` S ) ) $=
      ( vx vn ccnfld cfv wcel cn0 cc co wa cv cc0 wceq fveq2 eleq1d imbi2d cvv
      wi csubrg cply cdvn c1 caddc wss cpm ssid wf cnex a1i plyf adantl syl3anc
      fpmg dvn0 sylancr simpr eqeltrd cdv dvply2g ad2antrr dvnp1 mp3an1 sylibrd
      ex sylan expcom a2d nn0ind impcom 3impa ) AFUAGHZBAUBGZHZCIHZCJBUCKZGZVNH
      ZVPVMVOLZVSVTDMZVQGZVNHZTVTNVQGZVNHZTVTEMZVQGZVNHZTVTWFUDUEKZVQGZVNHZTVTV
      STDECWANOZWCWEVTWLWBWDVNWANVQPQRWAWFOZWCWHVTWMWBWGVNWAWFVQPQRWAWIOZWCWKVT
      WNWBWJVNWAWIVQPQRWACOZWCVSVTWOWBVRVNWACVQPQRVTWDBVNVTJJUFZBJJUGKHZWDBOJUH
      ZVTJSHZWSJJBUIZWQWSVTUJUKZXAVOWTVMABULUMJJBSSUOUNZJBUPUQVMVOURUSWFIHZVTWH
      WKVTXCWHWKTVTXCLZWHJWGUTKZVNHZWKVMWHXFTVOXCVMWHXFAWGVAVFVBXDWJXEVNVTWQXCW
      JXEOZXBWPWQXCXGWRJBWFVCVDVGQVEVHVIVJVKVL $.

    $( Polynomials have polynomials as derivatives of all orders.  (Contributed
       by Stefan O'Rear, 15-Nov-2014.)  (Revised by Mario Carneiro,
       1-Jan-2017.) $)
    dvnply $p |- ( ( F e. ( Poly ` S ) /\ N e. NN0 ) ->
      ( ( CC Dn F ) ` N ) e. ( Poly ` CC ) ) $=
      ( cply cfv wcel cc cn0 cdvn co plyssc sseli ccnfld csubrg cnring cnfldbas
      crg subrgid ax-mp dvnply2 mp3an1 sylan ) BADEZFBGDEZFZCHFZCGBIJEUDFZUCUDB
      AKLGMNEFZUEUFUGMQFUHOGMPRSGBCTUAUB $.

    $( Polynomials are smooth.  (Contributed by Stefan O'Rear, 16-Nov-2014.)
       (Revised by Mario Carneiro, 11-Feb-2015.) $)
    plycpn $p |- ( F e. ( Poly ` S ) -> F e. |^| ran ( C^n ` CC ) ) $=
      ( vx vn cply cfv wcel cc ccpn crn cint cv wral cn0 wa co ccncf cnex syl
      wb cpm cdvn cdm plyf adantr fpm dvnply plycn wceq fdm oveq1d eleqtrrd wss
      wf ssid a1i elcpn sylan mpbir2and ralrimiva fncpn eleq2 ralrn mp2b sylibr
      wfn elintg mpbird ) BAEFZGZBHIFZJZKGBCLZGZCVLMZVJBDLZVKFZGZDNMZVOVJVRDNVJ
      VPNGZOZVRBHHUAPGZVPHBUBPFZBUCZHQPZGZWAHHBUNZWBVJWGVTABUDUEZHHBRRUFSWAWCHH
      QPZWEWAWCHEFGWCWIGABVPUGHWCUHSWAWDHHQWAWGWDHUIWHHHBUJSUKULVJHHUMZVTVRWBWF
      OTWJVJHUOZUPHBVPUQURUSUTWJVKNVFVOVSTWKHVAVNVRCDNVKVMVQBVBVCVDVECBVLVIVGVH
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The division algorithm for polynomials
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c quot $.

  $( Extend class notation to include the quotient of a polynomial division. $)
  cquot $a class quot $.

  ${
    $d f g q r $.
    $( Define the quotient function on polynomials.  This is the ` q ` of the
       expression ` f = g x. q + r ` in the division algorithm.  (Contributed
       by Mario Carneiro, 23-Jul-2014.) $)
    df-quot $a |- quot = ( f e. ( Poly ` CC ) ,
      g e. ( ( Poly ` CC ) \ { 0p } ) |->
      ( iota_ q e. ( Poly ` CC ) [. ( f oF - ( g oF x. q ) ) / r ].
        ( r = 0p \/ ( deg ` r ) < ( deg ` g ) ) ) ) $.
  $}

  ${
    $d f g q r F $.  $d f g q G $.  $d f g r R $.
    quotval.1 $e |- R = ( F oF - ( G oF x. q ) ) $.
    $( Value of the quotient function.  (Contributed by Mario Carneiro,
       23-Jul-2014.) $)
    quotval $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) /\ G =/= 0p ) ->
                    ( F quot G ) = ( iota_ q e. ( Poly ` CC )
                      ( R = 0p \/ ( deg ` R ) < ( deg ` G ) ) ) ) $=
      ( vf vg vr cply cfv wcel c0p co wceq cdgr clt wbr wo cv cc wne cquot crio
      plyssc sseli wa csn cdif eldifsn cmul cof cmin wsbc oveq12 sylan2 syl6eqr
      oveq1 sbceq1d ovex eqeltri eqeq1 fveq2 breq1d orbi12d sbcie fveq2d breq2d
      cvv simpr orbi2d bitrd riotabidv df-quot riotaex ovmpt2a sylan2br syl3an2
      syl5bb 3impb syl3an1 ) CBJKZLCUAJKZLZDWBLZDMUBZCDUCNAMOZAPKZDPKZQRZSZEWCU
      DZOZWBWCCBUEZUFWEWDDWCLZWFWMWBWCDWNUFWDWOWFWMWOWFUGWDDWCMUHUIZLWMDWCMUJGH
      CDWCWPITZMOZWQPKZHTZPKZQRZSZIGTZWTETZUKULZNZUMULZNZUNZEWCUDWLUCXDCOZWTDOZ
      UGZXJWKEWCXMXJXCIAUNZWKXMXCIXIAXMXICDXEXFNZXHNZAXLXKXGXOOXIXPOWTDXEXFURXD
      CXGXOXHUOUPFUQUSXNWGWHXAQRZSZXMWKXCXRIAAXPVIFCXOXHUTVAWQAOZWRWGXBXQWQAMVB
      XSWSWHXAQWQAPVCVDVEVFXMXQWJWGXMXAWIWHQXMWTDPXKXLVJVGVHVKVSVLVMGHIEVNWKEWC
      VOVPVQVTVRWA $.
  $}

  ${
    $d x y z A $.  $d d f p q x y z F $.  $d f p q x y z H $.  $d d x y z ph $.
    $d x y z B $.  $d f z D $.  $d x y z M $.  $d f p q x y z N $.  $d x y T $.
    $d d f g p q w x y z G $.  $d d f p x y R $.  $d d f g p q x y z S $.
    plydiv.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x + y ) e. S ) $.
    plydiv.tm $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x x. y ) e. S ) $.
    plydiv.rc $e |- ( ( ph /\ ( x e. S /\ x =/= 0 ) ) -> ( 1 / x ) e. S ) $.
    plydiv.m1 $e |- ( ph -> -u 1 e. S ) $.
    $( Lemma for ~ plydivalg .  (Contributed by Mario Carneiro,
       24-Jul-2014.) $)
    plydivlem1 $p |- ( ph -> 0 e. S ) $=
      ( cc0 c1 cneg caddc co 1pneg1e0 cmul neg1mulneg1e1 caovcld syl5eqelr ) AI
      JJKZLMDNABCJSDDDLEAJSSOMDPABCSSDDDOFHHQRHQR $.

    plydiv.f $e |- ( ph -> F e. ( Poly ` S ) ) $.
    plydiv.g $e |- ( ph -> G e. ( Poly ` S ) ) $.
    plydiv.z $e |- ( ph -> G =/= 0p ) $.
    ${
      plydiv.r $e |- R = ( F oF - ( G oF x. q ) ) $.
      $( Lemma for ~ plydivalg .  (Contributed by Mario Carneiro,
         24-Jul-2014.) $)
      plydivlem2 $p |- ( ( ph /\ q e. ( Poly ` S ) ) -> R e. ( Poly ` S ) ) $=
        ( cv wcel co adantr cply cfv wa cmul cmin simpr caddc adantlr plymul c1
        cof cneg plysub syl5eqel ) AHQZEUAUBZRZUCZDFGUOUDUKSZUEUKSUPPURBCEFUSAF
        UPRUQMTURBCEGUOAGUPRUQNTAUQUFABQZERCQZERUCZUTVAUGSERUQIUHZAVBUTVAUDSERU
        QJUHZUIVCVDAUJULERUQLTUMUN $.

      ${
        plydiv.0 $e |- ( ph ->
                         ( F = 0p \/ ( ( deg ` F ) - ( deg ` G ) ) < 0 ) ) $.
        $( Lemma for ~ plydivex .  Base case of induction.  (Contributed by
           Mario Carneiro, 24-Jul-2014.) $)
        plydivlem3 $p |- ( ph -> E. q e. ( Poly ` S )
          ( R = 0p \/ ( deg ` R ) < ( deg ` G ) ) ) $=
          ( c0p cfv cc vz cply wcel cmul cof co cmin wceq cdgr clt wbr wrex wss
          wo plybss ply0 3syl cc0 cv cvv cnex a1i wf wfn plyf ffn inidm offn wa
          eqidd 0pval adantl ofval ffvelrnda mul01d eqtrd subid1d offveq eqeq1d
          syl caddc fveq2d cn0 dgrcl nn0red recnd addid2d eqcomd 0red ltsubaddd
          breq12d bitr4d orbi12d mpbird oveq2d syl5eq breq1d rspcev syl2anc
          oveq2 ) AREUBSZUCZFGRUDUEZUFZUGUEZUFZRUHZXFUISZGUISZUJUKZUNZDRUHZDUIS
          ZXIUJUKZUNZHXAULAFXAUCZETUMXBMEFUOEUPUQZAXKFRUHZFUISZXIUGUFURUJUKZUNQ
          AXGXRXJXTAXFFRAUATUAUSZFSZURUGFXDFUTTUTUCAVAVBZAXPTTFVCZFTVDMEFVEZTTF
          VFUQZATTUDTGRUTUTAGXAUCZTTGVCZGTVDNEGVEZTTGVFUQZAXBTTRVCRTVDXQERVETTR
          VFUQZYCYCTVGZVHYFAYATUCZVIZYBVJYNYAXDSYAGSZURUDUFURATTYOURUDTGRUTUTYA
          YJYKYCYCYLYNYOVJYMYARSURUHAYAVKVLVMYNYOATTYAGAYGYHNYIVTVNVOVPYNYBATTY
          AFAXPYDMYEVTVNVQVRZVSAXJXSURXIWAUFZUJUKXTAXHXSXIYQUJAXFFUIYPWBAYQXIAX
          IAXIAXIAYGXIWCUCNEGWDVTWEZWFWGWHWKAXSXIURAXSAXPXSWCUCMEFWDVTWEYRAWIWJ
          WLWMWNXOXKHRXAHUSZRUHZXLXGXNXJYTDXFRYTDFGYSXCUFZXEUFXFPYTUUAXDFXEYSRG
          XCWTWOWPZVSYTXMXHXIUJYTDXFUIUUBWBWQWMWRWS $.
      $}

      ${
        $d p ph $.
        plydiv.d $e |- ( ph -> D e. NN0 ) $.
        plydiv.e $e |- ( ph -> ( M - N ) = D ) $.
        plydiv.fz $e |- ( ph -> F =/= 0p ) $.
        plydiv.u $e |- U = ( f oF - ( G oF x. p ) ) $.
        plydiv.h $e |- H =
          ( z e. CC |-> ( ( ( A ` M ) / ( B ` N ) ) x. ( z ^ D ) ) ) $.
        plydiv.al $e |- ( ph -> A. f e. ( Poly ` S )
          ( ( f = 0p \/ ( ( deg ` f ) - N ) < D ) ->
            E. p e. ( Poly ` S ) ( U = 0p \/ ( deg ` U ) < N ) ) ) $.
        plydiv.a $e |- A = ( coeff ` F ) $.
        plydiv.b $e |- B = ( coeff ` G ) $.
        plydiv.m $e |- M = ( deg ` F ) $.
        plydiv.n $e |- N = ( deg ` G ) $.
        $( Lemma for ~ plydivex .  Induction step.  (Contributed by Mario
           Carneiro, 26-Jul-2014.) $)
        plydivlem4 $p |- ( ph -> E. q e. ( Poly ` S )
          ( R = 0p \/ ( deg ` R ) < N ) ) $=
          ( cmul cof co cmin cv c0p wceq cdgr cfv clt wbr wo cply wrex wa caddc
          wcel cc wss cdiv cn0 plybss syl c1 cc0 plydivlem1 coef2 syl2anc dgrcl
          wf syl5eqel ffvelrnd sseldd wb dgreq0 necon3bid mpbid divrecd wi fvex
          wne eleq1 neeq1 anbi12d anbi2d oveq2 eleq1d imbi12d ex mp2and caovcld
          vtocl eqeltrd ply1term syl3anc adantr cvv a1i adantl inidm off oveq1d
          plyf eqtr4d oveq2d eqtrd eqeq1d fveq2d breq1d orbi12d syl5eq cle ccoe
          cif eqid syl6eq fveq2 fveq1d nn0cnd wfn coef3 ffn 3syl nn0red adantlr
          simpr plyadd mulcl subsub4 caofass mulcom caofcom adddi caofdi biimpa
          cnex w3a rspcev plymul plysub dgrsub csn cxp divne0d coe1term iftruei
          wral c0ex fvconst2 3netr4d coe0 necon3i dgrmul syl22anc npcand ifeq1d
          dgr1term ifid breqtrd coesub nn0ex eqidd coemulhi 3eqtr3d ofval mpdan
          divcan1d subidd 3eqtrd ltsub1d breq2d bitrd orbi2d dgrlt bitr3d eqeq1
          mpbir2and oveq1 rexbidv rspcv syl3c r19.29a ) ALNMUQURZUSZUTURZUSZMRV
          AZUWSUSZUXAUSZVBVCZUXEVDVEZPVFVGZVHZHVBVCZHVDVEZPVFVGZVHZQIVIVEZVJZRU
          XNAUXCUXNVMZVKZUXIVKNUXCVLURZUSZUXNVMZLMUXSUWSUSZUXAUSZVBVCZUYBVDVEZP
          VFVGZVHZUXOUXQUXTUXIUXQBCINUXCANUXNVMZUXPAIVNVOZOEVEZPFVEZVPUSZIVMGVQ
          VMZUYGALUXNVMZUYHUCILVRVSZAUYKUYIVTUYJVPUSZUQUSIAUYIUYJAIVNUYIUYNAVQI
          OEAUYMWAIVMZVQIEWFUCABCISTUAUBWBZEILUMWCWDAOLVDVEZVQUOAUYMUYRVQVMUCIL
          WEVSWGZWHZWIZAIVNUYJUYNAVQIPFAMUXNVMZUYPVQIFWFUDUYQFIMUNWCWDAPMVDVEZV
          QUPAVUBVUCVQVMUDIMWEVSWGZWHZWIZAMVBWQZUYJWAWQZUEAMVBUYJWAAVUBMVBVCUYJ
          WAVCWJUDFIMPUPUNWKVSWLWMZWNABCUYIUYOIIIUQTUYTAUYJIVMZVUHUYOIVMZVUEVUI
          AVUJVUHVKZVUKABVAZIVMZVUMWAWQZVKZVKZVTVUMVPUSZIVMZWOAVULVKZVUKWOBUYJP
          FWPVUMUYJVCZVUQVUTVUSVUKVVAVUPVULAVVAVUNVUJVUOVUHVUMUYJIWRVUMUYJWAWSW
          TXAVVAVURUYOIVUMUYJVTVPXBXCXDUAXHXEXFXGXIZUGDUYKINGUKXJXKZXLZAUXPUUBA
          VUNCVAZIVMVKVUMVVEVLUSIVMUXPSUUAUUCXLUXQUXIUYFUXQUXFUYCUXHUYEUXQUXEUY
          BVBUXQUXELUWTUXDUXRUSZUXAUSUYBUXQBCDVNVLUTVNUTLUWTUXDUTXMVNXMVMUXQUUL
          XNZUXQUYMVNVNLWFAUYMUXPUCXLILXSVSUXQBCVNVNVNUQVNVNVNNMXMXMVUMVNVMZVVE
          VNVMZVKZVUMVVEUQUSZVNVMUXQVUMVVEUUDXOZUXQUYGVNVNNWFVVDINXSVSZUXQVUBVN
          VNMWFAVUBUXPUDXLIMXSVSZVVGVVGVNXPZXQUXQBCVNVNVNUQVNVNVNMUXCXMXMVVLVVN
          UXPVNVNUXCWFAIUXCXSXOZVVGVVGVVOXQVVHVVIDVAZVNVMUUMZVUMVVEUTUSVVQUTUSV
          UMVVEVVQVLUSZUTUSVCUXQVUMVVEVVQUUEXOUUFUXQVVFUYALUXAUXQVVFMNUWSUSZUXD
          UXRUSUYAUXQUWTVVTUXDUXRUXQBCVNUQVNNMXMVVGVVMVVNVVJVVKVVEVUMUQUSVCUXQV
          UMVVEUUGXOUUHXRUXQBCDVNVLVNUQMNUXCVNVLXMVVGVVNVVMVVPVVRVUMVVSUQUSVVKV
          UMVVQUQUSVLUSVCUXQVUMVVEVVQUUIXOUUJXTYAYBZYCUXQUXGUYDPVFUXQUXEUYBVDVW
          AYDYEYFUUKUXMUYFQUXSUXNQVAZUXSVCZUXJUYCUXLUYEVWCHUYBVBVWCHLMVWBUWSUSZ
          UXAUSUYBUFVWCVWDUYALUXAVWBUXSMUWSXBYAYGZYCVWCUXKUYDPVFVWCHUYBVDVWEYDY
          EYFUUNWDAUXBUXNVMZKVAZVBVCZVWGVDVEZPUTUSZGVFVGZVHZJVBVCZJVDVEZPVFVGZV
          HZRUXNVJZWOZKUXNUVCUXBVBVCZUXBVDVEZPUTUSZGVFVGZVHZUXIRUXNVJZABCILUWTU
          CABCINMVVCUDSTUUOZSTUBUUPZULAVXCVWTOYHVGZOUXBYIVEZVEZWAVCZAVWTOUWTVDV
          EZYHVGZVXKOYJZOYHAUYMUWTUXNVMZVWTVXMYHVGUCVXEILUWTOVXKUOVXKYKUUQWDAVX
          MVXLOOYJOAVXLVXKOOAVXKNVDVEZPVLUSZOAUYGNVBWQZVUBVUGVXKVXPVCVVCAGNYIVE
          ZVEZGVQWAUURUUSZVEZWQVXQAUYKWAVXSVYAAUYIUYJVUAVUFALVBWQUYIWAWQUIALVBU
          YIWAAUYMLVBVCUYIWAVCWJUCEILOUOUMWKVSWLWMVUIUUTZAVXSGGVCZUYKWAYJZUYKAU
          YKVNVMZUYLUYLVXSVYDVCAIVNUYKUYNVVBWIZUGUGDUYKNGGUKUVAXKVYCUYKWAGYKUVB
          YLZAUYLVYAWAVCUGVQWAGUVDUVEVSUVFNVBVXSVYANVBVCZGVXRVXTVYHVXRVBYIVEVXT
          NVBYIYMUVGYLYNUVHVSUDUEINMVXOPVXOYKZUPUVIUVJAVXPOPUTUSZPVLUSOAVXOVYJP
          VLAVXOGVYJAVYEUYKWAWQUYLVXOGVCVYFVYBUGDUYKNGUKUVMXKZUHXTXRAOPAOUYSYOA
          PVUDYOUVKYBZYBUVLVXLOUVNYLUVOAVXIOEUWTYIVEZUXAUSZVEZUYIUYIUTUSZWAAOVX
          HVYNAUYMVXNVXHVYNVCUCVXEEVYMILUWTUMVYMYKZUVPWDYNAOVQVMZVYOVYPVCUYSAVQ
          VQUYIUYIUTVQEVYMXMXMOAUYMVQVNEWFEVQYPUCEILUMYQVQVNEYRYSAVXNVQVNVYMWFV
          YMVQYPVXEVYMIUWTVYQYQVQVNVYMYRYSVQXMVMAUVQXNZVYSVQXPAVYRVKUYIUVRAOVYM
          VEZUYIVCVYRAVXPVYMVEZVXOVXRVEZUYJUQUSZVYTUYIAUYGVUBWUAWUCVCVVCUDVXRFI
          NMVXOPVXRYKUNVYIUPUVSWDAVXPOVYMVYLYDAWUCUYKUYJUQUSUYIAWUBUYKUYJUQAWUB
          VXSUYKAVXOGVXRVYKYDVYGYBXRAUYIUYJVUAVUFVUIUWCYBUVTXLUWAUWBAUYIVUAUWDU
          WEAVWSVWTOVFVGZVHZVXCVXGVXJVKZAWUDVXBVWSAWUDVXAVYJVFVGVXBAVWTOPAVWTAV
          WFVWTVQVMVXFIUXBWEVSYTAOUYSYTAPVUDYTUWFAVYJGVXAVFUHUWGUWHUWIAVWFVYRWU
          EWUFWJVXFUYSVXHIUXBOVWTVWTYKVXHYKUWJWDUWKUWMVWRVXCVXDWOKUXBUXNVWGUXBV
          CZVWLVXCVWQVXDWUGVWHVWSVWKVXBVWGUXBVBUWLWUGVWJVXAGVFWUGVWIVWTPUTVWGUX
          BVDYMXRYEYFWUGVWPUXIRUXNWUGVWMUXFVWOUXHWUGJUXEVBWUGJVWGUXDUXAUSUXEUJV
          WGUXBUXDUXAUWNYGZYCWUGVWNUXGPVFWUGJUXEVDWUHYDYEYFUWOXDUWPUWQUWR $.
      $}

      ${
        $d f p ph $.
        $( Lemma for ~ plydivalg .  (Contributed by Mario Carneiro,
           24-Jul-2014.) $)
        plydivex $p |- ( ph -> E. q e. ( Poly ` S )
          ( R = 0p \/ ( deg ` R ) < ( deg ` G ) ) ) $=
          ( co clt wo wcel vd vf vg vz vp vw cdgr cfv cmin cv wbr wrex c0p wceq
          cn cply cr cn0 dgrcl syl nn0red resubcld arch wa olc cmul cof wi wral
          adantr nnnn0 cc0 caddc breq2 orbi2d imbi1d ralbidv imbi2d weq adantlr
          c1 cdiv cneg simprl eqid simprr plydivlem3 expr ralrimiva eqeq1 fveq2
          wne oveq1d breq1d orbi12d oveq1 eqeq1d fveq2d rexbidv imbi12d cbvralv
          ccoe cc cexp cmpt simplll sylan simplr simpllr simprrr simprrl oveq2d
          cbvmptv oveq2 cbvrexv imbi2i ralbii sylib plydivlem4 ralrimdva syl5bi
          exp32 ancld cz wb adantl nn0zd ad2antrr zsubcld nn0z ad2antlr zleltp1
          cle syl2anc zred nn0re orbi2i bitr4i or12 syl6bb leloed bitr3d pm5.63
          wn df-ne anbi1i 3bitr4i orass jaob ralbidva r19.26 sylibrd expcom a2d
          nn0ind impcom syl6eqr rspcv sylc syl5 rexlimdva mpd ) AFUGUHZGUGUHZUI
          QZUAUJZRUKZUAUOULZDUMUNZDUGUHZUVDRUKZSZHEUPUHZULZAUVEUQTUVHAUVCUVDAUV
          CAFUVMTZUVCURTMEFUSUTVAAUVDAGUVMTZUVDURTZNEGUSZUTVAVBUVEUAVCUTAUVGUVN
          UAUOUVGFUMUNZUVGSZAUVFUOTZVDZUVNUVGUVSVEUWBUVOUBUJZUMUNZUWCUGUHZUVDUI
          QZUVFRUKZSZUWCGHUJZVFVGZQZUIVGZQZUMUNZUWMUGUHZUVDRUKZSZHUVMULZVHZUBUV
          MVIZUVTUVNVHZAUVOUWAMVJUWAAUWTUWAUVFURTZAUWTVHZUVFVKAUWDUWFBUJZRUKZSZ
          UWRVHZUBUVMVIZVHAUWDUWFVLRUKZSZUWRVHZUBUVMVIZVHUXCAUWDUWFUVFWAVMQZRUK
          ZSZUWRVHZUBUVMVIZVHUXCBUAUVFUXDVLUNZUXHUXLAUXRUXGUXKUBUVMUXRUXFUXJUWR
          UXRUXEUXIUWDUXDVLUWFRVNVOVPVQVRBUAVSZUXHUWTAUXSUXGUWSUBUVMUXSUXFUWHUW
          RUXSUXEUWGUWDUXDUVFUWFRVNVOVPVQVRZUXDUXMUNZUXHUXQAUYAUXGUXPUBUVMUYAUX
          FUXOUWRUYAUXEUXNUWDUXDUXMUWFRVNVOVPVQVRUXTAUXKUBUVMAUWCUVMTZUXJUWRAUY
          BUXJVDZVDBCUWMEUWCGHAUXDETZCUJZETVDZUXDUYEVMQETZUYCIVTAUYFUXDUYEVFQET
          ZUYCJVTAUYDUXDVLWLVDZWAUXDWBQETZUYCKVTAWAWCETZUYCLVJAUYBUXJWDAUVPUYCN
          VJAGUMWLZUYCOVJUWMWEZAUYBUXJWFWGWHWIUXBAUWTUXQAUXBUWTUXQVHAUXBVDZUWTU
          WTUWCUMWLZUWFUVFUNZVDZUWRVHZUBUVMVIZVDZUXQUYNUWTUYSUWTUCUJZUMUNZVUAUG
          UHZUVDUIQZUVFRUKZSZVUAUWKUWLQZUMUNZVUGUGUHZUVDRUKZSZHUVMULZVHZUCUVMVI
          ZUYNUYSUWSVUMUBUCUVMUBUCVSZUWHVUFUWRVULVUOUWDVUBUWGVUEUWCVUAUMWJVUOUW
          FVUDUVFRVUOUWEVUCUVDUIUWCVUAUGWKWMWNWOVUOUWQVUKHUVMVUOUWNVUHUWPVUJVUO
          UWMVUGUMUWCVUAUWKUWLWPZWQVUOUWOVUIUVDRVUOUWMVUGUGVUPWRWNWOWSWTXAUYNVU
          NUYRUBUVMUYNUYBVDZVUNUYQUWRVUQVUNUYQVDZVDZBCUDUWCXBUHZGXBUHZUVFUWMEVU
          AGUEUJZUWJQZUWLQZUCUWCGUFXCUWEVUTUHUVDVVAUHWBQZUFUJZUVFXDQZVFQZXEUWEU
          VDHUEVUSAUYFUYGAUXBUYBVURXFZIXGVUSAUYFUYHVVIJXGVUSAUYIUYJVVIKXGVUSAUY
          KVVILUTUYNUYBVURXHVUSAUVPVVINUTVUSAUYLVVIOUTUYMAUXBUYBVURXIVUQVUNUYOU
          YPXJVUQVUNUYOUYPXKVVDWEUFUDXCVVHVVEUDUJZUVFXDQZVFQUFUDVSVVGVVKVVEVFVV
          FVVJUVFXDWPXLXMVUSVUNVUFVVDUMUNZVVDUGUHZUVDRUKZSZUEUVMULZVHZUCUVMVIVU
          QVUNUYQWDVUMVVQUCUVMVULVVPVUFVUKVVOHUEUVMHUEVSZVUHVVLVUJVVNVVRVUGVVDU
          MVVRUWKVVCVUAUWLUWIVVBGUWJXNXLZWQVVRVUIVVMUVDRVVRVUGVVDUGVVSWRWNWOXOX
          PXQXRVUTWEVVAWEUWEWEUVDWEXSYBXTYAYCUYNUXQUWSUYRVDZUBUVMVIUYTUYNUXPVVT
          UBUVMVUQUXPUWHUYQSZUWRVHVVTVUQUXOVWAUWRVUQUXOUWDUWGUYPSZSZVWAVUQUXNVW
          BUWDVUQUWFUVFYMUKZUXNVWBVUQUWFYDTUVFYDTZVWDUXNYEVUQUWEUVDVUQUWEUYBUWE
          URTUYNEUWCUSYFYGVUQUVDVUQUVPUVQAUVPUXBUYBNYHUVRUTYGYIZUXBVWEAUYBUVFYJ
          YKUWFUVFYLYNVUQUWFUVFVUQUWFVWFYOUXBUVFUQTAUYBUVFYPYKUUAUUBVOVWCUWDUWG
          UYQSSZVWAUWGUWDUYPSZSUWGUWDUYQSZSVWCVWGVWHVWIUWGVWHUWDUWDUUDZUYPVDZSV
          WIUWDUYPUUCUYQVWKUWDUYOVWJUYPUWCUMUUEUUFYQYRYQUWDUWGUYPYSUWDUWGUYQYSU
          UGUWDUWGUYQUUHYRYTVPUWHUWRUYQUUIYTUUJUWSUYRUBUVMUUKYTUULUUMUUNUUOUTUU
          PUWSUXAUBFUVMUWCFUNZUWHUVTUWRUVNVWLUWDUVSUWGUVGUWCFUMWJVWLUWFUVEUVFRV
          WLUWEUVCUVDUIUWCFUGWKWMWNWOVWLUWQUVLHUVMVWLUWNUVIUWPUVKVWLUWMDUMVWLUW
          MFUWKUWLQDUWCFUWKUWLWPPUUQZWQVWLUWOUVJUVDRVWLUWMDUGVWMWRWNWOWSWTUURUU
          SUUTUVAUVB $.
      $}

      ${
        plydiveu.q $e |- ( ph -> q e. ( Poly ` S ) ) $.
        plydiveu.qd $e |- ( ph -> ( R = 0p \/ ( deg ` R ) < ( deg ` G ) ) ) $.
        plydiveu.t $e |- T = ( F oF - ( G oF x. p ) ) $.
        plydiveu.p $e |- ( ph -> p e. ( Poly ` S ) ) $.
        plydiveu.pd $e |- ( ph -> ( T = 0p \/ ( deg ` T ) < ( deg ` G ) ) ) $.
        $( Lemma for ~ plydivalg .  (Contributed by Mario Carneiro,
           24-Jul-2014.) $)
        plydiveu $p |- ( ph -> p = q ) $=
          ( vz cv cmin cof co cc cc0 csn cxp wceq c0p idd wne cdgr cfv ccoe cle
          wa wbr cif cply cn0 plydivlem2 mpdan plysub dgrcl syl nn0red cr ifcld
          wcel eqid dgrsub syl2anc clt wo dgrlt mpbid simpld breq1 ifboth letrd
          wb adantr caddc nn0addge1 cmul cmpt wf plyf ffvelrnda plymul nnncan1d
          mpteq2dva cvv cnex subcld feqmptd offval2 syl5eq 3eqtr4d subdi adantl
          a1i caofdi eqtr4d fveq2d simpr dgrmul syl22anc eqtrd breqtrrd letri3d
          w3a mpbir2and coesub fveq1d coef3 3syl nn0ex inidm simprd ofval 0m0e0
          wfn ffn syl6eq dgreq0 biimpar syldan ex plymul0or eqeq1d neneqd biorf
          wn 3bitr4d sylibd pm2.61dne df-0p ofsubeq0 syl3anc ) AJUEZIUEZUFUGZUH
          ZUIUJUKULZUMZUUFUUGUMZAUUIUNUUJAUUIUNUMZUUIUNAUUMUOAUUIUNUPZDFUUHUHZU
          NUMZUUMAUUNUUPAUUNUUOUQURZUUOUSURZURZUJUMZUUPAUUNVAZUUSHUQURZUURURZUJ
          UVAUUQUVBUURUVAUUQUVBUMZUUQUVBUTVBZUVBUUQUTVBZAUVEUUNAUUQDUQURZFUQURZ
          UTVBZUVHUVGVCZUVBAUUQAUUOEVDURZVNZUUQVEVNABCEDFAUUGUVKVNZDUVKVNZSABCD
          EGHIKLMNOPQRVFVGZAUUFUVKVNZFUVKVNZUBABCFEGHJKLMNOPQUAVFVGZKLNVHZEUUOV
          IVJVKZAUVIUVHUVGVLAUVHAUVQUVHVEVNUVREFVIVJVKAUVGAUVNUVGVEVNUVOEDVIVJV
          KVMAUVBAHUVKVNZUVBVEVNZPEHVIVJZVKZAUVNUVQUUQUVJUTVBUVOUVREDFUVGUVHUVG
          VOZUVHVOZVPVQAUVHUVBUTVBZUVGUVBUTVBZUVJUVBUTVBZAUWGUVBFUSURZURUJUMZAF
          UNUMUVHUVBVRVBVSZUWGUWKVAZUCAUVQUWBUWLUWMWFUVRUWCUWJEFUVBUVHUWFUWJVOZ
          VTVQWAZWBAUWHUVBDUSURZURUJUMZADUNUMUVGUVBVRVBVSZUWHUWQVAZTAUVNUWBUWRU
          WSWFUVOUWCUWPEDUVBUVGUWEUWPVOZVTVQWAZWBUVIUWGUWHUWIUVHUVGUVHUVJUVBUTW
          CUVGUVJUVBUTWCWDVQWEWGUVAUVBUVBUUIUQURZWHUHZUUQUTAUVBUXCUTVBZUUNAUVBV
          LVNUXBVEVNZUXDUWDAUUIUVKVNZUXEABCEUUFUUGUBSKLNVHZEUUIVIVJUVBUXBWIVQWG
          UVAUUQHUUIWJUGZUHZUQURZUXCAUUQUXJUMUUNAUUOUXIUQAUUOHUUFUXHUHZHUUGUXHU
          HZUUHUHZUXIAUDUIUDUEZGURZUXNUXLURZUFUHZUXOUXNUXKURZUFUHZUFUHZWKUDUIUX
          RUXPUFUHZWKUUOUXMAUDUIUXTUYAAUXNUIVNZVAZUXOUXPUXRAUIUIUXNGAGUVKVNUIUI
          GWLOEGWMVJZWNZAUIUIUXNUXLAUXLUVKVNUIUIUXLWLABCEHUUGPSKLWOEUXLWMVJZWNZ
          AUIUIUXNUXKAUXKUVKVNUIUIUXKWLABCEHUUFPUBKLWOEUXKWMVJZWNZWPWQAUDUIUXQU
          XSUFDFWRUIUIUIWRVNZAWSXGZUYCUXOUXPUYEUYGWTUYCUXOUXRUYEUYIWTADGUXLUUHU
          HUDUIUXQWKRAUDUIUXOUXPUFGUXLWRUIUIUYKUYEUYGAUDUIUIGUYDXAZAUDUIUIUXLUY
          FXAZXBXCAFGUXKUUHUHUDUIUXSWKUAAUDUIUXOUXRUFGUXKWRUIUIUYKUYEUYIUYLAUDU
          IUIUXKUYHXAZXBXCXBAUDUIUXRUXPUFUXKUXLWRUIUIUYKUYIUYGUYNUYMXBXDABCUDUI
          UFUIWJHUUFUUGUIUFWRUYKAUWAUIUIHWLPEHWMVJAUVPUIUIUUFWLZUBEUUFWMVJZAUVM
          UIUIUUGWLZSEUUGWMVJZBUEZUIVNCUEZUIVNUYBXQUYSUYTUXNUFUHWJUHUYSUYTWJUHU
          YSUXNWJUHUFUHUMAUYSUYTUXNXEXFXHXIZXJWGUVAUWAHUNUPZUXFUUNUXJUXCUMAUWAU
          UNPWGAVUBUUNQWGAUXFUUNUXGWGAUUNXKEHUUIUVBUXBUVBVOUXBVOXLXMXNXOAUVDUVE
          UVFVAWFUUNAUUQUVBUVTUWDXPWGXRXJAUVCUJUMUUNAUVCUJUJUFUHZUJAUVCUVBUWPUW
          JUUHUHZURZVUCAUVBUURVUDAUVNUVQUURVUDUMUVOUVRUWPUWJEDFUWTUWNXSVQXTAUWB
          VUEVUCUMUWCAVEVEUJUJUFVEUWPUWJWRWRUVBAUVNVEUIUWPWLUWPVEYHUVOUWPEDUWTY
          AVEUIUWPYIYBAUVQVEUIUWJWLUWJVEYHUVRUWJEFUWNYAVEUIUWJYIYBVEWRVNAYCXGZV
          UFVEYDAUWQUWBAUWHUWQUXAYEWGAUWKUWBAUWGUWKUWOYEWGYFVGXNYGYJWGXNAUUPUUT
          AUVLUUPUUTWFUVSUUREUUOUUQUUQVOUURVOYKVJYLYMYNAUXIUNUMZHUNUMZUUMVSZUUP
          UUMAUWAUXFVUGVUIWFPUXGEHUUIYOVQAUUOUXIUNVUAYPAVUHYSUUMVUIWFAHUNQYQVUH
          UUMYRVJYTUUAUUBUUCYJAUYJUYOUYQUUKUULWFUYKUYPUYRUIUUFUUGWRUUDUUEWA $.
      $}

      $d p q ph $.
      $( The division algorithm on polynomials over a subfield ` S ` of the
         complex numbers.  If ` F ` and ` G =/= 0 ` are polynomials over
         ` S ` , then there is a unique quotient polynomial ` q ` such that the
         remainder ` F - G x. q ` is either zero or has degree less than
         ` G ` .  (Contributed by Mario Carneiro, 26-Jul-2014.) $)
      plydivalg $p |- ( ph -> E! q e. ( Poly ` S )
        ( R = 0p \/ ( deg ` R ) < ( deg ` G ) ) ) $=
        ( vp co wa wcel c0p wceq cdgr cfv clt wbr wo cply wrex cv cmul cof cmin
        wi wral wreu plydivex caddc simpll sylan cc0 wne cdiv cneg eqid simplrr
        c1 syl simprr simplrl simprl plydiveu ex ralrimivva oveq2 oveq2d syl5eq
        eqeq1d fveq2d breq1d orbi12d reu4 sylanbrc ) ADUAUBZDUCUDZGUCUDZUEUFZUG
        ZHEUHUDZUIWHFGQUJZUKULZRZUMULZRZUAUBZWNUCUDZWFUEUFZUGZSZHUJZWJUBZUNZQWI
        UOHWIUOWHHWIUPABCDEFGHIJKLMNOPUQAXBHQWIWIAWTWITZWJWITZSZSZWSXAXFWSSZBCW
        NEDFGQHXGABUJZETZCUJZETSZXHXJURRETAXEWSUSZIUTXGAXKXHXJUKRETXLJUTXGAXIXH
        VAVBSVGXHVCRETXLKUTXGAVGVDETXLLVHXGAFWITXLMVHXGAGWITXLNVHXGAGUAVBXLOVHW
        NVEAXCXDWSVFXFWHWRVIPAXCXDWSVJXFWHWRVKVLVMVNWHWRHQWIXAWDWOWGWQXADWNUAXA
        DFGWTWKRZWMRWNPXAXMWLFWMWTWJGWKVOVPVQZVRXAWEWPWFUEXADWNUCXNVSVTWAWBWC
        $.
    $}

    ${
      $d q R $.  $d q ph $.
      quotlem.8 $e |- R = ( F oF - ( G oF x. ( F quot G ) ) ) $.
      $( Lemma for properties of the polynomial quotient function.
         (Contributed by Mario Carneiro, 26-Jul-2014.) $)
      quotlem $p |- ( ph -> ( ( F quot G ) e. ( Poly ` S ) /\
        ( R = 0p \/ ( deg ` R ) < ( deg ` G ) ) ) ) $=
        ( vq co wceq wcel cc cquot cmul cof cmin c0p cdgr cfv clt wbr cply crab
        cv wo wa crio wne eqid quotval syl3anc wrex wreu plydivalg reurex caddc
        syl addcl adantl mulcl cc0 cdiv reccl cneg neg1cn a1i plyssc sseldi wss
        c1 wi wral rgenw riotass2 mpanl12 syl2anc eqtr4d riotacl2 eqeltrd oveq2
        id oveq2d syl6eqr eqeq1d fveq2d breq1d orbi12d elrab sylib ) AFGUAQZFGP
        ULZUBUCZQZUDUCZQZUERZXCUFUGZGUFUGZUHUIZUMZPEUJUGZUKZSWRXISDUERZDUFUGZXF
        UHUIZUMZUNAWRXHPXIUOZXJAWRXHPTUJUGZUOZXOAFXISGXISGUEUPWRXQRLMNXCEFGPXCU
        QZURUSAXHPXIUTZXHPXPVAZXOXQRZAXHPXIVAZXSABCXCEFGPHIJKLMNXRVBZXHPXIVCVEA
        BCXCTFGPBULZTSZCULZTSUNZYDYFVDQTSAYDYFVFVGYGYDYFUBQTSAYDYFVHVGYEYDVIUPU
        NVRYDVJQTSAYDVKVGVRVLTSAVMVNAXIXPFEVOZLVPAXIXPGYHMVPNXRVBXIXPVQXHXHVSZP
        XIVTXSXTUNYAYHYIPXIXHWIWAXHXHPXIXPWBWCWDWEAYBXOXJSYCXHPXIWFVEWGXHXNPWRX
        IWSWRRZXDXKXGXMYJXCDUEYJXCFGWRWTQZXBQDYJXAYKFXBWSWRGWTWHWJOWKZWLYJXEXLX
        FUHYJXCDUFYLWMWNWOWPWQ $.
    $}

    $( The quotient of two polynomials in a field ` S ` is also in the field.
       (Contributed by Mario Carneiro, 26-Jul-2014.) $)
    quotcl $p |- ( ph -> ( F quot G ) e. ( Poly ` S ) ) $=
      ( cquot co cply cfv wcel cof cdgr cmul cmin c0p wceq clt wbr eqid quotlem
      wo simpld ) AEFNOZDPQREFUKUASOUBSOZUCUDULTQFTQUEUFUIABCULDEFGHIJKLMULUGUH
      UJ $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x y R $.  $d x y S $.
    $( Closure of the quotient function.  (Contributed by Mario Carneiro,
       26-Jul-2014.) $)
    quotcl2 $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) /\ G =/= 0p ) ->
                    ( F quot G ) e. ( Poly ` CC ) ) $=
      ( vx vy cply cfv wcel c0p wne w3a cc cv wa caddc co addcl adantl sseldi
      c1 cmul mulcl cc0 cdiv reccl cneg neg1cn plyssc simp1 simp2 simp3 quotcl
      a1i ) BAFGZHZCUNHZCIJZKZDELBCDMZLHZEMZLHNZUSVAOPLHURUSVAQRVBUSVAUAPLHURUS
      VAUBRUTUSUCJNTUSUDPLHURUSUERTUFLHURUGUMURUNLFGZBAUHZUOUPUQUISURUNVCCVDUOU
      PUQUJSUOUPUQUKUL $.

    quotdgr.1 $e |- R = ( F oF - ( G oF x. ( F quot G ) ) ) $.
    $( Remainder property of the quotient function.  (Contributed by Mario
       Carneiro, 26-Jul-2014.) $)
    quotdgr $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) /\ G =/= 0p ) ->
                    ( R = 0p \/ ( deg ` R ) < ( deg ` G ) ) ) $=
      ( vx vy cply cfv wcel c0p wne co cc cdgr cv wa adantl c1 sseldi w3a cquot
      wceq clt wbr caddc addcl cmul mulcl cc0 cdiv reccl cneg neg1cn a1i plyssc
      wo simp1 simp2 simp3 quotlem simprd ) CBHIZJZDVCJZDKLZUAZCDUBMNHIZJAKUCAO
      IDOIUDUEUQVGFGANCDFPZNJZGPZNJQZVIVKUFMNJVGVIVKUGRVLVIVKUHMNJVGVIVKUIRVJVI
      UJLQSVIUKMNJVGVIULRSUMNJVGUNUOVGVCVHCBUPZVDVEVFURTVGVCVHDVMVDVEVFUSTVDVEV
      FUTEVAVB $.
  $}

  ${
    $d z A $.  $d z F $.  $d z G $.  $d z S $.
    plyrem.1 $e |- G = ( Xp oF - ( CC X. { A } ) ) $.
    $( Closure of a linear factor.  (Contributed by Mario Carneiro,
       26-Jul-2014.) $)
    plyremlem $p |- ( A e. CC ->
    ( G e. ( Poly ` CC ) /\ ( deg ` G ) = 1 /\ ( `' G " { 0 } ) = { A } ) ) $=
      ( vz cc wcel cfv cdgr c1 wceq cc0 csn cidp cmin co caddc cmpt wa cvv a1i
      cply ccnv cima cxp cof wss ssid ax-1cn plyid mp2an plyconst mpan plysubcl
      sylancr syl5eqel cneg cv negcl addcom sylan negsub ancoms eqtrd mpteq2dva
      cnex negex simpr fconstmpt cid cres df-idp mptresid offval2 simpl 3eqtr4d
      eqtr4i syl6eqr fveq2d clt wbr 0dgr syl 0lt1 syl6eqbr dgrid eqcomi dgradd2
      eqid syl3anc eqtr3d syl5eq fveq1d adantr ovex fvmpt2 sylancl eqeq1d bitrd
      wb subeq0 pm5.32da wf wfn plyf ffn fniniseg eleq1a pm4.71rd 3bitr4d velsn
      4syl syl6bbr eqrdv 3jca ) AEFZBEUAGZFZBHGZIJBUBKLUCZALZJXOBMEXTUDZNUEOZXP
      CXOMXPFZYAXPFZYBXPFEEUFZIEFYCEUGZUHEUIUJZYEXOYDYFAEUKULEMYAUMUNUOZXOEAUPZ
      LUDZMPUEOZHGZXRIXOYKBHXOYKYBBXODEYIDUQZPOZQDEYMANOZQZYKYBXODEYNYOXOYMEFZR
      ZYNYMYIPOZYOXOYIEFZYQYNYSJAURZYIYMUSUTYQXOYSYOJYMAVAVBVCVDXODEYIYMPYJMSSE
      ESFXOVETZYISFYRAVFTXOYQVGZYJDEYIQJXODEYIVHTMDEYMQZJXOMVIEVJUUDVKDEVLVPTZV
      MXODEYMANMYASEEUUBUUCXOYQVNUUEYADEAQJXODEAVHTVMZVOCVQVRXOYJXPFZYCYJHGZIVS
      VTYLIJXOYEYTUUGYFUUAYIEUKUNYCXOYGTXOUUHKIVSXOYTUUHKJUUAYIWAWBWCWDEYJMUUHI
      UUHWHMHGIWEWFWGWIWJXODXSXTXOYMXSFZYMAJZYMXTFXOYQYMBGZKJZRZYQUUJRUUIUUJXOY
      QUULUUJYRUULYOKJZUUJYRUUKYOKYRUUKYMYPGZYOXOUUKUUOJYQXOYMBYPXOBYBYPCUUFWKW
      LWMYRYQYOSFUUOYOJUUCYMANWNDEYOSYPYPWHWOWPVCWQYQXOUUNUUJWSYMAWTVBWRXAXOXQE
      EBXBBEXCUUIUUMWSYHEBXDEEBXEEKYMBXFXKXOUUJYQAEYMXGXHXIDAXJXLXMXN $.

    plyrem.2 $e |- R = ( F oF - ( G oF x. ( F quot G ) ) ) $.
    $( The polynomial remainder theorem, or little B&eacute;zout's theorem (by
       contrast to the regular B&eacute;zout's theorem ~ bezout ).  If a
       polynomial ` F ` is divided by the linear factor ` x - A ` , the
       remainder is equal to ` F ( A ) ` , the evaluation of the polynomial at
       ` A ` (interpreted as a constant polynomial).  This is part of Metamath
       100 proof #89.  (Contributed by Mario Carneiro, 26-Jul-2014.) $)
    plyrem $p |- ( ( F e. ( Poly ` S ) /\ A e. CC ) ->
                   R = ( CC X. { ( F ` A ) } ) ) $=
      ( cfv wcel cc cc0 csn cdgr wceq c1 clt c0p syl wb cvv cply wa cxp wbr wne
      wo wi plyssc simpl sseldi ccnv w3a plyremlem adantl simp1d simp2d ax-1ne0
      cima a1i eqnetrd fveq2 dgr0 syl6eq necon3i quotdgr syl3anc 0lt1 syl5breqr
      breq1d syl5ibrcom pm2.62 sylc breqtrd cn0 cquot co cmul cof cmin plymulcl
      quotcl2 plysubcl syl5eqel dgrcl nn0lt10b mpbid 0dgrb fveq1d fveq1i wf wfn
      syl2anc plyf adantr ffn cnex inidm eqidd cun simp3d ssun1 syl6eqssr snssg
      offn wss mpbird ofmulrt eleqtrrd fniniseg simprd anabss3 syl5eq ffvelrnda
      ofval subid1d eqtrd fvex fvconst2 3eqtr3d sneqd xpeq2d eqtr4d ) DCUAHZIZA
      JIZUBZBJKBHZLZUCZJADHZLZUCYFBMHZKNZBYINZYFYLOPUDZYMYFYLEMHZOPYFBQNZYLYPPU
      DZUFZYQYRUGYRYFDJUAHZIZEYTIZEQUEZYSYFYCYTDCUHYDYEUIUJZYFUUBYPONZEUKKLZURZ
      ALZNZYEUUBUUEUUIULYDAEFUMUNZUOZYFYPKUEUUCYFYPOKYFUUBUUEUUIUUJUPZOKUEYFUQU
      SUTEQYPKEQNYPQMHZKEQMVAVBVCVDRZBJDEGVEVFYFYRYQKYPPUDYFKOYPPVGUULVHYQYLKYP
      PYQYLUUMKBQMVAVBVCVIVJYQYRVKVLUULVMYFYLVNIZYOYMSYFBYTIZUUOYFBDEDEVOVPZVQV
      RVPZVSVRVPZYTGYFUUAUURYTIZUUSYTIUUDYFUUBUUQYTIZUUTUUKYFUUAUUBUUCUVAUUDUUK
      UUNJDEWAVFZJEUUQVTWLJDUURWBWLWCZJBWDRYLWERWFYFUUPYMYNSUVCJBWGRWFZYFYKYHJY
      FYJYGYFABHZAYIHZYJYGYFABYIUVDWHYFUVEYJKVSVPZYJYFUVEAUUSHZUVGABUUSGWIYDYEU
      VHUVGNYFJJYJKVSJDUURTTAYFJJDWJZDJWKYDUVIYECDWMZWNJJDWORYFJJVQJEUUQTTYFJJE
      WJZEJWKYFUUBUVKUUKJEWMRZJJEWORYFJJUUQWJZUUQJWKYFUVAUVMUVBJUUQWMRZJJUUQWOR
      JTIZYFWPUSZUVPJWQZXDZUVPUVPUVQYFYEUBYJWRYFAUURHKNZYEYFYEUVSYFAUURUKUUFURZ
      IZYEUVSUBZYFAUUGUUQUKUUFURZWSZUVTYFAUWDIZUUHUWDXEZYFUUHUUGUWDYFUUBUUEUUIU
      UJWTUUGUWCXAXBYEUWEUWFSYDAUWDJXCUNXFYFUVOUVKUVMUVTUWDNUVPUVLUVNJEUUQTXGVF
      XHYFUURJWKUWAUWBSUVRJKAUURXIRWFXJWNXNXKXLYFYJYDJJADUVJXMXOXPYEUVFYGNYDJYG
      AKBXQXRUNXSXTYAYB $.
  $}

  ${
    facth.1 $e |- G = ( Xp oF - ( CC X. { A } ) ) $.
    $( The factor theorem.  If a polynomial ` F ` has a root at ` A ` , then
       ` G = x - A ` is a factor of ` F ` (and the other factor is
       ` F quot G ` ).  This is part of Metamath 100 proof #89.  (Contributed
       by Mario Carneiro, 26-Jul-2014.) $)
    facth $p |- ( ( F e. ( Poly ` S ) /\ A e. CC /\ ( F ` A ) = 0 ) ->
                   F = ( G oF x. ( F quot G ) ) ) $=
      ( cply cfv wcel cc cc0 wceq w3a co cof csn syl cdgr c1 c0p wne cquot cmul
      cmin cxp eqid plyrem 3adant3 simp3 sneqd xpeq2d eqtrd cvv wf wb a1i simp1
      cnex plyf ccnv cima plyremlem simp1d plyssc sseldi simp2d ax-1ne0 eqnetrd
      3ad2ant2 fveq2 dgr0 syl6eq necon3i quotcl2 syl3anc plymulcl syl2anc mpbid
      ofsubeq0 ) CBFGZHZAIHZACGZJKZLZCDCDUAMZUBNMZUCNMZIJOZUDZKZCWFKZWDWGIWBOZU
      DZWIVTWAWGWMKWCAWGBCDEWGUEUFUGWDWLWHIWDWBJVTWAWCUHUIUJUKWDIULHZIICUMZIIWF
      UMZWJWKUNWNWDUQUOWDVTWOVTWAWCUPZBCURPWDWFIFGZHZWPWDDWRHZWEWRHZWSWDWTDQGZR
      KZDUSWHUTAOKZWAVTWTXCXDLWCADEVAVHZVBZWDCWRHWTDSTZXAWDVSWRCBVCWQVDXFWDXBJT
      XGWDXBRJWDWTXCXDXEVERJTWDVFUOVGDSXBJDSKXBSQGJDSQVIVJVKVLPICDVMVNIDWEVOVPI
      WFURPICWFULVRVNVQ $.
  $}

  ${
    $d g x A $.  $d g D $.  $d d f g x F $.  $d x ph $.  $d f R $.
    fta1.1 $e |- R = ( `' F " { 0 } ) $.
    ${
      fta1.2 $e |- ( ph -> D e. NN0 ) $.
      fta1.3 $e |- ( ph -> F e. ( ( Poly ` CC ) \ { 0p } ) ) $.
      fta1.4 $e |- ( ph -> ( deg ` F ) = ( D + 1 ) ) $.
      fta1.5 $e |- ( ph -> A e. ( `' F " { 0 } ) ) $.
      fta1.6 $e |- ( ph -> A. g e. ( ( Poly ` CC ) \ { 0p } )
        ( ( deg ` g ) = D -> ( ( `' g " { 0 } ) e. Fin /\
          ( # ` ( `' g " { 0 } ) ) <_ ( deg ` g ) ) ) ) $.
      $( Lemma for ~ fta1 .  (Contributed by Mario Carneiro, 26-Jul-2014.) $)
      fta1lem $p |- ( ph -> ( R e. Fin /\ ( # ` R ) <_ ( deg ` F ) ) ) $=
        ( wcel cfv cc co cc0 wceq c0p c1 vx cfn chash cdgr cle wbr cidp csn cxp
        cmin cof cquot ccnv cima cun cmul cply wne cdif wa eldifsn sylib simpld
        wf wfn wb plyf ffn fniniseg 4syl mpbid simprd eqid facth syl3anc cnveqd
        imaeq1d cvv cnex a1i wss ssid plyid mp2an plyconst sylancr plysubcl syl
        ax-1cn w3a plyremlem simp2d ax-1ne0 eqnetrd dgr0 syl6eq necon3i quotcl2
        fveq2 ofmulrt simp3d uneq1d 3eqtrd uncom 3eqtr4g cv wi wral eqcomd 0cnd
        mul01 adantl caofid1 df-0p oveq2i oveq2 sylanbrc cn0 dgrcl nn0cnd caddc
        3netr4d addcom fveq2d dgrmul 3eqtr3d oveq1d 3eqtrrd eqeq1d cnveq eleq1d
        syl22anc addcanad breq12d anbi12d sylancl hashcl nn0red cr breqtrd snfi
        imbi12d rspcv syl3c unfi eqeltrd peano2re hashun2 hashsng 1red leadd1dd
        oveq2d breqtrrd letrd eqbrtrd jca ) ADUBMDUCNZFUDNZUEUFADFUGOBUHZUIZUJU
        KPZULPZUMZQUHZUNZUUSUOZUBAFUMZUVDUNZUUSUVEUOZDUVFAUVHUVAUVBUPUKZPZUMZUV
        DUNZUVAUMUVDUNZUVEUOZUVIAUVGUVLUVDAFUVKAFOUQNZMZBOMZBFNQRZFUVKRAUVQFSUR
        ZAFUVPSUHUSZMUVQUVTUTIFUVPSVAVBZVCZAUVRUVSABUVHMZUVRUVSUTZKAUVQOOFVDFOV
        EUWDUWEVFUWCOFVGOOFVHOQBFVIVJVKZVCZAUVRUVSUWFVLBOFUVAUVAVMZVNVOZVPVQAOV
        RMZOOUVAVDZOOUVBVDZUVMUVORUWJAVSVTZAUVAUVPMZUWKAUGUVPMZUUTUVPMZUWNOOWAZ
        TOMZUWOOWBZWIOWCWDAUWQUVRUWPUWSUWGBOWEWFOUGUUTWGWFZOUVAVGWHZAUVBUVPMZUW
        LAUVQUWNUVASURZUXBUWCUWTAUVAUDNZQURUXCAUXDTQAUWNUXDTRZUVNUUSRZAUVRUWNUX
        EUXFWJUWGBUVAUWHWKWHZWLZTQURAWMVTWNUVASUXDQUVASRUXDSUDNQUVASUDWSWOWPWQW
        HZOFUVAWRVOZOUVBVGWHOUVAUVBVRWTVOAUVNUUSUVEAUWNUXEUXFUXGXAXBXCGUVEUUSXD
        XEZAUVEUBMZUUSUBMZUVFUBMZAUXLUVEUCNZUVBUDNZUEUFZAUVBUWAMZEXFZUDNZCRZUXS
        UMZUVDUNZUBMZUYCUCNZUXTUEUFZUTZXGZEUWAXHUXPCRZUXLUXQUTZAUXBUVBSURZUXRUX
        JAUVKUVASUVJPZURUYKAFSUVKUYLAUVQUVTUWBVLAFUVKUWIXIAUVAOUVDUIZUVJPUYMUYL
        SAUAOQQUPOUVAVROOUWMUXAAXJZUYNUAXFZOMUYOQUPPQRAUYOXKXLXMSUYMUVAUVJXNXOX
        NXEYBUVBSUVKUYLUVBSUVAUVJXPWQWHZUVBUVPSVAXQLATUXPCUWRAWIVTAUXPAUXBUXPXR
        MUXJOUVBXSWHXTACHXTZATCYAPZCTYAPZUXDUXPYAPZTUXPYAPAUWRCOMUYRUYSRWIUYQTC
        YCWFAUURUVKUDNZUYSUYTAFUVKUDUWIYDJAUWNUXCUXBUYKVUAUYTRUWTUXIUXJUYPOUVAU
        VBUXDUXPUXDVMUXPVMYEYLYFAUXDTUXPYAUXHYGYHYMZUYHUYIUYJXGEUVBUWAUXSUVBRZU
        YAUYIUYGUYJVUCUXTUXPCUXSUVBUDWSZYIVUCUYDUXLUYFUXQVUCUYCUVEUBVUCUYBUVCUV
        DUXSUVBYJVQZYKVUCUYEUXOUXTUXPUEVUCUYCUVEUCVUEYDVUDYNYOUUBUUCUUDZVCZBUUA
        ZUVEUUSUUEYPZUUFAUUQUVFUCNZUURUEADUVFUCUXKYDAVUJUXOTYAPZUURAVUJAUXNVUJX
        RMVUIUVFYQWHYRAUXOYSMVUKYSMAUXOAUXLUXOXRMVUGUVEYQWHYRZUXOUUGWHAUURAUVQU
        URXRMUWCOFXSWHYRAVUJUXOUUSUCNZYAPZVUKUEAUXLUXMVUJVUNUEUFVUGVUHUVEUUSUUH
        YPAVUMTUXOYAAUVRVUMTRUWGBOUUIWHUULYTAVUKUYSUURUEAUXOCTVULACHYRAUUJAUXOU
        XPCUEAUXLUXQVUFVLVUBYTUUKJUUMUUNUUOUUP $.
    $}

    $( The easy direction of the Fundamental Theorem of Algebra:  A nonzero
       polynomial has at most ` deg ( F ) ` roots.  (Contributed by Mario
       Carneiro, 26-Jul-2014.) $)
    fta1 $p |- ( ( F e. ( Poly ` S ) /\ F =/= 0p ) ->
                 ( R e. Fin /\ ( # ` R ) <_ ( deg ` F ) ) ) $=
      ( vf vx cfv wcel c0p wa cdgr wceq cfn chash cle cc0 wi cc wral c0 vd cply
      vg wne wbr eqid cv ccnv csn cima cdif cn0 dgrcl adantr c1 caddc co imbi1d
      eqeq2 ralbidv wn eldifsni simplr wb eldifi ad2antrr 0dgrb mpbid fveq1d wf
      cxp syl wfn plyf ffn fniniseg 4syl biimpa simprd simpld fvconst2 3eqtr3rd
      fvex sneqd xpeq2d eqtrd df-0p syl6eqr ex necon3ad eq0rdv nn0ge0 3syl 0fin
      mpd id syl6eqel biantrurd fveq2 syl6eq breq1d bitr3d syl5ibrcom syld rgen
      hash0 eqeq1d cnveq imaeq1d eleq1d fveq2d breq12d anbi12d imbi12d ad2antlr
      cbvralv wex n0 simplll simpllr simprl simprr fta1lem exp32 exlimdv syl5bi
      a1dd pm2.61dne com23 ralrimdva nn0ind plyssc sseli rspcv sylbir sylan mpi
      eldifsn ) CBUBGZHZCIUDZJZCKGZUUCLZAMHZANGZUUCOUEZJZUUCUFUUBEUGZKGZUUCLZUU
      IUHZPUIZUJZMHZUUNNGZUUJOUEZJZQZERUBGZIUIZUKZSZUUDUUHQZUUBUUCULHZUVCYTUVEU
      UABCUMUNUUJFUGZLZUURQZEUVBSUUJPLZUURQZEUVBSUUJUAUGZLZUURQZEUVBSZUUJUVKUOU
      PUQZLZUURQZEUVBSZUVCFUAUUCUVFPLZUVHUVJEUVBUVSUVGUVIUURUVFPUUJUSURUTUVFUVK
      LZUVHUVMEUVBUVTUVGUVLUURUVFUVKUUJUSURUTUVFUVOLZUVHUVQEUVBUWAUVGUVPUURUVFU
      VOUUJUSURUTUVFUUCLZUVHUUSEUVBUWBUVGUUKUURUVFUUCUUJUSURUTUVJEUVBUUIUVBHZUV
      IUUNTLZUURUWCUVIUWDUWCUVIJZFUUNUWEUUIIUDZUVFUUNHZVAUWCUWFUVIUUIUUTIVBUNUW
      EUWGUUIIUWEUWGUUIILUWEUWGJZUUIRUUMVKZIUWHUUIRPUUIGZUIZVKZUWIUWHUVIUUIUWLL
      ZUWCUVIUWGVCUWHUUIUUTHZUVIUWMVDUWCUWNUVIUWGUUIUUTUVAVEZVFRUUIVGVLVHZUWHUW
      KUUMRUWHUWJPUWHUVFUUIGZUVFUWLGZPUWJUWHUVFUUIUWLUWPVIUWHUVFRHZUWQPLZUWEUWG
      UWSUWTJZUWEUWNRRUUIVJUUIRVMUWGUXAVDUWCUWNUVIUWOUNRUUIVNRRUUIVORPUVFUUIVPV
      QVRZVSUWHUWSUWRUWJLUWHUWSUWTUXBVTRUWJUVFPUUIWCWAVLWBWDWEWFWGWHWIWJWOWKWIU
      WCUURUWDPUUJOUEZUWCUWNUUJULHUXCUWORUUIUMUUJWLWMZUWDUUQUURUXCUWDUUOUUQUWDU
      UNTMUWDWPWNWQWRUWDUUPPUUJOUWDUUPTNGPUUNTNWSXFWTXAXBZXCXDXEUVNUCUGZKGZUVKL
      ZUXFUHZUUMUJZMHZUXJNGZUXGOUEZJZQZUCUVBSZUVKULHZUVRUVMUXOEUCUVBUUIUXFLZUVL
      UXHUURUXNUXRUUJUXGUVKUUIUXFKWSZXGUXRUUOUXKUUQUXMUXRUUNUXJMUXRUULUXIUUMUUI
      UXFXHXIZXJUXRUUPUXLUUJUXGOUXRUUNUXJNUXTXKUXSXLXMXNXPUXQUXPUVQEUVBUXQUWCJZ
      UVPUXPUURUYAUVPUXPUURQZUYAUVPJZUYBUUNTUYCUWDUURUXPUYCUURUWDUXCUWCUXCUXQUV
      PUXDXOUXEXCYGUUNTUDUWGFXQUYCUYBFUUNXRUYCUWGUYBFUYCUWGUXPUURUYCUWGUXPJZJUV
      FUVKUUNUCUUIUUNUFUXQUWCUVPUYDXSUXQUWCUVPUYDXTUYAUVPUYDVCUYCUWGUXPYAUYCUWG
      UXPYBYCYDYEYFYHWIYIYJYFYKVLYTCUUTHZUUAUVCUVDQZYSUUTCBYLYMUYEUUAJCUVBHUYFC
      UUTIYRUUSUVDECUVBUUICLZUUKUUDUURUUHUYGUUJUUCUUCUUICKWSZXGUYGUUOUUEUUQUUGU
      YGUUNAMUYGUUNCUHZUUMUJAUYGUULUYIUUMUUICXHXIDWHZXJUYGUUPUUFUUJUUCOUYGUUNAN
      UYJXKUYHXLXMXNYNYOYPWOYQ $.
  $}

  ${
    $d x y z F $.  $d x y z G $.  $d x y z H $.  $d x y z S $.
    quotcan.1 $e |- H = ( F oF x. G ) $.
    $( Exact division with a multiple.  (Contributed by Mario Carneiro,
       26-Jul-2014.) $)
    quotcan $p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) /\ G =/= 0p ) ->
                    ( H quot G ) = F ) $=
      ( vx cfv wcel c0p co cmin cc wceq cmul cdgr wbr syl2anc cvv syl cle vy vz
      cply wne w3a cquot cof cc0 csn cxp clt wo wb plyssc simp2 sseldi simp1 wa
      plymulcl syl5eqel 3adant3 simp3 quotcl2 syl3anc plysubcl plymul0or a1i wf
      cnex cv mulcom adantl caofcom syl5eq oveq1d subdi caofdi eqtr4d eqeq1d wn
      plyf neneqd biorf 3bitr4d biimpd caddc wi eqid dgrmul expr syl21anc dgrcl
      cr cn0 nn0red nn0addge1 breq2 syl5ibrcom syld fveq2d breq2d lenltd bitr3d
      sylibd necon4ad quotdgr mpjaod df-0p syl6eq ofsubeq0 mpbid eqcomd ) BAUCG
      ZHZCXMHZCIUDZUEZBDCUFJZXQBXRKUGZJZLUHUIUJZMZBXRMZXQXTIYAXQDCXRNUGZJZXSJZI
      MZXTIMZYFOGZCOGZUKPZXQYGYHXQCXTYDJZIMZCIMZYHULZYGYHXQCLUCGZHZXTYPHZYMYOUM
      XQXMYPCAUNZXNXOXPUOZUPZXQBYPHXRYPHZYRXQXMYPBYSXNXOXPUQZUPXQDYPHZYQXPUUBXN
      XOUUDXPXNXOURDBCYDJZYPEABCUSUTVAZUUAXNXOXPVBZLDCVCVDZLBXRVEQZLCXTVFQXQYFY
      LIXQYFCBYDJZYEXSJYLXQDUUJYEXSXQDUUEUUJEXQFUALNLBCRLRHZXQVIVGZXQXNLLBVHZUU
      CABWASZXQXOLLCVHYTACWASZFVJZLHZUAVJZLHZURUUPUURNJZUURUUPNJMXQUUPUURVKVLVM
      VNVOXQFUAUBLKLNCBXRLKRUULUUOUUNXQUUBLLXRVHZUUHLXRWASZUUQUUSUBVJZLHUEUUPUU
      RUVCKJNJUUTUUPUVCNJKJMXQUUPUURUVCVPVLVQVRZVSXQYNVTYHYOUMXQCIUUGWBYNYHWCSW
      DWEXQYKXTIXQXTIUDZYJYLOGZTPZYKVTZXQUVEUVFYJXTOGZWFJZMZUVGXQYQXPYRUVEUVKWG
      UUAUUGUUIYQXPURYRUVEUVKLCXTYJUVIYJWHUVIWHWIWJWKXQUVGUVKYJUVJTPZXQYJWMHUVI
      WNHZUVLXQYJXQXOYJWNHYTACWLSWOZXQYRUVMUUILXTWLSYJUVIWPQUVFUVJYJTWQWRWSXQYJ
      YITPUVGUVHXQYIUVFYJTXQYFYLOUVDWTXAXQYJYIUVNXQYIXQYFYPHZYIWNHXQUUDYEYPHZUV
      OUUFXQYQUUBUVPUUAUUHLCXRUSQLDYEVEQLYFWLSWOXBXCXDXEXQUUDYQXPYGYKULUUFUUAUU
      GYFLDCYFWHXFVDXGXHXIXQUUKUUMUVAYBYCUMUULUUNUVBLBXRRXJVDXKXL $.

    $(
    plydivcn.2 @e |- A = ( CC \ ( `' G " { 0 } ) ) @.
    @( Given two polynomials that are known to be multiples of each other, one
       cannot just divide one by the other as functions to recover the
       quotient, because it would leave holes at each zero of the denominator
       function.  However, a more analytic solution to this algebraic problem
       is to extend the function by continuity over the singularities; here
       we show that this does indeed recover the divisor function.  (If they
       are not properly divisible, the result will have poles instead of
       removable singularities and the continuity extension will fail.)  See
       ~ df-zeta for a more general application of this technique. @)
    plydivcn @p |- ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) /\ G =/= 0p ) ->
     F = ( iota_ f e. ( CC -cn-> CC ) ( f |` A ) = ( ( H oF / G ) |` A ) ) ) @=
      ? @.
    $)
  $}

  ${
    $d f D $.  $d f F $.  $d f k y z N $.  $d f k x Q $.  $d d f g k x y z R $.
    $d f z A $.  $d k x z ph $.
    vieta1.1 $e |- A = ( coeff ` F ) $.
    vieta1.2 $e |- N = ( deg ` F ) $.
    vieta1.3 $e |- R = ( `' F " { 0 } ) $.
    vieta1.4 $e |- ( ph -> F e. ( Poly ` S ) ) $.
    vieta1.5 $e |- ( ph -> ( # ` R ) = N ) $.
    ${
      vieta1lem.6 $e |- ( ph -> D e. NN ) $.
      vieta1lem.7 $e |- ( ph -> ( D + 1 ) = N ) $.
      vieta1lem.8 $e |- ( ph -> A. f e. ( Poly ` CC ) ( ( D = ( deg ` f ) /\
    ( # ` ( `' f " { 0 } ) ) = ( deg ` f ) ) -> sum_ x e. ( `' f " { 0 } ) x =
          -u ( ( ( coeff ` f ) ` ( ( deg ` f ) - 1 ) ) /
               ( ( coeff ` f ) ` ( deg ` f ) ) ) ) ) $.
      vieta1lem.9 $e |- Q = ( F quot ( Xp oF - ( CC X. { z } ) ) ) $.
      $( Lemma for ~ vieta1 .  (Contributed by Mario Carneiro, 28-Jul-2014.) $)
      vieta1lem1 $p |- ( ( ph /\ z e. R ) ->
        ( Q e. ( Poly ` CC ) /\ D = ( deg ` Q ) ) ) $=
        ( cv wcel wa cc cply cfv cdgr wceq cidp csn cxp cof co cquot c0p plyssc
        cmin wne adantr sseldi c1 ccnv cc0 cima w3a cdm cnvimass eqsstri wf syl
        plyf fdm syl5sseq sselda eqid plyremlem simp1d simp2d ax-1ne0 a1i fveq2
        eqnetrd dgr0 syl6eq necon3i quotcl2 syl3anc syl5eqel ax-1cn nncnd dgrcl
        cn0 nn0cnd caddc addcom sylancr cmul eleq2i wb fniniseg syl5bb simplbda
        wfn ffn facth oveq2i syl6eqr fveq2d wo wn cn peano2nnd nnne0d syl5eqner
        eqeltrrd eqnetrrd syl2anc necon3abid mpbid neanior sylibr simprd dgrmul
        plymul0or syl22anc 3eqtrd oveq1d addcanad jca ) ACUAZGUBZUCZFUDUEUFZUBZ
        EFUGUFZUHYLFJUIUDYJUJZUKUQULUMZUNUMZYMTYLJYMUBYQYMUBZYQUOURZYRYMUBYLHUE
        UFZYMJHUPAJUUAUBZYKOUSZUTYLYSYQUGUFZVAUHZYQVBVCUJZVDYPUHZYLYJUDUBZYSUUE
        UUGVEAGUDYJAJVFZGUDGJVBUUFVDZUUINJUUFVGVHAUDUDJVIZUUIUDUHAUUBUUKOHJVKVJ
        ZUDUDJVLVJVMVNZYJYQYQVOZVPVJZVQZYLUUDVCURYTYLUUDVAVCYLYSUUEUUGUUOVRZVAV
        CURYLVSVTWBYQUOUUDVCYQUOUHZUUDUOUGUFZVCYQUOUGWAWCWDWEVJZUDJYQWFWGWHZYLV
        AEYOVAUDUBZYLWIVTAEUDUBZYKAEQWJUSZYLYOYLYNYOWLUBUVAUDFWKVJWMYLVAEWNUMZE
        VAWNUMZUUDYOWNUMZVAYOWNUMYLUVBUVCUVEUVFUHWIUVDVAEWOWPYLUVFJUGUFZYQFWQUL
        ZUMZUGUFZUVGAUVFUVHUHYKAUVFKUVHRMWDUSYLJUVJUGYLJYQYRUVIUMZUVJYLUUBUUHYJ
        JUFVCUHZJUVLUHUUCUUMAYKUUHUVMYKYJUUJUBZAUUHUVMUCZGUUJYJNWRAJUDXCZUVNUVO
        WSAUUKUVPUULUDUDJXDVJUDVCYJJWTVJXAXBYJHJYQUUNXEWGFYRYQUVITXFXGZXHYLYSYT
        YNFUOURZUVKUVGUHUUPUUTUVAYLYTUVRYLUURFUOUHXIZXJZYTUVRUCYLUVJUOURUVTYLJU
        VJUOUVQAJUOURZYKAUVHVCURUWAAUVHKVCMAKAUVFKXKRAEQXLXOXMXNJUOUVHVCJUOUHUV
        HUUSVCJUOUGWAWCWDWEVJUSXPYLUVSUVJUOYLYSYNUVJUOUHUVSWSUUPUVAUDYQFYDXQXRX
        SYQUOFUOXTYAYBUDYQFUUDYOUUDVOYOVOYCYEYFYLUUDVAYOWNUUQYGYFYHYI $.

      $( Lemma for ~ vieta1 : inductive step.  Let ` z ` be a root of ` F ` .
         Then ` F = ( Xp - z ) x. Q ` for some ` Q ` by the factor theorem, and
         ` Q ` is a degree- ` D ` polynomial, so by the induction hypothesis
         ` sum_ x e. ( ``' Q " 0 ) x = -u ( coeff `` Q ) `` ( D - 1 ) / `
         ` ( coeff `` Q ) `` D ` , so ` sum_ x e. R x = z - ( coeff `` Q ) `` `
         ` ( D - 1 ) / ( coeff `` Q ) `` D ` .  Now the coefficients of ` F `
         are ` A `` ( D + 1 ) = ( coeff `` Q ) `` D ` and ` A `` D = `
         ` sum_ k e. ( 0 ... D ) ( coeff `` Xp - z ) `` k x. ( coeff `` Q ) `
         ` `` ( D - k ) ` , which works out to ` -u z x. ( coeff `` Q ) `` D `
         ` + ( coeff `` Q ) `` ( D - 1 ) ` , so putting it all together we have
         ` sum_ x e. R x = -u A `` D / A `` ( D + 1 ) ` as we wanted to show.
         (Contributed by Mario Carneiro, 28-Jul-2014.) $)
      vieta1lem2 $p |- ( ph ->
        sum_ x e. R x = -u ( ( A ` ( N - 1 ) ) / ( A ` N ) ) ) $=
        ( vk cv wcel csu c1 cmin co cfv cdiv cneg wceq c0 wne chash cc0 eqnetrd
        caddc cn cfn wb cdgr cle wbr cply c0p wa fveq2 dgr0 syl6eq necon3i fta1
        syl syl2anc simpld necon3bid mpbid sylib csn ccnv cima cin wn cc simprd
        ccoe cn0 nn0red eqeltrd cun wss fveq2d cidp cof cmul adantr plyf sselda
        wf 3syl eleq2i wfn ffn syl3anc oveq2i syl6eqr imaeq1d syl5eq cvv 3eqtrd
        a1i eqtr4d eqtr3d sylibr sylancr ax-1cn adantl oveq1d eqeq12d mpd eqtrd
        eqid id wi fveq12d oveq12d negeqd ax-1ne0 fveq1d coef3 cif coeidp dgrub
        breq2d 3expia necon1bd ofval mpan2 ffvelrnd cfz syl2an peano2nnd nnne0d
        wex eqeltrrd syl5eqner hasheq0 n0 incom cr vieta1lem1 dgrcl ltp1d gtned
        snssi ssequn1 cxp cquot cdm cnvimass eqsstri fdm syl5sseq fniniseg 4syl
        syl5bb simplbda facth cnveqd w3a plyremlem simp1d ofmulrt simp3d uneq1d
        cnex eqnetrrd plymul0or necon3abid neanior breqtrrd snfi hashun2 addcom
        wo nncnd hashsng 3brtr3d hashcl leadd2d mpbird letri3d mpbir2and syl5ib
        1red necon3ad disjsn fsumsplit sumsn negnegd wral cnveq anbi12d sumeq1d
        eqeq2d imbi12d rspcv mp2and simp2d dgrmul syl22anc coemulhi plyid mp2an
        sylc ssid plyconst coesub 1nn0 mp2b nn0ex inidm iftruei clt 0lt1 ltnlei
        0re mpbi mtbiri sylan 1m0e1 mulid2d negcld nnm1nn0 dgreq0 divcld negdid
        1re 0dgr mulcld divdird coemul 1e0p1 sumeq1i 0nn0 nn0uz eleqtri elfznn0
        cuz ffvelrn pncan sylancl nnuz syl6eleq fznn0sub syldan sylan2br oveq2d
        fzss2 fsump1 cdif eldifn eldifi cz elfzuz 1z elfz5 bitr4d sylan2 mul02d
        sylibrd fzfid fsumss 0z nesymi iffalsei 0cn vex fvconst2 ax-mp syl5reqr
        coefv0 df-neg subid1d oveq2 fsum1 3eqtr3rd 3eqtr4rd divcan4d exlimddv )
[encoded data, 6800 characters]
        WI $.
    $}

    vieta1.6 $e |- ( ph -> N e. NN ) $.
    $( The first-order Vieta's formula (see
       ~ http://en.wikipedia.org/wiki/Vieta%27s_formulas ).  If a polynomial of
       degree ` N ` has ` N ` distinct roots, then the sum over these roots can
       be calculated as ` -u A ( N - 1 ) / A ( N ) ` .  (If the roots are not
       distinct, then this formula is still true but must double-count some of
       the roots according to their multiplicities.)  (Contributed by Mario
       Carneiro, 28-Jul-2014.) $)
    vieta1 $p |- ( ph ->
      sum_ x e. R x = -u ( ( A ` ( N - 1 ) ) / ( A ` N ) ) ) $=
      ( cc cfv wcel wceq cc0 c1 co vf vy vd vk vg vz cply cv cdgr ccnv csn cima
      chash wa csu cmin ccoe cdiv cneg wi wral plyssc sseldi caddc eqeq1 anbi1d
      cn imbi1d ralbidv cn0 eqid coef3 adantr 0nn0 ffvelrn sylancl simpr fveq2d
      wf 1nn0 c0p wne ax-1ne0 a1i eqnetrrd fveq2 dgr0 syl6eq necon3i syl dgreq0
      wb necon3bid mpbid eqnetrd divcld negcld id sumsn syl2anc adantrr cfn wss
      cen wbr cle fta1 syldan simpld cfz cexp coeid2 oveq2d sumeq1d nn0uz 1e0p1
      cmul oveq2 oveq12d ffvelrnda expcl sylan mulcld cz 0z exp0d mulid1d eqtrd
      eqeltrd sylancr negeqd imaeq1d eqeq12d anbi12d fveq12d imbi12d syl6eqr
      oveq1d eqeq2d cnveq fsum1 mulneg2d divcan2d 3eqtrd negidd fsump1i 3eqtr2d
      jctil exp1d simprd wfn ffn fniniseg mpbir2and snssd hashsng simprr eqtr4d
      plyf snfi hashen fisseneq syl3anc 1m1e0 syl5eqr 3eqtr3d ex cbvsumv eqeq1i
      rgen imbi2i ralbii w3a cidp cquot simp1r simp3r simp1l simp3l simp2 sylib
      cxp cof vieta1lem2 3exp syl5bir ralrimdva cbvralv syl6ib biantrur syl6bbr
      nnind rspcv syl3c ) AFNUGOZPGUAUHZUIOZQZUWPUJZRUKZULZUMOZUWQQZUNZUXABUHZB
      UOZUWQSUPTZUWPUQOZOZUWQUXHOZURTZUSZQZUTZUAUWOVAZDUMOZGQZDUXEBUOZGSUPTZCOZ
      GCOZURTZUSZQZAEUGOUWOFEVBKVCAGVGPUXOMUBUHZUWQQZUXCUNZUXMUTZUAUWOVASUWQQZU
      XCUNZUXMUTZUAUWOVAUCUHZUWQQZUXCUNZUXMUTZUAUWOVAZUYLSVDTZUWQQZUXCUNZUXMUTZ
      UAUWOVAZUXOUBUCGUYESQZUYHUYKUAUWOVUBUYGUYJUXMVUBUYFUYIUXCUYESUWQVEVFVHVIU
      YEUYLQZUYHUYOUAUWOVUCUYGUYNUXMVUCUYFUYMUXCUYEUYLUWQVEVFVHVIUYEUYQQZUYHUYT
      UAUWOVUDUYGUYSUXMVUDUYFUYRUXCUYEUYQUWQVEVFVHVIUYEGQZUYHUXNUAUWOVUEUYGUXDU
      XMVUEUYFUWRUXCUYEGUWQVEVFVHVIUYKUAUWOUWPUWOPZUYJUXMVUFUYJUNZRUXHOZSUXHOZU
      RTZUSZUKZUXEBUOZVUKUXFUXLVUFUYIVUMVUKQZUXCVUFUYIUNZVUKNPZVUPVUNVUOVUJVUOV
      UHVUIVUOVJNUXHVSZRVJPZVUHNPVUFVUQUYIUXHNUWPUXHVKZVLVMZVNVJNRUXHVOVPZVUOVU
      QSVJPZVUINPVUTVTVJNSUXHVOVPZVUOVUIUXJRVUOSUWQUXHVUFUYIVQZVRZVUOUWPWAWBZUX
      JRWBZVUOUWQRWBVVFVUOSUWQRVVDSRWBVUOWCWDWEUWPWAUWQRUWPWAQUWQWAUIORUWPWAUIW
      FWGWHWIWJZVUFVVFVVGWLUYIVUFUWPWAUXJRUXHNUWPUWQUWQVKZVUSWKWMVMWNWOZWPZWQZV
      VLUXEVUKBVUKNUXEVUKQWRWSWTXAVUGVULUXAUXEBVUGUXAXBPZVULUXAXCZVULUXAXDXEZVU
      LUXAQVUFUYIVVMUXCVUOVVMUXBUWQXFXEZVUFUYIVVFVVMVVPUNVVHUXANUWPUXAVKXGXHXIZ
      XAVUFUYIVVNUXCVUOVUKUXAVUOVUKUXAPZVUPVUKUWPOZRQZVVLVUOVVSRUWQXJTZUDUHZUXH
      OZVUKVWBXKTZXQTZUDUOZRSXJTZVWEUDUOZRVUFUYIVUPVVSVWFQVVLUXHNUDUWPUWQVUKVUS
      VVIXLXHVUOVWGVWAVWEUDVUOSUWQRXJVVDXMXNVUOVVBVWHRQVUOVWEVUIVUKSXKTZXQTZVUH
      RUDRRSVJXOXPVWBSQVWCVUIVWDVWIXQVWBSUXHWFVWBSVUKXKXRXSVUOVWBVJPZUNVWCVWDVU
      OVJNVWBUXHVUTXTVUOVUPVWKVWDNPVVLVUKVWBYAYBYCVUORRXJTVWEUDUOZVUHQVURVUOVWL
      VUHVUKRXKTZXQTZVUHVUORYDPVWNNPVWLVWNQYEVUOVWNVUHNVUOVWNVUHSXQTVUHVUOVWMSV
      UHXQVUOVUKVVLYFXMVUOVUHVVAYGYHZVVAYIVWEVWNUDRVWBRQVWCVUHVWDVWMXQVWBRUXHWF
      VWBRVUKXKXRXSUUAYJVWOYHVNUUHVUOVUHVWJVDTVUHVUHUSZVDTRVUOVWJVWPVUHVDVUOVWJ
      VUIVUKXQTVUIVUJXQTZUSVWPVUOVWIVUKVUIXQVUOVUKVVLUUIXMVUOVUIVUJVVCVVKUUBVUO
      VWQVUHVUOVUHVUIVVAVVCVVJUUCYKUUDXMVUOVUHVVAUUEYHUUFUUJUUGVUOUWPNUUKZVVRVU
      PVVTUNWLVUFVWRUYIVUFNNUWPVSVWRNUWPUUSNNUWPUULWJVMNRVUKUWPUUMWJUUNUUOXAVUG
      VULUMOZUXBQZVVOVUGVWSUWQUXBVUFUYIVWSUWQQUXCVUOVWSSUWQVUOVUPVWSSQVVLVUKNUU
      PWJVVDYHXAVUFUYIUXCUUQUURVUFUYIVWTVVOWLZUXCVUOVULXBPVVMVXAVUKUUTVVQVULUXA
      UVAYJXAWNVULUXAUVBUVCXNVUFUYIVUKUXLQUXCVUOVUJUXKVUOVUHUXIVUIUXJURVUORUXGU
      XHVUORSSUPTUXGUVDVUOSUWQSUPVVDYRUVEVRVVEXSYKXAUVFUVGUVJUYLVGPZUYPUYQUEUHZ
      UIOZQZVXCUJZUWTULZUMOZVXDQZUNZVXGUXEBUOZVXDSUPTZVXCUQOZOZVXDVXMOZURTZUSZQ
      ZUTZUEUWOVAVUAVXBUYPVXSUEUWOUYPUYNUXAUYEUBUOZUXLQZUTZUAUWOVAZVXBVXCUWOPZU
      NZVXSVYBUYOUAUWOVYAUXMUYNVXTUXFUXLUXAUYEUXEUBBUYEUXEQWRUVHUVIUVKUVLZVYEVY
      CVXJVXRVYEVYCVXJUVMZBUFVXMUYLVXCUVNNUFUHUKUWBUPUWCTUVOTZVXGNUAVXCVXDVXMVK
      VXDVKVXGVKVXBVYDVYCVXJUVPVYEVYCVXEVXIUVQVXBVYDVYCVXJUVRVYEVYCVXEVXIUVSVYG
      VYCUYPVYEVYCVXJUVTVYFUWAVYHVKUWDUWEUWFUWGVXSUYTUEUAUWOVXCUWPQZVXJUYSVXRUX
      MVYIVXEUYRVXIUXCVYIVXDUWQUYQVXCUWPUIWFZYSVYIVXHUXBVXDUWQVYIVXGUXAUMVYIVXF
      UWSUWTVXCUWPYTYLZVRVYJYMYNVYIVXKUXFVXQUXLVYIVXGUXAUXEBVYKXNVYIVXPUXKVYIVX
      NUXIVXOUXJURVYIVXLUXGVXMUXHVXCUWPUQWFZVYIVXDUWQSUPVYJYRYOVYIVXDUWQVXMUXHV
      YLVYJYOXSYKYMYPUWHUWIUWLWJLUXNUXQUYDUTUAFUWOUWPFQZUXDUXQUXMUYDVYMUXDGFUIO
      ZQZUXQUNUXQVYMUWRVYOUXCUXQVYMUWQVYNGUWPFUIWFZYSVYMUXBUXPUWQGVYMUXADUMVYMU
      XAFUJZUWTULDVYMUWSVYQUWTUWPFYTYLJYQZVRVYMUWQVYNGVYPIYQZYMYNVYOUXQIUWJUWKV
      YMUXFUXRUXLUYCVYMUXADUXEBVYRXNVYMUXKUYBVYMUXIUXTUXJUYAURVYMUXGUXSUXHCVYMU
      XHFUQOCUWPFUQWFHYQZVYMUWQGSUPVYSYRYOVYMUWQGUXHCVYTVYSYOXSYKYMYPUWMUWN $.
  $}

  ${
    $d S a b p $.  $d F a b p $.  $d D a b p $.
    $( An infinite set of values can be extended to a polynomial in at most one
       way.  (Contributed by Stefan O'Rear, 14-Nov-2014.) $)
    plyexmo $p |- ( ( D C_ CC /\ -. D e. Fin ) -> E* p ( p e. ( Poly ` S ) /\
        ( p |` D ) = F ) ) $=
      ( va cc wcel wa cv cfv wceq cmin cc0 c0p wfn cvv wf plyf syl adantr vb wn
      wss cfn cply cres wmo wi wal cof co csn cxp ccnv cima simplr simpll sseld
      simprll ffn simprrl cnex a1i sselda fnfvof syl22anc simprlr eqtr4d fveq1d
      ffvelrnd simprrr fvres 3eqtr3d subeq0bd eqtrd ex jcad wb plysubcl syl2anc
      adantl fniniseg 4syl sylibrd ssrdv ssfi mtod chash cdgr cle wbr wne df-ne
      expcom biimpri eqid fta1 syl2an simpld mt3d df-0p syl6eq ofsubeq0 syl3anc
      mpbid alrimivv eleq1 reseq1 eqeq1d anbi12d mo4 sylibr plyssc sseli anim1i
      moimi ) AFUCZAUDGZUBZHZDIZFUEJZGZYAAUFZCKZHZDUGZYABUEJZGZYEHZDUGXTYFEIZYB
      GZYKAUFZCKZHZHZYAYKKZUHZEUIDUIYGXTYRDEXTYPYQXTYPHZYAYKLUJUKZFMULZUMZKZYQY
      SYTNUUBYSYTNKZYTUNUUAUOZUDGZYSUUFXRXQXSYPUPYSAUUEUCZUUFXRUHYSUAAUUEYSUAIZ
      AGZUUHFGZUUHYTJZMKZHZUUHUUEGZYSUUIUUJUULYSAFUUHXQXSYPUQZURYSUUIUULYSUUIHZ
      UUKUUHYAJZUUHYKJZLUKZMUUPYAFOZYKFOZFPGZUUJUUKUUSKYSUUTUUIYSFFYAQZUUTYSYCU
      VCXTYCYEYOUSZFYARSZFFYAUTSTYSUVAUUIYSFFYKQZUVAYSYLUVFXTYFYLYNVAZFYKRSZFFY
      KUTSTUVBUUPVBVCYSAFUUHUUOVDZFLYAYKPUUHVEVFUUPUUQUURUUPFFUUHYAYSUVCUUIUVET
      UVIVJUUPUUHYDJZUUHYMJZUUQUURUUPUUHYDYMYSYDYMKUUIYSYDCYMXTYCYEYOVGXTYFYLYN
      VKVHTVIUUIUVJUUQKYSUUHAYAVLWAUUIUVKUURKYSUUHAYKVLWAVMVNVOVPVQYSYTYBGZFFYT
      QYTFOUUNUUMVRYSYCYLUVLUVDUVGFYAYKVSVTZFYTRFFYTUTFMUUHYTWBWCWDWEUUFUUGXRUU
      EAWFWNSWGYSUUDUBZUUFYSUVNHUUFUUEWHJYTWIJWJWKZYSUVLYTNWLZUUFUVOHUVNUVMUVPU
      VNYTNWMWOUUEFYTUUEWPWQWRWSVPWTXAXBYSUVBUVCUVFUUCYQVRUVBYSVBVCUVEUVHFYAYKP
      XCXDXEVPXFYFYODEYQYCYLYEYNYAYKYBXGYQYDYMCYAYKAXHXIXJXKXLYJYFDYIYCYEYHYBYA
      BXMXNXOXPS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Algebraic numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c AA $.

  $( Extend class notation to include the set of algebraic numbers. $)
  caa $a class AA $. $( Blackboard bold capital A $)

  $( Define the set of algebraic numbers.  An algebraic number is a root of a
     nonzero polynomial over the integers.  Here we construct it as the union
     of all kernels (preimages of ` { 0 } ` ) of all polynomials in
     ` ( Poly `` ZZ ) ` , except the zero polynomial ` 0p ` .  (Contributed by
     Mario Carneiro, 22-Jul-2014.) $)
  df-aa $a |- AA = U_ f e. ( ( Poly ` ZZ ) \ { 0p } ) ( `' f " { 0 } ) $.

  ${
    $d f g k m n x y z A $.  $d f k m n z B $.  $d i j P $.  $d i j k m z ph $.
    $d f i j m z F $.  $d i j k n x y K $.  $d i j k m n x y N $.
    $d f k m z R $.
    $( Elementhood in the set of algebraic numbers.  (Contributed by Mario
       Carneiro, 22-Jul-2014.) $)
    elaa $p |- ( A e. AA <-> ( A e. CC /\
      E. f e. ( ( Poly ` ZZ ) \ { 0p } ) ( f ` A ) = 0 ) ) $=
      ( caa wcel cz cply cfv c0p csn cdif cv ccnv cc0 cima ciun cc wceq wrex wa
      bitri df-aa eleq2i eliun wf wfn eldifi plyf fniniseg 4syl rexbiia r19.42v
      wb ffn ) ACDABEFGZHIZJZBKZLMINZOZDZAPDZAUQGMQZBUPRSZCUSABUAUBUTAURDZBUPRZ
      VCBAUPURUCVEVAVBSZBUPRVCVDVFBUPUQUPDUQUNDPPUQUDUQPUEVDVFULUQUNUOUFEUQUGPP
      UQUMPMAUQUHUIUJVAVBBUPUKTTT $.

    $( An algebraic number is a complex number.  (Contributed by Mario
       Carneiro, 23-Jul-2014.) $)
    aacn $p |- ( A e. AA -> A e. CC ) $=
      ( vf caa wcel cc cv cfv cc0 wceq cz cply c0p csn cdif wrex elaa simplbi )
      ACDAEDABFGHIBJKGLMNOABPQ $.

    $( The algebraic numbers are a subset of the complex numbers.  (Contributed
       by Mario Carneiro, 23-Jul-2014.) $)
    aasscn $p |- AA C_ CC $=
      ( vx caa cc cv aacn ssriv ) ABCADEF $.

    ${
      elqaa.1 $e |- ( ph -> A e. CC ) $.
      elqaa.2 $e |- ( ph -> F e. ( ( Poly ` QQ ) \ { 0p } ) ) $.
      elqaa.3 $e |- ( ph -> ( F ` A ) = 0 ) $.
      elqaa.4 $e |- B = ( coeff ` F ) $.
      elqaa.5 $e |- N = ( k e. NN0 |-> inf (
        { n e. NN | ( ( B ` k ) x. n ) e. ZZ } , RR , < ) ) $.
      elqaa.6 $e |- R = ( seq 0 ( x. , N ) ` ( deg ` F ) ) $.
      $( Lemma for ~ elqaa .  The function ` N ` represents the denominators of
         the rational coefficients ` B ` .  By multiplying them all together to
         make ` R ` , we get a number big enough to clear all the denominators
         and make ` R x. F ` an integer polynomial.  (Contributed by Mario
         Carneiro, 23-Jul-2014.)  (Revised by AV, 3-Oct-2020.) $)
      elqaalem1 $p |- ( ( ph /\ K e. NN0 ) ->
        ( ( N ` K ) e. NN /\ ( ( B ` K ) x. ( N ` K ) ) e. ZZ ) ) $=
        ( wcel cfv cz cn cq cn0 wa cv cmul co crab clt cinf fveq2 oveq1d eleq1d
        cr wceq rabbidv infeq1d ltso infex fvmpt adantl cuz wss wne ssrab2 nnuz
        c1 c0 sseqtri wrex cply cc0 wf c0p csn eldifad 0z ax-mp coef2 ffvelrnda
        zq sylancl qmulz syl rabn0 sylibr infssuzcl sylancr eqeltrd oveq2 elrab
        sylib ) AHUAPZUBZHIQZHCQZFUCZUDUEZRPZFSUFZPWMSPWNWMUDUEZRPZUBWLWMWRULUG
        UHZWRWKWMXAUMAEHEUCZCQZWOUDUEZRPZFSUFZULUGUHXAUAIXBHUMZULXFWRUGXGXEWQFS
        XGXDWPRXGXCWNWOUDXBHCUIUJUKUNUONULWRUGUPUQURUSWLWRVEUTQZVAWRVFVBZXAWRPW
        RSXHWQFSVCVDVGWLWQFSVHZXIWLWNTPXJAUATHCAGTVIQZPVJTPZUATCVKAGXKVLVMKVNVJ
        RPXLVOVJVSVPCTGMVQVTVRFWNWAWBWQFSWCWDWRVEWEWFWGWQWTFWMSWOWMUMWPWSRWOWMW
        NUDWHUKWIWJ $.

      ${
        elqaa.7 $e |- P = ( x e. _V , y e. _V |->
          ( ( x x. y ) mod ( N ` K ) ) ) $.
        $( Lemma for ~ elqaa .  (Contributed by Mario Carneiro, 23-Jul-2014.)
           (Revised by AV, 3-Oct-2020.) $)
        elqaalem2 $p |- ( ( ph /\ K e. ( 0 ... ( deg ` F ) ) ) ->
          ( R mod ( N ` K ) ) = 0 ) $=
          ( wcel vi vj vm cc0 cdgr cfv cfz co wa cmo cmpt cn0 cseq wceq elfznn0
          cn cv fveq2i nnmulcl adantl cz elqaalem1 simpld adantlr sylan2 cuz cq
          cmul cply c0p csn cdif eldifi dgrcl 3syl syl6eleq adantr nnz ad2antrl
          nn0uz zmodcld nn0zd ad2antll nnrpd crp nnre modabs2 syl2anc modmul12d
          cr oveq1 eqid ovex fvmpt oveq12d cvv oveq12 oveq1d ovmpt2a syl6eq syl
          mp2an 3eqtr4rd fveq2 eqtr4d seqhomo syl5eq 0zd seqf ffvelrnd syl5eqel
          vex nn0mulcl zmodcl syl2anr wf crab cinf eleq1d rabbidv infeq1d eqtri
          clt cbvmptv nnzd fmptd syl2an c0ex nn0cn mul02d 0mod sylan9eqr mul01d
          ffvelrn simpr cdiv c1 nncnd nnne0d dividd 1z syl6eqel wb nnred mpbird
          mod0 eqtrd seqz 3eqtr3d ) AKUDJUEUFZUGUHZTZUIZGHUPHUQZKLUFZUJUHZUKZUF
          ZUUJFHULUUNLUFZUUOUJUHZUKZUDUMUFZGUUOUJUHZUDUULAKULTZUURUVBUNKUUJUOZA
          UVDUIZUURUUJVHLUDUMZUFZUUQUFUVBGUVHUUQRURUVFUAUBVHFUPLUVAUUQUDUUJUAUQ
          ZUPTZUBUQZUPTZUIZUVIUVKVHUHZUPTZUVFUVIUVKUSZUTZUVIUUKTZUVFUVIULTZUVIL
          UFZUPTZUVIUUJUOZAUVSUWAUVDAUVSUIUWAUVIEUFUVTVHUHVATADEGHIJUVILMNOPQRV
          BVCZVDZVEAUUJUDVFUFZTUVDAUUJULUWEAJVGVIUFZVJVKZVLTJUWFTUUJULTZNJUWFUW
          GVMVGJVNVOZVTVPVQUVFUVMUIZUVIUUOUJUHZUVKUUOUJUHZVHUHZUUOUJUHZUVNUUOUJ
          UHZUVIUUQUFZUVKUUQUFZFUHZUVNUUQUFZUWJUWKUVIUWLUVKUUOUWJUWKUWJUVIUUOUV
          JUVIVATUVFUVLUVIVRVSZUVFUUOUPTZUVMUVFUXAKEUFUUOVHUHVATADEGHIJKLMNOPQR
          VBVCZVQZWAWBUWTUWJUWLUWJUVKUUOUVLUVKVATUVFUVJUVKVRWCZUXCWAWBUXDUWJUUO
          UXCWDZUWJUVIWJTZUUOWETZUWKUUOUJUHUWKUNUVJUXFUVFUVLUVIWFVSUXEUVIUUOWGW
          HUWJUVKWJTZUXGUWLUUOUJUHUWLUNUVLUXHUVFUVJUVKWFWCUXEUVKUUOWGWHWIUWJUWR
          UWKUWLFUHZUWNUWJUWPUWKUWQUWLFUVJUWPUWKUNUVFUVLHUVIUUPUWKUPUUQUUNUVIUU
          OUJWKUUQWLZUVIUUOUJWMZWNVSUVLUWQUWLUNUVFUVJHUVKUUPUWLUPUUQUUNUVKUUOUJ
          WKUXJUVKUUOUJWMZWNWCWOUWKWPTUWLWPTUXIUWNUNUXKUXLBCUWKUWLWPWPBUQZCUQZV
          HUHZUUOUJUHZUWNFUXMUWKUNUXNUWLUNUIUXOUWMUUOUJUXMUWKUXNUWLVHWQWRSUWMUU
          OUJWMWSXBWTUWJUVOUWSUWOUNUVQHUVNUUPUWOUPUUQUUNUVNUUOUJWKUXJUVNUUOUJWM
          ZWNXAXCUVRUVFUVSUVTUUQUFZUVIUVAUFZUNUWBUVFUVSUIZUXRUVTUUOUJUHZUXSUXTU
          WAUXRUYAUNUWDHUVTUUPUYAUPUUQUUNUVTUUOUJWKUXJUVTUUOUJWMZWNXAUVSUXSUYAU
          NUVFHUVIUUTUYAULUVAUUNUVIUNUUSUVTUUOUJUUNUVILXDWRUVAWLZUYBWNUTXEVEXFX
          GVEUULAUVDUURUVCUNZUVEUVFGUPTZUYDAUYEUVDAGUVHUPRAULUPUUJUVGAUAUBVHUPL
          UDULVTAXHUWCUVMUVOAUVPUTXIUWIXJXKVQHGUUPUVCUPUUQUUNGUUOUJWKUXJGUUOUJW
          MWNXAVEUUMUAUBFULUVAKUDUUJULUDUUMUVSUVKULTUIZUIUVIUVKFUHZUWOULUVIWPTZ
          UVKWPTUYGUWOUNUAXLZUBXLBCUVIUVKWPWPUXPUWOFUXMUVIUNZUXNUVKUNUIUXOUVNUU
          OUJUXMUVIUXNUVKVHWQWRSUXQWSXBUYFUVNVATUXAUWOULTUUMUYFUVNUVIUVKXMWBUUL
          AUVDUXAUVEUXBVEZUVNUUOXNXOXKUUMULULUVAXPZUVSUXSULTUVRUULAUVDUYLUVEUVF
          HULUUTULUVAUVFUUNULTZUIZUUSUUOUYNUUSAUYMUUSUPTZUVDAUYMUIUYOUUNEUFZUUS
          VHUHVATADEGUCIJUUNLMNOPLHULUYPIUQZVHUHZVATZIUPXQZWJYCXRZUKUCULUCUQZEU
          FZUYQVHUHZVATZIUPXQZWJYCXRZUKQHUCULVUAVUGUUNVUBUNZWJUYTVUFYCVUHUYSVUE
          IUPVUHUYRVUDVAVUHUYPVUCUYQVHUUNVUBEXDWRXSXTYAYDYBRVBVCVDYEUVFUXAUYMUX
          BVQWAUYCYFVEUWBULULUVIUVAYNYGUUMUVSUIZUDUVIFUHZUDUVIVHUHZUUOUJUHZUDUD
          WPTZUYHVUJVULUNYHUYIBCUDUVIWPWPUXPVULFUXMUDUNUXNUVIUNUIUXOVUKUUOUJUXM
          UDUXNUVIVHWQWRSVUKUUOUJWMWSXBUVSUUMVULUDUUOUJUHZUDUVSVUKUDUUOUJUVSUVI
          UVIYIZYJWRUUMUXGVUNUDUNUUMUUOUYKWDZUUOYKXAZYLXGVUIUVIUDFUHZUVIUDVHUHZ
          UUOUJUHZUDUYHVUMVURVUTUNUYIYHBCUVIUDWPWPUXPVUTFUYJUXNUDUNUIUXOVUSUUOU
          JUXMUVIUXNUDVHWQWRSVUSUUOUJWMWSXBUVSUUMVUTVUNUDUVSVUSUDUUOUJUVSUVIVUO
          YMWRVUQYLXGAUULYOAUWHUULUWIVQUUMKUVAUFZUUOUUOUJUHZUDUUMUVDVVAVVBUNUUL
          UVDAUVEUTHKUUTVVBULUVAUUNKUNUUSUUOUUOUJUUNKLXDWRUYCUUOUUOUJWMWNXAUUMV
          VBUDUNZUUOUUOYPUHZVATZUUMVVDYQVAUUMUUOUUMUUOUYKYRUUMUUOUYKYSYTUUAUUBU
          UMUUOWJTUXGVVCVVEUUCUUMUUOUYKUUDVUPUUOUUOUUFWHUUEUUGUUHUUI $.
      $}

      $( Lemma for ~ elqaa .  (Contributed by Mario Carneiro, 23-Jul-2014.)
         (Revised by AV, 3-Oct-2020.) $)
      elqaalem3 $p |- ( ph -> A e. AA ) $=
        ( vz cc wcel cc0 cmul co vf vm vx vy cv cfv wceq cply c0p csn cdif wrex
        cz caa cxp cof wne cdgr cfz cexp csu cmpt cvv cnex wa cseq fvex eqeltri
        a1i fvexd fconstmpt cq wf eldifad plyf syl feqmptd offval2 fzfid cn cn0
        nn0uz 0zd crab ssrab2 clt cinf fveq2 oveq1d eleq1d rabbidv infeq1d ltso
        cr infex fvmpt adantl c1 cuz wss c0 nnuz sseqtri 0z ax-mp coef2 sylancl
        zq ffvelrnda qmulz sylibr infssuzcl sylancr eqeltrd sseldi nnmulcl seqf
        rabn0 dgrcl ffvelrnd syl5eqel nncnd adantr elfznn0 coef3 sylan2 mulassd
        eqid oveq2d 3eqtr4d mpteq2dva eqtrd nnne0d cmo syl2anc eldifsn sylanbrc
        cdiv wfn ffn expcl adantll mulcld fsummulc2 coeid2 sylan sumeq2dv zsscn
        divcan2d divcld mulcomd 3eqtr4rd oveq2 elrab simprbi cmpt2 elqaalem2 wb
        crp nnre nnrp mod0 syl2an mpbid zmulcld elplyd sylib simprd oveq1 ovexd
        divcan3d div0d mpteq2dv 0cnd df-0p eqtri eqeq12d syl5ib mpd fconst mp1i
        necon3d inidm fvconst2 ofval mpdan mul01d fveq1 eqeq1d rspcev elaa ) AB
        PQZBUAUEZUFZRUGZUAUMUHUFZUIUJZUKZULZBUNQIAPDUJZUOZGSUPTZUWRQZBUXBUFZRUG
        ZUWSAUXBUWPQUXBUIUQZUXCAUXBOPRGURUFZUSTZDUBUEZCUFZSTZOUEZUXIUTTZSTZUBVA
        ZVBZUWPAUXBOPDUXLGUFZSTZVBUXPAOPDUXQSUXAGVCVCVCPVCQAVDVIZDVCQAUXLPQZVEZ
        DUXGSHRVFZUFZVCNUXGUYBVGVHZVIZUYAUXLGVJUXAOPDVBUGAOPDVKVIZAOPPGAGVLUHUF
        ZQZPPGVMZAGUYGUWQJVNZVLGVOVPZVQZVRZAOPUXRUXOUYADUXHUXJUXMSTZUBVAZSTUXHD
        UYNSTZUBVAUXRUXOUYAUXHUYNDUBUYARUXGVSADPQZUXTADADUYCVTNAWAVTUXGUYBAUBES
        VTHRWAWBAWCAUXIWAQZVEZUXJFUEZSTZUMQZFVTWDZVTUXIHUFZVUBFVTWEZUYSVUDVUCWN
        WFWGZVUCUYRVUDVUFUGAEUXIEUEZCUFZUYTSTZUMQZFVTWDZWNWFWGVUFWAHVUGUXIUGZWN
        VUKVUCWFVULVUJVUBFVTVULVUIVUAUMVULVUHUXJUYTSVUGUXICWHWIWJWKWLMWNVUCWFWM
        WOWPWQUYSVUCWRWSUFZWTVUCXAUQZVUFVUCQVUCVTVUMVUEXBXCUYSVUBFVTULZVUNUYSUX
        JVLQVUOAWAVLUXICAUYHRVLQZWAVLCVMUYJRUMQVUPXDRXHXECVLGLXFXGXIFUXJXJVPVUB
        FVTXRXKVUCWRXLXMXNZXOZUXIVTQVUGVTQVEUXIVUGSTVTQAUXIVUGXPWQXQAUYHUXGWAQU
        YJVLGXSVPZXTYAZYBZYCZUXIUXHQZUYAUYRUYNPQUXIUXGYDZUYAUYRVEZUXJUXMUYAWAPU
        XICAWAPCVMZUXTAUYHVVFUYJCVLGLYEVPZYCXIZUXTUYRUXMPQAUXLUXIUUAUUBZUUCYFUU
        DUYAUXQUYODSAUYHUXTUXQUYOUGUYJCVLUBGUXGUXLLUXGYHUUEUUFYIUYAUXHUXNUYPUBV
        VCUYAUYRUXNUYPUGVVDVVEDUXJUXMUYAUYQUYRVVBYCVVHVVIYGYFUUGYJYKYLAOUXKUMUB
        UXGUMPWTAUUHVIVUSAVVCVEZUXKUXJVUDSTZDVUDYRTZSTZUMVVCAUYRUXKVVMUGVVDUYSU
        XJVUDVVLSTZSTUXJDSTVVMUXKUYSVVNDUXJSUYSDVUDAUYQUYRVVAYCZUYSVUDVURYBZUYS
        VUDVURYMZUUIYIUYSUXJVUDVVLAWAPUXICVVGXIZVVPUYSDVUDVVOVVPVVQUUJYGUYSDUXJ
        VVOVVRUUKUULYFVVJVVKVVLVVCAUYRVVKUMQZVVDUYSVUDVUCQZVVSVUQVVTVUDVTQZVVSV
        UBVVSFVUDVTUYTVUDUGVUAVVKUMUYTVUDUXJSUUMWJUUNUUOVPYFVVJDVUDYNTRUGZVVLUM
        QZAUCUDBCUCUDVCVCUCUEUDUESTVUDYNTUUPZDEFGUXIHIJKLMNVWDYHUUQVVJDVTQZVWAV
        WBVWCUURZAVWEVVCVUTYCVVCAUYRVWAVVDVURYFVWEDWNQVUDUUSQVWFVWADUUTVUDUVADV
        UDUVBUVCYOUVDUVEXNUVFXNAGUIUQZUXFAUYHVWGAGUYGUWQUKQUYHVWGVEJGUYGUIYPUVG
        UVHAUXBUIGUIUXBUIUGUXBUXAYRUPZTZUIUXAVWHTZUGAGUIUGUXBUIUXAVWHUVIAVWIGVW
        JUIAOPUXRDYRTZVBOPUXQVBVWIGAOPVWKUXQUYAUXQDAPPUXLGUYKXIVVBADRUQUXTADVUT
        YMZYCUVKYKAOPUXRDYRUXBUXAVCVCVCUXSUYADUXQSUVJUYEUYMUYFVRUYLYJAOPRDYRTZV
        BOPRVBZVWJUIAOPVWMRADVVAVWLUVLUVMAOPRDYRUIUXAVCPVCUXSUYAUVNUYEUIVWNUGAU
        IPRUJUOVWNUVOOPRVKUVPVIZUYFVRVWOYJUVQUVRUWBUVSUXBUWPUIYPYQAUXDDRSTZRAUW
        LUXDVWPUGIAPPDRSPUXAGVCVCBPUWTUXAVMUXAPYSAPDUYDUVTPUWTUXAYTUWAAUYIGPYSU
        YKPPGYTVPUXSUXSPUWCUWLBUXAUFDUGAPDBUYDUWDWQABGUFRUGUWLKYCUWEUWFADVVAUWG
        YLUWOUXEUAUXBUWRUWMUXBUGUWNUXDRBUWMUXBUWHUWIUWJYOBUAUWKYQ $.
    $}

    $( The set of numbers generated by the roots of polynomials in the
       _rational numbers_ is the same as the set of algebraic numbers, which by
       ~ elaa are defined only in terms of polynomials over the integers.
       (Contributed by Mario Carneiro, 23-Jul-2014.)  (Proof shortened by AV,
       3-Oct-2020.) $)
    elqaa $p |- ( A e. AA <-> ( A e. CC /\
      E. f e. ( ( Poly ` QQ ) \ { 0p } ) ( f ` A ) = 0 ) ) $=
      ( vm vj vk vn wcel cv cfv wceq cq wa cz wss cmul co cn crab cr clt caa cc
      cc0 cply c0p cdif wrex elaa wi zssq qsscn plyss mp2an ssdif ssrexv anim2i
      mp2b sylbi ccoe cdgr cinf cmpt cseq simpll simplr simpr eqid fveq2 oveq1d
      csn eleq1d rabbidv oveq2 cbvrabv syl6eq infeq1d elqaalem3 r19.29an impbii
      cn0 cbvmptv ) AUAGZAUBGZABHZIUCJZBKUDIZUEVJZUFZUGZLZWBWCWEBMUDIZWGUFZUGZL
      WJABUHWMWIWCWKWFNZWLWHNWMWIUIMKNKUBNWNUJUKMKULUMWKWFWGUNWEBWLWHUOUQUPURWC
      WEWBBWHWCWDWHGZLZWELAWDUSIZWDUTIOCVTCHZWQIZDHZOPZMGZDQRZSTVAZVBZUCVCIZEFW
      DXEWCWOWEVDWCWOWEVEWPWEVFWQVGCEVTXDEHZWQIZFHZOPZMGZFQRZSTVAWRXGJZSXCXLTXM
      XCXHWTOPZMGZDQRXLXMXBXODQXMXAXNMXMWSXHWTOWRXGWQVHVIVKVLXOXKDFQWTXIJXNXJMW
      TXIXHOVMVKVNVOVPWAXFVGVQVRVS $.

    $( Every rational number is algebraic.  (Contributed by Mario Carneiro,
       23-Jul-2014.) $)
    qaa $p |- ( A e. QQ -> A e. AA ) $=
      ( vf vx cq wcel cc cv cfv cc0 wceq c0p cidp cmin co wne c1 a1i adantl cvv
      df-idp vy cply csn cdif caa qcn cxp cof wss qsscn cz 1z ax-mp plyid mp2an
      wrex zq plyconst mpan caddc qaddcl cmul qmulcl qnegcl plysub peano2cn syl
      cneg wfn cid cres fnresi fneq1i mpbir fnconstg inidm fveq1i fvresi syl5eq
      wa cnex fvconst2g ofval mpdan ax-1cn pncan2 sylancl eqtrd ax-1ne0 eqnetrd
      ne0p syl2anc eldifsn sylanbrc subidd fveq1 eqeq1d rspcev elqaa ) ADEZAFEZ
      ABGZHZIJZBDUBHZKUCUDZUPZAUEEAUFZWTLFAUCUGZMUHNZXFEZAXJHZIJZXGWTXJXEEXJKOZ
      XKWTCUADLXILXEEZWTDFUIZPDEZXOUJPUKEXQULPUQUMZDUNUOQXPWTXIXEEUJADURUSCGZDE
      UAGZDEVTZXSXTUTNDEWTXSXTVARYAXSXTVBNDEWTXSXTVCRPVHDEZWTXQYBXRPVDUMQVEWTAP
      UTNZFEZYCXJHZIOXNWTXAYDXHAVFVGZWTYEPIWTYEYCAMNZPWTYDYEYGJYFWTFFYCAMFLXISS
      YCLFVIZWTYHVJFVKZFVIFVLFLYITVMVNQZFADVOZFSEWTWAQZYLFVPZYDYCLHZYCJWTYDYNYC
      YIHYCYCLYITVQFYCVRVSRFAYCDWBWCWDWTXAPFEYGPJXHWEAPWFWGWHPIOWTWIQWJYCXJWKWL
      XJXEKWMWNWTXLAAMNZIWTXAXLYOJXHWTFFAAMFLXISSAYJYKYLYLYMXAALHZAJWTXAYPAYIHA
      ALYITVQFAVRVSRFAADWBWCWDWTAXHWOWHXDXMBXJXFXBXJJXCXLIAXBXJWPWQWRWLABWSWN
      $.

    $( The rational numbers are contained in the algebraic numbers.
       (Contributed by Mario Carneiro, 23-Jul-2014.) $)
    qssaa $p |- QQ C_ AA $=
      ( vx cq caa cv qaa ssriv ) ABCADEF $.

    $( The imaginary unit is algebraic.  (Contributed by Mario Carneiro,
       23-Jul-2014.) $)
    iaa $p |- _i e. AA $=
      ( vf vz ci wcel cc cv cfv cc0 wceq cz c2 cexp co c1 caddc cmpt wtru mp2an
      c0p a1i vx caa cply csn cdif wrex ax-icn wne cxp cof cvv cnex sqcl adantl
      vy wa ax-1cn eqidd fconstmpt offval2 wss cn0 zsscn 1z 2nn0 mp3an plyconst
      plypow zaddcl plyadd eqeltrrd trud 0cn sq0i oveq1d 0p1e1 syl6eq 1ex fvmpt
      eqid ax-mp ax-1ne0 eqnetri ne0p eldifsn mpbir2an oveq1 i2 neg1cn 1pneg1e0
      cneg addcomli c0ex fveq1 eqeq1d rspcev elaa ) CUBDCEDZCAFZGZHIZAJUCGZSUDU
      EZUFZUGBEBFZKLMZNOMZPZXCDZCXHGZHIZXDXIXHXBDZXHSUHZXLQBEXFPZENUDUIZOUJMXHX
      BQBEXFNOXNXOUKEEEUKDQULTXEEDZXFEDQXEUMUNNEDQXPUPUQTQXNURXOBENPIQBENUSTUTQ
      UAUOJXNXOXNXBDZQJEVAZNJDZKVBDXQVCVDVEBJKVHVFTXOXBDZQXRXSXTVCVDNJVGRTUAFZJ
      DUOFZJDUPYAYBOMJDQYAYBVIUNVJVKVLHEDZHXHGZHUHXMVMYDNHYCYDNIVMBHXGNEXHXEHIZ
      XGHNOMNYEXFHNOXEVNVOVPVQXHVTZVRVSWAWBWCHXHWDRXHXBSWEWFWRXKUGBCXGHEXHXECIZ
      XGNWKZNOMHYGXFYHNOYGXFCKLMYHXECKLWGWHVQVONYHHUQWIWJWLVQYFWMVSWAXAXKAXHXCW
      SXHIWTXJHCWSXHWNWOWPRCAWQWF $.

    $( The reciprocal of an algebraic number is algebraic.  (Contributed by
       Mario Carneiro, 24-Jul-2014.) $)
    aareccl $p |- ( ( A e. AA /\ A =/= 0 ) -> ( 1 / A ) e. AA ) $=
      ( vz vk vn wcel cc0 wne wa cv cfv wceq cdiv co cz c0p cc adantr cexp cmul
      cn0 vf vg caa c1 cply csn cdif wrex elaa simprbi aacn reccl cdgr cfz cmin
      sylan ccoe csu cmpt wss zsscn a1i simprl eldifsn sylib simpld dgrcl wf 0z
      syl eqid coef2 sylancl fznn0sub adantl ffvelrnd elplyd 0cn cle wbr coefv0
      zcnd eqidd coeeq2 fveq1d 0nn0 breq1 oveq2 fveq2d ifbieq1d fvex c0ex fvmpt
      cif ifex ax-mp nn0ge0d iftrued nn0cnd subid1d syl5eq 3eqtrd simprd dgreq0
      eqtrd wb necon3bid mpbid eqnetrd ne0p sylancr sylanbrc oveq1 oveq2d sumex
      sumeq2sdv caddc coef3 elfznn0 ffvelrn syl2an ad2antrr expcl mulcld expcld
      simplr nn0zd expne0d divcld fveq2 oveq12d oveq1d fsumrev2 addid2d expsubd
      divassd dividd divdiv32d exprecd syl2anc 3eqtr4d sumeq2dv coeid2 fsumdivc
      simprr eqtr3d fzfid div0d 3eqtr3d 3eqtr2d fveq1 eqeq1d rspcev rexlimddv )
      AUCEZAFGZHZAUAIZJZFKZUDALMZUCEZUANUEJZOUFUGZUUOUUTUAUVDUHZUUPUUOAPEZUVEAU
      AUIUJQUUQUURUVDEZUUTHZHZUVAPEZUVAUBIZJZFKZUBUVDUHZUVBUUQUVJUVHUUOUVFUUPUV
      JAUKZAULUPQZUVIBPFUURUMJZUNMZUVQCIZUOMZUURUQJZJZBIZUVSRMZSMZCURZUSZUVDEZU
      VAUWGJZFKZUVNUVIUWGUVCEZUWGOGZUWHUVIBUWBNCUVQNPUTUVIVAVBUVIUURUVCEZUVQTEU
      VIUWMUUROGZUVIUVGUWMUWNHUUQUVGUUTVCUURUVCOVDVEZVFZNUURVGVJZUVIUVSUVREZHZT
      NUVTUWAUWSUWMFNETNUWAVHUVIUWMUWRUWPQVIUWANUURUWAVKZVLVMUWRUVTTEUVIUVSFUVQ
      VNVOVPZVQZUVIFPEFUWGJZFGUWLVRUVIUXCUVQUWAJZFUVIUXCFUWGUQJZJZFCTUVSUVQVSVT
      ZUWBFWNZUSZJZUXDUVIUWKUXCUXFKUXBUXENUWGUXEVKWAVJUVIFUXEUXIUVIBUWBNCUWGUVQ
      UXBUWQUWSUWBUXAWBZUVIUWGWCWDWEUVIUXJFUVQVSVTZUVQFUOMZUWAJZFWNZUXDFTEUXJUX
      OKWFCFUXHUXOTUXIUVSFKZUXGUXLUWBUXNFUVSFUVQVSWGUXPUVTUXMUWAUVSFUVQUOWHWIWJ
      UXIVKUXLUXNFUXMUWAWKWLWOWMWPUVIUXOUXNUXDUVIUXLUXNFUVIUVQUWQWQWRUVIUXMUVQU
      WAUVIUVQUVIUVQUWQWSZWTWIXEXAXBUVIUWNUXDFGUVIUWMUWNUWOXCUVIUUROUXDFUVIUWMU
      UROKUXDFKXFUWPUWANUURUVQUVQVKZUWTXDVJXGXHXIFUWGXJXKUWGUVCOVDXLUVIUWIUVRUW
      BUVAUVSRMZSMZCURZUVRDIZUWAJZAUYBRMZSMZAUVQRMZLMZDURZFUVIUVJUWIUYAKUVPBUVA
      UWFUYAPUWGUWCUVAKZUVRUWEUXTCUYIUWDUXSUWBSUWCUVAUVSRXMXNXPUWGVKUVRUXTCXOWM
      VJUVIUYHUVRFUVQXQMZUVSUOMZUWAJZAUYKRMZSMZUYFLMZCURUYAUVIUYGUYODCFUVQUVIUY
      BUVREZHZUYEUYFUYQUYCUYDUVITPUWAVHZUYBTEZUYCPEUYPUVIUWMUYRUWPUWANUURUWTXRV
      JUYBUVQXSZTPUYBUWAXTYAUVIUVFUYSUYDPEUYPUUOUVFUUPUVHUVOYBZUYTAUYBYCYAYDZUV
      IUYFPEZUYPUVIAUVQVUAUWQYEZQUVIUYFFGZUYPUVIAUVQVUAUUOUUPUVHYFZUVIUVQUWQYGZ
      YHZQYIUYBUYKKZUYEUYNUYFLVUIUYCUYLUYDUYMSUYBUYKUWAYJUYBUYKARWHYKYLYMUVIUVR
      UYOUXTCUWSUYOUWBUYFAUVSRMZLMZSMZUYFLMUWBVUKUYFLMZSMUXTUWSUYNVULUYFLUWSUYL
      UWBUYMVUKSUWSUYKUVTUWAUWSUYJUVQUVSUOUWSUVQUVIUVQPEUWRUXQQYNYLZWIUWSUYMAUV
      TRMVUKUWSUYKUVTARVUNXNUWSAUVQUVSUVIUVFUWRVUAQZUVIUUPUWRVUFQZUWSUVSUWRUVST
      EZUVIUVSUVQXSZVOYGZUVIUVQNEUWRVUGQYOXEYKYLUWSUWBVUKUYFUXKUWSUYFVUJUVIVUCU
      WRVUDQZUVIUVFVUQVUJPEUWRVUAVURAUVSYCYAZUWSAUVSVUOVUPVUSYHZYIVUTUVIVUEUWRV
      UHQZYPUWSVUMUXSUWBSUWSUYFUYFLMZVUJLMUDVUJLMVUMUXSUWSVVDUDVUJLUWSUYFVUTVVC
      YQYLUWSUYFVUJUYFVUTVVAVUTVVBVVCYRUWSAUVSVUOVUPVUSYSUUAXNXBUUBXEUVIUVRUYED
      URZUYFLMFUYFLMUYHFUVIVVEFUYFLUVIUUSVVEFUVIUWMUVFUUSVVEKUWPVUAUWANDUURUVQA
      UWTUXRUUCYTUUQUVGUUTUUEUUFYLUVIUVRUYEUYFDUVIFUVQUUGVUDVUBVUHUUDUVIUYFVUDV
      UHUUHUUIUUJUVMUWJUBUWGUVDUVKUWGKUVLUWIFUVAUVKUWGUUKUULUUMYTUVAUBUIXLUUN
      $.

    $( The conjugate of an algebraic number is algebraic.  (Contributed by
       Mario Carneiro, 24-Jul-2014.) $)
    aacjcl $p |- ( A e. AA -> ( * ` A ) e. AA ) $=
      ( vf cc wcel cv cfv cc0 wceq cz cply c0p csn cdif wrex wa ccj caa cr elaa
      wss adantr fveq2 cj0 syl6eq difss zssre ax-resscn plyss mp2an sstri sseli
      cjcl id plyrecj syl2anr eqeq1d syl5ib reximdva imp jca 3imtr4i ) ACDZABEZ
      FZGHZBIJFZKLZMZNZOZAPFZCDZVKVCFZGHZBVHNZOAQDVKQDVJVLVOVBVLVIAULUAVBVIVOVB
      VEVNBVHVEVDPFZGHVBVCVHDZOZVNVEVPGPFGVDGPUBUCUDVRVPVMGVQVCRJFZDVBVPVMHVBVH
      VSVCVHVFVSVFVGUEIRTRCTVFVSTUFUGIRUHUIUJUKVBUMAVCUNUOUPUQURUSUTABSVKBSVA
      $.
  $}

  ${
    $d A a b c d e f g h i $.
    aannenlem.a $e |- H = ( a e. NN0 |-> { b e. CC | E. c e.
        { d e. ( Poly ` ZZ ) | ( d =/= 0p /\ ( deg ` d ) <_ a /\
            A. e e. NN0 ( abs ` ( ( coeff ` d ) ` e ) ) <_ a ) }
      ( c ` b ) = 0 } ) $.
    $( Lemma for ~ aannen .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aannenlem1 $p |- ( A e. NN0 -> ( H ` A ) e. Fin ) $=
      ( cn0 wcel cfv cc0 wceq cle wbr ccoe cz cc cfn wa c0p cdgr cabs wral cply
      wne w3a crab wrex breq2 ralbidv 3anbi23d rabbidv rexeqdv cnex rabex fvmpt
      cv ciun iunrab cneg cfz co cmap cdom fzfi mapfi mp2an a1i ovex cres neeq1
      cvv weq fveq2 breq1d fveq1d fveq2d 3anbi123d elrab simp3 anim2i sylbi wss
      wf wfn crn 0z eqid coef2 mpan2 ad2antrl ffnd adantl ffvelrnda cr ad2antrr
      zred nn0re absled wb nn0z znegcld syl3anc bitr4d biimpd ralimdva fnfvrnss
      elfz impr syl2anc df-f sylanbrc fz0ssnn0 fssres sylancl elmap sylibr syl5
      ex simp2 simplll plyf ffn 3syl simplrl cexp cmul csu simplrr adantr fvres
      3eqtr3d oveq1d cuz dgrcl eluz mpbird coeid3 eqeltrd simp-4l simp-4r nn0zd
      sumeq2dv simpr simp1rl 3expa 3eqtr4d eqfnfvd expr reseq1d impbid1 syl2ani
      expcom dom2d mpi domfi simp1 wi ccnv csn cima fniniseg syl syl6rbbr eqrdv
      eqeq1d chash fta1 simpld ralrimiv iunfi syl5eqelr ) AIJZACKEURZFURZKZLMZF
      GURZUAUFZUVSUBKZANOZBURZUVSPKZKZUCKZANOZBIUDZUGZGQUEKZUHZUIZERUHZSDAUVRFU
      VTUWADURZNOZUWFUWNNOZBIUDZUGZGUWJUHZUIZERUHUWMICUWNAMZUWTUWLERUXAUVRFUWSU
      WKUXAUWRUWIGUWJUXAUWOUWBUWQUWHUVTUWNAUWANUJUXAUWPUWGBIUWNAUWFNUJUKULUMUNU
      MHUWLERUOUPUQUVNUWMFUWKUVRERUHZUSZSUVRFEUWKRUTUVNUWKSJZUXBSJZFUWKUDUXCSJU
      VNAVAZAVBVCZLAVBVCZVDVCZSJZUWKUXIVEOZUXDUXJUVNUXGSJUXHSJUXJUXFAVFLAVFUXGU
      XHVGVHVIUVNUXIVMJUXKUXGUXHVDVJUVNDEUWKUXIUWNPKZUXHVKZUVOPKZUXHVKZVMUWNUWK
      JZUWNUWJJZUWCUXLKZUCKZANOZBIUDZTZUVNUXMUXIJZUXPUXQUWNUAUFZUWNUBKZANOZUYAU
      GZTZUYBUWIUYGGUWNUWJGDVNZUVTUYDUWBUYFUWHUYAUVSUWNUAVLUYIUWAUYEANUVSUWNUBV
      OVPUYIUWGUXTBIUYIUWFUXSANUYIUWEUXRUCUYIUWCUWDUXLUVSUWNPVOVQVRVPUKVSVTZUYG
      UYAUXQUYDUYFUYAWAWBWCUVNUYBUYCUVNUYBTZUXHUXGUXMWEZUYCUYKIUXGUXLWEZUXHIWDU
      YLUYKUXLIWFZUXLWGUXGWDZUYMUYKIQUXLUXQIQUXLWEZUVNUYAUXQLQJUYPWHUXLQUWNUXLW
      IZWJWKZWLWMZUYKUYNUXRUXGJZBIUDZUYOUYSUVNUXQUYAVUAUVNUXQTZUXTUYTBIVUBUWCIJ
      ZTZUXTUYTVUDUXTUXFUXRNOUXRANOTZUYTVUDUXRAVUDUXRVUBIQUWCUXLUXQUYPUVNUYRWNW
      OZWRUVNAWPJUXQVUCAWSWQWTVUDUXRQJUXFQJAQJZUYTVUEXAVUFVUDAUVNVUGUXQVUCAXBWQ
      ZXCVUHUXRUXFAXIXDXEXFXGXJBIUXGUXLXHXKIUXGUXLXLXMAXNIUXGUXHUXLXOXPUXGUXHUX
      MUXFAVBVJLAVBVJXQXRXTXSUXPUVNUXQUYFTZUVOUWJJZUVOUBKZANOZTZUXMUXOMZDEVNZXA
      ZUVOUWKJZUXPUYHVUIUYJUYGUYFUXQUYDUYFUYAYAWBWCVUQVUJUVOUAUFZVULUWCUXNKZUCK
      ZANOZBIUDZUGZTVUMUWIVVCGUVOUWJGEVNZUVTVURUWBVULUWHVVBUVSUVOUAVLVVDUWAVUKA
      NUVSUVOUBVOVPVVDUWGVVABIVVDUWFVUTANVVDUWEVUSUCVVDUWCUWDUXNUVSUVOPVOVQVRVP
      UKVSVTVVCVULVUJVURVULVVBYAWBWCVUIVUMTZUVNVUPVVEUVNTVUNVUOVVEUVNVUNVUOVVEU
      VNVUNTZTZFRUWNUVOVVGUXQRRUWNWEUWNRWFUXQUYFVUMVVFYBQUWNYCRRUWNYDYEVVGVUJRR
      UVOWEUVORWFVUIVUJVULVVFYFQUVOYCRRUVOYDYEVVGUVPRJZTZUXHUVSUXLKZUVPUVSYGVCZ
      YHVCZGYIZUXHUVSUXNKZVVKYHVCZGYIZUVPUWNKZUVPUVOKZVVIUXHVVLVVOGVVIUVSUXHJZT
      ZVVJVVNVVKYHVVTUVSUXMKZUVSUXOKZVVJVVNVVTUVSUXMUXOVVIVUNVVSVVEUVNVUNVVHYJY
      KVQVVSVWAVVJMVVIUVSUXHUXLYLWNVVSVWBVVNMVVIUVSUXHUXNYLWNYMYNUUDVVIUXQAUYEY
      OKJZVVHVVQVVMMUXQUYFVUMVVFVVHUUAZVVIVWCUYFUXQUYFVUMVVFVVHUUBVVIUYEQJZVUGV
      WCUYFXAVVIUXQUYEIJVWEVWDQUWNYPUYEXBYEVVIAVVEUVNVUNVVHYFUUCZUYEAYQXKYRVVGV
      VHUUEZUXLQGUWNAUYEUVPUYQUYEWIYSXDVVIVUJAVUKYOKJZVVHVVRVVPMVVEVVFVVHVUJVUJ
      VULVUIVVFVVHUUFUUGZVVIVWHVULVVGVULVVHVUIVUJVULVVFYJYKVVIVUKQJZVUGVWHVULXA
      VVIVUJVUKIJVWJVWIQUVOYPVUKXBYEVWFVUKAYQXKYRVWGUXNQGUVOAVUKUVPUXNWIVUKWIYS
      XDUUHUUIUUJVUOUXLUXNUXHUWNUVOPVOUUKUULUUNUUMUUOUUPUXIUWKUUQXKUVNUXEFUWKUV
      PUWKJZUVPUWJJZUVPUAUFZTZUVNUXEVWKVWLVWMUVPUBKZANOZUWCUVPPKZKZUCKZANOZBIUD
      ZUGZTVWNUWIVXBGUVPUWJGFVNZUVTVWMUWBVWPUWHVXAUVSUVPUAVLVXCUWAVWOANUVSUVPUB
      VOVPVXCUWGVWTBIVXCUWFVWSANVXCUWEVWRUCVXCUWCUWDVWQUVSUVPPVOVQVRVPUKVSVTVXB
      VWMVWLVWMVWPVXAUURWBWCVWNUXEUUSUVNVWNUXBUVPUUTLUVAUVBZSVWNDUXBVXDVWNUWNVX
      DJZUWNRJUWNUVPKZLMZTZUWNUXBJVWNUVPRWFZVXEVXHXAVWLVXIVWMVWLRRUVPQUVPYCWMYK
      RLUWNUVPUVCUVDUVRVXGEUWNREDVNUVQVXFLUVOUWNUVPVOUVGVTUVEUVFVWNVXDSJVXDUVHK
      VWONOVXDQUVPVXDWIUVIUVJYTVIXSUVKFUWKUXBUVLXKUVMYT $.

    $( Lemma for ~ aannen .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aannenlem2 $p |- AA = U. ran H $=
      ( vg vh cv cfv cc0 wceq cle wbr cn0 cz wrex wcel wa caa c0p wne cdgr ccoe
      vf vi cabs wral w3a cply crab cc cab cuni crn csn cdif wex wi cpr cfz cun
      co cxr clt csup simp3 eldifi adantr 3adant2 eldifsni wss 0nn0 dgrcl prssi
      syl sylancr ssrab2 a1i unssd nn0ssre ressxr sstri syl6ss fvex prid2 elun1
      cr ax-mp supxrub sylancl fveq2 abs0 syl6eq c0ex prid1 syl6eqel wf 0z eqid
      adantl coef2 ffvelrnda nn0abscl ad2antrr simpr syl3anc elfz2nn0 syl3anbrc
      simplr dgrub fveq2d eqeq2d rspcev eqeq1 rexbidv elrab sylanbrc pm2.61dane
      elun2 syl2anc ralrimiva neeq1 breq1d fveq1d ralbidv 3anbi123d simp2 fveq1
      weq 3jca eqeq1d cfn mp2an breq2 rabbidv eleq2 impcom anim2i c0 prfi ne0ii
      fzfi abrexfi rabssab ssfi unfi wor xrltso fisupcl sseldd 3anbi23d rexeqdv
      mpan eqidd cnex rabex anbi12d spcev rexlimiv simp1 eldifsn 3imtr4i ssrexv
      3exp ssriv cbvrexv syl6ib syl6bi rexlimivw exlimiv impbii eluniab 3bitr4i
      sylbi elaa eqriv rnmpt unieqi eqtr4i ) UAUFJZDJZEJZKZLMZEFJZUBUCZUWGUDKZC
      JZNOZAJZUWGUEKZKZUHKZUWJNOZAPUIZUJZFQUKKZULZRZDUMULZMZCPRZUFUNZUOZBUPZUOH
      UAUXFHJZUMSZUXHIJZKZLMZIUWSUBUQZURZRZTZUXHUWBSZUXDTZUFUSZUXHUASUXHUXFSUXP
      UXSUXOUXIUXSUXLUXIUXSUTIUXNUXJUXNSZUXLUXIUXSUXTUXLUXIUJZUXHUWFEUWHUWILUXJ
      UDKZVAZUXHUGJZUXJUEKZKZUHKZMZUGLUYBVBVDZRZHPULZVCZVEVFVGZNOZUWOUYMNOZAPUI
      ZUJZFUWSULZRZDUMULZSZUYTUXBMZCPRZUXSUYAUXIUXHUWDKZLMZEUYRRZVUAUXTUXLUXIVH
      UYAUXJUYRSZUXLVUFUYAUXJUWSSZUXJUBUCZUYBUYMNOZUWLUYEKZUHKZUYMNOZAPUIZUJZVU
      GUXTUXIVUHUXLUXTVUHUXIUXJUWSUXMVIVJZVKUXTUXIVUOUXLUXTUXITZVUIVUJVUNUXTVUI
      UXIUXJUWSUBVLVJVUQUYLVEVMZUYBUYLSZVUJVUQUYLPVEVUQUYCUYKPVUQLPSUYBPSZUYCPV
      MVNVUQVUHVUTVUPQUXJVOVQZLUYBPVPVRUYKPVMVUQUYJHPVSVTWAZPWIVEWBWCWDWEZUYBUY
      CSVUSLUYBUXJUDWFWGUYBUYCUYKWHWJZUYLUYBWKWLVUQVUMAPVUQUWLPSZTZVURVULUYLSZV
      UMVUQVURVVEVVCVJVVFVVGVUKLVUKLMZVVGVVFVVHVULLUYLVVHVULLUHKLVUKLUHWMWNWOLU
      YCSLUYLSLUYBWPWQLUYCUYKWHWJWRXBVVFVUKLUCZTZVULUYKSZVVGVVJVULPSZVULUYGMZUG
      UYIRZVVKVVFVVLVVIVVFVUKQSVVLVUQPQUWLUYEVUQVUHLQSPQUYEWSVUPWTUYEQUXJUYEXAZ
      XCWLXDVUKXEVQVJVVJUWLUYISZVULVULMZVVNVVJVVEVUTUWLUYBNOZVVPVUQVVEVVIXKZVUQ
      VUTVVEVVIVVAXFVVJVUHVVEVVIVVRVUQVUHVVEVVIVUPXFVVSVVFVVIXGUYEQUXJUWLUYBVVO
      UYBXAXLXHUWLUYBXIXJVULXAVVMVVQUGUWLUYIUGAYKZUYGVULVULVVTUYFVUKUHUYDUWLUYE
      WMXMXNXOWLUYJVVNHVULPUXHVULMUYHVVMUGUYIUXHVULUYGXPXQXRXSVULUYKUYCYAVQXTUY
      LVULWKYBYCYLVKUYQVUOFUXJUWSFIYKZUWHVUIUYNVUJUYPVUNUWGUXJUBYDZVWAUWIUYBUYM
      NUWGUXJUDWMZYEVWAUYOVUMAPVWAUWOVULUYMNVWAUWNVUKUHVWAUWLUWMUYEUWGUXJUEWMYF
      XMZYEYGYHXRXSUXTUXLUXIYIVUEUXLEUXJUYREIYKVUDUXKLUXHUWDUXJYJYMZXOYBUYSVUFD
      UXHUMDHYKZUWFVUEEUYRVWFUWEVUDLUWCUXHUWDWMYMZXQXRXSUYAUYMPSZUYTUYTMZVUCUXT
      UXIVWHUXLVUQUYLPUYMVVBVUQUYLYNSZUYLUUAUCZVURUYMUYLSZVWJVUQUYCYNSUYKYNSZVW
      JLUYBUUBUYJHUNZYNSZUYKVWNVMVWMUYIYNSVWOLUYBUUDUGHUYIUYGUUEWJUYJHPUUFVWNUY
      KUUGYOUYCUYKUUHYOVTVWKVUQUYBUYLVVDUUCVTVVCVEVFUUIVWJVWKVURUJVWLUUJVEUYLVF
      UUKUUOXHUULVKUYAUYTUUPVUBVWICUYMPUWJUYMMZUXBUYTUYTVWPUXAUYSDUMVWPUWFEUWTU
      YRVWPUWRUYQFUWSVWPUWKUYNUWQUYPUWHUWJUYMUWINYPVWPUWPUYOAPUWJUYMUWONYPYGUUM
      YQUUNYQXNXOYBUXRVUAVUCTUFUYTUYSDUMUUQUURUWBUYTMZUXQVUAUXDVUCUWBUYTUXHYRVW
      QUXCVUBCPUWBUYTUXBXPXQUUSUUTYBUVFUVAYSUXRUXPUFUXDUXQUXPUXCUXQUXPUTCPUXCUX
      QUXHUXBSZUXPUWBUXBUXHYRVWRUXIVUEEUWTRZTUXPUXAVWSDUXHUMVWFUWFVUEEUWTVWGXQX
      RVWSUXOUXIUWTUXNVMZVWSUXOUTIUWTUXNVUHVUIUYBUWJNOZVULUWJNOZAPUIZUJZTVUHVUI
      TUXJUWTSUXTVXDVUIVUHVUIVXAVXCUVBYTUWRVXDFUXJUWSVWAUWHVUIUWKVXAUWQVXCVWBVW
      AUWIUYBUWJNVWCYEVWAUWPVXBAPVWAUWOVULUWJNVWDYEYGYHXRUXJUWSUBUVCUVDUVGVWTVW
      SVUEEUXNRUXOVUEEUWTUXNUVEVUEUXLEIUXNVWEUVHUVIWJYTUVPUVJUVKYSUVLUVMUXHIUVQ
      UXDUFUXHUVNUVOUVRUXGUXECUFPUXBBGUVSUVTUWA $.

    $d H f g $.
    $( Lemma for ~ aannen . $)
    $( The algebraic numbers are countable.  (Contributed by Stefan O'Rear,
       16-Nov-2014.) $)
    aannenlem3 $p |- AA ~~ NN $=
      ( vf vg caa cn cdom wbr com cc cv cfn cn0 wcel cfv cen wor crn aannenlem2
      cuni wss ccrd cdm wfo omelon nn0ennn nnenom entri ensymi isnumi mp2an wfn
      con0 cc0 wceq c0p wne cdgr cle ccoe cabs wral w3a cz cply crab wrex rabex
      cnex fnmpti dffn4 mpbi fodomnum mp2 domentr a1i wb ax-mp aannenlem1 eleq1
      fvelrnb syl5ibcom rexlimiv sylbi ssriv wi aasscn eqsstr3i soss iunfictbso
      syl3anc syl5eqbr cnso exlimiiv cvv ssexi cq nnssq qssaa sstri ssdomg sbth
      ) JKLMZKJLMZJKUAMJNLMZNKUAMXHOHPZUBZXJHXLJBUCZUEZNLABCDEFGUDZXLXMNLMZXMQU
      FZXNXKUBZXNNLMXPXLXMRLMZRNUAMXPRUGUHSZRXMBUIZXSNURSNRUAMXTUJRNRKNUKULUMZU
      NNRUOUPBRUQZYACRDPEPTUSUTEFPZVAVBYDVCTCPZVDMAPYDVETTVFTYEVDMARVGVHFVIVJTV
      KVLZDOVKBYFDOVNVMGVOZRBVPVQRXMBVRVSYBXMRNVTUPWAXQXLHXMQXKXMSZIPZBTZXKUTZI
      RVLZXKQSZYCYHYLWBYGIRXKBWFWCYKYMIRYIRSYJQSYKYMYIABCDEFGWDYJXKQWEWGWHWIWJW
      AXNOUFXLXRWKXNJOXOWLWMXNOXKWNWCXMXKWOWPWQHWRWSKNULUNJNKVTUPJWTSKJUFXIJOVN
      WLXAKXBJXCXDXEKJWTXFVSJKXGUP $.
  $}

  ${
    $d a b c d e $.
    $( The algebraic numbers are countable.  (Contributed by Stefan O'Rear,
       16-Nov-2014.) $)
    aannen $p |- AA ~~ NN $=
      ( ve va vb vc vd cn0 cfv cc0 wceq c0p wne cdgr cle wbr ccoe cabs wral w3a
      cv crab cz cply wrex cc cmpt eqid aannenlem3 ) ABFCSDSGHIDESZJKUHLGBSZMNA
      SUHOGGPGUIMNAFQREUAUBGTUCCUDTUEZBCDEUJUFUG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Liouville's approximation theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d F a $.  $d X a $.  $d Y a $.  $d ph a $.
    aalioulem1.a $e |- ( ph -> F e. ( Poly ` ZZ ) ) $.
    aalioulem1.b $e |- ( ph -> X e. ZZ ) $.
    aalioulem1.c $e |- ( ph -> Y e. NN ) $.
    $( Lemma for ~ aaliou .  An integer polynomial cannot inflate the
       denominator of a rational by more than its degree.  (Contributed by
       Stefan O'Rear, 12-Nov-2014.) $)
    aalioulem1 $p |- ( ph -> ( ( F ` ( X / Y ) ) x. ( Y ^ ( deg ` F ) ) )
        e. ZZ ) $=
      ( va cdiv co cfv cexp cmul cc0 cz wcel cc cn0 syl2an adantr cdgr cfz ccoe
      cv csu cply wceq zcnd nncnd nnne0d divcld eqid coeid2 syl2anc fzfid dgrcl
      oveq1d syl expcld wa wf 0z coef2 sylancl elfznn0 ffvelrn mulcld fsummulc1
      expcl eqtrd mulassd adantl expdivd cn nnexpcl div13d cmin elfzelz expsubd
      wne nn0zd nnzd fznn0sub zexpcl eqeltrrd zmulcld eqeltrd fsumzcl ) ACDIJZB
      KZDBUAKZLJZMJZNWKUBJZHUDZBUCKZKZWIWOLJZMJZWLMJZHUEZOAWMWNWSHUEZWLMJXAAWJX
      BWLMABOUFKPZWIQPZWJXBUGEACDACFUHADGUIZADGUJZUKZWPOHBWKWIWPULZWKULUMUNUQAW
      NWSWLHANWKUOZADWKXEAXCWKRPZEOBUPURZUSAWOWNPZUTZWQWRXMWQAROWPVAZWORPZWQOPX
      LAXCNOPXNEVBWPOBXHVCVDWOWKVEZROWOWPVFSZUHZAXDXOWRQPXLXGXPWIWOVISZVGVHVJAW
      NWTHXIXMWTWQWRWLMJZMJOXMWQWRWLXRXSXMDWKADQPXLXETZAXJXLXKTZUSZVKXMWQXTXQXM
      XTWLDWOLJZIJZCWOLJZMJZOXMXTYFYDIJZWLMJYGXMWRYHWLMXMCDWOXMCACOPZXLFTUHZYAA
      DNVTXLXFTZXLXOAXPVLZVMUQXMYFYDWLXMCWOYJYLUSXMYDADVNPZXOYDVNPXLGXPDWOVOSZU
      IYCXMYDYNUJVPVJXMYEYFXMDWKWOVQJZLJZYEOXMDWKWOYAYKXLWOOPAWONWKVRVLXMWKYBWA
      VSXMDOPYORPZYPOPXMDAYMXLGTWBXLYQAWONWKWCVLDYOWDUNWEAYIXOYFOPXLFXPCWOWDSWF
      WGWFWGWHWG $.
  $}

  ${
    $d ph x p q r a b c d $.  $d A x p q r a b c d $.  $d F x p q r a b c d $.
    aalioulem2.a $e |- N = ( deg ` F ) $.
    aalioulem2.b $e |- ( ph -> F e. ( Poly ` ZZ ) ) $.
    aalioulem2.c $e |- ( ph -> N e. NN ) $.
    aalioulem2.d $e |- ( ph -> A e. RR ) $.
    $( Lemma for ~ aaliou .  (Contributed by Stefan O'Rear, 15-Nov-2014.)
       (Proof shortened by AV, 28-Sep-2020.) $)
    aalioulem2 $p |- ( ph -> E. x e. RR+ A. p e. ZZ A. q e. NN (
        ( F ` ( p / q ) ) = 0 -> ( A = ( p / q ) \/
          ( x / ( q ^ N ) ) <_ ( abs ` ( A - ( p / q ) ) ) ) ) ) $=
      ( cfv cc0 wceq cle crp cr c1 wcel wa vr va vb vc vd cv cdiv cmin cabs wbr
      co wo wi cn wral cz wrex cexp csn ccnv cima crab cun clt cinf snssi ax-mp
      wss 1rp ssrab2 unssi wor cfn c0 wne ltso a1i snfi cab chash cdgr cply c0p
      nnne0d eqcomi dgr0 3netr4g fveq2 necon3i eqid fta1 syl2anc simpld abrexfi
      syl rabssab ssfi sylancl unfi sylancr snid elun1 ne0i mp2b rpssre fiinfcl
      1ex sstri syl13anc sseldi wn rpge0 rgen breq1 ralbidv rspcev mp2an ssralv
      reximi ad2antrr simplr resubcld subeq0ad necon3abid biimprd impr absrpcld
      0re recnd cc simprl wfn wb wf plyf oveq2 fveq2d ex rpred adantr mpbir2and
      ffn fniniseg eqeq1 rexbidv elrab sylanbrc elun2 infrelb syl3anc expr orrd
      eqeq2d ralrimiva orbi2d imbi2d eqeq1d eqeq2 breq2d orbi12d imbi12d cq znq
      rspcv qre syl11 ralrimivv simprr cn0 nnnn0d nnexpcld nnrpd simpllr adantl
      rpdivcld abscld rpre ad2antlr rpcnne0d divid eqbrtrd lediv23d simpr letrd
      nnge1d orim2d imim2d ralimdvva reximdva mpd ) AGUFZFUFZUGUKZDLZMNZCUWMNZB
      UFZCUWMUHUKZUILZOUJZULZUMZFUNUOGUPUOZBPUQZUWOUWPUWQUWLEURUKZUGUKZUWSOUJZU
      LZUMZFUNUOGUPUOZBPUQAUAUFZDLZMNZCUXKNZUWQCUXKUHUKZUILZOUJZULZUMZUAQUOZBPU
      QZUXDARUSZUBUFZCUCUFZUHUKZUILZNZUCDUTMUSVAZUQZUBPVBZVCZQVDVEZPSUXMUXNUYLU
      XPOUJZULZUMZUAQUOZUYAAUYKPUYLUYBUYJPRPSUYBPVHVIRPVFVGUYIUBPVJVKZAQVDVLZUY
      KVMSZUYKVNVOZUYKQVHZUYLUYKSUYRAVPVQAUYBVMSUYJVMSZUYSRVRAUYIUBVSZVMSZUYJVU
      CVHVUBAUYHVMSZVUDAVUEUYHVTLDWALZOUJZADUPWBLSZDWCVOZVUEVUGTIAVUFWCWALZVOVU
      IAEMVUFVUJAEJWDEVUFHWEWFWGDWCVUFVUJDWCWAWHWIWOUYHUPDUYHWJWKWLWMUCUBUYHUYF
      WNWOUYIUBPWPVUCUYJWQWRUYBUYJWSWTUYTARUYBSRUYKSUYTRXGXARUYBUYJXBUYKRXCXDVQ
      VUAAUYKPQUYQXEXHZVQQUYKVDXFXIXJAUYOUAQAUXKQSZTZUXMUYNVUMUXMTZUXNUYMVUMUXM
      UXNXKZUYMVUMUXMVUOTZTZVUAUDUFZUEUFZOUJZUEUYKUOZUDQUQZUXPUYKSZUYMVUAVUQVUK
      VQVVBVUQVUTUEPUOZUDQUQZVVBMQSMVUSOUJZUEPUOZVVEYHVVFUEPVUSXLXMVVDVVGUDMQVU
      RMNVUTVVFUEPVURMVUSOXNXOXPXQVVDVVAUDQUYKPVHVVDVVAUMUYQVUTUEUYKPXRVGXSVGVQ
      VUQUXPUYJSZVVCVUQUXPPSUXPUYFNZUCUYHUQZVVHVUQUXOVUQUXOVUQCUXKACQSZVULVUPKX
      TAVULVUPYAZYBYIVUMUXMVUOUXOMVOZVUNVVMVUOVUNUXNUXOMVUNCUXKVUNCAVVKVULUXMKX
      TYIVUNUXKAVULUXMYAYIYCYDYEYFYGVUQUXKUYHSZUXPUXPNZVVJVUQVVNUXKYJSZUXMVUQUX
      KVVLYIVUMUXMVUOYKVUQDYJYLZVVNVVPUXMTYMAVVQVULVUPAYJYJDYNZVVQAVUHVVRIUPDYO
      WOYJYJDUUBWOXTYJMUXKDUUCWOUUAUXPWJVVIVVOUCUXKUYHUYDUXKNZUYFUXPUXPVVSUYEUX
      OUIUYDUXKCUHYPYQUUMXPWRUYIVVJUBUXPPUYCUXPNUYGVVIUCUYHUYCUXPUYFUUDUUEUUFUU
      GUXPUYJUYBUUHWOUDUEUXPUYKUUIUUJUUKUULYRUUNUXTUYPBUYLPUWQUYLNZUXSUYOUAQVVT
      UXRUYNUXMVVTUXQUYMUXNUWQUYLUXPOXNUUOUUPXOXPWLUXTUXCBPUXTUXBGFUPUNUWMQSZUX
      TUXBUWKUPSZUWLUNSZTZUXSUXBUAUWMQUXKUWMNZUXMUWOUXRUXAVWEUXLUWNMUXKUWMDWHUU
      QVWEUXNUWPUXQUWTUXKUWMCUURVWEUXPUWSUWQOVWEUXOUWRUIUXKUWMCUHYPYQUUSUUTUVAU
      VDVWDUWMUVBSVWAUWKUWLUVCUWMUVEWOZUVFUVGXSWOAUXCUXJBPAUWQPSZTZUXBUXIGFUPUN
      VWHVWDTZUXAUXHUWOVWIUWTUXGUWPVWIUWTUXGVWIUWTTZUXFUWQUWSVWIUXFQSUWTVWIUXFV
      WIUWQUXEAVWGVWDYAZVWIUXEVWIUWLEVWHVWBVWCUVHAEUVISVWGVWDAEJUVJXTUVKZUVLZUV
      OYSYTVWJUWQAVWGVWDUWTUVMYSVWIUWSQSUWTVWIUWRVWIUWRVWICUWMAVVKVWGVWDKXTVWDV
      WAVWHVWFUVNYBYIUVPYTVWIUXFUWQOUJUWTVWIUWQUWQUXEVWGUWQQSAVWDUWQUVQUVRVWKVW
      MVWIUWQUWQUGUKZRUXEOVWIUWQYJSUWQMVOTVWNRNVWIUWQVWKUVSUWQUVTWOVWIUXEVWLUWE
      UWAUWBYTVWIUWTUWCUWDYRUWFUWGUWHUWIUWJ $.

    aalioulem3.e $e |- ( ph -> ( F ` A ) = 0 ) $.
    $( Lemma for ~ aaliou .  (Contributed by Stefan O'Rear, 15-Nov-2014.) $)
    aalioulem3 $p |- ( ph -> E. x e. RR+ A. r e. RR ( ( abs ` ( A - r ) ) <_ 1
        -> ( x x. ( abs ` ( F ` r ) ) ) <_ ( abs ` ( A - r ) ) ) ) $=
      ( co cabs cfv c1 cle cr wcel cc cc0 va vc vb cv cmin wbr cmul wi wral crp
      wrex caddc cicc 1re resubcl sylancl peano2re syl cpr ccpn cres reelprrecn
      crn cint wss cn0 wfn ssid fncpn ax-mp 1nn0 fnfvelrn intss1 cz cply plycpn
      mp2an sseldi cpnres sylancr cima df-ima wf zssre ax-resscn plyss plyreres
      frn syl5eqss cdm iccssre syl2anc syl6ss wceq plyf fdm sseqtr4d c1lip3 w3a
      wa simp2 recnd adantr 3ad2ant1 abssubd simp3 eqbrtrd wb elicc4abs syl3anc
      1red mpbird subidd fveq2d abs0 0le1 eqbrtri syl6eqbr fveq2 oveq2d breq12d
      oveq2 oveq1d oveq1 rspc2v simp1l 0cn ffvelrnd eqtrd breq1d mpd wne adantl
      cdiv ad2antrr abscld absge0d syl5ibrcom expimpd remulcld syl6eqel subid1d
      sylibd 3exp com34 com23 ralrimdv reximdva cif 1rp wn recn biimpri absrpcl
      a1i df-ne syl2an rpreccld ifclda wo eqid eqif mpbi simprl resubcld mul02d
      simplrr breqtrd 0re letri3 ax-1cn mul01i syl6eq simpllr sylancom rpcnne0d
      mpbir2and divrec2 3expb simplr leabs ad2antlr lemul1ad ledivmuld eqbrtrrd
      simprr letrd sylan2br jaod mpi expr imim2d ralimdva imbi2d ralbidv rspcev
      syl6an rexlimdva ) ACFUDZUELZMNZOPUFZUWSDNZMNZUAUDZUXAUGLZPUFZUHZFQUIZUAQ
      UKZUXBBUDZUXDUGLZUXAPUFZUHZFQUIZBUJUKZAUBUDZDNZUCUDZDNZUELZMNZUXEUXQUXSUE
      LZMNZUGLZPUFZUBCOUELZCOULLZUMLZUIUCUYIUIZUAQUKUXJAUCUBUYGUYHUADACQRZOQRZU
      YGQRZJUNCOUOUPZAUYKUYHQRZJCUQURZAQQSUSRDOSUTNZNZRDQVAZOQUTNNRVBAUYQVCZVDZ
      UYRDUYRUYTRZVUAUYRVEUYQVFVGZOVFRVUBSSVEVUCSVHSVIVJVKVFOUYQVLVQUYRUYTVMVJA
      DVNVONZRZDVUARHVNDVPURVRQDOVSVTADQWAUYSVCZQDQWBAQQUYSWCZVUFQVEADQVONZRVUG
      AVUDVUHDVNQVEQSVEVUDVUHVEWDWEVNQWFVQHVRDWGURQQUYSWHURWIAUYISDWJZAUYIQSAUY
      MUYOUYIQVEUYNUYPUYGUYHWKWLWEWMASSDWCZVUISWNAVUEVUJHVNDWOURZSSDWPURWQWRAUY
      JUXIUAQAUXEQRZWTZUYJUXHFQVUMUWSQRZUYJUXHVUMVUNUXBUYJUXGVUMVUNUXBUYJUXGUHV
      UMVUNUXBWSZUYJCDNZUXCUELZMNZUXFPUFZUXGVUOUWSUYIRZCUYIRZUYJVUSUHVUOVUTUWSC
      UELMNZOPUFZVUOVVBUXAOPVUOUWSCVUOUWSVUMVUNUXBXAZXBZVUOCVUMVUNUYKUXBAUYKVUL
      JXCXDZXBXEVUMVUNUXBXFXGVUOUYKUYLVUNVUTVVCXHVVFVUOXKVVDCOUWSXIXJXLVUMVUNVV
      AUXBAVVAVULAVVACCUELZMNZOPUFZAVVHTMNZOPAVVGTMACACJXBXMXNVVJTOPXOXPXQXRAUY
      KUYLUYKVVAVVIXHJAXKJCOCXIXJXLXCXDUYFVUSUXRUXCUELZMNZUXEUXQUWSUELZMNZUGLZP
      UFUCUBUWSCUYIUYIUXSUWSWNZUYBVVLUYEVVOPVVPUYAVVKMVVPUXTUXCUXRUEUXSUWSDXSXT
      XNVVPUYDVVNUXEUGVVPUYCVVMMUXSUWSUXQUEYBXNXTYAUXQCWNZVVLVURVVOUXFPVVQVVKVU
      QMVVQUXRVUPUXCUEUXQCDXSYCXNVVQVVNUXAUXEUGVVQVVMUWTMUXQCUWSUEYDXNXTYAYEWLV
      UOVURUXDUXFPVUOVURUXCVUPUELZMNUXDVUOVUPUXCVUOVUPTSVUOAVUPTWNAVULVUNUXBYFK
      URZYGUUAVUOSSUWSDVUMVUNVUJUXBAVUJVULVUKXCXDVVEYHZXEVUOVVRUXCMVUOVVRUXCTUE
      LUXCVUOVUPTUXCUEVVSXTVUOUXCVVTUUBYIXNYIYJUUCUUDUUEUUFUUGUUHYKAUXIUXPUAQVU
      MUXETWNZOOUXEMNZYNLZUUIZUJRUXIUXBVWDUXDUGLZUXAPUFZUHZFQUIZUXPVUMVWAOVWCUJ
      OUJRVUMVWAWTUUJUUOVUMVWAUUKZWTVWBVUMUXESRZUXETYLZVWBUJRZVWIVULVWJAUXEUULY
      MVWKVWIUXETUUPZUUMUXEUUNZUUQUURUUSVUMUXHVWGFQVUMVUNWTUXGVWFUXBVUMVUNUXGVW
      FVUMVUNUXGWTZWTZVWAVWDOWNZWTZVWIVWDVWCWNZWTZUUTZVWFVWDVWDWNVXAVWDUVAVWAVW
      DOVWCUVBUVCVWPVWRVWFVWTVWPVWAVWQVWFVWPVWAWTZVWFVWQOUXDUGLZUXAPUFVXBVXCTUX
      APVXBVXCOTUGLTVXBUXDTOUGVXBUXDTWNZUXDTPUFZTUXDPUFZVXBUXDUXFTPVUMVUNUXGVWA
      UVGVXBUXFTUXAUGLZTVWAUXFVXGWNVWPUXETUXAUGYDYMVXBUXAVWPUXASRVWAVWPUXAVWPUW
      TVWPUWTVWPCUWSAUYKVULVWOJYOVUMVUNUXGUVDZUVEXBZYPZXBXCUVFYIUVHVXBUXCVWPUXC
      SRVWAVWPSSUWSDAVUJVULVWOVUKYOVWPUWSVXHXBYHZXCYQVXBUXDQRZTQRVXDVXEVXFWTXHV
      WPVXLVWAVWPUXCVXKYPZXCUVIUXDTUVJUPUVQXTOUVKUVLUVMVXBUWTVWPUWTSRVWAVXIXCYQ
      XGVWQVWEVXCUXAPVWDOUXDUGYDYJYRYSVWPVWIVWSVWFVWPVWIWTVWFVWSVWCUXDUGLZUXAPU
      FZVWIVWPVWKVXOVWMVWPVWKWTZUXDVWBYNLZVXNUXAPVXPUXDSRZVWBSRZVWBTYLZWTVXQVXN
      WNZVXPUXDVWPVXLVWKVXMXCZXBVXPVWBVWPVWKVWJVWLVXPUXEAVULVWOVWKUVNXBVWNUVOZU
      VPVXRVXSVXTVYAUXDVWBUVRUVSWLVXPVXQUXAPUFUXDVWBUXAUGLZPUFZVWPVYEVWKVWPUXDU
      XFVYDVXMVWPUXEUXAAVULVWOUVTZVXJYTVWPVWBUXAVWPUXEVWPUXEVYFXBYPZVXJYTVUMVUN
      UXGUWFVWPUXEVWBUXAVYFVYGVXJVWPUWTVXIYQVULUXEVWBPUFAVWOUXEUWAUWBUWCUWGXCVX
      PUXDUXAVWBVYBVWPUXAQRVWKVXJXCVYCUWDXLUWEUWHVWSVWEVXNUXAPVWDVWCUXDUGYDYJYR
      YSUWIUWJUWKUWLUWMUXOVWHBVWDUJUXKVWDWNZUXNVWGFQVYHUXMVWFUXBVYHUXLVWEUXAPUX
      KVWDUXDUGYDYJUWNUWOUWPUWQUWRYK $.

    $( Lemma for ~ aaliou .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aalioulem4 $p |- ( ph -> E. x e. RR+ A. p e. ZZ A. q e. NN (
        ( ( F ` ( p / q ) ) =/= 0 /\ ( abs ` ( A - ( p / q ) ) ) <_ 1 ) ->
          ( A = ( p / q ) \/ ( x / ( q ^ N ) ) <_
            ( abs ` ( A - ( p / q ) ) ) ) ) ) $=
      ( co cabs cfv cle wbr cmul cr wcel va cv cmin c1 wi wral crp wrex cc0 wne
      cdiv wa wceq wo cn cz aalioulem3 w3a cq simp2l simp2r znq syl2anc qre syl
      cexp simp3r oveq2 fveq2d breq1d fveq2 oveq2d breq12d imbi12d rspcv simp1r
      com23 sylc nnrpd simp1l nnzd rpexpcld rpdivcld rpred adantr cc cply recnd
      plyf ffvelrnd abscld remulcld resubcld rpcnd rpne0d divrecd rpge0d absidd
      absmuld oveq1d eqtrd cdgr mulcomd oveq2i syl6eq aalioulem1 eqeltrd simp3l
      wf mulne0d nnabscl eqeltrrd nnge1d 1red ledivmuld mpbird rprecred lemul2d
      mpbid eqbrtrd simpr letrd olcd ex syld 3exp com34 ralrimdvv reximdva mpd
      ) ACUAUBZUCMZNOZUDPQZBUBZYKDOZNOZRMZYMPQZUEZUASUFZBUGUHGUBZFUBZUKMZDOZUIU
      JZCUUDUCMZNOZUDPQZULZCUUDUMZYOUUCEVFMZUKMZUUHPQZUNZUEZFUOUFGUPUFZBUGUHABC
      DEUAHIJKLUQAUUAUUQBUGAYOUGTZULZUUAUUPGFUPUOUUSUUBUPTZUUCUOTZULZUUAUUPUUSU
      VBUUJUUAUUOUUSUVBUUJUUAUUOUEUUSUVBUUJURZUUAYOUUENOZRMZUUHPQZUUOUVCUUDSTZU
      UIUUAUVFUEUVCUUDUSTZUVGUVCUUTUVAUVHUUSUUTUVAUUJUTZUUSUUTUVAUUJVAZUUBUUCVB
      VCUUDVDVEZUUSUVBUUFUUIVGUVGUUAUUIUVFYTUUIUVFUEUAUUDSYKUUDUMZYNUUIYSUVFUVL
      YMUUHUDPUVLYLUUGNYKUUDCUCVHVIZVJUVLYRUVEYMUUHPUVLYQUVDYORUVLYPUUENYKUUDDV
      KVIVLUVMVMVNVOVQVRUVCUVFUUOUVCUVFULZUUNUUKUVNUUMUVEUUHUVCUUMSTUVFUVCUUMUV
      CYOUULAUURUVBUUJVPZUVCUUCEUVCUUCUVJVSUVCEUVCAEUOTAUURUVBUUJVTZJVEWAWBZWCW
      DWEUVCUVESTUVFUVCYOUVDUVCYOUVOWDUVCUUEUVCWFWFUUDDUVCDUPWGOTZWFWFDXIUVCAUV
      RUVPIVEZUPDWIVEUVCUUDUVKWHWJZWKZWLWEUVCUUHSTUVFUVCUUGUVCUUGUVCCUUDUVCACST
      UVPKVEUVKWMWHWKWEUVCUUMUVEPQUVFUVCUUMYOUDUULUKMZRMZUVEPUVCYOUULUVCYOUVOWN
      UVCUULUVQWNZUVCUULUVQWOZWPUVCUWBUVDPQZUWCUVEPQUVCUWFUDUULUVDRMZPQUVCUWGUV
      CUULUUERMZNOZUWGUOUVCUWIUULNOZUVDRMUWGUVCUULUUEUWDUVTWSUVCUWJUULUVDRUVCUU
      LUVCUULUVQWDUVCUULUVQWQWRWTXAUVCUWHUPTUWHUIUJUWIUOTUVCUWHUUEUUCDXBOZVFMZR
      MZUPUVCUWHUUEUULRMUWMUVCUULUUEUWDUVTXCUULUWLUUEREUWKUUCVFHXDXDXEUVCDUUBUU
      CUVSUVIUVJXFXGUVCUULUUEUWDUVTUWEUUSUVBUUFUUIXHXJUWHXKVCXLXMUVCUDUVDUULUVC
      XNUWAUVQXOXPUVCUWBUVDYOUVCUULUVQXQUWAUVOXRXSXTWEUVCUVFYAYBYCYDYEYFYGVQYHY
      IYJ $.

    $d N a b x $.

    $( Lemma for ~ aaliou .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aalioulem5 $p |- ( ph -> E. x e. RR+ A. p e. ZZ A. q e. NN (
        ( F ` ( p / q ) ) =/= 0 -> ( A = ( p / q ) \/ ( x / ( q ^ N ) ) <_
            ( abs ` ( A - ( p / q ) ) ) ) ) ) $=
      ( co c1 cle wbr wa cn crp wcel va cv cdiv cfv cc0 wne cmin cabs wceq cexp
      wo wi wral cz wrex aalioulem4 cif simpr 1rp ifcl sylancl cr adantr simprr
      clt w3a nnrpd ad2antrr nnzd rpexpcld rpdivcld rpred 1re a1i cq znq adantl
      qre syl resubcld recnd abscld 3jca rprecred simplr min2 lediv1dd nnexpcld
      cmul nnnn0d 1nn nnmulcld nnge1d ledivmuld letrd ltle sylancr imp jca letr
      mpbird sylc olcd 2a1d pm3.21 anim1i ex orim2d imim12d ltlecasei ralimdvva
      min1 oveq1 breq1d orbi2d imbi2d 2ralbidv rspcev syl6an rexlimdva mpd ) AG
      UBZFUBZUCMZDUDUEUFZCYDUGMZUHUDZNOPZQZCYDUIZUAUBZYCEUJMZUCMZYGOPZUKZULZFRU
      MGUNUMZUASUOYEYJBUBZYLUCMZYGOPZUKZULZFRUMGUNUMZBSUOZAUACDEFGHIJKLUPAYQUUD
      UASAYKSTZQZYKNOPZYKNUQZSTZYQYEYJUUHYLUCMZYGOPZUKZULZFRUMGUNUMZUUDUUFUUENS
      TUUIAUUEURUSUUGYKNSUTVAZUUFYPUUMGFUNRUUFYBUNTZYCRTZQZQZYPUUMULNYGUUSNYGVE
      PZQZUULYPYEUVAUUKYJUVAUUJVBTZNVBTZYGVBTZVFZUUJNOPZNYGOPZQUUKUUSUVEUUTUUSU
      VBUVCUVDUUSUUJUUSUUHYLUUFUUIUURUUOVCZUUSYCEUUSYCUUFUUPUUQVDZVGUUSEAERTUUE
      UURJVHZVIVJZVKVLZUVCUUSVMVNZUUSYFUUSYFUUSCYDACVBTUUEUURKVHUURYDVBTZUUFUUR
      YDVOTUVNYBYCVPYDVRVSVQVTWAWBZWCVCUVAUVFUVGUUSUVFUUTUUSUUJNYLUCMZNUVLUUSYL
      UVKWDUVMUUSUUHNYLUUSUUHUVHVLZUVMUVKUUSYKVBTZUVCUUHNOPUUSYKAUUEUURWEZVLZVM
      YKNWFVAWGUUSUVPNOPNYLNWIMZOPUUSUWAUUSYLNUUSYCEUVIUUSEUVJWJWHNRTUUSWKVNWLW
      MUUSNNYLUVMUVMUVKWNXAWOVCUUSUUTUVGUUSUVCUVDUUTUVGULVMUVONYGWPWQWRWSUUJNYG
      WTXBXCXDUUSYHQZYEYIYOUULYHYEYIULUUSYHYEXEVQUWBYNUUKYJUUSYNUUKULYHUUSYNUUK
      UUSYNQUVBYMVBTZUVDVFZUUJYMOPZYNQUUKUUSUWDYNUUSUVBUWCUVDUVLUUSYMUUSYKYLUVS
      UVKVKVLUVOWCVCUUSUWEYNUUSUUHYKYLUVQUVTUVKUUSUVRUVCUUHYKOPUVTVMYKNXLVAWGXF
      UUJYMYGWTXBXGVCXHXIUVMUVOXJXKUUCUUNBUUHSYRUUHUIZUUBUUMGFUNRUWFUUAUULYEUWF
      YTUUKYJUWFYSUUJYGOYRUUHYLUCXMXNXOXPXQXRXSXTYA $.

    $( Lemma for ~ aaliou .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aalioulem6 $p |- ( ph -> E. x e. RR+ A. p e. ZZ A. q e. NN
        ( A = ( p / q ) \/ ( x / ( q ^ N ) ) <_
          ( abs ` ( A - ( p / q ) ) ) ) ) $=
      ( cle wbr cn wral cz wa crp wcel va vb cv cdiv co cfv wceq cexp cmin cabs
      cc0 wo wne wrex aalioulem2 aalioulem5 reeanv sylanbrc r19.26-2 cif adantl
      wi ifcl simpr w3a ad2antlr nnrp ad2antll ad2antrr rpexpcld rpdivcld rpred
      cr nnzd simplrl cq znq qre resubcld recnd abscld 3jca adantr simplrr min1
      syl syl2anc lediv1dd anim1i letr sylc orim2d embantd adantrd min2 adantld
      pm2.61dane ralimdvva oveq1 breq1d orbi2d rspcev syl6an syl5bir rexlimdvva
      ex 2ralbidv mpd ) AGUCZFUCZUDUEZDUFZUKUGZCXKUGZUAUCZXJEUHUEZUDUEZCXKUIUEZ
      UJUFZMNZULZVBZFOPGQPZXLUKUMZXNUBUCZXPUDUEZXSMNZULZVBZFOPGQPZRZUBSUNUASUNZ
      XNBUCZXPUDUEZXSMNZULZFOPGQPZBSUNZAYCUASUNYJUBSUNYLAUACDEFGHIJKUOAUBCDEFGH
      IJKLUPYCYJUAUBSSUQURAYKYRUAUBSSYKYBYIRZFOPGQPZAXOSTZYESTZRZRZYRYBYIGFQOUS
      UUDXOYEMNZXOYEUTZSTZYTXNUUFXPUDUEZXSMNZULZFOPGQPZYRUUCUUGAUUEXOYESVCZVAUU
      DYSUUJGFQOUUDXIQTZXJOTZRZRZYSUUJVBXLUKUUPXMRZYBUUJYIUUQXMYAUUJUUPXMVDUUQX
      TUUIXNUUPXTUUIVBXMUUPXTUUIUUPXTRUUHVMTZXQVMTZXSVMTZVEZUUHXQMNZXTRUUIUUPUV
      AXTUUPUURUUSUUTUUPUUHUUPUUFXPUUCUUGAUUOUULVFZUUPXJEUUNXJSTUUDUUMXJVGVHUUP
      EAEOTUUCUUOJVIVNVJZVKVLZUUPXQUUPXOXPAUUAUUBUUOVOZUVDVKVLUUPXRUUPXRUUPCXKA
      CVMTUUCUUOKVIUUOXKVMTZUUDUUOXKVPTUVGXIXJVQXKVRWFVAVSVTWAZWBWCUUPUVBXTUUPU
      UFXOXPUUPUUFUVCVLZUUPXOUVFVLZUVDUUPXOVMTZYEVMTZUUFXOMNUVJUUPYEAUUAUUBUUOW
      DZVLZXOYEWEWGWHWIUUHXQXSWJWKXFWCWLWMWNUUPYDRZYIUUJYBUVOYDYHUUJUUPYDVDUVOY
      GUUIXNUUPYGUUIVBYDUUPYGUUIUUPYGRUURYFVMTZUUTVEZUUHYFMNZYGRUUIUUPUVQYGUUPU
      URUVPUUTUVEUUPYFUUPYEXPUVMUVDVKVLUVHWBWCUUPUVRYGUUPUUFYEXPUVIUVNUVDUUPUVK
      UVLUUFYEMNUVJUVNXOYEWOWGWHWIUUHYFXSWJWKXFWCWLWMWPWQWRYQUUKBUUFSYMUUFUGZYP
      UUJGFQOUVSYOUUIXNUVSYNUUHXSMYMUUFXPUDWSWTXAXGXBXCXDXEXH $.

    $( Liouville's theorem on diophantine approximation:  Any algebraic number,
       being a root of a polynomial ` F ` in integer coefficients, is not
       approximable beyond order ` N = deg ( F ) ` by rational numbers.  In
       this form, it also applies to rational numbers themselves, which are not
       well approximable by other rational numbers.  This is Metamath 100 proof
       #18.  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aaliou $p |- ( ph -> E. x e. RR+ A. p e. ZZ A. q e. NN ( A = ( p / q ) \/
      ( x / ( q ^ N ) ) < ( abs ` ( A - ( p / q ) ) ) ) ) $=
      ( cdiv co cn wral cz crp wcel cr va cv wceq cexp cmin cabs cfv cle wbr wo
      wrex clt aalioulem6 wa c2 rphalfcl adantl w3a ad2antlr nnrp ad2antll nnzd
      ad2antrr rpexpcld rpdivcld rpred simplr adantr znq qre syl resubcl syl2an
      cq recnd abscld 3jca rphalflt ltdiv1dd anim1i ex ltletr sylsyld ralimdvva
      rpre orim2d oveq1 breq1d orbi2d 2ralbidv rspcev syl6an rexlimdva mpd ) AC
      GUBZFUBZMNZUCZUAUBZWPEUDNZMNZCWQUENZUFUGZUHUIZUJZFOPGQPZUARUKWRBUBZWTMNZX
      CULUIZUJZFOPGQPZBRUKZAUACDEFGHIJKLUMAXFXLUARAWSRSZUNZWSUOMNZRSZXFWRXOWTMN
      ZXCULUIZUJZFOPGQPZXLXMXPAWSUPZUQXNXEXSGFQOXNWOQSZWPOSZUNZUNZXDXRWRYEXQTSZ
      XATSZXCTSZURXDXQXAULUIZXDUNZXRYEYFYGYHYEXQYEXOWTXMXPAYDYAUSZYEWPEYCWPRSXN
      YBWPUTVAAEQSXMYDAEJVBVCVDZVEVFYEXAYEWSWTAXMYDVGYLVEVFYEXBYEXBXNCTSZWQTSZX
      BTSYDAYMXMKVHYDWQVNSYNWOWPVIWQVJVKCWQVLVMVOVPVQYEXDYJYEYIXDYEXOWSWTYEXOYK
      VFXMWSTSAYDWSWEUSYLXMXOWSULUIAYDWSVRUSVSVTWAXQXAXCWBWCWFWDXKXTBXORXGXOUCZ
      XJXSGFQOYOXIXRWRYOXHXQXCULXGXOWTMWGWHWIWJWKWLWMWN $.
  $}

  ${
    $d ph k a $.  $d A k a $.  $d B k a $.  $d C k a $.  $d F a $.
    geolim3.a $e |- ( ph -> A e. ZZ ) $.
    geolim3.b1 $e |- ( ph -> B e. CC ) $.
    geolim3.b2 $e |- ( ph -> ( abs ` B ) < 1 ) $.
    geolim3.c $e |- ( ph -> C e. CC ) $.
    geolim3.f $e |- F = ( k e. ( ZZ>= ` A ) |-> ( C x. ( B ^ ( k - A ) ) ) ) $.
    $( Geometric series convergence with arbitrary shift, radix, and
       multiplicative constant.  (Contributed by Stefan O'Rear,
       16-Nov-2014.) $)
    geolim3 $p |- ( ph -> seq A ( + , F ) ~~> ( C / ( 1 - B ) ) ) $=
      ( caddc cfv co cexp cmul c1 wceq wcel cc va cseq cv cmin cmpt cdiv seqeq3
      cuz cli ax-mp wbr cneg cshi cc0 nn0uz oveq2 eqid ovex fvmpt adantl geolim
      cn0 0zd wa expcl sylan eqeltrd zcnd nn0cn fvex mptex shftval4 syl2an uzid
      cz syl uzaddcl oveq1 oveq2d pncan2 eqtr4d 3eqtrd isermulc2 negidd seqeq1d
      ax-1cn subcl sylancr wne cabs abs1 a1i abscld gtned eqnetrd fveq2 necon3i
      subeq0 necon3bid mpbird divrecd 3brtr4d znegcld isershft syl2anc syl5eqbr
      wb ) ALFBUBZLEBUHMZDCEUCZBUDNZONZPNZUEZBUBZDQCUDNZUFNZUIFXNRXHXORKLFXNBUG
      UJAXOXQUIUKZLXNBULZUMNZBXSLNZUBZXQUIUKZALXTUNUBDQXPUFNZPNYBXQUIAYDDUAEVBC
      XJONZUEZXTUNVBUOAVCJACUAYFHIUAUCZVBSZYGYFMZCYGONZRAEYGYEYJVBYFXJYGCOUPYFU
      QCYGOURUSUTZVAAYHVDZYIYJTYKACTSZYHYJTSHCYGVEVFVGYLYGXTMZBYGLNZXNMZDCYOBUD
      NZONZPNZDYIPNABTSZYGTSZYNYPRYHABGVHZYGVIZBYGXNEXIXMBUHVJVKZVLVMYLYOXISZYP
      YSRABXISZYHUUEABVOSZUUFGBVNVPYGBBVQVFEYOXMYSXIXNXJYORZXLYRDPUUHXKYQCOXJYO
      BUDVRVSVSXNUQDYRPURUSVPYLYRYIDPYLYRYJYIYLYQYGCOAYTUUAYQYGRYHUUBUUCBYGVTVM
      VSYKWAVSWBWCAYAUNLXTABUUBWDWEADXPJAQTSZYMXPTSWFHQCWGWHAXPUNWIQCWIZAQWJMZC
      WJMZWIUUJAUUKQUULUUKQRAWKWLAUULQACHWMIWNWOQCUUKUULQCWJWPWQVPAXPUNQCAUUIYM
      XPUNRQCRXGWFHQCWRWHWSWTXAXBAUUGXSVOSXRYCXGGABGXCXQLXNBXSUUDXDXEWTXF $.
  $}

  ${
    $d A a k x p q $.

    $( Liouville's approximation theorem for algebraic numbers per se.
       (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aaliou2 $p |- ( A e. ( AA i^i RR ) -> E. k e. NN E. x e. RR+ A. p e. ZZ
        A. q e. NN ( A = ( p / q ) \/ ( x / ( q ^ k ) ) <
            ( abs ` ( A - ( p / q ) ) ) ) ) $=
      ( va caa wcel cv cdiv co wceq cfv cn wral cz wrex cc cc0 c0p cr cexp cmin
      cin wa cabs clt wbr wo crp elin cply csn cdif wi elaa w3a cdgr cxp eldifn
      wn 3ad2ant1 simpr fveq1 adantl simpl2 simpl3 recnd fvex fvconst2 3eqtr3rd
      syl sneqd xpeq2d eqtrd df-0p syl6eqr velsn sylibr mtand eldifi mtbird cn0
      0dgrb dgrcl elnn0 sylib orel2 sylc simp3 simp2 aaliou oveq2 oveq2d breq1d
      wb eqid orbi2d 2ralbidv rexbidv rspcev syl2anc 3exp rexlimiv sylbi imp )
      BGUAUDHBGHZBUAHZUEBEIDIZJKZLZAIZXICIZUBKZJKZBXJUCKUFMZUGUHZUIZDNOEPOZAUJQ
      ZCNQZBGUAUKXGXHYAXGBRHZBFIZMZSLZFPULMZTUMZUNZQZUEXHYAUOZBFUPYIYJYBYEYJFYH
      YCYHHZYEXHYAYKYEXHUQZYCURMZNHZXKXLXIYMUBKZJKZXPUGUHZUIZDNOEPOZAUJQZYAYLYM
      SLZVAYNUUAUIZYNYLUUAYCRSYCMZUMZUSZLZYLUUFYCYGHZYKYEUUGVAXHYCYFYGUTVBYLUUF
      UEZYCTLUUGUUHYCRSUMZUSZTUUHYCUUEUUJYLUUFVCUUHUUDUUIRUUHUUCSUUHYDBUUEMZSUU
      CUUFYDUUKLYLBYCUUEVDVEYKYEXHUUFVFUUHYBUUKUUCLUUHBYKYEXHUUFVGVHRUUCBSYCVIV
      JVLVKVMVNVOVPVQFTVRVSVTYLYCYFHZUUAUUFWPYKYEUULXHYCYFYGWAVBZPYCWDVLWBYLYMW
      CHZUUBYLUULUUNUUMPYCWEVLYMWFWGUUAYNWHWIZYLABYCYMDEYMWQUUMUUOYKYEXHWJYKYEX
      HWKWLXTYTCYMNXMYMLZXSYSAUJUUPXRYREDPNUUPXQYQXKUUPXOYPXPUGUUPXNYOXLJXMYMXI
      UBWMWNWOWRWSWTXAXBXCXDVEXEXFXE $.

    $( Liouville's approximation theorem extended to complex ` A ` .
       (Contributed by Stefan O'Rear, 20-Nov-2014.) $)
    aaliou2b $p |- ( A e. AA -> E. k e. NN E. x e. RR+ A. p e. ZZ
        A. q e. NN ( A = ( p / q ) \/ ( x / ( q ^ k ) ) <
            ( abs ` ( A - ( p / q ) ) ) ) ) $=
      ( wcel cr cdiv co cfv clt wbr cn wral cz crp wa c1 adantr cc0 caa cv wceq
      cexp cmin cabs wo wrex cin elin aaliou2 sylbir wn cim c2 1nn a1i cc imcld
      aacn recnd wne wb reim0b syl necon3bbid biimpa absrpcld rphalfcld nnexpcl
      cn0 1nn0 mpan2 ad2antll nnrpd rpdivcld rpred znq adantl qre subcld abscld
      cq cle nnge1d 1rp rpregt0 mp1i rpregt0d syl3anc mpbid rpcnd div1d breqtrd
      lediv2 imsubd reim0d oveq2d subid1d 3eqtrd fveq2d absimle ltletrd lelttrd
      rphalflt eqbrtrrd ralrimivva oveq2 breq1d orbi2d 2ralbidv oveq1 pm2.61dan
      olcd rspc2ev ) BUAFZBGFZBEUBZDUBZHIZUCZAUBZXSCUBZUDIZHIZBXTUEIZUFJZKLZUGZ
      DMNEONZAPUHCMUHZXPXQQBUAGUIFYKBUAGUJABCDEUKULXPXQUMZQZRMFZBUNJZUFJZUOHIZP
      FZYAYQXSRUDIZHIZYGKLZUGZDMNEONZYKYNYMUPUQYMYPYMYOYMYOYMBXPBURFZYLBUTZSZUS
      VAZXPYLYOTVBXPXQYOTXPUUDXQYOTUCVCUUEBVDVEVFVGVHZVIZYMUUBEDOMYMXROFZXSMFZQ
      ZQZUUAYAUUMYTYQYGUUMYTUUMYQYSYMYRUULUUISZUUMYSUUKYSMFZYMUUJUUKRVKFUUOVLXS
      RVJVMVNZVOZVPVQUUMYQUUNVQZUUMYFUUMBXTYMUUDUULUUFSZUUMXTUUMXTWCFZXTGFUULUU
      TYMXRXSVRVSXTVTVEZVAZWAZWBZUUMYTYQRHIZYQWDUUMRYSWDLZYTUVEWDLZUUMYSUUPWEUU
      MRGFTRKLQZYSGFTYSKLQYQGFTYQKLQUVFUVGVCRPFUVHUUMWFRWGWHUUMYSUUQWIUUMYQUUNW
      IRYSYQWOWJWKUUMYQUUMYQUUNWLWMWNUUMYQYPYGUURUUMYPYMYPPFZUULUUHSZVQUVDUUMUV
      IYQYPKLUVJYPXEVEUUMYFUNJZUFJZYPYGWDUUMUVKYOUFUUMUVKYOXTUNJZUEIYOTUEIYOUUM
      BXTUUSUVBWPUUMUVMTYOUEUUMXTUVAWQWRUUMYOYMYOURFUULUUGSWSWTXAUUMYFURFUVLYGW
      DLUVCYFXBVEXFXCXDXNXGYJUUCYAYBYSHIZYGKLZUGZDMNEONCARYQMPYCRUCZYIUVPEDOMUV
      QYHUVOYAUVQYEUVNYGKUVQYDYSYBHYCRXSUDXHWRXIXJXKYBYQUCZUVPUUBEDOMUVRUVOUUAY
      AUVRUVNYTYGKYBYQYSHXLXIXJXKXOWJXM $.
  $}

  ${
    $d F b c d $.  $d A a b c d $.  $d B a b c d $.  $d G a b d $.
    aaliou3lem.a $e |- G = ( c e. ( ZZ>= ` A ) |->
        ( ( 2 ^ -u ( ! ` A ) ) x. ( ( 1 / 2 ) ^ ( c - A ) ) ) ) $.
    $( Lemma for ~ aaliou3 .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aaliou3lem1 $p |- ( ( A e. NN /\ B e. ( ZZ>= ` A ) ) ->
        ( G ` B ) e. RR ) $=
      ( cn wcel cuz cfv c2 cexp co cmin cmul wceq oveq2d crp cz rpexpcl sylancr
      wa cfa cneg c1 cdiv cr oveq1 ovex fvmpt adantl 2rp cn0 simpl nnnn0d faccl
      cv syl nnzd znegcld halfre halfgt0 elrpii eluzelz zsubcl syl2anr rpmulcld
      nnz rpred eqeltrd ) AFGZBAHIZGZUAZBCIZJAUBIZUCZKLZUDJUELZBAMLZKLZNLZUFVLV
      NWAOVJDBVQVRDUPZAMLZKLZNLWAVKCWBBOZWDVTVQNWEWCVSVRKWBBAMUGPPEVQVTNUHUIUJV
      MWAVMVQVTVMJQGVPRGVQQGUKVMVOVMVOVMAULGVOFGVMAVJVLUMUNAUOUQURUSJVPSTVMVRQG
      VSRGZVTQGVRUTVAVBVLBRGARGWFVJABVCAVGBAVDVEVRVSSTVFVHVI $.

    aaliou3lem.b $e |- F = ( a e. NN |-> ( 2 ^ -u ( ! ` a ) ) ) $.
    $( Lemma for ~ aaliou3 .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aaliou3lem2 $p |- ( ( A e. NN /\ B e. ( ZZ>= ` A ) ) ->
        ( F ` B ) e. ( 0 (,] ( G ` B ) ) ) $=
      ( wcel cfv co wbr cle c2 cexp wceq fveq2 oveq2d c1 cmul vb vd cn cuz cioc
      wa cc0 cr clt cfa cneg crp eluznn cv negeqd ovex fvmpt syl 2rp cn0 nnnn0d
      cz faccl nnzd znegcld rpexpcl sylancr eqeltrd rpred rpgt0d breq12d imbi2d
      wi caddc weq cdiv cmin nnnn0 leidd nncn subidd cc halfcn exp0 ax-mp rpcnd
      syl6eq mulid1d eqtrd breqtrrd uzid oveq1 3syl 3brtr4d rpge0d simpl halfre
      nnz a1i halfgt0 elrpii eluzelz zsubcl syl2anr jca31 adantr adantl zmulcld
      rpmulcld simpr nncnd zcnd mulneg1d nnmulcld nnge1d wb nnred leneg eqbrtrd
      1re mpbid neg1z eluz sylancl mpbird 2re 1le2 leexp2a mp3an12 2cn syl6breq
      expn1 lemul12a 3impia syl112anc ex facp1 ax-1cn addcom peano2cn 1cnd mpan
      adddid oveq1d 3eqtr3d wne 2cnne0 expaddz syl2anc addsubd uznn0sub mulassd
      expp1 eqtr4d sylibrd peano2nnd peano2uz 3imtr4d expcom a2d uzind4 cxr w3a
      impcom 0xr aaliou3lem1 elioc2 mpbir3and ) AUCIZBAUDJZIZUFZBCJZUGBDJZUEKIZ
      UVMUHIZUGUVMUILZUVMUVNMLZUVLUVMUVLUVMNBUJJZUKZOKZULUVLBUCIUVMUWAPBAUMZEBN
      EUNZUJJZUKZOKZUWAUCCUWCBPZUWEUVTNOUWGUWDUVSUWCBUJQUORHNUVTOUPUQURUVLNULIZ
      UVTVBIUWAULIUSUVLUVSUVLUVSUVLBUTIUVSUCIUVLBUWBVABVCURVDVENUVTVFVGVHZVIUVL
      UVMUWIVJUVKUVIUVRUVIUAUNZCJZUWJDJZMLZVMUVIACJZADJZMLZVMZUVIUBUNZCJZUWRDJZ
      MLZVMUVIUWRSVNKZCJZUXBDJZMLZVMUVIUVRVMUAUBABUWJAPZUWMUWPUVIUXFUWKUWNUWLUW
      OMUWJACQUWJADQVKVLUAUBVOZUWMUXAUVIUXGUWKUWSUWLUWTMUWJUWRCQUWJUWRDQVKVLUWJ
      UXBPZUWMUXEUVIUXHUWKUXCUWLUXDMUWJUXBCQUWJUXBDQVKVLUWJBPZUWMUVRUVIUXIUWKUV
      MUWLUVNMUWJBCQUWJBDQVKVLUWQAVBIZUVINAUJJZUKZOKZUXMSNVPKZAAVQKZOKZTKZUWNUW
      OMUVIUXMUXMUXQMUVIUXMUVIUXMUVIUWHUXLVBIZUXMULIZUSUVIUXKUVIUXKUVIAUTIZUXKU
      CIZAVRAVCZURVDVENUXLVFZVGZVIVSUVIUXQUXMSTKUXMUVIUXPSUXMTUVIUXPUXNUGOKZSUV
      IUXOUGUXNOUVIAAVTZWARUXNWBIZUYESPWCUXNWDWEWGRUVIUXMUVIUXMUYDWFWHWIWJEAUWF
      UXMUCCUWCAPZUWEUXLNOUYHUWDUXKUWCAUJQUORHNUXLOUPUQUVIUXJAUVJIUWOUXQPAWRZAW
      KFAUXMUXNFUNZAVQKZOKZTKZUXQUVJDUYJAPZUYLUXPUXMTUYNUYKUXOUXNOUYJAAVQWLRRGU
      XMUXPTUPUQWMWNWSUWRUVJIZUVIUXAUXEUVIUYOUXAUXEVMUVIUYOUFZNUWRUJJZUKZOKZUXM
      UXNUWRAVQKZOKZTKZMLZNUXBUJJZUKZOKZUXMUXNUXBAVQKZOKZTKZMLZUXAUXEUYPVUCUYSN
      UYRUWRTKZOKZTKZVUBUXNTKZMLZVUJUYPVUCVUOUYPVUCUFUYSUHIZUGUYSMLZUFVUBUHIZUF
      ZVULUHIZUGVULMLZUFUXNUHIZUFZVUCVULUXNMLZVUOUYPVUSVUCUYPVUPVUQVURUYPUYSUYP
      UWHUYRVBIZUYSULIUSUYPUYQUYPUYQUYPUWRUTIZUYQUCIUYPUWRUWRAUMZVAZUWRVCURZVDV
      EZNUYRVFVGZVIUYPUYSVVKWOUYPVUBUYPUXMVUAUYPUWHUXRUXSUSUYPUXKUYPUXKUYPUXTUY
      AUYPAUVIUYOWPVAUYBURVDVEUYCVGZUYPUXNULIUYTVBIZVUAULIUXNWQWTXAUYOUWRVBIZUX
      JVVMUVIAUWRXBZUYIUWRAXCXDUXNUYTVFVGZXIVIXEXFUYPVVCVUCUYPVUTVVAVVBUYPVULUY
      PUWHVUKVBIZVULULIUSUYPUYRUWRVVJUYOVVNUVIVVOXGZXHZNVUKVFVGZVIUYPVULVVTWOVV
      BUYPWQWSXEXFUYPVUCXJUYPVVDVUCUYPVULNSUKZOKZUXNMUYPVWAVUKUDJIZVULVWBMLZUYP
      VWCVUKVWAMLZUYPVUKUYQUWRTKZUKZVWAMUYPUYQUWRUYPUYQVVIXKZUYPUWRVVRXLZXMUYPS
      VWFMLZVWGVWAMLZUYPVWFUYPUYQUWRVVIVVGXNZXOUYPSUHIVWFUHIVWJVWKXPXTUYPVWFVWL
      XQSVWFXRVGYAXSUYPVVQVWAVBIVWCVWEXPVVSYBVUKVWAYCYDYENUHISNMLVWCVWDYFYGNVUK
      VWAYHYIURNWBIZVWBUXNPYJNYLWEYKXFVUSVVCVUCVVDUFVUOUYSVUBVULUXNYMYNYOYPUYPV
      UFVUMVUIVUNMUYPVUFNUYRVUKVNKZOKZVUMUYPVUEVWNNOUYPVUEUYQUXBTKZUKZVWNUYPVUD
      VWPUYPVVFVUDVWPPVVHUWRYQURUOUYPUYRUXBTKUYRSUWRVNKZTKZVWQVWNUYPUXBVWRUYRTU
      YPUWRWBIZSWBIUXBVWRPVWIYRUWRSYSYDRUYPUYQUXBVWHUYPVWTUXBWBIVWIUWRYTURXMUYP
      VWSUYRSTKZVUKVNKVWNUYPUYRSUWRUYPUYRVVJXLZUYPUUAZVWIUUCUYPVXAUYRVUKVNUYPUY
      RVXBWHUUDWIUUEWIRUYPVVEVVQVWOVUMPZVVJVVSVWMNUGUUFUFVVEVVQUFVXDUUGNUYRVUKU
      UHUUBUUIWIUYPVUIUXMVUAUXNTKZTKVUNUYPVUHVXEUXMTUYPVUHUXNUYTSVNKZOKZVXEUYPV
      UGVXFUXNOUYPUWRSAVWIVXCUVIAWBIUYOUYFXFUUJRUYPUYGUYTUTIZVXGVXEPWCUYOVXHUVI
      AUWRUUKXGUXNUYTUUMVGWIRUYPUXMVUAUXNUYPUXMVVLWFUYPVUAVVPWFUYGUYPWCWSUULUUN
      VKUUOUYPUWSUYSUWTVUBMUYPUWRUCIUWSUYSPVVGEUWRUWFUYSUCCEUBVOZUWEUYRNOVXIUWD
      UYQUWCUWRUJQUORHNUYROUPUQURUYOUWTVUBPUVIFUWRUYMVUBUVJDFUBVOZUYLVUAUXMTVXJ
      UYKUYTUXNOUYJUWRAVQWLRRGUXMVUATUPUQXGVKUYPUXCVUFUXDVUIMUYPUXBUCIUXCVUFPUY
      PUWRVVGUUPEUXBUWFVUFUCCUWCUXBPZUWEVUENOVXKUWDVUDUWCUXBUJQUORHNVUEOUPUQURU
      YOUXDVUIPZUVIUYOUXBUVJIVXLAUWRUUQFUXBUYMVUIUVJDUYJUXBPZUYLVUHUXMTVXMUYKVU
      GUXNOUYJUXBAVQWLRRGUXMVUHTUPUQURXGVKUURUUSUUTUVAUVDUVLUGUVBIUVNUHIUVOUVPU
      VQUVRUVCXPUVEABDFGUVFUGUVNUVMUVGVGUVH $.

    $( Lemma for ~ aaliou3 .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aaliou3lem3 $p |- ( A e. NN -> ( seq A ( + , F ) e. dom ~~> /\
        sum_ b e. ( ZZ>= ` A ) ( F ` b ) e. RR+ /\
        sum_ b e. ( ZZ>= ` A ) ( F ` b ) <_
          ( 2 x. ( 2 ^ -u ( ! ` A ) ) ) ) ) $=
      ( wcel cfv crp c2 co cle wbr syl cc0 c1 cdiv cc cn caddc cseq cli cdm cuz
      cv csu cfa cneg cexp cmul eqid cz nnz uzid aaliou3lem1 wa cr clt cioc w3a
      aaliou3lem2 cxr 0xr elioc2 sylancr mpbid simp1d cmin halfcn a1i cabs wceq
      wb halfre halfgt0 elrpii rprege0 absid mp2b halflt1 eqbrtri 2rp cn0 nnnn0
      faccl nnzd znegcld rpexpcl rpcnd geolim3 seqex breldm simp2d elrpd rpge0d
      simp3d cvgcmp eqidd isumrpcl isumle recnd isumclim 1mhlfehlf oveq2i mulcl
      2cn sylancl div1d wne rpcnne0 ax-mp 2cnne0 divdiv2 mp3an23 mulcom 3eqtr4d
      ovex 1rp syl5eq eqtrd breqtrd 3jca ) AUAIZUBBAUCUDUEZIAUFJZEUGZBJZEUHZKIY
      JLLAUIJZUJZUKMZULMZNOYEECBAAYGYGUMZYEAUNIAYGIAUOZAUPPZAYHCFGUQZYEYHYGIURZ
      YIUSIZQYIUTOZYIYHCJZNOZYSYIQUUBVAMIZYTUUAUUCVBZAYHBCDFGHVCYSQVDIUUBUSIUUD
      UUEVOVEYRQUUBYIVFVGVHZVIZYEUBCAUCZYMRRLSMZVJMZSMZUDOUUHYFIYEAUUIYMFCYPUUI
      TIYEVKVLUUIVMJZRUTOYEUULUUIRUTUUIKIUUIUSIQUUINOURUULUUIVNUUIVPVQVRUUIVSUU
      IVTWAWBWCVLYEYMYELKIYLUNIYMKIWDYEYKYEYKYEAWEIYKUAIAWFAWGPWHWILYLWJVGWKZGW
      LZUUHUUKUDUBCAWMYMUUJSXSWNPZYSYIYSYIUUGYSYTUUAUUCUUFWOWPZWQYSYTUUAUUCUUFW
      RZWSZYEYIEBAAYGYGYOYOYQYSYIWTZUUPUURXAYEYJYGUUBEUHZYNNYEYIUUBEBCAYGYOYPUU
      SUUGYSUUBWTZYRUUQUURUUOXBYEUUTUUKYNYEUUBUUKECAYGYOYPUVAYSUUBYRXCUUNXDYEUU
      KYMUUISMZYNUUJUUIYMSXEXFYEYMLULMZRSMZUVCUVBYNYEUVCYEYMTIZLTIZUVCTIUUMXHYM
      LXGXIXJYEUVEUVBUVDVNZUUMUVERTIRQXKURZUVFLQXKURUVGRKIUVHXTRXLXMXNYMRLXOXPP
      YEUVFUVEYNUVCVNXHUUMLYMXQVGXRYAYBYCYD $.
  $}

  ${
    $d A a x $.  $d B a x $.

    $( Lemma for ~ aaliou3 .  (Contributed by Stefan O'Rear, 20-Nov-2014.) $)
    aaliou3lem8 $p |- ( ( A e. NN /\ B e. RR+ ) -> E. x e. NN ( 2 x. ( 2 ^ -u (
        ! ` ( x + 1 ) ) ) ) <_ ( B / ( ( 2 ^ ( ! ` x ) ) ^ A ) ) ) $=
      ( cn wcel crp c2 cdiv co cexp wbr c1 cfa cfv cmul cle cmin sylancr oveq2d
      syl va wa cv clt caddc cneg wrex cr 2rp rpdivcl rpred 2re expnbnd mp3an23
      mpan 1lt2 adantl simprl simpll nnaddm1cl syl2anc simplr rerpdivcl reexpcl
      nnnn0d cz nnaddcld nnm1nn0 peano2nn0 faccl zmulcld zsubcld rpexpcl simprr
      cn0 nnzd ltled a1i 1le2 nnred nn0ge0d nnge1d lemulge12d wceq facp1 oveq1d
      cuz nncnd nn0cnd subdid 1cnd npcand pncand eqtrd 3eqtr2d breqtrrd wb eluz
      mpbird leexp2ad letrd cc cc0 wne rpcnne0 mp1i expsub syl12anc 2cn expmuld
      rpcnd rpexpcld rpne0d divrecd 3eqtrrd rpreccld rpmulcld ledivmuld breqtrd
      mpbid mul12d expneg eqtr4d 3brtr4d fveq2d negeqd breq12d rspcev rexlimddv
      oveq1 fveq2 ) BDEZCFEZUBZGCHIZGUAUCZJIZUDKZGGAUCZLUEIZMNZUFZJIZOIZCGYSMNZ
      JIZBJIZHIZPKZADUGZUADYMYRUADUGZYLYMYOUHEZUUKYMYOGFEZYMYOFEUIGCUJUOUKUULGU
      HEZLGUDKUUKULUPYOGUAUMUNTUQYNYPDEZYRUBZUBZYPBUEIZLQIZDEZGGUUSLUEIZMNZUFZJ
      IZOIZCGUUSMNZJIZBJIZHIZPKZUUJUUQUUOYLUUTYNUUOYRURZYLYMUUPUSZYPBUTVAUUQGGU
      VBJIZHIZCLUVHHIZOIZUVEUVIPUUQUVNUVPPKGUVMUVPOIZPKUUQGCUVMUVOOIZOIZUVQPUUQ
      YOUVRPKGUVSPKUUQYOGUVBUVFBOIZQIZJIZUVRPUUQYOYQUWBUUQUUNYMUULULYLYMUUPVBZG
      CVCRZUUQUUNYPVOEYQUHEULUUQYPUVKVEZGYPVDRZUUQUWBUUQUUMUWAVFEZUWBFEUIUUQUVB
      UVTUUQUVBUUQUVAVOEZUVBDEUUQUUSVOEZUWHUUQUURDEUWIUUQYPBUVKUVLVGZUURVHTZUUS
      VITZUVAVJTZVPZUUQUVFBUUQUVFUUQUWIUVFDEUWKUUSVJTZVPZUUQBUVLVPZVKZVLZGUWAVM
      RUKUUQYOYQUWDUWFYNUUOYRVNVQUUQGYPUWAUUNUUQULVRZLGPKUUQVSVRUUQUWAYPWGNEZYP
      UWAPKZUUQYPUVFYPOIZUWAPUUQYPUVFUUQYPUVKVTUUQUVFUWOVTUUQYPUWEWAUUQUVFUWOWB
      WCUUQUWAUVFUVAOIZUVTQIUVFUVABQIZOIUXCUUQUVBUXDUVTQUUQUWIUVBUXDWDUWKUUSWET
      WFUUQUVFUVABUUQUVFUWOWHUUQUVAUWLWIUUQBUVLWHZWJUUQUXEYPUVFOUUQUXEUURBQIYPU
      UQUVAUURBQUUQUURLUUQUURUWJWHUUQWKWLWFUUQYPBUUQYPUVKWHUXFWMWNSWOWPUUQYPVFE
      UWGUXAUXBWQUUQYPUVKVPUWSYPUWAWRVAWSWTXAUUQUWBUVMGUVTJIZHIZUVMUVHHIUVRUUQG
      XBEZGXCXDUBZUVBVFEZUVTVFEUWBUXHWDUUMUXJUUQUIGXEXFUWNUWRGUVBUVTXGXHUUQUXGU
      VHUVMHUUQGUVFBUXIUUQXIVRZUUQBUVLVEUUQUVFUWOVEXJSUUQUVMUVHUUQUVMUUQUUMUXKU
      VMFEUIUWNGUVBVMRZXKZUUQUVHUUQUVGBUUQUUMUVFVFEUVGFEUIUWPGUVFVMRUWQXLZXKZUU
      QUVHUXOXMZXNXOWPUUQGUVRCUWTUUQUVRUUQUVMUVOUXMUUQUVHUXOXPZXQUKUWCXRXTUUQCU
      VMUVOUUQCUWCXKZUXNUUQUVOUXRXKYAXSUUQGUVPUVMUWTUUQUVPUUQCUVOUWCUXRXQUKUXMX
      RWSUUQUVEGLUVMHIZOIUVNUUQUVDUXTGOUUQUXIUVBVOEUVDUXTWDXIUUQUVBUWMVEGUVBYBR
      SUUQGUVMUXLUXNUUQUVMUXMXMXNYCUUQCUVHUXSUXPUXQXNYDUUIUVJAUUSDYSUUSWDZUUDUV
      EUUHUVIPUYAUUCUVDGOUYAUUBUVCGJUYAUUAUVBUYAYTUVAMYSUUSLUEYJYEYFSSUYAUUGUVH
      CHUYAUUFUVGBJUYAUUEUVFGJYSUUSMYKSWFSYGYHVAYI $.
  $}

  ${
    $d a b c d e $.  $d F b c d e $.  $d L c d e f $.  $d H d e f $.
    $d A a b c d e $.
    aaliou3lem.c $e |- F = ( a e. NN |-> ( 2 ^ -u ( ! ` a ) ) ) $.
    aaliou3lem.d $e |- L = sum_ b e. NN ( F ` b ) $.
    aaliou3lem.e $e |- H = ( c e. NN |-> sum_ b e. ( 1 ... c ) ( F ` b ) ) $.
    $( Lemma for ~ aaliou3 .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aaliou3lem4 $p |- L e. RR $=
      ( c1 cfv cv csu cr cn wcel c2 cexp co cmul cuz nnuz sumeq1i eqtri crp 1nn
      cseq cli cdm cfa cneg cle wbr cdiv cmin cmpt eqid aaliou3lem3 simp2d rpre
      caddc mp2b eqeltri ) CJUAKZELAKZEMZNCOVEEMVFHOVDVEEUBUCUDJOPZVFUEPZVFNPUF
      VGVAAJUGUHUIPVHVFQQJUJKUKRSZTSULUMJAFVDVIJQUNSFLJUOSRSTSUPZDEFVJUQGURUSVF
      UTVBVC $.

    $( Lemma for ~ aaliou3 .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aaliou3lem5 $p |- ( A e. NN -> ( H ` A ) e. RR ) $=
      ( cn wcel cfv c1 cfz co cv cr c2 cexp csu oveq2 sumeq1d sumex fvmpt fzfid
      wceq wa elfznn adantl cfa cneg weq fveq2 negeqd oveq2d ovex crp 2rp nnnn0
      cz cn0 faccl syl nnzd znegcld rpexpcl sylancr rpred eqeltrd fsumrecl ) AK
      LZACMNAOPZFQZBMZFUAZRGANGQZOPZVOFUAVPKCVQAUGVRVMVOFVQANOUBUCJVMVOFUDUEVLV
      MVOFVLNAUFVLVNVMLZUHVNKLZVORLVSVTVLVNAUIUJVTVOSVNUKMZULZTPZREVNSEQZUKMZUL
      ZTPWCKBEFUMZWFWBSTWGWEWAWDVNUKUNUOUPHSWBTUQUEVTWCVTSURLWBVALWCURLUSVTWAVT
      WAVTVNVBLWAKLVNUTVNVCVDVEVFSWBVGVHVIVJVDVKVJ $.

    $( Lemma for ~ aaliou3 .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aaliou3lem6 $p |- ( A e. NN -> ( ( H ` A ) x.
          ( 2 ^ ( ! ` A ) ) ) e. ZZ ) $=
      ( cn wcel cfv c2 cexp co cmul c1 cz cn0 cfa cfz cv csu wceq oveq2 sumeq1d
      sumex fvmpt oveq1d fzfid crp 2rp nnnn0 faccl syl rpexpcl sylancr rpcnd wa
      nnzd cneg cc elfznn weq fveq2 negeqd oveq2d adantl nnnn0d znegcld eqeltrd
      ovex fsummulc1 caddc adantr cc0 wne 2cnne0 expaddz mpan syl2anc cmin zcnd
      2z addcomd nncnd negsubd eqtrd cle wbr elfzle2 facwordi syl3anc wb nn0sub
      mpbid zexpcl eqeltrrd fsumzcl ) AKLZACMZNAUAMZOPZQPRAUBPZFUCZBMZFUDZXDQPZ
      SXAXBXHXDQGARGUCZUBPZXGFUDXHKCXJAUEXKXEXGFXJARUBUFUGJXEXGFUHUIUJXAXIXEXGX
      DQPZFUDSXAXEXGXDFXARAUKZXAXDXANULLZXCSLZXDULLUMXAXCXAATLZXCKLZAUNZAUOZUPV
      AZNXCUQURUSXAXFXELZUTZXGNXFUAMZVBZOPZVCYAXGYEUEZXAYAXFKLZYFXFAVDZEXFNEUCZ
      UAMZVBZOPYEKBEFVEZYKYDNOYLYJYCYIXFUAVFVGVHHNYDOVMUIUPVIZYBYEYBXNYDSLZYEUL
      LUMYBYCYBYCYBXFTLZYCKLYBXFYAYGXAYHVIVJZXFUOUPZVAVKZNYDUQURUSVLVNXAXEXLFXM
      YBXLYEXDQPZSYBXGYEXDQYMUJYBNYDXCVOPZOPZYSSYBYNXOUUAYSUEZYRXAXOYAXTVPZNVCL
      NVQVRUTYNXOUTUUBVSNYDXCVTWAWBYBNSLYTTLUUASLWEYBYTXCYCWCPZTYBYTXCYDVOPUUDY
      BYDXCYBYDYRWDYBXCUUCWDZWFYBXCYCUUEYBYCYQWGWHWIYBYCXCWJWKZUUDTLZYBYOXPXFAW
      JWKZUUFYPXAXPYAXRVPZYAUUHXAXFRAWLVIXFAWMWNYBYCTLXCTLUUFUUGWOYBYCYQVJYBXCY
      BXPXQUUIXSUPVJYCXCWPWBWQVLNYTWRURWSVLWTVLVL $.

    $( Lemma for ~ aaliou3 .  (Contributed by Stefan O'Rear, 16-Nov-2014.) $)
    aaliou3lem7 $p |- ( A e. NN -> ( ( H ` A ) =/= L /\
        ( abs ` ( L - ( H ` A ) ) ) <_
          ( 2 x. ( 2 ^ -u ( ! ` ( A + 1 ) ) ) ) ) ) $=
      ( cn wcel c1 caddc co cfv crp c2 cexp cle cuz cv csu cfa cneg cmul wbr wa
      wne cmin cabs cseq cli cdm w3a peano2nn cdiv cmpt eqid aaliou3lem3 3simpc
      3syl wceq wb cfz cc nncn ax-1cn pncan sylancl oveq2d sumeq1d oveq1d eqidd
      nnuz weq fveq2 negeqd ovex fvmpt 2rp cn0 nnnn0 faccl nnzd znegcld rpexpcl
      cz syl sylancr rpcnd eqeltrd adantl 1nn simp1d mp1i isumsplit oveq2 sumex
      3eqtr4rd syl6eqr aaliou3lem4 recni aaliou3lem5 recnd simp2d mpbird eqcomd
      a1i subaddd eleq1 breq1 anbi12d cr adantr clt simprl difrp ltned resubcld
      rpmulcl rpred lttrd ltled simprr lesubadd2d mpbid absdifled mpbir2and jca
      ltsubrpd ex sylbid mpd ) AKLZAMNOZUAPZFUBZBPZFUCZQLZYTRRYPUDPZUEZSOZUFOZT
      UGZUHZACPZDUIZDUUHUJOZUKPUUETUGZUHZYOYPKLZNBYPULUMUNZLZUUAUUFUOUUGAUPZYPB
      GYQUUDMRUQOZGUBZYPUJOSOUFOURZEFGUUSUSHUTZUUOUUAUUFVAVBYOUUGUUJQLZUUJUUETU
      GZUHZUULYOYTUUJVCZUUGUVCVDYOUUJYTYOUUJYTVCUUHYTNOZDVCYOUVEKYSFUCZDYOMYPMU
      JOZVEOZYSFUCZYTNOMAVEOZYSFUCZYTNOUVFUVEYOUVIUVKYTNYOUVHUVJYSFYOUVGAMVEYOA
      VFLMVFLUVGAVCAVGVHAMVIVJVKVLVMYOYSFBMYPYQKVOYQUSUUPYOYRKLZUHYSVNUVLYSVFLY
      OUVLYSRYRUDPZUEZSOZVFEYRREUBZUDPZUEZSOUVOKBEFVPZUVRUVNRSUVSUVQUVMUVPYRUDV
      QVRVKHRUVNSVSVTUVLUVOUVLRQLZUVNWHLUVOQLWAUVLUVMUVLUVMUVLYRWBLUVMKLYRWCYRW
      DWIWEWFRUVNWGWJWKWLWMMKLZNBMULUUNLZYOWNUWAUWBMUAPZYSFUCZQLUWDRRMUDPUESOZU
      FOTUGMBGUWCUWEUUQUURMUJOSOUFOURZEFGUWFUSHUTWOWPWQYOUUHUVKYTNGAMUURVEOZYSF
      UCUVKKCUURAVCUWGUVJYSFUURAMVEWRVLJUVJYSFWSVTVMWTIXAYODUUHYTDVFLYODBCDEFGH
      IJXBZXCXIYOUUHABCDEFGHIJXDZXEYOYTYOUUMUUAUUPUUMUUOUUAUUFUUTXFWIWKXJXGXHUV
      DUUAUVAUUFUVBYTUUJQXKYTUUJUUETXLXMWIYOUVCUULYOUVCUHZUUIUUKUWJUUHDYOUUHXNL
      ZUVCUWIXOZUWJUUHDXPUGZUVAYOUVAUVBXQUWJUWKDXNLZUWMUVAVDUWLUWHUUHDXRVJXGZXS
      UWJUUKUUHUUEUJOZDTUGDUUHUUENOTUGZUWJUWPDUWJUUHUUEUWLUWJUUEYOUUEQLZUVCYOUV
      TUUDQLZUWRWAYOUVTUUCWHLUWSWAYOUUBYOUUBYOUUMYPWBLUUBKLUUPYPWCYPWDVBWEWFRUU
      CWGWJRUUDYAWJXOZYBZXTZUWNUWJUWHXIZUWJUWPUUHDUXBUWLUXCUWJUUHUUEUWLUWTYKUWO
      YCYDUWJUVBUWQYOUVAUVBYEUWJDUUHUUEUXCUWLUXAYFYGUWJDUUHUUEUXCUWLUXAYHYIYJYL
      YMYN $.

    $d L a b c d e f $.

    $( Example of a "Liouville number", a very simple definable transcendental
       real.  (Contributed by Stefan O'Rear, 20-Nov-2014.) $)
    aaliou3lem9 $p |- -. L e. AA $=
      ( vf vd wcel cdiv co cmin cabs cn cz wn c2 ve caa cv wceq cexp cfv clt wo
      wbr wral crp wrex wa caddc cfa cneg cmul aaliou3lem8 aaliou3lem6 ad2antrl
      c1 cle cn0 2nn nnnn0 faccl nnexpcl sylancr aaliou3lem5 recnd nncnd nnne0d
      3syl cr divcan4d wne aaliou3lem7 simpld eqnetrd necomd neneqd aaliou3lem4
      remulcld nndivred resubcl abscld 2rp peano2nn0 nnz znegcl rpexpcl rpmulcl
      nnred rpred simplr ad2antrr nnexpcld nnrpd rpdivcld oveq2d fveq2d eqbrtrd
      simprd simprr letrd lenltd mpbid oveq1 eqeq2d notbid breq2d anbi12d oveq2
      breq12d rspc2ev syl112anc rexlimddv pm4.56 rexbii rexnal bitri sylib nrex
      nrexdv aaliou2b mto ) CUBLCJUCZKUCZMNZUDZEUCZYHDUCZUENZMNZCYIONZPUFZUGUIZ
      UHZKQUJZJRUJZEUKULZDQULUUADQYLQLZYTEUKUUBYKUKLZUMZYJSZYQSZUMZKQULZJRULZYT
      SZUUDTTUAUCZVAUNNZUOUFZUPZUENZUQNZYKTUUKUOUFZUENZYLUENZMNZVBUIZUUIUAQUAYL
      YKURUUDUUKQLZUVAUMZUMZUUKBUFZUURUQNZRLZUURQLZCUVFUURMNZUDZSZUUTCUVIONZPUF
      ZUGUIZSZUUIUVBUVGUUDUVAUUKABCDEFGHIUSUTUVDTQLUUQVCLZUVHVDUVDUUKVCLZUUQQLU
      VPUVBUVQUUDUVAUUKVEUTZUUKVFUUQVEVMTUUQVGVHZUVDCUVIUVDUVICUVDUVIUVECUVDUVE
      UURUVDUVEUVBUVEVNLUUDUVAUUKABCDEFGHIVIUTZVJUVDUURUVSVKUVDUURUVSVLVOZUVBUV
      ECVPZUUDUVAUVBUWBCUVEONZPUFZUUPVBUIZUUKABCDEFGHIVQZVRUTVSVTWAUVDUVMUUTVBU
      IUVOUVDUVMUUPUUTUVDUVLUVDUVLUVDCVNLUVIVNLUVLVNLABCDEFGHIWBUVDUVFUURUVDUVE
      UURUVTUVDUURUVSWMWCUVSWDCUVIWEVHVJWFZUVDUUPUVDTUKLZUUOUKLZUUPUKLWGUVDUWHU
      UNRLZUWIWGUVDUUMQLZUUMRLUWJUVDUVQUULVCLUWKUVRUUKWHUULVFVMUUMWIUUMWJVMTUUN
      WKVHTUUOWLVHWNUVDUUTUVDYKUUSUUBUUCUVCWOUVDUUSUVDUURYLUVSUUBYLVCLUUCUVCYLV
      EWPWQWRWSWNZUVDUVMUWDUUPVBUVDUVLUWCPUVDUVIUVECOUWAWTXAUVBUWEUUDUVAUVBUWBU
      WEUWFXCUTXBUUDUVBUVAXDXEUVDUVMUUTUWGUWLXFXGUUGUVKUVOUMCUVFYHMNZUDZSZYNCUW
      MONZPUFZUGUIZSZUMJKUVFUURRQYGUVFUDZUUEUWOUUFUWSUWTYJUWNUWTYIUWMCYGUVFYHMX
      HZXIXJUWTYQUWRUWTYPUWQYNUGUWTYOUWPPUWTYIUWMCOUXAWTXAXKXJXLYHUURUDZUWOUVKU
      WSUVOUXBUWNUVJUXBUWMUVICYHUURUVFMXMZXIXJUXBUWRUVNUXBYNUUTUWQUVMUGUXBYMUUS
      YKMYHUURYLUEXHWTUXBUWPUVLPUXBUWMUVICOUXCWTXAXNXJXLXOXPXQUUIYSSZJRULUUJUUH
      UXDJRUUHYRSZKQULUXDUUGUXEKQYJYQXRXSYRKQXTYAXSYSJRXTYAYBYDYCECDKJYEYF $.
  $}

  ${
    $d i j k l $.
    $( Example of a "Liouville number", a very simple definable transcendental
       real.  (Contributed by Stefan O'Rear, 23-Nov-2014.) $)
    aaliou3 $p |- sum_ k e. NN ( 2 ^ -u ( ! ` k ) ) e/ AA $=
      ( vj vl vi cn c2 cv cfa cfv cneg cexp csu caa cmpt eqid weq negeqd oveq2d
      co fveq2 c1 cfz cbvsumv wcel fvmpt eqcomd sumeq2i eqtri aaliou3lem9 nelir
      ovex ) EFAGZHIZJZKSZALZMBEFBGZHIZJZKSZNZCEUACGUBSDGZVAIZDLNZUPBDCVAOZUPEF
      VBHIZJZKSZDLEVCDLEUOVHADADPZUNVGFKVIUMVFULVBHTQRUCEVHVCDVBEUDVCVHBVBUTVHE
      VABDPZUSVGFKVJURVFUQVBHTQRVEFVGKUKUEUFUGUHVDOUIUJ $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Sequences and series
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Taylor polynomials and Taylor's theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Tayl $. $( Taylor polynomial of a function $)
  $c Ana $. $( Analytic function $)

  $( Taylor polynomial of a function. $)
  ctayl $a class Tayl $.

  $( The class of analytic functions. $)
  cana $a class Ana $.

  ${
    $d a k n x y B $.  $d a f k n s x y F $.  $d a f k n s x y ph $.  $d x Y $.
    $d a k n x y N $.  $d a f k n s x y S $.  $d x y T $.  $d k x X $.
    $( Define the Taylor polynomial or Taylor series of a function.  TODO-AV:
       ` n e. ( NN0 u. { +oo } ) ` can/should be replaced by ` n e. NN0* ` .
       (Contributed by Mario Carneiro, 30-Dec-2016.) $)
    df-tayl $a |- Tayl = ( s e. { RR , CC } , f e. ( CC ^pm s ) |->
        ( n e. ( NN0 u. { +oo } ) ,
          a e. |^|_ k e. ( ( 0 [,] n ) i^i ZZ ) dom ( ( s Dn f ) ` k ) |->
     U_ x e. CC ( { x } X. ( CCfld tsums
        ( k e. ( ( 0 [,] n ) i^i ZZ ) |-> ( ( ( ( ( s Dn f ) ` k ) ` a ) /
          ( ! ` k ) ) x. ( ( x - a ) ^ k ) ) ) ) ) ) ) $.

    $( Define the set of analytic functions, which are functions such that the
       Taylor series of the function at each point converges to the function in
       some neighborhood of the point.  (Contributed by Mario Carneiro,
       31-Dec-2016.) $)
    df-ana $a |- Ana = ( s e. { RR , CC } |-> { f e. ( CC ^pm s ) |
      A. x e. dom f x e. ( ( int ` ( ( TopOpen ` CCfld ) |`t s ) ) `
        dom ( f i^i ( +oo ( s Tayl f ) x ) ) ) } ) $.

    taylfval.s $e |- ( ph -> S e. { RR , CC } ) $.
    taylfval.f $e |- ( ph -> F : A --> CC ) $.
    taylfval.a $e |- ( ph -> A C_ S ) $.
    $( TODO-AV: The following hypothesis can/should be replaced by
       ` ( ph -> N e. NN0* ) `. $)
    taylfval.n $e |- ( ph -> ( N e. NN0 \/ N = +oo ) ) $.
    taylfval.b $e |- ( ( ph /\ k e. ( ( 0 [,] N ) i^i ZZ ) ) ->
      B e. dom ( ( S Dn F ) ` k ) ) $.
    $( Lemma for ~ taylfval .  (Contributed by Mario Carneiro, 30-Dec-2016.) $)
    taylfvallem1 $p |- ( ( ( ph /\ X e. CC ) /\
      k e. ( ( 0 [,] N ) i^i ZZ ) ) -> ( ( ( ( ( S Dn F ) ` k ) ` B ) /
        ( ! ` k ) ) x. ( ( X - B ) ^ k ) ) e. CC ) $=
      ( cc wcel cc0 co cz ad2antrr wss cicc cin cdvn cfv cfa cdiv cmin cexp cdm
      wa cv cr cpr cpm cn0 wf cvv cnex a1i elpm2r syl22anc cle wbr inss2 sseldi
      simpr cxr w3a inss1 wb 0xr cpnf wceq wo nn0re rexrd id pnfxr syl6eqel syl
      jaoi elicc1 sylancr mpbid simp2d elnn0z sylanbrc syl3anc adantlr ffvelrnd
      dvnf cn faccl nncnd nnne0d divcld simplr dvnbss fdm recnprss sstrd sseldd
      sseqtrd subcld expcld mulcld ) AHNOZUJZEUKZPGUAQZRUBZOZUJZCXIDFUCQUDZUDZX
      IUEUDZUFQHCUGQZXIUHQXMXOXPXMXNUIZNCXNXMDULNUMZOZFNDUNQOZXIUOOZXRNXNUPAXTX
      GXLISZAYAXGXLANUQOZXTBNFUPZBDTYAYDAURUSIJKNDBFUQXSUTVASZXMXIROPXIVBVCZYBX
      MXKRXIXJRVDXHXLVFZVEXMXIVGOZYGXIGVBVCZXMXIXJOZYIYGYJVHZXMXKXJXIXJRVIYHVEX
      MPVGOGVGOZYKYLVJVKAYMXGXLAGUOOZGVLVMZVNYMLYNYMYOYNGGVOVPYOGVLVGYOVQVRVSWA
      VTSPGXIWBWCWDWEXIWFWGZDFXIWKWHAXLCXROXGMWIZWJXMXPXMYBXPWLOYPXIWMVTZWNXMXP
      YRWOWPXMXQXIXMHCAXGXLWQXMXRNCXMXRBNXMXRFUIZBXMXTYAYBXRYSTYCYFYPDFXIWRWHXM
      YEYSBVMAYEXGXLJSBNFWSVTXCABNTXGXLABDNKAXTDNTIDWTVTXASXAYQXBXDYPXEXF $.

    $( Lemma for ~ taylfval .  (Contributed by Mario Carneiro, 30-Dec-2016.) $)
    taylfvallem $p |- ( ( ph /\ X e. CC ) -> ( CCfld tsums
        ( k e. ( ( 0 [,] N ) i^i ZZ ) |-> ( ( ( ( ( S Dn F ) ` k ) ` B ) /
          ( ! ` k ) ) x. ( ( X - B ) ^ k ) ) ) ) C_ CC ) $=
      ( cc wcel cc0 cicc co cfv ccnfld wa cin cdvn cfa cdiv cmin cexp cmul cmpt
      cz cvv cnfldbas crg ccmn cnring ringcmn mp1i ctps cnfldtps a1i ovex inex1
      cv taylfvallem1 eqid fmptd tsmscl ) AHNOUAZPGQRZUJUBZNEVJCEVCZDFUCRSSVKUD
      SUERHCUFRVKUGRUHRZUIZTUKULTUMOTUNOVHUOTUPUQTUROVHUSUTVJUKOVHVIUJPGQVAVBUT
      VHEVJVLNVMABCDEFGHIJKLMVDVMVEVFVG $.

    taylfval.t $e |- T = ( N ( S Tayl F ) B ) $.
    $( Define the Taylor polynomial of a function.  The constant ` Tayl ` is a
       function of five arguments: ` S ` is the base set with respect to
       evaluate the derivatives (generally ` RR ` or ` CC ` ), ` F ` is the
       function we are approximating, at point ` B ` , to order ` N ` .  The
       result is a polynomial function of ` x ` .

       This "extended" version of ~ taylpfval additionally handles the case
       ` N = +oo ` , in which case this is not a polynomial but an infinite
       series, the Taylor series of the function.  (Contributed by Mario
       Carneiro, 30-Dec-2016.) $)
    taylfval $p |- ( ph -> T = U_ x e. CC ( { x } X. ( CCfld tsums
        ( k e. ( ( 0 [,] N ) i^i ZZ ) |-> ( ( ( ( ( S Dn F ) ` k ) ` B ) /
          ( ! ` k ) ) x. ( ( x - B ) ^ k ) ) ) ) ) ) $=
      ( co cc cc0 cvv wcel vn va vs vf ctayl cv csn ccnfld cicc cz cin cdvn cfv
      cfa cdiv cmin cexp cmul cmpt ctsu cxp ciun cn0 cpnf cun cdm ciin cr cmpt2
      cpr cpm df-tayl a1i wa eqidd oveq12 ad2antlr fveq1d dmeqd iineq2dv oveq1d
      wceq mpteq2dva oveq2d xpeq2d iuneq2d mpt2eq123dv simpr wf wss cnex elpm2r
      syl22anc wral nn0ex snex unex c0 wne cxr cle wbr 0xr nn0ssre ressxr sstri
      pnfxr snssi ax-mp unssi sseli wo elun nn0ge0 0lepnf elsni syl5breqr sylbi
      jaoi lbicc2 syl3anc 0z inelcm sylancl fvex dmex iinexg rgen eqid mpt2exxg
      rgenw mp2an ovmpt2dx simprl ineq1d simprr syl sylibr ralrimiva syl2anc wb
      fveq2d oveq12d iineq1 pnfex elsn2 orbi2i wrex oveq2 neeq1d vtoclga r19.2z
      mpteq12dv elex rexlimivw eliin 3syl mpbird adantl taylfvallem xpss12 xpex
      iunss ssex syl5eq ) AFIDEHUEPZPBQBUFZUGZUHGRIUIPZUJUKZDGUFZEHULPZUMZUMZUV
      KUNUMZUOPZUVGDUPPZUVKUQPZURPZUSZUTPZVAZVBZOAUAUBIDVCVDUGZVEZGRUAUFZUIPZUJ
      UKZUVMVFZVGZBQUVHUHGUWHUBUFZUVMUMZUVOUOPZUVGUWKUPPZUVKUQPZURPZUSZUTPZVAZV
      BZUWCUVFGUVJUWIVGZSAUCUDEHVHQVJZQUCUFZVKPZUAUBUWEGUWHUVKUXCUDUFZULPZUMZVF
      ZVGZBQUVHUHGUWHUWKUXGUMZUVOUOPZUWOURPZUSZUTPZVAZVBZVIZUAUBUWEUWJUWTVIZUEQ
      EVKPZSUEUCUDUXBUXDUXQVIWBABUDGUAUCUBVLVMAUXCEWBZUXEHWBVNZVNZUAUBUWEUXIUXP
      UWEUWJUWTUYBUWEVOUYBGUWHUXHUWIUYBUVKUWHTZVNZUXGUVMUYDUVKUXFUVLUYAUXFUVLWB
      AUYCUXCEUXEHULVPVQVRZVSVTUYBBQUXOUWSUYBUXNUWRUVHUYBUXMUWQUHUTUYBGUWHUXLUW
      PUYDUXKUWMUWOURUYDUXJUWLUVOUOUYDUWKUXGUVMUYEVRWAWAWCWDWEWFWGAUXTVNUXCEQVK
      AUXTWHWDJAQSTZEUXBTCQHWICEWJHUXSTUYFAWKVMJKLQECHSUXBWLWMUXRSTZAUWESTUWJST
      ZUAUWEWNUYGVCUWDWOVDWPWQUYHUAUWEUWFUWETZUWHWRWSZUWISTZGUWHWNUYHUYIRUWGTZR
      UJTUYJUYIRWTTZUWFWTTRUWFXAXBZUYLUYMUYIXCVMUWEWTUWFVCUWDWTVCVHWTXDXEXFVDWT
      TUWDWTWJXGVDWTXHXIXJXKUYIUWFVCTZUWFUWDTZXLUYNUWFVCUWDXMUYOUYNUYPUWFXNUYPR
      VDUWFXAXOUWFVDXPXQXSXRRUWFXTYAYBRUWGUJYCYDZUYKGUWHUVMUVKUVLYEYFYKGUWHUWIS
      YGYDYHUAUBUWEUWJUWTSSUXRUXRYIYJYLVMYMAUWFIWBZUWKDWBZVNVNZBQUWSUWBUYTUWRUW
      AUVHUYTUWQUVTUHUTUYTGUWHUWPUVJUVSUYTUWGUVIUJUYTUWFIRUIAUYRUYSYNWDYOUYTUWM
      UVPUWOUVRURUYTUWLUVNUVOUOUYTUWKDUVMAUYRUYSYPZUUBWAUYTUWNUVQUVKUQUYTUWKDUV
      GUPVUAWDWAUUCUUMWDWEWFAUYRVNZUWHUVJWBUWJUXAWBVUBUWGUVIUJVUBUWFIRUIAUYRWHW
      DYOGUWHUVJUWIUUDYQAIVCTZIUWDTZXLZIUWETZAVUCIVDWBZXLVUEMVUDVUGVUCIVDUUEUUF
      UUGYRIVCUWDXMYRZADUXATZDUWITZGUVJWNZAVUJGUVJNYSZAVUJGUVJUUHZDSTZVUIVUKUUA
      AUVJWRWSZVUKVUMAVUFVUOVUHUYJVUOUAIUWEUYRUWHUVJWRUYRUWGUVIUJUWFIRUIUUIYOUU
      JUYQUUKYQVULVUJGUVJUULYTVUJVUNGUVJDUWIUUNUUOGDUVJUWISUUPUUQUURAUWCQQVAZWJ
      ZUWCSTAUWBVUPWJZBQWNVUQAVURBQAUVGQTZVNUVHQWJZUWAQWJVURVUSVUTAUVGQXHUUSACD
      EGHIUVGJKLMNUUTUVHQUWAQUVAYTYSBQUWBVUPUVCYRUWCVUPQQWKWKUVBUVDYQYMUVE $.

    $( Value of the Taylor series as a relation (elementhood in the domain here
       expresses that the series is convergent).  (Contributed by Mario
       Carneiro, 30-Dec-2016.) $)
    eltayl $p |- ( ph -> ( X T Y <-> ( X e. CC /\ Y e. ( CCfld tsums
        ( k e. ( ( 0 [,] N ) i^i ZZ ) |-> ( ( ( ( ( S Dn F ) ` k ) ` B ) /
          ( ! ` k ) ) x. ( ( X - B ) ^ k ) ) ) ) ) ) ) $=
      ( vx wcel cc co cop cv csn ccnfld cc0 cicc cz cin cdvn cfv cdiv cmin cexp
      cfa cmul cmpt ctsu cxp ciun wbr taylfval eleq2d df-br bicomi oveq1 oveq1d
      wa wceq oveq2d mpteq2dv opeliunxp2 3bitr3g ) AIJUAZERZVMQSQUBZUCUDFUEHUFT
      UGUHZCFUBZDGUITUJUJVQUNUJUKTZVOCULTZVQUMTZUOTZUPZUQTZURUSZRIJEUTZISRJUDFV
      PVRICULTZVQUMTZUOTZUPZUQTZRVGAEWDVMAQBCDEFGHKLMNOPVAVBWEVNIJEVCVDQSWCIJWJ
      VOIVHZWBWIUDUQWKFVPWAWHWKVTWGVRUOWKVSWFVQUMVOICULVEVFVIVJVIVKVL $.

    $( The Taylor series defines a function on a subset of the complex numbers.
       (Contributed by Mario Carneiro, 30-Dec-2016.) $)
    taylf $p |- ( ph -> T : dom T --> CC ) $=
      ( vx vy cc wss ccnfld co cdm wfn crn wf wfun wrel wbr wmo wal cxp csn cc0
      cv cicc cin cdvn cfv cfa cdiv cmin cexp cmul cmpt ctsu ciun taylfval wral
      cz wcel wa simpr snssd taylfvallem xpss12 syl2anc ralrimiva iunss eqsstrd
      sylibr relxp relss mpisyl wi eltayl biimpd alrimiv ctopn cvv cnfldbas crg
      ccmn cnring ringcmn mp1i ctps cnfldtps ovex inex1 taylfvallem1 eqid fmptd
      a1i cha cnfldhaus haustsms ex moanimv moim sylc sylanbrc funfn sylib rnss
      dffun6 syl rnxpss syl6ss df-f ) AEEUAZUBZEUCZQRXSQEUDAEUEZXTAEUFZOUMZPUMZ
      EUGZPUHZOUIYBAEQQUJZRZYHUFYCAEOQYDUKZSFULHUNTZVHUOZCFUMZDGUPTUQUQYMURUQUS
      TYDCUTTYMVATVBTZVCZVDTZUJZVEZYHAOBCDEFGHIJKLMNVFAYQYHRZOQVGYRYHRAYSOQAYDQ
      VIZVJZYJQRYPQRYSUUAYDQAYTVKVLABCDFGHYDIJKLMVMYJQYPQVNVOVPOQYQYHVQVSVRZQQV
      TEYHWAWBAYGOAYFYTYEYPVIZVJZWCZPUIUUDPUHZYGAUUEPAYFUUDABCDEFGHYDYEIJKLMNWD
      WEWFAYTUUCPUHZWCUUFAYTUUGUUAPYLQYOSSWGUQZWHWISWJVISWKVIUUAWLSWMWNSWOVIUUA
      WPXBYLWHVIUUAYKVHULHUNWQWRXBUUAFYLYNQYOABCDFGHYDIJKLMWSYOWTXAUUHWTZUUHXCV
      IUUAUUHUUIXDXBXEXFYTUUCPXGVSYFUUDPXHXIWFOPEXNXJEXKXLAYAYHUCZQAYIYAUUJRUUB
      EYHXMXOQQXPXQXSQEXRXJ $.

    $( The Taylor series is always defined at the basepoint, with value equal
       to the value of the function.  (Contributed by Mario Carneiro,
       30-Dec-2016.) $)
    tayl0 $p |- ( ph -> ( B e. dom T /\ ( T ` B ) = ( F ` B ) ) ) $=
      ( wcel cc ccnfld cc0 co cvv cfv wbr cdm wceq wa cicc cz cin cdvn cfa cdiv
      cv cmin cexp cmul cmpt ctsu cpr wss recnprss syl sstrd fveq2 dmeqd eleq2d
      cr ralrimiva cn0 cpnf cxnn0 elxnn0 cxr cle 0xr a1i xnn0xr xnn0ge0 syl3anc
      lbicc2 sylbir 0zd elind rspcdva cpm cnex elpm2r syl22anc dvn0 syl2anc fdm
      wo eqtrd eleqtrd sseldd cgsu cnfldbas cnfld0 crg cmnd cnring ringmnd mp1i
      wf c1 ovex inex1 adantr simpr elin2d elin1d wb nn0re rexrd pnfxr syl6eqel
      w3a jaoi elicc1 sylancr mpbid simp2d elnn0z sylanbrc dvnf ffvelrnd faccld
      nncnd nnne0d divcld 0cnd expcld mulcld sylan2 oveq2d fveq1d syl6eq oveq1d
      id oveq12d wfun eqid fmptd csn cdif wne cn eldifi eldifsni adantl elnnne0
      0expd mul01d inex2 suppss2 gsumpt fac0 oveq2 0exp0e1 fvmpt mulid1d 3eqtrd
      zex div1d ccmn ringcmn ctps cnfldtps csupp cfsupp mptexg funmpt c0ex snfi
      suppssfifsupp syl32anc tsmsid eqeltrrd subidd mpteq2dv eleqtrrd mpbir2and
      cfn eltayl taylf ffun funbrfv2b 3syl ) ACCGUAZEUBZCEUCZOCEUAUWHUDUEZAUWIC
      POUWHQFRHUFSZUGUHZCFULZDGUISZUAZUAZUWNUJUAZUKSZCCUMSZUWNUNSZUOSZUPZUQSZOA
      BPCABDPKADVFPURZOZDPUSZIDUTVAZVBACRUWOUAZUCZBACUWPUCZOZCUXJOFUWMRUWNRUDZU
      XKUXJCUXMUWPUXIUWNRUWOVCZVDVEAUXLFUWMMVGAUWLUGRAHVHOZHVIUDZWKZRUWLOZLUXQH
      VJOZUXRHVKUXSRVLOZHVLOZRHVMUBUXRUXTUXSVNVOHVPHVQRHVSVRVTVAAWAWBZWCAUXJGUC
      ZBAUXIGAUXGGPDWDSOZUXIGUDUXHAPTOZUXFBPGXCZBDUSUYDUYEAWEVOIJKPDBGTUXEWFWGZ
      DGWHWIZVDAUYFUYCBUDJBPGWJVAWLWMZWNZAUWHQFUWMUWSRUWNUNSZUOSZUPZUQSZUXDAQUY
      MWOSZUWHUYNAUYORUYMUAZCUXIUAZXDUKSZXDUOSZUWHAUWMPUYMQTRRWPWQQWROZQWSOAWTQ
      XAXBUWMTOZAUWLUGRHUFXEXFVOZUYBAFUWMUYLPUYMAUWNUWMOZUEZUWSUYKVUDUWQUWRVUDU
      XKPCUWPVUDUXFUYDUWNVHOZUXKPUWPXCAUXFVUCIXGAUYDVUCUYGXGVUDUWNUGORUWNVMUBZV
      UEVUDUWLUGUWNAVUCXHZXIVUDUWNVLOZVUFUWNHVMUBZVUDUWNUWLOZVUHVUFVUIXPZVUDUWL
      UGUWNVUGXJVUDUXTUYAVUJVUKXKVNAUYAVUCAUXQUYALUXOUYAUXPUXOHHXLXMUXPHVIVLUXP
      YRXNXOXQVAXGRHUWNXRXSXTYAUWNYBYCZDGUWNYDVRMYEVUDUWRVUDUWNVULYFZYGVUDUWRVU
      MYHYIZVUDRUWNVUDYJVULYKYLUYMUUAZUUBZAUWMUYLFTRUUCZRAUWNUWMVUQUUDOZUEZUYLU
      WSRUOSZRVUSUYKRUWSUOVUSUWNVUSVUEUWNRUUEZUWNUUFOVURAVUCVUEUWNUWMVUQUUGZVUL
      YMVURVVAAUWNUWMRUUHUUIUWNUUJYCUUKYNVURAVUCVUTRUDVVBVUDUWSVUNUULYMWLVUAAUG
      UWLUVBUUMZVOUUNZUUOARUWMOUYPUYSUDUYBFRUYLUYSUWMUYMUXMUWSUYRUYKXDUOUXMUWQU
      YQUWRXDUKUXMCUWPUXIUXNYOUXMUWRRUJUAXDUWNRUJVCUUPYPYSUXMUYKRRUNSXDUWNRRUNU
      UQUURYPYSVUOUYRXDUOXEUUSVAAUYSUWHXDUOSUWHAUYRUWHXDUOAUYRUWHXDUKSUWHAUYQUW
      HXDUKACUXIGUYHYOYQAUWHABPCGJUYIYEZUVCWLYQAUWHVVEUUTWLUVAAUWMPUYMQTRWPWQUY
      TQUVDOAWTQUVEXBQUVFOAUVGVOVUBVUPAUYMTOZUYMYTZRTOZVUQUWBOZUYMRUVHSVUQUSUYM
      RUVIUBVUAVVFAVVCFUWMUYLTUVJXBVVGAFUWMUYLUVKVOVVHAUVLVOVVIARUVMVOVVDVUQUYM
      TTRUVNUVOUVPUVQAUXCUYMQUQAFUWMUXBUYLAUXAUYKUWSUOAUWTRUWNUNACUYJUVRYQYNUVS
      YNUVTABCDEFGHCUWHIJKLMNUWCUWAAUWJPEXCEYTUWIUWKXKABCDEFGHIJKLMNUWDUWJPEUWE
      CUWHEUWFUWGXT $.
  $}

  ${
    $d k u v x y B $.  $d k u v x y F $.  $d k u v x y N $.  $d k u v x y ph $.
    $d k u v y D $.  $d k u v x y S $.  $d x T $.  $d k x X $.
    taylpfval.s $e |- ( ph -> S e. { RR , CC } ) $.
    taylpfval.f $e |- ( ph -> F : A --> CC ) $.
    taylpfval.a $e |- ( ph -> A C_ S ) $.
    taylpfval.n $e |- ( ph -> N e. NN0 ) $.
    taylpfval.b $e |- ( ph -> B e. dom ( ( S Dn F ) ` N ) ) $.
    $( Lemma for ~ taylpfval and similar theorems.  (Contributed by Mario
       Carneiro, 31-Dec-2016.) $)
    taylplem1 $p |- ( ( ph /\ k e. ( ( 0 [,] N ) i^i ZZ ) ) ->
      B e. dom ( ( S Dn F ) ` k ) ) $=
      ( cc0 co cz wcel cfv cdm wa cc cv cicc cin cfz cdvn wceq 0z nn0zd sylancr
      fzval2 eleq2d biimpar cr cpr cpm wss cvv cnex a1i elpm2r syl22anc dvn2bss
      wf jca 3expa sylan adantr sseldd syldan ) AEUAZMGUBNOUCZPZVJMGUDNZPZCVJDF
      UENZQRZPAVNVLAVMVKVJAMOPGOPVMVKUFUGAGKUHMGUJUIUKULAVNSGVOQRZVPCADUMTUNZPZ
      FTDUONPZSVNVQVPUPZAVSVTHATUQPZVSBTFVCBDUPVTWBAURUSHIJTDBFUQVRUTVAVDVSVTVN
      WADFVJGVBVEVFACVQPVNLVGVHVI $.

    $( Lemma for ~ taylpfval and similar theorems.  (Contributed by Mario
       Carneiro, 31-Dec-2016.) $)
    taylplem2 $p |- ( ( ( ph /\ X e. CC ) /\ k e. ( 0 ... N ) ) ->
 ( ( ( ( ( S Dn F ) ` k ) ` B ) / ( ! ` k ) ) x. ( ( X - B ) ^ k ) ) e. CC ) $=
      ( cc wcel cc0 co cz cfv wceq wa cfz cicc cin cdvn cfa cdiv cmin cexp cmul
      cv wb 0z nn0zd fzval2 sylancr eleq2d adantr biimpa cpnf orcd taylfvallem1
      cn0 taylplem1 syldan ) AHNOZUAZEUKZPGUBQZOZVHPGUCQRUDZOZCVHDFUEQSSVHUFSUG
      QHCUHQVHUIQUJQNOVGVJVLAVJVLULVFAVIVKVHAPROGROVIVKTUMAGLUNPGUOUPUQURUSABCD
      EFGHIJKAGVCOGUTTLVAABCDEFGIJKLMVDVBVE $.

    taylpfval.t $e |- T = ( N ( S Tayl F ) B ) $.
    $( Define the Taylor polynomial of a function.  The constant ` Tayl ` is a
       function of five arguments: ` S ` is the base set with respect to
       evaluate the derivatives (generally ` RR ` or ` CC ` ), ` F ` is the
       function we are approximating, at point ` B ` , to order ` N ` .  The
       result is a polynomial function of ` x ` .  (Contributed by Mario
       Carneiro, 31-Dec-2016.) $)
    taylpfval $p |- ( ph -> T = ( x e. CC |-> sum_ k e. ( 0 ... N )
     ( ( ( ( ( S Dn F ) ` k ) ` B ) / ( ! ` k ) ) x. ( ( x - B ) ^ k ) ) ) ) $=
      ( cc cc0 co ccnfld wcel csn cfz cdvn cfv cfa cdiv cmin cexp cmul csu ciun
      cv cxp cmpt cicc cz cin ctsu cpnf wceq orcd taylplem1 taylfval cgsu ctopn
      cn0 wa cvv cnfldbas cnfld0 crg ccmn cnring ringcmn mp1i ctps cnfldtps a1i
      ovex inex1 taylfvallem1 fmptd cfn 0z nn0zd fzval2 sylancr adantr eqeltrrd
      eqid fzfid ovexd c0ex fsuppmptdm cha cnfldhaus haustsmsid gsumfsum eqtr4d
      sumeq1d sneqd eqtrd xpeq2d iuneq2dv dfmpt3 syl6eqr ) AFBPBULZUAZQIUBRZDGU
      LZEHUCRUDUDXJUEUDUFRZXGDUGRXJUHRZUIRZGUJZUAZUMZUKZBPXNUNAFBPXHSGQIUORZUPU
      QZXMUNZURRZUMZUKXQABCDEFGHIJKLAIVFTIUSUTMVAZACDEGHIJKLMNVBZOVCABPYBXPAXGP
      TZVGZYAXOXHYFYASXTVDRZUAXOYFXSPXTSSVEUDZVHQVIVJSVKTSVLTYFVMSVNVOSVPTYFVQV
      RXSVHTYFXRUPQIUOVSVTVRYFGXSXMPXTACDEGHIXGJKLYCYDWAZXTWJZWBYFGXSXTVHVHXMQY
      JYFXIXSWCAXIXSUTZYEAQUPTIUPTYKWDAIMWEQIWFWGWHZYFQIWKWIZYFXJXSTVGXKXLUIWLQ
      VHTYFWMVRWNYHWJZYHWOTYFYHYNWPVRWQYFYGXNYFYGXSXMGUJXNYFXSXMGYMYIWRYFXIXSXM
      GYLWTWSXAXBXCXDXBBPXNXEXF $.

    $( The Taylor polynomial is a function on the complex numbers (even if the
       base set of the original function is the reals).  (Contributed by Mario
       Carneiro, 31-Dec-2016.) $)
    taylpf $p |- ( ph -> T : CC --> CC ) $=
      ( vx vk cc wf cc0 co cfv cfz cv cdvn cfa cdiv cmin cexp cmul cmpt wcel wa
      csu fzfid taylplem2 fsumcl eqid fmptd taylpfval feq1d mpbird ) APPEQPPNPR
      GUASZCOUBZDFUCSTTVBUDTUESNUBZCUFSVBUGSUHSZOULZUIZQANPVEPVFAVCPUJUKZVAVDOV
      GRGUMABCDOFGVCHIJKLUNUOVFUPUQAPPEVFANBCDEOFGHIJKLMURUSUT $.

    ${
      taylpval.x $e |- ( ph -> X e. CC ) $.
      $( Value of the Taylor polynomial.  (Contributed by Mario Carneiro,
         31-Dec-2016.) $)
      taylpval $p |- ( ph -> ( T ` X ) = sum_ k e. ( 0 ... N )
       ( ( ( ( ( S Dn F ) ` k ) ` B ) / ( ! ` k ) ) x. ( ( X - B ) ^ k ) ) ) $=
        ( vx co cfv cmin cc0 cfz cdvn cfa cdiv cexp cmul csu cvv taylpfval wceq
        cv cc wa wcel simplr oveq1d oveq2d sumeq2dv sumex a1i fvmptd ) AQIUAHUB
        RZCFULZDGUCRSSVDUDSUERZQULZCTRZVDUFRZUGRZFUHVCVEICTRZVDUFRZUGRZFUHZUMEU
        IAQBCDEFGHJKLMNOUJAVFIUKZUNZVCVIVLFVOVDVCUOZUNZVHVKVEUGVQVGVJVDUFVQVFIC
        TAVNVPUPUQUQURUSPVMUIUOAVCVLFUTVAVB $.
    $}

    ${
      taylply2.1 $e |- ( ph -> D e. ( SubRing ` CCfld ) ) $.
      taylply2.2 $e |- ( ph -> B e. D ) $.
      taylply2.3 $e |- ( ( ph /\ k e. ( 0 ... N ) ) ->
        ( ( ( ( S Dn F ) ` k ) ` B ) / ( ! ` k ) ) e. D ) $.
      $( The Taylor polynomial is a polynomial of degree (at most) ` N ` .
         This version of ~ taylply shows that the coefficients of ` T ` are in
         a subring of the complex numbers.  (Contributed by Mario Carneiro,
         1-Jan-2017.) $)
      taylply2 $p |- ( ph -> ( T e. ( Poly ` D ) /\ ( deg ` T ) <_ N ) ) $=
        ( wcel cc vy vx vu vv cply cfv cdgr cle wbr cc0 cfz co cv cdvn cfa cdiv
        cexp cmul csu cmpt cidp csn cxp cmin cof ccom taylpfval wa simpr cdm cr
        cpr cpm cn0 wss cvv wf cnex a1i elpm2r syl22anc dvnbss syl3anc wceq fdm
        sseqtrd recnprss sstrd sseldd adantr subcld cres df-idp mptresid eqtr4i
        syl fconstmpt offval2 eqidd oveq1 oveq2d sumeq2sdv fmptco eqtr4d ccnfld
        cid csubrg cnfldbas subrgss elplyd cnfld1 subrg1cl plyid plyconst csubg
        c1 syl2anc caddc subrgsubg cnfldadd subgcl 3expb cnfldmul subrgmcl cneg
        sylan cminusg ax-1cn cnfldneg ax-mp eqid subginvcl plysub plyco eqeltrd
        syl5eqelr fveq2d dgrco ccnv cima plyremlem simp2d nn0cnd mulid1d 3eqtrd
        w3a dgrcl eqtrd elfznn0 adantl dvnf dvn2bss ffvelrnd faccl nncnd nnne0d
        cn divcld dgrle eqbrtrd jca ) AFDUEUFZSFUGUFZIUHUIAFUATUJIUKULZCGUMZEHU
        NULZUFZUFZUVEUOUFZUPULZUAUMZUVEUQULZURULZGUSZUTZVATCVBZVCZVDVEULZVFZUVB
        AFUBTUVDUVJUBUMZCVDULZUVEUQULZURULZGUSZUTUVSAUBBCEFGHIJKLMNOVGAUBUATTUW
        AUVNUWDUVRUVOAUVTTSZVHUVTCAUWEVIZACTSZUWEAIUVFUFVJZTCAUWHBTAUWHHVJZBAEV
        KTVLZSZHTEVMULSZIVNSUWHUWIVOJATVPSZUWKBTHVQZBEVOUWLUWMAVRVSZJKLTEBHVPUW
        JVTWAZMEHIWBWCAUWNUWIBWDKBTHWEWPWFABETLAUWKETVOJEWGWPWHWHNWIZWJZWKAUBTU
        VTCVDVAUVQVPTTUWOUWFUWRVAUBTUVTUTZWDAVAXFTWLUWSWMUBTWNWOVSUVQUBTCUTWDAU
        BTCWQVSWRAUVOWSZUVKUWAWDZUVDUVMUWCGUXAUVLUWBUVJURUVKUWAUVEUQWTXAXBXCXDZ
        AUCUDDUVOUVRAUAUVJDGIADXEXGUFSZDTVOZPDTXEXHXIWPZMRXJZAUCUDDVAUVQAUXDXPD
        SZVAUVBSUXEAUXCUXGPDXEXPXKXLWPZDXMXQAUXDCDSUVQUVBSUXEQCDXNXQADXEXOUFSZU
        CUMZDSZUDUMZDSZVHZUXJUXLXRULDSZAUXCUXIPDXEXSWPZUXIUXKUXMUXOXRDXEUXJUXLX
        TYAYBYFZAUXCUXNUXJUXLURULDSZPUXCUXKUXMUXRDXEURUXJUXLYCYDYBYFZAXPYEZXPXE
        YGUFZUFZDXPTSUYBUXTWDYHXPYIYJAUXIUXGUYBDSUXPUXHDXEUYAXPUYAYKYLXQYPYMZUX
        QUXSYNYOAUVCUVOUGUFZIUHAUVCUVSUGUFUYDUVRUGUFZURULZUYDAFUVSUGUXBYQADUVOU
        VRUYDUYEUYDYKUYEYKUXFUYCYRAUYFUYDXPURULUYDAUYEXPUYDURAUVRTUEUFSZUYEXPWD
        ZUVRYSUJVBYTUVPWDZAUWGUYGUYHUYIUUFUWQCUVRUVRYKUUAWPUUBXAAUYDAUYDAUVOUVB
        SUYDVNSUXFDUVOUUGWPUUCUUDUUHUUEAUAUVJDGUVOIUXFMAUVEUVDSZVHZUVHUVIUYKUVG
        VJZTCUVGUYKUWKUWLUVEVNSZUYLTUVGVQAUWKUYJJWJZAUWLUYJUWPWJZUYJUYMAUVEIUUI
        UUJZEHUVEUUKWCUYKUWHUYLCUYKUWKUWLUYJUWHUYLVOUYNUYOAUYJVIEHUVEIUULWCACUW
        HSUYJNWJWIUUMUYKUVIUYKUYMUVIUUQSUYPUVEUUNWPZUUOUYKUVIUYQUUPUURUWTUUSUUT
        UVA $.
    $}

    $( The Taylor polynomial is a polynomial of degree (at most) ` N ` .
       (Contributed by Mario Carneiro, 31-Dec-2016.) $)
    taylply $p |- ( ph -> ( T e. ( Poly ` CC ) /\ ( deg ` T ) <_ N ) ) $=
      ( cc ccnfld wcel cfv co cdm wss vk csubrg cnring cnfldbas subrgid mp1i cr
      crg cdvn cpr cpm cn0 cvv cnex a1i elpm2r syl22anc dvnbss syl3anc wceq fdm
      wf syl sseqtrd recnprss sstrd sseldd cv cc0 cfz cfa adantr elfznn0 adantl
      wa dvnf simpr dvn2bss ffvelrnd cn faccl nncnd nnne0d divcld taylply2 ) AB
      CNDEUAFGHIJKLMOUHPNOUBQPAUCNOUDUEUFAGDFUIRZQSZNCAWGBNAWGFSZBADUGNUJZPZFND
      UKRPZGULPWGWHTHANUMPZWJBNFVBZBDTWKWLAUNUOHIJNDBFUMWIUPUQZKDFGURUSAWMWHBUT
      IBNFVAVCVDABDNJAWJDNTHDVEVCVFVFLVGAUAVHZVIGVJRPZVOZCWOWFQZQWOVKQZWQWRSZNC
      WRWQWJWKWOULPZWTNWRVBAWJWPHVLZAWKWPWNVLZWPXAAWOGVMVNZDFWOVPUSWQWGWTCWQWJW
      KWPWGWTTXBXCAWPVQDFWOGVRUSACWGPWPLVLVGVSWQWSWQXAWSVTPXDWOWAVCZWBWQWSXEWCW
      DWE $.
  $}

  ${
    $d j k x y B $.  $d j k x F $.  $d j k x y N $.  $d j k x y ph $.
    $d j k x S $.
    dvtaylp.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvtaylp.f $e |- ( ph -> F : A --> CC ) $.
    dvtaylp.a $e |- ( ph -> A C_ S ) $.
    dvtaylp.n $e |- ( ph -> N e. NN0 ) $.
    dvtaylp.b $e |- ( ph -> B e. dom ( ( S Dn F ) ` ( N + 1 ) ) ) $.
    $( The derivative of the Taylor polynomial is the Taylor polynomial of the
       derivative of the function.  (Contributed by Mario Carneiro,
       31-Dec-2016.) $)
    dvtaylp $p |- ( ph -> ( CC _D ( ( N + 1 ) ( S Tayl F ) B ) ) =
                            ( N ( S Tayl ( S _D F ) ) B ) ) $=
      ( vx vk cc cc0 c1 co cfv cmul wcel vj vy caddc cfz cv cdvn cdiv cmin cexp
      cfa csu cmpt cdv ctayl wceq cif ctopn crest cvv fvex cnfldtopon toponunii
      ccnfld eqid restid ax-mp eqcomi cr cpr cnelprrecn a1i toponmax mp1i fzfid
      ctopon w3a wa cdm cpm cn0 wf adantr wss cnex elpm2r syl22anc elfznn0 dvnf
      adantl syl3anc cz cin 0z peano2nn0 syl nn0zd fzval2 sylancr eleq2d biimpa
      cicc taylplem1 syldan ffvelrnd cn faccl nncnd nnne0d divcld 3adant3 simp3
      sstrd sseldd subcld expcld mulcld wn nn0cnd simpr sylanbrc 3expa ad2antrr
      0cnd 1cnd oveq1 oveq2d mpteq2dva eqtrd 1nn0 dvnadd syl2anc fveq1d 3eqtr3d
      fveq2d fveq2 oveq12d cuz oveq1d sylan2 taylpfval recnprss dvnbss 3ad2ant1
      fdm sseqtrd 3ad2ant2 neqned elnnne0 nnm1nn0 ifclda c0ex ovex ifex dvmptid
      wne dvmptc dvmptsub 1m0e1 mpteq2i syl6eq dvexp2 dvmptco mulid1d dvmptcmul
      dvmptfsum 1zzd 0zd dvfg dvbss dvn1 addcomd dmeqd eleqtrrd taylplem2 oveq2
      ifeq2d fsumshft elfznn ifnefalse simpll 1eluzge0 fzss1 sseli simplr facp1
      mulassd npcand div23d divcan5rd pncan3d 3eqtr3rd 3eqtr2d sumeq2dv sumeq1i
      0p1e1 oveq1i syl6eqr an32s cdif eldif biimpri sylan nnuz syl6eleq elfzuz3
      wi elfzuzb ex necon1bd impr sylan2b iftrued eldifi mul01d fsumss 3eqtr2rd
      adantlr 3eqtr4d ) ANLNOFPUCQZUDQZCMUEZDEUFQZRZRZUYAUJRZUGQZLUEZCUHQZUYAUI
      QZSQZMUKULZUMQZLNOFUDQCUAUEZDDEUMQZUFQZRZRZUYMUJRZUGQZUYHUYMUIQZSQZUAUKZU
      LZNUXSCDEUNQQZUMQFCDUYNUNQQZAUYLLNUXTUYFUYAOUOZOUYAUYHUYAPUHQZUIQZSQZUPZS
      QZMUKZULVUCALUYJVUKNMUXTVCUQRZVUMNVUMNURQZVUMVUMUSTVUNVUMUOVCUQUTVUMUSNNV
      UMVUMVUMVDZVAZVBVEVFVGVUONVHNVIZTZAVJVKVUMNVORTNVUMTAVUPNVUMVLVMAOUXSVNAU
      YAUXTTZUYGNTZVPZUYFUYIAVUSUYFNTZVUTAVUSVQZUYDUYEVVCUYCVRZNCUYCVVCDVUQTZEN
      DVSQTZUYAVTTZVVDNUYCWAAVVEVUSGWBAVVFVUSANUSTZVVEBNEWAZBDWCVVFVVHAWDVKGHIN
      DBEUSVUQWEWFZWBVUSVVGAUYAUXSWGZWIZDEUYAWHWJAVUSUYAOUXSXAQWKWLZTZCVVDTAVUS
      VVNAUXTVVMUYAAOWKTUXSWKTUXTVVMUOWMAUXSAFVTTZUXSVTTZJFWNWOZWPOUXSWQWRWSWTA
      BCDMEUXSGHIVVQKXBXCXDZVVCUYEVVCVVGUYEXETVVLUYAXFWOZXGZVVCUYEVVSXHZXIZXJZV
      VAUYHUYAVVAUYGCAVUSVUTXKAVUSCNTZVUTABNCABDNIAVVEDNWCZGDUUAWOZXLAUXSUYBRZV
      RZBCAVWHEVRZBAVVEVVFVVPVWHVWIWCGVVJVVQDEUXSUUBWJAVVIVWIBUOHBNEUUDWOUUEKXM
      XMZUUCXNZVUSAVVGVUTVVKUUFZXOZXPVVAUYFVUJVWCVVAVUFOVUINVVAVUFVQYCVVAVUFXQZ
      VQZUYAVUHVVAUYANTVWNVVAUYAVWLXRWBVWOUYHVUGVVAUYHNTZVWNVWKWBVWOUYAXETZVUGV
      TTZVWOVVGUYAOUUOZVWQVVAVVGVWNVWLWBVWOUYAOVVAVWNXSUUGUYAUUHZXTUYAUUIZWOXOX
      PUUJZXPVVCLUYIVUJUYFNNNVURVVCVJVKZAVUSVUTUYINTVWMYAAVUSVUTVUJNTZVXBYAZVVC
      NLNUYIULUMQLNVUJPSQZULLNVUJULVVCLUBUYHPUBUEZUYAUIQZVUFOUYAVXGVUGUIQZSQZUP
      ZNNUYIVUJNUSNNVXCVXCAVUSVUTVWPVWKYAVVCVUTVQZYDZVVCVXGNTZVQZVXGUYAVVCVXNXS
      VVCVVGVXNVVLWBXOVXKUSTVXOVUFOVXJUUKUYAVXISUULUUMVKVVCNLNUYHULUMQLNPOUHQZU
      LLNPULVVCLUYGPCONNNNVXCVVCVUTXSVXMVVCLNVXCUUNAVWDVUSVUTVWJYBVXLYCVVCLCNVX
      CAVWDVUSVWJWBUUPUUQLNVXPPUURUUSUUTVVCVVGNUBNVXHULUMQUBNVXKULUOVVLUBUYAUVA
      WOVXGUYHUYAUIYEVXGUYHUOZVUFVXJVUIOVXQVXIVUHUYASVXGUYHVUGUIYEYFUVPUVBVVCLN
      VXFVUJVXLVUJVXEUVCYGYHVWBUVDUVEALNVULVUBAVUTVQZVUBOPUCQZUXSUDQZCVUGUYORZR
      ZVUGUJRZUGQZVUHSQZMUKZPUXSUDQZVUKMUKZVULVXRVUAVYEUAMPOFVXRUVFVXRUVGAFWKTV
      UTAFJWPWBAUYNVRZCDUAUYNFUYGGAVVEVYINUYNWAGDEUVHWOZAVYIBDABDEVWFHIUVIIXLZJ
      ACVWHFUYORZVRKAVYLVWGAFDPUYBRZUFQZRZPFUCQZUYBRZVYLVWGAVVEVVFPVTTZVVOVYOVY
      QUOGVVJVYRAYIVKJDEPFYJWFAFVYNUYOAVYMUYNDUFAVWEVVFVYMUYNUOZVWFVVJDEUVJYKZY
      FYLAVYPUXSUYBAPFAYDAFJXRUVKYNYMUVLUVMZUVNUYMVUGUOZUYSVYDUYTVUHSWUBUYQVYBU
      YRVYCUGWUBCUYPVYAUYMVUGUYOYOYLUYMVUGUJYOYPUYMVUGUYHUIUVOYPUVQVXRVYHVYGVYE
      MUKVYFVXRVYGVUKVYEMVXRUYAVYGTZVQZVUKUYFVUISQUYFUYASQZVUHSQVYEWUDVUJVUIUYF
      SWUDVWSVUJVUIUOWUDUYAWUCVWQVXRUYAUXSUVRWIZXHZUYAOOVUIUVSWOYFWUDUYFUYAVUHW
      UDAVUSVVBAVUTWUCUVTZWUCVUSVXRVYGUXTUYAPOYQRTVYGUXTWCZUWAPOUXSUWBVFZUWCZWI
      ZVWBYKZWUDUYAWUFXGZWUDUYHVUGWUDUYGCAVUTWUCUWDAVWDVUTWUCVWJYBXNWUDVWQVWRWU
      FVXAWOZXOUWFWUDWUEVYDVUHSWUDUYDUYASQZUYEUGQZWUPVYCUYASQZUGQZWUEVYDWUDUYEW
      URWUPUGWUDVUGPUCQZUJRZVYCWUTSQZUYEWURWUDVWRWVAWVBUOWUOVUGUWEWOWUDWUTUYAUJ
      WUDUYAPWUNWUDYDZUWGZYNWUDWUTUYAVYCSWVDYFYMYFWUDAVUSWUQWUEUOWUHWULVVCUYDUY
      AUYEVVRVVCUYAVVLXRVVTVWAUWHYKWUDWUSUYDVYCUGQVYDWUDUYDVYCUYAWUDAVUSUYDNTWU
      HWULVVRYKWUDVYCWUDVWRVYCXETWUOVUGXFWOZXGWUNWUDVYCWVEXHWUGUWIWUDUYDVYBVYCU
      GWUDCUYCVYAWUDVUGVYNRZPVUGUCQZUYBRZVYAUYCWUDVVEVVFVYRVWRWVFWVHUOAVVEVUTWU
      CGYBAVVFVUTWUCVVJYBVYRWUDYIVKWUODEPVUGYJWFWUDVUGVYNUYOWUDVYMUYNDUFAVYSVUT
      WUCVYTYBYFYLWUDWVGUYAUYBWUDPUYAWVCWUNUWJYNUWKYLYRYHYMYRUWLUWMVXTVYGVYEMVX
      SPUXSUDUWOUWPUWNUWQVXRVYGUXTVUKMWUIVXRWUJVKWUDUYFVUJWUMWUCVXRVUSVXDWUKAVU
      SVUTVXDVXEUWRYSXPVXRUYAUXTVYGUWSTZVQZVUKUYFOSQOWVJVUJOUYFSWVJVUFOVUIWVIVX
      RVUSWUCXQZVQVUFUYAUXTVYGUWTVXRVUSWVKVUFVXRVUSVQWUCUYAOVUSVWSWUCUXFVXRVUSV
      WSWUCVUSVWSVQZUYAPYQRZTUXSUYAYQRTZWUCWVLUYAXEWVMVUSVVGVWSVWQVVKVWQVVGVWSV
      QVWTUXAUXBUXCUXDVUSWVNVWSUYAOUXSUXEWBUYAPUXSUXGXTUXHWIUXIUXJUXKUXLYFWVJUY
      FWVIVXRVUSVVBUYAUXTVYGUXMAVUSVVBVUTVWBUXQYSUXNYHVXROUXSVNUXOUXPYGYHAVUDUY
      KNUMALBCDVUDMEUXSGHIVVQKVUDVDYTYFALVYICDVUEUAUYNFGVYJVYKJWUAVUEVDYTUXR $.
  $}

  ${
    $d m n B $.  $d m n F $.  $d m n M $.  $d m n N $.  $d m n ph $.
    $d m n S $.
    dvntaylp.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvntaylp.f $e |- ( ph -> F : A --> CC ) $.
    dvntaylp.a $e |- ( ph -> A C_ S ) $.
    dvntaylp.m $e |- ( ph -> M e. NN0 ) $.
    dvntaylp.n $e |- ( ph -> N e. NN0 ) $.
    dvntaylp.b $e |- ( ph -> B e. dom ( ( S Dn F ) ` ( N + M ) ) ) $.
    $( The ` M ` -th derivative of the Taylor polynomial is the Taylor
       polynomial of the ` M ` -th derivative of the function.  (Contributed by
       Mario Carneiro, 1-Jan-2017.) $)
    dvntaylp $p |- ( ph -> ( ( CC Dn ( ( N + M ) ( S Tayl F ) B ) ) ` M ) =
                             ( N ( S Tayl ( ( S Dn F ) ` M ) ) B ) ) $=
      ( cc caddc co cfv cc0 wcel wceq vm ctayl cdvn cmin cfz cuz nn0uz syl6eleq
      vn cn0 eluzfz2b sylib cv wi c1 fveq2 oveq2d oveq2 oveq123d eqeq12d imbi2d
      eqidd wss cpm ssid a1i cmap mapsspm wf nn0addcld eqid taylpf elmap sylibr
      cnex sseldi syl2anc cr cpr recnprss syl cvv elpm2r syl22anc nn0cnd eqtr4d
      dvn0 subid1d cfzo wa cdv adantr elfzouz adantl syl6eleqr syl3anc cdm dvnf
      dvnp1 dvnbss fdm sseqtrd fzofzp1 fznn0sub elfzofz dvnadd addassd nppcan2d
      sstrd 1cnd eqtrd fveq2d pncan3d subcld add12d eqtr3d 3eqtr4d dmeqd oveq1d
      eleqtrrd dvtaylp eqcomd oveqd 3eqtr3rd syl5ibr expcom fzind2 mpcom subidd
      a2d addid1d ) AFNGFOPZCDEUBPZPZUCPZQZGFFUDPZOPZCDFDEUCPZQZUBPZPZGCUUAPFRF
      UEPZSZAYPUUBTZAFRUFQZSZUUDAFUJUUFKUGUHRFUKULAUAUMZYOQZGFUUHUDPZOPZCDUUHYS
      QZUBPZPZTZUNARYOQZGFRUDPZOPZCDRYSQZUBPZPZTZUNZAUIUMZYOQZGFUVDUDPZOPZCDUVD
      YSQZUBPZPZTZUNAUVDUOOPZYOQZGFUVLUDPZOPZCDUVLYSQZUBPZPZTZUNAUUEUNUAUIFRFUU
      HRTZUUOUVBAUVTUUIUUPUUNUVAUUHRYOUPUVTUUKUURCCUUMUUTUVTUULUUSDUBUUHRYSUPUQ
      UVTUUJUUQGOUUHRFUDURUQUVTCVBUSUTVAUUHUVDTZUUOUVKAUWAUUIUVEUUNUVJUUHUVDYOU
      PUWAUUKUVGCCUUMUVIUWAUULUVHDUBUUHUVDYSUPUQUWAUUJUVFGOUUHUVDFUDURUQUWACVBU
      SUTVAUUHUVLTZUUOUVSAUWBUUIUVMUUNUVRUUHUVLYOUPUWBUUKUVOCCUUMUVQUWBUULUVPDU
      BUUHUVLYSUPUQUWBUUJUVNGOUUHUVLFUDURUQUWBCVBUSUTVAUUHFTZUUOUUEAUWCUUIYPUUN
      UUBUUHFYOUPUWCUUKYRCCUUMUUAUWCUULYTDUBUUHFYSUPUQUWCUUJYQGOUUHFFUDURUQUWCC
      VBUSUTVAUVCUUGAUUPYNUVAANNVCZYNNNVDPZSZUUPYNTUWDANVEZVFANNVGPZUWEYNNNVHAN
      NYNVIYNUWHSABCDYNEYLHIJAGFLKVJMYNVKVLNNYNVOVOVMVNVPZNYNWGVQAUURYLCCUUTYMA
      UUSEDUBADNVCZENDVDPSZUUSETADVRNVSZSZUWJHDVTWAZANWBSZUWMBNEVIZBDVCZUWKUWOA
      VOVFHIJNDBEWBUWLWCWDZDEWGVQUQAUUQFGOAFAFKWEZWHUQACVBUSWFVFUVDRFWIPSZAUVKU
      VSAUWTUVKUVSUNUVKUVSAUWTWJZNUVEWKPZNUVJWKPZTUVEUVJNWKURUXAUVMUXBUVRUXCUXA
      UWDUWFUVDUJSZUVMUXBTUWDUXAUWGVFAUWFUWTUWIWLUXAUVDUUFUJUWTUVDUUFSAUVDRFWMW
      NUGWOZNYNUVDWSWPUXANUVOUOOPZCUVIPZWKPUVOCDDUVHWKPZUBPZPUXCUVRUXAUVHWQZCDU
      VHUVOAUWMUWTHWLZUXAUWMUWKUXDUXJNUVHVIUXKAUWKUWTUWRWLZUXEDEUVDWRWPUXAUXJBD
      UXAUXJEWQZBUXAUWMUWKUXDUXJUXMVCUXKUXLUXEDEUVDWTWPAUXMBTZUWTAUWPUXNIBNEXAW
      AWLXBAUWQUWTJWLXIUXAGUVNAGUJSUWTLWLZUXAUVLUUCSZUVNUJSUWTUXPARFUVDXCWNUVLR
      FXDWAZVJUXACYLYSQZWQZUXFDUVHUCPZQZWQACUXSSUWTMWLUXAUYAUXRUXAUVGUXTQZUVDUV
      GOPZYSQZUYAUXRUXAUWMUWKUXDUVGUJSUYBUYDTUXKUXLUXEUXAGUVFUXOUXAUVDUUCSZUVFU
      JSUWTUYEAUVDRFXEWNUVDRFXDWAVJDEUVDUVGXFWDUXAUXFUVGUXTUXAUXFGUVNUOOPZOPUVG
      UXAGUVNUOAGNSUWTAGLWEZWLZUXAUVNUXQWEUXAXJZXGUXAUYFUVFGOUXAFUVDUOAFNSUWTUW
      SWLZUXAUVDUXEWEZUYIXHUQXKZXLUXAYLUYCYSUXAGUVDUVFOPZOPYLUYCUXAUYMFGOUXAUVD
      FUYKUYJXMUQUXAGUVDUVFUYHUYKUXAFUVDUYJUYKXNXOXPXLXQXRXTYAUXAUXGUVJNWKUXAUX
      FUVGCUVIUYLXSUQUXAUXIUVQUVOCUXAUVQUXIUXAUVPUXHDUBUXAUWJUWKUXDUVPUXHTAUWJU
      WTUWNWLUXLUXEDEUVDWSWPUQYBYCYDUTYEYFYJYGYHAYRGCUUAAYRGROPGAYQRGOAFUWSYIUQ
      AGUYGYKXKXSXK $.
  $}

  ${
    $d k B $.  $d k F $.  $d k M $.  $d k N $.  $d k ph $.  $d k S $.
    dvntaylp0.s $e |- ( ph -> S e. { RR , CC } ) $.
    dvntaylp0.f $e |- ( ph -> F : A --> CC ) $.
    dvntaylp0.a $e |- ( ph -> A C_ S ) $.
    dvntaylp0.m $e |- ( ph -> M e. ( 0 ... N ) ) $.
    dvntaylp0.b $e |- ( ph -> B e. dom ( ( S Dn F ) ` N ) ) $.
    dvntaylp0.t $e |- T = ( N ( S Tayl F ) B ) $.
    $( The first ` N ` derivatives of the Taylor polynomial at ` B ` match the
       derivatives of the function from which it is derived.  (Contributed by
       Mario Carneiro, 1-Jan-2017.) $)
    dvntaylp0 $p |- ( ph -> ( ( ( CC Dn T ) ` M ) ` B ) =
                            ( ( ( S Dn F ) ` M ) ` B ) ) $=
      ( cc cdvn co cfv wcel cdm vk cmin ctayl caddc cc0 cfz cn0 elfz3nn0 nn0cnd
      syl elfznn0 npcand oveq1d oveq2d fveq1d fznn0sub fveq2d eleqtrrd dvntaylp
      syl6eqr dmeqd eqtr3d wceq cr cpr cpm wf cvv wss cnex elpm2r syl22anc dvnf
      a1i syl3anc dvnbss sseqtrd sstrd cpnf orcd dvnadd pncan3d eqtrd taylplem1
      fdm eqid tayl0 simprd ) ACGOEPQZRZRCHGUBQZCDGDFPQZRZUCQQZRZCWMRZACWJWNAGO
      WKGUDQZCDFUCQZQZPQZRWJWNAGWTWIAWSEOPAWSHCWRQEAWQHCWRAHGAHAGUEHUFQSZHUGSLG
      HUHUJUIZAGAXAGUGSZLGHUKUJZUIZULZUMNUTUNUOABCDFGWKIJKXDAXAWKUGSZLGUEHUPUJZ
      ACHWLRZTZWQWLRZTMAXKXIAWQHWLXFUQVAURUSVBUOACWNTSWOWPVCAWMTZCDWNUAWMWKIADV
      DOVEZSZFODVFQSZXCXLOWMVGIAOVHSZXNBOFVGZBDVIXOXPAVJVNIJKODBFVHXMVKVLZXDDFG
      VMVOZAXLBDAXLFTZBAXNXOXCXLXTVIIXRXDDFGVPVOAXQXTBVCJBOFWEUJVQKVRZAXGWKVSVC
      XHVTAXLCDUAWMWKIXSYAXHACXJWKDWMPQRZTMAYBXIAYBGWKUDQZWLRZXIAXNXOXCXGYBYDVC
      IXRXDXHDFGWKWAVLAYCHWLAGHXEXBWBUQWCVAURWDWNWFWGWHWC $.
  $}

  ${
    $d m n x y A $.  $d m n x y B $.  $d m n x y F $.  $d m n x y ph $.
    $d m n x y N $.  $d m n x y S $.  $d m n x y T $.
    taylthlem1.s $e |- ( ph -> S e. { RR , CC } ) $.
    taylthlem1.f $e |- ( ph -> F : A --> CC ) $.
    taylthlem1.a $e |- ( ph -> A C_ S ) $.
    taylthlem1.d $e |- ( ph -> dom ( ( S Dn F ) ` N ) = A ) $.
    taylthlem1.n $e |- ( ph -> N e. NN ) $.
    taylthlem1.b $e |- ( ph -> B e. A ) $.
    taylthlem1.t $e |- T = ( N ( S Tayl F ) B ) $.
    taylthlem1.r $e |- R = ( x e. ( A \ { B } ) |->
      ( ( ( F ` x ) - ( T ` x ) ) / ( ( x - B ) ^ N ) ) ) $.
    taylthlem1.i $e |- ( ( ph /\ ( n e. ( 1 ..^ N ) /\
      0 e. ( ( y e. ( A \ { B } ) |->
        ( ( ( ( ( S Dn F ) ` ( N - n ) ) ` y ) -
            ( ( ( CC Dn T ) ` ( N - n ) ) ` y ) ) /
          ( ( y - B ) ^ n ) ) ) limCC B ) ) ) ->
      0 e. ( ( x e. ( A \ { B } ) |->
        ( ( ( ( ( S Dn F ) ` ( N - ( n + 1 ) ) ) ` x ) -
            ( ( ( CC Dn T ) ` ( N - ( n + 1 ) ) ) ` x ) ) /
          ( ( x - B ) ^ ( n + 1 ) ) ) ) limCC B ) ) $.
    $( Lemma for ~ taylth .  This is the main part of Taylor's theorem, except
       for the induction step, which is supposed to be proven using
       L'H&ocirc;pital's rule.  However, since our proof of L'H&ocirc;pital
       assumes that ` S = RR ` , we can only do this part generically, and for
       ~ taylth itself we must restrict to ` RR ` .  (Contributed by Mario
       Carneiro, 1-Jan-2017.) $)
    taylthlem1 $p |- ( ph -> 0 e. ( R limCC B ) ) $=
      ( vm cc0 csn cdif cv cmin co cdvn cfv cc cexp cdiv cmpt climc c1 cfz wcel
      cn elfz1end sylib wi caddc wceq oveq2 fveq2d fveq1d oveq12d oveq1d eleq2d
      mpteq2dv imbi2d weq fveq2 oveq1 cbvmptv syl6eq cuz ccnfld ctopn crest cnt
      cdv wbr wa eqid fvmpt syl cn0 nnnn0d nn0uz syl6eleq eluzfz2b cdm eleqtrrd
      ovex dvntaylp0 oveq2d cr cpr cpm wf cvv wss cnex a1i elpm2r syl22anc dvnf
      syl3anc ffvelrnd subidd 3eqtrd wfun funmpt sylancr mpbid sseqtrd eqsstr3d
      cfzo eqssd feq2d ffvelrnda dvnp1 eqtr3d feqmptd ctayl syl2anc eqtrd dmeqd
      wb sselda taylpf dvntaylp feq1d mpbird syldan dvn0 syl6eqr ctopon subcld
      dmmpti syl6eleqr funbrfvb nnm1nn0 dvnbss fdm fzo0end elfzofz 3syl dvn2bss
      nncnd 1cnd npcand recnprss 3eqtr3rd sstrd 1nn0 dvn1 pncan3d syl6reqr 0nn0
      addid2d cnfldtopon toponmax mp1i cin df-ss ssid cmap mapsspm elmap sylibr
      sseldi 3eqtr3d dvmptres3 ctop resttopon topontop toponuni ntrss2 dvbssntr
      cuni dvmptres2 dvmptsub breqd fmptd eldv simprd eldifi oveqan12rd subid1d
      eqtr2d sylan2 ssdifssd sseldd adantr mpteq2dva expr expcom fzind2 eleqtrd
      exp1d a2d mpcom ) AUBBDEUCZUDZBUEZKKUFUGZGJUHUGZUIZUIZUXGUXHUJHUHUGZUIZUI
[encoded data, 5200 characters]
      WXBWYGHVCWXCWXEUJHYQXOYHVFVGVHVJSYRVHUXA $.
  $}

  ${
    $d m x y A $.  $d k m x y B $.  $d k m x y F $.  $d x y M $.  $d m x y T $.
    $d k m x y N $.  $d k m x y ph $.
    taylth.f $e |- ( ph -> F : A --> RR ) $.
    taylth.a $e |- ( ph -> A C_ RR ) $.
    taylth.d $e |- ( ph -> dom ( ( RR Dn F ) ` N ) = A ) $.
    taylth.n $e |- ( ph -> N e. NN ) $.
    taylth.b $e |- ( ph -> B e. A ) $.
    taylth.t $e |- T = ( N ( RR Tayl F ) B ) $.
    ${
      taylthlem2.m $e |- ( ph -> M e. ( 1 ..^ N ) ) $.
      taylthlem2.i $e |- ( ph -> 0 e. ( ( x e. ( A \ { B } ) |->
        ( ( ( ( ( RR Dn F ) ` ( N - M ) ) ` x ) -
            ( ( ( CC Dn T ) ` ( N - M ) ) ` x ) ) /
          ( ( x - B ) ^ M ) ) ) limCC B ) ) $.
      $( Lemma for ~ taylth .  (Contributed by Mario Carneiro, 1-Jan-2017.) $)
      taylthlem2 $p |- ( ph -> 0 e. ( ( x e. ( A \ { B } ) |->
        ( ( ( ( ( RR Dn F ) ` ( N - ( M + 1 ) ) ) ` x ) -
            ( ( ( CC Dn T ) ` ( N - ( M + 1 ) ) ) ` x ) ) /
          ( ( x - B ) ^ ( M + 1 ) ) ) ) limCC B ) ) $=
        ( co cr cc wcel vy vk cc0 cv c1 caddc cmin cdvn cmpt cexp cdiv climc wa
        cfv cdm wss cn0 cfz cuz syl sseldi fznn0sub2 elfznn0 dvnfre syl3anc cpm
        ax-mp reelprrecn a1i cvv cnex ax-resscn fss sylancl dvnbss wceq sseqtrd
        dvn2bss eqsstr3d eqssd feq2d ffvelrnda sselda cres adantl ccnfld nnnn0d
        wf mpbid sseldd adantr simpr ffvelrnd cn dvnply2 eqeltrrd resubcld eqid
        fmptd 1nn0 nn0addcld reexpcld crn retop uniretop sylancr cdv nncnd 1cnd
        syldan fveq2d dvnp1 eqtr3d dmeqd feqmptd oveq2d 3eqtr3rd plyf dvmptres3
        recnd sylan2 ctopon dvmptres ovex syl6eq cmul subcld expcld eqtrd oveq1
        mpteq2dva ccncf fveq2 oveq12d cnmptlimc oveq1d expne0d resmpt fvmpt
        cima csn cdif 1eluzge0 fzss1 cfzo fzofzp1 cpr elpm2r syl22anc fdm fvres
        reex cply csubrg crefld cdr resubdrg simpli cdgr cle wbr eleqtrrd faccl
        cfa nndivred taylply2 plyreres elfzouz nnuz syl6eleqr cioo ctg cnt ctop
        simpld ntrss2 nppcan2d fzonnsub elfzofz ctopn tgioo2 dvbssntr wb isopn3
        mpbird difss dvnf fvexd recn cnfldtopon toponmax mp1i cin df-ss mapsspm
        sylib ssid cmap elmap sylibr dvmptsub dmmpti addcld mulcld prid2 elfznn
        syl5sseqr ovexd dvmptid 0cnd dvmptc 1m0e1 mpteq2i dvexp pncand mpteq2dv
        dvmptco mulid1d dvntaylp0 subidd ctx ccn subcn syl31anc plycn cncfmptid
        dvcn syl6ss cncfmpt1f cncfmpt2f wrex ssdifssd wne eldifsni subne0d nnzd
        0expd necomd neneqd nrexdv df-ima eleq2i elrnmpti bitri sylnibr mulne0d
        nnne0d imaeq1d eleq2d syl6bb mtbird eldifi nn0zd nnrecred crest txtopon
        divcld cxp mp2an toponunii restid eqcomi limcresi oveq1i cncfmptc eqidd
        sseqtri cop ccnp opelxpi cncnpi limccnp2 mul02d fveq1d sylan9eq mulcomd
        mulcn 0cn divdiv1d divrecd 3eqtr2rd 3eltr3d lhop eleqtrd ) AUCBCDUUAZUU
[encoded data, 6880 characters]
        JYDYSUTYNYKYPVWD $.
    $}

    taylth.r $e |- R = ( x e. ( A \ { B } ) |->
      ( ( ( F ` x ) - ( T ` x ) ) / ( ( x - B ) ^ N ) ) ) $.
    $( Taylor's theorem.  The Taylor polynomial of a ` N ` -times
       differentiable function is such that the error term goes to zero faster
       than ` ( x - B ) ^ N ` .  This is Metamath 100 proof #35.  (Contributed
       by Mario Carneiro, 1-Jan-2017.) $)
    taylth $p |- ( ph -> 0 e. ( R limCC B ) ) $=
      ( cr cc co cmin cfv vy vm cpr reelprrecn a1i wf wss ax-resscn fss sylancl
      wcel cv c1 cfzo cc0 csn cdif cdvn cexp cdiv cmpt climc wa adantr cdm wceq
      cn simprl simprr fveq2 oveq12d oveq1 oveq1d cbvmptv taylthlem2 taylthlem1
      oveq1i syl6eleq ) ABUACDEPFUBGHPPQUCUKAUDUEACPGUFZPQUGCQGUFIUHCPQGUIUJJKL
      MNOAUBULZUMHUNRUKZUOUACDUPUQZUAULZHVTSRZPGURRZTZTZWCWDQFURRTZTZSRZWCDSRZV
      TUSRZUTRZVAZDVBRZUKZVCZVCZBCDFGVTHAVSWQIVDACPUGWQJVDAHWETVECVFWQKVDAHVGUK
      WQLVDADCUKWQMVDNAWAWPVHWRUOWOBWBBULZWFTZWSWHTZSRZWSDSRZVTUSRZUTRZVAZDVBRA
      WAWPVIWNXFDVBUABWBWMXEWCWSVFZWJXBWLXDUTXGWGWTWIXASWCWSWFVJWCWSWHVJVKXGWKX
      CVTUSWCWSDSVLVMVKVNVQVRVOVP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Uniform convergence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ~~>u $.

  $( Extend class notation to include the uniform convergence predicate. $)
  culm $a class ~~>u $.

  ${
    $d f j k n s x y z S $.
    $( Define the uniform convergence of a sequence of functions.  Here
       ` F ( ~~>u `` S ) G ` if ` F ` is a sequence of functions
       ` F ( n ) , n e. NN ` defined on ` S ` and ` G ` is a function on
       ` S ` , and for every ` 0 < x ` there is a ` j ` such that the functions
       ` F ( k ) ` for ` j <_ k ` are all uniformly within ` x ` of ` G ` on
       the domain ` S ` .  Compare with ~ df-clim .  (Contributed by Mario
       Carneiro, 26-Feb-2015.) $)
    df-ulm $a |- ~~>u = ( s e. _V |-> { <. f , y >. | E. n e. ZZ
      ( f : ( ZZ>= ` n ) --> ( CC ^m s ) /\ y : s --> CC /\ A. x e. RR+
        E. j e. ( ZZ>= ` n ) A. k e. ( ZZ>= ` j ) A. z e. s
        ( abs ` ( ( ( f ` k ) ` z ) - ( y ` z ) ) ) < x ) } ) $.

    $( The uniform limit relation is a relation.  (Contributed by Mario
       Carneiro, 26-Feb-2015.) $)
    ulmrel $p |- Rel ( ~~>u ` S ) $=
      ( vn vs vf vy vz vk vx vj cv cuz cfv cc cmap co wf cmin cabs wral wrex cz
      clt wbr crp w3a cvv culm df-ulm relmptopab ) BJKLZMCJZNODJZPUKMEJZPFJZGJU
      LLLUNUMLQORLHJUBUCFUKSGIJKLSIUJTHUDSUEBUATCDEUFAUGHEFDIGBCUHUI $.
  $}

  $( Closure of the base set in a uniform limit.  (Contributed by Mario
     Carneiro, 26-Feb-2015.) $)
  ulmscl $p |- ( F ( ~~>u ` S ) G -> S e. _V ) $=
    ( culm cfv wbr cop wcel cvv df-br elfvex sylbi ) BCADEZFBCGZMHAIHBCMJNADKL
    $.

  ${
    $d f j k n x y z F $.  $d f j k n x y z G $.  $d f j k n s x y z S $.
    $d f n y V $.
    $( Express the predicate:  The sequence of functions ` F ` converges
       uniformly to ` G ` on ` S ` .  (Contributed by Mario Carneiro,
       26-Feb-2015.) $)
    ulmval $p |- ( S e. V -> ( F ( ~~>u ` S ) G <-> E. n e. ZZ
      ( F : ( ZZ>= ` n ) --> ( CC ^m S ) /\ G : S --> CC /\ A. x e. RR+
        E. j e. ( ZZ>= ` n ) A. k e. ( ZZ>= ` j ) A. z e. S
        ( abs ` ( ( ( F ` k ) ` z ) - ( G ` z ) ) ) < x ) ) ) $=
      ( vf vy wcel cvv wa cfv cv cc wf wral cz vs culm wbr cuz cmap co cmin clt
      cabs wrex crp w3a wi wrel ulmrel brrelex12 mpan a1i 3simpa fvex fex mpan2
      expcom anim12d syl5 rexlimdvw wb copab wceq elex cpm cxp wss simpr1 uzssz
      ovex zex elpm2r mpanl12 sylancl simpr2 simpl elmapg sylancr mpbird jca ex
      cnex ssopab2dv df-xp syl6sseqr xpex ssex syl oveq2 feq3d raleq rexralbidv
      feq2 ralbidv 3anbi123d rexbidv opabbidv df-ulm fvmptg syl2anc breqd feq1d
      simpr fveq1d oveq12d fveq2d breq1d eqid brabga sylan9bb pm5.21ndd ) CILZG
      MLZHMLZNZGHCUBOZUCZFPZUDOZQCUEUFZGRZCQHRZBPZEPZGOZOZYIHOZUGUFZUIOZAPZUHUC
      ZBCSZEDPUDOZSDYEUJZAUKSZULZFTUJZYCYAUMXRYBUNYCYACUOGHYBUPUQURXRUUBYAFTUUB
      YGYHNXRYAYGYHUUAUSXRYGXSYHXTYGXSUMXRYGYEMLXSYDUDUTYEYFMGVAVBURYHXRXTCQIHV
      AVCVDVEVFXRYAYCUUCVGXRYCGHYEYFJPZRZCQKPZRZYIYJUUDOZOZYIUUFOZUGUFZUIOZYPUH
      UCZBCSZEYSSDYEUJZAUKSZULZFTUJZJKVHZUCYAUUCXRYBUUSGHXRCMLUUSMLZYBUUSVICIVJ
      XRUUSYFTVKUFZYFVLZVMUUTXRUUSUUDUVALZUUFYFLZNZJKVHUVBXRUURUVEJKXRUUQUVEFTX
      RUUQUVEXRUUQNZUVCUVDUVFUUEYETVMZUVCXRUUEUUGUUPVNYDVOYFMLTMLUUEUVGNUVCQCUE
      VPZVQYFTYEUUDMMVRVSVTUVFUVDUUGXRUUEUUGUUPWAUVFQMLXRUVDUUGVGWHXRUUQWBQCUUF
      MIWCWDWEWFWGVFWIJKUVAYFWJWKUUSUVBUVAYFYFTVKVPUVHWLWMWNUACYEQUAPZUEUFZUUDR
      ZUVIQUUFRZUUMBUVISZEYSSDYEUJZAUKSZULZFTUJZJKVHUUSMMUBUVICVIZUVQUURJKUVRUV
      PUUQFTUVRUVKUUEUVLUUGUVOUUPUVRUVJYFUUDYEUVICQUEWOWPUVICQUUFWSUVRUVNUUOAUK
      UVRUVMUUNDEYEYSUUMBUVICWQWRWTXAXBXCAKBJDEFUAXDXEXFXGUURUUCJKGHUUSMMUUDGVI
      ZUUFHVIZNZUUQUUBFTUWAUUEYGUUGYHUUPUUAUWAYEYFUUDGUVSUVTWBZXHUWACQUUFHUVSUV
      TXIZXHUWAUUOYTAUKUWAUUNYRDEYEYSUWAUUMYQBCUWAUULYOYPUHUWAUUKYNUIUWAUUIYLUU
      JYMUGUWAYIUUHYKUWAYJUUDGUWBXJXJUWAYIUUFHUWCXJXKXLXMWTWRWTXAXBUUSXNXOXPWGX
      Q $.
  $}

  ${
    $d j k n x z F $.  $d j k n x z G $.  $d j k n x z S $.
    $( Closure of a uniform limit of functions.  (Contributed by Mario
       Carneiro, 26-Feb-2015.) $)
    ulmcl $p |- ( F ( ~~>u ` S ) G -> G : S --> CC ) $=
      ( vn vz vk vx vj cfv wbr cv cuz cc co wf wral wrex cz cvv syl clt crp w3a
      culm cmap cmin cabs wcel wb ulmscl ulmval ibi simp2 rexlimivw ) BCAUDIJZD
      KLIZMAUENBOZAMCOZEKZFKBIIUSCIUFNUGIGKUAJEAPFHKLIPHUPQGUBPZUCZDRQZURUOVBUO
      ASUHUOVBUIABCUJGEAHFDBCSUKTULVAURDRUQURUTUMUNT $.

    $( Closure of a uniform limit of functions.  (Contributed by Mario
       Carneiro, 26-Feb-2015.) $)
    ulmf $p |- ( F ( ~~>u ` S ) G ->
      E. n e. ZZ F : ( ZZ>= ` n ) --> ( CC ^m S ) ) $=
      ( vz vk vx vj cfv wbr cv cuz cc co wf wral wrex cz cvv syl culm cmap cmin
      cabs clt crp w3a wcel wb ulmscl ulmval ibi simp1 reximi ) CDAUAIJZBKLIZMA
      UBNCOZAMDOZEKZFKCIIUSDIUCNUDIGKUEJEAPFHKLIPHUPQGUFPZUGZBRQZUQBRQUOVBUOASU
      HUOVBUIACDUJGEAHFBCDSUKTULVAUQBRUQURUTUMUNT $.

    $( Closure of a uniform limit of functions.  (Contributed by Mario
       Carneiro, 26-Feb-2015.) $)
    ulmpm $p |- ( F ( ~~>u ` S ) G -> F e. ( ( CC ^m S ) ^pm ZZ ) ) $=
      ( vn culm cfv wbr cv cuz cc cmap co wf cz wrex cpm wcel ulmf wss cvv ovex
      uzssz wa zex elpm2r mpanl12 mpan2 rexlimivw syl ) BCAEFGDHZIFZJAKLZBMZDNO
      BULNPLQZADBCRUMUNDNUMUKNSZUNUJUBULTQNTQUMUOUCUNJAKUAUDULNUKBTTUEUFUGUHUI
      $.

    $( Closure of a uniform limit of functions.  (Contributed by Mario
       Carneiro, 18-Mar-2015.) $)
    ulmf2 $p |- ( ( F Fn Z /\ F ( ~~>u ` S ) G ) -> F : Z --> ( CC ^m S ) ) $=
      ( wfn culm cfv wbr wa cdm cc cmap co wf cz cpm wcel ulmpm wss ovex adantl
      zex elpm2 simplbi syl wceq fndm adantr feq2d mpbid ) BDEZBCAFGHZIZBJZKALM
      ZBNZDUOBNULUPUKULBUOOPMQZUPABCRUQUPUNOSUOOBKALTUBUCUDUEUAUMUNDUOBUKUNDUFU
      LDBUGUHUIUJ $.
  $}

  ${
    $d j k n x z F $.  $d j k n x z G $.  $d j k n x z M $.  $d j k n x z ph $.
    $d j k n x A $.  $d n x B $.  $d j k x z C $.  $d j k n x z S $.  $d n V $.
    $d j n x Z $.
    ulm2.z $e |- Z = ( ZZ>= ` M ) $.
    ulm2.m $e |- ( ph -> M e. ZZ ) $.
    ulm2.f $e |- ( ph -> F : Z --> ( CC ^m S ) ) $.
    ulm2.b $e |- ( ( ph /\ ( k e. Z /\ z e. S ) ) -> ( ( F ` k ) ` z ) = B ) $.
    ulm2.a $e |- ( ( ph /\ z e. S ) -> ( G ` z ) = A ) $.
    ${
      ulm2.g $e |- ( ph -> G : S --> CC ) $.
      ulm2.s $e |- ( ph -> S e. V ) $.
      $( Simplify ~ ulmval when ` F ` and ` G ` are known to be functions.
         (Contributed by Mario Carneiro, 26-Feb-2015.) $)
      ulm2 $p |- ( ph -> ( F ( ~~>u ` S ) G <-> A. x e. RR+ E. j e. Z
        A. k e. ( ZZ>= ` j ) A. z e. S ( abs ` ( B - A ) ) < x ) ) $=
        ( vn culm cfv wbr cv cuz cc cmap co wf cmin cabs clt wral wrex crp wceq
        w3a cz wa wcel ulmval syl 3anan12 cdm fdm sylan9req syl5eqr adantr uz11
        wb mpbid eqcomd fveq2 syl6eqr biimparc impbida anbi1d biantrurd simp-4l
        feq2d sylan simpr uzid syl6eleqr eqeltrd uztrn2 syl12anc oveq12d fveq2d
        sylancom breq1d ralbidva rexbidva ralbidv 3bitr3d syl5bb rexbidv 3bitrd
        pm5.32da rexeqdv ceqsrexv ) AIJFUBUCUDZUAUEZUFUCZUGFUHUIZIUJZFUGJUJZCUE
        ZHUEZIUCUCZXIJUCZUKUIZULUCZBUEZUMUDZCFUNZHGUEZUFUCZUNZGXEUOZBUPUNZURZUA
        USUOZXDKUQZEDUKUIZULUCZXOUMUDZCFUNZHXSUNZGXEUOZBUPUNZUTZUAUSUOZYJGMUOZB
        UPUNZAFLVAXCYDVKTBCFGHUAIJLVBVCAYCYMUAUSYCXHXGYBUTZUTZAYMXGXHYBVDAYQYEY
        BUTYRYMAXGYEYBAXGYEAXGUTZKXDYSKUFUCZXEUQZKXDUQZYSYTMXENAXGMIVEZXEAMXFIU
        JZUUCMUQPMXFIVFVCXEXFIVFVGVHYSKUSVAZUUAUUBVKAUUEXGOVIKXDVJVCVLVMAUUDYEX
        GPYEXGUUDYEXEMXFIYEXEYTMXDKUFVNNVOZWAVPWBVQVRAXHYQSVSAYEYBYLAYEUTZYAYKB
        UPUUGXTYJGXEUUGXRXEVAZUTZXQYIHXSUUIXJXSVAZUTZXPYHCFUUKXIFVAZUTZXNYGXOUM
        UUMXMYFULUUMXKEXLDUKUUMAXJMVAZUULXKEUQAYEUUHUUJUULVTZUUKUUNUULUUIXRMVAZ
        UUJUUNUUGXDMVAUUHUUPUUGXDKMAYEWCAKMVAYEAKYTMAUUEKYTVAOKWDVCNWEVIWFKXRXD
        MNWGWBKXJXRMNWGWBVIUUKUULWCQWHUUKUULAXLDUQUUORWKWIWJWLWMWMWNWOWTWPWQWRA
        UUEYNYPVKOYLYPUAKUSYEYKYOBUPYEYJGXEMUUFXAWOXBVCWS $.
    $}

    ulmi.u $e |- ( ph -> F ( ~~>u ` S ) G ) $.
    ulmi.c $e |- ( ph -> C e. RR+ ) $.
    $( The uniform limit property.  (Contributed by Mario Carneiro,
       27-Feb-2015.) $)
    ulmi $p |- ( ph ->
      E. j e. Z A. k e. ( ZZ>= ` j ) A. z e. S ( abs ` ( B - A ) ) < C ) $=
      ( wral vx crp wcel cmin co cabs cfv cv clt wbr cuz wrex culm cvv cc ulmcl
      wf syl ulmscl ulm2 mpbid wceq breq2 ralbidv rexralbidv rspcv sylc ) AEUBU
      CDCUDUEUFUGZUAUHZUIUJZBFTZHGUHUKUGZTGLULZUAUBTZVHEUIUJZBFTZHVLTGLULZSAIJF
      UMUGUJZVNRAUABCDFGHIJKUNLMNOPQAVRFUOJUQRFIJUPURAVRFUNUCRFIJUSURUTVAVMVQUA
      EUBVIEVBZVKVPGHLVLVSVJVOBFVIEVHUIVCVDVEVFVG $.
  $}

  ${
    $d j k x z A $.  $d j k x z F $.  $d j k x z G $.  $d j k x z ph $.
    $d j k x H $.  $d j k x z M $.  $d j k x z S $.  $d j k x Z $.
    ulmclm.z $e |- Z = ( ZZ>= ` M ) $.
    ulmclm.m $e |- ( ph -> M e. ZZ ) $.
    ulmclm.f $e |- ( ph -> F : Z --> ( CC ^m S ) ) $.
    ulmclm.a $e |- ( ph -> A e. S ) $.
    ulmclm.h $e |- ( ph -> H e. W ) $.
    ulmclm.e $e |- ( ( ph /\ k e. Z ) -> ( ( F ` k ) ` A ) = ( H ` k ) ) $.
    ulmclm.u $e |- ( ph -> F ( ~~>u ` S ) G ) $.
    $( A uniform limit of functions converges pointwise.  (Contributed by Mario
       Carneiro, 27-Feb-2015.) $)
    ulmclm $p |- ( ph -> H ~~> ( G ` A ) ) $=
      ( vx vj cfv vz culm wbr cli cv cmin co cabs clt wral cuz wrex crp wcel wi
      wceq fveq2 oveq12d fveq2d breq1d rspcv syl ralimdv reximdv wa eqidd cc wf
      cvv ulmcl ulmscl ulm2 eqcomd ffvelrnd cmap ffvelrnda elmapi adantr clim2c
      3imtr4d mpd ) AEFCUBTUCZGBFTZUDUCZQAUAUEZDUEZETZTZWEFTZUFUGZUHTZRUEZUIUCZ
      UACUJZDSUEUKTZUJZSJULZRUMUJBWGTZWCUFUGZUHTZWLUIUCZDWOUJZSJULZRUMUJWBWDAWQ
      XCRUMAWPXBSJAWNXADWOABCUNZWNXAUONWMXAUABCWEBUPZWKWTWLUIXEWJWSUHXEWHWRWIWC
      UFWEBWGUQWEBFUQURUSUTVAVBVCVDVCARUAWIWHCSDEFHVIJKLMAWFJUNZWECUNZVEVEWHVFA
      XGVEWIVFAWBCVGFVHQCEFVJVBZAWBCVIUNQCEFVKVBVLARWCWRSDGHIJKLOAXFVEZWRWFGTPV
      MACVGBFXHNVNXICVGBWGXIWGVGCVOUGZUNCVGWGVHAJXJWFEMVPWGVGCVQVBAXDXFNVRVNVSV
      TWA $.
  $}

  ${
    $d j k r z F $.  $d j k r z G $.  $d j k r z M $.  $d j k r z ph $.
    $d j k r z N $.  $d j k r z S $.  $d j k r z W $.  $d j k r Z $.
    ulmres.z $e |- Z = ( ZZ>= ` M ) $.
    ulmres.w $e |- W = ( ZZ>= ` N ) $.
    ulmres.m $e |- ( ph -> N e. Z ) $.
    ulmres.f $e |- ( ph -> F : Z --> ( CC ^m S ) ) $.
    $( A sequence of functions converges iff the tail of the sequence converges
       (for any finite cutoff).  (Contributed by Mario Carneiro,
       24-Mar-2015.) $)
    ulmres $p |- ( ph ->
      ( F ( ~~>u ` S ) G <-> ( F |` W ) ( ~~>u ` S ) G ) ) $=
      ( vz vk vr vj wcel wa cfv syl cvv cc wf culm wbr cres wi ulmscl ulmcl jca
      a1i wb cv cmin co cabs clt wral cuz crp cz syl6eleq adantr eluzel2 rexuz3
      wrex eluzelz bitr4d ralbidv cmap eqidd simprr simprl ulm2 3sstr4g fssresd
      wss uzss wceq fvres ad2antrl fveq1d 3bitr4d ex pm5.21ndd ) ABUAQZBUBDUCZR
      ZCDBUDSZUEZCGUFZDWIUEZWJWHUGAWJWFWGBCDUHBCDUIUJUKWLWHUGAWLWFWGBWKDUHBWKDU
      IUJUKAWHWJWLULAWHRZMUMZNUMZCSZSZWNDSZUNUOUPSOUMUQUEMBURZNPUMUSSURZPHVFZOU
      TURWTPGVFZOUTURWJWLWMXAXBOUTWMXAWTPVAVFZXBWMEVAQZXAXCULWMFEUSSZQZXDAXFWHA
      FHXEKIVBVCZEFVDTZWSPNEHIVETWMFVAQZXBXCULWMXFXIXGEFVGTZWSPNFGJVETVHVIWMOMW
      RWQBPNCDEUAHIXHAHUBBVJUOZCUCWHLVCZWMWOHQWNBQZRRWQVKWMXMRWRVKZAWFWGVLZAWFW
      GVMZVNWMOMWRWQBPNWKDFUAGJXJWMHXKGCXLWMFUSSZXEGHWMXFXQXEVQXGEFVRTJIVOVPWMW
      OGQZXMRRWNWOWKSZWPXRXSWPVSWMXMWOGCVTWAWBXNXOXPVNWCWDWE $.
  $}

  ${
    $d i j k m x z G $.  $d i j k m n x z ph $.  $d i j n x W $.  $d i k m Z $.
    $d i j k m n x z F $.  $d i j k m n x z K $.  $d i j k m n x z S $.
    $d j k m x z H $.  $d i j k m x z M $.
    ulmshft.z $e |- Z = ( ZZ>= ` M ) $.
    ulmshft.w $e |- W = ( ZZ>= ` ( M + K ) ) $.
    ulmshft.m $e |- ( ph -> M e. ZZ ) $.
    ulmshft.k $e |- ( ph -> K e. ZZ ) $.
    ulmshft.f $e |- ( ph -> F : Z --> ( CC ^m S ) ) $.
    ulmshft.h $e |- ( ph -> H = ( n e. W |-> ( F ` ( n - K ) ) ) ) $.
    $( Lemma for ~ ulmshft .  (Contributed by Mario Carneiro, 24-Mar-2015.) $)
    ulmshftlem $p |- ( ph -> ( F ( ~~>u ` S ) G -> H ( ~~>u ` S ) G ) ) $=
      ( cfv wa cv wcel vz vk vx vj vm vi culm wbr cmin co cabs clt wral cuz crp
      wrex cz ad2antrr cc cmap eqidd simplr simpr ulmi caddc syl6eleq ad3antrrr
      wf eluzadd syl2anc syl6eleqr wi eluzelz adantr eluzsub syl3anc wceq fveq2
      fveq1d oveq1d fveq2d breq1d ralbidv rspcv ralrimdva raleqdv rspcev syl6an
      syl rexlimdva mpd ralrimiva zaddcld cmpt ffvelrnd eqid fmptd feq1d mpbird
      cvv oveq1 fvex fvmpt ad2antrl eqtrd ulmcl adantl ulmscl ulm2 ex ) ADEBUGQ
      ZUHZFEXKUHZAXLRZXMUASZUBSZGUIUJZDQZQZXOEQZUIUJZUKQZUCSZULUHZUABUMZUBUDSZU
      NQZUMZUDIUPZUCUOUMXNYIUCUOXNYCUOTZRZXOUESZDQZQZXTUIUJZUKQZYCULUHZUABUMZUE
      UFSZUNQZUMZUFJUPYIYKUAXTYNYCBUFUEDEHJKAHUQTZXLYJMURAJUSBUTUJZDVHZXLYJOURY
      KYLJTXOBTZRRYNVAYKUUERXTVAAXLYJVBXNYJVCVDYKUUAYIUFJYKYSJTZRZYSGVEUJZITUUA
      YEUBUUHUNQZUMZYIUUGUUHHGVEUJZUNQZIUUGYSHUNQZTZGUQTZUUHUULTUUGYSJUUMYKUUFV
      CKVFZAUUOXLYJUUFNVGGHYSVIVJLVKUUGUUAYEUBUUIUUGXPUUITZRZXQYTTZUUAYEVLUURYS
      UQTZUUOUUQUUSUUGUUTUUQUUGUUNUUTUUPHYSVMWIVNXNUUOYJUUFUUQAUUOXLNVNVGUUGUUQ
      VCGYSXPVOVPYRYEUEXQYTYLXQVQZYQYDUABUVAYPYBYCULUVAYOYAUKUVAYNXSXTUIUVAXOYM
      XRYLXQDVRVSVTWAWBWCWDWIWEYHUUJUDUUHIYFUUHVQYEUBYGUUIYFUUHUNVRWFWGWHWJWKWL
      XNUCUAXTXSBUDUBFEUUKWTILAUUKUQTXLAHGMNWMVNAIUUCFVHZXLAUVBIUUCCICSZGUIUJZD
      QZWNZVHACIUVEUUCUVFAUVCITZRZJUUCUVDDAUUDUVGOVNUVHUVDUUMJUVHUUBUUOUVCUULTU
      VDUUMTAUUBUVGMVNAUUOUVGNVNUVHUVCIUULAUVGVCLVFGHUVCVOVPKVKWOUVFWPZWQAIUUCF
      UVFPWRWSVNXNXPITZUUERZRZXOXPFQZXRUVLUVMXPUVFQZXRUVLXPFUVFAFUVFVQXLUVKPURV
      SUVJUVNXRVQXNUUECXPUVEXRIUVFUVCXPVQUVDXQDUVCXPGUIXAWAUVIXQDXBXCXDXEVSXNUU
      ERXTVAXLBUSEVHABDEXFXGXLBWTTABDEXHXGXIWSXJ $.

    $( A sequence of functions converges iff the shifted sequence converges.
       (Contributed by Mario Carneiro, 24-Mar-2015.) $)
    ulmshft $p |- ( ph -> ( F ( ~~>u ` S ) G <-> H ( ~~>u ` S ) G ) ) $=
      ( vm cfv co wcel culm wbr ulmshftlem cneg caddc eqid zaddcld znegcld cmap
      cuz cc wf cv cmin cmpt wa adantr simpr syl6eleq eluzsub syl3anc syl6eleqr
      cz ffvelrnd fmptd feq1d mpbird eluzelz zcnd subnegd fveq2d fveq1d eluzadd
      syl wceq syl2anc oveq1 fvmpt pncand eqtrd 3eqtrd mpteq2dva addassd negidd
      fvex cc0 oveq2d addid1d syl6eqr mpteq1d feqmptd 3eqtr4rd impbid ) ADEBUAR
      ZUBFEWNUBABCDEFGHIJKLMNOPUCABQFEDGUDZHGUESZWPWOUESZUJRZILWRUFAHGMNUGAGNUH
      ZAIUKBUISZFULIWTCICUMZGUNSZDRZUOZULACIXCWTXDAXAITZUPZJWTXBDAJWTDULXEOUQXF
      XBHUJRZJXFHVCTZGVCTZXAWPUJRZTXBXGTAXHXEMUQAXIXENUQXFXAIXJAXEURLUSGHXAUTVA
      KVBVDXDUFZVEAIWTFXDPVFVGAQJQUMZWOUNSZFRZUOQJXLDRZUOQWRXNUODAQJXNXOAXLJTZU
      PZXNXLGUESZFRXRXDRZXOXQXMXRFXQXLGXQXLXQXLXGTZXLVCTXQXLJXGAXPURKUSZHXLVHVN
      VIZAGUKTXPAGNVIZUQZVJVKXQXRFXDAFXDVOXPPUQVLXQXSXRGUNSZDRZXOXQXRITXSYFVOXQ
      XRXJIXQXTXIXRXJTYAAXIXPNUQGHXLVMVPLVBCXRXCYFIXDXAXRVOXBYEDXAXRGUNVQVKXKYE
      DWEVRVNXQYEXLDXQXLGYBYDVSVKVTWAWBAQWRJXNAWRXGJAWQHUJAWQHGWOUESZUESHWFUESH
      AHGWOAHMVIZYCAWOWSVIWCAYGWFHUEAGYCWDWGAHYHWHWAVKKWIWJAQJWTDOWKWLUCWM $.
  $}

  ${
    $d j k x z F $.  $d j k x z G $.  $d j k x z M $.  $d j k x z ph $.
    $d j k x z S $.  $d j x Z $.
    ulm0.z $e |- Z = ( ZZ>= ` M ) $.
    ulm0.m $e |- ( ph -> M e. ZZ ) $.
    ulm0.f $e |- ( ph -> F : Z --> ( CC ^m S ) ) $.
    ulm0.g $e |- ( ph -> G : S --> CC ) $.
    $( Every function converges uniformly on the empty set.  (Contributed by
       Mario Carneiro, 3-Mar-2015.) $)
    ulm0 $p |- ( ( ph /\ S = (/) ) -> F ( ~~>u ` S ) G ) $=
      ( vz vk vx vj c0 wa cfv cv wral wcel wceq culm wbr cmin cabs clt cuz wrex
      co crp wne cz uzid syl syl6eleqr ne0i adantr ral0 simpr raleqdv ralrimivw
      mpbiri r19.2z syl2anc cvv cc cmap wf eqidd 0ex syl6eqel ulm2 mpbird ) ABO
      UAZPZCDBUBQUCKRZLRZCQQZVPDQZUDUIUEQMRUFUCZKBSZLNRUGQZSZNFUHZMUJSVOWDMUJVO
      FOUKZWCNFSWDAWEVNAEFTWEAEEUGQZFAEULTZEWFTHEUMUNGUOFEUPUNUQVOWCNFVOWALWBVO
      WAVTKOSVTKURVOVTKBOAVNUSZUTVBVAVAWCNFVCVDVAVOMKVSVRBNLCDEVEFGAWGVNHUQAFVF
      BVGUICVHVNIUQVOVQFTVPBTZPPVRVIVOWIPVSVIABVFDVHVNJUQVOBOVEWHVJVKVLVM $.
  $}

  ${
    $d i k n x F $.  $d k n x G $.  $d k n x H $.  $d k n x y z S $.
    $( An sequence of functions uniformly converges to at most one limit.
       (Contributed by Mario Carneiro, 5-Jul-2017.) $)
    ulmuni $p |- ( ( F ( ~~>u ` S ) G /\ F ( ~~>u ` S ) H ) -> G = H ) $=
      ( vx vn vi vk cfv wbr wa cc wf wfn ulmcl cv wcel wceq cz cvv culm ffn syl
      adantr adantl cuz cmap co cmpt eqid simplr simpr simpllr fvex mptex fveq2
      cli a1i fveq1d fvmpt eqcomd simp-4l simp-4r climuni syl2anc wrex ad2antrr
      ulmclm ulmf r19.29a eqfnfvd ) BCAUAIZJZBDVLJZKZEACDVOALCMZCANVMVPVNABCOUD
      ALCUBUCVOALDMZDANVNVQVMABDOUEALDUBUCVOEPZAQZKZFPZUFIZLAUGUHBMZVRCIZVRDIZR
      ZFSVTWASQZKZWCKZGWBVRGPZBIZIZUIZWDUQJWMWEUQJWFWIVRAHBCWMWATWBWBUJZVTWGWCU
      KZWHWCULZVOVSWGWCUMZWMTQWIGWBWLWAUFUNUOURZHPZWBQZVRWSBIZIZWSWMIZRWIWTXCXB
      GWSWLXBWBWMWJWSRVRWKXAWJWSBUPUSWMUJVRXAUNUTVAUEZVMVNVSWGWCVBVHWIVRAHBDWMW
      ATWBWNWOWPWQWRXDVMVNVSWGWCVCVHWDWEWMVDVEVMWCFSVFVNVSAFBCVIVGVJVK $.

    $( Two ways to express that a function has a limit.  (The expression
       ` ( ( ~~>u `` S ) `` F ) ` is sometimes useful as a shorthand for "the
       unique limit of the function ` F ` ").  (Contributed by Mario Carneiro,
       5-Jul-2017.) $)
    ulmdm $p |- ( F e. dom ( ~~>u ` S ) <->
      F ( ~~>u ` S ) ( ( ~~>u ` S ) ` F ) ) $=
      ( vx vy vz culm cfv wfun cdm wcel wbr wb wrel cv wa weq wal ulmrel ulmuni
      wi ax-gen gen2 dffun2 mpbir2an funfvbrb ax-mp ) AFGZHZBUGIJBBUGGUGKLUHUGM
      CNZDNZUGKUIENZUGKODEPTZEQZDQCQARUMCDULEAUIUJUKSUAUBCDEUGUCUDBUGUEUF $.
  $}

  ${
    $d g j k m n p q r v w x y z F $.  $d g j k m n p q r v w x y z ph $.
    $d g j k m n p q r v w x y z S $.  $d g j k m n p q r v w x y z Z $.
    $d j k p q r w z M $.
    ulmcau.z $e |- Z = ( ZZ>= ` M ) $.
    ulmcau.m $e |- ( ph -> M e. ZZ ) $.
    ulmcau.s $e |- ( ph -> S e. V ) $.
    ulmcau.f $e |- ( ph -> F : Z --> ( CC ^m S ) ) $.
    $( Lemma for ~ ulmcau and ~ ulmcau2 : show the equivalence of the four- and
       five-quantifier forms of the Cauchy convergence condition.  Compare
       ~ cau3 .  (Contributed by Mario Carneiro, 1-Mar-2015.) $)
    ulmcaulem $p |- ( ph -> ( A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j )
      A. z e. S ( abs ` ( ( ( F ` k ) ` z ) - ( ( F ` j ) ` z ) ) ) < x <->
      A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j ) A. m e. ( ZZ>= ` k )
      A. z e. S ( abs ` ( ( ( F ` k ) ` z ) - ( ( F ` m ) ` z ) ) ) < x ) ) $=
      ( cfv clt wral wcel cc vw cv cmin co cabs wbr cuz wrex wceq breq2 ralbidv
      crp rexralbidv cbvralv wa c2 cdiv rphalfcl rspcv syl adantl fveq1d oveq1d
      wi fveq2 fveq2d breq1d biimpi wss uzss ad2antlr ssralv r19.26 cmap adantr
      ad3antrrr uztrn2 adantll sylan ffvelrnd elmapi ffvelrnda ad2antrr abssubd
      wf biimpd cr ffvelrn syl2an anassrs rpre abs3lem syl22anc sylan2d syl5bir
      ralimdva expdimp an32s syld impancom com23 mpdi reximdva ralrimdva syl5bi
      ex cz eluzelz eleq2s uzid raleqbidv oveq2d ralbidva syl5bb sylibd ralimdv
      impbid ) ACUBZFUBZHPZPZXREUBZHPZPZUCUDZUEPZBUBZQUFZCDRZFYBUGPZRZEKUHZBULR
      ZYAXRGUBZHPZPZUCUDZUEPZYGQUFZCDRZGXSUGPZRZFYJRZEKUHZBULRZYMYFUAUBZQUFZCDR
      ZFYJREKUHZUAULRZAUUEYLUUIBUAULYGUUFUIZYIUUHEFKYJUUKYHUUGCDYGUUFYFQUJUKUMU
      NAUUJUUDBULAYGULSZUOZUUJYFYGUPUQUDZQUFZCDRZFYJRZEKUHZUUDUULUUJUURVDZAUULU
      UNULSUUSYGURUUIUURUAUUNULUUFUUNUIZUUHUUPEFKYJUUTUUGUUOCDUUFUUNYFQUJUKUMUS
      UTVAUUMUUQUUCEKUUMYBKSZUOZUUQYPYDUCUDZUEPZUUNQUFZCDRZGYJRZUUCUUQUVGUUPUVF
      FGYJXSYNUIZUUOUVECDUVHYFUVDUUNQUVHYEUVCUEUVHYAYPYDUCUVHXRXTYOXSYNHVEVBVCV
      FVGUKUNVHUVBUVGUUQUUCUVBUVGUUQUUCVDUVBUVGUOUUPUUBFYJUVBXSYJSZUVGUUPUUBVDU
      VBUVIUOZUUPUVGUUBUVJUUPUOZUVGUVFGUUARZUUBUVKUUAYJVIZUVGUVLVDUVIUVMUVBUUPY
      BXSVJVKUVFGUUAYJVLUTUVKUVFYTGUUAUVJYNUUASZUUPUVFYTVDUVJUVNUOZUUPUVFYTUUPU
      VFUOUUOUVEUOZCDRUVOYTUUOUVECDVMUVOUVPYSCDUVOXRDSZUOZUVEYDYPUCUDZUEPZUUNQU
      FZUUOYSUVRUVEUWAUVRUVDUVTUUNQUVRYPYDUVODTXRYOUVOYOTDVNUDZSDTYOWEUVOKUWBYN
      HUUMKUWBHWEZUVAUVIUVNAUWCUULOVOZVPUVJXSKSZUVNYNKSUVAUVIUWEUUMIXSYBKLVQZVR
      IYNXSKLVQVSVTYOTDWAUTWBZUVODTXRYCUVOYCUWBSZDTYCWEZUVBUWHUVIUVNUUMKUWBYBHU
      WDWBWCYCTDWAZUTWBZWDVGWFUVRYATSYPTSYDTSYGWGSZUUOUWAUOYSVDUVODTXRXTUVOXTUW
      BSZDTXTWEZUVJUWMUVNUUMUVAUVIUWMUUMUWCUWEUWMUVAUVIUOZUWDUWFKUWBXSHWHZWIWJV
      OXTTDWAZUTWBUWGUWKUVBUWLUVIUVNUVQUULUWLAUVAYGWKVKVPYAYPYDYGWLWMWNWPWOWQWR
      WPWSWTWRWPXFXAXBXCWSXDXEAUUDYLBULAUUCYKEKAUVAUOZUUCUVTYGQUFZCDRZGYJRZYKUW
      RYBYJSZUUCUXAVDUVAUXBAUVAYBXGSZUXBUXCYBIUGPKIYBXHLXIYBXJUTVAUUBUXAFYBYJXS
      YBUIZYTUWTGUUAYJXSYBUGVEUXDYSUWSCDUXDYRUVTYGQUXDYQUVSUEUXDYAYDYPUCUXDXRXT
      YCXSYBHVEVBVCVFVGUKXKUSUTUXAYDYAUCUDZUEPZYGQUFZCDRZFYJRUWRYKUWTUXHGFYJYNX
      SUIZUWSUXGCDUXIUVTUXFYGQUXIUVSUXEUEUXIYPYAYDUCUXIXRYOXTYNXSHVEVBXLVFVGUKU
      NUWRUXHYIFYJUWRUVIUOZUXGYHCDUXJUVQUOZUXFYFYGQUXKYDYAUXJDTXRYCUXJUWHUWIUWR
      UWHUVIAKUWBYBHOWBVOUWJUTWBUXJDTXRXTUXJUWMUWNAUVAUVIUWMAUWCUWEUWMUWOOUWFUW
      PWIWJUWQUTWBWDVGXMXMXNXOXCXPXQ $.

    $( A sequence of functions converges uniformly iff it is uniformly Cauchy,
       which is to say that for every ` 0 < x ` there is a ` j ` such that for
       all ` j <_ k ` the functions ` F ( k ) ` and ` F ( j ) ` are uniformly
       within ` x ` of each other on ` S ` .  This is the four-quantifier
       version, see ~ ulmcau2 for the more conventional five-quantifier
       version.  (Contributed by Mario Carneiro, 1-Mar-2015.) $)
    ulmcau $p |- ( ph -> ( F e. dom ( ~~>u ` S ) <->
      A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j ) A. z e. S
        ( abs ` ( ( ( F ` k ) ` z ) - ( ( F ` j ) ` z ) ) ) < x ) ) $=
      ( cfv wcel clt wral wa cc vg vy vn vw vq vr vp vm vv culm cv cmin co cabs
      cdm wbr cuz wrex crp wex eldmg c2 cdiv cz ad2antrr cmap wf eqidd rphalfcl
      ibi simplr adantl ulmi wi simpr syl6eleq eluzelz uzid fveq2 fveq1d oveq1d
      weq fveq2d breq1d ralbidv rspcv 4syl r19.26 ffvelrnda adantr elmapi ulmcl
      syl ad4antlr abssubd biimpd cr uztrn2 ffvelrn syl2an anassrs rpre abs3lem
      syl22anc sylan2d ancomsd ralimdva syl5bir expdimp an32s ex com23 reximdva
      mpdd mpd ralrimiva exlimdv syl5 cmpt breq2 rexbidv oveq12d cbvralv syl5bb
      cli wceq raleqbidv cbvrexv rspccva eqid sylan fvex fvmpt cvv fmptd climdm
      ralimdv sylib climcl ffvelrnd wrel ulmrel ulmcaulem biimpa ralcom raleqdv
      2ralbidv syl6bbr eleq2s ad2antlr reximdv adantll ralbidva rexbiia eqeltri
      impcom oveq2d bitri sylibr caucvg mpteq2dv eleq1d climi2 r19.29uz r19.2uz
      mptex ad5antr rexlimdva mpan2d sylan2 ulm2 mpbird releldm sylancr impbid
      a1i ) AGDUJOZUOZPZCUKZFUKZGOZOZUVTEUKZGOZOZULUMZUNOZBUKZQUPZCDRZFUWDUQOZR
[encoded data, 4320 characters]
      WUNVUAYPYRVUBVUAYSWMWVDYOADIPUWOMWJUVKUVLGVUCUVQUVMUVNXKUVO $.

    $( A sequence of functions converges uniformly iff it is uniformly Cauchy,
       which is to say that for every ` 0 < x ` there is a ` j ` such that for
       all ` j <_ k , m ` the functions ` F ( k ) ` and ` F ( m ) ` are
       uniformly within ` x ` of each other on ` S ` .  (Contributed by Mario
       Carneiro, 1-Mar-2015.) $)
    ulmcau2 $p |- ( ph -> ( F e. dom ( ~~>u ` S ) <->
      A. x e. RR+ E. j e. Z A. k e. ( ZZ>= ` j ) A. m e. ( ZZ>= ` k )
      A. z e. S ( abs ` ( ( ( F ` k ) ` z ) - ( ( F ` m ) ` z ) ) ) < x ) ) $=
      ( cfv cv cmin co wral culm cdm wcel cabs clt wbr cuz crp ulmcau ulmcaulem
      wrex bitrd ) AHDUAPUBUCCQZFQZHPPZUMEQZHPPRSUDPBQZUEUFCDTFUPUGPZTEKUKBUHTU
      OUMGQHPPRSUDPUQUEUFCDTGUNUGPTFURTEKUKBUHTABCDEFHIJKLMNOUIABCDEFGHIJKLMNOU
      JUL $.
  $}

  ${
    $d j k m r z A $.  $d j k m r z G $.  $d j k m r z M $.  $d j k r x z T $.
    $d j k m r x z ph $.  $d j k m r x z S $.  $d j k m r x z Z $.
    ulmss.z $e |- Z = ( ZZ>= ` M ) $.
    ulmss.t $e |- ( ph -> T C_ S ) $.
    ulmss.a $e |- ( ( ph /\ x e. Z ) -> A e. W ) $.
    ulmss.u $e |- ( ph -> ( x e. Z |-> A ) ( ~~>u ` S ) G ) $.
    $( A uniform limit of functions is still a uniform limit if restricted to a
       subset.  (Contributed by Mario Carneiro, 3-Mar-2015.) $)
    ulmss $p |- ( ph -> ( x e. Z |-> ( A |` T ) ) ( ~~>u ` T ) ( G |` T ) ) $=
      ( vz vk cfv wral wcel wa cvv vr vj vm cmpt culm wbr cres cv cmin cabs clt
      co cuz wrex crp wi uztrn2 wss adantr ssralv wceq wb fvres ad2antll simprl
      syl adantrr resexg eqid fvmpt2 syl2anc fveq1d 3eqtr4d ralrimivva nfv nfcv
      nffvmpt1 nffv nfeq nfral fveq2 eqeq12d cbvral sylib r19.21bi oveq1 fveq2d
      ralbidv breq1d ralimi ralbi 3syl sylibrd sylan2 anassrs ralimdva reximdva
      ralimdv cc cmap wf cz ulmf cdm dmmptss syl6eqssr uzid adantl ssel eluzel2
      fdm syl6 syl5com syl5 rexlimdva mpd wfn crn ralrimiva fnmpt frn rexlimivw
      eleq2s df-f eqidd ulmcl ulmscl ulm2 fmpt sylibr elmapi fssresd cnex ssexd
      sylanbrc elmapg sylancr mpbird fmptd 3imtr4d ) ABICUDZFDUEPUFZBICEUGZUDZF
      EUGZEUEPUFZMANUHZOUHZUUAPZPZUUGFPZUIULZUJPZUAUHZUKUFZNDQZOUBUHZUMPZQZUBIU
      NZUAUOQUUGUUHUUDPZPZUUKUIULZUJPZUUNUKUFZNEQZOUURQZUBIUNZUAUOQUUBUUFAUUTUV
      HUAUOAUUSUVGUBIAUUQIRZSUUPUVFOUURAUVIUUHUURRZUUPUVFUPZUVIUVJSAUUHIRZUVKGU
      UHUUQIJUQAUVLSZUUPUUONEQZUVFUVMEDURZUUPUVNUPAUVOUVLKUSUUONEDUTVFUVMUVBUUJ
      VAZNEQZUVEUUOVBZNEQUVFUVNVBAUVQOIAUUGBUHZUUDPZPZUUGUVSUUAPZPZVAZNEQZBIQUV
      QOIQAUWDBNIEAUVSIRZUUGERZSSZUUGUUCPZUUGCPZUWAUWCUWGUWIUWJVAAUWFUUGECVCVDU
      WHUUGUVTUUCUWHUWFUUCTRZUVTUUCVAAUWFUWGVEZUWHCHRZUWKAUWFUWMUWGLVGZCEHVHVFB
      IUUCTUUDUUDVIZVJVKVLUWHUUGUWBCUWHUWFUWMUWBCVAUWLUWNBICHUUAUUAVIZVJVKVLVMV
      NUWEUVQBOIUWEOVOUVPBNEBEVPBUVBUUJBUUGUVABIUUCUUHVQBUUGVPZVRBUUGUUIBICUUHV
      QUWQVRVSVTUVSUUHVAZUWDUVPNEUWRUWAUVBUWCUUJUWRUUGUVTUVAUVSUUHUUDWAVLUWRUUG
      UWBUUIUVSUUHUUAWAVLWBWHWCWDWEUVPUVRNEUVPUVDUUMUUNUKUVPUVCUULUJUVBUUJUUKUI
      WFWGWIWJUVEUUONEWKWLWMWNWOWPWQWRAUANUUKUUJDUBOUUAFGTIJAUCUHZUMPZWSDWTULZU
      UAXAZUCXBUNZGXBRZAUUBUXCMDUCUUAFXCVFZAUXBUXDUCXBUXBUWTIURZAUWSXBRZSZUXDUX
      BUWTUUAXDIUWTUXAUUAXKBICUUAUWPXEXFUXHUWSUWTRZUXFUXDUXGUXIAUWSXGXHUXFUXIUW
      SIRUXDUWTIUWSXIUXDUWSGUMPIGUWSXJJYCXLXMXNXOXPZAUUAIXQZUUAXRUXAURZIUXAUUAX
      AZAUWMBIQUXKAUWMBILXSBICUUAHUWPXTVFAUXCUXLUXEUXBUXLUCXBUWTUXAUUAYAYBVFIUX
      AUUAYDYOZAUVLUUGDRZSSUUJYEAUXOSUUKYEAUUBDWSFXAMDUUAFYFVFZAUUBDTRMDUUAFYGV
      FZYHAUANUUKUVBEUBOUUDUUEGTIJUXJABIUUCWSEWTULZUUDAUWFSZUUCUXRRZEWSUUCXAZUX
      SDWSECUXSCUXARZDWSCXAAUYBBIAUXMUYBBIQUXNBIUXACUUAUWPYIYJWECWSDYKVFAUVOUWF
      KUSYLUXSWSTRETRZUXTUYAVBYMAUYCUWFAEDTUXQKYNZUSWSEUUCTTYPYQYRUWOYSAUVLUWGS
      SUVBYEUWGUUGUUEPUUKVAAUUGEFVCXHADWSEFUXPKYLUYDYHYTXP $.
  $}

  ${
    $d j k x z F $.  $d j k x y z G $.  $d j k x z ph $.  $d j k x y z S $.
    $d j k z M $.  $d j k x z Z $.
    ulmbdd.z $e |- Z = ( ZZ>= ` M ) $.
    ulmbdd.m $e |- ( ph -> M e. ZZ ) $.
    ulmbdd.f $e |- ( ph -> F : Z --> ( CC ^m S ) ) $.
    ulmbdd.b $e |- ( ( ph /\ k e. Z ) ->
      E. x e. RR A. z e. S ( abs ` ( ( F ` k ) ` z ) ) <_ x ) $.
    ulmbdd.u $e |- ( ph -> F ( ~~>u ` S ) G ) $.
    $( A uniform limit of bounded functions is bounded.  (Contributed by Mario
       Carneiro, 27-Feb-2015.) $)
    ulmbdd $p |- ( ph -> E. x e. RR A. z e. S ( abs ` ( G ` z ) ) <_ x ) $=
      ( cfv c1 wbr cle cr wa vj vy cv cmin co cabs clt wral cuz wrex wcel eqidd
      crp 1rp a1i ulmi r19.2uz wi r19.26 caddc peano2re adantl cc wf culm ulmcl
      syl ad3antrrr simprl ffvelrnd abscld cmap simpllr elmapi readdcld pncan3d
      subcld adantr fveq2d abstrid eqbrtrrd 1re simprrl abssubd simprrr eqbrtrd
      simplr ltle sylancl le2addd letrd expr ralimdva wceq breq2 ralbidv rspcev
      mpd syl6an syl5bir expd rexlimdva cbvrexv syl6ib syl5 ) ACUCZEUCZFOZOZXFG
      OZUDUEUFOZPUGQZCDUHZEUAUCUIOUHUAIUJZXJUFOZBUCZRQZCDUHZBSUJZACXJXIPDUAEFGH
      IJKLAXGIUKZXFDUKZTTXIULAYATXJULNPUMUKAUNUOUPXNXMEIUJAXSXMUAEHIJUQAXMXSEIA
      XTTZXMXOUBUCZRQZCDUHZUBSUJZXSYBXIUFOZXPRQZCDUHZBSUJXMYFURZMYBYIYJBSYBXPSU
      KZTZYIXMYFYIXMTYHXLTZCDUHZYLYFYHXLCDUSYLXPPUTUEZSUKZYNXOYORQZCDUHZYFYKYPY
      BXPVAVBZYLYMYQCDYLYAYMYQYLYAYMTZTZXOYGXJXIUDUEZUFOZUTUEZYOUUAXJUUADVCXFGA
      DVCGVDZXTYKYTAFGDVEOQUUENDFGVFVGVHYLYAYMVIZVJZVKUUAYGUUCUUAXIUUADVCXFXHUU
      AXHVCDVLUEZUKDVCXHVDUUAIUUHXGFAIUUHFVDXTYKYTLVHAXTYKYTVMVJXHVCDVNVGUUFVJZ
      VKZUUAUUBUUAXJXIUUGUUIVQZVKZVOYLYPYTYSVRUUAXIUUBUTUEZUFOXOUUDRUUAUUMXJUFU
      UAXIXJUUIUUGVPVSUUAXIUUBUUIUUKVTWAUUAYGUUCXPPUUJUULYBYKYTWGPSUKZUUAWBUOYL
      YAYHXLWCUUAUUCPUGQZUUCPRQZUUAUUCXKPUGUUAXJXIUUGUUIWDYLYAYHXLWEWFUUAUUCSUK
      UUNUUOUUPURUULWBUUCPWHWIWRWJWKWLWMYEYRUBYOSYCYOWNYDYQCDYCYOXORWOWPWQWSWTX
      AXBWRYEXRUBBSYCXPWNYDXQCDYCXPXORWOWPXCXDXBXEWR $.
  $}

  ${
    $d j k w z F $.  $d j k w x y z G $.  $d j k w x y z ph $.  $d j k w z Z $.
    $d j k w M $.  $d j k w x y z S $.
    ulmcn.z $e |- Z = ( ZZ>= ` M ) $.
    ulmcn.m $e |- ( ph -> M e. ZZ ) $.
    ulmcn.f $e |- ( ph -> F : Z --> ( S -cn-> CC ) ) $.
    ulmcn.u $e |- ( ph -> F ( ~~>u ` S ) G ) $.
    $( A uniform limit of continuous functions is continuous.  (Contributed by
       Mario Carneiro, 27-Feb-2015.) $)
    ulmcn $p |- ( ph -> G e. ( S -cn-> CC ) ) $=
      ( vw cc co wcel cfv clt wbr wi wa caddc vx vz vy vk vj ccncf wf cmin cabs
      cv wral crp wrex culm ulmcl syl c2 cdiv cuz cz adantr cmap wss cncff cnex
      cvv wb cncfrss ssexg sylancl elmapg sylancr ssriv eqidd rphalfcl ad2antll
      mpbird fss rphalfcld ulmi r19.2uz simplrl weq fveq2 oveq12d fveq2d breq1d
      rspcv ffvelrnda cncfi ad2antrr r19.26 cr simplr ffvelrnd elmapi ad3antrrr
      syl3anc subcld abscld ffvelrn sylancom rpred lt2add syl22anc recnd breq2d
      2halvesd readdcld rpre abs3difd addcomd breqtrd abssubd leadd2dd breqtrrd
      cle oveq1d addassd letrd lelttr mpand sylbid syld expd expdimp imp imim2d
      an32s expimpd ralimdva syl5bir reximdv mpd mpdd rexlimdva syl5 ralrimivva
      exp31 uzid syl6eleqr ssid elcncf2 mpbir2and ) ADBLUFMZNZBLDUGZKUJZUAUJZUH
      MUIOUBUJPQZUUHDOZUUIDOZUHMZUIOZUCUJZPQZRZKBUKZUBULUMZUCULUKUABUKZACDBUNOQ
      ZUUGJBCDUOUPZAUUSUAUCBULAUUIBNZUUOULNZSZSZUUHUDUJZCOZOZUUKUHMZUIOZUUOUQUR
      MZUQURMZPQZKBUKZUDUEUJUSOUKUEFUMZUUSUVFKUUKUVIUVMBUEUDCDEFGAEUTNZUVEHVAAF
      LBVBMZCUGZUVEAFUUECUGZUUEUVRVCUVSIUAUUEUVRUUIUUENZUUIUVRNZBLUUIUGZBLUUIVD
      UWALVFNZBVFNZUWBUWCVGVEUWABLVCZUWDUWEBLUUIVHVEBLVFVIVJLBUUIVFVFVKVLVQVMFU
      UEUVRCVRVJVAZUVFUVGFNZUUHBNZSSUVIVNUVFUWISUUKVNAUVAUVEJVAUVFUVLUVDUVLULNZ
      AUVCUUOVOVPZVSVTUVPUVOUDFUMUVFUUSUVOUEUDEFGWAUVFUVOUUSUDFUVFUWHSZUVOUUIUV
      HOZUULUHMZUIOZUVMPQZUUSUWLUVCUVOUWPRAUVCUVDUWHWBZUVNUWPKUUIBKUAWCZUVKUWOU
      VMPUWRUVJUWNUIUWRUVIUWMUUKUULUHUUHUUIUVHWDUUHUUIDWDWEWFWGWHUPUWLUVOUWPUUS
      UWLUVOSUWPSZUUJUVIUWMUHMZUIOZUVLPQZRZKBUKZUBULUMZUUSUWLUXEUVOUWPUWLUVHUUE
      NUVCUWJUXEUVFFUUEUVGCAUVTUVEIVAWIUWQUVFUWJUWHUWKVAZUBKBLUUIUVLUVHWJWRWKUW
      SUXDUURUBULUWLUWPUVOUXDUURRUWLUWPSZUVOUXDUURUVOUXDSUVNUXCSZKBUKUXGUURUVNU
      XCKBWLUXGUXHUUQKBUXGUWISZUVNUXCUUQUXIUVNSUXBUUPUUJUXIUVNUXBUUPRZUWLUWIUWP
      UVNUXJRUWLUWISZUWPUVNUXJUXKUWPUVNSZUWOUVKTMZUVMUVMTMZPQZUXJUXKUWOWMNUVKWM
      NUVMWMNZUXPUXLUXORUXKUWNUXKUWMUULUXKBLUUIUVHUXKUVHUVRNBLUVHUGZUXKFUVRUVGC
      UVFUVSUWHUWIUWGWKUVFUWHUWIWNWOUVHLBWPUPZUWLUVCUWIUWQVAZWOZUXKBLUUIDAUUGUV
      EUWHUWIUVBWQZUXSWOZWSWTZUXKUVJUXKUVIUUKUWLUWIUXQUVILNUXRBLUUHUVHXAXBZUWLU
      WIUUGUUKLNUYABLUUHDXAXBZWSWTZUXKUVMUXKUVLUWLUWJUWIUXFVAZVSXCZUYHUWOUVKUVM
      UVMXDXEUXKUXOUXMUVLPQZUXJUXKUXNUVLUXMPUXKUVLUXKUVLUXKUVLUYGXCZXFXHXGUXKUY
      IUXBUUPUXKUYIUXBSZUXMUXATMZUVLUVLTMZPQZUUPUXKUXMWMNUXAWMNUVLWMNZUYOUYKUYN
      RUXKUWOUVKUYCUYFXIZUXKUWTUXKUVIUWMUYDUXTWSWTZUYJUYJUXMUXAUVLUVLXDXEUXKUYN
      UYLUUOPQZUUPUXKUYMUUOUYLPUXKUUOUXKUUOUVFUUOWMNZUWHUWIUVDUYSAUVCUUOXJVPWKZ
      XFXHXGUXKUUNUYLXQQZUYRUUPUXKUUNUWOUUKUWMUHMZUIOZTMZUYLUXKUUMUXKUUKUULUYEU
      YBWSWTZUXKUWOVUCUYCUXKVUBUXKUUKUWMUYEUXTWSWTZXIUXKUXMUXAUYPUYQXIZUXKUUNVU
      CUWOTMVUDXQUXKUUKUULUWMUYEUYBUXTXKUXKVUCUWOUXKVUCVUFXFUXKUWOUYCXFZXLXMUXK
      VUDUWOUVKUXATMZTMUYLXQUXKVUCVUIUWOVUFUXKUVKUXAUYFUYQXIUYCUXKVUCUUKUVIUHMU
      IOZUXATMVUIXQUXKUUKUWMUVIUYEUXTUYDXKUXKVUJUVKUXATUXKUUKUVIUYEUYDXNXRXMXOU
      XKUWOUVKUXAVUHUXKUVKUYFXFUXKUXAUYQXFXSXPXTUXKUUNWMNUYLWMNUYSVUAUYRSUUPRVU
      EVUGUYTUUNUYLUUOYAWRYBYCYDYEYCYDYFYIYGYHYJYKYLYFYIYMYNYSYOYPYQYNYRAUWFLLV
      CUUFUUGUUTSVGAECOZUUENUWFAFUUEECIAEEUSOZFAUVQEVULNHEYTUPGUUAWOBLVUKVHUPLU
      UBUAUCUBKBLDUUCVJUUD $.
  $}

  ${
    $d j k m n s u v w x y z F $.  $d n r s u v w y z G $.  $d k m n w x y N $.
    $d k n y z C $.  $d j n r s u v w y z H $.  $d j k n x M $.  $d n w y ps $.
    $d j k m n r s u v w x y z ph $.  $d j k m n s u v w x y z S $.  $d y U $.
    $d m n x y R $.  $d j k m n r s u v w x y z X $.  $d k n y z Y $.
    $d j k m n s u v w x y z Z $.
    ulmdv.z $e |- Z = ( ZZ>= ` M ) $.
    ulmdv.s $e |- ( ph -> S e. { RR , CC } ) $.
    ulmdv.m $e |- ( ph -> M e. ZZ ) $.
    ulmdv.f $e |- ( ph -> F : Z --> ( CC ^m X ) ) $.
    ulmdv.g $e |- ( ph -> G : X --> CC ) $.
    ulmdv.l $e |- ( ( ph /\ z e. X ) ->
      ( k e. Z |-> ( ( F ` k ) ` z ) ) ~~> ( G ` z ) ) $.
    ulmdv.u $e |- ( ph ->
      ( k e. Z |-> ( S _D ( F ` k ) ) ) ( ~~>u ` X ) H ) $.
    ${
      ulmdvlem1.c $e |- ( ( ph /\ ps ) -> C e. X ) $.
      ulmdvlem1.r $e |- ( ( ph /\ ps ) -> R e. RR+ ) $.
      ulmdvlem1.u $e |- ( ( ph /\ ps ) -> U e. RR+ ) $.
      ulmdvlem1.v $e |- ( ( ph /\ ps ) -> W e. RR+ ) $.
      ulmdvlem1.l $e |- ( ( ph /\ ps ) -> U < W ) $.
      ulmdvlem1.b $e |- ( ( ph /\ ps ) ->
        ( C ( ball ` ( ( abs o. - ) |` ( S X. S ) ) ) U ) C_ X ) $.
      ulmdvlem1.a $e |- ( ( ph /\ ps ) -> ( abs ` ( Y - C ) ) < U ) $.
      ulmdvlem1.n $e |- ( ( ph /\ ps ) -> N e. Z ) $.
      ulmdvlem1.1 $e |- ( ( ph /\ ps ) -> A. m e. ( ZZ>= ` N )
        A. x e. X ( abs ` ( ( ( S _D ( F ` N ) ) ` x ) -
          ( ( S _D ( F ` m ) ) ` x ) ) ) < ( ( R / 2 ) / 2 ) ) $.
      ulmdvlem1.2 $e |- ( ( ph /\ ps ) ->
        ( abs ` ( ( ( S _D ( F ` N ) ) ` C ) - ( H ` C ) ) ) < ( R / 2 ) ) $.
      ulmdvlem1.y $e |- ( ( ph /\ ps ) -> Y e. X ) $.
      ulmdvlem1.3 $e |- ( ( ph /\ ps ) -> Y =/= C ) $.
      ulmdvlem1.4 $e |- ( ( ph /\ ps ) ->
      ( ( abs ` ( Y - C ) ) < W ->
        ( abs ` ( ( ( ( ( F ` N ) ` Y ) - ( ( F ` N ) ` C ) ) / ( Y - C ) ) -
          ( ( S _D ( F ` N ) ) ` C ) ) ) < ( ( R / 2 ) / 2 ) ) ) $.
      $( Lemma for ~ ulmdv .  (Contributed by Mario Carneiro, 3-Mar-2015.) $)
      ulmdvlem1 $p |- ( ( ph /\ ps ) -> ( abs `
        ( ( ( ( G ` Y ) - ( G ` C ) ) / ( Y - C ) ) - ( H ` C ) ) ) < R ) $=
        ( vn vy wa cfv cmin co cdiv cdv cc adantr ffvelrnd subcld cdm wceq wcel
        wf cv cmpt fveq2 oveq2d eqid ovex syl wfn wbr cvv wral syl2anc eqeltrrd
        fvmpt elmapi wss cr sseldd divcld rpred cabs caddc abscld rehalfcld clt
        c2 cle oveq1d eqtrd fveq2d eqtr3d cxp cuz cz cli mpteq2dv breq12d rspcv
        cmul sylc fvex a1i weq fveq1d adantl ffvelrnda eqeltrd eqtr4d climsubc1
        mptex oveq12d recnd syldan ad2antrr fnfvof syl22anc eqbrtrd cxmt mpbird
        sylan ffn fvexd feqmptd breq1d rspccva cmap culm rgenw fnmpt mp1i ulmf2
        fdm dvbsss syl6eqssr cpr recnprss sstrd subne0d ulmcl readdcld abs3difd
        sub4d divsubdird absdivd csn syl6eleq eluzelz ralrimiva eqeltri climsub
        climabs remulcld eqimss2i climconst2 uztrn2 fvconst2 ulmscl ccom ovresd
        cof cbl cnmetdval cxr wb cnxmet xmetres2 sylancr rpxrd elbl3 crp blcntr
        cres syl3anc fmptd offval2 feq1d dvmptsub dmmpti syl6eq sseqtr4d sselda
        jca dmeqd fvmpt2 mpan2 sylan9eq dvmptcl abssubd ralbidv dvlip2 eqbrtrrd
        ltled mpdan 3brtr4d absrpcld ledivmul2d lttrd leltaddd 2halvesd breqtrd
        climle mpd lelttrd abs3lemd ) ABVBZRLVCZELVCZVDVEZREVDVEZVFVEZEMVCEGOKV
[encoded data, 6000 characters]
        LVWBYGUXNUXOUXRUPUXS $.
    $}

    $( Lemma for ~ ulmdv .  (Contributed by Mario Carneiro, 8-May-2015.) $)
    ulmdvlem2 $p |- ( ( ph /\ k e. Z ) -> dom ( S _D ( F ` k ) ) = X ) $=
      ( wcel cfv cc cv wa cdv co cmap cdm wceq cmpt wral wfn culm wbr cvv rgenw
      ovex eqid fnmpt mp1i ulmf2 syl2anc fmpt sylibr r19.21bi elmapi fdm 3syl
      wf ) ADUAZJRUBCVHESZUCUDZTIUEUDZRZITVJVGVJUFIUGAVLDJAJVKDJVJUHZVGZVLDJUIA
      VMJUJZVMGIUKSULVNVJUMRZDJUIVOAVPDJCVIUCUOUNDJVJVMUMVMUPZUQURQIVMGJUSUTDJV
      KVJVMVQVAVBVCVJTIVDITVJVEVF $.

    $( Lemma for ~ ulmdv .  (Contributed by Mario Carneiro, 8-May-2015.)
       (Proof shortened by Mario Carneiro, 28-Dec-2016.) $)
    ulmdvlem3 $p |- ( ( ph /\ z e. X ) -> z ( S _D G ) ( H ` z ) ) $=
      ( wcel wa cfv vy vv vu vr vx vn vm vj vs vw cv cdv wbr ccnfld ctopn crest
      co cnt csn cdif cmin cdiv cmpt climc wss wral cz uzid syl6eleqr ulmdvlem2
      cuz syl cdm cc cpr recnprss adantr cmap ffvelrnda elmapi dvbsss syl6eqssr
      cr wf eqid dvbssntr ralrimiva wceq biidd rspcv sylc cabs clt crp rphalfcl
      wi wrex c2 adantl sylancr cvv syl2anc mpbid uztrn2 weq fveq2 oveq2d fvmpt
      ovex fveq1d oveq12d fveq2d breq1d ralbidv ad2antrr fvex simplr simpllr wb
      ad3antrrr eldv simprd dvlem fmptd ssdifssd sseldd oveq1d imbi2d w3a anass
      ellimc3 cli simpld anassrs sylanb cxmt cnxmet ctop ctopon mpbir2and ulmcl
      eqsstr3d sselda wne culm wrel ulmrel releldm ulmscl wfn rgenw fnmpt ulmf2
      mp1i ulmcau2 ad2ant2lr simprr 2ralbidva rexbidva breq2 rexralbidv eqeltri
      2ralbidv mptex eqtr4d ulmclm climi2 rexanuz2 r19.2uz sylbir eqeltrrd 3syl
      a1i eleqtrrd wfun dvfg ffun funfvbrb 4syl sstrd oveq1 breqan12rd ralbidva
      fdm id rexbidv adantrr ccom cxp cbl df-3an mpteq2dv breq12d rspccva sylan
      cres simprll simprlr simprr3 simplll simpr3 simprr1 simprr2 simpr1 simpr2
      eldifad mpand ulmdvlem1 sylan2br 3exp2 imp sylibrd ralimdva impr xmetres2
      an32s cmopn cnfldtop resttop cnfldtopon resttopon toponuni sseqtrd ntrss2
      cuni eqssd isopn3 mpbird cnfldtopn metrest eleqtrd simprl mopni3 syl31anc
      reximddv rexlimddv rexlimdvaa syl5 mp2and simpr ) ABUKZIRZSZVUAVUAGTZCFUL
[encoded data, 5120 characters]
      AYT $.

    $( If ` F ` is a sequence of differentiable functions on ` X ` which
       converge pointwise to ` G ` , and the derivatives of ` F ( n ) `
       converge uniformly to ` H ` , then ` G ` is differentiable with
       derivative ` H ` .  (Contributed by Mario Carneiro, 27-Feb-2015.) $)
    ulmdv $p |- ( ph -> ( S _D G ) = H ) $=
      ( cc wcel syl cdv co wf wfn cdm cr cpr dvfg wss recnprss wral cuz cz uzid
      cfv syl6eleqr cv wa ulmdvlem2 dvbsss syl6eqssr ralrimiva wceq biidd rspcv
      sylc dvbss wbr ulmdvlem3 vex fvex breldm ssrdv eqssd feq2d mpbid ffn cmpt
      ex culm ulmcl wfun ffun adantr funbrfv eqfnfvd ) ABICFUAUBZGAIRWGUCZWGIUD
      AWGUEZRWGUCZWHACUFRUGSZWJLCFUHTZAWIIRWGAWIIAICFAWKCRUILCUJTOAHJSICUIZDJUK
      WMAHHULUOZJAHUMSHWNSMHUNTKUPAWMDJADUQZJSURICWOEUOZUAUBZUECABCDEFGHIJKLMNO
      PQUSCWPUTVAVBWMWMDHJWOHVCWMVDVEVFVGABIWIABUQZISZWRWISZAWSURZWRWRGUOZWGVHZ
      WTABCDEFGHIJKLMNOPQVIZWRXBWGBVJWRGVKVLTVSVMVNVOVPIRWGVQTAIRGUCZGIUDADJWQV
      RZGIVTUOVHXEQIXFGWATIRGVQTXAWGWBZXCWRWGUOXBVCAXGWSAWJXGWLWIRWGWCTWDXDWRXB
      WGWEVFWF $.
  $}

  ${
    $d i j k n r x z F $.  $d i j k m n r x y z M $.  $d i j k m n r x y z N $.
    $d i j k m n r x y z ph $.  $d n x y z T $.  $d i j k m n r x y z Z $.
    $d i j k n r x y z S $.
    mtest.z $e |- Z = ( ZZ>= ` N ) $.
    mtest.n $e |- ( ph -> N e. ZZ ) $.
    mtest.s $e |- ( ph -> S e. V ) $.
    mtest.f $e |- ( ph -> F : Z --> ( CC ^m S ) ) $.
    mtest.m $e |- ( ph -> M e. W ) $.
    mtest.c $e |- ( ( ph /\ k e. Z ) -> ( M ` k ) e. RR ) $.
    mtest.l $e |- ( ( ph /\ ( k e. Z /\ z e. S ) ) ->
      ( abs ` ( ( F ` k ) ` z ) ) <_ ( M ` k ) ) $.
    mtest.d $e |- ( ph -> seq N ( + , M ) e. dom ~~> ) $.
    $( The Weierstrass M-test.  If ` F ` is a sequence of functions which are
       uniformly bounded by the convergent sequence ` M ( k ) ` , then the
       series generated by the sequence ` F ` converges uniformly.
       (Contributed by Mario Carneiro, 3-Mar-2015.) $)
    mtest $p |- ( ph -> seq N ( oF + , F ) e. dom ( ~~>u ` S ) ) $=
      ( wcel cc vi vj vr vn caddc cof cseq culm cfv cdm cv cmin co cabs clt wbr
      wral cuz wrex crp cz cli climcau syl2anc wa wi cle c1 cfz csu cmap wf wfn
      seqfn syl fneq2i sylibr cmpt elex adantr simpr syl6eleq syl6eleqr ffvelrn
      cvv elfzuz syl2an elmapi feqmptd wceq adantl fveq2 fveq1d eqid fvex fvmpt
      mpteq2dv eqtr4d seqof ffvelrnda an32s fmptd serf wb elmapg sylancr mpbird
      weq cnex eqeltrd ralrimiva ffnfv sylanbrc ad2antrr uztrn2 ffvelrnd simprl
      subcld abscld fzfid cun ssun2 simprr adantlr syldan cr recnd fvmpt2 mpan2
      sylan9eq oveq12d fsumser fsumsplit eqcomd fsumcl subaddd fveq2d ralimdva
      eqidd letrd elfzuzb fzsplit sselda fsumrecl serfre resubcld sylan2 rspccv
      syl5sseqr eqeq12d sylc cin eluzelre fzdisj 3eqtr2d fsumabs eqbrtrd simpll
      c0 ltp1d anass1rs fsumle eqtr3d eqeltrrd cc0 absge0d fsumge0 absidd eqtrd
      0red breqtrrd simpllr rpred lelttr syl3anc ralrimdva anassrs reximdva mpd
      mpand ulmcau ) AUEUFZEGUGZCUHUIUJSBUKZUAUKZUWCUIZUIZUWDUBUKZUWCUIZUIZULUM
      ZUNUIZUCUKZUOUPZBCUQZUAUWHURUIZUQZUBJUSZUCUTUQZAUWEUEFGUGZUIZUWHUWTUIZULU
      MZUNUIZUWMUOUPZUAUWPUQZUBJUSZUCUTUQZUWSAGVASZUWTVBUJSUXHLRUCUBUAUWTGJKVCV
      DAUXGUWRUCUTAUWMUTSZVEZUXFUWQUBJUXKUWHJSZVEUXEUWOUAUWPUXKUXLUWEUWPSZUXEUW
      OVFUXKUXLUXMVEZVEZUXEUWNBCUXOUWDCSZVEZUWLUXDVGUPZUXEUWNUXQUWLUWHVHUEUMZUW
      EVIUMZUWDDUKZEUIZUIZUNUIZDVJZUXDUXQUWKUXQUWGUWJUXOCTUWDUWFUXOUWFTCVKUMZSZ
      CTUWFVLUXOJUYFUWEUWCAJUYFUWCVLZUXJUXNAUWCJVMZUYGUAJUQUYHAUWCGURUIZVMZUYIA
      UXIUYKLUWBEGVNVOJUYJUWCKVPVQAUYGUAJAUWEJSZVEZUWFBCUWEUEUDJUWDUDUKZEUIZUIZ
      VRZGUGZUIZVRZUYFUYMDBCUEEUYQGUWEWEACWESZUYLACHSVUAMCHVSVOVTZUYMUWEJUYJAUY
      LWAKWBUYMUYAGUWEVIUMZSZVEZUYBBCUYCVRBCUYAUYQUIZVRVUEBCTUYBVUEUYBUYFSZCTUY
      BVLZUYMJUYFEVLZUYAJSZVUGVUDAVUIUYLNVTVUDUYAUYJJUYAGUWEWFKWCZJUYFUYAEWDZWG
      UYBTCWHZVOWIVUEBCVUFUYCVUEVUJVUFUYCWJZVUDVUJUYMVUKWKUDUYAUYPUYCJUYQUDDXHU
      WDUYOUYBUYNUYAEWLWMUYQWNZUWDUYBWOWPZVOWQWRWSZUYMUYTUYFSZCTUYTVLZUYMBCUYST
      UYTAUXPUYLUYSTSAUXPVEZJTUWEUYRVUTUAUYQGJKAUXIUXPLVTVUTJTUWEUYQVUTUDJUYPTU
      YQAUYNJSZUXPUYPTSAVVAVEZCTUWDUYOVVBUYOUYFSCTUYOVLAJUYFUYNENWTUYOTCWHVOWTX
      AVUOXBWTXCWTXAUYTWNZXBUYMTWESVUAVURVUSXDXIVUBTCUYTWEWEXEXFXGXJXKUAJUYFUWC
      XLXMZXNZUXNUYLUXKGUWEUWHJKXOZWKZXPUWFTCWHVOWTUXOCTUWDUWIUXOUWIUYFSCTUWIVL
      UXOJUYFUWHUWCVVEUXKUXLUXMXQZXPUWITCWHVOWTXRXSZUXQUXTUYDDUXQUXSUWEXTZUXQUY
      AUXTSZVEZUYCUXQVVKVUDUYCTSZUXOVVKVUDUXPUXOUXTVUCUYAUXOGUWHVIUMZUXTYAZUXTV
      UCUXTVVNYBUXOUWHVUCSZVUCVVOWJZUXOUWHUYJSZUXMVVPUXOUWHJUYJVVHKWBZUXKUXLUXM
      YCUWHGUWEUUAXMUWHGUWEUUBVOZUUIUUCZYDZUXOVUDUXPVVMUXOVUDVEZCTUWDUYBVWCVUGV
      UHUXOVUIVUJVUGVUDAVUIUXJUXNNXNZVUKVULWGVUMVOWTXAZYEZXSZUUDUXOUXDYFSZUXPUX
      OUXCUXOUXCUXOUXAUXBUXOJYFUWEUWTAJYFUWTVLUXJUXNADFGJKLPUUEXNZVVGXPUXOJYFUW
      HUWTVWIVVHXPUUFZYGXSVTZUXQUWLUXTUYCDVJZUNUIUYEVGUXQUWKVWLUNUXQUWKUYSUWHUY
      RUIZULUMVUCUYCDVJZVVNUYCDVJZULUMZVWLUXQUWGUYSUWJVWMULUXOUXPUWGUWDUYTUIZUY
      SUXOUWDUWFUYTAUXNUWFUYTWJZUXJUXNAUYLVWRVVFVUQUUGYDWMUXPUYSWESVWQUYSWJUWEU
      YRWOBCUYSWEUYTVVCYHYIYJUXOUXPUWJUWDBCVWMVRZUIZVWMUXOUWDUWIVWSUXOVWRUAJUQZ
      UXLUWIVWSWJZAVXAUXJUXNAVWRUAJVUQXKXNVVHVWRVXBUAUWHJUAUBXHZUWFUWIUYTVWSUWE
      UWHUWCWLVXCBCUYSVWMUWEUWHUYRWLWQUUJUUHUUKWMUXPVWMWESVWTVWMWJUWHUYRWOBCVWM
      WEVWSVWSWNYHYIYJYKUXQVWNUYSVWOVWMULUXQUYCDUYQGUWEUXQVUDVEVUJVUNVUDVUJUXQV
      UKWKVUPVOUXQUWEJUYJUXOUYLUXPVVGVTKWBVWEYLUXQUYCDUYQGUWHUXQUYAVVNSZVEVUJVU
      NVXDVUJUXQVXDUYAUYJJUYAGUWHWFKWCZWKVUPVOUXQUWHJUYJUXOUXLUXPVVHVTKWBUXOVXD
      UXPVVMUXOVXDVEZCTUWDUYBVXFVUGVUHUXOVUIVUJVUGVXDVWDVXEVULWGVUMVOWTXAZYLYKU
      XQVWPVWLWJVWOVWLUEUMZVWNWJUXQVWNVXHUXQVVNUXTUYCVUCDUXOVVNUXTUULUUSWJZUXPU
      XOUWHUXSUOUPVXIUXOUWHUXOVVRUWHYFSVVSGUWHUUMVOUUTGUWHUXSUWEUUNVOZVTUXOVVQU
      XPVVTVTUXQGUWEXTZVWEYMYNUXQVWNVWOVWLUXQVUCUYCDVXKVWEYOUXQVVNUYCDUXQGUWHXT
      VXGYOUXQUXTUYCDVVJVWFYOYPXGUUOYQUXQUXTUYCDVVJVWFUUPUUQUXQUYEUXTUYAFUIZDVJ
      ZUXDVGUXQUXTUYDVXLDVVJVWGUXOVVKVXLYFSZUXPUXOVVKVUDVXNVWAUXOAVUJVXNVUDAUXJ
      UXNUURZVUKPWGZYEYDZUXQVVKVUJUYDVXLVGUPZVVLVUDVUJVWBVUKVOUXOVUJUXPVXRUXKVU
      JUXPVEZVXRUXNAVXSVXRUXJQYDYDUVAYEZUVBUXQUXDVXMUNUIZVXMUXOUXDVYAWJUXPUXOUX
      CVXMUNUXOVUCVXLDVJZVVNVXLDVJZULUMZUXCVXMUXOVYBUXAVYCUXBULUXOVXLDFGUWEVWCV
      XLYSUXOUWEJUYJVVGKWBVWCVXLVXPYGZYLUXOVXLDFGUWHVXFVXLYSVVSVXFVXLUXOAVUJVXN
      VXDVXOVXEPWGYGZYLYKUXOVYDVXMWJVYCVXMUEUMZVYBWJUXOVYBVYGUXOVVNUXTVXLVUCDVX
      JVVTUXOGUWEXTZVYEYMYNUXOVYBVYCVXMUXOVUCVXLDVYHVYEYOUXOVVNVXLDUXOGUWHXTVYF
      YOUXOUXTVXLDUXOUXSUWEXTUXOVVKVUDVXLTSVWAVYEYEYOYPXGUVCZYQVTUXQVXMUXOVXMYF
      SUXPUXOUXCVXMYFVYIVWJUVDVTUXQUXTVXLDVVJVXQVVLUVEUYDVXLVVLUVJVWGVXQVVLUYCV
      WFUVFVXTYTUVGUVHUVIUVKYTUXQUWLYFSVWHUWMYFSUXRUXEVEUWNVFVVIVWKUXQUWMAUXJUX
      NUXPUVLUVMUWLUXDUWMUVNUVOUVTUVPUVQYRUVRYRUVSAUCBCUBUAUWCGHJKLMVVDUWAXG $.

    mtest.t $e |- ( ph -> seq N ( oF + , F ) ( ~~>u ` S ) T ) $.
    $( Given the hypotheses of the Weierstrass M-test, the convergent function
       of the sequence is uniformly bounded.  (Contributed by Mario Carneiro,
       9-Jul-2017.) $)
    mtestbdd $p |- ( ph -> E. x e. RR A. z e. S ( abs ` ( T ` z ) ) <_ x ) $=
      ( vm vy vn vj cv caddc cseq cfv cabs cle wbr wral cr wrex cz wcel cli cdm
      cc wa recnd serf ffvelrnda ralrimiva climbdd syl3anc cof adantr co wf wfn
      cmap culm cuz seqfn syl fneq2i sylibr ulmf2 syl2anc simplrl cfz cmpt wceq
      csu weq fveq2 mpteq2dv seqeq3d fveq1d eqid fvmpt adantl ad3antrrr feqmptd
      fvex elmapi mpteq2dva eqtrd simplr syl6eleq elfzuz syl6eleqr ssriv anasss
      wss a1i seqof2 ffvelrnd fmptd sylan2 eqeltrrd fsumser fveq2d fzfid fsumcl
      3eqtr4d abscld fsumrecl fsumabs simp-4l fsumle leabsd eqidd simprr breq1d
      syl12anc rspccva sylan eqbrtrd letrd ralbidv rspcev ulmbdd rexlimddv
      breq2 ) AUBUFZUGHIUHZUIZUJUIZUCUFZUKULZUBLUMZCUFZEUIUJUIBUFZUKULCDUMBUNUO
      UCUNAIUPUQZYSURUSUQYTUTUQZUBLUMUUDUCUNUONTAUUHUBLALUTYRYSAFHILMNAFUFZLUQZ
      VAUUIHUIZRVBZVCVDVEUCUBYSILMVFVGAUUBUNUQZUUDVAZVAZBCDUDUGVHZGIUHZEILMAUUG
      UUNNVIALUTDVMVJZUUQVKZUUNAUUQLVLZUUQEDVNUIULZUUSAUUQIVOUIZVLZUUTAUUGUVCNU
      UPGIVPVQLUVBUUQMVRVSUADUUQELVTWAVIUUOUDUFZLUQZVAZUUMUUEUVDUUQUIZUIZUJUIZU
      UBUKULZCDUMZUVIUUFUKULZCDUMZBUNUOAUUMUUDUVEWBZUVFUVJCDUVFUUEDUQZVAZUVIIUV
      DWCVJZUUEUUIGUIZUIZFWFZUJUIZUUBUKUVPUVHUVTUJUVPUUEBDUVDUGUELUUFUEUFZGUIZU
      IZWDZIUHZUIZWDZUIZUVDUGUELUUEUWCUIZWDZIUHZUIZUVHUVTUVOUWIUWMWEUVFBUUEUWGU
      WMDUWHBCWGZUVDUWFUWLUWNUWEUWKUGIUWNUELUWDUWJUUFUUEUWCWHWIWJWKUWHWLUVDUWLW
      QWMWNUVPUUEUVGUWHUVPUVGUVDUUPUELBDUWDWDZWDZIUHZUIUWHUVPUVDUUQUWQUVPGUWPUU
      PIUVPGUELUWCWDUWPUVPUELUURGALUURGVKUUNUVEUVOPWOZWPUVPUELUWCUWOUVPUWBLUQZV
      AZBDUTUWCUWTUWCUURUQDUTUWCVKUVPLUURUWBGUWRVDUWCUTDWRVQZWPWSWTWJWKUVPUEBDL
      UGIUVDJUTUWDADJUQUUNUVEUVOOWOUVPUVDLUVBUUOUVEUVOXAMXBZUVQLXGUVPFUVQLUUIUV
      QUQZUUIUVBLUUIIUVDXCMXDZXEXHUVPUWSUUFDUQUWDUTUQUWTDUTUUFUWCUXAVDXFXIWTWKU
      VPUVSFUWKIUVDUVPUXCVAZUUJUUIUWKUIZUVSWEUXCUUJUVPUXDWNZUEUUIUWJUVSLUWKUEFW
      GUUEUWCUVRUWBUUIGWHWKUWKWLZUUEUVRWQWMVQZUXBUXEUXFUVSUTUXIUXCUVPUUJUXFUTUQ
      UXDUVPLUTUUIUWKUVPUELUWJUTUWKUWTDUTUUEUWCUXAUVFUVOUWSXAXJUXHXKVDXLXMZXNXR
      XOUVPUWAUVQUVSUJUIZFWFZUUBUVPUVTUVPUVQUVSFUVPIUVDXPZUXJXQXSUVPUVQUXKFUXMU
      XEUVSUXJXSZXTZUVFUUMUVOUVNVIZUVPUVQUVSFUXMUXJYAUVPUXLUVQUUKFWFZUUBUXOUVPU
      VQUUKFUXMUXEAUUJUUKUNUQAUUNUVEUVOUXCYBZUXGRWAZXTZUXPUVPUVQUXKUUKFUXMUXNUX
      SUXEAUUJUVOUXKUUKUKULUXRUXGUVFUVOUXCXASYHYCUVPUXQUXQUJUIZUUBUXTUVPUXQUVPU
      XQUXTVBXSUXPUVPUXQUXTYDUVPUYAUVDYSUIZUJUIZUUBUKUVPUXQUYBUJUVPUUKFHIUVDUXE
      UUKYEUXBUXEAUUJUUKUTUQUXRUXGUULWAXNXOUVFUYCUUBUKULZUVOUUOUUDUVEUYDAUUMUUD
      YFUUCUYDUBUVDLUBUDWGZUUAUYCUUBUKUYEYTUYBUJYRUVDYSWHXOYGYIYJVIYKYLYLYLYKVE
      UVMUVKBUUBUNBUCWGUVLUVJCDUUFUUBUVIUKYQYMYNWAAUVAUUNUAVIYOYP $.
  $}

  ${
    $d k n z F $.  $d n z G $.  $d k n z ph $.  $d k n z S $.  $d k n z Z $.
    $d n M $.
    mbfulm.z $e |- Z = ( ZZ>= ` M ) $.
    mbfulm.m $e |- ( ph -> M e. ZZ ) $.
    mbfulm.f $e |- ( ph -> F : Z --> MblFn ) $.
    mbfulm.u $e |- ( ph -> F ( ~~>u ` S ) G ) $.
    $( A uniform limit of measurable functions is measurable.  (This is just a
       corollary of the fact that a pointwise limit of measurable functions is
       measurable, see ~ mbflim .)  (Contributed by Mario Carneiro,
       18-Mar-2015.) $)
    mbfulm $p |- ( ph -> G e. MblFn ) $=
      ( vz vk cv cfv cmpt cmbf cc wf syl wcel culm wbr ulmcl feqmptd cvv adantr
      vn wa cz cmap wfn ffn ulmf2 syl2anc simpr cuz fvex eqeltri mptex a1i wceq
      co fveq2 fveq1d eqid fvmpt eqcomd adantl ulmclm ffvelrnda elmapi eqeltrrd
      anasss mbflim eqeltrd ) ADKBKMZDNZOPAKBQDACDBUANUBZBQDRJBCDUCSUDAKBVPLMZC
      NZNZVQLEQFGHAVPBTZUHZVPBUGCDLFWAOZEUEFGAEUITWBHUFAFQBUJVBZCRZWBACFUKZVRWF
      AFPCRWGIFPCULSJBCDFUMUNZUFAWBUOWDUETWCLFWAFEUPNUEGEUPUQURUSUTUGMZFTZVPWIC
      NZNZWIWDNZVAWCWJWMWLLWIWAWLFWDVSWIVAVPVTWKVSWICVCVDWDVEVPWKUQVFVGVHAVRWBJ
      UFVIAVSFTZUHZVTKBWAOPWOKBQVTWOVTWETBQVTRAFWEVSCWHVJVTQBVKSZUDAFPVSCIVJVLA
      WNWBWAQTWOBQVPVTWPVJVMVNVO $.
  $}

  ${
    $d j k n r x z F $.  $d j k n r x z G $.  $d j k n r x z ph $.
    $d j k n x z M $.  $d j k n r x z S $.  $d j k n r x z Z $.
    itgulm.z $e |- Z = ( ZZ>= ` M ) $.
    itgulm.m $e |- ( ph -> M e. ZZ ) $.
    itgulm.f $e |- ( ph -> F : Z --> L^1 ) $.
    itgulm.u $e |- ( ph -> F ( ~~>u ` S ) G ) $.
    itgulm.s $e |- ( ph -> ( vol ` S ) e. RR ) $.
    $( A uniform limit of integrable functions is integrable.  (Contributed by
       Mario Carneiro, 3-Mar-2015.) $)
    iblulm $p |- ( ph -> G e. L^1 ) $=
      ( vx vz cfv c1 cibl wcel cc wa cmbf vk vj vr cv cmin co cabs clt wbr wral
      cuz wrex wfn culm cmap wf ffn syl ulmf2 syl2anc eqidd crp 1rp a1i r19.2uz
      ulmi cmpt adantr feqmptd ffvelrnda elmapi adantrr nncand mpteq2dva eqtr4d
      ulmcl eqeltrrd subcld cdm cvol cr cle cof cvv ulmscl offval2 iblmbf ssriv
      wss fss sylancl mbfulm mbfsub eqid dmmptd fveq2d eqeltrd 1re wi ltle wceq
      abscld fveq2 oveq12d ovex fvmpt adantl breq1d sylibrd impr raleqdv mpbird
      ralimdva breq2 ralbidv rspcev sylancr bddibl syl3anc iblsub rexlimddv ) A
      LUDZUAUDZCNZNZYBDNZUEUFZUGNZOUHUIZLBUJZDPQUAFAYJUAUBUDUKNUJUBFULYJUAFULAL
      YFYEOBUBUACDEFGHACFUMZCDBUNNUIZFRBUOUFZCUPAFPCUPZYKIFPCUQURJBCDFUSUTZAYCF
      QZYBBQZSSYEVAAYQSYFVAJOVBQAVCVDVFYJUBUAEFGVEURAYPYJSZSZDMBMUDZYDNZUUAYTDN
      ZUEUFZUEUFZVGZPYSDMBUUBVGUUEYSMBRDABRDUPZYRAYLUUFJBCDVPURZVHZVIZYSMBUUDUU
      BYSYTBQSZUUAUUBYSBRYTYDAYPBRYDUPZYJAYPSZYDYMQUUKAFYMYCCYOVJYDRBVKURZVLZVJ
      ZYSBRYTDUUHVJZVMVNVOYSMBUUAUUCRUUOYSYDMBUUAVGPYSMBRYDUUNVIZAYPYDPQZYJAFPY
      CCIVJVLZVQUUJUUAUUBUUOUUPVRZYSMBUUCVGZTQUVAVSZVTNZWAQYBUVANZUGNZUCUDZWBUI
      ZLUVBUJZUCWAULZUVAPQYSYDDUEWCUFUVATYSMBUUAUUBUEYDDWDRRABWDQZYRAYLUVJJBCDW
      EURVHUUOUUPUUQUUIWFYSYDDYSUURYDTQUUSYDWGURADTQYRABCDEFGHAYNPTWIFTCUPILPTY
      BWGWHFPTCWJWKJWLVHWMVQYSUVCBVTNZWAYSUVBBVTYSMUVABUUCRUVAWNZUUTWOZWPAUVKWA
      QYRKVHWQYSOWAQZUVEOWBUIZLUVBUJZUVIWRYSUVPUVOLBUJZAYPYJUVQUULYIUVOLBUULYQS
      ZYIYHOWBUIZUVOUVRYHWAQUVNYIUVSWSUVRYGUVRYEYFUULBRYBYDUUMVJUULBRYBDAUUFYPU
      UGVHVJVRXBWRYHOWTWKUVRUVEYHOWBUVRUVDYGUGYQUVDYGXAUULMYBUUCYGBUVAYTYBXAUUA
      YEUUBYFUEYTYBYDXCYTYBDXCXDUVLYEYFUEXEXFXGWPXHXIXMXJYSUVOLUVBBUVMXKXLUVHUV
      PUCOWAUVFOXAUVGUVOLUVBUVFOUVEWBXNXOXPXQUCLUVAXRXSXTWQYA $.

    $( A uniform limit of integrals of integrable functions converges to the
       integral of the limit function.  (Contributed by Mario Carneiro,
       18-Mar-2015.) $)
    itgulm $p |- ( ph -> ( k e. Z |-> S. S ( ( F ` k ) ` x ) _d x )
        ~~> S. S ( G ` x ) _d x ) $=
      ( cfv wbr co clt wcel wa cc vn vr vj vz citg cmpt cli cmin cabs wral wrex
      cv cuz crp cvol c1 caddc cdiv cz adantr cmap wf wfn culm cibl ffn syl2anc
      syl ulmf2 eqidd simpr cr cc0 cle covol cdm wss wceq ulmcl fdm 3syl iblulm
      cmbf iblmbf mbfdm eqeltrrd ovolge0 mblvol breqtrrd ge0p1rpd rpdivcld ulmi
      mblss uztrn2 ffvelrnda elmapi adantllr adantlrr feqmptd ad2ant2r ad2antrr
      wi adantlr itgsub fveq2d subcld iblsub itgcl abscld itgrecl rpre ad2antlr
      iblabs itgabs rpred remulcld csn cxp fconstmpt iblconst syl3anc syl5eqelr
      cmul rpcnd simprr fveq2 oveq12d breq1d rspccva sylan ltled itgle itgconst
      weq breqtrd recnd mpbird eqbrtrrd lelttrd cvv rpne0d ltp1d peano2re rpgt0
      div23d wb ltmul2 syl112anc mpbid ltdivmul2d expr sylan2 ralimdva reximdva
      anassrs mpd ralrimiva fvex eqeltri mptex fveq1d itgeq2dv eqid itgex fvmpt
      a1i adantl clim2c ) ADHBCBULZDULZENZNZUEZUFZBCUVIFNZUEZUGOBCUVIUAULZENZNZ
      UEZUVPUHPZUINZUBULZQOZUAUCULZUMNZUJZUCHUKZUBUNUJAUWHUBUNAUWCUNRZSZUDULZUV
      RNZUWKFNZUHPZUINZUWCCUONZUPUQPZURPZQOZUDCUJZUAUWFUJZUCHUKUWHUWJUDUWMUWLUW
      RCUCUAEFGHIAGUSRUWIJUTAHTCVAPZEVBZUWIAEHVCZEFCVDNOZUXCAHVEEVBUXDKHVEEVFVH
      LCEFHVIVGZUTUWJUVQHRZUWKCRZSSUWLVJUWJUXHSUWMVJAUXEUWILUTUWJUWCUWQAUWIVKUW
      JUWPAUWPVLRZUWIMUTAVMUWPVNOUWIAVMCVONZUWPVNACUOVPZRZCVLVQVMUXJVNOAFVPZCUX
      KAUXECTFVBZUXMCVRLCEFVSZCTFVTWAAFVERFWCRUXMUXKRACEFGHIJKLMWBZFWDFWEWAWFZC
      WMCWGWAAUXLUWPUXJVRUXQCWHVHWIUTWJZWKZWLUWJUXAUWGUCHUWJUWEHRZSUWTUWDUAUWFU
      WJUXTUVQUWFRZUWTUWDXBZUXTUYASUWJUXGUYBGUVQUWEHIWNUWJUXGUWTUWDUWJUXGUWTSZS
      ZBCUVSUVOUHPZUEZUINZUWBUWCQUYDUYFUWAUIUYDBCUVSUVOTUWJUXGUVICRZUVSTRZUWTAU
      XGUYHUYIUWIAUXGSZCTUVIUVRUYJUVRUXBRCTUVRVBAHUXBUVQEUXFWOUVRTCWPVHZWOZWQWR
      ZAUXGBCUVSUFZVERUWIUWTUYJUVRUYNVEUYJBCTUVRUYKWSAHVEUVQEKWOWFZWTZUWJUYHUVO
      TRZUYCAUYHUYQUWIACTUVIFAUXEUXNLUXOVHZWOZXCXCZABCUVOUFZVERUWIUYCAFVUAVEABC
      TFUYRWSUXPWFZXAZXDXEUYDUYGBCUYEUINZUEZUWCUYDUYFUYDBCUYETUYDUYHSZUVSUVOUYM
      UYTXFZUYDBCUVSUVOTUYMUYPUYTVUCXGZXHXIUYDBCVUDVUFUYEVUGXIZUYDBCUYETVUGVUHX
      MZXJZUWIUWCVLRZAUYCUWCXKXLZUYDBCUYETVUGVUHXNUYDVUEUWRUWPYCPZUWCVUKUYDUWRU
      WPUYDUWRUWJUWRUNRUYCUXSUTZXOZAUXIUWIUYCMXAZXPVUMUYDVUEBCUWRUEZVUNVNUYDBCV
      UDUWRVUJUYDBCUWRUFCUWRXQXRZVEBCUWRXSUYDUXLUXIUWRTRZVUSVERAUXLUWIUYCUXQXAZ
      VUQUYDUWRVUOYDZCUWRXTYAYBVUIUYDUWRVLRUYHVUPUTZVUFVUDUWRVUIVVCUYDUWTUYHVUD
      UWRQOZUWJUXGUWTYEUWSVVDUDUVICUDBYNZUWOVUDUWRQVVEUWNUYEUIVVEUWLUVSUWMUVOUH
      UWKUVIUVRYFUWKUVIFYFYGXEYHYIYJYKYLUYDUXLUXIVUTVURVUNVRVVAVUQVVBBCUWRYMYAY
      OUYDUWCUWPYCPZUWQURPZVUNUWCQUYDUWCUWPUWQUYDUWCVUMYPUYDUWPVUQYPUYDUWQUWJUW
      QUNRUYCUXRUTZYDUYDUWQVVHUUAUUEUYDVVGUWCQOVVFUWCUWQYCPQOZUYDUWPUWQQOZVVIUY
      DUWPVUQUUBUYDUXIUWQVLRZVULVMUWCQOZVVJVVIUUFVUQUYDUXIVVKVUQUWPUUCVHVUMUWIV
      VLAUYCUWCUUDXLUWPUWQUWCUUGUUHUUIUYDVVFUWCUWQUYDUWCUWPVUMVUQXPVUMVVHUUJYQY
      RYSYSYRUUKUULUUOUUMUUNUUPUUQAUBUVPUVTUCUAUVNGYTHIJUVNYTRADHUVMHGUMNYTIGUM
      UURUUSUUTUVFUXGUVQUVNNUVTVRADUVQUVMUVTHUVNDUAYNZBCUVLUVSVVMUVLUVSVRUYHVVM
      UVIUVKUVRUVJUVQEYFUVAUTUVBUVNUVCBCUVSUVDUVEUVGABCUVOTUYSVUBXHUYJBCUVSTUYL
      UYOXHUVHYQ $.
  $}

  ${
    $d n z A $.  $d k n x z ph $.  $d k n x z S $.  $d k n x z Z $.
    $d n z B $.  $d n z M $.
    itgulm2.z $e |- Z = ( ZZ>= ` M ) $.
    itgulm2.m $e |- ( ph -> M e. ZZ ) $.
    itgulm2.c $e |- ( ( ph /\ k e. Z ) ->
      ( x e. S |-> A ) e. ( S -cn-> CC ) ) $.
    itgulm2.l $e |- ( ( ph /\ k e. Z ) -> ( x e. S |-> A ) e. L^1 ) $.
    itgulm2.u $e |- ( ph -> ( k e. Z |-> ( x e. S |-> A ) )
      ( ~~>u ` S ) ( x e. S |-> B ) ) $.
    itgulm2.s $e |- ( ph -> ( vol ` S ) e. RR ) $.
    $( A uniform limit of integrals of integrable functions converges to the
       integral of the limit function.  (Contributed by Mario Carneiro,
       18-Mar-2015.) $)
    itgulm2 $p |- ( ph -> ( ( x e. S |-> B ) e. L^1 /\
      ( k e. Z |-> S. S A _d x ) ~~> S. S B _d x ) ) $=
      ( vz wcel citg cfv nfcv cc vn cmpt cibl cli eqid fmptd iblulm cv nffvmpt1
      wbr itgulm nffv nfitg wceq fveq2 nfmpt1 nfmpt cbvitg fveq1d adantr syl5eq
      itgeq2dv cbvmpt wa simplr culm ulmscl mptexg 3syl ad2antrr fvmpt2 syl2anc
      cvv simpr wf wral cmap wfn ralrimivw fnmpt syl ulmf2 fmpt sylibr r19.21bi
      co elmapi eqtrd mpteq2dva ulmcl 3brtr3d jca ) ABEDUBZUCPFHBECQZUBZBEDQZUD
      UJAEFHBECUBZUBZWMGHIJAFHWQUCWRLWRUEZUFZMNUGAUAHOEOUHZUAUHZWRRZRZQZUBZOEXA
      WMRZQZWOWPUDAOEUAWRWMGHIJWTMNUKAXFFHBEBUHZFUHZWRRZRZQZUBWOUAFHXEXMOFEXDFE
      SFXAXCFHWQXBUIFXASULUMUAXMSXBXJUNZXEBEXIXCRZQXMOBEXDXOXAXIXCUOBXAXCBXBWRB
      FHWQBHSBECUPUQBXBSULBXASULOXOSURXNBEXOXLXNXOXLUNXIEPZXNXIXCXKXBXJWRUOUSUT
      VBVAVCAFHXMWNAXJHPZVDZBEXLCXRXPVDZXLXIWQRZCXSXIXKWQXSXQWQVMPZXKWQUNAXQXPV
      EAYAXQXPAWRWMEVFRUJZEVMPYAMEWRWMVGBECVMVHVIZVJFHWQVMWRWSVKVLUSXSXPCTPZXTC
      UNXRXPVNXRYDBEXRETWQVOZYDBEVPXRWQTEVQWFZPZYEAYGFHAHYFWRVOZYGFHVPAWRHVRZYB
      YHAYAFHVPYIAYAFHYCVSFHWQWRVMWSVTWAMEWRWMHWBVLFHYFWQWRWSWCWDWEWQTEWGWABETC
      WQWQUEZWCWDWEBECTWQYJVKVLWHVBWIVAAXHBEXIWMRZQWPOBEXGYKXAXIWMUOBEDXAUIOYKS
      URABEYKDAXPVDXPDTPZYKDUNAXPVNAYLBEAETWMVOZYLBEVPAYBYMMEWRWMWJWABETDWMWMUE
      ZWCWDWEBEDTWMYNVKVLVBVAWKWL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Power series
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d i k m n s x y A $.  $d j m s H $.  $d i j k m s ph $.  $d i k m s y X $.
    $d j k m r s y G $.  $d n y N $.  $d k y R $.  $d i j k m Y $.
    pser.g $e |- G = ( x e. CC |-> ( n e. NN0 |->
      ( ( A ` n ) x. ( x ^ n ) ) ) ) $.
    $( Value of the function ` G ` that gives the sequence of monomials of a
       power series.  (Contributed by Mario Carneiro, 26-Feb-2015.) $)
    pserval $p |- ( X e. CC ->
      ( G ` X ) = ( m e. NN0 |-> ( ( A ` m ) x. ( X ^ m ) ) ) ) $=
      ( vy cn0 cv cfv cexp co cmul cmpt cc wceq oveq1 oveq2d mpteq2dv oveq12d
      fveq2 oveq2 cbvmptv syl5eq eqtri nn0ex mptex fvmpt ) HFCICJZBKZHJZUJLMZNM
      ZOZCIUKFUJLMZNMZOPEULFQZCIUNUQURUMUPUKNULFUJLRSTEAPDIDJZBKZAJZUSLMZNMZOZO
      HPUOOGAHPVDUOVAULQZVDCIUKVAUJLMZNMZOUODCIVCVGUSUJQUTUKVBVFNUSUJBUBUSUJVAL
      UCUAUDVECIVGUNVEVFUMUKNVAULUJLRSTUEUDUFCIUQUGUHUI $.

    $( Value of the function ` G ` that gives the sequence of monomials of a
       power series.  (Contributed by Mario Carneiro, 26-Feb-2015.) $)
    pserval2 $p |- ( ( X e. CC /\ N e. NN0 ) ->
      ( ( G ` X ) ` N ) = ( ( A ` N ) x. ( X ^ N ) ) ) $=
      ( vy cc wcel cn0 cfv cv cexp co cmul cmpt pserval fveq1d wceq fveq2 oveq2
      oveq12d eqid ovex fvmpt sylan9eq ) FIJZEKJEFDLZLEHKHMZBLZFUJNOZPOZQZLEBLZ
      FENOZPOZUHEUIUNABHCDFGRSHEUMUQKUNUJETUKUOULUPPUJEBUAUJEFNUBUCUNUDUOUPPUEU
      FUG $.

    radcnv.a $e |- ( ph -> A : NN0 --> CC ) $.
    ${
      psergf.x $e |- ( ph -> X e. CC ) $.
      $( The sequence of terms in the infinite sequence defining a power series
         for fixed ` X ` .  (Contributed by Mario Carneiro, 26-Feb-2015.) $)
      psergf $p |- ( ph -> ( G ` X ) : NN0 --> CC ) $=
        ( vm cn0 cc wf wcel cfv wa cv cexp co cmul cmpt ffvelrn adantlr adantll
        expcl mulcld eqid fmptd wceq pserval adantl feq1d mpbird syl2anc ) AKLC
        MZFLNZKLFEOZMZHIUOUPPZURKLJKJQZCOZFUTRSZTSZUAZMUSJKVCLVDUSUTKNZPVAVBUOV
        EVALNUPKLUTCUBUCUPVEVBLNUOFUTUEUDUFVDUGUHUSKLUQVDUPUQVDUIUOBCJDEFGUJUKU
        LUMUN $.

      radcnvlem2.y $e |- ( ph -> Y e. CC ) $.
      radcnvlem2.a $e |- ( ph -> ( abs ` X ) < ( abs ` Y ) ) $.
      radcnvlem2.c $e |- ( ph ->
        seq 0 ( + , ( G ` Y ) ) e. dom ~~> ) $.
      ${
        radcnvlem1.h $e |- H = ( m e. NN0 |->
          ( m x. ( abs ` ( ( G ` X ) ` m ) ) ) ) $.
        $( Lemma for ~ radcnvlt1 , ~ radcnvle .  If ` X ` is a point closer to
           zero than ` Y ` and the power series converges at ` Y ` , then it
           converges absolutely at ` X ` , even if the terms in the sequence
           are multiplied by ` n ` .  (Contributed by Mario Carneiro,
           31-Mar-2015.) $)
        radcnvlem1 $p |- ( ph -> seq 0 ( + , H ) e. dom ~~> ) $=
          ( cfv co cmul wcel vk vj vi cv cexp cabs c1 clt wbr cuz wral cc0 cseq
          caddc cli cdm cn0 nn0uz 0zd crp 1rp a1i wceq pserval2 sylan cvv fvexd
          cc psergf ffvelrnda serf0 climi0 wa cdiv cmpt simprl cr adantl adantr
          nn0re wne 0red absge0d lelttrd gt0ne0d redivcld reexpcl remulcld eqid
          abscld fmptd wf recnd divge0 syl22anc absidd mulid1d breqtrrd wb 1red
          ltdivmul syl112anc mpbird eqbrtrd geomulcvg syl2anc ad2antrr ffvelrnd
          cle eluznn0 reexpcld nn0red nn0ge0d expcld mulcld expge0d fveq2 oveq2
          simprr weq oveq12d fveq2d breq1d rspccva wi 1re ltle sylancl lemul1ad
          absmuld mul32d absexpd oveq2d 3eqtr3d mulid2d 3brtr3d cz 3brtr4d ovex
          mpd eluzelz expgt0 syl3anc lemuldiv mpbid expdivd lemul2ad mulge0d id
          fvmpt2 fvmpt syl cvgcmpce rexlimddv ) AUAUDZCQZIUUOUERZSRZUFQZUGUHUIZ
          UAUBUDZUJQZUKZUNGULUMUOUPZTUBUQAUURUGUBUAIFQZULUQURAUSZUGUTTAVAVBAIVH
          TZUUOUQTUUOUVEQUURVCMBCEFUUOIJVDVEAUAUVEULVFUQURUVFAIFVGOAUQVHUUOUVEA
          BCEFIJKMVIVJVKVLAUVAUQTZUVCVMZVMZUGDUCUQUCUDZHUFQZIUFQZVNRZUVKUERZSRZ
          VOZGULUVAUQURAUVHUVCVPZUVJUQVQDUDZUVQUVJUCUQUVPVQUVQUVJUVKUQTZVMUVKUV
          OUVTUVKVQTUVJUVKVTVRUVJUVNVQTZUVTUVOVQTUVJUVLUVMUVJHAHVHTZUVILVSWJZUV
          JIAUVGUVIMVSWJZAUVMULWAZUVIAUVMAULUVLUVMAWBAHLWJZAIMWJZAHLWCZNWDZWEZV
          SWFZUVNUVKWGVEWHUVQWIZWKVJUVJUVSUQTZVMUVSGQZUVJUQVQUVSGAUQVQGWLUVIADU
          QUVSUVSHFQZQZUFQZSRZVQGAUWMVMZUVSUWQUWMUVSVQTAUVSVTVRUWSUWPAUQVHUVSUW
          OABCEFHJKLVIZVJWJWHPWKVSVJWMAUNUVQULUMUVDTZUVIAUVNVHTUVNUFQZUGUHUIUXA
          AUVNAUVLUVMUWFUWGUWJWFZWMAUXBUVNUGUHAUVNUXCAUVLVQTZULUVLXIUIUVMVQTZUL
          UVMUHUIZULUVNXIUIUWFUWHUWGUWIUVLUVMWNWOWPAUVNUGUHUIZUVLUVMUGSRZUHUIZA
          UVLUVMUXHUHNAUVMAUVMUWGWMWQWRAUXDUGVQTZUXEUXFUXGUXIWSUWFAWTUWGUWIUVLU
          GUVMXAXBXCXDUVNUCUVQUWLXEXFVSUVJWTUVJUVSUVBTZVMZUWRUFQZUGUVSUVNUVSUER
          ZSRZSRZUWNUFQUGUVSUVQQZSRXIUXLUWRUXOUXMUXPXIUXLUWQUXNUVSUXLUWPUXLUQVH
          UVSUWOAUQVHUWOWLUVIUXKUWTXGUVJUVHUXKUWMUVRUVSUVAXJVEZXHZWJZUXLUVNUVSU
          VJUWAUXKUWKVSUXRXKZUXLUVSUXRXLZUXLUVSUXRXMZUXLUVSCQZHUVSUERZSRZUFQZUV
          LUVSUERZUVMUVSUERZVNRZUWQUXNXIUXLUYGUYISRZUYHXIUIZUYGUYJXIUIZUXLUYDIU
          VSUERZSRZUFQZUYHSRZUGUYHSRUYKUYHXIUXLUYPUGUYHUXLUYOUXLUYDUYNUXLUQVHUV
          SCAUQVHCWLUVIUXKKXGUXRXHZUXLIUVSAUVGUVIUXKMXGZUXRXNZXOZWJZUXLWTUXLUVL
          UVSUXLHAUWBUVIUXKLXGZWJZUXRXKZUXLUVLUVSVUDUXRUXLHVUCWCXPUXLUYPUGUHUIZ
          UYPUGXIUIZUVJUVCUXKVUFAUVHUVCXSUUTVUFUAUVSUVBUADXTZUUSUYPUGUHVUHUURUY
          OUFVUHUUPUYDUUQUYNSUUOUVSCXQUUOUVSIUEXRYAYBYCYDVEUXLUYPVQTUXJVUFVUGYE
          VUBYFUYPUGYGYHYTYIUXLUYFUYNSRZUFQZUYGUYNUFQZSRUYQUYKUXLUYFUYNUXLUYDUY
          EUYRUXLHUVSVUCUXRXNZXOZUYTYJUXLUYOUYESRZUFQUYPUYEUFQZSRVUJUYQUXLUYOUY
          EVUAVULYJUXLVUNVUIUFUXLUYDUYNUYEUYRUYTVULYKYBUXLVUOUYHUYPSUXLHUVSVUCU
          XRYLYMYNUXLVUKUYIUYGSUXLIUVSUYSUXRYLYMYNUXLUYHUXLUYHVUEWMYOYPUXLUYGVQ
          TUYHVQTUYIVQTULUYIUHUIZUYLUYMWSUXLUYFVUMWJVUEUXLUVMUVSUVJUXEUXKUWDVSZ
          UXRXKUXLUXEUVSYQTZUXFVUPVUQUXKVURUVJUVAUVSUUAVRAUXFUVIUXKUWIXGUVMUVSU
          UBUUCUYGUYHUYIUUDXBUUEUXLUWPUYFUFUXLUWBUWMUWPUYFVCVUCUXRBCEFUVSHJVDXF
          YBUXLUVLUVMUVSUVJUVLVHTUXKUVJUVLUWCWMVSUVJUVMVHTUXKUVJUVMUWDWMVSAUWEU
          VIUXKUWJXGUXRUUFYRUUGUXLUWRUXLUVSUWQUYBUXTWHUXLUVSUWQUYBUXTUYCUXLUWPU
          XSWCUUHWPUXLUXOUXLUXOUXLUVSUXNUYBUYAWHWMYOYRUXLUWNUWRUFUXLUWMUWRVFTUW
          NUWRVCUXRUVSUWQSYSDUQUWRVFGPUUJYHYBUXLUXQUXOUGSUXLUWMUXQUXOVCUXRUCUVS
          UVPUXOUQUVQUCDXTZUVKUVSUVOUXNSVUSUUIUVKUVSUVNUEXRYAUWLUVSUXNSYSUUKUUL
          YMYRUUMUUN $.
      $}

      $( Lemma for ~ radcnvlt1 , ~ radcnvle .  If ` X ` is a point closer to
         zero than ` Y ` and the power series converges at ` Y ` , then it
         converges absolutely at ` X ` .  (Contributed by Mario Carneiro,
         26-Feb-2015.) $)
      radcnvlem2 $p |- ( ph ->
        seq 0 ( + , ( abs o. ( G ` X ) ) ) e. dom ~~> ) $=
        ( c1 cn0 cfv cabs cmul wcel wceq vk vm cv co cmpt ccom cc0 nn0uz a1i wa
        1nn0 cr id fveq2 fveq2d oveq12d eqid ovex fvmpt adantl psergf ffvelrnda
        nn0re cc abscld remulcld eqeltrd wf fvco3 sylan cbvmptv radcnvlem1 1red
        recnd cuz cle cn elnnuz nnnn0 sylbir sylan2 wbr absge0d eluzle lemul1ad
        absidm syl mulid2d 3eqtr4d oveq2d eqtrd 3brtr4d cvgcmpce ) ANUAUBOUBUCZ
        WNFEPZPZQPZRUDZUEZQWOUFZUGNOUHNOSAUKUIAUAUCZOSZUJZXAWSPZXAXAWOPZQPZRUDZ
        ULXBXDXGTAUBXAWRXGOWSWNXATZWNXAWQXFRXHUMXHWPXEQWNXAWOUNUOUPZWSUQXAXFRUR
        USUTZXCXAXFXBXAULSZAXAVCUTZXCXEAOVDXAWOABCDEFHIJVAZVBZVEZVFZVGXCXAWTPZX
        FVDAOVDWOVHXBXQXFTXMOVDXAQWOVIVJZXCXFXOVNZVGABCUADEWSFGHIJKLMUBUAOWRXGX
        IVKVLAVMAXANVOPSZUJZNXFRUDZXGXQQPZNXDRUDZVPYANXAXFYAVMXTAXBXKXTXAVQSXBX
        AVRXAVSVTZXLWAXTAXBXFULSYEXOWAXTAXBUGXFVPWBYEXCXEXNWCWAXTNXAVPWBANXAWDU
        TWEXTAXBYCYBTYEXCXFQPZXFYCYBXCXEVDSYFXFTXNXEWFWGXCXQXFQXRUOXCXFXSWHWIWA
        XTAXBYDXGTYEXCYDNXGRUDXGXCXDXGNRXJWJXCXGXCXGXPVNWHWKWAWLWM $.

      $( Lemma for ~ radcnvlt1 , ~ radcnvle .  If ` X ` is a point closer to
         zero than ` Y ` and the power series converges at ` Y ` , then it
         converges at ` X ` .  (Contributed by Mario Carneiro, 31-Mar-2015.) $)
      radcnvlem3 $p |- ( ph -> seq 0 ( + , ( G ` X ) ) e. dom ~~> ) $=
        ( vk cabs cfv ccom cc0 cn0 cc nn0uz 0zd wf wcel wceq psergf fvco3 sylan
        cv ffvelrnda radcnvlem2 abscvgcvg ) ANOFEPZQZUMRSUAAUBASTUMUCNUIZSUDUOU
        NPUOUMPOPUEABCDEFHIJUFZSTUOOUMUGUHASTUOUMUPUJABCDEFGHIJKLMUKUL $.
    $}

    $( Zero is always a convergent point for any power series.  (Contributed by
       Mario Carneiro, 26-Feb-2015.) $)
    radcnv0 $p |- ( ph ->
      0 e. { r e. RR | seq 0 ( + , ( G ` r ) ) e. dom ~~> } ) $=
      ( vk cc0 cr wcel caddc cfv cseq cn0 co cmul wceq cc cli cdm crab 0red csn
      cv nn0uz 0zd cfn snfi a1i 0nn0 snssd wa cif ifid cexp 0cnd pserval2 sylan
      wn adantr cn wo simpr elnn0 sylib ord velsn syl6ibr con1d 0expd ffvelrnda
      oveq2d mul01d 3eqtrd ifeq2da syl5eqr sselda psergf fsumcvg3 fveq2 seqeq3d
      imp syldan eleq1d elrab sylanbrc ) AJKLMJENZJOZUAUBZLZJMFUFZENZJOZWKLZFKU
      CLAUDAJUEZIUFZWINZIWIJPUGAUHWQUILAJUJUKAJPJPLAULUKUMZAWRPLZUNZWSWRWQLZWSW
      SUOXCWSJUOXCWSUPXBXCWSJWSXBXCVAZUNZWSWRCNZJWRUQQZRQZXFJRQJXBWSXHSZXDAJTLX
      AXIAURZBCDEWRJGUSUTVBXEXGJXFRXEWRXBXDWRVCLZXBXKXCXBXKVAWRJSZXCXBXKXLXBXAX
      KXLVDAXAVEWRVFVGVHIJVIVJVKWDVLVNXEXFXBXFTLXDAPTWRCHVMVBVOVPVQVRAXCXAWSTLA
      WQPWRWTVSAPTWRWIABCDEJGHXJVTVMWEWAWPWLFJKWMJSZWOWJWKXMWNWIMJWMJEWBWCWFWGW
      H $.

    radcnv.r $e |- R =
      sup ( { r e. RR | seq 0 ( + , ( G ` r ) ) e. dom ~~> } , RR* , < ) $.
    $( The radius of convergence ` R ` of an infinite series is a nonnegative
       extended real number.  (Contributed by Mario Carneiro, 26-Feb-2015.) $)
    radcnvcl $p |- ( ph -> R e. ( 0 [,] +oo ) ) $=
      ( cxr wcel cc0 cle wbr cpnf cicc co caddc cr cv cfv cseq cli cdm crab clt
      csup wss ssrab2 ressxr supxrcl syl5eqel radcnv0 supxrub sylancr syl6breqr
      sstri mp1i pnfge syl w3a wb 0xr pnfxr elicc1 mp2an syl3anbrc ) ADKLZMDNOZ
      DPNOZDMPQRLZADSGUAFUBMUCUDUELZGTUFZKUGUHZKJVNKUIZVOKLAVNTKVMGTUJUKURZVNUL
      USUMZAMVODNAVPMVNLMVONOVQABCEFGHIUNVNMUOUPJUQAVIVKVRDUTVAMKLPKLVLVIVJVKVB
      VCVDVEMPDVFVGVH $.

    ${
      radcnvlt.x $e |- ( ph -> X e. CC ) $.
      radcnvlt.a $e |- ( ph -> ( abs ` X ) < R ) $.
      ${
        radcnvlt1.h $e |- H = ( m e. NN0 |->
          ( m x. ( abs ` ( ( G ` X ) ` m ) ) ) ) $.
        $( If ` X ` is within the open disk of radius ` R ` centered at zero,
           then the infinite series converges absolutely at ` X ` , and also
           converges when the series is multiplied by ` n ` .  (Contributed by
           Mario Carneiro, 26-Feb-2015.) $)
        radcnvlt1 $p |- ( ph -> ( seq 0 ( + , H ) e. dom ~~> /\
          seq 0 ( + , ( abs o. ( G ` X ) ) ) e. dom ~~> ) ) $=
          ( vs cc0 wcel cr caddc cv cfv cseq cli cdm cabs cle wbr wn wa wrex wi
          ccom wral clt cxr wb ressxr abscld cpnf cicc iccssxr radcnvcl xrltnle
          sseldi co syl2anc mpbid crab csup breq1i wss ssrab2 supxrleub sylancr
          sstri syl5bb fveq2 seqeq3d eleq1d ralrab syl6bb mtbid rexanali sylibr
          weq ltnle sylan adantr cn0 cc wf ad2antrr simplr recnd simprr absge0d
          0red lelttrd absidd breqtrrd simprl radcnvlem1 radcnvlem2 jca sylbird
          ltled expr expimpd rexlimdva mpd ) AUAQUBZGUCZRUDZUEUFZSZXMIUGUCZUHUI
          ZUJZUKZQTULZUAHRUDXPSZUAUGIGUCUNRUDXPSZUKZAXQXSUMQTUOZUJYBADXRUHUIZYF
          AXRDUPUIZYGUJZOAXRUQSZDUQSYHYIURATUQXRUSAINUTZVFZARVAVBVGUQDRVAVCABCD
          FGJKLMVDVFXRDVEVHVIAYGXSQUAJUBZGUCZRUDZXPSZJTVJZUOZYFYGYQUQUPVKZXRUHU
          IZAYRDYSXRUHMVLAYQUQVMYJYTYRURYQTUQYPJTVNUSVQYLQYQXRVOVPVRYPXQXSQJTJQ
          WGZYOXOXPUUAYNXNUARYMXMGVSVTWAWBWCWDXQXSQTWEWFAYAYEQTAXMTSZUKZXQXTYEU
          UCXQUKXTXRXMUPUIZYEUUCUUDXTURZXQAXRTSUUBUUEYKXRXMWHWIWJUUCXQUUDYEUUCX
          QUUDUKZUKZYCYDUUGBCEFGHIXMKAWKWLCWMUUBUUFLWNZAIWLSUUBUUFNWNZUUGXMAUUB
          UUFWOZWPZUUGXRXMXMUGUCUPUUCXQUUDWQZUUGXMUUJUUGRXMUUGWSZUUJUUGRXRXMUUM
          UUGIUUIUTUUJUUGIUUIWRUULWTXHXAXBZUUCXQUUDXCZPXDUUGBCFGIXMKUUHUUIUUKUU
          NUUOXEXFXIXGXJXKXL $.
      $}

      $( If ` X ` is within the open disk of radius ` R ` centered at zero,
         then the infinite series converges at ` X ` .  (Contributed by Mario
         Carneiro, 26-Feb-2015.) $)
      radcnvlt2 $p |- ( ph -> seq 0 ( + , ( G ` X ) ) e. dom ~~> ) $=
        ( vk vm cabs cfv cc0 cn0 cc ccom nn0uz 0zd wf cv wcel wceq psergf fvco3
        sylan ffvelrnda caddc cmul co cmpt cseq cli cdm id fveq2 fveq2d oveq12d
        cbvmptv radcnvlt1 simprd abscvgcvg ) ANPGFQZUAZVGRSUBAUCASTVGUDNUEZSUFV
        IVHQVIVGQZPQZUGABCEFGIJLUHZSTVIPVGUIUJASTVIVGVLUKAULOSOUEZVMVGQZPQZUMUN
        ZUOZRUPUQURZUFULVHRUPVRUFABCDNEFVQGHIJKLMONSVPVIVKUMUNVMVIUGZVMVIVOVKUM
        VSUSVSVNVJPVMVIVGUTVAVBVCVDVEVF $.
    $}

    radcnvle.x $e |- ( ph -> X e. CC ) $.
    radcnvle.a $e |- ( ph -> seq 0 ( + , ( G ` X ) ) e. dom ~~> ) $.
    $( If ` X ` is a convergent point of the infinite series, then ` X ` is
       within the closed disk of radius ` R ` centered at zero.  Or, by
       contraposition, the series diverges at any point strictly more than
       ` R ` from the origin.  (Contributed by Mario Carneiro, 26-Feb-2015.) $)
    radcnvle $p |- ( ph -> ( abs ` X ) <_ R ) $=
      ( cle wbr cr wcel cxr cc0 adantr vy cabs cfv wn caddc co c2 cdiv wa simpr
      clt wb cmnf cpnf cicc iccssxr radcnvcl sseldi abscld w3a 0xr pnfxr elicc1
      mp2an sylib simp2d ge0gtmnf syl2anc wi ressxr xrltle xrre syl22anc avglt1
      mpd mpbid cv cseq cli cdm crab wss ssrab2 sstri readdcld rehalfcld cn0 cc
      csup recnd 0red lelttrd ltled absidd avglt2 eqbrtrd radcnvlem3 wceq fveq2
      seqeq3d eleq1d cbvrabv elrab2 sylanbrc supxrub sylancr syl6breqr pm2.65da
      wf lenltd xrlenlt mpbird ) AGUBUCZDNOZDXMUKOZUDZAXODDXMUEUFZUGUHUFZUKOZAX
      OUIZXOXSAXOUJZXTDPQZXMPQZXOXSULXTDRQZYCUMDUKOZDXMNOZYBAYDXOASUNUOUFZRDSUN
      UPABCDEFHIJKUQZURZTZAYCXOAGLUSZTZAYEXOAYDSDNOZYEYIAYDYMDUNNOZADYGQZYDYMYN
      UTZYHSRQUNRQYOYPULVAVBSUNDVCVDVEVFZDVGVHTXTXOYFYAXTYDXMRQZXOYFVIYJAYRXOAP
      RXMVJYKURZTDXMVKVHVODXMVLVMZYLDXMVNVHVPZXTXRDNOXSUDXTXRUEHVQZFUCZSVRZVSVT
      ZQZHPWAZRUKWIZDNXTUUGRWBXRUUGQZXRUUHNOUUGPRUUFHPWCVJWDXTXRPQUEXRFUCZSVRZU
      UEQZUUIXTXQXTDXMYTYLWEWFZXTBCEFXRGIAWGWHCXIXOJTXTXRUUMWJAGWHQXOLTXTXRUBUC
      XRXMUKXTXRUUMXTSXRXTWKZUUMXTSDXRUUNYTUUMAYMXOYQTUUAWLWMWNXTXOXRXMUKOZYAXT
      YBYCXOUUOULYTYLDXMWOVHVPWPAUEGFUCSVRUUEQXOMTWQUEUAVQZFUCZSVRZUUEQZUULUAXR
      PUUGUUPXRWRZUURUUKUUEUUTUUQUUJUESUUPXRFWSWTXAUUFUUSHUAPUUBUUPWRZUUDUURUUE
      UVAUUCUUQUESUUBUUPFWSWTXAXBXCXDUUGXRXEXFKXGXTXRDUUMYTXJVPXHAYRYDXNXPULYSY
      IXMDXKVHXL $.
  $}

  ${
    $d k n x A $.  $d i k r G $.  $d k H $.  $d i k n r x X $.  $d i k ph $.
    dvradcnv.g $e |- G = ( x e. CC |-> ( n e. NN0 |->
      ( ( A ` n ) x. ( x ^ n ) ) ) ) $.
    dvradcnv.r $e |- R =
      sup ( { r e. RR | seq 0 ( + , ( G ` r ) ) e. dom ~~> } , RR* , < ) $.
    dvradcnv.h $e |- H = ( n e. NN0 |->
      ( ( ( n + 1 ) x. ( A ` ( n + 1 ) ) ) x. ( X ^ n ) ) ) $.
    dvradcnv.a $e |- ( ph -> A : NN0 --> CC ) $.
    dvradcnv.x $e |- ( ph -> X e. CC ) $.
    dvradcnv.l $e |- ( ph -> ( abs ` X ) < R ) $.
    $( The radius of convergence of the (formal) derivative ` H ` of the power
       series ` G ` is at least as large as the radius of convergence of
       ` G ` .  (In fact they are equal, but we don't have as much use for the
       negative side of this claim.)  (Contributed by Mario Carneiro,
       31-Mar-2015.) $)
    dvradcnv $p |- ( ph -> seq 0 ( + , H ) e. dom ~~> ) $=
      ( cc0 c1 co cmul wcel vk vi wceq cabs cfv cdiv cif cn0 cv cmpt cneg nn0uz
      cshi 1nn0 a1i wa caddc cexp cr cc ax-1cn nn0cn adantl nn0ex mptex sylancr
      shftval4 addcom fveq2d peano2nn0 id fveq2 oveq12d eqid fvmpt syl pserval2
      syl2an oveq2d eqtrd 3eqtrd nn0red wf ffvelrn expcl mulcld abscld remulcld
      ovex eqeltrd weq oveq1 oveq2 nn0cnd sylan cseq cli cdm wbr ccom radcnvlt1
      cbvmptv simpld climdm sylib cz wb 0z neg1z isershft mp2an fvex breldm cuz
      seqex cle neg1cn addid2i 0le1 le0neg2 ax-mp mpbi eqbrtri eqeltri mpbir2an
      1re eluz1i eluzelcn nn0re psergf ffvelrnda recnd crp breq2d sylan2 adantr
      fmptd simpr 3brtr4d ad2antrr eluzp1p1 oveq1i 1pneg1e0 eqtri fveq2i eqtr4i
      addcomli syl6eleqr iserex mpbid 1red wn wne df-ne biimpri rprecred ifclda
      absrpcl elnnuz nnnn0 sylbir nn0ge0d absge0d sylibr 0expd sylan9eqr mul01d
      cn mulge0d abs00bd mulid2d mulassd absmuld absidd oveq1d syl2anc rpreccld
      eqle rpcnd mul12d absdivd divassd cmin pncan sylancl expm1d eqtr3d eqtr4d
      rpne0d divrec2d 3eqtr3rd breqtrrd sylanl2 sylan2br ifbothda cvgcmpce
      nn0zd ) AHPUCZQQHUDUEZUFRZUGZUAUBUHUBUIZUXBHFUEZUEZUDUEZSRZUJZQUKZUMRZGPQ
      UHULQUHTAUNUOAUAUIZUHTZUPZUXJUXIUEZUXJQUQRZUXNCUEZHUXNURRZSRZUDUEZSRZUSUX
      LUXMQUXJUQRZUXGUEZUXNUXGUEZUXSUXLQUTTZUXJUTTZUXMUYAUCZVAUXKUYDAUXJVBVCZQU
      XJUXGUBUHUXFVDVEZVGZVFUXLUXTUXNUXGUXLUYCUYDUXTUXNUCZVAUYFQUXJVHZVFVIUXLUY
      BUXNUXNUXCUEZUDUEZSRZUXSUXLUXNUHTZUYBUYMUCUXKUYNAUXJVJZVCZUBUXNUXFUYMUHUX
      GUXBUXNUCZUXBUXNUXEUYLSUYQVKUYQUXDUYKUDUXBUXNUXCVLVIVMUXGVNZUXNUYLSWIVOVP
      UXLUYLUXRUXNSUXLUYKUXQUDAHUTTZUYNUYKUXQUCUXKNUYOBCEFUXNHJVQVRVIVSVTWAZUXL
      UXNUXRUXLUXNUYPWBZUXLUXQUXLUXOUXPAUHUTCWCUYNUXOUTTZUXKMUYOUHUTUXNCWDVRZAU
      YSUYNUXPUTTZUXKNUYOHUXNWEVRZWFZWGZWHZWJUXLUXJGUEZUXNUXOSRZHUXJURRZSRZUTUX
      KVUIVULUCAEUXJEUIZQUQRZVUNCUEZSRZHVUMURRZSRVULUHGEUAWKZVUPVUJVUQVUKSVURVU
      NUXNVUOUXOSVUMUXJQUQWLZVURVUNUXNCVUSVIVMVUMUXJHURWMVMLVUJVUKSWIVOVCZUXLVU
      JVUKUXLUXNUXOUXLUXNUYPWNZVUCWFZAUYSUXKVUKUTTNHUXJWEWOZWFZWJAUQUXIPUXHUQRZ
      WPZWQWRZTZUQUXIPWPVVGTAVVFUQUXGPWPZWQUEZWQWSZVVHAVVIVVJWQWSZVVKAVVIVVGTZV
      VLAVVMUQUDUXCWTPWPVVGTABCDUAEFUXGHIJMKNOUBUAUHUXFUXJUXJUXCUEZUDUEZSRUBUAW
      KZUXBUXJUXEVVOSVVPVKVVPUXDVVNUDUXBUXJUXCVLVIVMXBXAXCVVIXDXEPXFTZUXHXFTVVL
      VVKXGXHXIVVJUQUXGPUXHUYGXJXKXEVVFVVJWQUQUXIVVEXOVVIWQXLXMVPAUAUXIVVEPVVEX
      NUEZVVRVNPVVRTZAVVSVVQVVEPXPWSXHVVEUXHPXPUXHXQXRZPQXPWSZUXHPXPWSZXSQUSTVW
      AVWBXGYFQXTYAYBYCVVEPVVEUXHXFVVTXIYDYGYEUOAUXJVVRTZUPZUXMUYAUTVWDUYCUYDUY
      EVAVWCUYDAVVEUXJYHZVCUYHVFAUHUTUXGWCUXTUHTUYAUTTVWCAUBUHUXFUTUXGAUXBUHTZU
      PZUXFVWGUXBUXEVWFUXBUSTAUXBYIVCVWGUXDAUHUTUXBUXCABCEFHJMNYJYKWGWHYLUYRYQV
      WCUXTUXNUHVWCUYCUYDUYIVAVWEUYJVFVWCUXNVVEQUQRZXNUEZUHVVEUXJUUAUHPXNUEVWIU
      LVWHPXNVWHUXHQUQRPVVEUXHQUQVVTUUBQUXHPVAXQUUCUUGUUDUUEUUFUUHWJUHUTUXTUXGW
      DVRWJUUIUUJAUWRQUWTUSAUWRUPUUKAUWRUULZUPUWSAUYSHPUUMZUWSYMTZVWJNVWKVWJHPU
      UNZUUOHUURZVRUUPUUQAUXJQXNUETZUPZVULUDUEZUXAUXSSRZVUIUDUEZUXAUXMSRZXPUWRV
      WQQUXSSRZXPWSVWQUWTUXSSRZXPWSZVWQVWRXPWSVWPQUWTQUXAUCVXAVWRVWQXPQUXAUXSSW
      LYNUWTUXAUCVXBVWRVWQXPUWTUXAUXSSWLYNVWPUWRUPZPUXSVWQVXAXPVWPPUXSXPWSZUWRV
      WOAUXKVXEVWOUXJUVHTZUXKUXJUUSZUXJUUTUVAZUXLUXNUXRVUAVUGUXLUXNUYPUVBZUXLUX
      QVUFUVCUVIYOYPVXDVULVXDVULVUJPSRZPVXDVUKPVUJSUWRVWPVUKPUXJURRPHPUXJURWLVW
      PUXJVWPVWOVXFAVWOYRVXGUVDUVEUVFVSVWPVXJPUCZUWRVWOAUXKVXKVXHUXLVUJVVBUVGYO
      YPVTUVJVWPVXAUXSUCZUWRVWOAUXKVXLVXHUXLUXSUXLUXSVUHYLUVKYOYPYSVWJVWPVWKVXC
      VWMVWOAUXKVWKVXCVXHUXLVWKUPZVWQUXNUXOVUKSRZUDUEZSRZVXBXPUXLVWQVXPXPWSZVWK
      UXLVWQUSTVWQVXPUCVXQUXLVULVVDWGUXLVWQUXNVXNSRZUDUEUXNUDUEZVXOSRVXPUXLVULV
      XRUDUXLUXNUXOVUKVVAVUCVVCUVLVIUXLUXNVXNVVAUXLUXOVUKVUCVVCWFUVMUXLVXSUXNVX
      OSUXLUXNVUAVXIUVNUVOWAVWQVXPUVRUVPYPVXMVXBUXNUWTUXRSRZSRVXPVXMUWTUXNUXRVX
      MUWTUXLUYSVWKUWTYMTAUYSUXKNYPZUYSVWKUPUWSVWNUVQWOUVSUXLUXNUTTVWKVVAYPVXMU
      XRUXLUXRUSTVWKVUGYPYLZUVTVXMVXTVXOUXNSVXMUXQHUFRZUDUEUXRUWSUFRVXOVXTVXMUX
      QHUXLUXQUTTVWKVUFYPAUYSUXKVWKNYTZUXLVWKYRZUWAVXMVYCVXNUDVXMVYCUXOUXPHUFRZ
      SRVXNVXMUXOUXPHUXLVUBVWKVUCYPUXLVUDVWKVUEYPVYDVYEUWBVXMVUKVYFUXOSVXMHUXNQ
      UWCRZURRVUKVYFVXMVYGUXJHURVXMUYDUYCVYGUXJUCUXLUYDVWKUYFYPVAUXJQUWDUWEVSVX
      MHUXNVYDVYEUXLUXNXFTVWKUXLUXNUYPUWQYPUWFUWGVSUWHVIVXMUXRUWSVYBVXMUWSAUWSU
      STUXKVWKAHNWGYTYLVXMUWSUXLUYSVWKVWLVYAVWNWOUWIUWJUWKVSVTUWLUWMUWNUWOVWOAU
      XKVWSVWQUCVXHUXLVUIVULUDVUTVIYOVWOAUXKVWTVWRUCVXHUXLUXMUXSUXASUYTVSYOYSUW
      P $.
  $}

  ${
    $d a j k m n r s w x y z A $.  $d f i j y H $.  $d i j k m s u v w y z M $.
    $d i j k m x y z B $.  $d i j k m r s w y z G $.  $d a f i j k m w y z S $.
    $d a f z F $.  $d a f i j k m w y z ph $.  $d u v w z R $.
    pserf.g $e |- G = ( x e. CC |-> ( n e. NN0 |->
      ( ( A ` n ) x. ( x ^ n ) ) ) ) $.
    pserf.f $e |- F = ( y e. S |-> sum_ j e. NN0 ( ( G ` y ) ` j ) ) $.
    pserf.a $e |- ( ph -> A : NN0 --> CC ) $.
    pserf.r $e |- R =
      sup ( { r e. RR | seq 0 ( + , ( G ` r ) ) e. dom ~~> } , RR* , < ) $.
    ${
      pserulm.h $e |- H = ( i e. NN0 |-> ( y e. S |->
        ( seq 0 ( + , ( G ` y ) ) ` i ) ) ) $.
      pserulm.m $e |- ( ph -> M e. RR ) $.
      pserulm.l $e |- ( ph -> M < R ) $.
      pserulm.y $e |- ( ph -> S C_ ( `' abs " ( 0 [,] M ) ) ) $.
      $( If ` S ` is a region contained in a circle of radius ` M < R ` , then
         the sequence of partial sums of the infinite series converges
         uniformly on ` S ` .  (Contributed by Mario Carneiro, 26-Feb-2015.) $)
      pserulm $p |- ( ph -> H ( ~~>u ` S ) F ) $=
        ( vm vw vk vz vf culm cfv wbr cc0 clt c0 wceq wa cabs ccnv cicc co cima
        wss adantr cxr wcel 0xr rexrd icc0 sylancr biimpar imaeq2d ima0 sseqtrd
        wb syl6eq ss0 syl cn0 nn0uz 0zd cv caddc cseq cmpt cc cmap cdm cnvimass
        wf cr absf fdmi sseqtri syl6ss sselda psergf ffvelrnda serf an32s fmptd
        eqid cvv cnex ssexg sylancl elmapg mpbird csu eqidd cle w3a simprd cpnf
        wfn syldan simpr adantl ad2antrr mptexg weq fveq2 fveq1d cbvmptv syl5eq
        syl2anc mpteq2dva fvex cexp expcld abscld absge0d absexpd eqtrd 3brtr4d
        a1i cmul absmuld pserval2 fveq2d fvmpt2 simplr ffn elpreima mp2b elicc2
        sylib 0re mpbid simp1d iccssxr sseldi simp3d xrlelttrd radcnvlt2 isumcl
        radcnvcl ulm0 cof cuz syl6eleq cfz elfznn0 mpteq2dv fvmptg seqof eqcomd
        cz 0z seqfn ax-mp fneq2i mpbir dffn5 mpbi 3eqtr4g ccom mp2an coex recnd
        fex fco simprr sseldd simprl ffvelrnd wral ralrimiva rspcv sylc leexp1a
        breq1d syl32anc absid sylan oveq1d lemul2ad fvmpt ad2antll 3eqtrd fvco3
        cli eqbrtrd oveq12d radcnvlt1 mtest eqeltrd wex eldmg ibi ulmcl feqmptd
        adantlr seqex ad3antrrr ulmclm isumclim eqtr4d breqtrd exlimdv syl5 imp
        id ex 0red ltlecasei ) ALJFUHUIZUJZMUKAMUKULUJZFUMUNZUYFAUYGUOZFUMVAUYH
        UYIFUPUQZUKMURUSZUTZUMAFUYLVAUYGUBVBUYIUYLUYJUMUTUMUYIUYKUMUYJAUYKUMUNZ
        UYGAUKVCVDMVCVDZUYMUYGVMVEAMTVFZUKMVGVHVIVJUYJVKVNVLFVOVPAFLJUKVQVRAVSA
        GVQCFGVTZWACVTZKUIZUKWBZUIZWCZWDFWEUSZLAUYPVQVDZUOZVUAVUBVDZFWDVUAWHZVU
        DCFUYTWDVUAAUYQFVDZVUCUYTWDVDAVUGUOZVQWDUYPUYSVUHHUYRUKVQVRVUHVSZVUHVQW
        DHVTZUYRVUHBDIKUYQOAVQWDDWHZVUGQVBZAFWDUYQAFUYLWDUBUYLUPWFWDUPUYKWGWDWI
        UPWJWKWLWMZWNZWOZWPZWQWPWRVUAWTZWSVUDWDXAVDZFXAVDZVUEVUFVMXBAVUSVUCAFWD
        VAZVURVUSVUMXBFWDXAXCXDZVBZWDFVUAXAXAXEVHXFSWSZACFVQVUJUYRUIZHXGZWDJVUH
        VVDHUYRUKVQVRVUIVUHVUJVQVDZUOVVDXHVUPVUHBDEIKUYQNOVULRVUNVUHUYQUPUIZMEV
        UHVVGVUHVVGWIVDZUKVVGXIUJZVVGMXIUJZVUHVVGUYKVDZVVHVVIVVJXJZVUHUYQWDVDZV
        VKVUHUYQUYLVDZVVMVVKUOZAFUYLUYQUBWNWDWIUPWHZUPWDXMVVNVVOVMWJWDWIUPUUAWD
        UYQUYKUPUUBUUCUUEXKVUHUKWIVDMWIVDZVVKVVLVMUUFAVVQVUGTVBUKMVVGUUDVHUUGZU
        UHVFAUYNVUGUYOVBAEVCVDVUGAUKXLURUSVCEUKXLUUIABDEIKNOQRUUOUUJVBVUHVVHVVI
        VVJVVRUUKZAMEULUJZVUGUAVBUULUUMUUNPWSUUPXNAUKMXIUJZLUYEWFZVDZUYFAVWAUOZ
        LWAUUQZUCVQUDFUCVTZUDVTZKUIZUIZWCZWCZUKWBZVWBALVWLUNVWAAGVQVUAWCGVQUYPV
        WLUIZWCZLVWLAGVQVUAVWMVUDVWMVUAVUDUECFWAVWKUYRUKUYPXAVVBVUDUYPVQUKUURUI
        ZAVUCXOVRUUSVUDUEVTZUKUYPUUTUSVDZUOZVWPVQVDZCFVWPUYRUIZWCZXAVDZVWPVWKUI
        ZVXAUNZVWQVWSVUDVWPUYPUVAXPVWRVUSVXBAVUSVUCVWQVVAXQCFVWTXAXRZVPUCVWPVWJ
        VXAVQXAVWKUCUEXSZVWJCFVWFUYRUIZWCVXAUDCFVWIVXGUDCXSVWFVWHUYRVWGUYQKXTYA
        YBVXFCFVXGVWTVWFVWPUYRXTUVBYCVWKWTZUVCZYDUVDUVEYESVWLVQXMZVWLVWNUNVXJVW
        LVWOXMZUKUVFVDVXKUVGVWEVWKUKUVHUVIVQVWOVWLVRUVJUVKGVQVWLUVLUVMUVNVBVWDU
        FFUEVWKUPMKUIZUVOZUKXAXAVQVRVWDVSAVUSVWAVVAVBAVQVUBVWKWHVWAAUCVQVWJVUBV
        WKAVWFVQVDZUOZVWJVUBVDZFWDVWJWHZVXOUDFVWIWDVWJAVWGFVDZVXNVWIWDVDAVXRUOZ
        VQWDVWFVWHVXSBDIKVWGOAVUKVXRQVBAFWDVWGVUMWNWOWPWRVWJWTWSVXOVURVUSVXPVXQ
        VMXBAVUSVXNVVAVBWDFVWJXAXAXEVHXFVXHWSVBVXMXAVDVWDUPVXLVVPVURUPXAVDWJXBW
        DWIXAUPUVSUVPMKYFUVQYNVWDVQWIVWPVXMVWDVVPVQWDVXLWHZVQWIVXMWHWJVWDBDIKMO
        AVUKVWAQVBZVWDMAVVQVWATVBUVRZWOZVQWDWIUPVXLUVTVHWPVWDVWSUFVTZFVDZUOZUOZ
        VWPDUIZVYDVWPYGUSZYOUSZUPUIZVYHMVWPYGUSZYOUSZUPUIZVYDVXCUIZUPUIVWPVXMUI
        ZXIVYGVYHUPUIZVYIUPUIZYOUSVYQVYLUPUIZYOUSVYKVYNXIVYGVYRVYSVYQVYGVYIVYGV
        YDVWPVYGFWDVYDAVUTVWAVYFVUMXQVWDVWSVYEUWAZUWBZVWDVWSVYEUWCZYHZYIVYGVYLV
        YGMVWPVWDMWDVDZVYFVYBVBZWUBYHZYIVYGVYHVYGVQWDVWPDAVUKVWAVYFQXQWUBUWDZYI
        VYGVYHWUGYJVYGVYDUPUIZVWPYGUSZVYLVYRVYSXIVYGWUHWIVDVVQVWSUKWUHXIUJWUHMX
        IUJZWUIVYLXIUJVYGVYDWUAYIAVVQVWAVYFTXQWUBVYGVYDWUAYJVYGVYEVVJCFUWEZWUJV
        YTAWUKVWAVYFAVVJCFVVSUWFXQVVJWUJCVYDFCUFXSZVVGWUHMXIUYQVYDUPXTUWJUWGUWH
        WUHMVWPUWIUWKVYGVYDVWPWUAWUBYKVYGVYSMUPUIZVWPYGUSVYLVYGMVWPWUEWUBYKVYGW
        UMMVWPYGVWDWUMMUNZVYFAVVQVWAWUNTMUWLUWMZVBUWNYLYMUWOVYGVYHVYIWUGWUCYPVY
        GVYHVYLWUGWUFYPYMVYGVYOVYJUPVYGVYOVYDVXAUIZVWPVYDKUIZUIZVYJVYGVYDVXCVXA
        VYGVWSVXBVXDWUBVYGVUSVXBAVUSVWAVYFVVAXQVXEVPVXIYDYAVYEWUPWURUNVWDVWSCVY
        DVWTWURFVXAWULVWPUYRWUQUYQVYDKXTYAVXAWTVWPWUQYFUWPUWQVYGVYDWDVDVWSWURVY
        JUNWUAWUBBDIKVWPVYDOYQYDUWRYRVYGVYPVWPVXLUIZUPUIZVYNVYGVXTVWSVYPWUTUNVW
        DVXTVYFVYCVBWUBVQWDVWPUPVXLUWSYDVYGWUSVYMUPVYGWUDVWSWUSVYMUNWUEWUBBDIKV
        WPMOYQYDYRYLYMVWDWAGVQUYPUYPVXLUIZUPUIZYOUSZWCZUKWBUWTWFZVDWAVXMUKWBWVE
        VDVWDBDEUCIKWVDMNOVYARVYBVWDWUMMEULWUOAVVTVWAUAVBUXAGUCVQWVCVWFVWFVXLUI
        ZUPUIZYOUSGUCXSZUYPVWFWVBWVGYOWVHUYAWVHWVAWVFUPUYPVWFVXLXTYRUXBYBUXCXKU
        XDUXEAVWCUYFVWCLUGVTZUYEUJZUGUXFZAUYFVWCWVKUGLUYEVWBUXGUXHAWVJUYFUGAWVJ
        UYFAWVJUOZLWVIJUYEAWVJXOWVLWVICFUYQWVIUIZWCZJWVLCFWDWVIWVJFWDWVIWHAFLWV
        IUXIXPUXJWVLJCFVVEWCWVNPWVLCFVVEWVMWVLVUGUOZVVDWVMHUYRUKVQVRWVOVSZWVOVV
        FUOVVDXHWVOVQWDVUJUYRAVUGVQWDUYRWHWVJVUOUXKWPWVOUYQFGLWVIUYSUKXAVQVRWVP
        AVQVUBLWHWVJVUGVVCXQWVLVUGXOUYSXAVDWVOWAUYRUKUXLYNWVOVUCUOZUYQUYPLUIZUI
        UYQVUAUIZUYTWVQUYQWVRVUAWVQVUCVUAXAVDZWVRVUAUNWVOVUCXOWVQVUSWVTAVUSWVJV
        UGVUCVVAUXMCFUYTXAXRVPGVQVUAXALSYSYDYAWVQVUGUYTXAVDWVSUYTUNWVLVUGVUCYTU
        YPUYSYFCFUYTXAVUAVUQYSXDYLAWVJVUGYTUXNUXOYEYCUXPUXQUYBUXRUXSUXTXNTAUYCU
        YD $.

      $( Since by ~ pserulm the series converges uniformly, it is also
         continuous by ~ ulmcn .  (Contributed by Mario Carneiro,
         3-Mar-2015.) $)
      psercn2 $p |- ( ph -> F e. ( S -cn-> CC ) ) $=
        ( vk cc0 cn0 nn0uz 0zd cv caddc cfv cseq cmpt cc ccncf co wcel cres wss
        wa cabs ccnv cicc cima cdm cnvimass cr absf fdmi sseqtri syl6ss resmptd
        adantr cfz cexp cmul csu wceq simplr elfznn0 pserval2 syl2anc cuz simpr
        adantl syl6eleq ffvelrnda adantlr expcl adantll mulcld sylan2 mpteq2dva
        wf fsumser ccnfld ctopn ccn eqid ctopon cnfldtopon fzfid ffvelrn syl2an
        a1i cnmptc expcn syl ctx mulcn cnmpt12f fsumcn cncfcn1 eqeltrrd rescncf
        syl6eleqr sylc fmptd pserulm ulmcn ) AFLJUDUEUFAUGAGUECFGUHZUICUHZKUJZU
        DUKUJZULZFUMUNUOZLAXTUEUPZUSZCUMYCULZFUQZYDYEYGCUMFYCAFUMURZYFAFUTVAUDM
        VBUOZVCZUMUBYLUTVDUMUTYKVEUMVFUTVGVHVIVJVLZVKYGYJYHUMUMUNUOZUPYIYEUPYMY
        GCUMUDXTVMUOZUCUHZDUJZYAYPVNUOZVOUOZUCVPZULZYHYNYGCUMYTYCYGYAUMUPZUSZYS
        UCYBUDXTUUCYPYOUPZUSUUBYPUEUPZYPYBUJYSVQYGUUBUUDVRUUDUUEUUCYPXTVSZWDBDI
        KYPYAOVTWAYGXTUDWBUJZUPUUBYGXTUEUUGAYFWCUFWEVLUUDUUCUUEYSUMUPUUFUUCUUEU
        SYQYRYGUUEYQUMUPZUUBYGUEUMYPDAUEUMDWMZYFQVLZWFWGUUBUUEYRUMUPYGYAYPWHWIW
        JWKWNWLYGUUAWOWPUJZUUKWQUOZYNYGCYOYSUCUUKUUKUMUUKWRZUUKUMWSUJUPZYGUUKUU
        MWTZXDYGUDXTXAYGUUDUSZCYQYRVOUUKUUKUUKUUKUMUUNUUPUUOXDZUUPCYQUUKUUKUMUM
        UUQUUQYGUUIUUEUUHUUDUUJUUFUEUMYPDXBXCXEUUPUUECUMYRULUULUPUUDUUEYGUUFWDC
        UUKYPUUMXFXGVOUUKUUKXHUOUUKWQUOUPUUPUUKUUMXIXDXJXKUUKUUMXLXOXMUMUMFYHXN
        XPXMSXQABCDEFGHIJKLMNOPQRSTUAUBXRXS $.
    $}

    ${
      psercn.s $e |- S = ( `' abs " ( 0 [,) R ) ) $.
      ${
        psercnlem2.i $e |- ( ( ph /\ a e. S ) ->
          ( M e. RR+ /\ ( abs ` a ) < M /\ M < R ) ) $.
        $( Lemma for ~ psercn .  (Contributed by Mario Carneiro,
           18-Mar-2015.) $)
        psercnlem2 $p |- ( ( ph /\ a e. S ) ->
          ( a e. ( 0 ( ball ` ( abs o. - ) ) M ) /\
            ( 0 ( ball ` ( abs o. - ) ) M ) C_ ( `' abs " ( 0 [,] M ) ) /\
            ( `' abs " ( 0 [,] M ) ) C_ S ) ) $=
          ( wcel vu vv vw vz cv wa cc0 cabs cmin ccom cbl cfv co ccnv cicc cima
          wss cico cc cdm cnvimass absf fdmi sseqtri eqsstri a1i sselda cle wbr
          cr clt abscld absge0d crp simp2d cxr w3a wb 0re simp1d elico2 sylancr
          rpxrd mpbir3and wf wfn ffn elpreima mp2b sylanbrc wceq eqid cnbl0 syl
          eleqtrd icossicc imass2 mp1i cpnf iccssxr adantr sseldi simp3d df-ico
          eqsstr3d radcnvcl df-icc xrlelttr ixxss2 syl2anc syl6sseqr 3jca ) AMU
          EZFTZUFZXMUGKUHUIUJZUKULUMZTXQUHUNZUGKUOUMZUPZUQXTFUQXOXMXRUGKURUMZUP
          ZXQXOXMUSTZXMUHULZYATZXMYBTZAFUSXMFUSUQAFXRUGEURUMZUPZUSRYHUHUTUSUHYG
          VAUSVJUHVBVCVDVEVFVGZXOYEYDVJTZUGYDVHVIZYDKVKVIZXOXMYIVLXOXMYIVMXOKVN
          TZYLKEVKVIZSVOXOUGVJTKVPTZYEYJYKYLVQVRVSXOKXOYMYLYNSVTWCZUGKYDWAWBWDU
          SVJUHWEUHUSWFYFYCYEUFVRVBUSVJUHWGUSXMYAUHWHWIWJXOYOYBXQWKYPXPKXPWLWMW
          NZWOXOXQYBXTYQYAXSUQYBXTUQXOUGKWPYAXSXRWQWRXEXOXTYHFXOXSYGUQZXTYHUQXO
          EVPTYNYRXOUGWSUOUMZVPEUGWSWTAEYSTXNABDEHJLNPQXFXAXBXOYMYLYNSXCUAUBUCU
          DUGKEUOVHVKVHURVKUAUBUCXDUAUBUCXGUDUEKEXHXIXJXSYGXRWQWNRXKXL $.
      $}

      psercn.m $e |- M = if ( R e. RR ,
        ( ( ( abs ` a ) + R ) / 2 ) , ( ( abs ` a ) + 1 ) ) $.
      $( Lemma for ~ psercn .  (Contributed by Mario Carneiro, 18-Mar-2015.) $)
      psercnlem1 $p |- ( ( ph /\ a e. S ) ->
        ( M e. RR+ /\ ( abs ` a ) < M /\ M < R ) ) $=
        ( clt cv wcel wa crp cabs cfv wbr cr caddc co c2 cdiv c1 cif cc wss cc0
        ccnv cico cima cdm cnvimass absf fdmi sseqtri eqsstri a1i sselda abscld
        readdcl sylan rehalfcld peano2re syl adantr ifclda syl5eqel 0re absge0d
        wn breq2 cle w3a simpr syl6eleq wf wfn wb ffn elpreima sylib simprd cxr
        mp2b cpnf cicc iccssxr radcnvcl sseldi elico2 mpbid simp3d avglt1 ltp1d
        sylancr syl6breqr lelttrd elrpd breq1 avglt2 rexrd xrlenlt syl2anc cmnf
        ifbothda wi 0xr pnfxr elicc1 simp2d ge0gtmnf xrre expr syl21anc sylbird
        mp2an con1d imp syl5eqbr 3jca ) AMUAZFUBZUCZKUDUBYKUEUFZKTUGKETUGYMKYMK
        EUHUBZYNEUIUJZUKULUJZYNUMUIUJZUNZUHSYMYOYQYRUHYMYOUCZYPYMYNUHUBZYOYPUHU
        BYMYKAFUOYKFUOUPAFUEURUQEUSUJZUTZUORUUCUEVAUOUEUUBVBUOUHUEVCVDVEVFVGVHZ
        VIZYNEVJVKVLYMYRUHUBZYOVTZYMUUAUUFUUEYNVMVNZVOVPVQZYMUQYNKUQUHUBZYMVRVG
        UUEUUIYMYKUUDVSYMYNYSKTYOYNYQTUGZYNYRTUGZYNYSTUGYMYQYRYQYSYNTWAYRYSYNTW
        AYTYNETUGZUUKYMUUMYOYMUUAUQYNWBUGZUUMYMYNUUBUBZUUAUUNUUMWCZYMYKUOUBZUUO
        YMYKUUCUBZUUQUUOUCZYMYKFUUCAYLWDRWEUOUHUEWFUEUOWGUURUUSWHVCUOUHUEWIUOYK
        UUBUEWJWNWKWLYMUUJEWMUBZUUOUUPWHVRYMUQWOWPUJZWMEUQWOWQAEUVAUBZYLABDEHJL
        NPQWRZVOWSZUQEYNWTXEXAXBVOZYMUUAYOUUMUUKWHUUEYNEXCVKXAYMUULUUGYMYNUUEXD
        VOXOSXFZXGXHUVFYMKYSETSYOYQETUGZYRETUGZYSETUGYMYQYRYQYSETXIYRYSETXIYTUU
        MUVGUVEYMUUAYOUUMUVGWHUUEYNEXJVKXAYMUUGUVHYMUVHYOYMUVHVTZEYRWBUGZYOYMUU
        TYRWMUBUVJUVIWHUVDYMYRUUHXKEYRXLXMYMUUTUUFXNETUGZUVJYOXPUVDUUHYMUUTUQEW
        BUGZUVKUVDAUVLYLAUUTUVLEWOWBUGZAUVBUUTUVLUVMWCZUVCUQWMUBWOWMUBUVBUVNWHX
        QXRUQWOEXSYFWKXTVOEYAXMUUTUUFUCUVKUVJYOEYRYBYCYDYEYGYHXOYIYJ $.

      $( An infinite series converges to a continuous function on the open disk
         of radius ` R ` , where ` R ` is the radius of convergence of the
         series.  (Contributed by Mario Carneiro, 4-Mar-2015.) $)
      psercn $p |- ( ph -> F e. ( S -cn-> CC ) ) $=
        ( cc vi vs vk ccnfld ctopn cfv crest co ccn ccncf wf ccnp wcel wral wfn
        cn0 csu cvv sumex rgenw fnmpt mp1i cc0 cabs cmin ccom cbl cres wceq clt
        cv wa wbr wss ccnv cico cima cdm cnvimass absf fdmi sseqtri eqsstri a1i
        cr sselda 0cn eqid cnmetdval sylancr abssub subid1d fveq2d 3eqtrd caddc
        c2 cdiv c1 cif breq2 cle w3a simpr syl6eleq wb ffn elpreima mp2b simprd
        sylib cxr cpnf cicc iccssxr radcnvcl adantr sseldi mpbid simp3d syl3anc
        0re syl cmpt syl5eq cseq weq fveq1d cbvmptv eqeltrrd ralrimiva sylanbrc
        fveq2 cuni ctop cncfcn eleqtrd restuni eleqtrrd mp2an ctopon wn eqbrtrd
        elico2 abscld avglt1 sylan ltp1d ifbothda syl6breqr cxmt crp psercnlem1
        cnxmet simp1d rpxrd elbl mpbir2and fvres reseq1i simp2d resmptd seqeq3d
        psercnlem2 sstrd mpteq2dv rpred psercn2 eqeltrd cncff ffnfv syl6ss ssid
        ffvelrnd cnfldtop cnfldtopon restid ax-mp eqcomi sylancl cncnpi syl2anc
        toponunii cnex ssexi restabs oveq1d cnt resttop df-ss cnfldtopn elrestr
        cin blopn isopn3i cnprest syl22anc mpbird resttopon cncnp syl6eleqr ) A
        IUDUEUFZFUGUHZUXAUIUHZFTUJUHZAFTIUKZIMVKZUXBUXAULUHUFUMZMFUNZIUXCUMZAIF
        UOZUXFIUFZTUMZMFUNUXEUPGVKCVKZJUFZUFZGUQZURUMZCFUNUXJAUXQCFUPUXOGUSUTCF
        UXPIUROVAVBAUXLMFAUXFFUMZVLZUXFIVCKVDVEVFZVGUFUHZVHZUFZUXKTUXSUXFUYAUMZ
        UYCUXKVIUXSUYDUXFTUMZVCUXFUXTUHZKVJVMZAFTUXFFTVNZAFVDVOZVCEVPUHZVQZTRUY
        KVDVRTVDUYJVSTWEVDVTWAWBWCZWDWFZUXSUYFUXFVDUFZKVJUXSUYFVCUXFVEUHVDUFZUX
        FVCVEUHZVDUFZUYNUXSVCTUMZUYEUYFUYOVIWGUYMVCUXFUXTUXTWHWIWJUXSUYRUYEUYOU
        YQVIWGUYMVCUXFWKWJUXSUYPUXFVDUXSUXFUYMWLWMWNUXSUYNEWEUMZUYNEWOUHWPWQUHZ
        UYNWRWOUHZWSZKVJUYSUYNUYTVJVMZUYNVUAVJVMZUYNVUBVJVMUXSUYTVUAUYTVUBUYNVJ
        WTVUAVUBUYNVJWTUXSUYSVLUYNEVJVMZVUCUXSVUEUYSUXSUYNWEUMZVCUYNXAVMZVUEUXS
        UYNUYJUMZVUFVUGVUEXBZUXSUYEVUHUXSUXFUYKUMZUYEVUHVLZUXSUXFFUYKAUXRXCRXDT
        WEVDUKVDTUOVUJVUKXEVTTWEVDXFTUXFUYJVDXGXHXJXIUXSVCWEUMEXKUMVUHVUIXEYAUX
        SVCXLXMUHZXKEVCXLXNAEVULUMUXRABDEHJLNPQXOXPXQVCEUYNUUCWJXRXSXPUXSVUFUYS
        VUEVUCXEUXSUXFUYMUUDZUYNEUUEUUFXRUXSVUDUYSUUAUXSUYNVUMUUGXPUUHSUUIUUBUX
        SUXTTUUJUFUMZUYRKXKUMZUYDUYEUYGVLXEVUNUXSUUMWDZUYRUXSWGWDZUXSKUXSKUUKUM
        ZUYNKVJVMZKEVJVMZABCDEFGHIJKLMNOPQRSUULZUUNZUUOZUXFUXTVCKTUUPXTUUQZUXFU
        YAIUURYBUXSUYATUXFUYBUXSUYBUYATUJUHZUMUYATUYBUKUXSUYBCUYAUXPYCZVVEUXSUY
        BCFUXPYCZUYAVHVVFIVVGUYAOUUSUXSCFUYAUXPUXSUYAUYIVCKXMUHVQZFUXSUYDUYAVVH
        VNZVVHFVNZABCDEFGHIJKLMNOPQRVVAUVCZUUTZUXSUYDVVIVVJVVKXSUVDZUVAYDUXSBCD
        EUYAUAGHVVFJUBUPUCUYAUBVKZWOUCVKZJUFZVCYEZUFZYCZYCKLNVVFWHAUPTDUKUXRPXP
        QUBUAUPVVSCUYAUAVKZWOUXNVCYEZUFZYCZUBUAYFZVVSCUYAVVNVWAUFZYCVWCUCCUYAVV
        RVWEUCCYFZVVNVVQVWAVWFVVPUXNWOVCVVOUXMJYLUVBYGYHVWDCUYAVWEVWBVVNVVTVWAY
        LUVEYDYHUXSKVVBUVFUXSVURVUSVUTVVAXSVVLUVGUVHZUYATUYBUVIYBVVDUVMYIYJMFTI
        UVJYKZAUXGMFUXSUXGUYBUXFUXBUYAUGUHZUXAULUHZUFZUMZUXSUYBUXFUXAUYAUGUHZUX
        AULUHZUFZVWKUXSUYBVWMUXAUIUHZUMUXFVWMYMZUMUYBVWOUMUXSUYBVVEVWPVWGUXSUYA
        TVNZTTVNZVVEVWPVIUXSUYAFTVVMUYLUVKZTUVLZUYATUXAVWMUXAUXAWHZVWMWHUXATUGU
        HZUXAUXAYNUMZVXCUXAVIUXAVXBUVNZUXAYNTTUXAUXAVXBUVOZUWBZUVPUVQUVRZYOUVSY
        PUXSUXFUYAVWQVVDUXSVXDVWRUYAVWQVIVXEVWTUYAUXATVXGYQWJYPUXFUYBVWMUXAVWQV
        WQWHUVTUWAUXSUXFVWJVWNUXSVWIVWMUXAULUXSVXDUYAFVNZFURUMZVWIVWMVIVXDUXSVX
        EWDZVVMVXJUXSFTUWCUYLUWDZWDZUYAFUXAYNURUWEXTUWFYGYRUXSUXBYNUMZVXIUXFUYA
        UXBUWGUFUFZUMUXEUXGVWLXEVXNUXSVXDVXJVXNVXEVXLFUXAURUWHYSZWDVVMUXSUXFUYA
        VXOVVDUXSVXNUYAUXBUMVXOUYAVIVXPUXSUYAFUWLZUYAUXBUXSVXIVXQUYAVIVVMUYAFUW
        IXJUXSVXDVXJUYAUXAUMZVXQUXBUMVXKVXMUXSVUNUYRVUOVXRVUPVUQVVCUXTVCKUXATUX
        AVXBUWJUWMXTUYAFUXAYNURUWKXTYIUYAUXBUWNWJYRAUXEUXRVWHXPUYAUXFIUXBUXAFTV
        XDUYHFUXBYMVIVXEUYLFUXATVXGYQYSVXGUWOUWPUWQYJUXBFYTUFUMZUXATYTUFUMZUXIU
        XEUXHVLXEVXTUYHVXSVXFUYLFUXATUWRYSVXFMIUXBUXAFTUWSYSYKUYHVWSUXDUXCVIUYL
        VXAFTUXAUXBUXAVXBUXBWHVXHYOYSUWT $.

      $( Lemma for ~ pserdv .  (Contributed by Mario Carneiro, 7-May-2015.) $)
      pserdvlem1 $p |- ( ( ph /\ a e. S ) ->
        ( ( ( ( abs ` a ) + M ) / 2 ) e. RR+ /\
          ( abs ` a ) < ( ( ( abs ` a ) + M ) / 2 ) /\
          ( ( ( abs ` a ) + M ) / 2 ) < R ) ) $=
        ( wcel cv wa cabs cfv caddc co c2 cdiv crp clt wbr cc wss ccnv cc0 cico
        cima cdm cnvimass cr absf fdmi sseqtri eqsstri sselda abscld psercnlem1
        a1i simp1d rpred readdcld 0red absge0d ltaddrpd lelttrd elrpd rphalfcld
        simp2d wb avglt1 syl2anc mpbid rehalfcld cxr cpnf cicc iccssxr radcnvcl
        rexrd sseldi adantr avglt2 simp3d xrlttrd 3jca ) AMUAZFTZUBZWPUCUDZKUEU
        FZUGUHUFZUITWSXAUJUKZXAEUJUKWRWTWRWTWRWSKWRWPAFULWPFULUMAFUCUNUOEUPUFZU
        QZULRXDUCURULUCXCUSULUTUCVAVBVCVDVHVEZVFZWRKWRKUITZWSKUJUKZKEUJUKZABCDE
        FGHIJKLMNOPQRSVGZVIZVJZVKZWRUOWSWTWRVLXFXMWRWPXEVMWRWSKXFXKVNVOVPVQWRXH
        XBWRXGXHXIXJVRZWRWSUTTZKUTTZXHXBVSXFXLWSKVTWAWBWRXAKEWRXAWRWTXMWCWIWRKX
        LWIAEWDTWQAUOWEWFUFWDEUOWEWGABDEHJLNPQWHWJWKWRXHXAKUJUKZXNWRXOXPXHXQVSX
        FXLWSKWLWAWBWRXGXHXIXJWMWNWO $.

      $d i n A $.
      pserdv.b $e |- B =
        ( 0 ( ball ` ( abs o. - ) ) ( ( ( abs ` a ) + M ) / 2 ) ) $.
      $( Lemma for ~ pserdv .  (Contributed by Mario Carneiro, 7-May-2015.) $)
      pserdvlem2 $p |- ( ( ph /\ a e. S ) -> ( CC _D ( F |` B ) ) =
        ( y e. B |-> sum_ k e. NN0
          ( ( ( k + 1 ) x. ( A ` ( k + 1 ) ) ) x. ( y ^ k ) ) ) ) $=
        ( vz vm vi vw vs cv wcel wa cc cn0 cc0 cfz co cfv csu cmpt cres c1 cmul
        caddc cexp nn0uz cr cnelprrecn a1i 0zd wf wss cabs cmin cxr cnxmet 0cnd
        fzfid crp clt wbr simp1d syl3anc syl5eqss adantr sselda elfznn0 ffvelrn
        rpxrd psergf syl2an fsumcl eqid fmptd cnex cvv ovex elmap sylibr simp3d
        syl cicc cseq cli ad2antrr ffvelrnda fveq2d eqtrd syl6eleq wb mpbid weq
        wceq fveq2 fveq1d sumeq2sdv fvmpt oveq2 mpteq2dv mptex adantl mpteq2dva
        ad2antlr cuz ax-mp oveq2d ffvelrnd expcl mulcld crab csup oveq1 oveq12d
        cdv cn cbvmptv peano2nn0 nn0cnd seqeq3d syl5eq eqtri eqeltrd cpr c2 cbl
        cmap ad3antrrr cdiv ccom cxmt pserdvlem1 blssm eqeltri ccncf cncff ccnv
        psercn cima psercnlem2 simp2d sstrd fssresd eqidd abscld rexrd radcnvcl
        cpnf iccssxr sseldi 0cn cnmetdval sylancl simpr elbl3 syl22anc eqbrtrrd
        subid1d xrlttrd radcnvlt2 isumclim2 breqtrrd sumeq1d fsumser 3eqtrd wfn
        sumex cz seqfn fneq2i mpbir dffn5 mpbi syl6eqr fvres 3brtr4d cif ccnfld
        0z culm ctopn crest ctop cnfldtop cnfldtopon toponunii restid cnfldtopn
        eqcomi syl5eqel w3a 3ad2ant1 3adant2 3ad2ant2 adantlr id syl2anr syldan
        blopn ovexd c0ex ifex dvmptres dvmptcmul dvmptcl 3impa pserval2 syl2anc
        dvexp2 dvmptfsum nnssnn0 resmpt cdm oveq1d eqtr4i syl6eq eleq1d cbvrabv
        mpteq2ia supeq1i rpred psercnlem1 cico absf fdmi sseqtri eqsstri avglt2
        cnvimass rpge0d rpcnd nn0ex eqbrtrd dvradcnv radcnvle xrltletrd pserulm
        absidd sumeq2dv breqtrd nnuz 1e0p1 fveq2i 1zzd sylan feq1d mpbird an32s
        cle serf elfznn nnne0d neneqd iffalsed sumeq2i nnz nnnn0d nncnd nnm1nn0
        fsumshftm oveq1i fzp1ss cdif wn eldif elfzuz2 elfzp12 ibi ord con1d imp
        sylbi difeq2i eleq2s iftrued eldifi mul01d fsumss sumeq1i mul12d ax-1cn
        1m1e0 pncan mulassd 3eqtr4d 3eqtr3d eqtr4d ulmshft syl5eqbr 1nn0 ulmres
        wo ulmdv ) AOUHZGUIZUJZUCUKUDIULCEUMIUHZUNUOZUEUHZCUHZLUPZUPZUEUQZURZUR
[encoded data, 8720 characters]
        XVAVVEWJWYIWKWLUKEWYIWMWURWPWQWYJWKWLVXHVVDVUJVXJ $.

      $( The derivative of a power series on its region of convergence.
         (Contributed by Mario Carneiro, 31-Mar-2015.) $)
      pserdv $p |- ( ph -> ( CC _D F ) = ( y e. S |->
       sum_ k e. NN0 ( ( ( k + 1 ) x. ( A ` ( k + 1 ) ) ) x. ( y ^ k ) ) ) ) $=
        ( cc cdv co cn0 cv c1 caddc cfv cmul cexp csu cmpt cdm wf dvfcn wss a1i
        ssid ccncf wcel psercn cncff syl cabs ccnv cico cima cnvimass absf fdmi
        cc0 cr sseqtri eqsstri dvbss wa cres ccnfld ctopn wceq adantr cdiv cmin
        cnt c2 ccom cbl cxmt cxr cnxmet sselda abscld crp clt psercnlem1 simp1d
        0cnd rpred readdcld 0red absge0d ltaddrpd lelttrd elrpd rphalfcld rpxrd
        wbr blssm syl5eqss eqid crest ctop cnfldtop cnfldtopon toponunii restid
        syl3anc ax-mp eqcomi dvres syl22anc resss syl6eqss dmss cicc pserdvlem1
        psercnlem2 syl6eleqr pserdvlem2 dmeqd cvv dmmptg sumex syl6eq weq oveq1
        oveq2d sumeq2sdv mprg eleqtrrd sseldd ex ssrdv eqssd feq2d feqmptd wfun
        mpbii ffun mp1i funssfv fveq1d fvmpt 3eqtrd mpteq2dva eqtrd cbvmptv ) A
        UCKUDUEZOGUFIUGZUHUIUEZUVBDUJUKUEZOUGZUVAULUEZUKUEZIUMZUNZCGUFUVCCUGZUV
        AULUEZUKUEZIUMZUNAUUTOGUVDUUTUJZUNUVHAOGUCUUTAUUTUOZUCUUTUPZGUCUUTUPKUQ
        ZAUVNGUCUUTAUVNGAGUCKUCUCURZAUCUTZUSAKGUCVAUEVBGUCKUPZABCDFGHJKLMNOPQRS
        TUAVCGUCKVDVEZGUCURZAGVFVGZVMFVHUEZVIZUCTUWDVFUOUCVFUWCVJUCVNVFVKVLVOVP
        ZUSZVQAOGUVNAUVDGVBZUVDUVNVBAUWGVRZUCKEVSUDUEZUOZUVNUVDUWHUWIUUTURZUWJU
        VNURUWHUWIUUTEVTWAUJZWFUJUJZVSZUUTUWHUVQUVSUWAEUCURUWIUWNWBUVQUWHUVRUSA
        UVSUWGUVTWCUWAUWHUWEUSUWHEVMUVDVFUJZMUIUEZWGWDUEZVFWEWHZWIUJUEZUCUBUWHU
        WRUCWJUJVBZVMUCVBUWQWKVBUWSUCURUWTUWHWLUSUWHWSUWHUWQUWHUWPUWHUWPUWHUWOM
        UWHUVDAGUCUVDUWFWMZWNZUWHMUWHMWOVBUWOMWPXIMFWPXIABCDFGHJKLMNOPQRSTUAWQW
        RZWTXAZUWHVMUWOUWPUWHXBUXBUXDUWHUVDUXAXCUWHUWOMUXBUXCXDXEXFXGXHUWRVMUWQ
        UCXJXSXKGEUCUWLKUWLUWLXLZUWLUCXMUEZUWLUWLXNVBUXFUWLWBUWLUXEXOUWLXNUCUCU
        WLUWLUXEXPXQXRXTYAYBYCUUTUWMYDYEZUWIUUTYFVEUWHUVDEUWJUWHUVDUWSEUWHUVDUW
        SVBUWSUWBVMUWQYGUEVIZURUXHGURABCDFGHJKLUWQNOPQRSTABCDFGHJKLMNOPQRSTUAYH
        YIWRUBYJZUWHUWJCEUVLUNZUOZEUWHUWIUXJABCDEFGHIJKLMNOPQRSTUAUBYKZYLUVLYMV
        BZUXKEWBCECEUVLYMYNUXMUVIEVBUFUVKIYOUSUUAYPUUBZUUCUUDUUEUUFUUGUUJUUHAOG
        UVMUVGUWHUVMUVDUWIUJZUVDUXJUJZUVGUWHUUTUUIZUWKUVDUWJVBUVMUXOWBUVOUXQUWH
        UVPUVNUCUUTUUKUULUXGUXNUVDUUTUWIUUMXSUWHUVDUWIUXJUXLUUNUWHUVDEVBUXPUVGW
        BUXICUVDUVLUVGEUXJCOYQZUFUVKUVFIUXRUVJUVEUVCUKUVIUVDUVAULYRYSYTUXJXLUFU
        VFIYOUUOVEUUPUUQUUROCGUVGUVLOCYQZUFUVFUVKIUXSUVEUVJUVCUKUVDUVIUVAULYRYS
        YTUUSYP $.

      $( The derivative of a power series on its region of convergence.
         (Contributed by Mario Carneiro, 31-Mar-2015.) $)
      pserdv2 $p |- ( ph -> ( CC _D F ) = ( y e. S |->
        sum_ k e. NN ( ( k x. ( A ` k ) ) x. ( y ^ ( k - 1 ) ) ) ) ) $=
        ( vm cc cdv co cn0 cv c1 caddc cfv cmul cexp csu cmpt cn cmin pserdv wa
        wcel cc0 nn0uz cuz nnuz 1e0p1 fveq2i eqtri wceq id fveq2 oveq12d oveq2d
        oveq1 1zzd 0zd nncn adantl adantr nnnn0 ffvelrn syl2an mulcld cabs ccnv
        wss cico cima cdm cnvimass absf fdmi sseqtri eqsstri a1i sselda nnm1nn0
        wf cr expcl isumshft ax-1cn nn0cn addcom sylancr fveq2d pncan2 sumeq2dv
        eqtr2d mpteq2dva eqtrd ) AUDKUEUFCGUGUCUHZUIUJUFZXLDUKZULUFZCUHZXKUMUFZ
        ULUFZUCUNZUOCGUPIUHZXSDUKZULUFZXOXSUIUQUFZUMUFZULUFZIUNZUOABCDEFGHUCJKL
        MNOPQRSTUAUBURACGXRYEAXOGUTZUSZYEUGUIXKUJUFZYHDUKZULUFZXOYHUIUQUFZUMUFZ
        ULUFZUCUNXRYGYDYMIUCUIVAUPUGVBUPUIVCUKVAUIUJUFZVCUKVDUIYNVCVEVFVGXSYHVH
        ZYAYJYCYLULYOXSYHXTYIULYOVIXSYHDVJVKYOYBYKXOUMXSYHUIUQVMVLVKYGVNYGVOYGX
        SUPUTZUSZYAYCYQXSXTYPXSUDUTYGXSVPVQYGUGUDDWQZXSUGUTXTUDUTYPAYRYFRVRXSVS
        UGUDXSDVTWAWBYGXOUDUTYBUGUTYCUDUTYPAGUDXOGUDWEAGWCWDVAFWFUFZWGZUDTYTWCW
        HUDWCYSWIUDWRWCWJWKWLWMWNWOXSWPXOYBWSWAWBWTYGUGYMXQUCYGXKUGUTZUSZYJXNYL
        XPULUUBYHXLYIXMULUUBUIUDUTZXKUDUTZYHXLVHXAUUAUUDYGXKXBVQZUIXKXCXDZUUBYH
        XLDUUFXEVKUUBYKXKXOUMUUBUUCUUDYKXKVHXAUUEUIXKXFXDVLVKXGXHXIXJ $.
    $}
  $}

  ${
    $d i j k m n w x y z M $.  $d i j k m n w x y z R $.  $d i j k n r x z X $.
    $d i j k m n r t v w x y z A $.  $d k n N $.  $d i j k m n r v w x y ph $.
    $d i j r w y F $.  $d i j k m n r w x y S $.
    abelth.1 $e |- ( ph -> A : NN0 --> CC ) $.
    abelth.2 $e |- ( ph -> seq 0 ( + , A ) e. dom ~~> ) $.
    $( Lemma for ~ abelth .  (Contributed by Mario Carneiro, 1-Apr-2015.) $)
    abelthlem1 $p |- ( ph -> 1 <_ sup ( { r e. RR | seq 0 ( + ,
      ( ( z e. CC |-> ( n e. NN0 |-> ( ( A ` n ) x. ( z ^ n ) ) ) ) ` r ) )
        e. dom ~~> } , RR* , < ) ) $=
      ( c1 cfv caddc cv cc cn0 cexp co cmul cmpt cc0 cseq wcel cabs cli cr crab
      cdm cxr clt csup cle abs1 eqid 1cnd feqmptd wa ffvelrnda mpteq2dva eqtr4d
      mulid1d wceq ax-1cn oveq1 nn0z 1exp syl sylan9eq oveq2d nn0ex mptex fvmpt
      cz ax-mp syl6eqr seqeq3d eqeltrrd radcnvle syl5eqbrr ) AHHUAIJEKBLDMDKZCI
      ZBKZVQNOZPOZQZQZIRSUBUEZTEUCUDUFUGUHZUIUJABCWEDWCHEWCUKZFWEUKAULAJCRSJHWC
      IZRSWDACWGJRACDMVRHPOZQZWGACDMVRQWIADMLCFUMADMWHVRAVQMTZUNVRAMLVQCFUOURUP
      UQHLTWGWIUSUTBHWBWILWCVSHUSZDMWAWHWKWJUNVTHVRPWKWJVTHVQNOZHVSHVQNVAWJVQVJ
      TWLHUSVQVBVQVCVDVEVFUPWFDMWHVGVHVIVKVLVMGVNVOVP $.

    abelth.3 $e |- ( ph -> M e. RR ) $.
    abelth.4 $e |- ( ph -> 0 <_ M ) $.
    abelth.5 $e |- S = { z e. CC |
      ( abs ` ( 1 - z ) ) <_ ( M x. ( 1 - ( abs ` z ) ) ) } $.
    $( Lemma for ~ abelth .  The peculiar region ` S ` , known as a _Stolz
       angle_ , is a teardrop-shaped subset of the closed unit ball containing
       ` 1 ` .  Indeed, except for ` 1 ` itself, the rest of the Stolz angle is
       enclosed in the open unit ball.  (Contributed by Mario Carneiro,
       31-Mar-2015.) $)
    abelthlem2 $p |- ( ph -> ( 1 e. S /\
      ( S \ { 1 } ) C_ ( 0 ( ball ` ( abs o. - ) ) 1 ) ) ) $=
      ( wcel cc0 cle wbr c1 cmin co cc cmul clt cr csn cdif cabs cbl cfv wss wa
      ccom 1cnd 0le0 simpl recnd mul01d syl5breqr cv oveq2 1m1e0 syl6eq abs00bd
      wceq fveq2 abs1 oveq2d breq12d elrab2 sylanbrc cun crab w3a wo necon3bbii
      wn wne velsn wi simprll 0cn eqid cnmetdval sylancl subid1d fveq2d simprlr
      eqtrd ax-1cn subcl sylancr abscld simpll 1re remulcld lenltd mpbid adantr
      resubcl simprr necomd wb subeq0 necon3bid mpbird absgt0 eqbrtrd syl5ibcom
      syl syl5eqr breq1d necon3bd caddc oveq2i abs2dif syl5eqbrr abssub breqtrd
      mpd 1red lesubaddd addsubd subdid mulid1d oveq1d eqtr4d breqtrrd peano2re
      letrd leaddsub2d adddird mulid2d 3brtr4d 0red simplr ltp1d lelttrd lemul2
      syl112anc leltned cxmt cxr cnxmet crp rpxr ax-mp elbl3 mpanl12 expr 3impb
      1rp syl5bi orrd elun sylibr rabssdv syl5eqss ssundif sylib jca syl2anc )
      AEUAKZLEMNZODKZDOUBZUCLOUDPUIZUEUFQZUGZUHHIUUSUUTUHZUVAUVEUVFORKZLELSQZMN
      ZUVAUVFUJUVFLLUVHMUKUVFEUVFEUUSUUTULUMZUNZUOOBUPZPQZUDUFZEOUVLUDUFZPQZSQZ
      MNZUVIBORDUVLOVAZUVNLUVQUVHMUVSUVMUVSUVMOOPQZLUVLOOPUQURUSUTUVSUVPLESUVSU
      VPUVTLUVSUVOOOPUVSUVOOUDUFZOUVLOUDVBVCUSVDURUSVDVEJVFVGUVFDUVBUVDVHZUGUVE
      UVFDUVRBRVIUWBJUVFUVRBRUWBUVFUVLRKZUVRVJZUVLUVBKZUVLUVDKZVKUVLUWBKUWDUWEU
      WFUWEVMUVLOVNZUWDUWFUWEUVLOBOVOVLUVFUWCUVRUWGUWFVPUVFUWCUVRUHZUWGUWFUVFUW
      HUWGUHZUHZUWFUVLLUVCQZOTNZUWJUWKUVOOTUWJUWKUVLLPQZUDUFZUVOUWJUWCLRKZUWKUW
      NVAUVFUWCUVRUWGVQZVRUVLLUVCUVCVSVTWAUWJUWMUVLUDUWJUVLUWPWBWCWEUWJUVOOTNOU
      VOVNZUWJUVQUVNTNZVMZUWQUWJUVRUWSUVFUWCUVRUWGWDZUWJUVNUVQUWJUVMUWJUVGUWCUV
      MRKZWFUWPOUVLWGWHZWIZUWJEUVPUUSUUTUWIWJZUWJOUAKZUVOUAKZUVPUAKWKUWJUVLUWPW
      IZOUVOWPWHWLZWMWNUWJUWROUVOUWJUVHUVNTNOUVOVAZUWRUWJUVHLUVNTUVFUVHLVAUWIUV
      KWOUWJUVMLVNZLUVNTNZUWJUXJOUVLVNZUWJUVLOUVFUWHUWGWQWRUWJUVGUWCUXJUXLWSWFU
      WPUVGUWCUHUVMLOUVLOUVLWTXAWHXBUWJUXAUXJUXKWSUXBUVMXCXFWNXDUXIUVHUVQUVNTUX
      ILUVPESUXILUVTUVPUROUVOOPUQXGVDXHXEXIXPUWJUVOOUXGUWJXQZUWJUVOOMNZEOXJQZUV
      OSQZUXOOSQZMNZUWJEUVOSQZUVOXJQZUXOUXPUXQMUWJUXTUXOMNUVOUXOUXSPQZMNUWJUVOU
      VQOXJQZUYAMUWJUVOOPQZUVQMNUVOUYBMNUWJUYCUVNUVQUWJUXFUXEUYCUAKUXGWKUVOOWPW
      AUXCUXHUWJUYCUVLOPQUDUFZUVNMUWJUYCUVOUWAPQZUYDMUWAOUVOPVCXKUWJUWCUVGUYEUY
      DMNUWPWFUVLOXLWAXMUWJUWCUVGUYDUVNVAUWPWFUVLOXNWAXOUWTYFUWJUVOOUVQUXGUXMUX
      HXRWNUWJUYAEUXSPQZOXJQUYBUWJEOUXSUVFERKUWIUVJWOZUWJUJZUWJUXSUWJEUVOUXDUXG
      WLZUMXSUWJUVQUYFOXJUWJUVQEOSQZUXSPQUYFUWJEOUVOUYGUYHUWJUVOUXGUMZXTUWJUYJE
      UXSPUWJEUYGYAYBWEYBYCYDUWJUXSUVOUXOUYIUXGUWJUUSUXOUAKZUXDEYEXFZYGXBUWJUXP
      UXSOUVOSQZXJQUXTUWJEOUVOUYGUYHUYKYHUWJUYNUVOUXSXJUWJUVOUYKYIVDWEUWJUXOUWJ
      UXOUYMUMYAYJUWJUXFUXEUYLLUXOTNUXNUXRWSUXGUXMUYMUWJLEUXOUWJYKUXDUYMUUSUUTU
      WIYLUWJEUXDYMYNUVOOUXOYOYPXBYQXBXDUWJUWOUWCUWFUWLWSZVRUWPUVCRYRUFKOYSKZUW
      OUWCUHUYOYTOUUAKUYPUUHOUUBUUCUVLUVCLORUUDUUEWHXBUUFUUGUUIUUJUVLUVBUVDUUKU
      ULUUMUUNDUVBUVDUUOUUPUUQUUR $.

    $( Lemma for ~ abelth .  (Contributed by Mario Carneiro, 31-Mar-2015.) $)
    abelthlem3 $p |- ( ( ph /\ X e. S ) ->
      seq 0 ( + , ( n e. NN0 |-> ( ( A ` n ) x. ( X ^ n ) ) ) ) e. dom ~~> ) $=
      ( wcel c1 cc0 cfv co caddc cn0 cc vr csn cabs cmin ccom wo cexp cmul cmpt
      cbl cv cseq cli cdm wa cun cdif wss abelthlem2 simprd ssundif sylibr elun
      sselda sylib feqmptd ffvelrnda mulid1d mpteq2dva eqtr4d elsni oveq1d wceq
      nn0z 1exp syl sylan9eq oveq2d eqcomd seqeq3d adantr eqeltrrd cxmt cxr 0cn
      cnxmet 1re rexri blssm mp3an simpr sseldi oveq1 mpteq2dv eqid nn0ex mptex
      cz fvmpt cr crab clt csup wf abscld rexrd rexr mp1i cpnf iccssxr radcnvcl
      cnmetdval sylancl subid1d fveq2d eqtrd wbr wb elbl3 mpanl12 sylancr mpbid
      cicc eqbrtrrd cle abelthlem1 xrltletrd radcnvlt2 jaodan syldan ) AGDMZGNU
      BZMZGONUCUDUEZUJPQZMZUFZRESEUKZCPZGYRUGQZUHQZUIZOULZUMUNZMZAYKUOGYLYOUPZM
      YQADUUFGADYLUQYOURZDUUFURANDMUUGABCDFHIJKLUSUTDYLYOVAVBVDGYLYOVCVEAYMUUEY
      PAYMUOZRCOULZUUCUUDUUHCUUBROAYMCESYSNUHQZUIZUUBACESYSUIUUKAESTCHVFAESUUJY
      SAYRSMZUOYSASTYRCHVGVHVIVJYMUUBUUKYMESUUAUUJYMUULUOYTNYSUHYMUULYTNYRUGQZN
      YMGNYRUGGNVKVLUULYRWRMUUMNVMYRVNYRVOVPVQVRVIVSVQVTAUUIUUDMYMIWAWBAYPUOZRG
      BTESYSBUKZYRUGQZUHQZUIZUIZPZOULUUCUUDUUNUUTUUBROUUNGTMZUUTUUBVMUUNYOTGYNT
      WCPMZOTMZNWDMZYOTURWFWENWGWHZYNONTWIWJAYPWKZWLZBGUURUUBTUUSUUOGVMZESUUQUU
      AUVHUUPYTYSUHUUOGYRUGWMVRWNUUSWOZESUUAWPWQWSVPVTUUNBCRUAUKUUSPOULUUDMUAWT
      XAWDXBXCZEUUSGUAUVIASTCXDYPHWAZUVJWOZUVGUUNGUCPZNUVJUUNUVMUUNGUVGXEXFNWTM
      UVDUUNWGNXGXHUUNOXIYCQWDUVJOXIXJUUNBCUVJEUUSUAUVIUVKUVLXKWLUUNGOYNQZUVMNX
      BUUNUVNGOUDQZUCPZUVMUUNUVAUVCUVNUVPVMUVGWEGOYNYNWOXLXMUUNUVOGUCUUNGUVGXNX
      OXPUUNYPUVNNXBXQZUVFUUNUVCUVAYPUVQXRZWEUVGUVBUVDUVCUVAUOUVRWFUVEGYNONTXSX
      TYAYBYDANUVJYEXQYPABCEUAHIYFWAYGYHWBYIYJ $.

    abelth.6 $e |- F = ( x e. S |->
      sum_ n e. NN0 ( ( A ` n ) x. ( x ^ n ) ) ) $.
    $( Lemma for ~ abelth .  (Contributed by Mario Carneiro, 31-Mar-2015.) $)
    abelthlem4 $p |- ( ph -> F : S --> CC ) $=
      ( vm cn0 cfv co cmul cc cv cexp csu wcel wa cmpt cc0 nn0uz 0zd wceq fveq2
      oveq2 oveq12d eqid ovex fvmpt adantl wf adantr ffvelrnda wss c1 cmin cabs
      cle crab ssrab2 eqsstri sselda expcl sylan mulcld abelthlem3 isumcl fmptd
      wbr a1i ) ABEPFUAZDQZBUAZVRUBRZSRZFUCTGAVTEUDZUEZWBFOPOUAZDQZVTWEUBRZSRZU
      FZUGPUHWDUIVRPUDZVRWIQWBUJWDOVRWHWBPWIWEVRUJWFVSWGWASWEVRDUKWEVRVTUBULUMW
      IUNVSWASUOUPUQWDWJUEVSWAWDPTVRDAPTDURWCIUSUTWDVTTUDWJWATUDAETVTETVAAEVBCU
      AZVCRVDQHVBWKVDQVCRSRVEVPZCTVFTMWLCTVGVHVQVIVTVRVJVKVLACDEOHVTIJKLMVMVNNV
      O $.

    ${
      abelth.7 $e |- ( ph -> seq 0 ( + , A ) ~~> 0 ) $.
      $( Lemma for ~ abelth .  (Contributed by Mario Carneiro, 1-Apr-2015.) $)
      abelthlem5 $p |- ( ( ph /\ X e. ( 0 ( ball ` ( abs o. - ) ) 1 ) ) ->
        seq 0 ( + , ( k e. NN0 |->
          ( ( seq 0 ( + , A ) ` k ) x. ( X ^ k ) ) ) ) e. dom ~~> ) $=
        ( c1 cfv wcel vm vj vi cc0 cabs cmin ccom cbl co wa cv cseq clt wbr cuz
        caddc wral cn0 cexp cmul cmpt cli cdm wrex nn0uz 0zd crp 1rp a1i climi0
        eqidd adantr simprl cr wceq oveq2 eqid ovex fvmpt adantl cc cxmt cnxmet
        cxr wss 0cn rpxr ax-mp blssm mp3an simplr sseldi abscld reexpcl eqeltrd
        sylan weq fveq2 oveq12d ffvelrnda serf ad2antrr expcl mulcld cdiv recnd
        wf absidm syl cnmetdval sylancl subid1d fveq2d eqtrd wb mpanl12 sylancr
        elbl3 mpbid eqbrtrrd eqbrtrd climrel releldmi 1red cle eluznn0 ffvelrnd
        geolim syldan absmuld absexpd oveq2d absge0d breqtrd simprr rspccva 1re
        breq1d wi ltle mpd lemul1ad 3brtr4d cvgcmpce rexlimddv ) AJUDRUEUFUGZUH
        SUIZTZUJZUAUKZUPDUDULZSZUESZRUMUNZUAUBUKZUOSZUQZUPFURFUKZUUKSZJUURUSUIZ
        UTUIZVAZUDULVBVCZTUBURAUUQUBURVDUUHAUULRUBUAUUKUDURVEAVFZRVGTZAVHVIAUUJ
        URTUJUULVKQVJVLUUIUUOURTZUUQUJZUJZRUCGURJUESZGUKZUSUIZVAZUVBUDUUOURVEUU
        IUVFUUQVMZUVHUCUKZURTZUJZUVNUVLSZUVIUVNUSUIZVNUVOUVQUVRVOZUVHGUVNUVKUVR
        URUVLUVJUVNUVIUSVPUVLVQUVIUVNUSVRVSZVTZUVHUVIVNTUVOUVRVNTZUVHJUVHUUGWAJ
        UUFWAWBSTZUDWATZRWDTZUUGWAWEWCWFUVEUWEVHRWGWHZUUFUDRWAWIWJAUUHUVGWKZWLZ
        WMZUVIUVNWNWPZWOUVPUVNUVBSZUVNUUKSZJUVNUSUIZUTUIZWAUVOUWKUWNVOZUVHFUVNU
        VAUWNURUVBFUCWQUUSUWLUUTUWMUTUURUVNUUKWRUURUVNJUSVPWSUVBVQUWLUWMUTVRVSZ
        VTUVPUWLUWMUVHURWAUVNUUKAURWAUUKXGZUUHUVGABDUDURVEUVDAURWABUKDKWTXAXBZW
        TUVHJWATZUVOUWMWATZUWHJUVNXCWPZXDWOUVHUPUVLUDULZRRUVIUFUIXEUIZVBUNUXBUV
        CTUVHUVIUCUVLUVHUVIUWIXFUVHUVIUESZUVIRUMUVHUWSUXDUVIVOUWHJXHXIUVHJUDUUF
        UIZUVIRUMUVHUXEJUDUFUIZUESZUVIUVHUWSUWDUXEUXGVOUWHWFJUDUUFUUFVQXJXKUVHU
        XFJUEUVHJUWHXLXMXNUVHUUHUXERUMUNZUWGUVHUWDUWSUUHUXHXOZWFUWHUWCUWEUWDUWS
        UJUXIWCUWFJUUFUDRWAXRXPXQXSXTYAUWAYHUXBUXCVBYBYCXIUVHYDUVHUVNUUPTZUJZUW
        NUESZRUVRUTUIZUWKUESRUVQUTUIYEUXKUXLUWLUESZUVRUTUIZUXMYEUXKUXLUXNUWMUES
        ZUTUIUXOUXKUWLUWMUXKURWAUVNUUKUVHUWQUXJUWRVLUVHUVFUXJUVOUVMUVNUUOYFWPZY
        GZUVHUXJUVOUWTUXQUXAYIZYJUXKUXPUVRUXNUTUXKJUVNUVHUWSUXJUWHVLUXQYKZYLXNU
        XKUXNRUVRUXKUWLUXRWMZUXKYDUVHUXJUVOUWBUXQUWJYIUXKUDUXPUVRYEUXKUWMUXSYMU
        XTYNUXKUXNRUMUNZUXNRYEUNZUVHUUQUXJUYBUUIUVFUUQYOUUNUYBUAUVNUUPUAUCWQZUU
        MUXNRUMUYDUULUWLUEUUJUVNUUKWRXMYRYPWPUXKUXNVNTRVNTUYBUYCYSUYAYQUXNRYTXK
        UUAUUBYAUXKUWKUWNUEUXKUVOUWOUXQUWPXIXMUXKUVQUVRRUTUXKUVOUVSUXQUVTXIYLUU
        CUUDUUE $.

      ${
        abelthlem6.1 $e |- ( ph -> X e. ( S \ { 1 } ) ) $.
        $( Lemma for ~ abelth .  (Contributed by Mario Carneiro,
           2-Apr-2015.) $)
        abelthlem6 $p |- ( ph -> ( F ` X ) =
          ( ( 1 - X ) x. sum_ n e. NN0
            ( ( seq 0 ( + , A ) ` n ) x. ( X ^ n ) ) ) ) $=
          ( cn0 co cc0 vk vi vm cfv cv cexp cmul csu c1 cmin cseq wcel wceq csn
          caddc eldifad oveq1 oveq2d sumeq2sdv sumex fvmpt syl cmpt nn0uz fveq2
          0zd weq oveq2 oveq12d eqid ovex adantl wa ffvelrnda cabs cle wbr crab
          cc ssrab2 eqsstri sseldi expcl sylan mulcld cli cfz cvv serf ccom cbl
          cdm wss abelthlem2 simprd sseldd abelthlem5 mpdan isumclim2 seqex a1i
          cdif 0nn0 sumeq1d fzfid wf adantr elfznn0 ffvelrn syl2an eqeltrd cshi
          fsumcl peano2zd cn nnuz 1e0p1 fveq2i eqtri eleq2i nnm1nn0 ax-1cn nncn
          cuz eqidd syl6eleq fsumser eqtr4d 3eqtr4d cz wb 0z mp2an ax-mp syl6eq
          c0 eqtrd simpr oveq1d subdird nn0ex mptex shftval expm1t nnnn0 mul12d
          sylancr mulcomd sylan2br seqfeq isermulc2 1z isershft sylib clim2ser2
          eqbrtrrd seq1 clt cr 0re ltm1 peano2zm fzn mpbi sylancl mul02d syl5eq
          sum0 isumcl addid1d breqtrd simpl fsumm1 eqtr3d pncan2d eqtr2d sersub
          climsub 1cnd mulid2d breqtrrd isumclim ) AIGUDZRFUEZDUDZIUWDUFSZUGSZF
          UHZUIIUJSRUWDUODTUKZUDZUWFUGSZFUHZUGSZAIEULUWCUWHUMAIEUIUNZQUPZBIRUWE
          BUEZUWDUFSZUGSZFUHUWHEGUWPIUMZRUWRUWGFUWSUWQUWFUWEUGUWPIUWDUFUQURUSOR
          UWGFUTVAVBAUWGUWMFUARUAUEZDUDZIUWTUFSZUGSZVCZTRVDAVFZUWDRULZUWDUXDUDZ
          UWGUMAUAUWDUXCUWGRUXDUAFVGZUXAUWEUXBUWFUGUWTUWDDVEUWTUWDIUFVHZVIUXDVJ
          UWEUWFUGVKVAVLZAUXFVMZUWEUWFARVSUWDDJVNZAIVSULZUXFUWFVSULAEVSIEUICUEZ
          UJSVOUDHUIUXNVOUDUJSUGSVPVQZCVSVRVSNUXOCVSVTWAUWOWBZIUWDWCWDZWEAUOUXD
          TUKZUWLIUWLUGSZUJSZUWMWFAUWLUXSUBUOUARUWTUWIUDZUXBUGSZVCZTUKZUOUARTUW
          TUIUJSZWGSZUCUEZDUDZUCUHZUXBUGSZVCZTUKZUXRTWHRVDUXEAUWKFUYCTRVDUXEUXF
          UWDUYCUDZUWKUMAUAUWDUYBUWKRUYCUXHUYAUWJUXBUWFUGUWTUWDUWIVEUXIVIUYCVJZ
          UWJUWFUGVKVAVLZUXKUWJUWFARVSUWDUWIAFDTRVDUXEUXLWIZVNZUXQWEZAITUIVOUJW
          JWKUDSZULUYDWFWLULAEUWNXBZUYSIAUIEULUYTUYSWMACDEHJKLMNWNWOQWPABCDEUAF
          GHIJKLMNOPWQWRZWSZUXRWHULAUOUXDTWTXAAUYLUXSTUYLUDZUOSZUXSWFAUXSUBUYKT
          TRVDTRULZAXCXAAUBUEZRULZVMZVUFUYKUDZTVUFUIUJSZWGSZUYHUCUHZIVUFUFSZUGS
          ZVSVUGVUIVUNUMAUAVUFUYJVUNRUYKUAUBVGZUYIVULUXBVUMUGVUOUYFVUKUYHUCVUOU
          YEVUJTWGUWTVUFUIUJUQURXDUWTVUFIUFVHZVIUYKVJZVULVUMUGVKVAVLVUHVULVUMVU
          HVUKUYHUCVUHTVUJXEVUHRVSDXFZUYGRULZUYHVSULZUYGVUKULAVURVUGJXGUYGVUJXH
          RVSUYGDXIZXJXMAUXMVUGVUMVSULUXPIVUFWCWDZWEXKZAUOUARIUYBUGSZVCZUIXLSZT
          UIUOSZUKZUOUYKVVGUKUXSWFAUOFVVFUYKVVGATUXEXNUWDVVGYDUDZULAUWDXOULZUWD
          VVFUDZUWDUYKUDZUMXOVVIUWDXOUIYDUDVVIXPUIVVGYDXQXRXSXTAVVJVMZUWDUIUJSZ
          VVEUDZIVVNUWIUDZIVVNUFSZUGSZUGSZVVKVVLVVMVVNRULZVVOVVSUMVVJVVTAUWDYAZ
          VLZUAVVNVVDVVSRVVEUWTVVNUMZUYBVVRIUGVWCUYAVVPUXBVVQUGUWTVVNUWIVEUWTVV
          NIUFVHVIURVVEVJZIVVRUGVKVAVBVVMUIVSULUWDVSULZVVKVVOUMYBVVJVWEAUWDYCVL
          UIUWDVVEUARVVDUUAUUBZUUCUUGVVMTVVNWGSZUYHUCUHZUWFUGSZVVPIVVQUGSZUGSVV
          LVVSVVMVWHVVPUWFVWJUGVVMUYHUCDTVVNVVMUYGVWGULZVMUYHYEVVMVVNRTYDUDZVWB
          VDYFVVMVURVUSVUTVWKAVURVVJJXGUYGVVNXHZVVAXJYGVVMUWFVVQIUGSZVWJAUXMVVJ
          UWFVWNUMUXPIUWDUUDWDVVMIVVQAUXMVVJUXPXGZAUXMVVTVVQVSULVVJUXPVWAIVVNWC
          XJZUUHYHVIVVMUXFVVLVWIUMZVVJUXFAUWDUUEVLUAUWDUYJVWIRUYKUXHUYIVWHUXBUW
          FUGUXHUYFVWGUYHUCUXHUYEVVNTWGUWTUWDUIUJUQURXDUXIVIVUQVWHUWFUGVKVAZVBV
          VMIVVPVVQVWOARVSUWIXFVVTVVPVSULVVJUYPVWARVSVVNUWIXIXJVWPUUFYIYIUUIUUJ
          AUOVVETUKUXSWFVQZVVHUXSWFVQZAUWLIUBUYCVVETRVDUXEUXPVUBVUHVUFUYCUDZVUF
          UWIUDZVUMUGSZVSVUGVXAVXCUMAUAVUFUYBVXCRUYCVUOUYAVXBUXBVUMUGUWTVUFUWIV
          EVUPVIZUYNVXBVUMUGVKVAVLZVUHVXBVUMARVSVUFUWIUYPVNVVBWEXKZVUHVUFVVEUDZ
          IVXCUGSZIVXAUGSVUGVXGVXHUMAUAVUFVVDVXHRVVEVUOUYBVXCIUGVXDURVWDIVXCUGV
          KVAVLVUHVXAVXCIUGVXEURYHUUKTYJULZUIYJULVWSVWTYKYLUULUXSUOVVETUIVWFUUM
          YMUUNUUPUUOAVUDUXSTUOSUXSAVUCTUXSUOAVUCTITUFSZUGSZTVUCTUYKUDZVXKVXIVU
          CVXLUMYLUOUYKTUUQYNVUEVXLVXKUMXCUATUYJVXKRUYKUWTTUMZUYITUXBVXJUGVXMUY
          IYPUYHUCUHTVXMUYFYPUYHUCVXMUYFTTUIUJSZWGSZYPVXMUYEVXNTWGUWTTUIUJUQURV
          XNTUURVQZVXOYPUMZTUUSULVXPUUTTUVAYNVXIVXNYJULZVXPVXQYKYLVXIVXRYLTUVBY
          NTVXNUVCYMUVDYOXDUYHUCUVHYOUWTTIUFVHVIVUQTVXJUGVKVAYNXSAVXJAUXMVUEVXJ
          VSULUXPXCITWCUVEUVFUVGURAUXSAIUWLUXPAUWKFUYCTRVDUXEUYOUYRVUAUVIZWEUVJ
          YQUVKARVSVUFUYDAUBUYCTRVDUXEVXFWIVNARVSVUFUYLAUBUYKTRVDUXEVVCWIVNVUHF
          UYCUYKUXDTVUFVUHVUFRVWLAVUGYRVDYFVUHAUXFUYMVSULUWDTVUFWGSULZAVUGUVLZU
          WDVUFXHZUXKUYMUWKVSUYOUYRXKXJVUHAUXFVVLVSULVXTVYAVYBUXKVVLVWIVSUXFVWQ
          AVWRVLZUXKVWHUWFUXKVWGUYHUCUXKTVVNXEUXKVURVUSVUTVWKAVURUXFJXGZVWMVVAX
          JXMZUXQWEXKXJVUHAUXFUXGUYMVVLUJSZUMVXTVYAVYBUXKUWGUWKVWIUJSZUXGVYFUXK
          UWGUWJVWHUJSZUWFUGSVYGUXKUWEVYHUWFUGUXKVYHVWHUWEUOSZVWHUJSUWEUXKUWJVY
          IVWHUJUXKTUWDWGSZUYHUCUHUWJVYIUXKUYHUCDTUWDUXKUYGVYJULZVMUYHYEUXKUWDR
          VWLAUXFYRVDYFZUXKVURVUSVUTVYKVYDUYGUWDXHVVAXJZYGUXKUYHUWEUCTUWDVYLVYM
          UYGUWDDVEUVMUVNYSUXKVWHUWEVYEUXLUVOUVPYSUXKUWJVWHUWFUYQVYEUXQYTYQUXJU
          XKUYMUWKVVLVWIUJUYOVYCVIYIXJUVQUVRAUWMUIUWLUGSZUXSUJSUXTAUIIUWLAUVSUX
          PVXSYTAVYNUWLUXSUJAUWLVXSUVTYSYQUWAUWBYQ $.

        $( Lemma for ~ abelth .  (Contributed by Mario Carneiro,
           8-May-2015.) $)
        abelthlem7a $p |- ( ph -> ( X e. CC /\
          ( abs ` ( 1 - X ) ) <_ ( M x. ( 1 - ( abs ` X ) ) ) ) ) $=
          ( c1 cmin co wcel cc cabs cfv cmul cle wbr wa csn eldifad wceq fveq2d
          cv oveq2 fveq2 oveq2d breq12d elrab2 sylib ) AIEUAIUBUARISTZUCUDZHRIU
          CUDZSTZUETZUFUGZUHAIERUIQUJRCUMZSTZUCUDZHRVFUCUDZSTZUETZUFUGVECIUBEVF
          IUKZVHVAVKVDUFVLVGUTUCVFIRSUNULVLVJVCHUEVLVIVBRSVFIUCUOUPUPUQNURUS $.

        abelthlem7.2 $e |- ( ph -> R e. RR+ ) $.
        abelthlem7.3 $e |- ( ph -> N e. NN0 ) $.
        abelthlem7.4 $e |- ( ph -> A. k e. ( ZZ>= ` N )
          ( abs ` ( seq 0 ( + , A ) ` k ) ) < R ) $.
        abelthlem7.5 $e |- ( ph -> ( abs ` ( 1 - X ) ) < ( R / ( sum_ n e.
          ( 0 ... ( N - 1 ) ) ( abs ` ( seq 0 ( + , A ) ` n ) ) + 1 ) ) ) $.
        $( Lemma for ~ abelth .  (Contributed by Mario Carneiro,
           2-Apr-2015.) $)
        abelthlem7 $p |- ( ph ->
          ( abs ` ( F ` X ) ) < ( ( M + 1 ) x. R ) ) $=
          ( cfv cabs c1 cmin co cc0 cfz caddc cseq cexp cmul csu cuz abelthlem4
          cv csn eldifad ffvelrnd abscld wcel ax-1cn cle wbr abelthlem7a simpld
          cc subcl sylancr fzfid cn0 elfznn0 wa nn0uz 0zd ffvelrnda expcl sylan
          serf mulcld sylan2 fsumcl cmpt eqid wceq oveq2 ovex syl syldan simprd
          fvmpt cli eqeltrd mpbid peano2re rpred remulcld oveq2d 3eqtrd eqbrtrd
          fveq2d clt fsumrecl absmuld absge0d 1red adantr 0cn sylancl eqtrd crp
          cr wb 1re exple1 syl31anc lemul2ad recnd letrd lelttrd cdiv syl112anc
          ltled mpbird absidm seqex breldm lemul1ad rerpdivcld isumclim2 eqtr4d
          wne rpcnd breqtrd rpne0d mulid2d mul12d nn0zd eluznn0 oveq12d cdm cbl
          fveq2 ccom cdif wss abelthlem2 sseldd abelthlem5 adantl iserex isumcl
          mpdan readdcld abelthlem6 isumsplit abstrid fsumabs reexpcl cnmetdval
          adddid subid1d cxmt cxr cnxmet rpxr ax-mp elbl3 mpanl12 eqbrtrrd ltle
          1rp mpd simpr absexp eqtr2d mulid1d 3brtr3d fsumle ltp1d 0red fsumge0
          wi ltmuldiv fvex cz uzid geolim2 expge0d wral breq1d rspccva cvgcmpce
          3brtr4d isumrecl eldifsni necomd necon3bid absrpcld iserabs isermulc2
          subeq0 reexpcld difrp isumle isumclim rpdivcld div12d resubcl lemul2d
          rpge0d mulcomd lemuldivd divassd ledivmul lemuldiv2d ltleaddd adddird
          posdif 1cnd addcomd breqtrrd ) ALIUEZUFUEZUGLUHUIZUJKUGUHUIZUKUIZHUSZ
[encoded data, 5280 characters]
          AEWXEYSXAAVXGEWYDWXEUYDXBUYEYC $.
      $}

      $( Lemma for ~ abelth .  (Contributed by Mario Carneiro, 2-Apr-2015.) $)
      abelthlem8 $p |- ( ( ph /\ R e. RR+ ) -> E. w e. RR+ A. y e. S
    ( ( abs ` ( 1 - y ) ) < w -> ( abs ` ( ( F ` 1 ) - ( F ` y ) ) ) < R ) ) $=
        ( cc0 c1 vk vj vi vm crp wcel wa cv caddc cseq cfv cabs co cdiv clt wbr
        cuz wral cmin wi cn0 nn0uz 0zd id ge0p1rpd rpdivcl syl2anr eqidd adantr
        wrex cli climi0 cfz csu cr fzfid cc wf ffvelrnda elfznn0 ffvelrn syl2an
        serf fsumrecl ad2antrr cle absge0d fsumge0 rpdivcld wceq cneg cmul cdif
        abscld csn ccom cbl wss abelthlem2 simpld cexp oveq1 nn0z 1exp sylan9eq
        cz syl oveq2d sumeq2dv sumex fvmpt mulid1d eqcomd isumclim eqtrd oveq1d
        eqeltrd df-neg syl6eqr fveq2d abelthlem4 absnegd adantlr ad2ant2r fveq2
        simplll sylan9eqr abs00bd sylan simpllr rpgt0d eqbrtrd ad3antrrr simprr
        wne cdm simprll eldifsn sylanbrc weq simplrl breq1d sylib oveq1i oveq2i
        simplrr cbvralv simprlr cbvsumv syl6breq abelthlem7 adantl rpcnd rpne0d
        rpcn divcan2d breqtrd anassrs pm2.61dane ralrimiva breq2 imbi1d ralbidv
        expr rspcev syl2anc rexlimddv ) AGUEUFZUGZUAUHZUIFSUJZUKZULUKZGKTUIUMZU
        NUMZUOUPZUAUBUHZUQUKZURZTCUHZUSUMULUKZEUHZUOUPZTJUKZUVTJUKZUSUMZULUKZGU
        OUPZUTZCHURZEUEVJZUBVAUVIUVLUVOUBUAUVKSVAVBUVIVCUVHUVHUVNUEUFZUVOUEUFZA
        UVHVDAKNOVEZGUVNVFVGZUVIUVJVAUFUGUVLVHAUVKSVKUPZUVHRVIVLUVIUVQVAUFZUVSU
        GZUGZUVOSUVQTUSUMZVMUMZUCUHZUVKUKZULUKZUCVNZTUIUMZUNUMZUEUFUWAUXGUOUPZU
        WHUTZCHURZUWKUWSUVOUXFUVIUWMUWRUWOVIUWSUXEAUXEVOUFUVHUWRAUXAUXDUCASUWTV
        PZAUXBUXAUFZUGZUXCAVAVQUVKVRUXBVAUFUXCVQUFUXLAEFSVAVBAVCZAVAVQUWBFLVSWC
        UXBUWTVTVAVQUXBUVKWAWBZWNZWDWEASUXEWFUPUVHUWRAUXAUXDUCUXKUXPUXMUXCUXOWG
        WHWEVEWIUWSUXICHUWSUVTHUFZUXHUWHUWSUXQUXHUGZUGZUWGUWEULUKZGUOUVIUXQUWGU
        XTWJZUWRUXHAUXQUYAUVHAUXQUGZUWGUWEWKZULUKUXTUYBUWFUYCULUYBUWFSUWEUSUMUY
        CUYBUWDSUWEUSAUWDSWJUXQAUWDVAIUHZFUKZTWLUMZIVNZSATHUFZUWDUYGWJAUYHHTWOW
        MZSTULUSWPWQUKUMWRADFHKLMNOPWSWTBTVAUYEBUHZUYDXAUMZWLUMZIVNUYGHJUYJTWJZ
        VAUYLUYFIUYMUYDVAUFZUGUYKTUYEWLUYMUYNUYKTUYDXAUMZTUYJTUYDXAXBUYNUYDXFUF
        UYOTWJUYDXCUYDXDXGXEXHXIQVAUYFIXJXKXGAUYFSIFSVAVBUXNAUYNUGZUYFUYEUYPUYE
        AVAVQUYDFLVSZXLZXMUYPUYFUYEVQUYRUYQXQRXNXOZVIXPUWEXRXSXTUYBUWEAHVQUVTJA
        BDFHIJKLMNOPQYAVSYBXOYCYDUXSUXTGUOUPZUVTTUXSUVTTWJZUGUXTSGUOUXSAVUAUXTS
        WJAUVHUWRUXRYFAVUAUGUWEVUAAUWEUWDSUVTTJYEUYSYGYHYIUXSSGUOUPVUAUXSGAUVHU
        WRUXRYJYKVIYLUWSUXRUVTTYOZUYTUWSUXRVUBUGZUGZUXTUVNUVOWLUMZGUOVUDBDFUVOH
        UDIJKUVQUVTAVAVQFVRUVHUWRVUCLYMAUVKVKYPUFUVHUWRVUCMYMAKVOUFUVHUWRVUCNYM
        ASKWFUPUVHUWRVUCOYMPQAUWPUVHUWRVUCRYMVUDUXQVUBUVTUYIUFUWSUXQUXHVUBYQUWS
        UXRVUBYNUVTHTYRYSUVIUWMUWRVUCUWOWEUVIUWQUVSVUCUUAVUDUVSUDUHZUVKUKZULUKZ
        UVOUOUPZUDUVRURUVIUWQUVSVUCUUFUVPVUIUAUDUVRUAUDYTZUVMVUHUVOUOVUJUVLVUGU
        LUVJVUFUVKYEXTUUBUUGUUCVUDUWAUXGUVOUXAUYDUVKUKZULUKZIVNZTUIUMZUNUMUOUWS
        UXQUXHVUBUUHUXFVUNUVOUNUXEVUMTUIUXAUXDVULUCIUCIYTUXCVUKULUXBUYDUVKYEXTU
        UIUUDUUEUUJUUKUVIVUEGWJUWRVUCUVIGUVNUVHGVQUFAGUUOUULUVIUVNAUWLUVHUWNVIZ
        UUMUVIUVNVUOUUNUUPWEUUQUURUUSYLUVDUUTUWJUXJEUXGUEUWBUXGWJZUWIUXICHVUPUW
        CUXHUWHUWBUXGUWAUOUVAUVBUVCUVEUVFUVG $.
    $}

    $( Lemma for ~ abelth .  By adjusting the constant term, we can assume that
       the entire series converges to ` 0 ` .  (Contributed by Mario Carneiro,
       1-Apr-2015.) $)
    abelthlem9 $p |- ( ( ph /\ R e. RR+ ) -> E. w e. RR+ A. y e. S
    ( ( abs ` ( 1 - y ) ) < w -> ( abs ` ( ( F ` 1 ) - ( F ` y ) ) ) < R ) ) $=
      ( co cn0 cc0 vi vk vm crp wcel wa cmin cabs cfv clt wbr wceq csu cif cmpt
      c1 cv cexp cmul wi wral wrex cc wf a1i ffvelrn syl2an nn0uz 0zd ffvelrnda
      0nn0 eqidd isumcl adantr subcld ifcld eqid fmptd caddc cseq cli cdm 1e0p1
      cz 1z eqeltrri cuz cn fveq2i eqtri eleq2i nnnn0 adantl weq eqeq1 ifbieq2d
      nnuz fveq2 ovex fvex ifex fvmpt syl nnne0 neneqd iffalsed sylan2br seqfeq
      wne eqtrd isumclim2 clim2ser seq1 ax-mp oveq2i syl6breq eqbrtrd clim2ser2
      0z syl5eq breqtrd oveq1 nn0z 1exp sylan9eq oveq12d sumeq2dv sumex adantlr
      mulid1d oveq2d oveq1d cbvsumv breqtrrd isumclim oveq2 expcl sylan mulcld
      wss iftrue sylancl npncan2 syl2anc seqex c0ex breldm abelthlem8 cdif ccom
      wb csn abelthlem2 simpld ad2antrr eqtr4d eqeltrd syl6eq subidd oveqan12rd
      cbl cle crab ssrab2 eqsstri 3eqtr4d abelthlem3 sumeq2sdv exp0d abelthlem4
      sselda npncand ffvelrnd nnncan2d fveq2d breq1d imbi2d ralbidva rexbidv
      mpbid ) AGUDUEZUFUPCUQZUGRUHUIEUQUJUKZUPBHSUAUQZUBSUBUQZTULZTFUIZSUCUQZFU
      IZUCUMZUGRZUWEFUIZUNZUOZUIZBUQZUWDURRZUSRZUAUMZUOZUIZUWBUWTUIZUGRZUHUIZGU
      JUKZUTZCHVAZEUDVBZUWCUPJUIZUWBJUIZUGRZUHUIZGUJUKZUTZCHVAZEUDVBZABCDEUWNGH
      UAUWTKAUBSUWMVCUWNAUWESUEZUFZUWFUWKUWLVCUXRUWGUWJASVCFVDZTSUEZUWGVCUEZUXQ
      LUXTUXQVKVESVCTFVFZVGAUWJVCUEZUXQAUWIUCFTSVHAVIZAUWHSUEUFZUWIVLZASVCUWHFL
      VJZMVMZVNVOASVCUWEFLVJZVPZUWNVQZVRZAVSUWNTVTZTWAUKUYMWAWBUEAUYMUWJUWGUGRZ
      TUYMUIZVSRZTWAAUYNUAUWNTTSVHUXTAVKVEZASVCUWDUWNUYLVJAVSUWNTUPVSRZVTVSFUYR
      VTZUYNWAAVSUAUWNFUYRUYRWDUEAUPUYRWDWCWEWFVEZUWDUYRWGUIZUEZAUWDWHUEZUWOUWD
      FUIZULWHVUAUWDWHUPWGUIVUAWQUPUYRWGWCWIWJWKZAVUCUFZUWOUWDTULZUWKVUDUNZVUDV
      UFUWDSUEZUWOVUHULZVUCVUIAUWDWLWMZUBUWDUWMVUHSUWNUBUAWNZUWFVUGUWLVUDUWKUWE
      UWDTWOUWEUWDFWRZWPZUYKVUGUWKVUDUWGUWJUGWSZUWDFWTXAXBZXCVUFVUGUWKVUDVUFUWD
      TVUCUWDTXIAUWDXDWMXEXFZXJXGXHAUYSUWJTVSFTVTUIZUGRUYNWAAUWJUBFTTSVHUYQUYIA
      UWIUCFTSVHUYDUYFUYGMXKXLVURUWGUWJUGTWDUEZVURUWGULXSVSFTXMXNXOXPXQXRAUYPUY
      NUWKVSRZTUYOUWKUYNVSUYOTUWNUIZUWKVUSUYOVVAULXSVSUWNTXMXNUXTVVAUWKULVKUBTU
      WMUWKSUWNUWFUWKUWLUUAZUYKVUOXBXNWJXOAUYCUYAVUTTULUYHAUXSUXTUYALVKUYBUUBZU
      WJUWGUUCUUDXTYAZUYMTWAVSUWNTUUEUUFUUGXCNOPUWTVQZVVDUUHAUXHUXPUUKUWAAUXGUX
      OEUDAUXFUXNCHAUWBHUEZUFZUXEUXMUWCVVGUXDUXLGUJVVGUXCUXKUHVVGUXCUXIUWJUGRZU
      XJUWJUGRZUGRUXKVVGUXAVVHUXBVVIUGVVGUXASVUHUPUSRZUAUMZVVHVVGUPHUEZUXAVVKUL
      AVVLVVFAVVLHUPUULUUITUPUHUGUUJUVAUIRYTADFHKLMNOPUUMUUNZVNZBUPUWSVVKHUWTUW
      PUPULZSUWRVVJUAVVOVUIUFUWOVUHUWQUPUSVUIVUJVVOVUPWMVVOVUIUWQUPUWDURRZUPUWP
      UPUWDURYBVUIUWDWDUEVVPUPULUWDYCUWDYDXCYEYFYGVVESVVJUAYHXBXCVVGVVJVVHUAUWN
      TSVHVVGVIZVVGVUIUFZUWOVUHVVJVUIVUJVVGVUPWMVVRVUHVVRVUGUWKVUDVCAUWKVCUEVVF
      VUIAUWGUWJVVCUYHVOUUOAVUIVUDVCUEVVFASVCUWDFLVJYIZVPZYJZUUPVVRVVJVUHVCVWAV
      VTUUQAUYMVVHWAUKVVFAUYMTVVHWAVVDAVVHUWJUWJUGRTAUXIUWJUWJUGAUXISUWIUPUSRZU
      CUMZUWJAVVLUXIVWCULVVMBUPSIUQZFUIZUWPVWDURRZUSRZIUMZVWCHJVVOVWHSVWEUPUSRZ
      IUMVWCVVOSVWGVWIIVVOVWDSUEZUFVWFUPVWEUSVVOVWJVWFUPVWDURRZUPUWPUPVWDURYBVW
      JVWDWDUEVWKUPULVWDYCVWDYDXCYEYKYGSVWIVWBIUCIUCWNVWEUWIUPUSVWDUWHFWRYLYMUU
      RQSVWBUCYHXBXCASVWBUWIUCUYEUWIUYGYJYGXJYLAUWJUYHUUSXJYNVNYOXJVVGUXBSVUHUW
      BUWDURRZUSRZUAUMZVVIVVFUXBVWNULABUWBUWSVWNHUWTBCWNZSUWRVWMUAVUIVWOUWOVUHU
      WQVWLUSVUPUWPUWBUWDURYBZUUTYGVVESVWMUAYHXBWMVVGVWMVVIUAUBSUWMUWBUWEURRZUS
      RZUOZTSVHVVQVUIUWDVWSUIZVWMULZVVGUBUWDVWRVWMSVWSVULUWMVUHVWQVWLUSVUNUWEUW
      DUWBURYPZYFVWSVQZVUHVWLUSWSXBZWMVVRVUHVWLVVTVVGUWBVCUEZVUIVWLVCUEAHVCUWBH
      VCYTAHUPDUQZUGRUHUIKUPVXFUHUIUGRUSRUVBUKZDVCUVCVCPVXGDVCUVDUVEVEUVKZUWBUW
      DYQYRZYSVVGVSVWSTVTZUXJUWGUGRZTVXJUIZVSRZVVIWAVVGVXKUAVWSTTSVHUXTVVGVKVEZ
      VVGSVCUWDVWSVVGUBSVWRVCVWSVVGUXQUFZUWMVWQAUXQUWMVCUEVVFUYJYIVVGVXEUXQVWQV
      CUEVXHUWBUWEYQYRZYSVXCVRVJVVGVSVWSUYRVTZVSUBSUWLVWQUSRZUOZUYRVTZVXKWAAVXQ
      VXTULVVFAVSUAVWSVXSUYRUYTVUBAVUCVWTUWDVXSUIZULVUEVUFVWMVUDVWLUSRZVWTVYAVU
      FVUHVUDVWLUSVUQYLVUFVUIVXAVUKVXDXCVUFVUIVYAVYBULZVUKUBUWDVXRVYBSVXSVULUWL
      VUDVWQVWLUSVUMVXBYFVXSVQZVUDVWLUSWSXBZXCUVFXGXHVNVVGVXTUXJTVSVXSTVTZUIZUG
      RVXKWAVVGUXJUAVXSTTSVHVXNVVGSVCUWDVXSVVGUBSVXRVCVXSVXOUWLVWQAUXQUWLVCUEVV
      FUYIYIVXPYSVYDVRVJVVGVYFSVYBUAUMZUXJWAVVGVYBUAVXSTSVHVVQVUIVYCVVGVYEWMVVR
      VUDVWLVVSVXIYSADFHUBKUWBLMNOPUVGXKVVFUXJVYHULABUWBVWHVYHHJVWOVWHSVUDUWQUS
      RZUAUMVYHSVWGVYIIUAIUAWNVWEVUDVWFUWQUSVWDUWDFWRVWDUWDUWPURYPYFYMVWOSVYIVY
      BUAVWOUWQVWLVUDUSVWPYKUVHXTQSVYBUAYHXBWMYNXLVVGVYGUWGUXJUGVVGVYGUWGUWBTUR
      RZUSRZUWGVYGTVXSUIZVYKVUSVYGVYLULXSVSVXSTXMXNUXTVYLVYKULVKUBTVXRVYKSVXSUW
      FUWLUWGVWQVYJUSUWETFWRUWETUWBURYPZYFVYDUWGVYJUSWSXBXNWJVVGVYKUWGUPUSRUWGV
      VGVYJUPUWGUSVVGUWBVXHUVIZYKVVGUWGAUYAVVFVVCVNZYJXJXTYKYAXQXRVVGVXMVXKUWKV
      SRVVIVVGVXLUWKVXKVSVVGVXLUWKVYJUSRZUWKVXLTVWSUIZVYPVUSVXLVYQULXSVSVWSTXMX
      NUXTVYQVYPULVKUBTVWRVYPSVWSUWFUWMUWKVWQVYJUSVVBVYMYFVXCUWKVYJUSWSXBXNWJVV
      GVYPUWKUPUSRUWKVVGVYJUPUWKUSVYNYKVVGUWKVVGUWGUWJVYOAUYCVVFUYHVNZVOYJXJXTY
      KVVGUXJUWGUWJAHVCUWBJABDFHIJKLMNOPQUVJZVJZVYOVYRUVLXJYAYOXJYFVVGUXIUXJUWJ
      VVGHVCUPJAHVCJVDVVFVYSVNVVNUVMVYTVYRUVNXJUVOUVPUVQUVRUVSVNUVT $.

    $( Abel's theorem.  If the power series ` sum_ n e. NN0 A ( n ) ( x ^ n ) `
       is convergent at ` 1 ` , then it is equal to the limit from "below",
       along a Stolz angle ` S ` (note that the ` M = 1 ` case of a Stolz angle
       is the real line ` [ 0 , 1 ] ` ).  (Continuity on ` S \ { 1 } ` follows
       more generally from ~ psercn .)  (Contributed by Mario Carneiro,
       2-Apr-2015.)  (Revised by Mario Carneiro, 8-Sep-2015.) $)
    abelth $p |- ( ph -> F e. ( S -cn-> CC ) ) $=
      ( cfv co cc wcel c1 cabs vy vw vr vt vj vv ccnfld ctopn crest ccncf wf cv
      ccn ccnp wral abelthlem4 wa wceq cmin ccom cxp cres clt wbr wi abelthlem9
      crp wrex csn cdif cc0 abelthlem2 simpld ad2antrr simpr ovresd ax-1cn cmul
      cbl wss crab ssrab2 eqsstri sseldi eqid cnmetdval sylancr breq1d ffvelrnd
      cle eqtrd adantr ffvelrnda syl2anc imbi12d ralbidva mpbird ralrimiva cxmt
      rexbidv wb cnxmet xmetres2 mp2an cmopn cnfldtopn metrest metcnp mpbir2and
      a1i syl3anc fveq2d eleqtrrd wne eldifsn caddc cn0 cexp cmpt cdm cr adantl
      cxr csu a1d 1re cpnf 0cn mpan mp3an absf ax-mp toponunii cncfcn resttopon
      ctop ctopon cvv syl6eleqr ccld ccnv cseq cli csup cico cima simprd absge0
      w3a abscl abelthlem1 rexrd rexr mp1i cicc iccssxr radcnvcl xrltletr 3jcad
      mpan2d abssub subid1 3eqtrd elico2 3imtr4d imdistanda rexri elbl elpreima
      0re wfn ffn mp2b 3imtr4g ssrdv sstrd resmptd reseq1i difss resmpt syl6eqr
      eqtri c2 cdiv cnvimass fdmi sseqtri sseli pserval2 sumeq2dv fveq2 oveq12d
      cif oveq2 cbvsumv syl6reqr syl mpteq2ia psercn rescncf sylc eqeltrrd ssid
      sstri cnfldtop cnfldtopon restid eqcomi syl6eleq cncnpi cnex ssexi oveq1i
      restabs fveq1i cnt resttop snssd cnfldhaus sncld restcldi mp3an12 restuni
      cha cuni cldopn 3syl isopn3 sylib eleq2d biimpar cnprest syl22anc anassrs
      sylan2br pm2.61dane cncnp sylanbrc ) AGUGUHOZEUIPZUYSUMPZEQUJPZAEQGUKZGUA
      ULZUYTUYSUNPZOZRZUAEUOZGVUARZABCDEFGHIJKLMNUPZAVUGUAEAVUDERZUQZVUGVUDSVUL
      VUDSURZUQZGSVUEOZVUFAGVUORZVUKVUMAVUPVUCSVUDTUSUTZEEVAVBZPZUBULZVCVDZSGOZ
      VUDGOZVUQPZUCULZVCVDZVEZUAEUOZUBVGVHZUCVGUOZVUJAVVIUCVGAVVEVGRZUQZVVISVUD
      USPTOZVUTVCVDZVVBVVCUSPTOZVVEVCVDZVEZUAEUOZUBVGVHABUACUBDVVEEFGHIJKLMNVFV
      VLVVHVVRUBVGVVLVVGVVQUAEVVLVUKUQZVVAVVNVVFVVPVVSVUSVVMVUTVCVVSVUSSVUDVUQP
      ZVVMVVSSVUDVUQEASERZVVKVUKAVWAESVIZVJZVKSVUQVSOPZVTZACDEHIJKLMVLZVMZVNZVV
      LVUKVOZVPVVSSQRZVUDQRVVTVVMURVQVVSEQVUDESCULZUSPTOHSVWKTOUSPVRPWJVDZCQWAQ
      MVWLCQWBWCZVWIWDSVUDVUQVUQWEZWFWGWKWHVVSVVDVVOVVEVCVVSVVBQRVVCQRVVDVVOURV
      VSEQSGAVUCVVKVUKVUJVNVWHWIVVLEQVUDGAVUCVVKVUJWLWMVVBVVCVUQVWNWFWNWHWOWPWT
      WQWRAVUREWSORZVUQQWSORZVWAVUPVUCVVJUQXAVWOAVWPEQVTZVWOXBVWMVUQEQXCXDXJVWP
      AXBXJVWGUCUBUAVURVUQSGUYTUYSEQVWPVWQUYTVURXEOZURXBVWMVUQVURUYSVWRQEVURWEU
      YSUYSWEZXFZVWRWEXGXDVWTXHXKXIVNVUNVUDSVUEVULVUMVOXLXMAVUKVUDSXNZVUGVUKVXA
      UQAVUDVWCRZVUGVUDESXOAVXBUQZVUGGVWCVBZVUDUYTVWCUIPZUYSUNPZOZRZVXCVXDVUDUY
      SVWCUIPZUYSUNPZOZVXGVXCVXDVXIUYSUMPZRVXBVXDVXKRVXCVXDVWCQUJPZVXLAVXDVXMRV
      XBABTUUAVKXPVVEUDQFXQFULZDOZUDULVXNXRPVRPXSXSZOVKUUBUUCXTRUCYAWAYCVCUUDZU
      UEPZUUFZXQVXOBULZVXNXRPZVRPZFYDZXSZVWCVBZVXDVXMAVYEBVWCVYCXSZVXDABVXSVWCV
      YCAVWCVWDVXSAVWAVWEVWFUUGAUBVWDVXSAVUTQRZVKVUTVUQPZSVCVDZUQZVYGVUTTOZVXRR
      ZUQZVUTVWDRZVUTVXSRZAVYGVYIVYLAVYGUQZVYKSVCVDZVYKYARZVKVYKWJVDZVYKVXQVCVD
      ZUUIZVYIVYLVYPVYQVYRVYSVYTVYPVYRVYQVYGVYRAVUTUUJYBZYEVYPVYSVYQVYGVYSAVUTU
      UHYBYEVYPVYQSVXQWJVDZVYTAWUCVYGAUDDFUCIJUUKWLVYPVYKYCRSYCRZVXQYCRZVYQWUCU
      QVYTVEVYPVYKWUBUULSYARWUDVYPYFSUUMUUNAWUEVYGAVKYGUUOPYCVXQVKYGUUPAUDDVXQF
      VXPUCVXPWEZIVXQWEZUUQWDWLZVYKSVXQUURXKUUTUUSVYGVYIVYQXAAVYGVYHVYKSVCVYGVY
      HVKVUTUSPTOZVUTVKUSPZTOZVYKVKQRZVYGVYHWUIURYHVKVUTVUQVWNWFYIWULVYGWUIWUKU
      RYHVKVUTUVAYIVYGWUJVUTTVUTUVBXLUVCWHYBVYPVKYARWUEVYLWUAXAUVJWUHVKVXQVYKUV
      DWGUVEUVFVWPWULWUDVYNVYJXAXBYHSYFUVGVUTVUQVKSQUVHYJQYATUKTQUVKVYOVYMXAYKQ
      YATUVLQVUTVXRTUVIUVMUVNUVOUVPZUVQVXDBEVYCXSZVWCVBZVYFGWUNVWCNUVRVWCEVTZWU
      OVYFUREVWBUVSZBEVWCVYCUVTYLUWBUWAAVWCVXSVTVYDVXSQUJPRVYEVXMRWUMAUDBDVXQVX
      SUEFVYDVXPVXQYARUFULTOZVXQXPPUWCUWDPWURSXPPUWMZUCUFWUFBVXSVYCXQUEULZVXTVX
      POOZUEYDZVXTVXSRVXTQRZVYCWVBURVXSQVXTVXSTXTQTVXRUWEQYATYKUWFUWGUWHWVCWVBX
      QWUTDOZVXTWUTXRPZVRPZUEYDVYCWVCXQWVAWVFUEUDDFVXPWUTVXTWUFUWIUWJXQVYBWVFFU
      EVXNWUTURVXOWVDVYAWVEVRVXNWUTDUWKVXNWUTVXTXRUWNUWLUWOUWPUWQUWRIWUGVXSWEWU
      SWEUWSVXSQVWCVYDUWTUXAUXBWLVWCQVTZQQVTZVXMVXLURVWCEQWUQVWMUXDZQUXCZVWCQUY
      SVXIUYSVWSVXIWEUYSQUIPZUYSUYSYPRZWVKUYSURUYSVWSUXEZUYSYPQQUYSUYSVWSUXFZYM
      ZUXGYLUXHZYNXDUXIAVXBVOVUDVXDVXIUYSVWCVWCVXIUYSQYQORZWVGVXIVWCYQORWVNWVIV
      WCUYSQYOXDYMUXJWNVUDVXFVXJVXEVXIUYSUNWVLWUPEYRRZVXEVXIURWVMWUQEQUXKVWMUXL
      ZVWCEUYSYPYRUXNYJUXMUXOYSVXCUYTYPRZWUPVUDVWCUYTUXPOOZRZVUCVUGVXHXAWVTVXCW
      VLWVRWVTWVMWVSEUYSYRUXQXDZXJWUPVXCWUQXJAWWBVXBAWWAVWCVUDAVWCUYTRZWWAVWCUR
      ZAVWBEVTZVWBUYTYTORZWWDASEVWGUXRVWQVWBUYSYTORZWWFWWGVWMUYSUYDRVWJWWHUYSVW
      SUXSVQSUYSQWVOUXTXDEVWBUYSQWVOUYAUYBVWBUYTEWVLVWQEUYTUYEURWVMVWMEUYSQWVOU
      YCXDZUYFUYGWVTWUPWWDWWEXAWWCWUQVWCUYTEWWIUYHXDUYIUYJUYKAVUCVXBVUJWLVWCVUD
      GUYTUYSEQWWIWVOUYLUYMWQUYOUYNUYPWRUYTEYQORZWVQVUIVUCVUHUQXAWVQVWQWWJWVNVW
      MEUYSQYOXDWVNUAGUYTUYSEQUYQXDUYRVWQWVHVUBVUAURVWMWVJEQUYSUYTUYSVWSUYTWEWV
      PYNXDYS $.
  $}

  ${
    $d n x z A $.  $d n x z ph $.
    abelth2.1 $e |- ( ph -> A : NN0 --> CC ) $.
    abelth2.2 $e |- ( ph -> seq 0 ( + , A ) e. dom ~~> ) $.
    abelth2.3 $e |- F = ( x e. ( 0 [,] 1 ) |->
      sum_ n e. NN0 ( ( A ` n ) x. ( x ^ n ) ) ) $.
    $( Abel's theorem, restricted to the ` [ 0 , 1 ] ` interval.  (Contributed
       by Mario Carneiro, 2-Apr-2015.) $)
    abelth2 $p |- ( ph -> F e. ( ( 0 [,] 1 ) -cn-> CC ) ) $=
      ( vz c1 cv cmin co cmul cle wbr cc cc0 cr wcel cabs cfv crab cn0 cexp csu
      cmpt cicc ccncf wss unitssre ax-resscn sstri a1i wa 1re w3a simpr elicc2i
      cres 0re sylib simp1d resubcl sylancr leidd 1red simp3d abssubge0d simp2d
      absidd oveq2d recnd mulid2d eqtrd 3brtr4d ssrabdv resmptd syl6eqr rescncf
      0le1 eqid abelth sylc eqeltrrd ) ABJIKZLMZUAUBZJJWFUAUBZLMZNMZOPZIQUCZUDD
      KZCUBBKWNUEMNMDUFZUGZRJUHMZUTZEWQQUIMZAWRBWQWOUGEABWMWQWOAWLIQWQWQQUJAWQS
      QUKULUMUNAWFWQTZUOZWGWGWHWKOXAWGXAJSTWFSTZWGSTUPXAXBRWFOPZWFJOPZXAWTXBXCX
      DUQAWTURRJWFVAUPUSVBZVCZJWFVDVEZVFXAWFJXFXAVGXAXBXCXDXEVHVIXAWKJWGNMWGXAW
      JWGJNXAWIWFJLXAWFXFXAXBXCXDXEVJVKVLVLXAWGXAWGXGVMVNVOVPVQZVRHVSAWQWMUJWPW
      MQUIMTWRWSTXHABICWMDWPJFGAVGRJOPAWAUNWMWBWPWBWCWMQWQWPVTWDWE $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Basic trigonometry
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The exponential, sine, and cosine functions (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The exponential function is continuous.  (Contributed by Paul Chapman,
     15-Sep-2007.)  (Revised by Mario Carneiro, 20-Jun-2015.) $)
  efcn $p |- exp e. ( CC -cn-> CC ) $=
    ( cc wss ce wf ccncf co wcel ssid eff w3a cdv cdm wceq dvef feq1i fdmi dvcn
    mpbir mpan2 mp3an ) AABZAACDZUACAAEFGZAHZIUDUAUBUAJACKFZLAMUCAAUEAAUEDUBIAA
    UECNORPAACQST $.

  ${
    $d x y $.
    $( Sine is continuous.  (Contributed by Paul Chapman, 28-Nov-2007.)
       (Revised by Mario Carneiro, 3-Sep-2014.) $)
    sincn $p |- sin e. ( CC -cn-> CC ) $=
      ( vx vy cc ci cv cmul co cfv cmin cdiv cmpt wcel wtru eqid mulc1cncf mp1i
      ce a1i cncfmpt1f eqidd csin cneg c2 ccncf df-sin ccom wf ccnfld ctopn ctx
      wral ccn subcn efcn ax-icn negicn cncfmpt2f cncff syl fmpt sylibr fmptcof
      oveq1 cc0 2mulicn 2muline0 divccncf mp2an cncfco eqeltrrd trud eqeltri
      wne ) UAACDAEZFGZQHZDUBZVNFGZQHZIGZUCDFGZJGZKZCCUDGZAUEWCWDLMBCBEZWAJGZKZ
      ACVTKZUFWCWDMABCCVTWFWBWHWGMCCWHUGZVTCLACUKMWHWDLWIMAVPVSIUHUIHZCWJNZIWJW
      JUJGWJULGLMWJWKUMRMAVOQCQWDLMUNRZDCLACVOKZWDLMUOADWMWMNOPSMAVRQCWLVQCLACV
      RKZWDLMUPAVQWNWNNOPSUQZCCWHURUSACCVTWHWHNUTVAMWHTMWGTWEVTWAJVCVBMCCCWHWGW
      OWGWDLZMWACLWAVDVMWPVEVFBWAWGWGNVGVHRVIVJVKVL $.

    $( Cosine is continuous.  (Contributed by Paul Chapman, 28-Nov-2007.)
       (Revised by Mario Carneiro, 3-Sep-2014.) $)
    coscn $p |- cos e. ( CC -cn-> CC ) $=
      ( vx vy cc ci cv cmul co cfv caddc cdiv cmpt wcel wtru eqid a1i mulc1cncf
      ce c2 mp1i cncfmpt1f ccos cneg ccncf df-cos ccom wf wral ccnfld ctopn ctx
      ccn addcn efcn ax-icn negicn cncfmpt2f cncff syl fmpt eqidd oveq1 fmptcof
      sylibr cc0 wne 2cn 2ne0 divccncf mp2an cncfco eqeltrrd trud eqeltri ) UAA
      CDAEZFGZQHZDUBZVNFGZQHZIGZRJGZKZCCUCGZAUDWBWCLMBCBEZRJGZKZACVTKZUEWBWCMAB
      CCVTWEWAWGWFMCCWGUFZVTCLACUGMWGWCLWHMAVPVSIUHUIHZCWINZIWIWIUJGWIUKGLMWIWJ
      ULOMAVOQCQWCLMUMOZDCLACVOKZWCLMUNADWLWLNPSTMAVRQCWKVQCLACVRKZWCLMUOAVQWMW
      MNPSTUPZCCWGUQURACCVTWGWGNUSVCMWGUTMWFUTWDVTRJVAVBMCCCWGWFWNWFWCLZMRCLRVD
      VEWOVFVGBRWFWFNVHVIOVJVKVLVM $.
  $}

  ${
    $d U x y $.
    $( Lemma for ~ reeff1o .  (Contributed by Paul Chapman, 18-Oct-2007.)
       (Revised by Mario Carneiro, 30-Apr-2014.) $)
    reeff1olem $p |- ( ( U e. RR /\ 1 < U ) -> E. x e. RR ( exp ` x ) = U ) $=
      ( vy cr wcel c1 clt wbr wa cc0 co wss cv ce cfv wceq wrex 0re adantr cc
      cioo cicc ioossicc iccssre mpan syl5ss a1i simpl 0lt1 wi 1re lttr mp3an12
      mpani imp ax-resscn syl6ss ccncf efcn ssel2 reefcld sylan ef0 simpr caddc
      syl5eqbr peano2re reefcl recnd ax-1cn addcom sylancl crp elrpd efgt1p syl
      ltp1 eqbrtrd lttrd jca ivth ssrexv sylc ) BDEZFBGHZIZJBUAKZDLAMNOBPZAWGQW
      HADQWFWGJBUBKZDJBUCWDWIDLZWEJDEZWDWJRJBUDUESZUFWFCJBTBNAWKWFRUGWDWEUHZWMW
      DWEJBGHZWDJFGHZWEWNUIWKFDEWDWOWEIWNUJRUKJFBULUMUNUOZWFWIDTWLUPUQNTTURKEWF
      USUGWFWJCMZWIEZWQNODEWLWJWRIWQWIDWQUTVAVBWFJNOZBGHBBNOZGHWFWSFBGVCWDWEVDV
      FWFBBFVEKZWTWMWDXADEWEBVGSWDWTDEWEBVHSWDBXAGHWEBVQSWFXAFBVEKZWTGWFBTEFTEX
      AXBPWFBWMVIVJBFVKVLWFBVMEXBWTGHWFBWMWPVNBVOVPVRVSVTWAWHAWGDWBWC $.
  $}

  ${
    $d x y z $.
    $( The real exponential function is one-to-one onto.  (Contributed by Paul
       Chapman, 18-Oct-2007.)  (Revised by Mario Carneiro, 10-Nov-2013.) $)
    reeff1o $p |- ( exp |` RR ) : RR -1-1-onto-> RR+ $=
      ( vx vy cr crp ce reeff1 wceq cv wcel cfv wrex c1 clt wbr wa wb cc eqeq1d
      cc0 syl vz cres wf1o wf1 wfo wfn crn wf f1f ffn mp2b wss frn cdiv co elrp
      reclt1 sylbi cneg rpre rpne0 rereccld reeff1olem sylan eqcom rpcnne0 recn
      wi wne efcl efne0 jca rec11r syl2an cmul efcan eqcomd negcl ax-1cn mp3an1
      divmul2 syl12anc mpbird adantl syl5bbr biimpd reximdva adantr mpd renegcl
      bitrd infm3lem fveq2 rexxfr sylibr ex sylbid imp ef0 eqeq2i rspcev eqcoms
      0re sylbir w3o lttri4 sylancl mpjao3dan fvres rexbiia fvelrnb ax-mp ssriv
      mpan 1re eqssi df-fo mpbir2an df-f1o ) CDECUBZUCCDXTUDZCDXTUEZFYBXTCUFZXT
      UGZDGYACDXTUHZYCFCDXTUIZCDXTUJUKZYDDYAYEYDDULFYFCDXTUMUKUADYDUAHZDIZAHZXT
      JZYHGZACKZYHYDIZYIYJEJZYHGZACKZYMYIYHLMNZYQYHLGZLYHMNZYIYRYQYIYRLLYHUNUOZ
      MNZYQYIYHCIZSYHMNOYRUUBPYHUPYHUQURYIUUBYQYIUUBOZBHZUSZEJZYHGZBCKZYQUUDUUE
      EJZUUAGZBCKZUUIYIUUACIUUBUULYIYHYHUTZYHVAVBBUUAVCVDYIUULUUIVHUUBYIUUKUUHB
      CYIUUECIZOZUUKUUHUUKUUAUUJGZUUOUUHUUAUUJVEUUOUUPLUUJUNUOZYHGZUUHYIYHQIYHS
      VIOUUJQIZUUJSVIZOZUUPUURPUUNYHVFUUNUUSUUTUUNUUEQIZUUSUUEVGZUUEVJZTUUNUVBU
      UTUVCUUEVKZTVLYHUUJVMVNUUNUURUUHPYIUUNUUQUUGYHUUNUVBUUQUUGGZUVCUVBUVFLUUJ
      UUGVOUOZGZUVBUVGLUUEVPVQUVBUUGQIZUUSUUTUVFUVHPZUVBUUFQIUVIUUEVRUUFVJTUVDU
      VELQIUVIUVAUVJVSLUUGUUJWAVTWBWCTRWDWKWEWFWGWHWIYPUUHABUUFCCUUEWJABWLYJUUF
      GYOUUGYHYJUUFEWMRWNWOWPWQWRYSYQYIYSYHSEJZGYQUVKLYHWSWTYQUVKYHSCIUVKYHGZYQ
      XCYPUVLASCYJSGYOUVKYHYJSEWMRXAXNXBXDWDYIUUCYTYQUUMAYHVCVDYIUUCLCIYRYSYTXE
      UUMXOYHLXFXGXHYLYPACYJCIYKYOYHYJCEXIRXJWOYCYNYMPYGACYHXTXKXLWOXMXPCDXTXQX
      RCDXTXSXR $.
  $}

  ${
    $d x y $.
    $( The exponential function on the reals determines an isomorphism from
       reals onto positive reals.  (Contributed by Steve Rodriguez,
       25-Nov-2007.)  (Revised by Mario Carneiro, 11-Mar-2014.) $)
    reefiso $p |- ( exp |` RR ) Isom < , < ( RR , RR+ ) $=
      ( vx vy cr crp clt ce cres wiso wf1o cv wbr cfv wb wral reeff1o wcel eflt
      wa fvres breqan12d bitr4d rgen2a df-isom mpbir2an ) CDEEFCGZHCDUEIAJZBJZE
      KZUFUELZUGUELZEKZMZBCNACNOULABCUFCPZUGCPZRUHUFFLZUGFLZEKUKUFUGQUMUNUIUOUJ
      UPEUFCFSUGCFSTUAUBABCDEEUEUCUD $.
  $}

  $( The exponential function on the reals is a strictly convex function.
     (Contributed by Mario Carneiro, 20-Jun-2015.) $)
  efcvx $p |- ( ( ( A e. RR /\ B e. RR /\ A < B ) /\ T e. ( 0 (,) 1 ) ) ->
    ( exp ` ( ( T x. A ) + ( ( 1 - T ) x. B ) ) ) <
      ( ( T x. ( exp ` A ) ) + ( ( 1 - T ) x. ( exp ` B ) ) ) ) $=
    ( cr wcel clt c1 co cmul caddc ce cres cfv wf wss crp cc ax-resscn cdv wceq
    wbr w3a cioo wa cmin cicc cima simpl1 simpl2 simpl3 ccncf wf1o reeff1o f1of
    cc0 ax-mp rpssre fss iccssre syl2anc fssres2 sylancr wb syl6ss efcn rescncf
    mp2an mpisyl cncffvrn mpbird wiso reefiso a1i ioossre eqidd isores3 syl3anc
    crn ctg cnt ssid ccnfld ctopn eqid tgioo2 dvres mpanl12 resabs1d oveq2d cpr
    cdm reelprrecn dvef dmeqi fdmi eqtri sseqtr4i dvres3 mp4an reseq1i reseq12d
    iccntr 3eqtr3d isoeq1 simpr dvcvx ax-1cn sseldi recnd nncan oveq1d ioossicc
    eff syl iirev lincmb01cmp syldan eqeltrrd fvres cxr cle rexrd lbicc2 ubicc2
    ltled oveq12d 3brtr3d ) ADEZBDEZABFUAZUBZCUOGUCHZEZUDZCAIHZGCUEHZBIHZJHZKAB
    UFHZLZMZCAYTMZIHZYPBYTMZIHZJHYRKMZCAKMZIHZYPBKMZIHZJHFYNABYRCYTKDLZABUCHZUG
    ZYHYIYJYMUHZYHYIYJYMUIZYHYIYJYMUJZYNYTYSDUKHEZYSDYTNZYNDDUUKNZYSDOZUURDPUUK
    NZPDOUUSDPUUKULUVAUMDPUUKUNUPUQDPDUUKURVGZYNYHYIUUTUUNUUOABUSUTZDDYSKVAVBYN
    DQOZYTYSQUKHEZUUQUURVCRYNYSQOKQQUKHEUVEYNYSDQUVCRVDVEQQYSKVFVHYSQDYTVIVBVJY
    NUULUUMFFDYTSHZVKZUULUUMFFUUKUULLZVKZYNDPFFUUKVKZUULDOZUUMUUMTUVIUVJYNVLVMU
    VKYNABVNVMYNUUMVODPFFUUKUULUUMVPVQYNUVFUVHTUVGUVIVCYNDUUKYSLZSHZDUUKSHZYSUC
    VRVSMZVTMMZLZUVFUVHYNDDOZUUTUVMUVQTZDWAUVCUVDDQUUKNZUVRUUTUDUVSRUUSUVDUVTUV
    BRDDQUUKURVGDYSDUVOUUKWBWCMZUWAWDZUWAUWBWEWFWGVBYNUVLYTDSYNKYSDUVCWHWIYNUVN
    UUKUVPUULUVNUUKTYNUVNQKSHZDLZUUKDDQWJEQQKNQQODUWCWKZOUVNUWDTWLXMQWADQUWERUW
    EKWKQUWCKWMWNQQKXMWOWPWQQDKWRWSUWCKDWMWTWPVMYNYHYIUVPUULTUUNUUOABXBUTXAXCUU
    LUUMFFUVHUVFXDXNVJYKYMXEZYRWDXFYNYRYSEUUAUUFTYNGYPUEHZAIHZYQJHZYRYSYNUWHYOY
    QJYNUWGCAIYNGQECQEUWGCTXGYNCYNYLDCUOGVNUWFXHXIGCXJVBXKXKYKYMYPUOGUFHZEZUWIY
    SEYNCUWJEUWKYNYLUWJCUOGXLUWFXHCXOXNABYPXPXQXRYRYSKXSXNYNUUCUUHUUEUUJJYNUUBU
    UGCIYNAYSEZUUBUUGTYNAXTEZBXTEZABYAUAZUWLYNAUUNYBZYNBUUOYBZYNABUUNUUOUUPYEZA
    BYCVQAYSKXSXNWIYNUUDUUIYPIYNBYSEZUUDUUITYNUWMUWNUWOUWSUWPUWQUWRABYDVQBYSKXS
    XNWIYFYG $.

  ${
    $d x y P $.
    reefgim.1 $e |- P = ( ( mulGrp ` CCfld ) |`s RR+ ) $.
    $( The exponential function is a group isomorphism from the group of reals
       under addition to the group of positive reals under multiplication.
       (Contributed by Mario Carneiro, 21-Jun-2015.)  (Revised by Thierry
       Arnoux, 30-Jun-2019.) $)
    reefgim $p |- ( exp |` RR ) e. ( RRfld GrpIso P ) $=
      ( vx ce cr crefld co wcel crp wtru cmul ccnfld cfv cc cc0 cress cvv ax-mp
      wceq mp1i vy cres cgim cghm wf1o caddc rebase cmgp csn cdif csubg rpmsubg
      cbs eqid wss cnex difexg cv wne rpcn rpne0 eldifsn sylanbrc ssriv ressabs
      eqtr4i subgbas replusg cplusg cnfldmul mgpplusg ressplusg crg cgrp csubrg
      mp2an cdr resubdrg simpli df-refld subrgring ringgrp subggrp reeff1o f1of
      wf wa recn efadd syl2an readdcl fvres syl oveqan12d 3eqtr4d adantl isghmd
      trud isgim mpbir2an ) DEUBZFAUCGHXAFAUDGHZEIXAUEZXBJCUAUFKFAXAEIUGILUHMZN
      OUIZUJZPGZUKMZHZIAUMMSXGXGUNULZIXGAAXDIPGZXGIPGZBXFQHZIXFUOXLXKSNQHXMUPNX
      EQUQRCIXFCURZIHXNNHZXNOUSXNXFHXNUTXNVAXNNOVBVCVDXFIXDQVEVPVFZVGRZVHXIKAVI
      MSXJIKXDAXHBLKXDXDUNVJVKVLRFVMHZFVNHJELVOMHZXRXSFVQHVRVSELFVTWARFWBTXIAVN
      HJXJIXGAXPWCTXCEIXAWFJWDEIXAWETXNEHZUAURZEHZWGZXNYAUFGZXAMZXNXAMZYAXAMZKG
      ZSJYCYDDMZXNDMZYADMZKGZYEYHXTXOYANHYIYLSYBXNWHYAWHXNYAWIWJYCYDEHYEYISXNYA
      WKYDEDWLWMXTYBYFYJYGYKKXNEDWLYAEDWLWNWOWPWQWRWDEIFAXAUGXQWSWT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Properties of pi = 3.14159...
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Lemma for ~ pire , ~ pigt2lt4 and ~ sinpi .  (Contributed by Mario
     Carneiro, 9-May-2014.) $)
  pilem1 $p |- ( A e. ( RR+ i^i ( `' sin " { 0 } ) ) <->
                 ( A e. RR+ /\ ( sin ` A ) = 0 ) ) $=
    ( crp csin ccnv cc0 csn cima cin wcel wa cfv wceq elin cc rpcn biantrurd wf
    wfn wb sinf ffn fniniseg mp2b syl6rbbr pm5.32i bitri ) ABCDEFGZHIABIZAUGIZJ
    UHACKELZJABUGMUHUIUJUHUJANIZUJJZUIUHUKUJAOPNNCQCNRUIULSTNNCUANEACUBUCUDUEUF
    $.

  ${
    $d x y A $.  $d x y B $.  $d x ph $.
    pilem.1 $e |- ( ph -> A e. ( 2 (,) 4 ) ) $.
    pilem.2 $e |- ( ph -> B e. RR+ ) $.
    pilem.3 $e |- ( ph -> ( sin ` A ) = 0 ) $.
    pilem.4 $e |- ( ph -> ( sin ` B ) = 0 ) $.
    pilem.5 $e |- ( ph -> _pi < A ) $.
    $( Lemma for ~ pire , ~ pigt2lt4 and ~ sinpi .  (Contributed by Mario
       Carneiro, 12-Jun-2014.)  (Revised by AV, 14-Sep-2020.) $)
    pilem2 $p |- ( ph -> ( ( _pi + A ) / 2 ) <_ B ) $=
      ( vx vy co c2 cle wbr cmul crp cc0 cr clt wcel cpi cdiv cmin csin csn cin
      caddc ccnv cima cinf df-pi wss wral wrex inss1 rpssre sstri a1i 0re sseli
      rpge0d rgen wceq breq1 ralbidv rspcev mp2an cfv 2re rpred remulcl sylancr
      cv c4 cioo elioore syl resubcld 4re wa eliooord simprd 2t2e4 c0 0red 2pos
      simpld lttrd elrpd pilem1 sylanbrc ne0i infrecl mp3an13 wn wo rpre adantl
      wne letric ord cioc ad2antlr rpgt0 simpr cxr wb elioc2 syl3anbrc sin02gt0
      w3a 0xr gt0ne0d ex syld necon4bd expimpd syl5bi ralrimiv infregelb mpbird
      syl31anc infrelb syl3anc letrd pm3.2i lemul2 mpbid syl5eqbrr ltletrd ccos
      posdifd cc recnd oveq1d coscld mul02d eqtrd oveq2d syl6eq syl2anc oveq12d
      sinsub sin2t 2t0e0 mul01d syl5eqbr syl5eqel leaddsub readdcld ledivmul
      0m0e0 ) AUABUGKZLUBKCMNZUUMLCOKZMNZAUUPUAUUOBUCKZMNZAUAPUDUHQUEUIZUFZRSUJ
      ZUUQMUKAUUTRULZIVMZJVMZMNZJUUTUMZIRUNZUUQUUTTZUVAUUQMNUVBAUUTPRPUUSUOZUPU
      QZURZUVGAQRTQUVDMNZJUUTUMZUVGUSUVLJUUTUVDUUTTUVDUUTPUVDUVIUTVAVBUVFUVMIQR
      UVCQVCUVEUVLJUUTUVCQUVDMVDVEVFVGZURZAUUQPTUUQUDVHZQVCUVHAUUQAUUOBALRTZCRT
      ZUUORTZVIACEVJZLCVKVLZABLVNVOKTZBRTZDBLVNVPVQZVRABUUOSNQUUQSNABVNUUOUWDVN
      RTAVSURUWAALBSNZBVNSNZAUWBUWEUWFVTDBLVNWAVQZWBAVNLLOKZUUOMWCALCMNZUWHUUOM
      NZALUVACUVQAVIURZAUUTWDWSZUVARTZABUUTTZUWLABPTBUDVHZQVCUWNABUWDAQLBAWEUWK
      UWDQLSNZAWFURAUWEUWFUWGWGWHWIFBWJWKUUTBWLVQZUVBUWLUVGUWMUVJUVNIJUUTWMWNVQ
      ZUVTALUVAMNZLUVCMNZIUUTUMZAUWTIUUTUVCUUTTUVCPTZUVCUDVHZQVCZVTAUWTUVCWJAUX
      BUXDUWTAUXBVTZUWTUXCQUXEUWTWOUVCLMNZUXCQWSZUXEUWTUXFUXEUVQUVCRTZUWTUXFWPV
      IUXBUXHAUVCWQZWRLUVCWTVLXAUXEUXFUXGUXEUXFVTZUXCUXJUVCQLXBKTZQUXCSNUXJUXHQ
      UVCSNZUXFUXKUXBUXHAUXFUXIXCUXBUXLAUXFUVCXDXCUXEUXFXEQXFTUVQUXKUXHUXLUXFXK
      XGXLVIQLUVCXHVGXIUVCXJVQXMXNXOXPXQXRXSAUVBUWLUVGUVQUWSUXAXGUVKUWQUVOUWKIJ
      IUUTLXTYBYAAUVBUVGCUUTTZUVACMNUVKUVOACPTCUDVHZQVCUXMEGCWJWKIJCUUTYCYDYEAU
      VQUVRUVQUWPVTZUWIUWJXGUWKUVTUXOAUVQUWPVIWFYFURZLCLYGYDYHYIYJABUUOUWDUWAYL
      YHWIAUVPUUOUDVHZBYKVHZOKZUUOYKVHZUWOOKZUCKZQAUUOYMTBYMTUVPUYBVCAUUOUWAYNZ
      ABUWDYNZUUOBUUCUUAAUYBQQUCKQAUXSQUYAQUCAUXSQUXROKQAUXQQUXROAUXQLUXNCYKVHZ
      OKZOKZQACYMTUXQUYGVCACUVTYNZCUUDVQAUYGLQOKQAUYFQLOAUYFQUYEOKQAUXNQUYEOGYO
      AUYEACUYHYPYQYRYSUUEYTYRYOAUXRABUYDYPYQYRAUYAUXTQOKQAUWOQUXTOFYSAUXTAUUOU
      YCYPUUFYRUUBUULYTYRUUQWJWKIJUUQUUTYCYDUUGAUARTUWCUVSUUPUURXGAUAUVARUKUWRU
      UHZUWDUWAUABUUOUUIYDYAAUUMRTUVRUXOUUNUUPXGAUABUYIUWDUUJUVTUXPUUMCLUUKYDYA
      $.
  $}

  ${
    $d x y z $.
    $( Lemma for ~ pire , ~ pigt2lt4 and ~ sinpi .  Existence part.
       (Contributed by Paul Chapman, 23-Jan-2008.)  (Proof shortened by Mario
       Carneiro, 18-Jun-2014.)  (Revised by AV, 14-Sep-2020.) $)
    pilem3 $p |- ( _pi e. ( 2 (,) 4 ) /\ ( sin ` _pi ) = 0 ) $=
      ( vy vz csin cfv cc0 wceq c2 c4 co cpi wcel wa wtru cc cr a1i clt wbr cle
      crp vx cv cioo wrex 2re 4re 0re 2lt4 cicc wss mp2an ax-resscn sstri ccncf
      iccssre sincn sseli resincld adantl sin4lt0 ccos sincos2sgn simpli pm3.2i
      ivth2 trud ccnv csn cima cin cinf df-pi adantr 2pos eliooord simpld lttrd
      elioore elrpd simpr pilem1 sylanbrc wral inss1 rpssre rpge0d rgen ralbidv
      breq1 rspcev infrelb mp3an12 syl5eqbr caddc cdiv wn simplll sylib simpllr
      syl simprd simplr pilem2 ralrimiva ne0i infrecl mp3an13 syl5eqel readdcld
      c0 wne wb rehalfcld infregelb syl31anc mpbird syl6breqr ex ltnled addcomd
      recnd oveq1d breq1d avgle2 syl2anc bitr4d 3imtr3d pm2.18d mpbir2and simpl
      letri3d eqeltrd fveq2d eqtrd jca rexlimiva ax-mp ) UAUBZCDZEFZUAGHUCIZUDZ
      JUUAKZJCDZEFZLZUUBMAGHNECUAGOKZMUEPHOKZMUFPEOKZMUGPGHQRMUHPGHUIIZNUJMUUJO
      NUUGUUHUUJOUJUEUFGHUOUKZULUMPCNNUNIKMUPPAUBZUUJKZUULCDZOKMUUMUULUUJOUULUU
      KUQURUSHCDEQRZEGCDQRZLMUUOUUPUTUUPGVADEQRVBVCVDPVEVFYTUUFUAUUAYRUUAKZYTLZ
      UUCUUEUURJYRUUAUURJYRFJYRSRYRJSRZUURJTCVGEVHVIZVJZOQVKZYRSVLUURYRUVAKZUVB
      YRSRZUURYRTKYTUVCUURYRUUQYROKZYTYRGHVRVMZUUREGYRUUIUURUGPUUGUURUEPUVFEGQR
      UURVNPUUQGYRQRZYTUUQUVGYRHQRYRGHVOVPVMVQVSUUQYTVTZYRWAWBZUVAOUJZUULBUBZSR
      ZBUVAWCZAOUDZUVCUVDUVATOTUUTWDZWEUMZUUIEUVKSRZBUVAWCZUVNUGUVQBUVAUVKUVAKU
      VKUVATUVKUVOUQWFWGUVMUVRAEOUULEFUVLUVQBUVAUULEUVKSWIWHWJUKZABYRUVAWKWLWTW
      MUURUUSUURJYRQRZJYRWNIZGWOIZJSRZUUSWPUUSUURUVTUWCUURUVTLZUWBUVBJSUWDUWBUV
      BSRZUWBUULSRZAUVAWCZUWDUWFAUVAUWDUULUVAKZLZYRUULUUQYTUVTUWHWQUWIUULTKZUUN
      EFZUWIUWHUWJUWKLUWDUWHVTUULWAWRZVPUUQYTUVTUWHWSUWIUWJUWKUWLXAUURUVTUWHXBX
      CXDUWDUVJUVAXJXKZUVNUWBOKUWEUWGXLUVJUWDUVPPUURUWMUVTUURUVCUWMUVIUVAYRXEWT
      ZVMUVNUWDUVSPUWDUWAUURUWAOKUVTUURJYRUURJUVBOVLUURUWMUVBOKZUWNUVJUWMUVNUWO
      UVPUVSABUVAXFXGWTXHZUVFXIVMXMABAUVAUWBXNXOXPVLXQXRUURJYRUWPUVFXSUURUWCYRJ
      WNIZGWOIZJSRZUUSUURUWBUWRJSUURUWAUWQGWOUURJYRUURJUWPYAUURYRUVFYAXTYBYCUUR
      UVEJOKUUSUWSXLUVFUWPYRJYDYEYFYGYHUURJYRUWPUVFYKYIZUUQYTYJYLUURUUDYSEUURJY
      RCUWTYMUVHYNYOYPYQ $.
  $}

  $( ` _pi ` is between 2 and 4.  (Contributed by Paul Chapman, 23-Jan-2008.)
     (Revised by Mario Carneiro, 9-May-2014.) $)
  pigt2lt4 $p |- ( 2 < _pi /\ _pi < 4 ) $=
    ( cpi c2 c4 cioo co wcel clt wbr wa csin cfv cc0 wceq pilem3 eliooord ax-mp
    simpli ) ABCDEFZBAGHACGHIRAJKLMNQABCOP $.

  $( The sine of ` _pi ` is 0.  (Contributed by Paul Chapman, 23-Jan-2008.) $)
  sinpi $p |- ( sin ` _pi ) = 0 $=
    ( cpi c2 c4 cioo co wcel csin cfv cc0 wceq pilem3 simpri ) ABCDEFAGHIJKL $.

  $( ` _pi ` is a real number.  (Contributed by Paul Chapman, 23-Jan-2008.) $)
  pire $p |- _pi e. RR $=
    ( cpi c2 c4 cioo co wcel cr csin cfv cc0 wceq pilem3 simpli elioore ax-mp )
    ABCDEFZAGFPAHIJKLMABCNO $.

  $( ` _pi ` is a complex number.  (Contributed by David A. Wheeler,
     6-Dec-2018.) $)
  picn $p |- _pi e. CC $=
    ( cpi pire recni ) ABC $.

  $( ` _pi ` is positive.  (Contributed by Paul Chapman, 23-Jan-2008.)
     (Revised by Mario Carneiro, 9-May-2014.) $)
  pipos $p |- 0 < _pi $=
    ( cc0 c2 clt wbr cpi 2pos c4 pigt2lt4 simpli 0re 2re pire lttri mp2an ) ABC
    DBECDZAECDFOEGCDHIABEJKLMN $.

  $( ` _pi ` is a positive real.  (Contributed by Glauco Siliprandi,
     11-Dec-2019.) $)
  pirp $p |- _pi e. RR+ $=
    ( cpi pire pipos elrpii ) ABCD $.

  $( ` -u _pi ` is a real number (common case).  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  negpicn $p |- -u _pi e. CC $=
    ( cpi picn negcli ) ABC $.

  $( Lemma for ~ sinhalfpi and ~ coshalfpi .  (Contributed by Paul Chapman,
     23-Jan-2008.) $)
  sinhalfpilem $p |- ( ( sin ` ( _pi / 2 ) ) = 1 /\
                      ( cos ` ( _pi / 2 ) ) = 0 ) $=
    ( cpi c2 co csin cfv c1 wceq cc0 clt wbr ax-mp cr wcel cle pire 2re c4 cmul
    mpbi cexp cdiv ccos cneg wn 0lt1 0re ltnsymi wb lt0neg1 mtbi cioc rehalfcli
    1re pipos 2pos divgt0ii 4re pigt2lt4 simpri ltleii wa pm3.2i ledivmul mp3an
    2t2e4 breq2i bitr2i cxr w3a 0xr elioc2 mp2an mpbir3an sin02gt0 breq2 mto wo
    mpbii caddc sq1 resincl gt0ne0ii neii 2ne0 recni 2cn divcan2i fveq2i eqtr3i
    cc sin2t sinpi sincl coscl mulcli mul0ori mtpor oveq1i eqtri sincossq sqcli
    sq0 oveq2i addid1i 3eqtr2ri ax-1cn sqeqori ori mt3 ) ABUACZDEZFGZXJUBEZHGZX
    LXKFUCZGZXPHXOIJZFHIJZXQHFIJXRUDUEHFUFUMUGKFLMXRXQUHUMFUIKUJXPHXKIJZXQXJHBU
    KCMZXSXTXJLMZHXJIJZXJBNJZAOULZABOPUNUOUPAQNJZYCAQOUQBAIJAQIJURUSUTYCABBRCZN
    JZYEALMBLMZYHHBIJZVAYCYGUHOPYHYIPUOVBABBVCVDYFQANVEVFVGSHVHMYHXTYAYBYCVIUHV
    JPHBXJVKVLVMXJVNKZXKXOHIVOVRVPXLXPXKBTCZFBTCZGXLXPVQYLFYKHVSCZYKVTYKXMBTCZV
    SCZYMFYNHYKVSYNHBTCHXMHBTXKHGZXNXKHXKYAXKLMYDXJWAKYJWBWCXKXMRCZHGZYPXNVQBHG
    ZYRBHWDWCBYQRCZHGYSYRVQADEZYTHBXJRCZDEZUUAYTUUBADABAOWEWFWDWGWHXJWJMZUUCYTG
    XJYDWEZXJWKKWIWLWIBYQWFXKXMUUDXKWJMUUEXJWMKZUUDXMWJMUUEXJWNKZWOWPSWQXKXMUUF
    UUGWPSWQZWRXBWSXCUUDYOFGUUEXJWTKWIYKXKUUFXAXDXEXKFUUFXFXGSXHXIUUHVB $.

  $( ` _pi / 2 ` is real.  (Contributed by David Moews, 28-Feb-2017.) $)
  halfpire $p |- ( _pi / 2 ) e. RR $=
    ( cpi pire rehalfcli ) ABC $.

  $( ` -u _pi / 2 ` is real.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  neghalfpire $p |- -u ( _pi / 2 ) e. RR $=
    ( cpi c2 cdiv co halfpire renegcli ) ABCDEF $.

  $( ` -u _pi / 2 ` is an extended real.  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  neghalfpirx $p |- -u ( _pi / 2 ) e. RR* $=
    ( cpi c2 cdiv co cneg neghalfpire rexri ) ABCDEFG $.

  $( Adding ` _pi / 2 ` to itself is ` _pi ` (common case).  See ~ 2halves .
     (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  pidiv2halves $p |- ( ( _pi / 2 ) + ( _pi / 2 ) ) = _pi $=
    ( cpi cc wcel c2 cdiv co caddc wceq picn 2halves ax-mp ) ABCADEFZLGFAHIAJK
    $.

  $( The sine of ` _pi / 2 ` is 1.  (Contributed by Paul Chapman,
     23-Jan-2008.) $)
  sinhalfpi $p |- ( sin ` ( _pi / 2 ) ) = 1 $=
    ( cpi c2 cdiv co csin cfv c1 wceq ccos cc0 sinhalfpilem simpli ) ABCDZEFGHM
    IFJHKL $.

  $( The cosine of ` _pi / 2 ` is 0.  (Contributed by Paul Chapman,
     23-Jan-2008.) $)
  coshalfpi $p |- ( cos ` ( _pi / 2 ) ) = 0 $=
    ( cpi c2 cdiv co csin cfv c1 wceq ccos cc0 sinhalfpilem simpri ) ABCDZEFGHM
    IFJHKL $.

  $( The cosine of ` -u _pi / 2 ` is zero.  (Contributed by David Moews,
     28-Feb-2017.) $)
  cosneghalfpi $p |- ( cos ` -u ( _pi / 2 ) ) = 0 $=
    ( cpi c2 cdiv co cneg ccos cfv cc0 cc wcel wceq halfpire recni cosneg ax-mp
    coshalfpi eqtri ) ABCDZEFGZRFGZHRIJSTKRLMRNOPQ $.

  $( The exponential of ` _i _pi / 2 ` is ` _i ` .  (Contributed by Mario
     Carneiro, 9-May-2014.) $)
  efhalfpi $p |- ( exp ` ( _i x. ( _pi / 2 ) ) ) = _i $=
    ( ci cpi c2 cdiv co cmul ce cfv ccos csin caddc cc wcel wceq picn halfcl c1
    cc0 ax-icn eqtri efival coshalfpi sinhalfpi oveq2i mulid1i oveq12i addid2i
    mp2b ) ABCDEZFEGHZUIIHZAUIJHZFEZKEZABLMUILMUJUNNOBPUIUAUHUNRAKEAUKRUMAKUBUM
    AQFEAULQAFUCUDASUETUFASUGTT $.

  $( The cosine of ` _pi ` is ` -u 1 ` .  (Contributed by Paul Chapman,
     23-Jan-2008.) $)
  cospi $p |- ( cos ` _pi ) = -u 1 $=
    ( c2 cpi cdiv co cmul ccos cfv cexp c1 cmin cneg cc wcel wceq picn 2cn 2ne0
    cc0 oveq1i eqtri divcli cos2t ax-mp divcan2i fveq2i coshalfpi oveq2i df-neg
    sq0 2t0e0 eqtr4i 3eqtr3i ) ABACDZEDZFGZAUMFGZAHDZEDZIJDZBFGIKZUMLMUOUSNBAOP
    QUAUMUBUCUNBFBAOPQUDUEUSRIJDUTURRIJURAREDRUQRAEUQRAHDRUPRAHUFSUITUGUJTSIUHU
    KUL $.

  $( The exponential of ` _i x. _pi ` .  (Contributed by Paul Chapman,
     23-Jan-2008.)  (Revised by Mario Carneiro, 10-May-2014.) $)
  efipi $p |- ( exp ` ( _i x. _pi ) ) = -u 1 $=
    ( ci cpi cmul co ce cfv ccos csin caddc c1 cneg wcel wceq picn efival ax-mp
    cc cc0 cospi eqtri sinpi oveq2i it0e0 oveq12i neg1cn addid1i ) ABCDEFZBGFZA
    BHFZCDZIDZJKZBQLUGUKMNBOPUKULRIDULUHULUJRISUJARCDRUIRACUAUBUCTUDULUEUFTT $.

  $( Euler's identity.  (Contributed by Paul Chapman, 23-Jan-2008.)  (Revised
     by Mario Carneiro, 9-May-2014.) $)
  eulerid $p |- ( ( exp ` ( _i x. _pi ) ) + 1 ) = 0 $=
    ( ci cpi cmul co ce cfv c1 caddc cneg efipi oveq1i ax-1cn 1pneg1e0 addcomli
    cc0 neg1cn eqtri ) ABCDEFZGHDGIZGHDORSGHJKGSOLPMNQ $.

  $( The sine of ` 2 _pi ` is 0.  (Contributed by Paul Chapman,
     23-Jan-2008.) $)
  sin2pi $p |- ( sin ` ( 2 x. _pi ) ) = 0 $=
    ( c2 cpi cmul co csin cfv ccos cc0 cc wcel wceq picn sin2t ax-mp cneg sinpi
    c1 cospi oveq12i eqtri neg1cn mul02i oveq2i 2t0e0 ) ABCDEFZABEFZBGFZCDZCDZH
    BIJUEUIKLBMNUIAHCDHUHHACUHHQOZCDHUFHUGUJCPRSUJUAUBTUCUDTT $.

  $( The cosine of ` 2 _pi ` is 1.  (Contributed by Paul Chapman,
     23-Jan-2008.) $)
  cos2pi $p |- ( cos ` ( 2 x. _pi ) ) = 1 $=
    ( c2 cpi cmul co ccos cexp c1 cmin cc wcel wceq picn cos2t ax-mp cneg cospi
    cfv oveq1i ax-1cn 3eqtri sqneg sq1 oveq2i 2t1e2 eqtri 2m1e1 ) ABCDEQZABEQZA
    FDZCDZGHDZAGHDGBIJUGUKKLBMNUJAGHUJAGCDAUIGACUIGOZAFDZGAFDZGUHULAFPRGIJUMUNK
    SGUANUBTUCUDUERUFT $.

  $( The exponential of ` 2 _pi _i ` is ` 1 ` .  (Contributed by Mario
     Carneiro, 9-May-2014.) $)
  ef2pi $p |- ( exp ` ( _i x. ( 2 x. _pi ) ) ) = 1 $=
    ( ci c2 cpi cmul co ce cfv ccos csin caddc wcel wceq 2cn picn mulcli efival
    c1 cc cc0 eqtri ax-mp cos2pi sin2pi oveq2i it0e0 oveq12i 1p0e1 ) ABCDEZDEFG
    ZUHHGZAUHIGZDEZJEZQUHRKUIUMLBCMNOUHPUAUMQSJEQUJQULSJUBULASDESUKSADUCUDUETUF
    UGTT $.

  $( The exponential of ` 2 K _pi _i ` is ` 1 ` .  (Contributed by Mario
     Carneiro, 9-May-2014.) $)
  ef2kpi $p |- ( K e. ZZ -> ( exp ` ( ( _i x. ( 2 x. _pi ) ) x. K ) ) = 1 ) $=
    ( cz wcel ci c2 cpi cmul co ce cfv cexp c1 cc wceq ax-icn 2cn mulcli mulcom
    picn zcn sylancr fveq2d efexp mpan ef2pi oveq1i 1exp syl5eq 3eqtrd ) ABCZDE
    FGHZGHZAGHZIJAULGHZIJZULIJZAKHZLUJUMUNIUJULMCZAMCUMUNNDUKOEFPSQQZATULARUAUB
    URUJUOUQNUSULAUCUDUJUQLAKHLUPLAKUEUFAUGUHUI $.

  $( The exponential function is periodic.  (Contributed by Paul Chapman,
     21-Apr-2008.)  (Proof shortened by Mario Carneiro, 10-May-2014.) $)
  efper $p |- ( ( A e. CC /\ K e. ZZ ) ->
           ( exp ` ( A + ( ( _i x. ( 2 x. _pi ) ) x. K ) ) ) = ( exp ` A ) ) $=
    ( cc wcel cz wa ci c2 cpi cmul co caddc ce cfv wceq ax-icn 2cn picn mulcli
    c1 mulcl sylancr efadd sylan2 ef2kpi oveq2d efcl mulid1d sylan9eqr eqtrd
    zcn ) ACDZBEDZFAGHIJKZJKZBJKZLKMNZAMNZUPMNZJKZURUMULUPCDZUQUTOUMUOCDBCDVAGU
    NPHIQRSSBUKUOBUAUBAUPUCUDUMULUTURTJKURUMUSTURJBUEUFULURAUGUHUIUJ $.

  ${
    sinperlem.1 $e |- ( A e. CC -> ( F ` A ) =
      ( ( ( exp ` ( _i x. A ) ) O ( exp ` ( -u _i x. A ) ) ) / D ) ) $.
    sinperlem.2 $e |- ( ( A + ( K x. ( 2 x. _pi ) ) ) e. CC ->
      ( F ` ( A + ( K x. ( 2 x. _pi ) ) ) ) =
        ( ( ( exp ` ( _i x. ( A + ( K x. ( 2 x. _pi ) ) ) ) ) O
          ( exp ` ( -u _i x. ( A + ( K x. ( 2 x. _pi ) ) ) ) ) ) / D ) ) $.
    $( Lemma for ~ sinper and ~ cosper .  (Contributed by Paul Chapman,
       23-Jan-2008.)  (Revised by Mario Carneiro, 10-May-2014.) $)
    sinperlem $p |- ( ( A e. CC /\ K e. ZZ ) ->
                 ( F ` ( A + ( K x. ( 2 x. _pi ) ) ) ) = ( F ` A ) ) $=
      ( cc wcel ci cmul co caddc ce cfv cneg cdiv wceq ax-icn eqtrd cpi zcn 2cn
      cz wa c2 picn mulcli mulcl sylancl adddi mp3an1 sylan2 mp3an13 syl mulcom
      mul12 adantl oveq2d fveq2d mpan efper sylan negicn negeqd mulneg1 sylancr
      mulneg2 3eqtr4d znegcl syl2an oveq12d oveq1d addcl adantr ) AHIZDUDIZUEZJ
      ADUFUAKLZKLZMLZKLZNOZJPZWAKLZNOZELZBQLZJAKLZNOZWDAKLZNOZELZBQLZWACOZACOZV
      RWGWMBQVRWCWJWFWLEVRWCWIJVSKLZDKLZMLZNOZWJVRWBWSNVRWBWIJVTKLZMLZWSVQVPVTH
      IZWBXBRZVQDHIZVSHIZXCDUBZUFUAUCUGUHZDVSUIUJZJHIZVPXCXDSJAVTUKULUMVRXAWRWI
      MVQXAWRRVPVQXADWQKLZWRVQXEXAXKRZXGXJXEXFXLSXHJDVSUQUNUOVQXEWQHIZXKWRRXGJV
      SSXHUHZDWQUPUJTZURUSTUTVPWIHIZVQWTWJRXJVPXPSJAUIVAWIDVBVCTVRWFWKWQDPZKLZM
      LZNOZWLVRWEXSNVRWEWKWDVTKLZMLZXSVQVPXCWEYBRZXIWDHIZVPXCYCVDWDAVTUKULUMVRY
      AXRWKMVQYAXRRVPVQXAPZWRPZYAXRVQXAWRXOVEVQXJXCYAYERSXIJVTVFVGVQXMXEXRYFRXN
      XGWQDVHVGVIURUSTUTVPWKHIZXQUDIXTWLRVQYDVPYGVDWDAUIVADVJWKXQVBVKTVLVMVRWAH
      IZWOWHRVQVPXCYHXIAVTVNUMGUOVPWPWNRVQFVOVI $.
  $}

  $( The sine function is periodic.  (Contributed by Paul Chapman,
     23-Jan-2008.)  (Revised by Mario Carneiro, 10-May-2014.) $)
  sinper $p |- ( ( A e. CC /\ K e. ZZ ) ->
                 ( sin ` ( A + ( K x. ( 2 x. _pi ) ) ) ) = ( sin ` A ) ) $=
    ( c2 ci cmul co csin cmin sinval cpi caddc sinperlem ) ACDEFGBHAIABCJEFEFKF
    IL $.

  $( The cosine function is periodic.  (Contributed by Paul Chapman,
     23-Jan-2008.)  (Revised by Mario Carneiro, 10-May-2014.) $)
  cosper $p |- ( ( A e. CC /\ K e. ZZ ) ->
                 ( cos ` ( A + ( K x. ( 2 x. _pi ) ) ) ) = ( cos ` A ) ) $=
    ( c2 ccos caddc cosval cpi cmul co sinperlem ) ACDBEAFABCGHIHIEIFJ $.

  $( If ` K ` is an integer, the sine of ` 2 K _pi ` is 0.  (Contributed by
     Paul Chapman, 23-Jan-2008.)  (Revised by Mario Carneiro, 10-May-2014.) $)
  sin2kpi $p |- ( K e. ZZ -> ( sin ` ( K x. ( 2 x. _pi ) ) ) = 0 ) $=
    ( cz wcel cc0 c2 cpi cmul co caddc csin cfv cc zcn 2cn mulcli mulcl sylancl
    picn addid2d fveq2d wceq 0cn sinper mpan sin0 syl6eq eqtr3d ) ABCZDAEFGHZGH
    ZIHZJKZUJJKDUHUKUJJUHUJUHALCUILCUJLCAMEFNROAUIPQSTUHULDJKZDDLCUHULUMUAUBDAU
    CUDUEUFUG $.

  $( If ` K ` is an integer, the cosine of ` 2 K _pi ` is 1.  (Contributed by
     Paul Chapman, 23-Jan-2008.)  (Revised by Mario Carneiro, 10-May-2014.) $)
  cos2kpi $p |- ( K e. ZZ -> ( cos ` ( K x. ( 2 x. _pi ) ) ) = 1 ) $=
    ( cz wcel cc0 c2 cpi cmul co caddc ccos cfv c1 cc zcn 2cn picn mulcli mulcl
    sylancl addid2d fveq2d wceq 0cn cosper mpan cos0 syl6eq eqtr3d ) ABCZDAEFGH
    ZGHZIHZJKZUKJKLUIULUKJUIUKUIAMCUJMCUKMCANEFOPQAUJRSTUAUIUMDJKZLDMCUIUMUNUBU
    CDAUDUEUFUGUH $.

  $( Sine of a number subtracted from ` 2 x. _pi ` .  (Contributed by Paul
     Chapman, 15-Mar-2008.) $)
  sin2pim $p |- ( A e. CC ->
                ( sin ` ( ( 2 x. _pi ) - A ) ) = -u ( sin ` A ) ) $=
    ( cc wcel cneg csin cfv c2 cpi cmul co cmin c1 caddc cz wceq sinper sylancl
    negcl 1z eqtr3d 2cn picn mulcli mulid2i oveq2i wa negsubdi negsubdi2 syl5eq
    mpan2 fveq2d sinneg ) ABCZADZEFZGHIJZAKJZEFZAEFDUMUNLUPIJZMJZEFZUOURUMUNBCL
    NCVAUOOARSUNLPQUMUTUQEUMUTUNUPMJZUQUSUPUNMUPGHUAUBUCZUDUEUMUPBCZVBUQOVCUMVD
    UFAUPKJDVBUQAUPUGAUPUHTUJUIUKTAULT $.

  $( Cosine of a number subtracted from ` 2 x. _pi ` .  (Contributed by Paul
     Chapman, 15-Mar-2008.) $)
  cos2pim $p |- ( A e. CC -> ( cos ` ( ( 2 x. _pi ) - A ) ) = ( cos ` A ) ) $=
    ( cc wcel cneg ccos cfv c2 cpi cmul co cmin c1 caddc cz wceq cosper sylancl
    negcl 1z eqtr3d 2cn picn mulcli mulid2i oveq2i wa negsubdi negsubdi2 syl5eq
    mpan2 fveq2d cosneg ) ABCZADZEFZGHIJZAKJZEFZAEFUMUNLUPIJZMJZEFZUOURUMUNBCLN
    CVAUOOARSUNLPQUMUTUQEUMUTUNUPMJZUQUSUPUNMUPGHUAUBUCZUDUEUMUPBCZVBUQOVCUMVDU
    FAUPKJDVBUQAUPUGAUPUHTUJUIUKTAULT $.

  $( Sine of a number less ` _pi ` .  (Contributed by Paul Chapman,
     15-Mar-2008.) $)
  sinmpi $p |- ( A e. CC -> ( sin ` ( A - _pi ) ) = -u ( sin ` A ) ) $=
    ( cc wcel cpi cmin co csin cfv ccos cmul cneg wceq picn sinsub mpan2 cc0 c1
    oveq2i eqtrd syl5eq cospi sincl neg1cn mulcom mulm1 syl sinpi coscl oveq12d
    mul01d negcld subid1d ) ABCZADEFGHZAGHZDIHZJFZAIHZDGHZJFZEFZUOKZUMDBCUNVALM
    ADNOUMVAVBPEFVBUMUQVBUTPEUMUQUOQKZJFZVBUPVCUOJUARUMUOBCZVDVBLAUBZVEVDVCUOJF
    ZVBVEVCBCVDVGLUCUOVCUDOUOUESUFTUMUTURPJFPUSPURJUGRUMURAUHUJTUIUMVBUMUOVFUKU
    LSS $.

  $( Cosine of a number less ` _pi ` .  (Contributed by Paul Chapman,
     15-Mar-2008.) $)
  cosmpi $p |- ( A e. CC -> ( cos ` ( A - _pi ) ) = -u ( cos ` A ) ) $=
    ( cc wcel cpi cmin ccos cfv cmul csin caddc cneg wceq picn cossub mpan2 cc0
    co oveq2i eqtrd syl5eq c1 cospi coscl neg1cn mulcom mulm1 syl sinpi oveq12d
    sincl mul01d negcld addid1d ) ABCZADEQFGZAFGZDFGZHQZAIGZDIGZHQZJQZUPKZUNDBC
    UOVBLMADNOUNVBVCPJQVCUNURVCVAPJUNURUPUAKZHQZVCUQVDUPHUBRUNUPBCZVEVCLAUCZVFV
    EVDUPHQZVCVFVDBCVEVHLUDUPVDUEOUPUFSUGTUNVAUSPHQPUTPUSHUHRUNUSAUJUKTUIUNVCUN
    UPVGULUMSS $.

  $( Sine of a number plus ` _pi ` .  (Contributed by NM, 10-Aug-2008.) $)
  sinppi $p |- ( A e. CC -> ( sin ` ( A + _pi ) ) = -u ( sin ` A ) ) $=
    ( cc wcel cpi caddc co csin cfv ccos cmul cneg wceq sinadd mpan2 cc0 oveq2i
    picn c1 eqtrd syl5eq cospi sincl neg1cn mulcom mulm1 syl sinpi coscl mul01d
    oveq12d negcld addid1d ) ABCZADEFGHZAGHZDIHZJFZAIHZDGHZJFZEFZUOKZUMDBCUNVAL
    QADMNUMVAVBOEFVBUMUQVBUTOEUMUQUORKZJFZVBUPVCUOJUAPUMUOBCZVDVBLAUBZVEVDVCUOJ
    FZVBVEVCBCVDVGLUCUOVCUDNUOUESUFTUMUTUROJFOUSOURJUGPUMURAUHUITUJUMVBUMUOVFUK
    ULSS $.

  $( Cosine of a complex number plus ` _pi ` .  (Contributed by NM,
     18-Aug-2008.) $)
  cosppi $p |- ( A e. CC -> ( cos ` ( A + _pi ) ) = -u ( cos ` A ) ) $=
    ( cc wcel cpi caddc ccos cfv cmul csin cmin cneg wceq picn cosadd mpan2 cc0
    co oveq2i eqtrd syl5eq c1 cospi coscl neg1cn mulcom mulm1 syl sinpi oveq12d
    sincl mul01d negcld subid1d ) ABCZADEQFGZAFGZDFGZHQZAIGZDIGZHQZJQZUPKZUNDBC
    UOVBLMADNOUNVBVCPJQVCUNURVCVAPJUNURUPUAKZHQZVCUQVDUPHUBRUNUPBCZVEVCLAUCZVFV
    EVDUPHQZVCVFVDBCVEVHLUDUPVDUEOUPUFSUGTUNVAUSPHQPUTPUSHUHRUNUSAUJUKTUIUNVCUN
    UPVGULUMSS $.

  $( The exponential function of ` _i ` times a real number less ` _pi ` .
     (Contributed by Paul Chapman, 15-Mar-2008.) $)
  efimpi $p |- ( A e. CC ->
                ( exp ` ( _i x. ( A - _pi ) ) ) = -u ( exp ` ( _i x. A ) ) ) $=
    ( cc wcel ci cpi cmin co cmul ce cfv ccos csin cneg wceq picn efival ax-icn
    caddc sylancr eqtr4d subcl mpan2 syl coscl sincl mulcl negdid cosmpi sinmpi
    oveq2d mulneg2 eqtrd oveq12d negeqd ) ABCZDAEFGZHGIJZAKJZDALJZHGZRGZMZDAHGI
    JZMUOUQUPKJZDUPLJZHGZRGZVBUOUPBCZUQVGNUOEBCVHOAEUAUBUPPUCUOVBURMZUTMZRGVGUO
    URUTAUDUODBCZUSBCZUTBCQAUEZDUSUFSUGUOVDVIVFVJRAUHUOVFDUSMZHGZVJUOVEVNDHAUIU
    JUOVKVLVOVJNQVMDUSUKSULUMTTUOVCVAAPUNT $.

  $( The sine of ` _pi / 2 ` plus a number.  (Contributed by Paul Chapman,
     24-Jan-2008.) $)
  sinhalfpip $p |- ( A e. CC
      -> ( sin ` ( ( _pi / 2 ) + A ) ) = ( cos ` A ) ) $=
    ( cc wcel cpi c2 cdiv co caddc csin cfv ccos cmul cc0 wceq picn 2cn 2ne0 c1
    oveq1i syl5eq divcli sinadd sinhalfpi coscl mulid2d coshalfpi sincl oveq12d
    mpan mul02d addid1d 3eqtrd ) ABCZDEFGZAHGIJZUNIJZAKJZLGZUNKJZAIJZLGZHGZUQMH
    GUQUNBCUMUOVBNDEOPQUAUNAUBUIUMURUQVAMHUMURRUQLGUQUPRUQLUCSUMUQAUDZUETUMVAMU
    TLGMUSMUTLUFSUMUTAUGUJTUHUMUQVCUKUL $.

  $( The sine of ` _pi / 2 ` minus a number.  (Contributed by Paul Chapman,
     24-Jan-2008.) $)
  sinhalfpim $p |- ( A e. CC
      -> ( sin ` ( ( _pi / 2 ) - A ) ) = ( cos ` A ) ) $=
    ( cc wcel cpi c2 cdiv cmin csin cfv ccos cmul cc0 wceq picn 2cn 2ne0 oveq1i
    co c1 syl5eq divcli sinsub sinhalfpi coscl mulid2d coshalfpi mul02d oveq12d
    mpan sincl subid1d 3eqtrd ) ABCZDEFRZAGRHIZUNHIZAJIZKRZUNJIZAHIZKRZGRZUQLGR
    UQUNBCUMUOVBMDENOPUAUNAUBUIUMURUQVALGUMURSUQKRUQUPSUQKUCQUMUQAUDZUETUMVALUT
    KRLUSLUTKUFQUMUTAUJUGTUHUMUQVCUKUL $.

  $( The cosine of ` _pi / 2 ` plus a number.  (Contributed by Paul Chapman,
     24-Jan-2008.) $)
  coshalfpip $p |- ( A e. CC ->
                     ( cos ` ( ( _pi / 2 ) + A ) ) = -u ( sin ` A ) ) $=
    ( cc wcel cpi c2 cdiv co ccos cfv cmul csin cmin cc0 caddc coshalfpi oveq1i
    cneg syl5eq c1 wceq coscl mul02d sinhalfpi sincl mulid2d oveq12d 2cn divcli
    picn 2ne0 cosadd mpan df-neg a1i 3eqtr4d ) ABCZDEFGZHIZAHIZJGZUQKIZAKIZJGZL
    GZMVBLGZUQANGHIZVBQZUPUTMVCVBLUPUTMUSJGMURMUSJOPUPUSAUAUBRUPVCSVBJGVBVASVBJ
    UCPUPVBAUDUERUFUQBCUPVFVDTDEUIUGUJUHUQAUKULVGVETUPVBUMUNUO $.

  $( The cosine of ` _pi / 2 ` minus a number.  (Contributed by Paul Chapman,
     24-Jan-2008.) $)
  coshalfpim $p |- ( A e. CC
      -> ( cos ` ( ( _pi / 2 ) - A ) ) = ( sin ` A ) ) $=
    ( cc wcel cpi c2 cdiv co cmin ccos cfv cmul csin caddc cc0 wceq picn oveq1i
    2cn syl5eq c1 2ne0 divcli cossub coshalfpi mul02d sinhalfpi mulid2d oveq12d
    mpan coscl sincl addid2d 3eqtrd ) ABCZDEFGZAHGIJZUOIJZAIJZKGZUOLJZALJZKGZMG
    ZNVAMGVAUOBCUNUPVCODEPRUAUBUOAUCUIUNUSNVBVAMUNUSNURKGNUQNURKUDQUNURAUJUESUN
    VBTVAKGVAUTTVAKUFQUNVAAUKZUGSUHUNVAVDULUM $.

  $( Ptolemy's Theorem.  This theorem is named after the Greek astronomer and
     mathematician Ptolemy (Claudius Ptolemaeus).  This particular version is
     expressed using the sine function.  It is proved by expanding all the
     multiplication of sines to a product of cosines of differences using
     ~ sinmul , then using algebraic simplification to show that both sides are
     equal.  This formalization is based on the proof in "Trigonometry" by
     Gelfand and Saul.  This is Metamath 100 proof #95.  (Contributed by David
     A. Wheeler, 31-May-2015.) $)
  ptolemy $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) /\
                    ( ( A + B ) + ( C + D ) ) = _pi ) ->
           ( ( ( sin ` A ) x. ( sin ` B ) ) + ( ( sin ` C ) x. ( sin ` D ) ) )
           = ( ( sin ` ( B + C ) ) x. ( sin ` ( A + C ) ) ) ) $=
    ( cc wcel wa caddc co cpi wceq cmin ccos cfv c2 cdiv csin cneg syl 3adant3
    cmul addcl 3ad2ant2 coscld negnegd addid2 oveq1d 0cnd adantr pnpcan2d simp3
    w3a oveq2d 3eqtr3rd df-neg syl6eqr fveq2d cosmpi cosneg negeqd eqtr3d subcl
    cc0 3eqtr3d adantl subnegd wne 3ad2ant1 subcld addcld 2cnne0 divdir syl3anc
    eqtrd a1i nppcan3d sinmul oveq12d simplr simpll simprl 3jca addass 3ad2ant3
    oveq1 simpl simpr ppncan simp1 jca syl2anc ad2ant2r ad2ant2lr addcom 3eqtrd
    add4 picn sylancr cosppi ancoms negsubdi2 3eqtr4d ) AEFZBEFZGZCEFZDEFZGZABH
    IZCDHIZHIZJKZULZABLIZMNZXIMNZLIZOPIZCDLIZMNZXJMNZLIZOPIZHIZXOXTHIZOPIZAQNBQ
    NUAIZCQNDQNUAIZHIBCHIZQNACHIZQNUAIZXMYDXRXTXPHIZOPIZHIZYFXMYCYMXRHXMYBYLOPX
    MYBXTXPRZLIYLXMYAYOXTLXMYARZRYAYOXMYAXMXJXHXEXJEFZXLCDUBZUCZUDUEXMYPXPXMXJJ
    LIZMNZXIRZMNZYPXPXMYTUUBMXMYTVCXILIZUUBXMVCXJHIZXKLIZXJXKLIZUUDYTXMYQUUFUUG
    KYSYQUUEXJXKLXJUFUGSXMVCXIXJXMUHXEXHXIEFZXLXEUUHXHABUBUIZTZYSUJXMXKJXJLXEXH
    XLUKUMUNXIUOUPUQXMYQUUAYPKYSXJURSXMUUHUUCXPKUUJXIUSSVDUTVAUMXMXTXPXEXHXTEFX
    LXEXHGZXSXHXSEFZXECDVBVEZUDZTZXMXIUUJUDZVFVNUGUMXMXQYLHIZOPIZYNYFXMXQEFYLEF
    OEFOVCVGGZUURYNKXMXOXPXMXNXEXHXNEFZXLABVBZVHUDZUUPVIXMXTXPUUOUUPVJUUSXMVKVO
    XQYLOVLVMXMUUQYEOPXMXOXPXTUVBUUPUUOVPUGVAVNXMYGXRYHYCHXEXHYGXRKXLABVQVHXHXE
    YHYCKXLCDVQUCVRXMYIYJLIZMNZYIYJHIZMNZLIZOPIZBALIZMNZXTHIZOPIYKYFXMUVGUVKOPX
    MUVGUVJXTRZLIZUVKXMUVDUVJUVFUVLLXEXHUVDUVJKXLUUKUVCUVIMUUKBACXCXDXHVSXCXDXH
    VTXEXFXGWAUJUQTXMUVFXSJHIZMNZUVLXMUVEUVNMXMUVEJXSHIZUVNXMXKXSHIZXIXJXSHIZHI
    ZUVPUVEXMUUHYQUULULZUVQUVSKXEXHUVTXLUUKUUHYQUULUUIXHYQXEYRVEUUMWBTXIXJXSWCS
    XLXEUVQUVPKXHXKJXSHWEWDXMUVSXICCHIZHIZYJYIHIZUVEXMXFXGXFULZUVSUWBKXHXEUWDXL
    XHXFXGXFXFXGWFZXFXGWGUWEWBUCUWDUVRUWAXIHCDCWHUMSXMXEXFXFGZUWBUWCKXEXHXLWIXH
    XEUWFXLXHXFXFUWEUWEWJUCABCCWPWKXMYJEFZYIEFZGZUWCUVEKXEXHUWIXLUUKUWGUWHXCXFU
    WGXDXGACUBWLZXDXFUWHXCXGBCUBWMZWJTYJYIWNSWOUNXEXHUVPUVNKZXLUUKJEFUULUWLWQUU
    MJXSWNWRTVNUQXEXHUVOUVLKZXLUUKUULUWMUUMXSWSSTVNVRXEXHUVMUVKKXLUUKUVJXTUUKUV
    IXEUVIEFZXHXDXCUWNBAVBWTUIUDUUNVFTVNUGXEXHYKUVHKZXLUUKUWHUWGUWOUWKUWJYIYJVQ
    WKTXMYEUVKOPXMXOUVJXTHXEXHXOUVJKXLXEXNRZMNZXOUVJXEUUTUWQXOKUVAXNUSSXEUWPUVI
    MABXAUQVAVHUGUGXBXB $.

  $( Lemma for ~ sincosq1sgn .  (Contributed by Paul Chapman, 24-Jan-2008.) $)
  sincosq1lem $p |- ( ( A e. RR /\ 0 < A /\ A < ( _pi / 2 ) ) ->
                      0 < ( sin ` A ) ) $=
    ( cr wcel cc0 clt wbr cpi c2 cdiv co cle csin cfv wi halfpire c4 pire wa wb
    2re ltle mpan2 pigt2lt4 simpri ltleii cmul 2pos pm3.2i ledivmul mp3an 2t2e4
    4re breq2i bitri letr mp3an23 mpan2i syld adantr 3impia w3a cioc cxr elioc2
    mpbir 0xr mp2an sin02gt0 sylbir syld3an3 ) ABCZDAEFZAGHIJZEFZAHKFZDALMEFZVK
    VLVNVOVKVNVONVLVKVNAVMKFZVOVKVMBCZVNVQNOAVMUAUBVKVQVMHKFZVOVSGPKFZGPQULHGEF
    GPEFUCUDUEVSGHHUFJZKFZVTGBCHBCZWCDHEFZRVSWBSQTWCWDTUGUHGHHUIUJWAPGKUKUMUNVE
    VKVRWCVQVSRVONOTAVMHUOUPUQURUSUTVKVLVOVAZADHVBJCZVPDVCCWCWFWESVFTDHAVDVGAVH
    VIVJ $.

  $( The signs of the sine and cosine functions in the first quadrant.
     (Contributed by Paul Chapman, 24-Jan-2008.) $)
  sincosq1sgn $p |- ( A e. ( 0 (,) ( _pi / 2 ) ) ->
                      ( 0 < ( sin ` A ) /\ 0 < ( cos ` A ) ) ) $=
    ( cc0 cpi c2 cdiv co cioo wcel cr clt wbr csin cfv cxr halfpire sincosq1lem
    wa wb cmin syl6bb w3a ccos 0xr rexri elioo2 resubcl mpan syl3an1 3expib 0re
    mp2an ltsub13 mp3an12 recni subid1i breq2i ltsub23 mp3an13 subidi breq1i cc
    anbi12d ancom wceq recn sinhalfpim syl breq2d 3imtr3d 3impib jca sylbi ) AB
    CDEFZGFHZAIHZBAJKZAVMJKZUAZBALMJKZBAUBMZJKZQBNHVMNHVNVRRUCVMOUDBVMAUEUKVRVS
    WAAPVOVPVQWAVOBVMASFZJKZWBVMJKZQZBWBLMZJKZVPVQQZWAVOWCWDWGVOWBIHZWCWDWGVMIH
    ZVOWIOVMAUFUGWBPUHUIVOWEVQVPQWHVOWCVQWDVPVOWCAVMBSFZJKZVQBIHWJVOWCWLRUJOBVM
    AULUMWKVMAJVMVMOUNZUOUPTVOWDVMVMSFZAJKZVPWJVOWJWDWOROOVMAVMUQURWNBAJVMWMUSU
    TTVBVQVPVCTVOWFVTBJVOAVAHWFVTVDAVEAVFVGVHVIVJVKVL $.

  $( The signs of the sine and cosine functions in the second quadrant.
     (Contributed by Paul Chapman, 24-Jan-2008.) $)
  sincosq2sgn $p |- ( A e. ( ( _pi / 2 ) (,) _pi ) ->
                      ( 0 < ( sin ` A ) /\ ( cos ` A ) < 0 ) ) $=
    ( cpi co cioo wcel cr clt wbr w3a cc0 csin cfv ccos wa wb halfpire cxr rexr
    cc wceq c2 cdiv pire elioo2 syl2an mp2an cmin resubcl mpan2 0xr sincosq1sgn
    cneg rexri sylbir syl3an1 3expib ltsub13 mp3an13 subid1d breq2d bitrd caddc
    recn ltsubadd mp3an23 pidiv2halves breq2i anbi12d resincld lt0neg2d 3imtr3d
    0re syl6bb anbi1d pncan3 sylancr fveq2d coshalfpip eqtr3d breq1d sinhalfpip
    recni recnd syl sylibrd 3impib ancomd sylbi ) ABUAUBCZBDCEZAFEZWIAGHZABGHZI
    ZJAKLZGHZAMLZJGHZNWIFEZBFEZWJWNOZPUCWSWIQEZBQEXAWTWIRBRWIBAUDUEUFWNWRWPWKWL
    WMWRWPNZWKWLWMNZAWIUGCZKLZULZJGHZJXEMLZGHZNZXCWKJXEGHZXEWIGHZNJXFGHZXJNZXDX
    KWKXLXMXOWKXEFEZXLXMXOWKWSXPPAWIUHUIZXPXLXMIZXEJWIDCEZXOJQEXBXSXROUJWIPUMJW
    IXEUDUFXEUKUNUOUPWKXLWLXMWMWKXLWIAJUGCZGHZWLJFEWKWSXLYAOVLPJAWIUQURWKXTAWIG
    WKAAVCZUSUTVAWKXMAWIWIVBCZGHZWMWKWSWSXMYDOPPAWIWIVDVEYCBAGVFVGVMVHWKXNXHXJW
    KXFWKXEXQVIVJVNVKWKWRXHWPXJWKWQXGJGWKWIXEVBCZMLZWQXGWKYEAMWKWISEASEYEATWIPW
    BYBWIAVOVPZVQWKXESEZYFXGTWKXEXQWCZXEVRWDVSVTWKWOXIJGWKYEKLZWOXIWKYEAKYGVQWK
    YHYJXITYIXEWAWDVSUTVHWEWFWGWH $.

  $( The signs of the sine and cosine functions in the third quadrant.
     (Contributed by Paul Chapman, 24-Jan-2008.) $)
  sincosq3sgn $p |- ( A e. ( _pi (,) ( 3 x. ( _pi / 2 ) ) ) ->
                      ( ( sin ` A ) < 0 /\ ( cos ` A ) < 0 ) ) $=
    ( cpi c3 c2 co cmul wcel cr clt wbr csin cfv ccos wa wb pire halfpire caddc
    cc0 cxr cdiv cioo w3a 3re remulcli rexr elioo2 mp2an cmin cneg pidiv2halves
    syl2an breq1i ltaddsub mp3an12 syl5bbr ltsubadd mp3an23 c1 oveq1i 2cn recni
    df-3 ax-1cn adddiri divcan2i mulid2i oveq12i 3eqtrri breq2i syl6rbb anbi12d
    2ne0 resubcl mpan2 sincosq2sgn ancom 3imtr3i syl3an1 3expib sylbid resincld
    lt0neg2d anbi2d sylibd wceq recn pncan3 sylancr fveq2d recnd sinhalfpip syl
    cc eqtr3d breq1d coshalfpip sylibrd 3impib sylbi ) ABCBDUAEZFEZUBEGZAHGZBAI
    JZAXBIJZUCZAKLZSIJZAMLZSIJZNZBHGZXBHGZXCXGOZPCXAUDQUEXMBTGZXBTGXOXNBUFZXBUF
    BXBAUGULUHXDXEXFXLXDXEXFNZAXAUIEZMLZSIJZXSKLZUJZSIJZNZXLXDXRYASYBIJZNZYEXDX
    RXAXSIJZXSBIJZNYGXDXEYHXFYIXEXAXAREZAIJZXDYHYJBAIUKUMXAHGZYLXDYKYHOQQXAXAAU
    NUOUPXDYIABXAREZIJZXFXDYLXMYIYNOQPAXABUQURYMXBAIXBDUSREZXAFEDXAFEZUSXAFEZRE
    YMCYOXAFVCUTDUSXAVAVDXAQVBZVEYPBYQXARBDBPVBVAVMVFXAYRVGVHVIVJVKVLXDYHYIYGXD
    XSHGZYHYIYGXDYLYSQAXAVNVOZXSXABUBEGZYFYANYSYHYIUCZYGXSVPYLXMUUAUUBOZQPYLXAT
    GXPUUCXMXAUFXQXABXSUGULUHYFYAVQVRVSVTWAXDYFYDYAXDYBXDXSYTWBWCWDWEXDXIYAXKYD
    XDXHXTSIXDXAXSREZKLZXHXTXDUUDAKXDXAWNGAWNGUUDAWFYRAWGXAAWHWIZWJXDXSWNGZUUEX
    TWFXDXSYTWKZXSWLWMWOWPXDXJYCSIXDUUDMLZXJYCXDUUDAMUUFWJXDUUGUUIYCWFUUHXSWQWM
    WOWPVLWRWSWT $.

  $( The signs of the sine and cosine functions in the fourth quadrant.
     (Contributed by Paul Chapman, 24-Jan-2008.) $)
  sincosq4sgn $p |- ( A e. ( ( 3 x. ( _pi / 2 ) ) (,) ( 2 x. _pi ) ) ->
                      ( ( sin ` A ) < 0 /\ 0 < ( cos ` A ) ) ) $=
    ( c3 cpi c2 co cmul wcel cr clt wbr csin cfv cc0 wa halfpire caddc c1 c4 cc
    ccos cdiv cioo w3a cxr wb 3re remulcli rexri 2re pire elioo2 cmin cneg df-3
    mp2an oveq1i 2cn ax-1cn recni adddiri 2ne0 divcan2i mulid2i oveq12i 3eqtrri
    breq1i ltaddsub mp3an12 syl5bbr ltsubadd mp3an23 df-4 oveq2i wne 4cn 2cnne0
    div12 mp3an 4d2e2 mulcomi eqtri breq2i syl6rbb anbi12d resubcl mpan2 sylbir
    wceq sincosq3sgn syl3an1 3expib sylbid resincld lt0neg1d anbi1d sylibd recn
    pncan3 sylancr fveq2d recnd coshalfpip syl eqtr3d breq2d sinhalfpip sylibrd
    breq1d 3impib ancomd sylbi ) ABCDUAEZFEZDCFEZUBEGZAHGZXMAIJZAXNIJZUCZAKLZMI
    JZMATLZIJZNXMUDGZXNUDGXOXSUEXMBXLUFOUGZUHZXNDCUIUJUGUHXMXNAUKUOXSYCYAXPXQXR
    YCYANZXPXQXRNZMAXLULEZKLZUMZIJZYITLZMIJZNZYGXPYHYJMIJZYNNZYOXPYHCYIIJZYIXMI
    JZNYQXPXQYRXRYSXQCXLPEZAIJZXPYRYTXMAIXMDQPEZXLFEDXLFEZQXLFEZPEYTBUUBXLFUNUP
    DQXLUQURXLOUSZUTUUCCUUDXLPCDCUJUSZUQVAVBXLUUEVCZVDVEVFCHGXLHGZXPUUAYRUEUJOC
    XLAVGVHVIXPYSAXMXLPEZIJZXRXPUUHXMHGYSUUJUEOYEAXLXMVJVKUUIXNAIUUIRXLFEZXNUUK
    BQPEZXLFEXMUUDPEUUIRUULXLFVLUPBQXLBUFUSURUUEUTUUDXLXMPUUGVMVEUUKCRDUAEZFEZX
    NRSGCSGDSGDMVNNUUKUUNWHVOUUFVPRCDVQVRUUNCDFEXNUUMDCFVSVMCDUUFUQVTWAWAWAWBWC
    WDXPYRYSYQXPYIHGZYRYSYQXPUUHUUOOAXLWEWFZUUOYRYSUCZYICXMUBEGZYQCUDGYDUURUUQU
    ECUJUHYFCXMYIUKUOYIWIWGWJWKWLXPYPYLYNXPYJXPYIUUPWMWNWOWPXPYCYLYAYNXPYBYKMIX
    PXLYIPEZTLZYBYKXPUUSATXPXLSGASGUUSAWHUUEAWQXLAWRWSZWTXPYISGZUUTYKWHXPYIUUPX
    AZYIXBXCXDXEXPXTYMMIXPUUSKLZXTYMXPUUSAKUVAWTXPUVBUVDYMWHUVCYIXFXCXDXHWDXGXI
    XJXK $.

  $( Location of the zeroes of cosine in ` ( 0 [,] _pi ) ` .  (Contributed by
     David Moews, 28-Feb-2017.) $)
  coseq00topi $p |- ( A e. ( 0 [,] _pi ) -> ( ( cos ` A ) = 0 <->
                                             A = ( _pi / 2 ) ) ) $=
    ( cc0 cpi co wcel ccos cfv wceq clt wbr simplr wne w3a pire simpr cxr rexri
    wa c1 a1i cicc c2 cdiv csin cioo cr cle simpl elicc2i sylib simp1d ad2antrr
    0re wb halfpire elioo2 syl3anbrc sincosq1sgn syl simprd gt0ne0d cos0 fveq2d
    mp2an syl5reqr ax-1ne0 eqnetrd simp2d 0red leloed mpbid mpjaodan pm2.21ddne
    wo adantr sincosq2sgn lt0ne0d cospi syl6eq neg1ne0 simp3d rehalfcld lttri4d
    cneg mpjao3dan fveq2 coshalfpi adantl impbida ) ABCUADEZAFGZBHZACUBUCDZHZWJ
    WLRZAWMIJZWNWNWMAIJZWOWPRZWNWKBWJWLWPKWRBAIJZWKBLZBAHZWRWSRZWKXBBAUDGIJZBWK
    IJZXBABWMUEDEZXCXDRXBAUFEZWSWPXEWOXFWPWSWOXFBAUGJZACUGJZWOWJXFXGXHMWJWLUHBC
    AUMNUIUJZUKZULWRWSOWOWPWSKBPEWMPEZXEXFWSWPMUNBUMQWMUOQZBWMAUPVDUQAURUSUTVAW
    RXARZWKSBXMSBFGWKVBXMBAFWRXAOVCVESBLXMVFTVGWOWSXAVNZWPWOXGXNWOXFXGXHXIVHWOB
    AWOVIXJVJVKVOVLVMWOWNOWOWQRZWNWKBWJWLWQKXOACIJZWTACHZXOXPRZWKXRXCWKBIJZXRAW
    MCUEDEZXCXSRXRXFWQXPXTWOXFWQXPXJULWOWQXPKXOXPOXKCPEXTXFWQXPMUNXLCNQWMCAUPVD
    UQAVPUSUTVQXOXQRZWKSWDZBYAWKCFGYBYAACFXOXQOVCVRVSYBBLYAVTTVGWOXPXQVNZWQWOXH
    YCWOXFXGXHXIWAWOACXJCUFEWONTZVJVKVOVLVMWOAWMXJWOCYDWBWCWEWNWLWJWNWKWMFGBAWM
    FWFWGVSWHWI $.

  $( Location of the zeroes of cosine in ` ( -u _pi (,] _pi ) ` .  (Contributed
     by David Moews, 28-Feb-2017.) $)
  coseq0negpitopi $p |- ( A e. ( -u _pi (,] _pi ) ->
            ( ( cos ` A ) = 0 <-> A e. { ( _pi / 2 ) , -u ( _pi / 2 ) } ) ) $=
    ( cpi cneg co wcel ccos cfv cc0 wceq wa cr wbr cle pire renegcli 0re adantr
    wb syl mpbid cioc c2 cdiv cpr clt w3a simpl rexri elioc2 mp2an sylib simp1d
    cxr a1i recnd cosneg simplr eqtrd renegcld simpr le0neg1d simp2d ltnegcon1d
    cc cicc ltled syl3anbrc coseq00topi negcon1ad eqcomd halfpire prid2g eleq1a
    elicc2i wi mp2b simp3d prid1g lecasei wo elpri fveq2 coshalfpi cosneghalfpi
    syl6eq jaoi adantl impbida ) ABCZBUADEZAFGZHIZABUBUCDZWMCZUDZEZWJWLJZWPAHWQ
    AKEZWIAUELZABMLZWQWJWRWSWTUFZWJWLUGWIUMEBKEZWJXARWIBNOUHNWIBAUIUJUKZULZHKEW
    QPUNWQAHMLZJZAWNIZWPXFWNAXFAWMXFAWQWRXEXDQZUOXFACZFGZHIZXIWMIZXFXJWKHXFAVDE
    ZXJWKIWQXMXEWQAXDUOQAUPSWJWLXEUQURXFXIHBVEDZEZXKXLRXFXIKEZHXIMLZXIBMLZXOWQX
    PXEWQAXDUSZQXFXEXQWQXEUTXFAXHVATWQXRXEWQXIBXSXBWQNUNZWQBAXTXDWQWRWSWTXCVBVC
    VFQHBXIPNVNVGXIVHSTVIVJWNKEWNWOEXGWPVOWMVKOWMWNKVLWNWOAVMVPSWQHAMLZJZAWMIZW
    PYBWLYCWJWLYAUQYBAXNEZWLYCRYBWRYAWTYDWQWRYAXDQWQYAUTWQWTYAWQWRWSWTXCVQQHBAP
    NVNVGAVHSTWMKEWMWOEYCWPVOVKWMWNKVRWMWOAVMVPSVSWPWLWJWPYCXGVTWLAWMWNWAYCWLXG
    YCWKWMFGHAWMFWBWCWEXGWKWNFGHAWNFWBWDWEWFSWGWH $.

  $( Positive real closure of the tangent function.  (Contributed by Mario
     Carneiro, 29-Jul-2014.) $)
  tanrpcl $p |- ( A e. ( 0 (,) ( _pi / 2 ) ) -> ( tan ` A ) e. RR+ ) $=
    ( cc0 cpi c2 cdiv cioo wcel ctan cfv csin ccos crp wne wceq elioore clt wbr
    co cc elrpd recnd recoscld sincosq1sgn simprd rpne0d tanval resincld simpld
    syl2anc rpdivcld eqeltrd ) ABCDERZFRGZAHIZAJIZAKIZERZLUMASGUPBMUNUQNUMAABUL
    OZUAUMUPUMUPUMAURUBUMBUOPQZBUPPQZAUCZUDTZUEAUFUIUMUOUPUMUOUMAURUGUMUSUTVAUH
    TVBUJUK $.

  $( The tangent function is greater than its argument on positive reals in its
     principal domain.  (Contributed by Mario Carneiro, 29-Jul-2014.) $)
  tangtx $p |- ( A e. ( 0 (,) ( _pi / 2 ) ) -> A < ( tan ` A ) ) $=
    ( cc0 cpi c2 co wcel clt cmul wbr c1 cexp c3 cmin cr sylancr recnd cc caddc
    a1i wb cdiv cioo csin cfv elioore recoscld remulcld 1re cn rehalfcl resqcld
    ccos ctan syl 3nn nndivre sylancl resubcl 2re remulcl resincld 2cn wne 2ne0
    divcan2d fveq2d wceq cos2t eqtr3d cioc wa eliooord simpld 2pos divgt0d pire
    cle simprd pigt2lt4 simpri 2t2e4 breqtrri pm3.2i ltdivmul mp3an mpbir lttrd
    mp1i c4 mulid2i syl6breqr ltdivmul2 syl112anc mpbird ltled cxr elioc2 mp2an
    w3a 0xr syl3anbrc cos01bnd cos01gt0 wi 0re mpd lt2sqd mpbid ltmul2 ltsub1dd
    ltle eqbrtrd 3re 4re readdcl 3lt4 gt0ne0d sqgt0d 3pos ltmul1 mpbii ltsub2dd
    sq1 mulid2d oveq2d oveq12d oveq1d ax-1cn addcl subdid oveq1i syl5eq mulassd
    eqtrd 3eqtrd mulid1d eqtr4d df-3 breqtrrd cn0 binom2sub syl5reqr addsubassd
    addsubd 3eqtr4d adddid 2timesi addassd subcld pncan2 subcl subdird subadd4d
    mul12d sqvald addcomi eqtri adddird 3brtr4d mulgt0d oveq2i 2nn0 mulcomd 3cn
    expp1 3ne0 divassd 3eqtr3d sin01bnd 3nn0 reexpcl resubcld sin2t sincosq1sgn
    eqtr2d 3eqtr2rd ltmuldiv tanval syl2anc ) ABCDUAEZUBEFZAAUCUDZAULUDZUAEZAUM
    UDZGUWAAUWCHEZUWBGIZAUWDGIZUWAUWFAJADUAEZDKEZLUAEZMEZHEZJDUWKHEZMEZHEZUWBUW
    AAUWCABUVTUEZUWAAUWQUFZUGUWAUWMUWOUWAAUWLUWQUWAJNFZUWKNFZUWLNFUHUWAUWJNFLUI
    FZUWTUWAUWIUWAANFZUWINFZUWQAUJUNZUKZUOUWJLUPUQZJUWKUROZUGZUWAUWSUWNNFZUWONF
    ZUHUWADNFZUWTUXIUSUXFDUWKUTOZJUWNUROZUGZUWAAUWQVAZUWAUWFAUWLUWOHEZHEZUWPGUW
    AUWCUXPGIZUWFUXQGIZUWAUWCDUWLDKEZHEZJMEZUXPUWRUWAUYANFZUWSUYBNFUWAUXKUXTNFZ
    UYCUSUWAUWLUXGUKZDUXTUTOZUHUYAJURUQUWAUWLUWOUXGUXMUGZUWAUWCDUWIULUDZDKEZHEZ
    JMEZUYBGUWADUWIHEZULUDZUWCUYKUWAUYLAULUWAADUWAAUWQPZDQFUWAVBSZDBVCUWAVDSVEZ
    VFUWAUWIQFZUYMUYKVGUWAUWIUXDPZUWIVHUNVIUWAUYJUYAJUWAUXKUYINFZUYJNFUSUWAUYHU
    WAUWIUXDUFZUKZDUYIUTOUYFUWSUWAUHSZUWAUYIUXTGIZUYJUYAGIZUWAUYHUWLGIZVUCUWAUW
    OUYHGIZVUEUWAUWIBJVJEFZVUFVUEVKUWAUXCBUWIGIZUWIJVQIZVUGUXDUWAADUWQUXKUWAUSS
    ZUWABAGIZAUVTGIZABUVTVLZVMZBDGIZUWAVNSZVOZUWAUWIJUXDVUBUWAUWIJGIZAJDHEZGIZU
    WAADVUSGUWAAUVTDUWQCNFZUVTNFUWAVPCUJWHVUJUWAVUKVULVUMVRUVTDGIZUWAVVBCDDHEZG
    IZCWIVVCGDCGICWIGIVSVTWAWBVVAUXKUXKVUOVKVVBVVDTVPUSUXKVUOUSVNWCCDDWDWEWFSWG
    DVBWJWKUWAUXBUWSUXKVUOVURVUTTUWQVUBVUJVUPAJDWLWMWNWOBWPFUWSVUGUXCVUHVUIWSTW
    TUHBJUWIWQWRXAZUWIXBUNZVRZUWAUYHUWLUYTUXGUWABUYHGIZBUYHVQIZUWAVUGVVHVVEUWIX
    CUNZUWABNFZUYHNFZVVHVVIXDXEUYTBUYHXKOXFUWABUWLVVKUWAXESZUXGUWABUYHUWLVVMUYT
    UXGVVJVVGWGZWOXGXHUWAUYSUYDUXKVUOVUCVUDTVUAUYEVUJVUPUYIUXTDXIWMXHXJXLUWAJDU
    WKDKEZHEZREZWIUWKHEZMEZVVQLUWKHEZMEZUYBUXPGUWAVVTVVRVVQUWALNFZUWTVVTNFXMUXF
    LUWKUTOUWAWINFZUWTVVRNFXNUXFWIUWKUTOZUWAUWSVVPNFZVVQNFUHUWAUXKVVONFVWEUSUWA
    UWKUXFUKZDVVOUTOZJVVPXOOUWALWIGIZVVTVVRGIZXPUWAVWBVWCUWTBUWKGIVWHVWITVWBUWA
    XMSZVWCUWAXNSUXFUWAUWJLUXEVWJUWAUWIUXDUWAUWIVUQXQXRBLGIUWAXSSVOLWIUWKXTWMYA
    YBUWAUYBJVVSREZJMEZVVSUWAUYAVWKJMUWAUYADJVVOREZUWNMEZHEDVWMHEZDUWNHEZMEZVWK
    UWAUXTVWNDHUWAJDKEZDJUWKHEZHEZMEZVVOREZUWOVVOREUXTVWNUWAVXAUWOVVORUWAVWRJVW
    TUWNMVWRJVGUWAYCSUWAVWSUWKDHUWAUWKUWAUWKUXFPZYDZYEYFYGUWAJQFZUWKQFZUXTVXBVG
    YHVXCJUWKUUAOUWAJVVOUWNUWAJVUBPZUWAVVOVWFPZUWAUWNUXLPZUUDUUEYEUWADVWMUWNUYO
    UWAVXEVVOQFVWMQFYHVXHJVVOYIOVXIYJUWAVWQJVVQREZVVRMEVWKUWAVWOVXJVWPVVRMUWAVW
    ODJHEZVVPREZVXJUWADJVVOUYOVXGVXHUUFUWAVXLJJREZVVPREVXJVXKVXMVVPRJYHUUGYKUWA
    JJVVPVXGVXGUWAVVPVWGPZUUHYLYNUWAVVRVVCUWKHEVWPVVCWIUWKHWAYKUWADDUWKUYOUYOVX
    CYMUUBYFUWAJVVQVVRVXGUWAVXEVVPQFVVQQFYHVXNJVVPYIOZUWAVVRVWDPZUUCYNYOYGUWAVX
    EVVSQFVWLVVSVGYHUWAVVQVVRVXOVXPUUIJVVSUUJOYNUWAUXPUWLJHEZUWLUWNHEZMEUWLUWNV
    VPMEZMEZVWAUWAUWLJUWNUWAVXEVXFUWLQFYHVXCJUWKUUKOZVXGVXIYJUWAVXQUWLVXRVXSMUW
    AUWLVYAYPUWAVXRJUWNHEZUWKUWNHEZMEVXSUWAJUWKUWNVXGVXCVXIUULUWAVYBUWNVYCVVPMU
    WAUWNVXIYDUWAVYCDUWKUWKHEZHEVVPUWAUWKDUWKVXCUYOVXCUUNUWAVVOVYDDHUWAUWKVXCUU
    OYEYQYFYNYFUWAVXTVVQUWKUWNREZMEVWAUWAJUWKUWNVVPVXGVXCVXIVXNUUMUWAVVTVYEVVQM
    UWAVVTJDREZUWKHEZVYELVYFUWKHLDJREZVYFYRDJVBYHUUPUUQYKUWAVYGVWSUWNREVYEUWAJD
    UWKVXGUYOVXCUURUWAVWSUWKUWNRVXDYGYNYLYEYQYOUUSWGUWAUWCNFZUXPNFUXBVUKUXRUXST
    UWRUYGUWQVUNUWCUXPAXIWMXHUWAAUWLUWOUYNVYAUWAUWOUXMPYMYSUWAUWPUWMUYHHEZUWBUX
    NUWAUWMUYHUXHUYTUGUXOUWAVUFUWPVYJGIZUWAVUFVUEVVFVMUWAUXJVVLUWMNFZBUWMGIVUFV
    YKTUXMUYTUXHUWAAUWLUWQUXGVUNVVNUUTUWOUYHUWMXIWMXHUWAVYJDUWIUCUDZHEZUYHHEZUW
    BGUWAUWMVYNGIZVYJVYOGIZUWAUWMDUWIUWILKEZLUAEZMEZHEZVYNGUWAUYLUWLHEDUWIUWLHE
    ZHEUWMWUAUWADUWIUWLUYOUYRVYAYMUWAUYLAUWLHUYPYGUWAWUBVYTDHUWAWUBUWIJHEZUWIUW
    KHEZMEVYTUWAUWIJUWKUYRVXGVXCYJUWAWUCUWIWUDVYSMUWAUWIUYRYPUWAVYSUWIUWJHEZLUA
    EWUDUWAVYRWUELUAUWAVYRUWJUWIHEZWUEUWAVYRUWIVYHKEZWUFLVYHUWIKYRUVAUWAUYQDYTF
    WUGWUFVGUYRUVBUWIDUVEUQYLUWAUWJUWIUWAUWJUXEPZUYRUVCYNYGUWAUWIUWJLUYRWUHLQFU
    WAUVDSLBVCUWAUVFSUVGUVOYFYNYEUVHUWAVYTVYMGIZWUAVYNGIZUWAWUIVYMUWIGIZUWAVUGW
    UIWUKVKVVEUWIUVIUNVMUWAVYTNFVYMNFZUXKVUOWUIWUJTUWAUWIVYSUXDUWAVYRNFZUXAVYSN
    FUWAUXCLYTFWUMUXDUVJUWILUVKUQUOVYRLUPUQUVLUWAUWIUXDVAZVUJVUPVYTVYMDXIWMXHXL
    UWAVYLVYNNFZVVLVVHVYPVYQTUXHUWAUXKWULWUOUSWUNDVYMUTOUYTVVJUWMVYNUYHXTWMXHUW
    AVYODVYMUYHHEHEZUYLUCUDZUWBUWADVYMUYHUYOUWAVYMWUNPUWAUYHUYTPYMUWAUYQWUQWUPV
    GUYRUWIUVMUNUWAUYLAUCUYPVFUVPYSWGWGUWAUXBUWBNFVYIBUWCGIZUWGUWHTUWQUXOUWRUWA
    BUWBGIWURAUVNVRZAUWBUWCUVQWMXHUWAAQFUWCBVCUWEUWDVGUYNUWAUWCWUSXQAUVRUVSYS
    $.

  $( The tangent function is greater than or equal to its argument in absolute
     value.  (Contributed by Mario Carneiro, 25-Feb-2015.) $)
  tanabsge $p |- ( A e. ( -u ( _pi / 2 ) (,) ( _pi / 2 ) ) ->
    ( abs ` A ) <_ ( abs ` ( tan ` A ) ) ) $=
    ( co cneg wcel cc0 clt wbr cabs cfv ctan cle wa cr adantr wb sylancr simprd
    syl 0re fveq2d c2 cdiv cioo wceq elioore renegcld ccos csin lt0neg1d biimpa
    cpi eliooord simpld halfpire ltnegcon1 mpbid cxr w3a 0xr rexri elioo2 mp2an
    syl3anbrc sincosq1sgn gt0ne0d retancld tangtx ltled wi ltle sylancl absnidd
    imp cc recnd negnegd negcld tanneg syl2anc eqtr3d absnegd 0red letrd absidd
    wne mpd 3eqtrd 3brtr4d abs0 eqeltri leidi a1i simpr syl6eq lttri4 mpjao3dan
    tan0 w3o ) AUKUAUBBZCZWSUCBDZAEFGZAHIZAJIZHIZKGAEUDZEAFGZXAXBLZACZXIJIZXCXE
    KXHXIXJXHAXAAMDZXBAWTWSUEZNZUFZXHXIXNXHXIUGIZXHEXIUHIFGZEXOFGZXHXIEWSUCBZDZ
    XPXQLXHXIMDZEXIFGZXIWSFGZXSXNXAXBYAXAAXLUIUJZXHWTAFGZYBXAYDXBXAYDAWSFGZAWTW
    SULZUMNXHWSMDXKYDYBOUNXMWSAUOPUPEUQDZWSUQDZXSXTYAYBUROUSWSUNUTZEWSXIVAVBVCZ
    XIVDRQVEZVFZXHXSXIXJFGYJXIVGRVHZXHAXMXAXBAEKGZXAXKEMDZXBYNVIXLSAEVJVKVMVLXH
    XEXJCZHIXJHIXJXHXDYPHXHXICZJIZXDYPXHYQAJXHAXAAVNDXBXAAXLVONZVPTXHXIVNDXOEWE
    YRYPUDXHAYSVQYKXIVRVSVTTXHXJXHXJYLVOWAXHXJYLXHEXIXJXHWBXNYLXHYAEXIKGZYCXHYO
    XTYAYTVISXNEXIVJPWFYMWCWDWGWHXAXFLZEHIZUUBXCXEKUUBUUBKGUUAUUBUUBEMWISWJWKWL
    UUAAEHXAXFWMZTUUAXDEHUUAXDEJIEUUAAEJUUCTWQWNTWHXAXGLZAXDXCXEKUUDAXDXAXKXGXL
    NZUUDAUUEUUDAUGIZUUDEAUHIFGZEUUFFGZUUDAXRDZUUGUUHLUUDXKXGYEUUIUUEXAXGWMXAYE
    XGXAYDYEYFQNYGYHUUIXKXGYEUROUSYIEWSAVAVBVCZAVDRQVEVFZUUDUUIAXDFGUUJAVGRVHZU
    UDAUUEXAXGEAKGZXAYOXKXGUUMVISXLEAVJPVMZWDUUDXDUUKUUDEAXDUUDWBUUEUUKUUNUULWC
    WDWHXAXKYOXBXFXGWRXLSAEWOVKWP $.

  $( The sine of a number strictly between ` 0 ` and ` _pi ` is positive.
     (Contributed by Paul Chapman, 15-Mar-2008.) $)
  sinq12gt0 $p |- ( A e. ( 0 (,) _pi ) -> 0 < ( sin ` A ) ) $=
    ( cc0 cpi co wcel cr clt wbr csin cfv wb pire c2 cdiv cmul 3ad2ant1 wa wceq
    syl cc cioo w3a cxr 0xr rexri elioo2 mp2an rehalfcl halfpos2 biimpa 3adant3
    ccos 2re 2pos pm3.2i ltdiv1 mp3an23 adantr biimp3a sincosq1lem syl3anc cmin
    resubcl mpan posdif mpan2 bitrd ltsubpos recn picn 2cnne0 divsubdir mp3an13
    wne fveq2d recnd sinhalfpim eqtrd breqtrd resincl recoscl jca axmulgt0 3syl
    wi remulcl sylancr mpani syld mp2and 2cn 2ne0 divcan2 sin2t eqtr3d breqtrrd
    sylbi ) ABCUADEZAFEZBAGHZACGHZUBZBAIJZGHBUCECUCEWRXBKUDCLUEBCAUFUGXBBMAMNDZ
    IJZXDULJZODZODZXCGXBBXEGHZBXFGHZBXHGHZXBXDFEZBXDGHZXDCMNDZGHZXIWSWTXLXAAUHZ
    PWSWTXMXAWSWTXMAUIUJUKWSWTXAXOWSXAXOKZWTWSCFEZMFEZBMGHZQZXQLXSXTUMUNUOZACMU
    PUQURUSXDUTVAXBBCAVBDZMNDZIJZXFGXBYDFEZBYDGHZYDXNGHZBYEGHWSWTYFXAWSYCFEZYFX
    RWSYILCAVCVDZYCUHSPWSWTXAYGWSXAYGKWTWSXABYCGHZYGWSXRXAYKKLACVEVFWSYIYKYGKYJ
    YCUISVGURUSWSWTYHXAWSWTYHWSWTYCCGHZYHWSXRWTYLKLACVHVFWSYIYLYHKZYJYIXRYAYMLY
    BYCCMUPUQSVGUJUKYDUTVAWSWTYEXFRXAWSYEXNXDVBDZIJZXFWSYDYNIWSATEZYDYNRZAVIZCT
    EYPMTEZMBVNZQYQVJVKCAMVLVMSVOWSXDTEZYOXFRWSXDXPVPZXDVQSVRPVSWSWTXIXJQZXKWEX
    AWSUUCBXGGHZXKWSXLXEFEZXFFEZQZUUCUUDWEXPXLUUEUUFXDVTXDWAWBZXEXFWCWDWSXTUUDX
    KUNWSXSXGFEZXTUUDQXKWEUMWSXLUUGUUIXPUUHXEXFWFWDMXGWCWGWHWIPWJWSWTXCXHRXAWSM
    XDODZIJZXCXHWSUUJAIWSYPUUJARZYRYPYSYTUULWKWLAMWMUQSVOWSUUAUUKXHRUUBXDWNSWOP
    WPWQ $.

  $( The sine of a number between ` 0 ` and ` _pi ` is nonnegative.
     (Contributed by Mario Carneiro, 13-May-2014.) $)
  sinq12ge0 $p |- ( A e. ( 0 [,] _pi ) -> 0 <_ ( sin ` A ) ) $=
    ( cc0 cpi co wcel clt wbr csin cfv cle wceq wi cr 0re pire cxr rexr sylancr
    wb 0le0 cicc elicc2i simp1bi w3a cioo elioo2 syl2an sinq12gt0 sylbir 3expib
    wa mp2an syl resincld ltle syld expd sin0 breqtrri syl5breq a1d a1i simp2bi
    fveq2 wo leloe mpbid mpjaod sinpi syl5breqr simp3bi sylancl ) ABCUADEZACFGZ
    BAHIZJGZACKZVMBAFGZVNVPLZBAKZVMVRVNVPVMVRVNUKZBVOFGZVPVMAMEZWAWBLVMWCBAJGZA
    CJGZBCANOUBZUCZWCVRVNWBWCVRVNUDZABCUEDEZWBBMEZCMEZWIWHSZNOWJBPECPEWLWKBQCQB
    CAUFUGULAUHUIUJUMVMWJVOMEWBVPLNVMAWGUNBVOUORUPUQVTVSLVMVTVPVNVTBBHIZVOJBBWM
    JTURUSBAHVDUTVAVBVMWDVRVTVEZVMWCWDWEWFVCVMWJWCWDWNSNWGBAVFRVGVHVQVPLVMVQBCH
    IZVOJBBWOJTVIUSACHVDVJVBVMWEVNVQVEZVMWCWDWEWFVKVMWCWKWEWPSWGOACVFVLVGVH $.

  $( The sine of a number strictly between ` _pi ` and ` 2 x. _pi ` is
     negative.  (Contributed by NM, 17-Aug-2008.) $)
  sinq34lt0t $p |- ( A e. ( _pi (,) ( 2 x. _pi ) ) -> ( sin ` A ) < 0 ) $=
    ( cpi c2 cmul co cioo wcel csin cfv cc0 clt cneg cmin cr wb caddc pire picn
    wbr syl elioore wa 0re iooshf mpanr12 addid2i eqcomi 2timesi oveq12i eleq2i
    mpan2 syl6rbbr ibi sinq12gt0 cc wceq recnd sinmpi breqtrd resincld lt0neg1d
    mpbird ) ABCBDEZFEZGZAHIZJKSJVFLZKSVEJABMEZHIZVGKVEVHJBFEGZJVIKSVEVJVEANGZV
    EVJOABVCUAZVKVJAJBPEZBBPEZFEZGZVEVKBNGZVJVPOZQVKVQUBJNGVQVRUCQABJBUDUEUKVDV
    OABVMVCVNFVMBBRUFUGBRUHUIUJULTUMVHUNTVEAUOGVIVGUPVEAVLUQAURTUSVEVFVEAVLUTVA
    VB $.

  $( The cosine of a number strictly between ` -u _pi / 2 ` and ` _pi / 2 ` is
     positive.  (Contributed by Mario Carneiro, 25-Feb-2015.) $)
  cosq14gt0 $p |- ( A e. ( -u ( _pi / 2 ) (,) ( _pi / 2 ) ) ->
                    0 < ( cos ` A ) ) $=
    ( cpi co cioo wcel cc0 cmin cfv clt wbr cr halfpire cxr w3a wb rexri elioo2
    cc picn syl cdiv cneg csin ccos elioore resubcl sylancr neghalfpirx simp3bi
    mp2an posdif sylancl mpbid halfcl ax-mp negcli caddc pidiv2halves subaddrii
    c2 negsubi eqtri simp2bi syl5eqbr pire ltsub23 mp3an13 mpbird 0xr syl3anbrc
    sinq12gt0 wceq recnd sinhalfpim breqtrd ) ABUTUACZUBZVPDCEZFVPAGCZUCHZAUDHZ
    IVRVSFBDCEZFVTIJVRVSKEZFVSIJZVSBIJZWBVRVPKEZAKEZWCLAVQVPUEZVPAUFUGVRAVPIJZW
    DVRWGVQAIJZWIVQMEVPMEVRWGWJWINOUHVPLPVQVPAQUJZUIVRWGWFWIWDOWHLAVPUKULUMVRWE
    VPBGCZAIJZVRWLVQAIVPBVQBREVPRESBUNUOZSVPWNUPBVQUQCBVPGCVPBVPSWNVABVPVPSWNWN
    URUSVBUSVRWGWJWIWKVCVDVRWGWEWMOZWHWFWGBKEWOLVEVPABVFVGTVHFMEBMEWBWCWDWENOVI
    BVEPFBVSQUJVJVSVKTVRAREVTWAVLVRAWHVMAVNTVO $.

  $( The cosine of a number between ` -u _pi / 2 ` and ` _pi / 2 ` is
     nonnegative.  (Contributed by Mario Carneiro, 13-May-2014.) $)
  cosq14ge0 $p |- ( A e. ( -u ( _pi / 2 ) [,] ( _pi / 2 ) ) ->
                    0 <_ ( cos ` A ) ) $=
    ( cpi co cicc wcel cc0 cfv cle wbr cr halfpire elicc2i sylancr wb mpbird cc
    cmin picn subaddrii syl c2 cdiv cneg csin neghalfpire simp1bi subge0 halfcl
    ccos resubcl simp3bi ax-mp negcli caddc negsubi pidiv2halves eqtri syl5eqbr
    simp2bi pire suble mp3an13 0re syl3anbrc sinq12ge0 recnd sinhalfpim breqtrd
    wceq ) ABUAUBCZUCZVJDCEZFVJAQCZUDGZAUIGZHVLVMFBDCEZFVNHIVLVMJEZFVMHIZVMBHIZ
    VPVLVJJEZAJEZVQKVLWAVKAHIZAVJHIZVKVJAUEKLZUFZVJAUJMVLVRWCVLWAWBWCWDUKVLVTWA
    VRWCNKWEVJAUGMOVLVSVJBQCZAHIZVLWFVKAHVJBVKBPEVJPERBUHULZRVJWHUMBVKUNCBVJQCV
    JBVJRWHUOBVJVJRWHWHUPSUQSVLWAWBWCWDUSURVLWAVSWGNZWEVTWABJEWIKUTVJABVAVBTOFB
    VMVCUTLVDVMVETVLAPEVNVOVIVLAWEVFAVGTVH $.

  $( Complementarity of the sine and cosine functions in the first quadrant.
     (Contributed by Paul Chapman, 25-Jan-2008.) $)
  sincosq1eq $p |- ( ( A e. CC /\ B e. CC /\ ( A + B ) = 1 ) ->
           ( sin ` ( A x. ( _pi / 2 ) ) ) = ( cos ` ( B x. ( _pi / 2 ) ) ) ) $=
    ( cc wcel caddc co c1 wceq w3a cpi c2 cdiv cmul cmin ccos cfv mulcl 3adant3
    mpan2 eqtr3d csin picn 2cn 2ne0 divcli coshalfpim syl 3ad2ant1 adddir oveq1
    mp3an3 mulid2i syl6eq 3ad2ant3 wb subadd mp3an1 syl2an mpbird fveq2d ) ACDZ
    BCDZABEFZGHZIZJKLFZAVFMFZNFZOPZVGUAPZBVFMFZOPVAVBVIVJHZVDVAVGCDZVLVAVFCDZVM
    JKUBUCUDUEZAVFQSZVGUFUGUHVEVHVKOVEVHVKHZVGVKEFZVFHZVEVCVFMFZVRVFVAVBVTVRHZV
    DVAVBVNWAVOABVFUIUKRVDVAVTVFHVBVDVTGVFMFVFVCGVFMUJVFVOULUMUNTVAVBVQVSUOZVDV
    AVMVKCDZWBVBVPVBVNWCVOBVFQSVNVMWCWBVOVFVGVKUPUQURRUSUTT $.

  $( The sine and cosine of ` _pi / 4 ` .  (Contributed by Paul Chapman,
     25-Jan-2008.) $)
  sincos4thpi $p |- ( ( sin ` ( _pi / 4 ) ) = ( 1 / ( sqrt ` 2 ) ) /\
                      ( cos ` ( _pi / 4 ) ) = ( 1 / ( sqrt ` 2 ) ) ) $=
    ( cpi c4 cdiv co csin cfv c1 c2 csqrt wceq cmul cc wcel ax-mp pire 2ne0 cc0
    recni wbr clt ccos caddc halfcn ax-1cn 2halves sincosq1eq oveq2i divmuldivi
    mp3an 2cn mulid2i 2t2e4 oveq12i eqtri fveq2i recidi oveq1i redivcli mulassi
    2re 3eqtr3i mulcli sin2t sinhalfpi 4re 4ne0 resincl remulcli 0le2 sqrtmulii
    cr msqge0i sqrt1 3eqtr3ri wne wa cle sqrtcli sqrt2re sqrt00 mp2an necon3bii
    wb mpbir pm3.2i divmul2 0re cioc 4pos divgt0ii 1re pigt2lt4 simpri ltdiv1ii
    mpbi dividi breqtri ltleii cxr w3a elioc2 mpbir3an sin01gt0 sqrtmsqi eqtr2i
    pipos 0xr ) ABCDZEFZGHIFZCDZJXHUAFZXKJXKXIXIKDZIFZXIXKXNJZGXJXNKDZJZHXMKDZI
    FGIFXPGXRGIHGHCDZAHCDZKDZEFZYBKDZKDHYBYAUAFZKDZKDZXRGYCYEHKYBYDYBKXSLMZYGXS
    XSUBDGJZYBYDJUCUCGLMZYHUDGUENXSXSUFUIZUGUGYCXMHKYBXIYBXIKYAXHEYAGAKDZHHKDZC
    DXHGHAHUDUJAORZUJPPUHYKAYLBCAYMUKULUMUNZUOZYOUMUGHYAKDZEFZXTEFYFGYPXTEHXSKD
    ZXTKDGXTKDYPXTYRGXTKHUJPUPUQHXSXTUJUCXTAHOUTPURRZUSXTYSUKVAUOYALMYQYFJXSXTU
    CYSVBYAVCNVDVAVAUOHXMUTXIXIXHVKMZXIVKMABOVEVFURZXHVGNZUUBVHZVIXIUUBVLZVJVMV
    NYIXNLMXJLMZXJQVOZVPXOXQWCUDXNQXMVQSXNVKMUUDXMUUCVRNRUUEUUFXJVSRUUFHQVOPXJQ
    HQHVKMQHVQSXJQJHQJWCUTVIHVTWAWBWDWEGXNXJWFUIWDZQXIVQSXNXIJQXIWGUUBXHQGWHDMZ
    QXITSUUHYTQXHTSZXHGVQSZUUAABOVEXFWIWJXHGUUAWKXHBBCDZGTABTSZXHUUKTSHATSUULWL
    WMABBOVEVEWIWNWOBBVERVFWPWQWRQWSMGVKMUUHYTUUIUUJWTWCXGWKQGXHXAWAXBXHXCNWRXI
    UUBXDNZXEXKXIXLXKXNXIUUGUUMUNYBYDXIXLYJYOYAXHUAYNUOVAXEWE $.

  $( The tangent of ` _pi / 4 ` .  (Contributed by Mario Carneiro,
     5-Apr-2015.) $)
  tan4thpi $p |- ( tan ` ( _pi / 4 ) ) = 1 $=
    ( cpi c4 cdiv co ctan cfv csin ccos c1 c2 cc wcel cc0 wne mp2an sincos4thpi
    wceq cr recni eqnetri csqrt cn pire 4nn nndivre simpri sqrt2re cexp cle wbr
    2re 0le2 resqrtth 2ne0 sqne0 ax-mp mpbi recne0 tanval simpli oveq12i reccli
    wb dividi 3eqtri ) ABCDZEFZVFGFZVFHFZCDZIJUAFZCDZVLCDIVFKLVIMNVGVJQVFARLBUB
    LVFRLUCUDABUEOSVIVLMVHVLQZVIVLQZPUFZVKKLZVKMNZVLMNVKUGSZVKJUHDZMNZVQVSJMJRL
    MJUIUJVSJQUKULJUMOUNTVPVTVQVCVRVKUOUPUQZVKUROZTVFUSOVHVLVIVLCVMVNPUTVOVAVLV
    KVRWAVBWBVDVE $.

  $( The sine and cosine of ` _pi / 6 ` .  (Contributed by Paul Chapman,
     25-Jan-2008.)  Replace OLD theorem.  (Revised by Wolf Lammen,
     24-Sep-2020.) $)
  sincos6thpi $p |- ( ( sin ` ( _pi / 6 ) ) = ( 1 / 2 ) /\
                      ( cos ` ( _pi / 6 ) ) = ( ( sqrt ` 3 ) / 2 ) ) $=
    ( cpi c6 cdiv co cfv c1 c2 wceq c3 2cn cc wcel ax-mp cmul cr 3cn cc0 clt c4
    wbr csin ccos csqrt pire 6pos gt0ne0ii redivcli recni sincl recoscl mulassi
    6re 2ne0 sin2t eqtr4i caddc 3ne0 divcli reccli oveq1i dividi ax-1cn divdiri
    df-3 3eqtr3ri sincosq1eq mp3an picn divmuldivi oveq2i divassi 3eqtri fveq2i
    3t2e6 6cn eqtr3i mulid2i oveq12i eqtri wne wa wb mulcli cioo pipos divgt0ii
    2lt6 2re 2pos pm3.2i ltdiv2 mpbi w3a 0re halfpire cxr elioo2 mp2an mpbir3an
    rexr syl2an sincosq1sgn simpri mulcan2 mvllmuli cexp 3re 3pos sqrtpclii cle
    sqdivi ltleii sqsqrti sq2 sqrtge0i divge0i sqrtsqi cmin 4cn divsubdir 3p1e4
    4ne0 subadd2i mpbir sqcli sqrecii sincossq subaddrii ) ABCDZUAEZFGCDZHYIUBE
    ZIUCEZGCDZHGYJFJYIKLZYJKLYIABUDULBULUEUFZUGZUHZYIUIMZUMGYJNDZYLNDZFYLNDZHZY
    TFHZUUAYLUUBUUAGYINDZUAEZYLUUAGYJYLNDNDZUUFGYJYLJYSYLYIOLZYLOLYQYIUJMZUHZUK
    YOUUFUUGHYRYIUNMUOFICDZAGCDZNDZUBEZUUFYLGICDZUULNDZUAEZUUNUUFUUOKLUUKKLUUOU
    UKUPDZFHUUQUUNHGIJPUQURIPUQUSIICDGFUPDZICDFUURIUUSICVDUTIPUQVAGFIJVBPUQVCVE
    UUOUUKVFVGUUPUUEUAUUPGANDZIGNDZCDUUTBCDUUEGIAGJPVHJUQUMVIUVABUUTCVNVJGABJVH
    VOYPVKVLVMVPUUMYIUBUUMFANDZUVACDYIFIAGVBPVHJUQUMVIUVBAUVABCAVHVQVNVRVSVMVPV
    SYLUUJVQUOYTKLFKLZYLKLZYLQVTZWAUUCUUDWBGYJJYSWCVBUVDUVEUUJYLUUIQYJRTZQYLRTZ
    YIQUULWDDLZUVFUVGWAUVHUUHQYIRTZYIUULRTZYQABUDULWEUEWFGBRTZUVJWGGOLZQGRTZWAB
    OLZQBRTZWAAOLZQARTZWAUVKUVJWBUVLUVMWHWIWJUVNUVOULUEWJUVPUVQUDWEWJGBAWKVGWLQ
    OLZUULOLZUVHUUHUVIUVJWMWBZWNWOUVRQWPLUULWPLUVTUVSQWTUULWTQUULYIWQXAWRWSYIXB
    MXCZUFWJYTFYLXDVGWLXEZYNGXFDZUCEZISCDZUCEZYNYLUWCUWEUCUWCYMGXFDZGGXFDZCDUWE
    YMGYMIXGXHXIZUHJUMXKUWGIUWHSCQIXJTZUWGIHQIWNXGXHXLZIXGXMMXNVRVSVMQYNXJTZUWD
    YNHQYMXJTZUVMUWLUWJUWMUWKIXGXOMWIYMGUWIWHXPWRYNYMGUWIWHUMUGXQMYLGXFDZUCEZUW
    FYLUWNUWEUCSSCDZFSCDZXRDZFUWQXRDUWEUWNUWPFUWQXRSXSYBVAUTSFXRDZSCDZUWRUWESKL
    ZUVCUXASQVTZWAUWTUWRHXSVBUXAUXBXSYBWJSFSXTVGUWSISCUWSIHIFUPDSHYASFIXSVBPYCY
    DUTVPFUWQUWNVBSXSYBUSYLUUJYEYJGXFDZUWNUPDZUWQUWNUPDFUXCUWQUWNUPUXCYKGXFDFUW
    HCDUWQYJYKGXFUWBUTGJUMYFUWHSFCXNVJVLUTYOUXDFHYRYIYGMVPYHVEVMQYLXJTUWOYLHQYL
    WNUUIUWAXLYLUUIXQMVPVEWJ $.

  $( The sine and cosine of ` _pi / 3 ` .  (Contributed by Mario Carneiro,
     21-May-2016.) $)
  sincos3rdpi $p |- ( ( sin ` ( _pi / 3 ) ) = ( ( sqrt ` 3 ) / 2 ) /\
                      ( cos ` ( _pi / 3 ) ) = ( 1 / 2 ) ) $=
    ( cpi c3 cdiv co csin cfv c2 wceq ccos c1 cmin c6 cmul picn reccli 3cn 3ne0
    cc wcel divreci csqrt 2cn 2ne0 subdii caddc halfpm6th simpli oveq2i 6cn 6nn
    nnne0i nncan mp2an eqtr3i fveq2i divcli coshalfpim ax-mp sincos6thpi simpri
    oveq12i 3eqtr4i 3eqtr3i sinhalfpim pm3.2i ) ABCDZEFZBUAFGCDZHVFIFZJGCDZHAGC
    DZVFKDZIFZALCDZIFZVGVHVLVNIAVJMDZAJBCDZMDZKDZAJLCDZMDZVLVNAVJVQKDZMDVSWAAVJ
    VQNGUBUCOZBPQOUDWBVTAMVJVJVTKDZKDZWBVTWDVQVJKWDVQHVJVTUEDGBCDHUFUGUHVJRSVTR
    SWEVTHWCLUILUJUKZOVJVTULUMUNUHUNVKVPVFVRKAGNUBUCTABNPQTVAALNUIWFTVBZUOVFRSZ
    VMVGHABNPQUPZVFUQURVNEFZVJHZVOVHHZUSUTVCVLEFZWJVIVJVLVNEWGUOWHWMVIHWIVFVDUR
    WKWLUSUGVCVE $.

  ${
    $d x y $.
    $( ` _pi ` is greater or equal to 3.  This proof is based on the geometric
       observation that a hexagon of unit side length has perimeter 6, which is
       less than the unit-radius circumcircle, of perimeter ` 2 _pi ` .  We
       translate this to algebra by looking at the function ` _e ^ ( _i x ) `
       as ` x ` goes from ` 0 ` to ` _pi / 3 ` ; it moves at unit speed and
       travels distance ` 1 ` , hence ` 1 <_ _pi / 3 ` .  (Contributed by Mario
       Carneiro, 21-May-2016.) $)
    pige3 $p |- 3 <_ _pi $=
      ( vx c1 c3 cmul co cpi cle ci ce cfv cabs cc0 wtru wcel ax-mp cr a1i wceq
      cc ax-icn vy 3cn mulid2i wbr cdiv cneg cicc cv cmpt cmin tru cxr 0xr pirp
      wa crp 3re 3pos elrpii rpdivcl mp2an rpge0 lbicc2 mp3an ubicc2 pm3.2i 0re
      rpxr pire 3ne0 redivcli ccncf efcn cres wss iccssre ax-resscn resmpt mp1i
      sstri wf cdv cdm ssid simpr mulcl sylancr fmptd cnelprrecn ax-1cn dvmptid
      eqid cpr dvmptcmul mulid1i mpteq2i syl6eq dmeqd elexi dmmpti dvcn rescncf
      syl31anc mpsyl eqeltrrd cncfmpt1f cioo crn ctg ctopn reelprrecn recn efcl
      ccnfld syl sylan2 sylancl ctopon cnfldtopon toponmax cin df-ss sylib dvef
      adantl eff feqmptd oveq2d 3eqtr3a fveq2 1re oveq2 fveq2d absefi mulcli c2
      fvmpt3i eqtr3i fveq2i 3brtr3i dvmptco dvmptres3 tgioo2 cnt dvmptres2 ovex
      iccntr fveq1d oveq1d ioossre sselda recnd absmul absi oveq12d 3eqtrd 1le1
      sylan9eq syl6eqbr dvlip it0e0 fvex oveq12i recni negicn caddc ccos cosval
      ef0 csin csqrt sincos3rdpi simpri addcli 2cn 2ne0 mpbi subaddrii mulneg12
      div11i 3eqtri absnegi df-neg rprege0 mp2b oveq2i renegcli clt wb lemuldiv
      absid mpbir eqbrtrri ) BCDEZCFGCUBUCUWNFGUDZBFCUEEZGUDZHUWPUFZDEZIJZKJZBU
      WPDEZBUWPGLALUWPUGEZHAUHZDEZIJZUIZJZUWPUXGJZUJEZKJZBLUWPUJEZKJZDEZUXAUXBG
      MLUXCNZUWPUXCNZUOUXKUXNGUDUKUXOUXPLULNZUWPULNZLUWPGUDZUXOUMUWPUPNZUXRFUPN
      CUPNUXTUNCUQURUSFCUTVAZUWPVHOZUXTUXSUYAUWPVBOZLUWPVCVDZUXQUXRUXSUXPUMUYBU
      YCLUWPVEVDZVFMUALUWPUXGBLUWPLPNZMVGQUWPPNZMFCVIUQVJVKZQZMAUXEIUXCISSVLEZN
      MVMQMASUXEUIZUXCVNZAUXCUXEUIZUXCSVLEZUXCSVOZUYLUYMRMUXCPSUYFUYGUXCPVOZVGU
      YHLUWPVPVAZVQVTZASUXCUXEVRVSUYOMUYKUYJNZUYLUYNNUYRMSSVOZSSUYKWAUYTSUYKWBE
      ZWCZSRUYSUYTMSWDQZMASUXESUYKMUXDSNZUOZHSNZVUDUXESNZTMVUDWEZHUXDWFWGZUYKWL
      WHVUCMVUBASHUIZWCSMVUAVUJMVUAASHBDEZUIVUJMAUXDBHSSSSPSWMZNMWIQZVUHBSNVUEW
      JQMASVUMWKVUFMTQWNASVUKHHTWOWPWQZWRASHVUJHSTWSVUJWLWTWQSSUYKXAXCSSUXCUYKX
      BXDXEXFMPUXGWBEZWCALUWPXGEZUXFHDEZUIZWCVUPMVUOVURMAUXFVUQPXGXHXIJZXNXJJZS
      PVUPUXCPVULNMXKQZUXDPNZMVUDUXFSNZUXDXLZVUEVUGVVCVUIUXEXMXOZXPVVBMVUDVUQSN
      ZVVDVUEVVCVUFVVFVVETUXFHWFXQZXPMAUXFVUQPVUTSSPVUTWLZVVAVUTSXRJNSVUTNMVUTV
      VHXSSVUTXTVSMPSVOZPSYAPRVVIMVQQPSYBYCVVEVVGMAUAUXEHUAUHZIJZVVKSSUXFUXFSSS
      SVUMVUMVUIVUFVUETQVVJSNZVVKSNMVVJXMYEZVVMVUNMSIWBEISUASVVKUIZWBEVVNYDMIVV
      NSWBMUASSISSIWAMYFQYGZYHVVOYIVVJUXEIYJZVVPUUAUUBUYPMUYQQVUTVVHUUCVVHMUYFU
      YGUXCVUSUUDJJVUPRVGUYILUWPUUGWGUUEZWRAVUPVUQVURUXFHDUUFZVURWLZWTWQBPNZMYK
      QMVVJVUPNZUOZVVJVUOJZKJZBBGVWBVWDHVVJDEZIJZHDEZKJZVWFKJZHKJZDEZBVWBVWCVWG
      KMVWAVWCVVJVURJVWGMVVJVUOVURVVQUUHAVVJVUQVWGVUPVURUXDVVJRZUXFVWFHDVWLUXEV
      WEIUXDVVJHDYLYMUUIVVSVVRYQUURYMVWBVWFSNZVUFVWHVWKRVWBVWESNZVWMVWBVUFVVLVW
      NTVWBVVJMVUPPVVJVUPPVOMLUWPUUJQUUKZUULHVVJWFWGVWEXMXOTVWFHUUMXQVWBVWKBBDE
      BVWBVWIBVWJBDVWBVVJPNVWIBRVWOVVJYNXOVWJBRVWBUUNQUUOBWJWOWQUUPUUQUUSUUTVAU
      XJUWTKUXJBHUWPDEZIJZUJEHUFZUWPDEZIJZUWTUXHBUXIVWQUJUXOUXHBRUYDALUXFBUXCUX
      GUXDLRZUXFLIJBVXAUXELIVXAUXEHLDELUXDLHDYLUVAWQYMUVIWQUXGWLZUXEIUVBZYQOUXP
      UXIVWQRUYEAUWPUXFVWQUXCUXGUXDUWPRUXEVWPIUXDUWPHDYLYMVXBVXCYQOUVCBVWQVWTWJ
      VWPSNVWQSNHUWPTUWPUYHUVDZYOVWPXMOZVWSSNVWTSNVWRUWPUVEVXDYOVWSXMOZVWQVWTUV
      FEZYPUEEZBYPUEEZRVXGBRUWPUVGJZVXHVXIUWPSNZVXJVXHRVXDUWPUVHOUWPUVJJCUVKJYP
      UEERVXJVXIRUVLUVMYRVXGBYPVWQVWTVXEVXFUVNWJUVOUVPUVTUVQUVRVWSUWSIVUFVXKVWS
      UWSRTVXDHUWPUVSVAYSUWAYSUXMUWPBDUWPKJZUXMUWPUWRKJVXLUXMUWPVXDUWBUWRUXLKUW
      PUWCYSYRUXTUYGUXSUOVXLUWPRUYAUWPUWDUWPUWKUWEYRUWFYTUWRPNUXABRUWPUYHUWGUWR
      YNOUWPVXDUCYTVVTFPNCPNZLCUWHUDZUOUWOUWQUWIYKVIVXMVXNUQURVFBFCUWJVDUWLUWM
      $.
  $}

  $( The absolute value of sine has period ` _pi ` .  (Contributed by NM,
     17-Aug-2008.) $)
  abssinper $p |- ( ( A e. CC /\ K e. ZZ )
      -> ( abs ` ( sin ` ( A + ( K x. _pi ) ) ) ) = ( abs ` ( sin ` A ) ) ) $=
    ( cc wcel wa c2 co cpi cmul caddc csin cfv cabs wceq 2cn picn mp3an23 eqtrd
    c1 syl cz cdiv zcn halfcl mulass cc0 wne oveq1d eqtr3d adantl oveq2d fveq2d
    2ne0 divcan1 eqcomd adantr sinper adantlr cneg cmin peano2cn mulcli sylancl
    mulcl mp3an2 sylan2 ax-1cn adddir mulid2i oveq2i syl6req eqtr2d mpan2 pncan
    subadd23 subcl sylan sinmpi ad2antrr sincl absnegd wo zeo mpjaodan ) ACDZBU
    ADZEZBFUBGZUADZABHIGZJGZKLZMLZAKLZMLZNBSJGZFUBGZUADZWGWIEZWLWNMWSWLAWHFHIGZ
    IGZJGZKLZWNWGWLXCNWIWGXCWLWGXBWKKWGXAWJAJWFXAWJNZWEWFBCDZXDBUCZXEWHFIGZHIGZ
    XAWJXEWHCDZXHXANZBUDXIFCDZHCDZXJOPWHFHUEQTXEXGBHIXEXKFUFUGZXGBNOUMBFUNQUHUI
    TUJUKULUOUPWEWIXCWNNWFAWHUQURRULWGWREZWMWNUSZMLZWOXNWLXOMXNWLAHUTGZWQWTIGZJ
    GZKLZXOWGWLXTNWRWGWKXSKWFWEXEWKXSNXFWEXEEZXSAXRHUTGZJGZWKXEWEXRCDZXSYCNZXEW
    QCDZWTCDYDXEWPCDZYFBVAZWPUDTZFHOPVBWQWTVDVCWEXLYDYEPAHXRVOVEVFYAYBWJAJXEYBW
    JNWEXEYBWJHJGZHUTGZWJXEXRYJHUTXEYJWQFIGZHIGZXRXEYMWJSHIGZJGZYJXEYMWPHIGZYOX
    EYLWPHIXEYGYLWPNZYHYGXKXMYQOUMWPFUNQTUHXESCDXLYPYONVGPBSHVHQRYNHWJJHPVIVJVK
    XEYFYMXRNZYIYFXKXLYROPWQFHUEQTVLUHXEWJCDZXLYKWJNXEXLYSPBHVDVMPWJHVNVCRUJUKV
    LVFULUPXNXTXQKLZXOWEWRXTYTNZWFWEXQCDZWRUUAWEXLUUBPAHVPVMXQWQUQVQURWEYTXONWF
    WRAVRVSRRULWEXPWONWFWRWEWNAVTWAVSRWFWIWRWBWEBWCUJWD $.

  $( The sine of an integer multiple of ` _pi ` is 0.  (Contributed by NM,
     11-Aug-2008.) $)
  sinkpi $p |- ( K e. ZZ -> ( sin ` ( K x. _pi ) ) = 0 ) $=
    ( cz wcel cc0 cpi cmul co caddc csin cfv cc zcn picn sylancl addid2d fveq2d
    mulcl 0cn addcl cabs sylancr sincld wceq abssinper mpan fveq2i eqtri syl6eq
    sin0 abs0 abs00d eqtr3d ) ABCZDAEFGZHGZIJZUNIJDUMUOUNIUMUNUMAKCEKCUNKCZALMA
    EQNZOPUMUPUMUOUMDKCZUQUOKCRURDUNSUAUBUMUPTJZDIJZTJZDUSUMUTVBUCRDAUDUEVBDTJD
    VADTUIUFUJUGUHUKUL $.

  $( The absolute value of the cosine of an integer multiple of ` _pi ` is 1.
     (Contributed by NM, 19-Aug-2008.) $)
  coskpi $p |- ( K e. ZZ -> ( abs ` ( cos ` ( K x. _pi ) ) ) = 1 ) $=
    ( wcel cpi cmul co ccos cfv cabs c1 c2 cexp cc 2cn mp3an23 syl cr wb ax-1cn
    wceq mpbid cz caddc 2t1e2 df-2 eqtr2i cmin zcn picn fveq2d cos2kpi zre pire
    mul12 remulcl sylancl recnd cos2t 3eqtr3rd recoscld sylancr subadd syl5reqr
    sqcld mulcl cc0 wne wa 2cnne0 mulcan sq1 syl6eqr 1re sqabs abs1 syl6eq ) AU
    ABZACDEZFGZHGZIHGZIVPVRJKEZIJKEZSZVSVTSZVPWAIWBVPJWADEZJIDEZSZWAISZVPWFIIUB
    EZWEWFJWIUCUDUEVPWEIUFEZISZWIWESZVPAJCDEDEZFGJVQDEZFGZIWJVPWMWNFVPALBZWMWNS
    ZAUGWPJLBZCLBWQMUHAJCUMNOUIAUJVPVQLBWOWJSVPVQVPAPBCPBVQPBAUKULACUNUOZUPVQUQ
    OURVPWELBZWKWLQZVPWRWALBZWTMVPVRVPVRVPVQWSUSZUPVCZJWAVDUTWTILBZXEXARRWEIIVA
    NOTVBVPXBWGWHQZXDXBXEWRJVEVFVGXFRVHWAIJVINOTVJVKVPVRPBIPBWCWDQXCVLVRIVMUOTV
    NVO $.

  $( A complex number whose sine is zero is an integer multiple of ` _pi ` .
     (Contributed by NM, 17-Aug-2008.)  (Revised by Mario Carneiro,
     10-May-2014.) $)
  sineq0 $p |- ( A e. CC -> ( ( sin ` A ) = 0 <-> ( A / _pi ) e. ZZ ) ) $=
    ( cc wcel csin cfv cc0 wceq cpi co cabs cmul caddc cr ci c2 ce c1 wb fveq2d
    wbr cdiv cz wa cmo clt wn cfl cneg cmin crp sinval eqeq1d ax-icn mulcl mpan
    syl negicn subcld wne 2mulicn 2muline0 diveq0 mp3an23 subeq0ad 3bitrd oveq2
    mul12 mp3an12 2timesd eqtrd efadd syl2anc eqtr2d negidi oveq1i adddir mul02
    efcl 2cn 3eqtr3a syl6eq eqtr3d eqeq12d fveq2 syl6bi syl5 sylbid abs1 eqeq2i
    ef0 2re 2ne0 absefib bitr2d syl5bb sylibd imp pirp modval sylancl picn pire
    mulre pipos gt0ne0ii redivcl flcld zcnd sylancr negsub syldan mulcom negeqd
    mulneg1 eqtr4d oveq2d 3eqtr2d znegcld abssinper simpr abs0 cioo modcl modlt
    3eqtrd jca biantrurd w3a 0re rexr elioo2 syl2an mp2an 3anan32 bitri syl6bbr
    cxr cle mpd mpbid sinq12gt0 elioore resincld ltle absidd breqtrrd ltne syl6
    wi necon2bd modge0 leloe ord eqcomd mod0 divcan1 sinkpi sylan9req impbida
    wo ) ABCZADEZFGZAHUAIZUBCZUVAUVCUCZAHUDIZFGZUVEUVFFUVGUVFFUVGUETZUFZFUVGGZU
    VFUVGDEZJEZFGUVJUVFUVMFJEZFUVFUVMAUVDUGEZUHZHKIZLIZDEZJEZUVBJEZUVNUVFUVLUVS
    JUVFUVGUVRDUVFUVGAHUVOKIZUIIZAUWBUHZLIZUVRUVFAMCZHUJCZUVGUWCGUVAUVCUWFUVAUV
    CNOAKIZKIZPEZJEZQJEZGZUWFUVAUVCNAKIZPEZNUHZAKIZPEZGZUWMUVAUVCUWOUWRUIIZONKI
    ZUAIZFGZUWTFGZUWSUVAUVBUXBFAUKULUVAUWTBCZUXCUXDRZUVAUWOUWRUVAUWNBCZUWOBCNBC
    ZUVAUXGUMNAUNUOZUWNVRUPZUVAUWQBCZUWRBCUWPBCZUVAUXKUQUWPAUNUOZUWQVRUPZURUXEU
    XABCUXAFUSUXFUTVAUWTUXAVBVCUPUVAUWOUWRUXJUXNVDVEUWSUWOUWOKIZUWOUWRKIZGZUVAU
    WMUWOUWRUWOKVFUVAUXQUWJQGUWMUVAUXOUWJUXPQUVAUWJUWNUWNLIZPEZUXOUVAUWIUXRPUVA
    UWIOUWNKIZUXRUXHOBCZUVAUWIUXTGUMVSNOAVGVHUVAUWNUXIVIVJSUVAUXGUXGUXSUXOGUXIU
    XIUWNUWNVKVLVMUVAUWNUWQLIZPEZUXPQUVAUXGUXKUYCUXPGUXIUXMUWNUWQVKVLUVAUYCFPEQ
    UVAUYBFPUVANUWPLIZAKIZFAKIUYBFUYDFAKNUMVNVOUXHUXLUVAUYEUYBGUMUQNUWPAVPVHAVQ
    VTSWJWAWBWCUWJQJWDWEWFWGUWMUWKQGZUVAUWFUWLQUWKWHWIUVAUWFUWHMCZUYFUVAOMCOFUS
    UWFUYGRWKWLAOXCVCUVAUWHBCZUYGUYFRUYAUVAUYHVSOAUNUOUWHWMUPWNWOWPWQZWRAHWSWTU
    VAUVCUWBBCZUWEUWCGUVFHBCZUVOBCZUYJXAUVFUVOUVFUVDUVFUWFUVDMCZUYIUWFHMCZHFUSZ
    UYMXBHXBXDXEZAHXFVCUPXGZXHZHUVOUNXIAUWBXJXKUVFUWDUVQALUVFUWDUVOHKIZUHZUVQUV
    FUWBUYSUVFUYKUYLUWBUYSGXAUYRHUVOXLXIXMUVFUYLUYKUVQUYTGUYRXAUVOHXNWTXOXPXQSS
    UVAUVCUVPUBCUVTUWAGUVFUVOUYQXRAUVPXSXKUVFUVBFJUVAUVCXTSYEYAWAUVFUVIUVMFUVFU
    VIFUVMUETZUVMFUSZUVFUVIUVGFHYBICZVUAUVFUVIUVGMCZUVGHUETZUCZUVIUCZVUCUVFVUFU
    VIUVFVUDVUEUVFUWFUWGVUDUYIWRAHYCWTZUVFUWFUWGVUEUYIWRAHYDWTYFYGVUCVUDUVIVUEY
    HZVUGFMCZUYNVUCVUIRZYIXBVUJFYQCHYQCVUKUYNFYJHYJFHUVGYKYLYMVUDUVIVUEYNYOYPVU
    CFUVLUVMUEUVGUUAZVUCUVLVUCUVGUVGFHUUBUUCZVUCFUVLUETZFUVLYRTZVULVUCVUJUVLMCV
    UNVUOUUIYIVUMFUVLUUDXIYSUUEUUFWEVUJVUAVUBYIFUVMUUGUOUUHUUJYSUVFUVIUVKUVFFUV
    GYRTZUVIUVKUUTZUVFUWFUWGVUPUYIWRAHUUKWTUVFVUJVUDVUPVUQRYIVUHFUVGUULXIYTUUMY
    SUUNUVFUWFUWGUVHUVERUYIWRAHUUOWTYTUVAUVEUVBUVDHKIZDEFUVAVURADUVAUYKUYOVURAG
    XAUYPAHUUPVCSUVDUUQUURUUS $.

  $( A complex number whose cosine is one is an integer multiple of ` 2 _pi ` .
     (Contributed by Mario Carneiro, 12-May-2014.) $)
  coseq1 $p |- ( A e. CC -> ( ( cos ` A ) = 1 <->
                 ( A / ( 2 x. _pi ) ) e. ZZ ) ) $=
    ( cc wcel ccos cfv c1 wceq c2 cdiv co cc0 cpi cz cmul cmin wne 2cn 2ne0 syl
    wb csin cexp divcan2 mp3an23 fveq2d halfcl eqtr3d eqeq1d sincld sqcld mulcl
    cos2tsin sylancr ax-1cn subsub23 mp3an13 eqcom 1m1e0 eqeq2i bitri syl6bb wo
    bitrd mul0or wn neii biorf ax-mp syl6bbr sqeq0 3bitrd sineq0 wa pm3.2i picn
    pire pipos gt0ne0ii divdiv1 eleq1d ) ABCZADEZFGZAHIJZUAEZKGZWDLIJZMCZAHLNJI
    JZMCWAWCHWEHUBJZNJZKGZWJKGZWFWAWCFWKOJZFGZWLWAWBWNFWAHWDNJZDEZWBWNWAWPADWAH
    BCZHKPZWPAGQRAHUCUDUEWAWDBCZWQWNGAUFZWDULSUGUHWAWOFFOJZWKGZWLWAWKBCZWOXCTZW
    AWRWJBCZXDQWAWEWAWDXAUIZUJZHWJUKUMFBCZXDXIXEUNUNFWKFUOUPSXCWKXBGWLXBWKUQXBK
    WKURUSUTVAVCWAWLHKGZWMVBZWMWAWRXFWLXKTQXHHWJVDUMXJVEWMXKTHKRVFXJWMVGVHVIWAW
    EBCWMWFTXGWEVJSVKWAWTWFWHTXAWDVLSWAWGWIMWAWRWSVMLBCZLKPZVMWGWIGWRWSQRVNXLXM
    VOLVPVQVRVNAHLVSUDVTVK $.

  $( A complex number whose exponential is one is an integer multiple of
     ` 2 _pi _i ` .  (Contributed by NM, 17-Aug-2008.)  (Revised by Mario
     Carneiro, 10-May-2014.) $)
  efeq1 $p |- ( A e. CC -> ( ( exp ` A ) = 1 <->
                ( A / ( _i x. ( 2 x. _pi ) ) ) e. ZZ ) ) $=
    ( cc wcel c2 cdiv co ci cfv cc0 wceq cpi ce c1 cmul wne ax-icn mp3an23 cmin
    syl eqtrd csin cz wb halfcl ine0 divcl sineq0 sinval divcan2 fveq2d mulneg1
    cneg sylancr negeqd oveq12d oveq1d eqeq1d efcl negcld subcld mulcli mulne0i
    2cn 2ne0 diveq0 efne0 divsubdird efsub syl2anc caddc subnegd 2halves eqtr3d
    dividd diveq0ad ax-1cn subeq0 sylancl 3bitr3d 3bitrd 2cnne0 pm3.2i divdiv32
    wa picn pire pipos gt0ne0ii divdiv1 eleq1d ) ABCZADEFZGEFZUAHZIJZWMKEFZUBCZ
    ALHZMJZAGDKNFZNFEFZUBCWKWMBCZWOWQUCWKWLBCZXBAUDZXCGBCZGIOZXBPUEWLGUFQSZWMUG
    SWKWOWLLHZWLULZLHZRFZDGNFZEFZIJZXKIJZWSWKWNXMIWKWNGWMNFZLHZGULWMNFZLHZRFZXL
    EFZXMWKXBWNYAJXGWMUHSWKXTXKXLEWKXQXHXSXJRWKXPWLLWKXCXPWLJZXDXCXEXFYBPUEWLGU
    IQSZUJWKXRXILWKXRXPULZXIWKXEXBXRYDJPXGGWMUKUMWKXPWLYCUNTUJUOUPTUQWKXKBCZXNX
    OUCZWKXHXJWKXCXHBCXDWLURSZWKXIBCZXJBCWKWLXDUSZXIURSZUTZYEXLBCXLIOYFDGVCPVAD
    GVCPVDUEVBXKXLVEQSWKXKXJEFZIJWRMRFZIJZXOWSWKYLYMIWKYLXHXJEFZXJXJEFZRFYMWKXH
    XJXJYGYJYJWKYHXJIOYIXIVFSZVGWKYOWRYPMRWKWLXIRFZLHZYOWRWKXCYHYSYOJXDYIWLXIVH
    VIWKYRALWKYRWLWLVJFAWKWLWLXDXDVKAVLTUJVMWKXJYJYQVNUOTUQWKXKXJYKYJYQVOWKWRBC
    MBCYNWSUCAURVPWRMVQVRVSVTWKWPXAUBWKWPAGEFZDEFZKEFZXAWKWMUUAKEWKDBCDIOWDZXEX
    FWDZWMUUAJWAXEXFPUEWBZADGWCQUPWKUUBYTWTEFZXAWKYTBCZUUBUUFJZWKXEXFUUGPUEAGUF
    QUUGUUCKBCZKIOZWDUUHWAUUIUUJWEKWFWGWHZWBYTDKWIQSWKUUDWTBCZWTIOZWDUUFXAJUUEU
    ULUUMDKVCWEVADKVCWEVDUUKVBWBAGWTWIQTTWJVS $.

  $( The cosine function has no zeroes within the vertical strip of the complex
     plane between real part ` -u _pi / 2 ` and ` _pi / 2 ` .  (Contributed by
     Mario Carneiro, 2-Apr-2015.) $)
  cosne0 $p |- ( ( A e. CC /\ ( Re ` A ) e.
    ( -u ( _pi / 2 ) (,) ( _pi / 2 ) ) ) -> ( cos ` A ) =/= 0 ) $=
    ( cc wcel cfv cpi ccos cmin cc0 wceq halfpire sylancr syl picn a1i pire clt
    co cr wbr c1 cre c2 cdiv cneg cioo csin recni simpl nncan fveq2d coshalfpim
    wa subcl eqtr3d wne cz wn adantr pipos gt0ne0ii divcan1d zre adantl remulcl
    cmul sylancl eqeltrrd resubcl rered simplr caddc elioore eliooord simprd wb
    0zd posdif mpbid divgt0d negcli negsubi pidiv2halves subaddrii eqtri simpld
    syl5eqbr ltsub23d mulid1i syl6breqr 1red ltdivmul syl112anc mpbird syl6breq
    1e0p1 btwnnz syl3anc pm2.01da sineq0 necon3abid eqnetrd ) ABCZAUADZEUBUCQZU
    DZXDUEQZCZULZAFDZXDAGQZUFDZHXHXDXJGQZFDZXIXKXHXLAFXHXDBCZXBXLAIZXDJUGZXBXGU
    HZXDAUIKZUJXHXJBCZXMXKIXHXNXBXSXPXQXDAUMKZXJUKLUNXHXKHUOXJEUCQZUPCZUQZXHYBX
    HYBULZAXFCZYCYDXCAXFYDAYDXLARXHXOYBXRURYDXDRCZXJRCZXLRCJYDYAEVEQZXJRXHYHXJI
    YBXHXJEXTEBCXHMNEHUOXHEOUSUTNVAURYDYARCZERCZYHRCYBYIXHYAVBVCOYAEVDVFVGXDXJV
    HKVGVIXBXGYBVJVGYEHUPCHYAPSYAHTVKQZPSYCYEVPYEXJEYEYFARCZYGJAXEXDVLZXDAVHKZY
    JYEONZYEAXDPSZHXJPSZYEXEAPSZYPAXEXDVMZVNYEYLYFYPYQVOYMJAXDVQVFVRHEPSZYEUSNZ
    VSYEYATYKPYEYATPSZXJETVEQZPSZYEXJEUUCPYEXDEAYFYEJNYOYMYEXDEGQXEAPXDEXEXPMXD
    XPVTEXEVKQEXDGQXDEXDMXPWAEXDXDMXPXPWBWCWDWCYEYRYPYSWEWFWGEMWHWIYEYGTRCYJYTU
    UBUUDVOYNYEWJYOUUAXJTEWKWLWMWOWNHYAWPWQLWRXHYBXKHXHXSXKHIYBVOXTXJWSLWTWMXA
    $.

  ${
    cosord.1 $e |- ( ph -> A e. ( 0 [,] _pi ) ) $.
    cosord.2 $e |- ( ph -> B e. ( 0 [,] _pi ) ) $.
    cosord.3 $e |- ( ph -> A < B ) $.
    $( Lemma for ~ cosord .  (Contributed by Mario Carneiro, 10-May-2014.) $)
    cosordlem $p |- ( ph -> ( cos ` B ) < ( cos ` A ) ) $=
      ( cfv clt wbr co crp wcel c2 cr cc0 cle cpi w3a pire wb ccos cmin cdiv cc
      caddc csin cmul wceq cicc 0re elicc2i sylib simp1d recnd syl2anc 2re 2pos
      subcos elrpii readdcld resincld cioo a1i simp2d lelttrd addgtge0 syl22anc
      rehalfcld divgt0 mpanr12 ltadd2dd 2timesd breqtrrd ltdivmul mpbird simp3d
      wa syl112anc ltletrd cxr 0xr rexri elioo2 mp2an syl3anbrc sinq12gt0 elrpd
      syl resubcld posdifd mpbid rehalfcl mp1i subge02d letrd rphalflt rpmulcld
      lediv1 pirp rpmulcl sylancr eqeltrd recoscld difrp ) ACUAGZBUAGZHIZXFXEUB
      JZKLZAXHMCBUEJZMUCJZUFGZCBUBJZMUCJZUFGZUGJZUGJZKACUDLBUDLXHXQUHACACNLZOCP
      IZCQPIZACOQUIJZLXRXSXTREOQCUJSUKULZUMZUNZABABNLZOBPIZBQPIZABYALYEYFYGRDOQ
      BUJSUKULZUMZUNCBURUOAMKLXPKLXQKLMUPUQUSAXLXOAXLAXKAXJACBYCYIUTZVHZVAAXKOQ
      VBJZLZOXLHIAXKNLZOXKHIZXKQHIZYMYKAXJNLZOXJHIZYOYJAXRYEOCHIYFYRYCYIAOBCONL
      AUJVCYIYCAYEYFYGYHVDZFVEYSCBVFVGYQYRVQMNLZOMHIZYOUPUQXJMVIVJUOAXKCQYKYCQN
      LZASVCZAXKCHIZXJMCUGJZHIZAXJCCUEJUUEHABCCYIYCYCFVKACYDVLVMAYQXRYTUUAUUDUU
      FTYJYCYTAUPVCZUUAAUQVCZXJCMVNVRVOAXRXSXTYBVPZVSOVTLZQVTLZYMYNYOYPRTWAQSWB
      ZOQXKWCWDWEXKWFWHWGAXOAXNAXMACBYCYIWIZVHZVAAXNYLLZOXOHIAXNNLZOXNHIZXNQHIZ
      UUOUUNAXMNLZOXMHIZUUQUUMABCHIUUTFABCYIYCWJWKUUSUUTVQYTUUAUUQUPUQXMMVIVJUO
      AXNQMUCJZQUUNUUBUVANLASQWLWMUUCAXMQPIZXNUVAPIZAXMCQUUMYCUUCAYFXMCPIYSACBY
      CYIWNWKUUIWOAUUSUUBYTUUAUVBUVCTUUMUUCUUGUUHXMQMWRVRWKQKLUVAQHIAWSQWPWMVEU
      UJUUKUUOUUPUUQUURRTWAUULOQXNWCWDWEXNWFWHWGWQMXPWTXAXBAXENLXFNLXGXITACYCXC
      ABYIXCXEXFXDUOVO $.
  $}

  $( Cosine is decreasing over the closed interval from ` 0 ` to ` _pi ` .
     (Contributed by Paul Chapman, 16-Mar-2008.)  (Proof shortened by Mario
     Carneiro, 10-May-2014.) $)
  cosord $p |- ( ( A e. ( 0 [,] _pi ) /\ B e. ( 0 [,] _pi ) ) ->
                 ( A < B <-> ( cos ` B ) < ( cos ` A ) ) ) $=
    ( cc0 cpi wcel wa clt wbr ccos cfv simpll simplr simpr cosordlem ex wceq wo
    wn cr cle cicc co wi fveq2 eqcomd a1i orim12d con3d wb pire elicc2i simp1bi
    0re recoscl axlttri syl2anr syl2an 3imtr4d impbid ) ACDUAUBZEZBUTEZFZABGHZB
    IJZAIJZGHZVCVDVGVCVDFABVAVBVDKVAVBVDLVCVDMNOVCVEVFPZVFVEGHZQZRZABPZBAGHZQZR
    ZVGVDVCVNVJVCVLVHVMVIVLVHUCVCVLVFVEABIUDUEUFVCVMVIVCVMFBAVAVBVMLVAVBVMKVCVM
    MNOUGUHVAASEZBSEZVGVKUIZVBVAVPCATHADTHCDAUMUJUKULZVBVQCBTHBDTHCDBUMUJUKULZV
    QVESEVFSEVRVPBUNAUNVEVFUOUPUQVAVPVQVDVOUIVBVSVTABUOUQURUS $.

  $( Cosine is one-to-one over the closed interval from ` 0 ` to ` _pi ` .
     (Contributed by Paul Chapman, 16-Mar-2008.)  (Proof shortened by Mario
     Carneiro, 10-May-2014.) $)
  cos11 $p |- ( ( A e. ( 0 [,] _pi ) /\ B e. ( 0 [,] _pi ) ) ->
                ( A = B <-> ( cos ` A ) = ( cos ` B ) ) ) $=
    ( cc0 cpi wcel wa clt wbr wn ccos cfv wceq wb cosord notbid cr cle 0re pire
    syl2an cicc co ancoms anbi12d syl5bb elicc2i simp1bi lttri3 recoscl 3bitr4d
    ancom ) ACDUAUBZEZBULEZFZABGHZIZBAGHZIZFZAJKZBJKZGHZIZVBVAGHZIZFZABLZVAVBLZ
    UTUSUQFUOVGUQUSUKUOUSVDUQVFUOURVCUNUMURVCMBANUCOUOUPVEABNOUDUEUMAPEZBPEZVHU
    TMUNUMVJCAQHADQHCDARSUFUGZUNVKCBQHBDQHCDBRSUFUGZABUHTUMVJVKVIVGMZUNVLVMVJVA
    PEVBPEVNVKAUIBUIVAVBUHTTUJ $.

  ${
    $d w x y z A $.  $d x y B $.
    $( Sine is increasing over the closed interval from ` -u ( _pi / 2 ) ` to
       ` ( _pi / 2 ) ` .  (Contributed by Mario Carneiro, 29-Jul-2014.) $)
    sinord $p |- ( ( A e. ( -u ( _pi / 2 ) [,] ( _pi / 2 ) ) /\
                     B e. ( -u ( _pi / 2 ) [,] ( _pi / 2 ) ) ) ->
                   ( A < B <-> ( sin ` A ) < ( sin ` B ) ) ) $=
      ( vx cpi co cicc wcel clt wbr cmin cfv cr neghalfpire halfpire sseli wceq
      wb cc0 cle syl c2 cdiv cneg wa ccos csin wss iccssre ltsub2 mp3an3 syl2an
      mp2an eleq1d resubcl sylancr elicc2i simp3bi subge0 mpbird simp2bi lesub2
      cv oveq2 mp3an13 mpbid caddc recni subnegi pidiv2halves syl6breq 0re pire
      eqtri syl3anbrc vtoclga cosord syl2anr recnd coshalfpim breqan12d 3bitrd
      cc ) ADUAUBEZUCZWCFEZGZBWEGZUDABHIZWCBJEZWCAJEZHIZWJUEKZWIUEKZHIZAUFKZBUF
      KZHIWFALGZBLGZWHWKQZWGWELAWDLGZWCLGZWELUGMNWDWCUHULZOZWELBXBOZWQWRXAWSNAB
      WCUIUJUKWGWIRDFEZGZWJXEGZWKWNQWFWCCVBZJEZXEGZXFCBWEXHBPXIWIXEXHBWCJVCUMXH
      WEGZXILGZRXISIZXIDSIXJXKXAXHLGZXLNWELXHXBOZWCXHUNUOXKXMXHWCSIZXKXNWDXHSIZ
      XPWDWCXHMNUPZUQXKXAXNXMXPQNXOWCXHURUOUSXKXIWCWDJEZDSXKXQXIXSSIZXKXNXQXPXR
      UTXKXNXQXTQZXOWTXNXAYAMNWDXHWCVAVDTVEXSWCWCVFEDWCWCWCNVGZYBVHVIVMVJRDXIVK
      VLUPVNZVOXJXGCAWEXHAPXIWJXEXHAWCJVCUMYCVOWIWJVPVQWFWGWLWOWMWPHWFAWBGWLWOP
      WFAXCVRAVSTWGBWBGWMWPPWGBXDVRBVSTVTWA $.

    $( The cosine function is a bijection when restricted to its principal
       domain.  (Contributed by Mario Carneiro, 12-May-2014.) $)
    recosf1o $p |- ( cos |` ( 0 [,] _pi ) ) :
                     ( 0 [,] _pi ) -1-1-onto-> ( -u 1 [,] 1 ) $=
      ( vx vy vz cc0 cpi cicc co c1 ccos cv cfv wceq wral wcel mpbir2an a1i cle
      cc cr wbr cneg cres wf1o wf1 wfo wf wi wfn wss cosf ffn ax-mp 0re iccssre
      pire mp2an ax-resscn sstri fnssres fvres sseli cosbnd2 eqeltrd rgen ffnfv
      syl wa eqeqan12d cos11 biimprd sylbid rgen2a dff13 neg1rr elicc2i simp1bi
      wrex 1re pipos ccncf coscn recoscld adantl cospi simp2bi syl5eqbr simp3bi
      clt syl6breqr jca ivthle2 eqcom eqeq1d syl5bb rexbiia sylibr dffo3 df-f1o
      cos0 ) DEFGZHUAZHFGZIWTUBZUCWTXBXCUDZWTXBXCUEZXDWTXBXCUFZAJZXCKZBJZXCKZLZ
      XGXILZUGZBWTMAWTMXFXCWTUHZXHXBNZAWTMIRUHZWTRUIZXNRRIUFXPUJRRIUKULWTSRDSNZ
      ESNZWTSUIUMUODEUNUPZUQURZRWTIUSUPXOAWTXGWTNZXHXGIKZXBXGWTIUTZYBXGSNZYCXBN
      WTSXGXTVAXGVBVFVCVDAWTXBXCVEOZXMABWTYBXIWTNZVGZXKYCXIIKZLZXLYBYGXHYCXJYIY
      DXIWTIUTZVHYHXLYJXGXIVIVJVKVLABWTXBXCVMOXEXFXGXJLZBWTVQZAXBMYFYMAXBXGXBNZ
      YIXGLZBWTVQYMYNCDERXGIBXRYNUMPXSYNUOPYNYEXAXGQTZXGHQTZXAHXGVNVRVOZVPDEWHT
      YNVSPXQYNYAPIRRVTGNYNWAPCJZWTNZYSIKSNYNYTYSWTSYSXTVAWBWCYNEIKZXGQTXGDIKZQ
      TYNUUAXAXGQWDYNYEYPYQYRWEWFYNXGHUUBQYNYEYPYQYRWGWSWIWJWKYLYOBWTYLXJXGLYGY
      OXGXJWLYGXJYIXGYKWMWNWOWPVDBAWTXBXCWQOWTXBXCWRO $.

    $( The sine function is a bijection when restricted to its principal
       domain.  (Contributed by Mario Carneiro, 12-May-2014.) $)
    resinf1o $p |- ( sin |` ( -u ( _pi / 2 ) [,] ( _pi / 2 ) ) ) :
               ( -u ( _pi / 2 ) [,] ( _pi / 2 ) ) -1-1-onto-> ( -u 1 [,] 1 ) $=
      ( vx vy cpi co ccos cc0 cmin csin wtru wcel cr cle wbr halfpire mp2an syl
      wb wceq cc cfv c2 cdiv cneg cicc c1 cres cmpt ccom wf1o recosf1o eqid wss
      cv neghalfpire iccssre sseli resubcl sylancr elicc2i simp3bi subge0 recni
      mpbird negcli caddc negsubi pidiv2halves subaddrii eqtri simp2bi syl5eqbr
      picn suble mp3an12 mpbid syl3anbrc adantl simp1bi subnegi syl6breqr lesub
      pire 0re mp3an23 subidi wa ax-resscn sstri subsub23 syl2anr eqcom 3bitr4g
      mp3an1 f1o2d trud f1oco wfn wral wf cosf ax-mp fnssres fmpti fnfco eqfnfv
      ffn sinf ffvelrni fvres oveq2 ovex fvmpt fveq2d coshalfpim 3eqtrd 3eqtr4d
      fvco3 mpan mprgbir f1oeq1 mpbi ) CUAUBDZUCZYBUDDZUEUCUEUDDZEFCUDDZUFZAYDY
      BAUMZGDZUGZUHZUIZYDYEHYDUFZUIZYFYEYGUIYDYFYJUIZYLUJYOIABYDYFYIYBBUMZGDZYJ
      YJUKZYHYDJZYIYFJZIYSYIKJZFYILMZYICLMZYTYSYBKJZYHKJZUUANYDKYHYCKJZUUDYDKUL
      UNNYCYBUOOZUPZYBYHUQURYSUUBYHYBLMZYSUUEYCYHLMZUUIYCYBYHUNNUSZUTYSUUDUUEUU
      BUUIQNUUHYBYHVAURVCYSYBCGDZYHLMZUUCYSUULYCYHLYBCYCYBNVBZVLYBUUNVDCYCVEDCY
      BGDYBCYBVLUUNVFCYBYBVLUUNUUNVGVHVIVHYSUUEUUJUUIUUKVJVKYSUUEUUMUUCQZUUHUUD
      CKJZUUEUUONWBYBCYHVMVNPVOFCYIWCWBUSVPZVQYPYFJZYQYDJZIUURYQKJZYCYQLMZYQYBL
      MZUUSUURUUDYPKJZUUTNUURUVCFYPLMZYPCLMZFCYPWCWBUSZVRZYBYPUQURUURYPYBYCGDZL
      MZUVAUURYPCUVHLUURUVCUVDUVEUVFUTUVHYBYBVEDCYBYBUUNUUNVSVGVIVTUURUVCUVIUVA
      QZUVGUVCUUDUUFUVJNUNYPYBYCWAWDPVOUURYBYBGDZYPLMZUVBUURUVKFYPLYBUUNWEUURUV
      CUVDUVEUVFVJVKUURUVCUVLUVBQZUVGUUDUUDUVCUVMNNYBYBYPVMVNPVOYCYBYQUNNUSVPVQ
      IYSUURWFZWFYQYHRZYIYPRZYHYQRYPYIRUVNUVOUVPQZIUURYPSJZYHSJZUVQYSYFSYPYFKSF
      KJUUPYFKULWCWBFCUOOWGWHZUPYDSYHYDKSUUGWGWHZUPYBSJUVRUVSUVQUUNYBYPYHWIWMWJ
      VQYHYQWKYPYIWKWLWNWOYDYFYEYGYJWPOYKYMRZYLYNQUWBYPYKTZYPYMTZRZBYDYKYDWQZYM
      YDWQZUWBUWEBYDWRQYGYFWQZYDYFYJWSZUWFESWQZYFSULUWHSSEWSUWJWTSSEXFXAUVTSYFE
      XBOAYDYFYIYJYRUUQXCZYFYDYGYJXDOHSWQZYDSULUWGSSHWSUWLXGSSHXFXAUWASYDHXBOBY
      DYKYMXEOYPYDJZYPYJTZYGTZYPHTZUWCUWDUWMUWOUWNETZYQETZUWPUWMUWNYFJUWOUWQRYD
      YFYPYJUWKXHUWNYFEXIPUWMUWNYQEAYPYIYQYDYJYHYPYBGXJYRYBYPGXKXLXMUWMUVRUWRUW
      PRYDSYPUWAUPYPXNPXOUWIUWMUWCUWORUWKYDYFYPYGYJXQXRYPYDHXIXPXSYDYEYKYMXTXAY
      A $.

    $( The tangent function is strictly increasing on the nonnegative part of
       its principal domain.  (Lemma for ~ tanord .)  (Contributed by Mario
       Carneiro, 29-Jul-2014.)  Revised to replace an OLD theorem.  (Revised by
       Wolf Lammen, 20-Sep-2020.) $)
    tanord1 $p |- ( ( A e. ( 0 [,) ( _pi / 2 ) ) /\
   B e. ( 0 [,) ( _pi / 2 ) ) ) -> ( A < B <-> ( tan ` A ) < ( tan ` B ) ) ) $=
      ( vx vy vz cc0 cpi co wcel clt wbr cfv wb cr cxr mp2an sseli cle 3ad2ant1
      ctan vw wtru c2 cdiv cico wa tru cv fveq2 wss halfpire rexri icossre ccos
      0re cneg cioo neghalfpirx pire 2re pipos 2pos divgt0ii lt0neg2 ax-mp mpbi
      df-ioo df-ico xrltletr ixxss1 cosq14gt0 syl gt0ne0d retancld w3a resincld
      adantl wi csin recoscld redivcld 3ad2ant2 wne cicc ioossicc sinord syl2an
      sstri biimp3a ltdiv1 syl112anc pirp rphalflt df-icc xrlttr xrltle 3adant2
      mpbid crp syld ixxss2 cosord 0red simp1 elico2 sylib simp2d simp3 lelttrd
      simp2 simp3d elioo2 syl3anbrc sincosq1sgn simprd simpld ltdiv2 lttrd wceq
      0xr syl222anc cc recnd tanval syl2anc 3brtr4d 3expia ltord1 mpan ) UBAFGU
      CUDHZUEHZIBYKIUFABJKATLZBTLZJKMUGUBCDCUHZTLZDUHZTLZABYKYLYMYNYPTUIYNATUIY
      NBTUIFNIZYJOIZYKNUJUOYJUKULZFYJUMPZYNYKIZYONIUBUUBYNYKNYNUUAQZUUBYNUNLZUU
      BYNYJUPZYJUQHZIFUUDJKZYKUUFYNUUEOIUUEFJKZYKUUFUJURFYJJKZUUHGUCUSUTVAVBVCY
      JNIUUIUUHMUKYJVDVEVFCDEUAUUEFYJUEJJRUQJCDEVGCDEVHZUUEFUAUHZVIVJPZQYNVKVLZ
      VMZVNVQUUBYPYKIZUFYNYPJKZYOYQJKZVRUBUUBUUOUUPUUQUUBUUOUUPVOZYNVSLZUUDUDHZ
      YPVSLZYPUNLZUDHZYOYQJUURUUTUVAUUDUDHZUVCUUBUUOUUTNIUUPUUBUUSUUDUUBYNUUCVP
      UUBYNUUCVTZUUNWASUURUVAUUDUURYPUUOUUBYPNIZUUPYKNYPUUAQZWBZVPZUUBUUOUUDNIZ
      UUPUVESZUUBUUOUUDFWCZUUPUUNSWAUURUVAUVBUVIUURYPUVHVTZUUOUUBUVBFWCZUUPUUOU
      VBUUOYPUUFIFUVBJKZYKUUFYPUULQYPVKVLVMWBZWAUURUUSUVAJKZUUTUVDJKZUUBUUOUUPU
      VQUUBYNUUEYJWDHZIYPUVSIUUPUVQMUUOYKUVSYNYKUUFUVSUULUUEYJWEWHZQYKUVSYPUVTQ
      YNYPWFWGWIUURUUSNIUVANIZUVJUUGUVQUVRMUURYNUUBUUOYNNIZUUPUUCSZVPUVIUVKUUBU
      UOUUGUUPUUMSZUUSUVAUUDWJWKWRUURUVBUUDJKZUVDUVCJKZUUBUUOUUPUWEUUBYNFGWDHZI
      YPUWGIUUPUWEMUUOYKUWGYNGOIZYJGJKZYKUWGUJGUSULGWSIUWIWLGWMVECDEUAFYJGUERRJ
      WDJCDEWNUUJUUKOIZYSUWHVOUUKYJJKUWIUFUUKGJKZUUKGRKZUUKYJGWOUWJUWHUWKUWLVRY
      SUUKGWPWQWTXAPZQYKUWGYPUWMQYNYPXBWGWIUURUVBNIUVOUVJUUGUWAFUVAJKZUWEUWFMUV
      MUURUWNUVOUURYPFYJUQHIZUWNUVOUFUURUVFFYPJKZYPYJJKZUWOUVHUURFYNYPUURXCUWCU
      VHUURUWBFYNRKZYNYJJKZUURUUBUWBUWRUWSVOZUUBUUOUUPXDYRYSUUBUWTMUOYTFYJYNXEP
      XFXGUUBUUOUUPXHXIUURUVFFYPRKZUWQUURUUOUVFUXAUWQVOZUUBUUOUUPXJYRYSUUOUXBMU
      OYTFYJYPXEPXFXKFOIYSUWOUVFUWPUWQVOMXTYTFYJYPXLPXMYPXNVLZXOUVKUWDUVIUURUWN
      UVOUXCXPUVBUUDUVAXQYAWRXRUUBUUOYOUUTXSZUUPUUBYNYBIUVLUXDUUBYNUUCYCUUNYNYD
      YESUURYPYBIZUVNYQUVCXSUUOUUBUXEUUPUUOYPUVGYCWBUVPYPYDYEYFYGVQYHYI $.

    $( The tangent function is strictly increasing on its principal domain.
       (Contributed by Mario Carneiro, 4-Apr-2015.) $)
    tanord $p |- ( ( A e. ( -u ( _pi / 2 ) (,) ( _pi / 2 ) ) /\
                     B e. ( -u ( _pi / 2 ) (,) ( _pi / 2 ) ) ) ->
      ( A < B <-> ( tan ` A ) < ( tan ` B ) ) ) $=
      ( cneg wcel wa clt wbr ctan cfv wb cc0 syl2anc w3a adantr syl mpbid mp2an
      cr syl3anbrc cle vx vy wtru cpi c2 cdiv co cioo tru fveq2 ioossre elioore
      cv cc cre ccos wne recnd rered id eqeltrd cosne0 retancld adantl 3ad2ant1
      wi negnegd fveq2d wceq negcld cosneg simpl1 eqnetrd tanneg eqtr3d adantrr
      renegcld simp2 sseldi simpl2 crp simprl lt0neg1d eliooord simpld halfpire
      0red ltnegcon1 sylancr cxr 0xr rexri elioo2 rpgt0d lt0neg2d simprr simprd
      tanrpcl lttrd anassrs simpl3 ltnegd cico simpr le0neg1d 0re elico2 ltletr
      simp3 syl3anc mpand imp ltle sylancl mpd tanord1 syldan adantlr ltlecasei
      breqtrrd eqbrtrd ltled letrd 3expia ltord1 mpan ) UCAUDUEUFUGZCZYGUHUGZDB
      YIDEABFGAHIZBHIZFGJUIUCUAUBUAUMZHIZUBUMZHIZABYIYJYKYLYNHUJYLAHUJYLBHUJYHY
      GUKZYLYIDZYMRDUCYQYLYLYHYGULZYQYLUNDZYLUOIZYIDYLUPIZKUQZYQYLYRURYQYTYLYIY
      QYLYRUSYQUTVAYLVBLZVCVDYQYNYIDZEYLYNFGZYMYOFGZVFUCYQUUDUUEUUFYQUUDUUEMZUU
      FYLKUUGYLKFGZEZYMYLCZHIZCZYOFUUIUUJCZHIZYMUULUUIUUMYLHUUIYLUUIYLUUGYLRDZU
      UHYQUUDUUOUUEYRVEZNURZVGVHUUIUUJUNDUUJUPIZKUQZUUNUULVIUUIYLUUQVJUUIUURUUA
      KUUIYSUURUUAVIUUQYLVKOUUIYQUUBYQUUDUUEUUHVLUUCOVMZUUJVNLVOUUIUULYOFGZKYNU
      UGUUHKYNFGZUVAUUGUUHUVBEZEZUULKYOUVDUUKUVDUUJUVDYLUUGUUOUVCUUPNZVQZUUGUUH
      UUSUVBUUTVPVCZVQUVDWGUVDYNUUGYNRDZUVCUUGYIRYNYPYQUUDUUEVRVSZNZUVDUUDYNUPI
      ZKUQZYQUUDUUEUVCVTZUUDYNUNDZYNUOIZYIDUVLUUDYNYNYHYGULZURUUDUVOYNYIUUDYNUV
      PUSUUDUTVAYNVBLZOVCUVDKUUKFGUULKFGUVDUUKUVDUUJKYGUHUGZDZUUKWADUVDUUJRDZKU
      UJFGZUUJYGFGZUVSUVFUVDUUHUWAUUGUUHUVBWBUVDYLUVEWCPUVDYHYLFGZUWBUVDUWCYLYG
      FGZUVDYQUWCUWDEZYQUUDUUEUVCVLYLYHYGWDZOWEUVDYGRDZUUOUWCUWBJZWFUVEYGYLWHZW
      IPKWJDZYGWJDZUVSUVTUWAUWBMJWKYGWFWLZKYGUUJWMQSUUJWROWNUVDUUKUVGWOPUVDYOUV
      DYNUVRDZYOWADUVDUVHUVBYNYGFGZUWMUVJUUGUUHUVBWPUVDYHYNFGZUWNUVDUUDUWOUWNEZ
      UVMYNYHYGWDZOWQUWJUWKUWMUVHUVBUWNMJWKUWLKYGYNWMQSYNWROWNWSWTUUGYNKTGZUVAU
      UHUUGUWREZUULYNCZHIZCZYOFUWSUXAUUKFGZUULUXBFGUWSUWTUUJFGZUXCUWSUUEUXDYQUU
      DUUEUWRXAUWSYLYNUUGUUOUWRUUPNZUUGUVHUWRUVINZXBPUWSUWTKYGXCUGZDZUUJUXGDZUX
      DUXCJUWSUWTRDZKUWTTGZUWTYGFGZUXHUWSYNUXFVQZUWSUWRUXKUUGUWRXDUWSYNUXFXEPUW
      SUWOUXLUWSUWOUWNUWSUUDUWPYQUUDUUEUWRVTZUWQOWEUWSUWGUVHUWOUXLJWFUXFYGYNWHW
      IPKRDZUWKUXHUXJUXKUXLMJXFUWLKYGUWTXGQSUWSUVTKUUJTGZUWBUXIUWSYLUXEVQZUWSYL
      KTGZUXPUWSUUHUXRUUGUWRUUHUUGUUEUWRUUHYQUUDUUEXIUUGUUOUVHUXOUUEUWREUUHVFUU
      PUVIUUGWGZYLYNKXHXJXKXLZUWSUUOUXOUUHUXRVFUXEXFYLKXMXNXOUWSYLUXEXEPUWSUWCU
      WBUWSUWCUWDUWSYQUWEYQUUDUUEUWRVLUWFOWEUWSUWGUUOUWHWFUXEUWIWIPUXOUWKUXIUVT
      UXPUWBMJXFUWLKYGUUJXGQSUWTUUJXPLPUWSUXAUUKUWSUWTUXMUWSUWTUPIZUVKKUWSUVNUY
      AUVKVIUWSYNUXFURZYNVKOUWSUUDUVLUXNUVQOVMZVCUWSUUJUXQUUGUWRUUHUUSUXTUUTXQV
      CXBPUWSUWTCZHIZYOUXBUWSUYDYNHUWSYNUYBVGVHUWSUWTUNDUYAKUQUYEUXBVIUWSYNUYBV
      JUYCUWTVNLVOXTXRUUIWGUUIYIRYNYPYQUUDUUEUUHVTVSXSYAUUGKYLTGZEZUUEUUFYQUUDU
      UEUYFXAZUYGYLUXGDZYNUXGDZUUEUUFJUYGUUOUYFUWDUYIUUGUUOUYFUUPNZUUGUYFXDZUYG
      UWCUWDUYGYQUWEYQUUDUUEUYFVLUWFOWQUXOUWKUYIUUOUYFUWDMJXFUWLKYGYLXGQSUYGUVH
      KYNTGZUWNUYJUYGYIRYNYPYQUUDUUEUYFVTZVSZUYGKYLYNUYGWGUYKUYOUYLUYGYLYNUYKUY
      OUYHYBYCUYGUWOUWNUYGUUDUWPUYNUWQOWQUXOUWKUYJUVHUYMUWNMJXFUWLKYGYNXGQSYLYN
      XPLPUUPUXSXSYDVDYEYF $.
  $}

  $( TODO - is there possibly a more direct proof which does not
     break into real/imaginary parts? $)
  $( The positivity of ` tan ( A ) ` extends to complex numbers with the same
     real part.  (Contributed by Mario Carneiro, 5-Apr-2015.) $)
  tanregt0 $p |- ( ( A e. CC /\ ( Re ` A ) e. ( 0 (,) ( _pi / 2 ) ) ) ->
    0 < ( Re ` ( tan ` A ) ) ) $=
    ( cc wcel cre cfv cc0 c2 cdiv co c1 ci cim cmul cmin clt cneg wne wbr wceq
    cr cpi cioo wa ctan cabs cexp ccj caddc crp cz ax-1cn recl recnd ccos rered
    cxr cle wss neghalfpire rexri 0re pirp rphalfcl rpgt0 mp2b halfpire lt0neg2
    adantr wb ax-mp mpbi ltleii iooss1 mp2an simpr sseldi eqeltrd cosne0 tancld
    syl2anc ax-icn mulcl sylancr rpcoshcl syl rpne0d mulcld subcl replim fveq2d
    imcl syldan eqnetrrd tanaddlem syl22anc mpbid necomd subeq0 mpbird absrpcld
    necon3bid 2z rpexpcl sylancl rprecred cjcld addcld rpreccld rpgt0d retancld
    1re retanhcl resqcld resubcl tanrpcl adantl absresq tanhbnd eliooord abscld
    recld abslt absge0d 0le1 mulgt0d oveq1i remul2d ine0 divcan2d oveq2d 3eqtrd
    a1i syl5eq eqtr3d oveq12d eqtrd negeqd 3eqtr4d breqtrrd divrec2d lt2sqd sq1
    syl6breq eqbrtrrd posdif recjd negicn negne0i divcld imre divneg2d renegcld
    resub re1 eqeltrrd reim0d 3eqtr3rd mul01d 1m0e1 syl6eq crred mulcom mulassd
    imcjd imsub df-neg eqtr4i immul2d imval remulcld negnegd crimd sqvald sqcld
    im1 remuld subdid tanadd syl23anc recval oveq1d div23d ) ABCZADEZFUAGHIZUBI
    ZCZUCZFJJUWDUDEZKALEZMIZUDEZMIZNIZUEEZGUFIZHIZUWNUGEZUWIUWLUHIZMIZDEZMIZAUD
    EZDEZOUWHUWQUXAUWHUWPUWHUWOUICGUJCUWPUICUWHUWNUWHJBCZUWMBCZUWNBCZUKUWHUWIUW
    LUWHUWDUWHUWDUWCUWDTCUWGAULVHZUMZUWHUWDBCZUWDDEZUWEPZUWEUBIZCUWDUNEFQZUXIUW
    HUXKUWDUXMUWHUWDUXHUOUWHUWFUXMUWDUXLUPCUXLFUQRUWFUXMURUXLUSUTUXLFUSVAFUWEOR
    ZUXLFORZUAUICUWEUICUXOVBUAVCUWEVDVEUWETCUXOUXPVIVFUWEVGVJVKVLUXLFUWEVMVNUWC
    UWGVOVPZVQUWDVRVTZVSZUWHUWKUWHKBCZUWJBCUWKBCZWAUWHUWJUWCUWJTCZUWGAWKVHZUMKU
    WJWBWCZUWHUWKUNEZUWHUYBUYEUICUYCUWJWDWEWFZVSZWGZJUWMWHWCZUWHUWNFQZJUWMQZUWH
    UWMJUWHUWDUWKUHIZUNEZFQZUWMJQZUWHAUNEZUYMFUWHAUYLUNUWCAUYLSUWGAWIVHZWJUWCUW
    GUWDUXMCUYPFQUXQAVRWLWMZUWHUXJUYAUXNUYEFQZUYNUYOVIUXIUYDUXRUYFUWDUWKWNWOWPW
    QUWHUXEUXFUYJUYKVIUKUYHUXEUXFUCUWNFJUWMJUWMWRXAWCWSZWTXBUWOGXCXDZXEZUWHUWTU
    WHUWRUWSUWHUWNUYIXFZUWHUWIUWLUXSUYGXGZWGZYAUWHUWQUWHUWPVUAXHXIUWHFUWIJUWLKH
    IZGUFIZNIZMIZUXAOUWHUWIVUHUWHUWDUXHUXRXJZUWHJTCZVUGTCZVUHTCXKUWHVUFUWHUYBVU
    FTCZUYCUWJXLWEZXMZJVUGXNWCUWHUWIUWGUWIUICUWCUWDXOXPXIUWHVUGJORZFVUHORZUWHVU
    FUEEZGUFIZVUGJOUWHVUMVUSVUGSVUNVUFXQWEUWHVUSJGUFIZJOUWHVURJORZVUSVUTORUWHVV
    AJPZVUFORVUFJORUCZUWHVUFVVBJUBICZVVCUWHUYBVVDUYCUWJXRWEVUFVVBJXSWEUWHVUMVUK
    VVAVVCVIVUNXKVUFJYBXDWSUWHVURJUWHVUFUWHVUFVUNUMZXTVUKUWHXKYLUWHVUFVVEYCFJUQ
    RUWHYDYLUUAWPUUBUUCUUDUWHVULVUKVUPVUQVIVUOXKVUGJUUEXDWPYEUWHUWRDEZUWSDEZMIZ
    UWRLEZUWSLEZMIZNIUWIJMIZUWIVUGMIZNIUXAVUIUWHVVHVVLVVKVVMNUWHVVHJUWIMIZVVLUW
    HVVFJVVGUWIMUWHVVFUWNDEZJDEZUWMDEZNIZJUWHUWNUYIUUFUWHUXEUXFVVOVVRSUKUYHJUWM
    UUMWCUWHVVRJVVQNIZJVVPJVVQNUUNYFUWHVVSJFNIJUWHVVQFJNUWHVVQUWIUWLDEZMIUWIFMI
    FUWHUWIUWLVUJUYGYGUWHVVTFUWIMUWHUWLKPZHIZLEZVWAVWBMIZDEZFVVTUWHVWBBCVWCVWES
    UWHUWLVWAUYGVWABCUWHUUGYLZVWAFQUWHKWAYHUUHYLZUUIVWBUUJWEUWHVWBUWHVUFPVWBTUW
    HUWLKUYGUXTUWHWAYLZKFQUWHYHYLZUUKUWHVUFVUNUULUUOUUPUWHVWDUWLDUWHUWLVWAUYGVW
    FVWGYIWJUUQYJUWHUWIUXSUURYKYJUUSUUTYMYKUWHUWIKVUFMIZUHIZDEVVGUWIUWHVWKUWSDU
    WHVWJUWLUWIUHUWHUWLKUYGVWHVWIYIYJZWJUWHUWIVUFVUJVUNUVAYNYOUWHUXEUWIBCVVNVVL
    SUKUXSJUWIUVBWCYPUWHUWIVUFMIZVUFMIUWIVUFVUFMIZMIVVKVVMUWHUWIVUFVUFUXSVVEVVE
    UVCUWHVVIVWMVVJVUFMUWHVVIUWNLEZPVWMPZPVWMUWHUWNUYIUVDUWHVWOVWPUWHVWOJLEZUWM
    LEZNIZVWPUWHUXEUXFVWOVWSSUKUYHJUWMUVEWCUWHVWSVWRPZVWPVWSFVWRNIVWTVWQFVWRNUV
    OYFVWRUVFUVGUWHVWRVWMUWHVWRUWIUWLLEZMIVWMUWHUWIUWLVUJUYGUVHUWHVXAVUFUWIMUWH
    VXAVUFDEZVUFUWHUWLBCVXAVXBSUYGUWLUVIWEUWHVUFVUNUOYPYJYPYQYMYPYQUWHVWMUWHVWM
    UWHUWIVUFVUJVUNUVJUMUVKYKUWHVWKLEVVJVUFUWHVWKUWSLVWLWJUWHUWIVUFVUJVUNUVLYNY
    OUWHVUGVWNUWIMUWHVUFVVEUVMYJYRYOUWHUWRUWSVUCVUDUVPUWHUWIJVUGUXSUXEUWHUKYLUW
    HVUFVVEUVNUVQYRYSYEUWHUXDUWQUWTMIZDEUXBUWHUXCVXCDUWHUXCUWTUWPHIZVXCUWHUXCUY
    LUDEZUWSUWNHIZVXDUWHAUYLUDUYQWJUWHUXJUYAUXNUYSUYNVXEVXFSUXIUYDUXRUYFUYRUWDU
    WKUVRUVSUWHJUWNHIZUWSMIUWRUWPHIZUWSMIVXFVXDUWHVXGVXHUWSMUWHUXGUYJVXGVXHSUYI
    UYTUWNUVTVTUWAUWHUWSUWNVUDUYIUYTYTUWHUWRUWSUWPVUCVUDUWHUWPUWHUWOUWHUWNUYIXT
    XMUMZUWHUWPVUAWFZUWBYRYKUWHUWTUWPVUEVXIVXJYTYPWJUWHUWQUWTVUBVUEYGYPYS $.

  $( ` ( -u _pi (,] _pi ) ` is a subset of the reals.  (Contributed by David
     Moews, 28-Feb-2017.) $)
  negpitopissre $p |- ( -u _pi (,] _pi ) C_ RR $=
    ( cpi cneg cxr wcel cr cioc co wss pire renegcli rexri iocssre mp2an ) ABZC
    DAEDNAFGEHNAIJKINALM $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Mapping of the exponential function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x y $.  $d B y $.  $d C y $.  $d X x y $.
    efgh.1 $e |- F = ( x e. X |-> ( exp ` ( A x. x ) ) ) $.
    $( The exponential function of a scaled complex number is a group
       homomorphism from the group of complex numbers under addition to the set
       of complex numbers under multiplication.  (Contributed by Paul Chapman,
       25-Apr-2008.)  (Revised by Mario Carneiro, 11-May-2014.)  (Revised by
       Thierry Arnoux, 26-Jan-2020.) $)
    efgh $p |- ( ( ( A e. CC /\ X e. ( SubGrp ` CCfld ) ) /\ B e. X /\ C e. X )
             -> ( F ` ( B + C ) ) = ( ( F ` B ) x. ( F ` C ) ) ) $=
      ( vy cc wcel ccnfld cfv caddc co cmul ce fveq2d wceq cvv oveq2 w3a simp1l
      csubg wa wss simp1r cnfldbas subgss syl simp2 sseldd simp3 adddid syl2anc
      mulcld efadd eqtrd cmpt cbvmptv eqtri a1i adantl cnfldadd subgcl 3adant1l
      cv fvexd fvmptd oveq12d 3eqtr4d ) BIJZFKUCLJZUDZCFJZDFJZUAZBCDMNZONZPLZBC
      ONZPLZBDONZPLZONZVQELCELZDELZONVPVSVTWBMNZPLZWDVPVRWGPVPBCDVKVLVNVOUBZVPF
      ICVPVLFIUEVKVLVNVOUFIFKUGUHUIZVMVNVOUJZUKZVPFIDWJVMVNVOULZUKZUMQVPVTIJWBI
      JWHWDRVPBCWIWLUOVPBDWIWNUOVTWBUPUNUQVPHVQBHVFZONZPLZVSFESEHFWQURZRVPEAFBA
      VFZONZPLZURWRGAHFXAWQWSWORWTWPPWSWOBOTQUSUTVAZWOVQRZWQVSRVPXCWPVRPWOVQBOT
      QVBVLVNVOVQFJVKMFKCDVCVDVEVPVRPVGVHVPWEWAWFWCOVPHCWQWAFESXBWOCRZWQWARVPXD
      WPVTPWOCBOTQVBWKVPVTPVGVHVPHDWQWCFESXBWODRZWQWCRVPXEWPWBPWODBOTQVBWMVPWBP
      VGVHVIVJ $.
  $}

  ${
    $d y z $.  $d y A $.  $d y D $.
    efif1olem1.1 $e |- D = ( A (,] ( A + ( 2 x. _pi ) ) ) $.
    $( Lemma for ~ efif1o .  (Contributed by Mario Carneiro, 13-May-2014.) $)
    efif1olem1 $p |- ( ( A e. RR /\ ( x e. D /\ y e. D ) ) ->
                         ( abs ` ( x - y ) ) < ( 2 x. _pi ) ) $=
      ( cr wcel cv wa cmin co c2 cpi clt wbr caddc cle w3a readdcl sylancl cabs
      cfv cmul cioc simprr syl6eleq cxr wb rexr adantr 2re pire remulcli elioc2
      simpl syl2anc mpbid simp1d simprl simp3d simp2d ltadd1dd ltsubaddd mpbird
      a1i lelttrd absdifltd mpbir2and ) CFGZAHZDGZBHZDGZIZIZVJVLJKUAUBLMUCKZNOV
      LVPJKVJNOZVJVLVPPKZNOVOVQVLVJVPPKZNOVOVLCVPPKZVSVOVLFGZCVLNOZVLVTQOZVOVLC
      VTUDKZGZWAWBWCRZVOVLDWDVIVKVMUEEUFVOCUGGZVTFGZWEWFUHVIWGVNCUIUJZVOVIVPFGZ
      WHVIVNUOZLMUKULUMZCVPSTZCVTVLUNUPUQZURZWMVOVJFGZWJVSFGVOWPCVJNOZVJVTQOZVO
      VJWDGZWPWQWRRZVOVJDWDVIVKVMUSEUFVOWGWHWSWTUHWIWMCVTVJUNUPUQZURZWLVJVPSTVO
      WAWBWCWNUTVOCVJVPWKXBWJVOWLVEZVOWPWQWRXAVAVBVFVOVLVPVJWOXCXBVCVDVOVJVTVRX
      BWMVOWAWJVRFGWOWLVLVPSTVOWPWQWRXAUTVOCVLVPWKWOXCVOWAWBWCWNVAVBVFVOVJVLVPX
      BWOXCVGVH $.

    $( Lemma for ~ efif1o .  (Contributed by Mario Carneiro, 13-May-2014.) $)
    efif1olem2 $p |- ( ( A e. RR /\ z e. RR ) ->
                       E. y e. D ( ( z - y ) / ( 2 x. _pi ) ) e. ZZ ) $=
      ( cr wcel c2 cpi cmul co caddc cmin cdiv cz wbr sylancl recnd cc oveq1d
      cv cmo wrex cioc clt cle simpl 2re pire remulcli readdcl crp resubcl 2pos
      wa pipos mulgt0ii elrpii modcl resubcld a1i ltadd2dd ltaddsubd cc0 modge0
      modlt mpbid subge02d cxr w3a wb adantr elioc2 syl2anc mpbir3and syl6eleqr
      rexr c1 cneg cfl cfv modval oveq2d wne gt0ne0ii redivcl mp3an23 syl flcld
      wceq zred remulcl sylancr subsubd recni simpr pnncand subsub4d negsubdi2d
      3eqtrd pncand negeqd eqtr3d neg1cn mulm1i mulcomli syl6eqr subdid 3eqtr2d
      addcl zcnd eqtr4d neg1z zsubcl divcan3 eqtrd eqeltrd oveq2 eleq1d rspcev
      ) CFGZBUAZFGZUOZCHIJKZLKZCYBMKZYEUBKZMKZDGYBYIMKZYENKZOGZYBAUAZMKZYENKZOG
      ZADUCYDYICYFUDKZDYDYIYQGZYIFGZCYIUEPZYIYFUFPZYDYFYHYDYAYEFGZYFFGZYAYCUGZH
      IUHUIUJZCYEUKQZYDYGFGZYEULGZYHFGCYBUMZYEUUEHIUHUIUNUPUQZURZYGYEUSQZUTYDCY
      HLKYFUEPYTYDYHYECUULUUBYDUUEVAUUDYDUUGUUHYHYEUEPUUIUUKYGYEVFQVBYDCYHYFUUD
      UULUUFVCVGYDVDYHUFPZUUAYDUUGUUHUUMUUIUUKYGYEVEQYDYFYHUUFUULVHVGYDCVIGZUUC
      YRYSYTUUAVJVKYAUUNYCCVQVLUUFCYFYIVMVNVOEVPYDYKVRVSZYGYENKZVTWAZMKZOYDYKYE
      UURJKZYENKZUURYDYJUUSYENYDYJYBYEYBLKZYEUUQJKZLKZMKYBUVAMKZUVBMKZUUSYDYIUV
      CYBMYDYIYFYGUVBMKZMKYFYGMKZUVBLKUVCYDYHUVFYFMYDUUGUUHYHUVFWJUUIUUKYGYEWBQ
      WCYDYFYGUVBYDYFUUFRYDYGUUIRYDUVBYDUUBUUQFGUVBFGUUEYDUUQYDUUPYDUUGUUPFGZUU
      IUUGUUBYEVDWDZUVHUUEYEUUEUUJWEZYGYEWFWGWHWIZWKYEUUQWLWMRZWNYDUVGUVAUVBLYD
      CYEYBYDCUUDRYESGZYDYEUUEWOZVAZYDYBYAYCWPRZWQTWTWCYDYBUVAUVBUVPYDUVMYBSGUV
      ASGUVNUVPYEYBXJWMZUVLWRYDUVEYEUUOJKZUVBMKUUSYDUVDUVRUVBMYDUVDYEVSZUVRYDUV
      AYBMKZVSUVDUVSYDUVAYBUVQUVPWSYDUVTYEYDYEYBUVOUVPXAXBXCUUOYEUVSXDUVNYEUVNX
      EXFXGTYDYEUUOUUQUVOUUOSGYDXDVAYDUUQUVKXKXHXLXITYDUURSGZUUTUURWJZYDUURYDUU
      OOGUUQOGUUROGXMUVKUUOUUQXNWMZXKUWAUVMUVIUWBUVNUVJUURYEXOWGWHXPUWCXQYPYLAY
      IDYMYIWJZYOYKOUWDYNYJYENYMYIYBMXRTXSXTVN $.
  $}

  ${
    $d w x y z A $.  $d w x y C $.  $d x y F $.  $d w x y z ph $.  $d y z S $.
    $d w x y z D $.
    efif1o.1 $e |- F = ( w e. D |-> ( exp ` ( _i x. w ) ) ) $.
    efif1o.2 $e |- C = ( `' abs " { 1 } ) $.
    $( Lemma for ~ efif1o .  (Contributed by Mario Carneiro, 8-May-2015.) $)
    efif1olem3 $p |- ( ( ph /\ x e. C ) ->
      ( Im ` ( sqrt ` x ) ) e. ( -u 1 [,] 1 ) ) $=
      ( wcel wa cfv cr c1 cle wbr co cc cabs wceq c2 cv csqrt cim cneg cicc csn
      ccnv cima simpr syl6eleq wf wfn wb absf ffn fniniseg sylib simpld sqrtcld
      mp2b imcld absimle syl cexp sqsqrtd fveq2d cn0 2nn0 absexp sylancl simprd
      3eqtr3d sq1 syl6eqr cc0 abscld absge0d 0le1 mpanr12 syl2anc mpbid breqtrd
      1re sq11 absle neg1rr elicc2i syl3anbrc ) ABUAZDIZJZWIUBKZUCKZLIZMUDZWMNO
      ZWMMNOZWMWOMUEPIWKWLWKWIWKWIQIZWIRKZMSZWKWIRUGMUFUHZIZWRWTJZWKWIDXAAWJUIH
      UJQLRUKRQULXBXCUMUNQLRUOQMWIRUPUTUQZURZUSZVAZWKWPWQWKWMRKZMNOZWPWQJZWKXHW
      LRKZMNWKWLQIZXHXKNOXFWLVBVCWKXKTVDPZMTVDPZSZXKMSZWKXMMXNWKWLTVDPZRKZWSXMM
      WKXQWIRWKWIXEVEVFWKXLTVGIXRXMSXFVHWLTVIVJWKWRWTXDVKVLVMVNWKXKLIZVOXKNOZXO
      XPUMZWKWLXFVPWKWLXFVQXSXTJMLIZVOMNOYAWCVRXKMWDVSVTWAWBWKWNYBXIXJUMXGWCWMM
      WEVJWAZURWKWPWQYCVKWOMWMWFWCWGWH $.

    ${
      efif1olem4.3 $e |- ( ph -> D C_ RR ) $.
      efif1olem4.4 $e |- ( ( ph /\ ( x e. D /\ y e. D ) ) ->
                           ( abs ` ( x - y ) ) < ( 2 x. _pi ) ) $.
      efif1olem4.5 $e |- ( ( ph /\ z e. RR ) ->
                           E. y e. D ( ( z - y ) / ( 2 x. _pi ) ) e. ZZ ) $.
      efif1olem4.6 $e |- S = ( sin |` ( -u ( _pi / 2 ) [,] ( _pi / 2 ) ) ) $.
      $( The exponential function of an imaginary number maps any interval of
         length ` 2 _pi ` one-to-one onto the unit circle.  (Contributed by
         Paul Chapman, 16-Mar-2008.)  (Proof shortened by Mario Carneiro,
         13-May-2014.) $)
      efif1olem4 $p |- ( ph -> F : D -1-1-onto-> C ) $=
        ( cfv wceq ci co wcel wf1 wfo wf1o wf cv weq wi wral cmul ce wa cr cabs
        sselda ccnv c1 csn cima cc ax-icn recn mulcl sylancr efcl syl absefi wb
        wfn absf ffn ax-mp fniniseg sylanbrc syl6eleqr fmptd wss simplrl sseldd
        ad2antrr recnd simplrr cmin cpi cdiv cc0 subcld wne pire remulcli recni
        c2 2re 2pos pipos mulgt0ii gt0ne0ii divcl mp3an23 clt wbr absdiv ltleii
        cle 0re absid oveq2i syl6eq adantr pm3.2i cn0 divcan5 a1i subdid fveq2d
        mp2an cz syl2anc simpr oveq2 fvex fvmpt 3eqtr3d 3eqtrd efeq1 mpbid wrex
        eqeltrrd cneg cicc csin ralrimiva oveq1 oveq1d caddc eqtrd cexp sylancl
        eleq1d oveq12d sqcld mulid1i syl6breqr abscld 1re ltdivmul eqbrtrd ine0
        mpbird efsub efne0 diveq1bd nn0abscl nn0lt10b abs00d subeq0d ralrimivva
        diveq0 dff13 csqrt cim neghalfpire halfpire iccssre efif1olem3 resinf1o
        cres f1oeq1 mpbir f1ocnv f1of mp2b ffvelrni sseldi remulcl rexbidv sylc
        ex rspcv npcand efadd 2cn mul12 mp3an12 2z efexp ccos recoscld syl6eleq
        sylib simpld sqrtcld recld cosq14ge0 sqrtrege0d sincossq sqsqrtd absexp
        cre 2nn0 simprd absvalsq2d 3eqtr2d fveq1i fvres syl5eq f1ocnvfv2 eqtr3d
        sincld coscld pncan2d pncand sq11d oveq2d efival replimd 3eqtr4d syl5ib
        mulid2d eqeq12d bitr2d adantl eqeq2d 3imtr4d reximdva mpd dffo3 df-f1o
        ) AGFIUAZGFIUBZGFIUCAGFIUDZBUEZIPZCUEZIPZQZBCUFZUGZCGUHBGUHUYHAEGREUEZU
[encoded data, 4160 characters]
        CBGFIUYFVMGFIUYGVM $.
    $}

    efif1o.3 $e |- D = ( A (,] ( A + ( 2 x. _pi ) ) ) $.
    $( The exponential function of an imaginary number maps any open-below,
       closed-above interval of length ` 2 _pi ` one-to-one onto the unit
       circle.  (Contributed by Paul Chapman, 16-Mar-2008.)  (Revised by Mario
       Carneiro, 13-May-2014.) $)
    efif1o $p |- ( A e. RR -> F : D -1-1-onto-> C ) $=
      ( vx vy vz cr wcel csin cpi c2 cdiv co cneg wbr cicc cres cmul caddc cioc
      cv clt cle w3a cxr wb rexr 2re pire remulcli readdcl mpan2 elioc2 syl2anc
      simp1 syl6bi ssrdv syl5eqss efif1olem1 efif1olem2 eqid efif1olem4 ) BLMZI
      JKACDNOPQRZSVIUARUBZEFGVHDBBPOUCRZUDRZUERZLHVHIVMLVHIUFZVMMZVNLMZBVNUGTZV
      NVLUHTZUIZVPVHBUJMVLLMZVOVSUKBULVHVKLMVTPOUMUNUOBVKUPUQBVLVNURUSVPVQVRUTV
      AVBVCIJBDHVDJKBDHVEVJVFVG $.
  $}

  ${
    $d z C $.
    efifo.1 $e |- F = ( z e. RR |-> ( exp ` ( _i x. z ) ) ) $.
    efifo.2 $e |- C = ( `' abs " { 1 } ) $.
    $( The exponential function of an imaginary number maps the reals onto the
       unit circle.  (Contributed by Mario Carneiro, 13-May-2014.) $)
    efifo $p |- F : RR -onto-> C $=
      ( cr wfo wfn crn wceq ci co wcel cabs c1 cc ax-mp cc0 cioc eqtri wf cv ce
      cmul cfv ccnv csn cima ax-icn recn mulcl sylancr efcl syl absefi absf ffn
      wa wb fniniseg mp2b sylanbrc syl6eleqr fmpti wss frn cpi cres df-ima cmpt
      c2 reseq1i clt wbr cle cxr w3a 0xr 2re pire remulcli elioc2 mp2an simp1bi
      ssriv resmpt rneqi wf1o 0re eqid caddc recni addid2i oveq2i eqcomi efif1o
      f1ofo forn imassrn eqsstr3i eqssi df-fo mpbir2an ) FBCGCFHZCIZBJFBCUAZXDA
      FBKAUBZUDLZUCUEZCDXGFMZXINUFOUGUHZBXJXIPMZXINUEOJZXIXKMZXJXHPMZXLXJKPMXGP
      MXOUIXGUJKXGUKULXHUMUNXGUOPFNUANPHXNXLXMURUSUPPFNUQPOXINUTVAVBEVCVDZFBCUQ
      QXEBXFXEBVEXPFBCVFQBCRVKVGUDLZSLZUHZXEXSCXRVHZIZBCXRVIYAAXRXIVJZIZBXTYBXT
      AFXIVJZXRVHZYBCYDXRDVLXRFVEYEYBJAXRFXGXRMZXJRXGVMVNZXGXQVOVNZRVPMXQFMYFXJ
      YGYHVQUSVRVKVGVSVTWAZRXQXGWBWCWDWEAFXRXIWFQTWGXRBYBWHZXRBYBGYCBJRFMYJWIAR
      BXRYBYBWJERRXQWKLZSLXRYKXQRSXQXQYIWLWMWNWOWPQXRBYBWQXRBYBWRVATTCXRWSWTXAF
      BCXBXC $.
  $}

  ${
    $d w x y z D $.  $d x y z F $.  $d w x y z ph $.  $d x y S $.
    eff1olem.1 $e |- F = ( w e. D |-> ( exp ` ( _i x. w ) ) ) $.
    eff1olem.2 $e |- S = ( `' Im " D ) $.
    eff1olem.3 $e |- ( ph -> D C_ RR ) $.
    eff1olem.4 $e |- ( ( ph /\ ( x e. D /\ y e. D ) ) ->
                       ( abs ` ( x - y ) ) < ( 2 x. _pi ) ) $.
    eff1olem.5 $e |- ( ( ph /\ z e. RR ) ->
                       E. y e. D ( ( z - y ) / ( 2 x. _pi ) ) e. ZZ ) $.
    $( The exponential function maps the set ` S ` , of complex numbers with
       imaginary part in a real interval of length ` 2 x. _pi ` , one-to-one
       onto the nonzero complex numbers.  (Contributed by Paul Chapman,
       16-Apr-2008.)  (Proof shortened by Mario Carneiro, 13-May-2014.) $)
    eff1olem $p |- ( ph -> ( exp |` S ) : S -1-1-onto-> ( CC \ { 0 } ) ) $=
      ( cc ce cfv cr co wceq wcel cc0 cdif cv cabs cres ccnv ci cdiv cmul caddc
      csn wss cmpt cim cima cdm cnvimass imf fdmi eqcomi 3sstr4i wf a1i feqmptd
      eff2 reseq1d resmpt eqtrd ax-mp sseli ffvelrni syl adantl crp wne eldifsn
      wa simpr sylib simpld simprd absrpcld wf1o reeff1o f1ocnv f1of mp2b recnd
      ax-icn adantr c1 csin cpi c2 cneg cicc eqid efif1olem4 3syl abscld divcld
      absne0d absdivd absidm oveq2d dividd 3eqtrd wfn wb absf fniniseg sylanbrc
      ffn ffvelrnd sseldd mulcl sylancr addcld crimd eqeltrd elpreima syl6eleqr
      efadd syl2anc fvres f1ocnvfv2 eqtr3d oveq2 cbvmptv eqtri fvex fvmpt fveq2
      fveq2d oveq12d eqeq2d syl5ibrcom eqtr4d f1ocnvfv1 efcl 3eqtrrd adantrl wi
      divcan2d replimd absef recld imcld divcan3d simprbi eleq2s 3eqtr4d syl2an
      cre efne0 id adantrr impbid f1o2d ) ACBGNUAUKUBZCUCZOPZBUCZUDPZOQUEZUFZPZ
      UGUVCUVDUHRZHUFZPZUIRZUJRZOGUEZGNULZUVMCGUVBUMZSUNUFFUOZUNUPZGNUNFUQJUVQN
      NQUNURUSUTVAZUVNUVMCNUVBUMZGUEUVOUVNOUVSGUVNCNUUTONUUTOVBUVNVEVCVDVFCNGUV
      BVGVHVIUVAGTZUVBUUTTZAUVTUVANTZUWAGNUVAUVRVJZNUUTUVAOVEVKVLVMAUVCUUTTZVQZ
      UVLUVPGUWEUVLNTZUVLUNPZFTZUVLUVPTZUWEUVGUVKUWEUVGUWEUVDVNTZUVGQTZUWEUVCUW
      EUVCNTZUVCUAVOZUWEUWDUWLUWMVQAUWDVRUVCNUAVPVSZVTZUWEUWLUWMUWNWAZWBZVNQUVD
      UVFQVNUVEWCZVNQUVFWCVNQUVFVBWDQVNUVEWEVNQUVFWFWGVKVLZWHZUWEUGNTZUVJNTUVKN
      TZWIUWEUVJUWEFQUVJAFQULUWDKWJUWEUDUFWKUKUOZFUVHUVIAUXCFUVIVBZUWDAFUXCHWCZ
      UXCFUVIWCUXDABCDEUXCFWLWMWNUHRZWOUXFWPRUEZHIUXCWQKLMUXGWQWRZFUXCHWEUXCFUV
      IWFWSWJUWEUVHNTZUVHUDPZWKSZUVHUXCTZUWEUVCUVDUWOUWEUVDUWEUVCUWOWTWHZUWEUVC
      UWOUWPXBZXAUWEUXJUVDUVDUDPZUHRUVDUVDUHRWKUWEUVCUVDUWOUXMUXNXCUWEUXOUVDUVD
      UHUWEUWLUXOUVDSUWOUVCXDVLXEUWEUVDUXMUXNXFXGNQUDVBUDNXHUXLUXIUXKVQXIXJNQUD
      XMNWKUVHUDXKWGXLZXNZXOZWHUGUVJXPXQZXRUWEUWGUVJFUWEUVGUVJUWSUXRXSUXQXTNQUN
      VBZUNNXHZUWIUWFUWHVQXIURNQUNXMZNUVLFUNYAWGXLJYBAUVTUWDVQVQZUVAUVLSZUVCUVB
      SZUYCUYEUYDUVCUVLOPZSZAUWDUYGUVTUWEUYFUVGOPZUVKOPZUIRZUVDUVHUIRUVCUWEUVGN
      TUXBUYFUYJSUWTUXSUVGUVKYCYDUWEUYHUVDUYIUVHUIUWEUVGUVEPZUYHUVDUWEUWKUYKUYH
      SUWSUVGQOYEVLUWEUWRUWJUYKUVDSWDUWQQVNUVDUVEYFXQYGUWEUVJHPZUYIUVHUWEUVJFTU
      YLUYISUXQDUVJUGDUCZUIRZOPZUYIFHUYMUVJSUYNUVKOUYMUVJUGUIYHYNHEFUGEUCZUIRZO
      PZUMDFUYOUMIEDFUYRUYOUYPUYMSUYQUYNOUYPUYMUGUIYHYNYIYJUVKOYKYLVLUWEUXEUXLU
      YLUVHSAUXEUWDUXHWJUXPFUXCUVHHYFYDYGYOUWEUVCUVDUWOUXMUXNUUDUUAUUBUYDUVBUYF
      UVCUVAUVLOYMYPYQAUVTUYEUYDUUCUWDAUVTVQZUYDUYEUVAUVBUDPZUVFPZUGUVBUYTUHRZU
      VIPZUIRZUJRZSUYSUVAUVAUUNPZUGUVAUNPZUIRZUJRZVUEUYSUVAUVTUWBAUWCVMZUUEZUYS
      VUAVUFVUDVUHUJUYSVUAVUFUVEPZUVFPZVUFUYSUYTVULUVFUYSUYTVUFOPZVULUYSUWBUYTV
      UNSVUJUVAUUFVLZUYSVUFQTZVULVUNSUYSUVAVUJUUGZVUFQOYEVLYRYNUYSUWRVUPVUMVUFS
      WDVUQQVNVUFUVEYSXQVHUYSVUCVUGUGUIUYSVUCVUGHPZUVIPZVUGUYSVUBVURUVIUYSVUNVU
      HOPZUIRZVUNUHRVUTVUBVURUYSVUTVUNUYSVUHNTZVUTNTUYSUXAVUGNTVVBWIUYSVUGUYSUV
      AVUJUUHWHUGVUGXPXQZVUHYTVLUYSVUFNTZVUNNTUYSVUFVUQWHZVUFYTVLUYSVVDVUNUAVOV
      VEVUFUUOVLUUIUYSUVBVVAUYTVUNUHUYSUVBVUIOPZVVAUYSUVAVUIOVUKYNUYSVVDVVBVVFV
      VASVVEVVCVUFVUHYCYDVHVUOYOUYSVUGFTZVURVUTSUVTVVGAVVGUVAUVPGUVAUVPTZUWBVVG
      UXTUYAVVHUWBVVGVQXIURUYBNUVAFUNYAWGUUJJUUKZVMEVUGUYRVUTFHUYPVUGSUYQVUHOUY
      PVUGUGUIYHYNIVUHOYKYLVLUULYNAUXEVVGVUSVUGSUVTUXHVVIFUXCVUGHYSUUMVHXEYOYRU
      YEUVLVUEUVAUYEUVGVUAUVKVUDUJUYEUVDUYTUVFUVCUVBUDYMZYNUYEUVJVUCUGUIUYEUVHV
      UBUVIUYEUVCUVBUVDUYTUHUYEUUPVVJYOYNXEYOYPYQUUQUURUUS $.
  $}

  ${
    $d w x y z S $.
    eff1o.1 $e |- S = ( `' Im " ( -u _pi (,] _pi ) ) $.
    $( The exponential function maps the set ` S ` , of complex numbers with
       imaginary part in the closed-above, open-below interval from ` -u _pi `
       to ` _pi ` one-to-one onto the nonzero complex numbers.  (Contributed by
       Paul Chapman, 16-Apr-2008.)  (Revised by Mario Carneiro,
       13-May-2014.) $)
    eff1o $p |- ( exp |` S ) : S -1-1-onto-> ( CC \ { 0 } ) $=
      ( vx vy vz vw cpi cneg cr wcel cc cc0 ce pire cioc cmul caddc picn oveq2i
      co csn cdif cres wf1o renegcli cfv cmpt eqid cxr wss rexr iocssre sylancl
      ci cv c2 2timesi negpicn addcli addcomi negsubi pncan3oi eqtri efif1olem1
      cmin 3eqtrri efif1olem2 eff1olem ax-mp ) GHZIJZAKLUAUBMAUCUDGNUEVKCDEFVJG
      OTZAFVLUNFUOPTMUFUGZVMUHBVKVJUIJGIJVLIUJVJUKNVJGULUMCDVJVLGVJUPGPTZQTZVJO
      VOVJGGQTZQTVPVJQTZGVNVPVJQGRUQSVJVPURGGRRUSZUTVQVPGVETGVPGVRRVAGGRRVBVCVF
      SZVDDEVJVLVSVGVHVI $.
  $}

  ${
    $d A x y $.  $d F x y $.  $d G x y $.  $d X x y $.  $d ph x y $.
    efabl.1 $e |- F = ( x e. X |-> ( exp ` ( A x. x ) ) ) $.
    efabl.2 $e |- G = ( ( mulGrp ` CCfld ) |`s ran F ) $.
    efabl.3 $e |- ( ph -> A e. CC ) $.
    efabl.4 $e |- ( ph -> X e. ( SubGrp ` CCfld ) ) $.
    $( The image of a subgroup of the group ` + ` , under the exponential
       function of a scaled complex number, is an Abelian group.  (Contributed
       by Paul Chapman, 25-Apr-2008.)  (Revised by Mario Carneiro,
       12-May-2014.)  (Revised by Thierry Arnoux, 26-Jan-2020.) $)
    efabl $p |- ( ph -> G e. Abel ) $=
      ( ccnfld co cfv eqid wcel wceq syl cmul cc cvv vy cress cplusg cbs cv w3a
      simp1 simp2 csubg subgbas 3ad2ant1 eleqtrrd simp3 caddc jca efgh cnfldadd
      wa syl3an1 ressplusg oveqd fveq2d ce cmpt mptexg syl5eqel rnexg 3syl cmgp
      crn cnfldmul mgpplusg 3eqtr3d syl3anc wfo wfn fvex fnmpti dffn4 mpbi wral
      eqidd wss eff a1i adantr cnfldbas subgss sselda mulcld ffvelrnd ralrimiva
      wf rnmptss mgpbas ressbas2 foeq123d mpbii cabl crg cnring ringabl subgabl
      ax-mp sylancr ghmabl ) ABUAKFUBLZUCMZEUCMZDXGEXGUDMZEUDMZXJNXKNXHNXINABUE
      ZXJOZUAUEZXJOZUFZAXLFOZXNFOZXLXNXHLZDMZXLDMZXNDMZXILZPAXMXOUGXPXLXJFAXMXO
      UHAXMFXJPZXOAFKUIMZOZYDJFKXGXGNZUJQZUKZULXPXNXJFAXMXOUMYIULAXQXRUFZXLXNUN
      LZDMZYAYBRLZXTYCACSOZYFURXQXRYLYMPAYNYFIJUOBCXLXNDFGUPUSYJYKXSDYJUNXHXLXN
      AXQUNXHPZXRAYFYOJFUNKXGYEYGUQUTQUKVAVBYJRXIYAYBAXQRXIPZXRADVJZTOZYPAYFDTO
      YRJYFDBFCXLRLZVCMZVDTGBFYTYEVEVFDTVGVHYQRKVIMZETHKRUUAUUANZVKVLUTQUKVAVMV
      NAFYQDVOZXJXKDVODFVPUUCBFYTDYSVCVQGVRFDVSVTAFXJYQXKDDADWBYHAYTSOZBFWAYQSW
      CYQXKPAUUDBFAXQURZSSYSVCSSVCWMUUEWDWEUUECXLAYNXQIWFAFSXLAYFFSWCJSFKWGWHQW
      IWJWKWLBFYTSDGWNYQSEUUAHSKUUAUUBWGWOWPVHWQWRAKWSOZYFXGWSOKWTOUUFXAKXBXDJF
      KXGYGXCXEXF $.

    $( The image of a subgroup of the group ` + ` , under the exponential
       function of a scaled complex number is a submonoid of the multiplicative
       group of ` CCfld ` .  (Contributed by Thierry Arnoux, 26-Jan-2020.) $)
    efsubm $p |- ( ph -> ran F e. ( SubMnd ` ( mulGrp ` CCfld ) ) ) $=
      ( cc c1 wcel cmul ccnfld cfv ce syl cc0 cvv vy crn wss cv co wral csubmnd
      cmgp wa wf eff a1i adantr csubg cnfldbas subgss sselda ffvelrnd ralrimiva
      mulcld rnmptss mul01d fveq2d ef0 syl6eq subg0cl fvex wceq oveq2 elrnmpt1s
      cnfld0 sylancl eqeltrrd cplusg cgrp cabl efabl ablgrp 3ad2ant1 simp2 eqid
      w3a cbs mgpbas ressbas2 eleqtrd simp3 grpcl syl3anc mptexg syl5eqel rnexg
      cmpt cnfldmul mgpplusg ressplusg 3syl oveqd 3eltr4d 3expb ralrimivva cmnd
      crg wb cnring ringmgp cnfld1 ringidval issubm mp2b syl3anbrc ) ADUBZKUCZL
      XLMZBUDZUAUDZNUEZXLMZUAXLUFBXLUFZXLOUHPZUGPMZACXONUEZQPZKMZBFUFXMAYDBFAXO
      FMZUIZKKYBQKKQUJYFUKULYFCXOACKMYEIUMAFKXOAFOUNPZMZFKUCJKFOUOUPRUQUTURUSBF
      YCKDGVARZACSNUEZQPZLXLAYKSQPLAYJSQACIVBVCVDVEASFMZYKTMYKXLMAYHYLJFOSVKVFR
      YJQVGBFYCYKSDTGXOSVHYBYJQXOSCNVIVCVJVLVMAXRBUAXLXLAXOXLMZXPXLMZXRAYMYNWBZ
      XOXPEVNPZUEZEWCPZXQXLYOEVOMZXOYRMXPYRMYQYRMAYMYSYNAEVPMYSABCDEFGHIJVQEVRR
      VSYOXOXLYRAYMYNVTAYMXLYRVHZYNAXMYTYIXLKEXTHKOXTXTWAZUOWDZWERVSZWFYOXPXLYR
      AYMYNWGUUCWFYRYPEXOXPYRWAYPWAWHWIYONYPXOXPAYMNYPVHZYNADTMXLTMUUDADBFYCWMZ
      TGAYHUUETMJBFYCYGWJRWKDTWLXLNXTETHONXTUUAWNWOZWPWQVSWRUUCWSWTXAOXCMXTXBMY
      AXMXNXSWBXDXEOXTUUAXFBUAKNXLXTLUUBOLXTUUAXGXHUUFXIXJXK $.
  $}

  ${
    $d x y C $.  $d y T $.
    circgrp.1 $e |- C = ( `' abs " { 1 } ) $.
    circgrp.2 $e |- T = ( ( mulGrp ` CCfld ) |`s C ) $.
    $( The circle group ` T ` is an Abelian group.  (Contributed by Paul
       Chapman, 25-Mar-2008.)  (Revised by Mario Carneiro, 13-May-2014.)
       (Revised by Thierry Arnoux, 26-Jan-2020.) $)
    circgrp $p |- T e. Abel $=
      ( vy vx wcel wtru ci cr cv cmul co ce cfv wceq ccnfld cress ax-mp a1i crn
      cabl cmpt oveq2 fveq2d cbvmptv cmgp wfo efifo forn eqcomi oveq2i eqtri cc
      ax-icn csubg csubrg crefld cdr resubdrg simpli subrgsubg efabl trud ) BUB
      GHEIFJIFKZLMZNOZUCZBJFEJVGIEKZLMZNOVEVIPVFVJNVEVIILUDUEUFZBQUGOZARMVLVHUA
      ZRMDAVMVLRVMAJAVHUHVMAPEAVHVKCUIJAVHUJSUKULUMIUNGHUOTJQUPOGZHJQUQOGZVNVOU
      RUSGUTVAJQVBSTVCVD $.

    $( The circle group ` T ` is a submonoid of the multiplicative group of
       ` CCfld ` .  (Contributed by Thierry Arnoux, 26-Jan-2020.) $)
    circsubm $p |- C e. ( SubMnd ` ( mulGrp ` CCfld ) ) $=
      ( vx vy cr ci cv cmul co ce cfv ccnfld wceq ax-mp wcel wtru cress a1i crn
      cmpt cmgp csubmnd oveq2 fveq2d cbvmptv efifo forn eqcomi oveq2i cc ax-icn
      wfo csubg csubrg crefld cdr resubdrg simpli subrgsubg efsubm trud eqeltri
      ) AEGHEIZJKZLMZUBZUAZNUCMZUDMZVIAGAVHUNVIAOFAVHEFGVGHFIZJKZLMVEVLOVFVMLVE
      VLHJUEUFUGZCUHGAVHUIPUJZVIVKQRFHVHVJASKGVNAVIVJSVOUKHULQRUMTGNUOMQZRGNUPM
      QZVPVQUQURQUSUTGNVAPTVBVCVD $.
  $}

  ${
    $d x y $.
    rzgrp.r $e |- R = ( RRfld /s ( RRfld ~QG ZZ ) ) $.
    $( The quotient group R/Z is a group.  (Contributed by Thierry Arnoux,
       26-Jan-2020.) $)
    rzgrp $p |- R e. Grp $=
      ( vx vy cz crefld cfv wcel cv caddc co wb cr csubrg ccnfld ax-mp mpbir2an
      wral wa recnd cnsg cgrp csubg wss zsubrg zssre resubdrg df-refld subsubrg
      simpli subrgsubg simpl simpr addcomd eleq1d rgen2a rebase replusg qusgrp
      cdr isnsg ) EFUAGHZAUBHVBEFUCGHZCIZDIZJKZEHVEVDJKZEHLZDMRCMREFNGHZVCVIEON
      GZHZEMUDZUEUFMVJHZVIVKVLSLVMFUTHUGUJMEOFUHUIPQEFUKPVHCDMVDMHZVEMHZSZVFVGE
      VPVDVEVPVDVNVOULTVPVEVNVOUMTUNUOUPCDJEFMUQURVAQEFABUSP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The natural logarithm on complex numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c log $.
  $c ^c $.

  $( Extend class notation with the natural logarithm function on complex
     numbers. $)
  clog $a class log $.

  $( Extend class notation with the complex power function. $)
  ccxp $a class ^c $.

  $( Define the natural logarithm function on complex numbers.  It is defined
     as the principal value, that is, the inverse of the exponential whose
     imaginary part lies in the interval (-pi, pi].  See
     ~ http://en.wikipedia.org/wiki/Natural_logarithm and
     ~ https://en.wikipedia.org/wiki/Complex_logarithm .  (Contributed by Paul
     Chapman, 21-Apr-2008.) $)
  df-log $a |- log = `' ( exp |` ( `' Im " ( -u _pi (,] _pi ) ) ) $.

  ${
    $d x y $.
    $( Define the power function on complex numbers.  Note that the value of
       this function when ` x = 0 ` and ` ( Re `` y ) <_ 0 , y =/= 0 ` should
       properly be undefined, but defining it by convention this way simplifies
       the domain.  (Contributed by Mario Carneiro, 2-Aug-2014.) $)
    df-cxp $a |- ^c = ( x e. CC , y e. CC |->
      if ( x = 0 , if ( y = 0 , 1 , 0 ) , ( exp ` ( y x. ( log ` x ) ) ) ) ) $.
  $}

  $( The range of the natural logarithm function, also the principal domain of
     the exponential function.  This allows us to write the longer class
     expression as simply ` ran log ` .  (Contributed by Paul Chapman,
     21-Apr-2008.)  (Revised by Mario Carneiro, 13-May-2014.) $)
  logrn $p |- ran log = ( `' Im " ( -u _pi (,] _pi ) ) $=
    ( clog crn ce cim ccnv cpi cneg cioc co cima cres df-log rneqi cc0 csn cdif
    cc wf1o wfo wceq eqid eff1o f1ocnv ax-mp f1ofo forn mp2b eqtri ) ABCDEFGFHI
    JZKZEZBZUIAUKLMQNOPZUIUKRZUMUIUKSULUITUIUMUJRUNUIUIUAUBUIUMUJUCUDUMUIUKUEUM
    UIUKUFUGUH $.

  $( Write out the property ` A e. ran log ` explicitly.  (Contributed by Mario
     Carneiro, 1-Apr-2015.) $)
  ellogrn $p |- ( A e. ran log <->
    ( A e. CC /\ -u _pi < ( Im ` A ) /\ ( Im ` A ) <_ _pi ) ) $=
    ( cim ccnv cpi cneg cioc co cima wcel cc cfv clt wbr wa w3a cr 3anass bitri
    wb pire cle clog crn wf wfn imf elpreima mp2b imcl biantrurd renegcli rexri
    ffn cxr elioc2 mp2an syl6rbbr pm5.32i logrn eleq2i 3bitr4i ) ABCDEZDFGZHZIZ
    AJIZVBABKZLMZVGDUAMZNZNZAUBUCZIVFVHVIOVEVFVGVCIZNZVKJPBUDBJUEVEVNSUFJPBUMJA
    VCBUGUHVFVMVJVFVJVGPIZVJNZVMVFVOVJAUIUJVMVOVHVIOZVPVBUNIDPIVMVQSVBDTUKULTVB
    DVGUOUPVOVHVIQRUQURRVLVDAUSUTVFVHVIQVA $.

  $( The natural logarithm function in terms of the exponential function
     restricted to its principal domain.  (Contributed by Paul Chapman,
     21-Apr-2008.) $)
  dflog2 $p |- log = `' ( exp |` ran log ) $=
    ( clog ce cim ccnv cpi cneg cioc cima cres crn df-log reseq2i cnveqi eqtr4i
    co logrn ) ABCDEFEGOHZIZDBAJZIZDKTRSQBPLMN $.

  $( The range of the natural logarithm function includes the real numbers.
     (Contributed by Paul Chapman, 21-Apr-2008.)  (Proof shortened by Mario
     Carneiro, 1-Apr-2015.) $)
  relogrn $p |- ( A e. RR -> A e. ran log ) $=
    ( cr wcel cpi cneg cim cfv clt wbr cle clog crn recn cc0 pipos pire lt0neg2
    cc wb ax-mp mpbi reim0 syl5breqr 0re ltleii syl6eqbr ellogrn syl3anbrc ) AB
    CZARCDEZAFGZHIUKDJIAKLCAMUIUJNUKHNDHIZUJNHIZODBCULUMSPDQTUAAUBZUCUIUKNDJUNN
    DUDPOUEUFAUGUH $.

  $( The range of the natural logarithm function is a subset of the complex
     numbers.  (Contributed by Mario Carneiro, 13-May-2014.) $)
  logrncn $p |- ( A e. ran log -> A e. CC ) $=
    ( clog crn wcel cc cpi cneg cim cfv clt wbr cle ellogrn simp1bi ) ABCDAEDFG
    AHIZJKOFLKAMN $.

  $( The exponential function restricted to its principal domain maps
     one-to-one onto the nonzero complex numbers.  (Contributed by Paul
     Chapman, 21-Apr-2008.)  (Revised by Mario Carneiro, 13-May-2014.) $)
  eff1o2 $p |- ( exp |` ran log ) : ran log -1-1-onto-> ( CC \ { 0 } ) $=
    ( clog crn logrn eff1o ) ABCD $.

  $( The natural logarithm function maps the nonzero complex numbers one-to-one
     onto its range.  (Contributed by Paul Chapman, 21-Apr-2008.) $)
  logf1o $p |- log : ( CC \ { 0 } ) -1-1-onto-> ran log $=
    ( cc cc0 csn cdif clog wf1o ce cres ccnv eff1o2 f1ocnv ax-mp wceq wb dflog2
    crn f1oeq1 mpbir ) ABCDZEPZEFZSTGTHZIZFZTSUBFUDJTSUBKLEUCMUAUDNOSTEUCQLR $.

  $( The natural logarithm function on the positive reals in terms of the real
     exponential function.  (Contributed by Paul Chapman, 21-Apr-2008.) $)
  dfrelog $p |- ( log |` RR+ ) = `' ( exp |` RR ) $=
    ( vx ce clog crn cres ccnv cr cima crp df-ima wceq relogrn ssriv ax-mp wfun
    wss cv wf1o mpbi dflog2 resabs1 rneqi wfn w3a reeff1o dff1o2 simp3i reseq2i
    3eqtri cnveqi cc cc0 csn cdif logf1o f1ofun funeqi funcnvres eqtr3i reseq1i
    3eqtr4ri ) BCDZEZFZVCGHZEZVDIEBGEZFZCIEVEIVDVEVCGEZDVGDZIVCGJVIVGGVBPVIVGKA
    GVBAQLMBGVBUANZUBVGGUCZVHOZVJIKZGIVGRVLVMVNUDUEGIVGUFSUGUIUHVIFZVHVFVIVGVKU
    JVDOZVOVFKCOZVPUKULUMUNZVBCRVQUOVRVBCUPNCVDTUQSGVCURNUSCVDITUTVA $.

  $( The natural logarithm function maps the positive reals one-to-one onto the
     real numbers.  (Contributed by Paul Chapman, 21-Apr-2008.) $)
  relogf1o $p |- ( log |` RR+ ) : RR+ -1-1-onto-> RR $=
    ( vx crp cr clog cres wf1o ce crn ccnv wfun cc0 csn cdif eff1o2 wceq f1oeq1
    cc wb mp2b mpbir wfo dff1o3 simprbi ax-mp reeff1o wss relogrn ssriv resabs1
    cv f1orescnv mp2an dflog2 reseq1 ) BCDBEZFZBCGDHZEZIZBEZFZUSJZCBURCEZFZVAUQ
    QKLMZURFZVBNVFUQVEURUAVBUQVEURUBUCUDVDCBGCEZFZUECUQUFVCVGOVDVHRACUQAUJUGUHG
    CUQUICBVCVGPSTBCURUKULDUSOUOUTOUPVARUMDUSBUNBCUOUTPST $.

  $( Closure of the natural logarithm function.  (Contributed by Paul Chapman,
     21-Apr-2008.) $)
  logrncl $p |- ( ( A e. CC /\ A =/= 0 ) -> ( log ` A ) e. ran log ) $=
    ( cc wcel cc0 wne wa csn cdif clog cfv eldifsn wf1o wf logf1o f1of ffvelrni
    crn ax-mp sylbir ) ABCADEFABDGHZCAIJIQZCABDKTUAAITUAILTUAIMNTUAIORPS $.

  $( Closure of the natural logarithm function.  (Contributed by NM,
     21-Apr-2008.)  (Revised by Mario Carneiro, 23-Sep-2014.) $)
  logcl $p |- ( ( A e. CC /\ A =/= 0 ) -> ( log ` A ) e. CC ) $=
    ( cc wcel cc0 wne wa clog cfv crn logrncl logrncn syl ) ABCADEFAGHZGICMBCAJ
    MKL $.

  $( Closure of the imaginary part of the logarithm function.  (Contributed by
     Mario Carneiro, 23-Sep-2014.)  (Revised by Mario Carneiro, 1-Apr-2015.) $)
  logimcl $p |- ( ( A e. CC /\ A =/= 0 ) ->
    ( -u _pi < ( Im ` ( log ` A ) ) /\ ( Im ` ( log ` A ) ) <_ _pi ) ) $=
    ( cc wcel cc0 wne clog cfv cpi cneg cim clt wbr cle w3a crn logrncl ellogrn
    wa sylib 3simpc syl ) ABCADERZAFGZBCZHIUCJGZKLZUEHMLZNZUFUGRUBUCFOCUHAPUCQS
    UDUFUGTUA $.

  ${
    logcld.1 $e |- ( ph -> X e. CC ) $.
    logcld.2 $e |- ( ph -> X =/= 0 ) $.
    $( The logarithm of a nonzero complex number is a complex number.
       Deduction form of ~ logcl .  (Contributed by David Moews,
       28-Feb-2017.) $)
    logcld $p |- ( ph -> ( log ` X ) e. CC ) $=
      ( cc wcel cc0 wne clog cfv logcl syl2anc ) ABEFBGHBIJEFCDBKL $.
  $}

  ${
    logimcld.1 $e |- ( ph -> X e. CC ) $.
    logimcld.2 $e |- ( ph -> X =/= 0 ) $.
    $( The imaginary part of the logarithm is in ` ( -u _pi (,] _pi ) ` .
       Deduction form of ~ logimcl .  Compare ~ logimclad .  (Contributed by
       David Moews, 28-Feb-2017.) $)
    logimcld $p |- ( ph -> ( -u _pi < ( Im ` ( log ` X ) ) /\
                                     ( Im ` ( log ` X ) ) <_ _pi ) ) $=
      ( cc wcel cc0 wne cpi cneg clog cfv cim clt wbr cle wa logimcl syl2anc )
      ABEFBGHIJBKLMLZNOTIPOQCDBRS $.

    $( The imaginary part of the logarithm is in ` ( -u _pi (,] _pi ) ` .
       Alternate form of ~ logimcld .  (Contributed by David Moews,
       28-Feb-2017.) $)
    logimclad $p |- ( ph -> ( Im ` ( log ` X ) ) e. ( -u _pi (,] _pi ) ) $=
      ( clog cfv cim cr wcel cpi cneg clt wbr cle cioc co logcld imcld logimcld
      pire simpld simprd cxr w3a wb renegcli rexri elioc2 mp2an syl3anbrc ) ABE
      FZGFZHIZJKZULLMZULJNMZULUNJOPIZAUKABCDQRAUOUPABCDSZUAAUOUPURUBUNUCIJHIUQU
      MUOUPUDUEUNJTUFUGTUNJULUHUIUJ $.
  $}

  $( The imaginary part of the logarithm function has absolute value less than
     pi.  (Contributed by Mario Carneiro, 3-Jul-2017.) $)
  abslogimle $p |- ( ( A e. CC /\ A =/= 0 ) ->
    ( abs ` ( Im ` ( log ` A ) ) ) <_ _pi ) $=
    ( cc wcel cc0 wne wa clog cfv cim cabs cpi cle wbr cneg pire renegcld logcl
    cr a1i imcld clt logimcl simpld ltled simprd absled mpbir2and ) ABCADEFZAGH
    ZIHZJHKLMKNZUJLMUJKLMZUHUKUJUHKKRCUHOSZPUHUIAQTZUHUKUJUAMZULAUBZUCUDUHUOULU
    PUEUHUJKUNUMUFUG $.

  $( The range of the natural logarithm is closed under addition with reals.
     (Contributed by Mario Carneiro, 3-Apr-2015.) $)
  logrnaddcl $p |- ( ( A e. ran log /\ B e. RR ) -> ( A + B ) e. ran log ) $=
    ( clog crn cr caddc co cc cpi cim cfv clt wbr cle syl2an ellogrn adantr cc0
    wcel wceq wa cneg logrncn recn addcl simp2bi imadd reim0 adantl imcld recnd
    oveq2d addid1d 3eqtrd breqtrrd simp3bi eqbrtrd syl3anbrc ) ACDZSZBESZUAZABF
    GZHSZIUBZVCJKZLMVFINMVCUSSUTAHSZBHSZVDVAAUCZBUDZABUEOVBVEAJKZVFLUTVEVKLMZVA
    UTVGVLVKINMZAPZUFQVBVFVKBJKZFGZVKRFGVKUTVGVHVFVPTVAVIVJABUGOVBVORVKFVAVORTU
    TBUHUIULVBVKVBVKVBAUTVGVAVIQUJUKUMUNZUOVBVFVKINVQUTVMVAUTVGVLVMVNUPQUQVCPUR
    $.

  $( Closure of the natural logarithm function on positive reals.  (Contributed
     by Steve Rodriguez, 25-Nov-2007.) $)
  relogcl $p |- ( A e. RR+ -> ( log ` A ) e. RR ) $=
    ( crp wcel clog cres cr fvres wf1o wf relogf1o f1of ax-mp ffvelrni eqeltrrd
    cfv ) ABCADBEZOADOFABDGBFAPBFPHBFPIJBFPKLMN $.

  $( Relationship between the natural logarithm function and the exponential
     function.  (Contributed by Paul Chapman, 21-Apr-2008.) $)
  eflog $p |- ( ( A e. CC /\ A =/= 0 ) -> ( exp ` ( log ` A ) ) = A ) $=
    ( cc wcel cc0 wne wa clog cfv ce crn cres ccnv dflog2 fveq1i fveq2i logrncl
    wceq fvres syl csn cdif eldifsn wf1o eff1o2 f1ocnvfv2 mpan sylbir 3eqtr3a )
    ABCADEFZAGHZIGJZKZHZAULLZHZULHZUJIHZAUJUOULAGUNMNOUIUJUKCUMUQQAPUJUKIRSUIAB
    DTUAZCZUPAQZABDUBUKURULUCUSUTUDUKURAULUEUFUGUH $.

  $( If the logarithm of a number is 0, the number must be 1.  (Contributed by
     David A. Wheeler, 22-Jul-2017.) $)
  logeq0im1 $p |- ( ( A e. CC /\ A =/= 0 /\ ( log ` A ) = 0 ) -> A = 1 ) $=
    ( cc wcel cc0 wne clog cfv wceq w3a ce c1 eflog 3adant3 ef0 syl6eq 3ad2ant3
    fveq2 eqtr3d ) ABCZADEZAFGZDHZIUAJGZAKSTUCAHUBALMUBSUCKHTUBUCDJGKUADJQNOPR
    $.

  $( The logarithm isn't 0 if its argument isn't 0 or 1.  (Contributed by David
     A. Wheeler, 17-Jul-2017.) $)
  logccne0 $p |- ( ( A e. CC /\ A =/= 0 /\ A =/= 1 ) -> ( log ` A ) =/= 0 ) $=
    ( cc wcel cc0 wne c1 w3a clog wceq simp3 neneqd wi logeq0im1 3expia 3adant3
    cfv mtod neqned ) ABCZADEZAFEZGZAHPZDUBUCDIZAFIZUBAFSTUAJKSTUDUELUASTUDUEAM
    NOQR $.

  $( Logarithm of a non-1 positive real number is not zero and thus suitable as
     a divisor.  (Contributed by Stefan O'Rear, 19-Sep-2014.)  (Proof shortened
     by AV, 14-Jun-2020.) $)
  logne0 $p |- ( ( A e. RR+ /\ A =/= 1 ) -> ( log ` A ) =/= 0 ) $=
    ( crp wcel c1 wne wa cc0 clog cfv rpcn adantr rpne0 simpr logccne0 syl3anc
    cc ) ABCZADEZFAPCZAGEZRAHIGEQSRAJKQTRALKQRMANO $.

  $( Relationship between the natural logarithm function and the exponential
     function.  (Contributed by Steve Rodriguez, 25-Nov-2007.) $)
  reeflog $p |- ( A e. RR+ -> ( exp ` ( log ` A ) ) = A ) $=
    ( crp wcel cc cc0 wne wa clog cfv ce wceq rpcnne0 eflog syl ) ABCADCAEFGAHI
    JIAKALAMN $.

  $( Relationship between the natural logarithm function and the exponential
     function.  (Contributed by Paul Chapman, 21-Apr-2008.) $)
  logef $p |- ( A e. ran log -> ( log ` ( exp ` A ) ) = A ) $=
    ( clog crn wcel ce cres cfv ccnv dflog2 fveq1i fvres fveq2d cc cc0 csn cdif
    wf1o wceq eff1o2 f1ocnvfv1 mpan 3eqtr3a ) ABCZDZAEUCFZGZBGUFUEHZGZAEGZBGAUF
    BUGIJUDUFUIBAUCEKLUCMNOPZUEQUDUHARSUCUJAUETUAUB $.

  $( Relationship between the natural logarithm function and the exponential
     function.  (Contributed by Steve Rodriguez, 25-Nov-2007.) $)
  relogef $p |- ( A e. RR -> ( log ` ( exp ` A ) ) = A ) $=
    ( cr wcel clog crn ce cfv wceq relogrn logef syl ) ABCADECAFGDGAHAIAJK $.

  $( Relationship between the natural logarithm function and the exponential
     function.  (Contributed by Paul Chapman, 21-Apr-2008.) $)
  logeftb $p |- ( ( A e. CC /\ A =/= 0 /\ B e. ran log ) ->
                  ( ( log ` A ) = B <-> ( exp ` B ) = A ) ) $=
    ( cc wcel cc0 wne clog crn cfv wceq ce wb csn cdif eldifsn cres ccnv eqeq1d
    wa fvres adantr eff1o2 f1ocnvfvb mp3an1 bitr3d ancoms dflog2 fveq1i sylanbr
    wf1o eqeq1i syl6rbbr 3impa ) ACDZAEFZBGHZDZAGIZBJZBKIZAJZLZUNUOSACEMNZDZUQV
    BACEOVDUQSVAAKUPPZQZIZBJZUSUQVDVAVHLUQVDSBVEIZAJZVAVHUQVJVALVDUQVIUTABUPKTR
    UAUPVCVEUJUQVDVJVHLUBUPVCBAVEUCUDUEUFURVGBAGVFUGUHUKULUIUM $.

  $( Relationship between the natural logarithm function and the exponential
     function.  (Contributed by Steve Rodriguez, 25-Nov-2007.) $)
  relogeftb $p |- ( ( A e. RR+ /\ B e. RR ) ->
                    ( ( log ` A ) = B <-> ( exp ` B ) = A ) ) $=
    ( crp wcel cc cc0 wne wa clog crn cfv wceq ce wb cr rpcnne0 relogrn logeftb
    3expa syl2an ) ACDAEDZAFGZHBIJDZAIKBLBMKALNZBODAPBQUAUBUCUDABRST $.

  $( The natural logarithm of ` 1 ` .  One case of Property 1a of [Cohen]
     p. 301.  (Contributed by Steve Rodriguez, 25-Nov-2007.) $)
  log1 $p |- ( log ` 1 ) = 0 $=
    ( c1 clog cfv cc0 wceq ce ef0 crp wcel cr wb 1rp 0re relogeftb mp2an mpbir
    ) ABCDEZDFCAEZGAHIDJIQRKLMADNOP $.

  $( The natural logarithm of ` _e ` .  One case of Property 1b of [Cohen]
     p. 301.  (Contributed by Steve Rodriguez, 25-Nov-2007.) $)
  loge $p |- ( log ` _e ) = 1 $=
    ( ceu clog cfv c1 wceq ce df-e eqcomi crp wcel cr epr relogeftb mp2an mpbir
    wb 1re ) ABCDEZDFCZAEZASGHAIJDKJRTPLQADMNO $.

  $( The natural logarithm of a negative real number.  (Contributed by Mario
     Carneiro, 13-May-2014.)  (Revised by Mario Carneiro, 3-Apr-2015.) $)
  logneg $p |- ( A e. RR+ -> ( log ` -u A ) =
                 ( ( log ` A ) + ( _i x. _pi ) ) ) $=
    ( wcel clog cfv ci cpi cmul co ce cneg cc wceq sylancl clt wbr cle pipos cr
    cc0 pire crp caddc c1 relogcl recnd ax-icn picn mulcli efadd oveq2i reeflog
    efipi oveq1d syl5eq rpcn neg1cn mulcom mulm1d eqtrd 3eqtrd fveq2d crn addcl
    cim wb lt0neg2 ax-mp mpbi renegcli 0re lttri mp2an syl5breqr leidi syl6eqbr
    crim ellogrn syl3anbrc logef syl eqtr3d ) AUABZACDZEFGHZUBHZIDZCDZAJZCDWEWB
    WFWHCWBWFWCIDZWDIDZGHZAUCJZGHZWHWBWCKBZWDKBZWFWKLWBWCAUDZUEZEFUFUGUHZWCWDUI
    MWBWKWIWLGHWMWJWLWIGULUJWBWIAWLGAUKUMUNWBWMWLAGHZWHWBAKBWLKBWMWSLAUOZUPAWLU
    QMWBAWTURUSUTVAWBWECVBBZWGWELWBWEKBZFJZWEVDDZNOXDFPOXAWBWNWOXBWQWRWCWDVCMWB
    XCFXDNXCSNOZSFNOZXCFNOXFXEQFRBZXFXEVETFVFVGVHQXCSFFTVIVJTVKVLWBWCRBXGXDFLWP
    TWCFVPMZVMWBXDFFPXHFTVNVOWEVQVRWEVSVTWA $.

  $( The natural logarithm of negative ` 1 ` .  (Contributed by Paul Chapman,
     21-Apr-2008.)  (Revised by Mario Carneiro, 13-May-2014.) $)
  logm1 $p |- ( log ` -u 1 ) = ( _i x. _pi ) $=
    ( c1 cneg clog cfv ci cpi cmul co caddc cc0 crp wcel wceq logneg ax-mp log1
    1rp oveq1i ax-icn picn mulcli addid2i 3eqtri ) ABCDZACDZEFGHZIHZJUFIHUFAKLU
    DUGMQANOUEJUFIPRUFEFSTUAUBUC $.

  $( If a number has imaginary part equal to ` _pi ` , then it is on the
     negative real axis and vice-versa.  (Contributed by Mario Carneiro,
     23-Sep-2014.) $)
  lognegb $p |- ( ( A e. CC /\ A =/= 0 ) ->
    ( -u A e. RR+ <-> ( Im ` ( log ` A ) ) = _pi ) ) $=
    ( cc wcel cneg crp clog cfv cim cpi wceq ci cmul co caddc fveq2d cr sylancl
    eqtrd ce recnd cc0 wne logneg relogcl pire crim negneg adantr eqeq1d syl5ib
    wa cre logcl replimd eflog recld ax-icn imcld mulcl sylancr syl2anc 3eqtr3d
    efadd oveq2 efipi syl6eq oveq2d eqeq2d syl5ibcom rpcnd neg1cn mulcom mulm1d
    c1 rpefcld negeqd negnegd eqeltrd negeq eleq1d syl5ibrcom syld impbid ) ABC
    ZAUAUBZUKZADZECZAFGZHGZIJZWHWGDZFGZHGZIJWFWKWHWNWGFGZKILMZNMZHGZIWHWMWQHWGU
    COWHWOPCIPCWRIJWGUDUEWOIUFQRWFWNWJIWFWMWIHWFWLAFWDWLAJWEAUGUHOOUIUJWFWKAWIU
    LGZSGZVNDZLMZJZWHWFAWTKWJLMZSGZLMZJWKXCWFWISGWSXDNMZSGZAXFWFWIXGSWFWIAUMZUN
    OAUOWFWSBCXDBCZXHXFJWFWSWFWIXIUPZTWFKBCWJBCXJUQWFWJWFWIXIURTKWJUSUTWSXDVCVA
    VBWKXFXBAWKXEXAWTLWKXEWPSGXAWKXDWPSWJIKLVDOVEVFVGVHVIWFWHXCXBDZECWFXLWTEWFX
    LWTDZDWTWFXBXMWFXBXAWTLMZXMWFWTBCXABCXBXNJWFWTWFWSXKVOZVJZVKWTXAVLQWFWTXPVM
    RVPWFWTXPVQRXOVRXCWGXLEAXBVSVTWAWBWC $.

  ${
    relogoprlem.1 $e |- ( ( ( log ` A ) e. CC /\ ( log ` B ) e. CC ) ->
                        ( exp ` ( ( log ` A ) F ( log ` B ) ) ) =
                        ( ( exp ` ( log ` A ) ) G ( exp ` ( log ` B ) ) ) ) $.
    relogoprlem.2 $e |- ( ( ( log ` A ) e. RR /\ ( log ` B ) e. RR ) ->
                          ( ( log ` A ) F ( log ` B ) ) e. RR ) $.
    $( Lemma for ~ relogmul and ~ relogdiv .  Remark of [Cohen] p. 301 ("The
       proof of Property 3 is quite similar to the proof given for Property
       2").  (Contributed by Steve Rodriguez, 25-Nov-2007.) $)
    relogoprlem $p |- ( ( A e. RR+ /\ B e. RR+ ) ->
        ( log ` ( A G B ) ) = ( ( log ` A ) F ( log ` B ) ) ) $=
      ( crp wcel wa clog cfv ce co reeflog fveq2d cr wceq relogcl cc recn syl
      oveqan12d syl2an relogef eqtr3d ) AGHZBGHZIZAJKZLKZBJKZLKZDMZJKZABDMZJKUI
      UKCMZUHUMUOJUFUGUJAULBDANBNUBOUFUIPHZUKPHZUNUPQUGARBRUQURIZUPLKZJKZUNUPUQ
      UISHZUKSHZVAUNQURUITUKTVBVCIUTUMJEOUCUSUPPHVAUPQFUPUDUAUEUCUE $.
  $}

  $( The natural logarithm of the product of two positive real numbers is the
     sum of natural logarithms.  Property 2 of [Cohen] p. 301, restricted to
     natural logarithms.  (Contributed by Steve Rodriguez, 25-Nov-2007.) $)
  relogmul $p |- ( ( A e. RR+ /\ B e. RR+ ) ->
                    ( log ` ( A x. B ) ) = ( ( log ` A ) + ( log ` B ) ) ) $=
    ( caddc cmul clog cfv efadd readdcl relogoprlem ) ABCDAEFZBEFZGJKHI $.

  $( The natural logarithm of the quotient of two positive real numbers is the
     difference of natural logarithms.  Exercise 72(a) and Property 3 of
     [Cohen] p. 301, restricted to natural logarithms.  (Contributed by Steve
     Rodriguez, 25-Nov-2007.) $)
  relogdiv $p |- ( ( A e. RR+ /\ B e. RR+ ) ->
                    ( log ` ( A / B ) ) = ( ( log ` A ) - ( log ` B ) ) ) $=
    ( cmin cdiv clog cfv efsub resubcl relogoprlem ) ABCDAEFZBEFZGJKHI $.

  $( Exponentiation of a nonzero complex number to an integer power.
     (Contributed by Paul Chapman, 21-Apr-2008.) $)
  explog $p |- ( ( A e. CC /\ A =/= 0 /\ N e. ZZ ) ->
                  ( A ^ N ) = ( exp ` ( N x. ( log ` A ) ) ) ) $=
    ( cc wcel cc0 wne cz w3a clog cmul co ce cexp wceq logcl efexp stoic3 eflog
    cfv 3adant3 oveq1d eqtr2d ) ACDZAEFZBGDZHZBAISZJKLSZUGLSZBMKZABMKUCUDUGCDUE
    UHUJNAOUGBPQUFUIABMUCUDUIANUEARTUAUB $.

  $( Exponentiation of a positive real number to an integer power.
     (Contributed by Steve Rodriguez, 25-Nov-2007.) $)
  reexplog $p |- ( ( A e. RR+ /\ N e. ZZ ) ->
                    ( A ^ N ) = ( exp ` ( N x. ( log ` A ) ) ) ) $=
    ( crp wcel cz wa clog cfv cmul co ce cexp cc wceq relogcl recnd efexp sylan
    reeflog oveq1d adantr eqtr2d ) ACDZBEDZFBAGHZIJKHZUEKHZBLJZABLJZUCUEMDUDUFU
    HNUCUEAOPUEBQRUCUHUINUDUCUGABLASTUAUB $.

  $( The natural logarithm of positive ` A ` raised to an integer power.
     Property 4 of [Cohen] p. 301-302, restricted to natural logarithms and
     integer powers ` N ` .  (Contributed by Steve Rodriguez, 25-Nov-2007.) $)
  relogexp $p |- ( ( A e. RR+ /\ N e. ZZ ) ->
                    ( log ` ( A ^ N ) ) = ( N x. ( log ` A ) ) ) $=
    ( crp wcel cz wa clog cfv cmul co ce cexp cc wceq relogcl recnd efexp sylan
    reeflog cr oveq1d adantr eqtrd fveq2d zre remulcl syl2anr relogef eqtr3d
    syl ) ACDZBEDZFZBAGHZIJZKHZGHZABLJZGHUOUMUPURGUMUPUNKHZBLJZURUKUNMDULUPUTNU
    KUNAOZPUNBQRUKUTURNULUKUSABLASUAUBUCUDUMUOTDZUQUONULBTDUNTDVBUKBUEVABUNUFUG
    UOUHUJUI $.

  $( Real part of a logarithm.  (Contributed by Mario Carneiro,
     15-Sep-2014.) $)
  relog $p |- ( ( A e. CC /\ A =/= 0 ) ->
                  ( Re ` ( log ` A ) ) = ( log ` ( abs ` A ) ) ) $=
    ( cc wcel cc0 wne wa clog cfv cre ce cabs cr wceq logcl recld relogef absef
    syl fveq2d eqtr3d eflog ) ABCADEFZAGHZIHZJHZGHZUDAKHZGHUBUDLCUFUDMUBUCANZOU
    DPRUBUEUGGUBUCJHZKHZUEUGUBUCBCUJUEMUHUCQRUBUIAKAUASTST $.

  $( The natural logarithm function on positive reals determines an isomorphism
     from the positive reals onto the reals.  (Contributed by Steve Rodriguez,
     25-Nov-2007.) $)
  relogiso $p |- ( log |` RR+ ) Isom < , < ( RR+ , RR ) $=
    ( crp cr clog cres wiso ce ccnv reefiso isocnv ax-mp wceq wb dfrelog isoeq1
    clt mpbir ) ABOOCADZEZABOOFBDZGZEZBAOOSEUAHBAOOSIJQTKRUALMABOOTQNJP $.

  ${
    reloggim.1 $e |- P = ( ( mulGrp ` CCfld ) |`s RR+ ) $.
    $( The natural logarithm is a group isomorphism from the group of positive
       reals under multiplication to the group of reals under addition.
       (Contributed by Mario Carneiro, 21-Jun-2015.)  (Revised by Thierry
       Arnoux, 30-Jun-2019.) $)
    reloggim $p |- ( log |` RR+ ) e. ( P GrpIso RRfld ) $=
      ( clog cres ce cr ccnv crefld cgim co dfrelog wcel reefgim gimcnv eqeltri
      crp ax-mp ) CPDEFDZGZAHIJZKRHAIJLSTLABMHARNQO $.
  $}

  ${
    $d n x y A $.  $d n y B $.  $d k n N $.
    $( The natural logarithm function on positive reals is strictly monotonic.
       (Contributed by Steve Rodriguez, 25-Nov-2007.) $)
    logltb $p |- ( ( A e. RR+ /\ B e. RR+ ) ->
                    ( A < B <-> ( log ` A ) < ( log ` B ) ) ) $=
      ( vx vy crp wcel wa clt wbr clog cres cv wb wral wceq fveq2 bibi12d fvres
      cfv cr wf1o wiso relogiso df-isom simpri breq1 breq1d breq2 breq2d rspc2v
      mpbi mpi breqan12d bitrd ) AEFZBEFZGZABHIZAJEKZSZBUSSZHIZAJSZBJSZHIUQCLZD
      LZHIZVEUSSZVFUSSZHIZMZDENCENZURVBMZETUSUAZVLETHHUSUBVNVLGUCCDETHHUSUDUKUE
      VKVMAVFHIZUTVIHIZMCDABEEVEAOZVGVOVJVPVEAVFHUFVQVHUTVIHVEAUSPUGQVFBOZVOURV
      PVBVFBAHUHVRVIVAUTHVFBUSPUIQUJULUOUPUTVCVAVDHAEJRBEJRUMUN $.

    $( The logarithm of a factorial can be expressed as a finite sum of logs.
       (Contributed by Mario Carneiro, 17-Apr-2015.) $)
    logfac $p |- ( N e. NN0 ->
      ( log ` ( ! ` N ) ) = sum_ k e. ( 1 ... N ) ( log ` k ) ) $=
      ( vn wcel cn cc0 wceq cfa cfv clog c1 cfz co cv cmul cid caddc crp adantl
      c0 cn0 wo csu elnn0 cseq wa rpmulcl cvv vex fvi ax-mp elfznn syl5eqel cuz
      nnrpd elnnuz biimpi relogmul fveq2i seqhomo facnn fveq2d eqidd cr relogcl
      a1i syl recnd fsumser 3eqtr4d log1 sum0 eqtr4i fveq2 syl6eq oveq2 sumeq1d
      fac0 fz10 3eqtr4a jaoi sylbi ) BUADBEDZBFGZUBBHIZJIZKBLMZANZJIZAUCZGZBUDW
      CWKWDWCBOPKUEIZJIBQJKUEIWFWJWCACOQRPJJKBWHRDZCNZRDUFZWHWNOMZRDWCWHWNUGSWC
      WHWGDZUFZWHPIZWHRWHUHDWSWHGAUIWHUHUJUKZWRWHWQWHEDWCWHBULSUOZUMWCBKUNIDBUP
      UQZWOWPJIWIWNJIQMGWCWHWNURSWSJIWIGWRWSWHJWTUSVFUTWCWEWLJBVAVBWCWIAJKBWRWI
      VCXBWRWIWRWMWIVDDXAWHVEVGVHVIVJWDKJIZTWIAUCZWFWJXCFXDVKWIAVLVMWDWEKJWDWEF
      HIKBFHVNVRVOVBWDWGTWIAWDWGKFLMTBFKLVPVSVOVQVTWAWB $.

    $( Solve an equation involving an exponential.  (Contributed by Mario
       Carneiro, 23-Apr-2015.) $)
    eflogeq $p |- ( ( A e. CC /\ B e. CC /\ B =/= 0 ) -> ( ( exp ` A ) = B <->
      E. n e. ZZ A = ( ( log ` B ) + ( ( _i x. ( 2 x. _pi ) ) x. n ) ) ) ) $=
      ( cc wcel cc0 wne ce cfv wceq clog ci c2 cpi cmul co caddc cz cdiv c1 w3a
      cv wrex cmin efcl efne0 logcld efsub mpdan eflog syl2anc oveq2d dividd wb
      3eqtrd subcl efeq1 syl ax-icn 2cn picn mulcli a1i ine0 2ne0 pire gt0ne0ii
      mpbid pipos mulne0i divcan2d pncan3 mpancom eqtr2d eqeq2d rspcev 3ad2ant1
      oveq2 fveq2 oveq1d rexbidv syl5ibcom wa logcl 3adant1 adantr adantl mulcl
      sylancr efadd ef2kpi oveqan12d simpl2 mulid1d eqeq1d syl5ibrcom rexlimdva
      zcn impbid ) ADEZBDEZBFGZUAZAHIZBJZABKIZLMNOPZOPZCUBZOPZQPZJZCRUCZXCAXDKI
      ZXJQPZJZCRUCZXEXMWTXAXQXBWTAXNUDPZXHSPZREZAXNXHXSOPZQPZJZXQWTXRHIZTJZXTWT
      YDXDXNHIZSPZXDXDSPTWTXNDEZYDYGJWTXDAUEZAUFZUGZAXNUHUIWTYFXDXDSWTXDDEXDFGY
      FXDJYIYJXDUJUKULWTXDYIYJUMUOWTXRDEZYEXTUNWTYHYLYKAXNUPUIZXRUQURVHWTYBXNXR
      QPZAWTYAXRXNQWTXRXHYMXHDEZWTLXGUSMNUTVAVBZVBZVCXHFGWTLXGUSYPVDMNUTVAVENVF
      VIVGVJVJVCVKULYHWTYNAJYKXNAVLVMVNXPYCCXSRXIXSJZXOYBAYRXJYAXNQXIXSXHOVRULV
      OVPUKVQXEXPXLCRXEXOXKAXEXNXFXJQXDBKVSVTVOWAWBXCXLXECRXCXIREZWCZXEXLXKHIZB
      JYTUUAXFHIZXJHIZOPZBTOPBYTXFDEZXJDEZUUAUUDJXCUUEYSXAXBUUEWTBWDWEWFYTYOXID
      EZUUFYQYSUUGXCXIWRWGXHXIWHWIXFXJWJUKXCYSUUBBUUCTOXAXBUUBBJWTBUJWEXIWKWLYT
      BWTXAXBYSWMWNUOXLXDUUABAXKHVSWOWPWQWS $.
  $}

  $( Natural logarithm preserves ` <_ ` .  (Contributed by Stefan O'Rear,
     19-Sep-2014.) $)
  logleb $p |- ( ( A e. RR+ /\ B e. RR+ ) ->
      ( A <_ B <-> ( log ` A ) <_ ( log ` B ) ) ) $=
    ( crp wcel wa clt wbr wn clog cfv cle wb logltb ancoms notbid cr rpre lenlt
    syl2an relogcl 3bitr4d ) ACDZBCDZEZBAFGZHZBIJZAIJZFGZHZABKGZUHUGKGZUDUEUIUC
    UBUEUILBAMNOUBAPDBPDUKUFLUCAQBQABRSUBUHPDUGPDULUJLUCATBTUHUGRSUA $.

  $( Closure of the logarithm function in the positive reals.  (Contributed by
     Mario Carneiro, 21-Sep-2014.) $)
  rplogcl $p |- ( ( A e. RR /\ 1 < A ) -> ( log ` A ) e. RR+ ) $=
    ( cr wcel c1 clt wbr wa clog cfv crp simpl 0red 1red 0lt1 simpr lttrd elrpd
    cc0 a1i relogcl syl log1 wb 1rp logltb sylancr mpbid syl5eqbrr ) ABCZDAEFZG
    ZAHIZUKAJCZULBCUKAUIUJKZUKRDAUKLUKMUNRDEFUKNSUIUJOZPQZATUAUKRDHIZULEUBUKUJU
    QULEFZUOUKDJCUMUJURUCUDUPDAUEUFUGUHQ $.

  $( The logarithm of a number greater than 1 is nonnegative.  (Contributed by
     Mario Carneiro, 29-May-2016.) $)
  logge0 $p |- ( ( A e. RR /\ 1 <_ A ) -> 0 <_ ( log ` A ) ) $=
    ( cr wcel c1 cle wbr wa cc0 clog cfv log1 simpr crp wb rpgecl mp3an1 logleb
    1rp sylancr mpbid syl5eqbrr ) ABCZDAEFZGZHDIJZAIJZEKUDUCUEUFEFZUBUCLUDDMCZA
    MCZUCUGNRUHUBUCUIRDAOPDAQSTUA $.

  $( The natural logarithm distributes under conjugation away from the branch
     cut.  (Contributed by Mario Carneiro, 25-Feb-2015.) $)
  logcj $p |- ( ( A e. CC /\ ( Im ` A ) =/= 0 ) ->
    ( log ` ( * ` A ) ) = ( * ` ( log ` A ) ) ) $=
    ( cc wcel cim cfv cc0 wne ccj clog wceq sylan2 wb adantr cpi clt wbr cle cr
    cneg pire wa fveq2 im0 syl6eq necon3i logcl efcj syl eflog fveq2d eqtrd crn
    cjcl simpr cjne0 mpbid cjcld crp rpre renegcld negneg eleq1d syl5ib lognegb
    ce reim0b 3imtr3d necon3d mpd necomd imcld a1i logimcl simprd leltned ltneg
    mpbird sylancl imcjd breqtrrd wi renegcli sylancr lenegcon1 eqbrtrd ellogrn
    simpld ltle syl3anbrc logeftb syl3anc ) ABCZADEZFGZUAZAHEZIEAIEZHEZJZWRVEEZ
    WPJZWOWTWQVEEZHEZWPWOWQBCZWTXCJWNWLAFGZXDAFWMFAFJWMFDEFAFDUBUCUDUEZAUFKZWQU
    GUHWOXBAHWNWLXEXBAJXFAUIKUJUKWOWPBCZWPFGZWRIULCZWSXALWLXHWNAUMMWOXEXIWOWNXE
    WLWNUNZXFUHWLXEXILWNAUOMUPWOWRBCNSZWRDEZOPXMNQPXJWOWQXGUQWOXLWQDEZSZXMOWOXN
    NOPZXLXOOPZWOXPNXNGWOXNNWOWNXNNGXKWOXNNWMFWOASZURCZARCZXNNJZWMFJZXSXRSZRCWO
    XTXSXRXRUSUTWOYCARWLYCAJWNAVAMVBVCWNWLXEXSYALXFAVDKWLXTYBLWNAVFMVGVHVIVJWOX
    NNWOWQXGVKZNRCZWOTVLWOXLXNOPZXNNQPZWNWLXEYFYGUAXFAVMKZVNVOVQWOXNRCZYEXPXQLY
    DTXNNVPVRUPWOWQXGVSZVTWOXMXONQYJWOXLXNQPZXONQPZWOYFYKWOYFYGYHWGWOXLRCYIYFYK
    WANTWBYDXLXNWHWCVIWOYEYIYKYLLTYDNXNWDWCUPWEWRWFWIWPWRWJWKVQ $.

  $( The exponential of the "arg" function ` Im o. log ` .  (Contributed by
     Mario Carneiro, 25-Feb-2015.) $)
  efiarg $p |- ( ( A e. CC /\ A =/= 0 ) ->
    ( exp ` ( _i x. ( Im ` ( log ` A ) ) ) ) = ( A / ( abs ` A ) ) ) $=
    ( cc wcel cc0 wne wa clog cfv cre cmin co ce cdiv ci cim wceq recnd syl2anc
    fveq2d eflog cmul logcl recld efsub caddc replimd eqcomd ax-icn imcld mulcl
    cabs sylancr subaddd mpbird relog abscl adantr absrpcl rpne0d eqtrd oveq12d
    cr 3eqtr3d ) ABCZADEZFZAGHZVGIHZJKZLHZVGLHZVHLHZMKZNVGOHZUAKZLHAAUKHZMKVFVG
    BCVHBCVJVMPAUBZVFVHVFVGVQUCQZVGVHUDRVFVIVOLVFVIVOPVHVOUEKZVGPVFVGVSVFVGVQUF
    UGVFVGVHVOVQVRVFNBCVNBCVOBCUHVFVNVFVGVQUIQNVNUJULUMUNSVFVKAVLVPMATVFVLVPGHZ
    LHZVPVFVHVTLAUOSVFVPBCVPDEWAVPPVFVPVDVPVBCVEAUPUQQVFVPAURUSVPTRUTVAVC $.

  ${
    cosargd.1 $e |- ( ph -> X e. CC ) $.
    cosargd.2 $e |- ( ph -> X =/= 0 ) $.
    $( The cosine of the argument is the quotient of the real part and the
       absolute value.  Compare to ~ efiarg .  (Contributed by David Moews,
       28-Feb-2017.) $)
    cosargd $p |- ( ph -> ( cos ` ( Im ` ( log ` X ) ) ) =
                          ( ( Re ` X ) / ( abs ` X ) ) ) $=
      ( ccj cfv caddc co cdiv c2 recnd cc0 a1i ci cmul ce cc wcel wceq syl cabs
      clog cim ccos cjcld addcld abscld 2cnd absne0d 2ne0 divdiv32d cneg logcld
      cre wne imcld cosval efiarg syl2anc ax-icn mulcld efcj cjmuld cji oveq12d
      cjred fveq2d 3eqtr3d cjdivd oveq2d 3eqtrd divdird eqtr4d oveq1d 3eqtr4d
      eqtrd reval ) ABBEFZGHZBUAFZIHZJIHZVSJIHZVTIHBUBFZUCFZUDFZBUNFZVTIHAVSVTJ
      ABVRCABCUEZUFAVTABCUGZKZAUHABCDUIZJLUOAUJMUKAWFNWEOHZPFZNULZWEOHZPFZGHZJI
      HZWBAWEQRWFWRSAWEAWDABCDUMUPZKZWEUQTAWQWAJIAWQBVTIHZVRVTIHZGHWAAWMXAWPXBG
      ABQRZBLUOWMXASCDBURUSZAWPXAEFZVRVTEFZIHXBAWLEFZPFZWMEFZWPXEAWLQRXHXISANWE
      NQRAUTMZWTVAWLVBTAXGWOPAXGNEFZWEEFZOHWOANWEXJWTVCAXKWNXLWEOXKWNSAVDMAWEWS
      VFVEVPVGAWMXAEXDVGVHABVTCWJWKVIAXFVTVRIAVTWIVFVJVKVEABVRVTCWHWJWKVLVMVNVP
      AWGWCVTIAXCWGWCSCBVQTVNVO $.

    $( The cosine of the argument is zero precisely on the imaginary axis.
       (Contributed by David Moews, 28-Feb-2017.) $)
    cosarg0d $p |- ( ph -> ( ( cos ` ( Im ` ( log ` X ) ) ) = 0 <->
                           ( Re ` X ) = 0 ) ) $=
      ( clog cfv cim ccos cc0 wceq cre cabs cdiv co cosargd eqeq1d recld abscld
      recnd absne0d diveq0ad bitrd ) ABEFGFHFZIJBKFZBLFZMNZIJUDIJAUCUFIABCDOPAU
      DUEAUDABCQSAUEABCRSABCDTUAUB $.
  $}

  $( Closure of the argument of a complex number with positive real part.
     (Contributed by Mario Carneiro, 25-Feb-2015.) $)
  argregt0 $p |- ( ( A e. CC /\ 0 < ( Re ` A ) ) ->
    ( Im ` ( log ` A ) ) e. ( -u ( _pi / 2 ) (,) ( _pi / 2 ) ) ) $=
    ( wcel cc0 cre cfv clt wbr wa cr cpi wceq syl syldan ccos cmul cle halfpire
    co wb pire cc clog cim c2 cdiv cneg cioo wne recl gt0ne0 sylan fveq2 syl6eq
    re0 necon3i logcl imcld cabs coshalfpi ci ce simpr abscl adantr recnd simpl
    mul01d crp absrpcl rpne0d divcld remul2d divcan2d fveq2d eqtr3d 3brtr4d 0re
    a1i ltmul2d mpbird efiarg breqtrrd recosval cosneg eqeq1d syl5ibrcom absord
    recld mpjaod syl5eqbr cicc absge0d logimcl simpld renegcli ltle sylancr mpd
    wi simprd absle sylancl mpbir2and elicc2i syl3anbrc rphalfcl rpge0 rphalflt
    pirp mp2b ax-mp ltleii mpbir3an cosord abslt mpbid cxr rexri elioo2 mp2an
    w3a ) AUABZCADEZFGZHZAUBEZUCEZIBZJUDUERZUFZYGFGZYGYIFGZYGYJYIUGRBZYEYFYBYDA
    CUHZYFUABYEYCCUHZYNYBYCIBYDYOAUIYCUJUKACYCCACKYCCDECACDULUNUMUOLZAUPMUQZYEY
    KYLYEYGUREZYIFGZYKYLHZYEYSYINEZYRNEZFGZYEUUACUUBFUSYECYGNEZUUBFYECUTYGORVAE
    ZDEZUUDFYECAAUREZUERZDEZUUFFYECUUIFGUUGCORZUUGUUIORZFGYECYCUUJUUKFYBYDVBYEU
    UGYEUUGYBUUGIBYDAVCVDZVEZVGYEUUGUUHORZDEUUKYCYEUUGUUHUULYEAUUGYBYDVFZUUMYEU
    UGYBYDYNUUGVHBYPAVIMZVJZVKZVLYEUUNADYEAUUGUUOUUMUUQVMVNVOVPYECUUIUUGCIBYEVQ
    VRYEUUHUURWHUUPVSVTYEUUEUUHDYBYDYNUUEUUHKYPAWAMVNWBYEYHUUDUUFKYQYGWCLWBYEYR
    YGKZUUBUUDKZYRYGUFZKZUUSUUTWSYEYRYGNULVRYEUUTUVBUVANEZUUDKZYEYGUABZUVDYEYGY
    QVEZYGWDLUVBUUBUVCUUDYRUVANULWEWFYEYGYQWGWIWBWJYEYRCJWKRZBZYIUVGBZYSUUCSYEY
    RIBZCYRPGYRJPGZUVHYEUVEUVJUVFYGVCLYEYGUVFWLYEUVKJUFZYGPGZYGJPGZYEUVLYGFGZUV
    MYEUVOUVNYBYDYNUVOUVNHYPAWMMZWNYEUVLIBYHUVOUVMWSJTWOYQUVLYGWPWQWRYEUVOUVNUV
    PWTYEYHJIBUVKUVMUVNHSYQTYGJXAXBXCCJYRVQTXDXEUVIYIIBZCYIPGZYIJPGQJVHBZYIVHBU
    VRXIJXFYIXGXJYIJQTUVSYIJFGXIJXHXKXLCJYIVQTXDXMYRYIXNXBVTYEYHUVQYSYTSYQQYGYI
    XOXBXPZWNYEYKYLUVTWTYJXQBYIXQBYMYHYKYLYASYJYIQWOXRYIQXRYJYIYGXSXTXE $.

  $( Closure of the argument of a complex number with nonnegative real part.
     (Contributed by Mario Carneiro, 2-Apr-2015.) $)
  argrege0 $p |- ( ( A e. CC /\ A =/= 0 /\ 0 <_ ( Re ` A ) ) ->
    ( Im ` ( log ` A ) ) e. ( -u ( _pi / 2 ) [,] ( _pi / 2 ) ) ) $=
    ( cc wcel cc0 cre cfv cle wbr cr cpi co 3adant3 ccos cmul 0re wceq halfpire
    clt wb pire wne w3a clog cim c2 cdiv cneg cicc logcl imcld cabs wa ci simp3
    simp1 abscld recnd mul01d crp absrpcl rpne0d divcld remul2d divcan2d fveq2d
    ce eqtr3d 3brtr4d a1i recld lemul2d mpbird efiarg breqtrrd recosval wn pirp
    rphalfcl rpge0 mp2b rphalflt ltleii elicc2i mpbir3an absge0d logimcl simpld
    syl ax-mp wi renegcli ltle sylancr simprd absle sylancl mpbir2and syl3anbrc
    cosord fveq2 cosneg eqeq1d syl5ibrcom absord mpjaod coshalfpi breq12d bitrd
    mpd notbid lenlt recoscld 3bitr4d mpbid ) ABCZADUAZDAEFZGHZUBZAUCFZUDFZICZJ
    UEUFKZUGZYAGHZYAYCGHZYAYDYCUHKCXSXTXOXPXTBCXRAUILUJZXSYEYFXSYAUKFZYCGHZYEYF
    ULZXSYIDYAMFZGHZXSDUMYANKVFFZEFZYKGXSDAAUKFZUFKZEFZYNGXSDYQGHYODNKZYOYQNKZG
    HXSDXQYRYSGXOXPXRUNXSYOXSYOXSAXOXPXRUOZUPZUQZURXSYOYPNKZEFYSXQXSYOYPUUAXSAY
    OYTUUBXSYOXOXPYOUSCXRAUTLZVAZVBZVCXSUUCAEXSAYOYTUUBUUEVDVEVGVHXSDYQYODICZXS
    OVIXSYPUUFVJUUDVKVLXSYMYPEXOXPYMYPPXRAVMLVEVNXSYBYKYNPYGYAVOWHVNXSYCYHRHZVP
    ZYKDRHZVPZYIYLXSUUHUUJXSUUHYHMFZYCMFZRHZUUJXSYCDJUHKZCZYHUUOCZUUHUUNSUUPYCI
    CZDYCGHZYCJGHQJUSCZYCUSCUUSVQJVRYCVSVTYCJQTUUTYCJRHVQJWAWIWBDJYCOTWCWDXSYHI
    CZDYHGHYHJGHZUUQXSYAXSYAYGUQZUPZXSYAUVCWEXSUVBJUGZYAGHZYAJGHZXSUVEYARHZUVFX
    SUVHUVGXOXPUVHUVGULXRAWFLZWGXSUVEICYBUVHUVFWJJTWKYGUVEYAWLWMXIXSUVHUVGUVIWN
    XSYBJICUVBUVFUVGULSYGTYAJWOWPWQDJYHOTWCWRYCYHWSWMXSUULYKUUMDRXSYHYAPZUULYKP
    ZYHYAUGZPZUVJUVKWJXSYHYAMWTVIXSUVKUVMUVLMFZYKPZXSYABCUVOUVCYAXAWHUVMUULUVNY
    KYHUVLMWTXBXCXSYAYGXDXEUUMDPXSXFVIXGXHXJXSUVAUURYIUUISUVDQYHYCXKWPXSUUGYKIC
    YLUUKSOXSYAYGXLDYKXKWMXMVLXSYBUURYIYJSYGQYAYCWOWPXNZWGXSYEYFUVPWNYDYCYAYCQW
    KQWCWR $.

  $( Closure of the argument of a complex number with positive imaginary part.
     (Contributed by Mario Carneiro, 25-Feb-2015.) $)
  argimgt0 $p |- ( ( A e. CC /\ 0 < ( Im ` A ) ) ->
    ( Im ` ( log ` A ) ) e. ( 0 (,) _pi ) ) $=
    ( wcel cc0 cim cfv clt wbr cr cpi wne wceq syl syldan cneg cmul adantr pire
    co cle wb cc wa clog cioo gt0ne0 sylan fveq2 im0 syl6eq necon3i logcl imcld
    imcl csin ci ce cabs cdiv simpr abscl recnd mul01d simpl crp absrpcl rpne0d
    divcld immul2d divcan2d fveq2d eqtr3d 3brtr4d 0re a1i ltmul2d mpbird efiarg
    breqtrrd resinval resincld lt0neg2d mpbid caddc cicc readdcl sylancl df-neg
    wn cmin logimcl simpld wi renegcli ltle sylancr syl5eqbrr lesubaddd leadd1d
    mpd biimpa picn addid2i syl6breq elicc2i syl3anbrc sinq12ge0 sinppi breqtrd
    ex con3d renegcld ltnle 3imtr4d negneg eleq1d syl5ib lognegb reim0b 3imtr3d
    rpre necon3d necomd simprd leltned cxr w3a 0xr rexri elioo2 mp2an ) AUABZCA
    DEZFGZUBZAUCEZDEZHBZCYPFGZYPIFGZYPCIUDRBZYNYOYKYMACJZYOUABYNYLCJZUUAYKYLHBY
    MUUBAUMYLUEUFZACYLCACKYLCDECACDUGUHUIUJLZAUKMULZYNYPUNEZNZCFGZYRYNCUUFFGUUH
    YNCUOYPORUPEZDEZUUFFYNCAAUQEZURRZDEZUUJFYNCUUMFGUUKCORZUUKUUMORZFGYNCYLUUNU
    UOFYKYMUSYNUUKYNUUKYKUUKHBYMAUTPZVAZVBYNUUKUULORZDEUUOYLYNUUKUULUUPYNAUUKYK
    YMVCZUUQYNUUKYKYMUUAUUKVDBUUDAVEMZVFZVGZVHYNUURADYNAUUKUUSUUQUVAVIVJVKVLYNC
    UUMUUKCHBZYNVMVNZYNUULUVBULUUTVOVPYNUUIUULDYKYMUUAUUIUULKUUDAVQMVJVRYNYQUUF
    UUJKUUEYPVSLVRYNUUFYNYPUUEVTZWAWBYNCUUGSGZWHZYPCSGZWHZUUHYRYNUVHUVFYNUVHUVF
    YNUVHUBZCYPIWCRZUNEZUUGSUVJUVKCIWDRBZCUVLSGUVJUVKHBZCUVKSGZUVKISGUVMYNUVNUV
    HYNYQIHBZUVNUUEQYPIWEWFPYNUVOUVHYNCIWIRZYPSGUVOYNUVQINZYPSIWGYNUVRYPFGZUVRY
    PSGZYNUVSYPISGZYKYMUUAUVSUWAUBUUDAWJMZWKYNUVRHBYQUVSUVTWLIQWMUUEUVRYPWNWOWS
    WPYNCIYPUVDUVPYNQVNZUUEWQWBPUVJUVKCIWCRZISYNUVHUVKUWDSGYNYPCIUUEUVDUWCWRWTI
    XAXBXCCIUVKVMQXDXEUVKXFLYNUVLUUGKZUVHYNYPUABUWEYNYPUUEVAYPXGLPXHXIXJYNUUGHB
    UVCUUHUVGTYNUUFUVEXKVMUUGCXLWFYNUVCYQYRUVITVMUUECYPXLWOXMWSYNYSIYPJYNYPIYNU
    UBYPIJUUCYNYPIYLCYNANZVDBZAHBZYPIKZYLCKZUWGUWFNZHBYNUWHUWGUWFUWFXTXKYNUWKAH
    YKUWKAKYMAXNPXOXPYKYMUUAUWGUWITUUDAXQMYKUWHUWJTYMAXRPXSYAWSYBYNYPIUUEUWCYNU
    VSUWAUWBYCYDVPCYEBIYEBYTYQYRYSYFTYGIQYHCIYPYIYJXE $.

  $( Closure of the argument of a complex number with negative imaginary part.
     (Contributed by Mario Carneiro, 25-Feb-2015.) $)
  argimlt0 $p |- ( ( A e. CC /\ ( Im ` A ) < 0 ) ->
    ( Im ` ( log ` A ) ) e. ( -u _pi (,) 0 ) ) $=
    ( cc wcel cim cfv cc0 clt wbr wa clog cr cpi cneg cioo co wne syldan adantr
    wceq syl simpr lt0ne0d fveq2 im0 syl6eq necon3i logcl imcld ccj logcj imcjd
    fveq2d eqtrd cjcl imcl lt0neg1d mpbid imcj breqtrrd argimgt0 syl2anc simprd
    eliooord eqbrtrrd pire ltnegcon1 sylancl simpld breqtrd mpbird cxr renegcli
    wb w3a rexri 0xr elioo2 mp2an syl3anbrc ) ABCZADEZFGHZIZAJEZDEZKCZLMZWEGHZW
    EFGHZWEWGFNOCZWCWDVTWBAFPZWDBCWCWAFPZWKWCWAVTWBUAZUBZAFWAFAFSWAFDEFAFDUCUDU
    EUFTAUGQZUHZWCWEMZLGHZWHWCAUIEZJEZDEZWQLGWCXAWDUIEZDEWQWCWTXBDVTWBWLWTXBSWN
    AUJQULWCWDWOUKUMZWCFXAGHZXALGHZWCXAFLNOCZXDXEIWCWSBCZFWSDEZGHXFVTXGWBAUNRWC
    FWAMZXHGWCWBFXIGHWMWCWAVTWAKCWBAUORUPUQVTXHXISWBAURRUSWSUTVAXAFLVCTZVBVDWCW
    FLKCWRWHVMWPVEWELVFVGUQWCWIFWQGHWCFXAWQGWCXDXEXJVHXCVIWCWEWPUPVJWGVKCFVKCWJ
    WFWHWIVNVMWGLVEVLVOVPWGFWEVQVRVS $.

  $( Multiplying a number by ` _i ` increases the logarithm of the number by
     ` _i _pi / 2 ` .  (Contributed by Mario Carneiro, 4-Apr-2015.) $)
  logimul $p |- ( ( A e. CC /\ A =/= 0 /\ 0 <_ ( Re ` A ) ) ->
    ( log ` ( _i x. A ) ) = ( ( log ` A ) + ( _i x. ( _pi / 2 ) ) ) ) $=
    ( cc wcel cfv cle wbr clog ci cpi co cmul caddc ce 3adant3 halfpire sylancl
    wceq a1i clt cr cc0 wne cre w3a c2 logcl ax-icn recni mulcli efadd efhalfpi
    cdiv eflog oveq12d simp1 mulcom 3eqtrd fveq2d crn cneg cim addcl pire imcld
    renegcli readdcl logimcl simpld crp pirp rphalfcl ax-mp ltaddrp lttrd imadd
    wa reim rere eqtr3i oveq2i breqtrrd cmin cicc argrege0 elicc2i pidiv2halves
    syl6eq simp3bi syl subaddrii syl6breqr wb leaddsub syl3anc mpbird syl3anbrc
    eqbrtrd ellogrn logef eqtr3d ) ABCZAUAUBZUAAUCDEFZUDZAGDZHIUEULJZKJZLJZMDZG
    DZHAKJZGDXHXDXIXKGXDXIXEMDZXGMDZKJZAHKJZXKXDXEBCZXGBCZXIXNQXAXBXPXCAUFNZHXF
    UGXFOUHZUIZXEXGUJPXDXLAXMHKXAXBXLAQXCAUMNXMHQXDUKRUNXDXAHBCXOXKQXAXBXCUOUGA
    HUPPUQURXDXHGUSCZXJXHQXDXHBCZIUTZXHVADZSFYDIEFYAXDXPXQYBXRXTXEXGVBPXDYCXEVA
    DZXFLJZYDSXDYCYEYFYCTCXDIVCVERXDXEXRVDZXDYETCZXFTCZYFTCYGOYEXFVFPXDYCYESFZY
    EIEFZXAXBYJYKVPXCAVGNVHXDYHXFVICZYEYFSFYGIVICYLVJIVKVLYEXFVMPVNXDYDYEXGVADZ
    LJZYFXDXPXQYDYNQXRXTXEXGVOPYMXFYELXFUCDZYMXFXFBCYOYMQXSXFVQVLYIYOXFQOXFVRVL
    VSVTWGZWAXDYDYFIEYPXDYFIEFZYEIXFWBJZEFZXDYEXFYREXDYEXFUTZXFWCJCZYEXFEFZAWDU
    UAYHYTYEEFUUBYTXFYEXFOVEOWEWHWIIXFXFIVCUHXSXSWFWJWKXDYHYIITCZYQYSWLYGYIXDOR
    UUCXDVCRYEXFIWMWNWOWQXHWRWPXHWSWIWT $.

  $( The logarithm of the negative of a number with positive imaginary part is
     ` _i x. _pi ` less than the original.  (Compare ~ logneg .)  (Contributed
     by Mario Carneiro, 3-Apr-2015.) $)
  logneg2 $p |- ( ( A e. CC /\ 0 < ( Im ` A ) ) ->
    ( log ` -u A ) = ( ( log ` A ) - ( _i x. _pi ) ) ) $=
    ( cc wcel cc0 cim cfv clt wbr clog cpi co cmin cneg cdiv c1 wceq cr sylancl
    cle pire wa ci cmul ce wne imcl gt0ne0 sylan fveq2 im0 syl6eq necon3i logcl
    syl syldan ax-icn picn mulcli efsub eflog efipi a1i oveq12d ax-1ne0 divneg2
    ax-1cn mp3an23 div1 negeqd eqtr3d adantr 3eqtrd fveq2d crn subcl caddc cioo
    argimgt0 eliooord simpld wb renegcli ltaddpos2 mpbid recnd negsub imsub cre
    breqtrd reim ax-mp rere eqtr3i oveq2i breqtrrd resubcl pipos ltleii subge02
    0re mpbii logimcl simprd letrd eqbrtrd ellogrn syl3anbrc logef ) ABCZDAEFZG
    HZUAZAIFZUBJUCKZLKZUDFZIFZAMZIFXOXLXPXRIXLXPXMUDFZXNUDFZNKZAOMZNKZXRXLXMBCZ
    XNBCZXPYAPXIXKADUEZYDXLXJDUEZYFXIXJQCXKYGAUFXJUGUHADXJDADPXJDEFDADEUIUJUKUL
    UNZAUMUOZUBJUPUQURZXMXNUSRXLXSAXTYBNXIXKYFXSAPYHAUTUOXTYBPXLVAVBVCXIYCXRPXK
    XIAONKZMZYCXRXIOBCODUEYLYCPVFVDAOVEVGXIYKAAVHVIVJVKVLVMXLXOIVNCZXQXOPXLXOBC
    ZJMZXOEFZGHYPJSHYMXLYDYEYNYIYJXMXNVORXLYOXMEFZJLKZYPGXLYOYQYOVPKZYRGXLDYQGH
    ZYOYSGHZXLYTYQJGHZXLYQDJVQKCYTUUBUAAVRYQDJVSUNVTXLYQQCZYOQCYTUUAWAXLYDUUCYI
    XMUFUNZJTWBYQYOWCRWDXLYQBCJBCZYSYRPXLYQUUDWEUQYQJWFRWIXLYPYQXNEFZLKZYRXLYDY
    EYPUUGPYIYJXMXNWGRUUFJYQLJWHFZUUFJUUEUUHUUFPUQJWJWKJQCZUUHJPTJWLWKWMWNUKZWO
    XLYPYRJSUUJXLYRYQJXLUUCUUIYRQCUUDTYQJWPRUUDUUIXLTVBXLDJSHZYRYQSHZDJWTTWQWRX
    LUUCUUIUUKUULWAUUDTYQJWSRXAXLYOYQGHZYQJSHZXIXKYFUUMUUNUAYHAXBUOXCXDXEXOXFXG
    XOXHUNVJ $.

  $( Generalization of ~ relogmul to a complex left argument.  (Contributed by
     Mario Carneiro, 9-Jul-2017.) $)
  logmul2 $p |- ( ( A e. CC /\ A =/= 0 /\ B e. RR+ ) ->
                    ( log ` ( A x. B ) ) = ( ( log ` A ) + ( log ` B ) ) ) $=
    ( cc wcel cc0 wne crp w3a clog caddc co ce cmul wceq logcl 3adant3 3ad2ant3
    cfv cr syl2anc relogcl recnd efadd eflog reeflog oveq12d fveq2d crn logrncl
    eqtrd logrnaddcl logef syl eqtr3d ) ACDZAEFZBGDZHZAIRZBIRZJKZLRZIRZABMKZIRV
    AURVBVDIURVBUSLRZUTLRZMKZVDURUSCDZUTCDVBVGNUOUPVHUQAOPURUTUQUOUTSDZUPBUAQZU
    BUSUTUCTURVEAVFBMUOUPVEANUQAUDPUQUOVFBNUPBUEQUFUJUGURVAIUHZDZVCVANURUSVKDZV
    IVLUOUPVMUQAUIPVJUSUTUKTVAULUMUN $.

  $( Generalization of ~ relogdiv to a complex left argument.  (Contributed by
     Mario Carneiro, 8-Jul-2017.) $)
  logdiv2 $p |- ( ( A e. CC /\ A =/= 0 /\ B e. RR+ ) ->
                    ( log ` ( A / B ) ) = ( ( log ` A ) - ( log ` B ) ) ) $=
    ( cc wcel cc0 wne crp w3a clog cfv cmin co cdiv wceq logcl 3adant3 3ad2ant3
    ce cr syl2anc relogcl recnd efsub eflog reeflog eqtrd fveq2d crn cneg caddc
    oveq12d negsubd logrncl renegcld logrnaddcl eqeltrrd logef syl eqtr3d ) ACD
    ZAEFZBGDZHZAIJZBIJZKLZRJZIJZABMLZIJVFVCVGVIIVCVGVDRJZVERJZMLZVIVCVDCDZVECDV
    GVLNUTVAVMVBAOPZVCVEVBUTVESDVABUAQZUBZVDVEUCTVCVJAVKBMUTVAVJANVBAUDPVBUTVKB
    NVABUEQUKUFUGVCVFIUHZDVHVFNVCVDVEUIZUJLZVFVQVCVDVEVNVPULVCVDVQDZVRSDVSVQDUT
    VAVTVBAUMPVCVEVOUNVDVRUOTUPVFUQURUS $.

  $( Bound on the magnitude of the complex logarithm function.  (Contributed by
     Mario Carneiro, 3-Jul-2017.) $)
  abslogle $p |- ( ( A e. CC /\ A =/= 0 ) ->
    ( abs ` ( log ` A ) ) <_ ( ( abs ` ( log ` ( abs ` A ) ) ) + _pi ) ) $=
    ( cc wcel cc0 wne clog cfv cabs caddc co cpi abscld recnd readdcld a1i cmul
    cr ci fveq2d c1 cim logcl crp absrpcl relogcl syl imcld pire cre cle ax-icn
    recld mulcld abstrid replimd relog eqcomd absmuld absi oveq1i syl5eq eqtr2d
    wa mulid2d oveq12d 3brtr4d abslogimle leadd2dd letrd ) ABCADEVCZAFGZHGZAHGZ
    FGZHGZVKUAGZHGZIJZVOKIJVJVKAUBZLVJVOVQVJVNVJVNVJVMUCCVNQCAUDVMUEUFMLZVJVPVJ
    VPVJVKVSUGMZLZNVJVOKVTKQCVJUHOZNVJVKUIGZRVPPJZIJZHGWDHGZWEHGZIJVLVRUJVJWDWE
    VJWDVJVKVSULMVJRVPRBCVJUKOZWAUMUNVJVKWFHVJVKVSUOSVJVOWGVQWHIVJVNWDHVJWDVNAU
    PUQSVJWHRHGZVQPJZVQVJRVPWIWAURVJWKTVQPJVQWJTVQPUSUTVJVQVJVQWBMVDVAVBVEVFVJV
    QKVOWBWCVTAVGVHVI $.

  $( The basic relation between the "arg" function ` Im o. log ` and the
     arctangent.  (Contributed by Mario Carneiro, 25-Feb-2015.) $)
  tanarg $p |- ( ( A e. CC /\ ( Re ` A ) =/= 0 ) ->
    ( tan ` ( Im ` ( log ` A ) ) ) = ( ( Im ` A ) / ( Re ` A ) ) ) $=
    ( cc wcel cfv cc0 wne c2 ci cmul co cmin caddc cdiv cexp wceq mulcl sylancr
    ax-icn oveq12d oveq2d cre wa clog cim ctan ce cabs fveq2 re0 syl6eq necon3i
    c1 logcl sylan2 imcld recnd sqcl adantr cr abscl sqcld absrpcl rpne0d sqne0
    crp wb mpbird divdird cz 2z efexp sylancl efiarg oveq1d simpl sqdivd dividd
    syl 3eqtrrd eqtr2d addcld cneg a1i 2cn recl imcl mulcld mul12d eqtrd adddid
    eqeltrd mulassd sqvald mulcom mul32d 3eqtr3d 3eqtr2d oveq1i syl5eqr mulcomd
    mulm1d negsubd subcld add4d replim binom2 syl2anc sqmul i2 3eqtrd absvalsq2
    ixi addsubassd 2timesd npcand 3eqtr4d subdird simpr eleq1 syl5ibrcom syl6an
    rimul necon3d mpd eqnetrd subeq0ad 2ne0 mulcand bitrd necon3bid oveq2 it0e0
    mulne0d divne0d tanval3 divsubdird divassd eqtr4d divcan7d pnpcand subsub4d
    divcan5d ) ABCZAUADZEFZUBZAUCDZUDDZUEDZGHUUHIJZIJUFDZULKJZHUUKULLJZIJZMJZAG
    NJZAUGDZGNJZKJZUURMJZHUUPUURLJZIJZUURMJZMJZAUDDZUUDMJZUUFUUHBCZUUMEFUUIUUOO
    UUFUUHUUFUUGUUEUUCAEFZUUGBCAEUUDEAEOUUDEUADEAEUAUHUIUJUKZAUMUNUOUPZUUFUUMUV
    AUURMJZEUUFUVKUUPUURMJZUURUURMJZLJUUMUUFUUPUURUURUUCUUPBCUUEAUQURZUUFUUQUUF
    UUQUUCUUQUSCUUEAUTURUPZVAZUVPUUFUUREFZUUQEFZUUFUUQUUEUUCUVHUUQVECUVIAVBUNVC
    ZUUFUUQBCUVQUVRVFUVOUUQVDVRVGZVHUUFUVLUUKUVMULLUUFUUKUUJUFDZGNJZAUUQMJZGNJU
    VLUUFUUJBCZGVICUUKUWBOUUFHBCZUVGUWDRUVJHUUHPQVJUUJGVKVLUUFUWAUWCGNUUEUUCUVH
    UWAUWCOUVIAVMUNVNUUFAUUQUUCUUEVOUVOUVSVPVSZUUFUURUVPUVTVQZSVTZUUFUVAUURUUFU
    UPUURUVNUVPWAZUVPUUFUVBEFUVAEFUUFUVBGUUDHIJZIJZGUVEIJZKJZUUDIJZEUUFHGUUDGNJ
    ZIJZHGUUDUVEIJZIJZIJZLJZIJZUWKUUDIJZUWLUUDIJZKJZUVBUWNUUFUXAHUWPIJZHUWSIJZL
    JUXBUXCWBZLJUXDUUFHUWPUWSUWEUUFRWCZUUFGBCZUWOBCZUWPBCWDUUFUUDUUFUUDUUCUUDUS
    CZUUEAWEURZUPZVAZGUWOPQUUFUWSGUUDHUVEIJZIJZIJZBUUFUWSGHUWQIJZIJZUXQUUFHGUWQ
    UXHUXIUUFWDWCZUUFUUDUVEUXMUUFUVEUUCUVEUSCZUUEAWFURZUPZWGWHZUUFUXRUXPGIUUFHU
    UDUVEUXHUXMUYCWHTZWIUUFUXIUXPBCUXQBCWDUUFUUDUXOUXMUUFUWEUVEBCZUXOBCZRUYCHUV
    EPQZWGGUXPPQZWKWJUUFUXBUXEUXGUXFLUUFUXBGUWJUUDIJZIJGHUWOIJZIJUXEUUFGUWJUUDU
    XTUUFUUDBCZUWEUWJBCZUXMRUUDHPVLZUXMWLUUFUYKUYJGIUUFUWOHIJZUUDUUDIJZHIJUYKUY
    JUUFUWOUYPHIUUFUUDUXMWMVNUUFUXJUWEUYOUYKOUXNRUWOHWNVLUUFUUDUUDHUXMUXMUXHWOW
    PTUUFGHUWOUXTUXHUXNWHWQUUFULWBZUXCIJZHHUXCIJZIJZUXGUXFUUFUYRHHIJZUXCIJUYTVU
    AUYQUXCIXLWRUUFHHUXCUXHUXHUUFUWLUUDUUFUXIUYFUWLBCWDUYCGUVEPQZUXMWGZWLWSUUFU
    XCVUCXAUUFUYSUWSHIUUFUXCUWRHIUUFUXCGUVEUUDIJZIJUWRUUFGUVEUUDUXTUYCUXMWLUUFV
    UDUWQGIUUFUVEUUDUYCUXMWTTWITTWPSUUFUXBUXCUUFUWKUUDUUFUXIUYMUWKBCWDUYNGUWJPQ
    ZUXMWGVUCXBWQUUFUVAUWTHIUUFUWOUXQUVEGNJZKJZLJZUWOVUFLJZLJUWOUWOLJZVUGVUFLJZ
    LJUVAUWTUUFUWOVUGUWOVUFUXNUUFUXQVUFUYIUUFUVEUYCVAZXCZUXNVULXDUUFUUPVUHUURVU
    ILUUFUUPUUDUXOLJZGNJZUWOUXQLJZVUFKJZVUHUUFAVUNGNUUCAVUNOUUEAXEURVNUUFVUOVUP
    UXOGNJZLJZVUPVUFWBZLJVUQUUFUYLUYGVUOVUSOUXMUYHUUDUXOXFXGUUFVURVUTVUPLUUFVUR
    UYQVUFIJZVUTUUFVURHGNJZVUFIJZVVAUUFUWEUYFVURVVCORUYCHUVEXHQVVBUYQVUFIXIWRUJ
    UUFVUFVULXAWITUUFVUPVUFUUFUWOUXQUXNUYIWAVULXBXJUUFUWOUXQVUFUXNUYIVULXMXJZUU
    CUURVUIOUUEAXKURZSUUFUWPVUJUWSVUKLUUFUWOUXNXNUUFUXSUXQUWSVUKUYEUYDUUFUXQVUF
    UYIVULXOXPSXPTUUFUWKUWLUUDVUEVUBUXMXQXPZUUFUWMUUDUUFUWKUWLVUEVUBXCZUXMUUFUW
    MEFUWJUVEFUUFUWJHUUDIJZUVEUUFUYLUWEUWJVVHOUXMRUUDHWNVLUUFUUEVVHUVEFUUCUUEXR
    ZUUFVVHUVEUUDEUUFUXKVVHUVEOZVVHUSCZUUDEOUXLUUFVVKVVJUYAUYBVVHUVEUSXSXTUUDYB
    YAYCYDYEUUFUWMEUWJUVEUUFUWMEOUWKUWLOUWJUVEOUUFUWKUWLVUEVUBYFUUFUWJUVEGUYNUY
    CUXTGEFUUFYGWCYHYIYJVGZVVIYMYEZUVAEUVBEUVAEOUVBHEIJEUVAEHIYKYLUJUKVRUVTYNYE
    UUHYOXGUUFUULUUTUUNUVCMUUFUUTUVLUVMKJUULUUFUUPUURUURUVNUVPUVPUVTYPUUFUVLUUK
    UVMULKUWFUWGSVTUUFUUNHUVKIJUVCUUFUUMUVKHIUWHTUUFHUVAUURUXHUWIUVPUVTYQYRSUUF
    UVDUUSUVBMJUWMUVEIJZUWNMJUVFUUFUUSUVBUURUUFUUPUURUVNUVPXCUUFUWEUVABCUVBBCRU
    WIHUVAPQUVPVVMUVTYSUUFUUSVVNUVBUWNMUUFUUSVUHVUIKJVUGVUFKJZVVNUUFUUPVUHUURVU
    IKVVDVVESUUFUWOVUGVUFUXNVUMVULYTUUFVVOUXQVUFVUFLJZKJUXQGVUFIJZKJZVVNUUFUXQV
    UFVUFUYIVULVULUUAUUFVVQVVPUXQKUUFVUFVULXNTUUFVVRUWKUVEIJZUWLUVEIJZKJVVNUUFU
    XQVVSVVQVVTKUUFVVSGUWJUVEIJZIJUXQUUFGUWJUVEUXTUYNUYCWLUUFVWAUXPGIUUFUUDHUVE
    UXMUXHUYCWLTVTUUFVVQGUVEUVEIJZIJVVTUUFVUFVWBGIUUFUVEUYCWMTUUFGUVEUVEUXTUYCU
    YCWLYRSUUFUWKUWLUVEVUEVUBUYCXQYRWQXJVVFSUUFUVEUUDUWMUYCUXMVVGVVIVVLUUBXJXJ
    $.

  $( The ` log x / x ` function is strictly decreasing on the reals greater
     than ` _e ` .  (Contributed by Mario Carneiro, 14-Mar-2014.) $)
  logdivlti $p |- ( ( ( A e. RR /\ B e. RR /\ _e <_ A ) /\ A < B )
                    -> ( ( log ` B ) / B ) < ( ( log ` A ) / A ) ) $=
    ( cr wcel ceu cle wbr clt wa cfv co cmul cmin c1 crp cc0 syl 1re recnd wb
    w3a clog cdiv simpl2 simpl3 wi simpl1 ere lelttr mp3an1 syl2anc mp2and epos
    simpr 0re lttr mp3an12 mpani mpd ltletr rpdivcld relogcl rerpdivcld resubcl
    elrpd sylancl remulcld ce wceq reeflog ax-1cn pncan3 sylancr eqtr4d mulid2d
    caddc eqbrtrd 1red ltmuldiv syl112anc mpbid efgt1p eflt mpbird mulid1d df-e
    cc difrp breqtrrd syl5eqbrr posdif lemul2 eqbrtrrd ltletrd relogdiv subdird
    efle 1cnd rpne0d div32d oveq12d eqtrd 3brtr3d ltsub1d ltdivmuld ) ACDZBCDZE
    AFGZUAZABHGZIZBUBJZBUCKAUBJZAUCKZHGXLBXNLKZHGZXKXPXLXMMKZXOXMMKZHGXKBAUCKZU
    BJZXSNMKZXMLKZXQXRHXKXTYAYBXKXSODZXTCDZXKBAXKBXFXGXHXJUDZXKEBHGZPBHGZXKXHXJ
    YFXFXGXHXJUEZXIXJUNZXKXFXGXHXJIYFUFZXFXGXHXJUGZYEECDZXFXGYJUHEABUIUJUKULXKP
    EHGZYFYGUMXKXGYMYFIYGUFZYEPCDZYLXGYNUOUHPEBUPUQQURUSVEZXKAYKXKXHPAHGZYHXKYM
    XHYQUMXKXFYMXHIYQUFZYKYOYLXFYRUOUHPEAUTUQQURUSZVEZVAZXSVBQZXKXSCDZNCDZYACDZ
    XKBAYEYTVCZRXSNVDVFZXKYAXMUUGXKAODZXMCDZYTAVBQZVGXKXTYAHGZXTVHJZYAVHJZHGZXK
    UULNYAVPKZUUMHXKUULXSUUOXKYCUULXSVIUUAXSVJQXKNWGDXSWGDUUOXSVIVKXKXSUUFSZNXS
    VLVMVNXKYAODZUUOUUMHGXKNXSHGZUUQXKNALKZBHGZUURXKUUSABHXKAXKAYKSZVOYIVQXKUUD
    XGXFYQUUTUURTXKVRZYEYKYSNBAVSVTWAZXKUUDUUCUURUUQTRUUFNXSWHVMWAYAWBQVQXKYDUU
    EUUKUUNTUUBUUGXTYAWCUKWDXKYANLKZYAYBFXKYAXKYAUUGSWEXKNXMFGZUVDYBFGZXKUVENVH
    JZXMVHJZFGZXKUVGEUVHFWFXKEAUVHFYHXKUUHUVHAVIYTAVJQWIWJXKUUDUUIUVEUVITRUUJNX
    MWQVMWDXKUUDUUIUUEPYAHGZUVEUVFTUVBUUJUUGXKUURUVJUVCXKUUDUUCUURUVJTRUUFNXSWK
    VMWANXMYAWLVTWAWMWNXKBODZUUHXTXQVIYPYTBAWOUKXKYBXSXMLKZNXMLKZMKXRXKXSNXMUUP
    XKWRXKXMUUJSZWPXKUVLXOUVMXMMXKBAXMXKBYESUVAUVNXKAYTWSWTXKXMUVNVOXAXBXCXKXLX
    OXMXKUVKXLCDYPBVBQZXKBXNYEXKXMAUUJYTVCZVGUUJXDWDXKXLXNBUVOUVPYPXEWD $.

  $( The ` log x / x ` function is strictly decreasing on the reals greater
     than ` _e ` .  (Contributed by Mario Carneiro, 14-Mar-2014.) $)
  logdivlt $p |- ( ( ( A e. RR /\ _e <_ A ) /\ ( B e. RR /\ _e <_ B ) ) ->
                   ( A < B <-> ( ( log ` B ) / B ) < ( ( log ` A ) / A ) ) ) $=
    ( cr wcel ceu cle wbr wa clt clog cfv cdiv co wi w3a logdivlti ex 3expa cc0
    an32s adantrr wo wn fveq2 id oveq12d eqcomd a1i ancoms orim12d con3d wb crp
    wceq simpl 0re ere ltletr mp3an12 mpani imp elrpd relogcl rerpdivcl mpancom
    epos syl axlttri syl2anr ad2ant2r 3imtr4d impbid ) ACDZEAFGZHZBCDZEBFGZHZHZ
    ABIGZBJKZBLMZAJKZALMZIGZVOVPVTWENZVQVMVPVNWFVMVPVNWFVMVPVNOVTWEABPQRTUAVSWB
    WDUNZWDWBIGZUBZUCZABUNZBAIGZUBZUCZWEVTVSWMWIVSWKWGWLWHWKWGNVSWKWDWBWKWCWAAB
    LABJUDWKUEUFUGUHVRVOWLWHNZVRVMWOVNVPVMVQWOVPVMVQWOVPVMVQOWLWHBAPQRTUAUIUJUK
    VRWBCDZWDCDZWEWJULVOVRBUMDZWPVRBVPVQUOVPVQSBIGZVPSEIGZVQWSVFSCDZECDZVPWTVQH
    WSNUPUQSEBURUSUTVAVBWACDWRWPBVCWABVDVEVGVOAUMDZWQVOAVMVNUOVMVNSAIGZVMWTVNXD
    VFXAXBVMWTVNHXDNUPUQSEAURUSUTVAVBWCCDXCWQAVCWCAVDVEVGWBWDVHVIVMVPVTWNULVNVQ
    ABVHVJVKVL $.

  $( The ` log x / x ` function is strictly decreasing on the reals greater
     than ` _e ` .  (Contributed by Mario Carneiro, 3-May-2016.) $)
  logdivle $p |- ( ( ( A e. RR /\ _e <_ A ) /\ ( B e. RR /\ _e <_ B ) ) ->
                 ( A <_ B <-> ( ( log ` B ) / B ) <_ ( ( log ` A ) / A ) ) ) $=
    ( cr wcel ceu cle wbr wa clt wn clog cfv cdiv co lenltd crp cc0 a1i ltletrd
    elrpd logdivlt ancoms notbid simpll simprl 0red ere epos simprr relogcl syl
    wb rerpdivcld simplr 3bitr4d ) ACDZEAFGZHZBCDZEBFGZHZHZBAIGZJAKLZAMNZBKLZBM
    NZIGZJABFGVGVEFGVBVCVHVAURVCVHULBAUAUBUCVBABUPUQVAUDZURUSUTUEZOVBVGVEVBVFBV
    BBPDVFCDVBBVJVBQEBVBUFZECDVBUGRZVJQEIGVBUHRZURUSUTUISTZBUJUKVNUMVBVDAVBAPDV
    DCDVBAVIVBQEAVKVLVIVMUPUQVAUNSTZAUJUKVOUMOUO $.

  ${
    relogcld.1 $e |- ( ph -> A e. RR+ ) $.
    $( Closure of the natural logarithm function.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    relogcld $p |- ( ph -> ( log ` A ) e. RR ) $=
      ( crp wcel clog cfv cr relogcl syl ) ABDEBFGHECBIJ $.

    $( Relationship between the natural logarithm function and the exponential
       function.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    reeflogd $p |- ( ph -> ( exp ` ( log ` A ) ) = A ) $=
      ( crp wcel clog cfv ce wceq reeflog syl ) ABDEBFGHGBICBJK $.

    relogmuld.2 $e |- ( ph -> B e. RR+ ) $.
    $( The natural logarithm of the product of two positive real numbers is the
       sum of natural logarithms.  Property 2 of [Cohen] p. 301, restricted to
       natural logarithms.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    relogmuld $p |- ( ph ->
                      ( log ` ( A x. B ) ) = ( ( log ` A ) + ( log ` B ) ) ) $=
      ( crp wcel cmul co clog cfv caddc wceq relogmul syl2anc ) ABFGCFGBCHIJKBJ
      KCJKLIMDEBCNO $.

    $( The natural logarithm of the quotient of two positive real numbers is
       the difference of natural logarithms.  Exercise 72(a) and Property 3 of
       [Cohen] p. 301, restricted to natural logarithms.  (Contributed by Mario
       Carneiro, 29-May-2016.) $)
    relogdivd $p |- ( ph ->
                      ( log ` ( A / B ) ) = ( ( log ` A ) - ( log ` B ) ) ) $=
      ( crp wcel cdiv co clog cfv cmin wceq relogdiv syl2anc ) ABFGCFGBCHIJKBJK
      CJKLIMDEBCNO $.

    $( Natural logarithm preserves ` <_ ` .  (Contributed by Mario Carneiro,
       29-May-2016.) $)
    logled $p |- ( ph -> ( A <_ B <-> ( log ` A ) <_ ( log ` B ) ) ) $=
      ( crp wcel cle wbr clog cfv wb logleb syl2anc ) ABFGCFGBCHIBJKCJKHILDEBCM
      N $.
  $}

  ${
    relogefd.1 $e |- ( ph -> A e. RR ) $.
    $( Relationship between the natural logarithm function and the exponential
       function.  (Contributed by Mario Carneiro, 29-May-2016.) $)
    relogefd $p |- ( ph -> ( log ` ( exp ` A ) ) = A ) $=
      ( cr wcel ce cfv clog wceq relogef syl ) ABDEBFGHGBICBJK $.

    ${
      rplogcld.2 $e |- ( ph -> 1 < A ) $.
      $( Closure of the logarithm function in the positive reals.  (Contributed
         by Mario Carneiro, 29-May-2016.) $)
      rplogcld $p |- ( ph -> ( log ` A ) e. RR+ ) $=
        ( cr wcel c1 clt wbr clog cfv crp rplogcl syl2anc ) ABEFGBHIBJKLFCDBMN
        $.
    $}

    ${
      logge0d.2 $e |- ( ph -> 1 <_ A ) $.
      $( The logarithm of a number greater than 1 is nonnegative.  (Contributed
         by Mario Carneiro, 29-May-2016.) $)
      logge0d $p |- ( ph -> 0 <_ ( log ` A ) ) $=
        ( cr wcel c1 cle wbr cc0 clog cfv logge0 syl2anc ) ABEFGBHIJBKLHICDBMN
        $.
    $}
  $}

  $( The logarithm of a number is nonnegative iff the number is greater than or
     equal to 1.  (Contributed by AV, 30-May-2020.) $)
  logge0b $p |- ( A e. RR+ -> ( 0 <_ ( log ` A ) <-> 1 <_ A ) ) $=
    ( crp wcel c1 cle wbr clog cfv cc0 1rp a1i logled wceq log1 breq1d bitr2d
    id ) ABCZDAEFDGHZAGHZEFITEFRDADBCRJKRQLRSITESIMRNKOP $.

  $( The logarithm of a number is positive iff the number is greater than 1.
     (Contributed by AV, 30-May-2020.) $)
  loggt0b $p |- ( A e. RR+ -> ( 0 < ( log ` A ) <-> 1 < A ) ) $=
    ( crp wcel clt wbr clog cfv cc0 1rp logltb mpan wceq log1 a1i breq1d bitr2d
    c1 wb ) ABCZQADEZQFGZAFGZDEZHUBDEQBCSTUCRIQAJKSUAHUBDUAHLSMNOP $.

  $( The logarithm of a number is less than or equal to 1 iff the number is
     less than or equal to Euler's constant.  (Contributed by AV,
     30-May-2020.) $)
  logle1b $p |- ( A e. RR+ -> ( ( log ` A ) <_ 1 <-> A <_ _e ) ) $=
    ( crp wcel ceu cle wbr clog cfv c1 epr a1i logled wceq loge breq2d bitr2d
    id ) ABCZADEFAGHZDGHZEFSIEFRADRQDBCRJKLRTISETIMRNKOP $.

  $( The logarithm of a number is less than 1 iff the number is less than
     Euler's constant.  (Contributed by AV, 30-May-2020.) $)
  loglt1b $p |- ( A e. RR+ -> ( ( log ` A ) < 1 <-> A < _e ) ) $=
    ( crp wcel ceu clt wbr clog cfv c1 wb epr logltb mpan2 wceq loge a1i breq2d
    bitr2d ) ABCZADEFZAGHZDGHZEFZUAIEFSDBCTUCJKADLMSUBIUAEUBINSOPQR $.

  ${
    $d c x y $.
    $( The inverse logarithm function converges to zero.  (Contributed by Mario
       Carneiro, 30-May-2016.) $)
    divlogrlim $p |- ( x e. ( 1 (,) +oo ) |-> ( 1 / ( log ` x ) ) ) ~~>r 0 $=
      ( vc vy c1 cpnf co cv cfv cdiv wbr clt wi wral crp wtru wcel rprecred a1i
      cr ad2antlr cioo clog cmpt crli cabs wrex wb cc elioore eliooord rplogcld
      cc0 simpld recnd rgen wss ioossre rlim0lt trud ce reefcld rpreccld rpge0d
      id absidd simpll simpr rpred ltled rpgecld reeflogd breqtrrd eflt syl2anc
      wa 1rp mpbird ltrec1d eqbrtrd ralrimiva wceq breq1 imbi1d ralbidv mprgbir
      ex rspcev ) ADEUAFZDAGZUBHZIFZUCULUDJZBGZWIKJZWKUEHZCGZKJZLZAWHMZBSUFZCNW
      LWTCNMUGOCBAWHWKWKUHPZAWHMOXAAWHWIWHPZWKXBWJXBWIWIDEUIZXBDWIKJZWIEKJWIDEU
      JUMZUKZQZUNUORWHSUPODEUQRURUSWPNPZDWPIFZUTHZSPXJWIKJZWQLZAWHMZWTXHXIXHWPX
      HVDQVAXHXLAWHXHXBVOZXKWQXNXKVOZWOWKWPKXOWKXBWKSPXHXKXGTXOWKXOWJXOWIXBWISP
      XHXKXCTZXBXDXHXKXETZUKVBVCVEXOWPWJXHXBXKVFZXBWJNPXHXKXFTZXOXIWJKJZXJWJUTH
      ZKJZXOXJWIYAKXNXKVGXOWIXOWIDXPDNPXOVPRZXODWIXODYCVHXPXQVIVJVKVLXOXISPWJSP
      XTYBUGXOWPXRQXOWJXSVHXIWJVMVNVQVRVSWFVTWSXMBXJSWMXJWAZWRXLAWHYDWNXKWQWMXJ
      WIKWBWCWDWGVNWE $.

    $( The logarithm function is not eventually bounded.  (Contributed by Mario
       Carneiro, 30-Apr-2016.)  (Proof shortened by Mario Carneiro,
       30-May-2016.) $)
    logno1 $p |- -. ( x e. RR+ |-> ( log ` x ) ) e. O(1) $=
      ( vy crp cv clog cfv cmpt co1 wcel c1 cpnf cioo co wa adantl a1i 1red clt
      wbr cxr cr elioore 1rp eliooord simpld ltled rpgecld ssrdv cbvmptv eleq1i
      ex fveq2 biimpi o1res2 wne csup wceq rexrd renepnfd ioopnfsup syl2anc cc0
      cdiv crli divlogrlim rplogcld rpcnd rpne0d rlimno1 pm2.65i ) ACADZEFZGZHI
      ZBJKLMZBDZEFZGHIVNBVOCVQVNBVOCVNVPVOIZVPCIVNVRNZVPJVRVPUAIVNVPJKUBOZJCIVS
      UCPVSJVPVSQVTVSJVPRSZVPKRSZVRWAWBNVNVPJKUDOUEZUFUGUKUHVNBCVQGZHIVMWDHABCV
      LVQVKVPEULUIUJUMUNVNBVOVQVNJTIJKUOVOTRUPKUQVNJVNQZURVNJWEUSJUTVABVOJVQVCM
      GVBVDSVNBVEPVSVQVSVPVTWCVFZVGVSVQWFVHVIVJ $.
  $}

  $( The derivative of the real logarithm function.  (Contributed by Mario
     Carneiro, 24-Feb-2015.) $)
  dvrelog $p |- ( RR _D ( log |` RR+ ) ) = ( x e. RR+ |-> ( 1 / x ) ) $=
    ( cr crp cres cdv co ce c1 cdiv cfv wceq wtru ccncf wcel wss reeff1o cc a1i
    cdm eqtri clog ccnv cv cmpt dfrelog oveq2i wf1o f1of ax-mp rpssre fss mp2an
    wf ax-resscn efcn rescncf mp2 cncffvrn mpbir cpr reelprrecn ssid dvef dmeqi
    wb eff fdmi sseqtr4i dvres3 mp4an reseq1i cc0 crn 0nrp rneqi wfo f1ofo forn
    mp2b eleq2i mtbir dvcnvre trud fveq1i f1ocnvfv2 mpan syl5eq oveq2d mpteq2ia
    wn ) BUACDZEFBGBDZUBZEFZACHAUCZIFZUDZWKWMBEUEUFWNACHWOWMJZBWLEFZJZIFZUDZWQW
    NXBKLAWLBCWLBBMFNZLXCBBWLUMZBCWLUMZCBOXDBCWLUGZXEPBCWLUHUIZUJBCBWLUKULBQOZW
    LBQMFNZXCXDVEUNXHGQQMFNXIUNUOQQBGUPUQBQBWLURULUSRWSSZBKLXJWLSBWSWLWSQGEFZBD
    ZWLBBQUTNQQGUMQQOBXKSZOWSXLKVAVFQVBBQXMUNXMGSQXKGVCVDQQGVFVGTVHQBGVIVJXKGBV
    CVKTZVDBCWLXGVGTRVLWSVMZNZWJLXPVLCNVNXOCVLXOWLVMZCWSWLXNVOXFBCWLVPXQCKPBCWL
    VQBCWLVRVSTVTWARXFLPRWBWCACXAWPWOCNZWTWOHIXRWTWRWLJZWOWRWSWLXNWDXFXRXSWOKPB
    CWOWLWEWFWGWHWITT $.

  ${
    $( The real logarithm function is continuous.  (Contributed by Mario
       Carneiro, 17-Feb-2015.) $)
    relogcn $p |- ( log |` RR+ ) e. ( RR+ -cn-> RR ) $=
      ( vx clog crp cres cr ccncf co wcel wf wf1o relogf1o f1of ax-mp cc wss wb
      ax-resscn mp2an c1 cdiv fss rpssre w3a cdv cdm wceq cv ovex dvrelog mpan2
      dmmpti dvcn mp3an cncffvrn mpbir ) BCDZCEFGHZCEUPIZCEUPJURKCEUPLMZENOZUPC
      NFGHZUQURPQUTCNUPIZCEOZVAQURUTVBUSQCENUPUARUBUTVBVCUCEUPUDGZUECUFVAACSAUG
      ZTGVDSVETUHAUIUKCEUPULUJUMCNEUPUNRUO $.
  $}

  ${
    $d w x y z D $.
    logcn.d $e |- D = ( CC \ ( -oo (,] 0 ) ) $.
    $( Elementhood in the "continuous domain" of the complex logarithm.
       (Contributed by Mario Carneiro, 18-Feb-2015.) $)
    ellogdm $p |- ( A e. D <-> ( A e. CC /\ ( A e. RR -> A e. RR+ ) ) ) $=
      ( wcel cc cmnf cc0 cioc co cdif wn wa cr crp wi clt wbr wb 0re 3bitri cle
      eleq2i eldif w3a cxr mnfxr elioc2 mp2an df-3an mnflt pm4.71i anbi1i lenlt
      mpan2 elrp baib notbid bitr4d pm5.32i bitr3i notbii iman bitr4i anbi2i )
      ABDAEFGHIZJZDAEDZAVEDZKZLVGAMDZANDZOZLBVFACUBAEVEUCVIVLVGVIVJVKKZLZKVLVHV
      NVHVJFAPQZAGUAQZUDZVJVOLZVPLZVNFUEDGMDZVHVQRUFSFGAUGUHVJVOVPUIVSVJVPLVNVJ
      VRVPVJVOAUJUKULVJVPVMVJVPGAPQZKZVMVJVTVPWBRSAGUMUNVJVKWAVKVJWAAUOUPUQURUS
      UTTVAVJVKVBVCVDT $.

    $( A number in the continuous domain of ` log ` is nonzero.  (Contributed
       by Mario Carneiro, 18-Feb-2015.) $)
    logdmn0 $p |- ( A e. D -> A =/= 0 ) $=
      ( wcel cc0 wceq crp 0nrp cr 0re cc ellogdm simprbi mpi mto eleq1 necon2ai
      wi mtbiri ) ABDZAEAEFTEBDZUAEGDZHUAEIDZUBJUAEKDUCUBREBCLMNOAEBPSQ $.

    $( A number in the continuous domain of ` log ` is not a strictly negative
       number.  (Contributed by Mario Carneiro, 18-Feb-2015.) $)
    logdmnrp $p |- ( A e. D -> -. -u A e. RR+ ) $=
      ( wcel cneg crp cmnf cc0 cioc co wn cc cdif cr clt wbr wb wi syl 0re rpre
      eldifn eleq2s wa cle ellogdm simplbi negreb syl5ib imp mnflt rpgt0 adantl
      lt0neg1d mpbird ltle sylancl mpd cxr mnfxr elioc2 mp2an syl3anbrc mtand
      w3a ) ABDZAEZFDZAGHIJZDZVJKALVIMBALVIUBCUCVFVHUDZANDZGAOPZAHUEPZVJVFVHVLV
      HVGNDZVFVLVGUAVFALDZVOVLQVFVPVLAFDRABCUFUGAUHSUIUJZVKVLVMVQAUKSVKAHOPZVNV
      KVRHVGOPZVHVSVFVGULUMVKAVQUNUOVKVLHNDZVRVNRVQTAHUPUQURGUSDVTVJVLVMVNVEQUT
      TGHAVAVBVCVD $.

    $( The continuity domain of ` log ` is a subset of the regular domain of
       ` log ` .  (Contributed by Mario Carneiro, 1-Mar-2015.) $)
    logdmss $p |- D C_ ( CC \ { 0 } ) $=
      ( vx cc cc0 csn cdif cv wcel wne ellogdm simplbi logdmn0 eldifsn sylanbrc
      cr crp wi ssriv ) CADEFGZCHZAIZUADIZUAEJUATIUBUCUAPIUAQIRUAABKLUAABMUADEN
      OS $.

    ${
      logcnlem.s $e |- S = if ( A e. RR+ , A , ( abs ` ( Im ` A ) ) ) $.
      logcnlem.t $e |- T = ( ( abs ` A ) x. ( R / ( 1 + R ) ) ) $.
      logcnlem.a $e |- ( ph -> A e. D ) $.
      logcnlem.r $e |- ( ph -> R e. RR+ ) $.
      $( Lemma for ~ logcn .  (Contributed by Mario Carneiro, 25-Feb-2015.) $)
      logcnlem2 $p |- ( ph -> if ( S <_ T , S , T ) e. RR+ ) $=
        ( crp wcel cfv cabs cr syl cc0 c1 co cle wbr cim simpr wn wa cc ellogdm
        cif simplbi imcld adantr recnd wne wceq reim0b simprbi sylbird necon3bd
        wi imp absrpcld ifclda syl5eqel caddc cdiv cmul logdmn0 rpaddcl sylancr
        wb 1rp rpdivcld rpmulcld ifcld ) AEFUAUBEFLAEBLMZBBUCNZONZUILHAVPBVRLAV
        PUDAVPUEZUFZVQVTVQAVQPMVSABABCMZBUGMZJWAWBBPMZVPUTZBCGUHZUJQZUKULUMAVSV
        QRUNAVPVQRAVQRUOZWCVPAWBWCWGVKWFBUPQAWAWDJWAWBWDWEUQQURUSVAVBVCVDAFBONZ
        DSDVETZVFTZVGTLIAWHWJABWFAWABRUNJBCGVHQVBADWIKASLMDLMWILMVLKSDVIVJVMVNV
        DVO $.

      logcnlem.b $e |- ( ph -> B e. D ) $.
      logcnlem.l $e |- ( ph ->
        ( abs ` ( A - B ) ) < if ( S <_ T , S , T ) ) $.
      $( Lemma for ~ logcn .  (Contributed by Mario Carneiro, 25-Feb-2015.) $)
      logcnlem3 $p |- ( ph ->
        ( -u _pi < ( ( Im ` ( log ` B ) ) - ( Im ` ( log ` A ) ) ) /\
          ( ( Im ` ( log ` B ) ) - ( Im ` ( log ` A ) ) ) <_ _pi ) ) $=
        ( clt wbr cc0 cr wcel adantr cpi cneg clog cfv cim cmin co wceq wa pire
        cle renegcli a1i cc crp wi ellogdm simplbi syl wne logdmn0 logcld imcld
        resubcld logimcld simpld recnd 0red cioo argimlt0 sylan eliooord simprd
        subid1d ltsub2dd eqbrtrrd wb reim0b simprbi sylbird imp relogcld reim0d
        lttrd oveq2d eqtrd breqtrrd renegcld argimgt0 ltneg mpbid df-neg imsubd
        sylancl cabs subcld abscld absimle absled cif adantl wn ifclda syl5eqel
        rpre c1 caddc cdiv cmul rpred rpaddcl sylancr rerpdivcld remulcld ifcld
        1rp min1 syl2anc ltletrd gt0ne0 syl5ib necon3ad iffalse syl5eq 0re ltle
        syldan absidd breqtrd lelttrd ltsub2d mpbird ltsub1d syl5eqbr mpjao3dan
        w3o lttri4 ltnri eqbrtrd ltled breq1 mtbiri necon2ai absnidd ltnegcon2d
        sylan2 ltsub1dd syl6breqr ltnegcon1 jca ) AUAUBZCUCUDZUEUDZBUCUDZUEUDZU
        FUGZOPZUUPUAUKPZABUEUDZQOPZUUQUUSQUHZQUUSOPZAUUTUIZUUKUUMUUPUUKRSZUVCUA
        UJULZUMAUUMRSZUUTAUULACACDSZCUNSZMUVGUVHCRSCUOSUPCDHUQURUSZAUVGCQUTMCDH
        VAUSZVBVCZTZAUUPRSZUUTAUUMUUOUVKAUUNABABDSZBUNSZKUVNUVOBRSZBUOSZUPZBDHU
        QZURUSZAUVNBQUTKBDHVAUSVBVCZVDZTZAUUKUUMOPZUUTAUWDUUMUAUKPZACUVIUVJVEZV
        FZTUVCUUMQUFUGZUUMUUPOUVCUUMAUUMUNSZUUTAUUMUVKVGZTVNUVCUUOQUUMAUUORSZUU
        TUWATZUVCVHZUVLUVCUUKUUOOPZUUOQOPZUVCUUOUUKQVIUGZSZUWNUWOUIAUVOUUTUWQUV
        TBVJVKUUOUUKQVLUSZVMVOVPWDAUVAUIZUUKUUMUUPOAUWDUVAUWGTUWSUUPUWHUUMUWSUU
        OQUUMUFUWSUUNUWSBAUVAUVQAUVAUVPUVQAUVOUVPUVAVQUVTBVRUSZAUVNUVRKUVNUVOUV
        RUVSVSUSVTWAWBWCWEAUWHUUMUHUVAAUUMUWJVNTWFZWGAUVBUIZUUKUUOUBZUUPUVDUXBU
        VEUMAUXCRSUVBAUUOUWAWHTAUVMUVBUWBTZUXBUUOUAOPZUUKUXCOPZUXBQUUOOPZUXEUXB
        UUOQUAVIUGZSZUXGUXEUIAUVOUVBUXIUVTBWIVKUUOQUAVLUSZVMAUXEUXFVQZUVBAUWKUA
        RSZUXKUWAUJUUOUAWJWNTWKUXBUXCQUUOUFUGZUUPOUUOWLZUXBQUUMOPZUXMUUPOPZUXBU
        XOUUMUAOPZUXBUUMUXHSZUXOUXQUIUXBUVHQCUEUDZOPZUXRAUVHUVBUVITUXBUXTUUSUXS
        UFUGZUUSQUFUGZOPZUXBUYAUUSUYBOUXBBCUFUGZUEUDZUYAUUSOAUYEUYAUHZUVBABCUVT
        UVIWMZTUXBUYEUYDWOUDZUUSAUYERSZUVBAUYDABCUVTUVIWPZVCZTAUYHRSZUVBAUYDUYJ
        WQZTUXBBAUVOUVBUVTTVCZAUYEUYHUKPZUVBAUYHUBZUYEUKPZUYOAUYEWOUDUYHUKPZUYQ
        UYOUIAUYDUNSUYRUYJUYDWRUSAUYEUYHUYKUYMWSWKZVMTUXBUYHFUUSOAUYHFOPZUVBAUY
        HFGUKPZFGWTZFUYMAVUAFGRAFUVQBUUSWOUDZWTZRIAUVQBVUCRUVQUVPABXEZXAAVUCRSU
        VQXBZAUUSAUUSABUVTVCZVGZWQTXCXDZAGBWOUDZEXFEXGUGZXHUGZXIUGRJAVUJVULABUV
        TWQAEVUKAELXJAXFUOSEUOSVUKUOSXPLXFEXKXLXMXNXDZXOVUINAFRSGRSVUBFUKPVUIVU
        MFGXQXRXSZTUXBFVUCUUSAUVBUUSQUTZFVUCUHZAUUSRSZUVBVUOVUGUUSXTVKAVUOUIVUF
        VUPAVUOVUFAUVQUUSQUVQUVPAUVAVUEUWTYAYBWAVUFFVUDVUCIUVQBVUCYCYDUSZYGUXBU
        USUYNAUVBQUUSUKPZAQRSZVUQUVBVUSUPYEVUGQUUSYFXLWAYHWFYIYJVPUXBUUSAUUSUNS
        ZUVBVUHTVNWGAUXTUYCVQUVBAQUXSUUSAVHZACUVIVCVUGYKTYLCWIXRUUMQUAVLUSZVFAU
        XOUXPVQUVBAQUUMUUOVVBUVKUWAYMTWKYNWDAVUQVUTUUTUVAUVBYPVUGYEUUSQYQWNZYOA
        UUTUURUVAUVBUVCUUPUAUWCUXLUVCUJUMZUVCUUPUXCUAUWCUVCUUOUWLWHVVEUVCUUPUXM
        UXCOUVCUUMQUUOUVLUWMUWLUVCUWDUUMQOPZUVCUUMUWPSZUWDVVFUIUVCUVHUXSQOPZVVG
        AUVHUUTUVITZUVCVVHUYBUYAOPUVCUYBUUSUYAOUVCUUSAVVAUUTVUHTVNUVCUUSUYEUYAO
        UVCUUSUYPUYEAVUQUUTVUGTZAUYPRSUUTAUYHUYMWHTAUYIUUTUYKTUVCUYHUUSAUYLUUTU
        YMTVVJUVCUYHFUUSUBZOAUYTUUTVUNTUVCFVUCVVKUUTAVUOVUPUUTUUSQUVAUUTQQOPQYE
        YRUUSQQOUUAUUBUUCVURUUFUVCUUSVVJAUUTUUSQUKPZAVUQVUTUUTVVLUPVUGYEUUSQYFW
        NWAUUDWFYIUUEAUYQUUTAUYQUYOUYSVFTXSAUYFUUTUYGTYIYSUVCUXSQUUSUVCCVVIVCUW
        MVVJYKYLCVJXRUUMUUKQVLUSVMUUGUXNUUHUVCUWNUXCUAOPZUVCUWNUWOUWRVFUVCUXLUW
        KUWNVVMVQUJUWLUAUUOUUIXLWKWDYTUWSUUPUUMUAUKUXAAUWEUVAAUWDUWEUWFVMTYSUXB
        UUPUAUXDUXLUXBUJUMZUXBUUPUUMUAUXDAUVFUVBUVKTZVVNUXBUUPUWHUUMOUXBQUUOUUM
        UXBVHAUWKUVBUWATVVOUXBUXGUXEUXJVFVOUXBUUMAUWIUVBUWJTVNYIUXBUXOUXQVVCVMW
        DYTVVDYOUUJ $.

      $( Lemma for ~ logcn .  (Contributed by Mario Carneiro, 25-Feb-2015.) $)
      logcnlem4 $p |- ( ph ->
        ( abs ` ( ( Im ` ( log ` A ) ) - ( Im ` ( log ` B ) ) ) ) < R ) $=
        ( cfv co clt wcel wbr c1 clog cim cmin cabs cdiv cc crp ellogdm simplbi
        cr wi syl cc0 logdmn0 logcld imcld recnd abssubd imsubd wceq ce syl2anc
        wne efsub eflog oveq12d eqtrd crn wb divcld divne0d cpi cneg cle subcld
        logcnlem3 simpld breqtrrd simprd eqbrtrd ellogrn logeftb syl3anc mpbird
        syl3anbrc eqcomd fveq2d eqtr3d ctan abscld ccos c2 cioo 0red rerpdivcld
        cre 1re absrpcld resubcl sylancr recld caddc rpred 1rp rpaddcl remulcld
        cmul syl5eqel cif wa rpre adantl adantr ifclda ltmin mpbid ltp1d ax-1cn
        addcom sylancl breqtrd ltled mulid1d ledivmuld lemul2d syl5eqbr ltletrd
        wn a1i ltdivmuld posdif divsubdird dividd oveq1d syl6eq absdivd gt0ne0d
        oveq2d rpne0d lelttrd releabsd resub re1 oveq1i 3brtr3d subled argregt0
        cosq14gt0 retancld tanabsge tanarg absidd 3eqtrd absimle oveq2i subid1d
        imsub 3eqtrrd eqtr4d 3brtr4d resubcld adddid divassd ltmuldivd eqbrtrrd
        im1 syl6eqr ltaddsubd subdird lemul1d mulassd ltdivmul syl112anc ) ABUA
        OZUBOZCUAOZUBOZUCPUDOZCBUEPZUAOZUBOZUDOZEQAUVRUVQUVOUCPZUDOUWBAUVOUVQAU
        VOAUVNABABDRZBUFRZKUWDUWEBUJRZBUGRZUKBDHUHUIULZAUWDBUMVCZKBDHUNULZUOZUP
        UQAUVQAUVPACACDRZCUFRZMUWLUWMCUJRCUGRUKCDHUHUIULZAUWLCUMVCZMCDHUNULZUOZ
        UPUQURAUWCUWAUDAUVPUVNUCPZUBOZUWCUWAAUVPUVNUWQUWKUSZAUWRUVTUBAUVTUWRAUV
        TUWRUTZUWRVAOZUVSUTZAUXBUVPVAOZUVNVAOZUEPZUVSAUVPUFRUVNUFRUXBUXFUTUWQUW
        KUVPUVNVDVBAUXDCUXEBUEAUWMUWOUXDCUTUWNUWPCVEVBAUWEUWIUXEBUTUWHUWJBVEVBV
        FVGAUVSUFRZUVSUMVCUWRUAVHRZUXAUXCVIACBUWNUWHUWJVJZACBUWNUWHUWPUWJVKZAUW
        RUFRVLVMZUWSQSUWSVLVNSUXHAUVPUVNUWQUWKVOAUXKUWCUWSQAUXKUWCQSZUWCVLVNSZA
        BCDEFGHIJKLMNVPZVQUWTVRAUWSUWCVLVNUWTAUXLUXMUXNVSVTUWRWAWEUVSUWRWBWCWDW
        FWGWHWGVGAUWBUWAWIOZUDOZEAUWAAUWAAUVTAUVSUXIUXJUOUPZUQWJAUXOAUXOAUWAUXQ
        AUWAWKOZAUWAVLWLUEPZVMUXSWMPRZUMUXRQSAUXGUMUVSWPOZQSZUXTUXIAUMTBCUCPZUD
        OZBUDOZUEPZUCPZUYAAWNZATUJRZUYFUJRZUYGUJRWQAUYDUYEAUYCABCUWHUWNVOZWJZAB
        UWHUWJWRZWOZTUYFWSWTAUVSUXIXAZAUYFTQSZUMUYGQSZAUYPUYDUYETXGPZQSAUYDUYEU
        YRQAUYDGUYEUYLAGUYEETEXBPZUEPZXGPZUJJAUYEUYTABUWHWJZAEUYSAELXCZATUGREUG
        RUYSUGRXDLTEXEWTZWOZXFXHZVUBAUYDFQSZUYDGQSZAUYDFGVNSFGXIQSZVUGVUHXJZNAU
        YDUJRFUJRGUJRVUIVUJVIUYLAFUWGBBUBOZUDOZXIUJIAUWGBVULUJUWGUWFABXKXLAVULU
        JRUWGYHAVUKAVUKABUWHUPUQWJXMXNXHVUFUYDFGXOWCXPVSZAGVUAUYEVNJAVUAUYRUYEV
        NAUYTTVNSZVUAUYRVNSAVUNEUYSTXGPZVNSAEUYSVUOVNAEUYSVUCAUYSVUDXCZAEETXBPZ
        UYSQAEVUCXQAEUFRTUFRZVUQUYSUTAEVUCUQZXRETXSXTYAYBAUYSAUYSVUPUQZYCVRAETU
        YSVUCUYIAWQYIZVUDYDWDAUYTTUYEVUEVVAUYMYEXPAUYEAUYEVUBUQZYCZYAYFYGVVCVRA
        UYDTUYEUYLVVAUYMYJWDAUYJUYIUYPUYQVIUYNWQUYFTYKXTXPATUYAUYFVVAUYOUYNAUYC
        BUEPZWPOZVVDUDOTUYAUCPZUYFVNAVVDAUYCBUYKUWHUWJVJUUAAVVETWPOZUYAUCPZVVFA
        VVETUVSUCPZWPOZVVHAVVDVVIWPAVVDBBUEPZUVSUCPVVIABCBUWHUWNUWHUWJYLAVVKTUV
        SUCABUWHUWJYMZYNVGWGAVURUXGVVJVVHUTXRUXITUVSUUBWTVGVVGTUYAUCUUCUUDYOAUY
        CBUYKUWHUWJYPUUEUUFZYGZUVSUUGVBZUWAUUHULYQUUIUQWJVUCAUXTUWBUXPVNSVVOUWA
        UUJULAUXPUVSUBOZUDOZUYAUEPZEQAUXPVVPUYAUEPZUDOVVQUYAUDOZUEPVVRAUXOVVSUD
        AUXGUYAUMVCUXOVVSUTUXIAUYAVVNYQZUVSUUKVBWGAVVPUYAAVVPAUVSUXIUPUQZAUYAUY
        OUQZVWAYPAVVTUYAVVQUEAUYAUYOAUMUYAUYHUYOVVNYBUULYRUUMAVVREQSZVVQUYAEXGP
        ZQSZAVVQUYFVWEAVVPVWBWJZUYNAUYAEUYOVUCXFZACBUCPZBUEPZUBOZUDOZVWJUDOZVVQ
        UYFVNAVWJUFRVWLVWMVNSAVWIBACBUWNUWHVOZUWHUWJVJVWJUUNULAVVPVWKUDAVWKUVST
        UCPZUBOZVVPUMUCPZVVPAVWJVWOUBAVWJUVSVVKUCPVWOACBBUWNUWHUWHUWJYLAVVKTUVS
        UCVVLYRVGWGAVWPVVPTUBOZUCPZVWQAUXGVURVWPVWSUTUXIXRUVSTUUQXTVWRUMVVPUCUV
        FUUOYOAVVPVWBUUPUURWGAUYFVWIUDOZUYEUEPVWMAUYDVWTUYEUEABCUWHUWNURYNAVWIB
        VWNUWHUWJYPUUSUUTAUYFVWEQSUYDUYEVWEXGPZQSAUYDUYEUYDUCPZEXGPZVXAUYLAVXBE
        AUYEUYDVUBUYLUVAZVUCXFAUYEVWEVUBVWHXFAUYDUYEEXGPZUYDEXGPZUCPZVXCQAUYDVX
        FXBPZVXEQSUYDVXGQSAUYDUYSXGPZVXHVXEQAVXIUYDTXGPZVXFXBPVXHAUYDTEAUYDUYLU
        QZVURAXRYIVUSUVBAVXJUYDVXFXBAUYDVXKYCYNVGAVXIVXEQSUYDVXEUYSUEPZQSAUYDGV
        XLQVUMAVXLVUAGAUYEEUYSVVBVUSVUTAUYSVUDYSUVCJUVGVRAUYDVXEUYSUYLAUYEEVUBV
        UCXFZVUDUVDWDUVEAUYDVXFVXEUYLAUYDEUYLVUCXFVXMUVHXPAUYEUYDEVVBVXKVUSUVIV
        RAVXCUYEUYAXGPZEXGPZVXAVNAVXBVXNVNSZVXCVXOVNSAVXBUYEUEPZUYAVNSVXPAVXQUY
        GUYAVNAVXQUYEUYEUEPZUYFUCPUYGAUYEUYDUYEVVBVXKVVBAUYEUYMYSZYLAVXRTUYFUCA
        UYEVVBVXSYMYNVGVVMVTAVXBUYAUYEVXDUYOUYMYDXPAVXBVXNEVXDAUYEUYAVUBUYOXFLU
        VJXPAUYEUYAEVVBVWCVUSUVKYAYGAUYDVWEUYEUYLVWHUYMYJWDYTAVVQUJREUJRUYAUJRU
        YBVWDVWFVIVWGVUCUYOVVNVVQEUYAUVLUVMWDVTYTVT $.
    $}

    $( Lemma for ~ logcn .  (Contributed by Mario Carneiro, 18-Feb-2015.) $)
    logcnlem5 $p |- ( x e. D |-> ( Im ` ( log ` x ) ) ) e. ( D -cn-> RR ) $=
      ( cc cr cv clog cfv cim co wcel crp cabs wbr eqid wa cmin clt wceq fveq2d
      vy vz vw wss cmpt ccncf cmnf cc0 cioc cdif difss eqsstri ax-resscn cif c1
      caddc cdiv cmul wi ellogdm simplbi logdmn0 logcld imcld fmpti simpl simpr
      cle logcnlem2 simpll simprl simplr simprr logcnlem4 expr fveq2 fvex fvmpt
      ad2antrr ad2antlr oveq12d breq1d sylibrd elcncf1ii mp2an ) BDUDEDUDABAFZG
      HZIHZUEZBEUFJKBDUGUHUIJZUJDCDWJUKULUMUAUBUCBEWIUAFZLKWKWKIHMHUNZWKMHUBFZU
      OWMUPJUQJURJZVHNWLWNUNZABEWHWIWIOZWFBKZWGWQWFWQWFDKWFEKWFLKUSWFBCUTVAWFBC
      VBVCVDVEWKBKZWMLKZPWKBWMWLWNCWLOZWNOZWRWSVFWRWSVGVIWRUCFZBKZPZWSPZWKXBQJM
      HWORNZWKGHZIHZXBGHZIHZQJZMHZWMRNZWKWIHZXBWIHZQJZMHZWMRNXDWSXFXMXDWSXFPZPW
      KXBBWMWLWNCWTXAWRXCXRVJXDWSXFVKWRXCXRVLXDWSXFVMVNVOXEXQXLWMRXEXPXKMXEXNXH
      XOXJQWRXNXHSXCWSAWKWHXHBWIWFWKSWGXGIWFWKGVPTWPXGIVQVRVSXCXOXJSWRWSAXBWHXJ
      BWIWFXBSWGXIIWFXBGVPTWPXIIVQVRVTWATWBWCWDWE $.

    $( The logarithm function is continuous away from the branch cut at
       negative reals.  (Contributed by Mario Carneiro, 25-Feb-2015.) $)
    logcn $p |- ( log |` D ) e. ( D -cn-> CC ) $=
      ( vx clog cabs cfv crp ci co caddc cmpt cc ccncf wceq wss mp2an wcel wtru
      wf cr vy cres cv cim cmul wfn crn cc0 cdif wf1o logf1o f1of ax-mp logdmss
      csn fssres ffn dffn5 mpbi fvres wi ellogdm simplbi logdmn0 logcld replimd
      cre wne relog syl2anc absrpcld eqtr4d oveq1d 3eqtrd mpteq2ia eqtri ccnfld
      syl ctopn eqid ctx ccn addcn crest ctopon cnfldtopon ssriv resttopon absf
      feqmptd syl6eq wral eqeltrd rgen ffnfv mpbir2an wb rpssre ax-resscn sstri
      a1i abscncf rescncf cncffvrn mpbir syl6eqelr cncfcn syl6eleq ssid relogcn
      mp2 cncfss sselii ctop cnfldtop toponunii restid cnmpt11f syl6eleqr imcld
      eqcomi ccom recnd adantl eqidd fmptco logcnlem5 ax-icn mulc1cncf eqeltrrd
      oveq2 mp1i cncfco cncfmpt2f trud eqeltri ) DAUBZCACUCZEFZDGUBZFZHYRDFZUDF
      ZUEIZJIZKZALMIZYQCAYRYQFZKZUUFYQAUFZYQUUINADUGZYQSZUUJLUHUOUIZUUKDSZAUUMO
      UULUUMUUKDUJUUNUKUUMUUKDULUMABUNUUMUUKADUPPAUUKYQUQUMCAYQURUSCAUUHUUEYRAQ
      ZUUHUUBUUBVGFZUUDJIUUEYRADUTUUOUUBUUOYRUUOYRLQZYRTQYRGQVAYRABVBVCZYRABVDZ
      VEZVFUUOUUPUUAUUDJUUOUUPYSDFZUUAUUOUUQYRUHVHUUPUVANUURUUSYRVIVJUUOYSGQUUA
      UVANUUOYRUURUUSVKZYSGDUTVRVLVMVNVOVPUUFUUGQRCUUAUUDJVQVSFZAUVCVTZJUVCUVCW
      AIUVCWBIQRUVCUVDWCXARCAUUAKUVCAWDIZUVCWBIZUUGRCYSYTUVEUVCGWDIZUVCAUVEAWEF
      QZRUVCLWEFQALOZUVHUVCUVDWFZCALUURWGZAUVCLWHPXARCAYSKZAGMIZUVEUVGWBIZRUVLE
      AUBZUVMRUVOCAYRUVOFZKUVLRCATUVOATUVOSZRLTESUVIUVQWIUVKLTAEUPPZXAWJCAUVPYS
      YRAEUTZVOWKUVOUVMQZAGUVOSZUWAUVOAUFZUVPGQZCAWLUVQUWBUVRATUVOUQUMUWCCAUUOU
      VPYSGUVSUVBWMWNCAGUVOWOWPGLOZUVOATMIZQZUVTUWAWQGTLWRWSWTZUVIELTMIQUWFUVKX
      BLTAEXCXKATGUVOXDPXEXFUVIUWDUVMUVNNUVKUWGAGUVCUVEUVGUVDUVEVTZUVGVTZXGPXHR
      YTGLMIZUVGUVCWBIZYTUWJQRGTMIZUWJYTTLOZLLOZUWLUWJOWSLXIZGTLXLPXJXMXAUWDUWN
      UWJUWKNUWGUWOGLUVCUVGUVCUVDUWIUVCLWDIZUVCUVCXNQUWPUVCNUVCUVDXOUVCXNLLUVCU
      VJXPXQUMYAZXGPXHXRUVIUWNUUGUVFNUVKUWOALUVCUVEUVCUVDUWHUWQXGPXSRUALHUAUCZU
      EIZKZCAUUCKZYBCAUUDKUUGRCUAALUUCUWSUUDUXAUWTUUOUUCLQRUUOUUCUUOUUBUUTXTYCY
      DRUXAYERUWTYEUWRUUCHUEYKYFRALLUXAUWTUXAUUGQRUWEUUGUXAUWMUWNUWEUUGOWSUWOAT
      LXLPCABYGXMXAHLQUWTLLMIQRYHUAHUWTUWTVTYIYLYMYJYNYOYP $.

    $( Lemma for ~ dvlog .  (Contributed by Mario Carneiro, 24-Feb-2015.) $)
    dvloglem $p |- ( log " D ) e. ( TopOpen ` CCfld ) $=
      ( vx clog cim cpi co cfv wss wcel wb cc cc0 wceq mp2an cr clt wbr wne wa
      vy vz vw cima ccnv cneg cioo ccnfld ctopn wfun cdm wral csn cdif crn wf1o
      cv logf1o f1ofun ax-mp logdmss sseqtr4i funimass4 ellogdm simplbi logdmn0
      f1odm crp wi logcld imcld cle logimcld simpld wn logdmnrp lognegb syl2anc
      necon3bbid mpbid necomd pire a1i simprd leltned mpbird cxr renegcli rexri
      w3a elioo2 syl3anbrc wf wfn imf ffn elpreima mp2b sylanbrc mprgbir df-ioo
      ce cioc df-ioc idd xrltle ixxssixx imass2 logrn sseli logef syl cmnf efcl
      adantr sylbi simprbi eliooord ltned fveq2d simpr mnfxr 0re sylib renegcld
      elioc2 simp1d efne0 0red simp3d lt0neg1d elrpd eqtr3d necon3ad mpd eldifd
      ex syl6eleqr funfvima2 ctop eqeltrrd ssriv eqssi ctg ccn imcncf ax-resscn
      ccncf ssid eqid cnfldtop cnfldtopon toponunii restid eqcomi tgioo2 cncfcn
      crest eleqtri iooretop cnima eqeltri ) DAUDZEUEZFUFZFUGGZUDZUHUIHZUVCUVGU
      VCUVGIZCUQZDHZUVGJZCADUJZADUKZIZUVIUVLCAULKLMUMUNZDUOZDUPZUVMURUVPUVQDUSU
      TZAUVPUVNABVAUVRUVNUVPNURUVPUVQDVGUTVBZCAUVGDVCOUVJAJZUVKLJZUVKEHZUVFJZUV
      LUWAUVJUWAUVJLJZUVJPJUVJVHJVIUVJABVDVEZUVJABVFZVJZUWAUWCPJZUVEUWCQRZUWCFQ
      RZUWDUWAUVKUWHVKZUWAUWJUWCFVLRZUWAUVJUWFUWGVMZVNUWAUWKFUWCSUWAUWCFUWAUVJU
      FVHJZVOUWCFSUVJABVPUWAUWOUWCFUWAUWEUVJMSUWOUWCFNKUWFUWGUVJVQVRVSVTWAUWAUW
      CFUWLFPJUWAWBWCUWAUWJUWMUWNWDWEWFUVEWGJZFWGJUWDUWIUWJUWKWJKUVEFWBWHWIFWBW
      IUVEFUWCWKOWLLPEWMZELWNZUVLUWBUWDTKWOLPEWPZLUVKUVFEWQWRWSWTCUVGUVCUVJUVGJ
      ZUVJXBHZDHZUVJUVCUWTUVJUVQJUXBUVJNZUVGUVQUVJUVGUVDUVEFXCGZUDZUVQUVFUXDIUV
      GUXEICUAUBUCUVEFXCQQQVLUGCUAUBXACUAUBXDUWPUCUQZWGJTUVEUXFQRXEUXFFXFXGUVFU
      XDUVDXHUTXIVBXJUVJXKXLZUWTUXAAJZUXBUVCJZUWTUXALXMMXCGZUNAUWTUXALUXJUWTUWE
      UVJEHZUVFJZTZUXALJZUWQUWRUWTUXMKWOUWSLUVJUVFEWQWRZUWEUXNUXLUVJXNXOXPZUWTU
      XKFSUXAUXJJZVOUWTUXKFUWTUVJUWTUWEUXLUXOVEZVKUWTUVEUXKQRZUXKFQRZUWTUXLUXSU
      XTTUWTUWEUXLUXOXQUXKUVEFXRXLWDXSUWTUXQUXKFUWTUXQUXKFNUWTUXQTZUXBEHZUXKFUY
      AUXBUVJEUWTUXCUXQUXGXOXTUYAUXAUFZVHJZUYBFNZUYAUYCUYAUXAUYAUXAPJZXMUXAQRZU
      XAMVLRZUYAUXQUYFUYGUYHWJZUWTUXQYAXMWGJMPJUXQUYIKYBYCXMMUXAYFOYDZYGZYEUYAU
      XAMQRZMUYCQRUYAUYLMUXASUYAUXAMUWTUXAMSZUXQUWTUWEUYMUXRUVJYHXLZXOWAUYAUXAM
      UYKUYAYIUYAUYFUYGUYHUYJYJWEWFUYAUXAUYKYKVTYLUWTUYDUYEKZUXQUWTUXNUYMUYOUXP
      UYNUXAVQVRXOVTYMYQYNYOYPBYRUVMUVOUXHUXIVIUVSUVTAUXADYSOXLUUAUUBUUCEUVHUGU
      OUUDHZUUEGZJUVFUYPJUVGUVHJELPUUHGZUYQUUFLLIPLIUYRUYQNLUUIUUGLPUVHUVHUYPUV
      HUUJZUVHLUURGZUVHUVHYTJUYTUVHNUVHUYSUUKUVHYTLLUVHUVHUYSUULUUMUUNUTUUOUVHU
      YSUUPUUQOUUSUVEFUUTUVFEUVHUYPUVAOUVB $.

    $( The "continuous domain" of ` log ` is an open set.  (Contributed by
       Mario Carneiro, 7-Apr-2015.) $)
    logdmopn $p |- D e. ( TopOpen ` CCfld ) $=
      ( cc cmnf cc0 cioc co cdif ccnfld ctopn cfv ccld wcel cr eqid recld2 cioo
      crest crn ax-mp ctg 0re iocmnfcld tgioo2 fveq2i restcldr mp2an cnfldtopon
      eleqtri toponunii cldopn eqeltri ) ACDEFGZHZIJKZBUMUOLKZMZUNUOMNUPMUMUONR
      GZLKZMUQUOUOOZPUMQSUAKZLKZUSENMUMVBMUBEUCTVAURLUOUTUDUEUINUMUOUFUGUMUOCCU
      OUOUTUHUJUKTUL $.

    $( The logarithm maps its continuous domain bijectively onto the set of
       numbers with imaginary part ` -u _pi < Im ( z ) < _pi ` .  The negative
       reals are mapped to the numbers with imaginary part equal to ` _pi ` .
       (Contributed by Mario Carneiro, 2-May-2015.) $)
    logf1o2 $p |- ( log |` D ) : D -1-1-onto->
        ( `' Im " ( -u _pi (,) _pi ) ) $=
      ( vx clog cim cpi co cc cc0 wceq wb cfv wcel cr clt wbr wne pire a1i c1
      cima cres wf1o ccnv cneg cioo csn cdif crn wf1 logf1o f1of1 ax-mp logdmss
      wss f1ores mp2an cv wfun cdm wral f1ofun f1of fdmi sseqtr4i funimass4 crp
      wf wi ellogdm simplbi logdmn0 logcld imcld cle logimcld simpld wn lognegb
      logdmnrp syl2anc necon3bbid necomd simprd leltned mpbird cxr w3a renegcli
      mpbid rexri elioo2 syl3anbrc wfn wa imf elpreima mp2b sylanbrc mprgbir ce
      ffn simpl eliooord adantl imcl adantr ltle sylancl mpd ellogrn logef efcl
      syl recnd picn pipos gt0ne0ii cdiv caddc cmul mulid1i syl6breqr syl112anc
      1re ltdivmul 1e0p1 syl6breq cz csin ccos recoscld resincld crimd ad2antrr
      ci sylancr redivcld eqeltrrd 0z cre efeul oveq1d ax-icn mulcl addcld recl
      efne0 eqtrd simpr reefcld reim0d eqtr3d sineq0 zleltp1 cmin df-neg mulm1i
      divcan3d syl5eqbr ltmuldiv syl5eqbrr zlem1lt 0re letri3 mpbir2and diveq0d
      reim0b rpefcld ex funfvima2 sylbi ssriv eqssi f1oeq3 mpbi ) ADAUAZDAUBZUC
      ZAEUDFUEZFUFGZUAZUVRUCZHIUGUHZDUIZDUJZAUWDUOUVSUWDUWEDUCZUWFUKUWDUWEDULUM
      ABUNZUWDUWEADUPUQUVQUWBJUVSUWCKUVQUWBUVQUWBUOZCURZDLZUWBMZCADUSZADUTZUOZU
      WIUWLCAVAKUWGUWMUKUWDUWEDVBUMZAUWDUWNUWHUWDUWEDUWGUWDUWEDVHUKUWDUWEDVCUMV
      DVEZCAUWBDVFUQUWJAMZUWKHMZUWKELZUWAMZUWLUWRUWJUWRUWJHMZUWJNMZUWJVGMVIUWJA
      BVJVKZUWJABVLZVMZUWRUWTNMZUVTUWTOPZUWTFOPZUXAUWRUWKUXFVNZUWRUXHUWTFVOPZUW
      RUWJUXDUXEVPZVQUWRUXIFUWTQUWRUWTFUWRUWJUEVGMZVRUWTFQUWJABVTUWRUXMUWTFUWRU
      XBUWJIQUXMUWTFJKUXDUXEUWJVSWAWBWJWCUWRUWTFUXJFNMZUWRRSUWRUXHUXKUXLWDWEWFU
      VTWGMFWGMUXAUXGUXHUXIWHKUVTFRWIWKFRWKUVTFUWTWLUQWMHNEVHZEHWNZUWLUWSUXAWOK
      WPHNEXBZHUWKUWAEWQWRWSWTCUWBUVQUWJUWBMZUXBUWJELZUWAMZWOZUWJUVQMUXOUXPUXRU
      YAKWPUXQHUWJUWAEWQWRUYAUWJXALZDLZUWJUVQUYAUWJUWEMZUYCUWJJUYAUXBUVTUXSOPZU
      XSFVOPZUYDUXBUXTXCUYAUYEUXSFOPZUXTUYEUYGWOUXBUXSUVTFXDXEZVQZUYAUYGUYFUYAU
      YEUYGUYHWDZUYAUXSNMZUXNUYGUYFVIUXBUYKUXTUWJXFXGZRUXSFXHXIXJUWJXKWMUWJXLXN
      UYAUYBAMZUYCUVQMZUYAUYBHMZUYBNMZUYBVGMZVIUYMUXBUYOUXTUWJXMXGUYAUYPUYQUYAU
      YPWOZUWJUYRUXCUXSIJZUYRUXSFUYRUXSUYAUYKUYPUYLXGZXOZFHMUYRXPSFIQUYRFRXQXRS
      ZUYRUXSFXSGZIJZVUCIVOPZIVUCVOPZUYRVUEVUCITXTGZOPZUYRVUCTVUGOUYRVUCTOPZUXS
      FTYAGZOPZUYRUXSFVUJOUYAUYGUYPUYJXGFXPYBYCUYRUYKTNMZUXNIFOPZVUIVUKKUYTVULU
      YRYESUXNUYRRSZVUMUYRXQSZUXSTFYFYDWFYGYHUYRVUCYIMZIYIMZVUEVUHKUYRUXSYJLZIJ
      ZVUPUYRUXSYKLZYPVURYAGZXTGZELVURIUYRVUTVURUYRUXSUYTYLZUYRUXSUYTYMZYNUYRVV
      BUYRUYBUWJUUALZXALZXSGZVVBNUYRVVGVVFVVBYAGZVVFXSGVVBUYRUYBVVHVVFXSUXBUYBV
      VHJUXTUYPUWJUUBYOUUCUYRVVBVVFUYRVUTVVAUYRVUTVVCXOUYRYPHMVURHMVVAHMUUDUYRV
      URVVDXOYPVURUUEYQUUFUYRVVEHMZVVFHMUYRVVEUXBVVENMUXTUYPUWJUUGYOZXOZVVEXMXN
      UYRVVIVVFIQVVKVVEUUHXNZUUSUUIUYRUYBVVFUYAUYPUUJUYRVVEVVJUUKVVLYRYSUULUUMU
      YRUXSHMVUSVUPKVUAUXSUUNXNWJZYTVUCIUUOXIWFUYRVUFITUUPGZVUCOPZUYRVVNTUEZVUC
      OTUUQUYRVVPFYAGZUXSOPZVVPVUCOPZUYRVVQUVTUXSOFXPUURUYAUYEUYPUYIXGUUTUYRVVP
      NMZUYKUXNVUMVVRVVSKVVTUYRTYEWISUYTVUNVUOVVPUXSFUVAYDWJUVBUYRVUQVUPVUFVVOK
      YTVVMIVUCUVCYQWFUYRVUCNMINMVUDVUEVUFWOKUYRUXSFUYTVUNVUBYRUVDVUCIUVEXIUVFU
      VGUXBUXCUYSKUXTUYPUWJUVHYOWFUVIUVJUYBABVJWSUWMUWOUYMUYNVIUWPUWQAUYBDUVKUQ
      XNYSUVLUVMUVNUVQUWBAUVRUVOUMUVP $.

    $( The derivative of the complex logarithm function.  (Contributed by Mario
       Carneiro, 25-Feb-2015.) $)
    dvlog $p |- ( CC _D ( log |` D ) ) = ( x e. D |-> ( 1 / x ) ) $=
      ( cc ce clog cres ccnv cdv cfv wceq wtru wcel ax-mp a1i wf1o cc0 wss cdm
      co cima c1 cv cdiv cmpt ccnfld ctopn eqid crest ctop cnfldtopon toponunii
      cnfldtop restid eqcomi cr cpr cnelprrecn logdmopn csn cdif crn wf1 logf1o
      f1of1 logdmss f1ores mp2an f1ocnv cim cpi cneg cioc df-log reseq1i cnveqi
      wb wfun eff cnvimass imf fdmi sseqtri fssres ffun funcnvres2 mp2b resabs1
      3eqtri imaeq1i reseq2i eqtr4i f1oeq1 mpbi ccncf wrel relres dfrel2 eqtr3i
      wf f1of mp1i imassrn logrncn ssriv sstri cncffvrn sylibr syl5eqel cin cnt
      logcn ssid dvres mp4an dvloglem reseq12i eqtri dmeqi dmres sseqtr4i df-ss
      dvef isopn3i wn wne neirr resss eqsstri rnss eff2 frn sseli eldifsn sylib
      wa simprd mto dvcnv trud oveq2i fveq1i f1ocnvfv2 syl5eq mpteq2ia 3eqtr3i
      mpan oveq2d ) DEFBUAZGZHZITZABUBAUCZUUKJZDUUJITZJZUDTZUEZDFBGZITABUBUUMUD
      TZUEUULUURKLADUUJUFUGJZUVAUUIBUVAUHZUVADUITZUVAUVAUJMZUVCUVAKUVAUVBUMZUVA
      UJDDUVAUVAUVBUKULUNNUOZDUPDUQMLUROBUVAMLBCUSOUUIBUUJPZLUUIBUUSHZPZUVGBUUI
      UUSPZUVIDQUTVAZFVBZFVCZBUVKRUVJUVKUVLFPUVMVDUVKUVLFVENBCVFUVKUVLBFVGVHZBU
      UIUUSVINUVHUUJKUVIUVGVQUVHEEVJHVKVLVKVMTZUAZGZHZBUAZGZUUJUVHUVRBGZHZUVQUV
      SGZUVTUUSUWAFUVRBVNVOVPUVPDUVQWTZUVQVRUWBUWCKDDEWTZUVPDRUWDVSUVPVJSDVJUVO
      VTDUPVJWAWBWCDDUVPEWDVHZUVPDUVQWEBUVQWFWGUVSUVPRUWCUVTKUVSUVQSUVPUVQBVTUV
      PDUVQUWFWBWCEUVSUVPWHNWIUUIUVSEFUVRBVNWJWKWLZUUIBUVHUUJWMNWNZOLUUKUUSBUUI
      WOTZUVHHZUUKUUSUVHUUJUWGVPUUSWPUWJUUSKFBWQUUSWRWNWSZLBUUIUUSWTZUUSUWIMZUV
      JUWLLUVNBUUIUUSXAXBUUIDRZUUSBDWOTMUWMUWLVQUUIUVLDFBXCAUVLDUUMXDXEXFZBCXLB
      DUUIUUSXGVHXHXIUUOSZUUIKLUWPUUJSUUIESZXJZUUIUUOUUJUUODEITZUUIUVAXKJJZGZUU
      JDDRZUWEUXBUWNUUOUXAKDXMZVSUXCUWODUUIDUVAEUVAUVBUVFXNXOZUWSEUWTUUIYCUVDUU
      IUVAMUWTUUIKUVEBCXPUUIUVAYDVHXQXRZXSEUUIXTUUIUWQRUWRUUIKUUIDUWQUWODDEVSWB
      YAUUIUWQYBWNWIOQUUOVBZMZYELUXGQQYFZQYGUXGQDMZUXHUXGQUVKMUXIUXHYPUXFUVKQUX
      FEVBZUVKUUOERUXFUXJRUUOUWSEUUOUXAUWSUXDUWSUWTYHYIYCWCUUOEYJNDUVKEWTUXJUVK
      RYKDUVKEYLNXFYMQDQYNYOYQYROYSYTUUKUUSDIUWKUUAABUUQUUTUUMBMZUUPUUMUBUDUXKU
      UPUUNUUJJZUUMUUNUUOUUJUXEUUBUVGUXKUXLUUMKUWHUUIBUUMUUJUUCUUGUUDUUHUUEUUF
      $.
  $}

  ${
    $d x S $.
    dvlog2.s $e |- S = ( 1 ( ball ` ( abs o. - ) ) 1 ) $.
    $( Lemma for ~ dvlog2 .  (Contributed by Mario Carneiro, 1-Mar-2015.) $)
    dvlog2lem $p |- S C_ ( CC \ ( -oo (,] 0 ) ) $=
      ( vx cc cmnf cc0 co wcel c1 cmin cfv ax-1cn 1re sseli wbr cle cr 0re a1i
      wb cioc cdif cv cabs ccom cbl cxr wss cnxmet rexri blssm mp3an eqsstri wn
      cxmt clt 1m0e1 mnfxr iocssre mp2an elioc2 simp3bi lesub2dd syl5eqbrr wceq
      w3a ax-resscn sstri eqid cnmetdval sylancr 0le1 letrd abssubge0d breqtrrd
      eqtrd cnmet metcl syl3anc lenlt mpbid elbl2 syl22anc mtbird eleq2s eldifd
      cme con2i ssriv ) CADEFUAGZUBCUCZAHWKDWJADWKAIIUDJUEZUFKGZDBWLDUOKHZIDHZI
      UGHZWMDUHUILIMUJZWLIIDUKULUMNWKWJHZUNWKWMAWRWKWMHZWRWSIWKWLGZIUPOZWRIWTPO
      ZXAUNZWRIIWKJGZWTPWRIIFJGXDPUQWRWKFIWJQWKEUGHZFQHZWJQUHURREFUSUTZNZXFWRRS
      ZIQHZWRMSZWRWKQHZEWKUPOZWKFPOZXEXFWRXLXMXNVFTURREFWKVAUTVBZVCVDWRWTXDUDKZ
      XDWRWOWKDHZWTXPVELWJDWKWJQDXGVGVHNZIWKWLWLVIVJVKWRWKIXHXKWRWKFIXHXIXKXOFI
      POWRVLSVMVNVPVOWRXJWTQHZXBXCTMWRWLDWGKHZWOXQXSXTWRVQSWOWRLSZXRIWKWLDVRVSI
      WTVTVKWAWRWNWPWOXQWSXATWNWRUISWPWRWQSYAXRWKWLIIDWBWCWDWHBWEWFWI $.

    $( The derivative of the complex logarithm function on the open unit ball
       centered at ` 1 ` , a sometimes easier region to work with than the
       ` CC \ ( -oo , 0 ] ` of ~ dvlog .  (Contributed by Mario Carneiro,
       1-Mar-2015.) $)
    dvlog2 $p |- ( CC _D ( log |` S ) ) = ( x e. S |-> ( 1 / x ) ) $=
      ( cc clog cres cdv co cc0 cdif c1 cmpt cfv wss wceq ax-mp mp2an eqid wcel
      wf cmnf cioc cv cdiv ccnfld ctopn cnt ssid csn crn wf1o logf1o f1of ssriv
      logrncn fss logdmss fssres difss cabs cmin ccom cbl cxr cnxmet ax-1cn crp
      cxmt 1rp rpxr blssm mp3an crest ctop cnfldtop cnfldtopon toponunii restid
      eqsstri eqcomi dvres mp4an dvlog2lem resabs1 oveq2i dvlog cnfldtopn blopn
      eqeltri isopn3i reseq12i 3eqtr3i resmpt eqtri ) DEBFZGHZADUAIUBHZJZKAUCZU
      DHZLZBFZABWTLZDEWRFZBFZGHZDXDGHZBUEUFMZUGMMZFZWPXBDDNWRDXDTZWRDNBDNXFXJOD
      UHDIUIJZDETZWRXLNXKXLEUJZETZXNDNXMXLXNEUKXOULXLXNEUMPAXNDWSUOUNXLXNDEUPQW
      RWRRZUQXLDWREURQDWQUSBKKUTVAVBZVCMHZDCXQDVHMSZKDSZKVDSZXRDNVEVFKVGSYAVIKV
      JPZXQKKDVKVLVSWRBDXHXDXHXHRZXHDVMHZXHXHVNSZYDXHOXHYCVOZXHVNDDXHXHYCVPVQVR
      PVTWAWBXEWODGBWRNZXEWOOBCWCZEBWRWDPWEXGXAXIBAWRXPWFYEBXHSXIBOYFBXRXHCXSXT
      YAXRXHSVEVFYBXQKKXHDXHYCWGWHVLWIBXHWJQWKWLYGXBXCOYHAWRBWTWMPWN $.
  $}

  ${
    $d j k x y A $.  $d j k x y N $.
    $( The antiderivative of the logarithm.  (Contributed by Mario Carneiro,
       21-May-2016.) $)
    advlog $p |- ( RR _D ( x e. RR+ |-> ( x x. ( ( log ` x ) - 1 ) ) ) ) =
      ( x e. RR+ |-> ( log ` x ) ) $=
      ( cr crp clog cfv c1 co cmul cmpt cdv wtru caddc cc wcel a1i adantl recnd
      1cnd cc0 eqtrd cv cmin wceq cdiv cpr reelprrecn wa rpre cioo ccnfld ctopn
      crn ctg recn 1red dvmptid rpssre eqid tgioo2 cpnf ioorp iooretop eqeltrri
      wss dvmptres relogcl peano2rem syl rpreccl rpcnd cres dvrelog wf relogf1o
      wf1o f1of mp1i fvres mpteq2ia syl6eq oveq2d syl5reqr 0cnd dvmptc dvmptsub
      feqmptd subid1d mpteq2dva dvmptmul mulid2d wne rpne0 recid2d ax-1cn npcan
      oveq12d sylancl trud ) BACAUAZWSDEZFUBGZHGIJGZACWTIZUCKXBACFXAHGZFWSUDGZW
      SHGZLGZIXCKAWSFXAXEBMMCBBMUENKUFOZKWSCNZUGZWSXIWSBNZKWSUHPQZXJRZKAWSFBUIU
      LUMEZUJUKEZBBCXHXKWSMNKWSUNPKXKUGZUOKABXHUPCBVDKUQOZXOXOURZUSZXRCXNNKSUTU
      IGCXNVASUTVBVCOZVEXJXAXJWTBNZXABNXIYAKWSVFPZWTVGVHQZXJXEXIXECNKWSVIPVJZKB
      ACXAIJGACXESUBGZIACXEIZKAWTXEFSBMMCXHXJWTYBQZYDKYFBDCVKZJGBXCJGAVLKYHXCBJ
      KYHACWSYHEZIXCKACBYHCBYHVOCBYHVMKVNCBYHVPVQWFACYIWTWSCDVRVSVTWAWBXMXJWCKA
      FSBXNXOMBCXHXPRXPWCKAFBXHKRWDXQXSXRXTVEWEKACYEXEXJXEYDWGWHTWIKACXGWTXJXGX
      AFLGZWTXJXDXAXFFLXJXAYCWJXJWSXLXIWSSWKKWSWLPWMWPXJWTMNFMNYJWTUCYGWNWTFWOW
      QTWHTWR $.

    $( The antiderivative of a power of the logarithm.  (Set ` A = 1 ` and
       multiply by ` ( -u 1 ) ^ N x. N ! ` to get the antiderivative of
       ` log ( x ) ^ N ` itself.)  (Contributed by Mario Carneiro,
       22-May-2016.) $)
    advlogexp $p |- ( ( A e. RR+ /\ N e. NN0 ) ->
      ( RR _D ( x e. RR+ |-> ( x x. sum_ k e. ( 0 ... N )
        ( ( ( log ` ( A / x ) ) ^ k ) / ( ! ` k ) ) ) ) ) =
      ( x e. RR+ |-> ( ( ( log ` ( A / x ) ) ^ N ) / ( ! ` N ) ) ) ) $=
      ( crp wcel cr cc0 co cdiv cfv cexp cmul cmpt cdv c1 cc syl wceq a1i vj vy
      cn0 wa cfz clog cfa csu cfzo caddc cmin fzfid rpcn adantl rpdivcl adantlr
      cv relogcld elfznn0 reexpcl syl2an cn faccl nndivred fsummulc2 cuz simplr
      recnd nn0uz syl6eleq adantr mulcld oveq2 fveq2 fac0 syl6eq oveq12d oveq2d
      fsum1p exp0d oveq1d 1div1e1 mulid1d eqtrd 1zzd nn0z ad2antlr 0p1e1 oveq1i
      cz wss fzp1ss ax-mp eqsstr3i sseli sylan2 fsumshftm sumeq1i 1m1e0 syl5eqr
      0z fzoval sumeq1d 3eqtr4d 3eqtrd mpteq2dva cpr reelprrecn 1cnd crn ccnfld
      cioo ctg ctopn recn dvmptid rpssre eqid tgioo2 iooretop eqeltrri dvmptres
      cpnf ioorp ax-1cn sylancl an32s 3impa cneg cvv negex expcl syl2anr nnne0d
      nncnd wne divcld 0cnd oveq1 negeqd cfn elfzonn0 peano2nn0 fsumcl reexpcld
      fzofi subcl subcld cnelprrecn id simplll simpr relogdivd relogcl ad2antrr
      dvmptc rpreccld cres dvrelog wf1o wf relogf1o f1of feqmptd fvres mpteq2ia
      mp1i syl5reqr df-neg mpteq2i syl6eqr ovexd nn0p1nn dvexp dvmptdivc nn0cnd
      dvmptsub pncan facp1 peano2cn mulcomd divcan5d dvmptco rpcnd rpne0 eqtr4d
      mulneg2d divrecd dvmptmul mulid2d rerpdivcld mulneg1d dvmptfsum telfsumo2
      divcan1d negsubd dvmptadd pncan3 sylancr ) BEFZDUCFZUDZGAEAUQZHDUEIZBUXCJ
[encoded data, 4160 characters]
      UYESYEVWNPUYEUWRUWSXFXE $.
  $}

  $( Lemma for ~ efopn .  (Contributed by Mario Carneiro, 23-Apr-2015.)
     (Revised by Mario Carneiro, 8-Sep-2015.) $)
  efopnlem1 $p |- ( ( ( R e. RR+ /\ R < _pi ) /\
    A e. ( 0 ( ball ` ( abs o. - ) ) R ) ) -> ( abs ` ( Im ` A ) ) < _pi ) $=
    ( crp wcel cpi clt wbr wa cc0 cabs cmin cfv co cc ad2antrr syl cr wb abscld
    cle ccom cbl cim ccnv cico cima simpr cxr wceq rpxr eqid cnbl0 eleqtrrd wfn
    wf absf ffn elpreima mp2b simplbi imcld recnd rpre pire a1i absimle simprbi
    w3a 0re elico2 sylancr mpbid simp3d lelttrd simplr lttrd ) BCDZBEFGZHZAIBJK
    UAZUBLMZDZHZAUCLZJLZBEWCWDWCWDWCAWCAJUDIBUEMZUFZDZANDZWCAWAWGVSWBUGWCBUHDZW
    GWAUIVQWJVRWBBUJOZVTBVTUKULPUMZWHWIAJLZWFDZNQJUOJNUNWHWIWNHRUPNQJUQNAWFJURU
    SZUTPZVAVBSZVQBQDVRWBBVCOZEQDWCVDVEWCWEWMBWQWCAWPSWRWCWIWEWMTGWPAVFPWCWMQDZ
    IWMTGZWMBFGZWCWNWSWTXAVHZWCWHWNWLWHWIWNWOVGPWCIQDWJWNXBRVIWKIBWMVJVKVLVMVNV
    QVRWBVOVP $.

  ${
    $d r w x y z J $.  $d x R $.  $d r x y z S $.
    efopn.j $e |- J = ( TopOpen ` CCfld ) $.
    $( Lemma for ~ efopn .  (Contributed by Mario Carneiro, 2-May-2015.) $)
    efopnlem2 $p |- ( ( R e. RR+ /\ R < _pi ) ->
      ( exp " ( 0 ( ball ` ( abs o. - ) ) R ) ) e. J ) $=
      ( wcel cpi clt wbr wa ce cc0 cfv co cima cc wss clog cres ccnv cim wceq
      crp cabs cmin ccom cbl cmnf cioc cdif crest cneg csn crn wf1o wfun logf1o
      vx wfn f1orn simprbi funcnvres mp2b df-log cnveqi wrel relres dfrel2 mpbi
      eqtri reseq1i imassrn logrn sseqtri resabs1 ax-mp 3eqtri imaeq1i cioo cxr
      cv cxmt cnxmet a1i 0cnd adantr blssm syl3anc sselda cr imcld efopnlem1 wb
      rpxr pire abslt sylancl mpbid simpld simprd w3a renegcli elioo2 syl3anbrc
      rexri mp2an wf imf ffn elpreima sylanbrc ex ssrdv df-ima wfo eqid logf1o2
      f1ofo forn syl6sseqr resima2 syl ccn ccncf logcn difss ssid ctop cnfldtop
      syl5eq cnfldtopon toponunii restid eqcomi eleqtri cnfldtopn blopn sylancr
      cncfcn cnima eqeltrrd ccnfld ctopn logdmopn eleqtrri restopn2 sylib ) AUA
      DZAEFGZHZIJAUBUCUDZUEKLZMZBDZUUKNUFJUGLZUHZOZUUHUUKBUUNUILZDZUULUUOHZUUHP
      UUNQZRZUUJMZUUKUUPUUHUVAIPUUNMZQZUUJMZUUKUUTUVCUUJUUTPRZUVBQZISRZEUJZEUGL
      MZQZUVBQZUVCNJUKUHZPULZPUMZUVEUNZUUTUVFTUOUVNPUVLUQUVOUVLPURUSUUNPUTVAUVE
      UVJUVBUVEUVJRZRZUVJPUVPVBVCUVJVDUVQUVJTIUVIVEUVJVFVGVHVIUVBUVIOUVKUVCTUVB
      UVMUVIPUUNVJVKVLIUVBUVIVMVNVOVPUUHUUJUVBOUVDUUKTUUHUUJUVGUVHEVQLZMZUVBUUH
      UPUUJUVSUUHUPVSZUUJDZUVTUVSDZUUHUWAHZUVTNDZUVTSKZUVRDZUWBUUHUUJNUVTUUHUUI
      NVTKDZJNDZAVRDZUUJNOUWGUUHWAWBZUUHWCZUUFUWIUUGAWLWDZUUIJANWEWFWGZUWCUWEWH
      DZUVHUWEFGZUWEEFGZUWFUWCUVTUWMWIZUWCUWOUWPUWCUWEUBKEFGZUWOUWPHZUVTAWJUWCU
      WNEWHDUWRUWSWKUWQWMUWEEWNWOWPZWQUWCUWOUWPUWTWRUVHVRDEVRDUWFUWNUWOUWPWSWKU
      VHEWMWTXCEWMXCUVHEUWEXAXDXBNWHSXESNUQUWBUWDUWFHWKXFNWHSXGNUVTUVRSXHVAXIXJ
      XKUVBUUSULZUVSPUUNXLUUNUVSUUSUMUUNUVSUUSXMUXAUVSTUUNUUNXNZXOUUNUVSUUSXPUU
      NUVSUUSXQVAVHXRIUUJUVBXSXTYHUUHUUSUUPBYALZDUUJBDZUVAUUPDUUSUUNNYBLZUXCUUN
      UXBYCUUNNONNOUXEUXCTNUUMYDNYEUUNNBUUPBCUUPXNBNUILZBBYFDZUXFBTBCYGZBYFNNBB
      CYIYJYKVNYLYQXDYMUUHUWGUWHUWIUXDUWJUWKUWLUUIJABNBCYNYOWFUUJUUSUUPBYRYPYSU
      XGUUNBDUUQUURWKUXHUUNYTUUAKBUUNUXBUUBCUUCUUNUUKBUUDXDUUEWQ $.

    $( The exponential map is an open map.  (Contributed by Mario Carneiro,
       23-Apr-2015.) $)
    efopn $p |- ( S e. J -> ( exp " S ) e. J ) $=
      ( vz vy vw wcel ce wss wa wrex cfv cc clt cabs co cc0 wceq syl2anc wb cpi
      vx vr cv cima wral wbr cmin ccom cbl crp ctopon cnfldtopon toponss sselda
      mpan cxmt cnxmet pirp cnfldtopn mopni3 mpan2 mp3an1 imass2 cdiv cmpt ccnv
      w3a wi crab cin crn imassrn wf eff frn ax-mp sstri sseqin2 mpbi cxr blssm
      rpxr sylan2 ad2antrr simp-4l subcld subid1d fveq2d eqid cnmetdval sylancl
      0cn 3eqtr4d simpr simpllr adantr rpxrd elbl3 syl22anc eqbrtrd 0cnd mpbird
      a1i mpbid efsub fveq2 eqeq1d rspcev oveq1 eqeq2d syl5ibcom rexlimdva cmul
      rexbidv eqcom simplr efcl syl mp3an12 efne0 divmuld syl5bb pncan2d eqtr4d
      wne caddc addcld efadd eqeq2 sylbid impbid wfn fvelimab sylancr rabbi2dva
      ffn 3bitr4d syl5eqr mptpreima syl6eqr ccn ccncf divccncf cncfcn1 syl6eleq
      efopnlem2 adantll cnima eqeltrd blcntr wfun ffun fdmi syl6sseqr funfvima2
      cdm mpd eleq2 sseq1 anbi12d expr syl5 expimpd sylc ralrimiva eleq1 anbi1d
      ralima ctop cnfldtop eltop2 sylibr ) ABGZDUDZEUDZGZUVPHAUEZIZJZEBKZDUVRUF
      ZUVRBGZUVNUWBUBUDZHLZUVPGZUVSJZEBKZUBAUFZUVNUWHUBAUVNUWDAGZJUWDMGZUCUDZUA
      NUGZUWDUWLOUHUIZUJLZPZAIZJZUCUKKZUWHUVNAMUWDBMULLGUVNAMIZBCUMABMUNUPZUOUW
      NMUQLGZUVNUWJUWSURUXBUVNUWJVHUAUKGUWSUSUCAUWNUWDUABMBCUTVAVBVCUWKUWRUWHUC
      UKUWKUWLUKGZJZUWMUWQUWHUWQHUWPUEZUVRIZUXDUWMJZUWHUWPAHVDUXGUXEBGZUWEUXEGZ
      UXFUWHVIUXGUXEDMUVOUWEVEPZVFZVGHQUWLUWOPZUEZUEZBUXGUXEUXJUXMGZDMVJZUXNUXG
      UXEMUXEVKZUXPUXEMIUXQUXERUXEHVLZMHUWPVMMMHVNZUXRMIVOMMHVPVQVRUXEMVSVTUXGU
      XODMUXEUXGUVOMGZJZUVPHLZUVORZEUWPKZFUDZHLZUXJRZFUXLKZUVOUXEGZUXOUYAUYDUYH
      UYAUYCUYHEUWPUYAUVPUWPGZJZUYFUYBUWEVEPZRZFUXLKZUYCUYHUYKUVPUWDUHPZUXLGZUY
      OHLZUYLRZUYNUYKUYPUYOQUWNPZUWLNUGZUYKUYSUVPUWDUWNPZUWLNUYKUYOQUHPZOLZUYOO
      LZUYSVUAUYKVUBUYOOUYKUYOUYKUVPUWDUYAUWPMUVPUXDUWPMIZUWMUXTUXCUWKUWLWAGZVU
      EUWLWCUXBUWKVUFVUEURUWNUWDUWLMWBVCWDZWEZUOZUWKUXCUWMUXTUYJWFZWGZWHWIUYKUY
      OMGZQMGZUYSVUCRVUKWMUYOQUWNUWNWJZWKWLUYKUVPMGZUWKVUAVUDRVUIVUJUVPUWDUWNVU
      NWKSWNUYKUYJVUAUWLNUGZUYAUYJWOUYKUXBVUFUWKVUOUYJVUPTUXBUYKURXDZUYKUWLUYAU
      XCUYJUWKUXCUWMUXTWPZWQWRZVUJVUIUVPUWNUWDUWLMWSWTXEXAUYKUXBVUFVUMVULUYPUYT
      TVUQVUSUYKXBVUKUYOUWNQUWLMWSWTXCUYKVUOUWKUYRVUIVUJUVPUWDXFSUYMUYRFUYOUXLU
      YEUYORUYFUYQUYLUYEUYOHXGXHXISUYCUYMUYGFUXLUYCUYLUXJUYFUYBUVOUWEVEXJXKXOXL
      XMUYAUYGUYDFUXLUYAUYEUXLGZJZUYGUWEUYFXNPZUVORZUYDUYGUXJUYFRVVAVVCUYFUXJXP
      VVAUVOUWEUYFUXGUXTVUTXQVVAUWKUWEMGZUWKUXCUWMUXTVUTWFZUWDXRZXSVVAUYEMGZUYF
      MGUYAUXLMUYEUYAVUFUXLMIZUYAUWLVURWRUXBVUMVUFVVHURWMUWNQUWLMWBXTXSZUOZUYEX
      RXSVVAUWKUWEQYFZVVEUWDYAZXSYBYCVVAUYBVVBRZEUWPKZVVCUYDVVAUWDUYEYGPZUWPGZV
      VOHLZVVBRZVVNVVAVVPVVOUWDUWNPZUWLNUGZVVAVVSUYEQUWNPZUWLNVVAVVOUWDUHPZOLZU
      YEQUHPZOLZVVSVWAVVAVWBVWDOVVAVWBUYEVWDVVAUWDUYEVVEVVJYDVVAUYEVVJWHYEWIVVA
      VVOMGZUWKVVSVWCRVVAUWDUYEVVEVVJYHZVVEVVOUWDUWNVUNWKSVVAVVGVUMVWAVWERVVJWM
      UYEQUWNVUNWKWLWNVVAVUTVWAUWLNUGZUYAVUTWOVVAUXBVUFVUMVVGVUTVWHTUXBVVAURXDZ
      VVAUWLUYAUXCVUTVURWQWRZVVAXBVVJUYEUWNQUWLMWSWTXEXAVVAUXBVUFUWKVWFVVPVVTTV
      WIVWJVVEVWGVVOUWNUWDUWLMWSWTXCVVAUWKVVGVVRVVEVVJUWDUYEYISVVMVVREVVOUWPUVP
      VVORUYBVVQVVBUVPVVOHXGXHXISVVCVVMUYCEUWPVVBUVOUYBYJXOXLYKXMYLUYAHMYMZVUEU
      YIUYDTUXSVWKVOMMHYQVQZVUHEMUWPUVOHYNYOUYAVWKVVHUXOUYHTVWLVVIFMUXLUXJHYNYO
      YRYPYSDMUXJUXMUXKUXKWJZYTUUAUXGUXKBBUUBPZGUXMBGZUXNBGUXGUXKMMUUCPZVWNUXGV
      VDVVKUXKVWPGUWKVVDUXCUWMVVFWEUWKVVKUXCUWMVVLWEDUWEUXKVWMUUDSBCUUEUUFUXCUW
      MVWOUWKUWLBCUUGUUHUXMUXKBBUUISUUJUXDUXIUWMUXDUWDUWPGZUXIUXBUWKUXCVWQURUWN
      UWDUWLMUUKVCUXDHUULZUWPHUUQZIVWQUXIVIUXSVWRVOMMHUUMVQUXDUWPMVWSVUGMMHVOUU
      NUUOUWPUWDHUUPYOUURWQUXHUXIUXFUWHUWGUXIUXFJEUXEBUVPUXERUWFUXIUVSUXFUVPUXE
      UWEUUSUVPUXEUVRUUTUVAXIUVBSUVCUVDXMUVEUVFUVNVWKUWTUWBUWITVWLUXAUWAUWHDUBM
      AHUVOUWERZUVTUWGEBVWTUVQUWFUVSUVOUWEUVPUVGUVHXOUVIYOXCBUVJGUWCUWBTBCUVKDE
      UVRBUVLVQUVM $.
  $}

  ${
    $d j k m n r x y z A $.  $d n S $.
    $( Lemma for ~ logtayl .  (Contributed by Mario Carneiro, 1-Apr-2015.) $)
    logtayllem $p |- ( ( A e. CC /\ ( abs ` A ) < 1 ) -> seq 0 ( + ,
      ( n e. NN0 |-> ( if ( n = 0 , 0 , ( 1 / n ) ) x. ( A ^ n ) ) ) )
        e. dom ~~> ) $=
      ( cc wcel cabs cfv c1 clt wbr wa cn0 cexp co cc0 wceq cdiv cmul cr adantl
      cle vk cmpt cif nn0uz 1nn0 a1i oveq2 eqid ovex fvmpt abscl adantr reexpcl
      cv sylan eqeltrd eqeq1 ifbieq2d oveq12d 0cnd wn nn0cn df-ne biimpri reccl
      wne syl2an ifclda expcl adantlr mulcld caddc cseq cmin recnd absidm simpr
      cli cdm eqbrtrd geolim seqex breldm syl 1red cuz cn elnnuz nnrecre sylan2
      nnnn0 absmuld crp nnrp rpreccld rpge0d absidd simpl eqtrd absge0d breqtrd
      absexp nnge1 wb 0lt1 nngt0 lerec syl22anc mpbid 1div1e1 syl6breq lemul1ad
      nnre nnne0 neneqd iffalsed oveq1d fveq2d oveq2d 3brtr4d sylan2br cvgcmpce
      ) ACDZAEFZGHIZJZGUABKYDBUNZLMZUBZBKYGNOZNGYGPMZUCZAYGLMZQMZUBZNGKUDGKDYFU
      EUFYFUAUNZKDZJZYPYIFZYDYPLMZRYQYSYTOZYFBYPYHYTKYIYGYPYDLUGYIUHYDYPLUIUJSZ
      YFYDRDZYQYTRDZYCUUCYEAUKULZYDYPUMUOZUPYRYPYOFZYPNOZNGYPPMZUCZAYPLMZQMZCYQ
      UUGUULOZYFBYPYNUULKYOYGYPOZYLUUJYMUUKQUUNYJUUHYKUUINYGYPNUQYGYPGPUGURYGYP
      ALUGUSYOUHUUJUUKQUIUJSZYRUUJUUKYRUUHNUUICYRUUHJUTYRYPCDZYPNVFZUUICDUUHVAZ
      YQUUPYFYPVBSUUQUURYPNVCVDYPVEVGVHYCYQUUKCDZYEAYPVIVJZVKUPYFVLYINVMZGGYDVN
      MZPMZVRIUVAVRVSDYFYDUAYIYFYDUUEVOYFYDEFZYDGHYCUVDYDOYEAVPULYCYEVQVTUUBWAU
      VAUVCVRVLYINWBGUVBPUIWCWDYFWEYPGWFFDYFYPWGDZUUGEFZGYSQMZTIYPWHYFUVEJZUUIU
      UKQMZEFZGYTQMZUVFUVGTUVHUVJUUIYTQMZUVKTUVHUVJUUIEFZUUKEFZQMUVLUVHUUIUUKUV
      HUUIUVEUUIRDYFYPWISZVOUVEYFYQUUSYPWKZUUTWJZWLUVHUVMUUIUVNYTQUVHUUIUVOUVHU
      UIUVHYPUVEYPWMDYFYPWNSWOWPWQYFYCYQUVNYTOUVEYCYEWRUVPAYPXBVGZUSWSUVHUUIGYT
      UVOUVHWEZUVEYFYQUUDUVPUUFWJUVHNUVNYTTUVHUUKUVQWTUVRXAUVHUUIGGPMZGTUVHGYPT
      IZUUIUVTTIZUVEUWAYFYPXCSUVHGRDNGHIZYPRDZNYPHIZUWAUWBXDUVSUWCUVHXEUFUVEUWD
      YFYPXMSUVEUWEYFYPXFSGYPXGXHXIXJXKXLVTUVHUUGUVIEUVHUUGUULUVIUVEYFYQUUMUVPU
      UOWJUVHUUJUUIUUKQUVHUUHNUUIUVHYPNUVEUUQYFYPXNSXOXPXQWSXRUVHYSYTGQUVEYFYQU
      UAUVPUUBWJXSXTYAYB $.

    $( The Taylor series for ` -u log ( 1 - A ) ` .  (Contributed by Mario
       Carneiro, 1-Apr-2015.) $)
    logtayl $p |- ( ( A e. CC /\ ( abs ` A ) < 1 ) -> seq 1 ( + ,
      ( k e. NN |-> ( ( A ^ k ) / k ) ) ) ~~> -u ( log ` ( 1 - A ) ) ) $=
      ( vn vy vj cc wcel cabs cfv c1 wa cn0 cc0 wceq cdiv cexp cmul cmpt wtru
      co vr vx vm vz clt wbr caddc cv cif cseq cmin clog cneg cli csu nn0uz 0zd
      cn weq eqeq1 oveq2 ifbieq2d oveq12d eqid ovex fvmpt adantl wn simpr sylib
      0cnd wo ord con1d imp nnrecred recnd ifclda adantlr mulcld logtayllem 0cn
      expcl cnmetdval sylancl adantr fveq2d eqtrd eqbrtrd wb cnxmet ax-mp elbl3
      cxr 1rp mpanl12 sylancr mpbird tru a1i wss mp3an sseli wne eqbrtrrd fveq2
      ax-1cn syl logcld fmptd cdm cr crab c2 c0ex eqcomd oveq1d mpteq2ia syl2an
      cle oveq1 oveq2d mpteq2dv nn0ex mptex mpbid wf fveq1d sumeq2dv sylan2 cdv
      mp1i cvv ovexd neg1cn syl6eq negeqd cuz eqtr4d cfz elnn0 isumclim2 subid1
      ccom cbl simpl cxmt crp rpxr blssm subcl abscld subid1d ibi gtned syl5eqr
      abs1 necon3i subeq0 necon3bid negcld ccnv csup cico cima absge0d peano2re
      rexrd rehalfcld cpnf cicc iccssxr ifex mpteq2i nn0cn biimpri recn seqeq3d
      df-ne reccl eleq1d rabbiia supeq1i radcnvcl sseldi 1re 0red lelttrd ltled
      avglt1 absidd avglt2 syl2anc eqeltrd radcnvle xrltletrd w3a 0re mpbir3and
      elico2 wfn absf elpreima mp2b sylanbrc wral ccncf cnvimass sseqtri eqtr2d
      ffn fdmi psercn cncff fmpt sylibr r19.21bi cpr cnelprrecn nncan elbl cmnf
      cioc cdif dvlog2lem eldifad logdmn0 ccnfld dvmptc dvmptid dvmptsub df-neg
      ctopn 1cnd syl6eqr crest ctop cnfldtop cnfldtopon toponunii restid eqcomi
      cnfldtopn blopn dvmptres cres dvlog2 crn wf1o logf1o logdmss sstri fssres
      f1of mp2an feqmptd syl5reqr dvmptco dvmptneg reccld mulcom mulm1d negnegd
      fvres dmeqd dmmptg mprg sumex cbvsumv pserdv2 ssriv nnnn0 neneqd iffalsed
      csn nnne0 nncn recidd nnm1nn0 mulid2d nnuz 1e0p1 fveq2i eqtri 1zzd pncan2
      isumshft sumeq2i geoisum 3eqtrd blcntr log1 eqeq1d simpll syl6eqel simplr
      1m0e1 neg0 expcld mul02d 0expd mul01d ifbothda cfn orci sumz dv11cn negex
      eqimssi sumeq2sdv 3eqtr3d breqtrrd seqex elnnuz sylbi addid2 1nn0 ffvelrn
      1eluzge0 elfz1eq 1m1e0 oveq2i eleq2s 0nn0 iftrue sylan9eqr seqid divrec2d
      syl5eq id 3eqtr4d sylan2br seqfeq climeq ) AFGZAHIZJUEUFZKZUGBLBUHZMNZMJV
[encoded data, 7600 characters]
      QWUMOVEVFVGVYKVYLVYMWHYHVYFVYNYF $.

    $( The Taylor series for ` -u log ( 1 - A ) ` , as an infinite sum.
       (Contributed by Mario Carneiro, 31-Mar-2015.) $)
    logtaylsum $p |- ( ( A e. CC /\ ( abs ` A ) < 1 ) ->
      sum_ k e. NN ( ( A ^ k ) / k ) = -u ( log ` ( 1 - A ) ) ) $=
      ( vn cc wcel cabs cfv c1 clt wbr wa cv cexp co cdiv cmin clog wceq adantl
      cn cneg cmpt nnuz 1zzd oveq2 id oveq12d eqid ovex fvmpt simpl nnnn0 expcl
      cn0 syl2an nncn cc0 wne nnne0 divcld logtayl isumclim ) ADEZAFGHIJZKZABLZ
      MNZVFONZHAPNQGUABCTACLZMNZVIONZUBZHTUCVEUDVFTEZVFVLGVHRVECVFVKVHTVLVIVFRZ
      VJVGVIVFOVIVFAMUEVNUFUGVLUHVGVFOUIUJSVEVMKVGVFVEVCVFUNEVGDEVMVCVDUKVFULAV
      FUMUOVMVFDEVEVFUPSVMVFUQURVEVFUSSUTACVAVB $.

    logtayl2.s $e |- S = ( 1 ( ball ` ( abs o. - ) ) 1 ) $.
    $( Power series expression for the logarithm.  (Contributed by Mario
       Carneiro, 31-Mar-2015.) $)
    logtayl2 $p |- ( A e. S -> seq 1 ( + ,
      ( k e. NN |-> ( ( ( -u 1 ^ ( k - 1 ) ) / k ) x. ( ( A - 1 ) ^ k ) ) ) )
      ~~> ( log ` A ) ) $=
      ( wcel cn c1 cneg cmin co cexp cdiv cmul cfv cc neg1cn ax-1cn wceq adantl
      a1i vn caddc cv cmpt cseq clog cli nnuz 1zzd cabs clt wbr ccom cbl eleq2i
      wa cxmt cxr wb cnxmet crp 1rp rpxr ax-mp elbl mp3an bitri simplbi sylancr
      subcl eqid cnmetdval simprbi eqbrtrrd logtayl syl2anc nncan fveq2d negeqd
      breqtrd oveq2 id oveq12d ovex fvmpt cn0 nnnn0 expcl syl2an nncn cc0 nnne0
      wne divcld eqeltrd divnegd mulm1d sylancl mulneg1d neg1ne0 cz nnz ax-1ne0
      expm1d divneg2d div1d 3eqtr2d oveq1d negsubdi2 eqtr2d adantr mulexp eqtrd
      mp3an1 3eqtr4d nnm1nn0 div23d oveq1 oveq2d isermulc2 cmnf cioc cdif sseli
      dvlog2lem logdmn0 syl logcld negcld negnegd ) ABEZUBCFGHZCUCZGIJZKJZYMLJZ
      AGIJZYMKJZMJZUDZGUEYLAUFNZHZMJZUUAUGYKUUBYLUACFGAIJZYMKJZYMLJZUDZYTGFUHYK
      UIYLOEZYKPTYKUBUUGGUEZGUUDIJZUFNZHZUUBUGYKUUDOEZUUDUJNZGUKULUUIUULUGULYKG
      OEZAOEZUUMQYKUUPGAUJIUMZJZGUKULZYKAGGUUQUNNJZEZUUPUUSUPZBUUTADUOUUQOUQNEU
      UOGUREZUVAUVBUSUTQGVAEUVCVBGVCVDAUUQGGOVEVFVGZVHZGAVJVIZYKUURUUNGUKYKUUOU
      UPUURUUNRQUVEGAUUQUUQVKVLVIYKUUPUUSUVDVMVNUUDCVOVPYKUUKUUAYKUUJAUFYKUUOUU
      PUUJARQUVEGAVQVIVRVSVTYKUAUCZFEZUPZUVGUUGNZUUDUVGKJZUVGLJZOUVHUVJUVLRYKCU
      VGUUFUVLFUUGYMUVGRZUUEUVKYMUVGLYMUVGUUDKWAUVMWBZWCUUGVKUVKUVGLWDWESZUVIUV
      KUVGYKUUMUVGWFEZUVKOEUVHUVFUVGWGZUUDUVGWHWIZUVHUVGOEYKUVGWJSZUVHUVGWKWMYK
      UVGWLSZWNZWOUVIYLUVGGIJZKJZUVGLJZYQUVGKJZMJZYLUVLMJZUVGYTNZYLUVJMJUVIUWGU
      WCUWEMJZUVGLJZUWFUVIUVLHUVKHZUVGLJUWGUWJUVIUVKUVGUVRUVSUVTWPUVIUVLUWAWQUV
      IUWIUWKUVGLUVIYLUVGKJZHZUWEMJUWLUWEMJZHUWIUWKUVIUWLUWEUVIUUHUVPUWLOEPUVHU
      VPYKUVQSYLUVGWHVIZYKYQOEZUVPUWEOEUVHYKUUPUUOUWPUVEQAGVJWRZUVQYQUVGWHWIZWS
      UVIUWCUWMUWEMUVIUWCUWLYLLJUWLGLJZHUWMUVIYLUVGUUHUVIPTYLWKWMUVIWTTUVHUVGXA
      EYKUVGXBSXDUVIUWLGUWOUUOUVIQTGWKWMUVIXCTXEUVIUWSUWLUVIUWLUWOXFVSXGXHUVIUV
      KUWNUVIUVKYLYQMJZUVGKJZUWNYKUVKUXARUVHYKUUDUWTUVGKYKUWTYQHZUUDYKYQUWQWQYK
      UUPUUOUXBUUDRUVEQAGXIWRXJXHXKYKUWPUVPUXAUWNRZUVHUWQUVQUUHUWPUVPUXCPYLYQUV
      GXLXNWIXMVSXOXHXOUVIUWCUWEUVGUVIUUHUWBWFEZUWCOEPUVHUXDYKUVGXPSYLUWBWHVIUW
      RUVSUVTXQXJUVHUWHUWFRYKCUVGYSUWFFYTUVMYPUWDYRUWEMUVMYOUWCYMUVGLUVMYNUWBYL
      KYMUVGGIXRXSUVNWCYMUVGYQKWAWCYTVKUWDUWEMWDWESUVIUVJUVLYLMUVOXSXOXTYKUUCUU
      BHUUAYKUUBYKUUAYKAUVEYKAOYAWKYBJYCZEAWKWMBUXEABDYEYDAUXEUXEVKYFYGYHZYIWQY
      KUUAUXFYJXMVT $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z T $.
    $( The natural logarithm function on the reals is a strictly concave
       function.  (Contributed by Mario Carneiro, 20-Jun-2015.) $)
    logccv $p |- ( ( ( A e. RR+ /\ B e. RR+ /\ A < B ) /\ T e. ( 0 (,) 1 ) ) ->
      ( ( T x. ( log ` A ) ) + ( ( 1 - T ) x. ( log ` B ) ) ) <
        ( log ` ( ( T x. A ) + ( ( 1 - T ) x. B ) ) ) ) $=
      ( vx crp wcel clt wbr cc0 c1 co wa clog cfv cmul cneg cr syl cc wceq cioo
      vy vz w3a cmin caddc cicc cv cmpt crn simpl1 rpred simpl2 simpl3 ccncf wf
      cdiv cpnf wss ltpnf cxr 0xr pnfxr iccssioo mpanl12 syl2anc ioorp syl6sseq
      rpgt0d sselda relogcld renegcld eqid fmptd ax-resscn cres resabs1d cncfss
      wb ssid mp2an relogcn sselii mpisyl eqeltrrd fvres negeqd mpteq2ia eqcomi
      rescncf negfcncf cncffvrn sylancr mpbird cdv wiso wor wpo wi wral ioossre
      wfo ltso soss mp2 a1i ioossicc syl5ss rprecred frn wfn negex fnmpti dffn4
      sopo mpbi adantrl adantrr ltnegd ltrecd oveq2 fvmpt adantl 3bitr4d biimpd
      breqan12d ralrimivva soisoi syl22anc ctg recnd oveq2d fveq2 rpxrd syl3anc
      cvv oveq1d mulneg2d eqtrd remulcld ccnfld ctopn reelprrecn relogcl negcld
      cpr ovexd dvrelog wf1o relogf1o f1of mp1i syl6eq syl5reqr dvmptneg tgioo2
      feqmptd cnt iccntr dvmptres2 isoeq1 simpr dvcvx ax-1cn nncan sseldi iirev
      elioore lincmb01cmp syl31anc cle lbicc2 ubicc2 1re resubcl oveq12d negdid
      ltled eqtr4d 3brtr3d readdcld sseldd ) AEFZBEFZABGHZUDZCIJUAKZFZLZCAMNZOK
      ZJCUEKZBMNZOKZUFKZCAOKZUWLBOKZUFKZMNZGHUWSPZUWOPZGHUWIUWRDABUGKZDUHZMNZPZ
      UIZNZCAUXFNZOKZUWLBUXFNZOKZUFKZUWTUXAGUWIABUWRCUXFDABUAKZJUXCUQKZPZUIZUJZ
      UWIAUWCUWDUWEUWHUKZULZUWIBUWCUWDUWEUWHUMZULZUWCUWDUWEUWHUNZUWIUXFUXBQUOKF
      ZUXBQUXFUPZUWIDUXBUXEQUXFUWIUXCUXBFZLZUXDUYFUXCUWIUXBEUXCUWIUXBIURUAKZEUW
      IIAGHZBURGHZUXBUYGUSZUWIAUXRVIUWIBQFZUYIUYABUTRIVAFURVAFUYHUYILUYJVBVCIUR
      ABVDVEVFVGVHZVJVKVLUXFVMZVNUWIQSUSZUXFUXBSUOKZFZUYCUYDVSVOUWIMUXBVPZUYOFU
      YPUWIMEVPZUXBVPZUYQUYOUWIMUXBEUYLVQUWIUXBEUSUYRESUOKZFUYSUYOFUYLEQUOKZUYT
      UYRUYNSSUSVUAUYTUSVOSVTEQSVRWAWBWCESUXBUYRWJWDWEDUXBUYQUXFDUXBUXCUYQNZPZU
      IUXFDUXBVUCUXEUYEVUBUXDUXCUXBMWFWGWHWIWKRUXBSQUXFWLWMWNUWIUXMUXQGGQUXFWOK
      ZWPZUXMUXQGGUXPWPZUWIUXMGWQZUXQGWRZUXMUXQUXPXBZUBUHZUCUHZGHZVUJUXPNZVUKUX
      PNZGHZWSZUCUXMWTUBUXMWTVUFVUGUWIUXMQUSQGWQZVUGABXAXCUXMQGXDXEXFUWIUXQGWQZ
      VUHUWIUXQQUSZVUQVURUWIUXMQUXPUPVUSUWIDUXMUXOQUXPUWIUXCUXMFLZUXNVUTUXCUWIU
      XMEUXCUWIUXMUXBEABXGUYLXHZVJXIVLUXPVMZVNUXMQUXPXJRXCUXQQGXDWDUXQGXORVUIUW
      IUXPUXMXKVUIDUXMUXOUXPUXNXLZVVBXMUXMUXPXNXPXFUWIVUPUBUCUXMUXMUWIVUJUXMFZV
      UKUXMFZLZLZVULVUOVVGJVUKUQKZJVUJUQKZGHVVIPZVVHPZGHZVULVUOVVGVVHVVIVVGVUKU
      WIVVEVUKEFVVDUWIUXMEVUKVVAVJXQZXIVVGVUJUWIVVDVUJEFVVEUWIUXMEVUJVVAVJXRZXI
      XSVVGVUJVUKVVNVVMXTVVFVUOVVLVSUWIVVDVVEVUMVVJVUNVVKGDVUJUXOVVJUXMUXPUXCVU
      JTUXNVVIUXCVUJJUQYAWGVVBVVIXLYBDVUKUXOVVKUXMUXPUXCVUKTUXNVVHUXCVUKJUQYAWG
      VVBVVHXLYBYFYCYDYEYGUBUCUXMUXQGGUXPYHYIUWIVUDUXPTVUEVUFVSUWIDUXEUXOQUAUJY
      JNZUUAUUBNZYPEUXMUXBQQSUUFFUWIUUCXFZUWIUXCEFZLZUXDVVSUXDVVRUXDQFUWIUXCUUD
      YCYKZUUEUXOYPFVVSVVCXFUWIDUXDUXNQYPEVVQVVTVVSJUXCUQUUGUWIDEUXNUIQUYRWOKQD
      EUXDUIZWOKDUUHUWIUYRVWAQWOUWIUYRDEUXCUYRNZUIVWAUWIDEQUYREQUYRUUIEQUYRUPUW
      IUUJEQUYRUUKUULUUQDEVWBUXDUXCEMWFWHUUMYLUUNUUOUYLVVPVVPVMZUUPVWCUWIAQFZUY
      KUXBVVOUURNNUXMTUXSUYAABUUSVFUUTUXMUXQGGUXPVUDUVARWNUWFUWHUVBZUWRVMUVCUWI
      UWRUXBFUXGUWTTUWIJUWLUEKZAOKZUWQUFKZUWRUXBUWIVWGUWPUWQUFUWIVWFCAOUWIJSFCS
      FVWFCTUVDUWICUWHCQFZUWFCIJUVHYCZYKZJCUVEWMYQYQUWIVWDUYKUWEUWLIJUGKZFZVWHU
      XBFUXSUYAUYBUWICVWLFVWMUWIUWGVWLCIJXGVWEUVFCUVGRABUWLUVIUVJWEZDUWRUXEUWTU
      XBUXFUXCUWRTUXDUWSUXCUWRMYMWGUYMUWSXLYBRUWIUXLUWKPZUWNPZUFKUXAUWIUXIVWOUX
      KVWPUFUWIUXICUWJPZOKVWOUWIUXHVWQCOUWIAUXBFZUXHVWQTUWIAVAFZBVAFZABUVKHZVWR
      UWIAUXRYNZUWIBUXTYNZUWIABUXSUYAUYBUVRZABUVLYODAUXEVWQUXBUXFUXCATUXDUWJUXC
      AMYMWGUYMUWJXLYBRYLUWICUWJVWKUWIUWJUWIAUXRVKZYKYRYSUWIUXKUWLUWMPZOKVWPUWI
      UXJVXFUWLOUWIBUXBFZUXJVXFTUWIVWSVWTVXAVXGVXBVXCVXDABUVMYODBUXEVXFUXBUXFUX
      CBTUXDUWMUXCBMYMWGUYMUWMXLYBRYLUWIUWLUWMUWIUWLUWIJQFVWIUWLQFUVNVWJJCUVOWM
      ZYKUWIUWMUWIBUXTVKZYKYRYSUVPUWIUWKUWNUWIUWKUWICUWJVWJVXEYTZYKUWIUWNUWIUWL
      UWMVXHVXIYTZYKUVQUVSUVTUWIUWOUWSUWIUWKUWNVXJVXKUWAUWIUWRUWIUXBEUWRUYLVWNU
      WBVKXSWN $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( Value of the complex power function.  (Contributed by Mario Carneiro,
       2-Aug-2014.) $)
    cxpval $p |- ( ( A e. CC /\ B e. CC ) -> ( A ^c B ) =
      if ( A = 0 , if ( B = 0 , 1 , 0 ) , ( exp ` ( B x. ( log ` A ) ) ) ) ) $=
      ( vx vy cc cv cc0 wceq c1 cif clog cmul co ce ccxp wa simpl eqeq1d fveq2d
      cfv simpr ifbid oveq12d ifbieq12d df-cxp ax-1cn keepel elexi fvex ovmpt2a
      0cn ifex ) CDABEECFZGHZDFZGHZIGJZUOUMKTZLMZNTZJAGHZBGHZIGJZBAKTZLMZNTZJOU
      MAHZUOBHZPZUNVAUQUTVCVFVIUMAGVGVHQZRVIUPVBIGVIUOBGVGVHUAZRUBVIUSVENVIUOBU
      RVDLVKVIUMAKVJSUCSUDCDUEVAVCVFVCEVBIGEUFUKUGUHVENUIULUJ $.
  $}

  $( Value of the complex power function.  (Contributed by Mario Carneiro,
     2-Aug-2014.) $)
  cxpef $p |- ( ( A e. CC /\ A =/= 0 /\ B e. CC ) ->
      ( A ^c B ) = ( exp ` ( B x. ( log ` A ) ) ) ) $=
    ( cc wcel cc0 wne w3a ccxp co wceq c1 cif clog cmul ce cxpval 3adant2 simp2
    cfv neneqd iffalsed eqtrd ) ACDZAEFZBCDZGZABHIZAEJZBEJKELZBAMSNIOSZLZUJUCUE
    UGUKJUDABPQUFUHUIUJUFAEUCUDUERTUAUB $.

  $( Value of the complex power function when the first argument is zero.
     (Contributed by Mario Carneiro, 2-Aug-2014.) $)
  0cxp $p |- ( ( A e. CC /\ A =/= 0 ) -> ( 0 ^c A ) = 0 ) $=
    ( cc wcel cc0 wne ccxp co wceq c1 cif clog cfv cmul ce 0cn cxpval mpan eqid
    iftruei syl6eq ifnefalse sylan9eq ) ABCZADEDAFGZADHIDJZDUCUDDDHZUEADKLMGNLZ
    JZUEDBCUCUDUHHODAPQUFUEUGDRSTADIDUAUB $.

  $( Relate the complex power function to the integer power function.
     (Contributed by Mario Carneiro, 2-Aug-2014.) $)
  cxpexpz $p |- ( ( A e. CC /\ A =/= 0 /\ B e. ZZ ) ->
    ( A ^c B ) = ( A ^ B ) ) $=
    ( cc wcel cc0 wne cz w3a ccxp co clog cfv cmul cexp wceq zcn syl3an3 explog
    ce cxpef eqtr4d ) ACDZAEFZBGDZHABIJZBAKLMJSLZABNJUDUBUCBCDUEUFOBPABTQABRUA
    $.

  $( Relate the complex power function to the integer power function.
     (Contributed by Mario Carneiro, 2-Aug-2014.) $)
  cxpexp $p |- ( ( A e. CC /\ B e. NN0 ) -> ( A ^c B ) = ( A ^ B ) ) $=
    ( cc wcel cn0 wa ccxp co cexp cc0 wi wne c1 cif cfv 0cn iftruei oveq2 oveq1
    wceq cn wo elnn0 nncn nnne0 0cxp syl2anc 0exp eqtr4d clog cmul cxpval mp2an
    eqid 3eqtri 0exp0e1 eqtr4i 3eqtr4a jaoi sylbi eqeq12d syl5ibrcom adantl imp
    ce cz nn0z cxpexpz 3expa sylan2 an32s pm2.61dane ) ACDZBEDZFZABGHZABIHZTZAJ
    VOAJTZVRVNVSVRKVMVNVRVSJBGHZJBIHZTZVNBUADZBJTZUBWBBUCWCWBWDWCVTJWAWCBCDBJLV
    TJTBUDBUEBUFUGBUHUIWDJJGHZJJIHZVTWAWEMWFWEJJTZWGMJNZJJUJOUKHVEOZNZWHMJCDZWK
    WEWJTPPJJULUMWGWHWIJUNZQWGMJWLQUOUPUQBJJGRBJJIRURUSUTVSVPVTVQWAAJBGSAJBISVA
    VBVCVDVMAJLZVNVRVNVMWMFBVFDZVRBVGVMWMWNVRABVHVIVJVKVL $.

  $( Logarithm of a complex power.  (Contributed by Mario Carneiro,
     2-Aug-2014.) $)
  logcxp $p |- ( ( A e. RR+ /\ B e. RR ) ->
    ( log ` ( A ^c B ) ) = ( B x. ( log ` A ) ) ) $=
    ( crp wcel cr wa ccxp co clog cfv cmul ce cc cc0 wne wceq rpcn adantr rpne0
    simpr recnd cxpef syl3anc fveq2d id relogcl remulcl syl2anr relogefd eqtrd
    ) ACDZBEDZFZABGHZIJBAIJZKHZLJZIJUPUMUNUQIUMAMDZANOZBMDUNUQPUKURULAQRUKUSULA
    SRUMBUKULTUAABUBUCUDUMUPULULUOEDUPEDUKULUEAUFBUOUGUHUIUJ $.

  $( Value of the complex power function when the second argument is zero.
     (Contributed by Mario Carneiro, 2-Aug-2014.) $)
  cxp0 $p |- ( A e. CC -> ( A ^c 0 ) = 1 ) $=
    ( cc wcel cc0 ccxp co cexp c1 cn0 wceq 0nn0 cxpexp mpan2 exp0 eqtrd ) ABCZA
    DEFZADGFZHPDICQRJKADLMANO $.

  $( Value of the complex power function at one.  (Contributed by Mario
     Carneiro, 2-Aug-2014.) $)
  cxp1 $p |- ( A e. CC -> ( A ^c 1 ) = A ) $=
    ( cc wcel c1 ccxp co cexp cn0 wceq 1nn0 cxpexp mpan2 exp1 eqtrd ) ABCZADEFZ
    ADGFZAODHCPQIJADKLAMN $.

  $( Value of the complex power function at one.  (Contributed by Mario
     Carneiro, 2-Aug-2014.) $)
  1cxp $p |- ( A e. CC -> ( 1 ^c A ) = 1 ) $=
    ( cc wcel c1 ccxp co clog cfv cmul ce cc0 wceq ax-1cn ax-1ne0 cxpef mp3an12
    wne log1 oveq2i mul01 syl5eq fveq2d ef0 syl6eq eqtrd ) ABCZDAEFZADGHZIFZJHZ
    DDBCDKQUFUGUJLMNDAOPUFUJKJHDUFUIKJUFUIAKIFKUHKAIRSATUAUBUCUDUE $.

  $( Write the exponential function as an exponent to the power ` _e ` .
     (Contributed by Mario Carneiro, 2-Aug-2014.) $)
  ecxp $p |- ( A e. CC -> ( _e ^c A ) = ( exp ` A ) ) $=
    ( cc wcel ceu ccxp co clog cfv cmul ce cc0 wne wceq ere recni epos gt0ne0ii
    cxpef mp3an12 c1 loge oveq2i mulid1 syl5eq fveq2d eqtrd ) ABCZDAEFZADGHZIFZ
    JHZAJHDBCDKLUGUHUKMDNODNPQDARSUGUJAJUGUJATIFAUITAIUAUBAUCUDUEUF $.

  $( Closure of the complex power function.  (Contributed by Mario Carneiro,
     2-Aug-2014.) $)
  cxpcl $p |- ( ( A e. CC /\ B e. CC ) -> ( A ^c B ) e. CC ) $=
    ( cc wcel wa ccxp co cc0 wceq c1 cif clog cfv cmul cxpval ax-1cn 0cn keepel
    ce a1i wn wne df-ne id logcl mulcl syl2anr efcl syl sylan2br ifclda eqeltrd
    an32s ) ACDZBCDZEZABFGAHIZBHIZJHKZBALMZNGZSMZKCABOUPUQUSVBCUSCDUPUQEURJHCPQ
    RTUQUAUPAHUBZVBCDZAHUCUPVCEVACDZVDUNVCUOVEUOUOUTCDVEUNVCEUOUDAUEBUTUFUGUMVA
    UHUIUJUKUL $.

  $( Real closure of the complex power function.  (Contributed by Mario
     Carneiro, 2-Aug-2014.) $)
  recxpcl $p |- ( ( A e. RR /\ 0 <_ A /\ B e. RR ) -> ( A ^c B ) e. RR ) $=
    ( cr wcel cc0 cle wbr w3a ccxp co wceq c1 cif clog cfv cmul ce cc recn wa
    cxpval syl2an 3adant2 1re 0re keepel a1i wn wne df-ne simpl3 simpl1 ne0gt0d
    simpl2 simpr elrpd relogcld remulcld reefcld sylan2br ifclda eqeltrd ) ACDZ
    EAFGZBCDZHZABIJZAEKZBEKZLEMZBANOZPJZQOZMZCVCVEVGVNKZVDVCARDBRDVOVEASBSABUAU
    BUCVFVHVJVMCVJCDVFVHTVILECUDUEUFUGVHUHVFAEUIZVMCDAEUJVFVPTZVLVQBVKVCVDVEVPU
    KVQAVQAVCVDVEVPULZVQAVRVCVDVEVPUNVFVPUOUMUPUQURUSUTVAVB $.

  $( Positive real closure of the complex power function.  (Contributed by
     Mario Carneiro, 2-Aug-2014.) $)
  rpcxpcl $p |- ( ( A e. RR+ /\ B e. RR ) -> ( A ^c B ) e. RR+ ) $=
    ( crp wcel cr wa ccxp cc0 cle wbr rprege0 recxpcl 3expa sylan clog cfv cmul
    co clt cc ce relogcl remulcl syl2anr efgt0 syl wne wceq rpcnne0 recn syl2an
    id cxpef breqtrrd elrpd ) ACDZBEDZFZABGRZUPAEDZHAIJZFUQUSEDZAKUTVAUQVBABLMN
    URHBAOPZQRZUAPZUSSURVDEDZHVESJUQUQVCEDVFUPUQULAUBBVCUCUDVDUEUFUPATDZAHUGZFB
    TDZUSVEUHZUQAUIBUJVGVHVIVJABUMMUKUNUO $.

  $( Complex exponentiation is nonzero if its mantissa is nonzero.
     (Contributed by Mario Carneiro, 2-Aug-2014.) $)
  cxpne0 $p |- ( ( A e. CC /\ A =/= 0 /\ B e. CC ) -> ( A ^c B ) =/= 0 ) $=
    ( cc wcel cc0 wne w3a ccxp co clog cfv cmul ce cxpef wa logcl mulcl syl2anr
    id 3impa efne0 syl eqnetrd ) ACDZAEFZBCDZGZABHIBAJKZLIZMKZEABNUGUICDZUJEFUD
    UEUFUKUFUFUHCDUKUDUEOUFSAPBUHQRTUIUAUBUC $.

  $( Complex exponentiation is zero iff the mantissa is zero and the exponent
     is nonzero.  (Contributed by Mario Carneiro, 23-Apr-2015.) $)
  cxpeq0 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A ^c B ) = 0 <->
    ( A = 0 /\ B =/= 0 ) ) ) $=
    ( cc wcel wa ccxp co cc0 wceq wne cxpne0 3com23 3expia necon4d ax-1ne0 cxp0
    c1 neeq1d mpbiri syl5ibrcom adantr oveq2 necon2d jcad wi 0cxp oveq1 expimpd
    eqeq1d ancomsd adantl impbid ) ACDZBCDZEZABFGZHIZAHIZBHJZEZUOUQURUSUOAHUPHU
    MUNAHJZUPHJZUMVAUNVBABKLMNUOBHUPHUOVBBHIZAHFGZHJZUMVEUNUMVEQHJOUMVDQHAPRSUA
    VCUPVDHBHAFUBRTUCUDUNUTUQUEUMUNUSURUQUNUSURUQUNUSEUQURHBFGZHIBUFURUPVFHAHBF
    UGUITUHUJUKUL $.

  $( Sum of exponents law for complex exponentiation.  Proposition 10-4.2(a) of
     [Gleason] p. 135.  (Contributed by Mario Carneiro, 2-Aug-2014.) $)
  cxpadd $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ B e. CC /\ C e. CC ) ->
    ( A ^c ( B + C ) ) = ( ( A ^c B ) x. ( A ^c C ) ) ) $=
    ( cc wcel cc0 wne wa w3a caddc co clog cfv cmul ce ccxp wceq mulcld syl3anc
    cxpef simp2 simp3 logcl 3ad2ant1 adddird fveq2d efadd syl2anc simp1l simp1r
    eqtrd addcl 3adant1 oveq12d 3eqtr4d ) ADEZAFGZHZBDEZCDEZIZBCJKZALMZNKZOMZBV
    CNKZOMZCVCNKZOMZNKZAVBPKZABPKZACPKZNKVAVEVFVHJKZOMZVJVAVDVNOVABCVCURUSUTUAZ
    URUSUTUBZURUSVCDEUTAUCUDZUEUFVAVFDEVHDEVOVJQVABVCVPVRRVACVCVQVRRVFVHUGUHUKV
    AUPUQVBDEZVKVEQUPUQUSUTUIZUPUQUSUTUJZUSUTVSURBCULUMAVBTSVAVLVGVMVINVAUPUQUS
    VLVGQVTWAVPABTSVAUPUQUTVMVIQVTWAVQACTSUNUO $.

  $( Value of a nonzero complex number raised to a complex power plus one.
     (Contributed by Mario Carneiro, 2-Aug-2014.) $)
  cxpp1 $p |- ( ( A e. CC /\ A =/= 0 /\ B e. CC ) ->
    ( A ^c ( B + 1 ) ) = ( ( A ^c B ) x. A ) ) $=
    ( cc wcel cc0 wne w3a c1 caddc co ccxp cmul wceq ax-1cn cxpadd mp3an3 3impa
    wa cxp1 3ad2ant1 oveq2d eqtrd ) ACDZAEFZBCDZGZABHIJKJZABKJZAHKJZLJZUHALJUCU
    DUEUGUJMZUCUDRUEHCDUKNABHOPQUFUIAUHLUCUDUIAMUEASTUAUB $.

  $( Value of a complex number raised to a negative power.  (Contributed by
     Mario Carneiro, 2-Aug-2014.) $)
  cxpneg $p |- ( ( A e. CC /\ A =/= 0 /\ B e. CC ) ->
    ( A ^c -u B ) = ( 1 / ( A ^c B ) ) ) $=
    ( cc wcel cc0 wne w3a ccxp co cneg c1 simp1 simp3 cxpcl negcld cxpne0 caddc
    syl2anc cmul wceq negidd oveq2d simp2 cxpadd syl211anc syl 3eqtr3d mvllmuld
    cxp0 ) ACDZAEFZBCDZGZABHIZABJZHIZKUMUJULUNCDUJUKULLZUJUKULMZABNRUMUJUOCDZUP
    CDUQUMBUROZAUONRABPUMABUOQIZHIZAEHIZUNUPSIZKUMVAEAHUMBURUAUBUMUJUKULUSVBVDT
    UQUJUKULUCURUTABUOUDUEUMUJVCKTUQAUIUFUGUH $.

  $( Exponent subtraction law for complex exponentiation.  (Contributed by
     Mario Carneiro, 22-Sep-2014.) $)
  cxpsub $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ B e. CC /\ C e. CC ) ->
    ( A ^c ( B - C ) ) = ( ( A ^c B ) / ( A ^c C ) ) ) $=
    ( cc wcel cc0 wne wa cneg caddc co ccxp cmul cdiv wceq oveq2d syl3anc cxpcl
    w3a syl2anc cmin negcl cxpadd syl3an3 simp2 negsubd c1 simp1l simp1r cxpneg
    simp3 cxpne0 divrecd eqtr4d 3eqtr3d ) ADEZAFGZHZBDEZCDEZSZABCIZJKZLKZABLKZA
    VBLKZMKZABCUAKZLKVEACLKZNKZUTURUSVBDEVDVGOCUBABVBUCUDVAVCVHALVABCURUSUTUEZU
    RUSUTUKZUFPVAVGVEUGVINKZMKVJVAVFVMVEMVAUPUQUTVFVMOUPUQUSUTUHZUPUQUSUTUIZVLA
    CUJQPVAVEVIVAUPUSVEDEVNVKABRTVAUPUTVIDEVNVLACRTVAUPUQUTVIFGVNVOVLACULQUMUNU
    O $.

  $( Nonnegative exponentiation with a real exponent is nonnegative.
     (Contributed by Mario Carneiro, 2-Aug-2014.) $)
  cxpge0 $p |- ( ( A e. RR /\ 0 <_ A /\ B e. RR ) -> 0 <_ ( A ^c B ) ) $=
    ( cr wcel cc0 cle wbr ccxp co wa clt wceq wo wb 0re leloe mpan c1 syl5breqr
    cc adantr crp wi elrp rpcxpcl rpge0d ex sylbir impancom 0le1 0cn cxp0 ax-mp
    breqtrri simpr oveq2d wne 0le0 recn sylan pm2.61dane adantl oveq1 syl5ibcom
    0cxp breq2d jaod sylbid 3impia 3com23 ) ACDZBCDZEAFGZEABHIZFGZVKVLVMVOVKVLJ
    ZVMEAKGZEALZMZVOVKVMVSNZVLECDVKVTOEAPQUAVPVQVOVRVKVQVLVOVKVQJAUBDZVLVOUCAUD
    WAVLVOWAVLJVNABUEUFUGUHUIVPEEBHIZFGZVRVOVLWCVKVLWCBEVLBELZJZEEEHIZWBFERWFFU
    JETDWFRLUKEULUMUNWEBEEHVLWDUOUPSVLBEUQZJEEWBFURVLBTDWGWBELBUSBVEUTSVAVBVRWB
    VNEFEABHVCVFVDVGVHVIVJ $.

  ${
    mulcxp.1 $e |- ( ph -> A e. CC ) $.
    mulcxp.2 $e |- ( ph -> C e. CC ) $.
    $( Lemma for ~ mulcxp .  (Contributed by Mario Carneiro, 2-Aug-2014.) $)
    mulcxplem $p |- ( ph -> ( 0 ^c C ) = ( ( A ^c C ) x. ( 0 ^c C ) ) ) $=
      ( cc0 ccxp co cmul wceq c1 oveq2 cc wcel 0cn ax-mp syl6eq oveq12d eqeq12d
      cxp0 wne wa cxpcl syl2anc adantr mul01d 0cxp sylan oveq2d 3eqtr4rd oveq1d
      syl 1t1e1 syl6req pm2.61ne ) AFCGHZBCGHZUPIHZJKBFGHZKIHZJCFCFJZUPKURUTVAU
      PFFGHZKCFFGLFMNVBKJOFTPQZVAUQUSUPKICFBGLVCRSACFUAZUBZUQFIHFURUPVEUQAUQMNZ
      VDABMNZCMNZVFDEBCUCUDUEUFVEUPFUQIAVHVDUPFJECUGUHZUIVIUJAUTKKIHKAUSKKIAVGU
      SKJDBTULUKUMUNUO $.
  $}

  $( Complex exponentiation of a product.  Proposition 10-4.2(c) of [Gleason]
     p. 135.  (Contributed by Mario Carneiro, 2-Aug-2014.) $)
  mulcxp $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) /\
    C e. CC ) -> ( ( A x. B ) ^c C ) = ( ( A ^c C ) x. ( B ^c C ) ) ) $=
    ( wcel cc0 wa cc cmul co ccxp wceq oveq1d eqtrd oveq1 wne cfv adantr mulcld
    clog ce cr cle wbr simp1l recnd mul01d simp3 mulcxplem oveq2 oveq2d eqeq12d
    w3a syl5ibrcom simp2l mul02d cxpcl syl2anc 0cn sylancr mulcomd a1dd simpl1r
    wi caddc simprl ne0gt0d elrpd simpl2r simprr relogmuld logcld adddid fveq2d
    efadd mulne0d cxpef syl3anc oveq12d 3eqtr4d exp32 pm2.61dne ) AUADZEAUBUCZF
    ZBUADZEBUBUCZFZCGDZULZABHIZCJIZACJIZBCJIZHIZKZBEWIWOBEKZAEHIZCJIZWLECJIZHIZ
    KWIWRWSWTWIWQECJWIAWIAWBWCWGWHUDZUEZUFLWIACXBWDWGWHUGZUHMWPWKWRWNWTWPWJWQCJ
    BEAHUILWPWMWSWLHBECJNUJUKUMWIBEOZWOVCAEWIAEKZWOXDWIWOXEEBHIZCJIZWSWMHIZKWIX
    GWSXHWIXFECJWIBWIBWDWEWFWHUNZUEZUOLWIWSWMWSHIXHWIBCXJXCUHWIWMWSWIBGDZWHWMGD
    XJXCBCUPUQWIEGDWHWSGDURXCECUPUSUTMMXEWKXGWNXHXEWJXFCJAEBHNLXEWLWSWMHAECJNLU
    KUMVAWIAEOZXDWOWIXLXDFZFZCWJSPZHIZTPZCASPZHIZTPZCBSPZHIZTPZHIZWKWNXNXQXSYBV
    DIZTPZYDXNXPYETXNXPCXRYAVDIZHIYEXNXOYGCHXNABXNAWIWBXMXAQZXNAYHWBWCWGWHXMVBW
    IXLXDVEZVFVGXNBWIWEXMXIQZXNBYJWEWFWDWHXMVHWIXLXDVIZVFVGVJUJXNCXRYAWIWHXMXCQ
    ZXNAWIAGDZXMXBQZYIVKZXNBWIXKXMXJQZYKVKZVLMVMXNXSGDYBGDYFYDKXNCXRYLYORXNCYAY
    LYQRXSYBVNUQMXNWJGDWJEOWHWKXQKXNABYNYPRXNABYNYPYIYKVOYLWJCVPVQXNWLXTWMYCHXN
    YMXLWHWLXTKYNYIYLACVPVQXNXKXDWHWMYCKYPYKYLBCVPVQVRVSVTWAWA $.

  $( Complex exponentiation of a reciprocal.  (Contributed by Mario Carneiro,
     2-Aug-2014.) $)
  cxprec $p |- ( ( A e. RR+ /\ B e. CC ) ->
                 ( ( 1 / A ) ^c B ) = ( 1 / ( A ^c B ) ) ) $=
    ( crp wcel cc wa ccxp co c1 cxpcl sylan cc0 wne adantr syl3anc cmul cle wbr
    cr wceq cdiv rpcn rpreccl rpcnd rpne0 cxpne0 recidd oveq1d rprege0 rprege0d
    simpr mulcxp 1cxp syl 3eqtr3d mvllmuld ) ACDZBEDZFZABGHZIAUAHZBGHZIUQAEDZUR
    UTEDAUBZABJKUQVAEDURVBEDUQVAAUCZUDVABJKUSVCALMZURUTLMUQVCURVDNZUQVFURAUENZU
    QURUKZABUFOUSAVAPHZBGHZIBGHZUTVBPHZIUSVJIBGUSAVGVHUGUHUSASDLAQRFZVASDLVAQRF
    ZURVKVMTUQVNURAUINUQVOURUQVAVEUJNVIAVABULOUSURVLITVIBUMUNUOUP $.

  $( Complex exponentiation of a quotient.  (Contributed by Mario Carneiro,
     8-Sep-2014.) $)
  divcxp $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ B e. RR+ /\ C e. CC ) ->
                 ( ( A / B ) ^c C ) = ( ( A ^c C ) / ( B ^c C ) ) ) $=
    ( cr wcel cc0 cle wbr wa cc c1 cdiv co cmul ccxp wceq syl2anc divrecd cxpcl
    wne simp1l simp1r simp2 rpreccld rpred rpge0d simp3 mulcxp syl221anc cxprec
    crp w3a oveq2d eqtrd recnd rpcnd rpne0d oveq1d cxpne0 syl3anc 3eqtr4d ) ADE
    ZFAGHZIZBUKEZCJEZULZAKBLMZNMZCOMZACOMZKBCOMZLMZNMZABLMZCOMVKVLLMVGVJVKVHCOM
    ZNMZVNVGVBVCVHDEFVHGHVFVJVQPVBVCVEVFUAZVBVCVEVFUBVGVHVGBVDVEVFUCZUDZUEVGVHV
    TUFVDVEVFUGZAVHCUHUIVGVPVMVKNVGVEVFVPVMPVSWABCUJQUMUNVGVOVICOVGABVGAVRUOZVG
    BVSUPZVGBVSUQZRURVGVKVLVGAJEVFVKJEWBWAACSQVGBJEZVFVLJEWCWABCSQVGWEBFTVFVLFT
    WCWDWABCUSUTRVA $.

  $( Product of exponents law for complex exponentiation.  Proposition
     10-4.2(b) of [Gleason] p. 135.  (Contributed by Mario Carneiro,
     2-Aug-2014.) $)
  cxpmul $p |- ( ( A e. RR+ /\ B e. RR /\ C e. CC ) ->
                 ( A ^c ( B x. C ) ) = ( ( A ^c B ) ^c C ) ) $=
    ( wcel cr cc cmul co clog cfv ce ccxp recnd 3ad2ant1 cc0 wceq cxpef syl3anc
    wne fveq2d crp w3a simp3 simp2 relogcl mulassd mulcomd oveq1d rpcn remulcld
    rpne0 relogefd eqtrd oveq2d 3eqtr4d mulcld cxpcl syl2anc cxpne0 ) AUADZBEDZ
    CFDZUBZBCGHZAIJZGHZKJZCABLHZIJZGHZKJZAVDLHZVHCLHZVCVFVJKVCCBGHZVEGHCBVEGHZG
    HVFVJVCCBVEUTVAVBUCZVCBUTVAVBUDZMZVCVEUTVAVEEDVBAUENZMUFVCVDVNVEGVCBCVRVPUG
    UHVCVIVOCGVCVIVOKJZIJVOVCVHVTIVCAFDZAOSZBFDZVHVTPUTVAWAVBAUINZUTVAWBVBAUKNZ
    VRABQRTVCVOVCBVEVQVSUJULUMUNUOTVCWAWBVDFDVLVGPWDWEVCBCVRVPUPAVDQRVCVHFDZVHO
    SZVBVMVKPVCWAWCWFWDVRABUQURVCWAWBWCWGWDWEVRABUSRVPVHCQRUO $.

  ${
    $d k x A $.  $d k x B $.  $d x C $.
    $( Product of exponents law for complex exponentiation.  Variation on
       ~ cxpmul with more general conditions on ` A ` and ` B ` when ` C ` is
       an integer.  (Contributed by Mario Carneiro, 9-Aug-2014.) $)
    cxpmul2 $p |- ( ( A e. CC /\ B e. CC /\ C e. NN0 ) ->
                   ( A ^c ( B x. C ) ) = ( ( A ^c B ) ^ C ) ) $=
      ( cc wcel cmul co ccxp cexp wceq wa wi cc0 c1 oveq2 oveq2d eqeq12d adantr
      ad2antrr eqtrd vx vk cn0 cv caddc imbi2d mul01 adantl cxpcl exp0d 3eqtr4d
      cxp0 oveq1 ax-mp 1t1e1 eqtr4i simplr simpr oveq1d cn nn0p1nn nncnd mul02d
      0cn oveq12d nn0cn syl6eq 3eqtr4a simpll mulcld syl2anc mul01d 0cxp nnne0d
      wne mulne0d 3eqtr4rd pm2.61dane 1cnd adddid mulid1d syl211anc expp1 sylan
      cxpadd syl5ibr expcom a2d nn0ind com12 3impia ) ADEZBDEZCUCEZABCFGZHGZABH
      GZCIGZJZWNWLWMKZWSWTABUAUDZFGZHGZWQXAIGZJZLWTABMFGZHGZWQMIGZJZLWTABUBUDZF
      GZHGZWQXJIGZJZLWTABXJNUEGZFGZHGZWQXOIGZJZLWTWSLUAUBCXAMJZXEXIWTXTXCXGXDXH
      XTXBXFAHXAMBFOPXAMWQIOQUFXAXJJZXEXNWTYAXCXLXDXMYAXBXKAHXAXJBFOPXAXJWQIOQU
      FXAXOJZXEXSWTYBXCXQXDXRYBXBXPAHXAXOBFOPXAXOWQIOQUFXACJZXEWSWTYCXCWPXDWRYC
      XBWOAHXACBFOPXACWQIOQUFWTAMHGZNXGXHWLYDNJWMAULRWTXFMAHWMXFMJWLBUGUHPWTWQA
      BUIZUJUKXJUCEZWTXNXSWTYFXNXSLXNXSWTYFKZXLWQFGZXMWQFGZJXLXMWQFUMYGXQYHXRYI
      YGXQYHJZAMYGAMJZKZYJBMYLBMJZKZMMHGZNNFGZXQYHYONYPMDEYONJVDMULUNZUOUPYNAMX
      PMHYGYKYMUQZYNXPMXOFGMYNBMXOFYLYMURZUSYNXOYGXODEZYKYMYGXOYFXOUTEWTXJVAUHZ
      VBZSVCTVEYNXLNWQNFYNXLYONYNAMXKMHYRYNXKMXJFGMYNBMXJFYSUSYNXJYGXJDEZYKYMYF
      UUCWTXJVFUHZSVCTVEYQVGYNWQYONYNAMBMHYRYSVEYQVGVEVHYLBMVOZKZXLMFGMYHXQUUFX
      LUUFWLXKDEZXLDEYGWLYKUUEWLWMYFVIZSYGUUGYKUUEYGBXJWLWMYFUQZUUDVJZSAXKUIVKV
      LUUFWQMXLFUUFWQMBHGZMUUFAMBHYGYKUUEUQZUSUUFWMUUEUUKMJYGWMYKUUEUUISZYLUUEU
      RZBVMVKTPUUFXQMXPHGZMUUFAMXPHUULUSUUFXPDEXPMVOUUOMJUUFBXOUUMYGYTYKUUEUUBS
      ZVJUUFBXOUUMUUPUUNYGXOMVOYKUUEYGXOUUAVNSVPXPVMVKTVQVRYGAMVOZKZXQAXKBUEGZH
      GZYHUURXPUUSAHUURXPXKBNFGZUEGUUSUURBXJNYGWMUUQUUIRZYGUUCUUQUUDRUURVSVTUUR
      UVABXKUEUURBUVBWAPTPUURWLUUQUUGWMUUTYHJYGWLUUQUUHRYGUUQURYGUUGUUQUUJRUVBA
      XKBWEWBTVRWTWQDEYFXRYIJYEWQXJWCWDQWFWGWHWIWJWK $.
  $}

  $( The complex power function allows us to write n-th roots via the idiom
     ` A ^c ( 1 / N ) ` .  (Contributed by Mario Carneiro, 6-May-2015.) $)
  cxproot $p |- ( ( A e. CC /\ N e. NN ) ->
                 ( ( A ^c ( 1 / N ) ) ^ N ) = A ) $=
    ( cc wcel cn wa c1 cdiv co cmul ccxp cexp nncn adantl cc0 wne nnne0 recid2d
    oveq2d wceq cn0 simpl cr nnrecre recnd nnnn0 cxpmul2 syl3anc adantr 3eqtr3d
    cxp1 ) ACDZBEDZFZAGBHIZBJIZKIZAGKIZAUOKIBLIZAUNUPGAKUNBUMBCDULBMNUMBOPULBQN
    RSUNULUOCDBUADZUQUSTULUMUBUNUOUMUOUCDULBUDNUEUMUTULBUFNAUOBUGUHULURATUMAUKU
    IUJ $.

  $( Generalize ~ cxpmul2 to negative integers.  (Contributed by Mario
     Carneiro, 23-Apr-2015.) $)
  cxpmul2z $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ C e. ZZ ) ) ->
                 ( A ^c ( B x. C ) ) = ( ( A ^c B ) ^ C ) ) $=
    ( cc wcel cc0 wa cmul co ccxp cexp wceq cneg cxpmul2 c1 cdiv syl3anc oveq2d
    cn0 mulcld wne cz elznn0 3expia adantlr adantr simplll simplr simprr simprl
    cr wo wi recnd mulneg2d negeqd negnegd simpllr negcld cxpneg eqtr3d syl2anc
    eqtrd cxpcl expneg2 3eqtr4d expr jaod expimpd syl5bi impr ) ADEZAFUAZGZBDEZ
    CUBEZABCHIZJIZABJIZCKIZLZVPCUKEZCSEZCMZSEZULZGVNVOGZWACUCWGWBWFWAWGWBGWCWAW
    EWGWCWAUMZWBVLVOWHVMVLVOWCWAABCNUDUEUFWGWBWEWAWGWBWEGZGZOABWDHIZJIZPIZOVSWD
    KIZPIZVRVTWJWLWNOPWJVLVOWEWLWNLVLVMVOWIUGZVNVOWIUHZWGWBWEUIZABWDNQRWJAWKMZJ
    IZVRWMWJWSVQAJWJWSVQMZMVQWJWKXAWJBCWQWJCWGWBWEUJUNZUOUPWJVQWJBCWQXBTUQVCRWJ
    VLVMWKDEWTWMLWPVLVMVOWIURWJBWDWQWJCXBUSTAWKUTQVAWJVSDEZCDEWEVTWOLWJVLVOXCWP
    WQABVDVBXBWRVSCVEQVFVGVHVIVJVK $.

  $( Absolute value of a power, when the base is real.  (Contributed by Mario
     Carneiro, 15-Sep-2014.) $)
  abscxp $p |- ( ( A e. RR+ /\ B e. CC ) ->
                 ( abs ` ( A ^c B ) ) = ( A ^c ( Re ` B ) ) ) $=
    ( wcel cc cfv cmul co ce cabs cre ccxp wceq recnd adantr cr mulcomd 3eqtr4d
    fveq2d cxpef syl3anc crp wa clog simpr relogcl mulcld absef syl remul2 recl
    sylan adantl eqtrd cc0 wne rpcn rpne0 ) AUACZBDCZUBZBAUCEZFGZHEZIEZBJEZVAFG
    ZHEZABKGZIEAVEKGZUTVDVBJEZHEZVGUTVBDCVDVKLUTBVAURUSUDZURVADCUSURVAAUEZMNZUF
    VBUGUHUTVJVFHUTVABFGZJEZVAVEFGZVJVFURVAOCUSVPVQLVMVABUIUKUTVBVOJUTBVAVLVNPR
    UTVEVAUTVEUSVEOCURBUJULMZVNPQRUMUTVHVCIUTADCZAUNUOZUSVHVCLURVSUSAUPNZURVTUS
    AUQNZVLABSTRUTVSVTVEDCVIVGLWAWBVRAVESTQ $.

  $( Absolute value of a power, when the exponent is real.  (Contributed by
     Mario Carneiro, 15-Sep-2014.) $)
  abscxp2 $p |- ( ( A e. CC /\ B e. RR ) ->
                 ( abs ` ( A ^c B ) ) = ( ( abs ` A ) ^c B ) ) $=
    ( cc wcel cr wa ccxp co cabs cfv wceq cc0 cle wbr simplr syl3anc simpr cmul
    fveq2d ce 0red 0le0 recxpcl cxpge0 absidd oveq1d abs00bd 3eqtr4d clog recnd
    a1i wne cre logcl adantlr mulcld absef syl remul2d relog oveq2d eqtrd cxpef
    simpll abscld wb abs00 adantr necon3bid biimpar pm2.61dane ) ACDZBEDZFZABGH
    ZIJZAIJZBGHZKALVNALKZFZLBGHZIJWAVPVRVTWAVTLEDZLLMNZVMWAEDVTUAZWCVTUBUKZVLVM
    VSOZLBUCPVTWBWCVMLWAMNWDWEWFLBUDPUEVTVOWAIVTALBGVNVSQZUFSVTVQLBGVTAWGUGUFUH
    VNALULZFZBAUIJZRHZTJZIJZBVQUIJZRHZTJZVPVRWIWMWKUMJZTJZWPWIWKCDWMWRKWIBWJWIB
    VLVMWHOZUJZVLWHWJCDVMAUNUOZUPWKUQURWIWQWOTWIWQBWJUMJZRHWOWIBWJWSXAUSWIXBWNB
    RVLWHXBWNKVMAUTUOVAVBSVBWIVOWLIWIVLWHBCDZVOWLKVLVMWHVDZVNWHQWTABVCPSWIVQCDV
    QLULZXCVRWPKWIVQWIAXDVEUJVNXEWHVNVQLALVLVQLKVSVFVMAVGVHVIVJWTVQBVCPUHVK $.

  $( Ordering property for complex exponentiation.  (Contributed by Mario
     Carneiro, 2-Aug-2014.) $)
  cxplt $p |- ( ( ( A e. RR /\ 1 < A ) /\ ( B e. RR /\ C e. RR ) ) ->
                ( B < C <-> ( A ^c B ) < ( A ^c C ) ) ) $=
    ( cr wcel c1 clt wbr wa cfv cmul co ce ccxp remulcld cc0 wceq recnd cxpef
    cc clog wb simprl crp rplogcl adantr simprr eflt syl2anc ltmul1d wne simpll
    rpred 0red 1red 0lt1 a1i simplr lttrd gt0ne0d syl3anc breq12d 3bitr4d ) ADE
    ZFAGHZIZBDEZCDEZIZIZBAUAJZKLZCVKKLZGHZVLMJZVMMJZGHZBCGHABNLZACNLZGHVJVLDEVM
    DEVNVQUBVJBVKVFVGVHUCZVJVKVFVKUDEVIAUEUFZUMZOVJCVKVFVGVHUGZWBOVLVMUHUIVJBCV
    KVTWCWAUJVJVRVOVSVPGVJATEZAPUKZBTEVRVOQVJAVDVEVIULZRZVJAVJPFAVJUNVJUOWFPFGH
    VJUPUQVDVEVIURUSUTZVJBVTRABSVAVJWDWECTEVSVPQWGWHVJCWCRACSVAVBVC $.

  $( Ordering property for complex exponentiation.  (Contributed by Mario
     Carneiro, 2-Aug-2014.) $)
  cxple $p |- ( ( ( A e. RR /\ 1 < A ) /\ ( B e. RR /\ C e. RR ) ) ->
                ( B <_ C <-> ( A ^c B ) <_ ( A ^c C ) ) ) $=
    ( cr wcel c1 clt wbr wa wn ccxp co cle cxplt ancom2s notbid recxpcl syl3anc
    wb cc0 lenlt adantl simpll 0red 1red 0lt1 simplr lttrd simprl simprr lenltd
    a1i ltled 3bitr4d ) ADEZFAGHZIZBDEZCDEZIZIZCBGHZJZACKLZABKLZGHZJBCMHZVEVDMH
    VAVBVFUQUSURVBVFSACBNOPUTVGVCSUQBCUAUBVAVEVDVAUOTAMHZURVEDEUOUPUTUCZVATAVAU
    DZVIVATFAVJVAUEVITFGHVAUFULUOUPUTUGUHUMZUQURUSUIABQRVAUOVHUSVDDEVIVKUQURUSU
    JACQRUKUN $.

  $( Ordering property for complex exponentiation.  (Contributed by Mario
     Carneiro, 10-Sep-2014.) $)
  cxplea $p |- ( ( ( A e. RR /\ 1 <_ A ) /\ ( B e. RR /\ C e. RR ) /\
                   B <_ C ) -> ( A ^c B ) <_ ( A ^c C ) ) $=
    ( cr wcel c1 cle wbr wa w3a ccxp co wceq wb cc recnd 1cxp syl breq12d oveq1
    clt simpl3 simpl1l simpr simpl2 cxple syl21anc 1le1 simp2l simp2r syl5ibcom
    mpbid mpbiri imp wo 1re leloe mpan biimpa 3ad2ant1 mpjaodan ) ADEZFAGHZIZBD
    EZCDEZIZBCGHZJZFAUAHZABKLZACKLZGHZFAMZVIVJIZVHVMVDVGVHVJUBVOVBVJVGVHVMNVBVC
    VGVHVJUCVIVJUDVDVGVHVJUEABCUFUGULVIVNVMVIFBKLZFCKLZGHZVNVMVIVRFFGHUHVIVPFVQ
    FGVIBOEVPFMVIBVDVEVFVHUIPBQRVICOEVQFMVICVDVEVFVHUJPCQRSUMVNVPVKVQVLGFABKTFA
    CKTSUKUNVDVGVJVNUOZVHVBVCVSFDEVBVCVSNUPFAUQURUSUTVA $.

  $( Ordering property for complex exponentiation.  (Contributed by Mario
     Carneiro, 8-Sep-2014.) $)
  cxple2 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) /\
    C e. RR+ ) -> ( A <_ B <-> ( A ^c C ) <_ ( B ^c C ) ) ) $=
    ( cr wcel cc0 cle wbr wa crp ccxp co wb wceq adantr cfv ce 3ad2ant1 syl2anc
    3ad2ant2 w3a clt simpl1l simpr elrpd ad2antrr simp3 clog cmul rpred relogcl
    simp2l remulcld efle lemul2d reeflog breq12d 3bitr3rd wne recnd rpne0 cxpef
    cc rpre syl3anc 3bitr4d 0re simp1l ltnle sylancr biimpa rpcxpcl rpgt0 mpbid
    wn syl rpne0d 0cxp breq2d mtbird 2falsed breq2 bibi12d syl5ibcom imp simp2r
    oveq1 wo mpjaodan simpl2r eqbrtrrd oveq1d eqtr3d simpl2l cxpge0 2thd simp1r
    leloe ) ADEZFAGHZIZBDEZFBGHZIZCJEZUAZFAUBHZABGHZACKLZBCKLZGHZMZFANZXFXGIZFB
    UBHZXLFBNZXNXOIZAJEZBJEZXEXLXNXRXOXNAWSWTXDXEXGUCXFXGUDUEZOXQBXFXBXGXOXAXBX
    CXEULZUFXNXOUDUEXFXEXGXOXAXDXEUGZUFXRXSXEUAZCAUHPZUILZCBUHPZUILZGHZYEQPZYGQ
    PZGHZXHXKYCYEDEYGDEYHYKMYCCYDYCCXRXSXEUGZUJZXRXSYDDEZXEAUKRZUMYCCYFYMXSXRYF
    DEZXEBUKTZUMYEYGUNSYCYDYFGHZYDQPZYFQPZGHZYHXHYCYNYPYRUUAMYOYQYDYFUNSYCYDYFC
    YOYQYLUOYCYSAYTBGXRXSYSANXEAUPRXSXRYTBNXEBUPTUQURYCXIYIXJYJGYCAVCEAFUSZCVCE
    ZXIYINYCAXRXSWSXEAVDRUTXRXSUUBXEAVARYCCYMUTZACVBVEYCBVCEBFUSZUUCXJYJNYCBXSX
    RXBXEBVDTUTXSXRUUEXEBVATUUDBCVBVEUQVFVEXNXPXLXNAFGHZXIFCKLZGHZMXPXLXNUUFUUH
    XFXGUUFVOZXFFDEZWSXGUUIMVGWSWTXDXEVHZFAVIVJVKXNUUHXIFGHZXNXIJEZUULVOZXNXRCD
    EZUUMXTXFUUOXGXFCYBUJZOACVLSUUMFXIUBHZUUNXIVMUUMUUJXIDEUUQUUNMVGXIVDFXIVIVJ
    VNVPXNUUGFXIGXFUUGFNZXGXFUUCCFUSUURXFCUUPUTXFCYBVQCVRSZOVSVTWAXPUUFXHUUHXKF
    BAGWBXPUUGXJXIGFBCKWGVSWCWDWEXFXOXPWHZXGXFXCUUTXAXBXCXEWFXFUUJXBXCUUTMVGYAF
    BWRVJVNOWIXFXMIZXHXKUVAFABGXFXMUDZXBXCXAXEXMWJZWKUVAFXIXJGUVAUUGFXIXFUURXMU
    USOUVAFACKUVBWLWMUVAXBXCUUOFXJGHXBXCXAXEXMWNUVCXFUUOXMUUPOBCWOVEWKWPXFWTXGX
    MWHZWSWTXDXEWQXFUUJWSWTUVDMVGUUKFAWRVJVNWI $.

  $( Ordering property for complex exponentiation.  (Contributed by Mario
     Carneiro, 15-Sep-2014.) $)
  cxplt2 $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) /\
    C e. RR+ ) -> ( A < B <-> ( A ^c C ) < ( B ^c C ) ) ) $=
    ( cr wcel cc0 cle wbr wa crp w3a wn co clt wb cxple2 ltnled recxpcl syl3anc
    ccxp 3com12 notbid simp1l simp2l simp1r rpre 3ad2ant3 simp2r 3bitr4d ) ADEZ
    FAGHZIZBDEZFBGHZIZCJEZKZBAGHZLBCTMZACTMZGHZLABNHUTUSNHUQURVAUOULUPURVAOBACP
    UAUBUQABUJUKUOUPUCZULUMUNUPUDZQUQUTUSUQUJUKCDEZUTDEVBUJUKUOUPUEUPULVDUOCUFU
    GZACRSUQUMUNVDUSDEVCULUMUNUPUHVEBCRSQUI $.

  $( Ordering property for complex exponentiation.  (Contributed by Mario
     Carneiro, 15-Sep-2014.) $)
  cxple2a $p |- ( ( ( A e. RR /\ B e. RR /\ C e. RR ) /\
    ( 0 <_ A /\ 0 <_ C ) /\ A <_ B ) -> ( A ^c C ) <_ ( B ^c C ) ) $=
    ( cr wcel w3a cc0 cle wbr wa ccxp co wceq wb adantr mpbid c1 cc recnd cxp0
    clt simpl3 crp simp11 simpl2l simp12 0red letrd simp13 anim1i sylibr cxple2
    elrp syl221anc 1le1 a1i syl oveq2 sylan9req 3brtr3d wo simp2r leloe sylancr
    0re mpjaodan ) ADEZBDEZCDEZFZGAHIZGCHIZJZABHIZFZGCUAIZACKLZBCKLZHIZGCMZVOVP
    JZVNVSVJVMVNVPUBZWAVGVKVHGBHICUCEZVNVSNVOVGVPVGVHVIVMVNUDZOZVKVLVJVNVPUEZVO
    VHVPVGVHVIVMVNUFZOZWAGABWAUGWEWHWFWBUHWAVIVPJWCVOVIVPVGVHVIVMVNUIZUJCUMUKAB
    CULUNPVOVTJZQQVQVRHQQHIWJUOUPVOVTQAGKLZVQVOAREWKQMVOAWDSATUQGCAKURUSVOVTQBG
    KLZVRVOBREWLQMVOBWGSBTUQGCBKURUSUTVOVLVPVTVAZVJVKVLVNVBVOGDEVIVLWMNVEWIGCVC
    VDPVF $.

  $( Ordering property for complex exponentiation.  (Contributed by Mario
     Carneiro, 2-May-2016.) $)
  cxplt3 $p |- ( ( ( A e. RR+ /\ A < 1 ) /\ ( B e. RR /\ C e. RR ) ) ->
                ( B < C <-> ( A ^c C ) < ( A ^c B ) ) ) $=
    ( crp wcel c1 clt wbr wa cr cdiv co ccxp wceq simpll cxprec syl2anc rpcxpcl
    cc recnd simprl simprr breq12d rprecred simplr reclt1d mpbid cxplt syl22anc
    wb ad2ant2rl ad2ant2r ltrecd 3bitr4d ) ADEZAFGHZIZBJEZCJEZIZIZFAKLZBMLZVBCM
    LZGHZFABMLZKLZFACMLZKLZGHBCGHZVHVFGHVAVCVGVDVIGVAUOBSEVCVGNUOUPUTOZVABUQURU
    SUAZTABPQVAUOCSEVDVINVKVACUQURUSUBZTACPQUCVAVBJEFVBGHZURUSVJVEUJVAAVKUDVAUP
    VNUOUPUTUEVAAVKUFUGVLVMVBBCUHUIVAVHVFUOUSVHDEUPURACRUKUOURVFDEUPUSABRULUMUN
    $.

  $( Ordering property for complex exponentiation.  (Contributed by Mario
     Carneiro, 2-May-2016.) $)
  cxple3 $p |- ( ( ( A e. RR+ /\ A < 1 ) /\ ( B e. RR /\ C e. RR ) ) ->
                ( B <_ C <-> ( A ^c C ) <_ ( A ^c B ) ) ) $=
    ( crp wcel c1 clt wbr wa cr wn ccxp co wb cxplt3 ancom2s lenlt rpcxpcl rpre
    cle notbid adantl ad2ant2rl ad2ant2r syl2an syl2anc 3bitr4d ) ADEZAFGHZIZBJ
    EZCJEZIZIZCBGHZKZABLMZACLMZGHZKZBCTHZURUQTHZUNUOUSUJULUKUOUSNACBOPUAUMVAUPN
    UJBCQUBUNURDEZUQDEZVBUTNZUHULVCUIUKACRUCUHUKVDUIULABRUDVCURJEUQJEVEVDURSUQS
    URUQQUEUFUG $.

  $( Lemma for ~ cxpsqrt .  (Contributed by Mario Carneiro, 2-Aug-2014.) $)
  cxpsqrtlem $p |- ( ( ( A e. CC /\ A =/= 0 ) /\
    ( A ^c ( 1 / 2 ) ) = -u ( sqrt ` A ) ) -> ( _i x. ( sqrt ` A ) ) e. RR ) $=
    ( cc wcel cc0 c2 cdiv co cfv cneg wceq ci cmul sylancr cre syl cle wbr pire
    cpi cr wne wa c1 ccxp csqrt ax-icn sqrtcl ad2antrr mulcl imval ine0 divcan3
    mp3an23 fveq2d clog ce ccos halfre recni logcl recld reefcld imcld recoscld
    cim rpefcld rpge0d immul2 recnd mulcom eqtrd clt logimcl simpld wi renegcli
    cicc ltle mpd simprd elicc2i syl3anbrc halfgt0 elrpii 2cn 2ne0 divneg mp3an
    divreci eqtr2i eqcomi iccdili eqeltrd mulge0d csin caddc cxpef mp3an3 efeul
    cosq14ge0 resincld addcld remul2d crred oveq2d 3eqtrd breqtrrd adantr simpr
    renegd breqtrd le0neg1d mpbird sqrtrege0 wb 0re sylancl mpbir2and reim0bd
    letri3 ) ABCZADUAZUBZAUCEFGZUDGZAUEHZIZJZUBZKYFLGZYIKBCZYFBCZYJBCZUFYAYLYBY
    HAUGUHZKYFUIMZYIYJVEHZYJKFGZNHZYFNHZDYIYMYPYRJYOYJUJOYIYQYFNYIYLYQYFJZYNYLY
    KKDUAYTUFUKYFKULUMOUNYIYSDJZYSDPQZDYSPQZYIUUBDYSIZPQYIDYENHZUUDPYCDUUEPQYHY
    CDYDAUOHZLGZNHZUPHZUUGVEHZUQHZLGZUUEPYCUUIUUKYCUUHYCUUGYCYDBCZUUFBCZUUGBCZY
    DURUSZAUTZYDUUFUIMZVAZVBZYCUUJYCUUGUURVCZVDZYCUUIYCUUHUUSVFVGYCUUJSEFGZIZUV
    CVQGZCDUUKPQYCUUJUUFVEHZYDLGZUVEYCUUJYDUVFLGZUVGYCYDTCUUNUUJUVHJURUUQYDUUFV
    HMYCUUMUVFBCUVHUVGJUUPYCUVFYCUUFUUQVCZVIYDUVFVJMVKYCUVFSIZSVQGCZUVGUVECYCUV
    FTCZUVJUVFPQZUVFSPQZUVKUVIYCUVJUVFVLQZUVMYCUVOUVNAVMZVNYCUVJTCUVLUVOUVMVOSR
    VPZUVIUVJUVFVRMVSYCUVOUVNUVPVTUVJSUVFUVQRWAWBUVJSUVDUVCYDUVFUVQRYDURWCWDUVD
    UVJEFGZUVJYDLGSBCEBCEDUAUVDUVRJSRUSZWEWFSEWGWHUVJEUVJUVQUSWEWFWIWJUVCSYDLGS
    EUVSWEWFWIWKWLOWMUUJWTOWNYCUUEUUIUUKKUUJWOHZLGZWPGZLGZNHUUIUWBNHZLGUULYCYEU
    WCNYCYEUUGUPHZUWCYAYBUUMYEUWEJUUPAYDWQWRYCUUOUWEUWCJUURUUGWSOVKUNYCUUIUWBUU
    TYCUUKUWAYCUUKUVBVIYCYKUVTBCUWABCUFYCUVTYCUUJUVAXAZVIKUVTUIMXBXCYCUWDUUKUUI
    LYCUUKUVTUVBUWFXDXEXFXGXHYIUUEYGNHUUDYIYEYGNYCYHXIUNYIYFYNXJVKXKYIYSYIYFYNV
    AZXLXMYAUUCYBYHAXNUHYIYSTCDTCUUAUUBUUCUBXOUWGXPYSDXTXQXRXFXS $.

  $( The complex exponential function with exponent ` 1 / 2 ` exactly matches
     the complex square root function (the branch cut is in the same place for
     both functions), and thus serves as a suitable generalization to other
     ` n ` -th roots and irrational roots.  (Contributed by Mario Carneiro,
     2-Aug-2014.) $)
  cxpsqrt $p |- ( A e. CC -> ( A ^c ( 1 / 2 ) ) = ( sqrt ` A ) ) $=
    ( cc wcel c1 c2 co ccxp csqrt cfv wceq cc0 wne halfcn cmul ce ci caddc cexp
    cpi ad2antrr cdiv wi halfre halfgt0 gt0ne0ii mp2an sqrt0 eqtr4i oveq1 fveq2
    0cxp 3eqtr4a a1i wa cneg clog crp cr ax-icn sqrtcl sqmul sylancr i2 oveq12d
    sqrtth mulm1 3eqtrd cxpsqrtlem resqcld eqeltrrd clt negeq0 necon3bid biimpa
    adantr eqnetrd sq0i necon3i syl sqgt0d breqtrd elrpd logneg negneg relogcld
    fveq2d recnd picn mulcli addcom sylancl 3eqtr3d oveq2d adddi eqtrd 2cn 2ne0
    mp3an12 divrec2 mp3an divassi eqtr3i oveq1i syl6eq divcli mulcl efadd negcl
    efhalfpi cxpef syl3anc ax-1cn 2halves ax-mp oveq2i cxp1 syl5eq rpcnd sqvald
    rpcxpcl cxpadd syl211anc eqtr4d sqsqrtd 3eqtr4d cle rprege0d rpsqrtcld sq11
    wbr wb syl2anc mpbid eqtr3d mp3an3 rpge0d sqrtnegd ex wo mp3an23 sqeqor ord
    3eqtr3a cxpcl mpan2 syldan con1d pm2.61d pm2.61dne ) ABCZADEUAFZGFZAHIZJZAK
    AKJZUUNUBUUJUUOKUUKGFZKHIZUULUUMUUPKUUQUUKBCZUUKKLUUPKJMUUKUCUDUEUUKUKUFUGU
    HAKUUKGUIAKHUJULUMUUJAKLZUUNUUJUUSUNZUULUUMUOJZUUNUUTUVAUUNUUTUVAUNZUUKAUPI
    ZNFZOIZPAUOZHIZNFZUULUUMUVBUVEPSEUAFZNFZUUKUVFUPIZNFZQFZOIZUVJOIZUVLOIZNFZU
    VHUVBUVDUVMOUVBUVDUUKPSNFZNFZUVLQFZUVMUVBUVDUUKUVRUVKQFZNFZUVTUVBUVCUWAUUKN
    UVBUVFUOZUPIZUVKUVRQFZUVCUWAUVBUVFUQCZUWDUWEJUVBUVFUVBPUUMNFZERFZUVFURUVBUW
    HPERFZUUMERFZNFZDUOZANFZUVFUVBPBCUUMBCZUWHUWKJUSUUJUWNUUSUVAAUTZTPUUMVAVBUV
    BUWIUWLUWJANUWIUWLJUVBVCUMUUJUWJAJZUUSUVAAVEZTVDUUJUWMUVFJUUSUVAAVFTVGZUVBU
    WGAVHZVIVJZUVBKUWHUVFVKUVBUWGUWSUVBUWHKLUWGKLUVBUWHUVFKUWRUUTUVFKLZUVAUUJUU
    SUXAUUJAKUVFKAVLVMVNVOZVPUWGKUWHKUWGVQVRVSVTUWRWAWBZUVFWCVSUVBUWCAUPUUJUWCA
    JUUSUVAAWDTZWFUVBUVKBCZUVRBCZUWEUWAJUVBUVKUVBUVFUXCWEWGZPSUSWHWIZUVKUVRWJWK
    WLWMUVBUXEUWBUVTJZUXGUURUXFUXEUXIMUXHUUKUVRUVKWNWRVSWOUVSUVJUVLQUVREUAFZUVS
    UVJUXFEBCEKLUXJUVSJUXHWPWQUVREWSWTPSEUSWHWPWQXAXBXCXDWFUVBUVJBCUVLBCZUVNUVQ
    JPUVIUSSEWHWPWQXEWIUVBUURUXEUXKMUXGUUKUVKXFVBUVJUVLXGVBUVBUVOPUVPUVGNUVOPJU
    VBXIUMUVBUVFUUKGFZUVPUVGUVBUVFBCZUXAUURUXLUVPJUUJUXMUUSUVAAXHTZUXBUURUVBMUM
    ZUVFUUKXJXKUVBUXLERFZUVGERFZJZUXLUVGJZUVBUVFUUKUUKQFZGFZUVFUXPUXQUVBUYAUVFD
    GFZUVFUXTDUVFGDBCUXTDJXLDXMXNZXOUVBUXMUYBUVFJUXNUVFXPVSXQUVBUXPUXLUXLNFZUYA
    UVBUXLUVBUXLUVBUWFUUKURCUXLUQCUXCUCUVFUUKXTWKZXRXSUVBUXMUXAUURUURUYAUYDJUXN
    UXBUXOUXOUVFUUKUUKYAYBYCUVBUVFUXNYDYEUVBUXLURCKUXLYFYJUNUVGURCKUVGYFYJUNUXR
    UXSYKUVBUXLUYEYGUVBUVGUVBUVFUXCYHYGUXLUVGYIYLYMYNVDVGUUTUULUVEJZUVAUUJUUSUU
    RUYFMAUUKXJYOVOUVBUWCHIUUMUVHUVBUWCAHUXDWFUVBUVFUWTUVBUVFUXCYPYQYNYEYRUUTUU
    NUVAUUTUUNUVAUUJUUSUULERFZUWJJZUUNUVAYSZUUTUULUULNFZAUYGUWJUUTAUXTGFZADGFZU
    YJAUXTDAGUYCXOUUTUURUURUYKUYJJMMAUUKUUKYAYTUUJUYLAJUUSAXPVOUUCUUJUYGUYJJUUS
    UUJUULUUJUURUULBCZMAUUKUUDUUEZXSVOUUJUWPUUSUWQVOYEUUJUYHUYIUUJUYMUWNUYHUYIY
    KUYNUWOUULUUMUUAYLVNUUFUUBUUGUUHYRUUI $.

  $( Logarithm of a square root.  (Contributed by Mario Carneiro,
     5-May-2016.) $)
  logsqrt $p |- ( A e. RR+ -> ( log ` ( sqrt ` A ) ) = ( ( log ` A ) / 2 ) ) $=
    ( crp wcel clog cfv c2 cdiv co c1 cmul ccxp csqrt cc wceq relogcl recnd cc0
    wne 2cn syl 2ne0 divrec2 mp3an23 cr halfre logcxp mpan2 rpcn cxpsqrt fveq2d
    3eqtr2rd ) ABCZADEZFGHZIFGHZUMJHZAUOKHZDEZALEZDEULUMMCZUNUPNZULUMAOPUTFMCFQ
    RVASUAUMFUBUCTULUOUDCURUPNUEAUOUFUGULUQUSDULAMCUQUSNAUHAUITUJUK $.

  ${
    cxp0d.1 $e |- ( ph -> A e. CC ) $.
    $( Value of the complex power function when the second argument is zero.
       (Contributed by Mario Carneiro, 30-May-2016.) $)
    cxp0d $p |- ( ph -> ( A ^c 0 ) = 1 ) $=
      ( cc wcel cc0 ccxp co c1 wceq cxp0 syl ) ABDEBFGHIJCBKL $.

    $( Value of the complex power function at one.  (Contributed by Mario
       Carneiro, 30-May-2016.) $)
    cxp1d $p |- ( ph -> ( A ^c 1 ) = A ) $=
      ( cc wcel c1 ccxp co wceq cxp1 syl ) ABDEBFGHBICBJK $.

    $( Value of the complex power function at one.  (Contributed by Mario
       Carneiro, 30-May-2016.) $)
    1cxpd $p |- ( ph -> ( 1 ^c A ) = 1 ) $=
      ( cc wcel c1 ccxp co wceq 1cxp syl ) ABDEFBGHFICBJK $.

    ${
      cxpcld.2 $e |- ( ph -> B e. CC ) $.
      $( Closure of the complex power function.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      cxpcld $p |- ( ph -> ( A ^c B ) e. CC ) $=
        ( cc wcel ccxp co cxpcl syl2anc ) ABFGCFGBCHIFGDEBCJK $.

      cxpmul2d.4 $e |- ( ph -> C e. NN0 ) $.
      $( Product of exponents law for complex exponentiation.  Variation on
         ~ cxpmul with more general conditions on ` A ` and ` B ` when ` C ` is
         an integer.  (Contributed by Mario Carneiro, 30-May-2016.) $)
      cxpmul2d $p |- ( ph -> ( A ^c ( B x. C ) ) = ( ( A ^c B ) ^ C ) ) $=
        ( cc wcel cn0 cmul co ccxp cexp wceq cxpmul2 syl3anc ) ABHICHIDJIBCDKLM
        LBCMLDNLOEFGBCDPQ $.
    $}

    cxpefd.2 $e |- ( ph -> A =/= 0 ) $.
    $( Value of the complex power function when the first argument is zero.
       (Contributed by Mario Carneiro, 30-May-2016.) $)
    0cxpd $p |- ( ph -> ( 0 ^c A ) = 0 ) $=
      ( cc wcel cc0 wne ccxp co wceq 0cxp syl2anc ) ABEFBGHGBIJGKCDBLM $.

    ${
      cxpexpzd.3 $e |- ( ph -> B e. ZZ ) $.
      $( Relate the complex power function to the integer power function.
         (Contributed by Mario Carneiro, 30-May-2016.) $)
      cxpexpzd $p |- ( ph -> ( A ^c B ) = ( A ^ B ) ) $=
        ( cc wcel cc0 wne cz ccxp co cexp wceq cxpexpz syl3anc ) ABGHBIJCKHBCLM
        BCNMODEFBCPQ $.
    $}

    cxpefd.3 $e |- ( ph -> B e. CC ) $.
    $( Value of the complex power function.  (Contributed by Mario Carneiro,
       30-May-2016.) $)
    cxpefd $p |- ( ph -> ( A ^c B ) = ( exp ` ( B x. ( log ` A ) ) ) ) $=
      ( cc wcel cc0 wne ccxp co clog cfv cmul ce wceq cxpef syl3anc ) ABGHBIJCG
      HBCKLCBMNOLPNQDEFBCRS $.

    $( Complex exponentiation is nonzero if its mantissa is nonzero.
       (Contributed by Mario Carneiro, 30-May-2016.) $)
    cxpne0d $p |- ( ph -> ( A ^c B ) =/= 0 ) $=
      ( cc wcel cc0 wne ccxp co cxpne0 syl3anc ) ABGHBIJCGHBCKLIJDEFBCMN $.

    $( Value of a nonzero complex number raised to a complex power plus one.
       (Contributed by Mario Carneiro, 30-May-2016.) $)
    cxpp1d $p |- ( ph -> ( A ^c ( B + 1 ) ) = ( ( A ^c B ) x. A ) ) $=
      ( cc wcel cc0 wne c1 caddc co ccxp cmul wceq cxpp1 syl3anc ) ABGHBIJCGHBC
      KLMNMBCNMBOMPDEFBCQR $.

    $( Value of a complex number raised to a negative power.  (Contributed by
       Mario Carneiro, 30-May-2016.) $)
    cxpnegd $p |- ( ph -> ( A ^c -u B ) = ( 1 / ( A ^c B ) ) ) $=
      ( cc wcel cc0 wne cneg ccxp co c1 cdiv wceq cxpneg syl3anc ) ABGHBIJCGHBC
      KLMNBCLMOMPDEFBCQR $.

    ${
      cxpmul2zd.4 $e |- ( ph -> C e. ZZ ) $.
      $( Generalize ~ cxpmul2 to negative integers.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      cxpmul2zd $p |- ( ph -> ( A ^c ( B x. C ) ) = ( ( A ^c B ) ^ C ) ) $=
        ( cc wcel cc0 wne cz cmul co ccxp cexp wceq cxpmul2z syl22anc ) ABIJBKL
        CIJDMJBCDNOPOBCPODQOREFGHBCDST $.
    $}

    cxpaddd.4 $e |- ( ph -> C e. CC ) $.
    $( Sum of exponents law for complex exponentiation.  Proposition 10-4.2(a)
       of [Gleason] p. 135.  (Contributed by Mario Carneiro, 30-May-2016.) $)
    cxpaddd $p |- ( ph ->
      ( A ^c ( B + C ) ) = ( ( A ^c B ) x. ( A ^c C ) ) ) $=
      ( cc wcel cc0 wne caddc co ccxp cmul wceq cxpadd syl211anc ) ABIJBKLCIJDI
      JBCDMNONBCONBDONPNQEFGHBCDRS $.

    $( Exponent subtraction law for complex exponentiation.  (Contributed by
       Mario Carneiro, 30-May-2016.) $)
    cxpsubd $p |- ( ph -> ( A ^c ( B - C ) ) = ( ( A ^c B ) / ( A ^c C ) ) ) $=
      ( cc wcel cc0 wne cmin co ccxp cdiv wceq cxpsub syl211anc ) ABIJBKLCIJDIJ
      BCDMNONBCONBDONPNQEFGHBCDRS $.
  $}

  ${
    recxpcld.1 $e |- ( ph -> A e. RR ) $.
    ${
      cxpltd.2 $e |- ( ph -> 1 < A ) $.
      cxpltd.3 $e |- ( ph -> B e. RR ) $.
      cxpltd.4 $e |- ( ph -> C e. RR ) $.
      $( Ordering property for complex exponentiation.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      cxpltd $p |- ( ph -> ( B < C <-> ( A ^c B ) < ( A ^c C ) ) ) $=
        ( cr wcel c1 clt wbr ccxp co wb cxplt syl22anc ) ABIJKBLMCIJDIJCDLMBCNO
        BDNOLMPEFGHBCDQR $.

      $( Ordering property for complex exponentiation.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      cxpled $p |- ( ph -> ( B <_ C <-> ( A ^c B ) <_ ( A ^c C ) ) ) $=
        ( cr wcel c1 clt wbr cle ccxp co wb cxple syl22anc ) ABIJKBLMCIJDIJCDNM
        BCOPBDOPNMQEFGHBCDRS $.
    $}

    ${
      cxplead.2 $e |- ( ph -> 1 <_ A ) $.
      cxplead.3 $e |- ( ph -> B e. RR ) $.
      cxplead.4 $e |- ( ph -> C e. RR ) $.
      cxplead.5 $e |- ( ph -> B <_ C ) $.
      $( Ordering property for complex exponentiation.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      cxplead $p |- ( ph -> ( A ^c B ) <_ ( A ^c C ) ) $=
        ( cr wcel c1 cle wbr ccxp co cxplea syl221anc ) ABJKLBMNCJKDJKCDMNBCOPB
        DOPMNEFGHIBCDQR $.
    $}

    recxpcld.2 $e |- ( ph -> 0 <_ A ) $.
    ${
      divcxpd.4 $e |- ( ph -> B e. RR+ ) $.
      divcxpd.5 $e |- ( ph -> C e. CC ) $.
      $( Complex exponentiation of a quotient.  (Contributed by Mario Carneiro,
         30-May-2016.) $)
      divcxpd $p |- ( ph ->
        ( ( A / B ) ^c C ) = ( ( A ^c C ) / ( B ^c C ) ) ) $=
        ( cr wcel cc0 cle wbr crp cc cdiv co ccxp wceq divcxp syl211anc ) ABIJK
        BLMCNJDOJBCPQDRQBDRQCDRQPQSEFGHBCDTUA $.
    $}

    recxpcld.3 $e |- ( ph -> B e. RR ) $.
    $( Positive real closure of the complex power function.  (Contributed by
       Mario Carneiro, 30-May-2016.) $)
    recxpcld $p |- ( ph -> ( A ^c B ) e. RR ) $=
      ( cr wcel cc0 cle wbr ccxp co recxpcl syl3anc ) ABGHIBJKCGHBCLMGHDEFBCNO
      $.

    $( Nonnegative exponentiation with a real exponent is nonnegative.
       (Contributed by Mario Carneiro, 30-May-2016.) $)
    cxpge0d $p |- ( ph -> 0 <_ ( A ^c B ) ) $=
      ( cr wcel cc0 cle wbr ccxp co cxpge0 syl3anc ) ABGHIBJKCGHIBCLMJKDEFBCNO
      $.

    ${
      cxple2ad.4 $e |- ( ph -> C e. RR ) $.
      cxple2ad.5 $e |- ( ph -> 0 <_ C ) $.
      cxple2ad.6 $e |- ( ph -> A <_ B ) $.
      $( Ordering property for complex exponentiation.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      cxple2ad $p |- ( ph -> ( A ^c C ) <_ ( B ^c C ) ) $=
        ( cr wcel cc0 cle wbr ccxp co cxple2a syl321anc ) ABKLCKLDKLMBNOMDNOBCN
        OBDPQCDPQNOEGHFIJBCDRS $.
    $}

    mulcxpd.4 $e |- ( ph -> 0 <_ B ) $.
    ${
      cxple2d.5 $e |- ( ph -> C e. RR+ ) $.
      $( Ordering property for complex exponentiation.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      cxplt2d $p |- ( ph -> ( A < B <-> ( A ^c C ) < ( B ^c C ) ) ) $=
        ( cr wcel cc0 cle wbr crp clt ccxp co wb cxplt2 syl221anc ) ABJKLBMNCJK
        LCMNDOKBCPNBDQRCDQRPNSEFGHIBCDTUA $.

      $( Ordering property for complex exponentiation.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      cxple2d $p |- ( ph -> ( A <_ B <-> ( A ^c C ) <_ ( B ^c C ) ) ) $=
        ( cr wcel cc0 cle wbr crp ccxp co wb cxple2 syl221anc ) ABJKLBMNCJKLCMN
        DOKBCMNBDPQCDPQMNREFGHIBCDST $.
    $}

    mulcxpd.5 $e |- ( ph -> C e. CC ) $.
    $( Complex exponentiation of a product.  Proposition 10-4.2(c) of [Gleason]
       p. 135.  (Contributed by Mario Carneiro, 30-May-2016.) $)
    mulcxpd $p |- ( ph ->
      ( ( A x. B ) ^c C ) = ( ( A ^c C ) x. ( B ^c C ) ) ) $=
      ( cr wcel cc0 cle wbr cc cmul co ccxp wceq mulcxp syl221anc ) ABJKLBMNCJK
      LCMNDOKBCPQDRQBDRQCDRQPQSEFGHIBCDTUA $.
  $}

  ${
    rpcxpcld.1 $e |- ( ph -> A e. RR+ ) $.
    ${
      cxprecd.2 $e |- ( ph -> B e. CC ) $.
      $( Complex exponentiation of a reciprocal.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      cxprecd $p |- ( ph -> ( ( 1 / A ) ^c B ) = ( 1 / ( A ^c B ) ) ) $=
        ( crp wcel cc c1 cdiv co ccxp wceq cxprec syl2anc ) ABFGCHGIBJKCLKIBCLK
        JKMDEBCNO $.
    $}

    rpcxpcld.2 $e |- ( ph -> B e. RR ) $.
    $( Positive real closure of the complex power function.  (Contributed by
       Mario Carneiro, 30-May-2016.) $)
    rpcxpcld $p |- ( ph -> ( A ^c B ) e. RR+ ) $=
      ( crp wcel cr ccxp co rpcxpcl syl2anc ) ABFGCHGBCIJFGDEBCKL $.

    $( Logarithm of a complex power.  (Contributed by Mario Carneiro,
       30-May-2016.) $)
    logcxpd $p |- ( ph -> ( log ` ( A ^c B ) ) = ( B x. ( log ` A ) ) ) $=
      ( crp wcel cr ccxp co clog cfv cmul wceq logcxp syl2anc ) ABFGCHGBCIJKLCB
      KLMJNDEBCOP $.

    ${
      cxplt3d.3 $e |- ( ph -> A < 1 ) $.
      cxplt3d.4 $e |- ( ph -> C e. RR ) $.
      $( Ordering property for complex exponentiation.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      cxplt3d $p |- ( ph -> ( B < C <-> ( A ^c C ) < ( A ^c B ) ) ) $=
        ( crp wcel c1 clt wbr cr ccxp co wb cxplt3 syl22anc ) ABIJBKLMCNJDNJCDL
        MBDOPBCOPLMQEGFHBCDRS $.

      $( Ordering property for complex exponentiation.  (Contributed by Mario
         Carneiro, 30-May-2016.) $)
      cxple3d $p |- ( ph -> ( B <_ C <-> ( A ^c C ) <_ ( A ^c B ) ) ) $=
        ( crp wcel c1 clt wbr cr cle ccxp co wb cxple3 syl22anc ) ABIJBKLMCNJDN
        JCDOMBDPQBCPQOMREGFHBCDST $.
    $}

    cxpmuld.4 $e |- ( ph -> C e. CC ) $.
    $( Product of exponents law for complex exponentiation.  Proposition
       10-4.2(b) of [Gleason] p. 135.  (Contributed by Mario Carneiro,
       30-May-2016.) $)
    cxpmuld $p |- ( ph -> ( A ^c ( B x. C ) ) = ( ( A ^c B ) ^c C ) ) $=
      ( crp wcel cr cc cmul co ccxp wceq cxpmul syl3anc ) ABHICJIDKIBCDLMNMBCNM
      DNMOEFGBCDPQ $.
  $}

  ${
    $d x y A $.
    $( The derivative of a complex power with respect to the first argument.
       (Contributed by Mario Carneiro, 24-Feb-2015.) $)
    dvcxp1 $p |- ( A e. CC -> ( RR _D ( x e. RR+ |-> ( x ^c A ) ) ) =
      ( x e. RR+ |-> ( A x. ( x ^c ( A - 1 ) ) ) ) ) $=
      ( vy cc wcel cr crp clog cfv cmul co cmpt cdv cdiv ccxp a1i adantl oveq2d
      ce c1 cv cmin cvv cpr reelprrecn relogcl rpreccl recn wa mulcl syl sylan2
      efcl ovexd cres dvrelog wf1o wf relogf1o f1of mp1i feqmptd fvres mpteq2ia
      syl6eq syl5reqr ccnfld ctopn eqid ctopon cnfldtopon toponmax wss cin wceq
      ax-resscn df-ss sylib cnelprrecn simpl 1cnd dvmptid id dvmptcmul mpteq2dv
      simpr mulid1 eqtrd dvef eff eqcomd 3eqtr4a fveq2 dvmptco dvmptres3 fveq2d
      oveq2 oveq1d rpcn cc0 rpne0 cxpefd mpteq2dva cxpsubd cxp1d cxpcld divrecd
      wne 3eqtrd rpcnd mul12d mulassd eqtr4d 3eqtr4d ) BDEZFAGBAUAZHIZJKZSIZLZM
      KAGXSBJKZTXPNKZJKZLFAGXPBOKZLZMKAGBXPBTUBKOKZJKZLXOACXQYBBCUAZJKZSIZYJBJK
      ZFFXSYAGUCGFFFDUDZEXOUEPZYMXPGEZXQFEXOXPUFQYNYBGEXOXPUGQZYHFEZXOYHDEZYJDE
      ZYHUHXOYQUIZYIDEYRBYHUJZYIUMUKZULXOYPUIYJBJUNXOAGYBLFHGUOZMKFAGXQLZMKAUPX
      OUUBUUCFMXOUUBAGXPUUBIZLUUCXOAGFUUBGFUUBUQGFUUBURXOUSGFUUBUTVAVBAGUUDXQXP
      GHVCVDVERVFXOCYJYKFVGVHIZUCDFUUEVIZYMUUEDVJIEDUUEEXOUUEUUFVKDUUEVLVAXOFDV
      MZFDVNFVOUUGXOVPPFDVQVRUUAYSYJBJUNXOCAYIBXPSIZUUHDDYJYJDDDDDYLEXOVSPZUUIY
      TXOYQVTXPDEZUUHDEXOXPUMQZUUKXODCDYILMKCDBTJKZLCDBLXOCYHTBDDDUUIXOYQWFYSWA
      XOCDUUIWBXOWCWDXOCDUULBBWGWEWHXODSMKSDADUUHLZMKUUMWIXOUUMSDMXOSUUMXOADDSD
      DSURXOWJPVBWKZRUUNWLXPYISWMZUUOWNWOYHXQVOZYIXRSYHXQBJWQWPZUUPYJXSBJUUQWRW
      NXOYEXTFMXOAGYDXSXOYNUIZXPBYNUUJXOXPWSQZYNXPWTXHXOXPXAQZXOYNVTZXBZXCRXOAG
      YGYCUURYGBYDYBJKZJKZYDBJKZYBJKZYCUURYFUVCBJUURYFYDXPTOKZNKYDXPNKUVCUURXPB
      TUUSUUTUVAUURWAXDUURUVGXPYDNUURXPUUSXERUURYDXPUURXPBUUSUVAXFZUUSUUTXGXIRU
      URUVDYDBYBJKJKUVFUURBYDYBUVAUVHUURYBYOXJZXKUURYDBYBUVHUVAUVIXLXMUURUVEYAY
      BJUURYDXSBJUVBWRWRXIXCXN $.

    $( The derivative of a complex power with respect to the second argument.
       (Contributed by Mario Carneiro, 24-Feb-2015.) $)
    dvcxp2 $p |- ( A e. RR+ -> ( CC _D ( x e. CC |-> ( A ^c x ) ) ) =
      ( x e. CC |-> ( ( log ` A ) x. ( A ^c x ) ) ) ) $=
      ( vy wcel cc cv cfv cmul co ce cmpt cdv cr adantr recnd mulcomd mpteq2dva
      a1i c1 oveq2d crp clog ccxp cpr cnelprrecn wa simpr relogcl mulcld adantl
      efcl 1cnd dvmptid dvmptcmul mulid1d 3eqtrd dvef wf feqmptd eqcomd 3eqtr4a
      eff fveq2 dvmptco rpcn cc0 wne rpne0 cxpefd cxpcld oveq1d eqtrd 3eqtr4d )
      BUADZEAEAFZBUBGZHIZJGZKZLIAEVRVPHIZKEAEBVOUCIZKZLIAEVPWAHIZKVNACVQVPCFZJG
      ZWEEEVRVRMEEEEMEUDDVNUERZWFVNVOEDZUFZVOVPVNWGUGZWHVPVNVPMDWGBUHZNZOZUIWKW
      DEDWEEDVNWDUKUJZWMVNEAEVQKZLIEAEVPVOHIZKZLIAEVPSHIZKAEVPKVNWNWPELVNAEVQWO
      WHVOVPWIWLPQTVNAVOSVPEEEWFWIWHULVNAEWFUMVNVPWJOUNVNAEWQVPWHVPWLUOQUPVNEJL
      IJECEWEKZLIWRUQVNWRJELVNJWRVNCEEJEEJURVNVBRUSUTZTWSVAWDVQJVCZWTVDVNWBVSEL
      VNAEWAVRWHBVOVNBEDWGBVENZVNBVFVGWGBVHNWIVIZQTVNAEWCVTWHWCWAVPHIVTWHVPWAWL
      WHBVOXAWIVJPWHWAVRVPHXBVKVLQVM $.
  $}

  ${
    $( The derivative of the real square root function.  (Contributed by Mario
       Carneiro, 1-May-2016.) $)
    dvsqrt $p |- ( RR _D ( x e. RR+ |-> ( sqrt ` x ) ) ) =
      ( x e. RR+ |-> ( 1 / ( 2 x. ( sqrt ` x ) ) ) ) $=
      ( cr crp c1 c2 cdiv co ccxp cmpt cdv cmin cmul wcel wceq halfcn ax-mp cc0
      cc ax-1cn a1i cv csqrt cfv dvcxp1 rpcn cxpsqrt mpteq2ia oveq2i cneg caddc
      syl 1p0e1 2halves eqtr4i wb 0cn addsubeq4 mp4an mpbi df-neg rpne0 cxpnegd
      syl5eq oveq2d eqtrd wne 2cnne0 rpsqrtcl rpcnne0d divmuldiv syl22anc 1t1e1
      wa oveq1i syl6eq 3eqtr3i ) BACAUAZDEFGZHGZIZJGZACVRVQVRDKGZHGZLGZIZBACVQU
      BUCZIZJGACDEWFLGZFGZIVRRMZWAWENOAVRUDPVTWGBJACVSWFVQCMZVQRMVSWFNVQUEZVQUF
      UKZUGUHACWDWIWKWDVRDWFFGZLGZWIWKWCWNVRLWKWCDVSFGZWNWKWCVQVRUIZHGWPWBWQVQH
      WBQVRKGZWQDQUJGZVRVRUJGZNZWBWRNZWSDWTULDRMZWTDNSDUMPUNXCQRMWJWJXAXBUOSUPO
      ODQVRVRUQURUSVRUTUNUHWKVQVRWLVQVAWJWKOTVBVCWKVSWFDFWMVDVEVDWKWODDLGZWHFGZ
      WIWKXCXCERMEQVFVMZWFRMWFQVFVMWOXENXCWKSTZXGXFWKVGTWKWFVQVHVIDDEWFVJVKXDDW
      HFVLVNVOVEUGVP $.
  $}

  ${
    $d x y A $.  $d x y D $.
    dvcncxp1.d $e |- D = ( CC \ ( -oo (,] 0 ) ) $.
    $( Derivative of complex power with respect to first argument on the
       complex plane.  (Contributed by Brendan Leahy, 18-Dec-2018.) $)
    dvcncxp1 $p |- ( A e. CC -> ( CC _D ( x e. D |-> ( x ^c A ) ) ) =
      ( x e. D |-> ( A x. ( x ^c ( A - 1 ) ) ) ) ) $=
      ( vy cc wcel clog cfv cmul co ce cmpt cdv cdiv ccxp adantl oveq2d oveq1d
      c1 cv cmin cvv cr cpr cnelprrecn a1i cmnf cioc cdif difss eqsstri logdmn0
      cc0 sseli logcld reccld wa mulcl efcl syl ovexd cres dvlog ccncf wf logcn
      cncff mp1i feqmptd fvres mpteq2ia syl6eq syl5reqr simpl dvmptid dvmptcmul
      simpr 1cnd id mulid1 mpteq2dv eqtrd dvef 3eqtr3a fveq2 dvmptco wceq oveq2
      eff fveq2d wne cxpefd mpteq2dva cxpsubd cxp1d cxpcld 3eqtrd mul12d eqtr4d
      divrecd mulassd 3eqtr4d ) BFGZFACBAUAZHIZJKZLIZMZNKACXHBJKZTXEOKZJKZMFACX
      EBPKZMZNKACBXEBTUBKPKZJKZMXDAEXFXKBEUAZJKZLIZXSBJKFFXHXJFUCCFFUDFUEGXDUFU
      GZXTXECGZXFFGXDYAXECFXECFUHUNUIKZUJFDFYBUKULUOZXECDUMZUPQYAXKFGXDYAXEYCYD
      UQQZXDXQFGZURZXRFGXSFGBXQUSZXRUTVAYGXSBJVBXDACXKMFHCVCZNKFACXFMZNKACDVDXD
      YIYJFNXDYIACXEYIIZMYJXDACFYIYICFVEKGCFYIVFXDCDVGCFYIVHVIVJACYKXFXECHVKVLV
      MRVNXDEAXRBXELIZYLFFXSXSFFFFXTXTYHXDYFVOXEFGZYLFGXDXEUTQZYNXDFEFXRMNKEFBT
      JKZMEFBMXDEXQTBFFFXTXDYFVRYGVSXDEFXTVPXDVTVQXDEFYOBBWAWBWCXDFLNKLFAFYLMZN
      KYPWDXDLYPFNXDAFFLFFLVFXDWJUGVJZRYQWEXEXRLWFZYRWGXQXFWHZXRXGLXQXFBJWIWKZY
      SXSXHBJYTSWGXDXNXIFNXDACXMXHXDYAURZXEBYAYMXDYCQZYAXEUNWLXDYDQZXDYAVOZWMZW
      NRXDACXPXLUUAXPBXMXKJKZJKZXMBJKZXKJKZXLUUAXOUUFBJUUAXOXMXETPKZOKXMXEOKUUF
      UUAXEBTUUBUUCUUDUUAVSWOUUAUUJXEXMOUUAXEUUBWPRUUAXMXEUUAXEBUUBUUDWQZUUBUUC
      XAWRRUUAUUGXMBXKJKJKUUIUUABXMXKUUDUUKYEWSUUAXMBXKUUKUUDYEXBWTUUAUUHXJXKJU
      UAXMXHBJUUESSWRWNXC $.

    $( Derivative of square root function.  (Contributed by Brendan Leahy,
       18-Dec-2018.) $)
    dvcnsqrt $p |- ( CC _D ( x e. D |-> ( sqrt ` x ) ) ) =
      ( x e. D |-> ( 1 / ( 2 x. ( sqrt ` x ) ) ) ) $=
      ( cc c1 c2 cdiv co ccxp cmpt cdv cmin cmul wcel halfcn ax-mp cc0 mpteq2ia
      wceq wne cv csqrt cfv dvcncxp1 cmnf cioc cdif difss eqsstri sseli cxpsqrt
      syl oveq2i cneg caddc 1p0e1 ax-1cn 2halves eqtr4i wb addsubeq4 mp4an mpbi
      0cn df-neg logdmn0 a1i cxpnegd syl5eq oveq2d eqtrd 1cnd 2cnd sqrtcld 2ne0
      wa adantr simpr sqr00d necon3d mpd divmuldivd 1t1e1 oveq1i syl6eq 3eqtr3i
      ex ) DABAUAZEFGHZIHZJZKHZABWIWHWIELHZIHZMHZJZDABWHUBUCZJZKHABEFWQMHZGHZJW
      IDNZWLWPSOAWIBCUDPWKWRDKABWJWQWHBNZWHDNZWJWQSBDWHBDUEQUFHZUGDCDXDUHUIUJZW
      HUKULZRUMABWOWTXBWOWIEWQGHZMHZWTXBWNXGWIMXBWNEWJGHZXGXBWNWHWIUNZIHXIWMXJW
      HIWMQWILHZXJEQUOHZWIWIUOHZSZWMXKSZXLEXMUPEDNZXMESUQEURPUSXPQDNXAXAXNXOUTU
      QVDOOEQWIWIVAVBVCWIVEUSUMXBWHWIXEWHBCVFZXAXBOVGVHVIXBWJWQEGXFVJVKVJXBXHEE
      MHZWSGHWTXBEFEWQXBVLZXBVMXSXBWHXEVNFQTXBVOVGXBWHQTWQQTXQXBWQQWHQXBWQQSZWH
      QSXBXTVPWHXBXCXTXEVQXBXTVRVSWGVTWAWBXREWSGWCWDWEVKRWF $.
  $}

  ${
    $d x y D $.  $d x y J $.  $d x y K $.
    cxpcn.d $e |- D = ( CC \ ( -oo (,] 0 ) ) $.
    cxpcn.j $e |- J = ( TopOpen ` CCfld ) $.
    cxpcn.k $e |- K = ( J |`t D ) $.
    $( Domain of continuity of the complex power function.  (Contributed by
       Mario Carneiro, 1-May-2016.) $)
    cxpcn $p |- ( x e. D , y e. CC |-> ( x ^c y ) ) e. ( ( K tX J ) Cn J ) $=
      ( cc co cmpt2 clog cfv cmul ce ccn wcel adantr wtru a1i cv ccxp ctx wa cr
      crp wi ellogdm simplbi cc0 wne logdmn0 cxpefd mpt2eq3ia ctopon cnfldtopon
      simpr crest wss ssriv resttopon sylancl syl5eqel cnmpt2nd cres wceq fvres
      cnmpt1st ccncf logcn ssid toponunii restid eqcomi cncfcn eleqtri cnmpt21f
      ax-mp mp2an syl5eqelr mulcn cnmpt22f efcn cncfcn1 trud eqeltri ) ABCIAUAZ
      BUAZUBJZKABCIWHWGLMZNJZOMZKZEDUCJDPJZABCIWIWLWGCQZWHIQZUDWGWHWOWGIQZWPWOW
      QWGUEQWGUFQUGWGCFUHUIZRWOWGUJUKWPWGCFULRWOWPUQUMUNWMWNQSABWKOEDDDCISEDCUR
      JZCUOMZHSDIUOMZQZCIUSZWSWTQXBSDGUPZTZACIWRUTZCDIVAVBVCZXESABWHWJNEDDDDCIX
      GXESABEDCIXGXEVDSABCIWJKABCIWGLCVEZMZKWNABCIXIWJWOXIWJVFWPWGCLVGRUNSABWGX
      HEDEDCIXGXESABEDCIXGXEVHXHEDPJZQSXHCIVIJZXJCFVJXCIIUSXKXJVFXFIVKCIDEDGHDI
      URJZDXBXLDVFXDDXAIIDXDVLVMVRVNVOVSVPTVQVTNDDUCJDPJQSDGWATWBODDPJZQSOIIVIJ
      XMWCDGWDVPTVQWEWF $.
  $}

  ${
    $d x y J $.
    cxpcn2.j $e |- J = ( TopOpen ` CCfld ) $.
    cxpcn2.k $e |- K = ( J |`t RR+ ) $.
    $( Continuity of the complex power function, when the base is real.
       (Contributed by Mario Carneiro, 1-May-2016.) $)
    cxpcn2 $p |- ( x e. RR+ , y e. CC |-> ( x ^c y ) )
        e. ( ( K tX J ) Cn J ) $=
      ( crp cc cv co cmpt2 ctx ccn wcel wtru crest ctopon cfv wss a1i ccxp cmnf
      cc0 cioc cdif wceq cnfldtopon cr wi rpcn ax-1 eqid ellogdm sylanbrc ssriv
      difss ssexi restabs mp3an eqtr4i resttopon sylancl toponunii restid ax-mp
      cvv cnex eqcomi ssid cxpcn cnmpt2res trud ) ABGHAIZBIUAJZKDCLJCMJNOABVNCH
      UBUCUDJZUEZPJZDCCCHVPGHDCGPJZVQGPJZFCHQRZNZGVPSZVPVFNVSVRUFCEUGZAGVPVMGNZ
      VMHNVMUHNZWDUIVMVPNVMUJWDWEUKVMVPVPULZUMUNUOZVPHVGHVOUPZUQGVPCVTVFURUSUTO
      WAVPHSVQVPQRNWAOWCTZWHVPCHVAVBWBOWGTCHPJZCWAWJCUFWCCVTHHCWCVCVDVEVHWIHHSO
      HVITABVPHVNKVQCLJCMJNOABVPCVQWFEVQULVJTVKVL $.
  $}

  ${
    $d a b d A $.  $d a b d E $.  $d d e u v x y z J $.  $d a b d e u v z K $.
    $d a b d e u v x y z D $.  $d a b d e u v z L $.  $d a b d T $.
    cxpcn3.d $e |- D = ( `' Re " RR+ ) $.
    cxpcn3.j $e |- J = ( TopOpen ` CCfld ) $.
    cxpcn3.k $e |- K = ( J |`t ( 0 [,) +oo ) ) $.
    cxpcn3.l $e |- L = ( J |`t D ) $.
    ${
      cxpcn3.u $e |- U = ( if ( ( Re ` A ) <_ 1 , ( Re ` A ) , 1 ) / 2 ) $.
      cxpcn3.t $e |- T =
        if ( U <_ ( E ^c ( 1 / U ) ) , U , ( E ^c ( 1 / U ) ) ) $.
      $( Lemma for ~ cxpcn3 .  (Contributed by Mario Carneiro, 2-May-2016.) $)
      cxpcn3lem $p |- ( ( A e. D /\ E e. RR+ ) ->
        E. d e. RR+ A. a e. ( 0 [,) +oo ) A. b e. D
          ( ( ( abs ` a ) < d /\ ( abs ` ( A - b ) ) < d ) ->
            ( abs ` ( a ^c b ) ) < E ) ) $=
        ( wcel clt wbr crp wa cv cabs cfv cmin co ccxp wi wral cc0 cpnf cico c1
        wrex cdiv cle cif cre c2 cc ccnv cima eleq2i cr wf wfn ref ffn elpreima
        wb mp2b bitri simprbi adantr 1rp ifcl rphalfcld syl5eqel simpr rpreccld
        sylancl rpred rpcxpcld ifcld elrege0 wceq wo 0red leloe elrp w3a simp2l
        sylan simp2r cdm cnvimass fdmi sseqtri eqsstri sseli syl abscxp syl2anc
        recld 3ad2ant1 simp1r simp1l simplbi rehalfcld 1re min1 2re 2pos lediv1
        a1i syl112anc mpbid syl5eqbr caddc 2halvesd resubd subcld abscld simp3r
        recnd releabsd syl6breq ltmin syl3anc lelttrd eqbrtrrd eqbrtrd rprege0d
        simpld mpbird lttrd wne rpcnd breq2 ltletrd ltsubadd2d ltadd1d rehalfcl
        absid simp3l mp1i min2 halflt1 cxplt3d cmul rpcnne0d recid oveq2d cxp1d
        cxpmuld 3eqtr3d simprd cxplt2 3expia anassrs sylan2br expr eleq2s fveq2
        ralrimiva rpne0d re0 syl6eq necon3i 0cxpd adantl abs00bd simpllr rpgt0d
        oveq1 fveq2d breq1d syl5ibcom a1dd ralrimdva jaod sylbid expimpd syl5bi
        ralrimiv anbi12d imbi1d 2ralbidv rspcev ) ABRZEUARZUBZCUARIUCZUDUEZCSTZ
        AJUCZUFUGZUDUEZCSTZUBZUWNUWQUHUGZUDUEZESTZUIZJBUJZIUKULUMUGZUJZUWOKUCZS
        TZUWSUXISTZUBZUXDUIZJBUJIUXGUJZKUAUOUWMCDEUNDUPUGZUHUGZUQTZDUXPURZUAQUW
        MUXQDUXPUAUWMDAUSUEZUNUQTZUXSUNURZUTUPUGZUAPUWMUYAUWMUXSUARZUNUARUYAUAR
        ZUWKUYCUWLUWKAVARZUYCUWKAUSVBUAVCZRZUYEUYCUBZBUYFALVDVAVEUSVFZUSVAVGZUY
        GUYHVKVHVAVEUSVIZVAAUAUSVJVLVMZVNVOVPUXTUXSUNUAVQWBZVRVSZUWMEUXOUWKUWLV
        TUWMUXOUWMDUYNWAWCWDZWEVSUWMUXFIUXGUWNUXGRUWNVERZUKUWNUQTZUBZUWMUXFUWNW
        FUWMUYPUYQUXFUWMUYPUBZUYQUKUWNSTZUKUWNWGZWHZUXFUWMUKVERUYPUYQVUBVKUWMWI
        UKUWNWJWNUYSUYTUXFVUAUWMUYPUYTUXFUYPUYTUBUWMUWNUARZUXFUWNWKUWMVUCUBUXEJ
        BUWMVUCUWQBRZUXEUWMVUCVUDUBZUXAUXDUWMVUEUXAWLZUXCUWNUWQUSUEZUHUGZESVUFV
        UCUWQVARZUXCVUHWGUWMVUCVUDUXAWMZVUFVUDVUIUWMVUCVUDUXAWOBVAUWQBUYFVALUYF
        USWPVAUSUAWQVAVEUSVHWRWSWTXAZXBZUWNUWQXCXDVUFVUHUWNDUHUGZEVUFVUHVUFUWNV
        UGVUJVUFUWQVULXEZWDWCVUFVUMVUFUWNDVUJVUFDUWMVUEDUARUXAUYNXFZWCZWDZWCVUF
        EUWKUWLVUEUXAXGZWCVUFDVUGSTVUHVUMSTVUFDUXSUTUPUGZVUGVUPVUFUXSVUFAVUFUWK
        UYEUWKUWLVUEUXAXHUWKUYEUYCUYLXIXBZXEZXJZVUNVUFDUYBVUSUQPVUFUYAUXSUQTZUY
        BVUSUQTZVUFUXSVERZUNVERZVVCVVAXKUXSUNXLWBVUFUYAVERZVVEUTVERZUKUTSTZVVCV
        VDVKVUFUYAUWMVUEUYDUXAUYMXFWCZVVAVVHVUFXMXPZVVIVUFXNXPZUYAUXSUTXOXQXRXS
        ZVUFVUSVUGSTVUSVUSXTUGZVUGVUSXTUGZSTVUFVVNUXSVVOSVUFUXSVUFUXSVVAYFYAVUF
        UXSVUGUFUGZVUSSTUXSVVOSTVUFUWRUSUEZVVPVUSSVUFAUWQVUTVULYBVUFVVQDVUSVUFU
        WRVUFAUWQVUTVULYCZXEZVUPVVBVUFVVQUWSDVVSVUFUWRVVRYDZVUPVUFUWRVVRYGVUFUW
        SDSTZUWSUXPSTZVUFUWSUXRSTZVWAVWBUBZVUFUWSCUXRSUWMVUEUWPUWTYEQYHVUFUWSVE
        RDVERZUXPVERZVWCVWDVKVVTVUPVUFUXPUWMVUEUXPUARUXAUYOXFWCZUWSDUXPYIYJXRYO
        YKVVMUUAYLVUFUXSVUGVUSVVAVUNVVBUUBXRYMVUFVUSVUGVUSVVBVUNVVBUUCYPYKVUFUW
        NDVUGVUJVUPVUFUWNDUNVUFUWNVUJWCZVUPVVFVUFXKXPZVUFUWNDSTZUWNUXPSTZVUFUWN
        UXRSTZVWJVWKUBZVUFUWNCUXRSVUFUWOUWNCSVUFUYRUWOUWNWGVUFUWNVUJYNUWNUUEXBU
        WMVUEUWPUWTUUFYLQYHVUFUYPVWEVWFVWLVWMVKVWHVUPVWGUWNDUXPYIYJXRZYOVUFDUNU
        TUPUGZUNVUPVVFVWOVERVUFXKUNUUDUUGVWIVUFDUYBVWOUQPVUFUYAUNUQTZUYBVWOUQTZ
        VUFVVEVVFVWPVVAXKUXSUNUUHWBVUFVVGVVFVVHVVIVWPVWQVKVVJVWIVVKVVLUYAUNUTXO
        XQXRXSVWOUNSTVUFUUIXPYKYQVUNUUJXRVUFVUMESTZVUMUXOUHUGZUXPSTZVUFVWSUWNUX
        PSVUFUWNDUXOUUKUGZUHUGUWNUNUHUGVWSUWNVUFVXAUNUWNUHVUFDVARDUKYRUBVXAUNWG
        VUFDVUOUULDUUMXBUUNVUFUWNDUXOVUJVUPVUFUXOVUFDVUOWAZYSUUPVUFUWNVUFUWNVUJ
        YSUUOUUQVUFVWJVWKVWNUURYMVUFVUMVERUKVUMUQTUBEVERUKEUQTUBUXOUARVWRVWTVKV
        UFVUMVUQYNVUFEVURYNVXBVUMEUXOUUSYJYPYQYMUUTUVAUVFUVBUVCUYSVUAUXEJBUYSVU
        DUBZVUAUXDUXAVXCUKUWQUHUGZUDUEZESTVUAUXDVXCVXEUKESVXCVXDVUDVXDUKWGUYSVU
        DUWQVUKVUDVUGUKYRUWQUKYRVUDVUGVUGUARZUWQUYFBUWQUYFRZVUIVXFUYIUYJVXGVUIV
        XFUBVKVHUYKVAUWQUAUSVJVLVNLUVDUVGUWQUKVUGUKUWQUKWGVUGUKUSUEUKUWQUKUSUVE
        UVHUVIUVJXBUVKUVLUVMVXCEUWKUWLUYPVUDUVNUVOYMVUAVXEUXCESVUAVXDUXBUDUKUWN
        UWQUHUVPUVQUVRUVSUVTUWAUWBUWCUWDUWEUWFUXNUXHKCUAUXICWGZUXMUXEIJUXGBVXHU
        XLUXAUXDVXHUXJUWPUXKUWTUXICUWOSYTUXICUWSSYTUWGUWHUWIUWJXD $.
    $}

    $( Extend continuity of the complex power function to a base of zero, as
       long as the exponent has strictly positive real part.  (Contributed by
       Mario Carneiro, 2-May-2016.) $)
    cxpcn3 $p |- ( x e. ( 0 [,) +oo ) , y e. D |-> ( x ^c y ) )
        e. ( ( K tX L ) Cn J ) $=
      ( cc0 co wcel cc cfv wral cre crp wbr wceq vz vu vv va vd vb ve cpnf cico
      cv ccxp cmpt2 ctx ccn wf ccnp cr rge0ssre ax-resscn sstri sseli ccnv cima
      cxp cdm cnvimass ref fdmi sseqtri eqsstri cxpcl eqid mpbi cop wa clt cres
      rgen2 crest ctopon wss cle elrege0 resttopon mp2an toponunii restid ax-mp
      sylanbrc a1i ssid simplbi adantr eqeltri txtopon syl2anc cioo wb ctop cvv
      simpr ovex mp3an eqtri mp4an oveq1i topontopi mpbird cabs cmin wi wrex c1
      cif cdiv 0e0icopnf ovresd 0cn sseldi cnmetdval sylancr cneg df-neg fveq2i
      absnegd syl5eqr 3eqtrd breq1d eqtrd oveq12 ovmpt2a wne simprbi fveq2 cxmt
      cnxmet xmetres2 sylancl cmopn metrest syl2an fmpt2 cnfldtopon rpge0 ssriv
      rpre eqcomi cxpcn2 cnmpt2res elrpd simplr opelxp cncnpi resmpt2 crn ioorp
      ctg iooretop eqeltrri w3a retop restopnb mpanl12 rerest eleqtrri toponmax
      txrest restabs oveq12i fveq1i 3eltr4g cnt xpss1 mp1i txopn isopn3i txunii
      syl6eleqr cnprest syl22anc ccom cxpcn3lem ralrimiva simprl simprr anbi12d
      c2 simpl eleq2i wfn ffn elpreima mp2b bitri rpne0d re0 syl6eq necon3i syl
      0cxpd adantl oveq12d cxpcld imbi12d 2ralbidva rexbidv ralbidv id txmetcnp
      cnfldtopn syl32anc mpbir2and ad2antlr opeq1d fveq2d wo 0re leloe mpjaodan
      eleqtrd mpbid eleq2d ralxp mpbir cncnp mpbir2an ) ABKUHUILZCAUJZBUJZUKLZU
      LZEFUMLZDUNLMZUYGCVDZNUYKUOZUYKUAUJZUYLDUPLZOZMZUAUYNPZUYJNMZBCPAUYGPUYOV
      UAABUYGCUYHUYGMZUYHNMUYINMVUAUYICMUYGNUYHUYGUQNURUSUTZVACNUYICQVBRVCZNGVU
      DQVENQRVFNUQQVGVHVIVJZVAUYHUYIVKUUAVRABUYGCUYJNUYKUYKVLZUUBVMZUYTUYKUBUJZ
      UCUJZVNZUYQOZMZUCCPUBUYGPVULUBUCUYGCVUHUYGMZVUICMZVOZKVUHVPSZVULKVUHTZVUO
      VUPVOZVULUYKRCVDZVQZVUJUYLVUSVSLZDUPLZOZMZVURABRCUYJULZVUJDRVSLZFUMLZDUPL
      ZOZVUTVVCVURVVEVVGDUNLMVUJVUSMZVVEVVIMVURABUYJVVFVVFDDFCRRNVVFRVSLZVVFVVF
      RVTOZMZVVKVVFTDNVTOZMZRNWAVVMDHUUCZRUYGNARUYGUYHRMUYHUQMKUYHWBSVUBUYHUUFU
      YHUUDUYHWCWIUUEZVUCUTRDNWDWEZVVFVVLRRVVFVVRWFWGWHUUGVVMVURVVRWJRRWAZVURRW
      KZWJJVVOVURVVPWJCNWAZVURVUEWJABRNUYJULVVFDUMLDUNLMVURABDVVFHVVFVLUUHWJUUI
      VURVUHRMVUNVVJVURVUHVUOVUHUQMZVUPVUMVWBVUNVUMVWBKVUHWBSZVUHWCZWLWMZWMVUOV
      UPXAUUJVUMVUNVUPUUKVUHVUIRCUULWIZVUJVVEVVGDVUSVUSVVGVVMFCVTOZMZVVGVUSVTOM
      VVRFDCVSLZVWGJVVOVWAVWIVWGMVVPVUECDNWDWEWNZVVFFRCWOWEWFUUMWPRUYGWAZCCWAVU
      TVVETVVQCWKABUYGCRCUYJUUNWEVUJVVBVVHVVAVVGDUPVVAERVSLZFCVSLZUMLZVVGEUYGVT
      OZMZVWHREMZCFMZVVAVWNTEDUYGVSLZVWOIVVOUYGNWAZVWSVWOMVVPVUCUYGDNWDWEWNZVWJ
      RWQUUOUUQOZUYGVSLZERVXBMZRVXCMZKUHWQLRVXBUUPKUHUURUUSZVXDVWKVVSVXDVXEWRZV
      XFVVQVVTVXBWSMUYGWTMZVXDVWKVVSUUTVXGUVAKUHUIXBZUYGRRVXBWTUVBUVCXCVMEVWSVX
      CIUYGUQWAVWSVXCTURUYGVXBDHVXBVLUVDWHXDUVEZVWHVWRVWJCFUVFWHZRCEFVWOVWGEFUV
      GXEVWLVVFVWMFUMVWLVWSRVSLZVVFEVWSRVSIXFVVOVWKVXHVXLVVFTVVPVVQVXIRUYGDVVNW
      TUVHXCXDVWHVWMFTVWJFVWGCCFVWJWFZWGWHUVIXDXFUVJUVKVURUYLWSMZVUSUYNWAZVUJVU
      SUYLUVLOOZMUYOVULVVDWRVXNVURUYNUYLVWPVWHUYLUYNVTOMZVXAVWJEFUYGCWOWEZXGZWJ
      VWKVXOVURVVQRUYGCUVMUVNVURVUJVUSVXPVWFVXNVUSUYLMZVXPVUSTVXSVWPVWHVWQVWRVX
      TVXAVWJVXJVXKRCEFVWOVWGUVOXEVUSUYLUVPWEUVRUYOVURVUGWJVUSVUJUYKUYLDUYNNEFU
      YGCUYGEVXAXGCFVWJXGUYGEVXAWFVXMUVQNDVVPWFUVSUVTXHVUOVUQVOZUYKKVUIVNZUYQOZ
      VUKVUNUYKVYCMZVUMVUQVUNVYDUYOKUDUJZXIXJUWAZUYGUYGVDVQZLZUEUJZVPSZVUIUFUJZ
      VYFCCVDVQZLZVYIVPSZVOZKVUIUYKLZVYEVYKUYKLZVYFLZUGUJZVPSZXKZUFCPUDUYGPZUER
      XLZUGRPZUYOVUNVUGWJVUNWUDVYEXIOZVYIVPSZVUIVYKXJLXIOZVYIVPSZVOZVYEVYKUKLZX
      IOZVYSVPSZXKZUFCPUDUYGPZUERXLZUGRPVUNWUOUGRVUICVUIQOZXMWBSWUPXMXNUWGXOLZV
      YSXMWUQXOLUKLZWBSWUQWURXNZWUQVYSDEFUDUFUEGHIJWUQVLWUSVLUWBUWCVUNWUCWUOUGR
      VUNWUBWUNUERVUNWUAWUMUDUFUYGCVUNVYEUYGMZVYKCMZVOZVOZVYOWUIVYTWULWVCVYJWUF
      VYNWUHWVCVYHWUEVYIVPWVCVYHKVYEVYFLZKVYEXJLZXIOZWUEWVCKVYEVYFUYGKUYGMZWVCX
      PWJVUNWUTWVAUWDZXQWVCKNMZVYENMWVDWVFTXRWVCUYGNVYEVUCWVHXSZKVYEVYFVYFVLZXT
      YAWVCWVFVYEYBZXIOWUEWVLWVEXIVYEYCYDWVCVYEWVJYEYFYGYHWVCVYMWUGVYIVPWVCVYMV
      UIVYKVYFLZWUGWVCVUIVYKVYFCVUNWVBUWHZVUNWUTWVAUWEZXQWVCVUINMZVYKNMWVMWUGTW
      VCCNVUIVUEWVNXSWVCCNVYKVUEWVOXSZVUIVYKVYFWVKXTWPYIYHUWFWVCVYRWUKVYSVPWVCV
      YRKWUJVYFLZKWUJXJLZXIOZWUKWVCVYPKVYQWUJVYFWVCVYPKVUIUKLZKWVCWVGVUNVYPWWAT
      XPWVNABKVUIUYGCUYJWWAUYKUYHKUYIVUIUKYJVUFKVUIUKXBYKYAVUNWWAKTWVBVUNVUIVUN
      WVPWUPRMZVUNVUIVUDMZWVPWWBVOZCVUDVUIGUWINUQQUOQNUWJWWCWWDWRVGNUQQUWKNVUIR
      QUWLUWMUWNZWLVUNWUPKYLVUIKYLVUNWUPVUNWVPWWBWWEYMUWOVUIKWUPKVUIKTWUPKQOKVU
      IKQYNUWPUWQUWRUWSUWTWMYIWVBVYQWUJTVUNABVYEVYKUYGCUYJWUJUYKUYHVYEUYIVYKUKY
      JVUFVYEVYKUKXBYKUXAUXBWVCWVIWUJNMWVRWVTTXRWVCVYEVYKWVJWVQUXCZKWUJVYFWVKXT
      YAWVCWVTWUJYBZXIOWUKWWGWVSXIWUJYCYDWVCWUJWWFYEYFYGYHUXDUXEUXFUXGXHVUNVYGU
      YGYOOMZVYLCYOOMZVYFNYOOMZWVGVUNVYDUYOWUDVOWRVUNWWJVWTWWHWWJVUNYPWJZVUCVYF
      UYGNYQYRVUNWWJVWAWWIWWKVUEVYFCNYQYRWWKWVGVUNXPWJVUNUXHUGUEUFUDKVUIVYGVYLV
      YFUYKEFDUYGCNEVWSVYGYSOZIWWJVWTVWSWWLTYPVUCVYFVYGDWWLNUYGVYGVLDHUXJZWWLVL
      YTWEXDFVWIVYLYSOZJWWJVWAVWIWWNTYPVUEVYFVYLDWWNNCVYLVLWWMWWNVLYTWEXDWWMUXI
      UXKUXLUXMVYAVYBVUJUYQVYAKVUHVUIVUOVUQXAUXNUXOUXTVUOVWCVUPVUQUXPZVUMVWCVUN
      VUMVWBVWCVWDYMWMVUOKUQMVWBVWCWWOWRUXQVWEKVUHUXRYAUYAUXSVRUYSVULUAUBUCUYGC
      UYPVUJTUYRVUKUYKUYPVUJUYQYNUYBUYCUYDVXQVVOUYMUYOUYTVOWRVXRVVPUAUYKUYLDUYN
      NUYEWEUYF $.
  $}

  ${
    $d x y z D $.
    $( Continuity of the real square root function.  (Contributed by Mario
       Carneiro, 2-May-2016.) $)
    resqrtcn $p |- ( sqrt |` ( 0 [,) +oo ) ) e. ( ( 0 [,) +oo ) -cn-> RR ) $=
      ( vx vy vz csqrt co cv cfv cmpt cr wceq wtru cc a1i wss wcel eqid cre crp
      wf c1 cc0 cpnf cico ccncf sqrtf feqmptd reseq1d cle elrege0 simplbi recnd
      cres ssriv resmpt mp1i eqtrd trud wa resqrtcl sylbi fmpti wb ax-resscn c2
      wbr cdiv ccxp cxpsqrt syl mpteq2ia ccnfld ctopn crest ccn ccnv cnfldtopon
      cima ctopon resttopon sylancl cnmptid cdm cnvimass ref sseqtri halfcn 1rp
      fdmi rphalfcl ax-mp rpre rere mp2b eqeltri elpreima mpbir2an cnmptc cmpt2
      wfn ffn ctx cxpcn3 oveq12 cnmpt12 toponunii restid eqcomi mp2an syl6eleqr
      ssid cncfcn syl5eqelr cncffvrn mpbir ) DUAUBUCEZULZAXOAFZDGZHZXOIUDEZXPXS
      JKXPALXRHZXOULZXSKDYAXOKALLDLLDSKUEMUFUGXOLNZYBXSJKAXOLXQXOOZXQYDXQIOZUAX
      QUHVEZXQUIZUJUKZUMZALXOXRUNUOUPUQXSXTOZXOIXSSZAXOIXRXSXSPYDYEYFURXRIOYGXQ
      USUTVAILNXSXOLUDEZOZYJYKVBVCYMKXSAXOXQTVDVFEZVGEZHZYLAXOYOXRYDXQLOYOXRJYH
      XQVHVIVJKYPVKVLGZXOVMEZYQVNEZYLKABCXQYNBFZCFZVGEZYOYRYRYQQVORVQZVMEZYQXOX
      OUUCKYQLVRGZOZYCYRXOVRGOUUFKYQYQPZVPZMZYIXOYQLVSVTZKAYRXOUUJWAKAYNYRUUDXO
      UUCUUJKUUFUUCLNUUDUUCVRGOUUIUUCQWBLQRWCLIQWDWHWEUUCYQLVSVTZYNUUCOZKUULYNL
      OZYNQGZROZWFUUNYNRYNROZYNIOUUNYNJTROUUPWGTWIWJZYNWKYNWLWMUUQWNLIQSQLWSUUL
      UUMUUOURVBWDLIQWTLYNRQWOWMWPMWQUUJUUKBCXOUUCUUBWRYRUUDXAEYQVNEOKBCUUCYQYR
      UUDUUCPUUGYRPZUUDPXBMYTXQUUAYNVGXCXDYCLLNYLYSJYILXJXOLYQYRYQUUGUURYQLVMEZ
      YQUUFUUSYQJUUHYQUUELLYQUUHXEXFWJXGXKXHXIXLUQXOLIXSXMXHXNWN $.

    sqrcn.d $e |- D = ( CC \ ( -oo (,] 0 ) ) $.
    $( Continuity of the square root function.  (Contributed by Mario Carneiro,
       2-May-2016.) $)
    sqrtcn $p |- ( sqrt |` D ) e. ( D -cn-> CC ) $=
      ( vx vy vz csqrt cres cc co wcel wtru cv ccxp cmpt cfv a1i wss wceq mp1i
      c1 ccncf c2 cdiv wf sqrtf feqmptd reseq1d cmnf cc0 cioc cdif difss resmpt
      eqsstri sseli adantl cxpsqrt syl eqcomd mpteq2dva 3eqtrd ccnfld ctopn ccn
      wa crest ctopon cnfldtopon resttopon sylancl cnmptid ax-1cn halfcl cnmptc
      eqid cmpt2 cxpcn oveq12 cnmpt12 ssid toponunii restid ax-mp eqcomi cncfcn
      ctx mp2an syl6eleqr eqeltrd trud ) FAGZAHUAIZJKWKCACLZTUBUCIZMIZNZWLKWKCH
      WMFOZNZAGZCAWQNZWPKFWRAKCHHFHHFUDKUEPUFUGAHQZWSWTRKAHUHUIUJIZUKHBHXBULUNZ
      CHAWQUMSKCAWQWOKWMAJZVEZWOWQXEWMHJZWOWQRXDXFKAHWMXCUOUPWMUQURUSUTVAKWPVBV
      COZAVFIZXGVDIZWLKCDEWMWNDLZELZMIZWOXHXHXGXGAAHKXGHVGOZJZXAXHAVGOJXNKXGXGV
      OZVHZPZXCAXGHVIVJZKCXHAXRVKKCWNXHXGAHXRXQTHJWNHJKVLTVMSVNXRXQDEAHXLVPXHXG
      WFIXGVDIJKDEAXGXHBXOXHVOZVQPXJWMXKWNMVRVSXAHHQWLXIRXCHVTAHXGXHXGXOXSXGHVF
      IZXGXNXTXGRXPXGXMHHXGXPWAWBWCWDWEWGWHWIWJ $.
  $}

  ${
    cxpaddlelem.1 $e |- ( ph -> A e. RR ) $.
    cxpaddlelem.2 $e |- ( ph -> 0 <_ A ) $.
    cxpaddlelem.3 $e |- ( ph -> A <_ 1 ) $.
    cxpaddlelem.4 $e |- ( ph -> B e. RR+ ) $.
    cxpaddlelem.5 $e |- ( ph -> B <_ 1 ) $.
    $( Lemma for ~ cxpaddle .  (Contributed by Mario Carneiro, 2-Aug-2014.) $)
    cxpaddlelem $p |- ( ph -> A <_ ( A ^c B ) ) $=
      ( cc0 wbr ccxp co cle wceq wa c1 cr wcel adantr ad2antrr clt cmin resubcl
      cmul 1re rpred sylancr recxpcld 1red w3a recxpcl jca syl3anc 0le1 a1i crp
      cxpge0 difrp sylancl biimpa cxple2d mpbid recnd 1cxpd breqtrd simpr 1m1e0
      wb oveq2d cc cxp0d eqtrd 1le1 syl6eqbr wo leloe mpjaodan lemul1a syl31anc
      syl6eq caddc ax-1cn npcan anim1i elrp sylibr rpne0d cxpaddd cxp1d 3eqtr3d
      cxpcld mulid2d 3brtr3d cxpge0d breq1 syl5ibcom imp 0re ) AIBUAJZBBCKLZMJZ
      IBNZAWSOZBPCUBLZKLZWTUDLZPWTUDLZBWTMXCXEQRZPQRZWTQRZIWTMJZOZXEPMJZXFXGMJA
      XHWSABXDDEAXICQRZXDQRUEACGUFZPCUCUGZUHSXCUIAXLWSABQRZIBMJZXNXLDEXOXQXRXNU
      JXJXKBCUKBCUQULUMSXCCPUAJZXMCPNZXCXSOZXEPXDKLZPMYABPMJZXEYBMJAYCWSXSFTYAB
      PXDAXQWSXSDTAXRWSXSETYAUIIPMJYAUNUOXCXSXDUPRZAXSYDVHZWSAXNXIYEXOUECPURUSS
      UTVAVBAYBPNWSXSAXDAXDXPVCZVDTVEXCXTOZXEPPMYGXEBIKLPYGXDIBKYGXDPPUBLIYGCPP
      UBXCXTVFVIVGVTVIYGBABVJRZWSXTABDVCZTVKVLVMVNAXSXTVOZWSACPMJZYJHAXNXIYKYJV
      HXOUECPVPUSVBSVQXEPWTVRVSXCBXDCWALZKLBPKLZXFBXCYLPBKAYLPNZWSAPVJRCVJRZYNW
      BACXOVCZPCWCUGSVIXCBXDCAYHWSYISXCBXCXQWSOBUPRAXQWSDWDBWEWFWGAXDVJRWSYFSAY
      OWSYPSWHAYMBNWSABYIWISWJAXGWTNWSAWTABCYIYPWKWLSWMAXBXAAXKXBXAABCDEXOWNIBW
      TMWOWPWQAXRWSXBVOZEAIQRXQXRYQVHWRDIBVPUGVBVQ $.
  $}

  ${
    cxpaddle.1 $e |- ( ph -> A e. RR ) $.
    cxpaddle.2 $e |- ( ph -> 0 <_ A ) $.
    cxpaddle.3 $e |- ( ph -> B e. RR ) $.
    cxpaddle.4 $e |- ( ph -> 0 <_ B ) $.
    cxpaddle.5 $e |- ( ph -> C e. RR+ ) $.
    cxpaddle.6 $e |- ( ph -> C <_ 1 ) $.
    $( Ordering property for complex exponentiation.  (Contributed by Mario
       Carneiro, 8-Sep-2014.) $)
    cxpaddle $p |- ( ph ->
      ( ( A + B ) ^c C ) <_ ( ( A ^c C ) + ( B ^c C ) ) ) $=
      ( cc0 co wbr ccxp cle c1 cr wcel adantr recnd caddc wceq wa cmul readdcld
      clt addge0d rpred recxpcld mulid2d cdiv crp anim1i elrp sylibr rerpdivcld
      simpr syl22anc addge01d mpbid mulid1d breqtrrd wb 1red ledivmul syl112anc
      divge0 mpbird cxpaddlelem le2addd rpne0d divdird dividd eqtr3d cc divcxpd
      addge02d oveq12d rpcxpcld eqtr4d 3brtr3d lemuldivd eqbrtrrd 0cxpd cxpge0d
      eqbrtrd oveq1 breq1d syl5ibcom imp wo 0re leloe sylancr mpjaodan ) AKBCUA
      LZUFMZWPDNLZBDNLZCDNLZUALZOMZKWPUBZAWQUCZPWRUDLZWRXAOXDWRXDWRAWRQRWQAWPDA
      BCEGUEZABCEGFHUGZADIUHZUISTZUJXDXEXAOMPXAWRUKLZOMXDBWPUKLZCWPUKLZUALZXKDN
      LZXLDNLZUALZPXJOXDXKXLXNXOXDBWPABQRZWQESZXDWPQRZWQUCWPULRAXSWQXFUMWPUNUOZ
      UPZXDCWPACQRZWQGSZXTUPZXDXKDYAXDXQKBOMZXSWQKXKOMXRAYEWQFSZAXSWQXFSZAWQUQZ
      BWPVGURZADQRWQXHSZUIXDXLDYDXDYBKCOMZXSWQKXLOMYCAYKWQHSZYGYHCWPVGURZYJUIXD
      XKDYAYIXDXKPOMZBWPPUDLZOMZXDBWPYOOABWPOMZWQAYKYQHABCEGUSUTSXDWPXDWPYGTZVA
      ZVBXDXQPQRZXSWQYNYPVCXRXDVDZYGYHBPWPVEVFVHADULRWQISZADPOMWQJSZVIXDXLDYDYM
      XDXLPOMZCYOOMZXDCWPYOOACWPOMZWQAYEUUFFACBGEVQUTSYSVBXDYBYTXSWQUUDUUEVCYCU
      UAYGYHCPWPVEVFVHUUBUUCVIVJXDWPWPUKLXMPXDBCWPXDBXRTXDCYCTYRXDWPXTVKZVLXDWP
      YRUUGVMVNXDXPWSWRUKLZWTWRUKLZUALXJXDXNUUHXOUUIUAXDBWPDXRYFXTADVORWQADXHTZ
      SZVPXDCWPDYCYLXTUUKVPVRXDWSWTWRAWSVORWQAWSABDEFXHUIZTSAWTVORWQAWTACDGHXHU
      IZTSXIXDWRXDWPDXTYJVSZVKVLVTWAXDPXAWRUUAAXAQRWQAWSWTUULUUMUESUUNWBVHWCAXC
      XBAKDNLZXAOMXCXBAUUOKXAOADUUJADIVKWDAWSWTUULUUMABDEFXHWEACDGHXHWEUGWFXCUU
      OWRXAOKWPDNWGWHWIWJAKWPOMZWQXCWKZXGAKQRXSUUPUUQVCWLXFKWPWMWNUTWO $.
  $}

  ${
    abscxpbnd.1 $e |- ( ph -> A e. CC ) $.
    abscxpbnd.2 $e |- ( ph -> B e. CC ) $.
    abscxpbnd.3 $e |- ( ph -> 0 <_ ( Re ` B ) ) $.
    abscxpbnd.4 $e |- ( ph -> M e. RR ) $.
    abscxpbnd.5 $e |- ( ph -> ( abs ` A ) <_ M ) $.
    $( Bound on the absolute value of a complex power.  (Contributed by Mario
       Carneiro, 15-Sep-2014.) $)
    abscxpbnd $p |- ( ph -> ( abs ` ( A ^c B ) ) <_
      ( ( M ^c ( Re ` B ) ) x. ( exp ` ( ( abs ` B ) x. _pi ) ) ) ) $=
      ( co cabs cfv cpi cmul cle wbr cc0 c1 wcel adantr ccxp cre ce wceq wa a1i
      1le1 oveq12 adantll cc 0cn cxp0 ax-mp syl6eq fveq2d abs1 fveq2 re0 oveq2d
      recnd cxp0d sylan9eqr simpr abs00bd oveq1d picn ef0 oveq12d 1t1e1 3brtr4d
      mul02i wne simplr 0cxp sylan eqtrd cr abscld absge0d letrd recld recxpcld
      0red ad2antrr pire remulcl sylancl reefcld cxpge0d rpefcld rpge0d mulge0d
      eqbrtrd pm2.61dane cim clog cneg cxpefd logcl mulcld absef caddc remulcld
      imcld renegcld efadd syl2anc cmin negsubd mulneg2d remuld 3eqtr4d abs00ad
      syl relog necon3bid biimpar eqtr4d 3eqtr3d 3eqtrd cxple2ad leabsd absmuld
      lemul1ad breqtrd absimle absnegd clt logimcl simpld renegcli ltle sylancr
      wi mpd simprd wb absle mpbir2and lemul2ad efle mpbid ) ABCUAJZKLZDCUBLZUA
      JZCKLZMNJZUCLZNJZOPZBQABQUDZUEZUUKCQUUMCQUDZUEZRRUUDUUJORROPUUOUGUFUUOUUD
      RKLRUUOUUCRKUUOUUCQQUAJZRUULUUNUUCUUPUDABQCQUAUHUIQUJSUUPRUDUKQULUMUNUOUP
      UNUUOUUJRRNJRUUOUUFRUUIRNUUNUUMUUFDQUAJZRUUNUUEQDUAUUNUUEQUBLQCQUBUQURUNU
      SAUUQRUDUULADADHUTVATVBUUOUUIQUCLRUUOUUHQUCUUOUUHQMNJQUUOUUGQMNUUOCUUMUUN
      VCVDVEMVFVKUNUOVGUNVHVIUNVJUUMCQVLZUEZUUDQUUJOUUSUUCUUSUUCQCUAJZQUUSBQCUA
      AUULUURVMVEUUMCUJSZUURUUTQUDAUVAUULFTCVNVOVPVDUUSUUFUUIAUUFVQSZUULUURADUU
      EHAQBKLZDAWCABEVRZHABEVSIVTZACFWAZWBZWDUUSUUHUUSUUGVQSZMVQSZUUHVQSZAUVHUU
      LUURACFVRZWDWEUUGMWFZWGZWHAQUUFOPZUULUURADUUEHUVEUVFWIZWDUUSUUIUUSUUHUVMW
      JWKWLWMWNABQVLZUEZUUDUVCUUEUAJZCWOLZBWPLZWOLZWQZNJZUCLZNJZUUJOUVQUUDCUVTN
      JZUCLZKLZUWFUBLZUCLZUWEUVQUUCUWGKUVQBCABUJSZUVPETZAUVPVCAUVAUVPFTZWRUOUVQ
      UWFUJSUWHUWJUDUVQCUVTUWMAUWKUVPUVTUJSEBWSVOZWTUWFXAXNUVQUUEUVTUBLZNJZUWCX
      BJZUCLZUWPUCLZUWDNJZUWJUWEUVQUWPUJSUWCUJSUWRUWTUDUVQUWPUVQUUEUWOUVQCUWMWA
      ZUVQUVTUWNWAXCUTZUVQUWCUVQUVSUWBUVQCUWMXDZUVQUWAUVQUVTUWNXDZXEZXCZUTUWPUW
      CXFXGUVQUWQUWIUCUVQUWPUVSUWANJZWQZXBJUWPUXGXHJUWQUWIUVQUWPUXGUXBUVQUXGUVQ
      UVSUWAUXCUXDXCUTXIUVQUWCUXHUWPXBUVQUVSUWAUVQUVSUXCUTZUVQUWAUXDUTZXJUSUVQC
      UVTUWMUWNXKXLUOUVQUWSUVRUWDNUVQUWSUUEUVCWPLZNJZUCLUVRUVQUWPUXLUCUVQUWOUXK
      UUENAUWKUVPUWOUXKUDEBXOVOUSUOUVQUVCUUEAUVCUJSUVPAUVCUVDUTTAUVCQVLUVPAUVCQ
      BQABEXMXPXQUVQUUEUXAUTWRXRVEXSXTUVQUWEUUFUWDNJUUJUVQUVRUWDUVQUVCUUEUVQBUW
      LVRZUVQBUWLVSZUXAWBZUVQUWCUXFWHZXCUVQUUFUWDAUVBUVPUVGTZUXPXCUVQUUFUUIUXQA
      UUIVQSUVPAUUHAUVHUVIUVJUVKWEUVLWGZWHTZXCUVQUVRUUFUWDUXOUXQUXPUVQUWDUVQUWC
      UXFWJWKUVQUVCDUUEUXMUXNADVQSUVPHTUXAAQUUEOPUVPGTAUVCDOPUVPITYAYDUVQUWDUUI
      UUFUXPUXSUXQAUVNUVPUVOTUVQUWCUUHOPZUWDUUIOPZUVQUWCUVSKLZUWBKLZNJZUUHUXFUV
      QUYBUYCUVQUVSUXIVRZUVQUWBUVQUWBUXEUTZVRZXCZAUVJUVPUXRTZUVQUWCUWCKLUYDOUVQ
      UWCUXFYBUVQUVSUWBUXIUYFYCYEUVQUYDUUGUYCNJUUHUYHUVQUUGUYCUVQCUWMVRZUYGXCUY
      IUVQUYBUUGUYCUYEUYJUYGUVQUWBUYFVSUVQUVAUYBUUGOPUWMCYFXNYDUVQUYCMUUGUYGUVI
      UVQWEUFUYJUVQCUWMVSUVQUYCUWAKLZMOUVQUWAUXJYGUVQUYKMOPZMWQZUWAOPZUWAMOPZUV
      QUYMUWAYHPZUYNUVQUYPUYOAUWKUVPUYPUYOUEEBYIVOZYJUVQUYMVQSUWAVQSZUYPUYNYNMW
      EYKUXDUYMUWAYLYMYOUVQUYPUYOUYQYPUVQUYRUVIUYLUYNUYOUEYQUXDWEUWAMYRWGYSWMYT
      VTVTUVQUWCVQSUVJUXTUYAYQUXFUYIUWCUUHUUAXGUUBYTVTWMWN $.
  $}

  $( Property of an ` N ` -th root of unity.  (Contributed by Mario Carneiro,
     23-Apr-2015.) $)
  root1id $p |- ( N e. NN -> ( ( -u 1 ^c ( 2 / N ) ) ^ N ) = 1 ) $=
    ( cn wcel c1 cneg c2 cdiv co cmul ccxp cexp cc neg1cn a1i 2re nndivre recnd
    cr mpan wceq nnnn0 cxpmul2d 2cnd nncn nnne0 divcan1d oveq2d cn0 2nn0 cxpexp
    mp2an ax-1cn sqneg ax-mp sq1 3eqtri syl6eq eqtr3d ) ABCZDEZFAGHZAIHZJHZUTVA
    JHAKHDUSUTVAAUTLCZUSMNUSVAFRCUSVARCOFAPSQAUAUBUSVCUTFJHZDUSVBFUTJUSFAUSUCAU
    DAUEUFUGVEUTFKHZDFKHZDVDFUHCVEVFTMUIUTFUJUKDLCVFVGTULDUMUNUOUPUQUR $.

  $( The only powers of an ` N ` -th root of unity that equal ` 1 ` are the
     multiples of ` N ` .  In other words, ` -u 1 ^c ( 2 / N ) ` has order
     ` N ` in the multiplicative group of nonzero complex numbers.  (In fact,
     these and their powers are the only elements of finite order in the
     complex numbers.)  (Contributed by Mario Carneiro, 28-Apr-2016.) $)
  root1eq1 $p |- ( ( N e. NN /\ K e. ZZ ) ->
      ( ( ( -u 1 ^c ( 2 / N ) ) ^ K ) = 1 <-> N || K ) ) $=
    ( wcel cz c1 c2 cdiv co cexp wceq ci cpi cmul ce cfv cc ax-icn picn a1i 2cn
    cn wa cneg cdvds wbr cr 2re simpl nndivre sylancr recnd mulcli mulcld efexp
    ccxp sylancom zcn adantl nncn adantr cc0 nnne0 div32d oveq1d divcld mulassd
    wne 3eqtr3d fveq2d clog neg1cn neg1ne0 cxpefd oveq2i fveq2i syl6eq 3eqtr4rd
    logm1 eqeq1d wb mulcl sylancl efeq1 syl mul12i 2ne0 ine0 pire pipos mulne0i
    gt0ne0ii divcan4d syl5eq eleq1d nnz simpr dvdsval2 syl3anc bitr4d 3bitrd )
    BUACZADCZUBZEUCZFBGHZUOHZAIHZEJABGHZFKLMHZMHZMHZNOZEJZXKKFLMHMHZGHZDCZBAUDU
    EZXCXGXLEXCAXEXIMHZMHZNOZXRNOZAIHZXLXGXAXBXRPCXTYBJXCXEXIXCXEXCFUFCXAXEUFCU
    GXAXBUHFBUIUJUKZXIPCXCKLQRULZSZUMXRAUNUPXCXKXSNXCXHFMHZXIMHAXEMHZXIMHXKXSXC
    YFYGXIMXCABFXBAPCXAAUQURZXABPCXBBUSUTZFPCXCTSZXABVAVGZXBBVBUTZVCVDXCXHFXIXC
    ABYHYIYLVEZYJYEVFXCAXEXIYHYCYEVFVHVIXCXFYAAIXCXFXEXDVJOZMHZNOYAXCXDXEXDPCXC
    VKSXDVAVGXCVLSYCVMYOXRNYNXIXEMVRVNVOVPVDVQVSXCXKPCZXMXPVTXCXHPCXJPCZYPYMFXI
    TYDULZXHXJWAWBXKWCWDXCXPXHDCZXQXCXOXHDXCXOXKXJGHXHXNXJXKGKFLQTRWEVNXCXHXJYM
    YQXCYRSXJVAVGXCFXITYDWFKLQRWGLWHWIWKWJWJSWLWMWNXCBDCZYKXBXQYSVTXAYTXBBWOUTY
    LXAXBWPBAWQWRWSWT $.

  $( Within the ` N ` -th roots of unity, the conjugate of the ` K ` -th root
     is the ` N - K ` -th root.  (Contributed by Mario Carneiro,
     23-Apr-2015.) $)
  root1cj $p |- ( ( N e. NN /\ K e. ZZ ) ->
      ( * ` ( ( -u 1 ^c ( 2 / N ) ) ^ K ) ) =
            ( ( -u 1 ^c ( 2 / N ) ) ^ ( N - K ) ) ) $=
    ( wcel cz c1 c2 cdiv co ccxp cexp cfv cc neg1cn sylancr cc0 wne wceq oveq1d
    cr cabs cn wa cneg cmin ccj 2re simpl nndivre recnd cxpcl a1i neg1ne0 simpr
    cxpne0d nnz expsubd root1id expclzd expne0d syl2anc absexpz syl3anc abscxp2
    adantr recval ax-1cn absnegi abs1 eqtri oveq1i syl6eq 1cxpd 1exp adantl sq1
    eqtrd 3eqtrd oveq2d cjcld div1d 3eqtrrd ) BUACZADCZUBZEUCZFBGHZIHZBAUDHJHWG
    BJHZWGAJHZGHEWIGHZWIUEKZWDWGBAWDWELCZWFLCWGLCZMWDWFWDFSCWBWFSCZUFWBWCUGFBUH
    NZUIZWEWFUJNZWDWEWFWLWDMUKWEOPWDULUKWPUNZWBWCUMZWBBDCWCBUOVDUPWDWHEWIGWBWHE
    QWCBUQVDRWDWJWKWITKZFJHZGHZWKEGHWKWDWILCWIOPWJXBQWDWGAWQWRWSURZWDWGAWQWRWSU
    SWIVEUTWDXAEWKGWDXAEFJHEWDWTEFJWDWTWGTKZAJHZEAJHZEWDWMWGOPWCWTXEQWQWRWSWGAV
    AVBWDXDEAJWDXDEWFIHZEWDXDWETKZWFIHZXGWDWLWNXDXIQMWOWEWFVCNXHEWFIXHETKEEVFVG
    VHVIVJVKWDWFWPVLVPRWCXFEQWBAVMVNVQRVOVKVRWDWKWDWIXCVSVTVQWA $.

  ${
    $d m n A $.  $d m n B $.  $d m n N $.
    $( Solve an equation involving an ` N ` -th power.  The expression
       ` -u 1 ^c ( 2 / N ) = exp ( 2 _pi _i / N ) ` is a way to write the
       primitive ` N ` -th root of unity with the smallest positive argument.
       (Contributed by Mario Carneiro, 23-Apr-2015.) $)
    cxpeq $p |- ( ( A e. CC /\ N e. NN /\ B e. CC ) -> ( ( A ^ N ) = B <->
      E. n e. ( 0 ... ( N - 1 ) ) A = ( ( B ^c ( 1 / N ) ) x.
        ( ( -u 1 ^c ( 2 / N ) ) ^ n ) ) ) ) $=
      ( cc wcel cexp co wceq c1 cdiv ccxp c2 cmul cc0 cfv syl adantr oveq1d ce
      vm cn w3a cneg cv cmin cfz wrex wi wa cuz simpl2 nnm1nn0 syl6eleq eluzfz1
      cn0 nn0uz neg1cn 2re simp2 nndivre sylancr recnd cxpcl 0nn0 expcl sylancl
      cr mul02d simprl simprr 0expd 3eqtr3d wne nncn nnne0 reccl recne0 syl2anc
      0cxpd eqtrd 3eqtr4rd oveq2 oveq2d eqeq2d rspcev expr clog ci cpi caddc cz
      simpl1 simpr nnzd explog syl3anc eqcomd nncnd logcld mulcld nnnn0d expcld
      wb expne0d eflogeq mpbid ax-icn 2cn mulcli zcn adantl mulcl addcld nnne0d
      picn ad2antrr divmuld fveq2 cmo reccld divdird divrec2d a1i div23d mul12i
      efadd oveq1i syl5eq 3eqtrd oveq12d cxpefd neg1ne0 cxpcld nn0cnd rexlimdva
      1exp eqeq1d oveq1 expmuld mul32d fveq2d cxpmul2zd cxpne0d expclzd zmodcld
      logm1 oveq2i fveq2i syl6eq nn0zd expsubd crp zre moddifz expmulz syl22anc
      nnrpd subcld divcan2d root1id eqtr3d diveq1d 3eqtr4d eflog eqeq12d zmodfz
      3eqtr3rd eqcom syl5bb ex sylbid syl5 sylbird rexbidv syl5ibcom pm2.61dane
      mpd simp3 nnrecre 3ad2ant2 elfznn0 syl2an mulexpd cxproot mulcomd elfzelz
      mulid1d syl5ibrcom impbid ) AEFZDUBFZBEFZUCZADGHZBIZABJDKHZLHZJUDZMDKHZLH
      ZCUEZGHZNHZIZCODJUFHZUGHZUHZUWNUWPUXHUIAOUWNAOIZUWPUXHUWNUXIUWPUJZUJZOUXG
      FZAUWRUXAOGHZNHZIZUXHUXKUXFOUKPZFUXLUXKUXFUPUXPUXKUWLUXFUPFUWKUWLUWMUXJUL
      ZDUMQUQUNOUXFUOQUXKOUXMNHOUXNAUXKUXMUXKUXAEFZOUPFUXMEFUWNUXRUXJUWNUWSEFZU
      WTEFZUXRURUWNUWTUWNMVHFUWLUWTVHFUSUWKUWLUWMUTZMDVAVBVCZUWSUWTVDVBZRVEUXAO
      VFVGVIUXKUWROUXMNUXKUWROUWQLHZOUXKBOUWQLUXKUWOODGHBOUXKAODGUWNUXIUWPVJZSU
      WNUXIUWPVKUXKDUXQVLVMSUXKUWLUYDOIZUXQUWLDEFZDOVNZUYFDVODVPUYGUYHUJUWQDVQD
      VRVTVSQWASUYEWBUXEUXOCOUXGUXBOIZUXDUXNAUYIUXCUXMUWRNUXBOUXAGWCWDWEWFVSWGU
      WNAOVNZUJZAUWOUWQLHZUXCNHZIZCUXGUHZUWPUXHUYKDAWHPZNHZUWOWHPZWIMWJNHZNHZUA
      UEZNHZWKHZIZUAWLUHZUYOUYKUYQTPZUWOIZVUEUYKUWOVUFUYKUWKUYJDWLFZUWOVUFIUWKU
      WLUWMUYJWMZUWNUYJWNZUYKDUWKUWLUWMUYJULZWOZADWPWQWRUYKUYQEFUWOEFZUWOOVNZVU
      GVUEXDUYKDUYPUWNUYGUYJUWNDUYAWSRZUYKAVUIVUJWTZXAUYKADVUIUYKDVUKXBXCZUYKAD
      VUIVUJVULXEZUYQUWOUAXFWQXGUYKVUDUYOUAWLUYKVUAWLFZUJZVUDVUCDKHZUYPIZUYOVUT
      VUCDUYPVUTUYRVUBUYKUYREFVUSUYKUWOVUQVURWTRZVUTUYTEFZVUAEFZVUBEFWIUYSXHMWJ
      XIXPXJXJZVUSVVEUYKVUAXKXLZUYTVUAXMVBZXNUYKUYGVUSVUORZUYKUYPEFVUSVUPRUWNUY
      HUYJVUSUWNDUYAXOXQZXRVVBVVATPZUYPTPZIZVUTUYOVVAUYPTXSVUTVVMUYLUXAVUADXTHZ
      GHZNHZAIZUYOVUTVVKVVPVVLAVUTUWQUYRNHZUWTVUANHZWIWJNHZNHZWKHZTPZVVRTPZVWAT
      PZNHZVVKVVPVUTVVREFVWAEFZVWCVWFIVUTUWQUYRVUTDVVIVVJYAZVVCXAVUTVVSEFVVTEFZ
      VWGVUTUWTVUAUWNUXTUYJVUSUYBXQZVVGXAZWIWJXHXPXJZVVSVVTXMVGVVRVWAYGVSVUTVVA
      VWBTVUTVVAUYRDKHZVUBDKHZWKHVWBVUTUYRVUBDVVCVVHVVIVVJYBVUTVWMVVRVWNVWAWKVU
      TUYRDVVCVVIVVJYCVUTVWNUYTDKHZVUANHUWTVVTNHZVUANHVWAVUTUYTVUADVVDVUTVVFYDV
      VGVVIVVJYEVUTVWOVWPVUANVUTVWOMVVTNHZDKHVWPUYTVWQDKWIMWJXHXIXPYFYHVUTMVVTD
      MEFVUTXIYDVWIVUTVWLYDZVVIVVJYEYISVUTUWTVVTVUAVWJVWRVVGUUAYJYKWAUUBVUTUYLV
      WDVVOVWENVUTUWOUWQUYKVUMVUSVUQRUYKVUNVUSVURRVWHYLVUTUWSVVSLHZUXAVUAGHZVWE
      VVOVUTUWSUWTVUAUXSVUTURYDZUWSOVNZVUTYMYDZVWJUYKVUSWNZUUCVUTVWSVVSUWSWHPZN
      HZTPVWEVUTUWSVVSVXAVXCVWKYLVXFVWATVXEVVTVVSNUUGUUHUUIUUJVUTVWTVVOVUTUXAVU
      AVUTUWSUWTVXAVWJYNZUWNUXAOVNZUYJVUSUWNUWSUWTUXSUWNURYDVXBUWNYMYDUYBUUDXQZ
      VXDUUEVUTUXAVVNVXGVUTVUADVXDUYKUWLVUSVUKRZUUFZXCVUTUXAVVNVXGVXIVUTVVNVXKU
      UKZXEVUTUXAVUAVVNUFHZGHZVWTVVOKHJVUTUXAVUAVVNVXGVXIVXLVXDUULVUTUXADVXMDKH
      ZNHZGHZUXADGHZVXOGHZVXNJVUTUXRVXHVUHVXOWLFZVXQVXSIVXGVXIVUTDVXJWOVUTVUAVH
      FZDUUMFVXTVUSVYAUYKVUAUUNXLVUTDVXJUURVUADUUOVSZUXADVXOUUPUUQVUTVXPVXMUXAG
      VUTVXMDVUTVUAVVNVVGVUTVVNVXKYOUUSVVIVVJUUTWDVUTVXSJVXOGHZJVUTVXRJVXOGVUTU
      WLVXRJIZVXJDUVAZQSVUTVXTVYCJIVYBVXOYQQWAVMUVBUVCUVHYKUVDUYKVVLAIZVUSUYKUW
      KUYJVYFVUIVUJAUVEVSRUVFVUTVVNUXGFZVVQUYOUIVUTVUSUWLVYGVXDVXJVUADUVGVSVYGV
      VQUYOUYNVVQCVVNUXGUYNUYMAIUXBVVNIZVVQAUYMUVIVYHUYMVVPAVYHUXCVVOUYLNUXBVVN
      UXAGWCWDYRUVJWFUVKQUVLUVMUVNYPUVRUWPUYNUXECUXGUWPUYMUXDAUWPUYLUWRUXCNUWOB
      UWQLYSSWEUVOUVPUVQUWNUXEUWPCUXGUWNUXBUXGFZUJZUWPUXEUXDDGHZBIVYJVYKUWRDGHZ
      UXCDGHZNHBJNHBVYJUWRUXCDUWNUWREFVYIUWNBUWQUWKUWLUWMUVSZUWNUWQUWLUWKUWQVHF
      UWMDUVTUWAVCYNRUWNUXRUXBUPFZUXCEFVYIUYCUXBUXFUWBZUXAUXBVFUWCVYJDUWNUWLVYI
      UYARZXBZUWDVYJVYLBVYMJNVYJUWMUWLVYLBIUWNUWMVYIVYNRZVYQBDUWEVSVYJVYMVXRUXB
      GHZJUXBGHZJVYJUXAUXBDNHZGHUXADUXBNHZGHVYMVYTVYJWUBWUCUXAGVYJUXBDVYJUXBVYI
      VYOUWNVYPXLZYOVYJDVYQWSUWFWDVYJUXAUXBDUWNUXRVYIUYCRZVYRWUDYTVYJUXADUXBWUE
      WUDVYRYTVMVYJVXRJUXBGVYJUWLVYDVYQVYEQSVYJUXBWLFZWUAJIVYIWUFUWNUXBOUXFUWGX
      LUXBYQQYJYKVYJBVYSUWHYJUXEUWOVYKBAUXDDGYSYRUWIYPUWJ $.
  $}

  ${
    $d x y A $.
    $( An upper bound on the logarithm.  (Contributed by Mario Carneiro,
       2-May-2016.)  (Proof shortened by AV, 2-Aug-2021.) $)
    loglesqrt $p |- ( ( A e. RR /\ 0 <_ A ) ->
        ( log ` ( A + 1 ) ) <_ ( sqrt ` A ) ) $=
      ( vx vy cr wcel cc0 cle wbr c1 caddc co clog cfv csqrt cmin a1i cmpt wceq
      crp cc wa cv cdiv c2 cmul 0re simpl cicc cres ccncf w3a wb elicc2 sylancr
      biimpa simp1d simp2d ge0p1rpd fvresd mpteq2dva ccnfld ctopn crest ccn wss
      ctopon eqid cnfldtopon ex ssrdv ax-resscn syl6ss resttopon wf fmptd sstri
      ctx addcn ssid cncfmptid sylancl 1cnd cncfmptc syl3anc cncfmpt2f cncffvrn
      rpssre mpbird cncfcn eleqtrd relogcn mp2an eleqtri cnmpt11f eleqtrrd cioo
      eqeltrrd crn ctg cpr reelprrecn simpr 1rp rpaddcl relogcld recnd rpreccld
      relogcl adantl rpreccl peano2re sselda dvmptid 0cnd dvmptc dvmptadd 1p0e1
      cdv syl6eq tgioo2 cpnf ioorp iooretop eqeltrri dvmptres fveq2 rpcnd eqtrd
      mpteq2i clt cexp rpred oveq1d mpbid cxr 0xr mp3an1 sylan oveq1 fveq2d 2rp
      dvrelog wf1o relogf1o f1of feqmptd fvres mpteq2ia oveq2d syl5reqr dvmptco
      mp1i oveq2 mulid1d ioossicc sseli sylan2 eliooord simpld elrege0 sylanbrc
      elrpd cico resabs1d sqrtf feqresmpt resqrtcn rescncf mpisyl rpcn rpsqrtcl
      sqrtcld rpmulcl dvsqrt 1re resubcl sqsqrtd binom2sub1 syl addsubd 3eqtr4d
      sqge0d breqtrd subge0d lerecd syldan rexr lbicc2 0p1e1 log1 sqrt0 ge0p1rp
      ubicc2 dvle resqrtcl lesub1d ) ADEZFAGHZUAZAIJKZLMZANMZGHUXAFOKUXBFOKGHUW
      SBBUBZIJKZLMZIUXDUCKZUXCNMZIUDUXGUEKZUCKZFFUXAUXBFAFAFDEZUWSUFPZUWQUWRUGZ
      UWSBFAUHKZUXDLSUIZMZQZBUXMUXEQUXMDUJKZUWSBUXMUXOUXEUWSUXCUXMEZUAZUXDSLUXS
      UXCUXSUXCDEZFUXCGHZUXCAGHZUWSUXRUXTUYAUYBUKZUWSUXJUWQUXRUYCULUFUXLFAUXCUM
      UNUOZUPZUXSUXTUYAUYBUYDUQZURZUSUTUWSUXPVAVBMZUXMVCKZUYHDVCKZVDKZUXQUWSBUX
      DUXNUYIUYHSVCKZUYJUXMUWSUYHTVFMEUXMTVEZUYIUXMVFMEUYHUYHVGZVHUWSUXMDTUWSBU
      XMDUWSUXRUXTUYEVIVJVKVLZUXMUYHTVMUNUWSBUXMUXDQZUXMSUJKZUYIUYLVDKZUWSUYPUY
      QEZUXMSUYPVNZUWSBUXMUXDSUYPUYGUYPVGVOUWSSTVEZUYPUXMTUJKZEUYSUYTULSDTWGVKV
      PZUWSBUXCIJUYHUXMUYNJUYHUYHVQKUYHVDKEUWSUYHUYNVRPUWSUYMTTVEZBUXMUXCQVUBEU
      YOTVSZBUXMTVTWAUWSITEUYMVUDBUXMIQVUBEUWSWBZUYOVUDUWSVUEPBIUXMTWCWDWEUXMTS
      UYPWFUNWHUWSUYMVUAUYQUYRRUYOVUCUXMSUYHUYIUYLUYNUYIVGZUYLVGZWIWAWJUXNUYLUY
      JVDKZEUWSUXNSDUJKZVUIWKVUADTVEZVUJVUIRVUCVKSDUYHUYLUYJUYNVUHUYJVGZWIWLWMP
      WNUWSUYMVUKUXQUYKRUYOVKUXMDUYHUYIUYJUYNVUGVULWIWAWOWQUWSBUXEUXFDWPWRWSMZU
      YHSSFAWPKZDDTWTEUWSXAPZUWSUXCSEZUAZUXEVUQUXDVUQVUPISEUXDSEUWSVUPXBXCUXCIX
      DWAZXEXFVUQUXDVURXGZUWSDBSUXEQXRKBSUXFIUEKZQBSUXFQUWSBCUXDICUBZLMZIVVAUCK
      ZDDUXEUXFTSSSVUOVUOVURVUQWBZUWSVVASEZUAVVBVVEVVBDEUWSVVAXHXIXFVVEVVCSEUWS
      VVAXJXIUWSBUXDIDVUMUYHTDSVUOUWSUXTUAZUXDUXTUXDDEUWSUXCXKXIXFVVFWBZUWSDBDU
      XDQXRKBDIFJKZQBDIQUWSBUXCIIFDTTDVUOUWSDTUXCVUKUWSVKPXLVVGUWSBDVUOXMVVGVVF
      XNUWSBIDVUOVUFXOXPBDVVHIXQYIXSSDVEUWSWGPUYHUYNXTZUYNSVUMEUWSFYAWPKSVUMYBF
      YAYCYDPYEUWSCSVVCQDUXNXRKDCSVVBQZXRKCUUBUWSUXNVVJDXRUWSUXNCSVVAUXNMZQVVJU
      WSCSDUXNSDUXNUUCSDUXNVNUWSUUDSDUXNUUEUULUUFCSVVKVVBVVASLUUGUUHXSUUIUUJVVA
      UXDLYFVVAUXDIUCUUMUUKUWSBSVUTUXFVUQUXFVUQUXFVUSYGUUNUTYHUWSBVUNSUWSUXCVUN
      EZVUPUWSVVLUAUXCVVLUWSUXRUXTVUNUXMUXCFAUUOUUPUYEUUQVVLFUXCYJHZUWSVVLVVMUX
      CAYJHUXCFAUURUUSXIUVBZVIVJZVVIUYNVUNVUMEUWSFAYCPZYEUWSNFYAUVCKZUIZUXMUIZB
      UXMUXGQZUXQUWSVVSNUXMUIVVTUWSNUXMVVQUWSBUXMVVQUWSUXRUXCVVQEZUXSUXTUYAVWAU
      YEUYFUXCUUTUVAVIVJZUVDUWSBTTUXMNTTNVNUWSUVEPUYOUVFYHUWSUXMVVQVEVVRVVQDUJK
      EVVSUXQEVWBUVGVVQDUXMVVRUVHUVIWQUWSBUXGUXIDVUMUYHSSVUNVUOVUQUXCVUPUXCTEUW
      SUXCUVJXIZUVLZVUQUXHVUQUDSEUXGSEZUXHSEUUAVUPVWEUWSUXCUVKXIZUDUXGUVMUNZXGD
      BSUXGQXRKBSUXIQRUWSBUVNPVVOVVIUYNVVPYEUWSVVLVUPUXFUXIGHZVVNVUQUXHUXDGHZVW
      HVUQFUXDUXHOKZGHVWIVUQFUXGIOKZUDYKKZVWJGVUQVWKVUQUXGDEIDEVWKDEVUQUXGVWFYL
      UVOUXGIUVPWAUWBVUQUXGUDYKKZUXHOKZIJKZUXCUXHOKZIJKVWLVWJVUQVWNVWPIJVUQVWMU
      XCUXHOVUQUXCVWCUVQYMYMVUQUXGTEVWLVWORVWDUXGUVRUVSVUQUXCIUXHVWCVVDVUQUXHVW
      GYGUVTUWAUWCVUQUXDUXHVUQUXDVURYLVUQUXHVWGYLUWDYNVUQUXHUXDVWGVURUWEYNUWFUW
      QAYOEZUWRFUXMEZAUWGZFYOEZVWQUWRVWRYPFAUWHYQYRUWQVWQUWRAUXMEZVWSVWTVWQUWRV
      XAYPFAUWMYQYRUWQUWRXBUXCFRZUXEILMFVXBUXDILVXBUXDFIJKIUXCFIJYSUWIXSYTUWJXS
      VXBUXGFNMFUXCFNYFUWKXSUXCARUXDUWTLUXCAIJYSYTUXCANYFUWNUWSUXAUXBFUWSUWTAUW
      LXEAUWOUXKUWPWH $.
  $}

  $( Symmetry of the natural logarithm range by negation.  Lemma for ~ logrec .
     (Contributed by Saveliy Skresanov, 27-Dec-2016.) $)
  logreclem $p |- ( ( A e. ran log /\ -. ( Im ` A ) = _pi ) ->
                                                           -u A e. ran log ) $=
    ( wcel cim cpi wceq cneg wo wa cc clt wbr cle adantr cr wi pire biimpd sylc
    syl wb clog crn cfv wn w3a logrncn negcld ellogrn biimpi imcl leneg sylancl
    simp3d renegcli a1i renegcld leloed orcomd orcanai simp2d ltnegcon1 sylancr
    ltle imneg breq2d breq1d anbi12d mpbir2and 3anass sylanbrc sylibr orrd recn
    mpd ex anim12i neg11 eqcom syl6bb orbi1d mpbid ) AUAUBZBZACUCZDEZAFZWBBZWCD
    FZWDFZEZWGGWEWGGWCWJWGWCWJUDZWGWCWKHZWFIBZWHWFCUCZJKZWNDLKZUEZWGWLWMWOWPHZW
    QWLAWCAIBZWKAUFZMZUGWLWRWHWIJKZWIDLKZWCWJXBWCXBWJWCWSWHWILKZXBWJGZWTWCWSWDD
    LKZXDWTWCWSWHWDJKZXFWCWSXGXFUEAUHUIZUMWSWDNBZDNBZXFXDOAUJZPXIXJHXFXDWDDUKQU
    LRWSXDXEWSWHWIWHNBWSDPUNUOWSWDXKUPZUQQRURUSWLWIDJKZXCWCXMWKWCWSXGXMWTWCWSXG
    XFXHUTWSXJXIXGXMOPXKXJXIHXGXMDWDVAQVBRMWCXMXCOZWKWCWSXNWTWSWINBXJXNXLPWIDVC
    ULSMVNWLWOXBWPXCWLWSWOXBTXAWSWNWIWHJAVDZVESWLWSWPXCTXAWSWNWIDLXOVFSVGVHWMWO
    WPVIVJWFUHVKVOVLWCWJWEWGWCDIBZWDIBZHZWJWETWCWSXRWTWSXJXIXRPXKXJXPXIXQDVMWDV
    MVPVBSXRWJDWDEWEDWDVQDWDVRVSSVTWAUS $.

  $( Logarithm of a reciprocal changes sign.  (Contributed by Saveliy
     Skresanov, 28-Dec-2016.) $)
  logrec $p |- ( ( A e. CC /\ A =/= 0 /\ ( Im ` ( log ` A ) ) =/= _pi ) ->
                                      ( log ` A ) = -u ( log ` ( 1 / A ) ) ) $=
    ( cc wcel cc0 wne clog cfv cim cpi ce c1 cdiv co cneg wceq wa eflog syl2anc
    syl crp w3a reccl recne0 eqcomd oveq2d recrec eqtr4d logcld 3eqtr4d 3adant3
    efneg fveq2d logrncl logef wn df-ne wb lognegb biimprd ax-1cn mp3an1 eleq1d
    crn divneg2 sylibd negcl adantr negeq0 necon3bid biimpa rpreccl syl5ib syld
    wi con3d 3impia syl3an3b logreclem stoic3 syld3an3 3eqtr3d ) ABCZADEZAFGZHG
    ZIEZUAZWDJGZFGZKALMZFGZNZJGZFGZWDWLWGWHWMFWBWCWHWMOWFWBWCPZKWJLMZKWKJGZLMZW
    HWMWOWJWQKLWOWQWJWOWJBCZWJDEZWQWJOAUBZAUCZWJQRUDUEWOWHAWPAQAUFUGWOWKBCWMWRO
    WOWJXAXBUHWKUKSUIUJULWGWDFVCZCZWIWDOWBWCXDWFAUMUJWDUNSWGWLXCCZWNWLOWBWCWFWK
    HGIOZUOZXEWFWBWCWEIOZUOZXGWEIUPWBWCXIXGWOXFXHWOXFANZTCZXHWOXFKXJLMZTCZXKWOX
    FWJNZTCZXMWOXOXFWOWSWTXOXFUQXAXBWJURRUSWOXNXLTKBCWBWCXNXLOUTKAVDVAVBVEWOXJB
    CZXJDEZXMXKVNWBXPWCAVFVGWBWCXQWBADXJDAVHVIVJXMKXLLMZTCXPXQPZXKXLVKXSXRXJTXJ
    UFVBVLRVMAURVEVOVPVQWBWCWKXCCZXGXEWOWSWTXTXAXBWJUMRWKVRVSVTWLUNSWA $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Logarithms to an arbitrary base
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Define "log using an arbitrary base" function and then prove some of its
  properties.  Note that ` logb ` is generalized to an arbitrary base and
  arbitrary parameter in ` CC ` , but it doesn't accept infinities as
  arguments, unlike ` log ` .

  Metamath doesn't care what letters are used to represent classes.  Usually
  classes begin with the letter "A", but here we use "B" and "X"
  to more clearly distinguish between "base" and "other parameter of log".

  There are different ways this could be defined in Metamath.  The approach
  used here is intentionally similar to existing 2-parameter Metamath functions
  (operations): ` ( B logb X ) `  where ` B ` is the base and ` X ` is the
  argument of the logarithm function.  An alternative would be to support the
  notational form ` ( ( logb `` B ) `` X ) `; that looks a little more like
  traditional notation.  Such a function ` ( logb `` B ) ` for a fixed base can
  be obtained in Metamath (without the need for a new definition) by the curry
  function: ` ( curry logb `` B ) ` , see ~ logbmpt , ~ logbf and ~ logbfval .

$)

  $c logb $. $( Logarithm generalized to an arbitrary base. $)

  $( Extend class notation to include the logarithm generalized to an arbitrary
     base. $)
  clogb $a class logb $.

  ${
    $d x y $.
    $( Define the ` logb ` operator.  This is the logarithm generalized to an
       arbitrary base.  It can be used as ` ( B logb X ) ` for "log base B of
       X".  In the most common traditional notation, base B is a subscript of
       "log".  The definition is according to Wikipedia "Complex logarithm":
~ https://en.wikipedia.org/wiki/Complex_logarithm#Logarithms_to_other_bases
       (10-Jun-2020).  (Contributed by David A. Wheeler, 21-Jan-2017.) $)
    df-logb $a |- logb = ( x e. ( CC \ { 0 , 1 } ) , y e. ( CC \ { 0 } ) |->
                         ( ( log ` y ) / ( log ` x ) ) ) $.
  $}

  ${
    $d x y B $.  $d x y X $.
    $( Define the value of the ` logb ` function, the logarithm generalized to
       an arbitrary base, when used as infix.  Most Metamath statements select
       variables in order of their use, but to make the order clearer we use
       "B" for base and "X" for the argument of the logarithm function here.
       (Contributed by David A. Wheeler, 21-Jan-2017.)  (Revised by David A.
       Wheeler, 16-Jul-2017.) $)
    logbval $p |- ( ( B e. ( CC \ { 0 , 1 } ) /\ X e. ( CC \ { 0 } ) )
                    -> ( B logb X ) = ( ( log ` X ) / ( log ` B ) ) ) $=
      ( vx vy cc cc0 c1 cpr cdif csn cv clog cfv cdiv clogb fveq2 oveq2d oveq1d
      co wceq df-logb ovex ovmpt2 ) CDABEFGHIEFJIDKZLMZCKZLMZNSBLMZALMZNSOUEUIN
      SUFATUGUIUENUFALPQUDBTUEUHUINUDBLPRCDUAUHUINUBUC $.
  $}

  $( General logarithm closure.  (Contributed by David A. Wheeler,
     17-Jul-2017.) $)
  logbcl $p |- ( ( B e. ( CC \ { 0 , 1 } ) /\ X e. ( CC \ { 0 } ) )
                 -> ( B logb X ) e. CC ) $=
    ( cc cc0 c1 cpr cdif wcel csn wa clogb co clog cfv cdiv logbval wne eldifsn
    sylbi adantr logcl adantl eldifi eldifpr simp2bi logcld w3a logccne0 divcld
    eqeltrd ) ACDEFZGHZBCDIGHZJZABKLBMNZAMNZOLCABPUNUOUPUMUOCHZULUMBCHBDQJUQBCD
    RBUASUBULUPCHUMULAACUKUCULACHZADQZAEQZACDEUDZUEUFTULUPDQZUMULURUSUTUGVBVAAU
    HSTUIUJ $.

  $( General logarithm is 1 when base and arg match.  Property 1(a) of [Cohen4]
     p. 361.  (Contributed by Stefan O'Rear, 19-Sep-2014.)  (Revised by David
     A. Wheeler, 22-Jul-2017.) $)
  logbid1 $p |- ( ( A e. CC /\ A =/= 0 /\ A =/= 1 ) -> ( A logb A ) = 1 ) $=
    ( cc wcel cc0 wne w3a clogb clog cfv cdiv cpr cdif csn wceq eldifpr biimpri
    c1 co wa 3adant3 eldifsn logbval syl2anc logcl logccne0 dividd eqtrd ) ABCZ
    ADEZAQEZFZAAGRZAHIZUMJRZQUKABDQKLCZABDMLCZULUNNUOUKABDQOPUHUIUPUJUPUHUISABD
    UAPTAAUBUCUKUMUHUIUMBCUJAUDTAUEUFUG $.

  $( The logarithm of ` 1 ` to an arbitrary base ` B ` is 0.  Property 1(b) of
     [Cohen4] p. 361.  See ~ log1 .  (Contributed by Stefan O'Rear,
     19-Sep-2014.)  (Revised by Thierry Arnoux, 27-Sep-2017.) $)
  logb1 $p |- ( ( B e. CC /\ B =/= 0 /\ B =/= 1 ) -> ( B logb 1 ) = 0 ) $=
    ( cc wcel cc0 wne c1 w3a clogb co clog cfv cdiv cpr cdif eldifpr csn ax-1cn
    wceq ax-1ne0 eldifsn mpbir2an logbval mpan2 sylbir log1 oveq1i simp1 logcld
    simp2 logccne0 div0d syl5eq eqtrd ) ABCZADEZAFEZGZAFHIZFJKZAJKZLIZDUQABDFMN
    CZURVARZABDFOVBFBDPNCZVCVDFBCFDEQSFBDTUAAFUBUCUDUQVADUTLIDUSDUTLUEUFUQUTUQA
    UNUOUPUGUNUOUPUIUHAUJUKULUM $.

  $( The general logarithm of a number to the base being Euler's constant is
     the natural logarithm of the number.  Put another way, using ` _e ` as the
     base in ` logb ` is the same as ` log ` .  Definition in [Cohen4] p. 352.
     (Contributed by David A. Wheeler, 17-Oct-2017.)  (Revised by David A.
     Wheeler and AV, 16-Jun-2020.) $)
  elogb $p |- ( A e. ( CC \ { 0 } ) -> ( _e logb A ) = ( log ` A ) ) $=
    ( cc cc0 csn cdif wcel ceu clogb co clog cfv cdiv c1 cpr wceq wne ere recni
    ene0 ene1 eldifpr mpbir3an logbval mpan oveq2i wa eldifsn logcl sylbi div1d
    loge syl5eq eqtrd ) ABCDEFZGAHIZAJKZGJKZLIZUPGBCMNEFZUNUOUROUSGBFGCPGMPGQRS
    TGBCMUAUBGAUCUDUNURUPMLIUPUQMUPLUKUEUNUPUNABFACPUFUPBFABCUGAUHUIUJULUM $.

  $( Change of base for logarithms.  Property in [Cohen4] p. 367.  (Contributed
     by AV, 11-Jun-2020.) $)
  logbchbase $p |- ( ( ( A e. CC /\ A =/= 0 /\ A =/= 1 )
                  /\ ( B e. CC /\ B =/= 0 /\ B =/= 1 ) /\ X e. ( CC \ { 0 } ) )
                     -> ( A logb X ) = ( ( B logb X ) / ( B logb A ) ) ) $=
    ( cc wcel cc0 wne c1 w3a cdif clog cdiv co clogb wceq logcl 3adant3 logbval
    cfv wa csn eldifsn sylbi 3ad2ant3 logccne0 jca 3ad2ant1 divcan7 syl3anc cpr
    3ad2ant2 eldifpr sylanbr 3adant1 biimpri syl2anr oveq12d 3adant2 3eqtr4rd )
    ADEZAFGZAHGZIZBDEZBFGZBHGZIZCDFUAJZEZIZCKSZBKSZLMZAKSZVLLMZLMZVKVNLMZBCNMZB
    ANMZLMACNMZVJVKDEZVNDEZVNFGZTZVLDEZVLFGZTZVPVQOVIVCWAVGVICDECFGTWACDFUBCPUC
    UDVCVGWDVIVCWBWCUTVAWBVBAPQAUEUFUGVGVCWGVIVGWEWFVDVEWEVFBPQBUEUFUKVKVNVLUHU
    IVJVRVMVSVOLVGVIVRVMOZVCVGBDFHUJJZEZVIWHBDFHULZBCRUMUNVCVGVSVOOZVIVGWJAVHEZ
    WLVCWJVGWKUOUTVAWMVBWMUTVATADFUBUOQBARUPQUQVCVIVTVQOZVGVCAWIEVIWNADFHULACRU
    MURUS $.

  $( Value of the general logarithm with integer base.  (Contributed by Thierry
     Arnoux, 27-Sep-2017.) $)
  relogbval $p |- ( ( B e. ( ZZ>= ` 2 ) /\ X e. RR+ )
        -> ( B logb X ) = ( ( log ` X ) / ( log ` B ) ) ) $=
    ( c2 cuz cfv wcel crp wa cc cc0 c1 cpr cdif csn clogb co clog cdiv wceq wne
    w3a zgt1rpn0n1 adantr simp1d rpcnd simp2d simp3d eldifpr syl3anbrc rpcnne0d
    simpr eldifsn sylibr logbval syl2anc ) ACDEFZBGFZHZAIJKLMFZBIJNMFZABOPBQEAQ
    ERPSURAIFAJTZAKTZUSURAURAGFZVAVBUPVCVAVBUAUQAUBUCZUDUEURVCVAVBVDUFURVCVAVBV
    DUGAIJKUHUIURBIFBJTHUTURBUPUQUKUJBIJULUMABUNUO $.

  $( Closure of the general logarithm with a positive real base on positive
     reals.  (Contributed by Stefan O'Rear, 19-Sep-2014.)  (Revised by Thierry
     Arnoux, 27-Sep-2017.) $)
  relogbcl $p |- ( ( B e. RR+ /\ X e. RR+ /\ B =/= 1 )
              -> ( B logb X ) e. RR ) $=
    ( crp wcel c1 wne w3a clogb co clog cfv cdiv cr cc cc0 cdif rpcnne0d sylibr
    wa relogcl cpr csn wceq simp1 simp3 df-3an sylanbrc eldifpr eldifsn logbval
    simp2 syl2anc 3ad2ant2 3ad2ant1 logne0 3adant2 redivcld eqeltrd ) ACDZBCDZA
    EFZGZABHIZBJKZAJKZLIZMVBANOEUAPDZBNOUBPDZVCVFUCVBANDZAOFZVAGZVGVBVIVJSVAVKV
    BAUSUTVAUDQUSUTVAUEVIVJVAUFUGANOEUHRVBBNDBOFSVHVBBUSUTVAUKQBNOUIRABUJULVBVD
    VEUTUSVDMDVABTUMUSUTVEMDVAATUNUSVAVEOFUTAUOUPUQUR $.

  $( Closure of the general logarithm with integer base on positive reals.
     (Contributed by Thierry Arnoux, 27-Sep-2017.)  (Proof shortened by AV,
     9-Jun-2020.) $)
  relogbzcl $p |- ( ( B e. ( ZZ>= ` 2 ) /\ X e. RR+ )
                    -> ( B logb X ) e. RR ) $=
    ( c2 cuz cfv wcel crp clogb co cr cc0 wne c1 w3a zgt1rpn0n1 relogbcl 3com23
    wi 3expia 3adant2 syl imp ) ACDEFZBGFZABHIJFZUCAGFZAKLZAMLZNUDUERZAOUFUHUIU
    GUFUHUDUEUFUDUHUEABPQSTUAUB $.

  $( Power law for the general logarithm for real powers:  The logarithm of a
     positive real number to the power of a real number is equal to the product
     of the exponent and the logarithm of the base of the power.  Property 4 of
     [Cohen4] p. 361.  (Contributed by AV, 9-Jun-2020.) $)
  relogbreexp $p |- ( ( B e. ( CC \ { 0 , 1 } ) /\ C e. RR+ /\ E e. RR )
                      -> ( B logb ( C ^c E ) ) = ( E x. ( B logb C ) ) ) $=
    ( cc cc0 c1 cdif wcel w3a co clog cfv cdiv cmul clogb 3adant1 wne wa logcld
    wceq cpr crp cr ccxp logcxp oveq1d recn 3ad2ant3 rpcn rpne0 3ad2ant2 eldifi
    eldifpr simp2bi logccne0 sylbi jca 3ad2ant1 divass syl3anc eqtrd csn adantr
    simp1 adantl cxpcld cxpne0d eldifsn sylanbrc logbval syl2anc anim2i 3adant3
    rpcndif0 syl oveq2d 3eqtr4d ) ADEFUAZGHZBUBHZCUCHZIZBCUDJZKLZAKLZMJZCBKLZWE
    MJZNJZAWCOJZCABOJZNJWBWFCWGNJZWEMJZWIWBWDWLWEMVTWAWDWLTVSBCUEPUFWBCDHZWGDHZ
    WEDHZWEEQZRZWMWITWAVSWNVTCUGZUHVTVSWOWAVTBBUIZBUJZSUKVSVTWRWAVSWPWQVSAADVRU
    LVSADHZAEQZAFQZADEFUMZUNSVSXBXCXDIWQXEAUOUPUQURCWGWEUSUTVAWBVSWCDEVBGZHZWJW
    FTVSVTWAVDVTWAXGVSVTWARZWCDHWCEQXGXHBCVTBDHWAWTVCZWAWNVTWSVEZVFXHBCXIVTBEQW
    AXAVCXJVGWCDEVHVIPAWCVJVKWBWKWHCNWBVSBXFHZRZWKWHTVSVTXLWAVTXKVSBVNVLVMABVJV
    OVPVQ $.

  $( Power law for the general logarithm for integer powers:  The logarithm of
     a positive real number to the power of an integer is equal to the product
     of the exponent and the logarithm of the base of the power.  (Contributed
     by Stefan O'Rear, 19-Sep-2014.)  (Revised by AV, 9-Jun-2020.) $)
  relogbzexp $p |- ( ( B e. ( CC \ { 0 , 1 } ) /\ C e. RR+ /\ N e. ZZ )
                     -> ( B logb ( C ^ N ) ) = ( N x. ( B logb C ) ) ) $=
    ( cc cc0 c1 cpr cdif wcel crp cz w3a cexp co clogb ccxp cmul wceq wa adantr
    rpcn wne rpne0 simpr cxpexpzd 3adant1 eqcomd oveq2d zre relogbreexp syl3an3
    cr eqtrd ) ADEFGHIZBJIZCKIZLZABCMNZONABCPNZONZCABONQNZUQURUSAOUQUSURUOUPUSU
    RRUNUOUPSBCUOBDIUPBUATUOBEUBUPBUCTUOUPUDUEUFUGUHUPUNUOCULIUTVARCUIABCUJUKUM
    $.

  $( The logarithm of the product of two positive real numbers is the sum of
     logarithms.  Property 2 of [Cohen4] p. 361.  (Contributed by Stefan
     O'Rear, 19-Sep-2014.)  (Revised by AV, 29-May-2020.) $)
  relogbmul $p |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A e. RR+ /\ C e. RR+ ) )
                -> ( B logb ( A x. C ) ) = ( ( B logb A ) + ( B logb C ) ) ) $=
    ( cc cc0 c1 wcel wa co clog cfv cdiv caddc clogb wceq adantl adantr logbval
    wne sylan2 cpr cdif crp cmul relogmul oveq1d relogcl recnd w3a 3simpa sylbi
    eldifpr logcl syl logccne0 jca divdir syl3anc eqtrd rpcn mulcl syl2an rpne0
    csn mulne0d eldifsn sylanbrc rpcndif0 oveq12d 3eqtr4d ) BDEFUAUBGZAUCGZCUCG
    ZHZHZACUDIZJKZBJKZLIZAJKZVRLIZCJKZVRLIZMIZBVPNIZBANIZBCNIZMIVOVSVTWBMIZVRLI
    ZWDVOVQWHVRLVNVQWHOVKACUEPUFVOVTDGZWBDGZVRDGZVRESZHZWIWDOVNWJVKVLWJVMVLVTAU
    GUHQPVNWKVKVMWKVLVMWBCUGUHPPVKWNVNVKWLWMVKBDGZBESZHZWLVKWOWPBFSZUIZWQBDEFUL
    ZWOWPWRUJUKBUMUNVKWSWMWTBUOUKUPQVTWBVRUQURUSVNVKVPDEVDUBZGZWEVSOVNVPDGZVPES
    XBVLADGZCDGZXCVMAUTZCUTZACVAVBVNACVLXDVMXFQVMXEVLXGPVLAESVMAVCQVMCESVLCVCPV
    EVPDEVFVGBVPRTVOWFWAWGWCMVNVKAXAGZWFWAOVLXHVMAVHQBARTVNVKCXAGZWGWCOVMXIVLCV
    HPBCRTVIVJ $.

  $( The logarithm of the product of a positive real and a positive real number
     to the power of a real number is the sum of the logarithm of the first
     real number and the scaled logarithm of the second real number.
     (Contributed by AV, 29-May-2020.) $)
  relogbmulexp $p |- ( ( B e. ( CC \ { 0 , 1 } )
                      /\ ( A e. RR+ /\ C e. RR+ /\ E e. RR ) )
                    -> ( B logb ( A x. ( C ^c E ) ) )
                       = ( ( B logb A ) + ( E x. ( B logb C ) ) ) ) $=
    ( cc cc0 c1 cpr cdif wcel crp cr w3a wa ccxp co cmul clogb caddc wceq simp1
    rpcxpcl 3adant1 jca relogbmul sylan2 relogbreexp 3adant3r1 oveq2d eqtrd ) B
    EFGHIJZAKJZCKJZDLJZMZNZBACDOPZQPRPZBARPZBUQRPZSPZUSDBCRPQPZSPUOUKULUQKJZNUR
    VATUOULVCULUMUNUAUMUNVCULCDUBUCUDABUQUEUFUPUTVBUSSUKUMUNUTVBTULBCDUGUHUIUJ
    $.

  $( The logarithm of the quotient of two positive real numbers is the
     difference of logarithms.  Property 3 of [Cohen4] p. 361.  (Contributed by
     AV, 29-May-2020.) $)
  relogbdiv $p |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A e. RR+ /\ C e. RR+ ) )
                 -> ( B logb ( A / C ) ) = ( ( B logb A ) - ( B logb C ) ) ) $=
    ( cc cc0 c1 cdif wcel crp wa cneg ccxp co cmul clogb caddc cdiv wceq adantl
    oveq2d cpr cmin cr neg1rr relogbmulexp mp3anr3 rpcn adantr wne divrecd 1cnd
    rpne0 cxpnegd cxp1d eqtrd eqtr4d csn logbcl sylan2 mulm1 syl negsubd eqtr2d
    rpcndif0 3eqtr4d ) BDEFUAGHZAIHZCIHZJZJZBACFKZLMZNMZOMZBAOMZVKBCOMZNMZPMZBA
    CQMZOMVOVPUBMZVFVGVHVKUCHVNVRRUDABCVKUEUFVJVSVMBOVIVSVMRVFVIVSAFCQMZNMVMVIA
    CVGADHVHAUGUHVHCDHVGCUGZSVHCEUIVGCULZSUJVIVLWAANVHVLWARVGVHVLFCFLMZQMWAVHCF
    WBWCVHUKUMVHWDCFQVHCWBUNTUOSTUPSTVJVRVOVPKZPMZVTVJVPDHZVRWFRVIVFCDEUQGZHZWG
    VHWIVGCVDSBCURUSZWGVQWEVOPVPUTTVAVJVOVPVIVFAWHHZVODHVGWKVHAVDUHBAURUSWJVBVC
    VE $.

  $( Identity law for general logarithm: the logarithm of a power to the base
     is the exponent.  Property 6 of [Cohen4] p. 361.  (Contributed by Stefan
     O'Rear, 19-Sep-2014.)  (Revised by AV, 9-Jun-2020.) $)
  relogbexp $p |- ( ( B e. RR+ /\ B =/= 1 /\ M e. ZZ )
                    -> ( B logb ( B ^ M ) ) = M ) $=
    ( crp wcel c1 wne cz w3a cexp co clogb cmul cc cc0 cpr cdif wceq wa 3adant3
    adantr rpcn rpne0 simpr 3jca eldifpr simp1 simp3 relogbzexp syl3anc logbid1
    sylibr syl oveq2d zcn 3ad2ant3 mulid1d 3eqtrd ) ACDZAEFZBGDZHZAABIJKJZBAAKJ
    ZLJZBELJBVAAMNEOPDZURUTVBVDQURUSVEUTURUSRZAMDZANFZUSHZVEVFVGVHUSURVGUSAUATU
    RVHUSAUBTURUSUCUDZAMNEUEUKSURUSUTUFURUSUTUGAABUHUIVAVCEBLVAVIVCEQURUSVIUTVJ
    SAUJULUMVABUTURBMDUSBUNUOUPUQ $.

  $( Identity law for general logarithm with integer base.  (Contributed by
     Stefan O'Rear, 19-Sep-2014.)  (Revised by Thierry Arnoux, 27-Sep-2017.) $)
  nnlogbexp $p |- ( ( B e. ( ZZ>= ` 2 ) /\ M e. ZZ ) ->
    ( B logb ( B ^ M ) ) = M ) $=
    ( cfv wcel wa cexp co clogb wceq cc0 c1 cc wne adantr oveq2d clog cdiv cdif
    simpr syl2anc c2 cuz cz crp w3a zgt1rpn0n1 simp1d rpcnd simp2d simp3d logb1
    syl3anc exp0d eqtrd 3eqtr4d cmul cpr csn eldifpr syl3anbrc rpexpcld eldifsn
    rpcnne0d sylibr logbval ccxp cr logcxpd cxpexpzd fveq2d eqtr3d oveq1d recnd
    zred logcld logne0 divcan4d 3eqtr2d pm2.61dane ) AUAUBCDZBUCDZEZAABFGZHGZBI
    BJWBBJIZEZAKHGZJWDBWFALDZAJMZAKMZWGJIWBWHWEWBAWBAUDDZWIWJVTWKWIWJUEWAAUFNZU
    GZUHZNZWBWIWEWBWKWIWJWLUIZNWBWJWEWBWKWIWJWLUJZNAUKULWFWCKAHWFWCAJFGKWFBJAFW
    BWESZOWFAWOUMUNOWRUOWBBJMZEZWDWCPCZAPCZQGZBXBUPGZXBQGBWTALJKUQRDZWCLJURRDZW
    DXCIWTWHWIWJXEWBWHWSWNNZWBWIWSWPNZWBWJWSWQNZALJKUSUTWTWCLDWCJMEXFWTWCWTABWB
    WKWSWMNZWBWAWSVTWASZNZVAVCWCLJVBVDAWCVETWTXDXAXBQWTABVFGZPCXDXAWTABXJWBBVGD
    WSWBBXKVNNZVHWTXMWCPWTABXGXHXLVIVJVKVLWTBXBWTBXNVMWTAXGXHVOWTWKWJXBJMXJXIAV
    PTVQVRVS $.

  $( Logarithm of a reciprocal changes sign.  See ~ logrec .  Particular case
     of Property 3 of [Cohen4] p. 361.  (Contributed by Thierry Arnoux,
     27-Sep-2017.) $)
  logbrec $p |- ( ( B e. ( ZZ>= ` 2 ) /\ A e. RR+ ) ->
    ( B logb ( 1 / A ) ) = -u ( B logb A ) ) $=
    ( c2 cfv wcel crp c1 cdiv co clog cneg wceq relogbval logcld cc0 wne adantr
    clogb relogcld cpi cuz simpr rpreccld syldan negeqd rpcnd rpne0d zgt1rpn0n1
    wa simp1d recnd simp3d logne0 syl2anc divnegd reccld recne0d cim reim0d 0re
    cc pipos gtneii necomd eqnetrd logrec eqcomd negcon1ad oveq1d 3eqtrd eqtr4d
    a1i syl3anc ) BCUADEZAFEZUIZBGAHIZRIZVQJDZBJDZHIZBARIZKZVNVOVQFEVRWALVPAVNV
    OUBZUCBVQMUDVPWCAJDZVTHIZKWEKZVTHIWAVPWBWFBAMUEVPWEVTVPAVPAWDUFZVPAWDUGZNVP
    VTVPBVNBFEZVOVNWJBOPZBGPZBUHZUJQZSUKVPWJWLVTOPWNVNWLVOVNWJWKWLWMULQBUMUNUOV
    PWGVSVTHVPVSWEVPVQVPAWHWIUPVPAWHWIUQNVPWEVSKZVPAVAEAOPWEURDZTPWEWOLWHWIVPWP
    OTVPWEVPAWDSUSVPTOTOPVPOTUTVBVCVLVDVEAVFVMVGVHVIVJVK $.

  $( The general logarithm function is monotone/increasing.  See ~ logleb .
     (Contributed by Stefan O'Rear, 19-Oct-2014.)  (Revised by AV,
     31-May-2020.) $)
  logbleb $p |- ( ( B e. ( ZZ>= ` 2 ) /\ X e. RR+ /\ Y e. RR+ )
                  -> ( X <_ Y <-> ( B logb X ) <_ ( B logb Y ) ) ) $=
    ( c2 cuz cfv wcel crp w3a clog cle wbr cdiv co clogb simp2 relogcld c1 wceq
    relogbval simp3 cr eluzelre 3ad2ant1 cz caddc clt 1z simp1 fveq2i syl6eleqr
    eluzp1l sylancr rplogcld lediv1d wb 3adant1 3adant3 3adant2 breq12d 3bitr4d
    1p1e2 logleb ) ADEFZGZBHGZCHGZIZBJFZCJFZKLZVIAJFZMNZVJVLMNZKLBCKLZABONZACON
    ZKLVHVIVJVLVHBVEVFVGPQVHCVEVFVGUAQVHAVEVFAUBGVGDAUCUDVHRUEGARRUFNZEFZGRAUGL
    UHVHAVDVSVEVFVGUIVRDEVBUJUKRAULUMUNUOVFVGVOVKUPVEBCVCUQVHVPVMVQVNKVEVFVPVMS
    VGABTURVEVGVQVNSVFACTUSUTVA $.

  $( The general logarithm function is strictly monotone/increasing.  Property
     2 of [Cohen4] p. 377.  See ~ logltb .  (Contributed by Stefan O'Rear,
     19-Oct-2014.)  (Revised by Thierry Arnoux, 27-Sep-2017.) $)
  logblt $p |- ( ( B e. ( ZZ>= ` 2 ) /\ X e. RR+ /\ Y e. RR+ ) ->
    ( X < Y <-> ( B logb X ) < ( B logb Y ) ) ) $=
    ( c2 cuz cfv wcel crp w3a clog clt cdiv co clogb relogcld cz wceq relogbval
    wbr c1 simp2 simp3 simp1 eluzelz syl zred caddc 1z fveq2i syl6eleqr eluzp1l
    sylancr rplogcld ltdiv1d wb logltb 3adant1 3adant3 3adant2 breq12d 3bitr4d
    1p1e2 ) ADEFZGZBHGZCHGZIZBJFZCJFZKSZVHAJFZLMZVIVKLMZKSBCKSZABNMZACNMZKSVGVH
    VIVKVGBVDVEVFUAOVGCVDVEVFUBOVGAVGAVGVDAPGVDVEVFUCZDAUDUEUFVGTPGATTUGMZEFZGT
    AKSUHVGAVCVSVQVRDEVBUIUJTAUKULUMUNVEVFVNVJUOVDBCUPUQVGVOVLVPVMKVDVEVOVLQVFA
    BRURVDVFVPVMQVEACRUSUTVA $.

  $( Identity law for the general logarithm for real numbers.  (Contributed by
     AV, 22-May-2020.) $)
  relogbcxp $p |- ( ( B e. ( RR+ \ { 1 } ) /\ X e. RR )
                    -> ( B logb ( B ^c X ) ) = X ) $=
    ( crp c1 csn cdif wcel wa co clog cfv cdiv cc cc0 wceq eldifsn adantr sylbi
    wne syl ccxp clogb cmul cpr rpcn rpne0 simpr eldifpr syl3anbrc eldifi cxpcl
    cr syl2an adantl cxpne0d sylanbrc logbval syl2anc logcxp sylan oveq1d eldif
    recn wn rpcnne0 logcl logne0 divcan4d 3eqtrd ) ACDEZFGZBULGZHZAABUAIZUBIZVN
    JKZAJKZLIZBVQUCIZVQLIBVMAMNDUDFGZVNMNEFGZVOVROVKVTVLVKACGZADSZHZVTACDPZWDAM
    GZANSZWCVTWBWFWCAUEZQWBWGWCAUFQZWBWCUGAMNDUHUIRQVMVNMGZVNNSWAVKWFBMGZWJVLVK
    WBWFACVJUJZWHTZBVCZABUKUMVMABVKWFVLWMQVKWGVLVKWDWGWEWIRQVLWKVKWNUNZUOVNMNPU
    PAVNUQURVMVPVSVQLVKWBVLVPVSOWLABUSUTVAVMBVQWOVKVQMGZVLVKWFWGHZWPVKWBAVJGVDZ
    HWQACVJVBWBWQWRAVEQRAVFTQVKVQNSZVLVKWDWSWEAVGRQVHVI $.

  $( Identity law for the general logarithm.  (Contributed by AV,
     22-May-2020.) $)
  cxplogb $p |- ( ( B e. ( CC \ { 0 , 1 } ) /\ X e. ( CC \ { 0 } ) )
                 -> ( B ^c ( B logb X ) ) = X ) $=
    ( cc cc0 c1 cdif wcel wa co ccxp clog cfv ce adantr wne wn adantl sylbi syl
    wceq cpr csn clogb cdiv cmul logbval oveq2d eldifi eldif prid1 eleq1 mpbiri
    c0ex necon3bi snid anim2i w3a eldifpr biimpi logccne0 divcld cxpefd eldifsn
    logcl divcan1d fveq2d eflog eqtrd 3eqtrd ) ACDEUAZFGZBCDUBZFGZHZAABUCIZJIAB
    KLZAKLZUDIZJIVRVQUEIZMLZBVNVOVRAJABUFUGVNAVRVKACGZVMACVJUHNVKADOZVMVKWAAVJG
    ZPZHZWBACVJUIZWDWBWAWCADADTWCDVJGDEUMUJADVJUKULUNZQRNVNVPVQVMVPCGZVKVMBCGZB
    DOZHZWHVMWIBVLGZPZHWKBCVLUIWMWJWIWLBDBDTWLDVLGDUMUOBDVLUKULUNUPRBVDZSQVKVQC
    GZVMVKWAWBHZWOVKWEWPWFWDWBWAWGUPRAVDSNZVNWAWBAEOUQZVQDOZVKWRVMVKWRACDEURZUS
    NAUTZSVAVBVNVTVPMLZBVNVSVPMVNVPVQVMWHVKVMWKWHBCDVCZWNRQWQVKWSVMVKWRWSWTXARN
    VEVFVMXBBTZVKVMWKXDXCBVGRQVHVI $.

  $( The logarithm is the inverse of the exponentiation.  Observation in
     [Cohen4] p. 348.  (Contributed by AV, 11-Jun-2020.) $)
  relogbcxpb $p |- ( ( ( B e. RR+ /\ B =/= 1 ) /\ X e. RR+ /\ Y e. RR )
                     -> ( ( B logb X ) = Y <-> ( B ^c Y ) = X ) ) $=
    ( crp wcel c1 wne wa clogb co wceq ccxp oveq2 eqcoms cc cc0 cdif csn adantr
    syl w3a rpcn rpne0 simpr eldifpr syl3anbrc rpcndif0 anim12i 3adant3 cxplogb
    cr cpr sylan9eqr eldifsn biimpri anim1i 3adant2 relogbcxp impbida ) ADEZAFG
    ZHZBDEZCUKEZUAZABIJZCKZACLJZBKZVGVEVHAVFLJZBVHVJKCVFCVFALMNVEAOPFULQEZBOPRQ
    EZHZVJBKVBVCVMVDVBVKVCVLVBAOEZAPGZVAVKUTVNVAAUBSUTVOVAAUCSUTVAUDAOPFUEUFBUG
    UHUIABUJTUMVIVEVFAVHIJZCVFVPKBVHBVHAIMNVEADFRQEZVDHZVPCKVBVDVRVCVBVQVDVQVBA
    DFUNUOUPUQACURTUMUS $.

  ${
    $d B x y $.
    $( The general logarithm to a fixed base regarded as mapping.  (Contributed
       by AV, 11-Jun-2020.) $)
    logbmpt $p |- ( ( B e. CC /\ B =/= 0 /\ B =/= 1 )
             -> ( curry logb ` B ) = ( y e. ( CC \ { 0 } )
                                       |-> ( ( log ` y ) / ( log ` B ) ) ) ) $=
      ( vx cc wcel cc0 wne c1 clogb cfv cdif cv clog cdiv csb cmpt cvv wceq a1i
      co w3a ccur csn df-logb wa ovexd ralrimivva c0 wn ax-1cn ax-1ne0 wb elsng
      cpr ax-mp nemtbir eldif mpbir2an ne0ii cnex eldifpr biimpri mpt2curryvald
      difexg csbov2g csbfv oveq2d eqtrd 3ad2ant1 mpteq2dv ) BDEZBFGZBHGZUAZBIUB
      JADFUCZKZCBALZMJZCLZMJZNTZOZPAVPVRBMJZNTZPVNCABWAIQQDFHUNKZVPCAUDVNWAQECA
      WEVPVNVSWEEVQVPEUEUEVRVTNUFUGVPUHGVNHVPHVPEHDEZHVOEZUIUJWGHFUKWFWGHFRULUJ
      HFDUMUOUPHDVOUQURUSSVPQEZVNDQEWHUTDVOQVDUOSBWEEVNBDFHVAVBVCVNAVPWBWDVKVLW
      BWDRVMVKWBVRCBVTOZNTWDCBVRVTNDVEVKWIWCVRNWIWCRVKCBMVFSVGVHVIVJVH $.

    $( The general logarithm to a fixed base regarded as function.
       (Contributed by AV, 11-Jun-2020.) $)
    logbf $p |- ( ( B e. CC /\ B =/= 0 /\ B =/= 1 )
                  -> ( curry logb ` B ) : ( CC \ { 0 } ) --> CC ) $=
      ( vy cc wcel cc0 wne c1 w3a csn cdif clogb ccur cfv wf cv clog cdiv logcl
      wa adantr co cmpt eldifsn sylbi adantl 3adant3 logccne0 divcld eqid fmptd
      logbmpt feq1d mpbird ) ACDZAEFZAGFZHZCEIJZCAKLMZNURCBURBOZPMZAPMZQUAZUBZN
      UQBURVCCVDUQUTURDZSVAVBVEVACDZUQVEUTCDUTEFSVFUTCEUCUTRUDUEUQVBCDZVEUNUOVG
      UPARUFTUQVBEFVEAUGTUHVDUIUJUQURCUSVDBAUKULUM $.

    $d X x y $.
    $( The general logarithm of a complex number to a fixed base.  (Contributed
       by AV, 11-Jun-2020.) $)
    logbfval $p |- ( ( ( B e. CC /\ B =/= 0 /\ B =/= 1 )
                       /\ X e. ( CC \ { 0 } ) )
                     -> ( ( curry logb ` B ) ` X ) = ( B logb X ) ) $=
      ( vx vy cc wcel cc0 wne c1 w3a csn cdif wa cv clog cfv cdiv co clogb cvv
      cpr df-logb ovexd ralrimivva cnex difexg mp1i eldifpr adantr fvmpt2curryd
      biimpri simpr ) AEFAGHAIHJZBEGKZLZFZMZCDABDNZOPZCNZOPZQRZSTTEGIUALZUOCDUB
      UQVBTFCDVCUOUQUTVCFURUOFMMUSVAQUCUDETFUOTFUQUEEUNTUFUGUMAVCFZUPVDUMAEGIUH
      UKUIUMUPULUJ $.

    $( The general logarithm to a real base greater than 1 regarded as function
       restricted to the positive integers.  Property in [Cohen4] p. 349.
       (Contributed by AV, 12-Jun-2020.) $)
    relogbf $p |- ( ( B e. RR+ /\ 1 < B )
                  -> ( ( curry logb ` B ) |` RR+ ) : RR+ --> RR ) $=
      ( vx crp wcel c1 clt wbr wa cr clogb cfv wf cdm wral cc0 wceq clog adantr
      cc syl ccur cres cv csn cdif rpcndif0 adantl cdiv cmpt wne w3a rpcn rpne0
      co wo simpr olcd wb rpre 1red lttri2 syl2an mpbird 3jca logbmpt dmeqd cvv
      ovexd ralrimiva dmmptg eleqtrrd logbfval simpll relogbcl eqeltrd jca wfun
      eqtrd logbf ffun ffvresb 3syl ) ACDZEAFGZHZCIAJUAKZCUBLZBUCZWFMZDZWHWFKZI
      DZHZBCNZWEWMBCWEWHCDZHZWJWLWPWHSOUDUEZWIWOWHWQDZWEWHUFZUGWEWIWQPWOWEWIBWQ
      WHQKZAQKZUHUNZUIZMZWQWEWFXCWEASDZAOUJZAEUJZUKZWFXCPWEXEXFXGWCXEWDAULRWCXF
      WDAUMRWEXGAEFGZWDUOZWEWDXIWCWDUPUQWCAIDEIDXGXJURWDAUSWDUTAEVAVBVCZVDZBAVE
      TVFWEXBVGDZBWQNXDWQPWEXMBWQWEWRHWTXAUHVHVIBWQXBVGVJTVRRVKWPWKAWHJUNZIWEXH
      WRWKXNPWOXLWSAWHVLVBWPWCWOXGUKXNIDWPWCWOXGWCWDWOVMWEWOUPWEXGWOXKRVDAWHVNT
      VOVPVIWEWQSWFLZWFVQWGWNURWEXHXOXLAVSTWQSWFVTBCIWFWAWBVC $.

    $( The general logarithm to the base being Euler's constant regarded as
       function is the natural logarithm.  (Contributed by AV, 12-Jun-2020.) $)
    logblog $p |- ( curry logb ` _e ) = log $=
      ( vy cc cc0 clog cfv ceu cdiv co cmpt wcel c1 wne wa ere ax-mp c2 clt wbr
      wceq cr csn cdif cv clogb ccur a1i oveq2d eldifsn logcl sylbi div1d eqtrd
      loge mpteq2ia recni crp epr rpne0 c3 egt2lt3 wo w3a 1re 3pm3.2i 1lt2 lttr
      wi 2re expd mp2 olcd wb pm3.2i lttri2 mpbird adantr logbmpt mp3an wfn crn
      mp1i wf1o logf1o f1ofn dffn5 mpbi 3eqtr4i ) ABCUAUBZAUCZDEZFDEZGHZIZAWHWJ
      IZFUDUEEZDAWHWLWJWIWHJZWLWJKGHWJWPWKKWJGWKKSWPUMUFUGWPWJWPWIBJWICLMWJBJWI
      BCUHWIUIUJUKULUNFBJFCLZFKLZWOWMSFNUOFUPJWQUQFUROPFQRZFUSQRZMWRUTWSWRWTWSW
      RFKQRZKFQRZVAZWSXBXAKTJZPTJZFTJZVBZKPQRZWSXBVGXDXEXFVCVHNVDVEXGXHWSXBKPFV
      FVIVJVKXFXDMWRXCVLWSXFXDNVCVMFKVNWAVOVPOAFVQVRDWHVSZDWNSWHDVTZDWBXIWCWHXJ
      DWDOAWHDWEWFWG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Theorems of Pythagoras, isosceles triangles, and intersecting chords
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    ang.1 $e |- F = ( x e. ( CC \ { 0 } ) , y e. ( CC \ { 0 } ) |->
      ( Im ` ( log ` ( y / x ) ) ) ) $.
    $( Define the angle function, which takes two complex numbers, treated as
       vectors from the origin, and returns the angle between them, in the
       range ` ( - _pi , _pi ] ` .  To convert from the geometry notation,
       ` m A B C ` , the measure of the angle with legs ` A B ` , ` C B ` where
       ` C ` is more counterclockwise for positive angles, is represented by
       ` ( ( C - B ) F ( A - B ) ) ` .  (Contributed by Mario Carneiro,
       23-Sep-2014.) $)
    angval $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) ) ->
      ( A F B ) = ( Im ` ( log ` ( B / A ) ) ) ) $=
      ( cc wcel cc0 wne wa co cdiv clog cfv cim wceq eldifsn cv fveq2d csn cdif
      oveq12 ancoms fvex ovmpt2a syl2anbr ) CGHCIJKCGIUAUBZHDUHHCDELDCMLZNOZPOZ
      QDGHDIJKCGIRDGIRABCDUHUHBSZASZMLZNOZPOUKEUMCQZULDQZKZUOUJPURUNUINUQUPUNUI
      QULDUMCMUCUDTTFUJPUEUFUG $.

    $( Cancel a constant multiplier in the angle function.  (Contributed by
       Mario Carneiro, 23-Sep-2014.) $)
    angcan $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) /\
      ( C e. CC /\ C =/= 0 ) ) ->
      ( ( C x. A ) F ( C x. B ) ) = ( A F B ) ) $=
      ( cc wcel cc0 wne wa cmul co cdiv clog cfv cim fveq2d wceq simp2l mulne0d
      simp1l simp3l simp1r simp3r divcan5d mulcld simp2r angval 3adant3 3eqtr4d
      w3a syl22anc ) CHIZCJKZLZDHIZDJKZLZEHIZEJKZLZUMZEDMNZECMNZONZPQZRQZDCONZP
      QZRQZVFVEFNZCDFNZVDVHVKRVDVGVJPVDDCEUQURUSVCUAZUOUPUTVCUCZUQUTVAVBUDZUOUP
      UTVCUEZUQUTVAVBUFZUGSSVDVFHIVFJKVEHIVEJKVMVITVDECVQVPUHVDECVQVPVSVRUBVDED
      VQVOUHVDEDVQVOVSUQURUSVCUIUBABVFVEFGUJUNUQUTVNVLTVCABCDFGUJUKUL $.

    $( Cancel a negative sign in the angle function.  (Contributed by Mario
       Carneiro, 23-Sep-2014.) $)
    angneg $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) ) ->
      ( -u A F -u B ) = ( A F B ) ) $=
      ( cc wcel cc0 wne wa c1 cneg cmul co wceq mulm1 ad2antrr ad2antrl oveq12d
      neg1cn neg1ne0 pm3.2i angcan mp3an3 eqtr3d ) CGHZCIJZKZDGHZDIJZKZKZLMZCNO
      ZUNDNOZEOZCMZDMZEOCDEOZUMUOURUPUSEUGUOURPUHULCQRUJUPUSPUIUKDQSTUIULUNGHZU
      NIJZKUQUTPVAVBUAUBUCABCDUNEFUDUEUF $.

    ${
      $d x y X $.  $d x y Y $.
      angvald.1 $e |- ( ph -> X e. CC ) $.
      angvald.2 $e |- ( ph -> X =/= 0 ) $.
      angvald.3 $e |- ( ph -> Y e. CC ) $.
      angvald.4 $e |- ( ph -> Y =/= 0 ) $.
      $( The (signed) angle between two vectors is the argument of their
         quotient.  Deduction form of ~ angval .  (Contributed by David Moews,
         28-Feb-2017.) $)
      angvald $p |- ( ph -> ( X F Y ) = ( Im ` ( log ` ( Y / X ) ) ) ) $=
        ( cc wcel cc0 wne co cdiv clog cfv cim wceq angval syl22anc ) AELMENOFL
        MFNOEFDPFEQPRSTSUAHIJKBCEFDGUBUC $.
    $}

    ${
      $d x y X $.  $d x y Y $.
      angcld.1 $e |- ( ph -> X e. CC ) $.
      angcld.2 $e |- ( ph -> X =/= 0 ) $.
      angcld.3 $e |- ( ph -> Y e. CC ) $.
      angcld.4 $e |- ( ph -> Y =/= 0 ) $.
      $( The (signed) angle between two vectors is in ` ( -u _pi (,] _pi ) ` .
         Deduction form.  (Contributed by David Moews, 28-Feb-2017.) $)
      angcld $p |- ( ph -> ( X F Y ) e. ( -u _pi (,] _pi ) ) $=
        ( co cdiv clog cfv cim cpi cneg cioc angvald divne0d logimclad eqeltrd
        divcld ) AEFDLFEMLZNOPOQRQSLABCDEFGHIJKTAUEAFEJHIUDAFEJHKIUAUBUC $.
    $}

    ${
      $d x y X $.  $d x y Y $.
      angrteqvd.1 $e |- ( ph -> X e. CC ) $.
      angrteqvd.2 $e |- ( ph -> X =/= 0 ) $.
      angrteqvd.3 $e |- ( ph -> Y e. CC ) $.
      angrteqvd.4 $e |- ( ph -> Y =/= 0 ) $.
      $( Two vectors are at a right angle iff their quotient is purely
         imaginary.  (Contributed by David Moews, 28-Feb-2017.) $)
      angrteqvd $p |- ( ph -> ( ( X F Y ) e. { ( _pi / 2 ) , -u ( _pi / 2 ) }
                                              <-> ( Re ` ( Y / X ) ) = 0 ) ) $=
        ( co cpi c2 cdiv cneg wcel cfv cc0 wceq cpr clog cim cre angvald eleq1d
        ccos cioc divcld divne0d logimclad coseq0negpitopi syl cosarg0d 3bitr2d
        wb ) AEFDLZMNOLZURPUAZQFEOLZUBRUCRZUSQZVAUGRSTZUTUDRSTAUQVAUSABCDEFGHIJ
        KUEUFAVAMPMUHLQVCVBUPAUTAFEJHIUIZAFEJHKIUJZUKVAULUMAUTVDVEUNUO $.
    $}

    ${
      $d x y X $.  $d x y Y $.
      cosangneg2d.1 $e |- ( ph -> X e. CC ) $.
      cosangneg2d.2 $e |- ( ph -> X =/= 0 ) $.
      cosangneg2d.3 $e |- ( ph -> Y e. CC ) $.
      cosangneg2d.4 $e |- ( ph -> Y =/= 0 ) $.
      $( The cosine of the angle between ` X ` and ` -u Y ` is the negative of
         that between ` X ` and ` Y ` .  If A, B and C are collinear points,
         this implies that the cosines of DBA and DBC sum to zero, i.e., that
         DBA and DBC are supplementary.  (Contributed by David Moews,
         28-Feb-2017.) $)
      cosangneg2d $p |- ( ph -> ( cos ` ( X F -u Y ) ) =
                                -u ( cos ` ( X F Y ) ) ) $=
        ( cdiv co cre cfv cabs cneg ccos divcld fveq2d recld recnd divne0d clog
        abscld absne0d divnegd cim angvald cosargd negeqd negcld negne0d renegd
        eqtrd eqtr3d absnegd oveq12d 3eqtrd 3eqtr4rd ) AFELMZNOZVAPOZLMZQVBQZVC
        LMZEFDMZROZQEFQZDMZROZAVBVCAVBAVAAFEJHISZUAUBAVCAVAVLUEUBAVAVLAFEJHKIUC
        ZUFUGAVHVDAVHVAUDOUHOZROVDAVGVNRABCDEFGHIJKUITAVAVLVMUJUOUKAVKVIELMZUDO
        UHOZROVONOZVOPOZLMVFAVJVPRABCDEVIGHIAFJULZAFJKUMZUITAVOAVIEVSHISAVIEVSH
        VTIUCUJAVQVEVRVCLAVAQZNOVQVEAWAVONAFEJHIUGZTAVAVLUNUPAWAPOVRVCAWAVOPWBT
        AVAVLUQUPURUSUT $.
    $}

    ${
      $d x y X $.  $d x y Y $.  $d x y Z $.
      angrtmuld.1 $e |- ( ph -> X e. CC ) $.
      angrtmuld.2 $e |- ( ph -> Y e. CC ) $.
      angrtmuld.3 $e |- ( ph -> Z e. CC ) $.
      angrtmuld.4 $e |- ( ph -> X =/= 0 ) $.
      angrtmuld.5 $e |- ( ph -> Y =/= 0 ) $.
      angrtmuld.6 $e |- ( ph -> Z =/= 0 ) $.
      angrtmuld.7 $e |- ( ph -> ( Z / Y ) e. RR ) $.
      $( Perpendicularity of two vectors does not change under rescaling the
         second.  (Contributed by David Moews, 28-Feb-2017.) $)
      angrtmuld $p |- ( ph -> ( ( X F Y ) e. { ( _pi / 2 ) , -u ( _pi / 2 ) }
                       <-> ( X F Z ) e. { ( _pi / 2 ) , -u ( _pi / 2 ) } ) ) $=
        ( cdiv co cre cc0 wceq cfv wo cpi c2 cneg cpr wcel wn wb divne0d neneqd
        biorf angrteqvd cmul dmdcan2d fveq2d divcld remul2d eqtr3d eqeq1d recld
        syl recnd mul0ord 3bitrd 3bitr4d ) AFEPQZRUAZSTZGFPQZSTZVIUBZEFDQUCUDPQ
        ZVMUEUFZUGEGDQVNUGZAVKUHVIVLUIAVJSAGFKJNMUJUKVKVIULVBABCDEFHILJMUMAVOGE
        PQZRUAZSTVJVHUNQZSTVLABCDEGHILKNUMAVQVRSAVJVGUNQZRUAVQVRAVSVPRAGFEKJIML
        UOUPAVJVGOAFEJILUQZURUSUTAVJVHAGFKJMUQAVHAVGVTVAVCVDVEVF $.
    $}

    ${
      ang180lem1.2 $e |- T = ( ( ( log ` ( 1 / ( 1 - A ) ) ) +
        ( log ` ( ( A - 1 ) / A ) ) ) + ( log ` A ) ) $.
      ang180lem1.3 $e |- N = ( ( ( T / _i ) / ( 2 x. _pi ) ) - ( 1 / 2 ) ) $.
      $( Lemma for ~ ang180 .  Show that the "revolution number" ` N ` is an
         integer, using ~ efeq1 to show that since the product of the three
         arguments ` A , 1 / ( 1 - A ) , ( A - 1 ) / A ` is ` -u 1 ` , the sum
         of the logarithms must be an integer multiple of ` 2 _pi _i ` away
         from ` _pi _i = log ( -u 1 ) ` .  (Contributed by Mario Carneiro,
         23-Sep-2014.) $)
      ang180lem1 $p |- ( ( A e. CC /\ A =/= 0 /\ A =/= 1 ) ->
        ( N e. ZZ /\ ( T / _i ) e. RR ) ) $=
        ( cc wcel cc0 wne c1 ci cdiv co cpi cmul wceq w3a cz cr cmin c2 wa picn
        2re pire remulcli recni 2pos pipos mulgt0ii gt0ne0ii pm3.2i ax-icn ine0
        divcan5 mp3an recdiv mp4an divcan4i oveq2i 3eqtr2i clog cfv caddc simp1
        ax-1cn subcl sylancr simp3 necomd subeq0 necon3bid mpbird reccld logcld
        recne0d sylancl simp2 divcld divne0d addcld syl5eqel mulcli a1i mulne0i
        wb divsubdird divdiv1 syl3anc oveq1d syl5eq 3eqtr4a ce efsub cneg efipi
        fveq2i syl2anc oveq12d mulcomd div2negd negsubdi2 oveq2d eqtr3d dmdcand
        efadd eflog neg1cn 3eqtrd divcan1d neg1ne0 dividi eqtrd efeq1 syl mpbid
        syl6eq eqeltrrd oveq1i halfre npcan zred readdcl remulcl jca ) CJKZCLMZ
        CNMZUAZFUBKDOPQZUCKYMDORSQZUDQZOUERSQZSQZPQZFUBYMDYRPQZYOYRPQZUDQYTNUEP
        QZUDQZYSFUUAUUBYTUDUUARYQPQZNYQRPQZPQZUUBRJKZYQJKZYQLMZUFZOJKZOLMZUFZUU
        AUUDTUGUUHUUIYQUERUHUIUJZUKZYQUUNUERUHUIULUMUNUOZUPZUUKUULUQURUPZRYQOUS
        UTUUHUUIUUGRLMUUFUUDTUUOUUPUGRUIUMUOZYQRVAVBUUEUENPUERUEUHUKUGUUSVCVDVE
        VDYMDYOYRYMDNNCUDQZPQZVFVGZCNUDQZCPQZVFVGZVHQZCVFVGZVHQZJHYMUVFUVGYMUVB
        UVEYMUVAYMUUTYMNJKZYJUUTJKVJYJYKYLVIZNCVKVLZYMUUTLMNCMYMCNYJYKYLVMZVNYM
        UUTLNCYMUVIYJUUTLTNCTWJVJUVJNCVOVLVPVQZVRZYMUUTUVKUVMVTZVSZYMUVDYMUVCCY
        MYJUVIUVCJKUVJVJCNVKWAZUVJYJYKYLWBZWCZYMUVCCUVQUVJYMUVCLMYLUVLYMUVCLCNY
        MYJUVIUVCLTCNTWJUVJVJCNVOWAVPVQZUVRWDZVSZWEZYMCUVJUVRVSZWEWFZYOJKZYMORU
        QUGWGZWHYRJKYMOYQUQUUOWGWHYRLMYMOYQUQUUOURUUPWIWHWKYMFYNYQPQZUUBUDQZUUC
        IYMUWHYTUUBUDYMDJKZUUMUUJUWHYTTUWEUUMYMUURWHUUJYMUUQWHDOYQWLWMWNWOWPYMY
        PWQVGZNTZYSUBKZYMUWKDWQVGZYOWQVGZPQZNYMUWJUWFUWKUWPTUWEUWGDYOWRWAYMUWPU
        WNNWSZPQZNUWOUWQUWNPWTVDYMUWRUWQUWQPQNYMUWNUWQUWQPYMUWNUVHWQVGZUWQDUVHW
        QHXAYMUWSUVFWQVGZUVGWQVGZSQZUWQCPQZCSQUWQYMUVFJKUVGJKUWSUXBTUWCUWDUVFUV
        GXJXBYMUWTUXCUXACSYMUWTUVBWQVGZUVEWQVGZSQZUVAUVDSQZUXCYMUVBJKUVEJKUWTUX
        FTUVPUWBUVBUVEXJXBYMUXDUVAUXEUVDSYMUVAJKUVALMUXDUVATUVNUVOUVAXKXBYMUVDJ
        KUVDLMUXEUVDTUVSUWAUVDXKXBXCYMUXGUVDUVASQUVDUWQUVCPQZSQUXCYMUVAUVDUVNUV
        SXDYMUVAUXHUVDSYMUWQUUTWSZPQUVAUXHYMNUUTUVIYMVJWHUVKUVMXEYMUXIUVCUWQPYM
        UVIYJUXIUVCTVJUVJNCXFVLXGXHXGYMUWQUVCCUWQJKYMXLWHZUVQUVJUVTUVRXIXMXMYMY
        JYKUXACTUVJUVRCXKXBXCYMUWQCUXJUVJUVRXNXMWOWNUWQXLXOXPYAWOXQYMYPJKZUWLUW
        MWJYMUWJUWFUXKUWEUWGDYOVKWAYPXRXSXTYBZYMUWHYQSQZYNUCYMYNYQYMDOUWEUUKYMU
        QWHUULYMURWHWCZUUHYMUUOWHZUUIYMUUPWHZXNYMUWHUCKYQUCKUXMUCKYMFUUBVHQZUWH
        UCYMUXQUWIUUBVHQZUWHFUWIUUBVHIYCYMUWHJKUUBJKUXRUWHTYMYNYQUXNUXOUXPWCUUB
        YDUKUWHUUBYEWAWOYMFUCKUUBUCKUXQUCKYMFUXLYFYDFUUBYGWAYBUUNUWHYQYHWAYBYI
        $.

      $( Lemma for ~ ang180 .  Show that the revolution number ` N ` is
         strictly between ` -u 2 ` and ` 1 ` .  Both bounds are established by
         iterating using the bounds on the imaginary part of the logarithm,
         ~ logimcl , but the resulting bound gives only ` N <_ 1 ` for the
         upper bound.  The case ` N = 1 ` is not ruled out here, but it is in
         some sense an "edge case" that can only happen under very specific
         conditions; in particular we show that all the angle arguments
         ` A , 1 / ( 1 - A ) , ( A - 1 ) / A ` must lie on the negative real
         axis, which is a contradiction because clearly if ` A ` is negative
         then the other two are positive real.  (Contributed by Mario Carneiro,
         23-Sep-2014.) $)
      ang180lem2 $p |- ( ( A e. CC /\ A =/= 0 /\ A =/= 1 ) ->
        ( -u 2 < N /\ N < 1 ) ) $=
        ( wcel cc0 c1 c2 clt wbr co cpi caddc wceq a1i cc wne cneg ci cdiv cmul
        w3a cmin c3 2cn 1re rehalfcli recni negsubdii c4 4d2e2 oveq1i wa ax-1cn
        4cn 2cnne0 divsubdir mp3an 3cn addcomi df-4 eqtr4i subaddrii eqtr3i 3re
        negeqi picn mulassi divcan1i 2re remulcli mulneg1i mulneg2i 3eqtr4i cim
        2ne0 pire cfv cr renegcli simp1 subcl sylancr simp3 necomd wb necon3bid
        subeq0 mpbird reccld recne0d logcld sylancl simp2 divcld divne0d addcld
        clog imcld logcl 3adant3 logimcld simpld lt2addd negpicn 2timesi imaddd
        cle 3brtr4d logimcl df-3 adddiri mulid2i oveq2i 3eqtri fveq2i cre imval
        syl5eq syl5eqel simprd eqtrd syl5eqbr syl112anc mpbid syl6breqr le2addd
        eqtr3d crp adantr recnd resubcl subge0 eqeltrrd relogcld syl ang180lem1
        cz rered breqtrd 2pos pipos mulgt0ii ltmuldiv gt0ne0ii redivcld subid1i
        ltaddsubd eqnetri negsub 1rp oveq12d addsub4d ax-icn ine0 biimpar add20
        syl22anc biimpa syldan eqcomd lognegb rpaddcl rpreccld negsubdi2 oveq1d
        div2negd rpdivcld readdcld reim0d oveq2d ex necon3d mpi ltlen mpbir2and
        ltdivmul2 divdiri 2div2e1 syl6breq ltsubaddd jca ) CUAJZCKUBZCLUBZUGZMU
        CZFNOFLNOUWKUWLDUDUEPZMQUFPZUEPZLMUEPZUHPZFNUWKUWLUWPRPZUWONOUWLUWQNOUW
        KUWRUIMUEPZUCZUWONMUWPUHPZUCUWRUWTMUWPUJUWPLUKULZUMUNUXAUWSUOMUEPZUWPUH
        PZUXAUWSUXCMUWPUHUPUQUOLUHPZMUEPZUXDUWSUOUAJLUAJZMUAJMKUBURUXFUXDSUTUSV
        AUOLMVBVCUXEUIMUEUOLUIUTUSVDLUIRPUILRPUOLUIUSVDVEVFVGVHUQVIVIVKVIUWKUWT
        UWNUFPZUWMNOZUWTUWONOZUWKUXHUIQUCZUFPZUWMNUWSUWNUFPZUCUIQUFPZUCUXHUXLUX
        MUXNUWSMUFPZQUFPUXMUXNUWSMQUWSUIVJULZUMZUJVLVMUXOUIQUFUIMVDUJWAVNUQVIZV
        KUWSUWNUXQUWNMQVOWBVPZUMZVQUIQVDVLVRVSUWKUXLDVTWCZUWMNUWKMUXKUFPZUXKRPZ
        LLCUHPZUEPZXCWCZCLUHPZCUEPZXCWCZRPZVTWCZCXCWCZVTWCZRPZUXLUYANUWKUYBUXKU
        YKUYMUYBWDJUWKMUXKVOQWBWEZVPTUXKWDJUWKUYOTZUWKUYJUWKUYFUYIUWKUYEUWKUYDU
        WKUXGUWHUYDUAJUSUWHUWIUWJWFZLCWGWHZUWKUYDKUBLCUBUWKCLUWHUWIUWJWIZWJUWKU
        YDKLCUWKUXGUWHUYDKSLCSWKUSUYQLCWMWHWLWNZWOZUWKUYDUYRUYTWPZWQZUWKUYHUWKU
        YGCUWKUWHUXGUYGUAJUYQUSCLWGWRZUYQUWHUWIUWJWSZWTZUWKUYGCVUDUYQUWKUYGKUBU
        WJUYSUWKUYGKCLUWKUWHUXGUYGKSCLSWKUYQUSCLWMWRWLWNVUEXAZWQZXBZXDZUWKUYLUW
        HUWIUYLUAJUWJCXEXFZXDZUWKUXKUXKRPZUYFVTWCZUYIVTWCZRPZUYBUYKNUWKUXKUXKVU
        NVUOUYPUYPUWKUYFVUCXDZUWKUYIVUHXDZUWKUXKVUNNOZVUNQXMOZUWKUYEVUAVUBXGZXH
        UWKUXKVUONOZVUOQXMOZUWKUYHVUFVUGXGZXHXIUYBVUMSUWKUXKXJXKTUWKUYFUYIVUCVU
        HXLZXNUWKUXKUYMNOZUYMQXMOZUWHUWIVVFVVGURUWJCXOXFZXHXIUXLUYCSUWKUXLMLRPZ
        UXKUFPUYBLUXKUFPZRPUYCUIVVIUXKUFXPUQMLUXKUJUSXJXQVVJUXKUYBRUXKXJXRXSXTT
        UWKUYAUYJUYLRPZVTWCUYNDVVKVTHYAUWKUYJUYLVUIVUKXLYDZXNUWKUYAUWMYBWCZUWMU
        WKDUAJUYAVVMSUWKDVVKUAHUWKUYJUYLVUIVUKXBYEZDYCUUAUWKUWMUWKFUUCJUWMWDJZA
        BCDEFGHIUUBYFZUUDYGZUUEYHUWKUWTWDJZVVOUWNWDJZKUWNNOZUXIUXJWKVVRUWKUWSUX
        PWETVVPVVSUWKUXSTZVVTUWKMQVOWBUUFUUGUUHZTZUWTUWMUWNUUIYIYJYHUWKUWLUWPUW
        OUWLWDJUWKMVOWETUWPWDJUWKUXBTZUWKUWMUWNVVPVWAUWNKUBUWKUWNUXSVWBUUJZTUUK
        ZUUMYJIYKUWKFUWQLNIUWKUWQLNOUWOLUWPRPZNOUWKUWOUWSVWGNUWKUWOUWSNOZUWMUXM
        NOZUWKUWMUXNUXMNUWKUWMUXNNOZUWMUXNXMOZUXNUWMUBZUWKUYNUWNQRPZUWMUXNXMUWK
        UYKUYMUWNQVUJVULVWAQWDJZUWKWBTZUWKVUPQQRPZUYKUWNXMUWKVUNVUOQQVUQVURVWOV
        WOUWKVUSVUTVVAYFUWKVVBVVCVVDYFYLVVEUWNVWPSUWKQVLXKTXNZUWKVVFVVGVVHYFZYL
        UWKUYAUWMUYNVVQVVLYMZUXNVWMSUWKUXNVVIQUFPUWNLQUFPZRPVWMUIVVIQUFXPUQMLQU
        JUSVLXQVWTQUWNRQVLXRXSXTTZXNUWKUWNKUHPZKUBVWLVXBUWNKUWNUXTUULVWEUUNUWKU
        XNUWMVXBKUWKUXNUWMSZVXBKSUWKVXCURZUWNUYKUHPZVXBKVXDUYKKUWNUHVXDUYJVXDUY
        FUYIVXDUYEVXDUYDVXDLCUCZRPZUYDYNUWKVXGUYDSZVXCUWKUXGUWHVXHUSUYQLCUUOWHY
        OVXDLYNJVXFYNJZVXGYNJUUPVXDVXIUYMQSZVXDQUYMVXDQUYMUHPZKSZQUYMSZVXDVXEKS
        ZVXLUWKVXCVXEVXKRPZKSZVXNVXLURZVXDUXNUWMUHPZVXOKUWKVXRVXOSVXCUWKVXRVWMU
        YNUHPVXOUWKUXNVWMUWMUYNUHVXAVWSUUQUWKUWNQUYKUYMUWNUAJUWKUXTTQUAJZUWKVLT
        UWKUYKVUJYPUWKUYMVULYPZUURYGYOUWKVXRKSZVXCUWKUXNUAJUWMUAJVYAVXCWKUXNUIQ
        VJWBVPZUMUWKDUDVVNUDUAJUWKUUSTUDKUBUWKUUTTWTUXNUWMWMWHUVAYMUWKVXPVXQUWK
        VXEWDJZKVXEXMOZVXKWDJZKVXKXMOZVXPVXQWKUWKVVSUYKWDJZVYCUXSVUJUWNUYKYQWHU
        WKVYDUYKUWNXMOZVWQUWKVVSVYGVYDVYHWKUXSVUJUWNUYKYRWHWNUWKVWNUYMWDJZVYEWB
        VULQUYMYQWHUWKVYFVVGVWRUWKVWNVYIVYFVVGWKWBVULQUYMYRWHWNVXEVXKUVBUVCUVDU
        VEZYFVXDVXSUYMUAJZVXLVXMWKVLUWKVYKVXCVXTYOQUYMWMWHYJUVFUWKVXIVXJWKZVXCU
        WHUWIVYLUWJCUVGXFYOWNZLVXFUVHWHYSZUVIYTVXDUYHVXDUYDVXFUEPZUYHYNUWKVYOUY
        HSVXCUWKUYGUCZVXFUEPVYOUYHUWKVYPUYDVXFUEUWKUWHUXGVYPUYDSUYQUSCLUVJWRUVK
        UWKUYGCVUDUYQVUEUVLYMYOVXDUYDVXFVYNVYMUVMYSYTUVNUVOUVPVXDVXNVXLVYJXHYMU
        VQUVRUVSUWKVVOUXNWDJVWJVWKVWLURWKVVPVYBUWMUXNUVTWRUWAUXRYKUWKVVOUWSWDJZ
        VVSVVTVWHVWIWKVVPVYQUWKUXPTVWAVWCUWMUWSUWNUWBYIWNUWSVVIMUEPMMUEPZUWPRPV
        WGUIVVIMUEXPUQMLMUJUSUJWAUWCVYRLUWPRUWDUQXTUWEUWKUWOUWPLVWFVWDLWDJUWKUK
        TUWFWNYHUWG $.

      $( Lemma for ~ ang180 .  Since ~ ang180lem1 shows that ` N ` is an
         integer and ~ ang180lem2 shows that ` N ` is strictly between ` -u 2 `
         and ` 1 ` , it follows that ` N e. { -u 1 , 0 } ` , and these two
         cases correspond to the two possible values for ` T ` .  (Contributed
         by Mario Carneiro, 23-Sep-2014.) $)
      ang180lem3 $p |- ( ( A e. CC /\ A =/= 0 /\ A =/= 1 ) ->
                                 T e. { -u ( _i x. _pi ) , ( _i x. _pi ) } ) $=
        ( cc wcel cc0 c1 ci cpi cmul co wceq c2 a1i wne w3a cneg wo cpr clt wbr
        cdiv 2cn picn mulcli 2ne0 divreci divcan3i eqtr3i cmin caddc ang180lem2
        wa cle simprd 1e0p1 syl6breq cz wb cr ang180lem1 simpld zleltp1 sylancl
        0z mpbird adantr zlem1lt sylancr df-neg breq1i syl6bbr biimpar zred 0re
        letri3 mpbir2and syl5eqr clog ax-1cn simp1 subcl simp3 necomd necon3bid
        subeq0 reccld recne0d logcld simp2 divcld divne0d addcld logcl syl5eqel
        3adant3 ax-icn ine0 pire pipos gt0ne0ii mulne0i halfcn divmuld syl5reqr
        mpbid eqcomd olcd mulneg1i mulcomi negeqi eqtri divcan1i oveq1i mulassi
        cfv mulid2i 3eqtr3i negsubdii 1mhlfehlf simpr syl6eq oveq1d npcan eqtrd
        divcan1d eqtr2d orcd df-2 negdi2 mp2an syl5eqbrr neg1z neg1rr leloe cvv
        mpjaodan ovex eqeltri elpr sylibr ) CJKZCLUAZCMUAZUBZDNOPQZUCZRZDUULRZU
        DZDUUMUULUEKUUKMUCZFUFUGZUUPUUQFRZUUKUURUSZUUOUUNUUTUULDUUTDNUHQZORUULD
        RUUTOSOPQZMSUHQZPQZUVAUVBSUHQUVDOUVBSSOUIUJUKZUIULUMOSUJUIULUNUOUUTUVAU
        VBUHQZUVCRZUVDUVARUUTUVFUVCUPQZLRZUVGUUTUVHFLIUUTFLRZFLUTUGZLFUTUGZUUKU
        VKUURUUKUVKFLMUQQZUFUGZUUKFMUVMUFUUKSUCZFUFUGZFMUFUGZABCDEFGHIURZVAVBVC
        UUKFVDKZLVDKZUVKUVNVEUUKUVSUVAVFKABCDEFGHIVGVHZVKFLVIVJVLVMUUKUVLUURUUK
        UVLLMUPQZFUFUGZUURUUKUVTUVSUVLUWCVEVKUWALFVNVOUUQUWBFUFMVPVQVRVSUUTFVFK
        ZLVFKUVJUVKUVLUSVEUUKUWDUURUUKFUWAVTZVMWAFLWBVJWCWDUUTUVFJKZUVCJKZUVIUV
        GVEUUKUWFUURUUKUVAUVBUUKDNUUKDMMCUPQZUHQZWEYBZCMUPQZCUHQZWEYBZUQQZCWEYB
        ZUQQZJHUUKUWNUWOUUKUWJUWMUUKUWIUUKUWHUUKMJKZUUHUWHJKWFUUHUUIUUJWGZMCWHV
        OZUUKUWHLUAMCUAUUKCMUUHUUIUUJWIZWJUUKUWHLMCUUKUWQUUHUWHLRMCRVEWFUWRMCWL
        VOWKVLZWMUUKUWHUWSUXAWNWOUUKUWLUUKUWKCUUKUUHUWQUWKJKUWRWFCMWHVJZUWRUUHU
        UIUUJWPZWQUUKUWKCUXBUWRUUKUWKLUAUUJUWTUUKUWKLCMUUKUUHUWQUWKLRCMRVEUWRWF
        CMWLVJWKVLUXCWRWOWSUUHUUIUWOJKUUJCWTXBWSXAZNJKZUUKXCTZNLUAZUUKXDTZWQZUV
        BJKZUUKUVETZUVBLUAZUUKSOUIUJULOXEXFXGXHZTZWQZVMXIUVFUVCWLVJXLUUTUVAUVBU
        VCUUKUVAJKUURUXIVMUXJUUTUVETUWGUUTXITUXLUUTUXMTXJXLXKUUTDNOUUKDJKUURUXD
        VMUXEUUTXCTOJKUUTUJTUXGUUTXDTXJXLXMXNUUKUUSUSZUUNUUOUXPUUMUVANPQZDUXPUU
        MOUCZNPQZUXQUXSONPQZUCUUMONUJXCXOUXTUULONUJXCXPXQXRUXPUXRUVANPUXPUXRUVF
        UVBPQZUVAUXPUXRUVCUCZUVBPQZUYAUYCUVCUVBPQZUCUXRUVCUVBXIUVEXOUYDOUVCSPQZ
        OPQMOPQUYDOUYEMOPMSWFUIULXSXTUVCSOXIUIUJYAOUJYCYDXQXRUXPUYBUVFUVBPUXPUY
        BUVHUVCUQQZUVFUXPUYBUUQUVCUQQZUYFMUVCUPQZUCUYGUYBMUVCWFXIYEUYHUVCYFXQUO
        UXPUUQUVHUVCUQUXPUUQFUVHUUKUUSYGIYHYIWDUUKUYFUVFRZUUSUUKUWFUWGUYIUXOXIU
        VFUVCYJVJVMYKYIWDUUKUYAUVARUUSUUKUVAUVBUXIUXKUXNYLVMYKYIWDUUKUXQDRUUSUU
        KDNUXDUXFUXHYLVMYMYNUUKUUQFUTUGZUURUUSUDZUUKUYJUUQMUPQZFUFUGZUUKUYLUVOF
        UFUVOMMUQQZUCZUYLSUYNYOXQUWQUWQUYOUYLRWFWFMMYPYQXRUUKUVPUVQUVRVHYRUUKUU
        QVDKUVSUYJUYMVEYSUWAUUQFVNVOVLUUKUUQVFKUWDUYJUYKVEYTUWEUUQFUUAVOXLUUCDU
        UMUULDUWPUUBHUWNUWOUQUUDUUEUUFUUG $.
    $}

    $( Lemma for ~ ang180 .  Reduce the statement to one variable.
       (Contributed by Mario Carneiro, 23-Sep-2014.) $)
    ang180lem4 $p |- ( ( A e. CC /\ A =/= 0 /\ A =/= 1 ) ->
                      ( ( ( ( 1 - A ) F 1 ) + ( A F ( A - 1 ) ) ) +
                                           ( 1 F A ) ) e. { -u _pi , _pi } ) $=
      ( wcel cc0 wne c1 cmin co caddc cdiv clog cfv cim cpi cneg angvald wceq
      w3a cpr 1cnd simp1 subcld simp3 necomd subne0d ax-1ne0 a1i oveq12d divcld
      simp2 recne0d logcld divne0d imaddd eqtr4d div1d fveq2d eqtrd addcld cmul
      cc ci c2 eqid ang180lem3 wo fveq2 ax-icn mulcli imnegi addid2i fveq2i 0re
      picn pire crimi eqtr3i negeqi eqtri syl6eq orim12i ovex elpr fvex 3imtr4i
      syl eqeltrd ) CVDFZCGHZCIHZUAZICJKZIDKZCCIJKZDKZLKZICDKZLKZIWOMKZNOZWQCMK
      ZNOZLKZCNOZLKZPOZQRZQUBZWNXAXFPOZXGPOZLKXIWNWSXLWTXMLWNWSXCPOZXEPOZLKXLWN
      WPXNWRXOLWNABDWOIEWNICWNUCZWKWLWMUDZUEZWNICXPXQWNCIWKWLWMUFZUGUHZXPIGHWNU
      IUJZSWNABDCWQEXQWKWLWMUMZWNCIXQXPUEZWNCIXQXPXSUHZSUKWNXCXEWNXBWNIWOXPXRXT
      ULWNWOXRXTUNUOZWNXDWNWQCYCXQYBULWNWQCYCXQYDYBUPUOZUQURWNWTCIMKZNOZPOXMWNA
      BDICEXPYAXQYBSWNYHXGPWNYGCNWNCXQUSUTUTVAUKWNXFXGWNXCXEYEYFVBWNCXQYBUOUQUR
      WNXHVEQVCKZRZYIUBFZXIXKFZABCXHDXHVEMKVFQVCKMKIVFMKJKZEXHVGYMVGVHXHYJTZXHY
      ITZVIXIXJTZXIQTZVIYKYLYNYPYOYQYNXIYJPOZXJXHYJPVJYRYIPOZRXJYIVEQVKVQVLZVMY
      SQGYILKZPOYSQUUAYIPYIYTVNVOGQVPVRVSVTZWAWBWCYOXIYSQXHYIPVJUUBWCWDXHYJYIXF
      XGLWEWFXIXJQXHPWGWFWHWIWJ $.

    $( Lemma for ~ ang180 :  Reduce the statement to two variables.
       (Contributed by Mario Carneiro, 23-Sep-2014.) $)
    ang180lem5 $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ ( B e. CC /\ B =/= 0 ) /\
                    A =/= B ) -> ( ( ( ( A - B ) F A ) + ( B F ( B - A ) ) ) +
                                           ( A F B ) ) e. { -u _pi , _pi } ) $=
      ( cc wcel cc0 wne cmin co caddc cmul oveq12d wceq angcan syl222anc eqtr3d
      c1 w3a cdiv cpi cneg cpr simp1l 1cnd simp2l simp1r divcld subdid divcan2d
      wa mulid1d eqtrd subcld necomd divne1d subne0d ax-1ne0 a1i simp2r divne0d
      simp3 ang180lem4 syl3anc eqeltrd ) CGHZCIJZUMZDGHZDIJZUMZCDJZUAZCDKLZCELZ
      DDCKLZELZMLZCDELZMLTDCUBLZKLZTELZWBWBTKLZELZMLZTWBELZMLZUCUDUCUEZVOVTWGWA
      WHMVOVQWDVSWFMVOCWCNLZCTNLZELZVQWDVOWKVPWLCEVOWKWLCWBNLZKLVPVOCTWBVHVIVMV
      NUFZVOUGZVODCVJVKVLVNUHZWOVHVIVMVNUIZUJZUKVOWLCWNDKVOCWOUNZVODCWQWOWRULZO
      UOWTOVOWCGHWCIJTGHZTIJZVHVIWMWDPVOTWBWPWSUPVOTWBWPWSVOWBTVODCWQWOWRVOCDVJ
      VMVNVDUQURZUQUSWPXCVOUTVAZWOWRABWCTCEFQRSVOWNCWENLZELZVSWFVOWNDXFVREXAVOX
      FWNWLKLVRVOCWBTWOWSWPUKVOWNDWLCKXAWTOUOOVOWBGHZWBIJZWEGHWEIJVHVIXGWFPWSVO
      DCWQWOVJVKVLVNVBWRVCZVOWBTWSWPUPVOWBTWSWPXDUSWOWRABWBWECEFQRSOVOWLWNELZWA
      WHVOWLCWNDEWTXAOVOXBXCXHXIVHVIXKWHPWPXEWSXJWOWRABTWBCEFQRSOVOXHXIWBTJWIWJ
      HWSXJXDABWBEFVEVFVG $.

    $( The sum of angles ` m A B C + m B C A + m C A B ` in a triangle adds up
       to either ` _pi ` or ` -u _pi ` , i.e. 180 degrees.  (The sign is due to
       the two possible orientations of vertex arrangement and our signed
       notion of angle).  This is Metamath 100 proof #27.  (Contributed by
       Mario Carneiro, 23-Sep-2014.) $)
    ang180 $p |- ( ( ( A e. CC /\ B e. CC /\ C e. CC ) /\
          ( A =/= B /\ B =/= C /\ A =/= C ) ) ->
          ( ( ( ( C - B ) F ( A - B ) ) + ( ( A - C ) F ( B - C ) ) ) +
                           ( ( B - A ) F ( C - A ) ) ) e. { -u _pi , _pi } ) $=
      ( cc wcel wne cmin co caddc cneg subcld necomd subne0d negsubdi2d oveq12d
      cc0 w3a cpi cpr wceq simpl3 simpl2 simpr2 simpl1 simpr1 syl22anc nnncan2d
      wa angneg eqtr4d eqtr3d simpr3 subneintr2d ang180lem5 syl221anc eqeltrd
      oveq1d ) CHIZDHIZEHIZUAZCDJZDEJZCEJZUAZULZEDKLZCDKLZFLZCEKLZDEKLZFLZMLZDC
      KLZECKLZFLZMLVRVSKLZVRFLZVSVSVRKLZFLZMLZVTMLZUBNUBUCZVJVQWEVTMVJVMWBVPWDM
      VJVKNZVLNZFLZVMWBVJVKHIVKTJVLHIVLTJWJVMUDVJEDVBVCVDVIUEZVBVCVDVIUFZOVJEDW
      KWLVJDEVEVFVGVHUGZPQVJCDVBVCVDVIUHZWLOVJCDWNWLVEVFVGVHUIZQABVKVLFGUMUJVJW
      HWAWIVRFVJWHVOWAVJEDWKWLRVJDECWLWKWNUKUNVJCDWNWLRSUOVJVNNZVONZFLZVPWDVJVN
      HIVNTJVOHIVOTJWRVPUDVJCEWNWKOVJCEWNWKVEVFVGVHUPZQVJDEWLWKOVJDEWLWKWMQABVN
      VOFGUMUJVJWPVSWQWCFVJCEWNWKRVJWQVKWCVJDEWLWKRVJEDCWKWLWNUKUNSUOSVAVJVRHIV
      RTJVSHIVSTJVRVSJWFWGIVJDCWLWNOVJDCWLWNVJCDWOPQVJECWKWNOVJECWKWNVJCEWSPQVJ
      DECWLWKWNWMUQABVRVSFGURUSUT $.
  $}

  ${
    lawcoslem1.1 $e |- ( ph -> U e. CC ) $.
    lawcoslem1.2 $e |- ( ph -> V e. CC ) $.
    lawcoslem1.3 $e |- ( ph -> U =/= 0 ) $.
    lawcoslem1.4 $e |- ( ph -> V =/= 0 ) $.
    $( Lemma for ~ lawcos .  Here we prove the law for a point at the origin
       and two distinct points U and V, using an expanded version of the signed
       angle expression on the complex plane.  (Contributed by David A.
       Wheeler, 11-Jun-2015.) $)
    lawcoslem1 $p |- ( ph -> ( ( abs ` ( U - V ) ) ^ 2 ) =
                       ( ( ( ( abs ` U ) ^ 2 ) + ( ( abs ` V ) ^ 2 ) ) -
                         ( 2 x. ( ( ( abs ` U ) x. ( abs ` V ) ) x.
                             ( ( Re ` ( U / V ) ) / ( abs ` ( U / V ) ) ) ) ) )
        ) $=
      ( cmin co cabs cfv c2 cexp cmul cre cdiv cc oveq2d recnd eqtrd caddc wcel
      ccj sqabssub syl2anc absdivd abscld remulcld divcld recld absne0d divne0d
      wceq div12d divdiv2d sqvald oveq1d mul31d sqcld divcan4d 3eqtr2rd mulcomd
      eqtr4d resqcld remul2d c1 divrecd cc0 wne recval cjcld sqne0 syl divcan2d
      wb mpbird eqtr3d fveq2d ) ABCHIJKLMIZBJKZLMICJKZLMIZUAIZLBCUCKZNIZOKZNIZH
      IZWCLVTWANIZBCPIZOKZWJJKZPIZNIZNIZHIABQUBCQUBZVSWHUMDEBCUDUEAWGWOWCHAWFWN
      LNAWNWKWIVTWAPIZPIZNIZWKWBNIZWFAWNWIWKWQPIZNIWSAWMXAWINAWLWQWKPABCDEGUFRR
      AWIWKWQAWIAVTWAABDUGZACEUGZUHSZAWKAWJABCDEGUIZUJSZAVTWAAVTXBSZAWAXCSZACEG
      UKZUIAVTWAXGXHABDFUKZXIULUNTAWBWRWKNAWRWIWANIZVTPIWBVTNIZVTPIWBAWIVTWAXDX
      GXHXJXIUOAXLXKVTPAXLWAWANIZVTNIXKAWBXMVTNAWAXHUPUQAVTWAWAXGXHXHURVCUQAWBV
      TAWAXHUSZXGXJUTVARAWTWBWJNIZOKZWFAWTWBWKNIXPAWKWBXFXNVBAWBWJAWAXCVDXEVEVC
      AXOWEOABWBCPIZNIXOWEABWBCDXNEGUNAXQWDBNAXQWBVFCPIZNIZWDAWBCXNEGVGAXSWBWDW
      BPIZNIWDAXRXTWBNAWPCVHVIXRXTUMEGCVJUERAWDWBACEVKXNAWBVHVIZWAVHVIZXIAWAQUB
      YAYBVOXHWAVLVMVPVNTTRVQVRTVARRT $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    lawcos.1 $e |- F = ( x e. ( CC \ { 0 } ) , y e. ( CC \ { 0 } ) |->
                        ( Im ` ( log ` ( y / x ) ) ) ) $.
    lawcos.2 $e |- X = ( abs ` ( B - C ) ) $.
    lawcos.3 $e |- Y = ( abs ` ( A - C ) ) $.
    lawcos.4 $e |- Z = ( abs ` ( A - B ) ) $.
    lawcos.5 $e |- O = ( ( B - C ) F ( A - C ) ) $.
    $( Law of cosines (also known as the Al-Kashi theorem or the generalized
       Pythagorean theorem, or the cosine formula or cosine rule).  Given three
       distinct points A, B, and C, prove a relationship between their segment
       lengths.  This theorem is expressed using the complex number plane as a
       plane, where ` F ` is the signed angle construct (as used in ~ ang180 ),
       ` X ` is the distance of line segment BC, ` Y ` is the distance of line
       segment AC, ` Z ` is the distance of line segment AB, and ` O ` is the
       signed angle m/_ BCA on the complex plane.  We translate triangle ABC to
       move C to the origin (C-C), B to U=(B-C), and A to V=(A-C), then use
       lemma ~ lawcoslem1 to prove this algebraically simpler case.  The
       metamath convention is to use a signed angle; in this case the sign
       doesn't matter because we use the cosine of the angle (see ~ cosneg ).
       The Pythagorean theorem ~ pythag is a special case of the law of
       cosines.  The theorem's expression and approach were suggested by Mario
       Carneiro.  This is Metamath 100 proof #94.  (Contributed by David A.
       Wheeler, 12-Jun-2015.) $)
    lawcos $p |- ( ( ( A e. CC /\ B e. CC /\ C e. CC )
                  /\ ( A =/= C /\ B =/= C ) ) ->
                 ( Z ^ 2 ) = ( ( ( X ^ 2 ) + ( Y ^ 2 ) ) -
                             ( 2 x. ( ( X x. Y ) x. ( cos ` O ) ) ) ) ) $=
      ( co cfv c2 cexp cmul cc wcel w3a wne cmin cabs caddc cdiv cre ccos subcl
      3adant2 adantr 3adant1 cc0 subeq0 necon3bid bicomd biimpa adantrr adantrl
      wa wb lawcoslem1 wceq nnncan2 fveq2d syl6reqr oveq1d abscld recnd addcomd
      sqcld oveq1i oveq12i mulcomd ci clog cim ce fveq2i angvald syl5eq divne0d
      cr divcld logcld imcld recosval syl efiarg syl2anc absne0d redivd oveq12d
      eqtrd 3eqtrd oveq2d 3eqtr4d ) CUAUBZDUAUBZEUAUBZUCZCEUDZDEUDZVBZVBZCEUEPZ
      DEUEPZUEPZUFQZRSPZXHUFQZRSPZXIUFQZRSPZUGPZRXMXOTPZXHXIUHPZUIQXSUFQZUHPZTP
      ZTPZUEPJRSPZHRSPZIRSPZUGPZRHITPZGUJQZTPZTPZUEPXGXHXIXCXHUAUBZXFWTXBYLXACE
      UKULUMZXCXIUAUBZXFXAXBYNWTDEUKUNUMZXCXDXHUOUDZXEXCXDYPWTXBXDYPVCXAWTXBVBZ
      YPXDYQXHUOCECEUPUQURULUSUTZXCXEXIUOUDZXDXCXEYSXAXBXEYSVCWTXAXBVBZYSXEYTXI
      UODEDEUPUQURUNUSVAZVDXCYDXLVEXFXCJXKRSXCXKCDUEPZUFQJXCXJUUBUFCDEVFVGNVHVI
      UMXGYGXQYKYCUEXGXQXPXNUGPYGXGXNXPXGXMXGXMXGXHYMVJVKZVMXGXOXGXOXGXIYOVJVKZ
      VMVLYEXPYFXNUGHXORSLVNIXMRSMVNVOVHXGYJYBRTXGYHXRYIYATXGXRXOXMTPYHXGXMXOUU
      CUUDVPHXOIXMTLMVOVHXGYIVQXSVRQZVSQZTPVTQZUIQZXSXTUHPZUIQYAXGYIUUFUJQZUUHX
      GYIXIXHFPZUJQUUJGUUKUJOWAXGUUKUUFUJXGABFXIXHKYOUUAYMYRWBVGWCXGUUFWEUBUUJU
      UHVEXGUUEXGXSXGXHXIYMYOUUAWFZXGXHXIYMYOYRUUAWDZWGWHUUFWIWJWPXGUUGUUIUIXGX
      SUAUBXSUOUDUUGUUIVEUULUUMXSWKWLVGXGXTXSXGXSUULVJUULXGXSUULUUMWMWNWQWOWRWO
      WS $.

    $( Pythagorean theorem.  Given three distinct points A, B, and C that form
       a right triangle (with the right angle at C), prove a relationship
       between their segment lengths.  This theorem is expressed using the
       complex number plane as a plane, where ` F ` is the signed angle
       construct (as used in ~ ang180 ), ` X ` is the distance of line segment
       BC, ` Y ` is the distance of line segment AC, ` Z ` is the distance of
       line segment AB (the hypotenuse), and ` O ` is the signed right angle
       m/_ BCA. We use the law of cosines ~ lawcos to prove this, along with
       simple trigonometry facts like ~ coshalfpi and ~ cosneg .  (Contributed
       by David A. Wheeler, 13-Jun-2015.) $)
    pythag $p |- ( ( ( A e. CC /\ B e. CC /\ C e. CC )
                  /\ ( A =/= C /\ B =/= C )
                  /\ O e. { ( _pi / 2 ) , -u ( _pi / 2 ) } ) ->
                                     ( Z ^ 2 ) = ( ( X ^ 2 ) + ( Y ^ 2 ) ) ) $=
      ( cc c2 co cmul cc0 wcel w3a wne wa cpi cdiv cneg cpr cexp caddc ccos cfv
      cmin wceq lawcos 3adant3 wo elpri fveq2 coshalfpi syl6eq cosneghalfpi syl
      jaoi 3ad2ant3 oveq2d subcl 3adant1 3ad2ant1 abscld recnd syl5eqel 3adant2
      cabs mulcld mul01d eqtrd 2t0e0 sqcld addcld subid1d 3eqtrd ) CPUAZDPUAZEP
      UAZUBZCEUCDEUCUDZGUEQUFRZWHUGZUHUAZUBZJQUIRZHQUIRZIQUIRZUJRZQHISRZGUKULZS
      RZSRZUMRZWOTUMRWOWFWGWLWTUNWJABCDEFGHIJKLMNOUOUPWKWSTWOUMWKWSQTSRTWKWRTQS
      WKWRWPTSRTWKWQTWPSWJWFWQTUNZWGWJGWHUNZGWIUNZUQXAGWHWIURXBXAXCXBWQWHUKULTG
      WHUKUSUTVAXCWQWIUKULTGWIUKUSVBVAVDVCVEVFWKWPWKHIWKHDEUMRZVNULZPLWKXEWKXDW
      FWGXDPUAZWJWDWEXFWCDEVGVHVIVJVKVLZWKICEUMRZVNULZPMWKXIWKXHWFWGXHPUAZWJWCW
      EXJWDCEVGVMVIVJVKVLZVOVPVQVFVRVAVFWKWOWKWMWNWKHXGVSWKIXKVSVTWAWB $.
  $}

  $( Lemma for ~ isosctr .  (Contributed by Saveliy Skresanov, 30-Dec-2016.) $)
  isosctrlem1 $p |- ( ( A e. CC /\ ( abs ` A ) = 1 /\ -. 1 = A ) ->
                                      ( Im ` ( log ` ( 1 - A ) ) ) =/= _pi ) $=
    ( cc wcel cfv c1 wceq wn cmin co cpi ax-1cn mpan adantr cc0 3adant2 cle wbr
    cr wa cre cabs w3a clog cim subcl subeq0 notbid biimpar neqned logcld imcld
    wb cdiv clt wne 3ad2ant1 releabs breq2 adantl mpbid recl recnd subidd simpl
    recld 1red simpr lesub1dd eqbrtrrd syldan resub re1 oveq1i breqtrrd 3adant3
    c2 syl6eq cneg cicc argrege0 cxr neghalfpirx halfpire rexri iccleub mp3an12
    syl syl3anc crp pirp rphalflt ax-mp jctir wi a1i rehalfcld lelttr mpd ltned
    pire ) ABCZAUADZEFZEAFZGZUBZEAHIZUCDZUDDZJXAXEXIRCZXCXAXESZXHXKXGXAXGBCZXEE
    BCZXAXLKEAUELZMXKXGNXAXGNFZGZXEXMXAXPXEULKXMXASZXOXDEAUFUGLUHUIZUJUKZOXFXIJ
    VPUMIZPQZXTJUNQZSZXIJUNQZXFYAYBXFXLXGNUOZNXGTDZPQZYAXAXCXLXEXNUPXAXEYEXCXRO
    XAXCYGXEXAXCSZNEATDZHIZYFPXAXCYIEPQZNYJPQYHYIXBPQZYKXAYLXCAUQMXCYLYKULXAXBE
    YIPURUSUTXAYKSZYIYIHIZNYJPXAYNNFYKXAYIXAYIAVAVBVCMYMYIEYIYMAXAYKVDVEZYMVFYO
    XAYKVGVHVIVJXAYFYJFZXCXMXAYPKXQYFETDZYIHIYJEAVKYQEYIHVLVMVQLMVNVOXLYEYGUBXI
    XTVRZXTVSICZYAXGVTYRWACXTWACYSYAWBXTWCWDYRXTXIWEWFWGWHJWICYBWJJWKWLWMXAXEYC
    YDWNZXCXKXJXTRCJRCZYTXSXKJUUAXKWTWOZWPUUBXIXTJWQWHOWRWS $.

  $( Lemma for ~ isosctr .  Corresponds to the case where one vertex is at 0,
     another at 1 and the third lies on the unit circle.  (Contributed by
     Saveliy Skresanov, 31-Dec-2016.) $)
  isosctrlem2 $p |- ( ( A e. CC /\ ( abs ` A ) = 1 /\ -. 1 = A ) ->
      ( Im ` ( log ` ( 1 - A ) ) ) =
      ( Im ` ( log ` ( -u A / ( 1 - A ) ) ) ) ) $=
    ( cc wcel cfv c1 wceq cmin co clog cim cneg cdiv cc0 wa adantr wne ccj cmul
    cr eqeltrrd cabs wn w3a caddc crp 1cnd simpl1 negsubd 1rp a1i simpl3 simpl2
    wo sub32d 1m1e0 oveq1i df-neg eqtr4i syl6eq simp1 subcld ax-1cn subeq0 mpan
    wb biimpd con3dimp neqned 3adant2 recrecd div2negd negcld cjdivd fveq2 abs0
    cjnegd eqtr2 sylan2 ax-1ne0 id neneqd mp1i pm2.65da adantl df-ne cexp oveq1
    c2 sq1 absvalsq eqtr3d 3adant3 cjcld simp3 divcan3d eqtrd syl3an3br mpd3an3
    oveq1d eqcomd negeqd cjsub cjred oveq2d 3eqtrd 3ad2ant2 simpl simpr divnegd
    1red syl2anc divcld reccld cjne0d eqnetrrd divcan5d divcan2d subdid mulid1d
    oveq12d 3eqtr2d negnegd negsubdi2 reim0bd eqeltrd recne0d rereccld resubcld
    recidd subcl negrebd absord eqeq1 relogcld reim0d logcld imcld recnd fveq2d
    orim12d sylc ord rpaddcld rpdivcld eqtr4d negne0d divne0d logcj isosctrlem1
    mpd sylan logrec syl3anc 3eqtr4rd 3eqtr3rd imnegd 3eqtr3d neg11d pm2.61dane
    cpi imcjd ) ABCZAUADZEFZEAFZUBZUCZEAGHZIDZJDZAKZUVHLHZIDZJDZFUVLJDZMUVGUVOM
    FZNZUVJMUVNUVQUVIUVQUVHUVQEUVKUDHUVHUEUVQEAUVQUFZUVBUVDUVFUVPUGZUHUVQEUVKEU
    ECUVQUIUJZUVQEUVKUEUVQUVFEUVKFZUVBUVDUVFUVPUKUVQUVEUWAUVQUVDUVCAFZUVCUVKFZU
    MUVEUWAUMUVBUVDUVFUVPULUVQAUVQAUVSUVQUVHEGHZUVKSUVQUWDEEGHZAGHZUVKUVQEAEUVR
    UVSUVRUNUWFMAGHUVKUWEMAGUOUPAUQURUSUVQUVHEUVQEEUVHLHZLHUVHSUVQUVHUVGUVHBCZU
    VPUVGEAUVGUFZUVBUVDUVFUTZVAZOUVGUVHMPZUVPUVBUVFUWLUVDUVBUVFNUVHMUVBUVHMFZUV
    EUVBUWMUVEEBCZUVBUWMUVEVEVBEAVCVDVFVGVHVIZOVJUVQUWGUVQEKZUVHKZLHZUWGSUVGUWR
    UWGFUVPUVGEUVHUWIUWKUWOVKZOUVQUVLQDZUWRSUVGUWTUWRFUVPUVGUWTEALHZKZEUXAGHZLH
    ZUWPAEGHZLHZUWRUVGUWTUVKQDZUVHQDZLHUXBUXHLHUXDUVGUVKUVHUVGAUWJVLZUWKUWOVMUV
    GUXGUXBUXHLUVGUXGAQDZKUXBUVGAUWJVPUVGUXJUXAUVBUVDUXJUXAFUVFUVBUVDNZUXAUXJUV
    BUVDAMFZUBZUXAUXJFZUVDUXMUVBUVDUXLEMFZUXLUVDUVCMFUXOUXLUVCMUADMAMUAVNVOUSUV
    CEMVQVREMPZUXOUBUVDUXLNVSUXPEMUXPVTWAWBWCZWDUXMUVBUVDAMPZUXNAMWEUVBUVDUXRUC
    ZUXAAUXJRHZALHUXJUXSEUXTALUVBUVDEUXTFUXRUXKUVCWHWFHZEUXTUVDUYAEFUVBUVDUYAEW
    HWFHEUVCEWHWFWGWIUSWDUVBUYAUXTFUVDAWJOWKWLWSUXSUXJAUXSAUVBUVDUXRUTZWMUYBUVB
    UVDUXRWNWOWPWQWRWTZWLXAWPWSUVGUXHUXCUXBLUVBUVDUXHUXCFUVFUXKUXHEUXJGHZUXCUVB
    UXHUYDFUVDUVBUXHEQDZUXJGHZUYDUWNUVBUXHUYFFVBEAXBVDUVBUYEEUXJGUVBEUVBXJXCWSW
    POUXKUXJUXAEGUYCXDWPWLZXDXEUVGUXDUWPALHZUXCLHZAUYHRHZAUXCRHZLHUXFUVGUVBUXRU
    XDUYIFUWJUVGAMUVDUVBUXMUVFUXQXFVHZUVBUXRNZUXBUYHUXCLUYMEAUYMUFUVBUXRXGUVBUX
    RXHXIWSXKUVGUYHUXCAUVGUWPAUVGEUWIVLZUWJUYLXLUVGEUXAUWIUVGAUWJUYLXMZVAUWJUVG
    UXHUXCMUYGUVGUVHUWKUWOXNXOUYLXPUVGUYJUWPUYKUXELUVGUWPAUYNUWJUYLXQUVGUYKAERH
    ZAUXARHZGHUXEUVGAEUXAUWJUWIUYOXRUVGUYPAUYQEGUVGAUWJXSUVGAUWJUYLYIXTWPXTYAUV
    GUXEUWQUWPLUVGUVBUWNUXEUWQFUWJUWIUVBUWNNZUXEKZKUXEUWQUYRUXEAEYJYBUYRUYSUVHA
    EYCXAWKXKXDXEZOUVQUWTUVLSUVQUVLUVQUVLUVGUVLBCZUVPUVGUVKUVHUXIUWKUWOXLZOUVGU
    VPXHYDZXCVUCYETTUVGUWGMPUVPUVGUVHUWKUWOYFZOYGTUVQXJYHTYKYLUVDUWBUVEUWCUWAUV
    DUWBUVEUVCEAYMVFUVDUWCUWAUVCEUVKYMVFYTUUAUUBUUJUVTTZUUCTZYNYOUVQUVMUVQUVLUV
    QUVKUVHVUEVUFUUDYNYOUUEUVGUVOMPZNZUVJUVNVUHUVJVUHUVIUVGUVIBCVUGUVGUVHUWKUWO
    YPOZYQYRVUHUVNVUHUVMVUHUVLUVGVUAVUGVUBOUVGUVLMPVUGUVGUVKUVHUXIUWKUVGAUWJUYL
    UUFUWOUUGOYPZYQYRVUHUVIKZJDUVMQDZJDUVJKUVNKVUHVUKVULJVUHUWTIDZUWRIDZVULVUKU
    VGVUMVUNFVUGUVGUWTUWRIUYTYSOUVGVUAVUGVUMVULFVUBUVLUUHUUKUVGVUNVUKFVUGUVGUWG
    IDZKZKVUOVUKVUNUVGVUOUVGUWGUVGUVHUWKUWOXMVUDYPYBUVGUVIVUPUVGUWHUWLUVJUUTPUV
    IVUPFUWKUWOAUUIUVHUULUUMXAUVGUWRUWGIUWSYSUUNOUUOYSVUHUVIVUIUUPVUHUVMVUJUVAU
    UQUURUUS $.

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    isosctrlem3.1 $e |- F = ( x e. ( CC \ { 0 } ) , y e. ( CC \ { 0 } ) |->
                        ( Im ` ( log ` ( y / x ) ) ) ) $.
    $( Lemma for ~ isosctr .  Corresponds to the case where one vertex is at 0.
       (Contributed by Saveliy Skresanov, 1-Jan-2017.) $)
    isosctrlem3 $p |- ( ( ( A e. CC /\ B e. CC ) /\
                         ( A =/= 0 /\ B =/= 0 /\ A =/= B ) /\
                         ( abs ` A ) = ( abs ` B ) )
                       -> ( -u A F ( B - A ) ) = ( ( A - B ) F -u B ) ) $=
      ( cc wcel cc0 wne cfv wceq cneg cmin co c1 cdiv clog cim cmul wa w3a cabs
      simp1l simp21 simp1r subcld simp23 angneg syl22anc negsubdi2d oveq2d 1cnd
      subne0d ax-1ne0 a1i divcld necomd divne1d angvald div1d fveq2d wn absdivd
      simp3 eqcomd oveq1d abscld recnd absne0d dividd 3eqtrd neneqd isosctrlem2
      syl3anc negcld simp22 divne0d negne0d eqtr4d mulid1d subdid oveq12d eqtrd
      divcan2d angcan syl222anc eqtr3d mulneg2d negeqd 3eqtr4d 3eqtr3d ) CGHZDG
      HZUAZCIJZDIJZCDJZUBZCUCKZDUCKZLZUBZCMZCDNOZMZEOZCXEEOZXDDCNOZEOXEDMZEOZXC
      WMWPXEGHXEIJXGXHLWMWNWSXBUDZWOWPWQWRXBUEZXCCDXLWMWNWSXBUFZUGXCCDXLXNWOWPW
      QWRXBUHZUNABCXEEFUIUJXCXFXIXDEXCCDXLXNUKULXCPPDCQOZNOZEOZXQXPMZEOZXHXKXCX
      RXQPQOZRKZSKXQRKZSKZXTXCABEPXQFXCUMZPIJZXCUOUPZXCPXPYEXCDCXNXLXMUQZUGZXCP
      XPYEYHXCXPPXCDCXNXLXMXCCDXOURUSURZUNZUTXCYBYCSXCYAXQRXCXQYIVAVBVBXCYDXSXQ
      QORKSKZXTXCXPGHXPUCKZPLPXPLVCYDYLLYHXCYMXAWTQOWTWTQOPXCDCXNXLXMVDXCXAWTWT
      QXCWTXAWOWSXBVEVFVGXCWTXCWTXCCXLVHVIXCCXLXMVJVKVLXCPXPYJVMXPVNVOXCABEXQXS
      FYIYKXCXPYHVPZXCXPYHXCDCXNXLWOWPWQWRXBVQXMVRVSZUTVTVLXCCPTOZCXQTOZEOZXHXR
      XCYPCYQXEEXCCXLWAZXCYQYPCXPTOZNOXEXCCPXPXLYEYHWBXCYPCYTDNYSXCDCXNXLXMWEZW
      CWDZWCXCPGHYFXQGHZXQIJZWMWPYRXRLYEYGYIYKXLXMABPXQCEFWFWGWHXCYQCXSTOZEOZXK
      XTXCYQXEUUEXJEUUBXCUUEYTMXJXCCXPXLYHWIXCYTDUUAWJWDWCXCUUCUUDXSGHXSIJWMWPU
      UFXTLYIYKYNYOXLXMABXQXSCEFWFWGWHWKWL $.

    $( Isosceles triangle theorem.  This is Metamath 100 proof #65.
       (Contributed by Saveliy Skresanov, 1-Jan-2017.) $)
    isosctr $p |- ( ( ( A e. CC /\ B e. CC /\ C e. CC ) /\
                     ( A =/= C /\ B =/= C /\ A =/= B ) /\
                     ( abs ` ( A - C ) ) = ( abs ` ( B - C ) ) )
                 -> ( ( C - A ) F ( B - A ) ) = ( ( A - B ) F ( C - B ) ) ) $=
      ( cc wcel w3a wne cmin co cabs cfv wceq cneg cc0 subcld subne0d simp11 wb
      simp13 simp12 simp21 simp22 simp23 subcan2 3ad2ant1 necon3bid isosctrlem3
      mpbird simp3 syl231anc negsubdi2d nnncan2d oveq12d 3eqtr3d ) CHIZDHIZEHIZ
      JZCEKZDEKZCDKZJZCELMZNODELMZNOPZJZVGQZVHVGLMZFMZVGVHLMZVHQZFMZECLMZDCLMZF
      MCDLMZEDLMZFMVJVGHIVHHIVGRKVHRKVGVHKZVIVMVPPVJCEUSUTVAVFVIUAZUSUTVAVFVIUC
      ZSVJDEUSUTVAVFVIUDZWCSVJCEWBWCVBVCVDVEVIUETVJDEWDWCVBVCVDVEVIUFTVJWAVEVBV
      CVDVEVIUGVJVGVHCDVBVFVGVHPCDPUBVICDEUHUIUJULVBVFVIUMABVGVHFGUKUNVJVKVQVLV
      RFVJCEWBWCUOVJDCEWDWBWCUPUQVJVNVSVOVTFVJCDEWBWDWCUPVJDEWDWCUOUQUR $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y E $.
    $d x y G $.
    ssscongptld.angdef $e |- F = ( x e. ( CC \ { 0 } ) , y e. ( CC \ { 0 } )
                             |-> ( Im ` ( log ` ( y / x ) ) ) ) $.
    ssscongptld.1 $e |- ( ph -> A e. CC ) $.
    ssscongptld.2 $e |- ( ph -> B e. CC ) $.
    ssscongptld.3 $e |- ( ph -> C e. CC ) $.
    ssscongptld.4 $e |- ( ph -> D e. CC ) $.
    ssscongptld.5 $e |- ( ph -> E e. CC ) $.
    ssscongptld.6 $e |- ( ph -> G e. CC ) $.
    ssscongptld.7 $e |- ( ph -> A =/= B ) $.
    ssscongptld.8 $e |- ( ph -> B =/= C ) $.
    ssscongptld.9 $e |- ( ph -> D =/= E ) $.
    ssscongptld.10 $e |- ( ph -> E =/= G ) $.
    ssscongptld.11 $e |- ( ph -> ( abs ` ( A - B ) ) = ( abs ` ( D - E ) ) ) $.
    ssscongptld.12 $e |- ( ph -> ( abs ` ( B - C ) ) = ( abs ` ( E - G ) ) ) $.
    ssscongptld.13 $e |- ( ph -> ( abs ` ( C - A ) ) = ( abs ` ( G - D ) ) ) $.
    $( If two triangles have equal sides, one angle in one triangle has the
       same cosine as the corresponding angle in the other triangle.  This is a
       partial form of the SSS congruence theorem.

       This theorem is proven by using ~ lawcos on both triangles to express
       one side in terms of the other two, and then equating these expressions
       and reducing this algebraically to get an equality of cosines of angles.
       (Contributed by David Moews, 28-Feb-2017.) $)
    ssscongptld $p |- ( ph -> ( cos ` ( ( A - B ) F ( C - B ) ) ) =
                              ( cos ` ( ( D - E ) F ( G - E ) ) ) ) $=
      ( cmin co ccos cfv cabs cmul cpi cneg cc cr negpitopissre ax-resscn sstri
      subcld subne0d necomd angcld sseldi coscld abscld absne0d mulne0d abssubd
      cioc recnd mulcld 3eqtr4d oveq12d oveq1d c2 eqeltrd 2cnd cc0 wne 2ne0 a1i
      cexp caddc sqcld addcld wcel wceq lawcos syl32anc 3eqtr3d eqtr3d mulcanad
      eqid subcand ) ADEUEUFZFEUEUFZIUFZUGUHZGHUEUFZJHUEUFZIUFZUGUHZWRUIUHZWSUI
      UHZUJUFZAWPAUKULUKVHUFZUMWPXEUNUMUOUPUQZABCIWNWOKADELMURADELMRUSAFENMURAF
      ENMAEFSUTZUSVAVBVCZAWTAXEUMWTXFABCIWRWSKAGHOPURZAGHOPTUSZAJHQPURZAJHQPAHJ
      UAUTZUSZVAVBVCZAXBXCAXBAWRXIVDVIZAXCAWSXKVDVIZVJZAXBXCXOXPAWRXIXJVEAWSXKX
      MVEVFAWNUIUHZWOUIUHZUJUFZWQUJUFZXDWQUJUFXDXAUJUFZAXTXDWQUJAXRXBXSXCUJUBAE
      FUEUFUIUHHJUEUFUIUHXSXCUCAFENMVGAJHQPVGVKZVLVMAYAYBVNAXTWQAXRXSAXRXBUMUBX
      OVOAXSXCUMYCXPVOVJXHVJZAXDXAXQXNVJZAVPZVNVQVRAVSVTAXBVNWAUFZXCVNWAUFZWBUF
      ZVNYAUJUFZVNYBUJUFZAYGYHAXBXOWCAXCXPWCWDAVNYAYFYDVJAVNYBYFYEVJAXRVNWAUFZX
      SVNWAUFZWBUFZYJUEUFZYIYJUEUFYIYKUEUFZAYNYIYJUEAYLYGYMYHWBAXRXBVNWAUBVMAXS
      XCVNWAYCVMVLVMAFDUEUFUIUHZVNWAUFZJGUEUFUIUHZVNWAUFZYOYPAYQYSVNWAUDVMAFUMW
      EDUMWEEUMWEFEVRDEVRYRYOWFNLMXGRBCFDEIWPXRXSYQKXRWLXSWLYQWLWPWLWGWHAJUMWEG
      UMWEHUMWEJHVRGHVRYTYPWFQOPXLTBCJGHIWTXBXCYSKXBWLXCWLYSWLWTWLWGWHWIWJWMWKW
      JWK $.
  $}

  ${
    affineequiv.A $e |- ( ph -> A e. CC ) $.
    affineequiv.B $e |- ( ph -> B e. CC ) $.
    affineequiv.C $e |- ( ph -> C e. CC ) $.
    affineequiv.D $e |- ( ph -> D e. CC ) $.
    $( Equivalence between two ways of expressing ` B ` as an affine
       combination of ` A ` and ` C ` .  (Contributed by David Moews,
       28-Feb-2017.) $)
    affineequiv $p |- ( ph -> ( B = ( ( D x. A ) + ( ( 1 - D ) x. C ) )
                             <-> ( C - B ) = ( D x. ( C - A ) ) ) ) $=
      ( cmul co c1 cmin caddc wceq cc0 mulcld subsubd subcld addcomd 1cnd eqtrd
      eqtr2d subdird mulid2d oveq1d oveq2d pncan3d subdid oveq12d eqtr3d eqeq2d
      addsubassd 3eqtr4d addid1d eqeq1d 0cnd addcand 3bitr2d eqcom syl6bb bitrd
      subeq0ad ) ACEBJKZLEMKDJKZNKZOZDCMKZEDBMKZJKZMKZPOZVHVJOAVGPVKOZVLAVGCCVK
      NKZOCPNKZVNOVMAVFVNCAVDDEDJKZMKZNKZDVPVDMKZMKZVFVNAVTVQVDNKVRADVPVDHAEDIH
      QZAEBIFQZRAVQVDADVPHWASWBTUCAVEVQVDNAVELDJKZVPMKVQALEDAUAIHUDAWCDVPMADHUE
      UFUBUGACVHNKZVJMKVNVTACVHVJGADCHGSZAEVIIADBHFSQZUMAWDDVJVSMACDGHUHAEDBIHF
      UIUJUKUNULAVOCVNACGUOUPACPVKGAUQAVHVJWEWFSURUSPVKUTVAAVHVJWEWFVCVB $.

    $( Equivalence between two ways of expressing ` B ` as an affine
       combination of ` A ` and ` C ` .  (Contributed by David Moews,
       28-Feb-2017.) $)
    affineequiv2 $p |- ( ph -> ( B = ( ( D x. A ) + ( ( 1 - D ) x. C ) )
                              <-> ( B - A ) = ( ( 1 - D ) x. ( C - A ) ) ) ) $=
      ( cmul co c1 cmin caddc wceq affineequiv subcld mulcld subcanad nnncan1d
      1cnd subdird mulid2d oveq1d eqtr2d eqeq12d 3bitr2d ) ACEBJKLEMKZDJKNKODCM
      KZEDBMKZJKZOUJUIMKZUJUKMKZOCBMKZUHUJJKZOABCDEFGHIPAUJUIUKADBHFQZADCHGQAEU
      JIUPRSAULUNUMUOADBCHFGTAUOLUJJKZUKMKUMALEUJAUAIUPUBAUQUJUKMAUJUPUCUDUEUFU
      G $.
  $}

  ${
    angpieqvdlem.A $e |- ( ph -> A e. CC ) $.
    angpieqvdlem.B $e |- ( ph -> B e. CC ) $.
    angpieqvdlem.C $e |- ( ph -> C e. CC ) $.
    angpieqvdlem.AneB $e |- ( ph -> A =/= B ) $.
    angpieqvdlem.AneC $e |- ( ph -> A =/= C ) $.
    $( Equivalence used in the proof of ~ angpieqvd .  (Contributed by David
       Moews, 28-Feb-2017.) $)
    angpieqvdlem $p |- ( ph -> ( -u ( ( C - B ) / ( A - B ) ) e. RR+ <->
                               ( ( C - B ) / ( C - A ) ) e. ( 0 (,) 1 ) ) ) $=
      ( cmin co cdiv cneg crp wcel c1 subcld subne0d oveq1d eqtrd divcld negcld
      caddc cc0 cioo necomd subneintr2d divne1d negned xov1plusxeqvd negsubdi2d
      1cnd divnegd dividd divsubdird negsubd 3eqtr4rd nnncan2d oveq12d divcan7d
      div2subd 3eqtrrd eleq1d bitr4d ) ADCJKZBCJKZLKZMZNOVHPVHUCKZLKZUDPUEKZOVE
      DBJKLKZVKOAVHAVGAVEVFADCGFQZABCEFQZABCEFHRZUAZUBAVGPVPAULZAVEVFVMVNVOADBC
      GEFABDIUFUGUHUIUJAVLVJVKAVJCDJKZVFLKZBDJKZVFLKZLKVRVTLKVLAVHVSVIWALAVHVEM
      ZVFLKVSAVEVFVMVNVOUMAWBVRVFLADCGFUKSTAVIVFVEJKZVFLKZWAAVFVFLKZVGJKPVGJKWD
      VIAWEPVGJAVFVNVOUNSAVFVEVFVNVMVNVOUOAPVGVQVPUPUQAWCVTVFLABDCEGFURSTUSAVRV
      TVFACDFGQABDEGQVNABDEGIRVOUTACDBDFGEGIVAVBVCVD $.
  $}

  ${
    angpieqvd.angdef $e |- F = ( x e. ( CC \ { 0 } ) , y e. ( CC \ { 0 } ) |->
                           ( Im ` ( log ` ( y / x ) ) ) ) $.

    $d x y A $.  $d x y B $.  $d x y C $.
    angpieqvd.A $e |- ( ph -> A e. CC ) $.
    angpieqvd.B $e |- ( ph -> B e. CC ) $.
    angpieqvd.C $e |- ( ph -> C e. CC ) $.
    angpieqvd.AneB $e |- ( ph -> A =/= B ) $.
    angpieqvd.BneC $e |- ( ph -> B =/= C ) $.
    $( Equivalence used in ~ angpieqvd .  (Contributed by David Moews,
       28-Feb-2017.) $)
    angpieqvdlem2 $p |- ( ph -> ( -u ( ( C - B ) / ( A - B ) ) e. RR+
                                     <-> ( ( A - B ) F ( C - B ) ) = _pi ) ) $=
      ( cmin co wcel cfv cpi wceq subcld cdiv cneg crp clog cim cc0 wne subne0d
      cc wb divcld necomd divne0d lognegb syl2anc angvald eqeq1d bitr4d ) AFENO
      ZDENOZUAOZUBUCPZVAUDQUEQZRSZUTUSGOZRSAVAUIPVAUFUGVBVDUJAUSUTAFEKJTZADEIJT
      ZADEIJLUHZUKAUSUTVFVGAFEKJAEFMULUHZVHUMVAUNUOAVEVCRABCGUTUSHVGVHVFVIUPUQU
      R $.

    $( If the angle at ABC is ` _pi ` , then A is not equal to C. (Contributed
       by David Moews, 28-Feb-2017.) $)
    angpined $p |- ( ph -> ( ( ( A - B ) F ( C - B ) ) = _pi -> A =/= C ) ) $=
      ( cmin co wceq crp wcel wne c1 cpi cdiv angpieqvdlem2 wa wn 1rp cr cc0 wb
      cneg 1re ax-1ne0 rpneg mp2an mpbi cc subcld adantr subne0d simpr diveq1bd
      oveq1d adantlr negeqd simplr eqeltrrd necon3bd mpi necom syl6ib sylbird
      ex ) ADENOZFENOZGOUAPVNVMUBOZUJZQRZDFSZABCDEFGHIJKLMUCAVQFDSZVRAVQVSAVQUD
      ZTUJZQRZUEZVSTQRZWCUFTUGRTUHSWDWCUIUKULTUMUNUOVTWBFDVTFDPZWBVTWEUDZVPWAQW
      FVOTAWEVOTPVQAWEUDZVNVMAVMUPRWEADEIJUQURAVMUHSWEADEIJLUSURWGFDENAWEUTVBVA
      VCVDAVQWEVEVFVLVGVHVLFDVIVJVK $.

    $d w F $.  $d w ph $.  $d w A $.  $d w B $.  $d w C $.

    $( The angle ABC is ` _pi ` iff B is a nontrivial convex combination of A
       and C, i.e., iff B is in the interior of the segment AC. (Contributed by
       David Moews, 28-Feb-2017.) $)
    angpieqvd $p |- ( ph -> ( ( ( A - B ) F ( C - B ) ) = _pi <->
                     E. w e. ( 0 (,) 1 ) B = ( ( w x. A ) +
                                                    ( ( 1 - w ) x. C ) ) ) ) $=
      ( co wceq cmul wcel adantr 3ad2ant1 cmin cpi cv c1 caddc cc0 cioo wrex wa
      cdiv cneg crp angpieqvdlem2 biimpar cc angpined angpieqvdlem mpbid subcld
      wne necomd subne0d divcan1d eqcomd divcld affineequiv mpbird oveq1 oveq1d
      imp oveq2 oveq12d eqeq2d rspcev syl2anc ex cr simpr elioore recn 3syl w3a
      simp3 3adant3 eqnetrrd mulne0bbd divmul3d simp2 subne0ad 3expia rexlimdva
      eqeltrd sylbid impbid ) AEFUAOZGFUAOZHOUBPZFDUCZEQOZUDWRUAOZGQOZUEOZPZDUF
      UDUGOZUHZAWQXEAWQUIZWPGEUAOZUJOZXDRZFXHEQOZUDXHUAOZGQOZUEOZPZXEXFWPWOUJOU
      KULRZXIAXOWQABCEFGHIJKLMNUMUNXFEFGAEUORZWQJSZAFUORZWQKSZAGUORZWQLSZAEFUTZ
      WQMSAWQEGUTABCEFGHIJKLMNUPVJZUQURXFXNWPXHXGQOZPXFYDWPXFWPXGAWPUORZWQAGFLK
      USZSZAXGUORZWQAGELJUSZSZXFGEYAXQXFEGYCVAVBZVCVDXFEFGXHXQXSYAXFWPXGYGYJYKV
      EVFVGXCXNDXHXDWRXHPZXBXMFYLWSXJXAXLUEWRXHEQVHYLWTXKGQWRXHUDUAVKVIVLVMVNVO
      VPAXCWQDXDAWRXDRZUIZXCWPWRXGQOZPZWQYNEFGWRAXPYMJSAXRYMKSAXTYMLSYNYMWRVQRW
      RUORZAYMVRWRUFUDVSWRVTWAZVFAYMYPWQAYMYPWBZXOWQYSXOXIYSXHWRXDYSXHWRPYPAYMY
      PWCZYSWPWRXGAYMYEYPYFTAYMYQYPYRWDZAYMYHYPYITZYSWRXGUUAUUBYSWPYOUFYTAYMWPU
      FUTYPAGFLKAFGNVAVBTWEWFZWGVGAYMYPWHWLYSEFGAYMXPYPJTZAYMXRYPKTZAYMXTYPLTZA
      YMYBYPMTZYSGEYSGEUUFUUDUUCWIVAUQVGYSBCEFGHIUUDUUEUUFUUGAYMFGUTYPNTUMURWJW
      MWKWN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y M $.  $d x y Q $.
    chordthmlem.angdef $e |- F = ( x e. ( CC \ { 0 } ) , y e. ( CC \ { 0 } )
                             |-> ( Im ` ( log ` ( y / x ) ) ) ) $.
    chordthmlem.A $e |- ( ph -> A e. CC ) $.
    chordthmlem.B $e |- ( ph -> B e. CC ) $.
    chordthmlem.Q $e |- ( ph -> Q e. CC ) $.
    chordthmlem.M $e |- ( ph -> M = ( ( A + B ) / 2 ) ) $.
    chordthmlem.ABequidistQ $e |- ( ph -> ( abs ` ( A - Q ) ) =
                                          ( abs ` ( B - Q ) ) ) $.
    chordthmlem.AneB $e |- ( ph -> A =/= B ) $.
    chordthmlem.QneM $e |- ( ph -> Q =/= M ) $.
    $( If M is the midpoint of AB and AQ = BQ, then QMB is a right angle.  The
       proof uses ~ ssscongptld to observe that, since AMQ and BMQ have equal
       sides, the angles QMB and QMA must be equal.  Since they are
       supplementary, both must be right.  (Contributed by David Moews,
       28-Feb-2017.) $)
    chordthmlem $p |- ( ph -> ( ( Q - M ) F ( B - M ) ) e.
                                          { ( _pi / 2 ) , -u ( _pi / 2 ) } ) $=
      ( co cfv wceq c2 cmin ccos cc0 cpi cdiv cneg cpr wcel negpitopissre caddc
      cioc cr cc addcld halfcld eqeltrd subcld subne0d cmul oveq1d times2d 2cnd
      wne 2ne0 divcan1d 3eqtr3d addneintr2d eqnetrd neneqd oveq12 anidms neqned
      nsyl necomd angcld sseldi recnd coscld negsubdi2d addsubeq4d mpbid eqtr4d
      a1i oveq2d cosangneg2d addneintrd neeqtrrd cabs eqidd absnegd ssscongptld
      fveq2d 3eqtr3rd eqnegad wb coseq0negpitopi syl ) AFHUAQZEHUAQZGQZUBRZUCSZ
      WTUDTUEQZXCUFUGUHZAXAAWTAWTAUDUFUDUKQZULWTUIABCGWRWSIAFHLAHDEUJQZTUEQZUMM
      AXFADEJKUNZUOUPZUQZAFHLXIPURZAEHKXIUQZAEHKXIAHEAHEAHHUJQZEEUJQZSZHESZAXMX
      NAXMXFXNAHTUSQXGTUSQXMXFAHXGTUSMUTAHXIVAAXFTXHAVBTUCVCAVDWCVEVFZADEEJKKOV
      GVHVIXPXOHEHEUJVJVKVMVLZVNURZVOZVPVQVRAWRWSUFZGQZUBRWRDHUAQZGQZUBRXAUFXAA
      YBYDUBAYAYCWRGAYAHEUAQZYCAEHKXIVSAXMXFSYCYESXQAHHDEXIXIJKVTWAZWBWDWLABCGW
      RWSIXJXKXLXSWEABCFHDFHGEILXIJLXIKPAHDAXMDDUJQZSZHDSZAXMYGAYGXMAYGXFXMADDE
      JJKOWFXQWGVNVIYIYHHDHDUJVJVKVMVLPXRAWRWHRWIAYCUFZWHRYCWHRHDUAQZWHRYEWHRAY
      CADHJXIUQWJAYJYKWHADHJXIVSWLAYCYEWHYFWLVFNWKWMWNAWTXEUHXBXDWOXTWTWPWQWA
      $.
  $}

  ${
    $d x y Q $.  $d x y P $.  $d x y M $.  $d x y B $.  $d x y A $.
    chordthmlem2.angdef $e |- F = ( x e. ( CC \ { 0 } ) , y e. ( CC \ { 0 } )
                                          |-> ( Im ` ( log ` ( y / x ) ) ) ) $.
    chordthmlem2.A $e |- ( ph -> A e. CC ) $.
    chordthmlem2.B $e |- ( ph -> B e. CC ) $.
    chordthmlem2.Q $e |- ( ph -> Q e. CC ) $.
    chordthmlem2.X $e |- ( ph -> X e. RR ) $.
    chordthmlem2.M $e |- ( ph -> M = ( ( A + B ) / 2 ) ) $.
    chordthmlem2.P $e |- ( ph -> P = ( ( X x. A ) + ( ( 1 - X ) x. B ) ) ) $.
    chordthmlem2.ABequidistQ $e |- ( ph -> ( abs ` ( A - Q ) ) =
                                                       ( abs ` ( B - Q ) ) ) $.
    chordthmlem2.PneM $e |- ( ph -> P =/= M ) $.
    chordthmlem2.QneM $e |- ( ph -> Q =/= M ) $.
    $( If M is the midpoint of AB, AQ = BQ, and P is on the line AB, then QMP
       is a right angle.  This is proven by reduction to the special case
       ~ chordthmlem , where P = B, and using ~ angrtmuld to observe that QMP
       is right iff QMB is.  (Contributed by David Moews, 28-Feb-2017.) $)
    chordthmlem2 $p |- ( ph -> ( ( Q - M ) F ( P - M ) ) e.
                                          { ( _pi / 2 ) , -u ( _pi / 2 ) } ) $=
      ( cmin co cpi c2 cdiv cneg cpr wcel c1 2re a1i cc0 2ne0 rereccld resubcld
      cr wne recnd subcld cmul subdird caddc 2cnd times2d oveq1d eqtr3d oveq12d
      divcan4d addcld divsubdird pnpcan2d 3eqtr2d divrec2d eqtrd wceq cc mulcld
      1cnd eqeltrd affineequiv mpbid halfcld nnncan1d 3eqtr2rd subne0d eqnetrrd
      mulne0bbd subne0ad necomd chordthmlem recne0d mulne0d mulne0bad divcan5rd
      eqnetrd redivcld angrtmuld mpbird ) AGIUAUBZFIUAUBZHUBUCUDUEUBZXAUFUGZUHW
      SEIUAUBZHUBXBUHABCDEGHIKLMNPRAEDAEDMLAUIUDUEUBZJUAUBZEDUAUBZAXEAXDJAUDUDU
      PUHAUJUKUDULUQAUMUKZUNZOUOZURZAEDMLUSZAWTXEXFUTUBZULAXLXDXFUTUBZJXFUTUBZU
      AUBXCEFUAUBZUAUBWTAXDJXFAXDXHURZAJOURZXKVAAXCXMXOXNUAAXCXFUDUEUBZXMAXCEEV
      BUBZUDUEUBZDEVBUBZUDUEUBZUAUBXSYAUAUBZUDUEUBXRAEXTIYBUAAEUDUTUBZUDUEUBEXT
      AEUDMAVCZXGVHAYDXSUDUEAEMVDVEVFPVGAXSYAUDAEEMMVIADELMVIZYEXGVJAYCXFUDUEAE
      DEMLMVKVEVLAXFUDXKYEXGVMVNZAFJDUTUBZUIJUAUBZEUTUBZVBUBZVOXOXNVOQADFEJLAFY
      KVPQAYHYJAJDXQLVQAYIEAUIJAVRXQUSMVQVIVSZMXQVTWAVGAEIFMAIYBVPPAYAYFWBVSZYL
      WCWDZAFIYLYMSWEZWFZWGZWHWITWJABCHWSWTXCKAGINYMUSAFIYLYMUSAEIMYMUSAGINYMTW
      EYOAXCXMULYGAXDXFXPXKAUDYEXGWKYQWLWOAXCWTUEUBZXDXEUEUBZUPAYRXMXLUEUBYSAXC
      XMWTXLUEYGYNVGAXDXEXFXPXJXKAXEXFXJXKYPWMZYQWNVNAXDXEXHXIYTWPVSWQWR $.
  $}

  ${
    $d x y Q $.  $d x y P $.  $d x y M $.  $d x y B $.  $d x y A $.
    chordthmlem3.A $e |- ( ph -> A e. CC ) $.
    chordthmlem3.B $e |- ( ph -> B e. CC ) $.
    chordthmlem3.Q $e |- ( ph -> Q e. CC ) $.
    chordthmlem3.X $e |- ( ph -> X e. RR ) $.
    chordthmlem3.M $e |- ( ph -> M = ( ( A + B ) / 2 ) ) $.
    chordthmlem3.P $e |- ( ph -> P = ( ( X x. A ) + ( ( 1 - X ) x. B ) ) ) $.
    chordthmlem3.ABequidistQ $e |- ( ph -> ( abs ` ( A - Q ) ) =
                                           ( abs ` ( B - Q ) ) ) $.
    $( If M is the midpoint of AB, AQ = BQ, and P is on the line AB, then
       PQ<HTML><sup>2</sup></HTML> = QM<HTML><sup>2</sup></HTML> ` + `
       PM<HTML><sup>2</sup></HTML>.  This follows from ~ chordthmlem2 and the
       Pythagorean theorem ( ~ pythag ) in the case where P and Q are unequal
       to M. If either P or Q equals M, the result is trivial.  (Contributed
       by David Moews, 28-Feb-2017.) $)
    chordthmlem3 $p |- ( ph -> ( ( abs ` ( P - Q ) ) ^ 2 ) =
                                ( ( ( abs ` ( Q - M ) ) ^ 2 ) +
                                  ( ( abs ` ( P - M ) ) ^ 2 ) ) ) $=
      ( cmin co cabs cc wcel adantr vx vy cfv c2 cexp caddc wceq wa cdiv addcld
      cc0 halfcld eqeltrd subcld abscld recnd sqcld addid1d cmul c1 mulcld 1cnd
      simpr subeq0bd abs00bd sq0id oveq2d abssubd fveq2d eqtr3d oveq1d 3eqtr4rd
      addid2d wne csn cdif cv clog cim cmpt2 cpi cneg cpr simprl simprr eqid cr
      chordthmlem2 pythag syl321anc pm2.61da2ne ) ADEOPZQUCZUDUEPZEFOPZQUCZUDUE
      PZDFOPZQUCZUDUEPZUFPZUGZDFEFADFUGZUHZWQUKUFPWQXAWNXDWQAWQRSXCAWPAWPAWOAEF
      JAFBCUFPZUDUIPZRLAXEABCHIUJULUMZUNUOUPUQTURXDWTUKWQUFXDWSXDWRXDDFADRSZXCA
      DGBUSPZUTGOPZCUSPZUFPZRMAXIXKAGBAGKUPZHVAAXJCAUTGAVBXMUNIVAUJUMZTZAXCVCZV
      DVEVFVGXDWMWPUDUEXDEDOPZQUCWMWPXDEDAERSZXCJTXOVHXDXQWOQXDDFEOXPVGVIVJVKVL
      AEFUGZUHZUKWTUFPWTXAWNXTWTAWTRSXSAWSAWSAWRADFXNXGUNUOUPUQTVMXTWQUKWTUFXTW
      PXTWOXTEFAXRXSJTAXSVCZVDVEVFVKXTWMWSUDUEXTWLWRQXTEFDOYAVGVIVKVLADFVNZEFVN
      ZUHZUHZXHXRFRSZYBYCWOWRUAUBRUKVOVPZYGUBVQUAVQUIPVRUCVSUCVTZPZWAUDUIPZYJWB
      WCSXBAXHYDXNTAXRYDJTZAYFYDXGTAYBYCWDZAYBYCWEZYEUAUBBCDEYHFGYHWFZABRSYDHTA
      CRSYDITYKAGWGSYDKTAFXFUGYDLTADXLUGYDMTABEOPQUCCEOPQUCUGYDNTYLYMWHUAUBDEFY
      HYIWPWSWMYNWPWFWSWFWMWFYIWFWIWJWK $.
  $}

  ${
    chordthmlem4.A $e |- ( ph -> A e. CC ) $.
    chordthmlem4.B $e |- ( ph -> B e. CC ) $.
    chordthmlem4.X $e |- ( ph -> X e. ( 0 [,] 1 ) ) $.
    chordthmlem4.M $e |- ( ph -> M = ( ( A + B ) / 2 ) ) $.
    chordthmlem4.P $e |- ( ph -> P = ( ( X x. A ) + ( ( 1 - X ) x. B ) ) ) $.
    $( If P is on the segment AB and M is the midpoint of AB, then PA ` x. `
       PB = BM<HTML><sup>2</sup></HTML> ` - ` PM<HTML><sup>2</sup></HTML>.
       If all lengths are reexpressed as fractions of AB, this reduces to the
       identity ` X x. ( 1 - X ) = ( 1 / 2 ) `<HTML><sup>2</sup></HTML>
       ` - ( ( 1 / 2 ) - X ) `<HTML><sup>2</sup></HTML>.  (Contributed by
       David Moews, 28-Feb-2017.) $)
    chordthmlem4 $p |- ( ph -> ( ( abs ` ( P - A ) ) x. ( abs ` ( P - B ) ) ) =
                                ( ( ( abs ` ( B - M ) ) ^ 2 ) -
                                  ( ( abs ` ( P - M ) ) ^ 2 ) ) ) $=
      ( cmin co cabs cfv cmul c1 c2 cexp recnd wcel 1re a1i cc0 unitssre sseldi
      cr cicc resubcld abscld subcld mul4d caddc cc mulcld eqeltrd affineequiv2
      wceq addcld mpbid fveq2d absmuld eqtrd abssubd affineequiv 3eqtrd oveq12d
      sqvald oveq2d 3eqtr4d cdiv halfcld sqcld subdird subsq syl2anc addsubassd
      rehalfcld 2halvesd oveq1d eqtr3d nncand eqtr2d cle wbr w3a elicc2i simp3d
      0re sylib abssubge0d simp2d absidd absresq syl 2cnd 2ne0 divcan4d times2d
      wne divsubdird pnpcan2d 3eqtr2d divrec2d halfgt0 sqmuld nnncan1d 3eqtr2rd
      clt ltled 3eqtr4rd eqtr4d ) ADBLMZNOZDCLMNOZPMZQFLMZNOZFNOZPMZCBLMZNOZRSM
      ZPMZCELMZNOZRSMZDELMZNOZRSMZLMZAXRYBPMZXSYBPMZPMXTYBYBPMZPMXPYDAXRYBXSYBA
      XRAXQAXQAQFQUGUAAUBUCZAUDQUHMZUGFUEIUFZUITZUJTAYBAYAACBHGUKZUJTZAXSAFAFYQ
      TZUJTYTULAXNYLXOYMPAXNXQYAPMZNOYLAXMUUBNADFBPMZXQCPMZUMMZURZXMUUBURKABDCF
      GADUUEUNKAUUCUUDAFBUUAGUOAXQCYRHUOUSUPZHUUAUQUTVAAXQYAYRYSVBVCAXOCDLMZNOF
      YAPMZNOYMADCUUGHVDAUUHUUINAUUFUUHUUIURKABDCFGUUGHUUAVEUTZVAAFYAUUAYSVBVFV
      GAYCYNXTPAYBYTVHVIVJAQRVKMZRSMZUUKFLMZNOZRSMZLMZYCPMUULYCPMZUUOYCPMZLMYDY
      KAUULUUOYCAUUKAQAQYOTZVLZVMAUUNAUUNAUUMAUUMAUUKFAQYOVRZYQUIZTZUJTZVMAYBYT
      VMVNAXTUUPYCPAXQFPMZUULUUMRSMZLMZXTUUPAUVGUUKUUMUMMZUUKUUMLMZPMZUVEAUUKUN
      UAUUMUNUAUVGUVJURUUTUVCUUKUUMVOVPAUVHXQUVIFPAUUKUUKUMMZFLMUVHXQAUUKUUKFUU
      TUUTUUAVQAUVKQFLAQUUSVSVTWAAUUKFUUTUUAWBVGWCAXRXQXSFPAFQYQYOAFUGUAZUDFWDW
      EZFQWDWEZAFYPUAUVLUVMUVNWFIUDQFWIUBWGWJZWHWKAFYQAUVLUVMUVNUVOWLWMVGAUUOUV
      FUULLAUUMUGUAUUOUVFURUVBUUMWNWOVIVJVTAYGUUQYJUURLAYGUUKYBPMZRSMUUQAYFUVPR
      SAYFUUKYAPMZNOUUKNOZYBPMUVPAYEUVQNAYEYARVKMZUVQAYECCUMMZRVKMZBCUMMZRVKMZL
      MUVTUWBLMZRVKMUVSACUWAEUWCLACRPMZRVKMCUWAACRHAWPZRUDWTAWQUCZWRAUWEUVTRVKA
      CHWSVTWAJVGAUVTUWBRACCHHUSABCGHUSZUWFUWGXAAUWDYARVKACBCHGHXBVTXCAYARYSUWF
      UWGXDVCZVAAUUKYAUUTYSVBAUVRUUKYBPAUUKUVAAUDUUKUDUGUAAWIUCUVAUDUUKXIWEAXEU
      CXJWMVTVFVTAUUKYBUUTYTXFVCAYJUUNYBPMZRSMUURAYIUWJRSAYIUUMYAPMZNOUWJAYHUWK
      NAUWKUVQUUILMYEUUHLMYHAUUKFYAUUTUUAYSVNAYEUVQUUHUUILUWIUUJVGACEDHAEUWCUNJ
      AUWBUWHVLUPUUGXGXHVAAUUMYAUVCYSVBVCVTAUUNYBUVDYTXFVCVGXKXL $.
  $}

  ${
    chordthmlem5.A $e |- ( ph -> A e. CC ) $.
    chordthmlem5.B $e |- ( ph -> B e. CC ) $.
    chordthmlem5.Q $e |- ( ph -> Q e. CC ) $.
    chordthmlem5.X $e |- ( ph -> X e. ( 0 [,] 1 ) ) $.
    chordthmlem5.P $e |- ( ph -> P = ( ( X x. A ) + ( ( 1 - X ) x. B ) ) ) $.
    chordthmlem5.ABequidistQ $e |- ( ph -> ( abs ` ( A - Q ) ) =
                                           ( abs ` ( B - Q ) ) ) $.
    $( If P is on the segment AB and AQ = BQ, then PA ` x. ` PB =
       BQ<HTML><sup>2</sup></HTML> ` - ` PQ<HTML><sup>2</sup></HTML>.  This
       follows from two uses of ~ chordthmlem3 to show that
       PQ<HTML><sup>2</sup></HTML> = QM<HTML><sup>2</sup></HTML> ` + `
       PM<HTML><sup>2</sup></HTML> and BQ<HTML><sup>2</sup></HTML> =
       QM<HTML><sup>2</sup></HTML> ` + ` BM<HTML><sup>2</sup></HTML>, so
       BQ<HTML><sup>2</sup></HTML> ` - ` PQ<HTML><sup>2</sup></HTML> =
       (QM<HTML><sup>2</sup></HTML> ` + ` BM<HTML><sup>2</sup></HTML>) ` - `
       (QM<HTML><sup>2</sup></HTML> ` + ` PM<HTML><sup>2</sup></HTML>) =
       BM<HTML><sup>2</sup></HTML> ` - ` PM<HTML><sup>2</sup></HTML>,
       which equals PA ` x. ` PB by ~ chordthmlem4 .  (Contributed by David
       Moews, 28-Feb-2017.) $)
    chordthmlem5 $p |- ( ph -> ( ( abs ` ( P - A ) ) x. ( abs ` ( P - B ) ) ) =
                                ( ( ( abs ` ( B - Q ) ) ^ 2 ) -
                                  ( ( abs ` ( P - Q ) ) ^ 2 ) ) ) $=
      ( caddc co c2 cmin cabs cfv cmul c1 cdiv cexp addcld halfcld subcld recnd
      abscld sqcld cc cc0 cicc unitssre sseldi mulcld 1cnd eqeltrd pnpcand 0red
      cr eqidd mul02d subid1d oveq1d mulid2d eqtrd oveq12d addid2d chordthmlem3
      eqtr2d chordthmlem4 3eqtr4rd ) AEBCMNZOUANZPNZQRZOUBNZCVMPNZQRZOUBNZMNZVP
      DVMPNZQRZOUBNZMNZPNVSWCPNCEPNQROUBNZDEPNQROUBNZPNDBPNQRDCPNQRSNAVPVSWCAVO
      AVOAVNAEVMIAVLABCGHUCUDZUEUGUFUHAVRAVRAVQACVMHWGUEUGUFUHAWBAWBAWAADVMADFB
      SNZTFPNZCSNZMNUIKAWHWJAFBAFAUJTUKNUSFULJUMZUFZGUNAWICATFAUOZWLUEHUNUCUPWG
      UEUGUFUHUQAWEVTWFWDPABCCEVMUJGHIAURAVMUTZAUJBSNZTUJPNZCSNZMNUJCMNCAWOUJWQ
      CMABGVAAWQTCSNCAWPTCSATWMVBVCACHVDVEVFACHVGVILVHABCDEVMFGHIWKWNKLVHVFABCD
      VMFGHJWNKVJVK $.
  $}

  ${
    $d A v w x y $.  $d B v w x y $.  $d C v w x y $.  $d D v w x y $.
    $d F v w $.  $d ph v w $.  $d P v w x y $.
    chordthm.angdef $e |- F = ( x e. ( CC \ { 0 } ) , y e. ( CC \ { 0 } ) |->
                          ( Im ` ( log ` ( y / x ) ) ) ) $.
    chordthm.A $e |- ( ph -> A e. CC ) $.
    chordthm.B $e |- ( ph -> B e. CC ) $.
    chordthm.C $e |- ( ph -> C e. CC ) $.
    chordthm.D $e |- ( ph -> D e. CC ) $.
    chordthm.P $e |- ( ph -> P e. CC ) $.
    chordthm.AneP $e |- ( ph -> A =/= P ) $.
    chordthm.BneP $e |- ( ph -> B =/= P ) $.
    chordthm.CneP $e |- ( ph -> C =/= P ) $.
    chordthm.DneP $e |- ( ph -> D =/= P ) $.
    chordthm.APB $e |- ( ph -> ( ( A - P ) F ( B - P ) ) = _pi ) $.
    chordthm.CPD $e |- ( ph -> ( ( C - P ) F ( D - P ) ) = _pi ) $.
    chordthm.Q $e |- ( ph -> Q e. CC ) $.
    chordthm.ABcirc $e |- ( ph -> ( abs ` ( A - Q ) ) =
                                  ( abs ` ( B - Q ) ) ) $.
    chordthm.ACcirc $e |- ( ph -> ( abs ` ( A - Q ) ) =
                                  ( abs ` ( C - Q ) ) ) $.
    chordthm.ADcirc $e |- ( ph -> ( abs ` ( A - Q ) ) =
                                  ( abs ` ( D - Q ) ) ) $.
    $( The intersecting chords theorem.

       If points A, B, C, and D lie on a circle (with center Q, say), and
       the point P is on the interior of the segments AB and CD, then the two
       products of lengths PA ` x. ` PB and PC ` x. ` PD are equal.

       The Euclidean plane is identified with the complex plane, and the fact
       that P is on AB and on CD is expressed by the hypothesis that the angles
       APB and CPD are equal to ` _pi ` .

       The result is proven by using ~ chordthmlem5 twice to show that PA
       ` x. ` PB and PC ` x. ` PD both equal BQ<HTML><sup>2</sup></HTML> ` - `
       PQ<HTML><sup>2</sup></HTML>.
       This is similar to the proof of the theorem given in Euclid's
       _Elements_, where it is Proposition III.35.
       This is Metamath 100 proof #55.  (Contributed by David
       Moews, 28-Feb-2017.) $)
    chordthm $p |- ( ph -> ( ( abs ` ( P - A ) ) x. ( abs ` ( P - B ) ) )
                         = ( ( abs ` ( P - C ) ) x. ( abs ` ( P - D ) ) ) ) $=
      ( vv vw cv cmul co cmin caddc wceq cabs cfv cc0 cioo cpi necomd angpieqvd
      c1 wrex mpbid wcel wa adantr c2 cexp ad2antrr eqtr3d oveq1d cicc ioossicc
      cc simprl sseldi simprr chordthmlem5 simplrl simplrr 3eqtr4d rexlimddv )
      AHUGUIZFUJUKVBWDULUKGUJUKUMUKUNZHDULUKUOUPHEULUKUOUPUJUKZHFULUKUOUPHGULUK
      UOUPUJUKZUNZUGUQVBURUKZAFHULUKGHULUKJUKUSUNWEUGWIVCUBABCUGFHGJKNPOSAGHTUT
      VAVDAWDWIVEZWEVFZVFZHUHUIZDUJUKVBWMULUKEUJUKUMUKUNZWHUHWIAWNUHWIVCZWKADHU
      LUKEHULUKJUKUSUNWOUAABCUHDHEJKLPMQAEHRUTVAVDVGWLWMWIVEZWNVFZVFZEIULUKUOUP
      ZVHVIUKZHIULUKUOUPVHVIUKZULUKGIULUKUOUPZVHVIUKZXAULUKWFWGWRWTXCXAULWRWSXB
      VHVIWRDIULUKUOUPZWSXBAXDWSUNWKWQUDVJZAXDXBUNWKWQUFVJZVKVLVLWRDEHIWMADVOVE
      WKWQLVJAEVOVEWKWQMVJAIVOVEWKWQUCVJZWRWIUQVBVMUKZWMUQVBVNZWLWPWNVPVQWLWPWN
      VRXEVSWRFGHIWDAFVOVEWKWQNVJAGVOVEWKWQOVJXGWRWIXHWDXIAWJWEWQVTVQAWJWEWQWAW
      RXDFIULUKUOUPZXBAXDXJUNWKWQUEVJXFVKVSWBWCWC $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C x y $.
    heron.f $e |- F = ( x e. ( CC \ { 0 } ) , y e. ( CC \ { 0 } ) |->
      ( Im ` ( log ` ( y / x ) ) ) ) $.
    heron.x $e |- X = ( abs ` ( B - C ) ) $.
    heron.y $e |- Y = ( abs ` ( A - C ) ) $.
    heron.z $e |- Z = ( abs ` ( A - B ) ) $.
    heron.o $e |- O = ( ( B - C ) F ( A - C ) ) $.
    heron.s $e |- S = ( ( ( X + Y ) + Z ) / 2 ) $.
    heron.a $e |- ( ph -> A e. CC ) $.
    heron.b $e |- ( ph -> B e. CC ) $.
    heron.c $e |- ( ph -> C e. CC ) $.
    heron.ac $e |- ( ph -> A =/= C ) $.
    heron.bc $e |- ( ph -> B =/= C ) $.
    $( Heron's formula gives the area of a triangle given only the side
       lengths.  If points A, B, C form a triangle, then the area of the
       triangle, represented here as ` ( 1 / 2 ) x. X x. Y x. abs ( sin O ) ` ,
       is equal to the square root of
       ` S x. ( S - X ) x. ( S - Y ) x. ( S - Z ) ` , where
       ` S = ( X + Y + Z ) / 2 ` is half the perimeter of the triangle.  Based
       on work by Jon Pennant.  This is Metamath 100 proof #57.  (Contributed
       by Mario Carneiro, 10-Mar-2019.) $)
    heron $p |- ( ph ->
      ( ( ( 1 / 2 ) x. ( X x. Y ) ) x. ( abs ` ( sin ` O ) ) ) =
      ( sqrt ` ( ( S x. ( S - X ) ) x. ( ( S - Y ) x. ( S - Z ) ) ) ) ) $=
      ( c1 c2 cdiv co cmul csin cfv cabs cexp cmin 1red rehalfcld subcld abscld
      csqrt syl5eqel remulcld cpi cneg cioc negpitopissre subne0d angcld sseldi
      cr recnd sincld cc0 cle wbr 0re halfre halfgt0 ltleii a1i absge0d mulge0d
      syl6breqr sqrtsqd wcel halfcn mulcld sqmuld 2cnd wne 2ne0 sqdivd divrec2d
      cc c4 oveq1d wceq sq2 oveq2d 3eqtr3d resincld absresq oveq12d sqcld caddc
      syl 4cn readdcld 4ne0 eqtr2d mulassd ccos addcld sincossq 2timesd ppncand
      coscld adddid eqtr4d pnncand 2t2e4 subdid sqvald eqtrd mul4d subsq nncand
      3eqtr4d mulcomd syl2anc subsubd mulid1d addcomd lawcos syl32anc addcan2ad
      addsubassd add32d 3eqtrd eqtr3d pnpcan2d resubcld binom2 divcan2d addassd
      oveq2i syl5eq pnpcand 3eqtr2d subsub2d binom2sub subsub3d mul12d mulcanad
      div23d divcan3d fveq2d ) AUDUEUFUGZJKUHUGZUHUGZIUIUJZUKUJZUHUGZUEULUGZURU
[encoded data, 4960 characters]
      VEUVFAGKUXJUVQYTAGLUXJUXHYTUTUTVIUXCUXRUUNWRYQUUOYR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Solutions of quadratic, cubic, and quartic equations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    quad.a $e |- ( ph -> A e. CC ) $.
    quad.z $e |- ( ph -> A =/= 0 ) $.
    quad.b $e |- ( ph -> B e. CC ) $.
    quad.c $e |- ( ph -> C e. CC ) $.
    quad.x $e |- ( ph -> X e. CC ) $.
    ${
      quad2.d $e |- ( ph -> D e. CC ) $.
      quad2.2 $e |- ( ph ->
        ( D ^ 2 ) = ( ( B ^ 2 ) - ( 4 x. ( A x. C ) ) ) ) $.
      $( The quadratic equation, without specifying the particular branch ` D `
         to the square root.  (Contributed by Mario Carneiro, 23-Apr-2015.) $)
      quad2 $p |- ( ph -> ( ( ( A x. ( X ^ 2 ) ) + ( ( B x. X ) + C ) ) = 0 <->
        ( X = ( ( -u B + D ) / ( 2 x. A ) ) \/
          X = ( ( -u B - D ) / ( 2 x. A ) ) ) ) ) $=
        ( c2 co cmul caddc wceq cc wcel cexp cc0 cneg cmin wo 2cn mulcl sylancr
        cdiv mulcld addcld sqcld subeq0ad 0cnd 4cn a1i wne 4ne0 mulne0d mulcand
        addassd pnncand sqmuld sq2 sqvald oveq12d sqmul mulassd 3eqtr4d 3eqtrrd
        oveq1d adddid 2t2e4 oveq1i syl5eqr eqtrd mul32d oveq2d 3eqtr3d 3eqtr4rd
        c4 binom2 syl2anc addcomd mul01d eqeq12d bitr3d eqeq1d wb negcld subcld
        subnegd 3bitr4d sqeqor subaddd 2ne0 divmuld eqcom 3bitr4g bitr4d 3bitrd
        negsubd orbi12d ) ABFNUAOZPOZCFPOZDQOZQOZUBRZNBPOZFPOZCUCZUDOZNUAOZENUA
        OZRZXMERZXMEUCZRZUEZFXLEQOZXJUIOZRZFXLEUDOZXJUIOZRZUEAXKCQOZNUAOZXOUDOZ
        UBRZYHXORXIXPAYHXOAYGAXKCAXJFANSTZBSTZXJSTUFGNBUGUHZKUJZIUKULAELULUMAWA
        BPOZXHPOZYOUBPOZRXIYJAXHUBYOAXEXGABXDGAFKULZUJZAXFDACFIKUJZJUKZUKAUNAWA
        STZYLYOSTUOGWABUGUHZAWABUUBAUOUPZGWAUBUQAURUPHUSUTAYPYIYQUBAYOXEPOZYOXG
        POZQOZCNUAOZXKNUAOZNXKCPOZPOZQOZQOZUUHWABDPOZPOZUDOZUDOZYPYIAUULUUOQOUU
        IUUKUUOQOZQOUUQUUGAUUIUUKUUOAXKYNULZAYKUUJSTUUKSTUFAXKCYNIUJNUUJUGUHZAU
        UBUUNSTUUOSTUOABDGJUJWAUUNUGUHZVAAUUHUULUUOACIULZAUUIUUKUUSUUTUKZUVAVBA
        UUEUUIUUFUURQAUUIXJNUAOZXDPOYOBPOZXDPOUUEAXJFYMKVCAUVDUVEXDPANNUAOZBNUA
        OZPOZWABBPOZPOUVDUVEAUVFWAUVGUVIPUVFWARAVDUPABGVEVFAYKYLUVDUVHRUFGNBVGU
        HAWABBUUDGGVHVIVKAYOBXDUUCGYRVHVJAUUFYOXFPOZYODPOZQOUURAYOXFDUUCYTJVLAU
        VJUUKUVKUUOQAYOCPOZFPOZNXJCPOZFPOZPOZUVJUUKAUVMNUVNPOZFPOUVPAUVLUVQFPAU
        VLNXJPOZCPOUVQAYOUVRCPAYONNPOZBPOUVRUVSWABPVMVNANNBYKAUFUPZUVTGVHVOVKAN
        XJCUVTYMIVHVPVKANUVNFUVTAXJCYMIUJKVHVPAYOCFUUCIKVHAUVOUUJNPAXJCFYMIKVQV
        RVSAWABDUUDGJVHVFVPVFVTAYOXEXGUUCYSUUAVLAYHUUMXOUUPUDAYHUULUUHQOZUUMAXK
        STCSTYHUWARYNIXKCWBWCAUULUUHUVCUVBWDVPMVFVIAYOUUCWEWFWGAXNYHXOAXMYGNUAA
        XKCYNIWLVKWHWMAXMSTESTXPXTWIAXKXLYNACIWJZWKLXMEWNWCAXQYCXSYFAXQYAXKRZYC
        AXKXLEYNUWBLWOAYBFRXKYARYCUWCAYAXJFAXLEUWBLUKYMKANBUVTGNUBUQAWPUPHUSZWQ
        FYBWRYAXKWRWSWTAXLXRQOZXKRYDXKRZXSYFAUWEYDXKAXLEUWBLXBWHAXKXLXRYNUWBAEL
        WJWOAYEFRXKYDRYFUWFAYDXJFAXLEUWBLWKYMKUWDWQFYEWRYDXKWRWSWMXCXA $.
    $}

    quad.d $e |- ( ph -> D = ( ( B ^ 2 ) - ( 4 x. ( A x. C ) ) ) ) $.
    $( The quadratic equation.  (Contributed by Mario Carneiro,
       23-Apr-2015.) $)
    quad $p |- ( ph -> ( ( ( A x. ( X ^ 2 ) ) + ( ( B x. X ) + C ) ) = 0 <->
      ( X = ( ( -u B + ( sqrt ` D ) ) / ( 2 x. A ) ) \/
        X = ( ( -u B - ( sqrt ` D ) ) / ( 2 x. A ) ) ) ) ) $=
      ( csqrt c2 cexp co c4 cmul cc wcel cfv cmin sqcld 4cn mulcld mulcl subcld
      sylancr eqeltrd sqrtcld sqsqrtd eqtrd quad2 ) ABCDEMUAZFGHIJKAEAECNOPZQBD
      RPZRPZUBPZSLAUOUQACIUCAQSTUPSTUQSTUDABDGJUEQUPUFUHUGUIZUJAUNNOPEURAEUSUKL
      ULUM $.
  $}

  $( The cube roots of unity.  (Contributed by Mario Carneiro, 23-Apr-2015.) $)
  1cubrlem $p |- ( ( -u 1 ^c ( 2 / 3 ) )
        = ( ( -u 1 + ( _i x. ( sqrt ` 3 ) ) ) / 2 )
    /\ ( ( -u 1 ^c ( 2 / 3 ) ) ^ 2 )
        = ( ( -u 1 - ( _i x. ( sqrt ` 3 ) ) ) / 2 ) ) $=
    ( c1 c2 c3 cdiv co ci cfv cmul caddc wceq cpi cc wcel neg1cn cr c6 2cn 2ne0
    ax-mp ccj cneg ccxp csqrt cexp cmin clog ce cc0 wne neg1ne0 2re 3nn nndivre
    cn mp2an recni cxpef mp3an logm1 oveq2i ax-icn pire mul12i fveq2i ccos csin
    eqtri 6nn coshalfpip divrec2 nnne0i oveq12i reccli adddiri halfpm6th simpri
    6cn oveq1i 3eqtr2i sincos6thpi simpli negeqi 3eqtr3i sinhalfpip cle wbr 3re
    ax-1cn divneg nn0ge0i resqrtcl divassi eqtr4i mulcli efival divdiri 3eqtr4i
    3nn0 3eqtri cz 1z root1cj cxpcl exp1 addcli cjdivi cjaddi neg1rr cjmuli cji
    cjre mulneg1i negsubi 3m1e2 3eqtr3ri pm3.2i ) AUAZBCDEZUBEZXQFCUCGZHEZIEZBD
    EZJXSBUDEZXQYAUEEZBDEZJXSXRXQUFGZHEZUGGZFXRKHEZHEZUGGZYCXQLMZXQUHUIXRLMZXSY
    IJNUJXRBOMZCUNMZXROMUKULBCUMUOUPZXQXRUQURYHYKUGYHXRFKHEZHEYKYGYRXRHUSUTXRFK
    YQVAKVBUPZVCVGVDYJVEGZFYJVFGZHEZIEZXQBDEZYABDEZIEYLYCYTUUDUUBUUEIKBDEZKPDEZ
    IEZVEGZUUGVFGZUAZYTUUDUUGLMZUUIUUKJUUGKOMPUNMUUGOMVBVHKPUMUOUPZUUGVISUUHYJV
    EUUHABDEZKHEZAPDEZKHEZIEUUNUUPIEZKHEYJUUFUUOUUGUUQIKLMZBLMZBUHUIZUUFUUOJYSQ
    RKBVJURUUSPLMPUHUIUUGUUQJYSVQPVHVKZKPVJURVLUUNUUPKBQRVMPVQUVBVMYSVNUURXRKHU
    UNUUPUEEACDEJUURXRJVOVPVRVSZVDUUKUUNUAZUUDUUJUUNUUJUUNJZUUGVEGZXTBDEZJZVTWA
    WBALMUUTUVAUVDUUDJWHQRABWIURVGWCUUBFUVGHEUUEUUAUVGFHUUHVFGZUVFUUAUVGUULUVIU
    VFJUUMUUGWDSUUHYJVFUVCVDUVEUVHVTVPWCUTFXTBVAXTCOMUHCWEWFXTOMZWGCWRWJCWKUOZU
    PZQRWLWMVLYJLMYLUUCJXRKYQYSWNYJWOSXQYABNFXTVAUVLWNZQRWPWQWSZXSAUDEZTGZXSCAU
    EEZUDEZYFYDYPAWTMUVPUVRJULXAACXBUOUVPYCTGZYBTGZBTGZDEZYFUVOYCTUVOXSYCXSLMZU
    VOXSJYMYNUWCNYQXQXRXCUOXSXDSUVNVGVDUVAUVSUWBJRYBBXQYANUVMXEQXFSUVTYEUWABDUV
    TXQTGZYATGZIEXQYAUAZIEYEXQYANUVMXGUWDXQUWEUWFIXQOMUWDXQJXHXQXKSUWEFTGZXTTGZ
    HEFUAZXTHEUWFFXTVAUVLXIUWGUWIUWHXTHXJUVJUWHXTJUVKXTXKSVLFXTVAUVLXLWSVLXQYAN
    UVMXMWSYOUWABJUKBXKSVLWSUVQBXSUDXNUTXOXP $.

  ${
    $d n A $.
    1cubr.r $e |- R = { 1 ,
      ( ( -u 1 + ( _i x. ( sqrt ` 3 ) ) ) / 2 ) ,
      ( ( -u 1 - ( _i x. ( sqrt ` 3 ) ) ) / 2 ) } $.
    $( The cube roots of unity.  (Contributed by Mario Carneiro,
       23-Apr-2015.) $)
    1cubr $p |- ( A e. R <-> ( A e. CC /\ ( A ^ 3 ) = 1 ) ) $=
      ( vn wcel cc c3 cexp co c1 wceq cmul caddc ax-1cn ax-mp cc0 syl6eq oveq2d
      c2 cdiv wa cneg ci csqrt cfv cmin ctp w3a wss neg1cn ax-icn sqrtcl mulcli
      3cn addcli halfcl subcli 3pm3.2i elexi ovex tpss mpbi sseli pm4.71ri ccxp
      eqsstri cv cfz cn wb 3nn cxpeq mp3an23 w3o eltpg eleq2i 3m1e2 2cn addid2i
      wrex eqtr4i oveq2i cz 0z fztp eqtri rexeqi 3ne0 reccli 1cxp oveq1i eqeq2i
      rexbii oveq2 divcli cxpcl mp2an exp0 1t1e1 eqeq2d id exp1 1cubrlem simpli
      mulid2i sqcli simpri rextp 3bitri 3bitr4g bitr4d pm5.32i bitr4i ) ABEZAFE
      ZXNUAXOAGHIJKZUAXNXOBFABJJUBZUCGUDUEZLIZMIZSTIZXQXSUFIZSTIZUGZFCJFEZYAFEZ
      YCFEZUHYDFUIYEYFYGNXTFEYFXQXSUJUCXRUKGFEXRFEUNGULOUMZUOXTUPOYBFEYGXQXSUJY
      HUQYBUPOURJYAYCFJFNUSXTSTUTYBSTUTVAVBVFVCVDXOXPXNXOXPAJJGTIZVEIZXQSGTIZVE
      IZDVGZHIZLIZKZDPGJUFIZVHIZVTZXNXOGVIEYEXPYSVJVKNAJDGVLVMXOAYDEAJKZAYAKZAY
      CKZVNZXNYSAJYAYCFVOBYDACVPYSYPDPPJMIZPSMIZUGZVTAJYNLIZKZDUUFVTUUCYPDYRUUF
      YRPUUEVHIZUUFYQUUEPVHYQSUUEVQSVRVSZWAWBPWCEUUIUUFKWDPWEOWFWGYPUUHDUUFYOUU
      GAYJJYNLYIFEYJJKGUNWHWIYIWJOWKWLWMUUHYTUUAUUBDPUUDUUEPWCWDUSPJMUTPSMUTYMP
      KZUUGJAUUKUUGJJLIJUUKYNJJLUUKYNYLPHIZJYMPYLHWNYLFEZUULJKXQFEYKFEUUMUJSGVR
      UNWHWOXQYKWPWQZYLWROQRWSQWTYMUUDKZUUGYAAUUOUUGJYLLIZYAUUOYNYLJLUUOYNYLJHI
      ZYLUUOYMJYLHUUOYMUUDJUUOXAJNVSQRUUMUUQYLKUUNYLXBOQRUUPYLYAYLUUNXEYLYAKZYL
      SHIZYCKZXCXDWFQWTYMUUEKZUUGYCAUVAUUGJUUSLIZYCUVAYNUUSJLUVAYMSYLHUVAYMUUES
      UVAXAUUJQRRUVBUUSYCUUSYLUUNXFXEUURUUTXCXGWFQWTXHXIXJXKXLXM $.
  $}

  ${
    $d r u M $.  $d r u P $.  $d r u ph $.  $d r u Q $.  $d r u T $.  $d r U $.
    $d r u X $.
    dcubic.c $e |- ( ph -> P e. CC ) $.
    dcubic.d $e |- ( ph -> Q e. CC ) $.
    dcubic.x $e |- ( ph -> X e. CC ) $.
    dcubic.t $e |- ( ph -> T e. CC ) $.
    dcubic.3 $e |- ( ph -> ( T ^ 3 ) = ( G - N ) ) $.
    dcubic.g $e |- ( ph -> G e. CC ) $.
    dcubic.2 $e |- ( ph -> ( G ^ 2 ) = ( ( N ^ 2 ) + ( M ^ 3 ) ) ) $.
    dcubic.m $e |- ( ph -> M = ( P / 3 ) ) $.
    dcubic.n $e |- ( ph -> N = ( Q / 2 ) ) $.
    dcubic.0 $e |- ( ph -> T =/= 0 ) $.
    ${
      dcubic2.u $e |- ( ph -> U e. CC ) $.
      dcubic2.z $e |- ( ph -> U =/= 0 ) $.
      dcubic2.2 $e |- ( ph -> X = ( U - ( M / U ) ) ) $.
      $( Lemma for ~ dcubic1 and ~ dcubic2 : simplify the cubic equation under
         the substitution ` X = U - M / U ` .  (Contributed by Mario Carneiro,
         26-Apr-2015.) $)
      dcubic1lem $p |- ( ph -> ( ( ( X ^ 3 ) + ( ( P x. X ) + Q ) ) = 0 <->
        ( ( ( U ^ 3 ) ^ 2 ) + ( ( Q x. ( U ^ 3 ) ) - ( M ^ 3 ) ) ) = 0 ) ) $=
        ( c3 cexp co cmul caddc cc0 wceq c2 cmin cdiv cneg cc wcel 3nn0 sylancl
        cn0 expcl sqvald oveq1d a1i expne0d divcan4d eqtr2d 3cn wne 3ne0 divcld
        cz 3z eqeltrd negsubd eqtr4d mulcld negcld add42d mulneg2d negeqd eqtrd
        negsubdid oveq2d eqtr3d adddid 3eqtrd addassd addcomd negidd divsubdird
        addcld addid2d 3eqtr3d 3eqtr4d oveq12d binom3 syl2anc sqcld mulassd syl
        div12d divcan2d sqneg 3eqtr2d cn cdvds wbr wn 3nn c1 2nn 1nn0 1nn 2t1e2
        oveq1i 2p1e3 eqtri ndvdsi oexpneg syl3anc expdivd subcld divdird eqeq1d
        1lt2 diveq0ad bitrd ) AIUCUDUEZBIUFUEZCUGUEZUGUEZUHUIEUCUDUEZUJUDUEZCYK
        UFUEZGUCUDUEZUKUEZUGUEZYKULUEZUHUIYPUHUIAYJYQUHAYKBEUFUEZUMZBGEULUEZUFU
        EZYNYKULUEZUMZUGUEZUGUEZYIUGUEZUGUEZYLYKULUEZYOYKULUEZUGUEYJYQAYKUUHUUF
        UUIUGAUUHYKYKUFUEZYKULUEYKAYLUUJYKULAYKAEUNUOZUCURUOZYKUNUOTUPEUCUSUQZU
        TVAAYKYKUUMUUMAEUCTUAUCVJUOAVKVBVCZVDVEACUUCUGUEZYMYKULUEZUUBUKUEZUUFUU
        IAUUOCUUBUKUEUUQACUUBKAYNYKAGUNUOUULYNUNUOAGBUCULUEZUNQABUCJUCUNUOAVFVB
        ZUCUHVGAVHVBZVIVLZUPGUCUSUQZUUMUUNVIZVMAUUPCUUBUKACYKKUUMUUNVDVAVNAYHUM
        ZUUCUGUEZYIUGUEUVDYHUGUEZUUOUGUEZUUFUUOAUVDUUCYHCAYHABIJLVOZVPZAUUBUVCV
        PZUVHKVQAUVEUUEYIUGAUVEYSUUAUGUEZUUCUGUEUUEAUVDUVKUUCUGAUVDBEUMZYTUGUEZ
        UFUEZBUVLUFUEZUUAUGUEUVKABIUMZUFUEUVDUVNABIJLVRAUVPUVMBUFAUVPEYTUKUEZUM
        UVMAIUVQUBVSAEYTTAGEUVATUAVIZWAVTWBWCABUVLYTJAETVPUVRWDAUVOYSUUAUGABEJT
        VRVAWEVAAYSUUAUUCAYRABEJTVOVPZABYTJUVRVOZUVJWFVTVAAUVGUHUUOUGUEUUOAUVFU
        HUUOUGAUVFYHUVDUGUEUHAUVDYHUVIUVHWGAYHUVHWHVTVAAUUOACUUCKUVJWJWKVTWLAYM
        YNYKACYKKUUMVOZUVBUUMUUNWIWMWNAYJYKUUEUGUEZYIUGUEUUGAYGUWBYIUGAYGYKYSUG
        UEZUUDUGUEZUWBAYGEYTUMZUGUEZUCUDUEZYKUCEUJUDUEZUWEUFUEZUFUEZUGUEZUCEUWE
        UJUDUEZUFUEZUFUEZUWEUCUDUEZUGUEZUGUEZUWDAIUWFUCUDAIUVQUWFUBAEYTTUVRVMVN
        VAAUUKUWEUNUOUWGUWQUITAYTUVRVPEUWEWOWPAUWKUWCUWPUUDUGAUWJYSYKUGAUWJUCGE
        UFUEZUMZUFUEUCUWRUFUEZUMYSAUWIUWSUCUFAUWIUWHYTUFUEZUMUWSAUWHYTAETWQZUVR
        VRAUXAUWRAUXAGUWHEULUEZUFUEUWRAUWHGEUXBUVATUAWTAUXCEGUFAUXCEEUFUEZEULUE
        EAUWHUXDEULAETUTVAAEETTUAVDVTWBVTVSVTWBAUCUWRUUSAGEUVATVOVRAUWTYRAUCGUF
        UEZEUFUEUWTYRAUCGEUUSUVATWRAUXEBEUFAUXEUCUURUFUEBAGUURUCUFQWBABUCJUUSUU
        TXAVTZVAWCVSWEWBAUWNUUAUWOUUCUGAUWNUCGYTUFUEZUFUEUXEYTUFUEUUAAUWMUXGUCU
        FAUWMEYTYTUFUEZUFUEEYTUFUEZYTUFUEUXGAUWLUXHEUFAUWLYTUJUDUEZUXHAYTUNUOZU
        WLUXJUIUVRYTXBWSAYTUVRUTVTWBAEYTYTTUVRUVRWRAUXIGYTUFAGEUVATUAXAVAXCWBAU
        CGYTUUSUVAUVRWRAUXEBYTUFUXFVAXCAUWOYTUCUDUEZUMZUUCAUXKUCXDUOZUJUCXEXFXG
        ZUWOUXMUIUVRUXNAXHVBUXOAUJUCXIXIXJXKXLUJXIUFUEZXIUGUEUJXIUGUEUCUXPUJXIU
        GXMXNXOXPYDXQVBYTUCXRXSAUXLUUBAGEUCUVATUAUULAUPVBXTVSVTWNWNWEAYKYSUUDUU
        MUVSAUUAUUCUVTUVJWJZWFVTVAAYKUUEYIUUMAYSUUDUVSUXQWJAYHCUVHKWJWFVTAYLYOY
        KAYKUUMWQZAYMYNUWAUVBYAZUUMUUNYBWMYCAYPYKAYLYOUXRUXSWJUUMUUNYEYF $.

      dcubic2.x $e |- ( ph -> ( ( X ^ 3 ) + ( ( P x. X ) + Q ) ) = 0 ) $.
      $( Reverse direction of ~ dcubic .  Given a solution ` U ` to the
         "substitution" quadratic equation ` X = U - M / U ` , show that ` X `
         is in the desired form.  (Contributed by Mario Carneiro,
         25-Apr-2015.) $)
      dcubic2 $p |- ( ph -> E. r e. CC ( ( r ^ 3 ) = 1 /\
        X = ( ( r x. T ) - ( M / ( r x. T ) ) ) ) ) $=
        ( c3 cexp co cmin wceq cv c1 cmul cdiv wa wrex caddc cneg divcld adantr
        cc wcel cn0 a1i expdivd oveq1 oveq1d expcl sylancl cz 3z expne0d dividd
        3nn0 eqtr3d sylan9eqr eqtrd oveq2d oveq12d eqtr4d eqeq1d eqeq2d anbi12d
        divcan1d rspcev syl12anc 3cn cc0 3ne0 eqeltrd negcld divnegd c2 halfcld
        wne subsq syl2anc sqcld pncan2d 3eqtrd negeqd addcld mulneg1d cdvds wbr
        cn wn 3nn 2nn 1nn0 2t1e2 oveq1i 2p1e3 eqtri 1lt2 ndvdsi oexpneg syl3anc
        3eqtr4d div23d divcan4d eqcomd neg2subd divneg2d simpr eqnetrrd mulne0d
        1nn syl6eq wo mulid2d negsubd mpbid 2cn mulcl sylancr c4 oveq2i addcomd
        sqmul syl5eq 0exp ax-mp neg0 necon3i syl negne0d ddcand dcubic1lem 1cnd
        mulcld ax-1ne0 sqcli subnegd divcan2d 4cn mulneg2 negeqi syl6eqr adddid
        2ne0 3eqtr4rd quad2 divdird eqtr2d divcan3d divsubdird negdi2d mpjaodan
        sq2 orbi12d ) AEUEUFUGZFHUHUGZUIZJUJZUEUFUGZUKUIZIUVNDULUGZGUVQUMUGZUHU
        GZUIZUNZJUTUOZUVKFHUPUGZUQZUIZAUVMUNZEDUMUGZUTVAZUWGUEUFUGZUKUIZIUWGDUL
        UGZGUWKUMUGZUHUGZUIZUWBAUWHUVMAEDUANTURUSUWFUWIUVKDUEUFUGZUMUGZUKAUWIUW
        PUIUVMAEDUEUANTUEVBVAZAVMVCZVDUSUVMAUWPUVLUWOUMUGZUKUVKUVLUWOUMVEAUWOUW
        OUMUGUWSUKAUWOUVLUWOUMOVFAUWOADUTVAUWQUWOUTVAZNVMDUEVGVHZADUENTUEVIVAAV
        JVCZVKZVLVNVOVPAUWNUVMAIEGEUMUGZUHUGZUWMUCAUWKEUWLUXDUHAEDUANTWCZAUWKEG
        UMUXFVQVRVSUSUWAUWJUWNUNJUWGUTUVNUWGUIZUVPUWJUVTUWNUXGUVOUWIUKUVNUWGUEU
        FVEVTUXGUVSUWMIUXGUVQUWKUVRUWLUHUVNUWGDULVEZUXGUVQUWKGUMUXHVQVRWAWBWDWE
        AUWEUNZUXDUQZDUMUGZUTVAZUXKUEUFUGZUKUIZIUXKDULUGZGUXOUMUGZUHUGZUIZUWBAU
        XLUWEAUXJDAUXDAGEAGBUEUMUGUTRABUEKUEUTVAAWFVCUEWGWNAWHVCURWIZUAUBURZWJZ
        NTURUSUXIUXMUWDUVKUMUGZUKAUXMUYBUIUWEAUXMUXJUEUFUGZUWOUMUGUYBUWOULUGZUW
        OUMUGUYBAUXJDUEUYANTUWRVDAUYCUYDUWOUMAUYCGUQZEUMUGZUEUFUGUYEUEUFUGZUVKU
        MUGZUYDAUXJUYFUEUFAGEUXSUAUBWKVFAUYEEUEAGUXSWJUAUBUWRVDAUWDUWOULUGZUVKU
        MUGUYHUYDAUYIUYGUVKUMAUWCUWOULUGZUQZGUEUFUGZUQZUYIUYGAUYJUYLAUYJFWLUFUG
        ZHWLUFUGZUHUGZUYOUYLUPUGZUYOUHUGUYLAUYJUWCUVLULUGZUYPAUWOUVLUWCULOVQAFU
        TVAZHUTVAZUYPUYRUIPAHCWLUMUGZUTSACLWMWIZFHWOWPVSAUYNUYQUYOUHQVFAUYOUYLA
        HVUBWQZAGUTVAZUWQUYLUTVAZUXSVMGUEVGVHZWRWSWTZAUWCUWOAFHPVUBXAZUXAXBZAVU
        DUEXEVAZWLUEXCXDXFZUYGUYMUIUXSVUJAXGVCVUKAWLUEUKUKXHXIYGWLUKULUGZUKUPUG
        WLUKUPUGUEVULWLUKUPXJXKXLXMXNXOVCGUEXPXQXRVFAUWDUWOUVKAUWCVUHWJZUXAAEUT
        VAUWQUVKUTVAUAVMEUEVGVHZAEUEUAUBUXBVKZXSVNWSVFAUYBUWOAUWDUVKVUMVUNVUOUR
        UXAUXCXTWSUSUWEAUYBUVKUVKUMUGZUKUWEVUPUYBUVKUWDUVKUMVEYAAUVKVUNVUOVLVOV
        PUXIIUXJEUQZUHUGZUXQAIVURUIUWEAIUXEVURUCAUXDEUXTUAYBVSUSUXIUXOUXJUXPVUQ
        UHAUXOUXJUIUWEAUXJDUYANTWCZUSUXIUXPGGVUQUMUGZUMUGVUQUXIUXOVUTGUMAUXOVUT
        UIUWEAUXOUXJVUTVUSAGEUXSUAUBYCVPUSVQUXIGVUQAVUDUWEUXSUSAVUQUTVAUWEAEUAW
        JUSUXIUYMWGWNGWGWNUXIUYIUYMWGAUYIUYMUIUWEAUYIUYKUYMVUIVUGVPUSUXIUWDUWOA
        UWDUTVAUWEVUMUSAUWTUWEUXAUSUXIUVKUWDWGAUWEYDAUVKWGWNUWEVUOUSYEAUWOWGWNU
        WEUXCUSYFYEGWGUYMWGGWGUIZUYMWGUQWGVVAUYLWGVVAUYLWGUEUFUGZWGGWGUEUFVEVUJ
        VVBWGUIXGUEUUAUUBYHWTUUCYHUUDUUEAVUQWGWNUWEAEUAUBUUFUSUUGVPVRVSUWAUXNUX
        RUNJUXKUTUVNUXKUIZUVPUXNUVTUXRVVCUVOUXMUKUVNUXKUEUFVEVTVVCUVSUXQIVVCUVQ
        UXOUVRUXPUHUVNUXKDULVEZVVCUVQUXOGUMVVDVQVRWAWBWDWEAUVKCUQZWLFULUGZUPUGZ
        VULUMUGZUIZUVKVVEVVFUHUGZVULUMUGZUIZYIZUVMUWEYIAUKUVKWLUFUGZULUGZCUVKUL
        UGZUYMUPUGZUPUGZWGUIVVMAVVRVVNVVPUYLUHUGZUPUGZWGAVVOVVNVVQVVSUPAVVNAUVK
        VUNWQYJAVVPUYLACUVKLVUNUUJVUFYKVRAIUEUFUGBIULUGCUPUGUPUGWGUIVVTWGUIUDAB
        CDEFGHIKLMNOPQRSTUAUBUCUUHYLVPAUKCUYMVVFUVKAUUIUKWGWNAUUKVCLAUYLVUFWJZV
        UNAWLUTVAZUYSVVFUTVAYMPWLFYNYOZAVVFWLUFUGZWLWLUFUGZUYNULUGZVWEUYQULUGZC
        WLUFUGZYPUKUYMULUGZULUGZUHUGZAVWBUYSVWDVWFUIYMPWLFYSYOAUYNUYQVWEULQVQAV
        WEUYOULUGZVWEUYLULUGZUQZUHUGVWLVWMUPUGVWKVWGAVWLVWMAVWEUTVAZUYOUTVAVWLU
        TVAWLYMUULZVUCVWEUYOYNYOAVWOVUEVWMUTVAVWPVUFVWEUYLYNYOUUMAVWHVWLVWJVWNU
        HAWLHULUGZWLUFUGZVWHVWLAVWQCWLUFAVWQWLVUAULUGCAHVUAWLULSVQACWLLVWBAYMVC
        ZWLWGWNAUUTVCZUUNVPVFAVWBUYTVWRVWLUIYMVUBWLHYSYOVNAVWJYPUYLULUGZUQZVWNA
        VWJYPUYMULUGZVXBAVWIUYMYPULAUYMVWAYJVQAYPUTVAVUEVXCVXBUIUUOVUFYPUYLUUPY
        OVPVWMVXAVWEYPUYLULUVIXKUUQUURVRAVWEUYOUYLVWOAVWPVCVUCVUFUUSUVAWSUVBYLA
        VVIUVMVVLUWEAVVHUVLUVKAVVHVVGWLUMUGZUVLVULWLVVGUMXJYQAVXDVVEWLUMUGZVVFW
        LUMUGZUPUGHUQZFUPUGZUVLAVVEVVFWLACLWJZVWCVWSVWTUVCAVXEVXGVXFFUPAVXGVUAU
        QVXEAHVUASWTACWLLVWSVWTWKUVDZAFWLPVWSVWTUVEZVRAVXHFVXGUPUGUVLAVXGFAHVUB
        WJPYRAFHPVUBYKVPWSYTWAAVVKUWDUVKAVVKVVJWLUMUGZUWDVULWLVVJUMXJYQAVXEVXFU
        HUGVXGFUHUGZVXLUWDAVXEVXGVXFFUHVXJVXKVRAVVEVVFWLVXIVWCVWSVWTUVFAUWDHFUP
        UGZUQVXMAUWCVXNAFHPVUBYRWTAHFVUBPUVGVPXRYTWAUVJYLUVH $.
    $}

    ${
      dcubic1.x $e |- ( ph -> X = ( T - ( M / T ) ) ) $.
      $( Forward direction of ~ dcubic : the claimed formula produces solutions
         to the cubic equation.  (Contributed by Mario Carneiro,
         25-Apr-2015.) $)
      dcubic1 $p |- ( ph -> ( ( X ^ 3 ) + ( ( P x. X ) + Q ) ) = 0 ) $=
        ( co c3 cexp cmul caddc cc0 wceq c2 cmin oveq1d cc wcel halfcld eqeltrd
        cdiv binom2sub syl2anc 2cnd mul12d oveq2d wne 2ne0 a1i divcan2d mulcomd
        eqtrd 3eqtrd oveq12d sqcld cn0 3cn 3ne0 divcld 3nn0 expcl addcld mulcld
        sylancl addsubd add32d 2timesd eqtr4d 3eqtr2d subdid sqvald mulassd 2cn
        3eqtr4d mulcl sylancr subsub4d npncan2 dcubic1lem mpbird ) AHUAUBTBHUCT
        CUDTUDTUEUFDUAUBTZUGUBTZCWNUCTZFUAUBTZUHTZUDTZUEUFAWSUGGUGUBTZUCTZWQUDT
        ZCEUCTZUHTZXCXBUHTZUDTZUEAWOXDWRXEUDAWOWTWQUDTZXCUHTZWTUDTZXGWTUDTZXCUH
        TXDAWOEGUHTZUGUBTZEUGUBTZUGEGUCTUCTZUHTZWTUDTZXIAWNXKUGUBMUIAEUJUKGUJUK
        XLXPUFNAGCUGUNTZUJQACJULUMZEGUOUPAXOXHWTUDAXMXGXNXCUHOAXNEUGGUCTZUCTECU
        CTXCAUGEGAUQZNXRURAXSCEUCAXSUGXQUCTCAGXQUGUCQUSACUGJXTUGUEUTAVAVBVCVEZU
        SAECNJVDVFVGUIVFAXGWTXCAWTWQAGXRVHZAFUJUKUAVIUKWQUJUKAFBUAUNTUJPABUAIUA
        UJUKAVJVBUAUEUTAVKVBVLUMVMFUAVNVQZVOYBACEJNVPZVRAXJXBXCUHAXJWTWTUDTZWQU
        DTXBAWTWQWTYBYCYBVSAXAYEWQUDAWTYBVTUIWAUIWBAWRXCXAUHTZWQUHTXEAWPYFWQUHA
        CXKUCTXCCGUCTZUHTWPYFACEGJNXRWCAWNXKCUCMUSAXAYGXCUHAXAUGGGUCTZUCTXSGUCT
        YGAWTYHUGUCAGXRWDUSAUGGGXTXRXRWEAXSCGUCYAUIWBUSWGUIAXCXAWQYDAUGUJUKWTUJ
        UKXAUJUKWFYBUGWTWHWIZYCWJVEVGAXBUJUKXCUJUKXFUEUFAXAWQYIYCVOYDXBXCWKUPVE
        ABCDDEFGHIJKLMNOPQRLRSWLWM $.
    $}

    $( Solutions to the depressed cubic, a special case of ~ cubic .  (The
       definitions of ` M , N , G , T ` here differ from ~ mcubic by scale
       factors of ` -u 9 ` , ` 5 4 ` , ` 5 4 ` and ` -u 2 7 ` respectively, to
       simplify the algebra and presentation.)  (Contributed by Mario Carneiro,
       26-Apr-2015.) $)
    dcubic $p |- ( ph -> ( ( ( X ^ 3 ) + ( ( P x. X ) + Q ) ) = 0 <->
      E. r e. CC ( ( r ^ 3 ) = 1 /\
        X = ( ( r x. T ) - ( M / ( r x. T ) ) ) ) ) ) $=
      ( cc0 vu c3 cexp co cmul caddc wceq cv c1 cdiv cmin wa cc wrex cdif c2 c4
      csn csqrt cfv wn wne adantr wcel wi cz expne0i mp3an3 syl ad2antrr simprl
      3z ex oveq2d mul01d eqtrd oveq1d cn 0exp ax-mp syl6eq simplr 0cnd eqeltrd
      3nn addcld addid2d 3eqtr3rd 2cn 2ne0 div0i sq0id 3cn a1i 3ne0 divcld 4ne0
      4cn sqcld mulcl sylancr simprr sqr00d mul01i syl6eqr mulcanad 00id sqeq0d
      oveq12d necon3ad syld mpd oveq12 sqrtcld halfaddsub syl2anc simpld eqeq1d
      0m0e0 simprd wo adantl eqcom mulcld ax-1ne0 negcld mulid2d eqeq2d orbi12d
      jca cneg syl6bb risset wb halfcld eldifsn baib syl5bbr ad2antrl 3nn0 1cnd
      anbi12d syl5ib eldifsni subaddd 3bitr4g subeq0ad adddird divcan1d addcomd
      con3d eldifi sqvald 3eqtrrd eqeq12d mulcan2d 3bitrd sqneg mulneg2 subnegd
      eqtr2d quad mulneg1d negdid eqtr4d negsubd negnegd 2t1e2 3bitr3d rexbidva
      3bitr2d r19.43 subcld neorian bitrd sylibrd imp dcubic2 rexlimddv mulexpd
      syldan cn0 expcl sylancl 3eqtrd eqnetrd necon3i mulne0d dcubic1 rexlimdva
      oveq1 impbid ) AHUBUCUDZBHUEUDZCUFUDZUFUDZTUGZIUHZUBUCUDZUIUGZHUWRDUEUDZF
      UXAUJUDUKUDUGZULZIUMUNZAUWQUXDAUWQULZHUAUHZFUXFUJUDZUKUDZUGZUXDUAUMTURZUO
      ZAUWQHTUGZHUPUCUDZUQFUEUDZUFUDZUSUTZTUGZULZVAZUXIUAUXKUNZUXEDTVBZUXSAUYAU
      WQSVCUXEUYADUBUCUDZTVBZUXSUXEDUMVDZUYAUYCVEAUYDUWQMVCUYDUYAUYCUYDUYAUBVFV
      DUYCVLDUBVGVHVMVIUXEUXRUYBTUXEUXRUYBTUGUXEUXRULZUYBEGUKUDZTAUYBUYFUGZUWQU
      XRNVJUYEUYFTTUKUDZTUYEETGTUKUYEEAEUMVDZUWQUXROVJUYEEUPUCUDZGUPUCUDZFUBUCU
      DZUFUDZTAUYJUYMUGZUWQUXRPVJUYEUYMTTUFUDZTUYEUYKTUYLTUFUYEGUYEGCUPUJUDZTAG
      UYPUGZUWQUXRRVJUYEUYPTUPUJUDTUYECTUPUJUYEUWOTCUFUDTCUYEUWNTCUFUYEUWNBTUEU
      DTUYEHTBUEUXEUXLUXQVKZVNUYEBABUMVDZUWQUXRJVJVOVPZVQUYEUWPTUWOUFUDTUWOUYEU
      WMTUWOUFUYEUWMTUBUCUDZTUYEHTUBUCUYRVQUBVRVDVUATUGWEUBVSVTZWAVQAUWQUXRWBUY
      EUWOUYEUWNCUYEUWNTUMUYTUYEWCZWDACUMVDZUWQUXRKVJZWFWGWHUYECVUEWGWHVQUPWIWJ
      WKWAVPZWLUYEUYLVUATUYEFTUBUCUYEFTUQAFUMVDZUWQUXRAFBUBUJUDZUMQABUBJUBUMVDA
      WMWNUBTVBAWOWNWPWDZVJVUCUQUMVDZUYEWRWNUQTVBUYEWQWNUYEUXNTUQTUEUDUYEUXOTUX
      NUFUDTUXNUYEUXMTUXNUFUYEHUYRWLVQUYEUXOAUXOUMVDUWQUXRAUXMUXNAHLWSZAVUJVUGU
      XNUMVDZWRVUIUQFWTXAZWFZVJUXEUXLUXQXBXCUYEUXNAVULUWQUXRVUMVJWGWHUQWRXDXEXF
      VQVUBWAXIXGWAVPXHVUFXIXSWAVPVMXJXKXLAUXSUXTAUXSHUXPUFUDZUPUJUDZTUGHUXPUKU
      DZUPUJUDZTUGULZVAZUXTAVUSUXRVUSVUPVURUFUDZTUGZVUPVURUKUDZTUGZULAUXRVUSVVB
      VVDVUSVVAUYOTVUPTVURTUFXMXGWAVUSVVCUYHTVUPTVURTUKXMXSWAYJAVVBUXLVVDUXQAVV
      AHTAVVAHUGZVVCUXPUGZAHUMVDZUXPUMVDVVEVVFULLAUXOVUNXNZHUXPXOXPZXQXRAVVCUXP
      TAVVEVVFVVIXTXRUUBUUCUUKAUXTUXFVUPUGZUAUXKUNZUXFVURUGZUAUXKUNZYAZVUTAUXTV
      VJVVLYAZUAUXKUNVVNAUXIVVOUAUXKAUXFUXKVDZULZUXIUXFUXGHUFUDZUGZUXFUPUCUDZHU
      XFUEUDZFUFUDZUKUDZTUGZVVOVVQUXHHUGVVRUXFUGUXIVVSVVQUXFUXGHVVPUXFUMVDZAUXF
      UMUXJUULZYBZVVQFUXFAVUGVVPVUIVCZVWGVVPUXFTVBZAUXFUMTUUDZYBZWPZAVVGVVPLVCZ
      UUEHUXHYCUXFVVRYCUUFVVQVWDVVTVWBUGUXFUXFUEUDZVVRUXFUEUDZUGVVSVVQVVTVWBVVQ
      UXFVWGWSZVVQVWAFVVQHUXFVWMVWGYDZVWHWFZUUGVVQVVTVWNVWBVWOVVQUXFVWGUUMVVQVW
      OUXGUXFUEUDZVWAUFUDFVWAUFUDVWBVVQUXGHUXFVWLVWMVWGUUHVVQVWSFVWAUFVVQFUXFVW
      HVWGVWKUUIVQVVQFVWAVWHVWQUUJUUNUUOVVQUXFVVRUXFVWGVVQUXGHVWLVWMWFVWGVWKUUP
      UUQVVQUIVVTUEUDZHYKZUXFUEUDZFYKZUFUDZUFUDZTUGUXFVXAYKZUXPUFUDZUPUIUEUDZUJ
      UDZUGZUXFVXFUXPUKUDZVXHUJUDZUGZYAVWDVVOVVQUIVXAVXCUXOUXFVVQUUAUITVBZVVQYE
      WNAVXAUMVDVVPAHLYFVCAVXCUMVDVVPAFVUIYFVCZVWGVVQVXAUPUCUDZUQUIVXCUEUDZUEUD
      ZUKUDUXMUXNYKZUKUDUXOVVQVXPUXMVXRVXSUKVVQVVGVXPUXMUGVWMHUURVIVVQVXRUQVXCU
      EUDZVXSVVQVXQVXCUQUEVVQVXCVXOYGVNVVQVUJVUGVXTVXSUGWRVWHUQFUUSXAVPXIVVQUXM
      UXNAUXMUMVDVVPVUKVCAVULVVPVUMVCUUTUVAUVBVVQVXEVWCTVVQVXEVVTVWBYKZUFUDVWCV
      VQVWTVVTVXDVYAUFVVQVVTVWPYGVVQVXDVWAYKZVXCUFUDVYAVVQVXBVYBVXCUFVVQHUXFVWM
      VWGUVCVQVVQVWAFVWQVWHUVDUVEXIVVQVVTVWBVWPVWRUVFVPXRVVQVXJVVJVXMVVLVVQVXIV
      UPUXFVVQVXGVUOVXHUPUJVVQVXFHUXPUFVVQHVWMUVGZVQVXHUPUGVVQUVHWNZXIYHVVQVXLV
      URUXFVVQVXKVUQVXHUPUJVVQVXFHUXPUKVYCVQVYDXIYHYIUVIUVKUVJVVJVVLUAUXKUVLYLA
      VVNVUPTVBZVURTVBZYAVUTAVVKVYEVVMVYFVVKVUPUXKVDZAVYEUAVUPUXKYMAVUPUMVDZVYG
      VYEYNAVUOAHUXPLVVHWFYOVYGVYHVYEVUPUMTYPYQVIYRVVMVURUXKVDZAVYFUAVURUXKYMAV
      URUMVDZVYIVYFYNAVUQAHUXPLVVHUVMYOVYIVYJVYFVURUMTYPYQVIYRYIVUPTVURTUVNYLUV
      OUVPUVQUWAUXEVVPUXIULZULBCDUXFEFGHIAUYSUWQVYKJVJAVUDUWQVYKKVJAVVGUWQVYKLV
      JAUYDUWQVYKMVJAUYGUWQVYKNVJAUYIUWQVYKOVJAUYNUWQVYKPVJAFVUHUGZUWQVYKQVJAUY
      QUWQVYKRVJAUYAUWQVYKSVJVVPVWEUXEUXIVWFYSVVPVWIUXEUXIVWJYSUXEVVPUXIXBAUWQV
      YKWBUVRUVSVMAUXCUWQIUMAUWRUMVDZULZUXCUWQVYNUXCULZBCUXAEFGHAUYSVYMUXCJVJAV
      UDVYMUXCKVJAVVGVYMUXCLVJVYOUWRDAVYMUXCWBZAUYDVYMUXCMVJZYDVYOUXAUBUCUDUWSU
      YBUEUDUIUYBUEUDZUYFVYOUWRDUBVYPVYQUBUWBVDZVYOYTWNUVTVYOUWSUIUYBUEVYNUWTUX
      BVKZVQAVYRUYFUGVYMUXCAVYRUYBUYFAUYBAUYDVYSUYBUMVDMYTDUBUWCUWDYGNVPVJUWEAU
      YIVYMUXCOVJAUYNVYMUXCPVJAVYLVYMUXCQVJAUYQVYMUXCRVJVYOUWRDVYPVYQVYOUWSTVBU
      WRTVBVYOUWSUITVYTVXNVYOYEWNUWFUWRTUWSTUWRTUGUWSVUATUWRTUBUCUWKVUBWAUWGVIA
      UYAVYMUXCSVJUWHVYNUWTUXBXBUWIVMUWJUWL $.
  $}

  ${
    $d r B $.  $d r M $.  $d r N $.  $d r ph $.  $d r T $.  $d r X $.
    mcubic.b $e |- ( ph -> B e. CC ) $.
    mcubic.c $e |- ( ph -> C e. CC ) $.
    mcubic.d $e |- ( ph -> D e. CC ) $.
    mcubic.x $e |- ( ph -> X e. CC ) $.
    mcubic.t $e |- ( ph -> T e. CC ) $.
    mcubic.3 $e |- ( ph -> ( T ^ 3 ) = ( ( N + G ) / 2 ) ) $.
    mcubic.g $e |- ( ph -> G e. CC ) $.
    mcubic.2 $e |- ( ph -> ( G ^ 2 ) = ( ( N ^ 2 ) - ( 4 x. ( M ^ 3 ) ) ) ) $.
    mcubic.m $e |- ( ph -> M = ( ( B ^ 2 ) - ( 3 x. C ) ) ) $.
    mcubic.n $e |- ( ph -> N = ( ( ( 2 x. ( B ^ 3 ) ) -
      ( 9 x. ( B x. C ) ) ) + ( ; 2 7 x. D ) ) ) $.
    mcubic.0 $e |- ( ph -> T =/= 0 ) $.
    $( Solutions to a monic cubic equation, a special case of ~ cubic .
       (Contributed by Mario Carneiro, 24-Apr-2015.) $)
    mcubic $p |- ( ph -> ( ( ( ( X ^ 3 ) + ( B x. ( X ^ 2 ) ) ) +
      ( ( C x. X ) + D ) ) = 0 <-> E. r e. CC ( ( r ^ 3 ) = 1 /\ X =
       -u ( ( ( B + ( r x. T ) ) + ( M / ( r x. T ) ) ) / 3 ) ) ) ) $=
      ( c3 cdiv co caddc cexp cneg cmul c2 c7 cdc wceq cv c1 c9 cmin wa cc wrex
      cc0 sqcld wcel 3cn mulcl sylancr subcld eqeltrd a1i wne divcld negcld 2cn
      3ne0 cn0 3nn0 expcl sylancl 9cn mulcld 7nn decnncl nncni addcld nnne0i cn
      2nn0 oveq1i 2p1e3 oexpneg syl3anc expdivd 3exp3 oveq12d divdiv32d addcomd
      3nn oveq1d divdird eqtrd 3eqtrd negeqd halfcld negdi2d sqdivd c4 sqcli wb
      syl 4cn divassd oveq2i expmul mp3an 3eqtr3i syl6eq oveq2d eqtr4d sq2 4ne0
      divcan3d syl5eq divsubdird negsubd 3eqtr4d divdiv1d eqtr3d divne0d mul12d
      3t3e9 divcan2d mulcomd addassd negsubdi2d subdird 3eqtr2d 9t3e27 divcan5d
      syl5eqr eqeq1d adantr cdvds wbr 2nn 1nn0 1nn 2t1e2 eqtri 1lt2 ndvdsi 2cnd
      wn 2ne0 sqneg eqtr2d sqne0 mpbird 9nn mulcomi sq3 eqnetri divnegd negne0d
      eqidd dcubic binom3 syl2anc adddid sqvali 3eqtr4a divmuldivd df-3 syl5req
      expp1 ax-1cn subaddrii mulid2d mulcomli npncan3d eqeltrrd 3eqtr3d pncan3d
      oveq1 0exp ax-mp 0ne1 eqnetrd necon2i eqcom simprl simprr mulne0d subnegd
      addsub4d syl5bb subadd2d mulneg2d divcan7d div2negd eqeq2d 3bitrrd sylan2
      anassrs pm5.32da rexbidva 3bitr3d ) AIBUBUCUDZUEUDZUBUFUDZGUBUCUDZUGZUXGU
[encoded data, 6720 characters]
      AUXCUXDUXE $.
  $}

  ${
    $d r A $.  $d r B $.  $d r M $.  $d r N $.  $d r ph $.  $d r T $.
    $d r X $.
    cubic2.a $e |- ( ph -> A e. CC ) $.
    cubic2.z $e |- ( ph -> A =/= 0 ) $.
    cubic2.b $e |- ( ph -> B e. CC ) $.
    cubic2.c $e |- ( ph -> C e. CC ) $.
    cubic2.d $e |- ( ph -> D e. CC ) $.
    cubic2.x $e |- ( ph -> X e. CC ) $.
    cubic2.t $e |- ( ph -> T e. CC ) $.
    cubic2.3 $e |- ( ph -> ( T ^ 3 ) = ( ( N + G ) / 2 ) ) $.
    cubic2.g $e |- ( ph -> G e. CC ) $.
    cubic2.2 $e |- ( ph -> ( G ^ 2 ) = ( ( N ^ 2 ) - ( 4 x. ( M ^ 3 ) ) ) ) $.
    cubic2.m $e |- ( ph -> M = ( ( B ^ 2 ) - ( 3 x. ( A x. C ) ) ) ) $.
    cubic2.n $e |- ( ph -> N = ( ( ( 2 x. ( B ^ 3 ) ) -
      ( ( 9 x. A ) x. ( B x. C ) ) ) + ( ; 2 7 x. ( ( A ^ 2 ) x. D ) ) ) ) $.
    cubic2.0 $e |- ( ph -> T =/= 0 ) $.
    $( The solution to the general cubic equation, for arbitrary choices ` G `
       and ` T ` of the square and cube roots.  (Contributed by Mario Carneiro,
       23-Apr-2015.) $)
    cubic2 $p |- ( ph -> ( ( ( ( A x. ( X ^ 3 ) ) + ( B x. ( X ^ 2 ) ) ) +
      ( ( C x. X ) + D ) ) = 0 <-> E. r e. CC ( ( r ^ 3 ) = 1 /\ X =
       -u ( ( ( B + ( r x. T ) ) + ( M / ( r x. T ) ) ) / ( 3 x. A ) ) ) ) ) $=
      ( c3 cexp co cmul c2 caddc cc0 wceq cdiv cv c1 cneg wa wrex wcel cn0 3nn0
      expcl sylancl mulcld sqcld addcld diveq0ad divdird divcan3d oveq12d eqtrd
      cc div23d oveq1d eqeq1d bitr3d divcld a1i expdivd c9 cmin cdc 2cn sylancr
      c7 mulcl 9cn subcld 2nn0 7nn decnncl nncni eqeltrd 2cnd wne cz 3z expne0d
      2ne0 divdiv32d 3eqtrd c4 sqdivd 4cn 3cn wb sqne0 syl mpbird divsubdird 2z
      mulcomi oveq2i expmuld 3eqtr3a oveq2d divassd eqtr4d sqvald divcan5d df-3
      eqtr2d 3eqtr4d mulassd expp1 syl5eq mulcomd 3eqtr4rd divne0d mcubic oveq1
      divmuldivd cn 3nn 0exp ax-mp syl6eq 0ne1 adantr divdiv1d eqnetrd divcan7d
      necon2i simprl eqcomd simprr mulne0d 3eqtr3d mulcom negeqd eqeq2d anassrs
      3ne0 sylan2 pm5.32da rexbidva 3bitrd ) ABJUEUFUGZUHUGZCJUIUFUGZUHUGZUJUGZ
      DJUHUGZEUJUGZUJUGZUKULZUURCBUMUGZUUTUHUGZUJUGZDBUMUGZJUHUGZEBUMUGZUJUGZUJ
      UGZUKULZKUNZUEUFUGZUOULZJUVGUVPFBUMUGZUHUGZUJUGZHBUIUFUGZUMUGZUVTUMUGZUJU
      GZUEUMUGZUPZULZUQZKVLURUVRJCUVPFUHUGZUJUGZHUWJUMUGZUJUGZUEBUHUGZUMUGZUPZU
      LZUQZKVLURAUVEBUMUGZUKULUVFUVOAUVEBAUVBUVDAUUSUVAABUURLAJVLUSUEUTUSZUURVL
      USQVAJUEVBVCZVDZACUUTNAJQVEZVDZVFZAUVCEADJOQVDZPVFZVFLMVGAUWSUVNUKAUWSUVB
      BUMUGZUVDBUMUGZUJUGUVNAUVBUVDBUXEUXGLMVHAUXHUVIUXIUVMUJAUXHUUSBUMUGZUVABU
      MUGZUJUGUVIAUUSUVABUXBUXDLMVHAUXJUURUXKUVHUJAUURBUXALMVIACUUTBNUXCLMVMVJV
      KAUXIUVCBUMUGZUVLUJUGUVMAUVCEBUXFPLMVHAUXLUVKUVLUJADJBOQLMVMVNVKVJVKVOVPA
      UVGUVJUVLUVSGBUEUFUGZUMUGZUWCIUXMUMUGZJKACBNLMVQADBOLMVQAEBPLMVQQAFBRLMVQ
      AUVSUEUFUGFUEUFUGZUXMUMUGIGUJUGZUIUMUGZUXMUMUGZUXOUXNUJUGZUIUMUGZAFBUERLM
      UWTAVAVRZVSAUXPUXRUXMUMSVNAUXSUXQUXMUMUGZUIUMUGUYAAUXQUIUXMAIGAIUICUEUFUG
      ZUHUGZVTBUHUGZCDUHUGZUHUGZWAUGZUIWEWBZUWBEUHUGZUHUGZUJUGZVLUCAUYIUYLAUYEU
      YHAUIVLUSUYDVLUSZUYEVLUSWCACVLUSZUWTUYNNVACUEVBVCZUIUYDWFWDZAUYFUYGAVTVLU
      SZBVLUSZUYFVLUSWGLVTBWFWDACDNOVDZVDZWHZAUYJVLUSZUYKVLUSUYLVLUSUYJUIWEWIWJ
      WKWLZAUWBEABLVEZPVDZUYJUYKWFWDZVFWMZTVFAWNZAUYSUWTUXMVLUSZLVABUEVBVCZUIUK
      WOAWSVRABUELMUEWPUSAWQVRWRZWTAUYCUXTUIUMAIGUXMVUHTVUKVULVHVNVKXAAGUXMTVUK
      VULVQAUXNUIUFUGGUIUFUGZUXMUIUFUGZUMUGIUIUFUGZXBHUEUFUGZUHUGZWAUGZVUNUMUGZ
      UXOUIUFUGZXBUWCUEUFUGZUHUGZWAUGZAGUXMTVUKVULXCAVUMVURVUNUMUAVNAVUSVUOVUNU
      MUGZVUQVUNUMUGZWAUGVVCAVUOVUQVUNAIVUHVEAXBVLUSZVUPVLUSZVUQVLUSXDAHVLUSZUW
      TVVGAHCUIUFUGZUEBDUHUGZUHUGZWAUGZVLUBAVVIVVKACNVEZAUEVLUSZVVJVLUSVVKVLUSX
      EABDLOVDZUEVVJWFWDZWHWMZVAHUEVBVCZXBVUPWFWDAUXMVUKVEZAVUNUKWOZUXMUKWOZVUL
      AVUJVVTVWAXFVUKUXMXGXHXIZXJAVUTVVDVVBVVEWAAIUXMVUHVUKVULXCAVVBXBVUPVUNUMU
      GZUHUGVVEAVVAVWCXBUHAVVAVUPUWBUEUFUGZUMUGVWCAHUWBUEVVQVUEABUILMUIWPUSAXKV
      RWRZUYBVSAVWDVUNVUPUMABUIUEUHUGZUFUGBUEUIUHUGZUFUGVWDVUNVWFVWGBUFUIUEWCXE
      XLXMABUIUELUYBUIUTUSZAWIVRZXNABUEUILVWIUYBXNXOXPVKXPAXBVUPVUNVVFAXDVRVVRV
      VSVWBXQXRVJXRXAAVVLUWBUMUGVVIUWBUMUGZVVKUWBUMUGZWAUGUWCUVGUIUFUGZUEUVJUHU
      GZWAUGAVVIVVKUWBVVMVVPVUEVWEXJAHVVLUWBUMUBVNAVWLVWJVWMVWKWAACBNLMXCAVWMUE
      VVJUWBUMUGZUHUGVWKAUVJVWNUEUHAVWNVVJBBUHUGZUMUGUVJAUWBVWOVVJUMABLXSZXPADB
      BOLLMMXTYBXPAUEVVJUWBVVNAXEVRVVOVUEVWEXQXRVJYCAUYMUXMUMUGUYIUXMUMUGZUYLUX
      MUMUGZUJUGUXOUIUVGUEUFUGZUHUGZVTUVGUVJUHUGZUHUGZWAUGZUYJUVLUHUGZUJUGAUYIU
      YLUXMVUBVUGVUKVULVHAIUYMUXMUMUCVNAVXCVWQVXDVWRUJAVXCUYEUXMUMUGZUYHUXMUMUG
      ZWAUGVWQAVWTVXEVXBVXFWAAVWTUIUYDUXMUMUGZUHUGVXEAVWSVXGUIUHACBUENLMUYBVSXP
      AUIUYDUXMVUIUYPVUKVULXQXRAVTBUYGUHUGZUHUGZUXMUMUGVTVXHUXMUMUGZUHUGVXFVXBA
      VTVXHUXMUYRAWGVRZABUYGLUYTVDVUKVULXQAUYHVXIUXMUMAVTBUYGVXKLUYTYDVNAVXAVXJ
      VTUHAVXHBUWBUHUGZUMUGUYGUWBUMUGZVXJVXAAUYGUWBBUYTVUELVWEMXTAUXMVXLVXHUMAU
      XMUWBBUHUGZVXLAUXMBUIUOUJUGZUFUGZVXNUEVXOBUFYAXMAUYSVWHVXPVXNULLWIBUIYEVC
      YFZAUWBBVUELYGVKXPAVXAUYGVWOUMUGVXMACBDBNLOLMMYLAUWBVWOUYGUMVWPXPXRYHXPYH
      VJAUYEUYHUXMUYQVUAVUKVULXJXRAVXDUYJUYKUXMUMUGZUHUGVWRAUVLVXRUYJUHAVXRUYKV
      XNUMUGUVLAUXMVXNUYKUMVXQXPAEBUWBPLVUEMVWEXTYBXPAUYJUYKUXMVUCAVUDVRVUFVUKV
      ULXQXRVJYCAFBRLUDMYIYJAUWIUWRKVLAUVPVLUSZUQZUVRUWHUWQUVRVXTUVPUKWOZUWHUWQ
      XFZUVPUKUVQUOUVPUKULZUVQUKUOVYCUVQUKUEUFUGZUKUVPUKUEUFYKUEYMUSVYDUKULYNUE
      YOYPYQUKUOWOVYCYRVRUUAUUCAVXSVYAVYBAVXSVYAUQZUQZUWGUWPJVYFUWFUWOVYFUWFUWM
      BUMUGZUEUMUGUWMBUEUHUGZUMUGUWOVYFUWEVYGUEUMVYFUWEUWKBUMUGZUWLBUMUGZUJUGVY
      GVYFUWAVYIUWDVYJUJVYFUWAUVGUWJBUMUGZUJUGVYIVYFUVTVYKUVGUJVYFVYKUVTVYFUVPF
      BAVXSVYAUUDZAFVLUSVYERYSZAUYSVYELYSZABUKWOVYEMYSZXQZUUEXPVYFCUWJBAUYOVYEN
      YSZVYFUVPFVYLVYMVDZVYNVYOVHXRVYFHBUMUGZBUMUGZVYKUMUGVYSUWJUMUGUWDVYJVYFVY
      SUWJBVYFHBAVVHVYEVVQYSZVYNVYOVQVYRVYNVYFUVPFVYLVYMAVXSVYAUUFAFUKWOVYEUDYS
      UUGZVYOUUBVYFVYTUWCVYKUVTUMVYFVYTHVWOUMUGUWCVYFHBBWUAVYNVYNVYOVYOYTVYFUWB
      VWOHUMVYFBVYNXSXPXRVYPVJVYFHBUWJWUAVYNVYRVYOWUBWTUUHVJVYFUWKUWLBVYFCUWJVY
      QVYRVFZVYFHUWJWUAVYRWUBVQZVYNVYOVHXRVNVYFUWMBUEVYFUWKUWLWUCWUDVFVYNVVNVYF
      XEVRVYOUEUKWOVYFUUMVRYTVYFVYHUWNUWMUMVYFUYSVVNVYHUWNULVYNXEBUEUUIVCXPXAUU
      JUUKUULUUNUUOUUPUUQ $.
  $}

  ${
    $d r A $.  $d r B $.  $d r M $.  $d r N $.  $d r ph $.  $d r T $.
    $d r X $.
    cubic.r $e |- R = { 1 ,
      ( ( -u 1 + ( _i x. ( sqrt ` 3 ) ) ) / 2 ) ,
      ( ( -u 1 - ( _i x. ( sqrt ` 3 ) ) ) / 2 ) } $.
    cubic.a $e |- ( ph -> A e. CC ) $.
    cubic.z $e |- ( ph -> A =/= 0 ) $.
    cubic.b $e |- ( ph -> B e. CC ) $.
    cubic.c $e |- ( ph -> C e. CC ) $.
    cubic.d $e |- ( ph -> D e. CC ) $.
    cubic.x $e |- ( ph -> X e. CC ) $.
    cubic.t $e |- ( ph ->
      T = ( ( ( N + ( sqrt ` G ) ) / 2 ) ^c ( 1 / 3 ) ) ) $.
    cubic.g $e |- ( ph -> G = ( ( N ^ 2 ) - ( 4 x. ( M ^ 3 ) ) ) ) $.
    cubic.m $e |- ( ph -> M = ( ( B ^ 2 ) - ( 3 x. ( A x. C ) ) ) ) $.
    cubic.n $e |- ( ph -> N = ( ( ( 2 x. ( B ^ 3 ) ) -
      ( ( 9 x. A ) x. ( B x. C ) ) ) + ( ; 2 7 x. ( ( A ^ 2 ) x. D ) ) ) ) $.
    cubic.0 $e |- ( ph -> M =/= 0 ) $.
    $( The cubic equation, which gives the roots of an arbitrary
       (nondegenerate) cubic function.  Use ~ rextp to convert the existential
       quantifier to a triple disjunction.  This is Metamath 100 proof #37.
       (Contributed by Mario Carneiro, 26-Apr-2015.) $)
    cubic $p |- ( ph -> ( ( ( ( A x. ( X ^ 3 ) ) + ( B x. ( X ^ 2 ) ) ) +
      ( ( C x. X ) + D ) ) = 0 <-> E. r e. R X =
       -u ( ( ( B + ( r x. T ) ) + ( M / ( r x. T ) ) ) / ( 3 x. A ) ) ) ) $=
      ( c3 cexp co cmul c2 caddc cc0 wceq cv c1 cdiv cneg wa cc wrex csqrt ccxp
      cfv wcel c9 cmin c7 cdc 2cn cn0 expcl sylancl mulcl sylancr mulcld subcld
      3nn0 9cn 2nn0 7nn decnncl nncni addcld eqeltrd c4 4cn 3cn sqrtcld halfcld
      sqcld 3ne0 reccli cxpcl oveq1d cn 3nn cxproot eqtrd sqsqrtd a1i wne cz 3z
      4ne0 expne0d mulne0d oveq2d syl2anc nncand 3eqtr3d mul02d 3netr4d necon3i
      subsq oveq1 syl divne0d cxpne0d eqnetrd cubic2 1cubr anbi1i anass rexbii2
      2ne0 bitri syl6bbr ) ABKUEUFUGUHUGCKUIUFUGUHUGUJUGDKUHUGEUJUGUJUGUKULLUMZ
      UEUFUGUNULZKCYGGUHUGZUJUGIYIUOUGUJUGUEBUHUGUOUGUPULZUQZLURUSYJLFUSABCDEGH
      UTVBZIJKLNOPQRSAGJYLUJUGZUIUOUGZUNUEUOUGZVAUGZURTAYNURVCZYOURVCZYPURVCAYM
      AJYLAJUICUEUFUGZUHUGZVDBUHUGZCDUHUGZUHUGZVEUGZUIVFVGZBUIUFUGZEUHUGZUHUGZU
      JUGURUCAUUDUUHAYTUUCAUIURVCZYSURVCZYTURVCVHACURVCUEVIVCZUUJPVPCUEVJVKUIYS
      VLVMAUUAUUBAVDURVCBURVCUUAURVCVQNVDBVLVMACDPQVNVNVOAUUEURVCUUGURVCUUHURVC
      UUEUIVFVRVSVTWAAUUFEABNWIRVNUUEUUGVLVMWBWCZAHAHJUIUFUGZWDIUEUFUGZUHUGZVEU
      GZURUAAUUMUUOAJUULWIZAWDURVCZUUNURVCZUUOURVCWEAIURVCUUKUUSAICUIUFUGZUEBDU
      HUGZUHUGZVEUGURUBAUUTUVBACPWIAUEURVCUVAURVCUVBURVCWFABDNQVNUEUVAVLVMVOWCZ
      VPIUEVJVKZWDUUNVLVMZVOWCZWGZWBZWHZUEWFWJWKZYNYOWLVKWCAGUEUFUGYPUEUFUGZYNA
      GYPUEUFTWMAYQUEWNVCUVKYNULUVIWOYNUEWPVKWQUVGAYLUIUFUGZHUUPAHUVFWRUAWQZUBU
      CAGYPUKTAYNYOUVIAYMUIUVHUUIAVHWSAYMJYLVEUGZUHUGZUKUVNUHUGZWTYMUKWTAUUOUKU
      VOUVPAWDUUNUURAWEWSUVDWDUKWTAXCWSAIUEUVCUDUEXAVCAXBWSXDXEAUUMUVLVEUGZUUMU
      UPVEUGUVOUUOAUVLUUPUUMVEUVMXFAJURVCYLURVCUVQUVOULUULUVGJYLXMXGAUUMUUOUUQU
      VEXHXIAUVNAJYLUULUVGVOXJXKYMUKUVOUVPYMUKUVNUHXNXLXOUIUKWTAYDWSXPYRAUVJWSX
      QXRXSYJYKLFURYGFVCZYJUQYGURVCZYHUQZYJUQUVSYKUQUVRUVTYJYGFMXTYAUVSYHYJYBYE
      YCYF $.
  $}

  $( Work out a quartic binomial.  (You would think that by this point it would
     be faster to use ~ binom , but it turns out to be just as much work to put
     it into this form after clearing all the sums and calculating binomial
     coefficients.)  (Contributed by Mario Carneiro, 6-May-2015.) $)
  binom4 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A + B ) ^ 4 ) =
    ( ( ( A ^ 4 ) +
        ( 4 x. ( ( A ^ 3 ) x. B ) ) ) +
      ( ( 6 x. ( ( A ^ 2 ) x. ( B ^ 2 ) ) ) +
      ( ( 4 x. ( A x. ( B ^ 3 ) ) ) +
        ( B ^ 4 ) ) ) ) ) $=
    ( cc wcel caddc co c4 cexp c3 cmul c2 c1 sylancl 3cn addcld adddird mulassd
    eqtrd oveq2d oveq12d wa df-4 oveq2i cn0 wceq addcl 3nn0 expp1 syl5eq binom3
    oveq1d simpl expcl sqcld simpr mulcld mulcl sylancr adddid syl5req a1i df-3
    mul32d 2nn0 sqvald eqtr4d mulcomd 4nn0 addassd 3eqtrd oveq1i ax-1cn mulid2d
    c6 add4d 3p3e6 syl5eqr 3p1e4 addcomli ) ACDZBCDZUAZABEFZGHFZWCIHFZWCJFZAIHF
    ZIAKHFZBJFZJFZEFZIABKHFZJFZJFZBIHFZEFZEFZWCJFZAGHFZGWGBJFZJFZEFZVNWHWLJFZJF
    ZGAWOJFZJFZBGHFZEFZEFZEFZWBWDWCILEFZHFZWFGXKWCHUBUCWBWCCDIUDDZXLWFUEABUFUGW
    CIUHMUIWBWEWQWCJABUJUKWBWRWQAJFZWQBJFZEFWSIWTJFZEFZIXCJFZXEEFZEFZWTXRIXEJFZ
    XGEFZEFZEFZEFZXJWBWQABWBWKWPWBWGWJWBVTXMWGCDVTWAULZUGAIUMMZWBICDZWICDWJCDNW
    BWHBWBAYFUNZVTWAUOZUPZIWIUQURZOZWBWNWOWBYHWMCDWNCDNWBAWLYFWBBYJUNZUPZIWMUQU
    RZWBWAXMWOCDYJUGBIUMMZOZOYFYJUSWBXNXTXOYDEWBXNWKAJFZWPAJFZEFXTWBWKWPAYMYRYF
    PWBYSXQYTXSEWBYSWGAJFZWJAJFZEFXQWBWGWJAYGYLYFPWBUUAWSUUBXPEWBWSAXKHFZUUAGXK
    AHUBUCWBVTXMUUCUUAUEYFUGAIUHMUTWBUUBIWIAJFZJFXPWBIWIAYHWBNVAZYKYFQWBUUDWTIJ
    WBUUDWHAJFZBJFWTWBWHBAYIYJYFVCWBUUFWGBJWBWGAKLEFZHFZUUFIUUGAHVBUCWBVTKUDDZU
    UHUUFUEYFVDAKUHMUTUKRSRTRWBYTWNAJFZWOAJFZEFXSWBWNWOAYPYQYFPWBUUJXRUUKXEEWBU
    UJIWMAJFZJFXRWBIWMAUUEYOYFQWBUULXCIJWBUULAAJFZWLJFXCWBAWLAYFYNYFVCWBWHUUMWL
    JWBAYFVEUKVFSRWBWOAYQYFVGTRTRWBXOWKBJFZWPBJFZEFWTXREFZYBEFYDWBWKWPBYMYRYJPW
    BUUNUUPUUOYBEWBUUNWTWJBJFZEFUUPWBWGWJBYGYLYJPWBUUQXRWTEWBUUQIWIBJFZJFXRWBIW
    IBUUEYKYJQWBUURXCIJWBUURWHBBJFZJFXCWBWHBBYIYJYJQWBWLUUSWHJWBBYJVESVFSRSRWBU
    UOWNBJFZWOBJFZEFYBWBWNWOBYPYQYJPWBUUTYAUVAXGEWBUUTIWMBJFZJFYAWBIWMBUUEYOYJQ
    WBUVBXEIJWBUVBAWLBJFZJFXEWBAWLBYFYNYJQWBUVCWOAJWBWOBUUGHFZUVCIUUGBHVBUCWBWA
    UUIUVDUVCUEYJVDBKUHMUTSRSRWBXGBXKHFZUVAGXKBHUBUCWBWAXMUVEUVAUEYJUGBIUHMUTTR
    TWBWTXRYBWBWGBYGYJUPZWBYHXCCDXRCDNWBWHWLYIYNUPZIXCUQURZWBYAXGWBYHXECDYACDNW
    BAWOYFYQUPZIXEUQURZWBWAGUDDZXGCDYJVHBGUMMZOZVIVJTWBYEXQWTEFZXSYCEFZEFXJWBXQ
    XSWTYCWBWSXPWBVTUVKWSCDYFVHAGUMMZWBYHWTCDXPCDNUVFIWTUQURZOWBXRXEUVHUVIOUVFW
    BXRYBUVHUVMOVOWBUVNXBUVOXIEWBUVNWSXPWTEFZEFXBWBWSXPWTUVPUVQUVFVIWBXAUVRWSEW
    BXAXPLWTJFZEFZUVRWBXAXKWTJFUVTGXKWTJUBVKWBILWTUUELCDWBVLVAZUVFPUIWBUVSWTXPE
    WBWTUVFVMSRSVFWBUVOXRXREFZXEYBEFZEFXIWBXRXEXRYBUVHUVIUVHUVMVOWBXDUWBXHUWCEW
    BXDIIEFZXCJFUWBUWDVNXCJVPVKWBIIXCUUEUUEUVGPVQWBXHXEYAEFZXGEFUWCWBXFUWEXGEWB
    XFLXEJFZYAEFZUWEWBXFLIEFZXEJFUWGUWHGXEJILGNVLVRVSVKWBLIXEUWAUUEUVIPVQWBUWFX
    EYAEWBXEUVIVMUKRUKWBXEYAXGUVIUVJUVLVIRTVFTRVJVJ $.

  ${
    dquart.b $e |- ( ph -> B e. CC ) $.
    dquart.c $e |- ( ph -> C e. CC ) $.
    dquart.x $e |- ( ph -> X e. CC ) $.
    dquart.s $e |- ( ph -> S e. CC ) $.
    dquart.m $e |- ( ph -> M = ( ( 2 x. S ) ^ 2 ) ) $.
    dquart.m0 $e |- ( ph -> M =/= 0 ) $.
    dquart.i $e |- ( ph -> I e. CC ) $.
    dquart.i2 $e |- ( ph -> ( I ^ 2 ) =
      ( ( -u ( S ^ 2 ) - ( B / 2 ) ) + ( ( C / 4 ) / S ) ) ) $.
    $( Lemma for ~ dquart .  (Contributed by Mario Carneiro, 6-May-2015.) $)
    dquartlem1 $p |- ( ph ->
     ( ( ( ( X ^ 2 ) + ( ( M + B ) / 2 ) ) +
       ( ( ( ( M / 2 ) x. X ) - ( C / 4 ) ) / S ) ) = 0
       <-> ( X = ( -u S + I ) \/ X = ( -u S - I ) ) ) ) $=
      ( c2 co caddc cdiv cmul cexp c4 cmin cc0 wceq c1 cneg wo sqcld wcel mulcl
      cc 2cn sylancr eqeltrd addcld halfcld mulcld 4cn a1i wne divcld subcld wa
      4ne0 eqnetrrd sqne0 syl mpbid mulne0b mpbird simprd 2ne0 diveq0ad addassd
      oveq1d divdird divsubdird div23d sqvald oveq2d sqmul sqvali oveq1i syl6eq
      divrec2d mulassd 3eqtrd divcan3d eqtrd divcan4d addsub12d negcld subsub4d
      3eqtr4d 2timesd subnegd negdi2d eqtr3d oveq12d eqeq1d bitr3d mp1i ax-1ne0
      wb ax-1cn halfcl divne0i 2cnne0 divmuldiv syl22anc mulid2d 2t2e4 divcan2d
      nncand eqtr2d quad2 recidi oveq2i div1d syl5eq eqeq2d orbi12d 3bitrd ) AG
      PUAQZFBRQZPSQZRQZFPSQZGTQZCUBSQZUCQZDSQZRQZUDUEZUFPSQZYETQZDGTQZDPUAQZEPU
      AQZUCQZPSQZRQZRQZUDUEZGDUGZERQZPYPTQZSQZUEZGUUFEUCQZUUHSQZUEZUHGUUGUEZGUU
      KUEZUHAYNPSQZUDUEYOUUEAYNPAYHYMAYEYGAGJUIZAYFAFBAFPDTQZPUAQZULLAUURAPULUJ
      ZDULUJZUURULUJZUMKPDUKUNZUIUOZHUPUQZUPAYLDAYJYKAYIGAFUVDUQZJURZACUBIUBULU
      JAUSUTZUBUDVAAVEUTZVBZVCKAPUDVAZDUDVAZAUVKUVLVDZUURUDVAZAUUSUDVAZUVNAFUUS
      UDLMVFAUVBUVOUVNXEUVCUURVGVHVIAUUTUVAUVMUVNXEUMKPDVJUNVKVLZVBZUPUUTAUMUTZ
      UVKAVMUTZVNAUUPUUDUDAUUPYEYGYMRQZRQZPSQYEPSQZUVTPSQZRQUUDAYNUWAPSAYEYGYMU
      UQUVEUVQVOVPAYEUVTPUUQAYGYMUVEUVQUPUVRUVSVQAUWBYQUWCUUCRAYEPUUQUVRUVSWFAU
      WCUURGTQZYGYKDSQZUCQZRQZPSQUWDPSQZUWFPSQZRQUUCAUVTUWGPSAUVTYGUWDUWEUCQZRQ
      UWGAYMUWJYGRAYMYJDSQZUWEUCQUWJAYJYKDUVGUVJKUVPVRAUWKUWDUWEUCAUWKYIDSQZGTQ
      UWDAYIGDUVFJKUVPVSAUWLUURGTAUWLUURDTQZDSQUURAYIUWMDSAPYSTQZPDDTQZTQYIUWMA
      YSUWOPTADKVTWAAYIPUWNTQZPSQUWNAFUWPPSAFUUSPPTQZYSTQZUWPLAUUSPPUAQZYSTQZUW
      RAUUTUVAUUSUWTUEUMKPDWBUNUWSUWQYSTPUMWCWDWEAPPYSUVRUVRADKUIZWGWHVPAUWNPAU
      UTYSULUJUWNULUJUMUXAPYSUKUNUVRUVSWIWJZAPDDUVRKKWGWOVPAUURDUVCKUVPWKWJVPWJ
      VPWJWAAYGUWDUWEUVEAUURGUVCJURZAYKDUVJKUVPVBZWLWJVPAUWDUWFPUXCAYGUWEUVEUXD
      VCUVRUVSVQAUWHYRUWIUUBRAUWHPYRTQZPSQYRAUWDUXEPSAPDGUVRKJWGVPAYRPADGKJURUV
      RUVSWIWJAUWFUUAPSAYSYSUGZBPSQZUCQZUCQZUWEUCQYSUXHUWERQZUCQUWFUUAAYSUXHUWE
      UXAAUXFUXGAYSUXAWMABHUQZVCUXDWNAYGUXIUWEUCAYGYSYSRQZUXGRQZYSYSUXGRQZRQZUX
      IAYGYIUXGRQUXMAFBPUVDHUVRUVSVQAYIUXLUXGRAYIUWNUXLUXBAYSUXAWPWJVPWJAYSYSUX
      GUXAUXAUXKVOAYSUXNUGZUCQUXOUXIAYSUXNUXAAYSUXGUXAUXKUPWQAUXPUXHYSUCAYSUXGU
      XAUXKWRWAWSWHVPAYTUXJYSUCOWAWOVPWTWHWTWHXAXBAYPDUUBEGUFULUJZYPULUJAXFUFXG
      XCYPUDVAAUFPXFUMXDVMXHUTKAUUAAYSYTUXAAENUIZVCZUQJNAYSUBYPUUBTQZTQZUCQYSUU
      AUCQYTAUYAUUAYSUCAUYAUBUUAUBSQZTQUUAAUXTUYBUBTAUXTUFUUATQZUWQSQZUYBAUXQUU
      AULUJUUTUVKVDZUYEUXTUYDUEUXQAXFUTUXSUYEAXIUTZUYFUFUUAPPXJXKAUYCUUAUWQUBSA
      UUAUXSXLUWQUBUEAXMUTWTWJWAAUUAUBUXSUVHUVIXNWJWAAYSYTUXAUXRXOXPXQAUUJUUNUU
      MUUOAUUIUUGGAUUIUUGUFSQUUGUUHUFUUGSPUMVMXRZXSAUUGAUUFEADKWMZNUPXTYAYBAUUL
      UUKGAUULUUKUFSQUUKUUHUFUUKSUYGXSAUUKAUUFEUYHNVCXTYAYBYCYD $.

    dquart.d $e |- ( ph -> D e. CC ) $.
    dquart.3 $e |- ( ph -> ( ( ( M ^ 3 ) + ( ( 2 x. B ) x. ( M ^ 2 ) ) ) +
      ( ( ( ( B ^ 2 ) - ( 4 x. D ) ) x. M ) + -u ( C ^ 2 ) ) ) = 0 ) $.
    $( Lemma for ~ dquart .  (Contributed by Mario Carneiro, 6-May-2015.) $)
    dquartlem2 $p |- ( ph ->
      ( ( ( ( M + B ) / 2 ) ^ 2 ) - ( ( ( C ^ 2 ) / 4 ) / M ) ) = D ) $=
      ( co cmul caddc c2 cdiv cexp c4 cmin wcel 2cn mulcl sylancr sqcld eqeltrd
      addcld a1i cc0 wne 2ne0 sqdivd sq2 oveq2i syl6eq oveq1d 4cn divcld subcld
      cc 4ne0 subdird div23d eqcomd divcan1d oveq12d wceq binom2 syl2anc mulcld
      c3 adddird c1 df-3 cn0 expp1 sylancl syl5req mulassd mul32d eqtr3d sqvald
      2nn0 oveq2d 3eqtr4d eqtrd 3eqtrd 3nn0 expcl addsubassd eqtr4d cneg negcld
      addassd negsubd 3eqtr3d subeq0d subsub23 syl3anc mpbid divcan3d mulcan2ad
      wb divsubdird ) AGBUASZUBUCSUBUDSZCUBUDSZUEUCSZGUCSZUFSXKUBUDSZUEUCSZXOUF
      SZDAXLXQXOUFAXLXPUBUBUDSZUCSXQAXKUBAGBAGUBETSZUBUDSVFMAXTAUBVFUGZEVFUGXTV
      FUGUHLUBEUIUJUKULZIUMZYAAUHUNZUBUOUPAUQUNURXSUEXPUCUSUTVAVBAXRDGAXQXOAXPU
      EAXKYCUKZUEVFUGZAVCUNZUEUOUPAVGUNZVDZAXNGAXMUEACJUKZYGYHVDZYBNVDZVEQYBNAX
      RGTSXQGTSZXOGTSZUFSXPGTSZUEUCSZXNUFSZDGTSZAXQXOGYIYLYBVHAYMYPYNXNUFAYPYMA
      XPGUEYEYBYGYHVIVJAXNGYKYBNVKVLAYOXMUFSZUEUCSUEYRTSZUEUCSYQYRAYSYTUEUCAYSU
      EDTSZGTSZYTAYOUUBUFSZXMVMZYSUUBVMZAUUCGVQUDSZUBBTSZGUBUDSZTSZUASZBUBUDSZG
      TSZUASZUUBUFSZUUJUUKUUAUFSZGTSZUASZXMAYOUUMUUBUFAYOUUHUBGBTSZTSZUASZUUKUA
      SZGTSUUTGTSZUULUASUUMAXPUVAGTAGVFUGZBVFUGZXPUVAVMYBIGBVNVOVBAUUTUUKGAUUHU
      USAGYBUKZAYAUURVFUGUUSVFUGUHAGBYBIVPUBUURUIUJZUMABIUKZYBVRAUVBUUJUULUAAUV
      BUUHGTSZUUSGTSZUASUUJAUUHUUSGUVEUVFYBVRAUVHUUFUVIUUIUAAUUFGUBVSUASZUDSZUV
      HVQUVJGUDVTUTAUVCUBWAUGUVKUVHVMYBWIGUBWBWCWDAUUGGTSZGTSUUGGGTSZTSUVIUUIAU
      UGGGAYAUVDUUGVFUGUHIUBBUIUJZYBYBWEAUUSUVLGTAUBGTSBTSUUSUVLAUBGBYDYBIWEAUB
      GBYDYBIWFWGVBAUUHUVMUUGTAGYBWHWJWKVLWLVBWMVBAUUNUUJUULUUBUFSZUASUUQAUUJUU
      LUUBAUUFUUIAUVCVQWAUGUUFVFUGYBWNGVQWOWCAUUGUUHUVNUVEVPUMZAUUKGUVGYBVPAUUA
      GAYFDVFUGUUAVFUGVCQUEDUIUJZYBVPZWPAUUPUVOUUJUAAUUKUUAGUVGUVQYBVHWJWQAUUQX
      MAUUJUUPUVPAUUOGAUUKUUAUVGUVQVEYBVPZUMZYJAUUQXMWRZUASUUJUUPUWAUASUASUUQXM
      UFSUOAUUJUUPUWAUVPUVSAXMYJWSWTAUUQXMUVTYJXARXBXCWMAYOVFUGUUBVFUGXMVFUGUUD
      UUEXIAXPGYEYBVPZUVRYJYOUUBXMXDXEXFAUEDGYGQYBWEWLVBAYOXMUEUWBYJYGYHXJAYRUE
      ADGQYBVPYGYHXGXBWMXHWL $.

    dquart.j $e |- ( ph -> J e. CC ) $.
    dquart.j2 $e |- ( ph -> ( J ^ 2 ) =
      ( ( -u ( S ^ 2 ) - ( B / 2 ) ) - ( ( C / 4 ) / S ) ) ) $.
    $( Solve a depressed quartic equation.  To eliminate ` S ` , which is the
       square root of a solution ` M ` to the resolvent cubic equation, apply
       ~ cubic or one of its variants.  (Contributed by Mario Carneiro,
       6-May-2015.) $)
    dquart $p |- ( ph ->
       ( ( ( ( X ^ 4 ) + ( B x. ( X ^ 2 ) ) ) + ( ( C x. X ) + D ) ) = 0 <->
         ( ( X = ( -u S + I ) \/ X = ( -u S - I ) ) \/
           ( X = ( S + J ) \/ X = ( S - J ) ) ) ) ) $=
      ( c4 cexp co c2 cmul caddc cc0 wceq cdiv cmin wo cneg cc wcel sqcld mulcl
      2cn sylancr eqeltrd addcld halfcld binom2 syl2anc oveq2i cn0 2nn0 expmuld
      2t2e4 a1i syl5reqr mul12d wne 2ne0 divcan2d oveq2d mulcomd adddird 3eqtrd
      eqtrd oveq12d 4nn0 expcl sylancl mulcld add12d oveq1d addassd 4ne0 divcld
      4cn subcld wa eqnetrrd wb sqne0 syl mulne0b mpbird simprd divcan5d subdid
      mulassd eqtr3d divassd syl5eqr sqdivd divdird binom2sub sqmuld sq2 syl6eq
      mpbid eqtr2d div23d sqvald divcan3d mul32d subsubd eqtr4d 3eqtr3d pnncand
      divsubdird negcld add4d negsubd dquartlem2 subsq mul0ord dquartlem1 sqneg
      eqeq1d mulneg2 eqcomd negeqd divneg2d 3eqtr2d negnegd eqeq2d orbi12d
      3bitr3d 3bitrd ) AIUBUCUDZBIUEUCUDZUFUDZUGUDZCIUFUDZDUGUDUGUDZUHUIUUDHBUG
      UDZUEUJUDZUGUDZHUEUJUDZIUFUDZCUBUJUDZUKUDZEUJUDZUGUDZUUKUUPUKUDZUFUDZUHUI
      UUQUHUIZUURUHUIZULIEUMZFUGUDUIIUVBFUKUDUIULZIEGUGUDZUIZIEGUKUDZUIZULZULAU
      UHUUSUHAUUKUEUCUDZUUPUEUCUDZUKUDZUUHUUSAUVKHUUDUFUDZUUFUUJUEUCUDZUGUDZUGU
      DZUVLUUGCUEUCUDZUBUJUDZHUJUDZUKUDZUKUDZUKUDUVNUVSUGUDZUUHAUVIUVOUVJUVTUKA
      UVIUUDUEUCUDZUEUUDUUJUFUDUFUDZUGUDZUVMUGUDZUVLUUFUGUDZUVMUGUDUVOAUUDUNUOU
      UJUNUOUVIUWEUIAILUPZAUUIAHBAHUEEUFUDZUEUCUDZUNNAUWHAUEUNUOZEUNUOZUWHUNUOZ
      URMUEEUQUSZUPUTZJVAZVBZUUDUUJVCVDAUWDUWFUVMUGAUWDUUCUVLUUEUGUDZUGUDUWFAUW
      BUUCUWCUWQUGAUUCIUEUEUFUDZUCUDUWBUWRUBIUCVIVEAIUEUELUEVFUOAVGVJZUWSVHVKAU
      WCUUDUEUUJUFUDZUFUDZUUIUUDUFUDZUWQAUEUUDUUJUWJAURVJZUWGUWPVLAUXAUUDUUIUFU
      DUXBAUWTUUIUUDUFAUUIUEUWOUXCUEUHVMZAVNVJZVOVPAUUDUUIUWGUWOVQVTAHBUUDUWNJU
      WGVRVSWAAUUCUVLUUEAIUNUOUBVFUOUUCUNUOLWBIUBWCWDZAHUUDUWNUWGWEZABUUDJUWGWE
      ZWFVTWGAUVLUUFUVMUXGAUUCUUEUXFUXHVAZAUUJUWPUPZWHVSAUVJHIUFUDZCUEUJUDZUKUD
      ZUWHUJUDZUEUCUDUXMUEUCUDZUWIUJUDZUVTAUUPUXNUEUCAUEUUOUFUDZUWHUJUDUUPUXNAU
      UOEUEAUUMUUNAUULIAHUWNVBZLWEZACUBKUBUNUOAWKVJZUBUHVMAWIVJZWJZWLZMUXCAUXDE
      UHVMZAUXDUYDWMZUWHUHVMZAUWIUHVMZUYFAHUWIUHNOWNAUWLUYGUYFWOUWMUWHWPWQXMZAU
      WJUWKUYEUYFWOURMUEEWRUSWSWTZUXEXAAUXQUXMUWHUJAUXQUEUUMUFUDZUEUUNUFUDZUKUD
      UXMAUEUUMUUNUXCUXSUYBXBAUYJUXKUYKUXLUKAUEUULUFUDZIUFUDUYJUXKAUEUULIUXCUXR
      LXCAUYLHIUFAHUEUWNUXCUXEVOWGXDAUECUFUDZUBUJUDZUYKUXLAUECUBUXCKUXTUYAXEAUY
      NUYMUWRUJUDUXLUWRUBUYMUJVIVEACUEUEKUXCUXCUXEUXEXAXFXDWAVTWGXDWGAUXMUWHAUX
      KUXLAHIUWNLWEZACKVBZWLUWMUYHXGAHUEUCUDZUUDUFUDZUXKCUFUDZUKUDZUVQUGUDZHUJU
      DUYTHUJUDZUVRUGUDZUXPUVTAUYTUVQHAUYRUYSAUYQUUDAHUWNUPZUWGWEZAUXKCUYOKWEZW
      LAUVPUBACKUPUXTUYAWJZUWNOXHAVUAUXOHUWIUJAUXOUXKUEUCUDZUEUXKUXLUFUDUFUDZUK
      UDZUXLUEUCUDZUGUDZVUAAUXKUNUOUXLUNUOUXOVULUIUYOUYPUXKUXLXIVDAVUJUYTVUKUVQ
      UGAVUHUYRVUIUYSUKAHIUWNLXJAVUIUXKUEUXLUFUDZUFUDUYSAUEUXKUXLUXCUYOUYPVLAVU
      MCUXKUFACUEKUXCUXEVOVPVTWAAVUKUVPUEUEUCUDZUJUDUVQACUEKUXCUXEXGVUNUBUVPUJX
      KVEXLWAXNNWAAVUCUVLUUGUKUDZUVRUGUDUVTAVUBVUOUVRUGAVUBUYRHUJUDZUYSHUJUDZUK
      UDVUOAUYRUYSHVUEVUFUWNOYCAVUPUVLVUQUUGUKAVUPUYQHUJUDZUUDUFUDUVLAUYQUUDHVU
      DUWGUWNOXOAVURHUUDUFAVURHHUFUDZHUJUDHAUYQVUSHUJAHUWNXPWGAHHUWNUWNOXQVTWGV
      TAVUQHUUGUFUDZHUJUDUUGAUYSVUTHUJAUYSHCUFUDIUFUDVUTAHICUWNLKXRAHCIUWNKLXCV
      TWGAUUGHACIKLWEZUWNOXQVTWAVTWGAUVLUUGUVRUXGVVAAUVQHVUGUWNOWJZXSXTYAVSWAAU
      VLUVNUVSUXGAUUFUVMUXIUXJVAAUUGUVRVVAVVBWLYBAUVNUUGUVRUMZUGUDZUGUDUUFUUGUG
      UDZUVMVVCUGUDZUGUDZUWAUUHAUUFUVMUUGVVCUXIUXJVVAAUVRVVBYDYEAVVDUVSUVNUGAUU
      GUVRVVAVVBYFVPAVVGVVEDUGUDUUHAVVFDVVEUGAVVFUVMUVRUKUDDAUVMUVRUXJVVBYFABCD
      EFHIJKLMNOPQRSYGVTVPAUUFUUGDUXIVVARWHVTYAVSAUUKUNUOUUPUNUOUVKUUSUIAUUDUUJ
      UWGUWPVAZAUUOEUYCMUYIWJZUUKUUPYHVDXDYLAUUQUURAUUKUUPVVHVVIVAAUUKUUPVVHVVI
      WLYIAUUTUVCUVAUVHABCEFHIJKLMNOPQYJAUUKUUOUVBUJUDZUGUDZUHUIIUVBUMZGUGUDZUI
      ZIVVLGUKUDZUIZULUVAUVHABCUVBGHIJKLAEMYDAHUWHUMZUEUCUDZUEUVBUFUDZUEUCUDAHU
      WIVVRNAUWLVVRUWIUIUWMUWHYKWQXTAVVSVVQUEUCAUWJUWKVVSVVQUIURMUEEYMUSWGXTOTA
      GUEUCUDEUEUCUDZUMZBUEUJUDZUKUDZUUNEUJUDZUKUDVWCVWDUMZUGUDUVBUEUCUDZUMZVWB
      UKUDZUUNUVBUJUDZUGUDUAAVWCVWDAVWAVWBAVVTAEMUPYDABJVBWLAUUNEUYBMUYIWJYFAVW
      CVWHVWEVWIUGAVWAVWGVWBUKAVVTVWFAVWFVVTAUWKVWFVVTUIMEYKWQYNYOWGAUUNEUYBMUY
      IYPWAYQYJAVVKUURUHAUUKUUPUMZUGUDVVKUURAVWJVVJUUKUGAUUOEUYCMUYIYPVPAUUKUUP
      VVHVVIYFXDYLAVVNUVEVVPUVGAVVMUVDIAVVLEGUGAEMYRZWGYSAVVOUVFIAVVLEGUKVWKWGY
      SYTUUAYTUUB $.
  $}

  ${
    quart1.a $e |- ( ph -> A e. CC ) $.
    quart1.b $e |- ( ph -> B e. CC ) $.
    quart1.c $e |- ( ph -> C e. CC ) $.
    quart1.d $e |- ( ph -> D e. CC ) $.
    quart1.p $e |- ( ph -> P = ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ) $.
    quart1.q $e |- ( ph -> Q =
      ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ) $.
    quart1.r $e |- ( ph -> R = ( ( D - ( ( C x. A ) / 4 ) ) +
 ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) $.
    $( Closure lemmas for ~ quart .  (Contributed by Mario Carneiro,
       7-May-2015.) $)
    quart1cl $p |- ( ph -> ( P e. CC /\ Q e. CC /\ R e. CC ) ) $=
      ( cc wcel c3 c8 co cdiv c2 cexp cmul cmin 3cn 8cn 8nn nnne0i divcli sqcld
      mulcl sylancr subcld eqeltrd caddc halfcld cn0 3nn0 expcl sylancl a1i cc0
      mulcld wne divcld addcld c4 c1 c6 cdc c5 4cn 4ne0 1nn0 decnncl nncni 2nn0
      6nn 5nn0 deccl 4nn0 3jca ) AFPQGPQHPQAFCRSUATZBUBUCTZUDTZUETPMACWFJAWDPQW
      EPQWFPQRSUFUGSUHUIZUJABIUKZWDWEULUMUNUOAGDBCUDTZUBUATZUETZBRUCTZSUATZUPTP
      NAWKWMADWJKAWIABCIJVDUQUNAWLSABPQZRURQWLPQIUSBRUTVASPQAUGVBSVCVEAWGVBVFVG
      UOAHEDBUDTZVHUATZUETZWECUDTZVIVJVKZUATZRUBVLVKZVJVKZUATZBVHUCTZUDTZUETZUP
      TPOAWQXFAEWPLAWOVHADBKIVDVHPQAVMVBVHVCVEAVNVBVFUNAWTXEAWRWSAWECWHJVDWSPQA
      WSVIVJVOVSVPZVQVBWSVCVEAWSXGUIVBVFAXCPQXDPQZXEPQRXBUFXBXAVJUBVLVRVTWAVSVP
      ZVQXBXIUIUJAWNVHURQXHIWBBVHUTVAXCXDULUMUNVGUOWC $.

    quart1.x $e |- ( ph -> X e. CC ) $.
    quart1.y $e |- ( ph -> Y = ( X + ( A / 4 ) ) ) $.
    $( Lemma for ~ quart1 .  (Contributed by Mario Carneiro, 6-May-2015.) $)
    quart1lem $p |- ( ph -> D = ( ( ( ( A ^ 4 ) / ; ; 2 5 6 ) +
      ( P x. ( ( A / 4 ) ^ 2 ) ) ) + ( ( Q x. ( A / 4 ) ) + R ) ) ) $=
      ( co c4 cexp c2 c5 c6 cdiv cmul caddc cmin c8 c1 c3 mulcld halfcld subcld
      cdc cc wcel cn0 3nn0 expcl sylancl 8cn a1i cc0 wne 8nn nnne0i divcld 4ne0
      4cn adddird oveq1d divassd sqvald mul32d eqtrd 2cn 4t2e8 mulcomli syl6eqr
      oveq2i 2ne0 divmuldivd eqtr4d oveq12d subdird expp1 syl5eq div23d 3eqtr4d
      df-4 wceq sqcld 4nn0 subadd23d addcomd 3eqtrd 1nn0 6nn decnncl nncni 2nn0
      3cn 5nn0 deccl divcli mulcl sylancr addsubd addcld cneg add12d negsubdi2d
      ppncand oveq2d addsub4d 1p2e3 oveq1i 1cnd syl5eqr mulid2d divcan2d 4t4e16
      3eqtr3d divdiv1d syl6eq mulcli mulne0i mul32i 2exp4 8t2e16 eqtr4i oveq12i
      4p4e8 expadd mp3an 2exp8 3eqtr3i 3eqtr2d 3eqtr2i addsub12d 2timesd pncand
      pnpcan2d sqdivd sqvali eqtri mulcomd mulassd 2p2e4 expaddd eqnetri negeqd
      syl5eqel 3eqtr3rd eqeltrd negsubd pncan3d eqtr2d ) ABUAUBTZUCUDUPZUEUPZUF
      TZFBUAUFTZUCUBTZUGTZUHTZGUVEUGTZHUHTZUHTUVHEUVHUITZUHTEAUVJUVKUVHUHAUVJUV
      AUJUFTZUAUFTZBUCUBTZCUGTZUJUFTZUITZDBUGTZUAUFTZUHTZEUVOUKUEUPZUFTZULUVCUF
      TZUVAUGTZUITZUHTZUVSUITZUHTUVQUWFUHTZUVKAUVIUVTHUWGUHAUVIUVSUVPUITZUVMUHT
      ZUVSUVQUHTUVTADBCUGTZUCUFTZUITZBULUBTZUJUFTZUHTZUVEUGTUWMUVEUGTZUWOUVEUGT
      ZUHTUVIUWJAUWMUWOUVEADUWLMAUWKABCKLUMZUNZUOAUWNUJABUQURZULUSURZUWNUQURKUT
      BULVAVBZUJUQURAVCVDZUJVEVFAUJVGVHZVDZVIZABUAKUAUQURAVKVDZUAVEVFAVJVDZVIZV
      LAGUWPUVEUGPVMAUWIUWQUVMUWRUHAUWIDUVEUGTZUWLUVEUGTZUITUWQAUVSUXKUVPUXLUIA
      DBUAMKUXHUXIVNAUVPUWKBUGTZUCUAUGTZUFTZUXLAUVPUXMUJUFTUXOAUVOUXMUJUFAUVOBB
      UGTZCUGTUXMAUVNUXPCUGABKVOVMABBCKKLVPVQVMUXNUJUXMUFUAUCUJVKVRVSVTWBWAAUWK
      UCBUAUWSUCUQURZAVRVDZKUXHUCVEVFAWCVDZUXIWDWEWFADUWLUVEMUWTUXJWGWEAUVMUWOB
      UGTZUAUFTUWRAUVLUXTUAUFAUVLUWNBUGTZUJUFTUXTAUVAUYAUJUFAUVABULUKUHTZUBTZUY
      AUAUYBBUBWLWBAUXAUXBUYCUYAWMKUTBULWHVBWIVMAUWNBUJUXCKUXDUXFWJVQVMAUWOBUAU
      XGKUXHUXIVNVQWFWKAUVSUVPUVMAUVRUAADBMKUMUXHUXIVIZAUVOUJAUVNCABKWNZLUMZUXD
      UXFVIZAUVLUAAUVAUJAUXAUAUSURZUVAUQURZKWOBUAVAVBZUXDUXFVIZUXHUXIVIZWPAUVSU
      VQUYDAUVMUVPUYLUYGUOZWQWRAHEUVSUITUWEUHTUWGQAEUWEUVSNAUWBUWDAUVOUWAUYFUWA
      UQURAUWAUKUEWSWTXAZXBZVDZUWAVEVFAUWAUYNVHZVDZVIZAUWCUQURUYIUWDUQURULUVCXD
      UVCUVBUEUCUDXCXEXFWTXAZXBZUVCUYTVHZXGUYJUWCUVAXHXIZUOZUYDXJWEWFAUVQUVSUWF
      UYMUYDAEUWENVUDXKXOAUWHEUVQUWEUHTZUHTEUVHXLZUHTUVKAUVQEUWEUYMNVUDXMAVUEVU
      FEUHAUVPUWDUHTZUVMUWBUHTZUITZXLVUHVUGUITVUFVUEAVUGVUHAUVPUWDUYGVUCXKAUVMU
      WBUYLUYSXKXNAVUIUVHAVUIVUGUWBUVMUHTZUITUVPUWBUITZUWDUVMUITZUHTZUVHAVUHVUJ
      VUGUIAUVMUWBUYLUYSWQXPAUVPUWDUWBUVMUYGVUCUYSUYLXQAUWBVULUHTZUVDUWBULUVMUA
      UFTZUGTZUITZUHTZVUMUVHAVUNUWBUVDVUPUITZUHTVURAVULVUSUWBUHAVULUVDUCUVDUGTZ
      UHTZVUPVUTUHTZUITVUSAUWDVVAUVMVVBUIAULUVAUGTZUVCUFTULUVDUGTZUWDVVAAULUVAU
      VCULUQURZAXDVDZUYJUVCUQURAVUAVDZUVCVEVFAVUBVDZVNAULUVAUVCVVFUYJVVGVVHWJAV
      VDUKUVDUGTZVUTUHTZVVAAVVDUKUCUHTZUVDUGTVVJVVKULUVDUGXRXSAUKUCUVDAXTZUXRAU
      VAUVCUYJVVGVVHVIZVLYAAVVIUVDVUTUHAUVDVVMYBVMVQYEAUAVUOUGTZVUPUKVUOUGTZUHT
      ZUVMVVBAVVNUYBVUOUGTVVPUAUYBVUOUGWLXSAULUKVUOVVFVVLAUVMUAUYLUXHUXIVIZVLWI
      AUVMUAUYLUXHUXIYCAVVOVUTVUPUHAVVOVUOUVLUWAUFTZVUTAVUOVVQYBAVUOUVLUAUAUGTZ
      UFTVVRAUVLUAUAUYKUXHUXHUXIUXIYFVVSUWAUVLUFYDWBYGZAVVRUVAUJUWAUGTZUFTZUCVW
      BUCUFTZUGTVUTAUVAUJUWAUYJUXDUYPUXFUYRYFAVWBUCAUVAVWAUYJVWAUQURAUJUWAVCUYO
      YHVDZVWAVEVFAUJUWAVCUYOUXEUYQYIVDZVIUXRUXSYCAVWCUVDUCUGAVWCUVAVWAUCUGTZUF
      TUVDAUVAVWAUCUYJVWDUXRVWEUXSYFVWFUVCUVAUFVWFUJUCUGTZUWAUGTUCUAUBTZVWHUGTZ
      UVCUJUWAUCVCUYOVRYJVWHVWGVWHUWAUGVWHUWAVWGYKYLYMYKYNUCUAUAUHTZUBTZUCUJUBT
      VWIUVCVWJUJUCUBYOWBUXQUYHUYHVWKVWIWMVRWOWOUCUAUAYPYQYRYSUUAWBYGXPYTWRXPYE
      WFAUVDVUPVUTVVMAVVEVUOUQURVUPUQURXDVVQULVUOXHXIZAUXQUVDUQURVUTUQURVRVVMUC
      UVDXHXIUUEVQXPAUWBUVDVUPUYSVVMVWLUUBVQAVUKUWBVULUHAVUKUWBUWBUHTZUWBUITUWB
      AUVPVWMUWBUIAUCUVPUCUFTZUGTUCUWBUGTUVPVWMAVWNUWBUCUGAVWNUVOVWGUFTUWBAUVOU
      JUCUYFUXDUXRUXFUXSYFVWGUWAUVOUFYLWBYGXPAUVPUCUYGUXRUXSYCAUWBUYSUUCYEVMAUW
      BUWBUYSUYSUUDVQVMAUVGVUQUVDUHAUVGCULUJUFTZUVNUGTZUITZUVFUGTCUVFUGTZVWPUVF
      UGTZUITVUQAFVWQUVFUGOVMACVWPUVFLAVWOUQURZUVNUQURVWPUQURULUJXDVCUXEXGZUYEV
      WOUVNXHXIZAUVEUXJWNZWGAVWRUWBVWSVUPUIAVWRCUVNUWAUFTZUGTCUVNUGTZUWAUFTUWBA
      UVFVXDCUGAUVFUVNUAUCUBTZUFTZVXDABUAKUXHUXIUUFZVXFUWAUVNUFVXFVVSUWAUAVKUUG
      YDUUHZWBYGXPACUVNUWALUYEUYPUYRVNAVXEUVOUWAUFACUVNLUYEUUIVMYTAVWPVXGUGTZUL
      UVLVXFUFTZUGTZVWSVUPAVWPUVNUGTZVXFUFTULUVLUGTZVXFUFTVXJVXLAVXMVXNVXFUFAVX
      MVWOUVNUVNUGTZUGTZVVCUJUFTZVXNAVWOUVNUVNVWTAVXAVDUYEUYEUUJAVXQVWOUVAUGTVX
      PAULUVAUJVVFUYJUXDUXFWJAUVAVXOVWOUGAUVABUCUCUHTZUBTVXOVXRUABUBUUKWBABUCUC
      KUCUSURAXCVDZVXSUULYAXPVQAULUVAUJVVFUYJUXDUXFVNYTVMAVWPUVNVXFVXBUYEAVXFUW
      AUQVXIUYPUUOZVXFVEVFAVXFUWAVEVXIUYQUUMVDZVNAULUVLVXFVVFUYKVXTVYAVNYEAUVFV
      XGVWPUGVXHXPAVUOVXKULUGAVUOVVRVXKVVTVXFUWAUVLUFVXIWBWAXPWKWFWRXPWKWRUUNAU
      VMUWBUVPUWDUYLUYSUYGVUCXQUUPXPAEUVHNAUVDUVGVVMAFUVFAFVWQUQOACVWPLVXBUOUUQ
      VXCUMXKZUURWRWRXPAUVHEVYBNUUSUUT $.

    $( Depress a quartic equation.  (Contributed by Mario Carneiro,
       6-May-2015.) $)
    quart1 $p |- ( ph -> ( ( ( X ^ 4 ) + ( A x. ( X ^ 3 ) ) ) +
      ( ( B x. ( X ^ 2 ) ) + ( ( C x. X ) + D ) ) ) =
        ( ( ( Y ^ 4 ) + ( P x. ( Y ^ 2 ) ) ) + ( ( Q x. Y ) + R ) ) ) $=
      ( co c4 cexp c2 cmul caddc c3 c8 cdiv c5 cdc oveq1d wcel wceq 4cn a1i cc0
      c6 cc wne 4ne0 divcld binom4 syl2anc cn0 3nn0 expcl sylancl mul12d oveq2d
      divcan2d mulcomd 3eqtrd 6nn nncni sqcld mulassd c1 3cn 2cn 3t2e6 mulcomli
      8cn 8t2e16 oveq12i wa 8nn nnne0i pm3.2i 2cnne0 divcan5 eqtr3i oveq2i 1nn0
      decnncl div12d syl5eqr divcli mulcom sylancr sqdivd sqvali 4t4e16 3eqtr4d
      mp3an eqtri syl6eq 3eqtr4rd mulcld df-3 expp1 mp2an oveq1i 3eqtri expdivd
      2nn0 divdiv1d 3eqtr4a 2ne0 eqtr4d expmul 4t2e8 2exp8 oveq12d addcld mulcl
      4nn0 sq2 halfcld addassd eqtrd adddid add4d adddird eqtr3d subcld subdird
      5nn0 cmin divassd 3eqtr2d deccl simp1d eqeltrd simp2d simp3d binom2 2t2e4
      quart1cl pncan3d syl5eq div23d 3eqtr3d addsub12d subsub2d mulid2d 3eqtr3a
      3m1e2 1cnd addcomd ppncand npcand quart1lem 3eqtrrd ) AJUAUBTZFJUCUBTZUDT
[encoded data, 4960 characters]
      ABCDEFGHIJKLMNOPQRSUVBYCXCVIVLVIUVC $.
  $}

  ${
    quartlem1.p $e |- ( ph -> P e. CC ) $.
    quartlem1.q $e |- ( ph -> Q e. CC ) $.
    quartlem1.r $e |- ( ph -> R e. CC ) $.
    quartlem1.u $e |- ( ph -> U = ( ( P ^ 2 ) + ( ; 1 2 x. R ) ) ) $.
    quartlem1.v $e |- ( ph -> V = ( ( -u ( 2 x. ( P ^ 3 ) ) -
      ( ; 2 7 x. ( Q ^ 2 ) ) ) + ( ; 7 2 x. ( P x. R ) ) ) ) $.
    $( Lemma for ~ quart .  (Contributed by Mario Carneiro, 6-May-2015.) $)
    quartlem1 $p |- ( ph ->
     ( U = ( ( ( 2 x. P ) ^ 2 ) - ( 3 x. ( ( P ^ 2 ) - ( 4 x. R ) ) ) ) /\
       V = ( ( ( 2 x. ( ( 2 x. P ) ^ 3 ) ) - ( 9 x. ( ( 2 x. P ) x.
          ( ( P ^ 2 ) - ( 4 x. R ) ) ) ) ) + ( ; 2 7 x. -u ( Q ^ 2 ) ) ) ) ) $=
      ( c2 cmul co c3 c4 cmin cc wcel c8 cexp wceq c9 c7 cdc caddc c1 2cn sqmul
      cneg sylancr sq2 oveq1i syl6eq oveq1d 4cn a1i sqcld subdird eqtr4d ax-1cn
      3cn 3p1e4 subaddrii mulid2 syl5eq syl eqtr2d mulcl 1nn0 2nn decnncl nncni
      subsubd subdid 4t3e12 mulcomli mulassd syl5eqr oveq2d 3eqtr4d cn0 mulexpd
      3nn0 cu2 8cn expcl sylancl mul12d eqtrd 9cn mulcld df-3 oveq2i 2nn0 expp1
      mulcomd mul4d 4t2e8 oveq12d 9t8e72 negsubdi2d 8p1e9 mulid2d eqtr3d negeqd
      7nn0 3eqtrd 7nn mulneg2 negcld addsubd addcld negsubd jca ) AELBMNZLUANZO
      BLUANZPDMNZQNZMNZQNZUBFLXPOUANZMNZUCXPXTMNZMNZQNZLUDUEZCLUANZUJMNZUFNZUBA
      XRUGLUEZDMNZUFNZXQOXRMNZYMQNZQNZEYBAYNXQYOQNZYMUFNYQAXRYRYMUFAYRPOQNZXRMN
      ZXRAYRPXRMNZYOQNYTAXQUUAYOQAXQLLUANZXRMNZUUAALRSZBRSZXQUUCUBUHGLBUIUKUUBP
      XRMULUMUNUOAPOXRPRSZAUPUQZORSZAVBUQZABGURZUSUTAXRRSZYTXRUBUUJUUKYTUGXRMNX
      RYSUGXRMPOUGUPVBVAVCVDUMXRVEVFVGVHUOAXQYOYMAXPAUUDUUEXPRSUHGLBVIUKZURAUUH
      UUKYORSVBUUJOXRVIUKAYLRSDRSZYMRSYLUGLVJVKVLVMIYLDVIUKVNUTJAYAYPXQQAYAYOOX
      SMNZQNYPAOXRXSUUIUUJAUUFUUMXSRSUPIPDVIUKZVOAYMUUNYOQAYMOPMNZDMNUUNUUPYLDM
      POYLUPVBVPVQUMAOPDUUIUUGIVRVSVTUTVTWAAYKLBOUANZMNZUJZUDLUEZBDMNZMNZUFNZYH
      YIMNZUJZUFNZFAYGUVCYJUVEUFAYGTUURMNZUCUURMNZUVBQNZQNUVGUVHQNZUVBUFNUVCAYD
      UVGYFUVIQAYDLTUUQMNZMNUVGAYCUVKLMAYCLOUANZUUQMNUVKALBOUUDAUHUQZGOWBSZAWDU
      QWCUVLTUUQMWEUMUNVTALTUUQUVMTRSZAWFUQZAUUEUVNUUQRSZGWDBOWGWHZWIWJAUCUURTU
      VAMNZQNZMNUVHUCUVSMNZQNYFUVIAUCUURUVSUCRSZAWKUQZAUUDUVQUURRSZUHUVRLUUQVIU
      KZAUVOUVARSZUVSRSWFABDGIWLZTUVAVIUKVOAYEUVTUCMAYEXPXRMNZXPXSMNZQNUVTAXPXR
      XSUULUUJUUOVOAUWHUURUWIUVSQAUWHLBXRMNZMNUURALBXRUVMGUUJVRAUWJUUQLMAUWJXRB
      MNZUUQABXRGUUJWQAUUQBLUGUFNZUANZUWKOUWLBUAWMWNAUUELWBSUWMUWKUBGWOBLWPWHVF
      UTVTWJAUWILPMNZUVAMNUVSALBPDUVMGUUGIWRUWNTUVAMPLTUPUHWSVQUMUNWTWJVTAUVBUW
      AUVHQAUVBUCTMNZUVAMNUWAUWOUUTUVAMXAUMAUCTUVAUWCUVPUWGVRVSVTWAWTAUVGUVHUVB
      AUVOUWDUVGRSWFUWETUURVIUKZAUWBUWDUVHRSWKUWEUCUURVIUKZAUUTRSUWFUVBRSUUTUDL
      XGVKVLVMUWGUUTUVAVIUKZVNAUVJUUSUVBUFAUVHUVGQNZUJUVJUUSAUVHUVGUWQUWPXBAUWS
      UURAUCTQNZUURMNZUWSUURAUCTUURUWCUVPUWEUSAUXAUGUURMNUURUWTUGUURMUCTUGWKWFV
      AXCVDUMAUURUWEXDVFXEXFXEUOXHAYHRSZYIRSZYJUVEUBYHLUDWOXIVLVMZACHURZYHYIXJU
      KWTAUVCUVDQNUUSUVDQNUVBUFNUVFFAUUSUVBUVDAUURUWEXKZUWRAUXBUXCUVDRSUXDUXEYH
      YIVIUKZXLAUVCUVDAUUSUVBUXFUWRXMUXGXNKWAVHXO $.
  $}

  ${
    $d x M $.  $d x P $.  $d x ph $.  $d x T $.  $d x U $.  $d x V $.
    quart.a $e |- ( ph -> A e. CC ) $.
    quart.b $e |- ( ph -> B e. CC ) $.
    quart.c $e |- ( ph -> C e. CC ) $.
    quart.d $e |- ( ph -> D e. CC ) $.
    quart.x $e |- ( ph -> X e. CC ) $.
    quart.e $e |- ( ph -> E = -u ( A / 4 ) ) $.
    quart.p $e |- ( ph -> P = ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ) $.
    quart.q $e |- ( ph -> Q =
      ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ) $.
    quart.r $e |- ( ph -> R = ( ( D - ( ( C x. A ) / 4 ) ) +
 ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) $.
    quart.u $e |- ( ph -> U = ( ( P ^ 2 ) + ( ; 1 2 x. R ) ) ) $.
    quart.v $e |- ( ph -> V = ( ( -u ( 2 x. ( P ^ 3 ) ) -
      ( ; 2 7 x. ( Q ^ 2 ) ) ) + ( ; 7 2 x. ( P x. R ) ) ) ) $.
    quart.w $e |- ( ph -> W =
      ( sqrt ` ( ( V ^ 2 ) - ( 4 x. ( U ^ 3 ) ) ) ) ) $.
    $( Closure lemmas for ~ quart .  (Contributed by Mario Carneiro,
       7-May-2015.) $)
    quartlem2 $p |- ( ph -> ( U e. CC /\ V e. CC /\ W e. CC ) ) $=
      ( cc wcel c2 cexp co c1 cdc cmul caddc quart1cl simp1d sqcld 1nn0 decnncl
      2nn nncni simp3d mulcl sylancr addcld eqeltrd c3 cneg cmin 2cn 3nn0 expcl
      c7 cn0 sylancl negcld 2nn0 7nn simp2d subcld 7nn0 mulcld c4 csqrt cfv 4cn
      sqrtcld 3jca ) AIUFUGZKUFUGLUFUGAIFUHUIUJZUKUHULZHUMUJZUNUJUFUCAWJWLAFAFU
      FUGZGUFUGZHUFUGZABCDEFGHNOPQTUAUBUOZUPZUQAWKUFUGWOWLUFUGWKUKUHURUTUSVAAWM
      WNWOWPVBZWKHVCVDVEVFZAKUHFVGUIUJZUMUJZVHZUHVMULZGUHUIUJZUMUJZVIUJZVMUHULZ
      FHUMUJZUMUJZUNUJUFUDAXFXIAXBXEAXAAUHUFUGWTUFUGZXAUFUGVJAWMVGVNUGZXJWQVKFV
      GVLVOUHWTVCVDVPAXCUFUGXDUFUGXEUFUGXCUHVMVQVRUSVAAGAWMWNWOWPVSUQXCXDVCVDVT
      AXGUFUGXHUFUGXIUFUGXGVMUHWAUTUSVAAFHWQWRWBXGXHVCVDVEVFZALKUHUIUJZWCIVGUIU
      JZUMUJZVIUJZWDWEUFUEAXPAXMXOAKXLUQAWCUFUGXNUFUGZXOUFUGWFAWIXKXQWSVKIVGVLV
      OWCXNVCVDVTWGVFWH $.

    quart.s $e |- ( ph -> S = ( ( sqrt ` M ) / 2 ) ) $.
    quart.m $e |- ( ph -> M =
      -u ( ( ( ( 2 x. P ) + T ) + ( U / T ) ) / 3 ) ) $.
    quart.t $e |- ( ph -> T = ( ( ( V + W ) / 2 ) ^c ( 1 / 3 ) ) ) $.
    quart.t0 $e |- ( ph -> T =/= 0 ) $.
    $( Closure lemmas for ~ quart .  (Contributed by Mario Carneiro,
       7-May-2015.) $)
    quartlem3 $p |- ( ph -> ( S e. CC /\ M e. CC /\ T e. CC ) ) $=
      ( cc wcel csqrt cfv c2 cdiv co cmul caddc c3 cneg quart1cl simp1d sylancr
      2cn mulcl c1 ccxp quartlem2 simp2d simp3d addcld halfcld cn nnrecre ax-mp
      cr 3nn recni cxpcl sylancl eqeltrd divcld 3cn a1i cc0 3ne0 negcld sqrtcld
      wne 3jca ) AIUMUNMUMUNJUMUNAIMUOUPZUQURUSUMUIAWNAMAMUQFUTUSZJVAUSZKJURUSZ
      VAUSZVBURUSZVCUMUJAWSAWRVBAWPWQAWOJAUQUMUNFUMUNZWOUMUNVGAWTGUMUNHUMUNABCD
      EFGHQRSTUCUDUEVDVEUQFVHVFAJNOVAUSZUQURUSZVIVBURUSZVJUSZUMUKAXBUMUNXCUMUNX
      DUMUNAXAANOAKUMUNZNUMUNZOUMUNZABCDEFGHKLNOBQRSTQUBUCUDUEUFUGUHVKZVLAXEXFX
      GXHVMVNVOXCVBVPUNXCVSUNVTVBVQVRWAXBXCWBWCWDZVNAKJAXEXFXGXHVEXIULWEVNVBUMU
      NAWFWGVBWHWLAWIWGWEWJWDZWKVOWDXJXIWM $.

    quart.m0 $e |- ( ph -> M =/= 0 ) $.
    quart.i $e |- ( ph -> I =
      ( sqrt ` ( ( -u ( S ^ 2 ) - ( P / 2 ) ) + ( ( Q / 4 ) / S ) ) ) ) $.
    quart.j $e |- ( ph -> J =
      ( sqrt ` ( ( -u ( S ^ 2 ) - ( P / 2 ) ) - ( ( Q / 4 ) / S ) ) ) ) $.
    $( Closure lemmas for ~ quart .  (Contributed by Mario Carneiro,
       7-May-2015.) $)
    quartlem4 $p |- ( ph -> ( S =/= 0 /\ I e. CC /\ J e. CC ) ) $=
      ( cc0 wne cc wcel csqrt cfv c2 cdiv co quartlem3 simp2d sqrtcld 2cnd cexp
      sqsqrtd eqnetrd wb sqne0 syl mpbid 2ne0 divne0d cneg cmin c4 caddc simp1d
      a1i sqcld negcld quart1cl halfcld subcld 4ne0 divcld addcld eqeltrd 3jca
      4cn ) AIURUSMUTVANUTVAAIOVBVCZVDVEVFURUKAWQVDAOAIUTVAZOUTVAZJUTVAZABCDEFG
      HIJKLOPQBSTUAUBSUDUEUFUGUHUIUJUKULUMUNVGZVHZVIZAVJAWQVDVKVFZURUSZWQURUSZA
      XDOURAOXBVLUOVMAWQUTVAXEXFVNXCWQVOVPVQVDURUSAVRWEVSVMZAMIVDVKVFZVTZFVDVEV
      FZWAVFZGWBVEVFZIVEVFZWCVFZVBVCUTUPAXNAXKXMAXIXJAXHAIAWRWSWTXAWDZWFWGAFAFU
      TVAZGUTVAZHUTVAZABCDEFGHSTUAUBUEUFUGWHZWDWIWJZAXLIAGWBAXPXQXRXSVHWBUTVAAW
      PWEWBURUSAWKWEWLXOXGWLZWMVIWNANXKXMWAVFZVBVCUTUQAYBAXKXMXTYAWJVIWNWO $.

    $( The quartic equation, writing out all roots using square and cube root
       functions so that only direct substitutions remain, and we can actually
       claim to have a "quartic equation".  Naturally, this theorem is
       ridiculously long (see ~ quartfull ) if all the substitutions are
       performed.  This is Metamath 100 proof #46.  (Contributed by Mario
       Carneiro, 6-May-2015.) $)
    quart $p |- ( ph -> ( ( ( ( X ^ 4 ) + ( A x. ( X ^ 3 ) ) ) +
      ( ( B x. ( X ^ 2 ) ) + ( ( C x. X ) + D ) ) ) = 0 <->
       ( ( X = ( ( E - S ) + I ) \/ X = ( ( E - S ) - I ) ) \/
         ( X = ( ( E + S ) + J ) \/ X = ( ( E + S ) - J ) ) ) ) ) $=
      ( vx c4 cexp co c3 cmul caddc c2 cc0 wceq cmin cneg wo cdiv oveq2d cc 4cn
      wcel a1i wne 4ne0 divcld subnegd eqtrd quart1 eqeq1d simp1d simp2d negcld
      quart1cl eqeltrd subcld quartlem3 csqrt sqrtcld 2cnd 2ne0 divcan2d oveq1d
      cfv sqsqrtd eqtr2d quartlem4 sqcld halfcld addcld simp3d cv c1 wa wrex cz
      1cnd 1exp mp1i mulid2d oveq12d negeqd eqtr4d oveq1 eqeq2d rspcev syl12anc
      3z anbi12d 2cn mulcl sylancr cn quartlem2 3nn cxproot sylancl cn0 subaddd
      ccxp addassd eqtr3d bitr4d eqcom syl6bb addsubassd orbi12d 3nn0 expcl cdc
      c9 c7 quartlem1 simpld simprd mcubic mpbird dquart negsubd 3bitrd ) ARUSU
      TVABRVBUTVAVCVAVDVACRVEUTVAVCVADRVCVAEVDVAVDVAVDVAZVFVGRLVHVAZUSUTVAFUUOV
      EUTVAVCVAVDVAGUUOVCVAHVDVAVDVAZVFVGUUOIVIZMVDVAZVGZUUOUUQMVHVAZVGZVJZUUOI
      NVDVAZVGZUUOINVHVAZVGZVJZVJRLIVHVAZMVDVAZVGZRUVHMVHVAZVGZVJZRLIVDVAZNVDVA
      ZVGZRUVNNVHVAZVGZVJZVJAUUNUUPVFABCDEFGHRUUOSTUAUBUEUFUGUCAUUORBUSVKVAZVIZ
      VHVARUVTVDVAALUWARVHUDVLARUVTUCABUSSUSVMVOZAVNVPZUSVFVQAVRVPZVSZVTWAWBWCA
      FGHIMNOUUOAFVMVOZGVMVOZHVMVOZABCDEFGHSTUAUBUEUFUGWGZWDZAUWFUWGUWHUWIWEZAR
      LUCALUWAVMUDAUVTUWEWFWHZWIAIVMVOZOVMVOZJVMVOZABCDEFGHIJKLOPQBSTUAUBSUDUEU
      FUGUHUIUJUKULUMUNWJZWDZAVEIVCVAZVEUTVAOWKWQZVEUTVAOAUWRUWSVEUTAUWRVEUWSVE
      VKVAZVCVAUWSAIUWTVEVCUKVLAUWSVEAOAUWMUWNUWOUWPWEZWLAWMVEVFVQAWNVPWOWAWPAO
      UXAWRWSUOAIVFVQZMVMVOZNVMVOZABCDEFGHIJKLMNOPQBSTUAUBSUDUEUFUGUHUIUJUKULUM
      UNUOUPUQWTZWEZAMVEUTVAIVEUTVAZVIZFVEVKVAZVHVAZGUSVKVAZIVKVAZVDVAZWKWQZVEU
      TVAUXMAMUXNVEUTUPWPAUXMAUXJUXLAUXHUXIAUXGAIUWQXAWFAFUWJXBWIZAUXKIAGUSUWKU
      WCUWDVSUWQAUXBUXCUXDUXEWDVSZXCWRWAAUWFUWGUWHUWIXDZAOVBUTVAVEFVCVAZOVEUTVA
      VCVAVDVAFVEUTVAZUSHVCVAZVHVAZOVCVAGVEUTVAZVIZVDVAVDVAVFVGURXEZVBUTVAZXFVG
      ZOUXRUYDJVCVAZVDVAZKUYGVKVAZVDVAZVBVKVAZVIZVGZXGZURVMXHZAXFVMVOXFVBUTVAZX
      FVGZOUXRXFJVCVAZVDVAZKUYRVKVAZVDVAZVBVKVAZVIZVGZUYOAXJVBXIVOUYQAYAVBXKXLA
      OUXRJVDVAZKJVKVAZVDVAZVBVKVAZVIVUCULAVUBVUHAVUAVUGVBVKAUYSVUEUYTVUFVDAUYR
      JUXRVDAJAUWMUWNUWOUWPXDZXMZVLAUYRJKVKVUJVLXNWPXOXPUYNUYQVUDXGURXFVMUYDXFV
      GZUYFUYQUYMVUDVUKUYEUYPXFUYDXFVBUTXQWCVUKUYLVUCOVUKUYKVUBVUKUYJVUAVBVKVUK
      UYHUYSUYIUYTVDVUKUYGUYRUXRVDUYDXFJVCXQZVLVUKUYGUYRKVKVULVLXNWPXOXRYBXSXTA
      UXRUYAUYCJQKPOURAVEVMVOUWFUXRVMVOYCUWJVEFYDYEAUXSUXTAFUWJXAAUWBUWHUXTVMVO
      VNUXQUSHYDYEWIAUYBAGUWKXAWFUXAVUIAJVBUTVAPQVDVAZVEVKVAZXFVBVKVAYMVAZVBUTV
      AZVUNAJVUOVBUTUMWPAVUNVMVOVBYFVOVUPVUNVGAVUMAPQAKVMVOZPVMVOZQVMVOZABCDEFG
      HKLPQBSTUAUBSUDUEUFUGUHUIUJYGZWEZAVUQVURVUSVUTXDZXCXBYHVUNVBYIYJWAVVBAQVE
      UTVAPVEUTVAZUSKVBUTVAZVCVAZVHVAZWKWQZVEUTVAVVFAQVVGVEUTUJWPAVVFAVVCVVEAPV
      VAXAAUWBVVDVMVOZVVEVMVOVNAVUQVBYKVOVVHAVUQVURVUSVUTWDUUAKVBUUBYJUSVVDYDYE
      WIWRWAAKUXRVEUTVAVBUYAVCVAVHVAVGZPVEUXRVBUTVAVCVAUUDUXRUYAVCVAVCVAVHVAVEU
      UEUUCUYCVCVAVDVAVGZAFGHKPUWJUWKUXQUHUIUUFZUUGAVVIVVJVVKUUHUNUUIUUJAUXBUXC
      UXDUXEXDZANVEUTVAUXJUXLVHVAZWKWQZVEUTVAVVMANVVNVEUTUQWPAVVMAUXJUXLUXOUXPW
      IWRWAUUKAUVBUVMUVGUVSAUUSUVJUVAUVLAUUSUVIRVGZUVJAUUSLUURVDVAZRVGVVOARLUUR
      UCUWLAUUQMAIUWQWFZUXFXCYLAUVIVVPRALUUQVDVAZMVDVAUVIVVPAVVRUVHMVDALIUWLUWQ
      UULZWPALUUQMUWLVVQUXFYNYOWCYPUVIRYQYRAUVAUVKRVGZUVLAUVALUUTVDVAZRVGVVTARL
      UUTUCUWLAUUQMVVQUXFWIYLAUVKVWARAVVRMVHVAUVKVWAAVVRUVHMVHVVSWPALUUQMUWLVVQ
      UXFYSYOWCYPUVKRYQYRYTAUVDUVPUVFUVRAUVDUVORVGZUVPAUVDLUVCVDVAZRVGVWBARLUVC
      UCUWLAINUWQVVLXCYLAUVOVWCRALINUWLUWQVVLYNWCYPUVORYQYRAUVFUVQRVGZUVRAUVFLU
      VEVDVAZRVGVWDARLUVEUCUWLAINUWQVVLWIYLAUVQVWERALINUWLUWQVVLYSWCYPUVQRYQYRY
      TYTUUM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Inverse trigonometric functions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c arcsin $. $( Arcsine function $)
  $c arccos $. $( Arccosine function $)
  $c arctan $. $( Arctangent function $)

  $( The arcsine function. $)
  casin $a class arcsin $.

  $( The arccosine function. $)
  cacos $a class arccos $.

  $( The arctangent function. $)
  catan $a class arctan $.

  ${
    $( Define the arcsine function.  Because ` sin ` is not a one-to-one
       function, the literal inverse ` ``' sin ` is not a function.  Rather
       than attempt to find the right domain on which to restrict ` sin ` in
       order to get a total function, we just define it in terms of ` log ` ,
       which we already know is total (except at ` 0 ` ).  There are branch
       points at ` -u 1 ` and ` 1 ` (at which the function is defined), and
       branch cuts along the real line not between ` -u 1 ` and ` 1 ` , which
       is to say ` ( -oo , -u 1 ) u. ( 1 , +oo ) ` .  (Contributed by Mario
       Carneiro, 31-Mar-2015.) $)
    df-asin $a |- arcsin = ( x e. CC |-> ( -u _i x. ( log `
      ( ( _i x. x ) + ( sqrt ` ( 1 - ( x ^ 2 ) ) ) ) ) ) ) $.

    $( Define the arccosine function.  See also remarks for ~ df-asin .  Since
       we define ` arccos ` in terms of ` arcsin ` , it shares the same branch
       points and cuts, namely ` ( -oo , -u 1 ) u. ( 1 , +oo ) ` .
       (Contributed by Mario Carneiro, 31-Mar-2015.) $)
    df-acos $a |- arccos = ( x e. CC |-> ( ( _pi / 2 ) - ( arcsin ` x ) ) ) $.

    $( Define the arctangent function.  See also remarks for ~ df-asin .
       Unlike ` arcsin ` and ` arccos ` , this function is not defined
       everywhere, because ` tan ( z ) =/= +- _i ` for all ` z e. CC ` .  For
       all other ` z ` , there is a formula for ` arctan ( z ) ` in terms of
       ` log ` , and we take that as the definition.  Branch points are at
       ` +- _i ` ; branch cuts are on the pure imaginary axis not between
       ` -u _i ` and ` _i ` , which is to say
       ` { z e. CC | ( _i x. z ) e. ( -oo , -u 1 ) u. ( 1 , +oo ) } ` .
       (Contributed by Mario Carneiro, 31-Mar-2015.) $)
    df-atan $a |- arctan = ( x e. ( CC \ { -u _i , _i } ) |->
      ( ( _i / 2 ) x. ( ( log ` ( 1 - ( _i x. x ) ) ) -
                        ( log ` ( 1 + ( _i x. x ) ) ) ) ) ) $.
  $}

  $( The argument to the logarithm in ~ df-asin is always nonzero.
     (Contributed by Mario Carneiro, 31-Mar-2015.) $)
  asinlem $p |- ( A e. CC ->
    ( ( _i x. A ) + ( sqrt ` ( 1 - ( A ^ 2 ) ) ) ) =/= 0 ) $=
    ( cc wcel ci cmul co c1 cexp cmin csqrt cfv cneg cc0 ax-icn mpan wceq eqtrd
    c2 wne syl caddc mulcl ax-1cn sqcl sylancr sqrtcld subnegd negcld 0ne1 0cnd
    subcl wb w3a subcan2 necon3bid syl3anc mpbiri sqmul i2 oveq1i mulm1d syl5eq
    1cnd df-neg syl6eq sqneg sqsqrtd 3netr4d oveq1 necon3i subne0d eqnetrrd ) A
    BCZDAEFZGARHFZIFZJKZLZIFVNVQUAFMVMVNVQDBCZVMVNBCNDAUBOZVMVPVMGBCZVOBCZVPBCU
    CAUDZGVOUKUEZUFZUGVMVNVRVTVMVQWEUHVMVNRHFZVRRHFZSVNVRSVMMVOIFZVPWFWGVMWHVPS
    ZMGSZUIVMMBCZWAWBWIWJULVMUJVMVCWCWKWAWBUMWHVPMGMGVOUNUOUPUQVMWFVOLZWHVMWFDR
    HFZVOEFZWLVSVMWFWNPNDAUROVMWNGLZVOEFWLWMWOVOEUSUTVMVOWCVAVBQVOVDVEVMWGVQRHF
    ZVPVMVQBCWGWPPWEVQVFTVMVPWDVGQVHVNVRWFWGVNVRRHVIVJTVKVL $.

  $( The argument to the logarithm in ~ df-asin has the property that replacing
     ` A ` with ` -u A ` in the expression gives the reciprocal.  (Contributed
     by Mario Carneiro, 1-Apr-2015.) $)
  asinlem2 $p |- ( A e. CC ->
    ( ( ( _i x. A ) + ( sqrt ` ( 1 - ( A ^ 2 ) ) ) ) x.
      ( ( _i x. -u A ) + ( sqrt ` ( 1 - ( -u A ^ 2 ) ) ) ) ) = 1 ) $=
    ( cc wcel ci cmul co c1 c2 cexp cmin csqrt caddc cneg ax-icn ax-1cn sylancr
    cfv mpan wceq oveq12d mulcl sqcl subcl sqrtcld addcomd mulneg2 sqneg oveq2d
    fveq2d negcld negsubd 3eqtrd sqsqrtd sqmul oveq1i mulm1d syl5eq eqtrd subsq
    i2 syl2anc subnegd 3eqtr3d npcan ) ABCZDAEFZGAHIFZJFZKQZLFZDAMZEFZGVKHIFZJF
    ZKQZLFZEFVIVFLFZVIVFJFZEFZVHVGLFZGVEVJVQVPVREVEVFVIDBCZVEVFBCZNDAUARZVEVHVE
    GBCZVGBCZVHBCOAUBZGVGUCPZUDZUEVEVPVFMZVILFVIWILFVRVEVLWIVOVILWAVEVLWISNDAUF
    RVEVNVHKVEVMVGGJAUGUHUITVEWIVIVEVFWCUJWHUEVEVIVFWHWCUKULTVEVIHIFZVFHIFZJFZV
    HVGMZJFVSVTVEWJVHWKWMJVEVHWGUMVEWKDHIFZVGEFZWMWAVEWKWOSNDAUNRVEWOGMZVGEFWMW
    NWPVGEUTUOVEVGWFUPUQURTVEVIBCWBWLVSSWHWCVIVFUSVAVEVHVGWGWFVBVCVEWDWEVTGSOWF
    GVGVDPUL $.

  $( Lemma for ~ asinlem3 .  (Contributed by Mario Carneiro, 1-Apr-2015.) $)
  asinlem3a $p |- ( ( A e. CC /\ ( Im ` A ) <_ 0 ) ->
    0 <_ ( Re ` ( ( _i x. A ) + ( sqrt ` ( 1 - ( A ^ 2 ) ) ) ) ) ) $=
    ( cc wcel cfv cc0 cle wbr cneg c1 co cre caddc ci cmul adantr sylancr mulcl
    ax-icn negicn wceq wa c2 cexp cmin csqrt cr imcl renegcld ax-1cn sqcl subcl
    sqrtcld recld le0neg1d biimpa sqrtrege0d addge0d simpl readdd renegd oveq1i
    negnegi mulneg1 syl5eqr fveq2d imre negeqd 3eqtr4d oveq1d eqtrd breqtrrd
    cim ) ABCZAVLDZEFGZUAZEVNHZIAUBUCJZUDJZUEDZKDZLJZMANJZVTLJKDZFVPVQWAVPVNVMV
    NUFCVOAUGZOUHVPVTVPVSVPIBCVRBCZVSBCUIVMWFVOAUJOIVRUKPZULZUMVMVOEVQFGVMVNWEU
    NUOVPVSWGUPUQVPWDWCKDZWALJWBVPWCVTVPMBCVMWCBCRVMVOURZMAQPWHUSVPWIVQWALVPMHZ
    ANJZHZKDWLKDZHWIVQVPWLVPWKBCZVMWLBCSWJWKAQPUTVPWCWMKVPWCWKHZANJZWMWPMANMRVB
    VAVPWOVMWQWMTSWJWKAVCPVDVEVPVNWNVMVNWNTVOAVFOVGVHVIVJVK $.

  $( The argument to the logarithm in ~ df-asin has nonnegative real part.
     (Contributed by Mario Carneiro, 1-Apr-2015.) $)
  asinlem3 $p |- ( A e. CC ->
    0 <_ ( Re ` ( ( _i x. A ) + ( sqrt ` ( 1 - ( A ^ 2 ) ) ) ) ) ) $=
    ( cc wcel cc0 ci cmul co c1 c2 cexp cmin csqrt cfv cre cle wbr cdiv sylancr
    adantr wceq caddc cim 0red imcl wa cneg cabs ccj crp cz ax-icn negcl ax-1cn
    mulcl sqcld subcl sqrtcld wne asinlem syl absrpcld rpexpcl sylancl rprecred
    addcld 2z cjcld recld rpreccld rpge0d imneg le0neg2d biimpa eqbrtrd syl2anc
    asinlem3a recjd breqtrrd mulge0d recval asinlem2 eqcomd 1cnd simpl divmul3d
    sqcl mpbird rpcnd rpne0d divrec2d 3eqtr3d fveq2d remul2d eqtrd lecasei ) AB
    CZDEAFGZHAIJGZKGZLMZUAGZNMZOPDAUBMZWPUCAUDZWPDXCOPZUEZDHEAUFZFGZHXGIJGZKGZL
    MZUAGZUGMZIJGZQGZXLUHMZNMZFGZXBOXFXOXQXFXNXFXMUICIUJCXNUICXFXLXFXHXKXFEBCZX
    GBCZXHBCUKWPXTXEAULSZEXGUNRXFXJXFHBCZXIBCXJBCUMXFXGYAUOHXIUPRUQVEZXFXTXLDUR
    ZYAXGUSUTZVAVFXMIVBVCZVDZXFXPXFXLYCVGZVHXFXOXFXNYFVIVJXFDXLNMZXQOXFXTXGUBMZ
    DOPDYIOPYAXFYJXCUFZDOWPYJYKTXEAVKSWPXEYKDOPWPXCXDVLVMVNXGVPVOXFXLYCVQVRVSXF
    XBXOXPFGZNMXRXFXAYLNXFHXLQGZXPXNQGZXAYLXFXLBCYDYMYNTYCYEXLVTVOXFYMXATHXAXLF
    GZTXFYOHWPYOHTXEAWASWBXFHXAXLXFWCXFWQWTXFXSWPWQBCUKWPXEWDEAUNRXFWSXFYBWRBCZ
    WSBCUMWPYPXEAWFSHWRUPRUQVEYCYEWEWGXFXPXNYHXFXNYFWHXFXNYFWIWJWKWLXFXOXPYGYHW
    MWNVRAVPWO $.

  $( Domain and range of the arcsin function.  (Contributed by Mario Carneiro,
     31-Mar-2015.) $)
  asinf $p |- arcsin : CC --> CC $=
    ( vx cc ci cneg cv cmul co c1 cexp cmin csqrt caddc clog casin df-asin wcel
    c2 cfv mulcl sylancr negicn ax-icn mpan ax-1cn subcl sqrtcld addcld asinlem
    sqcl logcld fmpti ) ABBCDZCAEZFGZHUMQIGZJGZKRZLGZMRZFGZNAOUMBPZULBPUSBPUTBP
    UAVAURVAUNUQCBPVAUNBPUBCUMSUCVAUPVAHBPUOBPUPBPUDUMUIHUOUETUFUGUMUHUJULUSSTU
    K $.

  $( Closure for the arcsin function.  (Contributed by Mario Carneiro,
     31-Mar-2015.) $)
  asincl $p |- ( A e. CC -> ( arcsin ` A ) e. CC ) $=
    ( cc casin asinf ffvelrni ) BBACDE $.

  $( Domain and range of the arccos function.  (Contributed by Mario Carneiro,
     31-Mar-2015.) $)
  acosf $p |- arccos : CC --> CC $=
    ( vx cc cpi c2 cdiv co casin cfv cmin cacos df-acos wcel picn halfcl asincl
    cv ax-mp subcl sylancr fmpti ) ABBCDEFZAPZGHZIFZJAKUBBLUABLZUCBLUDBLCBLUEMC
    NQUBOUAUCRST $.

  $( Closure for the arccos function.  (Contributed by Mario Carneiro,
     31-Mar-2015.) $)
  acoscl $p |- ( A e. CC -> ( arccos ` A ) e. CC ) $=
    ( cc cacos acosf ffvelrni ) BBACDE $.

  $( Since the property is a little lengthy, we abbreviate
     ` A e. CC /\ A =/= -u _i /\ A =/= _i ` as ` A e. dom arctan ` .  This is
     the necessary precondition for the definition of ` arctan ` to make sense.
     (Contributed by Mario Carneiro, 31-Mar-2015.) $)
  atandm $p |- ( A e. dom arctan <->
    ( A e. CC /\ A =/= -u _i /\ A =/= _i ) ) $=
    ( vx cc ci cneg cpr cdif wcel wne wa catan cdm wn wceq co c1 cmul cmin clog
    cfv w3a eldif wo elprg notbid neanior syl6bbr pm5.32i bitri c2 cdiv cv ovex
    caddc df-atan dmmpti eleq2i 3anass 3bitr4i ) ACDEZDFZGZHZACHZAUTIZADIZJZJZA
    KLZHVDVEVFUAVCVDAVAHZMZJVHACVAUBVDVKVGVDVKAUTNADNUCZMVGVDVJVLAUTDCUDUEAUTAD
    UFUGUHUIVIVBABVBDUJUKOZPDBULQOZROSTPVNUNOSTROZQOKVMVOQUMBUOUPUQVDVEVFURUS
    $.

  $( This form of ~ atandm is a bit more useful for showing that the logarithms
     in ~ df-atan are well-defined.  (Contributed by Mario Carneiro,
     31-Mar-2015.) $)
  atandm2 $p |- ( A e. dom arctan <-> ( A e. CC /\
    ( 1 - ( _i x. A ) ) =/= 0 /\ ( 1 + ( _i x. A ) ) =/= 0 ) ) $=
    ( wcel cc ci cneg wne w3a c1 cmul co cmin cc0 caddc wa 3anass ax-1cn ax-icn
    wceq a1i bitrd catan cdm atandm wb mulcl subeq0 sylancr mulneg2i ixi negeqi
    mpan negneg1e1 3eqtri eqeq2i eqcom syl6bbr id negcli ine0 mulcand necon3bid
    bitri addcom subneg sylancl eqtr4d eqeq1d anbi12d pm5.32i bitr4i ) AUAUBBAC
    BZADEZFZADFZGZVKHDAIJZKJZLFZHVPMJZLFZGZAUCWAVKVRVTNZNZVOVKVRVTOWCVKVMVNNZNV
    OVKWBWDVKVRVMVTVNVKVQLAVLVKVQLRZVPDVLIJZRZAVLRVKWEHVPRZWGVKHCBZVPCBZWEWHUDP
    DCBZVKWJQDAUEUKZHVPUFUGWGVPHRWHWFHVPWFDDIJZEHEZEHDDQQUHWMWNUIUJULUMUNVPHUOV
    BUPVKAVLDVKUQZVLCBVKDQURSWKVKQSZDLFVKUSSZUTTVAVKVSLADVKVSLRZVPWMRZADRVKWRVP
    WNRZWSVKWRVPWNKJZLRZWTVKVSXALVKVSVPHMJZXAVKWIWJVSXCRPWLHVPVCUGVKWJWIXAXCRWL
    PVPHVDVEVFVGVKWJWNCBXBWTUDWLHPURVPWNUFVETWMWNVPUIUNUPVKADDWOWPWPWQUTTVAVHVI
    VKVMVNOVJVBVJ $.

  $( A compact form of ~ atandm .  (Contributed by Mario Carneiro,
     31-Mar-2015.) $)
  atandm3 $p |- ( A e. dom arctan <-> ( A e. CC /\ ( A ^ 2 ) =/= -u 1 ) ) $=
    ( cc wcel ci cneg wne w3a wa catan cdm c2 cexp co c1 3anass atandm wo wn wb
    wceq ax-icn sqeqor mpan2 i2 eqeq2i orcom 3bitr3g necon3abid neanior syl6bbr
    pm5.32i 3bitr4i ) ABCZADEZFZADFZGUMUOUPHZHAIJCUMAKLMZNEZFZHUMUOUPOAPUMUTUQU
    MUTAUNTZADTZQZRUQUMVCURUSUMURDKLMZTZVBVAQZURUSTVCUMDBCVEVFSUAADUBUCVDUSURUD
    UEVBVAUFUGUHAUNADUIUJUKUL $.

  $( A compact form of ~ atandm .  (Contributed by Mario Carneiro,
     3-Apr-2015.) $)
  atandm4 $p |- ( A e. dom arctan <->
    ( A e. CC /\ ( 1 + ( A ^ 2 ) ) =/= 0 ) ) $=
    ( catan cdm wcel cc c2 cexp co c1 cneg wne wa cc0 atandm3 cmin wceq sylancl
    caddc wb ax-1cn neg1cn subeq0 subneg addcom eqeq1d bitr3d necon3bid pm5.32i
    sqcl eqtrd bitri ) ABCDAEDZAFGHZIJZKZLULIUMRHZMKZLANULUOUQULUMUNUPMULUMUNOH
    ZMPZUMUNPZUPMPULUMEDZUNEDUSUTSAUIZUAUMUNUBQULURUPMULURUMIRHZUPULVAIEDZURVCP
    VBTUMIUCQULVAVDVCUPPVBTUMIUDQUJUEUFUGUHUK $.

  $( Domain and range of the arctan function.  (Contributed by Mario Carneiro,
     31-Mar-2015.) $)
  atanf $p |- arctan : ( CC \ { -u _i , _i } ) --> CC $=
    ( vx cc ci cneg cpr co c1 cmul cmin clog cfv catan wcel ax-icn ax-1cn mulcl
    cc0 wne sylancr logcld cdif c2 cdiv cv caddc df-atan cdm ovex dmmpti eleq2i
    halfcl ax-mp atandm2 simp1bi subcl simp2bi addcl simp3bi subcld sylbir
    fmpti ) ABCDCEUAZBCUBUCFZGCAUDZHFZIFZJKZGVEUEFZJKZIFZHFZLAUFZVDVBMVDLUGZMZV
    KBMZVMVBVDAVBVKLVCVJHUHVLUIUJVNVCBMZVJBMVOCBMZVPNCUKULVNVGVIVNVFVNGBMZVEBMZ
    VFBMOVNVQVDBMZVSNVNVTVFQRZVHQRZVDUMZUNCVDPSZGVEUOSVNVTWAWBWCUPTVNVHVNVRVSVH
    BMOWDGVEUQSVNVTWAWBWCURTUSVCVJPSUTVA $.

  $( Closure for the arctan function.  (Contributed by Mario Carneiro,
     31-Mar-2015.) $)
  atancl $p |- ( A e. dom arctan -> ( arctan ` A ) e. CC ) $=
    ( catan cfv cc wcel ci cneg cpr cdif cdm atanf ffvelrni fdmi eleq2s ) ABCDE
    ADFGFHIZBJODABKLODBKMN $.

  ${
    $d x A $.
    $( Value of the arcsin function.  (Contributed by Mario Carneiro,
       31-Mar-2015.) $)
    asinval $p |- ( A e. CC -> ( arcsin ` A ) = ( -u _i x. ( log `
      ( ( _i x. A ) + ( sqrt ` ( 1 - ( A ^ 2 ) ) ) ) ) ) ) $=
      ( vx ci cneg cv cmul co c1 c2 cexp cmin csqrt cfv caddc clog casin oveq2d
      cc wceq fveq2d oveq2 oveq1 oveq12d df-asin ovex fvmpt ) BACDZCBEZFGZHUHIJ
      GZKGZLMZNGZOMZFGUGCAFGZHAIJGZKGZLMZNGZOMZFGRPUHASZUNUTUGFVAUMUSOVAUIUOULU
      RNUHACFUAVAUKUQLVAUJUPHKUHAIJUBQTUCTQBUDUGUTFUEUF $.

    $( Value of the arccos function.  (Contributed by Mario Carneiro,
       31-Mar-2015.) $)
    acosval $p |- ( A e. CC -> ( arccos ` A ) =
      ( ( _pi / 2 ) - ( arcsin ` A ) ) ) $=
      ( vx cpi c2 cdiv co cv casin cmin cc cacos wceq fveq2 oveq2d df-acos ovex
      cfv fvmpt ) BACDEFZBGZHQZIFSAHQZIFJKTALUAUBSITAHMNBOSUBIPR $.

    $( Value of the arctan function.  (Contributed by Mario Carneiro,
       31-Mar-2015.) $)
    atanval $p |- ( A e. dom arctan -> ( arctan ` A ) =
      ( ( _i / 2 ) x. ( ( log ` ( 1 - ( _i x. A ) ) ) -
                        ( log ` ( 1 + ( _i x. A ) ) ) ) ) ) $=
      ( vx catan cfv ci c2 cdiv co c1 cmul cmin clog caddc wceq cneg cpr oveq2d
      cc cdif fveq2d cdm cv oveq2 oveq12d df-atan ovex fvmpt atanf fdmi eleq2s
      ) ACDEFGHZIEAJHZKHZLDZIULMHZLDZKHZJHZNAREOEPSZCUABAUKIEBUBZJHZKHZLDZIVAMH
      ZLDZKHZJHURUSCUTANZVFUQUKJVGVCUNVEUPKVGVBUMLVGVAULIKUTAEJUCZQTVGVDUOLVGVA
      ULIMVHQTUDQBUEUKUQJUFUGUSRCUHUIUJ $.
  $}

  $( A real number is in the domain of the arctangent function.  (Contributed
     by Mario Carneiro, 31-Mar-2015.) $)
  atanre $p |- ( A e. RR -> A e. dom arctan ) $=
    ( cr wcel cc c2 cexp co c1 cneg wne cdm recn neg1rr a1i cc0 0red resqcl clt
    catan wbr neg1lt0 sqge0 ltletrd gtned atandm3 sylanbrc ) ABCZADCAEFGZHIZJAS
    KCALUGUIUHUIBCUGMNZUGUIOUHUJUGPAQUIORTUGUANAUBUCUDAUEUF $.

  $( The arcsine function is odd.  (Contributed by Mario Carneiro,
     1-Apr-2015.) $)
  asinneg $p |- ( A e. CC -> ( arcsin ` -u A ) = -u ( arcsin ` A ) ) $=
    ( cc wcel ci cneg cmul co c1 cfv wceq sylancr cc0 wb cim cpi cr clt wbr cle
    pire c2 cexp cmin csqrt caddc clog casin cdiv ax-icn mulcl mpan ax-1cn sqcl
    ce subcl sqrtcld addcld asinlem logcld efneg syl wne eflog syl2anc asinlem2
    oveq2d negcl sqcld divmuld mpbird 3eqtrd ccnv cioc cima negcld imnegd imcld
    a1i crn renegcld cre renegd asinlem3 recld le0neg2d mpbid eqbrtrd 0re lenlt
    sylancl crp lognegb rpgt0 rpre rered breqtrrd syl6bir necon3bd mpd logimcld
    wn necomd simprd leltned ltneg simpld renegcli ltle lenegcon1 cxr w3a rexri
    wi elioc2 mp2an syl3anbrc eqeltrd wf wfn wa imf ffn elpreima sylanbrc logrn
    mp2b syl6eleqr logeftb syl3anc negicn mulneg2 eqtrd asinval negeqd 3eqtr4d
    ) ABCZDEZDAEZFGZHYRUAUBGZUCGZUDIZUEGZUFIZFGZYQDAFGZHAUAUBGZUCGZUDIZUEGZUFIZ
    FGZEZYRUGIZAUGIZEYPUUEYQUUKEZFGZUUMYPUUDUUPYQFYPUUDUUPJZUUPUNIZUUCJZYPUUSHU
    UKUNIZUHGZHUUJUHGZUUCYPUUKBCZUUSUVBJYPUUJYPUUFUUIDBCZYPUUFBCUIDAUJUKYPUUHYP
    HBCZUUGBCUUHBCULAUMHUUGUOKUPUQZAURZUSZUUKUTVAYPUVAUUJHUHYPUUJBCZUUJLVBZUVAU
    UJJUVGUVHUUJVCVDVFYPUVCUUCJUUJUUCFGHJAVEYPHUUJUUCUVFYPULVRUVGYPYSUUBYPUVEYR
    BCZYSBCUIAVGZDYRUJKYPUUAYPUVFYTBCUUABCULYPYRUVMVHHYTUOKUPUQZUVHVIVJVKYPUUCB
    CUUCLVBZUUPUFVSZCUURUUTMUVNYPUVLUVOUVMYRURVAYPUUPNVLOEZOVMGZVNZUVPYPUUPBCZU
    UPNIZUVRCZUUPUVSCZYPUUKUVIVOYPUWAUUKNIZEZUVRYPUUKUVIVPYPUWEPCZUVQUWEQRZUWEO
    SRZUWEUVRCZYPUWDYPUUKUVIVQZVTYPUWDOQRZUWGYPUWKOUWDVBYPUWDOYPLUUJEZWAIZQRZXA
    ZUWDOVBYPUWMLSRZUWOYPUWMUUJWAIZEZLSYPUUJUVGWBYPLUWQSRUWRLSRAWCYPUWQYPUUJUVG
    WDWEWFWGYPUWMPCLPCUWPUWOMYPUWLYPUUJUVGVOWDWHUWMLWIWJWFYPUWNUWDOYPUWDOJZUWLW
    KCZUWNYPUVJUVKUWTUWSMUVGUVHUUJWLVDUWTLUWLUWMQUWLWMUWTUWLUWLWNWOWPWQWRWSXBYP
    UWDOUWJOPCZYPTVRYPUVQUWDQRZUWDOSRZYPUUJUVGUVHWTZXCXDVJYPUWDPCZUXAUWKUWGMUWJ
    TUWDOXEWJWFYPUVQUWDSRZUWHYPUXBUXFYPUXBUXCUXDXFYPUVQPCUXEUXBUXFXMOTXGZUWJUVQ
    UWDXHKWSYPUXAUXEUXFUWHMTUWJOUWDXIKWFUVQXJCUXAUWIUWFUWGUWHXKMUVQUXGXLTUVQOUW
    EXNXOXPXQBPNXRNBXSUWCUVTUWBXTMYABPNYBBUUPUVRNYCYFYDYEYGUUCUUPYHYIVJVFYPYQBC
    UVDUUQUUMJYJUVIYQUUKYKKYLYPUVLUUNUUEJUVMYRYMVAYPUUOUULAYMYNYO $.

  $( The negative symmetry relation of the arccosine.  (Contributed by Mario
     Carneiro, 2-Apr-2015.) $)
  acosneg $p |- ( A e. CC -> ( arccos ` -u A ) = ( _pi - ( arccos ` A ) ) ) $=
    ( cc wcel cpi c2 cdiv co cneg casin cfv cmin cacos caddc wceq halfcl oveq2d
    picn a1i 3eqtr4d acosval asincl subneg sylancr asinneg subsubd pidiv2halves
    ax-mp subaddrii oveq1i syl6eq negcl syl ) ABCZDEFGZAHZIJZKGZDUNAIJZKGZKGZUO
    LJZDALJZKGUMUNURHZKGZUNURMGZUQUTUMUNBCZURBCVDVENDBCZVFQDOUGZAUAZUNURUBUCUMU
    PVCUNKAUDPUMUTDUNKGZURMGVEUMDUNURVGUMQRVFUMVHRVIUEVJUNURMDUNUNQVHVHUFUHUIUJ
    SUMUOBCVAUQNAUKUOTULUMVBUSDKATPS $.

  $( The exponential of the arcsine function.  (Contributed by Mario Carneiro,
     31-Mar-2015.) $)
  efiasin $p |- ( A e. CC -> ( exp ` ( _i x. ( arcsin ` A ) ) ) =
    ( ( _i x. A ) + ( sqrt ` ( 1 - ( A ^ 2 ) ) ) ) ) $=
    ( cc wcel ci casin cmul co ce c1 c2 cexp cmin csqrt caddc clog cneg asinval
    cfv ax-icn a1i oveq2d negicn mulcl mpan ax-1cn subcl sylancr sqrtcld addcld
    sqcl asinlem logcld mulassd mulneg2i negeqi negneg1e1 3eqtri oveq1i mulid2d
    ixi syl5eq 3eqtr2d fveq2d cc0 wne wceq eflog syl2anc eqtrd ) ABCZDAERZFGZHR
    DAFGZIAJKGZLGZMRZNGZORZHRZVQVJVLVRHVJVLDDPZVRFGZFGDVTFGZVRFGZVRVJVKWADFAQUA
    VJDVTVRDBCZVJSTVTBCVJUBTVJVQVJVMVPWDVJVMBCSDAUCUDVJVOVJIBCVNBCVOBCUEAUJIVNU
    FUGUHUIZAUKZULZUMVJWCIVRFGVRWBIVRFWBDDFGZPIPZPIDDSSUNWHWIUTUOUPUQURVJVRWGUS
    VAVBVCVJVQBCVQVDVEVSVQVFWEWFVQVGVHVI $.

  $( The arcsine function is an inverse to ` sin ` .  This is the main property
     that justifies the notation ` arcsin ` or ` sin ^ -u 1 ` .  Because
     ` sin ` is not an injection, the other converse identity ~ asinsin is only
     true under limited circumstances.  (Contributed by Mario Carneiro,
     1-Apr-2015.) $)
  sinasin $p |- ( A e. CC -> ( sin ` ( arcsin ` A ) ) = A ) $=
    ( cc wcel casin cfv ci cmul co ce cneg cmin c2 syl csqrt caddc ax-icn mulcl
    wceq c1 sylancr csin cdiv asincl sinval cexp mpan negcld sqcl subcl sqrtcld
    ax-1cn pnpcan2d efiasin mulneg12 asinneg oveq2d eqtr4d fveq2d negcl mulneg2
    sqneg oveq12d 3eqtrd 2timesd 2cn mulass mp3an12 subnegd 3eqtr4d efcl negicn
    subcld id 2mulicn a1i cc0 wne 2muline0 divmul2d mpbird eqtrd ) ABCZADEZUAEZ
    FWCGHZIEZFJZWCGHZIEZKHZLFGHZUBHZAWBWCBCZWDWLRAUCZWCUDMWBWLARWJWKAGHZRWBFAGH
    ZSALUEHZKHZNEZOHZWPJZWSOHZKHWPXAKHZWJWOWBWPXAWSFBCZWBWPBCPFAQUFZWBWPXEUGWBW
    RWBSBCWQBCWRBCUKAUHSWQUITUJULWBWFWTWIXBKAUMWBWIFAJZDEZGHZIEZFXFGHZSXFLUEHZK
    HZNEZOHZXBWBWHXHIWBWHFWCJZGHZXHWBXDWMWHXPRPWNFWCUNTWBXGXOFGAUOUPUQURWBXFBCX
    IXNRAUSXFUMMWBXJXAXMWSOXDWBXJXARPFAUTUFWBXLWRNWBXKWQSKAVAUPURVBVCVBWBLWPGHZ
    WPWPOHWOXCWBWPXEVDLBCXDWBWOXQRVEPLFAVFVGWBWPWPXEXEVHVIVIWBWJAWKWBWFWIWBWEBC
    ZWFBCWBXDWMXRPWNFWCQTWEVJMWBWHBCZWIBCWBWGBCWMXSVKWNWGWCQTWHVJMVLWBVMWKBCWBV
    NVOWKVPVQWBVRVOVSVTWA $.

  $( The arccosine function is an inverse to ` cos ` .  (Contributed by Mario
     Carneiro, 1-Apr-2015.) $)
  cosacos $p |- ( A e. CC -> ( cos ` ( arccos ` A ) ) = A ) $=
    ( cc wcel cacos cfv ccos cpi c2 cdiv co casin cmin csin acosval fveq2d wceq
    asincl coshalfpim syl sinasin 3eqtrd ) ABCZADEZFEGHIJAKEZLJZFEZUDMEZAUBUCUE
    FANOUBUDBCUFUGPAQUDRSATUA $.

  $( Lemma for ~ asinsin .  (Contributed by Mario Carneiro, 2-Apr-2015.) $)
  asinsinlem $p |- ( ( A e. CC /\ ( Re ` A ) e.
    ( -u ( _pi / 2 ) (,) ( _pi / 2 ) ) ) ->
      0 < ( Re ` ( exp ` ( _i x. A ) ) ) ) $=
    ( cc wcel cre cfv co cneg cc0 ci cmul ce ccos clt ax-icn mulcl wbr syl wceq
    fveq2d c1 cpi c2 cdiv cioo wa simpl sylancr recld reefcld simpr neghalfpirx
    cr w3a wb halfpire rexri elioo2 mp2an sylib simp1d recoscld efgt0 cosq14gt0
    cxr adantl mulgt0d cim csin caddc efeul imcld recnd resincld addcld remul2d
    crred mulneg1i ixi negeqi negneg1e1 3eqtri oveq1i negicn a1i mulassd mulid2
    imre adantr 3eqtr3a eqtrd oveq2d 3eqtrd breqtrrd ) ABCZADEZUAUBUCFZGZWPUDFC
    ZUEZHIAJFZDEZKEZWOLEZJFZWTKEZDEZMWSXBXCWSXAWSWTWSIBCZWNWTBCZNWNWRUFZIAOUGZU
    HZUIZWSWOWSWOULCZWQWOMPZWOWPMPZWSWRXMXNXOUMZWNWRUJWQVDCWPVDCWRXPUNUKWPUOUPW
    QWPWOUQURUSUTVAWSXAULCHXBMPXKXAVBQWRHXCMPWNWOVCVEVFWSXFXBWTVGEZLEZIXQVHEZJF
    ZVIFZJFZDEXBYADEZJFXDWSXEYBDWSXHXEYBRXJWTVJQSWSXBYAXLWSXRXTWSXRWSXQWSWTXJVK
    ZVAZVLWSXGXSBCXTBCNWSXSWSXQYDVMZVLIXSOUGVNVOWSYCXCXBJWSYCXRXCWSXRXSYEYFVPWS
    XQWOLWSXQIGZWTJFZDEZWOWSXHXQYIRXJWTWGQWSYHADWSYGIJFZAJFTAJFZYHAYJTAJYJIIJFZ
    GTGZGTIINNVQYLYMVRVSVTWAWBWSYGIAYGBCWSWCWDXGWSNWDXIWEWNYKARWRAWFWHWISWJSWJW
    KWLWM $.

  $( The arcsine function composed with ` sin ` is equal to the identity.  This
     plus ~ sinasin allow us to view ` sin ` and ` arcsin ` as inverse
     operations to each other.  For ease of use, we have not defined precisely
     the correct domain of correctness of this identity; in addition to the
     main region described here it is also true for _some_ points on the branch
     cuts, namely when ` A = ( _pi / 2 ) - _i y ` for nonnegative real ` y `
     and also symmetrically at ` A = _i y - ( _pi / 2 ) ` .  In particular,
     when restricted to reals this identity extends to the closed interval
     ` [ -u ( _pi / 2 ) , ( _pi / 2 ) ] ` , not just the open interval (see
     ~ reasinsin ).  (Contributed by Mario Carneiro, 2-Apr-2015.) $)
  asinsin $p |- ( ( A e. CC /\ ( Re ` A ) e.
    ( -u ( _pi / 2 ) (,) ( _pi / 2 ) ) ) -> ( arcsin ` ( sin ` A ) ) = A ) $=
    ( cc wcel cre cfv cpi c2 co cneg ci cmul cmin caddc wceq adantr sylancr a1i
    c1 clt wbr cdiv cioo wa csin casin cexp csqrt clog sincl asinval syl ax-icn
    mulcl simpl efcl pncan3d subcld ax-1cn sqcld subcl binom2sub syl2anc sqvald
    ce ccos 2cn mul12d oveq12d coscl subsq sqmul i2 oveq1i mulm1d syl5eq oveq2d
    eqtrd subnegd addcomd 3eqtrd efival 2timesd pnpcan2d subdid eqtr3d sincossq
    3eqtr3d 3eqtr2d negsub cc0 cr halfre negicn addcld recld halfgt0 asinsinlem
    negcl reneg wb halfpire renegcli iooneg mp3an12 biimpa recni negnegi oveq2i
    syl6eleq eqeltrd mulneg12 fveq2d breqtrrd addgt0d readdd mulgt0d cosval wne
    recl 2ne0 divrec2d remul2 oveq1d pncand eqsqrt2d crn cim cle elioore adantl
    pire crp pirp rphalflt ax-mp ltnegi mpbi eliooord simpld lttrd mulneg1i ixi
    negeqi 3eqtri mulassd mulid2 3eqtr3a simprd ltled eqbrtrd ellogrn syl3anbrc
    imre logef ) ABCZADEZFGUAHZIZUUQUBHZCZUCZAUDEZUEEZJIZJUVBKHZRUVBGUFHZLHZUGE
    ZMHZUHEZKHZUVDJAKHZKHZAUVAUVBBCZUVCUVKNUUOUVNUUTAUIOZUVBUJUKUVAUVJUVLUVDKUV
    AUVLVDEZUHEZUVJUVLUVAUVPUVIUHUVAUVEUVPUVELHZMHUVPUVIUVAUVEUVPUVAJBCZUVNUVEB
    CZULUVOJUVBUMPZUVAUVLBCZUVPBCZUVAUVSUUOUWBULUUOUUTUNZJAUMPZUVLUOUKZUPUVAUVR
    UVHUVEMUVAUVRUVGUVAUVPUVEUWFUWAUQUVARBCZUVFBCZUVGBCURUVAUVBUVOUSZRUVFUTPUVA
    UVRGUFHZUVPGUFHZGUVPUVEKHKHZLHZUVEGUFHZMHZRUVFIZMHZUVGUVAUWCUVTUWJUWONUWFUW
    AUVPUVEVAVBUVAUWMRUWNUWPMUVAUWMUVPUVPKHZUVPGUVEKHZKHZLHZUVFAVEEZGUFHZMHZRUV
    AUWKUWRUWLUWTLUVAUVPUWFVCUVAGUVPUVEGBCZUVAVFQZUWFUWAVGVHUVAUXCUWNLHZUXBUVEM
    HZUXBUVELHZKHZUXDUXAUVAUXBBCZUVTUXGUXJNUUOUXKUUTAVIOZUWAUXBUVEVJVBUVAUXGUXC
    UWPLHUXCUVFMHUXDUVAUWNUWPUXCLUVAUWNJGUFHZUVFKHZUWPUVAUVSUVNUWNUXNNULUVOJUVB
    VKPUVAUXNRIZUVFKHUWPUXMUXOUVFKVLVMUVAUVFUWIVNVOVQZVPUVAUXCUVFUVAUXBUXLUSZUW
    IVRUVAUXCUVFUXQUWIVSVTUVAUVPUVPUWSLHZKHUXJUXAUVAUVPUXHUXRUXIKUUOUVPUXHNUUTA
    WAOZUVAUXRUXHUVEUVEMHZLHUXIUVAUVPUXHUWSUXTLUXSUVAUVEUWAWBVHUVAUXBUVEUVEUXLU
    WAUWAWCVQVHUVAUVPUVPUWSUWFUWFUVAUXEUVTUWSBCVFUWAGUVEUMPWDWEWGUUOUXDRNUUTAWF
    OWHUXPVHUVAUWGUWHUWQUVGNURUWIRUVFWIPVTUVAWJUXBDEZUVRDESUVAWJRGUAHZUVPUVDAKH
    ZVDEZMHZDEZKHZUYASUVAUYBUYFUYBWKCZUVAWLQUVAUYEUVAUVPUYDUWFUVAUYCBCZUYDBCUVA
    UVDBCZUUOUYIWMUWDUVDAUMPUYCUOUKZWNZWOWJUYBSTUVAWPQUVAWJUVPDEZUYDDEZMHUYFSUV
    AUYMUYNUVAUVPUWFWOUVAUYDUYKWOAWQUVAWJJAIZKHZVDEZDEZUYNSUVAUYOBCZUYODEZUUSCW
    JUYRSTUUOUYSUUTAWROUVAUYTUUPIZUUSUUOUYTVUANUUTAWSOUVAVUAUURUURIZUBHZUUSUUOU
    UTVUAVUCCZUUOUUPWKCZUUTVUDWTZAXSUURWKCZUUQWKCZVUEVUFUUQXAXBZXAUURUUQUUPXCXD
    UKXEVUBUUQUURUBUUQUUQXAXFXGXHXIXJUYOWQVBUVAUYDUYQDUVAUYCUYPVDUVAUVSUUOUYCUY
    PNULUWDJAXKPXLXLXMXNUVAUVPUYDUWFUYKXOXMXPUVAUYAUYBUYEKHZDEZUYGUVAUXBVUJDUVA
    UXBUYEGUAHZVUJUUOUXBVULNUUTAXQOUVAUYEGUYLUXFGWJXRUVAXTQYAVQXLUVAUYHUYEBCVUK
    UYGNWLUYLUYBUYEYBPVQXMUVAUVRUXBDUVAUVRUXHUVELHUXBUVAUVPUXHUVELUXSYCUVAUXBUV
    EUXLUWAYDVQXLXMYEVPWEXLUVAUVLUHYFCZUVQUVLNUVAUWBFIZUVLYGEZSTVUOFYHTVUMUWEUV
    AVUNUUPVUOSUVAVUNUURUUPVUNWKCUVAFYKXBQVUGUVAVUIQUUTVUEUUOUUPUURUUQYIYJZVUNU
    URSTZUVAUUQFSTZVUQFYLCVURYMFYNYOZUUQFXAYKYPYQQUVAUURUUPSTZUUPUUQSTZUUTVUTVV
    AUCUUOUUPUURUUQYRYJZYSYTUVAVUOUVMDEZUUPUVAUWBVUOVVCNUWEUVLUUMUKUVAUVMADUVAU
    VDJKHZAKHRAKHZUVMAVVDRAKVVDJJKHZIUXOIRJJULULUUAVVFUXOUUBUUCRURXGUUDVMUVAUVD
    JAUYJUVAWMQUVSUVAULQUWDUUEUUOVVEANUUTAUUFOUUGZXLVQZXMUVAVUOUUPFYHVVHUVAUUPF
    VUPFWKCUVAYKQZUVAUUPUUQFVUPVUHUVAXAQVVIUVAVUTVVAVVBUUHVURUVAVUSQYTUUIUUJUVL
    UUKUULUVLUUNUKWEVPVVGVT $.

  $( The arccosine function is an inverse to ` cos ` .  (Contributed by Mario
     Carneiro, 2-Apr-2015.) $)
  acoscos $p |- ( ( A e. CC /\ ( Re ` A ) e. ( 0 (,) _pi ) ) ->
    ( arccos ` ( cos ` A ) ) = A ) $=
    ( cc wcel cre cfv cc0 cpi ccos casin cmin wceq syl sylancr halfpire clt wbr
    co cr a1i wb cioo wa cacos cdiv coscl adantr acosval csin picn halfcl ax-mp
    c2 simpl nncan fveq2d subcl coshalfpim eqtr3d cneg recni rere oveq1i syl6eq
    resub resubcl neghalfpire eliooord adantl simprd caddc subnegi pidiv2halves
    eqtri syl6breqr ltsub13d simpld ltsubpos sylancl mpbid cxr w3a rexri elioo2
    recl mp2an syl3anbrc eqeltrd asinsin syl2anc eqtr2d asincl subsub23 syl3anc
    eqtrd ) ABCZADEZFGUAQCZUBZAHEZUCEZGULUDQZWSIEZJQZAWRWSBCZWTXCKWOXDWQAUEUFZW
    SUGLWRXAAJQZXBKZXCAKZWRXBXFUHEZIEZXFWRWSXIIWRXAXFJQZHEZWSXIWRXKAHWRXABCZWOX
    KAKGBCXMUIGUJUKZWOWQUMZXAAUNMUOWRXFBCZXLXIKWRXMWOXPXNXOXAAUPMZXFUQLURUOWRXP
    XFDEZXAUSZXAUAQZCXJXFKXQWRXRXAWPJQZXTWRXRXADEZWPJQZYAWRXMWOXRYCKXANUTZXOXAA
    VDMYBXAWPJXARCZYBXAKNXAVAUKVBVCWRYARCZXSYAOPZYAXAOPZYAXTCZWRYEWPRCZYFNWOYJW
    QAWDUFZXAWPVEMWRWPXAXSYKYEWRNSXSRCWRVFSWRWPGXAXSJQZOWRFWPOPZWPGOPZWQYMYNUBW
    OWPFGVGVHZVIYLXAXAVJQGXAXAYDYDVKVLVMVNVOWRYMYHWRYMYNYOVPWRYJYEYMYHTYKNWPXAV
    QVRVSXSVTCXAVTCYIYFYGYHWATXSVFWBXANWBXSXAYAWCWEWFWGXFWHWIWJWRXMWOXBBCZXGXHT
    XMWRYDSXOWRXDYPXEWSWKLXAAXBWLWMVSWN $.

  $( The arcsine of ` 1 ` is ` _pi / 2 ` .  (Contributed by Mario Carneiro,
     2-Apr-2015.) $)
  asin1 $p |- ( arcsin ` 1 ) = ( _pi / 2 ) $=
    ( c1 cfv ci cneg cmul cmin csqrt caddc clog cpi wcel ax-mp cc0 ax-icn eqtri
    co fveq2i clt wbr halfpire c2 cexp cdiv wceq ax-1cn asinval addid1i mulid1i
    casin cc sq1 oveq2i 1m1e0 sqrt0 oveq12i efhalfpi 3eqtr4i crn cim cle mulcli
    ce recni pipos cr wb pire lt0neg2 mpbi crp pirp rphalfcl rpgt0 renegcli 0re
    lttri mp2an addid2i crimi eqtr3i breqtrri rphalflt eqbrtri ellogrn mpbir3an
    ltleii logef mulneg1i negeqi negneg1e1 3eqtri oveq1i negicn mulassi mulid2i
    ixi ) AUIBZCDZCAEPZAAUAUBPZFPZGBZHPZIBZEPZWRCJUAUCPZEPZEPZXFAUJKWQXEUDUEAUF
    LXDXGWREXDXGVBBZIBZXGXCXIICMHPCXCXICNUGWSCXBMHCNUHXBMGBMXAMGXAAAFPMWTAAFUKU
    LUMOQUNOUOUPUQQXGIURKZXJXGUDXKXGUJKJDZXGUSBZRSXMJUTSCXFNXFTVCZVAZXLXFXMRXLM
    RSZMXFRSZXLXFRSMJRSZXPVDJVEKXRXPVFVGJVHLVIXFVJKZXQJVJKZXSVKJVLLXFVMLXLMXFJV
    GVNVOTVPVQMXGHPZUSBXMXFYAXGUSXGXOVRQMXFVOTVSVTZWAXMXFJUTYBXFJTVGXTXFJRSVKJW
    BLWFWCXGWDWEXGWGLOULAXFEPZXHXFWRCEPZXFEPYCXHYDAXFEYDCCEPZDADZDACCNNWHYEYFWP
    WIWJWKWLWRCXFWMNXNWNVTXFXNWOVTWK $.

  $( The arcsine of ` 1 ` is ` _pi / 2 ` .  (Contributed by Mario Carneiro,
     2-Apr-2015.) $)
  acos1 $p |- ( arccos ` 1 ) = 0 $=
    ( c1 cacos cfv cpi c2 cdiv co casin cmin cc0 wcel wceq ax-1cn acosval ax-mp
    cc asin1 oveq2i picn halfcl subidi 3eqtri ) ABCZDEFGZAHCZIGZUDUDIGJAPKUCUFL
    MANOUEUDUDIQRUDDPKUDPKSDTOUAUB $.

  $( The arcsine function composed with ` sin ` is equal to the identity.
     (Contributed by Mario Carneiro, 2-Apr-2015.) $)
  reasinsin $p |- ( A e. ( -u ( _pi / 2 ) [,] ( _pi / 2 ) ) ->
    ( arcsin ` ( sin ` A ) ) = A ) $=
    ( cpi co cneg wcel csin cfv casin wceq cxr wbr neghalfpire halfpire cc0 clt
    wo ax-mp cc id c1 c2 cdiv cicc cioo cpr cun cle rexri crp rphalfcl rpgt0 cr
    pirp wb lt0neg2 mpbi 0re lttri mp2an ltleii prunioo mp3an eleq2i bitr3i cre
    elun elioore recnd rered eqeltrd asinsin syl2anc elpri ax-1cn asinneg asin1
    negeqi eqtri fveq2 recni sinneg sinhalfpi syl6eq fveq2d 3eqtr4a jaoi sylbi
    syl ) ABUAUBCZDZWIUCCZEZAWJWIUDCZEZAWJWIUEZEZPZAFGZHGZAIZWLAWMWOUFZEWQXAWKA
    WJJEWIJEWJWIUGKXAWKIWJLUHWIMUHWJWILMWJNOKZNWIOKZWJWIOKXCXBWIUIEZXCBUIEXDUMB
    UJQWIUKQZWIULEXCXBUNMWIUOQUPXEWJNWILUQMURUSUTWJWIVAVBVCAWMWOVFVDWNWTWPWNARE
    AVEGZWMEWTWNAAWJWIVGZVHWNXFAWMWNAXGVIWNSVJAVKVLWPAWJIZAWIIZPWTAWJWIVMXHWTXI
    XHTDZHGZWJWSAXKTHGZDZWJTREXKXMIVNTVOQXLWIVPVQVRXHWRXJHXHWRWJFGZXJAWJFVSXNWI
    FGZDZXJWIREXNXPIWIMVTWIWAQXOTWBVQVRWCWDXHSWEXIXLWIWSAVPXIWRTHXIWRXOTAWIFVSW
    BWCWDXISWEWFWHWFWG $.

  $( Relationship between sine and arcsine.  (Contributed by Mario Carneiro,
     2-Apr-2015.) $)
  asinsinb $p |- ( ( A e. CC /\ B e. CC /\
    ( Re ` B ) e. ( -u ( _pi / 2 ) (,) ( _pi / 2 ) ) ) ->
    ( ( arcsin ` A ) = B <-> ( sin ` B ) = A ) ) $=
    ( cc wcel cre cfv cpi c2 cdiv co cneg cioo w3a casin wceq csin fveq2 eqeq1d
    sinasin syl5ibcom 3ad2ant1 asinsin 3adant1 impbid ) ACDZBCDZBEFGHIJZKUGLJDZ
    MZANFZBOZBPFZAOZUIUJPFZAOZUKUMUEUFUOUHASUAUKUNULAUJBPQRTUIULNFZBOZUMUKUFUHU
    QUEBUBUCUMUPUJBULANQRTUD $.

  $( Relationship between sine and arcsine.  (Contributed by Mario Carneiro,
     2-Apr-2015.) $)
  acoscosb $p |- ( ( A e. CC /\ B e. CC /\ ( Re ` B ) e. ( 0 (,) _pi ) ) ->
    ( ( arccos ` A ) = B <-> ( cos ` B ) = A ) ) $=
    ( cc wcel cre cfv cc0 cpi cioo co w3a cacos wceq ccos 3ad2ant1 fveq2 eqeq1d
    cosacos syl5ibcom acoscos 3adant1 impbid ) ACDZBCDZBEFGHIJDZKZALFZBMZBNFZAM
    ZUFUGNFZAMZUHUJUCUDULUEAROUHUKUIAUGBNPQSUFUILFZBMZUJUHUDUEUNUCBTUAUJUMUGBUI
    ALPQSUB $.

  $( The arcsine function has range within a vertical strip of the complex
     plane with real part between ` -u _pi / 2 ` and ` _pi / 2 ` .
     (Contributed by Mario Carneiro, 2-Apr-2015.) $)
  asinbnd $p |- ( A e. CC ->
    ( Re ` ( arcsin ` A ) ) e. ( -u ( _pi / 2 ) [,] ( _pi / 2 ) ) ) $=
    ( cc wcel casin cfv cre ci cmul co c1 c2 cexp cmin csqrt caddc clog cim cpi
    cneg cc0 cdiv cicc asinval fveq2d wceq ax-icn mulcl mpan sqcl subcl sylancr
    ax-1cn sqrtcld addcld asinlem logcld imre syl wne cle wbr asinlem3 argrege0
    eqtr4d syl3anc eqeltrd ) ABCZADEZFEZGAHIZJAKLIZMIZNEZOIZPEZQEZRKUAIZSVQUBIZ
    VGVIGSVOHIZFEZVPVGVHVSFAUCUDVGVOBCVPVTUEVGVNVGVJVMGBCVGVJBCUFGAUGUHVGVLVGJB
    CVKBCVLBCULAUIJVKUJUKUMUNZAUOZUPVOUQURVDVGVNBCVNTUSTVNFEUTVAVPVRCWAWBAVBVNV
    CVEVF $.

  $( The arccosine function has range within a vertical strip of the complex
     plane with real part between ` 0 ` and ` _pi ` .  (Contributed by Mario
     Carneiro, 2-Apr-2015.) $)
  acosbnd $p |- ( A e. CC -> ( Re ` ( arccos ` A ) ) e. ( 0 [,] _pi ) ) $=
    ( cc wcel cfv cre cpi cmin cc0 cicc wceq halfpire recni sylancr neghalfpire
    co cr cle wbr elicc2i pire cacos c2 casin acosval fveq2d asincl resub ax-mp
    cdiv rere oveq1i syl6eq eqtrd recld resubcl w3a asinbnd sylib simp3d subge0
    cneg wb mpbird a1i caddc negsubi pidiv2halves subaddrii eqtri simp2d subled
    syl5eqbr 0re syl3anbrc eqeltrd ) ABCZAUADZEDZFUBUIOZAUCDZEDZGOZHFIOZVPVRVSV
    TGOZEDZWBVPVQWDEAUDUEVPWEVSEDZWAGOZWBVPVSBCVTBCWEWGJVSKLZAUFZVSVTUGMWFVSWAG
    VSPCZWFVSJKVSUJUHUKULUMVPWBPCZHWBQRZWBFQRWBWCCVPWJWAPCZWKKVPVTWIUNZVSWAUOMV
    PWLWAVSQRZVPWMVSVAZWAQRZWOVPWAWPVSIOCWMWQWOUPAUQWPVSWANKSURZUSVPWJWMWLWOVBK
    WNVSWAUTMVCVPVSFWAWJVPKVDFPCVPTVDWNVPVSFGOWPWAQVSFWPWHFTLZWPNLFWPVEOFVSGOVS
    FVSWSWHVFFVSVSWSWHWHVGVHVIVHVPWMWQWOWRVJVLVKHFWBVMTSVNVO $.

  $( Bounds on the arcsine function.  (Contributed by Mario Carneiro,
     2-Apr-2015.) $)
  asinrebnd $p |- ( A e. ( -u 1 [,] 1 ) ->
    ( arcsin ` A ) e. ( -u ( _pi / 2 ) [,] ( _pi / 2 ) ) ) $=
    ( c1 cneg cicc co wcel casin cfv csin cpi cdiv cres ccnv wceq wf1o resinf1o
    c2 wf syl eqtr3d f1ocnv f1of mp2b ffvelrni fvres f1ocnvfv2 fveq2d reasinsin
    mpan eqeltrd ) ABCBDEZFZAGHZAIJQKEZCUNDEZLZMZHZUOULURIHZGHZUMURULUSAGULURUP
    HZUSAULURUOFZVAUSNUKUOAUQUOUKUPOZUKUOUQOUKUOUQRPUOUKUPUAUKUOUQUBUCUDZURUOIU
    ESVCULVAANPUOUKAUPUFUITUGULVBUTURNVDURUHSTVDUJ $.

  $( The arcsine function is real in its principal domain.  (Contributed by
     Mario Carneiro, 2-Apr-2015.) $)
  asinrecl $p |- ( A e. ( -u 1 [,] 1 ) -> ( arcsin ` A ) e. RR ) $=
    ( c1 cneg cicc co wcel cpi c2 cdiv cr casin cfv wss halfpire renegcli mp2an
    iccssre asinrebnd sseldi ) ABCBDEFGHIEZCZTDEZJAKLUAJFTJFUBJMTNONUATQPARS $.

  $( The arccosine function is real in its principal domain.  (Contributed by
     Mario Carneiro, 2-Apr-2015.) $)
  acosrecl $p |- ( A e. ( -u 1 [,] 1 ) -> ( arccos ` A ) e. RR ) $=
    ( c1 cneg cicc co wcel cacos cfv cpi c2 cdiv casin cmin wceq wss neg1rr 1re
    cr cc iccssre mp2an sseli acosval halfpire asinrecl resubcl sylancr eqeltrd
    recnd syl ) ABCZBDEZFZAGHZIJKEZALHZMEZRUMASFUNUQNUMAULRAUKRFBRFULROPQUKBTUA
    UBUIAUCUJUMUORFUPRFUQRFUDAUEUOUPUFUGUH $.

  $( The cosine of the arcsine of ` A ` is ` sqrt ( 1 - A ^ 2 ) ` .
     (Contributed by Mario Carneiro, 2-Apr-2015.) $)
  cosasin $p |- ( A e. CC ->
    ( cos ` ( arcsin ` A ) ) = ( sqrt ` ( 1 - ( A ^ 2 ) ) ) ) $=
    ( cc wcel casin cfv ci cmul co ce cneg caddc c2 cdiv cexp cmin csqrt ax-icn
    c1 wceq 3eqtrd ccos asincl cosval syl sqcl subcl sylancr sqrtcld mulcl mpan
    ax-1cn ppncand efiasin addcomd eqtrd mulneg12 asinneg oveq2d eqtr4d mulneg2
    fveq2d negcl sqneg oveq12d negcld negsubd 2timesd 3eqtr4d 2cnd cc0 wne 2ne0
    oveq1d a1i divcan3d ) ABCZADEZUAEZFVQGHIEZFJVQGHZIEZKHZLMHZLRALNHZOHZPEZGHZ
    LMHWFVPVQBCZVRWCSAUBZVQUCUDVPWBWGLMVPWFFAGHZKHZWFWJOHZKHWFWFKHWBWGVPWFWJWFV
    PWEVPRBCWDBCWEBCUKAUERWDUFUGUHZFBCZVPWJBCQFAUIUJZWMULVPVSWKWAWLKVPVSWJWFKHW
    KAUMVPWJWFWOWMUNUOVPWAWJJZWFKHZWFWPKHWLVPWAFAJZDEZGHZIEZFWRGHZRWRLNHZOHZPEZ
    KHZWQVPVTWTIVPVTFVQJZGHZWTVPWNWHVTXHSQWIFVQUPUGVPWSXGFGAUQURUSVAVPWRBCXAXFS
    AVBWRUMUDVPXBWPXEWFKWNVPXBWPSQFAUTUJVPXDWEPVPXCWDROAVCURVAVDTVPWPWFVPWJWOVE
    WMUNVPWFWJWMWOVFTVDVPWFWMVGVHVMVPWFLWMVPVILVJVKVPVLVNVOT $.

  $( The sine of the arccosine of ` A ` is ` sqrt ( 1 - A ^ 2 ) ` .
     (Contributed by Mario Carneiro, 2-Apr-2015.) $)
  sinacos $p |- ( A e. CC ->
    ( sin ` ( arccos ` A ) ) = ( sqrt ` ( 1 - ( A ^ 2 ) ) ) ) $=
    ( cc wcel cpi c2 cdiv co cacos cfv cmin ccos casin csin cexp acosval oveq2d
    c1 csqrt wceq picn halfcl ax-mp asincl nncan eqtrd fveq2d acoscl coshalfpim
    sylancr syl cosasin 3eqtr3d ) ABCZDEFGZAHIZJGZKIZALIZKIUOMIZQAENGJGRIUMUPUR
    KUMUPUNUNURJGZJGZURUMUOUTUNJAOPUMUNBCZURBCVAURSDBCVBTDUAUBAUCUNURUDUIUEUFUM
    UOBCUQUSSAUGUOUHUJAUKUL $.

  $( The domain of the arctangent function is closed under negatives.
     (Contributed by Mario Carneiro, 3-Apr-2015.) $)
  atandmneg $p |- ( A e. dom arctan -> -u A e. dom arctan ) $=
    ( catan cdm wcel cneg cc c2 cexp co c1 wne atandm3 simplbi negcld sqneg syl
    wceq simprbi eqnetrd sylanbrc ) ABCZDZAEZFDUCGHIZJEZKUCUADUBAUBAFDZAGHIZUEK
    ZALZMZNUBUDUGUEUBUFUDUGQUJAOPUBUFUHUIRSUCLT $.

  $( The arctangent function is odd.  (Contributed by Mario Carneiro,
     3-Apr-2015.) $)
  atanneg $p |- ( A e. dom arctan -> ( arctan ` -u A ) = -u ( arctan ` A ) ) $=
    ( catan wcel ci co c1 cneg cmul cmin clog cfv caddc wceq ax-icn cc0 sylancr
    cc oveq2d ax-1cn eqtrd cdm c2 cdiv wne atandm2 simp1bi mulneg2 mulcl subneg
    fveq2d negsub oveq12d subcl simp2bi logcld simp3bi negsubdi2d eqtr4d halfcl
    addcl ax-mp subcld atandmneg atanval syl negeqd 3eqtr4d ) ABUAZCZDUBUCEZFDA
    GZHEZIEZJKZFVLLEZJKZIEZHEZVJFDAHEZIEZJKZFVSLEZJKZIEZHEZGZVKBKZABKZGVIVRVJWD
    GZHEZWFVIVQWIVJHVIVQWCWAIEWIVIVNWCVPWAIVIVMWBJVIVMFVSGZIEZWBVIVLWKFIVIDQCZA
    QCZVLWKMNVIWNVTOUDZWBOUDZAUEZUFZDAUGPZRVIFQCZVSQCZWLWBMSVIWMWNXANWRDAUHPZFV
    SUIPTUJVIVOVTJVIVOFWKLEZVTVIVLWKFLWSRVIWTXAXCVTMSXBFVSUKPTUJULVIWAWCVIVTVIW
    TXAVTQCSXBFVSUMPVIWNWOWPWQUNUOZVIWBVIWTXAWBQCSXBFVSUTPVIWNWOWPWQUPUOZUQURRV
    IVJQCZWDQCWJWFMWMXFNDUSVAVIWAWCXDXEVBVJWDUGPTVIVKVHCWGVRMAVCVKVDVEVIWHWEAVD
    VFVG $.

  $( The arctangent of zero is zero.  (Contributed by Mario Carneiro,
     31-Mar-2015.) $)
  atan0 $p |- ( arctan ` 0 ) = 0 $=
    ( cc0 catan cfv cneg wceq neg0 fveq2i cr wcel cdm 0re atanre atanneg eqtr3i
    mp2b cc atancl eqnegi mpbi ) ABCZTDZETAEADZBCZTUAUBABFGAHIZABJIZUCUAEKALZAM
    ONTUDUETPIKUFAQORS $.

  $( The arctangent function distributes under conjugation.  (Contributed by
     Mario Carneiro, 31-Mar-2015.) $)
  atandmcj $p |- ( A e. dom arctan -> ( * ` A ) e. dom arctan ) $=
    ( catan cdm wcel ccj cfv cc c2 cexp co c1 cneg wne atandm3 simplbi cn0 wceq
    cjcld 2nn0 cjexp sylancl sqcld cjcjd simprbi eqnetrd fveq2 cr neg1rr syl6eq
    cjre ax-mp necon3i syl eqnetrrd sylanbrc ) ABCZDZAEFZGDURHIJZKLZMURUPDUQAUQ
    AGDZAHIJZUTMZANZOZRUQVBEFZUSUTUQVAHPDVFUSQVESAHTUAUQVFEFZUTMVFUTMUQVGVBUTUQ
    VBUQAVEUBUCUQVAVCVDUDUEVFUTVGUTVFUTQVGUTEFZUTVFUTEUFUTUGDVHUTQUHUTUJUKUIULU
    MUNURNUO $.

  $( The arctangent function distributes under conjugation.  (The condition
     that ` Re ( A ) =/= 0 ` is necessary because the branch cuts are chosen so
     that the negative imaginary line "agrees with" neighboring values with
     negative real part, while the positive imaginary line agrees with values
     with positive real part.  This makes ~ atanneg true unconditionally but
     messes up conjugation symmetry, and it is impossible to have both in a
     single-valued function.  The claim is true on the imaginary line between
     ` -u 1 ` and ` 1 ` , though.)  (Contributed by Mario Carneiro,
     31-Mar-2015.) $)
  atancj $p |- ( ( A e. CC /\ ( Re ` A ) =/= 0 ) -> ( A e. dom arctan /\
    ( * ` ( arctan ` A ) ) = ( arctan ` ( * ` A ) ) ) ) $=
    ( cc wcel cfv cc0 wne ccj wceq ci cneg ax-icn c2 co c1 cmul cmin clog caddc
    ax-1cn sylancr cre wa catan cdm simpl simpr fveq2 renegi negeqi neg0 3eqtri
    rei syl6eq necon3i syl atandm syl3anbrc cdiv halfcl ax-mp mulcl w3a atandm2
    subcl sylib simp2d logcld addcl simp3d subcld cjmul 2cn cjdivi divneg mp3an
    2ne0 cji 2re cjre oveq12i eqtr4i oveq1i cjcld mulneg12 syl5eq cjsub syl2anc
    cim imsub reim adantr oveq2d eqtr4d df-neg im1 syl6eqr recl negne0d eqnetrd
    recnd logcj 1re mp1i cjcl mulneg1 eqtrd oveq12d subneg 3eqtrd fveq2d eqtr3d
    cr imadd addid2d 3eqtr2d negsub atandmcj simp3bi simp2bi negsubdi2d atanval
    cjadd negeqd 3eqtr4d jca ) ABCZAUADZEFZUBZAUCUDZCZAUCDZGDZAGDZUCDZHYIYFAIJZ
    FZAIFZYKYFYHUEZYIYHYQYFYHUFZAYPYGEAYPHYGYPUADZEAYPUAUGUUAIUADZJEJEIKUHUUBEU
    LUIUJUKUMUNUOYIYHYRYTAIYGEAIHYGUUBEAIUAUGULUMUNUOAUPUQZYIILURMZNIAOMZPMZQDZ
    NUUERMZQDZPMZOMZGDZUUDNIYNOMZPMZQDZNUUMRMZQDZPMZOMZYMYOYIUULUUDGDZUUJGDZOMZ
    UUDUVAJZOMZUUSYIUUDBCZUUJBCUULUVBHIBCZUVEKIUSUTZYIUUGUUIYIUUFYINBCZUUEBCZUU
    FBCZSYIUVFYFUVIKYSIAVATZNUUEVDTZYIYFUUFEFZUUHEFZYIYKYFUVMUVNVBUUCAVCVEZVFVG
    ZYIUUHYIUVHUVIUUHBCZSUVKNUUEVHTZYIYFUVMUVNUVOVIVGZVJZUUDUUJVKTYIUVBUUDJZUVA
    OMZUVDUUTUWAUVAOUUTIGDZLGDZURMZUWALEFZUUTUWEHVPILKVLVMUTUWAYPLURMZUWEUVFLBC
    UWFUWAUWGHKVLVPILVNVOUWCYPUWDLURVQLXLCUWDLHVRLVSUTVTWAWAWBYIUVEUVABCUWBUVDH
    UVGYIUUJUVTWCUUDUVAWDTWEYIUVCUURUUDOYIUVCUUQUUOPMZJUURYIUVAUWHYIUVAUUGGDZUU
    IGDZPMZUWHYIUUGBCUUIBCUVAUWKHUVPUVSUUGUUIWFWGYIUWIUUQUWJUUOPYIUUFGDZQDZUWIU
    UQYIUVJUUFWHDZEFUWMUWIHUVLYIUWNYGJZEYIUWNNWHDZYGPMZUWOYIUWNUWPUUEWHDZPMZUWQ
    YIUVHUVIUWNUWSHSUVKNUUEWITYIYGUWRUWPPYFYGUWRHYHAWJWKZWLWMUWOEYGPMUWQYGWNUWP
    EYGPWOWBWAWPYIYGYIYGYFYGXLCYHAWQWKWTZYTWRWSUUFXAWGYIUWLUUPQYIUWLNGDZUUEGDZP
    MZNUUMJZPMZUUPYIUVHUVIUWLUXDHSUVKNUUEWFTYIUXBNUXCUXEPNXLCUXBNHYIXBNVSXCZYIU
    XCUWCYNOMZUXEYIUVFYFUXCUXHHKYSIAVKTYIUXHYPYNOMZUXEUWCYPYNOVQWBYIUVFYNBCZUXI
    UXEHKYFUXJYHAXDWKZIYNXETWEXFZXGYIUVHUUMBCZUXFUUPHSYIUVFUXJUXMKUXKIYNVATZNUU
    MXHTXIXJXKYIUUHGDZQDZUWJUUOYIUVQUUHWHDZEFUXPUWJHUVRYIUXQYGEYIUXQUWPUWRRMZEY
    GRMZYGYIUVHUVIUXQUXRHSUVKNUUEXMTYIUXSEUWRRMUXRYIYGUWRERUWTWLUWPEUWRRWOWBWPY
    IYGUXAXNXOYTWSUUHXAWGYIUXOUUNQYIUXOUXBUXCRMZNUXERMZUUNYIUVHUVIUXOUXTHSUVKNU
    UEYBTYIUXBNUXCUXERUXGUXLXGYIUVHUXMUYAUUNHSUXNNUUMXPTXIXJXKXGXFYCYIUUQUUOYIU
    UPYIUVHUXMUUPBCSUXNNUUMVHTYIYNYJCZUUPEFZYIYKUYBUUCAXQUOZUYBUXJUUNEFZUYCYNVC
    ZXRUOVGYIUUNYIUVHUXMUUNBCSUXNNUUMVDTYIUYBUYEUYDUYBUXJUYEUYCUYFXSUOVGXTXFWLX
    IYIYLUUKGYIYKYLUUKHUUCAYAUOXJYIUYBYOUUSHUYDYNYAUOYDYE $.

  $( The arctangent function is real for all real inputs.  (Contributed by
     Mario Carneiro, 31-Mar-2015.) $)
  atanrecl $p |- ( A e. RR -> ( arctan ` A ) e. RR ) $=
    ( cr wcel catan cfv cc0 wceq wa simpr fveq2d atan0 0re eqeltri syl6eqel wne
    cdm cc atanre adantr ccj atancl syl simpl recnd rere eqnetrd atancj syl2anc
    cre simprd cjre eqtrd cjrebd pm2.61dane ) ABCZADEZBCAFUOAFGZHZUPFDEZBURAFDU
    OUQIJUSFBKLMNUOAFOZHZUPVAADPCZUPQCUOVBUTARSAUAUBVAUPTEZATEZDEZUPVAVBVCVEGZV
    AAQCAUIEZFOVBVFHVAAUOUTUCUDVAVGAFUOVGAGUTAUESUOUTIUFAUGUHUJVAVDADUOVDAGUTAU
    KSJULUMUN $.

  $( Value of the exponential of an artcangent.  (Contributed by Mario
     Carneiro, 2-Apr-2015.) $)
  efiatan $p |- ( A e. dom arctan ->
    ( exp ` ( _i x. ( arctan ` A ) ) ) =
    ( ( sqrt ` ( 1 + ( _i x. A ) ) ) / ( sqrt ` ( 1 - ( _i x. A ) ) ) ) ) $=
    ( wcel ci cfv cmul co ce c1 c2 cdiv cmin cc ax-icn ax-1cn cc0 mulcl sylancr
    wne wceq halfcn catan cdm caddc clog atanval oveq2d a1i halfcl mp1i atandm2
    csqrt simp1bi subcl simp2bi logcld addcl simp3bi subcld mulassd cneg divneg
    2cn 2ne0 mp3an ixi oveq1i divassi 3eqtr2i mulneg12 negsubdi2d subdid 3eqtrd
    syl5eqr 3eqtr2d fveq2d efsub syl2anc ccxp cxpefd cxpsqrt syl eqtr3d oveq12d
    ) AUAUBBZCAUADZEFZGDHIJFZHCAEFZUCFZUDDZEFZWGHWHKFZUDDZEFZKFZGDZWKGDZWNGDZJF
    ZWIUKDZWLUKDZJFWDWFWOGWDWFCCIJFZWMWJKFZEFZEFCXBEFZXCEFZWOWDWEXDCEAUEUFWDCXB
    XCCLBZWDMUGXGXBLBWDMCUHUIWDWMWJWDWLWDHLBZWHLBZWLLBZNWDXGALBZXIMWDXKWLORZWIO
    RZAUJZULCAPQZHWHUMQZWDXKXLXMXNUNZUOZWDWIWDXHXIWILBZNXOHWHUPQZWDXKXLXMXNUQZU
    OZURZUSWDXFWGUTZXCEFZWOYDXEXCEYDHUTZIJFZCCEFZIJFXEXHILBIORYDYGSNVBVCHIVAVDY
    HYFIJVEVFCCIMMVBVCVGVHVFWDYEWGXCUTZEFZWGWJWMKFZEFWOWDWGLBZXCLBYEYJSTYCWGXCV
    IQWDYIYKWGEWDWMWJXRYBVJUFWDWGWJWMYLWDTUGZYBXRVKVLVMVNVOWDWKLBZWNLBZWPWSSWDY
    LWJLBYNTYBWGWJPQWDYLWMLBYOTXRWGWMPQWKWNVPVQWDWQWTWRXAJWDWIWGVRFZWQWTWDWIWGX
    TYAYMVSWDXSYPWTSXTWIVTWAWBWDWLWGVRFZWRXAWDWLWGXPXQYMVSWDXJYQXASXPWLVTWAWBWC
    VL $.

  $( Lemma for ~ atanlogadd .  (Contributed by Mario Carneiro, 3-Apr-2015.) $)
  atanlogaddlem $p |- ( ( A e. dom arctan /\ 0 <_ ( Re ` A ) ) ->
    ( ( log ` ( 1 + ( _i x. A ) ) ) +
      ( log ` ( 1 - ( _i x. A ) ) ) ) e. ran log ) $=
    ( wcel cc0 cfv cle wbr clt wceq c1 co caddc cr cc sylancr wa cpi cim adantr
    cmin syl2anc catan cdm cre wo ci cmul clog crn wb 0re atandm2 simp1bi recld
    wne leloe biimpa cneg ax-1cn ax-icn mulcl addcl simp3bi logcld subcl addcld
    simp2bi pire renegcli a1i imcld readdcld cioo im1 oveq1i df-neg eqtr4i reim
    imsub negeqd 3eqtr4a lt0neg2d eqbrtrd argimlt0 eliooord simpld simpr oveq2d
    imadd recnd addid2d syl5eq 3eqtr2d breqtrrd argimgt0 ltaddpos2d mpbid lttrd
    imaddd 0red simprd ltadd2dd addid1d breqtrd ltled ellogrn syl3anbrc reim0bd
    syl eqtr2d addcomd ad2antrr logrncl readdcl 1red 0lt1 addge01 ltletrd elrpd
    1re relogcld logrnaddcl eqeltrd resubcl 1m0e1 lesub2d lecasei jaodan syldan
    syl5eqbrr ) AUAUBBZCAUCDZEFZCYKGFZCYKHZUDZIUEAUFJZKJZUGDZIYPSJZUGDZKJZUGUHZ
    BZYJYLYOYJCLBYKLBYLYOUIUJYJAYJAMBZYSCUNZYQCUNZAUKZULZUMZCYKUONUPYJYMUUCYNYJ
    YMOZUUAMBZPUQZUUAQDZGFUUMPEFUUCYJUUKYMYJYRYTYJYQYJIMBZYPMBZYQMBZURYJUEMBUUD
    UUOUSUUHUEAUTNZIYPVANZYJUUDUUEUUFUUGVBZVCZYJYSYJUUNUUOYSMBZURUUQIYPVDNZYJUU
    DUUEUUFUUGVFZVCZVERUUJUULYRQDZYTQDZKJZUUMGUUJUULUVFUVGUULLBUUJPVGVHVIUUJYTY
    JYTMBYMUVDRZVJZUUJUVEUVFUUJYRYJYRMBYMUUTRZVJZUVIVKZUUJUULUVFGFZUVFCGFZUUJUV
    FUULCVLJBZUVMUVNOUUJUVAYSQDZCGFUVOYJUVAYMUVBRUUJUVPYKUQZCGUUJIQDZYPQDZSJZUV
    SUQZUVPUVQUVTCUVSSJUWAUVRCUVSSVMVNUVSVOVPUUJUUNUUOUVPUVTHURYJUUOYMUUQRZIYPV
    RNUUJYKUVSUUJUUDYKUVSHZYJUUDYMUUHRZAVQZXHZVSVTYJYMUVQCGFYJYKUUIWAUPWBYSWCTU
    VFUULCWDXHZWEUUJCUVEGFZUVFUVGGFUUJUWHUVEPGFZUUJUVECPVLJBZUWHUWIOUUJUUPCYQQD
    ZGFUWJYJUUPYMUURRUUJCYKUWKGYJYMWFUUJUWKUVRUVSKJZUVRYKKJZYKUUJUUNUUOUWKUWLHU
    RUWBIYPWHNUUJYKUVSUVRKUWFWGUUJUWMCYKKJYKUVRCYKKVMVNUUJYKUUJYKUUJAUWDUMWIWJW
    KWLWMYQWNTUVECPWDXHZWEUUJUVEUVFUVKUVIWOWPWQUUJYRYTUVJUVHWRZWMUUJUUMUVGPEUWO
    UUJUVGPUVLPLBUUJVGVIZUUJUVGUVEPUVLUVKUWPUUJUVGUVECKJUVEGUUJUVFCUVEUVIUUJWSU
    VKUUJUVMUVNUWGWTXAUUJUVEUUJUVEUVKWIXBXCUUJUWHUWIUWNWTWQXDWBUUAXEXFYJYNOZUUC
    CYPUWQWSZUWQYPYJUUOYNUUQRUWQCYKUVSYJYNWFUWQUUDUWCYJUUDYNUUHRUWEXHXIXGZUWQCY
    PEFZOZUUAYTYRKJZUUBYJUUAUXBHYNUWTYJYRYTUUTUVDXJXKUXAYTUUBBZYRLBUXBUUBBYJUXC
    YNUWTYJUVAUUEUXCUVBUVCYSXLTXKUXAYQUXAYQUXAILBZYPLBZYQLBXSUWQUXEUWTUWSRIYPXM
    NZUXACIYQUXAWSUXAXNUXFCIGFZUXAXOVIUWQUWTIYQEFZUWQUXDUXEUWTUXHUIXSUWSIYPXPNU
    PXQXRXTYTYRYATYBUWQYPCEFZOZYRUUBBZYTLBUUCYJUXKYNUXIYJUUPUUFUXKUURUUSYQXLTXK
    UXJYSUXJYSUXJUXDUXEYSLBXSUWQUXEUXIUWSRIYPYCNZUXJCIYSUXJWSUXJXNUXLUXGUXJXOVI
    UXJIICSJZYSEYDUWQUXIUXMYSEFUWQYPCIUWSUWRUWQXNYEUPYIXQXRXTYRYTYATYFYGYH $.

  $( The rule ` sqrt ( z w ) = ( sqrt z ) ( sqrt w ) ` is not always true on
     the complex numbers, but it is true when the arguments of ` z ` and ` w `
     sum to within the interval ` ( -u _pi , _pi ] ` , so there are some cases
     such as this one with ` z = 1 + _i A ` and ` w = 1 - _i A ` which are true
     unconditionally.  This result can also be stated
     as " ` sqrt ( 1 + z ) + sqrt ( 1 - z ) ` is analytic".  (Contributed by
     Mario Carneiro, 3-Apr-2015.) $)
  atanlogadd $p |- ( A e. dom arctan ->
    ( ( log ` ( 1 + ( _i x. A ) ) ) +
      ( log ` ( 1 - ( _i x. A ) ) ) ) e. ran log ) $=
    ( wcel c1 ci cmul co caddc clog cfv cmin cc0 cre cc cle cneg ax-1cn sylancr
    wbr wceq adantr catan cdm crn 0red wne atandm2 simp1bi atanlogaddlem ax-icn
    recld mulcl addcl simp3bi logcld subcl simp2bi addcomd mulneg2 oveq2d eqtrd
    negsub fveq2d subneg oveq12d eqtr4d le0neg1d biimpa renegd breqtrrd syl2anc
    wa atandmneg eqeltrd lecasei ) AUAUBZBZCDAEFZGFZHIZCVQJFZHIZGFZHUCZBKALIZVP
    UDVPAVPAMBZVTKUEZVRKUEZAUFZUGZUJZAUHVPWDKNRZVKZWBCDAOZEFZGFZHIZCWNJFZHIZGFZ
    WCVPWBWSSWKVPWBWAVSGFWSVPVSWAVPVRVPCMBZVQMBZVRMBPVPDMBZWEXAUIWIDAUKQZCVQULQ
    VPWEWFWGWHUMUNVPVTVPWTXAVTMBPXCCVQUOQVPWEWFWGWHUPUNUQVPWPWAWRVSGVPWOVTHVPWO
    CVQOZGFZVTVPWNXDCGVPXBWEWNXDSUIWIDAURQZUSVPWTXAXEVTSPXCCVQVAQUTVBVPWQVRHVPW
    QCXDJFZVRVPWNXDCJXFUSVPWTXAXGVRSPXCCVQVCQUTVBVDVETWLWMVOBZKWMLIZNRWSWCBVPXH
    WKAVLTWLKWDOZXINVPWKKXJNRVPWDWJVFVGVPXIXJSWKVPAWIVHTVIWMUHVJVMVN $.

  $( Lemma for ~ atanlogsub .  (Contributed by Mario Carneiro, 4-Apr-2015.) $)
  atanlogsublem $p |- ( ( A e. dom arctan /\ 0 < ( Re ` A ) ) ->
    ( Im ` ( ( log ` ( 1 + ( _i x. A ) ) ) -
             ( log ` ( 1 - ( _i x. A ) ) ) ) ) e. ( -u _pi (,) _pi ) ) $=
    ( wcel cc0 cre cfv clt wbr c1 ci co caddc clog cmin cim cpi cc wceq sylancl
    ax-icn cr catan cdm wa cmul cneg cioo c2 ax-1cn wne w3a simpl atandm2 sylib
    simp1d mulcl sylancr addcl simp3d logcld subcl simp2d imsubd a1i subdid ixi
    oveq2i subneg syl5eq addcom 3eqtrd fveq2d cle resub rei recld recnd subid1d
    cdiv eqtrd gt0ne0 sylancom eqnetrd fveq2 re0 syl6eq necon3i syl wi 0re ltle
    simpr mpd breqtrrd logimul syl3anc eqtr3d halfpire recni mulcli imadd ax-mp
    reim rere eqtr3i readd addid1d logneg2 syl2anc adddid negsub negsubdi2 picn
    negeqd oveq1d addsubassd 3eqtr3d subcli oveq12i negcli negsubi pidiv2halves
    imsub mp2an pire subaddrii eqtri oveq12d imcld logimcld mpbid ltsubaddd imi
    wb ctan 3brtr4d tanarg argregt0 mpbird cxr rexri addsub4d resubcld renegcli
    3eqtri subnegi readdcl renegcld simpld simprd ltleaddd negsubd breqtrd 0red
    leneg syl5eqbrr peano2rem ltm1d ltp1d lttrd ltdiv1 syl112anc tanord addid2d
    peano2re ltadd1dd addid2i syl6breq elioo2 syl3anbrc eqeltrd ) AUAUBBZCADEZF
    GZUCZHIAUDJZKJZLEZHUVOMJZLEZMJNEZAIMJZLEZNEZAIKJZLEZNEZMJZOKJZOUEZOUFJZUVNU
    VTUVQNEZUVSNEZMJUWCOUGVRJZKJZUWFUWMUEZKJZMJZUWHUVNUVQUVSUVNUVPUVNHPBZUVOPBZ
    UVPPBUHUVNIPBZAPBZUWSSUVNUXAUVRCUIZUVPCUIZUVNUVKUXAUXBUXCUJUVKUVMUKAULUMZUN
    ZIAUOUPZHUVOUQUPUVNUXAUXBUXCUXDURUSUVNUVRUVNUWRUWSUVRPBUHUXFHUVOUTUPUVNUXAU
    XBUXCUXDVAUSVBUVNUWKUWNUWLUWPMUVNUWKUWBIUWMUDJZKJZNEZUWNUVNUVQUXHNUVNIUWAUD
    JZLEZUVQUXHUVNUXJUVPLUVNUXJUVOIIUDJZMJZUVOHKJZUVPUVNIAIUWTUVNSVCZUXEUXOVDUV
    NUXMUVOHUEZMJZUXNUXLUXPUVOMVEVFUVNUWSUWRUXQUXNQUXFUHUVOHVGRVHUVNUWSUWRUXNUV
    PQUXFUHUVOHVIRVJVKUVNUWAPBZUWACUIZCUWADEZVLGUXKUXHQUVNUXAUWTUXRUXESAIUTRZUV
    NUXTCUIZUXSUVNUXTUVLCUVNUXTUVLIDEZMJZUVLUVNUXAUWTUXTUYDQUXESAIVMRUVNUYDUVLC
    MJUVLUYCCUVLMVNVFUVNUVLUVNUVLUVNAUXEVOZVPZVQVHVSZUVKUVMUVLTBZUVLCUIUYEUVLVT
    WAZWBZUWACUXTCUWACQUXTCDEZCUWACDWCWDWEWFWGZUVNCUVLUXTVLUVNUVMCUVLVLGZUVKUVM
    WKZUVNCTBUYHUVMUYMWHWIUYECUVLWJUPWLZUYGWMUWAWNWOWPVKUVNUXIUWCUXGNEZKJZUWNUV
    NUWBPBUXGPBZUXIUYQQUVNUWAUYAUYLUSZIUWMSUWMWQWRZWSZUWBUXGWTRUYPUWMUWCKUWMDEZ
    UYPUWMUWMPBZVUBUYPQUYTUWMXBXAUWMTBVUBUWMQWQUWMXCXAXDZVFWEVSUVNUWLUWEUXGIOUD
    JZMJZKJZNEZUWPUVNUVSVUGNUVNIUWDUDJZUEZLEZVUILEZVUEMJZUVSVUGUVNVUIPBZCVUINEZ
    FGVUKVUMQUVNUWTUWDPBZVUNSUVNUXAUWTVUPUXESAIUQRZIUWDUOUPUVNCUVLVUOFUYNUVNUWD
    DEZVUOUVLUVNVUPVURVUOQVUQUWDXBWGUVNVURUVLUYCKJZUVLUVNUXAUWTVURVUSQUXESAIXER
    UVNVUSUVLCKJUVLUYCCUVLKVNVFUVNUVLUYFXFVHVSZWPWMVUIXGXHUVNVUJUVRLUVNVUJUVOHM
    JZUEZUVRUVNVUIVVAUVNVUIUVOUXLKJZVVAUVNIAIUXOUXEUXOXIUVNVVCUVOUXPKJZVVAUXLUX
    PUVOKVEVFUVNUWSUWRVVDVVAQUXFUHUVOHXJRVHVSXMUVNUWSUWRVVBUVRQUXFUHUVOHXKRVSVK
    UVNVUMUWEUXGKJZVUEMJVUGUVNVULVVEVUEMUVNVUPUWDCUIZCVURVLGVULVVEQVUQUVNVURCUI
    ZVVFUVNVURUVLCVUTUYIWBZUWDCVURCUWDCQVURUYKCUWDCDWCWDWEWFWGZUVNCUVLVURVLUYOV
    UTWMUWDWNWOXNUVNUWEUXGVUEUVNUWDVUQVVIUSZUYRUVNVUAVCVUEPBZUVNIOSXLWSZVCXOVSX
    PVKUVNVUHUWFVUFNEZKJZUWPUVNUWEPBVUFPBVUHVVNQVVJUXGVUEVUAVVLXQUWEVUFWTRVVMUW
    OUWFKVVMUYPVUENEZMJZUWMOMJUWOUYRVVKVVMVVPQVUAVVLUXGVUEYBYCUYPUWMVVOOMVUDODE
    ZVVOOOPBVVQVVOQXLOXBXAOTBZVVQOQYDOXCXAXDXRUWMOUWOUYTXLUWMUYTXSZOUWOKJOUWMMJ
    UWMOUWMXLUYTXTOUWMUWMXLUYTUYTYAYEYFYEUUDVFWEVSYGUVNUWQUWGUWMUWOMJZKJUWHUVNU
    WCUWMUWFUWOUVNUWCUVNUWBUYSYHZVPZVUCUVNUYTVCUVNUWFUVNUWEVVJYHZVPZUWOPBUVNVVS
    VCUUAVVTOUWGKVVTUWMUWMKJOUWMUWMUYTUYTUUEYAYFVFWEVJUVNUWHTBZUWIUWHFGZUWHOFGZ
    UWHUWJBZUVNUWGTBVVRVWEUVNUWCUWFVWAVWCUUBZYDUWGOUUFRUVNUWIOMJZUWGFGVWFUVNVWJ
    UWIUWIKJZUWGFUWIOUWIOYDUUCZWRXLXTUVNVWKUWCUWFUEZKJUWGFUVNUWIUWIUWCVWMUWITBU
    VNVWLVCZVWNVWAUVNUWFVWCUUGUVNUWIUWCFGUWCOVLGUVNUWAUYAUYLYIUUHUVNUWFOVLGZUWI
    VWMVLGZUVNUWIUWFFGVWOUVNUWDVUQVVIYIUUIUVNUWFTBVVRVWOVWPYMVWCYDUWFOUUNRYJUUJ
    UVNUWCUWFVWBVWDUUKUULUUOUVNUWIOUWGVWNVVRUVNYDVCZVWIYKYJUVNUWHCOKJOFUVNUWGCO
    VWIUVNUUMZVWQUVNUWGCFGUWCCUWFKJZFGUVNUWCUWFVWSFUVNUWCUWFFGZUWCYNEZUWFYNEZFG
    ZUVNUWANEZUXTVRJZUWDNEZVURVRJZVXAVXBFUVNANEZHMJZUVLVRJZVXHHKJZUVLVRJZVXEVXG
    FUVNVXIVXKFGZVXJVXLFGZUVNVXIVXHVXKUVNVXHTBZVXITBZUVNAUXEYHZVXHUUPWGZVXQUVNV
    XOVXKTBZVXQVXHUVDWGZUVNVXHVXQUUQUVNVXHVXQUURUUSUVNVXPVXSUYHUVMVXMVXNYMVXRVX
    TUYEUYNVXIVXKUVLUUTUVAYJUVNVXDVXIUXTUVLVRUVNVXDVXHINEZMJZVXIUVNUXAUWTVXDVYB
    QUXESAIYBRVYAHVXHMYLVFWEUYGYGUVNVXFVXKVURUVLVRUVNVXFVXHVYAKJZVXKUVNUXAUWTVX
    FVYCQUXESAIWTRVYAHVXHKYLVFWEVUTYGYOUVNUXRUYBVXAVXEQUYAUYJUWAYPXHUVNVUPVVGVX
    BVXGQVUQVVHUWDYPXHYOUVNUWCUWOUWMUFJZBZUWFVYDBZVWTVXCYMUVNUXRCUXTFGVYEUYAUVN
    CUVLUXTFUYNUYGWMUWAYQXHUVNVUPCVURFGVYFVUQUVNCUVLVURFUYNVUTWMUWDYQXHUWCUWFUV
    BXHYRUVNUWFVWDUVCWMUVNUWCUWFCVWAVWCVWRYKYRUVEOXLUVFUVGUWIYSBOYSBVWHVWEVWFVW
    GUJYMUWIVWLYTOYDYTUWIOUWHUVHYCUVIUVJ $.

  $( A variation on ~ atanlogadd , to show that
     ` sqrt ( 1 + _i z ) / sqrt ( 1 - _i z ) = `
     ` sqrt ( ( 1 + _i z ) / ( 1 - _i z ) ) ` under more limited conditions.
     (Contributed by Mario Carneiro, 4-Apr-2015.) $)
  atanlogsub $p |- ( ( A e. dom arctan /\ ( Re ` A ) =/= 0 ) ->
    ( ( log ` ( 1 + ( _i x. A ) ) ) -
      ( log ` ( 1 - ( _i x. A ) ) ) ) e. ran log ) $=
    ( wcel cfv cc0 c1 ci co caddc clog cmin cpi cneg cim clt wbr ax-1cn sylancr
    cc adantr cr catan cdm cre wne wa cmul cle crn ax-icn atandm2 simp1bi mulcl
    addcl simp3bi logcld subcl simp2bi subcld wo wb recld lttri2 sylancl biimpa
    cioo 0re wceq imnegd negsubdi2d mulneg2 oveq2d negsub fveq2d subneg oveq12d
    eqtr4d eqtr3d atandmneg lt0neg1d renegd breqtrrd atanlogsublem syl2anc picn
    eqtrd negnegi oveq2i syl6eleqr eqeltrd renegcli imcld iooneg syl3anc mpbird
    pire a1i jaodan syldan eliooord syl simpld simprd wi ltle ellogrn syl3anbrc
    mpd ) AUAUBZBZAUCCZDUDZUEZEFAUFGZHGZICZEXMJGZICZJGZRBZKLZXRMCZNOZYAKUGOZXRI
    UHBXIXSXKXIXOXQXIXNXIERBZXMRBZXNRBPXIFRBZARBZYEUIXIYGXPDUDZXNDUDZAUJZUKZFAU
    LQZEXMUMQXIYGYHYIYJUNUOZXIXPXIYDYEXPRBPYLEXMUPQXIYGYHYIYJUQUOZURZSZXLYBYAKN
    OZXLYAXTKVEGZBZYBYQUEXIXKXJDNOZDXJNOZUSZYSXIXKUUBXIXJTBDTBXKUUBUTXIAYKVAZVF
    XJDVBVCVDXIYTYSUUAXIYTUEZYSYALZXTXTLZVEGZBZUUDUUEEFALZUFGZHGZICZEUUJJGZICZJ
    GZMCZUUGXIUUEUUPVGYTXIXRLZMCUUEUUPXIXRYOVHXIUUQUUOMXIUUQXQXOJGUUOXIXOXQYMYN
    VIXIUULXQUUNXOJXIUUKXPIXIUUKEXMLZHGZXPXIUUJUUREHXIYFYGUUJUURVGUIYKFAVJQZVKX
    IYDYEUUSXPVGPYLEXMVLQWEVMXIUUMXNIXIUUMEUURJGZXNXIUUJUUREJUUTVKXIYDYEUVAXNVG
    PYLEXMVNQWEVMVOVPVMVQSUUDUUPYRUUGUUDUUIXHBZDUUIUCCZNOUUPYRBXIUVBYTAVRSUUDDX
    JLZUVCNXIYTDUVDNOXIXJUUCVSVDUUDAXIYGYTYKSVTWAUUIWBWCUUFKXTVEKWDWFWGWHWIUUDX
    TTBZKTBZYATBZYSUUHUTUVEUUDKWOWJWPUVFUUDWOWPUUDXRXIXSYTYOSWKXTKYAWLWMWNAWBWQ
    WRYAXTKWSWTZXAXLYQYCXLYBYQUVHXBXLUVGUVFYQYCXCXLXRYPWKWOYAKXDVCXGXRXEXF $.

  $( Value of the exponential of an artcangent.  (Contributed by Mario
     Carneiro, 3-Apr-2015.) $)
  efiatan2 $p |- ( A e. dom arctan ->
    ( exp ` ( _i x. ( arctan ` A ) ) ) =
    ( ( 1 + ( _i x. A ) ) / ( sqrt ` ( 1 + ( A ^ 2 ) ) ) ) ) $=
    ( wcel ci cfv cmul co ce c1 c2 caddc cdiv ax-icn sylancr cmin cc0 clog wceq
    cc wne a1i catan cdm cexp csqrt atancl mulcl efcl syl atandm2 simp1bi sqcld
    ax-1cn addcl sqrtcld sqsqrtd atandm4 simprbi wb sqne0 mpbid divcan4d halfcn
    eqnetrd logcld efadd syl2anc 2cn simp3bi subdid atanval oveq2d mulassd cneg
    halfcl ax-mp mulassi mul12i divcan2i oveq2i ixi eqtri 3eqtri oveq1i simp2bi
    2ne0 subcld mulm1d syl5eq 2mulicn negsubdi2d 3eqtr3d subsubd 2timesd oveq1d
    subcl pncand eqtrd crn atanlogadd logef eflog oveq12d sqmul i2 subsq subneg
    sq1 3eqtrd fveq2d eqtr3d divcan3d divrec2d subaddd ccxp cxpefd cxpsqrt ) AU
    AUBBZCAUADZEFZGDZHAIUCFZJFZUDDZEFZYCKFXTHCAEFZJFZYCKFXQXTYCXQXSRBZXTRBXQCRB
    ZXRRBYGLAUEZCXRUFMZXSUGUHXQYBXQHRBZYARBZYBRBZULXQAXQARBZHYENFZOSZYFOSZAUIZU
    JZUKZHYAUMMZUNZXQYCIUCFZOSZYCOSZXQUUCYBOXQYBUUAUOXQYNYBOSAUPUQZVCXQYCRBUUDU
    UEURUUBYCUSUHUTVAXQYDYFYCKXQXTHIKFZYBPDZEFZGDZEFZYFPDZGDZYDYFXQXSUUIJFZGDZU
    UKUUMXQYGUUIRBZUUOUUKQYJXQUUGRBZUUHRBUUPVBXQYBUUAUUFVDZUUGUUHUFMZXSUUIVEVFX
    QUUNUULGXQUULXSNFZUUIQUUNUULQXQIUUTEFZIKFUUHIKFUUTUUIXQUVAUUHIKXQUVAIUULEFZ
    IXSEFZNFUVBUULYOPDZNFZNFZUUHXQIUULXSIRBZXQVGTZXQYFXQYKYERBZYFRBZULXQYHYNUVI
    LYSCAUFMZHYEUMMZXQYNYPYQYRVHZVDZYJVIXQUVCUVEUVBNXQICEFZXREFUVOCIKFZUVDUULNF
    ZEFZEFZUVCUVEXQXRUVRUVOEAVJVKXQICXRUVHYHXQLTYIVLXQUVOUVPEFZUVQEFZUVQVMZUVSU
    VEXQUWAHVMZUVQEFUWBUVTUWCUVQEUVTICUVPEFEFCIUVPEFZEFZUWCICUVPVGLYHUVPRBZLCVN
    VOZVPICUVPVGLUWGVQUWECCEFUWCUWDCCECILVGWEVRVSVTWAWBWCXQUVQXQUVDUULXQYOXQYKU
    VIYORBZULUVKHYEWOMZXQYNYPYQYRWDZVDZUVNWFZWGWHXQUVOUVPUVQUVORBXQWITUWFXQUWGT
    UWLVLXQUVDUULUWKUVNWJWKWKVKXQUVFUVBUULNFZUVDJFUULUVDJFZUUHXQUVBUULUVDXQUVGU
    ULRBZUVBRBVGUVNIUULUFMUVNUWKWLXQUWMUULUVDJXQUWMUULUULJFZUULNFUULXQUVBUWPUUL
    NXQUULUVNWMWNXQUULUULUVNUVNWPWQWNXQUWNGDZPDZUWNUUHXQUWNPWRBUWRUWNQAWSUWNWTU
    HXQUWQYBPXQUWQUUMUVDGDZEFZYFYOEFZYBXQUWOUVDRBUWQUWTQUVNUWKUULUVDVEVFXQUUMYF
    UWSYOEXQUVJYQUUMYFQUVLUVMYFXAVFZXQUWHYPUWSYOQUWIUWJYOXAVFXBXQHIUCFZYEIUCFZN
    FZHYAVMZNFZUXAYBXQUXCHUXDUXFNUXCHQXQXGTXQUXDCIUCFZYAEFZUXFXQYHYNUXDUXIQLYSC
    AXCMXQUXIUWCYAEFUXFUXHUWCYAEXDWCXQYAYTWGWHWQXBXQYKUVIUXEUXAQULUVKHYEXEMXQYK
    YLUXGYBQULYTHYAXFMWKXHXIXJXHXHWNXQUUTIXQUULXSUVNYJWFUVHIOSXQWETZXKXQUUHIUUR
    UVHUXJXLWKXQUULXSUUIUVNYJUUSXMUTXIXJXQUUJYCXTEXQYBUUGXNFZUUJYCXQYBUUGUUAUUF
    UUQXQVBTXOXQYMUXKYCQUUAYBXPUHXJVKUXBWKWNXJ $.

  $( Value of the exponential of an artcangent.  (Contributed by Mario
     Carneiro, 2-Apr-2015.) $)
  2efiatan $p |- ( A e. dom arctan ->
    ( exp ` ( 2 x. ( _i x. ( arctan ` A ) ) ) ) =
    ( ( ( 2 x. _i ) / ( A + _i ) ) - 1 ) ) $=
    ( wcel c2 ci cfv cmul co ce c1 caddc cmin cc 2cn a1i ax-icn cc0 wne sylancr
    cdiv wceq catan cdm clog atanval oveq2d atancl mulassd halfcl ax-mp mulassi
    cneg mul12i 2ne0 divcan2i oveq2i eqtri 3eqtri oveq1i ax-1cn atandm2 simp1bi
    ixi mulcl subcl simp2bi logcld simp3bi subcld mulm1d syl5eq 2mulicn 3eqtr3d
    addcl negsubdi2d fveq2d efsub syl2anc eflog oveq12d negsub mulid1d pnpcan2d
    3eqtr3a 3eqtr4d adddid 2timesd oveq1d subdid subneg addcom divcan5d sylancl
    eqtrd 3eqtrd ine0 atandm negicn subeq0 necon3bid mpbird eqnetrrd divsubdird
    wb wa dividd ) AUAUBBZCDAUAEZFGFGZHEIDAFGZJGZUCEZIXIKGZUCEZKGZHEZXKHEZXMHEZ
    SGZCDFGZADJGZSGZIKGZXFXHXNHXFXSXGFGXSDCSGZXMXKKGZFGZFGZXHXNXFXGYEXSFAUDUEXF
    CDXGCLBXFMNDLBZXFONZAUFUGXFXSYCFGZYDFGZYDUKZYFXNXFYJIUKZYDFGYKYIYLYDFYICDYC
    FGFGDCYCFGZFGZYLCDYCMOYGYCLBZODUHUIZUJCDYCMOYPULYNDDFGZYLYMDDFDCOMUMUNUOVBU
    PUQURXFYDXFXMXKXFXLXFILBZXILBZXLLBZUSXFYGALBZYSOXFUUAXLPQZXJPQZAUTZVAZDAVCR
    ZIXIVDRZXFUUAUUBUUCUUDVEZVFZXFXJXFYRYSXJLBZUSUUFIXIVMRZXFUUAUUBUUCUUDVGZVFZ
    VHZVIVJXFXSYCYDXSLBXFVKNZYOXFYPNUUNUGXFXMXKUUIUUMVNVLVLVOXFXKLBXMLBXOXRTUUM
    UUIXKXMVPVQXFXRXJXLSGZYAXTXTSGZKGZYBXFXPXJXQXLSXFUUJUUCXPXJTUUKUULXJVRVQXFY
    TUUBXQXLTUUGUUHXLVRVQVSXFDXJFGZDXLFGZSGXSXTKGZXTSGUUPUURXFUUSUVAUUTXTSXFDIF
    GZDXIFGZJGZDDJGZXTKGZUUSUVAXFDAUKZJGZDAKGZUVDUVFXFYGUUAUVHUVITOUUEDAVTRXFUV
    BDUVCUVGJXFDYHWAZXFYQAFGYLAFGUVCUVGYQYLAFVBURXFDDAYHYHUUEUGXFAUUEVIWCZVSXFD
    ADYHUUEYHWBWDXFDIXIYHYRXFUSNZUUFWEXFXSUVEXTKXFDYHWFWGWDXFUUTUVBUVCKGZDAJGZX
    TXFDIXIYHUVLUUFWHXFUVMDUVGKGZUVNXFUVBDUVCUVGKUVJUVKVSXFYGUUAUVOUVNTOUUEDAWI
    RWMXFYGUUAUVNXTTOUUEDAWJRWNVSXFXJXLDUUKUUGYHUUHDPQXFWONWKXFXSXTXTUUOXFUUAYG
    XTLBUUEOADVMWLZUVPXFADUKZKGZXTPXFUUAYGUVRXTTUUEOADWIWLXFUVRPQZAUVQQZXFUUAUV
    TADQAWPVEXFUUAUVQLBZUVSUVTXCUUEWQUUAUWAXDUVRPAUVQAUVQWRWSWLWTXAZXBVLXFUUQIY
    AKXFXTUVPUWBXEUEWNWN $.

  $( The arctangent function is an inverse to ` tan ` .  (Contributed by Mario
     Carneiro, 2-Apr-2015.) $)
  tanatan $p |- ( A e. dom arctan -> ( tan ` ( arctan ` A ) ) = A ) $=
    ( wcel c2 ci cmul co c1 cmin caddc cdiv cc cc0 wne wceq oveq1d ax-icn eqtrd
    a1i 2cn sylancr cdm cfv ctan ce atancl 2efiatan 2mulicn cneg atandm simp1bi
    catan addcl sylancl subneg simp2bi wb negcli subeq0 necon3bid mpbird divcld
    wa eqnetrrd ax-1cn 2muline0 divne0d eqnetrd tanval3 syl2anc subsub4d oveq2i
    npcan df-2 syl6eqr divsubdird mulneg12 negsub negcld pncan2 3eqtr3rd oveq2d
    mulcl subdid 3eqtr2rd divcan4d 3eqtr3d eqtr4d mul12i mulm1i mulcomli 3eqtri
    ixi oveq1i divassd syl5eqr oveq12d 2ne0 negne0i divcan7d divcan3d ) AUKUABZ
    AUKUBZUCUBZCDXBEFEFUDUBZGHFZDXDGIFZEFZJFZAXAXBKBXFLMXCXHNAUEXAXFCDEFZADIFZJ
    FZLXAXFXKGHFZGIFZXKXAXDXLGIAUFZOXAXKKBGKBZXMXKNXAXIXJXIKBXAUGRZXAAKBZDKBZXJ
    KBZXAXQADUHZMZADMZAUIZUJZPADULUMZXAAXTHFZXJLXAXQXRYFXJNYDPADUNUMXAYFLMZYAXA
    XQYAYBYCUOXAXQXTKBZYGYAUPYDDPUQXQYHVBYFLAXTAXTURUSUMUTVCZVAZVDXKGVLUMQZXAXI
    XJXPYEXILMXAVERYIVFVGXBVHVIXAXHCUHZAEFZXJJFZYLXJJFZJFZAXAXEYNXGYOJXAXEXKCHF
    ZYNXAXEXLGHFZYQXAXDXLGHXNOXAYRXKGGIFZHFYQXAXKGGYJXOXAVDRZYTVJCYSXKHVMVKVNQX
    AXICXJEFZHFZXJJFXKUUAXJJFZHFYNYQXAXIUUAXJXPXACKBZXSUUAKBSYECXJWBTYEYIVOXAUU
    BYMXJJXAYMCAUHZEFZCDXJHFZEFUUBXAUUDXQYMUUFNSYDCAVPTXAUUGUUECEXADUUEIFZDHFZD
    AHFZDHFUUEUUGXAUUHUUJDHXAXRXQUUHUUJNPYDDAVQTOXAXRUUEKBUUIUUENPXAAYDVRDUUEVS
    TXADADXRXAPRZYDUUKVJVTWAXACDXJUUDXASRZUUKYEWCWDOXAUUCCXKHXACXJUULYEYIWEWAWF
    WGXAXGDXKEFZYOXAXFXKDEYKWAXAYODXIEFZXJJFUUMUUNYLXJJUUNCDDEFZEFCGUHZEFYLDCDP
    SPWHUUOUUPCEWLVKUUPCYLGVDUQSCSWIWJWKWMXADXIXJUUKXPYEYIWNWOWGWPXAYPYMYLJFAXA
    YMYLXJXAYLKBZXQYMKBCSUQZYDYLAWBTUUQXAUURRZYEYLLMXACSWQWRRZYIWSXAAYLYDUUSUUT
    WTQQQ $.

  $( The tangent function has range contained in the domain of the arctangent.
     (Contributed by Mario Carneiro, 31-Mar-2015.) $)
  atandmtan $p |- ( ( A e. CC /\ ( cos ` A ) =/= 0 ) ->
    ( tan ` A ) e. dom arctan ) $=
    ( cc wcel ccos cfv cc0 wne wa ctan c2 cexp co c1 cneg cdiv adantr eqtrd a1i
    sqcld eqnetrd catan cdm tancl tanval oveq1d sincl coscl simpr sqdivd negcld
    csin cmul cmin caddc subnegd wceq sincossq ax-1ne0 subne0ad mulm1d neeqtrrd
    neg1cn wb sqne0 syl biimpar divmul3d necon3bid mpbird atandm3 sylanbrc ) AB
    CZADEZFGZHZAIEZBCVPJKLZMNZGVPUAUBCAUCVOVQAUKEZJKLZVMJKLZOLZVRVOVQVSVMOLZJKL
    WBVOVPWCJKAUDUEVOVSVMVLVSBCVNAUFPZVLVMBCZVNAUGZPZVLVNUHUIQVOWBVRGVTVRWAULLZ
    GVOVTWANZWHVOVTWIVOVSWDSZVOWAVOVMWGSZUJVOVTWIUMLZMFVOWLVTWAUNLZMVOVTWAWJWKU
    OVLWMMUPVNAUQPQMFGVOURRTUSVOWAWKUTVAVOWBVRVTWHVOVTVRWAWJVRBCVOVBRWKVLWAFGZV
    NVLWEWNVNVCWFVMVDVEVFVGVHVITVPVJVK $.

  $( The cosine of an arctangent.  (Contributed by Mario Carneiro,
     3-Apr-2015.) $)
  cosatan $p |- ( A e. dom arctan ->
    ( cos ` ( arctan ` A ) ) = ( 1 / ( sqrt ` ( 1 + ( A ^ 2 ) ) ) ) ) $=
    ( catan wcel cfv ci cmul co ce cneg caddc c2 cdiv c1 cc syl sylancr cc0 wne
    wceq ax-1cn cdm ccos cexp csqrt atancl cosval cmin efiatan2 ax-icn mulneg12
    atanneg oveq2d eqtr4d fveq2d atandmneg atandm4 simplbi mulneg2 mulcl negsub
    eqtrd sqneg oveq12d addcl subcl sqcld sqrtcld sqsqrtd simprbi eqnetrd sqne0
    3eqtrd mpbid divdird a1i ppncand df-2 syl6eqr oveq1d 3eqtr2d 2cnd divdiv32d
    wb 2ne0 2div2e1 oveq1i syl6eq ) ABUAZCZABDZUBDZEWJFGHDZEIWJFGZHDZJGZKLGZKMA
    KUCGZJGZUDDZLGZKLGZMWSLGZWIWJNCZWKWPSAUEZWJUFOWIWOWTKLWIWOMEAFGZJGZWSLGZMXE
    UGGZWSLGZJGXFXHJGZWSLGWTWIWLXGWNXIJAUHWIWNEAIZBDZFGZHDZMEXKFGZJGZMXKKUCGZJG
    ZUDDZLGZXIWIWMXMHWIWMEWJIZFGZXMWIENCZXCWMYBSUIXDEWJUJPWIXLYAEFAUKULUMUNWIXK
    WHCXNXTSAUOXKUHOWIXPXHXSWSLWIXPMXEIZJGZXHWIXOYDMJWIYCANCZXOYDSUIWIYFWRQRZAU
    PZUQZEAURPULWIMNCZXENCZYEXHSTWIYCYFYKUIYIEAUSPZMXEUTPVAWIXRWRUDWIXQWQMJWIYF
    XQWQSYIAVBOULUNVCVLVCWIXFXHWSWIYJYKXFNCTYLMXEVDPWIYJYKXHNCTYLMXEVEPWIWRWIYJ
    WQNCWRNCTWIAYIVFMWQVDPZVGZWIWSKUCGZQRZWSQRZWIYOWRQWIWRYMVHWIYFYGYHVIVJWIWSN
    CYPYQWCYNWSVKOVMZVNWIXJKWSLWIXJMMJGKWIMXEMYJWITVOZYLYSVPVQVRVSVTVSWIXAKKLGZ
    WSLGXBWIKWSKWIWAZYNUUAYRKQRWIWDVOWBYTMWSLWEWFWGVL $.

  $( The arctangent function has range contained in the domain of the tangent.
     (Contributed by Mario Carneiro, 3-Apr-2015.) $)
  cosatanne0 $p |- ( A e. dom arctan -> ( cos ` ( arctan ` A ) ) =/= 0 ) $=
    ( catan cdm wcel cfv ccos c1 c2 cexp co caddc csqrt cdiv cc0 cosatan ax-1cn
    cc wne atandm4 eqnetrd simplbi sqcld addcl sylancr sqrtcld sqsqrtd wb sqne0
    simprbi syl mpbid recne0d ) ABCDZABEFEGGAHIJZKJZLEZMJNAOUMUPUMUOUMGQDUNQDUO
    QDPUMAUMAQDZUONRZASZUAUBGUNUCUDZUEZUMUPHIJZNRZUPNRZUMVBUONUMUOUTUFUMUQURUSU
    ITUMUPQDVCVDUGVAUPUHUJUKULT $.

  $( The arctangent function is an inverse to ` tan ` .  (Contributed by Mario
     Carneiro, 5-Apr-2015.) $)
  atantan $p |- ( ( A e. CC /\ ( Re ` A ) e.
    ( -u ( _pi / 2 ) (,) ( _pi / 2 ) ) ) -> ( arctan ` ( tan ` A ) ) = A ) $=
    ( cc wcel cfv cpi c2 cdiv co cneg ci c1 cmul cc0 syl sylancr adantr clt wbr
    wceq cr cre cioo wa ctan catan cmin clog caddc ccos cosne0 atandmtan syldan
    cdm wne atanval ax-1cn ax-icn tancl mulcl addcl atandm2 sylib simp3d logcld
    w3a subcl simp2d negsubdi2d ce efsub syl2anc coscl sincl divdird dividd a1i
    csin divassd tanval oveq2d eqtr4d oveq12d eqtrd efival oveq1d eflog 3eqtr4d
    divsubdird negcl cosneg sinneg mulneg2 fveq2d negsubd 3eqtr3d efcl divcan7d
    simpl negcld efne0 subnegd 2timesd renegd recld simpr lt0neg1d mpbid simpld
    3eqtr2d eliooord wb halfpire cxr 0xr elioo2 mp2an syl3anbrc tanregt0 mpbird
    eqeltrd 1re ixi oveq1i mulm1d syl5eq mulassd cim syl5eqbrr relogcld sylancl
    eqtr3d simprd logef cle 2cn 2ne0 pire 2re syl112anc 3eqtr3rd renegcld rexri
    crn adantl ltnegcon1 tanneg breqtrd lt0ne0d atanlogsub ine0 mvllmuld eqeq1d
    ioossre reim biimpa reim0bd tanhbnd sseldi df-neg 0red ltsubadd2d elrpd crp
    readdcl difrp resubcld relogrn gt0ne0d w3o recl 0re lttri4 mpjao3dan divneg
    picn mp3an renegcli 2pos ltdivmul immul2 breqtrrd remulcl ltmuldiv2 eqbrtrd
    ltled ellogrn negeqd halfcl mp1i divcan1i mul2neg mulid2 3eqtrd ) ABCZAUADZ
    EFGHZIZUWPUBHCZUCZAUDDZUEDZJFGHZKJUWTLHZUFHZUGDZKUXCUHHZUGDZUFHZLHZUXBFJALH
    ZLHZIZLHZAUWSUWTUEUMCZUXAUXISUWNUWRAUIDZMUNZUXNAUJZAUKULZUWTUONUWSUXHUXLUXB
    LUWSUXGUXEUFHZIUXHUXLUWSUXGUXEUWSUXFUWSKBCZUXCBCZUXFBCZUPUWSJBCZUWTBCZUYAUQ
    UWNUWRUXPUYDUXQAURULZJUWTUSOZKUXCUTOZUWSUYDUXDMUNZUXFMUNZUWSUXNUYDUYHUYIVEU
    XRUWTVAVBZVCZVDZUWSUXDUWSUXTUYAUXDBCZUPUYFKUXCVFOZUWSUYDUYHUYIUYJVGZVDZVHUW
    SUXSUXKUWSUXSVIDZUGDZUXKVIDZUGDZUXSUXKUWSUYQUYSUGUWSUYQUXGVIDZUXEVIDZGHZUXJ
    VIDZUXOGHZUXJIZVIDZUXOGHZGHZUYSUWSUXGBCUXEBCUYQVUCSUYLUYPUXGUXEVJVKUWSVUEVU
    AVUHVUBGUWSUXOJAVQDZLHZUHHZUXOGHZUXFVUEVUAUWSVUMUXOUXOGHZVUKUXOGHZUHHUXFUWS
    UXOVUKUXOUWNUXOBCUWRAVLPZUWSUYCVUJBCZVUKBCUQUWNVUQUWRAVMPZJVUJUSOZVUPUXQVNU
    WSVUNKVUOUXCUHUWSUXOVUPUXQVOZUWSVUOJVUJUXOGHZLHUXCUWSJVUJUXOUYCUWSUQVPZVURV
    UPUXQVRUWSUWTVVAJLUWNUWRUXPUWTVVASUXQAVSULVTWAZWBWCUWSVUDVULUXOGUWNVUDVULSU
    WRAWDPWEUWSUYBUYIVUAUXFSUYGUYKUXFWFVKWGUWSUXOVUKUFHZUXOGHZUXDVUHVUBUWSVVEVU
    NVUOUFHUXDUWSUXOVUKUXOVUPVUSVUPUXQWHUWSVUNKVUOUXCUFVUTVVCWBWCUWSVUGVVDUXOGU
    WSJAIZLHZVIDZUXOVUKIZUHHZVUGVVDUWSVVHVVFUIDZJVVFVQDZLHZUHHZVVJUWSVVFBCZVVHV
    VNSUWNVVOUWRAWIPZVVFWDNUWSVVKUXOVVMVVIUHUWNVVKUXOSUWRAWJPUWSVVMJVUJIZLHZVVI
    UWSVVLVVQJLUWNVVLVVQSUWRAWKPVTUWSUYCVUQVVRVVISUQVURJVUJWLOWCWBWCUWSVVGVUFVI
    UWSUYCUWNVVGVUFSUQUWNUWRWRZJAWLOZWMUWSUXOVUKVUPVUSWNWOWEUWSUYMUYHVUBUXDSUYN
    UYOUXDWFVKWGWBUWSVUIVUDVUGGHZUXJVUFUFHZVIDZUYSUWSVUDVUGUXOUWSUXJBCZVUDBCUWS
    UYCUWNVWDUQVVSJAUSOZUXJWPNUWSVUFBCZVUGBCUWSUXJVWEWSZVUFWPNVUPUWSVWFVUGMUNVW
    GVUFWTNUXQWQUWSVWDVWFVWCVWASVWEVWGUXJVUFVJVKUWSVWBUXKVIUWSVWBUXJUXJUHHUXKUW
    SUXJUXJVWEVWEXAUWSUXJVWEXBWAWMXIXIWMUWSUXSUGUUCZCZUYRUXSSUWSUWOMQRZVWIUWOMS
    ZMUWOQRZUWSVWJUCZUXNUWTUADZMUNZVWIUWSUXNVWJUXRPVWMVWNVWMVWNMQRMVWNIZQRVWMMV
    VFUDDZUADZVWPQVWMVVOVVFUADZMUWPUBHZCMVWRQRUWSVVOVWJVVPPVWMVWSUWOIZVWTVWMAUW
    SUWNVWJVVSPZXCVWMVXATCZMVXAQRZVXAUWPQRZVXAVWTCZVWMUWOVWMAVXBXDZUUAVWMVWJVXD
    UWSVWJXEVWMUWOVXGXFXGVWMUWQUWOQRZVXEUWSVXHVWJUWSVXHUWOUWPQRZUWRVXHVXIUCUWNU
    WOUWQUWPXJUUDZXHZPVWMUWPTCUWOTCZVXHVXEXKXLVXGUWPUWOUUEOXGMXMCZUWPXMCZVXFVXC
    VXDVXEVEXKXNUWPXLUUBZMUWPVXAXOXPXQXTVVFXRVKVWMVWRUWTIZUADVWPVWMVWQVXPUAUWSV
    WQVXPSZVWJUWNUWRUXPVXQUXQAUUFULZPWMVWMUWTUWSUYDVWJUYEPXCWCUUGVWMVWNUWSVWNTC
    VWJUWSUWTUYEXDPXFXSUUHUWTUUIZVKUWSVWKUCZUXSTCVWIVXTUXGUXEVXTUXFVXTUXFVXTKTC
    ZUXCTCZUXFTCYAVXTKIZKUBHZTUXCVYCKUUMVXTUXCJUXJLHZUDDZJGHZVYDVXTJUXCVYFUYCVX
    TUQVPZUWSUYAVWKUYFPJMUNVXTUUJVPVXTJJLHZUWTLHZVWQJUXCLHVYFVXTVYJVYCUWTLHZVWQ
    VYIVYCUWTLYBYCVXTVYKVXPVWQVXTUWTUWSUYDVWKUYEPZYDUWSVXQVWKVXRPWAYEVXTJJUWTVY
    HVYHVYLYFVXTVVFVYEUDVXTVYIALHZVVFVYEVXTVYMVYCALHVVFVYIVYCALYBYCVXTAUWSUWNVW
    KVVSPZYDYEVXTJJAVYHVYHVYNYFYKWMWOUUKVXTUXJTCVYGVYDCVXTUXJUWSVWDVWKVWEPUWSVW
    KUXJYGDZMSUWSUWOVYOMUWNUWOVYOSUWRAUUNPZUULUUOUUPUXJUUQNXTZUURZKUXCUVDOVXTMK
    UFHZUXCQRMUXFQRVXTVYSVYCUXCQKUUSVXTVYCUXCQRZUXCKQRZVXTUXCVYDCVYTWUAUCVYQUXC
    VYCKXJNZXHYHVXTMKUXCVXTUUTVYAVXTYAVPVYRUVAXGUVBYIVXTUXDVXTWUAUXDUVCCZVXTVYT
    WUAWUBYLVXTVYBVYAWUAWUCXKVYRYAUXCKUVEYJXGYIUVFUXSUVGNUWSVWLUCZUXNVWOVWIUWSU
    XNVWLUXRPWUDVWNWUDUWNUWOVWTCZMVWNQRUWSUWNVWLVVSPZWUDVXLVWLVXIWUEWUDAWUFXDUW
    SVWLXEUWSVXIVWLUWSVXHVXIVXJYLZPVXMVXNWUEVXLVWLVXIVEXKXNVXOMUWPUWOXOXPXQAXRV
    KUVHVXSVKUWSVXLMTCVWJVWKVWLUVIUWNVXLUWRAUVJPZUVKUWOMUVLYJUVMUXSYMNUWSUXKVWH
    CZUYTUXKSUWSUXKBCZEIZUXKYGDZQRWULEYNRWUIUWSFBCZVWDWUJYOVWEFUXJUSOUWSWUKFUWO
    LHZWULQUWSWUKFGHZUWOQRZWUKWUNQRZUWSWUOUWQUWOQEBCWUMFMUNUWQWUOSUVOYOYPEFUVNU
    VPVXKYHUWSWUKTCZVXLFTCZMFQRZWUPWUQXKWURUWSEYQUVQVPWUHWUSUWSYRVPZWUTUWSUVRVP
    ZWUKUWOFUVSYSXGUWSWULFVYOLHZWUNUWSWUSVWDWULWVCSYRVWEFUXJUVTOUWSUWOVYOFLVYPV
    TWAZUWAUWSWULWUNEYNWVDUWSWUNEUWSWUSVXLWUNTCYRWUHFUWOUWBOETCZUWSYQVPZUWSWUNE
    QRZVXIWUGUWSVXLWVEWUSWUTWVGVXIXKWUHWVFWVAWVBUWOEFUWCYSXSUWEUWDUXKUWFXQUXKYM
    NWOUWGYKVTUWSUXBFLHZVUFLHZUXBFVUFLHZLHAUXMUWSUXBFVUFUYCUXBBCUWSUQJUWHUWIWUM
    UWSYOVPVWGYFUWSWVIJVUFLHZAWVHJVUFLJFUQYOYPUWJYCUWSVYIVVFLHZJVVGLHAWVKUWSJJV
    VFVVBVVBVVPYFUWSWVLVYCVVFLHZAVYIVYCVVFLYBYCUWSWVMKALHZAUWSUXTUWNWVMWVNSUPVV
    SKAUWKOUWNWVNASUWRAUWLPWCYEUWSVVGVUFJLVVTVTYTYEUWSWVJUXLUXBLUWSWUMVWDWVJUXL
    SYOVWEFUXJWLOVTYTUWM $.

  $( Relationship between tangent and arctangent.  (Contributed by Mario
     Carneiro, 5-Apr-2015.) $)
  atantanb $p |- ( ( A e. dom arctan /\ B e. CC /\
      ( Re ` B ) e. ( -u ( _pi / 2 ) (,) ( _pi / 2 ) ) ) ->
    ( ( arctan ` A ) = B <-> ( tan ` B ) = A ) ) $=
    ( catan cdm wcel cc cre cfv cpi c2 cdiv co cneg cioo wceq ctan fveq2 eqeq1d
    w3a syl5ibcom tanatan 3ad2ant1 atantan 3adant1 impbid ) ACDEZBFEZBGHIJKLZMU
    HNLEZSZACHZBOZBPHZAOZUJUKPHZAOZULUNUFUGUPUIAUAUBULUOUMAUKBPQRTUJUMCHZBOZUNU
    LUGUIURUFBUCUDUNUQUKBUMACQRTUE $.

  $( Lemma for ~ atanbnd .  (Contributed by Mario Carneiro, 5-Apr-2015.) $)
  atanbndlem $p |- ( A e. RR+ ->
    ( arctan ` A ) e. ( -u ( _pi / 2 ) (,) ( _pi / 2 ) ) ) $=
    ( wcel cfv cr cpi c2 co cneg clt wbr syl cc cc0 wceq cmul c1 ci cre sylancr
    ax-icn crp catan cdiv cioo rpre atanrecl wne picn 2cn divneg mp3an wa caddc
    2ne0 clog cmin cim ax-1cn recnd mulcl addcl cdm atanre atandm2 sylib simp3d
    w3a logcld simp2d subcld imre atanval oveq2d divcan2i oveq1i 2re a1i halfcl
    subcl mp1i mulassd syl5eqr eqtr4d negsubdi2d mulneg12 fveq2d rered 3eqtr2rd
    remulcl rpgt0 breqtrrd atanlogsublem syl2anc eqeltrd eliooord pire renegcli
    simpld wb 2pos ltdivmul syl112anc mpbird syl5eqbr simprd ltmuldiv2 halfpire
    mpbid cxr rexri elioo2 mp2an syl3anbrc ) AUABZAUBCZDBZEFUCGZHZXOIJZXOXQIJZX
    OXRXQUDGBZXNADBZXPAUEZAUFKZXNXREHZFUCGZXOIELBFLBFMUGXRYFNUHUIUNEFUJUKXNYFXO
    IJZYEFXOOGZIJZXNYIYHEIJZXNYHYEEUDGZBYIYJULXNYHPQAOGZUMGZUOCZPYLUPGZUOCZUPGZ
    UQCZYKXNYRQHYQOGZRCZYHRCYHXNYQLBZYRYTNXNYNYPXNYMXNPLBZYLLBZYMLBURXNQLBZALBZ
    UUCTXNAYCUSQAUTSZPYLVASXNUUEYOMUGZYMMUGZXNAUBVBBZUUEUUGUUHVGXNYBUUIYCAVCKZA
    VDVEZVFVHZXNYOXNUUBUUCYOLBURUUFPYLVSSXNUUEUUGUUHUUKVIVHZVJZYQVKKXNYHYSRXNYH
    QYQHZOGZYSXNYHQYPYNUPGZOGZUUPXNYHFQFUCGZUUQOGZOGZUURXNXOUUTFOXNUUIXOUUTNUUJ
    AVLKVMXNUURFUUSOGZUUQOGUVAUVBQUUQOQFTUIUNVNVOXNFUUSUUQXNFFDBZXNVPVQZUSUUDUU
    SLBXNTQVRVTXNYPYNUUMUULVJWAWBWCXNUUOUUQQOXNYNYPUULUUMWDVMWCXNUUDUUAYSUUPNTU
    UNQYQWESWCWFXNYHXNUVCXPYHDBVPYDFXOWISWGWHXNUUIMARCZIJYRYKBUUJXNMAUVEIAWJXNA
    YCWGWKAWLWMWNYHYEEWOKZWRXNYEDBZXPUVCMFIJZYGYIWSUVGXNEWPWQVQYDUVDUVHXNWTVQZY
    EXOFXAXBXCXDXNYJXTXNYIYJUVFXEXNXPEDBZUVCUVHYJXTWSYDUVJXNWPVQUVDUVIXOEFXFXBX
    HXRXIBXQXIBYAXPXSXTVGWSXRXQXGWQXJXQXGXJXRXQXOXKXLXM $.

  $( The arctangent function is bounded by ` _pi / 2 ` on the reals.
     (Contributed by Mario Carneiro, 5-Apr-2015.) $)
  atanbnd $p |- ( A e. RR ->
    ( arctan ` A ) e. ( -u ( _pi / 2 ) (,) ( _pi / 2 ) ) ) $=
    ( cr wcel cc0 clt wbr catan cfv cpi co cneg cioo wceq adantr syl atanbndlem
    wa crp halfpire wb c2 cdiv cdm atanre atanneg renegcl biimpa elrpd eqeltrrd
    lt0neg1 negnegi oveq2i syl6eleqr neghalfpire atanrecl iooneg syl3anc mpbird
    recni a1i simpr fveq2d atan0 syl6eq 0re pirp rphalfcl rpgt0 mp2b ax-mp mpbi
    lt0neg2 cxr w3a rexri elioo2 mp2an mpbir3an syl6eqel elrp sylbir w3o lttri4
    mpan2 mpjao3dan ) ABCZADEFZAGHZIUAUBJZKZWILJZCZADMZDAEFZWFWGQZWLWHKZWJWJKZL
    JZCZWOWPWKWRWOAKZGHZWPWKWOAGUCCZXAWPMWFXBWGAUDNAUEOWOWTRCXAWKCWOWTWFWTBCWGA
    UFNWFWGDWTEFAUJUGUHWTPOUIWQWIWJLWIWISUSUKULUMWOWJBCZWIBCZWHBCZWLWSTXCWOUNUT
    XDWOSUTWFXEWGAUONWJWIWHUPUQURWFWMQZWHDWKXFWHDGHDXFADGWFWMVAVBVCVDDWKCZDBCZW
    JDEFZDWIEFZVEXJXIIRCWIRCXJVFIVGWIVHVIZXDXJXITSWIVLVJVKXKWJVMCWIVMCXGXHXIXJV
    NTWJUNVOWISVOWJWIDVPVQVRVSWFWNQARCWLAVTAPWAWFXHWGWMWNWBVEADWCWDWE $.

  $( The arctangent function is strictly increasing.  (Contributed by Mario
     Carneiro, 5-Apr-2015.) $)
  atanord $p |- ( ( A e. RR /\ B e. RR ) ->
    ( A < B <-> ( arctan ` A ) < ( arctan ` B ) ) ) $=
    ( cr wcel wa catan cfv clt wbr ctan cpi c2 cdiv co cneg atanbnd wceq atanre
    tanatan syl cioo wb tanord syl2an cdm breqan12d bitr2d ) ACDZBCDZEAFGZBFGZH
    IZUJJGZUKJGZHIZABHIUHUJKLMNZOUPUANZDUKUQDULUOUBUIAPBPUJUKUCUDUHUIUMAUNBHUHA
    FUEZDUMAQARASTUIBURDUNBQBRBSTUFUG $.

  $( The arctangent of ` 1 ` is ` _pi / 4 ` .  (Contributed by Mario Carneiro,
     2-Apr-2015.) $)
  atan1 $p |- ( arctan ` 1 ) = ( _pi / 4 ) $=
    ( cpi c4 cdiv co cfv catan c1 cc wcel c2 wceq cr pire 4nn mp2an clt wbr cc0
    ax-mp crp ctan tan4thpi fveq2i cre cneg cioo cn nndivre recni rere rphalfcl
    pirp rpgt0 wb halfpire lt0neg2 mpbi nnrp rpdivcl neghalfpire 0re lttri cmul
    wne 2cnne0 divdiv1 mp3an 2t2e4 oveq2i eqtri rphalflt eqbrtrri cxr w3a rexri
    wa elioo2 mpbir3an eqeltri atantan eqtr3i ) ABCDZUAEZFEZGFEWBWCGFUBUCWBHIWB
    UDEZAJCDZUEZWFUFDZIWDWBKWBALIBUGIZWBLIZMNABUHOZUIWEWBWHWJWEWBKWKWBUJSWBWHIZ
    WJWGWBPQZWBWFPQZWKWGRPQZRWBPQZWMRWFPQZWOWFTIZWQATIZWRULAUKSZWFUMSWFLIWQWOUN
    UOWFUPSUQWBTIZWPWSBTIZXAULWIXBNBURSABUSOWBUMSWGRWBUTVAWKVBOWFJCDZWBWFPXCAJJ
    VCDZCDZWBAHIJHIJRVDVPZXFXCXEKAMUIVEVEAJJVFVGXDBACVHVIVJWRXCWFPQWTWFVKSVLWGV
    MIWFVMIWLWJWMWNVNUNWGUTVOWFUOVOWGWFWBVQOVRVSWBVTOWA $.

  $( A point in the open unit disk is in the domain of the arctangent.
     (Contributed by Mario Carneiro, 5-Apr-2015.) $)
  bndatandm $p |- ( ( A e. CC /\ ( abs ` A ) < 1 ) -> A e. dom arctan ) $=
    ( cc wcel cabs cfv c1 clt wbr wa c2 cexp cneg wne catan cdm adantr wceq cc0
    co cle simpl sqcl abscld cn0 2nn0 absexp sylancl simpr cr abscl 1red absge0
    0le1 a1i lt2sqd mpbid sq1 syl6breq eqbrtrd ltned fveq2 ax-1cn absnegi eqtri
    abs1 syl6eq necon3i syl atandm3 sylanbrc ) ABCZADEZFGHZIZVKAJKSZFLZMZANOCVK
    VMUAZVNVODEZFMVQVNVSFVNVOVKVOBCVMAUBPUCVNVSVLJKSZFGVNVKJUDCVSVTQVRUEAJUFUGV
    NVTFJKSZFGVNVMVTWAGHVKVMUHVNVLFVKVLUICVMAUJPVNUKVKRVLTHVMAULPRFTHVNUMUNUOUP
    UQURUSUTVOVPVSFVOVPQVSVPDEZFVOVPDVAWBFDEFFVBVCVEVDVFVGVHAVIVJ $.

  ${
    $d y A $.  $d x y D $.  $d x S $.
    atansopn.d $e |- D = ( CC \ ( -oo (,] 0 ) ) $.
    atansopn.s $e |- S = { y e. CC | ( 1 + ( y ^ 2 ) ) e. D } $.
    $( The "domain of continuity" of the arctangent.  (Contributed by Mario
       Carneiro, 7-Apr-2015.) $)
    atans $p |- ( A e. S <-> ( A e. CC /\ ( 1 + ( A ^ 2 ) ) e. D ) ) $=
      ( c1 cv c2 cexp co caddc wcel cc wceq oveq1 oveq2d eleq1d elrab2 ) GAHZIJ
      KZLKZCMGBIJKZLKZCMABNDTBOZUBUDCUEUAUCGLTBIJPQRFS $.

    $( It suffices to show that ` 1 - _i A ` and ` 1 + _i A ` are in the
       continuity domain of ` log ` to show that ` A ` is in the continuity
       domain of arctangent.  (Contributed by Mario Carneiro, 7-Apr-2015.) $)
    atans2 $p |- ( A e. S <-> ( A e. CC /\ ( 1 - ( _i x. A ) ) e. D /\
      ( 1 + ( _i x. A ) ) e. D ) ) $=
      ( cc wcel c1 c2 co ci cmul cmin cc0 wceq cr wbr cle sylancr cexp caddc wa
      w3a cmnf cioc wn csqrt cfv cneg sqcl adantr sqsqrtd eqcomd sqrtcld sqeqor
      wo wb syldan mpbid clt 1re a1i negnegd fveq2d ax-1cn pncan2 simpr cxr 0re
      mnfxr elioc2 mp2an sylib simp1d resubcl sylancl eqeltrrd 0red 0le1 subneg
      renegcld simp3d eqbrtrd suble0 letrd eqtr3d oveq2d ax-icn resqrtcld recnd
      sqrtnegd mulassd ixi oveq1i mulm1d syl5eq 3eqtr2d eqeltrd readdcld negsub
      mnflt syl eqtrd sq1 3brtr4d sqrtge0d le2sqd mpbird syl3anbrc oveq2 eleq1d
      suble0d syl5ibrcom mulneg2 mulcl orim12d mpd orcomd sqmul mpan i2 oveq12d
      subsq 3eqtr3d 2cn 2m1e1 2re remulcld lesub2dd syl5eqbrr breqtrd syl112anc
      2pos ltletrd addcl eleq2i eldif bitri baib subsubd syl6eq lemul2 subsub4d
      subid1i mul01d syl5reqr lemul1 mul02d jaodan impbida notbid ioran anbi12d
      syl6bb cdif subcl 3bitr4d pm5.32i atans 3anass 3bitr4i ) BGHZIBJUAKZUBKZC
      HZUCUVCILBMKZNKZCHZIUVGUBKZCHZUCZUCBDHUVCUVIUVKUDUVCUVFUVLUVCUVEUEOUFKZHZ
      UGZUVHUVMHZUGZUVJUVMHZUGZUCZUVFUVLUVCUVOUVPUVRUQZUGUVTUVCUVNUWAUVCUVNUWAU
      VCUVNUCZUVRUVPUWBBUVDUHUIZPZBUWCUJZPZUQZUVRUVPUQUWBUVDUWCJUAKZPZUWGUWBUWH
      UVDUWBUVDUVCUVDGHZUVNBUKZULZUMUNUVCUVNUWCGHZUWIUWGURUWBUVDUWLUOZBUWCUPUSU
      TUWBUWDUVRUWFUVPUWBUVRUWDILUWCMKZUBKZUVMHZUWBUWPQHZUEUWPVARZUWPOSRZUWQUWB
      IUWOIQHZUWBVBVCZUWBUWOUVDUJZUHUIZUJZQUWBUWOLLUXDMKZMKLLMKZUXDMKZUXEUWBUWC
      UXFLMUWBUXCUJZUHUIUWCUXFUWBUXIUVDUHUWBUVDUWLVDVEUWBUXCUWBUVDUWBUVEINKZUVD
      QUWBIGHZUWJUXJUVDPVFUWLIUVDVGTUWBUVEQHZUXAUXJQHUWBUXLUEUVEVARZUVEOSRZUWBU
      VNUXLUXMUXNUDZUVCUVNVHUEVIHZOQHZUVNUXOURVKVJUEOUVEVLVMVNZVOVBUVEIVPVQVRWB
      ZUWBOIUXCUWBVSUXBUXSOISRUWBVTVCZUWBIUXCNKZOSRZIUXCSRZUWBUYAUVEOSUWBUXKUWJ
      UYAUVEPZVFUWLIUVDWAZTUWBUXLUXMUXNUXRWCWDUWBUXAUXCQHUYBUYCURVBUXSIUXCWETUT
      ZWFZWLWGWHUWBLLUXDLGHZUWBWIVCZUYIUWBUXDUWBUXCUXSUYGWJZWKZWMUWBUXHIUJZUXDM
      KUXEUXGUYLUXDMWNWOUWBUXDUYKWPWQWRZUWBUXDUYJWBWSWTZUWBUWRUWSUYNUWPXBXCUWBU
      WPIUXDNKZOSUWBUWPIUXEUBKZUYOUWBUWOUXEIUBUYMWHUWBUXKUXDGHUYPUYOPVFUYKIUXDX
      ATXDUWBUYOOSRIUXDSRZUWBUYQIJUAKZUXDJUAKZSRUWBIUXCUYRUYSSUYFUYRIPZUWBXEVCU
      WBUXCUWBUXCUXSWKUMXFUWBIUXDUXBUYJUXTUWBUXCUXSUYGXGXHXIUWBIUXDUXBUYJXMXIWD
      UXPUXQUWQUWRUWSUWTUDURVKVJUEOUWPVLVMXJZUWDUVJUWPUVMUWDUVGUWOIUBBUWCLMXKWH
      XLXNUWBUVPUWFILUWEMKZNKZUVMHUWBVUCUWPUVMUWBVUCIUWOUJZNKZUWPUWBVUBVUDINUWB
      UYHUWMVUBVUDPWIUWNLUWCXOTWHUWBUXKUWOGHZVUEUWPPVFUWBUYHUWMVUFWIUWNLUWCXPTI
      UWOWATXDVUAWSUWFUVHVUCUVMUWFUVGVUBINBUWELMXKWHXLXNXQXRXSUVCUWAUCUVJUVHMKZ
      UVEUVMUVCVUGUVEPUWAUVCUYRUVGJUAKZNKZUYAVUGUVEUVCUYRIVUHUXCNUYTUVCXEVCUVCV
      UHLJUAKZUVDMKZUXCUYHUVCVUHVUKPWILBXTYAUVCVUKUYLUVDMKUXCVUJUYLUVDMYBWOUVCU
      VDUWKWPWQXDYCUVCUXKUVGGHZVUIVUGPVFUYHUVCVULWILBXPYAZIUVGYDTUVCUXKUWJUYDVF
      UWKUYETYEULUVCUVPVUGUVMHZUVRUVCUVPUCZVUGQHZUEVUGVARZVUGOSRZVUNVUOUVJUVHVU
      OJUVHNKZUVJQUVCVUSUVJPUVPUVCVUSJINKZUVGUBKUVJUVCJIUVGJGHUVCYFVCZUXKUVCVFV
      CZVUMUUAVUTIUVGUBYGWOUUBULZVUOJQHZUVHQHZVUSQHYHVUOVVEUEUVHVARZUVHOSRZVUOU
      VPVVEVVFVVGUDZUVCUVPVHUXPUXQUVPVVHURVKVJUEOUVHVLVMVNZVOZJUVHVPTVRZVVJYIZV
      UOVUPVUQVVLVUGXBZXCVUOVUGUVJOMKZOSVUOVVGVUGVVNSRZVUOVVEVVFVVGVVIWCZVUOVVE
      UXQUVJQHZOUVJVARVVGVVOURVVJVUOVSZVVKVUOOJUVJVVRVVDVUOYHVCZVVKOJVARZVUOYNV
      CVUOJVUSUVJSVUOJJONKZVUSSJYFUUEZVUOUVHOJVVJVVRVVSVVPYJYKVVCYLYOUVHOUVJUUC
      YMUTVUOUVJUVCUVJGHZUVPUVCUXKVULVWCVFVUMIUVGYPTZULUUFYLUXPUXQVUNVUPVUQVURU
      DURVKVJUEOVUGVLVMZXJUVCUVRUCZVUPVUQVURVUNVWFUVJUVHVWFVVQUEUVJVARZUVJOSRZV
      WFUVRVVQVWGVWHUDZUVCUVRVHUXPUXQUVRVWIURVKVJUEOUVJVLVMVNZVOZVWFJUVJNKZUVHQ
      UVCVWLUVHPUVRUVCUVHVUTUVGNKVWLVUTIUVGNYGWOUVCJIUVGVVAVVBVUMUUDUUGULZVWFVV
      DVVQVWLQHYHVWKJUVJVPTVRZYIZVWFVUPVUQVWOVVMXCVWFVUGOUVHMKZOSVWFVWHVUGVWPSR
      ZVWFVVQVWGVWHVWJWCZVWFVVQUXQVVEOUVHVARVWHVWQURVWKVWFVSZVWNVWFOJUVHVWSVVDV
      WFYHVCZVWNVVTVWFYNVCVWFJVWLUVHSVWFJVWAVWLSVWBVWFUVJOJVWKVWSVWTVWRYJYKVWMY
      LYOUVJOUVHUUHYMUTVWFUVHVWFUVHVWNWKUUIYLVWEXJUUJVRUUKUULUVPUVRUUMUUOUVCUVE
      GHZUVFUVOURUVCUXKUWJVXAVFUWKIUVDYPTUVFVXAUVOUVFUVEGUVMUUPZHVXAUVOUCCVXBUV
      EEYQUVEGUVMYRYSYTXCUVCUVIUVQUVKUVSUVCUVHGHZUVIUVQURUVCUXKVULVXCVFVUMIUVGU
      UQTUVIVXCUVQUVIUVHVXBHVXCUVQUCCVXBUVHEYQUVHGUVMYRYSYTXCUVCVWCUVKUVSURVWDU
      VKVWCUVSUVKUVJVXBHVWCUVSUCCVXBUVJEYQUVJGUVMYRYSYTXCUUNUURUUSABCDEFUUTUVCU
      VIUVKUVAUVB $.

    $( The domain of continuity of the arctangent is an open set.  (Contributed
       by Mario Carneiro, 7-Apr-2015.) $)
    atansopn $p |- S e. ( TopOpen ` CCfld ) $=
      ( cc c1 cv c2 cexp co caddc cmpt ccnv cfv wcel eqid ccn wtru a1i cima cn0
      ccnfld ctopn crab mptpreima eqtr4i ctopon cnfldtopon 1cnd 2nn0 expcn mp1i
      cnmptc ctx addcn cnmpt12f trud logdmopn cnima mp2an eqeltri ) CAFGAHIJKZL
      KZMZNBUAZUCUDOZCVDBPAFUEVFEAFVDBVEVEQUFUGVEVGVGRKZPZBVGPVFVGPVISAGVCLVGVG
      VGVGFVGFUHOPSVGVGQZUITZSAGVGVGFFVKVKSUJUNIUBPAFVCMVHPSUKAVGIVJULUMLVGVGUO
      KVGRKPSVGVJUPTUQURBDUSBVEVGVGUTVAVB $.

    $( The domain of continuity of the arctangent is a subset of the actual
       domain of the arctangent.  (Contributed by Mario Carneiro,
       7-Apr-2015.) $)
    atansssdm $p |- S C_ dom arctan $=
      ( c1 cv c2 cexp co caddc wcel cc crab catan cdm wss wi rabss wa cc0 simpl
      wne logdmn0 adantl atandm4 sylanbrc ex mprgbir eqsstri ) CFAGZHIJKJZBLZAM
      NZOPZEUNUOQUMUKUOLZRAMUMAMUOSUKMLZUMUPUQUMTUQULUAUCZUPUQUMUBUMURUQULBDUDU
      EUKUFUGUHUIUJ $.

    $( The real number line is a subset of the domain of continuity of the
       arctangent.  (Contributed by Mario Carneiro, 7-Apr-2015.) $)
    ressatans $p |- RR C_ S $=
      ( cr c1 co wcel cc cmnf cc0 1re sylancr cle wbr clt 0re a1i wb cv c2 cexp
      caddc crab wss wral ax-resscn cioc cdif resqcl readdcl recnd 0lt1 addge01
      wn sqge0 mpbid ltletrd ltnle cxr w3a mnfxr elioc2 mp2an simp3bi syl6eleqr
      nsyl eldifd rgen ssrab mpbir2an sseqtr4i ) FGAUAZUBUCHZUDHZBIZAJUEZCFVRUF
      FJUFVQAFUGUHVQAFVNFIZVPJKLUIHZUJBVSVPJVTVSVPVSGFIZVOFIZVPFIZMVNUKZGVOULNZ
      UMVSVPLOPZVPVTIZVSLVPQPZWFUPZVSLGVPLFIZVSRSWAVSMSWELGQPVSUNSVSLVOOPZGVPOP
      ZVNUQVSWAWBWKWLTMWDGVOUONURUSVSWJWCWHWITRWELVPUTNURWGWCKVPQPZWFKVAIWJWGWC
      WMWFVBTVCRKLVPVDVEVFVHVIDVGVJVQAJFVKVLEVM $.

    $( The derivative of the arctangent.  (Contributed by Mario Carneiro,
       7-Apr-2015.) $)
    dvatan $p |- ( CC _D ( arctan |` S ) ) =
      ( x e. S |-> ( 1 / ( 1 + ( x ^ 2 ) ) ) ) $=
      ( cc co c1 cdiv cmpt wceq wtru ci cmul cmin wcel a1i ax-icn cc0 catan cdv
      cres cv c2 cexp caddc clog cfv cvv cr cpr cnelprrecn ax-1cn wne atansssdm
      wa cdm simpr sseldi atandm2 sylib simp1d mulcl sylancr subcl simp2d addcl
      w3a logcld simp3d subcld ovexd cneg atans2 simp2bi negex csn cdif logdmss
      adantl wf1o wf logf1o f1of ax-mp ffvelrni logrncn 3syl ccnfld ctopn sylan
      1cnd 0cnd dvmptc dvmptid dvmptcmul mulid1i mpteq2i syl6eq dvmptsub df-neg
      crn syl6eqr wss ctopon mp2an ctop dvmptres oveq2d fveq2 oveq2 irec oveq2i
      dvmptco ine0 oveq1i syl5eq oveq12d subneg 3eqtrd addcom 3eqtr3d mpteq2dva
      eqtrd syl5eqr negicn sylancl 3eqtr3rd oveq1d eqtr3d 2cn mulid1d wb subeq0
      eqtri necon3bid mpbird divcan5d mp1i cnfldtopon atansopn toponss cnfldtop
      crest toponunii restid eqcomi fssres feqmptd fvres mpteq2ia syl6req dvlog
      recdiv2d reccld divrecd subdird mulid2i mul32d ixi mulm1d simp3bi addid2i
      eqid dvmptadd divdiv2d divdird divcan3d negsub div23d atandm4 simprbi syl
      sqcld divsubdird pnpcand divreci 2timesi negsubi 3eqtri mulcomd i2 atandm
      subsq halfcl df-atan reseq1i atanf fdmi sseqtri resmpt 2ne0 divcan6 mp4an
      eqnetrrd divcli divassd 3eqtr4d trud ) GUADUCZUBHZADIIAUDZUEUFHZUGHZJHZKZ
      LMGADNUEJHZINUXCOHZPHZUHUIZIUXIUGHZUHUIZPHZOHZKZUBHADUXHUENJHZUXEJHZOHZKU
      XBUXGMAUXNUXRUXHGUJDGUKGULQMUMRZMUXCDQZUQZUXKUXMUYBUXJUYBIGQZUXIGQZUXJGQZ
      UNUYBNGQZUXCGQZUYDSUYBUYGUXJTUOZUXLTUOZUYBUXCUAURZQZUYGUYHUYIVIUYBDUYJUXC
      BCDEFUPZMUYAUSUTZUXCVAVBZVCZNUXCVDZVEZIUXIVFZVEZUYBUYGUYHUYIUYNVGZVJZUYBU
      XLUYBUYCUYDUXLGQZUNUYQIUXIVHZVEZUYBUYGUYHUYIUYNVKZVJZVLUYBUXQUXEJVMMGADUX
      NKUBHADIUXCNUGHZJHZIUXCNPHZJHZPHZKADUXRKMAUXKVUHUXMVUJGUJUJDUXTVUAUYBIVUG
      JVMMGADUXKKUBHADIUXJJHZNVNZOHZKADVUHKMABUXJVUMBUDZUHUIZIVUOJHZGGUXKVULUJU
      JDCUXTUXTUYAUXJCQZMUYAUYGVURUXLCQZBUXCCDEFVOZVPWAVUMUJQZUYBNVQZRMVUOCQZUQ
      ZVUOGTVRVSZQVUPUHXCZQVUPGQVVDCVVEVUOCEVTZMVVCUSUTVVEVVFVUOUHVVEVVFUHWBVVE
      VVFUHWCZWDVVEVVFUHWEWFZWGVUPWHWIZVVDIVUOJVMZMAUXJVUMGWJWKUIZVVLUJGDUXTMUY
      GUQZUYCUYDUYEUNMUYFUYGUYDUYFMSRZUYPWLZUYRVEVVAVVMVVBRMGAGUXJKUBHAGTNPHZKA
      GVUMKMAITUXINGGGGUXTVVMWMZVVMWNZMAIGUXTMWMWOZVVOUYFVVMSRZMGAGUXIKUBHAGNIO
      HZKAGNKZMAUXCINGGGUXTMUYGUSVVQMAGUXTWPVVNWQAGVWANNSWRWSWTZXAAGVUMVVPNXBWS
      XDDGXEZMVVLGXFUIQDVVLQZVWDVVLVVLUVEZUUAZBCDEFUUBZDVVLGUUCXGRZVVLGUUEHZVVL
      VVLXHQVWJVVLLVVLVWFUUDVVLXHGGVVLVWGUUFUUGWFUUHZVWFVWEMVWHRZXIMGBCVUPKZUBH
      GUHCUCZUBHBCVUQKMVWMVWNGUBMVWNBCVUOVWNUIZKVWMMBCVVFVWNCVVFVWNWCZMVVHCVVEX
      EVWPVVIVVGVVEVVFCUHUUIXGRUUJBCVWOVUPVUOCUHUUKUULUUMXJBCEUUNWTZVUOUXJUHXKV
      UOUXJIJXLXOMADVUNVUHUYBVUNVULINJHZOHZVUHVWRVUMVULOXMXNUYBVULNJHIUXJNOHZJH
      VWSVUHUYBUXJNUYSUYFUYBSRZUYTNTUOZUYBXPRZUUOUYBVULNUYBUXJUYSUYTUUPVXAVXCUU
      QUYBVWTVUGIJUYBVWTNUXCUGHZVUGUYBVWTINOHZUXINOHZPHNUXCVNZPHZVXDUYBIUXINUYB
      WMZUYQVXAUURUYBVXENVXFVXGPVXENLUYBNSUUSRUYBVXFNNOHZUXCOHZVXGUYBNUXCNVXAUY
      OVXAUUTUYBVXKIVNZUXCOHVXGVXJVXLUXCOUVAXQUYBUXCUYOUVBXRYEXSUYBUYFUYGVXHVXD
      LSUYONUXCXTVEYAUYBUYFUYGVXDVUGLSUYONUXCYBVEYEXJYCYFYDYEVUFUYBIVUIJVMMGADU
      XMKUBHADIUXLJHZNOHZKADVUJKMABUXLNVUPVUQGGUXMVXMGUJDCUXTUXTUYAVUSMUYAUYGVU
      RVUSVUTUVCWAVXAVVJVVKMAUXLNGVVLVVLGGDUXTVVMUYCUYDVUBUNVVOVUCVEVVTMGAGUXLK
      UBHAGTNUGHZKVWBMAITUXINGGGGUXTVVQVVRVVSVVOVVTVWCUVFAGVXONNSUVDWSWTVWIVWKV
      WFVWLXIVWQVUOUXLUHXKVUOUXLIJXLXOMADVXNVUJUYBIUXLNJHZJHVXEUXLJHVUJVXNUYBIU
      XLNVXIVUDVXAVUEVXCUVGUYBVXPVUIIJUYBVXPVWRUXINJHZUGHVUMUXCUGHZVUIUYBIUXINV
      XIUYQVXAVXCUVHUYBVWRVUMVXQUXCUGVWRVUMLUYBXMRUYBUXCNUYOVXAVXCUVIXSUYBVXRUX
      CVUMUGHZVUIUYBVUMGQZUYGVXRVXSLYGUYOVUMUXCYBVEUYBUYGUYFVXSVUILUYOSUXCNUVJY
      HZYEYAXJUYBINUXLVXIVXAVUDVUEUVKYIYDYEXAMADVUKUXRUYBVUIVUGPHZUXEJHVUIUXEJH
      ZVUGUXEJHZPHUXRVUKUYBVUIVUGUXEUYBUYGUYFVUIGQUYOSUXCNVFYHZUYBUYGUYFVUGGQUY
      OSUXCNVHYHZUYBUYCUXDGQZUXEGQUNUYBUXCUYOUVOZIUXDVHVEZUYBUYKUXETUOZUYMUYKUY
      GVYJUXCUVLUVMUVNZUVPUYBVYBUXQUXEJUYBVYBVUMNPHZUXQUYBVXSVUGPHVYBVYLUYBVXSV
      UIVUGPVYAYJUYBUXCVUMNUYOVXTUYBYGRVXAUVQYKUXQUEVUMOHZVUMVUMUGHVYLUXQUEVWRO
      HVYMUENYLSXPUVRVWRVUMUEOXMXNYPVUMYGUVSVUMNYGSUVTUWAXDYJUYBVYCVUHVYDVUJPUY
      BVUIIOHZVUIVUGOHZJHVYCVUHUYBVYNVUIVYOUXEJUYBVUIVYEYMUYBVYOVUGVUIOHZUXEUYB
      VUIVUGVYEVYFUWBUYBUXDNUEUFHZPHZUXDIUGHZVYPUXEUYBVYRUXDVXLPHZVYSVYQVXLUXDP
      UWCXNUYBVYGUYCVYTVYSLVYHUNUXDIXTYHXRUYBUYGUYFVYRVYPLUYOSUXCNUWEYHUYBVYGUY
      CVYSUXELVYHUNUXDIYBYHYCZYEXSUYBIVUGVUIVXIVYFVYEUYBUXCVUMPHZVUGTUYBUYGUYFW
      UBVUGLUYOSUXCNXTYHUYBWUBTUOZUXCVUMUOZUYBUYGWUDUXCNUOZUYBUYKUYGWUDWUEVIUYM
      UXCUWDVBZVGUYBUYGVXTWUCWUDYNUYOYGUYGVXTUQWUBTUXCVUMUXCVUMYOYQYHYRUWPZUYBV
      UITUOZWUEUYBUYGWUDWUEWUFVKUYBUYGUYFWUHWUEYNUYOSUYGUYFUQVUITUXCNUXCNYOYQYH
      YRZYSYKUYBVUGIOHZVYPJHVYDVUJUYBWUJVUGVYPUXEJUYBVUGVYFYMWUAXSUYBIVUIVUGVXI
      VYEVYFWUIWUGYSYKXSYIYDYEUYFUXHGQZMSNUWFZYTWQMUXAUXPGUBUXAUXPLMUXAAGVUMNUL
      VSZUXOKZDUCZUXPUAWUNDAUWGUWHDWUMXEWUOUXPLDUYJWUMUYLWUMGUAUWIUWJUWKAWUMDUX
      OUWLWFYPRXJMADUXFUXSUYBUXFUXHUXQOHZUXEJHUXSWUPIUXEJUYFVXBUEGQUETUOWUPILSX
      PYLUWMNUEUWNUWOXQUYBUXHUXQUXEUYFWUKUYBSWULYTUXQGQUYBUENYLSXPUWQRVYIVYKUWR
      YFYDUWSUWT $.

    $( The arctangent is a continuous function.  (Contributed by Mario
       Carneiro, 7-Apr-2015.) $)
    atancn $p |- ( arctan |` S ) e. ( S -cn-> CC ) $=
      ( vx cc wss catan wf co wcel ci atanf cdm c1 cv c2 cexp caddc cpr sseqtri
      cres ccncf ssid cneg cdif atansssdm fdmi fssres mp2an crab ssrab2 eqsstri
      w3a cdv wceq cdiv ovex dvatan dmmpti dvcn mpan2 mp3an ) GGHZCGICUCZJZCGHZ
      VFCGUDKLZGUEGMUFMUAUGZGIJCVJHVGNCIOVJABCDEUHVJGINUIUBVJGCIUJUKCPAQRSKTKBL
      ZAGULGEVKAGUMUNVEVGVHUOGVFUPKZOCUQVIFCPPFQRSKTKZURKVLPVMURUSFABCDEUTVACGV
      FVBVCVD $.
  $}

  ${
    $d k m n A $.  $d m F $.
    atantayl.1 $e |- F = ( n e. NN |-> ( ( ( _i x.
      ( ( -u _i ^ n ) - ( _i ^ n ) ) ) / 2 ) x. ( ( A ^ n ) / n ) ) ) $.
    $( The Taylor series for ` arctan ( A ) ` .  (Contributed by Mario
       Carneiro, 1-Apr-2015.) $)
    atantayl $p |- ( ( A e. CC /\ ( abs ` A ) < 1 ) ->
      seq 1 ( + , F ) ~~> ( arctan ` A ) ) $=
      ( cc wcel cfv c1 caddc ci cdiv cmul cmin cexp sylancr wceq oveq12d adantl
      co cn vm vk cabs clt wbr wa cseq c2 clog catan cli cneg cv cmpt nnuz 1zzd
      ax-icn halfcl mp1i simpl mulcl negcld absnegd absmul absi oveq1i cr abscl
      cvv adantr recnd mulid2d syl5eq 3eqtrd simpr eqbrtrd ax-1cn subneg fveq2d
      logtayl syl2anc negeqd breqtrd seqex a1i eqbrtrrd oveq2 id eqid fvmpt cn0
      ovex nnnn0 expcl syl2an nncn cc0 wne nnne0 divcld serf ffvelrnda syl6eleq
      eqeltrd cuz cfz elfznn eqtr4d sersub climsub addcl cdm w3a atandm2 simp3d
      bndatandm sylib logcld subcl simp2d subcld negicn 2cnd 2ne0 div23d oveq1d
      neg2subd mulassd subdird mulneg1 mulexpd eqtr3d divassd divsubdird oveq2d
      3eqtr3d 3eqtr4d isermulc2 atanval syl breqtrrd ) AEFZAUCGZHUDUEZUFZICHUGJ
      UHKSZHJALSZMSZUIGZHUUGISZUIGZMSZLSZAUJGZUKUUEUULUUFUABTUUGULZBUMZNSZUUPKS
      ZUUGUUPNSZUUPKSZMSZUNZCHTUOUUEUPZJEFZUUFEFZUUEUQJURUSZUUEIUVBHUGZUUKULZUU
      IULZMSUULUKUUEUVHUVIUBIBTUURUNZHUGZIBTUUTUNZHUGZUVGHVITUOUVCUUEUVKHUUOMSZ
      UIGZULZUVHUKUUEUUOEFZUUOUCGZHUDUEUVKUVPUKUEUUEUUGUUEUVDUUBUUGEFZUQUUBUUDU
      TZJAVAOZVBZUUEUVRUUCHUDUUEUVRUUGUCGZJUCGZUUCLSZUUCUUEUUGUWAVCZUUEUVDUUBUW
      CUWEPUQUVTJAVDOUUEUWEHUUCLSUUCUWDHUUCLVEVFUUEUUCUUEUUCUUBUUCVGFUUDAVHVJVK
      VLVMVNUUBUUDVOVPZUUOBVTWAUUEUVOUUKUUEUVNUUJUIUUEHEFZUVSUVNUUJPVQUWAHUUGVR
      OVSWBWCUVGVIFUUEIUVBHWDWEUUEUVSUWCHUDUEUVMUVIUKUEUWAUUEUVRUWCHUDUWFUWGWFU
      UGBVTWAUUETEUBUMZUVKUUEUAUVJHTUOUVCUUEUAUMZTFZUFZUWJUVJGZUUOUWJNSZUWJKSZE
      UWKUWMUWOPUUEBUWJUURUWOTUVJUUPUWJPZUUQUWNUUPUWJKUUPUWJUUONWGUWPWHZQZUVJWI
      UWNUWJKWLWJRZUWLUWNUWJUUEUVQUWJWKFZUWNEFUWKUWBUWJWMZUUOUWJWNWOZUWKUWJEFUU
      EUWJWPRZUWKUWJWQWRUUEUWJWSRZWTZXDZXAXBUUETEUWIUVMUUEUAUVLHTUOUVCUWLUWJUVL
      GZUUGUWJNSZUWJKSZEUWKUXGUXIPUUEBUWJUUTUXITUVLUWPUUSUXHUUPUWJKUUPUWJUUGNWG
      UWQQZUVLWIUXHUWJKWLWJRZUWLUXHUWJUUEUVSUWTUXHEFUWKUWAUXAUUGUWJWNWOZUXCUXDW
      TZXDZXAXBUUEUWITFZUFZUAUVJUVLUVBHUWIUXPUWITHXEGUUEUXOVOUOXCUXPUUEUWKUWMEF
      UWJHUWIXFSFZUUEUXOUTZUWJUWIXGZUXFWOUXPUUEUWKUXGEFUXQUXRUXSUXNWOUXPUUEUWKU
      WJUVBGZUWMUXGMSZPUXQUXRUXSUWLUXTUWOUXIMSZUYAUWKUXTUYBPUUEBUWJUVAUYBTUVBUW
      PUURUWOUUTUXIMUWRUXJQUVBWIUWOUXIMWLWJRZUWLUWMUWOUXGUXIMUWSUXKQXHWOXIXJUUE
      UUKUUIUUEUUJUUEUWHUVSUUJEFVQUWAHUUGXKOUUEUUBUUHWQWRZUUJWQWRZUUEAUJXLFZUUB
      UYDUYEXMAXPZAXNXQZXOXRUUEUUHUUEUWHUVSUUHEFVQUWAHUUGXSOUUEUUBUYDUYEUYHXTXR
      YGWCUWLUXTUYBEUYCUWLUWOUXIUXEUXMYAXDUWLJJULZUWJNSZJUWJNSZMSZLSZUHKSZAUWJN
      SZUWJKSZLSZUUFUYBLSZUWJCGZUUFUXTLSUWLUYQUUFUYLLSZUYPLSUUFUYLUYPLSZLSUYRUW
      LUYNUYTUYPLUWLJUYLUHUVDUWLUQWEZUWLUYJUYKUWLUYIEFZUWTUYJEFYBUWKUWTUUEUXARZ
      UYIUWJWNOZUWLUVDUWTUYKEFUQVUDJUWJWNOZYAZUWLYCUHWQWRUWLYDWEYEYFUWLUUFUYLUY
      PUUEUVEUWKUVFVJVUGUWLUYOUWJUUEUUBUWTUYOEFUWKUVTUXAAUWJWNWOZUXCUXDWTYHUWLV
      UAUYBUUFLUWLUYLUYOLSZUWJKSUWNUXHMSZUWJKSVUAUYBUWLVUIVUJUWJKUWLVUIUYJUYOLS
      ZUYKUYOLSZMSVUJUWLUYJUYKUYOVUEVUFVUHYIUWLUWNVUKUXHVULMUWLUYIALSZUWJNSUWNV
      UKUWLVUMUUOUWJNUWLUVDUUBVUMUUOPUQUUEUUBUWKUVTVJZJAYJOYFUWLUYIAUWJVUCUWLYB
      WEVUNVUDYKYLUWLJAUWJVUBVUNVUDYKQXHYFUWLUYLUYOUWJVUGVUHUXCUXDYMUWLUWNUXHUW
      JUXBUXLUXCUXDYNYPYOVNUWKUYSUYQPUUEBUWJJUYIUUPNSZJUUPNSZMSZLSZUHKSZAUUPNSZ
      UUPKSZLSUYQTCUWPVUSUYNVVAUYPLUWPVURUYMUHKUWPVUQUYLJLUWPVUOUYJVUPUYKMUUPUW
      JUYINWGUUPUWJJNWGQYOYFUWPVUTUYOUUPUWJKUUPUWJANWGUWQQQDUYNUYPLWLWJRUWLUXTU
      YBUUFLUYCYOYQYRUUEUYFUUNUUMPUYGAYSYTUUA $.
  $}

  ${
    $d n A $.
    atantayl2.1 $e |- F = ( n e. NN |-> if ( 2 || n , 0 ,
      ( ( -u 1 ^ ( ( n - 1 ) / 2 ) ) x. ( ( A ^ n ) / n ) ) ) ) $.
    $( The Taylor series for ` arctan ( A ) ` .  (Contributed by Mario
       Carneiro, 1-Apr-2015.) $)
    atantayl2 $p |- ( ( A e. CC /\ ( abs ` A ) < 1 ) ->
      seq 1 ( + , F ) ~~> ( arctan ` A ) ) $=
      ( cc wcel c1 caddc ci cexp co cmin cmul c2 cdiv cc0 ax-icn a1i wceq cz wa
      cabs cfv clt wbr cseq cn cneg cv cmpt catan cli cdvds cif negcli ad2antlr
      cn0 nnnn0 expcld sqneg ax-mp oveq1i wne ine0 negne0i 2z 2ne0 nnz dvdsval2
      adantl syl3anc biimpa expmulz syl22anc 3eqtr4a nncn 2cnd divcan2d 3eqtr3d
      oveq2d subeq0bd it0e0 syl6eq oveq1d 2cn div0i simplll nnne0 divcld mul02d
      wb eqtr2d wn ax-1cn neg1ne0 peano2cn syl divsubdird 2div2e1 df-2 pnpcan2d
      oveq2i syl5eq eqtr3d notbid zeo ord imp peano2zm eqeltrrd expclzd 2timesd
      wo sylbid subcl sylancl expm1d eqtrd expcl sylancr divrec2d i2 eqtri irec
      negeqi divneg2 mp3an negnegi 3eqtr3i 3eqtr3g mulneg1 oveq12d mulcl subdid
      negsubd eqtr4d 3eqtrd mvllmuld ifeqda mpteq2dva seqeq3d atantayl eqbrtrd
      eqid ) AEFZAUBUCGUDUEZUAZHCGUFHBUGIIUHZBUIZJKZIUUIJKZLKZMKZNOKZAUUIJKZUUI
      OKZMKZUJZGUFAUKUCULUUGCUURHGUUGCBUGNUUIUMUEZPGUHZUUIGLKZNOKZJKZUUPMKZUNZU
      JUURDUUGBUGUVEUUQUUGUUIUGFZUAZUUSPUVDUUQUVGUUSUAZUUQPUUPMKPUVHUUNPUUPMUVH
      UUNPNOKPUVHUUMPNOUVHUUMIPMKPUVHUULPIMUVHUUJUUKUVHUUHUUIUUHEFZUVHIQUOZRZUV
      FUUIUQFZUUGUUSUUIURZUPZUSUVHUUHNUUINOKZMKZJKZIUVPJKZUUJUUKUVHUUHNJKZUVOJK
      ZINJKZUVOJKZUVQUVRUVSUWAUVOJIEFZUVSUWASQIUTVAZVBUVHUVIUUHPVCZNTFZUVOTFZUV
      QUVTSUVKUWEUVHIQVDVEZRUWFUVHVFRZUVGUUSUWGUVGUWFNPVCZUUITFZUUSUWGWKUWFUVGV
      FRUWJUVGVGRUVFUWKUUGUUIVHZVJZNUUIVIVKZVLZUUHNUVOVMVNUVHUWCIPVCZUWFUWGUVRU
      WBSUWCUVHQRUWPUVHVDRUWIUWOINUVOVMVNVOUVHUVPUUIUUHJUVHUUINUVFUUIEFZUUGUUSU
      UIVPZUPZUVHVQUWJUVHVGRVRZVTUVHUVPUUIIJUWTVTVSWAVTWBWCWDNWEVGWFWCWDUVHUUPU
      VHUUOUUIUVHAUUIUUEUUFUVFUUSWGUVNUSUWSUVFUUIPVCUUGUUSUUIWHUPWIWJWLUVGUUSWM
      ZUAZUVCUUNUUPMUXBNUVCUUMUXBVQZUXBUUTUVBUUTEFUXBGWNUORUUTPVCUXBWORUXBUUIGH
      KZNOKZGLKZUVBTUXBUXDNLKZNOKZUXFUVBUXBUXHUXENNOKZLKUXFUXBUXDNNUXBUWQUXDEFU
      VFUWQUUGUXAUWRUPZUUIWPWQUXCUXCUWJUXBVGRZWRUXIGUXELWSXBWCUXBUXGUVANOUXBUXG
      UXDGGHKZLKUVANUXLUXDLWTXBUXBUUIGGUXJGEFZUXBWNRZUXNXAXCWDXDUXBUXETFZUXFTFU
      VGUXAUXOUVGUXAUWGWMUXOUVGUUSUWGUWNXEUVGUWGUXOUVGUWKUWGUXOXMUWMUUIXFWQXGXN
      XHUXEXIWQXJZXKZUXKUXBNUVCMKUVCUVCHKIUUJMKZIUUKMKZUHZHKZUUMUXBUVCUXQXLUXBU
      VCUXRUVCUXTHUXBUVSUVBJKZGUUHOKZUUJMKZUVCUXRUXBUUHNUVBMKZJKZUUJUUHOKZUYBUY
      DUXBUYFUUHUVAJKUYGUXBUYEUVAUUHJUXBUVANUXBUWQUXMUVAEFUXJWNUUIGXOXPUXCUXKVR
      ZVTUXBUUHUUIUVIUXBUVJRZUWEUXBUWHRZUVFUWKUUGUXAUWLUPZXQXRUXBUVIUWEUWFUVBTF
      ZUYFUYBSUYIUYJUWFUXBVFRZUXPUUHNUVBVMVNUXBUUJUUHUXBUVIUVLUUJEFZUVJUVFUVLUU
      GUXAUVMUPZUUHUUIXSXTZUYIUYJYAVSUVSUUTUVBJUVSUWAUUTUWDYBYCVBUYCIUUJMGIOKZU
      HZUUHUHUYCIUYQUUHYDYEUXMUWCUWPUYRUYCSWNQVDGIYFYGIQYHYIVBYJUXBUVCUUHUUKMKZ
      UXTUXBUWAUVBJKZUYQUUKMKZUVCUYSUXBIUYEJKZUUKIOKZUYTVUAUXBVUBIUVAJKVUCUXBUY
      EUVAIJUYHVTUXBIUUIUWCUXBQRZUWPUXBVDRZUYKXQXRUXBUWCUWPUWFUYLVUBUYTSVUDVUEU
      YMUXPINUVBVMVNUXBUUKIUXBUWCUVLUUKEFZQUYOIUUIXSXTZVUDVUEYAVSUWAUUTUVBJYBVB
      UYQUUHUUKMYDVBYJUXBUWCVUFUYSUXTSQVUGIUUKYKXTXRYLUXBUYAUXRUXSLKUUMUXBUXRUX
      SUXBUWCUYNUXREFQUYPIUUJYMXTUXBUWCVUFUXSEFQVUGIUUKYMXTYOUXBIUUJUUKVUDUYPVU
      GYNYPYQYRWDYSYTXCUUAABUURUURUUDUUBUUC $.
  $}

  ${
    $d k n A $.
    atantayl3.1 $e |- F = ( n e. NN0 |-> ( ( -u 1 ^ n ) x.
      ( ( A ^ ( ( 2 x. n ) + 1 ) ) / ( ( 2 x. n ) + 1 ) ) ) ) $.
    $( The Taylor series for ` arctan ( A ) ` .  (Contributed by Mario
       Carneiro, 7-Apr-2015.) $)
    atantayl3 $p |- ( ( A e. CC /\ ( abs ` A ) < 1 ) ->
      seq 0 ( + , F ) ~~> ( arctan ` A ) ) $=
      ( vk cc wcel c1 wbr caddc cc0 cseq cn0 c2 cmul co cmin cdiv cexp cmpt cfv
      cabs clt wa cneg catan cli wceq 2nn0 simpr nn0mulcl sylancr nn0cnd ax-1cn
      cv pncan sylancl oveq1d nn0cn adantl 2cnd wne 2ne0 divcan3d eqtr2d oveq2d
      a1i mpteq2dva syl5eq seqeq3d cdvds cif eqid atantayl2 neg1cn expcl simpll
      cn peano2nn0 syl expcld nn0p1nn nncnd nnne0d divcld mulcld eqeltrrd oveq1
      oveq2 id oveq12d iserodd mpbird eqbrtrd ) AFGZAUBUAHUCIZUDZJCKLJBMHUEZNBU
      OZOPZHJPZHQPZNRPZSPZAXASPZXARPZOPZTZKLZAUFUAZUGWQCXHJKWQCBMWRWSSPZXFOPZTX
      HDWQBMXLXGWQWSMGZUDZXKXDXFOXNWSXCWRSXNXCWTNRPWSXNXBWTNRXNWTFGHFGXBWTUHXNW
      TXNNMGXMWTMGZUIWQXMUJZNWSUKULZUMUNWTHUPUQURXNWSNXMWSFGWQWSUSUTXNVANKVBXNV
      CVGVDVEVFURZVHVIVJWQXIXJUGIJEVRNEUOZVKIKWRXSHQPZNRPZSPZAXSSPZXSRPZOPZVLTZ
      HLXJUGIAEYFYFVMVNWQXJYEXGBEXNXLXGFXRXNXKXFXNWRFGXMXKFGVOXPWRWSVPULXNXEXAX
      NAXAWOWPXMVQXNXOXAMGXQWTVSVTWAXNXAXNXOXAVRGXQWTWBVTZWCXNXAYGWDWEWFWGXSXAU
      HZYBXDYDXFOYHYAXCWRSYHXTXBNRXSXAHQWHURVFYHYCXEXSXARXSXAASWIYHWJWKWKWLWMWN
      $.
  $}

  ${
    $d j k n x $.  $d n G $.  $d n N $.
    $( Lemma for ~ leibpi .  (Contributed by Mario Carneiro, 7-Apr-2015.) $)
    leibpilem1 $p |- ( ( N e. NN0 /\ ( -. N = 0 /\ -. 2 || N ) ) ->
      ( N e. NN /\ ( ( N - 1 ) / 2 ) e. NN0 ) ) $=
      ( vn cn0 wcel cc0 wceq wn c2 wbr wa c1 cmin co cdiv cz cle syl 2cn oveq1d
      cc cdvds cn wo elnn0 biimpi ord con1d imp adantrr cv cmul caddc wrex nn0z
      wb adantr odd2np1 zcn mulcl mpan ax-1cn pncan sylancl wne divcan3 mp3an23
      2ne0 eqtrd id eqeltrd oveq1 eleq1d syl5ibcom rexlimiv syl6bi impr nnm1nn0
      cr clt nn0red nn0ge0d 2re a1i 2pos divge0 syl22anc elnn0z sylanbrc jca )
      ACDZAEFZGZHAUAIGZJJZAUBDZAKLMZHNMZCDZWJWLWOWMWJWLWOWJWOWKWJWOWKWJWOWKUCAU
      DUEUFUGUHUIZWNWQODZEWQPIZWRWJWLWMWTWJWLJZWMHBUJZUKMZKULMZAFZBOUMZWTXBAODZ
      WMXGUOWJXHWLAUNUPBAUQQXFWTBOXCODZXEKLMZHNMZODXFWTXIXKXCOXIXCTDZXKXCFXCURX
      LXKXDHNMZXCXLXJXDHNXLXDTDZKTDXJXDFHTDZXLXNRHXCUSUTVAXDKVBVCSXLXOHEVDXMXCF
      RVGXCHVEVFVHQXIVIVJXFXKWQOXFXJWPHNXEAKLVKSVLVMVNVOVPWNWPVRDEWPPIHVRDZEHVS
      IZXAWNWPWNWOWPCDWSAVQQZVTWNWPXRWAXPWNWBWCXQWNWDWCWPHWEWFWQWGWHWI $.

    leibpi.1 $e |- F = ( n e. NN0 |->
      ( ( -u 1 ^ n ) / ( ( 2 x. n ) + 1 ) ) ) $.
    ${
      leibpilem2.2 $e |- G = ( k e. NN0 |-> if ( ( k = 0 \/ 2 || k ) , 0 ,
        ( ( -u 1 ^ ( ( k - 1 ) / 2 ) ) / k ) ) ) $.
      leibpilem2.3 $e |- A e. _V $.
      $( The Leibniz formula for ` _pi ` .  (Contributed by Mario Carneiro,
         7-Apr-2015.) $)
      leibpilem2 $p |- ( seq 0 ( + , F ) ~~> A <-> seq 0 ( + , G ) ~~> A ) $=
        ( caddc cc0 cli cn0 c1 c2 co cdiv wceq wcel cc wtru cseq cneg cmul cmin
        wbr cv cexp cmpt cdvds cif 2cn nn0cn mulcl sylancr ax-1cn pncan sylancl
        oveq1d wne 2ne0 divcan3 mp3an23 syl eqtrd oveq2d mpteq2ia eqtr4i seqeq3
        cn ax-mp breq1i wb cr reexpcl mpan 2nn0 nn0mulcl nn0p1nn nndivred recnd
        neg1rr eqeltrd adantl oveq1 id oveq12d iserodd trud cuz cfv cres addid2
        0cnd 1eluzge0 a1i 1nn0 wo wa wn leibpilem1 simprd simpld sylan2b ifclda
        ioran fmpti ffvelrni mp1i cfz simpr oveq2i syl6eleq elfz1eq fveq2d 0nn0
        1m1e0 iftrue orcs c0ex fvmpt syl6eq seqid 1zzd nnne0 neneqd biorf ifbid
        nnuz syl6eleqr breq2 ifbieq2d eqid ovex ifex nnnn0 eqeq1 orbi12d seqfeq
        3eqtr4d cvv eqtr4d cz 1z seqex climres mp2an bitr3i 3bitri ) IDJUAZAKUE
        ICLMUBZNCUFZUCOZMIOZMUDOZNPOZUGOZUUMPOZUHZJUAZAKUEZIBVINBUFZUIUEZJUUJUV
        AMUDOZNPOZUGOZUVAPOZUJZUHZMUAZAKUEZIEJUAZAKUEZUUIUUSAKDUURQUUIUUSQDCLUU
        JUUKUGOZUUMPOZUHUURFCLUUQUVNUUKLRZUUPUVMUUMPUVOUUOUUKUUJUGUVOUUOUULNPOZ
        UUKUVOUUNUULNPUVOUULSRZMSRUUNUULQUVONSRZUUKSRZUVQUKUUKULZNUUKUMUNUOUULM
        UPUQURUVOUVSUVPUUKQZUVTUVSUVRNJUSUWAUKUTUUKNVAVBVCVDVEURZVFVGIDUURJVHVJ
        VKUUTUVJVLTAUVFUUQCBUVOUUQSRTUVOUUQUVNSUWBUVOUVNUVOUVMUUMUUJVMRZUVOUVMV
        MRWAUUJUUKVNVOUVOUULLRZUUMVIRNLRUVOUWDVPNUUKVQVOUULVRVCVSVTWBWCUVAUUMQZ
        UVEUUPUVAUUMPUWEUVDUUOUUJUGUWEUVCUUNNPUVAUUMMUDWDURVEUWEWEWFWGWHUVJUVKM
        WIWJZWKZAKUEZUVLUWGUVIAKUWGUVIQTUWGIEMUAUVITCISEJMJUVSJUUKIOUUKQTUUKWLW
        CTWMMJWIWJRTWNWOMLRMEWJSRTWPLSMEBLSUVAJQZUVBWQZJUVFUJZEGUVALRZUWJJUVFSU
        WLUWJWRWMUWJWSUWLUWIWSUVBWSWRZUVFSRUWIUVBXEUWLUWMWRZUVFUWNUVEUVAUWNUWCU
        VDLRZUVEVMRWAUWNUVAVIRZUWOUVAWTZXAUUJUVDVNUNUWNUWPUWOUWQXBVSVTXCXDXFXGX
        HTUUKJMMUDOZXIOZRZWRZUUKEWJZJEWJZJUXAUUKJEUXAUUKJJXIOZRUUKJQZUXAUUKUWSU
        XDTUWTXJUWRJJXIXPXKXLUUKJXMVCXNJLRUXCJQXOBJUWKJLEUWIUVBUWKJQUWJJUVFXQXR
        GXSXTVJYAYBTICUVHEMTYCTUUKUWFRZWRZUUKVIRZUUKUVHWJZUXBQUXGUUKUWFVITUXFXJ
        YHYIUXHNUUKUIUEZJUUJUUKMUDOZNPOZUGOZUUKPOZUJZUXEUXJWQZJUXNUJZUXIUXBUXHU
        XJUXPJUXNUXHUXEWSUXJUXPVLUXHUUKJUUKYDYEUXEUXJYFVCYGBUUKUVGUXOVIUVHUVAUU
        KQZUVBUXJUVFUXNJUVAUUKNUIYJZUXRUVEUXMUVAUUKPUXRUVDUXLUUJUGUXRUVCUXKNPUV
        AUUKMUDWDURVEUXRWEWFZYKUVHYLUXJJUXNXSUXMUUKPYMZYNXTUXHUVOUXBUXQQUUKYOBU
        UKUWKUXQLEUXRUWJUXPUVFUXNJUXRUWIUXEUVBUXJUVAUUKJYPUXSYQUXTYKGUXPJUXNXSU
        YAYNXTVCYSVCYRUUAWHVKMUUBRUVKYTRUWHUVLVLUUCIEJUUDAUVKMYTUUEUUFUUGUUH $.
    $}

    $( The Leibniz formula for ` _pi ` .  This proof depends on three main
       facts:  (1) the series ` F ` is convergent, because it is an alternating
       series ( ~ iseralt ).  (2) Using ~ leibpilem2 to rewrite the series as a
       power series, it is the ` x = 1 ` special case of the Taylor series for
       ` arctan ` ( ~ atantayl2 ).  (3) Although we cannot directly plug
       ` x = 1 ` into ~ atantayl2 , Abel's theorem ( ~ abelth2 ) says that the
       limit along any sequence converging to ` 1 ` , such as ` 1 - 1 / n ` ,
       of the power series converges to the power series extended to ` 1 ` ,
       and then since ` arctan ` is continuous at ` 1 ` ( ~ atancn ) we get the
       desired result.  This is Metamath 100 proof #26.  (Contributed by Mario
       Carneiro, 7-Apr-2015.) $)
    leibpi $p |- seq 0 ( + , F ) ~~> ( _pi / 4 ) $=
      ( vk vj caddc cc0 cdiv co cli wbr cn0 wceq c1 wtru cfv wcel cc cn cmul vx
      cseq cpi c4 cv c2 cmin cexp cif cmpt csu nn0uz wa eqidd 0cnd wn cr neg1rr
      0zd sylancr nndivred recnd sylan2b ifclda adantl eqid fmptd ffvelrnda a1i
      2nn0 nn0mulcl sylan nn0p1nn syl nnrecred cle nn0red lep1d clt wb peano2re
      1red syl112anc mpbid nnred nngt0d lerec syl22anc oveq2 oveq1d oveq2d ovex
      fvmpt weq 3brtr4d cvv nnuz 1zzd mp1i mptex eqeltrd syl2anc breqtrrd nngt0
      nnre rpreccld rpge0d expcl nnne0d oveq12d sylib leibpilem2 catan ccom crp
      3eqtr4d mulid1d 1re eqtr4d 1elunit climcncf oveq1 wral adantll eqtrd c0ex
      fmptco ifex fvmpt2 sylancl nfv nffvmpt1 nfcv nfeq eqeq12d cbvral r19.21bi
      fveq2 ax-mp wf cdvds wo cneg ioran leibpilem1 simprd simpld cdm peano2nn0
      reexpcl nn0re 2re 2pos lemul2 leadd1dd ax-1cn divcnv nn0ex nnrecre sylan2
      nnnn0 nn0addge1 2timesd letrd nnrpd climsqz2 neg1cn nncnd divrecd iseralt
      climdm fvex seqex breldm isumclim2 cicc abelth2 nnrp rpred nnge1 ledivmul
      mpbird 0re elicc2i syl3anbrc iirev 1cnd nnex climsubc2 syl6breq sumeq2sdv
      adantllr resubcl ad2antrr simplr reexpcld ad2antlr div12d mulcomd ifeq2da
      1m0e1 nn0cn mul02d ifeq1d ovif syl6eqr simpr ralrimiva nfov eqeltrrd 0nn0
      mulcld 0p1e1 seqeq1 cuz elnnuz nnne0 neneqd biorf bicomd ifbid mpan2 rgen
      sylan2br seqfeq cabs abssubge0d ltsubrp eqbrtrd atantayl2 clim2ser2 cz 0z
      syl5eqbr seq1 iftrue orcs oveq2i atanrecl addid1d syl5eq breqtrd isumclim
      eqtri mpteq2dva nn0z 1exp sylan9eq trud ffvelrni sumeq2dv sumex cmnf cioc
      3brtr3d cdif crab ccncf atancn wss unitssre ressatans sstri sselii sseldi
      cres fss cncff feqmptd fvres mpteq2ia syl6eq atan1 climuni mpbir ) FBGUBU
[encoded data, 5760 characters]
      XJUCUDHWLXLVVO $.
  $}

  ${
    $d k n $.
    $( The Leibniz formula for ` _pi ` .  This version of ~ leibpi looks nicer
       but does not assert that the series is convergent so is not as
       practically useful.  (Contributed by Mario Carneiro, 7-Apr-2015.) $)
    leibpisum $p |- sum_ n e. NN0 ( ( -u 1 ^ n ) / ( ( 2 x. n ) + 1 ) ) =
      ( _pi / 4 ) $=
      ( vk cn0 c1 cneg cv cexp co c2 cmul caddc cdiv wceq wtru cc0 oveq2 adantl
      wcel cr mpan csu cpi c4 cmpt nn0uz 0zd cfv oveq1d oveq12d eqid ovex fvmpt
      cc neg1rr reexpcl cn 2nn0 nn0mulcl nn0p1nn syl nndivred recnd cseq leibpi
      cli wbr a1i isumclim trud ) CDEZAFZGHZIVKJHZDKHZLHZAUAUBUCLHZMNVOVPABCVJB
      FZGHZIVQJHZDKHZLHZUDZOCUENUFVKCRZVKWBUGVOMNBVKWAVOCWBVQVKMZVRVLVTVNLVQVKV
      JGPWDVSVMDKVQVKIJPUHUIWBUJZVLVNLUKULQWCVOUMRNWCVOWCVLVNVJSRWCVLSRUNVJVKUO
      TWCVMCRZVNUPRICRWCWFUQIVKURTVMUSUTVAVBQKWBOVCVPVEVFNBWBWEVDVGVHVI $.
  $}

  ${
    $d k n $.  $d k F $.
    log2cnv.1 $e |- F = ( n e. NN0 |-> ( 2 /
      ( ( 3 x. ( ( 2 x. n ) + 1 ) ) x. ( 9 ^ n ) ) ) ) $.
    $( Using the Taylor series for ` arctan ( _i / 3 ) ` , produce a rapidly
       convergent series for ` log 2 ` .  (Contributed by Mario Carneiro,
       7-Apr-2015.) $)
    log2cnv $p |- seq 0 ( + , F ) ~~> ( log ` 2 ) $=
      ( caddc cc0 c2 ci cdiv co c3 cfv cmul c1 cexp wcel ax-icn 3cn wceq cmin
      cc vk cseq catan clog cli wbr wtru cn0 cneg cv cmpt nn0uz 0zd ine0 divcli
      2cn a1i cabs clt 3ne0 wne absdiv mp3an absi cle 3re 0re 3pos ltleii absid
      cr mp2an oveq12i eqtri 1lt3 wb recgt1 mpbi eqbrtri atantayl3 oveq2 oveq1d
      eqid oveq2d oveq12d ovex fvmpt 2nn0 nn0mulcl peano2nn0 syl expdivd neg1cn
      expcl sylancr cn 3nn nnexpcl nncnd nnne0d divassd expp1 expmul mp3an12 i2
      mpan oveq1i syl6eq eqtrd mulassd expaddd neg1sqe1 2timesd 3eqtr3d mulid2i
      id nn0cn cz 3eqtr2d divdiv1d 3eqtrd nnmulcld divcld adantl mulcom sylancl
      c9 nnmulcl c4 ax-1cn 3eqtri 3eqtr2i oveq2i 3eqtr2ri fveq2i wa crp rpdivcl
      elrpii 2ne0 nn0z eqtr3d nn0p1nn mulcomd eqeltrd sq3 mul32d dmdcand eqtr4d
      1exp 9nn isermulc2 trud cdm bndatandm atanval df-4 divdiri dividi subnegi
      ax-mp divneg divassi pm3.2i divsubdir 3m1e2 3eqtr3i negsubi 4pos relogdiv
      ixi 4re 2rp 4cn 2cnne0 divcan7 4d2e2 logcl mulassi eqtr4i divcan6 breqtri
      mp4an ) DBEUBZFGHIZGJHIZUCKZLIZFUDKZUEUWDUWHUEUFUGUWGUWEUAAUHMUIZAUJZNIZU
      WFFUWKLIZMDIZNIZUWNHIZLIZUKZBEUHULUGUMUWETOZUGFGUPPUNUOZUQDUWREUBUWGUEUFZ
      UGUWFTOZUWFURKZMUSUFZUXAGJPQUTUOZUXCMJHIZMUSUXCGURKZJURKZHIZUXFGTOZJTOZJE
      VAZUXCUXIRPQUTGJVBVCUXGMUXHJHVDJVKOZEJVEUFUXHJRVFEJVGVFVHVIJVJVLVMVNMJUSU
      FZUXFMUSUFZVOUXMEJUSUFUXNUXOVPVFVHJVQVLVRVSZUWFAUWRUWRWCZVTVLUQUAUJZUHOZU
      XRUWRKZTOUGUXSUXTGFUXRLIZMDIZJUYBNIZLIZHIZTUXSUXTUWJUXRNIZUWFUYBNIZUYBHIZ
      LIZGUYCUYBLIZHIZUYEAUXRUWQUYIUHUWRUWKUXRRZUWLUYFUWPUYHLUWKUXRUWJNWAUYLUWO
      UYGUWNUYBHUYLUWNUYBUWFNUYLUWMUYAMDUWKUXRFLWAWBZWDUYMWEWEUXQUYFUYHLWFWGZUX
      SUYFUYGLIZUYBHIZGUYCHIZUYBHIUYIUYKUXSUYOUYQUYBHUXSUYOUYFGUYBNIZUYCHIZLIZU
      YFUYRLIZUYCHIZUYQUXSUYGUYSUYFLUXSGJUYBUXJUXSPUQZUXKUXSQUQZUXLUXSUTUQUXSUY
      AUHOZUYBUHOZFUHOZUXSVUEWHFUXRWIXFZUYAWJWKZWLWDZUXSUYFUYRUYCUWJTOZUXSUYFTO
      WMUWJUXRWNXFZUXSUXJVUFUYRTOPVUIGUYBWNWOUXSUYCUXSJWPOZVUFUYCWPOWQVUIJUYBWR
      WOZWSZUXSUYCVUNWTZXAZUXSVUAGUYCHUXSVUAUYFUYFGLIZLIUYFUYFLIZGLIZGUXSUYRVUR
      UYFLUXSUYRGUYANIZGLIZVURUXSUXJVUEUYRVVBRPVUHGUYAXBWOUXSVVAUYFGLUXSVVAGFNI
      ZUXRNIZUYFUXJVUGUXSVVAVVDRPWHGFUXRXCXDVVCUWJUXRNXEXGXHWBXIWDUXSUYFUYFGVUL
      VULVUCXJUXSVUTMGLIGUXSVUSMGLUXSUWJUXRUXRDIZNIZVUSMUXSUWJUXRUXRVUKUXSWMUQU
      XSXPZVVGXKUXSUWJUYANIZMUXRNIZVVFMUXSVVHUWJFNIZUXRNIZVVIVUKVUGUXSVVHVVKRWM
      WHUWJFUXRXCXDVVJMUXRNXLXGXHUXSUYAVVEUWJNUXSUXRUXRXQXMWDUXSUXRXROVVIMRUXRU
      UAUXRUUJWKXNUUBWBGPXOXHXSZWBXSWBUXSUYFUYGUYBVULUXSUXBVUFUYGTOUXEVUIUWFUYB
      WNWOUXSUYBUXSVUEUYBWPOZVUHUYAUUCWKZWSZUXSUYBVVNWTZXAZUXSGUYCUYBVUCVUOVVOV
      UPVVPXTXNUXSUYJUYDGHUXSUYCUYBVUOVVOUUDWDYAUXSGUYDVUCUXSUYDUXSUYBUYCVVNVUN
      YBZWSUXSUYDVVRWTYCUUEYDUXSUXRBKZUWEUXTLIZRUGUXSVVSFJUYBLIZYGUXRNIZLIZHIZV
      VTAUXRFJUWNLIZYGUWKNIZLIZHIVWDUHBUYLVWGVWCFHUYLVWEVWAVWFVWBLUYLUWNUYBJLUY
      MWDUWKUXRYGNWAWEWDCFVWCHWFWGUXSVVTUWEGVWCHIZLIZVWHUWELIZVWDUXSUXTVWHUWELU
      XSUXTUYIGJVWBLIZUYBLIZHIZVWHUYNUXSUYPGVWKHIZUYBHIUYIVWMUXSUYOVWNUYBHUXSUY
      OUYTVUBVWNVUJVUQUXSVUAGUYCVWKHVVLUXSUYCJUYANIZJLIZVWBJLIZVWKUXSUXKVUEUYCV
      WPRQVUHJUYAXBWOUXSVWOVWBJLUXSVWOJFNIZUXRNIZVWBUXKVUGUXSVWOVWSRQWHJFUXRXCX
      DVWRYGUXRNUUFXGXHWBUXSVWBTOUXKVWQVWKRUXSVWBYGWPOUXSVWBWPOZUUKYGUXRWRXFZWS
      ZQVWBJYEYFYAWEXSWBVVQUXSGVWKUYBVUCUXSVWKUXSVUMVWTVWKWPOWQVXAJVWBYHWOZWSVV
      OUXSVWKVXCWTVVPXTXNUXSVWLVWCGHUXSJVWBUYBVUDVXBVVOUUGWDYAWDUXSVWHTOUWSVWJV
      WIRUXSGVWCVUCUXSVWCUXSVWAVWBUXSVUMVVMVWAWPOWQVVNJUYBYHWOVXAYBZWSZUXSVWCVX
      DWTZYCUWTVWHUWEYEYFUXSFGVWCFTOZUXSUPUQVUCVXEGEVAZUXSUNUQVXFUUHXSUUIYDUULU
      UMUWHUWEGFHIZLIZUWILIZMUWILIUWIUWHUWEVXIUWILIZLIVXKUWGVXLUWELUWGVXIMGUWFL
      IZSIZUDKZMVXMDIZUDKZSIZLIZVXLUWFUCUUNOZUWGVXSRUXBUXDVXTUXEUXPUWFUUOVLUWFU
      UPUVAVXRUWIVXILVXRYIJHIZUDKZFJHIZUDKZSIZVYAVYCHIZUDKZUWIVXOVYBVXQVYDSVXNV
      YAUDVYAMUXFDIZMUXFUIZSIVXNVYAJMDIZJHIJJHIZUXFDIVYHYIVYJJHUUQXGJMJQYJQUTUU
      RVYKMUXFDJQUTUUSZXGYKMUXFYJMJYJQUTUOZUUTVYIVXMMSVYIUWJJHIZGGLIZJHIVXMMTOZ
      UXKUXLVYIVYNRYJQUTMJUVBVCVYOUWJJHUVKXGGGJPPQUTUVCYLZYMYNYOVXPVYCUDVYCMUXF
      SIZMVYIDIVXPJMSIZJHIZVYKUXFSIZVYCVYRUXKVYPUXKUXLYPZVYTWUARQYJUXKUXLQUTUVD
      ZJMJUVEVCVYSFJHUVFXGVYKMUXFSVYLXGUVGMUXFYJVYMUVHVYIVXMMDVYQYMYNYOVMVYAYQO
      ZVYCYQOZVYGVYERYIYQOJYQOZWUDYIUVLUVIYSJVFVHYSZYIJYRVLFYQOWUFWUEUVMWUGFJYR
      VLVYAVYCUVJVLVYFFUDVYFYIFHIZFYITOVXGFEVAZYPWUBVYFWUHRUVNUVOWUCYIFJUVPVCUV
      QVNYOYLYMVNYMUWEVXIUWIUWTGFPUPYTUOVXGWUIUWITOUPYTFUVRVLZUVSUVTVXJMUWILVXG
      WUIUXJVXHVXJMRUPYTPUNFGUWAUWCXGUWIWUJXOYKUWB $.
  $}

  ${
    $d k n N $.
    $( Bound the error term in the series of ~ log2cnv .  (Contributed by Mario
       Carneiro, 7-Apr-2015.) $)
    log2tlbnd $p |- ( N e. NN0 -> ( ( log ` 2 ) - sum_ n e. ( 0 ... ( N - 1 ) )
      ( 2 / ( ( 3 x. ( ( 2 x. n ) + 1 ) ) x. ( 9 ^ n ) ) ) ) e. ( 0 [,]
       ( 3 / ( ( 4 x. ( ( 2 x. N ) + 1 ) ) x. ( 9 ^ N ) ) ) ) ) $=
      ( cn0 wcel c2 cc0 c1 co c3 cmul caddc c9 cdiv cr cn sylancr wbr a1i cc c8
      vk clog cfv cmin cfz cv cexp csu cuz c4 cicc cmpt nn0uz wceq oveq2 oveq1d
      0zd oveq2d oveq12d eqid ovex fvmpt adantl 2re 2nn0 simpr nn0mulcl nn0p1nn
      wa 3nn syl nnmulcl 9nn nnexpcl nnmulcld nndivre cseq cli log2cnv isumclim
      recnd id cdm seqex fvex breldm mp1i isumsplit eqtr3d fzfid elfznn0 sylan2
      fsumcl eluznn0 syldan eqeltrd iserex mpbid isumrecl pncan2d eqtrd cle clt
      nn0z 0le2 nnred nngt0d 9cn wne nnne0i exprecd mpan adantr nnne0d divdiv1d
      nncnd 2cnd nn0red wb lemul2 syl112anc 3re 9re 0re mp2an oveq1i ax-1cn 8cn
      eqtri eqtr3i divcli divne0i breqtrd eqtr4d 3cn 4cn 2cn 4ne0 3ne0 2ne0 8nn
      divge0 syl22anc isumge0 cz divrecd 3eqtr2d 1red eluzle 2pos leadd1dd 3pos
      nn0re lemul1 lediv2 syl222anc rereccli recni cabs recgt0ii ltleii recgt1i
      9pos absid 1lt9 simpri eqbrtri geolim2 dividi pm3.2i divsubdir mp3an df-9
      pncan3oi divdiv32d recdiv mp4an syl5eq 3eqtrd isermulc2 isumle divdivdivi
      expcl 3t3e9 oveq12i oveq2i divcan2i divmuldivd mulassd 3eqtr4a w3a elicc2
      4t2e8 4nn mpbir3and ) BCDZEUBUCZFBGUDHZUEHZEIEAUFZJHZGKHZJHZLUWTUGHZJHZMH
[encoded data, 4160 characters]
      XLVLPWULVOIUXOVPPFUXPUXJUWLPUWOWP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The Birthday Problem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    log2ublem1.1 $e |- ( ( ( 3 ^ 7 ) x. ( 5 x. 7 ) ) x. A ) <_ B $.
    log2ublem1.2 $e |- A e. RR $.
    log2ublem1.3 $e |- D e. NN0 $.
    log2ublem1.4 $e |- E e. NN $.
    log2ublem1.5 $e |- B e. NN0 $.
    log2ublem1.6 $e |- F e. NN0 $.
    log2ublem1.7 $e |- C = ( A + ( D / E ) ) $.
    log2ublem1.8 $e |- ( B + F ) = G $.
    log2ublem1.9 $e |- ( ( ( 3 ^ 7 ) x. ( 5 x. 7 ) ) x. D ) <_ ( E x. F ) $.
    $( Lemma for ~ log2ub .  The proof of ~ log2ub , which is simply the
       evaluation of ~ log2tlbnd for ` N = 4 ` , takes the form of the addition
       of five fractions and showing this is less than another fraction.  We
       could just perform exact arithmetic on these fractions, get a large
       rational number, and just multiply everything to verify the claim, but
       as anyone who uses decimal numbers for this task knows, it is often
       better to pick a common denominator ` d ` (usually a large power of
       ` 1 0 ` ) and work with the closest approximations of the form ` n / d `
       for some integer ` n ` instead.  It turns out that for our purposes it
       is sufficient to take ` d = ( 3 ^ 7 ) x. 5 x. 7 ` , which is also nice
       because it shares many factors in common with the fractions in question.
       (Contributed by Mario Carneiro, 17-Apr-2015.) $)
    log2ublem1 $p |- ( ( ( 3 ^ 7 ) x. ( 5 x. 7 ) ) x. C ) <_ G $=
      ( c7 co cmul wcel c3 cexp c5 cdiv caddc cle wbr cn cn0 7nn0 nnexpcl mp2an
      3nn 5nn 7nn nnmulcli nncni nn0cni nnne0i divassi cr cc0 wa 3nn0 nn0expcli
      clt wb nn0mulcli nn0rei nnrei nngt0i pm3.2i ledivmul mp3an mpbir eqbrtrri
      5nn0 remulcli nndivre le2addi oveq2i recni adddii eqtr2i 3brtr3i ) UAQUBR
      ZUCQSRZSRZASRZWHDEUDRZSRZUERZBFUERZWHCSRZGUFWIBUFUGWKFUFUGWLWMUFUGHWHDSRZ
      EUDRZWKFUFWHDEWHWFWGUAUHTQUITWFUHTUMUJUAQUKULUCQUNUOUPUPZUQZDJUREKUQEKUSU
      TWPFUFUGZWOEFSRUFUGZPWOVATFVATEVATZVBEVFUGZVCWSWTVGWOWHDWFWGUAQVDUJVEUCQV
      QUJVHVHJVHVIFMVIZXAXBEKVJEKVKVLWOFEVMVNVOVPWIWKBFWHAWHWQVJZIVRWHWJXDDVATE
      UHTWJVATDJVIKDEVSULZVRBLVIXCVTULWNWHAWJUERZSRWLCXFWHSNWAWHAWJWRAIWBWJXEWB
      WCWDOWE $.
  $}

  ${
    $d n K $.  $d n N $.
    log2ublem2.1 $e |- ( ( ( 3 ^ 7 ) x. ( 5 x. 7 ) ) x. sum_ n e. ( 0 ... K )
      ( 2 / ( ( 3 x. ( ( 2 x. n ) + 1 ) ) x. ( 9 ^ n ) ) ) ) <_ ( 2 x. B ) $.
    log2ublem2.2 $e |- B e. NN0 $.
    log2ublem2.3 $e |- F e. NN0 $.
    log2ublem2.4 $e |- N e. NN0 $.
    log2ublem2.5 $e |- ( N - 1 ) = K $.
    log2ublem2.6 $e |- ( B + F ) = G $.
    log2ublem2.7 $e |- M e. NN0 $.
    log2ublem2.8 $e |- ( M + N ) = 3 $.
    log2ublem2.9 $e |- ( ( 5 x. 7 ) x. ( 9 ^ M ) ) =
      ( ( ( 2 x. N ) + 1 ) x. F ) $.
    $( Lemma for ~ log2ub .  (Contributed by Mario Carneiro, 17-Apr-2015.) $)
    log2ublem2 $p |- ( ( ( 3 ^ 7 ) x. ( 5 x. 7 ) ) x. sum_ n e. ( 0 ... N )
      ( 2 / ( ( 3 x. ( ( 2 x. n ) + 1 ) ) x. ( 9 ^ n ) ) ) ) <_ ( 2 x. G ) $=
      ( co c2 c3 cmul cc0 cfz cv c1 caddc c9 cexp cdiv csu cr wcel fzfid wa cn0
      wtru elfznn0 adantl cn 2re 3nn 2nn0 nn0mulcl mpan nn0p1nn nnmulcl sylancr
      syl nnexpcl nnmulcld nndivre fsumrecl trud nn0mulcli ax-mp nnmulcli mp2an
      9nn cmin wceq cuz cfv nn0uz eleqtri a1i recnd oveq2 oveq1d oveq2d oveq12d
      cc fsumm1 oveq2i sumeq1i oveq1i eqtri 2cn nn0cni adddii eqtr3i c7 cle 7nn
      nnnn0i 5nn nnrei remulcli leidi nncni mulcomi addcomi expadd mp3an mul12i
      c5 3eqtri c6 df-7 3cn 6nn0 expp1 expmul sq3 3eqtr3i mulassi mul32i mulcli
      3t2e6 3eqtr4i breqtri log2ublem1 ) UAEUBQZRSRBUCZTQZUDUEQZTQZUFYLUGQZTQZU
      HQZBUIZRATQZUAGUBQZYRBUIZRSRGTQZUDUEQZTQZUFGUGQZTQZRCTQZRDTQZHYSUJUKUOYKY
      RBUOUAEULUOYLYKUKZUMYLUNUKZYRUJUKZUUJUUKUOYLEUPUQUUKRUJUKYQURUKUULUSUUKYO
      YPUUKSURUKZYNURUKZYOURUKUTUUKYMUNUKZUUNRUNUKZUUKUUOVARYLVBVCYMVDVGSYNVEVF
      UFURUKZUUKYPURUKVQUFYLVHVCVIRYQVJVFZVGVKVLVAUUEUUFSUUDUTUUCUNUKUUDURUKRGV
      AKVMUUCVDVNZVOUUQGUNUKZUUFURUKVQKUFGVHVPZVOZRAVAIVMRCVAJVMUUBUAGUDVRQZUBQ
      ZYRBUIZRUUGUHQZUEQZYSUVFUEQUUBUVGVSUOYRUVFBUAGGUAVTWAZUKUOGUNUVHKWBWCWDUO
      YLUUAUKZUMUUKYRWJUKUVIUUKUOYLGUPUQUUKYRUURWEVGYLGVSZYQUUGRUHUVJYOUUEYPUUF
      TUVJYNUUDSTUVJYMUUCUDUEYLGRTWFWGWHYLGUFUGWFWIWHWKVLUVEYSUVFUEUVDYKYRBUVCE
      UAUBLWLWMWNWORACUEQZTQYTUUHUEQUUIRACWPAIWQCJWQZWRUVKDRTMWLWSSWTUGQZXNWTTQ
      ZTQZRTQZUVPUUGUUHTQZXAUVPUVORUVOUVMUVNUUMWTUNUKUVMURUKUTWTXBXCSWTVHVPZXNW
      TXDXBVOZVOXEUSXFXGRUVOTQRUUGCTQZTQUVPUVQUVOUVTRTSUFSUGQZUVNTQZTQZSUUFUUDC
      TQZTQZTQZUVOUVTUWBUWESTUWBUUFUVNUFFUGQZTQZTQZUWEUWBUVNUWATQUVNUUFUWGTQZTQ
      UWIUWAUVNUWAUUQSUNUKZUWAURUKVQSUTXCZUFSVHVPXHZUVNUVSXHZXIUWAUWJUVNTUWAUFG
      FUEQZUGQZUWJSUWOUFUGFGUEQSUWOOFGFNWQGKWQXJWSWLUFWJUKUUTFUNUKZUWPUWJVSUFVQ
      XHKNUFGFXKXLWOWLUVNUUFUWGUWNUUFUVAXHZUWGUUQUWQUWGURUKVQNUFFVHVPXHXMXOUWHU
      WDUUFTPWLWOWLUVOSUWATQZUVNTQUWCUVMUWSUVNTUVMSXPUDUEQZUGQZUWASTQZUWSWTUWTS
      UGXQWLUXASXPUGQZSTQZUXBSWJUKZXPUNUKUXAUXDVSXRXSSXPXTVPUXCUWASTSRSTQZUGQZS
      RUGQZSUGQZUXCUWAUXEUUPUWKUXGUXIVSXRVAUWLSRSYAXLUXFXPSUGUXFSRTQXPRSWPXRXIY
      GWOWLUXHUFSUGYBWNYCWNWOUWASUWMXRXIXOWNSUWAUVNXRUWMUWNYDWOUVTSUUFTQZUUDTQZ
      CTQUXJUWDTQUWFUUGUXKCTSUUDUUFXRUUDUUSXHZUWRYEWNUXJUUDCSUUFXRUWRYFUXLUVLYD
      SUUFUWDXRUWRUUDCUXLUVLYFYDXOYHWLUVORUVMUVNUVMUVRXHUWNYFWPXIUUGRCUUGUVBXHW
      PUVLXMYHYIYJ $.
  $}

  ${
    $( Lemma for ~ log2ub .  In decimal, this is a proof that the first four
       terms of the series for ` log 2 ` is less than
       ` 5 3 0 5 6 / 7 6 5 4 5 ` .  (Contributed by Mario Carneiro,
       17-Apr-2015.)  (Proof shortened by AV, 15-Sep-2021.) $)
    log2ublem3 $p |- ( ( ( 3 ^ 7 ) x. ( 5 x. 7 ) ) x. sum_ n e. ( 0 ... 3 )
      ( 2 / ( ( 3 x. ( ( 2 x. n ) + 1 ) ) x. ( 9 ^ n ) ) ) ) <_
       ; ; ; ; 5 3 0 5 6 $=
      ( c3 c7 co c5 cmul cc0 c2 c1 caddc c9 c6 cdc c4 2nn0 5nn0 deccl 1nn0 eqid
      3nn0 cexp cfz cv cdiv csu c8 cmin 0le0 c0 risefall0lem sumeq1i sum0 eqtri
      cle oveq2i cc wcel cn0 3cn 7nn0 expcl mp2an 5cn 7cn mulcli mul01i 3brtr4i
      2cn 0nn0 nn0cni addid2i addid1i mulid2i oveq1i 0p1e1 nn0mulcli 9nn0 2p1e3
      8nn0 1p1e2 wceq 9cn exp1 ax-mp 9t9e81 numexpp1 8cn 9t8e72 mulcomli 7t5e35
      decmul1 7p3e10 addcomli ax-1cn 3p1e4 4nn0 7t3e21 4cn 4p1e5 decaddi decmac
      dec0h 3t2e6 oveq12i 5t2e10 decsuc decma2c 9t3e27 7p4e11 decaddci decmul1c
      6p1e7 9t5e45 decmul2c 3eqtr4ri log2ublem2 1m1e0 6nn0 9p5e14 decadd 5p5e10
      5p1e6 sqvali 3t3e9 mulassi 3eqtr2i mul12i 6p3e9 df-3 mulid1i eqtr4i 2m1e1
      decaddc2 3eqtri 6p6e12 1p2e3 9t7e63 df-5 2t2e4 3m1e2 mulcomi exp0 3eqtr4i
      5p3e8 df-7 00id 6cn 6t2e12 dec10p 8t2e16 breqtri ) BCUADZECFDZFDZGBUBDHBH
      AUCZFDIJDFDKUUOUADFDUDDZAUEFDHHLMZEMZHMZUFMZFDEBMZGMZEMZLMUNUUSBMZAEUUTHG
      BUUQNMZLMZGMZALBMZUVDIIHHEMZEMZIMZEMZAKNMZEMZUVGGHIGAUVLUVLGIUGDZBGGGUUNG
      UVOUBDZUUPAUEZFDZHGFDZUNUHUVRUUNGFDGUVQGUUNFUVQUIUUPAUEGUVPUIUUPAUJUKUUPA
      ULUMUOUUNUULUUMBUPUQCURUQUULUPUQUSUTBCVAVBECVCVDVEZVEVFUMHVHVFZVGVIUVKEUV
      JIUVIEHEOPQZPQZRQZPQZVIUVOSUVLUVLUWEVJZVKTBUSVLIUVLFDUVLUVSIJDZUVLFDUUMKB
      UADZFDUVLUWFVMUWGIUVLFUWGGIJDZIUVSGIJUWAVNVOUMVNCHMZKUVKEUUMBIMZUWHECPUTV
      PZCHUTOQVQKUWJKMHBVQOVRUFIUWJKKKHUADZVQVSRKUFIMZIHVQRVTKIUADZKFDKKFDZUWNU
      WOKKFKUPUQZUWOKWAWBKWCWDZVNWEUMWFVQKUFUWJWBWGWHWIKWBVMWKWFPBITRQCHBIUUMUV
      JICUWJUWKUTOTRUWJSUWKSUWLRUTBEIGCUVIEBUUMBCJDTPRVICEBEMZVDVCWJWIZCBIGMZVD
      USWLWMUTPTBCFDZIBJDZJDUXBNJDUVIUXCNUXBJBINUSWNWOWMZUOHIEUXBNORWPCBHIMVDUS
      WQWIZNIEWRWNWSWMZWTUMUUMGJDUWSGJDUWSUUMUWSGJUWTVNUWSUWSBETPQVJVLUMXABEGIH
      CIIUUMITPVIRUWTIRXBZORRBHFDZUWIJDLIJDZCUXHLUWIIJXCVOXDXLUMIGIEHFDZRVIVOXE
      XFXAXGBEUWKEKNUUMVQTPUWTPWPHCIBBKFDZNOUTWPKBHCMWBUSXHWIZVRRXIXJKENEMWBVCX
      MWIXKXNXOXPUWEUVMEKNVQWPQZPQRXQUVKEUVMEUVFUVLUVNUWDPUXMPUVLSUVNSUVEELUVKU
      VMJDUUQNHLOXRQZWPQZPYBUVJIKNUVEEUVKUVMUWCRVQWPUVKSUVMSUVIENUUQUVJKUWBPVQU
      VJSHELUVIOPYBUVISXFWPKEINMWBVCXSWMXJUXFXTXFYAYMOVRUUMUWMFDUUMBUXKFDZFDZBU
      VNFDZHIFDZIJDZUVNFDUWMUXPUUMFUWMUWPBBFDZKFDUXPKWBYCUYAKKFYDVNBBKUSUSWBYEY
      FUOUXQBUUMUXKFDZFDUXRUUMBUXKUVTUSBKUSWBVEYGUYBUVNBFHCUVMEUUMHNMZUXKUWLOUT
      UXLPHNOWPQBEHNHKNIUUMUYCTPOWPUWTUYCSOWPRUXHHIJDZJDLBJDKUXHLUYDBJXCVRXDYHU
      MIGNUXJNRVIWPXENWRVKWTXABEUYCECBUUMUTTPUWTPTHINUXBBORTUXEUXDWTUWTXKXNUOUM
      BUXTUVNFBUYDUXTYIUXSHIJHVHYJVNYKVNYNXPUVFGUVELUXOXRQZVIQLBXRTQOYLUVFGLBUU
      SBUVGUVHUYEVIXRTUVGSUVHSUVELHUURUVFLUXOXRXRUVFSUUQNEUVEUXNWPWSUVESXFOYOXJ
      BUSVKZXTRYPUUMUWOFDUUMKFDZEUVHFDZHHFDZIJDZUVHFDUWOKUUMFUWRUOUYGECKFDZFDUY
      HECKVCVDWBYEUYKUVHEFKCUVHWBVDYQWIUOUMEUYJUVHFENIJDZUYJYRUYINIJYSVNZYKVNYN
      XPUUSBUURHUUQEUXNPQZOQZTQPTYTUUSBUFUVDEUYOTPUVDSEBUFVCUSUUDWMWTVIUYFCEFDZ
      IFDUYPUUMKGUADZFDHBFDZIJDZEFDUYPCEVDVCVEYJUUMUYPUYQIFECVCVDUUAUWQUYQIWAWB
      KUUBWDXDUYSCEFUYSUXICUYRLIJBHLUSVHXCWIVNUUEYKVNUUCXPUUSUFUVCLHIUUTOUYOVSU
      UTSXRRUURHGIHUVBEGUUSIUYNOVIRUUSSUXGOPVIUUQEGGHUVAGIUURGGJDZUXNPVIVIUURSU
      YTGGGMUUFGVIXBUMOVIRHLGIHEBIUUQUWIOXRVIRUUQSUWIIGIMVOUXGUMOTRUYIUWIJDUYLE
      UYINUWIIJYSVOXDWSUMIHBHLFDROVRLHIHMUUGVHUUHWIXFXGHEFDZGJDUXAGJDUXAVUAUXAG
      JEHUXAVCVHXEWIVNGUUIUMXGUYJUYLEGEMUYMWSEPXBYNXGUFHILMWGVHUUJWIXNUUK $.

    $( ` log 2 ` is less than ` 2 5 3 / 3 6 5 ` .  If written in decimal, this
       is because ` log 2 = ` 0.693147... is less than 253/365 = 0.693151... ,
       so this is a very tight bound, at five decimal places.  (Contributed by
       Mario Carneiro, 7-Apr-2015.)  (Proof shortened by AV, 16-Sep-2021.) $)
    log2ub $p |- ( log ` 2 ) < ( ; ; 2 5 3 / ; ; 3 6 5 ) $=
      ( c2 cc0 c3 co cmul c1 caddc c4 c5 c6 wcel 2nn0 3nn0 5nn0 deccl 1nn0 eqid
      cdc c7 7nn0 vn clog cfv cfz cv c9 cexp cdiv csu cle wbr clt cmin cicc w3a
      cr 4m1e3 oveq2i sumeq1i cn0 4nn0 ax-mp nnmulcli 9nn nnexpcl mp2an nndivre
      cn mpbi wtru wa 3nn sylancr 0nn0 6p1e7 decsuc 5nn 7nn nnrei declt 7cn 5cn
      7t5e35 mulcomli c8 4cn 2cn 4t2e8 oveq1i eqtri 9cn 3brtr4i wb nngt0i nncni
      6nn0 3cn mulcomi 3eqtr3i wceq mp3an mulcli nn0rei pm3.2i 8nn0 9nn0 ax-1cn
      mulid1i 5p1e6 addcomli decaddi decaddci nn0cni 1p2e3 7t3e21 decmac mul02i
      addid1i 6cn dec0h 7t7e49 4p1e5 5t3e15 5p2e7 decmul1c decmul2c 3t2e6 2t2e4
      addid2i oveq12i 4p3e7 7t2e14 8cn decadd decma2c decmul1 nn0mulcli mulassi
      1p1e2 lelttri eqeltrri 0re 3re 4nn 1nn numnncl elicc2i simp3i crp relogcl
      log2tlbnd 2rp fzfid 2re elfznn0 adantl nn0mulcl nn0p1nn nnmulcld fsumrecl
      syl nnmulcl trud lesubadd2i log2ublem3 8p1e9 9t4e36 ltleii lemul2i mul32i
      6nn 5lt6 df-8 expmul eqtr3i expp1 sq3 log2ublem1 readdcli lemuldiv2 1lt10
      6lt7 decltc 9p4e13 5p3e8 3p1e4 6p5e11 9p7e16 00id 3t3e9 decma 3exp3 4p4e8
      cc 8p4e12 numexp2x decrmanc 9t3e27 numexpp1 7p3e10 decaddc2 5t2e10 7p6e13
      6p2e8 2p2e4 8t2e16 6p4e10 decaddci2 8t5e40 8t3e24 2p1e3 decrmac nn0expcli
      7p4e11 mulid2i ltmul1ii 3brtr3i decnncl lt2mul2div mp4an ) AUBUCZBCUDDZAC
[encoded data, 4800 characters]
      VVMVVPVGVFWXPVUBVHKVUCUPKWXRWXQUYTVUBVGVFZYTVFUYAUYQVUCVUTVXMWXSYTVF $.
  $}

  $( ` log 2 ` is less than ` 1 ` .  This is just a weaker form of ~ log2ub
     when no tight upper bound is required.  (Contributed by Thierry Arnoux,
     27-Sep-2017.) $)
  log2le1 $p |- ( log ` 2 ) < 1 $=
    ( c2 clog c5 cdc c3 c6 cdiv co clt wbr c1 2nn0 5nn0 3nn0 6nn0 decltc nn0rei
    deccl cc0 wcel cfv log2ub 3lt10 5lt10 2lt3 6nn decnncl 0nn0 declti ltdiv1ii
    10pos recni 0re gtneii dividi breqtri crp cr 2rp relogcl ax-mp redivcli 1re
    mpbi lttri mp2an ) ABUAZACDZEDZEFDZCDZGHZIJVLKIJVGKIJUBVLVKVKGHZKIVIVKIJVLV
    MIJVHVJECACLMRZEFNORZNMUCAECFLNMOUDUEPPVIVKVKVIVHEVNNRQZVKVJCVOMRQZVQVJCSEF
    NUFUGMUHUKUIZUJVDVKVKVQULSVKUMVRUNZUOUPVGVLKAUQTVGURTUSAUTVAVIVKVPVQVSVBVCV
    EVF $.

  ${
    $d f k n K $.  $d f k n N $.
    birthday.s $e |- S = { f | f : ( 1 ... K ) --> ( 1 ... N ) } $.
    birthday.t $e |- T = { f | f : ( 1 ... K ) -1-1-> ( 1 ... N ) } $.
    $( Lemma for ~ birthday .  (Contributed by Mario Carneiro, 17-Apr-2015.) $)
    birthdaylem1 $p |- ( T C_ S /\ S e. Fin /\ ( N e. NN -> S =/= (/) ) ) $=
      ( cfn wcel c0 wne c1 cfz co cab wceq fzfi mp2an sylbi ovex wss cn wf1 f1f
      wi cv wf ss2abi 3sstr4i cmap mapvalg eqtr4i mapfi eqeltri elfz1end eqeq1i
      ne0i map0 simplbi necon3i syl 3pm3.2i ) BAUAAHIEUBIZAJKZUELDMNZLEMNZCUFZU
      CZCOVEVFVGUGZCOZBAVHVICVEVFVGUDUHGFUIAVFVEUJNZHAVJVKFVFHIZVEHIZVKVJPLEQZL
      DQZVFVEHHCUKRULZVLVMVKHIVNVOVFVEUMRUNVCVFJKZVDVCEVFIVQEUOVFEUQSAJVFJAJPVK
      JPZVFJPZAVKJVPUPVRVSVEJKVFVELEMTLDMTURUSSUTVAVB $.

    $( For general ` N ` and ` K ` , count the fraction of injective functions
       from ` 1 ... K ` to ` 1 ... N ` .  (Contributed by Mario Carneiro,
       7-May-2015.) $)
    birthdaylem2 $p |- ( ( N e. NN /\ K e. ( 0 ... N ) ) ->
      ( ( # ` T ) / ( # ` S ) ) =
      ( exp ` sum_ k e. ( 0 ... ( K - 1 ) ) ( log ` ( 1 - ( k / N ) ) ) ) ) $=
      ( vn wcel cc0 cfz co cfv cdiv cmin c1 ce wceq syl cn chash caddc clog csu
      wa cv cmul cfa cbc wf1 cab fveq2i cfn fzfi hashf1 mp2an eqtri cn0 elfznn0
      adantl hashfz1 fveq2d nnnn0 adantr oveq12d syl5eq faccl fznn0sub divcan2d
      nncnd nnne0d divcld bcval2 divdiv1d eqtr4d oveq2d cc elfznn nnrp relogcld
      fzfid recnd fsumcl efsub syl2anc clt wbr c0 nn0red ltp1d fzdisj fznn0sub2
      cin cun cle elfzle2 cuz cz simpr nnuz syl6eleq nnz ad2antrr elfz5 fzsplit
      wb mpbird syl6eq uneq1d uncom un0 oveq1d 1e0p1 syl6eqr eqtr2d elnn0 sylib
      fz10 wo mpjaodan fsumsplit nn0p1nn elfzuz eluznn syl2an pncan2d wne eflog
      logfac eqtr3d 3eqtr4d eqtrd cexp cmap syl3anc nn0cnd crp ax-1cn cen nnne0
      mapvalg eqtr4i hashmap nncn elfzelz explog mulcld relogdiv syl2anr syldan
      sumeq2dv nn0zd peano2zd rpdivcld oveq1 fsumrev 1cnd subsubd subcl sylancl
      wf subidd nncand divsubdird dividd sumeq12rdv fsumsub fsumconst 1zzd fzen
      addcom sylancr pncan3d breqtrd hasheni 3eqtr3rd 3eqtr2d ) FUAJZEKFLMZJZUF
      ZBUBNZAUBNZOMFEPMZQUCMZFLMZIUGZUDNZIUEZRNZEFUDNZUHMZRNZOMZUWJUWMPMZRNZKEQ
      PMZLMZQDUGZFOMZPMZUDNZDUEZRNUWBUWCUWKUWDUWNOUWBUWCEUINZFEUJMZUHMZUWKUWBUW
      CQELMZUBNZUINZQFLMZUBNZUXIUJMZUHMZUXGUWCUXHUXKCUGZUKCULZUBNZUXNBUXPUBHUMU
      XHUNJZUXKUNJZUXQUXNSQEUOZQFUOZUXHUXKCUPUQURUWBUXJUXEUXMUXFUHUWBUXIEUIUWBE
      USJZUXIESUWAUYBUVSEFUTVAZEVBTZVCUWBUXLFUXIEUJUVSUXLFSZUWAUVSFUSJZUYEFVDZF
      VBTVEZUYDVFVFVGUWBUXEFUINZUWEUINZOMZUXEOMZUHMUYKUXGUWKUWBUYKUXEUWBUYIUYJU
      WBUYIUWBUYFUYIUAJUVSUYFUWAUYGVEZFVHTZVKZUWBUYJUWBUWEUSJZUYJUAJUWAUYPUVSEK
      FVIVAZUWEVHTZVKZUWBUYJUYRVLZVMUWBUXEUWBUYBUXEUAJUYCEVHTZVKZUWBUXEVUAVLZVJ
      UWBUXFUYLUXEUHUWBUXFUYIUYJUXEUHMOMZUYLUWAUXFVUDSUVSEFVNVAUWBUYIUYJUXEUYOU
      YSVUBUYTVUCVOVPVQUWBUXKUWIIUEZQUWELMZUWIIUEZPMZRNZVUERNZVUGRNZOMZUWKUYKUW
      BVUEVRJVUGVRJVUIVULSUWBUXKUWIIUWBQFWBZUWBUWHUXKJZUFUWHUAJZUWIVRJZVUNVUOUW
      BUWHFVSVAVUOUWIVUOUWHUWHVTZWAWCZTZWDUWBVUFUWIIUWBQUWEWBUWBUWHVUFJZUFVUOVU
      PVUTVUOUWBUWHUWEVSVAVURTWDZVUEVUGWEWFUWBUWJVUHRUWBVUHVUGUWJUCMZVUGPMUWJUW
      BVUEVVBVUGPUWBVUFUWGUWIUXKIUWBUWEUWFWGWHVUFUWGWNWISUWBUWEUWBUWEUYQWJWKQUW
      EUWFFWLTUWBUWEUAJZUXKVUFUWGWOZSZUWEKSZUWBVVCUFZUWEUXKJZVVEVVGVVHUWEFWPWHZ
      UWBVVIVVCUWBUWEUVTJZVVIUWAVVJUVSEFWMVAUWEKFWQTVEVVGUWEQWRNZJFWSJZVVHVVIXG
      VVGUWEUAVVKUWBVVCWTXAXBUVSVVLUWAVVCFXCZXDUWEQFXEWFXHUWEQFXFTUWBVVFUFZVVDW
      IUWGWOZUXKVVNVUFWIUWGVVNVUFQKLMWIVVNUWEKQLUWBVVFWTZVQXSXIXJVVNVVOUWGUXKVV
      OUWGWIWOUWGWIUWGXKUWGXLURVVNUWFQFLVVNUWFKQUCMQVVNUWEKQUCVVPXMXNXOXMVGXPUW
      BUYPVVCVVFXTUYQUWEXQXRYAVUMVUSYBXMUWBVUGUWJVVAUWBUWGUWIIUWBUWFFWBZUWBUWHU
      WGJZUFZVUOVUPUWBUWFUAJZUWHUWFWRNJVUOVVRUWBUYPVVTUYQUWEYCTUWHUWFFYDUWHUWFY
      EYFZVURTZWDZYGXPVCUWBUYIVUJUYJVUKOUWBUYIUDNZRNZUYIVUJUWBUYIVRJUYIKYHVWEUY
      ISUYOUWBUYIUYNVLUYIYIWFUWBVWDVUERUWBUYFVWDVUESUYMIFYJTVCYKUWBUYJUDNZRNZUY
      JVUKUWBUYJVRJUYJKYHVWGUYJSUYSUYTUYJYIWFUWBVWFVUGRUWBUYPVWFVUGSUYQIUWEYJTV
      CYKVFYLYLYMUWBUWDFEYNMZUWNUWBUWDUXLUXIYNMZVWHUWDUXKUXHYOMZUBNZVWIAVWJUBAU
      XHUXKUXOUVBCULZVWJGUXSUXRVWJVWLSUYAUXTUXKUXHUNUNCUUBUQUUCUMUXSUXRVWKVWISU
      YAUXTUXKUXHUUDUQURUWBUXLFUXIEYNUYHUYDVFVGUWBFVRJZFKYHZEWSJZVWHUWNSUVSVWMU
      WAFUUEVEZUVSVWNUWAFUUAVEZUWAVWOUVSEKFUUFVAZFEUUGYPYMVFUWBUWJVRJUWMVRJUWQU
      WOSVWCUWBEUWLUWBEUYCYQZUWBUWLUWBFUVSFYRJZUWAFVTVEZWAWCZUUHUWJUWMWEWFUWBUW
      PUXDRUWBUWGUWHFOMZUDNZIUEZUWGUWIUWLPMZIUEZUXDUWPUWBUWGVXDVXFIUWBVVRVUOVXD
      VXFSZVWAVUOUWHYRJZVWTVXHUWBVUQVXAUWHFUUIUUJUUKUULUWBVXEFFPMZFUWFPMZLMZFUW
      TPMZFOMZUDNZDUEUXDUWBVXDVXOIDFUWFFUVSVVLUWAVVMVEZUWBUWEUWBUWEUYQUUMZUUNVX
      PVVSVXDVVSVXCVVSUWHFVVSVUOVXIVWAVUQTUWBVWTVVRVXAVEUUOWAWCUWHVXMSVXCVXNUDU
      WHVXMFOUUPVCUUQUWBVXLUWSVXOUXCDUWBVXJKVXKUWRLUWBFVWPUVCUWBFFUWRPMZPMVXKUW
      RUWBVXRUWFFPUWBFEQVWPVWSUWBUURUUSVQUWBFUWRVWPUWBEVRJQVRJZUWRVRJVWSYSEQUUT
      UVAUVDYKVFUWBUWTUWSJZUFZVXNUXBUDVYAVXNFFOMZUXAPMUXBVYAFUWTFUWBVWMVXTVWPVE
      ZVYAUWTVXTUWTUSJUWBUWTUWRUTVAYQVYCUWBVWNVXTVWQVEZUVEVYAVYBQUXAPVYAFVYCVYD
      UVFXMYMVCUVGYMUWBVXGUWJUWGUWLIUEZPMUWPUWBUWGUWIUWLIVVQVWBUWBUWLVRJZVVRVXB
      VEUVHUWBVYEUWMUWJPUWBVYEUWGUBNZUWLUHMZUWMUWBUWGUNJVYFVYEVYHSVVQVXBUWGUWLI
      UVIWFUWBVYGEUWLUHUWBUXIVYGEUWBUXHUWGYTWHUXIVYGSUWBUXHQUWEUCMZEUWEUCMZLMZU
      WGYTUWBQWSJVWOUWEWSJUXHVYKYTWHUWBUVJVWRVXQUWEQEUVKYPUWBVYIUWFVYJFLUWBVXSU
      WEVRJVYIUWFSYSUWBUWEUYQYQQUWEUVLUVMUWBEFVWSVWPUVNVFUVOUXHUWGUVPTUYDYKXMYM
      VQYMUVQVCUVR $.

    $( For general ` N ` and ` K ` , upper-bound the fraction of injective
       functions from ` 1 ... K ` to ` 1 ... N ` .  (Contributed by Mario
       Carneiro, 17-Apr-2015.) $)
    birthdaylem3 $p |- ( ( K e. NN0 /\ N e. NN ) -> ( ( # ` T ) / ( # ` S ) )
        <_
      ( exp ` -u ( ( ( ( K ^ 2 ) - K ) / 2 ) / N ) ) ) $=
      ( vk wcel cfv cdiv co cle wbr clt cc0 c0 c1 wb cr cn0 cn wa chash c2 cexp
      cmin cneg ce cfz cv wf1 cab wceq wne cdom wn wex abn0 ovex bitr4i hashfz1
      brdom nnnn0 syl breqan12d fzfid hashdom syl2anc nn0re nnre syl2an 3bitr3d
      cfn lenlt syl5bb necon4abid biimpar syl5eq fveq2d hash0 syl6eq oveq1d wss
      wi birthdaylem1 simp3i ad2antlr simp2i hashnncl ax-mp sylibr nncnd nnne0d
      div0d adantr resqcld resubcld rehalfcld nndivre sylancom renegcld rpefcld
      eqtrd rpge0d eqbrtrd clog csu simplr simpr cz simpll nn0uz syl6eleq elfz5
      cuz nnz mpbird birthdaylem2 elfznn0 adantl nn0red peano2rem nnred elfzle2
      crp cmul ltm1d ltletrd lelttrd mulid1d breqtrrd nngt0d ltdivmul syl112anc
      1red nndivred mpbid recnd efle 1re difrp sylancl relogcld divge0 syl22anc
      elfzle1 eflegeo reefcld efgt0 rpregt0d syl21anc reeflogd cc efneg 3brtr4d
      lerec2 fsumle fsumneg fsumdivc arisum2 eqtr3d breqtrd fsumrecl ltlecasei
      nnne0 negeqd ) DUAIZEUBIZUCZBUDJZAUDJZKLZDUEUFLZDUGLZUEKLZEKLZUHZUIJZMNED
      UVJEDONZUCZUVMPUVSMUWAUVMPUVLKLPUWAUVKPUVLKUWAUVKQUDJPUWABQUDUWABRDUJLZRE
      UJLZCUKULZCUMZQGUVJUWEQUNUVTUVJUVTUWEQUWEQUOZUWBUWCUPNZUVJUVTUQZUWFUWDCUR
      UWGUWDCUSUWBUWCCREUJUTVCVAUVJUWBUDJZUWCUDJZMNZDEMNZUWGUWHUVHUVIUWIDUWJEMD
      VBUVIEUAIUWJEUNEVDEVBVEVFUVJUWBVNIUWCVNIUWKUWGSUVJRDVGUVJREVGUWBUWCVNVHVI
      UVHDTIZETIZUWLUWHSUVIDVJZEVKZDEVOVLVMVPVQVRVSVTWAWBWCUWAUVLUWAUVLUWAAQUOZ
      UVLUBIZUVIUWQUVHUVTBAWDZAVNIZUVIUWQWEZABCDEFGWFZWGWHUWTUWRUWQSUWSUWTUXAUX
      BWIAWJWKWLZWMUWAUVLUXCWNWOXDUWAUVSUWAUVRUVJUVRTIZUVTUVJUVQUVHUVIUVPTIUVQT
      IUVJUVOUVJUVNDUVJDUVHUWMUVIUWOWPZWQUXEWRWSUVPEWTXAXBZWPXCXEXFUVJUWLUCZUVM
      PDRUGLZUJLZRHUKZEKLZUGLZXGJZHXHZUIJZUVSMUXGUVIDPEUJLIZUVMUXOUNUVHUVIUWLXI
      ZUXGUXPUWLUVJUWLXJZUXGDPXPJZIEXKIZUXPUWLSUXGDUAUXSUVHUVIUWLXLZXMXNUVIUXTU
      VHUWLEXQWHDPEXOVIXRABCHDEFGXSVIUXGUXNUVRMNZUXOUVSMNZUXGUXNUXIUXKUHZHXHZUV
      RMUXGUXIUXMUYDHUXGPUXHVGZUXGUXJUXIIZUCZUXLUYHUXKRONZUXLYFIZUYHUYIUXJERYGL
      ZONZUYHUXJEUYKOUYHUXJUXHEUYHUXJUYGUXJUAIUXGUXJUXHXTYAYBZUXGUXHTIZUYGUXGUW
      MUYNUXGDUYAYBZDYCVEZWPUYHEUXGUVIUYGUXQWPZYDZUYGUXJUXHMNUXGUXJPUXHYEYAUXGU
      XHEONUYGUXGUXHDEUYPUYOUXGEUXQYDUXGDUYOYHUXRYIWPYJUYHEUYHEUYQWMYKYLUYHUXJT
      IZRTIZUWNPEONZUYIUYLSUYMUYHYPUYRUYHEUYQYMZUXJREYNYOXRZUYHUXKTIZUYTUYIUYJS
      UYHUXJEUYMUYQYQZUUAUXKRUUBUUCYRZUUDZUYHUXKVUEXBZUYHUXMUYDMNZUXMUIJZUYDUIJ
      ZMNZUYHUXLRUXKUIJZKLZVUJVUKMUYHVUMRUXLKLMNZUXLVUNMNZUYHUXKVUEUYHUYSPUXJMN
      ZUWNVUAPUXKMNUYMUYGVUQUXGUXJPUXHUUGYAUYRVUBUXJEUUEUUFVUCUUHUYHVUMTIPVUMON
      ZUXLTIPUXLONUCVUOVUPSUYHUXKVUEUUIUYHVUDVURVUEUXKUUJVEUYHUXLVUFUUKVUMUXLUU
      QUULYRUYHUXLVUFUUMUYHUXKUUNIVUKVUNUNUYHUXKVUEYSZUXKUUOVEUUPUYHUXMTIUYDTIV
      UIVULSVUGVUHUXMUYDYTVIXRUURUXGUYEUXIUXKHXHZUHUVRUXGUXIUXKHUYFVUSUUSUXGVUT
      UVQUXGUXIUXJHXHZEKLVUTUVQUXGUXIUXJEHUYFUXGEUXQWMUYHUXJUYMYSUVIEPUOUVHUWLE
      UVFWHUUTUXGVVAUVPEKUXGUVHVVAUVPUNUYAHDUVAVEWCUVBUVGXDUVCUXGUXNTIUXDUYBUYC
      SUXGUXIUXMHUYFVUGUVDUVJUXDUWLUXFWPUXNUVRYTVIYRXFUVIUWNUVHUWPYAUXEUVE $.

    birthday.k $e |- K = ; 2 3 $.
    birthday.n $e |- N = ; ; 3 6 5 $.
    $( The Birthday Problem.  There is a more than even chance that out of 23
       people in a room, at least two of them have the same birthday.
       Mathematically, this is asserting that for ` K = 2 3 ` and
       ` N = 3 6 5 ` , fewer than half of the set of all functions from
       ` 1 ... K ` to ` 1 ... N ` are injective.  This is Metamath 100 proof
       #93.  (Contributed by Mario Carneiro, 17-Apr-2015.) $)
    birthday $p |- ( ( # ` T ) / ( # ` S ) ) < ( 1 / 2 ) $=
      ( cdiv co c2 c1 clt wcel c3 cdc 2nn0 eqtri cr chash cfv cexp cmin cneg ce
      cle wbr cn0 cn 3nn0 deccl eqeltri c6 6nn0 decnncl birthdaylem3 mp2an clog
      5nn log2ub cmul nn0cni sqvali mulid1i eqcomi oveq12i ax-1cn subdii eqtr4i
      oveq1i subcli 2cn 2ne0 divassi 1nn0 caddc 2p1e3 eqid decsuc pncan3oi wceq
      c5 cc0 0nn0 addid1i dec0h decmul2c divmuli mpbir decaddi breqtrri crp 2rp
      3p2e5 relogcl ax-mp 5nn0 nn0rei nndivre mpbi wb renegcli eflt recni efneg
      ltnegi cc reeflog oveq2i breqtri cfn wss c0 wi birthdaylem1 simp2i simp1i
      wne ssfi hashcl simp3i hashnncl reefcl halfre lelttri ) BUAUBZAUAUBZJKZDL
      UCKZDUDKZLJKZEJKZUEZUFUBZUGUHZYOMLJKZNUHYIYQNUHDUIOEUJOZYPDLPQZUIHLPRUKUL
      UMZEPUNQZWCQZUJIUUAWCPUNUKUOULUTUPUMZABCDEFGUQURYOLUSUBZUEZUFUBZYQNYNUUEN
      UHZYOUUFNUHZUUDYMNUHUUGUUDLWCQZPQZUUBJKYMNVAYLUUJEUUBJYLDDMUDKZVBKZLJKZUU
      JYKUULLJYKDDVBKZDMVBKZUDKUULYJUUNDUUOUDDDYTVCZVDUUODDUUPVEZVFVGDDMUUPUUPV
      HVIVJVKUUMDUUKLJKZVBKUUJDUUKLUUPDMUUPVHVLVMVNVOMMUUIPDLUURYTVPVPUURLLQZLJ
      KZMMQZUUKUUSLJUUKUUSMVQKZMUDKUUSDUVBMUDDYSUVBHLLPUUSRRVRUUSVSVTVJVKUUSMUU
      SLLRRULVCZVHWASVKUUTUVAWBLUVAVBKUUSWBMMLLLWDUVARVPVPUVAVSRWELMVBKZWDVQKLW
      DVQKLUVDLWDVQLVMVEZVKLVMWFSUVDLWDLQUVELRWGSWHUUSLUVAUVCVMUVAMMVPVPULVCVNW
      IWJSUKRLPWCUUOLRUKRUUODYSUUQHSZWOWKUVFWHSSZIVGWLUUDYMLWMOZUUDTOWNLWPWQZYL
      TOYRYMTOYLYLUUJUIUVGUUIPLWCRWRULUKULUMWSUUCYLEWTURZXGXAYNTOZUUETOUUGUUHXB
      YMUVJXCZUUDUVIXCYNUUEXDURXAUUFMUUDUFUBZJKZYQUUDXHOUUFUVNWBUUDUVIXEUUDXFWQ
      UVMLMJUVHUVMLWBWNLXIWQXJSXKYIYOYQYGTOYHUJOZYITOYGBXLOZYGUIOAXLOZBAXMZUVPU
      VRUVQYRAXNXSZXOZABCDEFGXPZXQZUVRUVQUVTUWAXRABXTURBYAWQWSUVOUVSYRUVSUUCUVR
      UVQUVTUWAYBWQUVQUVOUVSXBUWBAYCWQWJYGYHWTURUVKYOTOUVLYNYDWQYEYFUR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Areas in R^2
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c area $.

  $( Area of regions in the complex plane. $)
  carea $a class area $.

  ${
    $d s t x $.
    $( Define the area of a subset of ` RR X. RR ` .  (Contributed by Mario
       Carneiro, 21-Jun-2015.) $)
    df-area $a |- area = ( s e. { t e. ~P ( RR X. RR ) |
      ( A. x e. RR ( t " { x } ) e. ( `' vol " RR ) /\
        ( x e. RR |-> ( vol ` ( t " { x } ) ) ) e. L^1 ) } |->
        S. RR ( vol ` ( s " { x } ) ) _d x ) $.
  $}

  ${
    $d s t x y A $.  $d s x S $.
    $( The domain of the area function is the set of finitely measurable
       subsets of ` RR X. RR ` .  (Contributed by Mario Carneiro,
       21-Jun-2015.) $)
    dmarea $p |- ( A e. dom area <-> ( A C_ ( RR X. RR ) /\
       A. x e. RR ( A " { x } ) e. ( `' vol " RR ) /\
        ( x e. RR |-> ( vol ` ( A " { x } ) ) ) e. L^1 ) ) $=
      ( vt vs carea cdm wcel cv csn cima cvol ccnv cr wral cfv cmpt cibl eleq1d
      wa reex cxp cpw crab wss w3a citg itgex df-area dmmpti eleq2i wceq imaeq1
      ralbidv fveq2d mpteq2dv anbi12d elrab elpw2 anbi1i 3anass bitr4i 3bitri
      xpex ) BEFZGBCHZAHIZJZKLMJZGZAMNZAMVGKOZPZQGZSZCMMUAZUBZUCZGBVPGZBVFJZVHG
      ZAMNZAMVSKOZPZQGZSZSZBVOUDZWAWDUEZVDVQBDVQAMDHVFJKOZUFEAMWIUGACDUHUIUJVNW
      ECBVPVEBUKZVJWAVMWDWJVIVTAMWJVGVSVHVEBVFULZRUMWJVLWCQWJAMVKWBWJVGVSKWKUNU
      ORUPUQWFWGWESWHVRWGWEBVOMMTTVCURUSWGWAWDUTVAVB $.

    $( The fibers of a measurable region are finitely measurable subsets of
       ` RR ` .  (Contributed by Mario Carneiro, 21-Jun-2015.) $)
    areambl $p |- ( ( S e. dom area /\ A e. RR ) ->
      ( ( S " { A } ) e. dom vol /\ ( vol ` ( S " { A } ) ) e. RR ) ) $=
      ( vx carea cdm wcel cr wa csn cima cvol ccnv cfv wral cxp wss cmpt dmarea
      cv cibl simp2bi wceq sneq imaeq2d eleq1d rspccva sylan cc0 cpnf co wf wfn
      cicc wb volf ffn elpreima mp2b sylib ) BDEFZAGFZHBAIZJZKLGJZFZVCKEZFVCKMG
      FHZUTBCSZIZJZVDFZCGNZVAVEUTBGGOPVLCGVJKMQTFCBRUAVKVECAGVHAUBZVJVCVDVMVIVB
      BVHAUCUDUEUFUGVFUHUIUMUJZKUKKVFULVEVGUNUOVFVNKUPVFVCGKUQURUS $.

    $( A measurable region is a subset of ` RR X. RR ` .  (Contributed by Mario
       Carneiro, 21-Jun-2015.) $)
    areass $p |- ( S e. dom area -> S C_ ( RR X. RR ) ) $=
      ( vx carea cdm wcel cr cxp wss cv csn cima cvol ccnv wral cfv cmpt dmarea
      cibl simp1bi ) ACDEAFFGHABIJKZLMFKEBFNBFTLOPREBAQS $.

    $( Rewrite ~ df-area self-referentially.  (Contributed by Mario Carneiro,
       21-Jun-2015.) $)
    dfarea $p |- area = ( s e. dom area |->
      S. RR ( vol ` ( s " { x } ) ) _d x ) $=
      ( vy carea cv csn cima cvol ccnv cr wcel wral cfv cmpt cibl cxp crab wceq
      wa cpw citg cdm df-area itgex dmmpti mpteq1 ax-mp eqtr4i ) DBCEAEFZGZHIJG
      KAJLAJUJHMNOKSCJJPTQZAJBEUIGHMZUAZNZBDUBZUMNZACBUCZUOUKRUPUNRBUKUMDAJULUD
      UQUEBUOUKUMUFUGUH $.

    $( Area measurement is a function whose values are nonnegative reals.
       (Contributed by Mario Carneiro, 21-Jun-2015.) $)
    areaf $p |- area : dom area --> ( 0 [,) +oo ) $=
      ( vs vx carea cdm cc0 cpnf cico co csn cima cvol cfv citg dfarea wcel cle
      cr cv wbr wss wa areambl simprd cxp ccnv wral cmpt dmarea simp3bi itgrecl
      cibl covol simpld mblss ovolge0 3syl wceq mblvol breqtrrd itgge0 sylanbrc
      syl elrege0 fmpti ) ACDZEFGHZBQARZBRZIJZKLZMZCBANVGVEOZVKQOEVKPSVKVFOVLBQ
      VJVLVHQOUAZVIKDOZVJQOZVHVGUBZUCZVLVGQQUDTVIKUEQJOBQUFBQVJUGUKOBVGUHUIZUJV
      LBQVJVRVQVMEVIULLZVJPVMVNVIQTEVSPSVMVNVOVPUMZVIUNVIUOUPVMVNVJVSUQVTVIURVB
      USUTVKVCVAVD $.

    $( The area of a measurable region is a real number.  (Contributed by Mario
       Carneiro, 21-Jun-2015.) $)
    areacl $p |- ( S e. dom area -> ( area ` S ) e. RR ) $=
      ( carea cdm wcel cfv cc0 cpnf cico co cr ffvelrni cle wbr elrege0 simplbi
      areaf syl ) ABCZDABEZFGHIZDZSJDZRTABPKUAUBFSLMSNOQ $.

    $( The area of a measurable region is greater than or equal to zero.
       (Contributed by Mario Carneiro, 21-Jun-2015.) $)
    areage0 $p |- ( S e. dom area -> 0 <_ ( area ` S ) ) $=
      ( carea cdm wcel cfv cc0 cpnf cico cle wbr areaf ffvelrni elrege0 simprbi
      co cr syl ) ABCZDABEZFGHOZDZFSIJZRTABKLUASPDUBSMNQ $.

    $( The area of a measurable region is greater than or equal to zero.
       (Contributed by Mario Carneiro, 21-Jun-2015.) $)
    areaval $p |- ( S e. dom area ->
        ( area ` S ) = S. RR ( vol ` ( S " { x } ) ) _d x ) $=
      ( vs cr cv csn cima cvol cfv citg carea wceq wcel wa simpl imaeq1d fveq2d
      cdm itgeq2dv dfarea itgex fvmpt ) CBADCEZAEZFZGZHIZJADBUEGZHIZJKRKUCBLZAD
      UGUIUJUDDMZNZUFUHHULUCBUEUJUKOPQSACTADUIUAUB $.
  $}

  $(
    areacirc.1 @e |- S = { <. x , y >. | ( ( x e. RR /\ y e. RR ) /\
       ( ( x ^ 2 ) + ( y ^ 2 ) ) <_ ( R ^ 2 ) ) } @.
    @( The area of a circle of radius ` R ` is ` _pi x. R ^ 2 ` . @)
    areacirc @p |- ( ( R e. RR /\ 0 <_ R ) ->
        ( area ` S ) = ( _pi x. ( R ^ 2 ) ) ) @=
      ? @.
      @( [1-Mar-2015] @)
  $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  More miscellaneous converging sequences
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d r w x y z A $.  $d r t x y z B $.  $d r t x y z C $.  $d r t x y z ph $.
    $d r w z J $.  $d r w y z R $.  $d r t x z S $.
    rlimcnp.a $e |- ( ph -> A C_ ( 0 [,) +oo ) ) $.
    rlimcnp.0 $e |- ( ph -> 0 e. A ) $.
    rlimcnp.b $e |- ( ph -> B C_ RR+ ) $.
    rlimcnp.r $e |- ( ( ph /\ x e. A ) -> R e. CC ) $.
    rlimcnp.d $e |- ( ( ph /\ x e. RR+ ) -> ( x e. A <-> ( 1 / x ) e. B ) ) $.
    rlimcnp.c $e |- ( x = 0 -> R = C ) $.
    rlimcnp.s $e |- ( x = ( 1 / y ) -> R = S ) $.
    rlimcnp.j $e |- J = ( TopOpen ` CCfld ) $.
    rlimcnp.k $e |- K = ( J |`t A ) $.
    $( Relate a limit of a real-valued sequence at infinity to the continuity
       of the function ` S ( y ) = R ( 1 / y ) ` at zero.  (Contributed by
       Mario Carneiro, 1-Mar-2015.) $)
    rlimcnp $p |- ( ph -> ( ( y e. B |-> S ) ~~>r C <->
      ( x e. A |-> R ) e. ( ( K CnP J ) ` 0 ) ) ) $=
      ( cc0 vt vz vw vr cmpt crli wbr cabs cmin ccom cxp cres cmopn cfv ccnp co
      wcel cv clt wi wral crp wrex cc wf wa c1 cdiv rpreccl adantl wceq rpcnne0
      wb wne recrec syl eqcomd oveq2 eqeq2d rspcev syl2anc simpr breq1d ralbidv
      imbi1d rexxfrd adantr csn cdif cun simplr sselda adantlr cr elrp ralbidva
      ltrec1 syl2anb rpne0 recrecd eqeltrd ralrimiva eleq1 eleq1d bibi12d rspcv
      rpcn sylc mpbird rpne0d eldifsn sylanbrc cpnf cico rge0ssre cle cxr mp2an
      sseldi oveq1d fveq2d imbi12d ad2antrr bitr4d wss syl5eq nfv nffvmpt1 nfcv
      eqtrd syl6ss eqid cnmetdval rpssre cioo ssrexv ax-mp cxmt cnxmet sylancr
      eldifi ssdifssd w3a 0re pnfxr elico2 simp2bi eldifsni ne0gt0d elrpd mpbid
      syldan breq1 ralxfrd elsni subidd abs00bd rpgt0 ad2antlr eqbrtrd biantrud
      a1d ralunb syl6bbr undif1 snssd ssequn2 sylib raleqdv rexbidva bitrd nfov
      3bitrd nfbr nfim oveq1 cbvral ovresd ax-resscn 0cnd subid1d 3eqtrd absidd
      fveq2 fvmpt2 fvmptg oveq12d syl5bb rexbidv fmptd biantrurd 1red rlim3 0xr
      3bitr2d 0lt1 df-ioo df-ico xrltletr ixxss1 sseqtri ltle ralimdva reximdva
      ioorp imim1d syl5 ralimdv sylbid ralimi rlim2lt impbid xmetres2 cnfldtopn
      syl5ibr a1i metcnp2 syl3anc 3bitr4d crest metrest fveq1d eleq2d ) ACEHUEF
      UFUGZBDGUEZTUHUIUJZDDUKULZUMUNZIUOUPZUNZUQZUYETJIUOUPZUNZUQAUAURZCURZUSUG
      ZHFUIUPZUHUNZUBURZUSUGZUTZCEVAZUAVBVCZUBVBVAZDVDUYEVEZUCURZTUYGUPZUDURZUS
      UGZVUFUYEUNZTUYEUNZUYFUPZUYSUSUGZUTZUCDVAZUDVBVCZUBVBVAZVFZUYDUYKAVUDBURZ
      VUHUSUGZGFUIUPZUHUNZUYSUSUGZUTZBDVAZUDVBVCZUBVBVAVUQVURAVUCVVFUBVBAUYSVBU
      QZVFZVUCVGVUHVHUPZUYOUSUGZUYTUTZCEVAZUDVBVCZVVFAVUCVVMVMVVGAVUBVVLUAUDVVI
      VBVBVUHVBUQZVVIVBUQAVUHVIVJAUYNVBUQZVFZVGUYNVHUPZVBUQZUYNVGVVQVHUPZVKZUYN
      VVIVKZUDVBVCVVOVVRAUYNVIVJVVPVVSUYNVVPUYNVDUQUYNTVNVFZVVSUYNVKVVOVWBAUYNV
      LVJUYNVOVPVQVWAVVTUDVVQVBVUHVVQVKVVIVVSUYNVUHVVQVGVHVRVSVTWAAVWAVFZVUAVVK
      CEVWCUYPVVJUYTVWCUYNVVIUYOUSAVWAWBWCWEWDWFWGVVHVVLVVEUDVBVVHVVNVFZVVLVVDB
      DTWHZWIZVAZVVDBVWFVWEWJZVAZVVEVWDVVLVGUYOVHUPZVUHUSUGZUYTUTZCEVAZVWGAVVNV
      VLVWMVMVVGAVVNVFZVVKVWLCEVWNUYOEUQZVFZVVJVWKUYTVWPVVNUYOVBUQZVVJVWKVMZAVV
      NVWOWKAVWOVWQVVNAEVBUYOMWLZWMVVNVUHWNUQTVUHUSUGVFUYOWNUQZTUYOUSUGVFVWRVWQ
      VUHWOUYOWOVUHUYOWQWRWAWEWPWMAVWGVWMVMVVGVVNAVVDVWLBCVWJVWFEAVWOVFZVWJDUQZ
      VWJTVNVWJVWFUQVXAVXBVGVWJVHUPZEUQZVXAVXCUYOEVXAVWQVXCUYOVKVWSVWQUYOUYOXGU
      YOWSWTVPAVWOWBXAVXAVWJVBUQZVUSDUQZVGVUSVHUPZEUQZVMZBVBVAZVXBVXDVMZVXAVWQV
      XEVWSUYOVIVPZAVXJVWOAVXIBVBOXBWGVXIVXKBVWJVBVUSVWJVKZVXFVXBVXHVXDVUSVWJDX
      CVXMVXGVXCEVUSVWJVGVHVRXDXEXFXHXIZVXAVWJVXLXJVWJDTXKXLAVUSVWFUQZVFZVXHVUS
      VGVXGVHUPZVKZVXMCEVCVXPVXFVXHVXOVXFAVUSDVWEUUAVJAVXOVUSVBUQZVXIVXPVUSVXPT
      XMXNUPZWNVUSXOAVWFVXTVUSADVXTVWEKUUBWLZXSZVXPVUSVYBVXPVUSVXTUQZTVUSXPUGZV
      YAVYCVUSWNUQZVYDVUSXMUSUGZTWNUQXMXQUQVYCVYEVYDVYFUUCVMUUDUUETXMVUSUUFXRUU
      GZVPVXOVUSTVNAVUSDTUUHVJUUIUUJZOUULUUKVXPVXQVUSVXPVXSVXQVUSVKVYHVXSVUSVUS
      XGVUSWSWTVPVQVXMVXRCVXGEUYOVXGVKVWJVXQVUSUYOVXGVGVHVRVSVTWAVXMVVDVWLVMAVX
      MVUTVWKVVCUYTVUSVWJVUHUSUUMVXMVVBUYRUYSUSVXMVVAUYQUHVXMGHFUIQXTYAWCYBVJUU
      NYCYDVWDVWGVWGVVDBVWEVAZVFVWIVWDVYIVWGVVHVYIVVNVVHVVDBVWEVVHVUSVWEUQZVFZV
      VCVUTVYKVVBTUYSUSVYKVVAVYKVVAFFUIUPZTVYKGFFUIVYKVUSTVKZGFVKVYJVYMVVHVUSTU
      UOVJPVPXTAVYLTVKVVGVYJAFATDUQZGVDUQZBDVAZFVDUQZLAVYOBDNXBZVYOVYQBTDVYMGFV
      DPXDXFXHZUUPYCYJUUQVVGTUYSUSUGAVYJUYSUURUUSUUTUVBXBWGUVAVVDBVWFVWEUVCUVDV
      WDVVDBVWHDVWDVWHDVWEWJZDDVWEUVEVWDVWEDYEVYTDVKVWDTDAVYNVVGVVNLYCUVFVWEDUV
      GUVHYFUVIUVMUVJUVKWPAVUPVVFUBVBAVUOVVEUDVBVUOVUSTUYGUPZVUHUSUGZVUSUYEUNZV
      UKUYFUPZUYSUSUGZUTZBDVAAVVEVUNWUFUCBDVUIVUMBVUIBYGBVULUYSUSBVUJVUKUYFBDGV
      UFYHBUYFYIBDGTYHUVLBUSYIBUYSYIUVNUVOWUFUCYGVUFVUSVKZVUIWUBVUMWUEWUGVUGWUA
      VUHUSVUFVUSTUYGUVPWCWUGVULWUDUYSUSWUGVUJWUCVUKUYFVUFVUSUYEUWDXTWCYBUVQAWU
      FVVDBDAVXFVFZWUBVUTWUEVVCWUHWUAVUSVUHUSWUHWUAVUSUHUNZVUSWUHWUAVUSTUYFUPZV
      USTUIUPZUHUNZWUIWUHVUSTUYFDAVXFWBZAVYNVXFLWGZUVRWUHVUSVDUQTVDUQWUJWULVKAD
      VDVUSADWNVDADVXTWNKXOYKZUVSYKZWLZWUHUVTVUSTUYFUYFYLZYMWAWUHWUKVUSUHWUHVUS
      WUQUWAYAUWBWUHVUSADWNVUSWUOWLWUHVYCVYDADVXTVUSKWLVYGVPUWCYJWCWUHWUDVVBUYS
      USWUHWUDGFUYFUPZVVBWUHWUCGVUKFUYFWUHVXFVYOWUCGVKWUMNBDGVDUYEUYEYLZUWEWAWU
      HVYNVYQVUKFVKWUNAVYQVXFVYSWGZBTGFDVDUYEPWUTUWFWAUWGWUHVYOVYQWUSVVBVKNWVAG
      FUYFWURYMWAYJWCYBWPUWHUWIWDAVUEVUQABDGVDUYENWUTUWJUWKUWOAUYDVUDAUYDUYNUYO
      XPUGZUYTUTZCEVAZUAVGXMXNUPZVCZUBVBVAVUDAUBUACEHFVGAHVDUQZCEVXAVXBVYPWVGVX
      NAVYPVWOVYRWGVYOWVGBVWJDVXMGHVDQXDXFXHXBZAEVBWNMYNYKZVYSAUWLUWMAWVFVUCUBV
      BWVFWVDUAVBVCZAVUCWVEVBYEWVFWVJUTWVETXMYOUPZVBTXQUQTVGUSUGWVEWVKYEUWNUWPB
      CUBUCTVGXMXNUSUSXPYOUSBCUBUWQBCUBUWRTVGVUFUWSUWTXRUXEUXAWVDUAWVEVBYPYQAWV
      DVUBUAVBVVPWVCVUACEVVPVWOVFZUYPWVBUYTWVLUYNWNUQVWTUYPWVBUTWVLVBWNUYNYNAVV
      OVWOWKXSVVPEWNUYOAEWNYEVVOWVIWGWLUYNUYOUXBWAUXFUXCUXDUXGUXHUXIVUDUYDAVUBU
      AWNVCZUBVBVAVUCWVMUBVBVBWNYEVUCWVMUTYNVUBUAVBWNYPYQUXJAUBUACEHFWVHWVIVYSU
      XKUXOUXLAUYGDYRUNUQZUYFVDYRUNUQZVYNUYKVURVMAWVODVDYEZWVNYSWUPUYFDVDUXMYTW
      VOAYSUXPLUBUDUCUYGUYFTUYEUYHIDVDUYHYLZIRUXNZUXQUXRUXSAUYMUYJUYEATUYLUYIAJ
      UYHIUOAJIDUXTUPZUYHSAWVOWVPWVSUYHVKYSWUPUYFUYGIUYHVDDUYGYLWVRWVQUYAYTYFXT
      UYBUYCYD $.
  $}

  ${
    $d w x y z A $.  $d w x y B $.  $d w x y C $.  $d w x y ph $.  $d w y R $.
    $d x S $.
    rlimcnp2.a $e |- ( ph -> A C_ ( 0 [,) +oo ) ) $.
    rlimcnp2.0 $e |- ( ph -> 0 e. A ) $.
    rlimcnp2.b $e |- ( ph -> B C_ RR ) $.
    rlimcnp2.c $e |- ( ph -> C e. CC ) $.
    rlimcnp2.r $e |- ( ( ph /\ y e. B ) -> S e. CC ) $.
    rlimcnp2.d $e |- ( ( ph /\ y e. RR+ ) -> ( y e. B <-> ( 1 / y ) e. A ) ) $.
    rlimcnp2.s $e |- ( y = ( 1 / x ) -> S = R ) $.
    rlimcnp2.j $e |- J = ( TopOpen ` CCfld ) $.
    rlimcnp2.k $e |- K = ( J |`t A ) $.
    $( Relate a limit of a real-valued sequence at infinity to the continuity
       of the function ` S ( y ) = R ( 1 / y ) ` at zero.  (Contributed by
       Mario Carneiro, 1-Mar-2015.) $)
    rlimcnp2 $p |- ( ph -> ( ( y e. B |-> S ) ~~>r C <->
      ( x e. A |-> if ( x = 0 , C , R ) ) e. ( ( K CnP J ) ` 0 ) ) ) $=
      ( wcel vz vw cmpt crli wbr crp cin c1 cdiv cc0 wceq csb cif ccnp cfv cpnf
      cv co cico cres wss inss1 resmpt mp1i cioo cxr clt 0xr 0lt1 df-ioo df-ico
      cle xrltletr ixxss1 mp2an ioorp sseqtri sslin ax-mp eqtr4d resres 3eqtr4g
      wfn cc wf eqid fmptd ffn syl fnresdm reseq1d wrel cdm sseli sylan2 dmmptd
      frel syl6eqss relssres syl2anc 3eqtr3d breq1d 1red rlimresb cr 3bitr4d wa
      syl5ss inss2 a1i sselda rpreccld rpne0d neneqd iffalsed oveq2 wne rpcnne0
      recrec 3syl sylan9eqr eqcomd csbied ad2antrr wn wb 0re mpbid csbeq1d wral
      adantr adantl ralrimiva eleq1d rspcv sylc syl6bbr eqeq1 ifbieq2d nfcv w3a
      eqtrd mpteq2dva pnfxr elico2 sylib simp1d simp2d leloe sylancr ord syl6ib
      wo eqcom con1d imp elrpd simplr simpll rpreccl eleq1 bibi12d bitr2d elind
      eqeltrd eqeltrrd ifclda biantrud bitrd elin iftrue csbeq1 rlimcnp nfcsb1v
      nfv nfif csbeq1a cbvmpt eleq1i 3bitr2d ) ACEHUCZFUDUEZCEUFUGZHUCZFUDUEZCU
      WCUHCUQZUIURZUJUKZFBUWGGULZUMZUCZFUDUEZBDBUQZUJUKZFGUMZUCZUJJIUNURUOZTZAU
      WAUHUPUSURZUTZFUDUEUWDUWSUTZFUDUEUWBUWEAUWTUXAFUDAUWAEUTZUWSUTZUWDEUTZUWS
      UTZUWTUXAAUWAEUWSUGZUTZUWDUXFUTZUXCUXEAUXGCUXFHUCZUXHUXFEVAUXGUXIUKAEUWSV
      BCEUXFHVCVDUXFUWCVAZUXHUXIUKAUWSUFVAUXJUWSUJUPVEURZUFUJVFTUJUHVGUEUWSUXKV
      AVHVIBCUAUBUJUHUPUSVGVGVLVEVGBCUAVJBCUAVKUJUHUBUQZVMVNVOVPVQUWSUFEVRVSCUW
      CUXFHVCVDVTUWAEUWSWAUWDEUWSWAWBAUXBUWAUWSAUWAEWCZUXBUWAUKAEWDUWAWEUXMACEH
      WDUWAOUWAWFWGZEWDUWAWHWIEUWAWJWIWKAUXDUWDUWSAUWDWLZUWDWMZEVAUXDUWDUKAUWCW
      DUWDWEUXOACUWCHWDUWDUWFUWCTZAUWFETZHWDTUWCEUWFEUFVBZWNOWOZUWDWFZWGZUWCWDU
      WDWQWIAUXPUWCEACUWDUWCHWDUYAUXTWPUXSWRUWDEWSWTWKXAXBAEUHFUWAUXNMAXCZXDAUW
      CUHFUWDUYBAUWCEXEUXSMXHUYCXDXFAUWKUWDFUDACUWCUWJHAUXQXGZUWJUWIHUYDUWHFUWI
      UYDUWGUJUYDUWGUYDUWFAUWCUFUWFUWCUFVAAEUFXIXJZXKZXLZXMXNXOUYDBUWGGHUFUYGUY
      DUWMUWGUKZXGZHGUYIUWFUHUWMUIURZUKHGUKUYIUYJUWFUYHUYDUYJUHUWGUIURZUWFUWMUW
      GUHUIXPUYDUWFUFTUWFWDTUWFUJXQXGUYKUWFUKUYFUWFXRUWFXSXTYAYBQWIYBYCZUUBUUCX
      BAUWLUBDUXLUJUKZFBUXLGULZUMZUCZUWQTUWRAUBCDUWCFUYOUWJIJKLUYEAUXLDTZXGZUYM
      FUYNWDAFWDTUYQUYMNYDUYRUYMYEZXGZBUHUHUXLUIURZUIURZGULZUYNWDUYTBVUBUXLGUYT
      UXLUFTZVUBUXLUKZUYTUXLUYRUXLXETZUYSUYRVUFUJUXLVLUEZUXLUPVGUEZUYRUXLUJUPUS
      URZTZVUFVUGVUHUUAZADVUIUXLKXKUJXETZUPVFTVUJVUKYFYGUUDUJUPUXLUUEVOUUFZUUGZ
      YKUYRUYSUJUXLVGUEZUYRVUOUYMUYRVUOYEUJUXLUKZUYMUYRVUOVUPUYRVUGVUOVUPUUMZUY
      RVUFVUGVUHVUMUUHUYRVULVUFVUGVUQYFYGVUNUJUXLUUIUUJYHUUKUJUXLUUNUULUUOUUPUU
      QZVUDUXLWDTUXLUJXQXGVUEUXLXRUXLXSWIZWIYIUYTVUAUWCTZUWIWDTZCUWCYJZVUCWDTZU
      YTEUFVUAUYTUYQVUAETZAUYQUYSUURUYTAVUDUYQVVDYFAUYQUYSUUSVURAVUDXGZVVDVUBDT
      ZUYQVVEVUAUFTZUXRUWGDTZYFZCUFYJZVVDVVFYFZVUDVVGAUXLUUTYLZAVVJVUDAVVICUFPY
      MYKVVIVVKCVUAUFUWFVUAUKZUXRVVDVVHVVFUWFVUAEUVAVVMUWGVUBDUWFVUAUHUIXPZYNUV
      BYOYPVVEVUBUXLDVUDVUEAVUSYLYNUVCZWTYHUYTUXLVURXLUVDAVVBUYQUYSAVVACUWCUYDU
      WIHWDUYLUXTUVEYMYDVVAVVCCVUAUWCVVMUWIVUCWDVVMBUWGVUBGVVNYIYNYOYPUVFUVGVVE
      UYQVVDVVGXGZVUTVVEUYQVVDVVPVVOVVEVVGVVDVVLUVHUVIVUAEUFUVJYQUYMFUYNUVKUXLU
      WGUKUYMUWHUYNUWIFUXLUWGUJYRBUXLUWGGUVLYSRSUVMUWPUYPUWQBUBDUWOUYOUBUWOYTUY
      MBFUYNUYMBUVOBFYTBUXLGUVNUVPUWMUXLUKUWNUYMGUYNFUWMUXLUJYRBUXLGUVQYSUVRUVS
      YQUVT $.
  $}

  ${
    $d x y C $.  $d x y ph $.  $d y R $.  $d x S $.
    rlimcnp3.c $e |- ( ph -> C e. CC ) $.
    rlimcnp3.r $e |- ( ( ph /\ y e. RR+ ) -> S e. CC ) $.
    rlimcnp3.s $e |- ( y = ( 1 / x ) -> S = R ) $.
    rlimcnp3.j $e |- J = ( TopOpen ` CCfld ) $.
    rlimcnp3.k $e |- K = ( J |`t ( 0 [,) +oo ) ) $.
    $( Relate a limit of a real-valued sequence at infinity to the continuity
       of the function ` S ( y ) = R ( 1 / y ) ` at zero.  (Contributed by
       Mario Carneiro, 1-Mar-2015.) $)
    rlimcnp3 $p |- ( ph -> ( ( y e. RR+ |-> S ) ~~>r C <->
  ( x e. ( 0 [,) +oo ) |-> if ( x = 0 , C , R ) ) e. ( ( K CnP J ) ` 0 ) ) ) $=
      ( cc0 co crp wss a1i wcel cr cpnf cico ssid 0e0icopnf cv wa c1 cdiv simpr
      rpssre cle wbr rpreccl adantl rpred rpge0d elrege0 sylanbrc 2thd rlimcnp2
      ) ABCNUAUBOZPDEFGHVAVAQAVAUCRNVASAUDRPTQAUJRIJACUEZPSZUFZVCUGVBUHOZVASZAV
      CUIVDVETSNVEUKULVFVDVEVCVEPSAVBUMUNZUOVDVEVGUPVEUQURUSKLMUT $.
  $}

  ${
    $d k r w x y B $.  $d r w y z J $.  $d k r w y z K $.  $d k r w x y z ph $.
    $d k r w x y z A $.  $d k r w x y z C $.  $d k r w y z R $.
    xrlimcnp.a $e |- ( ph -> A = ( B u. { +oo } ) ) $.
    xrlimcnp.b $e |- ( ph -> B C_ RR ) $.
    xrlimcnp.r $e |- ( ( ph /\ x e. A ) -> R e. CC ) $.
    xrlimcnp.c $e |- ( x = +oo -> R = C ) $.
    xrlimcnp.j $e |- J = ( TopOpen ` CCfld ) $.
    xrlimcnp.k $e |- K = ( ( ordTop ` <_ ) |`t A ) $.
    $( Relate a limit of a real-valued sequence at infinity to the continuity
       of the corresponding extended real function at ` +oo ` .  Since any
       ` ~~>r ` limit can be written in the form on the left side of the
       implication, this shows that real limits are a special case of
       topological continuity at a point.  (Contributed by Mario Carneiro,
       8-Sep-2015.) $)
    xrlimcnp $p |- ( ph -> ( ( x e. B |-> R ) ~~>r C <->
      ( x e. A |-> R ) e. ( ( K CnP J ) ` +oo ) ) ) $=
      ( cpnf wcel wa cc wss ad2antrr vy vz vr vk vw cmpt crli wbr ccnp co wf cv
      cfv cima wrex wral eqid fmptd adantr wceq csn cun ssun2 pnfex snid sselii
      wi syl5eleqr ralrimiva eleq1d rspcv sylc fvmptg syl2anc cabs cmin cbl crp
      ccom cnxmet cnfldtopn mopni2 mp3an1 cle clt ssun1 syl5sseqr ssralv simprl
      cxmt cr simplr rlimi cioc cin cordt crest ctop cvv letop a1i ressxr pnfxr
      cxr syl syl3anc rexrd elind crab wb sylancl sselda syld r19.21bi syl22anc
      ad3antrrr breq1d bitrd simplrl eleq1 sylibr mpbird sylancr simplrr imaeq2
      eqtri inss2 eleq2 sseq1d anbi12d rexlimdvaa adantlr mpd ctopon adantl crn
      syl5 sseldd adantrr ex syl6ss snssd unssd eqsstrd xrex iocpnfordt elrestr
      ssex syl6eleqr ltpnf ubioc1 ccnv elioc1 simp2 syl6bi ltle elbl3 cnmetdval
      w3a rpxr biimprd imim12d ralimdva impr blcntr a1d imbi12d ralunb sylanbrc
      ralsn raleqdv ss2rab incom dfin5 mptpreima 3sstr4g wfun cdm fdm funimass3
      funmpt sstrd rspcev syl12anc expdimp sylbid resttopon syl5eqel cnfldtopon
      letopon iscnp mpbir2and blopn simpr eqeltrd cnpimaex eleq2i elrest syl5bb
      inex1 rexxfr2d mpbid inss1 sseli pnfnei sylan2 df-ima resmpt ax-mp sseq1i
      vex rneqi dfss3 bitri mpsyl ralrnmpt biimpd syl5bi simprr pnfge mpbir3and
      cres imim1d pm5.74da sylibd exp4a ralimdv2 an32s expr reximdva com23 impl
      imp expimpd rexlimdva rlim2lt impbida ) ABDFUFEUGUHZBCFUFZOHGUIUJUMPZAUYR
      QZUYTCRUYSUKZOUYSUMZUAULZPZOUBULZPZUYSVUFUNZVUDSZQZUBHUOZVGZUAGUPZAVUBUYR
      ABCFRUYSKUYSUQZURZUSVUAVULUAGVUAVUDGPZQZVUEEVUDPZVUKVUQVUCEVUDAVUCEUTZUYR
      VUPAOCPZERPZVUSAODOVAZVBZCVVBVVCOVVBDVCOVDVEVFIVHZAVUTFRPZBCUPZVVAVVDAVVE
      BCKVIZVVEVVABOCBULZOUTZFERLVJVKVLZBOFECRUYSLVUNVMVNZTVJVUAVUPVURVUKVUPVUR
      QEUCULZVOVPVSZVQUMUJZVUDSZUCVRUOZVUAVUKVVMRWJUMPZVUPVURVVPVTUCVUDVVMEGRGM
      WAZWBWCVUAVVOVUKUCVRVUAVVLVRPZVVOQZQZUDULZVVHWDUHZFEVPUJVOUMZVVLWEUHZVGZB
      DUPZUDWKUOZVUKVWAUDBDFEVVLRAVVEBDUPZUYRVVTADCSZVVFVWIAVVCDCDVVBWFIWGZVVGV
      VEBDCWHVLZTVUAVVSVVOWIAUYRVVTWLWMAVVTVWHVUKVGUYRAVVTQZVWGVUKUDWKVWMVWBWKP
      ZVWGQZQZVWBOWNUJZCWOZHPOVWRPZUYSVWRUNZVUDSZVUKVWPVWRWDWPUMZCWQUJZHVWPVXBW
      RPZCWSPZVWQVXBPZVWRVXCPVXDVWPWTXAAVXEVVTVWOACXDSZVXEACVVCXDIADVVBXDADWKXD
      JXBUUAZAOXDOXDPZAXCXAUUBUUCUUDZCXDUUEUUHXEZTVXFVWPVWBUUFXAVWQCVXBWRWSUUGX
      FNUUIVWPVWQCOVWPVWBXDPZVXIVWBOWEUHZOVWQPZVWPVWBVWMVWNVWGWIZXGVXIVWPXCXAVW
      PVWNVXMVXOVWBUUJXEVWBOUUKXFAVUTVVTVWOVVDTXHVWPVWTVVNVUDVWPVWTVVNSZVWRUYSU
      ULVVNUNZSZVWPVVHVWQPZBCXIZFVVNPZBCXIZVWRVXQVWPVXSVYAVGZBCUPZVXTVYBSVWPVYD
      VYCBVVCUPZVWPVYCBDUPZVYCBVVBUPZVYEVWMVWNVWGVYFVWMVWNQZVWFVYCBDVYHVVHDPZQZ
      VXSVWCVWEVYAVYJVXSVWBVVHWEUHZVWCVYJVXSVVHXDPZVYKVVHOWDUHZUUSZVYKVYJVXLVXI
      VXSVYNXJZVYJVWBVWMVWNVYIWLZXGXCVWBOVVHUUMZXKVYLVYKVYMUUNUUOVYJVWNVVHWKPVY
      KVWCVGVYPVYHDWKVVHADWKSVVTVWNJTXLVWBVVHUUPVNXMVYJVYAVWEVYJVYAFEVVMUJZVVLW
      EUHZVWEVYJVVQVVLXDPZVVAVVEVYAVYSXJZVVQVYJVTXAVYJVVSVYTVWMVVSVWNVYIAVVSVVO
      WITVVLUUTZXEAVVAVVTVWNVYIVVJXPZVYHVVEBDAVWIVVTVWNVWLTXNZFVVMEVVLRUUQZXOVY
      JVYRVWDVVLWEVYJVVEVVAVYRVWDUTZWUDWUCFEVVMVVMUQUURZVNXQXRUVAUVBUVCUVDVWPVX
      NEVVNPZVGZVYGVWPWUHVXNVWPVVQVVAVVSWUHVVQVWPVTXAAVVAVVTVWOVVJTAVVSVVOVWOXS
      VVMEVVLRUVEZXFUVFVYCWUIBOVDVVIVXSVXNVYAWUHVVHOVWQXTVVIFEVVNLVJUVGUVJYAVYC
      BDVVBUVHUVIVWPVYCBCVVCACVVCUTVVTVWOITUVKYBVXSVYABCUVLYAVWRCVWQWOVXTVWQCUV
      MBCVWQUVNYFBCFVVNUYSVUNUVOUVPVWPUYSUVQVWRUYSUVRZSVXPVXRXJBCFUWAVWPCVWRWUK
      VWQCYGVWPVUBWUKCUTAVUBVVTVWOVUOTCRUYSUVSXEWGVWRVVNUYSUVTYCYBAVVSVVOVWOYDU
      WBVUJVWSVXAQUBVWRHVUFVWRUTZVUGVWSVUIVXAVUFVWROYHWULVUHVWTVUDVUFVWRUYSYEYI
      YJUWCUWDYKYLYMYKYQUWEUWFVIAUYTVUBVUMQXJZUYRAHCYNUMZPGRYNUMPZVUTWUMAHVXCWU
      NNAVXBXDYNUMPVXGVXCWUNPUWJVXJCVXBXDUWGYCUWHWUOAGMUWIXAVVDUBUAOUYSHGCRUWKX
      FUSUWLAUYTQZUYRVYKVWEVGZBDUPZUDWKUOZUCVRUPZWUPWUSUCVRWUPVVSQZOUEULZCWOZPZ
      UYSWVCUNZVVNSZQZUEVXBUOZWUSWVAVUGVUHVVNSZQZUBHUOZWVHWVAUYTVVNGPZVUCVVNPWV
      KAUYTVVSWLWVAVVQVVAVYTWVLVVQWVAVTXAZAVVAUYTVVSVVJTZVVSVYTWUPWUBYOVVMEVVLG
      RVVRUWMXFWVAVUCEVVNAVUSUYTVVSVVKTWVAVVQVVAVVSWUHWVMWVNWUPVVSUWNWUJXFUWOUB
      VVNOUYSHGUWPXFWVAWVJWVGUBUEWVCHVXBWSWVCWSPWVAWVBVXBPZQWVBCUEUXKUWTXAVUFHP
      VUFVXCPZWVAVUFWVCUTZUEVXBUOZHVXCVUFNUWQWVAVXDVXEWVPWVRXJWTAVXEUYTVVSVXKTU
      EVUFCVXBWRWSUWRYCUWSWVQWVJWVGXJWVAWVQVUGWVDWVIWVFVUFWVCOYHWVQVUHWVEVVNVUF
      WVCUYSYEYIYJYOUXAUXBAVVSWVHWUSVGUYTAVVSQZWVGWUSUEVXBWVSWVOQWVDWVFWUSWVSWV
      OWVDWVFWUSVGZWVOWVDQVWQWVBSZUDWKUOZWVSWVTWVDWVOOWVBPWWBWVCWVBOWVBCUXCUXDU
      DWVBUXEUXFWVSWVFWWBWUSWVSWVFVYABWVCUPZWWBWUSVGZWVFVUFVVNPZUBBWVCFUFZYPZUP
      ZWVSWWCWVFWWGVVNSWWHWVEWWGVVNWVEUYSWVCUYBZYPWWGUYSWVCUXGWWIWWFWVCCSZWWIWW
      FUTWVBCYGZBCWVCFUXHUXIUXLYFUXJUBWWGVVNUXMUXNWVSWWHWWCWVSVVEBWVCUPZWWHWWCX
      JWWJWVSVVFWWLWWKAVVFVVSVVGUSVVEBWVCCWHUXOWWEVYABUBWVCFWWFRWWFUQVUFFVVNXTU
      XPXEUXQUXRWVSWWCWWDWVSWWCQZWWAWURUDWKWWMVWNWWAWURWVSVWNWWAQZWWCWURWVSWWNQ
      ZWWCWURWWOVYAWUQBWVCDWWOVVHWVCPZVYAVGZVYIVYKVWEWWOWWQVYIVYKQZVYAVGWWRVWEV
      GWWOWWRWWPVYAWWOWWRWWPWWOWWRQZWVBCVVHWWSVWQWVBVVHWVSVWNWWAWWRYDWWSVXSVYLV
      YKVYMWWSDXDVVHADXDSVVSWWNWWRVXHXPWWOVYIVYKWIYRZWWOVYIVYKUXSWWSVYLVYMWWTVV
      HUXTXEWWSVXLVXIVYOWWSVWBWVSVWNWWAWWRXSXGXCVYQXKUYAYRWWOVYIVVHCPVYKWWODCVV
      HAVWJVVSWWNVWKTXLYSXHYTUYCWWOWWRVYAVWEWWSVYAVYSVWEWWSVVQVYTVVAVVEWUAVVQWW
      SVTXAWVSVYTWWNWWRVVSVYTAWUBYOTAVVAVVSWWNWWRVVJXPZWWOVYIVVEVYKWWOVVEBDAVWI
      VVSWWNVWLTXNYSZWUEXOWWSVYRVWDVVLWEWWSVVEVVAWUFWXBWXAWUGVNXQXRUYDUYEUYFUYG
      UYMUYHUYIUYJYTXMUYKYQUYLUYNUYOYLYMVIAUYRWUTXJUYTAUCUDBDFEVWLJVVJUYPUSYBUY
      Q $.
  $}

  ${
    $d k x y A $.  $d x S $.
    efrlim.1 $e |- S =
      ( 0 ( ball ` ( abs o. - ) ) ( 1 / ( ( abs ` A ) + 1 ) ) ) $.
    $( The limit of the sequence ` ( 1 + A / k ) ^ k ` is the exponential
       function.  This is often taken as an alternate definition of the
       exponential function (see also ~ dfef2 ).  (Contributed by Mario
       Carneiro, 1-Mar-2015.) $)
    efrlim $p |- ( A e. CC ->
      ( k e. RR+ |-> ( ( 1 + ( A / k ) ) ^c k ) ) ~~>r ( exp ` A ) ) $=
      ( vx vy cc wcel c1 cdiv co caddc cmpt ce cfv cc0 wceq cmul wa clog crp cv
      ccxp crli wbr cpnf cico cif ccnfld ctopn crest ccnp cr rge0ssre ax-resscn
      cres sstri sseli wn simpll 1cnd simplr wne a1i simpr neqned adantr oveq2d
      eqtrd oveq1d ifeq2da mpteq2dva wss ax-mp ccom eqeq2 wb cabs cmin cxr 0cnd
      cnxmet syl lelttrd syl3anc syldan biimpa simpl reccld 1p0e1 syl6eq fveq2d
      ad2antrr 3eqtr4d adantl ax-1cn addcl sylancr cdif eqid clt sylancl abscld
      cnmetdval eqbrtrd subid1d elbl3 syl22anc mpbird mp1i 3eqtrd divcld ifclda
      mpbid 1rp eqidd oveq2 fmptco oveq12d ifbieq2d ccn ctopon cnmptid cnmpt12f
      cnmptc id crn wf fmptd blcntr cncnpi syl2anc mp2an mp3an ovex fvmpt fvres
      cnpco eqeltrd cxpcld ax-1ne0 divdiv2d mulcl div1d sylan2 resmpt 0e0icopnf
      syl6eqr wo cbl cxmt abscl peano2re 0red absge0 ltp1d elrpd rpreccld rpxrd
      blssm syl5eqss sselda mul0or jca sylan adantlr 1cxpd mul02d iftrue jaodan
      ef0 ifid mulid1 eqtr4d mulne0b df-ne syl6bb simprr iffalsed csn cmnf cioc
      neneqd dvlog2lem logdmss pncan2 remulcld 1red cle absmul absge0d lemul1ad
      lep1d 0cn syl6eleq eqbrtrrd ltmuldiv2 syl112anc rpxr sseldi cxpefd logcld
      eldifsni mulcomd simprl dividd divdiv1d eqtr3d div12d ex sylbird ifbothda
      imp resmptd ifsb eqeq1 fveq2 oveq1 eqeq2i addcand syl5bbr cuni cnfldtopon
      ctx mulcn addcn cnmpt1res frn difss cnrest2 syl6eleqr toponuni cnelprrecn
      resttopon eleqtrd cpr wf1o logf1o logrncn ssriv fss fssres w3a cdv dvlog2
      f1of cdm dmmpti eleqtrri fveq1i 1div1e1 eqtr2i eldifsn sylib logcl eqtr2d
      1ex log1 ifeq12d mpteq2ia dvcnp mpan2 mul01 syl5eleqr eqeltrrd ccncf efcn
      cncfcn1 eleqtri cnmpt11f ffvelrnd toponunii ctop cnfldtop cnfldtopn blopn
      cnt syl5eqel isopn3i eleqtrrd efcl cnprest cnpresti rpcn rpne0 rlimcnp3 )
[encoded data, 6000 characters]
      I $.
  $}

  ${
    $d k x A $.  $d k F $.  $d k ph $.
    dfef2.1 $e |- ( ph -> F e. V ) $.
    dfef2.2 $e |- ( ph -> A e. CC ) $.
    dfef2.3 $e |- ( ( ph /\ k e. NN ) ->
                    ( F ` k ) = ( ( 1 + ( A / k ) ) ^ k ) ) $.
    $( The limit of the sequence ` ( 1 + A / k ) ^ k ` as ` k ` goes to ` +oo `
       is ` ( exp `` A ) ` .  This is another common definition of ` _e ` .
       (Contributed by Mario Carneiro, 1-Mar-2015.) $)
    dfef2 $p |- ( ph -> F ~~> ( exp ` A ) ) $=
      ( vx cn c1 cdiv co caddc cexp cfv wbr cc wcel adantl cv cmpt ce crli ccxp
      cli wa cn0 wceq ax-1cn simpl nncn cc0 wne nnne0 divcld addcl nnnn0 cxpexp
      sylancr syl2anc mpteq2dva crp wss nnrp a1i cabs cmin ccom cbl eqid efrlim
      ssriv rlimres2 eqbrtrrd nnuz 1zzd fmptd rlimclim mpbid syl cvv nnex mptex
      expcld oveq2 oveq2d id oveq12d ovex fvmpt eqtr4d climeq ) AIJKBIUAZLMZNMZ
      WNOMZUBZBUCPZUFQZDWSUFQABRSZWTGXAWRWSUDQWTXAIJWPWNUEMZUBWRWSUDXAIJXBWQXAW
      NJSZUGZWPRSZWNUHSZXBWQUIXDKRSWORSXEUJXDBWNXAXCUKXCWNRSXAWNULTXCWNUMUNXAWN
      UOTUPKWOUQUTZXCXFXAWNURTZWPWNUSVAVBXAIJVCXBWSJVCVDXAIJVCWNVEVMVFBUMKBVGPK
      NMLMVGVHVIVJPMZIXIVKVLVNVOXAWSWRKJVPXAVQXAIJWQRWRXDWPWNXGXHWEWRVKZVRVSVTW
      AAWSCWRDKWBEJVPWRWBSAIJWQWCWDVFFAVQACUAZJSZUGXKWRPZKBXKLMZNMZXKOMZXKDPXLX
      MXPUIAIXKWQXPJWRWNXKUIZWPXOWNXKOXQWOXNKNWNXKBLWFWGXQWHWIXJXOXKOWJWKTHWLWM
      VT $.
  $}

  ${
    $d n x y A $.
    $( A power to a negative exponent goes to zero as the base becomes large.
       (Contributed by Mario Carneiro, 15-Sep-2014.)  (Revised by Mario
       Carneiro, 18-May-2016.) $)
    cxplim $p |- ( A e. RR+ -> ( n e. RR+ |-> ( 1 / ( n ^c A ) ) ) ~~>r 0 ) $=
      ( vy vx crp wcel c1 cv ccxp co cdiv cc0 wbr clt wral cr wa ad2antrr rpcnd
      wne cmpt crli cabs cfv wi wrex cneg rpre adantl cle rpge0 renegcld adantr
      rpcn rpne0 rereccld recxpcld wceq simprl rpcxpcld rpreccld rprege0d absid
      negne0d syl simplr simprr rpreccl cxprecd cc ad2antlr cxpnegd 1cnd oveq2d
      divneg2d 3eqtr2d cmul recidd cxpmuld cxp1d 3eqtr3d 3brtr4d rpge0d cxplt2d
      rpred mpbird ltrec1d eqbrtrd expr ralrimiva imbi1d ralbidv rspcev syl2anc
      breq1 id rpcxpcl syl2anr wss rpssre a1i rlim0lt ) AEFZBEGBHZAIJZKJZUALUBM
      CHZXDNMZXFUCUDZDHZNMZUEZBEOZCPUFZDEOXCXNDEXCXJEFZQZXJGAUGZKJZIJZPFXSXDNMZ
      XKUEZBEOZXNXPXJXRXOXJPFXCXJUHUIXOLXJUJMXCXJUKUIXPXQXCXQPFXOXCAAUHZULUMXCX
      QLTXOXCAAUNZAUOZVDUMUPUQXPYABEXPXDEFZXTXKXPYFXTQZQZXIXFXJNYHXFPFLXFUJMQXI
      XFURYHXFYHXEYHXDAXPYFXTUSZXCAPFZXOYGYCRZUTZVAVBXFVCVEYHXJXEXCXOYGVFZYLYHG
      XJKJZXENMYNGAKJZIJZXEYOIJZNMYHXSXDYPYQNXPYFXTVGYHYPGXJYOIJKJXJYOUGZIJXSYH
      XJYOYMYHYOXCYOEFXOYGAVHRZSZVIYHXJYOXOXJVJFXCYGXJUNVKXOXJLTXCYGXJUOVKYTVLY
      HYRXRXJIYHGAYHVMXCAVJFXOYGYDRZXCALTXOYGYERZVOVNVPYHXDAYOVQJZIJXDGIJYQXDYH
      UUCGXDIYHAUUAUUBVRVNYHXDAYOYIYKYTVSYHXDYHXDYISVTWAWBYHYNXEYOYHYNXOYNEFXCY
      GXJVHVKZWEYHYNUUDWCYHXEYLWEYHXEYLWCYSWDWFWGWHWIWJXMYBCXSPXGXSURZXLYABEUUE
      XHXTXKXGXSXDNWOWKWLWMWNWJXCDCBEXFXCXFVJFBEXCYFQZXFUUFXEYFYFYJXEEFXCYFWPYC
      XDAWQWRVASWJEPWSXCWTXAXBWF $.

    $( The inverse square root function converges to zero.  (Contributed by
       Mario Carneiro, 18-May-2016.) $)
    sqrtlim $p |- ( n e. RR+ |-> ( 1 / ( sqrt ` n ) ) ) ~~>r 0 $=
      ( crp c1 cv c2 cdiv co ccxp cmpt csqrt cfv crli wcel cc wceq rpcn cxpsqrt
      cc0 syl oveq2d mpteq2ia wbr 1rp rphalfcl cxplim mp2b eqbrtrri ) ABCADZCEF
      GZHGZFGZIZABCUHJKZFGZIRLABUKUNUHBMZUJUMCFUOUHNMUJUMOUHPUHQSTUACBMUIBMULRL
      UBUCCUDUIAUEUFUG $.
  $}

  ${
    $d n x y A $.  $d x y B $.  $d n x y C $.  $d n x y ph $.
    rlimcxp.1 $e |- ( ( ph /\ n e. A ) -> B e. V ) $.
    rlimcxp.2 $e |- ( ph -> ( n e. A |-> B ) ~~>r 0 ) $.
    rlimcxp.3 $e |- ( ph -> C e. RR+ ) $.
    $( Any power to a positive exponent of a converging sequence also
       converges.  (Contributed by Mario Carneiro, 18-Sep-2014.) $)
    rlimcxp $p |- ( ph -> ( n e. A |-> ( B ^c C ) ) ~~>r 0 ) $=
      ( vy ccxp co cc0 wbr clt wral cr wcel cc adantr vx cmpt crli cle cabs cfv
      cv wi wrex crp wa cmin c1 cdiv cdm rlimf syl ralrimiva dmmptg feq2d mpbid
      wf wceq eqid fmpt sylibr simpr rprecred rpcxpcld rlimi rlimmptrcl adantlr
      abscld absge0d rpred rpge0d cxplt2d subid1d fveq2d breq1d abscxp2 syl2anc
      ad2antrr cmul rpcnd rpne0d recid2d oveq2d simplr cxpmuld 3eqtr3rd breq12d
      cxp1d 3bitr4d biimpd imim2d ralimdva reximdv cxpcld rlimss eqsstr3d rlim0
      mpd wss mpbird ) AEBCDKLZUBMUCNJUGEUGZUDNZXFUEUFZUAUGZONZUHZEBPZJQUIZUAUJ
      PAXNUAUJAXJUJRZUKZXHCMULLZUEUFZXJUMDUNLZKLZONZUHZEBPZJQUIXNXPJEBCMXTSACSR
      ZEBPZXOABSEBCUBZVBZYEAYFUOZSYFVBZYGAYFMUCNZYIHMYFUPUQAYHBSYFACFRZEBPYHBVC
      AYKEBGUREBCFUSUQZUTVAEBSCYFYFVDVEVFTXPXJXSAXOVGXPDADUJRZXOITVHZVIZAYJXOHT
      VJXPYCXMJQXPYBXLEBXPXGBRZUKZYAXKXHYQYAXKYQCUEUFZXTONYRDKLZXTDKLZONYAXKYQY
      RXTDYQCAYPYDXOABCMEFGHVKZVLZVMYQCUUBVNYQXTXPXTUJRYPYOTZVOYQXTUUCVPAYMXOYP
      IWCZVQYQXRYRXTOYQXQCUEYQCUUBVRVSVTYQXIYSXJYTOYQYDDQRXIYSVCUUBYQDUUDVOCDWA
      WBYQXJXSDWDLZKLXJUMKLYTXJYQUUEUMXJKYQDYQDUUDWEZYQDUUDWFWGWHYQXJXSDAXOYPWI
      ZXPXSQRYPYNTUUFWJYQXJYQXJUUGWEWMWKWLWNWOWPWQWRXCURAUAJEBXFAXFSREBAYPUKCDU
      UAADSRYPADIWETWSURABYHQYLAYJYHQXDHMYFWTUQXAXBXE $.
  $}

  ${
    $d m x y z A $.  $d m y z B $.  $d m x y z C $.  $d m x y z ph $.
    o1cxp.1 $e |- ( ph -> C e. CC ) $.
    o1cxp.2 $e |- ( ph -> 0 <_ ( Re ` C ) ) $.
    o1cxp.3 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    o1cxp.4 $e |- ( ph -> ( x e. A |-> B ) e. O(1) ) $.
    $( An eventually bounded function taken to a nonnegative power is
       eventually bounded.  (Contributed by Mario Carneiro, 15-Sep-2014.) $)
    o1cxp $p |- ( ph -> ( x e. A |-> ( B ^c C ) ) e. O(1) ) $=
      ( vz cle wbr cfv cr ccxp wcel cc wa cc0 vy vm cv cmpt cabs wi wral co co1
      wrex wf cdm o1f syl wceq ralrimiva dmmptg feq2d mpbid syl2anc cif cre cpi
      o1bdd cmul simpr eqid fvmpt2 oveq1d cvv ovex sylancl eqtr4d nffvmpt1 nfcv
      ce nfv nfov fveq2 eqeq12d cbvral sylib r19.21bi ad2ant2r fveq2d ffvelrnda
      nfeq ad2antrr simprr 0re ifcl adantr abscld max2 letrd abscxpbnd eqbrtrrd
      sylancr expr imim2d ralimdva wss o1mptrcl cxpcld fmptd o1dm eqsstr3d max1
      simprl recxpcld pire remulcl reefcld remulcld elo12r 3expia syl22anc syld
      recld rexlimdvva mpd ) AUAUCZKUCZLMZYCBCDUDZNZUENZUBUCZLMZUFZKCUGZUBOUJUA
      OUJZBCDEPUHZUDZUIQZAYEUIQZCRYEUKZYLJAYEULZRYEUKZYQAYPYSJYEUMUNAYRCRYEADFQ
      ZBCUGYRCUOAYTBCIUPBCDFUQUNZURUSZUAKCUBYEVDUTAYKYOUAUBOOAYBOQZYHOQZSZSZYKY
      DYCYNNZUENZTYHLMZYHTVAZEVBNZPUHZEUENZVCVEUHZVPNZVEUHZLMZUFZKCUGZYOUUFYJUU
      RKCUUFYCCQZSYIUUQYDUUFUUTYIUUQUUFUUTYISZSZYFEPUHZUENUUHUUPLUVBUVCUUGUEAUU
      TUVCUUGUOZUUEYIAUVDKCABUCZYENZEPUHZUVEYNNZUOZBCUGUVDKCUGAUVIBCAUVECQZSZUV
      GYMUVHUVKUVFDEPUVKUVJYTUVFDUOAUVJVFZIBCDFYEYEVGVHUTVIUVKUVJYMVJQUVHYMUOUV
      LDEPVKBCYMVJYNYNVGZVHVLVMUPUVIUVDBKCUVIKVQBUVCUUGBYFEPBCDYCVNBPVOBEVOVRBC
      YMYCVNWGUVEYCUOZUVGUVCUVHUUGUVNUVFYFEPUVEYCYEVSVIUVEYCYNVSVTWAWBWCWDWEUVB
      YFEUUJAUUTYFRQUUEYIACRYCYEUUBWFWDZAERQZUUEUVAGWHATUUKLMUUEUVAHWHUUFUUJOQZ
      UVAUUFUUDTOQZUVQAUUCUUDWIZWJUUIYHTOWKVLZWLZUVBYGYHUUJUVBYFUVOWMUUFUUDUVAU
      VSWLUWAUUFUUTYIWIUUFYHUUJLMZUVAUUFUVRUUDUWBWJUVSTYHWNWRWLWOWPWQWSWTXAUUFC
      RYNUKZCOXBZUUCUUPOQZUUSYOUFAUWCUUEABCYMRYNUVKDEABCDFIJXCAUVPUVJGWLXDUVMXE
      WLAUWDUUEACYROUUAAYPYROXBJYEXFUNXGWLAUUCUUDXIUUFUULUUOUUFUUJUUKUVTUUFUVRU
      UDTUUJLMWJUVSTYHXHWRUUFEAUVPUUEGWLZXSXJUUFUUNUUFUUMOQVCOQUUNOQUUFEUWFWMXK
      UUMVCXLVLXMXNUWCUWDSUUCUWESUUSYOKCYBYNUUPXOXPXQXRXTYA $.
  $}

  ${
    $d m n x y z A $.  $d n B $.
    $( A linear factor grows slower than any exponential with base greater than
       ` 1 ` .  (Contributed by Mario Carneiro, 15-Sep-2014.) $)
    cxp2limlem $p |- ( ( A e. RR /\ 1 < A ) ->
      ( n e. RR+ |-> ( n / ( A ^c n ) ) ) ~~>r 0 ) $=
      ( cr wcel c1 clt wbr crp c2 cexp co cdiv cc0 cc rpcnd rpred adantr rpne0d
      cle cmul wa clog cfv cv ccxp 0red cmpt crli cz rplogcl 2z rpexpcl sylancl
      2rp rpdivcl sylancr divrcnv syl rerpdivcl sylan simpr simpl 1red 0lt1 a1i
      lttrd elrpd rpre rpcxpcl syl2an rpdivcld caddc rpmulcld resqcld rehalfcld
      ce 1rp rpaddcl readdcld reefcld ltaddrp2d efgt1p2 adantl recnd sqcld 2cnd
      wne 2ne0 divdiv2d sqmuld oveq1d eqtr4d cxpefd 3brtr4d mpbid sqvald oveq2d
      ltdiv2d rpne0 divcan5d 3eqtrd breqtrd ltled adantrr rpge0d rlimsqz2 ) ACD
      ZEAFGZUAZBHIAUBUCZIJKZLKZBUDZLKZXMAXMUEKZLKZMMXIUFZXQXIXLNDZBHXNUGMUHGXIX
      LXIIHDXKHDZXLHDZUNXIXJHDZIUIDZXSAUJZUKXJIULUMZIXKUOUPZOZXLBUQURXIXLCDXMHD
      ZXNCDXIXLYEPXLXMUSUTZXIYGUAZXPYIXMXOXIYGVAZXIAHDZXMCDZXOHDYGXIAXGXHVBZXIM
      EAXQXIVCYMMEFGXIVDVEXGXHVAVFVGZXMVHZAXMVIVJZVKZPZXIYGXPXNSGMXMSGZYIXPXNYR
      YHYIXPXMXMIJKZXLLKZLKZXNFYIUUAXOFGXPUUBFGYIXMXJTKZIJKZILKZUUCVPUCZUUAXOFY
      IUUEEUUCVLKZUUEVLKZUUFYIUUDYIUUCYIUUCYIXMXJYJXIYAYGYCQVMZPZVNVOZYIUUGUUEY
      IUUGYIEHDUUCHDZUUGHDVQUUIEUUCVRUPZPUUKVSYIUUCUUJVTYIUUEUUGUUKUUMWAYIUULUU
      HUUFFGUUIUUCWBURVFYIUUAYTXKTKZILKUUEYIYTIXKYIXMYIXMYGYLXIYOWCWDZWEZYIWFYI
      XKXIXSYGYDQZOIMWGYIWHVEYIXKUUQRWIYIUUDUUNILYIXMXJUUOXIXJNDYGXIXJYCOQWJWKW
      LYIAXMXIANDYGXIAYMWDQYIAXIYKYGYNQRUUOWMWNYIUUAXOXMYIYTXLYIYGYBYTHDYJUKXMI
      ULUMZXIXTYGYEQZVKYPYJWRWOYIUUBXMXLTKZYTLKUUTXMXMTKZLKXNYIXMYTXLUUOUUPXIXR
      YGYFQZYIYTUURRYIXLUUSRWIYIYTUVAUUTLYIXMUUOWPWQYIXLXMXMUVBUUOUUOYGXMMWGXIX
      MWSWCZUVCWTXAXBXCXDXIYGMXPSGYSYIXPYQXEXDXF $.

    $( Any power grows slower than any exponential with base greater than
       ` 1 ` .  (Contributed by Mario Carneiro, 18-Sep-2014.) $)
    cxp2lim $p |- ( ( A e. RR /\ B e. RR /\ 1 < B ) ->
      ( n e. RR+ |-> ( ( n ^c A ) / ( B ^c n ) ) ) ~~>r 0 ) $=
      ( cr wcel clt wbr crp ccxp cdiv cmpt cc0 crli cle 1re a1i rpcxpcld adantr
      c1 co w3a cv cpnf cico cres wss wceq wa wb elicopnf ax-mp simplbi simprbi
      0red 0lt1 ltletrd elrpd ssriv resmpt cif adantl rpge0 simpl2 simpl3 lttrd
      rpre simp1 ifcl sylancl max1 sylancr rprecred divcxpd cmul rpne0d recid2d
      cc recnd oveq2d cxpmuld rpcnd cxp1d 3eqtr3d eqtrd mpteq2dva ovexd mulcomd
      cvv simp2 simp3 rpred 1cxpd 0le1 rpge0d rpreccld cxplt2d mpbid cxp2limlem
      eqbrtrrd syl2anc eqbrtrd rlimcxp rlimres2 rpdivcld sylan2 simpl1 lediv1dd
      simpr max2 cxplead adantrr rlimsqz2 syl5eqbr fmptd rpssre rlimresb mpbird
      eqid ) ADEZBDEZSBFGZUAZCHCUBZAITZBYCITZJTZKZLMGYGSUCUDTZUEZLMGYBYICYHYFKZ
      LMYHHUFZYIYJUGCYHHYCYHEZYCYLYCDEZSYCNGZSDEZYLYMYNUHUIOSYCUJUKZULZYLLSYCYL
      UNYOYLOPYQLSFGZYLUOPYLYMYNYPUMZUPUQZURZCHYHYFUSUKYBCYHYCSANGZASUTZITZYEJT
      ZYFLLYBUNZUUFYBCYHHUUELYKYBUUAPYBCHYCYESUUCJTZITZJTZUUCITZKCHUUEKLMYBCHUU
      JUUEYBYCHEZUHZUUJUUDUUHUUCITZJTUUEUULYCUUHUUCUUKYMYBYCVFVAZUUKLYCNGZYBYCV
      BVAUULYEUUGUULBYCUULBXSXTYAUUKVCZUULLSBUULUNYOUULOPUUPYRUULUOPXSXTYAUUKVD
      VEUQZUUNQZYBUUGDEUUKYBUUCYBUUCYBXSYOUUCDEZXSXTYAVGZOUUBASDVHVIZYBLSUUCUUF
      YOYBOPZUVAYRYBUOPZYBYOXSSUUCNGOUUTSAVJVKUPUQZVLZRZQYBUUCVQEUUKYBUUCUVAVRR
      ZVMUULUUMYEUUDJUULYEUUGUUCVNTZITYESITUUMYEUULUVHSYEIUULUUCUVGUULUUCYBUUCH
      EUUKUVDRVOVPVSUULYEUUGUUCUURUVFUVGVTUULYEUULYEUURWAWBWCVSWDWEYBHUUIUUCCWH
      UULYCUUHJWFYBCHUUIKCHYCBUUGITZYCITZJTZKZLMYBCHUUIUVKUULUUHUVJYCJUULBYCUUG
      VNTZITBUUGYCVNTZITUUHUVJUULUVMUVNBIUULYCUUGUULYCUUNVRZYBUUGVQEUUKYBUUGUVE
      VRZRZWGVSUULBYCUUGUUQUUNUVQVTUULBUUGYCUUQUVFUVOVTWCVSWEYBUVIDESUVIFGUVLLM
      GYBUVIYBBUUGYBBXSXTYAWIZYBLSBUUFUVBUVRUVCXSXTYAWJZVEUQZUVEQWKYBSUUGITZSUV
      IFYBUUGUVPWLYBYAUWAUVIFGUVSYBSBUUGUVBLSNGYBWMPUVRYBBUVTWNYBUUCUVDWOWPWQWS
      UVICWRWTXAUVDXBWSXCYLYBUUKUUEDEYTUULUUEUULUUDYEUULYCUUCYBUUKXHZYBUUSUUKUV
      ARQZUURXDWKXEYBYLUHZYFYLYBUUKYFHEYTUULYDYEUULYCAUWBXSXTYAUUKXFQZUURXDZXEZ
      WKYBYLYFUUENGUUOUWDYDUUDYEUWDYDYLYBUUKYDHEYTUWEXEWKUWDUUDYLYBUUKUUDHEYTUW
      CXEWKYLYBUUKYEHEYTUURXEUWDYCAUUCYLYMYBYQVAYLYNYBYSVAXSXTYAYLXFZYBUUSYLUVA
      RUWDYOXSAUUCNGOUWHSAXIVKXJXGXKYBYLLYFNGUUOUWDYFUWGWNXKXLXMYBHSLYGYBCHYFVQ
      YGUULYFUWFWAYGXRXNHDUFYBXOPUVBXPXQ $.

    $( The logarithm grows slower than any positive power.  (Contributed by
       Mario Carneiro, 18-Sep-2014.) $)
    cxploglim $p |- ( A e. RR+ ->
      ( n e. RR+ |-> ( ( log ` n ) / ( n ^c A ) ) ) ~~>r 0 ) $=
      ( vm vz vx crp wcel cv ce cfv co cdiv wbr cr c1 clt cabs wi wral wa efgt1
      vy ccxp cmpt cc0 crli clog rpre reefcl syl cxp2limlem syl2anc wrex adantl
      cle cif 1re ifcl sylancl wb a1i adantr maxlt syl3anc simprrr wceq reeflog
      ad2antrl breqtrrd simplr simprrl rplogcld rpred eflt mpbird breq2 oveq12d
      id oveq2 fveq2d breq1d imbi12d rspcv mpid cmul ad2antrr relogefd rpcnd cc
      oveq2d rpcn mulcomd eqtrd recnd wne efne0 cxpefd rpne0 sylibd expr sylbid
      3eqtr4d com23 ralrimdva breq1 imbi1d ralbidv rspcev ralimdv simpr rpefcld
      syl6an rexlimdva rpcxpcld ralrimiva wss rpssre rlim0lt relogcl rerpdivcld
      rpdivcld 3imtr4d mpd ) AFGZCFCHZAIJZYEUCKZLKZUDUEUFMZBFBHZUGJZYJAUCKZLKZU
      DUEUFMZYDYFNGZOYFPMYIYDANGZYOAUHZAUIUJZAUAYFCUKULYDDHZYEPMZYHQJZEHZPMZRZC
      FSZDNUMZEFSUBHZYJPMZYMQJZUUBPMZRZBFSZUBNUMZEFSYIYNYDUUFUUMEFYDUUEUUMDNYDY
      SNGZTZOYSIJZUOMZUUPOUPZNGZUUEUURYJPMZUUJRZBFSZUUMUUOUUPNGZONGZUUSUUNUVCYD
      YSUIUNZUQUUQUUPONURUSUUOUUEUVABFUUOYJFGZTZUUTUUEUUJUVGUUTOYJPMZUUPYJPMZTZ
      UUEUUJRZUVGUVDUVCYJNGZUUTUVJUTUVDUVGUQVAUUOUVCUVFUVEVBUVFUVLUUOYJUHZUNOUU
      PYJVCVDUUOUVFUVJUVKUUOUVFUVJTZTZUUEYKYFYKUCKZLKZQJZUUBPMZUUJUVOUUEYSYKPMZ
      UVSUVOUVTUUPYKIJZPMZUVOUUPYJUWAPUUOUVFUVHUVIVEUVFUWAYJVFUUOUVJYJVGVHVIUVO
      UUNYKNGZUVTUWBUTYDUUNUVNVJUVOYKUVOYJUVFUVLUUOUVJUVMVHUUOUVFUVHUVIVKVLZVMY
      SYKVNULVOUVOYKFGUUEUVTUVSRZRUWDUUDUWECYKFYEYKVFZYTUVTUUCUVSYEYKYSPVPUWFUU
      AUVRUUBPUWFYHUVQQUWFYEYKYGUVPLUWFVRYEYKYFUCVSVQVTWAWBWCUJWDUVOUVRUUIUUBPU
      VOUVQYMQUVOUVPYLYKLUVOYKYFUGJZWEKZIJAYKWEKZIJUVPYLUVOUWHUWIIUVOUWHYKAWEKU
      WIUVOUWGAYKWEUVOAYDYPUUNUVNYQWFWGWJUVOYKAUVOYKUWDWHZYDAWIGZUUNUVNAWKWFZWL
      WMVTUVOYFYKUVOYFYDYOUUNUVNYRWFWNUVOUWKYFUEWOUWLAWPUJUWJWQUVOYJAUVFYJWIGUU
      OUVJYJWKVHUVFYJUEWOUUOUVJYJWRVHUWLWQXBWJVTWAWSWTXAXCXDUULUVBUBUURNUUGUURV
      FZUUKUVABFUWMUUHUUTUUJUUGUURYJPXEXFXGXHXLXMXIYDEDCFYHYDYHWIGCFYDYEFGZTZYH
      UWOYEYGYDUWNXJUWOYFYEUWOAYDYPUWNYQVBXKUWNYENGYDYEUHUNXNYAWHXOFNXPYDXQVAZX
      RYDEUBBFYMYDYMWIGBFYDUVFTZYMUWQYKYLUVFUWCYDYJXSUNUWQYJAYDUVFXJYDYPUVFYQVB
      XNXTWNXOUWPXRYBYC $.

    $( Every power of the logarithm grows slower than any positive power.
       (Contributed by Mario Carneiro, 20-May-2016.) $)
    cxploglim2 $p |- ( ( A e. CC /\ B e. RR+ ) -> ( n e. RR+ |->
      ( ( ( log ` n ) ^c A ) / ( n ^c B ) ) ) ~~>r 0 ) $=
      ( wcel crp wa cfv c1 cle wbr cdiv co ccxp cc0 c3 cr a1i clt cabs ceu clog
      cc cv cre cif 3re 0red recnd cvv ovexd cmpt crli simpr adantr 1re sylancl
      recl ifcl 0lt1 max1 sylancr ltletrd rpdivcld cxploglim rlimcxp rlimmptrcl
      elrpd syl cxpcld adantl simpll rpre ad2antlr rpcxpcld rpcnd rpne0d divcld
      relogcl cmin adantrr abscld ad2antrl 1lt3 simprr rplogcld rerpdivcld wceq
      rpred abscxp syl2anc recld max2 ere c2 egt2lt3 simpri wb epr logltb mpbid
      loge syl5eqbrr cxpled eqbrtrd lediv1dd rprege0d absid oveq2d eqtrd divcxp
      absdivd syl3anc cmul cxpmuld divcan1d eqtr3d 3brtr4d leabsd letrd subid1d
      fveq2d rlimsqzlem ) AUBDZBEDZFZCECUCZUAGZYFBHAUDGZIJZYHHUEZKLZMLZKLZYJMLZ
      YGAMLZYFBMLZKLZNNOOPDZYEUFQYENYEUGZUHYEEYMYJCUIYEYFEDZFZYGYLKUJZYEYKEDCEY
      MUKNULJYEBYJYCYDUMYEYJYEYHPDZHPDZYJPDZYCUUCYDAUQUNZUOYIYHHPURUPZYENHYJYSU
      UDYEUOQUUGNHRJYEUSQYEUUDUUCHYJIJUOUUFHYHUTVAVBVGZVCYKCVDVHZUUHVEUUAYMYJYE
      EYMNCUIUUBUUIVFUUAYJYEUUEYTUUGUNUHVIZUUAYOYPUUAYGAUUAYGYTYGPDZYEYFVRZVJUH
      YCYDYTVKVIZUUAYPUUAYFBYEYTUMZYDBPDZYCYTBVLZVMVNZVOZUUAYPUUQVPZVQZYEYTOYFI
      JZFZFZYQSGZYNSGZYQNVSLZSGYNNVSLZSGIUVCUVDYNUVEUVCYQYEYTYQUBDUVAUUTVTZWAUV
      CYNUVCYMYJUVCYGYLUVCYFYTYFPDYEUVAYFVLWBZUVCHOYFUUDUVCUOQYRUVCUFQZUVIHORJU
      VCWCQYEYTUVAWDZVBWEZUVCYFYKYEYTYTUVAUUNVTZUVCBYJYDUUOYCUVBUUPVMZYEYJEDUVB
      UUHUNZWFZVNZVCYEUUEUVBUUGUNZVNWHZUVCYNYEYTYNUBDUVAUUJVTZWAUVCYOSGZYPKLZYG
      YJMLZYPKLZUVDYNIUVCUWAUWCYPUVCYOYEYTYOUBDUVAUUMVTWAUVCUWCUVCYGYJUVLUVRVNW
      HYEYTYPEDUVAUUQVTZUVCUWAYGYHMLZUWCIUVCYGEDYCUWAUWFWGUVLYCYDUVBVKZYGAWIWJU
      VCYHYJIJZUWFUWCIJUVCUUDUUCUWHUOUVCAUWGWKZHYHWLVAUVCYGYHYJYTUUKYEUVAUULWBU
      VCHTUAGZYGRXAUVCTYFRJZUWJYGRJZUVCTOYFTPDUVCWMQUVJUVITORJZUVCWNTRJUWMWOWPQ
      UVKVBUVCTEDYTUWKUWLWQWRUVMTYFWSVAWTXBUWIUVRXCWTXDXEUVCUVDUWAYPSGZKLZUWBYE
      YTUVDUWOWGUVAUUAYOYPUUMUURUUSXKVTUVCUWNYPUWAKUVCYPPDNYPIJFUWNYPWGUVCYPUWE
      XFYPXGVHXHXIUVCYNUWCYLYJMLZKLZUWDUVCUUKNYGIJFYLEDYJUBDZYNUWQWGUVCYGUVLXFU
      VQYEUWRUVBYEYJUUGUHUNZYGYLYJXJXLUVCUWPYPUWCKUVCYFYKYJXMLZMLUWPYPUVCYFYKYJ
      UVMUVPUWSXNUVCUWTBYFMUVCBYJUVCBUVNUHUWSUVCYJUVOVPXOXHXPXHXIXQUVCYNUVSXRXS
      UVCUVFYQSUVCYQUVHXTYAUVCUVGYNSUVCYNUVTXTYAXQYB $.
  $}

  ${
    $d x y $.  $d y F $.  $d y L $.  $d n y ph $.  $d n x A $.
    divsqrtsum.2 $e |- F = ( x e. RR+ |->
       ( sum_ n e. ( 1 ... ( |_ ` x ) ) ( 1 / ( sqrt ` n ) ) -
         ( 2 x. ( sqrt ` x ) ) ) ) $.
    $( Lemma for ~ divsqrsum and ~ divsqrtsum2 .  (Contributed by Mario
       Carneiro, 18-May-2016.) $)
    divsqrtsumlem $p |- ( F : RR+ --> RR /\ F e. dom ~~>r /\
      ( ( F ~~>r L /\ A e. RR+ ) ->
        ( abs ` ( ( F ` A ) - L ) ) <_ ( 1 / ( sqrt ` A ) ) ) ) $=
      ( crp cr wcel wbr wa cfv co c1 csqrt cdiv cle wtru cc0 c2 wf crli cmin wi
      cdm cabs w3a cv cmul cpnf cioo ioorp eqcomi nnuz 1zzd 0red caddc 1re 0nn0
      cn nn0addge2i a1i 2re rpsqrtcl adantl rpred remulcl sylancr rprecred nnrp
      sylan2 cmpt cdv cc cpr reelprrecn rpcnd rpmulcl rpreccld wceq dvsqrt 2cnd
      2rp dvmptcmul 1cnd rpcnne0d divass syl3anc rpcnne0 mp1i divcan5 mpteq2dva
      eqtr3d eqtrd fveq2 oveq2d simp3r wb simp2l rprege0d simp2r sqrtle syl2anc
      wne mpbid rpsqrtcld lerecd sqrtlim dvfsumrlim3 simp1d simp2d rpge0 simp3d
      trud mpd3an3 3pm3.2i ) GHDUAZDUBUEIZDEUBJZBGIZKBDLEUCMUFLNBOLZPMZQJZUDXQR
      XQXRXSXTSBQJZUGYCUDZRATAUHZOLZUIMZNYGPMZNCUHZOLZPMZSGSCYBDENHBUTSUJUKMGUL
      UMUNRUORUPZNSNUQMQJRNSURUSVAVBYMRYFGIZKZTHIYGHIYHHIVCYOYGYNYGGIZRYFVDVEZV
      FTYGVGVHYOYGYQVIZYFUTIRYNYIHIYFVJYRVKRHAGYHVLVMMAGTNYHPMZUIMZVLAGYIVLZRAY
      GYSTHGGHHVNVOIRVPVBYOYGYQVQYOYHYOTGIZYPYHGIWCYQTYGVRVHZVSHAGYGVLVMMAGYSVL
      VTRAWAVBRWBWDRAGYTYIYOTNUIMYHPMZYTYIYOTVNIZNVNIZYHVNIYHSXDKUUDYTVTYOWBYOW
      EZYOYHUUCWFTNYHWGWHYOUUFYGVNIYGSXDKUUETSXDKZUUDYIVTUUGYOYGYQWFUUBUUHYOWCT
      WIWJNYGTWKWHWMWLWNYFYJVTYGYKNPYFYJOWOWPRYNYJGIZKZSYFQJZYFYJQJZKZUGZYGYKQJ
      ZYLYIQJUUNUULUUORUUJUUKUULWQUUNYFHIUUKKYJHISYJQJKUULUUOWRUUNYFRYNUUIUUMWS
      ZWTUUNYJRYNUUIUUMXAZWTYFYJXBXCXEUUNYGYKUUNYFUUPXFUUNYJUUQXFXGXEFUUASUBJRA
      XHVBYFBVTYGYANPYFBOWOWPXIZXJXNXRRXQXRYEUURXKXNXSXTYDYCXTYDXSBXLVEYERXQXRY
      EUURXMXNXOXP $.

    $( The function ` F ` used in ~ divsqrsum is a real function.  (Contributed
       by Mario Carneiro, 12-May-2016.) $)
    divsqrsumf $p |- F : RR+ --> RR $=
      ( crp cr wf crli cdm wcel c1 wbr wa cfv cmin co cabs csqrt cdiv cle wi
      divsqrtsumlem simp1i ) EFCGCHIJCKHLKEJMKCNKOPQNKKRNSPTLUAAKBCKDUBUC $.

    $( The sum ` sum_ n <_ x ( 1 / sqrt n ) ` is asymptotic to ` 2 sqrt x + L `
       with a finite limit ` L ` .  (In fact, this limit is
       ` zeta ( 1 / 2 ) ~~ -u 1 . 4 6 ... ` .)  (Contributed by Mario Carneiro,
       9-May-2016.) $)
    divsqrsum $p |- F e. dom ~~>r $=
      ( crp cr wf crli cdm wcel c1 wbr wa cfv cmin co cabs csqrt cdiv cle wi
      divsqrtsumlem simp2i ) EFCGCHIJCKHLKEJMKCNKOPQNKKRNSPTLUAAKBCKDUBUC $.

    divsqrsum2.1 $e |- ( ph -> F ~~>r L ) $.
    $( A bound on the distance of the sum ` sum_ n <_ x ( 1 / sqrt n ) ` from
       its asymptotic value ` 2 sqrt x + L ` .  (Contributed by Mario Carneiro,
       18-May-2016.) $)
    divsqrtsum2 $p |- ( ( ph /\ A e. RR+ ) ->
      ( abs ` ( ( F ` A ) - L ) ) <_ ( 1 / ( sqrt ` A ) ) ) $=
      ( crli wbr crp wcel cfv cmin co cabs c1 csqrt cdiv cle cr wf wa wi simp3i
      cdm divsqrtsumlem sylan ) AEFIJZCKLZCEMFNOPMQCRMSOTJZHKUAEUBEIUFLUIUJUCUK
      UDBCDEFGUGUEUH $.

    $( The sum ` sum_ n <_ x ( 1 / sqrt n ) ` has the asymptotic expansion
       ` 2 sqrt x + L + O ( 1 / sqrt x ) ` , for some ` L ` .  (Contributed by
       Mario Carneiro, 10-May-2016.) $)
    divsqrtsumo1 $p |- ( ph ->
      ( y e. RR+ |-> ( ( ( F ` y ) - L ) x. ( sqrt ` y ) ) ) e. O(1) ) $=
      ( crp cfv co cmul c1 cr a1i wcel wa cabs cle wbr cv cmin csqrt wss rpssre
      divsqrsumf ffvelrni cxr clt csup cpnf wceq rpsup cmpt wf feqmptd eqbrtrrd
      crli adantl rlimrecl resubcl syl2anr recnd rpsqrtcl rpcnd mulcld 1red cc0
      absmuld rprege0d absid syl oveq2d eqtrd cdiv divsqrtsum2 abscld lemuldivd
      mpbird eqbrtrd adantrr elo1d ) ACICUAZEJZFUBKZWCUCJZLKZMMINUDAUEOAWCIPZQZ
      WEWFWIWEWHWDNPZFNPWENPAINWCEBDEGUFZUGZACIWDFIUHUIUJUKULAUMOAECIWDUNFURACI
      NEINEUOAWKOUPHUQWHWJAWLUSUTWDFVAVBVCZWIWFWHWFIPAWCVDUSZVEZVFAVGZWPAWHWGRJ
      ZMSTMWCSTWIWQWERJZWFLKZMSWIWQWRWFRJZLKWSWIWEWFWMWOVIWIWTWFWRLWIWFNPVHWFST
      QWTWFULWIWFWNVJWFVKVLVMVNWIWSMSTWRMWFVOKSTABWCDEFGHVPWIWRMWFWIWEWMVQWIVGW
      NVRVSVTWAWB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Inequality of arithmetic and geometric means
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y D $.  $d x y ph $.  $d x y X $.  $d x y Y $.
    cvxcl.1 $e |- ( ph -> D C_ RR ) $.
    cvxcl.2 $e |- ( ( ph /\ ( x e. D /\ y e. D ) ) -> ( x [,] y ) C_ D ) $.
    $( Closure of a 0-1 linear combination in a convex set.  (Contributed by
       Mario Carneiro, 21-Jun-2015.) $)
    cvxcl $p |- ( ( ph /\ ( X e. D /\ Y e. D /\ T e. ( 0 [,] 1 ) ) ) ->
      ( ( T x. X ) + ( ( 1 - T ) x. Y ) ) e. D ) $=
      ( wcel c1 cicc co wa cmul caddc wceq wss adantr cr cc0 w3a clt ralrimivva
      wbr cmin cv wral ad2antrr simpr1 simpr2 oveq1 sseq1d oveq2 rspc2v syl2anc
      wi mpd cc ax-1cn unitssre simpr3 sseldi recnd nncan sylancr oveq1d sseldd
      simpr simplr3 iirev syl lincmb01cmp syl31anc eqeltrrd sylancl 1re resubcl
      pncan3 adddird mulid2d 3eqtr3d sylan9eqr eqeltrd mulcld addcomd mpjao3dan
      lttri4d ) AFDJZGDJZEUAKLMZJZUBZNZFGUCUEZEFOMZKEUFMZGOMZPMZDJFGQZGFUCUEZWN
      WONZFGLMZDWSXBBUGZCUGZLMZDRZCDUHBDUHZXCDRZAXHWMWOAXGBCDDIUDZUIWNXHXIUQZWO
      WNWIWJXKAWIWJWLUJZAWIWJWLUKZXGXIFXELMZDRBCFGDDXDFQXFXNDXDFXELULUMXEGQXNXC
      DXEGFLUNUMUOUPSURXBKWQUFMZFOMZWRPMZWSXCWNXQWSQWOWNXPWPWRPWNXOEFOWNKUSJZEU
      SJZXOEQUTWNEWNWKTEVAAWIWJWLVBVCZVDZKEVEVFVGVGSXBFTJZGTJZWOWQWKJZXQXCJWNYB
      WOWNDTFADTRWMHSZXLVHZSWNYCWOWNDTGYEXMVHZSWNWOVIXBWLYDWIWJWLAWOVJEVKVLFGWQ
      VMVNVOVHWNWTNWSGDWTWNWSEGOMZWRPMZGWTWPYHWRPFGEOUNVGWNEWQPMZGOMKGOMYIGWNYJ
      KGOWNXSXRYJKQYAUTEKVSVPVGWNEWQGYAWNWQWNKTJETJWQTJVQXTKEVRVFVDZWNGYGVDZVTW
      NGYLWAWBWCWNWJWTXMSWDWNXANZGFLMZDWSYMXHYNDRZAXHWMXAXJUIWNXHYOUQZXAWNWJWIY
      PXMXLXGYOGXELMZDRBCGFDDXDGQXFYQDXDGXELULUMXEFQYQYNDXEFGLUNUMUOUPSURYMWSWR
      WPPMZYNWNWSYRQXAWNWPWRWNEFYAWNFYFVDWEWNWQGYKYLWEWFSYMYCYBXAWLYRYNJWNYCXAY
      GSWNYBXAYFSWNXAVIWIWJWLAXAVJGFEVMVNWDVHWNFGYFYGWHWG $.
  $}

  ${
    $d a b t x y D $.  $d a b t x y ph $.  $d a b t x y X $.  $d a b t x y Y $.
    $d t x y F $.  $d t T $.
    scvxcvx.1 $e |- ( ph -> D C_ RR ) $.
    scvxcvx.2 $e |- ( ph -> F : D --> RR ) $.
    scvxcvx.3 $e |- ( ( ph /\ ( a e. D /\ b e. D ) ) -> ( a [,] b ) C_ D ) $.
    scvxcvx.4 $e |- ( ( ph /\ ( x e. D /\ y e. D /\ x < y ) /\
      t e. ( 0 (,) 1 ) ) -> ( F ` ( ( t x. x ) + ( ( 1 - t ) x. y ) ) ) <
       ( ( t x. ( F ` x ) ) + ( ( 1 - t ) x. ( F ` y ) ) ) ) $.
    $( A strictly convex function is convex.  (Contributed by Mario Carneiro,
       20-Jun-2015.) $)
    scvxcvx $p |- ( ( ph /\ ( X e. D /\ Y e. D /\ T e. ( 0 [,] 1 ) ) ) ->
      ( F ` ( ( T x. X ) + ( ( 1 - T ) x. Y ) ) ) <_
       ( ( T x. ( F ` X ) ) + ( ( 1 - T ) x. ( F ` Y ) ) ) ) $=
      ( cc0 c1 co cmul caddc wcel cicc w3a wa cmin cfv cle wbr clt wceq wo cioo
      cpr w3o cr wss adantr simpr1 sseldd simpr2 lttri4d wral simprl jca simprr
      cv simpll breq1 oveq2 oveq1d fveq2d oveq2d breq12d ralbidv imbi2d imbi12d
      fveq2 breq2 3expia ralrimiv expcom vtocl2ga syl3c oveq1 oveq12d sylc orcd
      wi rspcv expr cc unitssre simpr3 sseldi recnd ax-1cn pncan3 sylancl subcl
      sylancr adddird mulid2d 3eqtr3d wf ffvelrnd eqtr4d eqeq12d syl5ibrcom olc
      syl6 1re elioore resubcl eliooord simprd posdif mpbid simpld ltsubpos cxr
      wb 0xr rexri elioo2 mp2an syl3anbrc ad2antrl nncan remulcld addcomd eqtrd
      3brtr3d 3jaod mpd ex addid2d mul02d 3eqtr4rd syl6eq addid1d jaod cun 0le1
      elpri 1m0e1 1m1e0 syl56 prunioo mp3an syl6eleqr elun sylib cvxcl readdcld
      mpjaod leloed mpbird ) AHEUAZIEUAZFPQUBRZUAZUCZUDZFHSRZQFUERZISRZTRZGUFZF
      HGUFZSRZUVEIGUFZSRZTRZUGUHUVHUVMUIUHZUVHUVMUJZUKZUVCFPQULRZUAZUVPFPQUMZUA
      ZUVCUVRUVPUVCUVRUDZHIUIUHZHIUJZIHUIUHZUNUVPUWAHIUVCHUOUAUVRUVCEUOHAEUOUPU
      VBLUQZAUURUUSUVAURZUSZUQUVCIUOUAUVRUVCEUOIUWEAUURUUSUVAUTZUSZUQVAUWAUWBUV
      PUWCUWDUVCUVRUWBUVPUVCUVRUWBUDZUDZUVNUVOUWKUVRDVFZHSRZQUWLUERZISRZTRZGUFZ
      UWLUVISRZUWNUVKSRZTRZUIUHZDUVQVBZUVNUVCUVRUWBVCUWKUURUUSUDUWBAUXBUWKUURUU
      SUVCUURUWJUWFUQUVCUUSUWJUWHUQVDUVCUVRUWBVEAUVBUWJVGBVFZCVFZUIUHZAUWLUXCSR
      ZUWNUXDSRZTRZGUFZUWLUXCGUFZSRZUWNUXDGUFZSRZTRZUIUHZDUVQVBZWHZWHZHUXDUIUHZ
      AUWMUXGTRZGUFZUWRUXMTRZUIUHZDUVQVBZWHZWHUWBAUXBWHZWHBCHIEEUXCHUJZUXEUXSUX
      QUYEUXCHUXDUIVHUYGUXPUYDAUYGUXOUYCDUVQUYGUXIUYAUXNUYBUIUYGUXHUXTGUYGUXFUW
      MUXGTUXCHUWLSVIVJVKUYGUXKUWRUXMTUYGUXJUVIUWLSUXCHGVQVLVJVMVNVOVPUXDIUJZUX
      SUWBUYEUYFUXDIHUIVRUYHUYDUXBAUYHUYCUXADUVQUYHUYAUWQUYBUWTUIUYHUXTUWPGUYHU
      XGUWOUWMTUXDIUWNSVIVLVKUYHUXMUWSUWRTUYHUXLUVKUWNSUXDIGVQVLVLVMVNVOVPUXCEU
      AZUXDEUAZUXEUXQAUYIUYJUXEUCZUXPAUYKUDUXODUVQAUYKUWLUVQUAUXOOVSVTWAVSZWBWC
      UXAUVNDFUVQUWLFUJZUWQUVHUWTUVMUIUYMUWPUVGGUYMUWMUVDUWOUVFTUWLFHSWDUYMUWNU
      VEISUWLFQUEVIZVJWEVKUYMUWRUVJUWSUVLTUWLFUVISWDUYMUWNUVEUVKSUYNVJWEVMWIWFW
      GWJUWAUWCUVOUVPUWAUVOUWCFISRZUVFTRZGUFZFUVKSRZUVLTRZUJZUVCUYTUVRUVCUYQUVK
      UYSUVCUYPIGUVCFUVETRZISRQISRZUYPIUVCVUAQISUVCFWKUAZQWKUAZVUAQUJUVCFUVCUUT
      UOFWLAUURUUSUVAWMZWNZWOZWPFQWQWRZVJUVCFUVEIVUGUVCVUDVUCUVEWKUAWPVUGQFWSWT
      ZUVCIUWIWOZXAUVCIVUJXBZXCVKUVCVUAUVKSRQUVKSRZUYSUVKUVCVUAQUVKSVUHVJUVCFUV
      EUVKVUGVUIUVCUVKUVCEUOIGAEUOGXDUVBMUQZUWHXEZWOZXAUVCUVKVUOXBZXCXFUQUWCUVH
      UYQUVMUYSUWCUVGUYPGUWCUVDUYOUVFTHIFSVIVJVKUWCUVJUYRUVLTUWCUVIUVKFSHIGVQVL
      VJXGXHUVOUVNXIZXJUVCUVRUWDUVPUVCUVRUWDUDZUDZUVNUVOVUSUVFQUVEUERZHSRZTRZGU
      FZUVLVUTUVISRZTRZUVHUVMUIVUSUVEUVQUAZUWLISRZUWNHSRZTRZGUFZUWLUVKSRZUWNUVI
      SRZTRZUIUHZDUVQVBZVVCVVEUIUHZUVRVVFUVCUWDUVRUVEUOUAZPUVEUIUHZUVEQUIUHZVVF
      UVRQUOUAZFUOUAZVVQXKFPQXLZQFXMZWTUVRFQUIUHZVVRUVRPFUIUHZVWDFPQXNZXOUVRVWA
      VVTVWDVVRYAVWBXKFQXPWRXQUVRVWEVVSUVRVWEVWDVWFXRUVRVWAVVTVWEVVSYAVWBXKFQXS
      WRXQPXTUAZQXTUAZVVFVVQVVRVVSUCYAYBQXKYCZPQUVEYDYEYFYGVUSUUSUURUDUWDAVVOVU
      SUUSUURUVCUUSVURUWHUQUVCUURVURUWFUQVDUVCUVRUWDVEAUVBVURVGUXRIUXDUIUHZAVVG
      UXGTRZGUFZVVKUXMTRZUIUHZDUVQVBZWHZWHUWDAVVOWHZWHBCIHEEUXCIUJZUXEVWJUXQVWP
      UXCIUXDUIVHVWRUXPVWOAVWRUXOVWNDUVQVWRUXIVWLUXNVWMUIVWRUXHVWKGVWRUXFVVGUXG
      TUXCIUWLSVIVJVKVWRUXKVVKUXMTVWRUXJUVKUWLSUXCIGVQVLVJVMVNVOVPUXDHUJZVWJUWD
      VWPVWQUXDHIUIVRVWSVWOVVOAVWSVWNVVNDUVQVWSVWLVVJVWMVVMUIVWSVWKVVIGVWSUXGVV
      HVVGTUXDHUWNSVIVLVKVWSUXMVVLVVKTVWSUXLUVIUWNSUXDHGVQVLVLVMVNVOVPUYLWBWCVV
      NVVPDUVEUVQUWLUVEUJZVVJVVCVVMVVEUIVWTVVIVVBGVWTVVGUVFVVHVVATUWLUVEISWDVWT
      UWNVUTHSUWLUVEQUEVIZVJWEVKVWTVVKUVLVVLVVDTUWLUVEUVKSWDVWTUWNVUTUVISVXAVJW
      EVMWIWFVUSVVBUVGGUVCVVBUVGUJVURUVCVVBUVFUVDTRUVGUVCVVAUVDUVFTUVCVUTFHSUVC
      VUDVUCVUTFUJWPVUGQFYHWTZVJVLUVCUVFUVDUVCUVFUVCUVEIUVCVVTVWAVVQXKVUFVWCWTZ
      UWIYIWOUVCUVDUVCFHVUFUWGYIWOYJYKUQVKUVCVVEUVMUJVURUVCVVEUVLUVJTRUVMUVCVVD
      UVJUVLTUVCVUTFUVISVXBVJVLUVCUVLUVJUVCUVLUVCUVEUVKVXCVUNYIZWOUVCUVJUVCFUVI
      VUFUVCEUOHGVUMUWFXEZYIZWOYJYKUQYLWGWJYMYNYOUVTFPUJZFQUJZUKUVCUVOUVPFPQUUD
      UVCVXGUVOVXHUVCUVOVXGPHSRZVUBTRZGUFZPUVISRZVULTRZUJUVCPUVKTRUVKVXMVXKUVCU
      VKVUOYPUVCVXLPVULUVKTUVCUVIUVCUVIVXEWOZYQVUPWEUVCVXJIGUVCVXJPITRIUVCVXIPV
      UBITUVCHUVCHUWGWOZYQVUKWEUVCIVUJYPYKVKYRVXGUVHVXKUVMVXMVXGUVGVXJGVXGUVDVX
      IUVFVUBTFPHSWDVXGUVEQISVXGUVEQPUERQFPQUEVIUUEYSZVJWEVKVXGUVJVXLUVLVULTFPU
      VISWDVXGUVEQUVKSVXPVJWEXGXHUVCUVOVXHQHSRZPISRZTRZGUFZQUVISRZPUVKSRZTRZUJU
      VCUVIPTRUVIVYCVXTUVCUVIVXNYTUVCVYAUVIVYBPTUVCUVIVXNXBUVCUVKVUOYQWEUVCVXSH
      GUVCVXSHPTRHUVCVXQHVXRPTUVCHVXOXBUVCIVUJYQWEUVCHVXOYTYKVKYRVXHUVHVXTUVMVY
      CVXHUVGVXSGVXHUVDVXQUVFVXRTFQHSWDVXHUVEPISVXHUVEQQUERPFQQUEVIUUFYSZVJWEVK
      VXHUVJVYAUVLVYBTFQUVISWDVXHUVEPUVKSVYDVJWEXGXHUUAVUQUUGUVCFUVQUVSUUBZUAUV
      RUVTUKUVCFUUTVYEVUEVWGVWHPQUGUHVYEUUTUJYBVWIUUCPQUUHUUIUUJFUVQUVSUUKUULUU
      OUVCUVHUVMUVCEUOUVGGVUMAJKEFHILNUUMXEUVCUVJUVLVXFVXDUUNUUPUUQ $.
  $}

  ${
    $d a b c k t w x y A $.  $d a b c k t w x y D $.  $d a b c k t w x y ph $.
    $d a b c k t w x y F $.  $d a b c k t w x y T $.  $d a b c k t w x y X $.
    $d a b t x y z B $.  $d t x y L $.  $d a b t x y S $.
    jensen.1 $e |- ( ph -> D C_ RR ) $.
    jensen.2 $e |- ( ph -> F : D --> RR ) $.
    jensen.3 $e |- ( ( ph /\ ( a e. D /\ b e. D ) ) -> ( a [,] b ) C_ D ) $.
    jensen.4 $e |- ( ph -> A e. Fin ) $.
    jensen.5 $e |- ( ph -> T : A --> ( 0 [,) +oo ) ) $.
    jensen.6 $e |- ( ph -> X : A --> D ) $.
    jensen.7 $e |- ( ph -> 0 < ( CCfld gsum T ) ) $.
    jensen.8 $e |- ( ( ph /\ ( x e. D /\ y e. D /\ t e. ( 0 [,] 1 ) ) ) ->
      ( F ` ( ( t x. x ) + ( ( 1 - t ) x. y ) ) ) <_
       ( ( t x. ( F ` x ) ) + ( ( 1 - t ) x. ( F ` y ) ) ) ) $.
    ${
      jensenlem.1 $e |- ( ph -> -. z e. B ) $.
      jensenlem.2 $e |- ( ph -> ( B u. { z } ) C_ A ) $.
      jensenlem.s $e |- S = ( CCfld gsum ( T |` B ) ) $.
      jensenlem.l $e |- L = ( CCfld gsum ( T |` ( B u. { z } ) ) ) $.
      $( Lemma for ~ jensen .  (Contributed by Mario Carneiro, 4-Jun-2016.) $)
      jensenlem1 $p |- ( ph -> L = ( S + ( T ` z ) ) ) $=
        ( ccnfld cv csn cun cres cgsu cfv caddc cmpt cnfldbas cnfldadd crg wcel
        co cc ccmn cnring ringcmn mp1i cfn wss unssad ssfi syl2anc wa cpnf cico
        cc0 rge0ssre ax-resscn sstri sselda ffvelrnda syldan sseldi unssbd snss
        cr vex sylibr ffvelrnd gsumunsn feqresmpt oveq2d oveq1d 3eqtr4d 3eqtr4g
        fveq2 oveq1i ) AUHJGDUIZUJZUKZULZUMVAZUHJGULZUMVAZWQJUNZUOVAZLIXDUOVAAU
        HBWSBUIZJUNZUPZUMVAUHBGXGUPZUMVAZXDUOVAXAXEAGVBUOBUHWQFXGXDUQURUHUSUTUH
        VCUTAVDUHVEVFAFVGUTGFVHGVGUTSAGWRFUEVIZFGVJVKAXFGUTZVLVOVMVNVAZVBXGXMWE
        VBVPVQVRZAXLXFFUTXGXMUTAGFXFXKVSAFXMXFJTVTWAWBAWRFVHWQFUTAGWRFUEWCWQFDW
        FWDWGZUDAXMVBXDXNAFXMWQJTXOWHWBXFWQJWOWIAWTXHUHUMABFXMWSJTUEWJWKAXCXJXD
        UOAXBXIUHUMABFXMGJTXKWJWKWLWMUGIXCXDUOUFWPWN $.

      jensenlem.3 $e |- ( ph -> S e. RR+ ) $.
      jensenlem.4 $e |- ( ph ->
        ( ( CCfld gsum ( ( T oF x. X ) |` B ) ) / S ) e. D ) $.
      jensenlem.5 $e |- ( ph ->
        ( F ` ( ( CCfld gsum ( ( T oF x. X ) |` B ) ) / S ) ) <_
        ( ( CCfld gsum ( ( T oF x. ( F o. X ) ) |` B ) ) / S ) ) $.
      $( Lemma for ~ jensen .  (Contributed by Mario Carneiro, 21-Jun-2015.) $)
      jensenlem2 $p |- ( ph ->
        ( ( ( CCfld gsum ( ( T oF x. X ) |` ( B u. { z } ) ) ) / L ) e. D /\
         ( F ` ( ( CCfld gsum ( ( T oF x. X ) |` ( B u. { z } ) ) ) / L ) ) <_
     ( ( CCfld gsum ( ( T oF x. ( F o. X ) ) |` ( B u. { z } ) ) ) / L ) ) ) $=
        ( ccnfld cmul cof co cv csn cun cres cgsu cdiv wcel cfv ccom cle wbr c1
        cmin caddc cr cfn cc0 cnfld0 crg cabl cnring ringabl wss unssad syl2anc
        mp1i csubrg csubg crefld cdr resubdrg simpli wa wf rge0ssre off fssresd
        ssfi cvv fdmfifsupp gsumsubgcl recnd cc ffvelrnd sseldi sseldd readdcld
        mulcld syl eqeltrd mpbid breqtrrd divdird cmpt cnfldbas cnfldadd syldan
        ffvelrnda fveq2 oveq12d gsumunsn feqmptd offval2 reseq1d resmptd oveq2d
        wceq oveq1d 3eqtr4d dmdcand div23d eqtr4d w3a redivcld clt wb syl112anc
        eqtrd 1re remulcld wi oveq2 fveq2d breq12d imbi2d oveq1 adantl cpnf fss
        subrgsubg remulcl cico sylancl fssd inidm c0ex a1i ax-resscn unssbd vex
        sstri snss sylibr jensenlem1 rpred elrege0 simplbi 0red rpgt0d addge01d
        simprbi ltletrd gt0ne0d ringcmn sselda adantr rpne0d divsubdird pncan2d
        ccmn dividd 3eqtr3rd rpge0d divge0 syl22anc mulid1d ledivmul mpbird 0re
        cicc 1red elicc2i syl3anbrc 3jca cvxcl mpdan fco resubcl sylancr expcom
        vtocl3ga syl3anc pm2.43i breqtrd divgt0d lemul2 leadd1dd eqbrtrd fmptco
        letrd 3brtr4d jca ) AUKJMULUMZUNZGDUOZUPZUQZURZUSUNZLUTUNZHVAUXNKVBZUKJ
[encoded data, 4240 characters]
        VYAVYFVHAVXQILWVPVWLVVFVWMVVJYDWVKXNYCUXEUXF $.
    $}

    $( Jensen's inequality, a finite extension of the definition of convexity
       (the last hypothesis).  (Contributed by Mario Carneiro, 21-Jun-2015.)
       (Proof shortened by AV, 27-Jul-2019.) $)
    jensen $p |- ( ph ->
      ( ( ( CCfld gsum ( T oF x. X ) ) / ( CCfld gsum T ) ) e. D /\
        ( F ` ( ( CCfld gsum ( T oF x. X ) ) / ( CCfld gsum T ) ) ) <_
         ( ( CCfld gsum ( T oF x. ( F o. X ) ) ) / ( CCfld gsum T ) ) ) ) $=
      ( co vw vk vc ccnfld cmul cof cgsu cdiv cv cfv ccom cle crab wcel wa cres
      wbr wss cc0 clt wfn wceq cpnf cico wf ffn syl fnresdm breqtrrd ssid jctil
      oveq2d cfn wi reseq2 syl6eq cnfld0 breq2d anbi12d oveq12d rabbidv eleq12d
      c0 sseq1 imbi12d imbi2d 0re adantl a1i wel simprl simpr cr ad3antrrr cicc
      sylan c1 caddc adantr eqid cnring mp1i ad2antrr ssfi syl2anc fssresd c0ex
      cvv elrege0 fveq2 breq1d elrab simpld simprd embantd cc cnfldbas rge0ssre
      sylib fss sylancl fssd off ax-resscn csupp offres oveq1d cdif fvres mpbid
      eqtrd suppssof1 eqsstrd gsumpt fnfvof syl22anc 3eqtrd ffvelrnd divcan3d
      fex csn cun res0 gsum0 ltnri pm2.21i wn impexp unssad simplll w3a simpllr
      cmin ringcmn csubmnd rege0subm fdmfifsupp gsumsubmcl simplbi elrpd simprr
      ccmn jensenlem2 sylibr expr cmnd ringmnd ssun2 vsnid sselii remulcl inidm
      crg sstri eldifi difun2 difss eqsstri sseli wral cmpt feqresmpt ffvelrnda
      sselda syldan sseldi gsumfsum 3eqtrrd fsum00 r19.21bi sylan2 suppss mul02
      csu syl6ss sseldd simplrr breqtrd gt0ne0d eqeltrd leidd fnfco fvco3 recnd
      fveq2d fco 3brtr4d sylanbrc a1d wo simprbi wb leloe mpjaodan syl5bi com23
      sylancr ex expcom a2d findcard2s mpcom mpd offn 3eltr3d ) AUDGIUEUFZTZUGT
[encoded data, 6080 characters]
      ULUYKUYJHXJXKXLXS $.
  $}

  ${
    $d a b k s u v w x y A $.  $d x y M $.  $d a b k s t u v w x y ph $.
    $d a b k s u v w x y F $.
    amgm.1 $e |- M = ( mulGrp ` CCfld ) $.
    ${
      amgm.2 $e |- ( ph -> A e. Fin ) $.
      amgm.3 $e |- ( ph -> A =/= (/) ) $.
      amgm.4 $e |- ( ph -> F : A --> RR+ ) $.
      $( Lemma for ~ amgm .  (Contributed by Mario Carneiro, 21-Jun-2015.) $)
      amgmlem $p |- ( ph -> ( ( M gsum F ) ^c ( 1 / ( # ` A ) ) ) <_
            ( ( CCfld gsum F ) / ( # ` A ) ) ) $=
        ( vk c1 cfv co cgsu clog cmul ccnfld cr cc0 wcel crp vx vw vu cdiv ccxp
        vv vs va vb vy vt chash ce cle wbr cneg cmpt cfn cnfld0 crg cabl cnring
        ringabl mp1i csubrg csubg crefld cdr resubdrg simpli subrgsubg relogcld
        cv renegcld eqid fmptd cvv a1i fdmfifsupp gsumsubgcl recnd syl ccom csu
        wa wb gsumfsum negeqd feqmptd fvres fveq2 fmptco oveq2d 3eqtr4d csubmnd
        wf cress wceq csn wss oveq1i subgsubm ax-mp cnfldbas ccmn cmnd df-refld
        cc syl2anc ringmnd gsumsubm fveq2d 3eqtrd divrec2d rpcnd eqtrd nndivred
        rpssre adantl cicc cpnf cioo ioorp eleq2i clt w3a caddc sseldi remulcld
        mpbid negex fvmpt mulneg2d oveq12d 3brtr4d cnfldadd cnfldmul gsummulc2
        offval2 div1d ffvelrnda c0ex cn c0 hashnncl mpbird nncnd nnne0d divnegd
        wne cres negnegd sumeq2dv fsumneg 3eqtr2rd relogf1o mpteq2ia syl6eq cbs
        wf1o f1of cdif cmgp rpmsubg cndrng drngui unitsubm subsubm mp2b submbas
        mpbi c0g cnfld1 ringidval subm0 cncrng crngmgp submmnd subcmn subrgring
        ccrg cghm cmhm reloggim gimghm ghmmhm 1ex gsummhm fco gsumsubmcl oveq1d
        cgim fsumrpcl eqeltrd nnrpd rpdivcld cxp cof relogcl iccssioo2 syl2anbr
        syl6sseq cico nnrecred rpreccld rpge0d sylanbrc fconst6g 0lt1 fconstmpt
        elrege0 oveq2i cmg gsumconst syl3anc cz nnzd cnfldmulg recidd syl5breqr
        syl5eq logccv 3adant1 ioossre simp3 simp21 1re resubcl sylancr readdcld
        cmin simp22 simp1 ioossicc syl13anc ltnegd negdid eqtr4d scvxcvx jensen
        cvxcl simprd adantr fss sylancl eqtr2d 3brtr3d lenegcon1d eqbrtrrd efle
        eqidd rpne0d cxpefd reeflogd eqcomd ) AJBULKZUDLZDCMLZNKZOLZUMKZPCMLZVU
[encoded data, 4320 characters]
        VURVYQXOAVURVYQVULWWIVUMAVVEVVCAVVCWUEVUNVUOYO $.
    $}

    $( Inequality of arithmetic and geometric means.  Here ` ( M gsum F ) `
       calculates the group sum within the multiplicative monoid of the complex
       numbers (or in other words, it multiplies the elements
       ` F ( x ) , x e. A ` together), and ` ( CCfld gsum F ) ` calculates the
       group sum in the additive group (i.e. the sum of the elements).  This is
       Metamath 100 proof #38.  (Contributed by Mario Carneiro,
       20-Jun-2015.) $)
    amgm $p |- ( ( A e. Fin /\ A =/= (/) /\ F : A --> ( 0 [,) +oo ) ) ->
        ( ( M gsum F ) ^c ( 1 / ( # ` A ) ) ) <_
          ( ( CCfld gsum F ) / ( # ` A ) ) ) $=
      ( vx cfn wcel cc0 co wceq cgsu c1 ccnfld cle wbr wa cmul cc cr cvv vy wne
      c0 cpnf cico wf w3a cv cfv wrex chash cdiv ccxp cres cdif cnfldbas mgpbas
      cnfld1 ringidval cnfldmul mgpplusg ccrg ccmn cncrng crngmgp simpl1 simpl3
      csn mp1i wss rge0ssre ax-resscn sstri fss sylancl 1ex a1i cin disjdif cun
      fdmfifsupp undif2 simprl snssd ssequn1 syl5req gsumsplit feqresmpt oveq2d
      sylib cmpt crg cnring ringmgp ffvelrnd fveq2 gsumsn syl3anc simprr 3eqtrd
      cmnd oveq1d diffi difss fssres gsumcl mul02d cn simpl2 wb hashnncl mpbird
      syl nncnd nnne0d reccld recne0d 0cxpd eqtrd clt ringcmn csubmnd rege0subm
      cnfld0 gsumsubmcl elrege0 nnred nngt0d divge0 syl12anc eqbrtrd rexlimdvaa
      c0ex wn wral ralnex wfn crp ffn wo ffvelrn 3ad2antl3 simprd leloe sylancr
      0re simpld mpbid ord eqcom syl6ib elrp baib sylibrd ralimdva imp sylanbrc
      con1d ffnfv amgmlem ex syl5bir pm2.61d ) AFGZAUCUBZAHUDUEIZBUFZUGZEUHZBUI
      ZHJZEAUJZCBKIZLAUKUIZULIZUMIZMBKIZUVNULIZNOZUVHUVKUVSEAUVHUVIAGZUVKPZPZUV
      PHUVRNUWBUVPHUVOUMIHUWBUVMHUVOUMUWBUVMCBUVIVHZUNZKIZCBAUWCUOZUNZKIZQIHUWH
      QIHUWBARUWCUWFQBCFLRMCDUPUQZMLCDURUSZMQCDUTVAMVBGCVCGUWBVDMCDVEVIZUVDUVEU
      VGUWAVFZUWBUVGUVFRVJARBUFZUVDUVEUVGUWAVGZUVFSRVKVLVMAUVFRBVNVOZUWBARBTLUW
      OUWLLTGUWBVPVQZWAUWCUWFVRUCJUWBUWCAVSVQUWBUWCUWFVTUWCAVTZAUWCAWBUWBUWCAVJ
      UWQAJUWBUVIAUVHUVTUVKWCZWDZUWCAWEWJWFWGUWBUWEHUWHQUWBUWECUAUWCUAUHZBUIZWK
      ZKIZUVJHUWBUWDUXBCKUWBUAAUVFUWCBUWNUWSWHWIUWBCXAGZUVTUVJRGUXCUVJJMWLGZUXD
      UWBWMMCDWNVIUWRUWBARUVIBUWOUWRWOUXARUVJUACUVIAUWIUWTUVIBWPWQWRUVHUVTUVKWS
      WTXBUWBUWHUWBUWFRUWGCFLUWIUWJUWKUWBUVDUWFFGUWLAUWCXCXMZUWBUWMUWFAVJUWFRUW
      GUFUWOAUWCXDARUWFBXEVOZUWBUWFRUWGTLUXGUXFUWPWAXFXGWTXBUWBUVOUWBUVNUWBUVNU
      WBUVNXHGZUVEUVDUVEUVGUWAXIUWBUVDUXHUVEXJUWLAXKXMXLZXNZUWBUVNUXIXOZXPUWBUV
      NUXJUXKXQXRXSUWBUVQSGHUVQNOPZUVNSGHUVNXTOHUVRNOUWBUVQUVFGUXLUWBAUVFBMFHYD
      UXEMVCGUWBWMMYAVIUWLUVFMYBUIGUWBYCVQUWNUWBAUVFBTHUWNUWLHTGUWBYMVQWAYEUVQY
      FWJUWBUVNUXIYGUWBUVNUXIYHUVQUVNYIYJYKYLUVLYNUVKYNZEAYOZUVHUVSUVKEAYPUVHUX
      NUVSUVHUXNPZABCDUVDUVEUVGUXNVFUVDUVEUVGUXNXIUXOBAYQZUVJYRGZEAYOZAYRBUFUXO
      UVGUXPUVDUVEUVGUXNVGAUVFBYSXMUVHUXNUXRUVHUXMUXQEAUVHUVTPZUXMHUVJXTOZUXQUX
      SUXTUVKUXSUXTYNHUVJJZUVKUXSUXTUYAUXSHUVJNOZUXTUYAYTZUXSUVJSGZUYBUXSUVJUVF
      GZUYDUYBPUVGUVDUVTUYEUVEAUVFUVIBUUAUUBUVJYFWJZUUCUXSHSGUYDUYBUYCXJUUFUXSU
      YDUYBUYFUUGZHUVJUUDUUEUUHUUIHUVJUUJUUKUURUXSUYDUXQUXTXJUYGUXQUYDUXTUVJUUL
      UUMXMUUNUUOUUPEAYRBUUSUUQUUTUVAUVBUVC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Euler-Mascheroni constant
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c gamma $. $( Euler-Mascheroni constant (small letter gamma) $)

  $( The Euler-Mascheroni constant.  (The label abbreviates
     Euler-Mascheroni.) $)
  cem $a class gamma $.

  ${
    $( Define the Euler-Mascheroni constant, ` gamma = ` 0.577... .  This is
       the limit of the series
       ` sum_ k e. ( 1 ... m ) ( 1 / k ) - ( log `` m ) ` , with a proof that
       the limit exists in ~ emcl .  (Contributed by Mario Carneiro,
       11-Jul-2014.) $)
    df-em $a |- gamma = sum_ k e. NN
      ( ( 1 / k ) - ( log ` ( 1 + ( 1 / k ) ) ) ) $.
  $}

  ${
    $( Bound on the difference of logs.  (Contributed by Mario Carneiro,
       23-May-2016.) $)
    logdifbnd $p |- ( A e. RR+ ->
      ( ( log ` ( A + 1 ) ) - ( log ` A ) ) <_ ( 1 / A ) ) $=
      ( crp wcel c1 cdiv co caddc clog cfv cmin cle rpcn 1rp rpaddcl wbr ce syl
      rpred cr relogcl rpne0 divdird dividd oveq1d eqtr2d fveq2d mpan2 relogdiv
      1cnd wceq mpancom eqtrd rpreccl sylancr reeflogd reefcld clt efgt1p ltled
      eqbrtrd wb resubcld eqeltrd efle syl2anc mpbird eqbrtrrd ) ABCZDDAEFZGFZH
      IZADGFZHIZAHIZJFZVIKVHVKVLAEFZHIZVOVHVJVPHVHVPAAEFZVIGFVJVHADAALZVHUIVSAU
      AZUBVHVRDVIGVHAVSVTUCUDUEUFVLBCZVHVQVOUJVHDBCZWAMADNUGZVLAUHUKULZVHVKVIKO
      ZVKPIZVIPIZKOZVHWFVJWGKVHVJVHWBVIBCZVJBCMAUMZDVINUNZUOVHVJWGVHVJWKRVHVIVH
      VIWJRZUPVHWIVJWGUQOWJVIURQUSUTVHVKSCVISCWEWHVAVHVKVOSWDVHVMVNVHWAVMSCWCVL
      TQATVBVCWLVKVIVDVEVFVG $.

    $( Lower bound on the difference of logs.  (Contributed by Mario Carneiro,
       3-Jul-2017.) $)
    logdiflbnd $p |- ( A e. RR+ ->
      ( 1 / ( A + 1 ) ) <_ ( ( log ` ( A + 1 ) ) - ( log ` A ) ) ) $=
      ( crp wcel c1 caddc co cdiv cfv clog cmin cle wbr rpge0 ge0p1rpd rprecred
      ce rpre clt recnd oveq1d 1red cc0 0le1 divge0d cmul id ltaddrp2d readdcld
      mulid1d breqtrrd ltdivmuld mpbird eflegeo rpne0d divsubdird pncand dividd
      3eqtr3rd oveq2d rpne0 recdivd eqtrd breqtrd rpefcld rpdivcld logled mpbid
      a1i relogefd relogdivd 3brtr3d ) ABCZDADEFZGFZPHZIHZVMAGFZIHZVNVMIHAIHJFK
      VLVOVQKLVPVRKLVLVODDVNJFZGFZVQKVLVNVLVMVLAAQZAMNZOZVLDVMVLUAZWBUBDKLVLUCV
      HUDVLVNDRLDVMDUEFZRLVLDVMWERVLDAWDVLUFZUGVLVMVLVMVLADWAWDUHSZUIUJVLDDVMWD
      WDWBUKULUMVLVTDAVMGFZGFVQVLVSWHDGVLVMDJFZVMGFVMVMGFZVNJFWHVSVLVMDVMWGVLDW
      DSZWGVLVMWBUNZUOVLWIAVMGVLADVLAWASZWKUPTVLWJDVNJVLVMWGWLUQTURUSVLAVMWMWGA
      UTWLVAVBVCVLVOVQVLVNWCVDVLVMAWBWFVEVFVGVLVNWCVIVLVMAWBWFVJVK $.
  $}

  ${
    $d i k x F $.  $d i k x G $.  $d k m H $.  $d m n N $.  $d k m n x T $.
    emcl.1 $e |- F = ( n e. NN |->
      ( sum_ m e. ( 1 ... n ) ( 1 / m ) - ( log ` n ) ) ) $.
    emcl.2 $e |- G = ( n e. NN |->
      ( sum_ m e. ( 1 ... n ) ( 1 / m ) - ( log ` ( n + 1 ) ) ) ) $.
    $( Lemma for ~ emcl .  The series ` F ` and ` G ` are sequences of real
       numbers that approach ` gamma ` from above and below, respectively.
       (Contributed by Mario Carneiro, 11-Jul-2014.) $)
    emcllem1 $p |- ( F : NN --> RR /\ G : NN --> RR ) $=
      ( cn cr wf c1 cv cfz co clog cfv cmin wcel relogcld resubcld fmpti csu wa
      cdiv fzfid elfznn adantl nnrecred fsumrecl caddc peano2nn nnrpd pm3.2i
      nnrp ) GHCIGHDIBGHJBKZLMZJAKZUCMZAUAZUNNOZPMCEUNGQZURUSUTUOUQAUTJUNUDUTUP
      UOQZUBUPVAUPGQUTUPUNUEUFUGUHZUTUNUNUMRSTBGHURUNJUIMZNOZPMDFUTURVDVBUTVCUT
      VCUNUJUKRSTUL $.

    $( Lemma for ~ emcl . ` F ` is increasing, and ` G ` is decreasing.
       (Contributed by Mario Carneiro, 11-Jul-2014.) $)
    emcllem2 $p |- ( N e. NN -> ( ( F ` ( N + 1 ) ) <_ ( F ` N ) /\
                     ( G ` N ) <_ ( G ` ( N + 1 ) ) ) ) $=
      ( cn wcel c1 caddc co cfv cle wbr cdiv clog cmin clt cr peano2nn nnrecred
      cfz cv csu nnrpd relogcld nnrp resubcld fzfid wa elfznn fsumrecl rpreccld
      adantl ce rpge0d 1div1e1 crp 1re ltaddrp sylancr wceq ax-1cn nncn breqtrd
      cc addcom syl5eqbr cc0 wb nnred nngt0d 0lt1 mpanl12 syl2anc mpbid eflegeo
      ltrec1 recnd nnne0 nnne0d recdivd 1cnd divsubdird sylancl oveq1d 3eqtr3rd
      dividd oveq2d rpdivcld reeflogd 3eqtr4d relogdivd eqeltrd mpbird leadd2dd
      pncan efle cuz id nnuz syl6eleq oveq2 fsump1 addsub12d 3brtr4d lesubadd2d
      sumeq1d fveq2 oveq12d ovex fvmpt syl logdifbnd subadd23d leaddsub syl3anc
      oveq1 fveq2d jca ) EHIZEJKLZCMZECMZNOEDMZYCDMZNOYBJYCUCLZJAUDZPLZAUEZYCQM
      ZRLZJEUCLZYJAUEZEQMZRLZYDYENYBYMYQNOYKYLYQKLZNOYBYOJYCPLZKLZYOYLYPRLZKLYK
      YRNYBYSUUAYOYBYCEUAZUBZYBYLYPYBYCYBYCUUBUFZUGZYBEEUHZUGZUIZYBYNYJAYBJEUJY
      BYIYNIZUKYIUUIYIHIZYBYIEULUOUBUMZYBYSYCEPLZQMZUUANYBYSUUMNOZYSUPMZUUMUPMZ
      NOZYBUUOJJYSRLZPLZUUPNYBYSUUCYBYSYBYCUUDUNUQYBJJPLZYCSOZYSJSOZYBUUTJYCSUR
      YBJJEKLZYCSYBJTIZEUSIJUVCSOUTUUFJEVAVBYBJVGIZEVGIZUVCYCVCVDEVEZJEVHVBVFVI
      YBYCTIZVJYCSOZUVAUVBVKZYBYCUUBVLZYBYCUUBVMUVDVJJSOUVHUVIUKUVJUTVNJYCVSVOV
      PVQVRYBJEYCPLZPLUULUUSUUPYBEYCUVGYBYCUVKVTZEWAYBYCUUBWBZWCYBUURUVLJPYBYCJ
      RLZYCPLYCYCPLZYSRLUVLUURYBYCJYCUVMYBWDUVMUVNWEYBUVOEYCPYBUVFUVEUVOEVCUVGV
      DEJWRWFWGYBUVPJYSRYBYCUVMUVNWIWGWHWJYBUULYBYCEUUDUUFWKWLWMVFYBYSTIUUMTIUU
      NUUQVKUUCYBUUMUUATYBYCEUUDUUFWNZUUHWOYSUUMWSVPWPUVQVFWQYBYJYSAJEYBEHJWTMY
      BXAXBXCYBYIYHIZUKZYJUVSYIUVRUUJYBYIYCULUOUBZVTYIYCJPXDXEZYBYLYOYPYBYLUUEV
      TZYBYOUUKVTZYBYPUUGVTXFXGYBYKYLYQYBYHYJAYBJYCUJUVTUMZUUEYBYOYPUUKUUGUIXHW
      PYBYCHIZYDYMVCUUBBYCJBUDZUCLZYJAUEZUWFQMZRLZYMHCUWFYCVCZUWHYKUWIYLRUWKUWG
      YHYJAUWFYCJUCXDXIZUWFYCQXJXKFYKYLRXLXMXNBEUWJYQHCUWFEVCZUWHYOUWIYPRUWMUWG
      YNYJAUWFEJUCXDXIZUWFEQXJXKFYOYPRXLXMXGYBYOYLRLZYKYCJKLZQMZRLZYFYGNYBUWOUW
      QKLZYKNOZUWOUWRNOZYBYOUWQYLRLZKLYTUWSYKNYBUXBYSYOYBUWQYLYBUWPYBUWPYBUWEUW
      PHIUUBYCUAXNUFUGZUUEUIUUCUUKYBYCUSIUXBYSNOUUDYCXOXNWQYBYOYLUWQUWCUWBYBUWQ
      UXCVTXPUWAXGYBUWOTIUWQTIYKTIUWTUXAVKYBYOYLUUKUUEUIUXCUWDUWOUWQYKXQXRVQBEU
      WHUWFJKLZQMZRLZUWOHDUWMUWHYOUXEYLRUWNUWMUXDYCQUWFEJKXSXTXKGYOYLRXLXMYBUWE
      YGUWRVCUUBBYCUXFUWRHDUWKUWHYKUXEUWQRUWLUWKUXDUWPQUWFYCJKXSXTXKGYKUWQRXLXM
      XNXGYA $.

    emcl.3 $e |- H = ( n e. NN |-> ( log ` ( 1 + ( 1 / n ) ) ) ) $.
    $( Lemma for ~ emcl .  The function ` H ` is the difference between ` F `
       and ` G ` .  (Contributed by Mario Carneiro, 11-Jul-2014.) $)
    emcllem3 $p |- ( N e. NN -> ( H ` N ) = ( ( F ` N ) - ( G ` N ) ) ) $=
      ( cn wcel c1 cdiv co caddc clog cfv cfz cmin fveq2d cv csu peano2nn nnrpd
      nnrp relogdivd nncn 1cnd nnne0 divdird dividd oveq1d eqtr2d elfznn adantl
      fzfid nnrecred fsumrecl recnd relogcld nnncan1d 3eqtr4d wceq oveq2 oveq2d
      wa fvex fvmpt sumeq1d fveq2 oveq12d ovex oveq1 ) FJKZLLFMNZONZPQZLFRNZLAU
      AZMNZAUBZFPQZSNZWAFLONZPQZSNZSNZFEQFCQZFDQZSNVNWDFMNZPQWEWBSNVQWGVNWDFVNW
      DFUCUDZFUEZUFVNVPWJPVNWJFFMNZVOONVPVNFLFFUGZVNUHWNFUIZUJVNWMLVOOVNFWNWOUK
      ULUMTVNWAWBWEVNWAVNVRVTAVNLFUPVNVSVRKZVFVSWPVSJKVNVSFUNUOUQURUSVNWBVNFWLU
      TUSVNWEVNWDWKUTUSVAVBBFLLBUAZMNZONZPQVQJEWQFVCZWSVPPWTWRVOLOWQFLMVDVETIVP
      PVGVHVNWHWCWIWFSBFLWQRNZVTAUBZWQPQZSNWCJCWTXBWAXCWBSWTXAVRVTAWQFLRVDVIZWQ
      FPVJVKGWAWBSVLVHBFXBWQLONZPQZSNWFJDWTXBWAXFWESXDWTXEWDPWQFLOVMTVKHWAWESVL
      VHVKVB $.

    $( Lemma for ~ emcl .  The difference between series ` F ` and ` G ` tends
       to zero.  (Contributed by Mario Carneiro, 11-Jul-2014.) $)
    emcllem4 $p |- H ~~> 0 $=
      ( wbr wtru cn c1 cdiv co wcel clog cfv adantl crp clt cc0 cli cv cmpt cvv
      nnuz 1zzd cc ax-1cn divcnv mp1i caddc nnex mptex eqeltri wa cr wceq oveq2
      a1i eqid ovex fvmpt nnrecre eqeltrd oveq2d fvex 1rp nnrp rpreccld rpaddcl
      fveq2d sylancr rpred 1re ltaddrp rplogcld cle relogcld efgt1p syl rpefcld
      ce wb logltb syl2anc mpbid relogefd breqtrd ltled 3brtr4d rpge0d climsqz2
      trud ) EUAUBIJUAABKLBUCZMNZUDZELUEKUFJUGLUHOWQUAUBIJUILBUJUKEUEOJEBKLWPUL
      NZPQZUDUEHBKWSUMUNUOUTJAUCZKOZUPZWTWQQZLWTMNZUQXAXCXDURJBWTWPXDKWQWOWTLMU
      SZWQVALWTMVBVCRZXAXDUQOJWTVDRZVEXBWTEQZXBXHLXDULNZPQZSXAXHXJURJBWTWSXJKEW
      OWTURZWRXIPXKWPXDLULXEVFVLHXIPVGVCRZXBXIXBXIXBLSOXDSOZXISOZVHXBWTXAWTSOJW
      TVIRVJZLXDVKVMZVNXBLUQOXMLXITIVOXOLXDVPVMVQVEZVNXBXJXDXHXCVRXBXJXDXBXIXPV
      SXGXBXJXDWCQZPQZXDTXBXIXRTIZXJXSTIZXBXMXTXOXDVTWAXBXNXRSOXTYAWDXPXBXDXGWB
      XIXRWEWFWGXBXDXGWHWIWJXLXFWKXBXHXQWLWMWN $.

    emcl.4 $e |- T = ( n e. NN |->
                       ( ( 1 / n ) - ( log ` ( 1 + ( 1 / n ) ) ) ) ) $.
    $( Lemma for ~ emcl .  The partial sums of the series ` T ` , which is used
       in the definition ~ df-em , is in fact the same as ` G ` .  (Contributed
       by Mario Carneiro, 11-Jul-2014.) $)
    emcllem5 $p |- G = seq 1 ( + , T ) $=
      ( cn c1 co cdiv caddc clog cfv cmin wcel recnd vx cv cfz csu cmpt cseq wa
      elfznn adantl nncnd 1cnd nnne0d divdird dividd oveq1d fveq2d peano2nn syl
      eqtrd nnrpd relogdivd eqtr3d sumeq2dv nnz nnuz syl6eleq relogcld telfsum2
      fveq2 cuz cc0 log1 oveq2i subid1d syl5eq 3eqtrd oveq2d fzfid nnrecred crp
      1rp rpreccld rpaddcl sylancr fsumsub wceq oveq2 oveq12d fvmpt id resubcld
      ovex fsumser mpteq2ia wfn cz seqfn ax-mp fneq2i mpbir dffn5 mpbi 3eqtr4i
      1z ) CKLCUBZUCMZLBUBZNMZBUDZXELOMZPQZRMZUECKXEOALUFZQZUEZEXMCKXLXNXEKSZXI
      XFLXHOMZPQZBUDZRMZXLXNXPXSXKXIRXPXSXFXGLOMZPQZXGPQZRMZBUDXKLPQZRMZXKXPXFX
      RYDBXPXGXFSZUGZYAXGNMZPQXRYDYHYIXQPYHYIXGXGNMZXHOMXQYHXGLXGYHXGYGXGKSZXPX
      GXEUHUIZUJZYHUKYMYHXGYLULZUMYHYJLXHOYHXGYMYNUNUOUSUPYHYAXGYHYAYHYKYAKSYLX
      GUQURUTYHXGYLUTZVAVBVCXPUAUBZPQZYCYBYEBUAXKLXEYPXGPVIYPYAPVIYPLPVIYPXJPVI
      XEVDXPXJKLVJQZXEUQZVEVFXPYPLXJUCMSZUGZYQUUAYPUUAYPYTYPKSXPYPXJUHUIUTVGTVH
      XPYFXKVKRMXKYEVKXKRVLVMXPXKXPXKXPXJXPXJYSUTVGTVNVOVPVQXPXFXHXRRMZBUDXTXNX
      PXFXHXRBXPLXEVRYHXHYHXGYLVSZTYHXRYHXQYHLVTSXHVTSXQVTSWAYHXGYOWBLXHWCWDVGZ
      TWEXPUUBBALXEYHYKXGAQUUBWFYLCXGLXENMZLUUEOMZPQZRMUUBKAXEXGWFZUUEXHUUGXRRX
      EXGLNWGZUUHUUFXQPUUHUUEXHLOUUIVQUPWHJXHXRRWLWIURXPXEKYRXPWJVEVFYHUUBYHXHX
      RUUCUUDWKTWMVBVBWNHXMKWOZXMXOWFUUJXMYRWOZLWPSUUKXDOALWQWRKYRXMVEWSWTCKXMX
      AXBXC $.

    $( Lemma for ~ emcl .  By the previous lemmas, ` F ` and ` G ` must
       approach a common limit, which is ` gamma ` by definition.  (Contributed
       by Mario Carneiro, 11-Jul-2014.) $)
    emcllem6 $p |- ( F ~~> gamma /\ G ~~> gamma ) $=
      ( vk wbr wtru co c1 cn cfv wcel cr cle vx cem cli cc0 caddc cvv nnuz 1zzd
      cseq cdiv clog cmin csu wceq weq oveq2 oveq2d fveq2d oveq12d fvmpt adantl
      cv ovex nnrecre crp nnrp rpreccld rpaddcl sylancr relogcld resubcld recnd
      wa 1rp crn clt csup cdm emcllem5 emcllem1 simpri a1i emcllem2 simprd wral
      wf wrex 1nn simpli ffvelrni fvex emcllem3 eqtr3d readdcl ltaddrp rplogcld
      ax-mp eqeltrrd rpge0d subge0d mpbid fveq2 breq1d leidi simpld wi peano2nn
      1re letr syl3anc mpand nnind letrd ralrimiva breq2 ralbidv rspcev climsup
      syl syl5eqbrr climrel releldmi isumclim2 df-em 3brtr4g cmpt mptex eqeltri
      cfz nnex emcllem4 eqeltrd pncan3d eqtr2d climadd cc trud addid1i syl6breq
      climcl pm3.2i ) DUBUCLZEUBUCLZUUBMDUBUDUENUBUCMUBUDKEFDOUFPUGMUHZMUEAOUIZ
      POKVBZUJNZOUUGUENZUKQZULNZKUMEUBUCMUUJKAOPUGUUDUUFPRZUUFAQUUJUNMCUUFOCVBZ
      UJNZOUUMUENZUKQZULNUUJPACKUOZUUMUUGUUOUUIULUULUUFOUJUPZUUPUUNUUHUKUUPUUMU
      UGOUEUUQUQURZUSJUUGUUIULVCUTVAMUUKVMZUUJUUSUUGUUIUUKUUGSRZMUUFVDVAZUUSUUH
      UUSOVERUUGVERZUUHVERVNUUKUVBMUUKUUFUUFVFVGVAZOUUGVHVIVJVKVLMUUEEVOSVPVQZU
      CLUUEUCVRRMUUEEUVDUCABCDEFGHIJVSZMUAKEOPUGUUDPSEWFZMPSDWFZUVFBCDEGHVTZWAZ
      WBUUKUUFEQZUUFOUENZEQTLZMUUKUVKDQZUUFDQZTLZUVLBCDEUUFGHWCZWDVAMODQZSRZUVJ
      UVQTLZKPWEZUVJUAVBZTLZKPWEZUASWGOPRUVRWHPSODUVGUVFUVHWIZWJWQZMUVSKPUUSUVJ
      UVNUVQUUKUVJSRMPSUUFEUVIWJVAZUUKUVNSRZMPSUUFDUWDWJZVAZUVRUUSUWEWBUUSUDUVN
      UVJULNZTLUVJUVNTLUUSUWJUUSUUIUWJVEUUSUUFFQZUUIUWJUUKUWKUUIUNMCUUFUUOUUIPF
      UURIUUHUKWKUTVAUUKUWKUWJUNMBCDEFUUFGHIWLVAZWMUUSUUHUUSOSRZUUTUUHSRXHUVAOU
      UGWNVIUUSUWMUVBOUUHVPLXHUVCOUUGWOVIWPWRWSUUSUVNUVJUWIUWFWTXAUUKUVNUVQTLZM
      UWADQZUVQTLUVQUVQTLUWNUVMUVQTLZUWNUAKUUFUWAOUNUWOUVQUVQTUWAODXBXCUAKUOUWO
      UVNUVQTUWAUUFDXBXCZUWAUVKUNUWOUVMUVQTUWAUVKDXBXCUWQUVQUWEXDUUKUVOUWNUWPUU
      KUVOUVLUVPXEUUKUVMSRZUWGUVRUVOUWNVMUWPXFUUKUVKPRUWRUUFXGPSUVKDUWDWJXSUWHU
      VRUUKUWEWBUVMUVNUVQXIXJXKXLVAXMXNUWCUVTUAUVQSUWAUVQUNUWBUVSKPUWAUVQUVJTXO
      XPXQVIXRXTUUEUVDUCYAYBXSYCUVEKYDYEZDUFRMDCPOUULYINOBVBUJNBUMUULUKQULNZYFU
      FGCPUWTYJYGYHWBFUDUCLMBCDEFGHIYKWBUUSUVJUWFVLZUUSUWKUUSUWKUWJSUWLUUSUVNUV
      JUWIUWFVKYLVLUUSUVJUWKUENUVJUWJUENUVNUUSUWKUWJUVJUEUWLUQUUSUVJUVNUXAUUSUV
      NUWIVLYMYNYOUBUUCUBYPRUUCUWSYQZUBEYTWQYRYSYQUXBUUA $.

    $( Lemma for ~ emcl and ~ harmonicbnd .  Derive bounds on ` gamma ` as
       ` F ( 1 ) ` and ` G ( 1 ) ` .  (Contributed by Mario Carneiro,
       11-Jul-2014.)  (Revised by Mario Carneiro, 9-Apr-2016.) $)
    emcllem7 $p |- ( gamma e. ( ( 1 - ( log ` 2 ) ) [,] 1 ) /\
                     F : NN --> ( gamma [,] 1 ) /\
                     G : NN --> ( ( 1 - ( log ` 2 ) ) [,] gamma ) ) $=
      ( cem c1 cfv co wcel cn wtru cr cle wbr vk vi vx c2 clog cmin cicc wf w3a
      nnuz 1zzd cli emcllem6 simpri a1i cv emcllem1 ffvelrni adantl climrecl wa
      wral 1nn simpr caddc emcllem2 simprd climub ralrimiva wceq fveq2 cfz cdiv
      csu oveq2 sumeq1d cz cc 1z ax-1cn 1div1e1 syl6eq fsum1 mp2an df-2 syl6eqr
      oveq1 fveq2d oveq12d 1re crp 2rp ax-mp resubcli elexi fvmpt breq1d rspcva
      relogcl sylancr cneg cc0 cmpt negeqd eqid negex cvv 0cnd nnex mptex recnd
      simpli df-neg climsubc2 adantr renegcld eqeltrd adantlr simpld syl lenegd
      peano2nn mpbid 3brtr4d eqbrtrrd syl6breqr wb trud leneg mpbird log1 1m0e1
      elicc2i syl3anbrc wfn ffn mp1i elfznn ffnfv sylanbrc cuz syl6eleq monoord
      breq2d monoord2 syl6breq syl5eqbrr 3jca ) KLUDUEMZUFNZLUGNOZPKLUGNZDUHZPU
      UJKUGNZEUHZUIQUUKUUMUUOQKROZUUJKSTZKLSTZUUKQKUAELPUJQUKZEKULTZQDKULTZUUTA
      BCDEFGHIJUMZUNZUOUAUPZPOZUVDEMZROZQPRUVDEPRDUHZPREUHZBCDEGHUQZUNZURZUSUTZ
      QLPOZUBUPZEMZKSTZUBPVBUUQVCQUVQUBPQUVOPOZVAZKUAELUVOPUJQUVRVDZUUTUVSUVCUO
      UVEUVGUVSUVLUSUVEUVFUVDLVENZEMSTZUVSUVEUWADMZUVDDMZSTZUWBBCDEUVDGHVFZVGZU
      SVHZVIUVQUUQUBLPUVOLVJZUVPUUJKSUWIUVPLEMZUUJUVOLEVKUVNUWJUUJVJVCCLLCUPZVL
      NZLBUPZVMNZBVNZUWKLVENZUEMZUFNUUJPEUWKLVJZUWOLUWQUUIUFUWRUWOLLVLNZUWNBVNZ
      LUWRUWLUWSUWNBUWKLLVLVOVPLVQOLVROUWTLVJVSVTUWNLBLUWMLVJUWNLLVMNLUWMLLVMVO
      WAWBWCWDWBZUWRUWPUDUEUWRUWPLLVENUDUWKLLVEWGWEWFWHWIHUUJRLUUIWJUDWKOUUIROW
      LUDWSWMWNZWOWPWMZWBWQWRWTQUVNKUVODMZSTZUBPVBUURVCQUXEUBPUVSUXEUXDXAZKXAZS
      TZUVSUXFXBKUFNZUXGSUVSUVOUCPUCUPZDMZXAZXCZMZUXFUXISUVRUXNUXFVJQUCUVOUXLUX
      FPUXMUXJUVOVJUXKUXDUXJUVODVKXDUXMXEZUXDXFWPUSUVSUXIUAUXMLUVOPUJUVTQUXMUXI
      ULTUVRQKXBUADUXMLXGPUJUUSUVAQUVAUUTUVBXLUOQXHUXMXGOQUCPUXLXIXJUOQUVEVAZUW
      DUVEUWDROZQPRUVDDUVHUVIUVJXLZURZUSZXKUXPUVDUXMMZUWDXAZXBUWDUFNUVEUYAUYBVJ
      QUCUVDUXLUYBPUXMUXJUVDVJUXKUWDUXJUVDDVKXDUXOUWDXFWPUSZUWDXMWBXNXOQUVEUYAR
      OUVRUXPUYAUYBRUYCUXPUWDUXTXPXQXRQUVEUYAUWAUXMMZSTUVRUXPUYBUWCXAZUYAUYDSUX
      PUWEUYBUYESTUVEUWEQUVEUWEUWBUWFXSZUSUXPUWCUWDUXPUWAPOZUWCROUVEUYGQUVDYBUS
      ZPRUWADUXRURXTUXTYAYCUYCUXPUYGUYDUYEVJUYHUCUWAUXLUYEPUXMUXJUWAVJUXKUWCUXJ
      UWADVKXDUXOUWCXFWPXTYDXRVHYEKXMYFUVSUUPUXDROZUXEUXHYGUUPUVMYHZUVRUYIQPRUV
      ODUXRURUSZKUXDYIWTYJZVIUXEUURUBLPUWIUXDLKSUWIUXDLDMZLUVOLDVKUVNUYMLVJVCCL
      UWOUWKUEMZUFNZLPDUWRUYOLXBUFNLUWRUWOLUYNXBUFUXAUWRUYNLUEMXBUWKLUEVKYKWBWI
      YLWBGLRWJWOWPWMZWBUUDWRWTUUJLKUXBWJYMYNQDPYOZUXDUULOZUBPVBUUMUVHUYQQUXRPR
      DYPYQQUYRUBPUVSUYIUXEUXDLSTUYRUYKUYLUVSUXDUYMLSUVSUADLUVOUVSUVOPLUUAMUVTU
      JUUBZUVSUVDLUVOVLNOZVAZUVEUXQUYTUVEUVSUVDUVOYRUSZUXSXTUVSUVDLUVOLUFNZVLNO
      ZVAZUVEUWEVUDUVEUVSUVDVUCYRUSZUYFXTUUEUYPUUFKLUXDUYJWJYMYNVIUBPUULDYSYTQE
      PYOZUVPUUNOZUBPVBUUOUVIVUGQUVKPREYPYQQVUHUBPUVSUVPROZUUJUVPSTUVQVUHUVRVUI
      QPRUVOEUVKURUSUVSUUJUWJUVPSUXCUVSUAELUVOUYSVUAUVEUVGVUBUVLXTVUEUVEUWBVUFU
      WGXTUUCUUGUWHUUJKUVPUXBUYJYMYNVIUBPUUNEYSYTUUHYH $.
  $}

  ${
    $d k m n N $.
    $( Closure and bounds for the Euler-Mascheroni constant.  (Contributed by
       Mario Carneiro, 11-Jul-2014.) $)
    emcl $p |- gamma e. ( ( 1 - ( log ` 2 ) ) [,] 1 ) $=
      ( vn vm vk cem c1 c2 clog cfv cmin co cicc wcel cn cv cfz cdiv cmpt caddc
      wf eqid csu weq oveq2 oveq2d fveq2d oveq12d cbvmptv emcllem7 simp1i ) DEF
      GHIJZEKJLMDEKJAMEANZOJEBNPJBUAZUKGHIJQZSMUJDKJAMULUKERJGHIJQZSCMECNZPJZEU
      PRJZGHZIJZQBAUMUNAMEEUKPJZRJZGHZQZUMTUNTVCTCAMUSUTVBIJCAUBZUPUTURVBIUOUKE
      PUCZVDUQVAGVDUPUTERVEUDUEUFUGUHUI $.

    $( A bound on the harmonic series, as compared to the natural logarithm.
       (Contributed by Mario Carneiro, 9-Apr-2016.) $)
    harmonicbnd $p |- ( N e. NN ->
      ( sum_ m e. ( 1 ... N ) ( 1 / m ) - ( log ` N ) ) e. ( gamma [,] 1 ) ) $=
      ( vn vk c1 cv cfz co cdiv csu clog cfv cmin cem cicc wcel cmpt caddc eqid
      cn wceq oveq2 sumeq1d fveq2 oveq12d eleq1d wral wf oveq2d fveq2d emcllem7
      c2 cbvmptv simp2i fmpt mpbir vtoclri ) ECFZGHZEAFIHZAJZURKLZMHZNEOHZPZEBG
      HZUTAJZBKLZMHZVDPCBTURBUAZVCVIVDVJVAVGVBVHMVJUSVFUTAURBEGUBUCURBKUDUEUFVE
      CTUGTVDCTVCQZUHZNEULKLMHZEOHPVLTVMNOHCTVAURERHKLMHQZUHDTEDFZIHZEVPRHZKLZM
      HZQACVKVNCTEEURIHZRHZKLZQZVKSZVNSWCSDCTVSVTWBMHVOURUAZVPVTVRWBMVOUREIUBZW
      EVQWAKWEVPVTERWFUIUJUEUMUKUNCTVDVCVKWDUOUPUQ $.

    $( A bound on the harmonic series, as compared to the natural logarithm.
       (Contributed by Mario Carneiro, 13-Apr-2016.) $)
    harmonicbnd2 $p |- ( N e. NN -> ( sum_ m e. ( 1 ... N ) ( 1 / m ) -
      ( log ` ( N + 1 ) ) ) e. ( ( 1 - ( log ` 2 ) ) [,] gamma ) ) $=
      ( vn vk c1 cv cfz co cdiv csu caddc clog cfv cmin cem cicc wcel cmpt eqid
      cn c2 wceq oveq2 sumeq1d oveq1 fveq2d oveq12d eleq1d wral oveq2d emcllem7
      wf cbvmptv simp3i fmpt mpbir vtoclri ) ECFZGHZEAFIHZAJZUREKHZLMZNHZEUALMN
      HZOPHZQZEBGHZUTAJZBEKHZLMZNHZVFQCBTURBUBZVDVLVFVMVAVIVCVKNVMUSVHUTAURBEGU
      CUDVMVBVJLURBEKUEUFUGUHVGCTUITVFCTVDRZULZOVEEPHQTOEPHCTVAURLMNHRZULVODTED
      FZIHZEVRKHZLMZNHZRACVPVNCTEEURIHZKHZLMZRZVPSVNSZWESDCTWAWBWDNHVQURUBZVRWB
      VTWDNVQUREIUCZWGVSWCLWGVRWBEKWHUJUFUGUMUKUNCTVFVDVNWFUOUPUQ $.
  $}

  $( The Euler-Mascheroni constant is a real number.  (Contributed by Mario
     Carneiro, 11-Jul-2014.) $)
  emre $p |- gamma e. RR $=
    ( c1 c2 clog cfv cmin co cicc cr cem wss 1re crp 2rp relogcl ax-mp resubcli
    wcel iccssre mp2an emcl sselii ) ABCDZEFZAGFZHIUCHQAHQUDHJAUBKBLQUBHQMBNOPK
    UCARSTUA $.

  $( The Euler-Mascheroni constant is positive.  (Contributed by Mario
     Carneiro, 11-Jul-2014.) $)
  emgt0 $p |- 0 < gamma $=
    ( cc0 c1 c2 clog cfv cmin co clt wbr cem cle ce ceu c3 wcel 2rp ax-mp mp2an
    cr 1re egt2lt3 simpli crp wceq reeflog df-e eqcomi 3brtr4i wb relogcl mpbir
    eflt posdifi mpbi cicc emcl resubcli elicc2i simp2bi 0re emre ltletri ) ABC
    DEZFGZHIZVDJKIZAJHIVCBHIZVEVGVCLEZBLEZHIZCMVHVIHCMHIMNHIUAUBCUCOZVHCUDPCUEQ
    MVIUFUGUHVCSOZBSOVGVJUIVKVLPCUJQZTVCBULRUKVCBVMTUMUNJVDBUOGOZVFUPVNJSOVFJBK
    IVDBJBVCTVMUQZTURUSQAVDJUTVOVAVBR $.

  ${
    $d m A $.  $d m N $.
    $( A bound on the harmonic series, as compared to the natural logarithm.
       (Contributed by Mario Carneiro, 13-Apr-2016.) $)
    harmonicbnd3 $p |- ( N e. NN0 -> ( sum_ m e. ( 1 ... N ) ( 1 / m ) -
      ( log ` ( N + 1 ) ) ) e. ( 0 [,] gamma ) ) $=
      ( wcel cc0 c1 cfz co caddc clog cfv cmin cem c2 cr cle wbr 0re ceu syl6eq
      emre cn0 cn wceq wo cv cdiv csu cicc elnn0 wss 2re ere clt egt2lt3 simpli
      c3 ltleii crp wb 2rp epr logleb mp2an mpbi loge breqtri 1re relogcl ax-mp
      subge0i mpbir leidi iccss mp4an harmonicbnd2 sseldi c0 oveq2 fz10 sumeq1d
      sum0 oveq1 0p1e1 fveq2d log1 oveq12d 0m0e0 elicc2i mpbir3an syl6eqel jaoi
      emgt0 sylbi ) BUACBUBCZBDUCZUDEBFGZEAUEUFGZAUGZBEHGZIJZKGZDLUHGZCZBUIWNXC
      WOWNEMIJZKGZLUHGZXBXADNCZLNCDXEOPZLLOPXFXBUJQTXHXDEOPXDRIJZEOMROPZXDXIOPZ
      MRUKULMRUMPRUPUMPUNUOUQMURCZRURCXJXKUSUTVAMRVBVCVDVEVFEXDVGXLXDNCUTMVHVIV
      JVKLTVLDLXELVMVNABVOVPWOXADXBWOXADDKGDWOWRDWTDKWOWRVQWQAUGDWOWPVQWQAWOWPE
      DFGVQBDEFVRVSSVTWQAWASWOWTEIJDWOWSEIWOWSDEHGEBDEHWBWCSWDWESWFWGSDXBCXGDDO
      PDLOPQDQVLDLQTWLUQDLDQTWHWIWJWKWM $.

    $( A bound on the harmonic series, as compared to the natural logarithm.
       (Contributed by Mario Carneiro, 13-Apr-2016.) $)
    harmoniclbnd $p |- ( A e. RR+ ->
      ( log ` A ) <_ sum_ m e. ( 1 ... ( |_ ` A ) ) ( 1 / m ) ) $=
      ( crp wcel cfv cfl c1 caddc co relogcl cr cn cc0 cle wbr wa syl mpbid cem
      clog cfz cv cdiv csu rprege0 flge0nn0 nn0p1nn nnrpd fzfid elfznn nnrecred
      cn0 adantl fsumrecl rpre fllep1 id logled cmin cicc harmonicbnd3 0re emre
      elicc2i simp2bi subge0d letrd ) ACDZATEZAFEZGHIZTEZGVJUAIZGBUBZUCIZBUDZAJ
      VHVKCDVLKDVHVKVHVJULDZVKLDVHAKDZMANOPVQAUEAUFQZVJUGQUHZVKJQZVHVMVOBVHGVJU
      IVHVNVMDZPVNWBVNLDVHVNVJUJUMUKUNZVHAVKNOZVIVLNOVHVRWDAUOAUPQVHAVKVHUQVTUR
      RVHMVPVLUSIZNOZVLVPNOVHWEMSUTIDZWFVHVQWGVSBVJVAQWGWEKDWFWESNOMSWEVBVCVDVE
      QVHVPVLWCWAVFRVG $.

    $( A bound on the harmonic series, as compared to the natural logarithm.
       (Contributed by Mario Carneiro, 13-Apr-2016.) $)
    harmonicubnd $p |- ( ( A e. RR /\ 1 <_ A ) ->
      sum_ m e. ( 1 ... ( |_ ` A ) ) ( 1 / m ) <_ ( ( log ` A ) + 1 ) ) $=
      ( cr wcel c1 cle wbr wa cfv co caddc cn relogcld peano2re syl cc0 1re a1i
      clog cem cfl cfz cv cdiv csu fzfid elfznn nnrecred fsumrecl flge1nn nnrpd
      adantl simpl 0red clt 0lt1 simpr ltletrd elrpd cmin cicc harmonicbnd emre
      elicc2i simp3bi lesubadd2d mpbid flle adantr logled leadd1dd letrd ) ACDZ
      EAFGZHZEAUAIZUBJZEBUCZUDJZBUEZVPSIZEKJZASIZEKJZVOVQVSBVOEVPUFVOVRVQDZHVRW
      EVRLDVOVRVPUGULUHUIZVOWACDWBCDVOVPVOVPAUJZUKZMZWANOVOWCCDWDCDVOAVOAVMVNUM
      ZVOPEAVOUNECDVOQRZWJPEUOGVOUPRVMVNUQURUSZMZWCNOVOVTWAUTJZEFGZVTWBFGVOWNTE
      VAJDZWOVOVPLDWPWGBVPVBOWPWNCDTWNFGWOTEWNVCQVDVEOVOVTWAEWFWIWKVFVGVOWAWCEW
      IWMWKVOVPAFGZWAWCFGVMWQVNAVHVIVOVPAWHWLVJVGVKVL $.

    $( The asymptotic behavior of
       ` sum_ m <_ A , 1 / m = log A + gamma + O ( 1 / A ) ` .  (Contributed by
       Mario Carneiro, 14-May-2016.) $)
    harmonicbnd4 $p |- ( A e. RR+ -> ( abs `
      ( sum_ m e. ( 1 ... ( |_ ` A ) ) ( 1 / m ) -
        ( ( log ` A ) + gamma ) ) ) <_ ( 1 / A ) ) $=
      ( crp wcel c1 cfv cfz co cdiv cem caddc cle wa recnd cr wbr cc0 syl mpbid
      cmin cfl csu clog cabs fzfid elfznn adantl nnrecred fsumrecl relogcl emre
      cv a1i subsub4d fveq2d rpreccl rpred resubcl sylancr cn0 rprege0 flge0nn0
      cn nn0p1nn nnrpd resubcld cicc harmonicbnd 1re elicc2i simp2bi fllep1 clt
      rpre rpregt0 nnred nngt0d lerec syl12anc le2subd sub32d cuz nnuz syl6eleq
      wb oveq2 fsumm1 cc wceq nn0cnd ax-1cn pncan sylancl oveq2d sumeq1d oveq1d
      eqtrd pncand breqtrd logleb mpdan lesub2dd letrd readdcld id relogdivd ce
      rerpdivcl mpancom reefcld rpcnne0 divdir syl3anc reflcl cmul flle mulid1d
      wne rpcn breqtrrd ledivmul mpbird leadd1dd eqbrtrd efgt1p rpdivcl rpefcld
      ltled logled relogefd lesubadd2d harmonicbnd3 simp3bi lesubaddd absdifled
      eqbrtrrd 0re mpbir2and ) ACDZEAUAFZGHZEBULZIHZBUBZAUCFZTHZJTHZUDFZUUDUUEJ
      KHTHZUDFEAIHZLYSUUGUUIUDYSUUDUUEJYSUUDYSUUAUUCBYSEYTUEYSUUBUUADZMUUBUUKUU
      BVCDZYSUUBYTUFUGUHUIZNZYSUUEAUJZNZYSJJODZYSUKUMZNUNUOYSUUHUUJLPJUUJTHZUUF
      LPUUFJUUJKHLPZYSUUSUUDYTEKHZUCFZTHZUUFYSUUQUUJODUUSODUKYSUUJAUPZUQZJUUJUR
      USYSUUDUVBUUMYSUVACDZUVBODYSUVAYSYTUTDZUVAVCDZYSAODZQALPMUVGAVAAVBRZYTVDR
      ZVEZUVAUJRZVFZYSUUDUUEUUMUUOVFZYSUUSEUVAGHZUUCBUBZUVBTHZEUVAIHZTHZUVCLYSJ
      UVSUVRUUJUURYSUVAUVKUHZYSUVQUVBYSUVPUUCBYSEUVAUEYSUUBUVPDZMZUUBUWBUULYSUU
      BUVAUFUGUHZUIZUVMVFUVEYSUVRJEVGHDZJUVRLPZYSUVHUWFUVKBUVAVHRUWFUVRODUWGUVR
      ELPJEUVRUKVIVJVKRYSAUVALPZUVSUUJLPZYSUVIUWHAVNZAVLRZYSUVIQAVMPMZUVAODZQUV
      AVMPUWHUWIWEAVOZYSUVAUVKVPZYSUVAUVKVQAUVAVRVSSVTYSUVTUVQUVSTHZUVBTHUVCYSU
      VQUVBUVSYSUVQUWENYSUVBUVMNYSUVSUWANZWAYSUWPUUDUVBTYSUWPUUDUVSKHZUVSTHUUDY
      SUVQUWRUVSTYSUVQEUVAETHZGHZUUCBUBZUVSKHUWRYSUUCUVSBEUVAYSUVAVCEWBFUVKWCWD
      UWCUUCUWDNUUBUVAEIWFWGYSUXAUUDUVSKYSUWTUUAUUCBYSUWSYTEGYSYTWHDZEWHDZUWSYT
      WIYSYTUVJWJZWKYTEWLWMWNWOWPWQWPYSUUDUVSUUNUWQWRWQWPWQWSYSUUEUVBUUDUUOUVMU
      UMYSUWHUUEUVBLPZUWKYSUVFUWHUXEWEUVLAUVAWTXASXBXCYSUUFUUJTHZJLPUUTYSUXFUVC
      JYSUUFUUJUVOUVEVFUVNUURYSUXFUUDUUEUUJKHZTHUVCLYSUUDUUEUUJUUNUUPYSUUJUVENU
      NYSUVBUXGUUDUVMYSUUEUUJUUOUVEXDUUMYSUVBUUETHZUUJLPUVBUXGLPYSUVAAIHZUCFZUX
      HUUJLYSUVAAUVLYSXEXFYSUXJUUJXGFZUCFZUUJLYSUXIUXKLPUXJUXLLPYSUXIEUUJKHZUXK
      UWMYSUXIODUWOUVAAXHXIYSEUUJEODZYSVIUMZUVEXDZYSUUJUVEXJZYSUXIYTAIHZUUJKHZU
      XMLYSUXBUXCAWHDAQXRMUXIUXSWIUXDUXCYSWKUMAXKYTEAXLXMYSUXREUUJYTODZYSUXRODY
      SUVIUXTUWJAXNRZYTAXHXIUXOUVEYSUXRELPZYTAEXOHZLPZYSYTAUYCLYSUVIYTALPUWJAXP
      RYSAAXSXQXTYSUXTUXNUWLUYBUYDWEUYAUXOUWNYTEAYAXMYBYCYDYSUXMUXKUXPUXQYSUUJC
      DUXMUXKVMPUVDUUJYERYHXCYSUXIUXKUVFYSUXICDUVLUVAAYFXIYSUUJUVEYGYISYSUUJUVE
      YJWSYPYSUVBUUEUUJUVMUUOUVEYKSXBYDYSUVCQJVGHDZUVCJLPZYSUVGUYEUVJBYTYLRUYEU
      VCODQUVCLPUYFQJUVCYQUKVJYMRXCYSUUFUUJJUVOUVEUURYNSYSUUFJUUJUVOUURUVEYOYRY
      P $.
  $}

  ${
    $d n A $.  $d n ph $.  $d n R $.  $d n T $.
    fsumharmonic.a $e |- ( ph -> A e. RR+ ) $.
    fsumharmonic.t $e |- ( ph -> ( T e. RR /\ 1 <_ T ) ) $.
    fsumharmonic.r $e |- ( ph -> ( R e. RR /\ 0 <_ R ) ) $.
    fsumharmonic.b $e |- ( ( ph /\ n e. ( 1 ... ( |_ ` A ) ) ) -> B e. CC ) $.
    fsumharmonic.c $e |- ( ( ph /\ n e. ( 1 ... ( |_ ` A ) ) ) -> C e. RR ) $.
    fsumharmonic.0 $e |- ( ( ph /\ n e. ( 1 ... ( |_ ` A ) ) ) -> 0 <_ C ) $.
    fsumharmonic.1 $e |- ( ( ( ph /\ n e. ( 1 ... ( |_ ` A ) ) ) /\
      T <_ ( A / n ) ) -> ( abs ` B ) <_ ( C x. n ) ) $.
    fsumharmonic.2 $e |- ( ( ( ph /\
     n e. ( 1 ... ( |_ ` A ) ) ) /\ ( A / n ) < T ) -> ( abs ` B ) <_ R ) $.
    $( Bound a finite sum based on the harmonic series, where the "strong"
       bound ` C ` only applies asymptotically, and there is a "weak" bound
       ` R ` for the remaining values.  (Contributed by Mario Carneiro,
       18-May-2016.) $)
    fsumharmonic $p |- ( ph ->
     ( abs ` sum_ n e. ( 1 ... ( |_ ` A ) ) ( B / n ) ) <_
       ( sum_ n e. ( 1 ... ( |_ ` A ) ) C + ( R x. ( ( log ` T ) + 1 ) ) ) ) $=
      ( c1 co wcel cle wbr cfl cfv cfz cv cdiv cabs clog caddc cmul fzfid wa cn
      csu elfznn adantl nncnd nnne0d divcld fsumcl abscld nndivred fsumrecl cc0
      cr simpld 0red 1red clt 0lt1 a1i ltletrd elrpd relogcld readdcld remulcld
      simprd fsumabs absdivd wceq nnrpd rprege0d absid syl oveq2d eqtrd breqtrd
      sumeq2dv cin c0 cn0 rpdivcld flge0nn0 nn0red ltp1d fzdisj cuz cun nn0p1nn
      syl6eleq rpred wb jca rpregt0d lediv2 syl211anc mpbid recnd div1d flword2
      nnuz syl3anc syl2anc fsumsplit ssun1 syl5sseqr sselda syldan ssun2 fznnfl
      fzsplit2 simplbda adantr lemuldiv2 lemuldivd bitr3d mpd ledivmul2d mpbird
      wi ex cc fsumle fsumless letrd nnrecred crp wn cmin rpge0d sylancl eleq2d
      divrecd eqeltrrd noel elin syl5bbr mtbiri imnan sylibr con2d baibd syl2an
      imp bitrd mtbid ltnled lediv1dd fsummulc2 breqtrrd oveq1d pncan2d adantlr
      resubcld rpreccld simpr 0p1e1 syl6breqr cz flbi mpbir2and fz10 syl6eq 0ss
      0z syl6eqss suble0d logge0d 0le1 harmonicubnd sylan harmoniclbnd peano2re
      addge0d le2sub syl22anc mp2and pnncand relogdivd ax-1cn 3eqtr4d ltlecasei
      addcom eqbrtrrd lemul2a syl31anc le2addd eqbrtrd ) APBUAUBZUCQZCGUDZUEQZG
      UMZUFUBZUWSCUFUBZUWTUEQZGUMZUWSDGUMZEFUGUBZPUHQZUIQZUHQZAUXBAUWSUXAGAPUWR
      UJZAUWTUWSRZUKZCUWTKUXNUWTUXMUWTULRZAUWTUWRUNZUOZUPZUXNUWTUXQUQZURZUSUTAU
      WSUXEGUXLUXNUXDUWTUXNCKUTZUXQVAZVBAUXGUXJAUWSDGUXLLVBZAEUXIAEVDRZVCESTZJV
      EZAUXHPAFAFAFVDRZPFSTZIVEZAVCPFAVFAVGZUYIVCPVHTZAVIVJZAUYGUYHIVPZVKZVLZVM
      ZUYJVNZVOZVNAUXCUWSUXAUFUBZGUMUXFSAUWSUXAGUXLUXTVQAUWSUYSUXEGUXNUYSUXDUWT
      UFUBZUEQUXEUXNCUWTKUXRUXSVRUXNUYTUWTUXDUEUXNUWTVDRZVCUWTSTUKUYTUWTVSUXNUW
      TUXNUWTUXQVTZWAUWTWBWCWDWEWGWFAUXFPBFUEQZUAUBZUCQZUXEGUMZVUDPUHQZUWRUCQZU
      XEGUMZUHQUXKSAVUEVUHUXEUWSGAVUDVUGVHTVUEVUHWHZWIVSAVUDAVUDAVUCVDRZVCVUCST
      UKVUDWJRZAVUCABFHUYOWKZWAVUCWLWCZWMWNPVUDVUGUWRWOWCZAVUGPWPUBZRUWRVUDWPUB
      RZUWSVUEVUHWQZVSAVUGULVUPAVULVUGULRVUNVUDWRWCXJWSAVUKBVDRZVUCBSTVUQAVUCVU
      MWTZABHWTZAVUCBPUEQZBSAUYHVUCVVBSTZUYMAPVDRUYKUYGVCFVHTZUKZVUSVCBVHTUKUYH
      VVCXAUYJUYLAUYGVVDUYIUYNXBZABHXCPFBXDXEXFABABVVAXGXHWFVUCBXIXKVUDPUWRXTXL
      ZUXLUXNUXEUYBXGXMAVUFVUIUXGUXJAVUEUXEGAPVUDUJZAUWTVUERZUXMUXEVDRZAVUEUWSU
      WTAVURVUEUWSVUEVUHXNVVGXOZXPZUYBXQZVBZAVUHUXEGAVUGUWRUJZAUWTVUHRZUXMVVJAV
      UHUWSUWTAVURVUHUWSVUHVUEXRVVGXOXPZUYBXQZVBZUYCUYRAVUFVUEDGUMUXGVVNAVUEDGV
      VHAVVIUXMDVDRVVLLXQZVBUYCAVUEUXEDGVVHVVMVVTAVVIUKZUXEDSTUXDDUWTUIQSTZVWAF
      BUWTUEQZSTZVWBVWAUWTVUCSTZVWDAVVIUXOVWEAVUKVVIUXOVWEUKXAVUTUWTVUCXSZWCYAA
      VVIUXMVWEVWDXAVVLUXNFUWTUIQBSTZVWEVWDUXNVUAVUSVVEVWGVWEXAUXNUWTVUBWTAVUSU
      XMVVAYBZAVVEUXMVVFYBUWTBFYCXKUXNFBUWTAUYGUXMUYIYBVWHVUBYDYEZXQXFAVVIUXMVW
      DVWBYIVVLUXNVWDVWBNYJXQYFVWAUXDDUWTVWACAVVIUXMCYKRVVLKXQUTVVTVWAUWTVWAUXM
      UXOVVLUXPWCZVTZYGYHYLAUWSDVUEGUXLLMVVKYMYNAVUIEVUHPUWTUEQZGUMZUIQZUXJVVSA
      EVWMUYFAVUHVWLGVVOAVVPUKZUWTVWOUXMUXOVVQUXPWCZYOZVBZVOUYRAVUIVUHEVWLUIQZG
      UMVWNSAVUHUXEVWSGVVOVVRVWOEUWTUEQZVWSVDVWOEUWTVWOEAUYDVVPUYFYBZXGVWOUWTVW
      PUPVWOUWTVWPUQUUBZVWOEUWTVXAVWPVAUUCVWOUXEVWTVWSSVWOUXDEUWTAVVPUXMUXDVDRV
      VQUYAXQVXAAVVPUXMUWTYPRZVVQVUBXQVWOVWCFVHTZUXDESTZVWOVXDVWDYQVWOVVIVWDAVV
      PVVIYQAVVIVVPAVVIVVPUKZYQVVIVVPYQYIAVXFUWTWIRZUWTUUDVXFUWTVUJRAVXGUWTVUEV
      UHUUEAVUJWIUWTVUOUUAUUFUUGVVIVVPUUHUUIUUJUUMAVVPUXMVVIVWDXAVVQUXNVVIVWEVW
      DAVUKUXOVVIVWEXAUXMVUTUXPVUKVVIUXOVWEVWFUUKUULVWIUUNXQUUOVWOVWCFVWOBUWTAV
      USVVPVVAYBVWPVAAUYGVVPUYIYBUUPYHAVVPUXMVXDVXEYIVVQUXNVXDVXEOYJXQYFUUQVXBW
      FYLAVUHVWLEGVVOAEUYFXGVWOVWLVWQXGUURUUSAVWMVDRUXIVDRZUYDUYEUKVWMUXISTVWNU
      XJSTVWRUYQJAUWSVWLGUMZVUEVWLGUMZYRQZVWMUXISAVXKVXJVWMUHQZVXJYRQVWMAVXIVXL
      VXJYRAVUEVUHVWLUWSGVUOVVGUXLUXNVWLUXNUWTUXQYOZXGXMUUTAVXJVWMAVXJAVUEVWLGV
      VHVWAUWTVWJYOVBZXGAVWMVWRXGUVAWEAVXKUXISTBPABPVHTZUKZVXKVCUXIVXPVXIVXJAVX
      IVDRZVXOAUWSVWLGUXLVXMVBZYBZAVXJVDRZVXOVXNYBZUVCVXPVFAVXHVXOUYQYBVXPVXKVC
      STVXIVXJSTVXPVUEVWLUWSGVXPPVUDUJVXPVVIUKZVWLVYBUWTAVVIVXCVXOVWKUVBUVDZWTV
      YBVWLVYCYSVXPUWSWIVUEVXPUWSPVCUCQWIVXPUWRVCPUCVXPUWRVCVSZVCBSTZBVCPUHQZVH
      TZVXPBABYPRVXOHYBYSVXPBPVYFVHAVXOUVEUVFUVGVXPVUSVCUVHRVYDVYEVYGUKXAAVUSVX
      OVVAYBUVNBVCUVIYTUVJWDUVKUVLVUEUVMUVOYMVXPVXIVXJVXSVYAUVPYHAVCUXISTVXOAUX
      HPUYPUYJAFUYIUYMUVQVCPSTAUVRVJUWCYBYNAPBSTZUKZVXKBUGUBZPUHQZVUCUGUBZYRQZU
      XISVYIVXIVYKSTZVYLVXJSTZVXKVYMSTZAVUSVYHVYNVVABGUVSUVTAVYOVYHAVUCYPRVYOVU
      MVUCGUWAWCYBAVYNVYOUKVYPYIZVYHAVXQVXTVYKVDRZVYLVDRVYQVXRVXNAVYJVDRVYRABHV
      MZVYJUWBWCAVUCVUMVMVXIVXJVYKVYLUWDUWEYBUWFAVYMUXIVSVYHAVYKVYJUXHYRQZYRQPU
      XHUHQZVYMUXIAVYJPUXHAVYJVYSXGAPUYJXGAUXHUYPXGZUWGAVYLVYTVYKYRABFHUYOUWHWD
      AUXHYKRPYKRUXIWUAVSWUBUWIUXHPUWLYTUWJYBWFVVAUYJUWKUWMVWMUXIEUWNUWOYNUWPUW
      QYN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Zeta function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c zeta $. $( Riemann zeta function $)

  $( The Riemann zeta function. $)
  czeta $a class zeta $.

  ${
    $d f k n s $.
    $( Define the Riemann zeta function.  This definition uses a series
       expansion of the alternating zeta function ~~? zetaalt that is
       convergent everywhere except ` 1 ` , but going from the alternating zeta
       function to the regular zeta function requires dividing by
       ` 1 - 2 ^ ( 1 - s ) ` , which has zeroes other than ` 1 ` .  To extract
       the correct value of the zeta function at these points, we extend the
       divided alternating zeta function by continuity.  (Contributed by Mario
       Carneiro, 18-Jul-2014.) $)
    df-zeta $a |- zeta = ( iota_ f e. ( ( CC \ { 1 } ) -cn-> CC )
      A. s e. ( CC \ { 1 } ) ( ( 1 - ( 2 ^c ( 1 - s ) ) ) x. ( f ` s ) ) =
      sum_ n e. NN0 ( sum_ k e. ( 0 ... n ) ( ( ( -u 1 ^ k ) x. ( n _C k ) ) x.
        ( ( k + 1 ) ^c s ) ) / ( 2 ^ ( n + 1 ) ) ) ) $.
  $}

  ${
    $d k m n S $.  $d k F $.  $d k m ph $.
    zetacvg.1 $e |- ( ph -> S e. CC ) $.
    zetacvg.2 $e |- ( ph -> 1 < ( Re ` S ) ) $.
    zetacvg.3 $e |- ( ( ph /\ k e. NN ) -> ( F ` k ) = ( k ^c -u S ) ) $.
    $( The zeta series is convergent.  (Contributed by Mario Carneiro,
       18-Jul-2014.) $)
    zetacvg $p |- ( ph -> seq 1 ( + , F ) e. dom ~~> ) $=
      ( cfv ccxp co c1 wcel wceq cmul cc cc0 c2 wbr cr cle vn vm cn cv cre cneg
      cmpt nnuz 1zzd wa cabs oveq1 eqid ovex fvmpt adantl clog wne nnne0 negcld
      ce nncn adantr cxpefd eqtrd fveq2d nnrp relogcld recnd mulcl syl2an absef
      syl cmin remul renegd rered oveqan12d reim0d oveq2d imcl mul01d sylan9eqr
      cim oveq12d recld renegcld subid1d 3eqtrd eqtr4d cxpcld eqeltrd caddc cli
      cseq cdm cn0 cexp cdiv crp 2rp 1re resubcl sylancr rpcxpcl rpcnd clt recl
      addid2d breqtrrd wb 0re ltsubadd mp3an13 mpbird 2re cxplt mpanl12 sylancl
      1lt2 mpbid rprege0d absid 2cn cxp0 ax-mp 3brtr4d reeflogd syl2anc remulcl
      a1i nnrpd efle mulneg1 nncnd nnne0d cxpmuld cxpexp 2nn 3eqtr3d oveq2 nnre
      eqcomi geolim seqex breldm syl2anr rpred rpge0d lep1d peano2nn 0lt1 lttrd
      lemul2 syl112anc lenegd nn0re mulcomd simpr ax-1cn negsub nnexpcl cxpaddd
      eqcomd mpan 1cnd sylan cxp1d oveq1d 3eqtr4d climcnds abscvgcvg ) ACUAUCUA
      UDZBUEHZUFZIJZUGZDKUCUHAUIACUDZUCLZUJZUVRUVQHZUVRUVOIJZUVRDHZUKHZUVSUWAUW
      BMAUAUVRUVPUWBUCUVQUVMUVRUVOIULUVQUMZUVRUVOIUNUOUPZUVTUWDBUFZUVRUQHZNJZVA
      HZUKHZUWIUEHZVAHZUWBUVTUWCUWJUKUVTUWCUVRUWGIJZUWJGUVTUVRUWGUVSUVROLAUVRVB
      UPZUVSUVRPURAUVRUSUPZAUWGOLZUVSABEUTZVCZVDVEVFUVTUWIOLZUWKUWMMAUWQUWHOLZU
      WTUVSUWRUVSUWHUVSUVRUVRVGZVHZVIZUWGUWHVJVKUWIVLVMUVTUWMUVOUWHNJZVAHZUWBUV
      TUWLUXEVAUVTUWLUWGUEHZUWHUEHZNJZUWGWDHZUWHWDHZNJZVNJZUXEPVNJUXEAUWQUXAUWL
      UXMMUVSUWRUXDUWGUWHVOVKUVTUXIUXEUXLPVNAUVSUXGUVOUXHUWHNABEVPUVSUWHUXCVQVR
      UVSAUXLUXJPNJPUVSUXKPUXJNUVSUWHUXCVSVTAUXJAUWQUXJOLUWRUWQUXJUWGWAVIVMWBWC
      WEUVTUXEAUVOOLZUXAUXEOLUVSAUVOAUVNABEWFZWGZVIZUXDUVOUWHVJVKWHWIVFUVTUVRUV
      OUWOUWPAUXNUVSUXQVCZVDZWJWIWJUVTUWCUWNOGUVTUVRUWGUWOUWSWKWLAWMUVQKWOWNWPZ
      LWMUAWQQKUVNVNJZIJZUVMWRJZUGZPWOZUXTLZAUYEKKUYBVNJZWSJZWNRUYFAUYBUBUYDAUY
      BAQWTLZUYASLZUYBWTLXAAKSLZUVNSLZUYJXBUXOKUVNXCXDZQUYAXEXDZXFZAUYBQPIJZUYB
      UKHZKXGAUYAPXGRZUYBUYPXGRZAUYRKPUVNWMJZXGRZAKUVNUYTXGFAUVNABOLZUVNOLZEVUB
      UVNBXHVIVMZXIXJAUYLUYRVUAXKZUXOUYKUYLPSLZVUEXBXLKUVNPXMXNVMXOAUYJVUFUYRUY
      SXKZUYMXLQSLKQXGRUYJVUFUJVUGXPXTQUYAPXQXRXSYAAUYBSLPUYBTRUJUYQUYBMAUYBUYN
      YBUYBYCVMKUYPMAUYPKQOLZUYPKMYDQYEYFUUCYKYGUBUDZWQLZVUIUYDHZUYBVUIWRJZMAUA
      VUIUYCVULWQUYDUVMVUIUYBWRUUAUYDUMUYBVUIWRUNUOUPZUUDUYEUYHWNWMUYDPUUEKUYGW
      SUNUUFVMACUBUVQUYDUVTUWAUWBSUWFUVTUWBUVSUVRWTLUVOSLZUWBWTLAUXBUXPUVRUVOXE
      UUGZUUHWLUVTPUWBUWATUVTUWBVUOUUIUWFXJUVTUVOUVRKWMJZUQHZNJZVAHZUXFVUPUVQHZ
      UWATUVTVURUXETRZVUSUXFTRZUVTUVNVUQNJZUFZUVNUWHNJZUFZVURUXETUVTVVEVVCTRZVV
      DVVFTRUVTUWHVUQTRZVVGUVSVVHAUVSVVHUWHVAHZVUQVAHZTRZUVSUVRVUPVVIVVJTUVSUVR
      UVRUUBUUJUVSUVRUXBYHUVSVUPUVSVUPUVRUUKZYLZYHYGUVSUWHSLZVUQSLZVVHVVKXKUXCU
      VSVUPVVMVHZUWHVUQYMYIXOUPUVTVVNVVOUYLPUVNXGRZVVHVVGXKUVSVVNAUXCUPUVTVUPUV
      TVUPUVSVUPUCLZAVVLUPZYLVHAUYLUVSUXOVCAVVQUVSAPKUVNVUFAXLYKUYKAXBYKUXOPKXG
      RAUULYKFUUMVCUWHVUQUVNUUNUUOYAUVTVVEVVCAUYLVVNVVESLUVSUXOUXCUVNUWHYJVKAUY
      LVVOVVCSLUVSUXOVVPUVNVUQYJVKUUPYAAVUCVUQOLVURVVDMUVSVUDUVSVUQVVPVIUVNVUQY
      NVKAVUCUXAUXEVVFMUVSVUDUXDUVNUWHYNVKYGUVTVURSLZUXESLZVVAVVBXKAVUNVVOVVTUV
      SUXPVVPUVOVUQYJVKAVUNVVNVWAUVSUXPUXCUVOUWHYJVKVURUXEYMYIYAUVTVUTVUPUVOIJZ
      VUSUVTVVRVUTVWBMVVSUAVUPUVPVWBUCUVQUVMVUPUVOIULUWEVUPUVOIUNUOVMUVTVUPUVOU
      VTVUPVVSYOUVTVUPVVSYPUXRVDVEUVTUWAUWBUXFUWFUXSVEYGAVUJUJZVULQVUIWRJZVWDUV
      OIJZNJZVUKVWDVWDUVQHZNJVWCUYBVUIIJZVWDKIJZVWENJZVULVWFVWCQUYAVUINJZIJZVWD
      KUVOWMJZIJZVWHVWJVWCVWLQVUIUYANJZIJQVUIIJZUYAIJVWNVWCVWKVWOQIVWCUYAVUIAUY
      AOLVUJAUYAUYMVIVCZVWCVUIVUJVUISLAVUIUUQUPZVIZUURVTVWCQVUIUYAUYIVWCXAYKZVW
      RVWQYQVWCVWPVWDUYAVWMIVWCVUHVUJVWPVWDMYDAVUJUUSZQVUIYRXDVWCVWMUYAVWCKOLVU
      CVWMUYAMUUTAVUCVUJVUDVCKUVNUVAXDUVDWEWIVWCQUYAVUIVWTAUYJVUJUYMVCVWSYQVWCV
      WDKUVOVWCVWDVUJVWDUCLZAQUCLZVUJVXBYSQVUIUVBZUVEUPZYOZVWCVWDVXEYPVWCUVFAUX
      NVUJUXQVCUVCYTAUYBOLVUJVWHVULMUYOUYBVUIYRUVGVWCVWIVWDVWENVWCVWDVXFUVHUVIY
      TVUMVWCVWGVWEVWDNVWCVXBVWGVWEMVWCVXCVUJVXBYSVXAVXDXDUAVWDUVPVWEUCUVQUVMVW
      DUVOIULUWEVWDUVOIUNUOVMVTUVJUVKXOUVL $.
  $}

  $(
  @{
    @d k m n S @.  @d k F @.  @d k m ph @.
    cxpfdcvg.1 @e |- F = ( k e. NN0 |-> ( n e. NN0 |-> sum_ m e. ( 0 ... k )
      ( ( ( -u 1 ^ m ) x. ( k _C m ) ) x. ( ( n + m ) ^c S ) ) ) @.
    @( FIX COMMENT @)
    cxpfdfval @p |- ( K e. NN0 -> ( F ` K ) = ( n e. NN0 |-> sum_ m e.
    ( 0 ... K ) ( ( ( -u 1 ^ m ) x. ( K _C m ) ) x. ( ( n + m ) ^c S ) ) ) ) @=
      ? @.
      @( [18-Jul-2014] @)

    @( FIX COMMENT @)
    cxpfdval @p |- ( ( K e. NN0 /\ N e. NN0 ) -> ( ( F ` K ) ` N ) = sum_ m e.
      ( 0 ... K ) ( ( ( -u 1 ^ m ) x. ( K _C m ) ) x. ( ( N + m ) ^c S ) ) ) @=
      ? @.
      @( [18-Jul-2014] @)

    @( FIX COMMENT @)
    cxpfd0 @p |- ( N e. NN0 -> ( ( F ` 0 ) ` N ) = ( N ^c S ) ) @=
      ? @.
      @( [18-Jul-2014] @)

    cxpfdcvg.2 @e |- ( ph -> K e. NN0 ) @.
    cxpfdcvg.3 @e |- ( ph -> S e. RR ) @.
    @( FIX COMMENT @)
    cxpfddif @p |- ( ph -> ( ( F ` ( K + 1 ) ) ` N ) =
      ( ( ( F ` K ) ` N ) - ( ( F ` K ) ` ( N + 1 ) ) ) ) @=
      ? @.
      @( [18-Jul-2014] @)

    @( FIX COMMENT @)
    cxpfditg @p |- ( ph -> ( ( F ` K ) ` N ) = sum_ m e. ( 0 ... N )
      ( ( ( -u 1 ^ m ) x. ( K _C m ) ) x. ( ( N + m ) ^c S ) ) ) @=
      ? @.
      @( [18-Jul-2014] @)

    cxpfdcvg.4 @e |- ( ph -> S < N ) @.
    @{
      cxpfdle.5 @e |- ( ph -> K e. NN0 ) @.
      cxpfdle.6 @e |- ( ph -> M e. ( ZZ>= ` K ) ) @.
      @( FIX COMMENT @)
      cxpfdle @p |- ( ph -> ( F ` M ) <_ ( F ` K ) ) @=
        ? @.
        @( [18-Jul-2014] @)
    @}

    @( FIX COMMENT @)
    cxpfdcvg @p |- ( ph -> F ~~> 0 ) @=
      ? @.
      @( [18-Jul-2014] @)
  @}
  $)

  $(
  @{
    @d k n s S @.
    @( The value of the zeta function. @)
    zetacl @p |- ( ( S e. CC /\ S =/= 1 ) -> ( zeta ` S ) e. CC ) @=
      ? @.
  @}

  @( Give an alternating sequence related to the zeta function. @)
  zetaalt @p |- ( ( S e. CC /\ 0 < ( Re ` S ) ) ->
    ( ( 1 - ( exp ` ( ( 1 - S ) x. ( log ` 2 ) ) ) ) x. ( zeta ` S ) ) =
    sum_ n e. NN ( ( -u 1 ^ n ) x. ( n ^c -u S ) ) ) @=
    ? @.

  @( Derive the standard expression for the zeta function. (This is usually
     quoted as the definition of the zeta function, but it is not convergent
     everywhere, unlike our definition.) @)
  zetaval2 @p |- ( ( S e. CC /\ 1 < ( Re ` S ) ) ->
    ( zeta ` S ) = sum_ n e. NN ( n ^c -u S ) ) @=
    ? @.

  @{
    @( The laurent expansion of the zeta function about the pole at ` s = 1 ` .
       The function ` J ( n ) ` is commonly known as the ` n ` -th Stieltjes
       constant. @)
    zetaval3.1 @e |- J = ( ~~> ` ( m e. NN |->
          ( sum_ k e. ( 1 ... m ) ( ( ( log ` k ) ^ n ) / k ) -
            ( ( ( log ` m ) ^ ( n + 1 ) ) / ( n + 1 ) ) ) ) ) @.
    zetaval3 @p |- ( ( S e. CC /\ S =/= 1 ) -> ( zeta ` S ) =
      ( ( 1 / ( S - 1 ) ) + sum_ n e. NN0
        ( ( ( ( 1 - S ) ^ n ) / ( ! ` n ) ) x. J ) ) ) @=
      ? @.
  @}

  @( The value of the zeta function on the positive integers. @)
  zetann @p |- ( S e. ( ZZ>= ` 2 ) ->
    ( zeta ` S ) = sum_ n e. NN ( n ^ -u S ) ) @=
    ? @.

  @( The value of ` zeta ( 0 ) ` . @)
  zeta0 @p |- ( zeta ` 0 ) = -u ( 1 / 2 ) @=
    ? @.

  @( The value of ` zeta ( 2 ) ` , whose derivation (with an imprecise proof)
     is attributed to Euler. @)
  zeta2 @p |- ( zeta ` 2 ) = ( ( _pi ^ 2 ) / 6 ) @=
    ? @.

  @( Apery's constant, ` zeta ( 3 ) ` , is irrational. @)
  zeta3irr @p |- ( zeta ` 3 ) e/ QQ @=
    ? @.

  @( The trivial zeroes of the zeta function. @)
  zetatrivz @p |- ( N e. NN -> ( zeta ` ( -u 2 x. N ) ) = 0 ) @=
    ? @.

  @( The nontrivial zeroes of the zeta function are in the critical strip.
     The Riemann Hypothesis would replace this conclusion with
     ` ( Re `` S ) = ( 1 / 2 ) ` . @)
  zetazcs @p |- ( ( S e. ( CC \ ZZ ) /\ ( zeta ` S ) = 0 ) ->
      ( Re ` S ) e. ( 0 (,) 1 ) ) @=
    ? @.
  $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Gamma function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c _G $. $( Gamma function (capital letter Gamma) $)
  $c log_G $. $( logarithm of the Gamma function $)
  $c 1/_G $. $( inverse of the Gamma function $)

  $( Logarithm of the Gamma function. $)
  clgam $a class log_G $.

  $( The Gamma function. $)
  cgam $a class _G $.

  $( The inverse Gamma function. $)
  cigam $a class 1/_G $.

  ${
    $d z m $.
    $( Define the log-Gamma function.  We can work with this form of the gamma
       function a bit easier than the equivalent expression for the gamma
       function itself, and moreover this function is not actually equal to
       ` log ( _G ( x ) ) ` because the branch cuts are placed differently (we
       do have ` exp ( log_G ( x ) ) = _G ( x ) ` , though).  This definition
       is attributed to Euler, and unlike the usual integral definition is
       defined on the entire complex plane except the nonpositive integers
       ` ZZ \ NN ` , where the function has simple poles.  (Contributed by
       Mario Carneiro, 12-Jul-2014.) $)
    df-lgam $a |- log_G = ( z e. ( CC \ ( ZZ \ NN ) ) |-> ( sum_ m e. NN
    ( ( z x. ( log ` ( ( m + 1 ) / m ) ) ) - ( log ` ( ( z / m ) + 1 ) ) )
      - ( log ` z ) ) ) $.

    $( Define the Gamma function.  See ~ df-lgam for more information about the
       reason for this definition in terms of the log-gamma function.
       (Contributed by Mario Carneiro, 12-Jul-2014.) $)
    df-gam $a |- _G = ( exp o. log_G ) $.

    $( Define the inverse Gamma function, which is defined everywhere, unlike
       the Gamma function itself.  (Contributed by Mario Carneiro,
       16-Jul-2017.) $)
    df-igam $a |- 1/_G = ( x e. CC |->
      if ( x e. ( ZZ \ NN ) , 0 , ( 1 / ( _G ` x ) ) ) ) $.
  $}

  $( Elementhood in the set of non-nonpositive integers.  (Contributed by Mario
     Carneiro, 12-Jul-2014.) $)
  eldmgm $p |- ( A e. ( CC \ ( ZZ \ NN ) ) <->
                ( A e. CC /\ -. -u A e. NN0 ) ) $=
    ( cc cz cn cdif wcel wn wa cneg cn0 eldif cr wo simprbi orcanai cc0 wbr clt
    elznn mpbid wceq negneg adantr nn0negz adantl eqeltrrd ex wi cle nngt0 nnre
    lt0neg2d wb renegcld 0re ltnle sylancl nn0ge0 nsyl3 a1i jcad impbid2 syl5bb
    notbid pm5.32i bitri ) ABCDEZEFABFZAVGFZGZHVHAIZJFZGZHABVGKVHVJVMVHVIVLVIAC
    FZADFZGZHZVHVLACDKVHVQVLVNVOVLVNALFVOVLMASNOVHVLVNVPVHVLVNVHVLHVKIZACVHVRAU
    AVLAUBUCVLVRCFVHVKUDUEUFUGVLVPUHVHVOPVKUIQZVLVOVKPRQZVSGZVOPARQVTAUJVOAAUKZ
    ULTVOVKLFPLFVTWAUMVOAWBUNUOVKPUPUQTVKURUSUTVAVBVCVDVEVF $.

  $( If ` A ` is not a nonpositive integer, then ` A + N ` is nonzero for any
     nonnegative integer ` N ` .  (Contributed by Mario Carneiro,
     12-Jul-2014.) $)
  dmgmaddn0 $p |- ( ( A e. ( CC \ ( ZZ \ NN ) ) /\ N e. NN0 ) ->
                    ( A + N ) =/= 0 ) $=
    ( cc cz cn cdif wcel cn0 wa cneg wn caddc co cc0 eldmgm simprbi adantr wceq
    wne cmin df-neg eqeq1i 0cnd eldifi nn0cn adantl subaddd simpr eleq1 sylbird
    syl5bb syl5ibrcom necon3bd mpd ) ACDEFZFGZBHGZIZAJZHGZKZABLMZNSUPVAUQUPACGZ
    VAAOPQURUTVBNURVBNRZUSBRZUTVENATMZBRURVDUSVFBAUAUBURNABURUCUPVCUQACUOUDQUQB
    CGUPBUEUFUGUKURUTVEUQUPUQUHUSBHUIULUJUMUN $.

  $( If ` A ` is in the continuous domain of the logarithm, then it is in the
     domain of the Gamma function.  (Contributed by Mario Carneiro,
     8-Jul-2017.) $)
  dmlogdmgm $p |- ( A e. ( CC \ ( -oo (,] 0 ) ) ->
    A e. ( CC \ ( ZZ \ NN ) ) ) $=
    ( cc cmnf cc0 cioc co cdif wcel cneg cn0 wn cz cn eldifi cle wa simpr mpbid
    wbr clt nn0ge0d cr crp adantr nn0red negrebd wi eqid ellogdm simprbi syldan
    imp rpgt0d lt0neg2d 0red ltnled pm2.65da eldmgm sylanbrc ) ABCDEFZGZHZABHZA
    IZJHZKABLMGGHABUTNZVBVEDVDOSZVBVEPZVDVBVEQZUAVHVDDTSZVGKVHDATSVJVHAVBVEAUBH
    ZAUCHZVHAVBVCVEVFUDVHVDVIUEZUFZVBVKVLVBVCVKVLUGAVAVAUHUIUJULUKUMVHAVNUNRVHV
    DDVMVHUOUPRUQAURUS $.

  $( A positive real number is in the domain of the Gamma function.
     (Contributed by Mario Carneiro, 9-Jul-2017.) $)
  rpdmgm $p |- ( A e. RR+ -> A e. ( CC \ ( ZZ \ NN ) ) ) $=
    ( crp wcel cc cmnf cioc co cdif cz cn cr wi rpcn ax-1 eqid ellogdm sylanbrc
    cc0 dmlogdmgm syl ) ABCZADERFGHZCZADIJHHCUAADCAKCZUALUCAMUAUDNAUBUBOPQAST
    $.

  ${
    dmgmn0.a $e |- ( ph -> A e. ( CC \ ( ZZ \ NN ) ) ) $.
    $( If ` A ` is not a nonpositive integer, then ` A ` is nonzero.
       (Contributed by Mario Carneiro, 3-Jul-2017.) $)
    dmgmn0 $p |- ( ph -> A =/= 0 ) $=
      ( cc0 caddc co cc cz cdif eldifad addid1d wcel cn0 0nn0 dmgmaddn0 sylancl
      cn wne eqnetrrd ) ABDEFZBDABABGHQIZCJKABGUAILDMLTDRCNBDOPS $.

    ${
      dmgmaddnn0.n $e |- ( ph -> N e. NN0 ) $.
      $( If ` A ` is not a nonpositive integer and ` N ` is a nonnegative
         integer, then ` A + N ` is also not a nonpositive integer.
         (Contributed by Mario Carneiro, 6-Jul-2017.) $)
      dmgmaddnn0 $p |- ( ph -> ( A + N ) e. ( CC \ ( ZZ \ NN ) ) ) $=
        ( caddc co cc wcel cneg cn0 wn cz cn cdif eldifad nn0cnd eldmgm adantr
        wa addcld sylib simprd wceq cmin negdi2d oveq1d negcld npcand nn0addcld
        eqtrd simpr eqeltrrd mtand sylanbrc ) ABCFGZHIUPJZKIZLUPHMNOZOZIABCABHU
        SDPZACEQZUAAURBJZKIZABHIZVDLZABUTIVEVFTDBRUBUCAURTZUQCFGZVCKAVHVCUDURAV
        HVCCUEGZCFGVCAUQVICFABCVAVBUFUGAVCCABVAUHVBUIUKSVGUQCAURULACKIURESUJUMU
        NUPRUO $.
    $}

    dmgmdivn0.a $e |- ( ph -> M e. NN ) $.
    $( Lemma for ~ lgamf .  (Contributed by Mario Carneiro, 3-Jul-2017.) $)
    dmgmdivn0 $p |- ( ph -> ( ( A / M ) + 1 ) =/= 0 ) $=
      ( caddc co cdiv c1 cc cz cn cdif eldifad nncnd nnne0d divdird dividd wcel
      cc0 oveq2d eqtrd addcld cn0 wne nnnn0d dmgmaddn0 syl2anc divne0d eqnetrrd
      ) ABCFGZCHGZBCHGZIFGZTAULUMCCHGZFGUNABCCABJKLMZDNZACEOZURACEPZQAUOIUMFACU
      RUSRUAUBAUKCABCUQURUCURABJUPMSCUDSUKTUEDACEUFBCUGUHUSUIUJ $.
  $}

  ${
    $d n r y G $.  $d t x y N $.  $d k m n r t x y z R $.  $d m n r t y z U $.
    $d k m t x y A $.  $d n r y O $.  $d m n r t x y z ph $.  $d n r y T $.
    lgamgulm.r $e |- ( ph -> R e. NN ) $.
    lgamgulm.u $e |- U = { x e. CC | ( ( abs ` x ) <_ R /\
      A. k e. NN0 ( 1 / R ) <_ ( abs ` ( x + k ) ) ) } $.
    $( Lemma for ~ lgamgulm .  (Contributed by Mario Carneiro, 3-Jul-2017.) $)
    lgamgulmlem1 $p |- ( ph -> U C_ ( CC \ ( ZZ \ NN ) ) ) $=
      ( cv cabs cfv cle wbr co caddc cn0 cc cn cdif wcel cc0 c1 cdiv wral wa cz
      crab w3a cneg wn simp2 3ad2ant1 nnred nngt0d recgt0d 0red nnrecred ltnled
      clt mpbid wi wceq fveq2d breq2d rspccv adantl 3ad2ant3 negidd abs0 syl6eq
      oveq2 sylibd mtod eldmgm sylanbrc rabssdv syl5eqss ) ADBHZIJCKLZUACUBMZVQ
      EHZNMZIJZKLZEOUCZUDZBPUFPUEQRRZGAWEBPWFAVQPSZWEUGZWGVQUHZOSZUIVQWFSAWGWEU
      JZWHWJVSTKLZWHTVSURLWLUIWHCWHCAWGCQSWEFUKZULWHCWMUMUNWHTVSWHUOWHCWMUPUQUS
      WHWJVSVQWINMZIJZKLZWLWEAWJWPUTZWGWDWQVRWCWPEWIOVTWIVAZWBWOVSKWRWAWNIVTWIV
      QNVJVBVCVDVEVFWHWOTVSKWHWOTIJTWHWNTIWHVQWKVGVBVHVIVCVKVLVQVMVNVOVP $.

    ${
      lgamgulm.n $e |- ( ph -> N e. NN ) $.
      lgamgulm.a $e |- ( ph -> A e. U ) $.
      lgamgulm.l $e |- ( ph -> ( 2 x. R ) <_ N ) $.
      $( Lemma for ~ lgamgulm .  (Contributed by Mario Carneiro,
         3-Jul-2017.) $)
      lgamgulmlem2 $p |- ( ph ->
        ( abs ` ( ( A / N ) - ( log ` ( ( A / N ) + 1 ) ) ) ) <_
          ( R x. ( ( 1 / ( N - R ) ) - ( 1 / N ) ) ) ) $=
        ( vt c1 cc0 co cfv wcel cc cr vy cdiv cv cmul caddc clog cmin cmpt cabs
        cle wbr 1elunit 0elunit 1red eqid a1i wss ccncf cdif nnred recnd divcld
        cn unitssre ax-resscn cncfmptc syl3anc sylancr wa crp adantr simpr 1cnd
        wi mulcld addcld cre wceq adantl recld clt cneg abscld syl c2 rehalfcld
        absge0d 0re absdivd nnrpd absidd oveq2d eqtr2d wral fveq2 breq1d fveq2d
        cn0 simpld eqbrtrrd lemul12ad absmuld mulid1d mpbid wne divrecd breqtrd
        ledivmuld mpbird letrd lelttrd oveq2i syl6eq breqtrrd eqeltrrd eqidd wf
        fvres eqtrd wb cncfmpt2f cdv cdm cioo logcld subcld sylan2 reccld oveq2
        remulcld resubcld nfcv oveq12d oveq1d dividd divsubdird recdivd eqbrtrd
        cvv abs1 cicc ccnfld ctopn ctx ccn subcn cz lgamgulmlem1 sseldd eldifad
        0red nnne0d sstri ssid cncfmptid mulcncf cmnf cioc cres sseldi nndivred
        ccom absrele elicc2i simp2bi rpge0d oveq1 breq2d ralbidv anbi12d elrab2
        rere 1re simprbi lediv1dd simp3bi 3brtr3d 2rp lemuldiv2d halflt1 absltd
        2cnd 2ne0 renegcld posdifd subnegd readdd re1 elrpd ex ellogdm sylanbrc
        logcn cncff feqmptd fmptco mpteq2dva fmptd difss addcn cncffvrn crn ctg
        cncfco logdmn0 tgioo2 cnt iccntr dvmptntr cpr reelprrecn ioossicc sseli
        sselda dvmptid dvmptcmul mpteq2dv ctop retop iooretop isopn3i dvmptres2
        syl5ss mp2an cnelprrecn eldifi dvmptc dvmptadd addid1d mpteq2ia syl6req
        0cnd dvlog dvmptco dvmptsub dmeqd ovex dmmpti 2re 2timesd ltletrd difrp
        ltaddrpd syl2anc rprecred nnrecred fveq1d nffvmpt1 nffv nfbr nfim eleq1
        nfv anbi2d imbi12d fvmpt2 sylancl subdid mulcomd div23d 3eqtrd rpdivcld
        3eqtr4d divne0d eliooord gt0ne0d mulne0d divdird eqnetrrd absrpcld 0le1
        dmgmn0 negcld rpne0d rerpdivcld lerecd absnegd oveq1i lesub1dd abs2difd
        rpred syl5eqbrr addcomd negeqd negdi2d eqtr3d lediv2ad subne0d 3eqtr3rd
        gtned nncand pncand 3eqtr2d eqcomd recidd 3brtr4d chvar dvlip sylan9eqr
        mul12d mpanr12 ovexd fvmptd mul01d 0p1e1 0m0e0 dmgmdivn0 subid1d fveq2i
        log1 1m0e1 eqtri syl5req ) ANMONUUAPZCGUBPZMUCZUDPZVXQNUEPZUFQZUGPZUHZQ
[encoded data, 7679 characters]
        $.

      $( Lemma for ~ lgamgulm .  (Contributed by Mario Carneiro,
         3-Jul-2017.) $)
      lgamgulmlem3 $p |- ( ph ->
        ( abs ` ( ( A x. ( log ` ( ( N + 1 ) / N ) ) ) -
                  ( log ` ( ( A / N ) + 1 ) ) ) ) <_
        ( R x. ( ( 2 x. ( R + 1 ) ) / ( N ^ 2 ) ) ) ) $=
        ( c1 co cdiv cfv cmul cmin c2 cle caddc clog cabs cc cz cn lgamgulmlem1
        cexp cdif sseldd eldifad peano2nnd nnrpd rpdivcld relogcld recnd mulcld
        nncnd nnne0d divcld 1cnd addcld dmgmdivn0 logcld subcld abscld readdcld
        nnred cr wcel 2re a1i 1red remulcld nndivred abs3difd nnrecred resubcld
        nnsqcld clt wbr crp ltaddrpd 2timesd breqtrrd ltletrd wb difrp rprecred
        syl2anc mpbid divrecd oveq2d subdid eqtr4d fveq2d absmuld eqtrd absge0d
        cv cn0 wral wa fveq2 breq1d oveq1 breq2d ralbidv anbi12d elrab2 simprbi
        wceq simpld relogdivd logdifbnd eqbrtrd abssuble0d logdiflbnd lemul12ad
        syl lesub2dd lgamgulmlem2 le2addd gtned subne0d subrecd pnncand addcomd
        oveq1d eqtr2d reccld npncan3d eqcomd adddid 3eqtrd rerpdivcld cc0 letrd
        rpmulcld rpge0d 2z rpexpcld rphalfcld 0le1 addge0d sqvald wne rehalfcld
        2ne0 div23d 2rp divge0d lemuldiv2d 2halvesd subaddd mpbird lesubd lep1d
        lediv2ad divdiv2d mulcomd lemul2ad eqbrtrrd ) ACGMUANZGONZUBPZQNZCGONZM
        UANZUBPZRNZUCPUVGUVHRNZUCPZUVHUVJRNZUCPZUANZDSDMUANZQNZGSUHNZONZQNZAUVK
        AUVGUVJACUVFACUDUEUFUIZAEUDUWBUICABDEFHIUGKUJZUKZAUVFAUVEAUVDGAUVDAGJUL
        ZUMZAGJUMZUNUOZUPZUQZAUVIAUVHMACGUWDAGJURZAGJUSZUTZAVAZVBACGUWCJVCVDZVE
        VFAUVMUVOAUVLAUVGUVHUWJUWMVEVFZAUVNAUVHUVJUWMUWOVEVFZVGZADUVTADHVHZAUVR
        UVSASUVQSVIVJAVKVLZADMUWSAVMZVGZVNAGJVSZVOZVNZAUVGUVJUVHUWJUWOUWMVPAUVP
        DMGONZMUVDONZRNZQNZDMGDRNZONZUXFRNZQNZUANZUWAUWRAUXIUXMADUXHUWSAUXFUXGA
        GJVQZAUVDUWEVQZVRZVNZADUXLUWSAUXKUXFAUXJADGVTWAZUXJWBVJZADSDQNZGUWSASDU
        WTUWSVNAGJVHZADDDUANUYAVTADDUWSADHUMZWCADADHURZWDWELWFZADVIVJGVIVJUXSUX
        TWGUWSUYBDGWHWJWKZWIUXOVRZVNZVGUXEAUVMUVOUXIUXMUWPUWQUXRUYHAUVMCUCPZUVF
        UXFRNZUCPZQNZUXITAUVMCUYJQNZUCPUYLAUVLUYMUCAUVLUVGCUXFQNZRNUYMAUVHUYNUV
        GRACGUWDUWKUWLWLWMACUVFUXFUWDUWIAUXFUXOUPZWNWOWPACUYJUWDAUVFUXFUWIUYOVE
        ZWQWRAUYIDUYKUXHACUWDVFUWSAUYJUYPVFUXQACUWDWSAUYJUYPWSAUYIDTWAZMDONZCFW
        TZUANZUCPZTWAZFXAXBZACEVJZUYQVUCXCZKVUDCUDVJVUEBWTZUCPZDTWAZUYRVUFUYSUA
        NZUCPZTWAZFXAXBZXCVUEBCUDEVUFCXLZVUHUYQVULVUCVUMVUGUYIDTVUFCUCXDXEVUMVU
        KVUBFXAVUMVUJVUAUYRTVUMVUIUYTUCVUFCUYSUAXFWPXGXHXIIXJXKXTXMAUYKUXFUVFRN
        UXHTAUVFUXFUWHUXOAUVFUVDUBPGUBPRNZUXFTAUVDGUWFUWGXNZAGWBVJZVUNUXFTWAUWG
        GXOXTXPXQAUXGUVFUXFUXPUWHUXOAUXGVUNUVFTAVUPUXGVUNTWAUWGGXRXTVUOWEYAXPXS
        XPABCDEFGHIJKLYBYCADUVQUXJUVDQNZONZQNZUXNUWATAVUSDUXKUXGRNZQNDUXHUXLUAN
        ZQNUXNAVURVUTDQAVUTUVDUXJRNZVUQONVURAUXJUVDAGDUWKUYDVEZAGMUWKUWNVBZAGDU
        WKUYDADGUWSUYEYDYEZAUVDUWEUSZYFAVVBUVQVUQOAVVBMDUANUVQAGMDUWKUWNUYDYGAM
        DUWNUYDYHWRYIYJWMAVUTVVADQAVVAVUTAUXFUXGUXKUYOAUVDVVDVVFYKAUXJVVCVVEYKY
        LYMWMADUXHUXLUYDAUXHUXQUPAUXLUYGUPYNYOAVURUVTDAUVQVUQUXBAUXJUVDUYFUWFYS
        ZYPUXDUWSADUYCYTZAVURUVQUVSSONZONZUVTTAVVIVUQUVQAUVSAGSUWGSUEVJAUUAVLUU
        BUUCVVGUXBADMUWSUXAVVHYQMTWAAUUDVLUUEAVVIGSONZGQNZVUQTAVVIGGQNZSONVVLAU
        VSVVMSOAGUWKUUFYIAGGSUWKUWKASUWTUPZSYQUUGAUUIVLZUUJWRAVVKUXJGUVDAGUYBUU
        HZAGDUYBUWSVRUYBAGMUYBUXAVGAGSUYBSWBVJAUUKVLZAGUWGYTZUULVVRADGVVKUWSUYB
        VVPADVVKGVVKRNZTAUYAGTWADVVKTWALADGSUWSUYBVVQUUMWKAVVSVVKXLVVKVVKUANGXL
        AGUWKUUNAGVVKVVKUWKAVVKVVPUPZVVTUUOUUPWEUUQAGUYBUURXSXPUUSAVVJUVQSQNZUV
        SONUVTAUVQUVSSAUVQADHULURZAUVSUXCURVVNAUVSUXCUSVVOUUTAVWAUVRUVSOAUVQSVW
        BVVNUVAYIYJWEUVBUVCYRYR $.
    $}

    lgamgulm.g $e |- G = ( m e. NN |-> ( z e. U |->
  ( ( z x. ( log ` ( ( m + 1 ) / m ) ) ) - ( log ` ( ( z / m ) + 1 ) ) ) ) ) $.
    ${
      lgamgulm.t $e |- T = ( m e. NN |-> if ( ( 2 x. R ) <_ m ,
        ( R x. ( ( 2 x. ( R + 1 ) ) / ( m ^ 2 ) ) ) ,
        ( ( R x. ( log ` ( ( m + 1 ) / m ) ) ) +
          ( ( log ` ( ( R + 1 ) x. m ) ) + _pi ) ) ) ) $.
      $( Lemma for ~ lgamgulm .  (Contributed by Mario Carneiro,
         3-Jul-2017.) $)
      lgamgulmlem4 $p |- ( ph -> seq 1 ( + , T ) e. dom ~~> ) $=
        ( caddc c1 wcel c2 cmul co cn vn cseq cli cdm cv cexp cdiv cmpt 2nn a1i
        nnmulcld nnzd cuz cfv cle wbr clog cpi cif eluzle adantl iftrued eluznn
        wa wceq sylan breq2 oveq1 oveq2d id oveq12d fveq2d oveq2 ifbieq12d ovex
        oveq1d ifex fvmpt syl eqid 3eqtr4d seqfeq cneg ccxp nnuz 1zzd 2cnd 1cnd
        nncnd addcld mulcld cre clt 1lt2 2re rere ax-mp breqtrri zetacvg climdm
        cr sylib cc simpr negcld cxpcld eqeltrd adantr sqcld cz expne0d divrecd
        nnne0d divassd cxpnegd cxpexpzd eqtr2d 3eqtr3d isermulc2 climrel divcld
        2z releldmi iserex mpbid nnred 1red readdcld remulcld nnsqcld peano2nnd
        nndivred nnrpd rpdivcld relogcld rpmulcld pire ifcld recnd mpbird ) ANE
        OUBUCUDZPNEQDRSZUBZUUAPAUUCNHTDQDONSZRSZHUEZQUFSZUGSZRSZUHZUUBUBZUUAANU
        AEUUJUUBAUUBAQDQTPAUIUJJUKZULAUAUEZUUBUMUNPZVDZUUBUUMUOUPZDUUEUUMQUFSZU
        GSZRSZDUUMONSZUUMUGSZUQUNZRSZUUDUUMRSZUQUNZURNSZNSZUSZUUSUUMEUNZUUMUUJU
        NZUUOUUPUUSUVGUUNUUPAUUBUUMUTVAVBUUOUUMTPZUVIUVHVEZAUUBTPUUNUVKUULUUMUU
        BVCVFZHUUMUUBUUFUOUPZUUIDUUFONSZUUFUGSZUQUNZRSZUUDUUFRSZUQUNZURNSZNSZUS
        UVHTEUUFUUMVEZUVNUUPUUIUWBUUSUVGUUFUUMUUBUOVGUWCUUHUURDRUWCUUGUUQUUEUGU
        UFUUMQUFVHVIVIZUWCUVRUVCUWAUVFNUWCUVQUVBDRUWCUVPUVAUQUWCUVOUUTUUFUUMUGU
        UFUUMONVHUWCVJVKVLVIUWCUVTUVEURNUWCUVSUVDUQUUFUUMUUDRVMVLVPVKVNMUUPUUSU
        VGDUURRVOZUVCUVFNVOVQVRZVSUUOUVKUVJUUSVEZUVMHUUMUUIUUSTUUJUWDUUJVTUWEVR
        ZVSWAWBANUUJOUBZUUAPZUUKUUAPAUWIDUUERSZNHTUUFQWCZWDSZUHZOUBZUCUNZRSZUCU
        PUWJAUWPUWKUAUWNUUJOTWEAWFADUUEADJWIZAQUUDAWGZADOUWRAWHWJWKWKAUWOUUAPUW
        OUWPUCUPAQUAUWNUWSOQWLUNZWMUPAOQUWTWMWNQXAPZUWTQVEWOQWPWQWRUJUVKUUMUWNU
        NZUUMUWLWDSZVEAHUUMUWMUXCTUWNUUFUUMUWLWDVHUWNVTUUMUWLWDVOVRVAZWSUWOWTXB
        AUVKVDZUXBUXCXCUXDUXEUUMUWLUXEUUMAUVKXDZWIZUXEQUXEWGZXEXFXGUXEUUSUWKUXC
        RSZUVJUWKUXBRSUXEUWKUUQUGSUWKOUUQUGSZRSUUSUXIUXEUWKUUQUXEDUUEADXCPUVKUW
        RXHZUXEQUUDUXHUXEDOUXKUXEWHWJWKZWKUXEUUMUXGXIZUXEUUMQUXGUXEUUMUXFXMZQXJ
        PUXEYBUJZXKZXLUXEDUUEUUQUXKUXLUXMUXPXNUXEUXJUXCUWKRUXEUXCOUUMQWDSZUGSUX
        JUXEUUMQUXGUXNUXHXOUXEUXQUUQOUGUXEUUMQUXGUXNUXOXPVIXQVIXRUVKUWGAUWHVAZU
        XEUXBUXCUWKRUXDVIWAXSUWIUWQUCXTYCVSAUAUUJOUUBTWEUULUXEUVJUUSXCUXRUXEDUU
        RUXKUXEUUEUUQUXLUXMUXPYAWKXGYDYEXGAUAEOUUBTWEUULUXEUVIUXEUVIUVHXAUVKUVL
        AUWFVAUXEUUPUUSUVGXAUXEDUURUXEDADTPUVKJXHZYFZUXEUUEUUQUXEQUUDUXAUXEWOUJ
        UXEDOUXTUXEYGYHYIUXEUUMUXFYJYLYIUXEUVCUVFUXEDUVBUXTUXEUVAUXEUUTUUMUXEUU
        TUXEUUMUXFYKYMUXEUUMUXFYMZYNYOYIUXEUVEURUXEUVDUXEUUDUUMUXEUUDUXEDUXSYKY
        MUYAYPYOURXAPUXEYQUJYHYHYRXGYSYDYT $.

      $( Lemma for ~ lgamgulm .  (Contributed by Mario Carneiro,
         3-Jul-2017.) $)
      lgamgulmlem5 $p |- ( ( ph /\ ( n e. NN /\ y e. U ) ) ->
        ( abs ` ( ( G ` n ) ` y ) ) <_ ( T ` n ) ) $=
        ( c1 caddc co cfv cle vt cv cn wcel wa cdiv clog cmul cmin cabs c2 cexp
        wbr cpi cif breq2 adantr cn0 wral cc crab weq fveq2 breq1d oveq1 fveq2d
        breq2d ralbidv anbi12d cbvrabv eqtri simplrl simpr lgamgulmlem3 wn cdif
        simprr cz lgamgulmlem1 sseldd eldifad peano2nnd nnrpd rpdivcld relogcld
        wss simprl recnd mulcld nncnd nnne0d divcld addcld logcld subcld abscld
        1cnd dmgmdivn0 readdcld remulcld rpmulcld cr pire a1i abs2dif2d absmuld
        nnred rpred mulid2d lep1d eqbrtrd lemuldivd mpbid logge0d absidd oveq2d
        1red eqtrd elrab2 simprbi ad2antll cc0 wceq nnrecred oveq2 letrd eqtr2d
        crp absdivd rpge0d 3brtr3d logled leadd1dd cmpt oveq12d oveq1d ad2antrl
        1rp fvmpt ovex lemul1ad absrpcld abslogle syl2anc cneg relogdiv sylancr
        simpld wne log1 oveq1i df-neg eqtr4i syl6req 0le1 lediv2ad nnnn0d rspcv
        simprd lediv1dd recdiv2d divdird dividd 3eqtrrd rpreccld abstrid oveq2i
        sylc abs1 syl6breq absge0d nnge1d lediv12ad lemulge11d absled mpbir2and
        div1d le2addd ifbothda mpteq2dv cnex rabex2 mptex fveq1d eqid ifbieq12d
        id ifex 3brtr4d ) AJUBZUCUDZCUBZGUDZUEZUEZUWLUWJPQRZUWJUFRZUGSZUHRZUWLU
        WJUFRZPQRZUGSZUIRZUJSZUKEUHRZUWJTUMZEUKEPQRZUHRZUWJUKULRZUFRZUHRZEUWRUH
        RZUXGUWJUHRZUGSZUNQRZQRZUOZUWLUWJKSZSZUJSUWJFSZTUXFUXDUXKTUMUXDUXPTUMZU
        XDUXQTUMUWOUXKUXPUXKUXQUXDTUPUXPUXQUXDTUPUWOUXFUEUAUWLEGHUWJUWOEUCUDZUX
        FAUYBUWNLUQZUQGBUBZUJSZETUMZPEUFRZUYDHUBZQRZUJSZTUMZHURUSZUEZBUTVAUAUBZ
        UJSZETUMZUYGUYNUYHQRZUJSZTUMZHURUSZUEZUAUTVAMUYMVUABUAUTBUAVBZUYFUYPUYL
        UYTVUBUYEUYOETUYDUYNUJVCVDVUBUYKUYSHURVUBUYJUYRUYGTVUBUYIUYQUJUYDUYNUYH
        QVEVFVGVHVIVJVKAUWKUWMUXFVLUWOUWMUXFAUWKUWMVQZUQUWOUXFVMVNUWOUYAUXFVOUW
        OUXDUWSUJSZUXBUJSZQRUXPUWOUXCUWOUWSUXBUWOUWLUWRUWOUWLUTVRUCVPZUWOGUTVUF
        VPZUWLAGVUGWFUWNABEGHLMVSUQVUCVTZWAZUWOUWRUWOUWQUWOUWPUWJUWOUWPUWOUWJAU
        WKUWMWGZWBWCUWOUWJVUJWCZWDZWEZWHZWIZUWOUXAUWOUWTPUWOUWLUWJVUIUWOUWJVUJW
        JZUWOUWJVUJWKZWLZUWOWQZWMZUWOUWLUWJVUHVUJWRZWNZWOWPUWOVUDVUEUWOUWSVUOWP
        ZUWOUXBVVBWPZWSUWOUXLUXOUWOEUWRUWOEUYCXGZVUMWTZUWOUXNUNUWOUXMUWOUXGUWJU
        WOUXGUWOEUYCWBZWCZVUKXAZWEZUNXBUDUWOXCXDZWSZWSUWOUWSUXBVUOVVBXEUWOVUDVU
        EUXLUXOVVCVVDVVFVVLUWOVUDUWLUJSZUWRUHRZUXLTUWOVUDVVMUWRUJSZUHRVVNUWOUWL
        UWRVUIVUNXFUWOVVOUWRVVMUHUWOUWRVUMUWOUWQUWOUWQVULXHUWOPUWJUHRZUWPTUMPUW
        QTUMUWOVVPUWJUWPTUWOUWJVUPXIUWOUWJUWOUWJVUJXGZXJXKUWOPUWPUWJUWOXQZUWOUW
        JPVVQVVRWSVUKXLXMXNZXOXPXRUWOVVMEUWRUWOUWLVUIWPZVVEVUMVVSUWOVVMETUMZUYG
        UWLUYHQRZUJSZTUMZHURUSZUWMVWAVWEUEZAUWKUWMUWLUTUDVWFUYMVWFBUWLUTGBCVBZU
        YFVWAUYLVWEVWGUYEVVMETUYDUWLUJVCVDVWGUYKVWDHURVWGUYJVWCUYGTVWGUYIVWBUJU
        YDUWLUYHQVEVFVGVHVIMXSXTYAZUUHZUUAXKUWOVUEUXAUJSZUGSZUJSZUNQRZUXOVVDUWO
        VWLUNUWOVWKUWOVWKUWOVWJUWOUXAVUTVVAUUBZWEZWHWPZVVKWSVVLUWOUXAUTUDUXAYBU
        UIVUEVWMTUMVUTVVAUXAUUCUUDUWOVWLUXNUNVWPVVJVVKUWOVWLUXNTUMUXNUUEZVWKTUM
        VWKUXNTUMZUWOVWQPUXMUFRZUGSZVWKTUWOVWTPUGSZUXNUIRZVWQUWOPYHUDZUXMYHUDVW
        TVXBYCYRVVIPUXMUUFUUGVXBYBUXNUIRVWQVXAYBUXNUIUUJUUKUXNUULUUMUUNUWOVWSVW
        JTUMVWTVWKTUMUWOPUXGUFRZUWJUFRUWLUWJQRZUJSZUWJUFRZVWSVWJTUWOVXDVXFUWJUW
        OUXGVVGYDZUWOVXEUWOUWLUWJVUIVUPWMZWPZVUKUWOVXDUYGVXFVXHUWOEUYCYDVXJUWOE
        UXGPUWOEUYCWCVVHVVRYBPTUMUWOUUOXDUWOEVVEXJUUPUWOUWJURUDVWEUYGVXFTUMZUWO
        UWJVUJUUQUWOVWAVWEVWHUUSVWDVXKHUWJURHJVBZVWCVXFUYGTVXLVWBVXEUJUYHUWJUWL
        QYEVFVGUURUVHYFUUTUWOUXGUWJUWOUXGVVGWJVUPUWOUXGVVGWKVUQUVAUWOVWJVXEUWJU
        FRZUJSVXFUWJUJSZUFRVXGUWOUXAVXMUJUWOVXMUWTUWJUWJUFRZQRUXAUWOUWLUWJUWJVU
        IVUPVUPVUQUVBUWOVXOPUWTQUWOUWJVUPVUQUVCXPYGVFUWOVXEUWJVXIVUPVUQYIUWOVXN
        UWJVXFUFUWOUWJVVQUWOUWJVUKYJXOZXPUVDYKUWOVWSVWJUWOUXMVVIUVEVWNYLXMXKUWO
        VWJUXMTUMVWRUWOVWJUXGUXMUWOUXAVUTWPZUWOEPVVEVVRWSZUWOUXMVVIXHUWOVWJUWTU
        JSZPQRZUXGVXQUWOVXSPUWOUWTVURWPZVVRWSVXRUWOVWJVXSPUJSZQRVXTTUWOUWTPVURV
        USUVFVYBPVXSQUVIUVGUVJUWOVXSEPVYAVVEVVRUWOVVMUWJUFRZEPUFRVXSETUWOVVMEPU
        WJVVTVVEVXCUWOYRXDVVQUWOUWLVUIUVKVWIUWOUWJVUJUVLZUVMUWOVXSVVMVXNUFRVYCU
        WOUWLUWJVUIVUPVUQYIUWOVXNUWJVVMUFVXPXPYGUWOEUWOEUYCWJUVQYKYMYFUWOUXGUWJ
        VXRVVQUWOUXGVVHYJVYDUVNYFUWOVWJUXMVWNVVIYLXMUWOVWKUXNVWOVVJUVOUVPYMYFUV
        RYFUQUVSUWOUXSUXCUJUWOUXSUWLDGDUBZUWRUHRZVYEUWJUFRZPQRZUGSZUIRZYNZSZUXC
        UWOUWLUXRVYKUWKUXRVYKYCAUWMIUWJDGVYEIUBZPQRZVYMUFRZUGSZUHRZVYEVYMUFRZPQ
        RZUGSZUIRZYNVYKUCKIJVBZDGWUAVYJWUBVYQVYFVYTVYIUIWUBVYPUWRVYEUHWUBVYOUWQ
        UGWUBVYNUWPVYMUWJUFVYMUWJPQVEWUBUWGYOVFZXPWUBVYSVYHUGWUBVYRVYGPQVYMUWJV
        YEUFYEYPVFYOUVTNDGVYJUYMBUTGMUWAUWBUWCYSYQUWDUWMVYLUXCYCAUWKDUWLVYJUXCG
        VYKDCVBZVYFUWSVYIUXBUIVYEUWLUWRUHVEWUDVYHUXAUGWUDVYGUWTPQVYEUWLUWJUFVEY
        PVFYOVYKUWEUWSUXBUIYTYSYAXRVFUWKUXTUXQYCAUWMIUWJUXEVYMTUMZEUXHVYMUKULRZ
        UFRZUHRZEVYPUHRZUXGVYMUHRZUGSZUNQRZQRZUOUXQUCFWUBWUEUXFWUHWUMUXKUXPVYMU
        WJUXETUPWUBWUGUXJEUHWUBWUFUXIUXHUFVYMUWJUKULVEXPXPWUBWUIUXLWULUXOQWUBVY
        PUWREUHWUCXPWUBWUKUXNUNQWUBWUJUXMUGVYMUWJUXGUHYEVFYPYOUWFOUXFUXKUXPEUXJ
        UHYTUXLUXOQYTUWHYSYQUWI $.

      $d m ph $.
      $( The series ` G ` is uniformly convergent on the compact region ` U ` ,
         which describes a circle of radius ` R ` with holes of size ` 1 / R `
         around the poles of the gamma function.  (Contributed by Mario
         Carneiro, 9-Jul-2017.) $)
      lgamgulmlem6 $p |- ( ph -> ( seq 1 ( oF + , G ) e. dom ( ~~>u ` U ) /\
        ( seq 1 ( oF + , G ) ( ~~>u ` U ) ( z e. U |-> O ) ->
          E. r e. RR A. z e. U ( abs ` O ) <_ r ) ) ) $=
        ( cfv wcel cle cn co vy vn caddc cof c1 cseq culm cdm cmpt cabs cv wral
        wbr cr wrex wi cvv nnuz 1zzd cdiv cn0 wa cnex rabex2 a1i clog cmul cmin
        cc cmap wf cz cdif lgamgulmlem1 ad2antrr simpr sseldd eldifad peano2nnd
        wss simplr nnrpd rpdivcld relogcld recnd mulcld nnne0d divcld dmgmdivn0
        nncnd 1cnd addcld logcld subcld eqid fmptd elmap sylibr c2 cexp cpi cif
        nnex mptex eqeltri adantr nnred 1red readdcld remulcld nnsqcld nndivred
        2re rpmulcld pire ifcld ffvelrnda lgamgulmlem5 lgamgulmlem4 adantlr cli
        mtest mtestbdd nfcv nffvmpt1 nffv nfv weq fveq2 fveq2d breq1d cbvral wb
        nfbr ulmcl adantl fmpt fvmpt2 ralimiaa ralbi 3syl syl5bb rexbidv ex jca
        mpbid ) AUCUDIUEUFZFUGPZUHQUUGCFJUIZUUHUMZJUJPZKUKZRUMZCFULZKUNUOZUPAUA
        FUBIEUEUQUQSURAUSFUQQZABUKZUJPDRUMUEDUTTUUQGUKUCTUJPRUMGVAULVBBVIFMVCVD
        ZVEAHSCFCUKZHUKZUEUCTZUUTUTTZVFPZVGTZUUSUUTUTTZUEUCTZVFPZVHTZUIZVIFVJTZ
        IAUUTSQZVBZFVIUVIVKUVIUVJQUVLCFUVHVIUVIUVLUUSFQZVBZUVDUVGUVNUUSUVCUVNUU
        SVIVLSVMZUVNFVIUVOVMZUUSAFUVPVTUVKUVMABDFGLMVNVOUVLUVMVPVQZVRZUVNUVCUVN
        UVBUVNUVAUUTUVNUVAUVNUUTAUVKUVMWAZVSWBUVNUUTUVSWBWCWDWEWFUVNUVFUVNUVEUE
        UVNUUSUUTUVRUVNUUTUVSWJUVNUUTUVSWGWHUVNWKWLUVNUUSUUTUVQUVSWIWMWNUVIWOWP
        VIFUVIVCUURWQWRNWPZEUQQZAEHSWSDVGTUUTRUMZDWSDUEUCTZVGTZUUTWSWTTZUTTZVGT
        ZDUVCVGTZUWCUUTVGTZVFPZXAUCTZUCTZXBZUIUQOHSUWMXCXDXEZVEASUNUBUKZEAHSUWM
        UNEUVLUWBUWGUWLUNUVLDUWFUVLDADSQUVKLXFZXGZUVLUWDUWEUVLWSUWCWSUNQUVLXMVE
        UVLDUEUWQUVLXHXIXJUVLUUTAUVKVPZXKXLXJUVLUWHUWKUVLDUVCUWQUVLUVBUVLUVAUUT
        UVLUVAUVLUUTUWRVSWBUVLUUTUWRWBZWCWDXJUVLUWJXAUVLUWIUVLUWCUUTUVLUWCUVLDU
        WPVSWBUWSXNWDXAUNQUVLXOVEXIXIXPOWPXQZABUACDEFGHUBILMNOXRZABCDEFGHILMNOX
        SZYBAUUJUUOAUUJVBZUAUKZUUIPZUJPZUULRUMZUAFULZKUNUOUUOUXCKUAFUUIUBIEUEUQ
        UQSURUXCUSUUPUXCUURVEASUVJIVKUUJUVTXFUWAUXCUWNVEAUWOSQZUWOEPZUNQUUJUWTX
        TAUXIUXDFQVBUXDUWOIPPUJPUXJRUMUUJUXAXTAUCEUEUFYAUHQUUJUXBXFAUUJVPYCUXCU
        XHUUNKUNUXHUUSUUIPZUJPZUULRUMZCFULZUXCUUNUXGUXMUACFCUXFUULRCUXEUJCUJYDC
        FJUXDYEYFCRYDCUULYDYNUXMUAYGUACYHZUXFUXLUULRUXOUXEUXKUJUXDUUSUUIYIYJYKY
        LUXCJVIQZCFULZUXMUUMYMZCFULUXNUUNYMUXCFVIUUIVKZUXQUUJUXSAFUUGUUIYOYPCFV
        IJUUIUUIWOZYQWRUXPUXRCFUVMUXPVBZUXLUUKUULRUYAUXKJUJCFJVIUUIUXTYRYJYKYSU
        XMUUMCFYTUUAUUBUUCUUFUUDUUE $.
    $}

    $( The series ` G ` is uniformly convergent on the compact region ` U ` ,
       which describes a circle of radius ` R ` with holes of size ` 1 / R `
       around the poles of the gamma function.  (Contributed by Mario Carneiro,
       3-Jul-2017.) $)
    lgamgulm $p |- ( ph -> seq 1 ( oF + , G ) e. dom ( ~~>u ` U ) ) $=
      ( vr caddc c1 cfv cmpt wbr c2 cmul co cof cseq culm cdm wcel cabs cv wral
      cle cr wrex wi cn cexp cdiv clog cpi cif eqid lgamgulmlem6 simpld ) AMUAH
      NUBZEUCOZUDUEVBCENPVCQNUFOLUGUIQCEUHLUJUKULABCDGUMRDSTGUGZUIQDRDNMTZSTVDR
      UNTUOTSTDVDNMTVDUOTUPOSTVEVDSTUPOUQMTMTURPZEFGHNLIJKVFUSUTVA $.

    $( Rewrite the limit of the sequence ` G ` in terms of the log-Gamma
       function.  (Contributed by Mario Carneiro, 6-Jul-2017.) $)
    lgamgulm2 $p |- ( ph -> ( A. z e. U ( log_G ` z ) e. CC /\
      seq 1 ( oF + , G ) ( ~~>u ` U )
        ( z e. U |-> ( ( log_G ` z ) + ( log ` z ) ) ) ) ) $=
      ( cfv cc wcel caddc c1 clog co cn cvv vn cv clgam wral cof cseq cmpt culm
      wbr wa cdiv cmul cmin csu cz cdif wceq lgamgulmlem1 sselda df-lgam fvmpt2
      ovex sylancl nnuz 1zzd oveq1 id oveq12d fveq2d oveq2d oveq2 oveq1d adantl
      fvmpt eldifad adantr simpr peano2nnd nnrpd rpdivcld relogcld recnd mulcld
      eqid nncnd nnne0d divcld 1cnd addcld dmgmdivn0 logcld subcld cmap wfn cuz
      wf 1z seqfn ax-mp fneq2i mpbir cdm lgamgulm ulmdm sylib ulmf2 sylancr a1i
      seqex seqeq3d fveq1d cabs cle cn0 cnex rabex2 syl6eleq cfz fz1ssnn seqof2
      wss ovexd adantlr eqtrd fvex ulmclm isumclim syl ffvelrnda eqeltrd dmgmn0
      ulmcl ralrimiva ffn 3syl nfcv nfmpt1 nfmpt nfcxfr nfseq 3eqtrrd mpteq2dva
      nffv dffn5f npcand breqtrd jca ) ACUBZUCLZMNZCEUDOUEZHPUFZCEUUIUUHQLZORZU
      GZEUHLZUIAUUJCEAUUHENZUJZUUISUUHUAUBZPORZUUSUKRZQLZULRZUUHUUSUKRZPORZQLZU
      MRZUAUNZUUMUMRZMUURUUHMUOSUPZUPZNZUVITNUUIUVIUQAEUVKUUHABDEFIJURUSZUVHUUM
      UMVBCUVKUVITUCCUAUTVAVCZUURUVHUUMUURUVHUUHUULUUPLZLZMUURUVGUVPUAGSUUHGUBZ
      PORZUVQUKRZQLZULRZUUHUVQUKRZPORZQLZUMRZUGZPSVDUURVEZUUSSNZUUSUWFLUVGUQUUR
      GUUSUWEUVGSUWFUVQUUSUQZUWAUVCUWDUVFUMUWIUVTUVBUUHULUWIUVSUVAQUWIUVRUUTUVQ
      UUSUKUVQUUSPOVFUWIVGVHVIVJUWIUWCUVEQUWIUWBUVDPOUVQUUSUUHUKVKVLVIVHUWFWDUV
      CUVFUMVBVNVMUURUWHUJZUVCUVFUWJUUHUVBUURUUHMNUWHUURUUHMUVJUVMVOZVPZUWJUVBU
      WJUVAUWJUUTUUSUWJUUTUWJUUSUURUWHVQZVRVSUWJUUSUWMVSVTWAWBWCUWJUVEUWJUVDPUW
      JUUHUUSUWLUWJUUSUWMWEUWJUUSUWMWFWGUWJWHWIUWJUUHUUSUURUVLUWHUVMVPUWMWJWKWL
      UURUUHEUAUULUVOOUWFPUFZPTSVDUWGASMEWMRUULWPZUUQAUULSWNZUULUVOUUPUIZUWOUWP
      UULPWOLZWNZPUONUWSWQUUKHPWRWSSUWRUULVDWTXAAUULUUPXBNUWQABCDEFGHIJKXCEUULX
      DXEZEUULUVOSXFXGVPAUUQVQZUWNTNUUROUWFPXIXHUWJUUHUUSUULLZLUUHCEUUSUWNLZUGZ
      LZUXCUWJUUHUXBUXDUWJUXBUUSUUKGSCEUWEUGZUGZPUFZLZUXDUWJUUSUULUXHUWJHUXGUUK
      PHUXGUQUWJKXHXJXKAUWHUXIUXDUQUUQAUWHUJZGCESOPUUSTTUWEETNUXJBUBZXLLDXMUIPD
      UKRUXKFUBORXLLXMUIFXNUDUJBMEJXOXPXHUXJUUSSUWRAUWHVQVDXQPUUSXRRSYAUXJUUSXS
      XHUXJUVQSNUUQUJUJUWAUWDUMYBXTYCYDXKUWJUUQUXCTNUXEUXCUQUURUUQUWHUXAVPUUSUW
      NYECEUXCTUXDUXDWDVAVCYDAUWQUUQUWTVPYFYGZAEMUUHUVOAUWQEMUVOWPZUWTEUULUVOYL
      ZYHYIYJZUURUUHUWKUURUUHUVMYKWKZWLYJYMAUULUVOUUOUUPUWTAUVOCEUVPUGZUUOAUVOE
      WNZUVOUXQUQAUWQUXMUXRUWTUXNEMUVOYNYOCEUVOCUULUUPCUUPYPCUUKHPCPYPCUUKYPCHU
      XGKCGSUXFCSYPCEUWEYQYRYSYTUUCUUDXEACEUVPUUNUURUUNUVIUUMORUVHUVPUURUUIUVIU
      UMOUVNVLUURUVHUUMUXOUXPUUEUXLUUAUUBYDUUFUUG $.

    $( The log-Gamma function is bounded on the region ` U ` .  (Contributed by
       Mario Carneiro, 9-Jul-2017.) $)
    lgambdd $p |- ( ph ->
      E. r e. RR A. z e. U ( abs ` ( log_G ` z ) ) <_ r ) $=
      ( cfv caddc co cabs cle wbr cr wcel vy clgam clog wral wrex cof cseq cmpt
      cv c1 culm cc lgamgulm2 simprd cdm wi cmul cexp cdiv cpi cif lgamgulmlem6
      cn c2 eqid mpd crp nnrpd adantr relogcld pire a1i readdcld adantrr simpld
      wa simpr r19.21bi abscld cz wss lgamgulmlem1 sselda eldifad dmgmn0 logcld
      cdif addcld ad2antrr cmin cneg negcld abs2difd absnegd subnegd lesubadd2d
      oveq2d fveq2d 3brtr3d mpbid absrpcld recnd cc0 wne abslogle wceq relogdiv
      syl2anc 1rp sylancr df-neg log1 oveq1i eqtr4i syl6reqr fveq2 breq1d oveq1
      cn0 0nn0 breq2d ralbidv anbi12d elrab2 simprbi adantl oveq2 rspcv addid1d
      mpsyl breqtrd rpreccld logled eqbrtrd mpbir2and leadd1dd simpllr leadd2dd
      absled letrd ex ralimdva impr breq2 rspcev rexlimddv ) ACUIZUBMZUUGUCMZNO
      ZPMZUAUIZQRZCEUDZUUHPMZIUIZQRZCEUDZISUEZUASANUFHUJUGZCEUUJUHEUKMZRZUUNUAS
      UEZAUUHULTZCEUDZUVBABCDEFGHJKLUMZUNAUUTUVAUOTUVBUVCUPABCDGVCVDDUQOGUIZQRD
      VDDUJNOZUQOUVGVDUROUSOUQODUVGUJNOUVGUSOUCMUQOUVHUVGUQOUCMUTNONOVAUHZEFGHU
      UJUAJKLUVIVEVBUNVFAUULSTZUUNVPVPDUCMZUTNOZUULNOZSTZUUOUVMQRZCEUDZUUSAUVJU
      VNUUNAUVJVPZUVLUULUVQUVKUTUVQDADVGTZUVJADJVHVIZVJUTSTZUVQVKVLVMAUVJVQVMZV
      NAUVJUUNUVPUVQUUMUVOCEUVQUUGETZVPZUUMUVOUWCUUMVPZUUOUVLUUKNOZUVMUWCUUOSTU
      UMUWCUUHUVQUVDCEAUVEUVJAUVEUVBUVFVOVIVRZVSZVIUWCUWESTUUMUWCUVLUUKUWCUVKUT
      UWCDUVQUVRUWBUVSVIZVJZUVTUWCVKVLZVMZUWCUUJUWCUUHUUIUWFUWCUUGUWCUUGULVTVCW
      GZUVQEULUWLWGZUUGAEUWMWAUVJABDEFJKWBVIWCZWDZUWCUUGUWNWEZWFZWHVSZVMZVIUVQU
      VNUWBUUMUWAWIUWCUUOUWEQRUUMUWCUUOUUIPMZUUKNOZUWEUWGUWCUWTUUKUWCUUIUWQVSZU
      WRVMUWSUWCUUOUWTWJOZUUKQRUUOUXAQRUWCUUOUUIWKZPMZWJOUUHUXDWJOZPMUXCUUKQUWC
      UUHUXDUWFUWCUUIUWQWLWMUWCUXEUWTUUOWJUWCUUIUWQWNWQUWCUXFUUJPUWCUUHUUIUWFUW
      QWOWRWSUWCUUOUWTUUKUWGUXBUWRWPWTUWCUWTUVLUUKUXBUWKUWRUWCUWTUUGPMZUCMZPMZU
      TNOZUVLUXBUWCUXIUTUWCUXHUWCUXHUWCUXGUWCUUGUWOUWPXAZVJZXBVSZUWJVMUWKUWCUUG
      ULTZUUGXCXDUWTUXJQRUWOUWPUUGXEXHUWCUXIUVKUTUXMUWIUWJUWCUXIUVKQRUVKWKZUXHQ
      RUXHUVKQRZUWCUXOUJDUSOZUCMZUXHQUWCUXRUJUCMZUVKWJOZUXOUWCUJVGTUVRUXRUXTXFX
      IUWHUJDXGXJUXOXCUVKWJOUXTUVKXKUXSXCUVKWJXLXMXNXOUWCUXQUXGQRUXRUXHQRUWCUXQ
      UUGXCNOZPMZUXGQXCXSTUWCUXQUUGFUIZNOZPMZQRZFXSUDZUXQUYBQRZXTUWCUXGDQRZUYGU
      WBUYIUYGVPZUVQUWBUXNUYJBUIZPMZDQRZUXQUYKUYCNOZPMZQRZFXSUDZVPUYJBUUGULEUYK
      UUGXFZUYMUYIUYQUYGUYRUYLUXGDQUYKUUGPXPXQUYRUYPUYFFXSUYRUYOUYEUXQQUYRUYNUY
      DPUYKUUGUYCNXRWRYAYBYCKYDYEYFZUNUYFUYHFXCXSUYCXCXFZUYEUYBUXQQUYTUYDUYAPUY
      CXCUUGNYGWRYAYHYJUWCUYAUUGPUWCUUGUWOYIWRYKUWCUXQUXGUWCDUWHYLUXKYMWTYNUWCU
      YIUXPUWCUYIUYGUYSVOUWCUXGDUXKUWHYMWTUWCUXHUVKUXLUWIYSYOYPYTYPYTVIUWDUUKUU
      LUVLUWCUUKSTUUMUWRVIAUVJUWBUUMYQUWCUVLSTUUMUWKVIUWCUUMVQYRYTUUAUUBUUCUURU
      VPIUVMSUUPUVMXFUUQUVOCEUUPUVMUUOQUUDYBUUEXHUUF $.
  $}

  ${
    $d a k m n r t x z A $.  $d n r z G $.  $d a J $.  $d a k m n r t x z ph $.
    $d a m n t z U $.
    lgamucov.u $e |- U = { x e. CC | ( ( abs ` x ) <_ r /\
      A. k e. NN0 ( 1 / r ) <_ ( abs ` ( x + k ) ) ) } $.
    lgamucov.a $e |- ( ph -> A e. ( CC \ ( ZZ \ NN ) ) ) $.
    ${
      lgamucov.j $e |- J = ( TopOpen ` CCfld ) $.
      $( The ` U ` regions used in the proof of ~ lgamgulm have interiors which
         cover the entire domain of the Gamma function.  (Contributed by Mario
         Carneiro, 6-Jul-2017.) $)
      lgamucov $p |- ( ph -> E. r e. NN A e. ( ( int ` J ) ` U ) ) $=
        ( cabs cfv co cc wcel a1i wa clt wbr adantr va cv cmin ccom cbl cz cdif
        cn wss cnt wrex crp cxmt cnxmet ccld sszcld cnfldtopon toponunii cldopn
        difss mp2b cnfldtopn mopni2 syl3anc caddc c2 cdiv eldifad abscld simprl
        cr rpred readdcld 2re rerpdivcld arch syl ctop cnfldtop cle c1 cn0 wral
        crab ssrab2 eqsstri ad2antrr rphalfcld rpxrd blopn simplr simp-4r nnred
        ad4antr resubcld rehalfcld abs2difd wceq eqid cnmetdval syl2anc abssubd
        cxr subcld eqtrd simpr eqbrtrrd lelttrd rphalflt lttrd ltsubadd2d mpbid
        rpdivcld ltaddrpd simpllr nnrecred nn0cnd addcld ad5antr ad6antr dmgmn0
        2rp ltled absrpcld rpaddcld ltaddrp2d nnrpd ltrecd rpcnd cc0 wne rpne0d
        2cnd 2ne0 recdivd cneg wn wb syl22anc ex breqtrd eldmgm simprbi negnegd
        eqeltrd nsyl3 ad3antrrr negcld elbl2 subnegd fveq2d breq1d ltnled elbl3
        3bitrd mpbird blhalf simprr sstrd sseld sylbird mt3d ralrimiva ss2rabdv
        ltletrd jca blval 3sstr4d ssntr blcntr sseldd reximdva mpd rexlimddv )
        ACUAUBZKUCUDZUELZMZNUFUHUGZUGZUIZCDFUJLLZOZGUHUKZUAULAUVPNUMLOZUVTFOZCU
        VTOZUWAUAULUKUWEAUNPUWFAUVSUFUIUVSFUOLOUWFUFUHUTUVSFJUPUVSFNNFFJUQURZUS
        VAPIUAUVTUVPCFNFJVBZVCVDAUVOULOZUWAQZQZCKLZUVOVEMZVFUVOVGMZVEMZGUBZRSZG
        UHUKZUWDUWLUWPVKOZUWSUWLUWNUWOUWLUWMUVOUWLCACNOZUWKACNUVSIVHTZVIZUWLUVO
        AUWJUWAVJZVLZVMZUWLVFUVOVFVKOUWLVNPUXDVOZVMZUWPGVPVQUWLUWRUWCGUHUWLUWQU
        HOZQZUWRUWCUXJUWRQZCUVOVFVGMZUVQMZUWBCUXKFVROZDNUIZUXMFOZUXMDUIUXMUWBUI
        UXNUXKFJVSPUXOUXKDBUBZKLZUWQVTSZWAUWQVGMZUXQEUBZVEMZKLZVTSZEWBWCZQZBNWD
        ZNHUYFBNWEWFPUXKUWEUXAUXLXCOZUXPUWEUXKUNPZUWLUXAUXIUWRUXBWGZUXKUXLUXKUV
        OUWLUWJUXIUWRUXDWGZWHZWIZUVPCUXLFNUWIWJVDUXKCUXQUVPMZUXLRSZBNWDZUYGUXMD
        UXKUYOUYFBNUXKUXQNOZQZUYOUYFUYRUYOQZUXSUYEUYSUXRUWQUYSUXQUXKUYQUYOWKZVI
        ZUYSUWQUWLUXIUWRUYQUYOWLZWMZUYSUXRUWPUWQVUAUWLUWTUXIUWRUYQUYOUXHWNZVUCU
        YSUXRUWNUWPVUAUWLUWNVKOUXIUWRUYQUYOUXFWNZVUDUYSUXRUWMUCMZUVORSUXRUWNRSU
        YSVUFUXLUVOUYSUXRUWMVUAUWLUWMVKOUXIUWRUYQUYOUXCWNZWOZUYSUVOUWLUVOVKOZUX
        IUWRUYQUYOUXEWNZWPZVUJUYSVUFUXQCUCMZKLZUXLVUHUYSVULUYSUXQCUYTUXKUXAUYQU
        YOUYJWGZXDVIVUKUYSUXQCUYTVUNWQUYSUYNVUMUXLRUYSUYNCUXQUCMKLZVUMUYSUXAUYQ
        UYNVUOWRVUNUYTCUXQUVPUVPWSZWTXAUYSCUXQVUNUYTXBXEUYRUYOXFXGXHUYSUWJUXLUV
        ORSUXKUWJUYQUYOUYKWGZUVOXIVQXJUYSUXRUWMUVOVUAVUGVUJXKXLUYSUWNUWOVUEUYSV
        FUVOVFULOUYSYBPVUQXMZXNXJUXJUWRUYQUYOXOXJYCUYSUYDEWBUYSUYAWBOZQZUXTUYCV
        UTUWQUYSUXIVUSVUBTZXPZVUTUYBVUTUXQUYAUXKUYQUYOVUSXOZVUTUYAUYSVUSXFZXQZX
        RVIZVUTUXTUXLUYCVVBUYSUXLVKOVUSVUKTZVVFVUTUXTWAUWOVGMZUXLRVUTUWOUWQRSUX
        TVVHRSVUTUWOUWPUWQUWLUWOVKOUXIUWRUYQUYOVUSUXGXSZUYSUWTVUSVUDTUYSUWQVKOV
        USVUCTVUTUWOUWNVVIVUTUWMUVOVUTCUYSUXAVUSVUNTZVUTCAUWGUWKUXIUWRUYQUYOVUS
        IXTYAYDUYSUWJVUSVUQTZYEYFUXJUWRUYQUYOVUSWLXJVUTUWOUWQUYSUWOULOVUSVURTVU
        TUWQVVAYGYHXLVUTVFUVOVUTYMVUTUVOVVKYIVFYJYKVUTYNPVUTUVOVVKYLYOUUAVUTUXL
        UYCVTSZUYAYPZUVTOZVVNVVMYPZWBOZVUTVVNVVMNOZVVPYQVVMUUBUUCVUTVVOUYAWBVUT
        UYAVVEUUDVVDUUEUUFVUTVVLYQZVVMUXQUXLUVQMZOZVVNVUTVVTUXQVVMUVPMZUXLRSZUY
        CUXLRSVVRVUTUWEUYHUYQVVQVVTVWBYRUWEVUTUNPZUXKUYHUYQUYOVUSUYMUUGZVVCVUTU
        YAVVEUUHZVVMUVPUXQUXLNUUIYSVUTVWAUYCUXLRVUTVWAUXQVVMUCMZKLZUYCVUTUYQVVQ
        VWAVWGWRVVCVWEUXQVVMUVPVUPWTXAVUTVWFUYBKVUTUXQUYAVVCVVEUUJUUKXEUULVUTUY
        CUXLVVFVVGUUMUUOVUTVVSUVTVVMVUTVVSUVRUVTVUTUWEUYQVUICVVSOZVVSUVRUIVWCVV
        CUYSVUIVUSVUJTVUTVWHUYOUYRUYOVUSWKVUTUWEUYHUYQUXAVWHUYOYRVWCVWDVVCVVJCU
        VPUXQUXLNUUNYSUUPUVOUVPNUXQCUUQYSUWLUWAUXIUWRUYQUYOVUSAUWJUWAUURXSUUSUU
        TUVAUVBUVEYCUVCUVFYTUVDUXKUWEUXAUYHUXMUYPWRUYIUYJUYMBUVPCUXLNUVGVDDUYGW
        RUXKHPUVHDFUXMNUWHUVIYSUXKUWEUXAUXLULOCUXMOUYIUYJUYLUVPCUXLNUVJVDUVKYTU
        VLUVMUVN $.
    $}

    $( The ` U ` regions used in the proof of ~ lgamgulm have interiors which
       cover the entire domain of the Gamma function.  (Contributed by Mario
       Carneiro, 8-Jul-2017.) $)
    lgamucov2 $p |- ( ph -> E. r e. NN A e. U ) $=
      ( ccnfld cfv wcel cn wrex cc wss cv cabs cle wbr co cnt lgamucov cnfldtop
      ctopn eqid ctop c1 cdiv caddc wral wa ssrab2 eqsstri cnfldtopon toponunii
      cn0 crab ntrss2 mp2an sseli reximi syl ) ACDIUDJZUAJJZKZFLMCDKZFLMABCDEVC
      FGHVCUEZUBVEVFFLVDDCVCUFKDNOVDDOVCVGUCDBPZQJFPZRSUGVIUHTVHEPUITQJRSEUPUJU
      KZBNUQNGVJBNULUMDVCNNVCVCVGUNUOURUSUTVAVB $.

    lgamcvglem.g $e |- G = ( m e. NN |->
    ( ( A x. ( log ` ( ( m + 1 ) / m ) ) ) - ( log ` ( ( A / m ) + 1 ) ) ) ) $.
    $( Lemma for ~ lgamf and ~ lgamcvg .  (Contributed by Mario Carneiro,
       8-Jul-2017.) $)
    lgamcvglem $p |- ( ph -> ( ( log_G ` A ) e. CC /\
      seq 1 ( + , G ) ~~> ( ( log_G ` A ) + ( log ` A ) ) ) ) $=
      ( vz wcel cfv cc caddc c1 co wa cn vt vn clgam cseq clog cli lgamucov2 cv
      wbr wceq fveq2 eleq1d wral cof cdiv cmul cmin cmpt culm cabs cle cn0 crab
      simprl breq1d oveq1 fveq2d breq2d ralbidv anbi12d cbvrabv eqtri lgamgulm2
      eqid simpld simprr rspcdva cvv nnuz 1zzd wfn wf cuz cz seqfn ax-mp fneq2i
      cmap 1z mpbir simprd ulmf2 sylancr seqex a1i cnex rabex2 syl6eleq cfz wss
      simpr fz1ssnn ovexd seqof2 simplr oveq1d oveq12d mpteq2dva syl6eqr fveq1d
      seqeq3d simplrr fvexd fvmptd ulmclm ovex fvmpt syl breqtrd jca rexlimddv
      ) ACDMZCUCNZOMZPGQUDZYCCUENZPRZUFUIZSHTABCDEHIJUGAHUHZTMZYBSSZYDYHYKLUHZU
      CNZOMZYDLDCYLCUJZYMYCOYLCUCUKZULYKYNLDUMZPUNZFTLDYLFUHZQPRYSUORUENZUPRZYL
      YSUORZQPRZUENZUQRZURURZQUDZLDYMYLUENZPRZURZDUSNUIZYKUALYIDEFUUFAYJYBVDDBU
      HZUTNZYIVAUIZQYIUORZUULEUHZPRZUTNZVAUIZEVBUMZSZBOVCUAUHZUTNZYIVAUIZUUOUVB
      UUPPRZUTNZVAUIZEVBUMZSZUAOVCIUVAUVIBUAOUULUVBUJZUUNUVDUUTUVHUVJUUMUVCYIVA
      UULUVBUTUKVEUVJUUSUVGEVBUVJUURUVFUUOVAUVJUUQUVEUTUULUVBUUPPVFVGVHVIVJVKVL
      UUFVNVMZVOAYJYBVPZVQYKYECUUJNZYGUFYKCDUBUUGUUJYEQVRTVSYKVTYKUUGTWAZUUKTOD
      WHRUUGWBUVNUUGQWCNZWAZQWDMUVPWIYRUUFQWEWFTUVOUUGVSWGWJYKYQUUKUVKWKZDUUGUU
      JTWLWMUVLYEVRMYKPGQWNWOYKUBUHZTMZSZLCUVRPFTUUEURZQUDZNUVRYENDUVRUUGNVRUVT
      FLDTPQUVRVRVRUUEDVRMUVTUVABODIWPWQWOUVTUVRTUVOYKUVSXAVSWRQUVRWSRTWTUVTUVR
      XBWOUVTYSTMZYLDMSSUUAUUDUQXCXDUVTYOSZUVRUWBYEUWDUWAGPQUWDUWAFTCYTUPRZCYSU
      ORZQPRZUENZUQRZURGUWDFTUUEUWIUWDUWCSZUUAUWEUUDUWHUQUWJYLCYTUPUVTYOUWCXEZX
      FUWJUUCUWGUEUWJUUBUWFQPUWJYLCYSUOUWKXFXFVGXGXHKXIXKXJAYJYBUVSXLUVTUVRYEXM
      XNUVQXOYKYBUVMYGUJUVLLCUUIYGDUUJYOYMYCUUHYFPYPYLCUEUKXGUUJVNYCYFPXPXQXRXS
      XTYA $.
  $}

  ${
    $d k n r x A $.
    $( The log-Gamma function is a complex function defined on the whole
       complex plane except for the negative integers.  (Contributed by Mario
       Carneiro, 8-Jul-2017.) $)
    lgamcl $p |- ( A e. ( CC \ ( ZZ \ NN ) ) -> ( log_G ` A ) e. CC ) $=
      ( vn vx vr vk cc cn cdif wcel cfv caddc cv c1 cdiv clog wbr cabs cle eqid
      co cz clgam cmul cmin cmpt cseq cli cn0 wral wa crab id lgamcvglem simpld
      ) AFUAGHHIZAUBJZFIKBGABLZMKTUQNTOJUCTAUQNTMKTOJUDTUEZMUFUPAOJKTUGPUOCACLZ
      QJDLZRPMUTNTUSELKTQJRPEUHUIUJCFUKZEBURDVASUOULURSUMUN $.

    $( The log-Gamma function is a complex function defined on the whole
       complex plane except for the negative integers.  (Contributed by Mario
       Carneiro, 6-Jul-2017.) $)
    lgamf $p |- log_G : ( CC \ ( ZZ \ NN ) ) --> CC $=
      ( vx vn cc cz cn cdif clgam wf wtru cv c1 caddc co cdiv clog cfv cmul csu
      cmin wcel cvv wa ovexd cmpt wceq df-lgam a1i lgamcl adantl fmpt2d trud )
      CDEFFZCGHIAAULEAJZBJZKLMUNNMOPQMUMUNNMKLMOPSMBRZUMOPZSMZCGUAIUMULTZUBUOUP
      SUCGAULUQUDUEIABUFUGURUMGPCTIUMUHUIUJUK $.

    $( The Gamma function is a complex function defined on the whole complex
       plane except for the negative integers.  (Contributed by Mario Carneiro,
       6-Jul-2017.) $)
    gamf $p |- _G : ( CC \ ( ZZ \ NN ) ) --> CC $=
      ( cc cz cn cdif cgam wf clgam ccom eff lgamf fco mp2an df-gam feq1i mpbir
      ce ) ABCDDZAEFQAPGHZFZAAPFQAGFSIJQAAPGKLQAERMNO $.

    $( The exponential of the log-Gamma function is the Gamma function (by
       definition).  (Contributed by Mario Carneiro, 8-Jul-2017.) $)
    gamcl $p |- ( A e. ( CC \ ( ZZ \ NN ) ) -> ( _G ` A ) e. CC ) $=
      ( cc cz cn cdif cgam gamf ffvelrni ) BCDEEBAFGH $.

    $( The exponential of the log-Gamma function is the Gamma function (by
       definition).  (Contributed by Mario Carneiro, 8-Jul-2017.) $)
    eflgam $p |- ( A e. ( CC \ ( ZZ \ NN ) ) ->
      ( exp ` ( log_G ` A ) ) = ( _G ` A ) ) $=
      ( cc cz cn cdif wcel cgam ce clgam ccom df-gam fveq1i wf wceq lgamf fvco3
      cfv mpan syl5req ) ABCDEEZFZAGQAHIJZQZAIQHQZAGUBKLTBIMUAUCUDNOTBAHIPRS $.

    $( The Gamma function is never zero.  (Contributed by Mario Carneiro,
       9-Jul-2017.) $)
    gamne0 $p |- ( A e. ( CC \ ( ZZ \ NN ) ) -> ( _G ` A ) =/= 0 ) $=
      ( cc cz cn cdif wcel clgam cfv ce cgam cc0 eflgam wne lgamcl syl eqnetrrd
      efne0 ) ABCDEEFZAGHZIHZAJHKALRSBFTKMANSQOP $.

    $( Value of the inverse Gamma function.  (Contributed by Mario Carneiro,
       16-Jul-2017.) $)
    igamval $p |- ( A e. CC ->
      ( 1/_G ` A ) = if ( A e. ( ZZ \ NN ) , 0 , ( 1 / ( _G ` A ) ) ) ) $=
      ( vx cv cz cn cdif wcel cc0 c1 cgam cfv cdiv co cc cigam wceq eleq1 fveq2
      cif oveq2d ifbieq2d df-igam c0ex ovex ifex fvmpt ) BABCZDEFZGZHIUGJKZLMZS
      AUHGZHIAJKZLMZSNOUGAPZUIULUKUNHUGAUHQUOUJUMILUGAJRTUABUBULHUNUCIUMLUDUEUF
      $.

    $( Value of the inverse Gamma function on nonpositive integers.
       (Contributed by Mario Carneiro, 16-Jul-2017.) $)
    igamz $p |- ( A e. ( ZZ \ NN ) -> ( 1/_G ` A ) = 0 ) $=
      ( cz cn cdif wcel cigam cfv cc0 c1 cgam cdiv cif wceq eldifi zcnd igamval
      co cc syl iftrue eqtrd ) ABCDEZAFGZUBHIAJGKQZLZHUBAREUCUEMUBAABCNOAPSUBHU
      DTUA $.

    $( Value of the inverse Gamma function in terms of the Gamma function.
       (Contributed by Mario Carneiro, 16-Jul-2017.) $)
    igamgam $p |- ( A e. ( CC \ ( ZZ \ NN ) ) ->
      ( 1/_G ` A ) = ( 1 / ( _G ` A ) ) ) $=
      ( cc cz cn cdif wcel wn wa cigam cfv c1 cgam cdiv co wceq cc0 cif igamval
      eldif iffalse sylan9eq sylbi ) ABCDEZEFABFZAUCFZGZHAIJZKALJMNZOABUCSUDUFU
      GUEPUHQUHARUEPUHTUAUB $.

    $( Value of the inverse Gamma function in terms of the log-Gamma function.
       (Contributed by Mario Carneiro, 16-Jul-2017.) $)
    igamlgam $p |- ( A e. ( CC \ ( ZZ \ NN ) ) ->
      ( 1/_G ` A ) = ( exp ` -u ( log_G ` A ) ) ) $=
      ( cc cz cn cdif wcel c1 clgam cfv ce cdiv co cgam cneg eflgam oveq2d wceq
      cigam lgamcl efneg syl igamgam 3eqtr4rd ) ABCDEEFZGAHIZJIZKLZGAMIZKLUENJI
      ZARIUDUFUHGKAOPUDUEBFUIUGQASUETUAAUBUC $.

    $( Closure of the inverse Gamma function.  (Contributed by Mario Carneiro,
       16-Jul-2017.) $)
    igamf $p |- 1/_G : CC --> CC $=
      ( vx cc cv cz cn cdif wcel cc0 c1 cgam cfv cdiv co cif cigam df-igam 0cnd
      wa wn eldif gamcl gamne0 reccld sylbir ifclda fmpti ) ABBACZDEFZGZHIUGJKZ
      LMZNOAPUGBGZUIHUKBULUIRQULUISRUGBUHFGZUKBGUGBUHTUMUJUGUAUGUBUCUDUEUF $.

    $( Closure of the inverse Gamma function.  (Contributed by Mario Carneiro,
       16-Jul-2017.) $)
    igamcl $p |- ( A e. CC -> ( 1/_G ` A ) e. CC ) $=
      ( cc wcel cigam cfv cz cn cdif cc0 c1 cgam cdiv co cif igamval wa 0cnd wn
      eldif gamcl gamne0 reccld sylbir ifclda eqeltrd ) ABCZADEAFGHZCZIJAKEZLMZ
      NBAOUFUHIUJBUFUHPQUFUHRPABUGHCZUJBCABUGSUKUIATAUAUBUCUDUE $.

    $( The Gamma function is the inverse of the inverse Gamma function.
       (Contributed by Mario Carneiro, 16-Jul-2017.) $)
    gamigam $p |- ( A e. ( CC \ ( ZZ \ NN ) ) ->
      ( _G ` A ) = ( 1 / ( 1/_G ` A ) ) ) $=
      ( cc cz cn cdif wcel c1 cigam cfv cdiv cgam igamgam oveq2d gamne0 recrecd
      co gamcl eqtr2d ) ABCDEEFZGAHIZJPGGAKIZJPZJPUASTUBGJALMSUAAQANOR $.
  $}

  ${
    $d k m n r x y A $.  $d k n y G $.  $d k m n r x y ph $.
    lgamcvg.g $e |- G = ( m e. NN |->
    ( ( A x. ( log ` ( ( m + 1 ) / m ) ) ) - ( log ` ( ( A / m ) + 1 ) ) ) ) $.
    lgamcvg.a $e |- ( ph -> A e. ( CC \ ( ZZ \ NN ) ) ) $.
    $( The series ` G ` converges to ` log_G ( A ) + log ( A ) ` .
       (Contributed by Mario Carneiro, 6-Jul-2017.) $)
    lgamcvg $p |- ( ph ->
      seq 1 ( + , G ) ~~> ( ( log_G ` A ) + ( log ` A ) ) ) $=
      ( vx vy vk clgam cfv cc wcel caddc c1 co wbr cv cabs cle cseq clog cli wa
      cdiv cn0 wral crab eqid lgamcvglem simprd ) ABJKZLMNDOUAULBUBKNPUCQAGBGRZ
      SKHRZTQOUNUEPUMIRNPSKTQIUFUGUDGLUHZICDHUOUIFEUJUK $.

    $( The series ` G ` converges to ` log_G ( A + 1 ) ` .  (Contributed by
       Mario Carneiro, 9-Jul-2017.) $)
    lgamcvg2 $p |- ( ph -> seq 1 ( + , G ) ~~> ( log_G ` ( A + 1 ) ) ) $=
      ( vk caddc c1 co cfv clog cmin cn cdiv cvv wcel cc0 cc wceq vn vr vx cseq
      clgam cli cv cmul cmpt nnuz 1zzd eqid cn0 1nn0 a1i dmgmaddnn0 lgamcvg clt
      cabs wbr cr cz cdif abscld syl wa cres ccom nnzd ad2antrr wi nncnd addcld
      cuz 1cnd peano2nnd nnne0d divcld ax-1cn sylancl pncand fveq2d nnred nnrpd
      absdivd rpge0d absidd oveq2d eqtrd 3eqtrd adantr cle adantl syl2anc mpbid
      wb breqtrrd mpbird eqbrtrd crp mp1i sseldi resmptd recnd nnex mptex oveq2
      1rp ovex fvmpt eqeltrd weq fvex absge0d eqtr4d oveq1d climres crn 3eqtr4d
      oveq1 wf logcld dmgmdivn0 breqtrd cfz csu elfznn syl6eleq relogcld mulcld
      oveq12d subcld fsumser fsumcl 3eqtr3d divdird eqtr3d logdiv2 syl3anc
      dividd seqex wrex eldifad arch cmnf cioc simprl ccncf logcn cbl dvlog2lem
      eluznn ex ad2antrl imp cnmetdval simplrr nnleltp1 lttrd mulid1d ltdivmuld
      eluzle 1red cxmt cxr cnxmet elbl3 syl22anc fmptd ssrdv divcnv simpr lep1d
      rpxr nndivred lediv2ad 3brtr4d climsqz2 climabs0 climaddc1 0p1e1 syl6breq
      eqbrtrrd ellogdm mpbir2an climcncf logdmss eqidd wf1o logf1o f1of feqmptd
      csn fveq2 fmptco wss frn cores 3syl fvres syl6eq 3brtr3d rexlimddv dmgmn0
      climsubc2 subid1d id rpdivcld fzfid eqeltrrd nncand sub4d pncan2d subdird
      log1 mulid2d subsubd addcomd subsub2d wne nnnn0d dmgmaddn0 add32d addassd
      nnncan2d 3eqtr3rd relogdivd eqtr2d sumeq2dv fsumsub telfsum div1d climsub
      eqcomd lgamcl ) AHDIUDZBIHJZUEKZUYQLKZHJZUYSMJUYRUFAUYTUYSUAHCNUYQCUGZIHJ
[encoded data, 5920 characters]
      WVTWWAWWBUYNYKYOUYMAUYRUYSAWXMUYRSQVUSUYQUYOVEWVLWAYD $.

    $( The pointwise exponential of the series ` G ` converges to
       ` _G ( A ) x. A ` .  (Contributed by Mario Carneiro, 6-Jul-2017.) $)
    gamcvg $p |- ( ph ->
      ( exp o. seq 1 ( + , G ) ) ~~> ( ( _G ` A ) x. A ) ) $=
      ( vn ce caddc c1 cfv clog co cmul cc cn nnuz wcel cv wceq cseq ccom clgam
      cgam cli 1zzd ccncf efcn a1i cdiv cmin wa cz cdif eldifad simpr peano2nnd
      adantr nnrpd rpdivcld relogcld recnd mulcld nncnd nnne0d divcld dmgmdivn0
      1cnd addcld logcld subcld fmptd ffvelrnda serf lgamcl syl dmgmn0 climcncf
      lgamcvg efadd syl2anc eflgam cc0 wne eflog oveq12d eqtrd breqtrd ) AHIDJU
      AZUBBUCKZBLKZIMZHKZBUDKZBNMZUEAOOWLHWIJPQAUFZHOOUGMRAUHUIAGDJPQWPAPOGSDAC
      PBCSZJIMZWQUJMZLKZNMZBWQUJMZJIMZLKZUKMODAWQPRZULZXAXDXFBWTABORZXEABOUMPUN
      ZFUOZURZXFWTXFWSXFWRWQXFWRXFWQAXEUPZUQUSXFWQXKUSUTVAVBVCXFXCXFXBJXFBWQXJX
      FWQXKVDXFWQXKVEVFXFVHVIXFBWQABOXHUNRZXEFURXKVGVJVKEVLVMVNABCDEFVSAWJWKAXL
      WJORZFBVOVPZABXIABFVQZVJZVIVRAWMWJHKZWKHKZNMZWOAXMWKORWMXSTXNXPWJWKVTWAAX
      QWNXRBNAXLXQWNTFBWBVPAXGBWCWDXRBTXIXOBWEWAWFWGWH $.
  $}

  ${
    $d m A $.
    $( The functional equation of the (log) Gamma function.  (Contributed by
       Mario Carneiro, 9-Jul-2017.) $)
    lgamp1 $p |- ( A e. ( CC \ ( ZZ \ NN ) ) ->
      ( log_G ` ( A + 1 ) ) = ( ( log_G ` A ) + ( log ` A ) ) ) $=
      ( vm cc cz cn cdif wcel caddc cv c1 co cdiv clog cfv cmul cmin cmpt clgam
      cli wbr cseq wceq eqid id lgamcvg2 lgamcvg climuni syl2anc ) ACDEFFGZHBEA
      BIZJHKUJLKMNOKAUJLKJHKMNPKQZJUAZAJHKRNZSTULARNAMNHKZSTUMUNUBUIABUKUKUCZUI
      UDZUEUIABUKUOUPUFUMUNULUGUH $.

    $( The functional equation of the Gamma function.  (Contributed by Mario
       Carneiro, 9-Jul-2017.) $)
    gamp1 $p |- ( A e. ( CC \ ( ZZ \ NN ) ) ->
      ( _G ` ( A + 1 ) ) = ( ( _G ` A ) x. A ) ) $=
      ( cc cz cn cdif wcel c1 caddc clgam cfv cmul cgam clog lgamp1 fveq2d wceq
      co ce syl2anc eflgam lgamcl eldifi id dmgmn0 logcld cc0 wne oveq2d 3eqtrd
      efadd eflog cn0 1nn0 a1i dmgmaddnn0 syl oveq1d 3eqtr3d ) ABCDEZEZFZAGHQZI
      JZRJZAIJZRJZAKQZVBLJZALJZAKQVAVDVEAMJZHQZRJZVFVJRJZKQZVGVAVCVKRANOVAVEBFV
      JBFVLVNPAUAVAAABUSUBZVAAVAUCZUDZUEVEVJUJSVAVMAVFKVAABFAUFUGVMAPVOVQAUKSUH
      UIVAVBUTFVDVHPVAAGVPGULFVAUMUNUOVBTUPVAVFVIAKATUQUR $.
  $}

  ${
    $d m A $.  $d k n F $.  $d k n x G $.  $d k m n x ph $.
    gamcvg2.f $e |- F = ( m e. NN |->
      ( ( ( ( m + 1 ) / m ) ^c A ) / ( ( A / m ) + 1 ) ) ) $.
    gamcvg2.a $e |- ( ph -> A e. ( CC \ ( ZZ \ NN ) ) ) $.
    ${
      gamcvg2.g $e |- G = ( m e. NN |->
    ( ( A x. ( log ` ( ( m + 1 ) / m ) ) ) - ( log ` ( ( A / m ) + 1 ) ) ) ) $.
      $( Lemma for ~ gamcvg2 .  (Contributed by Mario Carneiro,
         10-Jul-2017.) $)
      gamcvg2lem $p |- ( ph ->
        ( exp o. seq 1 ( + , G ) ) = seq 1 ( x. , F ) ) $=
        ( vk cn caddc c1 cfv ce cmul wcel cc co cdiv wceq vn vx cv cseq cmpt wa
        ccom addcl adantl cfz simpll elfznn clog oveq1 id oveq12d fveq2d oveq2d
        cmin oveq2 oveq1d ovex fvmpt cz adantr eldifad simpr peano2nnd rpdivcld
        cdif nnrpd relogcld recnd mulcld nncnd nnne0d divcld 1cnd addcld logcld
        dmgmdivn0 subcld eqeltrd syl2anc nnuz syl6eleq efadd ccxp efsub divne0d
        cuz cxpefd eqcomd cc0 wne eflog eqtrd 3eqtr4d seqhomo mpteq2dva eff a1i
        wf 1z serf fcompt wfn seqfn mp1i fneq2i sylibr dffn5 sylib ) AIJIUCZKEL
        UDZMNMZUEZIJXNODLUDZMZUEZNXOUGZXRAIJXPXSAXNJPZUFZUAUBKOQEDNLXNUAUCZQPUB
        UCZQPUFZYDYEKRZQPYCYDYEUHUIYCYDLXNUJRPZUFZAYDJPZYDEMZQPAYBYHUKZYHYJYCYD
        XNULUIZAYJUFZYKBYDLKRZYDSRZUMMZORZBYDSRZLKRZUMMZUSRZQYJYKUUBTACYDBCUCZL
        KRZUUCSRZUMMZORZBUUCSRZLKRZUMMZUSRUUBJEUUCYDTZUUGYRUUJUUAUSUUKUUFYQBOUU
        KUUEYPUMUUKUUDYOUUCYDSUUCYDLKUNUUKUOUPZUQURUUKUUIYTUMUUKUUHYSLKUUCYDBSU
        TVAZUQUPHYRUUAUSVBVCUIZYNYRUUAYNBYQYNBQVDJVJZABQUUOVJPYJGVEZVFZYNYQYNYP
        YNYOYDYNYOYNYDAYJVGZVHZVKYNYDUURVKVIVLVMVNZYNYTYNYSLYNBYDUUQYNYDUURVOZY
        NYDUURVPZVQYNVRZVSZYNBYDUUPUURWAZVTZWBWCZWDYCXNJLWKMZAYBVGWEWFYFYGNMYDN
        MYENMORTYCYDYEWGUIYIAYJYKNMZYDDMZTYLYMYNUUBNMZYPBWHRZYTSRZUVIUVJYNUVKYR
        NMZUUANMZSRZUVMYNYRQPUUAQPUVKUVPTUUTUVFYRUUAWIWDYNUVNUVLUVOYTSYNUVLUVNY
        NYPBYNYOYDYNYDLUVAUVCVSZUVAUVBVQYNYOYDUVQUVAYNYOUUSVPUVBWJUUQWLWMYNYTQP
        YTWNWOUVOYTTUVDUVEYTWPWDUPWQYNYKUUBNUUNUQYJUVJUVMTACYDUUEBWHRZUUISRUVMJ
        DUUKUVRUVLUUIYTSUUKUUEYPBWHUULVAUUMUPFUVLYTSVBVCUIWRWDWSWTAQQNXCZJQXOXC
        YAXQTUVSAXAXBAUAELJWELVDPZAXDXBUVGXEINXOJQQXFWDAXRJXGZXRXTTAXRUVHXGZUWA
        UVTUWBAXDODLXHXIJUVHXRWEXJXKIJXRXLXMWR $.
    $}

    $( An infinite product expression for the gamma function.  (Contributed by
       Mario Carneiro, 9-Jul-2017.) $)
    gamcvg2 $p |- ( ph -> seq 1 ( x. , F ) ~~> ( ( _G ` A ) x. A ) ) $=
      ( ce caddc cn cv c1 co cdiv clog cfv cmul cmin cmpt cseq ccom cgam gamcvg
      cli eqid gamcvg2lem eqbrtrrd ) AGHCIBCJZKHLUGMLNOPLBUGMLKHLNOQLRZKSTPDKSB
      UAOBPLUCABCDUHEFUHUDZUEABCUHUIFUBUF $.
  $}

$(
  @{
    gamcnlem.r @e |- ( ph -> R e. NN ) @.
    gamcnlem.u @e |- U = { x e. CC | ( ( abs ` x ) <_ R /\
      A. m e. NN0 ( 1 / R ) <_ ( abs ` ( x + m ) ) ) } @.
    gamcnlem.f @e |- F = ( m e. NN |->
      ( ( ( ( m + 1 ) / m ) ^c z ) / ( ( z / m ) + 1 ) ) ) @.
    gamcnlem.g @e |- G = ( m e. NN |->
    ( ( z x. ( log ` ( ( m + 1 ) / m ) ) ) - ( log ` ( ( z / m ) + 1 ) ) ) ) @.
    @( The log-Gamma function is bounded on the region ` U `.
       (Contributed by Mario Carneiro, 9-Jul-2017.) @)
    gamcnlem @p |- ( ph -> ( _G |` U ) e. ( U -cn-> CC ) ) @=
      ? @.
  @}
$)

  ${
    $d m n x A $.
    $( The Gamma function is real for real input.  (Contributed by Mario
       Carneiro, 9-Jul-2017.) $)
    regamcl $p |- ( A e. ( RR \ ( ZZ \ NN ) ) -> ( _G ` A ) e. RR ) $=
      ( vn vm vx cr cn cdif wcel cmul co cdiv cc cv c1 caddc wa adantr redivcld
      nnuz nnrpd cz cgam cfv eldifi recnd eldifn eldifd gamcl syl divcan4d ccxp
      dmgmn0 cmpt cseq 1zzd eqid simpr peano2nnd rpdivcld rpred rpge0d recxpcld
      gamcvg2 nndivred 1red readdcld dmgmdivn0 fmptd ffvelrnda remulcl climrecl
      adantl seqf eqeltrrd ) AEUAFGZGHZAUBUCZAIJZAKJVQEVPVQAVPALVOGHZVQLHVPALVO
      VPAAEVOUDZUEZAEVOUFUGZAUHUIWAVPAWBULZUJVPVRAVPVRBICFCMZNOJZWDKJZAUKJZAWDK
      JZNOJZKJZUMZNUNZNFSVPUOZVPACWKWKUPZWBVCVPFEBMZWLVPBDIEWKNFSWMVPFEWOWKVPCF
      WJEWKVPWDFHZPZWGWIWQWFAWQWFWQWEWDWQWEWQWDVPWPUQZURTWQWDWRTUSZUTWQWFWSVAVP
      AEHWPVTQZVBWQWHNWQAWDWTWRVDWQVEVFWQAWDVPVSWPWBQWRVGRWNVHVIWOEHDMZEHPWOXAI
      JEHVPWOXAVJVLVMVIVKVTWCRVN $.

    $( The log-Gamma function is real for positive real input.  (Contributed by
       Mario Carneiro, 9-Jul-2017.) $)
    relgamcl $p |- ( A e. RR+ -> ( log_G ` A ) e. RR ) $=
      ( vn vm crp wcel cfv clog caddc co cmin cr cc cn cdif cv c1 cdiv rpdivcld
      nnuz nnrpd clgam cz rpdmgm lgamcl syl relogcl recnd pncand cmul cmpt cseq
      1zzd eqid lgamcvg wa simpl rpred peano2nnd relogcld remulcld 1rp rpaddcld
      simpr a1i resubcld fmptd ffvelrnda serfre climrecl eqeltrrd ) ADEZAUAFZAG
      FZHIZVMJIVLKVKVLVMVKALUBMNNEVLLEAUCZAUDUEVKVMAUFZUGUHVKVNVMVKVNBHCMACOZPH
      IZVQQIZGFZUIIZAVQQIZPHIZGFZJIZUJZPUKZPMSVKULZVKACWFWFUMZVOUNVKMKBOZWGVKBW
      FPMSWHVKMKWJWFVKCMWEKWFVKVQMEZUOZWAWDWLAVTWLAVKWKUPZUQWLVSWLVRVQWLVRWLVQV
      KWKVCZURTWLVQWNTZRUSUTWLWCWLWBPWLAVQWMWORPDEWLVAVDVBUSVEWIVFVGVHVGVIVPVEV
      J $.

    $( The log-Gamma function is positive real for positive real input.
       (Contributed by Mario Carneiro, 9-Jul-2017.) $)
    rpgamcl $p |- ( A e. RR+ -> ( _G ` A ) e. RR+ ) $=
      ( crp wcel clgam cfv ce cgam cc cz cn cdif wceq rpdmgm eflgam syl rpefcld
      relgamcl eqeltrrd ) ABCZADEZFEZAGEZBSAHIJKKCUAUBLAMANOSTAQPR $.
  $}

  ${
    $( The log-Gamma function at one.  (Contributed by Mario Carneiro,
       9-Jul-2017.) $)
    lgam1 $p |- ( log_G ` 1 ) = 0 $=
      ( vm caddc c1 cfv cc0 cxp cli clog co wtru cn cdiv cmin cmpt wcel cc cdif
      wbr cz ax-mp cuz csn cseq clgam wceq cv cmul peano2nn nnrpd nnrp rpdivcld
      relogcld recnd mulid2d nncn dividd oveq1d divdird reccld addcomd 3eqtr4rd
      nnne0 1cnd fveq2d oveq12d subidd eqtrd mpteq2ia fconstmpt xpeq1i 3eqtr2ri
      nnuz wn ax-1cn 1nn eldifn mt2 eldif mpbir2an a1i lgamcvg trud log1 oveq2i
      lgamcl addid1i eqtri breqtri 1z serclim0 climuni mp2an ) BCUADZEUBZFZCUCZ
      CUDDZGRWPEGRZWQEUEWPWQCHDZBIZWQGWPWTGRJCAWOAKCAUFZCBIZXALIZHDZUGIZCXALIZC
      BIZHDZMIZNAKENKWNFWOAKXIEXAKOZXIXDXDMIEXJXEXDXHXDMXJXDXJXDXJXCXJXBXAXJXBX
      AUHUIXAUJUKULUMZUNXJXGXCHXJXAXALIZXFBICXFBIXCXGXJXLCXFBXJXAXAUOZXAVBZUPUQ
      XJXACXAXMXJVCZXMXNURXJXFCXJXAXMXNUSXOUTVAVDVEXJXDXKVFVGVHAKEVIKWMWNVLVJVK
      CPSKQZQOZJXQCPOCXPOZVMVNXRCKOVOCSKVPVQCPXPVRVSZVTWAWBWTWQEBIWQWSEWQBWCWDW
      QXQWQPOXSCWETWFWGWHCSOWRWICWJTWQEWPWKWL $.

    $( The log-Gamma function at one.  (Contributed by Mario Carneiro,
       9-Jul-2017.) $)
    gam1 $p |- ( _G ` 1 ) = 1 $=
      ( c1 clgam cfv ce cc0 cgam lgam1 fveq2i cc cz cn cdif wcel wceq wn ax-1cn
      1nn eldifn mt2 eldif mpbir2an eflgam ax-mp ef0 3eqtr3i ) ABCZDCZEDCAFCZAU
      FEDGHAIJKLZLMZUGUHNUJAIMAUIMZOPUKAKMQAJKRSAIUITUAAUBUCUDUE $.
  $}

  ${
    $d n x $.  $d x N $.
    $( The Gamma function generalizes the factorial.  (Contributed by Mario
       Carneiro, 9-Jul-2017.) $)
    facgam $p |- ( N e. NN0 -> ( ! ` N ) = ( _G ` ( N + 1 ) ) ) $=
      ( vx vn cv cfa cfv c1 caddc co cgam cc0 fveq2 oveq1 syl6eq fveq2d eqeq12d
      wceq wcel cmul cn 0p1e1 gam1 fac0 cn0 facp1 cc cz cdif nncnd eldifn nsyl3
      nn0p1nn eldifd gamp1 syl syl5ibr nn0ind ) BDZEFZURGHIZJFZQKEFZGQCDZEFZVCG
      HIZJFZQZVEEFZVEGHIZJFZQZAEFZAGHIZJFZQBCAURKQZUSVBVAGURKELVOVAGJFGVOUTGJVO
      UTKGHIGURKGHMUANOUBNPURVCQZUSVDVAVFURVCELVPUTVEJURVCGHMOPURVEQZUSVHVAVJUR
      VEELVQUTVIJURVEGHMOPURAQZUSVLVAVNURAELVRUTVMJURAGHMOPUCVGVKVCUDRZVDVESIZV
      FVESIZQVDVFVESMVSVHVTVJWAVCUEVSVEUFUGTUHZUHRVJWAQVSVEUFWBVSVEVCULZUIVEWBR
      VETRVSVEUGTUJWCUKUMVEUNUOPUPUQ $.

    $( The Gamma function generalizes the factorial.  (Contributed by Mario
       Carneiro, 9-Jul-2017.) $)
    gamfac $p |- ( N e. NN -> ( _G ` N ) = ( ! ` ( N - 1 ) ) ) $=
      ( cn wcel c1 cmin co cfa cfv caddc cgam cn0 wceq nnm1nn0 facgam nncn 1cnd
      syl npcand fveq2d eqtr2d ) ABCZADEFZGHZUBDIFZJHZAJHUAUBKCUCUELAMUBNQUAUDA
      JUAADAOUAPRST $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Basic number theory
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Wilson's theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The only elements that are equal to their own inverses in the
     multiplicative group of nonzero elements in ` ZZ / P ZZ ` are ` 1 ` and
     ` -u 1 == P - 1 ` .  (Note that from ~ prmdiveq ,
     ` ( N ^ ( P - 2 ) ) mod P ` is the modular inverse of ` N ` in
     ` ZZ / P ZZ ` .  (Contributed by Mario Carneiro, 24-Jan-2015.) $)
  wilthlem1 $p |- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) ->
    ( N = ( ( N ^ ( P - 2 ) ) mod P ) <-> ( N = 1 \/ N = ( P - 1 ) ) ) ) $=
    ( wcel c1 cmin co cfz c2 cmo wceq cdvds wbr caddc cmul cc0 cz cc wb syl3anc
    syl cprime wa cexp wo elfzelz adantl peano2zm peano2zd mulcomd ax-1cn subsq
    sylancl sqvald sq1 a1i oveq12d 3eqtr2d breq2d 1e0p1 oveq1i wss fzp1ss ax-mp
    zcnd 0z eqsstri simpr sseldi biantrurd bitrd simpl euclemma wn cn fzm1ndvds
    prmnn sylan eqid prmdiveq 3bitr3rd 1zzd moddvds cr crp cle clt elfznn nnred
    nnrpd nnnn0d nn0ge0d elfzle2 prmz zltlem1 syl2anr mpbird modid syl22anc cuz
    cfv prmuz2 eluz2b2 simprbi 1mod syl2anc eqeq12d bitr3d cneg znegcld mulid2d
    nncnd oveq2d neg1cn addcom negsub 3eqtrd oveq1d neg1rr modcyc peano2rem cn0
    sylancr nnm1nn0 ltm1d 3eqtr3d subneg orbi12d ) AUACZBDADEFZGFZCZUBZBBAHEFUC
    FAIFZJZABDEFZKLZABDMFZKLZUDZBDJZBYIJZUDYLAYOYQNFZKLZBOYIGFZCZABBNFZDEFZKLZU
    BZYSYNYLUUCUUHUUIYLUUBUUGAKYLUUBYQYONFZBHUCFZDHUCFZEFZUUGYLYOYQYLYOYLBPCZYO
    PCZYKUUNYHBDYIUEZUFZBUGTZVDYLYQYLBUUQUHZVDUIYLBQCZDQCZUUMUUJJYLBUUQVDZUJBDU
    KULYLUUKUUFUULDEYLBUVBUMUULDJYLUNUOUPUQURYLUUEUUHYLYJUUDBYJODMFZYIGFZUUDDUV
    CYIGUSUTOPCUVDUUDVAVEOYIVBVCVFYHYKVGVHVIVJYLYHUUOYQPCUUCYSRYHYKVKZUURUUSAYO
    YQVLSYLYHUUNABKLVMZUUIYNRUVEUUQYHAVNCZYKUVFAVPZABVOVQBAYMBYMVRVSSVTYLYPYTYR
    UUAYLBAIFZDAIFZJZYPYTYLUVGUUNDPCZUVKYPRYLYHUVGUVEUVHTZUUQYLWAZBDAWBSYLUVIBU
    VJDYLBWCCAWDCZOBWELBAWFLZUVIBJYLBYKBVNCYHBYIWGUFZWHYLAUVMWIZYLBYLBUVQWJWKYL
    UVPBYIWELZYKUVSYHBDYIWLUFYKUUNAPCUVPUVSRYHUUPAWMBAWNWOWPBAWQWRZYLAWCCZDAWFL
    ZUVJDJYLAUVMWHZYLAHWSWTCZUWBYLYHUWDUVEAXATUWDUVGUWBAXBXCTAXDXEXFXGYLUVIDXHZ
    AIFZJZABUWEEFZKLZUUAYRYLUVGUUNUWEPCUWGUWIRUVMUUQYLDUVNXIBUWEAWBSYLUVIBUWFYI
    UVTYLUWEDANFZMFZAIFZYIAIFZUWFYIYLUWKYIAIYLUWKUWEAMFZAUWEMFZYIYLUWJAUWEMYLAY
    LAUVMXKZXJXLYLUWEQCAQCZUWNUWOJXMUWPUWEAXNYBYLUWQUVAUWOYIJUWPUJADXOULXPXQYLU
    WEWCCZUVOUVLUWLUWFJUWRYLXRUOUVRUVNUWEADXSSYLYIWCCZUVOOYIWELYIAWFLUWMYIJYLUW
    AUWSUWCAXTTUVRYLYIYLUVGYIYACUVMAYCTWKYLAUWCYDYIAWQWRYEXFYLUWHYQAKYLUUTUVAUW
    HYQJUVBUJBDYFULURVTYGVJ $.

  ${
    $d s t x y A $.  $d k s t w x y z P $.  $d w x y z ph $.  $d s w x y z S $.
    $d s t w x y z T $.
    wilthlem.t $e |- T = ( mulGrp ` CCfld ) $.
    wilthlem.a $e |- A = { x e. ~P ( 1 ... ( P - 1 ) ) | ( ( P - 1 ) e. x /\
      A. y e. x ( ( y ^ ( P - 2 ) ) mod P ) e. x ) } $.
    ${
      wilthlem2.p $e |- ( ph -> P e. Prime ) $.
      wilthlem2.s $e |- ( ph -> S e. A ) $.
      wilthlem2.r $e |- ( ph -> A. s e. A ( s C. S ->
        ( ( T gsum ( _I |` s ) ) mod P ) = ( -u 1 mod P ) ) ) $.
      $( Lemma for ~ wilth : induction step.  The "hand proof" version of this
         theorem works by writing out the list of all numbers from ` 1 ` to
         ` P - 1 ` in pairs such that a number is paired with its inverse.
         Every number has a unique inverse different from itself except ` 1 `
         and ` P - 1 ` , and so each pair multiplies to ` 1 ` , and ` 1 ` and
         ` P - 1 == -u 1 ` multiply to ` -u 1 ` , so the full product is equal
         to ` -u 1 ` .  Here we make this precise by doing the product pair by
         pair.

         The induction hypothesis says that every subset ` S ` of
         ` 1 ... ( P - 1 ) ` that is closed under inverse (i.e. all pairs are
         matched up) and contains ` P - 1 ` multiplies to ` -u 1 mod P ` .
         Given such a set, we take out one element ` z =/= P - 1 ` .  If there
         are no such elements, then ` S = { P - 1 } ` which forms the base
         case.  Otherwise, ` S \ { z , z ^ -u 1 } ` is also closed under
         inverse and contains ` P - 1 ` , so the induction hypothesis says that
         this equals ` -u 1 ` ; and the remaining two elements are either equal
         to each other, in which case ~ wilthlem1 gives that ` z = 1 ` or
         ` P - 1 ` , and we've already excluded the second case, so the product
         gives ` 1 ` ; or ` z =/= z ^ -u 1 ` and their product is ` 1 ` .  In
         either case the accumulated product is unaffected.  (Contributed by
         Mario Carneiro, 24-Jan-2015.)  (Proof shortened by AV,
         27-Jul-2019.) $)
      wilthlem2 $p |- ( ph ->
        ( ( T gsum ( _I |` S ) ) mod P ) = ( -u 1 mod P ) ) $=
        ( c1 co cmo wceq wcel cc cz vz vw cmin csn wss cid cres cgsu wa cv cmpt
        simpr cexp wral cfz eleq2 raleqbi1dv anbi12d elrab2 sylib simprd simpld
        adantr reseq2d mptresid oveq2d oveq1d caddc cn syl nncnd ax-1cn sylancl
        cmul ccnfld mp1i cn0 nn0cnd id gsumsn syl3anc mulid2d 3eqtr4d a1i eqtrd
        cr 1zzd ex cpr ax-mp wf1o f1oi f1of syl6ss fss sylancr wbr cvv cfn ssfi
        wn wf 1ex fdmfifsupp cin c0 cun oveq1 rspcv syl2anc oveq2i cfv ssdifssd
        gsumsubmcl sseldd wo syl5eq wne sylnib ovex eqcom bitri orcom fzm1ndvds
        cdvds eqid elfznn zcnd wpss sylibr cc0 mulcld prmdivdiv eqeq12d syl5ibr
        wb wi sylanbrc elpr eldifd cneg c2 cpw snssd eqssd syl6eqr cprime prmnn
        negsub neg1cn addcom eqtr3d cmnd cnring ringmgp nnm1nn0 cnfldbas mgpbas
        crg crp neg1rr nnrpd modcyc wex cdif cnfld1 ringidval cnfldmul mgpplusg
        ccmn ccrg cncrng crngmgp elpwid elfzelz ssriv zsscn cfsupp fzfi disjdif
        nss undif2 simprl eleq1d prssi ssequn1 syl5req gsumsplit resabs1d difss
        sylc resabs1 oveq12d prfi csubrg zsubrg subrgsubm sstrd zred 1red dfsn2
        csubmnd orcd wilthlem1 biimpar syldan preq2d 3eqtr3d df-pr reseq2i snfi
        eqtr4i elsni adantl eqeltrd adantlr velsn biorf elsn 3bitr4g necon3abid
        simprr bitr4d biimpa gsumunsn prmdiv nnmulcld moddvds mpbird pm2.61dane
        nnzd modmul1 syl221anc elpw2 cuz nn0uz syl6eleq eluzfz2 zsubcl dvdsmul1
        prmz 1z subdird subsubd subdid mulid1d pncan breqtrrd prmdiveq mpbi2and
        mtod ioran sylnibr eldifi r19.21bi sylan2 eldif sselda eqeq2d syl5ibcom
        orim12d vex 3imtr4g con3d impr sylan2b ralrimiva jca sseqin2 prnz disj4
        eqnetrd necon2abii psseq1 reseq2 eqeq1d imbi12d 3eqtrd exlimdv pm2.61d
        syl3c syl5bi ) AFENUCOZUDZUEZGUFFUGZUHOZEPOZNUUAZEPOZQZAVWEVWKAVWEUIZVW
[encoded data, 5760 characters]
        RWHVVSVWBVVT $.
    $}

    $( Lemma for ~ wilth .  Here we round out the argument of ~ wilthlem2 with
       the final step of the induction.  The induction argument shows that
       every subset of ` 1 ... ( P - 1 ) ` that is closed under inverse and
       contains ` P - 1 ` multiplies to ` -u 1 mod P ` , and clearly
       ` 1 ... ( P - 1 ) ` itself is such a set.  Thus, the product of all the
       elements is ` -u 1 ` , and all that is left is to translate the group
       sum notation (which we used for its unordered summing capabilities) into
       an ordered sequence to match the definition of the factorial.
       (Contributed by Mario Carneiro, 24-Jan-2015.)  (Proof shortened by AV,
       27-Jul-2019.) $)
    wilthlem3 $p |- ( P e. Prime -> P || ( ( ! ` ( P - 1 ) ) + 1 ) ) $=
      ( vs wcel cid c1 cmin co cfv cmo wceq cz wi ccnfld cc vt cprime cres cgsu
      vk cfz cneg cfa caddc cdvds wbr cv c2 cexp wral cuz cn prmuz2 uz2m1nn syl
      nnuz syl6eleq eluzfz2 wa cmul wn simpl elfzelz prmnn fzm1ndvds sylan eqid
      adantl prmdiv syl3anc simpld ralrimiva ovex pwid eleq2 raleqbi1dv anbi12d
      cpw elrab2 mpbiran sylanbrc cfn eleq1 reseq2 oveq2d oveq1d eqeq1d imbi12d
      fzfi imbi2d wpss wal bi2.04 pm2.27 com34 syl5bi alimdv df-ral syl6ibr w3a
      simp1 simp3 simp2 wilthlem2 3exp syldc a1i findcard3 mpd cnfld1 ringidval
      ax-mp wb ccrg ccmn cncrng crngmgp mp1i csubrg csubmnd zsubrg subrgsubm wf
      wss wf1o f1oi f1of ssriv fss mp2an cvv 1ex fdmfifsupp cseq csupp 1z mpbid
      gsumsubmcl znegcl moddvds ccom fcoi1 fveq1i fvres syl5eq seqfveq cnfldbas
      ccntz mgpbas cnfldmul mgpplusg crg cmnd cnring ringmgp zsscn cntzcmnf wf1
      f1of1 crn cdm suppssdm dmresi sseqtri sseqtr4i gsumval3 facnn 3eqtr4d cn0
      rnresi nnm1nn0 faccl nncnd ax-1cn subneg sylancl eqtrd breqtrd ) DUBIZDEJ
      KDKLMZUFMZUCZUDMZKUGZLMZUWEUHNZKUIMZUJUWDUWHDOMZUWIDOMZPZDUWJUJUKZUWDUWFC
      IZUWOUWDUWEUWFIZBULZDUMLMUNMDOMZUWFIZBUWFUOZUWQUWDUWEKUPNZIUWRUWDUWEUQUXC
      UWDDUMUPNIUWEUQIZDURDUSUTZVAVBZKUWEVCUTUWDUXABUWFUWDUWSUWFIZVDZUXADUWSUWT
      VEMKLMUJUKZUXHUWDUWSQIZDUWSUJUKVFZUXAUXIVDUWDUXGVGUXGUXJUWDUWSKUWEVHZVMUW
      DDUQIZUXGUXKDVIZDUWSVJVKUWSDUWTUWTVLVNVOVPVQUWQUWFUWFWCZIUWRUXBVDZUWFKUWE
      UFVRVSUWEAULZIZUWTUXQIZBUXQUOZVDUXPAUWFUXOCUXQUWFPUXRUWRUXTUXBUXQUWFUWEVT
      UXSUXABUXQUWFUXQUWFUWTVTWAWBGWDWEWFUWFWGIZUWDUWQUWORZRZKUWEWNZUWDHULZCIZE
      JUYEUCZUDMZDOMZUWNPZRZRZUWDUAULZCIZEJUYMUCZUDMZDOMZUWNPZRZRZUYCHUAUWFUYEU
      YMPZUYKUYSUWDVUAUYFUYNUYJUYRUYEUYMCWHVUAUYIUYQUWNVUAUYHUYPDOVUAUYGUYOEUDU
      YEUYMJWIWJWKWLWMWOUYEUWFPZUYKUYBUWDVUBUYFUWQUYJUWOUYEUWFCWHVUBUYIUWMUWNVU
      BUYHUWHDOVUBUYGUWGEUDUYEUWFJWIWJWKWLWMWOUYEUYMWPZUYLRZHWQZUYTRUYMWGIUWDVU
      EVUCUYJRZHCUOZUYSUWDVUEUYFVUFRZHWQVUGUWDVUDVUHHVUDUWDVUCUYKRZRZUWDVUHVUCU
      WDUYKWRUWDVUJVUCUYFUYJUWDVUIWSWTXAXBVUFHCXCXDUWDVUGUYNUYRUWDVUGUYNXEABCDU
      YMEHFGUWDVUGUYNXFUWDVUGUYNXGUWDVUGUYNXHXIXJXKXLXMXQXNUWDUXMUWHQIUWIQIZUWO
      UWPXRUXNUWDUWFQUWGEWGKSKEFXOXPZSXSIEXTIUWDYASEFYBYCZUYAUWDUYDXLZQSYDNIQEY
      ENIUWDYFQSEFYGYCUWFQUWGYHZUWDUWFUWFUWGYHZUWFQYIVUOUWFUWFUWGYJZVUPUWFYKZUW
      FUWFUWGYLXQZBUWFQUXLYMUWFUWFQUWGYNYOZXLZUWDUWFQUWGYPKVVAVUNKYPIUWDYQXLYRU
      UCKQIVUKUWDUUAKUUDYCUWHUWIDUUEVOUUBUWDUWJUWKUWILMZUWLUWDUWHUWKUWILUWDUWEV
      EUWGUWGUUFZKYSNUWEVEJKYSNZUWHUWKUWDVEUEVVCJKUWEUXFUEULZUWFIZVVEVVCNZVVEJN
      ZPUWDVVFVVGVVEUWGNVVHVVEVVCUWGVUPVVCUWGPVUSUWFUWFUWGUUGXQUUHVVEUWFJUUIUUJ
      VMUUKUWDUWFTVEUWGEUWGUWEWGVVCKYTMZKEUUMNZTSEFUULUUNZVULSVEEFUUOUUPVVJVLZS
      UUQIEUURIUWDUUSSEFUUTYCVUNUWFTUWGYHZUWDVUOQTYIVVMVUTUVAUWFQTUWGYNYOXLZUWD
      UWFTUWGEVVJVVKVVLVUMVVNUVBUXEVUQUWFUWFUWGUVCUWDVURUWFUWFUWGUVDYCUWGKYTMZU
      WGUVEZYIUWDVVOUWFVVPVVOUWGUVFUWFUWGKUVGUWFUVHUVIUWFUVOUVJXLVVIVLUVKUWDUXD
      UWKVVDPUXEUWEUVLUTUVMWKUWDUWKTIKTIVVBUWLPUWDUWKUWDUWEUVNIZUWKUQIUWDUXMVVQ
      UXNDUVPUTUWEUVQUTUVRUVSUWKKUVTUWAUWBUWC $.
  $}

  ${
    $d n x y z N $.
    $( Wilson's theorem.  A number is prime iff it is greater or equal to ` 2 `
       and ` ( N - 1 ) ! ` is congruent to ` -u 1 ` , ` mod N ` , or
       alternatively if ` N ` divides ` ( N - 1 ) ! + 1 ` .  In this part of
       the proof we show the relatively simple reverse implication; see
       ~ wilthlem3 for the forward implication.  This is Metamath 100 proof
       #51.  (Contributed by Mario Carneiro, 24-Jan-2015.)  (Proof shortened by
       Fan Zheng, 16-Jun-2016.) $)
    wilth $p |- ( N e. Prime <-> ( N e. ( ZZ>= ` 2 ) /\
      N || ( ( ! ` ( N - 1 ) ) + 1 ) ) ) $=
      ( vx vy vz vn wcel c2 cfv c1 co cdvds wbr wa cv cexp cmo wral cn cz nnzd
      cprime cuz cmin cfa caddc prmuz2 cfz cpw crab ccnfld cmgp weq eleq2 oveq1
      eqid oveq1d eleq1d cbvralv raleqbi1dv syl5bb anbi12d cbvrabv wilthlem3 wn
      jca elfzuz adantl eluz2nn syl elfzuz3 dvdsfac syl2anc clt wi cn0 ad2antrr
      simpl nnm1nn0 3syl eluz2b2 simprbi ndvdsp1 syl3anc simplr peano2zd dvdstr
      faccl mpd mpan2d mtod ralrimiva isprm3 sylanbrc impbii ) AUAFZAGUBHZFZAAI
      UCJZUDHZIUEJZKLZMZWOWQXAAUFBCWRDNZFZENZAGUCJZOJZAPJZXCFZEXCQZMZDIWRUGJUHZ
      UIAUJUKHZXMUOXKWRBNZFZCNZXFOJZAPJZXNFZCXNQZMDBXLDBULZXDXOXJXTXCXNWRUMXJXR
      XCFZCXCQYAXTXIYBECXCECULZXHXRXCYCXGXQAPXEXPXFOUNUPUQURYBXSCXCXNXCXNXRUMUS
      UTVAVBVCVEXBWQXEAKLZVDZEGWRUGJZQWOWQXAVQXBYEEYFXBXEYFFZMZYDXEWTKLZYHXEWSK
      LZYIVDZYHXERFZWRXEUBHFZYJYHXEWPFZYLYGYNXBXEGWRVFVGZXEVHVIZYGYMXBXEGWRVJVG
      XEWRVKVLYHWSSFYLIXEVMLZYJYKVNYHWSYHARFZWRVOFWSRFWQYRXAYGAVHVPZAVRWRWGVSTZ
      YPYHYNYQYOYNYLYQXEVTWAVIXEWSWBWCWHYHYDXAYIWQXAYGWDYHXESFASFWTSFYDXAMYIVNY
      HXEYPTYHAYSTYHWSYTWEXEAWTWFWCWIWJWKEAWLWMWN $.
  $}

  $( The forward implication of Wilson's theorem ~ wilth (see ~ wilthlem3 ),
     expressed using the modulo operation:  For any prime ` p ` we have
     ` ( p - 1 ) ! == - 1 ` (mod ` p ` ), see theorem 5.24 in [ApostolNT]
     p. 116.  (Contributed by AV, 21-Jul-2021.) $)
  wilthimp $p |- ( P e. Prime
                     -> ( ( ! ` ( P - 1 ) ) mod P ) = ( -u 1 mod P ) ) $=
    ( cprime wcel c2 cuz cfv c1 cmin co cfa cdvds wbr wa cmo wceq cz syl adantr
    wb cc caddc cneg wilth cc0 cn eluz2nn nnm1nn0 faccld nnzd peano2zd dvdsval3
    cn0 syl2anc biimpar nncnd 1cnd jca subneg breqtrrd w3a neg1z moddvds mpbird
    a1i 3jca ex sylbid imp sylbi ) ABCADEFCZAAGHIZJFZGUAIZKLZMVLANIGUBZANIOZAUC
    VJVNVPVJVNVMANIUDOZVPVJAUECZVMPCVNVQSAUFZVJVLVJVLVJVKVJVRVKULCVSAUGQUHZUIZU
    JAVMUKUMZVJVQVPVJVQMZVPAVLVOHIZKLZWCAVMWDKVJVNVQWBUNWCVLTCZGTCZMZWDVMOVJWHV
    QVJWFWGVJVLVTUOVJUPUQRVLGURQUSWCVRVLPCZVOPCZUTZVPWESVJWKVQVJVRWIWJVSWAWJVJV
    AVDVERVLVOAVBQVCVFVGVHVI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The Fundamental Theorem of Algebra
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d k n r s x A $.  $d s x z D $.  $d r E $.  $d k n K $.  $d k n r s x N $.
    $d k n r s w x y z F $.  $d s x z J $.  $d k s w x y z ph $.  $d s x y R $.
    $d k s S $.  $d k r x T $.  $d r x U $.  $d k n r s w x y z X $.
    ftalem.1 $e |- A = ( coeff ` F ) $.
    ftalem.2 $e |- N = ( deg ` F ) $.
    ftalem.3 $e |- ( ph -> F e. ( Poly ` S ) ) $.
    ftalem.4 $e |- ( ph -> N e. NN ) $.
    ${
      ftalem1.5 $e |- ( ph -> E e. RR+ ) $.
      ftalem1.6 $e |- T =
        ( sum_ k e. ( 0 ... ( N - 1 ) ) ( abs ` ( A ` k ) ) / E ) $.
      $( Lemma for ~ fta :  "growth lemma".  There exists some ` r ` such that
         ` F ` is arbitrarily close in proportion to its dominant term.
         (Contributed by Mario Carneiro, 14-Sep-2014.) $)
      ftalem1 $p |- ( ph -> E. r e. RR A. x e. CC ( r < ( abs ` x ) ->
        ( abs ` ( ( F ` x ) - ( ( A ` N ) x. ( x ^ N ) ) ) ) <
          ( E x. ( ( abs ` x ) ^ N ) ) ) ) $=
        ( c1 wbr wcel co cle cif cr cv cabs cfv clt cexp cmul cmin wi wral wrex
        cc cc0 cfz csu cdiv fzfid wa cn0 wf coef3 elfznn0 ffvelrn syl2an abscld
        cply syl fsumrecl rerpdivcld syl5eqel 1re ifcl caddc wceq adantr simprl
        sylancl coeid2 syl2anc cuz nnnn0d nn0uz sylan expcl mulcld sylan2 fveq2
        syl6eleq oveq2 fsumm1 eqtrd oveq1d fsumcl ffvelrnd expcld pncand fveq2d
        oveq12d rpred reexpcld remulcld fsumabs nnm1nn0 adantlr absmuld absge0d
        crp cn absexp max1 sylancr simprr lelttrd ltled elfzuz3 adantl leexp2ad
        a1i eqbrtrd lemul2ad fsumle fsummulc1 breqtrrd max2 syl5eqbrr ltdivmuld
        recnd mpbid wb cz nn0zd 0red 0lt1 lttrd expgt0 syl3anc ltmul1 syl112anc
        expm1t mulcomd oveq2d mulassd eqtr4d expr ralrimiva breq1 imbi1d rspcev
        ralbidv ) AQEUARZEQUBZUCSZUUMBUDZUEUFZUGRZUUOHUFZICUFZUUOIUHTZUITZUJTZU
        EUFZGUUPIUHTZUITZUGRZUKZBUNULZJUDZUUPUGRZUVFUKZBUNULZJUCUMAEUCSZQUCSZUU
        NAEUOIQUJTZUPTZFUDZCUFZUEUFZFUQZGURTZUCPAUVTGAUVPUVSFAUOUVOUSAUVQUVPSZU
        TUVRAVAUNCVBZUVQVASZUVRUNSZUWBAHDVHUFSZUWCMCDHKVCVIZUVQUVOVDZVAUNUVQCVE
        ZVFVGZVJZOVKVLZVMUULEQUCVNVSZAUVGBUNAUUOUNSZUUQUVFAUWNUUQUTZUTZUVCUVPUV
        RUUOUVQUHTZUITZFUQZUEUFZUVEUGUWPUVBUWSUEUWPUVBUWSUVAVOTZUVAUJTUWSUWPUUR
        UXAUVAUJUWPUURUOIUPTZUWRFUQZUXAUWPUWFUWNUURUXCVPAUWFUWOMVQAUWNUUQVRZCDF
        HIUUOKLVTWAUWPUWRUVAFUOIUWPIVAUOWBUFAIVASUWOAINWCVQZWDWJUVQUXBSUWPUWDUW
        RUNSZUVQIVDUWPUWDUTZUVRUWQUWPUWCUWDUWEAUWCUWOUWGVQZUWIWEZUWPUWNUWDUWQUN
        SZUXDUUOUVQWFWEZWGZWHUVQIVPUVRUUSUWQUUTUIUVQICWIUVQIUUOUHWKWTWLWMWNUWPU
        WSUVAUWPUVPUWRFUWPUOUVOUSZUWBUWPUWDUXFUWHUXLWHZWOZUWPUUSUUTUWPVAUNICUXH
        UXEWPUWPUUOIUXDUXEWQWGWRWMWSUWPUWTUVPUWRUEUFZFUQZUVEUWPUWSUXOVGUWPUVPUX
        PFUXMUWPUWBUTZUWRUXNVGZVJZUWPGUVDUWPGAGXISUWOOVQZXAZUWPUUPIUWPUUOUXDVGZ
        UXEXBXCZUWPUVPUWRFUXMUXNXDUWPUXQUVTUUPUVOUHTZUITZUVEUXTUWPUVTUYEAUVTUCS
        ZUWOUWKVQZUWPUUPUVOUYCUWPIXJSZUVOVASAUYIUWONVQZIXEVIZXBZXCUYDUWPUXQUVPU
        VSUYEUITZFUQUYFUAUWPUVPUXPUYMFUXMUXSUXRUVSUYEAUWBUVSUCSUWOUWJXFZUWPUYEU
        CSZUWBUYLVQZXCUXRUXPUVSUWQUEUFZUITZUYMUAUWBUWPUWDUXPUYRVPUWHUXGUVRUWQUX
        IUXKXGWHUXRUYQUYEUVSUXRUWQUWBUWPUWDUXJUWHUXKWHVGUYPUYNUXRUVRUWBUWPUWDUW
        EUWHUXIWHXHUXRUYQUUPUVQUHTZUYEUAUWPUWNUWDUYQUYSVPUWBUXDUWHUUOUVQXKVFUXR
        UUPUVQUVOUWPUUPUCSZUWBUYCVQUWPQUUPUARUWBUWPQUUPUVNUWPVMXTZUYCUWPQUUMUUP
        VUAAUUNUWOUWMVQZUYCAQUUMUARZUWOAUVNUVMVUCVMUWLQEXLXMVQAUWNUUQXNZXOZXPVQ
        UWBUVOUVQWBUFSUWPUVQUOUVOXQXRXSYAYBYAYCUWPUVPUVSUYEFUXMUWPUYEUYLYIZUXRU
        VSUYNYIYDYEUWPUYFGUUPUITZUYEUITZUVEUGUWPUVTVUGUGRZUYFVUHUGRZUWPUWAUUPUG
        RVUIUWPUWAEUUPUGPUWPEUUMUUPAUVMUWOUWLVQVUBUYCAEUUMUARZUWOAUVNUVMVUKVMUW
        LQEYFXMVQVUDXOYGUWPUVTUUPGUYHUYCUYAYHYJUWPUYGVUGUCSUYOUOUYEUGRZVUIVUJYK
        UYHUWPGUUPUYBUYCXCUYLUWPUYTUVOYLSUOUUPUGRVULUYCUWPUVOUYKYMUWPUOQUUPUWPY
        NVUAUYCUOQUGRUWPYOXTVUEYPUUPUVOYQYRUVTVUGUYEYSYTYJUWPUVEGUUPUYEUITZUITV
        UHUWPUVDVUMGUIUWPUVDUYEUUPUITZVUMUWPUUPUNSUYIUVDVUNVPUWPUUPUYCYIZUYJUUP
        IUUAWAUWPUYEUUPVUFVUOUUBWMUUCUWPGUUPUYEUWPGUYBYIVUOVUFUUDUUEYEXOXOYAUUF
        UUGUVLUVHJUUMUCUVIUUMVPZUVKUVGBUNVUPUVJUUQUVFUVIUUMUUPUGUUHUUIUUKUUJWA
        $.
    $}

    ${
      ftalem2.5 $e |- U =
        if ( if ( 1 <_ s , s , 1 ) <_ T , T , if ( 1 <_ s , s , 1 ) ) $.
      ftalem2.6 $e |- T =
        ( ( abs ` ( F ` 0 ) ) / ( ( abs ` ( A ` N ) ) / 2 ) ) $.
      $( Lemma for ~ fta .  There exists some ` r ` such that ` F ` has
         magnitude greater than ` F ( 0 ) ` outside the closed ball B(0,r).
         (Contributed by Mario Carneiro, 14-Sep-2014.) $)
      ftalem2 $p |- ( ph -> E. r e. RR+ A. x e. CC
        ( r < ( abs ` x ) -> ( abs ` ( F ` 0 ) ) < ( abs ` ( F ` x ) ) ) ) $=
        ( cfv wbr co wcel vn vk cv cabs clt cexp cmul cmin c2 cdiv wi wral wrex
        cc cr cc0 crp c1 cfz csu cn0 cply wf coef3 syl nnnn0d ffvelrnd wne wceq
        nnne0d c0p dgreq0 cdgr fveq2 syl6eq syl5eq syl6bir necon3d mpd absrpcld
        dgr0 rphalfcld fveq2d cbvsumv oveq1i ftalem1 wa cle cif ffvelrn sylancl
        plyf 0cn abscld rerpdivcld syl5eqel simpr 1re ifcl ifcld 0red 1red 0lt1
        adantr a1i max1 sylancr syl2anc syl6breqr letrd elrpd max2 abscl adantl
        ltletrd lelttr syl3anc mpand imim1d simprl expcld mulcld subcld ltsub2d
        ad2antrr rehalfcld absmuld absexpd oveq2d eqtrd oveq1d adantrr reexpcld
        recnd 2cnd 2ne0 lelttrd mpbid cn syld div23d breq2d caddc pncand eqtr3d
        2halvesd breq1d 3bitr3d abs2difd abssubd nncand 3brtr3d resubcld ltletr
        mpan2d sylbid rpred remulcld simprr syl5eqbrr ltdivmuld exp1d ltled cuz
        eqeltrrd nnuz syl6eleq leexp2ad eqbrtrrd lemul2d breqtrrd lttr expr a2d
        ralimdva breq1 imbi1d ralbidv rspcev syl6an rexlimdva ) AIUCZBUCZUDQZUE
        RZUWCGQZHCQZUWCHUFSZUGSZUHSZUDQZUWGUDQZUIUJSZUWDHUFSZUGSZUERZUKZBUNULZI
        UOUMJUCZUWDUERZUPGQZUDQZUWFUDQZUERZUKZBUNULZJUQUMZABCDUPHURUHSUSSZUAUCZ
        CQZUDQZUAUTZUWMUJSUBUWMGHIKLMNAUWLAUWGAVAUNHCAGDVBQTZVAUNCVCMCDGKVDVEAH
        NVFZVGZAHUPVHUWGUPVHAHNVJAUWGUPHUPAUXMUWGUPVIZHUPVIZUKMUXMUXPGVKVIZUXQC
        DGHLKVLUXRHGVMQZUPLUXRUXSVKVMQUPGVKVMVNWAVOVPVQVEVRVSVTWBZUXLUXHUBUCZCQ
        ZUDQZUBUTUWMUJUXHUXKUYCUAUBUXIUYAVIUXJUYBUDUXIUYACVNWCWDWEWFAUWRUXGIUOA
        UWBUOTZWGZFUQTUWRFUWDUERZUXDUKZBUNULZUXGUYEFUYEFURUWBWHRZUWBURWIZEWHRZE
        UYJWIZUOOUYEUYKEUYJUOAEUOTZUYDAEUXBUWMUJSZUOPAUXBUWMAUXAAUNUNGVCZUPUNTU
        XAUNTAUXMUYOMDGWLVEZWMUNUNUPGWJWKWNZUXTWOWPXDZUYEUYDURUOTZUYJUOTZAUYDWQ
        ZWRUYIUWBURUOWSWKZWTWPZUYEUPURFUYEXAUYEXBZVUCUPURUERUYEXCXEUYEURUYJFVUD
        VUBVUCUYEUYSUYDURUYJWHRWRVUAURUWBXFXGUYEUYJUYLFWHUYEUYTUYMUYJUYLWHRVUBU
        YRUYJEXFXHOXIZXJZXOXKUYEUWQUYGBUNUYEUWCUNTZWGZUWQUYFUWPUKUYGVUHUYFUWEUW
        PVUHUWBFWHRZUYFUWEUYEVUIVUGUYEUWBUYJFVUAVUBVUCUYEUYSUYDUWBUYJWHRWRVUAUR
        UWBXLXGVUEXJXDVUHUYDFUOTZUWDUOTZVUIUYFWGUWEUKUYEUYDVUGVUAXDUYEVUJVUGVUC
        XDVUGVUKUYEUWCXMXNZUWBFUWDXPXQXRXSVUHUYFUWPUXDUYEVUGUYFUWPUXDUKUYEVUGUY
        FWGZWGZUWPUWIUDQZUIUJSZUXCUERZUXDVUNUWPVUPVUOUWKUHSZUERZVUQVUNUWKVUPUER
        VUOVUPUHSZVURUERUWPVUSVUNUWKVUPVUOVUNUWJVUNUWFUWIVUNUNUNUWCGAUYOUYDVUMU
        YPYEUYEVUGUYFXTZVGZVUNUWGUWHAUWGUNTUYDVUMUXOYEZVUNUWCHVVAAHVATUYDVUMUXN
        YEZYAZYBZYCWNZVUNVUOVUNUWIVVFWNZYFZVVHYDVUNVUPUWOUWKUEVUNVUPUWLUWNUGSZU
        IUJSUWOVUNVUOVVJUIUJVUNVUOUWLUWHUDQZUGSVVJVUNUWGUWHVVCVVEYGVUNVVKUWNUWL
        UGVUNUWCHVVAVVDYHYIYJYKVUNUWLUWNUIVUNUWLVUNUWGVVCWNYNVUNUWNVUNUWDHUYEVU
        GVUKUYFVULYLZVVDYMZYNVUNYOUIUPVHVUNYPXEUUAYJZUUBVUNVUTVUPVURUEVUNVUPVUP
        UUCSZVUPUHSVUTVUPVUNVVOVUOVUPUHVUNVUOVUNVUOVVHYNUUFYKVUNVUPVUPVUNVUPVVI
        YNZVVPUUDUUEUUGUUHVUNVUSVURUXCWHRZVUQVUNVUOUWIUWFUHSZUDQZUHSUWIVVRUHSZU
        DQVURUXCWHVUNUWIVVRVVFVUNUWIUWFVVFVVBYCUUIVUNVVSUWKVUOUHVUNUWIUWFVVFVVB
        UUJYIVUNVVTUWFUDVUNUWIUWFVVFVVBUUKWCUULVUNVUPUOTZVURUOTUXCUOTZVUSVVQWGV
        UQUKVVIVUNVUOUWKVVHVVGUUMVUNUWFVVBWNZVUPVURUXCUUNXQUUOUUPVUNUXBVUPUERZV
        UQUXDVUNUXBUWOVUPUEVUNUXBUWMUWDUGSZUWOAUXBUOTZUYDVUMUYQYEZVUNUWMUWDVUNU
        WMAUWMUQTUYDVUMUXTYEZUUQVVLUURVUNVUPUWOUOVVNVVIUVEVUNUYNUWDUERUXBVWEUER
        VUNUYNEUWDUEPVUNEFUWDUYEUYMVUMUYRXDUYEVUJVUMVUCXDZVVLUYEEFWHRVUMUYEEUYL
        FWHUYEUYTUYMEUYLWHRVUBUYRUYJEXLXHOXIXDUYEVUGUYFUUSZYQUUTVUNUXBUWDUWMVWG
        VVLVWHUVAYRVUNUWDUWNWHRVWEUWOWHRVUNUWDURUFSUWDUWNWHVUNUWDVUNUWDVVLYNUVB
        VUNUWDURHVVLVUNURUWDVUNXBZVVLVUNURFUWDVWKVWIVVLUYEURFWHRVUMVUFXDVWJYQUV
        CVUNHYSURUVDQAHYSTUYDVUMNYEUVFUVGUVHUVIVUNUWDUWNUWMVVLVVMVWHUVJYRXOVVNU
        VKVUNVWFVWAVWBVWDVUQWGUXDUKVWGVVIVWCUXBVUPUXCUVLXQXRYTUVMUVNYTUVOUXFUYH
        JFUQUWSFVIZUXEUYGBUNVWLUWTUYFUXDUWSFUWDUEUVPUVQUVRUVSUVTUWAVS $.
    $}

    ${
      ftalem3.5 $e |- D = { y e. CC | ( abs ` y ) <_ R } $.
      ftalem3.6 $e |- J = ( TopOpen ` CCfld ) $.
      ftalem3.7 $e |- ( ph -> R e. RR+ ) $.
      ftalem3.8 $e |- ( ph -> A. x e. CC
        ( R < ( abs ` x ) -> ( abs ` ( F ` 0 ) ) < ( abs ` ( F ` x ) ) ) ) $.
      $( Lemma for ~ fta .  There exists a global minimum of the function
         ` abs o. F ` .  The proof uses a circle of radius ` r ` where ` r ` is
         the value coming from ~ ftalem1 ; since this is a compact set, the
         minimum on this disk is achieved, and this must then be the global
         minimum.  (Contributed by Mario Carneiro, 14-Sep-2014.) $)
      ftalem3 $p |- ( ph -> E. z e. CC A. x e. CC
        ( abs ` ( F ` z ) ) <_ ( abs ` ( F ` x ) ) ) $=
        ( cc vs cv cfv cabs cle wbr wral wrex wss crab ssrab2 eqsstri ccom cres
        crest co cioo crn ctopon wcel cnfldtopon resttopon mp2an toponunii eqid
        ctg ccld cr ccmp cmin cxmt cc0 cxr cnxmet a1i rpxrd cnfldtopn cnmetdval
        wceq mpan cneg df-neg fveq2i absneg syl5eqr eqtrd breq1d rabbiia eqtr4i
        0cn blcld syl3anc rpred fveq2 elrab2 simprbi rgen breq2 ralbidv sylancl
        rspcev wa wb cnheibor ax-mp sylanbrc ccn ccncf plycn syl abscncf cncfco
        cply ssid ax-resscn ctop cnfldtop restid eqcomi tgioo2 cncfcn cnrest c0
        syl6eleq wne rpge0d abs0 syl6eq fvres simplr sseldi fvco3 syl2anc simpr
        ad2antrr wi abscld ffvelrnd clt cun ne0i evth2 ad2antlr wf plyf breq12d
        adantl ralbidva rexbidva mpbid ssrexv cdif adantr fveq2d breq2d ffvelrn
        mpsyl rspcv eldifad wn eldifbd baib mtbid ltnled mpbird rsp syl3c ltled
        letr mpan2d ralrimdva syld ancld ralunb undif2 mpbi eqtri raleqi bitr3i
        ssequn1 syl6ib reximdva mpd ) ADUBZIUCZUDUCZBUBZIUCZUDUCZUEUFZBFUGZDTUH
        ZUWJBTUGZDTUHFTUIZAUWKDFUHZUWLFCUBZUDUCZGUEUFZCTUJZTPUWRCTUKULZAUWDUDIU
        MZFUNZUCZUWGUXBUCZUEUFZBFUGZDFUHUWOADBUXBJFUOUPZUQURVFUCZFFUXGJTUSUCUTU
        WNUXGFUSUCUTJQVAZUWTFJTVBVCVDUXHVEAFJVGUCUTZUWGUDUCZUAUBZUEUFZBFUGZUAVH
        UHZUXGVIUTZAUDVJUMZTVKUCUTZVLTUTZGVMUTUXJUXRAVNVOUXSAWJVOZAGRVPCUXQVLGF
        JTJQVQFUWSVLUWPUXQUPZGUEUFZCTUJPUYBUWRCTUWPTUTZUYAUWQGUEUYCUYAVLUWPVJUP
        ZUDUCZUWQUXSUYCUYAUYEVSWJVLUWPUXQUXQVEVRVTUYCUYEUWPWAZUDUCUWQUYFUYDUDUW
        PWBWCUWPWDWEWFWGWHWIWKWLAGVHUTZUXKGUEUFZBFUGZUXOAGRWMZUYHBFUWGFUTZUWGTU
        TZUYHUWRUYHCUWGTFUWPUWGVSUWQUXKGUEUWPUWGUDWNWGPWOZWPWQUXNUYIUAGVHUXLGVS
        UXMUYHBFUXLGUXKUEWRWSXAWTUWNUXPUXJUXOXBXCUWTBUXGJFUAQUXGVEXDXEXFAUXAJUX
        HXGUPZUTUWNUXBUXGUXHXGUPUTAUXATVHXHUPZUYNATTVHIUDAIHXMUCUTZITTXHUPUTNHI
        XIXJUDUYOUTAXKVOXLTTUIVHTUIUYOUYNVSTXNXOTVHJJUXHQJTUOUPZJJXPUTUYQJVSJQX
        QJXPTTJUXIVDZXRXEXSJQXTYAVCYDUWTFUXAJUXHTUYRYBWTAVLFUTZFYCYEAUXSVLGUEUF
        ZUYSUXTAGRYFUWRUYTCVLTFUWPVLVSZUWQVLGUEVUAUWQVLUDUCVLUWPVLUDWNYGYHWGPWO
        XFZFVLUUAXJUUBAUXFUWKDFAUWDFUTZXBZUXEUWJBFVUDUYKXBZUXCUWFUXDUWIUEVUEUXC
        UWDUXAUCZUWFVUCUXCVUFVSAUYKUWDFUXAYIUUCVUETTIUUDZUWDTUTZVUFUWFVSAVUGVUC
        UYKAUYPVUGNHIUUEXJZYOZVUEFTUWDUWTAVUCUYKYJYKTTUWDUDIYLYMWFVUEUXDUWGUXAU
        CZUWIUYKUXDVUKVSVUDUWGFUXAYIUUGVUEVUGUYLVUKUWIVSVUJVUEFTUWGUWTVUDUYKYNY
        KTTUWGUDIYLYMWFUUFUUHUUIUUJUWKDFTUUKUUQAUWKUWMDTAVUHXBZUWKUWKUWJBTFUULZ
        UGZXBZUWMVULUWKVUNVULUWKUWFVLIUCZUDUCZUEUFZVUNVULUYSUWKVURYPAUYSVUHVUBU
        UMUWJVURBVLFUWGVLVSZUWIVUQUWFUEVUSUWHVUPUDUWGVLIWNUUNUUOUURXJVULVURUWJB
        VUMVULUWGVUMUTZXBZVURVUQUWIUEUFZUWJVVAVUQUWIVVAVUPVVAVUGUXSVUPTUTAVUGVU
        HVUTVUIYOZWJTTVLIUUPWTYQZVVAUWHVVATTUWGIVVCVVAUWGTFVULVUTYNZUUSZYRYQZVV
        AGUXKYSUFZVUQUWIYSUFZYPZBTUGZUYLVVHVVIAVVKVUHVUTSYOVVFVVAVVHUYHUUTVVAUY
        KUYHVVAUWGTFVVEUVAVVAUYLUYKUYHXCVVFUYKUYLUYHUYMUVBXJUVCVVAGUXKAUYGVUHVU
        TUYJYOVVAUWGVVFYQUVDUVEVVJBTUVFUVGUVHVVAUWFVHUTVUQVHUTUWIVHUTVURVVBXBUW
        JYPVVAUWEVVATTUWDIVVCAVUHVUTYJYRYQVVDVVGUWFVUQUWIUVIWLUVJUVKUVLUVMVUOUW
        JBFVUMYTZUGUWMUWJBFVUMUVNUWJBVVLTVVLFTYTZTFTUVOUWNVVMTVSUWTFTUVTUVPUVQU
        VRUVSUWAUWBUWC $.
    $}

    ${
      ftalem4.5 $e |- ( ph -> ( F ` 0 ) =/= 0 ) $.
      ftalem4.6 $e |- K = inf ( { n e. NN | ( A ` n ) =/= 0 } , RR , < ) $.
      ftalem4.7 $e |- T = ( -u ( ( F ` 0 ) / ( A ` K ) ) ^c ( 1 / K ) ) $.
      ftalem4.8 $e |- U = ( ( abs ` ( F ` 0 ) ) /
      ( sum_ k e. ( ( K + 1 ) ... N )
        ( abs ` ( ( A ` k ) x. ( T ^ k ) ) ) + 1 ) ) $.
      ftalem4.9 $e |- X = if ( 1 <_ U , 1 , U ) $.
      $( Lemma for ~ fta :  Closure of the auxiliary variables for ~ ftalem5 .
         (Contributed by Mario Carneiro, 20-Sep-2014.)  (Revised by AV,
         28-Sep-2020.) $)
      ftalem4 $p |- ( ph -> ( ( K e. NN /\ ( A ` K ) =/= 0 ) /\
        ( T e. CC /\ U e. RR+ /\ X e. RR+ ) ) ) $=
        ( cn wcel cfv cc0 wne wa cc crp w3a cv crab cr clt c1 cuz wss c0 ssrab2
        cinf nnuz sseqtri nnne0d wceq c0p cply wb dgreq0 cdgr fveq2 dgr0 syl6eq
        syl syl5eq syl6bir necon3d neeq1d elrab sylanbrc ne0i infssuzcl sylancr
        mpd syl5eqel sylib cdiv co cneg ccxp plyf 0cn ffvelrn sylancl cn0 coef3
        simpld nnnn0d ffvelrnd simprd divcld negcld nnrecred recnd cxpcld caddc
        wf cabs cfz cexp cmul absrpcld fzfid peano2nn0 elfzuz eluznn0 ffvelrnda
        csu syl2an syldan expcl mulcld abscld fsumrecl absge0d fsumge0 ge0p1rpd
        sylan rpdivcld cle wbr cif 1rp ifcl 3jca jca ) AIUAUBZIBUCZUDUEZUFZDUGU
        BZEUHUBZKUHUBZUIAIGUJZBUCZUDUEZGUAUKZUBYRAIUUEULUMUSZUUEQAUUEUNUOUCZUPU
        UEUQUEZUUFUUEUBUUEUAUUGUUDGUAURUTVAAJUUEUBZUUHAJUAUBJBUCZUDUEZUUIOAJUDU
        EUUKAJOVBAUUJUDJUDAUUJUDVCZHVDVCZJUDVCAHCVEUCUBZUUMUULVFNBCHJMLVGVLUUMJ
        HVHUCZUDMUUMUUOVDVHUCUDHVDVHVIVJVKVMVNVOWBUUDUUKGJUAUUBJVCUUCUUJUDUUBJB
        VIVPVQVRUUEJVSVLUUEUNVTWAWCUUDYQGIUAUUBIVCUUCYPUDUUBIBVIVPVQWDZAYSYTUUA
        ADUDHUCZYPWEWFZWGZUNIWEWFZWHWFUGRAUUSUUTAUURAUUQYPAUGUGHXEZUDUGUBUUQUGU
        BAUUNUVANCHWIVLWJUGUGUDHWKWLZAWMUGIBAUUNWMUGBXENBCHLWNVLZAIAYOYQUUPWOZW
        PZWQAYOYQUUPWRWSWTAUUTAIUVDXAXBXCWCZAEUUQXFUCZIUNXDWFZJXGWFZFUJZBUCZDUV
        JXHWFZXIWFZXFUCZFXPZUNXDWFZWEWFUHSAUVGUVPAUUQUVBPXJAUVOAUVIUVNFAUVHJXKZ
        AUVJUVIUBZUFZUVMUVSUVKUVLAUVRUVJWMUBZUVKUGUBAUVHWMUBZUVJUVHUOUCUBUVTUVR
        AIWMUBUWAUVEIXLVLUVJUVHJXMUVJUVHXNXQZAWMUGUVJBUVCXOXRAUVRUVTUVLUGUBZUWB
        AYSUVTUWCUVFDUVJXSYFXRXTZYAZYBAUVIUVNFUVQUWEUVSUVMUWDYCYDYEYGWCZAKUNEYH
        YIZUNEYJZUHTAUNUHUBYTUWHUHUBYKUWFUWGUNEUHYLWAWCYMYN $.

      $( Lemma for ~ fta :  Main proof.  We have already shifted the minimum
         found in ~ ftalem3 to zero by a change of variables, and now we show
         that the minimum value is zero.  Expanding in a series about the
         minimum value, let ` K ` be the lowest term in the polynomial that is
         nonzero, and let ` T ` be a ` K ` -th root of
         ` -u F ( 0 ) / A ( K ) ` .  Then an evaluation of ` F ( T X ) ` where
         ` X ` is a sufficiently small positive number yields ` F ( 0 ) ` for
         the first term and ` -u F ( 0 ) x. X ^ K ` for the ` K ` -th term, and
         all higher terms are bounded because ` X ` is small.  Thus,
         ` abs ( F ( T X ) ) <_ abs ( F ( 0 ) ) ( 1 - X ^ K ) `
         ` < abs ( F ( 0 ) ) ` , in contradiction to our choice of ` F ( 0 ) `
         as the minimum.  (Contributed by Mario Carneiro, 14-Sep-2014.)
         (Revised by AV, 28-Sep-2020.) $)
      ftalem5 $p |- ( ph -> E. x e. CC
        ( abs ` ( F ` x ) ) < ( abs ` ( F ` 0 ) ) ) $=
        ( cmul co cc wcel cfv cabs cc0 clt wbr cv wrex crp cn wne wa w3a simprd
        ftalem4 rpred recnd mulcld cexp c1 caddc cfz csu wf syl ffvelrnd abscld
        cmin ffvelrn simpld nnnn0d reexpcld remulcld fzfid cn0 cuz syl2an sylan
        syldan adantr expcld fsumcl cle elfznn0 expcl syl2anc c0 nnred ltp1d cr
        wceq wss nnuz nnne0d c0p wb cdgr syl6eq syl5eq neeq1d infssuzle sylancr
        fveq2 syl5eqbr syl6eleq mpbird eqtrd fveq2d cneg oveq12d mulid1d oveq1i
        cz elfznn adantl lelttrd oveq1d mulexpd oveq2d mulassd eqtr4d cdiv ccxp
        oveq2 wn negcld 3eqtrd subdid 3eqtr4d 1re absmuld rpge0d absidd eqbrtrd
        fsumrecl ltmul1dd simp1d simp3d cply plyf 0cn resubcld peano2nn0 elfzuz
        sylancl eluznn0 readdcld abstrid coeid2 cin fzdisj cun crab cinf ssrab2
        coef3 sseqtri dgreq0 dgr0 syl6bir necon3d mpd elrab sylanbrc nn0uz nnzd
        elfz5 fzsplit fsumsplit coefv0 eqcomd sumeq1i syl5eqr peano2rem elfzle2
        exp0d 1e0p1 fsumm1 ltm1d ltnled mpbid elrab3 necon2bbid mul02d sumeq2dv
        mpan nsyl cfn wo fzfi olci ax-mp recid2d divcld nnrecred cxpmul2d cxp1d
        sumz 3eqtr3d mulneg2d divcan2d negeqd mulneg1d addid2d 1cnd negsubd cif
        fsum1p resubcl syl31anc 3eqtrrd 3brtr4d fsumabs elfzelz rpexpcl absge0d
        simp2d exple1 subge0 leexp2rd lemul2ad fsumle fsummulc1 breqtrrd expp1d
        min1 mulcomd nnssz sstri ne0i infssuzcl syl5eqel rpexpcld peano2re min2
        sseldi syl6breq 0red fsumge0 lemuldiv2 syl112anc ltsub2dd breq1d rspcev
        ltletrd ltaddsubd ) AELUBUCZUDUEZVUKIUFZUGUFZUHIUFZUGUFZUIUJZBUKZIUFZUG
[encoded data, 5360 characters]
        VUKWOZVUTVUNVUPUIXVDVUSVUMUGVURVUKIXGXLVUGVUHWJ $.
    $}

    ${
      ftalem6.5 $e |- ( ph -> ( F ` 0 ) =/= 0 ) $.
      $( Lemma for ~ fta :  Discharge the auxiliary variables in ~ ftalem5 .
         (Contributed by Mario Carneiro, 20-Sep-2014.)  (Proof shortened by AV,
         28-Sep-2020.) $)
      ftalem6 $p |- ( ph -> E. x e. CC
        ( abs ` ( F ` x ) ) < ( abs ` ( F ` 0 ) ) ) $=
        ( vs vn cc0 cfv cv cdiv co c1 cabs vk vr wne cn crab clt cinf cneg ccxp
        cr caddc cfz cexp cmul csu cle wbr cif wceq neeq1d cbvrabv infeq1i eqid
        fveq2 oveq2 oveq12d fveq2d cbvsumv oveq1i oveq2i ftalem5 ) ABCDNEOZUAPZ
        COZNUCZUAUDUEZUJUFUGZCOQRUHSVQQRUIRZVLTOZVQSUKRFULRZUBPZCOZVRWAUMRZUNRZ
        TOZUBUOZSUKRZQRZLMEVQFSWHUPUQSWHURZGHIJKUJVPMPZCOZNUCZMUDUEUFVOWLUAMUDV
        MWJUSVNWKNVMWJCVDUTVAVBVRVCWGVTLPZCOZVRWMUMRZUNRZTOZLUOZSUKRVSQWFWRSUKV
        TWEWQUBLWAWMUSZWDWPTWSWBWNWCWOUNWAWMCVDWAWMVRUMVEVFVGVHVIVJWIVCVK $.
    $}

    ${
      ftalem7.5 $e |- ( ph -> X e. CC ) $.
      ftalem7.6 $e |- ( ph -> ( F ` X ) =/= 0 ) $.
      $( Lemma for ~ fta .  Shift the minimum away from zero by a change of
         variables.  (Contributed by Mario Carneiro, 14-Sep-2014.) $)
      ftalem7 $p |- ( ph -> -. A. x e. CC
        ( abs ` ( F ` X ) ) <_ ( abs ` ( F ` x ) ) ) $=
        ( vz cfv cabs cc co wcel wceq vy vw cv cle wbr wrex wral caddc cmpt cc0
        wn clt ccoe cdgr eqid cidp cneg csn cxp cmin cof ccom cply simpr adantr
        wa addcld cvv cnex a1i negcld cid cres df-idp mptresid eqtr4i fconstmpt
        offval2 id subneg syl2anr mpteq2dva eqtrd plyf syl feqmptd fveq2 fmptco
        wf plyssc sseldi ccnv cima w3a plyremlem simp1d addcl adantl cmul mulcl
        c1 plyco eqeltrrd fveq2d dgrco simp2d 1nn syl6eqel nnmulcld eqeltrd 0cn
        cn oveq1 fvex fvmpt ax-mp addid2d syl5eq eqnetrd ftalem6 breq12d abscld
        ffvelrnd ltnled biimpd breq2d notbid rspcev syl6an rexlimdva mpd rexnal
        cr bitrd sylib ) AGEOZPOZBUCZEOZPOZUDUEZUKZBQUFZUUABQUGUKAUAUCZNQNUCZGU
        HRZEOZUIZOZPOZUJUUHOZPOZULUEZUAQUFUUCAUAUUHUMOZQUUHUUHUNOZUUNUOUUOUOAEU
        PQGUQZURZUSZUTVARZVBZUUHQVCOZANUAQQUUFUUDEOUUGUUSEAUUEQSZVFUUEGAUVBVDZA
        GQSZUVBLVEVGAUUSNQUUEUUPUTRZUINQUUFUIANQUUEUUPUTUPUURVHQQQVHSAVIVJUVCAU
        UPQSZUVBAGLVKZVEUPNQUUEUIZTAUPVLQVMUVHVNNQVOVPVJUURNQUUPUITANQUUPVQVJVR
        ANQUVEUUFUVBUVBUVDUVEUUFTAUVBVSLUUEGVTWAWBWCAUAQQEAEDVCOZSQQEWIZJDEWDWE
        ZWFUUDUUFEWGWHZANUBQEUUSAUVIUVAEDWJJWKZAUUSUVASZUUSUNOZXATZUUSWLUJURWMU
        UQTZAUVFUVNUVPUVQWNUVGUUPUUSUUSUOWOWEZWPZUVBUBUCZQSVFZUUEUVTUHRQSAUUEUV
        TWQWRUWAUUEUVTWSRQSAUUEUVTWTWRXBXCAUUTUNOZUUOXLAUUTUUHUNUVLXDAUWBFUVOWS
        RXLAQEUUSFUVOIUVOUOUVMUVSXEAFUVOKAUVOXAXLAUVNUVPUVQUVRXFXGXHXIXJXCAUUKY
        PUJAUUKUJGUHRZEOZYPUJQSUUKUWDTXKNUJUUGUWDQUUHUUEUJTUUFUWCEUUEUJGUHXMXDU
        UHUOZUWCEXNXOXPAUWCGEAGLXQXDXRZMXSXTAUUMUUCUAQAUUDQSZVFZUUDGUHRZQSZUUMY
        QUWIEOZPOZUDUEZUKZUUCUWGUWGUVDUWJAUWGVSLUUDGWQWAZUWHUUMUWNUWHUUMUWLYQUL
        UEUWNUWHUUJUWLUULYQULUWHUUIUWKPUWGUUIUWKTANUUDUUGUWKQUUHUUEUUDTUUFUWIEU
        UEUUDGUHXMXDUWEUWIEXNXOWRXDUWHUUKYPPAUUKYPTUWGUWFVEXDYAUWHUWLYQUWHUWKUW
        HQQUWIEAUVJUWGUVKVEUWOYCYBAYQYMSUWGAYPAQQGEUVKLYCYBVEYDYNYEUUBUWNBUWIQY
        RUWITZUUAUWMUWPYTUWLYQUDUWPYSUWKPYRUWIEWGXDYFYGYHYIYJYKUUABQYLYO $.
    $}
  $}

  ${
    $d r s x y z F $.  $d r s x y z S $.
    $( The Fundamental Theorem of Algebra.  Any polynomial with positive degree
       (i.e. non-constant) has a root.  This is Metamath 100 proof #2.
       (Contributed by Mario Carneiro, 15-Sep-2014.) $)
    fta $p |- ( ( F e. ( Poly ` S ) /\ ( deg ` F ) e. NN ) ->
      E. z e. CC ( F ` z ) = 0 ) $=
      ( vx vr vy vs cfv wcel wa cv cabs cle wbr cc wral wrex cc0 clt eqid cn wi
      cply cdgr wceq crp ccoe c2 cdiv co c1 cif simpl simpr ftalem2 crab ccnfld
      ctopn simpll simplr simprl simprr breq2d fveq2d imbi12d cbvralv rexlimddv
      fveq2 sylib ftalem3 wne wn ftalem7 expr necon4ad reximdva mpd ) CBUCHIZCU
      DHZUAIZJZAKZCHZLHDKZCHZLHZMNDOPZAOQZWCRUEZAOQWAEKZFKZLHZSNZRCHLHZWKCHZLHZ
      SNZUBZFOPZWHEUFWAFCUGHZBWNVSWTHLHUHUIUJUIUJZUKGKZMNXBUKULZXAMNXAXCULZCVSG
      EWTTZVSTZVRVTUMVRVTUNXDTXATUOWAWJUFIZWSJZJZDGAWTXBLHWJMNGOUPZWJBCUQURHZVS
      XEXFVRVTXHUSVRVTXHUTXJTXKTWAXGWSVAXIWSWJWDLHZSNZWNWFSNZUBZDOPWAXGWSVBWRXO
      FDOWKWDUEZWMXMWQXNXPWLXLWJSWKWDLVHVCXPWPWFWNSXPWOWELWKWDCVHVDVCVEVFVIVJVG
      WAWGWIAOWAWBOIZJWGWCRWAXQWCRVKZWGVLWAXQXRJZJDWTBCVSWBXEXFVRVTXSUSVRVTXSUT
      WAXQXRVAWAXQXRVBVMVNVOVPVQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The Basel problem (&zeta;(2) = &pi;<sup>2</sup>/6)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d j k m t A $.  $d j k m n t x y M $.  $d j k m n t x N $.  $d k n x P $.
    $d k m x y T $.
    basel.n $e |- N = ( ( 2 x. M ) + 1 ) $.
    $( Lemma for ~ basel .  Closure of the sequence of roots.  (Contributed by
       Mario Carneiro, 30-Jul-2014.)  Replace OLD theorem.  (Revised ba Wolf
       Lammen, 18-Sep-2020.) $)
    basellem1 $p |- ( ( M e. NN /\ K e. ( 1 ... M ) ) ->
      ( ( K x. _pi ) / N ) e. ( 0 (,) ( _pi / 2 ) ) ) $=
      ( cn wcel c1 co wa cpi cmul cdiv cr cc0 clt wbr c2 crp sylancl nnred cioo
      cfz elfznn nnrpd pirp rpmulcl 2nn nnmulcl mpan peano2nnd syl5eqel rpdivcl
      caddc syl2anr rpred rpgt0d adantl adantr syl5eqelr cle cc wceq 2cn mulcom
      nncnd elfzle2 nnre 2re 2pos pm3.2i a1i lemul2 syl3anc mpbid eqbrtrd ltp1d
      wb lelttrd syl6breqr nngt0d pire remulcl ltdiv2 syl222anc wne picn 2cnne0
      nnne0d divcan5 syl112anc breqtrd cxr w3a 0xr rehalfcl rexr mp2b syl3anbrc
      elioo2 mp2an ) BEFZAGBUBHFZIZAJKHZCLHZMFZNXEOPZXEJQLHZOPZXENXHUAHFZXCXEXB
      XDRFZCRFXERFXAXBARFJRFXKXBAABUCZUDUEAJUFSZXACXACQBKHZGUMHZEDXAXNQEFZXAXNE
      FZUGQBUHUIZUJUKZUDXDCULUNZUOXCXEXTUPXCXEXDAQKHZLHZXHOXCYACOPZXEYBOPZXCYAX
      OCOXCYAXNXOXCYAXCAEFZXPYAEFXBYEXAXLUQZUGAQUHSZTZXCXNXAXQXBXRURTZXCXOCMDXC
      CXACEFXBXSURZTZUSXCYAQAKHZXNUTXCAVAFZQVAFZYAYLVBXCAYFVEZVCAQVDSXCABUTPZYL
      XNUTPZXBYPXAAGBVFUQXCAMFZBMFZQMFZNQOPZIZYPYQVQXCAYFTZXAYSXBBVGURUUBXCYTUU
      AVHVIVJVKABQVLVMVNVOXCXNYIVPVRDVSXCYAMFNYAOPCMFNCOPXDMFZNXDOPYCYDVQYHXCYA
      YGVTYKXCCYJVTXCYRJMFZUUDUUCWAAJWBSXCXDXBXKXAXMUQUPYACXDWCWDVNXCJVAFZYNQNW
      EIZYMANWEYBXHVBUUFXCWFVKUUGXCWGVKYOXCAYFWHJQAWIWJWKNWLFXHWLFZXJXFXGXIWMVQ
      WNUUEXHMFUUHWAJWOXHWPWQNXHXEWSWTWR $.

    basel.p $e |- P = ( t e. CC |-> sum_ j e. ( 0 ... M )
      ( ( ( N _C ( 2 x. j ) ) x. ( -u 1 ^ ( M - j ) ) ) x. ( t ^ j ) ) ) $.
    $( Lemma for ~ basel .  Show that ` P ` is a polynomial of degree ` M ` ,
       and compute its coefficient function.  (Contributed by Mario Carneiro,
       30-Jul-2014.) $)
    basellem2 $p |- ( M e. NN -> ( P e. ( Poly ` CC ) /\ ( deg ` P ) = M /\
      ( coeff ` P ) = ( n e. NN0 |->
        ( ( N _C ( 2 x. n ) ) x. ( -u 1 ^ ( M - n ) ) ) ) ) ) $=
      ( wcel cc wceq cn0 c2 cmul co c1 cc0 cz caddc wbr cn cply cfv cdgr cv cbc
      ccoe cneg cmin cexp cmpt cfz csu wss ssid a1i nnnn0 elfznn0 oveq2 oveq12d
      wa oveq2d eqid ovex fvmpt syl adantl wf 2nn nnmulcl mpan peano2nnd nnnn0d
      syl5eqel 2z nn0z zmulcl sylancr bccl syl2an nn0cnd nnz zsubcl wne neg1ne0
      neg1cn expclz mp3an12 mulcld fmptd ffvelrn eqeltrrd elplyd cuz csn cle wi
      cima wral wn clt cr wb nnre nn0re ltnle ad2antlr wo ax-1cn 2timesi oveq2i
      ad2antrr 2cnd adddid oveq1i nncnd addassd syl5eq 3eqtr4a zltp1le peano2re
      nncn biimpa 2pos pm3.2i lemul2 syl3anc mpbid eqbrtrrd nnzd syl2anc mpbird
      2re olcd bcval4 oveq1d adantr mul02d 3eqtrd ex sylbird necon1ad ralrimiva
      plyco0 sumeq2i mpteq2i eqtr4i subidd exp0 ax-mp syl6eq syl6breqr syl6eleq
      nnred lep1d nn0uz elfz5 bccl2 mulid1d nnne0d eqnetrd dgreq coeeq 3jca ) E
      UAIZBJUBUCZIBUDUCEKBUGUCDLFMDUEZNOZUFOZPUHZEUVGUIOZUJOZNOZUKZKUVEBAJQEULO
      ZFMCUEZNOZUFOZUVJEUVPUIOZUJOZNOZAUEUVPUJOZNOZCUMZUKZUVFHUVEAUWAJCEJJUNUVE
      JUOUPEUQZUVEUVPUVOIZVAUVPUVNUCZUWAJUWGUWHUWAKZUVEUWGUVPLIZUWIUVPEURZDUVPU
      VMUWALUVNUVGUVPKZUVIUVRUVLUVTNUWLUVHUVQFUFUVGUVPMNUSVBUWLUVKUVSUVJUJUVGUV
      PEUIUSVBUTUVNVCZUVRUVTNVDVEZVFZVGUVELJUVNVHZUWJUWHJIUWGUVEDLUVMJUVNUVEUVG
      LIZVAZUVIUVLUWRUVIUVEFLIZUVHRIZUVILIUWQUVEFUVEFMENOZPSOZUAGUVEUXAMUAIUVEU
      XAUAIZVIMEVJVKZVLVNZVMZUWQMRIZUVGRIZUWTVOUVGVPZMUVGVQVRUVHFVSVTWAUWRUVKRI
      ZUVLJIZUVEERIZUXHUXJUWQEWBZUXIEUVGWCVTUVJJIZUVJQWDZUXJUXKWFWEUVJUVKWGWHVF
      WIUWMWJZUWKLJUVPUVNWKVTWLWMVNZUVEAUVNJCBEUXQUWFUXPUVEUVNEPSOZWNUCWRQWOKZU
      WHQWDUVPEWPTZWQZCLWSZUVEUYACLUVEUWJVAZUXTUWHQUYCUXTWTZEUVPXATZUWHQKZUVEEX
      BIZUVPXBIZUYEUYDXCUWJEXDZUVPXEZEUVPXFVTUYCUYEUYFUYCUYEVAZUWHUWAQUVTNOQUWJ
      UWIUVEUYEUWNXGUYKUVRQUVTNUYKUWSUVQRIZUVQQXATZFUVQXATZXHUVRQKUVEUWSUWJUYEU
      XFXLUYKUXGUVPRIZUYLVOUWJUYOUVEUYEUVPVPZXGMUVPVQVRZUYKUYNUYMUYKUYNFPSOZUVQ
      WPTZUYKMUXRNOZUYRUVQWPUYKUXAMPNOZSOUXAPPSOZSOZUYTUYRVUAVUBUXASPXIXJXKUYKM
      EPUYKXMUVEEJIUWJUYEEYBZXLPJIUYKXIUPZXNUYKUYRUXBPSOVUCFUXBPSGXOUYKUXAPPUYK
      UXAUVEUXCUWJUYEUXDXLXPVUEVUEXQXRXSUYKUXRUVPWPTZUYTUVQWPTZUYCUYEVUFUVEUXLU
      YOUYEVUFXCUWJUXMUYPEUVPXTVTYCUYKUXRXBIZUYHMXBIZQMXATZVAZVUFVUGXCUYKUYGVUH
      UVEUYGUWJUYEUYIXLEYAVFUWJUYHUVEUYEUYJXGVUKUYKVUIVUJYMYDYEUPUXRUVPMYFYGYHY
      IUYKFRIZUYLUYNUYSXCUVEVULUWJUYEUVEFUXEYJZXLUYQFUVQXTYKYLYNUVQFYOYGYPUYKUV
      TUYCUVTJIZUYEUYCUVSRIZVUNUVEUXLUYOVUOUWJUXMUYPEUVPWCVTUXNUXOVUOVUNWFWEUVJ
      UVSWGWHVFYQYRYSYTUUAUUBUUCUVEELIZUWPUXSUYBXCUWFUXPUVNCEUUDYKYLZBAJUVOUWHU
      WBNOZCUMZUKZKUVEBUWEVUTHAJVUSUWDUVOVURUWCCUWGUWHUWAUWBNUWOYPUUEUUFUUGUPZU
      VEEUVNUCZFUXAUFOZQUVEVVBVVCUVJEEUIOZUJOZNOZVVCPNOVVCUVEVUPVVBVVFKUWFDEUVM
      VVFLUVNUVGEKZUVIVVCUVLVVENVVGUVHUXAFUFUVGEMNUSVBVVGUVKVVDUVJUJUVGEEUIUSVB
      UTUWMVVCVVENVDVEVFUVEVVEPVVCNUVEVVEUVJQUJOZPUVEVVDQUVJUJUVEEVUDUUHVBUXNVV
      HPKWFUVJUUIUUJUUKVBUVEVVCUVEVVCUVEUXAQFULOIZVVCUAIUVEVVIUXAFWPTZUVEUXAUXB
      FWPUVEUXAUVEUXAUXDUUNUUOGUULUVEUXAQWNUCZIVULVVIVVJXCUVEUXALVVKUVEUXAUXDVM
      UUPUUMVUMUXAQFUUQYKYLUXAFUURVFZXPUUSYSUVEVVCVVLUUTUVAUVBUVEAUVNJCBEUXQUWF
      UXPVUQVVAUVCUVD $.

    $( Lemma for ~ basel .  Using the binomial theorem and de Moivre's formula,
       we have the identity ` _e ^ _i N x / ( sin x ) ^ n = `
       ` sum_ m e. ( 0 ... N ) ( N _C m ) ( _i ^ m ) ( cot x ) ^ ( N - m ) ` ,
       so taking imaginary parts yields ` sin ( N x ) / ( sin x ) ^ N = `
       ` sum_ j e. ( 0 ... M ) ( N _C 2 j ) ( -u 1 ) ^ ( M - j ) `
       ` ( cot x ) ^ ( -u 2 j ) = P ( ( cot x ) ^ 2 ) ` , where
       ` N = 2 M + 1 ` .  (Contributed by Mario Carneiro, 30-Jul-2014.) $)
    basellem3 $p |- ( ( M e. NN /\ A e. ( 0 (,) ( _pi / 2 ) ) ) ->
      ( P ` ( ( tan ` A ) ^ -u 2 ) ) =
        ( ( sin ` ( N x. A ) ) / ( ( sin ` A ) ^ N ) ) ) $=
      ( wcel cc0 c2 co c1 cmin cexp ci cmul caddc cc wceq vm vk cn cdiv cioo wa
      cpi cfz cbc ctan cfv csu cim ccos csin cneg cn0 crp tanrpcl adantl ax-icn
      cv rpcnd a1i sylancr syl3anc cr recoscld recnd resincld mulcl clt gt0ne0d
      wbr divdird syl2anc oveq2d oveq12d eqtrd oveq1d cz 3eqtr3d nnred remulcld
      wne rpne0d 3eqtrd eqtr3d fveq2d oveq2 2nn0 elfznn0 nn0mulcl nn0red adantr
      fzfid cle wb ad2antrr 2re 2pos mpbid mpbird syl ex nncnd 2cn elfzelz zcnd
      ad2antrl simprr 2cnne0 fvmpt fznn0sub reexpcl syl2an mulcld sylan2 oveq1i
      ovex wo nn0re nn0ge0 divge0 mpanr12 nn0cnd 2ne0 neg1rr eqeltrrd expr 1cnd
      i2 syl5eq 2cnd nncand nn0zd sylancl mulassd 3eqtr4d rerpdivcld 2nn nnnn0d
      rpreccld simpl nnmulcl peano2nnd syl5eqel binom addcld sincosq1sgn simpld
      elioore expdivd simprd tanval recdivd eqtr2d divcan4d nnzd demoivre elrpd
      rpexpcld divassd cmpt crn wf1o elfzle2 nnre pm3.2i lemul2 lep1d syl6breqr
      wf1 letrd cuz nn0uz syl6eleq elfz5 fznn0sub2 ssriv sseldi subcanad mulcan
      bitrd dom2lem f1f1orn eqid wss f1f frn sselda bccl2 rprecred expcl syldan
      wf imcld fsumf1o cdif eldifi wn eldif zeo elnn0z sylanbrc mp3an12 divcan2
      expmul mp3an23 syl5eqr peano2re subge02d ltp1d lelttrd df-2 eqtr2i oveq2i
      2t1e2 addassd nncn adddid 3eqtr4a breqtrd peano2zd zred ltdivmul pnpcan2d
      nnz peano2cn divsubdir divcan3d zsubcld eqeltrd zleltp1 0zd elfz divcan2d
      mpbir2and wfn ffn fnfvelrn orim12d mpd orcomd ord impr reim0d fsumss bccl
      sylan2b znegcl ax-mp rpexpcl addid2d mul12d bccmpl expneg mulneg1 exprecd
      rpred expmulz syl22anc 3eqtr2d addsubd subdid eqtr4d expp1 expmuld syl6eq
      2z mulcom mulcomd 3eqtr2rd 0re crim sumeq2dv fsumim oveq1 sumeq2sdv sumex
      crimd ) EUCIZBJUGKUDLZUELIZUFZJFUHLZFUAVBZUILZMBUJUKZUDLZFVWGNLZOLZPVWGOL
[encoded data, 6640 characters]
      WEVXBVXDVWEVWSVXAWULWUOYTVWEVXCVXAWUMWUOYTVWAWB $.

    basel.t $e |- T = ( n e. ( 1 ... M ) |->
      ( ( tan ` ( ( n x. _pi ) / N ) ) ^ -u 2 ) ) $.
    $( Lemma for ~ basel .  By ~ basellem3 , the expression
       ` P ( ( cot x ) ^ 2 ) = sin ( N x ) / ( sin x ) ^ N ` goes to zero
       whenever ` x = n _pi / N ` for some ` n e. ( 1 ... M ) ` , so this
       function enumerates ` M ` distinct roots of a degree- ` M ` polynomial,
       which must therefore be all the roots by ~ fta1 .  (Contributed by Mario
       Carneiro, 28-Jul-2014.) $)
    basellem4 $p |- ( M e. NN ->
      T : ( 1 ... M ) -1-1-onto-> ( `' P " { 0 } ) ) $=
      ( wcel co cc0 cfv wceq cpi c2 wa cr wbr vx vy vk vm cfz ccnv csn cima wf1
      cn c1 wf1o wf cv weq wi wral cmul cdiv ctan cneg cexp cc crp cz basellem1
      cioo tanrpcl syl znegcl ax-mp rpexpcl sylancl rpcnd csin basellem3 syldan
      2z elfzelz adantl zred pire remulcl recnd caddc 2nn nnmulcl mpan syl5eqel
      adantr nncnd nnne0d divcan2d fveq2d sinkpi eqtrd oveq1d nndivred resincld
      peano2nnd nnnn0d expcld clt ccos sincosq1sgn simpld gt0ne0d expne0d div0d
      nnzd 3eqtrd wfn wb cply cdgr ccoe cn0 fmptd fveq2 sseli ad2antrl ad2antll
      cbc a1i syl112anc mpbid cle sseldi syl2anc rprege0 oveq1 ovex 2nn0 expneg
      fvmpt cfn cdom chash c0p wne cmin cmpt basellem2 simp1d plyf ffn fniniseg
      mpbir2and ssriv rpred ffvelrnda simplr pipos ltmul1 ad2antrr nnred nngt0d
      3syl ltdiv1 cxr wss neghalfpirx pirp rphalfcl rpge0 mp2b halfpire le0neg2
      mpbi iooss1 mp2an ad2ant2r ad2ant2rl tanord lt2sq syl2an 3brtr4d an32s ex
      ltrecd eqord2 biimprd ralrimivva dff13 sylanbrc simp2d nnne0 eqnetrd dgr0
      syl6eq necon3i eqid fta1 f1domg simprd nnnn0 hashfz1 eqtr4d breqtrd fzfid
      cen sylc hashdom sbth f1finf1o ) FUJKZUKFUELZBUFMUGUHZCUIZUXGUXHCULZUXFUX
      GUXHCUMUAUNZCNZUBUNZCNZOZUAUBUOZUPZUBUXGUQUAUXGUQUXIUXFEUXGEUNZPURLZGUSLZ
      UTNZQVAZVBLZUXHCUXFUXRUXGKZRZUYCUXHKZUYCVCKZUYCBNZMOZUYEUYCUYEUYAVDKZUYBV
      EKZUYCVDKUYEUXTMPQUSLZVGLZKZUYJUXRFGHVFZUXTVHVIQVEKZUYKVRQVJVKUYAUYBVLVMZ
      VNUYEUYHGUXTURLZVONZUXTVONZGVBLZUSLZMVUAUSLMUXFUYDUYNUYHVUBOUYOAUXTBDFGHI
      VPVQUYEUYSMVUAUSUYEUYSUXSVONZMUYEUYRUXSVOUYEUXSGUYEUXSUYEUXRSKPSKZUXSSKUY
      EUXRUYDUXRVEKZUXFUXRUKFVSZVTZWAWBUXRPWCVMZWDUYEGUXFGUJKZUYDUXFGQFURLZUKWE
      LUJHUXFVUJQUJKUXFVUJUJKWFQFWGWHWTWIZWJZWKUYEGVULWLWMWNUYEVUEVUCMOVUGUXRWO
      VIWPWQUYEVUAUYEUYTGUYEUYTUYEUXTUYEUXSGVUHVULWRWSWDZUYEGVULXAXBUYEUYTGVUMU
      YEUYTUYEMUYTXCTZMUXTXDNXCTZUYEUYNVUNVUORUYOUXTXEVIXFXGUYEGVULXJXHXIXKUYEB
      VCXLZUYFUYGUYIRXMUXFVUPUYDUXFBVCXNNKZVCVCBUMVUPUXFVUQBXONZFOZBXPNEXQGQUXR
      URLYCLUKVAFUXRUUALVBLURLUUBOZABDEFGHIUUCZUUDZVCBUUEVCVCBUUFUURWJVCMUYCBUU
      GVIUUHJXRUXFUXQUAUBUXGUXGUXFUXKUXGKUXMUXGKRRUXPUXOUXFUCUDUCUNZCNZUDUNZCNZ
      UXKUXMUXGUXLUXNVVCVVECXSVVCUXKCXSVVCUXMCXSEUXGSUYDUXRVUFWAUUIZUXFUXGSVVCC
      UXFEUXGUYCSCUYEUYCUYQUUJJXRUUKUXFVVCUXGKZVVEUXGKZRZRVVCVVEXCTZVVFVVDXCTZU
      XFVVKVVJVVLUXFVVKRZVVJRZUKVVEPURLZGUSLZUTNZQVBLZUSLZUKVVCPURLZGUSLZUTNZQV
      BLZUSLZVVFVVDXCVVNVWCVVRXCTZVVSVWDXCTVVNVWBVVQXCTZVWEVVNVWAVVPXCTZVWFVVNV
      VTVVOXCTZVWGVVNVVKVWHUXFVVKVVJUULVVNVVCSKZVVESKZVUDMPXCTZVVKVWHXMVVHVWIVV
      MVVIUXGSVVCVVGXTYAZVVIVWJVVMVVHUXGSVVEVVGXTYBZVUDVVNWBYDVWKVVNUUMYDVVCVVE
      PUUNYEYFVVNVVTSKZVVOSKZGSKMGXCTVWHVWGXMVVNVWIVUDVWNVWLWBVVCPWCVMVVNVWJVUD
      VWOVWMWBVVEPWCVMVVNGUXFVUIVVKVVJVUKUUOZUUPVVNGVWPUUQVVTVVOGUUSYEYFVVNVWAU
      YLVAZUYLVGLZKVVPVWRKVWGVWFXMVVNUYMVWRVWAVWQUUTKVWQMYGTZUYMVWRUVAUVBMUYLYG
      TZVWSPVDKUYLVDKVWTUVCPUVDUYLUVEUVFUYLSKVWTVWSXMUVGUYLUVHVKUVIVWQMUYLUVJUV
      KZUXFVVHVWAUYMKZVVKVVIVVCFGHVFUVLZYHVVNUYMVWRVVPVXAUXFVVIVVPUYMKZVVKVVHVV
      EFGHVFUVMZYHVWAVVPUVNYIYFVVNVWBVDKZVVQVDKZVWFVWEXMZVVNVXBVXFVXCVWAVHVIZVV
      NVXDVXGVXEVVPVHVIZVXFVWBSKMVWBYGTRVVQSKMVVQYGTRVXHVXGVWBYJVVQYJVWBVVQUVOU
      VPYIYFVVNVWCVVRVVNVXFUYPVWCVDKVXIVRVWBQVLVMVVNVXGUYPVVRVDKVXJVRVVQQVLVMUV
      TYFVVNVVFVVQUYBVBLZVVSVVIVVFVXKOVVMVVHEVVEUYCVXKUXGCEUDUOZUYAVVQUYBVBVXLU
      XTVVPUTVXLUXSVVOGUSUXRVVEPURYKWQWNWQJVVQUYBVBYLYOYBVVNVVQVCKQXQKZVXKVVSOV
      VNVVQVXJVNYMVVQQYNVMWPVVNVVDVWBUYBVBLZVWDVVHVVDVXNOVVMVVIEVVCUYCVXNUXGCEU
      CUOZUYAVWBUYBVBVXOUXTVWAUTVXOUXSVVTGUSUXRVVCPURYKWQWNWQJVWBUYBVBYLYOYAVVN
      VWBVCKVXMVXNVWDOVVNVWBVXIVNYMVWBQYNVMWPUVQUVRUVSUWAUWBUWCUAUBUXGUXHCUWDUW
      EZUXFUXGUXHUXATZUXHYPKZUXIUXJXMUXFUXGUXHYQTZUXHUXGYQTZVXQUXFVXRUXIVXSUXFV
      XRUXHYRNZVURYGTZUXFVUQBYSYTZVXRVYBRVVBUXFVURMYTVYCUXFVURFMUXFVUQVUSVUTVVA
      UWFZFUWGUWHBYSVURMBYSOVURYSXONMBYSXOXSUWIUWJUWKVIUXHVCBUXHUWLUWMYIZXFZVXP
      UXGUXHYPCUWNUXBUXFVYAUXGYRNZYGTZVXTUXFVYAVURVYGYGUXFVXRVYBVYEUWOUXFVURFVY
      GVYDUXFFXQKVYGFOFUWPFUWQVIUWRUWSUXFVXRUXGYPKVYHVXTXMVYFUXFUKFUWTUXHUXGYPU
      XCYIYFUXGUXHUXDYIVYFUXGUXHCUXEYIYF $.

    $( Lemma for ~ basel .  Using ~ vieta1 , we can calculate the sum of the
       roots of ` P ` as the quotient of the top two coefficients, and since
       the function ` T ` enumerates the roots, we are left with an equation
       that sums the ` cot ^ 2 ` function at the ` M ` different roots.
       (Contributed by Mario Carneiro, 29-Jul-2014.) $)
    basellem5 $p |- ( M e. NN -> sum_ k e. ( 1 ... M )
      ( ( tan ` ( ( k x. _pi ) / N ) ) ^ -u 2 ) =
      ( ( ( 2 x. M ) x. ( ( 2 x. M ) - 1 ) ) / 6 ) ) $=
      ( wcel c1 cmin co cdiv cmul c2 cc wceq vx cn ccnv cc0 csn cima cv csu cfv
      cdgr ccoe cneg cfz cpi ctan cexp eqid cply cn0 cbc basellem2 simp1d chash
      c6 cmpt simp2d nnnn0 hashfz1 syl cen wbr wf1o basellem4 ovex f1oen cfn wb
      fzfid cle c0p wne wa nnne0 eqnetrd fveq2 dgr0 syl6eq necon3i fta1 syl2anc
      simpld hashen mpbird 3eqtr2rd id eqeltrd vieta1 oveq1 oveq1d fveq2d fvmpt
      adantl cdm cnvimass plyf fdm 3syl syl5sseq sselda fsumf1o fveq12d nnm1nn0
      wf oveq2 oveq2d oveq12d ax-1cn sylancl neg1cn ax-mp cz sylancr 3eqtrd cuz
      caddc nnred nnuz syl6eleq elfz5 bccl2 nncnd eqtrd nnne0d c3 bcm1k nndivre
      cr recnd a1i 3eqtr3d simp3d nncn exp1 2nn nnmulcl mpan peano2nnd syl5eqel
      nncan nnnn0d 2z nnz peano2zm zmulcl bccl nn0cnd mulcom mulm1d negcld exp0
      subidd 1eluzge0 fzss1 lep1d syl6breqr nnzd sseldi mulid1d divnegd negnegd
      wss negeqd 1cnd pnncand oveq1i df-2 3eqtr4g 2nn0 syl6eqel 2timesd addsubd
      nn0sub mpancom 2timesi eqcomi oveq2i subsub4d 2cnd subdid 3eqtr4a subsubd
      nn0nnaddcl df-3 syl6eqr 3re 2re mulassd divmuldivd 3t2e6 mulcomd nnmulcld
      3cn 6re eqeltrrd nn0red ltm1d eqbrtrrd ltled letrd nn0uz divcan3d recdivd
      clt 6cn 6nn nnne0i recdiv mpanl12 ) GUBLZBUCUDUEZUFZUAUGZUAUHBUJUIZMNOZBU
      KUIZUIZUYCUYEUIZPOULZMGUMOZEUGZUNQOZHPOZUOUIZRULZUPOZEUHRGQOZUYPMNOZQOZVD
      POZUXSUAUYEUYASBUYCUYEUQUYCUQUYAUQZUXSBSURUILZUYCGTZUYEFUSHRFUGZQOZUTOZMU
      LZGVUCNOZUPOZQOZVEZTZABDFGHIJVAZVBZUXSUYCGUYIVCUIZUYAVCUIZUXSVUAVUBVUKVUL
      VFZUXSGUSLZVUNGTGVGZGVHVIUXSVUNVUOTZUYIUYAVJVKZUXSUYIUYACVLVUTABCDFGHIJKV
      MZUYIUYACMGUMVNVOVIUXSUYIVPLUYAVPLZVUSVUTVQUXSMGVRZUXSVVBVUOUYCVSVKZUXSVU
      ABVTWAZVVBVVDWBVUMUXSUYCUDWAVVEUXSUYCGUDVUPGWCWDBVTUYCUDBVTTUYCVTUJUIUDBV
      TUJWEWFWGWHVIUYASBUYTWIWJWKUYIUYAWLWJWMWNUXSUYCGUBVUPUXSWOWPWQUXSUYAUYBUY
      IUYOUAECUYOUYBUYOTWOVVCVVAUYJUYILUYJCUIUYOTUXSFUYJVUCUNQOZHPOZUOUIZUYNUPO
      UYOUYICVUCUYJTZVVHUYMUYNUPVVIVVGUYLUOVVIVVFUYKHPVUCUYJUNQWRWSWTWSKUYMUYNU
      PVNXAXBUXSUYASUYBUXSBXCZUYASBUXTXDUXSVUASSBXMVVJSTVUMSBXESSBXFXGXHXIXJUXS
      UYHUYFULZUYGPOHRGMNOZQOZUTOZHUYPUTOZPOZUYSUXSUYFUYGUXSUYFVVNULZSUXSUYFVVL
      VUJUIZVVNVUFGVVLNOZUPOZQOZVVQUXSUYDVVLUYEVUJUXSVUAVUBVUKVULUUAZUXSUYCGMNV
      UPWSXKUXSVVLUSLZVVRVWATGXLZFVVLVUIVWAUSVUJVUCVVLTZVUEVVNVUHVVTQVWEVUDVVMH
      UTVUCVVLRQXNXOVWEVUGVVSVUFUPVUCVVLGNXNXOXPVUJUQZVVNVVTQVNXAVIUXSVWAVVNVUF
      QOZVUFVVNQOZVVQUXSVVTVUFVVNQUXSVVTVUFMUPOZVUFUXSVVSMVUFUPUXSGSLMSLVVSMTGU
      UBZXQGMUUIXRXOVUFSLZVWIVUFTXSVUFUUCXTWGXOUXSVVNSLVWKVWGVWHTUXSVVNUXSHUSLZ
      VVMYALZVVNUSLUXSHUXSHUYPMYEOZUBIUXSUYPRUBLUXSUYPUBLZUUDRGUUEUUFZUUGUUHZUU
      JZUXSRYALVVLYALZVWMUUKUXSGYALVWSGUULGUUMVIRVVLUUNYBVVMHUUOWJUUPZXSVVNVUFU
      UQXRUXSVVNVWTUURYCYCZUXSVVNVWTUUSWPUXSUYGVVOSUXSUYGGVUJUIZVVOVUFGGNOZUPOZ
      QOZVVOUXSUYCGUYEVUJVWBVUPXKUXSVUQVXBVXETVURFGVUIVXEUSVUJVUCGTZVUEVVOVUHVX
      DQVXFVUDUYPHUTVUCGRQXNXOVXFVUGVXCVUFUPVUCGGNXNXOXPVWFVVOVXDQVNXAVIUXSVXEV
      VOMQOVVOUXSVXDMVVOQUXSVXDVUFUDUPOZMUXSVXCUDVUFUPUXSGVWJUVAXOVWKVXGMTXSVUF
      UUTXTWGXOUXSVVOUXSVVOUXSUYPUDHUMOZLVVOUBLUXSMHUMOZVXHUYPMUDYDUIZLVXIVXHUV
      KUVBMUDHUVCXTUXSUYPVXILZUYPHVSVKZUXSUYPVWNHVSUXSUYPUXSUYPVWPYFUVDIUVEUXSU
      YPMYDUIZLHYALZVXKVXLVQUXSUYPUBVXMVWPYGYHUXSHVWQUVFZUYPMHYIWJWMZUVGUYPHYJV
      IZYKZUVHYLYCZVXRWPUXSUYGVVOUDVXSUXSVVOVXQYMZWDUVIUXSVVKVVNUYGVVOPUXSVVKVV
      QULVVNUXSUYFVVQVXAUVLUXSVVNVWTUVJYLVXSXPUXSMVVOVVNPOZPOMVDUYRPOZPOZVVPUYS
      UXSVYAVYBMPUXSVYAVVNVYBQOZVVNPOVYBUXSVVOVYDVVNPUXSVVOVVNYNUYQPOZRUYPPOZQO
      ZQOZVYDUXSVVOHUYQUTOZHUYQNOZUYPPOZQOZVVNVYEQOZVYFQOVYHUXSVXKVVOVYLTVXPUYP
      HYOVIUXSVYIVYMVYKVYFQUXSVYIHUYQMNOZUTOZHVYNNOZUYQPOZQOZVYMUXSUYQVXILZVYIV
      YRTUXSVYSUYQHVSVKZUXSVYTVYJUSLZUXSVYJRUSUXSVWNUYQNOMMYEOZVYJRUXSUYPMMUXSU
      YPVWPYKZUXSUVMZWUDUVNHVWNUYQNIUVOUVPUVQZUVRUVSUXSUYQUSLZVWLVYTWUAVQUXSVWO
      WUFVWPUYPXLVIVWRUYQHUWBWJWMZUXSUYQVXMLVXNVYSVYTVQUXSUYQUBVXMUXSUYQVVLGYEO
      ZUBUXSUYQGGYEOZMNOWUHUXSUYPWUIMNUXSGVWJUVTWSUXSGGMVWJVWJWUDUWAYLVWCUXSWUH
      UBLVWDVVLGUWLUWCWPZYGYHVXOUYQMHYIWJWMUYQHYOVIUXSVYOVVNVYQVYEQUXSVYNVVMHUT
      UXSUYPWUBNOUYPRMQOZNOVYNVVMWUBWUKUYPNWUKWUBMXQUWDUWEUWFUXSUYPMMWUCWUDWUDU
      WGUXSRGMUXSUWHZVWJWUDUWIUWJZXOUXSVYPYNUYQPUXSVYPVYJMYEOZYNUXSHUYQMUXSHVWQ
      YKUXSUYQWUJYKZWUDUWKUXSWUNRMYEOYNUXSVYJRMYEWUEWSUWMUWNYLWSXPYLUXSVYJRUYPP
      WUEWSXPUXSVVNVYEVYFVWTUXSVYEUXSYNYQLUYQUBLZVYEYQLUWOWUJYNUYQYPYBYRUXSVYFU
      XSRYQLVWOVYFYQLUWPVWPRUYPYPYBYRUWQYCUXSVYGVYBVVNQUXSVYGYNRQOZUYQUYPQOZPOV
      YBUXSYNUYQRUYPYNSLUXSUXBYSWUOWULWUCUXSUYQWUJYMUXSUYPVWPYMUWRUXSWUQVDWURUY
      RPWUQVDTUXSUWSYSUXSUYQUYPWUOWUCUWTXPYLXOYLWSUXSVYBVVNUXSVYBUXSVDYQLUYRUBL
      VYBYQLUXCUXSUYPUYQVWPWUJUXAZVDUYRYPYBYRVWTUXSVVNUXSVVMVXHLZVVNUBLUXSWUTVV
      MHVSVKZUXSVVMUYQHUXSVVMUXSVYNVVMUSWUMUXSWUPVYNUSLWUJUYQXLVIUXDZUXEZUXSUYQ
      WUJYFZUXSHVWQYFUXSVVMUYQWVCWVDUXSVYNVVMUYQUXMWUMUXSUYQWVDUXFUXGUXHWUGUXIU
      XSVVMVXJLVXNWUTWVAVQUXSVVMUSVXJWVBUXJYHVXOVVMUDHYIWJWMVVMHYJVIYMZUXKYLXOU
      XSVVOVVNVXRVWTVXTWVEUXLUXSUYRSLZUYRUDWAZVYCUYSTZUXSUYRWUSYKUXSUYRWUSYMVDS
      LVDUDWAWVFWVGWBWVHUXNVDUXOUXPVDUYRUXQUXRWJYTYCYT $.
  $}

  ${
    $d k n x y F $.  $d k x y z G $.  $d k x y z H $.  $d j k n x M $.
    $d k x y A $.  $d k n y J $.  $d k x y K $.  $d j k n x N $.
    basel.g $e |- G = ( n e. NN |-> ( 1 / ( ( 2 x. n ) + 1 ) ) ) $.
    $( Lemma for ~ basel .  The function ` G ` goes to zero because it is
       bounded by ` 1 / n ` .  (Contributed by Mario Carneiro, 28-Jul-2014.) $)
    basellem6 $p |- G ~~> 0 $=
      ( vk cc0 wbr wtru cn c1 cdiv co cvv wcel c2 cmul caddc cr wceq adantl cle
      cli cv cmpt nnuz 1zzd cc ax-1cn divcnv mp1i nnex mptex eqeltri a1i wa cfv
      oveq2 eqid ovex fvmpt nnrecre eqeltrd oveq1d oveq2d 2nn nnmulcl peano2nnd
      sylan nnrecred nnre nnred cn0 nnnn0 nn0addge1 syl2anc recnd 2timesd lep1d
      breqtrrd letrd clt nngt0 nngt0d lerec syl22anc mpbid 3brtr4d nnrpd rpge0d
      wb rpreccld climsqz2 trud ) BEUAFGEDAHIAUBZJKZUCZBILHUDGUEIUFMWOEUAFGUGIA
      UHUIBLMGBAHINWMOKZIPKZJKZUCLCAHWRUJUKULUMGDUBZHMZUNZWSWOUOZIWSJKZQWTXBXCR
      GAWSWNXCHWOWMWSIJUPWOUQIWSJURUSSZWTXCQMGWSUTSVAXAWSBUOZINWSOKZIPKZJKZQWTX
      EXHRGAWSWRXHHBWMWSRZWQXGIJXIWPXFIPWMWSNOUPVBVCCIXGJURUSSZXAXGXAXFGNHMZWTX
      FHMXKGVDUMNWSVEVGZVFZVHVAXAXHXCXEXBTXAWSXGTFZXHXCTFZXAWSXFXGWTWSQMZGWSVIS
      ZXAXFXLVJZXAXGXMVJZXAWSWSWSPKZXFTXAXPWSVKMZWSXTTFXQWTYAGWSVLSWSWSVMVNXAWS
      XAWSXQVOVPVRXAXFXRVQVSXAXPEWSVTFZXGQMEXGVTFXNXOWIXQWTYBGWSWASXSXAXGXMWBWS
      XGWCWDWEXJXDWFXAEXHXETXAXHXAXGXAXGXMWGWJWHXJVRWKWL $.

    ${
      basellem7.2 $e |- A e. CC $.
      $( Lemma for ~ basel .  The function ` 1 + A x. G ` for any fixed ` A `
         goes to ` 1 ` .  (Contributed by Mario Carneiro, 28-Jul-2014.) $)
      basellem7 $p |- ( ( NN X. { 1 } ) oF +
        ( ( NN X. { A } ) oF x. G ) ) ~~> 1 $=
        ( cn c1 cmul co caddc cc0 cli wbr wtru cvv cc wcel cfv a1i wf vk vx csn
        cxp cof nnuz 1zzd ax-1cn cuz eqimss2i nnex climconst2 sylancr basellem6
        vy cz ovexd cv wss elexi fconst snssd fss ffvelrnda c2 cdiv 2nn nnmulcl
        wa sylan peano2nnd nnrecred recnd fmptd wfn ffn syl inidm eqidd climmul
        ofval mul01i syl6breq 1ex mulcl adantl off climadd trud 1p0e1 breqtri )
        FGUCZUDZFAUCZUDZCHUEZIZJUEZIZGKJIZGLWSWTLMNGKUAWMWQWSGOFUFNUGZNGPQZGUPQ
        ZWMGLMUHXAGGFFGUIRUFUJZUKULUMNWMWQWRUQNWQAKHIKLNAKUAWOCWQGOFUFXANAPQZXC
        WOALMEXAAGFXDUKULUMNWOCWPUQCKLMNBCDUNSNFPUAURZWONFWNWOTWNPUSFPWOTZFAAPE
        UTVANAPXENESVBFWNPWOVCUMZVDNFPXFCNBFGVEBURZHIZGJIZVFIZPCNXIFQZVIZXLXNXK
        XNXJNVEFQZXMXJFQXONVGSVEXIVHVJVKVLVMDVNZVDNFFXFWORZXFCRZHFWOCOOXFNXGWOF
        VOXHFPWOVPVQNFPCTCFVOXPFPCVPVQFOQNUKSZXSFVRZNXFFQVIZXQVSYAXRVSWAVTAEWBW
        CNFPXFWMNFWLWMTZWLPUSFPWMTFGWDVAZNGPXBNUHSVBFWLPWMVCUMVDNFPXFWQNUBUOFFF
        HPPPWOCOOUBURZPQUOURZPQVIYDYEHIPQNYDYEWEWFXHXPXSXSXTWGZVDNFFXFWMRZXFWQR
        ZJFWMWQOOXFNYBWMFVOYBNYCSFWLWMVPVQNFPWQTWQFVOYFFPWQVPVQXSXSXTYAYGVSYAYH
        VSWAWHWIWJWK $.
    $}

    basel.f $e |- F = seq 1 ( + , ( n e. NN |-> ( n ^ -u 2 ) ) ) $.
    basel.h $e |- H = ( ( NN X. { ( ( _pi ^ 2 ) / 6 ) } ) oF x.
                        ( ( NN X. { 1 } ) oF - G ) ) $.
    basel.j $e |- J = ( H oF x.
      ( ( NN X. { 1 } ) oF + ( ( NN X. { -u 2 } ) oF x. G ) ) ) $.
    basel.k $e |- K = ( H oF x. ( ( NN X. { 1 } ) oF + G ) ) $.
    ${
      basellem8.n $e |- N = ( ( 2 x. M ) + 1 ) $.
      $( Lemma for ~ basel .  The function ` F ` of partial sums of the inverse
         squares is bounded below by ` J ` and above by ` K ` , obtained by
         summing the inequality ` cot ^ 2 x <_ 1 / x ^ 2 <_ `
         ` csc ^ 2 x = cot ^ 2 x + 1 ` over the ` M ` roots of the polynomial
         ` P ` , and applying the identity ~ basellem5 .  (Contributed by Mario
         Carneiro, 29-Jul-2014.) $)
      basellem8 $p |- ( M e. NN ->
        ( ( J ` M ) <_ ( F ` M ) /\ ( F ` M ) <_ ( K ` M ) ) ) $=
        ( wcel c1 co cdiv cmul caddc vk vx vj cn cfv cle wbr cfz cpi c2 cexp cv
        ctan cneg csu wa cr pire sylancr resqcld adantr cc0 crp rpred rpne0d cz
        syl 2z a1i reexpclzd remulcld nnne0d cn0 wceq recnd 2nn0 expneg sylancl
        cc oveq2d sqcld rpexpcl divrecd eqtr4d 2cn oveq2i nncnd oveq1d nncn wne
        recni jca eqtrd 3eqtr4d clt simpld elrpd rpge0d mpbid eqbrtrd fsumle c6
        ltled cmin syl6eqr oveq12d csn cxp cof cmpt cvv ovexd fconstmpt offval2
        wtru syl5eq trud eqtri ovex fvmpt divcld ax-1cn mulassd oveq1i 3eqtr3rd
        1cnd dividd divdird df-2 6cn mulcld divmuldiv syl22anc sqdivd fsummulc2
        divmuldivd eqid 3eqtrd 3brtr4d c3 fzfid nnmulcl mpan peano2nnd syl5eqel
        nndivre cioo basellem1 tanrpcl znegcl ax-mp elfznn adantl nnred negnegi
        2nn nnrpd expnegd syl5reqr nnne0 expclzd expne0d divrec2d divass sqmuld
        syl3anc elioore tangtx eliooord lt2sqd lediv23d nnex resqcli 6re nnne0i
        oveq2 6nn redivcli 1zzd negcli subcl divsubdird negsub oveq12i pnpcan2d
        pncan nnsqcld mulcom pm3.2i sqvald cbc basellem5 cseq oveq1 cuz id nnuz
        syl6eleq fsumser fveq1i syl6reqr csin resincld ccos sincosq1sgn gt0ne0d
        sinltx wi 0re ltle le2sqd breqtrrd lemuldiv2d lemuldivd bitr3d peano2cn
        mpd eqtr2d recoscld sincossq simprd tanval syl2anc sqne0 mpbird recdivd
        3eqtrrd 3eqtr3d addcom sumeq2dv fsumadd chash fsumconst hashfz1 mulid1d
        wb cfn nnnn0 adddid df-3 pncan3oi 3eqtri subadd23d addassd 3eqtr4a 2cnd
        3cn mul32d 3t2e6 mulcomi eqtr3i mulcl divcan3d ) GUDOZGEUEZGBUEZUFUGVUP
[encoded data, 6880 characters]
        $.
    $}

    $( Lemma for ~ basel .  Since by ~ basellem8 ` F ` is bounded by two
       expressions that tend to ` _pi ^ 2 / 6 ` , ` F ` must also go to
       ` _pi ^ 2 / 6 ` by the squeeze theorem ~ climsqz .  But the series ` F `
       is exactly the partial sums of ` k ^ -u 2 ` , so it follows that this is
       also the value of the infinite sum ` sum_ k e. NN ( k ^ -u 2 ) ` .
       (Contributed by Mario Carneiro, 28-Jul-2014.) $)
    basellem9 $p |- sum_ k e. NN ( k ^ -u 2 ) = ( ( _pi ^ 2 ) / 6 ) $=
      ( cn co wtru c1 wcel cr cmul cvv vx vy vz cv c2 cneg cexp csu cpi c6 cdiv
      wceq cmpt nnuz 1zzd cfv oveq1 eqid ovex fvmpt adantl wa nnre nnne0 znegcl
      cz ax-mp a1i reexpclzd fmptd ffvelrnda eqeltrrd recnd cc0 caddc cseq cmin
      2z cli cof wf serfre feq1i sylibr csn cxp remulcl wss fconst pire resqcli
      6re 6nn redivcli snssd fss sylancr resubcl 1ex 1red 2nn nnmulcl peano2nnd
      sylan nnrecred nnex inidm off readdcl negex ovexd feqmptd offval2 3eqtr4d
      nnne0i cc c3 wbr recni climconst2 ax-resscn sylancl basellem7 wfn ffn syl
      recn fnconstg offn eqidd ofval climmul syl6breq syl5eqbr 3cn 2cn eqbrtrrd
      mul01i ofc1 cle zrei npcand mpteq2dva subdi syl3an caofdi oveq12i syl6eqr
      w3a cuz eqimss2i ofnegsub syl3anc syl6eqbrr mulid1i basellem6 3ex mulid2d
      neg1cn 3re mulneg1 negeqd mulcl negnegd eqtr2d oveq12d negsubd eqtrd df-3
      ax-1cn addcomi eqtri oveq1i 1cnd adddird syl5eq 3eqtr4rd basellem8 simprd
      pnpcand lesub1dd 3brtr4d simpld subge0d breqtrrd climsqz2 climadd addid2i
      mpbird 3brtr3g isumclim trud ) MAUDZUEUFZUGNZAUHUIUEUGNZUJUKNZULOUWOUWQAB
[encoded data, 4400 characters]
      YLMRUXNYEYFWUEVURVURVUSUXFVYRYJWUFYKUWGYQIUWQVWEUWHUWJUWKUWL $.
  $}

  ${
    $d k m n $.
    $( The sum of the inverse squares is ` _pi ^ 2 / 6 ` .  This is commonly
       known as the Basel problem, with the first known proof attributed to
       Euler.  See ~ http://en.wikipedia.org/wiki/Basel_problem .  This
       particular proof approach is due to Cauchy (1821).  This is Metamath 100
       proof #14.  (Contributed by Mario Carneiro, 30-Jul-2014.) $)
    basel $p |- sum_ k e. NN ( k ^ -u 2 ) = ( ( _pi ^ 2 ) / 6 ) $=
      ( vn vm caddc cn cv c2 cexp co cmpt c1 cseq cmul cdiv csn cxp cof cbvmptv
      wceq eqid cneg cpi cmin oveq2 oveq1d oveq2d oveq1 seqeq3 ax-mp basellem9
      c6 ) ABDCECFZGUAZHIZJZKLZCEKGULMIZKDIZNIZJZEUBGHIUKNIOPEKOPZUTUCQIMQZIZVC
      VAEUMOPUTVBIDQZIVBIZVCVAUTVDIVBIZCBEUSKGBFZMIZKDIZNIULVGSZURVIKNVJUQVHKDU
      LVGGMUDUEUFRUOBEVGUMHIZJZSUPDVLKLSCBEUNVKULVGUMHUGRDUOVLKUHUIVCTVETVFTUJ
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Number-theoretical functions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c theta $.
  $c Lam $.
  $c psi $.
  $c ppi $.
  $c mmu $.
  $c sigma $.

  $( Extend class notation with the first Chebyshev function. $)
  ccht $a class theta $.

  $( Extend class notation with the von Mangoldt function. $)
  cvma $a class Lam $.

  $( Extend class notation with the second Chebyshev function. $)
  cchp $a class psi $.

  $( Extend class notation with the prime-counting function pi. $)
  cppi $a class ppi $.

  $( Extend class notation with the M&ouml;bius function. $)
  cmu $a class mmu $.

  $( Extend class notation with the divisor function. $)
  csgm $a class sigma $.

  ${
    $d k n p s x $.
    $( Define the first Chebyshev function, which adds up the logarithms of all
       primes less than ` x ` , see definition in [ApostolNT] p. 75.  The
       symbol used to represent this function is sometimes the variant greek
       letter theta shown here and sometimes the greek letter psi, &psi;;
       however, this notation can also refer to the second Chebyshev function,
       which adds up the logarithms of prime powers instead, see ~ df-chp .
       See ~ https://en.wikipedia.org/wiki/Chebyshev_function for a discussion
       of the two functions.  (Contributed by Mario Carneiro, 15-Sep-2014.) $)
    df-cht $a |- theta = ( x e. RR |->
      sum_ p e. ( ( 0 [,] x ) i^i Prime ) ( log ` p ) ) $.

    $( Define the von Mangoldt function, which gives the logarithm of the prime
       at a prime power, and is zero elsewhere, see definition in [ApostolNT]
       p. 32.  (Contributed by Mario Carneiro, 7-Apr-2016.) $)
    df-vma $a |- Lam = ( x e. NN |-> [_ { p e. Prime | p || x } / s ]_
      if ( ( # ` s ) = 1 , ( log ` U. s ) , 0 ) ) $.

    $( Define the second Chebyshev function, which adds up the logarithms of
       the primes corresponding to the prime powers less than ` x ` , see
       definition in [ApostolNT] p. 75.  (Contributed by Mario Carneiro,
       7-Apr-2016.) $)
    df-chp $a |- psi = ( x e. RR |->
      sum_ n e. ( 1 ... ( |_ ` x ) ) ( Lam ` n ) ) $.

    $( Define the prime &pi; function, which counts the number of primes less
       than or equal to ` x ` , see definition in [ApostolNT] p. 8.
       (Contributed by Mario Carneiro, 15-Sep-2014.) $)
    df-ppi $a |- ppi = ( x e. RR |-> ( # ` ( ( 0 [,] x ) i^i Prime ) ) ) $.

    $( Define the M&ouml;bius function, which is zero for non-squarefree
       numbers and is ` -u 1 ` or ` 1 ` for squarefree numbers according as to
       the number of prime divisors of the number is even or odd, see
       definition in [ApostolNT] p. 24.  (Contributed by Mario Carneiro,
       22-Sep-2014.) $)
    df-mu $a |- mmu = ( x e. NN |-> if ( E. p e. Prime ( p ^ 2 ) || x , 0 ,
      ( -u 1 ^ ( # ` { p e. Prime | p || x } ) ) ) ) $.

    $( Define the sum of positive divisors function ` ( x sigma n ) ` , which
       is the sum of the xth powers of the positive integer divisors of n, see
       definition in [ApostolNT] p. 38.  For ` x = 0 ` , ` ( x sigma n ) `
       counts the number of divisors of ` n ` , i.e. ` ( 0 sigma n ) ` is _the_
       divisor function, see remark in [ApostolNT] p. 38.  (Contributed by
       Mario Carneiro, 22-Sep-2014.) $)
    df-sgm $a |- sigma = ( x e. CC , n e. NN |->
       sum_ k e. { p e. NN | p || n } ( k ^c x ) ) $.
  $}

  ${
    $d k x y z A $.  $d x y z B $.  $d k y z ph $.
    efnnfsumcl.1 $e |- ( ph -> A e. Fin ) $.
    efnnfsumcl.2 $e |- ( ( ph /\ k e. A ) -> B e. RR ) $.
    efnnfsumcl.3 $e |- ( ( ph /\ k e. A ) -> ( exp ` B ) e. NN ) $.
    $( Finite sum closure in the log-integers.  (Contributed by Mario Carneiro,
       7-Apr-2016.) $)
    efnnfsumcl $p |- ( ph -> ( exp ` sum_ k e. A B ) e. NN ) $=
      ( vx cv ce cfv cn wcel cr wa wceq fveq2 eleq1d elrab cc0 vy vz csu cc wss
      crab ssrab2 ax-resscn sstri a1i caddc co simpll readdcld cmul recnd efadd
      simprl syl2anc nnmulcl ad2ant2l eqeltrd sylanbrc syl2anb adantl c1 syl6eq
      0re 1nn ef0 mpbir2an fsumcllem simprbi syl ) ABCDUCZHIZJKZLMZHNUFZMZVOJKZ
      LMZAUAUBBCVSDVSUDUEAVSNUDVRHNUGUHUIUJUAIZVSMZUBIZVSMZOWCWEUKULZVSMZAWDWCN
      MZWCJKZLMZOZWENMZWEJKZLMZOZWHWFVRWKHWCNVPWCPVQWJLVPWCJQRSVRWOHWENVPWEPVQW
      NLVPWEJQRSWLWPOZWGNMWGJKZLMZWHWQWCWEWIWKWPUMZWLWMWOURZUNWQWRWJWNUOULZLWQW
      CUDMWEUDMWRXBPWQWCWTUPWQWEXAUPWCWEUQUSWKWOXBLMWIWMWJWNUTVAVBVRWSHWGNVPWGP
      VQWRLVPWGJQRSVCVDVEEADIBMOCNMCJKZLMZCVSMFGVRXDHCNVPCPVQXCLVPCJQRSVCTVSMZA
      XETNMVFLMZVHVIVRXFHTNVPTPZVQVFLXGVQTJKVFVPTJQVJVGRSVKUJVLVTVONMWBVRWBHVON
      VPVOPVQWALVPVOJQRSVMVN $.
  $}

  ${
    $d k n p q s x y z A $.  $d p K $.  $d p x M $.  $d p N $.  $d s x S $.
    $d k n p x y z B $.  $d p P $.
    $( The set of primes less than ` A ` expressed using a finite set of
       integers.  (Contributed by Mario Carneiro, 22-Sep-2014.) $)
    ppisval $p |- ( A e. RR ->
      ( ( 0 [,] A ) i^i Prime ) = ( ( 2 ... ( |_ ` A ) ) i^i Prime ) ) $=
      ( vx cr wcel cc0 cicc co cprime cin c2 cfv cuz sseldi syl cz cle inss1 wb
      wbr wss cfl cfz cv wa inss2 simpr prmuz2 prmz adantr w3a 0re simpl elicc2
      flcl sylancr mpbid simp3d flge syldan eluz2 syl3anbrc elfzuzb sylanbrc ex
      elind ssrdv wceq 2z fzval2 a1i id 0le2 flle iccss syl22anc syl5ss eqsstrd
      ssrin eqssd ) ACDZEAFGZHIZJAUAKZUBGZHIZVTBWBWEVTBUCZWBDZWFWEDVTWGUDZWDHWF
      WHWFJLKDZWCWFLKDZWFWDDWHWFHDZWIWHWBHWFWAHUEVTWGUFZMZWFUGNWHWFODZWCODZWFWC
      PSZWJWHWKWNWMWFUHNZVTWOWGAUNZUIWHWFAPSZWPWHWFCDZEWFPSZWSWHWFWADZWTXAWSUJZ
      WHWBWAWFWAHQWLMWHECDZVTXBXCRUKVTWGULEAWFUMUOUPUQVTWGWNWSWPRWQAWFURUSUPWFW
      CUTVAWFJWCVBVCWMVEVDVFVTWDWATWEWBTVTWDJWCFGZOIZWAVTJODWOWDXFVGVHWRJWCVIUO
      VTXFXEWAXEOQVTXDVTEJPSZWCAPSXEWATXDVTUKVJVTVKXGVTVLVJAVMEAJWCVNVOVPVQWDWA
      HVRNVS $.

    $( The set of primes less than ` A ` expressed using a finite set of
       integers.  (Contributed by Mario Carneiro, 22-Sep-2014.) $)
    ppisval2 $p |- ( ( A e. RR /\ 2 e. ( ZZ>= ` M ) ) ->
      ( ( 0 [,] A ) i^i Prime ) = ( ( M ... ( |_ ` A ) ) i^i Prime ) ) $=
      ( vx cr wcel c2 cuz cfv wa cc0 cicc co cprime cin cfl cfz ppisval wss syl
      wceq adantr fzss1 adantl ssrin cv simpr elin simprd prmuz2 simpld elfzuz3
      sylib elfzuzb sylanbrc elind ex ssrdv eqssd eqtrd ) ADEZFBGHEZIZJAKLMNZFA
      OHZPLZMNZBVDPLZMNZUTVCVFTVAAQUAVBVFVHVBVEVGRZVFVHRVAVIUTFBVDUBUCVEVGMUDSV
      BCVHVFVBCUEZVHEZVJVFEVBVKIZVEMVJVLVJFGHEZVDVJGHEZVJVEEVLVJMEZVMVLVJVGEZVO
      VLVKVPVOIVBVKUFVJVGMUGULZUHZVJUISVLVPVNVLVPVOVQUJVJBVDUKSVJFVDUMUNVRUOUPU
      QURUS $.

    $( The set of primes less than ` A ` is a finite set.  (Contributed by
       Mario Carneiro, 15-Sep-2014.) $)
    ppifi $p |- ( A e. RR -> ( ( 0 [,] A ) i^i Prime ) e. Fin ) $=
      ( cr wcel cc0 cicc co cprime cin c2 cfl cfv cfz cfn ppisval wss fzfi ssfi
      inss1 mp2an syl6eqel ) ABCDAEFGHIAJKZLFZGHZMANUBMCUCUBOUCMCIUAPUBGRUBUCQS
      T $.

    $( The set of prime divisors of a number is a finite set.  (Contributed by
       Mario Carneiro, 7-Apr-2016.) $)
    prmdvdsfi $p |- ( A e. NN -> { p e. Prime | p || A } e. Fin ) $=
      ( cn wcel c1 cfz co cfn cdvds wbr cprime crab wss fzfi prmnn ssriv rabss2
      cv ax-mp dvdsssfz1 syl5ss ssfi sylancr ) ACDZEAFGZHDBRZAIJZBKLZUEMUHHDEAN
      UDUHUGBCLZUEKCMUHUIMBKCUFOPUGBKCQSABTUAUEUHUBUC $.

    $( Domain and range of the Chebyshev function.  (Contributed by Mario
       Carneiro, 15-Sep-2014.) $)
    chtf $p |- theta : RR --> RR $=
      ( vx vp cr cc0 cv cicc co cprime cin clog cfv csu ccht df-cht ppifi wa cn
      wcel inss2 simpr sseldi prmnn syl nnrpd relogcld fsumrecl fmpti ) ACCDAEZ
      FGZHIZBEZJKZBLMABNUHCRZUJULBUHOUMUKUJRZPZUKUOUKUOUKHRUKQRUOUJHUKUIHSUMUNT
      UAUKUBUCUDUEUFUG $.

    $( Real closure of the Chebyshev function.  (Contributed by Mario Carneiro,
       15-Sep-2014.) $)
    chtcl $p |- ( A e. RR -> ( theta ` A ) e. RR ) $=
      ( cr ccht chtf ffvelrni ) BBACDE $.

    $( Value of the Chebyshev function.  (Contributed by Mario Carneiro,
       15-Sep-2014.) $)
    chtval $p |- ( A e. RR -> ( theta ` A ) =
      sum_ p e. ( ( 0 [,] A ) i^i Prime ) ( log ` p ) ) $=
      ( vx cc0 cv cicc co cprime cin clog cfv cr ccht wceq oveq2 ineq1d sumeq1d
      csu df-cht sumex fvmpt ) CADCEZFGZHIZBEJKZBRDAFGZHIZUEBRLMUBANZUDUGUEBUHU
      CUFHUBADFOPQCBSUGUEBTUA $.

    $( The Chebyshev function is closed in the log-integers.  (Contributed by
       Mario Carneiro, 22-Sep-2014.)  (Revised by Mario Carneiro,
       7-Apr-2016.) $)
    efchtcl $p |- ( A e. RR -> ( exp ` ( theta ` A ) ) e. NN ) $=
      ( vp cr wcel ccht cfv ce cc0 cicc co cprime cin cv clog csu chtval fveq2d
      cn ppifi eqeltrd wa inss2 simpr sseldi prmnn relogcld reeflogd efnnfsumcl
      syl nnrpd ) ACDZAEFZGFHAIJZKLZBMZNFZBOZGFRUKULUQGABPQUKUNUPBASUKUOUNDZUAZ
      UOUSUOUSUOKDUORDUSUNKUOUMKUBUKURUCUDUOUEUIZUJZUFUSUPGFUORUSUOVAUGUTTUHT
      $.

    $( The Chebyshev function is always positive.  (Contributed by Mario
       Carneiro, 15-Sep-2014.) $)
    chtge0 $p |- ( A e. RR -> 0 <_ ( theta ` A ) ) $=
      ( vp cr wcel cc0 cicc co cprime cin cv clog cfv csu ccht cle ppifi wa clt
      cn c1 wbr c2 cuz inss2 simpr sseldi prmuz2 syl eluz2b2 sylib simpld nnrpd
      relogcld nnred simprd rplogcld rpge0d fsumge0 chtval breqtrrd ) ACDZEEAFG
      ZHIZBJZKLZBMANLOVAVCVEBAPVAVDVCDZQZVDVGVDVGVDSDZTVDRUAZVGVDUBUCLDZVHVIQVG
      VDHDVJVGVCHVDVBHUDVAVFUEUFVDUGUHVDUIUJZUKZULUMVGVEVGVDVGVDVLUNVGVHVIVKUOU
      PUQURABUSUT $.

    ${
      vmaval.1 $e |- S = { p e. Prime | p || A } $.
      $( Value of the von Mangoldt function.  (Contributed by Mario Carneiro,
         7-Apr-2016.) $)
      vmaval $p |- ( A e. NN ->
        ( Lam ` A ) = if ( ( # ` S ) = 1 , ( log ` U. S ) , 0 ) ) $=
        ( vx vs cv cdvds wbr cprime crab chash cfv c1 wceq cuni clog cc0 cif cn
        csb cvma cvv wcel nnex prmnn ssriv ssexi rabex wa breq2 rabbidv syl6eqr
        id sylan9eqr fveq2d eqeq1d unieqd ifbieq1d csbied df-vma fvex c0ex ifex
        a1i fvmpt ) EAFCGZEGZHIZCJKZFGZLMZNOZVKPZQMZRSZUABLMZNOZBPZQMZRSZTUBVHA
        OZFVJVPWAUCVJUCUDWBVICJJTUECJTVGUFUGUHUIVEWBVKVJOZUJZVMVRVOVTRWDVLVQNWD
        VKBLWCWBVKVJBWCUNWBVJVGAHIZCJKBWBVIWECJVHAVGHUKULDUMUOZUPUQWDVNVSQWDVKB
        WFURUPUSUTEFCVAVRVTRVSQVBVCVDVF $.
    $}

    $( Two ways to say that ` A ` is a prime power.  (Contributed by Mario
       Carneiro, 7-Apr-2016.) $)
    isppw $p |- ( A e. NN ->
      ( ( Lam ` A ) =/= 0 <-> E! p e. Prime p || A ) ) $=
      ( cn wcel cvma cfv cc0 wne cv wbr cprime chash c1 wceq c1o cfn wb cvv syl
      c2 cdvds crab cuni clog cif wreu vmaval neeq1d cen reuen1 wa hash1 eqeq2i
      eqid prmdvdsfi com 1onn nnfi ax-mp hashen sylancl syl5bbr biimpar iftrued
      cuz csn wss simpr en1b sylib ssrab2 syl6eqssr uniexg adantr mpbird prmuz2
      cr snssg eluzelre clt eluz2b2 simprbi rplogcld rpne0d eqnetrd ex necon1ai
      iffalse syl5ib impbid syl5bb bitr4d ) ACDZAEFZGHBIAUAJZBKUBZLFZMNZWPUCZUD
      FZGUEZGHZWOBKUFZWMWNXAGAWPBWPUNUGUHXCWPOUIJZWMXBWOBKUJWMXDXBWMXDXBWMXDUKZ
      XAWTGXEWRWTGWMWRXDWRWQOLFZNZWMXDXFMWQULUMWMWPPDZOPDZXGXDQABUOZOUPDXIUQOUR
      USWPOUTVAVBZVCVDXEWTXEWSXEWSTVEFDZWSVQDXEWSKDZXLXEXMWSVFZKVGZXEXNWPKXEXDW
      PXNNWMXDVHWPVIVJWOBKVKVLXEWSRDZXMXOQWMXPXDWMXHXPXJWPPVMSVNWSKRVRSVOWSVPSZ
      TWSVSSXEXLMWSVTJZXQXLWSCDXRWSWAWBSWCWDWEWFXBWRWMXDWRXAGWRWTGWHWGXKWIWJWKW
      L $.

    $( Two ways to say that ` A ` is a prime power.  (Contributed by Mario
       Carneiro, 7-Apr-2016.) $)
    isppw2 $p |- ( A e. NN ->
      ( ( Lam ` A ) =/= 0 <-> E. p e. Prime E. k e. NN A = ( p ^ k ) ) ) $=
      ( vq cn wcel cc0 cv cdvds wbr cprime cexp co wceq wrex cpc syl2anc mpbird
      wb wa cvma cfv wreu isppw wral equid breq1 equequ1 bibi12d rspcva adantll
      wne reu6 mpbiri simplr simpll pcelnn simpr oveq1d simpllr cn0 pccl ancoms
      cz ad2antrr nn0zd pcid eqtr4d simprr notbid biimpar simplrl simplll pceq0
      wn wi simprl adantr prmdvdsexpr syl3anc con3dimp prmnn nnexpcld pm2.61dan
      adantl expr ralimdva nnnn0 nnnn0d pc11 oveq2 eqeq2d rspcev ex prmdvdsexpb
      imp 3coml 3expa ralrimiva breq2 bibi1d ralbidv syl5ibrcom impbid rexbidva
      rexlimdva syl5bb bitrd ) AEFZAUAUBGULDHZAIJZDKUCZACHZBHZLMZNZBEOZCKOZADUD
      XLXKXJXMNZSZDKUEZCKOXIXRXKDCKUMXIYAXQCKXIXMKFZTZYAXQYCYAXQYCYATZXMAPMZEFZ
      AXMYELMZNZXQYDYFXMAIJZYDYIXMXMNZCUFYBYAYIYJSZXIXTYKDXMKXSXKYIXSYJXJXMAIUG
      DCCUHUIUJUKUNYDYBXIYFYISXIYBYAUOXIYBYAUPXMAUQQRYDYHXJAPMZXJYGPMZNZDKUEZYC
      YAYOYCXTYNDKYCXJKFZXTYNYCYPXTTZTZXSYNYRXSTZYLXMYGPMZYMYSYLYEYTYSXJXMAPYRX
      SURZUSYSYBYEVDFYTYENXIYBYQXSUTYSYEYCYEVAFZYQXSYBXIUUBXMAVBVCZVEVFYEXMVGQV
      HYSXJXMYGPUUAUSVHYRXSVOZTZYLGYMUUEYLGNZXKVOZYRUUGUUDYRXKXSYCYPXTVIVJVKUUE
      YPXIUUFUUGSYCYPXTUUDVLZXIYBYQUUDVMXJAVNQRUUEYMGNZXJYGIJZVOZYRUUJXSYRYPYBU
      UBUUJXSVPYCYPXTVQXIYBYQUOYCUUBYQUUCVRXJXMYEVSVTWAUUEYPYGEFZUUIUUKSUUHYCUU
      LYQUUDYCXMYEYBXMEFXIXMWBWEUUCWCZVEXJYGVNQRVHWDWFWGWPYDAVAFZYGVAFYHYOSXIUU
      NYBYAAWHVEYDYGYCUULYAUUMVRWIAYGDWJQRXPYHBYEEXNYENXOYGAXNYEXMLWKWLWMQWNYCX
      PYABEYCXNEFZTYAXPXJXOIJZXSSZDKUEZYBUUOUURXIYBUUOTUUQDKYBUUOYPUUQYPYBUUOUU
      QXJXMXNWOWQWRWSUKXPXTUUQDKXPXKUUPXSAXOXJIWTXAXBXCXFXDXEXGXH $.

    $( Value of the von Mangoldt function at a prime power.  (Contributed by
       Mario Carneiro, 7-Apr-2016.) $)
    vmappw $p |- ( ( P e. Prime /\ K e. NN ) ->
      ( Lam ` ( P ^ K ) ) = ( log ` P ) ) $=
      ( vp cprime wcel cn wa cexp cfv cdvds wbr chash wceq cuni clog cc0 fveq2d
      c1 adantr eqtrd co cvma cv crab cif cn0 prmnn nnnn0 nnexpcl syl2an vmaval
      syl csn cab df-rab wi w3a prmdvdsexpb biimpd 3coml 3expa expimpd simpl cz
      eqid prmz iddvdsexp sylan jca eleq1 breq1 anbi12d syl5ibrcom impbid velsn
      syl6bbr abbi1dv syl5eq hashsng iftrued unieqd unisng 3eqtrd ) ADEZBFEZGZA
      BHUAZUBIZCUCZWGJKZCDUDZLIZRMZWKNZOIZPUEZWOAOIWFWGFEZWHWPMWDAFEBUFEWQWEAUG
      BUHABUIUJWGWKCWKVEUKULWFWMWOPWFWLAUMZLIZRWFWKWRLWFWKWIDEZWJGZCUNWRWJCDUOW
      FXACWRWFXAWIAMZWIWREWFXAXBWFWTWJXBWDWEWTWJXBUPZWTWDWEXCWTWDWEUQWJXBWIABUR
      USUTVAVBWFXAXBWDAWGJKZGWFWDXDWDWEVCWDAVDEWEXDAVFABVGVHVIXBWTWDWJXDWIADVJW
      IAWGJVKVLVMVNCAVOVPVQVRZQWDWSRMWEADVSSTVTWFWNAOWFWNWRNZAWFWKWRXEWAWDXFAMW
      EADWBSTQWC $.

    $( Value of the von Mangoldt function at a prime.  (Contributed by Mario
       Carneiro, 7-Apr-2016.) $)
    vmaprm $p |- ( P e. Prime -> ( Lam ` P ) = ( log ` P ) ) $=
      ( cprime wcel c1 cexp co cvma cfv clog prmnn nncnd exp1d fveq2d cn vmappw
      wceq 1nn mpan2 eqtr3d ) ABCZADEFZGHZAGHAIHZTUAAGTATAAJKLMTDNCUBUCPQADORS
      $.

    $( Closure for the von Mangoldt function.  (Contributed by Mario Carneiro,
       7-Apr-2016.) $)
    vmacl $p |- ( A e. NN -> ( Lam ` A ) e. RR ) $=
      ( vp vk cn wcel cvma cfv cr cc0 eleq1 wne cv cexp wceq wrex cprime isppw2
      co wa clog vmappw prmnn nnrpd relogcld eqeltrd fveq2 syl5ibrcom rexlimivv
      adantr eleq1d syl6bi imp 0red pm2.61ne ) ADEZAFGZHEZIHEUPIUPIHJUOUPIKZUQU
      OURABLZCLZMRZNZCDOBPOUQACBQVBUQBCPDUSPEZUTDEZSZUQVBVAFGZHEVEVFUSTGZHUSUTU
      AVCVGHEVDVCUSVCUSUSUBUCUDUIUEVBUPVFHAVAFUFUJUGUHUKULUOUMUN $.

    $( Functionality of the von Mangoldt function.  (Contributed by Mario
       Carneiro, 7-Apr-2016.) $)
    vmaf $p |- Lam : NN --> RR $=
      ( vx vn vs vp cn cr cvma wf wtru cv wbr cprime cfv wceq clog cc0 cvv wcel
      cdvds a1i crab chash c1 cuni cif csb wa fvex c0ex ifex csbex df-vma vmacl
      cmpt adantl fmpt2d trud ) EFGHIABECDJAJZSKDLUAZCJZUBMUCNZUTUDZOMZPUEZUFZF
      GQVEQRIURERUGCUSVDVAVCPVBOUHUIUJUKTGAEVEUNNIACDULTBJZERVFGMFRIVFUMUOUPUQ
      $.

    $( The von Mangoldt is closed in the log-integers.  (Contributed by Mario
       Carneiro, 7-Apr-2016.) $)
    efvmacl $p |- ( A e. NN -> ( exp ` ( Lam ` A ) ) e. NN ) $=
      ( vp vk cn wcel cvma cfv ce c1 cc0 wceq fveq2 ef0 syl6eq eleq1d cv cprime
      wrex fveq2d eqeltrd wne cexp co isppw2 vmappw prmnn nnrpd reeflogd adantr
      wa clog syl5ibrcom rexlimivv syl6bi imp 1nn a1i pm2.61ne ) ADEZAFGZHGZDEZ
      IDEZUTJUTJKZVAIDVDVAJHGIUTJHLMNOUSUTJUAZVBUSVEABPZCPZUBUCZKZCDRBQRVBACBUD
      VIVBBCQDVFQEZVGDEZUJZVBVIVHFGZHGZDEVLVNVFUKGZHGZDVLVMVOHVFVGUESVJVPDEVKVJ
      VPVFDVJVFVJVFVFUFZUGUHVQTUITVIVAVNDVIUTVMHAVHFLSOULUMUNUOVCUSUPUQUR $.

    $( The von Mangoldt function is nonnegative.  (Contributed by Mario
       Carneiro, 7-Apr-2016.) $)
    vmage0 $p |- ( A e. NN -> 0 <_ ( Lam ` A ) ) $=
      ( cn wcel cc0 cvma cfv cle wbr ce c1 ef0 efvmacl nnge1d syl5eqbr cr vmacl
      wb 0re efle sylancr mpbird ) ABCZDAEFZGHZDIFZUCIFZGHZUBUEJUFGKUBUFALMNUBD
      OCUCOCUDUGQRAPDUCSTUA $.

    $( Value of the second Chebyshev function, or summary von Mangoldt
       function.  (Contributed by Mario Carneiro, 7-Apr-2016.) $)
    chpval $p |- ( A e. RR ->
      ( psi ` A ) = sum_ n e. ( 1 ... ( |_ ` A ) ) ( Lam ` n ) ) $=
      ( vx c1 cv cfl cfv cfz co cvma csu cr cchp wceq fveq2 oveq2d df-chp sumex
      sumeq1d fvmpt ) CADCEZFGZHIZBEJGZBKDAFGZHIZUDBKLMUAANZUCUFUDBUGUBUEDHUAAF
      OPSCBQUFUDBRT $.

    $( Functionality of the second Chebyshev function.  (Contributed by Mario
       Carneiro, 7-Apr-2016.) $)
    chpf $p |- psi : RR --> RR $=
      ( vx vn cr c1 cv cfl cfv cfz co cvma csu cchp df-chp wcel fzfid wa elfznn
      cn adantl vmacl syl fsumrecl fmpti ) ACCDAEZFGZHIZBEZJGZBKLABMUDCNZUFUHBU
      IDUEOUIUGUFNZPUGRNZUHCNUJUKUIUGUEQSUGTUAUBUC $.

    $( Closure for the second Chebyshev function.  (Contributed by Mario
       Carneiro, 7-Apr-2016.) $)
    chpcl $p |- ( A e. RR -> ( psi ` A ) e. RR ) $=
      ( cr cchp chpf ffvelrni ) BBACDE $.

    $( The second Chebyshev function is closed in the log-integers.
       (Contributed by Mario Carneiro, 7-Apr-2016.) $)
    efchpcl $p |- ( A e. RR -> ( exp ` ( psi ` A ) ) e. NN ) $=
      ( vn cr wcel cchp cfv ce c1 cfl cfz co cv cvma csu cn chpval fveq2d fzfid
      wa syl elfznn adantl vmacl efvmacl efnnfsumcl eqeltrd ) ACDZAEFZGFHAIFZJK
      ZBLZMFZBNZGFOUGUHUMGABPQUGUJULBUGHUIRUGUKUJDZSZUKODZULCDUNUPUGUKUIUAUBZUK
      UCTUOUPULGFODUQUKUDTUEUF $.

    $( The second Chebyshev function is nonnegative.  (Contributed by Mario
       Carneiro, 7-Apr-2016.) $)
    chpge0 $p |- ( A e. RR -> 0 <_ ( psi ` A ) ) $=
      ( cr wcel cc0 cchp cfv cle wbr ce c1 ef0 efchpcl nnge1d syl5eqbr wb chpcl
      0re efle sylancr mpbird ) ABCZDAEFZGHZDIFZUBIFZGHZUAUDJUEGKUAUEALMNUADBCU
      BBCUCUFOQAPDUBRST $.

    $( Value of the prime-counting function pi.  (Contributed by Mario
       Carneiro, 15-Sep-2014.) $)
    ppival $p |- ( A e. RR ->
      ( ppi ` A ) = ( # ` ( ( 0 [,] A ) i^i Prime ) ) ) $=
      ( vx cc0 cv cicc co cprime cin chash cfv cr cppi wceq oveq2 ineq1d fveq2d
      df-ppi fvex fvmpt ) BACBDZEFZGHZIJCAEFZGHZIJKLTAMZUBUDIUEUAUCGTACENOPBQUD
      IRS $.

    $( Value of the prime-counting function pi.  (Contributed by Mario
       Carneiro, 18-Sep-2014.) $)
    ppival2 $p |- ( A e. ZZ ->
      ( ppi ` A ) = ( # ` ( ( 2 ... A ) i^i Prime ) ) ) $=
      ( cz wcel cppi cfv cc0 cicc co cprime cin chash c2 cfz cr wceq zre ppival
      syl cfl eqtrd ppisval flid oveq2d ineq1d fveq2d ) ABCZADEZFAGHIJZKEZLAMHZ
      IJZKEUFANCZUGUIOAPZAQRUFUHUKKUFUHLASEZMHZIJZUKUFULUHUPOUMAUARUFUOUJIUFUNA
      LMAUBUCUDTUET $.

    $( Value of the prime-counting function pi.  (Contributed by Mario
       Carneiro, 22-Sep-2014.) $)
    ppival2g $p |- ( ( A e. ZZ /\ 2 e. ( ZZ>= ` M ) ) ->
      ( ppi ` A ) = ( # ` ( ( M ... A ) i^i Prime ) ) ) $=
      ( cz wcel c2 cuz cfv wa cppi cc0 cicc co cprime cin chash cfz wceq adantr
      cr eqtrd zre ppival syl cfl ppisval2 sylan flid oveq2d ineq1d fveq2d ) AC
      DZEBFGDZHZAIGZJAKLMNZOGZBAPLZMNZOGUMASDZUNUPQUKUSULAUAZRAUBUCUMUOUROUMUOB
      AUDGZPLZMNZURUKUSULUOVCQUTABUEUFUKVCURQULUKVBUQMUKVAABPAUGUHUIRTUJT $.

    $( Domain and range of the prime-counting function pi.  (Contributed by
       Mario Carneiro, 15-Sep-2014.) $)
    ppif $p |- ppi : RR --> NN0 $=
      ( vx cr cn0 cc0 cv cicc co cprime cin chash cppi df-ppi wcel ppifi hashcl
      cfv cfn syl fmpti ) ABCDAEZFGHIZJPZKALTBMUAQMUBCMTNUAORS $.

    $( Real closure of the prime-counting function pi.  (Contributed by Mario
       Carneiro, 15-Sep-2014.) $)
    ppicl $p |- ( A e. RR -> ( ppi ` A ) e. NN0 ) $=
      ( cr cn0 cppi ppif ffvelrni ) BCADEF $.

    $( The value of the M&ouml;bius function.  (Contributed by Mario Carneiro,
       22-Sep-2014.) $)
    muval $p |- ( A e. NN -> ( mmu ` A ) = if ( E. p e. Prime ( p ^ 2 ) || A ,
      0 , ( -u 1 ^ ( # ` { p e. Prime | p || A } ) ) ) ) $=
      ( vx cv c2 cexp co cdvds wbr cprime wrex cc0 c1 cneg crab chash cfv breq2
      cif cn cmu wceq rexbidv fveq2d oveq2d ifbieq2d df-mu c0ex ovex ifex fvmpt
      rabbidv ) CABDZEFGZCDZHIZBJKZLMNZUMUOHIZBJOZPQZFGZSUNAHIZBJKZLURUMAHIZBJO
      ZPQZFGZSTUAUOAUBZUQVDVBVHLVIUPVCBJUOAUNHRUCVIVAVGURFVIUTVFPVIUSVEBJUOAUMH
      RULUDUEUFCBUGVDLVHUHURVGFUIUJUK $.

    $( The value of the M&ouml;bius function at a non-squarefree number.
       (Contributed by Mario Carneiro, 21-Sep-2014.) $)
    muval1 $p |- ( ( A e. NN /\ P e. ( ZZ>= ` 2 ) /\ ( P ^ 2 ) || A ) ->
      ( mmu ` A ) = 0 ) $=
      ( vp cn wcel c2 cuz cfv cexp co cdvds wbr cprime wrex cc0 c1 wa adantl cz
      zsqcl w3a cmu cv cneg crab chash wceq muval 3ad2ant1 exprmfct 3ad2ant2 wb
      cif prmnn clt simpl2 eluz2b2 sylib simpld dvdssqlem syl2anc simpl3 wi syl
      prmz eluzelz 3syl simpl1 nnzd dvdstr syl3anc mpan2d sylbid reximdva eqtrd
      mpd iftrued ) ADEZBFGHEZBFIJZAKLZUAZAUBHZCUCZFIJZAKLZCMNZOPUDWDAKLCMUEUFH
      IJZUMZOVRVSWCWIUGWAACUHUIWBWGOWHWBWDBKLZCMNZWGVSVRWKWABCUJUKWBWJWFCMWBWDM
      EZQZWJWEVTKLZWFWMWDDEZBDEZWJWNULWLWOWBWDUNRWMWPPBUOLZWMVSWPWQQVRVSWAWLUPZ
      BUQURUSWDBUTVAWMWNWAWFVRVSWAWLVBWMWESEZVTSEZASEWNWAQWFVCWMWDSEZWSWLXAWBWD
      VERWDTVDWMVSBSEWTWRFBVFBTVGWMAVRVSWAWLVHVIWEVTAVJVKVLVMVNVPVQVO $.

    $( The value of the M&ouml;bius function at a squarefree number.
       (Contributed by Mario Carneiro, 3-Oct-2014.) $)
    muval2 $p |- ( ( A e. NN /\ ( mmu ` A ) =/= 0 ) ->
        ( mmu ` A ) = ( -u 1 ^ ( # ` { p e. Prime | p || A } ) ) ) $=
      ( cn wcel cmu cfv cc0 wne c1 cneg cv cdvds wbr cprime crab cexp co eqeq1d
      wceq wo chash wn df-ne c2 wrex cif ifeqor muval orbi12d mpbiri ord syl5bi
      imp ) ACDZAEFZGHZUOIJBKZALMBNOUAFPQZSZUPUOGSZUBUNUSUOGUCUNUTUSUNUTUSTUQUD
      PQALMBNUEZGURUFZGSZVBURSZTVAGURUGUNUTVCUSVDUNUOVBGABUHZRUNUOVBURVERUIUJUK
      ULUM $.

    $( Two ways to say that a number is not squarefree.  (Contributed by Mario
       Carneiro, 3-Oct-2014.) $)
    isnsqf $p |- ( A e. NN ->
      ( ( mmu ` A ) = 0 <-> E. p e. Prime ( p ^ 2 ) || A ) ) $=
      ( cn wcel cmu cfv cc0 wceq cv c2 cexp co cdvds wbr cprime wrex wn wne syl
      neeq1d c1 cneg crab chash cif cz cfn cn0 prmdvdsfi hashcl nn0zd cc neg1cn
      neg1ne0 expne0i mp3an12 iffalse syl5ibrcom sylibrd necon4bd iftrue eqeq1d
      muval syl5ibr impbid ) ACDZAEFZGHZBIZJKLAMNBOPZVFVJVGGVFVJQZVJGUAUBZVIAMN
      BOUCZUDFZKLZUEZGRZVGGRVFVQVKVOGRZVFVNUFDZVRVFVNVFVMUGDVNUHDABUIVMUJSUKVLU
      LDVLGRVSVRUMUNVLVNUOUPSVKVPVOGVJGVOUQTURVFVGVPGABVCZTUSUTVJVHVFVPGHVJGVOV
      AVFVGVPGVTVBVDVE $.

    $( Two ways to say that a number is squarefree.  (Contributed by Mario
       Carneiro, 3-Oct-2014.) $)
    issqf $p |- ( A e. NN ->
      ( ( mmu ` A ) =/= 0 <-> A. p e. Prime ( p pCnt A ) <_ 1 ) ) $=
      ( cn wcel cmu cfv cc0 c2 co wbr cprime wn c1 cle wral cn0 sylancr syl5bbr
      wb cr wne cv cexp cdvds wrex cpc isnsqf necon3abid ralnex caddc 1nn0 pccl
      wa clt ancoms nn0ltp1le 1re nn0red ltnle df-2 breq1i cz id pcdvdsb mp3an3
      nnz 2nn0 syl2anr 3bitr3d con1bid ralbidva bitrd ) ACDZAEFZGUABUBZHUCIAUDJ
      ZBKUEZLZVOAUFIZMNJZBKOZVMVQVNGABUGUHVRVPLZBKOVMWAVPBKUIVMWBVTBKVMVOKDZUMZ
      VTVPWDMVSUNJZMMUJIZVSNJZVTLZVPWDMPDVSPDZWEWGSUKWCVMWIVOAULUOZMVSUPQWDMTDV
      STDWEWHSUQWDVSWJURMVSUSQWGHVSNJZWDVPHWFVSNUTVAWCWCAVBDZWKVPSZVMWCVCAVFWCW
      LHPDWMVGHVOAVDVEVHRVIVJVKRVL $.

    $( The prime count of a squarefree number is at most 1.  (Contributed by
       Mario Carneiro, 1-Jul-2015.) $)
    sqfpc $p |- ( ( A e. NN /\ ( mmu ` A ) =/= 0 /\ P e. Prime ) ->
        ( P pCnt A ) <_ 1 ) $=
      ( vp cn wcel cmu cfv cc0 wne cprime cpc co c1 cle wbr wa cv wral wi issqf
      biimpa wceq oveq1 breq1d rspccv syl 3impia ) ADEZAFGHIZBJEZBAKLZMNOZUHUIP
      CQZAKLZMNOZCJRZUJULSUHUIUPACTUAUOULCBJUMBUBUNUKMNUMBAKUCUDUEUFUG $.

    $( A divisor of a squarefree number is squarefree.  (Contributed by Mario
       Carneiro, 1-Jul-2015.) $)
    dvdssqf $p |- ( ( A e. NN /\ B e. NN /\ B || A ) ->
       ( ( mmu ` A ) =/= 0 -> ( mmu ` B ) =/= 0 ) ) $=
      ( vp cn wcel cdvds wbr w3a cmu cfv cc0 cv cprime wrex wceq wa nnzd isnsqf
      cz wb c2 cexp co simpl3 wi prmz adantl zsqcl simpl2 simpl1 dvdstr syl3anc
      syl mpan2d reximdva 3ad2ant2 3ad2ant1 3imtr4d necon3d ) ADEZBDEZBAFGZHZBI
      JZKAIJZKVCCLZUAUBUCZBFGZCMNZVGAFGZCMNZVDKOZVEKOZVCVHVJCMVCVFMEZPZVHVBVJUT
      VAVBVNUDVOVGSEZBSEASEVHVBPVJUEVOVFSEZVPVNVQVCVFUFUGVFUHUMVOBUTVAVBVNUIQVO
      AUTVAVBVNUJQVGBAUKULUNUOVAUTVLVITVBBCRUPUTVAVMVKTVBACRUQURUS $.

    $( A squarefree number is completely determined by the set of its prime
       divisors.  (Contributed by Mario Carneiro, 1-Jul-2015.) $)
    sqf11 $p |- ( ( ( A e. NN /\ ( mmu ` A ) =/= 0 ) /\
      ( B e. NN /\ ( mmu ` B ) =/= 0 ) ) -> ( A = B <->
        A. p e. Prime ( p || A <-> p || B ) ) ) $=
      ( cn wcel cmu cfv cc0 wne wa wceq cpc co cprime wbr wb cn0 wo c1 syl2anr
      cv wral cdvds nnnn0 pc11 syl2an ad2ant2r eleq1 wn dfbi3 cle simpll adantr
      simpllr simpr sqfpc syl3anc nnle1eq1 syl5ibcom simplrr anim12d eqtr3 syl6
      simprl id pccl elnn0 sylib ord jaod syl5bi impbid2 bibi12d bitrd ralbidva
      pcelnn ) ADEZAFGHIZJZBDEZBFGHIZJZJZABKZCUAZALMZWEBLMZKZCNUBZWEAUCOZWEBUCO
      ZPZCNUBVQVTWDWIPZVRWAVQAQEBQEWMVTAUDBUDABCUEUFUGWCWHWLCNWCWENEZJZWHWFDEZW
      GDEZPZWLWOWHWRWFWGDUHWRWPWQJZWPUIZWQUIZJZRWOWHWPWQUJWOWSWHXBWOWSWFSKZWGSK
      ZJWHWOWPXCWQXDWOWFSUKOZWPXCWOVQVRWNXEWCVQWNVQVRWBULZUMVQVRWBWNUNWCWNUOZAW
      EUPUQWFURUSWOWGSUKOZWQXDWOVTWAWNXHWCVTWNVSVTWAVDZUMVSVTWAWNUTXGBWEUPUQWGU
      RUSVAWFWGSVBVCWOXBWFHKZWGHKZJWHWOWTXJXAXKWOWPXJWOWFQEZWPXJRWNWNVQXLWCWNVE
      ZXFWEAVFTWFVGVHVIWOWQXKWOWGQEZWQXKRWNWNVTXNWCXMXIWEBVFTWGVGVHVIVAWFWGHVBV
      CVJVKVLWOWPWJWQWKWNWNVQWPWJPWCXMXFWEAVPTWNWNVTWQWKPWCXMXIWEBVPTVMVNVOVN
      $.

    $( The M&ouml;bius function is a function into the integers.  (Contributed
       by Mario Carneiro, 22-Sep-2014.) $)
    muf $p |- mmu : NN --> ZZ $=
      ( vx vp cn cz cv c2 cexp co cdvds wbr cprime wrex cc0 cneg crab chash cfv
      c1 wcel sylancr cif cmu df-mu 0z cn0 cfn prmdvdsfi hashcl syl zexpcl ifcl
      neg1z fmpti ) ACDBEZFGHAEZIJBKLZMRNZUNUOIJBKOZPQZGHZUAZUBABUCUOCSZMDSUTDS
      ZVADSUDVBUQDSUSUESZVCULVBURUFSVDUOBUGURUHUIUQUSUJTUPMUTDUKTUM $.

    $( Closure of the M&ouml;bius function.  (Contributed by Mario Carneiro,
       22-Sep-2014.) $)
    mucl $p |- ( A e. NN -> ( mmu ` A ) e. ZZ ) $=
      ( cn cz cmu muf ffvelrni ) BCADEF $.

    $( The value of the divisor function.  (Contributed by Mario Carneiro,
       22-Sep-2014.)  (Revised by Mario Carneiro, 21-Jun-2015.) $)
    sgmval $p |- ( ( A e. CC /\ B e. NN ) ->
      ( A sigma B ) = sum_ k e. { p e. NN | p || B } ( k ^c A ) ) $=
      ( vx vn cc cn cv cdvds wbr crab ccxp co csu csgm wceq wa simpr breq2d
      rabbidv wcel simpll oveq2d sumeq12dv df-sgm sumex ovmpt2a ) EFABGHDIZFIZJ
      KZDHLZCIZEIZMNZCOUIBJKZDHLZUMAMNZCOPUNAQZUJBQZRZULUQUOURCVAUKUPDHVAUJBUIJ
      USUTSTUAVAUMULUBZRUNAUMMUSUTVBUCUDUEECFDUFUQURCUGUH $.

    $( The value of the divisor function.  (Contributed by Mario Carneiro,
       21-Jun-2015.) $)
    sgmval2 $p |- ( ( A e. ZZ /\ B e. NN ) ->
      ( A sigma B ) = sum_ k e. { p e. NN | p || B } ( k ^ A ) ) $=
      ( cz wcel cn wa csgm co cv cdvds wbr crab ccxp csu cexp cc wceq zcn sylan
      sgmval ssrab2 simpr sseldi nncnd nnne0d simpll cxpexpzd sumeq2dv eqtrd )
      AEFZBGFZHZABIJZDKBLMZDGNZCKZAOJZCPZUQURAQJZCPULARFUMUOUTSATABCDUBUAUNUQUS
      VACUNURUQFZHZURAVCURVCUQGURUPDGUCUNVBUDUEZUFVCURVDUGULUMVBUHUIUJUK $.

    $( The value of the sum-of-divisors function, usually denoted
       &sigma;<SUB>0</SUB>(<i>n</i>).  (Contributed by Mario Carneiro,
       21-Jun-2015.) $)
    0sgm $p |- ( A e. NN -> ( 0 sigma A ) = ( # ` { p e. NN | p || A } ) ) $=
      ( vk cn wcel cc0 csgm co cv cdvds wbr crab cexp csu chash cfv c1 cmul cfn
      wceq cz 0z sgmval2 mpan elrabi nncnd exp0d sumeq2i cc cfz fzfid dvdsssfz1
      wss syl2anc ax-1cn fsumconst sylancl syl5eq cn0 hashcl syl nn0cnd mulid1d
      ssfi 3eqtrd ) ADEZFAGHZBIAJKZBDLZCIZFMHZCNZVIOPZQRHZVMFUAEVFVGVLTUBFACBUC
      UDVFVLVIQCNZVNVIVKQCVJVIEZVJVPVJVHBVJDUEUFUGUHVFVISEZQUIEVOVNTVFQAUJHZSEV
      IVRUMVQVFQAUKABULVRVIVDUNZUOVIQCUPUQURVFVMVFVMVFVQVMUSEVSVIUTVAVBVCVE $.

    $( The divisor function is a function into the complex numbers.
       (Contributed by Mario Carneiro, 22-Sep-2014.)  (Revised by Mario
       Carneiro, 21-Jun-2015.) $)
    sgmf $p |- sigma : ( CC X. NN ) --> CC $=
      ( vp vn vk vx cv cdvds wbr cn crab ccxp co csu cc wcel wral cxp wf c1 cfn
      csgm cfz wss fzfid dvdsssfz1 adantl ssfi syl2anc elrabi nncnd simpl cxpcl
      wa syl2anr fsumcl rgen2 df-sgm fmpt2 mpbi ) AEBEZFGZAHIZCEZDEZJKZCLZMNZBH
      ODMOMHPMTQVFDBMHVCMNZUSHNZULZVAVDCVIRUSUAKZSNVAVJUBZVASNVIRUSUCVHVKVGUSAU
      DUEVJVAUFUGVBVANZVBMNVGVDMNVIVLVBUTAVBHUHUIVGVHUJVBVCUKUMUNUODBMHVEMTDCBA
      UPUQUR $.

    $( Closure of the divisor function.  (Contributed by Mario Carneiro,
       22-Sep-2014.) $)
    sgmcl $p |- ( ( A e. CC /\ B e. NN ) -> ( A sigma B ) e. CC ) $=
      ( cc cn csgm sgmf fovcl ) ABCCDEFG $.

    $( Closure of the divisor function.  (Contributed by Mario Carneiro,
       21-Jun-2015.) $)
    sgmnncl $p |- ( ( A e. NN0 /\ B e. NN ) -> ( A sigma B ) e. NN ) $=
      ( vp vk cn0 wcel cn wa csgm co cv cdvds wbr crab cexp csu cz cfn adantl
      c1 wceq nn0z sgmval2 sylan cc0 clt cfz wss fzfid dvdsssfz1 syl2anc elrabi
      ssfi simpl nnexpcl syl2anr nnzd fsumzcl c0 wne wrex nnz iddvds syl rspcev
      breq1 mpdan rabn0 sylibr nnrpd fsumrpcl rpgt0d elnnz sylanbrc eqeltrd ) A
      EFZBGFZHZABIJZCKZBLMZCGNZDKZAOJZDPZGVPAQFVQVSWEUAAUBABDCUCUDVRWEQFUEWEUFM
      WEGFVRWBWDDVRTBUGJZRFWBWFUHZWBRFVRTBUIVQWGVPBCUJSWFWBUMUKZVRWCWBFZHZWDWIW
      CGFVPWDGFVRWACWCGULVPVQUNWCAUOUPZUQURVRWEVRWBWDDWHVQWBUSUTZVPVQWACGVAZWLV
      QBBLMZWMVQBQFWNBVBBVCVDWAWNCBGVTBBLVFVEVGWACGVHVISWJWDWKVJVKVLWEVMVNVO $.

    $( The M&ouml;bius function takes on values in magnitude at most ` 1 ` .
       (Together with ~ mucl , this implies that it takes a value in
       ` { -u 1 , 0 , 1 } ` for every positive integer.)  (Contributed by Mario
       Carneiro, 22-Sep-2014.) $)
    mule1 $p |- ( A e. NN -> ( abs ` ( mmu ` A ) ) <_ 1 ) $=
      ( vp wcel cexp co cdvds wbr cprime cfv cabs c1 cle wa cc0 sylan9eq fveq2d
      syl6eqbr wceq syl eqtrd cn cv c2 wrex cmu cneg crab chash cif iftrue abs0
      muval 0le1 eqbrtri iffalse cn0 neg1cn cfn prmdvdsfi hashcl absexp sylancr
      wn cc ax-1cn absnegi abs1 eqtri oveq1i nn0zd 1exp syl5eq adantr pm2.61dan
      cz 1le1 ) AUACZBUBZUCDEAFGBHUDZAUEIZJIZKLGVQVSMZWANJIZKLWBVTNJVQVSVTVSNKU
      FZVRAFGBHUGZUHIZDEZUIZNABULZVSNWGUJOPWCNKLUKUMUNQVQVSVCZMZWAKKLWKWAWGJIZK
      WKVTWGJVQWJVTWHWGWIVSNWGUOOPVQWLKRWJVQWLWDJIZWFDEZKVQWDVDCWFUPCZWLWNRUQVQ
      WEURCWOABUSWEUTSZWDWFVAVBVQWNKWFDEZKWMKWFDWMKJIKKVEVFVGVHVIVQWFVOCWQKRVQW
      FWPVJWFVKSVLTVMTVPQVN $.

    $( The Chebyshev function does not change off the integers.  (Contributed
       by Mario Carneiro, 22-Sep-2014.) $)
    chtfl $p |- ( A e. RR -> ( theta ` ( |_ ` A ) ) = ( theta ` A ) ) $=
      ( vp cr wcel cc0 cfl cfv cicc co cprime cin csu ccht cfz wceq ppisval syl
      c2 3eqtr4d chtval cv clog flidm oveq2d ineq1d reflcl sumeq1d ) ACDZEAFGZH
      IJKZBUAUBGZBLZEAHIJKZUKBLUIMGZAMGUHUJUMUKBUHRUIFGZNIZJKZRUINIZJKUJUMUHUPU
      RJUHUOUIRNAUCUDUEUHUICDZUJUQOAUFZUIPQAPSUGUHUSUNULOUTUIBTQABTS $.

    $( The second Chebyshev function does not change off the integers.
       (Contributed by Mario Carneiro, 9-Apr-2016.) $)
    chpfl $p |- ( A e. RR -> ( psi ` ( |_ ` A ) ) = ( psi ` A ) ) $=
      ( vx cr wcel c1 cfl cfv cfz co cv cvma csu cchp flidm oveq2d sumeq1d wceq
      reflcl chpval syl 3eqtr4d ) ACDZEAFGZFGZHIZBJKGZBLZEUCHIZUFBLUCMGZAMGUBUE
      UHUFBUBUDUCEHANOPUBUCCDUIUGQARUCBSTABSUA $.

    $( The prime-counting function ` ppi ` at a prime.  (Contributed by Mario
       Carneiro, 19-Sep-2014.) $)
    ppiprm $p |- ( ( A e. ZZ /\ ( A + 1 ) e. Prime ) ->
      ( ppi ` ( A + 1 ) ) = ( ( ppi ` A ) + 1 ) ) $=
      ( cz wcel c1 caddc co cprime wa c2 cfz cin cun chash cfv cppi wceq adantr
      syl cuz cn csn cfn wn wss fzfid inss1 ssfi sylancl cle wbr clt cr peano2z
      zre ltp1d zred ltnled mpbid sseli elfzle2 nsyl cvv ovex hashunsng syl2anc
      wi ax-mp ppival2 cmin 2z cc zcn ax-1cn pncan prmuz2 uz2m1nn eqeltrrd nnuz
      adantl 2m1e1 fveq2i eqtr4i fzsuc2 sylancr ineq1d indir syl6eq simpr snssd
      syl6eleq df-ss sylib uneq2d eqtrd fveq2d oveq1d 3eqtr4d ) ABCZADEFZGCZHZI
      AJFZGKZWSUAZLZMNZXCMNZDEFZWSONZAONZDEFXAXCUBCZWSXCCZUCZXFXHPZXAXBUBCXCXBU
      DXKXAIAUEXBGUFZXBXCUGUHXAWSAUIUJZXLXAAWSUKUJXPUCXAAWRAULCWTAUNQZUOXAAWSXQ
      XAWSWRWSBCZWTAUMQZUPUQURXLWSXBCXPXCXBWSXOUSWSIAUTRVAWSVBCXKXMHXNVFADEVCXC
      WSVBVDVGVEXAXIIWSJFZGKZMNZXFXAXRXIYBPXSWSVHRXAYAXEMXAYAXCXDGKZLZXEXAYAXBX
      DLZGKYDXAXTYEGXAIBCAIDVIFZSNZCXTYEPVJXAATYGXAWSDVIFZATXAAVKCZDVKCYHAPWRYI
      WTAVLQVMADVNUHXAWSISNCZYHTCWTYJWRWSVOVSWSVPRVQTDSNYGVRYFDSVTWAWBWJIAWCWDW
      EXBXDGWFWGXAYCXDXCXAXDGUDYCXDPXAWSGWRWTWHWIXDGWKWLWMWNWOWNXAXJXGDEWRXJXGP
      WTAVHQWPWQ $.

    $( The prime-counting function ` ppi ` at a non-prime.  (Contributed by
       Mario Carneiro, 19-Sep-2014.) $)
    ppinprm $p |- ( ( A e. ZZ /\ -. ( A + 1 ) e. Prime ) ->
      ( ppi ` ( A + 1 ) ) = ( ppi ` A ) ) $=
      ( vx cz wcel c1 co cprime wn wa c2 cfz cin chash cfv cppi sseldi cuz wceq
      cn adantr caddc cv csn wne simprr simprl nelne2 syl2anc necon3bbii sylibr
      inss2 velsn cun wo inss1 cmin 2z zcn ax-1cn pncan sylancl elfzuz2 uz2m1nn
      cc 3syl eqeltrrd nnuz 2m1e1 fveq2i eqtr4i syl6eleq fzsuc2 sylancr eleqtrd
      elun sylib ord mt3d elind expr ssrdv uzid peano2uz fzss2 ssrin 4syl eqssd
      wss fveq2d peano2z ppival2 syl 3eqtr4d ) ACDZAEUAFZGDHZIZJWOKFZGLZMNZJAKF
      ZGLZMNZWOONZAONZWQWSXBMWQWSXBWQBWSXBWNWPBUBZWSDZXFXBDWNWPXGIZIZXAGXFXIXFX
      ADZXFWOUCZDZXIXFWOUDZXLHXIXFGDWPXMXIWSGXFWRGUKWNWPXGUEZPZWNWPXGUFXFWOGUGU
      HXLXFWOBWOULUIUJXIXJXLXIXFXAXKUMZDXJXLUNXIXFWRXPXIWSWRXFWRGUOXNPZXIJCDAJE
      UPFZQNZDWRXPRUQXIASXSXIWOEUPFZASXIAVDDZEVDDXTARWNYAXHAURTUSAEUTVAXIXFWRDW
      OJQNDXTSDXQXFJWOVBWOVCVEVFSEQNXSVGXREQVHVIVJVKJAVLVMVNXFXAXKVOVPVQVRXOVSV
      TWAWQAAQNZDZWOYBDXAWRWHXBWSWHWNYCWPAWBTAAWCAJWOWDXAWRGWEWFWGWIWQWOCDZXDWT
      RWNYDWPAWJTWOWKWLWNXEXCRWPAWKTWM $.

    $( The Chebyshev function at a prime.  (Contributed by Mario Carneiro,
       22-Sep-2014.) $)
    chtprm $p |- ( ( A e. ZZ /\ ( A + 1 ) e. Prime ) ->
      ( theta ` ( A + 1 ) ) = ( ( theta ` A ) + ( log ` ( A + 1 ) ) ) ) $=
      ( vp cz wcel c1 caddc co cprime cfv c2 cfz cin clog csu wceq adantr eqtrd
      syl cuz cn wa ccht cv csn cc0 cicc cr peano2z zre chtval cfl ppisval flid
      oveq2d ineq1d sumeq1d wn c0 cle wbr ltp1d ltnled mpbid inss1 elfzle2 nsyl
      clt sseli disjsn sylibr cun cmin 2z cc ax-1cn pncan sylancl prmuz2 adantl
      zcn uz2m1nn eqeltrrd nnuz 2m1e1 fveq2i eqtr4i fzsuc2 sylancr indir syl6eq
      syl6eleq wss simpr snssd df-ss sylib uneq2d fzfid ssfi inss2 sseldi prmnn
      nnrpd relogcld recnd fsumsplit eqtr2d fveq2 sumsn syl2anc oveq12d 3eqtrd
      cfn ) ACDZAEFGZHDZUAZXOUBIZJXOKGZHLZBUCZMIZBNZJAKGZHLZYBBNZXOUDZYBBNZFGAU
      BIZXOMIZFGXQXRUEXOUFGHLZYBBNZYCXQXOUGDZXRYLOXQXOCDZYMXNYNXPAUHPZXOUIRZXOB
      UJRXQYKXTYBBXQYKJXOUKIZKGZHLZXTXQYMYKYSOYPXOULRXQYRXSHXQYQXOJKXQYNYQXOOYO
      XOUMRUNUOQUPQXQYEYGYBXTBXQXOYEDZUQYEYGLUROXQXOAUSUTZYTXQAXOVGUTUUAUQXQAXN
      AUGDZXPAUIPZVAXQAXOUUCYPVBVCYTXOYDDUUAYEYDXOYDHVDVHXOJAVERVFYEXOVIVJXQXTY
      EYGHLZVKZYEYGVKXQXTYDYGVKZHLUUEXQXSUUFHXQJCDAJEVLGZSIZDXSUUFOVMXQATUUHXQX
      OEVLGZATXQAVNDZEVNDUUIAOXNUUJXPAVTPVOAEVPVQXQXOJSIDZUUITDXPUUKXNXOVRVSXOW
      ARWBTESIUUHWCUUGESWDWEWFWKJAWGWHUOYDYGHWIWJXQUUDYGYEXQYGHWLUUDYGOXQXOHXNX
      PWMWNYGHWOWPWQQXQXSXMDXTXSWLXTXMDXQJXOWRXSHVDXSXTWSVQXQYAXTDZUAZYBUUMYAUU
      MYAUUMYAHDYATDUUMXTHYAXSHWTXQUULWMXAYAXBRXCXDXEXFXQYFYIYHYJFXQYIUEAUFGHLZ
      YBBNZYFXQUUBYIUUOOUUCABUJRXQUUNYEYBBXQUUNJAUKIZKGZHLZYEXQUUBUUNUUROUUCAUL
      RXQUUQYDHXQUUPAJKXNUUPAOXPAUMPUNUOQUPXGXQXOTDZYJVNDYHYJOXPUUSXNXOXBVSZXQY
      JXQXOXQXOUUTXCXDXEYBYJBXOTYAXOMXHXIXJXKXL $.

    $( The Chebyshev function at a non-prime.  (Contributed by Mario Carneiro,
       19-Sep-2014.) $)
    chtnprm $p |- ( ( A e. ZZ /\ -. ( A + 1 ) e. Prime ) ->
      ( theta ` ( A + 1 ) ) = ( theta ` A ) ) $=
      ( vp vx cz wcel c1 co cprime wa cin cfv c2 cfz cuz wceq cn adantr 3eqtr4d
      3syl syl caddc wn cc0 cicc clog csu ccht cfl csn wne simprr sseldi simprl
      cv inss2 nelne2 syl2anc velsn necon3bbii sylibr cun wo inss1 2z cc ax-1cn
      cmin zcn pncan sylancl elfzuz2 eqeltrrd nnuz 2m1e1 fveq2i eqtr4i syl6eleq
      uz2m1nn sylancr eleqtrd elun sylib ord mt3d elind expr ssrdv wss peano2uz
      fzsuc2 uzid fzss2 ssrin 4syl eqssd peano2z flid oveq2d ineq1d cr peano2re
      zre ppisval sumeq1d chtval ) ADEZAFUAGZHEUBZIZUCXGUDGHJZBUNUEKZBUFZUCAUDG
      HJZXKBUFZXGUGKZAUGKZXIXJXMXKBXILXGUHKZMGZHJZLAUHKZMGZHJZXJXMXILXGMGZHJZLA
      MGZHJZXSYBXIYDYFXICYDYFXFXHCUNZYDEZYGYFEXFXHYHIZIZYEHYGYJYGYEEZYGXGUIZEZY
      JYGXGUJZYMUBYJYGHEXHYNYJYDHYGYCHUOXFXHYHUKZULZXFXHYHUMYGXGHUPUQYMYGXGCXGU
      RUSUTYJYKYMYJYGYEYLVAZEYKYMVBYJYGYCYQYJYDYCYGYCHVCYOULZYJLDEALFVGGZNKZEYC
      YQOVDYJAPYTYJXGFVGGZAPYJAVEEZFVEEUUAAOXFUUBYIAVHQVFAFVIVJYJYGYCEXGLNKEUUA
      PEYRYGLXGVKXGVRSVLPFNKYTVMYSFNVNVOVPVQLAWJVSVTYGYEYLWAWBWCWDYPWEWFWGXIAAN
      KZEZXGUUCEYEYCWHYFYDWHXFUUDXHAWKQAAWIALXGWLYEYCHWMWNWOXIXRYCHXIXQXGLMXIXG
      DEZXQXGOXFUUEXHAWPQXGWQTWRWSXIYAYEHXIXTALMXFXTAOXHAWQQWRWSRXIAWTEZXGWTEZX
      JXSOXFUUFXHAXBQZAXAZXGXCSXIUUFXMYBOUUHAXCTRXDXIUUFUUGXOXLOUUHUUIXGBXESXIU
      UFXPXNOUUHABXETR $.

    $( The second Chebyshev function at a successor.  (Contributed by Mario
       Carneiro, 11-Apr-2016.) $)
    chpp1 $p |- ( A e. NN0 ->
      ( psi ` ( A + 1 ) ) = ( ( psi ` A ) + ( Lam ` ( A + 1 ) ) ) ) $=
      ( vn wcel c1 caddc co cfz cvma cfv csu cchp cn cr syl wceq chpval cz flid
      cfl oveq2d cn0 cv cmin nn0p1nn nnuz syl6eleq wa elfznn adantl vmacl recnd
      cuz fveq2 fsumm1 nn0re peano2re 3syl nn0z peano2zd sumeq1d eqtrd cc nn0cn
      ax-1cn pncan sylancl eqtr4d oveq1d 3eqtr4d ) AUACZDADEFZGFZBUBZHIZBJZDVKD
      UCFZGFZVNBJZVKHIZEFVKKIZAKIZVSEFVJVNVSBDVKVJVKLDULIAUDUEUFVJVMVLCZUGZVNWC
      VMLCZVNMCWBWDVJVMVKUHUIVMUJNUKVMVKHUMUNVJVTDVKSIZGFZVNBJZVOVJAMCZVKMCVTWG
      OAUOZAUPVKBPUQVJWFVLVNBVJWEVKDGVJVKQCWEVKOVJAAURZUSVKRNTUTVAVJWAVRVSEVJWA
      DASIZGFZVNBJZVRVJWHWAWMOWIABPNVJWLVQVNBVJWKVPDGVJWKAVPVJAQCWKAOWJARNVJAVB
      CDVBCVPAOAVCVDADVEVFVGTUTVAVHVI $.

    $( The Chebyshev function is weakly increasing.  (Contributed by Mario
       Carneiro, 22-Sep-2014.) $)
    chtwordi $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) ->
      ( theta ` A ) <_ ( theta ` B ) ) $=
      ( vp cr wcel cle wbr cc0 cicc cprime cin cfv csu ccht syl wss wceq chtval
      co wa w3a cv clog cfn simp2 ppifi cn c1 clt cuz inss2 simpr sseldi prmuz2
      c2 eluz2b2 sylib simpld nnred simprd rplogcld rpred rpge0d 0red a1i simp3
      0le0 iccss syl22anc ssrin fsumless 3ad2ant1 3brtr4d ) ADEZBDEZABFGZUAZHAI
      SZJKZCUBZUCLZCMZHBISZJKZWACMZANLZBNLZFVQWDWAVSCVQVOWDUDEVNVOVPUEZBUFOVQVT
      WDEZTZWAWJVTWJVTWJVTUGEZUHVTUIGZWJVTUOUJLEZWKWLTWJVTJEWMWJWDJVTWCJUKVQWIU
      LUMVTUNOVTUPUQZURUSWJWKWLWNUTVAZVBWJWAWOVCVQVRWCPZVSWDPVQHDEVOHHFGZVPWPVQ
      VDWHWQVQVGVEVNVOVPVFHBHAVHVIVRWCJVJOVKVNVOWFWBQVPACRVLVQVOWGWEQWHBCROVM
      $.

    $( The second Chebyshev function is weakly increasing.  (Contributed by
       Mario Carneiro, 9-Apr-2016.) $)
    chpwordi $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) ->
      ( psi ` A ) <_ ( psi ` B ) ) $=
      ( vn cr wcel cle wbr w3a c1 cfl cfv cfz co cvma csu cchp syl wceq chpval
      cv fzfid wa elfznn adantl vmacl cc0 vmage0 cuz wss flword2 fzss2 fsumless
      cn 3ad2ant1 3ad2ant2 3brtr4d ) ADEZBDEZABFGZHZIAJKZLMZCTZNKZCOZIBJKZLMZVD
      COZAPKZBPKZFUTVGVDVBCUTIVFUAUTVCVGEZUBZVCUMEZVDDEVKVMUTVCVFUCUDZVCUEQVLVM
      UFVDFGVNVCUGQUTVFVAUHKEVBVGUIABUJVAIVFUKQULUQURVIVERUSACSUNURUQVJVHRUSBCS
      UOUP $.

    $( The difference of the Chebyshev function at two points sums the
       logarithms of the primes in an interval.  (Contributed by Mario
       Carneiro, 22-Sep-2014.) $)
    chtdif $p |- ( N e. ( ZZ>= ` M ) -> ( ( theta ` N ) - ( theta ` M ) ) =
      sum_ p e. ( ( ( M + 1 ) ... N ) i^i Prime ) ( log ` p ) ) $=
      ( cfv wcel co c2 wbr cfz cprime cin csu wceq syl sylancl ineq1d eqtrd cfn
      cz c0 cuz ccht cmin cle cif cv clog c1 caddc cc0 cicc eluzelre chtval cfl
      cr eluzel2 2z ifcl a1i zred min2 eluz2 syl3anbrc ppisval2 syl2anc eluzelz
      2re flid oveq2d sumeq1d clt ltp1d fzdisj inindir 0in 3eqtr3g min1 elfzuzb
      cun id sylanbrc fzsplit indir syl6eq wss fzfid inss1 ssfi wa inss2 sseldi
      cn simpr prmnn nnrpd relogcld recnd fsumsplit oveq12d fzfi mp2an cc ssun1
      syl5sseqr sselda syldan fsumcl ssun2 pncan2d ) BAUADEZBUBDZAUBDZUCFAGUDHZ
      AGUEZAIFZJKZCUFZUGDZCLZAUHUIFZBIFZJKZXRCLZUIFZXSUCFYCXJXKYDXLXSUCXJXKUJBU
      KFJKZXRCLZYDXJBUOEZXKYFMABULZBCUMNXJYFXNBIFZJKZXRCLYDXJYEYJXRCXJYEXNBUNDZ
      IFZJKZYJXJYGGXNUADZEZYEYMMYHXJXNSEZGSEZXNGUDHZYOXJASEZYQYPABUPZUQXMAGSURO
      ZYQXJUQUSXJAUOEZGUOEZYRXJAYTUTZVGAGVAOXNGVBVCZBXNVDVEXJYLYIJXJYKBXNIXJBSE
      YKBMABVFBVHNVIPQVJXJXPYBXRYJCXJXOYAKZJKTJKXPYBKTXJUUFTJXJAXTVKHUUFTMXJAUU
      DVLXNAXTBVMNPXOYAJVNJVOVPXJYJXOYAVSZJKXPYBVSZXJYIUUGJXJAYIEZYIUUGMXJAYNEZ
      XJUUIXJYPYSXNAUDHZUUJUUAYTXJUUBUUCUUKUUDVGAGVQOXNAVBVCXJVTAXNBVRWAAXNBWBN
      PXOYAJWCWDZXJYIREYJYIWEYJREXJXNBWFYIJWGYIYJWHOXJXQYJEZWIZXRUUNXQUUNXQUUNX
      QJEXQWLEUUNYJJXQYIJWJXJUUMWMWKXQWNNWOWPWQZWRQQXJXLUJAUKFJKZXRCLZXSXJUUBXL
      UUQMUUDACUMNXJUUPXPXRCXJUUPXNAUNDZIFZJKZXPXJUUBYOUUPUUTMUUDUUEAXNVDVEXJUU
      SXOJXJUURAXNIXJYSUURAMYTAVHNVIPQVJQWSXJXSYCXJXPXRCXPREZXJXOREXPXOWEUVAXNA
      WTXOJWGXOXPWHXAUSXJXQXPEUUMXRXBEZXJXPYJXQXJUUHXPYJXPYBXCUULXDXEUUOXFXGXJY
      BXRCYBREZXJYAREYBYAWEUVCXTBWTYAJWGYAYBWHXAUSXJXQYBEUUMUVBXJYBYJXQXJUUHYBY
      JYBXPXHUULXDXEUUOXFXGXIQ $.

    $( The exponentiated Chebyshev function forms a divisibility chain between
       any two points.  (Contributed by Mario Carneiro, 22-Sep-2014.) $)
    efchtdvds $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) ->
      ( exp ` ( theta ` A ) ) || ( exp ` ( theta ` B ) ) ) $=
      ( vx vp cr wcel ccht cfv ce co cn cc wceq recnd cprime fveq2 eleq1d elrab
      wa cc0 vy vz cle wbr w3a cdvds cdiv cz cmin chtcl 3ad2ant2 3ad2ant1 efsub
      syl2anc cv crab cfl c1 caddc cfz cin csu chtfl oveq12d cuz flword2 chtdif
      clog syl eqtr3d wss ssrab2 ax-resscn sstri a1i simpll readdcld cmul efadd
      simprl nnmulcl ad2ant2l eqeltrd sylanbrc syl2anb adantl cfn fzfid sylancl
      inss1 inss2 simpr sseldi prmnn nnrpd relogcld reeflogd 0re 1nn ef0 syl6eq
      ssfi mpbir2an fsumcllem simprbi eqeltrrd nnzd wne efchtcl nnne0d dvdsval2
      wb syl3anc mpbird ) AEFZBEFZABUCUDZUEZAGHZIHZBGHZIHZUFUDZYBXTUGJZUHFZXRYD
      XRYAXSUIJZIHZYDKXRYALFXSLFYGYDMXRYAXPXOYAEFXQBUJUKNXRXSXOXPXSEFXQAUJULNYA
      XSUMUNXRYFCUOZIHZKFZCEUPZFZYGKFZXRYFAUQHZURUSJZBUQHZUTJZOVAZDUOZVHHZDVBZY
      KXRYPGHZYNGHZUIJZYFUUAXRUUBYAUUCXSUIXPXOUUBYAMXQBVCUKXOXPUUCXSMXQAVCULVDX
      RYPYNVEHFUUDUUAMABVFYNYPDVGVIVJXRUAUBYRYTYKDYKLVKXRYKELYJCEVLVMVNVOUAUOZY
      KFZUBUOZYKFZSUUEUUGUSJZYKFZXRUUFUUEEFZUUEIHZKFZSZUUGEFZUUGIHZKFZSZUUJUUHY
      JUUMCUUEEYHUUEMYIUULKYHUUEIPQRYJUUQCUUGEYHUUGMYIUUPKYHUUGIPQRUUNUURSZUUIE
      FUUIIHZKFZUUJUUSUUEUUGUUKUUMUURVPZUUNUUOUUQVTZVQUUSUUTUULUUPVRJZKUUSUUELF
      UUGLFUUTUVDMUUSUUEUVBNUUSUUGUVCNUUEUUGVSUNUUMUUQUVDKFUUKUUOUULUUPWAWBWCYJ
      UVACUUIEYHUUIMYIUUTKYHUUIIPQRWDWEWFXRYQWGFYRYQVKYRWGFXRYOYPWHYQOWJYQYRXBW
      IXRYSYRFZSZYTEFYTIHZKFZYTYKFUVFYSUVFYSUVFYSOFYSKFUVFYROYSYQOWKXRUVEWLWMYS
      WNVIZWOZWPUVFUVGYSKUVFYSUVJWQUVIWCYJUVHCYTEYHYTMYIUVGKYHYTIPQRWDTYKFZXRUV
      KTEFURKFZWRWSYJUVLCTEYHTMZYIURKUVMYITIHURYHTIPWTXAQRXCVOXDWCYLYFEFYMYJYMC
      YFEYHYFMYIYGKYHYFIPQRXEVIXFXGXRXTUHFXTTXHYBUHFYCYEXLXRXTXOXPXTKFXQAXIULZX
      GXRXTUVNXJXRYBXPXOYBKFXQBXIUKXGXTYBXKXMXN $.
  $}

  $( The prime-counting function ` ppi ` does not change off the integers.
     (Contributed by Mario Carneiro, 18-Sep-2014.) $)
  ppifl $p |- ( A e. RR -> ( ppi ` ( |_ ` A ) ) = ( ppi ` A ) ) $=
    ( cr wcel cc0 cicc co cprime cin chash cfv c2 cfl cfz ppisval fveq2d ppival
    cppi cz wceq flcl ppival2 syl 3eqtr4rd ) ABCZDAEFGHZIJKALJZMFGHZIJZAQJUFQJZ
    UDUEUGIANOAPUDUFRCUIUHSATUFUAUBUC $.

  $( The prime-counting function ` ppi ` cannot locally increase faster than
     the identity function.  (Contributed by Mario Carneiro, 21-Sep-2014.) $)
  ppip1le $p |- ( A e. RR -> ( ppi ` ( A + 1 ) ) <_ ( ( ppi ` A ) + 1 ) ) $=
    ( cr wcel cfl cfv c1 caddc co cppi cle cz wa wceq cn0 peano2re adantr ppicl
    syl nn0red ppifl wbr flcl cprime zre ppiprm eqle syl2anc wn ppinprm eqbrtrd
    lep1d pm2.61dan 1z fladdz mpan2 fveq2d eqtr3d oveq1d 3brtr3d ) ABCZADEZFGHZ
    IEZVAIEZFGHZAFGHZIEZAIEZFGHJUTVAKCZVCVEJUAZAUBVIVBUCCZVJVIVKLZVCBCVCVEMVJVL
    VCVLVBBCZVCNCVIVMVKVIVABCZVMVAUDZVAORPVBQRSVAUEVCVEUFUGVIVKUHZLZVCVDVEJVAUI
    VQVDVIVDBCVPVIVDVIVNVDNCVOVAQRSPUKUJULRUTVFDEZIEZVCVGUTVRVBIUTFKCVRVBMUMAFU
    NUOUPUTVFBCVSVGMAOVFTRUQUTVDVHFGATURUS $.

  $( The prime-counting function ` ppi ` is weakly increasing.  (Contributed by
     Mario Carneiro, 19-Sep-2014.) $)
  ppiwordi $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) ->
    ( ppi ` A ) <_ ( ppi ` B ) ) $=
    ( cr wcel cle wbr cc0 cicc cprime cin chash cfv cppi cfn wss ppifi 3ad2ant1
    co syl wceq w3a cdom simp2 0red 0le0 simp3 iccss syl22anc ssrin ssdomg sylc
    a1i wb hashdom syl2anc mpbird ppival 3brtr4d ) ACDZBCDZABEFZUAZGAHRZIJZKLZG
    BHRZIJZKLZAMLZBMLZEVBVEVHEFZVDVGUBFZVBVGNDZVDVGOZVLVBUTVMUSUTVAUCZBPSZVBVCV
    FOZVNVBGCDUTGGEFZVAVQVBUDVOVRVBUEULUSUTVAUFGBGAUGUHVCVFIUISVDVGNUJUKVBVDNDZ
    VMVKVLUMUSUTVSVAAPQVPVDVGNUNUOUPUSUTVIVETVAAUQQVBUTVJVHTVOBUQSUR $.

  $( The difference of the prime-counting function ` ppi ` at two points counts
     the number of primes in an interval.  (Contributed by Mario Carneiro,
     21-Sep-2014.) $)
  ppidif $p |- ( N e. ( ZZ>= ` M ) -> ( ( ppi ` N ) - ( ppi ` M ) ) =
    ( # ` ( ( ( M + 1 ) ... N ) i^i Prime ) ) ) $=
    ( cfv wcel cmin co c2 cle wbr cfz cprime cin chash cz wceq sylancl c0 mp2an
    syl cfn cuz cppi cif c1 caddc cun eluzelz eluzel2 2z ifcl a1i zred 2re min2
    cr eluz2 syl3anbrc ppival2g syl2anc min1 id elfzuzb sylanbrc fzsplit ineq1d
    indir syl6eq fveq2d clt ltp1d fzdisj inindir 3eqtr3g fzfi inss1 ssfi hashun
    0in wss mp3an12 3eqtrd oveq12d cc cn0 hashcl ax-mp nn0cni pncan2 ) BAUACDZB
    UBCZAUBCZEFAGHIZAGUCZAJFZKLZMCZAUDUEFZBJFZKLZMCZUEFZWPEFZWTWIWJXAWKWPEWIWJW
    MBJFZKLZMCZWOWSUFZMCZXAWIBNDGWMUACZDZWJXEOABUGWIWMNDZGNDZWMGHIZXIWIANDZXKXJ
    ABUHZUIWLAGNUJPZXKWIUIUKWIAUODZGUODZXLWIAXNULZUMAGUNPWMGUPUQZBWMURUSWIXDXFM
    WIXDWNWRUFZKLXFWIXCXTKWIAXCDZXCXTOWIAXHDZWIYAWIXJXMWMAHIZYBXOXNWIXPXQYCXRUM
    AGUTPWMAUPUQWIVAAWMBVBVCAWMBVDSVEWNWRKVFVGVHWIWOWSLZQOZXGXAOZWIWNWRLZKLQKLY
    DQWIYGQKWIAWQVIIYGQOWIAXRVJWMAWQBVKSVEWNWRKVLKVRVMWOTDZWSTDZYEYFWNTDWOWNVSY
    HWMAVNWNKVOWNWOVPRZWRTDWSWRVSYIWQBVNWRKVOWRWSVPRZWOWSVQVTSWAWIXMXIWKWPOXNXS
    AWMURUSWBWPWCDWTWCDXBWTOWPYHWPWDDYJWOWEWFWGWTYIWTWDDYKWSWEWFWGWPWTWHRVG $.

  $( The prime-counting function ` ppi ` at ` 1 ` .  (Contributed by Mario
     Carneiro, 21-Sep-2014.) $)
  ppi1 $p |- ( ppi ` 1 ) = 0 $=
    ( c1 cppi cfv c2 cfz co cprime cin chash cc0 cz wcel wceq ppival2 ax-mp clt
    1z c0 wbr eqtri 1lt2 wb 2z fzn mp2an mpbi ineq1i 0in fveq2i hash0 ) ABCZDAE
    FZGHZICZJAKLZUKUNMQANOUNRICJUMRIUMRGHRULRGADPSZULRMZUADKLUOUPUQUBUCQDAUDUEU
    FUGGUHTUIUJTT $.

  $( The Chebyshev function at ` 1 ` .  (Contributed by Mario Carneiro,
     22-Sep-2014.) $)
  cht1 $p |- ( theta ` 1 ) = 0 $=
    ( vp c1 ccht cfv cc0 cicc co cprime cin csu c0 wcel wceq 1re ax-mp c2 cz 1z
    cfz 3eqtri cv clog cr chtval cfl ppisval flid oveq2i clt wbr 1lt2 wb 2z fzn
    mp2an mpbi eqtri ineq1i 0in sumeq1i sum0 ) BCDZEBFGHIZAUAUBDZAJZKVDAJEBUCLZ
    VBVEMNBAUDOVCKVDAVCPBUEDZSGZHIZKHIKVFVCVIMNBUFOVHKHVHPBSGZKVGBPSBQLZVGBMRBU
    GOUHBPUIUJZVJKMZUKPQLVKVLVMULUMRPBUNUOUPUQURHUSTUTVDAVAT $.

  ${
    $d p k $.
    $( The von Mangoldt function at ` 1 ` .  (Contributed by Mario Carneiro,
       9-Apr-2016.) $)
    vma1 $p |- ( Lam ` 1 ) = 0 $=
      ( vp vk c1 cv cexp co wceq cn wrex cprime wn cvma cfv cc0 wcel wa clt wbr
      1red cuz prmuz2 adantr eluz2b2 sylib simpld nnred cn0 nnnn0 adantl simprd
      c2 reexpcld cle nncnd exp1d simpr nnuz syl6eleq leexp2ad eqbrtrrd ltletrd
      nnge1d ltned neneqd nrexdv nrex wne wb 1nn isppw2 ax-mp necon1bbii mpbi )
      CADZBDZEFZGZBHIZAJIZKCLMZNGVRAJVNJOZVQBHWAVOHOZPZCVPWCCVPWCSZWCCVNVPWDWCV
      NWCVNHOZCVNQRZWCVNUKTMOZWEWFPWAWGWBVNUAUBVNUCUDZUEZUFZWCVNVOWJWBVOUGOWAVO
      UHUIULWCWEWFWHUJWCVNCEFVNVPUMWCVNWCVNWIUNUOWCVNCVOWJWCVNWIVBWCVOHCTMWAWBU
      PUQURUSUTVAVCVDVEVFVSVTNCHOVTNVGVSVHVICBAVJVKVLVM $.

    $( The second Chebyshev function at ` 1 ` .  (Contributed by Mario
       Carneiro, 9-Apr-2016.) $)
    chp1 $p |- ( psi ` 1 ) = 0 $=
      ( vx c1 cchp cfv cfl cfz co cv cvma csu cc0 cr wcel wceq 1re chpval ax-mp
      elfz1eq fveq2d vma1 syl6eq cz flid oveq2i eleq2s sumeq2i cuz wss cfn fzfi
      1z wo olci sumz 3eqtri ) BCDZBBEDZFGZAHZIDZAJZURKAJZKBLMUPVANOBAPQURUTKAU
      TKNUSBBFGZURUSVCMZUTBIDKVDUSBIUSBRSTUAUQBBFBUBMUQBNUKBUCQUDUEUFURBUGDUHZU
      RUIMZULVBKNVFVEBUQUJUMURABUNQUO $.

    ppi1i.m $e |- M e. NN0 $.
    ppi1i.n $e |- N = ( M + 1 ) $.
    ppi1i.p $e |- ( ppi ` M ) = K $.
    ${
      ppi1i.1 $e |- N e. Prime $.
      $( Inference form of ~ ppiprm .  (Contributed by Mario Carneiro,
         21-Sep-2014.) $)
      ppi1i $p |- ( ppi ` N ) = ( K + 1 ) $=
        ( cppi cfv c1 caddc co fveq2i cz wcel cprime wceq nn0zi eqeltrri ppiprm
        mp2an oveq1i 3eqtri ) CHIBJKLZHIZBHIZJKLZAJKLCUDHEMBNOUDPOUEUGQBDRCUDPE
        GSBTUAUFAJKFUBUC $.
    $}

    ${
      ppi2i.1 $e |- -. N e. Prime $.
      $( Inference form of ~ ppinprm .  (Contributed by Mario Carneiro,
         21-Sep-2014.) $)
      ppi2i $p |- ( ppi ` N ) = K $=
        ( cppi cfv c1 caddc co fveq2i cz wcel cprime wn wceq nn0zi eleq1i mp2an
        mtbi ppinprm 3eqtri ) CHIBJKLZHIZBHIZACUEHEMBNOUEPOZQUFUGRBDSCPOUHGCUEP
        ETUBBUCUAFUD $.
    $}
  $}

  $( The prime-counting function ` ppi ` at ` 2 ` .  (Contributed by Mario
     Carneiro, 21-Sep-2014.) $)
  ppi2 $p |- ( ppi ` 2 ) = 1 $=
    ( c2 cppi cfv cc0 c1 caddc co 1nn0 df-2 ppi1 2prm ppi1i 1e0p1 eqtr4i ) ABCD
    EFGEDEAHIJKLMN $.

  $( The prime-counting function ` ppi ` at ` 3 ` .  (Contributed by Mario
     Carneiro, 21-Sep-2014.) $)
  ppi3 $p |- ( ppi ` 3 ) = 2 $=
    ( c3 cppi cfv c1 caddc co c2 2nn0 df-3 ppi2 3prm ppi1i df-2 eqtr4i ) ABCDDE
    FGDGAHIJKLMN $.

  $( The Chebyshev function at ` 2 ` .  (Contributed by Mario Carneiro,
     22-Sep-2014.) $)
  cht2 $p |- ( theta ` 2 ) = ( log ` 2 ) $=
    ( c2 ccht c1 caddc co clog df-2 fveq2i cz wcel cprime wceq 1z 2prm eqeltrri
    cfv chtprm mp2an cc0 cht1 eqcomi oveq12i crp cr relogcl ax-mp recni addid2i
    2rp eqtr3i 3eqtri ) ABPCCDEZBPZCBPZULFPZDEZAFPZAULBGHCIJULKJUMUPLMAULKGNOCQ
    RSUQDEUPUQSUNUQUODUNSTUAAULFGHUBUQUQAUCJUQUDJUIAUEUFUGUHUJUK $.

  $( The Chebyshev function at ` 3 ` .  (Contributed by Mario Carneiro,
     22-Sep-2014.) $)
  cht3 $p |- ( theta ` 3 ) = ( log ` 6 ) $=
    ( c3 ccht cfv c2 c1 caddc co clog c6 df-3 fveq2i cz wcel cprime 2z eqeltrri
    wceq 3prm mp2an crp chtprm cmul 2rp 3re 3pos elrpii relogmul 3t2e6 mulcomli
    3cn 2cn cht2 eqcomi oveq12i 3eqtr3ri 3eqtri ) ABCDEFGZBCZDBCZUQHCZFGZIHCZAU
    QBJKDLMUQNMURVAQOAUQNJRPDUASDAUBGZHCZDHCZAHCZFGZVBVADTMATMVDVGQUCAUDUEUFDAU
    GSVCIHADIUJUKUHUIKVEUSVFUTFUSVEULUMAUQHJKUNUOUP $.

  $( Closure of the prime-counting function ` ppi ` in the positive integers.
     (Contributed by Mario Carneiro, 21-Sep-2014.) $)
  ppinncl $p |- ( ( A e. RR /\ 2 <_ A ) -> ( ppi ` A ) e. NN ) $=
    ( cr wcel c2 cle wbr wa cppi cfv cz c1 cn0 ppicl adantr nn0zd ppi2 ppiwordi
    cn 2re mp3an1 syl5eqbrr elnnz1 sylanbrc ) ABCZDAEFZGZAHIZJCKUGEFUGRCUFUGUDU
    GLCUEAMNOUFKDHIZUGEPDBCUDUEUHUGEFSDAQTUAUGUBUC $.

  $( Closure of the Chebyshev function in the positive reals.  (Contributed by
     Mario Carneiro, 22-Sep-2014.) $)
  chtrpcl $p |- ( ( A e. RR /\ 2 <_ A ) -> ( theta ` A ) e. RR+ ) $=
    ( cr wcel c2 cle wbr wa ccht cfv chtcl adantr cc0 clog 0red crp c1 clt 1lt2
    2re mp1i rplogcl mp2an rpre rpgt0 chtwordi mp3an1 syl5eqbrr ltletrd elrpd
    cht2 ) ABCZDAEFZGZAHIZUKUNBCULAJKZUMLDMIZUNUMNUPOCZUPBCUMDBCZPDQFUQSRDUAUBZ
    UPUCTUOUQLUPQFUMUSUPUDTUMUPDHIZUNEUJURUKULUTUNEFSDAUEUFUGUHUI $.

  $( The prime-counting function ` ppi ` is zero iff its argument is less than
     ` 2 ` .  (Contributed by Mario Carneiro, 22-Sep-2014.) $)
  ppieq0 $p |- ( A e. RR -> ( ( ppi ` A ) = 0 <-> A < 2 ) ) $=
    ( cr wcel cppi cfv cc0 wceq c2 clt wbr wn cle wne wb 2re wa ex c1 adantr cz
    lenlt mpan ppinncl nnne0d sylbird necon4bd cfl reflcl 1red caddc co 2z fllt
    mpan2 biimpa df-2 syl6breq 1z zleltp1 sylancl mpbird ppiwordi syl3anc ppifl
    flcl ppi1 a1i 3brtr3d cn0 ppicl nn0le0eq0 syl mpbid impbid ) ABCZADEZFGZAHI
    JZVOVRVPFVOVRKZHALJZVPFMZHBCVOVTVSNOHAUAUBVOVTWAVOVTPVPAUCUDQUEUFVOVRVQVOVR
    PZVPFLJZVQWBAUGEZDEZRDEZVPFLWBWDBCZRBCWDRLJZWEWFLJVOWGVRAUHSWBUIWBWHWDRRUJU
    KZIJZWBWDHWIIVOVRWDHIJZVOHTCVRWKNULAHUMUNUOUPUQWBWDTCZRTCWHWJNVOWLVRAVESURW
    DRUSUTVAWDRVBVCVOWEVPGVRAVDSWFFGWBVFVGVHWBVPVICZWCVQNVOWMVRAVJSVPVKVLVMQVN
    $.

  $( The prime-counting function ` ppi ` is strictly less than the identity.
     (Contributed by Mario Carneiro, 22-Sep-2014.) $)
  ppiltx $p |- ( A e. RR+ -> ( ppi ` A ) < A ) $=
    ( wcel cfv cn cppi clt wbr cc0 wceq wa cr cn0 syl adantr c2 cfz co cfn cle
    c1 crp cfl rpre ppicl nn0red reflcl cprime cin chash csdm wpss fzfi wss wne
    inss1 cuz 2eluzge1 fzss1 mp1i wn simpr nnuz syl6eleq eluzfz1 1re 2re ltnlei
    1lt2 mpbi elfzle1 mto nelne1 sylancl necomd df-pss sylanbrc sspsstr sylancr
    php3 wb ssfi mp2an hashsdom sylibr flcld ppival2 ppifl eqtr3d rpge0 syl2anc
    cz flge0nn0 hashfz1 3brtr3d flle ltletrd fveq2d 2pos 0re ppieq0 ax-mp mpbir
    syl6eq rpgt0 eqbrtrd wo elnn0 sylib mpjaodan ) AUABZAUBCZDBZAECZAFGXKHIZXJX
    LJZXMXKAXJXMKBXLXJXMXJAKBZXMLBAUCZAUDMUENXJXKKBZXLXJXPXRXQAUFMNXJXPXLXQNZXO
    OXKPQZUGUHZUICZTXKPQZUICZXMXKFXOYAYCUJGZYBYDFGZXOYCRBZYAYCUKZYETXKULZXOYAXT
    UMZXTYCUKZYHXTUGUOZXOXTYCUMZXTYCUNYKOTUPCZBYMXOUQOTXKURUSXOYCXTXOTYCBZTXTBZ
    UTYCXTUNXOXKYNBYOXOXKDYNXJXLVAVBVCTXKVDMYPOTSGZTOFGYQUTVHTOVEVFVGVITOXKVJVK
    TYCXTVLVMVNXTYCVOVPYAXTYCVQVRYCYAVSVRYARBZYGYFYEVTXTRBYJYROXKULYLXTYAWAWBYI
    YAYCWCWBWDXJYBXMIXLXJXKECZYBXMXJXKWKBYSYBIXJAXQWEXKWFMXJXPYSXMIZXQAWGMZWHNX
    JYDXKIZXLXJXKLBZUUBXJXPHASGUUCXQAWIAWLWJZXKWMMNWNXOXPXKASGXSAWOMWPXJXNJZXMH
    AFUUEYSXMHXJYTXNUUANUUEYSHECZHUUEXKHEXJXNVAWQUUFHIZHOFGZWRHKBUUGUUHVTWSHWTX
    AXBXCWHXJHAFGXNAXDNXEXJUUCXLXNXFUUDXKXGXHXI $.

  ${
    $d k n p $.  $d k p A $.  $d k F $.
    prmorcht.1 $e |- F = ( n e. NN |-> if ( n e. Prime , n , 1 ) ) $.
    $( Relate the primorial (product of the first ` n ` primes) to the
       Chebyshev function.  (Contributed by Mario Carneiro, 22-Sep-2014.) $)
    prmorcht $p |- ( A e. NN ->
      ( exp ` ( theta ` A ) ) = ( seq 1 ( x. , F ) ` A ) ) $=
      ( vk cn wcel cfv ce cprime clog cc0 cif c1 co csu wceq syl eqtrd cc caddc
      vp ccht cv cmpt cseq cmul cfz cin cicc cr nnre chtval cfl c2 cuz 2eluzge1
      ppisval2 sylancl cz nnz flid oveq2d ineq1d sumeq1d wss inss1 sseli elfznn
      wral wa adantl nnrpd relogcld recnd sylan2 ralrimiva cfn fzfi olci sumss2
      wo mpan2 sylancr elin baibr ifbid sumeq2i syl6eqr eleq1 ifbieq1d eqid 0cn
      fveq2 fvex elexi ifex fvmpt elnnuz biimpi ifcl fsumser fveq2d addcl efadd
      eqeltrd 1nn reeflogd fvif log1 ifeq2 ax-mp eqtri id vex 3eqtr4d seqhomo )
      AFGZAUCHZIHAUABFBUDZJGZXTKHZLMZUEZNUFHZIHAUGCNUFHXRXSYEIXRXSNAUHOZEUDZJGZ
      YGKHZLMZEPZYEXRXSYFYGYFJUIZGZYILMZEPZYKXRXSLAUJOJUIZYIEPZYOXRAUKGZXSYQQAU
      LZAEUMRXRYQYLYIEPZYOXRYPYLYIEXRYPNAUNHZUHOZJUIZYLXRYRUONUPHZGYPUUCQYSUQAN
      URUSXRUUBYFJXRUUAANUHXRAUTGUUAAQAVAAVBRVCVDSVEXRYLYFVFZYITGZEYLVJZYTYOQZY
      FJVGZXRUUFEYLYMXRYGYFGZUUFYLYFYGUUIVHXRUUJVKZYIUUKYGUUKYGUUJYGFGZXRYGAVIV
      LZVMVNVOZVPVQUUEUUGVKYFUUDVFZYFVRGZWBUUHUUPUUONAVSVTYLYFYIENWAWCWDSSYFYJY
      NEUUJYHYMYILYMUUJYHYGYFJWEWFWGWHWIXRYJEYDNAUUKUULYGYDHZYJQUUMBYGYCYJFYDXT
      YGQZYAYHYBYILXTYGJWJZXTYGKWNWKYDWLYHYILYGKWOLTWMWPWQWRRZXRAUUDGAWSWTZUUKU
      UFLTGYJTGUUNWMYHYILTXAUSZXBSXCXREUBUAUGTYDCINAYGTGUBUDZTGVKZYGUVCUAOZTGXR
      YGUVCXDVLUUKUUQYJTUUTUVBXFUVAUVDUVEIHYGIHUVCIHUGOQXRYGUVCXEVLUUKYHYGNMZKH
      ZIHUVFUUQIHYGCHZUUKUVFUUKUVFUUKUULNFGUVFFGUUMXGYHYGNFXAUSVMXHUUKUUQUVGIUU
      KUUQYJUVGUUTUVGYHYINKHZMZYJYHYGNKXIUVILQUVJYJQXJYHUVILYIXKXLXMWIXCUUKUULU
      VHUVFQUUMBYGYAXTNMUVFFCUURYAYHXTYGNUUSUURXNWKDYHYGNEXONFXGWPWQWRRXPXQS $.
  $}

  ${
    $d p A $.  $d p B $.
    $( Lemma for ~ mumul .  A multiple of a non-squarefree number is
       non-squarefree.  (Contributed by Mario Carneiro, 3-Oct-2014.) $)
    mumullem1 $p |- ( ( ( A e. NN /\ B e. NN ) /\ ( mmu ` A ) = 0 ) ->
      ( mmu ` ( A x. B ) ) = 0 ) $=
      ( vp cn wcel wa cmu cfv cc0 wceq co cdvds wbr cprime cz syl nnz wb isnsqf
      wrex cmul cv c2 cexp wi adantl zsqcl ad2antrr ad2antlr dvdsmultr1 syl3anc
      prmz reximdva adantr nnmulcl 3imtr4d imp ) ADEZBDEZFZAGHIJZABUAKZGHIJZUTC
      UBZUCUDKZALMZCNTZVEVBLMZCNTZVAVCUTVFVHCNUTVDNEZFZVEOEZAOEZBOEZVFVHUEVKVDO
      EZVLVJVOUTVDULUFVDUGPURVMUSVJAQUHUSVNURVJBQUIVEABUJUKUMURVAVGRUSACSUNUTVB
      DEVCVIRABUOVBCSPUPUQ $.

    $( Lemma for ~ mumul .  The product of two coprime squarefree numbers is
       squarefree.  (Contributed by Mario Carneiro, 3-Oct-2014.) $)
    mumullem2 $p |- ( ( ( A e. NN /\ B e. NN /\ ( A gcd B ) = 1 ) /\
      ( ( mmu ` A ) =/= 0 /\ ( mmu ` B ) =/= 0 ) ) ->
      ( mmu ` ( A x. B ) ) =/= 0 ) $=
      ( vp wcel co c1 wceq cc0 wne wa cpc cle wbr cprime wral cr cc sylancr 1re
      wb cn cgcd w3a cmu cfv cmul cv r19.26 caddc wi simpr simpl1 nn0red simpl2
      pccld 1red le2add syl22anc cmin wn ax-1ne0 cif simpl3 oveq2d nnzd syl3anc
      cz pcgcd pc1 adantl 3eqtr3d ifeq12 syl5eqr eqeq1d syl5ibrcom necon3ad mpi
      ax-1cn recnd subeq0 anbi12d mtbird adantr eqcom readdcli nn0addcld syl6bb
      ifid recni addsub4d bitr3d subge0 resubcl add20 an4s ex syl2anc imp bitrd
      sylbird syl5bb necon3abid mpbird jcad clt nnz nnne0 jca pcmul breq1d 1nn0
      syl nn0leltp1 sylancl ltlen 3bitrd sylibrd ralimdva syl5bir issqf 3adant3
      cn0 bi2anan9 nnmulcl 3imtr4d ) AUADZBUADZABUBEZFGZUCZAUDUEHIZBUDUEHIZJZAB
      UFEZUDUEHIZYJCUGZAKEZFLMZCNOZYPBKEZFLMZCNOZJZYPYNKEZFLMZCNOZYMYOUUCYRUUAJ
      ZCNOYJUUFYRUUACNUHYJUUGUUECNYJYPNDZJZUUGYQYTUIEZFFUIEZLMZUUKUUJIZJZUUEUUI
      UUGUULUUMUUIYQPDZYTPDZFPDZUUQUUGUULUJUUIYQUUIYPAYJUUHUKZYFYGYIUUHULZUOZUM
      ZUUIYTUUIYPBUURYFYGYIUUHUNZUOZUMZUUIUPZUVEYQYTFFUQURUUIUUGUUMUUIUUGJZUUMF
      YQUSEZHGZFYTUSEZHGZJZUTZUUIUVLUUGUUIUVKFYQGZFYTGZJZUUIFHIUVOUTVAUUIUVOFHU
      UIFHGUVOYQYTLMZYQYTVBZHGUUIYPYHKEZYPFKEZUVQHUUIYHFYPKYFYGYIUUHVCVDUUIUUHA
      VGDZBVGDZUVRUVQGUURUUIAUUSVEUUIBUVBVEABYPVHVFUUHUVSHGYJYPVIVJVKUVOFUVQHUV
      OFUVPFFVBUVQUVPFWHUVPFYQFYTVLVMVNVOVPVQUUIUVHUVMUVJUVNUUIFQDZYQQDUVHUVMTV
      RUUIYQUVAVSZFYQVTRUUIUWBYTQDUVJUVNTVRUUIYTUVDVSZFYTVTRWAWBWCUVFUVKUUKUUJU
      UKUUJGZUUJUUKGZUVFUVKUUKUUJWDZUVFUWFUVGUVIUIEZHGZUVKUUIUWFUWITUUGUUIUUKUU
      JUSEZHGZUWFUWIUUIUWKUWEUWFUUIUUKQDUUJQDUWKUWETUUKFFSSWEZWIUUIUUJUUIUUJUUI
      YQYTUUTUVCWFZUMZVSUUKUUJVTRUWGWGUUIUWJUWHHUUIFFYQYTUUIFUVEVSZUWOUWCUWDWJV
      NWKWCUUIUUGUWIUVKTZUUIUUGHUVGLMZHUVILMZJZUWPUUIUWQYRUWRUUAUUIUUQUUOUWQYRT
      SUVAFYQWLRUUIUUQUUPUWRUUATSUVDFYTWLRWAUUIUVGPDZUVIPDZUWSUWPUJUUIUUQUUOUWT
      SUVAFYQWMRUUIUUQUUPUXASUVDFYTWMRUWTUXAJUWSUWPUWTUWQUXAUWRUWPUVGUVIWNWOWPW
      QWTWRWSXAXBXCWPXDUUIUUEUUJFLMZUUJUUKXEMZUUNUUIUUDUUJFLUUIUUHUVTAHIZJZUWAB
      HIZJZUUDUUJGUURUUIYFUXEUUSYFUVTUXDAXFAXGXHXLUUIYGUXGUVBYGUWAUXFBXFBXGXHXL
      ABYPXIVFXJUUIUUJYBDFYBDUXBUXCTUWMXKUUJFXMXNUUIUUJPDUUKPDUXCUUNTUWNUWLUUJU
      UKXOXNXPXQXRXSYFYGYMUUCTYIYFYKYSYGYLUUBACXTBCXTYCYAYJYNUADZYOUUFTYFYGUXHY
      IABYDYAYNCXTXLYEWR $.

    $( The M&ouml;bius function is a multiplicative function.  This is one of
       the primary interests of the M&ouml;bius function as an arithmetic
       function.  (Contributed by Mario Carneiro, 3-Oct-2014.) $)
    mumul $p |- ( ( A e. NN /\ B e. NN /\ ( A gcd B ) = 1 ) ->
      ( mmu ` ( A x. B ) ) = ( ( mmu ` A ) x. ( mmu ` B ) ) ) $=
      ( vp cn wcel co c1 wceq cmul cmu cfv cc0 wa syl cdvds wbr cprime crab wss
      cz cgcd w3a simpl2 mucl zcnd mul02d simpr oveq1d 3adantl3 3eqtr4rd simpl1
      mumullem1 mul01d oveq2d cc nncn mulcom syl2an fveq2d adantr ancom1s eqtrd
      wne cneg cv chash cexp nnmulcld mumullem2 muval2 syl2anc caddc neg1cn a1i
      cfn cn0 cfz fzfi prmnn ssriv rabss2 ax-mp dvdsssfz1 syl5ss sylancr hashcl
      ssfi expaddd cun wo wb nnzd adantlr euclemma syl3anc rabbidva syl6eqr cin
      unrab inrab wral nprmdvds1 adantl prmz dvdsgcd simpll3 breq2d sylibd mtod
      c0 wn wi ralrimiva rabeq0 sylibr syl5eq hashun simprl oveq12d pm2.61da2ne
      simprr eqtr4d ) ADEZBDEZABUAFZGHZUBZABIFZJKZAJKZBJKZIFZHYJLYKLYGYJLHZMZLY
      KIFLYLYIYNYKYNYKYNYDYKTEYCYDYFYMUCBUDNUEUFYNYJLYKIYGYMUGUHYCYDYMYILHZYFAB
      ULUIUJYGYKLHZMZYJLIFLYLYIYQYJYQYJYQYCYJTEYCYDYFYPUKAUDNUEUMYQYKLYJIYGYPUG
      UNYCYDYPYOYFYCYDMZYPMYIBAIFZJKZLYRYIYTHYPYRYHYSJYCAUOEBUOEYHYSHYDAUPBUPAB
      UQURUSUTYDYCYPYTLHBAULVAVBUIUJYGYJLVCZYKLVCZMZMZYIGVDZCVEZYHOPZCQRZVFKZVG
      FZYLUUDYHDEYILVCYIUUJHUUDABYCYDYFUUCUKZYCYDYFUUCUCZVHABVIYHCVJVKUUDUUEUUF
      AOPZCQRZVFKZUUFBOPZCQRZVFKZVLFZVGFUUEUUOVGFZUUEUURVGFZIFUUJYLUUDUUEUUOUUR
      UUEUOEUUDVMVNUUDUUQVOEZUURVPEUUDGBVQFZVOEUUQUVCSUVBGBVRUUDUUQUUPCDRZUVCQD
      SZUUQUVDSCQDUUFVSVTZUUPCQDWAWBUUDYDUVDUVCSUULBCWCNWDUVCUUQWGWEZUUQWFNUUDU
      UNVOEZUUOVPEUUDGAVQFZVOEUUNUVISUVHGAVRUUDUUNUUMCDRZUVIUVEUUNUVJSUVFUUMCQD
      WAWBUUDYCUVJUVISUUKACWCNWDUVIUUNWGWEZUUNWFNWHUUDUUIUUSUUEVGUUDUUIUUNUUQWI
      ZVFKZUUSUUDUUHUVLVFUUDUUHUUMUUPWJZCQRUVLUUDUUGUVNCQUUDUUFQEZMZUVOATEZBTEZ
      UUGUVNWKUUDUVOUGYGUVOUVQUUCYGUVOMZAYCYDYFUVOUKWLWMZYGUVOUVRUUCUVSBYCYDYFU
      VOUCWLWMZUUFABWNWOWPUUMUUPCQWSWQUSUUDUVHUVBUUNUUQWRZXJHUVMUUSHUVKUVGUUDUW
      BUUMUUPMZCQRZXJUUMUUPCQWTUUDUWCXKZCQXAUWDXJHUUDUWECQUVPUWCUUFGOPZUVOUWFXK
      UUDUUFXBXCUVPUWCUUFYEOPZUWFUVPUUFTEZUVQUVRUWCUWGXLUVOUWHUUDUUFXDXCUVTUWAU
      UFABXEWOUVPYEGUUFOYCYDYFUUCUVOXFXGXHXIXMUWCCQXNXOXPUUNUUQXQWOVBUNUUDYJUUT
      YKUVAIUUDYCUUAYJUUTHUUKYGUUAUUBXRACVJVKUUDYDUUBYKUVAHUULYGUUAUUBYABCVJVKX
      SUJYBXT $.
  $}

  ${
    $d k n p q x y z G $.  $d n p q x z N $.  $d n p z S $.
    sqff1o.1 $e |- S = { x e. NN | ( ( mmu ` x ) =/= 0 /\ x || N ) } $.
    sqff1o.2 $e |- F = ( n e. S |-> { p e. Prime | p || n } ) $.
    sqff1o.3 $e |- G = ( n e. NN |-> ( p e. Prime |-> ( p pCnt n ) ) ) $.
    $( There is a bijection from the squarefree divisors of a number ` N ` to
       the powerset of the prime divisors of ` N ` .  Among other things, this
       implies that a number has ` 2 ^ k ` squarefree divisors where ` k ` is
       the number of prime divisors, and a squarefree number has ` 2 ^ k `
       divisors (because all divisors of a squarefree number are squarefree).
       The inverse function to ` F ` takes the product of all the primes in
       some subset of prime divisors of ` N ` .  (Contributed by Mario
       Carneiro, 1-Jul-2015.) $)
    sqff1o $p |- ( N e. NN -> F : S -1-1-onto-> ~P { p e. Prime | p || N } ) $=
      ( cn wcel wbr cprime c1 cc0 wa cn0 wceq cle vz vk vy vq cv cdvds crab cpw
      wel cif cmpt ccnv cfv wss cmu wne weq fveq2 neeq1d anbi12d elrab2 simprbi
      breq1 simprd ad2antlr cz wi prmz adantl simplr sylib simpld nnzd ad2antrr
      nnz dvdstr syl3anc mpan2d ss2rabdv nnex prmnn ssriv ssexi rabex elpw cima
      sylibr cfn cmap co wral 1nn0 0nn0 keepel rgenw eqid fmpt mpbi nn0ex elmap
      wf a1i cfz fzfi wfn wb ffn elpreima mp2b elequ1 ifbid elexi eleq1d biimpa
      fvmpt wn iffalse syl ax-mp adantr syl5ss sylancr sylanbrc wf1o cpc eqtr3d
      elrab ovex ralrimiva issqf mpbird pcelnn syl2anc cvv biantrurd wo adantrr
      simpr id bitrd sylbi 0nnn mtbiri con4i elpwi rabss2 dvdsssfz1 sstrd cnveq
      ssfi imaeq1d 1arith f1ocnv ffvelrni f1ocnvfv2 1arithlem1 fveq1d sylan9req
      f1of oveq1 1le1 0le1 keephyp syl6eqbrr iftrue sselda simpll eqbrtrd pcge0
      nnge1d ex breq1d syl5ibrcom pm2.61d eqbrtrrd pc2dvds jca simplbi ad2antrl
      eqcom mptex fvmpt2 sylancl eqeq1d adantrl f1ocnvfvb csn cc 0cnd 1cnd 0ne1
      cpr pw2f1olem ssrab2 sspwb simprr sseldi pccl elnn0 orcomd mpbid r19.21bi
      syl2anr nnle1eq1 syl5ibcom mpd elpr fmptd prex 3bitr4d mptiniseg syl6eqel
      orim2d 1nn impbid2 rabbidva syl5eq eqeq2d 3bitr3d syl5bb f1o2d ) FKLZCUAB
      GUEZFUFMZGNUGZUHZUYCCUEZUFMZGNUGZUBNUBUAUIZOPUJZUKZEULZUMZDIUYBUYGBLZQZUY
      IUYEUNUYIUYFLUYPUYHUYDGNUYPUYCNLZQZUYHUYGFUFMZUYDUYOUYSUYBUYQUYOUYGUOUMZP
      UPZUYSUYOUYGKLZVUAUYSQZAUEZUOUMZPUPZVUDFUFMZQZVUCAUYGKBACUQZVUFVUAVUGUYSV
      UIVUEUYTPVUDUYGUOURUSVUDUYGFUFVCUTHVAZVBZVDVEUYRUYCVFLZUYGVFLFVFLZUYHUYSQ
      UYDVGUYQVULUYPUYCVHVIUYRUYGUYRVUBVUCUYRUYOVUBVUCQUYBUYOUYQVJVUJVKVLZVMUYB
      VUMUYOUYQFVOZVNUYCUYGFVPVQVRVSUYIUYEUYHGNNKVTGNKUYCWAWBZWCZWDWEWGUYBUAUEZ
      UYFLZQZUYNKLZUYNUOUMZPUPZUYNFUFMZQZUYNBLVUTUYLUCUEZULZKWFZWHLZUCRNWIWJZUG
      ZLZVVAVUTUYLVVJLZUYLULZKWFZWHLZVVLVUTNRUYLXAZVVMVVQVUTUYKRLZUBNWKVVQVVRUB
      NUYJOPRWLWMWNWOUBNRUYKUYLUYLWPZWQWRZXBRNUYLWSVUQWTWGVUTOFXCWJZWHLVVOVWAUN
      VVPOFXDVUTVVOVURVWAAVVOVURVUDVVOLZAUAUIZOPUJZKLZVWCVWBVUDNLZVUDUYLUMZKLZQ
      ZVWEVVQUYLNXEVWBVWIXFVVTNRUYLXGNVUDKUYLXHXIVWFVWHVWEVWFVWGVWDKUBVUDUYKVWD
      NUYLUBAUQUYJVWCOPUBAUAXJXKVVSVWDRVWCOPRWLWMWNXLXOXMXNUUAVWCVWEVWCXPZVWEPK
      LUUBVWJVWDPKVWCOPXQXMUUCUUDXRWBVUTVURUYEVWAVUSVURUYEUNUYBVURUYEUUEVIZVUTU
      YEUYDGKUGZVWANKUNUYEVWLUNVUPUYDGNKUUFXSUYBVWLVWAUNVUSFGUUGXTYAUUHYAVWAVVO
      UUJYBVVIVVPUCUYLVVJVVFUYLSZVVHVVOWHVWMVVGVVNKVVFUYLUUIUUKXMYGYCZVVKKUYLUY
      MKVVKEYDZVVKKUYMYDVVKKUYMXAVVKUCCEGJVVKWPUULZKVVKEUUMVVKKUYMUUSXIUUNXRZVU
      TVVCVVDVUTVVCUDUEZUYNYEWJZOTMZUDNWKZVUTVWTUDNVUTVWRNLZQZVWSUDUAUIZOPUJZOT
      VXCVWRGNUYCUYNYEWJZUKZUMZVXEVWSVUTVXBVXHVWRUYLUMVXEVUTVWRUYLVXGVUTUYNEUMZ
      UYLVXGVUTVWOVVLVXIUYLSVWPVWNKVVKUYLEUUOYBVUTVVAVXIVXGSVWQCEUYNGJUUPXRYFUU
      QUBVWRUYKVXENUYLUBUDUQUYJVXDOPUBUDUAXJXKVVSVXERVXDOPRWLWMWNXLXOUURVXBVXHV
      WSSVUTGVWRVXFVWSNVXGUYCVWRUYNYEUUTVXGWPVWRUYNYEYHXOVIYFZVXDOOTMPOTMVXEOTM
      OPOVXEOTVCPVXEOTVCUVAUVBUVCUVDYIVUTVVAVVCVXAXFVWQUYNUDYJXRYKVUTVVDVWSVWRF
      YEWJZTMZUDNWKZVUTVXLUDNVXCVXEVWSVXKTVXJVXCVXDVXEVXKTMZVUTVXDVXNVGVXBVUTVX
      DVXNVUTVXDQZVXEOVXKTVXDVXEOSVUTVXDOPUVEVIVXOVXKVXOVXKKLZVWRFUFMZVXOVXBVXQ
      VXOVWRUYELVXBVXQQVUTVURUYEVWRVWKUVFUYDVXQGVWRNUYCVWRFUFVCYGVKZVDVXOVXBUYB
      VXPVXQXFVXOVXBVXQVXRVLUYBVUSVXDUVGVWRFYLYMYKUVJUVHUVKXTVXCVXNVXDXPZPVXKTM
      ZVXCVXBVUMVXTVUTVXBYRUYBVUMVUSVXBVUOVNVWRFUVIYMVXSVXEPVXKTVXDOPXQUVLUVMUV
      NUVOYIVUTUYNVFLVUMVVDVXMXFVUTUYNVWQVMUYBVUMVUSVUOXTUYNFUDUVPYMYKUVQVUHVVE
      AUYNKBVUDUYNSZVUFVVCVUGVVDVYAVUEVVBPVUDUYNUOURUSVUDUYNFUFVCUTHVAYCUYGUYNS
      UYNUYGSZUYBUYOVUSQQZVURUYISZUYGUYNUVTVYCUYGEUMZUYLSZGNUYCUYGYEWJZUKZUYLSZ
      VYBVYDVYCVYEVYHUYLVYCVUBVYHYNLVYEVYHSUYOVUBUYBVUSUYOVUBVUCVUJUVRZUVSZGNVY
      GVUQUWACKVYHYNEJUWBUWCUWDVYCVWOVUBVVLVYFVYBXFVWOVYCVWPXBVYKUYBVUSVVLUYOVW
      NUWEKVVKUYGUYLEUWFVQVYCVYIVURVYHULOUWGWFZSZVYDVYCVURNUHZLZVYIQVYHPOUWLZNW
      IWJLZVYMQVYIVYMVYCUBNPOVURVYHYNUWHNYNLVYCVUQXBVYCUWIVYCUWJPOUPVYCUWKXBUWM
      VYCVYOVYIVYCUYFVYNVURUYENUNUYFVYNUNUYDGNUWNUYENUWOWRUYBUYOVUSUWPUWQYOVYCV
      YQVYMVYCNVYPVYHXAZVYQUYBUYOVYRVUSUYPGNVYGVYPVYHUYRVYGPSZVYGOSZYPZVYGVYPLU
      YRVYSVYGKLZYPWUAUYRWUBVYSUYRVYGRLZWUBVYSYPUYQUYQVUBWUCUYPUYQYSUYOVUBUYBVY
      JVIZUYCUYGUWRUXCVYGUWSVKUWTUYRWUBVYTVYSUYRVYGOTMZWUBVYTUYPWUEGNUYPVUAWUEG
      NWKZUYOVUAUYBUYOVUAUYSVUKVLVIUYPVUBVUAWUFXFWUDUYGGYJXRUXAUXBVYGUXDUXEZUXM
      UXFVYGPOUYCUYGYEYHUXGWGVYHWPZUXHYQVYPNVYHPOUXIVUQWTWGYOUXJVYCVYLUYIVURVYC
      VYLVYTGNUGZUYIORLVYLWUISWLGNVYGOVYHRWUHUXKXSUYBUYOWUIUYISVUSUYPVYTUYHGNUY
      RVYTWUBUYHUYRVYTWUBVYTVYGOKVYTYSUXNUXLWUGUXOUYRUYQVUBWUBUYHXFUYPUYQYRVUNU
      YCUYGYLYMYTUXPYQUXQUXRYTUXSUXTUYA $.
  $}

  ${
    $d j k x N $.  $d j k ph $.
    fsumdvdsdiag.1 $e |- ( ph -> N e. NN ) $.
    $( A "diagonal commutation" of divisor sums analogous to ~ fsum0diag .
       (Contributed by Mario Carneiro, 2-Jul-2015.)  (Revised by Mario
       Carneiro, 8-Apr-2016.) $)
    fsumdvdsdiaglem $p |- ( ph ->
    ( ( j e. { x e. NN | x || N } /\ k e. { x e. NN | x || ( N / j ) } ) ->
      ( k e. { x e. NN | x || N } /\ j e. { x e. NN | x || ( N / k ) } ) ) ) $=
      ( cv cdvds wbr cn crab wcel co wa elrabi breq1 elrab cz nnzd cmul simprbi
      cdiv ad2antll adantr simprl dvdsdivcl syl2anc syl dvdstr syl3anc sylanbrc
      wi mp2and ad2antrl wb nnne0d dvdsmulcr syl112anc mpbird divcan1d divcan2d
      cc0 wne nncnd eqtr4d breqtrd ssrab2 sseldi dvdscmulr mpbid jca ex ) ACGZB
      GZEHIZBJKZLZDGZVNEVMUBMZHIZBJKLZNZVRVPLZVMVNEVRUBMZHIZBJKLZNAWBNZWCWFWGVR
      JLZVREHIZWCWAWHAVQVTBVRJOUCZWGVRVSHIZVSEHIZWIWAWKAVQWAWHWKVTWKBVRJVNVRVSH
      PQUAUCZWGVSVPLZWLWGEJLZVQWNAWOWBFUDZAVQWAUEBVMEUFUGZWNVSJLZWLVOWLBVSJVNVS
      EHPQUAUHWGVRRLZVSRLZERLWKWLNWIULWGVRWJSZWGVSWGWNWRWQVOBVSJOUHSZWGEWPSVRVS
      EUIUJUMVOWIBVRJVNVREHPQUKZWGVMJLZVMWDHIZWFVQXDAWAVOBVMJOUNZWGVRVMTMZVRWDT
      MZHIZXEWGXGVSVMTMZXHHWGXGXJHIZWKWMWGWSWTVMRLZVMVBVCXKWKUOXAXBWGVMXFSZWGVM
      XFUPZVMVRVSUQURUSWGXJEXHWGEVMWGEWPVDZWGVMXFVDXNUTWGEVRXOWGVRWJVDWGVRWJUPZ
      VAVEVFWGXLWDRLWSVRVBVCXIXEUOXMWGWDWGVPJWDVOBJVGWGWOWCWDVPLWPXCBVREUFUGVHS
      XAXPVRVMWDVIURVJWEXEBVMJVNVMWDHPQUKVKVL $.

    fsumdvdsdiag.2 $e |- ( ( ph /\ ( j e. { x e. NN | x || N } /\
      k e. { x e. NN | x || ( N / j ) } ) ) -> A e. CC ) $.
    $( A "diagonal commutation" of divisor sums analogous to ~ fsum0diag .
       (Contributed by Mario Carneiro, 2-Jul-2015.)  (Revised by Mario
       Carneiro, 8-Apr-2016.) $)
    fsumdvdsdiag $p |- ( ph ->
   sum_ j e. { x e. NN | x || N } sum_ k e. { x e. NN | x || ( N / j ) } A =
   sum_ k e. { x e. NN | x || N } sum_ j e. { x e. NN | x || ( N / k ) } A ) $=
      ( cv cdvds wbr cn crab cdiv co c1 cfz cfn wcel wa wss fzfid dvdsssfz1 syl
      syl2anc ssrab2 dvdsdivcl sylan sseldi fsumdvdsdiaglem impbid fsumcom2
      ssfi ) ABIZFJKZBLMZUNFDIZNOZJKBLMZUPUNFEIZNOJKBLMZDECAPFQOZRSUPVBUAZUPRSA
      PFUBAFLSZVCGFBUCUDVBUPUMUEZVEAUQUPSZTZPURQOZRSUSVHUAZUSRSVGPURUBVGURLSVIV
      GUPLURUOBLUFAVDVFURUPSGBUQFUGUHUIURBUCUDVHUSUMUEAVFUTUSSTUTUPSUQVASTABDEF
      GUJABEDFGUJUKHUL $.
  $}

  ${
    $d m u v z A $.  $d j B $.  $d j k m u v x z N $.  $d j k m u v ph $.
    fsumdvdscom.1 $e |- ( ph -> N e. NN ) $.
    fsumdvdscom.2 $e |- ( j = ( k x. m ) -> A = B ) $.
    fsumdvdscom.3 $e |- ( ( ph /\ ( j e. { x e. NN | x || N } /\
      k e. { x e. NN | x || j } ) ) -> A e. CC ) $.
    $( A double commutation of divisor sums based on ~ fsumdvdsdiag .  Note
       that ` A ` depends on both ` j ` and ` k ` .  (Contributed by Mario
       Carneiro, 13-May-2016.) $)
    fsumdvdscom $p |- ( ph ->
   sum_ j e. { x e. NN | x || N } sum_ k e. { x e. NN | x || j } A =
   sum_ k e. { x e. NN | x || N } sum_ m e. { x e. NN | x || ( N / k ) } B ) $=
      ( vu cn csu cdiv co wceq wcel syl wa vv vz cv cdvds wbr crab nfcv nfcsb1v
      csb nfsum rabbidv csbeq1a adantr sumeq12dv cbvsumi cmpt csbeq1 c1 cfz cfn
      breq2 wss fzfid dvdsssfz1 ssfi syl2anc wf1o eqid dvdsflip cfv ovex adantl
      oveq2 fvmpt3i ssrab2 simpr sseldi cc ralrimivva nfv nfel1 nfral raleqbidv
      wral eleq1d cbvral sylib fsumcl fsumf1o dvdsdivcl sylan rspcv sylc anasss
      r19.21bi fsumdvdsdiag csbeq1d fsumdvdsdiaglem ex syld impl cvv ovexd cmul
      cc0 wne nncn ad2antrr simpld elrabi divdiv1 syl3anc oveq2d nnmulcl syl2an
      nnne0 jca ddcan eqtrd eqeq2d biimpa csbied sumeq2dv 3eqtrd syl5eq ) ABUCZ
      HUDUEZBMUFZYFEUCZUDUEZBMUFZCFNZENYHYFLUCZUDUEZBMUFZEYMCUIZFNZLNZYHYFHFUCZ
      OPZUDUEZBMUFZDGNZFNZYHYLYQELLYLUGEYOYPFEYOUGZEYMCUHZUJYIYMQZYKYOCYPFUUGYJ
      YNBMYIYMYFUDVAUKZUUGCYPQYSYKREYMCULZUMUNUOAYRYHYFHUAUCZOPZUDUEZBMUFZEUUKC
      UIZFNZUANYHUUBUUNUANZFNUUDAYHYQYHUUOLUAUBYHHUBUCZOPZUPZUUKYMUUKQZYOUUMYPU
      UNFUUTYNUULBMYMUUKYFUDVAUKZUUTYPUUNQYSYOREYMUUKCUQZUMUNAURHUSPZUTRYHUVCVB
      ZYHUTRAURHVCAHMRZUVDIHBVDSUVCYHVEVFAUVEYHYHUUSVGIBUBYHUUSHYHVHUUSVHZVISUU
      JYHRZUUJUUSVJUUKQAUBUUJUURUUKYHUUSUUQUUJHOVMUVFHUUQOVKVNVLAYMYHRZTZYOYPFU
      VIURYMUSPZUTRYOUVJVBZYOUTRUVIURYMVCUVIYMMRUVKUVIYHMYMYGBMVOZAUVHVPVQYMBVD
      SUVJYOVEVFUVIYPVRRZFYOAUVMFYOWDZLYHACVRRZFYKWDZEYHWDUVNLYHWDZAUVOEFYHYKKV
      SUVPUVNELYHUVPLVTUVMEFYOUUEEYPVRUUFWAWBUUGUVOUVMFYKYOUUHUUGCYPVRUUIWEWCWF
      WGZWOWOWHWIABUUNUAFHIAUVGYSUUMRZUUNVRRZAUVGTZUVTFUUMUWAUUKYHRZUVQUVTFUUMW
      DZAUVEUVGUWBIBUUJHWJWKAUVQUVGUVRUMUVNUWCLUUKYHUUTUVMUVTFYOUUMUVAUUTYPUUNV
      RUVBWEWCWLWMWOWNZWPAYHUUPUUCFAYSYHRZTZUUPUUBEHYTGUCZOPZOPZCUIZGNUUCUWFUUB
      UUNUUBUWJUAGUBUUBYTUUQOPZUPZUWHUUJUWHQEUUKUWICUUJUWHHOVMWQUWFURYTUSPZUTRU
      UBUWMVBZUUBUTRUWFURYTVCUWFYTMRZUWNAUVEUWEUWOIUVEUWETYHMYTUVLBYSHWJVQWKZYT
      BVDSUWMUUBVEVFUWFUWOUUBUUBUWLVGUWPBUBUUBUWLYTUUBVHUWLVHZVISUWGUUBRZUWGUWL
      VJUWHQUWFUBUWGUWKUWHUUBUWLUUQUWGYTOVMUWQYTUUQOVKVNVLAUWEUUJUUBRZUVTAUWEUW
      STUVGUVSTZUVTABFUAHIWRAUWTUVTUWDWSWTXAWIUWFUUBUWJDGUWFUWRTZEUWICDXBUXAHUW
      HOXCUXAYIUWIQZTYIYSUWGXDPZQZCDQUXAUXBUXDUXAUWIUXCYIUXAUWIHHUXCOPZOPZUXCUX
      AUWHUXEHOUXAHVRRZYSVRRZYSXEXFZTZUWGVRRZUWGXEXFZTZUWHUXEQUXAUXGHXEXFZAUXGU
      XNTZUWEUWRAUVEUXOIUVEUXGUXNHXGHXPXQSXHZXIUXAYSMRZUXJUWFUXQUWRUWEUXQAYGBYS
      MXJVLZUMUXQUXHUXIYSXGYSXPXQSUXAUWGMRZUXMUWRUXSUWFUUABUWGMXJZVLUXSUXKUXLUW
      GXGUWGXPXQSHYSUWGXKXLXMUXAUXOUXCVRRZUXCXEXFZTZUXFUXCQUXPUXAUXCMRZUYCUWFUX
      QUXSUYDUWRUXRUXTYSUWGXNXOUYDUYAUYBUXCXGUXCXPXQSHUXCXRVFXSXTYAJSYBYCXSYCYD
      YE $.
  $}

  ${
    $d m n x A $.  $d m n x P $.
    dvdsppwf1o.f $e |- F = ( n e. ( 0 ... A ) |-> ( P ^ n ) ) $.
    $( A bijection from the divisors of a prime power to the integers less than
       the prime count.  (Contributed by Mario Carneiro, 5-May-2016.) $)
    dvdsppwf1o $p |- ( ( P e. Prime /\ A e. NN0 ) ->
      F : ( 0 ... A ) -1-1-onto-> { x e. NN | x || ( P ^ A ) } ) $=
      ( wcel cn0 wa cc0 co cexp cdvds wbr cn cpc syl2an cz adantl wceq cfz crab
      vm cprime cv adantr elfznn0 nnexpcl cuz cfv prmz ad2antrr elfzuz3 dvdsexp
      prmnn syl3anc breq1 elrab sylanbrc cle simpl elrabi simplr zexpcl syl2anc
      pccl nnzd simprbi pcdvdstr syl13anc pcidlem breqtrd wb syl mpbir2and wrex
      fznn0 oveq2 breq2d rspcev pcprmpw2 adantrl eqeq2d syl5ibrcom elfzelz pcid
      mpbid eqcomd adantrr impbid f1o2d ) CUDGZBHGZIZDUCJBUAKZAUEZCBLKZMNZAOUBZ
      CDUEZLKZCUCUEZPKZEFWNWTWOGZIZXAOGZXAWQMNZXAWSGWNCOGZWTHGZXFXDWLXHWMCUOUFW
      TBUGZCWTUHQXECRGZXIBWTUIUJGZXGWLXKWMXDCUKZULXDXIWNXJSXDXLWNWTJBUMSCWTBUNU
      PWRXGAXAOWPXAWQMUQURUSWNXBWSGZIZXCWOGZXCHGZXCBUTNZWNWLXBOGZXQXNWLWMVAZWRA
      XBOVBZCXBVFQXOXCCWQPKZBUTXOWLXBRGWQRGZXBWQMNZXCYBUTNWNWLXNXTUFXOXBXNXSWNY
      ASVGXOXKWMYCWLXKWMXNXMULWLWMXNVCZCBVDVEXNYDWNXNXSYDWRYDAXBOWPXBWQMUQURVHS
      ZXBWQCVIVJWNYBBTXNBCVKUFVLXOWMXPXQXRIVMYEXCBVQVNVOWNXDXNIIZWTXCTZXBXATZYG
      YIYHXBCXCLKZTZWNXNYKXDXOXBXAMNZDHVPZYKXOWMYDYMYEYFYLYDDBHWTBTXAWQXBMWTBCL
      VRVSVTVEWNWLXSYMYKVMXNXTYAXBCDWAQWGWBYHXAYJXBWTXCCLVRWCWDYGYHYIWTCXAPKZTZ
      WNXDYOXNXEYNWTWNWLWTRGYNWTTXDXTWTJBWEWTCWFQWHWIYIXCYNWTXBXACPVRWCWDWJWK
      $.
  $}

  ${
    $d m n x A $.  $d m n x N $.  $d m n ph $.
    dvdsflf1o.1 $e |- ( ph -> A e. RR ) $.
    dvdsflf1o.2 $e |- ( ph -> N e. NN ) $.
    dvdsflf1o.f $e |- F = ( n e. ( 1 ... ( |_ ` ( A / N ) ) ) |->
      ( N x. n ) ) $.
    $( A bijection from the numbers less than ` N / A ` to the multiples of
       ` A ` less than ` N ` .  Useful for some sum manipulations.
       (Contributed by Mario Carneiro, 3-May-2016.) $)
    dvdsflf1o $p |- ( ph -> F : ( 1 ... ( |_ ` ( A / N ) ) )
        -1-1-onto-> { x e. ( 1 ... ( |_ ` A ) ) | N || x } ) $=
      ( co cdvds wbr wcel wa cn cle cr wb syl adantr vm c1 cdiv cfl cfv cv crab
      cfz cmul elfznn nnmulcl syl2an nndivred fznnfl simplbda cc0 adantl nngt0d
      clt nnred lemuldiv2 syl112anc mpbird cz nnzd elfzelz zmulcl syl2anc mpbid
      flge flcld fznn mpbir2and dvdsmul1 breq2 elrab sylanbrc simprbi nndivdvds
      elrabi sylan2 lediv1 wceq cc nncnd adantrl adantrr nnne0d divmuld 3bitr4g
      wne eqcom f1o2d ) ADUAUBCFUCJZUDUEZUHJZFBUFZKLZBUBCUDUEZUHJZUGZFDUFZUIJZU
      AUFZFUCJZEIAXBWPMZNZXCWTMZFXCKLZXCXAMXGXHXCOMZXCWSPLZAFOMZXBOMZXJXFHXBWOU
      JZFXBUKULXGXCCPLZXKXGXOXBWNPLZAXFXMXPAWNQMZXFXMXPNRACFGHUMZXBWNUNSUOXGXBQ
      MCQMZFQMZUPFUSLZXOXPRXGXBXFXMAXNUQZUTAXSXFGTZAXTXFAFHUTZTAYAXFAFHURZTXBCF
      VAVBVCXGXSXCVDMZXOXKRYCAFVDMZXBVDMZYFXFAFHVEZXBUBWOVFZFXBVGULCXCVJVHVIXGW
      SVDMZXHXJXKNRAYKXFACGVKTXCWSVLSVMAYGYHXIXFYIYJFXBVNULWRXIBXCWTWQXCFKVOVPV
      QAXDXAMZNZXEWPMZXEOMZXEWNPLZYMFXDKLZYOYLYQAYLXDWTMZYQWRYQBXDWTWQXDFKVOVPV
      RUQYMXDOMZXLYQYORYMYRYSYLYRAWRBXDWTVTZUQXDWSUJSZAXLYLHTXDFVSVHVIYMXDCPLZY
      PYLAYRUUBYTAYRYSUUBAXSYRYSUUBNRGXDCUNSUOWAYMXDQMXSXTYAUUBYPRYMXDUUAUTAXSY
      LGTAXTYLYDTAYAYLYETXDCFWBVBVIYMXQYNYOYPNRAXQYLXRTXEWNUNSVMAXFYLNZNZXEXBWC
      XCXDWCXBXEWCXDXCWCUUDXDFXBAYLXDWDMXFYMXDUUAWEWFAFWDMUUCAFHWETAXFXBWDMYLXG
      XBYBWEWGAFUPWKUUCAFHWHTWIXBXEWLXDXCWLWJWM $.
  $}

  ${
    $d d m n x y A $.  $d m B $.  $d n C $.  $d d m n y ph $.
    dvdsflsumcom.1 $e |- ( n = ( d x. m ) -> B = C ) $.
    dvdsflsumcom.2 $e |- ( ph -> A e. RR ) $.
    dvdsflsumcom.3 $e |- ( ( ph /\ ( n e. ( 1 ... ( |_ ` A ) ) /\
      d e. { x e. NN | x || n } ) ) -> B e. CC ) $.
    $( A sum commutation from ` sum_ n <_ A , sum_ d || n , B ( n , d ) ` to
       ` sum_ d <_ A , sum_ m <_ A / d , B ( n , d m ) ` .  (Contributed by
       Mario Carneiro, 4-May-2016.) $)
    dvdsflsumcom $p |- ( ph ->
   sum_ n e. ( 1 ... ( |_ ` A ) ) sum_ d e. { x e. NN | x || n } B =
   sum_ d e. ( 1 ... ( |_ ` A ) ) sum_ m e. ( 1 ... ( |_ ` ( A / d ) ) ) C ) $=
      ( vy c1 co cv cdvds wbr csu wcel wa cfl cfv cfz cn crab cdiv fzfid elfznn
      cfn wss adantl dvdsssfz1 syl ssfi syl2anc cle cr ad2antrl adantr ad2antrr
      nnre nnred cz wi dvdsle syl2anr impr wb fznnfl simplbda letrd ex pm4.71rd
      nnz ancom an32 bitri syl6bb anbi1d bitr4d pm5.32da an12 breq1 elrab breq2
      anbi2i 3bitr4g fsumcom2 cmul cmpt simprbda eqid dvdsflf1o wceq oveq2 ovex
      fvmpt cc biimpar syldan anassrs fsumf1o sumeq2dv eqtrd ) AMCUAUBZUCNZBOZG
      OZPQZBUDUEZDHRGRXFHOZXGPQZBXFUEZDGRZHRXFMCXKUFNUAUBZUCNZEFRZHRAXFXJXFXMGH
      DAMXEUGZXRAXHXFSZTZMXHUCNZUISXJYAUJZXJUISXTMXHUGXTXHUDSZYBXSYCAXHXEUHUKZX
      HBULUMYAXJUNUOAXSXKUDSZXKXHPQZTZTZXKXFSZXSYFTZTZXSXKXJSZTZYIXHXMSZTZAYHXS
      YIYFTZTYKAXSYGYPXTYGYEXKCUPQZTZYFTZYPXTYGYQYGTZYSXTYGYQXTYGYQXTYGTZXKXHCY
      EXKUQSXTYFXKVAURUUAXHXTYCYGYDUSVBACUQSZXSYGJUTXTYEYFXKXHUPQZYEXKVCSYCYFUU
      CVDXTXKVNYDXKXHVEVFVGXTXHCUPQZYGAXSYCUUDAUUBXSYCUUDTVHJXHCVIUMVJUSVKVLVMY
      TYGYQTYSYQYGVOYEYFYQVPVQVRXTYIYRYFAYIYRVHZXSAUUBUUEJXKCVIUMZUSVSVTWAXSYIY
      FWBVRYLYGXSXIYFBXKUDXGXKXHPWCWDWFYNYJYIXLYFBXHXFXGXHXKPWEWDWFWGZKWHAXFXNX
      QHAYITZXMDXPEGFLXPXKLOZWINZWJZXKFOZWINZIUUHMXOUGUUHBCLUUKXKAUUBYIJUSAYIYE
      YQUUFWKUUKWLZWMUULXPSUULUUKUBUUMWNUUHLUULUUJUUMXPUUKUUIUULXKWIWOUUNXKUULW
      IWPWQUKAYIYNDWRSZAYOYMUUOAYMYOUUGWSKWTXAXBXCXD $.
  $}

  ${
    $d m n A $.  $d m n ph $.
    fsumfldivdiag.1 $e |- ( ph -> A e. RR ) $.
    $( Lemma for ~ fsumfldivdiag .  (Contributed by Mario Carneiro,
       10-May-2016.) $)
    fsumfldivdiaglem $p |- ( ph ->
      ( ( n e. ( 1 ... ( |_ ` A ) ) /\ m e. ( 1 ... ( |_ ` ( A / n ) ) ) ) ->
      ( m e. ( 1 ... ( |_ ` A ) ) /\ n e. ( 1 ... ( |_ ` ( A / m ) ) ) ) ) ) $=
      ( c1 cfl cfv co wcel wa cle wbr cr wb fznnfl syl mpbid cc0 syl112anc cdiv
      cv cfz cn simprr adantr simprl simpld nndivred nnred simprd recnd mulid2d
      cmul nnge1d clt 1red 0red nnmulcld nngt0d lemuldiv2 mpbird ltletrd lemul1
      eqbrtrrd ledivmul letrd mpbir2and lemuldiv jca ex ) ADUBZFBGHUCIZJZCUBZFB
      VLUAIZGHUCIJZKZVOVMJZVLFBVOUAIZGHUCIJZKAVRKZVSWAWBVSVOUDJZVOBLMZWBWCVOVPL
      MZWBVQWCWEKZAVNVQUEWBVPNJVQWFOWBBVLABNJZVREUFZWBVLUDJZVLBLMZWBVNWIWJKZAVN
      VQUGWBWGVNWKOWHVLBPQRUHZUIZVOVPPQRZUHZWBVOVPBWBVOWOUJZWMWHWBWCWEWNUKZWBVP
      BLMZBVLBUNIZLMZWBFBUNIZBWSLWBBWBBWHULUMWBFVLLMZXAWSLMZWBVLWLUOWBFNJVLNJZW
      GSBUPMXBXCOWBUQWBVLWLUJZWHWBSVLVOUNIZBWBURWBXFWBVLVOWLWOUSZUJWHWBXFXGUTWB
      XFBLMZWEWQWBVONJZWGXDSVLUPMZXHWEOWPWHXEWBVLWLUTZVOBVLVATVBZVCFVLBVDTRVEWB
      WGWGXDXJWRWTOWHWHXEXKBBVLVFTVBVGWBWGVSWCWDKOWHVOBPQVHWBWAWIVLVTLMZWLWBXHX
      MXLWBXDWGXISVOUPMXHXMOXEWHWPWBVOWOUTVLBVOVITRWBVTNJWAWIXMKOWBBVOWHWOUIVLV
      TPQVHVJVK $.

    fsumfldivdiag.2 $e |- ( ( ph /\ ( n e. ( 1 ... ( |_ ` A ) ) /\
      m e. ( 1 ... ( |_ ` ( A / n ) ) ) ) ) -> B e. CC ) $.
    $( The right-hand side of ~ dvdsflsumcom is commutative in the variables,
       because it can be written as the manifestly symmetric sum over those
       ` <. m , n >. ` such that ` m x. n <_ A ` .  (Contributed by Mario
       Carneiro, 4-May-2016.) $)
    fsumfldivdiag $p |- ( ph ->
   sum_ n e. ( 1 ... ( |_ ` A ) ) sum_ m e. ( 1 ... ( |_ ` ( A / n ) ) ) B =
   sum_ m e. ( 1 ... ( |_ ` A ) ) sum_ n e. ( 1 ... ( |_ ` ( A / m ) ) ) B ) $=
      ( c1 cfl cfv cfz co cv cdiv fzfid wcel fsumfldivdiaglem impbid fsumcom2
      wa ) AHBIJZKLZHBEMZNLIJZKLZUBHBDMZNLIJKLZEDCAHUAOZUHAUCUBPZTHUDOAUIUFUEPT
      UFUBPUCUGPTABDEFQABEDFQRGS $.
  $}

  ${
    $d k m A $.  $d j k m n F $.  $d j k m n p q s x z N $.  $d j k m ph $.
    $d k B $.  $d m C $.
    $( The sum of the M&ouml;bius function over the divisors of ` N ` gives one
       if ` N = 1 ` , but otherwise always sums to zero.  Theorem 2.1 in
       [ApostolNT] p. 25.  This makes the M&ouml;bius function useful for
       inverting divisor sums; see also ~ muinv .  (Contributed by Mario
       Carneiro, 2-Jul-2015.) $)
    musum $p |- ( N e. NN ->
      sum_ k e. { n e. NN | n || N } ( mmu ` k ) = if ( N = 1 , 1 , 0 ) ) $=
      ( vp vx vz vs cn wcel cfv cc0 cdvds wa c1 cprime cexp co wceq syl cfn cmu
      vm vq cv wne wbr crab csu cneg chash cif fveq2 neeq1d breq1 anbi12d elrab
      weq muval2 adantrr sylbi adantl sumeq2dv simpr a1i ss2rabdv ssrab2 sseldi
      wi cz mucl zcnd cdif wn difrab pm3.21 necon1bd imp ss2rabi eqsstri eqeq1d
      sseli simprbi cfz wss fzfid dvdsssfz1 ssfi syl2anc fsumss cpw cmpt oveq2d
      cpc eqid oveq1 cbvmptv oveq2 mpteq2dv syl5eq breq2 rabbidv zex prmz ssriv
      sqff1o ssexi rabex fvmpt cn0 neg1cn prmdvdsfi elpwi syl2an hashcl sylancr
      expcl fsumf1o ciun adantr pwfi sylib sylancl wral wdisj simprr ralrimivva
      cc invdisj fsumiun wrex cle wb mpbird eqeq2 sylibr cmul c0 syl6eq 3eqtr3d
      cuz cdom ssdomg hashdom nn0uz syl6eleq nn0zd elfz5 eqidd rspcev ralrimiva
      sylc rabid2 iunrab syl6reqr sumeq1d cbc elfznn0 fsumconst elfzelz 3eqtr4d
      hashbc oveq1d caddc 1pneg1e0 oveq1i binom1p syl5eqr breq2d notbid syl5ibr
      nprmdvds1 ralrimiv rabeq0 hash0 0exp0e1 c2 df-ne eluz2b3 biimpri sylan2br
      fveq2d exprmfct rabn0 hashnncl 0expd ifbothda 3eqtr2d eqtr3d ) CHIZBUDZUA
      JZKUEZUWJCLUFZMZBHUGZAUDZUAJZAUHUWONUIZDUDZUWPLUFZDOUGZUJJZPQZAUHZUWMBHUG
      ZUWQAUHCNRZNKUKZUWIUWOUWQUXCAUWPUWOIZUWQUXCRZUWIUXHUWPHIZUWQKUEZUWPCLUFZM
      ZMUXIUWNUXMBUWPHBAUQZUWLUXKUWMUXLUXNUWKUWQKUWJUWPUAULZUMUWJUWPCLUNUOUPUXJ
      UXKUXIUXLUWPDURUSUTVAVBUWIUWOUXEUWQAUWIUWNUWMBHUWNUWMVHUWIUWJHIZMUWLUWMVC
      VDVEZUWIUXHMZUWQUXRUXJUWQVIIUXRUWOHUWPUWNBHVFUWIUXHVCVGUWPVJSVKUWPUXEUWOV
      LZIZUWQKRZUWIUXTUWPUWKKRZBHUGZIZUYAUXSUYCUWPUXSUWMUWNVMZMZBHUGUYCUWMUWNBH
      VNUYFUYBBHUYFUYBVHUXPUWMUYEUYBUWMUWNUWKKUWMUWLVOVPVQVDVRVSWAUYDUXJUYAUYBU
      YABUWPHUXNUWKUWQKUXOVTUPWBSVAUWINCWCQZTIUXEUYGWDUXETIZUWINCWECBWFUYGUXEWG
      WHZWIUWIUWSCLUFZDOUGZWJZUWREUDZUJJZPQZEUHZUXDUXGUWIUYLUYOUWOUXCEAUBUWOUWS
      UBUDZLUFZDOUGZWKZUXAUYMUXARUYNUXBUWRPUYMUXAUJULWLUWIUYHUWOUXEWDUWOTIUYIUX
      QUXEUWOWGWHBUWOUBUYTEHUCOUCUDZUYMWMQZWKZWKCDUWOWNUYTWNZEUBHVUCDOUWSUYQWMQ
      ZWKZEUBUQZVUCDOUWSUYMWMQZWKVUFUCDOVUBVUHVUAUWSUYMWMWOWPVUGDOVUHVUEUYMUYQU
      WSWMWQWRWSWPXEUXHUWPUYTJUXARUWIUBUWPUYSUXAUWOUYTUBAUQUYRUWTDOUYQUWPUWSLWT
      XAVUDUWTDOOVIXBDOVIUWSXCXDXFXGXHVAUWIUYMUYLIZMZUWRYGIZUYNXIIZUYOYGIZXJVUJ
      UYMTIZVULUWIUYKTIZUYMUYKWDZVUNVUICDXKZUYMUYKXLZUYKUYMWGZXMUYMXNZSUWRUYNXP
      ZXOXQUWIFKUYKUJJZWCQZGUDZUJJZFUDZRZGUYLUGZXRZUYOEUHVVCVVHUYOEUHZFUHZUYPUX
      GUWIFVVCVVHUYOEUWIKVVBWEUWIVVFVVCIZMZUYLTIZVVHUYLWDVVHTIZVVMVUOVVNUWIVUOV
      VLVUQXSUYKXTYAVVGGUYLVFZUYLVVHWGYBZUWIUYNVVFRZEVVHYCFVVCYCFVVCVVHYDUWIVVR
      FEVVCVVHUWIVVLUYMVVHIZMZMZVVSVVRUWIVVLVVSYEZVVSVUIVVRVVGVVRGUYMUYLGEUQVVE
      UYNVVFVVDUYMUJULVTUPWBZSYFFEVVCVVHUYNYHSVWAVUKVULVUMXJVWAVUNVULVWAVUOVUPV
      UNUWIVUOVVTVUQXSVWAVUIVUPVWAVVHUYLUYMVVPVWBVGVURSVUSWHVUTSVVAXOYIUWIVVIUY
      LUYOEUWIUYLVVGFVVCYJZGUYLUGZVVIUWIVWDGUYLYCUYLVWERUWIVWDGUYLUWIVVDUYLIZMZ
      VVEVVCIZVVEVVERZVWDVWGVWHVVEVVBYKUFZVWGVWJVVDUYKUUAUFZVWGVUOVVDUYKWDZVWKU
      WIVUOVWFVUQXSZVWFVWLUWIVVDUYKXLZVAVVDUYKTUUBUUKVWGVVDTIZVUOVWJVWKYLUWIVUO
      VWLVWOVWFVUQVWNUYKVVDWGXMZVWMVVDUYKTUUCWHYMVWGVVEKYTJZIVVBVIIVWHVWJYLVWGV
      VEXIVWQVWGVWOVVEXIIVWPVVDXNSUUDUUEVWGVVBUWIVVBXIIZVWFUWIVUOVWRVUQUYKXNSZX
      SUUFVVEKVVBUUGWHYMVWGVVEUUHVVGVWIFVVEVVCVVFVVEVVEYNUUIWHUUJVWDGUYLUULYOVV
      GFGVVCUYLUUMUUNUUOUWIVVKVVCVVBVVFUUPQZUWRVVFPQZYPQZFUHZKVVBPQZUXGUWIVVCVV
      JVXBFVVMVVHVXAEUHZVVHUJJZVXAYPQZVVJVXBVVMVVOVXAYGIZVXEVXGRVVQVVMVUKVVFXII
      ZVXHXJVVLVXIUWIVVFVVBUUQVAUWRVVFXPXOVVHVXAEUURWHVVMVVHUYOVXAEVVMVVSMUYNVV
      FUWRPVVSVVRVVMVWCVAWLVBVVMVWTVXFVXAYPUWIVUOVVFVIIVWTVXFRVVLVUQVVFKVVBUUSG
      UYKVVFUVAXMUVBUUTVBUWIVXDNUWRUVCQZVVBPQZVXCVXJKVVBPUVDUVEUWIVUKVWRVXKVXCR
      XJVWSUWRFVVBUVFXOUVGUXFVXDNRVXDKRVXDUXGRUWINKNUXGVXDYNKUXGVXDYNUWIUXFMZVX
      DKKPQNVXLVVBKKPVXLVVBYQUJJKVXLUYKYQUJVXLUYJVMZDOYCUYKYQRVXLVXMDOUWSOIVXMV
      XLUWSNLUFZVMUWSUVKVXLUYJVXNVXLCNUWSLUWIUXFVCUVHUVIUVJUVLUYJDOUVMYOUWAUVNY
      RWLUVOYRUWIUXFVMZMZVVBVXPVVBHIZUYKYQUEZVXPUYJDOYJZVXRVXPCUVPYTJIZVXSVXOUW
      ICNUEZVXTCNUVQVXTUWIVYAMCUVRUVSUVTCDUWBSUYJDOUWCYOVXPVUOVXQVXRYLUWIVUOVXO
      VUQXSUYKUWDSYMUWEUWFUWGYSUWHYS $.

    ${
      musumsum.1 $e |- ( m = 1 -> B = C ) $.
      musumsum.2 $e |- ( ph -> A e. Fin ) $.
      musumsum.3 $e |- ( ph -> A C_ NN ) $.
      musumsum.4 $e |- ( ph -> 1 e. A ) $.
      musumsum.5 $e |- ( ( ph /\ m e. A ) -> B e. CC ) $.
      $( Evaluate a collapsing sum over the M&ouml;bius function.  (Contributed
         by Mario Carneiro, 4-May-2016.) $)
      musumsum $p |- ( ph -> sum_ m e. A
        sum_ k e. { n e. NN | n || m } ( ( mmu ` k ) x. B ) = C ) $=
        ( cn cmul co csu c1 wcel cc0 wceq cdvds wbr crab cmu cfv csn cif sselda
        cv wa musum syl oveq1d cfz cfn wss fzfid dvdsssfz1 syl2anc cc cz elrabi
        ssfi mucl zcnd adantl fsummulc1 velsn bicomi a1i mulid2 mul02 ifbieq12d
        ovif wb syl5eq 3eqtr3d sumeq2dv wral cuz wo snssd syldan ralrimiva olcd
        sumss2 syl21anc eleq1d rspcv sylc sumsn 3eqtr2d ) ABGUIFUIZUAUBZGMUCZEU
        IZUDUEZCNOEPZFPBWMQUFZRZCSUGZFPZWSCFPZDABWRXAFAWMBRZUJZWOWQEPZCNOWMQTZQ
        SUGZCNOZWRXAXEXFXHCNXEWMMRZXFXHTABMWMJUHZEGWMUKULUMXEWOWQCEXEQWMUNOZUOR
        WOXLUPZWOUORXEQWMUQXEXJXMXKWMGURULXLWOVCUSLWPWORZWQUTRXEXNWQXNWPMRWQVAR
        WNGWPMVBWPVDULVEVFVGXEXIXGQCNOZSCNOZUGZXAXGQSCNVNXECUTRZXQXATLXRXGWTXOX
        PCSXGWTVOXRWTXGFQVHVIVJCVKCVLVMULVPVQVRAWSBUPXRFWSVSBQVTUEUPZBUORZWAXCX
        BTAQBKWBZAXRFWSAWTXDXRAWSBWMYAUHLWCWDAXTXSIWEWSBCFQWFWGAQBRZDUTRZXCDTKA
        YBXRFBVSYCKAXRFBLWDXRYCFQBXGCDUTHWHWIWJCDFQBHWKUSWL $.
    $}

    muinv.1 $e |- ( ph -> F : NN --> CC ) $.
    muinv.2 $e |- ( ph -> G =
      ( n e. NN |-> sum_ k e. { x e. NN | x || n } ( F ` k ) ) ) $.
    $( The M&ouml;bius inversion formula.  If ` G ( n ) = sum_ k || n F ( k ) `
       for every ` n e. NN ` , then ` F ( n ) = sum_ k || n `
       ` mmu ( k ) G ( n / k ) = sum_ k || n mmu ( n / k ) G ( k ) ` , i.e. the
       M&ouml;bius function is the Dirichlet convolution inverse of the
       constant function ` 1 ` .  Theorem 2.9 in [ApostolNT] p. 32.
       (Contributed by Mario Carneiro, 2-Jul-2015.) $)
    muinv $p |- ( ph -> F = ( m e. NN |-> sum_ j e. { x e. NN | x || m }
      ( ( mmu ` j ) x. ( G ` ( m / j ) ) ) ) ) $=
      ( cn cdvds co cmul csu cc wcel wa cc0 c1 cv cfv cmpt wbr crab cmu feqmptd
      cdiv wceq ad2antrr fveq1d cz clt breq1 elrab simprbi adantl wne wb elrabi
      nnzd nnne0d nnz ad2antlr dvdsval2 syl3anc mpbid nnre nngt0 jca syl divgt0
      syl2anc elnnz sylanbrc breq2 rabbidv sumeq1d sumex fvmpt eqtrd oveq2d cfz
      cr eqid cfn wss fzfid dvdsssfz1 ssfi mucl zcnd wf ffvelrn syl2an sumeq2dv
      fsummulc2 simpr adantrr anasss mulcld fsumdvdsdiag cif csn ssrab2 adantll
      dvdsdivcl sseldi musum oveq1d adantr fsummulc1 ovif nncnd divmuld mulid1d
      nncn 1cnd eqeq1d bitrd mulid2d mul02d syl5eq 3eqtr3d iddvds sselda syldan
      ifbieq12d 0cn ifcl sylancl cdif eldifsni neneqd iffalsed fsumss ffvelrnda
      snssd iftrue fveq2 sumsn 3eqtr2d 3eqtrd mpteq2dva eqtr4d ) AGEKEUAZGUBZUC
      EKBUAZUUFLUDZBKUEZCUAZUFUBZUUFUUKUHMZHUBZNMZCOZUCAEKPGIUGAEKUUPUUGAUUFKQZ
      RZUUPUUJUUHUUMLUDZBKUEZUULDUAZGUBZNMZDOZCOUUJUUHUUFUVAUHMZLUDZBKUEZUVCCOZ
      DOZUUGUURUUJUUOUVDCUURUUKUUJQZRZUUOUULUUTUVBDOZNMUVDUVKUUNUVLUULNUVKUUNUU
      MFKUUHFUAZLUDZBKUEZUVBDOZUCZUBZUVLUVKUUMHUVQAHUVQUIUUQUVJJUJUKUVKUUMKQZUV
      RUVLUIUVKUUMULQZSUUMUMUDZUVSUVKUUKUUFLUDZUVTUVJUWBUURUVJUUKKQZUWBUUIUWBBU
      UKKUUHUUKUUFLUNUOUPUQUVKUUKULQUUKSURUUFULQZUWBUVTUSUVKUUKUVJUWCUURUUIBUUK
      KUTUQZVAUVKUUKUWEVBUUQUWDAUVJUUFVCVDUUKUUFVEVFVGUVKUUFWDQZSUUFUMUDZRZUUKW
      DQZSUUKUMUDZRZUWAUUQUWHAUVJUUQUWFUWGUUFVHUUFVIVJVDUVKUWCUWKUWEUWCUWIUWJUU
      KVHUUKVIVJVKUUFUUKVLVMUUMVNVOZFUUMUVPUVLKUVQUVMUUMUIZUVOUUTUVBDUWMUVNUUSB
      KUVMUUMUUHLVPVQVRUVQWEUUTUVBDVSVTVKWAWBUVKUUTUVBUULDUVKTUUMWCMZWFQUUTUWNW
      GZUUTWFQUVKTUUMWHUVKUVSUWOUWLUUMBWIVKUWNUUTWJVMUVKUULUVKUWCUULULQZUWEUUKW
      KZVKWLZUVKKPGWMZUVAKQZUVBPQZUVAUUTQZAUWSUUQUVJIUJUUSBUVAKUTKPUVAGWNZWOZWQ
      WAWPUURBUVCCDUUFAUUQWRZUURUVJUXBRRUULUVBUURUVJUULPQUXBUWRWSUURUVJUXBUXAUX
      DWTXAXBUURUVIUUJUVAUUFUIZUVBSXCZDOUUFXDZUXGDOZUUGUURUUJUVHUXGDUURUVAUUJQZ
      RZUVGUULCOZUVBNMUVETUIZTSXCZUVBNMZUVHUXGUXKUXLUXNUVBNUXKUVEKQZUXLUXNUIUXK
      UUJKUVEUUIBKXEUUQUXJUVEUUJQABUVAUUFXGXFXHZCBUVEXIVKXJUXKUVGUULUVBCUXKTUVE
      WCMZWFQUVGUXRWGZUVGWFQUXKTUVEWHUXKUXPUXSUXQUVEBWIVKUXRUVGWJVMUURUWSUWTUXA
      UXJAUWSUUQIXKUUIBUVAKUTZUXCWOZUXKUUKUVGQZRZUULUYCUWCUWPUYCUVGKUUKUVFBKXEU
      XKUYBWRXHUWQVKWLXLUXKUXOUXMTUVBNMZSUVBNMZXCUXGUXMTSUVBNXMUXKUXMUXFUYDUYEU
      VBSUXKUXMUVATNMZUUFUIUXFUXKUUFUVATUUQUUFPQAUXJUUFXQVDUXKUVAUXJUWTUURUXTUQ
      ZXNZUXKXRUXKUVAUYGVBXOUXKUYFUVAUUFUXKUVAUYHXPXSXTUXKUVBUYAYAUXKUVBUYAYBYH
      YCYDWPUURUXHUUJUXGDUURUUFUUJUURUUQUUFUUFLUDZUUFUUJQUXEUURUWDUYIUURUUFUXEV
      AUUFYEVKUUIUYIBUUFKUUHUUFUUFLUNUOVOYRZUURUVAUXHQZRUXASPQUXGPQUURUYKUXJUXA
      UURUXHUUJUVAUYJYFUYAYGYIUXFUVBSPYJYKUURUVAUUJUXHYLQZRZUXFUVBSUYMUVAUUFUYL
      UVAUUFURUURUVAUUJUUFYMUQYNYOUURTUUFWCMZWFQUUJUYNWGZUUJWFQUURTUUFWHUUQUYOA
      UUFBWIUQUYNUUJWJVMYPUURUUQUUGPQUXIUUGUIUXEAKPUUFGIYQUXGUUGDUUFKUXFUXGUVBU
      UGUXFUVBSYSUVAUUFGYTWAUUAVMUUBUUCUUDUUE $.
  $}

  ${
    $d k A $.  $d i z D $.  $d u x M $.  $d u x N $.  $d i j k m n u v w z X $.
    $d j B $.  $d j k w z C $.  $d i j k m n u v w z Y $.  $d i j u w z Z $.
    $d i j k m n w x z $.  $d i j k m n w z ph $.
    dvdsmulf1o.1 $e |- ( ph -> M e. NN ) $.
    dvdsmulf1o.2 $e |- ( ph -> N e. NN ) $.
    dvdsmulf1o.3 $e |- ( ph -> ( M gcd N ) = 1 ) $.
    dvdsmulf1o.x $e |- X = { x e. NN | x || M } $.
    dvdsmulf1o.y $e |- Y = { x e. NN | x || N } $.
    dvdsmulf1o.z $e |- Z = { x e. NN | x || ( M x. N ) } $.
    $( If ` M ` and ` N ` are two coprime integers, multiplication forms a
       bijection from the set of pairs ` <. j , k >. ` where ` j || M ` and
       ` k || N ` , to the set of divisors of ` M x. N ` .  (Contributed by
       Mario Carneiro, 2-Jul-2015.) $)
    dvdsmulf1o $p |- ( ph ->
        ( x. |` ( X X. Y ) ) : ( X X. Y ) -1-1-onto-> Z ) $=
      ( cmul wceq co wcel cn cdvds wbr vu vv vi vj vm vn vw cxp cres wf1 wfo wf
      wf1o cv cfv wi wral wfn cc wss ax-mulf ffn ax-mp crab ssrab2 nnsscn sstri
      eqsstri xpss12 mp2an fnssres a1i wa ovres adantl elrab2 ad2antrl ad2antll
      simplbi nnmulcld simprbi cz nnzd adantr dvdscmul syl3anc dvdsmulc zmulcld
      breq1 dvdstr syl2and mp2and sylanbrc eqeltrd ralrimivva ffnov cop simprll
      cn0 nnnn0d syl cgcd c1 dvdsmul1 syl2anc simprr sseldi simprlr nncnd eqtrd
      mulcomd breqtrd gcdcom ad2antrr rpdvds syl32anc coprmdvds eqtr3d syl22anc
      dvdseq nnne0d oveq1d eqtr4d mulcanad fvres fveq2 df-ov syl6eqr eqeq2d cc0
      imbi12d ralxp wn wne simpr necon3ai gcdn0cl syl21anc gcddvds simprd eqeq2
      opeq12d expr eqeqan12d imbi1d ralbidva eqeq1d eqeq1 2ralbidv syl5bb bitri
      ralbiia sylibr dff13 wrex opelxpi rpmulgcd2 syl31anc syl6eq gcdeq syl2anr
      wb mpbird 3eqtr2rd rspcev ralrimiva dffo3 df-f1o ) AEFUHZGNUVIUIZUJZUVIGU
      VJUKZUVIGUVJUMAUVIGUVJULZUAUNZUVJUOZUBUNZUVJUOZOZUVNUVPOZUPZUBUVIUQZUAUVI
      UQZUVKAUVJUVIURZUCUNZUDUNZUVJPZGQZUDFUQUCEUQUVMUWCANUSUSUHZURZUVIUWHUTZUW
      CUWHUSNULUWIVAUWHUSNVBVCEUSUTFUSUTUWJERUSEBUNZCSTZBRVDRKUWLBRVEVHVFVGZFRU
      SFUWKDSTZBRVDRLUWNBRVEVHVFVGEUSFUSVIVJUWHUVINVKVJVLAUWGUCUDEFAUWDEQZUWEFQ
      ZVMZVMZUWFUWDUWENPZGUWQUWFUWSOAUWDUWEEFNVNVOUWRUWSRQUWSCDNPZSTZUWSGQUWRUW
      DUWEUWOUWDRQZAUWPUWOUXBUWDCSTZUWLUXCBUWDREUWKUWDCSWIKVPZVSVQZUWPUWERQZAUW
      OUWPUXFUWEDSTZUWNUXGBUWERFUWKUWEDSWILVPZVSVRZVTZUWRUXGUXCUXAUWPUXGAUWOUWP
      UXFUXGUXHWAVRZUWOUXCAUWPUWOUXBUXCUXDWAVQZUWRUXGUWSUWDDNPZSTZUXCUXMUWTSTZU
      XAUWRUWEWBQZDWBQZUWDWBQZUXGUXNUPUWRUWEUXIWCUWRDADRQZUWQIWDWCZUWRUWDUXEWCZ
      UWDUWEDWEWFUWRUXRCWBQZUXQUXCUXOUPUYAUWRCACRQZUWQHWDWCZUXTDUWDCWGWFUWRUWSW
      BQUXMWBQUWTWBQUXNUXOVMUXAUPUWRUWSUXJWCUWRUWDDUYAUXTWHUWRCDUYDUXTWHUWSUXMU
      WTWJWFWKWLUWKUWTSTZUXABUWSRGUWKUWSUWTSWIMVPWMWNWOUCUDEFGUVJWPWMZAUWSUEUNZ
      UFUNZNPZOZUWDUWEWQZUYGUYHWQZOZUPZUFFUQUEEUQZUDFUQUCEUQZUWBAUYOUCUDEFUWRUY
      NUEUFEFUWRUYGEQZUYHFQZVMZUYJUYMUWRUYSUYJVMZVMZUWDUYGUWEUYHVUAUWDWSQUYGWSQ
      UWDUYGSTZUYGUWDSTZUWDUYGOVUAUWDUWRUXBUYTUXEWDZWTVUAUYGVUAUYQUYGRQZUWRUYQU
      YRUYJWRZUYQVUEUYGCSTZUWLVUGBUYGREUWKUYGCSWIKVPZVSXAZWTVUAUWDUYHUYGNPZSTZU
      WDUYHXBPXCOZVUBVUAUWDUWSVUJSVUAUXRUXPUWDUWSSTVUAUWDVUDWCZVUAUWEUWRUXFUYTU
      XIWDZWCZUWDUWEXDXEVUAUWSUYIVUJUWRUYSUYJXFZVUAUYGUYHVUAEUSUYGUWMVUFXGVUAUY
      HVUAUYRUYHRQZUWRUYQUYRUYJXHZUYRVUQUYHDSTZUWNVUSBUYHRFUWKUYHDSWILVPZVSXAZX
      IZXKXJXLVUAUXRUYHWBQZUXQUWDDXBPZXCOVUSVULVUMVUAUYHVVAWCZUWRUXQUYTUXTWDZVU
      AVVDDUWDXBPZXCVUAUXRUXQVVDVVGOVUMVVFUWDDXMXEVUAUXQUXRUYBDCXBPZXCOZUXCVVGX
      COVVFVUMUWRUYBUYTUYDWDZAVVIUWQUYTAVVHCDXBPZXCAUXQUYBVVHVVKOADIWCACHWCDCXM
      XEJXJXNZUWRUXCUYTUXLWDDUWDCXOXPXJVUAUYRVUSVURUYRVUQVUSVUTWAXAUWDUYHDXOXPV
      UAUXRVVCUYGWBQZVUKVULVMVUBUPVUMVVEVUAUYGVUIWCZUWDUYHUYGXQWFWLVUAUYGUWEUWD
      NPZSTZUYGUWEXBPXCOZVUCVUAUYGUYIVVOSVUAVVMVVCUYGUYISTVVNVVEUYGUYHXDXEVUAUW
      SUYIVVOVUPVUAUWDUWEVUAUWDVUDXIZVUAUWEVUNXIZXKXRXLVUAVVMUXPUXQUYGDXBPZXCOU
      XGVVQVVNVUOVVFVUAVVTDUYGXBPZXCVUAVVMUXQVVTVWAOVVNVVFUYGDXMXEVUAUXQVVMUYBV
      VIVUGVWAXCOVVFVVNVVJVVLVUAUYQVUGVUFUYQVUEVUGVUHWAXADUYGCXOXPXJUWRUXGUYTUX
      KWDUYGUWEDXOXPVUAVVMUXPUXRVVPVVQVMVUCUPVVNVUOVUMUYGUWEUWDXQWFWLUWDUYGXTXS
      ZVUAUWEUYHUWDVVSVVBVVRVUAUWDVUDYAVUAUWSUYIUWDUYHNPVUPVUAUWDUYGUYHNVWBYBYC
      YDUUBUUCWOWOUWBUVNNUOZUVPNUOZOZUVSUPZUBUVIUQZUAUVIUQUYPUWAVWGUAUVIUVNUVIQ
      ZUVTVWFUBUVIVWHUVPUVIQZVMUVRVWEUVSVWHVWIUVOVWCUVQVWDUVNUVINYEUVPUVINYEUUD
      UUEUUFUULVWGUYOUAUCUDEFVWGVWCUYIOZUVNUYLOZUPZUFFUQUEEUQUVNUYKOZUYOVWFVWLU
      BUEUFEFUVPUYLOZVWEVWJUVSVWKVWNVWDUYIVWCVWNVWDUYLNUOUYIUVPUYLNYFUYGUYHNYGY
      HYIUVPUYLUVNUUAYKYLVWMVWLUYNUEUFEFVWMVWJUYJVWKUYMVWMVWCUWSUYIVWMVWCUYKNUO
      UWSUVNUYKNYFUWDUWENYGYHUUGUVNUYKUYLUUHYKUUIUUJYLUUKUUMUAUBUVIGUVJUUNWMAUV
      MUGUNZUVOOZUAUVIUUOZUGGUQUVLUYFAVWQUGGAVWOGQZVMZVWOCXBPZVWODXBPZWQZUVIQZV
      WOVXBUVJUOZOZVWQVWSVWTEQZVXAFQZVXCVWSVWTRQZVWTCSTZVXFVWSVWOWBQZUYBVWOYJOZ
      CYJOZVMZYMZVXHVWSVWOVWRVWORQZAVWRVXOVWOUWTSTZUYEVXPBVWORGUWKVWOUWTSWIMVPZ
      VSZVOWCZVWSCAUYCVWRHWDZWCZVWSCYJYNVXNVWSCVXTYAVXMCYJVXKVXLYOYPXAVWOCYQYRV
      WSVWTVWOSTZVXIVWSVXJUYBVYBVXIVMVXSVYAVWOCYSXEYTUWLVXIBVWTREUWKVWTCSWIKVPW
      MVWSVXARQZVXADSTZVXGVWSVXJUXQVXKDYJOZVMZYMZVYCVXSVWSDAUXSVWRIWDZWCZVWSDYJ
      YNVYGVWSDVYHYAVYFDYJVXKVYEYOYPXAVWODYQYRVWSVXAVWOSTZVYDVWSVXJUXQVYJVYDVMV
      XSVYIVWODYSXEYTUWNVYDBVXARFUWKVXADSWILVPWMVWTVXAEFUUPXEZVWSVXDVXBNUOZVWOU
      WTXBPZVWOVWSVXCVXDVYLOVYKVXBUVINYEXAVWSVYMVWTVXANPZVYLVWSVXJUYBUXQVVKXCOZ
      VYMVYNOVXSVYAVYIAVYOVWRJWDVWOCDUUQUURVWTVXANYGUUSVWSVYMVWOOZVXPVWRVXPAVWR
      VXOVXPVXQWAVOVWRVXOUWTRQVYPVXPUVBAVXRACDHIVTVWOUWTUUTUVAUVCUVDVWPVXEUAVXB
      UVIUVNVXBOUVOVXDVWOUVNVXBUVJYFYIUVEXEUVFUAUGUVIGUVJUVGWMUVIGUVJUVHWM $.

    fsumdvdsmul.4 $e |- ( ( ph /\ j e. X ) -> A e. CC ) $.
    fsumdvdsmul.5 $e |- ( ( ph /\ k e. Y ) -> B e. CC ) $.
    fsumdvdsmul.6 $e |- ( ( ph /\ ( j e. X /\ k e. Y ) ) -> ( A x. B ) = D ) $.
    fsumdvdsmul.7 $e |- ( i = ( j x. k ) -> C = D ) $.
    $( Product of two divisor sums.  (This is also the main part of the proof
       that " ` sum_ k || N F ( k ) ` is a multiplicative function if ` F `
       is".)  (Contributed by Mario Carneiro, 2-Jul-2015.) $)
    fsumdvdsmul $p |- ( ph -> ( sum_ j e. X A x. sum_ k e. Y B ) =
      sum_ i e. Z C ) $=
      ( vz vw csu cmul co c1 cfz cfn wcel wss fzfid cv cdvds wbr crab dvdsssfz1
      cn syl syl5eqss ssfi syl2anc fsumcl fsummulc1 wa adantr adantlr fsummulc2
      cc wceq anassrs sumeq2dv eqtrd cxp cfv csb cop fveq2 syl6eqr csbeq1d ovex
      df-ov csbie syl6eq adantrr adantrl mulcld eqeltrrd fsumxp nfcsb1v csbeq1a
      nfcv cbvsumi cres csbeq1 dvdsmulf1o fvres adantl ralrimivva eleq1d sylibr
      xpfi wral ralxp cima wfn wb ax-mulf ffn ax-mp ssrab2 eqsstri nnsscn sstri
      wf xpss12 mp2an ralima crn df-ima wf1o wfo f1ofo forn 3syl syl5eq raleqdv
      syl5bbr mpbid r19.21bi fsumf1o eqtr4d 3eqtrd ) ALCHUGMDIUGZUHUILCYQUHUIZH
      UGLMFIUGZHUGZNEGUGZALCYQHAUJJUKUIZULUMLUUBUNLULUMZAUJJUOALBUPZJUQURZBVAUS
      ZUUBRAJVAUMUUFUUBUNOJBUTVBVCUUBLVDVEZAMDIAUJKUKUIZULUMMUUHUNMULUMZAUJKUOA
      MUUDKUQURZBVAUSZUUHSAKVAUMUUKUUHUNPKBUTVBVCUUHMVDVEZUBVFUAVGALYRYSHAHUPZL
      UMZVHZYRMCDUHUIZIUGYSUUOMDCIAUUIUUNUULVIUAAIUPZMUMZDVLUMZUUNUBVJVKUUOMUUP
      FIAUUNUURUUPFVMUCVNVOVPVOAYTLMVQZGUEUPZUHVRZEVSZUEUGZUUAAUELMFUVCHIUVAUUM
      UUQVTZVMZUVCGUUMUUQUHUIZEVSFUVFGUVBUVGEUVFUVBUVEUHVRUVGUVAUVEUHWAUUMUUQUH
      WEWBWCGUVGEFUUMUUQUHWDUDWFWGZUUGUULAUUNUURVHVHZUUPFVLUCUVICDAUUNCVLUMUURU
      AWHAUURUUSUUNUBWIWJWKZWLAUUANGUFUPZEVSZUFUGUVDNEUVLGUFUFEWOGUVKEWMGUVKEWN
      WPANUVLUUTUVCUFUEUHUUTWQZUVBGUVKUVBEWRZAUUCUUIUUTULUMUUGUULLMXEVEABJKLMNO
      PQRSTWSZUVAUUTUMUVAUVMVRUVBVMAUVAUUTUHWTXAAUVLVLUMZUFNAUVCVLUMZUEUUTXFZUV
      PUFNXFZAFVLUMZIMXFHLXFUVRAUVTHILMUVJXBUVQUVTUEHILMUVFUVCFVLUVHXCXGXDUVRUV
      PUFUHUUTXHZXFZAUVSUHVLVLVQZXIZUUTUWCUNZUWBUVRXJUWCVLUHXRUWDXKUWCVLUHXLXML
      VLUNMVLUNUWELVAVLLUUFVARUUEBVAXNXOXPXQMVAVLMUUKVASUUJBVAXNXOXPXQLVLMVLXSX
      TUVPUVQUFUEUWCUUTUHUVKUVBVMUVLUVCVLUVNXCYAXTAUVPUFUWANAUWAUVMYBZNUHUUTYCA
      UUTNUVMYDUUTNUVMYEUWFNVMUVOUUTNUVMYFUUTNUVMYGYHYIYJYKYLYMYNYIYOYP $.
  $}

  ${
    $d i j k n x A $.  $d i j k x M $.  $d i j k n x N $.  $d i k n x P $.
    $d n x K $.
    $( The value of the divisor function at a prime power.  (Contributed by
       Mario Carneiro, 17-May-2016.) $)
    sgmppw $p |- ( ( A e. CC /\ P e. Prime /\ N e. NN0 ) ->
      ( A sigma ( P ^ N ) ) = sum_ k e. ( 0 ... N ) ( ( P ^c A ) ^ k ) ) $=
      ( vx vn vi cc wcel cn0 cexp co cv cn ccxp csu cc0 wceq syl2anc adantl w3a
      cprime csgm cdvds wbr crab cfz simp1 simp2 prmnn syl nnexpcld sgmval cmpt
      simp3 oveq1 fzfid wf1o eqid dvdsppwf1o cfv oveq2 fvmpt elrabi nncnd cxpcl
      ovex syl2anr fsumf1o wa elfznn0 nn0cnd adantr mulcomd oveq2d nnrpd nn0red
      cmul cxpmuld cxpexp oveq1d eqtrd cxpmul2d 3eqtr3d sumeq2dv 3eqtrd ) AHIZB
      UBIZDJIZUAZABDKLZUCLZEMWKUDUEZENUFZFMZAOLZFPZQDUGLZBCMZKLZAOLZCPWRBAOLWSK
      LZCPWJWGWKNIWLWQRWGWHWIUHZWJBDWJWHBNIZWGWHWIUIZBUJUKZWGWHWIUOZULAWKFEUMSW
      JWNWPWRXAFCGWRBGMZKLZUNZWTWOWTAOUPWJQDUQWJWHWIWRWNXJURXEXGEDBGXJXJUSZUTSW
      SWRIZWSXJVAWTRWJGWSXIWTWRXJXHWSBKVBXKBWSKVGVCTWOWNIZWOHIWGWPHIWJXMWOWMEWO
      NVDVEXCWOAVFVHVIWJWRXAXBCWJXLVJZBWSAVRLZOLZBAWSVRLZOLXAXBXNXOXQBOXNWSAXNW
      SXLWSJIZWJWSDVKTZVLWJWGXLXCVMZVNVOXNXPBWSOLZAOLXAXNBWSAXNBWJXDXLXFVMZVPXN
      WSXSVQXTVSXNYAWTAOXNBHIXRYAWTRXNBYBVEZXSBWSVTSWAWBXNBAWSYCXTXSWCWDWEWF $.

    $( A prime power ` P ^ K ` has ` K + 1 ` divisors.  (Contributed by Mario
       Carneiro, 17-May-2016.) $)
    0sgmppw $p |- ( ( P e. Prime /\ K e. NN0 ) ->
      ( 0 sigma ( P ^ K ) ) = ( K + 1 ) ) $=
      ( vx vn wcel cn0 cc0 cexp co chash cfv c1 caddc cv wbr wceq syl cfn cvv
      cn cprime csgm cfz cmin cdvds crab prmnn nnexpcl sylan 0sgm cen cmpt wf1o
      fzfid nnex rabex a1i eqid dvdsppwf1o f1oen2g syl3anc hasheni eqtr4d simpr
      wa cuz nn0uz syl6eleq hashfz cc nn0cn adantl subid1d oveq1d 3eqtrd ) AUAE
      ZBFEZVEZGABHIZUBIZGBUCIZJKZBGUDIZLMIZBLMIVRVTCNVSUEOZCTUFZJKZWBVRVSTEZVTW
      GPVPATEVQWHAUGABUHUIVSCUJQVRWAWFUKOZWBWGPVRWAREWFSEZWAWFDWAADNHIULZUMWIVR
      GBUNWJVRWECTUOUPUQCBADWKWKURUSWAWFWKRSUTVAWAWFVBQVCVRBGVFKZEWBWDPVRBFWLVP
      VQVDVGVHGBVIQVRWCBLMVRBVQBVJEVPBVKVLVMVNVO $.

    $( The sum of divisors for a prime is ` P + 1 ` because the only divisors
       are ` 1 ` and ` P ` .  (Contributed by Mario Carneiro, 17-May-2016.) $)
    1sgmprm $p |- ( P e. Prime -> ( 1 sigma P ) = ( P + 1 ) ) $=
      ( vk cprime wcel c1 cexp csgm cc0 cfz ccxp csu caddc cn0 wceq ax-1cn 1nn0
      co cc oveq2 eqtrd cv sgmppw mp3an13 prmnn nncnd exp1d oveq2d adantr cxp1d
      wa oveq1d sumeq2dv cmin 1m1e0 oveq2i sumeq1i cz 0z exp0d syl6eqel sylancr
      fsum1 syl5eq oveq12d cuz cfv a1i nn0uz elfznn0 expcl syl2an fsumm1 addcom
      syl6eleq sylancl 3eqtr4d 3eqtr3d ) ACDZEAEFQZGQZHEIQZAEJQZBUAZFQZBKZEAGQA
      ELQZERDZVREMDZVTWENOPEABEUBUCVRVSAEGVRAVRAAUDUEZUFZUGVRWEWAAWCFQZBKZWFVRW
      AWDWKBVRWCWADZUJZWBAWCFWNAVRARDZWMWIUHUIUKULVRHEEUMQZIQZWKBKZVSLQEALQZWLW
      FVRWREVSALVRWRHHIQZWKBKZEWQWTWKBWPHHIUNUOUPVRXAAHFQZEVRHUQDXBRDXAXBNURVRX
      BERVRAWIUSZOUTWKXBBHWCHAFSVBVAXCTVCWJVDVRWKVSBHEVREMHVEVFWHVRPVGVHVNVRWOW
      CMDWKRDWMWIWCEVIAWCVJVKWCEAFSVLVRWOWGWFWSNWIOAEVMVOVPTVQ $.

    $( The sum of the divisors of ` 2 ^ ( N - 1 ) ` .  (Contributed by Mario
       Carneiro, 17-May-2016.) $)
    1sgm2ppw $p |- ( N e. NN ->
      ( 1 sigma ( 2 ^ ( N - 1 ) ) ) = ( ( 2 ^ N ) - 1 ) ) $=
      ( vk cn wcel c1 c2 cmin co cexp cc0 csu cdiv cn0 wceq ax-1cn a1i 2cn cneg
      cc wne csgm cfz ccxp cprime 2prm nnm1nn0 sgmppw syl3anc cxp1 mp1i sumeq2i
      cv oveq1d 1ne2 necomi nnnn0 geoser syl5eq 2nn nnexpcl sylancr nncnd subcl
      sylancl ax-1ne0 div2negd negsubdi2 caddc df-neg mp3an 1p0e1 1p1e2 oveq12i
      0cn pnpcan 3eqtr2i oveq12d div1d 3eqtr3d 3eqtrd ) ACDZEFAEGHZIHUAHZJWBUBH
      ZFEUCHZBULZIHZBKZEFAIHZGHZEFGHZLHZWIEGHZWAESDZFUDDZWBMDWCWHNWNWAOPZWOWAUE
      PAUFEFBWBUGUHWAWHWDFWFIHZBKWLWDWGWQBWFWDDZWEFWFIFSDZWEFNWRQFUIUJUMUKWAFBA
      WSWAQPFETWAEFUNUOPAUPZUQURWAWMRZERZLHWMELHWLWMWAWMEWAWISDZWNWMSDWAWIWAFCD
      AMDWICDUSWTFAUTVAVBZOWIEVCVDZWPEJTWAVEPVFWAXAWJXBWKLWAXCWNXAWJNXDOWIEVGVD
      XBWKNWAXBJEGHZEJVHHZEEVHHZGHZWKEVIWNJSDWNXIXFNOVNOEJEVOVJXGEXHFGVKVLVMVPP
      VQWAWMXEVRVSVT $.

    $( The divisor function for fixed parameter ` A ` is a multiplicative
       function.  (Contributed by Mario Carneiro, 2-Jul-2015.) $)
    sgmmul $p |- ( ( A e. CC /\ ( M e. NN /\ N e. NN /\ ( M gcd N ) = 1 ) ) ->
      ( A sigma ( M x. N ) ) = ( ( A sigma M ) x. ( A sigma N ) ) ) $=
      ( vx vj vk vi wcel cn co wceq wa cv cdvds wbr crab ccxp csu cmul csgm w3a
      cc cgcd simpr1 simpr2 simpr3 eqid ssrab2 simpr sseldi nncnd simpll cxpcld
      c1 adantrr nnred nnnn0d nn0ge0d adantrl mulcxpd eqcomd fsumdvdsmul sgmval
      oveq1 syldan oveq12d nnmulcld 3eqtr4rd ) AUBHZBIHZCIHZBCUCJUNKZUAZLZDMZBN
      OZDIPZEMZAQJZERZVOCNOZDIPZFMZAQJZFRZSJVOBCSJZNODIPZGMZAQJZGRZABTJZACTJZSJ
      AWFTJZVNDVSWDWIVRWCSJZAQJZGEFBCVQWBWGVIVJVKVLUDZVIVJVKVLUEZVIVJVKVLUFVQUG
      WBUGWGUGVNVRVQHZLZVRAWSVRWSVQIVRVPDIUHVNWRUIUJZUKVIVMWRULUMVNWCWBHZLZWCAX
      BWCXBWBIWCWADIUHVNXAUIUJZUKVIVMXAULUMVNWRXALZLZWOVSWDSJXEVRWCAXEVRVNWRVRI
      HXAWTUOZUPXEVRXEVRXFUQURXEWCVNXAWCIHWRXCUSZUPXEWCXEWCXGUQURVIVMXDULUTVAWH
      WNAQVDVBVNWKVTWLWESVIVMVJWKVTKWPABEDVCVEVIVMVKWLWEKWQACFDVCVEVFVIVMWFIHWM
      WJKVNBCWPWQVGAWFGDVCVEVH $.
  $}

  ${
    ppiublem1.1 $e |- ( N <_ 6 /\ ( ( P e. Prime /\ 4 <_ P ) ->
      ( ( P mod 6 ) e. ( N ... 5 ) -> ( P mod 6 ) e. { 1 , 5 } ) ) ) $.
    ppiublem1.2 $e |- M e. NN0 $.
    ppiublem1.3 $e |- N = ( M + 1 ) $.
    ppiublem1.4 $e |- ( 2 || M \/ 3 || M \/ M e. { 1 , 5 } ) $.
    $( Lemma for ~ ppiub .  (Contributed by Mario Carneiro, 12-Mar-2014.) $)
    ppiublem1 $p |- ( M <_ 6 /\ ( ( P e. Prime /\ 4 <_ P ) ->
      ( ( P mod 6 ) e. ( M ... 5 ) -> ( P mod 6 ) e. { 1 , 5 } ) ) ) $=
      ( c6 cle wbr wcel c4 co c5 c1 wi wb c2 cdvds c3 cprime cmo cfz cpr simpli
      wa caddc df-6 3brtr3i nn0rei 5re 1re leadd1i mpbir 6re ltleii letri mp2an
      5lt6 wceq wo cuz cfv nn0zi 5nn nnzi eluz2 mpbir3an elfzp12 ax-mp w3o prmz
      cz adantr cn 2nn 6nn cmul 3z dvdsmul2 3t2e6 breqtri dvdsmod mpan2 mp3an12
      w3a 2z syl uzid simpl dvdsprm sylancr bitrd simpr breq2 syl5ibrcom clt wn
      2lt4 2re 4re ltnlei mpbi pm2.21i syl6 sylbid syl5ibcom com3r 3nn dvdsmul1
      imbi1d df-3 peano2uz eqeltri 3lt4 3re eleq1a oveq1i eleq2i simpri syl5bir
      a1d 3jaoi jaod syl5bi pm3.2i ) BHIJZAUAKZLAIJZUFZAHUBMZBNUCMKZYKONUDZKZPP
      BNIJZNHIJYGYOBOUGMZNOUGMZIJCHYPYQICHIJZYJYKCNUCMZKZYNPPZDUEFUHUIBNOBEUJZU
      KULUMUNZNHUKUOUSUPBNHUUBUKUOUQURYLYKBUTZYKYPNUCMZKZVAZYJYNNBVBVCKZYLUUGQU
      UHBVMKNVMKYOBEVDNVEVFUUCBNVGVHYKBNVIVJYJUUDYNUUFRBSJZTBSJZBYMKZVKYJUUDYNP
      ZPZGUUIUUMUUJUUKYJUUDUUIYNYJRYKSJZYNPUUDUUIYNPYJUUNRAUTZYNYJUUNRASJZUUOYJ
      AVMKZUUNUUPQZYHUUQYIAVLVNZRVOKZHVOKZUUQUURVPVQUUTUVAUUQWFRHSJUURRTRVRMZHS
      TVMKZRVMKZRUVBSJVSWGTRVTURWAWBRAHWCWDWEWHYJRRVBVCZKZYHUUPUUOQUVDUVFWGRWIV
      JZYHYIWJZARWKWLWMYJUUOLRIJZYNYJUVIUUOYIYHYIWNZRALIWOWPUVIYNRLWQJUVIWRWSRL
      WTXAXBXCXDXEXFUUDUUNUUIYNYKBRSWOXKXGXHYJUUDUUJYNYJTYKSJZYNPUUDUUJYNPYJUVK
      TAUTZYNYJUVKTASJZUVLYJUUQUVKUVMQZUUSTVOKZUVAUUQUVNXIVQUVOUVAUUQWFTHSJUVNT
      UVBHSUVCUVDTUVBSJVSWGTRXJURWAWBTAHWCWDWEWHYJTUVEKYHUVMUVLQTROUGMZUVEXLUVF
      UVPUVEKUVGRRXMVJXNUVHATWKWLWMYJUVLLTIJZYNYJUVQUVLYIUVJTALIWOWPUVQYNTLWQJU
      VQWRXOTLXPXAXBXCXDXEXFUUDUVKUUJYNYKBTSWOXKXGXHUUKUULYJBYMYKXQYBYCVJUUFYTY
      JYNYSUUEYKCYPNUCFXRXSYRUUADXTYAYDYEYF $.
  $}

  $( A prime greater than ` 3 ` does not divide ` 2 ` or ` 3 ` , so its residue
     ` mod 6 ` is ` 1 ` or ` 5 ` .  (Contributed by Mario Carneiro,
     12-Mar-2014.) $)
  ppiublem2 $p |- ( ( P e. Prime /\ 4 <_ P ) -> ( P mod 6 ) e. { 1 , 5 } ) $=
    ( wcel c4 cle wbr c6 co cc0 c5 cfz c1 cmin cz wi c2 c3 c0 cdvds ppiublem1
    2z cprime wa cmo cpr cn prmz adantr zmodfz sylancl caddc df-6 oveq1i ax-1cn
    6nn 5cn pncan3oi eqtri oveq2i syl6eleq 6re leidi noel pm2.21i clt wceq 5lt6
    nnzi 5nn fzn mp2an mpbi eleq2s a1i pm3.2i 5nn0 elexi prid2 3mix3i 4nn0 df-5
    wb cmul dvdsmul1 2t2e4 breqtri 3mix1i 3nn0 df-4 3z iddvds ax-mp 3mix2i 2nn0
    df-3 1nn0 df-2 1ex prid1 0nn0 1e0p1 dvds0 simpri mpd ) AUABZCADEZUBZAFUCGZH
    IJGZBZXGKIUDZBZXFXGHFKLGZJGZXHXFAMBZFUEBXGXMBXDXNXEAUFUGUNAFUHUIXLIHJXLIKUJ
    GZKLGIFXOKLUKULIKUOUMUPUQURUSHFDEXFXIXKNNAHKAKOAOPAPCACIAIFFFDEXFXGFIJGZBXK
    NZNFUTVAXQXFXKXGQXPXGQBXKXGVBVCIFVDEZXPQVEZVFFMBIMBXRXSWAFUNVGIVHVGFIVIVJVK
    VLVMVNVOUKIXJBOIREPIREKIIUEVHVPVQVRSVSVTOCREPCRECXJBOOOWBGZCROMBZYAOXTRETTO
    OWCVJWDWEWFSWGWHPPREZOPREPXJBPMBYBWIPWJWKWLSWMWNOOREZPOREOXJBYAYCTOWJWKWFSW
    OWPKXJBOKREPKREKIWQWRVRSWSWTOHREZPHREHXJBYAYDTOXAWKWFSXBXC $.

  ${
    $d k N $.
    $( An upper bound on the prime-counting function ` ppi ` , which counts the
       number of primes less than ` N ` .  (Contributed by Mario Carneiro,
       13-Mar-2014.) $)
    ppiub $p |- ( ( N e. RR /\ 0 <_ N ) ->
                  ( ppi ` N ) <_ ( ( N / 3 ) + 2 ) ) $=
      ( vk cr wcel cc0 cle wbr cfv c3 cdiv co c2 caddc a1i cmin c6 c1 c5 wceq
      wb wa cppi 3re simpl cv cmo cpr c4 cfl cfz chash ppicl adantr 2re resubcl
      crab sylancl cfn wss ssrab2 ssfi mp2an ax-mp cn nndivre mpan2 cprime ppi3
      cin oveq12d cuz cz syl df-4 oveq1i fveq2i mpbir reflcl peano2rem peano2re
      3z 6nn 5re flle 1re lesub1dd clt 6re lediv1 syl112anc mpbid letrd rabbiia
      6pos eqtr4i c0 wne eqtri mp3an cdvds modid eqeq2i moddvds mp3an13 syl5bbr
      mp4an 3cn ax-1cn pncan3oi hashdvds syl5eq 2cn 0re ltleii cmul 6cn breqtri
      pm3.2i flbi mpbir2an oveq2i flcld zcnd eqtrd cneg 5cn eqtr3i mpbi addcomi
      1z recnd mpanr12 syl2anc oveq1d sylancr mp3an23 3eqtr3d adantlr ad2antrr
      cc nn0red cn0 fzfi hashcl nn0rei ppifl flcl biimpa eluz2 syl3anbrc ppidif
      flge ineq1i syl6eqr eqtr3d cdom dfin5 wi elfzle1 ppiublem2 expcom ss2rabi
      3nn eqsstri ssdomg mp2 hashdom syl6eqbr leadd1dd le2addd cun wo ovex elpr
      inss1 unrab inrab wn rabeq0 1lt5 ltneii eqtr2 necon3ai mprgbir hashun crp
      elfzelz nnrp 0le1 1lt6 4z syl6eleqr df-3 nnne0i redivcli divgt0ii mulid1i
      2pos 2lt6 breqtrri ltdivmul 1e0p1 subid1d 5pos 5lt6 nnzi negsubdi2i 3p2e5
      5nn pncan2 negeqi 3eqtr2i divneg lenegi ltnegi neg0 1pneg1e0 neg1cn neg1z
      renegcli subneg 2timesd df-6 addsub4 mulcl divsubdir 3t2e6 mulcomi 2cnne0
      3ne0 divcan5 dividi divdir mp3an3 npcan addassd 3brtr4d lesubaddd readdcl
      0z ppiwordi mp3an2 syl6breq 3pos divge0 addge02 lecasei ) ACDZEAFGZUAZAUB
[encoded data, 4640 characters]
      IVUEYLUMXUMVVGVVNXUPXUQTUNXUNLVULVUFYOWKWLVUG $.
  $}

  ${
    $d k n p A $.  $d k n p x N $.
    $( The von Mangoldt function is less than the natural log.  (Contributed by
       Mario Carneiro, 7-Apr-2016.) $)
    vmalelog $p |- ( A e. NN -> ( Lam ` A ) <_ ( log ` A ) ) $=
      ( vp vk cn wcel cvma cfv clog cle wbr cc0 cv co wceq cprime adantr adantl
      wrex crp c1 breq1 cexp isppw2 wa cmul prmnn nnrpd relogcld cr nnre nnge1d
      wne log1 wb 1rp logleb sylancr mpbid syl5eqbrr nnge1 lemulge12d vmappw cz
      nnz relogexp syl2an 3brtr4d fveq2 breq12d syl5ibrcom rexlimivv syl6bi imp
      nnrp pm2.61ne ) ADEZAFGZAHGZIJZKVRIJVQKVQKVRIUAVPVQKULZVSVPVTABLZCLZUBMZN
      ZCDRBORVSACBUCWDVSBCODWAOEZWBDEZUDZVSWDWCFGZWCHGZIJWGWAHGZWBWJUEMZWHWIIWG
      WJWBWGWAWEWASEZWFWEWAWAUFZUGZPZUHWFWBUIEWEWBUJQWGKTHGZWJIUMWGTWAIJZWPWJIJ
      ZWGWAWEWADEWFWMPUKWGTSEZWLWQWRUNUOWOTWAUPUQURUSWFTWBIJWEWBUTQVAWAWBVBWEWL
      WBVCEWIWKNWFWNWBVDWAWBVEVFVGWDVQWHVRWIIAWCFVHAWCHVHVIVJVKVLVMVPKWPVRIUMVP
      TAIJZWPVRIJZAUTVPWSASEWTXAUNUOAVNTAUPUQURUSVO $.

    $( The first Chebyshev function is less than the second.  (Contributed by
       Mario Carneiro, 7-Apr-2016.) $)
    chtlepsi $p |- ( A e. RR -> ( theta ` A ) <_ ( psi ` A ) ) $=
      ( vn cr wcel cc0 cicc co cprime cin cv cvma cfv csu c1 cfl cfz cle wa syl
      c2 ccht cchp fzfid cn elfznn adantl vmacl wbr vmage0 ppisval cuz 2eluzge1
      inss1 wss fzss1 mp1i syl5ss eqsstrd fsumless clog chtval wceq inss2 simpr
      sseldi vmaprm sumeq2dv eqtr4d chpval 3brtr4d ) ACDZEAFGZHIZBJZKLZBMZNAOLZ
      PGZVOBMAUALZAUBLQVKVRVOVMBVKNVQUCVKVNVRDZRZVNUDDZVOCDVTWBVKVNVQUEUFZVNUGS
      WAWBEVOQUHWCVNUISVKVMTVQPGZHIZVRAUJVKWEWDVRWDHUMTNUKLDWDVRUNVKULTNVQUOUPU
      QURUSVKVSVMVNUTLZBMVPABVAVKVMVOWFBVKVNVMDZRZVNHDVOWFVBWHVMHVNVLHVCVKWGVDV
      EVNVFSVGVHABVIVJ $.

    $( Closure of the second Chebyshev function in the positive reals.
       (Contributed by Mario Carneiro, 8-Apr-2016.) $)
    chprpcl $p |- ( ( A e. RR /\ 2 <_ A ) -> ( psi ` A ) e. RR+ ) $=
      ( cr wcel c2 cle wbr cchp cfv ccht chpcl adantr chtrpcl chtlepsi rpgecld
      wa ) ABCZDAEFZOAGHZAIHZPRBCQAJKALPSREFQAMKN $.

    $( The second Chebyshev function is zero iff its argument is less than
       ` 2 ` .  (Contributed by Mario Carneiro, 9-Apr-2016.) $)
    chpeq0 $p |- ( A e. RR -> ( ( psi ` A ) = 0 <-> A < 2 ) ) $=
      ( cr wcel cchp cfv cc0 wceq c2 clt wbr wn cle wne wb wa ex adantr sylancl
      c1 cz 2re lenlt mpan chprpcl rpne0d sylbird necon4bd reflcl 1red caddc co
      cfl 2z fllt mpan2 biimpa df-2 syl6breq 1z zleltp1 mpbird chpwordi syl3anc
      flcl chpfl chp1 a1i 3brtr3d chpge0 chpcl 0re letri3 mpbir2and impbid ) AB
      CZADEZFGZAHIJZVOVRVPFVOVRKZHALJZVPFMZHBCVOVTVSNUAHAUBUCVOVTWAVOVTOVPAUDUE
      PUFUGVOVRVQVOVROZVQVPFLJZFVPLJZWBAULEZDEZSDEZVPFLWBWEBCZSBCWESLJZWFWGLJVO
      WHVRAUHQWBUIWBWIWESSUJUKZIJZWBWEHWJIVOVRWEHIJZVOHTCVRWLNUMAHUNUOUPUQURWBW
      ETCZSTCWIWKNVOWMVRAVDQUSWESUTRVAWESVBVCVOWFVPGVRAVEQWGFGWBVFVGVHVOWDVRAVI
      QWBVPBCZFBCVQWCWDONVOWNVRAVJQVKVPFVLRVMPVN $.

    $( The first Chebyshev function is zero iff its argument is less than
       ` 2 ` .  (Contributed by Mario Carneiro, 9-Apr-2016.) $)
    chteq0 $p |- ( A e. RR -> ( ( theta ` A ) = 0 <-> A < 2 ) ) $=
      ( cr wcel ccht cfv cc0 wceq c2 clt wbr wn cle wne wb 2re lenlt mpan wa ex
      adantr chtrpcl rpne0d sylbird necon4bd cchp chpeq0 biimpar breqtrd chtge0
      chtlepsi chtcl 0re letri3 sylancl mpbir2and impbid ) ABCZADEZFGZAHIJZUQUT
      URFUQUTKZHALJZURFMZHBCUQVBVANOHAPQUQVBVCUQVBRURAUAUBSUCUDUQUTUSUQUTRZUSUR
      FLJZFURLJZVDURAUEEZFLUQURVGLJUTAUJTUQVGFGUTAUFUGUHUQVFUTAUITVDURBCZFBCUSV
      EVFRNUQVHUTAUKTULURFUMUNUOSUP $.

    $( Upper bound on the ` theta ` function.  (Contributed by Mario Carneiro,
       22-Sep-2014.) $)
    chtleppi $p |- ( A e. RR+ ->
      ( theta ` A ) <_ ( ( ppi ` A ) x. ( log ` A ) ) ) $=
      ( vp wcel cc0 co cprime clog cfv csu cmul cle cr syl sseldi adantr wbr ce
      wb wceq 3brtr4d crp cicc cin cv ccht cppi rpre ppifi wa inss2 simpr prmnn
      cfn cn nnrpd relogcld relogcl w3a 0re elicc2 sylancr biimpa syldan simp3d
      inss1 reeflogd reeflog efle syl2anc mpbird fsumle chtval ppival oveq1d cc
      chash recnd fsumconst eqtr4d ) AUACZDAUBEZFUCZBUDZGHZBIZWBAGHZBIZAUEHZAUF
      HZWFJEZKVTWBWDWFBVTALCZWBUMCZAUGZAUHMZVTWCWBCZUIZWCWPWCWPWCFCWCUNCWPWBFWC
      WAFUJVTWOUKZNWCULMUOZUPZVTWFLCZWOAUQZOZWPWDWFKPZWDQHZWFQHZKPZWPWCAXDXEKWP
      WCLCZDWCKPZWCAKPZVTWOWCWACZXGXHXIURZWPWBWAWCWAFVEWQNVTXJXKVTDLCWKXJXKRUSW
      MDAWCUTVAVBVCVDWPWCWRVFVTXEASWOAVGOTWPWDLCWTXCXFRWSXBWDWFVHVIVJVKVTWKWHWE
      SWMABVLMVTWJWBVPHZWFJEZWGVTWIXLWFJVTWKWIXLSWMAVMMVNVTWLWFVOCWGXMSWNVTWFXA
      VQWBWFBVRVIVST $.

    $( Lemma for ~ chtub .  (Contributed by Mario Carneiro, 13-Mar-2014.) $)
    chtublem $p |- ( N e. NN -> ( theta ` ( ( 2 x. N ) - 1 ) ) <_
                ( ( theta ` N ) + ( ( log ` 4 ) x. ( N - 1 ) ) ) ) $=
      ( cn wcel c2 cmul co c1 cmin cfv caddc cr syl cc0 cn0 cle wbr cc wceq cpc
      adantr vp vn vk ccht cbc clog 2nn nnmulcl mpan nnred peano2rem chtcl nnre
      cfz nnnn0 2m1e1 oveq2i nncnd 2cn ax-1cn subsub mp3an23 nncn subdi mp3an13
      2t1e2 syl6eq oveq1d syl5eqr 2nn0 nnm1nn0 nn0mulcl sylancr nn0p1nn eqeltrd
      c4 eqtr4d 1re a1i leadd2dd 2timesd breqtrrd wb syl3anc readdcld nn0red ce
      4re cdvds cv cprime wa cif iftrue adantl wi breq2d syl5ibrcom wn cfa nnzd
      cuz cz eluz syl2anr mpbird syl2anc faccl iffalse nn0cnd cdiv eqtrd fveq2d
      oveq2d wne nnz nnne0 jca nnmulcld pcmul 3eqtrd mtod pceq0 pm2.61d nn0ge0d
      1nn0 cmpt prmorcht cexp ralrimiva pcmpt efchtcl 3brtr4d efle csu eqeltrrd
      recnd wss oveq2 mulcom nnge1 leaddsub mpbid elfz2nn0 bccl2 nnrpd relogcld
      syl3anbrc crp 4pos relogcl ax-mp remulcl wral simpr pccld nn0addge1 prmnn
      elrpii ad2antlr simprl prmz dvdsfac pcelnn nnge1d ad2antll addid2d bcval2
      id addsubassd pncan2d pcdiv simprr prmfac1 3expia sylan simpld dvdsmultr1
      facnn2 sylibrd oveq12d 00id pccl subid1d expr 0nn0 keepel nn0addcl breq1d
      eqbrtrd cseq eqid exp1d ifeq1d mpteq2ia eqcomi eqidd simpl pc2dvds dvdsle
      ex mpd efadd reeflogd fzfid elfzelz bccl nn0uz syl6eleq fzss1 fzss2 sstrd
      syl2an fsumless nn0zd bccmpl fsum1 npcand peano2uz sselda syldan 3eqtr4rd
      uzid fsumm1 binom11 expp1 expmuld sq2 oveq1i 3brtr3d clt reexpcl 2re 2pos
      pm3.2i lemul1 recni reexplog letrd ) ABCZDAEFZGHFZUDIZAUDIZVUBAUEFZUFIZJF
[encoded data, 5360 characters]
      MVQYMUYTVUFKCVXEXUBXUDWCVXBVXIVUFVUJYNXGXFVTUYS $.

    $( An upper bound on the Chebyshev function.  (Contributed by Mario
       Carneiro, 13-Mar-2014.)  (Revised 22-Sep-2014.) $)
    chtub $p |- ( ( N e. RR /\ 2 < N ) ->
                    ( theta ` N ) < ( ( log ` 2 ) x. ( ( 2 x. N ) - 3 ) ) ) $=
      ( vk cr wcel c2 clt wbr cfv wceq ccht cmul co c3 cmin c1 caddc adantr a1i
      cle syl vx vn cfl clog cuz fveq2 cc0 crp 2re 1lt2 rplogcl mp2an elrp mpbi
      wa simpli recni mulid1i cht2 syl6reqr chtfl sylan9eqr c4 2t2e4 df-4 eqtri
      eqtr4i simplr ltmul2 syl3anc mpbid syl5eqbrr 1red remulcl sylancr resubcl
      wb 3re sylancl eqbrtrrd chtcl ad2antrr simpr df-3 fveq2i cfz wral eluzfz2
      cv 3z oveq2 raleqdv c6 elrpii fveq2d syl6eq oveq2d oveq1d 3cn oveq1i cexp
      c8 2rp ax-mp mulcomi cz relogexp wi eluzle 2z eluzelz zltp1le mp3an13 1re
      cdiv syl5eqbr ltle recnd breq12d rspcv cc ax-1cn adddi 2ne0 mp3an23 eqtrd
      2cn oveq2i subsub3 breq2d zred zmulcl syl5eq cn wn imp wo mpjaodan lemul2
      syld simpl 2pos pm3.2i ltaddsub2d reflcl syl6eleqr 6lt8 6re 6pos 8re 8pos
      logltb elfz1eq cht3 2timesi pncan3oi relogcl cu2 3brtr4d rgen csn 2div2e1
      df-2 mpbird eluzelre ltdiv1 rehalfcld ltadd1 adantl mpd leadd2dd 2halvesd
      peano2z breqtrd elfz mp3an2 syl2anr mpbir2and wne divcan2 2p1e3 subaddrii
      oveq12d syl5reqr peano2rem ltadd1d adddid 2timesd addsubd 3eqtr2rd eqtr3d
      zcnd 3bitrd 3nn elfzuz chtublem addsubass 2m1e1 pncan sq2 3eqtr3i mulassd
      eluznn 3eqtrd 3brtr3d peano2uz readdcld lelttr mpand sylbid ltsub1dd lttr
      ltp1d mpan2d cprime cdvds dvdsval2 mp3an12 2lt3 breq2 mtbii nsyl3 dvdsprm
      ltnlei uzid mtbird con2d sylbird chtnprm syl2anc breq1d sylibrd zeo ralsn
      ovex syl6ibr ancld ralun fzsuc syl5ibr uzind4i sylc flle lesub1dd ltletrd
      ex cun flcl mpan flge mpan2 sylibd eluz2 syl3anbrc uzp1 ) ACDZEAFGZUOZAUC
[encoded data, 6000 characters]
      VUPVUQXXIXHUIEAXQVUIVUPWVQXXIXXHVQXJAEVUJVUKVULYPEVUSVUMVUNEVUSVUOTYR $.
  $}

  ${
    $d a k p x z A $.  $d x z C $.  $d a b k x y z K $.  $d a b k p x y z ph $.
    $d k p y z B $.  $d a b k p x y z P $.
    fsumvma.1 $e |- ( x = ( p ^ k ) -> B = C ) $.
    fsumvma.2 $e |- ( ph -> A e. Fin ) $.
    fsumvma.3 $e |- ( ph -> A C_ NN ) $.
    fsumvma.4 $e |- ( ph -> P e. Fin ) $.
    fsumvma.5 $e |- ( ph -> ( ( p e. P /\ k e. K ) <->
      ( ( p e. Prime /\ k e. NN ) /\ ( p ^ k ) e. A ) ) ) $.
    fsumvma.6 $e |- ( ( ph /\ x e. A ) -> B e. CC ) $.
    fsumvma.7 $e |- ( ( ph /\ ( x e. A /\ ( Lam ` x ) = 0 ) ) -> B = 0 ) $.
    $( Rewrite a sum over the von Mangoldt function as a sum over prime powers.
       (Contributed by Mario Carneiro, 15-Apr-2016.) $)
    fsumvma $p |- ( ph -> sum_ x e. A B = sum_ p e. P sum_ k e. K C ) $=
      ( cexp wa wcel cn vz va vy csu csn cxp ciun cfv csb cmpt crn cop wceq cvv
      vb cv fvexd co fveq2 df-ov syl6eqr eqeq2d biimpa syl csbied adantr cprime
      cfn wf1 biimpd impl simprd ex wb simpld adantrr ssrdv sselda adantrl eqid
      prmexpb baibd mpan2 syl22anc dom2lem f1fi syl2anc wral simplbda ralrimiva
      cc eleq1d rspcv sylc fsum2d nfcv nfcsb1v csbeq1a cbvsumi csbeq1 snfi xpfi
      weq sylancr iunfi wf1o fvex 2a1i wex eliunxp simprbda opelxp sylibr eleq1
      syl5ibrcom impancom expimpd syl5bi sseld anim12d c1st c2nd 1st2nd2 fveq2d
      exlimdvv eqeqan12d xp1st xp2nd jca an4s syl2an xpopth imp syldan cc0 wrex
      pm5.32da ancom 3bitr4g r2ex 3bitrd syl6 f1f1orn fvmpt adantl wf wss fmptd
      frn nfel1 rspc mpan9 fsumf1o syl5eq cdif eldif cvma wne elrnmpti rexiunxp
      bitri simpr simplr rbaibd adantlr 2exbidv isppw2 bitr4d syl5bb necon2bbid
      wn eqeltrrd sylbird fsumss 3eqtr2rd ) AFHEGUDIUDIFIUPZUEZHUFZUGZBUAUPZQUH
      ZDUIZUAUDZUBUVSUBUPZQUHZUJZUKZDBUDZCDBUDAUAFHEUWBIGUVTUVPGUPZULZUMZBUWADE
      UNUWKUVTQUQUWKBUPZUWAUMZRUWLUVPUWIQURZUMZDEUMUWKUWMUWOUWKUWAUWNUWLUWKUWAU
      WJQUHZUWNUVTUWJQUSUVPUWIQUTZVAVBVCJVDVEMAUVPFSZRZCVHSZHCGHUWNUJZVIHVHSZAU
      WTUWRKVFUWSGUAHCUWNUVPUVTQURZUWSUWIHSZUWNCSZUWSUXDRZUVPVGSZUWITSZRZUXEAUW
      RUXDUXIUXERZAUWRUXDRZUXJNVJVKZVLVMUWSUXDUVTHSZRZUWNUXCUMZGUAXCZVNZUWSUXNR
      UXGUXGUXHUVTTSZUXQUWSUXDUXGUXMUXFUXGUXHUXFUXIUXEUXLVOZVOVPZUXTUWSUXDUXHUX
      MUXFUXGUXHUXSVLZVPUWSUXMUXRUXDUWSHTUVTUWSGHTUWSUXDUXHUYAVMVQVRVSUXGUXGRUX
      HUXRRRZIIXCZUXQUVPVTUYBUXOUYCUXPUVPUVPUWIUVTWAWBWCWDVMWEHCUXAWFWGZAUXKRZU
      XEDWKSZBCWHZEWKSZAUXKUXIUXENWIZAUYGUXKAUYFBCOWJZVFUYFUYHBUWNCUWODEWKJWLWM
      WNWOAUWHUWGBUCUPZDUIZUCUDUWCUWGDUYLBUCUCDWPBUYKDWQZBUYKDWRZWSAUWGUYLUVSUW
      BUCUAUWFUWABUYKUWADWTAFVHSUVRVHSZIFWHUVSVHSMAUYOIFUWSUVQVHSUXBUYOUVPXAUYD
      UVQHXBXDWJIFUVRXEWGAUVSUNUWFVIUVSUWGUWFXFAUBUOUVSUNUWEUOUPZQUHZUWEUNSAUWD
      UVSSZUWDQXGZXHAUYRUYPUVSSZRUWDVGTUFZSZUYPVUASZRZUWEUYQUMZUBUOXCZVNAUYRVUB
      UYTVUCUYRUWDUWJUMZUXKRZGXIIXIZAVUBIGFHUWDXJZAVUHVUBIGAVUGUXKVUBAUXKVUGVUB
      UYEVUBVUGUWJVUASZUYEUXIVUKAUXKUXIUXENXKUVPUWIVGTXLXMUWDUWJVUAXNXOXPXQYEXR
      ZAUVSVUAUYPAUBUVSVUAVULVQXSXTVUDVUEUWDYAUHZUWDYBUHZQURZUYPYAUHZUYPYBUHZQU
      RZUMZVUMVUPUMVUNVUQUMRZVUFVUBVUCUWEVUOUYQVURVUBUWEVUMVUNULZQUHVUOVUBUWDVV
      AQUWDVGTYCYDVUMVUNQUTVAVUCUYQVUPVUQULZQUHVURVUCUYPVVBQUYPVGTYCYDVUPVUQQUT
      VAYFVUBVUMVGSZVUNTSZRVUPVGSZVUQTSZRVUSVUTVNZVUCVUBVVCVVDUWDVGTYGUWDVGTYHY
      IVUCVVEVVFUYPVGTYGUYPVGTYHYIVVCVVEVVDVVFVVGVUMVUPVUNVUQWAYJYKUWDUYPVGTVGT
      YLUUAUUBWEUVSUNUWFUUCVDUVTUVSSUVTUWFUHUWAUMAUBUVTUWEUWAUVSUWFUWDUVTQUSUWF
      VTZUVTQXGUUDUUEAUYKUWGSUYKCSZUYLWKSZAUWGCUYKAUVSCUWFUUFUWGCUUGAUBUVSUWECU
      WFAUYRUWECSZUYRVUIAVVKVUJAVUHVVKIGAVUGUXKVVKAUXKVUGVVKUYEVVKVUGUXEUYIVUGU
      WEUWNCVUGUWEUWPUWNUWDUWJQUSUWQVAZWLXOXPXQYEXRYMVVHUUHUVSCUWFUUIVDZVRAUYGV
      VIVVJUYJUYFVVJBUYKCBUYLWKUYMUUJBUCXCDUYLWKUYNWLUUKUULYNUUMUUNAUWGCDBVVMAU
      WLUWGSZUWLCSZUYFAUWGCUWLVVMVROYNAUWLCUWGUUOSZDYOUMZVVPVVOVVNUVKZRZAVVQUWL
      CUWGUUPAVVSVVOUWLUUQUHZYOUMZRZVVQAVVOVWAVVRAVVORZVVNVVTYOVVNUWOGHYPIFYPZV
      WCVVTYOUURZVVNUWLUWEUMZUBUVSYPVWDUBUVSUWEUWLUWFVVHUYSUUSVWFUWOUBIGFHVUGUW
      EUWNUWLVVLVBUUTUVAVWCVWDUWOGTYPIVGYPZVWEVWCUXKUWORZGXIIXIUXIUWORZGXIIXIVW
      DVWGVWCVWHVWIIGVWCUWOUXKRUWOUXIRVWHVWIVWCUWOUXKUXIVWCUWOUXEUXKUXIVNZVWCUW
      ORUWLUWNCVWCUWOUVBAVVOUWOUVCUVLAUXEVWJVVOAUXKUXIUXENUVDUVEYNYQUXKUWOYRUXI
      UWOYRYSUVFUWOIGFHYTUWOIGVGTYTYSVWCUWLTSVWEVWGVNACTUWLLVRUWLGIUVGVDUVHUVIU
      VJYQAVWBVVQPVMUVMXRYMKUVNUVO $.
  $}

  ${
    $d k p x A $.  $d x C $.  $d k p x ph $.  $d k p B $.
    fsumvma2.1 $e |- ( x = ( p ^ k ) -> B = C ) $.
    fsumvma2.2 $e |- ( ph -> A e. RR ) $.
    fsumvma2.3 $e |- ( ( ph /\ x e. ( 1 ... ( |_ ` A ) ) ) -> B e. CC ) $.
    fsumvma2.4 $e |- ( ( ph /\ ( x e. ( 1 ... ( |_ ` A ) ) /\
      ( Lam ` x ) = 0 ) ) -> B = 0 ) $.
    $( Apply ~ fsumvma for the common case of all numbers less than a real
       number ` A ` .  (Contributed by Mario Carneiro, 30-Apr-2016.) $)
    fsumvma2 $p |- ( ph -> sum_ x e. ( 1 ... ( |_ ` A ) ) B =
      sum_ p e. ( ( 0 [,] A ) i^i Prime )
        sum_ k e. ( 1 ... ( |_ ` ( ( log ` A ) / ( log ` p ) ) ) ) C ) $=
      ( c1 cfv co cn wcel wa cle wbr wb cfl cfz cc0 cicc cprime clog cdiv fzfid
      cin cv wss elfznn ssriv a1i cr cfn syl cexp elin simprbi anim12i pm4.71ri
      ppifi adantr prmnn ad2antrl cn0 nnnn0 ad2antll nnexpcld nnzd flge syl2anc
      cz cmul crp wceq simplrl nnrpd simplrr relogexp breq1d nnred 0red nn0ge0d
      nngt0d w3a elicc2 df-3an syl6bb baibd syl22anc biimpa ltletrd relogcld c2
      cuz prmuz2 eluzelre clt eluz2b2 rplogcld 3syl lemuldivd rerpdivcld 3bitrd
      elrpd logled simprr nnuz syl6eleq flcld elfz5 pm5.32da nncnd exp1d nnge1d
      3bitr4d leexp2ad eqbrtrrd wi letr syl3anc mpand sylibrd pm4.71rd 3bitr4rd
      rbaib anbi1d syl5bb fsumvma ) ABLCUAMZUBNZDEUCCUDNZUEUIZFLCUFMZGUJZUFMZUG
      NZUAMZUBNZGHALYLUHYMOUKABYMOBUJYLULUMUNACUOPZYOUPPICVCUQYQYOPZFUJZUUAPZQZ
      YQUEPZUUDOPZQZUUFQAUUIYQUUDURNZYMPZQUUFUUIUUCUUGUUEUUHUUCYQYNPZUUGYQYNUEU
      SZUTUUDYTULVAVBAUUIUUFUUKAUUIQZUUJCRSZUUJYLRSZUUFUUKUUNUUBUUJVNPUUOUUPTAU
      UBUUIIVDZUUNUUJUUNYQUUDUUGYQOPZAUUHYQVEZVFZUUHUUDVGPAUUGUUDVHVIVJZVKCUUJV
      LVMUUNUULUUOQUULUUEQUUOUUFUUNUULUUOUUEUUNUULQZUUJUFMZYPRSZUUDYTRSZUUOUUEU
      VBUVDUUDYRVONZYPRSUUDYSRSZUVEUVBUVCUVFYPRUVBYQVPPUUDVNPZUVCUVFVQUVBYQUVBU
      UGUURAUUGUUHUULVRZUUSUQZVSUVBUUDAUUGUUHUULVTZVKZYQUUDWAVMWBUVBUUDYPYRUVBU
      UDUVKWCUVBCUVBCUUNUUBUULUUQVDZUVBUCYQCUVBWDUUNYQUOPZUULUUNYQUUTWCZVDUVMUV
      BYQUVJWFUUNUULYQCRSZUUNUCUOPZUUBUVNUCYQRSZUULUVPTUUNWDUUQUVOUUNYQUUNUURYQ
      VGPUUTYQVHUQWEUVQUUBQZUULUVNUVRQZUVPUVSUULUVNUVRUVPWGUVTUVPQUCCYQWHUVNUVR
      UVPWIWJWKWLZWMWNXGZWOZUVBUUGYQWPWQMPZYRVPPUVIYQWRUWDYQWPYQWSUWDUURLYQWTSY
      QXAUTXBXCZXDUVBYSUOPUVHUVGUVETUVBYPYRUWCUWEXEZUVLYSUUDVLVMXFUVBUUJCUVBUUJ
      UUNUUJOPUULUVAVDVSUWBXHUVBUUDLWQMZPZYTVNPUUEUVETUUNUWHUULUUNUUDOUWGAUUGUU
      HXIXJXKZVDUVBYSUWFXLUUDLYTXMVMXRXNUUNUUOUULUUNUUOUVPUULUUNYQUUJRSZUUOUVPU
      UNYQLURNYQUUJRUUNYQUUNYQUUTXOXPUUNYQLUUDUVOUUNYQUUTXQUWIXSXTUUNUVNUUJUOPU
      UBUWJUUOQUVPYAUVOUUNUUJUVAWCUUQYQUUJCYBYCYDUWAYEYFUUNUUCUULUUEUUGUUCUULTA
      UUHUUCUULUUGUUMYHVFYIYGUUNUUJUWGPYLVNPUUKUUPTUUNUUJOUWGUVAXJXKUUNCUUQXLUU
      JLYLXMVMXRXNYJJKYK $.
  $}

  ${
    $d m n p A $.
    $( The logarithmic analogue of ~ pcprod .  The sum of the logarithms of the
       primes dividing ` A ` multiplied by their powers yields the logarithm of
       ` A ` .  (Contributed by Mario Carneiro, 15-Apr-2016.) $)
    pclogsum $p |- ( A e. NN -> sum_ p e. ( ( 1 ... A ) i^i Prime )
      ( ( p pCnt A ) x. ( log ` p ) ) = ( log ` A ) ) $=
      ( vn cn wcel c1 co cv cprime cpc cexp clog cfv cc0 cif csu cmul wceq crp
      wa vm cfz cin elin baib ifbid fvif log1 ifeq2 ax-mp eqtri syl6eqr sumeq2i
      wss cc wral inss1 simpr sseldi elfznn inss2 simpl pccld nnexpcld relogcld
      syl nnrpd recnd ralrimiva cuz cfn wo fzfi olci sumss2 mpan2 sylancr nn0zd
      cz relogexp syl2anc sumeq2dv eqtr3d caddc cmpt cseq adantl eleq1 id oveq1
      oveq12d ifbieq1d fveq2d eqid fvmpt elnnuz biimpi adantr simpll wn 1nn a1i
      fvex ifclda fsumser rpmulcl ovex 1ex ifex eqeltrd relogmul eqtr4d seqhomo
      pcprod 3eqtr2d 3eqtr3a ) ADEZFAUBGZBHZXRIUCZEZXSXSAJGZKGZLMZNOZBPZXRXSIEZ
      YCFOZLMZBPZXTYBXSLMZQGZBPZALMZXRYEYIBXSXREZYEYGYDNOZYIYOYAYGYDNYAYOYGXSXR
      IUDUEUFYIYGYDFLMZOZYPYGYCFLUGYQNRYRYPRUHYGYQNYDUIUJUKULUMXQXTYDBPZYFYMXQX
      TXRUNZYDUOEZBXTUPZYSYFRZXRIUQZXQUUABXTXQYATZYDUUEYCUUEYCUUEXSYBUUEYOXSDEZ
      UUEXTXRXSUUDXQYAURZUSXSAUTZVFZUUEXSAUUEXTIXSXRIVAUUGUSXQYAVBVCZVDVGVEVHVI
      YTUUBTXRFVJMZUNZXRVKEZVLUUCUUMUULFAVMVNXTXRYDBFVOVPVQXQXTYDYLBUUEXSSEZYBV
      SEYDYLRUUEXSUUIVGUUEYBUUJVRXSYBVTWAWBWCXQYJAWDCDCHZIEZUUOUUOAJGZKGZFOZLMZ
      WEZFWFMAQCDUUSWEZFWFMZLMYNXQYIBUVAFAXQYOTZUUFXSUVAMZYIRYOUUFXQUUHWGZCXSUU
      TYIDUVAUUOXSRZUUSYHLUVGUUPYGUURYCFUUOXSIWHUVGUUOXSUUQYBKUVGWIUUOXSAJWJWKW
      LZWMUVAWNYHLXCWOVFZXQAUUKEAWPWQZUVDYIUVDYHUVDYHUVDYGYCFDUVDYGTZXSYBUVDUUF
      YGUVFWRUVKXSAUVDYGURXQYOYGWSVCVDFDEUVDYGWTTXAXBXDVGZVEVHXEXQBUAQWDSUVBUVA
      LFAUUNUAHZSETZXSUVMQGZSEXQXSUVMXFWGUVDXSUVBMZYHSUVDUUFUVPYHRUVFCXSUUSYHDU
      VBUVHUVBWNZYGYCFXSYBKXGXHXIWOVFZUVLXJUVJUVNUVOLMYKUVMLMWDGRXQXSUVMXKWGUVD
      UVPLMYIUVEUVDUVPYHLUVRWMUVIXLXMXQUVCALCUVBAUVQXNWMXOXP $.
  $}

  ${
    $d d k m n p x A $.
    $( The sum of the von Mangoldt function over the divisors of ` n ` .
       Equation 9.2.4 of [Shapiro], p. 328 and theorem 2.10 in [ApostolNT]
       p. 32.  (Contributed by Mario Carneiro, 15-Apr-2016.) $)
    vmasum $p |- ( A e. NN ->
      sum_ n e. { x e. NN | x || A } ( Lam ` n ) = ( log ` A ) ) $=
      ( vp vk cn wcel cv cdvds wbr cfv csu c1 co cprime cfn syl2anc syl adantl
      wa crab cvma cfz cin cpc cexp clog cmul fveq2 fzfid dvdsssfz1 ssfi ssrab2
      wss a1i inss1 sylancl cle cz wb cn0 pccl ancoms nn0zd fznn an12 iddvdsexp
      anbi2d prmz sylan ad2antlr prmnn nnnn0 nnexpcl syl2an nnz ad2antrr dvdstr
      nnzd syl3anc mpand simpll dvdsle syld baibd sylibrd pm4.71rd breq1 elrab3
      wi simplr pcdvdsb 3bitr4rd pm5.32da syl5bb bitrd elin anbi1i anass 3bitri
      3bitr4g cr sselda vmacl recnd cc0 wceq simprr fsumvma chash elfznn vmappw
      simprbi sumeq2dv cc nnrpd relogcld fsumconst sylan2 hashfz1 oveq1d 3eqtrd
      pclogsum ) BFGZAHZBIJZAFUAZCHZUBKZCLMBUCNZOUDZMDHZBUENZUCNZYLEHZUFNZUBKZE
      LZDLYKYMYLUGKZUHNZDLBUGKYDCYGYIYQYKEYNDYHYPUBUIYDYJPGZYGYJUNYGPGYDMBUJZBA
      UKYJYGULQYGFUNYDYFAFUMUOZYDUUAYKYJUNYKPGUUBYJOUPYJYKULUQYDYLOGZYLYJGZYOYN
      GZTZTZUUDYOFGZYPYGGZTZTYLYKGZUUFTZUUDUUITUUJTYDUUDUUGUUKYDUUDTZUUGUUEUUIY
      OYMURJZTZTZUUKUUNUUFUUPUUEUUNYMUSGUUFUUPUTUUNYMUUDYDYMVAGZYLBVBVCZVDYOYMV
      ERVHUUQUUIUUEUUOTZTUUNUUKUUEUUIUUOVFUUNUUIUUTUUJUUNUUITZYPBIJZUUEUVBTUUJU
      UTUVAUVBUUEUVAUVBYLBURJZUUEUVAUVBYLBIJZUVCUVAYLYPIJZUVBUVDUUNYLUSGZUUIUVE
      UUDUVFYDYLVIZSYLYOVGVJUVAUVFYPUSGBUSGZUVEUVBTUVDWJUUDUVFYDUUIUVGVKZUVAYPU
      UNYLFGZYOVAGZYPFGZUUIUUDUVJYDYLVLZSYOVMZYLYOVNVOZVSYDUVHUUDUUIBVPVQZYLYPB
      VRVTWAUVAUVFYDUVDUVCWJUVIYDUUDUUIWBYLBWCQWDUVAUVHUVJUUEUVCUTUVPUUDUVJYDUU
      IUVMVKUVHUUEUVJUVCYLBVEWEQWFWGUVAUVLUUJUVBUTUVOYFUVBAYPFYEYPBIWHWIRUVAUUO
      UVBUUEUVAUUDUVHUVKUUOUVBUTYDUUDUUIWKUVPUUIUVKUUNUVNSYOYLBWLVTVHWMWNWOWPWN
      UUMUUEUUDTZUUFTUUEUUDUUFTTUUHUULUVQUUFYLYJOWQZWRUUEUUDUUFWSUUEUUDUUFVFWTU
      UDUUIUUJWSXAYDYHYGGZTZYIUVTYHFGYIXBGYDYGFYHUUCXCYHXDRXEYDUVSYIXFXGXHXIYDY
      KYRYTDYDUULTZYRYNYSELZYNXJKZYSUHNZYTUWAYNYQYSEUWAUUFTUUDUUIYQYSXGUULUUDYD
      UUFUULUUEUUDUVRXMZVKUUFUUIUWAYOYMXKSYLYOXLQXNUWAYNPGYSXOGUWBUWDXGUWAMYMUJ
      UWAYSUWAYLUWAYLUULUVJYDUULUUDUVJUWEUVMRSXPXQXEYNYSEXRQUWAUWCYMYSUHUWAUURU
      WCYMXGUULYDUUDUURUWEUUSXSYMXTRYAYBXNBDYCYB $.

    $( Another expression for the logarithm of a factorial, in terms of the von
       Mangoldt function.  Equation 9.2.7 of [Shapiro], p. 329.  (Contributed
       by Mario Carneiro, 15-Apr-2016.)  (Revised by Mario Carneiro,
       3-May-2016.) $)
    logfac2 $p |- ( ( A e. RR /\ 0 <_ A ) ->
      ( log ` ( ! ` ( |_ ` A ) ) ) = sum_ k e. ( 1 ... ( |_ ` A ) )
        ( ( Lam ` k ) x. ( |_ ` ( A / k ) ) ) ) $=
      ( vn vx cr wcel cle wbr wa cfv c1 co cv csu cmul wceq syl cdvds cn cfn vm
      cc0 cfl cfa clog cfz cvma cdiv cn0 flge0nn0 logfac crab fzfid ssrab2 ssfi
      sylancl cz wb flcl adantr fznn anbi1d nnre ad2antlr elfznn ad2antrl nnred
      wss reflcl ad3antrrr simprr nnz dvdsle syl2anc mpd elfzle2 letrd pm4.71rd
      wi expl an12 anass bitri 3bitr4g bitr4d breq2 elrab anbi2i breq1 cc vmacl
      adantl recnd fsumcom2 chash fsumconst cen cmpt wf1o simpll eqid dvdsflf1o
      adantrr f1oeng hasheni simpl nndivre syl2an clt jca divge0 sylan2 hashfz1
      nngt0 eqtr3d oveq1d flcld mulcomd 3eqtrd sumeq2dv vmasum 3eqtr3d eqtr4d
      zcnd ) AEFZUBAGHZIZAUCJZUDJUEJZKYHUFLZCMZUEJZCNZYJBMZUGJZAYNUHLZUCJZOLZBN
      ZYGYHUIFYIYMPAUJCYHUKQYGYJYNDMZRHZDYJULZYOCNZBNYJYTYKRHZDSULZYOBNZCNYSYMY
      GYJUUBYJUUEBCYOYGKYHUMZUUGYGYNYJFZIZYJTFUUBYJVHUUBTFZUUIKYHUMUUADYJUNYJUU
      BUOUPZYGUUHYKYJFZYNYKRHZIZIZUULYNSFZUUMIZIZUUHYKUUBFZIUULYNUUEFZIYGUUOUUP
      YNYHGHZIZUUNIZUURYGUUHUVBUUNYGYHUQFZUUHUVBURYEUVDYFAUSUTYNYHVAQVBYGUUPUUN
      IZUVAUVEIZUURUVCYGUVEUVAYGUUPUUNUVAYGUUPIZUUNIZYNYKYHUUPYNEFZYGUUNYNVCZVD
      UVHYKUULYKSFZUVGUUMYKYHVEZVFZVGYEYHEFYFUUPUUNAVIVJUVHUUMYNYKGHZUVGUULUUMV
      KUVHYNUQFZUVKUUMUVNVSUUPUVOYGUUNYNVLVDUVMYNYKVMVNVOUULYKYHGHUVGUUMYKKYHVP
      VFVQVTVRUULUUPUUMWAUVCUUPUVAUUNIIUVFUUPUVAUUNWBUUPUVAUUNWAWCWDWEUUSUUNUUH
      UUAUUMDYKYJYTYKYNRWFWGWHUUTUUQUULUUDUUMDYNSYTYNYKRWIWGWHWDYGUUHYOWJFZUUSU
      UIYOUUIUUPYOEFUUHUUPYGYNYHVEZWLZYNWKQWMZXCWNYGYJUUCYRBUUIUUCUUBWOJZYOOLZY
      QYOOLYRUUIUUJUVPUUCUWAPUUKUVSUUBYOCWPVNUUIUVTYQYOOUUIKYQUFLZWOJZUVTYQUUIU
      WBUUBWQHZUWCUVTPUUIUWBTFUWBUUBUAUWBYNUAMOLWRZWSUWDUUIKYQUMUUIDAUAUWEYNYEY
      FUUHWTUVRUWEXAXBUWBUUBTUWEXDVNUWBUUBXEQUUIYQUIFZUWCYQPUUIYPEFZUBYPGHZUWFY
      GYEUUPUWGUUHYEYFXFUVQAYNXGXHZUUHYGUVIUBYNXIHZIZUWHUUHUUPUWKUVQUUPUVIUWJUV
      JYNXNXJQAYNXKXLYPUJVNYQXMQXOXPUUIYQYOUUIYQUUIYPUWIXQYDUVSXRXSXTYGYJUUFYLC
      YGUULIUVKUUFYLPUULUVKYGUVLWLDYKBYAQXTYBYC $.

    $( Express the second Chebyshev function directly as a sum over the primes
       less than ` A ` (instead of indirectly through the von Mangoldt
       function).  (Contributed by Mario Carneiro, 8-Apr-2016.) $)
    chpval2 $p |- ( A e. RR -> ( psi ` A ) = sum_ p e. ( ( 0 [,] A ) i^i
      Prime ) ( ( log ` p ) x. ( |_ ` ( ( log ` A ) / ( log ` p ) ) ) ) ) $=
      ( vn vk cr wcel cfv c1 cfz co cv cvma csu cc0 cprime cmul wceq c2 clt wbr
      cchp cfl cicc cin clog cdiv chpval fveq2 id wa cn elfznn adantl vmacl syl
      recnd simprr fsumvma2 inss2 simpr sseldi vmappw syl2an sumeq2dv chash cfn
      cexp cc fzfid cuz crp prmuz2 eluzelre eluz2b2 simprbi rplogcld 3syl rpcnd
      fsumconst syl2anc cn0 cle ppisval inss1 syl6eqss sselda elfzuz2 simpl 2re
      0red a1i 2pos eluzle cz wb 2z flge mpan2 syl5ibr imp ltletrd elrpd syldan
      relogcld 1red 1lt2 rplogcl rpdivcld rpge0d flge0nn0 hashfz1 oveq1d nn0cnd
      rerpdivcld mulcomd 3eqtrd eqtrd ) AEFZAUAGHAUBGZIJZCKZLGZCMNAUCJZOUDZHAUE
      GZBKZUEGZUFJZUBGZIJZYFDKZVGJZLGZDMZBMYDYGYIPJZBMACUGXRCAYBYMDBYAYLLUHXRUI
      XRYAXTFZUJZYBYQYAUKFZYBEFYPYRXRYAXSULUMYAUNUOUPXRYPYBNQUQURXRYDYNYOBXRYFY
      DFZUJZYNYJYGDMZYOYTYJYMYGDYTYFOFZYKUKFYMYGQYKYJFYTYDOYFYCOUSXRYSUTVAZYKYI
      ULYFYKVBVCVDYTUUAYJVEGZYGPJZYIYGPJYOYTYJVFFYGVHFUUAUUEQYTHYIVIYTYGYTUUBYF
      RVJGZFZYGVKFUUCYFVLUUGYFRYFVMUUGYFUKFHYFSTYFVNVOVPVQZVRZYJYGDVSVTYTUUDYIY
      GPYTYIWAFZUUDYIQYTYHEFNYHWBTUUJYTYEYGYTAXRYSXSUUFFZAVKFYTYFRXSIJZFUUKXRYD
      UULYFXRYDUULOUDUULAWCUULOWDWEWFYFRXSWGUOZXRUUKUJZAXRUUKWHZUUNNRAUUNWJREFU
      UNWIWKZUUONRSTUUNWLWKXRUUKRAWBTZUUKUUQXRRXSWBTZRXSWMXRRWNFUUQUURWOWPARWQW
      RWSWTZXAXBXCXDUUHXNYTYHYTYEYGXRYSHASTZYEVKFXRYSUUKUUTUUMUUNHRAUUNXEUUPUUO
      HRSTUUNXFWKUUSXAXCAXGXCUUHXHXIYHXJVTZYIXKUOXLYTYIYGYTYIUVAXMUUIXOXPXQVDXP
      $.

    $( The second Chebyshev function is the sum of the theta function at
       arguments quickly approaching zero.  (This is usually stated as an
       infinite sum, but after a certain point, the terms are all zero, and it
       is easier for us to use an explicit finite sum.)  (Contributed by Mario
       Carneiro, 7-Apr-2016.) $)
    chpchtsum $p |- ( A e. RR -> ( psi ` A ) =
      sum_ k e. ( 1 ... ( |_ ` A ) ) ( theta ` ( A ^c ( 1 / k ) ) ) ) $=
      ( vp cr wcel cc0 co cprime cfv cmul csu c1 ccxp wa syl syl2anc cle wbr wb
      wceq cicc cin cv clog cdiv cfl cfz cchp chash cfn cc fzfid cn inss2 simpr
      ccht sseldi prmnn nnrpd relogcld recnd fsumconst cn0 simpl 1red nnred cuz
      c2 clt prmuz2 eluz2b2 simprbi w3a inss1 0re elicc2 sylancr simp3d ltletrd
      mpbid rplogcld rpdivcld rpred rpge0d flge0nn0 hashfz1 oveq1d zcnd mulcomd
      flcld 3eqtrrd sumeq2dv chpval2 0red 0lt1 elfzuz2 eluzle adantl cz 1z flge
      sylancl mpbird sylan2 ltled elfznn nnrecred recxpcld chtval ppifi anim12i
      a1i wi sseli wss sselda nngt0d ex adantrd jcad anim12ci cexp elin simprll
      biantrud nnnn0d df-3an syl6bb baibd syl22anc bitr3d syl5bb 3bitrd anbi12d
      elfz5 nncnd letr syl3anc mpand pm4.71rd nn0ge0d simprr rerpdivcld simprlr
      nnzd nnexpcld logled crp relogexp breq1d lemuldivd nnuz syl6eleq 3bitr4rd
      elrpd bitr4d cxpge0d cxple2d cxpexp nnne0d recid2d oveq2d cxpmuld 3eqtr3d
      cxp1d breq12d bernneq3 exp1d leexp2ad eqbrtrrd 3bitr2rd pm5.21ndd adantrr
      nnge1d bitrd fsumcom2 eqtr4d 3eqtr4d ) ADEZFAUAGZHUBZCUCZUDIZAUDIZUWCUEGZ
      UFIZJGZCKUWALUWFUGGZUWCBKZCKZAUHILAUFIZUGGZALBUCZUEGZMGZUPIZBKZUVSUWAUWGU
      WICUVSUWBUWAEZNZUWIUWHUIIZUWCJGZUWFUWCJGUWGUWSUWHUJEUWCUKEZUWIUXATUWSLUWF
      ULZUWSUWCUWSUWBUWSUWBUWSUWBHEZUWBUMEZUWSUWAHUWBUVTHUNZUVSUWRUOZUQZUWBURZO
      ZUSUTVAZUWHUWCBVBPUWSUWTUWFUWCJUWSUWFVCEZUWTUWFTUWSUWEDEZFUWEQRUXLUWSUWEU
      WSUWDUWCUWSAUVSUWRVDZUWSLUWBAUWSVEUWSUWBUXJVFZUXNUWSUWBVHVGIEZLUWBVIRZUWS
      UXDUXPUXHUWBVJZOUXPUXEUXQUWBVKVLZOZUWSUWBDEZFUWBQRZUWBAQRZUWSUWBUVTEZUYAU
      YBUYCVMZUWSUWAUVTUWBUVTHVNUXGUQUWSFDEZUVSUYDUYESVOUXNFAUWBVPZVQVTVRZVSWAU
      WSUWBUXOUXTWAWBZWCZUWSUWEUYIWDUWEWEPUWFWFOWGUWSUWFUWCUWSUWFUWSUWEUYJWJWHU
      XKWIWKWLACWMUVSUWQUWLFUWOUAGZHUBZUWCCKZBKUWJUVSUWLUWPUYMBUVSUWMUWLEZNZUWO
      DEZUWPUYMTUYOAUWNUVSUYNVDZUYOFAUYOWNZUYQUYOFLAUYRUYOVEUYQFLVIRUYOWOXLUYNU
      VSUWKLVGIZEZLAQRZUWMLUWKWPUVSUYTNZVUALUWKQRZUYTVUCUVSLUWKWQWRVUBUVSLWSEVU
      AVUCSUVSUYTVDWTALXAXBXCXDVSZXEUYOUWMUYNUWMUMEZUVSUWMUWKXFZWRXGXHUWOCXIOWL
      UVSUWAUWHUWLUYLCBUWCAXJUVSLUWKULUXCUVSUXDVUENZFAVIRZNZUWRUWMUWHEZNZUYNUWB
      UYLEZNZUVSVUKVUGVUHVUKVUGXMUVSUWRUXDVUJVUEUWAHUWBUXFXNUWMUWFXFXKXLUVSUWRV
      UHVUJUVSUWRVUHUWSFUWBAUWSWNUWSUWBUWSUXDUXEUVSUWAHUWBUWAHXOUVSUXFXLXPUXIOZ
      VFUXNUWSUWBVUNXQUYHVSXRXSXTUVSVUMVUGVUHVUMVUGXMUVSUYNVUEVULUXDVUFUYLHUWBU
      YKHUNXNYAXLUVSUYNVUHVULUVSUYNVUHVUDXRXSXTUVSVUIVUKVUMSUVSVUINZVUKUYCUWBUW
      MYBGZAQRZNZVUMVUOUWRUYCVUJVUQUWRUYDUXDNZVUOUYCUWBUVTHYCVUOUYDVUSUYCVUOUXD
      UYDUVSUXDVUEVUHYDZYEVUOUYFUVSUYAUYBUYDUYCSVUOWNZUVSVUIVDZVUOUWBVUOUXDUXEV
      UTUXIOZVFZVUOUWBVUOUWBVVCYFUUAZUYFUVSNZUYDUYAUYBNZUYCVVFUYDUYEVVGUYCNUYGU
      YAUYBUYCYGYHYIYJYKYLVUOUWMUWEQRZUWMUWFQRZVUQVUJVUOUXMUWMWSEZVVHVVISVUOUWD
      UWCVUOAVUOAVVBUVSVUGVUHUUBUUOZUTZVUOUWBVVDVUOUXPUXQVUOUXDUXPVUTUXROZUXSOW
      AZUUCZVUOUWMUVSUXDVUEVUHUUDZUUEZUWEUWMXAPVUOVUQVUPUDIZUWDQRUWMUWCJGZUWDQR
      VVHVUOVUPAVUOVUPVUOUWBUWMVVCVUOUWMVVPYFZUUFZUSVVKUUGVUOVVRVVSUWDQVUOUWBUU
      HEVVJVVRVVSTVUOUWBVVCUSVVQUWBUWMUUIPUUJVUOUWMUWDUWCVUOUWMVVPVFZVVLVVNUUKY
      MVUOUWMUYSEZUWFWSEVUJVVISVUOUWMUMUYSVVPUULUUMZVUOUWEVVOWJUWMLUWFYOPUUNYNV
      UOVUMUWMAQRZVUQNVUQVURVUOUYNVWEVULVUQVUOUYNUWMUWKQRZVWEVUOVWCUWKWSEUYNVWF
      SVWDVUOAVVBWJUWMLUWKYOPVUOUVSVVJVWEVWFSVVBVVQAUWMXAPUUPVULUWBUYKEZUXDNZVU
      OVUQUWBUYKHYCVUOVWHUWBUWOQRZUWBUWMMGZUWOUWMMGZQRVUQVUOVWGVWHVWIVUOUXDVWGV
      UTYEVUOUYFUYPUYAUYBVWGVWISVVAVUOAUWNVVBVUOAVVKWDZVUOUWMVVPXGZXHZVVDVVEUYF
      UYPNZVWGVVGVWIVWOVWGUYAUYBVWIVMVVGVWINFUWOUWBVPUYAUYBVWIYGYHYIYJYKVUOUWBU
      WOUWMVVDVVEVWNVUOAUWNVVBVWLVWMUUQVUOUWMVVPUSUURVUOVWJVUPVWKAQVUOUWBUKEUWM
      VCEZVWJVUPTVUOUWBVVCYPZVVTUWBUWMUUSPVUOAUWNUWMJGZMGALMGVWKAVUOVWRLAMVUOUW
      MVUOUWMVVPYPZVUOUWMVVPUUTUVAUVBVUOAUWNUWMVVKVWMVWSUVCVUOAVUOAVVBVAUVEUVDU
      VFYMYLYNVUOVUQVWEVUOUWMVUPQRZVUQVWEVUOUWMVUPVWBVUOVUPVWAVFZVUOUXPVWPUWMVU
      PVIRVVMVVTUWBUWMUVGPXEVUOUWMDEVUPDEZUVSVWTVUQNVWEXMVWBVXAVVBUWMVUPAYQYRYS
      YTVUOVUQUYCVUOUWBVUPQRZVUQUYCVUOUWBLYBGUWBVUPQVUOUWBVWQUVHVUOUWBLUWMVVDVU
      OUWBVVCUVNVWDUVIUVJVUOUYAVXBUVSVXCVUQNUYCXMVVDVXAVVBUWBVUPAYQYRYSYTUVKUVO
      XRUVLUVSUWRUXBVUJUXKUVMUVPUVQUVR $.

    $( An upper bound on the second Chebyshev function.  (Contributed by Mario
       Carneiro, 8-Apr-2016.) $)
    chpub $p |- ( ( A e. RR /\ 1 <_ A ) -> ( psi ` A ) <_
      ( ( theta ` A ) + ( ( sqrt ` A ) x. ( log ` A ) ) ) ) $=
      ( vp cr wcel c1 cle wbr wa cfv cmul cc0 cprime adantr clt syl wceq sylan2
      co c2 mpbid cchp ccht cmin csqrt clog caddc cicc cin chpcl chtcl resubcld
      csu cfn simpl 0red 1red a1i simpr ltletrd elrpd rpge0d resqrtcld ppifi cv
      0lt1 crp relogcld fsumrecl remulcld cfl cn inss2 sseldi prmnn nnrpd nnred
      cdiv prmuz2 eluz2b2 simprbi rplogcld rerpdivcld reflcl recnd fsumsub 0le0
      cuz wss cexp lemul2ad sqsqrtd mulid1d eqtr4d sqvald 3brtr4d le2sqd mpbird
      sqrtge0d iccss syl22anc ssrin sselda syldan cdif eldifi mulid2d w3a inss1
      cc wb 0re elicc2 sylancr simp3d logled eqbrtrd lemuldivd wn eldifn adantl
      elin rbaib df-3an syl6bb baibd bitrd mtbid ltnled lt2sqd eqbrtrrd syl2anc
      cz sylancl breqtrd eqtrd flle letrd chash cn0 cfz nnsqcld logltb relogexp
      2z ltdivmul2d df-2 syl6breq 1z flbi mpbir2and oveq2d oveq1d subidd fsumss
      chpval2 chtval oveq12d 3eqtr4rd lemuldiv2d fsumle fsumconst hashcl nn0red
      2re subge02d logge0 cdom fzfid ppisval 2eluzge1 fzss1 mp1i syl5ss eqsstrd
      ssdomg sylc hashdom flge0nn0 hashfz1 lemul1ad lesubadd2d ) ACDZEAFGZHZAUA
      IZAUBIZUCRZAUDIZAUEIZJRZFGUWEUWFUWJUFRFGUWDUWGKUWHUGRZLUHZUWIBULZUWJUWDUW
      EUWFUWBUWECDUWCAUIMZUWBUWFCDUWCAUJMZUKUWDUWLUWIBUWDUWHCDZUWLUMDZUWDAUWBUW
      CUNZUWDAUWDAUWRUWDKEAUWDUOZUWDUPZUWRKENGUWDVEUQUWBUWCURZUSUTZVAZVBZUWHVCO
      ZUWDBVDZUWLDZHZAUWDAVFDZUXGUXBMVGZVHUWDUWHUWIUXDUWDAUXBVGZVIZUWDUWGUWLUXF
      UEIZUWIUXMVQRZVJIZJRZUXMUCRZBULZUWMFUWDKAUGRZLUHZUXQBULUXTUXPBULZUXTUXMBU
      LZUCRUXRUWGUWDUXTUXPUXMBUWBUXTUMDUWCAVCMZUWDUXFUXTDZHZUXPUYEUXMUXOUYEUXFU
      YEUXFUYEUXFLDZUXFVKDZUYEUXTLUXFUXSLVLUWDUYDURZVMZUXFVNZOZVOZVGZUYEUXNCDZU
      XOCDZUYEUWIUXMUWDUWICDZUYDUXKMUYEUXFUYEUXFUYKVPUYEUXFSWGIDZEUXFNGZUYEUYFU
      YQUYIUXFVROUYQUYGUYRUXFVSVTOWAZWBZUXNWCOZVIZWDUYEUXMUYMWDZWEUWDUWLUXTUXQB
      UWDUWKUXSWHZUWLUXTWHUWDKCDZUWBKKFGZUWHAFGZVUDUWSUWRVUFUWDWFUQUWDVUGUWHSWI
      RZASWIRZFGUWDAEJRZAAJRVUHVUIFUWDEAAUWTUWRUWRUXCUXAWJUWDVUHAVUJUWDAUWDAUWR
      WDZWKUWDAVUKWLWMUWDAVUKWNWOUWDUWHAUXDUWRUWDAUWRUXCWRZUXCWPWQKAKUWHWSWTUWK
      UXSLXAOZUWDUXGUYDUXQXIDUWDUWLUXTUXFVUMXBZUYEUXQUYEUXPUXMVUBUYMUKZWDXCUWDU
      XFUXTUWLXDDZHZUXQUXMUXMUCRKVUQUXPUXMUXMUCVUQUXPUXMEJRUXMVUQUXOEUXMJVUQUXO
      EPZEUXNFGZUXNEEUFRZNGZVUQEUXMJRZUWIFGVUSVUQVVBUXMUWIFVUQUXMVUPUWDUYDUXMXI
      DUXFUXTUWLXEZVUCQZXFVUQUXFAFGZUXMUWIFGVUPUWDUYDVVEVVCUYEUXFCDZKUXFFGZVVEU
      YEUXFUXSDZVVFVVGVVEXGZUYEUXTUXSUXFUXSLXHUYHVMUYEVUEUWBVVHVVIXJXKUWDUWBUYD
      UWRMKAUXFXLXMTXNQVUQUXFAVUPUWDUYDUXFVFDZVVCUYLQZUWDUXIVUPUXBMZXOTXPVUQEUW
      IUXMVUQUPUWDUYPVUPUXKMZVUPUWDUYDUXMVFDZVVCUYSQZXQTVUQUXNSVUTNVUQUXNSNGUWI
      SUXMJRZNGVUQUWIUXFSWIRZUEIZVVPNVUQAVVQNGZUWIVVRNGZVUQVUHAVVQNVUQAVUQAUWDU
      WBVUPUWRMWDWKVUQUWHUXFNGZVUHVVQNGVUQVWAUXFUWHFGZXRVUQUXGVWBVUPUXGXRUWDUXF
      UXTUWLXSXTVUQUXGUXFUWKDZVWBVUQUYFUXGVWCXJVUPUWDUYDUYFVVCUYIQUXGVWCUYFUXFU
      WKLYAYBOVUQVUEUWPVVFVVGVWCVWBXJVUQUOUWDUWPVUPUXDMZVUQUXFVUPUWDUYDUYGVVCUY
      KQZVPZVUQUXFVVKVAZVUEUWPHZVWCVVFVVGHZVWBVWHVWCVVFVVGVWBXGVWIVWBHKUWHUXFXL
      VVFVVGVWBYCYDYEWTYFYGVUQUWHUXFVWDVWFYHWQVUQUWHUXFVWDVWFUWDKUWHFGZVUPVULMV
      WGYITYJVUQUXIVVQVFDVVSVVTXJVVLVUQVVQVUQUXFVWEUUAVOAVVQUUBYKTVUQVVJSYLDVVR
      VVPPVVKUUDUXFSUUCYMYNVUQUWISUXMVVMSCDVUQUVDUQVVOUUEWQUUFUUGVUQUYNEYLDVURV
      USVVAHXJVUPUWDUYDUYNVVCUYTQUUHUXNEUUIYMUUJUUKVUQUXMVVDWLYOUULVUQUXMVVDUUM
      YOUYCUUNUWDUWEUYAUWFUYBUCUWBUWEUYAPUWCABUUOMUWBUWFUYBPUWCABUUPMUUQUURUWDU
      WLUXQUWIBUXEUWDUXGUYDUXQCDVUNVUOXCZUXJUXHUXQUXPUWIVWKUWDUXGUYDUXPCDVUNVUB
      XCZUXJUXHKUXMFGUXQUXPFGUXHUXMUWDUXGUYDVVNVUNUYSXCZVAUXHUXPUXMVWLUXHUXFUXH
      UXFUXHUYFUYGUXHUWLLUXFUWKLVLUWDUXGURVMUYJOVOVGUVETUXHUXPUWIFGUXOUXNFGZUXH
      UYNVWNUWDUXGUYDUYNVUNUYTXCUXNYPOUXHUXOUWIUXMUWDUXGUYDUYOVUNVUAXCUXJVWMUUS
      WQYQUUTXPUWDUWMUWLYRIZUWIJRZUWJFUWDUWQUWIXIDUWMVWPPUXEUWDUWIUXKWDUWLUWIBU
      VAYKUWDVWOUWHUWIUWDVWOUWDUWQVWOYSDUXEUWLUVBOUVCZUXDUXKAUVFUWDVWOUWHVJIZUW
      HVWQUWDUWPVWRCDUXDUWHWCOUXDUWDVWOEVWRYTRZYRIZVWRFUWDVWOVWTFGZUWLVWSUVGGZU
      WDVWSUMDZUWLVWSWHVXBUWDEVWRUVHZUWDUWLSVWRYTRZLUHZVWSUWDUWPUWLVXFPUXDUWHUV
      IOUWDVXFVXEVWSVXELXHSEWGIDVXEVWSWHUWDUVJSEVWRUVKUVLUVMUVNUWLVWSUMUVOUVPUW
      DUWQVXCVXAVXBXJUXEVXDUWLVWSUMUVQYKWQUWDVWRYSDZVWTVWRPUWDUWPVWJVXGUXDVULUW
      HUVRYKVWRUVSOYNUWDUWPVWRUWHFGUXDUWHYPOYQUVTXPYQUWDUWEUWFUWJUWNUWOUXLUWAT
      $.

    $( A simple upper bound on the logarithm of a factorial.  (Contributed by
       Mario Carneiro, 16-Apr-2016.) $)
    logfacubnd $p |- ( ( A e. RR+ /\ 1 <_ A ) ->
      ( log ` ( ! ` ( |_ ` A ) ) ) <_ ( A x. ( log ` A ) ) ) $=
      ( crp wcel c1 cle wbr wa cfv clog cmul co cn cr syl nnrpd relogcld adantr
      remulcld mpbid cc0 cfl cfa rpre flge1nn sylan nnnn0d faccl reflcl relogcl
      cn0 cexp facubnd nnexpcld logled wceq nnzd relogexp syl2anc breqtrd simpl
      cz flle wi rprege0d log1 nnge1d 1rp logleb sylancr syl5eqbrr jca lemul12a
      wb syl22anc mp2and letrd ) ABCZDAEFZGZAUAHZUBHZIHZVTVTIHZJKZAAIHZJKZVSWAV
      SWAVSVTUJCZWALCVSVTVQAMCZVRVTLCAUCZAUDUEZUFZVTUGNOZPVSVTWCVSWHVTMCZVQWHVR
      WIQZAUHNVSVTVSVTWJOZPZRVSAWEWNVQWEMCZVRAUIQZRVSWBVTVTUKKZIHZWDEVSWAWSEFZW
      BWTEFVSWGXAWKVTULNVSWAWSWLVSWSVSVTVTWJWKUMOUNSVSVTBCZVTVACWTWDUOWOVSVTWJU
      PVTVTUQURUSVSVTAEFZWCWEEFZWDWFEFZVSWHXCWNAVBNZVSXCXDXFVSVTAWOVQVRUTUNSVSW
      MTVTEFGWHWCMCZTWCEFZGWQXCXDGXEVCVSVTWOVDWNVSXGXHWPVSTDIHZWCEVEVSDVTEFZXIW
      CEFZVSVTWJVFVSDBCXBXJXKVMVGWODVTVHVISVJVKWRVTAWCWEVLVNVOVP $.

    $( A lower bound on the logarithm of a factorial.  (Contributed by Mario
       Carneiro, 16-Apr-2016.) $)
    logfaclbnd $p |- ( A e. RR+ -> ( A x. ( ( log ` A ) - 2 ) )
       <_ ( log ` ( ! ` ( |_ ` A ) ) ) ) $=
      ( vn vd wcel cfv cmin co cmul cle caddc recnd wbr c1 cfz csu wa adantl cr
      syl wceq crp clog c2 cfl cfa rpcn times2d oveq2d relogcl 2cnd subdid rpre
      remulcld subsub4d 3eqtr4d cv cdiv resubcld fzfid elfznn nnrecred fsumrecl
      cn cn0 rprege0 flge0nn0 faccl nnrpd relogcld readdcld reflcl harmoniclbnd
      cc0 wb rpregt0 lemul2 syl3anc mpbid flle le2subd remulcl syl2an peano2rem
      clt adantr peano2re nnred fllep1 lesub1dd rpreccld lemul1d subdird nnne0d
      cc nncnd recidd eqtr2d chash cfn fsumconst syl2anc elfzuz3 hashfz addsubd
      1cnd eqtr4d oveq1d eqtrd 3brtr4d fsumle fsummulc2 sylancl hashfz1 mulid1d
      cuz ax-1cn 3eqtrrd oveq12d fsumsub eqid biantrurd wss uzss ad2antll sseld
      uztrn2 pm4.71rd bitr3d pm5.32da ancom an4 3bitr4g elfzuzb anasss fsumcom2
      anbi12i letrd cz nnz flid sumeq1d nnre nnge1 harmonicubnd eqbrtrrd logfac
      fsumadd breqtrd leadd2dd lesubaddd mpbird eqbrtrd ) AUADZAAUBEZUCFGHGZAUU
      NHGZAFGZAFGZAUDEZUEEZUBEZIUUMUUPAUCHGZFGUUPAAJGZFGUUOUURUUMUVBUVCUUPFUUMA
      AUFZUGUHUUMAUUNUCUVDUUMUUNAUIZKUUMUJUKUUMUUPAAUUMUUPUUMAUUNAULZUVEUMZKUVD
      UVDUNUOUUMUURUVAILUUQUVAAJGZILUUMUUQMUUSNGZMBUPZNGZMCUPZUQGZCOZBOZUVHUUMU
      UPAUVGUVFURZUUMUVIUVNBUUMMUUSUSZUUMUVJUVIDZPZUVKUVMCUVSMUVJUSZUVSUVLUVKDZ
      PZUVLUWAUVLVCDZUVSUVLUVJUTQVAZVBZVBZUUMUVAAUUMUUTUUMUUTUUMUUSVDDZUUTVCDUU
      MARDZVMAILPUWGAVEAVFSZUUSVGSVHVIZUVFVJZUUMUUQAUVIUVMCOZHGZUUSFGZUVOUVPUUM
      UWMUUSUUMAUWLUVFUUMUVIUVMCUVQUUMUVLUVIDZPZUVLUWOUWCUUMUVLUUSUTZQZVAZVBZUM
      ZUUMUWHUUSRDZUVFAVKZSZURUWFUUMUUPUUSUWMAUVGUXDUXAUVFUUMUUNUWLILZUUPUWMILZ
      ACVLUUMUUNRDUWLRDUWHVMAWDLPUXEUXFVNUVEUWTAVOUUNUWLAVPVQVRUUMUWHUUSAILUVFA
      VSSZVTUUMUVIAUVMHGZMFGZCOZUVIUVLUUSNGZUVMBOZCOUWNUVOIUUMUVIUXIUXLCUVQUWPU
      XHRDZUXIRDUUMUWHUVMRDZUXMUWOUVFUWOUVLUWQVAAUVMWAWBZUXHWCSUWPUXKUVMBUWPUVL
      UUSUSZUWPUXNUVJUXKDZUWSWEVBUWPAUVLFGZUVMHGZUUSMJGZUVLFGZUVMHGZUXIUXLIUWPU
      XRUYAILUXSUYBILUWPAUXTUVLUUMUWHUWOUVFWEZUWPUXBUXTRDUWPUWHUXBUYCUXCSUUSWFS
      ZUWPUVLUWRWGZUUMAUXTILZUWOUUMUWHUYFUVFAWHSWEWIUWPUXRUYAUVMUWPAUVLUYCUYEUR
      UWPUXTUVLUYDUYEURUWPUVLUWPUVLUWRVHWJWKVRUWPUXSUXHUVLUVMHGZFGUXIUWPAUVLUVM
      UUMAWNDUWOUVDWEUWPUVLUWRWOZUWPUVMUWSKZWLUWPUYGMUXHFUWPUVLUYHUWPUVLUWRWMWP
      UHWQUWPUXLUXKWREZUVMHGZUYBUWPUXKWSDUVMWNDZUXLUYKTUXPUYIUXKUVMBWTXAUWPUYJU
      YAUVMHUWPUYJUUSUVLFGMJGZUYAUWPUUSUVLXOEZDZUYJUYMTUWOUYOUUMUVLMUUSXBQUVLUU
      SXCSUWPUUSMUVLUUMUUSWNDUWOUUMUUSUXDKZWEUWPXEZUYHXDXFXGXHXIXJUUMUWNUVIUXHC
      OZUVIMCOZFGUXJUUMUWMUYRUUSUYSFUUMUVIUVMACUVQUVDUYIXKUUMUYSUVIWREZMHGZUUSM
      HGZUUSUUMUVIWSDZMWNDZUYSVUATUVQXPUVIMCWTXLUUMUYTUUSMHUUMUWGUYTUUSTUWIUUSX
      MSXGZUUMUUSUYPXNZXQXRUUMUVIUXHMCUVQUWPUXHUXOKUYQXSXFUUMUVIUVKUVIUXKBCUVMU
      VQUVQUVTUUMUVJMXOEZDZUUSUVJXOEZDZPZUVLVUGDZUVJUYNDZPZPZVULUYOPZVUMVUJPZPZ
      UVRUWAPUWOUXQPUUMVUNVUKPVUNUYOVUJPZPVUOVURUUMVUNVUKVUSUUMVUNPZVUJVUKVUSVU
      TVUHVUJVUNVUHUUMMUVJUVLVUGVUGXTYFQYAVUTVUJUYOVUTVUIUYNUUSVUMVUIUYNYBUUMVU
      LUVLUVJYCYDYEYGYHYIVUKVUNYJVULUYOVUMVUJYKYLUVRVUKUWAVUNUVJMUUSYMUVLMUVJYM
      YPUWOVUPUXQVUQUVLMUUSYMUVJUVLUUSYMYPYLUUMUVRUWAUYLUWBUVMUWDKYNYOXIYQUUMUV
      OUVAUUSJGZUVHUWFUUMUVAUUSUWJUXDVJUWKUUMUVOUVIUVJUBEZMJGZBOZVVAIUUMUVIUVNV
      VCBUVQUWEUVSVVBRDVVCRDUVSUVJUVSUVJUVRUVJVCDZUUMUVJUUSUTQZVHVIZVVBWFSUVSVV
      EUVNVVCILVVFVVEMUVJUDEZNGZUVMCOZUVNVVCIVVEVVIUVKUVMCVVEVVHUVJMNVVEUVJYRDV
      VHUVJTUVJYSUVJYTSUHUUAVVEUVJRDMUVJILVVJVVCILUVJUUBUVJUUCUVJCUUDXAUUESXJUU
      MVVDUVIVVBBOZUVIMBOZJGVVAUUMUVIVVBMBUVQUVSVVBVVGKUVSXEUUGUUMUVAVVKUUSVVLJ
      UUMUWGUVAVVKTUWIBUUSUUFSUUMVVLVUAVUBUUSUUMVUCVUDVVLVUATUVQXPUVIMBWTXLVUEV
      UFXQXRXFUUHUUMUUSAUVAUXDUVFUWJUXGUUIYQYQUUMUUQAUVAUVPUVFUWJUUJUUKUUL $.
  $}

  ${
    $d n x A $.  $d k n x y N $.
    $( Show the stronger statement ` log ( x ! ) = x log x - x + O ( log x ) `
       alluded to in ~ logfacrlim .  (Contributed by Mario Carneiro,
       20-May-2016.) $)
    logfacbnd3 $p |- ( ( A e. RR+ /\ 1 <_ A ) ->
      ( abs ` ( ( log ` ( ! ` ( |_ ` A ) ) ) - ( A x. ( ( log ` A ) - 1 ) ) ) )
        <_ ( ( log ` A ) + 1 ) ) $=
      ( vx vn crp wcel c1 cle wbr wa cfv clog cmin co cc0 syl wceq fveq2 syl6eq
      cr a1i cfl cfa cmul cabs caddc cn0 cn simpl rprege0d flge0nn0 faccl nnrpd
      relogcl rpre adantr peano2rem remulcld resubcld recnd abscld ax-1cn subcl
      cc sylancl abs1 oveq2i abs2dif syl5eqbrr cv cfz csu oveq2d sumeq1d oveq1d
      cmpt id oveq12d eqid ovex fvmpt3i logfac eqtr4d 1rp cz 1z flid ax-mp log1
      0cn fsum1 mp2an subcli mulid2i nncan mp1i fveq2d cpnf cioo ioorp nnuz 1re
      eqcomi cxr pnfxr 1nn0 nn0addge1i 0red adantl sylan2 cdv advlog w3a simp32
      nnrp logleb 3ad2ant2 mpbid simprr simprl sylancr 1le1 simpr rexrd dvfsum2
      wb pnfge eqbrtrrd letrd lesubaddd ) ADEZFAGHZIZAUAJZUBJZKJZAAKJZFLMZUCMZL
      MZUDJZFLMZYPGHYTYPFUEMGHYLUUAYSFLMZUDJZYPYLYTSEUUASEYLYSYLYSYLYOYRYLYNDEY
      OSEYLYNYLYMUFEZYNUGEYLASEZNAGHIUUDYLAYJYKUHZUIAUJOZYMUKOULYNUMOYLAYQYJUUE
      YKAUNUOZYLYPSEZYQSEYJUUIYKAUMUOZYPUPOUQURUSZUTZYTUPOYLUUBYLYSVCEZFVCEZUUB
      VCEUUKVAYSFVBVDUTUUJYLUUAYTFUDJZLMZUUCGUUOFYTLVEVFYLUUMUUNUUPUUCGHUUKVAYS
      FVGVDVHYLABDFBVIZUAJZVJMZCVIZKJZCVKZUUQUUQKJZFLMZUCMZLMZVOZJZFUVGJZLMZUDJ
      UUCYPGYLUVJUUBUDYLUVHYSUVIFLYLUVHFYMVJMZUVACVKZYRLMZYSYJUVHUVMPYKBAUVFUVM
      DUVGUUQAPZUVBUVLUVEYRLUVNUUSUVKUVACUVNUURYMFVJUUQAUAQVLVMUVNUUQAUVDYQUCUV
      NVPUVNUVCYPFLUUQAKQZVNVQVQUVGVRZUVBUVELVSZVTUOYLYOUVLYRLYLUUDYOUVLPUUGCYM
      WAOVNWBFDEZUVIFPYLWCBFUVFFDUVGUUQFPZUVFNNFLMZLMZFUVSUVBNUVEUVTLUVSUVBFFVJ
      MZUVACVKZNUVSUUSUWBUVACUVSUURFFVJUVSUURFUAJZFUUQFUAQFWDEZUWDFPWEFWFWGRVLV
      MUWENVCEZUWCNPWEWIUVANCFUUTFPUVAFKJZNUUTFKQWHRWJWKRUVSUVEFUVTUCMUVTUVSUUQ
      FUVDUVTUCUVSVPUVSUVCNFLUVSUVCUWGNUUQFKQWHRVNVQUVTNFWIVAWLWMRVQUWFUUNUWAFP
      WIVANFWNWKRUVPUVQVTWOVQWPYLBUVEUVCUVAFDNWQCYPUVGFSFAUGNWQWRMDWSXBWTUWEYLW
      ETFSEYLXATZWQXCEYLXDTFFFUEMGHYLFFXAXEXFTYLXGYLUUQDEZIZUUQUVDUWIUUQSEYLUUQ
      UNXHUWJUVCSEZUVDSEUWIUWKYLUUQUMXHZUVCUPOUQUWLUUQUGEYLUWIUWKUUQXNUWLXISBDU
      VEVOXJMBDUVCVOPYLBXKTUUQUUTKQYLUWIUUTDEIZFUUQGHZUUQUUTGHZUUTWQGHZXLZXLUWO
      UVCUVAGHZYLUWMUWNUWOUWPXMUWMYLUWOUWRYEUWQUUQUUTXOXPXQUVPYLUWIUWNIIZNUWGUV
      CGWHUWSUWNUWGUVCGHZYLUWIUWNXRUWSUVRUWIUWNUWTYEWCYLUWIUWNXSFUUQXOXTXQVHUVR
      YLWCTUUFFFGHYLYATYJYKYBYLAXCEAWQGHYLAUUHYCAYFOUVOYDYGYHYLYTFYPUULUWHUUJYI
      XQ $.

    $( Combine the estimates ~ logfacubnd and ~ logfaclbnd , to get
       ` log ( x ! ) = x log x + O ( x ) ` .  Equation 9.2.9 of [Shapiro],
       p. 329.  This is a weak form of the even stronger statement,
       ` log ( x ! ) = x log x - x + O ( log x ) ` .  (Contributed by Mario
       Carneiro, 16-Apr-2016.)  (Revised by Mario Carneiro, 21-May-2016.) $)
    logfacrlim $p |- ( x e. RR+ |->
      ( ( log ` x ) - ( ( log ` ( ! ` ( |_ ` x ) ) ) / x ) ) ) ~~>r 1 $=
      ( crp cfv cdiv co cmin cmpt c1 crli wbr wtru cc0 wcel wa cc cr adantl cle
      cabs adantrr clog cfl cfa caddc 1red 1cnd wne wceq relogcl rpcnne0 divdir
      recnd syl3anc mpteq2dva simpr rerpdivcld rpreccl rpred ccxp simpld oveq2d
      cxp1d 1rp cxploglim mp1i eqbrtrrd ax-1cn divrcnv rlimadd eqbrtrd syl6breq
      cv 00id peano2re syl cn0 cn rprege0 flge0nn0 faccl 3syl nnrpd subcld cmul
      logfacbnd3 clt ad2antrl subcl sylancl mulcld abscld rpregt0 lediv1 simprd
      wb mpbid divcan3d oveq1d divsubdir sub32d 3eqtr4rd fveq2d absdivd abssubd
      absid oveq12d 3eqtrd subid1d log1 simprr logleb sylancr ge0p1rpd rpdivcld
      syl5eqbrr eqtrd 3brtr4d rlimsqzlem trud ) ABAVLZUACZXTUBCZUCCZUACZXTDEZFE
      ZGHIJKABYAHUDEZXTDEZYFLHHKUEKUFKABYHGZLLUDEZLIKYIABYAXTDEZHXTDEZUDEZGYJIK
      ABYHYMKXTBMZNZYAOMZHOMZXTOMZXTLUGZNZYHYMUHYOYAYNYAPMZKXTUIQZULZYOUFYNYTKX
      TUJZQZYAHXTUKUMUNKABYKYLLLPYOYAXTUUBKYNUOZUPYOYLYNYLBMKXTUQQURKABYAXTHUSE
      ZDEZGZABYKGLIKABUUHYKYOUUGXTYADYOXTYOYRYSUUEUTVBVAUNHBMZUUILIJKVCHAVDVEVF
      YQABYLGLIJKVGHAVHVEVIVJVMVKYOYHYOYGXTYOUUAYGPMZUUBYAVNZVOUUFUPULZYOYAYEUU
      CYOYEYOYDXTYOYCBMYDPMYOYCYOXTPMZLXTRJNZYBVPMYCVQMYNUUOKXTVRZQXTVSYBVTWAWB
      YCUIVOZUUFUPULZWCKYNHXTRJZNZNZYDXTYAHFEZWDEZFEZSCZXTDEZYHYFHFEZSCZYHLFEZS
      CZRUVAUVEYGRJZUVFYHRJZUUTUVKKXTWEQUVAUVEPMUUKUUNLXTWFJNZUVKUVLWOUVAUVDUVA
      YDUVCKYNYDOMZUUSYOYDUUQULTZUVAXTUVBUVAYRYSYNYTKUUSUUDWGZUTZUVAYPYQUVBOMKY
      NYPUUSUUCTZVGYAHWHWIZWJZWCWKUVAUUAUUKKYNUUAUUSUUBTZUULVOYNUVMKUUSXTWLWGUV
      EYGXTWMUMWPUVAUVHUVCYDFEZXTDEZSCUWBSCZXTSCZDEUVFUVAUVGUWCSUVAUVCXTDEZYEFE
      ZUVBYEFEUWCUVGUVAUWFUVBYEFUVAUVBXTUVSUVQUVAYRYSUVPWNZWQWRUVAUVCOMUVNYTUWC
      UWGUHUVTUVOUVPUVCYDXTWSUMUVAYAYEHUVRKYNYEOMUUSUURTUVAUFWTXAXBUVAUWBXTUVAU
      VCYDUVTUVOWCUVQUWHXCUVAUWDUVEUWEXTDUVAUVCYDUVTUVOXDUVAUUOUWEXTUHYNUUOKUUS
      UUPWGXTXEVOXFXGUVAUVJYHSCZYHUVAUVIYHSUVAYHKYNYHOMUUSUUMTXHXBUVAYHBMYHPMLY
      HRJNUWIYHUHUVAYGXTUVAYAUWAUVALHUACZYARXIUVAUUSUWJYARJZKYNUUSXJUVAUUJYNUUS
      UWKWOVCKYNYNUUSUUFTZHXTXKXLWPXOXMUWLXNYHVRYHXEWAXPXQXRXS $.

    $( The sum ` sum_ n <_ x , log ^ N ( x / n ) ` has the asymptotic expansion
       ` ( N ! ) x + o ( x ) ` .  (More precisely, the omitted term has order
       ` O ( log ^ N ( x ) / x ) ` .)  (Contributed by Mario Carneiro,
       22-May-2016.) $)
    logexprlim $p |- ( N e. NN0 -> ( x e. RR+ |->
      ( sum_ n e. ( 1 ... ( |_ ` x ) ) ( ( log ` ( x / n ) ) ^ N ) / x ) )
        ~~>r ( ! ` N ) ) $=
      ( vk wcel crp c1 cfv co cdiv cc0 cmul cmin cmpt cr wa wbr wceq cc cle cn0
      vy cfl cfz clog cexp csu cfa caddc crli fzfid simpr elfznn rpdivcl syl2an
      cv nnrpd relogcld simpll reexpcld fsumrecl relogcl reexpcl syl2anr adantr
      id cn faccl nnred adantl elfznn0 syl nndivred remulcld resubcld rerpdivcl
      rerpdivcld sylancom 1red nncnd simpl oveq2d oveq1d mpteq2dva breq1d recnd
      ccxp cxpexp rpcn oveq12d 1rp mulcld subcld wne simprd cabs adantrr abscld
      cxp1d a1i cdv nnne0d eqtrd oveq2 fveq2d w3a rpdivcld log1 mulid2d eqbrtrd
      1z rpcnd rpred lemuldivd mpbid wb logleb syl5eqbrr 3ad2antr1 ad2antrl cvv
      sylancr sumeq1d syl6eq sumeq2dv ax-1cn div0d ovexd fvmptd ax-mp divsubdir
      cdif 3eqtrd 3brtr3d syl3anc wss rpssre rlimconst breqtrd syl6breq sylancl
      nn0cn cxploglim2 eqbrtrrd vtoclga rpcnne0 simpld divcld cpnf ioorp eqcomi
      csb cioo nnuz cz 1nn0 nn0addge1i 0red rpre simprl sylan sylan2 reelprrecn
      1re nnrp advlogexp syl2anc dvmptcmul divcan2d rpxrd simp1rl simp2r simp2l
      cpr simp1l simp33 simp32 lediv2d logled leexp1a syl32anc eqid simpr3 1le1
      simpr1 expge0d simprr leidd dvfsumlem4 expcld fsumcl sub32d csn sylan9eqr
      eqidd divid nn0uz syl6eleq eluzfz1 snssd elsni 0exp0e1 fveq2 fac0 1div1e1
      cuz syl6eqel eldifi eldifsni eldifsn sylanbrc dfn2 syl6eleqr 0expd fsumss
      0cn sumsn mp2an mulid1d flid div1d eqeltrd fsum1 subdird divcan1d 3eqtr4d
      eqtr4d absmuld rprege0 absid 1cnd csbied leabsd letrd breqtrrd rlimsqzlem
      subid1d divass fsumdivc rpcnne0d divdiv32 an32s rlimdiv fsumrlim cfn fzfi
      anasss wo olci sumz rlimmul mul01d rlimsub 0m0e0 rlimadd npcand addid1d )
[encoded data, 6720 characters]
      N $.

    $( Write out ~ logfacrlim as a sum of logs.  (Contributed by Mario
       Carneiro, 18-May-2016.)  (Revised by Mario Carneiro, 22-May-2016.) $)
    logfacrlim2 $p |- ( x e. RR+ |->
      sum_ n e. ( 1 ... ( |_ ` x ) ) ( ( log ` ( x / n ) ) / x ) ) ~~>r 1 $=
      ( crp c1 cv cfl cfv cfz co cdiv clog cexp csu cmpt cfa crli cn0 wcel 1nn0
      wbr logexprlim ax-mp wa elfznn nnrpd sylan2 relogcld recnd exp1d sumeq2dv
      rpdivcl oveq1d fzfid rpcn rpne0 fsumdivc eqtrd mpteq2ia fac1 3brtr3i ) AC
      DAEZFGZHIZVABEZJIZKGZDLIZBMZVAJIZNZDOGZACVCVFVAJIBMZNDPDQRVJVKPTSABDUAUBA
      CVIVLVACRZVIVCVFBMZVAJIVLVMVHVNVAJVMVCVGVFBVMVDVCRZUCZVFVPVFVPVEVOVMVDCRV
      ECRVOVDVDVBUDUEVAVDUKUFUGUHZUIUJULVMVCVFVABVMDVBUMVAUNVQVAUOUPUQURUSUT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Perfect Number Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d k n P $.
    $( A Mersenne prime is a prime number of the form ` 2 ^ P - 1 ` .  This
       theorem shows that the ` P ` in this expression is necessarily also
       prime.  (Contributed by Mario Carneiro, 17-May-2016.) $)
    mersenne $p |- ( ( P e. ZZ /\ ( ( 2 ^ P ) - 1 ) e. Prime ) ->
      P e. Prime ) $=
      ( vk vn cz wcel c2 cexp co c1 cmin wbr clt cn syl a1i sylanbrc cdiv mpbid
      cr cc0 cprime wa cuz cfv cv cdvds cfz wral simpl caddc 2nn0 numexp1 eqtri
      wn df-2 prmuz2 adantl eluz2b2 simprbi 1red 2re reexpclzd ltaddsubd mpbird
      wne 2ne0 syl5eqbr 1zzd 1lt2 ltexp2d eluz2b1 cmul simpllr prmnn cn0 elfzuz
      nncnd 2nn ad2antlr eluz2nn nnnn0d nnexpcl sylancr nnzd peano2zm zred 0red
      recnd 0lt1 elfzelz syl5eqbrr nnred lttrd nnne0d divcan2d eqeltrd csu cneg
      elnnz cc wceq wb ax-1cn subeq0 sylancl necon3bid simpr ad2antrr nndivdvds
      syl2anc geoser oveq2d expmuld eqtr3d eqtrd oveq12d div2negd 3eqtr2d fzfid
      negsubdi2 elfznn0 zexpcl syl2an fsumzcl mulid2d cle w3a 2z elfzm11 biimpa
      eqeltrrd simp3d adantr ltsub1dd eqbrtrd ltmuldiv syl112anc nprm ralrimiva
      pm2.65da isprm3 ) ADEZFAGHZIJHZUAEZUBZAFUCUDZEZBUEZAUFKZUNZBFAIJHZUGHZUHA
      UAEUUFUUBIALKZUUHUUBUUEUIZUUFUUNFIGHZUUCLKUUFUUPIIUJHZUUCLUUPFUUQFUKULUOU
      MZUUFUUQUUCLKIUUDLKZUUFUUDUUGEZUUSUUEUUTUUBUUDUPUQUUTUUDMEZUUSUUDURUSNUUF
      IIUUCUUFUTZUVBUUFFAFSEZUUFVAOZFTVEUUFVFOUUOVBZVCVDVGUUFFIAUVDUUFVHUUOIFLK
      ZUUFVIOVJVDAVKPZUUFUUKBUUMUUFUUIUUMEZUBZUUJFUUIGHZIJHZUUDUVKQHZVLHZUAEZUV
      IUUJUBZUVMUUDUAUVOUUDUVKUVOUUDUVOUUEUVAUUBUUEUVHUUJVMZUUDVNNZVQZUVOUVKUVO
      UVKUVOUVJDEZUVKDEZUVOUVJUVOFMEUUIVOEUVJMEVRUVOUUIUVOUUIUUGEZUUIMEZUVHUWAU
      UFUUJUUIFUULVPVSZUUIVTNZWAZFUUIWBWCZWDZUVJWENZWFZWHZUVOUVKUVOUVTTUVKLKZUV
      KMEZUWHUVOTIUVKUVOWGUVOUTZUWITILKUVOWIOUVOUUQUVJLKIUVKLKZUVOUUQUUPUVJLUUR
      UVOIUUILKZUUPUVJLKUVOUWAUWOUWCUWAUWBUWOUUIURUSNUVOFIUUIUVCUVOVAOZUVOVHUVH
      UUIDEZUUFUUJUUIFUULWJVSZUVFUVOVIOZVJRWKUVOIIUVJUWMUWMUVOUVJUWFWLZVCRZWMZU
      VKWSPZWNZWOUVPWPUVOUVKUUGEZUVLUUGEZUVNUNUVOUWLUWNUXEUXCUXAUVKURPUVOUVLDEI
      UVLLKZUXFUVOTAUUIQHZIJHZUGHZUVJCUEZGHZCWQZUVLDUVOUXMIUVJUXHGHZJHZIUVJJHZQ
      HUUDWRZUVKWRZQHUVLUVOUVJCUXHUVOUVJUWFVQZUVOUVKTVEUVJIVEUXDUVOUVKTUVJIUVOU
      VJWTEZIWTEZUVKTXAUVJIXAXBUXSXCUVJIXDXEXFRUVOUXHUVOUUJUXHMEZUVIUUJXGUVOAME
      ZUWBUUJUYBXBUUFUYCUVHUUJUUFUUHUYCUVGAVTNXHZUWDAUUIXIXJRWAZXKUVOUXQUXOUXRU
      XPQUVOUXQIUUCJHZUXOUVOUUCWTEUYAUXQUYFXAUVOUUCUUFUUCSEUVHUUJUVEXHZWHXCUUCI
      XTXEUVOUUCUXNIJUVOFUUIUXHVLHZGHUUCUXNUVOUYHAFGUVOAUUIUVOAUYDVQUVOUUIUWDVQ
      UVOUUIUWDWNWOXLUVOFUUIUXHUVOFUWPWHUYEUWEXMXNXLXOUVOUXTUYAUXRUXPXAUXSXCUVJ
      IXTXEXPUVOUUDUVKUVRUWJUXDXQXRUVOUXJUXLCUVOTUXIXSUVOUVSUXKVOEUXLDEUXKUXJEU
      WGUXKUXIYAUVJUXKYBYCYDYKUVOIUVKVLHZUUDLKZUXGUVOUYIUVKUUDLUVOUVKUWJYEUVOUV
      JUUCIUWTUYGUWMUVOUUIALKZUVJUUCLKUVIUYKUUJUVIUWQFUUIYFKZUYKUUFUVHUWQUYLUYK
      YGZUUFFDEUUBUVHUYMXBYHUUOUUIFAYIWCYJYLYMUVOFUUIAUWPUWRUUFUUBUVHUUJUUOXHUW
      SVJRYNYOUVOISEUUDSEUVKSEUWKUYJUXGXBUWMUVOUUDUVQWLUWIUXBIUUDUVKYPYQRUVLVKP
      UVKUVLYRXJYTYSBAUUAP $.

    $( Euclid's contribution to the Euclid-Euler theorem.  A number of the form
       ` 2 ^ ( p - 1 ) x. ( 2 ^ p - 1 ) ` is a perfect number.  (Contributed by
       Mario Carneiro, 17-May-2016.) $)
    perfect1 $p |- ( ( P e. ZZ /\ ( ( 2 ^ P ) - 1 ) e. Prime ) ->
      ( 1 sigma ( ( 2 ^ ( P - 1 ) ) x. ( ( 2 ^ P ) - 1 ) ) ) =
        ( ( 2 ^ P ) x. ( ( 2 ^ P ) - 1 ) ) ) $=
      ( cz wcel c2 cexp co cmin cprime csgm cmul wceq syl adantl sylancr ax-1cn
      c1 cn cc cdvds wbr mersenne prmnn 1sgm2ppw 1sgmprm cn0 2nn nnnn0d nnexpcl
      caddc nncnd npcan sylancl eqtrd oveq12d cgcd a1i nnm1nn0 nnzd prmz gcdcom
      wa syl2anc wn iddvds clt wi cuz prmuz2 eluz2b2 simprbi ndvdsp1 syl3anc 2z
      cfv mpd dvdsmultr1 2cn expm1t eqtr2d breq2d sylibd mtod simpr coprm mpbid
      wb sgmmul syl13anc subcl mulcomd 3eqtr4d ) ABCZDAEFZPGFZHCZVAZPDAPGFZEFZI
      FZPWNIFZJFZWNWMJFPWRWNJFIFZWMWNJFWPWSWNWTWMJWPAQCZWSWNKWPAHCXCAUAAUBLZAUC
      LWPWTWNPUIFZWMWOWTXEKWLWNUDMWPWMRCZPRCZXEWMKWPWMWPDQCZAUECWMQCUFWPAXDUGDA
      UHNUJZOWMPUKULZUMUNWPXGWRQCZWNQCZWRWNUOFZPKXBXAKXGWPOUPWPXHWQUECZXKUFWPXC
      XNXDAUQLDWQUHNZWOXLWLWNUBMZWPXMWNWRUOFZPWPWRBCZWNBCZXMXQKWPWRXOURZWOXSWLW
      NUSMZWRWNUTVBWPWNWRSTZVCZXQPKZWPYBWNXESTZWPWNWNSTZYEVCZWPXSYFYAWNVDLWPXSX
      LPWNVETZYFYGVFYAXPWPWNDVGVNCZYHWOYIWLWNVHMYIXLYHWNVIVJLWNWNVKVLVOWPYBWNWR
      DJFZSTZYEWPXSXRDBCZYBYKVFYAXTYLWPVMUPWNWRDVPVLWPYJXEWNSWPXEWMYJXJWPDRCXCW
      MYJKVQXDDAVRNVSVTWAWBWPWOXRYCYDWFWLWOWCXTWNWRWDVBWEUMPWRWNWGWHWPWMWNXIWPX
      FXGWNRCXIOWMPWIULWJWK $.
  $}

  ${
    $d k n x A $.  $d k n x B $.  $d k n x ph $.
    perfectlem.1 $e |- ( ph -> A e. NN ) $.
    perfectlem.2 $e |- ( ph -> B e. NN ) $.
    perfectlem.3 $e |- ( ph -> -. 2 || B ) $.
    perfectlem.4 $e |- ( ph ->
      ( 1 sigma ( ( 2 ^ A ) x. B ) ) = ( 2 x. ( ( 2 ^ A ) x. B ) ) ) $.
    $( Lemma for ~ perfect .  (Contributed by Mario Carneiro, 7-Jun-2016.) $)
    perfectlem1 $p |- ( ph -> ( ( 2 ^ ( A + 1 ) ) e. NN /\
                        ( ( 2 ^ ( A + 1 ) ) - 1 ) e. NN /\
                ( B / ( ( 2 ^ ( A + 1 ) ) - 1 ) ) e. NN ) ) $=
      ( c2 c1 co cn wcel sylancr wbr a1i wb cdvds cmul wceq cz cexp cmin nnnn0d
      caddc cdiv cn0 2nn peano2nn0 syl nnexpcl clt cr 2re peano2nnd 1lt2 expgt1
      syl3anc nnsub mpbid cgcd csgm nnzd peano2zm 1nn0 sgmnncl dvdsmul1 syl2anc
      1nn cc 2cn expp1 nncnd mulcom sylancl eqtrd oveq1d mulassd ax-1cn wn 2prm
      cprime coprm wi rpexp1i mpd sgmmul syl13anc pncan oveq2d 1sgm2ppw 3eqtr3d
      2z eqtr3d 3eqtrd breqtrrd gcdcom iddvdsexp n2dvds1 w3a 1zzd 3jca dvdssub2
      wa sylan mtbiri ex mt2d coprmdvds mp2and nndivdvds ) AHBIUDJZUAJZKLZXLIUB
      JZKLZCXNUEJKLZAHKLZXKUFLZXMUGABUFLZXRABDUCZBUHUIZHXKUJMZAIXLUKNZXOAHULLZX
      KKLZIHUKNZYCYDAUMOABDUNZYFAUOOHXKUPUQAIKLXMYCXOPVHYBIXLURMUSZAXNCQNZXPAXN
      XLCRJZQNZXNXLUTJZISZYIAXNXNICVAJZRJZYJQAXNTLZYNTLXNYOQNAXLTLZYPAXLYBVBZXL
      VCUIZAYNAIUFLCKLZYNKLVDEICVEMVBXNYNVFVGAYJHHBUAJZRJZCRJHUUACRJZRJZYOAXLUU
      BCRAXLUUAHRJZUUBAHVILZXSXLUUESVJXTHBVKMAUUAVILUUFUUEUUBSAUUAAXQXSUUAKLZUG
      XTHBUJMZVLZVJUUAHVMVNVOVPAHUUACUUFAVJOUUIACEVLVQAIUUCVAJZIUUAVAJZYNRJZUUD
      YOAIVILZUUGYTUUACUTJISZUUJUULSUUMAVROUUHEAHCUTJISZUUNAHCQNVSZUUOFAHWALZCT
      LZUUPUUOPVTACEVBZHCWBMUSAHTLZUURXSUUOUUNWCUUTAWLOZUUSXTHCBWDUQWEIUUACWFWG
      GAUUKXNYNRAIHXKIUBJZUAJZVAJZUUKXNAUVCUUAIVAAUVBBHUAABVILUUMUVBBSABDVLVRBI
      WHVNWIWIAYEUVDXNSYGXKWJUIWMVPWKWNWOAYLXLXNUTJZIAYPYQYLUVESYSYRXNXLWPVGAHX
      NUTJISZUVEISZAHXNQNZVSZUVFAUVHHXLQNZAUUTYEUVJWLYGHXKWQMAUVHUVJVSAUVHXCUVJ
      HIQNZWRAUUTYQITLZWSUVHUVJUVKPAUUTYQUVLUVAYRAWTXAHXLIXBXDXEXFXGAUUQYPUVIUV
      FPVTYSHXNWBMUSAUUTYPXRUVFUVGWCUVAYSYAHXNXKWDUQWEVOAYPYQUURYKYMXCYIWCYSYRU
      USXNXLCXHUQXIAYTXOYIXPPEYHCXNXJVGUSXA $.

    $( Lemma for ~ perfect .  (Contributed by Mario Carneiro, 17-May-2016.)
       Replace OLD theorem.  (Revised by Wolf Lammen, 17-Sep-2020.) $)
    perfectlem2 $p |- ( ph ->
      ( B e. Prime /\ B = ( ( 2 ^ ( A + 1 ) ) - 1 ) ) ) $=
      ( vk wcel c2 c1 caddc co wceq cdvds wbr cn clt a1i cmul vn vx cprime cexp
      cmin cuz cfv cv wo wi wral cdiv 1red perfectlem1 simp3d nnred nnge1d exp1
      cc 2cn ax-mp df-2 eqtri cr 2re 1zzd peano2nnd nnzd 1lt2 crp nnrpd ltaddrp
      cz 1re sylancr ax-1cn nncnd breqtrd mpbid cc0 wb syl syl3anc sylanbrc cle
      wa ctp csu cfn wss syl2anc ad2antrr sselda nnnn0d nn0ge0d csn df-tp unssd
      wn cun syl5eqss weq w3o eltpi breq1 syl5ibrcom 3jaod imp ssrabdv fsumless
      syl5 cin c0 simpr disjsn sylibr tpfi fsumsplit id sumsn oveq12d wne gtned
      mulcld oveq2d eqtrd oveq1d divcan3d 3eqtr3d csgm cn0 sylancl cgcd 3brtr3d
      mpd ltnled necomd 1nn eqeq1 adantr addcom ltexp2a syl32anc syl5eqbrr 0lt1
      simp1d ltaddsubd peano2rem expgt1 posdif nngt0d syl222anc lelttrd eluz2b2
      ltdiv2 div1d cpr crab cfz fzfid dvdsssfz1 ssfi ssrab2 prssi simplrl snssd
      simp2d dvdsmul2 nnne0d divcan2d iddvds simplrr incom disjsn2 syl5eqr prfi
      df-pr divdird 1cnd subdird mulid2d pncan3d divassd 3eqtr4d ccxp expp1 2nn
      nnexpcl mulcom 2cnd mulassd 2prm coprm 2z rpexp1i syl13anc pncan 1sgm2ppw
      sgmmul eqtr3d 3eqtrd 1nn0 sgmnncl sgmval sseldi sumeq2dv 3eqtrrd remulcld
      cxp1d ltaddrpd readdcld condan elpri expr ralrimiva 1dvds orbi12d imbi12d
      rspcv syl3c ord necon1ad eqeq2d orbi1d imbi2d ralbidv mpbird isprm2 ltp1d
      peano2re snssi mp1i diveq1ad necon3bid biimpar nelprd ex necon1bd jca ) A
[encoded data, 4320 characters]
      XDWWHYTYNUYQUYRYOUYS $.
  $}

  ${
    $d p N $.
    $( The Euclid-Euler theorem, or Perfect Number theorem.  A positive even
       integer ` N ` is a perfect number (that is, its divisor sum is ` 2 N ` )
       if and only if it is of the form ` 2 ^ ( p - 1 ) x. ( 2 ^ p - 1 ) ` ,
       where ` 2 ^ p - 1 ` is prime (a Mersenne prime).  (It follows from this
       that ` p ` is also prime.)  This is Metamath 100 proof #70.
       (Contributed by Mario Carneiro, 17-May-2016.) $)
    perfect $p |- ( ( N e. NN /\ 2 || N ) -> ( ( 1 sigma N ) = ( 2 x. N ) <->
      E. p e. ZZ ( ( ( 2 ^ p ) - 1 ) e. Prime /\
        N = ( ( 2 ^ ( p - 1 ) ) x. ( ( 2 ^ p ) - 1 ) ) ) ) ) $=
      ( cn wcel c2 cdvds wa c1 csgm co cmul wceq cexp cmin cprime cz sylancr cc
      wbr oveq2d cv wrex cpc caddc simplr wb 2prm simpll pcelnn mpbird peano2zd
      nnzd pcdvds cn0 2nn nnnn0d nnexpcl nndivdvds syl2anc mpbid pcndvds2 simpr
      cdiv wn nncn ad2antrr nnne0d divcan2d 3eqtr4d perfectlem2 simprd eqeltrrd
      nncnd simpld ax-1cn pncan sylancl eqcomd eqtr3d oveq2 oveq1d eleq1d oveq1
      oveq12d eqeq2d anbi12d rspcev syl12anc ex perfect1 2cn mersenne prmnn syl
      expm1t nnm1nn0 expcl mulcom 2cnd adantl mulassd 3eqtrd eqeq12d syl5ibrcom
      eqtrd impr rexlimiva impbid1 ) ACDZEAFSZGZHAIJZEAKJZLZEBUAZMJZHNJZODZAEXO
      HNJZMJZXQKJZLZGZBPUBZXKXNYDXKXNGZEAUCJZHUDJZPDEYGMJZHNJZODZAEYGHNJZMJZYIK
      JZLZYDYEYFYEYFYEYFCDZXJXIXJXNUEYEEODZXIYOXJUFUGXIXJXNUHZEAUIQUJZULUKYEAEY
      FMJZVCJZYIOYEYTODZYTYILZYEYFYTYRYEYSAFSZYTCDZYEYPXIUUCUGYQEAUMQYEXIYSCDZU
      UCUUDUFYQYEECDYFUNDUUEUOYEYFYRUPEYFUQQZAYSURUSUTYEYPXIEYTFSVDUGYQEAVAQYEX
      LXMHYSYTKJZIJEUUGKJXKXNVBYEUUGAHIYEAYSXIARDXJXNAVEVFYEYSUUFVMYEYSUUFVGVHZ
      TYEUUGAEKUUHTVIVJZVKZYEUUAUUBUUIVNVLYEUUGAYMUUHYEYSYLYTYIKYEYFYKEMYEYKYFY
      EYFRDHRDYKYFLYEYFYRVMVOYFHVPVQVRTUUJWDVSYCYJYNGBYGPXOYGLZXRYJYBYNUUKXQYIO
      UUKXPYHHNXOYGEMVTWAZWBUUKYAYMAUUKXTYLXQYIKUUKXSYKEMXOYGHNWCTUULWDWEWFWGWH
      WIYCXNBPXOPDZXRYBXNUUMXRGZXNYBHYAIJZEYAKJZLUUNUUOXPXQKJEXTKJZXQKJUUPXOWJU
      UNXPUUQXQKUUNXPXTEKJZUUQUUNERDZXOCDZXPUURLWKUUNXOODUUTXOWLXOWMWNZEXOWOQUU
      NXTRDZUUSUURUUQLUUNUUSXSUNDZUVBWKUUNUUTUVCUVAXOWPWNEXSWQQZWKXTEWRVQXEWAUU
      NEXTXQUUNWSUVDUUNXQXRXQCDUUMXQWMWTVMXAXBYBXLUUOXMUUPAYAHIVTAYAEKVTXCXDXFX
      GXH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Characters of Z/nZ
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c DChr $.

  $( Extend class notation with the group of Dirichlet characters. $)
  cdchr $a class DChr $.

  ${
    $d k A $.  $d k x y z B $.  $d b n z D $.  $d b n x z N $.  $d k x y z U $.
    $d k C $.  $d k E $.  $d b k n x y z ph $.  $d x y z X $.  $d k x y z Z $.
    $d k Y $.
    $( The group of Dirichlet characters ` mod n ` is the set of monoid
       homomorphisms from ` ZZ / n ZZ ` to the multiplicative monoid of the
       complex numbers, equipped with the group operation of pointwise
       multiplication.  (Contributed by Mario Carneiro, 18-Apr-2016.) $)
    df-dchr $a |- DChr = ( n e. NN |-> [_ ( Z/nZ ` n ) / z ]_
      [_ { x e. ( ( mulGrp ` z ) MndHom ( mulGrp ` CCfld ) ) |
          ( ( ( Base ` z ) \ ( Unit ` z ) ) X. { 0 } ) C_ x } / b ]_
      { <. ( Base ` ndx ) , b >. ,
        <. ( +g ` ndx ) , ( oF x. |` ( b X. b ) ) >. } ) $.

    dchrval.g $e |- G = ( DChr ` N ) $.
    dchrval.z $e |- Z = ( Z/nZ ` N ) $.
    dchrval.b $e |- B = ( Base ` Z ) $.
    dchrval.u $e |- U = ( Unit ` Z ) $.
    dchrval.n $e |- ( ph -> N e. NN ) $.
    ${
      dchrval.d $e |- ( ph -> D = { x e. ( ( mulGrp ` Z )
        MndHom ( mulGrp ` CCfld ) ) | ( ( B \ U ) X. { 0 } ) C_ x } ) $.
      $( Value of the group of Dirichlet characters.  (Contributed by Mario
         Carneiro, 18-Apr-2016.) $)
      dchrval $p |- ( ph -> G = { <. ( Base ` ndx ) , D >. ,
          <. ( +g ` ndx ) , ( oF x. |` ( D X. D ) ) >. } ) $=
        ( vn vz vb cfv cvv wceq cnx cbs cop cplusg cmul cof cxp cres cpr cv czn
        cdchr cui cdif cc0 csn wss cmgp ccnfld cmhm co crab csb cn cmpt df-dchr
        a1i fvexd wcel ovex rabex ad2antrr simpr fveq2d syl6reqr eqeq2d biimpar
        wa oveq1d syl6eqr xpeq1d sseq1d rabeqbidv eqtr4d opeq2d sqxpeqd reseq2d
        difeq12d preq12d csbied prex fvmptd syl5eq ) AFGULRUAUBRZDUCZUAUDRZUEUF
        ZDDUGZUHZUCZUIZIAOGPOUJZUKRZQPUJZUBRZXDUMRZUNZUOUPZUGZBUJZUQZBXDURRZUSU
        RRZUTVAZVBZWNQUJZUCZWPWQXPXPUGZUHZUCZUIZVCZVCZXAVDULSULOVDYCVETABPOQVFV
        GAXBGTZVRZPXCYBXASYEXBUKVHYEXDXCTZVRZQXOYAXASXOSVIYGXKBXNXLXMUTVJVKVGYG
        XPXOTZVRZXQWOXTWTYIXPDWNYGXPDTYHYGDXOXPYGDCEUNZXHUGZXJUQZBHURRZXMUTVAZV
        BZXOADYOTYDYFNVLYGXKYLBXNYNYGXLYMXMUTYGXDHURYEXDHTYFYEHXCXDYEXCGUKRHYEX
        BGUKAYDVMVNJVOVPVQZVNVSYGXIYKXJYGXGYJXHYGXECXFEYGXEHUBRCYGXDHUBYPVNKVTY
        GXFHUMREYGXDHUMYPVNLVTWHWAWBWCWDVPVQZWEYIXSWSWPYIXRWRWQYIXPDYQWFWGWEWIW
        JWJMXASVIAWOWTWKVGWLWM $.
    $}

    dchrbas.b $e |- D = ( Base ` G ) $.
    $( Base set of the group of Dirichlet characters.  (Contributed by Mario
       Carneiro, 18-Apr-2016.) $)
    dchrbas $p |- ( ph -> D = { x e. ( ( mulGrp ` Z )
        MndHom ( mulGrp ` CCfld ) ) | ( ( B \ U ) X. { 0 } ) C_ x } ) $=
      ( cbs cfv cnx cxp cmgp cmhm cdif cc0 csn cv wss ccnfld co crab cop cplusg
      cmul cof cres cpr eqidd dchrval fveq2d wcel wceq ovex rabex grpbase ax-mp
      cvv eqid 3eqtr4g ) AFOPQOPCEUAUBUCRBUDUEZBHSPZUFSPZTUGZUHZUIQUJPUKULVKVKR
      UMZUIUNZOPZDVKAFVMOABCVKEFGHIJKLMAVKUOUPUQNVKVDURVKVNUSVGBVJVHVITUTVAVKVL
      VMVDVMVEVBVCVF $.

    $( A Dirichlet character is a monoid homomorphism from the multiplicative
       monoid on ` Z/nZ ` to the multiplicative monoid of ` CC ` , which is
       zero off the group of units of ` Z/nZ ` .  (Contributed by Mario
       Carneiro, 18-Apr-2016.) $)
    dchrelbas $p |- ( ph -> ( X e. D <-> ( X e. ( ( mulGrp ` Z )
        MndHom ( mulGrp ` CCfld ) ) /\ ( ( B \ U ) X. { 0 } ) C_ X ) ) ) $=
      ( vx wcel cdif wss cmgp cfv cc0 csn cxp cv ccnfld cmhm co crab wa dchrbas
      eleq2d sseq2 elrab syl6bb ) AGCPGBDQUAUBUCZOUDZRZOHSTUESTUFUGZUHZPGURPUOG
      RZUIACUSGAOBCDEFHIJKLMNUJUKUQUTOGURUPGUOULUMUN $.

    $( A Dirichlet character is a monoid homomorphism from the multiplicative
       monoid on ` Z/nZ ` to the multiplicative monoid of ` CC ` , which is
       zero off the group of units of ` Z/nZ ` .  (Contributed by Mario
       Carneiro, 18-Apr-2016.) $)
    dchrelbas2 $p |- ( ph -> ( X e. D <-> ( X e. ( ( mulGrp ` Z ) MndHom
      ( mulGrp ` CCfld ) ) /\ A. x e. B ( ( X ` x ) =/= 0 -> x e. U ) ) ) ) $=
      ( wcel cfv cc0 wi cc cmgp ccnfld cmhm co cdif csn cxp wss wa cv dchrelbas
      wne wral cres wceq wfun wf eqid mgpbas cnfldbas mhmf adantl ffun funssres
      cdm syl sylan simpr resss syl6eqssr impbida 0cn fconst6g mp1i fdm reseq2d
      eqeq1d bitrd wfn wb difss fssres sylancl ffn eqfnfv syl2anc c0ex fvconst2
      fvres eqeq12d ralbiia wn eldif imbi1i impexp bitr4i imbi2i 3bitri ralbii2
      con1b df-ne bitri syl6bb pm5.32da ) AHDPHIUAQZUBUAQZUCUDPZCEUEZRUFUGZHUHZ
      UIXGBUJZHQZRULZXKEPZSZBCUMZUIACDEFGHIJKLMNOUKAXGXJXPAXGUIZXJHXHUNZXIUOZXP
      XQXJHXIVEZUNZXIUOZXSXQXJYBXQHUPZXJYBXQCTHUQZYCXGYDACTXEXFHCIXEXEURLUSTUBX
      FXFURUTUSVAVBZCTHVCVFHXIVDVGXQYBUIXIYAHXQYBVHHXTVIVJVKXQYAXRXIXQXTXHHXQXH
      TXIUQZXTXHUORTPYFXQVLXHRTVMVNZXHTXIVOVFVPVQVRXQXSXKXRQZXKXIQZUOZBXHUMZXPX
      QXRXHVSZXIXHVSZXSYKVTXQXHTXRUQZYLXQYDXHCUHYNYECEWACTXHHWBWCXHTXRWDVFXQYFY
      MYGXHTXIWDVFBXHXRXIWEWFYKXLRUOZBXHUMXPYJYOBXHXKXHPZYHXLYIRXKXHHWIXHRXKWGW
      HWJWKYOXOBXHCYPYOSXKCPZXNWLZUIZYOSYQYRYOSZSYQXOSYPYSYOXKCEWMWNYQYRYOWOYTX
      OYQYTYOWLZXNSXOXNYOWTXMUUAXNXLRXAWNWPWQWRWSXBXCVRXDVR $.

    $( A Dirichlet character is a monoid homomorphism from the multiplicative
       monoid on ` Z/nZ ` to the multiplicative monoid of ` CC ` , which is
       zero off the group of units of ` Z/nZ ` .  (Contributed by Mario
       Carneiro, 19-Apr-2016.) $)
    dchrelbas3 $p |- ( ph -> ( X e. D <-> ( X : B --> CC /\ ( A. x e. U
        A. y e. U ( X ` ( x ( .r ` Z ) y ) ) = ( ( X ` x ) x. ( X ` y ) ) /\
        ( X ` ( 1r ` Z ) ) = 1 /\
        A. x e. B ( ( X ` x ) =/= 0 -> x e. U ) ) ) ) ) $=
      ( wcel cfv cc0 wa vz cmgp ccnfld cmhm co cv wi wral cc wf cmulr cmul wceq
      wne cur c1 w3a dchrelbas2 wb fveq2 neeq1d eleq1 imbi12d cbvralv cmnd ccrg
      crg cn0 nnnn0d zncrng syl crngring ringmgp cnring ax-mp cnfldbas mgpplusg
      eqid mgpbas cnfldmul ringidval cnfld1 ismhm baib sylancl adantr wal biimt
      adantl wn ad3antrrr simprl simprr ringcl syl3anc simpllr rspcv unitmulclb
      sylc sylibd necon1bd imp anim12d con3dimp neanior con2bii sylibr ffvelrnd
      simplr mul0ord mpbird eqtr4d a1d 2thd pm2.61dan pm5.74da anim12i pm4.71ri
      unitcl imbi1i bitri syl6bbr 2albidv r2al 3bitr4g adantrr pm5.32da 3anan32
      wo impexp an31 bitrd sylan2br ancom df-3an anbi2i an13 ) AIEQIJUBRZUCUBRZ
      UDUEQZBUFZIRZSUNZUUAFQZUGZBDUHZTZDUIIUJZUUACUFZJUKRZUEZIRZUUBUUIIRZULUEZU
      MZCFUHBFUHZJUORZIRUPUMZUUFUQZTZABDEFGHIJKLMNOPURAUUFYTTUUFUUPUURTZUUHTZTZ
      UUGUUTAUUFYTUVBUUFAUAUFZIRZSUNZUVDFQZUGZUADUHZYTUVBUSUVHUUEUABDUVDUUAUMZU
      VFUUCUVGUUDUVJUVEUUBSUVDUUAIUTVAUVDUUAFVBVCZVDAUVITZYTUUHUUOCDUHBDUHZUURU
      QZUVBAYTUVNUSZUVIAYRVEQZYSVEQZUVOAJVGQZUVPAJVFQZUVRAHVHQUVSAHOVIHJLVJVKZJ
      VLVKZJYRYRVRZVMVKUCVGQUVQVNUCYSYSVRZVMVOYTUVPUVQTUVNBCDUIUUJULYRYSIUPUUQD
      JYRUWBMVSUIUCYSUWCVPVSJUUJYRUWBUUJVRZVQUCULYSUWCVTVQJUUQYRUWBUUQVRWAUCUPY
      SUWCWBWAWCWDWEWFUVLUUHUURTZUVMTUWEUUPTUVNUVBUVLUWEUVMUUPUVLUUHUVMUUPUSUUR
      UVLUUHTZUUADQZUUIDQZTZUUOUGZCWGBWGUUDUUIFQZTZUUOUGZCWGBWGUVMUUPUWFUWJUWMB
      CUWFUWJUWIUWMUGZUWMUWFUWIUUOUWMUWFUWITZUWLUUOUWMUSZUWLUWPUWOUWLUUOWHWIUWO
      UWLWJZTZUUOUWMUWRUULSUUNUWOUWQUULSUMUWOUWLUULSUWOUULSUNZUUKFQZUWLUWOUUKDQ
      ZUVIUWSUWTUGZUWOUVRUWGUWHUXAAUVRUVIUUHUWIUWAWKUWFUWGUWHWLZUWFUWGUWHWMZDJU
      UJUUAUUIMUWDWNWOAUVIUUHUWIWPZUVHUXBUAUUKDUVDUUKUMZUVFUWSUVGUWTUXFUVEUULSU
      VDUUKIUTVAUVDUUKFVBVCWQWSUWOUVSUWGUWHUWTUWLUSAUVSUVIUUHUWIUVTWKUXCUXDDJUU
      JFUUAUUINUWDMWRWOWTXAXBUWRUUNSUMZUUBSUMUUMSUMYIZUWRUUCUUMSUNZTZWJUXHUWOUX
      JUWLUWOUUCUUDUXIUWKUWOUWGUVIUUEUXCUXEUVHUUEUAUUADUVKWQWSUWOUWHUVIUXIUWKUG
      ZUXDUXEUVHUXKUAUUIDUVDUUIUMZUVFUXIUVGUWKUXLUVEUUMSUVDUUIIUTVAUVDUUIFVBVCW
      QWSXCXDUXJUXHUUBSUUMSXEXFXGUWOUXGUXHUSUWQUWOUUBUUMUWODUIUUAIUVLUUHUWIXIZU
      XCXHUWODUIUUIIUXMUXDXHXJWFXKXLZUWRUUOUWLUXNXMXNXOXPUWMUWIUWLTZUUOUGUWNUWL
      UXOUUOUWLUWIUUDUWGUWKUWHDJFUUAMNXSDJFUUIMNXSXQXRXTUWIUWLUUOYJYAYBYCUUOBCD
      DYDUUOBCFFYDYEYFYGUUHUVMUURYHUUPUURUUHYKYEYLYMYGYTUUFYNUUTUUHUVAUUFTZTUVC
      UUSUXPUUHUUPUURUUFYOYPUUHUVAUUFYQYAYEYL $.

    dchrelbasd.1 $e |- ( k = x -> X = A ) $.
    dchrelbasd.2 $e |- ( k = y -> X = C ) $.
    dchrelbasd.3 $e |- ( k = ( x ( .r ` Z ) y ) -> X = E ) $.
    dchrelbasd.4 $e |- ( k = ( 1r ` Z ) -> X = Y ) $.
    dchrelbasd.5 $e |- ( ( ph /\ k e. U ) -> X e. CC ) $.
    dchrelbasd.6 $e |- ( ( ph /\ ( x e. U /\ y e. U ) ) -> E = ( A x. C ) ) $.
    dchrelbasd.7 $e |- ( ph -> Y = 1 ) $.
    $( A Dirichlet character is a monoid homomorphism from the multiplicative
       monoid on ` Z/nZ ` to the multiplicative monoid of ` CC ` , which is
       zero off the group of units of ` Z/nZ ` .  (Contributed by Mario
       Carneiro, 28-Apr-2016.) $)
    dchrelbasd $p |- ( ph -> ( k e. B |-> if ( k e. U , X , 0 ) ) e. D ) $=
      ( cv wcel cc0 cif cmpt cc wf cmulr cfv co cmul wceq wral cur c1 wne wi wa
      w3a adantlr wn 0cnd ifclda eqid fmptd crg cn0 ccrg nnnn0d zncrng crngring
      unitmulcl 3expb sylan iftrued eqtrd unitss sseldi ralrimiva adantr eleq1d
      rspcv eqeltrd eleq1 ifbieq1d fvmptg syl2anc simprl iftrue ad2antrl simprr
      3syl sylc ad2antll oveq12d 3eqtr4d ralrimivva 1unit ax-1cn syl6eqel simpr
      syl mpan9 neeq1d iffalse necon1ai syl6bi 3jca dchrelbas3 mpbir2and ) AIEI
      UIZHUJZMUKULZUMZGUJEUNYBUOBUIZCUIZOUPUQZURZYBUQZYCYBUQZYDYBUQZUSURZUTZCHV
      ABHVAZOVBUQZYBUQZVCUTZYHUKVDZYCHUJZVEZBEVAZVGAIEYAUNYBAXSEUJZVFZXTMUKUNAX
      TMUNUJZYTUFVHUUAXTVIVFVJVKYBVLZVMAYLYOYSAYKBCHHAYQYDHUJZVFZVFZYFHUJZJUKUL
      ZDFUSURZYGYJUUFUUHJUUIUUFUUGJUKAOVNUJZUUEUUGALVOUJOVPUJUUJALTVQLOQVROVSWT
      ZUUJYQUUDUUGOYEHYCYDSYEVLVTWAWBZWCZUGWDUUFYFEUJUUHUNUJYGUUHUTUUFHEYFEOHRS
      WEZUULWFUUFUUHJUNUUMUUFUUGUUBIHVAZJUNUJZUULAUUOUUEAUUBIHUFWGZWHZUUBUUPIYF
      HXSYFUTZMJUNUDWIWJXAWKIYFYAUUHEUNYBUUSXTUUGMJUKXSYFHWLUDWMUUCWNWOUUFYHDYI
      FUSUUFYHYQDUKULZDUUFYCEUJZUUTUNUJZYHUUTUTZUUFHEYCUUNAYQUUDWPZWFUUFUUTDUNY
      QUUTDUTAUUDYQDUKWQWRZUUFYQUUODUNUJZUVDUURUUBUVFIYCHXSYCUTZMDUNUBWIWJZXAWK
      IYCYAUUTEUNYBUVGXTYQMDUKXSYCHWLUBWMUUCWNZWOUVEWDUUFYIUUDFUKULZFUUFYDEUJUV
      JUNUJYIUVJUTUUFHEYDUUNAYQUUDWSZWFUUFUVJFUNUUDUVJFUTAYQUUDFUKWQXBZUUFUUDUU
      OFUNUJZUVKUURUUBUVMIYDHXSYDUTZMFUNUCWIWJXAWKIYDYAUVJEUNYBUVNXTUUDMFUKXSYD
      HWLUCWMUUCWNWOUVLWDXCXDXEAYNYMHUJZNUKULZVCAYMEUJUVPUNUJYNUVPUTAHEYMUUNAUU
      JUVOUUKOHYMSYMVLXFXJZWFAUVPVCUNAUVPNVCAUVONUKUVQWCUHWDZXGXHIYMYAUVPEUNYBX
      SYMUTXTUVOMNUKXSYMHWLUEWMUUCWNWOUVRWDAYRBEAUVAVFZYPUUTUKVDYQUVSYHUUTUKUVS
      UVAUVBUVCAUVAXIUVSYQDUKUNAYQUVFUVAAUUOYQUVFUUQUVHXKVHUVSYQVIVFVJVKUVIWOXL
      YQUUTUKYQDUKXMXNXOWGXPABCEGHKLYBOPQRSTUAXQXR $.
  $}

  ${
    $d b n x z $.
    dchrrcl.g $e |- G = ( DChr ` N ) $.
    dchrrcl.b $e |- D = ( Base ` G ) $.
    $( Reverse closure for a Dirichlet character.  (Contributed by Mario
       Carneiro, 12-May-2016.) $)
    dchrrcl $p |- ( X e. D -> N e. NN ) $=
      ( vn vz vb vx wcel cdchr cn cv cfv cbs cxp cmgp cnx c0 cdm czn cui ccnfld
      cdif cc0 csn wss cmhm co crab cop cplusg cmul cof cpr csb df-dchr dmmptss
      cres wceq n0i wn ndmfv syl5eq fveq2 base0 3eqtr4g syl nsyl2 sseldi ) DAKZ
      LUAZMCGMHGNUBOIHNZPOVNUCOUEUFUGQJNUHJVNROUDROUIUJUKSPOINZULSUMOUNUOVOVOQU
      TULUPUQUQLJHGIURUSVLATVAZCVMKZADVBVQVCZBTVAZVPVRBCLOTECLVDVEVSBPOTPOATBTP
      VFFVGVHVIVJVK $.
  $}

  ${
    $d x y .1. $.  $d k x y B $.  $d x y K $.  $d x y L $.  $d k x y U $.
    $d x A $.  $d k x y N $.  $d k x y ph $.  $d k x y X $.  $d k x y Z $.
    $d x D $.  $d x y Y $.
    dchrmhm.g $e |- G = ( DChr ` N ) $.
    dchrmhm.z $e |- Z = ( Z/nZ ` N ) $.
    dchrmhm.b $e |- D = ( Base ` G ) $.
    $( A Dirichlet character is a monoid homomorphism.  (Contributed by Mario
       Carneiro, 19-Apr-2016.) $)
    dchrmhm $p |- D C_ ( ( mulGrp ` Z ) MndHom ( mulGrp ` CCfld ) ) $=
      ( vx cmgp cfv ccnfld cmhm co cv wcel cbs cui cdif cc0 eqid csn cxp wss wa
      dchrrcl dchrelbas ibi simpld ssriv ) HADIJKIJLMZHNZAOZUKUJOZDPJZDQJZRSUAU
      BUKUCZULUMUPUDULUNAUOBCUKDEFUNTUOTABCUKEGUEGUFUGUHUI $.

    ${
      dchrf.b $e |- B = ( Base ` Z ) $.
      dchrf.x $e |- ( ph -> X e. D ) $.
      $( A Dirichlet character is a function.  (Contributed by Mario Carneiro,
         18-Apr-2016.) $)
      dchrf $p |- ( ph -> X : B --> CC ) $=
        ( vx vy cv cfv co wceq wral wcel cc wf cmulr cmul cui cur c1 cc0 wne wi
        w3a wa eqid cn dchrrcl syl dchrelbas3 mpbid simpld ) ABUAFUBZMOZNOZGUCP
        QFPVAFPZVBFPUDQRNGUEPZSMVDSGUFPFPUGRVCUHUIVAVDTUJMBSUKZAFCTZUTVEULLAMNB
        CVDDEFGHIKVDUMAVFEUNTLCDEFHJUOUPJUQURUS $.
    $}

    ${
      dchrelbas4.l $e |- L = ( ZRHom ` Z ) $.
      $( A Dirichlet character is a monoid homomorphism from the multiplicative
         monoid on ` Z/nZ ` to the multiplicative monoid of ` CC ` , which is
         zero off the group of units of ` Z/nZ ` .  (Contributed by Mario
         Carneiro, 18-Apr-2016.) $)
      dchrelbas4 $p |- ( X e. D <-> ( N e. NN /\
          X e. ( ( mulGrp ` Z ) MndHom ( mulGrp ` CCfld ) ) /\
          A. x e. ZZ ( 1 < ( x gcd N ) -> ( X ` ( L ` x ) ) = 0 ) ) ) $=
        ( vy wcel cfv c1 cc0 wceq wi cz wa cn cmgp ccnfld cmhm co cgcd clt wral
        cv wbr w3a dchrrcl wne cui cbs eqid id dchrelbas2 cn0 wfo nnnn0 znzrhfo
        wb adantr fveq2 neeq1d eleq1 imbi12d cbvfo 3syl wn df-ne a1i sylan 1red
        znunit simpr simpll nnzd nnne0 necon3ai gcdn0cl syl21anc nnge1d leltned
        nnred necon2bbid con34b syl6bbr ralbidva bitr3d pm5.32da biadan2 3anass
        bitrd bitr4i ) FBMZEUAMZFGUBNUCUBNUDUEMZOAUIZEUFUEZUGUJZWTDNZFNZPQZRZAS
        UHZTZTWRWSXGUKWQWRXHBCEFHJULWRWQWSLUIZFNZPUMZXIGUNNZMZRZLGUONZUHZTXHWRL
        XOBXLCEFGHIXOUPZXLUPZWRUQJURWRWSXPXGWRWSTZXDPUMZXCXLMZRZASUHZXPXGXSEUSM
        ZSXODUTYCXPVCWRYDWSEVAVDZXODEGIXQKVBYBXNALSXODXCXIQZXTXKYAXMYFXDXJPXCXI
        FVEVFXCXIXLVGVHVIVJXSYBXFASXSWTSMZTZYBXEVKZXBVKZRXFYHXTYIYAYJXTYIVCYHXD
        PVLVMYHYAXAOQZYJXSYDYGYAYKVCYEWTXLDEGIXRKVPVNYHXBXAOYHOXAYHVOYHXAYHYGES
        MWTPQZEPQZTZVKZXAUAMXSYGVQYHEWRWSYGVRZVSYHWREPUMYOYPEVTYNEPYLYMVQWAVJWT
        EWBWCZWFYHXAYQWDWEWGWOVHXBXEWHWIWJWKWLWOWMWRWSXGWNWP $.

      dchrzrh1.x $e |- ( ph -> X e. D ) $.
      $( Value of a Dirichlet character at one.  (Contributed by Mario
         Carneiro, 4-May-2016.) $)
      dchrzrh1 $p |- ( ph -> ( X ` ( L ` 1 ) ) = 1 ) $=
        ( c1 cfv wcel wceq syl eqid cmgp ccnfld cur cn0 ccrg crg dchrrcl nnnn0d
        cn zncrng zrh1 4syl fveq2d cmhm co dchrmhm sseldi ringidval cnfld1 mhm0
        crngring eqtrd ) AMDNZFNGUANZFNZMAVAVBFAEUBOGUCOGUDOVAVBPAEAFBOEUGOLBCE
        FHJUEQUFEGIUHGUSGVBDKVBRZUIUJUKAFGSNZTSNZULUMZOVCMPABVGFBCEGHIJUNLUOVEV
        FFMVBGVBVEVERVDUPTMVFVFRUQUPURQUT $.

      dchrzrh1.a $e |- ( ph -> A e. ZZ ) $.
      $( A Dirichlet character takes values in the complex numbers.
         (Contributed by Mario Carneiro, 12-May-2016.) $)
      dchrzrhcl $p |- ( ph -> ( X ` ( L ` A ) ) e. CC ) $=
        ( cbs cfv cz wcel 3syl ffvelrnd cc eqid dchrf cn0 wf cn dchrrcl znzrhfo
        wfo nnnn0 fof ) AHOPZUABEPGAULCDFGHIJKULUBZMUCAQULBEAFUDRZQULEUIQULEUEA
        GCRFUFRUNMCDFGIKUGFUJSULEFHJUMLUHQULEUKSNTT $.

      dchrzrh1.c $e |- ( ph -> C e. ZZ ) $.
      $( A Dirichlet character is completely multiplicative.  (Contributed by
         Mario Carneiro, 4-May-2016.) $)
      dchrzrhmul $p |- ( ph -> ( X ` ( L ` ( A x. C ) ) ) =
        ( ( X ` ( L ` A ) ) x. ( X ` ( L ` C ) ) ) ) $=
        ( cmul cfv wcel cz cmulr zring crh wceq crg ccrg cn0 dchrrcl syl nnnn0d
        co zncrng crngring zrhrhm zringbas zringmulr eqid rhmmul syl3anc fveq2d
        cn cmgp ccnfld cmhm cbs dchrmhm sseldi wf rhmf ffvelrnd mgpbas mgpplusg
        cnfldmul mhmlin eqtrd ) ABCQUKFRZHRBFRZCFRZIUARZUKZHRZVQHRVRHRQUKZAVPVT
        HAFUBIUCUKSZBTSCTSVPVTUDAIUESZWCAIUFSZWDAGUGSWEAGAHDSGVASNDEGHJLUHUIUJG
        IKULUIIUMUIIFMUNUIZOPBCUBIQVSFTUOUPVSUQZURUSUTAHIVBRZVCVBRZVDUKZSVQIVER
        ZSVRWKSWAWBUDADWJHDEGIJKLVFNVGATWKBFAWCTWKFVHWFTWKUBIFUOWKUQZVIUIZOVJAT
        WKCFWMPVJWKVSQWHWIHVQVRWKIWHWHUQZWLVKIVSWHWNWGVLVCQWIWIUQVMVLVNUSVO $.
    $}

    ${
      dchrmul.t $e |- .x. = ( +g ` G ) $.
      ${
        dchrplusg.n $e |- ( ph -> N e. NN ) $.
        $( Group operation on the group of Dirichlet characters.  (Contributed
           by Mario Carneiro, 18-Apr-2016.) $)
        dchrplusg $p |- ( ph -> .x. = ( oF x. |` ( D X. D ) ) ) $=
          ( vx cplusg cfv cnx cbs cop cmul eqid cvv cof cxp cpr dchrbas dchrval
          cres fveq2d wcel wceq fvex eqeltri xpex ofexg grpplusg mp2b 3eqtr4g
          cui ) ADMNOPNBQOMNRUABBUBZUFZQUCZMNZCUSADUTMALFPNZBFUQNZDEFGHVBSZVCSZ
          KALVBBVCDEFGHVDVEKIUDUEUGJURTUHUSTUHUSVAUIBBBDPNTIDPUJUKZVFULURRTUMBU
          SUTTUTSUNUOUP $.
      $}

      dchrmul.x $e |- ( ph -> X e. D ) $.
      dchrmul.y $e |- ( ph -> Y e. D ) $.
      $( Group operation on the group of Dirichlet characters.  (Contributed by
         Mario Carneiro, 18-Apr-2016.) $)
      dchrmul $p |- ( ph -> ( X .x. Y ) = ( X oF x. Y ) ) $=
        ( co cmul cof cxp cres wcel dchrrcl syl dchrplusg oveqd ofmresval eqtrd
        cn ) AFGCOFGPQZBBRSZOFGUHOACUIFGABCDEHIJKLAFBTEUGTMBDEFIKUAUBUCUDABBPFG
        MNUEUF $.

      $( Closure of the group operation on Dirichlet characters.  (Contributed
         by Mario Carneiro, 18-Apr-2016.) $)
      dchrmulcl $p |- ( ph -> ( X .x. Y ) e. D ) $=
        ( vx co cmul wcel cfv cc vy cof dchrmul cbs wf cv cmulr wceq cui cur c1
        wral cc0 wne wi w3a cvv mulcl adantl eqid dchrf fvexd inidm off anim12i
        wa unitcl cmgp ccnfld cmhm dchrrcl syl dchrelbas2 mpbid simpld mgpplusg
        cn mgpbas cnfldmul mhmlin 3expb sylan oveq12d ffvelrnda adantrr ffvelrn
        simpr syl2an mul4d eqtrd wfn ffn adantr crg ccrg nnnn0d zncrng crngring
        cn0 ringcl fnfvof syl22anc simprr 3eqtr4d ralrimivva ringidcl ringidval
        3syl sylan2 cnfld1 1t1e1 syl6eq neeq1d mulne0bd bitr4d r19.21bi adantrd
        mhm0 simprd sylbid ralrimiva 3jca dchrelbas3 mpbir2and eqeltrd ) AFGCPF
        GQUBPZBABCDEFGHIJKLMNUCAYFBRHUDSZTYFUEOUFZUAUFZHUGSZPZYFSZYHYFSZYIYFSZQ
        PZUHZUAHUISZULOYQULZHUJSZYFSZUKUHZYMUMUNZYHYQRZUOZOYGULZUPAOUAYGYGYGQTT
        TFGUQUQYHTRYITRVFYHYIQPTRAYHYIURUSAYGBDEFHIJKYGUTZMVAZAYGBDEGHIJKUUFNVA
        ZAHUDVBZUUIYGVCVDAYRUUAUUEAYPOUAYQYQUUCYIYQRZVFAYHYGRZYIYGRZVFZYPUUCUUK
        UUJUULYGHYQYHUUFYQUTZVGYGHYQYIUUFUUNVGVEAUUMVFZYKFSZYKGSZQPZYHFSZYHGSZQ
        PZYIFSZYIGSZQPZQPZYLYOUUOUURUUSUVBQPZUUTUVCQPZQPUVEUUOUUPUVFUUQUVGQAFHV
        HSZVIVHSZVJPZRZUUMUUPUVFUHZAUVKUUSUMUNZUUCUOZOYGULZAFBRZUVKUVOVFMAOYGBY
        QDEFHIJUUFUUNAUVPEVQRMBDEFIKVKVLZKVMVNZVOZUVKUUKUULUVLYGYJQUVHUVIFYHYIY
        GHUVHUVHUTZUUFVRZHYJUVHUVTYJUTZVPZVIQUVIUVIUTZVSVPZVTWAWBAGUVJRZUUMUUQU
        VGUHZAUWFUUTUMUNZUUCUOOYGULZAGBRUWFUWIVFNAOYGBYQDEGHIJUUFUUNUVQKVMVNVOZ
        UWFUUKUULUWGYGYJQUVHUVIGYHYIUWAUWCUWEVTWAWBWCUUOUUSUVBUUTUVCAUUKUUSTRUU
        LAYGTYHFUUGWDZWEAYGTFUEZUULUVBTRUUMUUGUUKUULWGZYGTYIFWFWHAUUKUUTTRUULAY
        GTYHGUUHWDZWEAYGTGUEZUULUVCTRUUMUUHUWMYGTYIGWFWHWIWJUUOFYGWKZGYGWKZYGUQ
        RZYKYGRZYLUURUHAUWPUUMAUWLUWPUUGYGTFWLVLZWMZAUWQUUMAUWOUWQUUHYGTGWLVLZW
        MZUUOHUDVBZAHWNRZUUMUWSAEWSRHWORUXEAEUVQWPEHJWQHWRXHZUXEUUKUULUWSYGHYJY
        HYIUUFUWBWTWAWBYGQFGUQYKXAXBUUOYMUVAYNUVDQAUUKYMUVAUHZUULAUUKVFZUWPUWQU
        WRUUKUXGAUWPUUKUWTWMAUWQUUKUXBWMUXHHUDVBAUUKWGYGQFGUQYHXAXBZWEUUOUWPUWQ
        UWRUULYNUVDUHUXAUXCUXDAUUKUULXCYGQFGUQYIXAXBWCXDXIXEAYTYSFSZYSGSZQPZUKA
        UWPUWQUWRYSYGRZYTUXLUHUWTUXBUUIAUXEUXMUXFYGHYSUUFYSUTZXFVLYGQFGUQYSXAXB
        AUXLUKUKQPUKAUXJUKUXKUKQAUVKUXJUKUHUVSUVHUVIFUKYSHYSUVHUVTUXNXGZVIUKUVI
        UWDXJXGZXRVLAUWFUXKUKUHUWJUVHUVIGUKYSUXOUXPXRVLWCXKXLWJAUUDOYGUXHUUBUVM
        UWHVFZUUCUXHUUBUVAUMUNUXQUXHYMUVAUMUXIXMUXHUUSUUTUWKUWNXNXOUXHUVMUUCUWH
        AUVNOYGAUVKUVOUVRXSXPXQXTYAYBAOUAYGBYQDEYFHIJUUFUUNUVQKYCYDYE $.
    $}

    dchrn0.b $e |- B = ( Base ` Z ) $.
    dchrn0.u $e |- U = ( Unit ` Z ) $.
    ${
      dchrn0.x $e |- ( ph -> X e. D ) $.
      dchrn0.a $e |- ( ph -> A e. B ) $.
      $( A Dirichlet character is nonzero on the units of ` Z/nZ ` .
         (Contributed by Mario Carneiro, 18-Apr-2016.) $)
      dchrn0 $p |- ( ph -> ( ( X ` A ) =/= 0 <-> A e. U ) ) $=
        ( cfv cc0 wcel c1 vx wne cv wi wral cmgp ccnfld cmhm dchrrcl dchrelbas2
        co wa syl mpbid simprd wceq fveq2 neeq1d eleq1 imbi12d rspcv sylc cinvr
        imp cmul ax-1ne0 a1i cmulr cur crg cn0 ccrg nnnn0d zncrng crngring 3syl
        cn eqid unitrinv sylan fveq2d simpld adantr ringinvcl mgpplusg cnfldmul
        mgpbas mhmlin syl3anc ringidval cnfld1 mhm0 3eqtr3d cc wf cnfldbas mhmf
        ffvelrnd mul02d 3netr4d oveq1 necon3i impbida ) ABHQZRUBZBESZAXEXFABCSZ
        UAUCZHQZRUBZXHESZUDZUACUEZXEXFUDZPAHIUFQZUGUFQZUHUKSZXMAHDSZXQXMULOAUAC
        DEFGHIJKMNAXRGVQSODFGHJLUIUMZLUJUNZUOXLXNUABCXHBUPZXJXEXKXFYAXIXDRXHBHU
        QURXHBEUSUTVAVBVDAXFULZXDBIVCQZQZHQZVEUKZRYEVEUKZUBXEYBTRYFYGTRUBYBVFVG
        YBBYDIVHQZUKZHQZIVIQZHQZYFTYBYIYKHAIVJSZXFYIYKUPAGVKSIVLSYMAGXSVMGIKVNI
        VOVPZIYHEYKYCBNYCVRZYHVRZYKVRZVSVTWAYBXQXGYDCSZYJYFUPAXQXFAXQXMXTWBWCZA
        XGXFPWCAYMXFYRYNCIEYCBNYOMWDVTZCYHVEXOXPHBYDCIXOXOVRZMWGZIYHXOUUAYPWEUG
        VEXPXPVRZWFWEWHWIYBXQYLTUPYSXOXPHTYKIYKXOUUAYQWJUGTXPUUCWKWJWLUMWMYBYEY
        BCWNYDHYBXQCWNHWOYSCWNXOXPHUUBWNUGXPUUCWPWGWQUMYTWRWSWTXDRYFYGXDRYEVEXA
        XBUMXC $.
    $}

    dchr1cl.o $e |- .1. = ( k e. B |-> if ( k e. U , 1 , 0 ) ) $.
    ${
      dchr1cl.n $e |- ( ph -> N e. NN ) $.
      $( Closure of the principal Dirichlet character.  (Contributed by Mario
         Carneiro, 18-Apr-2016.) $)
      dchr1cl $p |- ( ph -> .1. e. D ) $=
        ( cv c1 wceq eqidd vx vy wcel cc0 cif cmpt cmulr cfv co 1cnd cmul 1t1e1
        cur wa eqcomi a1i dchrelbasd syl5eqel ) AEFBFQZDUCZRUDUEUFCOAUAUBRBRCDF
        RGHRRIJKMNPLUSUAQZSRTUSUBQZSRTUSVAVBIUGUHUISRTUSIUMUHSRTAUTUNUJRRRUKUIZ
        SAVADUCVBDUCUNUNVCRULUOUPARTUQUR $.
    $}

    dchrmulid2.t $e |- .x. = ( +g ` G ) $.
    dchrmulid2.x $e |- ( ph -> X e. D ) $.
    $( Left identity for the principal Dirichlet character.  (Contributed by
       Mario Carneiro, 18-Apr-2016.) $)
    dchrmulid2 $p |- ( ph -> ( .1. .x. X ) = X ) $=
      ( cc0 co cmul cof wcel cn dchrrcl syl dchr1cl dchrmul cv c1 cif cmpt wceq
      cfv wa oveq1 eqeq1d cc dchrf ffvelrnda adantr mulid2d 0cn mul02i wne cmgp
      wn ccnfld cmhm wral dchrelbas2 mpbid simprd r19.21bi necon1bd imp 3eqtr4a
      oveq2d ifbothda mpteq2dva cvv cbs fvex eqeltri a1i ax-1cn feqmptd offval2
      wi keepel 3eqtr4d eqtrd ) AFJDUAFJUBUCUAZJACDHIFJKLMNRABCEFGHIKLMNOPQAJCU
      DZIUEUDSCHIJLNUFUGZUHSUIAGBGUJZEUDZUKTULZWQJUOZUBUAZUMGBWTUMWNJAGBXAWTWRU
      KWTUBUAZWTUNTWTUBUAZWTUNXAWTUNAWQBUDUPZUKTUKWSUNXBXAWTUKWSWTUBUQURTWSUNXC
      XAWTTWSWTUBUQURXDWRUPWTXDWTUSUDWRABUSWQJABCHIJKLMNOSUTZVAZVBVCXDWRVHZUPZT
      TUBUATXCWTTVDVEXHWTTTUBXDXGWTTUNXDWRWTTAWTTVFWRWJZGBAJKVGUOVIVGUOVJUAUDZX
      IGBVKZAWOXJXKUPSAGBCEHIJKLMOPWPNVLVMVNVOVPVQZVSXLVRVTWAAGBWSWTUBFJWBUSUSB
      WBUDABKWCUOWBOKWCWDWEWFWSUSUDXDWRUKTUSWGVDWKWFXFFGBWSUMUNAQWFAGBUSJXEWHZW
      IXMWLWM $.

    dchrinvcl.n $e |- K = ( k e. B |->
      if ( k e. U , ( 1 / ( X ` k ) ) , 0 ) ) $.
    $( Closure of the group inverse operation on Dirichlet characters.
       (Contributed by Mario Carneiro, 19-Apr-2016.) $)
    dchrinvcl $p |- ( ph -> ( K e. D /\ ( K .x. X ) = .1. ) ) $=
      ( vx vy wcel co wceq cv c1 cfv cdiv cc0 cif cmpt cmulr cur cn dchrrcl syl
      fveq2 oveq2d wa cc wf dchrf unitss sseli ffvelrn syl2an wne adantr adantl
      simpr dchrn0 mpbird reccld cmul 1t1e1 eqcomi a1i cmgp ccnfld cmhm dchrmhm
      sseldi simprl simprr eqid mgpbas mgpplusg cnfldmul mhmlin syl3anc oveq12d
      1cnd ffvelrnd divmuldivd eqtr4d ringidval cnfld1 mhm0 dchrelbasd syl5eqel
      1div1e1 cof dchrmul cvv cbs fvex eqeltri ovex c0ex ifex ffvelrnda feqmptd
      syl6eq offval2 ovif biimpar recid2d ifeq1da mul02d ifeq2d eqtrd mpteq2dva
      syl5eq syl6reqr jca ) AICUDIKDUEZFUFAIGBGUGZEUDZUHYIKUIZUJUEZUKULZUMZCUAA
      UBUCUHUBUGZKUIZUJUEZBUHUCUGZKUIZUJUEZCEGUHYOYRLUNUIZUEZKUIZUJUEZHJYLUHLUO
      UIZKUIZUJUEZLMNPQAKCUDZJUPUDTCHJKMOUQUROYIYOUFYKYPUHUJYIYOKUSUTYIYRUFYKYS
      UHUJYIYRKUSUTYIUUBUFYKUUCUHUJYIUUBKUSUTYIUUEUFYKUUFUHUJYIUUEKUSUTAYJVAZYK
      ABVBKVCZYIBUDZYKVBUDZYJABCHJKLMNOPTVDZEBYIBLEPQVEZVFZBVBYIKVGVHUUIYKUKVIZ
      YJAYJVLUUIYIBCEHJKLMNOPQAUUHYJTVJYJUUKAUUOVKVMVNVOAYOEUDZYREUDZVAZVAZUUDU
      HUHVPUEZYPYSVPUEZUJUEYQYTVPUEUUTUHUVAUUCUVBUJUHUVAUFUUTUVAUHVQVRVSUUTKLVT
      UIZWAVTUIZWBUEZUDZYOBUDYRBUDUUCUVBUFUUTCUVEKCHJLMNOWCZAUUHUUSTVJZWDUUTEBY
      OUUNAUUQUURWEZWDZUUTEBYRUUNAUUQUURWFZWDZBUUAVPUVCUVDKYOYRBLUVCUVCWGZPWHLU
      UAUVCUVMUUAWGWIWAVPUVDUVDWGZWJWIWKWLWMUUTUHYPUHYSUUTWNZUUTBVBYOKAUUJUUSUU
      MVJZUVJWOUVOUUTBVBYRKUVPUVLWOUUTYPUKVIUUQUVIUUTYOBCEHJKLMNOPQUVHUVJVMVNUU
      TYSUKVIUURUVKUUTYRBCEHJKLMNOPQUVHUVLVMVNWPWQAUUGUHUHUJUEUHAUUFUHUHUJAUVFU
      UFUHUFACUVEKUVGTWDUVCUVDKUHUUELUUEUVCUVMUUEWGWRWAUHUVDUVNWSWRWTURUTXCXOXA
      XBZAYHIKVPXDUEZFACDHJIKLMNOSUVQTXEAUVRGBYMYKVPUEZUMZFAGBYMYKVPIKXFXFVBBXF
      UDABLXGUIXFPLXGXHXIVSYMXFUDAUUKVAZYJYLUKUHYKUJXJXKXLVSABVBYIKUUMXMZIYNUFA
      UAVSAGBVBKUUMXNXPAUVTGBYJUHUKULZUMFAGBUVSUWCUWAUVSYJYLYKVPUEZUKYKVPUEZULZ
      UWCYJYLUKYKVPXQUWAUWFYJUHUWEULUWCUWAYJUWDUHUWEUWAYJVAYKUWAUULYJUWBVJUWAUU
      PYJUWAYIBCEHJKLMNOPQAUUHUUKTVJAUUKVLVMXRXSXTUWAYJUWEUKUHUWAYKUWBYAYBYCYEY
      DRYFWQYCYG $.
  $}

  ${
    $d f x D $.  $d a b c k x y z G $.  $d a b c f k x y z N $.
    dchrabl.g $e |- G = ( DChr ` N ) $.
    $( The set of Dirichlet characters is an Abelian group.  (Contributed by
       Mario Carneiro, 19-Apr-2016.) $)
    dchrabl $p |- ( N e. NN -> G e. Abel ) $=
      ( vx vy vk va vb wcel cbs cfv cv co w3a eqid wa cmul cc dchrf dchrmul czn
      vz vc cn cplusg eqidd cui cdiv cc0 cif cmpt simp2 simp3 dchrmulcl cof cvv
      c1 fvexd 3adant3r3 simpr3 wceq mulass adantl caofass simpr1 simpr2 oveq1d
      wf oveq2d 3eqtr4d dchr1cl simpr dchrmulid2 dchrinvcl simpld simprd isgrpd
      id mulcom caofcom isabld ) BUDIZDEAJKZAUEKZAWBWCUFZWBWDUFZWBDEUBWCWDAFBUA
      KZJKZFLZWGUGKZIZUQWIDLZKUHMUIUJUKZFWHWKUQUIUJUKZWEWFWBWLWCIZELZWCIZNZWCWD
      ABWLWPWGCWGOZWCOZWDOZWBWOWQULZWBWOWQUMZUNZWBWOWQUBLZWCIZNPZWLWPWDMZXEQUOZ
      MZWLWPXEWDMZXIMZXHXEWDMWLXKWDMXGWLWPXIMZXEXIMWLWPXEXIMZXIMXJXLXGGHUCWHQQR
      QWLWPXEQUPXGWGJURWBWOWQWHRWLVHXFWRWHWCABWLWGCWSWTWHOZXBSZUSWBWOWQWHRWPVHX
      FWRWHWCABWPWGCWSWTXOXCSZUSXGWHWCABXEWGCWSWTXOWBWOWQXFUTZSGLZRIZHLZRIZUCLZ
      RINXSYAQMZYCQMXSYAYCQMQMVAXGXSYAYCVBVCVDXGXHXMXEXIXGWCWDABWLWPWGCWSWTXAWB
      WOWQXFVEZWBWOWQXFVFZTVGXGXKXNWLXIXGWCWDABWPXEWGCWSWTXAYFXRTVIVJXGWCWDABXH
      XEWGCWSWTXAWBWOWQXHWCIXFXDUSXRTXGWCWDABWLXKWGCWSWTXAYEXGWCWDABWPXEWGCWSWT
      XAYFXRUNTVJWBWHWCWJWNFABWGCWSWTXOWJOZWNOZWBVRVKWBWOPZWHWCWDWJWNFABWLWGCWS
      WTXOYGYHXAWBWOVLZVMYIWMWCIZWMWLWDMWNVAZYIWHWCWDWJWNFAWMBWLWGCWSWTXOYGYHXA
      YJWMOVNZVOYIYKYLYMVPVQWRXMWPWLXIMXHWPWLWDMWRGHWHQRWLWPUPWRWGJURXPXQXTYBPY
      DYAXSQMVAWRXSYAVSVCVTWRWCWDABWLWPWGCWSWTXAXBXCTWRWCWDABWPWLWGCWSWTXAXCXBT
      VJWA $.

    dchrfi.b $e |- D = ( Base ` G ) $.
    $( The group of Dirichlet characters is a finite group.  (Contributed by
       Mario Carneiro, 19-Apr-2016.) $)
    dchrfi $p |- ( N e. NN -> D e. Fin ) $=
      ( vz wcel cc0 cfv cexp co c1 cmin wceq cc cfn wa cvv eqid syl vf vx cn cv
      csn cphi crab cun czn cbs cmap wss snfi cmpt cdgr cle wbr c0p wne cxp cof
      chash cply cnex a1i ovexd 1cnd eqidd fconstmpt offval2 ssid nnnn0d plypow
      cn0 phicl syl3anc ax-1cn plyconst mp2an plysubcl sylancl eqeltrrd neg1ne0
      0cn cneg 0expd oveq1d oveq1 ovex fvmpt ax-mp df-neg 3eqtr4g neeq1d mpbiri
      ne0p sylancr ccnv cima mptiniseg eqcomi fta1 syl2anc simpld unfi mapfi wf
      znfi wfn wral simpr dchrf ffn wo wn df-ne fvex elsn xchbinxr simpl syl2an
      ffvelrn ccnfld cmgp cmg cmhm dchrmhm simplr sseldi ad2antrr simprl mgpbas
      cur cui cdvds wb sylibr mpbid ringidval sylanbrc mhmmulg c0g cod cgrp crg
      cress ccrg nnnn0 zncrng crngring unitgrp znunithash eqeltrd simprr dchrn0
      hashclb unitgrpbas oddvds2 breqtrd cz nnzd oddvds unitsubm submmulg subm0
      csubmnd 3eqtr4d fveq2d eqtr3d cnfldexp cnfld1 3eqtr3d 1m1e0 syl6eq eqeq1d
      mhm0 elrab expr syl5bir orrd elun ralrimiva ffnfv ex elmapd sylibrd ssrdv
      ssfi ) CUCGZHUEZFUDZCUFIZJKZLMKZHNZFOUGZUHZCUIIZUJIZUKKZPGZAUWTULAPGUWIUW
      QPGZUWSPGUXAUWIUWJPGUWPPGZUXBHUMUWIUXCUWPVBIFOUWNUNZUOIUPUQZUWIUXDOVCIZGU
      XDURUSZUXCUXEQUWIFOUWMUNZOLUEUTZMVAKZUXDUXFUWIFOUWMLMUXHUXIRROORGUWIVDVEU
      WIUWKOGQZUWKUWLJVFUXKVGUWIUXHVHUXIFOLUNNUWIFOLVIVEVJUWIUXHUXFGZUXIUXFGZUX
      JUXFGUWIOOULZLOGZUWLVNGZUXLUXNUWIOVKZVEUWIVGUWIUWLCVOZVLZFOUWLVMVPUXNUXOU
      XMUXQVQLOVRVSOUXHUXIVTWAWBUWIHOGZHUXDIZHUSZUXGWDUWIUYBLWEZHUSWCUWIUYAUYCH
      UWIHUWLJKZLMKZHLMKUYAUYCUWIUYDHLMUWIUWLUXRWFWGUXTUYAUYENWDFHUWNUYEOUXDUWK
      HNUWMUYDLMUWKHUWLJWHWGUXDSZUYDLMWIWJWKLWLWMWNWOHUXDWPWQUWPOUXDUXDWRUWJWSZ
      UWPUXTUYGUWPNWDFOUWNHUXDOUYFWTWKXAXBXCXDUWJUWPXEWQZUWSCUWRUWRSZUWSSZXHZUW
      QUWSXFXCUWIUAAUWTUWIUAUDZAGZUWSUWQUYLXGZUYLUWTGUWIUYMUYNUWIUYMQZUYLUWSXIZ
      UBUDZUYLIZUWQGZUBUWSXJUYNUYOUWSOUYLXGZUYPUYOUWSABCUYLUWRDUYIEUYJUWIUYMXKX
      LZUWSOUYLXMTUYOUYSUBUWSUYOUYQUWSGZQZUYRUWJGZUYRUWPGZXNUYSVUCVUDVUEVUDXOUY
      RHUSZVUCVUEVUFUYRHNVUDUYRHXPUYRHUYQUYLXQXRXSUYOVUBVUFVUEUYOVUBVUFQZQZUYRO
      GZUYRUWLJKZLMKZHNZVUEUYOUYTVUBVUIVUGVUAVUBVUFXTUWSOUYQUYLYBYAZVUHVUKLLMKH
      VUHVUJLLMVUHUWLUYRYCYDIZYEIZKZUWRYMIZUYLIZVUJLVUHUWLUYQUWRYDIZYEIZKZUYLIZ
      VUPVURVUHUYLVUSVUNYFKZGZUXPVUBVVBVUPNVUHAVVCUYLABCUWRDUYIEYGUWIUYMVUGYHZY
      IZUWIUXPUYMVUGUXSYJZUYOVUBVUFYKZUWSVUTVUOUYLVUSVUNUWLUYQUWSUWRVUSVUSSZUYJ
      YLVUTSZVUOSUUAVPVUHVVAVUQUYLVUHUWLUYQVUSUWRYNIZUUFKZYEIZKZVVLUUBIZVVAVUQV
      UHUYQVVLUUCIZIZUWLYOUQZVVNVVONZVUHVVQVVKVBIZUWLYOVUHVVLUUDGZVVKPGZUYQVVKG
      ZVVQVVTYOUQVUHUWRUUEGZVWAUWIVWDUYMVUGUWIUWRUUGGZVWDUWICVNGVWECUUHCUWRUYIU
      UITUWRUUJTYJZUWRVVKVVLVVKSZVVLSZUUKTZUWIVWBUYMVUGUWIVVTVNGZVWBUWIVVTUWLVN
      VVKCUWRUYIVWGUULZUXSUUMVVKRGVWBVWJYPUWRYNXQVVKRUUPWKYQYJVUHVUFVWCUYOVUBVU
      FUUNVUHUYQUWSAVVKBCUYLUWRDUYIEUYJVWGVVEVVHUUOYRZUYQVVLVVPVVKUWRVVKVVLVWGV
      WHUUQZVVPSZUURVPUWIVVTUWLNUYMVUGVWKYJUUSVUHVWAVWCUWLUUTGVVRVVSYPVWIVWLVUH
      UWLUWIUWLUCGUYMVUGUXRYJUVAUYQVVMVVLUWLVVPVVKVVOVWMVWNVVMSZVVOSUVBVPYRVUHV
      VKVUSUVFIGZUXPVWCVVAVVNNVUHVWDVWPVWFUWRVVKVUSVWGVVIUVCTZVVGVWLVVKVUTVVMVU
      SVVLUWLUYQVVJVWHVWOUVDVPVUHVWPVUQVVONVWQVVKVVLVUSVUQVWHUWRVUQVUSVVIVUQSYS
      ZUVETUVGUVHUVIVUHVUIUXPVUPVUJNVUMVVGUYRUWLUVJXCVUHVVDVURLNVVFVUSVUNUYLLVU
      QVWRYCLVUNVUNSUVKYSUVPTUVLWGUVMUVNUWOVULFUYROUWKUYRNZUWNVUKHVWSUWMVUJLMUW
      KUYRUWLJWHWGUVOUVQYTUVRUVSUVTUYRUWJUWPUWAYQUWBUBUWSUWQUYLUWCYTUWDUWIUWQUW
      SUYLPPUYHUYKUWEUWFUWGUWTAUWHXC $.
  $}

  ${
    $d x ph $.  $d x U $.  $d x X $.
    dchrghm.g $e |- G = ( DChr ` N ) $.
    dchrghm.z $e |- Z = ( Z/nZ ` N ) $.
    dchrghm.b $e |- D = ( Base ` G ) $.
    dchrghm.u $e |- U = ( Unit ` Z ) $.
    dchrghm.h $e |- H = ( ( mulGrp ` Z ) |`s U ) $.
    dchrghm.m $e |- M = ( ( mulGrp ` CCfld ) |`s ( CC \ { 0 } ) ) $.
    dchrghm.x $e |- ( ph -> X e. D ) $.
    $( A Dirichlet character restricted to the unit group of ` Z/nZ ` is a
       group homomorphism into the multiplicative group of nonzero complex
       numbers.  (Contributed by Mario Carneiro, 21-Apr-2016.) $)
    dchrghm $p |- ( ph -> ( X |` U ) e. ( H GrpHom M ) ) $=
      ( cfv wcel syl cc vx cres cmhm co cghm ccnfld cmgp csubmnd dchrmhm sseldi
      crg ccrg cn0 dchrrcl nnnn0d zncrng crngring eqid unitsubm syl2anc cc0 csn
      cn resmhm cdif crn wss wb cnring cnfldbas cnfld0 cndrng drngui ax-mp cima
      df-ima cv wral wa wne cbs dchrf unitss sseli ffvelrn syl2an adantr adantl
      wf simpr dchrn0 mpbird eldifsn sylanbrc ralrimiva wfun cdm ffun syl5sseqr
      wceq fdm funimass4 syl5eqssr resmhm2b sylancr mpbid cgrp unitgrp cnmgpabl
      cabl ablgrp ghmmhmb sylancl eleqtrrd ) AHCUBZEFUCUDZEFUEUDZAXOEUFUGQZUCUD
      RZXOXPRZAHIUGQZXRUCUDZRCYAUHQRZXSABYBHBDGIJKLUIPUJAIUKRZYCAIULRZYDAGUMRYE
      AGAHBRZGVCRPBDGHJLUNSUOGIKUPSIUQSZICYAMYAURUSSYAXREHCNVDUTATVAVBVEZXRUHQR
      ZXOVFZYHVGXSXTVHUFUKRYIVIUFYHXRTUFVAVJVKVLVMXRURUSVNAYJHCVOZYHHCVPAYKYHVG
      ZUAVQZHQZYHRZUACVRZAYOUACAYMCRZVSZYNTRZYNVAVTZYOAIWAQZTHWIZYMUUARZYSYQAUU
      ABDGHIJKLUUAURZPWBZCUUAYMUUAICUUDMWCZWDZUUATYMHWEWFYRYTYQAYQWJYRYMUUABCDG
      HIJKLUUDMAYFYQPWGYQUUCAUUGWHWKWLYNTVAWMWNWOAHWPZCHWQZVGYLYPVHAUUBUUHUUEUU
      ATHWRSAUUACUUIUUFAUUBUUIUUAWTUUEUUATHXASWSUACYHHXBUTWLXCEXRFXOYHOXDXEXFAE
      XGRZFXGRZXQXPWTAYDUUJYGICEMNXHSFXJRUUKFOXIFXKVNEFXLXMXN $.
  $}

  ${
    $d k A $.  $d k x N $.  $d k x ph $.  $d k x U $.  $d k x Z $.
    dchr1.g $e |- G = ( DChr ` N ) $.
    dchr1.z $e |- Z = ( Z/nZ ` N ) $.
    dchr1.o $e |- .1. = ( 0g ` G ) $.
    dchr1.u $e |- U = ( Unit ` Z ) $.
    dchr1.n $e |- ( ph -> N e. NN ) $.
    dchr1.a $e |- ( ph -> A e. U ) $.
    $( Value of the principal Dirichlet character.  (Contributed by Mario
       Carneiro, 28-Apr-2016.) $)
    dchr1 $p |- ( ph -> ( .1. ` A ) = 1 ) $=
      ( vk vx wcel c1 cc0 wceq eqid cv cif cbs cfv cc cmpt cplusg dchr1cl eleq1
      co ifbid cbvmptv dchrmulid2 cn cabl cgrp dchrabl ablgrp isgrpid2 mpbi2and
      wa wb 4syl simpr adantr eqeltrd iftrued unitss sseldi 1cnd fvmptd ) ANBNU
      AZCPZQRUBZQGUCUDZDUEANVOVNUFZEUCUDZPZVPVPEUGUDZUJVPSZDVPSZAVOVQCVPNEFGHIV
      QTZVOTZKVPTLUHZAVOVQVSCVPOEFVPGHIWBWCKNOVOVNOUAZCPZQRUBVLWESVMWFQRVLWECUI
      UKULVSTZWDUMAFUNPEUOPEUPPVRVTVAWAVBLEFHUQEURVQVSEDVPWBWGJUSVCUTAVLBSZVAZV
      MQRWIVLBCAWHVDABCPWHMVEVFVGACVOBVOGCWCKVHMVIAVJVK $.
  $}

  ${
    $d k ph $.  $d k U $.  $d k X $.  $d k Y $.  $d k Z $.
    dchrresb.g $e |- G = ( DChr ` N ) $.
    dchrresb.z $e |- Z = ( Z/nZ ` N ) $.
    dchrresb.b $e |- D = ( Base ` G ) $.
    dchrresb.u $e |- U = ( Unit ` Z ) $.
    dchrresb.x $e |- ( ph -> X e. D ) $.
    dchrresb.Y $e |- ( ph -> Y e. D ) $.
    $( A Dirichlet character is determined by its values on the unit group.
       (Contributed by Mario Carneiro, 28-Apr-2016.) $)
    dchreq $p |- ( ph -> ( X = Y <-> A. k e. U ( X ` k ) = ( Y ` k ) ) ) $=
      ( wceq wral wa wcel cc0 cv cfv cbs cdif wfn wb cc wf dchrf ffn syl eqfnfv
      eqid syl2anc cun wss unitss undif mpbi raleqi ralunb bitr3i syl6bb wn wne
      eldif adantr simpr dchrn0 biimpd necon1bd impr sylan2b ralrimiva biantrud
      eqtr4d bitr4d ) AGHPZDUAZGUBZVSHUBZPZDCQZWBDIUCUBZCUDZQZRZWCAVRWBDWDQZWGA
      GWDUEZHWDUEZVRWHUFAWDUGGUHWIAWDBEFGIJKLWDUMZNUIWDUGGUJUKAWDUGHUHWJAWDBEFH
      IJKLWKOUIWDUGHUJUKDWDGHULUNWHWBDCWEUOZQWGWBDWLWDCWDUPWLWDPWDICWKMUQCWDURU
      SUTWBDCWEVAVBVCAWFWCAWBDWEAVSWESZRVTTWAWMAVSWDSZVSCSZVDZRZVTTPZVSWDCVFZAW
      NWPWRAWNRZWOVTTWTVTTVEWOWTVSWDBCEFGIJKLWKMAGBSWNNVGAWNVHZVIVJVKVLVMWMAWQW
      ATPZWSAWNWPXBWTWOWATWTWATVEWOWTVSWDBCEFHIJKLWKMAHBSWNOVGXAVIVJVKVLVMVPVNV
      OVQ $.

    $( A Dirichlet character is determined by its values on the unit group.
       (Contributed by Mario Carneiro, 28-Apr-2016.) $)
    dchrresb $p |- ( ph -> ( ( X |` U ) = ( Y |` U ) <-> X = Y ) ) $=
      ( vk cres wceq cfv wfn cc cv wral cbs wb wf eqid dchrf ffn syl wss unitss
      wa fvreseq mpan2 syl2anc dchreq bitr4d ) AFCPGCPQZOUAZFRUSGRQOCUBZFGQAFHU
      CRZSZGVASZURUTUDZAVATFUEVBAVABDEFHIJKVAUFZMUGVATFUHUIAVATGUEVCAVABDEGHIJK
      VENUGVATGUHUIVBVCULCVAUJVDVAHCVELUKOVACFGUMUNUOABCODEFGHIJKLMNUPUQ $.
  $}

  ${
    $d x G $.  $d x y N $.  $d x y ph $.  $d x y X $.
    dchrabs.g $e |- G = ( DChr ` N ) $.
    dchrabs.d $e |- D = ( Base ` G ) $.
    dchrabs.x $e |- ( ph -> X e. D ) $.
    ${
      dchrabs.z $e |- Z = ( Z/nZ ` N ) $.
      dchrabs.u $e |- U = ( Unit ` Z ) $.
      dchrabs.a $e |- ( ph -> A e. U ) $.
      $( A Dirichlet character takes values on the unit circle.  (Contributed
         by Mario Carneiro, 28-Apr-2016.) $)
      dchrabs $p |- ( ph -> ( abs ` ( X ` A ) ) = 1 ) $=
        ( cfv c1 co eqid wcel wceq cabs ccxp chash cdiv cbs dchrf unitss sseldi
        cmul cc ffvelrnd cc0 wne dchrn0 mpbird absrpcld cfn cn0 cn dchrrcl znfi
        wss 3syl ssfi sylancl hashcl syl nn0red recnd c0 hashnncl nnne0d reccld
        ne0i wb cxpmuld recidd oveq2d cexp abscld cxpexp syl2anc absexpd ccnfld
        cmgp cmg cur csn cdif cres csubmnd cnring cnfldbas cnfld0 cndrng drngui
        cress crg unitsubm mp1i eldifsn sylanbrc submmulg syl3anc cghm cz nn0zd
        dchrghm unitgrpbas ghmmulg c0g cod wbr cgrp ccrg nnnn0d zncrng crngring
        cdvds unitgrp oddvds2 oddvds mpbid unitgrpid eqtr4d fvres 3eqtr3d 1unit
        fveq2d 3eqtr2d cnfldexp cmhm dchrmhm ringidval cnfld1 mhm0 syl6eq cxp1d
        abs1 oveq1d 1cxpd ) ABGOZUAOZPUBQZPPDUCOZUDQZUBQZUUCPAUUCUUEUUFUIQZUBQU
        UCUUEUBQZUUFUBQUUDUUGAUUCUUEUUFAUUBAHUEOZUJBGAUUJCEFGHILJUUJRZKUFADUUJB
        UUJHDUUKMUGZNUHZUKZAUUBULUMZBDSZNABUUJCDEFGHILJUUKMKUUMUNUOZUPAUUEADUQS
        ZUUEURSZAUUJUQSZDUUJVBUURAGCSZFUSSZUUTKCEFGIJUTZUUJFHLUUKVAVCUULUUJDVDV
        EZDVFVGZVHZAUUEAUUEUVFVIZAUUEAUUEUSSZDVJUMZAUUPUVINDBVNVGAUURUVHUVIVOUV
        DDVKVGUOVLZVMZVPAUUHPUUCUBAUUEUVGUVJVQVRAUUIPUUFUBAUUIUUCUUEVSQZUUBUUEV
        SQZUAOZPAUUCUJSUUSUUIUVLTAUUCAUUBUUNVTVIZUVEUUCUUEWAWBAUUBUUEUUNUVEWCAU
        VNPUAOPAUVMPUAAUUEUUBWDWEOZWFOZQZHWGOZGOZUVMPAUVRUUEUUBUVPUJULWHWIZWQQZ
        WFOZQZUVSGDWJZOZUVTAUWAUVPWKOSZUUSUUBUWASZUVRUWDTWDWRSUWGAWLWDUWAUVPUJW
        DULWMWNWOWPUVPRZWSWTUVEAUUBUJSZUUOUWHUUNUUQUUBUJULXAXBUWAUVQUWCUVPUWBUU
        EUUBUVQRUWBRZUWCRZXCXDAUUEBHWEOZDWQQZWFOZQZUWEOZUUEBUWEOZUWCQZUWFUWDAUW
        EUWNUWBXEQSUUEXFSZUUPUWQUWSTACDEUWNUWBFGHILJMUWNRZUWKKXHAUUEUVEXGZNDUWO
        UWCUWEUWNUWBUUEBHDUWNMUXAXIZUWORZUWLXJXDAUWPUVSUWEAUWPUWNXKOZUVSABUWNXL
        OZOUUEXSXMZUWPUXETZAUWNXNSZUURUUPUXGAHWRSZUXIAFURSHXOSUXJAFAUVAUVBKUVCV
        GXPFHLXQHXRVCZHDUWNMUXAXTVGZUVDNBUWNUXFDUXCUXFRZYAXDAUXIUUPUWTUXGUXHVOU
        XLNUXBBUWOUWNUUEUXFDUXEUXCUXMUXDUXERYBXDYCAUXJUVSUXETUXKHDUVSUWNMUXAUVS
        RZYDVGYEYIAUWRUUBUUEUWCAUUPUWRUUBTNBDGYFVGVRYGAUXJUVSDSUWFUVTTUXKHDUVSM
        UXNYHUVSDGYFVCYJAUWJUUSUVRUVMTUUNUVEUUBUUEYKWBAGUWMUVPYLQZSUVTPTACUXOGC
        EFHILJYMKUHUWMUVPGPUVSHUVSUWMUWMRUXNYNWDPUVPUWIYOYNYPVGYGYIYSYQYJYTYGAU
        UCUVOYRAUUFUVKUUAYG $.
    $}

    dchrinv.i $e |- I = ( invg ` G ) $.
    $( The inverse of a Dirichlet character is the conjugate (which is also the
       multiplicative inverse, because the values of ` X ` are unimodular).
       (Contributed by Mario Carneiro, 28-Apr-2016.) $)
    dchrinv $p |- ( ph -> ( I ` X ) = ( * o. X ) ) $=
      ( vx cfv ccj wceq co wcel cmul cc c1 cc0 vy ccom cplusg c0g cv czn cui wa
      wral cof cbs wf cmulr cur wne wi w3a cjf dchrf fco sylancr cn dchrrcl syl
      eqid dchrelbas3 simprd simp1d r19.21bi anasss fveq2d adantr unitss simprl
      mpbid sseldi ffvelrnd simprr cjmuld eqtrd crg ccrg nnnn0d zncrng crngring
      cn0 3syl ringcl syl3anc fvco3 syl2anc oveq12d 3eqtr4d ralrimivva ringidcl
      simp2d cr 1re cjre ax-mp syl6eq simp3d sylan cj0 eqcomi eqeq12d ffvelrnda
      a1i wb cj11 sylancl bitrd necon3bid imbi1d ralbidva mpbird 3jca mpbir2and
      0cn dchrmul fveq1d cabs cexp sseli sylan2 oveq2d absvalsqd dchrabs oveq1d
      c2 simpr sq1 3eqtr2d wfn cvv ffn fvexd adantl fnfvof syl22anc cgrp ablgrp
      dchr1 ralrimiva dchrmulcl cabl dchrabl grpidcl dchreq grpinvid1 ) AFDLMFU
      BZNZFUUKCUCLZOZCUDLZNZAUUPKUEZUUNLZUUQUUOLZNZKEUFLZUGLZUIAUUTKUVBAUUQUVBP
      ZUHZUURUUQFUUKQUJOZLZUUSUVDUUQUUNUVEAUUNUVENUVCABUUMCEFUUKUVAGUVAVEZHUUMV
      EZIAUUKBPZUVAUKLZRUUKULZUUQUAUEZUVAUMLZOZUUKLZUUQUUKLZUVLUUKLZQOZNZUAUVBU
      IKUVBUIZUVAUNLZUUKLZSNZUVPTUOZUVCUPZKUVJUIZUQARRMULUVJRFULZUVKURAUVJBCEFU
      VAGUVGHUVJVEZIUSZUVJRRMFUTVAZAUVTUWCUWFAUVSKUAUVBUVBAUVCUVLUVBPZUHZUHZUVN
      FLZMLZUUQFLZMLZUVLFLZMLZQOZUVOUVRUWMUWOUWPUWRQOZMLUWTUWMUWNUXAMAUVCUWKUWN
      UXANZUVDUXBUAUVBAUXBUAUVBUIZKUVBAUXCKUVBUIZUWAFLZSNZUWPTUOZUVCUPZKUVJUIZA
      UWGUXDUXFUXIUQZAFBPZUWGUXJUHIAKUAUVJBUVBCEFUVAGUVGUWHUVBVEZAUXKEVBPZIBCEF
      GHVCVDZHVFVOVGZVHVIVIVJVKUWMUWPUWRUWMUVJRUUQFAUWGUWLUWIVLZUWMUVBUVJUUQUVJ
      UVAUVBUWHUXLVMZAUVCUWKVNVPZVQUWMUVJRUVLFUXPUWMUVBUVJUVLUXQAUVCUWKVRVPZVQV
      SVTUWMUWGUVNUVJPZUVOUWONUXPUWMUVAWAPZUUQUVJPZUVLUVJPZUXTAUYAUWLAEWFPUVAWB
      PUYAAEUXNWCEUVAUVGWDUVAWEWGZVLUXRUXSUVJUVAUVMUUQUVLUWHUVMVEWHWIUVJRUVNMFW
      JWKUWMUVPUWQUVQUWSQUWMUWGUYBUVPUWQNZUXPUXRUVJRUUQMFWJZWKUWMUWGUYCUVQUWSNU
      XPUXSUVJRUVLMFWJWKWLWMWNAUWBUXEMLZSAUWGUWAUVJPZUWBUYGNUWIAUYAUYHUYDUVJUVA
      UWAUWHUWAVEWOVDUVJRUWAMFWJWKAUYGSMLZSAUXESMAUXDUXFUXIUXOWPVKSWQPUYISNWRSW
      SWTXAVTAUWFUXIAUXDUXFUXIUXOXBAUWEUXHKUVJAUYBUHZUWDUXGUVCUYJUVPTUWPTUYJUVP
      TNUWQTMLZNZUWPTNZUYJUVPUWQTUYKAUWGUYBUYEUWIUYFXCZTUYKNUYJUYKTXDXEXHXFUYJU
      WPRPZTRPUYLUYMXIAUVJRUUQFUWIXGZXSUWPTXJXKXLXMXNXOXPXQAKUAUVJBUVBCEUUKUVAG
      UVGUWHUXLUXNHVFXRZXTVLYAUVDUWPUVPQOZSUVFUUSUVDUYRUWPUWQQOUWPYBLZYJYCOZSUV
      DUVPUWQUWPQUVCAUYBUYEUVBUVJUUQUXQYDZUYNYEYFUVDUWPUVCAUYBUYOVUAUYPYEYGUVDU
      YTSYJYCOSUVDUYSSYJYCUVDUUQBUVBCEFUVAGHAUXKUVCIVLUVGUXLAUVCYKZYHYIYLXAYMUV
      DFUVJYNZUUKUVJYNZUVJYOPUYBUVFUYRNUVDUWGVUCAUWGUVCUWIVLUVJRFYPVDAVUDUVCAUV
      KVUDUWJUVJRUUKYPVDVLUVDUVAUKYQUVCUYBAVUAYRUVJQFUUKYOUUQYSYTUVDUUQUVBUUOCE
      UVAGUVGUUOVEZUXLAUXMUVCUXNVLVUBUUCWMVTUUDABUVBKCEUUNUUOUVAGUVGHUXLABUUMCE
      FUUKUVAGUVGHUVHIUYQUUEACUUAPZUUOBPAUXMCUUFPVUFUXNCEGUUGCUUBWGZBCUUOHVUEUU
      HVDUUIXPAVUFUXKUVIUULUUPXIVUGIUYQBUUMCDFUUKUUOHUVHVUEJUUJWIXP $.
  $}

  ${
    dchrabs2.g $e |- G = ( DChr ` N ) $.
    dchrabs2.d $e |- D = ( Base ` G ) $.
    dchrabs2.z $e |- Z = ( Z/nZ ` N ) $.
    dchrabs2.b $e |- B = ( Base ` Z ) $.
    dchrabs2.x $e |- ( ph -> X e. D ) $.
    dchrabs2.a $e |- ( ph -> A e. B ) $.
    $( A Dirichlet character takes values inside the unit circle.  (Contributed
       by Mario Carneiro, 3-May-2016.) $)
    dchrabs2 $p |- ( ph -> ( abs ` ( X ` A ) ) <_ 1 ) $=
      ( cfv c1 cle cc0 wa syl6eqbr cabs wbr wceq simpr abs00bd 0le1 wcel adantr
      wne cui eqid dchrn0 biimpa dchrabs 1le1 pm2.61dane ) ABGOZUAOZPQUBUQRAUQR
      UCZSZURRPQUTUQAUSUDUEUFTAUQRUIZSZURPPQVBBDHUJOZEFGHIJAGDUGVAMUHKVCUKZAVAB
      VCUGABCDVCEFGHIKJLVDMNULUMUNUOTUP $.
  $}

  ${
    $d x .1. $.  $d x B $.  $d x ph $.
    dchr1re.g $e |- G = ( DChr ` N ) $.
    dchr1re.z $e |- Z = ( Z/nZ ` N ) $.
    dchr1re.o $e |- .1. = ( 0g ` G ) $.
    dchr1re.b $e |- B = ( Base ` Z ) $.
    dchr1re.n $e |- ( ph -> N e. NN ) $.
    $( The principal Dirichlet character is a real character.  (Contributed by
       Mario Carneiro, 2-May-2016.) $)
    dchr1re $p |- ( ph -> .1. : B --> RR ) $=
      ( vx cfv cr wcel wf cc eqid wa cc0 wfn cv wral cbs cn cabl dchrabl ablgrp
      cgrp grpidcl 4syl dchrf ffn syl wceq simpr 0re syl6eqel wne c1 cui adantr
      ad2antrr dchrn0 biimpa dchr1 1re pm2.61dane ralrimiva ffnfv sylanbrc ) AC
      BUAZLUBZCMZNOZLBUCBNCPABQCPVLABDUDMZDECFGHVPRZJAEUEOZDUFODUIOCVPOZKDEGUGD
      UHVPDCVQIUJUKZULBQCUMUNAVOLBAVMBOZSZVOVNTWBVNTUOZSVNTNWBWCUPUQURWBVNTUSZS
      ZVNUTNWEVMFVAMZCDEFGHIWFRZAVRWAWDKVCWBWDVMWFOWBVMBVPWFDECFGHVQJWGAVSWAVTV
      BAWAUPVDVEVFVGURVHVILBNCVJVK $.
  $}

  ${
    $d a b h k m n x .1. $.  $d a b h k m n u v w x A $.  $d a b h k m u v I $.
    $d v x y B $.  $d h m u C $.  $d x G $.  $d a h i k m n u x H $.  $d x N $.
    $d a b h i k m n u v x W $.  $d a b h k m n u v x .x. $.  $d a b v x y X $.
    $d a b h m u v P $.  $d a h i k m n u x S $.  $d a b h k m n u v w x y Z $.
    $d a w x D $.  $d h m M $.  $d a b h i k m n v w x y ph $.  $d h m u T $.
    $d a b h m u v x y U $.
    dchrpt.g $e |- G = ( DChr ` N ) $.
    dchrpt.z $e |- Z = ( Z/nZ ` N ) $.
    dchrpt.d $e |- D = ( Base ` G ) $.
    dchrpt.b $e |- B = ( Base ` Z ) $.
    dchrpt.1 $e |- .1. = ( 1r ` Z ) $.
    dchrpt.n $e |- ( ph -> N e. NN ) $.
    dchrpt.n1 $e |- ( ph -> A =/= .1. ) $.
    ${
      dchrpt.u $e |- U = ( Unit ` Z ) $.
      dchrpt.h $e |- H = ( ( mulGrp ` Z ) |`s U ) $.
      dchrpt.m $e |- .x. = ( .g ` H ) $.
      dchrpt.s $e |- S = ( k e. dom W |->
        ran ( n e. ZZ |-> ( n .x. ( W ` k ) ) ) ) $.
      dchrpt.au $e |- ( ph -> A e. U ) $.
      dchrpt.w $e |- ( ph -> W e. Word U ) $.
      dchrpt.2 $e |- ( ph -> H dom DProd S ) $.
      dchrpt.3 $e |- ( ph -> ( H DProd S ) = U ) $.
      ${
        dchrpt.p $e |- P = ( H dProj S ) $.
        dchrpt.o $e |- O = ( od ` H ) $.
        dchrpt.t $e |- T = ( -u 1 ^c ( 2 / ( O ` ( W ` I ) ) ) ) $.
        dchrpt.i $e |- ( ph -> I e. dom W ) $.
        dchrpt.4 $e |- ( ph -> ( ( P ` I ) ` A ) =/= .1. ) $.
        dchrpt.5 $e |- X = ( u e. U |-> ( iota h E. m e. ZZ
          ( ( ( P ` I ) ` u ) = ( m .x. ( W ` I ) ) /\ h = ( T ^ m ) ) ) ) $.
        $( Lemma for ~ dchrpt .  (Contributed by Mario Carneiro,
           28-Apr-2016.) $)
        dchrptlem1 $p |- ( ( ( ph /\ C e. U ) /\ ( M e. ZZ /\
      ( ( P ` I ) ` C ) = ( M .x. ( W ` I ) ) ) ) -> ( X ` C ) = ( T ^ M ) ) $=
          ( wcel wa cz cfv co wceq cv cexp wrex cio fveq2 eqeq1d anbi1d rexbidv
          iotabidv iotaex fvmpt3i ad2antlr cvv ovex simpr simpllr simprd eqtr3d
          wb wi simp-4l simplr simpld cmin cdvds wbr cgrp cn0 crg nnnn0d zncrng
          ccrg crngring unitgrp 4syl adantr cc0 chash cfzo cword wf syl cdm fdm
          wrdf ffvelrnd simprl simprr c0g unitgrpbas eqid odcong syl112anc cmul
          eleqtrd cc wne c1 c2 neg1cn cr cn cfn sylancr a1i zcnd eqtrd eqeq2d
          caddc cneg cdiv ccxp 2re wss znfi ssfi sylancl odcl2 syl3anc ad2antrr
          unitss nndivre syl5eqel neg1ne0 cxpne0d neeq1i sylibr zsubcl syl22anc
          recnd cxpcl expaddz npcand oveq2d oveq1i syl2an biimpar syl5eq oveq1d
          root1eq1 expclzd mulid2d 3eqtr3d ex sylbird syl12anc biimpd rexlimdva
          mpd expimpd oveq1 oveq2 anbi12d rspcev expr adantl impbid iota5 mpan2
          ) AEKVGZVHZTVIVGZESGVJZVJZTSUCVJZJVKZVLZVHZVHZEUDVJZUWPOVMZUWQJVKZVLZ
          MVMZIUXCVNVKZVLZVHZOVIVOZMVPZITVNVKZUWLUXBUXKVLAUWTBEBVMZUWOVJZUXDVLZ
          UXHVHZOVIVOZMVPUXKKUDUXMEVLZUXQUXJMUXRUXPUXIOVIUXRUXOUXEUXHUXRUXNUWPU
          XDUXMEUWOVQVRVSVTWAVFUXQMWBWCWDUXAUXLWEVGZUXKUXLVLITVNWFUXAUXJMUXLWEU
          XAUXJUXFUXLVLZWKUXSUXAUXJUXTUXAUXIUXTOVIUXAUXCVIVGZVHZUXEUXHUXTUYBUXE
          VHZUXHUXTUYCUXGUXLUXFUYCUXDUWRVLZUXGUXLVLZUYCUWPUXDUWRUYBUXEWGUYCUWNU
          WSUWMUWTUYAUXEWHZWIWJUYCAUYAUWNUYDUYEWLAUWLUWTUYAUXEWMUXAUYAUXEWNUYCU
          WNUWSUYFWOAUYAUWNVHZVHZUYDUWQUBVJZUXCTWPVKZWQWRZUYEUYHRWSVGZUWQKVGZUY
          AUWNUYKUYDWKAUYLUYGAUAWTVGUEXDVGUEXAVGUYLAUAUKXBUAUEUGXCUEXEUEKRUMUNX
          FXGZXHAUYMUYGAXIUCXJVJXKVKZKSUCAUCKXLVGUYOKUCXMZURKUCXQXNZASUCXOZUYOV
          DAUYPUYRUYOVLUYQUYOKUCXPXNYGXRZXHAUYAUWNXSZAUYAUWNXTZUWQJRUXCTUBKRYAV
          JZUEKRUMUNYBZVBUOVUBYCYDYEUYHUYKUYEUYHUYKVHZIUYJTUUAVKZVNVKZIUYJVNVKZ
          UXLYFVKZUXGUXLVUDIYHVGIXIYIZUYJVIVGZUWNVUFVUHVLVUDIYJUUBZYKUYIUUCVKZU
          UDVKZYHVCVUDVUKYHVGZVULYHVGVUMYHVGYLVUDVULVUDYKYMVGUYIYNVGZVULYMVGUUE
          AVUOUYGUYKAUYLKYOVGZUYMVUOUYNADYOVGZKDUUFVUPAUAYNVGVUQUKDUAUEUGUIUUGX
          NDUEKUIUMUUMDKUUHUUIUYSUWQRUBKVUCVBUUJUUKZUULYKUYIUUNYPUVBZVUKVULUVCY
          PUUOZVUDVUMXIYIVUIVUDVUKVULVUNVUDYLYQVUKXIYIVUDUUPYQVUSUUQIVUMXIVCUUR
          UUSZUYGVUJAUYKUXCTUUTZWDUYHUWNUYKVUAXHZIUYJTUVDUVAVUDVUEUXCIVNVUDUXCT
          VUDUXCUYHUYAUYKUYTXHYRVUDTVVCYRUVEUVFVUDVUHYJUXLYFVKUXLVUDVUGYJUXLYFV
          UDVUGVUMUYJVNVKZYJIVUMUYJVNVCUVGUYHVVDYJVLZUYKAVUOVUJVVEUYKWKUYGVURVV
          BUYJUYIUVLUVHUVIUVJUVKVUDUXLVUDITVUTVVAVVCUVMUVNYSUVOUVPUVQUVRUWAYTUV
          SUWBUVTUWTUXTUXJWLUWMUWNUWSUXTUXJUXIUWSUXTVHOTVIUXCTVLZUXEUWSUXHUXTVV
          FUXDUWRUWPUXCTUWQJUWCYTVVFUXGUXLUXFUXCTIVNUWDYTUWEUWFUWGUWHUWIXHUWJUW
          KYS $.

        $( Lemma for ~ dchrpt .  (Contributed by Mario Carneiro,
           28-Apr-2016.) $)
        dchrptlem2 $p |- ( ph -> E. x e. D ( x ` A ) =/= 1 ) $=
          ( vv vy va vb cv wcel cfv cc0 cif cmpt c1 wne wrex cmulr co cur fveq2
          wa wceq cc cz crn cdprd wf cdm zex mptex rnex dmmpti dpjf feq2d mpbid
          a1i adantr oveq1 oveq2d fvmpt3i syl eleqtrd eqid ovex cexp dchrptlem1
          syl5eq c2 neg1cn cr cn cfn syl3anc sylancr ad2antrr simprl weq eqeq1d
          cmul rexbidv rspcv sylc syl22anc oveq12d cghm cress cvv eqeltri ax-mp
          simprr syl6eq cui fvex 3eqtr4d eqtrd wb syl2anc eqnetrd cbvmptv rneqd
          ffvelrnda mpteq2dv elrnmpti sylib cneg cdiv ccxp 2re cgrp ccrg nnnn0d
          crg cn0 zncrng crngring 3syl unitgrp wss znfi ssfi sylancl chash cfzo
          cword wrdf fdm ffvelrnd unitgrpbas odcl2 nndivre recnd cxpcl syl5eqel
          unitss neg1ne0 cxpne0d neeq1i sylibr expclzd rexlimddv wral ralrimiva
          eqeltrd eqeq2d cbvrexv syl6bb caddc simprll simprlr expaddz unitmulcl
          reeanv simpll zaddcld simprrl dpjghm ressid oveq1d mgpplusg ressplusg
          simprrr cmgp cplusg ghmlin mulgdir syl13anc rexlimdvva syl5bir mp2and
          id 1unit 0zd c0g ghmid unitgrpid fveq2d mulg0 exp0d dchrelbasd sseldi
          expr eleq1 ifbieq1d c0ex ifex iftrued wi oveq1i cdvds oddvds root1eq1
          eqeq12d 3bitr4d necon3bid mpbird rexlimdvaa mpdan fveq1 neeq1d rspcev
          wbr mpd ) AVFEVFVJZKVKZVUEUCVLZVMVNZVOZFVKDVUIVLZVPVQZDBVJZVLZVPVQZBF
[encoded data, 4400 characters]
          ULVUIUYTVUAVUBYS $.
      $}

      $( Lemma for ~ dchrpt .  (Contributed by Mario Carneiro, 28-Apr-2016.) $)
      dchrptlem3 $p |- ( ph -> E. x e. D ( x ` A ) =/= 1 ) $=
        ( va vh vi vu vm cv cdpj co cfv wceq wn cdm wrex wne wral cmpt cgsu c0g
        c1 cmnd wcel cvv cgrp crg cn0 nnnn0d zncrng syl crngring unitgrp grpmnd
        ccrg cword dmexg eqid gsumz syl2anc unitgrpid mpteq2dv 3eqtr4d neeqtrrd
        oveq2d cfsupp wbr cixp crab cz crn zex mptex rnex dmmpti cdprd eleqtrrd
        a1i wa adantr dprdf2 ffvelrnda subg0cl eqeltrd csn cxp cur fvex eqeltri
        csubg fczfsuppd fconstmpt eqcomi eqcomd 3brtr4d dprdwd dpjeq necon3abid
        mpbid rexnal sylibr df-ne cneg c2 cod cdiv ccxp cexp cio simprl simprr
        cn dchrptlem2 expr syl5bir rexlimdva mpd ) ACULUQZMFURUSZUTZUTZIVAZVBZU
        LOVCZVDZCBUQUTVJVEBEVDZAUUJULUULVFZVBZUUMACMULUULIVGZVHUSZVEUUPACIUURUC
        AMULUULMVIUTZVGZVHUSZUUSUURIAMVKVLZUULVMVLZUVAUUSVAAMVNVLZUVBAPVOVLZUVD
        APWCVLZUVEANVPVLUVFANUBVQNPRVRVSPVTVSZPHMUDUEWAVSMWBVSAOHWDZVLZUVCUIOUV
        HWEVSZUULULMVMUUSUUSWFZWGWHAUUQUUTMVHAULUULIUUSAUVEIUUSVAZUVGPHIMUDUEUA
        WIVSZWJWMUVMWKWLAUUOCUURAULCIUUGFUMUNMUULUMUQZUUSWNWOUMUNUULUNUQFUTWPWQ
        ZUUSUJFVCUULVAAJUULKWRKUQJUQOUTGUSZVGZWSFUVQKWRUVPWTXAXBUGXCXFZUUGWFZAC
        HMFXDUSZUHUKXEUVKUVOWFZAULIFUMUNMUULUVOUUSUWAUJUVRAUUFUULVLZXGZIUUSUUFF
        UTZAUVLUWBUVMXHUWCUWDMXRUTZVLUUSUWDVLAUULUWEUUFFAFMUULUJUVRXIXJUWDMUUSU
        VKXKVSXLAUULIXMXNZIUUQUUSWNAUULVMVMIUVJIVMVLAIPXOUTVMUAPXOXPXQXFXSUUQUW
        FVAAUWFUUQULUULIXTYAXFAIUUSUVMYBYCYDYEYFYGUUJULUULYHYIAUUKUUNULUULUUKUU
        IIVEZUWCUUNUUIIYJAUWBUWGUUNAUWBUWGXGZXGBUOCDEUUGFVJYKYLUUFOUTZMYMUTZUTY
        NUSYOUSZGHIUMJUPKLMUUFNUWJOUOHUOUQUUHUTUPUQZUWIGUSVAUVNUWKUWLYPUSVAXGUP
        WRVDUMYQVGZPQRSTUAANYTVLUWHUBXHACIVEUWHUCXHUDUEUFUGACHVLUWHUHXHAUVIUWHU
        IXHAMFXDVCWOUWHUJXHAUVTHVAUWHUKXHUVSUWJWFUWKWFAUWBUWGYRAUWBUWGYSUWMWFUU
        AUUBUUCUUDUUE $.
    $}

    dchrpt.a $e |- ( ph -> A e. B ) $.
    $( For any element other than 1, there is a Dirichlet character that is not
       one at the given element.  (Contributed by Mario Carneiro,
       28-Apr-2016.) $)
    dchrpt $p |- ( ph -> E. x e. D ( x ` A ) =/= 1 ) $=
      ( cfv wcel cv vw vu vk vn va vb cui c1 wne wrex wa cdm cmgp cress co ccyg
      cpgp crn cin csubg crab cz cmg cmpt wf cdprd wbr wceq w3a cword ad3antrrr
      cn oveq1 cbvmptv fveq2 oveq2d mpteq2dv syl5eq rneqd simpllr simplr simprl
      eqid simprr dchrptlem3 3adantr1 unitgrpbas cabl cn0 nnnn0d zncrng unitabl
      ccrg 3syl adantr cfn wss znfi syl unitss ssfi sylancl ablfac2 r19.29a c0g
      cgrp dchrabl ablgrp grpidcl 4syl cc0 0ne1 dchrn0 necon1bbid biimpa neeq1d
      wn mpbiri fveq1 rspcev syl2anc pm2.61dan ) ACIUGRZSZCBTZRZUHUIZBEUJZAYDUK
      ZUATZULZIUMRYCUNUOZUBTUNUOUPUQURUSSUBYLUTRVAZUCYKUDVBUDTZUCTZYJRZYLVCRZUO
      ZVDZURZVDZVEZYLUUAVFULVGZYLUUAVFUOYCVHZVIYHUAYCVJZYIYJUUESZUKZUUCUUDYHUUB
      UUGUUCUUDUKZUKBCDEUUAYQYCFUEUFGYLHYJIJKLMNAHVLSZYDUUFUUHOVKACFUIYDUUFUUHP
      VKYCWCZYLWCZYQWCZUCUEYKYTUFVBUFTZUETZYJRZYQUOZVDZURYOUUNVHZYSUUQUURYSUFVB
      UUMYPYQUOZVDUUQUDUFVBYRUUSYNUUMYPYQVMVNUURUFVBUUSUUPUURYPUUOUUMYQYOUUNYJV
      OVPVQVRVSVNAYDUUFUUHVTYIUUFUUHWAUUGUUCUUDWBUUGUUCUUDWDWEWFYIUAYCYMUUAYQUC
      UDYLUBIYCYLUUJUUKWGYMWCAYLWHSZYDAHWISIWMSUUTAHOWJHIKWKIYCYLUUJUUKWLWNWOAY
      CWPSZYDADWPSZYCDWQUVAAUUIUVBODHIKMWRWSDIYCMUUJWTDYCXAXBWOUULUUAWCXCXDAYDX
      QZUKZGXERZESZCUVERZUHUIZYHAUVFUVCAUUIGWHSGXFSUVFOGHJXGGXHEGUVELUVEWCXIXJZ
      WOUVDUVHXKUHUIXLUVDUVGXKUHAUVCUVGXKVHAYDUVGXKACDEYCGHUVEIJKLMUUJUVIQXMXNX
      OXPXRYGUVHBUVEEYEUVEVHYFUVGUHCYEUVEXSXPXTYAYB $.
  $}

  ${
    $d a k .1. $.  $d a B $.  $d a k x ph $.  $d a b c k x U $.  $d a k x X $.
    $d a b c k x Z $.
    dchrsum.g $e |- G = ( DChr ` N ) $.
    dchrsum.z $e |- Z = ( Z/nZ ` N ) $.
    dchrsum.d $e |- D = ( Base ` G ) $.
    dchrsum.1 $e |- .1. = ( 0g ` G ) $.
    dchrsum.x $e |- ( ph -> X e. D ) $.
    ${
      dchrsum2.u $e |- U = ( Unit ` Z ) $.
      $( An orthogonality relation for Dirichlet characters: the sum of all the
         values of a Dirichlet character ` X ` is ` 0 ` if ` X ` is
         non-principal and ` phi ( n ) ` otherwise.  Part of Theorem 6.5.1 of
         [Shapiro] p. 230.  (Contributed by Mario Carneiro, 28-Apr-2016.) $)
      dchrsum2 $p |- ( ph ->
        sum_ a e. U ( X ` a ) = if ( X = .1. , ( phi ` N ) , 0 ) ) $=
        ( wceq cfv c1 wcel co vk vx vb vc cv csu cphi cc0 cif eqeq2 wa fveq1 cn
        dchrrcl syl adantr simpr dchr1 sylan9eqr an32s sumeq2dv cmul cfn cc cn0
        chash znunithash phicld nnnn0d eqeltrd cvv wb cui eqeltri hashclb ax-mp
        fvex sylibr ax-1cn fsumconst sylancl oveq1d nncnd mulid1d eqtrd wn wrex
        3eqtrd wral cabl cgrp dchrabl ablgrp grpidcl 4syl dchreq notbid syl6bbr
        rexnal wne df-ne neeq2d cmin cbs eqid dchrf unitss sseli ffvelrn syl2an
        wf adantlr fsumcl simprl sseldi ffvelrnd simprr subeq0 necon3bid mpbird
        0cnd subcl cmulr oveq2 fveq2d cbvsumv cmgp ccnfld cmhm dchrmhm ad2antrr
        adantl mgpbas mgpplusg cnfldmul mhmlin syl3anc syl5eq cmpt sylbid fveq2
        cress wf1o ccrg crg zncrng crngring unitgrp unitgrpbas cplusg ressplusg
        grplactf1o syl2anc grplactval fsumf1o fsummulc2 3eqtr4rd mulid2d subidd
        oveq12d 1cnd subdird mul01d 3eqtr4d mulcanad expr syl5bir rexlimdva imp
        sylan ifbothda ) GDPZCIUEZGQZIUFZFUGQZPUVOUHPZUVOUVLUVPUHUIZPAUVPUHUVPU
        VRUVOUJUHUVRUVOUJAUVLUKZUVOCRIUFZUVPUVSCUVNRIAUVMCSZUVLUVNRPUVLAUWAUKZU
        VNUVMDQRUVMGDULUWBUVMCDEFHJKMOAFUMSZUWAAGBSUWCNBEFGJLUNUOZUPAUWAUQURUSU
        TVAAUVTUVPPUVLAUVTCVFQZRVBTZUVPRVBTUVPACVCSZRVDSZUVTUWFPAUWEVESZUWGAUWE
        UVPVEAUWCUWEUVPPUWDCFHKOVGUOZAUVPAFUWDVHZVIVJCVKSZUWGUWIVLCHVMQVKOHVMVQ
        VNZCVKVOVPVRZVSCRIVTWAAUWEUVPRVBUWJWBAUVPAUVPUWKWCWDWHUPWEAUVLWFZUVQAUW
        OUAUEZGQZUWPDQZPZWFZUACWGZUVQAUWOUWSUACWIZWFUXAAUVLUXBABCUAEFGDHJKLONAU
        WCEWJSEWKSDBSUWDEFJWLEWMBEDLMWNWOWPWQUWSUACWSWRAUWTUVQUACUWTUWQUWRWTZAU
        WPCSZUKZUVQUWQUWRXAUXEUXCUWQRWTZUVQUXEUWRRUWQUXEUWPCDEFHJKMOAUWCUXDUWDU
        PAUXDUQURXBAUXDUXFUVQAUXDUXFUKZUKZUVOUHUWQRXCTZUXHCUVNIAUWGUXGUWNUPZAUW
        AUVNVDSZUXGAHXDQZVDGXKZUVMUXLSZUXKUWAAUXLBEFGHJKLUXLXEZNXFZCUXLUVMUXLHC
        UXOOXGZXHZUXLVDUVMGXIXJXLZXMZUXHYAUXHUWQVDSZUWHUXIVDSUXHUXLVDUWPGAUXMUX
        GUXPUPUXHCUXLUWPUXQAUXDUXFXNZXOZXPZVSUWQRYBWAZUXHUXIUHWTUXFAUXDUXFXQUXH
        UXIUHUWQRUXHUYAUWHUXIUHPUWQRPVLUYDVSUWQRXRWAXSXTUXHUWQUVOVBTZRUVOVBTZXC
        TZUHUXIUVOVBTUXIUHVBTUXHUYHUVOUVOXCTUHUXHUYFUVOUYGUVOXCUXHCUWPUBUEZHYCQ
        ZTZGQZUBUFZCUWQUVNVBTZIUFZUVOUYFUXHUYMCUWPUVMUYJTZGQZIUFUYOCUYLUYQUBIUY
        IUVMPUYKUYPGUYIUVMUWPUYJYDYEYFUXHCUYQUYNIUXHUWAUKGHYGQZYHYGQZYITZSZUWPU
        XLSZUXNUYQUYNPAVUAUXGUWAABUYTGBEFHJKLYJNXOYKUXHVUBUWAUYCUPUWAUXNUXHUXRY
        LUXLUYJVBUYRUYSGUWPUVMUXLHUYRUYRXEZUXOYMHUYJUYRVUCUYJXEYNZYHVBUYSUYSXEY
        OYNYPYQVAYRUXHCUVNCUYLIUBUWPUCCUDCUCUEUDUEUYJTYSYSZQZUYKUVMUYKGUUAUXJUX
        HUYRCUUBTZWKSZUXDCCVUFUUCAVUHUXGAFVESHUUDSHUUESVUHAFUWDVIFHKUUFHUUGHCVU
        GOVUGXEZUUHWOUPUYBUWPUYJUCVUEVUGCUDVUEXEZHCVUGOVUIUUIZUWLUYJVUGUUJQPUWM
        CUYJUYRVUGVKVUIVUDUUKVPUULUUMUXHUXDUYICSUYIVUFQUYKPUYBUWPUYIUYJUCVUEVUG
        CUDVUJVUKUUNUVJUXSUUOUXHCUVNUWQIUXJUYDUXSUUPUUQUXHUVOUXTUURUUTUXHUVOUXT
        UUSWEUXHUWQRUVOUYDUXHUVAUXTUVBUXHUXIUYEUVCUVDUVEUVFYTUVGUVHYTUVIUVK $.
    $}

    dchrsum.b $e |- B = ( Base ` Z ) $.
    $( An orthogonality relation for Dirichlet characters: the sum of all the
       values of a Dirichlet character ` X ` is ` 0 ` if ` X ` is non-principal
       and ` phi ( n ) ` otherwise.  Part of Theorem 6.5.1 of [Shapiro] p. 230.
       (Contributed by Mario Carneiro, 28-Apr-2016.) $)
    dchrsum $p |- ( ph ->
      sum_ a e. B ( X ` a ) = if ( X = .1. , ( phi ` N ) , 0 ) ) $=
      ( cfv csu cc0 cc wcel cui cv wceq cphi cif wss eqid unitss wf dchrf sseli
      a1i ffvelrn syl2an cdif wn wa eldif wne adantr simpr dchrn0 necon1bd impr
      biimpd sylan2b cn cfn dchrrcl znfi 3syl fsumss dchrsum2 eqtr3d ) AHUAPZIU
      BZGPZIQBVQIQGDUCFUDPRUEAVOBVQIVOBUFABHVOOVOUGZUHZULABSGUIVPBTZVQSTVPVOTZA
      BCEFGHJKLONUJVOBVPVSUKBSVPGUMUNVPBVOUOTAVTWAUPZUQVQRUCZVPBVOURAVTWBWCAVTU
      QZWAVQRWDVQRUSWAWDVPBCVOEFGHJKLOVRAGCTZVTNUTAVTVAVBVEVCVDVFAWEFVGTBVHTNCE
      FGJLVIBFHKOVJVKVLACVODEFGHIJKLMNVRVMVN $.
  $}

  ${
    $d x y z .1. $.  $d x y z A $.  $d y B $.  $d a b x y z D $.  $d a x y N $.
    $d a b x y z G $.  $d x y z ph $.  $d y Z $.
    sumdchr.g $e |- G = ( DChr ` N ) $.
    sumdchr.d $e |- D = ( Base ` G ) $.
    ${
      sumdchr2.z $e |- Z = ( Z/nZ ` N ) $.
      sumdchr2.1 $e |- .1. = ( 1r ` Z ) $.
      sumdchr2.b $e |- B = ( Base ` Z ) $.
      sumdchr2.n $e |- ( ph -> N e. NN ) $.
      sumdchr2.x $e |- ( ph -> A e. B ) $.
      $( Lemma for ~ sumdchr .  (Contributed by Mario Carneiro,
         28-Apr-2016.) $)
      sumdchr2 $p |- ( ph ->
        sum_ x e. D ( x ` A ) = if ( A = .1. , ( # ` D ) , 0 ) ) $=
        ( wceq c1 wcel co vy vz va vb cv cfv csu chash cc0 cif eqeq2 fveq2 cmgp
        wa ccnfld cmhm dchrmhm simpr sseldi eqid ringidval cnfld1 syl sylan9eqr
        mhm0 an32s sumeq2dv cmul cfn dchrfi ax-1cn fsumconst sylancl cn0 hashcl
        cc cn 3syl nn0cnd mulid1d eqtrd adantr wn wne df-ne cmin dchrf ffvelrnd
        dchrpt fsumcl 0cnd simprl subcl simprr wb subeq0 necon3bid mpbird oveq2
        cplusg fveq1d cbvsumv cof dchrmul wfn cvv wf ffn cbs eqeltri a1i fnfvof
        fvex syl5eq cmpt fveq1 cgrp wf1o cabl dchrabl ablgrp grplactf1o syl2anc
        syl22anc sylan fsumf1o fsummulc2 3eqtr4rd mulid2d oveq12d subidd mul01d
        grplactval subdird 3eqtr4d mulcanad rexlimddv sylan2br ifbothda ) CFQZE
        CBUEZUFZBUGZEUHUFZQUUCUIQZUUCYTUUDUIUJZQAUUDUIUUDUUFUUCUKUIUUFUUCUKAYTU
        NZUUCERBUGZUUDUUGEUUBRBAUUAESZYTUUBRQYTAUUIUNZUUBFUUAUFZRCFUUAULUUJUUAI
        UMUFZUOUMUFZUPTZSUUKRQUUJEUUNUUAEGHIJLKUQAUUIURUSUULUUMUUARFIFUULUULUTM
        VAUORUUMUUMUTVBVAVEVCVDVFVGAUUHUUDQYTAUUHUUDRVHTZUUDAEVISZRVPSZUUHUUOQA
        HVQSZUUPOEGHJKVJZVCVKERBVLVMAUUDAUUDAUURUUPUUDVNSOUUSEVOVRVSVTWAWBWAYTW
        CACFWDZUUECFWEAUUTUNZCUAUEZUFZRWDZUUEUAEUVAUACDEFGHIJLKNMAUURUUTOWBZAUU
        TURACDSZUUTPWBZWIUVAUVBESZUVDUNZUNZUUCUIUVCRWFTZUVJEUUBBUVJUURUUPUVAUUR
        UVIUVEWBZUUSVCZUVJUUIUNZDVPCUUAUVNDEGHUUAIJLKNUVJUUIURZWGZUVJUVFUUIUVAU
        VFUVIUVGWBZWBZWHZWJZUVJWKUVJUVCVPSZUUQUVKVPSUVJDVPCUVBUVJDEGHUVBIJLKNUV
        AUVHUVDWLZWGZUVQWHZVKUVCRWMVMZUVJUVKUIWDUVDUVAUVHUVDWNUVJUVKUIUVCRUVJUW
        AUUQUVKUIQUVCRQWOUWDVKUVCRWPVMWQWRUVJUVCUUCVHTZRUUCVHTZWFTZUIUVKUUCVHTU
        VKUIVHTUVJUWHUUCUUCWFTUIUVJUWFUUCUWGUUCWFUVJECUVBUBUEZGWTUFZTZUFZUBUGZE
        UVCUUBVHTZBUGZUUCUWFUVJUWMECUVBUUAUWJTZUFZBUGUWOEUWLUWQUBBUWIUUAQCUWKUW
        PUWIUUAUVBUWJWSXAXBUVJEUWQUWNBUVNUWQCUVBUUAVHXCTZUFZUWNUVNCUWPUWRUVNEUW
        JGHUVBUUAIJLKUWJUTZUVJUVHUUIUWBWBUVOXDXAUVNUVBDXEZUUADXEZDXFSZUVFUWSUWN
        QUVNDVPUVBXGZUXAUVJUXDUUIUWCWBDVPUVBXHVCUVNDVPUUAXGUXBUVPDVPUUAXHVCUXCU
        VNDIXIUFXFNIXIXMXJXKUVRDVHUVBUUAXFCXLYDWAVGXNUVJEUUBEUWLBUBUVBUCEUDEUCU
        EUDUEUWJTXOXOZUFZUWKCUUAUWKXPUVMUVJGXQSZUVHEEUXFXRUVJUURGXSSUXGUVLGHJXT
        GYAVRUWBUVBUWJUCUXEGEUDUXEUTZKUWTYBYCUVJUVHUWIESUWIUXFUFUWKQUWBUVBUWIUW
        JUCUXEGEUDUXHKYMYEUVSYFUVJEUUBUVCBUVMUWDUVSYGYHUVJUUCUVTYIYJUVJUUCUVTYK
        WAUVJUVCRUUCUWDUUQUVJVKXKUVTYNUVJUVKUWEYLYOYPYQYRYS $.
    $}

    $( There are exactly ` phi ( N ) ` Dirichlet characters modulo ` N ` .
       Part of Theorem 6.5.1 of [Shapiro] p. 230.  (Contributed by Mario
       Carneiro, 28-Apr-2016.) $)
    dchrhash $p |- ( N e. NN -> ( # ` D ) = ( phi ` N ) ) $=
      ( va vx wcel cfv csn csu cv cc0 cif eqid wa cc wceq simpr wss czn cur c0g
      cn chash cphi cbs znfi dchrfi simprr dchrf simprl ffvelrnd simpl sumdchr2
      fsumcom wb velsn ifbi mp1i eqtr4d sumeq2dv dchrsum 3eqtr3d cuz cfn wo cn0
      wral ccrg crg nnnn0 zncrng crngring ringidcl 4syl snssd hashcl nn0cn 3syl
      ralrimivw olcd sumss2 syl21anc dchrabl ablgrp grpidcl phicl nncnd 3eqtr4d
      cabl cgrp eqidd sumsn syl2anc ) CUDHZCUAIZUBIZJZAUEIZFKZBUCIZJZCUFIZGKZWT
      XDWPWQUGIZFLZWSHZWTMNZFKZAGLZXCHZXDMNZGKZXAXEWPXFAXGXKIZGKZFKAXFXOFKZGKXJ
      XNWPXFAXOFGXFCWQWQOZXFOZUHZABCDEUIZWPXGXFHZXKAHZPPZXFQXGXKYDXFABCXKWQDXRE
      XSWPYBYCUJUKWPYBYCULUMUPWPXFXPXIFWPYBPZXPXGWRRZWTMNZXIYEGXGXFAWRBCWQDEXRW
      ROZXSWPYBUNWPYBSUOXHYFUQXIYGRYEFWRURXHYFWTMUSUTVAVBWPAXQXMGWPYCPZXQXKXBRZ
      XDMNZXMYIXFAXBBCXKWQFDXREXBOZWPYCSXSVCXLYJUQXMYKRYIGXBURXLYJXDMUSUTVAVBVD
      WPWSXFTWTQHZFWSVIXFMVEIZTZXFVFHZVGXAXJRWPWRXFWPCVHHWQVJHWQVKHWRXFHZCVLCWQ
      XRVMWQVNXFWQWRXSYHVOVPZVQWPYMFWSWPAVFHZWTVHHYMYAAVRWTVSVTZWAWPYPYOXTWBWSX
      FWTFMWCWDWPXCATXDQHZGXCVIAYNTZYSVGXEXNRWPXBAWPBWKHBWLHXBAHZBCDWEBWFABXBEY
      LWGVTZVQWPUUAGXCWPXDCWHWIZWAWPYSUUBYAWBXCAXDGMWCWDWJWPYQYMXAWTRYRYTWTWTFW
      RXFYFWTWMWNWOWPUUCUUAXEXDRUUDUUEXDXDGXBAYJXDWMWNWOVD $.

    sumdchr.z $e |- Z = ( Z/nZ ` N ) $.
    sumdchr.1 $e |- .1. = ( 1r ` Z ) $.
    sumdchr.b $e |- B = ( Base ` Z ) $.
    sumdchr.n $e |- ( ph -> N e. NN ) $.
    sumdchr.a $e |- ( ph -> A e. B ) $.
    $( An orthogonality relation for Dirichlet characters: the sum of
       ` x ( A ) ` for fixed ` A ` and all ` x ` is ` 0 ` if ` A = 1 ` and
       ` phi ( n ) ` otherwise.  Theorem 6.5.1 of [Shapiro] p. 230.
       (Contributed by Mario Carneiro, 28-Apr-2016.) $)
    sumdchr $p |- ( ph ->
      sum_ x e. D ( x ` A ) = if ( A = .1. , ( phi ` N ) , 0 ) ) $=
      ( cfv wceq cc0 cif cv csu chash cphi sumdchr2 cn wcel dchrhash syl ifeq1d
      eqtrd ) AECBUAQBUBCFRZEUCQZSTULHUDQZSTABCDEFGHIJKLMNOPUEAULUMUNSAHUFUGUMU
      NROEGHJKUHUIUJUK $.
  $}

  ${
    $d a B $.  $d a G $.  $d a ph $.  $d a X $.  $d a Y $.  $d a Z $.
    dchr2sum.g $e |- G = ( DChr ` N ) $.
    dchr2sum.z $e |- Z = ( Z/nZ ` N ) $.
    dchr2sum.d $e |- D = ( Base ` G ) $.
    dchr2sum.b $e |- B = ( Base ` Z ) $.
    dchr2sum.x $e |- ( ph -> X e. D ) $.
    dchr2sum.y $e |- ( ph -> Y e. D ) $.
    $( An orthogonality relation for Dirichlet characters: the sum of
       ` X ( a ) x. * Y ( a ) ` over all ` a ` is nonzero only when ` X = Y ` .
       Part of Theorem 6.5.2 of [Shapiro] p. 232.  (Contributed by Mario
       Carneiro, 28-Apr-2016.) $)
    dchr2sum $p |- ( ph -> sum_ a e. B ( ( X ` a ) x. ( * ` ( Y ` a ) ) ) =
      if ( X = Y , ( phi ` N ) , 0 ) ) $=
      ( cfv co wceq wcel cc cv csg csu c0g cphi cc0 cif ccj cmul eqid cgrp cabl
      cn dchrrcl dchrabl ablgrp 3syl grpsubcl syl3anc dchrsum wa cminusg cplusg
      syl cof adantr grpsubval syl2anc grpinvcl dchrmul eqtrd fveq1d wfn cvv wf
      dchrf ffn cbs fvex eqeltri a1i simpr fnfvof syl22anc dchrinv fvco3 oveq2d
      ccom 3eqtrd sumeq2dv wb grpsubeq0 ifbid 3eqtr3d ) ABIUAZFGDUBPZQZPZIUCWQD
      UDPZRZEUEPZUFUGBWOFPZWOGPUHPZUIQZIUCFGRZXAUFUGABCWSDEWQHIJKLWSUJZADUKSZFC
      SZGCSZWQCSAEUMSZDULSZXGAXHXJNCDEFJLUNVDZDEJUOZDUPZUQZNOCDWPFGLWPUJZURUSMU
      TABWRXDIAWOBSZVAZWRWOFGDVBPZPZUIVEQZPZXBWOXTPZUIQZXDXRWOWQYAXRWQFXTDVCPZQ
      ZYAXRXHXIWQYFRAXHXQNVFZAXIXQOVFZCYEDXSWPFGLYEUJZXSUJZXPVGVHXRCYEDEFXTHJKL
      YIYGXRXGXIXTCSXRXJXKXGAXJXQXLVFXMXNUQYHCDXSGLYJVIVHZVJVKVLXRFBVMZXTBVMZBV
      NSZXQYBYDRXRBTFVOYLXRBCDEFHJKLMYGVPBTFVQVDXRBTXTVOYMXRBCDEXTHJKLMYKVPBTXT
      VQVDYNXRBHVRPVNMHVRVSVTWAAXQWBZBUIFXTVNWOWCWDXRYCXCXBUIXRYCWOUHGWHZPZXCXR
      WOXTYPXRCDXSEGJLYHYJWEVLXRBTGVOXQYQXCRXRBCDEGHJKLMYHVPYOBTWOUHGWFVHVKWGWI
      WJAWTXEXAUFAXGXHXIWTXEWKXONOCDWPFGWSLXFXPWLUSWMWN $.
  $}

  ${
    $d x A $.  $d x C $.  $d x D $.  $d x G $.  $d x N $.  $d x ph $.
    $d x Z $.
    sum2dchr.g $e |- G = ( DChr ` N ) $.
    sum2dchr.d $e |- D = ( Base ` G ) $.
    sum2dchr.z $e |- Z = ( Z/nZ ` N ) $.
    sum2dchr.b $e |- B = ( Base ` Z ) $.
    sum2dchr.u $e |- U = ( Unit ` Z ) $.
    sum2dchr.n $e |- ( ph -> N e. NN ) $.
    sum2dchr.a $e |- ( ph -> A e. B ) $.
    sum2dchr.c $e |- ( ph -> C e. U ) $.
    $( An orthogonality relation for Dirichlet characters: the sum of
       ` x ( A ) ` for fixed ` A ` and all ` x ` is ` 0 ` if ` A = 1 ` and
       ` phi ( n ) ` otherwise.  Part of Theorem 6.5.2 of [Shapiro] p. 232.
       (Contributed by Mario Carneiro, 28-Apr-2016.) $)
    sum2dchr $p |- ( ph -> sum_ x e. D ( ( x ` A ) x. ( * ` ( x ` C ) ) ) =
      if ( A = C , ( phi ` N ) , 0 ) ) $=
      ( cfv co cdvr csu cur wceq cphi cc0 cif ccj cmul eqid crg wcel cn0 nnnn0d
      cv ccrg zncrng crngring 3syl dvrcl syl3anc sumdchr wa cinvr cmulr syl2anc
      dvrval adantr fveq2d cmgp ccnfld dchrmhm sseldi unitss unitinvcl mgpplusg
      cmhm simpr mgpbas cnfldmul mhmlin cres cress cdif cghm dchrghm unitgrpbas
      cc csn invrfval cnfldbas cnfld0 cndrng drngui ghminv fvres syl cdiv dchrf
      c1 wne ffvelrnd dchrn0 mpbird cnfldinv cabs c2 cexp recval dchrabs oveq1d
      sq1 syl6eq oveq2d cjcld div1d 3eqtrd 3eqtr3d sumeq2dv wb dvreq1 ifbid ) A
      FCEJUASZTZBUOZSZBUBYDJUCSZUDZIUESZUFUGFCYESZEYESZUHSZUITZBUBCEUDZYIUFUGAB
      YDDFYGHIJKLMYGUJZNPAJUKULZCDULZEGULZYDDULAIUMULJUPULYPAIPUNIJMUQJURUSZQRD
      YCJGCENOYCUJZUTVAVBAFYFYMBAYEFULZVCZYFCEJVDSZSZJVESZTZYESZYJUUDYESZUITZYM
      UUBYDUUFYEAYDUUFUDZUUAAYQYRUUJQRDYCJUUEGUUCCENUUEUJZOUUCUJZYTVGVFVHVIUUBY
      EJVJSZVKVJSZVQTZULYQUUDDULUUGUUIUDUUBFUUOYEFHIJKMLVLAUUAVRZVMAYQUUAQVHUUB
      GDUUDDJGNOVNZAUUDGULZUUAAYPYRUURYSRJGUUCEOUULVOVFVHZVMDUUEUIUUMUUNYECUUDD
      JUUMUUMUJZNVSJUUEUUMUUTUUKVPVKUIUUNUUNUJVTVPWAVAUUBUUHYLYJUIUUBUUDYEGWBZS
      ZEUVASZVKVDSZSZUUHYLUUBUVAUUMGWCTZUUNWHUFWIWDZWCTZWETULYRUVBUVEUDUUBFGHUV
      FUVHIYEJKMLOUVFUJZUVHUJZUUPWFAYRUUARVHZGUVFUVHUVAUUCUVDEJGUVFOUVIWGJGUVFU
      UCOUVIUULWJVKUVGUVHUVDWHVKUFWKWLWMWNUVJUVDUJWJWOVFUUBUURUVBUUHUDUUSUUDGYE
      WPWQUUBUVEYKUVDSZWTYKWRTZYLUUBUVCYKUVDUUBYRUVCYKUDUVKEGYEWPWQVIUUBYKWHULZ
      YKUFXAZUVLUVMUDUUBDWHEYEUUBDFHIYEJKMLNUUPWSUUBGDEUUQUVKVMZXBZUUBUVOYRUVKU
      UBEDFGHIYEJKMLNOUUPUVPXCXDZYKXEVFUUBUVMYLYKXFSZXGXHTZWRTZYLWTWRTYLUUBUVNU
      VOUVMUWAUDUVQUVRYKXIVFUUBUVTWTYLWRUUBUVTWTXGXHTWTUUBUVSWTXGXHUUBEFGHIYEJK
      LUUPMOUVKXJXKXLXMXNUUBYLUUBYKUVQXOXPXQXQXRXNXQXSAYHYNYIUFAYPYQYRYHYNXTYSQ
      RDYCJGYGCENOYTYOYAVAYBXR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Bertrand's postulate
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Value of the central binomial coefficient.  (Contributed by Mario
     Carneiro, 13-Mar-2014.) $)
  bcctr $p |- ( N e. NN0 -> ( ( 2 x. N ) _C N ) = ( ( ! ` ( 2 x. N ) ) /
                ( ( ! ` N ) x. ( ! ` N ) ) ) ) $=
    ( cn0 wcel c2 cmul co cbc cfa cfv cmin cdiv cc0 cfz wceq fzctr bcval2 caddc
    syl oveq1d eqtrd nn0cn 2timesd pncand fveq2d oveq2d ) ABCZDAEFZAGFZUGHIZUGA
    JFZHIZAHIZEFZKFZUIULULEFZKFUFALUGMFCUHUNNAOAUGPRUFUMUOUIKUFUKULULEUFUJAHUFU
    JAAQFZAJFAUFUGUPAJUFAAUAZUBSUFAAUQUQUCTUDSUET $.

  ${
    $d k N $.  $d k P $.
    $( Prime count of a central binomial coefficient.  (Contributed by Mario
       Carneiro, 12-Mar-2014.) $)
    pcbcctr $p |- ( ( N e. NN /\ P e. Prime ) ->
      ( P pCnt ( ( 2 x. N ) _C N ) ) = sum_ k e. ( 1 ... ( 2 x. N ) )
        ( ( |_ ` ( ( 2 x. N ) / ( P ^ k ) ) ) -
          ( 2 x. ( |_ ` ( N / ( P ^ k ) ) ) ) ) ) $=
      ( cn wcel wa c2 cmul co cfz cdiv cfl cfv cmin caddc csu adantr cn0 oveq1d
      wceq cprime cbc cpc c1 cv cexp cc0 2nn nnmulcl mpan nnnn0 fzctr syl simpr
      pcbc syl3anc nncn 2timesd pncand eqtrd fveq2d ad2antrr nnre adantl elfznn
      cr prmnn nnnn0d nnexpcl syl2an nndivred flcld zcnd eqtr4d oveq2d sumeq2dv
      ) CDEZAUAEZFZAGCHIZCUBIUCIZUDVTJIZVTABUEZUFIZKILMZVTCNIZWDKIZLMZCWDKIZLMZ
      OIZNIZBPZWBWEGWJHIZNIZBPVSVTDEZCUGVTJIEZVRWAWMTVQWPVRGDEVQWPUHGCUIUJQVQWQ
      VRVQCREWQCUKCULUMQVQVRUNABCVTUOUPVSWBWLWOBVSWCWBEZFZWKWNWENWSWKWJWJOIZWNV
      QWKWTTVRWRVQWHWJWJOVQWGWILVQWFCWDKVQWFCCOIZCNICVQVTXACNVQCCUQZURSVQCCXBXB
      USUTSVASVBWSWJWSWJWSWIWSCWDVQCVFEVRWRCVCVBVSADEZWCREWDDEWRVRXCVQAVGVDWRWC
      WCVTVEVHAWCVIVJVKVLVMURVNVOVPUT $.
  $}

  ${
    $d k x A $.  $d k x N $.  $d x B $.
    $( The binomial coefficient is monotone in its second argument, up to the
       midway point.  (Contributed by Mario Carneiro, 5-Mar-2014.) $)
    bcmono $p |- ( ( N e. NN0 /\ B e. ( ZZ>= ` A ) /\ B <_ ( N / 2 ) ) ->
                     ( N _C A ) <_ ( N _C B ) ) $=
      ( cn0 wcel c2 cdiv co cle wbr cc0 cbc wa wi wceq 3ad2ant1 cr syl3anc cmul
      syl vx vk cuz cfv w3a clt simpl2 simpl1 cz eluzel2 3ad2ant2 anim1i elnn0z
      sylibr simpl3 cv caddc breq1 oveq2 breq2d imbi12d imbi2d nn0red leidd a1d
      c1 bccl expcom adantrd eluzelz zred lep1d peano2re nn0re rehalfcld imim1d
      letr mpand eluznn0 cmin cn nn0p1nn nnnn0d readdcld leadd1dd nncnd 2timesd
      cfa simp3 wb 2pos pm3.2i lemuldiv2 mpbird eqbrtrrd letrd leaddsub2d mpbid
      2re a1i nnre nngt0 jca nn0z zsubcld jctir 1le2 lemulge12 syl2anc ledivmul
      nn0ge0 1red elnnz1 sylanbrc crp nnm1nn0 3syl nnmulcld nnrp rpdivcl syl2an
      faccl rpregt0d lediv2 facnn2 oveq1d eqtr4d oveq2d mpbir2and bcval2 nnne0d
      elfz divdiv1d 3eqtr4d cc nn0cn nn0ge0d syld a2d wo zcnd cfz 1cnd subsub4d
      mul32d eqcomd fveq2d facp1 oveq12d mulassd nnzd 3brtr4d 3exp 3impia 3coml
      0zd simp2 3ad2ant3 peano2zd expcomd 3expib uzind4 syl121anc adantr adantl
      3imp orc bcval4 eqbrtrd 0re lelttric sylancr mpjaodan ) CDEZBAUCUDZEZBCFG
      HZIJZUEZKAIJZCALHZCBLHZIJZAKUFJZUVSUVTMZUVPUVNADEZUVRUWCUVNUVPUVRUVTUGUVN
      UVPUVRUVTUHUWEAUIEZUVTMUWFUVSUWGUVTUVPUVNUWGUVRABUJUKZULAUMUNUVNUVPUVRUVT
      UOUVPUVNUWFMZUVRUWCUWIUAUPZUVQIJZUWACUWJLHZIJZNZNUWIAUVQIJZUWAUWAIJZNZNUW
      IUBUPZUVQIJZUWACUWRLHZIJZNZNUWIUWRVFUQHZUVQIJZUWACUXCLHZIJZNZNUWIUVRUWCNZ
      NUAUBABUWJAOZUWNUWQUWIUXIUWKUWOUWMUWPUWJAUVQIURUXIUWLUWAUWAIUWJACLUSUTVAV
      BUWJUWROZUWNUXBUWIUXJUWKUWSUWMUXAUWJUWRUVQIURUXJUWLUWTUWAIUWJUWRCLUSUTVAV
      BUWJUXCOZUWNUXGUWIUXKUWKUXDUWMUXFUWJUXCUVQIURUXKUWLUXEUWAIUWJUXCCLUSUTVAV
      BUWJBOZUWNUXHUWIUXLUWKUVRUWMUWCUWJBUVQIURUXLUWLUWBUWAIUWJBCLUSUTVAVBUWGUV
      NUWQUWFUVNUWGUWQUVNUWGMZUWPUWOUXMUWAUXMUWAACVGZVCVDVEVHVIUWRUVOEZUWIUXBUX
      GUXOUVNUWFUXBUXGNUXOUVNUWFUEZUXBUXDUXANUXGUXPUXDUWSUXAUXPUWRUXCIJZUXDUWSU
      XPUWRUXPUWRUXOUVNUWRUIEZUWFAUWRVJPZVKZVLUXPUWRQEZUXCQEZUVQQEUXQUXDMUWSNUX
      TUXPUYAUYBUXTUWRVMTUXPCUVNUXOCQEZUWFCVNZUKVOUWRUXCUVQVQRVRVPUXPUXDUXAUXFU
      XPUXDUWTUXEIJZUXAUXFNUWFUXOUVNUXDUYENZUWFUXOUVNUYFUWFUXOMUWRDEZUVNUYFNUWR
      AVSUYGUVNUXDUYEUYGUVNUXDUEZCWHUDZCUWRVTHZVFVTHZWHUDZUWRWHUDZSHZGHZUYJGHZU
      YOUXCGHZUWTUXEIUYHUXCUYJIJZUYPUYQIJZUYHUWRUXCUQHZCIJUYRUYHUYTUXCUXCUQHZCU
      YHUWRUXCUYGUVNUYAUXDUWRVNPZUYHUXCUYHUXCUYGUVNUXCWAEZUXDUWRWBPZWCZVCZWDUYH
      UXCUXCVUFVUFWDUVNUYGUYCUXDUYDUKZUYHUWRUXCUXCVUBVUFVUFUYHUWRVUBVLZWEUYHFUX
      CSHZVUACIUYHUXCUYHUXCVUDWFZWGUYHVUICIJZUXDUYGUVNUXDWIZUYHUYBUYCFQEZKFUFJZ
      MZVUKUXDWJVUFVUGVUOUYHVUMVUNWSWKWLWTZUXCCFWMRWNWOWPUYHUWRUXCCVUBVUFVUGWQW
      RUYHUYBKUXCUFJZMZUYJQEZKUYJUFJZMZUYOQEKUYOUFJMUYRUYSWJUYHVUCVURVUDVUCUYBV
      UQUXCXAUXCXBXCTUYHUYJWAEZVVAUYHUYJUIEVFUYJIJZVVBUYHCUWRUVNUYGCUIEZUXDCXDU
      KZUYGUVNUXRUXDUWRXDPZXEZUYHUXCCIJZVVCUYHUXCUVQCVUFUYHCVUGVOVUGVULUYHUVQCI
      JZCFCSHIJZUYHUYCVUMMKCIJZVFFIJZMVVJUYHUYCVUMVUGWSXFUYHVVKVVLUVNUYGVVKUXDC
      XKUKXGXFCFXHXIUYHUYCUYCVUOVVIVVJWJVUGVUGVUPCCFXJRWNWPZUYHUWRVFCVUBUYHXLVU
      GWQWRUYJXMXNZVVBVUSVUTUYJXAUYJXBXCTUYHUYOUYHUYIWAEZUYNWAEZUYOXOEZUVNUYGVV
      OUXDCYBUKZUYHUYLUYMUYHVVBUYKDEUYLWAEVVNUYJXPUYKYBXQZUYGUVNUYMWAEUXDUWRYBP
      ZXRZVVOUYIXOEUYNXOEVVQVVPUYIXSUYNXSUYIUYNXTYAXIYCUXCUYJUYOYDRWRUYHUYIUYJW
      HUDZUYMSHZGHZUYIUYNUYJSHZGHUWTUYPUYHVWCVWEUYIGUYHVWCUYLUYJSHZUYMSHVWEUYHV
      WBVWFUYMSUYHVVBVWBVWFOVVNUYJYETYFUYHUYLUYMUYJUYHUYLVVSWFZUYHUYMVVTWFZUYHU
      YJVVGUUAZUUEYGYHUYHUWRKCUUBHZEZUWTVWDOUYHVWKKUWRIJZUWRCIJZUYGUVNVWLUXDUWR
      XKPUYHUWRUXCCVUBVUFVUGVUHVVMWPUYHUXRKUIEZVVDVWKVWLVWMMWJVVFUYHUUPZVVEUWRK
      CYLRYIUWRCYJTUYHUYIUYNUYJUYHUYIVVRWFZUYHUYNVWAWFZVWIUYHUYNVWAYKZUYHUYJVVN
      YKYMYNUYHUYICUXCVTHZWHUDZUXCWHUDZSHZGHZUYIUYNUXCSHZGHUXEUYQUYHVXBVXDUYIGU
      YHVXBUYLUYMUXCSHZSHVXDUYHVWTUYLVXAVXESUYHVWSUYKWHUYHUYKVWSUYHCUWRVFUVNUYG
      CYOEUXDCYPUKUYGUVNUWRYOEUXDUWRYPPUYHUUCUUDUUFUUGUYGUVNVXAVXEOUXDUWRUUHPUU
      IUYHUYLUYMUXCVWGVWHVUJUUJYGYHUYHUXCVWJEZUXEVXCOUYHVXFKUXCIJZVVHUYHUXCVUEY
      QVVMUYHUXCUIEZVWNVVDVXFVXGVVHMWJUYHUXCVUDUUKVWOVVEUXCKCYLRYIUXCCYJTUYHUYI
      UYNUXCVWPVWQVUJVWRUYHUXCVUDYKYMYNUULUUMTUUNUUOUXPUXAUYEUXFUXPUWAQEUWTQEUX
      EQEUXAUYEMUXFNUXPUWAUXPUVNUWGUWADEUXOUVNUWFUUQZUWFUXOUWGUVNAXDUURUXNXIVCU
      XPUWTUXPUVNUXRUWTDEVXIUXSUWRCVGXIVCUXPUXEUXPUVNVXHUXEDEVXIUXPUWRUXSUUSUXC
      CVGXIVCUWAUWTUXEVQRUUTYRYSYRUVAYSUVBUVFUVCUVSUWDMZUWAKUWBIVXJUVNUWGUWDCAU
      FJZYTZUWAKOUVNUVPUVRUWDUHZUVSUWGUWDUWHUVDUWDVXLUVSUWDVXKUVGUVEACUVHRVXJUW
      BVXJUVNBUIEZUWBDEVXMVXJUVPVXNUVNUVPUVRUWDUGABVJTBCVGXIYQUVIUVSKQEAQEUVTUW
      DYTUVJUVSAUWHVKKAUVKUVLUVM $.
  $}

  $( The binomial coefficient takes its maximum value at the center.
     (Contributed by Mario Carneiro, 5-Mar-2014.) $)
  bcmax $p |- ( ( N e. NN0 /\ K e. ZZ ) ->
                   ( ( 2 x. N ) _C K ) <_ ( ( 2 x. N ) _C N ) ) $=
    ( cn0 wcel cz wa cuz cfv c2 co cbc cle wbr 2nn0 simpll sylancr simpr cc syl
    syl2anc cmul cdiv nn0mulcl nn0re leidd wceq nn0cn cc0 wne 2cn 2ne0 breqtrrd
    divcan3 mp3an23 bcmono syl3anc cmin simplr bccmpl caddc nn0red 2timesd zred
    recnd eluzle adantl leadd2dd eqbrtrd lesubaddd mpbird wb nn0zd zsubcld eluz
    wo nn0z adantr uztric mpjaodan ) BCDZAEDZFZBAGHDZIBUAJZAKJZWDBKJZLMZABGHDZW
    BWCFZWDCDZWCBWDIUBJZLMZWGWIICDZVTWJNVTWAWCOZIBUCZPWBWCQWIVTWLWNVTBBWKLVTBBU
    DUEVTBRDZWKBUFZBUGWPIRDIUHUIWQUJUKBIUMUNSULZSABWDUOUPWBWHFZWEWDWDAUQJZKJZWF
    LWSWJWAWEXAUFWSWMVTWJNVTWAWHOZWOPZVTWAWHURZAWDUSTWSWJBWTGHDZWLXAWFLMXCWSXEW
    TBLMZWSXFWDBAUTJZLMWSWDBBUTJXGLWSBWSBWSBXBVAZVDVBWSBABXHWSAXDVCZXHWHBALMWBB
    AVEVFVGVHWSWDABWSWDXCVAXIXHVIVJWSWTEDBEDZXEXFVKWSWDAWSWDXCVLXDVMWSBXBVLWTBV
    NTVJWSVTWLXBWRSWTBWDUOUPVHWBWAXJWCWHVOVTWAQVTXJWABVPVQABVRTVS $.

  $( Ratio of two central binomial coefficients.  (Contributed by Mario
     Carneiro, 10-Mar-2014.) $)
  bcp1ctr $p |- ( N e. NN0 -> ( ( 2 x. ( N + 1 ) ) _C ( N + 1 ) ) =
    ( ( ( 2 x. N ) _C N ) x. ( 2 x. ( ( ( 2 x. N ) + 1 ) / ( N + 1 ) ) ) ) ) $=
    ( cn0 wcel c2 c1 caddc co cmul cbc cmin cdiv wceq ax-1cn syl oveq1d syl2anc
    cc eqtr4d eqtrd oveq2d 2t1e2 df-2 eqtri oveq2i nn0cn 2cn adddi mp3an13 2nn0
    nn0mulcl mpan nn0cnd addass mp3an23 3eqtr4a peano2nn0 nnzd bcpasc nn0z bccl
    cz nn0p1nn 2cnd nn0red nndivred recnd mul12d 1cnd addsubd pncand eqtr2d cc0
    2timesd cfz fzctr bcp1n bccmpl addassd nncnd pncan sylancl oveq12d ) ABCZDA
    EFGZHGZWDIGZDAHGZEFGZWDIGZWHWDEJGZIGZFGZWGAIGZDWHWDKGZHGHGZWCWFWHEFGZWDIGZW
    LWCWEWPWDIWCWGDEHGZFGZWGEEFGZFGZWEWPWRWTWGFWRDWTUAUBUCUDWCAQCZWEWSLZAUEZDQC
    XBEQCZXCUFMDAEUGUHNWCWGQCZWPXALZWCWGDBCWCWGBCZUIDAUJUKZULZXFXEXEXGMMWGEEUMU
    NNUOOWCWHBCZWDVACZWLWQLWCXHXKXIWGUPNZWCWDAVBZUQZWDWHURPRWCWODWHAIGZHGZWLWCW
    ODWMWNHGZHGXQWCWMDWNWCWMWCXHAVACZWMBCXIAUSZAWGUTPULWCVCWCWNWCWHWDWCWHXMVDXN
    VEVFVGWCXRXPDHWCXRWMWHWHAJGZKGZHGZXPWCWNYBWMHWCWDYAWHKWCYAWGAJGZEFGWDWCWGEA
    XJWCVHZXDVIWCYDAEFWCYDAAFGZAJGAWCWGYFAJWCAXDVMZOWCAAXDXDVJSOVKTTWCAVLWGVNGC
    XPYCLAVOAWGVPNRTSWCWLXPXPFGXQWCWIXPWKXPFWCWIWHWHWDJGZIGZXPWCXKXLWIYILXMXOWD
    WHVQPWCYHAWHIWCYHAWDFGZWDJGAWCWHYJWDJWCWHYFEFGYJWCWGYFEFYGOWCAAEXDXDYEVRSOW
    CAWDXDWCWDXNVSVJSTSWCWJAWHIWCXBXEWJALXDMAEVTWATWBWCXPWCXPWCXKXSXPBCXMXTAWHU
    TPULVMRRR $.

  ${
    $d n x N $.
    $( A bound on the binomial coefficient.  (Contributed by Mario Carneiro,
       11-Mar-2014.) $)
    bclbnd $p |- ( N e. ( ZZ>= ` 4 ) ->
                    ( ( 4 ^ N ) / N ) < ( ( 2 x. N ) _C N ) ) $=
      ( c4 cexp co cdiv c2 cmul cbc clt c1 caddc wceq c6 c7 cc0 c3 wcel cn0 2cn
      oveq12i vx vn cv wbr 4z oveq2 id oveq12d breq12d cdc 6nn0 7nn0 4nn0 4lt10
      0nn0 6lt7 decltc cmin cc 2nn0 3nn0 expmul mp3an eqcomi 4m1e3 eqtr4i 3t2e6
      sq2 3cn mulcomli oveq2i 2exp6 eqtri wne cz 4cn 4ne0 3eqtr3ri df-4 bcp1ctr
      expm1 ax-mp c5 df-3 df-2 1nn0 1e0p1 nn0mulcli bcn0 oveq1i 1div1e1 mulid2i
      2t0e0 2t1e2 3eqtri 2ne0 divcan2i 2t2e4 df-5 5cn 3ne0 divassi 6cn nnmulcli
      wa 2nn 5nn nncni pm3.2i div12 5t2e10 divmuli mpbir df-7 7cn mulassi cn wi
      4nn mpan nnexpcl sylancr nnrpd rpdivcld rpred nnmulcl nnnn0d bccl syl2anc
      nn0red crp syl cr 2re a1i nncnd oveq1d mulassd div23d rpcnd divcli mulcli
      3p1e4 10nn 3eqtr3i dec0u 3brtr4i cuz eluznn nnnn0 nnrp peano2nnd peano2nn
      cfv nnz rpmulcl ltmul1d breq2d bitr4d sylancl rpreccld ltaddrp 1cnd nnne0
      2rp nncn divdird divcan4d eqtr2d breqtrd expp1 syl6eq eqtr4d nnne0d eqtrd
      ltmul2dd divmul24d 3eqtr3rd 3brtr4d remulcld nn0mulcl nnzd syl3anc sylbid
      lttr mpand uzind4i ) BUAUCZCDZUWHEDZFUWHGDZUWHHDZIUDBBCDZBEDZFBGDZBHDZIUD
      BUBUCZCDZUWQEDZFUWQGDZUWQHDZIUDZBUWQJKDZCDZUXCEDZFUXCGDZUXCHDZIUDZBACDZAE
      DZFAGDZAHDZIUDUAUBBAUEUWHBLZUWJUWNUWLUWPIUXMUWIUWMUWHBEUWHBBCUFUXMUGZUHUX
      MUWKUWOUWHBHUWHBFGUFUXNUHUIUWHUWQLZUWJUWSUWLUXAIUXOUWIUWRUWHUWQEUWHUWQBCU
      FUXOUGZUHUXOUWKUWTUWHUWQHUWHUWQFGUFUXPUHUIUWHUXCLZUWJUXEUWLUXGIUXQUWIUXDU
      WHUXCEUWHUXCBCUFUXQUGZUHUXQUWKUXFUWHUXCHUWHUXCFGUFUXRUHUIUWHALZUWJUXJUWLU
      XLIUXSUWIUXIUWHAEUWHABCUFUXSUGZUHUXSUWKUXKUWHAHUWHAFGUFUXTUHUIMBUJZNOUJZU
      WNUWPIMNBOUKULUMUOUNUPUQFFPGDZCDZBBJURDZCDZUYAUWNUYDFFCDZPCDZUYFFUSQZFRQZ
      PRQZUYDUYHLSUTVAFFPVBVCBUYGUYEPCUYGBVHVDVETVFUYDFMCDUYAUYCMFCPFMVISVGVJZV
      KVLVMBUSQZBOVNBVOQUYFUWNLVPVQUEBBWAVCVRUWPJOUJZFGDZFNBEDZGDZGDZUYNNGDZUYB
      UWPFPJKDZGDZUYTHDZUYCPHDZFUYCJKDZUYTEDZGDZGDZUYRUWOVUABUYTHBUYTFGVSVKVSTU
      YKVUBVUGLVAPVTWBVUCUYOVUFUYQGVUCFFJKDZGDZVUHHDZMFWCGDZPEDZGDZUYOUYCVUIPVU
      HHPVUHFGWDVKWDTVUJFFGDZFHDZFVUNJKDZVUHEDZGDZGDZVUMUYJVUJVUSLUTFVTWBVUOMVU
      RVULGVUOFJJKDZGDZVUTHDZFJGDZJHDZFVVCJKDZVUTEDZGDZGDZMVUNVVAFVUTHFVUTFGWEV
      KWETJRQVVBVVHLWFJVTWBVVHUYCMVVDFVVGPGVVDFOJKDZGDZVVIHDZFOGDZOHDZFVVLJKDZV
      VIEDZGDZGDZFVVCVVJJVVIHJVVIFGWGVKWGTORQVVKVVQLUOOVTWBVVQJFGDFVVMJVVPFGVVL
      RQVVMJLFOUTUOWHVVLWIWBVVPVVCFVVOJFGVVOJJEDJVVNJVVIJEVVNVVIJVVLOJKWMWJWGVF
      JVVIWGVDTWKVMVKWNVMTFSWLVMWOVVGFPFEDZGDPVVFVVRFGVVEPVUTFEVVEVUHPVVCFJKWNW
      JWDVFFVUTWEVDTVKPFVISWPWQVMTUYLVMWOVURFWCPEDZGDVULVUQVVSFGVUPWCVUHPEVUPBJ
      KDWCVUNBJKWRWJWSVFPVUHWDVDTVKFWCPSWTVIXAXBVFTVMVUMVUKMPEDZGDZUYOMUSQVUKUS
      QPUSQZPOVNZXEVUMVWALXCVUKFWCXFXGXDXHVWBVWCVIXAXIMVUKPXJVCVUKUYNVVTFGWCFUY
      NWTSXKVJVVTFLPFGDMLVGMPFXCVISXAXLXMTVMWOVUEUYPFGVUDNUYTBEVUDMJKDNUYCMJKUY
      LWJXNVFUUCTVKTWOUYRUYNFUYQGDZGDUYSUYNFUYQUYNUUDXHSFUYPSNBXOVPVQUUAZUUBXPV
      WDNUYNGVUNUYPGDBUYPGDVWDNVUNBUYPGWRWJFFUYPSSVWEXPNBXOVPVQWQUUEVKVMNULUUFW
      OUUGUWQBUUHUUNQZUWQXQQZUXBUXHXRBXQQZVWFVWGXSUWQBUUIXTVWGUXBUWSFUWTJKDZUXC
      EDZGDZGDZUXGIUDZUXHVWGUXBVWLUXAVWKGDZIUDVWMVWGUWSUXAVWKVWGUWSVWGUWRUWQVWG
      UWRVWGVWHUWQRQZUWRXQQZXSUWQUUJZBUWQYAYBZYCUWQUUKZYDZYEZVWGUXAVWGUWTRQUWQV
      OQUXARQVWGUWTFXQQZVWGUWTXQQXFFUWQYFXTZYGUWQUUOUWQUWTYHYIYJVWGFYKQVWJYKQVW
      KYKQUVEVWGVWIUXCVWGVWIVWGUWTVXCUULZYCZVWGUXCUWQUUMZYCZYDZFVWJUUPYBZUUQVWG
      UXGVWNVWLIVWGVWOUXGVWNLVWQUWQVTYLUURUUSVWGUXEVWLIUDZVWMUXHVWGUWRFGDZUXCED
      ZFGDZVXLVWIUWQEDZGDZUXEVWLIVWGFVXNVXLFYMQZVWGYNYOVWGVXNVWGVWIUWQVXEVWSYDY
      EVWGVXKUXCVWGVXKVWGVWPVXBVXKXQQVWRXFUWRFYFUUTZYCVXGYDVWGFFJUWQEDZKDZVXNIV
      WGVXPVXRYKQFVXSIUDYNVWGUWQVWSUVAFVXRUVBYBVWGVXNUWTUWQEDZVXRKDVXSVWGUWTJUW
      QVWGUWTVXCYPVWGUVCUWQUVFZUWQUVDZUVGVWGVXTFVXRKVWGFUWQUYIVWGSYOZVYAVYBUVHY
      QUVIUVJUVPVWGUXEVXKFGDZUXCEDVXMVWGUXDVYDUXCEVWGUXDUWRBGDZVYDVWGUYMVWOUXDV
      YELVPVWQBUWQUVKYBVWGVYDUWRVUNGDVYEVWGUWRFFVWGUWRVWRYPZVYCVYCYRVUNBUWRGWRV
      KUVLUVMYQVWGVXKFUXCVWGVXKVXQYPZVYCVWGUXCVXFYPZVWGUXCVXFUVNZYSUVOVWGVXKUWQ
      EDZVWJGDUWSFGDZVWJGDVXOVWLVWGVYJVYKVWJGVWGUWRFUWQVYFVYCVYAVYBYSYQVWGVXKUW
      QVWIUXCVYGVYAVWGVWIVXDYPVYHVYBVYIUVQVWGUWSFVWJVWGUWSVWTYTVYCVWGVWJVXHYTYR
      UVRUVSVWGUXEYMQVWLYMQUXGYMQVXJVWMXEUXHXRVWGUXEVWGUXDUXCVWGUXDVWGVWHUXCRQZ
      UXDXQQXSVWGUXCVXFYGZBUXCYAYBYCVXGYDYEVWGUWSVWKVXAVWGVWKVXIYEUVTVWGUXGVWGU
      XFRQZUXCVOQUXGRQVWGUYJVYLVYNUTVYMFUXCUWAYBVWGUXCVXFUWBUXCUXFYHYIYJUXEVWLU
      XGUWEUWCUWFUWDYLUWG $.
  $}

  $( Convert a bound on a power to a bound on the exponent.  (Contributed by
     Mario Carneiro, 11-Mar-2014.) $)
  efexple $p |- ( ( ( A e. RR /\ 1 < A ) /\ N e. ZZ /\ B e. RR+ ) ->
        ( ( A ^ N ) <_ B <-> N <_ ( |_ ` ( ( log ` B ) / ( log ` A ) ) ) ) ) $=
    ( cr wcel c1 clt wbr wa crp cle clog cfv wceq cc0 3ad2ant1 syl2anc 3ad2ant3
    co ce cz w3a cexp cmul cdiv cfl simpl 0lt1 0re 1re lttr mp3an12 mpani elrpd
    wi imp simp2 reexplog reeflog eqcomd breq12d wb zre 3ad2ant2 rpred remulcld
    rplogcl relogcl efle lemuldivd rerpdivcld flge bitrd 3bitr2d ) ADEZFAGHZIZC
    UAEZBJEZUBZACUCSZBKHCALMZUDSZTMZBLMZTMZKHZWCWEKHZCWEWBUESZUFMKHZVTWAWDBWFKV
    TAJEZVRWAWDNVQVRWKVSVQAVOVPUGVOVPOAGHZVOOFGHZVPWLUHODEFDEVOWMVPIWLUOUIUJOFA
    UKULUMUPUNPVQVRVSUQZACURQVTWFBVSVQWFBNVRBUSRUTVAVTWCDEWEDEZWHWGVBVTCWBVRVQC
    DEVSCVCVDZVTWBVQVRWBJEVSAVGPZVEVFVSVQWOVRBVHRZWCWEVIQVTWHCWIKHZWJVTCWEWBWPW
    RWQVJVTWIDEVRWSWJVBVTWEWBWRWQVKWNWICVLQVMVN $.

  ${
    $d p N $.  $d p P $.
    bpos1.1 $e |- ( E. p e. Prime ( N < p /\ p <_ ( 2 x. N ) ) -> ph ) $.
    bpos1.2 $e |- ( N e. ( ZZ>= ` P ) -> ph ) $.
    bpos1.3 $e |- P e. Prime $.
    bpos1.4 $e |- A e. NN0 $.
    bpos1.5 $e |- ( A x. 2 ) = B $.
    bpos1.6 $e |- A < P $.
    bpos1.7 $e |- ( P < B \/ P = B ) $.
    $( Lemma for ~ bpos1 .  (Contributed by Mario Carneiro, 12-Mar-2014.) $)
    bpos1lem $p |- ( N e. ( ZZ>= ` A ) -> ph ) $=
      ( wcel cle wbr clt sylancr c2 cr cuz cfv cz wb cprime cn prmnn ax-mp nnzi
      eluzelz eluz syl6bir wa cv cmul co nnrei a1i nn0rei 2re remulcli eqeltrri
      wrex eluzelre remulcl wceq wo leloei mpbir nn0cni 2cn mulcomli eluzle cc0
      2pos pm3.2i lemul2 mp3an13 syl mpbid syl5eqbrr letrd anim2i breq2 anbi12d
      breq1 rspcev expcom lelttric mpjaod ) EBUAUBNZDEOPZAEDQPZWKWLEDUAUBNZAWKD
      UCNEUCNWNWLUDDDUENZDUFNIDUGUHZUIBEUJDEUKRHULWMWKAWMWKUMZEFUNZQPZWRSEUOUPZ
      OPZUMZFUEVCZAWQWOWMDWTOPZUMZXCIWKXDWMWKDCWTDTNZWKDWPUQZURCTNWKBSUOUPCTKBS
      BJUSZUTVAVBZURWKSTNZETNZWTTNUTBEVDZSEVERDCOPZWKXMDCQPDCVFVGMDCXGXIVHVIURW
      KCSBUOUPZWTOBSCBJVJVKKVLWKBEOPZXNWTOPZBEVMWKXKXOXPUDZXLBTNXKXJVNSQPZUMXQX
      HXJXRUTVOVPBESVQVRVSVTWAWBWCXBXEFDUEWRDVFWSWMXAXDWRDEQWDWRDWTOWFWEWGRGVSW
      HWKXFXKWLWMVGXGXLDEWIRWJ $.
  $}

  ${
    $d p N $.
    $( Bertrand's postulate, checked numerically for ` N <_ 6 4 ` , using the
       prime sequence ` 2 , 3 , 5 , 7 , 1 3 , 2 3 , 4 3 , 8 3 ` .  (Contributed
       by Mario Carneiro, 12-Mar-2014.)  (Proof shortened by Mario Carneiro,
       20-Apr-2015.)  (Proof shortened by AV, 15-Sep-2021.) $)
    bpos1 $p |- ( ( N e. NN /\ N <_ ; 6 4 ) ->
                  E. p e. Prime ( N < p /\ p <_ ( 2 x. N ) ) ) $=
      ( wcel c6 c4 cdc wbr clt c2 c1 c3 c7 c8 6nn0 4nn0 3nn0 2nn0 wceq bpos1lem
      orci cn cle cv cmul co wa cprime wrex cuz cfv wi elnnuz ax-1 c5 cc0 wn cr
      deccl nn0rei 8nn0 eluzelre 4lt10 6lt8 decltc eluzle ltletrd ltnle sylancr
      a1i wb mpbid pm2.21d 83prm eqid 4t2e8 3t2e6 decmul1 3lt10 4lt8 3lt6 declt
      6nn 43prm 2t2e4 2lt4 23prm 1nn0 2cn mulid2i 1lt2 13prm 7nn0 7t2e14 declti
      7lt10 3lt4 7prm 5nn0 5t2e10 5lt7 5prm 3lt5 5lt6 3prm 2lt3 2prm olci sylbi
      1nn 4nn imp ) AUACZADEFZUBGZABUCZHGXOIAUDUEUBGUFBUGUHZXLAJUIUJCXNXPUKZAUL
      XQJIIABXPXNUMZXQIEKABXRXQKDUNABXRXQUNJUOFZLABXRXQLJEFZJKFZABXRXQYAIDFZIKF
      ZABXRXQYCEDFZEKFZABXRXQYEMDFZMKFZABXRAYGUIUJCZXNXPYHXMAHGZXNUPZYHXMYGAXMU
      QCZYHXMDENOURUSZVIYGUQCYHYGMKUTPURUSVIYGAVAZXMYGHGYHDMEKNUTOPVBVCVDVIYGAV
      EVFYHYKAUQCYIYJVJYLYMXMAVGVHVKVLVMEKOPUREKMDIYEQOPYEVNNVOVPVQEMKKOUTPPVRV
      SVDYGYFHGYGYFRMKDUTPWBVTWATSWCIKQPURIKEDIYCQQPYCVNNWDVPVQIEKKQOPPVRWEVDYE
      YDHGYEYDREKDOPWBVTWATSWFJKWGPURJKIDIYAQWGPYAVNNIWHWIZVPVQJIKKWGQPPVRWJVDY
      CYBHGYCYBRIKDQPWBVTWATSWKWLWMJKLXIPWLWOWNYAXTHGYAXTRJKEWGPXJWPWATSWQWRWSW
      TLXSHGLXSRWOTSXAPVPXBUNDHGUNDRXCTSXDQWDXEKEHGKERWPTSXFWGYNWJIIRIIHGIVNXGS
      XHXK $.
  $}

  ${
    $d k N $.  $d k P $.
    $( An upper bound on the prime powers dividing a central binomial
       coefficient.  (Contributed by Mario Carneiro, 9-Mar-2014.) $)
    bposlem1 $p |- ( ( N e. NN /\ P e. Prime ) ->
                      ( P ^ ( P pCnt ( ( 2 x. N ) _C N ) ) ) <_ ( 2 x. N ) ) $=
      ( cn wcel wa c2 cmul co cle wbr cfv c1 cmin cc0 syl2anc cz cr clt adantr
      wb vk cprime cbc cpc cexp clog cdiv cfl cfz csu cif fzfid crp 2nn nnmulcl
      cv mpan ad2antrr prmnn ad2antlr elfznn adantl nnnn0d nnexpcld nnrp syl2an
      rpdivcl rpred flcld simpll zmulcl sylancr zsubcld zred 1re 0re keepel a1i
      2z caddc resubcld 2re flle syl lesub1dd resubcl sylancl remulcl ltsubaddd
      flltp1 1red mpbird 2pos pm3.2i ltmul2 mp3an3 mpbid ltsub2dd 2cnd cc nncnd
      nncn nnne0d divassd recnd 1cnd subdid 2t1e2 oveq2i oveq12d wceq 2cn nncan
      syl6eq 1z breq2d wn nnred cuz nnrpd efexple syl3anc nnzd rplogcld adantrr
      rpge0d ltdivmul syl112anc bitrd impr 0p1e1 syl6breqr 0z flbi mpbir2and ce
      eqcomd cn0 3brtr4d 3syl eqtrd breqtrd lelttrd syl6breq zleltp1 syl5ibrcom
      df-2 iftrue nnge1d biantrurd prmuz2 eluz2b1 simprbi jca elfzelz 1lt2 nnre
      0le2 nnge1 lemul2a syl31anc syl5eqbrr ltletrd rpdivcld elfz notbid ltnled
      3bitr4rd bitr4d nngt0d mulid1d biimprd ltaddrp2d 2timesd breqtrrd wi lttr
      mpand sylibrd oveq2d 2t0e0 0m0e0 0le0 syl6eqbr expr sylbid iffalse mpbidi
      pm2.61d fsumle pcbcctr chash bernneq3 reeflogd reexplog relogcld remulcld
      cfn wss ltled efle ledivmul2d letrd eluz sumhash rprege0d flge0nn0 eqtr2d
      fzss2 hashfz1 simpr nnnn0 fzctr bccl2 pccld nn0zd syl211anc ) BCDZAUBDZEZ
      AAFBGHZBUCHZUDHZUEHUYAIJZUYCUYAUFKZAUFKZUGHZUHKZIJZUXTLUYAUIHZUYAAUAUPZUE
      HZUGHZUHKZFBUYLUGHZUHKZGHZMHZUAUJUYJUYKLUYHUIHZDZLNUKZUAUJZUYCUYHIUXTUYJU
      YRVUAUAUXTLUYAULZUXTUYKUYJDZEZUYRVUEUYNUYQVUEUYMVUEUYMVUEUYACDZUYLCDZUYMU
      MDZUXRVUFUXSVUDFCDUXRVUFUNFBUOUQZURVUEAUYKUXSACDZUXRVUDAUSZUTVUEUYKVUDUYK
      CDUXTUYKUYAVAVBZVCVDZVUFUYAUMDZUYLUMDZVUHVUGUYAVEUYLVEZUYAUYLVGVFOZVHZVIZ
      VUEFPDUYPPDUYQPDVSVUEUYOVUEUYOVUEUXRVUGUYOUMDZUXRUXSVUDVJVUMUXRBUMDVUOVUT
      VUGBVEZVUPBUYLVGVFOZVHZVIZFUYPVKVLZVMZVNZVUAQDVUEUYTLNQVOVPVQVRVUEUYTUYRV
      UAIJZVUEVVHUYTUYRLIJZVUEVVIUYRLLVTHZRJZVUEUYRFVVJRVUEUYRUYMUYQMHZFVVGVUEU
      YMUYQVURVUEUYQVVEVNZWAFQDZVUEWBVRVUEUYNUYMUYQVUEUYNVUSVNVURVVMVUEUYMQDZUY
      NUYMIJVURUYMWCWDWEVUEVVLUYMFUYOLMHZGHZMHZFRVUEVVQUYQUYMVUEVVNVVPQDZVVQQDW
      BVUEUYOQDZLQDZVVSVVCVOUYOLWFWGZFVVPWHVLVVMVURVUEVVPUYPRJZVVQUYQRJZVUEVWCU
      YOUYPLVTHRJZVUEVVTVWEVVCUYOWJWDVUEUYOLUYPVVCVUEWKZVUEUYPVVDVNZWIWLVUEVVSU
      YPQDZVWCVWDTZVWBVWGVVSVWHVVNNFRJZEVWIVVNVWJWBWMWNVVPUYPFWOWPOWQWRVUEVVRFU
      YOGHZVWKFMHZMHZFVUEUYMVWKVVQVWLMVUEFBUYLVUEWSZUXRBWTDUXSVUDBXBZURVUEUYLVU
      MXAZVUEUYLVUMXCXDVUEVVQVWKFLGHZMHVWLVUEFUYOLVWNVUEUYOVVCXEVUEXFXGVWQFVWKM
      XHXIXNXJVUEVWKWTDFWTDVWMFXKVUEVWKVUEVVNVVTVWKQDWBVVCFUYOWHVLXEXLVWKFXMWGU
      UAUUBUUCUUGUUDVUEUYRPDLPDZVVIVVKTVVFXOUYRLUUEWGWLUYTVUALUYRIUYTLNUUHXPUUF
      UYTXQZUYRNIJZVVHVUEVUEVWSUYAUYLRJZVWTVUEVWSUYLUYAIJZXQVXAVUEUYTVXBVUEUYKU
      YHIJZLUYKIJZVXCEZVXBUYTVUEVXDVXCVUEUYKVULUUIUUJVUEAQDZLARJZEZUYKPDZVUNVXB
      VXCTUXTVXHVUDUXTVXFVXGUXTAUXSVUJUXRVUKVBZXRZUXTAFXSKDZVXGUXSVXLUXRAUUKVBZ
      VXLAPDVXGAUULUUMWDZUUNSVUDVXIUXTUYKLUYAUUOVBUXTVUNVUDUXTUYAUXRVUFUXSVUISZ
      XTZSAUYAUYKYAYBVUEVXIVWRUYHPDZUYTVXETVUEUYKVULYCVWRVUEXOVRUXTVXQVUDUXTUYG
      UXTUYGUXTUYEUYFUXTUYAUXTUYAVXOXRZUXTLFUYAUXTWKZVVNUXTWBVRVXRLFRJUXTUUPVRU
      XTFVWQUYAIXHUXTVWABQDZVVNNFIJZEZLBIJZVWQUYAIJVXSUXRVXTUXSBUUQZSVYBUXTVVNV
      YAWBUURWNVRUXRVYCUXSBUUSSLBFUUTUVAUVBUVCYDUXTAVXKVXNYDZUVDZVHZVIZSUYKLUYH
      UVEYBUVHUVFVUEUYAUYLUXTUYAQDZVUDVXRSZVUEUYLVUMXRZUVGUVIUXTVUDVXAVWTUXTVUD
      VXAEEZUYRNNIVYLUYRNNMHNVYLUYNNUYQNMVYLUYNNXKZNUYMIJZUYMNLVTHZRJZUXTVUDVYN
      VXAVUEUYMVUQYFYEVYLUYMLVYORUXTVUDVXAUYMLRJZVUEVYQVXAVUEVYQUYAUYLLGHZRJZVX
      AVUEVYIVWAUYLQDZNUYLRJZVYQVYSTVYJVWFVYKVUEUYLVUMUVJZUYALUYLYGYHVUEVYRUYLU
      YARVUEUYLVWPUVKZXPYIUVLYJYKYLVYLVVONPDZVYMVYNVYPETUXTVUDVVOVXAVURYEYMUYMN
      YNWGYOVYLUYQFNGHNVYLUYPNFGVYLUYPNXKZNUYOIJZUYOVYORJZUXTVUDWUFVXAVUEUYOVVB
      YFYEVYLUYOLVYORUXTVUDVXAUYOLRJZVUEVXABUYLRJZWUHVUEBUYARJZVXAWUIUXRWUJUXSV
      UDUXRBBBVTHUYARUXRBBVYDVVAUVMUXRBVWOUVNUVOURVUEVXTVYIVYTWUJVXAEWUIUVPUXRV
      XTUXSVUDVYDURZVYJVYKBUYAUYLUVQYBUVRVUEWUHBVYRRJZWUIVUEVXTVWAVYTWUAWUHWULT
      WUKVWFVYKWUBBLUYLYGYHVUEVYRUYLBRWUCXPYIUVSYJYKYLVYLVVTWUDWUEWUFWUGETUXTVU
      DVVTVXAVVCYEYMUYONYNWGYOUVTUWAXNXJUWBXNUWCUWDUWEUWFVWSNVUAUYRIVWSVUANUYTL
      NUWGYQXPUWHUWIUWJAUABUWKUXTVUBUYSUWLKZUYHUXTUYJUWRDUYSUYJUWSZVUBWUMXKVUCU
      XTUYAUYHXSKDZWUNUXTWUOUYHUYAIJZUXTUYHUYGUYAUXTUYHVYHVNVYGVXRUXTUYGQDZUYHU
      YGIJVYGUYGWCWDUXTUYGUYAIJUYEUYAUYFGHZIJZUXTWUSUYEYPKZWURYPKZIJZUXTUYAAUYA
      UEHZWUTWVAIUXTUYAWVCVXRUXTWVCUXTAUYAVXJUXTUYAVXOVCZVDXRUXTVXLUYAYRDUYAWVC
      RJVXMWVDAUYAUWMOUWTUXTUYAVXPUWNUXTWVCWVAUXTAUMDUYAPDZWVCWVAXKUXTAVXJXTUXT
      UYAVXOYCZAUYAUWOOYQYSUXTUYEQDWURQDWUSWVBTUXTUYAVXPUWPZUXTUYAUYFVXRUXTUYFV
      YEVHUWQUYEWURUXAOWLUXTUYEUYAUYFWVGVXRVYEUXBWLUXCUXTVXQWVEWUOWUPTVYHWVFUYH
      UYAUXDOWLUYHLUYAUXIWDUYSUYJUAUXEOUXTWUQNUYGIJEUYHYRDWUMUYHXKUXTUYGVYFUXFU
      YGUXGUYHUXJYTUXHYSUXTVXFVXGUYCPDVUNUYDUYITVXKVXNUXTUYCUXTAUYBUXRUXSUXKUXR
      UYBCDZUXSUXRBYRDBNUYAUIHDWVHBUXLBUXMBUYAUXNYTSUXOUXPVXPAUYAUYCYAUXQWL $.
  $}

  ${
    $d k N $.  $d k P $.  $d k ph $.
    bposlem2.1 $e |- ( ph -> N e. NN ) $.
    bposlem2.2 $e |- ( ph -> P e. Prime ) $.
    bposlem2.3 $e |- ( ph -> 2 < P ) $.
    bposlem2.4 $e |- ( ph -> ( ( 2 x. N ) / 3 ) < P ) $.
    bposlem2.5 $e |- ( ph -> P <_ N ) $.
    $( There are no odd primes in the range ` ( 2 N / 3 , N ] ` dividing the
       ` N ` -th central binomial coefficient.  (Contributed by Mario Carneiro,
       12-Mar-2014.) $)
    bposlem2 $p |- ( ph -> ( P pCnt ( ( 2 x. N ) _C N ) ) = 0 ) $=
      ( c2 cmul co c1 cc0 wcel cle wbr clt cr c3 adantr vk cbc cpc cv cexp cdiv
      cfz cfl cfv cmin csu cn cprime wceq pcbcctr syl2anc cuz wo elnn1uz2 sylib
      elfznn wa oveq2 prmnn syl nncnd exp1d sylan9eqr oveq2d fveq2d caddc 2t1e2
      mulid2d eqbrtrd wb nnred nngt0d lemuldiv syl112anc mpbid nndivred 1re 2re
      1red 2pos pm3.2i lemul2 mp3an13 syl5eqbrr nnne0d divassd breqtrrd nnmulcl
      2cnd 2nn sylancr 3pos ltdiv23 mp3an2 syl12anc df-3 syl6breq cz 2z sylancl
      3re flbi mpbir2and eqtrd c4 remulcl a1i 4re eqbrtrrd 3lt4 lttrd syl6breqr
      2t2e4 ltmul2 mp3an23 mpbird df-2 syl6eq oveq12d 2cn subidi crp eluzge2nn0
      1z nnrpd nnexpcl syl2an rpdivcld rpge0d ltdivmul ltdivmuld 1e0p1 rpred 0z
      cn0 mp3an3 remulcld nnltp1le syl5eqbr lemul1 mp3an1 sqvald simpr leexp2ad
      nnge1d letrd ltletrd mulid1d ltaddrpd 2timesd 2t0e0 0m0e0 jaodan sumeq2dv
      sylan2 cfn fzfid wss sumz olcs ) ABICJKZCUBKUCKZLUVFUGKZUVFBUAUDZUEKZUFKZ
      UHUIZICUVJUFKZUHUIZJKZUJKZUAUKZMACULNZBUMNZUVGUVQUNDEBUACUOUPAUVQUVHMUAUK
      ZMAUVHUVPMUAUVIUVHNZAUVILUNZUVIIUQUINZURZUVPMUNZUWAUVIULNUWDUVIUVFVAUVIUS
      UTAUWBUWEUWCAUWBVBZUVPIIUJKMUWFUVLIUVOIUJUWFUVLUVFBUFKZUHUIZIUWFUVKUWGUHU
      WFUVJBUVFUFUWBAUVJBLUEKBUVILBUEVCABABAUVSBULNZEBVDVEZVFZVGVHZVIVJAUWHIUNZ
      UWBAUWMIUWGOPZUWGILVKKZQPZAIICBUFKZJKZUWGOAIILJKZUWROVLALUWQOPZUWSUWROPZA
      LBJKZCOPZUWTAUXBBCOABUWKVMHVNALRNZCRNZBRNZMBQPZUXCUWTVOAWDACDVPZABUWJVPZA
      BUWJVQZLCBVRVSVTZAUWQRNZUWTUXAVOZACBUXHUWJWAZUXDUXLIRNZMIQPZVBZUXMWBUXOUX
      PWCWEWFZLUWQIWGWHVEVTWIAICBAWNACDVFZUWKABUWJWJWKZWLAUWGSUWOQAUVFSUFKBQPZU
      WGSQPZGAUVFRNZUXFUXGUYAUYBVOZAUVFAIULNZUVRUVFULNWODICWMWPZVPZUXIUXJUYCSRN
      ZMSQPZVBZUXFUXGVBZUYDUYHUYIXFWQWFZUVFSBWRWSWTVTZXAXBAUWGRNIXCNUWMUWNUWPVB
      VOAUVFBUYGUWJWAXDUWGIXGXEXHTXIUWFUVOUWSIUWFUVNLIJUWFUVNUWQUHUIZLUWFUVMUWQ
      UHUWFUVJBCUFUWLVIVJAUYNLUNZUWBAUYOUWTUWQLLVKKZQPZUXKAUWQIUYPQAUWQIQPZUWRI
      IJKZQPZAUWRXJUYSQAUWRSXJAUXOUXLUWRRNWCUXNIUWQXKWPUYHAXFXLXJRNAXMXLAUWGUWR
      SQUXTUYMXNSXJQPAXOXLXPXRXQAUXLUYRUYTVOZUXNUXLUXOUXQVUAWCUXRUWQIIXSXTVEYAY
      BXBAUXLLXCNUYOUWTUYQVBVOUXNYIUWQLXGXEXHTXIVIVLYCYDIYEYFYCAUWCVBZUVPMMUJKM
      VUBUVLMUVOMUJVUBUVLMUNZMUVKOPZUVKMLVKKZQPZVUBUVKVUBUVFUVJAUVFYGNUWCAUVFUY
      FYJTVUBUVJAUWIUVIYTNUVJULNUWCUWJUVIYHBUVIYKYLZYJZYMZYNVUBUVKLVUEQVUBUVKLQ
      PUVFUVJLJKZQPVUBUVFUVJVUJQVUBUVFSBJKZUVJAUYCUWCUYGTZAVUKRNZUWCAUYHUXFVUMX
      FUXISBXKWPTZVUBUVJVUGVPZAUVFVUKQPZUWCAUYAVUPGAUYCUXFUYAVUPVOZUYGUXIUYCUXF
      UYJVUQUYLUVFBSYOUUAUPVTTVUBVUKBBJKZUVJVUNAVURRNUWCABBUXIUXIUUBTVUOAVUKVUR
      OPZUWCASBOPZVUSASUWOBOXAAIBQPZUWOBOPZFAUYEUWIVVAVVBVOWOUWJIBUUCWPVTUUDAUX
      FUXFUXGVUTVUSVOZUXIUXIUXJUYHUXFUYKVVCXFSBBUUEUUFWTVTTVUBBIUEKZVURUVJOAVVD
      VURUNUWCABUWKUUGTVUBBIUVIAUXFUWCUXITALBOPUWCABUWJUUJTAUWCUUHUUIXNUUKUULZV
      UBUVJVUBUVJVUGVFUUMZWLVUBUVFLUVJVULVUBWDZVUHYPYAYQXBVUBUVKRNMXCNZVUCVUDVU
      FVBVOVUBUVKVUIYRYSUVKMXGXEXHVUBUVOIMJKMVUBUVNMIJVUBUVNMUNZMUVMOPZUVMVUEQP
      ZVUBUVMVUBCUVJACYGNUWCACDYJZTVUHYMZYNVUBUVMLVUEQVUBUVMLQPCVUJQPVUBCUVJVUJ
      QVUBCUVFUVJAUXEUWCUXHTZVULVUOACUVFQPUWCACCCVKKUVFQACCUXHVVLUUNACUXSUUOWLT
      VVEXPVVFWLVUBCLUVJVVNVVGVUHYPYAYQXBVUBUVMRNVVHVVIVVJVVKVBVOVUBUVMVVMYRYSU
      VMMXGXEXHVIUUPYCYDUUQYCUURUUTUUSAUVHUVANZUVTMUNZALUVFUVBUVHLUQUIUVCVVOVVP
      UVHUALUVDUVEVEXIXI $.
  $}

  ${
    $d k p x F $.  $d n p K $.  $d p x M $.  $d k n p x N $.  $d k n p x ph $.
    bpos.1 $e |- ( ph -> N e. ( ZZ>= ` 5 ) ) $.
    bpos.2 $e |- ( ph -> -. E. p e. Prime ( N < p /\ p <_ ( 2 x. N ) ) ) $.
    bpos.3 $e |- F = ( n e. NN |->
            if ( n e. Prime , ( n ^ ( n pCnt ( ( 2 x. N ) _C N ) ) ) , 1 ) ) $.
    bpos.4 $e |- K = ( |_ ` ( ( 2 x. N ) / 3 ) ) $.
    $( Lemma for ~ bpos .  Since the binomial coefficient does not have any
       primes in the range ` ( 2 N / 3 , N ] ` or ` ( 2 N , +oo ) ` by
       ~ bposlem2 and ~ prmfac1 , respectively, and it does not have any in the
       range ` ( N , 2 N ] ` by hypothesis, the product of the primes up
       through ` 2 N / 3 ` must be sufficient to compose the whole binomial
       coefficient.  (Contributed by Mario Carneiro, 13-Mar-2014.) $)
    bposlem3 $p |- ( ph -> ( seq 1 ( x. , F ) ` K ) = ( ( 2 x. N ) _C N ) ) $=
      ( c2 co wcel wa cle wbr cc0 cn c5 c3 cmul c1 cseq cfv cbc wceq cpc cprime
      cv wral cif cn0 simpr cfz cuz 5nn eluznn sylancr nnnn0d fzctr 3syl adantr
      bccl2 pccld ralrimiva cz cdiv cfl 2nn nnmulcl nnred nndivre sylancl flcld
      3nn syl5eqel 3re a1i 5re 3lt5 ltleii eluzle syl letrd clt 2re 2pos pm3.2i
      cr wb lemul2 mp3an13 mpbid 3pos lemuldiv 2z flge syl6breqr eluz1i eluz2nn
      sylanbrc oveq1 pcmpt iftrue adantl iffalse zred prmz ltnle syl2an biimpar
      wn ad2antrr simplr ad2antlr simprl lelttrd syl5eqbrr fllt mpbird bposlem2
      syl2anc simprr expr wi wrex rspe adantll pm2.21dd cdvds cfa nnzd nnmulcld
      faccl dvdsmul1 bcctr nncnd eqtrd syl2anr wf oveq1d nnne0d divcan1d dvdstr
      breqtrd syl3anc mpan2d prmfac1 3expia sylan syld con3d id sylibrd pm2.61d
      pceq0 ex wo lelttric mpjaod syldan eqtr4d pm2.61dan pcmptcl ffvelrnd pc11
      simprd ) ADUACUBUCZUDZKEUALZEUELZUFZFUIZUVIUGLZUVMUVKUGLZUFZFUHUJZAUVPFUH
      AUVMUHMZNZUVNUVMDOPZUVOQUKZUVOUVSBUIZUVKUGLZUVOUVMBCDIAUWCULMZBUHUJUVRAUW
      DBUHAUWBUHMZNUWBUVKAUWEUMAUVKRMZUWEAEULMZEQUVJUNLMUWFAEASRMESUOUDMZERMZUP
      GESUQURZUSZEUTEUVJVCVAZVBVDVEZVBADRMZUVRADKUOUDMZUWNADVFMKDOPZUWOADUVJTVG
      LZVHUDZVFJAUWQAUVJWIMZTRMUWQWIMZAUVJAKRMUWIUVJRMVIUWJKEVJURZVKZVOUVJTVLVM
      ZVNVPZAKUWRDOAKUWQOPZKUWROPZAKTUALUVJOPZUXEATEOPZUXGATSETWIMZAVQVRSWIMAVS
      VRAEUWJVKZTSOPATSVQVSVTWAVRAUWHSEOPGSEWBWCWDAEWIMZUXHUXGWJZUXJUXIUXKKWIMZ
      QKWEPZNUXLVQUXMUXNWFWGWHTEKWKWLWCWMAUWSUXGUXEWJZUXBUXMUWSUXIQTWEPZNUXOWFU
      XIUXPVQWNWHKUVJTWOWLWCWMAUWTKVFMUXEUXFWJUXCWPUWQKWQVMWMJWRZKDWPWSXADWTWCZ
      VBAUVRUMUWBUVMUVKUGXBXCUVSUVTUWAUVOUFZUVTUXSUVSUVTUVOQXDXEUVSUVTXLZNUWAQU
      VOUXTUWAQUFUVSUVTUVOQXFXEUVSUXTDUVMWEPZUVOQUFZUVSUYAUXTADWIMZUVMWIMZUYAUX
      TWJUVRADUXDXGZUVRUVMUVMXHZXGZDUVMXIXJXKUVSUYANUVMEOPZUYBEUVMWEPZUVSUYAUYH
      UYBUVSUYAUYHNZNZUVMEAUWIUVRUYJUWJXMAUVRUYJXNUYKKDUVMUXMUYKWFVRAUYCUVRUYJU
      YEXMUYKUVMUVRUVMVFMZAUYJUYFXOZXGAUWPUVRUYJUXQXMUVSUYAUYHXPZXQUYKUWQUVMWEP
      ZUWRUVMWEPZUYKUWRDUVMWEJUYNXRUYKUWTUYLUYOUYPWJAUWTUVRUYJUXCXMUYMUWQUVMXSY
      BXTUVSUYAUYHYCYAYDUVSUYIUYBYEUYAUVSUYIUYBUVSUYINUVMUVJOPZUYBUVSUYIUYQUYBU
      VSUYIUYQNZNUYRFUHYFZUYBUVRUYRUYSAUYRFUHYGYHAUYSXLUVRUYRHXMYIYDUVSUYQXLZUY
      BYEUYIUVSUYTUVMUVKYJPZXLZUYBUVSVUAUYQUVSVUAUVMUVJYKUDZYJPZUYQUVSVUAUVKVUC
      YJPZVUDAVUEUVRAUVKUVKEYKUDZVUFUALZUALZVUCYJAUVKVFMZVUGVFMUVKVUHYJPAUVKUWL
      YLZAVUGAVUFVUFAUWGVUFRMUWKEYNWCZVUKYMZYLUVKVUGYOYBAVUHVUCVUGVGLZVUGUALVUC
      AUVKVUMVUGUAAUWGUVKVUMUFUWKEYPWCUUAAVUCVUGAVUCAUVJULMZVUCRMAUVJUXAUSZUVJY
      NWCZYQAVUGVULYQAVUGVULUUBUUCYRUUEVBUVSUYLVUIVUCVFMZVUAVUENVUDYEUVRUYLAUYF
      XEAVUIUVRVUJVBAVUQUVRAVUCVUPYLVBUVMUVKVUCUUDUUFUUGAVUNUVRVUDUYQYEVUOVUNUV
      RVUDUYQUVMUVJUUHUUIUUJUUKUULUVRUVRUWFUYBVUBWJAUVRUUMUWLUVMUVKUUPYSUUNVBUU
      OUUQVBUVSUYHUYIUURZUYAUVRUYDUXKVURAUYGUXJUVMEUUSYSVBUUTUVAUVBUVCYRVEAUVIU
      LMUVKULMUVLUVQWJAUVIARRDUVHARRCYTRRUVHYTAUWCBCIUWMUVDUVGUXRUVEUSAUVKUWLUS
      UVIUVKFUVFYBXT $.

    bpos.5 $e |- M = ( |_ ` ( sqrt ` ( 2 x. N ) ) ) $.
    $( Lemma for ~ bpos .  (Contributed by Mario Carneiro, 13-Mar-2014.) $)
    bposlem4 $p |- ( ph -> M e. ( 3 ... K ) ) $=
      ( c2 c3 wcel cle wbr c5 c9 cr cmul co csqrt cfv cfl cfz cuz cz cn 2nn 5nn
      cdiv eluznn sylancr nnmulcl nnred nnrpd rpge0d resqrtcld flcld c1 cc0 cdc
      sqrt9 9re a1i 10re caddc lep1 ax-mp 9p1e10 breqtri 5t2e10 mulcomli eluzle
      5cn 2cn syl wb clt wa 5re 2re pm3.2i lemul2 mp3an13 mpbid syl5eqbrr letrd
      2pos 0re 9pos ltleii rprege0d sqrtle flge sylancl eluz1i sylanbrc nndivre
      3z 3nn 3re sqrtgt0d syl112anc wceq remsqsqrt syl2anc breqtrd 3pos syl3anc
      lemuldiv flword2 elfzuzb oveq2i 3eltr4g ) AMFUAUBZUCUDZUEUDZNXQNULUBZUEUD
      ZUFUBZENDUFUBAXSNUGUDOZYAXSUGUDOZXSYBOAXSUHONXSPQZYCAXRAXQAXQAMUIOFUIOZXQ
      UIOUJARUIOFRUGUDOZYFUKHFRUMUNZMFUOUNZUPZAXQAXQYIUQZURZUSZUTANXRPQZYEANSUC
      UDZXRPVDASXQPQZYOXRPQZASVAVBVCZXQSTOZAVEVFYRTOAVGVFYJSYRPQASSVAVHUBZYRPYS
      SYTPQVESVIVJVKVLVFAYRMRUAUBZXQPRMYRVPVQVMVNARFPQZUUAXQPQZAYGUUBHRFVOVRAFT
      OZUUBUUCVSZAFYHUPRTOUUDMTOZVBMVTQZWAUUEWBUUFUUGWCWJWDRFMWEWFVRWGWHWIAYSVB
      SPQZWAXQTOZVBXQPQZWAYPYQVSYSUUHVEVBSWKVEWLWMWDAXQYKWNSXQWOUNWGWHZAXRTOZNU
      HOYNYEVSYMXAXRNWPWQWGNXSXAWRWSAUULXTTOZXRXTPQZYDYMAUUINUIOUUMYJXBXQNWTWQA
      XRNUAUBZXQPQZUUNAUUOXRXRUAUBZXQPAYNUUOUUQPQZUUKANTOZUULUULVBXRVTQYNUURVSU
      USAXCVFYMYMAXQYKXDNXRXRWEXEWGAUUIUUJUUQXQXFYJYLXQXGXHXIAUULUUIUUSVBNVTQZW
      AZUUPUUNVSYMYJUVAAUUSUUTXCXJWDVFXRXQNXLXKWGXRXTXMXKXSNYAXNWSLDYANUFKXOXP
      $.

    $( Lemma for ~ bpos .  Bound the product of all small primes in the
       binomial coefficient.  (Contributed by Mario Carneiro, 15-Mar-2014.)
       (Proof shortened by AV, 15-Sep-2021.) $)
    bposlem5 $p |- ( ph -> ( seq 1 ( x. , F ) ` M ) <_
                   ( ( 2 x. N ) ^c ( ( ( sqrt ` ( 2 x. N ) ) / 3 ) + 2 ) ) ) $=
      ( c1 c2 co cn wcel cle wbr cr vx vk cmul cseq cfv cppi cexp csqrt c3 cdiv
      caddc ccxp wf cv cbc cpc cn0 cprime cc0 cfz cuz 5nn eluznn sylancr nnnn0d
      id c5 fzctr bccl2 3syl pccl syl2anr ralrimiva pcmptcl simprd 3nn cfl nnzd
      cz 2z zmulcl zred 2nn nnmulcl nnrpd rpge0d resqrtcld flcld c9 cdc 9re a1i
      sqrt9 10re lep1 ax-mp 9p1e10 syl wb nnred clt wa 2re pm3.2i mp3an13 mpbid
      lemul2 syl5eqbrr letrd jca sylancl eluz1i sylanbrc ppicl nnexpcld nndivre
      3z readdcl wi wceq fveq2 oveq2d breq12d imbi2d cif eleq1 1ex fvmpt adantr
      ad2antrr nnre nngt0 syl3anc adantl sylan sylan9eq eqbrtrd ffvelrn syl2anc
      syl2an breqtri 5cn 2cn 5t2e10 mulcomli eluzle 5re 2pos 9pos ltleii sqrtle
      flge syl5eqel ffvelrnd recxpcld ppi1 syl6eq 1z seq1 1nprm mtbiri iffalsed
      0re 1nn eqtri 1le1 eqbrtri zcnd exp0d syl5breqr ffvelrnda ad2antlr lemul1
      nnz ppiprm expp1d eqtrd breq2d bitr4d simpr syl6eleq seqp1 peano2nn oveq1
      cc nnuz oveq12d ifbieq1d ovex ifex iftrue bposlem1 simpld nnmulcld sylbid
      letr mpand wn iffalse mulid1d 3eqtrd ppinprm biimprd pm2.61dan expcom a2d
      nncnd nnind mpcom cxpexp nn0red nn0ge0d ppiub flle syl5eqbr 3pos leadd1dd
      3re lediv1 2t1e2 nnge1d 1re eluz2gt1 cxpled eqbrtrrd ) AEUCCMUDZUEZNFUCOZ
      EUFUEZUGOZUYHUYHUHUEZUIUJOZNUKOZULOZAUYGAPPEUYFAPPCUMZPPUYFUMZABUNZUYHFUO
      OZUPOZBCJAUYSUQQZBURUYQURQZVUAUYRPQZUYTAVUAVFAFUQQFUSUYHUTOQVUBAFAVGPQFVG
      VAUEQZFPQZVBHFVGVCVDZVEFVHFUYHVIVJUYQUYRVKVLVMVNZVOZAUIPQZEUIVAUEZQEPQZVP
      AEUYKVQUEZVUILAVUKVSQUIVUKRSZVUKVUIQAUYKAUYHAUYHANVSQFVSQUYHVSQZVTAFVUEVR
      NFWAVDZWBZAUYHAUYHANPQVUDUYHPQZWCVUENFWDVDZWEWFZWGZWHAUIUYKRSZVULAUIWIUHU
      EZUYKRWMAWIUYHRSZVVAUYKRSZAWIMUSWJZUYHWITQZAWKWLVVDTQAWNWLVUOWIVVDRSAWIWI
      MUKOZVVDRVVEWIVVFRSWKWIWOWPWQUUAWLAVVDNVGUCOZUYHRVGNVVDUUBUUCUUDUUEAVGFRS
      ZVVGUYHRSZAVUCVVHHVGFUUFWRAFTQZVVHVVIWSZAFVUEWTZVGTQVVJNTQZUSNXASZXBZVVKU
      UGVVMVVNXCUUHXDZVGFNXGXEWRXFXHXIAVVEUSWIRSZXBUYHTQZUSUYHRSZXBVVBVVCWSVVEV
      VQWKUSWIUVCWKUUIUUJXDAVVRVVSVUOVURXJWIUYHUUKVDXFXHAUYKTQZUIVSQVUTVULWSVUS
      XQUYKUIUULXKXFUIVUKXQXLXMUUMEUIVCVDZUUNWTAUYJAUYHUYIVUQAETQZUYIUQQZAEVWAW
      TZEXNWRZXOWTAUYHUYMVUOVURAUYLTQZVVMUYMTQAVVTVUHVWFVUSVPUYKUIXPXKZXCUYLNXR
      XKZUUOVUJAUYGUYJRSZVWAAUAUNZUYFUEZUYHVWJUFUEZUGOZRSZXSAMUYFUEZUYHUSUGOZRS
      ZXSAUBUNZUYFUEZUYHVWRUFUEZUGOZRSZXSAVWRMUKOZUYFUEZUYHVXCUFUEZUGOZRSZXSAVW
      IXSUAUBEVWJMXTZVWNVWQAVXHVWKVWOVWMVWPRVWJMUYFYAVXHVWLUSUYHUGVXHVWLMUFUEUS
      VWJMUFYAUUPUUQYBYCYDVWJVWRXTZVWNVXBAVXIVWKVWSVWMVXARVWJVWRUYFYAVXIVWLVWTU
      YHUGVWJVWRUFYAYBYCYDVWJVXCXTZVWNVXGAVXJVWKVXDVWMVXFRVWJVXCUYFYAVXJVWLVXEU
      YHUGVWJVXCUFYAYBYCYDVWJEXTZVWNVWIAVXKVWKUYGVWMUYJRVWJEUYFYAVXKVWLUYIUYHUG
      VWJEUFYAYBYCYDAVWOMVWPRVWOMMRVWOMCUEZMMVSQVWOVXLXTUURUCCMUUSWPMPQVXLMXTUV
      DBMVUAUYQUYSUGOZMYEZMPCUYQMXTZVUAVXMMVXOVUAMURQUUTUYQMURYFUVAUVBJYGYHWPUV
      EUVFUVGAUYHAUYHVUNUVHZUVIUVJVWRPQZAVXBVXGAVXQVXBVXGXSZAVXQXBZVXCURQZVXRVX
      SVXTXBZVXBVWSUYHUCOZVXFRSZVXGVYAVXBVYBVXAUYHUCOZRSZVYCVYAVWSTQZVXATQVVRUS
      UYHXASZXBZVXBVYEWSVXSVYFVXTVXSVWSAPPVWRUYFVUGUVKZWTYIVYAVXAVYAUYHVWTAVUPV
      XQVXTVUQYJVYAVWRTQZVWTUQQVXQVYJAVXTVWRYKUVLVWRXNWRZXOWTAVYHVXQVXTAVUPVYHV
      UQVUPVVRVYGUYHYKUYHYLXJWRYJVWSVXAUYHUVMYMVYAVXFVYDVYBRVYAVXFUYHVWTMUKOZUG
      OVYDVYAVXEVYLUYHUGVXSVWRVSQZVXTVXEVYLXTVXQVYMAVWRUVNYNZVWRUVOYOYBVYAUYHVW
      TAUYHUWEQZVXQVXTVXPYJVYKUVPUVQUVRUVSVYAVXDVYBRSZVYCVXGVYAVXDVWSVXCCUEZUCO
      ZVYBRVXSVXDVYRXTZVXTVXSVWRMVAUEZQVYSVXSVWRPVYTAVXQUVTUWFUWAUCCMVWRUWBWRZY
      IVYAVYQUYHRSZVYRVYBRSZVYAVYQVXCVXCUYRUPOZUGOZUYHRVXSVXTVYQVXTWUEMYEZWUEVX
      SVXCPQZVYQWUFXTVXQWUGAVWRUWCZYNZBVXCVXNWUFPCUYQVXCXTZVUAVXTVXMWUEMUYQVXCU
      RYFWUJUYQVXCUYSWUDUGWUJVFUYQVXCUYRUPUWDUWGUWHJVXTWUEMVXCWUDUGUWIYGUWJYHWR
      ZVXTWUEMUWKYPVXSVUDVXTWUEUYHRSAVUDVXQVUEYIVXCFUWLYOYQVYAVYQTQZVVRVYFUSVWS
      XASZXBZWUBWUCWSVXSWULVXTVXSVYQAUYOWUGVYQPQVXQAUYOUYPVUFUWMWUHPPVXCCYRYTWT
      YIAVVRVXQVXTVUOYJVXSWUNVXTVXSVWSPQZWUNVYIWUOVYFWUMVWSYKVWSYLXJWRYIVYQUYHV
      WSXGYMXFYQVXSVYPVYCXBVXGXSZVXTVXSVXDTQVYBTQVXFTQWUPVXSVXDAUYPWUGVXDPQVXQV
      UGWUHPPVXCUYFYRYTWTVXSVYBVXSVWSUYHVYIAVUPVXQVUQYIZUWNWTVXSVXFVXSUYHVXEWUQ
      VXSVXCTQVXEUQQVXSVXCWUIWTVXCXNWRXOWTVXDVYBVXFUWPYMYIUWQUWOVXSVXTUWRZXBZVX
      GVXBWUSVXDVWSVXFVXARWUSVXDVYRVWSMUCOVWSVXSVYSWURWUAYIWUSVYQMVWSUCVXSWURVY
      QWUFMWUKVXTWUEMUWSYPYBWUSVWSWUSVWSVXSWUOWURVYIYIUXGUWTUXAWUSVXEVWTUYHUGVX
      SVYMWURVXEVWTXTVYNVWRUXBYOYBYCUXCUXDUXEUXFUXHUXIAUYHUYIULOZUYJUYNRAVYOVWC
      WUTUYJXTVXPVWEUYHUYIUXJYSAUYIUYMRSWUTUYNRSAUYIEUIUJOZNUKOZUYMAUYIVWEUXKZA
      WVATQZVVMWVBTQAVWBVUHWVDVWDVPEUIXPXKZXCWVANXRXKVWHAVWBUSERSUYIWVBRSVWDAEA
      EVWAVEUXLEUXMYSAWVAUYLNWVEVWGVVMAXCWLAEUYKRSZWVAUYLRSZAEVUKUYKRLAVVTVUKUY
      KRSVUSUYKUXNWRUXOAVWBVVTUITQZUSUIXASZXBZWVFWVGWSVWDVUSWVJAWVHWVIUXRUXPXDW
      LEUYKUIUXSYMXFUXQXIAUYHUYIUYMVUOAUYHNVAUEQZMUYHXASAVUMNUYHRSWVKVUNANNMUCO
      ZUYHRUXTAMFRSZWVLUYHRSZAFVUEUYAAVVJWVMWVNWSZVVLMTQVVJVVOWVOUYBVVPMFNXGXEW
      RXFXHNUYHVTXLXMUYHUYCWRWVCVWHUYDXFUYEXI $.

    $( Lemma for ~ bpos .  By using the various bounds at our disposal, arrive
       at an inequality that is false for ` N ` large enough.  (Contributed by
       Mario Carneiro, 14-Mar-2014.)  (Revised by Wolf Lammen, 12-Sep-2020.) $)
    bposlem6 $p |- ( ph -> ( ( 4 ^ N ) / N ) <
      ( ( ( 2 x. N ) ^c ( ( ( sqrt ` ( 2 x. N ) ) / 3 ) + 2 ) ) x.
        ( 2 ^c ( ( ( 4 x. N ) / 3 ) - 5 ) ) ) ) $=
      ( co c2 c3 wcel cr clt wbr cle c4 cexp cdiv cmul cfv caddc ccxp c5 cn cn0
      4nn cuz 5nn eluznn sylancr nnred cc0 cfz syl nnmulcl nnrpd rpge0d nndivre
      cmin 3nn sylancl 2re rpred crp 2rp rpcxpcl remulcld c1 cz eqid cseq wf cv
      5re cpc cprime id pccl syl2anr ralrimiva ffvelrnd 2z cfl nnzi zsubcl zred
      ccht ce cdvds wne wb nnne0d syl2anc dvdsval2 syl3anc mpbid eluzle efchtcl
      nnzd wral wa wn cif syl2an adantl adantr wceq a1i 3imtr4d 3brtr4d iffalse
      wi iftrue pcmpt2 cmpt prmorcht oveq2d eqtrd mpbird nngt0d c6 4re 6re clog
      ax-mp eqtri 3re chtcl ltletrd 4pos letrd cc zcnd 2cn pm3.2i csqrt nnexpcl
      cbc nnnn0d nndivred fzctr bccl2 2nn resqrtcld readdcl rpcxpcld resubcl 4z
      df-5 uzid peano2uz mp2b eqeltri uztrn2 bclbnd pcmptcl simprd elfzuz flcld
      bposlem4 syl5eqel zmulcl bposlem3 elfzuz3 pcmptdvds efchtdvds prmz breq1i
      uztrn syl6bbr ltnle bitrd bposlem1 sylan reexpcld resqcld lelttr resqrtth
      fllt mpand breq1d nn0zd prmgt1 ltexp2d df-2 breq2i syl6ib sqrtge0d lt2sqd
      prmnn 1z zleltp1 sylbird imp adantrl breq12d mpbiri pm2.61dan simpr oveq1
      0le0 oveq12d nncn exp1d ifeq1d mpteq2ia eqcomi 1nn0 eqidd pc2dvds divgt0d
      weq elnnz sylanbrc dvdsle mpd 4lt6 cht3 fveq2i 6pos reeflog chtwordi efle
      elrpii syl5eqbrr syl222anc 2lt3 chtub relogcl remulcl eflt reexplog recni
      ltdiv2 mulcom fveq2d breqtrrd 3p2e5 oveq1i 3cn pncan3oi eqtr3i oveq2i 5cn
      subsub mp3an23 syl5eqr 2ne0 cxpexpz mp3an12 2cnne0 cxpadd mp3an13 3eqtr3d
      2nn0 cxpexp mp2an sq2 breqtrd ltdivmul2 lttrd lelttrd nnre nngt0 ltdivmul
      syl6eq jca eqbrtrrd bposlem5 lemul1d flle syl5eqbr 2pos lemul2 nncnd 3ne0
      divass 2t2e4 mulass syl5reqr oveq1d eqtr3d lesub1dd 1lt2 cxpled lemul2d )
[encoded data, 5360 characters]
      SWVJVYLVYDVWKXAYPYNVVF $.
  $}

  ${
    bposlem7.1 $e |- F = ( n e. NN |->
                           ( ( ( ( sqrt ` 2 ) x. ( G ` ( sqrt ` n ) ) ) +
                               ( ( 9 / 4 ) x. ( G ` ( n / 2 ) ) ) ) +
                             ( ( log ` 2 ) / ( sqrt ` ( 2 x. n ) ) ) ) ) $.
    bposlem7.2 $e |- G = ( x e. RR+ |-> ( ( log ` x ) / x ) ) $.
    ${
      $d n A $.  $d n B $.  $d n G $.  $d x A $.  $d x B $.
      bposlem7.3 $e |- ( ph -> A e. NN ) $.
      bposlem7.4 $e |- ( ph -> B e. NN ) $.
      bposlem7.5 $e |- ( ph -> ( _e ^ 2 ) <_ A ) $.
      bposlem7.6 $e |- ( ph -> ( _e ^ 2 ) <_ B ) $.
      $( Lemma for ~ bpos .  The function ` F ` is decreasing.  (Contributed by
         Mario Carneiro, 13-Mar-2014.) $)
      bposlem7 $p |- ( ph -> ( A < B -> ( F ` B ) < ( F ` A ) ) ) $=
        ( clt wbr c2 co crp wcel cr csqrt cfv cmul c9 cdiv caddc clog cexp wceq
        c4 wa nnrpd rpsqrtcld cv fveq2 id oveq12d ovex fvmpt syl breq12d ceu wb
        cle rpred cc0 rprege0d resqrtth breqtrrd rpge0d ere epos ltleii mpanl12
        le2sq syl2anc mpbird logdivlt syl22anc lt2sqd relogcl rerpdivcl mpancom
        0re 3bitr2rd fmpti ffvelrni 2rp rpsqrtcl mp1i ltmul2d 3bitr3d nnred 2re
        biimpd 2pos pm3.2i ltdiv1 syl3anc rphalfcld remulcli resqcli c3 egt2lt3
        a1i simpli lemul2i ax-mp mpbi recni sqvali breqtrri letrd mp3an13 mpbid
        lemuldiv bitrd cn 9nn nnrp rpdivcl syl2an mp2an 3bitr2d jcad wi sqrt2re
        4nn remulcl sylancr 9re lt2add syld rpmulcl rprege0 fveq2d oveq2d oveq1
        readdcld oveq2 4re 4ne0 redivcli ltmul2 lt2sq bitr2d c1 rplogcl ltdiv2d
        1lt2 3bitrd rpre sylibrd ) ACDNOZPUAUBZDUAUBZGUBZUCQZUDUJUEQZDPUEQZGUBZ
        UCQZUFQZPUGUBZPDUCQZUAUBZUEQZUFQZUUOCUAUBZGUBZUCQZUUSCPUEQZGUBZUCQZUFQZ
        UVDPCUCQZUAUBZUEQZUFQZNOZDFUBZCFUBZNOAUUNUVCUVONOZUVGUVRNOZUKZUVTAUUNUW
        CUWDAUUNUURUVKNOZUVBUVNNOZUKZUWCAUUNUWFUWGAUUNUWFAUVIPUHQZUUPPUHQZNOZUU
        QUVJNOZUUNUWFAUWLUUPUGUBZUUPUEQZUVIUGUBZUVIUEQZNOZUVIUUPNOZUWKAUUQUWNUV
        JUWPNAUUPRSZUUQUWNUIADADKULZUMZBUUPBUNZUGUBZUXBUEQZUWNRGUXBUUPUIZUXCUWM
        UXBUUPUEUXBUUPUGUOUXEUPUQIUWMUUPUEURUSUTAUVIRSZUVJUWPUIACACJULZUMZBUVIU
        XDUWPRGUXBUVIUIZUXCUWOUXBUVIUEUXBUVIUGUOUXIUPUQIUWOUVIUEURUSUTVAAUVITSZ
        VBUVIVDOZUUPTSZVBUUPVDOZUWRUWQVCAUVIUXHVEZAUXKVBPUHQZUWIVDOZAUXOCUWIVDL
        ACTSZVFCVDOUKUWICUIACUXGVGCVHUTZVIAUXJVFUVIVDOZUXKUXPVCZUXNAUVIUXHVJZVB
        TSZVFVBVDOZUXJUXSUKUXTVKVFVBWDVKVLVMZVBUVIVOVNVPVQAUUPUXAVEZAUXMUXOUWJV
        DOZAUXODUWJVDMADTSZVFDVDOUKUWJDUIADUWTVGDVHUTZVIAUXLVFUUPVDOZUXMUYFVCZU
        YEAUUPUXAVJZUYBUYCUXLUYIUKUYJVKUYDVBUUPVOVNVPVQUVIUUPVRVSAUVIUUPUXNUYEU
        YAUYKVTWEAUWICUWJDNUXRUYHVAAUUQUVJUUOAUWSUUQTSZUXARTUUPGBRTUXDGIUXCTSUX
        BRSUXDTSUXBWAUXCUXBWBWCWFZWGUTZAUXFUVJTSZUXHRTUVIGUYMWGUTZPRSZUUORSAWHP
        WIWJWKWLWOAUUNUWGAUUNUUTUGUBZUUTUEQZUVLUGUBZUVLUEQZNOZUVAUVMNOUWGAUUNUV
        LUUTNOZVUBAUXQUYGPTSZVFPNOZUKZUUNVUCVCACJWMZADKWMZVUFAVUDVUEWNWPWQZXEZC
        DPWRWSAUVLTSVBUVLVDOZUUTTSVBUUTVDOZVUCVUBVCAUVLACUXGWTZVEAVBPUCQZCVDOZV
        UKAVUNUXOCVUNTSAVBPVKWNXAXEZUXOTSAVBVKXBXEZVUGVUNUXOVDOAVUNVBVBUCQZUXOV
        DPVBVDOZVUNVURVDOZPVBWNVKPVBNOVBXCNOXDXFVMVFVBNOVUSVUTVCVLPVBVBWNVKVKXG
        XHXIVBVBVKXJXKXLXEZLXMAUXQVUOVUKVCZVUGUYBUXQVUFVVBVKVUIVBCPXPXNUTXOAUUT
        ADUWTWTZVEAVUNDVDOZVULAVUNUXODVUPVUQVUHVVAMXMAUYGVVDVULVCZVUHUYBUYGVUFV
        VEVKVUIVBDPXPXNUTXOUVLUUTVRVSXQAUVAUYSUVMVUANAUUTRSZUVAUYSUIVVCBUUTUXDU
        YSRGUXBUUTUIZUXCUYRUXBUUTUEUXBUUTUGUOVVGUPUQIUYRUUTUEURUSUTAUVLRSZUVMVU
        AUIVUMBUVLUXDVUARGUXBUVLUIZUXCUYTUXBUVLUEUXBUVLUGUOVVIUPUQIUYTUVLUEURUS
        UTVAAUVAUVMUUSAVVFUVATSZVVCRTUUTGUYMWGUTZAVVHUVMTSZVUMRTUVLGUYMWGUTZUUS
        RSZAUDXRSZUJXRSZVVNXSYHVVOUDRSUJRSVVNVVPUDXTUJXTUDUJYAYBYCXEWKYDWOYEAUU
        RTSZUVBTSZUVKTSZUVNTSZUWHUWCYFAUUOTSZUYLVVQYGUYNUUOUUQYIYJZAUUSTSZVVJVV
        RUDUJYKUUAUUBUUCZVVKUUSUVAYIYJZAVWAUYOVVSYGUYPUUOUVJYIYJZAVWCVVLVVTVWDV
        VMUUSUVMYIYJZUURUVBUVKUVNYLVSYMAUUNUWDAUUNUVPUVENOZUVQUVFNOZUWDAUXQUYGV
        UFUUNVWHVCVUGVUHVUJCDPUUDWSAVWIUVQPUHQZUVFPUHQZNOZVWHAUVQRSZUVFRSZVWIVW
        LVCZAUVPAUYQCRSUVPRSWHUXGPCYNYJZUMZAUVEAUYQDRSUVERSWHUWTPDYNYJZUMZVWMUV
        QTSVFUVQVDOUKUVFTSVFUVFVDOUKVWOVWNUVQYOUVFYOUVQUVFUUEYBVPAVWJUVPVWKUVEN
        AUVPTSVFUVPVDOUKVWJUVPUIAUVPVWPVGUVPVHUTAUVETSVFUVEVDOUKVWKUVEUIAUVEVWR
        VGUVEVHUTVAUUFAUVQUVFUVDVWQVWSUVDRSZAVUDUUGPNOVWTWNUUJPUUHYCZXEUUIUUKWO
        YEAUVCTSUVGTSZUVOTSUVRTSZUWEUVTYFAUURUVBVWBVWEYSAUVDTSZVWNVXBVWTVXDVXAU
        VDUULXHZVWSUVDUVFWBYJAUVKUVNVWFVWGYSAVXDVWMVXCVXEVWQUVDUVQWBYJUVCUVGUVO
        UVRYLVSYMAUWAUVHUWBUVSNADXRSUWAUVHUIKEDUUOEUNZUAUBZGUBZUCQZUUSVXFPUEQZG
        UBZUCQZUFQZUVDPVXFUCQZUAUBZUEQZUFQZUVHXRFVXFDUIZVXMUVCVXPUVGUFVXRVXIUUR
        VXLUVBUFVXRVXHUUQUUOUCVXRVXGUUPGVXFDUAUOYPYQVXRVXKUVAUUSUCVXRVXJUUTGVXF
        DPUEYRYPYQUQVXRVXOUVFUVDUEVXRVXNUVEUAVXFDPUCYTYPYQUQHUVCUVGUFURUSUTACXR
        SUWBUVSUIJECVXQUVSXRFVXFCUIZVXMUVOVXPUVRUFVXSVXIUVKVXLUVNUFVXSVXHUVJUUO
        UCVXSVXGUVIGVXFCUAUOYPYQVXSVXKUVMUUSUCVXSVXJUVLGVXFCPUEYRYPYQUQVXSVXOUV
        QUVDUEVXSVXNUVPUAVXFCPUCYTYPYQUQHUVOUVRUFURUSUTVAUUM $.
    $}

    $( Lemma for ~ bpos .  Evaluate ` F ( 6 4 ) ` and show it is less than
       ` log 2 ` .  (Contributed by Mario Carneiro, 14-Mar-2014.) $)
    bposlem8 $p |- ( ( F ` ; 6 4 ) e. RR /\ ( F ` ; 6 4 ) < ( log ` 2 ) ) $=
      ( c4 wcel c2 clt wbr c3 cdiv co c5 cmul caddc c1 c8 wceq c6 cdc cfv csqrt
      cr clog c9 cexp cn 4nn fveq2 8cn eqtri fveq2i cc0 cle 0re 8re 8pos ltleii
      cv ax-mp eqtr3i syl6eq fveq2d crp 8nn nnrp cu2 2rp relogexp mp2an oveq12d
      cz id 3cn 2nn mp2b recni nnne0i div23i ovex oveq2d sqrt2re divcli mulassi
      fvmpt 4cn 2re 0le2 oveq2i 4t2e8 3eqtri cc mulcli rpmulcl rpne0 wa divcan5
      wne mp3an1 mp4an 4ne0 eqtr4i 3eqtr3ri oveq1i df-6 cn0 2cn 3eqtr3i nnexpcl
      5nn0 expp1 nncni 2ne0 5nn 5cn syl6eqr adddiri nnrei nngt0i mp3an redivcli
      9cn 3re 4re 9re 5re remulcli c7 ax-1cn mulcomli cmin 3brtr4i wb 7re mpbir
      4nn0 mpbi 1re 6nn0 decnncl sqvali 8t8e64 sqrtsqi relogcl mul12i remsqsqrt
      3z rpsqrtcl divdiv1 divassi oveq1 divcan4i nnzi sqrtmulii sylancr divrec2
      2exp6 oveq2 mulcomi recdiv2 addcli reccli readdcli eqeltri add32i divdiri
      rereccli 6cn df-7 3t2e6 oveq12i 3eqtr4ri divdiv32i 9nn0 0nn0 9lt10 decltc
      7cn 4lt5 7t7e49 mul4i 5t2e10 dec0u 7pos rpge0 rpre lt2msqi rpgt0 ltdivmul
      mp3an12 ltdiv1ii divsubdir 5p3e8 pncan3oi dividi 5lt8 ltadd2i df-9 adddii
      mulid2i mulid1i nnmulcli divmuldivi df-4 3nn0 4p3e7 5p2e7 addcomi 3eqtr2i
      6re expadd 2nn0 sq2 ltsub2 eqbrtrri resubcli lttri ltaddsubi eqbrtri 1lt2
      rplogcl ltmul1ii eqcomi pm3.2i ) UAGUBZCUCZUEHUYHIUFUCZJKUYHLGMNZIUDUCZMN
[encoded data, 4640 characters]
      KVWLRIJKWYLWIUYBIUYCVLUYIUWJVBUYDYSWUGWUKUYIUYIVWCUXBUYEYNUYF $.

    $d n q N $.  $d n G $.  $d n q ph $.  $d p q N $.  $d x N $.
    bposlem9.3 $e |- ( ph -> N e. NN ) $.
    bposlem9.4 $e |- ( ph -> ; 6 4 < N ) $.
    bposlem9.5 $e |- ( ph -> -. E. p e. Prime ( N < p /\ p <_ ( 2 x. N ) ) ) $.
    $( Lemma for ~ bpos .  Derive a contradiction.  (Contributed by Mario
       Carneiro, 14-Mar-2014.)  (Proof shortened by AV, 15-Sep-2021.) $)
    bposlem9 $p |- ( ph -> ps ) $=
      ( wcel c2 co c3 cr cmul caddc vq cfv c6 c4 clt wbr cn 4nn a1i ceu cexp c8
      cle ere 8re mp2an ltleii cc0 wb 0re mp4an recni sylancr mpd clog wa csqrt
      c9 cdiv wceq fveq2 fveq2d oveq2d oveq12d ovex fvmpt syl sqrt2re rpsqrtcld
      cv crp relogcld rerpdivcld eqeltrd remulcl 4re readdcld 2rp relogcl ax-mp
      id cmin c5 sylancl resubcld 3nn nndivre 2re ce ccxp cprime c1 cfl cz 4nn0
      lttrd wrex eqid recnd syl2anc eqtr4d rpcnd rpne0d wne 2cn mp3an12i mpbird
      cc 2ne0 oveq1d mp3an23 relogmul 2t2e4 eqtrd oveq1i 3cn 3ne0 eqtr3i eqtr3d
      mp3an13 3eqtr4d adddid 5cn mulcl 3eqtrd mulassd divcan2d mulcld remsqsqrt
      addassd cdc 6nn0 decnncl egt2lt3 simpri 3lt8 lttri epos 8pos le2sq sqvali
      3re mpbi 8t8e64 eqtri breqtri resqcli nnrei nnred letrd bposlem7 bposlem8
      wi ltle simpld oveq1 oveq2 nnrpd 9re redivcli rphalfcld rpmulcl rerpdivcl
      4ne0 simprd nnrp rpge0 resqrtcld readdcl remulcld 5re resubcl cbc cpc cif
      rpre cmpt cuz nnzd df-5 6nn 4lt10 declti 4z zltp1le mpbid syl5eqbr eluz1i
      5nn nnzi sylanbrc breq2 anbi12d cbvrexv sylnib bposlem6 reexplog reeflogd
      breq1 eqcomd efsub cxpefd cxpef efadd 3brtr3d eflt ltsub1dd mulcom mulass
      2timesi fveq2i 3eqtr2i oveq2i syl6eq 4p2e6 4cn adddir syl5eqr div23 3t2e6
      6cn pm3.2i divcan3i divdir mp3an3 3eqtr3d rpdivcl pncan2d subdird adddird
      nnncan2d mulcli nnncan1d addsubassd subdiri 3p2e5 pncan2 df-3 1cnd syl5eq
      3rp mulid2d relogdiv subdi divmuldivi 3t3e9 oveq12i eqtr2i divcli mpanr12
      mul4 divcan6 2cnne0 div12 divcld npncan3d remulcli rpge0d div23d rprege0d
      subcl 0le2 sqrtmul mul4d 2timesd relogmuld addcomd 3eqtr4rd addcl 3brtr4d
      addcld ltmul2d ltnsymd pm2.21dd ) AGEUBZUCUDUUAZEUBZUEUFZBAVWFGUEUFZVWHLA
[encoded data, 6800 characters]
      NYUPXYFXUPXWMVVSVCYUQYTYKVVRVVTAVXDVWEWVFWVEWVDXWGVWBXQXFVWCVWD $.
  $}

  ${
    $d n p N $.  $d n x N $.
    $( Bertrand's postulate: there is a prime between ` N ` and ` 2 N ` for
       every positive integer ` N ` .  This proof follows Erd&#337;s's method,
       for the most part, but with some refinements due to Shigenori Tochiori
       to save us some calculations of large primes.  See
       ~ http://en.wikipedia.org/wiki/Proof_of_Bertrand%27s_postulate for an
       overview of the proof strategy.  This is Metamath 100 proof #98.
       (Contributed by Mario Carneiro, 14-Mar-2014.) $)
    bpos $p |- ( N e. NN -> E. p e. Prime ( N < p /\ p <_ ( 2 x. N ) ) ) $=
      ( vx vn cn wcel c6 c4 cle wbr cv clt c2 cmul co wa csqrt cfv clog cdiv wn
      cdc cprime wrex bpos1 crp cmpt c9 caddc eqid simpll simplr simpr bposlem9
      pm2.18da cr wo nnre 6nn0 4nn0 deccl nn0rei lelttric sylancl mpjaodan ) AE
      FZAGHUBZIJZABKZLJVIMANOIJPBUCUDZVGALJZABUEVFVKPZVJVLVJUAZPVJCDDEMQRDKZQRC
      UFCKZSRVOTOUGZRNOUHHTOVNMTOVPRNOUIOMSRMVNNOQRTOUIOUGZVPABVQUJVPUJVFVKVMUK
      VFVKVMULVLVMUMUNUOVFAUPFVGUPFVHVKUQAURVGGHUSUTVAVBAVGVCVDVE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Quadratic residues and the Legendre symbol
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  If the congruence ` ( ( x ^ 2 ) mod p ) = ( n mod p ) ` has a solution we say
  that ` n ` is a _quadratic residue_ ` mod p `.  If the congruence has no
  solution we say that ` n ` is a _quadratic nonresidue_ ` mod p `, see
  definition in [ApostolNT] p. 178.  The _Legendre symbol_ ` ( n /L p ) ` is
  defined in a way that its value is ` 1 ` if ` n ` is a quadratic residue
  ` mod p ` and ` -u 1 ` if ` n ` is a quadratic nonresidue ` mod p ` (and
  ` 0 ` if ` p ` divides ` n `), see ~ lgsqr .

  Originally, the Legendre symbol ` ( N /L P ) ` was defined for odd primes
  ` P ` only (and arbitrary integers ` N `) by Adrien-Marie Legendre in 1798,
  see definition in [ApostolNT] p. 179.  It was generalized to be defined for
  any positive odd integer by Carl Gustav Jacob Jacobi in 1837 (therefore
  called "Jacobi symbol" since then), see definition in [ApostolNT] p. 188.
  Finally, it was generalized to be defined for any integer by Leopold
  Kronecker in 1885 (therefore called "Kronecker symbol" since then).  The
  definition ~ df-lgs for the "Legendre symbol" ` /L ` is actually the
  definition of the "Kronecker symbol".  Since only one definition (and one
  class symbol) are provided in set.mm, the names "Legendre symbol", "Jacobi
  symbol" and "Kronecker symbol" are used synonymously for ` /L `, but mostly
  it is called "Legendre symbol", even if it is used in the context of a
  "Jacobi symbol" or "Kronecker symbol".

$)

  $c /L $.

  $( Extend class notation with the Legendre symbol function. $)
  clgs $a class /L $.

  ${
    $d a m n $.
    $( Define the Legendre symbol (actually the Kronecker symbol, which extends
       the Legendre symbol to all integers, and also the Jacobi symbol, which
       restricts the Kronecker symbol to positive odd integers).  See
       definition in [ApostolNT] p. 179 resp. definition in [ApostolNT] p. 188.
       (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    df-lgs $a |- /L = ( a e. ZZ , n e. ZZ |-> if ( n = 0 ,
      if ( ( a ^ 2 ) = 1 , 1 , 0 ) , ( if ( ( n < 0 /\ a < 0 ) , -u 1 , 1 ) x.
      ( seq 1 ( x. , ( m e. NN |-> if ( m e. Prime ,
        ( if ( m = 2 , if ( 2 || a , 0 , if ( ( a mod 8 ) e. { 1 , 7 } ,
          1 , -u 1 ) ) , ( ( ( ( a ^ ( ( m - 1 ) / 2 ) ) + 1 ) mod m ) - 1 ) )
            ^ ( m pCnt n ) ) , 1 ) ) ) ` ( abs ` n ) ) ) ) ) $.
  $}

  $( ` { -u 1 , 0 , 1 } ` is the set of all integers with absolute value at
     most ` 1 ` .  (Contributed by AV, 13-Jul-2021.) $)
  zabsle1 $p |- ( Z e. ZZ -> ( Z e. { -u 1 , 0 , 1 }
                               <-> ( abs ` Z ) <_ 1 ) ) $=
    ( cz wcel c1 cneg cc0 cabs cfv cle wbr wceq fveq2 eqbrtri syl6eqbr wa cr wi
    w3o adantl com12 ctp eltpi ax-1cn absnegi abs1 eqtri 1le1 abs0 0le1 syl zre
    3jaoi 1red absled cn elz 3mix2 a1d nnle1eq1 biimpac 3mix3d elnnz1 lenegcon2
    ex wb mpancom neg1rr a1i id letri3d 3mix1 eqcoms syl6bir adantr sylbid impd
    com13 sylbi imp eltpg mpbird exp32 impcom impbid2 ) ABCZADEZFDUACZAGHZDIJZW
    GAWFKZAFKZADKZRZWIAWFFDUBWJWIWKWLWJWHWFGHZDIAWFGLWNDDIWNDGHZDDUCUDUEUFUGMNW
    KWHFGHZDIAFGLWPFDIUHUIMNWLWHWODIADGLWODDIUEUGMNULUJWEWIWFAIJZADIJZOZWGWEADA
    UKWEUMUNWEAPCZWKAUOCZAEZUOCZRZOWSWGQZAUPXDWTXEXDWTWSWGXDWTWSOZOWGWMXDXFWMWK
    XFWMQZXAXCWKWMXFWKWJWLUQURXFXAWMWSXAWMQZWTWRXHWQWRXAWMWRXAOWLWJWKXAWRWLAUSU
    TVAVDSSTXCXBBCZDXBIJZOXGXBVBXJXGXIXJWTWSWMWTXJWSWMQZWTXJAWFIJZXKDPCWTXJXLVE
    WTUMDAVCVFWSXLWTWMWQXLWTWMQZQWRWQXLXMWTWQXLOZWMWTXNWFAKWMWTWFAWFPCWTVGVHWTV
    IVJWMAWFWJWKWLVKVLVMTVDVNVQVOTVPSVRULVSXFWGWMVEZXDWTXOWSAWFFDPVTVNSWAWBWCVR
    VOWD $.

  ${
    $( When ` a ` is coprime to the prime ` p ` , ` a ^ ( ( p - 1 ) / 2 ) ` is
       equivalent ` mod p ` to ` 1 ` or ` -u 1 ` , and so adding ` 1 ` makes it
       equivalent to ` 0 ` or ` 2 ` .  (Contributed by Mario Carneiro,
       4-Feb-2015.) $)
    lgslem1 $p |- ( ( A e. ZZ /\ P e. ( Prime \ { 2 } ) /\ -. P || A ) ->
      ( ( ( A ^ ( ( P - 1 ) / 2 ) ) + 1 ) mod P ) e. { 0 , 2 } ) $=
      ( cz wcel cprime c2 cdvds wbr c1 cmin co cexp cmo cc0 wceq syl syl2anc wb
      cn0 a1i csn cdif wn w3a cdiv caddc cpr cmul cphi cfv cgcd eldifi 3ad2ant2
      wo prmnn simp1 prmz gcdcom simp3 coprm mpbid eqtrd eulerth syl3anc phiprm
      cn nnm1nn0 eqeltrd zexpcl 1zzd moddvds nn0cnd 2cnd wne 2ne0 eqtr4d oveq2d
      divcan1d zcnd 2nn0 oddprm nnnn0d expmuld oveq1d sq1 oveq2i syl6eqr ax-1cn
      subsq sylancl breqtrd peano2zd peano2zm euclemma dvdsval3 crp cle clt 2re
      cc 2z cr nnrpd cuz prmuz2 eluzle eldifsni nnred ltlend mpbir2and syl22anc
      0le2 eqeq2d df-2 pnpcan2d syl5eq breq2d 3bitr3rd orbi12d ovex elpr sylibr
      modid ) ACDZBEFUAZUBDZBAGHUCZUDZABIJKZFUEKZLKZIUFKZBMKZNOZYMFOZUNZYMNFUGD
      YHBYLGHZBYKIJKZGHZUNZYPYHBYLYRUHKZGHZYTYHBABUIUJZLKZIJKZUUAGYHUUDBMKIBMKO
      ZBUUEGHZYHBVFDZYDABUKKZIOUUFYHBEDZUUHYFYDUUJYGBEYEULUMZBUOPZYDYFYGUPZYHUU
      IBAUKKZIYHYDBCDZUUIUUNOUUMYHUUJUUOUUKBUQPABURQYHYGUUNIOZYDYFYGUSYHUUJYDYG
      UUPRUUKUUMBAUTQVAVBABVCVDYHUUHUUDCDZICDUUFUUGRUULYHYDUUCSDUUQUUMYHUUCYISY
      HUUJUUCYIOUUKBVEPZYHUUHYISDUULBVGPZVHAUUCVIQYHVJUUDIBVKVDVAYHUUEYKFLKZIFL
      KZJKZUUAYHUUEUUTIJKUVBYHUUDUUTIJYHUUDAYJFUHKZLKUUTYHUUCUVCALYHUUCYIUVCUUR
      YHYIFYHYIUUSVLYHVMFNVNYHVOTVRVPVQYHAYJFYHAUUMVSFSDYHVTTYHYJYFYDYJVFDYGBWA
      UMWBZWCVBWDUVAIUUTJWEWFWGYHYKWTDIWTDZUVBUUAOYHYKYHYDYJSDYKCDZUUMUVDAYJVIQ
      ZVSZWHYKIWIWJVBWKYHUUJYLCDZYRCDZUUBYTRUUKYHYKUVGWLZYHUVFUVJUVGYKWMPBYLYRW
      NVDVAYHYQYNYSYOYHUUHUVIYQYNRUULUVKBYLWOQYHYMFBMKZOZBYLFJKZGHZYOYSYHUUHUVI
      FCDZUVMUVORUULUVKUVPYHXATYLFBVKVDYHUVLFYMYHFXBDZBWPDNFWQHZFBWRHZUVLFOUVQY
      HWSTZYHBUULXCUVRYHXLTYHUVSFBWQHZBFVNZYHBFXDUJDZUWAYHUUJUWCUUKBXEPFBXFPYFY
      DUWBYGBEFXGUMYHFBUVTYHBUULXHXIXJFBYCXKXMYHUVNYRBGYHUVNYLIIUFKZJKYRFUWDYLJ
      XNWFYHYKIIUVHUVEYHWHTZUWEXOXPXQXRXSVAYMNFYLBMXTYAYB $.

    lgslem2.z $e |- Z = { x e. ZZ | ( abs ` x ) <_ 1 } $.
    $( The set ` Z ` of all integers with absolute value at most ` 1 ` contains
       ` { -u 1 , 0 , 1 } ` .  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgslem2 $p |- ( -u 1 e. Z /\ 0 e. Z /\ 1 e. Z ) $=
      ( c1 cneg wcel cc0 cz cle wbr 1le1 cabs cfv wceq fveq2 abs1 syl6eq breq1d
      elrab2 mpbir2an neg1z cv ax-1cn absnegi eqtri 0z 0le1 abs0 1z 3pm3.2i ) D
      EZBFZGBFZDBFZULUKHFDDIJZUAKAUBZLMZDIJZUOAUKHBUPUKNZUQDDIUSUQUKLMZDUPUKLOU
      TDLMZDDUCUDPUEQRCSTUMGHFGDIJZUFUGURVBAGHBUPGNZUQGDIVCUQGLMGUPGLOUHQRCSTUN
      DHFUOUIKURUOADHBUPDNZUQDDIVDUQVADUPDLOPQRCSTUJ $.

    $d x A $.  $d x B $.
    $( The set ` Z ` of all integers with absolute value at most ` 1 ` is
       closed under multiplication.  (Contributed by Mario Carneiro,
       4-Feb-2015.) $)
    lgslem3 $p |- ( ( A e. Z /\ B e. Z ) -> ( A x. B ) e. Z ) $=
      ( cz wcel cabs cfv c1 cle wbr wa cmul co wceq cr jca fveq2 breq1d zcn cc0
      zmulcl ad2ant2r cc absmul syl2an wi abscl absge0 syl adantr 1red lemul12a
      adantl syl22anc imp an4s 1t1e1 syl6breq eqbrtrd cv elrab2 anbi12i 3imtr4i
      ) BFGZBHIZJKLZMZCFGZCHIZJKLZMZMZBCNOZFGZVOHIZJKLZMBDGZCDGZMVODGVNVPVRVFVJ
      VPVHVLBCUCUDVNVQVGVKNOZJKVFVJVQWAPZVHVLVFBUEGZCUEGZWBVJBUAZCUAZBCUFUGUDVN
      WAJJNOZJKVFVJVHVLWAWGKLZVFVJMZVHVLMZWHWIVGQGZUBVGKLZMZJQGZVKQGZUBVKKLZMZW
      NWJWHUHVFWMVJVFWCWMWEWCWKWLBUIBUJRUKULWIUMZVJWQVFVJWDWQWFWDWOWPCUICUJRUKU
      OWRVGJVKJUNUPUQURUSUTVARVSVIVTVMAVBZHIZJKLZVHABFDWSBPWTVGJKWSBHSTEVCXAVLA
      CFDWSCPWTVKJKWSCHSTEVCVDXAVRAVOFDWSVOPWTVQJKWSVOHSTEVCVE $.

    $( The function ` F ` is closed in integers with absolute value less than
       ` 1 ` (namely ` { -u 1 , 0 , 1 } ` , see ~ zabsle1 ).  (Contributed by
       Mario Carneiro, 4-Feb-2015.) $)
    lgslem4 $p |- ( ( A e. ZZ /\ P e. ( Prime \ { 2 } ) ) ->
      ( ( ( ( A ^ ( ( P - 1 ) / 2 ) ) + 1 ) mod P ) - 1 ) e. Z ) $=
      ( cz wcel cprime c2 wa wbr c1 cmin co cmo cc0 cr wceq syl2anc syl6eqel cn
      csn cdif cdvds cdiv cexp caddc crp cn0 simpll oddprm ad2antlr nnnn0d zred
      zexpcl 0red 1red clt cuz cfv eldifi prmuz2 syl eluz2b2 sylib simpld nnrpd
      simpr wb dvdsval3 mpbid 0mod eqtr4d modexp syl221anc 0expd oveq1d modadd1
      0zd eqtrd 0p1e1 oveq1i syl6eq nnred simprd 1mod 1m1e0 cneg lgslem2 simp2i
      eqeltri wn w3a wo lgslem1 elpri oveq1 df-neg simp1i eqeltrri 2m1e1 simp3i
      cpr jaoi 3syl 3expa pm2.61dan ) BFGZCHIUBZUCGZJZCBUDKZBCLMNIUENZUFNZLUGNC
      ONZLMNZDGZXKXLJZXPLLMNZDXRXOLLMXRXOLCONZLXRXOPLUGNZCONZXTXRXNQGPQGLQGCUHG
      ZXNCONZPCONZRXOYBRXRXNXRXHXMUIGZXNFGXHXJXLUJZXRXMXJXMUAGXHXLCUKULZUMZBXMU
      OSUNXRUPXRUQXRCXRCUAGZLCURKZXRCIUSUTGZYJYKJXRCHGZYLXJYMXHXLCHXIVAULCVBVCC
      VDVEZVFZVGZXRYDPXMUFNZCONZYEXRXHPFGYFYCBCONZYERYDYRRYGXRVSYIYPXRYSPYEXRXL
      YSPRZXKXLVHXRYJXHXLYTVIYOYGCBVJSVKXRYCYEPRYPCVLVCVMBPXMCVNVOXRYQPCOXRXMYH
      VPVQVTXNPLCVRVOYALCOWAWBWCXRCQGYKXTLRXRCYOWDXRYJYKYNWECWFSVTVQXSPDWGLWHZD
      GZPDGZLDGZADEWIZWJWKTXHXJXLWLZXQXHXJUUFWMXOPIXCGXOPRZXOIRZWNXQBCWOXOPIWPU
      UGXQUUHUUGXPPLMNZDXOPLMWQUUAUUIDLWRUUBUUCUUDUUEWSWTTUUHXPILMNZDXOILMWQUUJ
      LDXAUUBUUCUUDUUEXBWKTXDXEXFXG $.
  $}

  ${
    $d a b m n x y z A $.  $d a m x y z F $.  $d n x M $.  $d a m n x y z N $.
    $d a b n y z Z $.
    lgsval.1 $e |- F = ( n e. NN |-> if ( n e. Prime ,
        ( if ( n = 2 , if ( 2 || A , 0 , if ( ( A mod 8 ) e. { 1 , 7 } ,
          1 , -u 1 ) ) , ( ( ( ( A ^ ( ( n - 1 ) / 2 ) ) + 1 ) mod n ) - 1 ) )
            ^ ( n pCnt N ) ) , 1 ) ) $.
    $( Value of the Legendre symbol at an arbitrary integer.  (Contributed by
       Mario Carneiro, 4-Feb-2015.) $)
    lgsval $p |- ( ( A e. ZZ /\ N e. ZZ ) -> ( A /L N ) = if ( N = 0 ,
      if ( ( A ^ 2 ) = 1 , 1 , 0 ) , ( if ( ( N < 0 /\ A < 0 ) , -u 1 , 1 ) x.
      ( seq 1 ( x. , F ) ` ( abs ` N ) ) ) ) ) $=
      ( va cc0 wceq c2 cexp co c1 cif clt wbr cfv cmul cmo cmin oveq1d vm cz cv
      wa cneg cabs cn cprime wcel cdvds c8 c7 cpr cdiv caddc cpc cmpt cseq clgs
      simpr eqeq1d breq1d anbi12d breq2d eleq1d ifbieq2d ifeq12d oveq2d oveq12d
      simpl ifeq1d mpteq2dv syl6eqr seqeq3d fveq2d fveq12d ifbieq12d df-lgs cn0
      ifbid 1nn0 0nn0 keepel elexi ovex ifex ovmpt2a ) FUAADUBUBUAUCZGHZFUCZIJK
      ZLHZLGMZWHGNOZWJGNOZUDZLUEZLMZWHUFPZQBUGBUCZUHUIZWTIHZIWJUJOZGWJUKRKZLULU
      MZUIZLWQMZMZWJWTLSKIUNKZJKZLUOKZWTRKZLSKZMZWTWHUPKZJKZLMZUQZLURZPZQKZMDGH
      ZAIJKZLHZLGMZDGNOZAGNOZUDZWQLMZDUFPZQCLURZPZQKZMUSWJAHZWHDHZUDZWIYBWMYAYE
      YMYPWHDGYNYOUTZVAYPWLYDLGYPWKYCLYPWJAIJYNYOVJZTVAVTYPWRYIXTYLQYPWPYHWQLYP
      WNYFWOYGYPWHDGNYQVBYPWJAGNYRVBVCVTYPWSYJXSYKYPXRCQLYPXRBUGXAXBIAUJOZGAUKR
      KZXEUIZLWQMZMZAXIJKZLUOKZWTRKZLSKZMZWTDUPKZJKZLMZUQCYPBUGXQUUKYPXAXPUUJLY
      PXNUUHXOUUIJYPXBXHUUCXMUUGYPXCYSXGUUBGYPWJAIUJYRVDYPXFUUALWQYPXDYTXEYPWJA
      UKRYRTVEVTVFYPXLUUFLSYPXKUUEWTRYPXJUUDLUOYPWJAXIJYRTTTTVGYPWHDWTUPYQVHVIV
      KVLEVMVNYPWHDUFYQVOVPVIVQBUAFVRYBYEYMYEVSYDLGVSWAWBWCWDYIYLQWEWFWG $.

    $( Value of the function ` F ` which defines the Legendre symbol at the
       primes.  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsfval $p |- ( M e. NN -> ( F ` M ) = if (
  M e. Prime , ( if ( M = 2 , if ( 2 || A , 0 , if ( ( A mod 8 ) e. { 1 , 7 } ,
          1 , -u 1 ) ) , ( ( ( ( A ^ ( ( M - 1 ) / 2 ) ) + 1 ) mod M ) - 1 ) )
            ^ ( M pCnt N ) ) , 1 ) ) $=
      ( cprime wcel c2 wceq cmo co c1 cif cmin cdiv cexp caddc cpc oveq1d cdvds
      cv wbr cc0 c8 c7 cpr cneg cn eleq1 eqeq1 oveq1 oveq2d id oveq12d ifbieq2d
      ifbieq1d ovex 1ex ifex fvmpt ) BDBUBZGHZVBIJZIAUAUCUDAUEKLMUFUGHMMUHNNZAV
      BMOLZIPLZQLZMRLZVBKLZMOLZNZVBESLZQLZMNDGHZDIJZVEADMOLZIPLZQLZMRLZDKLZMOLZ
      NZDESLZQLZMNUICVBDJZVCVOVNWEMVBDGUJWFVLWCVMWDQWFVDVPVKWBVEVBDIUKWFVJWAMOW
      FVIVTVBDKWFVHVSMRWFVGVRAQWFVFVQIPVBDMOULTUMTWFUNUOTUPVBDESULUOUQFVOWEMWCW
      DQURUSUTVA $.

    ${
      lgsfcl2.z $e |- Z = { x e. ZZ | ( abs ` x ) <_ 1 } $.
      $( The function ` F ` is closed in integers with absolute value less than
         ` 1 ` (namely ` { -u 1 , 0 , 1 } ` , see ~ zabsle1 ).  (Contributed by
         Mario Carneiro, 4-Feb-2015.) $)
      lgsfcl2 $p |- ( ( A e. ZZ /\ N e. ZZ /\ N =/= 0 ) -> F : NN --> Z ) $=
        ( cz wcel cc0 cv c2 wceq wbr co c1 wa cle cabs va vb cn cprime cdvds c8
        wne w3a cmo c7 cpr cneg cif cmin cdiv cexp caddc cpc cn0 0le1 cfv fveq2
        0z abs0 syl6eq breq1d elrab2 mpbir2an 1z 1le1 abs1 neg1z ax-1cn absnegi
        eqtri keepel a1i csn cdif simpl1 ad2antrr simplr simpr eldifsn sylanbrc
        wn neqned lgslem4 syl2anc ifclda simpll2 simpll3 pczcl syl12anc cc crab
        ssrab2 eqsstri zsscn sstri lgslem3 expcllem fmptd ) BIJZEIJZEKUGZUHZCUC
        CLZUDJZXHMNZMBUEOZKBUFUIPQUJUKJZQQULZUMZUMZBXHQUNPMUOPUPPQUQPXHUIPQUNPZ
        UMZXHEURPZUPPZQUMFDXGXHUCJZRZXIXSQFYAXIRZXQFJXRUSJZXSFJYBXJXOXPFXOFJYBX
        JRXKKXNFKFJKIJKQSOZVCUTALZTVAZQSOZYDAKIFYEKNZYFKQSYHYFKTVAKYEKTVBVDVEVF
        HVGVHXLQXMFQFJZQIJQQSOZVIVJYGYJAQIFYEQNZYFQQSYKYFQTVAZQYEQTVBVKVEVFHVGV
        HZXMFJXMIJYJVLVJYGYJAXMIFYEXMNZYFQQSYNYFXMTVAZQYEXMTVBYOYLQQVMVNVKVOVEV
        FHVGVHVPVPVQYBXJWFZRZXDXHUDMVRVSJZXPFJYAXDXIYPXDXEXFXTVTWAYQXIXHMUGYRYA
        XIYPWBYQXHMYBYPWCWGXHUDMWDWEABXHFHWHWIWJYBXIXEXFYCYAXIWCXDXEXFXTXIWKXDX
        EXFXTXIWLXHEWMWNUAUBXQXRFFIWOFYGAIWPIHYGAIWQWRWSWTAUALUBLFHXAYMXBWIYIYA
        XIWFRYMVQWJGXC $.

      $( The Legendre symbol is an element of ` Z ` .  (Contributed by Mario
         Carneiro, 4-Feb-2015.) $)
      lgscllem $p |- ( ( A e. ZZ /\ N e. ZZ ) -> ( A /L N ) e. Z ) $=
        ( vy vz cz wcel wa co cc0 c1 cif cfv cmul cn clgs wceq c2 cexp clt cneg
        wbr cabs cseq lgsval lgslem2 simp3i simp2i keepel a1i wn simp1i cuz wne
        simplr simpr neqned nnabscl syl2anc nnuz syl6eleq wf cv cfz df-ne 3expa
        lgsfcl2 sylan2br elfznn ffvelrn syl2an lgslem3 adantl sylancr eqeltrd
        seqcl ifclda ) BKLZEKLZMZBEUANEOUBZBUCUDNPUBZPOQZEOUEUGBOUEUGMZPUFZPQZE
        UHRZSDPUIRZSNZQFBCDEGUJWEWFWHWNFWHFLWEWFMWGPOFWJFLZOFLZPFLZAFHUKZULZWOW
        PWQWRUMUNUOWEWFUPZMZWKFLWMFLWNFLWIWJPFWOWPWQWRUQWSUNXAIJSFDPWLXAWLTPURR
        XAWDEOUSZWLTLWCWDWTUTXAEOWEWTVAVBEVCVDVEVFXATFDVGZIVHZTLXDDRFLXDPWLVINL
        WTWEXBXCEOVJWCWDXBXCABCDEFGHVLVKVMXDWLVNTFXDDVOVPXDFLJVHZFLMXDXESNFLXAA
        XDXEFHVQVRWAAWKWMFHVQVSWBVT $.
    $}

    $( Closure of the function ` F ` which defines the Legendre symbol at the
       primes.  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsfcl $p |- ( ( A e. ZZ /\ N e. ZZ /\ N =/= 0 ) -> F : NN --> ZZ ) $=
      ( vx cz wcel cc0 wne w3a cn cv cabs cfv c1 cle wbr crab wf lgsfcl2 ssrab2
      wss eqid fss sylancl ) AGHDGHDIJKLFMNOPQRZFGSZCTUHGUCLGCTFABCDUHEUHUDUAUG
      FGUBLUHGCUEUF $.

    $( The function ` F ` has magnitude less or equal to ` 1 ` .  (Contributed
       by Mario Carneiro, 4-Feb-2015.) $)
    lgsfle1 $p |- ( ( ( A e. ZZ /\ N e. ZZ /\ N =/= 0 ) /\ M e. NN ) ->
      ( abs ` ( F ` M ) ) <_ 1 ) $=
      ( vx cz wcel cc0 wne w3a cn wa cfv cv cabs c1 cle wbr crab eqid ffvelrnda
      lgsfcl2 wceq fveq2 breq1d elrab simprbi syl ) AHIEHIEJKLZDMINDCOZGPZQOZRS
      TZGHUAZIZULQOZRSTZUKMUPDCGABCEUPFUPUBUDUCUQULHIUSUOUSGULHUMULUEUNURRSUMUL
      QUFUGUHUIUJ $.

    $( Lemma for ~ lgsval2 .  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsval2lem $p |- ( ( A e. ZZ /\ N e. Prime ) -> ( A /L N ) =
      if ( N = 2 , if ( 2 || A , 0 , if ( ( A mod 8 ) e. { 1 , 7 } ,
      1 , -u 1 ) ) , ( ( ( ( A ^ ( ( N - 1 ) / 2 ) ) + 1 ) mod N ) - 1 ) ) ) $=
      ( cz wcel cprime wa co cc0 wceq c2 cexp c1 cif wbr cfv cmul cn clgs cdvds
      vx clt cneg cabs cseq c8 cmo cpr cmin cdiv caddc prmz lgsval sylan2 prmnn
      c7 adantl nnne0d neneqd iffalsed cle wn nnnn0d nn0ge0d cr 0re nnred lenlt
      wb sylancr mpbid intnanrd absidd fveq2d cuz 1z prmuz2 df-2 syl6eleq seqm1
      fveq2i 1t1e1 a1i uz2m1nn syl nnuz cv cfz cpc elfznn lgsfval elfzelz ltm1d
      zred elfzle2 peano2rem lenltd pm2.65i eleq1 mtbiri con2i ad2antlr simpllr
      dvdsprm syl2anc mtbird simpr ad2antrr pceq0 mpbird oveq2d cc neg1z keepel
      0z cn0 csn cdif wne simplr neqned eldifsn sylanbrc oddprm zexpcl peano2zd
      simpl zmodcld nn0zd ifclda zcnd adantlr eqtrd oveq1d 3eqtrd oveq12d exp1d
      peano2zm exp0d ifeq1da ifid syl6eq seqid3 lgsfcl syl3anc ffvelrnd mulid2d
      wf iftrue nncnd pcid sylancl eqtr3d ralrimiva eqeq1 oveq1 ifbieq2d eleq1d
      wral id rspcv sylc ) AFGZDHGZIZADUAJZDKLZAMNJOLOKPZDKUDQZAKUDQZIZOUEZOPZD
      UFRZSCOUGZRZSJZPZUVSDMLZMAUBQZKAUHUIJOURUJGZOUVNPZPZADOUKJZMULJZNJZOUMJZD
      UIJZOUKJZPZUVFUVEDFGZUVHUVTLDUNZABCDEUOUPUVGUVIUVJUVSUVGDKUVGDUVFDTGZUVED
      UQUSZUTZVAVBUVGUVSODCRZSJZUWRUWLUVGUVOOUVRUWRSUVGUVMUVNOUVGUVKUVLUVGKDVCQ
      ZUVKVDZUVGDUVGDUWPVEVFZUVGKVGGDVGGZUWTUXAVKVHUVGDUWPVIZKDVJVLVMVNVBUVGUVR
      DUVQRZUWRUVGUVPDUVQUVGDUXDUXBVOVPUVGUXEUWFUVQRZUWRSJZUWSUWRUVGOFGZDOOUMJZ
      VQRZGUXEUXGLVRUVGDMVQRZUXJUVFDUXKGZUVEDVSUSZMUXIVQVTWCWASCODWBVLUVGUXFOUW
      RSUVGUCSCOUWFOOOSJOLUVGWDWEUVGUWFTOVQRUVGUXLUWFTGUXMDWFWGWHWAUVGUCWIZOUWF
      WJJZGZIZUXNCRZUXNHGZUXNMLZUWEAUXNOUKJZMULJZNJZOUMJZUXNUIJZOUKJZPZUXNDWKJZ
      NJZOPZOUXQUXNTGZUXRUYJLUXPUYKUVGUXNUWFWLUSABCUXNDEWMWGUXQUYJUXSOOPOUXQUXS
      UYIOOUXQUXSIZUYIUYGKNJOUYLUYHKUYGNUYLUYHKLZUXNDUBQZVDZUYLUYNUXNDLZUXPUYPV
      DUVGUXSUYPUXPUYPUXPDUXOGZUYQUWFDUDQZUYQDUYQDDOUWFWNWPZWOUYQDUWFVCQUYRVDDO
      UWFWQUYQDUWFUYSUYQUXCUWFVGGUYSDWRWGWSVMWTUXNDUXOXAXBXCXDUYLUXNUXKGZUVFUYN
      UYPVKUXSUYTUXQUXNVSUSUVEUVFUXPUXSXEDUXNXFXGXHUYLUXSUWOUYMUYOVKUXQUXSXIUVG
      UWOUXPUXSUWPXJUXNDXKXGXLXMUYLUYGUVGUXSUYGXNGZUXPUVGUXSIZUYGVUBUXTUWEUYFFU
      WEFGVUBUXTIUWBKUWDFXQUWCOUVNFVRXOXPXPWEVUBUXTVDZIZUYEFGUYFFGVUDUYEVUDUYDU
      XNVUDUYCVUDUVEUYBXRGUYCFGUVGUVEUXSVUCUVEUVFYIZXJVUDUYBVUDUXNHMXSXTGZUYBTG
      VUDUXSUXNMYAVUFUVGUXSVUCYBVUDUXNMVUBVUCXIYCUXNHMYDYEUXNYFWGVEAUYBYGXGYHUX
      SUYKUVGVUCUXNUQXDYJYKUYEYTWGYLYMZYNUUAYOUUBUXSOUUCUUDYOUUEYPUVGUWRUVGUWRU
      VGTFDCUVGUVEUWMDKYATFCUUJVUEUVFUWMUVEUWNUSUWQABCDEUUFUUGUWPUUHYMUUIZYQYOY
      RVUHUVGUWRUVFUWLDDWKJZNJZOPZVUJUWLUVGUWOUWRVUKLUWPABCDDEWMWGUVFVUKVUJLUVE
      UVFVUJOUUKUSUVGVUJUWLONJUWLUVGVUIOUWLNUVGDDONJZWKJZVUIOUVGVULDDWKUVGDUVGD
      UWPUULYSXMUVGUVFUXHVUMOLUVEUVFXIZVRODUUMUUNUUOXMUVGUWLUVGUVFVUAUCHUVAUWLX
      NGZVUNUVGVUAUCHVUGUUPVUAVUOUCDHUYPUYGUWLXNUYPUXTUWAUYFUWKUWEUXNDMUUQUYPUY
      EUWJOUKUYPUYDUWIUXNDUIUYPUYCUWHOUMUYPUYBUWGANUYPUYAUWFMULUXNDOUKUURYPXMYP
      UYPUVBYRYPUUSUUTUVCUVDYSYOYQYQYQ $.

    $( Lemma for ~ lgsval4 .  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsval4lem $p |- ( ( A e. ZZ /\ N e. ZZ /\ N =/= 0 ) -> F = ( n e. NN |->
      if ( n e. Prime , ( ( A /L n ) ^ ( n pCnt N ) ) , 1 ) ) ) $=
      ( vm cz wcel cc0 cn cv co cexp c1 cif cmpt c2 wceq cmo cmin wne w3a cdvds
      cprime clgs cpc wbr c8 c7 cpr cneg cdiv caddc lgsval2lem 3ad2antl1 oveq1d
      wa eqid ifeq1da mpteq2dv syl6reqr ) AGHZDGHZDIUAZUBZBJBKZUDHZAVFUELZVFDUF
      LZMLZNOZPBJVGVFQRQAUCUGIAUHSLNUIUJHNNUKOOZAVFNTLQULLMLNUMLVFSLNTLOZVIMLZN
      OZPCVEBJVKVOVEVGVJVNNVEVGUQVHVMVIMVBVCVGVHVMRVDAFFJFKZUDHVPQRVLAVPNTLQULL
      MLNUMLVPSLNTLOVPVFUFLMLNOPZVFVQURUNUOUPUSUTEVA $.
  $}

  ${
    $d n x A $.  $d n x N $.  $d n Z $.
    lgscl2.z $e |- Z = { x e. ZZ | ( abs ` x ) <_ 1 } $.
    $( The Legendre symbol is an integer with absolute value less or equal to
       ` 1 ` .  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgscl2 $p |- ( ( A e. ZZ /\ N e. ZZ ) -> ( A /L N ) e. Z ) $=
      ( vn cn cv cprime wcel c2 wceq cdvds wbr cmo co c1 cif cmin cexp cc0 cneg
      c8 c7 cpr cdiv caddc cpc cmpt eqid lgscllem ) ABFFGFHZIJULKLKBMNUABUCOPQU
      DUEJQQUBRRBULQSPKUFPTPQUGPULOPQSPRULCUHPTPQRUIZCDUMUJEUK $.
  $}

  ${
    $d n x y A $.  $d x y F $.  $d n x y N $.  $d n P $.
    $( The Legendre symbol when the second argument is zero.  (Contributed by
       Mario Carneiro, 4-Feb-2015.) $)
    lgs0 $p |- ( A e. ZZ -> ( A /L 0 ) = if ( ( A ^ 2 ) = 1 , 1 , 0 ) ) $=
      ( vn cz wcel cc0 clgs co wceq c2 cexp c1 cif clt wbr wa cfv cmul cmo cmin
      eqid cneg cabs cn cv cprime cdvds c8 c7 cpr cdiv caddc cpc cmpt 0z lgsval
      cseq mpan2 iftruei syl6eq ) ACDZAEFGZEEHZAIJGKHKELZEEMNAEMNOKUAZKLEUBPQBU
      CBUDZUEDVEIHIAUFNEAUGRGKUHUIDKVDLLAVEKSGIUJGJGKUKGVERGKSGLVEEULGJGKLUMZKU
      PPQGZLZVCUTECDVAVHHUNABVFEVFTUOUQVBVCVGETURUS $.

    $( The Legendre symbol is an integer.  (Contributed by Mario Carneiro,
       4-Feb-2015.) $)
    lgscl $p |- ( ( A e. ZZ /\ N e. ZZ ) -> ( A /L N ) e. ZZ ) $=
      ( vx cz wcel wa cv cabs cfv c1 cle crab clgs co ssrab2 eqid lgscl2 sseldi
      wbr ) ADEBDEFCGHIJKSZCDLZDABMNTCDOCABUAUAPQR $.

    $( The Legendre symbol has absolute value less or equal to ` 1 ` .
       Together with ~ lgscl this implies that it takes values in
       ` { -u 1 , 0 , 1 } ` .  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsle1 $p |- ( ( A e. ZZ /\ N e. ZZ ) -> ( abs ` ( A /L N ) ) <_ 1 ) $=
      ( vx cz wcel wa clgs co cv cabs cfv cle wbr crab eqid lgscl2 fveq2 breq1d
      c1 wceq elrab simprbi syl ) ADEBDEFABGHZCIZJKZSLMZCDNZEZUDJKZSLMZCABUHUHO
      PUIUDDEUKUGUKCUDDUEUDTUFUJSLUEUDJQRUAUBUC $.

    $( The Legendre symbol at a prime (this is the traditional domain of the
       Legendre symbol, except for the addition of prime ` 2 ` ).  (Contributed
       by Mario Carneiro, 4-Feb-2015.) $)
    lgsval2 $p |- ( ( A e. ZZ /\ P e. Prime ) -> ( A /L P ) = if ( P = 2 ,
      if ( 2 || A , 0 , if ( ( A mod 8 ) e. { 1 , 7 } , 1 , -u 1 ) ) ,
        ( ( ( ( A ^ ( ( P - 1 ) / 2 ) ) + 1 ) mod P ) - 1 ) ) ) $=
      ( vn cn cv cprime wcel c2 wceq cdvds wbr cc0 c8 cmo co c1 cif cmin cexp
      c7 cpr cneg cdiv caddc cpc cmpt eqid lgsval2lem ) ACCDCEZFGUIHIHAJKLAMNOP
      TUAGPPUBQQAUIPROHUCOSOPUDOUINOPROQUIBUEOSOPQUFZBUJUGUH $.

    $( The Legendre symbol at ` 2 ` .  (Contributed by Mario Carneiro,
       4-Feb-2015.) $)
    lgs2 $p |- ( A e. ZZ -> ( A /L 2 ) = if ( 2 || A , 0 ,
      if ( ( A mod 8 ) e. { 1 , 7 } , 1 , -u 1 ) ) ) $=
      ( cz wcel c2 clgs co wceq cdvds wbr cc0 c8 cmo c1 cpr cneg cmin cdiv cexp
      c7 cif caddc cprime 2prm lgsval2 mpan2 eqid iftruei syl6eq ) ABCZADEFZDDG
      ZDAHIJAKLFMSNCMMOTTZADMPFDQFRFMUAFDLFMPFZTZULUIDUBCUJUNGUCADUDUEUKULUMDUF
      UGUH $.

    $( The Legendre symbol at an odd prime (this is the traditional domain of
       the Legendre symbol).  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsval3 $p |- ( ( A e. ZZ /\ P e. ( Prime \ { 2 } ) ) -> ( A /L P ) =
        ( ( ( ( A ^ ( ( P - 1 ) / 2 ) ) + 1 ) mod P ) - 1 ) ) $=
      ( cprime c2 csn cdif wcel cz wne wa clgs co cmin cdiv cexp caddc cmo wceq
      c1 cif eldifsn cdvds wbr cc0 c8 c7 cneg lgsval2 ifnefalse sylan9eq anasss
      cpr sylan2b ) BCDEFGAHGZBCGZBDIZJABKLZABSMLDNLOLSPLBQLSMLZRZBCDUAUNUOUPUS
      UNUOJUPUQBDRDAUBUCUDAUEQLSUFULGSSUGTTZURTURABUHBDUTURUIUJUKUM $.

    $( The Legendre symbol is equivalent to ` a ^ ( ( p - 1 ) / 2 ) ` ,
       ` mod p ` .  This theorem is also called "Euler's criterion", see
       theorem 9.2 in [ApostolNT] p. 180, or a representation of Euler's
       criterion using the Legendre symbol, see also ~ lgsqr .  (Contributed by
       Mario Carneiro, 4-Feb-2015.) $)
    lgsvalmod $p |- ( ( A e. ZZ /\ P e. ( Prime \ { 2 } ) ) ->
      ( ( A /L P ) mod P ) = ( ( A ^ ( ( P - 1 ) / 2 ) ) mod P ) ) $=
      ( cz wcel cprime c2 co c1 caddc cmo cmin cr syl recnd ax-1cn oveq1d eqtrd
      wceq cc sylancl csn cdif clgs cneg cdiv cexp crp eldifi adantl prmz lgscl
      wa syldan zred peano2re cn0 oddprm nnnn0d zexpcl neg1rr a1i prmnn lgsval3
      nnrpd eqcomd modcld subadd2d mpbid modabs2 syl2anc syl221anc negsub pncan
      cn modadd1 3eqtr3d ) ACDZBEFUAZUBDZULZABUCGZHIGZHUDZIGZBJGZABHKGFUEGZUFGZ
      HIGZWCIGZBJGZWABJGWGBJGVTWBLDZWHLDZWCLDZBUGDZWBBJGZWHBJGZRWEWJRVTWALDWKVT
      WAVQVSBCDZWACDVTBEDZWQVSWRVQBEVRUHUIZBUJMABUKUMUNZWAUOMZVTWGLDWLVTWGVQVSW
      FUPDWGCDVTWFVSWFVNDVQBUQUIURAWFUSUMUNZWGUOMZWMVTUTVAVTBVTWRBVNDWSBVBMVDZV
      TWOWPBJGZWPVTWBWPBJVTWPHKGZWARWBWPRVTWAXFABVCVEVTWPHWAVTWPVTWHBXCXDVFNHSD
      ZVTOVAVTWAWTNZVGVHPVTWLWNXEWPRXCXDWHBVIVJQWBWHWCBVOVKVTWDWABJVTWDWBHKGZWA
      VTWBSDXGWDXIRVTWBXANOWBHVLTVTWASDXGXIWARXHOWAHVMTQPVTWIWGBJVTWIWHHKGZWGVT
      WHSDXGWIXJRVTWHXCNOWHHVLTVTWGSDXGXJWGRVTWGXBNOWGHVMTQPVP $.

    lgsval4.1 $e |- F = ( n e. NN |->
      if ( n e. Prime , ( ( A /L n ) ^ ( n pCnt N ) ) , 1 ) ) $.
    $( Restate ~ lgsval for nonzero ` N ` , where the function ` F ` has been
       abbreviated into a self-referential expression taking the value of
       ` /L ` on the primes as given.  (Contributed by Mario Carneiro,
       4-Feb-2015.) $)
    lgsval4 $p |- ( ( A e. ZZ /\ N e. ZZ /\ N =/= 0 ) -> ( A /L N ) =
      ( if ( ( N < 0 /\ A < 0 ) , -u 1 , 1 ) x.
        ( seq 1 ( x. , F ) ` ( abs ` N ) ) ) ) $=
      ( cz wcel cc0 clgs co wceq c2 cexp c1 cif clt wbr cfv cmul cn wne wa cneg
      w3a cabs cv cprime cdvds c8 cmo c7 cpr cmin cdiv caddc cpc cmpt cseq eqid
      lgsval 3adant3 simp3 neneqd iffalsed syl6eqr seqeq3d fveq1d oveq2d 3eqtrd
      lgsval4lem ) AFGZDFGZDHUAZUDZADIJZDHKZALMJNKNHOZDHPQAHPQUBNUCZNOZDUERZSBT
      BUFZUGGZWALKLAUHQHAUIUJJNUKULGNVROOAWANUMJLUNJMJNUOJWAUJJNUMJOWADUPJZMJNO
      UQZNURZRZSJZOZWGVSVTSCNURZRZSJVKVLVOWHKVMABWDDWDUSZUTVAVNVPVQWGVNDHVKVLVM
      VBVCVDVNWFWJVSSVNVTWEWIVNWDCSNVNWDBTWBAWAIJWCMJNOUQCABWDDWKVJEVEVFVGVHVI
      $.

    $( Closure of the function ` F ` which defines the Legendre symbol at the
       primes.  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsfcl3 $p |- ( ( A e. ZZ /\ N e. ZZ /\ N =/= 0 ) -> F : NN --> ZZ ) $=
      ( cz wcel cc0 wne w3a cn c2 cmo co c1 cif cmin cexp cmpt wf cv wceq cdvds
      cprime wbr c8 cpr cneg cdiv caddc cpc eqid lgsfcl clgs lgsval4lem syl6eqr
      c7 feq1d mpbid ) AFGDFGDHIJZKFBKBUAZUDGZVALUBLAUCUEHAUFMNOUQUGGOOUHPPAVAO
      QNLUINRNOUJNVAMNOQNPVADUKNZRNOPSZTKFCTABVDDVDULZUMUTKFVDCUTVDBKVBAVAUNNVC
      RNOPSCABVDDVEUOEUPURUS $.

    $( Same as ~ lgsval4 for positive ` N ` .  (Contributed by Mario Carneiro,
       4-Feb-2015.) $)
    lgsval4a $p |- ( ( A e. ZZ /\ N e. NN ) ->
      ( A /L N ) = ( seq 1 ( x. , F ) ` N ) ) $=
      ( vx vy cz wcel cn wa co cc0 clt wbr c1 cfv cmul adantl syl3anc clgs cneg
      cif cabs cseq wne wceq simpl nnz nnne0 lgsval4 wn nngt0 cr wi nnre ltnsym
      0re sylancr mpd intnanrd iffalsed cn0 nnnn0 nn0ge0d absidd fveq2d oveq12d
      cuz simpr nnuz syl6eleq wf cfz lgsfcl3 elfznn ffvelrn syl2an zmulcl seqcl
      cv zcnd mulid2d 3eqtrd ) AHIZDJIZKZADUALZDMNOZAMNOZKZPUBZPUCZDUDQZRCPUEZQ
      ZRLZPDWOQZRLWRWGWEDHIZDMUFZWHWQUGWEWFUHZWFWSWEDUISZWFWTWEDUJSZABCDEUKTWGW
      MPWPWRRWGWKWLPWGWIWJWGMDNOZWIULZWFXDWEDUMSWGMUNIDUNIZXDXEUOURWFXFWEDUPSZM
      DUQUSUTVAVBWGWNDWOWGDXGWGDWFDVCIWEDVDSVEVFVGVHWGWRWGWRWGFGRHCPDWGDJPVIQWE
      WFVJVKVLWGJHCVMZFWAZJIXICQHIXIPDVNLIWGWEWSWTXHXAXBXCABCDEVOTXIDVPJHXICVQV
      RXIHIGWAZHIKXIXJRLHIWGXIXJVSSVTWBWCWD $.
  $}

  $( The value of the Legendre symbol is either -1 or 0 or 1.  (Contributed by
     AV, 13-Jul-2021.) $)
  lgscl1 $p |- ( ( A e. ZZ /\ N e. ZZ ) -> ( A /L N ) e. { -u 1 , 0 , 1 } ) $=
    ( cz wcel wa clgs co c1 cneg cc0 ctp cabs cfv cle wbr lgsle1 wb zabsle1 syl
    lgscl mpbird ) ACDBCDEZABFGZHIJHKDZUCLMHNOZABPUBUCCDUDUEQABTUCRSUA $.

  ${
    $d k n x y z B $.  $d k x F $.  $d k n x y z M $.  $d x P $.  $d k x ph $.
    $d k n p x y z A $.  $d k n p x y z N $.
    $( The Legendre symbol is either even or odd under negation with respect to
       the second parameter according to the sign of the first.  (Contributed
       by Mario Carneiro, 4-Feb-2015.) $)
    lgsneg $p |- ( ( A e. ZZ /\ N e. ZZ /\ N =/= 0 ) -> ( A /L -u N ) =
      ( if ( A < 0 , -u 1 , 1 ) x. ( A /L N ) ) ) $=
      ( vn cz wcel cc0 wne clt wbr wa c1 cif cfv cmul cn cv clgs co wceq cc w3a
      vx cneg cabs cprime cpc cexp cmpt cseq iftrue adantl oveq1d neg1mulneg1e1
      vy oveq2 syl6eq ax-1cn mulm1i ifsb simpr biantrud ifbid oveq2d cle simpl2
      wn cr zred 0re ltlen sylancl simpl3 necomd bitr4d le0neg1d renegcld lenlt
      sylancr 3bitrd ifnot 3eqtr3a 3eqtrd 1t1e1 iffalse intnand oveq12d 3eqtr4a
      wb iffalsed pm2.61dan eqcomd cq zq pcneg syl2anc ifeq1da mpteq2dv seqeq3d
      syl zcn 3ad2ant2 absnegd fveq12d neg1cn a1i nnabscl 3adant1 nnuz syl6eleq
      keepel cuz wf cfz eqid lgsfcl3 elfznn ffvelrn syl2an zmulcl seqcl mulassd
      zcnd eqtrd simp1 znegcl simp3 negne0d lgsval4 syl3anc 3eqtr4d ) ADEZBDEZB
      FGZUAZBUCZFHIZAFHIZJZKUCZKLZYOUDMZNCOCPZUEEZAUUBQRZUUBYOUFRZUGRZKLZUHZKUI
      ZMZNRZYQYSKLZBFHIZYQJZYSKLZBUDMZNCOUUCUUDUUBBUFRZUGRZKLZUHZKUIZMZNRZNRZAY
      OQRZUULABQRZNRYNUUKUULUUONRZUVBNRUVDYNYTUVGUUJUVBNYNUVGYTYNYQUVGYTSYNYQJZ
      UVGYSUUONRZYPYSKLZYTUVHUULYSUUONYQUULYSSYNYQYSKUJUKULUVHYSUUMYSKLZNRZUUMK
      YSLZUVIUVJUUMYSKUVLKYSUVKYSSUVLYSYSNRKUVKYSYSNUOUMUPUVKKSUVLYSKNRYSUVKKYS
      NUOKUQURUPUSUVHUVKUUOYSNUVHUUMUUNYSKUVHYQUUMYNYQUTZVAVBVCUVHUVMYPVFZKYSLU
      VJUVHUUMUVOKYSUVHUUMBFVDIZFYOVDIZUVOUVHUUMUVPFBGZJZUVPUVHBVGEFVGEZUUMUVSW
      HUVHBYKYLYMYQVEVHZVIBFVJVKUVHUVRUVPUVHBFYKYLYMYQVLVMVAVNUVHBUWAVOUVHUVTYO
      VGEUVQUVOWHVIUVHBUWAVPFYOVQVRVSVBYPKYSVTUPWAUVHYPYRYSKUVHYQYPUVNVAVBWBYNY
      QVFZJZKKNRKUVGYTWCUWCUULKUUOKNUWBUULKSYNYQYSKWDUKUWCUUNYSKUWCYQUUMYNUWBUT
      ZWEWIWFUWCYRYSKUWCYQYPUWDWEWIWGWJWKYNUUAUUPUUIUVAYNUUHUUTNKYNCOUUGUUSYNUU
      CUUFUURKYNUUCJZUUEUUQUUDUGUWEUUCBWLEZUUEUUQSYNUUCUTUWEYLUWFYKYLYMUUCVEBWM
      WSBUUBWNWOVCWPWQWRYNBYLYKBTEYMBWTXAZXBXCWFYNUULUUOUVBUULTEYNYQYSKTXDUQXJX
      EUUOTEYNUUNYSKTXDUQXJXEYNUVBYNUBUNNDUUTKUUPYNUUPOKXKMYLYMUUPOEYKBXFXGXHXI
      YNODUUTXLUBPZOEUWHUUTMDEUWHKUUPXMREACUUTBUUTXNZXOUWHUUPXPODUWHUUTXQXRUWHD
      EUNPZDEJUWHUWJNRDEYNUWHUWJXSUKXTYBYAYCYNYKYODEZYOFGUVEUUKSYKYLYMYDYLYKUWK
      YMBYEXAYNBUWGYKYLYMYFYGACUUHYOUUHXNYHYIYNUVFUVCUULNACUUTBUWIYHVCYJ $.

    $( The Legendre symbol for nonnegative first parameter is unchanged by
       negation of the second.  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsneg1 $p |- ( ( A e. NN0 /\ N e. ZZ ) -> ( A /L -u N ) = ( A /L N ) ) $=
      ( cn0 wcel cz wa cneg clgs co wceq cc0 simpr negeqd 3eqtr4a oveq2d wne c1
      neg0 cmul 3ad2ant1 w3a clt wbr cif nn0z lgsneg syl3an1 wn iffalsed oveq1d
      nn0nlt0 simp2 lgscl syl2anc zcnd mulid2d 3eqtrd 3expa pm2.61dane ) ACDZBE
      DZFZABGZHIZABHIZJZBKVBBKJZFZVCBAHVHKGKVCBRVHBKVBVGLZMVINOUTVABKPZVFUTVAVJ
      UAZVDAKUBUCZQGZQUDZVESIZQVESIVEUTAEDZVAVJVDVOJAUEZABUFUGVKVNQVESVKVLVMQUT
      VAVLUHVJAUKTUIUJVKVEVKVEVKVPVAVEEDUTVAVPVJVQTUTVAVJULABUMUNUOUPUQURUS $.

    $( The Legendre (Jacobi) symbol is preserved under reduction ` mod n ` when
       ` n ` is odd.  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsmod $p |- ( ( A e. ZZ /\ N e. NN /\ -. 2 || N ) ->
      ( ( A mod N ) /L N ) = ( A /L N ) ) $=
      ( vn cz wcel cn c2 cdvds wbr cmo co clgs cexp c1 wa wceq cmin syl2anc cc0
      cr wn w3a cmul cv cprime cpc cif cmpt cseq cfv cdiv caddc crp cn0 3adant3
      zmodcl nn0zd ad2antrr csn wne simpr adantr simpl3 breq1 notbid syl5ibrcom
      cdif necon2ad imp eldifsn sylanbrc oddprm nnnn0d zexpcl zred simpll1 1red
      syl prmnn ad2antlr nnrpd simp2 modabs2 wb moddvds syl3anc mpbid prmz nnzd
      zsubcld dvdstr mp2and mpbird modexp syl221anc modadd1 oveq1d lgsval3 zcnd
      3eqtr4d lgscl exp0d eqtr4d pceq0 biimpar oveq2d pm2.61dan ifeq1da seqeq3d
      wi mpteq2dv fveq1d eqid lgsval4a ) ADEZBFEZGBHIZUAZUBZBUCCFCUDZUEEZABJKZX
      TLKZXTBUFKZMKZNUGZUHZNUIZUJZBUCCFYAAXTLKZYDMKZNUGZUHZNUIZUJZYBBLKZABLKZXS
      BYHYNXSYGYMUCNXSCFYFYLXSYAYEYKNXSYAOZXTBHIZYEYKPYRYSOZYCYJYDMYTYBXTNQKGUK
      KZMKZNULKXTJKZNQKZAUUAMKZNULKXTJKZNQKZYCYJYTUUCUUFNQYTUUBTEUUETENTEXTUMEZ
      UUBXTJKUUEXTJKPZUUCUUFPYTUUBYTYBDEZUUAUNEZUUBDEXSUUJYAYSXSYBXOXPYBUNEXRAB
      UPUOUQZURZYTUUAYTXTUEGUSVGEZUUAFEYTYAXTGUTZUUNYRYAYSXSYAVAZVBYRYSUUOYRYSX
      TGYRYSUAZXTGPZXRXOXPXRYAVCUURYSXQXTGBHVDVEVFVHVIXTUEGVJVKZXTVLVRVMZYBUUAV
      NRVOYTUUEYTXOUUKUUEDEXOXPXRYAYSVPZUUTAUUAVNRVOYTVQYTXTYAXTFEZXSYSXTVSVTZW
      AZYTUUJXOUUKUUHYBXTJKAXTJKPZUUIUUMUVAUUTUVDYTUVEXTYBAQKZHIZYTYSBUVFHIZUVG
      YRYSVAYTYBBJKYBPZUVHYTATEBUMEUVIYTAUVAVOYTBXSXPYAYSXOXPXRWBZURZWAABWCRYTX
      PUUJXOUVIUVHWDUVKUUMUVAYBABWEWFWGYTXTDEZBDEUVFDEYSUVHOUVGXJYAUVLXSYSXTWHZ
      VTYTBUVKWIYTYBAUUMUVAWJXTBUVFWKWFWLYTUVBUUJXOUVEUVGWDUVCUUMUVAYBAXTWEWFWM
      YBAUUAXTWNWOUUBUUENXTWPWOWQYTUUJUUNYCUUDPUUMUUSYBXTWRRYTXOUUNYJUUGPUVAUUS
      AXTWRRWTWQYRUUQOZYCSMKZYJSMKZYEYKUVNUVONUVPUVNYCUVNYCUVNUUJUVLYCDEXSUUJYA
      UUQUULURYAUVLXSUUQUVMVTZYBXTXARWSXBUVNYJUVNYJUVNXOUVLYJDEXOXPXRYAUUQVPUVQ
      AXTXARWSXBXCUVNYDSYCMYRYDSPZUUQYRYAXPUVRUUQWDUUPXSXPYAUVJVBXTBXDRXEZXFUVN
      YDSYJMUVSXFWTXGXHXKXIXLXSUUJXPYPYIPUULUVJYBCYGBYGXMXNRXOXPYQYOPXRACYMBYMX
      MXNUOWT $.

    $( Lemma for ~ lgsdi and ~ lgsdir : the sign part of the Legendre symbol is
       multiplicative.  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsdilem $p |- ( ( ( A e. ZZ /\ B e. ZZ /\ N e. ZZ ) /\
                     ( A =/= 0 /\ B =/= 0 ) ) ->
      if ( ( N < 0 /\ ( A x. B ) < 0 ) , -u 1 , 1 ) =
      ( if ( ( N < 0 /\ A < 0 ) , -u 1 , 1 ) x.
        if ( ( N < 0 /\ B < 0 ) , -u 1 , 1 ) ) ) $=
      ( cz wcel cc0 wa clt wbr cmul co c1 cneg cif wceq cr adantr recnd ifbid
      wb w3a wne wn cle simplrr biantrud 0re simpl2 zred ltlen sylancr renegcld
      simpl1 mul01d mulneg1d breq12d lt0neg1d biimpa syl112anc remulcld 3bitr4d
      0red ltmul2 3bitr2rd lenlt bitrd oveq2 neg1mulneg1e1 syl6eq ax-1cn mulm1i
      ifnot eqtr4i syl6eqr iftrue adantl oveq1d eqtr4d iffalse cc neg1cn keepel
      ifsb mulid2i biimpar simplrl ne0gt0d breq2d syl5eq eqtr2d pm2.61dan simpr
      biantrurd oveq12d 3eqtr3d intnanrd iffalsed 1t1e1 ) ADEZBDEZCDEZUAZAFUBZB
      FUBZGZGZCFHIZXGABJKZFHIZGZLMZLNZXGAFHIZGZXKLNZXGBFHIZGZXKLNZJKZOXFXGGZXIX
      KLNZXMXKLNZXPXKLNZJKZXLXSXFYAYDOZXGXFXMYEXFXMGZYAXKYCJKZYDYFYAXPUCZXKLNZY
      GYFXIYHXKLYFXIFBUDIZYHYFYJYJXDGZFBHIZXIYFXDYJXBXCXDXMUEUFYFFPEZBPEZYLYKTU
      GXFYNXMXFBWSWTXAXEUHUIZQZFBUJUKYFAMZFJKZYQBJKZHIZFXHMZHIYLXIYFYRFYSUUAHYF
      YQYFYQYFAXFAPEZXMXFAWSWTXAXEUMUIZQZULZRUNYFABYFAUUDRYFBYPRUOUPYFYMYNYQPEF
      YQHIZYLYTTYFVBYPUUEXFXMUUFXFAUUCUQURFBYQVCUSYFXHXFXHPEXMXFABUUCYOUTQUQVAV
      DYFYMYNYJYHTUGYPFBVEUKVFSYGXPLXKNYIXPXKLYGLXKYCXKOYGXKXKJKLYCXKXKJVGVHVIY
      CLOYGXKLJKXKYCLXKJVGLVJVKVIWCXPXKLVLVMVNYFYBXKYCJXMYBXKOXFXMXKLVOVPVQVRXF
      XMUCZGZYDLYCJKZYAUUHYBLYCJUUGYBLOXFXMXKLVSVPVQUUHUUIYCYAYCXPXKLVTWAVJWBWD
      UUHXPXIXKLUUHXPXHAFJKZHIZXIUUHYNYMUUBFAHIXPUUKTXFYNUUGYOQUUHVBXFUUBUUGUUC
      QZUUHAUULXFFAUDIZUUGXFYMUUBUUMUUGTUGUUCFAVEUKWEXBXCXDUUGWFWGBFAVCUSUUHUUJ
      FXHHUUHAUUHAUULRUNWHVFSWIWJWKQXTXIXJXKLXTXGXIXFXGWLZWMSXTYBXOYCXRJXTXMXNX
      KLXTXGXMUUNWMSXTXPXQXKLXTXGXPUUNWMSWNWOXFXGUCZGZXLLLJKZXSUUPXLLUUQUUPXJXK
      LUUPXGXIXFUUOWLZWPWQWRVNUUPXOLXRLJUUPXNXKLUUPXGXMUURWPWQUUPXQXKLUUPXGXPUU
      RWPWQWNVRWK $.

    $( Lemma for ~ lgsdir2 .  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsdir2lem1 $p |- ( ( ( 1 mod 8 ) = 1 /\ ( -u 1 mod 8 ) = 7 ) /\
      ( ( 3 mod 8 ) = 3 /\ ( -u 3 mod 8 ) = 5 ) ) $=
      ( c1 c8 cmo co wceq c7 c3 c5 cr wcel cc0 cle wbr modid mp4an caddc ax-1cn
      clt 8cn eqtri cneg wa crp 1re 8pos elrpii 0le1 1lt8 mulid2i oveq2i negcli
      8re cmul cmin negsubi 7cn addcomi df-8 eqtr4i subaddrii addcomli renegcli
      oveq1i cz 1z modcyc 7re 0re 7pos ltleii 7lt8 3eqtr3i pm3.2i 3re 3pos 3lt8
      mp3an 3cn 5cn 5p3e8 5re 5pos 5lt8 ) ABCDAEZAUAZBCDZFEZUBGBCDGEZGUAZBCDZHE
      ZUBWDWGAIJBUCJZKALMABRMWDUDBULUEUFZUGUHABNOWEABUMDZPDZBCDZFBCDZWFFWOFBCWO
      WEBPDFWNBWEPBSUIZUJBWEFSAQUKBWEPDBAUNDFBASQUOBAFSQUPAFPDFAPDBAFQUPUQURUSU
      TTVATVCWEIJWLAVDJZWPWFEAUDVBWMVEWEBAVFVQFIJWLKFLMFBRMWQFEVGWMKFVHVGVIVJVK
      FBNOVLVMWHWKGIJWLKGLMGBRMWHVNWMKGVHVNVOVJVPGBNOWIWNPDZBCDZHBCDZWJHWTHBCWT
      WIBPDHWNBWIPWRUJBWIHSGVRUKBWIPDBGUNDHBGSVRUOBGHSVRVSHGBVSVRVTVAUTTVATVCWI
      IJWLWSXAWJEGVNVBWMVEWIBAVFVQHIJWLKHLMHBRMXBHEWAWMKHVHWAWBVJWCHBNOVLVMVM
      $.

    ${
      lgsdir2lem2.1 $e |- ( K e. ZZ /\ 2 || ( K + 1 ) /\
        ( ( A e. ZZ /\ -. 2 || A ) ->
          ( ( A mod 8 ) e. ( 0 ... K ) -> ( A mod 8 ) e. S ) ) ) $.
      lgsdir2lem2.2 $e |- M = ( K + 1 ) $.
      lgsdir2lem2.3 $e |- N = ( M + 1 ) $.
      lgsdir2lem2.4 $e |- N e. S $.
      $( Lemma for ~ lgsdir2 .  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
      lgsdir2lem2 $p |- ( N e. ZZ /\ 2 || ( N + 1 ) /\
        ( ( A e. ZZ /\ -. 2 || A ) ->
          ( ( A mod 8 ) e. ( 0 ... N ) -> ( A mod 8 ) e. S ) ) ) $=
        ( cz wcel c2 c1 caddc co cdvds wbr cc0 cfz ax-1cn wn cmo simp1i peano2z
        wa c8 wi ax-mp eqeltri simp2i wb 2z dvdsadd mp2an mpbi cc addcomi eqtri
        zcn oveq1i df-2 add32i eqtr4i 2cn addassi breqtrri cmin wceq wo cuz cfv
        elfzuz2 fzm1 syl subaddrii oveq2i eleq2s eqcomi eleq2i simp3i syl5bi cn
        ibi 2nn 8nn w3a c4 cmul 4z dvdsmul2 4t2e8 breqtri dvdsmod mpan2 mp3an12
        notbid biimpar id syl5breqr nsyl pm2.21d jaod syl5 eleq1 mpbiri 3pm3.2i
        a1i ) EJKZLEMNOZPQAJKZLAPQZUAZUEZAUFUBOZRESOKZXNBKZUGUGEDMNOZJHDJKZXQJK
        DCMNOZJGCJKZXSJKZXTLXSPQZXMXNRCSOZKZXPUGUGZFUCZCUDUHZUIZDUDUHUIZLLXSNOZ
        XIPYBLYJPQZXTYBYEFUJZLJKZYAYBYKUKULYGLXSUMUNUOXILCNOZMNOYJEYNMNEMCNOZMN
        OZYNEXQYPHDYOMNDXSYOGCMXTCUPKYFCUSUHZTUQURZUTURYNMMNOZCNOYPLYSCNVAUTMCM
        TYQTVBVCVCUTLCMVDYQTVEURVFXOXNREMVGOZSOZKZXNEVHZVIZXMXPXOUUDXOERVJVKZKX
        OUUDUKXNREVLXNREVMVNWCXMUUBXPUUCUUBXNRDMVGOZSOZKZXNDVHZVIZXMXPUUJXNRDSO
        ZUUAXNUUKKZUUJUULDUUEKUULUUJUKXNRDVLXNRDVMVNWCYTDRSEMDXHEUPKYIEUSUHTXRD
        UPKYHDUSUHZMDNOXQEMDTUUMUQHVCVOVPVQXMUUHXPUUIUUHYDXMXPUUGYCXNUUFCRSDMCU
        UMTYQDYOYRVRVOVPVSXTYBYEFVTWAXMUUIXPXMLXNPQZUUIXJUUNUAXLXJUUNXKLWBKZUFW
        BKZXJUUNXKUKZWDWEUUOUUPXJWFLUFPQUUQLWGLWHOZUFPWGJKYMLUURPQWIULWGLWJUNWK
        WLLAUFWMWNWOWPWQUUILDXNPLXSDPYLGVFUUIWRWSWTXAXBXCUUCXPUGXMUUCXPEBKIXNEB
        XDXEXGXBXCXF $.
    $}

    $( Lemma for ~ lgsdir2 .  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsdir2lem3 $p |- ( ( A e. ZZ /\ -. 2 || A ) ->
      ( A mod 8 ) e. ( { 1 , 7 } u. { 3 , 5 } ) ) $=
      ( cz wcel c2 cdvds wbr c8 co cc0 c7 cfz c1 c3 c5 ax-1cn caddc lgsdir2lem2
      cn wi sselii wn cmo cpr cun cmin simpl 8nn zmodfz sylancl 8cn 7cn addcomi
      wa df-8 eqtr4i subaddrii oveq2i syl6eleq c6 c4 neg1z dvds0 ax-mp 1pneg1e0
      cneg 2z neg1cn eqtr3i breqtri c0 noel pm2.21i clt neg1lt0 wb 0z fzn mp2an
      wceq mpbi a1i 3pm3.2i 1e0p1 ssun1 1ex prid1 df-2 df-3 ssun2 3ex df-4 df-5
      eleq2s 5nn elexi prid2 df-6 df-7 7nn simp3i mpd ) ABCZDAEFUAZUMZAGUBHZIJK
      HZCZXELJUCZMNUCZUDZCZXDXEIGLUEHZKHZXFXDXBGRCXEXMCXBXCUFUGAGUHUIXLJIKGLJUJ
      OUKLJPHJLPHZGLJOUKULUNUOUPUQURJBCDXNEFXDXGXKSSAXJNUSJAXJMUTNAXJLDMAXJLVEZ
      ILXOBCZDXOLPHZEFXDXEIXOKHZCXKSZSVADIXQEDBCDIEFVFDVBVCLXOPHIXQVDLXOOVGULVH
      ZVIXSXDXKXEVJXRXEVJCXKXEVKVLXOIVMFZXRVJVSZVNIBCXPYAYBVOVPVAIXOVQVRVTWMWAW
      BXTWCXHXJLXHXIWDZLJWEWFTQWGWHXIXJMXIXHWIZMNWJWFTQWKWLXIXJNYDMNNRWNWOWPTQW
      QWRXHXJJYCLJJRWSWOWPTQWTXA $.

    $( Lemma for ~ lgsdir2 .  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsdir2lem4 $p |- ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( A mod 8 ) e. { 1 , 7 } )
    -> ( ( ( A x. B ) mod 8 ) e. { 1 , 7 } <-> ( B mod 8 ) e. { 1 , 7 } ) ) $=
      ( c8 cmo co c1 c7 wcel cz wa wceq wo cmul cr a1i simpr cneg oveq1d eleq1d
      syl6eqr vx cpr wb ovex elpr crp zre ad2antrr 1red simplr 8re elrpii c3 c5
      lgsdir2lem1 simpli modmul1 syl221anc cc zcn ad2antlr mulid2d eqtrd neg1rr
      8pos simpri mulm1d wi znegcl cv oveq1 negeq neg1cn mulcom mpan2 mulm1 syl
      imbi12d adantr neg1z eqtr3d mulid2i oveq1i eqtri ex neg1mulneg1e1 orim12d
      syl6eq orcom bitri 3imtr4g vtoclga negnegd sylibd impbid jaodan sylan2b
      bitrd ) ACDEZFGUBZHAIHZBIHZJZWSFKZWSGKZLABMECDEZWTHZBCDEZWTHZUCZWSFGACDUD
      UEXCXDXJXEXCXDJZXFXHWTXKXFFBMEZCDEZXHXKANHZFNHZXBCUFHZWSFCDEZKXFXMKXAXNXB
      XDAUGZUHXKUIXAXBXDUJXPXKCUKVEULZOXKWSFXQXCXDPXQFKZFQZCDEZGKZXTYCJUMCDEUMK
      UMQCDEUNKJUOUPZUPZTAFBCUQURXKXLBCDXKBXBBUSHZXAXDBUTZVAVBRVCSXCXEJZXGBQZCD
      EZWTHZXIYHXFYJWTYHXFYABMEZCDEZYJYHXNYANHZXBXPWSYBKXFYMKXAXNXBXEXRUHYNYHVD
      OXAXBXEUJXPYHXSOYHWSGYBXCXEPXTYCYDVFZTAYABCUQURYHYLYICDYHBXBYFXAXEYGVAVGR
      VCSXBYKXIUCXAXEXBYKXIXBYKYIQZCDEZWTHZXIXBYIIHYKYRVHZBVIUAVJZCDEZWTHZYTQZC
      DEZWTHZVHZYSUAYIIYTYIKZUUBYKUUEYRUUGUUAYJWTYTYICDVKSUUGUUDYQWTUUGUUCYPCDY
      TYIVLRSVRYTIHZUUAFKZUUAGKZLUUDGKZUUDFKZLZUUBUUEUUHUUIUUKUUJUULUUHUUIUUKUU
      HUUIJZUUDFYAMEZCDEZGUUNYTYAMEZCDEZUUDUUPUUNUUQUUCCDUUHUUQUUCKZUUIUUHYTUSH
      ZUUSYTUTUUTUUQYAYTMEZUUCUUTYAUSHUUQUVAKVMYTYAVNVOYTVPVCVQZVSRUUNYTNHZXOYA
      IHZXPUUAXQKUURUUPKUUHUVCUUIYTUGZVSUUNUIUVDUUNVTOXPUUNXSOUUNUUAFXQUUHUUIPY
      ETYTFYACUQURWAUUPYBGUUOYACDYAVMWBWCYOWDWHWEUUHUUJUULUUHUUJJZUUDYAYAMEZCDE
      ZFUVFUURUUDUVHUVFUUQUUCCDUUHUUSUUJUVBVSRUVFUVCYNUVDXPUUAYBKUURUVHKUUHUVCU
      UJUVEVSYNUVFVDOUVDUVFVTOXPUVFXSOUVFUUAGYBUUHUUJPYOTYTYAYACUQURWAUVHXQFUVG
      FCDWFWCYEWDWHWEWGUUAFGYTCDUDUEUUEUULUUKLUUMUUDFGUUCCDUDUEUULUUKWIWJWKZWLV
      QXBYQXHWTXBYPBCDXBBYGWMRSWNUUFXIYKVHUABIYTBKZUUBXIUUEYKUVJUUAXHWTYTBCDVKS
      UVJUUDYJWTUVJUUCYICDYTBVLRSVRUVIWLWOVAWRWPWQ $.

    $( Lemma for ~ lgsdir2 .  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsdir2lem5 $p |- ( ( ( A e. ZZ /\ B e. ZZ ) /\
      ( ( A mod 8 ) e. { 3 , 5 } /\ ( B mod 8 ) e. { 3 , 5 } ) ) ->
        ( ( A x. B ) mod 8 ) e. { 1 , 7 } ) $=
      ( cz wcel wa c8 cmo co c3 c5 cmul c1 wceq 3z a1i syl6eqr modmul12d oveq1i
      3cn wtru cpr cneg c7 wo ovex elpr anbi12i simpll simplr crp elrpii simprl
      8pos lgsdir2lem1 simpri simpli simprr orcd ex znegcl mp1i mulneg1i syl6eq
      8re olcd mulneg2i mul2negi ccased syl5bi imp sylibr caddc df-9 8cn ax-1cn
      c9 addcomi eqtri 3t3e9 mulid2i oveq2i 3eqtr4i cr 1z modcyc mp3an nnmulcli
      1re 3nn nnzi eqidd trud mulcli mulm1i 3eqtr3i preq12i syl6eleq ) ACDZBCDZ
      EZAFGHZIJUAZDZBFGHZXBDZEZEZABKHZFGHZIIKHZFGHZXJUBZFGHZUAZLUCUAXGXIXKMZXIX
      MMZUDZXIXNDWTXFXQXFXAIMZXAJMZUDZXDIMZXDJMZUDZEWTXQXCXTXEYCXAIJAFGUEUFXDIJ
      BFGUEUFUGWTXRYAXSYBXQWTXRYAEZXQWTYDEZXOXPYEAIBIFWRWSYDUHICDZYENOZWRWSYDUI
      YGFUJDZYEFVDUMUKZOYEXAIIFGHZWTXRYAULYJIMZIUBZFGHZJMZLFGHZLMZLUBZFGHZUCMZE
      ZYKYNEZUNUOZUPZPYEXDIYJWTXRYAUQUUCPQURUSWTXSYAEZXQWTUUDEZXPXOUUEXIYLIKHZF
      GHXMUUEAYLBIFWRWSUUDUHYFYLCDZUUENIUTZVAWRWSUUDUIYFUUENOYHUUEYIOUUEXAJYMWT
      XSYAULYKYNUUBUOZPUUEXDIYJWTXSYAUQUUCPQUUFXLFGIISSVBRVCVEUSWTXRYBEZXQWTUUJ
      EZXPXOUUKXIIYLKHZFGHXMUUKAIBYLFWRWSUUJUHYFUUKNOWRWSUUJUIYFUUGUUKNUUHVAYHU
      UKYIOUUKXAIYJWTXRYBULUUCPUUKXDJYMWTXRYBUQUUIPQUULXLFGIISSVFRVCVEUSWTXSYBE
      ZXQWTUUMEZXOXPUUNXIYLYLKHZFGHXKUUNAYLBYLFWRWSUUMUHYFUUGUUNNUUHVAZWRWSUUMU
      IUUPYHUUNYIOUUNXAJYMWTXSYBULUUIPUUNXDJYMWTXSYBUQUUIPQUUOXJFGIISSVGRVCURUS
      VHVIVJXIXKXMXHFGUEUFVKXKLXMUCXKYOLXKLLFKHZVLHZFGHZYOXJUURFGVPLFVLHZXJUURV
      PFLVLHUUTVMFLVNVOVQVRVSUUQFLVLFVNVTWAWBRLWCDYHLCDZUUSYOMWHYIWDLFLWEWFVRZY
      PYSYTUUAUNUPZUPVRXMYRUCYQXJKHZFGHZYQLKHZFGHZXMYRUVEUVGMTYQYQXJLFUVAYQCDTW
      DLUTVAZUVHXJCDTXJIIWIWIWGWJOUVATWDOYHTYIOTYRWKXKYOMTUVBOQWLUVDXLFGXJIISSW
      MWNRUVFYQFGLVOWNRWOYPYSUVCUOVRWPWQ $.

    $( The Legendre symbol is completely multiplicative at ` 2 ` .
       (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsdir2 $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
      ( ( A x. B ) /L 2 ) = ( ( A /L 2 ) x. ( B /L 2 ) ) ) $=
      ( cz wcel wa c2 cc0 c8 cmo co cif cmul wceq keepel adantl 3eqtr4a iffalse
      c1 cc wn cdvds wbr c7 cpr cneg clgs ax-1cn neg1cn mul02i iftrue oveq1d wi
      0cn 2z dvdsmultr1 mp3an1 imp iftrued mul01i oveq2d dvdsmultr2 lgsdir2lem4
      mulid2i wb adantlr ifbid mulid1i zcn mulcom syl2an ad2antrr ancom1s bitrd
      eleq1d neg1mulneg1e1 oveqan12d c3 c5 wo lgsdir2lem3 ad2ant2r elun orcanai
      cun sylib ad2ant2l anim12dan lgsdir2lem5 syldan pm2.61ddan ioran euclemma
      cprime 2prm notbid biimpar sylan2br syl 3eqtr4d lgs2 zmulcl 3eqtr4rd ) AC
      DZBCDZEZFAUAUBZGAHIJZRUCUDZDZRRUEZKZKZFBUAUBZGBHIJZXHDZRXJKZKZLJZFABLJZUA
      UBZGXSHIJZXHDZRXJKZKZAFUFJZBFUFJZLJXSFUFJZXEXFXMXRYDMXEXFEZGXQLJGXRYDXQXM
      GXPSUMXORXJSUGUHNZNUIYHXLGXQLXFXLGMXEXFGXKUJOUKYHXTGYCXEXFXTFCDZXCXDXFXTU
      LUNFABUOUPUQURPXEXMEZXLGLJGXRYDXLXFGXKSUMXIRXJSUGUHNZNUSYKXQGXLLXMXQGMXEX
      MGXPUJOUTYKXTGYCXEXMXTYJXCXDXMXTULUNFABVAUPUQURPXEXFTZXMTZEZEZXKXPLJZYCXR
      YDYPXIXOYQYCMYPXIEZRXPLJXPYQYCXPYIVCYRXKRXPLXIXKRMYPXIRXJUJOUKYRYBXORXJXE
      XIYBXOVDYOABVBVEVFPYPXOEZXKRLJXKYQYCXKYLVGYSXPRXKLXOXPRMYPXORXJUJOUTYSYBX
      IRXJYSYBBALJZHIJZXHDZXIYSYAUUAXHYSXSYTHIXEXSYTMZYOXOXCASDBSDUUCXDAVHBVHAB
      VIVJVKUKVNXEXOUUBXIVDZYOXDXCXOUUDBAVBVLVEVMVFPYPXITZXOTZEZEZXJXJLJZRYQYCV
      OUUGYQUUIMYPUUEUUFXKXJXPXJLXIRXJQXORXJQVPOUUHYBRXJYPUUGXGVQVRUDZDZXNUUJDZ
      EZYBYPUUEUUKUUFUULYPXIUUKYPXGXHUUJWDZDZXIUUKVSXCYMUUOXDYNAVTWAXGXHUUJWBWE
      WCYPXOUULYPXNUUNDZXOUULVSXDYNUUPXCYMBVTWFXNXHUUJWBWEWCWGXEUUMYBYOABWHVEWI
      URPWJYOXRYQMXEYMYNXLXKXQXPLXFGXKQXMGXPQVPOYPXTTZYDYCMYOXEXFXMVSZTZUUQXFXM
      WKXEUUQUUSXEXTUURFWMDXCXDXTUURVDWNFABWLUPWOWPWQXTGYCQWRWSWJXCXDYEXLYFXQLA
      WTBWTVPXEXSCDYGYDMABXAXSWTWRXB $.

    $( The Legendre symbol is completely multiplicative at the primes.  See
       theorem 9.3 in [ApostolNT] p. 180.  (Contributed by Mario Carneiro,
       4-Feb-2015.) $)
    lgsdirprm $p |- ( ( A e. ZZ /\ B e. ZZ /\ P e. Prime ) ->
      ( ( A x. B ) /L P ) = ( ( A /L P ) x. ( B /L P ) ) ) $=
      ( vx cz wcel cmul co clgs wceq c2 syl2anc syl zcnd cabs cmo cr cle wbr c1
      cprime w3a simpl1 simpl2 lgsdir2 simpr oveq2d oveq12d 3eqtr4d wne zmulcld
      wa simpl3 prmz lgscl subcld cfv cc0 crp clt abscld cn prmnn nnrpd absge0d
      cmin 2re a1i nnred caddc readdcld abs2dif2d 1red lgsle1 crab eqid lgslem3
      lgscl2 fveq2 breq1d elrab simprbi le2addd df-2 syl6breqr letrd cuz prmuz2
      cv 3syl wb ltlen sylancr mpbir2and lelttrd modid syl22anc cdvds cdiv cexp
      eluzle csn cdif eldifsn sylanbrc oddprm nnnn0d mulexpd cn0 zexpcl mulcomd
      eqtrd oveq1d lgsvalmod modmul1 syl221anc moddvds syl3anc zsubcld dvdsabsb
      zred mpbid nn0abscl nn0zd dvdsval3 eqtr3d abs00d subeq0d pm2.61dane ) AEF
      ZBEFZCUAFZUBZABGHZCIHZACIHZBCIHZGHZJCKYMCKJZULZYNKIHZAKIHZBKIHZGHZYOYRYTY
      JYKUUAUUDJYJYKYLYSUCYJYKYLYSUDABUELYTCKYNIYMYSUFZUGYTYPUUBYQUUCGYTCKAIUUE
      UGYTCKBIUUEUGUHUIYMCKUJZULZYOYRUUGYOUUGYNEFZCEFZYOEFZUUGABYJYKYLUUFUCZYJY
      KYLUUFUDZUKZUUGYLUUIYJYKYLUUFUMZCUNMZYNCUOLZNZUUGYRUUGYPYQUUGYJUUIYPEFUUK
      UUOACUOLZUUGYKUUIYQEFZUULUUOBCUOLZUKZNZUUGYOYRVFHZUUGYOYRUUQUVBUPZUUGUVCO
      UQZCPHZUVEURUUGUVEQFCUSFZURUVERSUVECUTSUVFUVEJUUGUVCUVDVAZUUGCUUGYLCVBFZU
      UNCVCMZVDZUUGUVCUVDVEUUGUVEKCUVHKQFZUUGVGVHZUUGCUVJVIZUUGUVEYOOUQZYROUQZV
      JHZKUVHUUGUVOUVPUUGYOUUQVAZUUGYRUVBVAZVKUVMUUGYOYRUUQUVBVLUUGUVQTTVJHKRUU
      GUVOUVPTTUVRUVSUUGVMZUVTUUGUUHUUIUVOTRSUUMUUOYNCVNLUUGYRDWIZOUQZTRSZDEVOZ
      FZUVPTRSZUUGYPUWDFZYQUWDFZUWEUUGYJUUIUWGUUKUUODACUWDUWDVPZVRLUUGYKUUIUWHU
      ULUUODBCUWDUWIVRLDYPYQUWDUWIVQLUWEYREFZUWFUWCUWFDYREUWAYRJUWBUVPTRUWAYROV
      SVTWAWBMWCWDWEWFUUGKCUTSZKCRSZUUFUUGYLCKWGUQFUWLUUNCWHKCXAWJYMUUFUFZUUGUV
      LCQFUWKUWLUUFULWKVGUVNKCWLWMWNWOUVECWPWQUUGCUVEWRSZUVFURJZUUGCUVCWRSZUWNU
      UGYOCPHZYRCPHZJZUWPUUGYNCTVFHKWSHZWTHZCPHZBUWTWTHZAUWTWTHZGHZCPHZUWQUWRUU
      GUXAUXECPUUGUXAUXDUXCGHUXEUUGABUWTUUGAUUKNUUGBUULNUUGUWTUUGCUAKXBXCFZUWTV
      BFUUGYLUUFUXGUUNUWMCUAKXDXEZCXFMXGZXHUUGUXDUXCUUGUXDUUGYJUWTXIFZUXDEFZUUK
      UXIAUWTXJLZNZUUGUXCUUGYKUXJUXCEFUULUXIBUWTXJLZNXKXLXMUUGUUHUXGUWQUXBJUUMU
      XHYNCXNLUUGUWRUXDYQGHZCPHZUXFUUGYPQFUXDQFUUSUVGYPCPHUXDCPHJZUWRUXPJUUGYPU
      URYAUUGUXDUXLYAUUTUVKUUGYJUXGUXQUUKUXHACXNLYPUXDYQCXOXPUUGUXPYQUXDGHZCPHZ
      UXFUUGUXOUXRCPUUGUXDYQUXMUUGYQUUTNXKXMUUGYQQFUXCQFUXKUVGYQCPHUXCCPHJZUXSU
      XFJUUGYQUUTYAUUGUXCUXNYAUXLUVKUUGYKUXGUXTUULUXHBCXNLYQUXCUXDCXOXPXLXLUIUU
      GUVIUUJUWJUWSUWPWKUVJUUPUVAYOYRCXQXRYBUUGUUIUVCEFZUWPUWNWKUUOUUGYOYRUUPUV
      AXSZCUVCXTLYBUUGUVIUVEEFUWNUWOWKUVJUUGUVEUUGUYAUVEXIFUYBUVCYCMYDCUVEYELYB
      YFYGYHYI $.

    $( The Legendre symbol is completely multiplicative in its left argument.
       Generalization of theorem 9.9(a) in [ApostolNT] p. 188 (which assumes
       that ` A ` and ` B ` are odd positive integers).  Together with ~ lgsqr
       this implies that the product of two quadratic residues or nonresidues
       is a residue, and the product of a residue and a nonresidue is a
       nonresidue.  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
    lgsdir $p |- ( ( ( A e. ZZ /\ B e. ZZ /\ N e. ZZ ) /\
                     ( A =/= 0 /\ B =/= 0 ) ) ->
      ( ( A x. B ) /L N ) = ( ( A /L N ) x. ( B /L N ) ) ) $=
      ( vn cz wcel cc0 wa cmul co clgs wceq cexp c1 cif cc adantl wbr adantr cn
      vx vy vz vk w3a wne ax-1cn 0cn keepel mulid2i iftrue oveq1d zcnd ad2antrr
      c2 simpl1 simpl2 sqmuld simpr sqcld mulid2d 3eqtrd eqeq1d ifbid wn mul02i
      3eqtr4a iffalse cdvds dvdsmul1 syl2anc zmulcld dvdssq mpbid syl5ibcom cle
      wb breq2 wi simprl neneqd sqeq0 syl mtbird cn0 wo zsqcl2 elnn0 sylib mt3d
      ord 1nn dvdsle sylancl nnge1d jctird cr nnred 1re letri3 sylibrd con3dimp
      nnzd syld iffalsed pm2.61dan lgs0 sylan9eqr oveq12d 3eqtr4rd clt cneg cfv
      oveq2 cabs cv cprime cpc cmpt cseq lgsdilem mulcl wf eqid lgsfcl3 syl3anc
      ffvelrn syl2an lgscl eqtrd 3eqtr4d ifbieq1d ovex 1ex fvmpt lgsval4 neg1cn
      ifex a1i seqcl mulcom mulass cuz simpl3 nnabscl nnuz syl6eleq cfz simpll1
      sylan simpll3 elfznn simpll2 lgsdirprm prmz pczcl syl12anc mulexpd eqcomi
      1t1e1 eleq1 oveq1 seqcaopr mul4d pm2.61dane ) AEFZBEFZCEFZUEZAGUFZBGUFZHZ
      HZABIJZCKJZACKJZBCKJZIJZLCGUVMCGLZHZAUOMJZNLZNGOZBUOMJZNLZNGOZIJZUVNUOMJZ
      NLZNGOZUVRUVOUVTUWBUWGUWJLUVTUWBHZNUWFIJUWFUWGUWJUWFUWENGPUGUHUIZUJUWKUWC
      NUWFIUWBUWCNLUVTUWBNGUKQULUWKUWIUWENGUWKUWHUWDNUWKUWHUWAUWDIJNUWDIJUWDUWK
      ABUVMAPFZUVSUWBUVMAUVFUVGUVHUVLUPZUMZUNUVMBPFUVSUWBUVMBUVFUVGUVHUVLUQZUMZ
      UNURUWKUWANUWDIUVTUWBUSULUWKUWDUVMUWDPFUVSUWBUVMBUWQUTUNVAVBVCVDVGUVTUWBV
      EZHZGUWFIJGUWGUWJUWFUWLVFUWSUWCGUWFIUWRUWCGLUVTUWBNGVHQULUWSUWINGUVTUWIUW
      BUVTUWIUWANVIRZUWBUVTUWAUWHVIRZUWIUWTUVMUXAUVSUVMAUVNVIRZUXAUVMUVFUVGUXBU
      WNUWPABVJVKUVMUVFUVNEFZUXBUXAVQUWNUVMABUWNUWPVLZAUVNVMVKVNSUWHNUWAVIVRVOU
      VTUWTUWANVPRZNUWAVPRZHZUWBUVTUWTUXEUXFUVTUWAEFNTFUWTUXEVSUVTUWAUVMUWATFZU
      VSUVMUXHUWAGLZUVMUXIAGLZUVMAGUVIUVJUVKVTWAUVMUWMUXIUXJVQUWOAWBWCWDUVMUXHU
      XIUVMUWAWEFZUXHUXIWFUVMUVFUXKUWNAWGWCUWAWHWIWKWJSZXCWLUWANWMWNUVTUWAUXLWO
      WPUVTUWAWQFNWQFUWBUXGVQUVTUWAUXLWRWSUWANWTWNXAXDXBXEVGXFUVTUVPUWCUVQUWFIU
      VSUVMUVPAGKJZUWCCGAKXNUVMUVFUXMUWCLUWNAXGWCXHUVSUVMUVQBGKJZUWFCGBKXNUVMUV
      GUXNUWFLUWPBXGWCXHXIUVSUVMUVOUVNGKJZUWJCGUVNKXNUVMUXCUXOUWJLUXDUVNXGWCXHX
      JUVMCGUFZHZCGXKRZUVNGXKRHNXLZNOZCXOXMZIDTDXPZXQFZUVNUYBKJZUYBCXRJZMJZNOZX
      SZNXTXMZIJZUXRAGXKRHZUXSNOZUXRBGXKRHZUXSNOZIJZUYAIDTUYCAUYBKJZUYEMJZNOZXS
      ZNXTXMZUYAIDTUYCBUYBKJZUYEMJZNOZXSZNXTXMZIJZIJZUVOUVRUXQUXTUYOUYIVUFIUVMU
      XTUYOLUXPABCYASUXQUAUBUCIPUDUYSVUDUYHNUYAUAXPZPFZUBXPZPFZHZVUHVUJIJZPFUXQ
      VUHVUJYBQVULVUMVUJVUHIJLUXQVUHVUJUUAQVUIVUKUCXPZPFUEVUMVUNIJVUHVUJVUNIJIJ
      LUXQVUHVUJVUNUUBQUXQUYATNUUCXMUVMUVHUXPUYATFUVFUVGUVHUVLUUDCUUEUUJUUFUUGZ
      UXQUDXPZNUYAUUHJFZHZVUPUYSXMZUXQTEUYSYCZVUPTFZVUSEFVUQUXQUVFUVHUXPVUTUVFU
      VGUVHUVLUXPUUIZUVFUVGUVHUVLUXPUUKZUVMUXPUSZADUYSCUYSYDZYEYFVUPUYAUULZTEVU
      PUYSYGYHUMZVURVUPVUDXMZUXQTEVUDYCZVVAVVHEFVUQUXQUVGUVHUXPVVIUVFUVGUVHUVLU
      XPUUMZVVCVVDBDVUDCVUDYDZYEYFVVFTEVUPVUDYGYHUMZVURVUPXQFZUVNVUPKJZVUPCXRJZ
      MJZNOZVVMAVUPKJZVVOMJZNOZVVMBVUPKJZVVOMJZNOZIJZVUPUYHXMZVUSVVHIJUXQVVQVWD
      LZVUQUXQVVMVWFUXQVVMHZVVPVVSVWBIJZVVQVWDVWGVVPVVRVWAIJZVVOMJVWHVWGVVNVWIV
      VOMVWGUVFUVGVVMVVNVWILUXQUVFVVMVVBSUXQUVGVVMVVJSUXQVVMUSZABVUPUUNYFULVWGV
      VRVWAVVOVWGVVRUXQUVFVUPEFZVVREFVVMVVBVUPUUOZAVUPYIYHUMVWGVWAUXQUVGVWKVWAE
      FVVMVVJVWLBVUPYIYHUMVWGVVMUVHUXPVVOWEFVWJUXQUVHVVMVVCSUXQUXPVVMVVDSVUPCUU
      PUUQUURYJVVMVVQVVPLUXQVVMVVPNUKQVVMVWDVWHLUXQVVMVVTVVSVWCVWBIVVMVVSNUKVVM
      VWBNUKXIQYKVVMVEZVWFUXQVWMNNNIJZVVQVWDVWNNUUTUUSVVMVVPNVHVWMVVTNVWCNIVVMV
      VSNVHVVMVWBNVHXIVGQXFSVURVVAVWEVVQLVUQVVAUXQVVFQZDVUPUYGVVQTUYHUYBVUPLZUY
      CVVMUYFVVPNUYBVUPXQUVAZVWPUYDVVNUYEVVOMUYBVUPUVNKXNUYBVUPCXRUVBZXIYLUYHYD
      ZVVMVVPNVVNVVOMYMYNYRYOWCVURVUSVVTVVHVWCIVURVVAVUSVVTLVWODVUPUYRVVTTUYSVW
      PUYCVVMUYQVVSNVWQVWPUYPVVRUYEVVOMUYBVUPAKXNVWRXIYLVVEVVMVVSNVVRVVOMYMYNYR
      YOWCVURVVAVVHVWCLVWODVUPVUCVWCTVUDVWPUYCVVMVUBVWBNVWQVWPVUAVWAUYEVVOMUYBV
      UPBKXNVWRXIYLVVKVVMVWBNVWAVVOMYMYNYRYOWCXIYKUVCXIUXQUXCUVHUXPUVOUYJLUVMUX
      CUXPUXDSVVCVVDUVNDUYHCVWSYPYFUXQUVRUYLUYTIJZUYNVUEIJZIJVUGUXQUVPVWTUVQVXA
      IUXQUVFUVHUXPUVPVWTLVVBVVCVVDADUYSCVVEYPYFUXQUVGUVHUXPUVQVXALVVJVVCVVDBDV
      UDCVVKYPYFXIUXQUYLUYTUYNVUEUYLPFUXQUYKUXSNPYQUGUIYSUXQUDUAIPUYSNUYAVUOVVG
      VUPPFVUIHVUPVUHIJPFUXQVUPVUHYBQZYTUYNPFUXQUYMUXSNPYQUGUIYSUXQUDUAIPVUDNUY
      AVUOVVLVXBYTUVDYJYKUVE $.

    ${
      lgsdilem2.1 $e |- ( ph -> A e. ZZ ) $.
      lgsdilem2.2 $e |- ( ph -> M e. ZZ ) $.
      lgsdilem2.3 $e |- ( ph -> N e. ZZ ) $.
      lgsdilem2.4 $e |- ( ph -> M =/= 0 ) $.
      lgsdilem2.5 $e |- ( ph -> N =/= 0 ) $.
      lgsdilem2.6 $e |- F = ( n e. NN |-> if ( n e. Prime ,
        ( ( A /L n ) ^ ( n pCnt M ) ) , 1 ) ) $.
      $( Lemma for ~ lgsdi .  (Contributed by Mario Carneiro, 4-Feb-2015.) $)
      lgsdilem2 $p |- ( ph -> ( seq 1 ( x. , F ) ` ( abs ` M ) ) =
        ( seq 1 ( x. , F ) ` ( abs ` ( M x. N ) ) ) ) $=
        ( cfv c1 co wcel cn cz cc0 syl2anc vk vx cmul cc cabs mulid1 adantl cuz
        wceq wne nnabscl nnuz syl6eleq cle wbr nnzd zmulcld zcnd mulne0d abscld
        cv absge0d nnge1d lemulge11d absmuld breqtrrd eluz2 syl3anbrc cfz wa wf
        lgsfcl3 syl3anc elfznn ffvelrn syl2an mulcl seqcl caddc cprime clgs cpc
        cexp cif peano2nnd elfzuz eluznn eleq1 oveq2 oveq1 oveq12d ifbieq1d 1ex
        ovex ifex fvmpt syl cq simpr ad2antrr zq pcabs cdvds wn elfzle1 elfzelz
        wb zltp1le mpbird cr adantr zred ltnled mpbid wi prmz dvdsle mtod pceq0
        clt eqtr3d oveq2d lgscl exp0d eqtrd ifeq1da ifid syl6eq seqid2 ) AUAUCU
        DDEUEMZNEFUCOZUEMZNUAVAZUDPZYMNUCOYMUIAYMUFUGAYJQNUHMAERPZESUJZYJQPZHJE
        UKZTZULUMZAYJRPZYLRPYJYLUNUOYLYJUHMPAYJYSUPZAYLAYKRPYKSUJYLQPAEFHIUQAEF
        AEHURZAFIURZJKUSYKUKTUPAYJYJFUEMZUCOYLUNAYJUUEAEUUCUTZAFUUDUTAEUUCVBAUU
        EAFRPFSUJUUEQPIKFUKTVCVDAEFUUCUUDVEVFYJYLVGVHAUAUBUCUDDNYJYTAYMNYJVIOPZ
        VJYMDMZAQRDVKZYMQPZUUHRPUUGABRPZYOYPUUIGHJBCDELVLVMYMYJVNQRYMDVOVPURYNU
        BVAZUDPVJYMUULUCOUDPAYMUULVQUGVRAYMYJNVSOZYLVIOPZVJZUUHYMVTPZBYMWAOZYME
        WBOZWCOZNWDZNUUOUUJUUHUUTUIAUUMQPYMUUMUHMPUUJUUNAYJYSWEYMUUMYLWFYMUUMWG
        VPCYMCVAZVTPZBUVAWAOZUVAEWBOZWCOZNWDUUTQDUVAYMUIZUVBUUPUVEUUSNUVAYMVTWH
        UVFUVCUUQUVDUURWCUVAYMBWAWIUVAYMEWBWJWKWLLUUPUUSNUUQUURWCWNWMWOWPWQUUOU
        UTUUPNNWDNUUOUUPUUSNNUUOUUPVJZUUSUUQSWCONUVGUURSUUQWCUVGYMYJWBOZUURSUVG
        UUPEWRPZUVHUURUIUUOUUPWSZUVGYOUVIAYOUUNUUPHWTZEXAWQEYMXBTUVGUVHSUIZYMYJ
        XCUOZXDZUVGUVMYMYJUNUOZUUOUVOXDZUUPUUOYJYMXTUOZUVPUUOUVQUUMYMUNUOZUUNUV
        RAYMUUMYLXEUGAUUAYMRPZUVQUVRXGUUNUUBYMUUMYLXFZYJYMXHVPXIUUOYJYMAYJXJPUU
        NUUFXKUUOYMUUNUVSAUVTUGXLXMXNXKUVGUVSYQUVMUVOXOUUPUVSUUOYMXPUGZUVGYOYPY
        QUVKAYPUUNUUPJWTYRTZYMYJXQTXRUVGUUPYQUVLUVNXGUVJUWBYMYJXSTXIYAYBUVGUUQU
        VGUUQUVGUUKUVSUUQRPAUUKUUNUUPGWTUWABYMYCTURYDYEYFUUPNYGYHYEYI $.
    $}

    $( The Legendre symbol is completely multiplicative in its right argument.
       Generalization of theorem 9.9(b) in [ApostolNT] p. 188 (which assumes
       that ` M ` and ` N ` are odd positive integers).  (Contributed by Mario
       Carneiro, 5-Feb-2015.) $)
    lgsdi $p |- ( ( ( A e. ZZ /\ M e. ZZ /\ N e. ZZ ) /\
                    ( M =/= 0 /\ N =/= 0 ) ) ->
      ( A /L ( M x. N ) ) = ( ( A /L M ) x. ( A /L N ) ) ) $=
      ( vn cz wcel cc0 wa cmul co c1 cif cfv cn cpc cexp wceq cc adantl oveq12d
      vx vy vz vk w3a wne clt wbr cneg cabs cv cprime clgs cmpt 3anrot lgsdilem
      cseq sylanb wb ancom ax-mp oveq12i 3eqtr4g mulcl mulcom mulass cuz simpl2
      ifbi simpl3 zmulcld zcnd simprl mulne0d nnabscl syl2anc nnuz syl6eleq cfz
      simprr wf simpl1 eqid lgsfcl3 syl3anc elfznn ffvelrn caddc simpr ad2antrr
      syl2an pcmul syl122anc oveq2d prmz lgscl cn0 pczcl syl12anc expaddd eqtrd
      iftrue 3eqtr4rd wn 1t1e1 iffalse 3eqtr4a pm2.61dan eleq1 oveq2 oveq1 ovex
      ifbieq1d 1ex ifex fvmpt syl seqcaopr mulcomd fveq2d eqtr4d lgsval4 neg1cn
      lgsdilem2 ax-1cn keepel a1i seqcl mul4d 3eqtr4d ) AEFZBEFZCEFZUEZBGUFZCGU
      FZHZHZBCIJZGUGUHZAGUGUHZHZKUIZKLZYSUJMZIDNDUKZULFZAUUFUMJZUUFYSOJZPJZKLZU
      NZKUQMZIJZBGUGUHZUUAHZUUCKLZCGUGUHZUUAHZUUCKLZIJZBUJMZIDNUUGUUHUUFBOJZPJZ
      KLZUNZKUQZMZCUJMZIDNUUGUUHUUFCOJZPJZKLZUNZKUQZMZIJZIJZAYSUMJZABUMJZACUMJZ
      IJZYRUUDUVAUUMUVPIYRUUAYTHZUUCKLZUUAUUOHZUUCKLZUUAUURHZUUCKLZIJZUUDUVAYNY
      LYMYKUEYQUWCUWHQYKYLYMUOBCAUPURUUBUWBUSUUDUWCQYTUUAUTUUBUWBUUCKVIVAUUQUWE
      UUTUWGIUUPUWDUSUUQUWEQUUOUUAUTUUPUWDUUCKVIVAUUSUWFUSUUTUWGQUURUUAUTUUSUWF
      UUCKVIVAVBVCYRUUMUUEUVGMZUUEUVNMZIJUVPYRUAUBUCIRUDUVFUVMUULKUUEUAUKZRFZUB
      UKZRFZHZUWKUWMIJZRFYRUWKUWMVDSUWOUWPUWMUWKIJQYRUWKUWMVESUWLUWNUCUKZRFUEUW
      PUWQIJUWKUWMUWQIJIJQYRUWKUWMUWQVFSYRUUENKVGMZYRYSEFZYSGUFZUUENFYRBCYKYLYM
      YQVHZYKYLYMYQVJZVKZYRBCYRBUXAVLZYRCUXBVLZYNYOYPVMZYNYOYPVTZVNZYSVOVPVQVRY
      RUDUKZKUUEVSJFZHZUXIUVFMZYRNEUVFWAZUXINFZUXLEFZUXJYRYKYLYOUXMYKYLYMYQWBZU
      XAUXFADUVFBUVFWCZWDWEZUXIUUEWFZNEUXIUVFWGZWKVLUXKUXIUVMMZYRNEUVMWAZUXNUYA
      EFZUXJYRYKYMYPUYBUXPUXBUXGADUVMCUVMWCZWDWEZUXSNEUXIUVMWGZWKVLUXKUXIULFZAU
      XIUMJZUXIBOJZPJZKLZUYGUYHUXICOJZPJZKLZIJZUYGUYHUXIYSOJZPJZKLZUXLUYAIJZUXI
      UULMZUXKUYGUYOUYRQZUXKUYGHZUYQUYJUYMIJZUYRUYOVUBUYQUYHUYIUYLWHJZPJVUCVUBU
      YPVUDUYHPVUBUYGYLYOYMYPUYPVUDQUXKUYGWIZYRYLUXJUYGUXAWJZYRYOUXJUYGUXFWJZYR
      YMUXJUYGUXBWJZYRYPUXJUYGUXGWJZBCUXIWLWMWNVUBUYHUYIUYLVUBUYHVUBYKUXIEFZUYH
      EFYRYKUXJUYGUXPWJUYGVUJUXKUXIWOSAUXIWPVPVLVUBUYGYMYPUYLWQFVUEVUHVUIUXICWR
      WSVUBUYGYLYOUYIWQFVUEVUFVUGUXIBWRWSWTXAUYGUYRUYQQUXKUYGUYQKXBSUYGUYOVUCQU
      XKUYGUYKUYJUYNUYMIUYGUYJKXBUYGUYMKXBTSXCUYGXDZVUAUXKVUKKKIJKUYOUYRXEVUKUY
      KKUYNKIUYGUYJKXFUYGUYMKXFTUYGUYQKXFXGSXHUXKUXNUYSUYOQUXJUXNYRUXSSZUXNUXLU
      YKUYAUYNIDUXIUVEUYKNUVFUUFUXIQZUUGUYGUVDUYJKUUFUXIULXIZVUMUUHUYHUVCUYIPUU
      FUXIAUMXJZUUFUXIBOXKTXMUXQUYGUYJKUYHUYIPXLXNXOXPDUXIUVLUYNNUVMVUMUUGUYGUV
      KUYMKVUNVUMUUHUYHUVJUYLPVUOUUFUXICOXKTXMUYDUYGUYMKUYHUYLPXLXNXOXPTXQUXKUX
      NUYTUYRQVULDUXIUUKUYRNUULVUMUUGUYGUUJUYQKVUNVUMUUHUYHUUIUYPPVUOUUFUXIYSOX
      KTXMUULWCZUYGUYQKUYHUYPPXLXNXOXPXQXCXRYRUVHUWIUVOUWJIYRADUVFBCUXPUXAUXBUX
      FUXGUXQYDYRUVOCBIJZUJMZUVNMUWJYRADUVMCBUXPUXBUXAUXGUXFUYDYDYRUUEVURUVNYRY
      SVUQUJYRBCUXDUXEXSXTXTYATYATYRYKUWSUWTUVRUUNQUXPUXCUXHADUULYSVUPYBWEYRUWA
      UUQUVHIJZUUTUVOIJZIJUVQYRUVSVUSUVTVUTIYRYKYLYOUVSVUSQUXPUXAUXFADUVFBUXQYB
      WEYRYKYMYPUVTVUTQUXPUXBUXGADUVMCUYDYBWETYRUUQUVHUUTUVOUUQRFYRUUPUUCKRYCYE
      YFYGYRUDUAIRUVFKUVBYRUVBNUWRYRYLYOUVBNFUXAUXFBVOVPVQVRYRUXIKUVBVSJFZHUXLY
      RUXMUXNUXOVVAUXRUXIUVBWFUXTWKVLUXIRFUWLHUXIUWKIJRFYRUXIUWKVDSZYHUUTRFYRUU
      SUUCKRYCYEYFYGYRUDUAIRUVMKUVIYRUVINUWRYRYMYPUVINFUXBUXGCVOVPVQVRYRUXIKUVI
      VSJFZHUYAYRUYBUXNUYCVVCUYEUXIUVIWFUYFWKVLVVBYHYIXAYJ $.

    $( The Legendre symbol is nonzero (and hence equal to ` 1 ` or ` -u 1 ` )
       precisely when the arguments are coprime.  (Contributed by Mario
       Carneiro, 5-Feb-2015.) $)
    lgsne0 $p |- ( ( A e. ZZ /\ N e. ZZ ) ->
      ( ( A /L N ) =/= 0 <-> ( A gcd N ) = 1 ) ) $=
      ( cz wcel wa co cc0 wne c1 wceq c2 syl wbr syl2anc adantr cn cc cdvds cmo
      cexp vn vk vx vp vy clgs cgcd wb cif cabs iffalse necon1ai iftrue ax-1ne0
      cfv a1i eqnetrd impbii zre ad2antrr absresq sq1 eqeq12d cle recnd absge0d
      cr abscld 1re oveq2 sylan9eqr neeq1d eqeq1d w3a clt cmul cprime cpc neeq1
      cv neg1ne0 keephyp ax-1cn cuz nnabscl nnuz syl6eleq mulcl adantl seqcl wn
      zcnd simpr prmz ad2antrl dvdsgcdb syl3anc mpbird simprd dvdsabsb mpbid wi
      mpd prmnn eleq1 oveq1 oveq12d ifbieq1d ovex ifex fvmpt eqtrd cmin simpll1
      1ex cdiv caddc eldifsn sylanbrc crp cn0 oddprm nnnn0d nnrpd dvdsval3 0mod
      zexpcl syl221anc oveq1d syl6eq pm2.61dane simplr breq2d sylibr imp notbid
      0expd pcabs gcdabs elrab 0le1 sq11 mpanr12 bitr3d syl5bb lgs0 gcdid0 cneg
      3bitr4d cmpt cseq eqid lgsval4 biantrur neg1cn keepel 3adant1 cfz lgsfcl3
      elfznn ffvelrn syl2an mulne0bd syl5rbb necon3ai gcdn0cl sylan2 3impa wrex
      wf eluz2b3 exprmfct sylbir adantlr mul02 simprr simpl1 simpl2 dvdsle nnzd
      mul01 elfz5 cpr lgs2 simpld eqbrtrrd iftrued csn cdif simprl lgsval3 zred
      c8 0red 0zd eqtr4d modexp modadd1 0p1e1 oveq1i nnred prmuz2 eluz2b2 sylib
      c7 1mod 1m1e0 cq pcelnn eqeltrrd 3eqtrd seqz rexlimdvaa syl5 necon1d crab
      zq mpand lgscl nprmdvds1 simpll2 bitrd mtbird imnan con2d breq1 syl5ibcom
      iffalsed dvdsgcd mpan2d absexpd dvds0 syl5ibrcom necon3bd simpll3 3eqtr3d
      breq2 rplpwr sylibd mtod necon3bbid lgsvalmod 3netr4d necon3i pczcl nn0zd
      syl12anc expclz expne0i pceq0 3bitr2rd oveq2d mpbir2an syl6eqel pm2.61dan
      biimpar exp0d ifclda eqeltrd ad2ant2r mulne0 jca syl2anb ex impbid 3bitrd
      simprbi 3expa ) ACDZBCDZEZABUFFZGHZABUGFZIJZUHZBGVVKBGJZEZAKTFZIJZIGUIZGH
[encoded data, 5680 characters]
      YK $.

    $( The Legendre symbol is nonzero (and hence equal to ` 1 ` or ` -u 1 ` )
       precisely when the arguments are coprime.  (Contributed by Mario
       Carneiro, 5-Feb-2015.) $)
    lgsabs1 $p |- ( ( A e. ZZ /\ N e. ZZ ) ->
      ( ( abs ` ( A /L N ) ) = 1 <-> ( A gcd N ) = 1 ) ) $=
      ( cz wcel wa clgs co cabs cfv c1 wceq cle wbr cgcd cr lgscl cc0 wne syl
      wb abscld 1re letri3 sylancl lgsle1 biantrurd cn nnne0 cn0 nn0abscl elnn0
      zcnd wo sylib ord necon1ad impbid2 elnnnn0c baib cc abs00 necon3bid bitrd
      lgsne0 3bitr3d 3bitr2d ) ACDBCDEZABFGZHIZJKZVIJLMZJVILMZEZVLABNGJKZVGVIOD
      JODVJVMTVGVHVGVHABPZULZUAUBVIJUCUDVGVKVLABUEUFVGVIUGDZVIQRZVLVNVGVQVRVIUH
      VGVQVIQVGVQVIQKZVGVIUIDZVQVSUMVGVHCDVTVOVHUJSZVIUKUNUOUPUQVGVTVQVLTWAVQVT
      VLVIURUSSVGVRVHQRZVNVGVHUTDZVRWBTVPWCVIQVHQVHVAVBSABVDVCVEVF $.

    $( The Legendre symbol at a square is equal to ` 1 ` .  Together with
       ~ lgsmod this implies that the Legendre symbol takes value ` 1 ` at
       every quadratic residue.  (Contributed by Mario Carneiro, 5-Feb-2015.)
       (Revised by AV, 20-Jul-2021.) $)
    lgssq $p |- ( ( ( A e. ZZ /\ A =/= 0 ) /\ N e. ZZ /\ ( A gcd N ) = 1 )
                   -> ( ( A ^ 2 ) /L N ) = 1 ) $=
      ( cz wcel cc0 wne wa cgcd co c1 wceq w3a cmul clgs c2 simp1l simp2 sqvald
      cexp oveq1d simp1r lgsdir syl32anc cc zcn adantr 3ad2ant1 cabs cr syl2anc
      cfv lgscl zred absresq syl wb lgsabs1 adantlr biimp3ar sq1 syl6eq 3eqtr3d
      zcnd 3eqtr4d ) ACDZAEFZGZBCDZABHIJKZLZAAMIZBNIZABNIZVMMIZAOSIZBNIJVJVEVEV
      HVFVFVLVNKVEVFVHVIPZVPVGVHVIQZVEVFVHVIUAZVRAABUBUCVJVOVKBNVJAVGVHAUDDZVIV
      EVSVFAUEUFUGRTVJVMUHUKZOSIZVMOSIZJVNVJVMUIDWAWBKVJVMVJVEVHVMCDVPVQABULUJZ
      UMVMUNUOVJWAJOSIJVJVTJOSVGVHVTJKZVIVEVHWDVIUPVFABUQURUSTUTVAVJVMVJVMWCVCR
      VBVD $.

    $( The Legendre symbol at a square is equal to ` 1 ` .  (Contributed by
       Mario Carneiro, 5-Feb-2015.) $)
    lgssq2 $p |- ( ( A e. ZZ /\ N e. NN /\ ( A gcd N ) = 1 ) ->
                   ( A /L ( N ^ 2 ) ) = 1 ) $=
      ( cz wcel cn cgcd co c1 wceq w3a cmul clgs c2 cexp cc0 wne simp1 3ad2ant2
      nnz sqvald nnne0 lgsdi syl32anc cc nncn oveq2d cabs cr lgscl syl2anc zred
      cfv absresq syl wb lgsabs1 sylan2 biimp3ar oveq1d sq1 syl6eq zcnd 3eqtr3d
      3eqtr4d ) ACDZBEDZABFGHIZJZABBKGZLGZABLGZVKKGZABMNGZLGHVHVEBCDZVNBOPZVOVJ
      VLIVEVFVGQZVFVEVNVGBSZRZVRVFVEVOVGBUARZVSABBUBUCVHVMVIALVHBVFVEBUDDVGBUER
      TUFVHVKUGULZMNGZVKMNGZHVLVHVKUHDWAWBIVHVKVHVEVNVKCDVPVRABUIUJZUKVKUMUNVHW
      AHMNGHVHVTHMNVEVFVTHIZVGVFVEVNWDVGUOVQABUPUQURUSUTVAVHVKVHVKWCVBTVCVD $.
  $}

  $( The Legendre symbol at any prime (even at 2) is ` 0 ` iff the prime does
     not divide the first argument.  See definition in [ApostolNT] p. 179.
     (Contributed by AV, 20-Jul-2021.) $)
  lgsprme0 $p |- ( ( A e. ZZ /\ P e. Prime )
                -> ( ( A /L P ) = 0 <-> ( A mod P ) = 0 ) ) $=
    ( cz wcel cprime wa cmo co cc0 wceq clgs wne cgcd c1 cdvds wbr wn wb ancoms
    prmz lgsne0 sylan2 coprm anim1i gcdcom syl eqeq1d bitr2d cn dvdsval3 notbid
    prmnn sylan 3bitrd necon4abid ) ACDZBEDZFZABGHIJZABKHZIURUTILZABMHZNJZBAOPZ
    QZUSQUQUPBCDZVAVCRBTZABUAUBURVEBAMHZNJZVCUQUPVEVIRBAUCSURVHVBNURVFUPFZVHVBJ
    UQUPVJUQVFUPVGUDSBAUEUFUGUHURVDUSUQUPVDUSRZUQBUIDUPVKBULBAUJUMSUKUNUO $.

  $( The Legendre symbol at ` 1 ` .  See example 1 in [ApostolNT] p. 180.
     (Contributed by Mario Carneiro, 28-Apr-2016.) $)
  1lgs $p |- ( N e. ZZ -> ( 1 /L N ) = 1 ) $=
    ( cz wcel c1 clgs co c2 cexp sq1 oveq1i cgcd wceq 1gcd cc0 wne wa 1z pm3.2i
    ax-1ne0 lgssq mp3an1 mpdan syl5eqr ) ABCZDAEFDGHFZAEFZDUEDAEIJUDDAKFDLZUFDL
    ZAMDBCZDNOZPUDUGUHUIUJQSRDATUAUBUC $.

  $( The Legendre symbol at ` 1 ` .  See definition in [ApostolNT] p. 188.
     (Contributed by Mario Carneiro, 28-Apr-2016.) $)
  lgs1 $p |- ( A e. ZZ -> ( A /L 1 ) = 1 ) $=
    ( cz wcel c1 clgs co c2 cexp sq1 oveq2i cgcd wceq gcd1 cn 1nn lgssq2 mp3an2
    mpdan syl5eqr ) ABCZADEFADGHFZEFZDUADAEIJTADKFDLZUBDLZAMTDNCUCUDOADPQRS $.

  $( The Legendre (Jacobi) symbol is preserved under reduction ` mod n ` when
     ` n ` is odd.  Theorem 9.9(c) in [ApostolNT] p. 188.  (Contributed by AV,
     20-Jul-2021.) $)
  lgsmodeq $p |- ( ( A e. ZZ /\ B e. ZZ /\ ( N e. NN /\ -. 2 || N ) )
               -> ( ( A mod N ) = ( B mod N ) -> ( A /L N ) = ( B /L N ) ) ) $=
    ( cz wcel cn c2 cdvds wbr wn wa w3a cmo wceq clgs 3anass biimpri lgsmod syl
    co 3adant2 oveq1 sylan9req 3adant1 adantr eqtrd ex ) ADEZBDEZCFEZGCHIJZKZLZ
    ACMTZBCMTZNZACOTZBCOTZNUMUPKUQUOCOTZURUMUPUQUNCOTZUSUMUHUJUKLZUTUQNUHULVAUI
    VAUHULKUHUJUKPQUAACRSUNUOCOUBUCUMUSURNZUPUMUIUJUKLZVBUIULVCUHVCUIULKUIUJUKP
    QUDBCRSUEUFUG $.

  $( The Legendre (Jacobi) symbol is preserved under multiplication with a
     square of an integer coprime to the second argument.  Theorem 9.9(d) in
     [ApostolNT] p. 188.  (Contributed by AV, 20-Jul-2021.) $)
  lgsmulsqcoprm $p |- ( ( ( A e. ZZ /\ A =/= 0 ) /\ ( B e. ZZ /\ B =/= 0 )
                          /\ ( N e. ZZ /\ ( A gcd N ) = 1 ) )
                        -> ( ( ( A ^ 2 ) x. B ) /L N ) = ( B /L N ) ) $=
    ( cz wcel cc0 wne wa cgcd co c1 wceq w3a cexp cmul clgs simpl syl anim12i
    c2 zsqcl adantr 3anim123i cc zcn sqne0 biimpar simpr 3adant3 lgsdir syl2anc
    wb 3anass biimpri 3adant2 lgssq oveq1d 3adant1 lgscl zcnd mulid2d 3eqtrd )
    ADEZAFGZHZBDEZBFGZHZCDEZACIJKLZHZMZATNJZBOJCPJZVMCPJZBCPJZOJZKVPOJVPVLVMDEZ
    VFVIMVMFGZVGHZVNVQLVEVRVHVFVKVIVCVRVDAUAUBVFVGQZVIVJQZUCVEVHVTVKVEVSVHVGVCV
    SVDVCAUDEVSVDULAUEAUFRUGVFVGUHSUIVMBCUJUKVLVOKVPOVLVEVIVJMZVOKLVEVKWCVHWCVE
    VKHVEVIVJUMUNUOACUPRUQVLVPVLVPVLVFVIHZVPDEVHVKWDVEVHVFVKVIWAWBSURBCUSRUTVAV
    B $.

  ${
    $d x A $.  $d x B $.  $d x M $.  $d x N $.
    $( Variation on ~ lgsdir valid for all ` A , B ` but only for positive
       ` N ` .  (The exact location of the failure of this law is for
       ` A = 0 ` , ` B < 0 ` , ` N = -u 1 ` in which case ` ( 0 /L -u 1 ) = 1 `
       but ` ( B /L -u 1 ) = -u 1 ` .)  (Contributed by Mario Carneiro,
       28-Apr-2016.) $)
    lgsdirnn0 $p |- ( ( A e. ZZ /\ B e. ZZ /\ N e. NN0 ) ->
      ( ( A x. B ) /L N ) = ( ( A /L N ) x. ( B /L N ) ) ) $=
      ( vx cz wcel cmul co clgs wceq cc0 wa cc lgscl zcnd adantr sylancr oveq1d
      c1 0z cn0 w3a cv wral simp2 nn0z syl2anr mul01d simpr oveq2d 3eqtr4rd wne
      id cgcd lgsne0 gcdcom nn0gcdid0 eqtrd eqeq1d lgs1 adantl oveq2 syl5ibrcom
      wb sylbid imp ad2antrr mulid2d eqtr2d pm2.61dane ralrimiva 3ad2ant3 oveq1
      eqeq2d rspcv syl2anc mulcomd eqtr4d zcn 3ad2ant2 mul02d sylan9eqr 3eqtr4d
      sylc simp1 lgsdir syl3anl3 pm2.61da2ne ) AEFZBEFZCUAFZUBZABGHZCIHZACIHZBC
      IHZGHZJZAKBKWLAKJZLZKCIHZXAWPGHZWNWQWTXAWPXAGHZXBWLXAXCJZWSWLWJXADUCZCIHZ
      XAGHZJZDEUDZXDWIWJWKUEZWKWIXIWJWKXHDEWKXEEFZLZXHXAKXLXAKJZLZXFKGHKXGXAXNX
      FXLXFMFXMXLXFXKXKCEFZXFEFWKXKUMCUFZXECNUGOPUHXNXAKXFGXLXMUIZUJXQUKXLXAKUL
      ZLZXGSXAGHXAXSXFSXAGXLXRXFSJZXLXRKCUNHZSJZXTXLKEFZXOXRYBVDTWKXOXKXPPZKCUO
      QXLYBCSJZXTXLYACSXLYACKUNHZCXLYCXOYAYFJTYDKCUPQWKYFCJXKCUQPURUSXLXTYEXESI
      HZSJZXKYHWKXEUTVAYEXFYGSCSXEIVBUSVCVEVEVFRXSXAXSXAXSYCXOXAEFZTWKXOXKXRXPV
      GKCNZQOVHVIVJVKVLZXHXDDBEXEBJZXGXCXAYLXFWPXAGXEBCIVMRVNVOWDPWTXAWPWLXAMFW
      SWLXAWLYCXOYITWKWIXOWJXPVLZYJQOPWLWPMFWSWLWPWLWJXOWPEFXJYMBCNVPOPVQVRWTWM
      KCIWSWLWMKBGHKAKBGVMWLBWJWIBMFWKBVSVTWAWBRWTWOXAWPGWTAKCIWLWSUIRRWCWLBKJZ
      LZXAWOXAGHZWNWQWLXAYPJZYNWLWIXIYQWIWJWKWEZYKXHYQDAEXEAJZXGYPXAYSXFWOXAGXE
      ACIVMRVNVOWDPYOWMKCIYNWLWMAKGHKBKAGVBWLAWLAYROUHWBRYOWPXAWOGYOBKCIWLYNUIR
      UJWCWKWIWJXOAKULBKULLWRXPABCWFWGWH $.

    $( Variation on ~ lgsdi valid for all ` M , N ` but only for positive
       ` A ` .  (The exact location of the failure of this law is for
       ` A = -u 1 ` , ` M = 0 ` , and some ` N ` in which case
       ` ( -u 1 /L 0 ) = 1 ` but ` ( -u 1 /L N ) = -u 1 ` when ` -u 1 ` is not
       a quadratic residue mod ` N ` .)  (Contributed by Mario Carneiro,
       28-Apr-2016.) $)
    lgsdinn0 $p |- ( ( A e. NN0 /\ M e. ZZ /\ N e. ZZ ) ->
      ( A /L ( M x. N ) ) = ( ( A /L M ) x. ( A /L N ) ) ) $=
      ( vx wcel cz cmul co clgs wceq cc0 wa adantr oveq1d lgscl zcnd wne oveq2d
      c1 cc cn0 w3a cv wral simp3 c2 cexp sq1 eqeq2i wb cr cle wbr nn0re nn0ge0
      1re 0le1 sq11 mpanr12 syl2anc syl5bbr biimpa 1lgs ad2antlr eqtrd ad2antrr
      nn0z sylancl mulid2d eqtr2d sylan mul01d lgs0 ifnefalse sylan9eq 3eqtr4rd
      0z cif syl pm2.61dane ralrimiva 3ad2ant1 oveq2 eqeq2d sylc mulcomd eqtr4d
      rspcv oveq1 mul02d sylan9eqr simpr 3eqtr4d simp2 syl3anl1 pm2.61da2ne
      lgsdi ) AUAEZBFEZCFEZUBZABCGHZIHZABIHZACIHZGHZJZBKCKXABKJZLZAKIHZXJXEGHZX
      CXFXIXJXEXJGHZXKXAXJXLJZXHXAWTXJADUCZIHZXJGHZJZDFUDZXMWRWSWTUEZWRWSXRWTWR
      XQDFWRXNFEZLZXQAUFUGHZSYAYBSJZLZXPSXJGHXJYDXOSXJGYDXOSXNIHZSYDASXNIYAYCAS
      JZYCYBSUFUGHZJZYAYFYGSYBUHUIWRYHYFUJZXTWRAUKEZKAULUMZYIAUNAUOYJYKLSUKEKSU
      LUMYIUPUQASURUSUTMVAVBNXTYESJWRYCXNVCVDVENYDXJYDXJYDAFEZKFEZXJFEZWRYLXTYC
      AVGZVFVQAKOZVHPVIVJYAYBSQZLZXOKGHKXPXJYRXOYAXOTEYQYAXOWRYLXTXOFEYOAXNOVKP
      MVLYRXJKXOGYAYQXJYCSKVRZKYAYLXJYSJWRYLXTYOMAVMVSYBSSKVNVOZRYTVPVTWAWBZXQX
      MDCFXNCJZXPXLXJUUBXOXEXJGXNCAIWCNWDWHWEMXIXJXEXAXJTEXHXAXJXAYLYMYNWRWSYLW
      TYOWBZVQYPVHPMXAXETEXHXAXEXAYLWTXEFEUUCXSACOUTPMWFWGXIXBKAIXHXAXBKCGHKBKC
      GWIXACXACXSPWJWKRXIXDXJXEGXIBKAIXAXHWLRNWMXACKJZLZXJXDXJGHZXCXFXAXJUUFJZU
      UDXAWSXRUUGWRWSWTWNZUUAXQUUGDBFXNBJZXPUUFXJUUIXOXDXJGXNBAIWCNWDWHWEMUUEXB
      KAIUUDXAXBBKGHKCKBGWCXABXABUUHPVLWKRUUEXEXJXDGUUECKAIXAUUDWLRRWMWRYLWSWTB
      KQCKQLXGYOABCWQWOWP $.
  $}

  ${
    $d x A $.  $d x z G $.  $d y O $.  $d x y z P $.  $d x y z ph $.  $d y T $.
    $d x y L $.  $d x y Y $.
    lgsqr.y $e |- Y = ( Z/nZ ` P ) $.
    lgsqr.s $e |- S = ( Poly1 ` Y ) $.
    lgsqr.b $e |- B = ( Base ` S ) $.
    lgsqr.d $e |- D = ( deg1 ` Y ) $.
    lgsqr.o $e |- O = ( eval1 ` Y ) $.
    lgsqr.e $e |- .^ = ( .g ` ( mulGrp ` S ) ) $.
    lgsqr.x $e |- X = ( var1 ` Y ) $.
    lgsqr.m $e |- .- = ( -g ` S ) $.
    lgsqr.u $e |- .1. = ( 1r ` S ) $.
    lgsqr.t $e |- T = ( ( ( ( P - 1 ) / 2 ) .^ X ) .- .1. ) $.
    lgsqr.l $e |- L = ( ZRHom ` Y ) $.
    lgsqr.1 $e |- ( ph -> P e. ( Prime \ { 2 } ) ) $.
    ${
      lgsqrlem1.3 $e |- ( ph -> A e. ZZ ) $.
      lgsqrlem1.4 $e |- ( ph ->
        ( ( A ^ ( ( P - 1 ) / 2 ) ) mod P ) = ( 1 mod P ) ) $.
      $( Lemma for ~ lgsqr .  (Contributed by Mario Carneiro, 15-Jun-2015.) $)
      lgsqrlem1 $p |- ( ph -> ( ( O ` T ) ` ( L ` A ) ) = ( 0g ` Y ) ) $=
        ( cfv cur csg co c0g c1 cmin c2 cdiv fveq2i fveq1i wcel wceq eqid cidom
        cbs cfield cprime csn eldifad znfld syl fldidom cdomn isidom simplbi cz
        ccrg zring crh crg crngring zrhrhm zringbas rhmf ffvelrnd cmgp evl1vard
        wf cmg wa cdif cn oddprm nnnn0d evl1expd ccnfld cress cmhm cn0 zringmpg
        rhmmhm mgpbas mhmmulg syl3anc cexp csubmnd csubrg zsubrg subrgsubm mp1i
        submmulg cc zcnd cnfldexp syl2anc eqtr3d fveq2d cdvds wbr cmo wb zexpcl
        prmnn 1zzd moddvds mpbid zndvds mpbird zring1 rhm1 3eqtrd eqeq2d anbi2d
        cascl ringidcl evl1scad ply1scl1 eleq1d fveq1d eqeq1d anbi12d evl1subd
        simprd syl5eq cgrp ringgrp grpsubid eqtrd ) ABJUIZGLUIZUIZNUJUIZUUKNUKU
        IZULZNUMUIZAUUJUUHEUNUOULUPUQULZMIULZHKULZLUIZUIZUUMUUHUUIUURGUUQLUDURU
        SAUUQCUTUUSUUMVAANVDUIZUULFNCUUPKHLUUKUUKUUHSPUUTVBZQANVCUTZNVPUTZANVEU
        TZUVBAEVFUTZUVDAEVFUPVGZUFVHZENOVIVJNVKVJUVBUVCNVLUTNVMVNVJZAVOUUTBJAJV
        QNVRULUTZVOUUTJWGANVSUTZUVIAUVCUVJUVHNVTVJZNJUEWAVJZVOUUTVQNJWBUVAWCVJU
        GWDZAUUPCUTZUUHUUPLUIUIZUUOUUHNWEUIZWHUIZULZVAZWIUVNUVOUUKVAZWIAUUTFNIC
        UVQMUUOLUUHUUHSPUVAQUVHUVMAUUTFNCLMUUHSUAUVAPQUVHUVMWFTUVQVBZAUUOAEVFUV
        FWJUTUUOWKUTUFEWLVJWMZWNAUVSUVTUVNAUVRUUKUVOAUUOBWOWEUIZVOWPULZWHUIZULZ
        JUIZUVRUUKAJUWDUVPWQULUTZUUOWRUTZBVOUTZUWGUVRVAAUVIUWHUVLVQNJUWDUVPWSUV
        PVBWTVJUWBUGVOUWEUVQJUWDUVPUUOBVOVQUWDWSWBXAUWEVBZUWAXBXCAUWGBUUOXDULZJ
        UIZUNJUIZUUKAUWFUWLJAUUOBUWCWHUIZULZUWFUWLAVOUWCXEUIUTZUWIUWJUWPUWFVAVO
        WOXFUIUTUWQAXGVOWOUWCUWCVBXHXIUWBUGVOUWOUWEUWCUWDUUOBUWOVBUWDVBUWKXJXCA
        BXKUTUWIUWPUWLVAABUGXLUWBBUUOXMXNXOXPAUWMUWNVAZEUWLUNUOULXQXRZAUWLEXSUL
        UNEXSULVAZUWSUHAEWKUTZUWLVOUTZUNVOUTZUWTUWSXTAUVEUXAUVGEYBVJZAUWJUWIUXB
        UGUWBBUUOYAXNZAYCZUWLUNEYDXCYEAEWRUTUXBUXCUWRUWSXTAEUXDWMUXEUXFUWLUNJEN
        OUEYFXCYGAUVIUWNUUKVAUVLVQNUNJUUKYHUUKVBZYIVJYJXOYKYLYEAUUKFYMUIZUIZCUT
        ZUUHUXILUIZUIZUUKVAZWIHCUTZUUHHLUIZUIZUUKVAZWIAUXHUUTFNCLUUKUUHSPUVAUXH
        VBZQUVHAUVJUUKUUTUTZUVKUUTNUUKUVAUXGYNVJZUVMYOAUXJUXNUXMUXQAUXIHCAUVJUX
        IHVAUVKUXHFNUUKHPUXRUXGUCYPVJZYQAUXLUXPUUKAUUHUXKUXOAUXIHLUYAXPYRYSYTYE
        UBUULVBZUUAUUBUUCANUUDUTZUXSUUMUUNVAAUVJUYCUVKNUUEVJUXTUUTNUULUUKUUNUVA
        UUNVBUYBUUFXNUUG $.
    $}

    lgsqr.g $e |- G = ( y e. ( 1 ... ( ( P - 1 ) / 2 ) ) |->
      ( L ` ( y ^ 2 ) ) ) $.
    $( Lemma for ~ lgsqr .  (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    lgsqrlem2 $p |- ( ph -> G : ( 1 ... ( ( P - 1 ) / 2 ) )
         -1-1-> ( `' ( O ` T ) " { ( 0g ` Y ) } ) ) $=
      ( vx vz c1 cmin co c2 cdiv cfz cfv ccnv c0g csn cima wf cv wceq wral cexp
      wi wf1 wcel wa cbs cz zring crh crg cidom cfield cprime eldifad znfld syl
      ccrg fldidom cdomn isidom simplbi crngring zrhrhm zringbas adantr elfzelz
      eqid rhmf adantl zsqcl ffvelrnd cdif cmo cmul elfznn nncnd cn0 nnnn0d a1i
      cn cr nnred cc0 cgcd syl2anc cdvds wbr wn cle clt elfzle2 crp nnrpd ltm1d
      nnzd lelttrd ltnled mpbid dvdsle wb eqtrd syl3anc caddc oveq1 fveq2d fvex
      fvmpt ad2antrl ad2antll eqeq12d cc nn0ge0d modid syl22anc sylbid cphi wne
      oddprm 2nn0 prmnn peano2rem recnd 2cnd 2ne0 divcan2d phiprm eqtr4d oveq2d
      expmuld eqtr3d oveq1d gcdcom rehalfcld prmuz2 uz2m1nn rphalflt lttrd mtod
      cuz coprm eulerth lgsqrlem1 wfn cpws cvv fvexd evl1rhm cgrp ply1ring cmgp
      ringgrp cmnd ringmgp mgpbas mulgnn0cl ringidcl grpsubcl syl5eqel pwselbas
      vr1cl fniniseg mpbir2and fmptd zndvds subsq breq2d 3bitrd zaddcld zsubcld
      wo euclemma nnaddcld le2addd 2halvesd breqtrd pm2.21d syld moddvds bitr3d
      ffn biimpd jaod ralrimivva dff13 sylanbrc ) AUKEUKULUMZUNUOUMZUPUMZGMUQZU
      ROUSUQZUTVAZJVBUIVCZJUQZUJVCZJUQZVDZUXQUXSVDZVGZUJUXMVEUIUXMVEUXMUXPJVHAB
      UXMBVCZUNVFUMZKUQZUXPJAUYDUXMVIZVJZUYFUXPVIZUYFOVKUQZVIZUYFUXNUQUXOVDZUYH
      VLUYJUYEKAVLUYJKVBZUYGAKVMOVNUMVIZUYMAOVOVIZUYNAOWBVIZUYOAOVPVIZUYPAOVQVI
      ZUYQAEVRVIZUYRAEVRUNUTZUGVSZEOPVTWAZOWCWAUYQUYPOWDVIOWEWFWAZOWGWAZOKUFWHW
      AVLUYJVMOKWIUYJWLZWMWAWJUYHUYDVLVIZUYEVLVIUYGVUFAUYDUKUXLWKWNZUYDWOWAZWPU
      YHUYECDEFGHIKLMNOPQRSTUAUBUCUDUEUFAEVRUYTWQVIZUYGUGWJVUHUYHUYEUXLVFUMZEWR
      UMUYDEUUAUQZVFUMZEWRUMZUKEWRUMZUYHVUJVULEWRUYHUYDUNUXLWSUMZVFUMVUJVULUYHU
      YDUNUXLUYHUYDUYGUYDXEVIZAUYDUXLWTWNZXAAUXLXBVIZUYGAUXLAVUIUXLXEVIUGEUUCWA
      XCZWJUNXBVIUYHUUDXDUUNUYHVUOVUKUYDVFAVUOVUKVDUYGAVUOUXKVUKAUXKUNAUXKAEXFV
      IZUXKXFVIZAEAUYSEXEVIZVUAEUUEZWAZXGZEUUFZWAZUUGZAUUHUNXHUUBAUUIXDUUJAUYSV
      UKUXKVDVUAEUUKWAUULWJUUMUUOUUPUYHVVBVUFUYDEXIUMZUKVDVUMVUNVDUYHUYSVVBAUYS
      UYGVUAWJZVVCWAVUGUYHVVIEUYDXIUMZUKUYHVUFEVLVIZVVIVVKVDVUGAVVLUYGAEVVDXTWJ
      ZUYDEUUQXJUYHEUYDXKXLZXMZVVKUKVDZUYHVVNEUYDXNXLZUYHUYDEXOXLVVQXMUYHUYDUXL
      EUYHUYDVUQXGZAUXLXFVIZUYGAUXKVVGUURZWJAVUTUYGVVEWJZUYGUYDUXLXNXLAUYDUKUXL
      XPWNAUXLEXOXLZUYGAUXLUXKEVVTVVGVVEAUXKXQVIUXLUXKXOXLAUXKAEUNUVDUQVIZUXKXE
      VIAUYSVWCVUAEUUSWAEUUTWAXRUXKUVAWAAEVVEXSUVBZWJYAUYHUYDEVVRVWAYBYCUYHVVLV
      UPVVNVVQVGVVMVUQEUYDYDXJUVCUYHUYSVUFVVOVVPYEVVJVUGEUYDUVEXJYCYFUYDEUVFYGY
      FUVGUYHUXNUYJUVHZUYIUYKUYLVJYEAVWEUYGAUYJUYJUXNVBVWEAUYJOUYJOUYJUVIUMZVKU
      QZVQUXNVWFUVJVWFWLZVUEVWGWLZVUBAOVKUVKACVWGGMAMFVWFVNUMVIZCVWGMVBAUYPVWJV
      UCUYJFOVWFMTQVWHVUEUVLWACVWGFVWFMRVWIWMWAAGUXLNIUMZHLUMZCUEAFUVMVIZVWKCVI
      ZHCVIZVWLCVIAFVOVIZVWMAUYOVWPVUDFOQUVNWAZFUVPWAAFUVOUQZUVQVIZVURNCVIZVWNA
      VWPVWSVWQFVWRVWRWLZUVRWAVUSAUYOVWTVUDCFONUBQRUWEWACIVWRUXLNCFVWRVXARUVSUA
      UVTYGAVWPVWOVWQCFHRUDUWAWACFLVWKHRUCUWBYGUWCWPUWDUYJUYJUXNUXEWAWJUYJUXOUY
      FUXNUWFWAUWGUHUWHAUYCUIUJUXMUXMAUXQUXMVIZUXSUXMVIZVJZVJZUYAEUXQUXSYHUMZUX
      QUXSULUMZWSUMZXKXLZUYBVXEUYAUXQUNVFUMZKUQZUXSUNVFUMZKUQZVDZEVXJVXLULUMZXK
      XLZVXIVXEUXRVXKUXTVXMVXBUXRVXKVDAVXCBUXQUYFVXKUXMJUYDUXQVDUYEVXJKUYDUXQUN
      VFYIYJUHVXJKYKYLYMVXCUXTVXMVDAVXBBUXSUYFVXMUXMJUYDUXSVDUYEVXLKUYDUXSUNVFY
      IYJUHVXLKYKYLYNYOVXEEXBVIZVXJVLVIZVXLVLVIZVXNVXPYEAVXQVXDAEVVDXCWJVXEUXQV
      LVIZVXRVXBVXTAVXCUXQUKUXLWKYMZUXQWOWAVXEUXSVLVIZVXSVXCVYBAVXBUXSUKUXLWKYN
      ZUXSWOWAVXJVXLKEOPUFUWIYGVXEVXOVXHEXKVXEUXQYPVIUXSYPVIVXOVXHVDVXEUXQVXBUX
      QXEVIAVXCUXQUXLWTYMZXAVXEUXSVXCUXSXEVIAVXBUXSUXLWTYNZXAUXQUXSUWJXJUWKUWLV
      XEVXIEVXFXKXLZEVXGXKXLZUWOZUYBVXEUYSVXFVLVIVXGVLVIVXIVYHYEAUYSVXDVUAWJZVX
      EUXQUXSVYAVYCUWMVXEUXQUXSVYAVYCUWNEVXFVXGUWPYGVXEVYFUYBVYGVXEVYFEVXFXNXLZ
      UYBVXEVVLVXFXEVIVYFVYJVGVXEEVXEUYSVVBVYIVVCWAZXTVXEUXQUXSVYDVYEUWQZEVXFYD
      XJVXEVYJUYBVXEVXFEXOXLVYJXMVXEVXFUXKEVXEVXFVYLXGZVXEVUTVVAVXEEVYKXGZVVFWA
      VYNVXEVXFUXLUXLYHUMUXKXNVXEUXQUXSUXLUXLVXEUXQVYDXGZVXEUXSVYEXGZAVVSVXDVVT
      WJZVYQVXBUXQUXLXNXLAVXCUXQUKUXLXPYMZVXCUXSUXLXNXLAVXBUXSUKUXLXPYNZUWRVXEU
      XKAUXKYPVIVXDVVHWJUWSUWTVXEEVYNXSYAVXEVXFEVYMVYNYBYCUXAUXBVXEVYGUYBVXEUXQ
      EWRUMZUXSEWRUMZVDZVYGUYBVXEVVBVXTVYBWUBVYGYEVYKVYAVYCUXQUXSEUXCYGVXEVYTUX
      QWUAUXSVXEUXQXFVIEXQVIZXHUXQXNXLUXQEXOXLVYTUXQVDVYOVXEEVYKXRZVXEUXQVXEUXQ
      VYDXCYQVXEUXQUXLEVYOVYQVYNVYRAVWBVXDVWDWJZYAUXQEYRYSVXEUXSXFVIWUCXHUXSXNX
      LUXSEXOXLWUAUXSVDVYPWUDVXEUXSVXEUXSVYEXCYQVXEUXSUXLEVYPVYQVYNVYSWUEYAUXSE
      YRYSYOUXDUXFUXGYTYTUXHUIUJUXMUXPJUXIUXJ $.

    lgsqr.3 $e |- ( ph -> A e. ZZ ) $.
    lgsqr.4 $e |- ( ph -> ( A /L P ) = 1 ) $.
    $( Lemma for ~ lgsqr .  (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    lgsqrlem3 $p |- ( ph -> ( L ` A ) e. ( `' ( O ` T ) " { ( 0g ` Y ) } ) ) $=
      ( cfv ccnv c0g csn cima wcel cbs wceq cz zring crh co wf crg cidom cfield
      ccrg cprime c2 eldifad znfld fldidom cdomn isidom simplbi crngring zrhrhm
      syl zringbas eqid rhmf ffvelrnd clgs cmo c1 cmin cdiv cexp cdif lgsvalmod
      syl2anc oveq1d eqtr3d lgsqrlem1 wfn wa wb cpws cvv fvexd evl1rhm ply1ring
      cgrp ringgrp cmgp cmnd cn0 ringmgp oddprm nnnn0d mgpbas mulgnn0cl syl3anc
      cn vr1cl ringidcl grpsubcl syl5eqel pwselbas ffn fniniseg mpbir2and ) ACL
      ULZHNULZUMPUNULZUOUPUQZYDPURULZUQZYDYEULYFUSZAUTYHCLALVAPVBVCUQZUTYHLVDAP
      VEUQZYKAPVHUQZYLAPVFUQZYMAPVGUQZYNAFVIUQYOAFVIVJUOZUHVKFPQVLVSZPVMVSYNYMP
      VNUQPVOVPVSZPVQVSZPLUGVRVSUTYHVAPLVTYHWAZWBVSUJWCACDEFGHIJLMNOPQRSTUAUBUC
      UDUEUFUGUHUJACFWDVCZFWEVCZCFWFWGVCVJWHVCZWIVCFWEVCZWFFWEVCACUTUQFVIYPWJUQ
      ZUUBUUDUSUJUHCFWKWLAUUAWFFWEUKWMWNWOAYEYHWPZYGYIYJWQWRAYHYHYEVDUUFAYHPYHP
      YHWSVCZURULZVGYEUUGWTUUGWAZYTUUHWAZYQAPURXAADUUHHNANGUUGVBVCUQZDUUHNVDAYM
      UUKYRYHGPUUGNUARUUIYTXBVSDUUHGUUGNSUUJWBVSAHUUCOJVCZIMVCZDUFAGXDUQZUULDUQ
      ZIDUQZUUMDUQAGVEUQZUUNAYLUUQYSGPRXCVSZGXEVSAGXFULZXGUQZUUCXHUQODUQZUUOAUU
      QUUTUURGUUSUUSWAZXIVSAUUCAUUEUUCXOUQUHFXJVSXKAYLUVAYSDGPOUCRSXPVSDJUUSUUC
      ODGUUSUVBSXLUBXMXNAUUQUUPUURDGISUEXQVSDGMUULISUDXRXNXSWCXTYHYHYEYAVSYHYFY
      DYEYBVSYC $.

    $( Lemma for ~ lgsqr .  (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    lgsqrlem4 $p |- ( ph -> E. x e. ZZ P || ( ( x ^ 2 ) - A ) ) $=
      ( cfv ccnv cz wcel c2 cexp co cmin cdvds wbr cv wrex c1 cdiv cfz c0g cima
      csn wf1o wf wf1 lgsqrlem2 cen cfn wb cdom cnvex imaex f1dom syl chash cle
      fvex eqid cfield cidom cprime eldifad znfld fldidom cgrp crg cdomn isidom
      ccrg simplbi crngring ply1ring ringgrp cmgp cmnd ringmgp cn oddprm nnnn0d
      cn0 cdif vr1cl mgpbas mulgnn0cl syl3anc ringidcl grpsubcl syl5eqel fveq2i
      wne cc0 clt nngt0d cur cascl wceq ply1scl1 fveq2d domnnzr simplbiim nzrnz
      cbs cnzr deg1scl eqtr3d deg1pw syl2anc 3brtr4d cvv mpbid oveq1 cmpt eqtrd
      deg1sub syl5eq eqeltrd deg1nn0clb mpbird breqtrd hashfz1 breqtrrd hashbnd
      fta1g mp3an2i fzfid hashdom sbth f1finf1o f1of lgsqrlem3 ffvelrnd elfzelz
      f1ocnv 3syl eqtri fvmpt f1ocnvfv2 prmnn zsqcl zndvds oveq1d breq2d rspcev
      cbvmptv ) ADMUMZLUNZUMZUOUPZGUVOUQURUSZDUTUSZVAVBZGBVCZUQURUSZDUTUSZVAVBZ
      BUOVDAUVOVEGVEUTUSUQVFUSZVGUSZUPZUVPAIOUMZUNZQVHUMZVJZVIZUWEUVMUVNAUWEUWK
      LVKZUWKUWEUVNVKUWKUWEUVNVLAUWEUWKLVMZUWLACEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGU
      HUIUJVNZAUWEUWKVOVBZUWKVPUPZUWMUWLVQAUWEUWKVRVBZUWKUWEVRVBZUWOAUWMUWQUWNU
      WEUWKLUWHUWJUWGIOWEVSVTZWAWBAUWKWCUMZUWEWCUMZWDVBZUWRAUWTUWDUXAWDAUWTIFUM
      ZUWDWDAEFHQIOUWIHVHUMZSTUAUBUWIWFZUXDWFZAQWGUPZQWHUPZAGWIUPZUXGAGWIUQVJZU
      IWJZGQRWKWBQWLWBZAIUWDPKUSZJNUSZEUGAHWMUPZUXMEUPZJEUPZUXNEUPAHWNUPZUXOAQW
      NUPZUXRAQWQUPZUXSAUXHUXTUXLUXHUXTQWOUPZQWPZWRWBQWSWBZHQSWTWBZHXAWBAHXBUMZ
      XCUPZUWDXHUPZPEUPZUXPAUXRUYFUYDHUYEUYEWFZXDWBAUWDAGWIUXJXIUPUWDXEUPUIGXFW
      BZXGZAUXSUYHUYCEHQPUDSTXJWBEKUYEUWDPEHUYEUYITXKUCXLXMZAUXRUXQUYDEHJTUFXNW
      BZEHNUXMJTUEXOXMXPZAIUXDXRZUXCXHUPZAUXCUWDXHAUXCUXMFUMZUWDAUXCUXNFUMUYQIU
      XNFUGXQAEFQUXMJNHSUAUYCTUEUYLUYMAXSUWDJFUMZUYQXTAUWDUYJYAAQYBUMZHYCUMZUMZ
      FUMZUYRXSAVUAJFAUXSVUAJYDUYCUYTHQUYSJSUYTWFZUYSWFZUFYEWBYFAUXSUYSQYJUMZUP
      ZUYSUWIXRZVUBXSYDUYCAUXSVUFUYCVUEQUYSVUEWFZVUDXNWBAQYKUPZVUGAUXHVUIUXLUXH
      UXTUYAVUIUYBQYGYHWBZQUYSUWIVUDUXEYIWBUYTFHQUYSVUEUWIUASVUHVUCUXEYLXMYMAVU
      IUYGUYQUWDYDVUJUYKFHQKUWDUYEPUASUDUYIUCYNYOZYPUUBUUCVUKUUAZUYKUUDAUXSIEUP
      UYOUYPVQUYCUYNEFHQIUXDUASUXFTUUEYOUUFUUKVULUUGZAUYGUXAUWDYDUYKUWDUUHWBUUI
      AUWPUWEVPUPUXBUWRVQUWKYQUPAUYGUWTUWDWDVBUWPUWSUYKVUMUWKUWDYQUUJUULZAVEUWD
      UUMUWKUWEVPUUNYOYRUWEUWKUUOYOVUNUWEUWKLUUPYOYRZUWEUWKLUVAUWKUWEUVNUUQUVBA
      CDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUURZUUSZUVOVEUWDUUTWBZAUVQMUMZU
      VMYDZUVSAUVOLUMZVUSUVMAUWFVVAVUSYDVUQBUVOUWAMUMZVUSUWELUVTUVOYDZUWAUVQMUV
      TUVOUQURYSZYFLCUWECVCZUQURUSZMUMZYTBUWEVVBYTUJCBUWEVVGVVBVVEUVTYDVVFUWAMV
      VEUVTUQURYSYFUVLUVCUVQMWEUVDWBAUWLUVMUWKUPVVAUVMYDVUOVUPUWEUWKUVMLUVEYOYM
      AGXHUPUVQUOUPZDUOUPVUTUVSVQAGAUXIGXEUPUXKGUVFWBXGAUVPVVHVURUVOUVGWBUKUVQD
      MGQRUHUVHXMYRUWCUVSBUVOUOVVCUWBUVRGVAVVCUWAUVQDUTVVDUVIUVJUVKYO $.
  $}

  ${
    $d x y A $.  $d x y P $.
    $( Lemma for ~ lgsqr .  (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    lgsqrlem5 $p |- ( ( A e. ZZ /\ P e. ( Prime \ { 2 } ) /\
        ( A /L P ) = 1 ) -> E. x e. ZZ P || ( ( x ^ 2 ) - A ) ) $=
      ( vy cz wcel cprime c2 csn cdif clgs co c1 wceq w3a czn cfv cpl1 cbs eqid
      cdg1 cmin cdiv cv1 cmgp cmg cur csg cfz cv cexp czrh cmpt ce1 simp2 simp1
      simp3 lgsqrlem4 ) BEFZCGHIJFZBCKLMNZOADBCPQZRQZSQZVBUAQZCVCCMUBLHUCLZVBUD
      QZVCUEQUFQZLVCUGQZVCUHQZLZVIVHDMVFUILDUJHUKLVBULQZQUMZVLVJVBUNQZVGVBVBTVC
      TVDTVETVNTVHTVGTVJTVITVKTVLTUSUTVAUOVMTUSUTVAUPUSUTVAUQUR $.
  $}

  ${
    $d x A $.  $d x P $.
    $( The Legendre symbol for odd primes is ` 1 ` iff the number is not a
       multiple of the prime (in which case it is ` 0 ` , see ~ lgsne0 ) and
       the number is a quadratic residue ` mod P ` (it is ` -u 1 ` for
       nonresidues by the process of elimination from ~ lgsabs1 ).  Given our
       definition of the Legendre symbol, this theorem is equivalent to Euler's
       criterion.  (Contributed by Mario Carneiro, 15-Jun-2015.) $)
    lgsqr $p |- ( ( A e. ZZ /\ P e. ( Prime \ { 2 } ) ) -> ( ( A /L P ) = 1 <->
      ( -. P || A /\ E. x e. ZZ P || ( ( x ^ 2 ) - A ) ) ) ) $=
      ( cz wcel cprime c2 wa clgs co c1 wceq cdvds wbr wn cc0 wne syl syl2anc
      wb csn cdif cv cexp cmin wrex cgcd eldifi adantl prmz simpl gcdcom eqeq1d
      coprm lgsne0 3bitr4d necon4bbid 0ne1 neeq1 mpbiri syl6bi lgsqrlem5 3expia
      necon2bd jcad cabs cr simprl zred absresq oveq1d cn simplr ad3antlr zsqcl
      cfv simplll simprr dvdssub2 mtbird 2nn a1i prmdvdsexp syl3anc mtbid dvds0
      syl31anc breq2 syl5ibrcom necon3bd mpd nnabscl nnzd nnne0d dvdsabsb mpbid
      eqtrd lgssq syl211anc cmo prmnn moddvds mpbird eldifsni necomd uzid ax-mp
      cuz dvdsprm necon3bbid sylancr lgsmod 3eqtr3d 3eqtr3rd rexlimdvaa expimpd
      2z impbid ) BDEZCFGUAZUBEZHZBCIJZKLZCBMNZOZCAUCZGUDJZBUEJMNZADUFZHYBYDYFY
      JYBYEYCKYBYEYCPLZYCKQZYBYEYCPYBCBUGJZKLZBCUGJZKLZYFYCPQZYBYMYOKYBCDEZXSYM
      YOLYBCFEZYRYAYSXSCFXTUHZUIZCUJZRZXSYAUKZCBULSUMYBYSXSYFYNTUUAUUDCBUNSYBXS
      YRYQYPTUUDUUCBCUOSUPUQYKYLPKQURYCPKUSUTVAVDXSYAYDYJABCVBVCVEYBYFYJYDYBYFH
      ZYIYDADUUEYGDEZYIHZHZYGVFVPZGUDJZCIJZYHCIJZKYCUUHUUJYHCIUUHYGVGEUUJYHLUUH
      YGUUEUUFYIVHZVIYGVJRVKUUHUUIDEZUUIPQYRUUICUGJZKLUUKKLUUHUUIUUHUUFYGPQZUUI
      VLEUUMUUHCYGMNZOUUPUUHCYHMNZUUQUUHUURYEYBYFUUGVMUUHYRYHDEZXSYIUURYETUUHYS
      YRYAYSXSYFUUGYTVNZUUBRZUUHUUFUUSUUMYGVORZXSYAYFUUGVQZUUEUUFYIVRZCYHBVSWGV
      TUUHYSUUFGVLEZUURUUQTUUTUUMUVEUUHWAWBYGCGWCWDWEZUUHUUQYGPUUHUUQYGPLCPMNZU
      UHYRUVGUVACWFRYGPCMWHWIWJWKYGWLSZWMZUUHUUIUVHWNUVAUUHUUOCUUIUGJZKUUHUUNYR
      UUOUVJLUVIUVAUUICULSUUHCUUIMNZOZUVJKLZUUHUUQUVKUVFUUHYRUUFUUQUVKTUVAUUMCY
      GWOSWEUUHYSUUNUVLUVMTUUTUVICUUIUNSWPWQUUICWRWSUUHYHCWTJZCIJZBCWTJZCIJZUUL
      YCUUHUVNUVPCIUUHUVNUVPLZYIUVDUUHCVLEZUUSXSUVRYITUUHYSUVSUUTCXARZUVBUVCYHB
      CXBWDXCVKUUHUUSUVSGCMNZOZUVOUULLUVBUVTUUHUWBGCQZUUHCGYACGQXSYFUUGCFGXDVNX
      EUUHGGXHVPEZYSUWBUWCTGDEUWDXQGXFXGUUTUWDYSHUWAGCCGXIXJXKXCZYHCXLWDUUHXSUV
      SUWBUVQYCLUVCUVTUWEBCXLWDXMXNXOXPXR $.
  $}

  ${
    $d A x $.  $d P x $.
    $( If the Legendre symbol of an integer for an odd prime is ` 1 ` , then
       the number is a quadratic residue ` mod P ` .  (Contributed by AV,
       20-Aug-2021.) $)
    lgsqrmod $p |- ( ( A e. ZZ /\ P e. ( Prime \ { 2 } ) )
                    -> ( ( A /L P ) = 1
                         -> E. x e. ZZ ( ( x ^ 2 ) mod P ) = ( A mod P ) ) ) $=
      ( cz wcel cprime c2 csn cdif wa clgs co c1 wceq cdvds wbr wn cv wrex cmo
      cexp cmin lgsqr cn eldifi prmnn syl ad2antlr zsqcl adantl moddvds syl3anc
      wb simpll biimprd reximdva adantld sylbid ) BDEZCFGHZIEZJZBCKLMNCBOPQZCAR
      ZGUALZBUBLOPZADSZJVECTLBCTLNZADSZABCUCVBVGVIVCVBVFVHADVBVDDEZJZVHVFVKCUDE
      ZVEDEZUSVHVFUMVAVLUSVJVACFEVLCFUTUECUFUGUHVJVMVBVDUIUJUSVAVJUNVEBCUKULUOU
      PUQUR $.

    $( If the Legendre symbol of an integer ` A ` for an odd prime is ` 1 ` ,
       then the number is a quadratic residue ` mod P ` with a solution ` x `
       of the congruence ` ( x ^ 2 ) == A ` (mod ` P ` ) which is not divisible
       by the prime.  (Contributed by AV, 20-Aug-2021.) $)
    lgsqrmodndvds $p |- ( ( A e. ZZ /\ P e. ( Prime \ { 2 } ) )
                         -> ( ( A /L P ) = 1
                              -> E. x e. ZZ ( ( ( x ^ 2 ) mod P ) = ( A mod P )
                                              /\ -. P || x ) ) ) $=
      ( cz wcel cprime c2 wa co c1 wceq cdvds wbr wb syl ad3antlr wi cc0 sylbid
      ex csn cdif clgs cv cexp cmo wn wrex lgsqrmod imp cmin eldifi prmnn zsqcl
      cn adantl simplll moddvds syl3anc w3a nnzd dvdssub2 sylan bicom simpr 2nn
      3jca a1i prmdvdsexp biimparc bianir anim2i ancomd dvdsval3 lgsprme0 eqeq1
      sylan2 wne 0ne1 eqneqall mpi syl6bir com23 ad2antrl com12 syl5bi syld 2a1
      mpcom pm2.61i ancld reximdva mpd ) BDEZCFGUAZUBEZHZBCUCIZJKZAUDZGUEIZCUFI
      BCUFIZKZCWTLMZUGZHZADUHZWQWSHZXCADUHZXGWQWSXIABCUIUJXHXCXFADXHWTDEZHZXCXE
      XKXCCXABUKILMZXEXKCUOEZXADEZWNXCXLNWPXMWNWSXJWPCFEZXMCFWOULZCUMOZPXJXNXHW
      TUNUPZWNWPWSXJUQZXABCURUSXDXKXLXEQZQXDXKXTXDXKHZXLCXALMZCBLMZNZXEYAXLYDYA
      CDEZXNWNUTZXLYDXKYFXDXKYEXNWNWPYEWNWSXJWPCXQVAPXRXSVGUPCXABVBVCTYDYCYBNZY
      AXEYBYCVDYBYAYGXEQXKYBXDXKXOXJGUOEZYBXDNWPXOWNWSXJXPPXHXJVEYHXKVFVHWTCGVI
      USVJYBYGYAXEYBYGYAXEQZYBYGHYCYIYBYCVKYAYCXEXHYCXEQZXDXJWQWSYJWQYCWSXEWQYC
      XBRKZWSXEQZWQXMWNHYCYKNWQWNXMWPXMWNXQVLVMCBVNOWQYKWRRKZYLWPWNXOYMYKNXPBCV
      OVQYMWSRJKZXEWRRJVPYNXEQYMYNRJVRXEVSXERJVTWAVHSWBSWCUJWDWEOTWCWIWFWGTXEXK
      XLWHWJSWKWLWMT $.
  $}

  ${
    $d a b x y B $.  $d a b h m y L $.  $d a b h m x y N $.  $d a b x y X $.
    $d h m y A $.  $d a b x y Z $.
    lgsdchr.g $e |- G = ( DChr ` N ) $.
    lgsdchr.z $e |- Z = ( Z/nZ ` N ) $.
    lgsdchr.d $e |- D = ( Base ` G ) $.
    lgsdchr.b $e |- B = ( Base ` Z ) $.
    lgsdchr.l $e |- L = ( ZRHom ` Z ) $.
    lgsdchr.x $e |- X = ( y e. B |-> ( iota h E. m e. ZZ
      ( y = ( L ` m ) /\ h = ( m /L N ) ) ) ) $.
    $( The Legendre symbol function ` X ( m ) = ( m /L N ) ` , where ` N ` is
       an odd positive number, is a Dirichlet character modulo ` N ` .
       (Contributed by Mario Carneiro, 28-Apr-2016.) $)
    lgsdchrval $p |- ( ( ( N e. NN /\ -. 2 || N ) /\ A e. ZZ ) ->
      ( X ` ( L ` A ) ) = ( A /L N ) ) $=
      ( wa cz wceq cn wcel c2 cdvds wbr wn cfv cv clgs co wrex cio cn0 wf nnnn0
      wfo adantr znzrhfo fof 3syl ffvelrnda eqeq1 anbi1d rexbidv iotaex fvmpt3i
      iotabidv syl cvv ovex wb wi cmo cmin simprr simplll simplr simprl syl3anc
      zndvds mpbid moddvds mpbird oveq1d simpllr lgsmod 3eqtr3d biimprd anassrs
      eqeq2d rexlimdva fveq2 eqcomd biantrurd oveq1 bitr3d rspcev adantl impbid
      expimpd ex iota5 mpan2 eqtrd ) IUAUBZUCIUDUEUFZRZBSUBZRZBHUGZJUGZXJFUHZHU
      GZTZEUHZXLIUIUJZTZRZFSUKZEULZBIUIUJZXIXJCUBXKXTTXGSCBHXGIUMUBZSCHUPSCHUNX
      EYBXFIUOZUQCHIKMOPURSCHUSUTVAAXJAUHZXMTZXQRZFSUKZEULXTCJYDXJTZYGXSEYHYFXR
      FSYHYEXNXQYDXJXMVBVCVDVGQYGEVEVFVHXIYAVIUBZXTYATBIUIVJXIXSEYAVIXIXSXOYATZ
      VKYIXIXSYJXIXRYJFSXIXLSUBZRXNXQYJXIYKXNXQYJVLXIYKXNRZRZYJXQYMYAXPXOYMBIVM
      UJZIUIUJZXLIVMUJZIUIUJZYAXPYMYNYPIUIYMYNYPTZIBXLVNUJUDUEZYMXNYSXIYKXNVOYM
      YBXHYKXNYSVKYMXEYBXEXFXHYLVPZYCVHXGXHYLVQZXIYKXNVRZBXLHIKMPVTVSWAYMXEXHYK
      YRYSVKYTUUAUUBBXLIWBVSWCWDYMXHXEXFYOYATUUAYTXEXFXHYLWEZBIWFVSYMYKXEXFYQXP
      TUUBYTUUCXLIWFVSWGWJWHWIWTWKXHYJXSVLXGXHYJXSXRYJFBSXLBTZXQXRYJUUDXNXQUUDX
      MXJXLBHWLWMWNUUDXPYAXOXLBIUIWOWJWPWQXAWRWSUQXBXCXD $.

    $( The Legendre symbol function ` X ( m ) = ( m /L N ) ` , where ` N ` is
       an odd positive number, is a real Dirichlet character modulo ` N ` .
       (Contributed by Mario Carneiro, 28-Apr-2016.) $)
    lgsdchr $p |- ( ( N e. NN /\ -. 2 || N ) -> ( X e. D /\ X : B --> RR ) ) $=
      ( wcel cfv wceq cz vx va vb cn c2 cdvds wbr wn wa cr wf cc cmulr cmul cui
      cv co wral cur c1 cc0 wne wi w3a wss clgs wrex cio cvv iotaex a1i wfo cn0
      nnnn0 adantr znzrhfo syl foelrn sylan lgsdchrval simpr nnz ad2antrr lgscl
      cmpt syl2anc zred eqeltrd fveq2 eleq1d syl5ibrcom rexlimdva syldan fmpt2d
      imp ax-resscn sylancl eqid unitss anim12dan reeanv adantrr simprr syl3anc
      fss lgsdirnn0 zring ccrg zncrng crngring zrhrhm zringbas zringmulr rhmmul
      crh fveq2d zmulcl sylan2 eqtr3d adantrl oveq12d 3eqtr4d oveqan12d eqeq12d
      oveq12 rexlimdvva syl5bir ralrimivva ssralv ralimdv syld mpsyl mpan2 zrh1
      crg 1z 1lgs 3eqtr3d wb neeq1d cgcd lgsne0 biimpd znunit 3imtr4d ralrimiva
      eleq1 imbi12d 3jca simpl dchrelbas3 mpbir2and jca ) HUDQZUEHUFUGUHZUIZICQ
      ZBUJIUKZUUPUUQBULIUKZUAUPZAUPZJUMRZUQZIRZUUTIRZUVAIRZUNUQZSZAJUORZURZUAUV
      IURZJUSRZIRZUTSZUVEVAVBZUUTUVIQZVCZUABURZVDUUPUURUJULVEUUSUUPAUABUVAEUPZG
      RSDUPUVSHVFUQSUIETVGZDVHZUJIVIUWAVIQUUPUVABQZUIUVTDVJVKIABUWAWESUUPPVKUUP
      UUTBQZUUTUBUPZGRZSZUBTVGZUVEUJQZUUPTBGVLZUWCUWGUUPHVMQZUWIUUNUWJUUOHVNVOZ
      BGHJLNOVPVQZUBTBUUTGVRVSZUUPUWGUWHUUPUWFUWHUBTUUPUWDTQZUIZUWHUWFUWEIRZUJQ
      UWOUWPUWDHVFUQZUJAUWDBCDEFGHIJKLMNOPVTZUWOUWQUWOUWNHTQZUWQTQUUPUWNWAZUUNU
      WSUUOUWNHWBZWCZUWDHWDWFWGWHUWFUVEUWPUJUUTUWEIWIZWJWKWLWOWMWNZWPBUJULIXEWQ
      UUPUVKUVNUVRUVIBVEZUUPUVHABURZUABURZUVKBJUVINUVIWRZWSUUPUVHUAABBUUPUWCUWB
      UIUWGUVAUCUPZGRZSZUCTVGZUIZUVHUUPUWCUWGUWBUXLUWMUUPUWIUWBUXLUWLUCTBUVAGVR
      VSWTUUPUXMUVHUXMUWFUXKUIZUCTVGUBTVGUUPUVHUWFUXKUBUCTTXAUUPUXNUVHUBUCTTUUP
      UWNUXITQZUIZUIZUVHUXNUWEUXJUVBUQZIRZUWPUXJIRZUNUQZSUXQUWDUXIUNUQZHVFUQZUW
      QUXIHVFUQZUNUQZUXSUYAUXQUWNUXOUWJUYCUYESUUPUWNUWNUXOUWTXBZUUPUWNUXOXCZUUP
      UWJUXPUWKVOUWDUXIHXFXDUXQUYBGRZIRZUXSUYCUXQUYHUXRIUXQGXGJXOUQQZUWNUXOUYHU
      XRSUXQJYOQZUYJUUPUYKUXPUUPJXHQZUYKUUPUWJUYLUWKHJLXIVQJXJVQZVOJGOXKVQUYFUY
      GUWDUXIXGJUNUVBGTXLXMUVBWRXNXDXPUXPUUPUYBTQUYIUYCSUWDUXIXQAUYBBCDEFGHIJKL
      MNOPVTXRXSUXQUWPUWQUXTUYDUNUUPUWNUWPUWQSUXOUWRXBUUPUXOUXTUYDSUWNAUXIBCDEF
      GHIJKLMNOPVTXTYAYBUXNUVDUXSUVGUYAUXNUVCUXRIUUTUWEUVAUXJUVBYEXPUWFUXKUVEUW
      PUVFUXTUNUXCUVAUXJIWIYCYDWKYFYGWOWMYHUXEUXGUVJUABURUVKUXEUXFUVJUABUVHAUVI
      BYIYJUVJUAUVIBYIYKYLUUPUTGRZIRZUTHVFUQZUVMUTUUPUTTQUYOUYPSYPAUTBCDEFGHIJK
      LMNOPVTYMUUPUYNUVLIUUPUYKUYNUVLSUYMJUVLGOUVLWRYNVQXPUUPUWSUYPUTSUUNUWSUUO
      UXAVOHYQVQYRUUPUVQUABUUPUWCUWGUVQUWMUUPUWGUVQUUPUWFUVQUBTUWOUVQUWFUWPVAVB
      ZUWEUVIQZVCUWOUWQVAVBZUWDHUUAUQUTSZUYQUYRUWOUYSUYTUWOUWNUWSUYSUYTYSUWTUXB
      UWDHUUBWFUUCUWOUWPUWQVAUWRYTUUPUWJUWNUYRUYTYSUWKUWDUVIGHJLUXHOUUDVSUUEUWF
      UVOUYQUVPUYRUWFUVEUWPVAUXCYTUUTUWEUVIUUGUUHWKWLWOWMUUFUUIUUPUAABCUVIFHIJK
      LNUXHUUNUUOUUJMUUKUULUXDUUM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Gauss' Lemma
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Gauss' Lemma is valid for any integer not dividing the given prime number.
  In the following, only the special case for 2 (not dividing any odd prime) is
  proven, see ~ gausslemma2d .  The general case is still to prove.

$)

  ${
    gausslemma2dlem0a.p $e |- ( ph -> P e. ( Prime \ { 2 } ) ) $.
    $( Auxiliary lemma 1 for ~ gausslemma2d .  (Contributed by AV,
       9-Jul-2021.) $)
    gausslemma2dlem0a $p |- ( ph -> P e. NN ) $=
      ( cprime c2 csn cdif wcel cn cdvds wbr wn wa nnoddn2prm simpl 3syl ) ABDE
      FGHBIHZEBJKLZMQCBNQROP $.

    gausslemma2dlem0b.h $e |- H = ( ( P - 1 ) / 2 ) $.
    $( Auxiliary lemma 2 for ~ gausslemma2d .  (Contributed by AV,
       9-Jul-2021.) $)
    gausslemma2dlem0b $p |- ( ph -> H e. NN ) $=
      ( c1 cmin co c2 cdiv cn cuz cfv wcel caddc cn0 wa cprime csn syl cdif wbr
      eldifi prmuz2 cdvds nnoddn2prm nnoddm1d2 biimpa nnnn0d jca nno syl5eqel
      wn ) ACBFGHIJHZKEABILMNZBFOHIJHZPNZQZUNKNABRISZUANZURDUTUOUQUTBRNUOBRUSUC
      BUDTUTBKNZIBUEUBUMZQZUQBUFVCUPVAVBUPKNBUGUHUITUJTBUKTUL $.

    $( Auxiliary lemma 3 for ~ gausslemma2d .  (Contributed by AV,
       13-Jul-2021.) $)
    gausslemma2dlem0c $p |- ( ph -> ( ( ! ` H ) gcd P ) = 1 ) $=
      ( cgcd co c1 wceq wbr cprime wcel wa clt c2 syl cr 2re a1i wb cfa cfv cn0
      cdvds wn csn cdif eldifi gausslemma2dlem0b nnnn0d cmin cdiv cn prmnn cmul
      jca nnre peano2rem remulcld ltm1d nn0ge0d cle 1le2 lemulge12d ltletrd cc0
      nnnn0 2pos pm3.2i ltdivmul mpbird 3syl syl5eqbr prmndvdsfaclt sylc faccld
      syl3anc cz nnzd nnz gcdcom syl2anc eqeq1d coprm bitr4d ) ACUAUBZBFGZHIZBW
      FUDJUEZABKLZCUCLZMCBNJWIAWJWKABKOUFZUGLZWJDBKWLUHZPZACABCDEUIUJZUPACBHUKG
      ZOULGZBNEAWMWRBNJZDWMWJBUMLZWSWNBUNZWTWSWQOBUOGZNJZWTWQBXBWTBQLZWQQLZBUQZ
      BURPZXFWTOBOQLZWTRSZXFUSWTBXFUTWTBOXFXIWTBBVGVAHOVBJWTVCSVDVEWTXEXDXHVFON
      JZMZWSXCTXGXFXKWTXHXJRVHVISWQBOVJVQVKVLPVMBCVNVOAWHBWFFGZHIZWIAWGXLHAWFVR
      LZBVRLZWGXLIAWFACWPVPVSZAWMXODWMWJWTXOWNXABVTVLPWFBWAWBWCAWJXNWIXMTWOXPBW
      FWDWBWEVK $.
  $}

  ${
    gausslemma2dlem0.p $e |- ( ph -> P e. ( Prime \ { 2 } ) ) $.
    gausslemma2dlem0.m $e |- M = ( |_ ` ( P / 4 ) ) $.
    $( Auxiliary lemma 4 for ~ gausslemma2d .  (Contributed by AV,
       9-Jul-2021.) $)
    gausslemma2dlem0d $p |- ( ph -> M e. NN0 ) $=
      ( c4 cdiv co cfl cfv cn0 cn wcel cr cc0 cle wbr wa 4re a1i nnre wne nnnn0
      gausslemma2dlem0a 4ne0 redivcld clt nn0ge0d 4pos pm3.2i syl21anc flge0nn0
      divge0 jca 3syl syl5eqel ) ACBFGHZIJZKEABLMZUQNMZOUQPQZRURKMABDUDUSUTVAUS
      BFBUAZFNMZUSSTFOUBUSUETUFUSBNMOBPQVCOFUGQZRZVAVBUSBBUCUHVEUSVCVDSUIUJTBFU
      MUKUNUQULUOUP $.

    $( Auxiliary lemma 5 for ~ gausslemma2d .  (Contributed by AV,
       9-Jul-2021.) $)
    gausslemma2dlem0e $p |- ( ph -> ( M x. 2 ) < ( P / 2 ) ) $=
      ( c2 cmul co c4 cdiv cfl cfv clt oveq1i cz wcel cdvds wbr wn wa cprime cn
      csn cdif nnoddn2prm nnz anim1i 3syl flodddiv4t2lthalf syl syl5eqbr ) ACFG
      HBIJHKLZFGHZBFJHZMCULFGENABOPZFBQRSZTZUMUNMRABUAFUCUDPBUBPZUPTUQDBUEURUOU
      PBUFUGUHBUIUJUK $.


    gausslemma2dlem0.h $e |- H = ( ( P - 1 ) / 2 ) $.
    $( Auxiliary lemma 6 for ~ gausslemma2d .  (Contributed by AV,
       9-Jul-2021.) $)
    gausslemma2dlem0f $p |- ( ph -> ( M + 1 ) <_ H ) $=
      ( c4 cdiv co cfl cfv c1 caddc c2 cle cprime wcel wceq a1d cmin cdif c3 c5
      csn cuz wo wbr wne wa eldifsn w3o prm23ge5 eqneqall orc olc 3jaoi syl imp
      wi sylbi fldiv4p1lem1div2 3syl oveq1i 3brtr4g ) ABHIJKLZMNJZBMUAJOIJZDMNJ
      CPABQOUEUBRZBUCSZBUDUFLRZUGZVGVHPUHEVIBQRZBOUIZUJVLBQOUKVMVNVLVMBOSZVJVKU
      LVNVLUTZBUMVOVPVJVKVLBOUNVJVLVNVJVKUOTVKVLVNVKVJUPTUQURUSVABVBVCDVFMNFVDG
      VE $.

    $( Auxiliary lemma 7 for ~ gausslemma2d .  (Contributed by AV,
       9-Jul-2021.) $)
    gausslemma2dlem0g $p |- ( ph -> M <_ H ) $=
      ( c4 cdiv co cfl cfv c1 cmin c2 cle cn wcel wbr gausslemma2dlem0a 3brtr4g
      fldiv4lem1div2 syl ) ABHIJKLZBMNJOIJZDCPABQRUDUEPSABETBUBUCFGUA $.

    gausslemma2dlem0.n $e |- N = ( H - M ) $.
    $( Auxiliary lemma 8 for ~ gausslemma2d .  (Contributed by AV,
       9-Jul-2021.) $)
    gausslemma2dlem0h $p |- ( ph -> N e. NN0 ) $=
      ( cmin co cn0 wcel cc0 cle wbr gausslemma2dlem0b nnzd gausslemma2dlem0d
      cz nn0zd zsubcld gausslemma2dlem0g nnred nn0red subge0d sylanbrc syl5eqel
      mpbird elnn0z ) AECDJKZLIAUKTMNUKOPZUKLMACDACABCFHQZRADABDFGSZUAUBAULDCOP
      ABCDFGHUCACDACUMUDADUNUEUFUIUKUJUGUH $.

    $( Auxiliary lemma 9 for ~ gausslemma2d .  (Contributed by AV,
       14-Jul-2021.) $)
    gausslemma2dlem0i $p |- ( ph
                           -> ( ( ( 2 /L P ) mod P ) = ( ( -u 1 ^ N ) mod P )
                                -> ( 2 /L P ) = ( -u 1 ^ N ) ) ) $=
      ( c2 co c1 cc0 wcel cmo wceq wi syl eqcom eqeq1d clgs cneg ctp cexp cz 2z
      cprime csn cdif id gausslemma2dlem0a lgscl1 sylancr w3o gausslemma2dlem0h
      nnzd ovex eltp cpr nn0zd m1expcl2 wo elpr biimpi 2a1d cr clt wbr wa prmnn
      eldifi nnred prmgt1 jca 1mod 3syl eqeq2d c3 cuz cfv oddprmge3 m1modge3gt1
      breq2 ltnri pm2.21i syl6bi com12 sylbid oveq1 eqeq2 imbi12d syl5ibr sylbi
      1re jaoi mpcom eqeq1 crp nnrpd 0mod wb adantr negmod0 syl6bb wne eqneqall
      ax-1ne0 mpi sylbird adantl ex syl5bb 3imtr4g 3jaoi ) JBUAKZLUBZMLUCNZAXOB
      OKZXPEUDKZBOKZPZXOXSPZQZAJUENBUENZXQUFABUGJUHZUINZYDFYFBYFBYFUJUKUPRJBULU
      MXQXOXPPZXOMPZXOLPZUNAYCQZXOXPMLJBUAUQURYGYJYHYIAYCYGXPBOKZXTPZXPXSPZQZXS
      XPLUSNZAYNAEUENYOAEABCDEFGHIUOUTEVARZYOXSXPPZXSLPZVBZAYNQZXSXPLXPEUDUQVCZ
      YQYTYRYQYMAYLYQYMXSXPSVDVEAYNYRYKLBOKZPZXPLPZQAUUCYKLPZUUDAUUBLYKAYFBVFNZ
      LBVGVHZVIZUUBLPFYFBUGNZUUHBUGYEVKUUIUUFUUGUUIBBVJVLBVMVNRBVOVPZVQAYFBVRVS
      VTNZUUEUUDQZFBWAUUKLYKVGVHZUULBWBUUEUUMUUDUUEUUMLLVGVHZUUDYKLLVGWCUUNUUDL
      WNWDWEWFWGRVPZWHYRYLUUCYMUUDYRXTUUBYKXSLBOWIZVQXSLXPWJWKWLWOWMWPYGYAYLYBY
      MYGXRYKXTXOXPBOWITXOXPXSWQWKWLAYCYHMBOKZXTPZMXSPZQAUURMXTPZUUSAUUQMXTABWR
      NZUUQMPABABFUKWSZBWTRTYOAUUTUUSQZYPYOYSAUVCQZUUAYQUVDYRYQAUVCYQAVIUUTMYKP
      ZUUSYQUUTUVEXAAYQXTYKMXSXPBOWIZVQXBAUVEUUSQYQAUVEUUBMPZUUSALVFNZUVAUVGUVE
      XAWNUVBUVHUVAVIUVGYKMPUVELBXCYKMSXDUMAUVGLMPZUUSAUUBLMUUJTZUVILMXEUUSXGUU
      SLMXFXHZWFXIXJWHXKYRAUVCYRAVIUUTMUUBPZUUSYRUUTUVLXAAYRXTUUBMUUPVQXBAUVLUU
      SQYRAUVLUVIUUSUVLUVGAUVIMUUBSUVJXLUVKWFXJWHXKWOWMWPWHYHYAUURYBUUSYHXRUUQX
      TXOMBOWITXOMXSWQWKWLAYCYIUUBXTPZLXSPZQAUVMLXTPZUVNAUUBLXTUUJTYOAUVOUVNQZY
      PYOYSAUVPQZUUAYQUVQYRAUVPYQLYKPZLXPPZQAUUEUUDUVRUVSUUOLYKSLXPSXMYQUVOUVRU
      VNUVSYQXTYKLUVFVQXSXPLWJWKWLYRUVNAUVOYRUVNXSLSVDVEWOWMWPWHYIYAUVMYBUVNYIX
      RUUBXTXOLBOWITXOLXSWQWKWLXNWMWP $.
  $}

  ${
    $d H x y $.  $d P x $.  $d R y $.  $d ph x y $.
    gausslemma2d.p $e |- ( ph -> P e. ( Prime \ { 2 } ) ) $.
    gausslemma2d.h $e |- H = ( ( P - 1 ) / 2 ) $.
    gausslemma2d.r $e |- R = ( x e. ( 1 ... H )
                               |-> if ( ( x x. 2 ) < ( P / 2 ) ,
                                        ( x x. 2 ) , ( P - ( x x. 2 ) ) ) ) $.
    $( Lemma for ~ gausslemma2dlem1 .  (Contributed by AV, 1-Jul-2021.) $)
    gausslemma2dlem1a $p |- ( ph -> ran R = ( 1 ... H ) ) $=
      ( c1 co wcel c2 clt wbr cmin wa wi cle a1i syl crn cfz cmul cdiv cif wceq
      vy cv wrex cvv wb vex elrnmpt ax-mp iftrue eqeq2d adantr cn w3a elfz1b id
      2nn nnmulcld 3ad2ant1 eleq1i biimpi 3ad2ant2 cdvds cprime cdif nnoddn2prm
      cz wn csn nnz anim1i 2z zmulcld anim12i df-3an sylibr ltoddhalfle biimp3a
      ex impcom 3jca 3exp sylbi eleq1 syl5ibrcom 3syl ad2antrl elfzelz ad2antll
      sylbid zsubcld cr zred cc0 nnre adantl pm3.2i syl3anc breq2i simpr breq1d
      1cnd com12 imp sylanbrc rehalfcld ad2antrr mpbid simpl nnehalf simpr2 crp
      cc com23 3impia syl5bi oveq1 oveq2d ifbieq12d zcnd 3ad2ant3 2cnd divcan1d
      2ne0 anim12ci a1d 3imp rspcedvd caddc 2cnne0 oveq1d 3eqtrd halfre breq2d
      resubcld oveq2i eleq2i bitri iffalse prmz peano2rem 2re lemuldiv syl6rbbr
      eldifi 2pos nnred lesub2d recn nncand biimpd 3adant2 elnnz1 simp2bi lenlt
      impancom syl2an halfleoddlt biimpa nncn subhalfhalf mpbird ltsub23 simplr
      ad3antrrr syl6ibr sylbird syl3anbrc pm2.61ian rexlimdva simp1 syl2anr 2rp
      nnrp 1le2 ledivge1le wne exbiri eqbrtrd iftrued eqtr2d divsubdir mpd3an23
      lesub2 halfcl halfcn subsubd prmnn nngt0 divgt0 syl21anc halfgt0 readdcld
      addgt0d 0red resubcl ancoms ltletr mpand elnnz omoe syl2an2r syl2anc 1red
      nnge1 lesub2dd lediv1 3imtr4g 3imp21 subcld zre halfge0 rehalfcl subge02d
      mpbii mpan2d lesub lenltd eqcomd recnd mulcomd mulsubfacd mulid2d 3bitr3d
      2m1e1 3imtr4d com3l com13 eqnbrtrd iffalsed 3adant1 nncan 3eqtrrd pm2.61i
      letr impbid syl5bb eqrdv ) AUGDUAZIEUBJZUGUHZVUDKZVUFBUHZLUCJZCLUDJZMNZVU
[encoded data, 6080 characters]
      YPVUPWVIWYSWVJVSUYPCVUFUYQTUYRYMWGUYSVUAVUBVUC $.

    $d H k l $.  $d R k l $.  $d ph k l $.
    $( Lemma 1 for ~ gausslemma2d .  (Contributed by AV, 5-Jul-2021.) $)
    gausslemma2dlem1 $p |- ( ph -> ( ! ` H )
                                   = prod_ k e. ( 1 ... H ) ( R ` k ) ) $=
      ( vl cfv c1 co cv cprod wcel wceq c2 cmul cmin gausslemma2dlem0b fprodfac
      cfa cfz cn0 nnnn0d syl fzfid cfn wfn crn wf1o fzfi cdiv clt wbr ovex ifex
      id cif fnmpti gausslemma2dlem1a rneqdmfinf1o mp3an12i wa eqidd cc elfzelz
      zcnd adantl fprodf1o eqtrd ) AFUCKZLFUDMZJNZJOZVNENZDKZEOAFUEPVMVPQAFACFG
      HUAUFFJUBUGAVNVOVNVRJEDVRVOVRQUSALFUHVNUIPDVNUJADUKVNQVNVNDULLFUMBVNBNZRS
      MZCRUNMUOUPZVTCVTTMZUTDWAVTWBVSRSUQCVTTUQURIVAABCDFGHIVBVNDVCVDAVQVNPVEVR
      VFVOVNPZVOVGPAWCVOVOLFVHVIVJVKVL $.

    $d M x $.  $d ph k $.  $d k x $.
    gausslemma2d.m $e |- M = ( |_ ` ( P / 4 ) ) $.
    $( Lemma 2 for ~ gausslemma2d .  (Contributed by AV, 4-Jul-2021.) $)
    gausslemma2dlem2 $p |- ( ph
                             -> A. k e. ( 1 ... M ) ( R ` k ) = ( k x. 2 ) ) $=
      ( c2 cmul co wceq wcel wa clt wbr cr cv cfv c1 cfz cdiv cmin cif cvv cmpt
      a1i oveq1 breq1d oveq2d ifbieq12d adantl cn cle w3a wi elfz1b cc0 wb nnre
      adantr 2re 2pos pm3.2i lemul1 syl3anc gausslemma2dlem0e gausslemma2dlem0a
      remulcld nnred rehalfcld lelttr syl2an3an mpan2d ex sylbid 3impia iftrued
      com23 sylbi impcom eqtrd cuz cz gausslemma2dlem0d nn0zd gausslemma2dlem0b
      wss gausslemma2dlem0g eluz2 syl3anbrc fzss2 sselda ovexd fvmptd ralrimiva
      nnzd syl ) AEUAZDUBXBLMNZOEUCGUDNZAXBXDPZQZBXBBUAZLMNZCLUENZRSZXHCXHUFNZU
      GZXCUCFUDNZDUHDBXMXLUIOXFJUJXFXGXBOZQZXLXCXIRSZXCCXCUFNZUGZXCXNXLXROXFXNX
      JXPXHXKXCXQXNXHXCXIRXGXBLMUKZULXSXNXHXCCUFXSUMUNUOXOXPXCXQXFXPXNXEAXPXEXB
      UPPZGUPPZXBGUQSZURAXPUSZGXBUTXTYAYBYCXTYAQZYBXCGLMNZUQSZYCYDXBTPZGTPZLTPZ
      VALRSZQZYBYFVBXTYGYAXBVCZVDYAYHXTGVCZUOYKYDYIYJVEVFVGUJXBGLVHVIYDAYFXPYDA
      YFXPUSYDAQYFYEXIRSZXPAYNYDACGHKVJUOYDXCTPZYETPZAXITPYFYNQXPUSXTYOYAXTXBLY
      LYIXTVEUJVLVDYAYPXTYAGLYMYIYAVEUJVLUOACACACHVKVMVNXCYEXIVOVPVQVRWBVSVTWCW
      DVDWAWEAXDXMXBAFGWFUBPZXDXMWKAGWGPFWGPGFUQSYQAGACGHKWHWIAFACFHIWJWTACFGHK
      IWLGFWMWNGUCFWOXAWPXFXBLMWQWRWS $.

    $( Lemma 3 for ~ gausslemma2d .  (Contributed by AV, 4-Jul-2021.) $)
    gausslemma2dlem3 $p |- ( ph -> A. k e. ( ( M + 1 ) ... H )
                                    ( R ` k ) = ( P - ( k x. 2 ) ) ) $=
      ( c2 co c1 wcel wa wbr a1i cle cr cv cfv cmul cmin wceq caddc cfz clt cif
      cdiv cmpt oveq1 breq1d oveq2d ifbieq12d adantl wn cn gausslemma2dlem0a cz
      cvv w3a elfz2 cfl oveq1i breq1i nnre 4re cc0 wne 4ne0 redivcld fllelt syl
      wi c4 flcld zred peano2re zre adantr ltleletr syl3anc expd adantld mpd wb
      imp rehalfcld 2re remulcld 2pos pm3.2i lediv1 cc nncn 2cnne0 2t2e4 oveq2i
      divdiv1 syl6eq zcn 2cnd 2ne0 divcan4d breqan12rd bitrd mpbird exp31 com23
      syl5bi 3ad2ant3 com12 impcom sylbi elfzelz lenlt syl2an mpbid sylan eqtrd
      iffalsed cuz wss cn0 gausslemma2dlem0d nn0p1nn nnuz syl6eleq fzss1 sselda
      ovexd fvmptd ralrimiva ) AEUAZDUBCYOLUCMZUDMZUEEGNUFMZFUGMZAYOYSOZPZBYOBU
      AZLUCMZCLUJMZUHQZUUCCUUCUDMZUIZYQNFUGMZDVADBUUHUUGUKUEUUAJRUUAUUBYOUEZPZU
      UGYPUUDUHQZYPYQUIZYQUUIUUGUULUEUUAUUIUUEUUKUUCUUFYPYQUUIUUCYPUUDUHUUBYOLU
      CULZUMUUMUUIUUCYPCUDUUMUNUOUPUUJUUKYPYQUUAUUKUQZUUIACUROZYTUUNACHUSUUOYTP
      UUDYPSQZUUNYTUUOUUPYTYRUTOZFUTOZYOUTOZVBZYRYOSQZYOFSQZPZPUUOUUPVOZYOYRFVC
      UVCUUTUVDUVAUUTUVDVOUVBUUTUVAUVDUUSUUQUVAUVDVOUURUVACVPUJMZVDUBZNUFMZYOSQ
      ZUUSUVDYRUVGYOSGUVFNUFKVEVFUUSUUOUVHUUPUUSUUOUVHUUPUUSUUOPZUVHPUUPUVEYOSQ
      ZUVIUVHUVJUVIUVFUVESQZUVEUVGUHQZPZUVHUVJVOZUVIUVETOZUVMUUOUVOUUSUUOCVPCVG
      ZVPTOUUOVHRVPVIVJUUOVKRVLZUPZUVEVMVNUVIUVLUVNUVKUVIUVLUVHUVJUVIUVOUVGTOZY
      OTOZUVLUVHPUVJVOUVRUUOUVSUUSUUOUVFTOUVSUUOUVFUUOUVEUVQVQVRUVFVSVNUPUUSUVT
      UUOYOVTZWAUVEUVGYOWBWCWDWEWFWHUVIUUPUVJWGUVHUVIUUPUUDLUJMZYPLUJMZSQZUVJUV
      IUUDTOZYPTOZLTOZVILUHQZPZUUPUWDWGUUOUWEUUSUUOCUVPWIZUPUUSUWFUUOUUSYOLUWAU
      WGUUSWJRWKWAUWIUVIUWGUWHWJWLWMRUUDYPLWNWCUUOUUSUWBUVEUWCYOSUUOUWBCLLUCMZU
      JMZUVEUUOCWOOLWOOLVIVJZPZUWNUWBUWLUECWPUWNUUOWQRZUWOCLLWTWCUWKVPCUJWRWSXA
      UUSYOLYOXBUUSXCUWMUUSXDRXEXFXGWAXHXIXJXKXLXMWAXNXOXNUUOUWEUWFUUPUUNWGYTUW
      JYTYOLYTYOYOYRFXPVRUWGYTWJRWKUUDYPXQXRXSXTWAYBYAAYSUUHYOAYRNYCUBZOZYSUUHY
      DAGYEOZUWQACGHKYFUWRYRURUWPGYGYHYIVNYRNFYJVNYKUUACYPUDYLYMYN $.

    $d H k $.  $d M k $.  $d P k $.
    $( Lemma 4 for ~ gausslemma2d .  (Contributed by AV, 16-Jun-2021.) $)
    gausslemma2dlem4 $p |- ( ph
               -> ( ! ` H ) = ( prod_ k e. ( 1 ... M ) ( R ` k ) x.
                                prod_ k e. ( ( M + 1 ) ... H ) ( R ` k ) ) ) $=
      ( c1 cfz co c2 wcel wceq c5 c4 wbr cfa cfv cv cprod cmul gausslemma2dlem1
      caddc cprime csn cdif wn wa wi eldif c3 cuz w3o prm23ge5 eleq1 notbid wne
      2ex snid 2a1i necon1bd a1dd sylbid cc0 cdiv cfl clt 3lt4 breq1 mpbiri cn0
      cn wb 3nn0 4nn divfl0 sylancl mpbid syl5eq c0 adantr fz10 syl6eq prodeq1d
      oveq2 prod0 oveq1 0p1e1 oveq1d oveq12d cc cmin cif cmpt a1i breq1d oveq2d
      fzfid ifbieq12d adantl simpr elfzelz zcnd 2cnd mulcld eldifi subcld ifcld
      prmz 3syl fvmptd eqeltrd adantll fprodcl mulid2d eqtr2d gausslemma2dlem0d
      ex syl a1d cin nn0red ltp1d fzdisj cun cle w3a eluzelre 4re 4ne0 redivcld
      cz cr flcld mp3an2i sylbi crp nnrp ax-mp eluz2 4lt5 ltleletr mpani 3impia
      5re zre divge1 1zzd flge syl2anc elnnz1 sylanbrc oddprm fldiv4lem1div2uz2
      prmuz2 impcom oveq2i eleq12i elfz1b bitri sylibr fzsplit fprodsplit 3jaoi
      3jca imp mpcom eqtrd ) AFUAUBLFMNZEUCZDUBZEUDZLGMNZUVOEUDZGLUGNZFMNZUVOEU
      DZUENZABCDEFHIJUFCUHOUIZUJPZAUVPUWBQZHUWDCUHPZCUWCPZUKZULAUWEUMZCUHUWCUNU
      WFUWHUWIUWFCOQZCUOQZCRUPUBPZUQUWHUWIUMZCURUWJUWMUWKUWLUWJUWHOUWCPZUKZUWIU
      WJUWGUWNCOUWCUSUTUWJUWOUWEAUWJUWNUVPUWBUWNUWJUVPUWBVAOVBVCVDVEVFVGUWKUWIU
      WHUWKGVHQZUWIUWKGCSVINZVJUBZVHKUWKCSVKTZUWRVHQZUWKUWSUOSVKTVLCUOSVKVMVNUW
      KCVOPZSVPPZUWSUWTVQUWKUXAUOVOPVRCUOVOUSVNVSCSVTWAWBWCUWPAUWEUWPAULZUWBLUV
      PUENUVPUXCUVRLUWAUVPUEUXCUVRWDUVOEUDLUXCUVQWDUVOEUXCUVQLVHMNZWDUWPUVQUXDQ
      AGVHLMWIWEWFWGWHUVOEWJWGUXCUVTUVMUVOEUXCUVSLFMUXCUVSVHLUGNZLUWPUVSUXEQAGV
      HLUGWKWEWLWGWMWHWNUXCUVPUXCUVMUVOEUXCLFXBAUVNUVMPZUVOWOPZUWPAUXFULZUVOUVN
      OUENZCOVINZVKTZUXICUXIWPNZWQZWOUXHBUVNBUCZOUENZUXJVKTZUXOCUXOWPNZWQZUXMUV
      MDWODBUVMUXRWRQUXHJWSUXNUVNQZUXRUXMQUXHUXSUXPUXKUXOUXQUXIUXLUXSUXOUXIUXJV
      KUXNUVNOUEWKZWTUXTUXSUXOUXICWPUXTXAXCXDAUXFXEUXHUXKUXIUXLWOUXFUXIWOPAUXFU
      VNOUXFUVNUVNLFXFXGUXFXHXIXDZUXHCUXIACWOPZUXFAUWDUWFUYBHCUHUWCXJZUWFCCXMXG
      XNWEUYAXKXLZXOUYDXPZXQXRXSXTYBYCYDUWLUWIUWHUWLAUWEUWLAULZUVQUVTUVOUVMEAUV
      QUVTYEWDQZUWLAGUVSVKTUYGAGAGACGHKYAYFYGLGUVSFYHYCXDUYFGUVMPZUVMUVQUVTYIQU
      YFUWRVPPZCLWPNOVINZVPPZUWRUYJYJTZYKZUYHAUWLUYMAUWDUWLUYMUMHUWDUWLUYMUWDUW
      LULZUYIUYKUYLUWLUYIUWDUWLUWRYPPLUWRYJTZUYIUWLUWQUWLCSRCYLZSYQPZUWLYMWSSVH
      VAUWLYNWSYOZYRUWLLUWQYJTZUYOSUUAPZUWLCYQPZSCYJTZUYSUXBUYTVSSUUBUUCUYPUWLR
      YPPZCYPPZRCYJTZYKVUBRCUUDVUCVUDVUEVUBVUCVUDULZSRVKTZVUEVUBUUEUYQVUFRYQPZV
      UAVUGVUEULVUBUMYMVUHVUFUUIWSVUDVUAVUCCUUJXDSRCUUFYSUUGUUHYTSCUUKYSUWLUWQY
      QPLYPPUYSUYOVQUYRUWLUULUWQLUUMUUNWBUWRUUOUUPXDUWDUYKUWLCUUQWEUYNCOUPUBPZU
      YLUWDVUIUWLUWDUWFVUIUYCCUUSYCWECUURYCUVIYBYCUUTUYHUWRLUYJMNZPUYMGUWRUVMVU
      JKFUYJLMIUVAUVBUYJUWRUVCUVDUVEGLFUVFYCUYFLFXBAUXFUXGUWLUYEXQUVGYBYDUVHYCU
      VJYTUVKUVL $.

    $( Lemma for ~ gausslemma2dlem5 .  (Contributed by AV, 8-Jul-2021.) $)
    gausslemma2dlem5a $p |- ( ph
        -> ( prod_ k e. ( ( M + 1 ) ... H ) ( R ` k ) mod P )
         = ( prod_ k e. ( ( M + 1 ) ... H ) ( -u 1 x. ( k x. 2 ) ) mod P ) ) $=
      ( co cprod cmo c2 wceq cprime wcel cz adantl caddc cfz cfv cmul cmin cneg
      c1 cv wral gausslemma2dlem3 prodeq2 oveq1d syl csn cdif eldifi fzfid prmz
      wa adantr elfzelz 2z a1i zmulcld zsubcld neg1z prmnn zcnd mulm1d crp zred
      cr nnrpd negmod syl2anr eqtr2d fprodmodd 3syl eqtrd ) AGUGUALZFUBLZEUHZDU
      CZEMZCNLZWACWBOUDLZUELZEMZCNLZWAUGUFZWFUDLZEMCNLZAWCWGPEWAUIZWEWIPABCDEFG
      HIJKUJWMWDWHCNWAWCWGEUKULUMACQOUNZUORCQRZWIWLPHCQWNUPWOWAWGWKECWOVTFUQWOW
      BWARZUSZCWFWOCSRWPCURUTWPWFSRWOWPWBOWBVTFVAOSRWPVBVCVDZTVEWPWKSRWOWPWJWFW
      JSRWPVFVCWRVDTCVGZWQWKCNLWFUFZCNLZWGCNLZWQWKWTCNWPWKWTPWOWPWFWPWFWRVHVITU
      LWPWFVLRCVJRXAXBPWOWPWFWRVKWOCWSVMWFCVNVOVPVQVRVS $.

    gausslemma2d.n $e |- N = ( H - M ) $.
    $( Lemma 5 for ~ gausslemma2d .  (Contributed by AV, 9-Jul-2021.) $)
    gausslemma2dlem5 $p |- ( ph
            -> ( prod_ k e. ( ( M + 1 ) ... H ) ( R ` k ) mod P )
               = ( ( ( -u 1 ^ N )
                   x. prod_ k e. ( ( M + 1 ) ... H ) ( k x. 2 ) ) mod P ) ) $=
      ( c1 co c2 cmul wcel a1i cz caddc cfz cv cfv cprod cneg gausslemma2dlem5a
      cmo cexp cfn fzfi cc wa neg1cn elfzelz zmulcld zcnd adantl fprodmul chash
      2z wceq pm3.2i fprodconst mp1i cmin cuz cle wbr c4 cdiv cfl cprime csn cn
      cdif cdvds wn nnoddn2prm nnre adantr 3syl 4re cc0 wne 4ne0 redivcld flcld
      cr syl5eqel peano2zd wb nnz oddm1d2 syl gausslemma2dlem0f eluz2 syl3anbrc
      biimpa hashfz 1cnd nppcan2d syl6eqr eqtrd oveq2d oveq1d ) AGNUAOZFUBOZEUC
      ZDUDEUECUHOXHNUFZXIPQOZQOEUEZCUHOXJHUIOZXHXKEUEZQOZCUHOABCDEFGIJKLUGAXLXO
      CUHAXLXHXJEUEZXNQOXOAXHXJXKEXHUJRZAXGFUKZSXJULRZAXIXHRZUMUNSXTXKULRAXTXKX
      TXIPXIXGFUOPTRXTVASUPUQURUSAXPXMXNQAXPXJXHUTUDZUIOZXMXQXSUMXPYBVBAXQXSXRU
      NVCXHXJEVDVEAYAHXJUIAYAFXGVFONUAOZHAFXGVGUDRZYAYCVBAXGTRFTRXGFVHVIYDAGAGC
      VJVKOZVLUDTLAYEACVJACVMPVNVPRZCVORZPCVQVIVRZUMZCWIRZICVSZYGYJYHCVTWAWBVJW
      IRAWCSVJWDWEAWFSWGWHWJZWKAFCNVFOPVKOZTJAYFYIYMTRZIYKYGYHYNYGCTRYHYNWLCWMC
      WNWOWSWBWJZACFGILJWPXGFWQWRXGFWTWOAYCFGVFOHAFGNAFYOUQAGYLUQAXAXBMXCXDXEXD
      XFXDXFXD $.

    $( Lemma 6 for ~ gausslemma2d .  (Contributed by AV, 16-Jun-2021.) $)
    gausslemma2dlem6 $p |- ( ph -> ( ( ! ` H ) mod P )
                                   = ( ( ( ( -u 1 ^ N ) x. ( 2 ^ H ) )
                                         x. ( ! ` H ) ) mod P ) ) $=
      ( vk cmo co c1 cmul c2 cz wcel cfa cfv cfz cv cprod cneg gausslemma2dlem4
      caddc cexp oveq1d cr wceq fzfid wa wral gausslemma2dlem2 adantr wi expcom
      crp rspa adantl elfzelz 2z a1i zmulcld eleq1 syl5ibrcom syld mpd fprodzcl
      cmin gausslemma2dlem3 gausslemma2dlem0a nnzd zsubcl syl2an zred cprime cn
      csn cdif cdvds wn nnoddn2prm nnrp 3syl modmulmodr eqcomd gausslemma2dlem5
      wbr syl3anc oveq2d neg1rr gausslemma2dlem0h reexpcld remulcld prodeq2d cc
      w3a 2cn fprodmul clt cin c0 gausslemma2dlem0d nn0red ltp1d fzdisj syl cuz
      zcnd cun cn0 1zzd nn0pzuz syl2anc cle gausslemma2dlem0b gausslemma2dlem0g
      nn0zd eluz2 fzsplit2 fprodsplit chash nnnn0 anim1i cdiv nn0oddm1d2 biimpa
      syl3anbrc syl5eqel fprodfac fzfi pm3.2i fprodconst mp1i oveq12d 3eqtrd
      cfn hashfz1 faccld nncnd 2nn0 nn0expcl nn0cnd sylancr mulcomd eqtrd recnd
      3eqtr3d mul12d mulassd 3eqtr4d ) AEUAUBZCNOPFUCOZMUDZDUBZMUEZFPUHOZEUCOZU
      URMUEZQOZCNOZUUSUVBCNOZQOZCNOZPUFZGUIOZREUIOZQOUUOQOZCNOZAUUOUVCCNABCDMEF
      HIJKUGUJAUUSSTZUVBUKTZCUTTZUVDUVGULAUUPUURMAPFUMAUUQUUPTZUNZUURUUQRQOZULZ
      MUUPUOZUURSTZAUVTUVPABCDMEFHIJKUPZUQUVQUVTUVSUWAUVPUVTUVSURAUVTUVPUVSUVSM
      UUPVAUSVBUVQUWAUVSUVRSTZUVPUWCAUVPUUQRUUQPFVCRSTZUVPVDVEVFVBUURUVRSVGVHVI
      VJVKZAUVBAUVAUURMAUUTEUMZAUUQUVATZUNZUURCUVRVLOZULZMUVAUOZUWAAUWKUWGABCDM
      EFHIJKVMUQUWHUWKUWJUWAUWGUWKUWJURAUWKUWGUWJUWJMUVAVAUSVBUWHUWAUWJUWISTZAC
      STUWCUWLUWGACACHVNVOUWGUUQRUUQUUTEVCZUWDUWGVDVEVFCUVRVPVQUURUWISVGVHVIVJV
      KVRACVSRWAWBTZCVTTZRCWCWKWDZUNZUVOHCWEZUWOUVOUWPCWFUQWGZUVMUVNUVOWTUVGUVD
      UUSUVBCWHWIWLAUVGUUSUVIUVAUVRMUEZQOZCNOZQOZCNOZUUSUXAQOZCNOZUVLAUVFUXCCNA
      UVEUXBUUSQABCDMEFGHIJKLWJWMUJAUVMUXAUKTUVOUXDUXFULUWEAUVIUWTAUVHGUVHUKTAW
      NVEACEFGHKILWOWPZAUWTAUVAUVRMUWFUWHUUQRUWGUUQSTAUWMVBUWDUWHVDVEVFVKZVRWQU
      WSUUSUXACWHWLAUXEUVKCNAUVIUUSUWTQOZQOUVIUVJUUOQOZQOUXEUVKAUXIUXJUVIQAUXIU
      UPUVRMUEZUWTQOZUXJAUUSUXKUWTQAUUPUURUVRMUWBWRUJAPEUCOZUVRMUEUXMUUQMUEZUXM
      RMUEZQOZUXLUXJAUXMUUQRMAPEUMZUUQUXMTZUUQWSTAUXRUUQUUQPEVCZXLVBRWSTZAUXRUN
      ZXAVEXBAUUPUVAUVRUXMMAFUUTXCWKUUPUVAXDXEULAFAFACFHKXFZXGXHPFUUTEXIXJAUUTP
      XKUBTZEFXKUBTZUXMUUPUVAXMULAFXNTPSTUYCUYBAXOFPXPXQAFSTESTFEXRWKUYDAFUYBYA
      AEACEHIXSVOACEFHKIXTFEYBYKFPEYCXQUXQUYAUVRUXRUWCAUXRUUQRUXSUWDUXRVDVEVFVB
      XLYDAUXPUUORUXMYEUBZUIOZQOUUOUVJQOUXJAUXNUUOUXOUYFQAUUOUXNAEXNTZUUOUXNULA
      UWNCXNTZUWPUNZUYGHUWNUWQUYIUWRUWOUYHUWPCYFYGXJUYIECPVLORYHOZXNIUYHUWPUYJX
      NTCYIYJYLWGZEMYMXJWIUXMYTTZUXTUNUXOUYFULAUYLUXTPEYNXAYOUXMRMYPYQYRAUYFUVJ
      UUOQAUYEERUIAUYGUYEEULUYKEUUAXJWMWMAUUOUVJAUUOAEUYKUUBUUCZARXNTZUYGUVJWST
      UUDUYKUYNUYGUNUVJREUUEUUFUUGZUUHYSUUKUUIWMAUUSUVIUWTAUUSUWEXLAUVIUXGUUJZA
      UWTUXHXLUULAUVIUVJUUOUYPUYOUYMUUMUUNUJYSYS $.

    $( Lemma 7 for ~ gausslemma2d .  (Contributed by AV, 13-Jul-2021.) $)
    gausslemma2dlem7 $p |- ( ph
                            -> ( ( ( -u 1 ^ N ) x. ( 2 ^ H ) ) mod P ) = 1 ) $=
      ( cmo co c1 c2 cmul wceq cz wcel cneg cexp gausslemma2dlem6 nnnn0d faccld
      cfa cfv gausslemma2dlem0b nncnd mulid2d eqcomd oveq1d eqeq1d cn cgcd 1zzd
      wb cn0 neg1z gausslemma2dlem0h zexpcl sylancr 2z zmulcld nnzd cprime cdif
      csn eldifi prmnn 3syl gausslemma2dlem0c cncongrcoprm syl32anc bitrd simpr
      wa cr clt wbr nnred prmgt1 jca syl 1mod adantr eqtr3d ex sylbid mpd ) AEU
      FUGZCMNZOUAZGUBNZPEUBNZQNZWKQNCMNZRZWPCMNZORZABCDEFGHIJKLUCAWROCMNZWSRZWT
      AWROWKQNZCMNZWQRZXBAWLXDWQAWKXCCMAXCWKAWKAWKAEAEACEHIUHUDZUEZUIUJUKULUMAO
      STWPSTWKSTCUNTZWKCUONORXEXBUQAUPAWNWOAWMSTGURTWNSTUSACEFGHKILUTWMGVAVBAPS
      TEURTWOSTVCXFPEVAVBVDAWKXGVEACVFPVHZVGTZCVFTZXHHCVFXIVIZCVJZVKACEHIVLOWPW
      KCVMVNVOAXBWTAXBVQXAWSOAXBVPAXAORZXBAXJCVRTZOCVSVTZVQZXNHXJXKXQXLXKXOXPXK
      CXMWACWBWCWDCWEVKWFWGWHWIWJ $.

    $( Gauss' Lemma (see also theorem 9.6 in [ApostolNT] p. 182) for integer
       ` 2 ` :  Let p be an odd prime.  Let S={2,4,6,...,(p-1)}.  Let n denote
       the number of elements of S whose least positive residue modulo p is
       greater than p/2.  Then ( 2 | p ) = (-1)^n.  (Contributed by AV,
       14-Jul-2021.) $)
    gausslemma2d $p |- ( ph -> ( 2 /L P ) = ( -u 1 ^ N ) ) $=
      ( c1 cexp co c2 cmul cmo wceq wcel cneg gausslemma2dlem7 cr clt wa cprime
      clgs wbr csn cdif eldifi prmnn nnred prmgt1 jca 3syl syl eqcomd eqeq2d cz
      1mod crp cn0 neg1z gausslemma2dlem0h zexpcl sylancr 2nn gausslemma2dlem0b
      a1i nnnn0d nnexpcld nnzd zmulcld zred 1red adantr gausslemma2dlem0a nnrpd
      cn simpr modmul1 syl3anc ex zcnd nncnd mul32d caddc nn0cnd 2timesd oveq2d
      neg1cn expaddd nn0zd m1expeven 3eqtr3d oveq1d mulid2d 3eqtrd eqeq12d cmin
      cc cdiv oveq2i oveq1i eqeq1i 2z lgsvalmod eqeq1d gausslemma2dlem0i sylbid
      syl5bi syld mpd ) AMUAZGNOZPENOZQOZCROZMSZPCUGOZXPSZABCDEFGHIJKLUBAXTXSMC
      ROZSZYBAMYCXSAYCMACUCTZMCUDUHZUEZYCMSACUFPUIZUJTZCUFTZYGHCUFYHUKYJYEYFYJC
      CULUMCUNUOUPCVAUQURUSAYDXRXPQOZCROZMXPQOZCROZSZYBAYDYOAYDUEXRUCTZMUCTZUEZ
      XPUTTZCVBTZUEZYDYOAYRYDAYPYQAXRAXPXQAXOUTTGVCTYSVDACEFGHKILVEZXOGVFVGZAXQ
      APEPVTTAVHVJAEACEHIVIVKVLZVMVNVOAVPUOVQAUUAYDAYSYTUUCACACHVRVSUOVQAYDWAXR
      MXPCWBWCWDAYOXQCROZXPCROZSZYBAYLUUEYNUUFAYKXQCRAYKXPXPQOZXQQOMXQQOXQAXPXQ
      XPAXPUUCWEZAXQUUDWFZUUIWGAUUHMXQQAXOGGWHOZNOXOPGQOZNOZUUHMAUUKUULXONAUULU
      UKAGAGUUBWIWJURWKAXOGGXOXBTAWLVJUUBUUBWMAGUTTUUMMSAGUUBWNGWOUQWPWQAXQUUJW
      RWSWQAYMXPCRAXPUUIWRWQWTUUGPCMXAOPXCOZNOZCROZUUFSZAYBUUEUUPUUFXQUUOCREUUN
      PNIXDXEXFAUUQYACROZUUFSYBAUUPUURUUFAUURUUPAPUTTYIUURUUPSXGHPCXHVGURXIACEF
      GHKILXJXKXLXKXMXKXN $.
  $}

  $(
  @( Gauss' Lemma (see ProofWiki "Gauss's Lemma (Number Theory)", 17-Jul-2021,
     ~ https://proofwiki.org/wiki/Gauss%27s_Lemma_(Number_Theory) ): Let p be
     an odd prime and a an integer which is not divisible by p.
     Let S={a,2a,3a,...,(p-1)a/2}.  Let n denote the number of elements of S
     whose least positive residue modulo p is greater than p/2.
     Then ( a | p )  = (-1)^n.  See also theorem 9.6 in [ApostolNT] p. 182.
     (Contributed by AV, 16-Jun-2021.) @)
  gausslemma @p |- ( ( ( P e. Prime /\ -. 2 || P )
                   /\ ( A e. ZZ /\ -. P || A )
                   /\ N = ( # ` { x e. ZZ | E. i e. ( 1 ... ( ( P - 1 ) / 2 ) )
                            ( x = ( i x. A ) /\ ( P / 2 ) < ( x mod P ) ) } ) )
                     -> ( A /L P ) = ( -u 1 ^ N ) ) @=
    ? @.
  $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Quadratic reciprocity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d k x G $.  $d k x L $.  $d k n u v w x y z P $.  $d k n u v w x y z ph $.
    $d n u v w y z M $.  $d u w x y z N $.  $d k u w x y z Q $.  $d k x Y $.
    $d k R $.  $d n u v x z S $.
    lgseisen.1 $e |- ( ph -> P e. ( Prime \ { 2 } ) ) $.
    lgseisen.2 $e |- ( ph -> Q e. ( Prime \ { 2 } ) ) $.
    lgseisen.3 $e |- ( ph -> P =/= Q ) $.
    ${
      lgseisen.4 $e |- R = ( ( Q x. ( 2 x. x ) ) mod P ) $.
      lgseisen.5 $e |- M = ( x e. ( 1 ... ( ( P - 1 ) / 2 ) ) |->
        ( ( ( ( -u 1 ^ R ) x. R ) mod P ) / 2 ) ) $.
      $( Lemma for ~ lgseisen .  If ` R ( u ) = ( Q x. u ) mod P ` and
         ` M ( u ) = ( -u 1 ^ R ( u ) ) x. R ( u ) ` , then for any even
         ` 1 <_ u <_ P - 1 ` , ` M ( u ) ` is also an even integer
         ` 1 <_ M ( u ) <_ P - 1 ` .  To simplify these statements, we divide
         all the even numbers by ` 2 ` , so that it becomes the statement that
         ` M ( x / 2 ) = ( -u 1 ^ R ( x / 2 ) ) x. R ( x / 2 ) / 2 ` is an
         integer between ` 1 ` and ` ( P - 1 ) / 2 ` .  (Contributed by Mario
         Carneiro, 17-Jun-2015.) $)
      lgseisenlem1 $p |- ( ph ->
        M : ( 1 ... ( ( P - 1 ) / 2 ) ) --> ( 1 ... ( ( P - 1 ) / 2 ) ) ) $=
        ( c1 co c2 cdiv cmul wcel wbr cz cc0 cmin cfz cneg cmo cv wa cle clt cn
        cexp caddc cc wne wceq neg1cn a1i neg1ne0 2z simpr expmulz syl22anc cn0
        cprime csn cdif adantr eldifad prmz elfzelz adantl zmulcl sylancr prmnn
        syl zmulcld zmodfz syl2anc syl5eqel elfznn0 nn0zd zcnd 2cnd 2ne0 oveq2d
        divcan2d neg1sqe1 oveq1i syl5eq 3eqtr3d oveq1d mulid2d eqtrd crp nn0red
        1exp cr nnrpd nn0ge0d modlt syl5eqbr modid eqeltrd nncnd renegcld recnd
        zred addcomd negsubd 3eqtr2d 1zzd modcyc syl3anc nnred resubcld subge0d
        ltled mpbird wn cdvds 2nn elfznn elfzle2 wb cuz cfv syl112anc mpbir2and
        3syl fzm1ndvds wi mtod dvdsval3 mtbid wo mpbid ax-1cn peano2zd peano2cn
        ord oveq2i nnmulcl prmuz2 uz2m1nn 2re 2pos lemuldiv2 peano2zm fznn cgcd
        prmrp coprmdvds mpan2d eqeq1i sylnibr nnnn0d nn0uz syl6eleq elfzp12 mpd
        1e0p1 syl6eleqr ltsubrpd dvdsval2 biimpar ndvdsp1 oexpneg negeqd mulm1d
        1lt2 mt2d pnpcan2d 3eqtr4d divsubdird subadd23d syl6req divdird 2div2e1
        syl6eq oddprm nnzd zsubcld zeo mpjaodan m1expcl zmodcld ax-1ne0 divneg2
        2m1e1 mp3an 1div1e1 negeqi eqtr3i exprecd syl5eqr expne0d recidd breq2d
        mulassd mtbird dvdsmultr2 elnn0 sylib mt3d nngt0d elnnz sylanbrc nnge1d
        divgt0d lediv1 elfz fmptd ) ABLCLUAMZNOMZUBMZLUCZEUJMZEPMZCUDMZNOMZUXNF
        ABUEZUXNQZUFZUXSUXNQZLUXSUGRZUXSUXMUGRZUYBUXSUYBUXSSQZTUXSUHRUXSUIQUYBE
        NOMZSQZUYFELUKMZNOMZSQZUYBUYHUFZUXSUYGSUYLUXRENOUYLUXRECUDMZEUYLUXQECUD
        UYLUXQLEPMZEUYLUXPLEPUYLUXONUYGPMZUJMZUXONUJMZUYGUJMZUXPLUYLUXOULQZUXOT
        UMZNSQZUYHUYPUYRUNUYSUYLUOUPUYTUYLUQUPVUAUYLURUPUYBUYHUSZUXONUYGUTVAUYL
        UYOEUXOUJUYLENUYBEULQZUYHUYBEUYBEUYBETUXLUBMZQZEVBQUYBEDNUXTPMZPMZCUDMZ
        VUDJUYBVUGSQZCUIQZVUHVUDQUYBDVUFUYBDVCQZDSQZUYBDVCNVDZADVCVUMVEZQUYAHVF
        VGZDVHVNZUYBVUAUXTSQZVUFSQZURUYAVUQAUXTLUXMVIVJNUXTVKVLZVOZUYBCVCQZVUJU
        YBCVCVUMACVUNQZUYAGVFZVGZCVMVNZVUGCVPVQVRZEUXLVSVNZVTZWAZVFZUYLWBNTUMZU
        YLWCUPWEWDUYLUYRLUYGUJMZLUYQLUYGUJWFWGUYHVVLLUNUYBUYGWOVJWHWIWJUYLEVVJW
        KWLWJUYBUYMEUNZUYHUYBEWPQCWMQZTEUGRECUHRVVMUYBEVVGWNZUYBCVVEWQZUYBEVVGW
        RUYBEVUHCUHJUYBVUGWPQVVNVUHCUHRUYBVUGVUTXFVVPVUGCWSVQWTZECXAVAVFWLWJVUB
        XBUYBUYKUFZUXSCLUKMZNOMZUYJUAMZSVVRUXSVVSUYIUAMZNOMVWAVVRUXRVWBNOVVREUC
        ZCUDMZCEUAMZUXRVWBUYBVWDVWEUNUYKUYBVWCLCPMZUKMZCUDMZVWECUDMZVWDVWEUYBVW
        GVWECUDUYBVWGVWCCUKMCVWCUKMVWEUYBVWFCVWCUKUYBCUYBCVVEXCZWKWDUYBCVWCVWJU
        YBVWCUYBEVVOXDZXEXGUYBCEVWJVVIXHXIWJUYBVWCWPQVVNLSQZVWHVWDUNVWKVVPUYBXJ
        ZVWCCLXKXLUYBVWEWPQVVNTVWEUGRZVWECUHRVWIVWEUNUYBCEUYBCVVEXMZVVOXNVVPUYB
        VWNECUGRUYBECVVOVWOVVQXPUYBCEVWOVVOXOXQUYBCEVWOUYBEUYBELUXLUBMZQZEUIQZU
        YBETLUKMZUXLUBMZVWPUYBETUNZXREVWTQZUYBVUHTUNZVXAUYBCVUGXSRZVXCUYBVXDCVU
        FXSRZUYBVUJVUFVWPQZVXEXRVVEUYBVXFVUFUIQZVUFUXLUGRZUYBNUIQZUXTUIQZVXGXTU
        YAVXJAUXTUXMYAVJZNUXTUUAVLUYBVXHUXTUXMUGRZUYAVXLAUXTLUXMYBVJUYBUXTWPQUX
        LWPQZNWPQZTNUHRZVXHVXLYCUYBUXTVXKXMUYBUXLUYBVVACNYDYEQUXLUIQVVDCUUBCUUC
        YHZXMZVXNUYBUUDUPZVXOUYBUUEUPZUXTUXLNUUFYFXQUYBCSQZUXLSQVXFVXGVXHUFYCUY
        BVVAVXTVVDCVHVNZCUUGVUFUXLUUHYHYGCVUFYIVQUYBVXDCDUUIMLUNZVXEUYBVYBCDUMZ
        AVYCUYAIVFUYBVVAVUKVYBVYCYCVVDVUOCDUUJVQXQUYBVXTVULVURVXDVYBUFVXEYJVYAV
        UPVUSCDVUFUUKXLUULYKUYBVUJVUIVXDVXCYCVVEVUTCVUGYLVQYMEVUHTJUUMUUNUYBVXA
        VXBUYBVUEVXAVXBYNZVVFUYBUXLTYDYEZQVUEVYDYCUYBUXLVBVYEUYBUXLVXPUUOUUPUUQ
        ETUXLUURVNYOYSUUSLVWSUXLUBUUTWGUVAZEUXLYAVNZWQUVBVWECXAVAWIVFVVRUXQVWCC
        UDVVRUXQUXOEPMVWCVVRUXPUXOEPVVRUXPLEUJMZUCZUXOVVRLULQZVWRNEXSRZXRUXPVYI
        UNVYJVVRYPUPZUYBVWRUYKVYGVFVVRVYKNUYIXSRZUYBVYMUYKUYBVUAVVKUYISQVYMUYKY
        CVUAUYBURUPVVKUYBWCUPUYBEVVHYQNUYIUVCXLUVDVVRESQZVXILNUHRZVYKVYMXRYJUYB
        VYNUYKVVHVFZVXIVVRXTUPVYOVVRUVIUPNEUVEXLUVJLEUVFXLVVRVYHLVVRVYNVYHLUNVY
        PEWOVNUVGWLWJVVREUYBVUCUYKVVIVFZUVHWLWJVVRCELUYBCULQZUYKVWJVFZVYQVYLUVK
        UVLWJVVRVVSUYINVVRVYRVVSULQVYSCYRVNVVRVUCUYIULQVYQEYRVNVVRWBZVVKVVRWCUP
        ZUVMWLVVRVVTUYJVVRVVTUXMLUKMZSVVRVVTUXLNUKMZNOMZWUBVVRVVSWUCNOVVRWUCCNL
        UAMZUKMVVSVVRCLNVYSVYLVYTUVNWUELCUKUWHYTUVOWJVVRWUDUXMNNOMZUKMWUBVVRUXL
        NNUYBUXLULQUYKUYBUXLVXPXCVFVYTVYTWUAUVPWUFLUXMUKUVQYTUVRWLVVRUXMUYBUXMS
        QZUYKUYBUXMUYBVVBUXMUIQVVCCUVSVNUVTZVFYQXBUYBUYKUSUWAXBUYBVYNUYHUYKYNVV
        HEUWBVNUWCZUYBUXRNUYBUXRUYBUXQCUYBUXPEUYBVYNUXPSQZVVHEUWDVNZVVHVOZVVEUW
        EZWNZVXRUYBUXRUYBUXRUIQZUXRTUNZUYBCUXQXSRZWUPUYBWUQCUXPUXQPMZXSRZUYBWUS
        CEXSRZUYBVUJVWQWUTXRVVEVYFCEYIVQUYBWURECXSUYBUXPUXPPMZEPMUYNWUREUYBWVAL
        EPUYBWVAUXPLUXPOMZPMLUYBUXPWVBUXPPUYBUXPLUXOOMZEUJMWVBWVCUXOEUJLLOMZUCZ
        WVCUXOVYJVYJLTUMWVEWVCUNYPYPUWFLLUWGUWIWVDLUWJUWKUWLWGUYBUXOEUYSUYBUOUP
        ZUYTUYBUQUPZVVHUWMUWNWDUYBUXPUYBUXPWUKWAZUYBUXOEWVFWVGVVHUWOUWPWLWJUYBU
        XPUXPEWVHWVHVVIUWRUYBEVVIWKWIUWQUWSUYBVXTWUJUXQSQZWUQWUSYJVYAWUKWULCUXP
        UXQUWTXLYKUYBVUJWVIWUQWUPYCVVEWULCUXQYLVQYMUYBWUOWUPUYBUXRVBQWUOWUPYNWU
        MUXRUXAUXBYSUXCUXDVXSUXHUXSUXEUXFUXGUYBUXRUXLUGRZUYEUYBUXRVUDQZWVJUYBWV
        IVUJWVKWULVVEUXQCVPVQUXRTUXLYBVNUYBUXRWPQVXMVXNVXOWVJUYEYCWUNVXQVXRVXSU
        XRUXLNUXIYFYOUYBUYFVWLWUGUYCUYDUYEUFYCWUIVWMWUHUXSLUXMUXJXLYGKUXK $.

      lgseisen.6 $e |- S = ( ( Q x. ( 2 x. y ) ) mod P ) $.
      $( Lemma for ~ lgseisen .  The function ` M ` is an injection (and hence
         a bijection by the pigeonhole principle).  (Contributed by Mario
         Carneiro, 17-Jun-2015.) $)
      lgseisenlem2 $p |- ( ph -> M : ( 1 ... ( ( P - 1 ) / 2 ) )
                         -1-1-onto-> ( 1 ... ( ( P - 1 ) / 2 ) ) ) $=
        ( c1 co c2 wcel cmul cmo vz cmin cdiv cfz wf1 wf1o wf cfv wceq weq wral
        cv wi lgseisenlem1 wa cneg oveq2 oveq2d oveq1d 3eqtr4g oveq12d ad2antrl
        cexp ovex cvv ad2antll eqeq12d cc cc0 wne wb cz cn0 cprime eldifad prmz
        adantr 2z elfzelz zmulcl sylancr zmulcld zmodcld syl5eqel nn0zd m1expcl
        syl cn nn0cnd a1i syl112anc eqidd oveq1i cr zred modabs2 syl2anc syl5eq
        modmul12d cdvds wbr moddvds syl3anc zcnd subdid mul12d eqtrd cgcd prmrp
        breq2d mpbird coprmdvds mpan2d mulassd ax-1cn mulid2d eqeq2d cle elfznn
        caddc nnred elfzle2 3syl sylbid oveq1 eqeq1d syl5ibrcom clt 2nn nnmulcl
        imbi1d nnnn0d nn0ge0d lemuldiv2 zltlem1 modid syl22anc nfcv nffv nfv wn
        fvmpt mpan2 csn cdif prmnn 2cnd 2ne0 div11 nnrpd crp zsubcld dvdsmultr2
        fvmpt2 neg1cn expaddd eqtr2d ax-1ne0 divneg2 mp3an negeqi eqtr3i recidd
        1div1e1 neg1ne0 exprecd syl5eqr expne0d 3eqtr3d mulm1d znegcld nnaddcld
        eqcom syl5bb oddprm le2addd peano2rem recnd 2halvesd peano2zm mpbir2and
        breqtrd fznn fzm1ndvds eldifsni 2prm sylancl nnzd subnegd adddid eqtr4d
        mtod mtbird pm2.21d 2re 2pos biimpd cpr nn0addcld m1expcl2 elpri mpjaod
        neg1z zexpcl mulcand 3imtr3d sylbird ralrimivva cmpt nfmpt1 nfcxfr nfeq
        wo 3syld nfim fveq2 equequ2 imbi12d cbvral ralbii sylibr dff13 sylanbrc
        cen cfn enref fzfi f1finf1o mp2an sylib ) AODOUBPZQUCPZUDPZUYMHUEZUYMUY
[encoded data, 4880 characters]
        UYNUYOVKUYMOUYLUDVDUYFOUYLUYGUYMUYMHUYHUYIUYJ $.

      lgseisen.7 $e |- Y = ( Z/nZ ` P ) $.
      lgseisen.8 $e |- G = ( mulGrp ` Y ) $.
      lgseisen.9 $e |- L = ( ZRHom ` Y ) $.
      $( Lemma for ~ lgseisen .  (Contributed by Mario Carneiro, 17-Jun-2015.)
         (Proof shortened by AV, 28-Jul-2019.) $)
      lgseisenlem3 $p |- ( ph -> ( G gsum ( x e. ( 1 ... ( ( P - 1 ) / 2 ) )
          |-> ( L ` ( ( -u 1 ^ R ) x. Q ) ) ) ) = ( 1r ` Y ) ) $=
        ( vk c1 cmin co c2 cdiv cfz cmul cfv cmpt cgsu cdvr cneg cexp cmulr cur
        cv cof ccom cmo wceq fveq2d cbvmptv oveq2i cbs cfn c0g eqid mgpbas ccrg
        oveq2 wcel ccmn cfield cprime csn eldifad znfld syl cdr simprbi crngmgp
        isfld fzfid cz wf zring crh crg crngring zrhrhm zringbas rhmf 2z zmulcl
        elfzelz sylancr ffvelrn syl2an fmptd wa fsuppmptdm lgseisenlem2 gsumf1o
        cvv fvexd syl5eqr wral lgseisenlem1 fmpt sylibr a1i eqidd oveq2d adantr
        cn0 prmz cn adantl zmulcld zmodcld nn0zd cc0 wne cdvds wbr zred modabs2
        cr syl2anc oveq1d wb syl3anc mpbird 3eqtrd ffvelrnd cle nnred mpbir2and
        zcnd fmptcof 2nn elfznn nnmulcl nnzd prmnn syl5eqel m1expcl nn0cnd 2cnd
        2ne0 divcan2d nnrpd oveq1i crp syl5eq modmul12d mulassd 3eqtr4d moddvds
        nnnn0d zndvds zringmulr rhmmul mpteq2dva offval2 eqtr4d gsummptfidmadd2
        mpbid mgpplusg eqtrd cui csubmnd unitsubm wn elfzle2 clt prmuz2 uz2m1nn
        cuz 3syl 2pos lemuldiv2 syl112anc peano2zm fzm1ndvds zndvds0 necon3abid
        2re fznn simplbi drngunit gsumsubmcl dvrid gsumcl dvrcan3 3eqtr3rd ) AH
        BUBDUBUCUDZUEUFUDZUGUDZUEBUQZUHUDZIUIZUJZUKUDZUXEKULUIZUDZHBUWTUBUMFUNU
        DZEUHUDZIUIZUJZUKUDZUXEKUOUIZUDZUXEUXFUDZKUPUIZUXLAUXEUXNUXEUXFAUXEHUXK
        UXDUXMURUDZUKUDZUXNAUXEHUAUWTUEUAUQZUHUDZIUIZUJZJUSZUKUDZHBUWTUEUXHFUHU
        DZDUTUDZUEUFUDZUHUDZIUIZUJZUKUDUXRAUXEHUYBUKUDUYDUYBUXDHUKUABUWTUYAUXCU
        XSUXAVAUXTUXBIUXSUXAUEUHVKVBVCVDAUWTKVEUIZUWTUYBHJVFHVGUIZUYKKHSUYKVHZV
        IZUYLVHZAKVJVLZHVMVLAKVNVLZUYPADVOVLZUYQADVOUEVPZLVQZDKRVRVSZUYQKVTVLZU
        YPKWCZWAVSZKHSWBVSZAUBUWSWDZAUAUWTUYAUYKUYBAWEUYKIWFZUXTWEVLZUYAUYKVLUX
        SUWTVLZAIWGKWHUDVLZVUGAKWIVLZVUJAUYPVUKVUDKWJVSZKITWKVSZWEUYKWGKIWLUYMW
        MVSZVUIUEWEVLUXSWEVLVUHWNUXSUBUWSWPUEUXSWOWQWEUYKUXTIWRWSUYBVHZWTAUAUWT
        UYBXEXEUYAUYLVUOVUFAVUIXAUXTIXFAHVGXFZXBABCDEFGJLMNOPQXCXDXGAUYCUYJHUKA
        BUAUWTUWTUYGUYAUYIJUYBAUWTUWTJWFUYGUWTVLBUWTXHABDEFJLMNOPXIBUWTUWTUYGJP
        XJXKJBUWTUYGUJVAAPXLAUYBXMUXSUYGVAUXTUYHIUXSUYGUEUHVKVBUUAXNAUYJUXQHUKA
        UYJBUWTUXJUXCUXMUDZUJUXQABUWTUYIVUQAUXAUWTVLZXAZUYIUYFIUIZUXIUXBUHUDZIU
        IZVUQVUSUYHUYFIVUSUYFUEVUSUYFVUSUYEDVUSUXHFVUSFWEVLUXHWEVLVUSFVUSFEUXBU
        HUDZDUTUDZXPOVUSVVCDVUSEUXBVUSEVOVLZEWEVLAVVEVURAEVOUYSMVQXOEXQVSZVUSUX
        BVUSUEXRVLUXAXRVLZUXBXRVLZUUBVURVVGAUXAUWSUUCXSZUEUXAUUDWQZUUEZXTZVUSUY
        RDXRVLZAUYRVURUYTXOZDUUFZVSZYAUUGYBZFUUHVSZVVQXTZVVPYAZUUIVUSUUJUEYCYDV
        USUUKXLUULVBVUSVUTVVBVAZDUYFVVAUCUDYEYFZVUSUYFDUTUDZVVADUTUDZVAZVWBVUSU
        YFUXHVVCUHUDZDUTUDVWCVWDVUSUXHUXHFVVCDVVRVVRVVQVVLVUSDVVPUUMZVUSUXHDUTU
        DXMVUSFDUTUDVVDDUTUDZVVDFVVDDUTOUUNVUSVVCYIVLDUUOVLZVWHVVDVAVUSVVCVVLYG
        VWGVVCDYHYJUUPUUQVUSUYEYIVLVWIVWCUYFVAVUSUYEVVSYGVWGUYEDYHYJVUSVVAVWFDU
        TVUSUXHEUXBVUSUXHVVRYTVUSEVVFYTVUSUXBVVKYTUURYKUUSVUSVVMUYFWEVLZVVAWEVL
        ZVWEVWBYLAVVMVURAUYRVVMUYTVVOVSXOVUSUYFVVTYBZVUSUXIUXBVUSUXHEVVRVVFXTZV
        VKXTZUYFVVADUUTYMUVIVUSDXPVLZVWJVWKVWAVWBYLVUSDVVPUVAZVWLVWNUYFVVAIDKRT
        UVBYMYNVUSVUJUXIWEVLUXBWEVLZVVBVUQVAAVUJVURVUMXOVWMVVKUXIUXBWGKUHUXMIWE
        WLUVCUXMVHZUVDYMYOUVEABUWTUXJUXCUXMUXKUXDVFUYKUYKVUFVUSWEUYKUXIIAVUGVUR
        VUNXOZVWMYPZVUSWEUYKUXBIVWSVVKYPZAUXKXMAUXDXMUVFUVGXNYOABUWTUYKUXJUXCUX
        MUXKHUXDUYNKUXMHSVWRUVJVUEVUFVWTVXAUXKVHZUXDVHZUVHUVKYKAVUKUXEKUVLUIZVL
        ZUXGUXPVAVULAUWTVXDUXDHVFUYLUYOVUEVUFAVUKVXDHUVMUIVLVULKVXDHVXDVHZSUVNV
        SABUWTUXCVXDUXDVUSUXCVXDVLZUXCUYKVLZUXCKVGUIZYDZVXAVUSVXJDUXBYEYFZUVOZV
        USVVMUXBUBUWRUGUDVLZVXLVVPVUSVXMVVHUXBUWRYQYFZVVJVUSVXNUXAUWSYQYFZVURVX
        OAUXAUBUWSUVPXSVUSUXAYIVLUWRYIVLUEYIVLZYCUEUVQYFZVXNVXOYLVUSUXAVVIYRVUS
        UWRVUSUYRDUEUVTUIVLUWRXRVLVVNDUVRDUVSUWAYRVXPVUSUWIXLVXQVUSUWBXLUXAUWRU
        EUWCUWDYNVUSUWRWEVLZVXMVVHVXNXAYLVUSDWEVLZVXRVUSUYRVXSVVNDXQVSDUWEVSUXB
        UWRUWJVSYSDUXBUWFYJVUSVXKUXCVXIVUSVWOVWQUXCVXIVAVXKYLVWPVVKUXBIDKVXIRTV
        XIVHZUWGYJUWHYNVUSVUBVXGVXHVXJXAYLAVUBVURAUYQVUBVUAUYQVUBUYPVUCUWKVSXOU
        YKKVXDUXCVXIUYMVXFVXTUWLVSYSVXCWTABUWTUXDXEXEUXCUYLVXCVUFVUSUXBIXFVUPXB
        UWMZUXFKVXDUXPUXEVXFUXFVHZUXPVHUWNYJAVUKUXLUYKVLVXEUXOUXLVAVULAUWTUYKUX
        KHVFUYLUYNUYOVUEVUFABUWTUXJUYKUXKVWTVXBWTABUWTUXKXEXEUXJUYLVXBVUFVUSUXI
        IXFVUPXBUWOVYAUYKUXFKUXMVXDUXLUXEUYMVXFVYBVWRUWPYMUWQ $.

      $( Lemma for ~ lgseisen .  The function ` M ` is an injection (and hence
         a bijection by the pigeonhole principle).  (Contributed by Mario
         Carneiro, 18-Jun-2015.)  (Proof shortened by AV, 15-Jun-2019.) $)
      lgseisenlem4 $p |- ( ph -> ( ( Q ^ ( ( P - 1 ) / 2 ) ) mod P ) =
        ( ( -u 1 ^ sum_ x e. ( 1 ... ( ( P - 1 ) / 2 ) )
          ( |_ ` ( ( Q / P ) x. ( 2 x. x ) ) ) ) mod P ) ) $=
        ( vk c1 cmin co c2 cdiv cexp cmo cneg cfz cv cmul cfl cfv csu cdvds wbr
        wceq cmpt cgsu zring cz cfn cc0 zringbas zring0 cabl wcel ccmn zringabl
        ablcmn mp1i cmnd cfield cprime csn eldifad znfld syl cdr m1expcl adantl
        ccrg cmhm eqidd wf crg eqid ccnfld cress zringmpg cc csubmnd wne neg1cn
        cdif neg1ne0 mp2an ax-mp wb zsubrg fmptd sylancr syl2anc cr prmnn nnred
        cn adantr nnmulcl cvv fvexd a1i fsuppmptdm oveq2 fveq2d mgpbas ffvelrnd
        prmz nnzd zmulcld zexpcl syl3anc caddc syl5eq nncnd oveq2d eqtrd 3eqtrd
        cn0 zcnd syl22anc wn 1exp oveq1d nnnn0d 3eqtr3d eqtr3d c0g cmg ccom cbs
        isfld simprbi crngmgp cmnmnd fzfid crngring zrhrhm feqmptd fveq2 fmptco
        crh rhmf cmgp rhmmhm expghm ghmmhm cnring cnfldbas cnfld0 cndrng drngui
        cghm unitsubm resmhm2 crn wss csubrg subrgsubm frn resmhm2b mpbii mhmco
        eqeltrrd nndivred 2nn elfznn remulcld flcld c0ex gsummhm2 cur cmulr cof
        wa mgpplusg neg1z zmodcld syl5eqel gsummptfidmadd2 zringmulr rhmmul crp
        offval2 nnrpd modval nnne0d div23d pncan3d mul12d nn0zd expaddz expmulz
        zred 2cnd 1cnd eldifsni necomd neneqd cuz 2z uzid dvdsprm mtbird negeqd
        oexpneg syl2an 2nn0 expmuld neg1sqe1 mulassd mulid2d mpteq2dva 3eqtr3rd
        oveq1i lgseisenlem3 gsumcl ringridm gsumconst hashfz1 submmulg cnfldexp
        chash oddprm mhmmulg csubg subrgsubg subgsubm df-zring gsumsubm fsumzcl
        gsumfsum zndvds mpbid moddvds mpbird ) AEDUBUCUDUEUFUDZUGUDZDUHUDUBUIZU
[encoded data, 4400 characters]
        KRTVUDYCVUEAVYEWXQWXRVUSVUTWTVYGWXSWXTVUIVURDVUFYCVUG $.
    $}

    $( Eisenstein's lemma, an expression for ` ( P /L Q ) ` when ` P , Q ` are
       distinct odd primes.  (Contributed by Mario Carneiro, 18-Jun-2015.) $)
    lgseisen $p |- ( ph -> ( Q /L P ) =
        ( -u 1 ^ sum_ x e. ( 1 ... ( ( P - 1 ) / 2 ) )
          ( |_ ` ( ( Q / P ) x. ( 2 x. x ) ) ) ) ) $=
      ( co c1 c2 cexp cmo cmul cfv wcel wceq syl cr cle wbr clgs cmin cdiv cneg
      vy caddc cfz cv cfl csu cz cprime csn cdif eldifad lgsval3 syl2anc crp cn
      prmz prmnn oddprm nnnn0d nnexpcld nnred neg1rr a1i cc0 wne fzfid nndivred
      neg1ne0 adantr 2re elfznn adantl remulcl sylancr remulcld flcld reexpclzd
      wa fsumzcl 1re czn cmgp czrh cmpt eqid lgseisenlem4 modadd1 syl221anc clt
      nnrpd peano2re df-neg cabs cc neg1cn absexpz syl3anc ax-1cn absnegi eqtri
      abs1 oveq1i 1exp syl5eq eqtrd 1le1 syl6eqbr wb absle sylancl mpbid simpld
      syl5eqbrr 0red lesubaddd peano2rem simprd df-2 eldifsni cuz prmuz2 eluzle
      3syl leltned mpbird ltaddsubd lelttrd modid syl22anc oveq1d recnd pncan )
      ADCUAHZDCIUBHZJUCHZKHZIUFHCLHZIUBHZIUDZIYSUGHZDCUCHZJBUHZMHZMHZUINZBUJZKH
      ZADUKOZCULJUMZUNOZYQUUBPADULOZUULADULUUMFUOZDUTQEDCUPUQAUUBUUKIUFHZIUBHZU
      UKAUUAUUQIUBAUUAUUQCLHZUUQAYTROUUKROZIROZCUROZYTCLHUUKCLHPUUAUUSPAYTADYSA
      UUODUSOUUPDVAQZAYSAUUNYSUSOECVBQVCVDVEAUUCUUJUUCROAVFVGUUCVHVIZAVLVGZAUUD
      UUIBAIYSVJAUUFUUDOZWBZUUHUVGUUEUUGAUUEROUVFADCADUVCVEACULOZCUSOACULUUMEUO
      ZCVAQZVKVMUVGJROZUUFROUUGROVNUVGUUFUVFUUFUSOAUUFYSVOVPVEJUUFVQVRVSVTWCZWA
      ZUVAAWDVGZACUVJWNZABUECDDUUGMHCLHZDJUEUHMHMHCLHZCWENZWFNZUVRWGNZBUUDUUCUV
      PKHUVPMHCLHJUCHWHZUVREFGUVPWIUWAWIUVQWIUVRWIUVSWIUVTWIWJYTUUKICWKWLAUUQRO
      ZUVBVHUUQSTZUUQCWMTZUUSUUQPAUUTUWBUVMUUKWOQUVOAVHIUBHZUUKSTUWCAUWEUUCUUKS
      IWPAUUCUUKSTZUUKISTZAUUKWQNZISTZUWFUWGWBZAUWHIISAUWHUUCWQNZUUJKHZIAUUCWRO
      ZUVDUUJUKOZUWHUWLPUWMAWSVGUVEUVLUUCUUJWTXAAUWLIUUJKHZIUWKIUUJKUWKIWQNIIXB
      XCXEXDXFAUWNUWOIPUVLUUJXGQXHXIXJXKAUUTUVAUWIUWJXLUVMWDUUKIXMXNXOZXPXQAVHI
      UUKAXRUVNUVMXSXOAUWDUUKYRWMTAUUKIYRUVMUVNACROYRROACUVJVEZCXTQAUWFUWGUWPYA
      AIIUFHZCWMTIYRWMTAUWRJCWMYBAJCWMTCJVIZAUUNUWSECULJYCQAJCUVKAVNVGUWQAUVHCJ
      YDNOJCSTUVICYEJCYFYGYHYIXQAIICUVNUVNUWQYJXOYKAUUKICUVMUVNUWQYJYIUUQCYLYMX
      IYNAUUKWROIWROUURUUKPAUUKUVMYOXBUUKIYPXNXIXI $.

    $d x M $.  $d y S $.
    lgsquad.4 $e |- M = ( ( P - 1 ) / 2 ) $.
    lgsquad.5 $e |- N = ( ( Q - 1 ) / 2 ) $.
    lgsquad.6 $e |- S = { <. x , y >. |
  ( ( x e. ( 1 ... M ) /\ y e. ( 1 ... N ) ) /\ ( y x. P ) < ( x x. Q ) ) } $.
    $( Lemma for ~ lgsquad .  Count the members of ` S ` with odd coordinates.
       (Contributed by Mario Carneiro, 19-Jun-2015.) $)
    lgsquadlem1 $p |- ( ph -> ( -u 1 ^
        sum_ u e. ( ( ( |_ ` ( M / 2 ) ) + 1 ) ... M )
          ( |_ ` ( ( Q / P ) x. ( 2 x. u ) ) ) ) =
        ( -u 1 ^ ( # ` { z e. S | -. 2 || ( 1st ` z ) } ) ) ) $=
      ( c2 co wbr wcel vv vn c1 cneg cdiv cfl cfv caddc cfz cmul csu cexp cdvds
      cv c1st wn crab chash cc neg1cn a1i cc0 wne fzfid wa cr cprime csn eldifi
      cn prmnn 3syl nnred adantr cz elfzelz adantl zmulcl sylancr zred remulcld
      2z flcld fsumzcl cn0 cfn wss cxp syl2anc ssfi sylancl ssrab2 hashcl nn0zd
      clt wceq ax-1cn oveq1i syl5eq oveq2d cmin wral eqeq1d elrab nncnd adantrr
      syl zcnd nncand eqtrd oveq1d 2cnd 2ne0 wrex ad2antrr cuz wb mtbird breq2d
      wi nnzd zsubcld syl3anc mpan2d simpr cle rehalfcld mpbird syl112anc mpbid
      zltp1le recnd pncan2d eqtr3d sub32d bitri nngt0d 3eqtrd eqbrtrd fznn cdif
      neg1ne0 nndivred expclzd xpfi copab opabssxp eqsstri expcl expne0d recidd
      1div1e1 negeqi ax-1ne0 divneg2 mp3an eqtr3i exprecd ciun simprbi ad2antll
      wdisj fveq2 divcan3d ralrimivva invdisj hashiun iunrab necomd neneqd uzid
      eldifsni ax-mp dvdsprm adantlr npcand dvdsmul1 dvds2add mtod breq2 notbid
      syl5ibrcom rexlimdva sseldi xp1st odd2np1 oddprm syl5eqel reflcl flle zre
      simprl ad2antrl simprr eqeltrd elfzle2 2re 2pos 2halvesd breqtrd ltsub13d
      ltmuldiv2 lelttrd 2t0e0 2cn mulcl pncan nnm1nn0 eqeltrrd nn0ge0d syl5eqbr
      zcn elfznn 0red lemul2 subge02d peano2zd elfz mpbir2and peano2cn subsub4d
      1cnd subdid oveq2i peano2zm divcan2d eqtr2d 3eqtr3d 3eqtr3rd oveq2 eqeq2d
      rspcev rexlimdvaa sylbid impbid rabbidva fveq2d wrel relopabi relss relxp
      mp2 eleq2i opabid anass nnre lesub mulcomd nnne0d divcan1d mul32d 3eqtr2d
      cop oveq12d subdird 3eqtr4d resubcld ltmul1 ltsub13 3bitr2d zsubcl syl2an
      nnz fllt 3bitrd peano2rem 3bitr4d anbi2d 2nn nnmulcl 2timesd ltm1d ltdiv1
      ltled div32d peano2re elfzle1 ltletrd ltdivmul syl5eqbrr zlem1lt ledivmul
      flltp1 lemuldiv div23d flge subled letr pm4.71rd bitr4d pm5.32da syl6breq
      letrd syl5bb lemuldiv2 posdifd sylanbrc oveq12i ltsub23d biantrurd bitr3d
      elnnz anbi12d vex op1std ancom opelxp velsn 3bitr4g eqrelrdv cen xpsnen2g
      anbi1i hasheni ltmul2 ltdivmul2 eqbrtrrd zltlem1 breqtrrd eluz2 syl3anbrc
      uznn0sub hashfz1 sumeq2dv fsumsub pncan3d fsumconst nn0cnd mul12d zmulcld
      expmulz syl22anc neg1sqe1 1exp expaddz mulcan2ad ) AUCUDZIQUERZUFUGZUCUHR
[encoded data, 8880 characters]
      WUPWURWUGVOTWUNVOTWXKWXLWPWUQWUSWWEWXGVYQWUGWUNVYOVYLUYGVYP $.

    $( Lemma for ~ lgsquad .  Count the members of ` S ` with even coordinates,
       and combine with ~ lgsquadlem1 to get the total count of lattice points
       in ` S ` (up to parity).  (Contributed by Mario Carneiro,
       18-Jun-2015.) $)
    lgsquadlem2 $p |- ( ph -> ( Q /L P ) = ( -u 1 ^ ( # ` S ) ) ) $=
      ( co c1 c2 clt wbr wcel vu vz vv cmin cdiv cfz cv cmul cfl cfv cexp caddc
      csu chash oveq2i cin c0 cn cprime csn oddprm syl syl5eqel nnred rehalfcld
      flcld cc0 wo cun cn0 cle cr nnrpd rpge0d flge0nn0 syl2anc crp rphalflt cz
      wceq wb nnzd mpbid syl6eleq syl6eq oveq1 0p1e1 oveq1d fzfid eldifad prmnn
      cuz wa adantr elfznn adantl sylancr remulcld oveq2d c1st cdvds crab wn cc
      a1i syl5sseqr sselda syldan fsumnn0cl expaddd cfn wss ssfi sylancl ssrab2
      cxp hashcl wrel bitri simpr ad2antrr nnmulcld elfzle2 elfzelz flge mpbird
      wne 2pos syl112anc peano2rem syl5eqbr wi prmz syl3anc mpan2d nngt0d nncnd
      2re wral wrex clgs cneg lgseisen sumeq1i cdif zred ltp1d fzdisj rphalfcld
      nnnn0d fllt ltled elfz2nn0 syl3anbrc nn0uz elfzp12 oveq2 fz10 uneq12d un0
      uncom eqtr3i syl6reqr fzsplit oveq1i eleq2s nndivred 2nn nnmulcl rpdivcld
      jaoi rpmulcld nn0cnd fsumsplit syl5eqr neg1cn ssun2 xpfi opabssxp eqsstri
      ssun1 copab ciun cen xpsnen2g hasheni relopabi relss mp2 relxp cop eleq2i
      opabid anass ltlend lemuldiv2 ltm1d ltdiv1 lelttrd lttrd ltnled mtod cgcd
      dvdsle prmrp coprmdvds dvdsmul2 breq2 syl5ibrcom necon3bd biantrud bitr4d
      nnz mpd nnre lemuldiv nnne0d div23d breq2d 3bitrd ltmul2 2cnd 2ne0 divass
      div23 eqtr3d breqtrd ltmul1 sylibrd recnd divsubdird syl6eqr ax-1cn nncan
      w3a lttr halflt1 syl6eqbr eqbrtrrd 1red ltsubadd2d peano2re syld nnleltp1
      pm4.71rd syl2an 3bitr3d pm5.32da syl5bb nnuz elfz5 eqeltrd biantrurd fznn
      bitr3d mulcomd sylan9eqr anbi12d 3bitr4d op1std eqeq2d eqcom syl6bb elrab
      ancom opelxp velsn anbi1i 3bitr4g eqrelrdv eqcomd fveq2d hashfz1 3eqtr3rd
      sumeq2dv wdisj fveq2 simprbi ad2antll adantrr divcan3d ralrimivva invdisj
      vex hashiun iunrab 2cn mulcom eqeq1d rexbidva anim1i reximi2 simprr xp1st
      zcn sseldi eqbrtrd zre ad2antrl simprl 2t0e0 0red elnnz sylanbrc reximdv2
      jca ex impbid2 divides rabbidva syl5eq 3eqtr2d lgsquadlem1 oveq12d eqtr4d
      2z unrab exmid rabid2 eqtr4i fveq2i pm3.24 ralrimivw rabeq0 sylibr hashun
      rgenw mpbir inrab syl5reqr 3eqtrd ) AEDUUAOPUUBZPDPUDOZQUEOZUFOZEDUEOZQUA
[encoded data, 6880 characters]
      VXKWXDWXGVYFYNVYJWSVXLVYK $.

    $( Lemma for ~ lgsquad .  (Contributed by Mario Carneiro, 18-Jun-2015.) $)
    lgsquadlem3 $p |- ( ph ->
      ( ( P /L Q ) x. ( Q /L P ) ) = ( -u 1 ^ ( M x. N ) ) ) $=
      ( co cmul c1 wcel wa syl vw vz clgs cneg cfz clt wbr copab chash cfv cexp
      cv caddc necomd weq wb eleq1 bi2anan9 ancom syl6bb oveq1 breqan12d ancoms
      anbi12d cbvopabv lgsquadlem2 cen wceq ccnv wrel cfn relopab cxp wss fzfid
      xpfi syl2anc opabssxp ssfi sylancl cnven sylancr cnvopab syl6breq hasheni
      oveq2d eqtr4d oveq12d cc neg1cn a1i cn0 eqsstri hashcl expaddd cun wo wne
      cdvds wn cn cmin cprime csn eldifad adantr prmnn cuz cle cdiv cdif oddprm
      c2 cz syl5eqel nnzd prmz peano2zm nnred zred crp elfzelz ad2antll syl3anc
      wi nncnd elfznn ad2antrl nnmulcld ex opabbii 3eqtr4i cin c0 wex cr nnnn0d
      sylib nexdv hashfz1 uz2m1nn nnrpd rphalflt syl5eqbr ltled eluz2 syl3anbrc
      prmuz2 fzss2 simprr sseldd fzm1ndvds cgcd mpbird coprmdvds mpan2d mulcomd
      prmrp breq2d mtbid dvdsmul2 breq2 syl5ibcom necon3bd mpd lttri2d pm4.71rd
      mtod mpbid syl6rbb opabbidv unopab uneq2i andi df-xp fveq2d inopab ineq2i
      3eqtr4g anandi ltnsym2 imnan opabn0 necon1bbii syl5eq hashun hashxp eqtrd
      3eqtr3d 3eqtr2d ) ADEUCOZEDUCOZPOQUDZBULZQGUEOZRZCULZQHUEOZRZSZUWNEPOZUWQ
      DPOZUFUGZSZBCUHZUIUJZUKOZUWMFUIUJZUKOZPOUWMUXFUXHUMOZUKOUWMGHPOZUKOAUWKUX
      GUWLUXIPAUWKUWMUXDCBUHZUIUJZUKOUXGAUAUBEDUXLHGJIADEKUNZMLUXDUAULZUWRRZUBU
      LZUWORZSZUXQEPOZUXODPOZUFUGZSZCBUAUBBUBUOZCUAUOZUXDUYCUPUYDUYESZUWTUXSUXC
      UYBUYFUWTUXRUXPSUXSUYDUWPUXRUYEUWSUXPUWNUXQUWOUQUWQUXOUWRUQURUXRUXPUSUTUY
      DUYEUXAUXTUXBUYAUFUWNUXQEPVAUWQUXODPVAVBVDVCVEVFAUXFUXMUWMUKAUXEUXLVGUGUX
      FUXMVHAUXEUXEVIZUXLVGAUXEVJUXEVKRZUXEUYGVGUGUXDBCVLAUWOUWRVMZVKRZUXEUYIVN
      UYHAUWOVKRZUWRVKRZUYJAQGVOZAQHVOZUWOUWRVPVQZUXCBCUWOUWRVRUYIUXEVSVTZUXEVK
      WAWBUXDBCWCWDUXEUXLWETWFWGABCDEFGHIJKLMNVFWHAUWMUXFUXHUWMWIRAWJWKAFVKRZUX
      HWLRAUYJFUYIVNUYQUYOFUWTUXBUXAUFUGZSZBCUHZUYINUYRBCUWOUWRVRWMUYIFVSVTZFWN
      TAUYHUXFWLRUYPUXEWNTWOAUXJUXKUWMUKAUXEFWPZUIUJZUYIUIUJZUXJUXKAVUBUYIUIAUW
      TUXCUYRWQZSZBCUHZUWTBCUHVUBUYIAVUFUWTBCAUWTVUEUWTSVUFAUWTVUEAUWTVUEAUWTSZ
      UXAUXBWRZVUEVUHEUXBWSUGZWTVUIVUHEDUWQPOZWSUGZVUJVUHVULEUWQWSUGZVUHEXARZUW
      QQEQXBOZUEOZRVUMWTVUHEXCRZVUNAVUQUWTAEXCXMXDZJXEXFZEXGTZVUHUWRVUPUWQVUHVU
      OHXHUJRZUWRVUPVNVUHHXNRVUOXNRZHVUOXIUGVVAVUHHAHXARUWTAHVUOXMXJOZXAMAEXCVU
      RXKZRVVCXARJEXLTXOZXFZXPVUHEXNRZVVBVUHVUQVVGVUSEXQTZEXRTZVUHHVUOVUHHVVFXS
      VUHVUOVVIXTVUHHVVCVUOUFMVUHVUOYARVVCVUOUFUGVUHVUOVUHEXMXHUJRZVUOXARVUHVUQ
      VVJVUSEUUHTEUUATUUBVUOUUCTUUDUUEHVUOUUFUUGHQVUOUUITAUWPUWSUUJUUKEUWQUULVQ
      VUHVULEDUUMOQVHZVUMVUHVVKEDWRZAVVLUWTUXNXFVUHVUQDXCRZVVKVVLUPVUSAVVMUWTAD
      XCVURIXEXFZEDUURVQUUNVUHVVGDXNRZUWQXNRZVULVVKSVUMYEVVHVUHVVMVVOVVNDXQTUWS
      VVPAUWPUWQQHYBYCEDUWQUUOYDUUPUVHVUHVUKUXBEWSVUHDUWQVUHDVUHVVMDXARVVNDXGTZ
      YFVUHUWQUWSUWQXARAUWPUWQHYGYCZYFUUQUUSUUTVUHVUJUXAUXBVUHEUXAWSUGZUXAUXBVH
      VUJVUHUWNXNRZVVGVVSUWPVVTAUWSUWNQGYBYHVVHUWNEUVAVQUXAUXBEWSUVBUVCUVDUVEVU
      HUXAUXBVUHUXAVUHUWNEUWPUWNXARAUWSUWNGYGYHVUTYIXSZVUHUXBVUHUWQDVVRVVQYIXSZ
      UVFUVIYJUVGVUEUWTUSUVJUVKUXEUYTWPUXDUYSWQZBCUHVUBVUGUXDUYSBCUVLFUYTUXENUV
      MVUFVWCBCUWTUXCUYRUVNYKYLBCUWOUWRUVOUVSUVPAUYHUYQUXEFYMZYNVHVUCUXJVHUYPVU
      AAVWDUWTUXCUYRSZSZBCUHZYNUXEUYTYMUXDUYSSZBCUHVWDVWGUXDUYSBCUVQFUYTUXENUVR
      VWFVWHBCUWTUXCUYRUVTYKYLAVWFCYOZBYOZWTVWGYNVHAVWIBAVWFCAUWTVWEWTZYEVWFWTA
      UWTVWKVUHUXAYPRUXBYPRVWKVWAVWBUXAUXBUWAVQYJUWTVWEUWBYRYSYSVWJVWGYNVWFBCUW
      CUWDYRUWEUXEFUWFYDAVUDUWOUIUJZUWRUIUJZPOZUXKAUYKUYLVUDVWNVHUYMUYNUWOUWRUW
      GVQAVWLGVWMHPAGWLRVWLGVHAGAGDQXBOXMXJOZXALADVVDRVWOXARIDXLTXOYQGYTTAHWLRV
      WMHVHAHVVEYQHYTTWHUWHUWIWFUWJ $.
  $}

  ${
    $d w x y z P $.  $d w x y z Q $.
    $( The Law of Quadratic Reciprocity, see also theorem 9.8 in [ApostolNT]
       p. 185.  If ` P ` and ` Q ` are distinct odd primes, then the product of
       the Legendre symbols ` ( P /L Q ) ` and ` ( Q /L P ) ` is the parity of
       ` ( ( P - 1 ) / 2 ) x. ( ( Q - 1 ) / 2 ) ` .  This uses Eisenstein's
       proof, which also has a nice geometric interpretation - see
       ~ https://en.wikipedia.org/wiki/Proofs_of_quadratic_reciprocity .  This
       is Metamath 100 proof #7.  (Contributed by Mario Carneiro,
       19-Jun-2015.) $)
    lgsquad $p |- ( ( P e. ( Prime \ { 2 } ) /\ Q e. ( Prime \ { 2 } )
      /\ P =/= Q ) -> ( ( P /L Q ) x. ( Q /L P ) ) =
        ( -u 1 ^ ( ( ( P - 1 ) / 2 ) x. ( ( Q - 1 ) / 2 ) ) ) ) $=
      ( vz vw vx vy c2 wcel cv c1 cmin co cdiv cfz wa cmul clt wbr eqid weq csn
      cprime cdif wne copab simp1 simp2 simp3 eleq1 bi2anan9 breqan12rd anbi12d
      w3a oveq1 cbvopabv lgsquadlem3 ) AUBGUAUCZHZBUQHZABUDZUMCDABEIZJAJKLGMLZN
      LZHZFIZJBJKLGMLZNLZHZOZVEAPLZVABPLZQRZOZEFUEVBVFURUSUTUFURUSUTUGURUSUTUHV
      BSVFSVMCIZVCHZDIZVGHZOZVPAPLZVNBPLZQRZOEFCDECTZFDTZOVIVRVLWAWBVDVOWCVHVQV
      AVNVCUIVEVPVGUIUJWCWBVJVSVKVTQVEVPAPUNVAVNBPUNUKULUOUP $.
  $}

  ${
    $d m M $.  $d m n x y N $.  $d m n x y ph $.
    lgsquad2.1 $e |- ( ph -> M e. NN ) $.
    lgsquad2.2 $e |- ( ph -> -. 2 || M ) $.
    lgsquad2.3 $e |- ( ph -> N e. NN ) $.
    lgsquad2.4 $e |- ( ph -> -. 2 || N ) $.
    lgsquad2.5 $e |- ( ph -> ( M gcd N ) = 1 ) $.
    ${
      lgsquad2lem1.a $e |- ( ph -> A e. NN ) $.
      lgsquad2lem1.b $e |- ( ph -> B e. NN ) $.
      lgsquad2lem1.m $e |- ( ph -> ( A x. B ) = M ) $.
      lgsquad2lem1.1 $e |- ( ph -> ( ( A /L N ) x. ( N /L A ) ) =
           ( -u 1 ^ ( ( ( A - 1 ) / 2 ) x. ( ( N - 1 ) / 2 ) ) ) ) $.
      lgsquad2lem1.2 $e |- ( ph -> ( ( B /L N ) x. ( N /L B ) ) =
           ( -u 1 ^ ( ( ( B - 1 ) / 2 ) x. ( ( N - 1 ) / 2 ) ) ) ) $.
      $( Lemma for ~ lgsquad2 .  (Contributed by Mario Carneiro,
         19-Jun-2015.) $)
      lgsquad2lem1 $p |- ( ph -> ( ( M /L N ) x. ( N /L M ) ) =
           ( -u 1 ^ ( ( ( M - 1 ) / 2 ) x. ( ( N - 1 ) / 2 ) ) ) ) $=
        ( c1 co c2 cmul wcel cneg cmin cdiv cexp caddc clgs cc wceq nnzd ax-1cn
        zcnd npcan sylancl oveq12d cz peano2zm syl muladdd 1t1e1 oveq2d mulid1d
        a1i eqtrd eqtr3d oveq1d mulcld addcl addcld addsubd 3eqtrd 2cnd cc0 wne
        pncan divdird divassd divcan2d cdvds wbr wn dvdsmul1 syl2anc breqtrd wa
        2ne0 wi dvdstr syl3anc mpan2d mtod 1zzd cprime 2prm nprmdvds1 mp1i omoe
        2z syl22anc wb dvdsval2 dvdsmul2 mulassd 3eqtr2d zmulcld zaddcld neg1cn
        mpbid adddird neg1ne0 expaddz expmulz oveq1i 1exp syl5eq expclzd eqtr4d
        neg1sqe1 mulid2d lgscl mul4d nnne0d lgsdir syl32anc lgsdi 3eqtr2rd ) AP
        UAZDPUBQZRUCQZEPUBQZRUCQZSQZUDQZYFBPUBQZRUCQZYJSQZCPUBQZRUCQZYJSQZUEQZU
        DQZBEUFQZEBUFQZSQZCEUFQZECUFQZSQZSQZDEUFQZEDUFQZSQZAYLYFRYNYQSQZYJSQZSQ
        ZYNYQUEQZYJSQZUEQZUDQZPYFUUOUDQZSQZYTAYKUUPYFUDAYKRUUKSQZUUNUEQZYJSQUUT
        YJSQZUUOUEQUUPAYHUVAYJSAYHYMYPSQZYMYPUEQZUEQZRUCQUVCRUCQZUVDRUCQZUEQUVA
        AYGUVERUCAYGUVCPUEQZUVDUEQZPUBQUVHPUBQZUVDUEQUVEADUVIPUBABCSQZDUVIMAYMP
        UEQZYPPUEQZSQZUVKUVIAUVLBUVMCSABUGTPUGTZUVLBUHABABKUIZUKUJBPULUMACUGTUV
        OUVMCUHACACLUIZUKUJCPULUMUNAUVNUVCPPSQZUEQZYMPSQZYPPSQZUEQZUEQUVIAYMPYP
        PAYMABUOTZYMUOTZUVPBUPUQZUKZUVOAUJVBZAYPACUOTZYPUOTZUVQCUPUQZUKZUWGURAU
        VSUVHUWBUVDUEAUVRPUVCUEUVRPUHAUSVBUTAUVTYMUWAYPUEAYMUWFVAAYPUWKVAUNUNVC
        VDVDVEAUVHUVDPAUVCUGTZUVOUVHUGTAYMYPUWFUWKVFZUJUVCPVGUMAYMYPUWFUWKVHZUW
        GVIAUVJUVCUVDUEAUWLUVOUVJUVCUHUWMUJUVCPVNUMVEVJVEAUVCUVDRUWMUWNAVKZRVLV
        MZAWEVBZVOAUVFUUTUVGUUNUEAUVFYMYQSQRYNSQZYQSQUUTAYMYPRUWFUWKUWOUWQVPAUW
        RYMYQSAYMRUWFUWOUWQVQVEARYNYQUWOAYNARYMVRVSZYNUOTZAUWCRBVRVSZVTPUOTZRPV
        RVSVTZUWSUVPAUXARDVRVSZGAUXABDVRVSZUXDABUVKDVRAUWCUWHBUVKVRVSUVPUVQBCWA
        WBMWCARUOTZUWCDUOTZUXAUXEWDUXDWFUXFAWQVBZUVPADFUIZRBDWGWHWIWJAWKZRWLTUX
        CAWMRWNWOZBPWPWRAUXFUWPUWDUWSUWTWSUXHUWQUWERYMWTWHXGZUKZAYQARYPVRVSZYQU
        OTZAUWHRCVRVSZVTUXBUXCUXNUVQAUXPUXDGAUXPCDVRVSZUXDACUVKDVRAUWCUWHCUVKVR
        VSUVPUVQBCXAWBMWCAUXFUWHUXGUXPUXQWDUXDWFUXHUVQUXIRCDWGWHWIWJUXJUXKCPWPW
        RAUXFUWPUWIUXNUXOWSUXHUWQUWJRYPWTWHXGZUKZXBXCAYMYPRUWFUWKUWOUWQVOUNVJVE
        AUUTUUNYJAUUTARUUKUXHAYNYQUXLUXRXDZXDUKAUUNAYNYQUXLUXRXEZUKAYJARYIVRVSZ
        YJUOTZAEUOTZREVRVSVTUXBUXCUYBAEHUIZIUXJUXKEPWPWRAUXFUWPYIUOTZUYBUYCWSUX
        HUWQAUYDUYFUYEEUPUQRYIWTWHXGZUKZXHAUVBUUMUUOUEARUUKYJUWOAUUKUXTUKUYHXBV
        EVJUTAUUQYFUUMUDQZUURSQZUUSAYFUGTZYFVLVMZUUMUOTUUOUOTUUQUYJUHUYKAXFVBZU
        YLAXIVBZARUULUXHAUUKYJUXTUYGXDZXDAUUNYJUYAUYGXDZYFUUMUUOXJWRAUYIPUURSAU
        YIYFRUDQZUULUDQZPAUYKUYLUXFUULUOTZUYIUYRUHUYMUYNUXHUYOYFRUULXKWRAUYRPUU
        LUDQZPUYQPUULUDXQXLAUYSUYTPUHUYOUULXMUQXNVCVEVCAUUSUURYTAUURAYFUUOUYMUY
        NUYPXOXRAUUOYSYFUDAYNYQYJUXMUXSUYHXHUTVCVJAUUGYFYOUDQZYFYRUDQZSQZYTAUUC
        VUAUUFVUBSNOUNAUYKUYLYOUOTYRUOTYTVUCUHUYMUYNAYNYJUXLUYGXDAYQYJUXRUYGXDY
        FYOYRXJWRXPAUUAUUDSQZUUBUUESQZSQUUGUUJAUUAUUDUUBUUEAUUAAUWCUYDUUAUOTUVP
        UYEBEXSWBUKAUUDAUWHUYDUUDUOTUVQUYECEXSWBUKAUUBAUYDUWCUUBUOTUYEUVPEBXSWB
        UKAUUEAUYDUWHUUEUOTUYEUVQECXSWBUKXTAVUDUUHVUEUUISAUVKEUFQZVUDUUHAUWCUWH
        UYDBVLVMZCVLVMZVUFVUDUHUVPUVQUYEABKYAZACLYAZBCEYBYCAUVKDEUFMVEVDAEUVKUF
        QZVUEUUIAUYDUWCUWHVUGVUHVUKVUEUHUYEUVPUVQVUIVUJEBCYDYCAUVKDEUFMUTVDUNVD
        YE $.
    $}

    ${
      lgsquad2lem2.f $e |- ( ( ph /\
        ( m e. ( Prime \ { 2 } ) /\ ( m gcd N ) = 1 ) ) ->
        ( ( m /L N ) x. ( N /L m ) ) =
           ( -u 1 ^ ( ( ( m - 1 ) / 2 ) x. ( ( N - 1 ) / 2 ) ) ) ) $.
      lgsquad2lem2.s $e |- ( ps <->
        A. x e. ( 1 ... k ) ( ( x gcd ( 2 x. N ) ) = 1 ->
        ( ( x /L N ) x. ( N /L x ) ) =
          ( -u 1 ^ ( ( ( x - 1 ) / 2 ) x. ( ( N - 1 ) / 2 ) ) ) ) ) $.
      $( Lemma for ~ lgsquad2 .  (Contributed by Mario Carneiro,
         19-Jun-2015.) $)
      lgsquad2lem2 $p |- ( ph -> ( ( M /L N ) x. ( N /L M ) ) =
           ( -u 1 ^ ( ( ( M - 1 ) / 2 ) x. ( ( N - 1 ) / 2 ) ) ) ) $=
        ( c2 cmul co c1 wceq clgs vy cgcd cneg cmin cdiv cexp wcel 2nn a1i nnzd
        cn cz 2z gcdcom sylancl cdvds wbr wn cprime wb 2prm coprm sylancr mpbid
        eqtrd rpmulgcd syl31anc wi cv cc0 oveq1 oveq2 oveq12d syl6eq oveq1d 2cn
        1m1e0 2ne0 div0i oveq2d eqeq12d imbi2d eqeq1d imbi12d 1t1e1 neg1cn exp0
        cc ax-mp eqtr4i sq1 oveq1i wne wa ax-1ne0 pm3.2i 1gcd syl lgssq mp3an2i
        1z syl5eqr oveq2i 1nn gcd1 lgssq2 syl3anc nnm1nn0 nn0cnd halfcld mul02d
        cn0 3eqtr4a a1d cdif simprl prmz ad2antrl adantr zmulcl simprr dvdsmul1
        csn rpdvds syl32anc prmrp eldifsn prmnn eqtr3d jca syldan exp32 eluz2nn
        sylanbrc ad2antrr eluzelz adantrr dvdsmul2 syl2anc mpd cuz jcab simplrl
        com12 cfv simplrr nnmulcld n2dvds1 anim12i ad2antlr mpan2d simpr breq2d
        dvdsgcd sylibd mtoi eqidd simpld simprrl simprrr lgsquad2lem1 com23 a2d
        simprd expcom syl5bir prmind mpcom ) AFOGPQZUBQZRSZFGTQZGFTQZPQZRUCZFRU
        DQZOUEQZGRUDQZOUEQZPQZUFQZSZAUVJFGUBQZRAFUKUGZOUKUGZGUKUGZFOUBQZRSUVJUW
        CSHUWEAUHUIJAUWGOFUBQZRAFULUGZOULUGZUWGUWHSAFHUJZUMFOUNUOAOFUPUQURZUWHR
        SZIAOUSUGZUWIUWLUWMUTVAUWKOFVBVCVDVEFOGVFVGLVEUWDAUVKUWBVHZHAEVIZUVIUBQ
        ZRSZUWPGTQZGUWPTQZPQZUVOUWPRUDQZOUEQZUVSPQZUFQZSZVHZVHAUWRRGTQZGRTQZPQZ
        UVOVJUVSPQZUFQZSZVHZVHACVIZUVIUBQZRSZUXOGTQZGUXOTQZPQZUVOUXORUDQZOUEQZU
        VSPQZUFQZSZVHZVHZAUAVIZUVIUBQZRSZUYHGTQZGUYHTQZPQZUVOUYHRUDQZOUEQZUVSPQ
        ZUFQZSZVHZVHZAUXOUYHPQZUVIUBQZRSZVUAGTQZGVUATQZPQZUVOVUARUDQZOUEQZUVSPQ
        ZUFQZSZVHZVHZAUWOVHECUAFUWPRSZUXGUXNAVUNUXFUXMUWRVUNUXAUXJUXEUXLVUNUWSU
        XHUWTUXIPUWPRGTVKUWPRGTVLVMVUNUXDUXKUVOUFVUNUXCVJUVSPVUNUXCVJOUEQVJVUNU
        XBVJOUEVUNUXBRRUDQVJUWPRRUDVKVQVNVOOVPVRVSVNVOVTWAWBWBUWPUXOSZUXGUYFAVU
        OUWRUXQUXFUYEVUOUWQUXPRUWPUXOUVIUBVKWCVUOUXAUXTUXEUYDVUOUWSUXRUWTUXSPUW
        PUXOGTVKUWPUXOGTVLVMVUOUXDUYCUVOUFVUOUXCUYBUVSPVUOUXBUYAOUEUWPUXORUDVKV
        OVOVTWAWDWBUWPUYHSZUXGUYSAVUPUWRUYJUXFUYRVUPUWQUYIRUWPUYHUVIUBVKWCVUPUX
        AUYMUXEUYQVUPUWSUYKUWTUYLPUWPUYHGTVKUWPUYHGTVLVMVUPUXDUYPUVOUFVUPUXCUYO
        UVSPVUPUXBUYNOUEUWPUYHRUDVKVOVOVTWAWDWBUWPVUASZUXGVULAVUQUWRVUCUXFVUKVU
        QUWQVUBRUWPVUAUVIUBVKWCVUQUXAVUFUXEVUJVUQUWSVUDUWTVUEPUWPVUAGTVKUWPVUAG
        TVLVMVUQUXDVUIUVOUFVUQUXCVUHUVSPVUQUXBVUGOUEUWPVUARUDVKVOVOVTWAWDWBUWPF
        SZUXGUWOAVURUWRUVKUXFUWBVURUWQUVJRUWPFUVIUBVKWCVURUXAUVNUXEUWAVURUWSUVL
        UWTUVMPUWPFGTVKUWPFGTVLVMVURUXDUVTUVOUFVURUXCUVQUVSPVURUXBUVPOUEUWPFRUD
        VKVOVOVTWAWDWBAUXMUWRARRPQZUVOVJUFQZUXJUXLVUSRVUTWEUVOWHUGVUTRSWFUVOWGW
        IWJAUXHRUXIRPAUXHROUFQZGTQZRVVARGTWKWLRULUGZRVJWMZWNAGULUGZRGUBQRSZVVBR
        SVVCVVDXAWOWPAGJUJZAVVEVVFVVGGWQWRRGWSWTXBAUXIGVVATQZRVVARGTWKXCAVVERUK
        UGZGRUBQRSZVVHRSVVGVVIAXDUIAVVEVVJVVGGXEWRGRXFXGXBVMAUXKVJUVOUFAUVSAUVR
        AUVRAUWFUVRXLUGJGXHWRXIXJXKVTXMXNAUWPUSUGZUXGAVVKUWRUXFAVVKUWRWNZUWPUSO
        YCXOUGZUWPGUBQZRSZWNUXFAVVLWNZVVMVVOVVPVVKUWPOWMZVVMAVVKUWRXPZVVPUWPOUB
        QRSZVVQVVPUWPULUGZUWJUVIULUGZUWROUVIUPUQZVVSVVKVVTAUWRUWPXQXRUWJVVPUMUI
        VVPUWJVVEVWAUMVVPGAUWFVVLJXSZUJZOGXTZVCAVVKUWRYAZVVPUWJVVEVWBUMVWDOGYBZ
        VCUWPOUVIYDYEZVVPVVKUWNVVSVVQUTVVRVAUWPOYFUOVDUWPUSOYGYNVVPUWQVVNRVVPUW
        PUKUGZUWEUWFVVSUWQVVNSVVKVWIAUWRUWPYHXRUWEVVPUHUIVWCVWHUWPOGVFVGVWFYIYJ
        MYKYLUUDUYGUYTWNAUYFUYSWNZVHUXOOUUAUUEZUGZUYHVWKUGZWNZVUMAUYFUYSUUBVWNA
        VWJVULAVWNVWJVULVHAVWNWNZVUCVWJVUKVWOVUCVWJVUKVWOVUCVWJWNZWNZUXOUYHVUAG
        VWQUXOUYHVWQVWLUXOUKUGAVWLVWMVWPUUCUXOYMWRZVWQVWMUYHUKUGAVWLVWMVWPUUFUY
        HYMWRZUUGVWOVUCOVUAUPUQZURVWJVWOVUCWNZVWTORUPUQZUUHVXAVWTOVUBUPUQZVXBVX
        AVWTVWBVXCVXAUWJVVEVWBUMAVVEVWNVUCVVGYOZVWGVCUWJVXAVUAULUGZVWAVWTVWBWNV
        XCVHUMVXAUXOULUGZUYHULUGZWNZVXEVWNVXHAVUCVWLVXFVWMVXGOUXOYPOUYHYPUUIUUJ
        ZUXOUYHXTWRZVXAUWJVVEVWAUMVXDVWEVCZOVUAUVIUUNWTUUKVXAVUBROUPVWOVUCUULZU
        UMUUOUUPYQAUWFVWNVWPJYOAOGUPUQURVWNVWPKYOVWOVUCVUAGUBQRSZVWJVXAVXEVVEVW
        AVUCGUVIUPUQZVXMVXJVXDVXKVXLVXAUWJVVEVXNUMVXDOGYRVCVUAGUVIYDYEYQVWRVWSV
        WQVUAUUQVWQUXQUYEVWOVUCUXQVWJVXAUXPUVIUXOUBQZRVXAVXFVWAUXPVXOSVXAVXFVXG
        VXIUURZVXKUXOUVIUNYSVXAVWAVXFVXEUVIVUAUBQZRSZUXOVUAUPUQZVXORSVXKVXPVXJV
        XAVXQVUBRVXAVWAVXEVXQVUBSVXKVXJUVIVUAUNYSVXLVEZVXAVXHVXSVXIUXOUYHYBWRUV
        IUXOVUAYDYEVEYQVWOVUCUYFUYSUUSYTVWQUYJUYRVWOVUCUYJVWJVXAUYIUVIUYHUBQZRV
        XAVXGVWAUYIVYASVXAVXFVXGVXIUVDZVXKUYHUVIUNYSVXAVWAVXGVXEVXRUYHVUAUPUQZV
        YARSVXKVYBVXJVXTVXAVXHVYCVXIUXOUYHYRWRUVIUYHVUAYDYEVEYQVWOVUCUYFUYSUUTY
        TUVAYLUVBUVEUVCUVFUVGUVHYT $.
    $}

    $( Extend ~ lgsquad to coprime odd integers (the domain of the Jacobi
       symbol).  (Contributed by Mario Carneiro, 19-Jun-2015.) $)
    lgsquad2 $p |- ( ph -> ( ( M /L N ) x. ( N /L M ) ) =
         ( -u 1 ^ ( ( ( M - 1 ) / 2 ) x. ( ( N - 1 ) / 2 ) ) ) ) $=
      ( vx c2 cmul co cgcd c1 wceq clgs cexp cprime wcel cc vy vm vn cv cneg wi
      cmin cdiv cfz wral csn cdif wa cn adantr cdvds wbr wn simprl eldifi prmnn
      syl wne eldifsni necomd neneqd cuz cfv wb cz 2z uzid ax-mp dvdsprm mtbird
      sylancr nnzd gcdcom syl2anc simprr eqtrd syl2anr biimpd impr lgsquad biid
      prmrp syl3anc lgsquad2lem2 lgscl mulcom syl2an nncnd ax-1cn subcl sylancl
      zcn halfcld mulcomd oveq2d 3eqtr4d ) AIUDZJCKLMLNOXBCPLCXBPLKLNUEZXBNUGLJ
      UHLZCNUGLZJUHLZKLQLOUFINUAUDUILZUJZIUAUBBCDEFGHAUBUDZRJUKZULZSZXICMLZNOZU
      MZUMZCXIPLZXICPLZKLZXCXFXINUGLZJUHLZKLZQLXRXQKLZXCYAXFKLZQLXPXBJXIKLMLNOX
      BXIPLXIXBPLKLXCXDYAKLQLOUFIXGUJZIUAUCCXIACUNSXOFUOZAJCUPUQURXOGUOXPXIRSZX
      IUNSXPXLYGAXLXNUSZXIRXJUTVBZXIVAVBZXPJXIUPUQZJXIOZXPJXIXPXIJXPXLXIJVCYHXI
      RJVDVBVEVFXPJJVGVHSZYGYKYLVIJVJSYMVKJVLVMYIXIJVNVPVOXPCXIMLZXMNXPCVJSZXIV
      JSZYNXMOXPCYFVQZXPXIYJVQZCXIVRVSAXLXNVTWAXPUCUDZXKSZYSXIMLNOZUMZUMYTXLYSX
      IVCZYSXIPLXIYSPLKLXCYSNUGLJUHLYAKLQLOXPYTUUAUSXPXLUUBYHUOXPYTUUAUUCXPYTUM
      UUAUUCYTYSRSYGUUAUUCVIXPYSRXJUTYIYSXIWGWBWCWDYSXIWEWHYEWFWIXPXRVJSZXQVJSZ
      YCXSOZXPYPYOUUDYRYQXICWJVSXPYOYPUUEYQYRCXIWJVSUUDXRTSXQTSUUFUUEXRWQXQWQXR
      XQWKWLVSXPYDYBXCQXPYAXFXPXTXPXITSNTSZXTTSXPXIYJWMWNXINWOWPWRXPXEXPCTSUUGX
      ETSXPCYFWMWNCNWOWPWRWSWTXAXHWFWI $.
  $}

  $( Extend ~ lgsquad2 to integers which share a factor.  (Contributed by Mario
     Carneiro, 19-Jun-2015.) $)
  lgsquad3 $p |- ( ( ( M e. NN /\ -. 2 || M ) /\ ( N e. NN /\ -. 2 || N ) ) ->
       ( M /L N ) =
   ( ( -u 1 ^ ( ( ( M - 1 ) / 2 ) x. ( ( N - 1 ) / 2 ) ) ) x. ( N /L M ) ) ) $=
    ( wcel c2 cdvds wbr wn wa co c1 wceq cmul cexp cz syl syl2anc cc0 a1i wne
    wb cn cgcd clgs cneg cmin cdiv cabs cfv cr simplrl nnz ad3antrrr lgscl zred
    absresq gcdcom simpr eqtrd lgsabs1 mpbird oveq1d syl6eq zcnd sqvald 3eqtr3d
    sq1 oveq2d mulassd eqtr4d mulid1d simplll simpllr simplrr cc neg1cn neg1ne0
    lgsquad2 1zzd cprime 2prm nprmdvds1 mp1i omoe syl22anc 2z peano2zm dvdsval2
    2ne0 syl3anc mpbid adantr ad2antlr zmulcld expclzd mul01d lgsne0 necon1bbid
    eqeq1d bitrd syl2anr ad2ant2r biimpa syl2an 3eqtr4rd pm2.61dan ) AUACZDAEFG
    ZHZBUACZDBEFGZHZHZABUBIZJKZABUCIZJUDZAJUEIZDUFIZBJUEIZDUFIZLIZMIZBAUCIZLIZK
    XLXNHZXOJLIZXOYCLIZYCLIZXOYDYEYFXOYCYCLIZLIYHYEJYIXOLYEYCUGUHZDMIZYCDMIZJYI
    YEYCUICYKYLKYEYCYEBNCZANCZYCNCYEXIYMXHXIXJXNUJZBUKZOZXFYNXGXKXNAUKZULZBAUMP
    ZUNYCUOOYEYKJDMIJYEYJJDMYEYJJKZBAUBIZJKZYEUUBXMJYEYMYNUUBXMKYQYSBAUPZPXLXNU
    QZURYEYMYNUUAUUCTYQYSBAUSPUTVAVFVBYEYCYEYCYTVCZVDVEVGYEXOYCYCYEXOYEYNYMXONC
    YSYQABUMPVCZUUFUUFVHVIYEXOUUGVJYEYGYBYCLYEABXFXGXKXNVKXFXGXKXNVLYOXHXIXJXNV
    MUUEVQVAVEXLXNGZHZYBQLIQYDXOUUIYBUUIXPYAXPVNCUUIVORXPQSUUIVPRUUIXRXTUUIDXQE
    FZXRNCZUUIYNXGJNCZDJEFGZUUJXFYNXGXKUUHYRULZXFXGXKUUHVLUUIVRZDVSCUUMUUIVTDWA
    WBZAJWCWDUUIDNCZDQSZXQNCZUUJUUKTUUQUUIWERZUURUUIWHRZUUIYNUUSUUNAWFODXQWGWIW
    JUUIDXSEFZXTNCZUUIYMXJUULUUMUVBXKYMXHUUHXIYMXJYPWKWLZXHXIXJUUHVMUUOUUPBJWCW
    DUUIUUQUURXSNCZUVBUVCTUUTUVAUUIYMUVEUVDBWFODXSWGWIWJWMWNWOUUIYCQYBLXLUUHYCQ
    KZXFXIUUHUVFTXGXJXFXIHXNYCQXIYMYNYCQSZXNTXFYPYRYMYNHZUVGUUCXNBAWPUVHUUBXMJU
    UDWRWSWTWQXAXBVGXLUUHXOQKZXFXIUUHUVITZXGXJXFYNYMUVJXIYRYPYNYMHXNXOQABWPWQXC
    XAXBXDXE $.

  $( The first supplement to the law of quadratic reciprocity.  Negative one is
     a square mod an odd prime ` P ` iff ` P == 1 ` (mod ` 4 ` ).  See first
     case of theorem 9.4 in [ApostolNT] p. 181.  (Contributed by Mario
     Carneiro, 19-Jun-2015.) $)
  m1lgs $p |- ( P e. ( Prime \ { 2 } ) ->
      ( ( -u 1 /L P ) = 1 <-> ( P mod 4 ) = 1 ) ) $=
    ( cprime c2 wcel c1 co wceq c4 cmo cmin cdiv caddc cdvds wbr cz syl cc0 a1i
    cexp wb csn cdif cneg clgs cn0 oddprm nnnn0d zexpcl sylancr peano2zd eldifi
    neg1z cn prmnn zmodcld nn0cnd 1cnd subaddd cr crp cle clt 2re 0le2 eldifsni
    nnrpd wne nnred cuz prmuz2 eluzle leltned mpbird modid syl22anc df-2 syl6eq
    cfv eqeq1d wn wa neneqd 2prm dvdsprm sylancl mtbird adantr cc simpr oexpneg
    syl3anc nnzd negeqd eqtrd oveq1d ax-1cn neg1cn 1pneg1e0 addcomli oveq2d 2cn
    1exp subid1i breq2d ex con4d 2z moddvds 4z 4ne0 nnm1nn0 nn0zd dvdsval2 cmul
    divdiv1d 2t2e4 oveq2i eleq1d bitr4d 3imtr4d neg1ne0 biimpa expmulz divcan2d
    2ne0 nncnd neg1sqe1 oveq1i syl5eq 3eqtr3d syl6reqr 3bitr2d lgsval3 mpan 4nn
    impbid prmz 1zzd 3bitr4d 1re nnrp ax-mp 0le1 1lt4 mp4an eqeq2i syl6bb ) ABC
    UAZUBDZEUCZAUDFZEGZAHIFZEHIFZGZUUMEGUUIUUJAEJFZCKFZSFZELFZAIFZEJFZEGZHUUPMN
    ZUULUUOUUIUVBEELFZUUTGCAIFZUUTGZUVCUUIUUTEEUUIUUTUUIUUSAUUIUURUUIUUJODZUUQU
    EDUURODULUUIUUQAUFZUGUUJUUQUHUIUJZUUIABDZAUMDZABUUHUKZAUNPZUOUPUUIUQZUVNURU
    UIUVEUVDUUTUUIUVECUVDUUICUSDZAUTDQCVANZCAVBNZUVECGUVOUUIVCRZUUIAUVMVFUVPUUI
    VDRUUIUVQACVGABCVEZUUICAUVRUUIAUVMVHUUIACVIVRDZCAVANUUIUVJUVTUVLAVJPZCAVKPV
    LVMCAVNVOVPVQVSUUIUVFUVCUUIACUUSJFZMNZCUUQMNZUVFUVCUUIUWDUWCUUIUWDVTZUWCVTU
    UIUWEWAZUWCACMNZUUIUWGVTUWEUUIUWGACGZUUIACUVSWBUUIUVTCBDUWGUWHTUWAWCCAWDWEW
    FWGUWFUWBCAMUWFUWBCQJFCUWFUUSQCJUWFUUSUUJELFQUWFUURUUJELUWFUUREUUQSFZUCZUUJ
    UWFEWHDUUQUMDZUWEUURUWJGUWFUQUUIUWKUWEUVHWGZUUIUWEWIEUUQWJWKUWFUWIEUWFUUQOD
    ZUWIEGUWFUUQUWLWLUUQXBPWMWNWOEUUJQWPWQWRWSVQWTCXAXCVQXDWFXEXFUUIUVKCODZUUSO
    DUVFUWCTUVMUWNUUIXGRZUVICUUSAXHWKUUIUVCUUQCKFZODZUWDUUIUVCUUPHKFZODZUWQUUIH
    ODZHQVGZUUPODUVCUWSTUWTUUIXIRUXAUUIXJRUUIUUPUUIUVKUUPUEDUVMAXKPZXLHUUPXMWKU
    UIUWPUWROUUIUWPUUPCCXNFZKFUWRUUIUUPCCUUIUUPUXBUPCWHDUUIXARZUXDCQVGZUUIYERZU
    XFXOUXCHUUPKXPXQVQXRXSZUUIUWNUXEUWMUWDUWQTUWOUXFUUIUUQUVHWLCUUQXMWKXSXTUUIU
    VCUVFUUIUVCWAZCUUSAIUXHUUSUVDCUXHUUREELUXHUUJCUWPXNFZSFZUUJCSFZUWPSFZUUREUX
    HUUJWHDZUUJQVGZUWNUWQUXJUXLGUXMUXHWQRUXNUXHYARUWNUXHXGRUUIUVCUWQUXGYBZUUJCU
    WPYCVOUXHUXIUUQUUJSUUIUXIUUQGUVCUUIUUQCUUIUUQUVHYFUXDUXFYDWGWTUXHUXLEUWPSFZ
    EUXKEUWPSYGYHUXHUWQUXPEGUXOUWPXBPYIYJWOVPYKWOXEYPYLUUIUUKUVAEUVGUUIUUKUVAGU
    LUUJAYMYNVSUUIHUMDZAODZEODUUOUVCTUXQUUIYORUUIUVJUXRUVLAYQPUUIYRAEHXHWKYSUUN
    EUUMEUSDHUTDZQEVANEHVBNUUNEGYTUXQUXSYOHUUAUUBUUCUUDEHVNUUEUUFUUG $.

  ${
    $d P i $.
    $( Lemma 1 for ~ 2lgslem1a .  (Contributed by AV, 16-Jun-2021.) $)
    2lgslem1a1 $p |- ( ( P e. NN /\ -. 2 || P )
                     -> A. i e. ( 1 ... ( ( P - 1 ) / 2 ) )
                        ( i x. 2 ) = ( ( i x. 2 ) mod P ) ) $=
      ( cn wcel c2 wbr wa cmul co wceq c1 cr cc0 cle adantr cz 2re a1i syl wi
      cdvds cmo cmin cdiv cfz crp clt nnrp elfzelz zre remulcld anim12ci elfznn
      wn cv nnre nnnn0 nn0ge0d pm3.2i mulge0 syl21anc adantl w3a elfz2 3ad2ant3
      0le2 wb 3ad2ant2 2pos lemul1 syl3anc cc nncn peano2cnm 2cnd 2ne0 divcan1d
      wne breq2d id 2z zmulcld nnz zltlem1 syl2an biimprd sylbid ex com23 imp32
      a1d sylbi impcom modid syl12anc eqcomd ralrimiva ) ACDZEAUAFUNZGZBUOZEHIZ
      XBAUBIZJBKAKUCIZEUDIZUEIZWTXAXFDZGZXCXBXHXBLDZAUFDZGMXBNFZXBAUGFZXCXBJWTX
      JXGXIWRXJWSAUHOXGXAPDZXIXAKXEUIXMXAEXAUJZELDZXMQRUKSULXGXKWTXGXACDZXKXAXE
      UMXPXALDZMXANFXOMENFZGZXKXAUPXPXAXAUQURXSXPXOXRQVFUSRXAEUTVASVBXGWTXLXGKP
      DZXEPDZXMVCZKXANFZXAXENFZGGWTXLTZXAKXEVDYBYCYDYEYBYDYETYCYBYDXBXEEHIZNFZY
      EYBXQXELDZXOMEUGFZGZYDYGVGXMXTXQYAXNVEYAXTYHXMXEUJVHYJYBXOYIQVIUSRXAXEEVJ
      VKYBWTYGXLYBWTYGXLTYBWTGZYGXBXDNFZXLYKYFXDXBNWTYFXDJZYBWRYMWSWRXDEWRAVLDX
      DVLDAVMAVNSWRVOEMVRWRVPRVQOVBVSYKXLYLYBXBPDZAPDZXLYLVGWTXMXTYNYAXMXAEXMVT
      EPDXMWARWBVEWRYOWSAWCOXBAWDWEWFWGWHWIWGWKWJWLWMXBAWNWOWPWQ $.
  $}

  $( Lemma 2 for ~ 2lgslem1a .  (Contributed by AV, 18-Jun-2021.) $)
  2lgslem1a2 $p |- ( ( N e. ZZ /\ I e. ZZ )
                  -> ( ( |_ ` ( N / 4 ) ) < I <-> ( N / 2 ) < ( I x. 2 ) ) ) $=
    ( cz wcel wa c2 cdiv co cmul clt wbr c4 cr cc0 wb adantr a1i adantl syl3anc
    cc cfl cfv zre rehalfcld id 2z zmulcld zred 2re 2pos pm3.2i ltdiv1 wne wceq
    2cnne0 divdiv1 2t2e4 oveq2i syl6eq 2cnd 2ne0 divcan4d breq12d 4ne0 redivcld
    zcn 4re fllt sylan 3bitrrd ) BCDZACDZEZBFGHZAFIHZJKZVNFGHZVOFGHZJKZBLGHZAJK
    ZVTUAUBAJKZVMVNMDZVOMDZFMDZNFJKZEZVPVSOVKWCVLVKBBUCZUDPVLWDVKVLVOVLAFVLUEFC
    DVLUFQUGUHRWGVMWEWFUIUJUKQVNVOFULSVMVQVTVRAJVMVQBFFIHZGHZVTVMBTDZFTDFNUMZEZ
    WMVQWJUNVKWKVLBVFPWMVMUOQZWNBFFUPSWILBGUQURUSVMAFVLATDVKAVFRVMUTWLVMVAQVBVC
    VKVTMDVLWAWBOVKBLWHLMDVKVGQLNUMVKVDQVEVTAVHVIVJ $.

  ${
    $d P i k x $.
    $( Lemma 1 for ~ 2lgslem1 .  (Contributed by AV, 18-Jun-2021.) $)
    2lgslem1a $p |- ( ( P e. Prime /\ -. 2 || P )
                      -> { x e. ZZ | E. i e. ( 1 ... ( ( P - 1 ) / 2 ) )
                                ( x = ( i x. 2 ) /\ ( P / 2 ) < ( x mod P ) ) }
                         = { x e. ZZ | E. i e. ( ( ( |_ ` ( P / 4 ) ) + 1 )
                                  ... ( ( P - 1 ) / 2 ) ) x = ( i x. 2 ) } ) $=
      ( vk wcel c2 wbr wa cv cmul co wceq cdiv cmo clt c1 wrex cz wb ad2antrr
      cprime cdvds wn cmin cfz c4 cfl cfv caddc cuz wss cn cn0 prmnn nnnn0d 4nn
      jctir fldivnn0 nn0p1nn 3syl sylib fzss1 rexss ancom cle syl nn0zd elfzelz
      elnnuz zltp1le syl2an bicomd anbi1d adantl peano2zd adantr oddm1d2 biimpa
      prmz elfz syl3anc elfzle2 biantrud 2lgslem1a2 bitrd wral 2lgslem1a1 sylan
      3bitr4d weq oveq1d eqeq12d rspccva breq2d eqcomd sylan9bb pm5.32da syl5bb
      oveq1 rexbidva rabbidva ) BUAEZFBUBGUCZHZAIZCIZFJKZLZBFMKZXEBNKZOGZHZCPBP
      UDKFMKZUEKZQZXHCBUFMKUGUHZPUIKZXMUEKZQZARXDXEREZHZXSXOYAXSXFXREZXHHZCXNQZ
      XOYAXQPUJUHEZXRXNUKXSYDSYAXQULEZYEYABUMEZUFULEZHZXPUMEZYFYAYGYHXBYGXCXTXB
      BBUNZUOZTUPUQBUFURZXPUSUTXQVIVAXQPXMVBXHCXRXNVCUTYAYCXLCXNYCXHYBHYAXFXNEZ
      HZXLYBXHVDYOXHYBXKYOYBXIXGBNKZOGZXHXKYOYBXIXGOGZYQYOYBXPXFOGZYRYOXQXFVEGZ
      XFXMVEGZHZYSUUAHYBYSYOYTYSUUAYOYSYTYAXPREZXFREZYSYTSYNXBUUCXCXTXBXPXBYIYJ
      XBYGYHYLUPUQYMVFVGZTXFPXMVHZXPXFVJVKVLVMYOUUDXQREZXMREZYBUUBSYNUUDYAUUFVN
      XDUUGXTYNXBUUGXCXBXPUUEVOVPTXDUUHXTYNXBXCUUHXBBREZXCUUHSBVSZBVQVFVRTXFXQX
      MVTWAYOUUAYSYNUUAYAXFPXMWBVNWCWIYAUUIUUDYSYRSYNXBUUIXCXTUUJTUUFXFBWDVKWEY
      OXGYPXIOYADIZFJKZUULBNKZLZDXNWFZYNXGYPLZXDUUOXTXBBULEXCUUOYKBDWGWHVPUUNUU
      PDXFXNDCWJZUULXGUUMYPUUKXFFJWSZUUQUULXGBNUURWKWLWMWHWNWEXHYPXJXIOXHXJYPXE
      XGBNWSWOWNWPWQWRWTWEVLXA $.
  $}

  ${
    $d F y z $.  $d I i j x y z $.
    2lgslem1b.i $e |- I = ( A ... B ) $.
    2lgslem1b.f $e |- F = ( j e. I |-> ( j x. 2 ) ) $.
    $( Lemma 2 for ~ 2lgslem1 .  (Contributed by AV, 18-Jun-2021.) $)
    2lgslem1b $p |- F : I -1-1-onto-> { x e. ZZ | E. i e. I x = ( i x. 2 ) } $=
      ( vy vz cv c2 cmul co wceq cz weq wcel elfzelz wrex crab wf1o wf1 crn cfv
      wf wi wral cfz eleq2s 2z zmulcld id wb oveq1 eqeq2d adantl eqidd rspcedvd
      a1i eqeq1 rexbidv elrab sylanbrc fmpti wa cmpt simpl ovexd fvmptd eqeq12d
      cvv simpr cc zcnd adantr 2cnd cc0 2ne0 mulcan2d biimpd sylbid rgen2 dff13
      wne mpbir2an cbvrexv eleq1 syl5ibrcom rexlimiv pm4.71ri bitri abbii rnmpt
      cab df-rab 3eqtr4i dff1o5 ) GALZDLZMNOZPZDGUAZAQUBZFUCGXEFUDZFUEZXEPXFGXE
      FUGJLZFUFZKLZFUFZPZJKRZUHZKGUIJGUIEGXEELZMNOZFIXOGSZXPQSXPXBPZDGUAZXPXESX
      QXOMXOQSXOBCUJOZGXOBCTHUKMQSZXQULVAUMXQXRXPXPPZDXOGXQUNDERZXRYBUOXQYCXBXP
      XPXAXOMNUPUQURXQXPUSUTXDXSAXPQWTXPPZXCXRDGWTXPXBVBVCVDVEVFXNJKGGXHGSZXJGS
      ZVGZXLXHMNOZXJMNOZPZXMYGXIYHXKYIYGEXHXPYHGFVMFEGXPVHPYGIVAZEJRXPYHPYGXOXH
      MNUPURYEYFVIYGXHMNVJVKYGEXJXPYIGFVMYKEKRXPYIPYGXOXJMNUPURYEYFVNYGXJMNVJVK
      VLYGYJXMYGXHXJMYEXHVOSYFYEXHXHQSXHXTGXHBCTHUKVPVQYFXJVOSYEYFXJXJQSXJXTGXJ
      BCTHUKVPURYGVRMVSWFYGVTVAWAWBWCWDJKGXEFWEWGYDEGUAZAWPWTQSZXDVGZAWPXGXEYLY
      NAYLXDYNYDXCEDGEDRXPXBWTXOXAMNUPUQWHXDYMXCYMDGXAGSYMXCXBQSZYOXAXTGXAXTSZX
      AMXABCTYAYPULVAUMHUKWTXBQWIWJWKWLWMWNEAGXPFIWOXDAQWQWRGXEFWSWG $.
  $}

  ${
    $d P n $.
    $( Lemma 3 for ~ 2lgslem1 .  (Contributed by AV, 19-Jun-2021.) $)
    2lgslem1c $p |- ( ( P e. Prime /\ -. 2 || P )
                      -> ( |_ ` ( P / 4 ) ) <_ ( ( P - 1 ) / 2 ) ) $=
      ( vn wcel c2 cdvds wbr wn cdiv co c1 cmin cle wceq cn0 wa adantl ad2antlr
      cr syl a1i cprime c4 cfl cfv cv cmul caddc wrex cn prmnn nnnn0 oddnn02np1
      wb cif iftrue adantr 2nn nn0ledivnn mpan2 eqbrtrd iffalse nn0re peano2rem
      3syl rehalfcld lem1d cc0 clt 2re 2pos pm3.2i lediv1 mpbid letrd pm2.61ian
      syl3anc cz nn0z eqcom biimpi flodddiv4 syl2an oveq1 eqcoms 2nn0 nn0mulcld
      cc id nn0cnd pncan1 eqtrd oveq1d 2cnd wne 2ne0 divcan3d 3brtr4d rexlimdva
      nn0cn ex sylbid imp ) AUACZDAEFGZAUBHIUCUDZAJKIZDHIZLFZXCXDDBUEZUFIZJUGIZ
      AMZBNUHZXHXCAUICANCXDXMUMAUJAUKBAULVDXCXLXHBNXCXINCZOZXLXHXOXLOZDXIEFZXID
      HIZXIJKIZDHIZUNZXIXEXGLXNYAXILFZXCXLXQXNYBXQXNOYAXRXILXQYAXRMXNXQXRXTUOUP
      XNXRXILFZXQXNDUICYCUQXIDURUSZPUTXQGZXNOYAXTXILYEYAXTMXNXQXRXTVAUPXNXTXILF
      YEXNXTXRXIXNXIRCZXTRCXIVBZYFXSXIVCZVESXNXIYGVEYGXNXSXILFZXTXRLFZXNXIYGVFX
      NXSRCZYFDRCZVGDVHFZOZYIYJUMXNYFYKYGYHSYGYNXNYLYMVIVJVKTXSXIDVLVPVMYDVNPUT
      VOQXOXIVQCZAXKMZXEYAMXLXNYOXCXIVRPXLYPXKAVSVTXIAWAWBXPXGXJDHIZXIXPXFXJDHX
      PXFXKJKIZXJXLXFYRMZXOYSAXKAXKJKWCWDPXNYRXJMZXCXLXNXJWGCYTXNXJXNDXIDNCXNWE
      TXNWHWFWIXJWJSQWKWLXNYQXIMXCXLXNXIDXIWSXNWMDVGWNXNWOTWPQWKWQWTWRXAXB $.
  $}

  ${
    $d P f i x y $.
    $( Lemma 1 for ~ 2lgs .  (Contributed by AV, 19-Jun-2021.) $)
    2lgslem1 $p |- ( ( P e. Prime /\ -. 2 || P )
                     -> ( # ` { x e. ZZ | E. i e. ( 1 ... ( ( P - 1 ) / 2 ) )
                              ( x = ( i x. 2 ) /\ ( P / 2 ) < ( x mod P ) ) } )
                        = ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) ) $=
      ( vf vy wcel c2 wbr wa cv co wceq cdiv c1 cfz cz chash cfv c4 a1i wn cmul
      cprime cdvds cmo clt cmin wrex crab cfl caddc 2lgslem1a cvv wf1o wex ovex
      fveq2d cmpt mptex f1oeq1 eqid 2lgslem1b ceqsexv2d hasheqf1oi cuz cle prmz
      mpsyl zred cr 4re cc0 wne 4ne0 redivcld flcld adantr wb oddm1d2 2lgslem1c
      syl biimpa eluz2 syl3anbrc hashfzp1 3eqtr2d ) BUCFZGBUDHUAZIZAJZCJGUBKLZB
      GMKWJBUEKUFHICNBNUGKGMKZOKUHAPUIZQRWKCBSMKZUJRZNUKKZWLOKZUHAPUIZQRZWQQRZW
      LWOUGKZWIWMWRQABCULUQWQUMFWIWQWRDJZUNZDUOZWTWSLWPWLOUPZXDWIXCWQWREWQEJGUB
      KZURZUNDXGEWQXFXEUSWQWRXBXGUTAWPWLCEXGWQWQVAXGVAVBVCTWQWRDUMVDVHWIWLWOVER
      FZWTXALWIWOPFZWLPFZWOWLVFHXHWGXIWHWGWNWGBSWGBBVGZVISVJFWGVKTSVLVMWGVNTVOV
      PVQWGWHXJWGBPFWHXJVRXKBVSWAWBBVTWOWLWCWDWOWLWEWAWF $.
  $}

  ${
    2lgslem2.n $e |- N = ( ( ( P - 1 ) / 2 ) - ( |_ ` ( P / 4 ) ) ) $.
    $( Lemma 2 for ~ 2lgs .  (Contributed by AV, 20-Jun-2021.) $)
    2lgslem2 $p |- ( ( P e. Prime /\ -. 2 || P ) -> N e. ZZ ) $=
      ( cprime wcel c2 cdvds wbr wn wa c1 cmin co cdiv c4 cfl cfv cz csn a1i 2z
      cdif simpl wceq elsng iddvds ax-mp breq2 mpbiri syl6bi eldifd oddprm nnzd
      con3dimp syl prmz zred cr 4re cc0 wne 4ne0 redivcld flcld adantr syl5eqel
      zsubcld ) ADEZFAGHZIZJZBAKLMFNMZAONMZPQZLMRCVKVLVNVKADFSZUBEZVLREVKADVOVH
      VJUCVHAVOEZVIVHVQAFUDZVIAFDUEVRVIFFGHZFREVSUAFUFUGAFFGUHUIUJUNUKVPVLAULUM
      UOVHVNREVJVHVMVHAOVHAAUPUQOUREVHUSTOUTVAVHVBTVCVDVEVGVF $.

    $( Lemma for ~ 2lgslem3a1 .  (Contributed by AV, 14-Jul-2021.) $)
    2lgslem3a $p |- ( ( K e. NN0 /\ P = ( ( 8 x. K ) + 1 ) )
                      -> N = ( 2 x. K ) ) $=
      ( c8 cmul co c1 wceq cn0 wcel cmin c2 cdiv c4 cfl oveq1d cc a1i eqtrd cfv
      caddc oveq1 fveq2d oveq12d syl5eq 8nn0 id nn0mulcld nn0cnd pncan1 syl 4cn
      2cn 4t2e8 mulcomli eqcomi nn0cn mulassd 4nn0 cc0 wne 2ne0 divcan3d 3eqtrd
      wa 1cnd 4ne0 pm3.2i divdir syl3anc 8cn div23 oveq1i divcan3i clt wbr 1lt4
      eqtri cz cn 2nn0 nn0zd 1nn0 4nn adddivflid mpbii 2t2e4 2txmxeqx sylan9eqr
      wb ) AEBFGZHUBGZIZBJKZCWMHLGZMNGZWMONGZPUAZLGZMBFGZWNCAHLGZMNGZAONGZPUAZL
      GWTDWNXCWQXEWSLWNXBWPMNAWMHLUCQWNXDWRPAWMONUCUDUEUFWOWTOBFGZXALGMXAFGZXAL
      GZXAWOWQXFWSXALWOWQWLMNGMXFFGZMNGXFWOWPWLMNWOWLRKZWPWLIWOWLWOEBEJKWOUGSWO
      UHZUIUJZWLUKULQWOWLXIMNWOWLMOFGZBFGXIWOEXMBFEXMIWOXMEOMEUMUNUOUPUQSQWOMOB
      MRKWOUNSZORKZWOUMSBURZUSTQWOXFMWOXFWOOBOJKWOUTSXKUIUJXNMVAVBWOVCSVDVEWOWS
      XAHONGZUBGZPUAZXAWOWRXRPWOWRWLONGZXQUBGZXRWOXJHRKXOOVAVBZVFZWRYAIXLWOVGYC
      WOXOYBUMVHVISZWLHOVJVKWOXTXAXQUBWOXTEONGZBFGZXAWOERKZBRKYCXTYFIYGWOVLSXPY
      DEBOVMVKWOYEMBFYEMIWOYEOMFGZONGMEYHONYHEUOUQVNMOUNUMVHVOVSSQTQTUDWOHOVPVQ
      ZXSXAIZVRWOXAVTKHJKZOWAKZYIYJWKWOXAWOMBMJKWOWBSXKUIZWCYKWOWDSYLWOWESXAHOW
      FVKWGTUEWOXFXGXALWOXFMMFGZBFGXGWOOYNBFOYNIWOYNOWHUQSQWOMMBXNXNXPUSTQWOXAR
      KXHXAIWOXAYMUJXAWIULVEWJ $.

    $( Lemma for ~ 2lgslem3b1 .  (Contributed by AV, 16-Jul-2021.) $)
    2lgslem3b $p |- ( ( K e. NN0 /\ P = ( ( 8 x. K ) + 3 ) )
                      -> N = ( ( 2 x. K ) + 1 ) ) $=
      ( c8 cmul co c3 caddc wceq wcel c1 cmin c2 cdiv c4 oveq1d a1i cc eqtrd id
      cn0 cfl oveq1 fveq2d oveq12d syl5eq 8nn0 nn0mulcld nn0cnd 1cnd addsubassd
      cfv 3cn 4t2e8 eqcomi 4cn 2cn nn0cn mul32d 3m1e2 cc0 wne wa mulcld crp 2rp
      4nn0 rpcnne0d divdir syl3anc 2ne0 divcan4d 2div2e1 3eqtrd 4ne0 pm3.2i 8cn
      div23 oveq1i divcan3i eqtri clt wbr 3lt4 cz cn 2nn0 nn0zd 3nn0 adddivflid
      wb 4nn mpbii addsubd 2t2e4 mulassd 2txmxeqx syl sylan9eqr ) AEBFGZHIGZJZB
      UBKZCXBLMGZNOGZXBPOGZUCUMZMGZNBFGZLIGZXCCALMGZNOGZAPOGZUCUMZMGXIDXCXMXFXO
      XHMXCXLXENOAXBLMUDQXCXNXGUCAXBPOUDUEUFUGXDXIPBFGZLIGZXJMGXPXJMGZLIGXKXDXF
      XQXHXJMXDXFXPNFGZNIGZNOGZXSNOGZNNOGZIGZXQXDXEXTNOXDXEXAHLMGZIGXTXDXAHLXDX
      AXDEBEUBKXDUHRXDUAZUIUJZHSKZXDUNRZXDUKZULXDXAXSYENIXDXAPNFGZBFGXSXDEYKBFE
      YKJXDYKEUOUPZRQXDPNBPSKZXDUQRNSKZXDURRZBUSZUTTYENJXDVARUFTQXDXSSKYNYNNVBV
      CZVDYAYDJXDXPNXDXPXDPBPUBKXDVHRYFUIUJZYOVEYOXDNNVFKXDVGRVIXSNNVJVKXDYBXPY
      CLIXDXPNYRYOYQXDVLRVMYCLJXDVNRUFVOXDXHXJHPOGZIGZUCUMZXJXDXGYTUCXDXGXAPOGZ
      YSIGZYTXDXASKYHYMPVBVCZVDZXGUUCJYGYIUUEXDYMUUDUQVPVQRZXAHPVJVKXDUUBXJYSIX
      DUUBEPOGZBFGZXJXDESKZBSKUUEUUBUUHJUUIXDVRRYPUUFEBPVSVKXDUUGNBFUUGNJXDUUGY
      KPOGNEYKPOYLVTNPURUQVPWAWBRQTQTUEXDHPWCWDZUUAXJJZWEXDXJWFKHUBKZPWGKZUUJUU
      KWLXDXJXDNBNUBKXDWHRYFUIZWIUULXDWJRUUMXDWMRXJHPWKVKWNTUFXDXPLXJYRYJXDXJUU
      NUJZWOXDXRXJLIXDXRNXJFGZXJMGZXJXDXPUUPXJMXDXPNNFGZBFGUUPXDPUURBFPUURJXDUU
      RPWPUPRQXDNNBYOYOYPWQTQXDXJSKUUQXJJUUOXJWRWSTQVOWT $.

    $( Lemma for ~ 2lgslem3c1 .  (Contributed by AV, 16-Jul-2021.) $)
    2lgslem3c $p |- ( ( K e. NN0 /\ P = ( ( 8 x. K ) + 5 ) )
                      -> N = ( ( 2 x. K ) + 1 ) ) $=
      ( c8 cmul co c5 caddc wceq wcel c1 cmin c2 cdiv c4 cfl a1i cc eqtrd oveq1
      cn0 cfv oveq1d fveq2d oveq12d syl5eq 8nn0 nn0mulcld nn0cnd 5cn addsubassd
      1cnd 4t2e8 eqcomi 4cn 2cn nn0cn mul32d df-5 oveq1i pncan1 ax-mp eqtri cc0
      id wne wa 4nn0 mulcld crp 2rp rpcnne0d divdir syl3anc 2ne0 divcan4d 4d2e2
      3eqtrd 4ne0 pm3.2i 8cn div23 divcan3i clt wbr 1lt4 cz cn wb 2nn0 peano2zd
      1nn0 adddivflid reccld addassd ax-1cn divdiri dividi 3eqtri eqcomd oveq2d
      nn0zd 4nn bitrd mpbii addsub4d 2t2e4 mulassd 2txmxeqx syl 2m1e1 sylan9eqr
      eqeq1d ) AEBFGZHIGZJZBUBKZCXPLMGZNOGZXPPOGZQUCZMGZNBFGZLIGZXQCALMGZNOGZAP
      OGZQUCZMGYCDXQYGXTYIYBMXQYFXSNOAXPLMUAUDXQYHYAQAXPPOUAUEUFUGXRYCPBFGZNIGZ
      YEMGYJYDMGZNLMGZIGYEXRXTYKYBYEMXRXTYJNFGZPIGZNOGZYNNOGZPNOGZIGZYKXRXSYONO
      XRXSXOHLMGZIGYOXRXOHLXRXOXREBEUBKXRUHRXRVFZUIUJZHSKZXRUKRZXRUMZULXRXOYNYT
      PIXRXOPNFGZBFGYNXREUUFBFEUUFJXRUUFEUNUOZRUDXRPNBPSKZXRUPRZNSKZXRUQRZBURZU
      STYTPJXRYTPLIGZLMGZPHUUMLMUTVAUUHUUNPJUPPVBVCVDRUFTUDXRYNSKUUHUUJNVEVGZVH
      YPYSJXRYJNXRYJXRPBPUBKXRVIRUUAUIUJZUUKVJUUIXRNNVKKXRVLRVMYNPNVNVOXRYQYJYR
      NIXRYJNUUPUUKUUOXRVPRVQYRNJXRVRRUFVSXRYBYDHPOGZIGZQUCZYEXRYAUURQXRYAXOPOG
      ZUUQIGZUURXRXOSKUUCUUHPVEVGZVHZYAUVAJUUBUUDUVCXRUUHUVBUPVTWARZXOHPVNVOXRU
      UTYDUUQIXRUUTEPOGZBFGZYDXRESKZBSKUVCUUTUVFJUVGXRWBRUULUVDEBPWCVOXRUVENBFU
      VENJXRUVEUUFPOGNEUUFPOUUGVANPUQUPVTWDVDRUDTUDTUEXRLPWEWFZUUSYEJZWGXRUVHYE
      LPOGZIGZQUCZYEJZUVIXRYEWHKLUBKZPWIKZUVHUVMWJXRYDXRYDXRNBNUBKXRWKRUUAUIZXC
      WLUVNXRWMRUVOXRXDRYELPWNVOXRUVLUUSYEXRUVKUURQXRUVKYDLUVJIGZIGUURXRYDLUVJX
      RNBUUKUULVJUUEXRPUUIUVBXRVTRWOWPXRUVQUUQYDIXRUUQUVQUUQUVQJXRUUQUUMPOGPPOG
      ZUVJIGUVQHUUMPOUTVAPLPUPWQUPVTWRUVRLUVJIPUPVTWSVAWTRXAXBTUEXNXEXFTUFXRYJN
      YDLUUPUUKXRYDUVPUJZUUEXGXRYLYDYMLIXRYLNYDFGZYDMGZYDXRYJUVTYDMXRYJNNFGZBFG
      UVTXRPUWBBFPUWBJXRUWBPXHUORUDXRNNBUUKUUKUULXITUDXRYDSKUWAYDJUVSYDXJXKTYML
      JXRXLRUFVSXM $.

    $( Lemma for ~ 2lgslem3d1 .  (Contributed by AV, 16-Jul-2021.) $)
    2lgslem3d $p |- ( ( K e. NN0 /\ P = ( ( 8 x. K ) + 7 ) )
                      -> N = ( ( 2 x. K ) + 2 ) ) $=
      ( c8 cmul co c7 caddc wceq wcel c1 cmin c2 cdiv c4 c3 c6 a1i cc cn0 oveq1
      cfl cfv oveq1d fveq2d oveq12d syl5eq 8nn0 nn0mulcld nn0cnd 7cn addsubassd
      1cnd 4t2e8 eqcomi 4cn 2cn nn0cn mul32d eqtrd df-7 oveq1i 6cn pncan1 ax-mp
      id eqtri cc0 wne wa 4nn0 mulcld crp rpcnne0d divdir syl3anc 2ne0 divcan4d
      2rp 3t2e6 3cn divcan4i 3eqtrd 4ne0 pm3.2i 8cn div23 divcan3i clt wbr 3lt4
      cz cn wb 2nn0 nn0zd peano2zd 3nn0 adddivflid divcld addassd 4p3e7 divdiri
      4nn dividi 3eqtri eqcomd oveq2d eqeq1d bitrd mpbii addsub4d 2t2e4 mulassd
      2txmxeqx syl 3m1e2 sylan9eqr ) AEBFGZHIGZJZBUAKZCYALMGZNOGZYAPOGZUCUDZMGZ
      NBFGZNIGZYBCALMGZNOGZAPOGZUCUDZMGYHDYBYLYEYNYGMYBYKYDNOAYALMUBUEYBYMYFUCA
      YAPOUBUFUGUHYCYHPBFGZQIGZYILIGZMGYOYIMGZQLMGZIGYJYCYEYPYGYQMYCYEYONFGZRIG
      ZNOGZYTNOGZRNOGZIGZYPYCYDUUANOYCYDXTHLMGZIGUUAYCXTHLYCXTYCEBEUAKYCUISYCVG
      ZUJUKZHTKZYCULSZYCUNZUMYCXTYTUUFRIYCXTPNFGZBFGYTYCEUULBFEUULJYCUULEUOUPZS
      UEYCPNBPTKZYCUQSZNTKZYCURSZBUSZUTVAUUFRJYCUUFRLIGZLMGZRHUUSLMVBVCRTKZUUTR
      JVDRVEVFVHSUGVAUEYCYTTKUVAUUPNVIVJZVKUUBUUEJYCYONYCYOYCPBPUAKYCVLSUUGUJUK
      ZUUQVMUVAYCVDSYCNNVNKYCVTSVOYTRNVPVQYCUUCYOUUDQIYCYONUVCUUQUVBYCVRSVSUUDQ
      JYCUUDQNFGZNOGQRUVDNOUVDRWAUPVCQNWBURVRWCVHSUGWDYCYGYIHPOGZIGZUCUDZYQYCYF
      UVFUCYCYFXTPOGZUVEIGZUVFYCXTTKUUIUUNPVIVJZVKZYFUVIJUUHUUJUVKYCUUNUVJUQWEW
      FSZXTHPVPVQYCUVHYIUVEIYCUVHEPOGZBFGZYIYCETKZBTKUVKUVHUVNJUVOYCWGSUURUVLEB
      PWHVQYCUVMNBFUVMNJYCUVMUULPOGNEUULPOUUMVCNPURUQWEWIVHSUEVAUEVAUFYCQPWJWKZ
      UVGYQJZWLYCUVPYQQPOGZIGZUCUDZYQJZUVQYCYQWMKQUAKZPWNKZUVPUWAWOYCYIYCYIYCNB
      NUAKYCWPSUUGUJZWQWRUWBYCWSSUWCYCXESYQQPWTVQYCUVTUVGYQYCUVSUVFUCYCUVSYILUV
      RIGZIGUVFYCYILUVRYCNBUUQUURVMUUKYCQPQTKYCWBSZUUOUVJYCWESXAXBYCUWEUVEYIIYC
      UVEUWEUVEUWEJYCUVEPQIGZPOGPPOGZUVRIGUWEHUWGPOUWGHXCUPVCPQPUQWBUQWEXDUWHLU
      VRIPUQWEXFVCXGSXHXIVAUFXJXKXLVAUGYCYOQYILUVCUWFYCYIUWDUKZUUKXMYCYRYIYSNIY
      CYRNYIFGZYIMGZYIYCYOUWJYIMYCYONNFGZBFGUWJYCPUWLBFPUWLJYCUWLPXNUPSUEYCNNBU
      UQUUQUURXOVAUEYCYITKUWKYIJUWIYIXPXQVAYSNJYCXRSUGWDXS $.

    $d N k $.  $d P k $.
    $( Lemma 1 for ~ 2lgslem3 .  (Contributed by AV, 15-Jul-2021.) $)
    2lgslem3a1 $p |- ( ( P e. NN /\ ( P mod 8 ) = 1 ) -> ( N mod 2 ) = 0 ) $=
      ( vk cn wcel c8 cmo co c1 wceq c2 cc0 cmul cn0 crp sylancl mulcomd oveq1d
      caddc cv wrex wi nnnn0 8nn nnrp ax-mp modmuladdnn0 wa simpr nn0cn 8cn a1i
      cc adantl eqeq2d biimpa 2lgslem3a syl2an2r oveq1 2cnd cz nn0z 2rp mulmod0
      eqtrd sylan9eqr ex rexlimdva syld imp ) AEFZAGHIJKZBLHIZMKZVLVMADUAZGNIZJ
      TIZKZDOUBZVOVLAOFGPFZVMVTUCAUDGEFWAUEGUFUGAJDGUHQVLVSVODOVLVPOFZUIZVSVOWC
      WBVSBLVPNIZKZVOVLWBUJZWCWBVSAGVPNIZJTIZKZWEWFWCVSWIWCVRWHAWCVQWGJTWBVQWGK
      VLWBVPGVPUKZGUNFWBULUMRUOSUPUQAVPBCURUSWEWBVNWDLHIZMBWDLHUTWBWKVPLNIZLHIZ
      MWBWDWLLHWBLVPWBVAWJRSWBVPVBFLPFWMMKVPVCVDVPLVEQVFVGUSVHVIVJVK $.

    $( Lemma 2 for ~ 2lgslem3 .  (Contributed by AV, 16-Jul-2021.) $)
    2lgslem3b1 $p |- ( ( P e. NN /\ ( P mod 8 ) = 3 ) -> ( N mod 2 ) = 1 ) $=
      ( vk cn wcel c8 cmo co c3 wceq c2 c1 cv cmul caddc cn0 a1i syl2an2r cz wi
      wrex crp nnnn0 8nn nnrp ax-mp modmuladdnn0 sylancl wa simpr nn0cn mulcomd
      cc 8cn adantl oveq1d eqeq2d biimpa 2lgslem3b oveq1 cdvds wbr nn0z 2tp1odd
      wn eqidd syl2anc wb 2z zmulcld peano2zd mod2eq1n2dvds mpbird sylan9eqr ex
      syl rexlimdva syld imp ) AEFZAGHIJKZBLHIZMKZWAWBADNZGOIZJPIZKZDQUBZWDWAAQ
      FGUCFZWBWIUAAUDGEFWJUEGUFUGAJDGUHUIWAWHWDDQWAWEQFZUJZWHWDWLWKWHBLWEOIZMPI
      ZKZWDWAWKUKZWLWKWHAGWEOIZJPIZKZWOWPWLWHWSWLWGWRAWLWFWQJPWKWFWQKWAWKWEGWEU
      LGUNFWKUORUMUPUQURUSAWEBCUTSWOWKWCWNLHIZMBWNLHVAWKWTMKZLWNVBVCVFZWKWETFWN
      WNKXBWEVDZWKWNVGWEWNVEVHWKWNTFXAXBVIWKWMWKLWELTFWKVJRXCVKVLWNVMVQVNVOSVPV
      RVSVT $.

    $( Lemma 3 for ~ 2lgslem3 .  (Contributed by AV, 16-Jul-2021.) $)
    2lgslem3c1 $p |- ( ( P e. NN /\ ( P mod 8 ) = 5 ) -> ( N mod 2 ) = 1 ) $=
      ( vk cn wcel c8 cmo co c5 wceq c2 c1 cv cmul caddc cn0 a1i syl2an2r cz wi
      wrex crp nnnn0 8nn nnrp ax-mp modmuladdnn0 sylancl wa simpr nn0cn mulcomd
      cc 8cn adantl oveq1d eqeq2d biimpa 2lgslem3c oveq1 cdvds wbr nn0z 2tp1odd
      wn eqidd syl2anc wb 2z zmulcld peano2zd mod2eq1n2dvds mpbird sylan9eqr ex
      syl rexlimdva syld imp ) AEFZAGHIJKZBLHIZMKZWAWBADNZGOIZJPIZKZDQUBZWDWAAQ
      FGUCFZWBWIUAAUDGEFWJUEGUFUGAJDGUHUIWAWHWDDQWAWEQFZUJZWHWDWLWKWHBLWEOIZMPI
      ZKZWDWAWKUKZWLWKWHAGWEOIZJPIZKZWOWPWLWHWSWLWGWRAWLWFWQJPWKWFWQKWAWKWEGWEU
      LGUNFWKUORUMUPUQURUSAWEBCUTSWOWKWCWNLHIZMBWNLHVAWKWTMKZLWNVBVCVFZWKWETFWN
      WNKXBWEVDZWKWNVGWEWNVEVHWKWNTFXAXBVIWKWMWKLWELTFWKVJRXCVKVLWNVMVQVNVOSVPV
      RVSVT $.

    $( Lemma 4 for ~ 2lgslem3 .  (Contributed by AV, 15-Jul-2021.) $)
    2lgslem3d1 $p |- ( ( P e. NN /\ ( P mod 8 ) = 7 ) -> ( N mod 2 ) = 0 ) $=
      ( vk cn wcel c8 cmo co c7 wceq c2 cc0 cmul caddc cn0 crp sylancl cc c1 cv
      wrex wi nnnn0 8nn nnrp ax-mp modmuladdnn0 wa simpr 8cn a1i mulcomd adantl
      nn0cn oveq1d eqeq2d biimpa 2lgslem3d syl2an2r oveq1 2t1e2 eqcomi 2cnd w3a
      oveq2d 1cnd adddi eqcomd syl3anc addcld 3eqtrd cz peano2nn0 nn0zd mulmod0
      2rp eqtrd sylan9eqr ex rexlimdva syld imp ) AEFZAGHIJKZBLHIZMKZWDWEADUAZG
      NIZJOIZKZDPUBZWGWDAPFGQFZWEWLUCAUDGEFWMUEGUFUGAJDGUHRWDWKWGDPWDWHPFZUIZWK
      WGWOWNWKBLWHNIZLOIZKZWGWDWNUJZWOWNWKAGWHNIZJOIZKZWRWSWOWKXBWOWJXAAWOWIWTJ
      OWNWIWTKWDWNWHGWHUOZGSFWNUKULUMUNUPUQURAWHBCUSUTWRWNWFWQLHIZMBWQLHVAWNXDW
      HTOIZLNIZLHIZMWNWQXFLHWNWQWPLTNIZOIZLXENIZXFWNLXHWPOLXHKWNXHLVBVCULVFWNLS
      FZWHSFZTSFZXIXJKWNVDZXCWNVGZXKXLXMVEXJXILWHTVHVIVJWNLXEXNWNWHTXCXOVKUMVLU
      PWNXEVMFLQFXGMKWNXEWHVNVOVQXELVPRVRVSUTVTWAWBWC $.

    $( Lemma 3 for ~ 2lgs .  (Contributed by AV, 16-Jul-2021.) $)
    2lgslem3 $p |- ( ( P e. NN /\ -. 2 || P )
                  -> ( N mod 2 ) = if ( ( P mod 8 ) e. { 1 , 7 } , 0 , 1 ) ) $=
      ( cmo c1 c7 c3 c5 wcel wn wa cc0 wceq wo expcom jaoi ltneii eqeq1 notbid
      wi c8 co cpr cun cn c2 cdvds wbr cif nnz lgsdir2lem3 sylan elun ovex elpr
      cz 2lgslem3a1 a1d 2lgslem3d1 sylbi imp iftrue adantr eqtr4d ex 2lgslem3b1
      impd 2lgslem3c1 1re 1lt3 nesymi 3lt7 neii pm3.2i anbi12d mpbiri 1lt5 5lt7
      3re 5re ioran xchnxbir sylibr iffalsed expimpd mpcom ) AUADUBZEFUCZGHUCZU
      DIZAUEIZUFAUGUHJZKZBUFDUBZWGWHIZLEUIZMZWKAUPIWLWJAUJAUKULWJWOWGWIIZNWMWQT
      ZWGWHWIUMWOWSWRWOWMWQWOWMKWNLWPWOWMWNLMZWOWGEMZWGFMZNZWMWTTZWGEFAUADUNZUO
      ZXAXDXBXAWKWLWTWKXAWLWTTZWKXAKWTWLABCUQUROVGXBWKWLWTWKXBXGWKXBKWTWLABCUSU
      ROVGPUTVAWOWPLMWMWOLEVBVCVDVEWRWGGMZWGHMZNZWSWGGHXEUOXJWKWLWQXJWKKZWQWLXK
      WNEWPXJWKWNEMZXHWKXLTXIWKXHXLABCVFOWKXIXLABCVHOPVAXKWOLEXKXAJZXBJZKZWOJXJ
      XOWKXHXOXIXHXOGEMZJZGFMZJZKXQXSEGEGVIVJQVKGFGFVSVLQVMVNXHXMXQXNXSXHXAXPWG
      GERSXHXBXRWGGFRSVOVPXIXOHEMZJZHFMZJZKYAYCEHEHVIVQQVKHFHFVTVRQVMVNXIXMYAXN
      YCXIXAXTWGHERSXIXBYBWGHFRSVOVPPVCXCXOWOXAXBWAXFWBWCWDVDURWEUTPUTWF $.
  $}

  $( The Legendre symbol for ` 2 ` at ` 2 ` is ` 0 ` .  (Contributed by AV,
     20-Jun-2021.) $)
  2lgs2 $p |- ( 2 /L 2 ) = 0 $=
    ( c2 clgs co cdvds wbr cc0 c8 cmo c1 c7 cpr wcel cneg cz wceq 2z lgs2 ax-mp
    cif iddvds iftruei eqtri ) AABCZAADEZFAGHCIJKLIIMSZSZFANLZUCUFOPAQRUDFUEUGU
    DPATRUAUB $.

  $( Lemma 4 for ~ 2lgs : special case of ~ 2lgs for ` P = 2 ` .  (Contributed
     by AV, 20-Jun-2021.) $)
  2lgslem4 $p |- ( ( 2 /L 2 ) = 1 <-> ( 2 mod 8 ) e. { 1 , 7 } ) $=
    ( c2 clgs co c1 wceq cc0 c7 wo c8 cmo cpr wcel eqeq1i 0ne1 neii 1ne2 nesymi
    2lgs2 2re wbr 2lt7 ltneii pm3.2ni 2false cr crp cle clt 8nn nnrp ax-mp 0le2
    cn 2lt8 modid mp4an eleq1i 2ex elpr bitr2i 3bitri ) AABCZDEFDEZADEZAGEZHZAI
    JCZDGKZLZVBFDRMVCVFFDNOVDVEDAPQAGAGSUAUBOUCUDVIAVHLVFVGAVHAUELIUFLZFAUGTAIU
    HTVGAESIUMLVJUIIUJUKULUNAIUOUPUQADGURUSUTVA $.

  ${
    $d P i x y $.
    $( The second supplement to the law of quadratic reciprocity (for the
       Legendre symbol extended to arbitrary primes as second argument).  Two
       is a square modulo a prime ` P ` iff ` P == +- 1 ` (mod ` 8 ` ), see
       first case of theorem 9.5 in [ApostolNT] p. 181.  This theorem justifies
       our definition of ` ( N /L 2 ) ` ( ~ lgs2 ) to some degree, by demanding
       that reciprocity extend to the case ` Q = 2 ` .  (Proposed by Mario
       Carneiro, 19-Jun-2015.)  (Contributed by AV, 16-Jul-2021.) $)
    2lgs $p |- ( P e. Prime -> ( ( 2 /L P ) = 1
                                 <-> ( P mod 8 ) e. { 1 , 7 } ) ) $=
      ( vx vi vy c2 wceq cdvds wbr wn cprime wcel clgs co c1 c8 cmo eqeq1d eqid
      wb cc0 wo c7 cpr prm2orodd wi 2lgslem4 a1i oveq2 oveq1 eleq1d 3bitr4d a1d
      wa cneg cmin cdiv c4 cfl cfv cexp cz cv cmul clt cfz wrex crab chash 2prm
      cn prmnn dvdsprime sylancr z2even breq2 mpbiri eleq1 1nprm pm2.21i syl6bi
      jaoi com12 sylbid con3dimp 2z jctil 2lgslem1 eqcomd w3a cif cmpt csn cdif
      nnoddn2prmb 3ad2ant1 gausslemma2d mpd3an23 2lgslem2 syl dvdsval3 2lgslem3
      biimpri m1exp1 2nn sylan ax-1 iffalse wne ax-1ne0 eqneqall pm2.61i iftrue
      mpi impbii 3bitrd expcom mpcom ) AEFZEAGHZIZUAAJKZEALMZNFZAOPMZNUBUCZKZSZ
      AUDXRYAYGUEXTXRYGYAXREELMZNFZEOPMZYEKZYCYFYIYKSXRUFUGXRYBYHNAEELUHQXRYDYJ
      YEAEOPUIUJUKULYAXTYGYAXTUMZYCNUNANUOMEUPMZAUQUPMURUSZUOMZUTMZNFZEYOGHZYFY
      LEVAKZAEGHZIZUMZYOBVBZCVBEVCMFAEUPMZUUCAPMVDHUMCNYMVEMZVFBVAVGVHUSZFZYCYQ
      SYLUUAYSYAYTXSYAYTXRANFZUAZXSYAEJKAVJKZYTUUISVIAVKZEAVLVMUUIYAXSXRYAXSUEU
      UHXRXSYAXRXSEEGHVNAEEGVOVPULUUHYANJKZXSANJVQUULXSVRVSVTWAWBWCWDWEWFYLUUFY
      OBACWGWHYLUUBUUGWIZYBYPNUUMDADUUEDVBEVCMZUUDVDHUUNAUUNUOMWJWKZYMYNYOYLUUB
      AJEWLWMKZUUGUUPYLAWNXBWOYMRUUORYNRYORZWPQWQYLYOVAKZYQYRSAYOUUQWRZYOXCWSYL
      YRYOEPMZTFZYFTNWJZTFZYFYLEVJKUURYRUVASXDUUSEYOWTVMYLUUTUVBTYAUUJXTUUTUVBF
      UUKAYOUUQXAXEQUVCYFSYLUVCYFYFUVCYFUEYFUVCXFYFIZUVCNTFZYFUVDUVBNTYFTNXGQUV
      ENTXHYFXIYFNTXJXMVTXKYFTNXLXNUGXOXOXPWAXQ $.
  $}

  $( Lemma 1 for ~ 2lgsoddprm .  (Contributed by AV, 19-Jul-2021.) $)
  2lgsoddprmlem1 $p |- ( ( A e. ZZ /\ B e. ZZ /\ N = ( ( 8 x. A ) + B ) )
            -> ( ( ( N ^ 2 ) - 1 ) / 8 ) = ( ( ( 8 x. ( A ^ 2 ) )
                                               + ( 2 x. ( A x. B ) ) )
                                             + ( ( ( B ^ 2 ) - 1 ) / 8 ) ) ) $=
    ( cz wcel c8 cmul co caddc wceq w3a c2 cexp c1 cmin cdiv oveq1d wa cc zcn
    oveq1 3ad2ant3 cc0 wne adantr adantl 1cnd 8cn 8pos gt0ne0ii mulsubdivbinom2
    8re pm3.2i a1i syl31anc 3adant3 eqtrd ) ADEZBDEZCFAGHBIHZJZKZCLMHZNOHZFPHUT
    LMHZNOHZFPHZFALMHGHLABGHGHIHBLMHNOHFPHIHZVBVDVFFPVBVCVENOVAURVCVEJUSCUTLMUA
    UBQQURUSVGVHJZVAURUSRZASEZBSEZNSEFSEZFUCUDZRZVIURVKUSATUEUSVLURBTUFVJUGVOVJ
    VMVNUHFULUIUJUMUNABFNUKUOUPUQ $.

  ${
    $d N k $.  $d R k $.
    $( Lemma 2 for ~ 2lgsoddprm .  (Contributed by AV, 19-Jul-2021.) $)
    2lgsoddprmlem2 $p |- ( ( N e. ZZ /\ -. 2 || N /\ R = ( N mod 8 ) )
                           -> ( 2 || ( ( ( N ^ 2 ) - 1 ) / 8 )
                                <-> 2 || ( ( ( R ^ 2 ) - 1 ) / 8 ) ) ) $=
      ( cz wcel c2 cdvds wbr c8 co wceq cmul caddc wb wa cc a1i adantr cr syl
      c4 vk wn cmo w3a cv wrex cexp c1 cmin cdiv crp wi cn 8nn nnrp ax-mp eqcom
      modmuladdim syl5bi mpan2 imp 3adant2 zcn 8cn mulcomd adantl oveq1d eqeq2d
      simpr zmodcld nn0zd 3ad2ant1 eleq1 3ad2ant3 mpbird 2lgsoddprmlem1 syl3anc
      id breq2d 2z simp1 nn0red resqcl peano2rem 8re cc0 8pos gt0ne0ii redivcld
      wne cn0 nn0z nnzi zsqcl zmulcld zmulcl ancoms zaddcld 4z jca dvdsmul1 4cn
      4t2e8 2cn mulcomi eqtr3i mulassd eqtrd adddid eqtr4d breqtrrd dvdsaddre2b
      zcnd ex mp3an2ani bitr4d sylbid rexlimdva mpd ) BCDZEBFGUBZABHUCIZJZUDZBU
      AUEZHKIZALIZJZUACUFZEBEUGIUHUIIHUJIZFGZEAEUGIZUHUIIZHUJIZFGZMZXTYCYIYAXTY
      CYIXTHUKDZYCYIULHUMDZYQUNHUOUPYCYBAJXTYQNYIAYBUQBAUAHURUSUTVAVBYDYHYPUACY
      DYECDZNZYHBHYEKIZALIZJZYPYTYGUUBBYTYFUUAALYSYFUUAJYDYSYEHYEVCHODYSVDPVEVF
      VGVHYTUUCYPYTUUCNZYKEHYEEUGIZKIZEYEAKIZKIZLIZYNLIZFGZYOUUDYJUUJEFUUDYSACD
      ZUUCYJUUJJYTYSUUCYDYSVIQYTUULUUCYDUULYSYDUULYBCDZXTYAUUMYCXTYBXTBHXTVRYRX
      TUNPVJVKVLYCXTUULUUMMYAAYBCVMVNVOQQYTUUCVIYEABVPVQVSECDZYTYNRDZUUCUUICDZE
      UUIFGZNZYOUUKMVTYDUUOYSYDARDZUUOYDUUSYBRDZYDYBYDBHXTYAYCWAYRYDUNPVJZWBYCX
      TUUSUUTMYAAYBRVMVNVOUUSYMHUUSYLRDYMRDAWCYLWDSHRDUUSWEPHWFWJUUSHWEWGWHPWIS
      QYTUURUUCYDYSUURYDAWKDZYSUURULZYDUVBYBWKDZUVAYCXTUVBUVDMYAAYBWKVMVNVOUVBU
      ULUVCAWLUULYSUURUULYSNZUUPUUQUVEUUFUUHUVEHUUEHCDUVEHUNWMPYSUUECDUULYEWNZV
      FZWOUVEEUUGUUNUVEVTPZYSUULUUGCDYEAWPZWQZWOWRUVEEETUUEKIZUUGLIZKIZUUIFUVEU
      UNUVLCDZNEUVMFGUVEUUNUVNUVHUVEUVKUUGUVETUUETCDUVEWSPUVGWOZUVJWRWTEUVLXASU
      VEUUIEUVKKIZUUHLIUVMUVEUUFUVPUUHLUVEUUFETKIZUUEKIUVPUVEHUVQUUEKHUVQJUVETE
      KIHUVQXCTEXBXDXEXFPVGUVEETUUEEODUVEXDPZTODUVEXBPYSUUEODUULYSUUEUVFXMVFXGX
      HVGUVEEUVKUUGUVRUVEUVKUVOXMYSUULUUGODYSUULNUUGUVIXMWQXIXJXKWTXNSSVAQEYNUU
      IXLXOXPXNXQXRXS $.
  $}

  $( Lemma 1 for ~ 2lgsoddprmlem3 .  (Contributed by AV, 20-Jul-2021.) $)
  2lgsoddprmlem3a $p |- ( ( ( 1 ^ 2 ) - 1 ) / 8 ) = 0 $=
    ( c1 c2 cexp co cmin c8 cdiv cc0 sq1 oveq1i 1m1e0 eqtri 8cn 0re 8pos gtneii
    div0i ) ABCDZAEDZFGDHFGDHSHFGSAAEDHRAAEIJKLJFMHFNOPQL $.

  $( Lemma 2 for ~ 2lgsoddprmlem3 .  (Contributed by AV, 20-Jul-2021.) $)
  2lgsoddprmlem3b $p |- ( ( ( 3 ^ 2 ) - 1 ) / 8 ) = 1 $=
    ( c3 c2 cexp co c1 cmin c8 cdiv c9 sq3 oveq1i 8cn ax-1cn mvrraddi eqtri cc0
    df-9 0re 8pos gtneii dividi ) ABCDZEFDZGHDGGHDEUCGGHUCIEFDGUBIEFJKIGELMQNOK
    GLPGRSTUAO $.

  $( Lemma 3 for ~ 2lgsoddprmlem3 .  (Contributed by AV, 20-Jul-2021.) $)
  2lgsoddprmlem3c $p |- ( ( ( 5 ^ 2 ) - 1 ) / 8 ) = 3 $=
    ( c5 c2 cexp co c1 cmin c8 cdiv c3 cmul caddc df-5 oveq1i 4cn eqtri 3cn 8cn
    c4 ax-1cn 2cn wcel wceq binom21 ax-mp mulcli sq4e2t8 4t2e8 mulid2i mulcomli
    eqtr4i oveq12i adddiri 2p1e3 3eqtr2i mvrraddi cc0 0re 8pos gtneii divcan4i
    cc ) ABCDZEFDZGHDIGJDZGHDIVCVDGHVCRBCDZBRJDZKDZEKDZEFDVDVBVHEFVBREKDZBCDZVH
    AVIBCLMRVAUAVJVHUBNRUCUDOMVHVDEIGPQUESVGVDEKVGBGJDZEGJDZKDBEKDZGJDVDVEVKVFV
    LKUFRBVLNTRBJDGVLUGGQUHUJUIUKBEGTSQULVMIGJUMMUNMUOOMIGPQUPGUQURUSUTO $.

  $( Lemma 4 for ~ 2lgsoddprmlem3 .  (Contributed by AV, 20-Jul-2021.) $)
  2lgsoddprmlem3d $p |- ( ( ( 7 ^ 2 ) - 1 ) / 8 ) = ( 2 x. 3 ) $=
    ( c6 c8 cmul co cdiv c7 c2 cexp c1 c3 6cn 8cn c4 caddc oveq1i 4cn 3cn eqtri
    c5 2cn cmin cc0 0re 8pos gtneii divcan4i mulcli ax-1cn 4p3e7 eqcomi binom2i
    sq4e2t8 4t2e8 mulcomli mulassi mulcomi 3eqtr3i oveq12i adddiri addcomli sq3
    3p2e5 3eqtr2i c9 df-9 5cn addassi df-6 cc wcel a1i adddirp1d ax-mp mvrraddi
    wceq id 3t2e6 3eqtr4i ) ABCDZBEDAFGHDZIUADZBEDGJCDABKLUBBUCUDUEUFWAVSBEVTVS
    IABKLUGUHVTMJNDZGHDZVSINDZFWBGHWBFUIUJOWCMGHDZGMJCDCDZNDZJGHDZNDZWDMJPQUKWI
    SBCDZBINDZNDWJBNDZINDWDWGWJWHWKNWGGBCDZJBCDZNDGJNDZBCDWJWEWMWFWNNULGMCDZJCD
    BJCDWFWNWPBJCMGBPTUMUNOGMJTPQUOBJLQUPUQURGJBTQLUSWOSBCJGSQTVBUTOVCWHVDWKVAV
    ERURWJBISBVFLUGLUHVGWLVSINVSWLVSSINDZBCDZWLAWQBCVHOBVIVJZWRWLVOLWSSBSVIVJWS
    VFVKWSVPVLVMRUJOVCRRVNOJGAQTVQUNVR $.

  $( Lemma 3 for ~ 2lgsoddprm .  (Contributed by AV, 20-Jul-2021.) $)
  2lgsoddprmlem3 $p |- ( ( N e. ZZ /\ -. 2 || N /\ R = ( N mod 8 ) )
                  -> ( 2 || ( ( ( R ^ 2 ) - 1 ) / 8 ) <-> R e. { 1 , 7 } ) ) $=
    ( cz wcel c2 cdvds wbr c8 co wceq cexp c1 cmin cdiv c7 c3 c5 oveq1 oveq1d
    wo wn cmo cpr wb wa cun lgsdir2lem3 eleq1 eqcoms elun elpri 2lgsoddprmlem3b
    wi syl6eq breq2d n2dvds1 pm2.21i syl6bi 2lgsoddprmlem3c breq2i n2dvds3 jaoi
    syl6bb syl jao1i sylbi z0even 2lgsoddprmlem3a syl5breqr cmul 2z 3z dvdsmul1
    cc0 mp2an 2lgsoddprmlem3d impbid1 syl5com 3impia ) BCDZEBFGUAZABHUBIZJZEAEK
    IZLMIZHNIZFGZALOUCZDZUDZVTWAUEWBWHPQUCZUFZDZWCWJBUGWCWMAWLDZWJWMWNUDWBAWBAW
    LUHUIWNWGWIWNWIAWKDZTWGWIUMZAWHWKUJWIWOWGWOAPJZAQJZTWPAPQUKWQWPWRWQWGELFGZW
    IWQWFLEFWQWFPEKIZLMIZHNILWQWEXAHNWQWDWTLMAPEKRSSULUNUOWSWIUPUQURWRWGEPFGZWI
    WRWGEQEKIZLMIZHNIZFGXBWRWFXEEFWRWEXDHNWRWDXCLMAQEKRSSUOXEPEFUSUTVCXBWIVAUQU
    RVBVDVEVFWIALJZAOJZTWGALOUKXFWGXGXFEVNWFFVGXFWFLEKIZLMIZHNIVNXFWEXIHNXFWDXH
    LMALEKRSSVHUNVIXGEEPVJIZWFFECDPCDEXJFGVKVLEPVMVOXGWFOEKIZLMIZHNIXJXGWEXLHNX
    GWDXKLMAOEKRSSVPUNVIVBVDVQURVRVS $.

  $( Lemma 4 for ~ 2lgsoddprm .  (Contributed by AV, 20-Jul-2021.) $)
  2lgsoddprmlem4 $p |- ( ( N e. ZZ /\ -. 2 || N )
                         -> ( 2 || ( ( ( N ^ 2 ) - 1 ) / 8 )
                              <-> ( N mod 8 ) e. { 1 , 7 } ) ) $=
    ( cz wcel c2 cdvds wbr wn wa cexp co c1 cmin c8 cdiv cmo c7 wceq wb mpd3an3
    cpr eqidd 2lgsoddprmlem2 2lgsoddprmlem3 bitrd ) ABCZDAEFGZHZDADIJKLJMNJEFZD
    AMOJZDIJKLJMNJEFZUIKPTCZUEUFUIUIQZUHUJRUGUIUAZUIAUBSUEUFULUJUKRUMUIAUCSUD
    $.

  $( The second supplement to the law of quadratic reciprocity for odd primes
     (common representation, see theorem 9.5 in [ApostolNT] p. 181):  The
     Legendre symbol for ` 2 ` at an odd prime is minus one to the power of the
     square of the odd prime minus one divided by eight ( ` ( 2 /L P ) ` =
     -1^(((P^2)-1)/8) ).  (Contributed by AV, 20-Jul-2021.) $)
  2lgsoddprm $p |- ( P e. ( Prime \ { 2 } )
                     -> ( 2 /L P ) = ( -u 1 ^ ( ( ( P ^ 2 ) - 1 ) / 8 ) ) ) $=
    ( c2 clgs co c1 wceq c8 wcel wb cprime cexp syl wi wa simpl cc0 sylancr wne
    cz wn cmo c7 cpr csn cdif cneg cmin cdiv eldifi 2lgs cdvds wbr eqcom a1i cn
    nnoddn2prm anim1i sqoddm1div8z m1exp1 2lgsoddprmlem4 3bitrd biimparc adantl
    nnz eqtrd exp32 ctp 2z prmz lgscl1 ovex eltp notbid biimpar m1expo syl2an2r
    w3o eqcomd a1d cgcd eldifsn simpr necomd sylbi prmrp mpbird lgsne0 eqneqall
    2prm syl5 pm2.24 2a1d 3jaoi mpcom com13 bija ) BACDZEFZAGUADEUBUCHZIZAJBUDZ
    UEHZWQEUFZABKDEUGDGUHDZKDZFZXBAJHZWTAJXAUIZAUJLWRWSXBXFMWRWSXBXFWRWSXBNZNWQ
    EXEWRXIOXIEXEFZWRXBXJWSXBXJXEEFZBXDUKULZWSXJXKIXBEXEUMUNXBXDSHZXKXLIXBASHZB
    AUKULTZNZXMXBAUOHZXONXPAUPXQXNXOAVDUQLZAURLZXDUSLXBXPXLWSIXRAUTLZVAVBVCVEVF
    XBWSTZWRTZXFWQXCPEVGHZXBYAYBXFMZMZXBBSHZXNYCVHXBXGXNXHAVILZBAVJQYCWQXCFZWQP
    FZWRVQXBYEMZWQXCPEBACVKVLYHYJYIWRYHXBYAYDYHXBYANZNZXFYBYLWQXCXEYHYKOYKXCXEF
    YHYKXEXCXBXMYAXLTZXEXCFXSXBYMYAXBXLWSXTVMVNXDVOVPVRVCVEVSVFXBWQPRZYIYEXBYNB
    AVTDEFZXBYOBARZXBXGABRZNZYPAJBWAYRABXGYQWBWCWDXBBJHXGYOYPIWIXHBAWEQWFXBYFXN
    YNYOIVHYGBAWGQWFYEWQPWHWJWRYDXBYAWRXFWKWLWMWDWNWOWPWN $.

  $(
  @( The second supplement to the law of quadratic reciprocity for arbitrary
     odd positive integers (theorem 9.10(8) in [ApostolNT] p. 188: The
     (extended) Legendre symbol (i.e the Jacobi symbol) for ` 2 ` and an odd
     positive integer is minus one to the power of the square of the odd number
     minus one divided by eight (` ( 2 /L N ) ` = -1^(((N^2)-1)/8) ).
     (Contributed by AV, 20-Jul-2021.) @)
  2lgsoddnn @p |- ( N e. NN /\ -. 2 || N )
                     -> ( 2 /L N ) = ( -u 1 ^ ( ( ( N ^ 2 ) - 1 ) / 8 ) ) ) @=
      ? @.
  $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  All primes 4n+1 are the sum of two squares
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d a b n p q w x y z $.  $d a m x y z A $.  $d x C $.  $d p q u v x y ph $.
    $d a b m p x y B $.  $d a b p u v x y z M $.  $d a b m n p q u v x y z S $.
    $d x D $.  $d a p x y z E $.  $d p q u v x y z N $.  $d a b m n x y Y $.
    $d a p x y z F $.  $d n p q x y P $.
    2sq.1 $e |- S = ran ( w e. Z[i] |-> ( ( abs ` w ) ^ 2 ) ) $.
    $( Lemma for ~ 2sq .  (Contributed by Mario Carneiro, 19-Jun-2015.) $)
    2sqlem1 $p |- ( A e. S <-> E. x e. Z[i] A = ( ( abs ` x ) ^ 2 ) ) $=
      ( wcel cgz cv cabs cfv c2 cexp co cmpt crn wceq wrex eleq2i fveq2 oveq1d
      cbvmptv ovex elrnmpti bitri ) CDFCBGBHZIJZKLMZNZOZFCAHZIJZKLMZPAGQDUICERA
      GULCUHBAGUGULUEUJPUFUKKLUEUJISTUAUKKLUBUCUD $.

    $( Lemma for ~ 2sq .  (Contributed by Mario Carneiro, 19-Jun-2015.) $)
    2sqlem2 $p |- ( A e. S <-> E. x e. ZZ E. y e. ZZ
      A = ( ( x ^ 2 ) + ( y ^ 2 ) ) ) $=
      ( vz wcel cv c2 cexp co caddc wceq cz wrex cfv cgz cc oveq1d cabs 2sqlem1
      cre cim elgz simp2bi simp3bi gzcn absvalsq2d oveq1 eqeq2d rspc2ev syl3anc
      oveq2d eqeq1 2rexbidv syl5ibrcom rexlimiv sylbi wa cmul gzreim zcn ax-icn
      ci mulcl sylancr addcl syl2an zre crre crim oveq12d eqtr2d rspcev syl2anc
      cr fveq2 sylibr eleq1 rexlimivv impbii ) DEHZDAIZJKLZBIZJKLZMLZNZBOPAOPZW
      CDGIZUAQZJKLZNZGRPWJGCDEFUBWNWJGRWKRHZWJWNWMWHNZBOPAOPZWOWKUCQZOHZWKUDQZO
      HZWMWRJKLZWTJKLZMLZNZWQWOWKSHZWSXAWKUEZUFWOXFWSXAXGUGWOWKWKUHUIWPXEWMXBWG
      MLZNABWRWTOOWDWRNZWHXHWMXIWEXBWGMWDWRJKUJTUKWFWTNZXHXDWMXJWGXCXBMWFWTJKUJ
      UNUKULUMWNWIWPABOODWMWHUOUPUQURUSWIWCABOOWDOHZWFOHZUTZWCWIWHEHZXMWHWMNZGR
      PZXNXMWDVEWFVALZMLZRHWHXRUAQZJKLZNZXPWDWFVBXMXTXRUCQZJKLZXRUDQZJKLZMLWHXM
      XRXKWDSHXQSHZXRSHXLWDVCXLVESHWFSHYFVDWFVCVEWFVFVGWDXQVHVIUIXMYCWEYEWGMXMY
      BWDJKXKWDVQHZWFVQHZYBWDNXLWDVJZWFVJZWDWFVKVITXMYDWFJKXKYGYHYDWFNXLYIYJWDW
      FVLVITVMVNXOYAGXRRWKXRNZWMXTWHYKWLXSJKWKXRUAVRTUKVOVPGCWHEFUBVSDWHEVTUQWA
      WB $.

    $( Fibonacci's identity (actually due to Diophantus).  The product of two
       sums of two squares is also a sum of two squares.  We can take advantage
       of Gaussian integers here to trivialize the proof.  (Contributed by
       Mario Carneiro, 19-Jun-2015.) $)
    mul2sq $p |- ( ( A e. S /\ B e. S ) -> ( A x. B ) e. S ) $=
      ( vx vy vz wcel cv cabs cfv c2 cexp co wceq cgz wrex cmul cc 2sqlem1 gzcn
      reeanv absmul syl2an oveq1d abscld recnd sqmul eqtr2d fveq2 eqeq2d rspcev
      gzmulcl syl2anc sylibr oveq12 eleq1d syl5ibrcom rexlimivv sylbir syl2anb
      wa ) BDIBFJZKLZMNOZPZFQRZCGJZKLZMNOZPZGQRZBCSOZDIZCDIFABDEUAGACDEUAVHVMVC
      VGVLVCZGQRFQRVOVGVLFGQQUCVPVOFGQQVDQIZVIQIZVCZVOVPVFVKSOZDIZVSVTHJZKLZMNO
      ZPZHQRZWAVSVDVISOZQIVTWGKLZMNOZPZWFVDVIUNVSWIVEVJSOZMNOZVTVSWHWKMNVQVDTIV
      ITIWHWKPVRVDUBZVIUBZVDVIUDUEUFVQVETIVJTIWLVTPVRVQVEVQVDWMUGUHVRVJVRVIWNUG
      UHVEVJUIUEUJWEWJHWGQWBWGPZWDWIVTWOWCWHMNWBWGKUKUFULUMUOHAVTDEUAUPVPVNVTDB
      VFCVKSUQURUSUTVAVB $.

    ${
      2sqlem5.1 $e |- ( ph -> N e. NN ) $.
      2sqlem5.2 $e |- ( ph -> P e. Prime ) $.
      ${
        2sqlem4.3 $e |- ( ph -> A e. ZZ ) $.
        2sqlem4.4 $e |- ( ph -> B e. ZZ ) $.
        2sqlem4.5 $e |- ( ph -> C e. ZZ ) $.
        2sqlem4.6 $e |- ( ph -> D e. ZZ ) $.
        2sqlem4.7 $e |- ( ph -> ( N x. P ) = ( ( A ^ 2 ) + ( B ^ 2 ) ) ) $.
        2sqlem4.8 $e |- ( ph -> P = ( ( C ^ 2 ) + ( D ^ 2 ) ) ) $.
        ${
          2sqlem4.9 $e |- ( ph -> P || ( ( C x. B ) + ( A x. D ) ) ) $.
          $( Lemma for ~ 2sqlem5 .  (Contributed by Mario Carneiro,
             20-Jun-2015.) $)
          2sqlem3 $p |- ( ph -> N e. S ) $=
            ( co vx cv cabs cfv c2 cexp wceq cgz wrex wcel ci cmul caddc cc cre
            cdiv cz cim gzreim syl2anc gzmulcl syl cprime cn prmnn nncnd nnne0d
            gzcn divcld nnred redivd cdvds wbr prmz dvdsmul2 sqvald breqtrrd wa
            nnzd zsqcl wi zmulcld dvdstr syl3anc mp2and abscld recnd zred crred
            sqmuld oveq1d crimd oveq12d absvalsq2d 3eqtr4d mulassd absmuld elgz
            3eqtrd oveq2d simp2bi zcnd simp3bi addcomd eqtrd breqtrd wb mulcomd
            mulcld immuld 2nn a1i prmdvdsexp mpbird dvdsadd2b syl112anc cc0 wne
            mpbid eqeltrd imdivd syl3anbrc absdivd nnnn0d nn0ge0d absidd sqdivd
            dvdsval2 nnsqcld divcan4d 3eqtrrd eqeq2d rspcev 2sqlem1 sylibr
            fveq2 ) AIUAUBZUCUDZUEUFTZUGZUAUHUIZIHUJACUKDULTUMTZEUKFULTUMTZULTZ
            GUPTZUHUJZIUUEUCUDZUEUFTZUGZUUAAUUEUNUJUUEUOUDZUQUJUUEURUDZUQUJUUFA
            UUDGAUUDUHUJZUUDUNUJZAUUBUHUJZUUCUHUJZUULACUQUJDUQUJUUNMNCDUSUTZAEU
            QUJFUQUJUUOOPEFUSUTZUUBUUCVAUTZUUDVHVBZAGAGVCUJZGVDUJLGVEVBZVFZAGUV
            AVGZVIAUUJUUDUOUDZGUPTZUQAGUUDAGUVAVJZUUSUVCVKAGUVDVLVMZUVEUQUJZAGU
            VDUEUFTZVLVMZUVGAUVJGUUDURUDZUEUFTZUVIUMTZVLVMZAGUUDUCUDZUEUFTZUVMV
            LAGIGUEUFTZULTZUVPVLAGUVQVLVMZUVQUVRVLVMZGUVRVLVMZAGGGULTZUVQVLAGUQ
            UJZUWCGUWBVLVMAUUTUWCLGVNVBZUWDGGVOUTAGUVBVPZVQAIUQUJUVQUQUJZUVTAIK
            VSZAUWCUWFUWDGVTVBZIUVQVOUTAUWCUWFUVRUQUJUVSUVTVRUWAWAUWDUWHAIUVQUW
            GUWHWBGUVQUVRWCWDWEAUUBUCUDZUUCUCUDZULTZUEUFTZIUWBULTZUVPUVRAUWLUWI
            UEUFTZUWJUEUFTZULTIGULTZGULTUWMAUWIUWJAUWIAUUBAUUNUUBUNUJUUPUUBVHVB
            ZWFWGAUWJAUUCAUUOUUCUNUJUUQUUCVHVBZWFWGWJAUWNUWPUWOGULAUUBUOUDZUEUF
            TZUUBURUDZUEUFTZUMTCUEUFTZDUEUFTZUMTUWNUWPAUWTUXCUXBUXDUMAUWSCUEUFA
            CDACMWHZADNWHZWIZWKAUXADUEUFACDUXEUXFWLZWKWMAUUBUWQWNQWOAUUCUOUDZUE
            UFTZUUCURUDZUEUFTZUMTEUEUFTZFUEUFTZUMTUWOGAUXJUXMUXLUXNUMAUXIEUEUFA
            EFAEOWHZAFPWHZWIZWKAUXKFUEUFAEFUXOUXPWLZWKWMAUUCUWRWNRWOWMAIGGAIKVF
            ZUVBUVBWPWSAUVOUWKUEUFAUUBUUCUWQUWRWQWKAUVQUWBIULUWEWTWOZVQAUVPUVIU
            VLUMTUVMAUUDUUSWNAUVIUVLAUVIAUVDUQUJZUVIUQUJZAUULUYAUURUULUUMUYAUVK
            UQUJZUUDWRZXAVBZUVDVTVBZXBAUVLAUYCUVLUQUJZAUULUYCUURUULUUMUYAUYCUYD
            XCVBZUVKVTVBZXBXDXEXFAUWCUYBUYGGUVLVLVMZUVJUVNXGUWDUYFUYIAUYJGUVKVL
            VMZAGCFULTZDEULTZUMTZUVKVLAGEDULTZUYLUMTZUYNVLSAUYPUYLUYOUMTUYNAUYO
            UYLAEDAEOXBZADNXBZXIACFACMXBAFPXBXIXDAUYOUYMUYLUMAEDUYQUYRXHWTXEXFA
            UVKUWSUXKULTZUXAUXIULTZUMTUYNAUUBUUCUWQUWRXJAUYSUYLUYTUYMUMAUWSCUXK
            FULUXGUXRWMAUXADUXIEULUXHUXQWMWMXEVQZAUUTUYCUEVDUJZUYJUYKXGLUYHVUBA
            XKXLZUVKGUEXMWDXNGUVIUVLXOXPXNAUUTUYAVUBUVJUVGXGLUYEVUCUVDGUEXMWDXS
            AUWCGXQXRZUYAUVGUVHXGUWDUVCUYEGUVDYHWDXSXTAUUKUVKGUPTZUQAGUUDUVFUUS
            UVCYAAUYKVUEUQUJZVUAAUWCVUDUYCUYKVUFXGUWDUVCUYHGUVKYHWDXSXTUUEWRYBA
            UUHUVOGUPTZUEUFTUVPUVQUPTZIAUUGVUGUEUFAUUGUVOGUCUDZUPTVUGAUUDGUUSUV
            BUVCYCAVUIGUVOUPAGUVFAGAGUVAYDYEYFWTXEWKAUVOGAUVOAUUDUUSWFWGUVBUVCY
            GAVUHUVRUVQUPTIAUVPUVRUVQUPUXTWKAIUVQUXSAUVQAGUVAYIZVFAUVQVUJVGYJXE
            YKYTUUIUAUUEUHYQUUEUGZYSUUHIVUKYRUUGUEUFYQUUEUCYPWKYLYMUTUABIHJYNYO
            $.
        $}

        $( Lemma for ~ 2sqlem5 .  (Contributed by Mario Carneiro,
           20-Jun-2015.) $)
        2sqlem4 $p |- ( ph -> N e. S ) $=
          ( cmul co caddc cdvds wbr wcel cmin wa cn adantr cprime cz cexp simpr
          c2 wceq 2sqlem3 cneg znegcld cc zcnd sqneg syl oveq1d eqtr4d mulneg1d
          oveq2d zmulcld negsubd eqtrd breq2d biimpar wo zsqcl zsubcld dvdsmul1
          prmz syl2anc sqcld pnpcand sqmuld oveq12d adddid nncnd mulcomd eqtr3d
          mul12d adddird subdid subsq breqtrd wb zaddcld euclemma syl3anc mpbid
          nnzd mpjaodan ) AGEDSTZCFSTZUATZUBUCZIHUDGWQWRUETZUBUCZAWTUFBCDEFGHIJ
          AIUGUDZWTKUHAGUIUDZWTLUHACUJUDZWTMUHADUJUDZWTNUHAEUJUDZWTOUHAFUJUDZWT
          PUHAIGSTZCUMUKTZDUMUKTZUATZUNWTQUHAGEUMUKTZFUMUKTZUATZUNZWTRUHAWTULUO
          AXBUFBCUPZDEFGHIJAXCXBKUHAXDXBLUHAXQUJUDXBACMUQUHAXFXBNUHAXGXBOUHAXHX
          BPUHAXIXQUMUKTZXKUATZUNXBAXIXLXSQAXRXJXKUAACURUDXRXJUNACMUSZCUTVAVBVC
          UHAXPXBRUHAGWQXQFSTZUATZUBUCXBAYBXAGUBAYBWQWRUPZUATXAAYAYCWQUAACFXTAF
          PUSZVDVEAWQWRAWQAEDONVFZUSZAWRACFMPVFZUSZVGVHVIVJUOAGWSXASTZUBUCZWTXB
          VKZAGGXMISTZXJUETZSTZYIUBAGUJUDZYMUJUDGYNUBUCAXDYOLGVOVAZAYLXJAXMIAXG
          XMUJUDOEVLVAZAIKWOVFZAXEXJUJUDMCVLVAZVMGYMVNVPAWQUMUKTZWRUMUKTZUETZYN
          YIAECSTZUMUKTZYTUATZUUDUUAUATZUETZUUBYNAUUDYTUUAAUUCAUUCAECOMVFUSVQAW
          QYFVQAWRYHVQVRAUUGGYLSTZGXJSTZUETYNAUUEUUHUUFUUIUEAUUEXMXLSTZUUHAUUEX
          MXJSTZXMXKSTZUATUUJAUUDUUKYTUULUAAECAEOUSZXTVSZAEDUUMADNUSZVSVTAXMXJX
          KAEUUMVQZAXJYSUSZADUUOVQWAVCAUUJXMGISTZSTUUHAXLUURXMSAXIXLUURQAIGAIKW
          BZAGYPUSZWCWDVEAXMGIUUPUUTUUSWEVHVHAUUFXOXJSTZUUIAUUFUUKXNXJSTZUATUVA
          AUUDUUKUUAUVBUAUUNAUUAXJXNSTUVBACFXTYDVSAXJXNUUQAFYDVQZWCVHVTAXMXNXJA
          XMYQUSUVCUUQWFVCAGXOXJSRVBVCVTAGYLXJUUTAYLYRUSUUQWGVCWDAWQURUDWRURUDU
          UBYIUNYFYHWQWRWHVPWDWIAXDWSUJUDXAUJUDYJYKWJLAWQWRYEYGWKAWQWRYEYGVMGWS
          XAWLWMWNWP $.
      $}

      2sqlem5.3 $e |- ( ph -> ( N x. P ) e. S ) $.
      2sqlem5.4 $e |- ( ph -> P e. S ) $.
      $( Lemma for ~ 2sq .  If a number that is a sum of two squares is
         divisible by a prime that is a sum of two squares, then the quotient
         is a sum of two squares.  (Contributed by Mario Carneiro,
         20-Jun-2015.) $)
      2sqlem5 $p |- ( ph -> N e. S ) $=
        ( vp vq vx vy cv co cz wrex wcel wa cexp caddc wceq cmul 2sqlem2 reeanv
        c2 sylib cprime simplrr simprlr simplrl simprll simprrr simprrl 2sqlem4
        cn ad2antrr expr rexlimdvva syl5bir mp2and ) ACKOZUGUAPLOZUGUAPUBPUCZLQ
        RZKQRZECUDPZMOZUGUAPNOZUGUAPUBPUCZNQRZMQRZEDSZACDSVGJKLBCDFUEUHAVHDSVMI
        MNBVHDFUEUHVGVMTVFVLTZMQRKQRAVNVFVLKMQQUFAVOVNKMQQVOVEVKTZNQRLQRAVCQSZV
        IQSZTZTZVNVEVKLNQQUFVTVPVNLNQQVTVDQSZVJQSZTZVPVNVTWCVPTZTBVIVJVCVDCDEFA
        EUQSVSWDGURACUISVSWDHURAVQVRWDUJVTWAWBVPUKAVQVRWDULVTWAWBVPUMVTWCVEVKUN
        VTWCVEVKUOUPUSUTVAUTVAVB $.
    $}

    ${
      2sqlem6.1 $e |- ( ph -> A e. NN ) $.
      2sqlem6.2 $e |- ( ph -> B e. NN ) $.
      2sqlem6.3 $e |- ( ph -> A. p e. Prime ( p || B -> p e. S ) ) $.
      2sqlem6.4 $e |- ( ph -> ( A x. B ) e. S ) $.
      $( Lemma for ~ 2sq .  If a number that is a sum of two squares is
         divisible by a number whose prime divisors are all sums of two
         squares, then the quotient is a sum of two squares.  (Contributed by
         Mario Carneiro, 20-Jun-2015.) $)
      2sqlem6 $p |- ( ph -> A e. S ) $=
        ( vm cn wcel cmul wi wral cdvds cprime wa vx vy vz vn cv co wbr c1 wceq
        breq2 imbi1d ralbidv oveq2 eleq1d imbi12d nncn mulid1d biimpd a1i breq1
        rgen eleq1 rspcv cz prmz iddvds syl simprl simpll simprr simplr 2sqlem5
        expr ralrimiva ex embantd syld c2 cuz prth wo wb simpr eluzelz ad2antrr
        cfv ad2antlr euclemma syl3anc jaob syl6bb ralbidva r19.26 oveq1 cbvralv
        biimpa adantl uzssz zsscn sstri sseldi w3a mul32 mulass eqtr3d nnmulcld
        eluz2nn sylc sylbird imim1d ralimdva sylan2b expimpd com23 prmind syl3c
        cc syl5 ) ACMNLUEZDOUFZENZXSENZPZLMQZCDOUFZENZCENZHADMNFUEZDRUGZYHENZPZ
        FSQZYDIJYHUAUEZRUGZYJPZFSQZXSYMOUFZENZYBPZLMQZPYHUHRUGZYJPZFSQZXSUHOUFZ
        ENZYBPZLMQZPYHUBUEZRUGZYJPZFSQZXSUUHOUFZENZYBPZLMQZPZYHUCUEZRUGZYJPZFSQ
        ZXSUUQOUFZENZYBPZLMQZPZYHUUHUUQOUFZRUGZYJPZFSQZXSUVFOUFZENZYBPZLMQZPZYL
        YDPUAUBUCDYMUHUIZYPUUCYTUUGUVOYOUUBFSUVOYNUUAYJYMUHYHRUJUKULUVOYSUUFLMU
        VOYRUUEYBUVOYQUUDEYMUHXSOUMUNUKULUOYMUUHUIZYPUUKYTUUOUVPYOUUJFSUVPYNUUI
        YJYMUUHYHRUJUKULUVPYSUUNLMUVPYRUUMYBUVPYQUULEYMUUHXSOUMUNUKULUOYMUUQUIZ
        YPUUTYTUVDUVQYOUUSFSUVQYNUURYJYMUUQYHRUJUKULUVQYSUVCLMUVQYRUVBYBUVQYQUV
        AEYMUUQXSOUMUNUKULUOYMUVFUIZYPUVIYTUVMUVRYOUVHFSUVRYNUVGYJYMUVFYHRUJUKU
        LUVRYSUVLLMUVRYRUVKYBUVRYQUVJEYMUVFXSOUMUNUKULUOYMDUIZYPYLYTYDUVSYOYKFS
        UVSYNYIYJYMDYHRUJUKULUVSYSYCLMUVSYRYAYBUVSYQXTEYMDXSOUMUNUKULUOUUGUUCUU
        FLMXSMNZUUEYBUVTUUDXSEUVTXSXSUPZUQUNURVAUSYMSNZYPYMYMRUGZYMENZPZYTYOUWE
        FYMSYHYMUIYNUWCYJUWDYHYMYMRUTYHYMEVBUOVCUWBUWCUWDYTUWBYMVDNUWCYMVEYMVFV
        GUWBUWDYTUWBUWDTZYSLMUWFUVTYRYBUWFUVTYRTZTBYMEXSGUWFUVTYRVHUWBUWDUWGVIU
        WFUVTYRVJUWBUWDUWGVKVLVMVNVOVPVQUUPUVETUUKUUTTZUUOUVDTZPZUUHVRVSWFZNZUU
        QUWKNZTZUVNUUKUUOUUTUVDVTUWNUVIUWJUVMUWNUVIUWJUVMPUWNUVITZUWHUWIUVMUWNU
        VIUWHUWNUVIUUJUUSTZFSQUWHUWNUVHUWPFSUWNYHSNZTZUVHUUIUURWAZYJPUWPUWRUVGU
        WSYJUWRUWQUUHVDNZUUQVDNZUVGUWSWBUWNUWQWCUWLUWTUWMUWQVRUUHWDWEUWMUXAUWLU
        WQVRUUQWDWGYHUUHUUQWHWIUKUUIYJUURWJWKWLUUJUUSFSWMWKWPUWOUUOUVDUVMUUOUWO
        UDUEZUUHOUFZENZUXBENZPZUDMQZUVDUVMPUUNUXFLUDMXSUXBUIZUUMUXDYBUXEUXHUULU
        XCEXSUXBUUHOWNUNXSUXBEVBUOWOUWOUXGTZUVCUVLLMUXIUVTTZUVKUVBYBUXJUVKUVAUU
        HOUFZENZUVBUXJUXKUVJEUXJXSXQNZUUHXQNZUUQXQNZUXKUVJUIUVTUXMUXIUWAWQUXJUW
        KXQUUHUWKVDXQVRWRWSWTZUWOUWLUXGUVTUWLUWMUVIVIWEXAUXJUWKXQUUQUXPUWOUWMUX
        GUVTUWLUWMUVIVKWEZXAUXMUXNUXOXBUULUUQOUFUXKUVJXSUUHUUQXCXSUUHUUQXDXEWIU
        NUXJUVAMNUXGUXLUVBPZUXJXSUUQUXIUVTWCUXJUWMUUQMNUXQUUQXGVGXFUWOUXGUVTVKU
        XFUXRUDUVAMUXBUVAUIZUXDUXLUXEUVBUXSUXCUXKEUXBUVAUUHOWNUNUXBUVAEVBUOVCXH
        XIXJXKXLXMVPVOXNXRXOXHKYCYFYGPLCMXSCUIZYAYFYBYGUXTXTYEEXSCDOWNUNXSCEVBU
        OVCXP $.
    $}

    2sqlem7.2 $e |- Y = { z | E. x e. ZZ E. y e. ZZ ( ( x gcd y ) = 1 /\
      z = ( ( x ^ 2 ) + ( y ^ 2 ) ) ) } $.
    $( Lemma for ~ 2sq .  (Contributed by Mario Carneiro, 19-Jun-2015.) $)
    2sqlem7 $p |- Y C_ ( S i^i NN ) $=
      ( cv co c1 wceq wa cz wrex cn wcel cc0 wb cn0 cgcd c2 caddc cab cin simpr
      cexp reximi 2sqlem2 sylibr wn wne ax-1ne0 gcdeq0 adantr eqeq1d necon3bbid
      bitr3d mpbiri cr cle wbr zsqcl2 ad2antrr nn0red nn0ge0d ad2antlr syl22anc
      add20 cc zcn sqeq0 bi2anan9 syl2anc bitrd mtbird wo nn0addcl syl2an elnn0
      sylib ord mt3d eleq1 syl5ibrcom expimpd rexlimivv elind abssi eqsstri ) F
      AIZBIZUAJZKLZCIZWKUBUGJZWLUBUGJZUCJZLZMZBNOZANOZCUDEPUEZHXBCXCXBEPWOXBWSB
      NOZANOWOEQXAXDANWTWSBNWNWSUFUHUHABDWOEGUIUJWTWOPQZABNNWKNQZWLNQZMZWNWSXEX
      HWNMZXEWSWRPQZXIXJWRRLZXIXKWKRLZWLRLZMZXIXNUKKRULUMXIXNKRXIWMRLZXNKRLXHXO
      XNSWNWKWLUNUOXIWMKRXHWNUFUPURUQUSXIXKWPRLZWQRLZMZXNXIWPUTQRWPVAVBWQUTQRWQ
      VAVBXKXRSXIWPXFWPTQZXGWNWKVCZVDZVEXIWPYAVFXIWQXGWQTQZXFWNWLVCZVGZVEXIWQYD
      VFWPWQVIVHXIWKVJQZWLVJQZXRXNSXFYEXGWNWKVKVDXGYFXFWNWLVKVGYEXPXLYFXQXMWKVL
      WLVLVMVNVOVPXIXJXKXIWRTQZXJXKVQXHYGWNXFXSYBYGXGXTYCWPWQVRVSUOWRVTWAWBWCWO
      WRPWDWEWFWGWHWIWJ $.

    ${
      2sqlem9.5 $e |- ( ph -> A. b e. ( 1 ... ( M - 1 ) )
        A. a e. Y ( b || a -> b e. S ) ) $.
      2sqlem9.7 $e |- ( ph -> M || N ) $.
      ${
        2sqlem8.n $e |- ( ph -> N e. NN ) $.
        2sqlem8.m $e |- ( ph -> M e. ( ZZ>= ` 2 ) ) $.
        2sqlem8.1 $e |- ( ph -> A e. ZZ ) $.
        2sqlem8.2 $e |- ( ph -> B e. ZZ ) $.
        2sqlem8.3 $e |- ( ph -> ( A gcd B ) = 1 ) $.
        2sqlem8.4 $e |- ( ph -> N = ( ( A ^ 2 ) + ( B ^ 2 ) ) ) $.
        2sqlem8.c $e |- C = ( ( ( A + ( M / 2 ) ) mod M ) - ( M / 2 ) ) $.
        2sqlem8.d $e |- D = ( ( ( B + ( M / 2 ) ) mod M ) - ( M / 2 ) ) $.
        $( Lemma for ~ 2sqlem8 .  (Contributed by Mario Carneiro,
           4-Jun-2016.) $)
        2sqlem8a $p |- ( ph -> ( C gcd D ) e. NN ) $=
          ( cz wcel cc0 wceq wa wn cgcd co cn cmin cdiv c1 wne c2 cuz cfv sylib
          eluz2b3 simpld 4sqlem5 cexp simprd cle cdvds simpr 4sqlem9 ex eluzelz
          wbr wb syl dvdssq syl2anc sylibrd wi ax-1ne0 a1i eqnetrd neneqd mtbid
          gcdeq0 dvdslegcd syl31anc syl2and breq2d nnle1eq1 sylibd necon3ad mpd
          bitrd cc zcnd sqeq0 anbi12d gcdn0cl syl21anc ) AHUHUIZIUHUIZHUJUKZIUJ
          UKZULZUMHIUNUOUPUIAXDFHUQUOKURUOUHUIAFHKUBAKUPUIZKUSUTZAKVAVBVCUIZXIX
          JULUAKVEVDZVFZUFVGVFZAXEGIUQUOKURUOUHUIAGIKUCXMUGVGVFZAHVAVHUOUJUKZIV
          AVHUOUJUKZULZXHAXJXRUMAXIXJXLVIAXRKUSAXRKFGUNUOZVJVPZKUSUKZAXPKFVKVPZ
          XQKGVKVPZXTAXPKVAVHUOZFVAVHUOVKVPZYBAXPYEAXPFHKUBXMUFAXPVLVMVNAKUHUIZ
          FUHUIZYBYEVQAXKYFUAVAKVOVRZUBKFVSVTWAAXQYDGVAVHUOVKVPZYCAXQYIAXQGIKUC
          XMUGAXQVLVMVNAYFGUHUIZYCYIVQYHUCKGVSVTWAAYFYGYJFUJUKGUJUKULZUMYBYCULX
          TWBYHUBUCAXSUJUKZYKAXSUJAXSUSUJUDUSUJUTAWCWDWEWFAYGYJYLYKVQUBUCFGWHVT
          WGKFGWIWJWKAXTKUSVJVPZYAAXSUSKVJUDWLAXIYMYAVQXMKWMVRWQWNWOWPAXPXFXQXG
          AHWRUIXPXFVQAHXNWSHWTVRAIWRUIXQXGVQAIXOWSIWTVRXAWGHIXBXC $.

        2sqlem8.e $e |- E = ( C / ( C gcd D ) ) $.
        2sqlem8.f $e |- F = ( D / ( C gcd D ) ) $.
        $( Lemma for ~ 2sq .  (Contributed by Mario Carneiro, 20-Jun-2015.) $)
        2sqlem8 $p |- ( ph -> M e. S ) $=
          ( vp c2 cexp co caddc cdiv cn wcel c1 wne cuz wa eluz2b3 sylib simpld
          cfv cz cc0 clt wbr cdvds cgcd cmul wceq cmin syl nnzd 4sqlem5 4sqlem8
          wb zsqcl zsubcld syl3anc mp2and zcnd eqtrd breqtrrd dvdssub2 syl31anc
          oveq1d mpbid cn0 zsqcl2 nn0cnd gcddvds syl2anc nnne0d dvdsval2 simprd
          wi syl5eqel sqmuld oveq2i divcan2d syl5eq eqtr3d oveq12d gcdcld nn0zd
          cle dvdstr mpbird wn a1i breqtrd mpd nn0red readdcld nnred sstri wrex
          cv eqeq1d eqeq2d anbi12d syl112anc sseldi nngt0d cprime wral ad2antrl
          oveq1 adantr zred cr rehalfcld nnsqcld 4sqlem7 letrd eluzelz dvds2add
          zaddcld addsub4d 2sqlem8a adddid gcdcom ax-1ne0 eqnetrd neneqd gcdeq0
          mtbid dvdslegcd simpr necon3ai syl21anc nnle1eq1 2nn rplpwr nn0addcld
          gcdn0cl coprmdvds 2sqlem7 inss2 1cnd mulid1d mulgcd 3eqtr2rd mulcanad
          cin eqidd oveq2 oveq2d rspc2ev ovex eqeq1 anbi2d elab2 sylibr divgt0d
          2rexbidv elnnz sylanbrc cfz prmnn peano2zm simprr prmz dvdsle nn0ge0d
          1red nnge1d lemul1ad mulid2d 3brtr3d le2addd recnd 2halvesd crp nnrpd
          rphalflt lelttrd sqvald ltdivmul zltlem1 mpbir2and jca dvdsmul2 breq1
          fznn eleq1 imbi12d breq2 imbi1d rspc2v expr ralrimiva eqeltrd 2sqlem6
          syl3c inss1 ) AEMKUMUNUOZLUMUNUOZUPUOZMUQUOZJULRAMURUSZMUTVAZAMUMVBVG
[encoded data, 5120 characters]
          RUYAYAWVLYHUXRUXS $.
      $}

      2sqlem9.6 $e |- ( ph -> M e. NN ) $.
      2sqlem9.4 $e |- ( ph -> N e. Y ) $.
      $( Lemma for ~ 2sq .  (Contributed by Mario Carneiro, 19-Jun-2015.) $)
      2sqlem9 $p |- ( ph -> M e. S ) $=
        ( co c1 cz vu vv cv cgcd wceq c2 cexp caddc wa wrex wcel eqeq1 2rexbidv
        anbi2d oveq1 eqeq1d oveq1d eqeq2d anbi12d oveq2d cbvrex2v syl6bb elab2g
        oveq2 ibi syl simpr cabs cfv cgz zgz ax-mp sq1 eqcomi fveq2 abs1 syl6eq
        1z rspcev mp2an 2sqlem1 mpbir syl6eqel wne cdiv cmo cmin cdvds wbr wral
        wi cfz ad2antrr cn cin 2sqlem7 inss2 sseldi cuz simprr eluz2b3 sylanbrc
        sstri simplrl simplrr simprll simprlr 2sqlem8 anassrs pm2.61dane ex mpd
        eqid rexlimdvva ) AUAUCZUBUCZUDRZSUEZHXOUFUGRZXPUFUGRZUHRZUEZUIZUBTUJUA
        TUJZGFUKZAHIUKZYDQYFYDBUCZCUCZUDRZSUEZDUCZYGUFUGRZYHUFUGRZUHRZUEZUIZCTU
        JBTUJZYDDHIIYKHUEZYQYJHYNUEZUIZCTUJBTUJYDYRYPYTBCTTYRYOYSYJYKHYNULUNUMY
        TYCXOYHUDRZSUEZHXSYMUHRZUEZUIBCUAUBTTYGXOUEZYJUUBYSUUDUUEYIUUASYGXOYHUD
        UOUPUUEYNUUCHUUEYLXSYMUHYGXOUFUGUOUQURUSYHXPUEZUUBXRUUDYBUUFUUAXQSYHXPX
        OUDVDUPUUFUUCYAHUUFYMXTXSUHYHXPUFUGUOUTURUSVAVBMVCVEVFAYCYEUAUBTTAXOTUK
        ZXPTUKZUIZUIZYCYEUUJYCUIZYEGSUUKGSUEZUIGSFUUKUULVGSFUKSYGVHVIZUFUGRZUEZ
        BVJUJZSVJUKZSSUFUGRZUEZUUPSTUKUUQVRSVKVLUURSVMVNUUOUUSBSVJYGSUEZUUNUURS
        UUTUUMSUFUGUUTUUMSVHVISYGSVHVOVPVQUQURVSVTBESFLWAWBWCUUJYCGSWDZYEUUJYCU
        VAUIZUIZBCDEXOXPXOGUFWERZUHRGWFRUVDWGRZXPUVDUHRGWFRUVDWGRZFUVEUVEUVFUDR
        ZWERZUVFUVGWERZGHIJKLMAKUCZJUCWHWIUVJFUKWKJIWJKSGSWGRWLRWJUUIUVBNWMAGHW
        HWIUUIUVBOWMAHWNUKUUIUVBAIWNHIFWNWOWNBCDEFILMWPFWNWQXCQWRWMUVCGWNUKZUVA
        GUFWSVIUKAUVKUUIUVBPWMUUJYCUVAWTGXAXBAUUGUUHUVBXDAUUGUUHUVBXEUUJXRYBUVA
        XFUUJXRYBUVAXGUVEXMUVFXMUVHXMUVIXMXHXIXJXKXNXL $.
    $}

    $( Lemma for ~ 2sq .  Every factor of a "proper" sum of two squares (where
       the summands are coprime) is a sum of two squares.  (Contributed by
       Mario Carneiro, 19-Jun-2015.) $)
    2sqlem10 $p |- ( ( A e. Y /\ B e. NN /\ B || A ) -> B e. S ) $=
      ( va vb wcel cdvds wral c1 cfz co wceq raleqdv vm vn cn cv elfz1end caddc
      wbr wi biimpi oveq2 elfz1eq cabs cfv c2 cexp cgz wrex cz 1z zgz ax-mp sq1
      eqcomi fveq2 syl6eq oveq1d eqeq2d rspcev mp2an 2sqlem1 mpbir syl6eqel a1d
      abs1 ralrimivw rgen csn wa cmin simplr nncn ad2antrr ax-1cn pncan sylancl
      cc oveq2d mpbird simprr peano2nn simprl 2sqlem9 ralrimiva ex breq2 imbi1d
      expr cbvralv syl6ibr ovex breq1 eleq1 imbi12d ralbidv ralsn ancld cun cuz
      elnnuz fzsuc sylbi ralunb syl6bb sylibrd nnind rspcv sylc syl5 3imp ) EHM
      ZFUCMZFENUGZFGMZYAFKUDZNUGZYCUHZKHOZXTYBYCUHZYAFPFQRZMZLUDZYDNUGZYKGMZUHZ
      KHOZLYIOZYGYAYJFUEUIYOLPUAUDZQRZOYOLPPQRZOYOLPUBUDZQRZOZYOLPYTPUFRZQRZOZY
      PUAUBFYQPSYOLYRYSYQPPQUJTYQYTSYOLYRUUAYQYTPQUJTYQUUCSYOLYRUUDYQUUCPQUJTYQ
      FSYOLYRYIYQFPQUJTYOLYSYKYSMZYNKHUUFYMYLUUFYKPGYKPUKPGMPAUDZULUMZUNUORZSZA
      UPUQZPUPMZPPUNUORZSZUUKPURMUULUSPUTVAUUMPVBVCUUJUUNAPUPUUGPSZUUIUUMPUUOUU
      HPUNUOUUOUUHPULUMPUUGPULVDVNVEVFVGVHVIADPGIVJVKVLVMVOVPYTUCMZUUBUUBYOLUUC
      VQZOZVRZUUEUUPUUBUURUUPUUBUUCYDNUGZUUCGMZUHZKHOZUURUUPUUBUUCYQNUGZUVAUHZU
      AHOZUVCUUPUUBUVFUUPUUBVRZUVEUAHUVGYQHMZUVDUVAUVGUVHUVDVRZVRZABCDGUUCYQHKL
      IJUVJYOLPUUCPVSRZQRZOUUBUUPUUBUVIVTUVJYOLUVLUUAUVJUVKYTPQUVJYTWFMZPWFMUVK
      YTSUUPUVMUUBUVIYTWAWBWCYTPWDWEWGTWHUVGUVHUVDWIUUPUUCUCMUUBUVIYTWJWBUVGUVH
      UVDWKWLWQWMWNUVBUVEKUAHYDYQSUUTUVDUVAYDYQUUCNWOWPWRWSYOUVCLUUCYTPUFWTYKUU
      CSZYNUVBKHUVNYLUUTYMUVAYKUUCYDNXAYKUUCGXBXCXDXEWSXFUUPUUEYOLUUAUUQXGZOUUS
      UUPYOLUUDUVOUUPYTPXHUMMUUDUVOSYTXIPYTXJXKTYOLUUAUUQXLXMXNXOYOYGLFYIYKFSZY
      NYFKHUVPYLYEYMYCYKFYDNXAYKFGXBXCXDXPXQYFYHKEHYDESYEYBYCYDEFNWOWPXPXRXS $.

    $( Lemma for ~ 2sq .  (Contributed by Mario Carneiro, 19-Jun-2015.) $)
    2sqlem11 $p |- ( ( P e. Prime /\ ( P mod 4 ) = 1 ) -> P e. S ) $=
      ( wcel c4 co c1 wceq wa c2 cexp wbr cz caddc vn cprime cv cneg cmin cdvds
      cmo wn wrex clgs simpr csn cdif wb wne simpl 1ne2 necomi oveq1 cr crp cc0
      cle clt 2re 4re 4pos elrpii 0le2 modid mp4an syl6eq neeq1d mpbiri necon2i
      2lt4 syl eldifsn sylanbrc m1lgs mpbird neg1z lgsqr sylancr simprd cn cgcd
      mpbid simprl 1zzd gcd1 ad2antrl eqidd eqeq1d oveq1d eqeq2d anbi12d oveq2d
      oveq2 sq1 rspc2ev syl112anc ovex eqeq1 anbi2d 2rexbidv elab2 sylibr prmnn
      ad2antrr simprr zcnd sqcld ax-1cn subneg sylancl breqtrd 2sqlem10 syl3anc
      cc rexlimddv ) EUBJZEKUGLZMNZOZEUAUCZPQLZMUDZUELZUFRZEFJZUASYEEYHUFRUHZYJ
      UASUIZYEYHEUJLMNZYLYMOZYEYNYDYBYDUKZYEEUBPULUMJZYNYDUNYEYBEPUOZYQYBYDUPYE
      YDYRYPEPYCMEPNZYCMUOPMUOMPUQURYSYCPMYSYCPKUGLZPEPKUGUSPUTJKVAJVBPVCRPKVDR
      YTPNVEKVFVGVHVIVPPKVJVKVLVMVNVOVQEUBPVRVSZEVTVQWAYEYHSJYQYNYOUNWBUUAUAYHE
      WCWDWHWEYEYFSJZYJOZOZYGMTLZGJZEWFJZEUUEUFRYKUUDAUCZBUCZWGLZMNZUUEUUHPQLZU
      UIPQLZTLZNZOZBSUIASUIZUUFUUDUUBMSJYFMWGLZMNZUUEUUENZUUQYEUUBYJWIZUUDWJUUB
      UUSYEYJYFWKWLUUDUUEWMUUPUUSUUTOYFUUIWGLZMNZUUEYGUUMTLZNZOABYFMSSUUHYFNZUU
      KUVCUUOUVEUVFUUJUVBMUUHYFUUIWGUSWNUVFUUNUVDUUEUVFUULYGUUMTUUHYFPQUSWOWPWQ
      UUIMNZUVCUUSUVEUUTUVGUVBUURMUUIMYFWGWSWNUVGUVDUUEUUEUVGUUMMYGTUVGUUMMPQLM
      UUIMPQUSWTVLWRWPWQXAXBUUKCUCZUUNNZOZBSUIASUIUUQCUUEGYGMTXCUVHUUENZUVJUUPA
      BSSUVKUVIUUOUUKUVHUUEUUNXDXEXFIXGXHYBUUGYDUUCEXIXJUUDEYIUUEUFYEUUBYJXKUUD
      YGXTJMXTJYIUUENUUDYFUUDYFUVAXLXMXNYGMXOXPXQABCDUUEEFGHIXRXSYA $.
  $}

  ${
    $d a b w x y z P $.
    $( All primes of the form ` 4 k + 1 ` are sums of two squares.  This is
       Metamath 100 proof #20.  (Contributed by Mario Carneiro,
       20-Jun-2015.) $)
    2sq $p |- ( ( P e. Prime /\ ( P mod 4 ) = 1 ) ->
        E. x e. ZZ E. y e. ZZ P = ( ( x ^ 2 ) + ( y ^ 2 ) ) ) $=
      ( vw vz va vb wcel co c1 wceq wa cv c2 cexp caddc cz wrex cgcd oveq1 cabs
      cprime c4 cmo cgz cfv cmpt crn cab eqid eqeq1d oveq1d eqeq2d oveq2 oveq2d
      anbi12d cbvrex2v abbii 2sqlem11 2sqlem2 sylib ) CUBHCUCUDIJKLCDUEDMUAUFNO
      IUGUHZHCAMZNOIZBMZNOIZPIZKBQRAQRABEDCVBFMZGMZSIZJKZEMZVHNOIZVINOIZPIZKZLZ
      GQRFQRZEUIVBUJZVRVCVESIZJKZVLVGKZLZBQRAQREVQWCVCVISIZJKZVLVDVNPIZKZLFGABQ
      QVHVCKZVKWEVPWGWHVJWDJVHVCVISTUKWHVOWFVLWHVMVDVNPVHVCNOTULUMUPVIVEKZWEWAW
      GWBWIWDVTJVIVEVCSUNUKWIWFVGVLWIVNVFVDPVIVENOTUOUMUPUQURUSABDCVBVSUTVA $.
  $}

  ${
    $d x B $.  $d x P $.  $d x X $.
    2sqb.1 $e |- ( ph -> ( P e. Prime /\ P =/= 2 ) ) $.
    2sqb.2 $e |- ( ph -> ( X e. ZZ /\ Y e. ZZ ) ) $.
    2sqb.3 $e |- ( ph -> P = ( ( X ^ 2 ) + ( Y ^ 2 ) ) ) $.
    2sqb.4 $e |- ( ph -> A e. ZZ ) $.
    2sqb.5 $e |- ( ph -> B e. ZZ ) $.
    2sqb.6 $e |- ( ph -> ( P gcd Y ) = ( ( P x. A ) + ( Y x. B ) ) ) $.
    $( The converse to ~ 2sq .  (Contributed by Mario Carneiro,
       20-Jun-2015.) $)
    2sqblem $p |- ( ph -> ( P mod 4 ) = 1 ) $=
      ( c1 co cdvds wbr c2 cz wcel syl vx cneg clgs wceq c4 cmo wn cv cexp cmin
      wrex cprime wne simpld nprmdvds1 wb prmz 1z dvdsnegb sylancl cmul zmulcld
      mtbid caddc dvdsmul1 syl2anc simprd peano2zm zcnd peano2zd addcomd ax-1cn
      zsqcl cc a1i ppncand adddird oveq1d sqmuld 3eqtr4rd 3eqtrd breqtrrd mpbid
      oveq12d negsubdi2 sylancr cgcd cabs cfv cle cr zred absresq resqcld prmnn
      clt cn nnred cn0 zsqcl2 nn0addge2 exp1d 2z prmuz2 eluz2b2 simprbi ltexp2a
      cuz syl32anc eqbrtrrd lelttrd eqbrtrd abscld absge0d nnnn0d lt2sqd mpbird
      1lt2 nn0ge0d ltnled wi sqnprm abs00ad eqeltrrd sq0i oveq2d eleq1d addid1d
      cc0 syl5ibcom sylibd sylbid mtod wo nn0abscl elnn0 sylib ord eqtr3d wa
      mt3d dvdsle dvdsabsb mtbird coprm pncand eqtrd dvdsmultr2 syl3anc mpd sq1
      negeqd oveq2i subsq syl5eqr dvdsadd2b syl112anc subneg breq2d rspcev cdif
      oveq1 csn neg1z eldifsn sylibr lgsqr mpbir2and m1lgs ) AMUBZDUCNMUDZDUEUF
      NMUDZAUVKDUVJOPZUGZDUAUHZQUINZUVJUJNZOPZUARUKZADMOPZUVMADULSZUVTUGAUWADQU
      MZGUNZDUOTADRSZMRSZUVTUVMUPAUWAUWDUWCDUQTZURDMUSUTVCAECVANZRSZDUWGQUINZUV
      JUJNZOPZUVSAECAERSZFRSZHUNZKVBZADUWIMVDNZUWJOADUWPOPZDFCVANZQUINZMUJNZUWP
      VDNZOPZADDCQUINZVANZUXAOAUWDUXCRSZDUXDOPUWFACRSUXEKCVMTZDUXCVEVFAUXAUWPUW
      TVDNUWIUWSVDNZUXDAUWTUWPAUWTAUWSRSZUWTRSZAUWRRSZUXHAFCAUWLUWMHVGZKVBZUWRV
      MTZUWSVHTZVIAUWPAUWIAUWHUWIRSUWOUWGVMTZVJZVIVKAUWIMUWSAUWIUXOVIZMVNSZAVLV
      OAUWSUXMVIVPAEQUINZFQUINZVDNZUXCVANUXSUXCVANZUXTUXCVANZVDNUXDUXGAUXSUXTUX
      CAUXSAUWLUXSRSUWNEVMTVIZAUXTAUWMUXTRSUXKFVMTVIAUXCUXFVIVQADUYAUXCVAIVRAUW
      IUYBUWSUYCVDAECAEUWNVIACKVIZVSAFCAFUXKVIZUYEVSWDVTWAWBAUWDUWPRSUXIDUWTOPU
      WQUXBUPUWFUXPUXNADUWRMVDNZUWRMUJNZVANZUWTOADUYHOPZDUYIOPZADDBVANZUBZUYHOA
      DUYLOPZDUYMOPZAUWDBRSUYNUWFJDBVEVFAUWDUYLRSUYNUYOUPUWFADBUWFJVBZDUYLUSVFW
      CAMUWRUJNZUBZUYHUYMAUXRUWRVNSZUYRUYHUDVLAUWRUXLVIZMUWRWEWFAUYQUYLAUYQUYLU
      WRVDNZUWRUJNUYLAMVUAUWRUJADFWGNZMVUAADFOPZUGZVUBMUDZAVUCDFWHWIZOPZAVUGDVU
      FWJPZAVUFDWPPZVUHUGAVUIVUFQUINZDQUINZWPPAVUJUXTVUKWPAFWKSVUJUXTUDAFUXKWLZ
      FWMTAUXTDVUKAFVULWNZADAUWADWQSZUWCDWOTZWRZADVUPWNAUXTUYADWJAUXTWKSUXSWSSZ
      UXTUYAWJPVUMAUWLVUQUWNEWTTUXTUXSXAVFIWBADMUINZDVUKWPADADUWFVIXBADWKSUWEQR
      SZMDWPPZMQWPPZVURVUKWPPVUPUWEAURVOVUSAXCVOADQXHWISZVUTAUWAVVBUWCDXDTVVBVU
      NVUTDXEXFTVVAAXRVODMQXGXIXJXKXLAVUFDAFUYFXMZVUPAFUYFXNADADVUOXOXSXPXQAVUF
      DVVCADUWFWLXTWCAUWDVUFWQSZVUGVUHYAUWFAVVDVUFYIUDZAVVEUXSULSZAUWLVVFUGUWNE
      YBTAVVEFYIUDZVVFAFUYFYCAVVGUXSYIVDNZULSZVVFAUYAULSVVGVVIADUYAULIUWCYDVVGU
      YAVVHULVVGUXTYIUXSVDFYEYFYGYJAVVHUXSULAUXSUYDYHYGYKYLYMAVVDVVEAVUFWSSZVVD
      VVEYNAUWMVVJUXKFYOTVUFYPYQYRUUADVUFUUBVFYMAUWDUWMVUCVUGUPUWFUXKDFUUCVFUUD
      AUWAUWMVUDVUEUPUWCUXKDFUUEVFWCLYSVRAUYLUWRAUYLUYPVIUYTUUFUUGUULYSWBAUWDUY
      GRSUYHRSZUYJUYKYAUWFAUWRUXLVJAUXJVVKUXLUWRVHTDUYGUYHUUHUUIUUJAUWTUWSMQUIN
      ZUJNZUYIVVLMUWSUJUUKUUMAUYSUXRVVMUYIUDUYTVLUWRMUUNUTUUOWBDUWPUWTUUPUUQXQA
      UWIVNSUXRUWJUWPUDUXQVLUWIMUURUTWBUVRUWKUAUWGRUVOUWGUDZUVQUWJDOVVNUVPUWIUV
      JUJUVOUWGQUIUVBVRUUSUUTVFAUVJRSDULQUVCUVASZUVKUVNUVSYTUPUVDAUWAUWBYTVVOGD
      ULQUVEUVFZUAUVJDUVGWFUVHAVVOUVKUVLUPVVPDUVITWC $.
  $}

  ${
    $d a b x y P $.
    $( The converse to ~ 2sq .  (Contributed by Mario Carneiro,
       20-Jun-2015.) $)
    2sqb $p |- ( P e. Prime ->
      ( E. x e. ZZ E. y e. ZZ P = ( ( x ^ 2 ) + ( y ^ 2 ) ) <->
        ( P = 2 \/ ( P mod 4 ) = 1 ) ) ) $=
      ( va vb wcel cv c2 cexp co caddc wceq cz wrex c1 wa rexlimdvva 1z syl6eq
      cmul cprime c4 cmo wo wn df-ne cgcd prmz ad3antrrr simplrr bezout syl2anc
      wne simplll simpllr simplr simprll simprlr simprr 2sqblem mpd ex impancom
      expr syl5bir orrd oveq1 oveq1d eqeq2d oveq2d 1p1e2 rspc2ev mp3an12 adantl
      sq1 2sq jaodan impbida ) CUAFZCAGZHIJZBGZHIJZKJZLZBMNAMNZCHLZCUBUCJOLZUDV
      SWFPZWGWHWGUECHUMZWIWHCHUFVSWJWFWHVSWJPZWEWHABMMWKVTMFZWBMFZPZPZWEWHWOWEP
      ZCWBUGJCDGZTJWBEGZTJKJLZEMNDMNZWHWPCMFZWMWTVSXAWJWNWECUHUIWKWLWMWEUJDECWB
      UKULWPWSWHDEMMWPWQMFZWRMFZPZWSWHWPXDWSPZPWQWRCVTWBWKWNWEXEUNWKWNWEXEUOWOW
      EXEUPWPXBXCWSUQWPXBXCWSURWPXDWSUSUTVDQVAVBQVCVEVFVSWGWFWHWGWFVSOMFZXFWGWF
      RRWEWGCOWCKJZLABOOMMVTOLZWDXGCXHWAOWCKXHWAOHIJZOVTOHIVGVOSVHVIWBOLZXGHCXJ
      XGOOKJHXJWCOOKXJWCXIOWBOHIVGVOSVJVKSVIVLVMVNABCVPVQVR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Chebyshev's Weak Prime Number Theorem, Dirichlet's Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d k K $.  $d k N $.
    chebbnd1lem1.1 $e |- K = if ( ( 2 x. N ) <_ ( ( 2 x. N ) _C N ) ,
      ( 2 x. N ) , ( ( 2 x. N ) _C N ) ) $.
    $( Lemma for ~ chebbnd1 : show a lower bound on ` ppi ( x ) ` at even
       integers using similar techniques to those used to prove ~ bpos .  (Note
       that the expression ` K ` is actually equal to ` 2 x. N ` , but proving
       that is not necessary for the proof, and it's too much work.)  The key
       to the proof is ~ bposlem1 , which shows that each term in the expansion
       ` ( ( 2 x. N ) _C N ) = prod_ p e. Prime `
       ` ( p ^ ( p pCnt ( ( 2 x. N ) _C N ) ) ) ` is at most ` 2 x. N ` , so
       that the sum really only has nonzero elements up to ` 2 x. N ` , and
       since each term is at most ` 2 x. N ` , after taking logs we get the
       inequality ` ppi ( 2 x. N ) x. log ( 2 x. N ) <_ `
       ` log ( ( 2 x. N ) _C N ) ` , and ~ bclbnd finishes the proof.
       (Contributed by Mario Carneiro, 22-Sep-2014.)  (Revised by Mario
       Carneiro, 15-Apr-2016.) $)
    chebbnd1lem1 $p |- ( N e. ( ZZ>= ` 4 ) -> ( log ` ( ( 4 ^ N ) / N ) ) <
      ( ( ppi ` ( 2 x. N ) ) x. ( log ` ( 2 x. N ) ) ) ) $=
      ( vk c4 cfv wcel co clog c2 cmul cn syl cr wbr syl2anc cle c1 cprime wa
      cuz cexp cdiv cbc cppi cn0 4nn eluznn mpan nnexpcl sylancr nnrpd rpdivcld
      nnnn0d relogcld cc0 cfz fzctr bccl2 cz 2z eluzelz zmulcl ppicl nn0red 2nn
      zred nnmulcl remulcld clt bclbnd crp wb logltb mpbid ifcld syl5eqel nnred
      cif cin cpc csu cfn wss fzfid inss1 ssfi sylancl nnzd min2 syl5eqbr eluz2
      cv syl3anbrc fzss2 ssrin sselda simpr sseldi elfznn inss2 adantr nnexpcld
      pccld syldan ce elin simprbi bposlem1 syl2an reeflogd 3brtr4d efle mpbird
      fsumle cc recnd cdif wn eldifn adantl eldifad adantrr nncnd nnge1d simprr
      wceq exp1d syl6eleq leexp2ad eqbrtrrd letrd elfzle2 syl3anc mpbir2and 2re
      nnuz lemin a1i ltletrd syl6breqr fznn elind expr mtod elnn0 sylib ord mpd
      wo oveq2d exp0d eqtrd fveq2d log1 syl6eq nn0zd relogexp sumeq2dv pclogsum
      fsumss 3eqtrd chash 2eluzge1 ppival2g oveq1d eqtr4d 3brtr3d min1 ppiwordi
      fsumconst 1red 1lt2 2t1e2 eluzelre 2pos pm3.2i syl5eqbrr rplogcld lemul1d
      lemul2 ) BEUAFGZEBUBHZBUCHZIFZJBKHZBUDHZIFZUWFUEFZUWFIFZKHZUWBUWDUWBUWCBU
      WBUWCUWBELGZBUFGZUWCLGUGUWBBUWLUWBBLGZUGBEUHUIZUNZEBUJUKULUWBBUWOULUMZUOU
      WBUWGUWBUWGUWBBUPUWFUQHGZUWGLGZUWBUWMUWRUWPBURMBUWFUSMZULZUOZUWBUWIUWJUWB
      UWIUWBUWFNGZUWIUFGUWBUWFUWBJUTGBUTGUWFUTGVAEBVBJBVCUKVGZUWFVDMVEZUWBUWFUW
      BUWFUWBJLGUWNUWFLGVFUWOJBVHUKZULZUOZVIZUWBUWDUWGVJOZUWEUWHVJOZBVKUWBUWDVL
      GUWGVLGUXJUXKVMUWQUXAUWDUWGVNPVOUWBUWHAUEFZUWJKHZUWKUXBUWBUXLUWJUWBUXLUWB
      ANGZUXLUFGUWBAUWBAUWFUWGQOZUWFUWGVSZLCUWBUXOUWFUWGLUXFUWTVPVQZVRZAVDMVEZU
      XHVIUXIUWBRAUQHZSVTZDWMZUYBUWGWAHZUBHZIFZDWBZUYAUWJDWBZUWHUXMQUWBUYAUYEUW
      JDUWBUXTWCGUYAUXTWDUYAWCGZUWBRAWEUXTSWFUXTUYAWGWHZUWBUYBUYAGZUYBRUWGUQHZS
      VTZGZUYENGZUWBUYAUYLUYBUWBUXTUYKWDZUYAUYLWDUWBUWGAUAFGZUYOUWBAUTGZUWGUTGA
      UWGQOUYPUWBAUXQWIZUWBUWGUWTWIUWBAUXPUWGQCUWBUXCUWGNGZUXPUWGQOUXDUWBUWGUWT
      VRZUWFUWGWJPWKAUWGWLWNARUWGWOMUXTUYKSWPMZWQZUWBUYMTZUYDVUCUYDVUCUYBUYCVUC
      UYBUYKGZUYBLGZVUCUYLUYKUYBUYKSWFZUWBUYMWRZWSUYBUWGWTZMZVUCUYBUWGVUCUYLSUY
      BUYKSXAZVUGWSUWBUWSUYMUWTXBXDZXCZULZUOZXEZUWBUWJNGZUYJUXHXBZUWBUYJTZUYEUW
      JQOZUYEXFFZUWJXFFZQOZVURUYDUWFVUTVVAQUWBUWNUYBSGZUYDUWFQOZUYJUWOUYJUYBUXT
      GZVVCUYBUXTSXGXHUYBBXIZXJVURUYDUWBUYJUYMUYDVLGVUBVUMXEXKVURUWFUWBUWFVLGUY
      JUXGXBXKXLVURUYNVUPVUSVVBVMVUOVUQUYEUWJXMPXNXOUWBUYFUYLUYEDWBUYLUYCUYBIFK
      HZDWBZUWHUWBUYAUYLUYEDVUAUWBUYJUYMUYEXPGVUBVUCUYEVUNXQXEUWBUYBUYLUYAXRGZT
      ZUYERIFUPVVJUYDRIVVJUYDUYBUPUBHRVVJUYCUPUYBUBVVJUYCLGZXSUYCUPYGZVVJVVKUYJ
      VVIUYJXSUWBUYBUYLUYAXTYAUWBVVIVVKUYJUWBVVIVVKTZTZUXTSUYBVVNVVEVUEUYBAQOZU
      WBVVIVUEVVKVVJVUDVUEVVJUYLUYKUYBVUFVVJUYBUYLUYAUWBVVIWRYBZWSZVUHMZYCZVVNU
      YBUXPAQVVNUYBUXPQOZUYBUWFQOZUYBUWGQOZVVNUYBUYDUWFVVNUYBVVSVRZUWBVVIUYDNGV
      VKVVJUYDUWBVVIUYMUYDLGVVPVULXEVRYCUWBUXCVVMUXDXBZVVNUYBRUBHUYBUYDQVVNUYBV
      VNUYBVVSYDYHVVNUYBRUYCVWCVVNUYBVVSYEVVNUYCLRUAFZUWBVVIVVKYFYQYIYJYKVVNUWN
      VVCVVDUWBUWNVVMUWOXBUWBVVIVVCVVKVVJUYLSUYBVUJVVPWSYCZVVFPYLUWBVVIVWBVVKVV
      JVUDVWBVVQUYBRUWGYMMYCVVNUYBNGUXCUYSVVTVWAVWBTVMVWCVWDUWBUYSVVMUYTXBUYBUW
      FUWGYRYNYOCUUAVVNUYQVVEVUEVVOTVMVVNAUWBALGVVMUXQXBWIUYBAUUBMYOVWFUUCUUDUU
      EVVJVVKVVLVVJUYCUFGZVVKVVLUUJUWBVVIUYMVWGVVPVUKXEUYCUUFUUGUUHUUIUUKVVJUYB
      VVJUYBVVRYDUULUUMUUNUUOUUPUWBUYKWCGUYLUYKWDUYLWCGUWBRUWGWEVUFUYKUYLWGWHUV
      AUWBUYLUYEVVGDVUCUYBVLGUYCUTGUYEVVGYGVUCUYBVUIULVUCUYCVUKUUQUYBUYCUURPUUS
      UWBUWSVVHUWHYGUWTUWGDUUTMUVBUWBUYGUYAUVCFZUWJKHZUXMUWBUYHUWJXPGUYGVWIYGUY
      IUWBUWJUXHXQUYAUWJDUVKPUWBUXLVWHUWJKUWBUYQJVWEGUXLVWHYGUYRUVDARUVEWHUVFUV
      GUVHUWBUXLUWIQOZUXMUWKQOUWBUXNUXCAUWFQOVWJUXRUXDUWBAUXPUWFQCUWBUXCUYSUXPU
      WFQOUXDUYTUWFUWGUVIPWKAUWFUVJYNUWBUXLUWIUWJUXSUXEUWBUWFUXDUWBRJUWFUWBUVLZ
      JNGZUWBYPYSUXDRJVJOUWBUVMYSUWBJJRKHZUWFQUVNUWBRBQOZVWMUWFQOZUWBBUWOYEUWBR
      NGBNGVWLUPJVJOZTZVWNVWOVMVWKEBUVOVWQUWBVWLVWPYPUVPUVQYSRBJUWAYNVOUVRYTUVS
      UVTVOYLYT $.
  $}

  ${
    chebbnd1lem2.1 $e |- M = ( |_ ` ( N / 2 ) ) $.
    $( Lemma for ~ chebbnd1 :  Show that ` log ( N ) / N ` does not change too
       much between ` N ` and ` M = |_ ( N / 2 ) ` .  (Contributed by Mario
       Carneiro, 22-Sep-2014.) $)
    chebbnd1lem2 $p |- ( ( N e. RR /\ 8 <_ N ) ->
      ( ( log ` ( 2 x. M ) ) / ( 2 x. M ) ) < ( 2 x. ( ( log ` N ) / N ) ) ) $=
      ( cr wcel c8 cle wbr c2 cmul co cfv cdiv crp c4 a1i cc0 clt wb ceu wa 2rp
      clog cn cuz 4nn cz 4z rehalfcl adantr flcld syl5eqel 4t2e8 simpr syl5eqbr
      cfl 4re simpl 2re 2pos lemuldiv syl112anc mpbid syl6breqr eluz2 syl3anbrc
      flge sylancl eluznn sylancr nnrpd rpmulcl relogcld rerpdivcld 8re ltletrd
      0red 8pos elrpd rphalfcld remulcl c1 zred peano2re syl flltp1 oveq1i 1red
      caddc nnge1d leadd2dd recnd 2timesd breqtrrd c3 egt2lt3 simpri 3lt4 lttri
      ere mp2an ltled logdivlt syl22anc rphalflt logltb syl2anc ltdiv1dd rpne0d
      3re lttrd wne 2ne0 divdiv2d mulcomd oveq1d divassd 3eqtrd breqtrd ) BDEZF
      BGHZUAZIAJKZUCLZYCMKZBIMKZUCLZYFMKZIBUCLZBMKZJKZYBYDYCYBYCYBINEANEYCNEUBY
      BAYBOUDEAOUELEZAUDEUFYBOUGEZAUGEOAGHYLYMYBUHPYBAYFUPLZUGCYBYFXTYFDEZYABUI
      UJZUKULZYBOYNAGYBOYFGHZOYNGHZYBOIJKZBGHZYRYBYTFBGUMXTYAUNZUOYBODEZXTIDEZQ
      IRHZUUAYRSUUCYBUQPZXTYAURZUUDYBUSPZUUEYBUTPOBIVAVBVCZYBYOYMYRYSSYPUHYFOVG
      VHVCCVDOAVEVFAOVIVJZVKIAVLVJZVMUUKVNYBYGYFYBYFYBBYBBUUGYBQFBYBVQFDEYBVOPU
      UGQFRHYBVRPUUBVPVSZVTZVMZUUMVNYBUUDYJDEYKDEUSYBYIBYBBUULVMZUULVNIYJWAVJYB
      YFYCRHZYEYHRHZYBYFAWBWIKZYCYPYBADEZUURDEYBAYQWCZAWDWEYBUUDUUSYCDEZUSUUTIA
      WAVJZYBYFYNWBWIKZUURRYBYOYFUVCRHYPYFWFWEAYNWBWICWGVDYBUURAAWIKYCGYBWBAAYB
      WHUUTUUTYBAUUJWJWKYBAYBAUUTWLWMWNVPZYBYOTYFGHUVATYCGHUUPUUQSYPYBTYFTDEYBW
      TPZYPYBTOYFUVEUUFYPTORHZYBTWORHZWOORHUVFITRHUVGWPWQWRTWOOWTXJUQWSXAPUUIVP
      ZXBUVBYBTYCUVEUVBYBTYFYCUVEYPUVBUVHUVDXKXBYFYCXCXDVCYBYHYIYFMKZYKRYBYGYIY
      FUUNUUOUUMYBYFBRHZYGYIRHZYBBNEZUVJUULBXEWEYBYFNEUVLUVJUVKSUUMUULYFBXFXGVC
      XHYBUVIYIIJKZBMKIYIJKZBMKYKYBYIBIYBYIUUOWLZYBBUUGWLZYBIUUHWLZYBBUULXIZIQX
      LYBXMPXNYBUVMUVNBMYBYIIUVOUVQXOXPYBIYIBUVQUVOUVPUVRXQXRXSXK $.

    $( Lemma for ~ chebbnd1 : get a lower bound on
       ` ppi ( N ) / ( N / log ( N ) ) ` that is independent of ` N ` .
       (Contributed by Mario Carneiro, 21-Sep-2014.) $)
    chebbnd1lem3 $p |- ( ( N e. RR /\ 8 <_ N ) ->
      ( ( ( log ` 2 ) - ( 1 / ( 2 x. _e ) ) ) / 2 ) <
      ( ( ppi ` N ) x. ( ( log ` N ) / N ) ) ) $=
      ( cr wcel cle wbr c2 clog cfv c1 ceu cmul co cdiv a1i clt c4 cc0 wb c8 wa
      cmin cppi crp 2rp relogcl 1re 2re ere remulcli mulgt0ii gt0ne0ii redivcli
      ax-mp 2pos epos resubcli 2ne0 cn 8re simpl 2lt8 ltleii simpr letrd syldan
      ppinncl nnred cz rehalfcl adantr flcld syl5eqel zred remulcl sylancr 1lt2
      cfl 2t1e2 cuz 4nn 4z 4t2e8 syl5eqbr lemuldiv syl112anc mpbid flge sylancl
      syl6breqr eluz2 syl3anbrc eluznn nnge1d lemul2 syl5eqbrr ltletrd rplogcld
      4re rpred 2nn nnmulcl nndivred remulcld syl 0red 8pos relogcld rerpdivcld
      elrpd syl2anc cexp elrpii rpexpcl nnrpd rpdivcld epr rerpdivcl c3 egt2lt3
      4pos simpri 3lt4 3re lttri mp2an ltled oveq1i nngt0d mpbird recnd breqtrd
      syl3anc cc recni rpcnd wceq wne lttrd leidi logdivlt loge syl6breq pm3.2i
      mpanl12 jca lt2mul2div syl22anc mulid2d ltmuldiv ltsub2dd subdird mulcomd
      2z zmulcl relogexp 2cnd nnnn0d cn0 2nn0 expmuld sq2 syl6eq fveq2d 3eqtr2d
      divrec2d divcan5d eqtr3d oveq12d eqtrd relogdivd 3brtr4d cbc chebbnd1lem1
      cif eqid ltmuldivd rpcnne0d divass flle lemuldiv2 ppiwordi lemul1d ltdiv1
      chebbnd1lem2 ltmul2 mul12d ltdivmul ) BDEZUABFGZUBZHIJZKHLMNZONZUCNZHONZB
      UDJZHAMNZIJZUWSONZMNZHONZUWRBIJZBONZMNZUWQDEUWLUWPHUWMUWOHUEEZUWMDEUFHUGU
      OZKUWNUHHLUIUJUKZUWNUXIHLUIUJUPUQULUMZUNZURZUIUSUNPUWLUXBDEZUXCDEUWLUWRUX
      AUWLUWRUWJUWKHBFGUWRUTEUWLHUABHDEZUWLUIPZUADEUWLVAPZUWJUWKVBZHUAFGUWLHUAU
      IVAVCVDPUWJUWKVEZVFBVHVGZVIZUWLUWTUWSUWLUWTUWLUWSUWLUXNADEZUWSDEZUIUWLAUW
      LABHONZVSJZVJCUWLUYCUWJUYCDEZUWKBVKVLZVMVNZVOZHAVPVQZUWLKHUWSKDEZUWLUHPZU
      XOUYIKHQGUWLVRPUWLHHKMNZUWSFVTUWLKAFGZUYLUWSFGZUWLAUWLRUTEARWAJEZAUTEZWBU
      WLRVJEZAVJEZRAFGUYOUYQUWLWCPUYGUWLRUYDAFUWLRUYCFGZRUYDFGZUWLRHMNZBFGZUYSU
      WLVUAUABFWDUXRWEUWLRDEZUWJUXNSHQGZVUBUYSTVUCUWLWTPZUXQUXOVUDUWLUPPZRBHWFW
      GWHUWLUYEUYQUYSUYTTUYFWCUYCRWIWJWHCWKZRAWLWMZARWNVQZWOUWLUYJUYAUXNVUDUYMU
      YNTUYKUYHUXOVUFKAHWPWGWHWQZWRWSZXAZUWLHUTEUYPUWSUTEXBVUIHAXCVQZXDZXEZUXBV
      KXFUWLUWRUXEUXTUWLUXDBUWLBUWLBUXQUWLSUABUWLXGUXPUXQSUAQGUWLXHPUXRWRXKZXIV
      UPXJZXEZUWLUWPUXBQGZUWQUXCQGZUWLUWPUWSUDJZUXAMNZUXBUWPDEZUWLUXLPZUWLVVAUX
      AUWLVVAUWLUYBHUWSFGVVAUTEUYIVUJUWSVHXLVIZVUNXEVUOUWLUWPVVAUWTMNZUWSONZVVB
      QUWLUWPUWSMNZVVFQGUWPVVGQGUWLVVHRAXMNZAONZIJZVVFUWLVVCUYBVVHDEUXLUYIUWPUW
      SVPVQUWLVVJUWLVVIAUWLRUEEUYRVVIUEERWTYBXNUYGRAXOVQZUWLAVUIXPZXQXIUWLVVAUW
      TVVEVULXEZUWLVVIIJZALONZUCNZVVOAIJZUCNVVHVVKQUWLVVRVVPVVOUWLAVVMXIZUWLUYA
      LUEEVVPDEUYHXRALXSWJUWLVVIVVLXIUWLVVRLMNZAQGZVVRVVPQGZUWLVVTKAMNZAQUWLVVT
      VWCQGZVVRAONZKLONZQGZUWLVWELIJZLONZVWFQUWLLAQGZVWEVWIQGZUWLLRALDEZUWLUJPZ
      VUEUYHLRQGZUWLLXTQGZXTRQGVWNHLQGVWOYAYCYDLXTRUJYEWTYFYGPVUGWRZUWLUYALAFGZ
      VWJVWKTZUYHUWLLAVWMUYHVWPYHVWLLLFGUYAVWQUBVWRUJLUJUUALAUUBUUFXLWHVWHKLOUU
      CYIUUDUWLVVRDEZVWLSLQGZUBZUYJUYASAQGZUBVWDVWGTVVSVXAUWLVWLVWTUJUQUUEPZUYK
      UWLUYAVXBUYHUWLAVUIYJUUGVVRLKAUUHUUIYKUWLAUWLAUYHYLZUUJYMUWLVWSUYAVXAVWAV
      WBTVVSUYHVXCVVRALUUKYNWHUULUWLVVHUWMUWSMNZUWOUWSMNZUCNVVQUWLUWMUWOUWSUWMY
      OEUWLUWMUXHYPPZUWOYOEUWLUWOUXKYPPUWLUWSUWLUWSVUMXPZYQZUUMUWLVXEVVOVXFVVPU
      CUWLVXEUWSUWMMNZHUWSXMNZIJZVVOUWLUWMUWSVXGVXIUUNUWLUXGUWSVJEZVXLVXJYRUFUW
      LHVJEUYRVXMUUOUYGHAUUPVQHUWSUUQVQUWLVXKVVIIUWLVXKHHXMNZAXMNVVIUWLHHAUWLUU
      RZUWLAVUIUUSHUUTEUWLUVAPUVBVXNRAXMUVCYIUVDUVEUVFUWLUWSUWNONVXFVVPUWLUWSUW
      NVXIUWNYOEUWLUWNUXIYPPUWNSYSUWLUXJPUVGUWLALHVXDLYOEUWLLUJYPPVXOLSYSUWLLUJ
      UQUMPHSYSUWLUSPUVHUVIUVJUVKUWLVVIAVVLVVMUVLUVMUWLUYOVVKVVFQGVUHUWSUWSAUVN
      NZFGUWSVXPUVPZAVXQUVQUVOXFYTUWLUWPVVFUWSVVDVVNVXHUVRWHUWLVVAYOEUWTYOEUWSY
      OEUWSSYSUBVVGVVBYRUWLVVAVVEYLUWLUWTVUKYQUWLUWSVXHUVSVVAUWTUWSUVTYNYMUWLVV
      AUWRFGZVVBUXBFGUWLUYBUWJUWSBFGZVXRUYIUXQUWLVXSAUYCFGZUWLAUYDUYCFCUWLUYEUY
      DUYCFGUYFUYCUWAXFWEUWLUYAUWJUXNVUDVXSVXTTUYHUXQUXOVUFABHUWBWGYKUWSBUWCYNU
      WLVVAUWRUXAVVEUXTUWLUWTUWSVUKVXHXQUWDWHWRUWLVVCUXMUXNVUDVUSVUTTVVDVUOUXOV
      UFUWPUXBHUWEWGWHUWLUXCUXFQGZUXBHUXFMNZQGZUWLUXBUWRHUXEMNZMNZVYBQUWLUXAVYD
      QGZUXBVYEQGZABCUWFUWLUXADEVYDDEZUWRDESUWRQGVYFVYGTVUNUWLUXNUXEDEVYHUIVUQH
      UXEVPVQUXTUWLUWRUXSYJUXAVYDUWRUWGWGWHUWLUWRHUXEUWLUWRUXTYLVXOUWLUXEVUQYLU
      WHYMUWLUXMUXFDEUXNVUDVYAVYCTVUOVURUXOVUFUXBUXFHUWIWGYKYT $.
  $}

  $( The Chebyshev bound:  The function ` ppi ( x ) ` is eventually lower
     bounded by a positive constant times ` x / log ( x ) ` .  Alternatively
     stated, the function ` ( x / log ( x ) ) / ppi ( x ) ` is eventually
     bounded.  (Contributed by Mario Carneiro, 22-Sep-2014.) $)
  chebbnd1 $p |- ( x e. ( 2 [,) +oo ) |->
    ( ( x / ( log ` x ) ) / ( ppi ` x ) ) ) e. O(1) $=
    ( c2 co clog cfv cdiv wcel wtru c1 ceu cmul cr 2re mp2an a1i wbr wa cc0 clt
    c4 cpnf cico cv cppi cmpt co1 c8 cmin wss cxr pnfxr icossre cc cle elicopnf
    wb ax-mp simplbi 0red 1re 0lt1 1lt2 simprbi ltletrd lttrd rplogcld rpdivcld
    elrpd cn ppinncl sylbi nnrpd rpcnd adantl 8re crp 2rp relogcl remulcli 2pos
    ere epos mulgt0ii gt0ne0ii rereccli resubcli 2t1e2 c3 egt2lt3 lttri ltmul2i
    simpli mpbi eqbrtrri ltrecii simpri 3lt4 3re 4re epr 4pos elrpii logltb sq2
    loge cexp fveq2i cz 2z relogexp eqtr3i 3brtr3i pm3.2i ltdivmul mp3an halfre
    wceq mpbir posdifi rerpdivcl cabs rpre rpge0 absidd syl adantr chebbnd1lem3
    cfl eqid sylan recni 2ne0 recdiv mp4an nncnd rpne0d nnne0d recdivd rpcnne0d
    wne divrecd syl2anc oveq2d 3eqtrd 3brtr4d elrp divgt0ii ltrec mpanr12 rpred
    mpbird wi ltle sylancl mpd eqbrtrd elo1d trud ) ABUAUBCZAUCZUUTDEZFCZUUTUDE
    ZFCZUEUFGHAUUSUVDUGBBDEZIBJKCZFCZUHCZFCZUUSLUIZHBLGZUAUJGUVJMUKBUAULNOUUTUU
    SGZUVDUMGHUVLUVDUVLUVBUVCUVLUUTUVAUVLUUTUVLUUTLGZBUUTUNPZUVKUVLUVMUVNQZUPMB
    UUTUOUQZURZUVLRIUUTUVLUSILGZUVLUTOZUVQRISPUVLVAOUVLIBUUTUVSUVKUVLMOUVQIBSPZ
    UVLVBOUVLUVMUVNUVPVCVDZVEVHZUVLUUTUVQUWAVFZVGZUVLUVCUVLUVOUVCVIGUVPUUTVJVKZ
    VLVGZVMVNUGLGHVOOUVILGZHUVKUVHVPGUWGMUVHUVEUVGBVPGZUVELGZVQBVRUQZUVFBJMWAVS
    ZUVFUWKBJMWAVTWBWCZWDWEZWFZUVGUVESPZRUVHSPUVGIBFCZSPZUWPUVESPZUWOBUVFSPUWQB
    IKCZBUVFSWGIJSPZUWSUVFSPZUVTBJSPZUWTVBUXBJWHSPZWIWLIBJUTMWAWJNRBSPZUWTUXAUP
    VTIJBUTWAMWKUQWMWNBUVFMUWKVTUWLWOWMUWRIBUVEKCZSPZJDEZTDEZIUXESJTSPZUXGUXHSP
    ZUXCWHTSPUXIUXBUXCWIWPWQJWHTWAWRWSWJNJVPGTVPGUXIUXJUPWTTWSXAXBJTXCNWMXEBBXF
    CZDEZUXHUXEUXKTDXDXGUWHBXHGUXLUXEXQVQXIBBXJNXKXLUVRUWIUVKUXDQUWRUXFUPUTUWJU
    VKUXDMVTXMIUVEBXNXOXRUVGUWPUVEUWMXPUWJWJNUVGUVEUWMUWJXSWMZXBBUVHXTNZOUVLUGU
    UTUNPZQZUVDYAEZUVIUNPHUXPUXQUVDUVIUNUVLUXQUVDXQZUXOUVLUVDVPGZUXRUWFUXSUVDUV
    DYBUVDYCYDYEYFUXPUVDUVISPZUVDUVIUNPZUXPUXTIUVIFCZIUVDFCZSPZUXPUVHBFCZUVCUVA
    UUTFCZKCZUYBUYCSUVLUVMUXOUYEUYGSPUVQUUTBFCYHEZUUTUYHYIYGYJUYBUYEXQZUXPBUMGB
    RYTUVHUMGUVHRYTUYIBMYKYLUVHUWNYKUVHUWNUXMWDBUVHYMYNOUVLUYCUYGXQUXOUVLUYCUVC
    UVBFCUVCIUVBFCZKCUYGUVLUVBUVCUVLUVBUWDVMZUVLUVCUWEYOZUVLUVBUWDYPZUVLUVCUWEY
    QYRUVLUVCUVBUYLUYKUYMUUAUVLUYJUYFUVCKUVLUUTUMGUUTRYTQUVAUMGUVARYTQUYJUYFXQU
    VLUUTUWBYSUVLUVAUWCYSUUTUVAYMUUBUUCUUDYFUUEUXPUXSUXTUYDUPZUVLUXSUXOUWFYFZUX
    SUVDLGZRUVDSPQZUYNUVDUUFUYQUWGRUVISPUYNUXNBUVHMUWNVTUXMUUGUVDUVIUUHUUIVKYEU
    UKUXPUYPUWGUXTUYAUULUXPUVDUYOUUJUXNUVDUVIUUMUUNUUOUUPVNUUQUUR $.

  ${
    $d p x z A $.  $d p N $.  $d p x z ph $.
    chtppilim.1 $e |- ( ph -> A e. RR+ ) $.
    chtppilim.2 $e |- ( ph -> A < 1 ) $.
    ${
      chtppilim.3 $e |- ( ph -> N e. ( 2 [,) +oo ) ) $.
      chtppilim.4 $e |- ( ph -> ( ( N ^c A ) / ( ppi ` N ) ) < ( 1 - A ) ) $.
      $( Lemma for ~ chtppilim .  (Contributed by Mario Carneiro,
         22-Sep-2014.) $)
      chtppilimlem1 $p |- ( ph ->
        ( ( A ^ 2 ) x. ( ( ppi ` N ) x. ( log ` N ) ) ) < ( theta ` N ) ) $=
        ( vp c2 co cfv cmul clt cr wcel cle wbr syl c1 cprime cexp rpred sqvald
        cppi clog ccht recnd oveq1d cpnf cico wa wb elicopnf ax-mp sylib simpld
        cn0 2re ppicl nn0red cc0 0red a1i 2pos simprd ltletrd elrpd mul4d eqtrd
        relogcld ccxp cmin remulcld rpcxpcld resubcld 1red rplogcld rpmulcld cn
        chtcl 1lt2 cdiv ppinncl nndivred ltsub13d wceq nnrpd rpcnne0d divsubdir
        cc wne syl3anc divid breqtrrd ltmuldivd mpbird ppiltx ltsub2dd ltmul1dd
        crp lttrd cfl caddc cfz cin cv csu cfn wss fzfid inss1 ssfi inss2 simpr
        sylancl sseldi prmnn fsumrecl chash fsumconst syl2anc ppifl oveq12d cuz
        ltled wi 1re ltle cxplead cxp1d breqtrd flword2 ppidif eqtr3d adantr ce
        mpd 3syl letrd rpge0d eqtr4d reflcl fllep1 elfzle1 rpne0d cxpefd eqcomd
        peano2re reeflogd 3brtr4d fsumle eqbrtrrd prmuz2 eluz2b2 nnred flge0nn0
        efle nn0p1nn nnuz syl6eleq fzss1 fsumless cicc chtval 2eluzge1 ppisval2
        ssrin sumeq1d eqbrtrd ) ABIUAJZCUDKZCUEKZLJZLJZBUVKLJZBUVLLJZLJZCUFKZMA
        UVNBBLJZUVMLJUVQAUVJUVSUVMLABABABDUBZUGZUCUHABBUVKUVLUWAUWAAUVKAUVKACNO
        ZUVKUQOAUWBICPQZACIUIUJJOZUWBUWCUKZFINOZUWDUWEULURICUMUNUOZUPZCUSRUTZUG
        ZAUVLACACUWHAVAICAVBUWFAURVCZUWHVAIMQAVDVCAUWBUWCUWGVEZVFVGZVJZUGVHVIAU
        VQUVKCBVKJZUDKZVLJZUVPLJZUVRAUVOUVPABUVKUVTUWIVMZABUVLUVTUWNVMZVMAUWQUV
        PAUVKUWPUWIAUWPAUWONOZUWPUQOAUWOACBUWMUVTVNZUBZUWOUSRUTZVOZUWTVMZAUWBUV
        RNOUWHCVTRZAUVOUWQUVPUWSUXEABUVLDACUWHASICAVPZUWKUWHSIMQAWAVCUWLVFZVQVR
        AUVOUVKUWOVLJZUWQUWSAUVKUWOUWIUXCVOZUXEAUVOUXJMQBUXJUVKWBJZMQABSUWOUVKW
        BJZVLJZUXLMAUXMSBAUWOUVKUXCAUWEUVKVSOUWGCWCRZWDUXHUVTGWEAUXLUVKUVKWBJZU
        XMVLJZUXNAUVKWJOZUWOWJOUXRUVKVAWKUKZUXLUXQWFUWJAUWOUXCUGAUVKAUVKUXOWGZW
        HZUVKUWOUVKWIWLAUXPSUXMVLAUXSUXPSWFUYAUVKWMRUHVIWNABUXJUVKUVTUXKUXTWOWP
        AUWPUWOUVKUXDUXCUWIAUWOWTOUWPUWOMQUXBUWOWQRWRXAWSAUWRUWOXBKZSXCJZCXBKZX
        DJZTXEZHXFZUEKZHXGZUVRUXFAUYFUYHHAUYEXHOUYFUYEXIUYFXHOZAUYCUYDXJUYETXKZ
        UYEUYFXLXOZAUYGUYFOZUKZUYGUYNUYGTOZUYGWTOUYNUYFTUYGUYETXMAUYMXNZXPUYOUY
        GUYGXQWGRZVJZXRUXGAUYFUVPHXGZUWRUYIPAUYSUYFXSKZUVPLJZUWRAUYJUVPWJOUYSVU
        AWFUYLAUVPUWTUGUYFUVPHXTYAAUWQUYTUVPLAUYDUDKZUYBUDKZVLJZUWQUYTAVUBUVKVU
        CUWPVLAUWBVUBUVKWFUWHCYBRAUXAVUCUWPWFUXCUWOYBRYCAUYDUYBYDKOZVUDUYTWFAUX
        AUWBUWOCPQVUEUXCUWHAUWOCSVKJCPACBSUWHASCUXHUWHUXIYEUVTUXHABSMQZBSPQZEAB
        NOSNOVUFVUGYFUVTYGBSYHXOYQYIACACUWHUGZYJYKUWOCYLWLUYBUYDYMRYNUHUUAAUYFU
        VPUYHHUYLAUVPNOZUYMUWTYOZUYRUYNUVPUYHPQZUVPYPKZUYHYPKZPQZUYNUWOUYGVULVU
        MPUYNUWOUYCUYGAUXAUYMUXCYOAUYCNOZUYMAUXAUYBNOVUOUXCUWOUUBUYBUUHYRYOUYNU
        YGUYQUBAUWOUYCPQZUYMAUXAVUPUXCUWOUUCRYOUYNUYGUYEOUYCUYGPQUYNUYFUYEUYGUY
        KUYPXPUYGUYCUYDUUDRYSAVULUWOWFUYMAUWOVULACBVUHACUWMUUEUWAUUFUUGYOUYNUYG
        UYQUUIUUJUYNVUIUYHNOVUKVUNULVUJUYRUVPUYHUUQYAWPUUKUULAUYISUYDXDJZTXEZUY
        HHXGZUVRPAVURUYHUYFHAVUQXHOVURVUQXIVURXHOASUYDXJVUQTXKVUQVURXLXOAUYGVUR
        OZUKZUYHVVAUYGVVAUYGVVAUYGVSOZSUYGMQZVVAUYGIYDKOZVVBVVCUKVVAUYOVVDVVAVU
        RTUYGVUQTXMAVUTXNXPUYGUUMRUYGUUNUOZUPUUOVVAVVBVVCVVEVEVQZUBVVAUYHVVFYTA
        UYCSYDKZOUYEVUQXIUYFVURXIAUYCVSVVGAUYBUQOZUYCVSOAUXAVAUWOPQVVHUXCAUWOUX
        BYTUWOUUPYAUYBUURRUUSUUTUYCSUYDUVAUYEVUQTUVGYRUVBAUVRVACUVCJTXEZUYHHXGZ
        VUSAUWBUVRVVJWFUWHCHUVDRAVVIVURUYHHAUWBIVVGOVVIVURWFUWHUVECSUVFXOUVHVIW
        NYSVFUVI $.
    $}

    $( Lemma for ~ chtppilim .  (Contributed by Mario Carneiro,
       22-Sep-2014.) $)
    chtppilimlem2 $p |- ( ph -> E. z e. RR A. x e. ( 2 [,) +oo ) ( z <_ x ->
      ( ( A ^ 2 ) x. ( ( ppi ` x ) x. ( log ` x ) ) ) < ( theta ` x ) ) ) $=
      ( wbr ccxp co cdiv cc0 c1 clt c2 cr cmul crp wcel wa cc cle cppi cfv cmin
      cv cabs wi cpnf cico wral wrex cexp clog ccht simpr wb 2re elicopnf ax-mp
      sylib simpld 0red 2pos simprd ltletrd elrpd rpred adantr rpcxpcld ppinncl
      a1i cn syl nnrpd rpdivcld ralrimiva 1re difrp sylancl mpbid cmpt cof crli
      cvv ovexd 1lt2 rplogcld eqidd offval2 wne wceq rpcnd rpcnne0d div23 recnd
      syl3anc dmdcan mulcomd ax-1cn cxpsub sylancr oveq2d eqtr3d oveq1d 3eqtr4d
      nncan cxp1d mpteq2dva eqtrd chebbnd1 ex ssrdv cxploglim rlimres2 eqbrtrrd
      o1rlimmul subid1d fveq2d rpge0d absidd breq1d simprl simprr chtppilimlem1
      co1 rlimi expr sylbid imim2d ralimdva reximdv mpd ) ACUEBUEZUAGZYMDHIZYMU
      BUCZJIZKUDIZUFUCZLDUDIZMGZUGZBNUHUIIZUJZCOUKYNDNULIYPYMUMUCZPIPIYMUNUCMGZ
      UGZBUUCUJZCOUKACBUUCYQKYTQAYQQRBUUCAYMUUCRZSZYOYPUUJYMDUUJYMUUJYMORZNYMUA
      GZUUJUUIUUKUULSZAUUIUONORZUUIUUMUPUQNYMURUSUTZVAZUUJKNYMUUJVBUUNUUJUQVKZU
      UPKNMGUUJVCVKUUJUUKUULUUOVDZVEVFZADORZUUIADEVGZVHZVIUUJYPUUJUUMYPVLRUUOYM
      VJVMVNZVOZVPADLMGZYTQRZFAUUTLORZUVEUVFUPUVAVQDLVRVSVTZABUUCYMUUEJIZYPJIZW
      AZBUUCUUEYMYTHIZJIZWAZPWBIZBUUCYQWAZKWCAUVOBUUCUVJUVMPIZWAUVPABUUCUVJUVMP
      UVKUVNWDQQANUHUIWEUUJUVIYPUUJYMUUEUUSUUJYMUUPUUJLNYMUVGUUJVQVKUUQUUPLNMGU
      UJWFVKUURVEWGZVOZUVCVOUUJUUEUVLUVRUUJYMYTUUSUUJYTAUVFUUIUVHVHZVGVIZVOZAUV
      KWHAUVNWHWIABUUCUVQYQUUJUVIUVMPIZYPJIZUVQYQUUJUVITRUVMTRYPTRYPKWJSUWDUVQW
      KUUJUVIUVSWLZUUJUVMUWBWLZUUJYPUVCWMUVIUVMYPWNWPUUJUWCYOYPJUUJUVMUVIPIZYMU
      VLJIZUWCYOUUJUUETRUUEKWJSUVLTRUVLKWJSYMTRZUWGUWHWKUUJUUEUVRWMUUJUVLUWAWMU
      UJYMUUPWOZUUEUVLYMWQWPUUJUVIUVMUWEUWFWRUUJYMLHIZUVLJIZYOUWHUUJYMLYTUDIZHI
      ZUWLYOUUJUWIYMKWJSLTRZYTTRUWNUWLWKUUJYMUUSWMUWOUUJWSVKUUJYTUVTWLYMLYTWTWP
      UUJUWMDYMHUUJUWODTRUWMDWKWSUUJDUVBWOLDXFXAXBXCUUJUWKYMUVLJUUJYMUWJXGXDXCX
      EXDXCXHXIAUVKYERUVNKWCGUVOKWCGBXJABUUCQUVMKABUUCQAUUIYMQRUUSXKXLAUVFBQUVM
      WAKWCGUVHYTBXMVMXNUVKUVNXPXAXOYFAUUDUUHCOAUUBUUGBUUCUUJUUAUUFYNUUJUUAYQYT
      MGZUUFUUJYSYQYTMUUJYSYQUFUCYQUUJYRYQUFUUJYQUUJYQUVDWLXQXRUUJYQUUJYQUVDVGU
      UJYQUVDXSXTXIYAAUUIUWPUUFAUUIUWPSZSDYMADQRUWQEVHAUVEUWQFVHAUUIUWPYBAUUIUW
      PYCYDYGYHYIYJYKYL $.
  $}

  ${
    $d x y z $.
    $( The ` theta ` function is asymptotic to ` ppi ( x ) log ( x ) ` , so it
       is sufficient to prove ` theta ( x ) / x ~~>r 1 ` to establish the PNT.
       (Contributed by Mario Carneiro, 22-Sep-2014.) $)
    chtppilim $p |- ( x e. ( 2 [,) +oo ) |->
      ( ( theta ` x ) / ( ( ppi ` x ) x. ( log ` x ) ) ) ) ~~>r 1 $=
      ( vz vy c2 co cfv cmul c1 wbr wtru cle clt cr crp wcel halfre 1re cc0 a1i
      adantl cpnf cico cv ccht cppi clog cdiv cmpt crli cmin cabs wral wrex cif
      wi csqrt cexp rpre resubcl sylancr ifcl 0red halfgt0 max2 sylancl ltletrd
      elrpd rpsqrtcld halflt1 ltsubrp mpan breq1 ifboth rpge0d 0le1 mpbid sqrt1
      sqrtltd syl6breq chtppilimlem2 wa adantr max1 wb 2re elicopnf ax-mp chtcl
      simplbi syl ppinncl sylbi nnrpd 1lt2 simprbi rplogcld rpmulcld rerpdivcld
      cn lelttr syl3anc mpand wceq recnd sqsqrtd oveq1d rpregt0d ltmuldiv bitrd
      breq1d 2pos chtleppi mulid1d breqtrrd ledivmuld mpbird abssuble0d ltsub23
      rpcnd 3imtr4d imim2d ralimdva reximdv mpd rgen ralrimiva ssriv 1cnd rlim2
      cc wss mpbiri trud ) ADUAUBEZAUCZUDFZYOUEFZYOUFFZGEZUGEZUHHUIIZJUUABUCYOK
      IZYTHUJEUKFZCUCZLIZUOZAYNULZBMUMZCNULUUHCNUUDNOZUUBHUUDUJEZHDUGEZKIZUUKUU
      JUNZUPFZDUQEZYSGEZYPLIZUOZAYNULZBMUMUUHUUIABUUNUUIUUMUUIUUMUUIUUKMOZUUJMO
      ZUUMMOZPUUIHMOZUUDMOZUVAQUUDURZHUUDUSUTZUULUUKUUJMVAUTZUUIRUUKUUMUUIVBUUT
      UUIPSUVGRUUKLIUUIVCSUUIUVAUUTUUKUUMKIUVFPUUJUUKVDVEVFVGZVHUUIUUNHUPFZHLUU
      IUUMHLIZUUNUVILIUUIUUKHLIZUUJHLIZUVJVIUVCUUIUVLQHUUDVJVKUULUVKUVLUVJUUKUU
      JUUKUUMHLVLUUJUUMHLVLVMUTUUIUUMHUVGUUIUUMUVHVNUVCUUIQSRHKIUUIVOSVRVPVQVSV
      TUUIUUSUUGBMUUIUURUUFAYNUUIYOYNOZWAZUUQUUEUUBUVNUUMYTLIZUUJYTLIZUUQUUEUVN
      UUJUUMKIZUVOUVPUVNUVAUUTUVQUUIUVAUVMUVFWBZPUUJUUKWCVEUVNUVAUVBYTMOZUVQUVO
      WAUVPUOUVRUUIUVBUVMUVGWBZUVMUVSUUIUVMYPYSUVMYOMOZYPMOZUVMUWADYOKIZDMOZUVM
      UWAUWCWAZWDWEDYOWFWGZWIZYOWHWJZUVMYQYRUVMYQUVMUWEYQWSOUWFYOWKWLWMUVMYOUWG
      UVMHDYOUVCUVMQSZUWDUVMWESZUWGHDLIUVMWNSUVMUWAUWCUWFWOZVFWPWQZWRZTZUUJUUMY
      TWTXAXBUVNUUQUUMYSGEZYPLIZUVOUVNUUPUWOYPLUVNUUOUUMYSGUUIUUOUUMXCUVMUUIUUM
      UUIUUMUVGXDXEWBXFXJUVNUVBUWBYSMORYSLIWAZUWPUVOWDUVTUVMUWBUUIUWHTUVMUWQUUI
      UVMYSUWLXGTUUMYPYSXHXAXIUVNUUEHYTUJEZUUDLIZUVPUVMUUEUWSWDUUIUVMUUCUWRUUDL
      UVMYTHUWMUWIUVMYTHKIYPYSHGEZKIUVMYPYSUWTKUVMYONOYPYSKIUVMYOUWGUVMRDYOUVMV
      BUWJUWGRDLIUVMXKSUWKVFVGYOXLWJUVMYSUVMYSUWLXSXMXNUVMYPHYSUWHUWIUWLXOXPXQX
      JTUVNUVCUVSUVDUWSUVPWDUVCUVNQSUWNUUIUVDUVMUVEWBHYTUUDXRXAXIXTYAYBYCYDYEJC
      BAYNYTHJYTYJOZAYNUVMUXAJUVMYTUWMXDTYFYNMYKJAYNMUWGYGSJYHYIYLYM $.
  $}

  $( The ` theta ` function is upper bounded by a linear term.  Corollary of
     ~ chtub .  (Contributed by Mario Carneiro, 22-Sep-2014.) $)
  chto1ub $p |- ( x e. RR+ |-> ( ( theta ` x ) / x ) ) e. O(1) $=
    ( crp cfv co wcel wtru c3 c2 cmul cr a1i cc 3re 2re cle wbr cc0 clt adantr
    wa cv ccht cdiv cmpt co1 clog wss rpssre rpre chtcl rerpdivcl mpancom recnd
    syl adantl 2rp relogcl ax-mp remulcli chtge0 rpregt0 divge0 syl21anc absidd
    cabs wceq cmin remulcl sylancr resubcl sylancl simpr ltletrd syl2anc elrpii
    2lt3 chtub 3pos ltsubrp wb 1lt2 rplogcl mp2an elrp mpbi syl3anc mpbid lttrd
    c1 ltmul2 recni 2cnd mulassd breqtrrd ltdivmul2 mpbird ltled eqbrtrd elo1d
    trud ) ABAUAZUBCZXAUCDZUDUEEFABXCGHUFCZHIDZBJUGFUHKXABEZXCLEFXFXCXBJEZXFXCJ
    EZXFXAJEZXGXAUIZXAUJUNZXBXAUKULZUMUOGJEZFMKXEJEZFXDHHBEXDJEZUPHUQURZNUSZKXF
    GXAOPZTZXCVECZXEOPFXSXTXCXEOXFXTXCVFXRXFXCXLXFXGQXBOPZXIQXARPTZQXCOPXKXFXIY
    AXJXAUTUNXAVAZXBXAVBVCVDSXSXCXEXFXHXRXLSXNXSXQKZXSXCXERPZXBXEXAIDZRPZXSXBXD
    HXAIDZIDZYFRXSXBXDYHGVGDZIDZYIXFXGXRXKSZXSXOYJJEZYKJEXPXSYHJEZXMYMXSHJEZXIY
    NNXFXIXRXJSZHXAVHVIZMYHGVJVKZXDYJVHVIXSXOYNYIJEXPYQXDYHVHVIXSXIHXARPXBYKRPY
    PXSHGXAYOXSNKXMXSMKYPHGRPXSVPKXFXRVLVMXAVQVNXSYJYHRPZYKYIRPZXSYNGBEYSYQGMVR
    VOYHGVSVKXSYMYNXOQXDRPTZYSYTVTYRYQUUAXSXDBEZUUAYOWIHRPUUBNWAHWBWCXDWDWEKYJY
    HXDWJWFWGWHXSXDHXAXDLEXSXDXPWKKXSWLXFXALEXRXFXAXJUMSWMWNXSXGXNYBYEYGVTYLYDX
    FYBXRYCSXBXEXAWOWFWPWQWRUOWSWT $.

  $( The Chebyshev bound, part 2:  The function ` ppi ( x ) ` is eventually
     upper bounded by a positive constant times ` x / log ( x ) ` .
     Alternatively stated, the function ` ppi ( x ) / ( x / log ( x ) ) ` is
     eventually bounded.  (Contributed by Mario Carneiro, 22-Sep-2014.) $)
  chebbnd2 $p |- ( x e. ( 2 [,) +oo ) |->
    ( ( ppi ` x ) / ( x / ( log ` x ) ) ) ) e. O(1) $=
    ( c2 cpnf co cfv cdiv cmpt co1 wcel wtru c1 cmul wa cc cc0 wne wbr rpcnne0d
    crp a1i cico cv cppi clog ccht cof cvv ovexd eqidd wceq cr cle simpr wb 2re
    elicopnf ax-mp sylib chtrpcl syl ppinncl nnrpd simpld 1red clt 1lt2 ltletrd
    cn simprd rplogcld rpmulcld syl2anc mpteq2dva offval2 0red 2pos elrpd rpcnd
    recdiv dmdcan syl3anc divdiv2 eqtr4d eqtrd ssrdv chto1ub o1res2 crli ax-1cn
    ex rpdivcld wss cxr pnfxr icossre mp2an rlimconst chtppilim ax-1ne0 rlimdiv
    rpne0d rlimo1 o1mul eqeltrrd trud ) ABCUADZAUBZUCEZXGXGUDEZFDFDZGZHIJAXFXGU
    EEZXGFDZGZAXFKXLXHXILDZFDZFDZGZLUFDZXKHJXSAXFXMXOXLFDZLDZGXKJAXFXMXTLXNXRUG
    UGUGJBCUAUHJXGXFIZMZXLXGFUHYCXOXLFUHJXNUIJAXFXQXTYCXLNIXLOPMZXONIZXOOPMXQXT
    UJYCXLYCXGUKIZBXGULQZMZXLSIYCYBYHJYBUMBUKIZYBYHUNUOBXGUPUQURZXGUSUTZRZYCXOY
    CXHXIYCXHYCYHXHVHIYJXGVAUTVBZYCXGYCYFYGYJVCZYCKBXGYCVDYIYCUOTZYNKBVEQYCVFTY
    CYFYGYJVIZVGVJZVKZRXLXOVSVLVMVNJAXFYAXJYCYAXOXGFDZXJYCYDXGNIXGOPMZYEYAYSUJY
    LYCXGYCXGYNYCOBXGYCVOYOYNOBVEQYCVPTYPVGVQZRZYCXOYRVRXLXGXOVTWAYCXHNIYTXINIX
    IOPMXJYSUJYCXHYMVRUUBYCXIYQRXHXGXIWBWAWCVMWDJXNHIXRHIZXSHIJAXFSXMJAXFSJYBXG
    SIUUAWJWEASXMGHIJAWFTWGJXRKKFDZWHQUUCJAXFKXPKKNKNIZYCWITYCXPYCXLXOYKYRWKZVR
    AXFKGKWHQZJXFUKWLZUUEUUGYICWMIUUHUOWNBCWOWPWIAXFKWQWPTAXFXPGKWHQJAWRTKOPJWS
    TYCXPUUFXAWTUUDXRXBUTXNXRXCVLXDXE $.

  $( The ` theta ` function is lower bounded by a linear term.  Corollary of
     ~ chebbnd1 .  (Contributed by Mario Carneiro, 8-Apr-2016.) $)
  chto1lb $p |- ( x e. ( 2 [,) +oo ) |-> ( x / ( theta ` x ) ) ) e. O(1) $=
    ( c2 co cfv cdiv cmpt co1 wcel wtru c1 cmul cc wbr cc0 a1i crp rpcnd adantl
    cr rpne0d cpnf cico cv ccht clog cof cvv ovexd cle wa wb 2re elicopnf ax-mp
    cppi biimpi simpld 0red clt 2pos simprd ltletrd elrpd ppinncl syl 1red 1lt2
    nnrpd rplogcld rpmulcld rpdivcld chtrpcl wceq recnd divdiv1d mulcomd oveq2d
    mpteq2ia recdivd offval2 dmdcan2d syl6eq chebbnd1 crli ax-1cn wss rlimconst
    eqtrd ssriv mp2an chtppilim wne ax-1ne0 rlimdiv o1mul sylancr eqeltrrd trud
    rlimo1 ) ABUAUBCZAUCZXAUDDZECZFZGHIAWTXAXAUEDZECXAUODZECZFZAWTJXBXFXEKCZECZ
    ECZFZKUFCZXDGIXMAWTXAXIECZXIXBECZKCZFXDIAWTXNXOKXHXLUGLLIBUAUBUHXAWTHZXNLHI
    XQXNXQXAXIXQXAXQXASHZBXAUIMZXQXRXSUJZBSHZXQXTUKULBXAUMUNUPZUQZXQNBXAXQURYAX
    QULOZYCNBUSMXQUTOXQXRXSYBVAZVBVCXQXFXEXQXTXFPHYBXTXFXAVDVHVEZXQXAYCXQJBXAXQ
    VFYDYCJBUSMXQVGOYEVBVIZVJZVKQRXQXOLHIXQXOXQXIXBYHXQXTXBPHYBXAVLVEZVKQRXHAWT
    XNFVMIAWTXGXNXQXGXAXEXFKCZECXNXQXAXEXFXQXAYCVNZXQXEYGQZXQXFYFQZXQXEYGTXQXFY
    FTVOXQYJXIXAEXQXEXFYLYMVPVQWHVROXLAWTXOFVMIAWTXKXOXQXBXIXQXBYIQZXQXIYHQZXQX
    BYITZXQXIYHTZVSVROVTAWTXPXCXQXAXIXBYKYOYNYQYPWAVRWBIXHGHXLGHZXMGHAWCIXLJJEC
    ZWDMYRIAWTJXJJJLJLHZIXQUJZWEOUUAXJXQXJPHIXQXBXIYIYHVKZRQAWTJFJWDMZIWTSWFYTU
    UCAWTSYCWIWEAWTJWGWJOAWTXJFJWDMIAWKOJNWLIWMOXQXJNWLIXQXJUUBTRWNYSXLWSVEXHXL
    WOWPWQWR $.

  $( The ` psi ` and ` theta ` functions are asymptotic to each other, so is
     sufficient to prove either ` theta ( x ) / x ~~>r 1 ` or
     ` psi ( x ) / x ~~>r 1 ` to establish the PNT. (Contributed by Mario
     Carneiro, 8-Apr-2016.) $)
  chpchtlim $p |- ( x e. ( 2 [,) +oo ) |->
      ( ( psi ` x ) / ( theta ` x ) ) ) ~~>r 1 $=
    ( c2 co cdiv cmpt c1 crli wbr wtru cmul caddc cc0 wcel cle crp a1i wceq syl
    cr cc cpnf cico cv cchp cfv ccht csqrt clog 1red wa wb 2re elicopnf simplbi
    ax-mp adantl 0red clt 2pos simprbi elrpd rpge0d resqrtcld relogcld remulcld
    ltletrd chtrpcl syl2anc rerpdivcld wss ssriv rlimconst sylancr ccxp cof cvv
    recnd ovexd cxpsqrt oveq2d wne rpsqrtcld rpcnne0d divcan5 syl3anc remsqsqrt
    eqidd 3eqtr2d mpteq2dva offval2 rpne0d syl211anc eqtrd co1 chto1lb rphalfcl
    dmdcan 1rp cxploglim rlimres2 o1rlimmul eqbrtrrd rlimadd 1p0e1 syl6breq 1re
    readdcl chpcl chtcl readdcld letrd chpub lediv1dd rpcnd divdir divid oveq1d
    1le2 breqtrd adantrr mulid2d chtlepsi eqbrtrd lemuldivd mpbid rlimsqz2 trud
    ) ABUAUBCZAUCZUDUEZYIUFUEZDCZEFGHIAYHFYIUGUEZYIUHUEZJCZYKDCZKCZYLFFIUIZYRIA
    YHYQEFLKCFGIAYHFYPFLSIYIYHMZUJZUIZYTYOYKYTYMYNYTYIYSYISMZIYSUUBBYINHZBSMZYS
    UUBUUCUJUKULBYIUMUOZUNZUPZYTYIYSYIOMIYSYIUUFYSLBYIYSUQUUDYSULPUUFLBURHYSUSP
    YSUUBUUCUUEUTZVFVAZUPZVBZVCYTYIUUJVDZVEZYTUUBUUCYKOMUUGYSUUCIUUHUPZYIVGVHZV
    IZIYHSVJFTMAYHFEFGHAYHSUUFVKIFYRVQAYHFVLVMIAYHYIYKDCZEZAYHYNYIFBDCZVNCZDCZE
    ZJVOCZAYHYPEZLGIUVCAYHUUQYOYIDCZJCZEUVDIAYHUUQUVEJUURUVBVPSVPIBUAUBVRYTYIYK
    UUGUUOVIYTYOYIDVRIUURWGIAYHUVAUVEYTUVAYNYMDCZYOYMYMJCZDCZUVEYTUUTYMYNDYTYIT
    MZUUTYMQYTYIUUGVQZYIVSRVTYTYNTMYMTMYMLWAUJZUVLUVIUVGQYTYNUULVQYTYMYTYIUUJWB
    WCZUVMYNYMYMWDWEYTUVHYIYODYTUUBLYINHUVHYIQUUGUUKYIWFVHVTWHWIWJIAYHUVFYPYTUV
    JYILWAYKTMZYKLWAUJZYOTMZUVFYPQUVKYTYIUUJWKYTYKUUOWCZYTYOUUMVQZYIYKYOWQWLWIW
    MIUURWNMUVBLGHUVCLGHAWOIAYHOUVALYHOVJIAYHOUUIVKPAOUVAELGHZIUUSOMZUVSFOMUVTW
    RFWPUOUUSAWSUOPWTUURUVBXAVMXBXCXDXEYTFSMYPSMYQSMXFUUPFYPXGVMYTYJYKYTUUBYJSM
    UUGYIXHRZUUOVIIYSYLYQNHFYINHZYTYLYKYOKCZYKDCZYQNYTYJUWCYKUWAYTYKYOYTUUBYKSM
    UUGYIXIRUUMXJUUOYTUUBUWBYJUWCNHUUGYTFBYIUUAUUDYTULPUUGFBNHYTXRPUUNXKYIXLVHX
    MYTUWDYKYKDCZYPKCZYQYTUVNUVPUVOUWDUWFQYTYKUUOXNZUVRUVQYKYOYKXOWEYTUWEFYPKYT
    UVOUWEFQUVQYKXPRXQWMXSXTIYSFYLNHZUWBYTFYKJCZYJNHUWHYTUWIYKYJNYTYKUWGYAYTUUB
    YKYJNHUUGYIYBRYCYTFYJYKUUAUWAUUOYDYEXTYFYG $.

  $( The ` psi ` function is upper bounded by a linear term.  (Contributed by
     Mario Carneiro, 16-Apr-2016.) $)
  chpo1ub $p |- ( x e. RR+ |-> ( ( psi ` x ) / x ) ) e. O(1) $=
    ( crp cfv cdiv co cmpt co1 wcel wtru c2 cmul cc cc0 wa cr wbr 2re a1i ovexd
    cvv cv cchp cpnf cico cres ccht cof wne cle wb elicopnf ax-mp chtrpcl sylbi
    wceq rpcnne0d simplbi 0red clt 2pos simprbi ltletrd elrpd rpre chpcl dmdcan
    syl recnd syl3anc adantl mpteq2dva eqidd offval2 ssriv resmpt mp1i 3eqtr4rd
    wss chto1ub o1res2 c1 crli chpchtlim rlimo1 o1mul sylancl eqeltrd rerpdivcl
    mpancom eqid fmptd rpssre o1resb mpbird trud ) ABAUAZUBCZWPDEZFZGHZIWTWSJUC
    UDEZUEZGHIXBAXAWPUFCZWPDEZFZAXAWQXCDEZFZKUGEZGIAXAXDXFKEZFAXAWRFZXHXBIAXAXI
    WRWPXAHZXIWRUOZIXKXCLHXCMUHNWPLHWPMUHNWQLHZXLXKXCXKWPOHZJWPUIPZNZXCBHJOHZXK
    XPUJQJWPUKULZWPUMUNUPXKWPXKWPXKXNXOXRUQZXKMJWPXKURXQXKQRXSMJUSPXKUTRXKXNXOX
    RVAVBVCZUPXKWPBHZXMXTYAWQYAXNWQOHZWPVDWPVEVGZVHVGXCWPWQVFVIVJVKIAXAXDXFKXEX
    GTTTIJUCUDSIXKNZXCWPDSYDWQXCDSIXEVLIXGVLVMXABVRZXBXJUOIAXABXTVNZABXAWRVOVPV
    QIXEGHXGGHZXHGHIAXABXDYEIYFRABXDFGHIAVSRVTXGWAWBPYGAWCWAXGWDULXEXGWEWFWGIBJ
    WSIABWRLWSYAWRLHIYAWRYBYAWROHYCWQWPWHWIVHVJWSWJWKBOVRIWLRXQIQRWMWNWO $.

  ${
    $d c n x y $.
    $( The ` psi ` function is upper bounded by a linear term.  (Contributed by
       Mario Carneiro, 31-May-2016.) $)
    chpo1ubb $p |- E. c e. RR+ A. x e. RR+ ( psi ` x ) <_ ( c x. x ) $=
      ( vy cv cdiv co cle wbr crp wtru c2 cr a1i wcel wa simpr rpred syl adantr
      cc0 cchp cfv wral wrex cmul wss rpssre 1red chpcl rerpdivcld cmpt chpo1ub
      c1 co1 o1lo1d ad2antrl rehalfcld clt wceq wb chpeq0 biimpar oveq1d rpne0d
      rpcnd div0d ad2ant2r simprll chpge0 divge0d eqbrtrd ad2antrr simprr ltled
      2rp chpwordi syl3anc lediv12ad 2re ltlecasei lo1bddrp trud simpl ralbidva
      ledivmul2d rexbiia mpbi ) ADZUAUBZWHEFZBDZGHZAIUCZBIUDZWIWKWHUEFGHZAIUCZB
      IUDWNJACIWJUMBCDZUAUBZKEFZILUFJUGMJUHJWHINZOZWIWHXAWHLNZWILNZXAWHJWTPZQZW
      HUIZRZXDUJZJAIWJXHAIWJUKUNNJAULMUOJWQLNZUMWQGHZOZOWRXIWRLNZJXJWQUIUPZUQXA
      XKWHWQURHZOZOZWJWSGHWHKXPWHKURHZOZWJTWHEFZWSGXRWITWHEXPWITUSZXQXPXBXTXQUT
      XAXBXOXESZWHVARVBVCXPXSWSGHXQXPXSTWSGXPWHXPWHXAWTXOXDSZVEXPWHYBVDVFXPWRKJ
      XKXLWTXNXMVGZKINZXPVOMXPXITWRGHXAXIXJXNVHZWQVIRVJVKSVKXPKWHGHZOZWIWRKWHXA
      XCXOYFXGVLXPXLYFYCSYDYGVOMXPXBYFYASZYGXBTWIGHYHWHVIRYGXBXIWHWQGHZWIWRGHYH
      XPXIYFYESXPYIYFXPWHWQYAYEXAXKXNVMVNSWHWQVPVQXPYFPVRYAKLNXPVSMVTWAWBWMWPBI
      WKINZWLWOAIYJWTOZWIWKWHYKXBXCYKWHYJWTPZQXFRYKWKYJWTWCQYLWEWDWFWG $.

    $( The sum of the von Mangoldt function over ` n ` is asymptotic to
       ` log x + O(1) ` .  Equation 9.2.13 of [Shapiro], p. 331.  (Contributed
       by Mario Carneiro, 16-Apr-2016.) $)
    vmadivsum $p |- ( x e. RR+ |->
      ( sum_ n e. ( 1 ... ( |_ ` x ) ) ( ( Lam ` n ) / n ) -
        ( log ` x ) ) ) e. O(1) $=
      ( crp c1 cfv co cdiv csu cmin wtru wcel cr wa syl recnd cc0 cle wbr cmul
      cc cv cfl cfz cvma cfa clog cmpt cof co1 wceq cvv reex rpssre ssexi ovexd
      eqidd offval2 trud fzfid cn elfznn adantl vmacl nndivred fsumrecl relogcl
      a1i rprege0 flge0nn0 faccl 3syl nnrpd relogcld rerpdivcl mpancom nnncan2d
      cn0 mpteq2ia eqtri cchp 1red chpo1ub chpcl subcld adantr remulcld nndivre
      rpre cabs syl2an reflcl resubcld vmage0 fracle1 lemul2ad wne rpcn rpcnne0
      subdid div23 divass eqtr3d syl3anc oveq1d eqtr4d mulid1d fsumle fsummulc1
      w3a 3brtr3d logfac2 oveq12d fsumsub chpval 3brtr4d clt wb mpbid divsubdir
      rpregt0 lediv1 divcan4d eqtr2d fveq2d flle subge0d mpbird mulge0d breqtrd
      rpne0 fsumge0 breqtrrd divge0 syl21anc absidd eqtrd chpge0 ad2antrl o1le
      crli logfacrlim rlimo1 ax-mp o1sub mp2an eqeltrri ) ACDAUAZUBEZUCFZBUAZUD
      EZUUJGFZBHZUUHUEEZUFEZUUGGFZIFZUGZACUUGUFEZUUPIFZUGZIUHFZACUUMUUSIFZUGZUI
      UVBACUUQUUTIFZUGZUVDUVBUVFUJJACUUQUUTIUURUVAUKUKUKCUKKJCLULUMUNVGJUUGCKZM
      ZUUMUUPIUOUVHUUSUUPIUOJUURUPJUVAUPUQURACUVEUVCUVGUUMUUSUUPUVGUUMUVGUUIUUL
      BUVGDUUHUSZUVGUUJUUIKZMZUUKUUJUVKUUJUTKZUUKLKUVJUVLUVGUUJUUHVAZVBZUUJVCNZ
      UVNVDZVEZOZUVGUUSUUGVFOUVGUUPUUOLKUVGUUPLKUVGUUNUVGUUNUVGUUGLKZPUUGQRMZUU
      HVQKUUNUTKUUGVHZUUGVIUUHVJVKVLVMZUUOUUGVNVOOZVPVRVSUURUIKZUVAUIKZUVBUIKUW
      DJACUUGVTEZUUGGFZUUQDTJWAACUWGUGUIKJAWBVGUVGUWGTKJUVGUWGUWFLKZUVGUWGLKUVG
      UVSUWHUUGWHZUUGWCNZUWFUUGVNVOZOVBUVGUUQTKJUVGUUMUUPUVRUWCWDVBUVGUUQWIEZUW
      GWIEZQRJDUUGQRUVGUUMUUGSFZUUOIFZUUGGFZUWGUWLUWMQUVGUWOUWFQRZUWPUWGQRZUVGU
      UIUULUUGSFZUUKUUGUUJGFZUBEZSFZIFZBHZUUIUUKBHZUWOUWFQUVGUUIUXCUUKBUVIUVKUW
      SUXBUVKUULUUGUVPUVGUVSUVJUWIWEWFZUVKUUKUXAUVOUVKUWTLKZUXALKUVGUVSUVLUXGUV
      JUWIUVMUUGUUJWGWJZUWTWKNZWFZWLZUVOUVKUUKUWTUXAIFZSFZUUKDSFUXCUUKQUVKUXLDU
      UKUVKUWTUXAUXHUXIWLZUVKWAUVOUVKUVLPUUKQRUVNUUJWMNZUVKUXGUXLDQRUXHUWTWNNWO
      UVKUXMUUKUWTSFZUXBIFUXCUVKUUKUWTUXAUVKUUKUVOOZUVKUWTUXHOUVKUXAUXIOWSUVKUW
      SUXPUXBIUVKUUKTKZUUGTKZUUJTKUUJPWPMZUWSUXPUJUXQUVGUXSUVJUUGWQZWEUVKUUJCKU
      XTUVKUUJUVNVLUUJWRNUXRUXSUXTXIUUKUUGSFUUJGFUWSUXPUUKUUGUUJWTUUKUUGUUJXAXB
      XCXDXEZUVKUUKUXQXFXJXGUVGUWOUUIUWSBHZUUIUXBBHZIFUXDUVGUWNUYCUUOUYDIUVGUUI
      UULUUGBUVIUYAUVKUULUVPOXHUVGUVTUUOUYDUJUWAUUGBXKNXLUVGUUIUWSUXBBUVIUVKUWS
      UXFOUVKUXBUXJOXMXEZUVGUVSUWFUXEUJUWIUUGBXNNXOUVGUWOLKZUWHUVSPUUGXPRMZUWQU
      WRXQUVGUWNUUOUVGUUMUUGUVQUWIWFZUWBWLZUWJUUGXTZUWOUWFUUGYAXCXRUVGUWLUWPWIE
      UWPUVGUUQUWPWIUVGUWPUWNUUGGFZUUPIFZUUQUVGUWNTKUUOTKUXSUUGPWPMUWPUYLUJUVGU
      WNUYHOUVGUUOUWBOUUGWRUWNUUOUUGXSXCUVGUYKUUMUUPIUVGUUMUUGUVRUYAUUGYJYBXDYC
      YDUVGUWPUYFUVGUWPLKUYIUWOUUGVNVOUVGUYFPUWOQRUYGPUWPQRUYIUVGPUXDUWOQUVGUUI
      UXCBUVIUXKUVKPUXMUXCQUVKUUKUXLUVOUXNUXOUVKPUXLQRUXAUWTQRZUVKUXGUYMUXHUWTY
      ENUVKUWTUXAUXHUXIYFYGYHUYBYIYKUYEYLUYJUWOUUGYMYNYOYPUVGUWGUWKUVGUWHPUWFQR
      ZUYGPUWGQRUWJUVGUVSUYNUWIUUGYQNUYJUWFUUGYMYNYOXOYRYSURUVADYTRUWEAUUADUVAU
      UBUUCUURUVAUUDUUEUUF $.

    $( Give a total bound on the von Mangoldt sum.  (Contributed by Mario
       Carneiro, 30-May-2016.) $)
    vmadivsumb $p |- E. c e. RR+ A. x e. ( 1 [,) +oo ) ( abs `
      ( sum_ n e. ( 1 ... ( |_ ` x ) ) ( ( Lam ` n ) / n ) -
        ( log ` x ) ) ) <_ c $=
      ( c1 cv cfv co cle wbr crp wtru caddc cr wa a1i syl relogcld recnd adantr
      wcel vy cfl cfz cvma cdiv csu clog cmin cabs cpnf cico wral wrex elicopnf
      wb 1re mp1i simprbda 1rp simplbda rpgecld ex ssrdv rpssre syl6ss fzfid cn
      elfznn adantl nndivred fsumrecl resubcld cmpt co1 vmadivsum o1res2 simprl
      vmacl simprr readdcld clt abscld ad2ant2r abs2dif2d nnrpd divge0d fsumge0
      cc0 vmage0 absidd logge0d oveq12d breqtrd cuz wss simprll flword2 syl3anc
      ltled fzss2 fsumless logled mpbid le2addd letrd o1bddrp trud ) DAEZUBFZUC
      GZBEZUDFZXKUEGZBUFZXHUGFZUHGZUIFZCEHIADUJUKGZULCJUMKAUAXRXPDCDUAEZUBFZUCG
      ZXMBUFZXSUGFZLGZKXRJMKAXRJKXHXRTZXHJTZKYENZXHDKYEXHMTZDXHHIZDMTZYEYHYINUO
      KUPDXHUNUQZURZDJTZYGUSOKYEYHYIYKUTZVAZVBVCZVDVEYJKUPOYGXPYGXNXOYGXJXMBYGD
      XIVFZYGXKXJTZNZXLXKYSXKVGTZXLMTZYRYTYGXKXIVHVIZXKVRZPZUUBVJZVKZYGXHYOQZVL
      ZRKAXRJXPYPAJXPVMVNTKABVOOVPKXSMTZDXSHIZNZNZYBYCUULYAXMBUULDXTVFUULXKYATZ
      NZXLXKUUNYTUUAUUMYTUULXKXTVHZVIZUUCPUUPVJVKZUULXSUULXSDKUUIUUJVQYMUULUSOK
      UUIUUJVSVAZQVTZYGUUKXHXSWAIZNZNZXQXNXOLGZYDUVBXPUVBXPYGXPMTUVAUUHSRWBUVBX
      NXOYGXNMTUVAUUFSZUVBXHYGYFUVAYOSZQZVTKUUKYDMTYEUUTUUSWCUVBXQXNUIFZXOUIFZL
      GUVCHUVBXNXOUVBXNUVDRUVBXOUVFRWDUVBUVGXNUVHXOLUVBXNUVDYGWHXNHIUVAYGXJXMBY
      QUUEYSXLXKUUDYSXKUUBWEYSYTWHXLHIZUUBXKWIZPWFWGSWJUVBXOYGXOMTUVAUUGSUVBXHY
      GYHUVAYLSZYGYIUVAYNSWKWJWLWMUVBXNXOYBYCUVDUVFKUUKYBMTYEUUTUUQWCUVBXSKUUKX
      SJTYEUUTUURWCQUVBYAXMXJBUVBDXTVFUVBUUMNZXLXKUVLYTUUAUUMYTUVBUUOVIZUUCPZUV
      MVJUVLXLXKUVNUVLXKUVMWEUVLYTUVIUVMUVJPWFUVBXTXIWNFTZXJYAWOUVBYHUUIXHXSHIZ
      UVOUVKYGUUIUUJUUTWPZUVBXHXSUVKUVQYGUUKUUTVSWSZXHXSWQWRXIDXTWTPXAUVBUVPXOY
      CHIUVRUVBXHXSUVEUVBXSXHUVQUVEUVRVAXBXCXDXEXFXG $.
  $}

  ${
    $d k n p A $.
    $( Lemma for ~ rplogsum .  (Contributed by Mario Carneiro, 2-May-2016.) $)
    rplogsumlem1 $p |- ( A e. NN -> sum_ n e. ( 2 ... A )
      ( ( log ` n ) / ( n x. ( n - 1 ) ) ) <_ 2 ) $=
      ( wcel c2 co cfv c1 cmin cmul cdiv csqrt cr 2re cle cc wceq fveq2d oveq2d
      wbr cc0 vk cn cfz cv clog csu fzfid wa cuz elfzuz eluz2nn adantl relogcld
      syl nnrpd uz2m1nn nnmulcld nndivred fsumrecl rpsqrtcld rerpdivcl resubcld
      crp sylancr a1i rpred nnred peano2rem remulcld caddc nncnd ax-1cn sylancl
      npcan rpge0d syl2anc eqbrtrrd readdcld remulcl lem1d sqrtled mpbid mpbird
      loglesqrt subge0d leadd2dd times2d breqtrrd lemul1ad cexp sqsqrtd oveq12d
      rpcnd subcl subsq nncan 3eqtr3d 2cn recnd mulassd 3brtr3d lemul1d mulid2d
      1red mul32d remsqsqrt mul4d eqtr3d wne rpcnne0d divsubdiv syl22anc subdid
      mulcomd eqtr4d mulcld rpmulcld rerpdivcld rpne0d divcan2d 3eqtrd letrd wb
      clt nngt0d ledivmul syl112anc fsumle oveq1 2m1e1 sqrt1 div1i nnz eluzp1p1
      syl6eq nnuz eleq2s df-2 fveq2i pncan syl6eleqr telfsum sumeq2dv nncn nnrp
      2rp rpdivcl subge02 eqbrtrd ) AUBCZDAUCEZBUDZUEFZUULUULGHEZIEZJEZBUFUUKDU
      UNKFZJEZDUULKFZJEZHEZBUFZDUUJUUKUUPBUUJDAUGZUUJUULUUKCZUHZUUMUUOUVEUULUVE
      UULUVDUULUBCZUUJUVDUULDUIFZCZUVFUULDAUJZUULUKUNULZUOZUMZUVEUULUUNUVJUVEUV
      HUUNUBCUVDUVHUUJUVIULUULUPUNZUQZURZUSUUJUUKUVABUVCUVEUURUUTUVEDLCZUUQVCCU
      URLCMUVEUUNUVEUUNUVMUOZUTZDUUQVAVDUVEUVPUUSVCCUUTLCMUVEUULUVKUTZDUUSVAVDV
      BZUSUVPUUJMVEUUJUUKUUPUVABUVCUVOUVTUVEUUPUVANSZUUMUUOUVAIEZNSZUVEUUMUUQUW
      BUVLUVEUUQUVRVFZUVEUUOUVAUVEUULUUNUVEUULUVJVGZUVEUULLCZUUNLCZUWEUULVHUNZV
      IZUVTVIUVEUUNGVJEZUEFZUUMUUQNUVEUWJUULUEUVEUULOCZGOCZUWJUULPUVEUULUVJVKZV
      LUULGVNVMQUVEUWGTUUNNSZUWKUUQNSUWHUVEUUNUVQVOZUUNWDVPVQUVEUUQUUSUUQIEZDUU
      SUUQHEZIEZIEZUWBNUVEGUUQIEZUUSUWSIEZUUQIEZUUQUWTNUVEGUXBNSUXAUXCNSUVEUUSU
      UQVJEZUWRIEZUUSDIEZUWRIEGUXBNUVEUXDUXFUWRUVEUUSUUQUVEUUSUVSVFZUWDVRUVEUUS
      LCUVPUXFLCUXGMUUSDVSVMUVEUUSUUQUXGUWDVBZUVETUWRNSUUQUUSNSZUVEUUNUULNSUXIU
      VEUULUWEVTUVEUUNUULUWHUWPUWEUVEUULUVKVOZWAWBZUVEUUSUUQUXGUWDWEWCUVEUXDUUS
      UUSVJEUXFNUVEUUQUUSUUSUWDUXGUXGUXKWFUVEUUSUVEUUSUVSWMZWGWHWIUVEUUSDWJEZUU
      QDWJEZHEZUULUUNHEZUXEGUVEUXMUULUXNUUNHUVEUULUWNWKUVEUUNUVEUWLUWMUUNOCUWNV
      LUULGWNVMWKWLUVEUUSOCZUUQOCZUXOUXEPUXLUVEUUQUVRWMZUUSUUQWOVPUVEUWLUWMUXPG
      PUWNVLUULGWPVMWQUVEUUSDUWRUXLDOCZUVEWRVEZUVEUWRUXHWSWTXAUVEGUXBUUQUVEXDUV
      EUUSUWSUXGUVEUVPUWRLCUWSLCMUXHDUWRVSVDZVIUVRXBWBUVEUUQUXSXCUVEUUSUWSUUQUX
      LUVEUWSUYBWSZUXSXEXAUVEUWBUWQUWQIEZUWSUWQJEZIEUWQUWQUYEIEZIEUWTUVEUUOUYDU
      VAUYEIUVEUUSUUSIEZUUQUUQIEZIEUUOUYDUVEUYGUULUYHUUNIUVEUWFTUULNSUYGUULPUWE
      UXJUULXFVPUVEUWGUWOUYHUUNPUWHUWPUUNXFVPWLUVEUUSUUSUUQUUQUXLUXLUXSUXSXGXHU
      VEUVADUUSIEDUUQIEHEZUUQUUSIEZJEZUYEUVEUXTUXTUXRUUQTXIUHUXQUUSTXIUHUVAUYKP
      UYAUYAUVEUUQUVRXJUVEUUSUVSXJDDUUQUUSXKXLUVEUWSUYIUWQUYJJUVEDUUSUUQUYAUXLU
      XSXMUVEUUSUUQUXLUXSXNWLXOWLUVEUWQUWQUYEUVEUUSUUQUXLUXSXPZUYLUVEUYEUVEUWSU
      WQUYBUVEUUSUUQUVSUVRXQZXRWSWTUVEUYFUWSUWQIUVEUWSUWQUYCUYLUVEUWQUYMXSXTRYA
      WHYBUVEUUMLCUVALCUUOLCTUUOYDSUWAUWCYCUVLUVTUWIUVEUUOUVNYEUUMUVAUUOYFYGWCY
      HUUJUVBDDAKFZJEZHEZDNUUJUUKUURDUULGVJEZGHEZKFZJEZHEZBUFDDAGVJEZGHEZKFZJEZ
      HEUVBUYPUUJDUAUDZGHEZKFZJEZUURUYTDBUAVUEDAVUFUULPZVUHUUQDJVUJVUGUUNKVUFUU
      LGHYIQRVUFUYQPZVUHUYSDJVUKVUGUYRKVUFUYQGHYIQRVUFDPZVUIDGJEDVULVUHGDJVULVU
      HGKFGVULVUGGKVULVUGDGHEGVUFDGHYIYJYOQYKYORDWRYLYOVUFVUBPZVUHVUDDJVUMVUGVU
      CKVUFVUBGHYIQRAYMUUJVUBGGVJEZUIFZUVGVUBVUOCAGUIFUBGAYNYPYQDVUNUIYRYSUUAUU
      JVUFDVUBUCECZUHZVUIVUQUVPVUHVCCVUILCMVUQVUGVUQVUGVUPVUGUBCZUUJVUPVUFUVGCV
      URVUFDVUBUJVUFUPUNULUOUTDVUHVAVDWSUUBUUJUUKVUAUVABUVEUYTUUTUURHUVEUYSUUSD
      JUVEUYRUULKUVEUWLUWMUYRUULPUWNVLUULGYTVMQRRUUCUUJVUEUYODHUUJVUDUYNDJUUJVU
      CAKUUJAOCUWMVUCAPAUUDVLAGYTVMQRRWQUUJTUYONSZUYPDNSZUUJUYOUUJDVCCUYNVCCUYO
      VCCUUFUUJAAUUEUTDUYNUUGVDZVOUUJUVPUYOLCVUSVUTYCMUUJUYOVVAVFDUYOUUHVDWBUUI
      YB $.

    $( Lemma for ~ rplogsum .  Equation 9.2.14 of [Shapiro], p. 331.
       (Contributed by Mario Carneiro, 2-May-2016.) $)
    rplogsumlem2 $p |- ( A e. ZZ -> sum_ n e. ( 1 ... A )
      ( ( ( Lam ` n ) - if ( n e. Prime , ( log ` n ) , 0 ) ) / n ) <_ 2 ) $=
      ( vp vk wcel c1 co cfv cprime cc0 cmin cdiv c2 cle wceq wa syl cmul wbr
      cr cz cfz cv cvma clog cif csu cicc cin cfl cexp flid sumeq1d fveq2 eleq1
      oveq2d ifbieq1d oveq12d id zre cn elfznn adantl vmacl nnrpd relogcld ifcl
      0re sylancl resubcld nndivred recnd simprr wn vmaprm prmnn nnred rplogcld
      crp prmgt1 eqeltrd rpne0d necon2bi ad2antll iffalsed syl6eq oveq1d cc wne
      0m0e0 ad2antrl rpcnne0d div0 eqtrd fsumvma2 eqtr3d cabs caddc fzfid inss2
      cfn wss simpr sseldi adantr zcn abscld peano2re sylancr letrd cuz syl2anc
      wb cn0 mpbird nnnn0d anassrs fsumrecl nnmulcld a1i elrpd rerpdivcld rpcnd
      clt mpbid eqbrtrd fveq2d nncnd elfzuz eluz2nn eleq2s syl2an sylan2 rpge0d
      1re nnrecred syl3anc nnne0d divrecd eqtr4d w3a inss1 elicc2 syl5ib simp3d
      sseli imp leabsd lep1d prmuz2 nn0abscl nn0p1nn nnzd elfz5 ex ssrdv simprl
      ssfi vmappw adantrr nnexpcl uz2m1nn nngt0d ltletrd mulid2d logled flge1nn
      2re lemuldivd nnuz syl6eleq oveq2 eleq1d fsum1p exp1d subidd 1p1e2 oveq1i
      iftrued nnq expnprm subid1d sumeq12dv nnnn0 addid2d 3eqtrd rpreccld flcld
      cq peano2zd rpexpcld resqcld peano2nnd reexpcld subge02d dmdcan divsubdir
      divdiv1 sqvald 3eqtr3d breqtrrd resubcl recgt1 ledivmul syl112anc lemul2d
      divid posdif nnz sumeq2dv expcl fsummulc2 cfzo fzval3 ltned 2nn0 eluzp1p1
      exprecd fveq2i syl6eleqr geoserg 3eqtr2d 3brtr4d eluz2b2 simprbi rpdivcld
      df-2 fsumle rpred fsumless rplogsumlem1 ) AUAEZFAUBGZBUCZUDHZUYNIEZUYNUEH
[encoded data, 4960 characters]
      LVVSVVOVUCCVVTWYMWYHVVOWYLYNVXIUYJUYLVXGWYGMNSVXHVVRCUYKQXJXJYF $.
  $}

  ${
    $( Lemma for ~ dchrisum0lem1 .  (Contributed by Mario Carneiro,
       7-Jun-2016.) $)
    dchrisum0lem1a $p |- ( ( ( ph /\ X e. RR+ ) /\ D e. ( 1 ... ( |_ ` X ) ) )
      -> ( X <_ ( ( X ^ 2 ) / D ) /\
           ( |_ ` ( ( X ^ 2 ) / D ) ) e. ( ZZ>= ` ( |_ ` X ) ) ) ) $=
      ( crp wcel wa c1 cfl cfv cfz co c2 cexp cle wbr cmul adantl adantr rpred
      cr cuz cn elfznn nnred cc0 clt simpr rpregt0d simpld rpge0d wb fznnfl syl
      cdiv simplbda lemul2ad wceq cc rpcn sqvald breqtrrd cz 2z rpexpcl sylancl
      nnrpd lemuldivd mpbid nndivre syl2an flword2 syl3anc jca ) ACDEZFZBGCHIZJ
      KEZFZCCLMKZBUNKZNOZVTHIVPUAIEZVRCBPKZVSNOWAVRWCCCPKZVSNVRBCCVRBVQBUBEZVOB
      VPUCZQZUDVRCTEZUECUFOZVOWHWIFVQVOCAVNUGZUHRUIZWKVRCVOVNVQWJRUJVOVQWEBCNOZ
      VOWHVQWEWLFUKVOCWJSBCULUMUOUPVOVSWDUQVQVOCVNCUREACUSQUTRVAVRCVSBWKVOVSTEZ
      VQVOVSVOVNLVBEVSDEWJVCCLVDVESZRVRBWGVFVGVHZVRWHVTTEZWAWBWKVOWMWEWPVQWNWFV
      SBVIVJWOCVTVKVLVM $.
  $}

  ${ $( $n b m q v F $n a b q y ph $n n A $n x B $)
    $d k m n u w x y z $.  $d c f i j k m n p t x y z .1. $.  $d d m n x y C $.
    $d c d e i j k n p r t u x y z F $.  $d i k n u x z I $.  $d i k n u x J $.
    $d a b c d f i j k m p q t v x y z A $.  $d d m x y E $.  $d k m r y K $.
    $d f G $.  $d c f i j k m n p q r t u x y z N $.  $d b i k m n q v x y P $.
    $d c d e f i j k m n p r t u x z ph $.  $d d m ps $.  $d d m n p r x y T $.
    $d c d i k m n u x z R $.  $d c d k m n r t x y S $.  $d k m n p u x z U $.
    $d b c i j k m n q r v y z B $.  $d c f t x z W $.  $d f k m n p x y z Z $.
    $d c f i j k m n t x y z D $.  $d a b c d f i j k m n p r t u v x y z L $.
    $d c i j k m n r u x z M $.  $d a b c d i j k m n r t u v x y z X $.
    rpvmasum.z $e |- Z = ( Z/nZ ` N ) $.
    rpvmasum.l $e |- L = ( ZRHom ` Z ) $.
    rpvmasum.a $e |- ( ph -> N e. NN ) $.
    ${
      rpvmasum.g $e |- G = ( DChr ` N ) $.
      rpvmasum.d $e |- D = ( Base ` G ) $.
      rpvmasum.1 $e |- .1. = ( 0g ` G ) $.
      $( Lemma for ~ rpvmasum .  Calculate the "trivial case" estimate
         ` sum_ n <_ x ( .1. ( n ) Lam ( n ) / n ) = log x + O(1) ` , where
         ` .1. ( x ) ` is the principal Dirichlet character.  Equation 9.4.7 of
         [Shapiro], p. 376.  (Contributed by Mario Carneiro, 2-May-2016.) $)
      rpvmasumlem $p |- ( ph -> ( x e. RR+ |-> ( sum_ n e. ( 1 ... ( |_ ` x ) )
  ( ( .1. ` ( L ` n ) ) x. ( ( Lam ` n ) / n ) ) - ( log ` x ) ) ) e. O(1) ) $=
        ( c1 co wcel cle cc0 vq vp crp cfl cfv cfz cvma cdiv csu clog cmin cmpt
        vk cv cmul co1 cvv cc cr rpssre a1i wa fzfid cn elfznn adantl vmacl syl
        nndivred recnd fsumcl adantr 1re wf eqid cz cn0 nnnn0d elfzelz ffvelrnd
        resubcl sylancr remulcld eqidd wceq 1cnd oveq1d mulid2d sumeq2dv eqtr3d
        eqtrd cdvds wbr cprime crab wss 1red cfn nnrpd relogcld sylan2 fsumrecl
        cuz simpr 0re syl6eqel wne ad3antrrr ad2antrr adantlr dchrn0 pm2.61dane
        biimpa dchr1 0le1 syl6eqbr leidi wb mpbird vmage0 nnred nngt0d syl22anc
        clt divge0 syl2anc sseli cexp fveq2 oveq2d ad2antrl simprr nncnd nnne0d
        oveq12d ad2antll anassrs mpbid syl3anc nnrecred cof reex relogcl subcld
        ssexi cbs dchr1re wfo znzrhfo fof ffvelrn syl2an offval2 sub32d fsumsub
        3syl subdird ax-1cn nncan 3eqtr3rd mpteq2dva vmadivsum prmdvdsfi elrabi
        c2 prmuz2 uz2m1nn cabs cui cabl cgrp dchrabl ablgrp grpidcl 4syl subge0
        prmnn mulge0d fsumge0 absidd cicc inss2 rabss2 mp1i ssrab2 sstri fveq2d
        ssfi id rpre div0d ad2ant2r mul01d fsumvma2 nnexpcld nnzd cdif wn breq1
        cin notbid notrab elrab2 cgcd simplrr simplrl coprm wi prmz rpexp1i mpd
        adantlrr znunit 1m1e0 syl6eq mul02d wo olcd sumz sylanr1 sylan2b fsumss
        ppifi caddc rpreccld eluz2b2 simprbi rplogcld rerpdivcld flcld peano2zd
        eqtr4d rpexpcld rpred resubcld rpdivcld divrecd simprl exprecd eqeltrrd
        vmappw eqcomd syl5breqr subge02 lemul1ad fsumle reexpcld fsummulc2 cfzo
        breqtrd fzval3 sumeq1d recgt1 ltned 1nn0 log1 logleb syl5eqbrr flge0nn0
        1rp divge0d nn0p1nn nnuz syl6eleq exp1d rpcnne0d divsubdir divid eqtr2d
        geoserg 3eqtrd rpge0d subge02d breqtrrd ledivmuld lemul2d letrd eqbrtrd
        dmdcan fsumless elo1d o1sub ) ABUCPBUNZUDUEZUFQZEUNZUGUEZVWFUHQZEUIZVWC
[encoded data, 6480 characters]
        AVWLVWRVWBWBUYT $.

      dchrisum.b $e |- ( ph -> X e. D ) $.
      dchrisum.n1 $e |- ( ph -> X =/= .1. ) $.
      ${
        $d m F $.
        dchrisum.2 $e |- ( n = x -> A = B ) $.
        dchrisum.3 $e |- ( ph -> M e. NN ) $.
        dchrisum.4 $e |- ( ( ph /\ n e. RR+ ) -> A e. RR ) $.
        dchrisum.5 $e |- ( ( ph /\ ( n e. RR+ /\ x e. RR+ ) /\
          ( M <_ n /\ n <_ x ) ) -> B <_ A ) $.
        dchrisum.6 $e |- ( ph -> ( n e. RR+ |-> A ) ~~>r 0 ) $.
        dchrisum.7 $e |- F = ( n e. NN |-> ( ( X ` ( L ` n ) ) x. A ) ) $.
        $( Lemma for ~ dchrisum .  Lemma 9.4.1 of [Shapiro], p. 377.
           (Contributed by Mario Carneiro, 2-May-2016.) $)
        dchrisumlema $p |- ( ph -> ( ( I e. RR+ -> [_ I / n ]_ A e. RR ) /\
          ( I e. ( M [,) +oo ) -> 0 <_ [_ I / n ]_ A ) ) ) $=
          ( vi crp wcel csb cr wi cpnf cico co cc0 cle wbr wral ralrimiva nfel1
          nfcsb1v cv wceq csbeq1a eleq1d rspc syl5com wa cmpt cfl cfv caddc cuz
          c1 csn cxp eqid wb nnred elicopnf syl simprbda flcld peano2zd cn nnuz
          cli 1zzd cdm nnrp ssriv dmmptd syl5sseqr rlimclim1 adantr cc 0red clt
          nngt0d simplbda ltletrd elrpd sylc recnd ssid fvex climconst2 syl2anc
          cz cn0 rpge0d flge0nn0 nn0p1nn eluznn sylan nnrpd ad2antrr weq fvmpts
          eqeltrd fvconst2g 3expia ralrimivva nfcv nfv nfbr nfral breq2 anbi12d
          nfim breq1 breq2d imbi12d ralbidv reflcl jca 3syl fllep1 eluzle letrd
          peano2re adantl anbi2d cvv eqvisset equtr2 csbied eqcomd breq1d rspcv
          equcoms syl3c 3brtr4d climle ex ) AJUKULZGJCUMZUNULZUOJLUPUQURULZUSUV
          AUTVAZUOACUNULZGUKVBZUUTUVBAUVEGUKUFVCZUVEUVBGJUKGUVAUNGJCVEZVDGVFZJV
          GZCUVAUNGJCVHZVIVJZVKAUVCUVDAUVCVLZUSUVAUJGUKCVMZJVNVOZVRVPURZVQVOZUV
          AVSVTZUVPUVQUVQWAUVMUVOUVMJAUVCJUNULZLJUTVAZALUNULZUVCUVSUVTVLWBALUEW
          CZLJWDWEZWFZWGWHZAUVNUSWKVAUVCAUSUVNVRWIWJAWLUHAUKWIUVNWMUJWIUKUJVFZW
          NWOAGUVNUKCUNUVNWAZUFWPWQWRWSUVMUVAWTULUVPXMULUVRUVAWKVAUVMUVAUVMUUTU
          VFUVBUVMJUWDUVMUSLJUVMXAAUWAUVCUWBWSUWDAUSLXBVAUVCALUEXCWSAUVCUVSUVTU
          WCXDZXEXFZAUVFUVCUVGWSUVLXGZXHUWEUVAUVPUVQUVQXIUVPVQXJXKXLUVMUWFUVQUL
          ZVLZUWFUVNVOZGUWFCUMZUNUWLUWFUKULZUWNUNULZUWMUWNVGUWLUWFUVMUVPWIULZUW
          KUWFWIULUVMUVOXNULZUWQUVMUVSUSJUTVAUWRUWDUVMJUWIXOJXPXLUVOXQWEUWFUVPX
          RXSZXTZUWLUWOUVFUWPUWTAUVFUVCUWKUVGYAUVEUWPGUWFUKGUWNUNGUWFCVEVDGUJYB
          ZCUWNUNGUWFCVHVIVJXGZGUWFCUKUVNUNUWGYCXLZUXBYDUWLUWFUVRVOZUVAUNUVMUVB
          UWKUXDUVAVGUWJUVQUVAUWFUNYEXSZUVMUVBUWKUWJWSYDUWLUWNUVAUWMUXDUTUWLUWO
          UVTJBVFZUTVAZVLZDUVAUTVAZUOZBUKVBZUVTJUWFUTVAZVLZUWNUVAUTVAZUWTUWLUUT
          LUVIUTVAZUVIUXFUTVAZVLZDCUTVAZUOZBUKVBZGUKVBZUXKUVMUUTUWKUWIWSAUYAUVC
          UWKAUXSGBUKUKAUVIUKULUXFUKULVLUXQUXRUGYFYGYAUXTUXKGJUKUXJGBUKGUKYHUXH
          UXIGUXHGYIGDUVAUTGDYHGUTYHUVHYJYNYKUVJUXSUXJBUKUVJUXQUXHUXRUXIUVJUXOU
          VTUXPUXGUVIJLUTYLUVIJUXFUTYOYMUVJCUVADUTUVKYPYQYRVJXGUWLUVTUXLUVMUVTU
          WKUWHWSUWLJUVPUWFUVMUVSUWKUWDWSZUWLUVSUVOUNULUVPUNULUYBJYSUVOUUEUUAUW
          LUWFUWSWCUVMJUVPUTVAZUWKUVMUVSUYCUWDJUUBWEWSUWKUVPUWFUTVAUVMUVPUWFUUC
          UUFUUDYTUXJUXMUXNUOBUWFUKBUJYBZUXHUXMUXIUXNUYDUXGUXLUVTUXFUWFJUTYLUUG
          UYDDUWNUVAUTUYDUWNDUYDGUWFCDUUHBUWFUUIUYDUXAVLBGYBCDVGZBGUJUUJUYEGBUD
          UUOWEUUKUULUUMYQUUNUUPUXCUXEUUQUURUUSYT $.

        ${
          dchrisum.9 $e |- ( ph -> R e. RR ) $.
          dchrisum.10 $e |- ( ph -> A. u e. ( 0 ..^ N )
            ( abs ` sum_ n e. ( 0 ..^ u ) ( X ` ( L ` n ) ) ) <_ R ) $.
          $( Lemma for ~ dchrisum .  Lemma 9.4.1 of [Shapiro], p. 377.
             (Contributed by Mario Carneiro, 2-May-2016.) $)
          dchrisumlem1 $p |- ( ( ph /\ U e. NN0 ) ->
            ( abs ` sum_ n e. ( 0 ..^ U ) ( X ` ( L ` n ) ) ) <_ R ) $=
            ( vk vm vi cn0 wcel wa cc0 cfzo co cv cfv csu cabs cmo cle cdiv cfl
            cmul caddc cin c0 wceq fzodisj a1i cfz cun wbr nnnn0d adantr adantl
            cr nn0re cn nndivred nnrpd nn0ge0 divge0d syl2anc syl mpbird wb cfn
            fzosplit fzofi ad2antrr cz elfzoelz dchrzrhcl fsumsplit wi c1 oveq2
            oveq2d sumeq1d eqeq1d imbi2d weq nncnd syl6eq syl2an nnzd 1cnd wral
            eqtrd cmin nn0z zaddcl fveq2 fveq2d fzoval cc nn0cn pncan2d oveq12d
            zcnd oveq1d cdvds syl2anr ralrimiva eqeq12d rspcv cif wne ifnefalse
            sylc eqid 3eqtrd flge0nn0 nn0mulcld flle lemuldiv2d fznn0 mpbir2and
            reflcl mul01d fzo0 sum0 oveq1 lep1d peano2re nnred nngt0d syl112anc
            clt mpbid nn0mulcl sylan nn0uz syl6eleq nn0p1nn nnmulcl elfz5 recnd
            lemul2 cuz adddid mulid1d nn0zd peano2zm ad3antrrr fsumshftm subidd
            elfzelz sub32d eqtr4d 3eqtr4d dvdsmul1 breqtrrd zndvds sumeq2dv cbs
            syl3anc cbvsumv cres nnne0d syl6eqel wf1o reseq1i znf1o fvres dchrf
            czrh ffvelrnda fsumf1o cphi dchrsum 3eqtr3rd syl6req syl5ibr expcom
            00id a2d nn0ind impcom syldan modval nn0cnd pncan3d eqtr2d syl21anc
            crp zmodcl rspc2va fsumcl addid2d zmodfzo breq1d eqbrtrd ) AHUQURZU
[encoded data, 5040 characters]
            WWFWWAUYKVFWWFWVTUYJUYGJWVSUYIUTVAXEXGYBUXTYNYRUYA $.

          ${
            dchrisumlem2.1 $e |- ( ph -> U e. RR+ ) $.
            dchrisumlem2.2 $e |- ( ph -> M <_ U ) $.
            dchrisumlem2.3 $e |- ( ph -> U <_ ( I + 1 ) ) $.
            dchrisumlem2.4 $e |- ( ph -> I e. NN ) $.
            dchrisumlem2.5 $e |- ( ph -> J e. ( ZZ>= ` I ) ) $.
            $( Lemma for ~ dchrisum .  Lemma 9.4.1 of [Shapiro], p. 377.
               (Contributed by Mario Carneiro, 2-May-2016.) $)
            dchrisumlem2 $p |- ( ph ->
            ( abs ` ( ( seq 1 ( + , F ) ` J ) - ( seq 1 ( + , F ) ` I ) ) ) <_
                ( ( 2 x. R ) x. [_ U / n ]_ A ) ) $=
              ( vi vk caddc c1 cfv cmin co cabs cfzo cv csb cmul csu c2 cle cfz
              wceq a1i wcel cuz cn peano2nnd nnuz syl6eleq syl fzofi cc elfzouz
              cfn syl6eleqr wa adantr cz adantl crp cc0 wbr dchrisumlema mulcld
              cr wi recnd sylan2 sumeq1d oveq1d nfcv nfcsb1v weq fveq2d csbeq1a
              syl2anc uztrn eqtr3d fsumcl syldan abscld remulcld wral ralrimiva
              csbeq1 eleq1d rspcv sylc rspc nnrpd elfzoelz readdcld eqtrd oveq2
              mpd cn0 eqbrtrd absmuld letrd dchrisumlem1 lemul2ad breq2 imbi12d
              jca nnnn0d cseq cin c0 fzodisj eluzp1p1 elfzuzb sylanbrc fzosplit
              cun nnz dchrzrhcl nnrp cpnf cico simpld syl5 imp fsumsplit fzval3
              eluzelz 3syl nnzd 3eqtr4d elfznn simpr nfov fveq2 oveq12d fsumser
              fvmptf fzfid ssun2 syl5sseqr sselda pncan2d nfel1 subcld peano2nn
              2re impcom syl2an resubcld mulcomd nnnn0 elfzelz adantlr fzosump1
              nn0uz eqtr2d oveq2d sumeq2dv elfzuz eluznn rspccva sylan telfsumo
              fsumparts abs2dif2d fsumrecl eqeltrrd eluzelre eluzle wb elicopnf
              nnred mpbir2and ssrdv peano2zd rpred eluz2 syl3anbrc sseldd mpdan
              simprd absidd le2addd adddird breqtrrd fsumabs syl2anr ralrimivva
              ex 3expia nfv nfbr nfim nfral breq1 anbi12d breq2d ralbidv anbi2d
              lep1d cvv eqvisset eqtr3 equcoms csbied eqcomd abssuble0d subge0d
              breq1d syl3c mpbird fsumle fsummulc1 breqtrd 2timesd ppncand 2cnd
              addcomd 3eqtr2d mul32d 3eqtr3d 2nn0 nn0ge0 mp1i absge0d mulge0d
              0red ) ANVCKVDUUAZVEZMVVAVEZVFVGZVHVEMVDVCVGZNVDVCVGZVIVGZVAVJZOV
[encoded data, 7760 characters]
              VUCYPYNYL $.
          $}

          $( Lemma for ~ dchrisum .  Lemma 9.4.1 of [Shapiro], p. 377.
             (Contributed by Mario Carneiro, 2-May-2016.) $)
          dchrisumlem3 $p |- ( ph -> E. t E. c e. ( 0 [,) +oo )
          ( seq 1 ( + , F ) ~~> t /\ A. x e. ( M [,) +oo ) ( abs `
            ( ( seq 1 ( + , F ) ` ( |_ ` x ) ) - t ) ) <_ ( c x. B ) ) ) $=
            ( ve vj vk vi vm caddc c1 cv cli wbr wex cfl cfv cmin cabs cmul cle
            co cpnf cico wral wa cc0 wrex wcel cvv cn nnuz cc wceq simpr adantr
            csb cr crp ralrimiva nfcsb1v nfel1 weq csbeq1a rspc recnd nfcv nfov
            eleq1d fveq2 fveq2d syl2anc eqeltrd clt cuz c2 wi 2re csu c0 syl6eq
            cfzo breq1d sylc cmpt 0red sylan ltletrd elrpd adantlr syl ad2antrr
            oveq1d sylancom wb elicopnf syl3an1 mpd eqtrd remulcld lelttr mpand
            syl3anc 1red ffvelrnd subcld oveq2d a1i eqid nnex cdm impcom syl2an
            cseq 1zzd nnzd dchrzrhcl nnrp mulcld oveq12d serf ffvelrnda cdiv id
            fvmptf remulcl sylancr lbfzo0 oveq2 fzo0 sumeq1d sum0 abs00bd rspcv
            sylibr 0le2 mulge0 mpanl12 ge0p1rpd rpdivcl syl2anr rlimi cif nnred
            crli ifcld nngt0d max1 nfv nffv nfbr nfim imbi12d subid1d mpbir2and
            breq2 max2 r19.21bi simpll dchrisumlema simprd absidd rpre ad2antlr
            ltmuldiv2d bitr4d rpred lep1d lemul1ad sylbid nnge1d letrd 3adant1r
            wne flge1nn fllep1 dchrisumlem2 adantllr wf ad3antrrr eluznn abscld
            ralrimdva raleqbidv rspcev syl6an syld embantd rexlimdva seqex eldm
            caucvg sylib elrege0 sylanbrc csn cxp cxr wss pnfxr icossre sylancl
            sselda flcld simplr simplbda ovex fvmpt3i climsubc2 fvconst2 eqtr4d
            mptex climabs cz mpan9 syldan 1z eqimss2i climconst2 simplll reflcl
            fvex peano2re 3syl flltp1 ltled abssubd 3brtr4d climle oveq1 breq2d
            ralbidv vex equequ2 biimpa csbied breq12d cbvralv syl6bbr ex eximdv
            r19.42v ) AUTKVAUUDZDVBZVCVDZDVEZVVOBVBZVFVGZVVMVGZVVNVHVLZVIVGZRVB
[encoded data, 6400 characters]
            VVJVVKYH $.
        $}

        $( If ` n e. [ M , +oo ) |-> A ( n ) ` is a positive decreasing
           function approaching zero, then the infinite sum
           ` sum_ n , X ( n ) A ( n ) ` is convergent, with the partial sum
           ` sum_ n <_ x , X ( n ) A ( n ) ` within ` O ( A ( M ) ) ` of the
           limit ` T ` .  Lemma 9.4.1 of [Shapiro], p. 377.  (Contributed by
           Mario Carneiro, 2-May-2016.) $)
        dchrisum $p |- ( ph -> E. t E. c e. ( 0 [,) +oo )
          ( seq 1 ( + , F ) ~~> t /\ A. x e. ( M [,) +oo ) ( abs `
            ( ( seq 1 ( + , F ) ` ( |_ ` x ) ) - t ) ) <_ ( c x. B ) ) ) $=
          ( vu vm vr vi cc0 cv cfzo co cfv csu cabs cle wbr wral caddc cseq cli
          c1 cfl cmin cmul cpnf cico wa wrex wex cr cfn wcel fzofi a1i elfzoelz
          adantr cz adantl dchrzrhcl fsumcl abscld ralrimivw sylancr cn wne crp
          fimaxre3 adantlr 3adant1r cmpt simprl simprr weq fveq2 fveq2d cbvsumv
          crli oveq2 sumeq1d syl5eq breq1d cbvralv sylib dchrisumlem3 rexlimddv
          ) AUOUKUPZUQURZULUPZKUSZNUSZULUTZVAUSZUMUPZVBVCZUKUOMUQURZVDZVEIVHVFZ
          CUPZVGVCBUPZVIUSYDUSYEVJURVAUSPUPEVKURVBVCBLVLVMURVDVNPUOVLVMURVOCVPU
          MVQAYBVRVSXSVQVSZUKYBVDYCUMVQVOUOMVTAYGUKYBAXRAXNXQULXNVRVSAUOXMVTWAA
          XOXNVSZVNXOFJKMNOTQUARANFVSZYHUCWCYHXOWDVSAXOUOXMWBWEWFWGWHWIUMUKYBXS
          WNWJAXTVQVSZYCVNZVNZBUNCDEFXTGHIJKLMNOPQRAMWKVSYKSWCTUAUBAYIYKUCWCANG
          WLYKUDWCUEALWKVSYKUFWCAHUPZWMVSZDVQVSYKUGWOAYNYFWMVSVNLYMVBVCYMYFVBVC
          VNEDVBVCYKUHWPAHWMDWQUOXDVCYKUIWCUJAYJYCWRYLYCUOUNUPZUQURZYMKUSZNUSZH
          UTZVAUSZXTVBVCZUNYBVDAYJYCWSYAUUAUKUNYBUKUNWTZXSYTXTVBUUBXRYSVAUUBXRX
          NYRHUTYSXNXQYRULHULHWTXPYQNXOYMKXAXBXCUUBXNYPYRHXMYOUOUQXEXFXGXBXHXIX
          JXKXL $.
      $}

      ${
        $d m F $.
        dchrisumn0.f $e |- F = ( a e. NN |-> ( ( X ` ( L ` a ) ) / a ) ) $.
        $( Lemma for ~ dchrmusum and ~ dchrisumn0 .  Apply ~ dchrisum for the
           function ` 1 / y ` .  (Contributed by Mario Carneiro,
           4-May-2016.) $)
        dchrmusumlema $p |- ( ph -> E. t E. c e. ( 0 [,) +oo )
     ( seq 1 ( + , F ) ~~> t /\ A. y e. ( 1 [,) +oo ) ( abs `
        ( ( seq 1 ( + , F ) ` ( |_ ` y ) ) - t ) ) <_ ( c / y ) ) ) $=
          ( vx vn caddc c1 cseq cv cli wbr cfl cfv cmin cabs cdiv cle cpnf cico
          co wral wa cc0 wrex wex cn cmul cmpt oveq2 1nn a1i crp rpreccl adantl
          wcel rpred w3a simp3r wb clt rpregt0 lerec syl2an 3ad2ant2 mpbid crli
          cr ax-1cn divrcnv mp1i weq fveq2 fveq2d oveq12d cbvmptv dchrisum wceq
          cc adantr cz nnz dchrzrhcl nncn nnne0 divrecd mpteq2dva eqtri 3eqtr4g
          wne id seqeq3d breq1d oveq1d breq12d cbvralv ad2antrr elrege0 simplbi
          fveq1d recnd ad2antlr 1re elicopnf ax-mp 0red simprbi ltletrd gt0ne0d
          1red 0lt1 ralbidva syl5bb anbi12d rexbidva exbidv mpbird ) AUEFUFUGZC
          UHZUIUJZBUHZUKULZYPULZYQUMUSZUNULZMUHZYSUOUSZUPUJZBUFUQURUSZUTZVAZMVB
          UQURUSZVCZCVDUELVELUHZHULZJULZUFUULUOUSZVFUSZVGZUFUGZYQUIUJZUCUHZUKUL
          ZUURULZYQUMUSZUNULZUUDUFUUTUOUSZVFUSZUPUJZUCUUGUTZVAZMUUJVCZCVDAUCCUF
          UDUHZUOUSZUVEDEUDUUQGHUFIJKMNOPQRSTUAUVKUUTUFUOVHUFVEVNAVIVJAUVKVKVNZ
          VAUVLUVMUVLVKVNAUVKVLVMVOAUVMUUTVKVNZVAZUFUVKUPUJZUVKUUTUPUJZVAZVPUVQ
          UVEUVLUPUJZAUVOUVPUVQVQUVOAUVQUVSVRZUVRUVMUVKWFVNVBUVKVSUJVAUUTWFVNZV
          BUUTVSUJVAUVTUVNUVKVTUUTVTUVKUUTWAWBWCWDUFWQVNUDVKUVLVGVBWEUJAWGUFUDW
          HWILUDVEUUPUVKHULZJULZUVLVFUSZLUDWJZUUNUWCUUOUVLVFUWEUUMUWBJUULUVKHWK
          WLZUULUVKUFUOVHWMWNZWOAUUKUVJCAUUIUVIMUUJAUUDUUJVNZVAZYRUUSUUHUVHUWIY
          PUURYQUIUWIFUUQUEUFAFUUQWPUWHAUDVEUWCUVKUOUSZVGZUDVEUWDVGFUUQAUDVEUWJ
          UWDAUVKVEVNZVAZUWCUVKUWMUVKDGHIJKQNROAJDVNUWLTWRUWLUVKWSVNAUVKWTVMXAU
          WLUVKWQVNAUVKXBVMUWLUVKVBXHAUVKXCVMXDXEFLVEUUNUULUOUSZVGUWKUBLUDVEUWN
          UWJUWEUUNUWCUULUVKUOUWFUWEXIWMWNXFUWGXGZWRXJXKUUHUVAYPULZYQUMUSZUNULZ
          UUDUUTUOUSZUPUJZUCUUGUTUWIUVHUUFUWTBUCUUGBUCWJZUUCUWRUUEUWSUPUXAUUBUW
          QUNUXAUUAUWPYQUMUXAYTUVAYPYSUUTUKWKWLXLWLYSUUTUUDUOVHXMXNUWIUWTUVGUCU
          UGUWIUUTUUGVNZVAZUWRUVDUWSUVFUPAUWRUVDWPUWHUXBAUWQUVCUNAUWPUVBYQUMAUV
          AYPUURAFUUQUEUFUWOXJXRXLWLXOUXCUUDUUTUWHUUDWQVNAUXBUWHUUDUWHUUDWFVNVB
          UUDUPUJUUDXPXQXSXTUXCUUTUXBUWAUWIUXBUWAUFUUTUPUJZUFWFVNUXBUWAUXDVAVRY
          AUFUUTYBYCZXQVMZXSUXCUUTUXCVBUFUUTUXCYDUXCYHUXFVBUFVSUJUXCYIVJUXBUXDU
          WIUXBUWAUXDUXEYEVMYFYGXDXMYJYKYLYMYNYO $.

        dchrisumn0.c $e |- ( ph -> C e. ( 0 [,) +oo ) ) $.
        dchrisumn0.t $e |- ( ph -> seq 1 ( + , F ) ~~> T ) $.
        dchrisumn0.1 $e |- ( ph -> A. y e. ( 1 [,) +oo )
          ( abs ` ( ( seq 1 ( + , F ) ` ( |_ ` y ) ) - T ) ) <_
            ( C / y ) ) $.
        $( The sum of the M&ouml;bius function multiplied by a non-principal
           Dirichlet character, divided by ` n ` , is bounded, provided that
           ` T =/= 0 ` .  Lemma 9.4.2 of [Shapiro], p. 380.  (Contributed by
           Mario Carneiro, 4-May-2016.) $)
        dchrmusum2 $p |- ( ph ->
          ( x e. RR+ |-> ( sum_ d e. ( 1 ... ( |_ ` x ) )
            ( ( X ` ( L ` d ) ) x. ( ( mmu ` d ) / d ) ) x. T ) ) e. O(1) ) $=
          ( vm vn crp c1 cmpt co1 wcel cv cfl cfv cfz co cmu cdiv csu cr wss cc
          cmul rpssre ax-1cn o1const mp2an a1i wa fzfid ad2antrr elfzelz adantl
          cz dchrzrhcl elfznn mucl zred nndivre mpancom syl recnd mulcld fsumcl
          caddc cseq cli wbr climcl adantr cmin 1red cc0 cle cpnf cico adantlrr
          cn cabs wf nnuz wne divcld fveq2 fveq2d id oveq12d rpred syl2an nncnd
          wceq mulid2d wb eqbrtrd flge1nn syl2anc sumeq2dv oveq1d nnne0d oveq2d
          mpbid zcnd 3eqtr2d syl6eleq abscld remulcld rerpdivcld absge0d nnnn0d
          cn0 eqtrd lemul12ad absmuld 3brtr4d syl3anc breqtrd letrd subcl sylib
          sylancr elrege0 simpld 1zzd nnz nncn nnne0 eqtri fmptd ffvelrnda serf
          cbvmptv simprl fznnfl simplbda nnrpd lemuldivd ffvelrnd fsumsub cdvds
          subdid ad3antrrr ad2antlr dchrzrhmul divmuldivd eqtr4d mulassd div12d
          crab simpll fsummulc2 ovex fvmpt cuz fsumser 3eqtr2rd elrabi ad2antll
          sselda adantrr simprr eluzfz1 musumsum dchrzrh1 1div1e1 syl6eq eqtr2d
          ssriv dvdsflsumcom fsummulc1 3eqtr4rd subcld fsumrecl reflcl nnrecred
          fsumabs cbs eqid wfo znzrhfo fof 3syl ffvelrn dchrabs2 rprege0d absid
          absdivd mule1 lediv1dd wral 1re elicopnf ax-mp sylanbrc oveq2 breq12d
          rspcv sylc rpcnne0 ad2antrl divdiv2 syl112anc div23 divcan4d divrec2d
          eqcomd eqtr3d fsumle chash hashfz1 cfn fsumconst 3eqtr4d flle lemul1a
          divass syl31anc ledivmuld mpbird elo1d o1dif ) ABUJUKULUMUNZBUJUKBUOZ
[encoded data, 5520 characters]
          TXQVUBVUCYD $.
      $}

      ${
        $d n A $.
        dchrvmasum.a $e |- ( ph -> A e. RR+ ) $.
        $( An alternative expression for a Dirichlet-weighted von Mangoldt sum
           in terms of the M&ouml;bius function.  Equation 9.4.11 of [Shapiro],
           p. 377.  (Contributed by Mario Carneiro, 3-May-2016.) $)
        dchrvmasumlem1 $p |- ( ph -> sum_ n e. ( 1 ... ( |_ ` A ) )
            ( ( X ` ( L ` n ) ) x. ( ( Lam ` n ) / n ) ) =
          sum_ d e. ( 1 ... ( |_ ` A ) )
            ( ( ( X ` ( L ` d ) ) x. ( ( mmu ` d ) / d ) ) x.
            sum_ m e. ( 1 ... ( |_ ` ( A / d ) ) )
              ( ( X ` ( L ` m ) ) x. ( ( log ` m ) / m ) ) ) ) $=
          ( vx vi c1 cfl cfv cfz co cv cdvds wbr cn crab cmu cdiv clog cmul csu
          cvma wceq fveq2 fveq2d oveq2 oveq1 oveq12d rpred wcel wa cc adantr cz
          elfzelz adantl dchrzrhcl adantrr elrabi ad2antll mucl syl zred elfznn
          ad2antrl nndivred recnd rpdivcld relogcld mulcld dvdsflsumcom cmpt cr
          nnrpd wf wss vmaf a1i ax-resscn sylancl vmasum eqcomd mpteq2dva muinv
          fss fveq1d cvv sumex fvmpt2 sylan9eq breq1 elrab simprbi wb nndivdvds
          eqid syl2an mpbid fvex fvmpt oveq2d sumeq2dv eqtrd cfn dvdsssfz1 ssfi
          oveq1d fzfid syl2anc nncnd zcnd anassrs nnne0d fsumdivc div23d 3eqtrd
          cc0 wne fsummulc2 cle fznnfl simprbda rpcnne0d mul4d dchrzrhmul div23
          ad2antrr ad2antlr rpmulcld syl3anc divmuldiv syl22anc rpne0d divcan3d
          crp rpcnd 3eqtr4rd eqtr4d 3eqtr4d ) AUDBUEUFZUGUHZUBUIZFUIZUJUKZUBULU
          MZUUTHUFZJUFZLUIZUNUFZUUTUOUHZUUTUVEUOUHZUPUFZUQUHZUQUHZLURZFURUURUDB
          UVEUOUHUEUFZUGUHZUVEEUIZUQUHZHUFZJUFZUVFUVPUOUHZUVPUVEUOUHZUPUFZUQUHZ
          UQUHZEURZLURUURUVDUUTUSUFZUUTUOUHZUQUHZFURUURUVEHUFJUFZUVFUVEUOUHZUQU
          HZUVNUVOHUFJUFZUVOUPUFZUVOUOUHZUQUHZEURUQUHZLURAUBBUVKUWCEFLUUTUVPUTZ
          UVDUVRUVJUWBUQUWPUVCUVQJUUTUVPHVAVBUWPUVGUVSUVIUWAUQUUTUVPUVFUOVCUWPU
          VHUVTUPUUTUVPUVEUOVDVBVEVEABUAVFZAUUTUURVGZUVEUVBVGZVHVHZUVDUVJAUWRUV
          DVIVGUWSAUWRVHZUUTCGHIJKPMQNAJCVGZUWRSVJUWRUUTVKVGAUUTUDUUQVLVMVNZVOU
          WTUVGUVIUWTUVGUWTUVFUUTUWTUVFUWTUVEULVGZUVFVKVGZUWSUXDAUWRUVAUBUVEULV
          PZVQZUVEVRZVSZVTUWRUUTULVGZAUWSUUTUUQWAZWBZWCWDUWTUVIUWTUVHUWTUUTUVEU
          WTUUTUXLWKUWTUVEUXGWKWEWFWDZWGZWGWHAUURUWGUVLFUXAUWGUVDUVBUVJLURZUQUH
          UVLUXAUWFUXOUVDUQUXAUWFUVBUVFUVIUQUHZLURZUUTUOUHUVBUXPUUTUOUHZLURUXOU
          XAUWEUXQUUTUOUXAUWEUVBUVFUVHEULUWLWIZUFZUQUHZLURZUXQAUWRUWEUUTFULUYBW
          IZUFZUYBAUUTUSUYCAUBLUCFEUSUXSAULWJUSWLZWJVIWMULVIUSWLUYEAWNWOWPULWJV
          IUSXBWQAEULUWLUUSUVOUJUKUBULUMUCUIUSUFUCURZAUVOULVGZVHUYFUWLUYGUYFUWL
          UTAUBUVOUCWRVMWSWTXAXCUWRUXJUYBXDVGUYDUYBUTUXKUVBUYALXEFULUYBXDUYCUYC
          XMXFWQXGUXAUVBUYAUXPLUXAUWSVHZUXTUVIUVFUQUYHUVHULVGZUXTUVIUTUYHUVEUUT
          UJUKZUYIUWSUYJUXAUWSUXDUYJUVAUYJUBUVEULUUSUVEUUTUJXHXIXJVMUXAUXJUXDUY
          JUYIXKUWSUWRUXJAUXKVMZUXFUUTUVEXLXNXOEUVHUWLUVIULUXSUVOUVHUPVAUXSXMUV
          HUPXPXQVSXRXSXTYDUXAUVBUXPUUTLUXAUDUUTUGUHZYAVGUVBUYLWMZUVBYAVGUXAUDU
          UTYEUXAUXJUYMUYKUUTUBYBVSUYLUVBYCYFZUXAUUTUYKYGZUYHUVFUVIAUWRUWSUVFVI
          VGZUWTUVFUXIYHYIAUWRUWSUVIVIVGUXMYIZWGUXAUUTUYKYJZYKUXAUVBUXRUVJLUYHU
          VFUVIUUTUYHUVFUYHUXDUXEUWSUXDUXAUXFVMUXHVSYHUYQUXAUUTVIVGUWSUYOVJUXAU
          UTYNYOUWSUYRVJYLXSYMXRUXAUVBUVJUVDLUYNUXCAUWRUWSUVJVIVGUXNYIYPXTXSAUU
          RUWOUWDLAUVEUURVGZVHZUWOUVNUWJUWNUQUHZEURUWDUYTUVNUWNUWJEUYTUDUVMYEUY
          TUWHUWIUYTUVECGHIJKPMQNAUXBUYSSVJUYSUVEVKVGZAUVEUDUUQVLZVMVNZUYTUWIUY
          TUVFUVEUYTUVFUYTUXDUXEAUYSUXDUVEBYQUKZABWJVGUYSUXDVUEVHXKUWQUVEBYRVSY
          SZUXHVSVTZVUFWCWDZWGUYTUVOUVNVGZVHZUWKUWMVUJUVOCGHIJKPMQNAUXBUYSVUISU
          UDZVUIUVOVKVGUYTUVOUDUVMVLVMZVNZVUJUWMVUJUWLUVOVUJUVOVUJUVOVUIUYGUYTU
          VOUVMWAVMZWKZWFZVUNWCWDZWGYPUYTUVNVUAUWCEVUJVUAUWHUWKUQUHZUWIUWMUQUHZ
          UQUHUWCVUJUWHUWIUWKUWMUYTUWHVIVGVUIVUDVJUYTUWIVIVGVUIVUHVJVUMVUQUUAVU
          JUVRVURUWBVUSUQVUJUVEUVOCGHIJKPMQNVUKUYSVUBAVUIVUCUUEVULUUBVUJUVFUWLU
          QUHUVPUOUHZUVSUWLUQUHZVUSUWBVUJUYPUWLVIVGZUVPVIVGUVPYNYOVHVUTVVAUTVUJ
          UVFUYTUVFWJVGVUIVUGVJWDZVUJUWLVUPWDZVUJUVPVUJUVEUVOUYTUVEUULVGVUIUYTU
          VEVUFWKVJZVUOUUFYTUVFUWLUVPUUCUUGVUJUYPVVBUVEVIVGUVEYNYOVHUVOVIVGUVOY
          NYOVHVUSVUTUTVVCVVDVUJUVEVVEYTVUJUVOVUOYTUVFUWLUVEUVOUUHUUIVUJUWAUWLU
          VSUQVUJUVTUVOUPVUJUVOUVEVUJUVOVUNYGVUJUVEVVEUUMVUJUVEVVEUUJUUKVBXRUUN
          VEUUOXSXTXSUUP $.

        dchrvmasum2.2 $e |- ( ph -> 1 <_ A ) $.
        $( Give an expression for ` log x ` remarkably similar to
           ` sum_ n <_ x ( X ( n ) Lam ( n ) / n ) ` given in
           ~ dchrvmasumlem1 .  Part of Lemma 9.4.3 of [Shapiro], p. 380.
           (Contributed by Mario Carneiro, 4-May-2016.) $)
        dchrvmasum2lem $p |- ( ph -> ( log ` A ) =
          sum_ d e. ( 1 ... ( |_ ` A ) )
            ( ( ( X ` ( L ` d ) ) x. ( ( mmu ` d ) / d ) ) x.
            sum_ m e. ( 1 ... ( |_ ` ( A / d ) ) )
            ( ( X ` ( L ` m ) ) x. ( ( log ` ( ( A / d ) / m ) ) / m ) ) ) ) $=
          ( vx vn c1 cfl cfv cfz co cv cdvds wbr cn crab cmu cdiv clog cmul csu
          wceq fveq2 fveq2d id oveq12d oveq2 oveq2d rpred wa cz elrabi ad2antll
          wcel mucl zcnd cc adantr elfzelz adantl dchrzrhcl elfznn nncnd nnne0d
          syl divcld crp nnrpd rpdivcl syl2an recnd mulcld adantrr dvdsflsumcom
          relogcld fzfid wss ssriv a1i cuz cr cle flge1nn syl2anc nnuz syl6eleq
          eluzfz1 musumsum dchrzrh1 oveq1d 1div1e1 syl6eq rpcnd mulid2d 3eqtrrd
          div1d wb fznnfl simprbda nndivred ad2antrr fsummulc2 cc0 wne rpcnne0d
          zred div12 syl3anc rpne0d mulassd mul4d ad2antlr dchrzrhmul divmuldiv
          syl22anc eqtr4d divdiv1 eqcomd mulcomd eqtrd 3eqtr4d sumeq2dv ) AUDBU
          EUFZUGUHZUBUIUCUIZUJUKZUBULUMZKUIZUNUFZUUBGUFZIUFZUUBUOUHZBUUBUOUHZUP
          UFZUQUHZUQUHZKURUCURZUUAUDBUUEUOUHZUEUFZUGUHZUUFUUEEUIZUQUHZGUFZIUFZU
          USUOUHZBUUSUOUHZUPUFZUQUHZUQUHZEURZKURBUPUFZUUAUUEGUFIUFZUUFUUEUOUHZU
          QUHZUUQUURGUFIUFZUUOUURUOUHZUPUFZUURUOUHZUQUHZEURUQUHZKURAUBBUUMUVFEU
          CKUUBUUSUSZUULUVEUUFUQUVRUUIUVBUUKUVDUQUVRUUHUVAUUBUUSUOUVRUUGUUTIUUB
          UUSGUTVAUVRVBVCUVRUUJUVCUPUUBUUSBUOVDVAVCVEABTVFZAUUBUUAVKZUUEUUDVKZV
          GVGZUUFUULUWBUUFUWBUUEULVKZUUFVHVKZUWAUWCAUVTUUCUBUUEULVIVJUUEVLZWBVM
          AUVTUULVNVKUWAAUVTVGZUUIUUKUWFUUHUUBUWFUUBCFGHIJOLPMAICVKZUVTRVOUVTUU
          BVHVKAUUBUDYTVPVQVRUWFUUBUVTUUBULVKAUUBYTVSZVQZVTUWFUUBUWIWAWCUWFUUKU
          WFUUJABWDVKZUUBWDVKUUJWDVKUVTTUVTUUBUWHWEBUUBWFWGWLWHWIZWJWIWKAUUNUDG
          UFZIUFZUDUOUHZBUDUOUHZUPUFZUQUHZUDUVHUQUHUVHAUUAUULUWQKUCUBUUBUDUSZUU
          IUWNUUKUWPUQUWRUUHUWMUUBUDUOUWRUUGUWLIUUBUDGUTVAUWRVBVCUWRUUJUWOUPUUB
          UDBUOVDVAVCAUDYTWMUUAULWNAUCUUAULUWHWOWPAYTUDWQUFZVKUDUUAVKAYTULUWSAB
          WRVKZUDBWSUKYTULVKUVSUABWTXAXBXCUDYTXDWBUWKXEAUWNUDUWPUVHUQAUWNUDUDUO
          UHUDAUWMUDUDUOACFGHIJOLPMRXFXGXHXIAUWOBUPABABTXJZXMVAVCAUVHAUVHABTWLW
          HXKXLAUUAUVQUVGKAUUEUUAVKZVGZUVQUUQUVKUVPUQUHZEURUVGUXCUUQUVPUVKEUXCU
          DUUPWMUXCUVIUVJUXCUUECFGHIJOLPMAUWGUXBRVOUXBUUEVHVKZAUUEUDYTVPZVQVRZU
          XCUVJUXCUUFUUEUXCUUFUXCUWCUWDAUXBUWCUUEBWSUKZAUWTUXBUWCUXHVGXNUVSUUEB
          XOWBXPZUWEWBYCZUXIXQWHWIUXCUURUUQVKZVGZUVLUVOUXLUURCFGHIJOLPMAUWGUXBU
          XKRXRZUXKUURVHVKUXCUURUDUUPVPVQZVRZUXLUVOUXLUVNUURUXLUVMUXCUUOWDVKZUU
          RWDVKUVMWDVKUXKAUWJUUEWDVKZUXPUXBTUXBUUEUUEYTVSWEBUUEWFWGUXKUURUURUUP
          VSZWEUUOUURWFWGWLZUXKUURULVKUXCUXRVQZXQWHWIXSUXCUUQUXDUVFEUXLUXDUUFUV
          IUUEUOUHZUQUHZUVNUVLUURUOUHZUQUHZUQUHZUVFUXLUVKUYBUVPUYDUQUXLUVIVNVKZ
          UUFVNVKUUEVNVKUUEXTYAVGZUVKUYBUSUXCUYFUXKUXGVOZUXLUUFUXCUUFWRVKUXKUXJ
          VOWHZUXLUUEUXCUXQUXKUXCUUEUXIWEVOZYBZUVIUUFUUEYDYEUXLUVLVNVKZUVNVNVKU
          URVNVKUURXTYAVGZUVPUYDUSUXOUXLUVNUXSWHZUXLUURUXLUURUXTWEYBZUVLUVNUURY
          DYEVCUXLUUFUVNUQUHUYAUYCUQUHZUQUHUUFUVNUYPUQUHZUQUHUYEUVFUXLUUFUVNUYP
          UYIUYNUXLUYAUYCUXLUVIUUEUYHUXLUUEUYJXJUXLUUEUYJYFWCZUXLUVLUURUXOUXLUU
          RUXTVTUXLUURUXTWAWCZWIZYGUXLUUFUYAUVNUYCUYIUYRUYNUYSYHUXLUVEUYQUUFUQU
          XLUVEUYPUVNUQUHUYQUXLUVBUYPUVDUVNUQUXLUVBUVIUVLUQUHZUUSUOUHZUYPUXLUVA
          VUAUUSUOUXLUUEUURCFGHIJOLPMUXMUXBUXEAUXKUXFYIUXNYJXGUXLUYFUYLUYGUYMUY
          PVUBUSUYHUXOUYKUYOUVIUVLUUEUURYKYLYMUXLUVCUVMUPUXLUVMUVCUXLBVNVKZUYGU
          YMUVMUVCUSAVUCUXBUXKUXAXRUYKUYOBUUEUURYNYEYOVAVCUXLUYPUVNUYTUYNYPYQVE
          YRYQYSYQYSYR $.

        $( Combine the results of ~ dchrvmasumlem1 and ~ dchrvmasum2lem inside
           a conditional.  (Contributed by Mario Carneiro, 4-May-2016.) $)
        dchrvmasum2if $p |- ( ph -> ( sum_ n e. ( 1 ... ( |_ ` A ) )
              ( ( X ` ( L ` n ) ) x. ( ( Lam ` n ) / n ) ) +
            if ( ps , ( log ` A ) , 0 ) ) =
          sum_ d e. ( 1 ... ( |_ ` A ) )
            ( ( ( X ` ( L ` d ) ) x. ( ( mmu ` d ) / d ) ) x.
            sum_ m e. ( 1 ... ( |_ ` ( A / d ) ) ) ( ( X ` ( L ` m ) ) x.
              ( ( log ` if ( ps , ( A / d ) , m ) ) / m ) ) ) ) $=
          ( c1 cfl cfv cfz co cv cvma cdiv cmul csu clog cc0 cif caddc cmu wceq
          wa fzfid wcel adantr cz elfzelz adantl dchrzrhcl cn cr elfznn nndivre
          mucl zred mpancom syl recnd mulcld nnrpd relogcld nndivred fsumcl crp
          rpdivcl syl2an fsumadd cmin relogdivd oveq2d cc pncan3d eqtr2d oveq1d
          rpdivcld nnne0d divdird adddid sumeq2dv dchrvmasumlem1 dchrvmasum2lem
          nncnd eqtrd oveq12d 3eqtr4rd iftrue fveq2d sumeq2sdv 3eqtr4d wn vmacl
          addid1d iffalse eqcomd sylan9eqr pm2.61dan ) ABUDCUEUFZUGUHZGUIZIUFKU
          FZXQUJUFZXQUKUHZULUHZGUMZBCUNUFZUOUPZUQUHZXPMUIZIUFKUFZYFURUFZYFUKUHZ
          ULUHZUDCYFUKUHZUEUFZUGUHZFUIZIUFKUFZBYKYNUPZUNUFZYNUKUHZULUHZFUMZULUH
          ZMUMZUSABUTYBYCUQUHZXPYJYMYOYKUNUFZYNUKUHZULUHZFUMZULUHZMUMZYEUUBAUUC
          UUIUSBAXPYJYMYOYNUNUFZYNUKUHZULUHZFUMZULUHZYJYMYOYKYNUKUHZUNUFZYNUKUH
          ZULUHZFUMZULUHZUQUHZMUMXPUUNMUMZXPUUTMUMZUQUHUUIUUCAXPUUNUUTMAUDXOVAZ
          AYFXPVBZUTZYJUUMUVFYGYIUVFYFDHIJKLQNROAKDVBZUVETVCZUVEYFVDVBAYFUDXOVE
          VFVGUVFYIUVFYFVHVBZYIVIVBZUVEUVIAYFXOVJZVFYHVIVBUVIUVJUVIYHYFVLVMYHYF
          VKVNVOVPVQZUVFYMUULFUVFUDYLVAZUVFYNYMVBZUTZYOUUKUVOYNDHIJKLQNROUVFUVG
          UVNUVHVCUVNYNVDVBUVFYNUDYLVEVFVGZUVOUUKUVOUUJYNUVOYNUVOYNUVNYNVHVBUVF
          YNYLVJVFZVRZVSZUVQVTVPZVQZWAZVQUVFYJUUSUVLUVFYMUURFUVMUVOYOUUQUVPUVOU
          UQUVOUUPYNUVOUUOUVOYKYNUVFYKWBVBZUVNACWBVBYFWBVBUWCUVEUBUVEYFUVKVRCYF
          WCWDZVCZUVRWMVSZUVQVTVPZVQZWAZVQWEAXPUUHUVAMUVFUUHYJUUMUUSUQUHZULUHUV
          AUVFUUGUWJYJULUVFUUGYMUULUURUQUHZFUMUWJUVFYMUUFUWKFUVOUUFYOUUKUUQUQUH
          ZULUHUWKUVOUUEUWLYOULUVOUUEUUJUUPUQUHZYNUKUHUWLUVOUUDUWMYNUKUVOUWMUUJ
          UUDUUJWFUHZUQUHUUDUVOUUPUWNUUJUQUVOYKYNUWEUVRWGWHUVOUUJUUDUVOUUJUVSVP
          ZUVFUUDWIVBUVNUVFUUDUVFYKUWDVSVPVCWJWKWLUVOUUJUUPYNUWOUVOUUPUWFVPUVOY
          NUVQWTUVOYNUVQWNWOXAWHUVOYOUUKUUQUVPUVTUWGWPXAWQUVFYMUULUURFUVMUWAUWH
          WEXAWHUVFYJUUMUUSUVLUWBUWIWPXAWQAYBUVBYCUVCUQACDEFGHIJKLMNOPQRSTUAUBW
          RZACDEFHIJKLMNOPQRSTUAUBUCWSXBXCVCBYEUUCUSABYDYCYBUQBYCUOXDWHVFBUUBUU
          IUSABXPUUAUUHMBYTUUGYJULBYMYSUUFFBYRUUEYOULBYQUUDYNUKBYPYKUNBYKYNXDXE
          WLWHXFWHXFVFXGABXHZUTZYBUOUQUHYBYEUUBUWRYBAYBWIVBUWQAXPYAGUVDAXQXPVBZ
          UTZXRXTUWTXQDHIJKLQNROAUVGUWSTVCUWSXQVDVBAXQUDXOVEVFVGUWTXQVHVBZXTWIV
          BUWSUXAAXQXOVJVFUXAXTXSVIVBUXAXTVIVBXQXIXSXQVKVNVPVOVQWAVCXJUWRYDUOYB
          UQUWQYDUOUSABYCUOXKVFWHUWQAUUBUVBYBUWQXPUUAUUNMUWQYTUUMYJULUWQYMYSUUL
          FUWQYRUUKYOULUWQYQUUJYNUKUWQYPYNUNBYKYNXKXEWLWHXFWHXFAYBUVBUWPXLXMXGX
          N $.
      $}

      ${
        dchrvmasum.f $e |- ( ( ph /\ m e. RR+ ) -> F e. CC ) $.
        dchrvmasum.g $e |- ( m = ( x / d ) -> F = K ) $.
        dchrvmasum.c $e |- ( ph -> C e. ( 0 [,) +oo ) ) $.
        dchrvmasum.t $e |- ( ph -> T e. CC ) $.
        dchrvmasum.1 $e |- ( ( ph /\ m e. ( 3 [,) +oo ) ) ->
          ( abs ` ( F - T ) ) <_ ( C x. ( ( log ` m ) / m ) ) ) $.
        dchrvmasum.r $e |- ( ph -> R e. RR ) $.
        dchrvmasum.2 $e |- ( ph ->
          A. m e. ( 1 [,) 3 ) ( abs ` ( F - T ) ) <_ R ) $.
        $( Lemma for ~ dchrvmasum .  (Contributed by Mario Carneiro,
           4-May-2016.) $)
        dchrvmasumlem2 $p |- ( ph -> ( x e. RR+ |->
    sum_ d e. ( 1 ... ( |_ ` x ) ) ( ( abs ` ( K - T ) ) / d ) ) e. O(1) ) $=
          ( crp c1 cv cfl cfv cfz co cdiv clog csu cmul c3 caddc cmin cabs 1red
          cr wcel cc0 cle wbr cpnf cico elrege0 sylib simpld adantr fzfid simpr
          wa elfznn rpdivcl syl2an relogcl syl rerpdivcld fsumrecl remulcld 3nn
          nnrpd cn nnrp mp2b 1re readdcli remulcl sylancl wss cc cmpt co1 recnd
          rpssre o1const sylancr crli logfacrlim2 mp1i ralrimiva ad2antrr rspcv
          rlimo1 wral wceq sylc subcld abscld adantl absge0d 3re a1i rexri 0red
          cxr clt wb elico2 mp2an sylan2 letrd eqbrtrd ad2antlr mpbid ad3antrrr
          w3a oveq1d oveq2d wne syl3anc o1mul2 o1add2 readdcld nndivred divge0d
          eleq1d fsumge0 absidd eqeltrd 1le3 jctir lbico1 mp3an simp1bi simp2bi
          1lt3 0lt1 ltletrd elrpd r19.21bi biidd mpsyl jca nncnd mulid2d fznnfl
          log1 rpre simplbda lemuldivd logled syl5eqbrr rpregt0 divge0 syl21anc
          mulge0 syl12anc absidm nndivre elicopnf ax-mp sylanbrc fveq2d oveq12d
          1rp fveq2 breq12d rpcnne0 rpcnne0d divdiv2 div23 eqtrd mulassd eqtr4d
          breqtrd syl3anbrc breq1d fsumharmonic fsummulc2 breqtrrd adantrr o1le
          id leabsd ) ABULCUMBUNZUOUPZUQURZUXEPUNZUSURZUTUPZUXEUSURZPVAZVBURZEV
          CUTUPZUMVDURZVBURZVDURZUXGKFVEURZVFUPZUXHUSURZPVAZUMVHAVGABULUXMUXPVH
          AUXEULVIZWAZCUXLACVHVIZUYBAUYDVJCVKVLZACVJVMVNURVIUYDUYEWAZUGCVOVPZVQ
          ZVRZUYCUXGUXKPUYCUMUXFVSZUYCUXHUXGVIZWAZUXJUXEUYLUXIULVIZUXJVHVIZUYCU
          YBUXHULVIUYMUYKAUYBVTZUYKUXHUXHUXFWBZWKUXEUXHWCWDZUXIWEWFZUYCUYBUYKUY
          OVRWGZWHZWIZAUXPVHVIZUYBAEVHVIZUXOVHVIVUBUJUXNUMVCWLVIVCULVIUXNVHVIWJ
          VCWMVCWEWNWOWPEUXOWQWRZVRZABULCUXLVHUYIUYTAULVHWSZCWTVIZBULCXAXBVIXDA
          CUYHXCZBULCXEXFBULUXLXAZUMXGVLVUIXBVIABPXHUMVUIXMXIUUAAVUFUXPWTVIBULU
          XPXAXBVIXDAUXPVUDXCBULUXPXEXFUUBUYCUXMUXPVUAVUEUUCZUYCUYAUYCUXGUXTPUY
          JUYLUXSUXHUYLUXRUYLKFUYLUYMIWTVIZHULXNZKWTVIZUYQAVULUYBUYKAVUKHULUEXJ
          XKVUKVUMHUXIULHUNZUXIXOZIKWTUFUUFXLXPAFWTVIZUYBUYKUHXKXQZXRZUYKUXHWLV
          IZUYCUYPXSZUUDZWHZXCAUYBUYAVFUPZUXQVFUPZVKVLUMUXEVKVLUYCVVCUXQVVDUYCV
          VCUYAVHUYCUYAVVBUYCUXGUXTPUYJVVAUYLUXSUXHVURUYLUXHVUTWKZUYLUXRVUQXTUU
          EUUGUUHVVBUUIVUJUYCUXQUYCUXQVUJXCXRUYCVVCUXGCUXKVBURZPVAZUXPVDURUXQVK
          UYCUXEUXSVVFEVCPUYOUYCVCVHVIZUMVCVKVLVVHUYCYAYBUUJUUKUYCVUCVJEVKVLZAV
          UCUYBUJVRAVVIUYBUMUMVCVNURZVIZAVVIHVVJXNVVIUMYEVIVCYEVIZUMVCYFVLVVKUM
          WOYCVCYAYCZUUPUMVCUULUUMAVVIHVVJAVUNVVJVIZWAZVJIFVEURZVFUPZEVVOYDVVNA
          VUNULVIZVVQVHVIVVNVUNVVNVUNVHVIZUMVUNVKVLZVUNVCYFVLZUMVHVIZVVLVVNVVSV
          VTVWAYPYGWOVVMUMVCVUNYHYIZUUNZVVNVJUMVUNVVNYDVVNVGVWDVJUMYFVLVVNUUQYB
          VVNVVSVVTVWAVWCUUOUURUUSZAVVRWAZVVPVWFIFUEAVUPVVRUHVRXQZXRYJAVUCVVNUJ
          VRVVNAVVRVJVVQVKVLVWEVWFVVPVWGXTYJAVVQEVKVLZHVVJUKUUTYKXJVVIVVIHUMVVJ
          VUNUMXOVVIUVAXLUVBVRUVCUYLUXSVURXCUYLCUXKAUYDUYBUYKUYHXKUYSWIUYLUYFUX
          KVHVIVJUXKVKVLZVJVVFVKVLAUYFUYBUYKUYGXKUYSUYLUYNVJUXJVKVLUXEVHVIZVJUX
          EYFVLWAZVWIUYRUYLVJUMUTUPZUXJVKUVGUYLUMUXIVKVLZVWLUXJVKVLUYLUMUXHVBUR
          ZUXEVKVLVWMUYLVWNUXHUXEVKUYLUXHUYLUXHVUTUVDZUVEUYCUYKVUSUXHUXEVKVLZUY
          CVWJUYKVUSVWPWAYGUYBVWJAUXEUVHZXSZUXHUXEUVFWFUVIYLUYLUMUXEUXHUYLVGUYB
          VWJAUYKVWQYMVVEUVJYNZUYLUMUXIUMULVIUYLUWEYBUYQUVKYNUVLUYBVWKAUYKUXEUV
          MYMUXJUXEUVNUVOCUXKUVPUVQUYLVCUXIVKVLZWAZUXSVFUPZUXSVVFUXHVBURZVKUYLV
          XBUXSXOZVWTUYLUXRWTVIVXDVUQUXRUVRWFZVRVXAUXSCUXJUXIUSURZVBURZVXCVKVXA
          UXIVCVMVNURZVIZVVQCVUNUTUPZVUNUSURZVBURZVKVLZHVXHXNZUXSVXGVKVLZVXAUXI
          VHVIZVWTVXIUYLVXPVWTUYCVWJVUSVXPUYKVWRUYPUXEUXHUVSWDZVRUYLVWTVTVVHVXI
          VXPVWTWAYGYAVCUXIUVTUWAUWBAVXNUYBUYKVWTAVXMHVXHUIXJYOVXMVXOHUXIVXHVUO
          VVQUXSVXLVXGVKVUOVVPUXRVFVUOIKFVEUFYQUWCZVUOVXKVXFCVBVUOVXJUXJVUNUXIU
          SVUNUXIUTUWFVUOUXCUWDYRUWGXLXPUYLVXGVXCXOVWTUYLVXGCUXKUXHVBURZVBURVXC
          UYLVXFVXSCVBUYLVXFUXJUXHVBURUXEUSURZVXSUYLUXJWTVIZUXEWTVIUXEVJYSWAZUX
          HWTVIZUXHVJYSWAVXFVXTXOUYLUXJUYRXCZUYBVYBAUYKUXEUWHYMZUYLUXHVVEUWIUXJ
          UXEUXHUWJYTUYLVYAVYCVYBVXTVXSXOVYDVWOVYEUXJUXHUXEUWKYTUWLYRUYLCUXKUXH
          AVUGUYBUYKVUHXKUYLUXKUYSXCZVWOUWMUWNVRUWOYLUYLUXIVCYFVLZWAZVXBUXSEVKU
          YLVXDVYGVXEVRVYHUXIVVJVIZVWHHVVJXNZUXSEVKVLZVYHVXPVWMVYGVYIUYLVXPVYGV
          XQVRUYLVWMVYGVWSVRUYLVYGVTVWBVVLVYIVXPVWMVYGYPYGWOVVMUMVCUXIYHYIUWPAV
          YJUYBUYKVYGUKYOVWHVYKHUXIVVJVUOVVQUXSEVKVXRUWQXLXPYLUWRUYCUXMVVGUXPVD
          UYCUXGUXKCPUYJAVUGUYBVUHVRVYFUWSYQUWTUYCUXQVUJUXDYKUXAUXB $.

        $( Lemma for ~ dchrvmasum .  (Contributed by Mario Carneiro,
           3-May-2016.) $)
        dchrvmasumlem3 $p |- ( ph -> ( x e. RR+ |->
          sum_ d e. ( 1 ... ( |_ ` x ) ) ( ( ( X ` ( L ` d ) ) x.
            ( ( mmu ` d ) / d ) ) x. ( K - T ) ) ) e. O(1) ) $=
          ( crp c1 cv cfl cfv cfz co cmin cabs cdiv csu cmu cmul dchrvmasumlem2
          cr 1red wcel wa fzfid wral simpr elfznn nnrpd rpdivcl syl2an ad2antrr
          cc ralrimiva wceq eleq1d rspcv subcld abscld adantl nndivred fsumrecl
          sylc cn cz elfzelz dchrzrhcl mucl syl recnd mulcld fsumcl cle fsumabs
          zred wbr nnrecred absge0d absmuld cbs eqid wfo cn0 nnnn0d znzrhfo fof
          wf ffvelrnd dchrabs2 nncnd nnne0d absdivd rprege0d absid oveq2d eqtrd
          cc0 mule1 lediv1dd eqbrtrd lemul12ad mulid2d breqtrd lemul1ad 3brtr4d
          divrec2d fsumle letrd leabsd adantrr o1le ) ABULUMBUNZUOUPZUQURZKFUSU
          RZUTUPZPUNZVAURZPVBZYSUUBLUPZNUPZUUBVCUPZUUBVAURZVDURZYTVDURZPVBZUMVF
          AVGABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKVEAYQULVHZVIZYSUUCPUUMUM
          YRVJZUUMUUBYSVHZVIZUUAUUBUUPYTUUPKFUUPYQUUBVAURZULVHZIVRVHZHULVKZKVRV
          HZUUMUULUUBULVHUURUUOAUULVLUUOUUBUUBYRVMZVNYQUUBVOVPAUUTUULUUOAUUSHUL
          UEVSVQUUSUVAHUUQULHUNUUQVTIKVRUFWAWBWHAFVRVHUULUUOUHVQWCZWDZUUOUUBWIV
          HZUUMUVBWEZWFZWGZUUMYSUUJPUUNUUPUUIYTUUPUUFUUHUUPUUBDJLMNOTQUARANDVHU
          ULUUOUCVQZUUOUUBWJVHUUMUUBUMYRWKWEZWLZUUPUUHUUPUUGUUBUUPUUGUUPUVEUUGW
          JVHUVFUUBWMWNWTZUVFWFWOZWPZUVCWPZWQZAUULUUKUTUPZUUDUTUPZWRXAUMYQWRXAU
          UMUVQUUDUVRUUMUUKUVPWDZUVHUUMUUDUUMUUDUVHWOWDUUMUVQYSUUJUTUPZPVBUUDUV
          SUUMYSUVTPUUNUUPUUJUVOWDZWGUVHUUMYSUUJPUUNUVOWSUUMYSUVTUUCPUUNUWAUVGU
          UPUUIUTUPZUUAVDURUMUUBVAURZUUAVDURUVTUUCWRUUPUWBUWCUUAUUPUUIUVNWDUUPU
          UBUVFXBZUVDUUPYTUVCXCUUPUWBUUFUTUPZUUHUTUPZVDURZUWCWRUUPUUFUUHUVKUVMX
          DUUPUWGUMUWCVDURUWCWRUUPUWEUMUWFUWCUUPUUFUVKWDUUPVGZUUPUUHUVMWDUWDUUP
          UUFUVKXCUUPUUHUVMXCUUPUUEOXEUPZDJMNOTUAQUWIXFZUVIUUPWJUWIUUBLAWJUWILX
          LZUULUUOAWJUWILXGZUWKAMXHVHUWLAMSXIUWILMOQUWJRXJWNWJUWILXKWNVQUVJXMXN
          UUPUWFUUGUTUPZUUBVAURZUWCWRUUPUWFUWMUUBUTUPZVAURUWNUUPUUGUUBUUPUUGUVL
          WOZUUPUUBUVFXOZUUPUUBUVFXPZXQUUPUWOUUBUWMVAUUPUUBVFVHYBUUBWRXAVIUWOUU
          BVTUUPUUBUUPUUBUVFVNZXRUUBXSWNXTYAUUPUWMUMUUBUUPUUGUWPWDUWHUWSUUPUVEU
          WMUMWRXAUVFUUBYCWNYDYEYFUUPUWCUUPUWCUWDWOYGYHYEYIUUPUUIYTUVNUVCXDUUPU
          UAUUBUUPUUAUVDWOUWQUWRYKYJYLYMUUMUUDUVHYNYMYOYP $.
      $}

      ${
        dchrvmasumlema.f $e |- F = ( a e. NN |->
          ( ( X ` ( L ` a ) ) x. ( ( log ` a ) / a ) ) ) $.
        $( Lemma for ~ dchrvmasum and ~ dchrvmasumif .  Apply ~ dchrisum for
           the function ` log ( y ) / y ` , which is decreasing above ` _e `
           (or above 3, the nearest integer bound).  (Contributed by Mario
           Carneiro, 5-May-2016.) $)
        dchrvmasumlema $p |- ( ph -> E. t E. c e. ( 0 [,) +oo )
     ( seq 1 ( + , F ) ~~> t /\ A. y e. ( 3 [,) +oo ) ( abs `
        ( ( seq 1 ( + , F ) ` ( |_ ` y ) ) - t ) ) <_
          ( c x. ( ( log ` y ) / y ) ) ) ) $=
          ( vx vn caddc c1 cseq cv cli wbr cfl cfv cmin cabs clog cdiv cmul cle
          co c3 cpnf cico wral wa cc0 wrex wex weq fveq2 id oveq12d cn wcel 3nn
          a1i crp cr relogcl rerpdivcl mpancom adantl w3a simp3r ceu simp2l ere
          wb rpred 3re clt egt2lt3 simpri ltleii simp3l letrd logdivle syl22anc
          simp2r mpbid cmpt ccxp crli rpcn cxp1d oveq2d mpteq2ia cxploglim mp1i
          c2 1rp syl5eqbrr fveq2d cbvmptv eqtri dchrisum oveq1d breq12d cbvralv
          anbi2i rexbii exbii sylib ) AUEFUFUGZCUHZUIUJZUCUHZUKULZYCULZYDUMUSZU
          NULZMUHZYFUOULZYFUPUSZUQUSZURUJZUCUTVAVBUSZVCZVDZMVEVAVBUSZVFZCVGYEBU
          HZUKULZYCULZYDUMUSZUNULZYKUUAUOULZUUAUPUSZUQUSZURUJZBYPVCZVDZMYSVFZCV
          GAUCCUDUHZUOULZUUMUPUSZYMDEUDFGHUTIJKMNOPQRSTUAUDUCVHZUUNYLUUMYFUPUUM
          YFUOVIUUPVJVKUTVLVMAVNVOUUMVPVMZUUOVQVMZAUUNVQVMUUQUURUUMVRUUNUUMVSVT
          WAAUUQYFVPVMZVDZUTUUMURUJZUUMYFURUJZVDZWBZUVBYMUUOURUJZAUUTUVAUVBWCZU
          VDUUMVQVMWDUUMURUJYFVQVMWDYFURUJUVBUVEWGUVDUUMAUUQUUSUVCWEWHZUVDWDUTU
          UMWDVQVMUVDWFVOZUTVQVMUVDWIVOUVGWDUTURUJUVDWDUTWFWIXIWDWJUJWDUTWJUJWK
          WLWMVOAUUTUVAUVBWNWOZUVDYFAUUQUUSUVCWRWHZUVDWDUUMYFUVHUVGUVJUVIUVFWOU
          UMYFWPWQWSAUDVPUUOWTUDVPUUNUUMUFXAUSZUPUSZWTZVEXBUDVPUVLUUOUUQUVKUUMU
          UNUPUUQUUMUUMXCXDXEXFUFVPVMUVMVEXBUJAXJUFUDXGXHXKFLVLLUHZHULZJULZUVNU
          OULZUVNUPUSZUQUSZWTUDVLUUMHULZJULZUUOUQUSZWTUBLUDVLUVSUWBLUDVHZUVPUWA
          UVRUUOUQUWCUVOUVTJUVNUUMHVIXLUWCUVQUUNUVNUUMUPUVNUUMUOVIUWCVJVKVKXMXN
          XOYTUULCYRUUKMYSYQUUJYEYOUUIUCBYPUCBVHZYJUUEYNUUHURUWDYIUUDUNUWDYHUUC
          YDUMUWDYGUUBYCYFUUAUKVIXLXPXLUWDYMUUGYKUQUWDYLUUFYFUUAUPYFUUAUOVIUWDV
          JVKXEXQXRXSXTYAYB $.
      $}

      $d m F $.
      dchrvmasumif.f $e |- F = ( a e. NN |->
        ( ( X ` ( L ` a ) ) / a ) ) $.
      dchrvmasumif.c $e |- ( ph -> C e. ( 0 [,) +oo ) ) $.
      dchrvmasumif.s $e |- ( ph -> seq 1 ( + , F ) ~~> S ) $.
      dchrvmasumif.1 $e |- ( ph -> A. y e. ( 1 [,) +oo )
        ( abs ` ( ( seq 1 ( + , F ) ` ( |_ ` y ) ) - S ) ) <_ ( C / y ) ) $.
      ${
        dchrvmasumif.g $e |- K = ( a e. NN |->
          ( ( X ` ( L ` a ) ) x. ( ( log ` a ) / a ) ) ) $.
        dchrvmasumif.e $e |- ( ph -> E e. ( 0 [,) +oo ) ) $.
        dchrvmasumif.t $e |- ( ph -> seq 1 ( + , K ) ~~> T ) $.
        dchrvmasumif.2 $e |- ( ph -> A. y e. ( 3 [,) +oo )
          ( abs ` ( ( seq 1 ( + , K ) ` ( |_ ` y ) ) - T ) ) <_
            ( E x. ( ( log ` y ) / y ) ) ) $.
        $( Lemma for ~ dchrvmasumif .  (Contributed by Mario Carneiro,
           5-May-2016.) $)
        dchrvmasumiflem1 $p |- ( ph -> ( x e. RR+ |->
          sum_ d e. ( 1 ... ( |_ ` x ) )
            ( ( ( X ` ( L ` d ) ) x. ( ( mmu ` d ) / d ) ) x.
            ( sum_ k e. ( 1 ... ( |_ ` ( x / d ) ) )
                ( ( X ` ( L ` k ) ) x.
                  ( ( log ` if ( S = 0 , ( x / d ) , k ) ) / k ) ) -
                if ( S = 0 , 0 , T ) ) ) ) e. O(1) ) $=
          ( vm cc0 wceq cif c1 c2 cfz co cv cfv cabs c3 clog cdiv csu caddc cfl
          cmul crp wcel wa fzfid cn simpl elfznn adantr adantl dchrzrhcl syl2an
          cc cz nnrpd relogcld nndivred recnd mulcld fveq2 oveq2d fveq2d oveq1d
          ifcl cpnf cico ifcld cseq wbr syl sylancr cmin cle cr nnuz wne divcld
          wf cmpt weq id oveq12d cbvmptv eqtri fmptd ffvelrn sylan ad2antrr 3re
          wb elicopnf 1red a1i syl2anc abscld clt jca sylan9eqr iftrue ad2antlr
          letrd adantlr eqtrd ifnefalse fsumrecl readdcld sylancl mpbid nnz 0cn
          simpr fsumcl ifeq1 sumeq12rdv cli climcl 1zzd nncn serf mp1i simprbda
          nnne0 1le3 simplbda flge1nn 0red 3pos ltletrd elrpd elrege0 rerpdivcl
          ffvelrnd simplbi logge0d oveq2 subid1d wral 1re sylanbrc breq12d sylc
          ax-mp rspcv eqbrtrrd lemul2a syl31anc relogcl nncnd nnne0d ovex fvmpt
          div12d sumeq2dv eqeltrrd fsummulc2 3eqtr4d cuz fsumser absmuld absidd
          syl6eleq 3eqtrd rpcnne0 div12 syl3anc 3brtr4d rspccva nnrp pm2.61dane
          eqcomd elfzelz elrpii nndivre remulcld cxr rexri elico2 mp2an simp1bi
          w3a 0lt1 simp2bi subcld abs2dif2d fsumabs absge0d flcld 2z simp3bi 3z
          fllt df-3 syl6breq rpre zleltp1 mpbird eluz2 syl3anbrc fzss2 fsumless
          wss log1 elfzle1 ifboth 1rp logleb syl5eqbrr rpregt0d divge0 syl21anc
          breq2 eqeltrd nnred 2re elfzle2 2lt3 lelttrd breq1 rpred ltle lediv1d
          wi mpd eqbrtrd fsumle leadd1d ralrimiva dchrvmasumlem3 ) ABFUQURZDJUS
[encoded data, 7120 characters]
          LXUSYGVURXBYTYMVUSVUT $.

        $( Lemma for ~ dchrvmasum .  (Contributed by Mario Carneiro,
           5-May-2016.) $)
        dchrvmasumiflem2 $p |- ( ph -> ( x e. RR+ |->
          ( sum_ n e. ( 1 ... ( |_ ` x ) )
              ( ( X ` ( L ` n ) ) x. ( ( Lam ` n ) / n ) ) +
            if ( S = 0 , ( log ` x ) , 0 ) ) ) e. O(1) ) $=
          ( vd vk crp c1 cv cfl cfv cfz co cmu cdiv cmul cc0 wceq cif clog cvma
          csu caddc cc 1red cmpt co1 wcel wa fzfid ad2antrr cz adantl dchrzrhcl
          elfzelz cn elfznn mucl syl zred nndivred recnd mulcld fsumcl cseq cli
          wbr climcl adantr 0cnd wn wne df-ne divcld sylan2br ifclda dchrmusum2
          simpr wss rpssre o1const sylancr o1mul2 nnrpd rpdivcl syl2an relogcld
          cr ifcl cmin 0cn subdid sumeq2dv fsumsub ovif2 mul01d ifeq1d divcan2d
          mulassd ifeq2da eqtrd syl5eq oveq2d fsummulc1 3eqtrd dchrvmasumiflem1
          3eqtrrd mpteq2dva cle cabs o1dif mpbird vmacl nndivre mpancom relogcl
          sylancl addcld abscld adantrr simprl simprr dchrvmasum2if fveq2d eqle
          eqeltrrd syl2anc o1le ) ABUQURBUSZUTVAZVBVCZUOUSZNVAPVAZUVBVDVAZUVBVE
          VCZVFVCZURUUSUVBVEVCZUTVAZVBVCZUPUSZNVAPVAZFVGVHZUVGUVJVIZVJVAZUVJVEV
          CZVFVCZUPVLZVFVCZUOVLZUVAIUSZNVAPVAZUVTVKVAZUVTVEVCZVFVCZIVLZUVLUUSVJ
          VAZVGVIZVMVCZURVNAVOABUQUVSVPVQVRBUQUVAUVFUOVLZFVFVCZUVLVGGFVEVCZVIZV
          FVCZVPVQVRABUQUWJUWLVNAUUSUQVRZVSZUWIFUWOUVAUVFUOUWOURUUTVTZUWOUVBUVA
          VRZVSZUVCUVEUWRUVBELNOPQUBSUCTAPEVRZUWNUWQUEWAZUWQUVBWBVRUWOUVBURUUTW
          EWCWDUWRUVEUWRUVDUVBUWRUVDUWRUVBWFVRZUVDWBVRUWQUXAUWOUVBUUTWGZWCZUVBW
          HWIWJUXCWKWLWMZWNZAFVNVRZUWNAVMKURWOZFWPWQUXFUIFUXGWRWIZWSZWMZAUWLVNV
          RZUWNAUVLVGUWKVNAUVLVSWTUVLXAZAFVGXBZUWKVNVRFVGXCZAUXMVSZGFAGVNVRZUXM
          AVMMURWOZGWPWQUXPUMGUXQWRWIZWSZAUXFUXMUXHWSZAUXMXHZXDXEXFZWSZABCDEFHK
          LNOPQRUOSTUAUBUCUDUEUFUGUHUIUJXGAUQXRXIUXKBUQUWLVPVQVRXJUYBBUQUWLXKXL
          XMABUQUVSUWMUWOUVAUVRUOUWPUWRUVFUVQUXDUWRUVIUVPUPUWRURUVHVTUWRUVJUVIV
          RZVSZUVKUVOUYEUVJELNOPQUBSUCTUWRUWSUYDUWTWSUYDUVJWBVRUWRUVJURUVHWEWCW
          DUYEUVOUYEUVNUVJUYEUVMUWRUVGUQVRZUVJUQVRUVMUQVRUYDUWOUWNUVBUQVRUYFUWQ
          AUWNXHUWQUVBUXBXNUUSUVBXOXPUYDUVJUVJUVHWGZXNUVLUVGUVJUQXSXPXQUYDUVJWF
          VRUWRUYGWCWKWLWMWNZWMZWNZUWOUWJUWLUXJUYCWMABUQUVAUVFUVQUVLVGGVIZXTVCV
          FVCZUOVLZVPBUQUVSUWMXTVCZVPVQABUQUYMUYNUWOUYMUVAUVRUVFUYKVFVCZXTVCZUO
          VLUVSUVAUYOUOVLZXTVCUYNUWOUVAUYLUYPUOUWRUVFUVQUYKUXDUYHUWRVGVNVRZUXPU
          YKVNVRZYAAUXPUWNUWQUXRWAUVLVGGVNXSZXLZYBYCUWOUVAUVRUYOUOUWPUYIUWRUVFU
          YKUXDVUAWMYDUWOUYQUWMUVSXTUWOUWMUWIFUWLVFVCZVFVCUWIUYKVFVCUYQUWOUWIFU
          WLUXEUXIUYCYIUWOVUBUYKUWIVFAVUBUYKVHUWNAVUBUVLFVGVFVCZFUWKVFVCZVIZUYK
          UVLFVGUWKVFYEAVUEUVLVGVUDVIUYKAUVLVUCVGVUDAFUXHYFYGAUVLVUDGVGUXLAUXMV
          UDGVHUXNUXOGFUXSUXTUYAYHXEYJYKYLWSYMUWOUVAUVFUYKUOUWPAUYSUWNAUYRUXPUY
          SYAUXRUYTXLWSUXDYNYQYMYOYRABCDEFGHUPJKLMNOPQRUOSTUAUBUCUDUEUFUGUHUIUJ
          UKULUMUNYPUUPUUAUUBUYJUWOUWEUWGUWOUVAUWDIUWPUWOUVTUVAVRZVSZUWAUWCVUGU
          VTELNOPQUBSUCTAUWSUWNVUFUEWAVUFUVTWBVRUWOUVTURUUTWEWCWDVUGUWCVUGUVTWF
          VRZUWCXRVRZVUFVUHUWOUVTUUTWGWCUWBXRVRVUHVUIUVTUUCUWBUVTUUDUUEWIWLWMWN
          UWOUWFVNVRUYRUWGVNVRUWOUWFUWNUWFXRVRAUUSUUFWCWLYAUVLUWFVGVNXSUUGUUHZA
          UWNURUUSYSWQZVSZVSZUWHYTVAZXRVRZVUNUVSYTVAZVHVUNVUPYSWQAUWNVUOVUKUWOU
          WHVUJUUIUUJVUMUWHUVSYTVUMUVLUUSEHUPILNOPQUOSTAOWFVRVULUAWSUBUCUDAUWSV
          ULUEWSAPHXBVULUFWSAUWNVUKUUKAUWNVUKUULUUMUUNVUNVUPUUOUUQUUR $.
      $}

      $( An asymptotic approximation for the sum of ` X ( n ) Lam ( n ) / n `
         conditional on the value of the infinite sum ` S ` .  (We will later
         show that the case ` S = 0 ` is impossible, and hence establish
         ~ dchrvmasum .)  (Contributed by Mario Carneiro, 5-May-2016.) $)
      dchrvmasumif $p |- ( ph -> ( x e. RR+ |->
        ( sum_ n e. ( 1 ... ( |_ ` x ) )
            ( ( X ` ( L ` n ) ) x. ( ( Lam ` n ) / n ) ) +
          if ( S = 0 , ( log ` x ) , 0 ) ) ) e. O(1) ) $=
        ( vt vc caddc cn cv cfv clog cdiv co cmul cmpt c1 cseq cli wbr cfl cmin
        cabs cle cpnf cico wral cc0 wrex wex crp cfz cvma csu wceq cif co1 wcel
        c3 wa dchrvmasumlema adantr wne simprl simprrl simprrr dchrvmasumiflem2
        eqid rexlimdvaa exlimdv mpd ) AUJOUKOULZKUMMUMWNUNUMWNUOUPUQUPURZUSUTZU
        HULZVAVBZCULZVCUMZWPUMWQVDUPVEUMUIULZWSUNUMWSUOUPUQUPVFVBCWAVGVHUPVIZWB
        ZUIVJVGVHUPZVKZUHVLBVMUSBULZVCUMVNUPHULZKUMMUMXGVOUMXGUOUPUQUPHVPFVJVQX
        FUNUMVJVRUJUPURVSVTZACUHEGWOJKLMNOUIPQRSTUAUBUCWOWJZWCAXEXHUHAXCXHUIXDA
        XAXDVTZXCWBZWBBCDEFWQGHXAIJWOKLMNOPQALUKVTXKRWDSTUAAMEVTXKUBWDAMGWEXKUC
        WDUDADXDVTXKUEWDAUJIUSUTZFVAVBXKUFWDAWTXLUMFVDUPVEUMDWSUOUPVFVBCUSVGVHU
        PVIXKUGWDXIAXJXCWFAXJWRXBWGAXJWRXBWHWIWKWLWM $.

      dchrvmaeq0.w $e |- W = { y e. ( D \ { .1. } ) |
        sum_ m e. NN ( ( y ` ( L ` m ) ) / m ) = 0 } $.
      $( The set ` W ` is the collection of all non-principal Dirichlet
         characters such that the sum ` sum_ n e. NN , X ( n ) / n ` is equal
         to zero.  (Contributed by Mario Carneiro, 5-May-2016.) $)
      dchrvmaeq0 $p |- ( ph -> ( X e. W <-> S = 0 ) ) $=
        ( wcel cn cv cfv cdiv co csu cc0 wceq csn wb wne eldifsn sylanbrc fveq1
        cdif oveq1d sumeq2sdv eqeq1d elrab2 baib syl c1 nnuz 1zzd fveq2 oveq12d
        fveq2d id ovex fvmpt adantl wa adantr cz dchrzrhcl cc nncn nnne0 divcld
        nnz isumclim bitrd ) AMLUIZUJGUKZJULZMULZWMUMUNZGUOZUPUQZEUPUQAMDFURVDZ
        UIZWLWRUSAMDUIZMFUTWTUBUCMDFVAVBWLWTWRUJWNBUKZULZWMUMUNZGUOZUPUQWRBMWSL
        XBMUQZXEWQUPXFUJXDWPGXFXCWOWMUMWNXBMVCVEVFVGUHVHVIVJAWQEUPAWPEGHVKUJVLA
        VMWMUJUIZWMHULWPUQAOWMOUKZJULZMULZXHUMUNWPUJHXHWMUQZXJWOXHWMUMXKXIWNMXH
        WMJVNVPXKVQVOUDWOWMUMVRVSVTAXGWAZWOWMXLWMDIJKMNSPTQAXAXGUBWBXGWMWCUIAWM
        WIVTWDXGWMWEUIAWMWFVTXGWMUPUTAWMWGVTWHUFWJVGWK $.
    $}

    ${
      rpvmasum2.g $e |- G = ( DChr ` N ) $.
      rpvmasum2.d $e |- D = ( Base ` G ) $.
      rpvmasum2.1 $e |- .1. = ( 0g ` G ) $.
      ${
        dchrisum0f.f $e |- F = ( b e. NN |->
          sum_ v e. { q e. NN | q || b } ( X ` ( L ` v ) ) ) $.
        $( Value of the function ` F ` , the divisor sum of a Dirichlet
           character.  (Contributed by Mario Carneiro, 5-May-2016.) $)
        dchrisum0fval $p |- ( A e. NN -> ( F ` A ) =
          sum_ t e. { q e. NN | q || A } ( X ` ( L ` t ) ) ) $=
          ( cv cdvds wbr crab cfv csu wceq breq2 rabbidv sumeq1d fveq2d cbvsumv
          cn fveq2 syl6eq sumex fvmpt ) NDMUBZNUBZUCUDZMUNUEZBUBZIUFZKUFZBUGZUS
          DUCUDZMUNUEZCUBZIUFZKUFZCUGZUNGUTDUHZVFVHVEBUGVLVMVBVHVEBVMVAVGMUNUTD
          USUCUIUJUKVHVEVKBCVCVIUHVDVJKVCVIIUOULUMUPUAVHVKCUQUR $.

        dchrisum0f.x $e |- ( ph -> X e. D ) $.
        ${
          dchrisum0fmul.a $e |- ( ph -> A e. NN ) $.
          dchrisum0fmul.b $e |- ( ph -> B e. NN ) $.
          dchrisum0fmul.m $e |- ( ph -> ( A gcd B ) = 1 ) $.
          $( The function ` F ` , the divisor sum of a Dirichlet character, is
             a multiplicative function (but not completely multiplicative).
             Equation 9.4.27 of [Shapiro], p. 382.  (Contributed by Mario
             Carneiro, 5-May-2016.) $)
          dchrisum0fmul $p |- ( ph ->
            ( F ` ( A x. B ) ) = ( ( F ` A ) x. ( F ` B ) ) ) $=
            ( vj vk vi cv cdvds wbr cn crab cfv csu cmul co eqid wcel wa adantr
            cz elrabi nnzd adantl dchrzrhcl anim12i simprl simprr eqcomd sylan2
            wceq dchrzrhmul fveq2 fveq2d fsumdvdsmul dchrisum0fval syl nnmulcld
            oveq12d 3eqtr4rd ) AMUIZCUJUKZMULUMZUFUIZIUNKUNZUFUOZWBDUJUKZMULUMZ
            UGUIZIUNKUNZUGUOZUPUQWBCDUPUQZUJUKMULUMZUHUIZIUNZKUNZUHUOZCGUNZDGUN
            ZUPUQWMGUNZAMWFWKWQWEWJUPUQZIUNZKUNZUHUFUGCDWDWIWNUCUDUEWDURWIURWNU
            RAWEWDUSZUTWEEHIJKLROSPAKEUSZXEUBVAXEWEVBUSZAXEWEWCMWEULVCVDZVEVFAW
            JWIUSZUTWJEHIJKLROSPAXFXIUBVAXIWJVBUSZAXIWJWHMWJULVCVDZVEVFXEXIUTAX
            GXJUTZWFWKUPUQZXDVLXEXGXIXJXHXKVGAXLUTZXDXMXNWEWJEHIJKLROSPAXFXLUBV
            AAXGXJVHAXGXJVIVMVJVKWOXBVLWPXCKWOXBIVNVOVPAWSWGWTWLUPACULUSWSWGVLU
            CABUFCEFGHIJKLMNOPQRSTUAVQVRADULUSWTWLVLUDABUGDEFGHIJKLMNOPQRSTUAVQ
            VRVTAWMULUSXAWRVLACDUCUDVSABUHWMEFGHIJKLMNOPQRSTUAVQVRWA $.
        $}

        dchrisum0flb.r $e |- ( ph -> X : ( Base ` Z ) --> RR ) $.
        $( The function ` F ` is a real function.  (Contributed by Mario
           Carneiro, 5-May-2016.) $)
        dchrisum0ff $p |- ( ph -> F : NN --> RR ) $=
          ( vn vm cn cv cdvds wbr crab cfv csu cr wcel wa cfz cfn wss dvdsssfz1
          c1 co fzfid adantl ssfi syl2anc cbs wf ad2antrr cz cn0 nnnn0d znzrhfo
          wfo eqid fof 3syl adantr elrabi nnzd ffvelrn syl2an ffvelrnd fsumrecl
          breq2 rabbidv sumeq1d fveq2 fveq2d cbvsumv syl6eq cbvmptv eqtri fmptd
          cmpt weq ) AUBUDKUEZUBUEZUFUGZKUDUHZUCUEZGUIZIUIZUCUJZUKEAWOUDULZUMZW
          QWTUCXCURWOUNUSZUOULWQXDUPZWQUOULXCURWOUTXBXEAWOKUQVAXDWQVBVCXCWRWQUL
          ZUMJVDUIZUKWSIAXGUKIVEXBXFUAVFXCVGXGGVEZWRVGULWSXGULXFAXHXBAHVHULVGXG
          GVKXHAHOVIXGGHJMXGVLNVJVGXGGVMVNVOXFWRWPKWRUDVPVQVGXGWRGVRVSVTWAELUDW
          NLUEZUFUGZKUDUHZBUEZGUIZIUIZBUJZWLUBUDXAWLSLUBUDXOXALUBWMZXOWQXNBUJXA
          XPXKWQXNBXPXJWPKUDXIWOWNUFWBWCWDWQXNWTBUCBUCWMXMWSIXLWRGWEWFWGWHWIWJW
          K $.

        ${
          dchrisum0flblem1.1 $e |- ( ph -> P e. Prime ) $.
          dchrisum0flblem1.2 $e |- ( ph -> A e. NN0 ) $.
          $( Lemma for ~ dchrisum0flb .  Base case, prime power.  (Contributed
             by Mario Carneiro, 5-May-2016.) $)
          dchrisum0flblem1 $p |- ( ph ->
            if ( ( sqrt ` ( P ^ A ) ) e. NN , 1 , 0 ) <_ ( F ` ( P ^ A ) ) ) $=
            ( vi vk cexp co csqrt cfv cn wcel c1 cc0 cif cfz cv csu cle wceq wa
            wbr cr 1red wn 0red ifclda fzfid cn0 cbs cz wfo nnnn0d eqid znzrhfo
            fof 3syl cprime syl ffvelrnd syl2an adantr breq1 a1i nn0uz syl6eleq
            wf wne wb mpbird cmul simpr oveq1d sumeq2dv cc sylancl nncnd 3eqtrd
            1exp breqtrrd letrd cmin oveq1 breq1d 1re resubcl sylancr ad3antrrr
            cdiv recnd 3eqtr4d cneg neg1cn ad2antrr c2 cpc oveq2d nn0zd syl2anc
            adantl mpd eqtr3d pm2.61dane abscld leabsd eqbrtrd clt mpbid fveq2d
            cabs cmgp cmg ccnfld zring syl3anc cnfldexp cmhm mgpbas mhmmulg cuz
            prmz elfznn0 reexpcl fsumrecl 1le1 0le1 keephyp chash c0 sylibr cfn
            fzn0 hashnncl nnge1d elfzelz sylan9eq fsumconst mulid1d caddc leidd
            ax-1cn mulid2d nn0p1nn 0expd expp1 prmnn nnexpcld sqsqrtd nnq nnne0
            cq pcexp syl121anc pcid 3eqtr3rd pccld 2nn0 expmuld neg1sqe1 oveq1i
            syl5eq mulid2i syl6eq eqtrd negnegd cui dchrn0 biimpa dchrabs eqeq1
            2z syl5ibcom necon3ad absord negeqd 3brtr4d mul02d reexpcld absexpd
            ord peano2nn0 absge0d dchrabs2 exple1 syl31anc subge0 keepel necomd
            ifbothda leltned posdif lemuldiv syl112anc cfzo fzval3 sumeq1d 0nn0
            0re exp0d cdvds crab dchrisum0fval cmpt fveq2 wf1o dvdsppwf1o oveq2
            geoserg ovex fvmpt3i elrabi ffvelrn fsumf1o csubrg zsubrg subrgsubm
            nnzd csubmnd cress zringmpg eqcomi submmulg crg crh zncrng crngring
            mp1i ccrg zrhrhm rhmmhm zringbas dchrmhm sseldi ) AECUHUIZUJUKZULUM
[encoded data, 4880 characters]
            OWSXA $.
        $}

        ${
          dchrisum0flb.1 $e |- ( ph -> A e. ( ZZ>= ` 2 ) ) $.
          dchrisum0flb.2 $e |- ( ph -> P e. Prime ) $.
          dchrisum0flb.3 $e |- ( ph -> P || A ) $.
          dchrisum0flb.4 $e |- ( ph -> A. y e. ( 1 ..^ A )
            if ( ( sqrt ` y ) e. NN , 1 , 0 ) <_ ( F ` y ) ) $.
          $( Lemma for ~ dchrisum0flb .  Induction over relatively prime
             factors, with the prime power case handled in dchrisum0flblem1 .
             (Contributed by Mario Carneiro, 5-May-2016.)  Replace reference to
             OLD theorem.  (Revised by Wolf Lammen, 8-Sep-2020.) $)
          dchrisum0flblem2 $p |- ( ph ->
            if ( ( sqrt ` A ) e. NN , 1 , 0 ) <_ ( F ` A ) ) $=
            ( csqrt cfv cn wcel c1 cc0 cif cpc co cexp cdiv cle wbr breq1 1t1e1
            cmul wa c2 cprime cq wne wceq adantr nnq adantl nnne0 a1i syl121anc
            cz 2z pcexp cuz eluz2nn syl nncnd sqsqrtd oveq2d simpr pccld nn0cnd
            2cnd mulcomd 3eqtr3rd prmnn cn0 2nn0 expmuld eqtr3d fveq2d nnexpcld
            cc cr nnrpd rprege0d sqrtsq eqtrd eqeltrd dchrisum0flblem1 eqbrtrrd
            iftrued clt cdvds pcdvds syl2anc wb nndivdvds mpbid crp sqrtdiv nnz
            nnzd zsqrtelqelz sqrtgt0d elnnz sylanbrc nnred syl3anc nngt0d fveq2
            znq wi 1re 0le1 ffvelrnd 0re keepel breq2 0le0 keephyp letrd cgcd
            wn cfzo wral nnuz syl6eleq pcelnn mpbird prmuz2 eluz2b2 3syl expgt1
            cv simprbi 1red 0lt1 ltdiv2 syl222anc div1d elfzo2 syl3anbrc eleq1d
            breqtrd ifbid breq12d rspcv sylc pm3.2i dchrisum0ff lemul12a mp2and
            syl22anc syl5eqbrr 0red mulge0d ifbothda nnne0d divcan2d coprm prmz
            pcndvds2 rpexp1i mpd dchrisum0fmul breqtrrd ) ADUIUJZUKULZUMUNUOZFF
            DUPUQZURUQZHUJZDUWHUSUQZHUJZVDUQZDHUJZUTUWEUMUWLUTVAUNUWLUTVAZUWFUW
            LUTVAAUMUNUMUWFUWLUTVBUNUWFUWLUTVBAUWEVEZUMUMUMVDUQZUWLUTVCUWOUMUWI
            UTVAZUMUWKUTVAZUWPUWLUTVAZUWOUWHUIUJZUKULZUMUNUOZUMUWIUTUWOUXAUMUNU
            WOUWTFFUWDUPUQZURUQZUKUWOUWTUXDVFURUQZUIUJZUXDUWOUWHUXEUIUWOFUXCVFV
            DUQZURUQUWHUXEUWOUXGUWGFURUWOFUWDVFURUQZUPUQZVFUXCVDUQZUWGUXGUWOFVG
            ULZUWDVHULZUWDUNVIZVFVQULZUXIUXJVJAUXKUWEUFVKZUWEUXLAUWDVLVMUWEUXMA
            UWDVNVMUXNUWOVRVOUWDFVFVSVPUWOUXHDFUPUWODADWSULUWEADADVFVTUJZULDUKU
            LZUEDWAWBZWCZVKWDWEUWOVFUXCUWOWIUWOUXCUWOFUWDUXOAUWEWFWGZWHWJWKWEUW
            OFUXCVFUWOFUWOUXKFUKULZUXOFWLZWBZWCVFWMULUWOWNVOUXTWOWPWQUWOUXDWTUL
            UNUXDUTVAVEUXFUXDVJUWOUXDUWOUXDUWOFUXCUYCUXTWRZXAXBUXDXCWBXDUYDXEZX
            HAUXBUWIUTVAUWEACUWGEFGHIJKLMNOPQRSTUAUBUCUDUFAFDUFUXRWGZXFZVKXGUWO
            UWJUIUJZUKULZUMUNUOZUMUWKUTUWOUYIUMUNUWOUYHVQULZUNUYHXIVAUYIUWOUWJV
            QULZUYHVHULUYKAUYLUWEAUWJAUWHDXJVAZUWJUKULZAUXKUXQUYMUFUXRFDXKXLAUX
            QUWHUKULZUYMUYNXMUXRAFUWGAUXKUYAUFUYBWBZUYFWRZDUWHXNXLXOZXSZVKUWOUY
            HUWDUWTUSUQZVHUWODWTULZUNDUTVAVEUWHXPULUYHUYTVJUWODUWODAUXQUWEUXRVK
            XAXBUWOUWHAUYOUWEUYQVKXADUWHXQXLUWOUWDVQULZUXAUYTVHULUWEVUBAUWDXRVM
            UYEUWDUWTYHXLXEUWJXTXLUWOUWJUWOUWJAUYNUWEUYRVKXAYAUYHYBYCXHAUYJUWKU
            TVAZUWEAUWJUMDUUAUQZULZBUUKZUIUJZUKULZUMUNUOZVUFHUJZUTVAZBVUDUUBVUC
            AUWJUMVTUJZULDVQULUWJDXIVAVUEAUWJUKVULUYRUUCUUDADUXRXSAUWJDUMUSUQZD
            XIAUMUWHXIVAZUWJVUMXIVAZAFWTULUWGUKULZUMFXIVAZVUNAFUYPYDAVUPFDXJVAZ
            UGAUXKUXQVUPVURXMUFUXRFDUUEXLUUFAUXKFUXPULZVUQUFFUUGVUSUYAVUQFUUHUU
            LUUIFUWGUUJYEAUMWTULZUNUMXIVAZUWHWTULUNUWHXIVAVUAUNDXIVAVUNVUOXMAUU
            MVVAAUUNVOAUWHUYQYDAUWHUYQYFADUXRYDADUXRYFUMUWHDUUOUUPXOADUXSUUQUVA
            UWJUMDUURUUSUHVUKVUCBUWJVUDVUFUWJVJZVUIUYJVUJUWKUTVVBVUHUYIUMUNVVBV
            UGUYHUKVUFUWJUIYGUUTUVBVUFUWJHYGUVCUVDUVEZVKXGUWOVUTUNUMUTVAZVEZUWI
            WTULZVVEUWKWTULZUWQUWRVEUWSYIVVEUWOVUTVVDYJYKUVFVOZAVVFUWEAUKWTUWHH
            ACEGHIJKLMNOPQRSTUAUBUCUDUVGZUYQYLZVKVVHAVVGUWEAUKWTUWJHVVIUYRYLZVK
            UMUWIUMUWKUVHUVJUVIUVKAUWNUWEYTAUWIUWKVVJVVKAUNUXBUWIAUVLZUXBWTULAU
            XAUMUNWTYJYMYNVOVVJUNUXBUTVAZAUXAVVDUNUNUTVAZVVMUMUNUMUXBUNUTYOUNUX
            BUNUTYOYKYPYQVOUYGYRAUNUYJUWKVVLUYJWTULAUYIUMUNWTYJYMYNVOVVKUNUYJUT
            VAZAUYIVVDVVNVVOUMUNUMUYJUNUTYOUNUYJUNUTYOYKYPYQVOVVCYRUVMVKUVNAUWH
            UWJVDUQZHUJUWMUWLAVVPDHADUWHUXSAUWHUYQWCAUWHUYQUVOUVPWQACUWHUWJEGHI
            JKLMNOPQRSTUAUBUCUYQUYRAFUWJYSUQUMVJZUWHUWJYSUQUMVJZAFUWJXJVAYTZVVQ
            AUXKUXQVVSUFUXRFDUVSXLAUXKUYLVVSVVQXMUFUYSFUWJUVQXLXOAFVQULZUYLUWGW
            MULVVQVVRYIAUXKVVTUFFUVRWBUYSUYFFUWJUWGUVTYEUWAUWBWPUWC $.
        $}

        ${
          dchrisum0flb.a $e |- ( ph -> A e. NN ) $.
          $( The divisor sum of a real Dirichlet character, is lower bounded by
             zero everywhere and one at the squares.  Equation 9.4.29 of
             [Shapiro], p. 382.  (Contributed by Mario Carneiro,
             5-May-2016.) $)
          dchrisum0flb $p |- ( ph ->
            if ( ( sqrt ` A ) e. NN , 1 , 0 ) <_ ( F ` A ) ) $=
            ( vy vk vi vp c1 cfz co wcel cv csqrt cfv cc0 cif cle wbr wral nnuz
            cn cuz syl6eleq eluzfz2 syl wi caddc wceq oveq2 raleqdv imbi2d cexp
            c2 cprime 2prm a1i cn0 0nn0 dchrisum0flblem1 elfz1eq numexp0 fveq2d
            2nn0 syl6eqr eleq1d ifbid breq12d biimprcd ralrimiv csn cdvds simpr
            wa wrex adantrr eluzp1p1 df-2 fveq2i syl6eleqr exprmfct ad2antrr cr
            cbs adantr simprl simprr cfzo simplrr simplrl nnzd dchrisum0flblem2
            wf cz fzval3 mpbid rexlimddv ovex fveq2 ralsn sylibr expr ancld cun
            fzsuc ralunb syl6bb sylibrd expcom a2d nnind mpcom rspcv sylc ) ACU
            HCUIUJZUKZUDULZUMUNZVAUKZUHUOUPZYPFUNZUQURZUDYNUSZCUMUNZVAUKZUHUOUP
            ZCFUNZUQURZACUHVBUNZUKYOACVAUUHUCUTVCUHCVDVECVAUKAUUBUCAUUAUDUHUEUL
            ZUIUJZUSZVFAUUAUDUHUHUIUJZUSZVFAUUAUDUHUFULZUIUJZUSZVFAUUAUDUHUUNUH
            VGUJZUIUJZUSZVFAUUBVFUEUFCUUIUHVHZUUKUUMAUUTUUAUDUUJUULUUIUHUHUIVIV
            JVKUUIUUNVHZUUKUUPAUVAUUAUDUUJUUOUUIUUNUHUIVIVJVKUUIUUQVHZUUKUUSAUV
            BUUAUDUUJUURUUIUUQUHUIVIVJVKUUICVHZUUKUUBAUVCUUAUDUUJYNUUICUHUIVIVJ
            VKAVMUOVLUJZUMUNZVAUKZUHUOUPZUVDFUNZUQURZUUMABUODVMEFGHIJKLMNOPQRST
            UAUBVMVNUKAVOVPUOVQUKAVRVPVSUVIUUAUDUULYPUULUKZUUAUVIUVJYSUVGYTUVHU
            QUVJYRUVFUHUOUVJYQUVEVAUVJYPUVDUMUVJYPUHUVDYPUHVTVMWCWAWDZWBWEWFUVJ
            YPUVDFUVKWBWGWHWIVEUUNVAUKZAUUPUUSAUVLUUPUUSVFAUVLWMZUUPUUPUUAUDUUQ
            WJZUSZWMZUUSUVMUUPUVOAUVLUUPUVOAUVLUUPWMZWMZUUQUMUNZVAUKZUHUOUPZUUQ
            FUNZUQURZUVOUVRUGULZUUQWKURZUWCUGVNUVRUUQVMVBUNZUKZUWEUGVNWNUVRUUQU
            HUHVGUJZVBUNZUWFUVRUUNUUHUKZUUQUWIUKAUVLUWJUUPUVMUUNVAUUHAUVLWLUTVC
            ZWOUHUUNWPVEVMUWHVBWQWRWSZUUQUGWTVEUVRUWDVNUKZUWEWMZWMZUDBUUQDUWDEF
            GHIJKLMNOAIVAUKUVQUWNPXAQRSTAJDUKUVQUWNUAXAAKXCUNXBJXLUVQUWNUBXAUVR
            UWGUWNUWLXDUVRUWMUWEXEUVRUWMUWEXFUWOUUPUUAUDUHUUQXGUJZUSAUVLUUPUWNX
            HUWOUUAUDUUOUWPUWOUUNXMUKUUOUWPVHUWOUUNAUVLUUPUWNXIXJUHUUNXNVEVJXOX
            KXPUUAUWCUDUUQUUNUHVGXQYPUUQVHZYSUWAYTUWBUQUWQYRUVTUHUOUWQYQUVSVAYP
            UUQUMXRWEWFYPUUQFXRWGXSXTYAYBUVMUUSUUAUDUUOUVNYCZUSUVPUVMUUAUDUURUW
            RUVMUWJUURUWRVHUWKUHUUNYDVEVJUUAUDUUOUVNYEYFYGYHYIYJYKUUAUUGUDCYNYP
            CVHZYSUUEYTUUFUQUWSYRUUDUHUOUWSYQUUCVAYPCUMXRWEWFYPCFXRWGYLYM $.
        $}

        dchrisum0fno1.a $e |- ( ph -> ( x e. RR+ |->
     sum_ k e. ( 1 ... ( |_ ` x ) ) ( ( F ` k ) / ( sqrt ` k ) ) ) e. O(1) ) $.
        $( The sum ` sum_ k <_ x , F ( x ) / sqrt k ` is divergent (i.e. not
           eventually bounded).  Equation 9.4.30 of [Shapiro], p. 383.
           (Contributed by Mario Carneiro, 5-May-2016.) $)
        dchrisum0fno1 $p |- -. ph $=
          ( vi vm crp cv clog cfv cmpt co1 wcel logno1 c2 cdiv co wa cr relogcl
          cmul adantl 2cnd cc0 wne 2ne0 a1i divcan2d mpteq2dva cc rehalfcld wss
          recnd rpssre 2cn o1const mp2an c1 cfl cfz csqrt csu cvv sumex cle wbr
          1red cabs adantrr clt ad2antrl log1 simprr wb 1rp simprl logleb mpbid
          sylancr syl5eqbrr 2pos divge0 syl22anc absidd fzfid cn wf dchrisum0ff
          adantr elfznn ffvelrn syl2an nnrpd rpsqrtcld rerpdivcld fsumrecl wceq
          2re syl eqbrtrrd rprege0d sqrtsq eqeltrd fveq2 oveq1d sumeq2dv oveq2d
          cexp rpred simplbda syl2anc sqsqrtd mpbir2and oveq1 eqeltrrd eqtrd wn
          fznnfl ad2antrr letrd nnrecred logsqrt rpsqrtcl harmoniclbnd cif wrex
          abscld crn eqid ovex elrnmpti eleq1d syl5ibrcom rexlimdva imp iftrued
          syl5bi wf1 wf1o nnsqcld le2sq breqtrd ex sq11 dom2lem f1f1orn fvmpt3i
          wi f1f frn 3syl sselda 1re keepel rerpdivcl syldan fsumf1o cdif eldif
          nncnd sqrtle elrnmpt1s expr con3d impr sylan2b iffalsed eldifi sylan2
          0re rpcnne0d div0 fsumss 3eqtr3d dchrisum0flb lediv1dd fsumle eqbrtrd
          cbs leabsd o1le o1mul2 mto ) ABUGBUHZUIUJZUKZULUMBUNABUGUOUXEUOUPUQZV
          AUQZUKUXFULABUGUXHUXEAUXDUGUMZURZUXEUOUXJUXEUXIUXEUSUMZAUXDUTZVBZVMUX
          JVCZUOVDVEUXJVFVGVHVIABUGUOUXGVJUXNUXJUXGUXJUXEUXMVKZVMZBUGUOUKULUMZA
          UGUSVLUOVJUMUXQVNVOBUGUOVPVQVGABUGVRUXDVSUJZVTUQZFUHZGUJZUXTWAUJZUPUQ
          ZFWBZUXGVRWCAWGUDUYDWCUMUXJUXSUYCFWDVGUXPAUXIVRUXDWEWFZURZURZUXGWHUJU
          XGUYDWHUJZWEUYGUXGAUXIUXGUSUMUYEUXOWIZUYGUXKVDUXEWEWFUOUSUMZVDUOWJWFZ
          VDUXGWEWFUXIUXKAUYEUXLWKUYGVDVRUIUJZUXEWEWLUYGUYEUYLUXEWEWFZAUXIUYEWM
          UYGVRUGUMUXIUYEUYMWNWOAUXIUYEWPZVRUXDWQWSWRWTUYJUYGXRVGUYKUYGXAVGUXEU
          OXBXCXDUYGUXGUYDUYHUYIUYGUXSUYCFUYGVRUXRXEZUYGUXTUXSUMZURZUYAUYBUYGXF
          USGXGZUXTXFUMZUYAUSUMUYPAUYRUYFACDEGHIJKLMNOPQRSTUAUBUCXHXIUXTUXRXJZX
          FUSUXTGXKXLZUYQUXTUYQUXTUYPUYSUYGUYTVBZXMXNZXOZXPZUYGUYDUYGUYDVUEVMUU
          GUYGUXGVRUXDWAUJZVSUJZVTUQZVRUEUHZUPUQZUEWBZUYDUYIUYGVUHVUJUEUYGVRVUG
          XEZUYGVUIVUHUMZURZVUIVUMVUIXFUMUYGVUIVUGXJZVBZUUAXPVUEUYGVUFUIUJZUXGV
          UKWEUXIVUQUXGXQAUYEUXDUUBWKUYGVUFUGUMZVUQVUKWEWFUXIVURAUYEUXDUUCWKZVU
          FUEUUDXSXTUYGUXSUYBXFUMZVRVDUUEZUYBUPUQZFWBZVUKUYDWEUYGUFVUHUFUHZUOYH
          UQZUKZUUHZVVBFWBZVUHVRVUIUOYHUQZWAUJZUPUQZUEWBZVVCVUKUYGVVHVVGVRUYBUP
          UQZFWBVVLUYGVVGVVBVVMFUYGUXTVVGUMZURZVVAVRUYBUPVVOVUTVRVDUYGVVNVUTVVN
          UXTVVEXQZUFVUHUUFUYGVUTUFVUHVVEUXTVVFVVFUUIZVVDUOYHUUJZUUKUYGVVPVUTUF
          VUHUYGVVDVUHUMZURZVUTVVPVVEWAUJZXFUMVVTVWAVVDXFVVTVVDUSUMVDVVDWEWFURZ
          VWAVVDXQVVTVVDVVTVVDVVSVVDXFUMZUYGVVDVUGXJZVBZXMYAZVVDYBXSVWEYCVVPUYB
          VWAXFUXTVVEWAYDUULUUMUUNUUQUUOUUPYEZYFUYGVVGVVMVUHVVKFUEVVFVVIUXTVVIX
          QUYBVVJVRUPUXTVVIWAYDYGVULUYGVUHUXSVVFUURZVUHVVGVVFUUSUYGUFUEVUHUXSVV
          EVVIUYGVVSVVEUXSUMZVVTVWIVVEXFUMZVVEUXDWEWFZVVTVVDVWEUUTVVTVVEVUFUOYH
          UQZUXDWEVVTVVDVUFWEWFZVVEVWLWEWFZUYGVVSVWCVWMUYGVUFUSUMZVVSVWCVWMURWN
          UYGVUFVUSYIVVDVUFYRXSYJVVTVWBVWOVDVUFWEWFURVWMVWNWNVWFVVTVUFUYGVURVVS
          VUSXIYAVVDVUFUVAYKWRVVTUXDVVTUXDUYGUXDUSUMZVVSUYGUXDUYNYIZXIZVMYLUVBV
          VTVWPVWIVWJVWKURWNVWRVVEUXDYRXSYMUVCVVSVUMURVVEVVIXQVVDVUIXQWNZUVHUYG
          VVSVWBVUIUSUMVDVUIWEWFURZVWSVUMVVSVVDVVSVVDVWDXMYAVUMVUIVUMVUIVUOXMYA
          VVDVUIUVDXLVGUVEZVUHUXSVVFUVFXSVUMVUIVVFUJVVIXQUYGUFVUIVVEVVIVUHVVFVV
          DVUIUOYHYNVVQVVRUVGVBVVOVVBVVMVJVWGUYGVVNUYPVVBVJUMUYGVVGUXSUXTUYGVWH
          VUHUXSVVFXGVVGUXSVLVXAVUHUXSVVFUVIVUHUXSVVFUVJUVKZUVLUYQVVBUYQVVAUSUM
          ZUYBUGUMZVVBUSUMVUTVRVDUSUVMUWJUVNZVUCVVAUYBUVOWSZVMUVPZYOUVQYPUYGVVG
          UXSVVBFVXBVXGUYGUXTUXSVVGUVRUMZURZVVBVDUYBUPUQZVDVXIVVAVDUYBUPVXIVUTV
          RVDVXHUYGUYPVVNYQZURVUTYQZUXTUXSVVGUVSUYGUYPVXKVXLUYQVUTVVNUYGUYPVUTV
          VNUYGUYPVUTURZURZUYBUOYHUQZUXTVVGVXNUXTVXNUXTUYPUYSUYGVUTUYTWKZUVTYLZ
          VXNUYBVUHUMZVXOXFUMVXOVVGUMVXNVXRVUTUYBVUFWEWFZUYGUYPVUTWMVXNUXTUXDWE
          WFZVXSUYGUYPVXTVUTUYGUYPUYSVXTUYGVWPUYPUYSVXTURWNVWQUXTUXDYRXSYJWIVXN
          UXTUSUMVDUXTWEWFURVWPVDUXDWEWFURVXTVXSWNVXNUXTVXNUXTVXPXMYAVXNUXDUYGU
          XIVXMUYNXIYAUXTUXDUWAYKWRVXNVWOVXRVUTVXSURWNVXNVUFUYGVURVXMVUSXIYIUYB
          VUFYRXSYMVXNVXOUXTXFVXQVXPYCUFVUHVVEVXOUYBVVFXFVVQVVDUYBUOYHYNUWBYKYO
          UWCUWDUWEUWFUWGYEVXIUYBVJUMUYBVDVEURVXJVDXQVXIUYBVXHUYGUYPVXDUXTUXSVV
          GUWHVUCUWIUWKUYBUWLXSYPUYOUWMUYGVUHVVKVUJUEVUNVVJVUIVRUPVUNVWTVVJVUIX
          QVUNVUIVUNVUIVUPXMYAVUIYBXSYGYFUWNUYGUXSVVBUYCFUYOVXFVUDUYQVVAUYAUYBV
          XCUYQVXEVGVUAVUCUYQCUXTDEGHIJKLMNOPAJXFUMUYFUYPQYSRSTUAAKDUMUYFUYPUBY
          SALUWSUJUSKXGUYFUYPUCYSVUBUWOUWPUWQXTYTUYGUYDVUEUWTYTUWRUXAUXBYOUXC
          $.
      $}

      rpvmasum2.w $e |- W = { y e. ( D \ { .1. } ) |
        sum_ m e. NN ( ( y ` ( L ` m ) ) / m ) = 0 } $.
      ${
        $d n A $.
        rpvmasum2.u $e |- U = ( Unit ` Z ) $.
        rpvmasum2.b $e |- ( ph -> A e. U ) $.
        rpvmasum2.t $e |- T = ( `' L " { A } ) $.
        rpvmasum2.z1 $e |- ( ( ph /\ f e. W ) -> A = ( 1r ` Z ) ) $.
        $( A partial result along the lines of ~ rpvmasum .  The sum of the von
           Mangoldt function over those integers ` n == A ` (mod ` N ` ) is
           asymptotic to ` ( 1 - M ) ( log x / phi ( x ) ) + O(1) ` , where
           ` M ` is the number of non-principal Dirichlet characters with
           ` sum_ n e. NN , X ( n ) / n = 0 ` .  Our goal is to show this set
           is empty.  Equation 9.4.3 of [Shapiro], p. 375.  (Contributed by
           Mario Carneiro, 5-May-2016.) $)
        rpvmasum2 $p |- ( ph -> ( x e. RR+ |-> ( ( ( phi ` N ) x.
      sum_ n e. ( ( 1 ... ( |_ ` x ) ) i^i T ) ( ( Lam ` n ) / n ) ) -
            ( ( log ` x ) x. ( 1 - ( # ` W ) ) ) ) ) e. O(1) ) $=
          ( va vt vc crp cv cfv ccj c1 cfl cdiv cmul csu wceq wcel cneg cc0 cif
          co cmin cmpt cin co1 wa cn cfn adantr syl fzfid simpr sseldi ffvelrnd
          cc cjcld adantlr wf cz cn0 syl2an anasss adantl recnd mulcld anass1rs
          cr fsumcl ax-1cn neg1cn 0cn keepel mulcl sylancl subdid fsummulc2 a1i
          eqid ovif2 fveq1 ad2antrr sylan9eqr fveq2d syl6eq oveq1d ifeq1da cmgp
          ccnfld ringidval eqtrd mul01d syl5eq oveq2d oveq12d sumeq2dv wss ssfi
          syldan wral wo olcd sumss2 syl21anc csn 3eqtr3d eqtr3d 3eqtrd mulid1d
          wb caddc eqeltrd negeq neg0 ifsb mpteq2dva an32s cvma clog cphi chash
          cfz dchrfi cbs unitss adantrl wfo nnnn0d znzrhfo 3syl elfzelz ffvelrn
          dchrf elfznn vmacl nndivred adantrr relogcl fsumsub mul12d dchr1 cjre
          fof 1re ax-mp 1t1e1 wn wne df-ne cur simplll cmhm dchrmhm cnfld1 mhm0
          sylan mulid2i ifeq2d sylan2br inss1 phicld nncnd sselda cuz ralrimiva
          ifeq2da elin baib ccnv cima eleq2i wfn ffn baibd syl5bb bitr2d mul02d
          fniniseg ifbieq2d fsummulc1 sum2dchr w3a mulass mul12 syl3anc syl5eqr
          ovif fsumcom cdif cabl cgrp dchrabl ablgrp grpidcl 4syl sumsn syl2anc
          eldifsn ifnefalse ad2antll syl6eqr mulneg2 sylan2b diffi fsumneg crab
          iftrue ssrab2 eqsstri difss fsumconst ralrimivw hashcl nn0cnd negsubd
          sstri negeqd disjdif cun undif2 snssd ssequn1 sylib syl5req fsumsplit
          3eqtr4rd 3eqtr4d rpssre subcld o1const sumeq2sdv sylan9eq rpvmasumlem
          sylancr mulcom mulm1d ifeq12d 3eqtr4g ifcl subnegd cseq cli cabs cpnf
          wbr cle cico wrex wex simplr dchrmusumlema simprrl simprrr dchrvmaeq0
          c0 simprl ifbi mpteq2dv dchrvmasumif rexlimdvaa mpd pm2.61dane o1mul2
          exlimdv fsumo1 eqeltrrd ) ABUKEDIULZUMZUNUMZUOBULZUPUMZUUEVEZKULZMUMZ
[encoded data, 6480 characters]
          BXXNXXOXXPVWBYOVWCVWGVWDYOVWEVWFVWHVWI $.
      $}

      dchrisum0.b $e |- ( ph -> X e. W ) $.
      $( Suppose ` X ` is a non-principal Dirichlet character with
         ` sum_ n e. NN , X ( n ) / n = 0 ` .  Then ` X ` is a real character.
         Part of Lemma 9.4.4 of [Shapiro], p. 382.  (Contributed by Mario
         Carneiro, 5-May-2016.) $)
      dchrisum0re $p |- ( ph -> X : ( Base ` Z ) --> RR ) $=
        ( wcel vx vn vf vk va vt vc cbs cfv wfn cv cr wral wf cc eqid cdif cdiv
        csn cn co csu cc0 wceq crab ssrab2 eqsstri sseldi eldifad dchrf ffnd wa
        ffvelrnda ccj fvco3 crp clog cmpt co1 wne c1 cfl cmul chash cmin nnnn0d
        cfz cn0 syl adantr nn0red cfn fzfid ssfi sylancl elfznn adantl remulcld
        wss sylancr resubcld recnd cle wbr cabs caddc ad2ant2r 2re a1i ad2antrr
        c2 wb simprl mpbid syl2anc mpbird sylanbrc nnuz fveq2 fveq2d id oveq12d
        weq fvmpt oveq2d cz syl2an oveq1d divcld eqeltrd cseq cli cvv cpnf cico
        cjcld fsumser nnred letrd absidd ccom sylan wn logno1 cphi ccnv cur cin
        cima cvma 1red cui crg ccrg zncrng crngring 1unit eqidd rpvmasum2 inss1
        phicld elinel1 sylan2 vmacl nndivre mpancom fsumrecl relogcl 1re dchrfi
        difss sstri hashcl resubcl adantlr ad2antrl readdcld 0red simprr logleb
        log1 1rp syl5eqbrr cpr simplr cminusg dchrinv cgrp cabl ablgrp grpinvcl
        dchrabl eqeltrrd eldifsni grpidcl grpinv11 necon3bid grpinvid 1zzd fvex
        3netr3d eldifsn nnre cjred wfo znzrhfo fof ffvelrn ffvelrnd nncn cjdivd
        nnz nnne0 3eqtr4d wrex dchrmusumlema simprrl simprrr dchrvmaeq0 breqtrd
        eqtrd wex rexlimdvaa exlimdv mpd seqex ovex serf simpl fsumcj cuz simpr
        syl6eleq 3eqtr3rd climcj cj0 syl6breq isumclim sumeq2sdv eqeq1d hashprg
        fveq1 elrab2 cdom prssd ssdomg hashdomi eqbrtrrd suble0 lemul2ad oveq1i
        sylc df-2 1cnd addsubassd syl5eq adantrr adddid mulid1d 3brtr3d nn0ge0d
        3eqtrd mul01d clt vmage0 nngt0d divge0 syl22anc fsumge0 mulge0d syl3anc
        leaddsub 3brtr4d o1le necon1bd mpi fveq1d eqtr3d cjrebd ralrimiva ffnfv
        ex ) AJKUHUIZUJUAUKZJUIZULTZUAVWCUMVWCULJUNAVWCUOJAVWCCFHJKOLPVWCUPZAJC
[encoded data, 4640 characters]
        VWCULJVWAXQ $.

      ${
        $d m F $.
        dchrisum0lem1.f $e |- F = ( a e. NN |->
          ( ( X ` ( L ` a ) ) / ( sqrt ` a ) ) ) $.
        $( Lemma for ~ dchrisum0 .  Apply ~ dchrisum for the function
           ` 1 / sqrt y ` .  (Contributed by Mario Carneiro, 10-May-2016.) $)
        dchrisum0lema $p |- ( ph -> E. t E. c e. ( 0 [,) +oo )
          ( seq 1 ( + , F ) ~~> t /\ A. y e. ( 1 [,) +oo ) ( abs `
            ( ( seq 1 ( + , F ) ` ( |_ ` y ) ) - t ) )
              <_ ( c / ( sqrt ` y ) ) ) ) $=
          ( vx vn caddc c1 cseq cv cli wbr cfl cfv cmin co cabs csqrt cdiv cpnf
          cle cico wral wa cc0 wrex wex cmul cmpt csn cdif csu wceq crab ssrab2
          eqsstri sseldi eldifad wcel wne eldifsni syl weq fveq2 oveq2d 1nn a1i
          cn crp rpsqrtcl adantl rprecred w3a simp3r cr wb simp2l simp2r sqrtle
          rprege0d syl2anc rpsqrtcld lerecd crli sqrtlim fveq2d oveq12d cbvmptv
          mpbid dchrisum adantr cz dchrzrhcl simpr nnrpd rpcnd rpne0d mpteq2dva
          divrecd 3eqtr4g seqeq3d breq1d oveq1d breq12d cbvralv ad2antrr fveq1d
          nnz eqtri elrege0 simplbi ad2antlr recnd 1re elicopnf ax-mp 0red 1red
          clt 0lt1 simprbi ltletrd elrpd ralbidva syl5bb rexbidva exbidv mpbird
          anbi12d ) AUGGUHUIZCUJZUKULZBUJZUMUNZUUJUNZUUKUOUPZUQUNZOUJZUUMURUNZU
          SUPZVAULZBUHUTVBUPZVCZVDZOVEUTVBUPZVFZCVGUGNWHNUJZIUNZLUNZUHUVGURUNZU
          SUPZVHUPZVIZUHUIZUUKUKULZUEUJZUMUNZUVNUNZUUKUOUPZUQUNZUURUHUVPURUNZUS
          UPZVHUPZVAULZUEUVBVCZVDZOUVEVFZCVGAUECUHUFUJZURUNZUSUPZUWBDEUFUVMHIUH
          JLMOPQRSTUAALDEVJZAKDUWKVKZLKWHFUJZIUNUUMUNUWMUSUPFVLVEVMZBUWLVNUWLUB
          UWNBUWLVOVPUCVQZVRZALUWLVSLEVTUWOLDEWAWBUFUEWCUWIUWAUHUSUWHUVPURWDWEU
          HWHVSAWFWGAUWHWIVSZVDUWIUWQUWIWIVSAUWHWJWKWLAUWQUVPWIVSZVDZUHUWHVAULZ
          UWHUVPVAULZVDZWMZUWIUWAVAULZUWBUWJVAULUXCUXAUXDAUWSUWTUXAWNUXCUWHWOVS
          VEUWHVAULVDUVPWOVSZVEUVPVAULVDUXAUXDWPUXCUWHAUWQUWRUXBWQZWTUXCUVPAUWQ
          UWRUXBWRZWTUWHUVPWSXAXIUXCUWIUWAUXCUWHUXFXBUXCUVPUXGXBXCXIUFWIUWJVIVE
          XDULAUFXEWGNUFWHUVLUWHIUNZLUNZUWJVHUPZNUFWCZUVIUXIUVKUWJVHUXKUVHUXHLU
          VGUWHIWDXFZUXKUVJUWIUHUSUVGUWHURWDZWEXGXHZXJAUVFUWGCAUVDUWFOUVEAUURUV
          EVSZVDZUULUVOUVCUWEAUULUVOWPUXOAUUJUVNUUKUKAGUVMUGUHAUFWHUXIUWIUSUPZV
          IZUFWHUXJVIGUVMAUFWHUXQUXJAUWHWHVSZVDZUXIUWIUXTUWHDHIJLMSPTQALDVSUXSU
          WPXKUXSUWHXLVSAUWHYHWKXMUXTUWIUXTUWHUXTUWHAUXSXNXOXBZXPUXTUWIUYAXQXSX
          RGNWHUVIUVJUSUPZVIUXRUDNUFWHUYBUXQUXKUVIUXIUVJUWIUSUXLUXMXGXHYIUXNXTZ
          YAYBXKUVCUVQUUJUNZUUKUOUPZUQUNZUURUWAUSUPZVAULZUEUVBVCUXPUWEUVAUYHBUE
          UVBBUEWCZUUQUYFUUTUYGVAUYIUUPUYEUQUYIUUOUYDUUKUOUYIUUNUVQUUJUUMUVPUMW
          DXFYCXFUYIUUSUWAUURUSUUMUVPURWDWEYDYEUXPUYHUWDUEUVBUXPUVPUVBVSZVDZUYF
          UVTUYGUWCVAUYKUYEUVSUQUYKUYDUVRUUKUOUYKUVQUUJUVNUYKGUVMUGUHAGUVMVMUXO
          UYJUYCYFYAYGYCXFUYKUURUWAUYKUURUXOUURWOVSZAUYJUXOUYLVEUURVAULUURYJYKY
          LYMUYKUWAUYKUVPUYKUVPUYJUXEUXPUYJUXEUHUVPVAULZUHWOVSUYJUXEUYMVDWPYNUH
          UVPYOYPZYKWKZUYKVEUHUVPUYKYQUYKYRUYOVEUHYSULUYKYTWGUYJUYMUXPUYJUXEUYM
          UYNUUAWKUUBUUCXBZXPUYKUWAUYPXQXSYDUUDUUEUUIUUFUUGUUH $.

        dchrisum0.c $e |- ( ph -> C e. ( 0 [,) +oo ) ) $.
        dchrisum0.s $e |- ( ph -> seq 1 ( + , F ) ~~> S ) $.
        dchrisum0.1 $e |- ( ph -> A. y e. ( 1 [,) +oo )
          ( abs ` ( ( seq 1 ( + , F ) ` ( |_ ` y ) ) - S ) ) <_
            ( C / ( sqrt ` y ) ) ) $.
        $( Lemma for ~ dchrisum0lem1 .  (Contributed by Mario Carneiro,
           7-Jun-2016.) $)
        dchrisum0lem1b $p |- ( ( ( ph /\ x e. RR+ ) /\
          d e. ( 1 ... ( |_ ` x ) ) ) -> ( abs `
            sum_ m e. ( ( ( |_ ` x ) + 1 ) ... ( |_ ` ( ( x ^ 2 ) / d ) ) )
              ( ( X ` ( L ` m ) ) / ( sqrt ` m ) ) ) <_
            ( ( 2 x. C ) / ( sqrt ` x ) ) ) $=
          ( cv crp wcel wa c1 cfl cfv cfz co caddc c2 cexp cdiv csqrt cabs cseq
          csu cmin cmul fzfid cc cun ssun2 cuz wceq cn cn0 cr cc0 cle wbr simpr
          rprege0d flge0nn0 syl nn0p1nn adantr syl6eleq dchrisum0lem1a fzsplit2
          nnuz simprd syl2anc syl5sseqr sselda cdif ssrab2 eqsstri cz dchrzrhcl
          csn crab adantl elfznn nnrpd rpsqrtcld rpcnd rpne0d divcld syldan weq
          abscld cmpt fveq2 fveq2d oveq12d ad2antrr rpregt0d simpld rpred letrd
          clt ffvelrnd subcld cpnf cico rerpdivcld fsumser eqbrtrd 1re elicopnf
          wb eqtr3d ax-mp sylanbrc oveq1d oveq2d breq12d rspcv sylc recnd eqtri
          sseldi eldifad ad3antrrr elfzelz fsumcl wf 1zzd nnz cbvmptv ffvelrnda
          nnrp fmptd serf 1red nnge1d fznnfl simplbda flge1nn eluznn cli climcl
          nnred readdcld 2re elrege0 sylib remulcl sylancr ovex fvmpt3i eqeltrd
          ssun1 pncan2d cin c0 reflcl ltp1d fzdisj fsumsplit abs3difd simplr 2z
          rpexpcl sylancl rpdivcld nndivre syl2an sqrtle mpbid lediv2a syl31anc
          wral abssubd le2addd wne 2cnd rpcnne0d syl3anc 2timesd eqtrd breqtrrd
          divass ) ABUJZUKULZUMZQUJZUNUXDUOUPZUQURZULZUMZUXHUNUSURZUXDUTVAURZUX
          GVBURZUOUPZUQURZHUJZKUPZNUPZUXQVCUPZVBURZHVFZVDUPZUXOUSIUNVEZUPZFVGUR
          ZVDUPZFUXHUYDUPZVGURZVDUPZUSURZUTDVHURZUXDVCUPZVBURZUXKUYBUXKUXPUYAHU
          XKUXLUXOVIUXKUXQUXPULUXQUNUXOUQURZULZUYAVJULZUXKUXPUYOUXQUXKUXIUXPVKZ
          UXPUYOUXPUXIVLUXKUXLUNVMUPZULUXOUXHVMUPULZUYOUYRVNUXKUXLVOUYSUXFUXLVO
          ULZUXJUXFUXHVPULZVUAUXFUXDVQULZVRUXDVSVTUMZVUBUXFUXDAUXEWAZWBUXDWCWDU
          XHWEWDWFWJWGUXKUXDUXNVSVTZUYTAUXGUXDWHZWKZUXHUNUXOWIWLZWMWNUXKUYPUMZU
          XSUXTVUJUXQEJKLNOUARUBSANEULZUXEUXJUYPANEGWTZAMEVULWOZNMVOUXRCUJZUPUX
          QVBURHVFVRVNZCVUMXAVUMUDVUOCVUMWPWQUEUUBUUCZUUDUYPUXQWRULZUXKUXQUNUXO
          UUEXBWSVUJUXTVUJUXQVUJUXQUYPUXQVOULZUXKUXQUXOXCXBZXDXEZXFVUJUXTVUTXGX
          HZXIUUFZXKUXKUYGUYJUXKUYFUXKUYEFUXKVOVJUXOUYDAVOVJUYDUUGUXEUXJAHIUNVO
          WJAUUHAVOVJUXQIAHVOUYAVJIAVURUMZUXSUXTVVCUXQEJKLNOUARUBSAVUKVURVUPWFV
          URVUQAUXQUUIXBWSVVCUXTVVCUXQVURUXQUKULAUXQUULXBXEZXFVVCUXTVVDXGXHIPVO
          PUJZKUPZNUPZVVEVCUPZVBURZXLHVOUYAXLUFPHVOVVIUYAPHXJZVVGUXSVVHUXTVBVVJ
          VVFUXRNVVEUXQKXMXNVVEUXQVCXMXOZUUJUUAUUMUUKUUNXPZUXKUXHVOULZUYTUXOVOU
          LUXKVUCUNUXDVSVTZVVMUXKVUCVRUXDYAVTZUXFVUCVVOUMUXJUXFUXDVUEXQWFXRZUXK
          UNUXGUXDUXKUUOZUXKUXGUXJUXGVOULZUXFUXGUXHXCZXBZUVCVVPUXKUXGVVTUUPUXFU
          XJVVRUXGUXDVSVTZUXFVUCUXJVVRVWAUMYKUXFUXDVUEXSUXGUXDUUQWDUURXTZUXDUUS
          WLZVUHUXOUXHUUTWLZYBZAFVJULZUXEUXJAUYDFUVAVTVWFUHFUYDUVBWDXPZYCXKZUXK
          UYIUXKFUYHVWGUXKVOVJUXHUYDVVLVWCYBZYCXKZUVDUXFUYNVQULUXJUXFUYLUYMAUYL
          VQULZUXEAUTVQULDVQULZVWKUVEAVWLVRDVSVTZADVRYDYEURULVWLVWMUMZUGDUVFUVG
          ZXRZUTDUVHUVIWFUXFUXDVUEXEZYFWFUXKUYCUYEUYHVGURZVDUPUYKVSUXKUYBVWRVDU
          XKUXIUYAHVFZUYBUSURZVWSVGURUYBVWRUXKVWSUYBUXKVWSUYHVJUXKUYAHIUNUXHUXK
          UXQUXIULZUYPUXQIUPUYAVNZUXKUXIUYOUXQUXKUYRUXIUYOUXIUXPUVMVUIWMWNZVUJV
          URVXBVUSPUXQVVIUYAVOIVVKUFVVGVVHVBUVJUVKWDZXIUXKUXHVOUYSVWCWJWGUXKVXA
          UYPUYQVXCVVAXIYGZVWIUVLVVBUVNUXKVWTUYEVWSUYHVGUXKUYOUYAHVFVWTUYEUXKUX
          IUXPUYAUYOHUXKUXHUXLYAVTUXIUXPUVOUVPVNUXKUXHUXKVUCUXHVQULVVPUXDUVQWDU
          VRUNUXHUXLUXOUVSWDVUIUXKUNUXOVIVVAUVTUXKUYAHIUNUXOVXDUXKUXOVOUYSVWDWJ
          WGVVAYGYLVXEXOYLXNUXKUYEUYHFVWEVWIVWGUWAYHUXKUYKDUYMVBURZVXFUSURZUYNV
          SUXKUYGUYJVXFVXFVWHVWJUXKDUYMAVWLUXEUXJVWPXPZUXKUXDAUXEUXJUWBZXEZYFZV
          XKUXKUYGDUXNVCUPZVBURZVXFVWHUXKDVXLVXHUXKUXNUXKUXMUXGUXFUXMUKULZUXJUX
          FUXEUTWRULVXNVUEUWCUXDUTUWDUWEZWFUXKUXGVVTXDUWFZXEZYFVXKUXKUXNUNYDYEU
          RZULZVUNUOUPZUYDUPZFVGURZVDUPZDVUNVCUPZVBURZVSVTZCVXRUWMZUYGVXMVSVTZU
          XKUXNVQULZUNUXNVSVTZVXSUXFUXMVQULVVRVYIUXJUXFUXMVXOXSVVSUXMUXGUWGUWHZ
          UXKUNUXDUXNVVQVVPVYKVWBUXKVUFUYTVUGXRZXTUNVQULZVXSVYIVYJUMYKYIUNUXNYJ
          YMYNAVYGUXEUXJUIXPZVYFVYHCUXNVXRVUNUXNVNZVYCUYGVYEVXMVSVYOVYBUYFVDVYO
          VYAUYEFVGVYOVXTUXOUYDVUNUXNUOXMXNYOXNVYOVYDVXLDVBVUNUXNVCXMYPYQYRYSUX
          KUYMVQULVRUYMYAVTUMVXLVQULVRVXLYAVTUMVWNUYMVXLVSVTZVXMVXFVSVTUXKUYMVX
          JXQUXKVXLVXQXQAVWNUXEUXJVWOXPUXKVUFVYPVYLUXKVUDVYIVRUXNVSVTUMVUFVYPYK
          UXKUXDVXIWBUXKUXNVXPWBUXDUXNUWIWLUWJUYMVXLDUWKUWLXTUXKUYJUYHFVGURZVDU
          PZVXFVSUXKFUYHVWGVWIUWNUXKUXDVXRULZVYGVYRVXFVSVTZUXKVUCVVNVYSVVPVWBVY
          MVYSVUCVVNUMYKYIUNUXDYJYMYNVYNVYFVYTCUXDVXRCBXJZVYCVYRVYEVXFVSWUAVYBV
          YQVDWUAVYAUYHFVGWUAVXTUXHUYDVUNUXDUOXMXNYOXNWUAVYDUYMDVBVUNUXDVCXMYPY
          QYRYSYHUWOUXKUYNUTVXFVHURZVXGUXKUTVJULDVJULZUYMVJULUYMVRUWPUMZUYNWUBV
          NUXKUWQUXFWUCUXJUXFDAVWLUXEVWPWFYTWFUXFWUDUXJUXFUYMVWQUWRWFUTDUYMUXCU
          WSUXKVXFUXKVXFVXKYTUWTUXAUXBXT $.

        $( Lemma for ~ dchrisum0 .  (Contributed by Mario Carneiro,
           12-May-2016.)  (Revised by Mario Carneiro, 7-Jun-2016.) $)
        dchrisum0lem1 $p |- ( ph -> ( x e. RR+ |->
          sum_ m e. ( ( ( |_ ` x ) + 1 ) ... ( |_ ` ( x ^ 2 ) ) )
            sum_ d e. ( 1 ... ( |_ ` ( ( x ^ 2 ) / m ) ) )
         ( ( ( X ` ( L ` m ) ) / ( sqrt ` m ) ) / ( sqrt ` d ) ) ) e. O(1) ) $=
          ( crp c1 cv cfl cfv cfz co caddc c2 cexp cdiv csqrt csu cmpt co1 wcel
          wa fzfid cn cuz wi elfznn elfzuz anim12i a1i anim12ci wb cle wbr cmul
          cz eluzelz ad2antll zred cr simpr rpexpcl sylancl rpred adantr simprl
          2z nnrpd cc0 rprege0d 3syl syl2anc wceq cc adantl letrd mpbid eqbrtrd
          syl ad2antrl letr syl3anc mpan2d pm4.71rd rpregt0d recnd fznnfl baibd
          clt 1re flcld elfz5 flge bitr4d anbi12d simprd rpsqrtcld rpcnd rpne0d
          divcld simpld syldan mpteq2dva sylancr rprecred remulcl oveq1d oveq2d
          fsumrecl 2re rpssre crli remulcld fsumcl cabs abscld flge0nn0 nn0p1nn
          lemuldivd simprr eluznn lemuldiv2d bitr3d rpcn sqvald simplr peano2re
          nnred cn0 reflcl fllep1 eluzle lemul1d ledivmuld mpbird nnre nndivred
          sylbid nnge1 pm3.2i lediv2 div1d breqtrd simpl nndivre syl2an sylbird
          0lt1 3bitr3d 3bitr4d pm5.21ndd cun ssun2 nnuz syl6eleq dchrisum0lem1a
          fzsplit2 syl5sseqr sselda csn cdif crab ssrab2 eqsstri sseldi eldifad
          ex ad3antrrr elfzelz dchrzrhcl wne rpcnne0d anasss fsumcom2 2cn mulcl
          cmin subcld cpnf cico elrege0 rerpdivcld adddird pncan3d 2cnd mulassd
          sylib divcan2d 3eqtr3d mulcld wss o1const cdm eqid divsqrsum rlimdmo1
          eqtrd divrecd rlimconst sqrtlim rlimmul rlimo1 o1mul2 eqeltrd fsumabs
          o1add2 dchrisum0lem1b lediv1dd absdivd fsumdivc fveq2d absid 3eqtr3rd
          mp1i divrec2d 3brtr3d fsumle fsummulc1 breqtrrd adantrr o1le eqeltrrd
          leabsd ) ABUJUKBULZUMUNZUOUPZVUIUKUQUPZVUHURUSUPZQULZUTUPZUMUNZUOUPZH
[encoded data, 4800 characters]
          VUEVUF $.

        ${
          dchrisum0lem2.h $e |- H = ( y e. RR+ |->
            ( sum_ d e. ( 1 ... ( |_ ` y ) ) ( 1 / ( sqrt ` d ) ) -
              ( 2 x. ( sqrt ` y ) ) ) ) $.
          dchrisum0lem2.u $e |- ( ph -> H ~~>r U ) $.
          $( Lemma for ~ dchrisum0 .  (Contributed by Mario Carneiro,
             12-May-2016.) $)
          dchrisum0lem2a $p |- ( ph -> ( x e. RR+ |->
            sum_ m e. ( 1 ... ( |_ ` x ) )
              ( ( ( X ` ( L ` m ) ) / ( sqrt ` m ) ) x.
                ( H ` ( ( x ^ 2 ) / m ) ) ) ) e. O(1) ) $=
            ( vz vw crp c1 cv cfl cfv cfz co csqrt cdiv cexp cmul csu cmpt wcel
            c2 co1 cc wa fzfid cn simpl elfznn csn cdif cc0 wceq ssrab2 eqsstri
            crab sseldi eldifad adantr cz nnz adantl dchrzrhcl rpsqrtcld rpne0d
            rpcnd syl2an fsumcl crli wbr syl cpnf cico wss cioo clt ax-mp fveq2
            cle sylanl2 cr wb nnuz mpteq2dva rpssre fmptd ffvelrnda eqid mpbird
            1red recnd mulcld cmin ad2antrr oveq2d 3eqtr4d cabs abscld rprecred
            simpld absge0d rprege0d eqtrd cn0 3syl ad2antlr wne syl2anc breqtrd
            oveq1d syl3anc letrd nnrp divcld rlimcl cres caddc cseq 0lt1 df-ioo
            cxr df-ico xrltletr ixxss1 mp2an ioorp sseqtri resmpt sseli oveq12d
            0xr fveq2d ovex fvmpt3i cuz elicopnf flge1nn sylbi syl6eleq fsumser
            1re syl5eq a1i 1zzd cli cbvmptv eqtri serf feqmptd eqbrtrrd simprbi
            syl5ss climrlim2 rlimo1 eqeltrd o1resb o1const sylancr o1mul2 simpr
            2z rpexpcl sylancl nnrpd rpdivcl divsqrsumf ffvelrni fsumsub subdid
            sumeq2dv fsummulc1 subcld fsumrecl fsumabs reflcl rerpdivcld simplr
            rprege0 rpdivcld absdivd cbs wfo nnnn0d znzrhfo fof elfzelz ffvelrn
            absid wf dchrabs2 lediv1dd eqbrtrd divsqrtsum2 mpdan sqrtdiv sqrtsq
            rpcnne0 rpcnne0d recdiv lemul12ad absmuld 1cnd dmdcan reccl mulcomd
            eqtr3d 3brtr4d fsumle chash flge0nn0 hashfz1 cfn rpreccld fsumconst
            simprd divrecd flle mulid1d breqtrrd rpregt0 ledivmul adantrr elo1d
            eqeltrrd o1dif ) ABUPUQBURZUSUTZVAVBZIURZMUTZPUTZVUQVCUTZVDVBZVUNVJ
[encoded data, 4160 characters]
            VUMXQ $.

          dchrisum0lem2.k $e |- K = ( a e. NN |->
            ( ( X ` ( L ` a ) ) / a ) ) $.
          dchrisum0lem2.e $e |- ( ph -> E e. ( 0 [,) +oo ) ) $.
          dchrisum0lem2.t $e |- ( ph -> seq 1 ( + , K ) ~~> T ) $.
          dchrisum0lem2.3 $e |- ( ph -> A. y e. ( 1 [,) +oo )
           ( abs ` ( ( seq 1 ( + , K ) ` ( |_ ` y ) ) - T ) ) <_ ( E / y ) ) $.
          $( Lemma for ~ dchrisum0 .  (Contributed by Mario Carneiro,
             12-May-2016.) $)
          dchrisum0lem2 $p |- ( ph -> ( x e. RR+ |->
            sum_ m e. ( 1 ... ( |_ ` x ) )
              sum_ d e. ( 1 ... ( |_ ` ( ( x ^ 2 ) / m ) ) )
         ( ( ( X ` ( L ` m ) ) / ( sqrt ` m ) ) / ( sqrt ` d ) ) ) e. O(1) ) $=
            ( crp c1 cv cfl cfv cfz co c2 cexp cdiv csqrt csu cmpt wcel cmul cc
            co1 wa 2cnd rpcn adantl fzfid csn cdif cc0 wceq crab ssrab2 eqsstri
            cn sseldi eldifad ad2antrr elfzelz elfznn nnrpd rpcnd rpne0d divcld
            cz fsumcl mulcld cr rpssre 2cn a1i cpnf cico cle wbr syl cabs eqtrd
            oveq1d adantrr cmin weq fveq2 oveq12d ovex fvmpt3i adantlrr syl2anc
            fveq2d wne adantr wb eqbrtrd syl3anc mpbird rpsqrtcld mulcl sylancr
            rpcnne0d oveq2d sumeq2dv fsummulc2 eqtr4d 3eqtr4d rprege0d wss 1red
            dchrzrhcl o1const mp2an elrege0 simplbi absmuld rprege0 absid caddc
            cseq subid1d id cuz clt rpregt0 ad2antrl simpld simprr flge1nn nnuz
            syl6eleq fsumser eldifsni dchrvmaeq0 mpbid eqcomd wral 1re elicopnf
            eqtr3d ax-mp oveq2 breq12d rspcv sylc abscld lemuldiv2 elo1d o1mul2
            sylanbrc 2re simpr 2z rpexpcl sylancl rpdivcl rpred remulcl fsumsub
            syl2an recnd reccl subdid sumeq1d divrecd mulassd divdiv1 remsqsqrt
            div12d eqtr2d sqrtdiv ad2antlr sqrtsq divass 3eqtr3d dchrisum0lem2a
            mpteq2dva eqeltrrd o1dif ) ABVAVBBVCZVDVEZVFVGZVBUXLVHVIVGZJVCZVJVG
            ZVDVEZVFVGZUXPPVEZSVEZUXPVKVEZVJVGZUBVCZVKVEZVJVGZUBVLZJVLZVMVQVNBV
            AVHUXLUXNUYAUXPVJVGZJVLZVOVGZVOVGZVMVQVNABVAVHUYKVPAUXLVAVNZVRZVSZU
            YNUXLUYJUYMUXLVPVNZAUXLVTWAZUYNUXNUYIJUYNVBUXMWBZUYNUXPUXNVNZVRZUYA
            UXPUYTUXPEMPQSTUFUCUGUDASEVNUYMUYSASEIWCZAREVUAWDZSRWJUXTCVCZVEUXPV
            JVGJVLWEWFZCVUBWGVUBUIVUDCVUBWHWIUJWKZWLZWMUYSUXPWTVNUYNUXPVBUXMWNW
            AUUCZUYTUXPUYSUXPVAVNZUYNUYSUXPUXPUXMWOZWPZWAZWQUYTUXPVUKWRWSZXAZXB
            ZBVAVHVMVQVNZAVAXCUUAZVHVPVNZVUOXDXEBVAVHUUDUUEXFABVAUYKVBKVUPAXDXF
            VUNAUUBAKWEXGXHVGVNZKXCVNZURVURVUSWEKXIXJKUUFUUGXKZAUYMVBUXLXIXJZVR
            ZVRZUYKXLVEZUXLUYJXLVEZVOVGZKXIAUYMVVDVVFWFVVAUYNVVDUXLXLVEZVVEVOVG
            VVFUYNUXLUYJUYQVUMUUHUYNVVGUXLVVEVOUYNUXLXCVNZWEUXLXIXJVRZVVGUXLWFU
            YMVVIAUXLUUIZWAUXLUUJXKXNXMXOVVCVVFKXIXJZVVEKUXLVJVGZXIXJZVVCVVEUXM
            UUKOVBUULZVEZGXPVGZXLVEZVVLXIVVCUYJVVPXLVVCUYJWEXPVGUYJVVPVVCUYJAUY
            MUYJVPVNVVAVUMXOZUUMVVCUYJVVOWEGXPVVCUYIJOVBUXMAUYMUYSUXPOVEUYIWFZV
            VAUYTUXPWJVNZVVSUYSVVTUYNVUIWAUAUXPUAVCZPVEZSVEZVWAVJVGUYIWJOUAJXQZ
            VWCUYAVWAUXPVJVWDVWBUXTSVWAUXPPXRYDVWDUUNXSUQVWCVWAVJXTYAXKYBVVCUXM
            WJVBUUOVEVVCVVHVVAUXMWJVNVVCVVHWEUXLUUPXJZUYMVVHVWEVRZAVVAUXLUUQUUR
            ZUUSZAUYMVVAUUTZUXLUVAYCUVBUVCAUYMUYSUYIVPVNVVAVULYBUVDVVCGWEAGWEWF
            ZVVBASRVNVWJUJACKEGIJOMPQRSTUAUCUDUEUFUGUHVUFASVUBVNSIYEVUESEIUVEXK
            UQURUSUTUIUVFUVGYFUVHXSUVLYDVVCUXLVBXGXHVGZVNZVUCVDVEZVVNVEZGXPVGZX
            LVEZKVUCVJVGZXIXJZCVWKUVIZVVQVVLXIXJZVVCVVHVVAVWLVWHVWIVBXCVNVWLVVH
            VVAVRYGUVJVBUXLUVKUVMUWBAVWSVVBUTYFVWRVWTCUXLVWKCBXQZVWPVVQVWQVVLXI
            VXAVWOVVPXLVXAVWNVVOGXPVXAVWMUXMVVNVUCUXLVDXRYDXNYDVUCUXLKVJUVNUVOU
            VPUVQYHVVCVVEXCVNVUSVWFVVKVVMYGVVCUYJVVRUVRAVUSVVBVUTYFVWGVVEKUXLUV
            SYIYJYHUVTUWAABVAUYHUYLUYNUXNUYGJUYRUYTUXSUYFUBUYTVBUXRWBZUYTUYDUXS
            VNZVRZUYCUYEUYTUYCVPVNVXCUYTUYAUYBVUGUYTUYBUYTUXPVUKYKZWQZUYTUYBVXE
            WRZWSZYFZVXDUYEVXDUYDVXDUYDVXCUYDWJVNUYTUYDUXRWOWAWPYKZWQZVXDUYEVXJ
            WRZWSXAZXAUYNVUQUYKVPVNUYLVPVNXEVUNVHUYKYLYMABVAUXNUYCUXQNVEZVOVGZJ
            VLZVMBVAUYHUYLXPVGZVMVQABVAVXPVXQUYNUXNUYGUYCVHUXQVKVEZVOVGZVOVGZXP
            VGZJVLUYHUXNVXTJVLZXPVGVXPVXQUYNUXNUYGVXTJUYRVXMUYTUYCVXSVXHUYTVXSU
            YTVHXCVNVXRXCVNVXSXCVNUWCUYTVXRUYTUXQUYNUXOVAVNZVUHUXQVAVNZUYSUYNUY
            MVHWTVNVYCAUYMUWDUWEUXLVHUWFUWGZVUJUXOUXPUWHUWLZYKUWIVHVXRUWJYMUWMZ
            XBUWKUYNUXNVXOVYAJUYTUYCUXSVBUYEVJVGZUBVLZVXSXPVGZVOVGUYCVYIVOVGZVX
            TXPVGVXOVYAUYTUYCVYIVXSVXHUYTUXSVYHUBVXBVXDUYEVPVNUYEWEYEVRVYHVPVNV
            XDUYEVXJYNUYEUWNXKZXAVYGUWOUYTVXNVYJUYCVOUYTVYDVXNVYJWFVYFCUXQVBVWM
            VFVGZVYHUBVLZVHVUCVKVEZVOVGZXPVGVYJVANVUCUXQWFZVYNVYIVYPVXSXPVYQVYM
            UXSVYHUBVYQVWMUXRVBVFVUCUXQVDXRYOUWPVYQVYOVXRVHVOVUCUXQVKXRYOXSUOVY
            NVYPXPXTYAXKYOUYTUYGVYKVXTXPUYTUYGUXSUYCVYHVOVGZUBVLVYKUYTUXSUYFVYR
            UBVXDUYCUYEVXIVXKVXLUWQYPUYTUXSVYHUYCUBVXBVXHVYLYQYRXNYSYPUYNUYLVYB
            UYHXPUYNVHUXLVOVGZUYJVOVGUXNVYSUYIVOVGZJVLUYLVYBUYNUXNUYIVYSJUYRUYN
            VUQUYPVYSVPVNZXEUYQVHUXLYLYMZVULYQUYNVHUXLUYJUYOUYQVUMUWRUYNUXNVYTV
            XTJUYTVYSUYCUYBVJVGZVOVGUYCVYSUYBVJVGZVOVGVYTVXTUYTVYSUYCUYBUYNWUAU
            YSWUBYFVXHVXFVXGUXAUYTUYIWUCVYSVOUYTWUCUYAUYBUYBVOVGZVJVGZUYIUYTUYA
            VPVNUYBVPVNUYBWEYEVRZWUGWUCWUFWFVUGUYTUYBVXEYNZWUHUYAUYBUYBUWSYIUYT
            WUEUXPUYAVJUYTUXPXCVNWEUXPXIXJVRWUEUXPWFUYTUXPVUKYTUXPUWTXKYOUXBYOU
            YTVXSWUDUYCVOUYTVXSVHUXLUYBVJVGZVOVGZWUDUYTVXRWUIVHVOUYTVXRUXOVKVEZ
            UYBVJVGZWUIUYTUXOXCVNWEUXOXIXJVRVUHVXRWULWFUYTUXOUYNVYCUYSVYEYFYTVU
            KUXOUXPUXCYCUYTWUKUXLUYBVJUYTVVIWUKUXLWFUYMVVIAUYSVVJUXDUXLUXEXKXNX
            MYOUYTVUQUYPWUGWUDWUJWFUYTVSUYNUYPUYSUYQYFWUHVHUXLUYBUXFYIYRYOYSYPU
            XGYOYSUXIABCDEFHIJLMNPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUXHUXJUXK
            YJ $.
        $}

        $( Lemma for ~ dchrisum0 .  (Contributed by Mario Carneiro,
           12-May-2016.) $)
        dchrisum0lem3 $p |- ( ph -> ( x e. RR+ |->
          sum_ m e. ( 1 ... ( |_ ` ( x ^ 2 ) ) )
            sum_ d e. ( 1 ... ( |_ ` ( ( x ^ 2 ) / m ) ) )
              ( ( X ` ( L ` m ) ) / ( sqrt ` ( m x. d ) ) ) ) e. O(1) ) $=
          ( vt vc crp c1 cv cfl cfv cfz co c2 cexp cdiv csqrt csu cmul cvv 1red
          caddc wcel wa sumex a1i cn cmpt cseq cli wbr cmin cabs cpnf cico wral
          cle cc0 wrex wex co1 cdif wceq crab ssrab2 eqsstri difss sstri sseldi
          csn wne eldifsni syl eqid dchrmusumlema adantr cdm divsqrsum cc wf cr
          crli wss divsqrsumf ax-resscn fss mp2an cxr rpsup rlimdm mpbii simprl
          clt simprrl simprrr dchrisum0lem2 rexlimdvaa exlimdv mpd fzfid adantl
          csup elfznn nnrpd rpsqrtcld adantrr rprege0d syl2anc rpcnne0d syl3anc
          cz fsumcl sumeq2dv rpred cuz dchrisum0lem1 ad2antrr elfzelz dchrzrhcl
          o1add2 ovexd rpmulcl syl2an rpcnd rpne0d divcld abscld sqrtmul oveq2d
          divdiv1 eqtr4d cin simpr reflcl ltp1d fzdisj cun cn0 flge0nn0 nn0p1nn
          c0 3syl nnuz syl6eleq 2z rpexpcl sylancl recnd mulid1d simprr rpregt0
          wb ad2antrl lemul2 eqbrtrrd sqvald breqtrrd flword2 fzsplit2 eqeltrrd
          mpbid adantlrr fsumsplit eqtrd fveq2d eqle o1le ) ABULUMBUNZUOUPZUQUR
          ZUMUWMUSUTURZHUNZVAURUOUPZUQURZUWQKUPZNUPZUWQVBUPZVAURQUNZVBUPZVAURZQ
          VCZHVCZUWNUMVGURZUWPUOUPZUQURZUXFHVCZVGURZUMUXIUQURZUWSUXAUWQUXCVDURZ
          VBUPZVAURZQVCZHVCZUMVEAVFABULUXGUXKVEUXGVEVHAUWMULVHZVIZUWOUXFHVJVKUX
          KVEVHUXTUXJUXFHVJVKAVGPVLPUNZKUPNUPUYAVAURVMZUMVNZUJUNZVOVPZCUNZUOUPZ
          UYCUPUYDVQURVRUPUKUNZUYFVAURWBVPCUMVSVTURZWAZVIZUKWCVSVTURZWDZUJWEBUL
          UXGVMWFVHZACUJEGUYBJKLNOPUKRSTUAUBUCAMENMEGWOZWGZEMVLUWTUYFUPUWQVAURH
          VCWCWHZCUYPWIUYPUDUYQCUYPWJWKZEUYOWLWMUEWNZANUYPVHNGWPAMUYPNUYRUEWNNE
          GWQWRUYBWSZWTAUYMUYNUJAUYKUYNUKUYLAUYHUYLVHZUYKVIZVIBCDEFUYDCULUMUYGU
          QURUMUXDVAURQVCUSUYFVBUPZVDURVQURVMZXGUPZGHUYHIJVUDUYBKLMNOPQRSALVLVH
          VUBTXAUAUBUCUDANMVHVUBUEXAUFADUYLVHVUBUGXAAVGIUMVNZFVOVPVUBUHXAAUYGVU
          FUPFVQURVRUPDVUCVAURWBVPCUYIWAVUBUIXAVUDWSZAVUDVUEXGVPZVUBAVUDXGXBVHV
          UHCQVUDVUGXCAULVUDULXDVUDXEZAULXFVUDXEXFXDXHVUICQVUDVUGXIXJULXFXDVUDX
          KXLVKULXMXRYGVSWHAXNVKXOXPXAUYTAVUAUYKXQAVUAUYEUYJXSAVUAUYEUYJXTYAYBY
          CYDABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUUAUUEUXTUXGUXKVGUUFUXTUXMUX
          QHUXTUMUXIYEUXTUWQUXMVHZVIZUWSUXPQVUKUMUWRYEVUKUXCUWSVHZVIZUXAUXOVUKU
          XAXDVHZVULVUKUWQEJKLNOUARUBSANEVHUXSVUJUYSUUBVUJUWQYPVHUXTUWQUMUXIUUC
          YFUUDXAZVUMUXOVUMUXNVUKUWQULVHUXCULVHUXNULVHVULVUKUWQVUJUWQVLVHZUXTUW
          QUXIYHYFZYIVULUXCUXCUWRYHZYIUWQUXCUUGUUHYJZUUIVUMUXOVUSUUJUUKYQZYQZAU
          XSUMUWMWBVPZVIVIZUXRVRUPZXFVHZVVDUXLVRUPZWHVVDVVFWBVPAUXSVVEVVBUXTUXR
          VVAUULYKVVCUXRUXLVRVVCUXRUXMUXFHVCZUXLAUXSUXRVVGWHVVBUXTUXMUXQUXFHVUK
          UWSUXPUXEQVUMUXPUXAUXBUXDVDURZVAURZUXEVUMUXOVVHUXAVAVUMUWQXFVHWCUWQWB
          VPVIUXCXFVHWCUXCWBVPVIUXOVVHWHVUMUWQVUMUWQVUKVUPVULVUQXAYIZYLVUMUXCVU
          MUXCVULUXCVLVHVUKVURYFYIZYLUWQUXCUUMYMUUNVUMVUNUXBXDVHUXBWCWPVIUXDXDV
          HUXDWCWPVIUXEVVIWHVUOVUMUXBVUMUWQVVJYJYNVUMUXDVUMUXCVVKYJYNUXAUXBUXDU
          UOYOUUPYRZYRYKVVCUWOUXJUXFUXMHAUXSUWOUXJUUQUVFWHZVVBUXTUWNUXHXRVPVVMU
          XTUWNUXTUWMXFVHZUWNXFVHUXTUWMAUXSUURZYSZUWMUUSWRUUTUMUWNUXHUXIUVAWRYK
          VVCUXHUMYTUPZVHZUXIUWNYTUPVHZUXMUWOUXJUVBWHAUXSVVRVVBUXTUXHVLVVQUXTVV
          NWCUWMWBVPVIUWNUVCVHUXHVLVHUXTUWMVVOYLUWMUVDUWNUVEUVGUVHUVIYKVVCVVNUW
          PXFVHUWMUWPWBVPVVSAUXSVVNVVBVVPYKZVVCUWPAUXSUWPULVHZVVBUXTUXSUSYPVHVW
          AVVOUVJUWMUSUVKUVLYKYSVVCUWMUWMUWMVDURZUWPWBVVCUWMUMVDURZUWMVWBWBVVCU
          WMVVCUWMVVTUVMZUVNVVCVVBVWCVWBWBVPZAUXSVVBUVOVVCUMXFVHVVNVVNWCUWMXRVP
          VIZVVBVWEUVQVVCVFVVTUXSVWFAVVBUWMUVPUVRUMUWMUWMUVSYOUWFUVTVVCUWMVWDUW
          AUWBUWMUWPUWCYOUWNUMUXIUWDYMVVCUMUXIYEAUXSVUJUXFXDVHVVBVUKUXQUXFXDVVL
          VUTUWEUWGUWHUWIUWJVVDVVFUWKYMUWL $.
      $}

      $( The sum ` sum_ n e. NN , X ( n ) / n ` is nonzero for all
         non-principal Dirichlet characters (i.e. the assumption ` X e. W ` is
         contradictory).  This is the key result that allows us to eliminate
         the conditionals from ~ dchrmusum2 and ~ dchrvmasumif .  Lemma 9.4.4
         of [Shapiro], p. 382.  (Contributed by Mario Carneiro,
         12-May-2016.) $)
      dchrisum0 $p |- -. ph $=
        ( co vx vk vb vi vz vd vc vt va cn cdvds wbr crab cfv csu cmpt eqid csn
        cv cdif cdiv cc0 wceq ssrab2 eqsstri difss sstri sseldi dchrisum0re crp
        c1 cfl cfz csqrt c2 cexp cmul ccom co1 wcel wa fveq2 oveq2d rpre adantl
        cr cc ad3antrrr cz elrabi dchrzrhcl elfznn nnrpd rpsqrtcld rpcnd adantr
        nnzd wne rpne0d divcld anasss dvdsflsumcom dchrisum0fval syl oveq1d cfn
        wss fzfid dvdsssfz1 ssfi syl2anc fsumdivc sumeq2dv cle rprege0 resqrtth
        eqtrd fveq2d sumeq1d sumeq12dv 3eqtr4d mpteq2dva rpsqrtcl fmptco eqtr4d
        eqidd oveq1 cdm wf caddc cseq cli cmin cpnf cico wral wrex 0red simpr
        wi cabs wex dchrisum0lema simprl simprrl simprrr rexlimdvaa exlimdv mpd
        dchrisum0lem3 o1f sumex dmmpti feq2i sylib rpssre resqcl simplr simplrr
        a1i ad2antrl breqtrrd rpred ad2ant2r sqrtge0 le2sqd mpbird lecasei expr
        letrd ralrimiva imbi1d ralbidv rspcev o1compt eqeltrd dchrisum0fno1
        breq1 ) AUABCDUBUCUJUDUSZUCUSUKULUDUJUMBUSZGUNJUNBUOUPZFGHJKUDUCLMNOPQU
        WAUQZAICJICDURZUTZCIUJEUSZGUNZUVTUNUWEVATEUOVBVCZBUWDUMUWDRUWGBUWDVDVEC
        UWCVFVGSVHZABCDEFGHIJKLMNOPQRSVIAUAVJVKUAUSZVLUNZVMTZUBUSZUWAUNZUWLVNUN
        ZVATZUBUOZUPZUEVJVKUEUSZVOVPTZVLUNZVMTZVKUWSUWEVATZVLUNZVMTZUWFJUNZUWEU
        FUSVQTZVNUNZVATZUFUOZEUOZUPZUAVJUWIVNUNZUPZVRZVSAUWQUAVJVKUXLVOVPTZVLUN
        ZVMTZVKUXOUWEVATZVLUNZVMTZUXHUFUOZEUOZUPUXNAUAVJUWPUYBAUWIVJVTZWAZUWKUV
        SUWLUKULZUDUJUMZUXEUWNVATZEUOZUBUOUWKVKUWIUWEVATZVLUNZVMTZUXHUFUOZEUOUW
        PUYBUYDUDUWIUYGUXHUFUBEUWLUXFVCUWNUXGUXEVAUWLUXFVNWBWCUYCUWIWFVTZAUWIWD
        WEUYDUWLUWKVTZUWEUYFVTZUYGWGVTUYDUYNWAZUYOWAZUXEUWNUYQUWECFGHJKOLPMAJCV
        TUYCUYNUYOUWHWHUYOUWEWIVTUYPUYOUWEUYEUDUWEUJWJWQWEWKZUYPUWNWGVTUYOUYPUW
        NUYPUWLUYPUWLUYNUWLUJVTZUYDUWLUWJWLWEZWMWNZWOZWPUYPUWNVBWRUYOUYPUWNVUAW
        SZWPWTXAXBUYDUWKUWOUYHUBUYPUWOUYFUXEEUOZUWNVATUYHUYPUWMVUDUWNVAUYPUYSUW
        MVUDVCUYTABEUWLCDUWAFGHJKUDUCLMNOPQUWBXCXDXEUYPUYFUXEUWNEUYPVKUWLVMTZXF
        VTUYFVUEXGZUYFXFVTUYPVKUWLXHUYPUYSVUFUYTUWLUDXIXDVUEUYFXJXKVUBUYRVUCXLX
        QXMUYDUXQUWKUYAUYLEUYDUXPUWJVKVMUYDUXOUWIVLUYDUYMVBUWIXNULWAZUXOUWIVCZU
        YCVUGAUWIXOZWEUWIXPZXDZXRWCUYDUYAUYLVCUWEUXQVTUYDUXTUYKUXHUFUYDUXSUYJVK
        VMUYDUXRUYIVLUYDUXOUWIUWEVAVUKXEXRWCXSWPXTYAYBAUAUEVJVJUXLUXJUYBUXMUXKU
        YCUXLVJVTAUWIYCWEZAUXMYFAUXKYFUWRUXLVCZUXAUXQUXIUYAEVUMUWTUXPVKVMVUMUWS
        UXOVLUWRUXLVOVPYGZXRWCVUMUXIUYAVCUWEUXAVTVUMUXDUXTUXHUFVUMUXCUXSVKVMVUM
        UXBUXRVLVUMUWSUXOUWEVAVUNXEXRWCXSWPXTYDYEAUGUAVJVJUXLUHUXKAUXKYHZWGUXKY
        IZVJWGUXKYIAUXKVSVTZVUPAYJUIUJUIUSZGUNJUNVURVNUNVATUPZVKYKZUHUSZYLULZUV
        TVLUNVUTUNVVAYMTUUAUNUGUSZUVTVNUNVATXNULBVKYNYOTYPZWAZUGVBYNYOTZYQZUHUU
        BVUQABUHCDEVUSFGHIJKUIUGLMNOPQRSVUSUQZUUCAVVGVUQUHAVVEVUQUGVVFAVVCVVFVT
        ZVVEWAZWAUEBVVCCVVADEVUSFGHIJKUIUFLMAHUJVTVVJNWPOPQRAJIVTVVJSWPVVHAVVIV
        VEUUDAVVIVVBVVDUUEAVVIVVBVVDUUFUUJUUGUUHUUIZUXKUUKXDVUOVJWGUXKUEVJUXJUX
        KUXAUXIEUULUXKUQUUMUUNUUOVVKVULVJWFXGAUUPUUTAVVAWFVTZWAZVVAVOVPTZWFVTZV
        VNUWIXNULZVVAUXLXNULZYTZUAVJYPZVVCUWIXNULZVVQYTZUAVJYPZUGWFYQVVLVVOAVVA
        UUQWEVVMVVRUAVJVVMUYCVVPVVQVVMUYCVVPWAZWAZVVQVBVVAVWDYRAVVLVWCUURZVWDVB
        VVAXNULZWAZVVQVVNUXOXNULVWGVVNUWIUXOXNVVMUYCVVPVWFUUSVWGVUGVUHVWDVUGVWF
        UYCVUGVVMVVPVUIUVAZWPVUJXDUVBVWGVVAUXLVWDVVLVWFVWEWPVWDUXLWFVTZVWFAUYCV
        WIVVLVVPUYDUXLVULUVCUVDZWPVWDVWFYSVWDVBUXLXNULZVWFVWDVUGVWKVWHUWIUVEXDZ
        WPUVFUVGVWDVVAVBXNULZWAZVVAVBUXLVWDVVLVWMVWEWPVWNYRVWDVWIVWMVWJWPVWDVWM
        YSVWDVWKVWMVWLWPUVJUVHUVIUVKVWBVVSUGVVNWFVVCVVNVCZVWAVVRUAVJVWOVVTVVPVV
        QVVCVVNUWIXNUVRUVLUVMUVNXKUVOUVPUVQ $.
    $}

    ${
      dchrmusum.g $e |- G = ( DChr ` N ) $.
      dchrmusum.d $e |- D = ( Base ` G ) $.
      dchrmusum.1 $e |- .1. = ( 0g ` G ) $.
      dchrmusum.b $e |- ( ph -> X e. D ) $.
      dchrmusum.n1 $e |- ( ph -> X =/= .1. ) $.
      ${
        $d m F $.
        dchrmusum.f $e |- F = ( a e. NN |->
          ( ( X ` ( L ` a ) ) / a ) ) $.
        dchrmusum.c $e |- ( ph -> C e. ( 0 [,) +oo ) ) $.
        dchrmusum.t $e |- ( ph -> seq 1 ( + , F ) ~~> T ) $.
        dchrmusum.2 $e |- ( ph -> A. y e. ( 1 [,) +oo )
          ( abs ` ( ( seq 1 ( + , F ) ` ( |_ ` y ) ) - T ) ) <_ ( C / y ) ) $.
        $( The sum ` sum_ n e. NN , X ( n ) / n ` is nonzero for all
           non-principal Dirichlet characters (i.e. the assumption ` X e. W `
           is contradictory).  This is the key result that allows us to
           eliminate the conditionals from ~ dchrmusum2 and ~ dchrvmasumif .
           Lemma 9.4.4 of [Shapiro], p. 382.  (Contributed by Mario Carneiro,
           12-May-2016.) $)
        dchrisumn0 $p |- ( ph -> T =/= 0 ) $=
          ( vm cc0 wceq wa cn cv cfv cdiv co csu csn cdif crab wcel adantr eqid
          dchrvmaeq0 biimpar dchrisum0 imnani neqned ) AEUGAEUGUHZAVGUIBDFUFHIJ
          UJUFUKZIULBUKULVHUMUNUFUOUGUHBDFUPUQURZKLNOAJUJUSVGPUTQRSVIVAZAKVIUSV
          GABCDEFUFGHIJVIKLMNOPQRSTUAUBUCUDUEVJVBVCVDVEVF $.

        $( The sum of the M&ouml;bius function multiplied by a non-principal
           Dirichlet character, divided by ` n ` , is bounded.  Equation 9.4.16
           of [Shapiro], p. 379.  (Contributed by Mario Carneiro,
           12-May-2016.) $)
        dchrmusumlem $p |- ( ph -> ( x e. RR+ |->
          sum_ n e. ( 1 ... ( |_ ` x ) )
            ( ( X ` ( L ` n ) ) x. ( ( mmu ` n ) / n ) ) ) e. O(1) ) $=
          ( crp c1 cv cfl cfv cfz co cmu cdiv cmul csu cmpt wcel fzfid ad2antrr
          co1 wa cz elfzelz adantl dchrzrhcl cn elfznn mucl zred nndivred recnd
          syl mulcld fsumcl caddc cseq cli wbr climcl adantr cc0 wne dchrisumn0
          cc divrecd divcan4d eqtr3d mpteq2dva reccld dchrmusum2 cr wss o1const
          rpssre sylancr o1mul2 eqeltrrd ) ABUHUIBUJZUKULZUMUNZHUJZKULMULZXDUOU
          LZXDUPUNZUQUNZHURZFUQUNZUIFUPUNZUQUNZUSBUHXIUSVCABUHXLXIAXAUHUTZVDZXJ
          FUPUNXLXIXNXJFXNXIFXNXCXHHXNUIXBVAXNXDXCUTZVDZXEXGXPXDEJKLMNSPTQAMEUT
          XMXOUBVBXOXDVEUTXNXDUIXBVFVGVHXPXGXPXFXDXPXFXPXDVIUTZXFVEUTXOXQXNXDXB
          VJVGZXDVKVOVLXRVMVNVPVQZAFWGUTZXMAVRIUIVSZFVTWAXTUFFYAWBVOZWCZVPZYCAF
          WDWEXMACDEFGIJKLMNOPQRSTUAUBUCUDUEUFUGWFZWCZWHXNXIFXSYCYFWIWJWKABUHXJ
          XKWGYDAXKWGUTZXMAFYBYEWLZWCABCDEFGIJKLMNOHPQRSTUAUBUCUDUEUFUGWMAUHWNW
          OYGBUHXKUSVCUTWQYHBUHXKWPWRWSWT $.

        $( The sum of the M&ouml;bius function multiplied by a non-principal
           Dirichlet character, divided by ` n ` , is bounded.  Equation 9.4.16
           of [Shapiro], p. 379.  (Contributed by Mario Carneiro,
           12-May-2016.) $)
        dchrvmasumlem $p |- ( ph -> ( x e. RR+ |->
          sum_ n e. ( 1 ... ( |_ ` x ) )
            ( ( X ` ( L ` n ) ) x. ( ( Lam ` n ) / n ) ) ) e. O(1) ) $=
          ( crp c1 cv cfl cfv cfz co cvma cdiv cmul csu cc0 wceq clog cif caddc
          cmpt co1 wa wne dchrisumn0 adantr ifnefalse syl oveq2d fzfid ad2antrr
          cz elfzelz adantl dchrzrhcl cn cr elfznn vmacl nndivre mpancom mulcld
          wcel recnd fsumcl addid1d eqtrd mpteq2dva dchrvmasumif eqeltrrd ) ABU
          HUIBUJZUKULZUMUNZHUJZKULMULZWQUOULZWQUPUNZUQUNZHURZFUSUTWNVAULZUSVBZV
          CUNZVDBUHXBVDVEABUHXEXBAWNUHWFZVFZXEXBUSVCUNXBXGXDUSXBVCXGFUSVGZXDUSU
          TAXHXFACDEFGIJKLMNOPQRSTUAUBUCUDUEUFUGVHVIFUSXCUSVJVKVLXGXBXGWPXAHXGU
          IWOVMXGWQWPWFZVFZWRWTXJWQEJKLMNSPTQAMEWFXFXIUBVNXIWQVOWFXGWQUIWOVPVQV
          RXJWTXJWQVSWFZWTVTWFZXIXKXGWQWOWAVQWSVTWFXKXLWQWBWSWQWCWDVKWGWEWHWIWJ
          WKABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGWLWM $.
      $}

      $( The sum of the M&ouml;bius function multiplied by a non-principal
         Dirichlet character, divided by ` n ` , is bounded.  Equation 9.4.16
         of [Shapiro], p. 379.  (Contributed by Mario Carneiro,
         12-May-2016.) $)
      dchrmusum $p |- ( ph -> ( x e. RR+ |-> sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( X ` ( L ` n ) ) x. ( ( mmu ` n ) / n ) ) ) e. O(1) ) $=
        ( cfv co va vt vy vc caddc cn cv cdiv cmpt c1 cseq cli wbr cfl cmin cle
        cabs cpnf cico wral cc0 wrex wex crp cfz cmu cmul csu co1 dchrmusumlema
        wa wcel eqid adantr wne simprrl simprrr dchrmusumlem rexlimdvaa exlimdv
        simprl mpd ) AUEUAUFUAUGZGSISWCUHTUIZUJUKZUBUGZULUMZUCUGZUNSWESWFUOTUQS
        UDUGZWHUHTUPUMUCUJURUSTUTZVKZUDVAURUSTZVBZUBVCBVDUJBUGUNSVETEUGZGSISWNV
        FSWNUHTVGTEVHUIVIVLZAUCUBCDWDFGHIJUAUDKLMNOPQRWDVMZVJAWMWOUBAWKWOUDWLAW
        IWLVLZWKVKZVKBUCWICWFDEWDFGHIJUAKLAHUFVLWRMVNNOPAICVLWRQVNAIDVOWRRVNWPA
        WQWKWAAWQWGWJVPAWQWGWJVQVRVSVTWB $.

      $( The sum of the von Mangoldt function multiplied by a non-principal
         Dirichlet character, divided by ` n ` , is bounded.  Equation 9.4.8 of
         [Shapiro], p. 376.  (Contributed by Mario Carneiro, 12-May-2016.) $)
      dchrvmasum $p |- ( ph -> ( x e. RR+ |-> sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( X ` ( L ` n ) ) x. ( ( Lam ` n ) / n ) ) ) e. O(1) ) $=
        ( cfv co va vt vy vc caddc cn cv cdiv cmpt c1 cseq cli wbr cfl cmin cle
        cabs cpnf cico wral wa cc0 wrex wex crp cfz cvma cmul csu co1 wcel eqid
        dchrmusumlema adantr wne simprl simprrl simprrr rexlimdvaa exlimdv mpd
        dchrvmasumlem ) AUEUAUFUAUGZGSISWCUHTUIZUJUKZUBUGZULUMZUCUGZUNSWESWFUOT
        UQSUDUGZWHUHTUPUMUCUJURUSTUTZVAZUDVBURUSTZVCZUBVDBVEUJBUGUNSVFTEUGZGSIS
        WNVGSWNUHTVHTEVIUIVJVKZAUCUBCDWDFGHIJUAUDKLMNOPQRWDVLZVMAWMWOUBAWKWOUDW
        LAWIWLVKZWKVAZVABUCWICWFDEWDFGHIJUAKLAHUFVKWRMVNNOPAICVKWRQVNAIDVOWRRVN
        WPAWQWKVPAWQWGWJVQAWQWGWJVRWBVSVTWA $.
    $}

    $d n A $.
    rpvmasum.u $e |- U = ( Unit ` Z ) $.
    rpvmasum.b $e |- ( ph -> A e. U ) $.
    rpvmasum.t $e |- T = ( `' L " { A } ) $.
    $( The sum of the von Mangoldt function over those integers ` n == A ` (mod
       ` N ` ) is asymptotic to ` log x / phi ( x ) + O(1) ` .  Equation 9.4.3
       of [Shapiro], p. 375.  (Contributed by Mario Carneiro, 2-May-2016.)
       (Proof shortened by Mario Carneiro, 26-May-2016.) $)
    rpvmasum $p |- ( ph -> ( x e. RR+ |-> ( ( ( phi ` N ) x.
  sum_ n e. ( ( 1 ... ( |_ ` x ) ) i^i T ) ( ( Lam ` n ) / n ) ) -
        ( log ` x ) ) ) e. O(1) ) $=
      ( cfv c1 co cc0 cmin vm vy vf crp cphi cv cfl cfz cin cvma cdiv cmul clog
      csu cn wceq cdchr cbs c0g csn cdif crab chash cmpt wcel wa c0 adantr eqid
      co1 wb fveq2 fveq2d id oveq12d cbvsumv eqeq1i a1i rabbiia simpr dchrisum0
      imnani eq0rdv hash0 syl6eq oveq2d 1m0e1 cr relogcl adantl recnd mpteq2dva
      mulid1d eqtrd cur pm2.21i rpvmasum2 eqeltrrd ) ABUDHUEPQBUFZUGPUHRDUIFUFZ
      UJPWTUKRFUNULRZWSUMPZQUOUAUFZGPZUBUFZPZXCUKRZUAUNZSUPZUBHUQPZURPZXJUSPZUT
      VAZVBZVCPZTRZULRZTRZVDBUDXAXBTRZVDVJABUDXRXSAWSUDVEZVFZXQXBXATYAXQXBQULRX
      BYAXPQXBULAXPQUPXTAXPQSTRQAXOSQTAXOVGVCPSAXNVGVCAUCXNAUCUFZXNVEZAYCVFZUBX
      KXLFXJGHXNYBIJKAHUOVEYCLVHXJVIZXKVIZXLVIZXIUOWTGPZXEPZWTUKRZFUNZSUPZUBXMX
      IYLVKXEXMVEXHYKSUOXGYJUAFXCWTUPZXFYIXCWTUKYMXDYHXEXCWTGVLVMYMVNVOVPVQVRVS
      AYCVTWAZWBWCVMWDWEWFWGWEVHWFYAXBYAXBXTXBWHVEAWSWIWJWKWMWNWFWLABUBCXKDEXLU
      CUAFXJGHXNIJKLYEYFYGXNVIMNOYDCIWOPUPYNWPWQWR $.

    $( The sum of ` log p / p ` over the primes ` p == A ` (mod ` N ` ) is
       asymptotic to ` log x / phi ( x ) + O(1) ` .  Equation 9.4.3 of
       [Shapiro], p. 375.  (Contributed by Mario Carneiro, 16-Apr-2016.) $)
    rplogsum $p |- ( ph -> ( x e. RR+ |-> ( ( ( phi ` N ) x.
 sum_ p e. ( ( 1 ... ( |_ ` x ) ) i^i ( Prime i^i T ) ) ( ( log ` p ) / p ) ) -
        ( log ` x ) ) ) e. O(1) ) $=
      ( crp co wcel syl cc0 cphi cfv c1 cv cfl cfz cin cvma cdiv cmul clog cmin
      csu cmpt co1 cprime rpvmasum wa cn phicld adantr nncnd cfn wss fzfid ssfi
      inss1 sylancl cr simpr sseldi elfznn vmacl nndivre mpancom fsumrecl recnd
      mulcld relogcl adantl subcld nnrp relogcld rerpdivcld cif subdid wceq wne
      cc ifcl rpcnne0d divsubdir syl3anc sumeq2dv fsumsub inss2 sslin mp1i cdif
      wn eldif incom ineq2i inass eqtr4i elin2 simplbi2 con3dimp sylbi iffalsed
      oveq1d eldifi sylan2 div0 eqtrd fsumss sstri iftrued eqtr3d oveq2d 3eqtrd
      0re nnncan2d 3eqtr4d mpteq2dva resubcld rpssre o1const sylancr c2 a1i 2re
      1red cabs cle wbr breq1 vmaprm eqcomd eqle syl2anc vmage0 ifbothda mpbird
      subge0d divge0d fsumge0 absidd fsumless sselda flcld rplogsumlem2 eqbrtrd
      cz letrd adantrr elo1d o1mul2 eqeltrrd o1dif mpbid ) ABPGUAUBZUCBUDZUEUBZ
      UFQZDUGZIUDZUHUBZUVGUIQZIUMZUJQZUVCUKUBZULQZUNUORBPUVBUVEUPDUGZUGZUVGUKUB
      ZUVGUIQZIUMZUJQZUVLULQZUNUORABCDEIFGHJKLMNOUQABPUVMUVTAUVCPRZURZUVKUVLUWB
      UVBUVJUWBUVBAUVBUSRUWAAGLUTZVAVBZUWBUVJUWBUVFUVIIUWBUVEVCRZUVFUVEVDZUVFVC
      RUWBUCUVDVEZUVEDVGZUVEUVFVFVHZUWBUVGUVFRZURZUVGUSRZUVIVIRZUWKUVGUVERZUWLU
      WKUVFUVEUVGUWHUWBUWJVJVKUVGUVDVLZSZUVHVIRUWLUWMUVGVMZUVHUVGVNVOZSVPVQZVRZ
      UWBUVLUWAUVLVIRAUVCVSVTVQZWAUWBUVSUVLUWBUVBUVRUWDUWBUVRUWBUVOUVQIUWBUWEUV
      OUVEVDUVOVCRUWGUVEUVNVGZUVEUVOVFVHUWBUVGUVORZURZUWLUVQVIRUXDUWNUWLUXDUVOU
      VEUVGUXBUWBUXCVJZVKUWOSZUWLUVPUVGUWLUVGUVGWBZWCZUXGWDSVPVQZVRZUXAWAABPUVB
      UVFUVHUVGUPRZUVPTWEZULQZUVGUIQZIUMZUJQZUNBPUVMUVTULQZUNUOABPUXPUXQUWBUVBU
      VJUVRULQZUJQUVKUVSULQUXPUXQUWBUVBUVJUVRUWDUWSUXIWFUWBUXOUXRUVBUJUWBUXOUVF
      UVIUXLUVGUIQZULQZIUMUVJUVFUXSIUMZULQUXRUWBUVFUXNUXTIUWKUWLUXNUXTWGZUWPUWL
      UVHWIRUXLWIRUVGWIRUVGTWHURZUYBUWLUVHUWQVQUWLUXLUWLUVPVIRZTVIRUXLVIRUXHYBU
      XKUVPTVIWJVHZVQUWLUVGUXGWKZUVHUXLUVGWLWMSWNUWBUVFUVIUXSIUWIUWKUWLUVIWIRUW
      PUWLUVIUWRVQSUWKUWLUXSWIRZUWPUWLUXSUWLUXLUVGUYEUXGWDVQZSWOUWBUYAUVRUVJULU
      WBUVOUXSIUMUYAUVRUWBUVOUVFUXSIUVNDVDUVOUVFVDUWBUPDWPUVNDUVEWQWRUXDUWLUYGU
      XFUYHSUWBUVGUVFUVOWSRZURZUXSTUVGUIQZTUYJUXLTUVGUIUYJUXKUVPTUYIUXKWTZUWBUY
      IUWJUXCWTURUYLUVGUVFUVOXAUWJUXKUXCUXCUWJUXKUVGUVFUPUVOUVOUVEDUPUGZUGUVFUP
      UGUVNUYMUVEUPDXBXCUVEDUPXDXEXFXGXHXIVTXJXKUYJUWLUYKTWGZUYIUWBUWJUWLUVGUVF
      UVOXLUWPXMUWLUYCUYNUYFUVGXNSSXOUWIXPUWBUVOUXSUVQIUXDUXLUVPUVGUIUXDUXKUVPT
      UXDUVOUPUVGUVOUVNUPUVEUVNWPUPDVGXQUXEVKXRXKWNXSXTYAXTUWBUVKUVSUVLUWTUXJUX
      AYCYDYEABPUVBUXOWIUWDUWBUXOUWBUVFUXNIUWIUWKUWLUXNVIRZUWPUWLUXMUVGUWLUVHUX
      LUWQUYEYFZUXGWDZSZVPZVQZAPVIVDZUVBWIRBPUVBUNUORYGAUVBUWCVBBPUVBYHYIABPUXO
      UCYJVUAAYGYKZUYTAYMYJVIRZAYLYKAUWAUXOYNUBZYJYOYPUCUVCYOYPUWBVUDUXOYJYOUWB
      UXOUYSUWBUVFUXNIUWIUYRUWKUWLTUXNYOYPZUWPUWLUXMUVGUYPUXGUWLTUXMYOYPUXLUVHY
      OYPZUXKUVPUVHYOYPZTUVHYOYPZVUFUWLUVPTUVPUXLUVHYOYQTUXLUVHYOYQUWLUXKURZUYD
      UVPUVHWGVUGUWLUYDUXKUXHVAVUIUVHUVPUXKUVHUVPWGUWLUVGYRVTYSUVPUVHYTUUAUWLVU
      HUYLUVGUUBVAUUCUWLUVHUXLUWQUYEUUEUUDUUFZSUUGUUHUWBUXOUVEUXNIUMZYJUYSUWBUV
      EUXNIUWGUWBUWNURZUWLUYOUWNUWLUWBUWOVTZUYQSZVPVUCUWBYLYKUWBUVEUXNUVFIUWGVU
      NVULUWLVUEVUMVUJSUWFUWBUWHYKUUIUWBUVDUUNRVUKYJYOYPUWBUVCAPVIUVCVUBUUJUUKU
      VDIUULSUUOUUMUUPUUQUURUUSUUTUVA $.

    $( Dirichlet's theorem: there are infinitely many primes in any arithmetic
       progression coprime to ` N ` .  Theorem 9.4.1 of [Shapiro], p. 375.
       (Contributed by Mario Carneiro, 30-Apr-2016.)  (Proof shortened by Mario
       Carneiro, 26-May-2016.) $)
    dirith2 $p |- ( ph -> ( Prime i^i T ) ~~ NN ) $=
      ( vx vn cn wbr wcel crp c1 vp cprime cin cdom csdm cen cvv wss nnex inss1
      wn prmnn ssriv sstri ssdomg mp2 a1i cfn clog cfv cmpt co1 logno1 cphi cfl
      cv wa cfz co cdiv csu cmul cr adantr nnred simpr inss2 ssfi sylancl sseli
      phicld sseldi nnrpd relogcl syl nndivred sylan2 fsumrecl cc recnd o1const
      rpssre sylancr clo1 1red cle cc0 log1 nnge1d 1rp logleb syl5eqbrr divge0d
      wb fsumless ello1d 0red fsumge0 o1lo12 mpbird o1mul2 remulcld adantl cmin
      mpbid rplogsum o1dif ex mtoi com nnenom sdomentr mpan2 isfinite2 sylanbrc
      nsyl bren2 ) AUBCUCZPUDQZYHPUEQZUKYHPUFQYIAPUGRYHPUHYIUIYHUBPUBCUJUAUBPUA
      VFULUMUNZYHPUGUOUPUQAYHURRZYJAYLNSNVFZUSUTZVAVBRZNVCAYLYOAYLVGZNSFVDUTZTY
      MVEUTVHVIZYHUCZOVFZUSUTZYTVJVIZOVKZVLVIZVAVBRYOYPNSYQUUCVMYPYQVMRYMSRZYPY
      QYPFAFPRYLJVNWAVOZVNYPUUCVMRUUEYPYSUUBOYPYLYSYHUHZYSURRAYLVPZYRYHVQZYHYSV
      RVSZYTYSRZYPYTYHRZUUBVMRYSYHYTUUIVTZYPUULVGZUUAYTUUNYTSRZUUAVMRUUNYTUUNYH
      PYTYKYPUULVPWBZWCZYTWDWEZUUPWFZWGZWHZVNZYPSVMUHZYQWIRNSYQVAVBRWLYPYQUUFWJ
      NSYQWKWMYPNSUUCVAZVBRUVDWNRYPNSUUCTYHUUBOVKZUVCYPWLUQUVBYPWOYPYHUUBOUUHUU
      SWHYPUUCUVEWPQUUETYMWPQVGYPYHUUBYSOUUHUUSUUNUUAYTUURUUQUUNWQTUSUTZUUAWPWR
      UUNTYTWPQZUVFUUAWPQZUUNYTUUPWSUUNTSRUUOUVGUVHXDWTUUQTYTXAWMXOXBXCZUUGYPUU
      IUQXEVNXFYPNSUUCWQUVBYPXGYPWQUUCWPQUUEYPYSUUBOUUJUUTUUKYPUULWQUUBWPQUUMUV
      IWGXHVNXIXJXKYPNSUUDYNYPUUDWIRUUEYPUUDYPYQUUCUUFUVAXLWJVNYPUUEVGYNUUEYNVM
      RYPYMWDXMWJANSUUDYNXNVIVAVBRYLANBCDEFGOHIJKLMXPVNXQXOXRXSYJYHXTUEQZYLYJPX
      TUFQUVJYAYHPXTYBYCYHYDWEYFYHPYGYE $.
  $}

  ${
    $d p A $.  $d p N $.
    $( Dirichlet's theorem: there are infinitely many primes in any arithmetic
       progression coprime to ` N ` .  Theorem 9.4.1 of [Shapiro], p. 375.  See
       ~ http://metamath-blog.blogspot.com/2016/05/dirichlets-theorem.html for
       an informal exposition.  This is Metamath 100 proof #48.  (Contributed
       by Mario Carneiro, 12-May-2016.) $)
    dirith $p |- ( ( N e. NN /\ A e. ZZ /\ ( A gcd N ) = 1 ) ->
      { p e. Prime | N || ( p - A ) } ~~ NN ) $=
      ( cn wcel cz cgcd co c1 wceq w3a cprime czn cfv czrh ccnv wb eqid syl2anc
      adantr csn cima cin cv cmin cdvds wbr cen wa wfn cn0 cbs wfo simp1 nnnn0d
      crab znzrhfo fofn 3syl prmz adantl fniniseg baibd simp2 syl3anc rabbi2dva
      zndvds bitrd cui simp3 znunit mpbird dirith2 eqbrtrrd ) BDEZAFEZABGHIJZKZ
      LBMNZONZPAVTNZUAUBZUCBCUDZAUEHUFUGZCLUPDUHVRWDCLWBVRWCLEZUIZWCWBEZWCVTNWA
      JZWDWFVTFUJZWCFEZWGWHQWFBUKEZFVSULNZVTUMWIVRWKWEVRBVOVPVQUNZUOZTZWLVTBVSV
      SRZWLRVTRZUQFWLVTURUSWEWJVRWCUTVAZWIWGWJWHFWAWCVTVBVCSWFWKWJVPWHWDQWOWRVR
      VPWEVOVPVQVDZTWCAVTBVSWPWQVGVEVHVFVRWAWBVSVINZVTBVSWPWQWMWTRZVRWAWTEZVQVO
      VPVQVJVRWKVPXBVQQWNWSAWTVTBVSWPXAWQVKSVLWBRVMVN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The Prime Number Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d k m n x y $.
    $( Asymptotic formula for ` sum_ n <_ x , mmu ( n ) / n = O(1) ` .
       Equation 10.2.1 of [Shapiro], p. 405.  (Contributed by Mario Carneiro,
       14-May-2016.) $)
    mudivsum $p |- ( x e. RR+ |-> sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( mmu ` n ) / n ) ) e. O(1) $=
      ( crp c1 cfv co cdiv csu wcel wtru cmul caddc cc wa syl cle wbr cabs wceq
      cn vk vy vm cv cfl cfz cmu cmpt co1 cmin cvv 1red cof cr rpssre ssexi a1i
      reex fzfid rpre elfznn nndivre syl2an reflcl subcld cz adantl mucl mulcld
      recnd zcnd fsumcl rpne0 divcld ovexd eqidd offval2 wss adantr cc0 absdivd
      rpcn wne rprege0 absid oveq2d eqtrd abscld adantlr fsumrecl fsumabs ssriv
      sselda absmuld absge0d simpl nnrpd rpdivcl sseldi flle abssubge0d fracle1
      eqbrtrd mule1 lemul12ad 1t1e1 syl6breq fsumle chash cfn fsumconst syl2anc
      1cnd cn0 flge1nn sylan nnnn0d hashfz1 oveq1d mulid1d 3eqtrd breqtrd letrd
      breqtrrd ledivmuld mpbird elo1d ax-1cn divrcnv ax-mp rlimo1 o1add rpcnne0
      crli mp1i w3a eqtr3d syl3anc 3eqtr3d sumeq2dv eqeltrrd nndivred fsummulc2
      zred fsumadd npcand adddird div23 divass cdvds ssrab2 simprr dvdsflsumcom
      crab 3impb 2sumeq2dv cuz nnuz syl6eleq eluzfz1 musumsum flge0nn0 3eqtr3rd
      4syl divcan3d divdir fveq2d eqle o1le trud ) ACDAUDZUEEZUFFZBUDZUGEZUVNGF
      ZBHZUHUIIJACUVMUVKUVNGFZUVRUEEZUJFZUVOKFZBHZUVKGFZDUVKGFZLFZUVQDUKJULZJAC
      UWCUHZACUWDUHZLUMFZACUWEUHUIJACUWCUWDLUWGUWHUKMUKCUKIJCUNURUOUPUQUVKCIZUW
      CMIJUWJUWBUVKUWJUVMUWABUWJDUVLUSZUWJUVNUVMIZNZUVTUVOUWMUVRUVSUWMUVRUWJUVK
      UNIZUVNTIZUVRUNIZUWLUVKUTZUVNUVLVAZUVKUVNVBVCZVJZUWMUVSUWMUWPUVSUNIZUWSUV
      RVDZOVJZVEZUWMUVOUWMUWOUVOVFIZUWLUWOUWJUWRVGZUVNVHZOZVKZVIZVLZUVKWBZUVKVM
      ZVNVGZJUWJNZDUVKGVOJUWGVPJUWHVPVQJUWGUIIUWHUIIZUWIUIIJACUWCDDCUNVRJUOUQUX
      NUWFUWFUWJDUVKPQZNZUWCREZDPQJUXRUXSUWBREZUVKGFZDPUXRUXSUXTUVKREZGFUYAUXRU
      WBUVKUWJUWBMIZUXQUXKVSZUWJUVKMIZUXQUXLVSZUWJUVKVTWCZUXQUXMVSZWAUXRUYBUVKU
      XTGUWJUYBUVKSZUXQUWJUWNVTUVKPQNUYIUVKWDUVKWEOVSWFWGUXRUYADPQUXTUVKDKFZPQU
      XRUXTUVKUYJPUXRUXTUVMUWAREZBHZUVKUXRUWBUYDWHZUXRUVMUYKBUXRDUVLUSZUXRUWLNZ
      UWAUWJUWLUWAMIUXQUXJWIZWHZWJZUWJUWNUXQUWQVSZUXRUVMUWABUYNUYPWKUXRUYLUVLUV
      KUYRUXRUWNUVLUNIUYSUVKVDOZUYSUXRUYLUVMDBHZUVLPUXRUVMUYKDBUYNUYQUYOULZUYOU
      YKUVTREZUVOREZKFZDPUYOUVTUVOUWJUWLUVTMIUXQUXDWIZUYOUVOUYOUWOUXEUXRUVMTUVN
      UVMTVRUXRUAUVMTUAUDZUVLVAWLUQZWMZUXGOVKZWNUYOVUEDDKFDPUYOVUCDVUDDUYOUVTVU
      FWHVUBUYOUVOVUJWHVUBUYOUVTVUFWOUYOUVOVUJWOUYOVUCUVTDPUYOUVSUVRUYOUWPUXAUY
      OCUNUVRUOUXRUWJUVNCIZUVRCIZUWLUWJUXQWPZUWLUVNUWRWQUVKUVNWRVCZWSZUXBOVUOUY
      OUWPUVSUVRPQVUOUVRWTOXAUYOUWPUVTDPQVUOUVRXBOXCUYOUWOVUDDPQVUIUVNXDOXEXFXG
      XCXHUXRVUAUVMXIEZDKFZUVLDKFUVLUXRUVMXJIDMIZVUAVUQSUYNUXRXMZUVMDBXKXLUXRVU
      PUVLDKUXRUVLXNIVUPUVLSUXRUVLUWJUWNUXQUVLTIUWQUVKXOXPZXQUVLXROXSUXRUVLUXRU
      VLUYTVJXTYAYBUXRUWNUVLUVKPQUYSUVKWTOYCYCUXRUVKUYFXTYDUXRUXTDUVKUYMUXRULVU
      MYEYFXCVGYGUWHVTYNQZUXPJVURVVAYHDAYIYJVTUWHYKYOUWGUWHYLXLUUAUXOUWCUWDLVOU
      WJUVQMIZJUWJUVMUVPBUWKUWMUVPUWMUVOUVNUWMUVOUXHUUDUXFUUBVJZVLZVGUXRUVQREZU
      WEREZPQZJUXRVVEUNIVVEVVFSVVGUXRUVQUWJVVBUXQVVDVSZWHUXRUVQUWERUXRUVKUVQKFZ
      UVKGFUWBDLFZUVKGFZUVQUWEUXRVVIVVJUVKGUXRVVIUVMUVKUVPKFZBHZVVJUXRUVMUVPUVK
      BUYNUYFUWJUWLUVPMIUXQVVCWIUUCUXRUVMUWAUVSUVOKFZLFZBHUWBUVMVVNBHZLFVVMVVJU
      XRUVMUWAVVNBUYNUYPUWJUWLVVNMIUXQUWMUVSUVOUXCUXIVIWIUUEUXRUVMVVOVVLBUYOUVT
      UVSLFZUVOKFUVRUVOKFZVVOVVLUYOVVQUVRUVOKUYOUVRUVSUWJUWLUVRMIUXQUWTWIUWJUWL
      UVSMIUXQUXCWIZUUFXSUYOUVTUVSUVOVUFVVSVUJUUGUYOUYEUVOMIZUVNMIUVNVTWCNZVVRV
      VLSUXRUYEUWLUYFVSVUJUYOVUKVWAUYOUVNVUIWQUVNYMOUYEVVTVWAYPUVKUVOKFUVNGFVVR
      VVLUVKUVOUVNUUHUVKUVOUVNUUIYQYRYSYTUXRVVPDUWBLUXRUVMUBUDVUGUUJQZUBTUUNZUV
      OBHUAHZUVMDUVSUFFZUVOUCHZBHDVVPUXRUBUVKUVOUVOUCUABVUGUVNUCUDKFSUVOVPUYSUX
      RVUGUVMIZUVNVWCIZNNZUVOVWIUWOUXEVWIVWCTUVNVWBUBTUUKUXRVWGVWHUULWSUXGOVKZU
      UMUXRUVMVWCUVODKFZBHUAHVWDDUXRUVMVWCVWKUVOUABUXRVWGVWHYPUVOUXRVWGVWHVVTVW
      JUUOXTUUPUXRUVMDDBUAUBVUGDSDVPUYNVUHUXRUVLDUUQEZIDUVMIUXRUVLTVWLVUTUURUUS
      DUVLUUTOUXRVWGNXMUVAYQUXRUVMVWFVVNBUYOVWFVWEXIEZUVOKFZVVNUYOVWEXJIVVTVWFV
      WNSUYODUVSUSVUJVWEUVOUCXKXLUYOVWMUVSUVOKUYOVULUWPVTUVRPQNUVSXNIVWMUVSSVUN
      UVRWDUVRUVBUVSXRUVDXSWGYTUVCWFYSWGXSUXRUVQUVKVVHUYFUYHUVEUXRUYCVURUYEUYGN
      ZVVKUWESUYDVUSUWJVWOUXQUVKYMVSUWBDUVKUVFYRYSUVGVVEVVFUVHXLVGUVIUVJ $.

    $( Lemma for ~ mulogsum .  (Contributed by Mario Carneiro, 14-May-2016.) $)
    mulogsumlem $p |- ( x e. RR+ |-> sum_ n e. ( 1 ... ( |_ ` x ) )
      ( ( ( mmu ` n ) / n ) x.
        ( sum_ m e. ( 1 ... ( |_ ` ( x / n ) ) ) ( 1 / m ) -
          ( log ` ( x / n ) ) ) ) ) e. O(1) $=
      ( crp c1 cfv co cdiv csu cmin cmul cmpt wcel wtru cem cc wa syl cle wbr
      cv cfl cfz cmu clog co1 fzfid cn elfznn adantl mucl nndivred recnd fsumcl
      cz zred emre recni a1i mudivsum cr rpssre o1const mp2an nnrecred fsumrecl
      wss o1mul2 nnrpd rpdivcl relogcld resubcld remulcld mulcl sylancl nnrecre
      sylan2 caddc subcld mulcld fsumsub subsub4d oveq2d subdid eqtr3d sumeq2dv
      fsummulc1 3eqtr4d mpteq2ia addcld abscld fsumabs cc0 cn0 rprege0 flge0nn0
      1red cabs nn0red rerpdivcl mpancom rpreccl rpred id syl2anr absge0d nncnd
      adantr nnne0d absdivd absid eqtrd mule1 lediv1dd eqbrtrd harmonicbnd4 wne
      wceq rpcnne0 recdiv syl2anc breqtrd lemul12ad absmuld 1cnd dmdcan syl3anc
      rpcnd mulcomd 3brtr4d fsumle chash hashfz1 oveq1d fsumconst nn0cnd mpbird
      cfn rpcn letrd rpne0 divrecd rpre flle mulid1d breqtrrd wb reflcl rpregt0
      clt ledivmul ad2antrl elo1d syl5eqelr o1dif trud ) ADEAUAZUBFZUCGZCUAZUDF
      ZUUTHGZEUUQUUTHGZUBFZUCGZEBUAZHGZBIZUVCUEFZJGZKGZCIZLUFMZNUVMADUUSUVBCIZO
      KGZLUFMNADUVNOPUUQDMZUVNPMZNUVPUUSUVBCUVPEUURUGZUVPUUTUUSMZQZUVBUVTUVAUUT
      UVTUVAUVTUUTUHMZUVAUOMUVSUWAUVPUUTUURUIZUJZUUTUKRUPZUWCULZUMZUNZUJOPMZNUV
      PQOUQURZUSADUVNLUFMNACUTUSADOLUFMZNDVAVGZUWHUWJVBUWIADOVCVDUSVHNADUVLUVOU
      VPUVLPMNUVPUVLUVPUUSUVKCUVRUVTUVBUVJUWEUVTUVHUVIUVTUVEUVGBUVTEUVDUGZUVTUV
      FUVEMZQZUVFUWMUVFUHMZUVTUVFUVDUIUJZVEVFUVTUVCUVSUVPUUTDMZUVCDMZUVSUUTUWBV
      IZUUQUUTVJVQZVKZVLVMVFUMUJUVPUVOPMZNUVPUVQUWHUXBUWGUWIUVNOVNVOUJNADUVLUVO
      JGZLADUUSUVBUVHUVIOVRGZJGZKGZCIZLUFADUXGUXCUVPUUSUVKUVBOKGZJGZCIUVLUUSUXH
      CIZJGUXGUXCUVPUUSUVKUXHCUVRUVTUVBUVJUWFUVTUVHUVIUVTUVEUVGBUWLUWNUWOUVGPMU
      WPUWOUVGUVFVPUMRUNZUVTUVIUXAUMZVSZVTUVTUVBPMUWHUXHPMUWFUWIUVBOVNVOWAUVPUU
      SUXFUXICUVTUVBUVJOJGZKGUXFUXIUVTUXNUXEUVBKUVTUVHUVIOUXKUXLUWHUVTUWIUSZWBW
      CUVTUVBUVJOUWFUXMUXOWDWEWFUVPUVOUXJUVLJUVPUUSUVBOCUVRUWHUVPUWIUSUWFWGWCWH
      WINADUXGEEUWKNVBUSUVPUXGPMNUVPUUSUXFCUVRUVTUVBUXEUWFUVTUVHUXDUXKUVTUVIOUX
      LUXOWJVSZVTZUNZUJNWQZUXSUVPUXGWRFZESTNEUUQSTUVPUXTUUSUXFWRFZCIZEUVPUXGUXR
      WKUVPUUSUYACUVRUVTUXFUXQWKZVFZUVPWQZUVPUUSUXFCUVRUXQWLUVPUYBUURUUQHGZEUYD
      UURVAMZUVPUYFVAMUVPUURUVPUUQVAMZWMUUQSTQUURWNMZUUQWOUUQWPRZWSUURUUQWTXAUY
      EUVPUYBUUSEUUQHGZCIZUYFSUVPUUSUYAUYKCUVRUYCUVTUYKUVPUYKDMUVSUUQXBZXHXCUVT
      UVBWRFZUXEWRFZKGEUUTHGZUUTUUQHGZKGZUYAUYKSUVTUYNUYPUYOUYQUVTUVBUWFWKUVTUU
      TUWCVEZUVTUXEUXPWKUVTUYQUVSUWQUVPUYQDMUVPUWSUVPXDUUTUUQVJXEZXCUVTUVBUWFXF
      UVTUXEUXPXFUVTUYNUVAWRFZUUTHGZUYPSUVTUYNVUAUUTWRFZHGVUBUVTUVAUUTUVTUVAUWD
      UMZUVTUUTUWCXGUVTUUTUWCXIXJUVTVUCUUTVUAHUVTUUTVAMWMUUTSTQZVUCUUTXRUVTUWQV
      UEUVTUUTUWCVIZUUTWORUUTXKRWCXLUVTVUAEUUTUVTUVAVUDWKUVTWQVUFUVTUWAVUAESTUW
      CUUTXMRXNXOUVTUYOEUVCHGZUYQSUVTUWRUYOVUGSTUWTUVCBXPRUVTUUQPMUUQWMXQQZUUTP
      MUUTWMXQQZVUGUYQXRUVPVUHUVSUUQXSXHZUVTUWQVUIVUFUUTXSRZUUQUUTXTYAYBYCUVTUV
      BUXEUWFUXPYDUVTUYQUYPKGZUYKUYRUVTVUIVUHEPMVULUYKXRVUKVUJUVTYEUUTUUQEYFYGU
      VTUYQUYPUVTUYQUYTYHUVTUYPUYSUMYIWEYJYKUVPUUSYLFZUYKKGZUURUYKKGUYLUYFUVPVU
      MUURUYKKUVPUYIVUMUURXRUYJUURYMRYNUVPUUSYRMUYKPMUYLVUNXRUVRUVPUYKUYMYHUUSU
      YKCYOYAUVPUURUUQUVPUURUYJYPUUQYSZUUQUUAUUBWHYBUVPUYFESTZUURUUQEKGZSTZUVPU
      URUUQVUQSUVPUYHUURUUQSTUUQUUCZUUQUUDRUVPUUQVUOUUEUUFUVPUYGEVAMUYHWMUUQUUJ
      TQVUPVURUUGUVPUYHUYGVUSUUQUUHRUYEUUQUUIUUREUUQUUKYGYQYTYTUULUUMUUNUUOYQUU
      P $.

    $( Asymptotic formula for
       ` sum_ n <_ x , ( mmu ( n ) / n ) log ( x / n ) = O(1) ` .  Equation
       10.2.6 of [Shapiro], p. 406.  (Contributed by Mario Carneiro,
       14-May-2016.) $)
    mulogsum $p |- ( x e. RR+ |-> sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( ( mmu ` n ) / n ) x. ( log ` ( x / n ) ) ) ) e. O(1) $=
      ( vm vk vy crp c1 cv cfv co cdiv cmul csu wcel wtru cc wa cn adantl syl
      cfl cfz cmu clog cmpt co1 cr wss rpssre ax-1cn o1const mp2an fzfid elfznn
      1cnd cz mucl nndivred nnrpd rpdivcl sylan2 relogcld remulcld recnd fsumcl
      zred cmin mulogsumlem cvv sumex a1i o1mptrcl subcld 1red cle ssriv sselda
      wbr wceq cc0 rpcnne0d reccl syl2an subdid sumeq2dv mulcld adantlr fsumsub
      wne simpl cdvds crab oveq2 oveq2d rpre adantr ssrab2 simprr zcnd nnrecred
      sseldi adantrr dvdsflsumcom 1div1e1 syl6eq cuz flge1nn sylan nnuz eluzfz1
      syl6eleq musumsum divdiv1 syl3anc nncnd nnne0d divrecd 3eqtr3rd fsummulc2
      nnmulcl eqtr4d oveq1d 3eqtrd o1eq mpbii o1dif trud ) AFGAHZUAIZUBJZBHZUCI
      ZYKKJZYHYKKJZUDIZLJZBMZUEUFNZOAFGUEUFNZYRFUGUHGPNYSUIUJAFGUKULOAFGYQOYHFN
      ZQZUOZYTYQPNOYTYJYPBYTGYIUMYTYKYJNZQZYPUUDYMYOUUDYLYKUUDYLUUDYKRNZYLUPNZU
      UCUUEYTYKYIUNZSZYKUQZTVFUUHURUUDYNUUCYTYKFNZYNFNZUUCYKUUGUSZYHYKUTZVAVBVC
      VDZVESZOAFYJYMGYNUAIZUBJZGCHZKJZCMZYOVGJLJZBMZUEUFNZAFGYQVGJZUEUFNACBVHZO
      AFUVBUVDGOAFUVBVIUVBVINUUAYJUVABVJVKUVCOUVEVKVLUUAGYQUUBUUOVMOVNYTGYHVOVR
      ZQZUVBUVDVSOUVGUVBYJYMUUTLJZYPVGJZBMYJUVHBMZYQVGJUVDUVGYJUVAUVIBUVGUUCQZY
      MUUTYOUVKYMUVKYLYKUVKYLUVKUUEUUFUVGYJRYKYJRUHUVGDYJRDHZYIUNZVPVKZVQZUUITZ
      VFUVOURVDZUVKUUQUUSCUVKGUUPUMZUVKUURUUQNZQZUURPNUURVTWIQZUUSPNUVTUURUVTUU
      RUVSUURRNZUVKUURUUPUNZSZUSWAZUURWBTZVEZUVKYOUVKYNUVGYTUUJUUKUUCYTUVFWJUUL
      UUMWCVBVDWDWEUVGYJUVHYPBUVGGYIUMZUVKYMUUTUVQUWGWFYTUUCYPPNUVFUUNWGWHUVGUV
      JGYQVGUVGYJEHUVLWKVRZERWLZYLGUVLKJZLJZBMDMYJUUQYLGYKUURLJZKJZLJZCMZBMGUVJ
      UVGEYHUWLUWOCDBUVLUWMVSUWKUWNYLLUVLUWMGKWMWNYTYHUGNZUVFYHWOZWPUVGUVLYJNZY
      KUWJNZQQZYLUWKUXAYLUXAUUEUUFUXAUWJRYKUWIERWQUVGUWSUWTWRXAUUITWSUVGUWSUWKP
      NUWTUVGUWSQZUWKUXBUVLUWSUVLRNUVGUVMSWTVDZXBWFXCUVGYJUWKGBDEUVLGVSUWKGGKJG
      UVLGGKWMXDXEUWHUVNUVGYIGXFIZNGYJNUVGYIRUXDYTUWQUVFYIRNUWRYHXGXHXIXKGYIXJT
      UXCXLUVGYJUWPUVHBUVKUWPUUQYMUUSLJZCMUVHUVKUUQUWOUXECUVTYMUURKJZYLUWMKJZUX
      EUWOUVTYLPNZYKPNYKVTWIQUWAUXFUXGVSUVKUXHUVSUVKYLUVPWSWPZUVTYKUVTYKUVKUUEU
      VSUVOWPUSWAUWEYLYKUURXMXNUVTYMUURUVKYMPNUVSUVQWPUVTUURUWDXOUVTUURUWDXPXQU
      VTYLUWMUXIUVTUWMUVKUUEUWBUWMRNUVSUVOUWCYKUURXTWCZXOUVTUWMUXJXPXQXRWEUVKUU
      QUUSYMCUVRUVQUWFXSYAWEXRYBYCSYDYEYFYEYG $.
  $}

  ${
    $d i k m n x y A $.  $d x F $.  $d n x L $.  $d k m n x ph $.  $d n x R $.
    logdivsum.1 $e |- F = ( y e. RR+ |->
      ( sum_ i e. ( 1 ... ( |_ ` y ) ) ( ( log ` i ) / i ) -
        ( ( ( log ` y ) ^ 2 ) / 2 ) ) ) $.
    $( Asymptotic analysis of
       ` sum_ n <_ x , log n / n = ( log x ) ^ 2 / 2 + L + O ( log x / x ) ` .
       (Contributed by Mario Carneiro, 18-May-2016.) $)
    logdivsum $p |- ( F : RR+ --> RR /\ F e. dom ~~>r /\
      ( ( F ~~>r L /\ A e. RR+ /\ _e <_ A ) ->
        ( abs ` ( ( F ` A ) - L ) ) <_ ( ( log ` A ) / A ) ) ) $=
      ( vx crp cr wcel wbr ceu co cdiv wtru c2 cc0 c1 cmpt cc crli cdm cle cmin
      wf w3a cfv cabs clog wi cv cexp cn cpnf cioo ioorp eqcomi nnuz 1zzd caddc
      ere a1i 0re epos ltleii wb 1re addge02 mp2an sylib relogcl adantl resqcld
      wa rehalfcld rerpdivcl mpancom nnrp sylan2 cdv cmul reelprrecn cnelprrecn
      cvv cpr recnd ovexd sqcl halfcld simpr cres dvrelog wf1o relogf1o feqmptd
      f1of mp1i fvres mpteq2ia syl6eq oveq2d syl5reqr wceq 2nn dvexp 2m1e1 exp1
      oveq2i syl5eq mpteq2dva eqtrd 2cn wne 2ne0 dvmptdivc divcan3 oveq1 oveq1d
      mp3an23 id dvmptco rpne0 divrecd eqtr4d fveq2 oveq12d simp3r simp2l rpred
      rpcn simp3l simp2r letrd logdivle syl22anc mpbid ccxp cxp1d 1rp cxploglim
      syl5eqbrr dvfsumrlim3 trud ) HIDUEDUAUBJDEUAKBHJLBUCKUFBDUGEUDMUHUGBUIUGZ
      BNMZUCKUJUFOAAUKZUIUGZPULMZPNMZUUGUUFNMZCUKZUIUGZUUKNMZLHQCUUEDERIBUMQUNU
      OMHUPUQUROUSLIJZOVAVBOQLUCKZRLRUTMUCKZUUOOQLVCVAVDVEVBRIJUUNUUOUUPVFVGVAR
      LVHVIVJQIJOVCVBOUUFHJZVNZUUHUURUUGUUQUUGIJZOUUFVKZVLZVMVOUUQUUJIJZOUUSUUQ
      UVBUUTUUGUUFVPVQVLZUUFUMJOUUQUVBUUFVRUVCVSOIAHUUISVTMAHUUGRUUFNMZWAMZSAHU
      UJSZOAGUUGUVDGUKZPULMZPNMZUVGITUUIUUGWDTHTIITWEZJOWBVBTUVJJOWCVBZUURUUGUV
      AWFZUURRUUFNWGOUVGTJZVNZUVHUVMUVHTJOUVGWHVLZWIOUVMWJOAHUVDSIUIHWKZVTMIAHU
      UGSZVTMAWLOUVPUVQIVTOUVPAHUUFUVPUGZSUVQOAHIUVPHIUVPWMHIUVPUEOWNHIUVPWPWQW
      OAHUVRUUGUUFHUIWRWSWTXAXBOTGTUVISVTMGTPUVGWAMZPNMZSGTUVGSOGUVHUVSPTWDTUVK
      UVOUVNPUVGWAWGOTGTUVHSVTMZGTPUVGPRUDMZULMZWAMZSZGTUVSSPUMJUWAUWEXCOXDGPXE
      WQOGTUWDUVSUVNUWCUVGPWAUVNUWCUVGRULMZUVGUWBRUVGULXFXHUVMUWFUVGXCOUVGXGVLX
      IXAXJXKPTJZOXLVBPQXMZOXNVBXOOGTUVTUVGUVMUVTUVGXCZOUVMUWGUWHUWIXLXNUVGPXPX
      SVLXJXKUVGUUGXCZUVHUUHPNUVGUUGPULXQXRUWJXTYAOAHUUJUVEUURUUGUUFUVLUUQUUFTJ
      OUUFYJZVLUUQUUFQXMOUUFYBVLYCXJYDUUFUUKXCZUUGUULUUFUUKNUUFUUKUIYEUWLXTYFOU
      UQUUKHJZVNZLUUFUCKZUUFUUKUCKZVNZUFZUWPUUMUUJUCKZOUWNUWOUWPYGZUWRUUFIJUWOU
      UKIJLUUKUCKUWPUWSVFUWRUUFOUUQUWMUWQYHYIZOUWNUWOUWPYKZUWRUUKOUUQUWMUWQYLYI
      ZUWRLUUFUUKUUNUWRVAVBUXAUXCUXBUWTYMUUFUUKYNYOYPFOUVFAHUUGUUFRYQMZNMZSZQUA
      AHUXEUUJUUQUXDUUFUUGNUUQUUFUWKYRXAWSRHJUXFQUAKOYSRAYTWQUUAUUFBXCZUUGUUDUU
      FBNUUFBUIYEUXGXTYFUUBUUC $.

    mulog2sumlem.1 $e |- ( ph -> F ~~>r L ) $.
    ${
      mulog2sumlem1.2 $e |- ( ph -> A e. RR+ ) $.
      mulog2sumlem1.3 $e |- ( ph -> _e <_ A ) $.
      $( Asymptotic formula for
         ` sum_ n <_ x , log ( x / n ) / n = ( 1 / 2 ) log ^ 2 ( x ) + `
         ` gamma x. log x - L + O ( log x / x ) ` , with explicit constants.
         Equation 10.2.7 of [Shapiro], p. 407.  (Contributed by Mario Carneiro,
         18-May-2016.) $)
      mulog2sumlem1 $p |- ( ph ->
       ( abs ` ( sum_ m e. ( 1 ... ( |_ ` A ) ) ( ( log ` ( A / m ) ) / m ) -
         ( ( ( ( log ` A ) ^ 2 ) / 2 ) + ( ( gamma x. ( log ` A ) ) - L ) ) ) )
         <_ ( 2 x. ( ( log ` A ) / A ) ) ) $=
        ( cfv co cdiv cmul cmin caddc wcel cr recnd vx c1 cfl cfz clog csu cexp
        cv c2 cem cabs fzfid wa crp elfznn nnrpd rpdivcl syl2an relogcld adantl
        nndivred fsumrecl resqcld rehalfcld emre remulcl sylancr csup cpnf wceq
        cn cxr clt rpsup a1i cmpt crli wf cdm wbr ceu cle w3a logdivsum feqmptd
        wi simp1i eqbrtrrd ffvelrni rlimrecl resubcld readdcld abscld rerpdivcl
        fsumcl readdcl sylancl mulcld subcld addcld 2re rerpdivcld relogdiv cc0
        oveq1d cc wne adantr rpcnne0d divsubdir syl3anc sumeq2dv fsumsub pncand
        eqtrd recni adddid 2halvesd sqvald add32d 3eqtr2d mulcom oveq2d eqeltrd
        3eqtr4rd addsubassd subsub4d 3eqtr3d oveq12d sub4d fveq2d abs2dif2d syl
        wb mpbid rpcnd rpne0d divrecd eqtr4d fveq2 nnrecred 0red 1red 0lt1 loge
        eqbrtrd harmonicbnd4 rprecred logleb syl5eqbrr ltletrd lemul2 syl112anc
        fsummulc2 subdid absmuld ltled absidd 3eqtrd 3brtr4d id cbvsumv sumeq1d
        epr syl5eq ovex fvmpt simp3i le2addd 2timesd breqtrrd letrd ) AUBCUCLZU
        DMZCEUHZNMZUELZUVONMZEUFZCUELZUIUGMZUINMZUJUVTOMZGPMZQMZPMZUKLZUVNUVTUV
        ONMZEUFZUVTUVTUJQMZOMZPMZUKLZUVNUVOUELZUVONMZEUFZUWBGQMZPMZUKLZQMZUIUVT
        CNMZOMZAUWFAUWFAUVSUWEAUVNUVREAUBUVMULZAUVOUVNRZUMZUVQUVOUXEUVPACUNRZUV
        OUNRZUVPUNRUXDJUXDUVOUVOUVMUOZUPZCUVOUQURUSUXDUVOVKRAUXHUTZVAVBAUWBUWDA
        UWAAUVTACJUSZVCZVDZAUWCGAUJSRZUVTSRZUWCSRVEUXKUJUVTVFVGAUAUNUAUHZFLZGUN
        VLVMVHVIVJAVNVOAFUAUNUXQVPGVQAUAUNSFUNSFVRZAUXRFVQVSRZFGVQVTZUXFWACWBVT
        ZWCCFLZGPMZUKLZUXAWBVTZWFZBCDFGHWDZWGZVOWEIWHUXPUNRUXQSRAUNSUXPFUYHWIUT
        WJZWKWLWKTWMAUWMUWSAUWLAUWIUWKAUVNUWHEUXCUXEUWHAUXOUXGUWHSRUXDUXKUXIUVT
        UVOWNURTZWOZAUVTUWJAUVTUXKTZAUWJAUXOUXNUWJSRUXKVEUVTUJWPWQZTZWRZWSZWMZA
        UWRAUWPUWQAUVNUWOEUXCUXEUWOUXEUWNUVOUXEUVOUXEUVOUXJUPZUSZUXJVATZWOZAUWB
        GAUWBUXMTZAGUYITZWTZWSZWMZWLAUISRUXASRUXBSRXAAUVTCUXKJXBZUIUXAVFVGAUWGU
        WLUWRPMZUKLUWTWBAUWFVUHUKAUWFUWIUWPPMZUWKUWQPMZPMVUHAUVSVUIUWEVUJPAUVSU
        VNUWHUWOPMZEUFVUIAUVNUVRVUKEUXEUVRUVTUWNPMZUVONMZVUKUXEUVQVULUVONAUXFUX
        GUVQVULVJUXDJUXICUVOXCURXEUXEUVTXFRZUWNXFRUVOXFRUVOXDXGUMVUMVUKVJAVUNUX
        DUYLXHZUXEUWNUYSTUXEUVOUYRXIUVTUWNUVOXJXKXOXLAUVNUWHUWOEUXCUYJUYTXMXOAU
        WBUWCQMZGPMUWKUWBPMZGPMUWEVUJAVUPVUQGPAUWBUVTUJOMZQMZUWBQMZUWBPMVUSVUQV
        UPAVUSUWBAVUSAUWBVURUXMAUXOUXNVURSRUXKVEUVTUJVFWQZWLTVUBXNAUWKVUTUWBPAU
        WKUVTUVTOMZVURQMUWBUWBQMZVURQMVUTAUVTUVTUJUYLUYLUJXFRZAUJVEXPZVOXQAVVCV
        VBVURQAVVCUWAVVBAUWAAUWAUXLTXRAUVTUYLXSXOXEAUWBUWBVURVUBVUBAVURVVATZXTY
        AXEAUWCVURUWBQAVVDVUNUWCVURVJVVEUYLUJUVTYBVGZYCYEXEAUWBUWCGVUBAUWCVURXF
        VVGVVFYDVUCYFAUWKUWBGUYOVUBVUCYGYHYIAUWIUWPUWKUWQUYKVUAUYOVUDYJXOYKAUWL
        UWRUYPVUEYLUUFAUWTUXAUXAQMUXBWBAUWMUWSUXAUXAUYQVUFVUGVUGAUVTUVNUBUVONMZ
        EUFZUWJPMZUKLZOMZUVTUBCNMZOMZUWMUXAWBAVVKVVMWBVTZVVLVVNWBVTZAUXFVVOJCEU
        UGYMAVVKSRVVMSRUXOXDUVTVMVTVVOVVPYNAVVJAVVJAVVIUWJAUVNVVHEUXCUXEUVOUXJU
        UAZVBUYMWKTWMACJUUHUXKAXDUBUVTAUUBZAUUCUXKXDUBVMVTAUUDVOAUBWAUELZUVTWBU
        UEAUYAVVSUVTWBVTZKAWAUNRUXFUYAVVTYNUVDJWACUUIVGYOUUJUUKZVVKVVMUVTUULUUM
        YOAUWMUVTVVJOMZUKLUVTUKLZVVKOMVVLAUWLVWBUKAUWLUVTVVIOMZUWKPMVWBAUWIVWDU
        WKPAUWIUVNUVTVVHOMZEUFVWDAUVNUWHVWEEUXEUVTUVOVUOUXEUVOUYRYPUXEUVOUYRYQY
        RXLAUVNVVHUVTEUXCUYLUXEVVHVVQTZUUNYSXEAUVTVVIUWJUYLAUVNVVHEUXCVWFWOZUYN
        UUOYSYKAUVTVVJUYLAVVIUWJVWGUYNWSUUPAVWCUVTVVKOAUVTUXKAXDUVTVVRUXKVWAUUQ
        UURXEUUSAUVTCUYLACJYPACJYQYRUUTAUYDUWSUXAWBAUYCUWRUKAUYCUWPUWBPMZGPMUWR
        AUYBVWHGPAUXFUYBVWHVJJBCUBBUHZUCLZUDMZDUHZUELZVWLNMZDUFZVWIUELZUIUGMZUI
        NMZPMVWHUNFVWICVJZVWOUWPVWRUWBPVWSVWOVWKUWOEUFUWPVWKVWNUWODEVWLUVOVJZVW
        MUWNVWLUVONVWLUVOUEYTVWTUVAYIUVBVWSVWKUVNUWOEVWSVWJUVMUBUDVWICUCYTYCUVC
        UVEVWSVWQUWAUINVWSVWPUVTUIUGVWICUEYTXEXEYIHUWPUWBPUVFUVGYMXEAUWPUWBGVUA
        VUBVUCYGXOYKAUXTUXFUYAUYEIJKUXRUXSUYFUYGUVHXKWHUVIAUXAAUXAVUGTUVJUVKUVL
        $.
    $}

    ${
      mulog2sumlem2.t $e |- T = ( ( ( ( log ` ( x / n ) ) ^ 2 ) / 2 ) +
        ( ( gamma x. ( log ` ( x / n ) ) ) - L ) ) $.
      mulog2sumlem2.r $e |- R = ( ( ( 1 / 2 ) + ( gamma + ( abs ` L ) ) ) +
        sum_ m e. ( 1 ... 2 ) ( ( log ` ( _e / m ) ) / m ) ) $.
      $( Lemma for ~ mulog2sum .  (Contributed by Mario Carneiro,
         19-May-2016.) $)
      mulog2sumlem2 $p |- ( ph -> ( x e. RR+ |->
        ( sum_ n e. ( 1 ... ( |_ ` x ) ) ( ( ( mmu ` n ) / n ) x. T )
          - ( log ` x ) ) ) e. O(1) ) $=
        ( c2 c1 co wcel wbr cle vk crp cv cfl cfv cfz cdiv clog cmul caddc cmin
        csu cr wa 2re fzfid simpr elfznn nnrpd rpdivcl syl2an relogcld fsumrecl
        1red remulcl sylancr cem cabs ceu halfre emre cc syl abscld readdcl epr
        crli cn adantl nndivred readdcld syl5eqel sylancl adantr a1i wss rpssre
        cmpt co1 2cnd o1const mp1i recnd zred cexp subcld mulcld fsumcl adantrr
        cz wceq sylan2 nncnd eqtrd sumeq2dv fsummulc2 cc0 wne jca div23 syl3anc
        rpcnne0 divdiv1 fveq2d oveq12d oveq2d oveq2 rpred ere clt c3 ltleii 1rp
        addge0d mulid2d letrd eqbrtrd mpbid wb logleb syl5eqbrr divge0 syl21anc
        log1 ad3antrrr absidd syl6breq lediv1 sylan adantlr cmu rerpdivcld mucl
        simplr rlimcl logfacrlim2 rlimo1 o1mul2 o1add2 halfcld ad2antrr relogcl
        sqcld addcld zcnd nnrp nnne0d div23d subdid fsumsub cdvds divass eqtr3d
        crab w3a mulcomd id ssrab2 simprr sseldi ad2antrl remulcld dvdsflsumcom
        rpre eqtr4d ssriv flge1nn syl2anc nnuz syl6eleq eluzfz1 sselda adantlrr
        cuz musumsum rpcnd div1d oveq1d 3eqtrd egt2lt3 simpli lttri mp2an jctir
        1re 1lt2 rphalfcl ax-mp rpge0 0re emgt0 absge0d elfzle2 divge0d fsumge0
        lemuldivd syl6breqr 0le2 fznnfl simplbda rpregt0 ad2antlr mulge0d mule1
        absmuld lemul1ad breqtrd mulog2sumlem1 abssubd oveq2i mulassd abs2dif2d
        fveq2i syl6eq divdiv2 3brtr4d syl5eqelr abstrid rehalfcld sqge0d pm3.2i
        resqcld 2pos wi ltle imp loge 0le1 le2sqd lemul2 recni mulid1i leadd1dd
        sq1 le2addd syl5eqbr rpregt0d lemuldiv flcld 3re simpri lttrd fllt df-3
        2z 3z zleltp1 mpbird eluz2 syl3anbrc fzss2 simplll syldan logled fsumle
        fsumless fsumharmonic df-2 oveq1i eqtr4i breqtrrd eqbrtrrd leabsd o1le
        ) ABUBOPBUCZUDUEZUFQZVVOHUCZUGQZUHUEZVVOUGQZHULZUIQZDOUIQZUJQZVVQVVRUUA
[encoded data, 8480 characters]
        VWMVWEWUHVVMWSYFVVN $.
    $}

    $( Lemma for ~ mulog2sum .  (Contributed by Mario Carneiro,
       13-May-2016.) $)
    mulog2sumlem3 $p |- ( ph -> ( x e. RR+ |-> ( sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( ( mmu ` n ) / n ) x. ( ( log ` ( x / n ) ) ^ 2 ) )
          - ( 2 x. ( log ` x ) ) ) ) e. O(1) ) $=
      ( crp c2 co cmul csu cmin cmpt wcel cc a1i cem vm c1 cfl cfv cfz cmu cdiv
      cv clog cexp co1 wa 2cn fzfid cn cz elfznn adantl mucl syl nndivred recnd
      zred simpr nnrpd rpdivcl syl2an relogcld halfcld mulcld fsumcl cr relogcl
      sqcld subdid fsummulc2 mul12d cc0 wne 2ne0 divcan2d oveq2d eqtrd sumeq2dv
      oveq1d mpteq2dva subcld wss rpssre o1const mp2an caddc emre recni sylancr
      mulcl crli wbr rlimcl ad2antrr addcld sub32d fsumsub pncand cabs ceu eqid
      eqtr3d mulog2sumlem2 adantr oveq12d eqtr4d 3eqtr2d mulogsum o1mul2 o1sub2
      fsummulc1 mudivsum eqeltrrd ) ABJKUBBUHZUCUDZUELZEUHZUFUDZYCUGLZXTYCUGLZU
      IUDZKUJLZKUGLZMLZENZXTUIUDZOLZMLZPBJYBYEYHMLZENZKYLMLZOLZPUKABJYNYRAXTJQZ
      ULZYNKYKMLZYQOLYRYTKYKYLKRQZYTUMSZYTYBYJEYTUBYAUNZYTYCYBQZULZYEYIUUFYEUUF
      YDYCUUFYDUUFYCUOQZYDUPQUUEUUGYTYCYAUQZURZYCUSUTVCUUIVAVBZUUFYHUUFYGUUFYGU
      UFYFYTYSYCJQYFJQUUEAYSVDUUEYCUUHVEXTYCVFVGVHVBZVNZVIZVJZVKZYTYLYSYLVLQAXT
      VMURVBZVOYTUUAYPYQOYTUUAYBKYJMLZENYPYTYBYJKEUUDUUCUUNVPYTYBUUQYOEUUFUUQYE
      KYIMLZMLYOUUFKYEYIUUBUUFUMSZUUJUUMVQUUFUURYHYEMUUFYHKUULUUSKVRVSUUFVTSWAW
      BWCWDWCWEWCWFABJKYMRUUCYTYKYLUUOUUPWGBJKPUKQZAJVLWHZUUBUUTWIUMBJKWJWKSABJ
      YBYEYITYGMLZGOLZWLLZMLZENZYLOLZYBYEUVCMLZENZOLZPBJYMPUKABJUVJYMYTUVJUVFUV
      IOLZYLOLYMYTUVFYLUVIYTYBUVEEUUDUUFYEUVDUUJUUFYIUVCUUMUUFUVBGUUFTRQZYGRQUV
      BRQTWMWNZUUKTYGWPWOZAGRQZYSUUEAFGWQWRUVOIGFWSUTZWTZWGZXAZVJZVKZUUPYTYBUVH
      EUUDUUFYEUVCUUJUVRVJZVKZXBYTUVKYKYLOYTYBUVEUVHOLZENUVKYKYTYBUVEUVHEUUDUVT
      UWBXCYTYBUWDYJEUUFYEUVDUVCOLZMLUWDYJUUFYEUVDUVCUUJUVSUVRVOUUFUWEYIYEMUUFY
      IUVCUUMUVRXDWBXHWDXHWEWCWFABJUVGUVIRYTUVFYLUWAUUPWGUWCABCUBKUGLTGXEUDWLLW
      LLUBKUELXFUAUHZUGLUIUDUWFUGLUANWLLZUVDDUAEFGHIUVDXGUWGXGXIABJTYBYEYGMLZEN
      ZMLZYBYEENZGMLZOLZPBJUVIPUKABJUWMUVIYTUWMYBTUWHMLZENZYBYEGMLZENZOLYBUWNUW
      POLZENUVIYTUWJUWOUWLUWQOYTYBUWHTEUUDUVLYTUVMSZUUFYEYGUUJUUKVJZVPYTYBYEGEU
      UDAUVOYSUVPXJZUUJXQXKYTYBUWNUWPEUUDUUFUVLUWHRQUWNRQUVMUWTTUWHWPWOUUFYEGUU
      JUVQVJXCYTYBUWRUVHEUUFUWRYEUVBMLZUWPOLUVHUUFUWNUXBUWPOUUFTYEYGUVLUUFUVMSU
      UJUUKVQWEUUFYEUVBGUUJUVNUVQVOXLWDXMWFABJUWJUWLRYTUVLUWIRQUWJRQUVMYTYBUWHE
      UUDUWTVKZTUWIWPWOYTUWKGYTYBYEEUUDUUJVKZUXAVJABJTUWIRUWSUXCAUVAUVLBJTPUKQW
      IUVLAUVMSBJTWJWOBJUWIPUKQABEXNSXOABJUWKGRUXDUXABJUWKPUKQABEXRSAUVAUVOBJGP
      UKQWIUVPBJGWJWOXOXPXSXPXSXOXS $.
  $}

  ${
    $d k m n x y z $.
    $( TODO - see if alternative derivation (10.2.9) using vmadivsum is
       simpler $)
    $( Asymptotic formula for
       ` sum_ n <_ x , ( mmu ( n ) / n ) log ^ 2 ( x / n ) `
       ` = 2 log x + O(1) ` .  Equation 10.2.8 of [Shapiro], p. 407.
       (Contributed by Mario Carneiro, 19-May-2016.) $)
    mulog2sum $p |- ( x e. RR+ |-> ( sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( ( mmu ` n ) / n ) x. ( ( log ` ( x / n ) ) ^ 2 ) )
          - ( 2 x. ( log ` x ) ) ) ) e. O(1) $=
      ( vy vm vz crp c1 cv cfl cfv cfz co clog cdiv csu c2 cmin crli wcel wbr
      cexp cmpt cdm wex cmu cmul co1 cr wf ceu cle w3a cabs wi logdivsum simp2i
      eqid eldmg ibi id mulog2sumlem3 exlimiv mp2b ) CFGCHZIJKLDHZMJVENLDOVDMJP
      UALPNLQLUBZRUCZSZVFEHZRTZEUDZAFGAHZIJKLBHZUEJVMNLVLVMNLMJPUALUFLBOPVLMJUF
      LQLUBUGSZFUHVFUIVHVFGRTGFSUJGUKTULGVFJGQLUMJGMJGNLUKTUNCGDVFGVFUQZUOUPVHV
      KEVFRVGURUSVJVNEVJACDBVFVIVOVJUTVAVBVC $.

    $( The sum ` sum_ n <_ x , Lam ( n ) log ( x / n ) / n ` is asymptotic to
       ` log ^ 2 ( x ) / 2 + O ( log x ) ` .  Exercise 9.1.7 of [Shapiro],
       p. 336.  (Contributed by Mario Carneiro, 30-May-2016.) $)
    vmalogdivsum2 $p |- ( x e. ( 1 (,) +oo ) |->
      ( ( sum_ n e. ( 1 ... ( |_ ` x ) )
          ( ( ( Lam ` n ) / n ) x. ( log ` ( x / n ) ) ) / ( log ` x ) )
        - ( ( log ` x ) / 2 ) ) ) e. O(1) $=
      ( vm c1 co cfv cdiv cmul csu cmin cmpt co1 wcel wtru wa recnd crp wbr cle
      cr vk vy cpnf cioo cv cfl cfz cvma clog c2 cexp fzfid elfznn adantl nnrpd
      relogcld nndivred fsumrecl elioore 1rp a1i 1red clt eliooord simpld ltled
      rpgecld resqcld rehalfcld rplogcld rpne0d divsubdird resubcld divrecd cc0
      2cnd wne divdiv32d sqvald oveq1d divcan3d eqtrd oveq2d 3eqtr3rd mpteq2dva
      cn 2ne0 rprecred ex ssrdv crli cdm wf ceu cabs wi eqid logdivsum rlimdmo1
      simp2i mp1i o1res2 divlogrlim rlimo1 o1mul2 eqeltrd divcld halfcld subcld
      w3a vmacl adantr rpdivcld remulcld rpcnd nnncan2d nnmulcld fsumsub nnne0d
      nncnd nnrecred subdid cc divdiv1d eqtr3d sumeq2dv reccld fsummulc2 eqtr4d
      syl cdvds crab cfn wss syl2anc rerpdivcld o1dif mpbird divge0d mpbid wceq
      vmasum dvdsssfz1 ssrab2 simprr sseldi anassrs fsumdivc oveq2 dvdsflsumcom
      ssfi ad2antrl 3eqtr4rd 3eqtr2d clo1 ioossre ax-1cn mp2an dividd vmadivsum
      o1const o1lo1d vmage0 caddc rpred mulid2d wb fznnfl simplbda harmonicubnd
      eqbrtrd lesubadd2d lemul2ad mulid1d breqtrd fsumle lediv1dd adantrr lo1le
      lemuldivd 0red harmoniclbnd subge0d mulge0d fsumge0 o1lo12 trud ) ADUCUDE
      ZDAUEZUFFZUGEZBUEZUHFZUWLGEZUWIUWLGEZUIFZHEZBIZUWIUIFZGEZUWSUJGEZJEZKLMZN
      AUWHUWKUAUEZUIFZUXDGEZUAIZUWSGEZUXAJEZKZLMUXCNUXJAUWHUXGUWSUJUKEZUJGEZJEZ
      DUWSGEZHEZKLNAUWHUXIUXONUWIUWHMZOZUXMUWSGEUXHUXLUWSGEZJEUXOUXIUXQUXGUXLUW
      SUXQUXGUXQUWKUXFUAUXQDUWJULZUXQUXDUWKMZOZUXEUXDUYAUXDUYAUXDUXTUXDWFMZUXQU
      XDUWJUMZUNZUOUPUYDUQURZPZUXQUXLUXQUXKUXQUWSUXQUWIUXQUWIDUXPUWITMZNUWIDUCU
      SUNZDQMZUXQUTVAZUXQDUWIUXQVBUYHUXQDUWIVCRZUWIUCVCRZUXPUYKUYLONUWIDUCVDUNV
      EZVFVGZUPZVHZVIZPUXQUWSUYOPZUXQUWSUXQUWIUYHUYMVJZVKZVLUXQUXMUWSUXQUXMUXQU
      XGUXLUYEUYQVMZPUYRUYTVNUXQUXRUXAUXHJUXQUXRUXKUWSGEZUJGEUXAUXQUXKUJUWSUXQU
      XKUYPPUXQVPUYRUJVOVQUXQWGVAUYTVRUXQVUBUWSUJGUXQVUBUWSUWSHEZUWSGEUWSUXQUXK
      VUCUWSGUXQUWSUYRVSVTUXQUWSUWSUYRUYRUYTWAWBVTWBWCWDWENAUWHUXMUXNTVUAUXQUWS
      UYSWHZNAUWHQUXMNAUWHQNUXPUWIQMZUYNWIWJZAQUXMKZWKWLMZVUGLMNQTVUGWMVUHVUGDW
      KRUYIWNDSRXJDVUGFDJEWOFDUIFDGESRWPADUAVUGDVUGWQWRWTVUGWSXAXBAUWHUXNKZVOWK
      RVUILMNAXCVOVUIXDXAZXEXFNAUWHUXIUXBUXQUXHUXAUXQUXGUWSUYFUYRUYTXGZUXQUWSUY
      RXHZXIUXQUWTUXAUXQUWRUWSUXQUWRUXQUWKUWQBUXSUXQUWLUWKMZOZUWNUWPVUNUWMUWLVU
      NUWLWFMZUWMTMZVUMVUOUXQUWLUWJUMUNZUWLXKZYJZVUQUQZVUNUWOVUNUWIUWLUXQVUEVUM
      UYNXLVUNUWLVUQUOZXMZUPZXNZURPZUXQUWSUYSXOZUYTXGZUXQUWSVVFXHXINAUWHUXIUXBJ
      EZKAUWHUWKUWNDUWOUFFZUGEZDCUEZGEZCIZUWPJEZHEZBIZUWSGEZKZLNAUWHVVHVVQUXQVV
      HUXHUWTJEUXGUWRJEZUWSGEVVQUXQUXHUWTUXAVUKVVGVULXPUXQUXGUWRUWSUYFVVEUYRUYT
      VLUXQVVSVVPUWSGUXQUWKVVJUWMUWLVVKHEZGEZCIZUWQJEZBIUWKVWBBIZUWRJEVVPVVSUXQ
      UWKVWBUWQBUXSVUNVWBVUNVVJVWACVUNDVVIULZVUNVVKVVJMZOZUWMVVTVUNVUPVWFVUSXLV
      WGUWLVVKVUNVUOVWFVUQXLVWFVVKWFMVUNVVKVVIUMUNZXQUQURPVUNUWQVVDPXRUXQUWKVVO
      VWCBVUNVVOUWNVVMHEZUWQJEVWCVUNUWNVVMUWPVUNUWMUWLVUNUWMVUSPZVUNUWLVUQXTZVU
      NUWLVUQXSZXGZVUNVVMVUNVVJVVLCVWEVWGVVKVWHYAURZPVUNUWPVVCPYBVUNVWBVWIUWQJV
      UNVWBVVJUWNVVLHEZCIVWIVUNVVJVWAVWOCVWGUWNVVKGEVWAVWOVWGUWMUWLVVKVUNUWMYCM
      ZVWFVWJXLZVUNUWLYCMVWFVWKXLZVWGVVKVWHXTZVUNUWLVOVQVWFVWLXLZVWGVVKVWHXSZYD
      VWGUWNVVKVWGUWMUWLVWQVWRVWTXGVWSVXAVNYEYFVUNVVJVVLUWNCVWEVWMVWGVVKVWSVXAY
      GYHYIVTYIYFUXQUXGVWDUWRJUXQUXGUWKUBUEUXDYKRZUBWFYLZUWMUXDGEZBIZUAIVWDUXQU
      WKUXFVXEUAUYAVXCUWMBIZUXDGEUXFVXEUYAVXFUXEUXDGUYAUYBVXFUXEUUAUYDUBUXDBUUB
      YJVTUYAVXCUWMUXDBUYADUXDUGEZYMMVXCVXGYNZVXCYMMUYADUXDULUYAUYBVXHUYDUXDUBU
      UCYJVXGVXCUUKYOUYAUXDUYDXTUXQUXTUWLVXCMZVWPUXQUXTVXIOOZUWMVXJVUOVUPVXJVXC
      WFUWLVXBUBWFUUDUXQUXTVXIUUEUUFVURYJPZUUGUYAUXDUYDXSUUHYEYFUXQUBUWIVXDVWAC
      UABUXDVVTUWMGUUIUYHVXJUWMUXDVXKVXJUXDUXTUYBUXQVXIUYCUULZXTVXJUXDVXLXSXGUU
      JWBVTUUMVTUUNWENVVRLMVVRUUOMNAUWHUWKUWNBIZUWSGEZVVQDTNVBNAUWHVXNUXQVXMUWS
      UXQUWKUWNBUXSVUTURZUYSYPZNAUWHVXNKLMAUWHDKLMZVXQNUWHTYNDYCMVXQDUCUUPUUQAU
      WHDUVAUURVANAUWHVXNDUXQVXNVXPPUXQDUYJXONAUWHVXNDJEZKAUWHVXMUWSJEZUXNHEZKL
      NAUWHVXRVXTUXQVXSUWSGEVXNUWSUWSGEZJEVXTVXRUXQVXMUWSUWSUXQVXMVXOPZUYRUYRUY
      TVLUXQVXSUWSUXQVXMUWSVYBUYRXIUYRUYTVNUXQVYADVXNJUXQUWSUYRUYTUUSWCWDWENAUW
      HVXSUXNTUXQVXMUWSVXOUYOVMVUDNAUWHQVXSVUFAQVXSKLMNABUUTVAXBVUJXEXFYQYRUVBV
      XPUXQVVPUWSUXQUWKVVOBUXSVUNUWNVVNVUTVUNVVMUWPVWNVVCVMZXNZURZUYSYPZNUXPVVQ
      VXNSRDUWISRUXQVVPVXMUWSVYEVXOUYSUXQUWKVVOUWNBUXSVYDVUTVUNVVOUWNDHEUWNSVUN
      VVNDUWNVYCVUNVBZVUTVUNUWMUWLVUSVVAVUNVUOVOUWMSRVUQUWLUVCYJYSZVUNVVNDSRVVM
      UWPDUVDESRZVUNUWOTMDUWOSRZVYIVUNUWOVVBUVEVUNDUWLHEZUWISRVYJVUNVYKUWLUWISV
      UNUWLVWKUVFUXQVUMVUOUWLUWISRZUXQUYGVUMVUOVYLOUVGUYHUWLUWIUVHYJUVIUVKVUNDU
      WIUWLVYGUXQUYGVUMUYHXLVVAUVTYTUWOCUVJYOVUNVVMUWPDVWNVVCVYGUVLYRUVMVUNUWNV
      WMUVNUVOUVPUVQUVRUVSNAUWHVVQVOVYFNUWAUXQVVPUWSVYEUYSUXQUWKVVOBUXSVYDVUNUW
      NVVNVUTVYCVYHVUNVOVVNSRUWPVVMSRZVUNUWOQMVYMVVBUWOCUWBYJVUNVVMUWPVWNVVCUWC
      YRUWDUWEYSUWFYRXFYQYTUWG $.

    $( The sum ` sum_ n <_ x , Lam ( n ) log n / n ` is asymptotic to
       ` log ^ 2 ( x ) / 2 + O ( log x ) ` .  Exercise 9.1.7 of [Shapiro],
       p. 336.  (Contributed by Mario Carneiro, 30-May-2016.) $)
    vmalogdivsum $p |- ( x e. ( 1 (,) +oo ) |->
      ( ( sum_ n e. ( 1 ... ( |_ ` x ) )
          ( ( ( Lam ` n ) / n ) x. ( log ` n ) ) / ( log ` x ) )
        - ( ( log ` x ) / 2 ) ) ) e. O(1) $=
      ( c1 cpnf co cfv cdiv clog cmul csu cmin cmpt co1 wcel wtru crp wa adantl
      recnd oveq1d cioo cv cfl cfz cvma c2 cr elioore 1rp a1i 1red clt eliooord
      wbr simpld ltled rpgecld ex ssrdv vmadivsum o1res2 fzfid elfznn vmacl syl
      cn nndivred fsumcl relogcld subcld remulcld fsumrecl rerpdivcld rehalfcld
      rplogcld resubcld nnncan2d subsub4d 2halvesd oveq2d sub32d adantr fsumsub
      nnrpd caddc eqtrd relogdivd subdid sumeq2dv nncnd nnne0d divcld fsummulc1
      3eqtr4d mulcld rpne0d divsubdird divcan4d 3eqtrd eqtr4d 3eqtr3d mpteq2dva
      cc vmalogdivsum2 syl6eqel o1dif mpbid trud ) ACDUAEZCAUBZUCFZUDEZBUBZUEFZ
      XMGEZXMHFZIEZBJZXJHFZGEZXSUFGEZKEZLMNZOAXIXLXOBJZXSKEZLMNYCOAXIPYEOAXIPOX
      JXINZXJPNZOYFQZXJCYFXJUGNOXJCDUHRZCPNYHUIUJYHCXJYHUKYIYHCXJULUNZXJDULUNZY
      FYJYKQOXJCDUMRUOZUPUQZURUSAPYELMNOABUTUJVAOAXIYEYBYHYDXSYHXLXOBYHCXKVBZYH
      XMXLNZQZXOYPXNXMYPXMVFNZXNUGNYOYQYHXMXKVCRZXMVDVEZYRVGZSZVHZYHXSYHXJYMVIZ
      SZVJYHYBYHXTYAYHXRXSYHXLXQBYNYPXOXPYTYPXMYPXMYRWDZVIZVKZVLZYHXJYIYLVOZVMZ
      YHXSUUCVNZVPSOAXIYEYBKEZLAXIXLXOXJXMGEHFZIEZBJZXSGEZYAKEZLMOAXIUULUUQYHYD
      YAKEZYAKEZYBKEUURXTKEZUULUUQYHUURXTYAYHYDYAUUBYHYAUUKSZVJYHXTUUJSZUVAVQYH
      UUSYEYBKYHUUSYDYAYAWEEZKEYEYHYDYAYAUUBUVAUVAVRYHUVCXSYDKYHXSUUDVSVTWFTYHU
      UTYDXTKEZYAKEUUQYHYDYAXTUUBUVAUVBWAYHUUPUVDYAKYHUUPYDXSIEZXRKEZXSGEUVEXSG
      EZXTKEUVDYHUUOUVFXSGYHXLXOXSIEZXQKEZBJXLUVHBJZXRKEUUOUVFYHXLUVHXQBYNYPUVH
      YPXOXSYTYPXJYHYGYOYMWBZVIVKSYPXQUUGSWCYHXLUUNUVIBYPUUNXOXSXPKEZIEUVIYPUUM
      UVLXOIYPXJXMUVKUUEWGVTYPXOXSXPUUAYHXSXCNYOUUDWBYPXPUUFSWHWFWIYHUVEUVJXRKY
      HXLXOXSBYNUUDYPXNXMYPXNYSSYPXMYRWJYPXMYRWKWLWMTWNTYHUVEXRXSYHYDXSUUBUUDWO
      YHXRUUHSUUDYHXSUUIWPZWQYHUVGYDXTKYHYDXSUUBUUDUVMWRTWSTWTXAXBABXDXEXFXGXH
      $.
  $}

  ${
    $d i m n x y A $.  $d m n x ph $.
    2vmadivsum.1 $e |- ( ph -> A e. RR+ ) $.
    2vmadivsum.2 $e |- ( ph -> A. y e. ( 1 [,) +oo ) ( abs `
      ( sum_ i e. ( 1 ... ( |_ ` y ) ) ( ( Lam ` i ) / i ) -
        ( log ` y ) ) ) <_ A ) $.
    $( Lemma for ~ 2vmadivsum .  (Contributed by Mario Carneiro,
       30-May-2016.) $)
    2vmadivsumlem $p |- ( ph -> ( x e. ( 1 (,) +oo ) |->
      ( ( sum_ n e. ( 1 ... ( |_ ` x ) )
          ( ( ( Lam ` n ) / n ) x. sum_ m e. ( 1 ... ( |_ ` ( x / n ) ) )
              ( ( Lam ` m ) / m ) ) / ( log ` x ) )
        - ( ( log ` x ) / 2 ) ) ) e. O(1) ) $=
      ( c1 co cfv cdiv cmul cmin cmpt wcel wbr recnd cle cpnf cioo cfl cfz cvma
      cv csu clog c2 co1 vmalogdivsum2 a1i wa fzfid cn cr elfznn vmacl nndivred
      adantl syl fsumrecl remulcld elioore clt eliooord rplogcld rerpdivcld crp
      simpld 1rp 1red ltled rpgecld relogcld rehalfcld resubcld adantr rpdivcld
      nnrpd rpne0d divsubdird subdid sumeq2dv fsumsub oveq1d nnncan2d mpteq2dva
      eqtrd 3eqtr4d rpred cc ioossre 1cnd o1const sylancr subcld divrecd dividd
      wss oveq2d 3eqtr3d ssrdv vmadivsum o1res2 cc0 crli divlogrlim rlimo1 mp1i
      ex o1mul2 eqeltrrd o1dif mpbird divcld cabs abscld fsumabs absmuld vmage0
      divge0d absidd cico wral nncnd mulid2d wb fznnfl simplbda lemuldivd mpbid
      eqbrtrd 1re elicopnf ax-mp wceq fveq2 oveq12d rpge0d sylanbrc ad2antrr id
      cbvsumv sumeq1d syl5eq fveq2d breq1d rspcv sylc lemul2ad fsumle fsummulc1
      breqtrrd letrd absdivd fsumge0 mulge0d div23d eqtr4d 3brtr4d adantrr o1le
      lediv1dd ) ABJUAUBKZJBUFZUCLZUDKZGUFZUELZUVIMKZJUVFUVIMKZUCLZUDKZFUFZUELZ
      UVOMKZFUGZNKZGUGZUVFUHLZMKZUWAUIMKZOKZPUJQBUVEUVHUVKUVLUHLZNKZGUGZUWAMKZU
      WCOKZPUJQZUWJABGUKULABUVEUWDUWIAUVFUVEQZUMZUWDUWLUWBUWCUWLUVTUWAUWLUVHUVS
      GUWLJUVGUNZUWLUVIUVHQZUMZUVKUVRUWOUVJUVIUWOUVIUOQZUVJUPQUWNUWPUWLUVIUVGUQ
      UTZUVIURVAZUWQUSZUWOUVNUVQFUWOJUVMUNUWOUVOUVNQZUMZUVPUVOUXAUVOUOQZUVPUPQU
      WTUXBUWOUVOUVMUQUTZUVOURVAUXCUSVBZVCZVBZUWLUVFUWKUVFUPQZAUVFJUAVDUTZUWLJU
      VFVERZUVFUAVERZUWKUXIUXJUMAUVFJUAVFUTVJZVGZVHZUWLUWAUWLUVFUWLUVFJUXHJVIQU
      WLVKULUWLJUVFUWLVLZUXHUXKVMVNZVOZVPZVQSUWLUWIUWLUWHUWCUWLUWGUWAUWLUVHUWFG
      UWMUWOUVKUWEUWSUWOUVLUWOUVFUVIUWLUVFVIQZUWNUXOVRUWOUVIUWQVTZVSZVOZVCZVBZU
      XLVHZUXQVQSABUVEUVHUVKUVRUWEOKZNKZGUGZUWAMKZPBUVEUWDUWIOKZPUJABUVEUYHUYIU
      WLUVTUWGOKZUWAMKUWBUWHOKUYHUYIUWLUVTUWGUWAUWLUVTUXFSUWLUWGUYCSUWLUWAUXPSZ
      UWLUWAUXLWAZWBUWLUYGUYJUWAMUWLUYGUVHUVSUWFOKZGUGUYJUWLUVHUYFUYMGUWOUVKUVR
      UWEUWOUVKUWSSZUWOUVRUXDSUWOUWEUYASWCWDUWLUVHUVSUWFGUWMUWOUVSUXESUWOUWFUYB
      SWEWIWFUWLUWBUWHUWCUWLUWBUXMSUWLUWHUYDSUWLUWCUXQSWGWJWHABUVEUVHUVKGUGZUWA
      MKZDNKZUYHJUPAVLABUVEUYPDUPUWLUYOUWAUWLUVHUVKGUWMUWSVBZUXLVHZADUPQZUWKADH
      WKZVRZABUVEUYPPUJQBUVEJPUJQZAUVEUPWTZJWLQVUCJUAWMZAWNBUVEJWOWPABUVEUYPJUW
      LUYPUYSSUWLWNABUVEUYOUWAOKZJUWAMKZNKZPBUVEUYPJOKZPUJABUVEVUHVUIUWLVUFUWAM
      KUYPUWAUWAMKZOKVUHVUIUWLUYOUWAUWAUWLUYOUYRSZUYKUYKUYLWBUWLVUFUWAUWLUYOUWA
      VUKUYKWQUYKUYLWRUWLVUJJUYPOUWLUWAUYKUYLWSXAXBWHABUVEVUFVUGUPUWLUYOUWAUYRU
      XPVQUWLJUWAUXNUXLVHABUVEVIVUFABUVEVIAUWKUXRUXOXKXCBVIVUFPUJQABGXDULXEBUVE
      VUGPZXFXGRVULUJQABXHXFVULXIXJXLXMXNXOAVUDDWLQZBUVEDPUJQVUEADVUASZBUVEDWOW
      PXLUWLUYPDUYSVUBVCZUWLUYGUWAUWLUYGUWLUVHUYFGUWMUWOUVKUYEUWSUWOUVRUWEUXDUY
      AVQZVCZVBSZUYKUYLXPAUWKUYHXQLZUYQXQLZTRJUVFTRUWLUYGXQLZUWAMKZUYODNKZUWAMK
      ZVUSVUTTUWLVVAVVCUWAUWLUYGVURXRZUWLUYODUYRVUBVCZUXLUWLVVAUVHUYFXQLZGUGZVV
      CVVEUWLUVHVVGGUWMUWOUYFUWOUYFVUQSZXRZVBVVFUWLUVHUYFGUWMVVIXSUWLVVHUVHUVKD
      NKZGUGVVCTUWLUVHVVGVVKGUWMVVJUWOUVKDUWSUWLUYTUWNVUBVRZVCUWOVVGUVKUYEXQLZN
      KZVVKTUWOVVGUVKXQLZVVMNKVVNUWOUVKUYEUYNUWOUYEVUPSZXTUWOVVOUVKVVMNUWOUVKUW
      SUWOUVJUVIUWRUXSUWOUWPXFUVJTRUWQUVIYAVAYBZYCWFWIUWOVVMDUVKUWOUYEVVPXRVVLU
      WSVVQUWOUVLJUAYDKZQZJCUFZUCLZUDKZEUFZUELZVWCMKZEUGZVVTUHLZOKZXQLZDTRZCVVR
      YEZVVMDTRZUWOUVLUPQZJUVLTRZVVSUWOUVLUXTWKUWOJUVINKZUVFTRVWNUWOVWOUVIUVFTU
      WOUVIUWOUVIUWQYFYGUWLUWNUWPUVIUVFTRZUWLUXGUWNUWPVWPUMYHUXHUVIUVFYIVAYJYMU
      WOJUVFUVIUWOVLUWLUXGUWNUXHVRUXSYKYLJUPQVVSVWMVWNUMYHYNJUVLYOYPUUAAVWKUWKU
      WNIUUBVWJVWLCUVLVVRVVTUVLYQZVWIVVMDTVWQVWHUYEXQVWQVWFUVRVWGUWEOVWQVWFVWBU
      VQFUGUVRVWBVWEUVQEFVWCUVOYQZVWDUVPVWCUVOMVWCUVOUEYRVWRUUCYSUUDVWQVWBUVNUV
      QFVWQVWAUVMJUDVVTUVLUCYRXAUUEUUFVVTUVLUHYRYSUUGUUHUUIUUJUUKYMUULUWLUVHUVK
      DGUWMAVUMUWKVUNVRZUYNUUMUUNUUOUVDUWLVUSVVAUWAXQLZMKVVBUWLUYGUWAVURUYKUYLU
      UPUWLVWTUWAVVAMUWLUWAUXPUWLUWAUXLYTYCXAWIUWLVUTUYQVVDUWLUYQVUOUWLUYPDUYSV
      UBUWLUYOUWAUYRUXLUWLUVHUVKGUWMUWSVVQUUQYBUWLDADVIQUWKHVRYTUURYCUWLUYODUWA
      VUKVWSUYKUYLUUSUUTUVAUVBUVCXMXNXO $.
  $}

  ${
    $d c d i j k m n u x y N $.
    $( The sum ` sum_ m n <_ x , Lam ( m ) Lam ( n ) / m n ` is asymptotic to
       ` log ^ 2 ( x ) / 2 + O ( log x ) ` .  (Contributed by Mario Carneiro,
       30-May-2016.) $)
    2vmadivsum $p |- ( x e. ( 1 (,) +oo ) |->
      ( ( sum_ n e. ( 1 ... ( |_ ` x ) )
          ( ( ( Lam ` n ) / n ) x. sum_ m e. ( 1 ... ( |_ ` ( x / n ) ) )
              ( ( Lam ` m ) / m ) ) / ( log ` x ) )
        - ( ( log ` x ) / 2 ) ) ) e. O(1) $=
      ( vy vi vc c1 cv cfl cfv cfz co cvma cdiv csu clog cmin cpnf crp wcel cle
      cabs wbr cico wral wrex cioo cmul c2 cmpt co1 vmadivsumb wa 2vmadivsumlem
      simpl simpr rexlimiva ax-mp ) GDHZIJKLEHZMJUTNLEOUSPJQLUBJFHZUAUCDGRUDLUE
      ZFSUFAGRUGLGAHZIJKLCHZMJVDNLGVCVDNLIJKLBHZMJVENLBOUHLCOVCPJZNLVFUINLQLUJU
      KTZDEFULVBVGFSVASTZVBUMADVAEBCVHVBUOVHVBUPUNUQUR $.

    $( A formula for ` log ^ 2 ( N ) ` in terms of the primes.  Equation 10.4.6
       of [Shapiro], p. 418.  (Contributed by Mario Carneiro, 13-May-2016.) $)
    logsqvma $p |- ( N e. NN -> sum_ d e. { x e. NN | x || N }
      ( sum_ u e. { x e. NN | x || d } ( ( Lam ` u ) x. ( Lam ` ( d / u ) ) ) +
        ( ( Lam ` d ) x. ( log ` d ) ) ) = ( ( log ` N ) ^ 2 ) ) $=
      ( vk cn wcel cdvds cvma cfv co cmul csu clog cmin c1 cfn wa syl recnd wbr
      cv crab cdiv caddc c2 cexp cfz fzfid dvdsssfz1 ssfi syl2anc elrabi adantl
      wss cc cr ad2antll vmacl breq1 elrab wb ad2antrl nndivdvds mpbid remulcld
      simprbi anassrs fsumcl nnrpd relogcld fsumadd id wceq oveq1 fveq2d oveq2d
      fsumdvdscom ssrab2 simpr sseldi nncnd adantr cc0 nnne0d divcan3d sumeq2dv
      wne dvdsdivcl vmasum crp nnrp relogdivd eqeltrd fsummulc2 relogcl 3eqtr3d
      3eqtrd subdid mulcld fsumsub sqvald oveq1d 3eqtr2rd fveq2 oveq12d cbvsumv
      fsummulc1 a1i eqtrd sqcld npcand ) CFGZAUBZCHUAZAFUCZXNDUBZHUAZAFUCZBUBZI
      JZXQXTUDKZIJZLKZBMZXQIJZXQNJZLKZUEKDMXPYEDMZXPYHDMZUEKCNJZUFUGKZYJOKZYJUE
      KYLXMXPYEYHDXMPCUHKZQGXPYNUOXPQGXMPCUICAUJYNXPUKULZXMXQXPGZRZXSYDBYQPXQUH
      KZQGXSYRUOZXSQGYQPXQUIYQXQFGZYSYPYTXMXOAXQFUMZUNZXQAUJSYRXSUKULXMYPXTXSGZ
      YDUPGXMYPUUCRRZYDUUDYAYCUUDXTFGZYAUQGZUUCUUEXMYPXRAXTFUMURZXTUSZSUUDYBFGZ
      YCUQGUUDXTXQHUAZUUIUUCUUJXMYPUUCUUEUUJXRUUJAXTFXNXTXQHUTVAVGURUUDYTUUEUUJ
      UUIVBYPYTXMUUCUUAVCUUGXQXTVDULVEYBUSSVFTZVHVIYQYHYQYFYGYQYTYFUQGUUBXQUSSY
      QXQYQXQUUBVJVKVFTZVLXMYIYMYJUEXMYIXPXNCXTUDKZHUAZAFUCZYAXTEUBZLKZXTUDKZIJ
      ZLKZEMZBMXPYAYKLKZYAXTNJZLKZOKZBMZYMXMAYDUUTDBECXMVMXQUUQVNZYCUUSYALUVGYB
      UURIXQUUQXTUDVOVPVQUUKVRXMXPUVAUVEBXMXTXPGZRZYAUUOUUSEMZLKYAYKUVCOKZLKUVA
      UVEUVIUVJUVKYALUVIUVJUUOUUPIJZEMZUUMNJZUVKUVIUUOUUSUVLEUVIUUPUUOGZRZUURUU
      PIUVPUUPXTUVPUUPUVPUUOFUUPUUNAFVSUVIUVOVTWAZWBUVIXTUPGUVOUVIXTUVIXPFXTXOA
      FVSZXMUVHVTWAZWBWCUVIXTWDWHUVOUVIXTUVSWEWCWFVPZWGUVIUUMFGZUVMUVNVNUVIXPFU
      UMUVRAXTCWIWAZAUUMEWJSUVICXTXMCWKGZUVHCWLZWCZUVIXTUVSVJZWMWRVQUVIUUOUUSYA
      EUVIPUUMUHKZQGUUOUWGUOZUUOQGUVIPUUMUIUVIUWAUWHUWBUUMAUJSUWGUUOUKULUVIYAUV
      IUUEUUFUVSUUHSTZUVPUUSUVLUPUVTUVPUVLUVPUUPFGUVLUQGUVQUUPUSSTWNWOUVIYAYKUV
      CUWIUVIUWCYKUPGZUWEUWCYKCWPTZSZUVIUVCUVIXTUWFVKTZWSWQWGXMUVFXPUVBBMZXPUVD
      BMZOKYMXMXPUVBUVDBYOUVIYAYKUWIUWLWTUVIYAUVCUWIUWMWTXAXMUWNYLUWOYJOXMYLYKY
      KLKXPYABMZYKLKUWNXMYKXMUWCUWJUWDUWKSZXBXMUWPYKYKLACBWJXCXMXPYAYKBYOUWQUWI
      XHXDUWOYJVNXMXPUVDYHBDXTXQVNYAYFUVCYGLXTXQIXEXTXQNXEXFXGXIXFXJWRXCXMYLYJX
      MYKUWQXKXMXPYHDYOUULVIXLWR $.

    $( The M&ouml;bius inverse of ~ logsqvma .  Equation 10.4.8 of [Shapiro],
       p. 418.  (Contributed by Mario Carneiro, 13-May-2016.) $)
    logsqvma2 $p |- ( N e. NN -> sum_ d e. { x e. NN | x || N }
        ( ( mmu ` d ) x. ( ( log ` ( N / d ) ) ^ 2 ) ) =
      ( sum_ d e. { x e. NN | x || N } ( ( Lam ` d ) x. ( Lam ` ( N / d ) ) ) +
        ( ( Lam ` N ) x. ( log ` N ) ) ) ) $=
      ( vj vm cn wcel cv cdvds cvma cfv cdiv co cmul csu clog caddc cexp wceq
      c2 vk vi vn wbr crab cmpt cmu cc cfz cfn wss fzfid dvdsssfz1 ssfi syl2anc
      c1 wa ssrab2 simpr sseldi vmacl dvdsdivcl remulcld fsumrecl nnrp relogcld
      cr syl readdcld recnd adantl eqid fmptd breq2 rabbidv oveq1 fveq2d oveq2d
      adantr sumeq12dv fveq2 oveq12d fvmpt3i sumeq2dv logsqvma eqtr2d mpteq2dva
      ovex muinv fveq1d oveq2 oveq1d cbvsumv syl5eq mpteq2ia sumex 3eqtr3rd ) B
      FGZBUAFAHZUAHZIUDZAFUEZCHZJKZWTXCLMZJKZNMZCOZWTJKZWTPKZNMZQMZUFZKBUBFWSUB
      HZIUDZAFUEZDHZUGKZXNXQLMZUCFUCHZPKZTRMZUFZKZNMZDOZUFZKWSBIUDZAFUEZXDBXCLM
      ZJKZNMZCOZBJKZBPKZNMZQMZYIXCUGKZYJPKZTRMZNMZCOZWRBXMYGWRADEUBUCXMYCWRUAFX
      LUHXMWTFGZXLUHGWRUUCXLUUCXHXKUUCXBXGCUUCUPWTUIMZUJGXBUUDUKXBUJGUUCUPWTULW
      TAUMUUDXBUNUOUUCXCXBGZUQZXDXFUUFXCFGXDVGGUUFXBFXCXAAFURZUUCUUEUSUTXCVAVHU
      UFXEFGXFVGGUUFXBFXEUUGAXCWTVBUTXEVAVHVCVDUUCXIXJWTVAUUCWTWTVEVFVCVIVJVKXM
      VLZVMWRUCFYBWSXTIUDZAFUEZEHZXMKZEOZWRXTFGZUQZUUMUUJWSUUKIUDZAFUEZXDUUKXCL
      MZJKZNMZCOZUUKJKZUUKPKZNMZQMZEOZYBUUOUUJUULUVEEUUOUUKUUJGZUQZUUKFGUULUVES
      UVHUUJFUUKUUIAFURUUOUVGUSUTUAUUKXLUVEFXMWTUUKSZXHUVAXKUVDQUVIXBUUQXGUUTCU
      VIXAUUPAFWTUUKWSIVNVOUVIXGUUTSUUEUVIXFUUSXDNUVIXEUURJWTUUKXCLVPVQVRVSVTUV
      IXIUVBXJUVCNWTUUKJWAWTUUKPWAWBWBUUHXHXKQWHZWCVHWDUUNUVFYBSWRACXTEWEVKWFWG
      WIWJUABXLYQFXMWTBSZXHYMXKYPQUVKXBYIXGYLCUVKXAYHAFWTBWSIVNVOUVKXGYLSUUEUVK
      XFYKXDNUVKXEYJJWTBXCLVPVQVRVSVTUVKXIYNXJYONWTBJWAWTBPWAWBWBUUHUVJWCUBBXPX
      RXSPKZTRMZNMZDOZUUBFYGXNBSZUVOXPYRXNXCLMZPKZTRMZNMZCOUUBXPUVNUVTDCXQXCSZX
      RYRUVMUVSNXQXCUGWAUWAUVLUVRTRUWAXSUVQPXQXCXNLWKVQWLWBWMUVPXPYIUVTUUACUVPX
      OYHAFXNBWSIVNVOUVPUVTUUASXCXPGUVPUVSYTYRNUVPUVRYSTRUVPUVQYJPXNBXCLVPVQWLV
      RVSVTWNUBFYFUVOXNFGZXPYEUVNDUWBXQXPGUQZYDUVMXRNUWCXSFGYDUVMSUWCXPFXSXOAFU
      RAXQXNVBUTUCXSYBUVMFYCXTXSSYAUVLTRXTXSPWAWLYCVLYATRWHWCVHVRWDWOXPUVNDWPWC
      WQ $.
  $}

  ${
    $d n x y A $.
    $( Bound on the difference between ` sum_ n <_ A , log ^ 2 ( n ) ` and the
       equivalent integral.  (Contributed by Mario Carneiro, 20-May-2016.) $)
    log2sumbnd $p |- ( ( A e. RR+ /\ 1 <_ A ) ->
      ( abs ` ( sum_ n e. ( 1 ... ( |_ ` A ) ) ( ( log ` n ) ^ 2 ) -
          ( A x. ( ( ( log ` A ) ^ 2 ) + ( 2 - ( 2 x. ( log ` A ) ) ) ) ) ) )
        <_ ( ( ( log ` A ) ^ 2 ) + 2 ) ) $=
      ( vx crp wcel c1 cle wbr cfv co clog c2 cexp cmul cmin caddc cr cc0 cmpt
      cc vy wa cfl cfz cv csu cabs cneg fzfid cn elfznn adantl relogcld resqcld
      nnrpd fsumrecl rpre relogcl 2re remulcl sylancr resubcl readdcld remulcld
      adantr resubcld recnd abscld sylancl negcli subcl absnegi wceq 0le2 absid
      2cn mp2an eqtri oveq2i abs2dif syl5eqbrr oveq2d sumeq1d id oveq1d oveq12d
      fveq2 eqid ovex fvmpt3i 1rp cz 1z flid ax-mp syl6eq 0cn sq0id fsum1 2t0e0
      log1 subid1i addid2i mulid2i df-neg syl6eqr mp1i fveq2d cpnf ioorp eqcomi
      cioo nnuz a1i 1red cxr pnfxr 1re 1nn0 nn0addge1i 0red simpr nnrp cdv cdiv
      sylan2 cpr reelprrecn crn ctg dvmptres mulcl mpteq2ia mpteq2dva eqtrd w3a
      2cnd mpbid rpred letrd ccnfld ctopn recn dvmptid rpssre iooretop eqeltrri
      wss tgioo2 rerpdivcld cvv rpreccld rpcnd mulcld cnelprrecn sqcl cres wf1o
      dvrelog relogf1o f1of feqmptd fvres syl5reqr 2nn dvexp 2m1e1 syl5eq oveq1
      exp1 oveq2 dvmptco ovexd dvmptc dvmptcmul dvmptsub dvmptadd subdird rpne0
      wf wne divrecd negsubd syl5eqr 3eqtr4rd dvmptmul subsub2d eqtr4d divcan1d
      mulid2d npcand simp32 simp2l simp2r logled simp31 logleb logge0d ad2antrl
      wb le2sqd sqge0d simpl 1le1 rexrd pnfge syl dvfsum2 eqbrtrrd lesubaddd )
      ADEZFAGHZUBZFAUCIZUDJZBUEZKIZLMJZBUFZAAKIZLMJZLLUXTNJZOJZPJZNJZOJZUGIZLOJ
      ZUYAGHUYGUYALPJGHUXMUYHUYFLUHZOJZUGIZUYAUXMUYGQELQEZUYHQEUXMUYFUXMUYFUXMU
      XSUYEUXMUXOUXRBUXMFUXNUIUXMUXPUXOEZUBZUXQUYNUXPUYNUXPUYMUXPUJEUXMUXPUXNUK
      ULUOUMUNUPUXMAUYDUXKAQEUXLAUQVEZUXMUYAUYCUXMUXTUXKUXTQEZUXLAURVEZUNZUXMUY
      LUYBQEZUYCQEUSUXMUYLUYPUYSUSUYQLUXTUTVALUYBVBVAVCVDVFVGZVHZUSUYGLVBVIUXMU
      YJUXMUYFTEZUYITEZUYJTEUYTLVPVJZUYFUYIVKVIVHUYRUXMUYHUYGUYIUGIZOJZUYKGVUEL
      UYGOVUELUGIZLLVPVLUYLRLGHVUGLVMUSVNLVOVQVRVSUXMVUBVUCVUFUYKGHUYTVUDUYFUYI
      VTVIWAUXMACDFCUEZUCIZUDJZUXRBUFZVUHVUHKIZLMJZLLVULNJZOJZPJZNJZOJZSZIZFVUS
      IZOJZUGIUYKUYAGUXMVVBUYJUGUXMVUTUYFVVAUYIOUXKVUTUYFVMUXLCAVURUYFDVUSVUHAV
      MZVUKUXSVUQUYEOVVCVUJUXOUXRBVVCVUIUXNFUDVUHAUCWGWBWCVVCVUHAVUPUYDNVVCWDVV
      CVUMUYAVUOUYCPVVCVULUXTLMVUHAKWGZWEZVVCVUNUYBLOVVCVULUXTLNVVDWBWBWFWFWFVU
      SWHZVUKVUQOWIZWJVEFDEZVVAUYIVMUXMWKCFVURUYIDVUSVUHFVMZVURRLOJUYIVVIVUKRVU
      QLOVVIVUKFFUDJZUXRBUFZRVVIVUJVVJUXRBVVIVUIFFUDVVIVUIFUCIZFVUHFUCWGFWLEZVV
      LFVMWMFWNWOWPWBWCVVMRTEVVKRVMWMWQUXRRBFUXPFVMZUXQVVNUXQFKIZRUXPFKWGXAWPWR
      WSVQWPVVIVUQFLNJLVVIVUHFVUPLNVVIWDVVIVUPRLPJLVVIVUMRVUOLPVVIVULVVIVULVVOR
      VUHFKWGXAWPZWRVVIVUOLROJLVVIVUNRLOVVIVUNLRNJRVVIVULRLNVVPWBWTWPWBLVPXBWPW
      FLVPXCWPWFLVPXDWPWFLXEXFVVFVVGWJXGWFXHUXMCVUQVUMUXRFDRXIBUYAVUSFQFAUJRXIX
      LJZDXJXKXMVVMUXMWMXNUXMXOXIXPEUXMXQXNFFFPJGHUXMFFXRXSXTXNUXMYAUXMVUHDEZUB
      ZVUHVUPVVRVUHQEZUXMVUHUQULZVVSVUMVUOVVSVULVVSVUHUXMVVRYBZUMZUNZVVSUYLVUNQ
      EZVUOQEUSVVSUYLVULQEZVWEUSVWCLVULUTVAZLVUNVBVAZVCZVDVWDVUHUJEUXMVVRVUMQEV
      UHYCVWDYFUXMQCDVUQSYDJCDFVUPNJZVUNLOJZVUHYEJZVUHNJZPJZSCDVUMSUXMCVUHFVUPV
      WLQQQDQQTYGZEUXMYHXNZVVSVUHVWAVGZVVSXOUXMCVUHFQXLYIYJIZUUAUUBIZQQDVWPVVTV
      UHTEUXMVUHUUCULUXMVVTUBZXOUXMCQVWPUUDDQUUHUXMUUEXNZVWSVWSWHZUUIZVXBDVWREU
      XMVVQDVWRXJRXIUUFUUGXNZYKVVSVUPVWIVGZVVSVWKVUHVVSVWEUYLVWKQEVWGUSVUNLVBVI
      ZVWBUUJUXMQCDVUPSYDJCDVUNFVUHYEJZNJZRLVXGNJZOJZPJZSCDVWLSUXMCVUMVXHVUOVXJ
      QTUUKDVWPVVSVUMVWDVGZVVSVUNVXGVVSVUNVWGVGZVVSVXGVVSVUHVWBUULZUUMZUUNZUXMC
      UAVULVXGUAUEZLMJZLVXQNJZQTVUMVUNDTDTVWPTVWOEUXMUUOXNVVSVULVWCVGZVXNVXQTEZ
      VXRTEUXMVXQUUPULUXMVYAUBLTEZVYAVXSTEVPUXMVYAYBLVXQYLVAUXMCDVXGSQKDUUQZYDJ
      QCDVULSZYDJCUUSUXMVYCVYDQYDUXMVYCCDVUHVYCIZSVYDUXMCDQVYCDQVYCUURDQVYCUVTU
      XMUUTDQVYCUVAXGUVBCDVYEVULVUHDKUVCYMWPWBUVDZUXMTUATVXRSYDJZUATLVXQLFOJZMJ
      ZNJZSZUATVXSSLUJEVYGVYKVMUXMUVEUALUVFXGUATVYJVXSVYAVYIVXQLNVYAVYIVXQFMJVX
      QVYHFVXQMUVGVSVXQUVJUVHWBYMWPVXQVULLMUVIVXQVULLNUVKUVLVVSVUOVWHVGVVSRVXIO
      UVMUXMCLRVUNVXIQQTDVWPVVSYQZVVSYAUXMCLRQVWRVWSQQDVWPVWTYQVWTYAUXMCLQVWPUX
      MYQZUVNVXAVXCVXBVXDYKVXMVVSVYBVXGTEVXITEVPVXOLVXGYLVAZUXMCVULVXGLQDDVWPVX
      TVXNVYFVYMUVOUVPUVQUXMCDVXKVWLVVSVWKVXGNJVXHVXIOJZVWLVXKVVSVUNLVXGVXMVYLV
      XOUVRVVSVWKVUHVVSVWKVXFVGZVWQVVRVUHRUWAUXMVUHUVSULZUWBVVSVXKVXHVXIUHZPJVY
      OVYRVXJVXHPVXIXEVSVVSVXHVXIVXPVYNUWCUWDUWEYNYOUWFUXMCDVWNVUMVVSVWNVUMVWKO
      JZVWKPJVUMVVSVWJVYSVWMVWKPVVSVWJVUPVYSVVSVUPVXEUWJVVSVUMVUNLVXLVXMVYLUWGU
      WHVVSVWKVUHVYPVWQVYQUWIWFVVSVUMVWKVXLVYPUWKYOYNYOVUHUXPVMVULUXQLMVUHUXPKW
      GWEUXMVVRUXPDEZUBZFVUHGHZVUHUXPGHZUXPXIGHZYPZYPZVULUXQGHZVUMUXRGHWUFWUCWU
      GUXMWUAWUBWUCWUDUWLZWUFVUHUXPUXMVVRVYTWUEUWMZUXMVVRVYTWUEUWNZUWOYRWUFVULU
      XQWUFVUHWUIUMWUFUXPWUJUMWUFRVVOVULGXAWUFWUBVVOVULGHZUXMWUAWUBWUCWUDUWPZWU
      FVVHVVRWUBWUKUWTWKWUIFVUHUWQVAYRWAWUFUXPWUFUXPWUJYSZWUFFVUHUXPWUFXOWUFVUH
      WUIYSWUMWULWUHYTUWRUXAYRVVFUXMVVRWUBUBUBVULVVRVWFUXMWUBVUHURUWSUXBVVHUXMW
      KXNUXKUXLUXCFFGHUXMUXDXNUXKUXLYBUXMAXPEAXIGHUXMAUYOUXEAUXFUXGVVEUXHUXIYTU
      XMUYGLUYAVUAUYLUXMUSXNUYRUXJYR $.
  $}

  ${
    $d m n x $.
    selberglem1.t $e |- T = ( ( ( ( log ` ( x / n ) ) ^ 2 ) +
      ( 2 - ( 2 x. ( log ` ( x / n ) ) ) ) ) / n ) $.
    $( Lemma for ~ selberg .  Estimation of the asymptotic part of
       ~ selberglem3 .  (Contributed by Mario Carneiro, 20-May-2016.) $)
    selberglem1 $p |- ( x e. RR+ |->
      ( sum_ n e. ( 1 ... ( |_ ` x ) ) ( ( mmu ` n ) x. T )
        - ( 2 x. ( log ` x ) ) ) ) e. O(1) $=
      ( crp cfv co cmul csu c2 cmin cmpt cdiv caddc co1 wcel cc a1i wtru cvv c1
      cv cfl cfz cmu clog cexp fzfid wa cn elfznn adantl mucl syl zred nndivred
      cz recnd cr nnrpd rpdivcl sylan2 relogcl sqcld mulcld fsumcl subcld mulcl
      2cn sylancr addsubd oveq2i cc0 wne wceq zcnd addcld rpcnne0d divass div23
      w3a eqtr3d syl3anc adddid eqtrd syl5eq sumeq2dv fsumadd fsummulc2 fsumsub
      oveq1d oveq2d mulcomd mul12d oveq12d 3eqtr4d mpteq2ia ovexd mulog2sum 2ex
      subdid wss rpssre o1const mp2an cof ssexi sumex offval2 mudivsum mulogsum
      reex eqidd o1sub syl6eqelr o1mul2 o1add2 trud eqeltri ) AEUAAUBZUCFZUDGZC
      UBZUEFZBHGZCIZJXTUFFZHGZKGZLAEYBYDYCMGZXTYCMGZUFFZJUGGZHGZCIZYHKGZJYBYJCI
      ZYBYJYLHGZCIZKGZHGZNGZLZOAEYIUUBXTEPZYOYBYJJJYLHGZKGZHGZCIZNGZYHKGYPUUHNG
      YIUUBUUDYOUUHYHUUDYBYNCUUDUAYAUHZUUDYCYBPZUIZYJYMUULYJUULYDYCUULYDUULYCUJ
      PZYDUQPUUKUUMUUDYCYAUKZULZYCUMUNZUOUUOUPURZUULYLUULYLUULYKEPZYLUSPUUKUUDY
      CEPUURUUKYCUUNUTXTYCVAVBYKVCUNURZVDZVEZVFUUDYBUUGCUUJUULYJUUFUUQUULJUUEJQ
      PZUULVIRZUULJYLUVCUUSVEZVGZVEZVFUUDUVBYGQPYHQPVIUUDYGXTVCURJYGVHVJVKUUDYF
      UUIYHKUUDYFYBYNUUGNGZCIUUIUUDYBYEUVGCUULYEYDYMUUFNGZYCMGZHGZUVGBUVIYDHDVL
      UULUVJYJUVHHGZUVGUULYDQPZUVHQPZYCQPYCVMVNUIZUVJUVKVOUULYDUUPVPUULYMUUFUUT
      UVEVQUULYCUULYCUUOUTVRUVLUVMUVNWAYDUVHHGYCMGUVJUVKYDUVHYCVSYDUVHYCVTWBWCU
      ULYJYMUUFUUQUUTUVEWDWEWFWGUUDYBYNUUGCUUJUVAUVFWHWEWKUUDUUAUUHYPNUUDYBJYJY
      RKGZHGZCIZUUAUUHUUDJYBUVOCIZHGUVQUUAUUDYBUVOJCUUJUVBUUDVIRUULYJYRUUQUULYJ
      YLUUQUUSVEZVGWIUUDUVRYTJHUUDYBYJYRCUUJUUQUVSWJWLWBUUDYBUVPUUGCUULJYJHGZJY
      RHGZKGYJJHGZYJUUEHGZKGUVPUUGUULUVTUWBUWAUWCKUULJYJUVCUUQWMUULJYJYLUVCUUQU
      USWNWOUULJYJYRUVCUUQUVSXAUULYJJUUEUUQUVCUVDXAWPWGWBWLWPWQUUCOPSAEYPUUATSU
      UDUIZYOYHKWRUWDJYTHWRAEYPLOPSACWSRSAEJYTTJTPUWDWTRUWDYQYSKWRAEJLOPZSEUSXB
      UVBUWEXCVIAEJXDXERSAEYTLAEYQLZAEYSLZKXFGZOSAEYQYSKUWFUWGTTTETPSEUSXLXCXGR
      YQTPUWDYBYJCXHRYSTPUWDYBYRCXHRSUWFXMSUWGXMXIUWFOPUWGOPUWHOPACXJACXKUWFUWG
      XNXEXOXPXQXRXS $.

    $( Lemma for ~ selberg .  (Contributed by Mario Carneiro, 23-May-2016.) $)
    selberglem2 $p |- ( x e. RR+ |->
      ( ( sum_ n e. ( 1 ... ( |_ ` x ) ) sum_ m e. ( 1 ... ( |_ ` ( x / n ) ) )
        ( ( mmu ` n ) x. ( ( log ` m ) ^ 2 ) ) / x ) -
        ( 2 x. ( log ` x ) ) ) ) e. O(1) $=
      ( crp c1 cfv co cdiv c2 cmul wcel wtru caddc cc cr recnd wbr cle cfl clog
      cv cfz cmu cexp csu cmin cmpt co1 cof cvv rpssre ssexi a1i wa fzfid cn cz
      reex elfznn adantl mucl syl zred nnrpd relogcld resqcld simplr rerpdivcld
      fsumrecl simpr rpdivcl remulcl sylancr resubcl readdcld nndivred syl5eqel
      syl2an 2re subcld mulcld 2cn relogcl mulcl offval2 addsubassd cc0 rpcnne0
      fsumcl eqidd simpld adantr remulcld simprd fsumdivc wceq divass fsummulc2
      wne syl3anc oveq1d npcand oveq2d adddid eqtr3d 3eqtr3d sumeq2dv mpteq2dva
      fsumadd 3eqtrrd 1red cfa crli 2cnd cn0 2nn0 logexprlim mp1i wss rlimconst
      eqtrd rlimadd rlimo1 readdcl sylancl abscld fsumabs absmuld absge0d mule1
      cabs lemul1ad mulid2d eqbrtrd 3syl wb mpbid letrd breqtrd subdid divcan2d
      w3a oveq2i syl6eqr div23 oveq12d fveq2d rprege0 absid nncnd rpre simplbda
      fznnfl rpred lemuldivd log2sumbnd syl2anc eqbrtrrd fsumle chash fsumconst
      lemuldiv2d cfn flge0nn0 hashfz1 reflcl flle 2pos pm3.2i leadd2dd lediv1dd
      clt lemul1 divdir divcan3d 3brtr3d leabsd o1le selberglem1 o1add eqeltrrd
      adantrr trud ) AFGAUCZUAHZUDIZGUWFDUCZJIZUAHZUDIZUWIUEHZCUCZUBHZKUFIZLIZC
      UGZDUGUWFJIZKUWFUBHZLIZUHIZUIZUJMNAFUWHUWMUWLUWPCUGZUWFJIZBUHIZLIZDUGZUIZ
      AFUWHUWMBLIZDUGZUXAUHIZUIZOUKIZUXCUJNUXNAFUXHUXLOIZUIUXCNAFUXHUXLOUXIUXMU
      LPPFULMNFQUTUMUNUONUWFFMZUPZUWHUXGDUXQGUWGUQZUXQUWIUWHMZUPZUWMUXFUXTUWMUX
      TUWMUXTUWIURMZUWMUSMUXSUYAUXQUWIUWGVAZVBZUWIVCVDVEZRZUXTUXEBUXTUXEUXTUXDU
      WFUXTUWLUWPCUXTGUWKUQZUXTUWNUWLMZUPZUWOUYHUWNUYHUWNUYGUWNURMUXTUWNUWKVAVB
      VFVGVHZVKNUXPUXSVIZVJRZUXTBUXTBUWJUBHZKUFIZKKUYLLIZUHIZOIZUWIJIZQEUXTUYPU
      WIUXTUYMUYOUXTUYLUXTUWJUXQUXPUWIFMZUWJFMZUXSNUXPVLZUXSUWIUYBVFUWFUWIVMVTZ
      VGZVHZUXTKQMZUYNQMZUYOQMWAUXTVUDUYLQMVUEWAVUBKUYLVNVOKUYNVPVOVQZUYCVRVSRZ
      WBZWCZWKZUXQUXKUXAUXQUWHUXJDUXRUXTUWMBUYEVUGWCZWKZUXQKPMZUWTPMUXAPMWDUXQU
      WTUXPUWTQMNUWFWEVBRKUWTWFVOZWBNUXIWLNUXMWLWGNAFUXOUXBUXQUXHUXKOIZUXAUHIUX
      OUXBUXQUXHUXKUXAVUJVULVUNWHUXQVUOUWSUXAUHUXQUWSUWHUWRUWFJIZDUGUWHUXGUXJOI
      ZDUGVUOUXQUWHUWRUWFDUXRUXQUWFPMZUWFWIXAZUXPVURVUSUPZNUWFWJVBZWMZUXTUWRUXT
      UWLUWQCUYFUYHUWMUWPUXTUWMQMUYGUYDWNUYIWOVKRUXQVURVUSVVAWPZWQUXQUWHVUPVUQD
      UXTUWMUXDLIZUWFJIZUWMUXELIZVUPVUQUXTUWMPMUXDPMVUTVVEVVFWRUYEUXTUWLUWPCUYF
      UYHUWPUYIRZWKZUXQVUTUXSVVAWNZUWMUXDUWFWSXBUXTVVDUWRUWFJUXTUWLUWPUWMCUYFUY
      EVVGWTXCUXTUWMUXFBOIZLIVVFVUQUXTVVJUXEUWMLUXTUXEBUYKVUGXDXEUXTUWMUXFBUYEV
      UHVUGXFXGXHXIUXQUWHUXGUXJDUXRVUIVUKXKXLXCXGXJYCNUXIUJMUXMUJMUXNUJMNAFUWHU
      YMDUGZUWFJIZKOIZUXHGQNXMNAFVVMUIZKXNHZKOIZXOSVVNUJMNAFVVLKVVOKPUXQVVLUXQV
      VKUWFUXQUWHUYMDUXRVUCVKZUYTVJZRUXQXPZKXQMAFVVLUIVVOXOSNXRADKXSXTNFQYAVUMA
      FKUIKXOSUMNXPAFKYBVOYDVVPVVNYEVDUXQVVLQMVUDVVMQMVVRWAVVLKYFYGZVUJNUXPUXHY
      MHZVVMYMHZTSGUWFTSUXQVWAVVMVWBUXQUXHVUJYHZVVTUXQVVMUXQVVMVVTRYHUXQVWAUWHU
      XGYMHZDUGZVVMVWCUXQUWHVWDDUXRUXTUXGVUIYHZVKZVVTUXQUWHUXGDUXRVUIYIUXQVWEUW
      HUYMKOIZUWFJIZDUGZVVMVWGUXQUWHVWIDUXRUXTVWHUWFUXTUYMQMVUDVWHQMVUCWAUYMKYF
      YGZUYJVJZVKVVTUXQUWHVWDVWIDUXRVWFVWLUXTVWDUXFYMHZVWIVWFUXTUXFVUHYHZVWLUXT
      VWDUWMYMHZVWMLIZVWMTUXTUWMUXFUYEVUHYJUXTVWPGVWMLIVWMTUXTVWOGVWMUXTUWMUYEY
      HUXTXMZVWNUXTUXFVUHYKUXTUYAVWOGTSUYCUWIYLVDYNUXTVWMUXTVWMVWNRYOUUAYPUXTUW
      FVWMLIZVWHTSVWMVWITSUXTUXDUWJUYPLIZUHIZYMHZVWRVWHTUXTUWFUXFLIZYMHUWFYMHZV
      WMLIVXAVWRUXTUWFUXFUXTVURVUSVVIWMZVUHYJUXTVXBVWTYMUXTVXBUWFUXELIZUWFBLIZU
      HIVWTUXTUWFUXEBVXDUYKVUGUUBUXTVXEUXDVXFVWSUHUXTUXDUWFVVHVXDUXTVURVUSVVIWP
      UUCUXTVURUYPPMZUWIPMUWIWIXAUPZVXFVWSWRVXDUXTUYPVUFRUXTUYRVXHUXTUWIUYCVFZU
      WIWJVDVURVXGVXHUUDZUWFUYPLIUWIJIZVXFVWSVXJVXKUWFUYQLIVXFUWFUYPUWIWSBUYQUW
      FLEUUEUUFUWFUYPUWIUUGXGXBUUHYCUUIUXTVXCUWFVWMLUXTUXPUWFQMZWIUWFTSUPZVXCUW
      FWRUYJUWFUUJZUWFUUKYQXCXHUXTUYSGUWJTSZVXAVWHTSVUAUXTGUWILIZUWFTSVXOUXTVXP
      UWIUWFTUXTUWIUXTUWIUYCUULYOUXQUXSUYAUWIUWFTSZUXQVXLUXSUYAVXQUPYRUXPVXLNUW
      FUUMVBZUWIUWFUUOVDUUNYPUXTGUWFUWIVWQUXTUWFUYJUUPVXIUUQYSUWJCUURUUSUUTUXTV
      WMVWHUWFVWNVWKUYJUVDYSYTUVAUXQUWHVWHDUGZUWFJIVVKUWFKLIZOIZUWFJIZVWJVVMTUX
      QVXSVYAUWFUXQUWHVWHDUXRVWKVKUXQVVKVXTVVQUXQVXLVUDVXTQMVXRWAUWFKVNYGZVQUYT
      UXQVXSVVKUWGKLIZOIZVYATUXQVXSVVKUWHKDUGZOIVYEUXQUWHUYMKDUXRUXTUYMVUCRUXTX
      PXKUXQVYFVYDVVKOUXQVYFUWHUVBHZKLIZVYDUXQUWHUVEMVUMVYFVYHWRUXRWDUWHKDUVCYG
      UXQVYGUWGKLUXQVXMUWGXQMVYGUWGWRUXPVXMNVXNVBUWFUVFUWGUVGYQXCYCXEYCUXQVYDVX
      TVVKUXQUWGKUXQVXLUWGQMZVXRUWFUVHVDZVUDUXQWAUOWOVYCVVQUXQUWGUWFTSZVYDVXTTS
      ZUXQVXLVYKVXRUWFUVIVDUXQVYIVXLVUDWIKUVNSZUPZVYKVYLYRVYJVXRVYNUXQVUDVYMWAU
      VJUVKUOUWGUWFKUVOXBYSUVLYPUVMUXQUWHVWHUWFDUXRVVBUXTVWHVWKRVVCWQUXQVYBVVLV
      XTUWFJIZOIZVVMUXQVVKPMVXTPMVUTVYBVYPWRUXQVVKVVQRUXQUWFKVVBVVSWCVVAVVKVXTU
      WFUVPXBUXQVYOKVVLOUXQKUWFVVSVVBVVCUVQXEYCUVRYTYTUXQVVMVVTUVSYTUWDUVTABDEU
      WAUXIUXMUWBYGUWCUWE $.
  $}

  ${
    $d c d m n x y $.
    $( Lemma for ~ selberg .  Estimation of the left-hand side of ~ logsqvma2 .
       (Contributed by Mario Carneiro, 23-May-2016.) $)
    selberglem3 $p |- ( x e. RR+ |->
      ( ( sum_ n e. ( 1 ... ( |_ ` x ) ) sum_ d e. { y e. NN | y || n }
        ( ( mmu ` d ) x. ( ( log ` ( n / d ) ) ^ 2 ) ) / x ) -
        ( 2 x. ( log ` x ) ) ) ) e. O(1) $=
      ( vm crp cv cfv co cn cdiv clog c2 cexp cmul csu cmin wcel oveq1d elfznn
      c1 cfl cfz cdvds wbr crab cmu cmpt co1 wceq oveq1 fveq2d oveq2d wa ssrab2
      rpre cz simprr sseldi mucl syl zcnd nnrpd ad2antrl rpdivcld relogcl recnd
      cc sqcld mulcld dvdsflsumcom w3a 3ad2ant3 nncnd 3ad2ant2 nnne0d 2sumeq2dv
      divcan3d eqtrd mpteq2ia caddc eqid selberglem2 eqeltri ) AFUAAGZUBHZUCIZB
      GCGZUDUEZBJUFZDGZUGHZWHWKKIZLHZMNIZOIZDPCPZWEKIZMWELHOIZQIZUHAFWGUAWEWKKI
      ZUBHZUCIZWLEGZLHZMNIZOIZEPDPZWEKIZWSQIZUHUIAFWTXJWEFRZWRXIWSQXKWQXHWEKXKW
      QWGXCWLWKXDOIZWKKIZLHZMNIZOIZEPDPXHXKBWEWPXPECDWHXLUJZWOXOWLOXQWNXNMNXQWM
      XMLWHXLWKKUKULSUMWEUPXKWHWGRZWKWJRZUNUNZWLWOXTWLXTWKJRZWLUQRXTWJJWKWIBJUO
      XKXRXSURUSZWKUTVAVBXTWNXTWMFRZWNVHRXTWHWKXRWHFRXKXSXRWHWHWFTVCVDXTWKYBVCV
      EYCWNWMVFVGVAVIVJVKXKWGXCXPXGDEXKWKWGRZXDXCRZVLZXOXFWLOYFXNXEMNYFXMXDLYFX
      DWKYFXDYEXKXDJRYDXDXBTVMVNYFWKYDXKYAYEWKWFTVOZVNYFWKYGVPVRULSUMVQVSSSVTAX
      ALHZMNIMMYHOIQIWAIWKKIZEDYIWBWCWD $.

    $( Selberg's symmetry formula.  The statement has many forms, and this one
       is equivalent to the statement that ` sum_ n <_ x , Lam ( n ) log n + `
       ` sum_ m x. n <_ x , Lam ( m ) Lam ( n ) = 2 x log x + O ( x ) ` .
       Equation 10.4.10 of [Shapiro], p. 419.  (Contributed by Mario Carneiro,
       23-May-2016.) $)
    selberg $p |- ( x e. RR+ |-> ( ( sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( Lam ` n ) x. ( ( log ` n ) + ( psi ` ( x / n ) ) ) ) / x )
      - ( 2 x. ( log ` x ) ) ) ) e. O(1) $=
      ( vd vm vy crp cfv co cvma clog cdiv caddc cmul csu c2 wcel cn syl recnd
      cr c1 cfl cfz cchp cmin cmpt cmu cexp co1 cdvds wbr crab wceq fveq2 oveq2
      cv fveq2d oveq12d cbvsumv wa fzfid elfznn adantl fsummulc2 rpdivcl sylan2
      vmacl nnrpd rpred chpval oveq2d ad2antlr nnne0d divcan3d sumeq2dv 3eqtr4d
      nncnd syl5eq oveq1 rpre cc ssrab2 simprr anassrs dvdsdivcl sylan remulcld
      sseldi anasss dvdsflsumcom eqtr4d oveq1d chpcl mulcld relogcl fsumadd cfn
      wss dvdsssfz1 ssfi syl2anc fsumrecl addcomd adddid logsqvma2 cz mucl zcnd
      eqtrd ad2antrl rpdivcld sqcld 3eqtrd mpteq2ia eqid selberglem2 eqeltri )
      AFUAAUPZUBGZUCHZBUPZIGZYAJGZXRYAKHZUDGZLHZMHZBNZXRKHZOXRJGMHZUEHZUFAFXTUA
      XRCUPZKHZUBGZUCHZYLUGGZDUPZJGZOUHHZMHZDNZCNZXRKHZYJUEHZUFUIAFYKUUDXRFPZYI
      UUCYJUEUUEYHUUBXRKUUEYHXTEUPYAUJUKZEQULZYPYAYLKHZJGZOUHHZMHZCNZBNZXTYOYPY
      LYQMHZYLKHZJGZOUHHZMHZDNZCNUUBUUEXTYBYEMHZYBYCMHZLHZBNZXTUUGYLIGZUUHIGZMH
      ZCNZUVALHZBNZYHUUMUUEXTUUTBNZXTUVABNZLHXTUVGBNZUVKLHUVCUVIUUEUVJUVLUVKLUU
      EUVJXTYOUVDUUOIGZMHZDNZCNZUVLUUEUVJXTUVDYMUDGZMHZCNUVPXTUUTUVRBCYAYLUMZYB
      UVDYEUVQMYAYLIUNUVSYDYMUDYAYLXRKUOUQURUSUUEXTUVRUVOCUUEYLXTPZUTZUVDYOYQIG
      ZDNZMHYOUVDUWBMHZDNUVRUVOUWAYOUWBUVDDUWAUAYNVAUWAUVDUWAYLQPZUVDTPZUVTUWEU
      UEYLXSVBZVCYLVGZRSUWAYQYOPZUTZUWBUWJYQQPZUWBTPUWIUWKUWAYQYNVBVCZYQVGRSVDU
      WAUVQUWCUVDMUWAYMTPUVQUWCUMUWAYMUVTUUEYLFPYMFPUVTYLUWGVHXRYLVEVFVIYMDVJRV
      KUWAYOUVNUWDDUWJUVMUWBUVDMUWJUUOYQIUWJYQYLUWJYQUWLVQUWJYLUVTUWEUUEUWIUWGV
      LZVQUWJYLUWMVMVNZUQVKVOVPVOVRUUEEXRUVFUVNDBCYAUUNUMZUVEUVMUVDMUWOUUHUUOIY
      AUUNYLKVSZUQVKXRVTZUUEYAXTPZYLUUGPZUVFWAPUUEUWRUTZUWSUTZUVFUXAUVDUVEUXAUW
      EUWFUUEUWRUWSUWEUUEUWRUWSUTUTZUUGQYLUUFEQWBZUUEUWRUWSWCWHZWDUWHRUXAUUHQPU
      VETPUXAUUGQUUHUXCUWTYAQPZUWSUUHUUGPUWRUXEUUEYAXSVBZVCZEYLYAWEWFWHUUHVGRWG
      ZSWIWJWKWLUUEXTUUTUVABUUEUAXSVAZUWTYBYEUWTYBUWTUXEYBTPUXGYAVGRSZUWTYEUWTY
      DTPYETPUWTYDUWRUUEYAFPZYDFPUWRYAUXFVHZXRYAVEVFVIYDWMRSZWNUWTYBYCUXJUWTYCU
      WTUXKYCTPUWTYAUXGVHYAWORSZWNZWPUUEXTUVGUVABUXIUWTUVGUWTUUGUVFCUWTUAYAUCHZ
      WQPUUGUXPWRZUUGWQPUWTUAYAVAUWTUXEUXQUXGYAEWSRUXPUUGWTXAUXHXBSUXOWPVPUUEXT
      YGUVBBUWTYGYBYEYCLHZMHUVBUWTYFUXRYBMUWTYCYEUXNUXMXCVKUWTYBYEYCUXJUXMUXNXD
      XIVOUUEXTUULUVHBUWTUXEUULUVHUMUXGEYACXERVOVPUUEEXRUUKUURDBCUWOUUJUUQYPMUW
      OUUIUUPOUHUWOUUHUUOJUWPUQWLVKUWQUXBYPUUJUXBYPUXBUWEYPXFPUXDYLXGRXHUXBUUIU
      XBUUHFPZUUIWAPUXBYAYLUWRUXKUUEUWSUXLXJUXBYLUXDVHXKUXSUUIUUHWOSRXLWNWJUUEX
      TUUSUUACUWAYOUURYTDUWJUUQYSYPMUWJUUPYROUHUWJUUOYQJUWNUQWLVKVOVOXMWLWLXNAY
      MJGZOUHHOOUXTMHUEHLHYLKHZDCUYAXOXPXQ $.

    $( Convert eventual boundedness in ~ selberg to boundedness on
       ` [ 1 , +oo ) ` .  (We have to bound away from zero because the log
       terms diverge at zero.)  (Contributed by Mario Carneiro,
       30-May-2016.) $)
    selbergb $p |- E. c e. RR+ A. x e. ( 1 [,) +oo )
      ( abs ` ( ( sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( Lam ` n ) x. ( ( log ` n ) + ( psi ` ( x / n ) ) ) ) / x )
      - ( 2 x. ( log ` x ) ) ) ) <_ c $=
      ( c1 cfv co c2 cle wbr crp wtru cr wcel wa a1i relogcld readdcld remulcld
      syl adantr vy cv cfl cfz cvma clog cdiv cchp cmul csu cmin cabs cpnf cico
      caddc wral wrex wb elicopnf mp1i simprbda ex ssrdv fzfid cn elfznn adantl
      1re vmacl nnrpd nndivred chpcl fsumrecl 1rp simplbda rpgecld 2re resubcld
      rerpdivcld recnd cmpt co1 selberg o1res2 simprl simprr clt abscld simprll
      ltled abs2dif2d cc0 vmage0 nnge1d logge0d addge0d mulge0d fsumge0 divge0d
      nnred chpge0 2rp rpge0 oveq12d breqtrd cuz flword2 syl3anc fzss2 fsumless
      absidd wss lediv1dd chpwordi leadd2dd fsumle letrd lediv12ad div1d logled
      lemul2ad mpbid le2addd o1bddrp trud ) DAUBZUCEZUDFZBUBZUEEZYIUFEZYFYIUGFZ
      UHEZUOFZUIFZBUJZYFUGFZGYFUFEZUIFZUKFZULEZCUBHIADUMUNFZUPCJUQKAUAUUBYTDCDU
      AUBZUCEZUDFZYJYKUUCYIUGFZUHEZUOFZUIFZBUJZGUUCUFEZUIFZUOFZKAUUBLKYFUUBMZYF
      LMZKUUNUUODYFHIZDLMZUUNUUOUUPNURKVHDYFUSUTZVAZVBVCUUQKVHOKUUNNZYTUUTYQYSU
      UTYPYFUUTYHYOBUUTDYGVDZUUTYIYHMZNZYJYNUVCYIVEMZYJLMZUVBUVDUUTYIYGVFVGZYIV
      IZSZUVCYKYMUVCYIUVCYIUVFVJPZUVCYLLMZYMLMZUVCYFYIUUTUUOUVBUUSTUVFVKZYLVLZS
      ZQZRZVMZUUTYFDUUSDJMZUUTVNOKUUNUUOUUPUURVOZVPZVSZUUTGYRGLMZUUTVQOUUTYFUVT
      PRZVRZVTKAUUBJYTKAUUBJKUUNYFJMZUVTVBVCAJYTWAWBMKABWCOWDKUUCLMZDUUCHIZNZNZ
      UUJUULUWIUUEUUIBUWIDUUDVDUWIYIUUEMZNZYJUUHUWKUVDUVEUWJUVDUWIYIUUDVFZVGZUV
      GSUWKYKUUGUWKYIUWKYIUWMVJPUWKUUFLMZUUGLMZUWKUUCYIUWIUWFUWJKUWFUWGWEZTUWMV
      KUUFVLZSQRVMUWIGUUKUWBUWIVQOUWIUUCUWIUUCDUWPUVRUWIVNOKUWFUWGWFVPPRQUUTUWH
      YFUUCWGIZNZNZUUAYQYSUOFZUUMUWTYTUWTYTUUTYTLMUWSUWDTVTWHUWTYQYSUUTYQLMUWSU
      WATZUUTYSLMUWSUWCTZQUWTUUJUULUWTUUEUUIBUWTDUUDVDZUWTUWJNZYJUUHUXEUVDUVEUW
      JUVDUWTUWLVGZUVGSZUXEYKUUGUXEYIUXEYIUXFVJZPZUXEUWNUWOUXEUUCYIUWTUWFUWJUUT
      UWFUWGUWRWIZTZUXFVKZUWQSZQZRZVMZUWTGUUKUWBUWTVQOZUWTUUCUWTUUCYFUXJUUTUWEU
      WSUVTTZUWTYFUUCUUTUUOUWSUUSTZUXJUUTUWHUWRWFWJZVPZPZRZQUWTUUAYQULEZYSULEZU
      OFUXAHUWTYQYSUWTYQUXBVTUWTYSUXCVTWKUWTUYDYQUYEYSUOUWTYQUXBUWTYPYFUUTYPLMU
      WSUVQTZUXRUUTWLYPHIUWSUUTYHYOBUVAUVPUVCYJYNUVHUVOUVCUVDWLYJHIZUVFYIWMZSUV
      CYKYMUVIUVNUVCYIUVCYIUVFWTUVCYIUVFWNWOUVCUVJWLYMHIZUVLYLXAZSWPWQWRTZWSXKU
      WTYSUXCUWTGYRUXQUWTYFUXRPZGJMWLGHIUWTXBGXCUTZUWTYFUXSUUTUUPUWSUVSTZWOWQXK
      XDXEUWTYQYSUUJUULUXBUXCUXPUYCUWTYQUUJDUGFUUJHUWTYPUUJDYFUYFUXPUVRUWTVNOUX
      SUYKUWTYPUUEYOBUJUUJUYFUWTUUEYOBUXDUXEYJYNUXGUXEYKYMUXIUXEUVJUVKUXEYFYIUW
      TUUOUWJUXSTZUXFVKZUVMSZQZRZVMUXPUWTUUEYOYHBUXDUYSUXEYJYNUXGUYRUXEUVDUYGUX
      FUYHSZUXEYKYMUXIUYQUXEYIUXEYIUXFWTUXEYIUXFWNWOUXEUVJUYIUYPUYJSWPWQUWTUUDY
      GXFEMZYHUUEXLUWTUUOUWFYFUUCHIZVUAUXSUXJUXTYFUUCXGXHYGDUUDXISXJUWTUUEYOUUI
      BUXDUYSUXOUXEYNUUHYJUYRUXNUXGUYTUXEYMUUGYKUYQUXMUXIUXEUVJUWNYLUUFHIYMUUGH
      IUYPUXLUXEYFUUCYIUYOUXKUXHUWTVUBUWJUXTTXMYLUUFXNXHXOYAXPXQUYNXRUWTUUJUWTU
      UJUXPVTXSXEUWTYRUUKGUYLUYBUXQUYMUWTVUBYRUUKHIUXTUWTYFUUCUXRUYAXTYBYAYCXQY
      DYE $.

    $( Lemma for ~ selberg2 .  Equation 10.4.12 of [Shapiro], p. 420.
       (Contributed by Mario Carneiro, 23-May-2016.) $)
    selberg2lem $p |- ( x e. RR+ |->
      ( ( sum_ n e. ( 1 ... ( |_ ` x ) ) ( ( Lam ` n ) x. ( log ` n ) )
        - ( ( psi ` x ) x. ( log ` x ) ) ) / x ) ) e. O(1) $=
      ( crp c1 cfv co clog cmul cchp cmin cdiv wcel wtru cc cc0 wceq cr syl cle
      wbr vm cv cfl cfz cvma csu cmpt co1 caddc wne wa rpre chpcl recnd rprege0
      cn0 cn flge0nn0 nn0p1nn nnrpd relogcld relogcl subcld mulcld fzfid elfznn
      adantl 1rp rpaddcl mpan2 resubcld fsumcl rpcnne0 divsubdir syl3anc sub32d
      remulcld subdid oveq1d cfzo fveq2 oveq1 fveq2d jca log1 syl6eq 1m1e0 2pos
      c2 clt 0re chpeq0 ax-mp mpbir cuz nnuz syl6eleq nnred peano2rem fsumparts
      wb cz nn0zd fzval3 eqcomd nncnd ax-1cn pncan sylancl npcan eqtr4d nnm1nn0
      chpp1 oveq2d 3eqtrd nn0red vmacl pncan2d eqtrd mulcomd sumeq12rdv oveq12d
      a1i cvv ovexd eqidd chpo1ub crli 1red rpreccl rpred mpbid ad2antrl logleb
      logdifbnd mpdan subge0d mpbird cabs absidd nn0cnd subid1d 3eqtr3d 3eqtr4d
      chpfl 0cn mul01i div23 3eqtr3rd mpteq2ia cof rpssre ssexi offval2 divrcnv
      reex 0red mp1i flle leadd1dd logled lesub1dd letrd fllep1 rlimsqz2 rlimo1
      o1mul sylancr eqeltrrd wss ssriv sselda rerpdivcl mpancom chpge0 lemul1ad
      nnrp lep1d mulge0d rpregt0 divge0 syl21anc rpcn rpne0 3brtr4d o1le o1res2
      divrec2d o1fsum o1sub2 syl5eqelr trud ) ACDAUBZUCEZUDFZBUBZUEEZUWPGEZHFZB
      UFZUWMIEZUWMGEZHFZJFZUWMKFZUGZUHLMUXFACUXAUWMKFZUWNDUIFZGEZUXBJFZHFZUWOUW
      PDUIFZGEZUWRJFZUWPIEZHFZBUFZUWMKFZJFZUGUHACUXSUXEUWMCLZUXAUXJHFZUXQJFZUWM
      KFZUYAUWMKFZUXRJFZUXEUXSUXTUYANLUXQNLUWMNLUWMOUJUKZUYCUYEPUXTUXAUXJUXTUXA
      UXTUWMQLZUXAQLUWMULZUWMUMRUNZUXTUXIUXBUXTUXIUXTUXHUXTUXHUXTUWNUPLZUXHUQLU
      XTUYGOUWMSTUKUYJUWMUOUWMURRZUWNUSRZUTZVAZUNZUXTUXBUWMVBZUNZVCZVDUXTUWOUXP
      BUXTDUWNVEUXTUWPUWOLZUKZUWPCLZUXPNLZUYTUWPUYSUWPUQLZUXTUWPUWNVFVGZUTZVUAU
      XPVUAUXNUXOVUAUXMUWRVUAUXLVUADCLZUXLCLZVHUWPDVIVJZVAZUWPVBZVKZVUAUWPQLZUX
      OQLZUWPULZUWPUMRZVQZUNZRVLZUWMVMZUYAUXQUWMVNVOUXTUYBUXDUWMKUXTUXAUXIHFZUX
      CJFZUXQJFVUTUXQJFZUXCJFUYBUXDUXTVUTUXCUXQUXTUXAUXIUYIUYOVDZUXTUXAUXBUYIUY
      QVDVURVPUXTUYAVVAUXQJUXTUXAUXIUXBUYIUYOUYQVRVSUXTUWTVVBUXCJUXTDUXHVTFZUWR
      UXLDJFZIEZUWPDJFZIEZJFZHFZBUFUXIUXHDJFZIEZHFZOOHFZJFZVVDUXNVVFHFZBUFZJFUW
      TVVBUXTUAUBZGEZUWRUXMOBUAUXIDUXHVVRDJFZIEZVVHVVFOVVLVVRUWPPZVVSUWRPVWAVVH
      PVVRUWPGWAVWBVVTVVGIVVRUWPDJWBWCWDVVRUXLPZVVSUXMPVWAVVFPVVRUXLGWAVWCVVTVV
      EIVVRUXLDJWBWCWDVVRDPZVVSOPVWAOPVWDVVSDGEOVVRDGWAWEWFVWDVWAOIEZOVWDVVTOIV
      WDVVTDDJFOVVRDDJWBWGWFWCVWEOPZOWIWJTZWHOQLVWFVWGXAWKOWLWMWNWFWDVVRUXHPZVV
      SUXIPVWAVVLPVVRUXHGWAVWHVVTVVKIVVRUXHDJWBWCWDUXTUXHUQDWOEUYLWPWQUXTVVRDUX
      HUDFLZUKZVVSVWJVVRVWJVVRVWIVVRUQLUXTVVRUXHVFVGZUTVAUNVWJVWAVWJVVTQLZVWAQL
      VWJVVRQLVWLVWJVVRVWKWRVVRWSRVVTUMRUNWTUXTVVDUWOVVJUWSBUXTUWOVVDUXTUWNXBLU
      WOVVDPUXTUWNUYKXCDUWNXDRXEZUYTVVJUWRUWQHFUWSUYTVVIUWQUWRHUYTVVIVVHUWQUIFZ
      VVHJFUWQUYTVVFVWNVVHJUYTVVFVVGDUIFZIEZVVHVWOUEEZUIFZVWNUYTVVEVWOIUYTVVEUW
      PVWOUYTUWPNLZDNLZVVEUWPPUYTUWPVUDXFZXGUWPDXHXIZUYTVWSVWTVWOUWPPVXAXGUWPDX
      JXIZXKWCUYTVVGUPLZVWPVWRPUYTVUCVXDVUDUWPXLRZVVGXMRUYTVWQUWQVVHUIUYTVWOUWP
      UEVXCWCXNXOVSUYTVVHUWQUYTVVHUYTVVGQLVVHQLUYTVVGVXEXPVVGUMRUNUYTUWQUYTVUCU
      WQQLVUDUWPXQRUNZXRXSXNUYTUWQUWRVXFUYTUWRUYTUWPVUEVAUNXTXKYAUXTVVOVUTVVQUX
      QJUXTVVOVUTOJFVUTUXTVVMVUTVVNOJUXTVVMUXIUXAHFVUTUXTVVLUXAUXIHUXTVVLUWNIEZ
      UXAUXTVVKUWNIUXTUWNNLVWTVVKUWNPUXTUWNUYKUUAXGUWNDXHXIWCUXTUYGVXGUXAPUYHUW
      MUUERXSXNUXTUXIUXAUYOUYIXTXSVVNOPUXTOUUFUUGYCYBUXTVUTVVCUUBXSUXTVVDUWOVVP
      UXPBVWMUYTVVFUXOUXNHUYTVVEUWPIVXBWCXNYAYBUUCVSUUDVSUXTUYDUXKUXRJUXTUXANLU
      XJNLZUYFUYDUXKPUYIUYRVUSUXAUXJUWMUUHVOVSUUIUUJMACUXKUXRYDMUXTUKZUXGUXJHYE
      VXIUXQUWMKYEMACUXGUGZACUXJUGZHUUKFZACUXKUGUHMACUXGUXJHVXJVXKYDYDNCYDLMCQU
      UPUULUUMYCVXIUXAUWMKYEUXTVXHMUYRVGMVXJYFMVXKYFUUNMVXJUHLVXKUHLZVXLUHLAYGM
      VXKOYHTVXMMACDUWMKFZUXJODMUUQMYIZVWTACVXNUGOYHTMXGDAUUOUURUXTVXNQLMUXTVXN
      UWMYJYKZVGUXTUXJQLMUXTUXIUXBUYNUYPVKZVGUXTUXJVXNSTMDUWMSTZUXTUXJUWMDUIFZG
      EZUXBJFVXNVXQUXTVXTUXBUXTVXSUXTVUFVXSCLVHUWMDVIVJZVAZUYPVKVXPUXTUXIVXTUXB
      UYNVYBUYPUXTUXHVXSSTUXIVXTSTUXTUWNUWMDUXTUWNUYKXPUYHUXTYIUXTUYGUWNUWMSTUY
      HUWMUUSRUUTUXTUXHVXSUYMVYAUVAYLUVBUWMYOUVCYMUXTOUXJSTZMVXRUXTVYCUXBUXISTZ
      UXTUWMUXHSTZVYDUXTUYGVYEUYHUWMUVDRUXTUXHCLVYEVYDXAUYMUWMUXHYNYPYLUXTUXIUX
      BUYNUYPYQYRYMUVEOVXKUVFRVXJVXKUVGUVHUVIMAUXPBNMVUCUKVUAVUBMUQCUWPUQCUVJMU
      AUQCVVRUVQUVKYCZUVLVUQRMBUQCUXPVYFMBCUXOUWPKFZUXPDQVXOBCVYGUGUHLMBYGYCVUA
      VYGQLZMVUMVUAVYHVUOUXOUWPUVMUVNZVGVUAVUBMVUQVGVUAUXPYSEZVYGYSEZSTMDUWPSTV
      UAUXPDUWPKFZUXOHFZVYJVYKSVUAUXNVYLUXOVUKVUAVYLUWPYJYKVUOVUAVULOUXOSTZVUNU
      WPUVORZUWPYOUVPVUAUXPVUPVUAUXNUXOVUKVUOVUAOUXNSTUWRUXMSTZVUAUWPUXLSTZVYPV
      UAUWPVUNUVRVUAVUGVYQVYPXAVUHUWPUXLYNYPYLVUAUXMUWRVUIVUJYQYRVYOUVSYTVUAVYK
      VYGVYMVUAVYGVYIVUAVUMVYNVULOUWPWJTUKOVYGSTVUOVYOUWPUVTUXOUWPUWAUWBYTVUAUX
      OUWPVUAUXOVUOUNUWPUWCUWPUWDUWHXSUWEYMUWFUWGUWIUWJUWKUWL $.

    $( Selberg's symmetry formula, using the second Chebyshev function.
       Equation 10.4.14 of [Shapiro], p. 420.  (Contributed by Mario Carneiro,
       23-May-2016.) $)
    selberg2 $p |- ( x e. RR+ |->
      ( ( ( ( ( psi ` x ) x. ( log ` x ) ) +
      sum_ n e. ( 1 ... ( |_ ` x ) ) ( ( Lam ` n ) x. ( psi ` ( x / n ) ) ) )
        / x ) - ( 2 x. ( log ` x ) ) ) ) e. O(1) $=
      ( crp cfv co cdiv caddc cmul csu cmin cmpt co1 wtru cvv wcel cr syl recnd
      mulcld cc c1 cv cfl cfz cvma clog cchp c2 cof wceq rpssre ssexi a1i ovexd
      reex wa eqidd offval2 trud fzfid elfznn adantl vmacl relogcl rpre nndivre
      cn nnrpd syl2an chpcl addcld fsumcl rpne0 divcld 2cn mulcl sylancr subcld
      rpcn sub32d cc0 wne rpcnne0 divsubdir syl3anc adddid fsumadd eqtrd oveq1d
      sumeq2dv pnncand addcomd 3eqtrd eqtr3d mpteq2ia eqtri selberg selberg2lem
      o1sub mp2an eqeltrri ) ACUAAUBZUCDZUDEZBUBZUEDZXEUFDZXBXEFEZUGDZGEZHEZBIZ
      XBFEZUHXBUFDZHEZJEZKZACXDXFXGHEZBIZXBUGDZXNHEZJEZXBFEZKZJUIEZACYAXDXFXIHE
      ZBIZGEZXBFEZXOJEZKZLYEACXPYCJEZKZYKYEYMUJMACXPYCJXQYDNNNCNOMCPUOUKULUMMXB
      COZUPZXMXOJUNYOYBXBFUNMXQUQMYDUQURUSACYLYJYNYLXMYCJEZXOJEYJYNXMXOYCYNXLXB
      YNXDXKBYNUAXCUTZYNXEXDOZUPZXFXJYSXFYSXEVGOZXFPOYRYTYNXEXCVAZVBZXEVCQRZYSX
      GXIYSXGYSXECOXGPOYSXEUUBVHXEVDQRZYSXIYSXHPOZXIPOYNXBPOZYTUUEYRXBVEZUUAXBX
      EVFVIXHVJQRZVKSVLZXBVSZXBVMZVNYNUHTOXNTOXOTOVOYNXNXBVDRZUHXNVPVQYNYBXBYNX
      SYAYNXDXRBYQYSXFXGUUCUUDSZVLZYNXTXNYNXTYNUUFXTPOUUGXBVJQRUULSZVRZUUJUUKVN
      VTYNYPYIXOJYNXLYBJEZXBFEZYPYIYNXLTOYBTOXBTOXBWAWBUPUURYPUJUUIUUPXBWCXLYBX
      BWDWEYNUUQYHXBFYNUUQXSYGGEZYBJEYGYAGEYHYNXLUUSYBJYNXLXDXRYFGEZBIUUSYNXDXK
      UUTBYSXFXGXIUUCUUDUUHWFWJYNXDXRYFBYQUUMYSXFXIUUCUUHSZWGWHWIYNXSYGYAUUNYNX
      DYFBYQUVAVLZUUOWKYNYGYAUVBUUOWLWMWIWNWIWHWOWPXQLOYDLOYELOABWQABWRXQYDWSWT
      XA $.

    $( Convert eventual boundedness in ~ selberg2 to boundedness on any
       interval ` [ A , +oo ) ` .  (We have to bound away from zero because the
       log terms diverge at zero.)  (Contributed by Mario Carneiro,
       25-May-2016.) $)
    selberg2b $p |- E. c e. RR+ A. x e. ( 1 [,) +oo )
      ( abs ` ( ( ( ( ( psi ` x ) x. ( log ` x ) ) +
      sum_ n e. ( 1 ... ( |_ ` x ) ) ( ( Lam ` n ) x. ( psi ` ( x / n ) ) ) )
        / x ) - ( 2 x. ( log ` x ) ) ) ) <_ c $=
      ( cfv cmul co c1 c2 cle wbr crp wtru cr wcel wa a1i syl remulcld readdcld
      adantr vy cchp clog cfl cfz cvma cdiv caddc cmin cabs cpnf cico wral wrex
      cv csu wb 1re elicopnf mp1i simprbda ex ssrdv chpcl 1rp simplbda relogcld
      rpgecld fzfid cn elfznn vmacl nndivred fsumrecl rerpdivcld resubcld recnd
      adantl 2re co1 selberg2 o1res2 ad2antrl simprl simprr clt abscld ad2ant2r
      abs2dif2d simprll ltled cc0 chpge0 logge0d mulge0d vmage0 fsumge0 addge0d
      cmpt divge0d absidd chpwordi syl3anc logled mpbid lemul12ad cuz wss fzss2
      flword2 fsumless nnrpd lediv1dd lemul2ad fsumle le2addd lediv12ad breqtrd
      letrd div1d eqbrtrd 2rp rpge0 o1bddrp trud ) AUOZUBDZYFUCDZEFZGYFUDDZUEFZ
      BUOZUFDZYFYLUGFZUBDZEFZBUPZUHFZYFUGFZHYHEFZUIFZUJDZCUOIJAGUKULFZUMCKUNLAU
      AUUCUUAGCUAUOZUBDZUUDUCDZEFZGUUDUDDZUEFZYMUUDYLUGFZUBDZEFZBUPZUHFZHUUFEFZ
      UHFZLAUUCMLYFUUCNZYFMNZLUUQUURGYFIJZGMNZUUQUURUUSOUQLURGYFUSUTZVAZVBVCUUT
      LURPLUUQOZUUAUVCYSYTUVCYRYFUVCYIYQUVCYGYHUVCUURYGMNZUVBYFVDZQUVCYFUVCYFGU
      VBGKNZUVCVEPLUUQUURUUSUVAVFZVHZVGZRUVCYKYPBUVCGYJVIZUVCYLYKNZOZYMYOUVLYLV
      JNZYMMNZUVKUVMUVCYLYJVKVRZYLVLZQZUVLYNMNZYOMNZUVLYFYLUVCUURUVKUVBTUVOVMZY
      NVDZQZRZVNZSUVHVOZUVCHYHHMNZUVCVSPUVIRZVPZVQLAUUCKUUALAUUCKLUUQYFKNZUVHVB
      VCAKUUAWSVTNLABWAPWBLUUDMNZGUUDIJZOZOZUUNUUOUWMUUGUUMUWMUUEUUFUWJUUEMNZLU
      WKUUDVDZWCUWMUUDUWMUUDGLUWJUWKWDZUVFUWMVEPLUWJUWKWEVHVGZRUWMUUIUULBUWMGUU
      HVIUWMYLUUINZOZYMUUKUWSUVMUVNUWRUVMUWMYLUUHVKZVRZUVPQUWSUUJMNZUUKMNZUWSUU
      DYLUWMUWJUWRUWPTUXAVMUUJVDZQRVNZSUWMHUUFUWFUWMVSPUWQRSZUVCUWLYFUUDWFJZOZO
      ZUUBYSUJDZYTUJDZUHFUUPUXIUUAUXIUUAUVCUUAMNUXHUWHTVQWGUXIUXJUXKUXIYSUXIYSU
      VCYSMNUXHUWETZVQZWGZUXIYTUXIYTUVCYTMNUXHUWGTZVQZWGZSLUWLUUPMNUUQUXGUXFWHU
      XIYSYTUXMUXPWIUXIUXJUXKUUNUUOUXNUXQUXIUUGUUMUXIUUEUUFUXIUWJUWNUVCUWJUWKUX
      GWJZUWOQZUXIUUDUXIUUDYFUXRUVCUWIUXHUVHTZUXIYFUUDUVCUURUXHUVBTZUXRUVCUWLUX
      GWEWKZVHZVGZRZLUWLUUMMNUUQUXGUXEWHZSZUXIHUUFUWFUXIVSPZUYDRUXIUXJYSUUNIUXI
      YSUXLUXIYRYFUXIYIYQUXIYGYHUXIUURUVDUYAUVEQZUXIYFUXTVGZRZUVCYQMNUXHUWDTZSZ
      UXTUXIYIYQUYKUYLUXIYGYHUYIUYJUXIUURWLYGIJUYAYFWMQZUXIYFUYAUVCUUSUXHUVGTZW
      NZWOUVCWLYQIJUXHUVCYKYPBUVJUWCUVLYMYOUVQUWBUVLUVMWLYMIJZUVOYLWPZQUVLUVRWL
      YOIJZUVTYNWMZQWOWQTWRZWTXAUXIYSUUNGUGFUUNIUXIYRUUNGYFUYMUYGUVFUXIVEPUYAVU
      AUXIYIYQUUGUUMUYKUYLUYEUYFUXIYGUUEYHUUFUYIUXSUYJUYDUYNUYPUXIUURUWJYFUUDIJ
      ZYGUUEIJUYAUXRUYBYFUUDXBXCUXIVUBYHUUFIJUYBUXIYFUUDUXTUYCXDXEZXFUXIYQUUIYP
      BUPUUMUYLUXIUUIYPBUXIGUUHVIZUXIUWROZYMYOVUEUVMUVNUWRUVMUXIUWTVRZUVPQZVUEU
      VRUVSVUEYFYLUXIUURUWRUYATZVUFVMZUWAQZRZVNUYFUXIUUIYPYKBVUDVUKVUEYMYOVUGVU
      JVUEUVMUYQVUFUYRQZVUEUVRUYSVUIUYTQWOUXIUUHYJXGDNZYKUUIXHUXIUURUWJVUBVUMUY
      AUXRUYBYFUUDXJXCYJGUUHXIQXKUXIUUIYPUULBVUDVUKVUEYMUUKVUGVUEUXBUXCVUEUUDYL
      UXIUWJUWRUXRTZVUFVMZUXDQZRVUEYOUUKYMVUJVUPVUGVULVUEUVRUXBYNUUJIJYOUUKIJVU
      IVUOVUEYFUUDYLVUHVUNVUEYLVUFXLUXIVUBUWRUYBTXMYNUUJXBXCXNXOXSXPUYOXQUXIUUN
      UXIUUNUYGVQXTXRYAUXIUXKYTUUOIUXIYTUXOUXIHYHUYHUYJHKNWLHIJUXIYBHYCUTZUYPWO
      XAUXIYHUUFHUYJUYDUYHVUQVUCXNYAXPXSYDYE $.
  $}

  ${
    $d c m n x y z C $.  $d n x y ph $.  $d n z X $.  $d n z Y $.  $d c A $.
    $d z B $.
    chpdifbnd.a $e |- ( ph -> A e. RR+ ) $.
    chpdifbnd.1 $e |- ( ph -> 1 <_ A ) $.
    chpdifbnd.b $e |- ( ph -> B e. RR+ ) $.
    chpdifbnd.2 $e |- ( ph -> A. z e. ( 1 [,) +oo )
      ( abs ` ( ( ( ( ( psi ` z ) x. ( log ` z ) ) +
      sum_ m e. ( 1 ... ( |_ ` z ) ) ( ( Lam ` m ) x. ( psi ` ( z / m ) ) ) )
        / z ) - ( 2 x. ( log ` z ) ) ) ) <_ B ) $.
    chpdifbnd.c $e |- C = ( ( B x. ( A + 1 ) ) +
      ( ( 2 x. A ) x. ( log ` A ) ) ) $.
    ${
      chpdifbnd.x $e |- ( ph -> X e. ( 1 (,) +oo ) ) $.
      chpdifbnd.y $e |- ( ph -> Y e. ( X [,] ( A x. X ) ) ) $.
      $( Lemma for ~ chpdifbnd .  (Contributed by Mario Carneiro,
         25-May-2016.) $)
      chpdifbndlem1 $p |- ( ph -> ( ( psi ` Y ) - ( psi ` X ) ) <_
          ( ( 2 x. ( Y - X ) ) + ( C x. ( X / ( log ` X ) ) ) ) ) $=
        ( co cmul caddc cle wcel vn cchp cfv cmin c2 clog cdiv wbr cr w3a wb c1
        cicc cpnf cioo ioossre sseldi rpred remulcld elicc2 syl2anc mpbid chpcl
        simp1d syl resubcld cc0 0red 1re a1i clt wa eliooord simpld lttrd elrpd
        0lt1 relogcld 2re remulcl sylancr readdcld peano2re syl5eqel cfl cfz cv
        cvma csu fzfid cuz simp2d flword2 syl3anc fzss2 sselda cn elfznn adantl
        wss nndivre syl2an fsumrecl chpge0 logled lemul2ad mulge0d adantr letrd
        le2addd rerpdivcld cabs recnd elicopnf ax-mp sylanbrc wceq fveq2 fveq2d
        oveq12d oveq2d simpl oveq1d sumeq12rdv syl5eq id breq1d leadd2dd mpbird
        rspcv sylc subdird eqtr4d eqtrd adddid adddird 3eqtr4d breqtrrd mulassd
        crp vmacl syldan rpmulcld ltletrd vmage0 fsumless nnrpd lediv1dd fsumle
        chpwordi abscld leabsd cico ltled oveq2 cbvsumv lesubaddd simp3d pm3.2i
        wral 2pos lemul2 ledivmul2d absdifled lemuldivd le2subd pnpcan2d negcld
        cneg relogmuld addcomd 2cnd add12d negsubd mul32d subdid add32d subnegd
        addsub4d 3brtr3d leadd1dd mulid2d lemul2d 0le2 log1 1rp syl5eqbrr mul4d
        logleb oveq1i rplogcld rpne0d divcan1d lemul1d ) AHUBUCZGUBUCZUDPZUEHGU
[encoded data, 5440 characters]
        YAYNYRAUWQUXCUWTUYKAUWSUXBVUCWYNWBWYLUWNYI $.
    $}

    $( Lemma for ~ chpdifbnd .  (Contributed by Mario Carneiro,
       25-May-2016.) $)
    chpdifbndlem2 $p |- ( ph ->
      E. c e. RR+ A. x e. ( 1 (,) +oo ) A. y e. ( x [,] ( A x. x ) )
          ( ( psi ` y ) - ( psi ` x ) ) <_
        ( ( 2 x. ( y - x ) ) + ( c x. ( x / ( log ` x ) ) ) ) ) $=
      ( crp wcel cfv co cmul cle cv cchp cmin c2 clog cdiv caddc cicc wral cpnf
      wbr cioo wrex 1rp rpaddcl sylancl rpmulcld rpred rpmulcl sylancr relogcld
      c1 2rp remulcld readdcld cc0 clt 00id 0red rpgt0d cr rprege0d log1 logleb
      wa mpbid syl5eqbrr mulge0 syl12anc ltleaddd elrpd syl5eqel adantr cfl cfz
      wb cvma csu cabs cico simprl simprr chpdifbndlem1 ralrimivva oveq1 oveq2d
      wceq breq2d 2ralbidv rspcev syl2anc ) AGOPCUAZUBQBUAZUBQUCRZUDXBXCUCRSRZG
      XCXCUEQUFRZSRZUGRZTUKZCXCEXCSRUHRZUIBVBUJULRZUIZXDXEIUAZXFSRZUGRZTUKZCXJU
      IBXKUIZIOUMAGFEVBUGRZSRZUDESRZEUEQZSRZUGRZONAYCAXSYBAXSAFXRLAEOPZVBOPZXRO
      PJUNEVBUOUPUQZURZAXTYAAXTAUDOPYDXTOPVCJUDEUSUTZURAEJVAZVDZVEAVFVFVFUGRYCV
      GVHAVFVFXSYBAVIZYKYGYJAXSYFVJAXTVKPVFXTTUKVOYAVKPVFYATUKVFYBTUKAXTYHVLYIA
      VFVBUEQZYATVMAVBETUKZYLYATUKZKAYEYDYMYNWFUNJVBEVNUTVPVQXTYAVRVSVTVQWAWBAX
      IBCXKXJAXCXKPZXBXJPZVOZVODEFGHXCXBAYDYQJWCAYMYQKWCAFOPYQLWCADUAZUBQYRUEQZ
      SRVBYRWDQWERHUAZWGQYRYTUFRUBQSRHWHUGRYRUFRUDYSSRUCRWIQFTUKDVBUJWJRUIYQMWC
      NAYOYPWKAYOYPWLWMWNXQXLIGOXMGWQZXPXIBCXKXJUUAXOXHXDTUUAXNXGXEUGXMGXFSWOWP
      WRWSWTXA $.
  $}

  ${
    $d b c n x y z A $.
    $( A bound on the difference of nearby ` psi ` values.  Theorem 10.5.2 of
       [Shapiro], p. 427.  (Contributed by Mario Carneiro, 25-May-2016.) $)
    chpdifbnd $p |- ( ( A e. RR /\ 1 <_ A ) ->
      E. c e. RR+ A. x e. ( 1 (,) +oo ) A. y e. ( x [,] ( A x. x ) )
          ( ( psi ` y ) - ( psi ` x ) ) <_
        ( ( 2 x. ( y - x ) ) + ( c x. ( x / ( log ` x ) ) ) ) ) $=
      ( vz vn vb wcel c1 cle wbr wa cv cchp cfv clog cmul co caddc crp cfl cvma
      cr cfz cdiv csu c2 cmin cabs cpnf cico wral wrex cicc selberg2b simpl cc0
      cioo 0red 1red clt 0lt1 a1i simpr ltletrd elrpd adantr simplr simprl eqid
      simprr chpdifbndlem2 rexlimdvaa mpi ) CUCHZICJKZLZEMZNOVRPOZQRIVRUAOUDRFM
      ZUBOVRVTUERNOQRFUFSRVRUERUGVSQRUHRUIOGMZJKEIUJUKRULZGTUMBMZNOAMZNOUHRUGWC
      WDUHRQRDMWDWDPOUERQRSRJKBWDCWDQRUNRULAIUJURRULDTUMZEFGUOVQWBWEGTVQWATHZWB
      LZLABECWAWACISRQRUGCQRCPOQRSRZFDVQCTHWGVQCVOVPUPZVQUQICVQUSVQUTWIUQIVAKVQ
      VBVCVOVPVDVEVFVGVOVPWGVHVQWFWBVIVQWFWBVKWHVJVLVMVN $.
  $}

  ${
    $d i m n N $.
    $( A bound on a sum of logs, used in ~ pntlemk .  This is not as precise as
       ~ logdivsum in its asymptotic behavior, but it is valid for all ` N `
       and does not require a limit value.  (Contributed by Mario Carneiro,
       13-Apr-2016.) $)
    logdivbnd $p |- ( N e. NN -> sum_ n e. ( 1 ... N ) ( ( log ` n ) / n ) <_
      ( ( ( ( log ` N ) + 1 ) ^ 2 ) / 2 ) ) $=
      ( vi wcel c2 c1 cfz co cfv cdiv csu cmul cle wbr cr recnd cmin cc0 oveq2d
      wceq vm cn cv clog caddc cexp 2re fzfid cuz elfzuz adantl syl6eleqr nnrpd
      nnuz relogcld nndivred fsumrecl remulcl sylancr nnrecred resqcld peano2re
      wa elfznn nnrp syl 2timesd cem cicc nncnd ax-1cn npcan sylancl fveq2d cn0
      nnm1nn0 harmonicbnd3 3syl eqeltrrd 0re emre elicc2i simp2bi subge0d mpbid
      cc lediv1dd rpreccld rpge0d wss cz elfzelz peano2zm nnred lem1d syl3anbrc
      eluz2 fzss2 fsumless wb nngt0d lediv1 syl112anc letrd fsumle le2addd cfzo
      clt oveq1 sumeq1d jca c0 syl6eq fz10 sum0 peano2nn syl6eleq fsumparts nnz
      1m1e0 fzval3 eqcomd pncan oveq2 fsumm1 eqtrd oveq1d pncan2d nnne0d eqtr4d
      divrecd sumeq12rdv nncn oveq12d sqvald 0cn mul01i a1i sqcld crp flid nnre
      subid1d divrec2d 3eqtr3rd subaddd breqtrd cfl nnge1 harmonicubnd eqbrtrrd
      eqbrtrd syl2anc fsumge0 log1 logleb syl5eqbrr lep1d le2sqd 2pos lemuldiv2
      1rp ) BUBDZEFBGHZAUCZUDIZUVEJHZAKZLHZBUDIZFUEHZEUFHZMNZUVHUVLEJHMNZUVCUVI
      UVDFCUCZJHZCKZEUFHZUVLUVCEODZUVHODZUVIODUGUVCUVDUVGAUVCFBUHZUVCUVEUVDDZVC
      ZUVFUVEUWCUVEUWCUVEUWCUVEFUIIZUBUWBUVEUWDDUVCUVEFBUJUKZUNULZUMZUOZUWFUPZU
      QZEUVHURUSUVCUVQUVCUVDUVPCUWAUVCUVOUVDDZVCZUVOUWKUVOUBDZUVCUVOBVDUKZUTZUQ
      ZVAUVCUVKUVCUVJODUVKODUVCBBVEZUOZUVJVBVFZVAZUVCUVIUVHUVHUEHZUVRMUVCUVHUVC
      UVHUWJPVGUVCUXAUVDFUVEGHZUVPCKZUVEJHZAKZUVDFUVEFQHZGHZUVPCKZUVEJHZAKZUEHZ
      UVRMUVCUVHUVHUXEUXJUWJUWJUVCUVDUXDAUWAUWCUXCUVEUWCUXBUVPCUWCFUVEUHZUWCUVO
      UXBDZVCZUVOUXMUWMUWCUVOUVEVDUKZUTZUQZUWFUPZUQZUVCUVDUXIAUWAUWCUXHUVEUWCUX
      GUVPCUWCFUXFUHUWCUVOUXGDZVCUVOUXTUWMUWCUVOUXFVDUKUTUQZUWFUPZUQZUVCUVDUVGU
      XDAUWAUWIUXRUWCUVGUXIUXDUWIUYBUXRUWCUVFUXHUVEUWHUYAUWGUWCRUXHUVFQHZMNZUVF
      UXHMNUWCUYDRVHVIHZDZUYEUWCUXHUXFFUEHZUDIZQHZUYDUYFUWCUYIUVFUXHQUWCUYHUVEU
      DUWCUVEWFDZFWFDZUYHUVETUWCUVEUWFVJZVKUVEFVLVMVNSUWCUVEUBDUXFVODUYJUYFDUWF
      UVEVPCUXFVQVRVSUYGUYDODUYEUYDVHMNRVHUYDVTWAWBWCVFUWCUXHUVFUYAUWHWDWEWGZUW
      CUXHUXCMNZUXIUXDMNZUWCUXBUVPUXGCUXLUXPUXNUVPUXNUVOUXNUVOUXOUMWHWIUWCUVEUX
      FUIIDZUXGUXBWJUWCUXFWKDZUVEWKDZUXFUVEMNUYQUWCUYSUYRUWBUYSUVCUVEFBWLUKZUVE
      WMVFUYTUWCUVEUWCUVEUWFWNZWOUXFUVEWQWPUXFFUVEWRVFWSUWCUXHODUXCODUVEODRUVEX
      HNUYOUYPWTUYAUXQVUAUWCUVEUWFXAUXHUXCUVEXBXCWEXDXEUVCUVDUVGUXIAUWAUWIUYBUY
      NXEXFUVCUVRUXEQHZUXJTUXKUVRTUVCFBFUEHZXGHZUXHFUVEFUEHZFQHZGHZUVPCKZUXHQHZ
      LHZAKFVUCFQHZGHZUVPCKZVUMLHZRRLHZQHZVUDVUIVUHLHZAKZQHUXJVUBUVCFUAUCZFQHZG
      HZUVPCKZUXHVUHRAUAVUMFVUCVVBUXHVUHRVUMVUSUVETZVVBUXHTZVVDVVCVVAUXGUVPCVVC
      VUTUXFFGVUSUVEFQXISXJZVVEXKVUSVUETZVVBVUHTZVVGVVFVVAVUGUVPCVVFVUTVUFFGVUS
      VUEFQXISXJZVVHXKVUSFTZVVBRTZVVJVVIVVBXLUVPCKRVVIVVAXLUVPCVVIVVAFRGHXLVVIV
      UTRFGVVIVUTFFQHRVUSFFQXIXTXMSXNXMXJUVPCXOXMZVVKXKVUSVUCTZVVBVUMTZVVMVVLVV
      AVULUVPCVVLVUTVUKFGVUSVUCFQXISXJZVVNXKUVCVUCUBUWDBXPUNXQUVCVUSFVUCGHDVCZV
      VBVVOVVAUVPCVVOFVUTUHVVOUVOVVADZVCUVOVVPUWMVVOUVOVUTVDUKUTUQPZVVQXRUVCVUD
      UVDVUJUXIAUVCUVDVUDUVCBWKDZUVDVUDTBXSZFBYAVFYBZUWCVUJUXHFUVEJHZLHUXIUWCVU
      IVWAUXHLUWCVUIUXHVWAUEHZUXHQHVWAUWCVUHVWBUXHQUWCVUHUXCVWBUWCVUGUXBUVPCUWC
      VUFUVEFGUWCUYKUYLVUFUVETUYMVKUVEFYCVMSXJZUWCUVPVWACFUVEUWEUXNUVPUXPPUVOUV
      EFJYDYEYFYGUWCUXHVWAUWCUXHUYAPZUWCVWAUWCUVEUWFUTPYHYFZSUWCUXHUVEVWDUYMUWC
      UVEUWFYIZYKYJYLUVCVUPUVRVURUXEQUVCVUPUVRRQHUVRUVCVUNUVRVUORQUVCVUNUVQUVQL
      HUVRUVCVUMUVQVUMUVQLUVCVULUVDUVPCUVCVUKBFGUVCBWFDUYLVUKBTBYMVKBFYCVMSXJZV
      WGYNUVCUVQUVCUVQUWPPZYOYJVUORTUVCRYPYQYRYNUVCUVRUVCUVQVWHYSZUUCYFUVCVUDUV
      DVUQUXDAVVTUWCVUQVWAUXCLHUXDUWCVUIVWAVUHUXCLVWEVWCYNUWCUXCUVEUWCUXCUXQPUY
      MVWFUUDYJYLYNUUEUVCUVRUXEUXJVWIUVCUXEUXSPUVCUXJUYCPUUFWEUUGUULUVCUVQUVKMN
      UVRUVLMNUVCFBUUHIZGHZUVPCKZUVQUVKMUVCVWKUVDUVPCUVCVWJBFGUVCVVRVWJBTVVSBUU
      AVFSXJUVCBODFBMNZVWLUVKMNBUUBBUUIZBCUUJUUMUUKUVCUVQUVKUWPUWSUVCUVDUVPCUWA
      UWOUWLUVPUWLUVOUWLUVOUWNUMWHWIUUNUVCRUVJUVKRODUVCVTYRUWRUWSUVCRFUDIZUVJMU
      UOUVCVWMVWOUVJMNZVWNUVCFYTDBYTDVWMVWPWTUVBUWQFBUUPUSWEUUQUVCUVJUWRUURXDUU
      SWEXDUVCUVTUVLODUVSREXHNZUVMUVNWTUWJUWTUVSUVCUGYRVWQUVCUUTYRUVHUVLEUVAXCW
      E $.
  $}

  ${
    $d k m n x y A $.  $d m n x ph $.
    selberg3lem1.1 $e |- ( ph -> A e. RR+ ) $.
    selberg3lem1.2 $e |- ( ph -> A. y e. ( 1 [,) +oo )
      ( abs ` ( ( sum_ k e. ( 1 ... ( |_ ` y ) ) ( ( Lam ` k ) x. ( log ` k ) )
        - ( ( psi ` y ) x. ( log ` y ) ) ) / y ) ) <_ A ) $.
    $( Introduce a log weighting on the summands of
       ` sum_ m x. n <_ x , Lam ( m ) Lam ( n ) ` , the core of ~ selberg2
       (written here as ` sum_ n <_ x , Lam ( n ) psi ( x / n ) ` ).  Equation
       10.4.21 of [Shapiro], p. 422.  (Contributed by Mario Carneiro,
       30-May-2016.) $)
    selberg3lem1 $p |- ( ph -> ( x e. ( 1 (,) +oo ) |->
    ( ( ( ( 2 / ( log ` x ) ) x. sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( ( Lam ` n ) x. ( psi ` ( x / n ) ) ) x. ( log ` n ) ) )
      - sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( Lam ` n ) x. ( psi ` ( x / n ) ) ) ) / x ) ) e. O(1) ) $=
      ( c1 co cfv cdiv csu cmul cmin cr wcel wbr recnd cle vm cpnf cioo cfl cfz
      cv cvma clog c2 cchp 1red cmpt co1 cc ioossre rpcnd o1const sylancr fzfid
      wss wa elfznn adantl vmacl syl nndivred fsumrecl crp elioore clt eliooord
      cn simpld rplogcld rpdivcl syl2an remulcld adantr subdird rpne0d divcan2d
      rpred oveq2d eqtrd mpteq2dva resubcld cc0 0red 0lt1 a1i lttrd elrpd ssrdv
      ex vmadivsum o1res2 ceu ere cabs wceq adantrr rprege0d absid simprr mpbid
      loge rpregt0d eqbrtrd mpbird chpcl nnrpd relogcld abscld ad2antrr absdivd
      mulcld rpge0d absidd weq oveq12d cbvsumv syl5eq fveq2d ledivmul2d divassd
      wb fveq2 breqtrrd oveq1d 3brtr4d fsummulc1 letrd mulassd 3eqtr4d sumeq2dv
      caddc subdid 3eqtrd eqtr4d divdiv1d epr logleb syl5eqbrr 1rp rpregt0 mp1i
      lediv2 syl3anc div1d elo1d o1mul2 eqeltrrd o1dif 2re rerpdivcl rerpdivcld
      breqtrd nndivre 2cnd subcld gt0ne0d fsumcl fsumabs vmage0 cico wral nncnd
      redivcld mulid2d fznnfl simplbda lemuldivd 1re elicopnf ax-mp sylanbrc id
      sumeq1d breq1d sylc eqbrtrrd nnne0d lemul2ad absmuld div32d fsumle divcld
      rspcv addcld fsumsub relogdivd subsub3d oveq2 anasss fsumfldivdiag mul32d
      mulcomd chpval fsummulc2 2timesd fsumadd adddid 3eqtr4rd divdiv32d div23d
      lediv1dd divsubdird divcan4d 3eqtr3d rpmulcld 3brtr3d leabsd o1le ) ABIUB
[encoded data, 5840 characters]
      UYDVVCUXLYLXAUXM $.
  $}

  ${
    $d c m n x y $.
    $( Lemma for ~ selberg3 .  Equation 10.4.21 of [Shapiro], p. 422.
       (Contributed by Mario Carneiro, 30-May-2016.) $)
    selberg3lem2 $p |- ( x e. ( 1 (,) +oo ) |->
    ( ( ( ( 2 / ( log ` x ) ) x. sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( ( Lam ` n ) x. ( psi ` ( x / n ) ) ) x. ( log ` n ) ) )
      - sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( Lam ` n ) x. ( psi ` ( x / n ) ) ) ) / x ) ) e. O(1) $=
      ( vy vm c1 cfv co cmul cdiv cle wbr crp wcel wtru cr wa relogcld remulcld
      syl adantr vc cv cfl cfz cvma clog csu cchp cmin cabs cpnf cico wral wrex
      cioo c2 cmpt co1 caddc wss wb 1re elicopnf ax-mp simplbi ssriv a1i elfznn
      fzfid cn adantl vmacl nnrpd fsumrecl chpcl 1rp simprbi rpgecld rerpdivcld
      resubcld recnd ex ssrdv selberg2lem o1res2 ad2antrl simprl readdcld rpcnd
      simprr clt rpne0d absdivd rpge0d absidd oveq2d eqtrd abscld simprll ltled
      ad2ant2r absge0d lediv2ad div1d breqtrd abs2dif2d cc0 vmage0 nnred nnge1d
      logge0d mulge0d fsumge0 chpge0 oveq12d cuz flword2 syl3anc fzss2 fsumless
      chpwordi logled mpbid lemul12ad le2addd letrd eqbrtrd o1bddrp simpl simpr
      trud selberg3lem1 rexlimiva ) ECUBZUCFZUDGZDUBZUEFZYQUFFZHGZDUGZYNUHFZYNU
      FFZHGZUIGZYNIGZUJFZUAUBZJKCEUKULGZUMZUALUNZAEUKUOGUPAUBZUFFZIGEUULUCFZUDG
      ZBUBZUEFUULUUPIGUHFHGZUUPUFFHGBUGHGUUOUUQBUGUIGUULIGUQURMZUUKNCAUUIUUFEUA
      UUOYTDUGZUULUHFZUUMHGZUSGZUUIOUTNCUUIOYNUUIMZYNOMZEYNJKZEOMZUVCUVDUVEPVAV
      BEYNVCVDZVEZVFVGUVFNVBVGNUVCPZUUFUVIUUEYNUVIUUAUUDUVIYPYTDUVIEYOVIZUVIYQY
      PMZPZYRYSUVLYQVJMZYROMZUVKUVMUVIYQYOVHVKZYQVLZSZUVLYQUVLYQUVOVMQZRZVNZUVI
      UUBUUCUVIUVDUUBOMZUVCUVDNUVHVKZYNVOZSUVIYNUVIYNEUWBELMZUVIVPVGUVCUVENUVCU
      VDUVEUVGVQVKZVRZQRZVTZUWFVSWANCUUILUUFNCUUILNUVCYNLMZUWFWBWCCLUUFUQURMNCD
      WDVGWENUULOMZEUULJKZPZPZUUSUVAUWMUUOYTDUWMEUUNVIUWMYQUUOMZPZYRYSUWOUVMUVN
      UWNUVMUWMYQUUNVHZVKZUVPSUWOYQUWOYQUWQVMQRVNZUWMUUTUUMUWJUUTOMZNUWKUULVOZW
      FUWMUULUWMUULENUWJUWKWGUWDUWMVPVGNUWJUWKWJVRQRWHUVIUWLYNUULWKKZPZPZUUGUUE
      UJFZYNIGZUVBJUXCUUGUXDYNUJFZIGUXEUXCUUEYNUXCUUEUVIUUEOMUXBUWHTWAZUXCYNUVI
      UWIUXBUWFTZWIUXCYNUXHWLWMUXCUXFYNUXDIUXCYNUVIUVDUXBUWBTZUXCYNUXHWNWOWPWQU
      XCUXEUXDUVBUXCUXDYNUXCUUEUXGWRZUXHVSUXJUXCUUSUVANUWLUUSOMUVCUXAUWRXAZUXCU
      UTUUMUXCUWJUWSUVIUWJUWKUXAWSZUWTSZUXCUULUXCUULYNUXLUXHUXCYNUULUXIUXLUVIUW
      LUXAWJWTZVRZQZRZWHZUXCUXEUXDEIGUXDJUXCEYNUXDUWDUXCVPVGUXHUXJUXCUUEUXGXBUV
      IUVEUXBUWETZXCUXCUXDUXCUXDUXJWAXDXEUXCUXDUUAUUDUSGZUVBUXJUXCUUAUUDUVIUUAO
      MUXBUVTTZUXCUUBUUCUXCUVDUWAUXIUWCSZUXCYNUXHQZRZWHUXRUXCUXDUUAUJFZUUDUJFZU
      SGUXTJUXCUUAUUDUXCUUAUYAWAUXCUUDUVIUUDOMUXBUWGTZWAXFUXCUYEUUAUYFUUDUSUXCU
      UAUYAUVIXGUUAJKUXBUVIYPYTDUVJUVSUVLYRYSUVQUVRUVLUVMXGYRJKZUVOYQXHZSUVLYQU
      VLYQUVOXIUVLYQUVOXJXKXLXMTWOUXCUUDUYGUXCUUBUUCUYBUYCUXCUVDXGUUBJKUXIYNXNS
      ZUXCYNUXIUXSXKZXLWOXOXEUXCUUAUUDUUSUVAUYAUYDUXKUXQUXCUUOYTYPDUXCEUUNVIUXC
      UWNPZYRYSUYLUVMUVNUWNUVMUXCUWPVKZUVPSZUYLYQUYLYQUYMVMQZRUYLYRYSUYNUYOUYLU
      VMUYHUYMUYISUYLYQUYLYQUYMXIUYLYQUYMXJXKXLUXCUUNYOXPFMZYPUUOUTUXCUVDUWJYNU
      ULJKZUYPUXIUXLUXNYNUULXQXRYOEUUNXSSXTUXCUUBUUTUUCUUMUYBUXMUYCUXPUYJUYKUXC
      UVDUWJUYQUUBUUTJKUXIUXLUXNYNUULYAXRUXCUYQUUCUUMJKUXNUXCYNUULUXHUXOYBYCYDY
      EYFYFYGYHYKUUJUURUALUUHLMZUUJPACUUHDBUYRUUJYIUYRUUJYJYLYMVD $.

    $( Introduce a log weighting on the summands of
       ` sum_ m x. n <_ x , Lam ( m ) Lam ( n ) ` , the core of ~ selberg2
       (written here as ` sum_ n <_ x , Lam ( n ) psi ( x / n ) ` ).  Equation
       10.6.7 of [Shapiro], p. 422.  (Contributed by Mario Carneiro,
       30-May-2016.) $)
    selberg3 $p |- ( x e. ( 1 (,) +oo ) |->
      ( ( ( ( ( psi ` x ) x. ( log ` x ) ) +
      ( ( 2 / ( log ` x ) ) x. sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( ( Lam ` n ) x. ( psi ` ( x / n ) ) ) x. ( log ` n ) ) ) )
        / x ) - ( 2 x. ( log ` x ) ) ) ) e. O(1) $=
      ( c1 cpnf co cfv cmul cdiv caddc cmin cmpt co1 wcel wtru crp a1i remulcld
      c2 cr recnd cioo cv cchp clog cfl cfz csu wa elioore adantl chpcl syl 1rp
      cvma clt wbr eliooord simpld ltled rpgecld relogcld fzfid cn elfznn vmacl
      1red adantr nndivred fsumrecl 2re rplogcld rerpdivcld nnrpd resubcld 2cnd
      addassd rpne0d divcld mulcld pncan3d oveq2d eqtr2d readdcld divdird eqtrd
      oveq1d addsubd mpteq2dva ex ssrdv o1res2 selberg3lem2 o1add2 eqeltrd trud
      selberg2 ) ACDUAEZAUBZUCFZWRUDFZGEZRWTHEZCWRUEFZUFEZBUBZUNFZWRXEHEZUCFZGE
      ZXEUDFZGEZBUGZGEZIEZWRHEZRWTGEZJEZKZLMNXRAWQXAXDXIBUGZIEZWRHEZXPJEZXMXSJE
      ZWRHEZIEZKLNAWQXQYENWRWQMZUHZXQYAYDIEZXPJEYEYGXOYHXPJYGXOXTYCIEZWRHEYHYGX
      NYIWRHYGYIXAXSYCIEZIEXNYGXAXSYCYGXAYGWSWTYGWRSMZWSSMYFYKNWRCDUIUJZWRUKULY
      GWRYGWRCYLCOMYGUMPYGCWRYGVFYLYGCWRUOUPZWRDUOUPZYFYMYNUHNWRCDUQUJURZUSUTZV
      AZQZTYGXSYGXDXIBYGCXCVBZYGXEXDMZUHZXFXHUUAXEVCMZXFSMYTUUBYGXEXCVDUJZXEVEU
      LUUAXGSMXHSMUUAWRXEYGYKYTYLVGUUCVHXGUKULQZVIZTZYGYCYGXMXSYGXBXLYGRWTRSMYG
      VJPZYGWRYLYOVKZVLYGXDXKBYSUUAXIXJUUDUUAXEUUAXEUUCVMVAQVIZQUUEVNZTZVPYGYJX
      MXAIYGXSXMUUFYGXBXLYGRWTYGVOYGWTYQTYGWTUUHVQVRYGXLUUITVSVTWAWBWFYGXTYCWRY
      GXTYGXAXSYRUUEWCZTUUKYGWRYLTYGWRYPVQWDWEWFYGYAYDXPYGYAYGXTWRUULYPVLZTYGYD
      YGYCWRUUJYPVLZTYGXPYGRWTUUGYQQZTWGWEWHNAWQYBYDSYGYAXPUUMUUOVNUUNNAWQOYBNA
      WQONYFWROMYPWIWJAOYBKLMNABWPPWKAWQYDKLMNABWLPWMWNWO $.
  $}

  ${
    $d i m n x y A $.  $d m n x ph $.
    selberg4lem1.1 $e |- ( ph -> A e. RR+ ) $.
    selberg4lem1.2 $e |- ( ph -> A. y e. ( 1 [,) +oo )
      ( abs ` ( ( sum_ i e. ( 1 ... ( |_ ` y ) )
        ( ( Lam ` i ) x. ( ( log ` i ) + ( psi ` ( y / i ) ) ) ) / y )
      - ( 2 x. ( log ` y ) ) ) ) <_ A ) $.
    $( Lemma for ~ selberg4 .  Equation 10.4.20 of [Shapiro], p. 422.
       (Contributed by Mario Carneiro, 30-May-2016.) $)
    selberg4lem1 $p |- ( ph -> ( x e. ( 1 (,) +oo ) |->
      ( ( sum_ n e. ( 1 ... ( |_ ` x ) )
          ( ( Lam ` n ) x. sum_ m e. ( 1 ... ( |_ ` ( x / n ) ) )
          ( ( Lam ` m ) x. ( ( log ` m ) + ( psi ` ( ( x / n ) / m ) ) ) ) )
          / ( x x. ( log ` x ) ) ) - ( log ` x ) ) ) e. O(1) ) $=
      ( c1 co cfv cdiv cmul cmin cmpt wcel c2 recnd cle cpnf cioo cfl cvma clog
      cv cfz cchp caddc csu co1 wa fzfid cn cr elfznn adantl vmacl syl nndivred
      2cnd crp elioore 1rp a1i 1red clt wbr eliooord simpld ltled rpgecld nnrpd
      adantr rpdivcld relogcld remulcld fsumrecl rplogcld rerpdivcld subdid cc0
      rehalfcld wne divcan2d oveq2d eqtrd mpteq2dva 2re resubcld wss cc ioossre
      2ne0 o1const mp2an vmalogdivsum2 o1mul2 eqeltrrd readdcld rpmulcld rpne0d
      2cn chpcl divcld mulcld subcld nnncan2d divdiv1d divassd oveq12d redivcld
      divsubdird fsumsub nnne0d div32d mul12d eqtr4d sumeq2dv fsummulc2 sylancr
      nncnd oveq1d 1cnd o1dif mpbird cabs abscld fveq2d rpge0d absidd lemuldivd
      absmuld wb mpbid ad2antrr wceq fveq2 3brtr4d divge0d eqtr3d 3eqtr2d rpred
      fsumdivc 3eqtr4rd rpcnd divrecd dividd 3eqtr3d ssrdv vmadivsum divlogrlim
      ex o1res2 crli rlimo1 mp1i fsumabs vmage0 divdiv2d div23d divcan1d eqtr2d
      mulassd subdird 3eqtrd cico wral mulid2d fznnfl simplbda eqbrtrd elicopnf
      nnred ax-mp sylanbrc oveq2 cbvsumv oveq1 sumeq12dv syl5eq id breq1d rspcv
      1re sylc eqbrtrrd lemul2ad div12d breqtrrd letrd lediv1dd breqtrd absdivd
      fsumle fsumge0 mulge0d adantrr o1le eqeltrd ) ABJUAUBKZJBUFZUCLZUGKZGUFZU
[encoded data, 4880 characters]
      UXTVYCVURUYPUXDUYDGUYSVUEVUAUXFUXEVUDVUNWUPYTUWPYTUWQYKYSUWRUWSUWTYEYF $.
  $}

  ${
    $d c i m n x y $.
    $( The Selberg symmetry formula for products of three primes, instead of
       two.  The sum here can also be written in the symmetric form
       ` sum_ i j k <_ x , Lam ( i ) Lam ( j ) Lam ( k ) ` ; we eliminate one
       of the nested sums by using the definition of
       ` psi ( x ) = sum_ k <_ x , Lam ( k ) ` .  This statement can thus
       equivalently be written ` psi ( x ) log ^ 2 ( x ) = `
       ` 2 sum_ i j k <_ x , Lam ( i ) Lam ( j ) Lam ( k ) + O ( x log x ) ` .
       Equation 10.4.23 of [Shapiro], p. 422.  (Contributed by Mario Carneiro,
       30-May-2016.) $)
    selberg4 $p |- ( x e. ( 1 (,) +oo ) |->
      ( ( ( ( psi ` x ) x. ( log ` x ) ) -
      ( ( 2 / ( log ` x ) ) x. sum_ n e. ( 1 ... ( |_ ` x ) )
          ( ( Lam ` n ) x. sum_ m e. ( 1 ... ( |_ ` ( x / n ) ) )
            ( ( Lam ` m ) x. ( psi ` ( ( x / n ) / m ) ) ) ) ) )
        / x ) ) e. O(1) $=
      ( c1 co cfv cmul c2 cdiv csu cmin cmpt wcel wtru caddc wa cr remulcld crp
      recnd vy vi vc cpnf cioo cv cchp clog cfl cfz cvma co1 2re elioore adantl
      a1i clt wbr eliooord simpld rplogcld rerpdivcld fzfid cn elfznn vmacl syl
      adantr nndivred chpcl nnrpd relogcld fsumrecl resubcld 1red ltled rpgecld
      readdcld addsubassd rpne0d divdird nppcan3d ad2antll fsumfldivdiag mul32d
      1rp adantrr mulcld mulcomd chpval oveq1d anassrs fsummulc1 eqtrd sumeq2dv
      3eqtrd fsummulc2 3eqtr4d oveq2d eqtr3d mpteq2dva selberg3lem2 ex selberg2
      wceq ssrdv o1res2 o1add2 pnncand addcomd adddid fsumadd subcld divsubdird
      eqeltrrd divdiv1d div23d rpmulcld rpcnd divassd 3eqtr3d sub32d subdid wss
      2cnd ioossre o1const sylancr cabs cle cico wral wrex selbergb simpl simpr
      cc selberg4lem1 rexlimiva mp1i o1mul2 eqeltrd o1dif mpbid trud ) ADUDUEEZ
      AUFZUGFZUUGUHFZGEZHUUIIEZDUUGUIFZUJEZCUFZUKFZDUUGUUNIEZUIFZUJEZBUFZUKFZUU
      PUUSIEZUGFZGEZBJZGEZCJZGEZKEZUUGIEZLULMZNAUUFUUKUUMUUOUURUUTUUSUHFZGEZBJZ
      GEZCJZGEZUUJOEZUUGIEZHUUIGEZKEZLZULMUVJNAUUFUUKUUMUUTUUGUUSIEZUGFZGEZUVKG
      EZBJZGEZUUMUWDBJZKEZUUGIEZUUJUWHOEZUUGIEZUVSKEZOEZLUWAULNAUUFUWNUVTNUUGUU
      FMZPZUWJUWLOEZUVSKEUWNUVTUWPUWJUWLUVSUWPUWJUWPUWIUUGUWPUWGUWHUWPUUKUWFUWP
      HUUIHQMUWPUMUPZUWPUUGUWOUUGQMZNUUGDUDUNUOZUWPDUUGUQURZUUGUDUQURZUWOUXAUXB
      PNUUGDUDUSUOUTZVAZVBZUWPUUMUWEBUWPDUULVCZUWPUUSUUMMZPZUWDUVKUXHUUTUWCUXHU
      USVDMZUUTQMZUXGUXIUWPUUSUULVEUOZUUSVFZVGZUXHUWBQMZUWCQMUXHUUGUUSUWPUWSUXG
      UWTVHUXKVIZUWBVJVGZRZUXHUUSUXHUUSUXKVKZVLZRVMRZUWPUUMUWDBUXFUXQVMZVNZUWPU
      UGDUWTDSMUWPWFUPUWPDUUGUWPVOUWTUXCVPVQZVBZTUWPUWLUWPUWKUUGUWPUUJUWHUWPUUH
      UUIUWPUWSUUHQMUWTUUGVJVGUWPUUGUYCVLZRZUYAVRZUYCVBZTUWPUVSUWPHUUIUWRUYERZT
      ZVSUWPUWQUVRUVSKUWPUWIUWKOEZUUGIEUWQUVRUWPUWIUWKUUGUWPUWIUYBTUWPUWKUYGTUW
      PUUGUWTTZUWPUUGUYCVTZWAUWPUYKUVQUUGIUWPUYKUWGUUJOEUVQUWPUWGUWHUUJUWPUWGUX
      TTUWPUWHUYATUWPUUJUYFTZWBUWPUWGUVPUUJOUWPUWFUVOUUKGUWPUUMDUWBUIFZUJEZUUOU
      VLGEZCJZBJUUMUURUYQBJZCJUWFUVOUWPUUGUYQCBUWTUWPUXGUUNUYPMZPPZUYQVUAUUOUVL
      VUAUUNVDMZUUOQMZUYTVUBUWPUXGUUNUYOVEWCUUNVFZVGZVUAUUTUVKUWPUXGUXJUYTUXMWG
      VUAUUSUWPUXGUUSSMUYTUXRWGVLRRTWDUWPUUMUWEUYRBUXHUWEUVLUWCGEUWCUVLGEZUYRUX
      HUUTUWCUVKUXHUUTUXMTZUXHUWCUXPTZUXHUVKUXSTZWEUXHUVLUWCUXHUUTUVKVUGVUIWHZV
      UHWIUXHVUFUYPUUOCJZUVLGEUYRUXHUWCVUKUVLGUXHUXNUWCVUKXEUXOUWBCWJVGWKUXHUYP
      UUOUVLCUXHDUYOVCVUJUXHUYTPUUOUWPUXGUYTVUCVUEWLTWMWNWPWOUWPUUMUVNUYSCUWPUU
      NUUMMZPZUURUVLUUOBVUMDUUQVCZVUMUUOVUMVUBVUCVULVUBUWPUUNUULVEUOZVUDVGZTZVU
      MUUSUURMZPZUVLVUSUUTUVKVUSUXIUXJVURUXIVUMUUSUUQVEUOZUXLVGZVUSUUSVUSUUSVUT
      VKVLZRZTZWQWOWRWSWKWNWKWTWKWTXANAUUFUWJUWMQUYDUWPUWLUVSUYHUYIVNAUUFUWJLUL
      MNABXBUPNAUUFSUWMNAUUFSNUWOUUGSMUYCXCXFASUWMLULMNABXDUPXGXHXONAUUFUVTUVIU
      WPUVTUWPUVRUVSUWPUVQUUGUWPUVPUUJUWPUUKUVOUXEUWPUUMUVNCUXFVUMUUOUVMVUPVUMU
      URUVLBVUNVVCVMZRZVMZRZUYFVRZUYCVBZUYIVNTUWPUVIUWPUVHUUGUWPUUJUVGUYFUWPUUK
      UVFUXEUWPUUMUVECUXFVUMUUOUVDVUPVUMUURUVCBVUNVUSUUTUVBVVAVUSUVAQMUVBQMVUSU
      UPUUSVUMUUPQMVURVUMUUGUUNUWPUWSVULUWTVHVUOVIVHVUTVIUVAVJVGZRZVMZRZVMZRZVN
      UYCVBTZNAUUFUVTUVIKEZLAUUFHUUMUUOUURUUTUVKUVBOEZGEZBJZGEZCJZUUGUUIGEZIEZU
      UIKEZGEZLULNAUUFVVRVWGUWPUVRUVIKEZUVSKEHVWEGEZUVSKEVVRVWGUWPVWHVWIUVSKUWP
      UVQUVHKEZUUGIEUUKVWCGEZUUGIEZVWHVWIUWPVWJVWKUUGIUWPUUJUVPOEZUVHKEUVPUVGOE
      ZVWJVWKUWPUUJUVPUVGUYNUWPUVPVVHTZUWPUVGVVPTZXIUWPUVQVWMUVHKUWPUVPUUJVWOUY
      NXJWKUWPVWKUUKUVOUVFOEZGEVWNUWPVWCVWQUUKGUWPVWCUUMUVNUVEOEZCJVWQUWPUUMVWB
      VWRCVUMVWBUUOUVMUVDOEZGEVWRVUMVWAVWSUUOGVUMVWAUURUVLUVCOEZBJVWSVUMUURVVTV
      WTBVUSUUTUVKUVBVUSUUTVVATVUSUVKVVBTVUSUVBVVKTXKWOVUMUURUVLUVCBVUNVVDVUSUV
      CVVLTXLWNWSVUMUUOUVMUVDVUQVUMUVMVVETVUMUVDVVMTXKWNWOUWPUUMUVNUVECUXFVUMUV
      NVVFTVUMUVEVVNTXLWNWSUWPUUKUVOUVFUWPUUKUXETUWPUVOVVGTUWPUVFVVOTXKWNWRWKUW
      PUVQUVHUUGUWPUVQVVITUWPUUJUVGUYNVWPXMUYLUYMXNUWPHVWCGEZUUIIEZUUGIEZVXAVWD
      IEZVWLVWIUWPVXCVXAUUIUUGGEZIEVXDUWPVXAUUIUUGUWPHVWCUWPYEZUWPVWCUWPUUMVWBC
      UXFVUMUUOVWAVUPVUMUURVVTBVUNVUSUUTVVSVVAVUSUVKUVBVVBVVKVRRVMRVMZTZWHUWPUU
      IUYETZUYLUWPUUIUXDVTZUYMXPUWPVXEVWDVXAIUWPUUIUUGVXIUYLWIWSWNUWPVXBVWKUUGI
      UWPHVWCUUIVXFVXHVXIVXJXQWKUWPHVWCVWDVXFVXHUWPVWDUWPUUGUUIUYCUXDXRZXSUWPVW
      DVXKVTXTYAYAWKUWPUVRUVSUVIUWPUVRVVJTUYJVVQYBUWPHVWEUUIVXFUWPVWEUWPVWCVWDV
      XGVXKVBZTVXIYCWRXANAUUFHVWFQUWRUWPVWEUUIVXLUYEVNNUUFQYDHYQMAUUFHLULMDUDYF
      NYEAUUFHYGYHDUAUFZUIFUJEUBUFZUKFVXNUHFVXMVXNIEUGFOEGEUBJVXMIEHVXMUHFGEKEY
      IFUCUFZYJURUADUDYKEYLZUCSYMAUUFVWFLULMZNUAUBUCYNVXPVXQUCSVXOSMZVXPPAUAVXO
      UBBCVXRVXPYOVXRVXPYPYRYSYTUUAUUBUUCUUDUUE $.
  $}

  ${
    $d a d k m n x A $.  $d b c d k m n x y R $.
    pntrval.r $e |- R = ( a e. RR+ |-> ( ( psi ` a ) - a ) ) $.
    $( Define the residual of the second Chebyshev function.  The goal is to
       have ` R ( x ) e. o ( x ) ` , or ` R ( x ) / x ~~>r 0 ` .  (Contributed
       by Mario Carneiro, 8-Apr-2016.) $)
    pntrval $p |- ( A e. RR+ -> ( R ` A ) = ( ( psi ` A ) - A ) ) $=
      ( cv cchp cfv cmin co crp wceq fveq2 id oveq12d ovex fvmpt ) CACEZFGZQHIA
      FGZAHIJBQAKZRSQAHQAFLTMNDSAHOP $.

    $( Functionality of the residual.  Lemma for ~ pnt .  (Contributed by Mario
       Carneiro, 8-Apr-2016.) $)
    pntrf $p |- R : RR+ --> RR $=
      ( crp cr cv cchp cfv cmin co wcel rpre chpcl syl resubcld fmpti ) BDEBFZG
      HZQIJACQDKZRQSQEKREKQLZQMNTOP $.

    $( There is a bound on the residual valid for all ` x ` .  (Contributed by
       Mario Carneiro, 9-Apr-2016.) $)
    pntrmax $p |- E. c e. RR+ A. x e. RR+ ( abs ` ( ( R ` x ) / x ) ) <_ c $=
      ( cdiv co cle wbr crp wtru c1 caddc cr a1i wcel wa cc0 c2 adantr cfv cabs
      vy cv wral wrex cchp wss rpssre 1red cmin pntrval rpre chpcl syl resubcld
      cc eqeltrd rerpdivcl mpancom recnd adantl cmpt co1 oveq1d rpcn divsubdird
      rpne0 dividd oveq2d 3eqtrd mpteq2ia chpo1ub ax-1cn o1const mp2an syl5eqel
      o1sub2 peano2re ad2antrl clt w3a wceq 3ad2ant1 fveq2d 1re resubcl sylancr
      3ad2ant2 0red chpge0 wb addge02 mpbid suble0 mpbird divge0 syl21anc letrd
      rpregt0 2re readdcl sylancl simpr 1lt2 lelttrd chpeq0 simp1 rpcnne0d div0
      wne eqbrtrd wi 0lt1 lediv2a syl212anc imp div1d breqtrd simp2 ltle 3impia
      ex sylan chpwordi syl3anc lecasei cn0 2nn0 nn0addge1 oveq2i add12d syl5eq
      df-2 absdifled mpbir2and 3expb adantrlr adantll o1bddrp trud ) AUDZBUAZUU
      BFGZUBUAZDUDHIAJUEDJUFKAUCJUUDLDUCUDZUGUAZLMGZJNUHZKUIOKUJUUBJPZUUDUQPKUU
      JUUDUUCNPUUJUUDNPUUJUUCUUBUGUAZUUBUKGZNUUBBCEULZUUJUUKUUBUUJUUBNPZUUKNPZU
      UBUMZUUBUNUOZUUPUPURUUCUUBUSUTVAVBKAJUUDVCAJUUKUUBFGZLUKGZVCVDAJUUDUUSUUJ
      UUDUULUUBFGUURUUBUUBFGZUKGUUSUUJUUCUULUUBFUUMVEUUJUUKUUBUUBUUJUUKUUQVAUUB
      VFZUVAUUBVHZVGUUJUUTLUURUKUUJUUBUVAUVBVIVJVKZVLKAJUURLNUUJUURNPZKUUOUUJUV
      DUUQUUKUUBUSUTZVBKUUJQUJAJUURVCVDPKAVMOAJLVCVDPZKUUILUQPZUVFUIVNAJLVOVPOV
      RVQUUFNPZUUHNPZKLUUFHIZUVHUUGNPZUVIUUFUNZUUGVSUOZVTUUJUVHUVJQUUBUUFWAIZQU
      UEUUHHIZKUUJUVHUVNUVOUVJUUJUVHUVNUVOUUJUVHUVNWBZUUEUUSUBUAZUUHHUVPUUDUUSU
      BUUJUVHUUDUUSWCUVNUVCWDWEUVPUVQUUHHILUUHUKGZUURHIUURLUUHMGZHIUVPUVRRUURUV
      PLNPZUVIUVRNPWFUVHUUJUVIUVNUVMWIZLUUHWGWHUVPWJUUJUVHUVDUVNUVEWDZUVPUVRRHI
      ZLUUHHIZUVPRUUGHIZUWDUVHUUJUWEUVNUUFWKWIZUVPUVTUVKUWEUWDWLWFUVHUUJUVKUVNU
      VLWIZLUUGWMWHWNUVPUVTUVIUWCUWDWLWFUWALUUHWOWHWPUVPUUORUUKHIZUUNRUUBWAIQZR
      UURHIUUJUVHUUOUVNUUQWDZUVPUUNUWHUUJUVHUUNUVNUUPWDZUUBWKUOZUUJUVHUWIUVNUUB
      WTWDZUUKUUBWQWRWSUVPUURUUGSMGZUVSHUVPUURUUGUWNUWBUWGUVPUVKSNPZUWNNPUWGXAU
      UGSXBXCUVPUURUUGHIUUBLUWKUVPUJZUVPUUBLHIZQZUURRUUBFGZUUGHUWRUUKRUUBFUWRUU
      KRWCZUUBSWAIZUWRUUBLSUVPUUNUWQUWKTZUWRUJUWOUWRXAOUVPUWQXDLSWAIUWRXEOXFUWR
      UUNUWTUXAWLUXBUUBXGUOWPVEUVPUWSUUGHIUWQUVPUWSRUUGHUVPUUBUQPUUBRXKQUWSRWCU
      VPUUBUUJUVHUVNXHXIUUBXJUOUWFXLTXLUVPLUUBHIZQZUURUUKUUGUVPUVDUXCUWBTUVPUUO
      UXCUWJTZUVPUVKUXCUWGTUXDUURUUKLFGZUUKHUVPUXCUURUXFHIZUVPUVTRLWAIZUWIUUOUW
      HUXCUXGXMUWPUXHUVPXNOUWMUWJUWLUVTUXHQUWIUUOUWHQWBUXCUXGLUUBUUKXOYCXPXQUXD
      UUKUXDUUKUXEVAXRXSUVPUUKUUGHIZUXCUVPUUNUVHUUBUUFHIZUXIUWKUUJUVHUVNXTUUJUV
      HUVNUXJUUJUUNUVHUVNUXJXMUUPUUBUUFYAYDYBUUBUUFYEYFTWSYGUVPUVKSYHPUUGUWNHIU
      WGYIUUGSYJXCWSUVPUWNUUGLLMGZMGUVSSUXKUUGMYNYKUVPUUGLLUVPUUGUWGVAUVGUVPVNO
      ZUXLYLYMXSUVPUURLUUHUWBUWPUWAYOYPXLYQYRYSYTUUA $.

    $( A bound on a sum over ` R ` .  Equation 10.1.16 of [Shapiro], p. 403.
       (Contributed by Mario Carneiro, 25-May-2016.) $)
    pntrsumo1 $p |- ( x e. RR |-> sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( R ` n ) / ( n x. ( n + 1 ) ) ) ) e. O(1) $=
      ( cr c1 cfv co cmul cdiv wcel wtru crp wbr cc0 cmin wceq syl recnd vm cfl
      cv cfz caddc csu cmpt co1 cpnf cico cres wss cle wa wb 1re elicopnf ax-mp
      simplbi 0red 1red clt 0lt1 a1i simprbi ltletrd elrpd ssriv rpssre resmptd
      syl6ss cvma cchp cneg oveq2 oveq1 fveq2d oveq12d jca 1div1e1 syl6eq 1m1e0
      cfzo c2 cn rprege0d elfznn adantl nnrecred nnred peano2rem chpcl resubcld
      eqcomd cc nncnd ax-1cn pncan sylancl eqeltrd subcld eqtr4d oveq2d 3eqtr3d
      1cnd oveq1d pncan2d peano2cn nnncan2d nnne0d divrec2d sumeq12rdv nndivred
      cn0 eqtrd mulcld divsubdird mulid1d divcan5d eqtr3d negeqd nnrpd fsumrecl
      fzfid cof cvv eqidd offval2 mpteq2dva cabs adantrr syl2anc mpbird eqbrtrd
      sylancr eqeltrrd syl3anc rerpdivcld rpregt0d o1sub2 2pos 0re chpeq0 mpbir
      0m0e0 cuz flge0nn0 nn0p1nn nnuz syl6eleq fsumparts cz flcld sub4d nnm1nn0
      fzval3 chpp1 npcan vmacl pncan2 nn0cnd chpfl subdid recid2d 3eqtrd mul01i
      subsub3d peano2re subcl subid1d peano2nn nnmulcl mpdan nnrp pntrf mulcomd
      ffvelrni mulneg1d negsubdi2d eqtr2d pntrval 3eqtr4d fsumneg mpteq2ia rpre
      subnegd rprege0 clog reex ssexi fsumcl relogcl fsumsub sumeq2dv vmadivsum
      3eqtr4rd harmoniclbnd abssubge0d ad2antrl simprr harmonicubnd elo1d o1sub
      lesubadd2d rpcnne0 divdir simpr rpreccl chpo1ub crli divrcnv rlimo1 o1add
      wne mp1i chpge0 ge0p1rpd divge0 absidd abscld fllep1 rpregt0 lediv2 mpbid
      leabsd letrd o1le o1const mp2an o1res2 syl5eqelr wf eqid ssid o1resb trud
      fmpti ) AFGAUCZUBHZUDIZCUCZBHZVUAVUAGUEIZJIZKIZCUFZUGZUHLZMVUHVUGGUIUJIZU
[encoded data, 5600 characters]
      DWYJUYOYMUYP $.

    $( A bound on a sum over ` R ` .  Equation 10.1.16 of [Shapiro], p. 403.
       (Contributed by Mario Carneiro, 25-May-2016.) $)
    pntrsumbnd $p |- E. c e. RR+ A. m e. ZZ ( abs ` sum_ n e. ( 1 ... m )
        ( ( R ` n ) / ( n x. ( n + 1 ) ) ) ) <_ c $=
      ( c1 cv cfv cfz co csu cle wbr cr crp wtru wcel wa syl vx caddc cmul cdiv
      cfl cabs wral wrex cz wss ssid a1i 1red fzfid cn elfznn adantl nnrp pntrf
      cc ffvelrni peano2nn nnmulcl mpdan nndivred recnd fsumcl pntrsumo1 abscld
      cmpt co1 fsumrecl clt adantr adantlr ad2ant2r fsumabs absge0d cuz simprll
      simplr simprr ltled flword2 syl3anc fzss2 fsumless letrd o1bddrp trud zre
      wi imim1i flid oveq2d sumeq1d fveq2d breq1d mpbidi ralimi2 reximi ax-mp )
      GBHZUEIZJKZCHZAIZXFXFGUBKZUCKZUDKZCLZUFIZEHZMNZBOUGZEPUHZGXCJKZXJCLZUFIZX
      MMNZBUIUGZEPUHXPQBUAOXKGEGUAHZUEIZJKZXJUFIZCLZOOUJQOUKULQUMQXCORZSZXEXJCY
      HGXDUNYHXFXERZSXFUORZXJUTRZYIYJYHXFXDUPUQYJXJYJXGXIYJXFPRXGORXFURPOXFAADF
      USVATYJXHUORXIUORXFVBXFXHVCVDVEVFZTZVGZBOXKVJVKRQBACDFVHULQYBORZGYBMNZSZS
      ZYDYECYRGYCUNYRXFYDRZSZXJYTYJYKYSYJYRXFYCUPZUQYLTVIVLZYHYQXCYBVMNZSZSZXLX
      EYECLYFUUEXKYHXKUTRUUDYNVNVIUUEXEYECUUEGXDUNZUUEYISXJYHYIYKUUDYMVOZVIVLQY
      QYFORYGUUCUUBVPUUEXEXJCUUFUUGVQUUEYDYEXECUUEGYCUNUUEYSSZXJUUHYJYKYSYJUUEU
      UAUQYLTZVIUUHXJUUIVRUUEYCXDVSIRZXEYDUJUUEYGYOXCYBMNUUJQYGUUDWAZYHYOYPUUCV
      TZUUEXCYBUUKUULYHYQUUCWBWCXCYBWDWEXDGYCWFTWGWHWIWJXOYAEPXNXTBOUIXCUIRZXNX
      TYGXNWLUUMYGXNXCWKWMUUMXLXSXMMUUMXKXRUFUUMXEXQXJCUUMXDXCGJXCWNWOWPWQWRWSW
      TXAXB $.

    $( A bound on a sum over ` R ` .  Equation 10.1.16 of [Shapiro], p. 403.
       (Contributed by Mario Carneiro, 14-Apr-2016.) $)
    pntrsumbnd2 $p |- E. c e. RR+ A. k e. NN A. m e. ZZ
     ( abs ` sum_ n e. ( k ... m ) ( ( R ` n ) / ( n x. ( n + 1 ) ) ) ) <_ c $=
      ( c1 cfz co cfv cabs cle wbr cz crp cn wcel wa cr vb caddc cmul cdiv wral
      cv csu wrex pntrsumbnd c2 2rp rpmulcl mpan adantr nnz adantl peano2zm syl
      cmin simplr wceq oveq2 sumeq1d fveq2d breq1d rspcv wi cc0 ad2antrr rpge0d
      sylc c0 sumeq1 sum0 syl6eq abs00bd syl5ibrcom imp a1d wne cuz fzn0 elfznn
      fzfid simpr nnrpd pntrf ffvelrni peano2nnd nnmulcld nndivred sylan2 recnd
      fsumrecl abscld simplll rpred le2add 2timesd breq2d clt cin simpllr nnred
      syl22anc ltm1d fzdisj cc nncnd ax-1cn npcan sylancl eqeltrd nnuz syl6eleq
      cun nnzd eleq2d biimpar peano2uzr syl2anc fzsplit2 oveq1d eqtrd fsumsplit
      uneq2d elfzuz eluznn syl2an syldan pncan2d eqbrtrrd readdcld 2re remulcld
      abs2dif2d a1i letr syl3anc mpand sylbird syld ancomsd pm2.61dane ralimdva
      sylan2b an4s impancom an32s mpd ralrimiva breq2 2ralbidv rspcev rexlimiva
      expr ax-mp ) HCUFZIJZDUFZAKZUUTUUTHUBJZUCJZUDJZDUGZLKZUAUFZMNZCOUEZUAPUHB
      UFZUURIJZUVDDUGZLKZFUFZMNZCOUEBQUEZFPUHZACDEUAGUIUVIUVQUAPUVGPRZUVISZUJUV
      GUCJZPRZUVMUVTMNZCOUEZBQUEZUVQUVRUWAUVIUJPRUVRUWAUKUJUVGULUMZUNUVSUWCBQUV
      SUVJQRZSZHUVJHUSJZIJZUVDDUGZLKZUVGMNZUWCUWGUWHORZUVIUWLUWGUVJORZUWMUWFUWN
      UVSUVJUOUPUVJUQZURUVRUVIUWFUTUVHUWLCUWHOUURUWHVAZUVFUWKUVGMUWPUVEUWJLUWPU
      USUWIUVDDUURUWHHIVBVCVDVEVFVKUVRUWFUVIUWLUWCVGUVRUWFSZUWLUVIUWCUWQUWLSZUV
      HUWBCOUWRUURORZUVHUWBUWQUWSUWLUVHUWBUWQUWSSZUWLUVHSZUWBUWTUXAUWBVGZUVKVLU
      WTUVKVLVAZSUWBUXAUWTUXCUWBUWTUWBUXCVHUVTMNUWTUVTUVRUWAUWFUWSUWEVIVJUXCUVM
      VHUVTMUXCUVLUXCUVLVLUVDDUGVHUVKVLUVDDVMUVDDVNVOVPVEVQVRVSUVKVLVTUWTUURUVJ
      WAKZRZUXBUVJUURWBUWTUXESZUVHUWLUWBUXFUVHUWLSZUVFUWKUBJZUVGUVGUBJZMNZUWBUX
      FUVFTRUWKTRUVGTRZUXKUXGUXJVGUXFUVEUXFUVEUXFUUSUVDDUXFHUURWDZUUTUUSRZUXFUU
      TQRZUVDTRZUUTUURWCUXFUXNSZUVAUVCUXPUUTPRUVATRUXPUUTUXFUXNWEZWFPTUUTAAEGWG
      WHURUXPUUTUVBUXQUXPUUTUXQWIWJWKZWLZWNWMZWOZUXFUWJUXFUWJUXFUWIUVDDUXFHUWHW
      DUUTUWIRUXFUXNUXOUUTUWHWCUXRWLWNWMZWOZUXFUVGUVRUWFUWSUXEWPWQZUYDUVFUWKUVG
      UVGWRXEUXFUXJUXHUVTMNZUWBUXFUVTUXIUXHMUXFUVGUXFUVGUYDWMWSWTUXFUVMUXHMNZUY
      EUWBUXFUVEUWJUSJZLKUVMUXHMUXFUYGUVLLUXFUYGUWJUVLUBJZUWJUSJUVLUXFUVEUYHUWJ
      USUXFUWIUVKUVDUUSDUXFUWHUVJXANUWIUVKXBVLVAUXFUVJUXFUVJUVRUWFUWSUXEXCZXDXF
      HUWHUVJUURXGURUXFUUSUWIUWHHUBJZUURIJZXPZUWIUVKXPUXFUYJHWAKZRUURUWHWAKRZUU
      SUYLVAUXFUYJQUYMUXFUYJUVJQUXFUVJXHRZHXHRZUYJUVJVAZUXFUVJUYIXIXJUVJHXKZXLZ
      UYIXMXNXOUXFUWMUURUYJWAKZRZUYNUXFUWNUWMUXFUVJUYIXQUWOURUWTVUAUXEUWTUYTUXD
      UURUWTUYJUVJWAUWTUYOUYPUYQUWTUVJUVRUWFUWSUTXIXJUYRXLVDXRXSUWHUURXTYAUWHHU
      URYBYAUXFUYKUVKUWIUXFUYJUVJUURIUYSYCYFYDUXLUXFUXMSUVDUXSWMYEYCUXFUWJUVLUY
      BUXFUVLUXFUVKUVDDUXFUVJUURWDUXFUUTUVKRZUXNUXOUXFUWFUUTUXDRUXNVUBUYIUUTUVJ
      UURYGUUTUVJYHYIUXRYJWNWMZYKYDVDUXFUVEUWJUXTUYBYPYLUXFUVMTRUXHTRUVTTRUYFUY
      ESUWBVGUXFUVLVUCWOUXFUVFUWKUYAUYCYMUXFUJUVGUJTRUXFYNYQUYDYOUVMUXHUVTYRYSY
      TUUAUUBUUCUUFUUDVRUUGUUPUUEUUHUUIUUJUUKUVPUWDFUVTPUVNUVTVAUVOUWBBCQOUVNUV
      TUVMMUULUUMUUNYAUUOUUQ $.

    $( Selberg's symmetry formula, using the residual of the second Chebyshev
       function.  Equation 10.6.2 of [Shapiro], p. 428.  (Contributed by Mario
       Carneiro, 16-Apr-2016.) $)
    selbergr $p |- ( x e. RR+ |-> ( ( ( ( R ` x ) x. ( log ` x ) ) +
      sum_ d e. ( 1 ... ( |_ ` x ) ) ( ( Lam ` d ) x. ( R ` ( x / d ) ) ) )
        / x ) ) e. O(1) $=
      ( crp cfv cmul co cdiv csu caddc cmin wcel cr recnd mulcld oveq1d oveq2d
      cc cv cchp clog c1 cfl cfz cvma c2 cmpt cof co1 wceq wtru cvv reex rpssre
      ssexi a1i wa ovexd eqidd offval2 trud pntrf ffvelrni relogcl fzfid elfznn
      cn adantl vmacl rpre nndivre syl2an chpcl fsumcl addcld rpcn rpne0 divcld
      syl nndivred nnncan2d subsub4d pntrval subdird addsubd eqtr4d cc0 rpcnne0
      eqtrd divsubdir syl3anc divcan3d 3eqtrd 2timesd 3eqtr4d addsubassd adantr
      wne fsumsub subdid nnrpd rpdivcl sylan2 div12 sumeq2dv fsummulc2 3eqtr4rd
      3eqtr3rd 3eqtr3d mpteq2ia eqtri selberg2 vmadivsum o1sub mp2an eqeltrri )
      AFAUAZUBGZXSUCGZHIZUDXSUEGZUFIZDUAZUGGZXSYEJIZUBGZHIZDKZLIZXSJIZUHYAHIZMI
      ZUIZAFYDYFYEJIZDKZYAMIZUIZMUJIZAFXSBGZYAHIZYDYFYGBGZHIZDKZLIZXSJIZUIZUKYT
      AFYNYRMIZUIZUUHYTUUJULUMAFYNYRMYOYSUNUNUNFUNNUMFOUOUPUQURUMXSFNZUSZYLYMMU
      TUULYQYAMUTUMYOVAUMYSVAVBVCAFUUIUUGUUKUUBYJLIZXSJIZYAMIZYRMIUUNYQMIZUUIUU
      GUUKUUNYQYAUUKUUMXSUUKUUBYJUUKUUAYAUUKUUAFOXSBBCEVDVEPUUKYAXSVFPZQZUUKYDY
      IDUUKUDYCVGZUUKYEYDNZUSZYFYHUVAYFUVAYEVINZYFONUUTUVBUUKYEYCVHZVJZYEVKWAZP
      ZUVAYHUVAYGONZYHONUUKXSONZUVBUVGUUTXSVLZUVCXSYEVMVNZYGVOWAPZQZVPZVQZXSVRZ
      XSVSZVTUUKYDYPDUUSUVAYPUVAYFYEUVEUVDWBPZVPZUUQWCUUKUUOYNYRMUUKYLYAMIZYAMI
      YLYAYALIZMIUUOYNUUKYLYAYAUUKYKXSUUKYBYJUUKXTYAUUKXTUUKUVHXTONUVIXSVOWAPZU
      UQQZUVMVQZUVOUVPVTUUQUUQWDUUKUUNUVSYAMUUKUUNYKXSYAHIZMIZXSJIZYLUWDXSJIZMI
      ZUVSUUKUUMUWEXSJUUKUUMYBUWDMIZYJLIUWEUUKUUBUWIYJLUUKUUBXTXSMIZYAHIUWIUUKU
      UAUWJYAHXSBCEWERUUKXTXSYAUWAUVOUUQWFWKRUUKYBYJUWDUWBUVMUUKXSYAUVOUUQQZWGW
      HRUUKYKTNUWDTNXSTNZXSWIWTUSZUWFUWHULUWCUWKXSWJZYKUWDXSWLWMUUKUWGYAYLMUUKY
      AXSUUQUVOUVPWNSWORUUKYMUVTYLMUUKYAUUQWPSWQRUUKUUMXSYQHIZMIZXSJIZUUNUWOXSJ
      IZMIZUUGUUPUUKUUMTNUWOTNUWMUWQUWSULUVNUUKXSYQUVOUVRQZUWNUUMUWOXSWLWMUUKUW
      PUUFXSJUUKUWPUUBYJUWOMIZLIUUFUUKUUBYJUWOUURUVMUWTWRUUKUXAUUEUUBLUUKYDYIXS
      YPHIZMIZDKYJYDUXBDKZMIUUEUXAUUKYDYIUXBDUUSUVLUVAXSYPUUKUWLUUTUVOWSZUVQQXA
      UUKYDUUDUXCDUVAYFYHYGMIZHIYIYFYGHIZMIUUDUXCUVAYFYHYGUVFUVKUVAYGUVJPXBUVAU
      UCUXFYFHUVAYGFNZUUCUXFULUUTUUKYEFNZUXHUUTYEUVCXCXSYEXDXEYGBCEWEWASUVAUXBU
      XGYIMUVAUWLYFTNYETNYEWIWTUSZUXBUXGULUXEUVFUVAUXIUXJUVAYEUVDXCYEWJWAXSYFYE
      XFWMSWQXGUUKUWOUXDYJMUUKYDYPXSDUUSUVOUVQXHSXISWKRUUKUWRYQUUNMUUKYQXSUVRUV
      OUVPWNSXJXKXLXMYOUKNYSUKNYTUKNADXNADXOYOYSXPXQXR $.

    $( Selberg's symmetry formula, using the residual of the second Chebyshev
       function.  Equation 10.6.8 of [Shapiro], p. 429.  (Contributed by Mario
       Carneiro, 30-May-2016.) $)
    selberg3r $p |- ( x e. ( 1 (,) +oo ) |-> ( ( ( ( R ` x ) x. ( log ` x ) ) +
      ( ( 2 / ( log ` x ) ) x. sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( ( Lam ` n ) x. ( R ` ( x / n ) ) ) x. ( log ` n ) ) ) )
          / x ) ) e. O(1) $=
      ( c1 co cfv cmul c2 cdiv caddc cmpt wcel wtru cmin cr a1i recnd oveq2d cv
      cpnf cioo clog cfl cfz cvma csu co1 cchp elioore adantl crp 1red eliooord
      1rp clt wbr simpld ltled rpgecld relogcld 2timesd chpcl remulcld rplogcld
      wa syl rerpdivcld fzfid cn elfznn vmacl adantr nndivred fsumrecl readdcld
      2re nnrpd subsub4d eqtr4d oveq1d subcld 2cn rpne0d divcld mulcld nnncan2d
      pntrf ffvelrni addcld divsubdird addsubassd subdid fsummulc2 mul32d nncnd
      fsumsub nnne0d div23d div12d oveq12d wceq rpdivcld pntrval eqtrd sumeq2dv
      eqtr3d mul12d 3eqtr3rd subdird addsubd divcan3d 3eqtrrd resubcld selberg3
      cc mpteq2dva rehalfcld div32d eqcomd cc0 wne divcan2d wss ioossre o1const
      2ne0 mp2an vmalogdivsum o1mul2 eqeltrrd o1sub2 eqeltrd trud ) AFUBUCGZAUA
      ZBHZYQUDHZIGZJYSKGZFYQUEHZUFGZCUAZUGHZYQUUDKGZBHZIGUUDUDHZIGZCUHZIGZLGZYQ
      KGZMZUINOUUNAYPYQUJHZYSIGZUUAUUCUUEUUFUJHZIGZUUHIGZCUHZIGZLGZYQKGZJYSIGZP
      GZUUAUUCUUEUUDKGZUUHIGZCUHZIGZYSPGZPGZMUIOAYPUUMUVKOYQYPNZVGZUVKUVCYSPGZY
      SPGZUVJPGUVNUVIPGZUUMUVMUVEUVOUVJPUVMUVEUVCYSYSLGZPGUVOUVMUVDUVQUVCPUVMYS
      UVMYSUVMYQUVMYQFUVLYQQNZOYQFUBUKULZFUMNUVMUPRUVMFYQUVMUNUVSUVMFYQUQURZYQU
      BUQURZUVLUVTUWAVGOYQFUBUOULUSZUTVAZVBZSZVCTUVMUVCYSYSUVMUVCUVMUVBYQUVMUUP
      UVAUVMUUOYSUVMUVRUUOQNUVSYQVDVHZUWDVEZUVMUUAUUTUVMJYSJQNUVMVRRZUVMYQUVSUW
      BVFZVIZUVMUUCUUSCUVMFUUBVJZUVMUUDUUCNZVGZUURUUHUWMUUEUUQUWMUUDVKNZUUEQNUW
      LUWNUVMUUDUUBVLULZUUDVMVHZUWMUUFQNUUQQNUWMYQUUDUVMUVRUWLUVSVNUWOVOZUUFVDV
      HZVEUWMUUDUWMUUDUWOVSZVBZVEZVPZVEZVQZUWCVIZSZUWEUWEVTWAWBUVMUVNUVIYSUVMUV
      CYSUXFUWEWCUVMUUAUVHUVMJYSJXQNZUVMWDRUWEUVMYSUWIWEZWFZUVMUVHUVMUUCUVGCUWK
      UWMUVFUUHUWMUUEUUDUWPUWOVOUWTVEZVPZSZWGZUWEWHUVMYTUVALGZYQUVIIGZPGZYQKGUX
      NYQKGZUXOYQKGZPGUUMUVPUVMUXNUXOYQUVMYTUVAUVMYRYSUVMYRUVMYQUMNZYRQNUWCUMQY
      QBBDEWIZWJVHSUWEWGZUVMUVAUXCSZWKUVMYQUVIUVMYQUVSSZUXMWGZUYCUVMYQUWCWEZWLU
      VMUXPUULYQKUVMUXPYTUVAUXOPGZLGUULUVMYTUVAUXOUYAUYBUYDWMUVMUYFUUKYTLUVMUUA
      UUTYQUVHIGZPGZIGUVAUUAUYGIGZPGUUKUYFUVMUUAUUTUYGUXIUVMUUTUXBSUVMYQUVHUYCU
      XLWGWNUVMUYHUUJUUAIUVMUYHUUCUUSYQUVGIGZPGZCUHZUUJUVMUYHUUTUUCUYJCUHZPGUYL
      UVMUYGUYMUUTPUVMUUCUVGYQCUWKUYCUWMUVGUXJSZWOTUVMUUCUUSUYJCUWKUWMUUSUXASUW
      MYQUVGUVMYQXQNUWLUYCVNZUYNWGWRWAUVMUUCUYKUUICUWMUYKUUEUUHIGZUUGIGZUUIUWMU
      YKUYPUUQIGZUYPUUFIGZPGZUYQUWMUUSUYRUYJUYSPUWMUUEUUQUUHUWMUUEUWPSZUWMUUQUW
      RSZUWMUUHUWTSZWPUWMYQUYPUUDKGZIGUYJUYSUWMVUDUVGYQIUWMUUEUUHUUDVUAVUCUWMUU
      DUWOWQZUWMUUDUWOWSZWTTUWMYQUYPUUDUYOUWMUUEUUHVUAVUCWGZVUEVUFXAXHXBUWMUYQU
      YPUUQUUFPGZIGUYTUWMUUGVUHUYPIUWMUUFUMNZUUGVUHXCUWMYQUUDUVMUXSUWLUWCVNUWSX
      DZUUFBDEXEVHTUWMUYPUUQUUFVUGVUBUWMUUFUWQSWNXFWAUWMUUEUUGUUHVUAUWMUUGUWMVU
      IUUGQNVUJUMQUUFBUXTWJVHSVUCWPWAXGXFTUVMUYIUXOUVAPUVMUUAYQUVHUXIUYCUXLXITX
      JTXFWBUVMUXQUVNUXRUVIPUVMUXQUVBYQYSIGZPGZYQKGZUVNUVMUXNVULYQKUVMUXNUUPVUK
      PGZUVALGVULUVMYTVUNUVALUVMYTUUOYQPGZYSIGVUNUVMYRVUOYSIUVMUXSYRVUOXCUWCYQB
      DEXEVHWBUVMUUOYQYSUVMUUOUWFSUYCUWEXKXFWBUVMUUPUVAVUKUVMUUPUWGSUYBUVMYQYSU
      YCUWEWGZXLWAWBUVMVUMUVCVUKYQKGZPGUVNUVMUVBVUKYQUVMUVBUXDSVUPUYCUYEWLUVMVU
      QYSUVCPUVMYSYQUWEUYCUYEXMTXFXFUVMUVIYQUXMUYCUYEXMXBXJXNXROAYPUVEUVJQUVMUV
      CUVDUXEUVMJYSUWHUWDVEXOUVMUVIYSUVMUUAUVHUWJUXKVEUWDXOAYPUVEMUINOACXPROAYP
      JUVHYSKGZYSJKGZPGZIGZMAYPUVJMUIOAYPVVAUVJUVMVVAJVURIGZJVUSIGZPGUVJUVMJVUR
      VUSUVMJUWHSZUVMVURUVMUVHYSUXKUWIVIZSUVMVUSUVMYSUWDXSZSWNUVMVVBUVIVVCYSPUV
      MUVIVVBUVMJYSUVHVVDUWEUXLUXHXTYAUVMYSJUWEVVDJYBYCUVMYHRYDXBXFXROAYPJVUTQU
      WHUVMVURVUSVVEVVFXOAYPJMUINZOYPQYEUXGVVGFUBYFWDAYPJYGYIRAYPVUTMUINOACYJRY
      KYLYMYNYO $.

    $( Selberg's symmetry formula, using the residual of the second Chebyshev
       function.  Equation 10.6.11 of [Shapiro], p. 430.  (Contributed by Mario
       Carneiro, 30-May-2016.) $)
    selberg4r $p |- ( x e. ( 1 (,) +oo ) |-> ( ( ( ( R ` x ) x. ( log ` x ) ) -
      ( ( 2 / ( log ` x ) ) x. sum_ n e. ( 1 ... ( |_ ` x ) )
          ( ( Lam ` n ) x. sum_ m e. ( 1 ... ( |_ ` ( x / n ) ) )
            ( ( Lam ` m ) x. ( R ` ( ( x / n ) / m ) ) ) ) ) )
        / x ) ) e. O(1) $=
      ( c1 co cmul c2 cdiv csu cmin wcel wtru cr recnd eqtrd adantr remulcld cv
      cpnf cioo cfv clog cfl cfz cvma cmpt co1 cchp caddc wa crp elioore adantl
      wceq 1rp a1i 1red clt wbr eliooord simpld ltled rpgecld pntrval syl chpcl
      oveq1d relogcld subdird ad2antrr cn elfznn nnrpd rpdivcld oveq2d nndivred
      vmacl subdid sumeq2dv fzfid mulcld fsumsub fsumrecl fsumcl 2re rerpdivcld
      rplogcld oveq12d sub4d resubcld rpne0d divsubdird divcan3d fsumdivc nncnd
      divassd nnne0d div12d cc cc0 wne div32d eqtr3d 3eqtr4d subsub2d mpteq2dva
      divcld selberg4 2cnd rehalfcld eqcomd divcan2d ioossre o1const 2vmadivsum
      2ne0 wss sylancr o1mul2 eqeltrrd o1add2 eqeltrd trud ) AGUBUCHZAUAZBUDZYH
      UEUDZIHZJYJKHZGYHUFUDZUGHZDUAZUHUDZGYHYOKHZUFUDZUGHZCUAZUHUDZYQYTKHZBUDZI
      HZCLZIHZDLZIHZMHZYHKHZUIZUJNOUUKAYGYHUKUDZYJIHZYLYNYPYSUUAUUBUKUDZIHZCLZI
      HZDLZIHZMHZYHKHZYLYNYPYOKHZYSUUAYTKHZCLZIHZDLZIHZYJMHZULHZUIUJOAYGUUJUVIO
      YHYGNZUMZUUJUUTYHYJIHZYLYNYPYSUUAUUBIHZCLZIHZDLZIHZMHZMHZYHKHZUVIUVKUUIUV
      SYHKUVKUUIUUMUVLMHZUUSUVQMHZMHUVSUVKYKUWAUUHUWBMUVKYKUULYHMHZYJIHUWAUVKYI
      UWCYJIUVKYHUNNZYIUWCUQUVKYHGUVJYHPNZOYHGUBUOUPZGUNNUVKURUSUVKGYHUVKUTUWFU
      VKGYHVAVBZYHUBVAVBZUVJUWGUWHUMOYHGUBVCUPVDZVEVFZYHBEFVGVHVJUVKUULYHYJUVKU
      ULUVKUWEUULPNUWFYHVIVHZQUVKYHUWFQZUVKYJUVKYHUWJVKZQZVLRUVKUUHYLUURUVPMHZI
      HUWBUVKUUGUWOYLIUVKUUGYNUUQUVOMHZDLUWOUVKYNUUFUWPDUVKYOYNNZUMZUUFYPUUPUVN
      MHZIHUWPUWRUUEUWSYPIUWRUUEYSUUOUVMMHZCLUWSUWRYSUUDUWTCUWRYTYSNZUMZUUDUUAU
      UNUUBMHZIHUWTUXBUUCUXCUUAIUXBUUBUNNUUCUXCUQUXBYQYTUXBYHYOUVKUWDUWQUXAUWJV
      MUWRYOUNNUXAUWRYOUWQYOVNNZUVKYOYMVOUPZVPSVQUXBYTUXAYTVNNZUWRYTYRVOUPZVPVQ
      UUBBEFVGVHVRUXBUUAUUNUUBUXBUUAUXBUXFUUAPNUXGYTVTVHZQZUXBUUNUXBUUBPNUUNPNU
      XBYQYTUWRYQPNUXAUWRYHYOUVKUWEUWQUWFSUXEVSSZUXGVSZUUBVIVHZQUXBUUBUXKQZWARW
      BUWRYSUUOUVMCUWRGYRWCZUXBUUOUXBUUAUUNUXHUXLTZQUXBUUAUUBUXIUXMWDZWERVRUWRY
      PUUPUVNUWRYPUWRUXDYPPNUXEYOVTVHZQZUWRUUPUWRYSUUOCUXNUXOWFZQUWRYSUVMCUXNUX
      PWGZWARWBUVKYNUUQUVODUVKGYMWCZUWRUUQUWRYPUUPUXQUXSTZQUWRYPUVNUXRUXTWDZWER
      VRUVKYLUURUVPUVKYLUVKJYJJPNUVKWHUSZUVKYHUWFUWIWJZWIZQZUVKUURUVKYNUUQDUYAU
      YBWFZQUVKYNUVODUYAUYCWGZWARWKUVKUUMUVLUUSUVQUVKUUMUVKUULYJUWKUWMTZQUVKYHY
      JUWLUWNWDUVKUUSUVKYLUURUYFUYHTZQUVKYLUVPUYGUYIWDWLRVJUVKUVTUVAUVRYHKHZMHZ
      UVIUVKUUTUVRYHUVKUUTUVKUUMUUSUYJUYKWMZQZUVKUVRUVKUVLUVQUVKYHYJUWFUWMTZUVK
      YLUVPUYFUVKYNUVODUYAUWRYPUVNUXQUWRYSUVMCUXNUXBUUAUUBUXHUXKTZWFZTZWFZTWMQU
      WLUVKYHUWJWNZWOUVKUYMUVAYJUVGMHZMHUVIUVKUYLVUBUVAMUVKUYLUVLYHKHZUVQYHKHZM
      HVUBUVKUVLUVQYHUVKUVLUYPQUVKYLUVPUYGUVKUVPUYTQZWDUWLVUAWOUVKVUCYJVUDUVGMU
      VKYJYHUWNUWLVUAWPUVKVUDYLUVPYHKHZIHUVGUVKYLUVPYHUYGVUEUWLVUAWSUVKVUFUVFYL
      IUVKVUFYNUVOYHKHZDLUVFUVKYNUVOYHDUYAUWLUWRUVOUYSQVUAWQUVKYNVUGUVEDUWRYPUV
      NYHKHZIHYPUVDYOKHZIHVUGUVEUWRVUHVUIYPIUWRYSUVMYHKHZCLYSUVCYOKHZCLVUHVUIUW
      RYSVUJVUKCUXBVUJYHVUKIHZYHKHVUKUXBUVMVULYHKUXBYQUVCIHUVMVULUXBYQUUAYTUXBY
      QUXJQUXIUXBYTUXGWRUXBYTUXGWTXAUXBYHYOUVCUWRYHXBNZUXAUVKVUMUWQUWLSZSZUWRYO
      XBNUXAUWRYOUXEWRZSUXBUVCUXBUUAYTUXHUXGVSZQZUWRYOXCXDUXAUWRYOUXEWTZSXEXFVJ
      UXBVUKYHUXBVUKUXBUVCYOVUQUWRUXDUXAUXESVSQVUOUWRYHXCXDZUXAUVKVUTUWQVUASZSW
      PRWBUWRYSUVMYHCUXNVUNUXBUVMUYQQVVAWQUWRYSUVCYOCUXNVUPVURVUSWQXGVRUWRYPUVN
      YHUXRUWRUVNUYRQVUNVVAWSUWRYPYOUVDUXRVUPUWRUVDUWRYSUVCCUXNVUQWFZQVUSXEXGWB
      RVRRWKRVRUVKUVAYJUVGUVKUUTYHUYOUWLVUAXJUWNUVKUVGUVKYLUVFUYFUVKYNUVEDUYAUW
      RUVBUVDUWRYPYOUXQUXEVSVVBTWFZTZQXHRRRXIOAYGUVAUVHPUVKUUTYHUYNUWJWIUVKUVGY
      JVVDUWMWMAYGUVAUIUJNOACDXKUSOAYGJUVFYJKHZYJJKHZMHZIHZUIAYGUVHUIUJOAYGVVHU
      VHUVKVVHJVVEIHZJVVFIHZMHUVHUVKJVVEVVFUVKXLZUVKVVEUVKUVFYJVVCUYEWIZQUVKVVF
      UVKYJUWMXMZQWAUVKVVIUVGVVJYJMUVKUVGVVIUVKJYJUVFVVKUWNUVKUVFVVCQUVKYJUYEWN
      XEXNUVKYJJUWNVVKJXCXDUVKXSUSXOWKRXIOAYGJVVGPUYDUVKVVEVVFVVLVVMWMOYGPXTJXB
      NAYGJUIUJNGUBXPOXLAYGJXQYAAYGVVGUIUJNOACDXRUSYBYCYDYEYF $.

    $( The sum of ~ selberg3r and ~ selberg4r .  (Contributed by Mario
       Carneiro, 31-May-2016.) $)
    selberg34r $p |- ( x e. ( 1 (,) +oo ) |-> ( ( ( ( R ` x ) x. ( log ` x ) )
      - ( sum_ n e. ( 1 ... ( |_ ` x ) )
          ( ( R ` ( x / n ) ) x. ( sum_ m e. { y e. NN | y || n }
            ( ( Lam ` m ) x. ( Lam ` ( n / m ) ) ) -
          ( ( Lam ` n ) x. ( log ` n ) ) ) ) / ( log ` x ) ) )
        / x ) ) e. O(1) $=
      ( c1 co cfv cmul cdiv csu cmin wcel wtru c2 cr remulcld recnd vk cpnf cfl
      cioo cv clog cfz cdvds wbr cn crab cvma co1 wa 2re a1i crp elioore adantl
      cmpt 1rp 1red clt eliooord ltled rpgecld pntrf ffvelrni relogcld rplogcld
      simpld syl rerpdivcld fzfid adantr elfznn rpdivcld cfn wss dvdsssfz1 ssfi
      nnrpd syl2anc ssrab2 simpr sseldi vmacl dvdsdivcl sylan fsumrecl resubcld
      mulcld subcld 2cnd rpne0d cc0 wne 2ne0 divcld divrecd divsubdird divcan3d
      divdiv32d div32d oveq1d oveq12d 3eqtr3d mpteq2dva rehalfcld subdid mul12d
      rpcnd eqtrd caddc mulassd eqtr4d oveq2d sumeq2dv fsumsub fsummulc2 fveq2d
      oveq2 oveq1 adantrr anasss dvdsflsumcom cc ad2antrr nncnd nnne0d divdiv1d
      wceq eqcomd mulcomd 3eqtrd subsub3d 2timesd add32d readdcld addsubassd
      divdird selberg3r selberg4r o1add2 eqeltrd ioossre halfcld o1const o1mul2
      1cnd sylancr eqeltrrd trud ) AHUBUDIZAUEZCJZUUOUFJZKIZHUUOUCJZUGIZUUOEUEZ
      LIZCJZBUEUVAUHUIZBUJUKZDUEZULJZUVAUVFLIZULJZKIZDMZUVAULJZUVAUFJZKIZNIZKIZ
      EMZUUQLIZNIZUUOLIZUTZUMOPAUUNQUURKIZQUUQLIZUVQKIZNIZUUOLIZHQLIZKIZUTUWAUM
      PAUUNUWHUVTPUUOUUNOZUNZUWFQLIUWEQLIZUUOLIUWHUVTUWJUWEUUOQUWJUWBUWDUWJUWBU
      WJQUURQROUWJUOUPZUWJUUPUUQUWJUUOUQOZUUPROUWJUUOHUWIUUOROPUUOHUBURUSZHUQOU
      WJVAUPUWJHUUOUWJVBZUWNUWJHUUOVCUIZUUOUBVCUIZUWIUWPUWQUNPUUOHUBVDUSVKZVEVF
      ZUQRUUOCCFGVGZVHVLUWJUUOUWSVISZSZTZUWJUWCUVQUWJUWCUWJQUUQUWLUWJUUOUWNUWRV
      JZVMZTZUWJUVQUWJUUTUVPEUWJHUUSVNZUWJUVAUUTOZUNZUVCUVOUXIUVBUQOUVCROZUXIUU
      OUVAUWJUWMUXHUWSVOUXIUVAUXHUVAUJOZUWJUVAUUSVPUSZWBZVQUQRUVBCUWTVHVLZUXIUV
      KUVNUXIUVEUVJDUXIHUVAUGIZVROUVEUXOVSZUVEVROUXIHUVAVNUXIUXKUXPUXLUVABVTVLU
      XOUVEWAWCZUXIUVFUVEOZUNZUVGUVIUXSUVFUJOZUVGROZUXSUVEUJUVFUVDBUJWDZUXIUXRW
      EWFUVFWGZVLZUXSUVHUJOUVIROZUXSUVEUJUVHUYBUXIUXKUXRUVHUVEOUXLBUVFUVAWHWIWF
      UVHWGVLZSZWJZUXIUVLUVMUXIUXKUVLROUXLUVAWGVLZUXIUVAUXMVIZSWKSWJZTZWLZWMZUW
      JUUOUWNTZUWJWNZUWJUUOUWSWOZQWPWQUWJWRUPZXCUWJUWFQUWJUWEUUOUYNUYOUYQWSUYPU
      YRWTUWJUWKUVSUUOLUWJUWKUWBQLIZUWDQLIZNIUVSUWJUWBUWDQUXCUYMUYPUYRXAUWJUYSU
      URUYTUVRNUWJUURQUWJUURUXATZUYPUYRXBUWJUYTQUVRKIZQLIUVRUWJUWDVUBQLUWJQUUQU
      VQUYPUWJUUQUXDXLUYLUWJUUQUXDWOXDXEUWJUVRQUWJUVRUWJUVQUUQUYKUXDVMTUYPUYRXB
      XMXFXMXEXGXHPAUUNUWFUWGRUWJUWEUUOUWJUWBUWDUXBUWJUWCUVQUXEUYKSWKUWSVMUWJHU
      WOXIPAUUNUWFUTAUUNUURUWCUUTUVLUVCKIZUVMKIZEMZKIZXNIZUUOLIZUURUWCUUTUVGHUU
      OUVFLIZUCJZUGIZUAUEZULJZVUIVULLIZCJZKIZUAMZKIZDMZKIZNIZUUOLIZXNIZUTUMPAUU
      NUWFVVCUWJUWFVUGVVAXNIZUUOLIVVCUWJUWEVVDUUOLUWJUWEUWBVUFXNIZVUTNIZVUGUURX
      NIZVUTNIVVDUWJUWEUWBVUTVUFNIZNIVVFUWJUWDVVHUWBNUWJUWDUWCVUSVUENIZKIVVHUWJ
      UVQVVIUWCKUWJUVQUUTUVCUVKKIZVUDNIZEMUUTVVJEMZVUENIVVIUWJUUTUVPVVKEUXIUVPV
      VJUVCUVNKIZNIVVKUXIUVCUVKUVNUXIUVCUXNTZUXIUVKUYHTZUXIUVLUVMUXIUVLUYITZUXI
      UVMUYJTZWLXJUXIVVMVUDVVJNUXIVVMUVLUVCUVMKIKIVUDUXIUVCUVLUVMVVNVVPVVQXKUXI
      UVLUVCUVMVVPVVNVVQXOXPXQXMXRUWJUUTVVJVUDEUXGUXIUVCUVKVVNVVOWLUXIVUCUVMUXI
      UVLUVCVVPVVNWLVVQWLXSUWJVVLVUSVUENUWJVVLUUTUVEUVCUVJKIZDMZEMUUTVUKUUOUVFV
      ULKIZLIZCJZUVGVVTUVFLIZULJZKIZKIZUAMZDMVUSUWJUUTVVJVVSEUXIUVEUVJUVCDUXQVV
      NUXSUVJUYGTXTXRUWJBUUOVVRVWFUAEDUVAVVTYLZUVCVWBUVJVWEKVWHUVBVWACUVAVVTUUO
      LYBYAVWHUVIVWDUVGKVWHUVHVWCULUVAVVTUVFLYCYAXQXFUWNUWJUXHUXRUNUNZVVRVWIUVC
      UVJUWJUXHUXJUXRUXNYDVWIUVGUVIUWJUXHUXRUYAUYDYEUWJUXHUXRUYEUYFYESSTYFUWJUU
      TVWGVURDUWJUVFUUTOZUNZVWGVUKUVGVUPKIZUAMVURVWKVUKVWFVWLUAVWKVULVUKOZUNZVW
      FVUOUVGVUMKIZKIVWOVUOKIVWLVWNVWBVUOVWEVWOKVWNVWAVUNCVWNVUNVWAVWNUUOUVFVUL
      UWJUUOYGOVWJVWMUYOYHVWNUVFVWKUVFUQOVWMVWKUVFVWJUXTUWJUVFUUSVPUSZWBVOZXLZV
      WNVULVWMVULUJOZVWKVULVUJVPUSZYIZVWNUVFVWQWOZVWNVULVWTYJYKYMYAVWNVWDVUMUVG
      KVWNVWCVULULVWNVULUVFVXAVWRVXBXBYAXQXFVWNVUOVWOVWNVUOVWNVUNUQOVUOROVWNVUI
      VULVWNUUOUVFUWJUWMVWJVWMUWSYHVWQVQVWNVULVWTWBVQUQRVUNCUWTVHVLZTZVWNUVGVUM
      VWKUVGYGOVWMVWKUVGVWKUXTUYAVWPUYCVLZTZVOZVWNVUMVWNVWSVUMROVWTVULWGVLZTZWL
      YNVWNUVGVUMVUOVXGVXIVXDXOYOXRVWKVUKVUPUVGUAVWKHVUJVNZVXFVWNVUPVWNVUMVUOVX
      HVXCSZTXTXPXRYOXEYOXQUWJUWCVUSVUEUXFUWJVUSUWJUUTVURDUXGVWKUVGVUQVXEVWKVUK
      VUPUAVXJVXKWJSWJZTZUWJVUEUWJUUTVUDEUXGUXIVUCUVMUXIUVLUVCUYIUXNSUYJSWJZTXJ
      XMXQUWJUWBVUTVUFUXCUWJUWCVUSUXFVXMWLZUWJVUFUWJUWCVUEUXEVXNSZTZYPXMUWJVVEV
      VGVUTNUWJVVEUURUURXNIZVUFXNIVVGUWJUWBVXRVUFXNUWJUURVUAYQXEUWJUURVUFUURVUA
      VXQVUAYRXPXEUWJVUGUURVUTUWJVUGUWJUURVUFUXAVXPYSZTZVUAVXOYTYOXEUWJVUGVVAUU
      OVXTUWJUURVUTVUAVXOWMUYOUYQUUAXMXHPAUUNVUHVVBRUWJVUGUUOVXSUWSVMUWJVVAUUOU
      WJUURVUTUXAUWJUWCVUSUXEVXLSWKUWSVMAUUNVUHUTUMOPACEFGUUBUPAUUNVVBUTUMOPACU
      ADFGUUCUPUUDUUEPUUNRVSUWGYGOAUUNUWGUTUMOHUBUUFPHPUUJUUGAUUNUWGUUHUUKUUIUU
      LUUM $.
  $}

  ${
    $d a c i k m n x y A $.  $d n x y B $.  $d m n x ph $.  $d c k m n x y S $.
    $d c m n x y R $.  $d m n T $.
    pntsval.1 $e |- S = ( a e. RR |-> sum_ i e. ( 1 ... ( |_ ` a ) )
      ( ( Lam ` i ) x. ( ( log ` i ) + ( psi ` ( a / i ) ) ) ) ) $.
    $( Define the "Selberg function", whose asymptotic behavior is the content
       of ~ selberg .  (Contributed by Mario Carneiro, 31-May-2016.) $)
    pntsval $p |- ( A e. RR -> ( S ` A ) = sum_ n e. ( 1 ... ( |_ ` A ) )
      ( ( Lam ` n ) x. ( ( log ` n ) + ( psi ` ( A / n ) ) ) ) ) $=
      ( c1 cv cfl cfv cfz co cvma clog cdiv cchp caddc cmul csu wceq cr oveq12d
      fveq2 oveq2 fveq2d cbvsumv oveq2d wcel oveq1 adantr sumeq12dv sumex fvmpt
      syl5eq ) EAGEHZIJZKLZCHZMJZURNJZUOUROLZPJZQLZRLZCSZGAIJZKLZDHZMJZVHNJZAVH
      OLZPJZQLZRLZDSZUABUOATZVEUQVIVJUOVHOLZPJZQLZRLZDSVOUQVDVTCDURVHTZUSVIVCVS
      RURVHMUCWAUTVJVBVRQURVHNUCWAVAVQPURVHUOOUDUEUBUBUFVPUQVGVTVNDVPUPVFGKUOAI
      UCUGVPVTVNTVHUQUHVPVSVMVIRVPVRVLVJQVPVQVKPUOAVHOUIUEUGUGUJUKUNFVGVNDULUM
      $.

    $( Functionality of the Selberg function.  (Contributed by Mario Carneiro,
       31-May-2016.) $)
    pntsf $p |- S : RR --> RR $=
      ( cr c1 cv cfl cfv cfz co cvma clog cdiv cchp caddc cmul csu wcel syl wa
      fzfid cn elfznn adantl vmacl nnrpd relogcld simpl nndivred chpcl readdcld
      remulcld fsumrecl fmpti ) CEEFCGZHIZJKZBGZLIZUSMIZUPUSNKZOIZPKZQKZBRADUPE
      SZURVEBVFFUQUBVFUSURSZUAZUTVDVHUSUCSZUTESVGVIVFUSUQUDUEZUSUFTVHVAVCVHUSVH
      USVJUGUHVHVBESVCESVHUPUSVFVGUIVJUJVBUKTULUMUNUO $.

    $( Selberg's symmetry formula, using the definition of the Selberg
       function.  (Contributed by Mario Carneiro, 31-May-2016.) $)
    selbergs $p |- ( x e. RR+ |->
      ( ( ( S ` x ) / x ) - ( 2 x. ( log ` x ) ) ) ) e. O(1) $=
      ( vn crp cv cfv cdiv co c2 clog cmul cmin cmpt c1 cfl wcel oveq1d cfz csu
      cvma cchp caddc co1 cr wceq rpre pntsval syl mpteq2ia selberg eqeltri ) A
      GAHZBIZUOJKZLUOMINKZOKZPAGQUORIUAKFHZUCIUTMIUOUTJKUDIUEKNKFUBZUOJKZUROKZP
      UFAGUSVCUOGSZUQVBUROVDUPVAUOJVDUOUGSUPVAUHUOUIUOBCFDEUJUKTTULAFUMUN $.

    $( Selberg's symmetry formula, using the definition of the Selberg
       function.  (Contributed by Mario Carneiro, 31-May-2016.) $)
    selbergsb $p |- E. c e. RR+ A. x e. ( 1 [,) +oo )
      ( abs ` ( ( ( S ` x ) / x ) - ( 2 x. ( log ` x ) ) ) ) <_ c $=
      ( vn cv cfv cdiv co clog cmul cmin cabs cle wbr c1 crp wcel cpnf cico cfl
      c2 wral wrex cfz cvma cchp caddc csu selbergb cr wa wb 1re elicopnf ax-mp
      wceq simplbi pntsval syl oveq1d fveq2d breq1d ralbiia rexbii mpbir ) AHZB
      IZVIJKZUDVILIMKZNKZOIZEHZPQZARUAUBKZUEZESUFRVIUCIUGKGHZUHIVSLIVIVSJKUIIUJ
      KMKGUKZVIJKZVLNKZOIZVOPQZAVQUEZESUFAGEULVRWEESVPWDAVQVIVQTZVNWCVOPWFVMWBO
      WFVKWAVLNWFVJVTVIJWFVIUMTZVJVTUSWFWGRVIPQZRUMTWFWGWHUNUOUPRVIUQURUTVIBCGD
      FVAVBVCVCVDVEVFVGVH $.

    $( The Selberg function can be expressed using the convolution product of
       the von Mangoldt function with itself.  (Contributed by Mario Carneiro,
       31-May-2016.) $)
    pntsval2 $p |- ( A e. RR -> ( S ` A ) = sum_ n e. ( 1 ... ( |_ ` A ) )
      ( ( ( Lam ` n ) x. ( log ` n ) ) + sum_ m e. { y e. NN | y || n }
        ( ( Lam ` m ) x. ( Lam ` ( n / m ) ) ) ) ) $=
      ( vk cr wcel cfv c1 co cvma cmul csu cn syl recnd cfl cfz clog cdiv caddc
      cv cchp cdvds crab pntsval wa elfznn adantl vmacl nnrpd relogcld nndivred
      simpl chpcl adddid sumeq2dv wceq fveq2 oveq2 fveq2d oveq12d cbvsumv fzfid
      wbr fsummulc2 chpval oveq2d nncnd ad2antlr nnne0d divcan3d 3eqtr4d ssrab2
      oveq1 id simpr sseldi dvdsdivcl sylan remulcld anasss dvdsflsumcom eqtr4d
      cc syl5eq mulcld fsumadd cfn wss dvdsssfz1 ssfi syl2anc fsumrecl 3eqtrd )
      BJKZBCLMBUALZUBNZFUFZOLZXCUCLZBXCUDNZUGLZUENPNZFQXBXDXEPNZXDXGPNZUENZFQZX
      BXIAUFXCUHVIZARUIZEUFZOLZXCXOUDNZOLZPNZEQZUENFQZBCDFGHUJWTXBXHXKFWTXCXBKZ
      UKZXDXEXGYCXDYCXCRKZXDJKYBYDWTXCXAULUMZXCUNSTZYCXEYCXCYCXCYEUOUPTZYCXGYCX
      FJKXGJKYCBXCWTYBURYEUQXFUSSTZUTVAWTXBXIFQZXBXJFQZUENYIXBXTFQZUENXLYAWTYJY
      KYIUEWTYJXBXPBXOUDNZUGLZPNZEQZYKXBXJYNFEXCXOVBZXDXPXGYMPXCXOOVCYPXFYLUGXC
      XOBUDVDVEVFVGWTYOXBMYLUALZUBNZXPXOIUFZPNZXOUDNZOLZPNZIQZEQYKWTXBYNUUDEWTX
      OXBKZUKZXPYRYSOLZIQZPNYRXPUUGPNZIQYNUUDUUFYRUUGXPIUUFMYQVHUUFXPUUFXORKZXP
      JKZUUEUUJWTXOXAULZUMZXOUNZSTUUFYSYRKZUKZUUGUUPYSRKZUUGJKUUOUUQUUFYSYQULUM
      ZYSUNSTVJUUFYMUUHXPPUUFYLJKYMUUHVBUUFBXOWTUUEURUUMUQYLIVKSVLUUFYRUUCUUIIU
      UPUUBUUGXPPUUPUUAYSOUUPYSXOUUPYSUURVMUUPXOUUEUUJWTUUOUULVNZVMUUPXOUUSVOVP
      VEVLVAVQVAWTABXSUUCIFEXCYTVBZXRUUBXPPUUTXQUUAOXCYTXOUDVSVEVLWTVTWTYBXOXNK
      ZXSWIKYCUVAUKZXSUVBXPXRUVBUUJUUKUVBXNRXOXMARVRZYCUVAWAWBUUNSUVBXQRKXRJKUV
      BXNRXQUVCYCYDUVAXQXNKYEAXOXCWCWDWBXQUNSWEZTWFWGWHWJVLWTXBXIXJFWTMXAVHZYCX
      DXEYFYGWKZYCXDXGYFYHWKWLWTXBXIXTFUVEUVFYCXTYCXNXSEYCMXCUBNZWMKXNUVGWNZXNW
      MKYCMXCVHYCYDUVHYEXCAWOSUVGXNWPWQUVDWRTWLVQWS $.

    pntrlog2bnd.r $e |- R = ( a e. RR+ |-> ( ( psi ` a ) - a ) ) $.
    $( The sum of ~ selberg3r and ~ selberg4r .  (Contributed by Mario
       Carneiro, 31-May-2016.) $)
    pntrlog2bndlem1 $p |- ( x e. ( 1 (,) +oo ) |->
      ( ( ( ( abs ` ( R ` x ) ) x. ( log ` x ) ) -
        ( sum_ n e. ( 1 ... ( |_ ` x ) ) ( ( abs ` ( R ` ( x / n ) ) ) x.
      ( ( S ` n ) - ( S ` ( n - 1 ) ) ) ) / ( log ` x ) ) )
      / x ) ) e. <_O(1) $=
      ( vy c1 co cfv cabs cmul cdiv wcel cn cr syl recnd vm vk cpnf cioo cv cfl
      clog cfz cmin csu cmpt clo1 wtru wbr crab cvma 1red co1 selberg34r wa crp
      cdvds elioore adantl 1rp a1i eliooord simpld ltled rpgecld pntrf ffvelrni
      clt relogcld remulcld fzfid adantr elfznn rpdivcld cfn wss dvdsssfz1 ssfi
      nnrpd syl2anc ssrab2 simpr sseldi vmacl dvdsdivcl sylan fsumrecl resubcld
      rplogcld rerpdivcld lo1o12 mpbii abscld nnred mulcld rpne0d divcld subcld
      pntsf cle fsumabs absmuld absge0d caddc abs2dif2d addcld pncan2d readdcld
      cuz elfzuz wceq fveq2 oveq12d breq2 oveq1 fveq2d oveq2d sumeq12rdv fsumm1
      rabbidv pntsval2 cz flid sumeq1d eqtrd 3eqtr4d cc0 vmage0 mulge0d logge0d
      absidd breqtrrd letrd lediv1dd absdivd nnzd zsubcld addcomd oveq1d nnge1d
      fsumge0 lemul2ad eqbrtrd fsumle lesub2dd abs2difd eqbrtrrd rpge0d adantrr
      1zzd lo1le trud ) AJUCUDKZAUEZBLZMLZUUSUGLZNKZJUUSUFLZUHKZUUSEUEZOKZBLZML
      ZUVFCLZUVFJUIKZCLZUIKZNKZEUJZUVBOKZUIKZUUSOKZUKULPUMAUURUUTUVBNKZUVEUVHIU
      EZUVFVBUNZIQUOZUAUEZUPLZUVFUWCOKZUPLZNKZUAUJZUVFUPLZUVFUGLZNKZUIKZNKZEUJZ
      UVBOKZUIKZUUSOKZMLZUVRJRUMUQUMAUURUWQUKURPAUURUWRUKULPAIBUAEFHUSUMAUURUWQ
      UMUUSUURPZUTZUWQUWTUWPUUSUWTUVSUWOUWTUUTUVBUWTUUSVAPZUUTRPUWTUUSJUWSUUSRP
      UMUUSJUCVCVDZJVAPUWTVEVFUWTJUUSUWTUQUXBUWTJUUSVMUNZUUSUCVMUNZUWSUXCUXDUTU
      MUUSJUCVGVDVHZVIZVJZVARUUSBBFHVKZVLSZUWTUUSUXGVNZVOUWTUWNUVBUWTUVEUWMEUWT
      JUVDVPZUWTUVFUVEPZUTZUVHUWLUXMUVGVAPUVHRPUXMUUSUVFUWTUXAUXLUXGVQUXMUVFUXL
      UVFQPZUWTUVFUVDVRVDZWDZVSVARUVGBUXHVLSZUXMUWHUWKUXMUWBUWGUAUXMJUVFUHKZVTP
      UWBUXRWAZUWBVTPUXMJUVFVPUXMUXNUXSUXOUVFIWBSUXRUWBWCWEZUXMUWCUWBPZUTZUWDUW
      FUYBUWCQPZUWDRPZUYBUWBQUWCUWAIQWFZUXMUYAWGWHZUWCWIZSZUYBUWEQPZUWFRPUYBUWB
      QUWEUYEUXMUXNUYAUWEUWBPUXOIUWCUVFWJWKWHZUWEWISZVOZWLZUXMUWIUWJUXMUXNUWIRP
      UXOUVFWISZUXMUVFUXPVNZVOZWMZVOZWLZUWTUUSUXBUXEWNZWOWMZUXGWOTZWPWQUWTUWQVU
      BWRUWTUVQUUSUWTUVCUVPUWTUVAUVBUWTUUTUWTUUTUXITZWRUXJVOZUWTUVOUVBUWTUVEUVN
      EUXKUXMUVIUVMUXMUVHUXMUVHUXQTZWRZUXMUVJUVLUXMUVFRPZUVJRPUXMUVFUXOWSZRRUVF
      CCDFGXDZVLSUXMUVKRPZUVLRPUXMUVFJVUHUXMUQWMZRRUVKCVUIVLSZWMZVOZWLZUYTWOZWM
      ZUXGWOUMUWSUVRUWRXEUNJUUSXEUNUWTUVRUWPMLZUUSOKZUWRXEUWTUVQVURUUSVUQUWTUWP
      UWTUVSUWOUWTUUTUVBVUCUWTUVBUXJTZWTZUWTUWNUVBUWTUWNUYSTZVUTUWTUVBUYTXAZXBZ
      XCWRZUXGUWTUVQUVCUWNMLZUVBOKZUIKZVURVUQUWTUVCVVGVUDUWTVVFUVBUWTUWNVVBWRZU
      YTWOZWMVVEUWTVVGUVPUVCVVJVUPVUDUWTVVFUVOUVBVVIVUOUYTUWTVVFUVEUWMMLZEUJUVO
      VVIUWTUVEVVKEUXKUXMUWMUXMUWMUYRTZWRZWLVUOUWTUVEUWMEUXKVVLXFUWTUVEVVKUVNEU
      XKVVMVUNUXMVVKUVIUWLMLZNKUVNXEUXMUVHUWLVUEUXMUWLUYQTZXGUXMVVNUVMUVIUXMUWL
      VVOWRVUMVUFUXMUVHVUEXHUXMVVNUWHMLZUWKMLZXIKZUVMXEUXMUWHUWKUXMUWHUYMTZUXMU
      WKUYPTZXJUXMUVLUWHUWKXIKZXIKZUVLUIKVWAUVMVVRUXMUVLVWAUXMUVLVULTUXMUWHUWKV
      VSVVTXKXLUXMUVJVWBUVLUIUXMUXRUBUEZUPLZVWCUGLZNKZUVTVWCVBUNZIQUOZUWDVWCUWC
      OKZUPLZNKZUAUJZXIKZUBUJZJUVKUHKZVWMUBUJZUWKUWHXIKZXIKUVJVWBUXMVWMVWQUBJUV
      FUXLUVFJXNLPUWTUVFJUVDXOVDUXMVWCUXRPZUTZVWMVWSVWFVWLVWSVWDVWEVWSVWCQPZVWD
      RPVWRVWTUXMVWCUVFVRVDZVWCWISVWSVWCVWSVWCVXAWDVNVOVWSVWHVWKUAVWSJVWCUHKZVT
      PVWHVXBWAZVWHVTPVWSJVWCVPVWSVWTVXCVXAVWCIWBSVXBVWHWCWEVWSUWCVWHPZUTZUWDVW
      JVXEUYCUYDVXEVWHQUWCVWGIQWFZVWSVXDWGWHUYGSVXEVWIQPVWJRPVXEVWHQVWIVXFVWSVW
      TVXDVWIVWHPVXAIUWCVWCWJWKWHVWIWISVOWLXMTVWCUVFXPZVWFUWKVWLUWHXIVXGVWDUWIV
      WEUWJNVWCUVFUPXQVWCUVFUGXQXRVXGVWHUWBVWKUWGUAVXGVWGUWAIQVWCUVFUVTVBXSYEVX
      GVWKUWGXPUYAVXGVWJUWFUWDNVXGVWIUWEUPVWCUVFUWCOXTYAYBVQYCXRYDUXMUVJJUVFUFL
      ZUHKZVWMUBUJZVWNUXMVUGUVJVXJXPVUHIUVFCDUAUBFGYFSUXMVXIUXRVWMUBUXMVXHUVFJU
      HUXMUVFYGPVXHUVFXPUXMUVFUXOUUAZUVFYHSYBYIYJUXMUVLVWPVWAVWQXIUXMUVLJUVKUFL
      ZUHKZVWMUBUJZVWPUXMVUJUVLVXNXPVUKIUVKCDUAUBFGYFSUXMVXMVWOVWMUBUXMVXLUVKJU
      HUXMUVKYGPVXLUVKXPUXMUVFJVXKUXMUUOUUBUVKYHSYBYIYJUXMUWHUWKVVSVVTUUCXRYKUU
      DUXMVVPUWHVVQUWKXIUXMUWHUYMUXMUWBUWGUAUXTUYLUYBUWDUWFUYHUYKUYBUYCYLUWDXEU
      NUYFUWCYMSUYBUYIYLUWFXEUNUYJUWEYMSYNUUFYPUXMUWKUYPUXMUWIUWJUYNUYOUXMUXNYL
      UWIXEUNUXOUVFYMSUXMUVFVUHUXMUVFUXOUUEYOYNYPXRYKYQUUGUUHUUIYRYSUUJUWTUVSML
      ZUWOMLZUIKVVHVURXEUWTVXOUVCVXPVVGUIUWTVXOUVAUVBMLZNKUVCUWTUUTUVBVUCVUTXGU
      WTVXQUVBUVANUWTUVBUXJUWTUUSUXBUXFYOYPZYBYJUWTVXPVVFVXQOKVVGUWTUWNUVBVVBVU
      TVVCYTUWTVXQUVBVVFOVXRYBYJXRUWTUVSUWOVVAVVDUUKUULYRYSUWTUWRVURUUSMLZOKVUS
      UWTUWPUUSUWTUWPVUATUWTUUSUXBTUWTUUSUXGXAYTUWTVXSUUSVUROUWTUUSUXBUWTUUSUXG
      UUMYPYBYJYQUUNUUPUUQ $.

    ${
      pntrlog2bndlem2.1 $e |- ( ph -> A e. RR+ ) $.
      pntrlog2bndlem2.2 $e |- ( ph ->
        A. y e. RR+ ( psi ` y ) <_ ( A x. y ) ) $.
      $( Lemma for ~ pntrlog2bnd .  Bound on the difference between the Selberg
         function and its approximation, inside a sum.  (Contributed by Mario
         Carneiro, 31-May-2016.) $)
      pntrlog2bndlem2 $p |- ( ph -> ( x e. ( 1 (,) +oo ) |->
        ( sum_ n e. ( 1 ... ( |_ ` x ) ) ( n x. ( abs `
          ( ( R ` ( x / ( n + 1 ) ) ) - ( R ` ( x / n ) ) ) ) )
        / ( x x. ( log ` x ) ) ) ) e. O(1) ) $=
        ( c1 co caddc cdiv cmul wcel cle vm cpnf cioo cchp cfv cfl cfz csu clog
        cv cmin cabs cr 1red co1 wa elioore adantl chpcl syl recnd fzfid adantr
        cmpt cn elfznn peano2nnd nndivred readdcld fsumrecl clt eliooord mulcld
        wbr crp 1rp rpne0d divdird mpteq2dva rerpdivcld divdiv1d divrecd eqtr3d
        a1i o1mul2 eqeltrd cc o1const sylancr 1cnd o1add2 remulcld nnrpd rpge0d
        cc0 divge0d addge0d fsumge0 absidd abscld ad2antrr rpdivcld oveq2 nncnd
        wceq addcld nnne0d divassd divcld mulid2d oveq2d breqtrrd mulge0d letrd
        lediv2ad breqtrd fsumle lemul2ad mpbird lediv1dd oveq1d eqbrtrd adantrr
        eqtr2d eqtr4d leabsd o1le ffvelrni subcld pntrval eqtrd abssuble0d cneg
        oveq12d fveq2d c2 negsubdi2d 3eqtr2d sumeq12rdv ancli rplogcld rpmulcld
        simpld rpcnd ltled rpgecld mulne0d rprecred ex ssrdv chpo1ub divlogrlim
        o1res2 crli rlimo1 mp1i rpred ioossre chpge0 rpaddcld relogcld nnrecred
        wss wral fveq2 breq12d rspcv leadd1dd adddird 3eqtrd nnred lep1d reccld
        fsummulc2 harmonicubnd syl2anc mul32d ledivmul2d dividd 3brtr3d absge0d
        pntrf resubcld sub4d abs2dif2d chpwordi syl3anc addsub4d fsumcl negdi2d
        sylc cfzo cn0 rprege0d flge0nn0 nn0p1nn 3syl 2re mulid1d ltdivmuld 1lt2
        flltp1 lttrd wb chpeq0 divcan2d div1d pncand negeqd flcld fzval3 eqcomd
        addid2d cz pncan2d cuz nnuz syl6eleq fsumparts mulneg2d fsumneg neg11d
        ) ABNUBUCOZBUJZUDUEZNUYDUFUEZUGOZUYDHUJZNPOZQOZUDUEZUYJPOZHUHZPOZUYDUYD
[encoded data, 6160 characters]
        YFXNYBYCYG $.
    $}

    ${
      pntrlog2bndlem3.1 $e |- ( ph -> A e. RR+ ) $.
      pntrlog2bndlem3.2 $e |- ( ph -> A. y e. ( 1 [,) +oo )
      ( abs ` ( ( ( S ` y ) / y ) - ( 2 x. ( log ` y ) ) ) ) <_ A ) $.
      $( Lemma for ~ pntrlog2bnd .  Bound on the difference between the Selberg
         function and its approximation, inside a sum.  (Contributed by Mario
         Carneiro, 31-May-2016.) $)
      pntrlog2bndlem3 $p |- ( ph -> ( x e. ( 1 (,) +oo ) |->
        ( sum_ n e. ( 1 ... ( |_ ` x ) ) ( ( ( abs ` ( R ` ( x / n ) ) ) -
            ( abs ` ( R ` ( x / ( n + 1 ) ) ) ) ) x.
              ( ( S ` n ) - ( 2 x. ( n x. ( log ` n ) ) ) ) )
        / ( x x. ( log ` x ) ) ) ) e. O(1) ) $=
        ( c1 co cfv cabs cmul cr wcel vc cpnf cioo cfl cfz caddc cdiv cmin clog
        cv csu c2 1red rpred adantr wa fzfid cn elfznn adantl nnred crp elioore
        1rp a1i clt eliooord simpld ltled rpgecld nnrpd rpaddcld rpdivcld pntrf
        wbr ffvelrni syl recnd subcld remulcld fsumrecl rplogcld rerpdivcld wss
        abscld rpmulcld cc cmpt co1 ioossre rpcnd o1const sylancr cchp cle wral
        wrex chpo1ubb simpl simpr pntrlog2bndlem2 rexlimiva mp1i resubcld pntsf
        o1mul2 relogcld fsumabs absge0d abs2difabsd abssubd breqtrd nnne0d 2cnd
        2re divcld mulcld absmuld subdird divcan1d mul32d mulassd oveq12d eqtrd
        eqtr3d fveq2d rpge0d absidd oveq2d 3eqtr3d nnge1d wb 1re elicopnf ax-mp
        cico sylanbrc ad2antrr fveq2 letrd weq id breq1d rspcv lemul1ad eqbrtrd
        sylc lemul12ad mulcomd 3brtr4d fsumle fsummulc2 breqtrrd rpne0d absdivd
        lediv1dd eqtr2d divassd 3brtr3d leabsd adantrr o1le ) ABNUBUCOZDNBUJZUD
        PZUEOZHUJZUVDUVGNUFOZUGOZEPZUVDUVGUGOZEPZUHOZQPZROZHUKZUVDUVDUIPZROZUGO
        ZROZUVFUVLQPZUVJQPZUHOZUVGFPZULUVGUVGUIPZROZROZUHOZROZHUKZUVRUGOZNSAUMA
        BUVCDUVSSADSTZUVDUVCTZADLUNUOZAUWMUPZUVPUVRUWOUVFUVOHUWONUVEUQZUWOUVGUV
        FTZUPZUVGUVNUWRUVGUWQUVGURTUWOUVGUVEUSUTZVAZUWRUVMUWRUVJUVLUWRUVJUWRUVI
        VBTUVJSTUWRUVDUVHUWOUVDVBTUWQUWOUVDNUWMUVDSTAUVDNUBVCUTZNVBTZUWOVDVEUWO
        NUVDUWOUMUXAUWONUVDVFVOZUVDUBVFVOZUWMUXCUXDUPAUVDNUBVGUTVHZVIVJZUOZUWRU
        VGNUWRUVGUWSVKZUXBUWRVDVEVLVMVBSUVIEEIKVNZVPVQVRZUWRUVLUWRUVKVBTUVLSTUW
        RUVDUVGUXGUXHVMVBSUVKEUXIVPVQVRZVSWEZVTZWAZUWOUVDUVQUXFUWOUVDUXAUXEWBWF
        ZWCZAUVCSWDDWGTZBUVCDWHWITNUBWJADLWKZBUVCDWLWMCUJZWNPUAUJZUXSROWOVOCVBW
        PZUAVBWQBUVCUVSWHWITZACUAWRUYAUYBUAVBUXTVBTZUYAUPBCUXTEFGHIJKUYCUYAWSUY
        CUYAWTXAXBXCXFUWODUVSUWNUXPVTZUWOUWKUWOUWJUVRUWOUVFUWIHUWPUWRUWCUWHUWRU
        WAUWBUWRUVLUXKWEUWRUVJUXJWEXDZUWRUWDUWGUWRUVGSTZUWDSTUWTSSUVGFFGIJXEVPV
        QZUWRULUWFULSTUWRXOVEUWRUVGUWEUWTUWRUVGUXHXGZVTVTXDZVTZWAZUXOWCVRZAUWMU
        WKQPZUVTQPZWOVONUVDWOVOUWOUYMUVTUYNUWOUWKUYLWEUYDUWOUVTUWOUVTUYDVRWEUWO
        UWJQPZUVRUGOZDUVPROZUVRUGOUYMUVTWOUWOUYOUYQUVRUWOUWJUWOUWJUYKVRZWEZUWOD
        UVPUWNUXNVTZUXOUWOUYOUVFUWIQPZHUKZUYQUYSUWOUVFVUAHUWPUWRUWIUWRUWIUYJVRZ
        WEZWAUYTUWOUVFUWIHUWPVUCXHUWOVUBUVFDUVOROZHUKUYQWOUWOUVFVUAVUEHUWPVUDUW
        RDUVOUWOUWLUWQUWNUOZUXMVTUWRUWCQPZUWHQPZROUVNDUVGROZROZVUAVUEWOUWRVUGUV
        NVUHVUIUWRUWCUWRUWCUYEVRZWEUXLUWRUWHUWRUWHUYIVRZWEUWRDUVGVUFUWTVTUWRUWC
        VUKXIUWRUWHVULXIUWRVUGUVLUVJUHOQPUVNWOUWRUVLUVJUXKUXJXJUWRUVLUVJUXKUXJX
        KXLUWRVUHUWDUVGUGOZULUWEROZUHOZQPZUVGROZVUIWOUWRVUOUVGROZQPVUPUVGQPZROV
        UHVUQUWRVUOUVGUWRVUMVUNUWRUWDUVGUWRUWDUYGVRZUWRUVGUWTVRZUWRUVGUWSXMZXPZ
        UWRULUWEUWRXNZUWRUWEUYHVRZXQZVSZVVAXRUWRVURUWHQUWRVURVUMUVGROZVUNUVGROZ
        UHOUWHUWRVUMVUNUVGVVCVVFVVAXSUWRVVHUWDVVIUWGUHUWRUWDUVGVUTVVAVVBXTUWRUL
        UVGROUWEROVVIUWGUWRULUVGUWEVVDVVAVVEYAUWRULUVGUWEVVDVVAVVEYBYEYCYDYFUWR
        VUSUVGVUPRUWRUVGUWTUWRUVGUXHYGZYHYIYJUWRVUPDUVGUWRVUOVVGWEVUFUWTVVJUWRU
        VGNUBYPOZTZUXSFPZUXSUGOZULUXSUIPZROZUHOZQPZDWOVOZCVVKWPZVUPDWOVOZUWRUYF
        NUVGWOVOZVVLUWTUWRUVGUWSYKNSTVVLUYFVWBUPYLYMNUVGYNYOYQAVVTUWMUWQMYRVVSV
        WACUVGVVKCHUUAZVVRVUPDWOVWCVVQVUOQVWCVVNVUMVVPVUNUHVWCVVMUWDUXSUVGUGUXS
        UVGFYSVWCUUBYCVWCVVOUWEULRUXSUVGUIYSYIYCYFUUCUUDUUGUUEUUFUUHUWRUWCUWHVU
        KVULXRUWRVUIUVNROVUEVUJUWRDUVGUVNAUXQUWMUWQUXRYRZVVAUWRUVNUXLVRZYBUWRVU
        IUVNUWRDUVGVWDVVAXQVWEUUIYEUUJUUKUWOUVFUVODHUWPAUXQUWMUXRUOZUWRUVOUXMVR
        UULUUMYTUUPUWOUYMUYOUVRQPZUGOUYPUWOUWJUVRUYRUWOUVRUXOWKZUWOUVRUXOUUNZUU
        OUWOVWGUVRUYOUGUWOUVRUWOUVRUXOUNUWOUVRUXOYGYHYIUUQUWODUVPUVRVWFUWOUVPUX
        NVRVWHVWIUURUUSUWOUVTUYDUUTYTUVAUVB $.
    $}

    pntrlog2bnd.t $e |- T = ( a e. RR |->
      if ( a e. RR+ , ( a x. ( log ` a ) ) , 0 ) ) $.
    $( Lemma for ~ pntrlog2bnd .  Bound on the difference between the Selberg
       function and its approximation, inside a sum.  (Contributed by Mario
       Carneiro, 31-May-2016.) $)
    pntrlog2bndlem4 $p |- ( x e. ( 1 (,) +oo ) |->
    ( ( ( ( abs ` ( R ` x ) ) x. ( log ` x ) ) -
      ( ( 2 / ( log ` x ) ) x. sum_ n e. ( 1 ... ( |_ ` x ) )
        ( ( abs ` ( R ` ( x / n ) ) ) x.
          ( ( T ` n ) - ( T ` ( n - 1 ) ) ) ) ) ) / x ) ) e. <_O(1) $=
      ( c1 co cfv cmul c2 cmin wcel wtru cc0 cr vy vm vc cpnf cv cabs clog cdiv
      cfl cfz csu cmpt clo1 caddc wa cneg cchp crp wceq adantl 1rp a1i 1red clt
      wbr ltled cn cle nnrpd rpdivcld nncnd breqtrrd mpbird oveq1d eqtrd fveq2d
      syl 2re 0red rpge0d recnd subid1d cvma pntsval2 1cnd pncand oveq2d eqtr4d
      sumeq1d 3eqtr4d oveq12d ffvelrni eqeltrd abscld remulcld cz eqcomd adantr
      cif resubcld elfznn rpre weq eleq1 id fveq2 ifbieq1d ovex c0ex ifex fvmpt
      iftrue nnred relogcld sumeq12rdv oveq2 oveq1 jca syl6eq 0re c0 ax-mp 2cnd
      subdid eqtr3d 3eqtr3rd fsumrecl rpne0d divdiv1d rerpdivcld divdird mulcld
      3eqtr3d divsubdird mpteq2dva adantrr ello1d co1 mp1i mulge0d cioo elioore
      cfzo eliooord simpld rpgecld cn0 rprege0d flge0nn0 nn0p1nn pntrval flltp1
      nndivred mulid1d ltdivmuld 1lt2 lttrd chpeq0 abssuble0d 3eqtrd cdvds crab
      wb nn0red nn0cnd flidm div1d pntrf mul01d pntsf relogcl remulcl sylan2 wn
      ifclda fmpti flcld fzval3 rpaddcld negsubdi2d mulneg1d fzfid fsumneg flid
      1m1e0 0z fz10 sum0 rpne0 necon2bi iffalsed 2t0e0 0m0e0 cuz nnuz fsumparts
      syl6eleq sub4d fsumcl subnegd mulcomd divcld subsubd subcld nncand mul12d
      rplogcld sumeq2dv fsumsub 3eqtr2rd div23d 3eqtr2d readdcld rpmulcld rpcnd
      fsummulc2 pntrlog2bndlem1 divassd wss ioossre cc o1const sylancr divcan4d
      divrecd ssrdv selbergs o1res2 crli divlogrlim rlimo1 o1mul2 o1dif flge1nn
      ex 2rp syl2anc nn0ge0d nnge1d logge0d flle logled mpbid lemul12ad eqbrtrd
      lemul2ad ledivmul2d divge0d o1lo12 o1sub2 o1lo1d cico wral wrex selbergsb
      lo1mul simpl simpr pntrlog2bndlem3 rexlimiva lo1add eqeltrrd trud ) AKUDU
[encoded data, 7760 characters]
      URYUMURQZYUNUOAUAYUMBCEFGHIYUPYUNVUQYUPYUNVURVUSVUTYSVUKVVAWMVVAVVBVVC $.

    pntrlog2bndlem5.1 $e |- ( ph -> B e. RR+ ) $.
    pntrlog2bndlem5.2 $e |- ( ph ->
      A. y e. RR+ ( abs ` ( ( R ` y ) / y ) ) <_ B ) $.
    $( Lemma for ~ pntrlog2bnd .  Bound on the difference between the Selberg
       function and its approximation, inside a sum.  (Contributed by Mario
       Carneiro, 31-May-2016.) $)
    pntrlog2bndlem5 $p |- ( ph -> ( x e. ( 1 (,) +oo ) |->
    ( ( ( ( abs ` ( R ` x ) ) x. ( log ` x ) ) -
      ( ( 2 / ( log ` x ) ) x. sum_ n e. ( 1 ... ( |_ ` x ) )
      ( ( abs ` ( R ` ( x / n ) ) ) x. ( log ` n ) ) ) ) / x ) ) e. <_O(1) ) $=
      ( c1 co cmul cr cc0 cpnf cioo cv cfv cabs clog c2 cdiv cfl cfz caddc cmin
      csu cmpt clo1 wcel wa crp elioore adantl 1rp a1i 1red clt eliooord simpld
      wbr ltled rpgecld pntrf ffvelrni syl abscld relogcld mulcld 2cnd rplogcld
      recnd rpne0d divcld fzfid adantr cn elfznn nnrpd rpdivcld readdcld fsumcl
      remulcld divdird subdid oveq2d eqtr3d oveq1d rerpdivcld fsumrecl resubcld
      subsubd 1cnd cif simpr 0red cle 2rp rpge0d wceq rpcnd rpred sylancr mpbid
      cc rpre eleq1 id fveq2 oveq12d ifbieq1d ovex c0ex ifex fvmpt iftrue eqtrd
      1re subdird mulid2d 3eqtrd fveq2d eqbrtrrd eqbrtrd syl6eq lemul2ad fsumle
      ax-mp letrd adantrr lo1le lo1const lo1add 3brtr4d subcld fsumsub 3eqtr3rd
      pncand sumeq2dv mpteq2dva 2re pntrlog2bndlem4 nnred simpl wn ifclda fmpti
      mulid1d divge0d absge0d wb difrp 3eqtr4d subsub3d npcand logdifbnd mpbird
      lemuldiv2d lesubadd2d syl6eqel iftrued log1 ax-1cn mul01i oveq1 1m1e0 0re
      rpne0 necon2bi iffalsed 0m0e0 eqcoms nnge1d logge0d lep1d leloed mpjaodan
      elfzle1 lesub2dd lediv1dd rpmulcld wss ioossre crli co1 divlogrlim rlimo1
      wo mp1i o1lo1d lo1mul nnrecred nndivred absidd wne nnne0d divdiv2d div23d
      absdivd wral ad2antrr rspcv lemuldivd divrec2d breqtrd fsumdivc fsummulc1
      breq1d syl2anc lemul1ad divassd mul32d dividd eqtr2d addcld div32d eqtr4d
      sylc harmonicubnd mulassd eqeltrrd ) ABPUAUBQZBUCZEUDZUEUDZUYIUFUDZRQZUGU
[encoded data, 5600 characters]
      RUYNWXEDVVPXUFWYTUYFYGYTYPYQYSUYG $.

    pntrlog2bndlem6.1 $e |- ( ph -> A e. RR ) $.
    pntrlog2bndlem6.2 $e |- ( ph -> 1 <_ A ) $.
    $( Lemma for ~ pntrlog2bndlem6 .  (Contributed by Mario Carneiro,
       7-Jun-2016.) $)
    pntrlog2bndlem6a $p |- ( ( ph /\ x e. ( 1 (,) +oo ) ) ->
      ( 1 ... ( |_ ` x ) ) = ( ( 1 ... ( |_ ` ( x / A ) ) ) u.
        ( ( ( |_ ` ( x / A ) ) + 1 ) ... ( |_ ` x ) ) ) ) $=
      ( c1 co wcel cv cpnf cioo wa cdiv cfl cfv caddc cuz cfz cun cn cr cc0 cle
      wceq wbr cn0 elioore adantl crp 1rp a1i rpred clt eliooord simpld rpgecld
      ltled adantr rpdivcld rprege0d flge0nn0 nn0p1nn 3syl nnuz syl6eleq rpge0d
      lediv2ad recnd div1d breqtrd flword2 syl3anc fzsplit2 syl2anc ) ABUAZRUBU
      CSTZUDZWGDUESZUFUGZRUHSZRUIUGZTWGUFUGZWKUIUGTZRWNUJSRWKUJSWLWNUJSUKUPWIWL
      ULWMWIWJUMTZUNWJUOUQUDWKURTWLULTWIWJWIWGDWIWGRWHWGUMTZAWGRUBUSUTZRVATZWIV
      BVCZWIRWGWIRWTVDWRWIRWGVEUQZWGUBVEUQZWHXAXBUDAWGRUBVFUTVGVIVHZADVATWHADRP
      WSAVBVCQVHVJZVKZVLWJVMWKVNVOVPVQWIWPWQWJWGUOUQWOWIWJXEVDWRWIWJWGRUESWGUOW
      IRDWGWTXDWRWIWGXCVRARDUOUQWHQVJVSWIWGWIWGWRVTWAWBWJWGWCWDWKRWNWEWF $.

    $( Lemma for ~ pntrlog2bnd .  Bound on the difference between the Selberg
       function and its approximation, inside a sum.  (Contributed by Mario
       Carneiro, 31-May-2016.) $)
    pntrlog2bndlem6 $p |- ( ph -> ( x e. ( 1 (,) +oo ) |->
    ( ( ( ( abs ` ( R ` x ) ) x. ( log ` x ) ) -
      ( ( 2 / ( log ` x ) ) x. sum_ n e. ( 1 ... ( |_ ` ( x / A ) ) )
      ( ( abs ` ( R ` ( x / n ) ) ) x. ( log ` n ) ) ) ) / x ) ) e. <_O(1) ) $=
      ( co wcel c1 cpnf cioo cv cfv cabs clog cmul cdiv cfl cfz cmin caddc cmpt
      c2 csu clo1 wa crp cr elioore adantl 1rp a1i 1red clt wbr eliooord simpld
      ltled rpgecld pntrf ffvelrni abscld relogcld remulcld rplogcld rerpdivcld
      syl recnd 2re fzfid adantr cn elfznn nnrpd rpdivcld fsumrecl resubcld cun
      ssun2 pntrlog2bndlem6a syl5sseqr sselda syldan rpne0d divdird subsubd cin
      subdid c0 reflcl ltp1d fzdisj fsumsplit oveq1d ssun1 pncand oveq2d eqtr3d
      eqtrd mpteq2dva pntrlog2bndlem5 wss ioossre rpred readdcld cle 2rp rpge0d
      wceq nnrecred nndivred cc absge0d elfzle2 syl2anc mpbird mpbid ledivmul2d
      cz lemul2ad eqbrtrrd letrd nncnd nnne0d mulcld breqtrd 3brtr4d mul12d cc0
      wb nnzd flge logled absdivd divge0d absidd wral ad2antrr fveq2 id oveq12d
      fveq2d breq1d sylc divassd divrecd fsumle fsumdivc fsummulc2 harmonicubnd
      rspcv mulge0d relogdivd harmoniclbnd le2subd pncan2d 1cnd pnncand addcomd
      reccld 3brtr3d mulassd 2cnd div32d addcld ledivmuld adantrr ello1d lo1add
      eqeltrrd ) ABUAUBUCSZBUDZFUEZUFUEZUWDUGUEZUHSZUOUWGUISZUAUWDUJUEZUKSZUWDJ
      UDZUISZFUEZUFUEZUWLUGUEZUHSZJUPZUHSZULSZUWDUISZUWIUWDDUISZUJUEZUAUMSZUWJU
      KSZUWQJUPZUHSZUWDUISZUMSZUNBUWCUWHUWIUAUXCUKSZUWQJUPZUHSZULSZUWDUISZUNUQA
      BUWCUXIUXNAUWDUWCTZURZUWTUXGUMSZUWDUISUXIUXNUXPUWTUXGUWDUXPUWTUXPUWHUWSUX
      PUWFUWGUXPUWEUXPUWEUXPUWDUSTZUWEUTTUXPUWDUAUXOUWDUTTZAUWDUAUBVAVBZUAUSTZU
      XPVCVDUXPUAUWDUXPVEZUXTUXPUAUWDVFVGZUWDUBVFVGZUXOUYCUYDURAUWDUAUBVHVBVIZV
      JZVKZUSUTUWDFFKMVLZVMVSVTVNUXPUWDUYGVOZVPZUXPUWIUWRUXPUOUWGUOUTTZUXPWAVDZ
      UXPUWDUXTUYEVQZVRZUXPUWKUWQJUXPUAUWJWBZUXPUWLUWKTZURZUWOUWPUYQUWNUYQUWNUY
      QUWMUSTZUWNUTTUYQUWDUWLUXPUXRUYPUYGWCUYQUWLUYPUWLWDTZUXPUWLUWJWEZVBZWFZWG
      ZUSUTUWMFUYHVMVSVTZVNZUYQUWLVUBVOVPZWHZVPZWIZVTUXPUXGUXPUWIUXFUYNUXPUXEUW
      QJUXPUXDUWJWBZUXPUWLUXETZUYPUWQUTTZUXPUXEUWKUWLUXPUXJUXEWJZUXEUWKUXEUXJWK
      ABCDEFGHIKLMNOPQRWLZWMWNZVUFWOZWHZVPZVTZUXPUWDUXTVTZUXPUWDUYGWPWQUXPUXQUX
      MUWDUIUXPUWHUWSUXGULSZULSUXQUXMUXPUWHUWSUXGUXPUWHUYJVTUXPUWSVUHVTVUSWRUXP
      VVAUXLUWHULUXPUWIUWRUXFULSZUHSVVAUXLUXPUWIUWRUXFUXPUWIUYNVTUXPUWRVUGVTUXP
      UXFVUQVTZWTUXPVVBUXKUWIUHUXPVVBUXKUXFUMSZUXFULSUXKUXPUWRVVDUXFULUXPUXJUXE
      UWQUWKJUXPUXCUXDVFVGUXJUXEWSXAYAUXPUXCUXPUXBUTTUXCUTTUXPUWDDUXTADUSTUXOAD
      UAQUYAAVCVDRVKZWCZVRUXBXBVSXCUAUXCUXDUWJXDVSZVUNUYOUYQUWQVUFVTZXEXFUXPUXK
      UXFUXPUXKUXPUXJUWQJUXPUAUXCWBZUXPUWLUXJTZUYPVULUXPUXJUWKUWLUXPVUMUXJUWKUX
      JUXEXGVUNWMWNZVUFWOWHVTVVCXHXKXIXJXIXJXFXJXLABUWCUXAUXHUTUXPUWTUWDVUIUYGV
      RUXPUXGUWDVURUYGVRZABCEFGHIJKLMNOPXMABUWCUXHUAUOEDUGUEZUAUMSZUHSZUHSZUWCU
      TXNAUAUBXOVDVVLAVEZAUOVVOUYKAWAVDAEVVNAEOXPZAVVMUAADVVEVOVVQXQVPVPZAUXOUX
      HVVPXRVGZUAUWDXRVGZUXPVVTUXGUWDVVPUHSZXRVGUXPUOUXFUWGUISZUHSUOUWDVVOUHSZU
      HSUXGVWBXRUXPVWCVWDUOUXPUXFUWGVUQUYMVRZUXPUWDVVOUXTUXPEVVNAEUTTZUXOVVRWCZ
      UXPVVMUAUXPDVVFVOZUYBXQZVPVPZUYLUXPUOUOUSTUXPXSVDXTUXPVWCEUWDUHSZUXEUAUWL
      UISZJUPZUHSZVWDVWEUXPVWKVWMUXPEUWDVWGUXTVPZUXPUXEVWLJVUJUXPVUKURZUWLVWPUY
      PUYSVUOUYTVSZYBZWHZVPVWJUXPUXEUWQUWGUISZJUPUXEVWKVWLUHSZJUPVWCVWNXRUXPUXE
      VWTVXAJVUJVWPUWQUWGVUPUXPUWGUSTVUKUYMWCZVRZVWPVWKVWLVWPEUWDUXPVWFVUKVWGWC
      ZUXPUXSVUKUXTWCZVPVWRVPVWPVWTEUWMUHSZVXAXRVWPVWTUWOVXFVXCUXPVUKUYPUWOUTTV
      UOVUEWOZVWPEUWMVXDVWPUWDUWLVXEVWQYCZVPVWPVWTUWOXRVGUWQUWOUWGUHSXRVGVWPUWP
      UWGUWOVWPUWLUXPVUKUYPUWLUSTVUOVUBWOZVOVWPUWDUXPUXRVUKUYGWCZVOVXGVWPUWNUXP
      VUKUYPUWNYDTVUOVUDWOZYEVWPUWLUWDXRVGZUWPUWGXRVGVWPVXLUWLUWJXRVGZVUKVXMUXP
      UWLUXDUWJYFVBVWPUXSUWLYKTVXLVXMUUBVXEVWPUWLVWQUUCUWDUWLUUDYGYHVWPUWLUWDVX
      IVXJUUEYIYLVWPUWQUWOUWGVUPVXGVXBYJYHVWPUWOUWMUISZEXRVGUWOVXFXRVGVWPUWNUWM
      UISZUFUEZVXNEXRVWPVXPUWOUWMUFUEZUISVXNVWPUWNUWMVXKVWPUWMVXHVTVWPUWMUXPVUK
      UYPUYRVUOVUCWOZWPUUFVWPVXQUWMUWOUIVWPUWMVXHVWPUWDUWLVXEVXIUXPUUAUWDXRVGVU
      KUXPUWDUYGXTZWCUUGUUHXIXKVWPUYRCUDZFUEZVXTUISZUFUEZEXRVGZCUSUUIZVXPEXRVGZ
      VXRAVYEUXOVUKPUUJVYDVYFCUWMUSVXTUWMYAZVYCVXPEXRVYGVYBVXOUFVYGVYAUWNVXTUWM
      UIVXTUWMFUUKVYGUULUUMUUNUUOUVCUUPYMVWPUWOEUWMVXGVXDVXRYJYIYNVWPVWKUWLUISV
      XFVXAVWPEUWDUWLVWPEVXDVTZUXPUWDYDTVUKVUTWCZVWPUWLVWQYOZVWPUWLVWQYPZUUQVWP
      VWKUWLVWPEUWDVYHVYIYQVYJVYKUURXJYRUUSUXPUXEUWQUWGJVUJUXPUWGUYIVTZUXPVUKUY
      PUWQYDTVUOVVHWOUXPUWGUYMWPZUUTUXPUXEVWLVWKJVUJUXPEUWDUXPEVWGVTZVUTYQVWPVW
      LVWRVTUVAYSUXPVWNVWKVVNUHSZVWDXRUXPVWMVVNVWKVWSVWIVWOUXPEUWDVWGUXTUXPEAEU
      STUXOOWCXTVXSUVDUXPUWKVWLJUPZUXJVWLJUPZULSZUWGUAUMSZUWGVVMULSZULSZVWMVVNX
      RUXPVYPVYTVYSVYQUXPUWKVWLJUYOUYQUWLVUAYBZWHUXPUWGVVMUYIVWHWIUXPUWGUAUYIUY
      BXQUXPUXJVWLJVVIUXPVVJUYPVWLUTTVVKWUBWOWHUXPUXSVWAVYPVYSXRVGUXTUYFUWDJUVB
      YGUXPUXBUGUEZVYTVYQXRUXPUWDDUYGVVFUVEUXPUXBUSTWUCVYQXRVGUXPUWDDUYGVVFWGUX
      BJUVFVSYMUVGUXPVYRVYQVWMUMSZVYQULSVWMUXPVYPWUDVYQULUXPUXJUXEVWLUWKJVVGVUN
      UYOUYQUWLUYQUWLVUAYOUYQUWLVUAYPUVLXEXFUXPVYQVWMUXPVYQUXPUXJVWLJVVIUXPVVJU
      RZUWLWUEUYPUYSVVKUYTVSYBWHVTUXPVWMVWSVTUVHXKUXPWUAUAVVMUMSVVNUXPUWGUAVVMV
      YLUXPUVIZUXPVVMVWHVTZUVJUXPUAVVMWUFWUGUVKXKUVMYLUXPVYOEUWDVVNUHSUHSVWDUXP
      EUWDVVNVYNVUTUXPVVNVWIVTZUVNUXPEUWDVVNVYNVUTWUHYTXKYRYNYLUXPUOUWGUXFUXPUV
      OZVYLVVCVYMUVPUXPUWDUOVVOVUTWUIUXPEVVNVYNUXPVVMUAWUGWUFUVQYQYTYSUXPUXGVVP
      UWDVURAVVPUTTUXOVVSWCUYGUVRYHUVSUVTUWAUWB $.
  $}

  ${
    $d i j k m n x y K $.  $d a N $.  $d k m n x ph $.  $d c i j m n x y R $.
    $d a c i j m n x y A $.  $d n y E $.  $d i j k m n x y Y $.
    pntpbnd.r $e |- R = ( a e. RR+ |-> ( ( psi ` a ) - a ) ) $.
    $( A bound on ` R ( x ) log ^ 2 ( x ) ` .  Equation 10.6.15 of [Shapiro],
       p. 431.  (Contributed by Mario Carneiro, 1-Jun-2016.) $)
    pntrlog2bnd $p |- ( ( A e. RR /\ 1 <_ A ) ->
      E. c e. RR+ A. x e. ( 1 (,) +oo )
        ( ( ( ( abs ` ( R ` x ) ) x. ( log ` x ) ) -
        ( ( 2 / ( log ` x ) ) x. sum_ n e. ( 1 ... ( |_ ` ( x / A ) ) )
             ( ( abs ` ( R ` ( x / n ) ) ) x. ( log ` n ) ) ) ) / x ) <_ c ) $=
      ( cr wcel c1 cle wbr wa co cfv cabs cdiv crp recnd adantr vy vi cpnf cioo
      cv clog cmul c2 cfl cfz csu cmin cchp wss ioossre a1i 1red sselda 1rp clt
      caddc eliooord adantl simpld ltled rpgecld pntrf ffvelrni abscld relogcld
      syl remulcld 2re rplogcld rerpdivcld fzfid elfznn nnrpd rpdivcld fsumrecl
      cn resubcld wral wrex cmpt clo1 pntrmax cvma cc0 cif simprl simprr simpll
      simplr pntrlog2bndlem6 rexlimdvaa mpi chpcl readdcld ad2ant2r simprll 2rp
      eqid rpge0d divge0d adantlr absge0d rpred nnge1d logge0d mulge0d subge02d
      fsumge0 mpbid wceq pntrval fveq2d abs2dif2d chpge0 absidd oveq12d breqtrd
      cc eqbrtrd chpwordi syl3anc le2addd letrd logled lediv1dd addge0d simprlr
      lemul12ad lediv2ad addcld mulcld div1d lo1bddrp ) BHIZJBKLZMZAUAJUCUDNZAU
      EZCOZPOZUUCUFOZUGNZUHUUFQNZJUUCBQNUIOZUJNZUUCDUEZQNZCOZPOZUUKUFOZUGNZDUKZ
      UGNZULNZUUCQNZJFUAUEZUMOZUVAVANZUVAUFOZUGNZUUBHUNUUAJUCUOUPZUUAUQUUAUUCUU
      BIZMZUUSUUCUVHUUGUURUVHUUEUUFUVHUUDUVHUUDUVHUUCRIZUUDHIZUVHUUCJUUAUUBHUUC
      UVFURZJRIZUVHUSUPUVHJUUCUVHUQUVKUVHJUUCUTLZUUCUCUTLZUVGUVMUVNMUUAUUCJUCVB
      VCVDZVEZVFZRHUUCCCEGVGZVHVKZSVIUVHUUCUVQVJVLUVHUUHUUQUVHUHUUFUHHIZUVHVMUP
      UVHUUCUVKUVOVNVOZUVHUUJUUPDUVHJUUIVPUVHUUKUUJIZMZUUNUUOUWCUUMUWCUUMUWCUUL
      RIUUMHIUWCUUCUUKUVHUVIUWBUVQTUWCUUKUWBUUKWAIZUVHUUKUUIVQZVCVRZVSRHUULCUVR
      VHVKSZVIUWCUUKUWFVJVLZVTZVLWBUVQVOZUUAUVACOUVAQNPOFUEZKLUARWCZFRWDAUUBUUT
      WEWFIZUACEFGWGUUAUWLUWMFRUUAUWKRIZUWLMZMAUABUWKCEHJEUEZUIOUJNUBUEZWHOUWQU
      FOUWPUWQQNUMOVANUGNUBUKWEZEHUWPRIUWPUWPUFOUGNWIWJWEZUBDEUWRXCGUWSXCUUAUWN
      UWLWKUUAUWNUWLWLYSYTUWOWMYSYTUWOWNWOWPWQUUAUVAHIZJUVAKLZMZMZUVCUVDUXCUVBU
      VAUXCUWTUVBHIZUUAUWTUXAWKZUVAWRVKZUXEWSUXCUVAUXCUVAJUXEUVLUXCUSUPUUAUWTUX
      AWLVFZVJVLUVHUXBUUCUVAUTLZMZMZUUTUVEUUCQNZUVEUVHUUTHIUXIUWJTUXJUVEUUCUXJU
      VCUVDUXJUVBUVAUUAUXBUXDUVGUXHUXFWTZUVHUWTUXAUXHXAZWSZUXJUVAUUAUXBUVARIUVG
      UXHUXGWTZVJZVLZUVHUVIUXIUVQTZVOUXQUXJUUSUVEUUCUXJUUGUURUXJUUEUUFUXJUUDUXJ
      UUDUVHUVJUXIUVSTSZVIZUXJUUCUXRVJZVLZUXJUUHUUQUVHUUHHIUXIUWATZUVHUUQHIUXIU
      WITZVLZWBZUXQUXRUXJUUSUUGUVEUYFUYBUXQUXJWIUURKLUUSUUGKLUXJUUHUUQUYCUYDUXJ
      UHUUFUVTUXJVMUPUXJUUCUVHUUCHIZUXIUVKTZUVHUVMUXIUVOTVNZUXJUHUHRIUXJXBUPXDX
      EUXJUUJUUPDUXJJUUIVPUVHUWBUUPHIUXIUWHXFUXJUWBMZUUNUUOUYJUUMUVHUWBUUMYCIUX
      IUWGXFZVIUYJUUKUVHUWBUUKRIUXIUWFXFZVJUYJUUMUYKXGUYJUUKUYJUUKUYLXHUYJUUKUW
      BUWDUXJUWEVCXIXJXKXMXKUXJUUGUURUYBUYEXLXNUXJUUEUVCUUFUVDUXTUXNUYAUXPUXJUU
      DUXSXGUXJUUFUYIXDUXJUUEUUCUMOZUUCVANZUVCUXTUXJUYMUUCUXJUYGUYMHIUYHUUCWRVK
      ZUYHWSUXNUXJUUEUYMUUCULNZPOZUYNKUXJUUDUYPPUXJUVIUUDUYPXOUXRUUCCEGXPVKXQUX
      JUYQUYMPOZUUCPOZVANUYNKUXJUYMUUCUXJUYMUYOSUXJUUCUYHSXRUXJUYRUYMUYSUUCVAUX
      JUYMUYOUXJUYGWIUYMKLUYHUUCXSVKXTUXJUUCUYHUXJUUCUXRXDXTYAYBYDUXJUYMUUCUVBU
      VAUYOUYHUXLUXMUXJUYGUWTUUCUVAKLZUYMUVBKLUYHUXMUXJUUCUVAUYHUXMUVHUXBUXHWLV
      EZUUCUVAYEYFVUAYGYHUXJUYTUUFUVDKLVUAUXJUUCUVAUXRUXOYIXNYMYHYJUXJUXKUVEJQN
      UVEKUXJJUUCUVEUVLUXJUSUPUXRUXQUXJUVCUVDUXNUXPUXJUVBUVAUXLUXMUXJUWTWIUVBKL
      UXMUVAXSVKUXJUVAUXOXDYKUXJUVAUXMUVHUWTUXAUXHYLXJXKUVHJUUCKLUXIUVPTYNUXJUV
      EUXJUVCUVDUXJUVBUVAUXJUVBUXLSUXJUVAUXMSYOUXJUVDUXPSYPYQYBYHYR $.

    pntpbnd1.e $e |- ( ph -> E e. ( 0 (,) 1 ) ) $.
    pntpbnd1.x $e |- X = ( exp ` ( 2 / E ) ) $.
    pntpbnd1.y $e |- ( ph -> Y e. ( X (,) +oo ) ) $.
    ${
      pntpbnd1a.1 $e |- ( ph -> N e. NN ) $.
      pntpbnd1a.2 $e |- ( ph -> ( Y < N /\ N <_ ( K x. Y ) ) ) $.
      pntpbnd1a.3 $e |- ( ph -> ( abs ` ( R ` N ) ) <_
        ( abs ` ( ( R ` ( N + 1 ) ) - ( R ` N ) ) ) ) $.
      $( Lemma for ~ pntpbnd .  (Contributed by Mario Carneiro, 11-Apr-2016.)
         Replace reference to OLD theorem.  (Revised by Wolf Lammen,
         8-Sep-2020.) $)
      pntpbnd1a $p |- ( ph -> ( abs ` ( ( R ` N ) / N ) ) <_ E ) $=
        ( co wcel c1 wbr c2 cfv cdiv cabs clog crp cr nnrpd ffvelrni rerpdivcld
        pntrf syl recnd abscld relogcld cc0 ioossre sseldi nnred nnne0d absdivd
        cioo nnnn0d nn0ge0d absidd oveq2d eqtrd caddc cvma cmin peano2nnd vmacl
        cle peano2rem cchp wceq pntrval oveq12d peano2re chpcl sub4d cn0 oveq1d
        chpp1 pncan2d ax-1cn pncan2 sylancl 3eqtrd fveq2d breqtrd 1red resubcld
        cn cc 0red 2re clt eliooord simpld elrpd rerpdivcl sylancr a1i 1lt2 2cn
        wa div1i simprd wb 0lt1 2pos syl222anc mpbid syl5eqbrr lttrd ce rpefcld
        ltdiv2 syl5eqel rpred cpnf cxr rpxrd elioopnf reeflogd breqtrrd syl2anc
        cmul eflt mpbird ltled 1re letrd ceu epr ere loge eqbrtrd rpcnd wne 2rp
        suble0 vmage0 readdcl vmalelog remulcld rpmulcl nnge1d leadd2dd 2timesd
        c3 egt2lt3 simpli ltleii nngt0d lemul1 syl112anc logled relogmul oveq1i
        syl6eq absdifled mpbir2and lediv1dd efle df-e 3brtr4g syl5eqbr logdivlt
        logleb syl22anc fveq2i relogefd syl5eq cexp rpdivcl 2cnd rpcnne0d div12
        sqvald syl3anc rpdivcld divcan3d resqcld rehalfcld 1rp rpaddcl readdcld
        2ne0 ltaddrp2d efgt1p2 syl6breqr eqbrtrrd ltdiv23d ) AEBUAZEUBPZUCUAZEU
        DUAZEUBPZCAUWPAUWPAUWOEAEUEQZUWOUFQAEMUGZUEUFEBBHIUJUHUKZUXAUIULUMAUWRE
        AEUXAUNZUXAUIZAUORVAPZUFCUORUPJUQZAUWQUWOUCUAZEUBPZUWSVLAUWQUXGEUCUAZUB
        PUXHAUWOEAUWOUXBULZAEAEMURZULZAEMUSUTAUXIEUXGUBAEUXKAEAEMVBZVCVDVEVFAUX
        GUWREAUWOUXJUMZUXCUXAAUXGERVGPZVHUAZRVIPZUCUAZUWRUXNAUXQAUXQAUXPUFQZUXQ
        UFQAUXOWMQZUXSAEMVJZUXOVKUKZUXPVMUKULUMUXCAUXGUXOBUAZUWOVIPZUCUAUXRVLOA
        UYDUXQUCAUYDUXOVNUAZUXOVIPZEVNUAZEVIPZVIPUYEUYGVIPZUXOEVIPZVIPUXQAUYCUY
        FUWOUYHVIAUXOUEQUYCUYFVOAUXOUYAUGZUXOBHIVPUKAUWTUWOUYHVOUXAEBHIVPUKVQAU
        YEUXOUYGEAUYEAUXOUFQZUYEUFQAEUFQZUYLUXKEVRUKZUXOVSUKULAUXOUYNULAUYGAUYM
        UYGUFQUXKEVSUKULZUXLVTAUYIUXPUYJRVIAUYIUYGUXPVGPZUYGVIPUXPAUYEUYPUYGVIA
        EWAQUYEUYPVOUXMEWCUKWBAUYGUXPUYOAUXPUYBULWDVFAEWNQRWNQUYJRVOUXLWEERWFWG
        VQWHWIWJAUXRUWRVLSRUWRVIPZUXPVLSUXPRUWRVGPZVLSAUYQUOUXPARUWRAWKZUXCWLAW
        OUYBAUYQUOVLSZRUWRVLSZARUWRUYSUXCARTCUBPZUWRUYSATUFQZCUEQZVUBUFQZWPACUX
        FAUOCWQSZCRWQSZACUXEQVUFVUGXFJCUORWRUKZWSZWTZTCXAXBZUXCARTVUBUYSVUCAWPX
        CZVUKRTWQSAXDXCATTRUBPZVUBWQTXEXGAVUGVUMVUBWQSZAVUFVUGVUHXHACUFQVUFRUFQ
        ZUORWQSZVUCUOTWQSZVUGVUNXIUXFVUIUYSVUPAXJXCVULVUQAXKXCCRTXRXLXMXNXOZAVU
        BUWRWQSZVUBXPUAZUWRXPUAZWQSZAVUTEVVAWQAVUTFEWQKAFGEAFAFVUTUEKAVUBVUKXQX
        SZXTZAGUFQZFGWQSZAGFYAVAPQZVVEVVFXFZLAFYBQVVGVVHXIAFVVCYCFGYDUKXMZWSUXK
        AVVEVVFVVIXHAGEWQSEDGYHPVLSNWSXOZXNAEUXAYEYFAVUEUWRUFQZVUSVVBXIVUKUXCVU
        BUWRYIYGYJXOYKZAVUOVVKUYTVUAXIYLUXCRUWRUUBXBYJAUXTUOUXPVLSUYAUXOUUCUKYM
        AUXPUXOUDUAZUYRUYBAUXOUYKUNAVUOVVKUYRUFQYLUXCRUWRUUDXBAUXTUXPVVMVLSUYAU
        XOUUEUKAVVMYNEYHPZUDUAZUYRVLAUXOVVNVLSVVMVVOVLSAUXOTEYHPZVVNUYNATEVULUX
        KUUFAVVNAYNUEQZUWTVVNUEQYOUXAYNEUUGXBZXTAUXOEEVGPVVPVLAREEUYSUXKUXKAEMU
        UHUUIAEUXLUUJYFATYNVLSZVVPVVNVLSZVVSATYNWPYPTYNWQSYNUUKWQSUULUUMUUNXCAV
        UCYNUFQZUYMUOEWQSVVSVVTXIVULVWAAYPXCUXKAEMUUOTYNEUUPUUQXMYMAUXOVVNUYKVV
        RUURXMAVVOYNUDUAZUWRVGPZUYRAVVQUWTVVOVWCVOYOUXAYNEUUSXBVWBRUWRVGYQUUTUV
        AWJYMAUXPRUWRUYBUYSUXCUVBUVCYMUVDYRAUWSCUXDUXFAUWSFUDUAZFUBPZCUXDAVWDFA
        FVVCUNVVCUIUXFAFEWQSZUWSVWEWQSZVVJAFUFQYNFVLSUYMYNEVLSZVWFVWGXIVVDARXPU
        AZVUTYNFVLARVUBVLSZVWIVUTVLSZARVUBUYSVUKVURYKAVUOVUEVWJVWKXIYLVUKRVUBUV
        EXBXMUVFKUVGUXKAVWHVWBUWRVLSZAVWBRUWRVLYQVVLUVHAVVQUWTVWHVWLXIYOUXAYNEU
        VJXBYJFEUVIUVKXMAVWEVUBFUBPCWQAVWDVUBFUBAVWDVUTUDUAVUBFVUTUDKUVLAVUBVUK
        UVMUVNWBAVUBCFVUKVUJVVCAVUBTUVOPZTUBPZVUBCUBPZFWQAVWNTVWOYHPZTUBPVWOAVW
        MVWPTUBAVWMVUBVUBYHPZVWPAVUBAVUBATUEQVUDVUBUEQZUUAVUJTCUVPXBZYSZUVTAVUB
        WNQTWNQCWNQCUOYTXFVWQVWPVOVWTAUVQZACVUJUVRVUBTCUVSUWAVFWBAVWOTAVWOAVUBC
        VWSVUJUWBYSVXATUOYTAUWIXCUWCVFAVWNRVUBVGPZVWNVGPZFAVWMAVUBVUKUWDUWEZAVX
        BVWNAVXBARUEQVWRVXBUEQUWFVWSRVUBUWGXBZXTVXDUWHVVDAVWNVXBVXDVXEUWJAVXCVU
        TFWQAVWRVXCVUTWQSVWSVUBUWKUKKUWLXOUWMUWNYRXOYKYM $.
    $}

    pntpbnd1.1 $e |- ( ph -> A e. RR+ ) $.
    pntpbnd1.2 $e |- ( ph -> A. i e. NN A. j e. ZZ
   ( abs ` sum_ y e. ( i ... j ) ( ( R ` y ) / ( y x. ( y + 1 ) ) ) ) <_ A ) $.
    pntpbnd1.c $e |- C = ( A + 2 ) $.
    pntpbnd1.k $e |- ( ph -> K e. ( ( exp ` ( C / E ) ) [,) +oo ) ) $.
    pntpbnd1.3 $e |- ( ph -> -. E. y e. NN ( ( Y < y /\ y <_ ( K x. Y ) ) /\
        ( abs ` ( ( R ` y ) / y ) ) <_ E ) ) $.
    $( Lemma for ~ pntpbnd .  (Contributed by Mario Carneiro, 11-Apr-2016.) $)
    pntpbnd1 $p |- ( ph ->
      sum_ n e. ( ( ( |_ ` Y ) + 1 ) ... ( |_ ` ( K x. Y ) ) )
        ( abs ` ( ( R ` n ) / ( n x. ( n + 1 ) ) ) ) <_ A ) $=
      ( vx vm cfl cfv c1 caddc co cmul cfz cv cdiv csu cabs cle cc0 wbr wral wa
      wceq fzfid wcel cr crp cn cuz cpnf cioo ioossre sseldi c2 ce clt eliooord
      0red syl simpld sylancr reefcld syl5eqel ltled elfzuz eluznn syl2an nnrpd
      ffvelrni peano2nnd adantlr fsumrecl weq fveq2 breq2d rspccva nnred nngt0d
      adantll divge0 syl22anc fsumge0 absidd sumeq2dv cneg recnd renegcld mpbid
      breq1d le0neg1d mpbird absnidd breqtrd wo sylancl wb eqbrtrrd cz flcld wi
      oveq2 raleqdv orbi12d imbi2d wn imp adantr oveq1 ovex ralsn syl6bb adantl
      csn rspcv cmin ad2antrr anbi12d id oveq12d fveq2d adantrl simprl flge0nn0
      cn0 2re elrpd rerpdivcl efgt0 syl6breqr syl2anc nn0p1nn nnmulcld nndivred
      lttrd pntrf eqtr4d fsumneg nncnd nnne0d divnegd breqtrrd 3eqtr4rd cxr wss
      cico 2rp rpaddcl rpdivcld rpred pnfxr icossre remulcld mulid2d 1red efgt1
      sseldd elicopnf simplbda ltletrd ltmul1 syl112anc flword2 syl3anc elfzuzb
      mpdan uzid sylanbrc elfzle3 zred ltp1d peano2re ltnled pm2.21dd rgen olci
      elfzel2 2a1i cfzo elfzofz elfzp12 syl5ib letrid oveq2d peano2zd sylan9eqr
      fzsn a1d eluzfz2 wrex elfzle1 elfzelz zltp1le fllt elfzle2 flge jca simpr
      pntpbnd1a breq2 breq1 rspcev syl12anc mtand subid1d letric lesub2dd letrd
      0re ord abssuble0d 3brtr4d expr mt3d syld syl6ibr ancld cun fzsuc sylibrd
      ralunb con1d addge02d negsubd abssubge0d orim12d jaodan syldan expcom a2d
      ex fzind2 mpcom mpjaodan cbvsumv sumeq1d syl5eq rspc2va syl21anc ) ALUEUF
[encoded data, 6000 characters]
      RUKXSVUMYRXGVUOVUPXO $.

    $( Lemma for ~ pntpbnd .  (Contributed by Mario Carneiro, 11-Apr-2016.) $)
    pntpbnd2 $p |- -. ph $=
      ( vn vk c1 cle wbr c2 cdiv co cr wcel 2re a1i cc0 cioo ioossre sseldi clt
      wa syl simpld elrpd crp 2rp cmin caddc oveq1i wceq rpcnd sylancl syl5eqel
      cc syl5eq recnd rpdivcld rpred clog cfv resubcl ce cpnf reefcld mpbid 1re
      wb efgt1 simprd lttrd relogcld breqtrrd syl2anc mpbird cfl cmul cfz fzfid
      cv csu cn cn0 sylancr syl6breqr ltled flge0nn0 nnrecred fsumrecl readdcld
      nn0p1nn eqeltrd elfznn0 adantl readdcl remulcld lemul1 syl112anc eqbrtrrd
      letrd nnrpd flcld peano2zd elfznn fsumshftm ax-1cn oveq12d sumeq1d logled
      pncan cem emre ltleii harmonicbnd elicc2i breqtrd ceu epr ere cabs adantr
      nndivred wn 2div2e1 2cn pncan2 oveq1d rpne0d divsubdird eqtr3d rerpdivcld
      eliooord rpaddcl cico elicopnf 0red 0lt1 reeflogd efle lesub1dd rerpdivcl
      ltletrd efgt0 rexrd elioopnf elfzuz eluznn syl2an peano2nnd 2cnd pnpcan2d
      cuz cxr relogmuld mulid2d 1zzd nnrecre oveq2 1m1e0 zcnd cin reflcl fzdisj
      c0 cun flwordi syl3anc elfz2nn0 syl3anbrc fzsplit fsumsplit 3eqtrd fllep1
      ltp1d rpmulcld resubcld 0re emgt0 simp2bi subge0d eqtrd simp3bi lesubaddd
      cicc peano2re rpmulcl flle le2addd 2timesd egt2lt3 simpli relogmul syl6eq
      c3 loge leadd2dd df-2 addassd leadd1dd lesubadd2d fsummulc2 nncnd divrecd
      nnne0d eqeltrrd pntrf ffvelrni nnmulcld abscld wrex wi elfzle1 cz zltp1le
      nnzd fllt elfzle2 breq2 breq1 anbi12d fveq2 fveq2d breq1d rspcev syl12anc
      flge id expr mtod letrid ord mpd lediv1dd absdivd divdiv1d rprege0d absid
      oveq2d 3eqtr3rd 3brtr3d fsumle pntpbnd1 eqbrtrd subled lediv23d syl5eqbrr
      lemuldiv2d ltnle pm2.65i ) AUDHUEUFZAUDUGUGUHUIHUEUUAAUGHUGUGUJUKZAULUMZA
[encoded data, 5520 characters]
      VBVVCAVVMVVGYTZAVVLVVMVVNWGAXUQVXFVVMXWOWEVVKWDHUDVVEVJWCVVF $.
  $}

  ${
    $d a d i j k m n t u v w x y z E $.  $d n t u v x z L $.  $d a u x y z N $.
    $d u v x A $.  $d n t u v w x y C $.  $d c d e i j k m n t u v w x y z R $.
    $d m K $.  $d z M $.  $d x y T $.  $d z Y $.  $d k m n u v w x y Z $.
    $d k n t u w ph $.
    pntibnd.r $e |- R = ( a e. RR+ |-> ( ( psi ` a ) - a ) ) $.
    $( Lemma for ~ pnt .  Establish smallness of ` R ` at a point.  Lemma
       10.6.1 in [Shapiro], p. 436.  (Contributed by Mario Carneiro,
       10-Apr-2016.) $)
    pntpbnd $p |- E. c e. RR+ A. e e. ( 0 (,) 1 ) E. x e. RR+
      A. k e. ( ( exp ` ( c / e ) ) [,) +oo )
      A. y e. ( x (,) +oo ) E. n e. NN ( ( y < n /\ n <_ ( k x. y ) ) /\
        ( abs ` ( ( R ` n ) / n ) ) <_ e ) $=
      ( cv co cfv cdiv wbr wral crp wa cpnf wcel c2 vi vj vd cfz caddc cmul csu
      c1 cabs cle cz cn wrex clt cioo ce cico cc0 pntrsumbnd2 simpl 2rp rpaddcl
      sylancl cr elioore adantl eliooord simpld elrpd rerpdivcl sylancr rpefcld
      wi simpllr eqid simplrr simp-4l simp-4r simplrl simpr pntpbnd2 iman mpbir
      2re ralrimivva wceq oveq1 raleqdv ralbidv rspcev syl2anc ralrimiva fveq2d
      wn oveq1d rexbidv rexlimiva ax-mp ) UAJUBJUDKFJZCLZWSWSUHUEKUFKMKFUGUILUC
      JZUJNUBUKOUAULOZUCPUMBJZWSUNNWSEJZXCUFKUJNQWTWSMKUILDJZUJNQFULUMZBAJZRUOK
      ZOZEHJZXEMKZUPLZRUQKZOZAPUMZDURUHUOKZOZHPUMZCUAUBFGUCIUSXBXRUCPXAPSZXBQZX
      ATUEKZPSZXIEYAXEMKZUPLZRUQKZOZAPUMZDXPOZXRXTXSTPSYBXSXBUTVAXATVBVCXTYGDXP
      XTXEXPSZQZTXEMKZUPLZPSXFBYLRUOKZOZEYEOZYGYJYKYJTVDSXEPSYKVDSWDYJXEYIXEVDS
      XTXEURUHVEVFYJURXEUNNZXEUHUNNZYIYPYQQXTXEURUHVGVFVHVITXEVJVKVLYJXFEBYEYMY
      JXDYESZXCYMSZQZQZXFVMUUAXFWNZQZWNUUCFXAYACUAUBXEXDYLXCGIXTYIYTUUBVNYLVOYJ
      YRYSUUBVPXSXBYIYTUUBVQXSXBYIYTUUBVRYAVOYJYRYSUUBVSUUAUUBVTWAUUAXFWBWCWEYF
      YOAYLPXGYLWFZXIYNEYEUUDXFBXHYMXGYLRUOWGWHWIWJWKWLXQYHHYAPXJYAWFZXOYGDXPUU
      EXNYFAPUUEXIEXMYEUUEXLYDRUQUUEXKYCUPXJYAXEMWGWMWOWHWPWIWJWKWQWR $.

    pntibndlem1.1 $e |- ( ph -> A e. RR+ ) $.
    pntibndlem1.l $e |- L = ( ( 1 / 4 ) / ( A + 3 ) ) $.
    $( Lemma for ~ pntibnd .  (Contributed by Mario Carneiro, 10-Apr-2016.) $)
    pntibndlem1 $p |- ( ph -> L e. ( 0 (,) 1 ) ) $=
      ( cr wcel cc0 clt wbr c1 co c4 cdiv c3 crp a1i cioo caddc cn nnrp rpreccl
      4nn mp2b ax-mp rpaddcl sylancl rpdivcl sylancr syl5eqel rpred rpgt0d rpcn
      3nn cc div1i rpre mp1i 3re 1lt4 4re 4pos recgt1 mp2an mpbi 1lt3 1re lttri
      wb ltaddrp wceq rpcnd addcom breqtrd lttrd syl5eqbr 0lt1 rpregt0d ltdiv23
      3cn wa syl121anc mpbid cxr w3a 0xr rexri elioo2 syl3anbrc ) ADIJZKDLMZDNL
      MZDKNUAOJZADADNPQOZBRUBOZQOZSHAWQSJZWRSJZWSSJPUCJPSJWTUFPUDPUEUGZABSJZRSJ
      ZXAGRUCJXDUQRUDUHBRUIUJZWQWRUKULUMZUNADXFUOADWSNLHAWQNQOZWRLMZWSNLMZAXGWQ
      WRLWQWTWQURJXBWQUPUHUSAWQRWRWTWQIJZAXBWQUTZVAZRIJZAVBTAWRXEUNWQRLMZAWQNLM
      ZNRLMXNNPLMZXOVCPIJKPLMXPXOVLVDVEPVFVGVHVIWQNRWTXJXBXKUHVJVBVKVGTARRBUBOZ
      WRLAXMXCRXQLMVBGRBVMULARURJBURJXQWRVNWCABGVORBVPULVQVRVSAXJNIJZKNLMZWRIJK
      WRLMWDXHXIVLXLXRAVJTXSAVTTAWRXEWAWQNWRWBWEWFVSKWGJNWGJWPWMWNWOWHVLWINVJWJ
      KNDWKVGWL $.

    pntibndlem3.2 $e |- ( ph ->
      A. x e. RR+ ( abs ` ( ( R ` x ) / x ) ) <_ A ) $.
    pntibndlem3.3 $e |- ( ph -> B e. RR+ ) $.
    pntibndlem3.k $e |- K = ( exp ` ( B / ( E / 2 ) ) ) $.
    pntibndlem3.c $e |- C = ( ( 2 x. B ) + ( log ` 2 ) ) $.
    pntibndlem3.4 $e |- ( ph -> E e. ( 0 (,) 1 ) ) $.
    pntibndlem3.6 $e |- ( ph -> Z e. RR+ ) $.
    ${
      pntibndlem2.10 $e |- ( ph -> N e. NN ) $.
      $( Lemma for ~ pntibndlem2 .  (Contributed by Mario Carneiro,
         7-Jun-2016.) $)
      pntibndlem2a $p |- ( ( ph /\ u e. ( N [,] ( ( 1 + ( L x. E ) ) x. N ) ) )
        -> ( u e. RR /\ N <_ u /\ u <_ ( ( 1 + ( L x. E ) ) x. N ) ) ) $=
        ( cv c1 cmul co caddc cicc wcel cr cle wbr w3a wb 1red cc0 cioo ioossre
        nnred pntibndlem1 sseldi remulcld readdcld elicc2 syl2anc biimpa ) ACUD
        ZKUEJHUFUGZUHUGZKUFUGZUIUGUJZVHUKUJKVHULUMVHVKULUMUNZAKUKUJVKUKUJVLVMUO
        AKUCUTZAVJKAUEVIAUPAJHAUQUEURUGZUKJUQUEUSZADGJMNOPVAVBAVOUKHVPUAVBVCVDV
        NVCKVKVHVEVFVG $.

      pntibndlem2.5 $e |- ( ph -> T e. RR+ ) $.
      pntibndlem2.6 $e |- ( ph -> A. x e. ( 1 (,) +oo )
        A. y e. ( x [,] ( 2 x. x ) ) ( ( psi ` y ) - ( psi ` x ) ) <_
          ( ( 2 x. ( y - x ) ) + ( T x. ( x / ( log ` x ) ) ) ) ) $.
      pntibndlem2.7 $e |- X = ( ( exp ` ( T / ( E / 4 ) ) ) + Z ) $.
      pntibndlem2.8 $e |- ( ph -> M e. ( ( exp ` ( C / E ) ) [,) +oo ) ) $.
      pntibndlem2.9 $e |- ( ph -> Y e. ( X (,) +oo ) ) $.
      pntibndlem2.11 $e |- ( ph -> ( ( Y < N /\ N <_ ( ( M / 2 ) x. Y ) ) /\
          ( abs ` ( ( R ` N ) / N ) ) <_ ( E / 2 ) ) ) $.
      $( Lemma for ~ pntibnd .  The main work, after eliminating all the
         quantifiers.  (Contributed by Mario Carneiro, 10-Apr-2016.) $)
      pntibndlem2 $p |- ( ph -> E. z e. RR+ ( ( Y < z /\
          ( ( 1 + ( L x. E ) ) x. z ) < ( M x. Y ) ) /\
          A. u e. ( z [,] ( ( 1 + ( L x. E ) ) x. z ) )
            ( abs ` ( ( R ` u ) / u ) ) <_ E ) ) $=
        ( crp wcel clt wbr c1 cmul co caddc wa cv cfv cdiv cabs cle cicc simpld
        wral 1red cc0 cioo ioossre sseldi remulcld readdcld 2re remulcl sylancr
        c2 cr ce cpnf cxr clog rpred 2rp a1i syl5eqel eliooord elrpd rerpdivcld
        syl reefcld sylancl rpge0d simprd syl6breqr wne wceq recnd mp1i syl3anc
        cc breqtrrd mpbird cmin adantr ffvelrni abscld lesubaddd mpbid resubcld
        subcld c3 c4 rpdivcld lttrd rpne0d oveq2d eqtrd oveq1d rpcnne0d oveq12d
        cchp fveq2d addassd letrd wb syl2anc id oveq2 fveq2 rspcv rpcnd breqtrd
        sylc wrex nnrpd pntibndlem1 nnred cico relogcld pnfxr icossre ltmul12ad
        sseldd 1t1e1 syl6breq ltadd2dd df-2 ltmul1dd rpcnne0 lemuldiv2d ltletrd
        wss div23 pntibndlem2a simp1d rpgecld pntrf nndivred abs2difd rehalfcld
        simp2d 3re cn nnrp efgt1 ltaddrpd rplogcld peano2re chpcl cneg renegcld
        4nn abstrid divsubdird dividd 1cnd subdird dmdcan mulid2d 3eqtrd negeqd
        negsubdi2d npncand absnegd absmuld subge0d divge0d absidd absdivd absid
        rprege0d 3brtr3d pntrval subadd4 sub4 addsub4 3eqtr3d syl22anc chpwordi
        abssubge0d abssuble0d addcomd lediv1dd leadd2dd mulid1d divdird 3eqtr4d
        an42s eqtr2d adddid simp3d wi ltle mpd lemul1d w3a elicc2 mpbir3and 1re
        rexri elioopnf ax-mp sylanbrc breq12d raleqbidv weq divdir 2cnd divassd
        oveq1 div12 divcan3d 2cn mulcom oveq2i syl6eq 3eqtr2d eqtr3d ledivmul2d
        1p2e3 ax-1cn addcom eqbrtrd breq1d leadd1dd jca rpaddcl lemul12b mp2and
        3nn divcan1d divrec2d 4cn 4ne0 reccli div23d oveq1i 2ne0 divdiv1d 2t2e4
        syl6eqr reeflogd eflt ltled lediv23d le2addd 2halvesd ralrimiva anbi12d
        jca31 breq2 raleqdv rspcev ) AOUPUQZQOURUSZUTMKVAVBZVCVBZOVAVBZNQVAVBZU
[encoded data, 8160 characters]
        YWLVWQOVWSVWEVJYWLYNYWMYGVVSVVPVVTYM $.
    $}

    $d y ph $.
    pntibndlem3.5 $e |- ( ph -> A. m e. ( K [,) +oo )
      A. v e. ( Z (,) +oo ) E. i e. NN ( ( v < i /\ i <_ ( m x. v ) ) /\
        ( abs ` ( ( R ` i ) / i ) ) <_ ( E / 2 ) ) ) $.
    $( Lemma for ~ pntibnd .  Package up ~ pntibndlem2 in quantifiers.
       (Contributed by Mario Carneiro, 10-Apr-2016.) $)
    pntibndlem3 $p |- ( ph -> E. x e. RR+
      A. k e. ( ( exp ` ( C / E ) ) [,) +oo )
      A. y e. ( x (,) +oo ) E. z e. RR+ ( ( y < z /\
        ( ( 1 + ( L x. E ) ) x. z ) < ( k x. y ) ) /\
        A. u e. ( z [,] ( ( 1 + ( L x. E ) ) x. z ) )
          ( abs ` ( ( R ` u ) / u ) ) <_ E ) ) $=
      ( vw vt vn cv cchp cfv cmin co c2 cmul clog cdiv caddc cle cicc wral cpnf
      wbr c1 cioo crp wrex clt wa cabs ce cico cr wcel 2re 1le2 chpdifbnd mp2an
      c4 simpr cc0 ioossre sseldi eliooord syl simpld elrpd adantr cn 4nn ax-mp
      nnrp rpdivcl sylancl rpred adantrr ad2antll reefcld wb mpbir2and adantlrr
      remulcl sylancr 2rp readdcl syl5eqel rerpdivcld elicopnf wceq recnd recni
      a1i rpregt0 mp1i syl3anc mpbid wne rpcnne0 oveq1d syl2anc ad2antrr breq2d
      cc oveq1 anbi1d rexbidv ralbidv rspcv sylc breq1 anbi12d fveq2 id oveq12d
      weq fveq2d breq1d rpdivcld rpefcld rpaddcld elioore ltaddrp2d lttrd rexrd
      readdcld cxr elioopnf relogcl simprbda rehalfcld rphalfcld reeflog oveq2i
      efadd syl6eq rerpdivcl div1i simprd wi 1re ltle mpd rpregt0d 1lt2 rplogcl
      1rp lediv2 syl5eqbrr leadd2dd oveq1i divdir syl5eq mulcom eqtr4d breqtrrd
      divdiv2 eqtrd efle eqbrtrrd simplbda letrd lemuldiv syl5eqbr anbi2d breq2
      cbvrexv oveq2 syl5bb cbvralv simprrl simplrl simplrr eqid simprll simprlr
      sylib simprrr pntibndlem2 anassrs rexlimddv ralrimivva raleqdv rexlimdvaa
      rspcev mpi ) AUIULZUMUNEULZUMUNUOUPUQUXIUXJUOUPURUPUJULZUXJUXJUSUNUTUPURU
      PVAUPVBVFUIUXJUQUXJURUPVCUPVDEVGVEVHUPVDZUJVIVJZCULZDULZVKVFVGPNURUPVAUPU
      XOURUPZLULZUXNURUPVKVFVLFULZJUNUXRUTUPVMUNNVBVFFUXOUXPVCUPVDVLDVIVJZCBULZ
      VEVHUPZVDZLINUTUPZVNUNZVEVOUPZVDZBVIVJZUQVPVQZVGUQVBVFUXMVRVSEUIUQUJVTWAA
      UXLUYGUJVIAUXKVIVQZUXLVLZVLZUXKNWBUTUPZUTUPZVNUNZQVAUPZVIVQZUXSCUYOVEVHUP
      ZVDZLUYEVDZUYGAUYIUYPUXLAUYIVLZUYNQUYTUYMUYTUYMUYTUXKUYLAUYIWCUYTNVIVQZWB
      VIVQZUYLVIVQAVUAUYIANAWDVGVHUPZVPNWDVGWEUFWFZAWDNVKVFZNVGVKVFZANVUCVQZVUE
      VUFVLUFNWDVGWGWHZWIWJWKZWBWLVQVUBWMWBWOWNNWBWPWQUUAWRZUUBZAQVIVQZUYIUGWKZ
      UUCWSUYKUXSLCUYEUYQUYKUXQUYEVQZUXNUYQVQZVLZVLZUXNUKULZVKVFZVURUXQUQUTUPZU
      XNURUPZVBVFZVLZVURJUNZVURUTUPZVMUNZNUQUTUPZVBVFZVLZUXSUKWLVUQUXNQVEVHUPZV
      QZUXJKULZVKVFZVVLVUTUXJURUPZVBVFZVLZVVLJUNZVVLUTUPZVMUNZVVGVBVFZVLZKWLVJZ
      EVVJVDZVVIUKWLVJZAUYIVUPVVKUXLUYTVUPVLZVVKUXNVPVQZQUXNVKVFZVUOVWFUYTVUNUX
      NUYOVEUUDWTZVWEQUYOUXNUYTQVPVQVUPUYTQVUMWRZWKZUYTUYOVPVQVUPUYTUYNQUYTUYMV
      UJXAVWIUUHWKVWHUYTQUYOVKVFVUPUYTQUYNVWIVUKUUEWKVUOUYOUXNVKVFZUYTVUNVUOVWK
      UXNVEVKVFUXNUYOVEWGWIWTUUFVWEQUUIVQVVKVWFVWGVLXBVWEQVWJUUGQUXNUUJWHXCXDVU
      QVUTOVEVOUPZVQZVVMVVLMULZUXJURUPZVBVFZVLZVVTVLZKWLVJZEVVJVDZMVWLVDZVWCAUY
      IVUPVWMUXLUYTVUNVWMVUOUYTVUNVLZVWMVUTVPVQZOVUTVBVFZVXBUXQUYTVUNUXQVPVQZUY
      DUXQVBVFZUYTUYDVPVQZVUNVXEVXFVLXBUYTUYCUYTINUYTIUQHURUPZUQUSUNZVAUPZVPUEU
      YTVXHVPVQZVXIVPVQZVXJVPVQUYTUYHHVPVQVXKVRUYTHAHVIVQZUYIUCWKWRZUQHXEXFZUQV
      IVQZVXLXGUQUUKWNZVXHVXIXHWQXIVUIXJZXAZUYDUXQXKWHZUULZUUMVXBOHVVGUTUPZVNUN
      ZVUTVBUDVXBVYCUQURUPZUXQVBVFZVYCVUTVBVFZVXBVYDUYDUXQUYTVYDVPVQZVUNUYTVYCV
      PVQZUYHVYGUYTVYBUYTHVVGVXNUYTNVUIUUNXJZXAZVRVYCUQXEWQWKUYTVXGVUNVXSWKVYAU
      YTVYDUYDVBVFVUNUYTVYBVXIVAUPZVNUNZVYDUYDVBUYTVYLVYCVXIVNUNZURUPZVYDUYTVYB
      YFVQVXIYFVQZVYLVYNXLUYTVYBVYIXMVXIVXQXNZVYBVXIUUQWQVYMUQVYCURVXPVYMUQXLXG
      UQUUOWNUUPUURUYTVYKUYCVBVFZVYLUYDVBVFZUYTVYKVYBVXINUTUPZVAUPZUYCVBUYTVXIV
      YSVYBVXLUYTVXQXOUYTVXLVUAVYSVPVQVXQVUIVXINUUSXFVYIUYTVXIVXIVGUTUPZVYSVBVX
      IVYPUUTUYTNVGVBVFZWUAVYSVBVFZUYTVUFWUBAVUFUYIAVUEVUFVUHUVAWKUYTNVPVQZVGVP
      VQZVUFWUBUVBAWUDUYIVUDWKUVCNVGUVDWQUVEUYTWUDVUEVLWUEWDVGVKVFVLZVXLWDVXIVK
      VFVLZWUBWUCXBUYTNVUIUVFVGVIVQWUFUYTUVIVGXPXQVXIVIVQZWUGUYTUYHVGUQVKVFWUHV
      RUVGUQUVHWAVXIXPXQNVGVXIUVJXRXSUVKUVLUYTUYCVXHNUTUPZVYSVAUPZVYTUYTUYCVXJN
      UTUPZWUJIVXJNUTUEUVMUYTVXHYFVQVYONYFVQNWDXTVLZWUKWUJXLUYTVXHVXOXMVYOUYTVY
      PXOUYTVUAWULVUINYAWHZVXHVXINUVNXRUVOUYTWUIVYBVYSVAUYTWUIHUQURUPZNUTUPZVYB
      UYTVXHWUNNUTUYTUQYFVQZHYFVQZVXHWUNXLUQVRXNUYTHVXNXMZUQHUVPXFYBUYTWUQWULWU
      PUQWDXTVLZVYBWUOXLWURWUMVXPWUSUYTXGUQYAXQHNUQUVSXRUVQYBUVTUVRUYTVYKVPVQZU
      YCVPVQVYQVYRXBUYTVYBVPVQVXLWUTVYIVXQVYBVXIXHWQVXRVYKUYCUWAYCXSUWBWKUYTVUN
      VXEVXFVXTUWCUWDVXBVYHVXEUYHWDUQVKVFVLZVYEVYFXBUYTVYHVUNVYJWKZVYAVXPWVAVXB
      XGUQXPXQVYCUXQUQUWEXRXSUWFVXBOVPVQVWMVXCVXDVLXBVXBOVYCVPUDWVBXIOVUTXKWHXC
      WSXDAVXAUYJVUPUHYDVWTVWCMVUTVWLVWNVUTXLZVWSVWBEVVJWVCVWRVWAKWLWVCVWQVVPVV
      TWVCVWPVVOVVMWVCVWOVVNVVLVBVWNVUTUXJURYGYEUWGYHYIYJYKYLVWBVWDEUXNVVJVWBUX
      JVURVKVFZVURVVNVBVFZVLZVVHVLZUKWLVJECYRZVWDVWAWVGKUKWLKUKYRZVVPWVFVVTVVHW
      VIVVMWVDVVOWVEVVLVURUXJVKUWHVVLVURVVNVBYMYNWVIVVSVVFVVGVBWVIVVRVVEVMWVIVV
      QVVDVVLVURUTVVLVURJYOWVIYPYQYSYTYNUWIWVHWVGVVIUKWLWVHWVFVVCVVHWVHWVDVUSWV
      EVVBUXJUXNVURVKYMWVHVVNVVAVURVBUXJUXNVUTURUWJYEYNYHYIUWKYKYLUYKVUPVURWLVQ
      ZVVIVLZUXSUYKVUPWVKVLZVLEUIDFGHIJUXKNOPUXQVURUYOUXNQRSAGVIVQUYJWVLTYDUAAU
      XJJUNZUXJUTUPZVMUNZGVBVFZEVIVDZUYJWVLAUXTJUNZUXTUTUPZVMUNZGVBVFZBVIVDWVQU
      BWWAWVPBEVIBEYRZWVTWVOGVBWWBWVSWVNVMWWBWVRWVMUXTUXJUTUXTUXJJYOWWBYPYQYSYT
      UWLUWSYDAVXMUYJWVLUCYDUDUEAVUGUYJWVLUFYDAVULUYJWVLUGYDUYKVUPWVJVVIUWMAUYI
      UXLWVLUWNAUYIUXLWVLUWOUYOUWPUYKVUNVUOWVKUWQUYKVUNVUOWVKUWRUYKVUPWVJVVIUWT
      UXAUXBUXCUXDUYFUYSBUYOVIUXTUYOXLZUYBUYRLUYEWWCUXSCUYAUYQUXTUYOVEVHYGUXEYJ
      UXGYCUXFUXH $.
  $}

  ${
    $d x z C $.  $d w F $.  $d n I $.  $d n x y z J $.  $d j k m n u x y z L $.
    $d j k m n x y z K $.  $d j m n x z M $.  $d n x z O $.  $d j m n v x ph $.
    $d j m n x z N $.  $d b c d e f g i j k l m n u v w x y z R $.  $d n u V $.
    $d j m n w x z U $.  $d n v w z W $.  $d k n y z X $.  $d i j m n x z Y $.
    $d a e g j k m n u v x y z E $.  $d j m n u x z Z $.
    pntlem1.r $e |- R = ( a e. RR+ |-> ( ( psi ` a ) - a ) ) $.
    $( Lemma for ~ pnt .  Establish smallness of ` R ` on an interval.  Lemma
       10.6.2 in [Shapiro], p. 436.  (Contributed by Mario Carneiro,
       10-Apr-2016.) $)
    pntibnd $p |- E. c e. RR+ E. l e. ( 0 (,) 1 ) A. e e. ( 0 (,) 1 )
      E. x e. RR+ A. k e. ( ( exp ` ( c / e ) ) [,) +oo )
      A. y e. ( x (,) +oo ) E. z e. RR+ ( ( y < z /\
        ( ( 1 + ( l x. e ) ) x. z ) < ( k x. y ) ) /\
        A. u e. ( z [,] ( ( 1 + ( l x. e ) ) x. z ) )
          ( abs ` ( ( R ` u ) / u ) ) <_ e ) $=
      ( cv co wbr crp wral wrex wa c1 wcel vd vv vn vm vf cfv cdiv cabs cle clt
      vg vb cmul cn cpnf cioo ce cico caddc cicc pntrmax pntpbnd reeanv c2 clog
      cc0 c4 c3 2rp rpmulcl mpan cr 1lt2 rplogcl mp2an rpaddcl sylancl ad2antlr
      2re id eqid pntibndlem1 ad2antrr wi eliooord simpld elrpd rphalfcld rpred
      elioore rpgt0d 1red rphalflt syl simprd lttrd cxr w3a wb 0xr rexri elioo2
      syl3anbrc adantl wceq oveq2 fveq2d oveq1d breq2 rexbidv ralbidv raleqbidv
      1re anbi2d rspcv simp-4l simplr simprl simprr pntibndlem3 rexlimdvaa syld
      simpllr ralrimdva oveq1 raleqdv oveq2d anbi12d rexralbidv rspc2ev syl3anc
      impr breq1d ex rexlimivv sylbir ) ALZEUFYQUGMUHUFUALZUINAOPZUAOQZUBLZUCLZ
      UJNUUBUDLUUAUMMUINRZUUBEUFUUBUGMUHUFZUELZUINZRZUCUNQZUBUKLZUOUPMZPZUDULLZ
      UUEUGMZUQUFZUOURMZPZUKOQZUEVFSUPMZPZULOQZBLZCLZUJNZSJLZFLZUMMZUSMZUVBUMMZ
      GLUVAUMMZUJNZRZDLZEUFUVLUGMUHUFUVEUINZDUVBUVHUTMZPZRZCOQZBYQUOUPMZPZGILZU
      VEUGMZUQUFZUOURMZPZAOQZFUURPZJUURQIOQZAEHUAKVAUKUBEUEUDUCHULKVBYTUUTRYSUU
      SRZULOQUAOQUWGYSUUSUAULOOVCUWHUWGUAULOOYROTZUULOTZRZUWHUWGUWKUWHRVDUULUMM
      ZVDVEUFZUSMZOTZSVGUGMYRVHUSMUGMZUURTZUVCSUWPUVEUMMZUSMZUVBUMMZUVIUJNZRZUV
      MDUVBUWTUTMZPZRZCOQZBUVRPZGUWNUVEUGMZUQUFZUOURMZPAOQZFUURPZUWGUWJUWOUWIUW
      HUWJUWLOTZUWMOTZUWOVDOTUWJUXMVIVDUULVJVKVDVLTSVDUJNUXNVSVMVDVNVOUWLUWMVPV
      QVRUWIUWQUWJUWHUWIYREUWPHKUWIVTUWPWAZWBWCUWKYSUUSUXLUWKYSRZUUSUXKFUURUXPU
      VEUURTZRZUUSUUCUUDUVEVDUGMZUINZRZUCUNQZUBUUJPZUDUULUXSUGMZUQUFZUOURMZPZUK
      OQZUXKUXRUXSUURTZUUSUYHWDUXQUYIUXPUXQUXSVLTZVFUXSUJNZUXSSUJNZUYIUXQUXSUXQ
      UVEUXQUVEUVEVFSWJZUXQVFUVEUJNZUVESUJNZUVEVFSWEZWFWGZWHZWIZUXQUXSUYRWKUXQU
      XSUVESUYSUYMUXQWLUXQUVEOTUXSUVEUJNUYQUVEWMWNUXQUYNUYOUYPWOWPVFWQTSWQTUYIU
      YJUYKUYLWRWSWTSXMXAVFSUXSXBVOXCXDUUQUYHUEUXSUURUUEUXSXEZUUPUYGUKOUYTUUKUY
      CUDUUOUYFUYTUUNUYEUOURUYTUUMUYDUQUUEUXSUULUGXFXGXHUYTUUHUYBUBUUJUYTUUGUYA
      UCUNUYTUUFUXTUUCUUEUXSUUDUIXIXNXJXKXLXJXOWNUXRUYGUXKUKOUXRUUIOTZUYGRZRABC
      UBDYRUULUWNEUCGUDUVEUYEUWPUUIHKUWIUWJYSUXQVUBXPUXOUWKYSUXQVUBYCUXPUWJUXQV
      UBUWIUWJYSXQWCUYEWAUWNWAUXPUXQVUBXQUXRVUAUYGXRUXRVUAUYGXSXTYAYBYDYLUWFUXL
      UVSGUXJPZAOQZFUURPIJUWNUWPOUURUVTUWNXEZUWEVUDFUURVUEUWDVUCAOVUEUVSGUWCUXJ
      VUEUWBUXIUOURVUEUWAUXHUQUVTUWNUVEUGYEXGXHYFXJXKUVDUWPXEZVUDUXKFUURVUFUVSU
      XGAGOUXJVUFUVQUXFBUVRVUFUVPUXECOVUFUVKUXBUVOUXDVUFUVJUXAUVCVUFUVHUWTUVIUJ
      VUFUVGUWSUVBUMVUFUVFUWRSUSUVDUWPUVEUMYEYGXHZYMXNVUFUVMDUVNUXCVUFUVHUWTUVB
      UTVUGYGYFYHXJXKYIXKYJYKYNYOYPVO $.

    pntlem1.a $e |- ( ph -> A e. RR+ ) $.
    pntlem1.b $e |- ( ph -> B e. RR+ ) $.
    pntlem1.l $e |- ( ph -> L e. ( 0 (,) 1 ) ) $.
    pntlem1.d $e |- D = ( A + 1 ) $.
    pntlem1.f $e |- F = ( ( 1 - ( 1 / D ) ) x.
      ( ( L / ( ; 3 2 x. B ) ) / ( D ^ 2 ) ) ) $.
    $( Lemma for ~ pnt .  Closure for the constants used in the proof.  For
       comparison with Equation 10.6.27 of [Shapiro], p. 434, ` A ` is C^*,
       ` B ` is c_1, ` L ` is &lambda;, ` D ` is c_2, and ` F ` is c_3.
       (Contributed by Mario Carneiro, 13-Apr-2016.) $)
    pntlemd $p |- ( ph -> ( L e. RR+ /\ D e. RR+ /\ F e. RR+ ) ) $=
      ( crp wcel c1 co clt wbr cc0 cioo cr ioossre sseldi wa eliooord syl elrpd
      simpld caddc 1rp rpaddcl sylancl syl5eqel cdiv cmin cdc cmul cexp ltaddrp
      c3 c2 1re sylancr cc rpcnd ax-1cn addcom syl5eq breqtrrd recgt1d mpbid wb
      wceq rprecred difrp cn 3nn0 2nn decnncl nnrp ax-mp rpmulcl rpdivcld cz 2z
      rpexpcl rpmulcld 3jca ) AGOPDOPZFOPAGAUAQUBRZUCGUAQUDLUEAUAGSTZGQSTZAGWLP
      WMWNUFLGUAQUGUHUJUIZADBQUKRZOMABOPZQOPWPOPJULBQUMUNUOZAFQQDUPRZUQRZGVBVCU
      RZCUSRZUPRZDVCUTRZUPRZUSRONAWTXEAWSQSTZWTOPZAQDSTXFAQQBUKRZDSAQUCPZWQQXHS
      TVDJQBVAVEADWPXHMABVFPQVFPWPXHVOABJVGVHBQVIUNVJVKADWRVLVMAWSUCPXIXFXGVNAD
      WRVPVDWSQVQUNVMAXCXDAGXBWOAXAOPZCOPXBOPXAVRPXJVBVCVSVTWAXAWBWCKXACWDVEWEA
      WKVCWFPXDOPWRWGDVCWHUNWEWIUOWJ $.

    pntlem1.u $e |- ( ph -> U e. RR+ ) $.
    pntlem1.u2 $e |- ( ph -> U <_ A ) $.
    pntlem1.e $e |- E = ( U / D ) $.
    pntlem1.k $e |- K = ( exp ` ( B / E ) ) $.
    $( Lemma for ~ pnt .  Closure for the constants used in the proof.  For
       comparison with Equation 10.6.27 of [Shapiro], p. 434, ` U ` is &alpha;,
       ` E ` is &epsilon;, and ` K ` is _K_.  (Contributed by Mario Carneiro,
       13-Apr-2016.) $)
    pntlemc $p |- ( ph -> ( E e. RR+ /\ K e. RR+ /\
      ( E e. ( 0 (,) 1 ) /\ 1 < K /\ ( U - E ) e. RR+ ) ) ) $=
      ( crp wcel cc0 c1 cioo co clt wbr cmin w3a cdiv pntlemd rpdivcld syl5eqel
      simp2d ce cfv rpred rpefcld cr rpgt0d caddc ltp1d syl6breqr lelttrd rpcnd
      cmul mulid1d breqtrrd 1red ltdivmuld mpbird syl5eqbr cxr wb 0xr 1re rexri
      elioo2 mp2an syl3anbrc efgt1 syl ltaddrp sylancr cc wne wa rpcnne0d divid
      wceq ax-1cn addcom sylancl syl5eq 3brtr4d ltdiv23d difrp syl2anc mpbid
      3jca ) AGUBUCIUBUCGUDUEUFUGUCZUEIUHUIZFGUJUGUBUCZUKAGFDULUGZUBTAFDRAJUBUC
      DUBUCHUBUCABCDEHJKLMNOPQUMUPZUNUOZAICGULUGZUQURZUBUAAXIAXIACGNXHUNZUSUTUO
      AXCXDXEAGVAUCZUDGUHUIZGUEUHUIZXCAGXHUSZAGXHVBAGXFUEUHTAXFUEUHUIFDUEVHUGZU
      HUIAFDXPUHAFBDAFRUSZABMUSZADXGUSSABBUEVCUGZDUHABXRVDPVEVFADADXGVGVIVJAFUE
      DXQAVKXGVLVMVNUDVOUCUEVOUCXCXLXMXNUKVPVQUEVRVSUDUEGVTWAWBAUEXJIUHAXIUBUCU
      EXJUHUIXKXIWCWDUAVEAGFUHUIZXEAGXFFUHTAFFDXQRXGAUEUEBVCUGZFFULUGZDUHAUEVAU
      CBUBUCUEYAUHUIVRMUEBWEWFAFWGUCFUDWHWIYBUEWLAFRWJFWKWDADXSYAPABWGUCUEWGUCX
      SYAWLABMVGWMBUEWNWOWPWQWRVNAXLFVAUCXTXEVPXOXQGFWSWTXAXBXB $.

    pntlem1.y $e |- ( ph -> ( Y e. RR+ /\ 1 <_ Y ) ) $.
    pntlem1.x $e |- ( ph -> ( X e. RR+ /\ Y < X ) ) $.
    pntlem1.c $e |- ( ph -> C e. RR+ ) $.
    pntlem1.w $e |- W = ( ( ( Y + ( 4 / ( L x. E ) ) ) ^ 2 ) +
      ( ( ( X x. ( K ^ 2 ) ) ^ 4 ) + ( exp ` ( ( ( ; 3 2 x. B ) /
     ( ( U - E ) x. ( L x. ( E ^ 2 ) ) ) ) x. ( ( U x. 3 ) + C ) ) ) ) ) $.
    $( Lemma for ~ pnt .  Closure for the constants used in the proof.  The
       mammoth expression ` W ` is a number large enough to satisfy all the
       lower bounds needed for ` Z ` .  For comparison with Equation 10.6.27 of
       [Shapiro], p. 434, ` Y ` is x_2, ` X ` is x_1, ` C ` is the big-O
       constant in Equation 10.6.29 of [Shapiro], p. 435, and ` W ` is the
       unnamed lower bound of "for sufficiently large x" in Equation 10.6.34 of
       [Shapiro], p. 436.  (Contributed by Mario Carneiro, 13-Apr-2016.) $)
    pntlema $p |- ( ph -> W e. RR+ ) $=
      ( c4 cmul co cdiv caddc c2 cexp c3 cdc cmin ce cfv crp wcel cz c1 cle wbr
      simpld cn 4nn nnrp ax-mp pntlemd simp1d cc0 cioo clt w3a pntlemc rpmulcld
      rpdivcl sylancr rpaddcld 2z rpexpcl sylancl simp2d 4z 2nn decnncl rpmulcl
      3nn0 simp3d rpdivcld 3nn rpred rpefcld syl5eqel ) ALNUJKHUKULZUMULZUNULZU
      OUPULZMJUOUPULZUKULZUJUPULZUQUOURZCUKULZGHUSULZKHUOUPULZUKULZUKULZUMULZGU
      QUKULZDUNULZUKULZUTVAZUNULZUNULVBUIAXBXQAXAVBVCUOVDVCZXBVBVCANWTANVBVCVEN
      VFVGUFVHAUJVBVCZWSVBVCWTVBVCUJVIVCXSVJUJVKVLAKHAKVBVCEVBVCIVBVCABCEFIKOPQ
      RSTUAVMVNZAHVBVCZJVBVCZHVOVEVPULVCZVEJVQVGZXHVBVCZVRZABCEFGHIJKOPQRSTUAUB
      UCUDUEVSZVNZVTUJWSWAWBWCWDXAUOWEWFAXEXPAXDVBVCUJVDVCXEVBVCAMXCAMVBVCNMVQV
      GUGVHAYBXRXCVBVCAYAYBYFYGWGWDJUOWEWFVTWHXDUJWEWFAXOAXOAXLXNAXGXKAXFVBVCZC
      VBVCXGVBVCXFVIVCYIUQUOWLWIWJXFVKVLRXFCWKWBAXHXJAYCYDYEAYAYBYFYGWMWMAKXIXT
      AYAXRXIVBVCYHWDHUOWEWFVTVTWNAXMDAGVBVCUQVBVCZXMVBVCUBUQVIVCYJWOUQVKVLGUQW
      KWFUHWCVTWPWQWCWCWR $.

    ${
      pntlem1.z $e |- ( ph -> Z e. ( W [,) +oo ) ) $.
      $( Lemma for ~ pnt .  Unpack all the lower bounds contained in ` W ` , in
         the form they will be used.  For comparison with Equation 10.6.27 of
         [Shapiro], p. 434, ` Z ` is x.  (Contributed by Mario Carneiro,
         13-Apr-2016.) $)
      pntlemb $p |- ( ph -> ( Z e. RR+ /\ ( 1 < Z /\ _e <_ ( sqrt ` Z ) /\
      ( sqrt ` Z ) <_ ( Z / Y ) ) /\ ( ( 4 / ( L x. E ) ) <_ ( sqrt ` Z ) /\
        ( ( ( log ` X ) / ( log ` K ) ) + 2 ) <_
        ( ( ( log ` Z ) / ( log ` K ) ) / 4 ) /\
        ( ( U x. 3 ) + C ) <_ ( ( ( U - E ) x.
        ( ( L x. ( E ^ 2 ) ) / ( ; 3 2 x. B ) ) ) x. ( log ` Z ) ) ) ) ) $=
        ( crp wcel c1 clt wbr ceu csqrt cfv cle cdiv co w3a c4 cmul c2 caddc c3
        clog cmin cexp cdc cr cpnf cico cxr pntlema rpred sylancl simp1d simp2d
        wb mpbid 1re a1i ere egt2lt3 2re lttri mp2an 4re cn nnrp ax-mp rpmulcld
        4nn cc0 sylancr wa eliooord simprd rpcnd breqtrd simp3d lttrd ltmuldivd
        syl syl3anc simpld rpaddcld ltaddrp2d ce cz 2z rpexpcl rpmulcl rpdivcld
        4z ltaddrpd ltletrd wceq rprege0d breqtrrd lt2sq syl2anc mpbird 3brtr3d
        ltled rerpdivcld 3jca relogcld nndivre relogexp recnd oveq2d oveq1d wne
        cc rpcnne0d 3eqtrd elico2 rpgecld rpsqrtcld 1lt2 simpli simpri 3lt4 3re
        pnfxr pntlemd cioo pntlemc rpdivcl ltmul1dd mulid2d 4pos ltmul2 mulid1i
        jctir 4cn syl6breq resqcld 3nn0 2nn decnncl 3nn syl6breqr resqrtth 0le1
        rpefcld syl21anc sq1 ltmul2dd remsqsqrt rplogcld readdcl addcomd syl5eq
        logltb eqbrtrrd ltmuldiv2 ltdiv1dd relogmuld eqtrd 2cnd mulcld divcan4d
        divdir rpcnne0 divdiv32 remulcld divdiv2 mulcomd div23 reefcld reeflogd
        mp1i eflt eqbrtrd ltdivmuld divass ) AOULUMZUNOUOUPZUQOURUSZUTUPZUXDONV
        AVBZUTUPZVCVDKHVEVBZVAVBZUXDUTUPZMVIUSZJVIUSZVAVBZVFVGVBZOVIUSZUXLVAVBZ
        VDVAVBZUTUPZGVHVEVBZDVGVBZGHVJVBZKHVFVKVBZVEVBZVHVFVLZCVEVBZVAVBVEVBZUX
        OVEVBZUTUPZVCAOLAOVMUMZLOUTUPZOVNUOUPZAOLVNVOVBUMZUYIUYJUYKVCZUKALVMUMV
        NVPUMUYLUYMWBALABCDEFGHIJKLMNPQRSTUAUBUCUDUEUFUGUHUIUJVQZVRZUUILVNOUUAV
        SWCZVTZUYNAUYIUYJUYKUYPWAZUUBZAUXCUXEUXGAUNVFVKVBZUXDVFVKVBZUNOUOAUNUXD
        UOUPZUYTVUAUOUPZAUNUQUXDUNVMUMZAWDWEZUQVMUMAWFWEZAUXDAOUYSUUCZVRZUNUQUO
        UPZAUNVFUOUPVFUQUOUPZVUIUUDVUJUQVHUOUPZWGUUEUNVFUQWDWHWFWIWJWEAUQVDUXDV
        UFVDVMUMZAWKWEZVUHUQVDUOUPZAVUKVHVDUOUPVUNVUJVUKWGUUFUUGUQVHVDWFUUHWKWI
        WJWEAVDUXIUXDVUMAUXIAVDULUMZUXHULUMUXIULUMVDWLUMZVUOWPVDWMWNZAKHAKULUME
        ULUMIULUMABCEFIKPQRSTUAUBUUJVTZAHULUMZJULUMZHWQUNUUKVBZUMZUNJUOUPZUYAUL
        UMZVCZABCEFGHIJKPQRSTUAUBUCUDUEUFUULZVTZWOZVDUXHUUMWRZVRZVUHAVDUXHVEVBZ
        VDUOUPVDUXIUOUPAVVKVDUNVEVBZVDUOAUXHUNUOUPZVVKVVLUOUPZAUXHHUNAUXHVVHVRZ
        AHVVGVRVUEAUXHUNHVEVBHUOAKUNHAKVURVRVUEVVGAWQKUOUPZKUNUOUPZAKVVAUMVVPVV
        QWSTKWQUNWTXGXAUUNAHAHVVGXBUUOXCAWQHUOUPZHUNUOUPZAVVBVVRVVSWSAVVBVVCVVD
        AVUSVUTVVEVVFXDZVTHWQUNWTXGXAXEAUXHVMUMVUDVULWQVDUOUPZWSZVVMVVNWBVVOVUE
        AVULVWAVUMUUPUUSZUXHUNVDUUQXHWCVDUUTUURUVAAVDVDUXHVUMVUMVVHXFWCAUXINUXI
        VGVBZUXDVVJAVWDANUXIANULUMUNNUTUPUGXIZVVIXJZVRZVUHAUXINVVJVWEXKAVWDUXDU
        OUPZVWDVFVKVBZVUAUOUPZAVWIOVUAUOAVWILOAVWDVWGUVBZUYOUYQAVWIVWIMJVFVKVBZ
        VEVBZVDVKVBZUYEUYAUYCVEVBZVAVBZUXTVEVBZXLUSZVGVBZVGVBZLUOAVWIVWSVWKAVWN
        VWRAVWMULUMZVDXMUMZVWNULUMZAMVWLAMULUMNMUOUPUHXIZAVUTVFXMUMZVWLULUMAVUS
        VUTVVEVVFWAZXNJVFXOVSZWOZXRVWMVDXOVSZAVWQAVWQAVWPUXTAUYEVWOAUYDULUMZCUL
        UMUYEULUMUYDWLUMVXJVHVFUVCUVDUVEUYDWMWNSUYDCXPWRZAUYAUYCAVVBVVCVVDVVTXD
        ZAKUYBVURAVUSVXEUYBULUMVVGXNHVFXOVSWOZWOZXQAUXSDAGULUMVHULUMZUXSULUMUCV
        HWLUMVXOUVFVHWMWNGVHXPVSUIXJZWOVRZUVJZXJZXSUJUVGUYRXTAUYIWQOUTUPWSZVUAO
        YAAOUYSYBZOUVHXGZYCAVWDVMUMWQVWDUTUPWSUXDVMUMWQUXDUTUPWSZVWHVWJWBAVWDVW
        FYBAUXDVUGYBZVWDUXDYDYEYFZXEZXEXEZXEAVUDWQUNUTUPZVYCVUBVUCWBVUEVYHAUVIW
        EVYDUNUXDYDUVKWCUYTUNYAAUVLWEVYBYGAUQUXDVUFVUHVYGYHAUXDUXFVUHAONUYQVWEY
        IAUXDNVEVBZOUOUPUXDUXFUOUPAVYIUXDUXDVEVBZOUOANUXDUXDANVWEVRZVUHVUGANVWD
        UXDVYKVWGVUHANUXIVYKVVIXSVYEXEUVMAVXTVYJOYAVYAOUVNXGXCAUXDONVUHUYQVWEXF
        WCYHYJAUXJUXRUYHAUXIUXDVVJVUHVYFYHAUXNUXQAUXMVMUMVFVMUMUXNVMUMAUXKUXLAM
        VXDYKZAJAJVXFVRAVVBVVCVVDVVTWAUVOZYIWHUXMVFUVPVSAUXPVMUMVUPUXQVMUMAUXOU
        XLAOUYSYKZVYMYIWPUXPVDYLVSAVWMVIUSZUXLVAVBZUXOVDVAVBZUXLVAVBZUXNUXQUOAV
        YOVYQUXLAVWMVXHYKZAUXOVMUMZVUPVYQVMUMVYNWPUXOVDYLVSVYMAVDVYOVEVBZUXOUOU
        PZVYOVYQUOUPZAVWNVIUSZWUAUXOUOAVXAVXBWUDWUAYAVXHXRVWMVDYMVSAVWNOUOUPZWU
        DUXOUOUPZAVWNVWSOAVWNVXIVRZAVWSVXSVRZUYQAVWNVWRWUGVXRXSAVWSLOWUHUYOUYQA
        VWSVWSVWIVGVBZLUOAVWSVWIWUHAVWDULUMVXEVWIULUMVWFXNVWDVFXOVSXSALVWTWUIUJ
        AVWIVWSAVWIVWKYNAVWSVXSXBUVQUVRYCUYRXTZXEAVXCUXBWUEWUFWBVXIUYSVWNOUVSYE
        WCUVTAVYOVMUMVYTVWBWUBWUCWBVYSVYNVWCVYOUXOVDUWAXHWCUWBAVYPUXKVFUXLVEVBZ
        VGVBZUXLVAVBZUXMWUKUXLVAVBZVGVBZUXNAVYOWULUXLVAAVYOUXKVWLVIUSZVGVBWULAM
        VWLVXDVXGUWCAWUPWUKUXKVGAVUTVXEWUPWUKYAVXFXNJVFYMVSYOUWDYPAUXKYRUMWUKYR
        UMUXLYRUMZUXLWQYQZWSZWUMWUOYAAUXKVYLYNAVFUXLAUWEZAUXLVYMXBZUWFAUXLVYMYS
        ZUXKWUKUXLUWHXHAWUNVFUXMVGAVFUXLWUTWVAAWUQWURWVBXAUWGYOYTAUXOYRUMVDYRUM
        VDWQYQWSZWUSVYRUXQYAAUXOVYNYNVUOWVCAVUQVDUWIUWQWVBUXOVDUXLUWJXHYGYHAUXT
        VWOUYEVAVBZUXOVEVBZUYGUTAUXTWVEAUXTVXPVRZAWVDUXOAWVDAVWOUYEVXNVXKXQZVRV
        YNUWKAUXTWVDVAVBZUXOUOUPUXTWVEUOUPAWVHVWQUXOUOAWVHUXTUYEVEVBZVWOVAVBZUY
        EUXTVEVBZVWOVAVBZVWQAUXTYRUMZVWOYRUMVWOWQYQWSZUYEYRUMZUYEWQYQWSZWVHWVJY
        AAUXTVXPXBZAVWOVXNYSZAUYEVXKYSZUXTVWOUYEUWLXHAWVIWVKVWOVAAUXTUYEWVQAUYE
        VXKXBZUWMYPAWVOWVMWVNWVLVWQYAWVTWVQWVRUYEUXTVWOUWNXHYTAVWQUXOUOUPZVWRUX
        OXLUSZUOUPZAVWROWWBUOAVWRVWSOAVWQVXQUWOZWUHUYQAVWRVWNWWDVXIXKWUJXEAOUYS
        UWPYCAVWQVMUMVYTWWAWWCWBVXQVYNVWQUXOUWRYEYFUWSAUXTUXOWVDWVFVYNWVGUWTWCY
        HAWVDUYFUXOVEAUYAYRUMUYCYRUMWVPWVDUYFYAAUYAVXLXBAUYCVXMXBWVSUYAUYCUYEUX
        AXHYPXCYJYJ $.

      pntlem1.m $e |- M =
        ( ( |_ ` ( ( log ` X ) / ( log ` K ) ) ) + 1 ) $.
      pntlem1.n $e |- N =
        ( |_ ` ( ( ( log ` Z ) / ( log ` K ) ) / 2 ) ) $.
      $( Lemma for ~ pnt .  Closure for the constants used in the proof.  For
         comparison with Equation 10.6.27 of [Shapiro], p. 434, ` M ` is j^*
         and ` N ` is &#309;.  (Contributed by Mario Carneiro, 13-Apr-2016.) $)
      pntlemg $p |- ( ph -> ( M e. NN /\ N e. ( ZZ>= ` M ) /\
        ( ( ( log ` Z ) / ( log ` K ) ) / 4 ) <_ ( N - M ) ) ) $=
        ( cn wcel cuz cfv clog cdiv co c4 cmin cle wbr cfl c1 caddc cc0 cn0 crp
        cr wa clt simpld rpred 1red simprd lelttrd rplogcld cioo pntlemc simp2d
        w3a simp3d rpdivcld rprege0d flge0nn0 nn0p1nn 3syl syl5eqel cz nnzd ceu
        c2 csqrt cmul c3 cdc pntlemb simp1d relogcld rerpdivcld rehalfcld flcld
        cexp 0red 4nn nndivre sylancl zred nnred resubcld elrpii rpdivcl rpge0d
        4re 4pos recnd 1cnd addassd readdcld peano2re syl 2re a1i reflcl oveq1i
        nncnd df-2 oveq2i 3eqtr4g flle leadd1dd eqbrtrd letrd leadd2dd mpbid
        2cnd wne divdiv1d 2t2e4 syl6eq oveq2d divcan2d 2timesd 3eqtr3d breqtrrd
        2ne0 fllep1 syl6breqr leadd1d mpbird leaddsub syl3anc subge0d syl3anbrc
        wb eluz2 3jca ) ALUPUQMLURUSUQZQUTUSZJUTUSZVAVBZVCVAVBZMLVDVBZVEVFZALOU
        TUSZUVDVAVBZVGUSZVHVIVBZUPUNAUVJVMUQZVJUVJVEVFVNUVKVKUQUVLUPUQAUVJAUVIU
        VDAOAOAOVLUQZPOVOVFZUJVPVQZAVHPOAVRZAPAPVLUQZVHPVEVFZUIVPVQUVPAUVRUVSUI
        VSAUVNUVOUJVSVTWAAJAJAHVLUQZJVLUQZHVJVHWBVBUQZVHJVOVFZGHVDVBZVLUQZWEZAB
        CEFGHIJKRSTUAUBUCUDUEUFUGUHWCZWDVQAUWBUWCUWEAUVTUWAUWFUWGWFWDWAZWGZWHUV
        JWIUVKWJWKWLZALWMUQMWMUQLMVEVFZUVBALUWJWNAMUVEWPVAVBZVGUSZWMUOAUWLAUVEA
        UVCUVDAQAQVLUQZVHQVOVFZWOQWQUSZVEVFZUWPQPVAVBVEVFZWEZVCKHWRVBVAVBUWPVEV
        FZUVJWPVIVBZUVFVEVFZGWSWRVBDVIVBUWDKHWPXGVBWRVBWSWPWTCWRVBVAVBWRVBUVCWR
        VBVEVFZWEZABCDEFGHIJKNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMXAZXBZXCUWHXDZXEZ
        XFWLZAVJUVGVEVFUWKAVJUVFUVGAXHAUVEVMUQVCUPUQUVFVMUQZUXGXIUVEVCXJXKZAMLA
        MUXIXLZALUWJXMZXNAUVFAUVEVLUQVCVLUQUVFVLUQAUVCUVDAQAQUXFVQAUWOUWQUWRAUW
        NUWSUXDUXEWDXBWAUWHWGVCXRXSXOUVEVCXPXKXQAUVFLVIVBZMVEVFZUVHAUXOUXNVHVIV
        BZMVHVIVBZVEVFAUXPUVFLVHVIVBZVIVBZUXQVEAUVFLVHAUVFUXKXTZALUWJYJAYAZYBAU
        XSUWLUXQAUVFUXRUXKALVHUXMUVQYCZYCUXHAMVMUQZUXQVMUQUXLMYDYEAUXSUVFUVFVIV
        BZUWLVEAUXRUVFUVFUYBUXKUXKAUXRUXAUVFUYBAUVJWPAUVJUWIVQZWPVMUQAYFYGZYCUX
        KAUXRUVKWPVIVBZUXAVEAUVLVHVIVBUVKVHVHVIVBZVIVBUXRUYGAUVKVHVHAUVKAUVMUVK
        VMUQUYEUVJYHYEZXTUYAUYAYBLUVLVHVIUNYIWPUYHUVKVIYKYLYMAUVKUVJWPUYIUYEUYF
        AUVMUVKUVJVEVFUYEUVJYNYEYOYPAUWTUXBUXCAUWNUWSUXDUXEWFWDYQYRAWPUWLWPVAVB
        ZWRVBWPUVFWRVBUWLUYDAUYJUVFWPWRAUYJUVEWPWPWRVBZVAVBUVFAUVEWPWPAUVEUXGXT
        AYTZUYLWPVJUUAAUUJYGZUYMUUBUYKVCUVEVAUUCYLUUDUUEAUWLWPAUWLUXHXTUYLUYMUU
        FAUVFUXTUUGUUHUUIAUWLUWMVHVIVBZUXQVEAUWLVMUQUWLUYNVEVFUXHUWLUUKYEMUWMVH
        VIUOYIUULYQYPAUXNMVHAUVFLUXKUXMYCUXLUVQUUMUUNAUXJLVMUQUYCUXOUVHUUSUXKUX
        MUXLUVFLMUUOUUPYSZYQAMLUXLUXMUUQYSLMUUTUURUYOUVA $.

      $( Lemma for ~ pnt .  Bounds on the subintervals in the induction.
         (Contributed by Mario Carneiro, 13-Apr-2016.) $)
      pntlemh $p |- ( ( ph /\ J e. ( M ... N ) ) ->
        ( X < ( K ^ J ) /\ ( K ^ J ) <_ ( sqrt ` Z ) ) ) $=
        ( cfz co wcel wa cexp clt wbr csqrt cfv cle clog cmul crp simpld adantr
        cdiv relogcld cc0 c1 cioo cmin w3a pntlemc simp2d rpred simp3d rplogcld
        rerpdivcld cn cuz c4 pntlemg simp1d nnred elfzuz eluznn syl2an caddc cr
        cfl flltp1 syl6breqr elfzle1 adantl ltletrd ltdivmul2d mpbid cz elfzelz
        syl wceq relogexp syl2anc breqtrrd wb rpexpcld logltb mpbird c2 sylancl
        oveq2d 2z 2cnd recnd mulassd 3eqtr4d elfzle2 syl6breq ceu cdc rehalfcld
        pntlemb flge 2re a1i 2pos lemuldiv2 syl112anc remulcl sylancr lemuldivd
        c3 eqbrtrd rprege0d rpexpcl logled resqrtth rpsqrtcld le2sq jca ) AJMNU
        QURUSZUTZPKJVAURZVBVCZUUIRVDVEZVFVCZUUHUUJPVGVEZUUIVGVEZVBVCZUUHUUMJKVG
        VEZVHURZUUNVBUUHUUMUUPVLURZJVBVCUUMUUQVBVCUUHUURMJUUHUUMUUPUUHPAPVIUSZU
        UGAUUSQPVBVCUKVJVKZVMZAUUPVIUSUUGAKAKAHVIUSZKVIUSZHVNVOVPURUSZVOKVBVCZG
        HVQURZVIUSZVRZABCEFGHIKLSTUAUBUCUDUEUFUGUHUIVSZVTZWAAUVDUVEUVGAUVBUVCUV
        HUVIWBVTWCVKZWDZUUHMAMWEUSZUUGAUVMNMWFVEZUSRVGVEZUUPVLURZWGVLURZNMVQURV
        FVCABCDEFGHIKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPWHWIZVKWJUUHJAUVM
        JUVNUSJWEUSUUGUVRJMNWKJMWLWMWJZUUHUURUURWPVEVOWNURZMVBUUHUURWOUSUURUVTV
        BVCUVLUURWQXFUOWRUUGMJVFVCAJMNWSWTXAUUHUUMJUUPUVAUVSUVKXBXCUUHUVCJXDUSZ
        UUNUUQXGAUVCUUGUVJVKZUUGUWAAJMNXEWTZKJXHXIZXJUUHUUSUUIVIUSZUUJUUOXKUUTU
        UHKJUWBUWCXLZPUUIXMXIXNUUHUULUUIXOVAURZUUKXOVAURZVFVCZUUHUWGRUWHVFUUHUW
        GRVFVCUWGVGVEZUVOVFVCUUHUWJXOJVHURZUUPVHURZUVOVFUUHXOUUNVHURZXOUUQVHURU
        WJUWLUUHUUNUUQXOVHUWDXQUUHUWEXOXDUSZUWJUWMXGUWFXRUUIXOXHXPUUHXOJUUPUUHX
        SUUHJUVSXTUUHUUPUUHKUWBVMXTYAYBUUHUWLUVOVFVCUWKUVPVFVCZUUHUWOJUVPXOVLUR
        ZVFVCZUUHUWQJUWPWPVEZVFVCZUUHJNUWRVFUUGJNVFVCAJMNYCWTUPYDUUHUWPWOUSUWAU
        WQUWSXKUUHUVPUUHUVOUUPUUHRARVIUSZUUGAUWTVORVBVCYEUUKVFVCUUKRQVLURVFVCVR
        WGLHVHURVLURUUKVFVCUURXOWNURUVQVFVCGYRVHURDWNURUVFLHXOVAURVHURYRXOYFCVH
        URVLURVHURUVOVHURVFVCVRABCDEFGHIKLOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNYHW
        IVKZVMZUVKWDZYGUWCUWPJYIXIXNUUHJWOUSZUVPWOUSXOWOUSZVNXOVBVCZUWOUWQXKUVS
        UXCUXEUUHYJYKUXFUUHYLYKJUVPXOYMYNXNUUHUWKUVOUUPUUHUXEUXDUWKWOUSYJUVSXOJ
        YOYPUXBUVKYQXNYSUUHUWGRUUHUWEUWNUWGVIUSUWFXRUUIXOUUAXPUXAUUBXNUUHRWOUSV
        NRVFVCUTUWHRXGUUHRUXAYTRUUCXFXJUUHUUIWOUSVNUUIVFVCUTUUKWOUSVNUUKVFVCUTU
        ULUWIXKUUHUUIUWFYTUUHUUKUUHRUXAUUDYTUUIUUKUUEXIXNUUF $.

      pntlem1.U $e |- ( ph -> A. z e. ( Y [,) +oo )
        ( abs ` ( ( R ` z ) / z ) ) <_ U ) $.
      $( Lemma for ~ pnt .  The "naive" base bound, which we will slightly
         improve.  (Contributed by Mario Carneiro, 13-Apr-2016.) $)
      pntlemn $p |- ( ( ph /\ ( J e. NN /\ J <_ ( Z / Y ) ) ) ->
        0 <_ ( ( ( U / J ) - ( abs ` ( ( R ` ( Z / J ) ) / Z ) ) )
          x. ( log ` J ) ) ) $=
        ( cn wcel cdiv co cle wbr wa cfv cabs cmin clog crp adantr rpred simprl
        nndivred cr c1 clt ceu csqrt w3a c4 cmul c2 caddc c3 cdc pntlemb simp1d
        cexp nnrpd rpdivcld pntrf ffvelrni syl rerpdivcld recnd abscld resubcld
        relogcld cc0 wne wceq rpcnne0d divdiv2 syl3anc nncnd div23 eqtrd fveq2d
        cc absmuld rprege0d absid oveq2d 3eqtrd cpnf cico cv wral simprr simpld
        lemuldiv2d mpbird lemuldivd mpbid wb elicopnf mpbir2and fveq2 id breq1d
        oveq12d rspcv sylc eqbrtrrd subge0d log1 nnge1 ad2antrl 1rp syl5eqbrr
        logleb sylancr mulge0d ) AKUSUTZKSRVAVBZVCVDZVEZVEZHKVAVBZSKVAVBZGVFZSV
        AVBZVGVFZVHVBZKVIVFZUUIUUJUUNUUIHKUUIHAHVJUTUUHUGVKVLZAUUEUUGVMZVNZUUIU
        UMUUIUUMUUIUULSUUIUUKVJUTUULVOUTUUISKASVJUTZUUHAUUTVPSVQVDVRSVSVFZVCVDU
        VAUUFVCVDVTWAMIWBVBVAVBUVAVCVDQVIVFLVIVFZVAVBWCWDVBSVIVFZUVBVAVBWAVAVBV
        CVDHWEWBVBEWDVBHIVHVBMIWCWIVBWBVBWEWCWFDWBVBVAVBWBVBUVCWBVBVCVDVTACDEFG
        HIJLMPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOWGWHVKZUUIKUURWJZWKZVJVOUUKGGTU
        AWLWMWNZUVDWOWPZWQZWRUUIKUVEWSUUIWTUUOVCVDUUNUUJVCVDZUUIUUNKWBVBZHVCVDU
        VJUUIUULUUKVAVBZVGVFZUVKHVCUUIUVMUUMKWBVBZVGVFUUNKVGVFZWBVBUVKUUIUVLUVN
        VGUUIUVLUULKWBVBSVAVBZUVNUUIUULXJUTZSXJUTSWTXAVEZKXJUTZKWTXAVEUVLUVPXBU
        UIUULUVGWPZUUISUVDXCZUUIKUVEXCUULSKXDXEUUIUVQUVSUVRUVPUVNXBUVTUUIKUURXF
        ZUWAUULKSXGXEXHXIUUIUUMKUVHUWBXKUUIUVOKUUNWBUUIKVOUTWTKVCVDVEUVOKXBUUIK
        UVEXLKXMWNXNXOUUIUUKRXPXQVBZUTZBXRZGVFZUWEVAVBZVGVFZHVCVDZBUWCXSZUVMHVC
        VDZUUIUWDUUKVOUTZRUUKVCVDZUUIUUKUVFVLUUIRKWBVBSVCVDZUWMUUIUWNUUGAUUEUUG
        XTUUIKSRUUIKUVEVLUUISUVDVLZARVJUTZUUHAUWPVPRVCVDUKYAVKZYBYCUUIRSKUUIRUW
        QVLZUWOUVEYDYEUUIRVOUTUWDUWLUWMVEYFUWRRUUKYGWNYHAUWJUUHURVKUWIUWKBUUKUW
        CUWEUUKXBZUWHUVMHVCUWSUWGUVLVGUWSUWFUULUWEUUKVAUWEUUKGYIUWSYJYLXIYKYMYN
        YOUUIUUNHKUVIUUQUVEYDYEUUIUUJUUNUUSUVIYPYCUUIWTVPVIVFZUUPVCYQUUIVPKVCVD
        ZUWTUUPVCVDZUUEUXAAUUGKYRYSUUIVPVJUTKVJUTUXAUXBYFYTUVEVPKUUBUUCYEUUAUUD
        $.

      pntlem1.K $e |- ( ph -> A. y e. ( X (,) +oo ) E. z e. RR+
      ( ( y < z /\ ( ( 1 + ( L x. E ) ) x. z ) < ( K x. y ) ) /\
        A. u e. ( z [,] ( ( 1 + ( L x. E ) ) x. z ) )
          ( abs ` ( ( R ` u ) / u ) ) <_ E ) ) $.
      ${
        pntlem1.o $e |- O =
          ( ( ( |_ ` ( Z / ( K ^ ( J + 1 ) ) ) ) + 1 ) ...
             ( |_ ` ( Z / ( K ^ J ) ) ) ) $.
        ${
          pntlem1.v $e |- ( ph -> V e. RR+ ) $.
          pntlem1.V $e |- ( ph -> ( ( ( K ^ J ) < V /\
            ( ( 1 + ( L x. E ) ) x. V ) < ( K x. ( K ^ J ) ) ) /\
            A. u e. ( V [,] ( ( 1 + ( L x. E ) ) x. V ) )
              ( abs ` ( ( R ` u ) / u ) ) <_ E ) ) $.
          pntlem1.j $e |- ( ph -> J e. ( M ..^ N ) ) $.
          pntlem1.i $e |- I =
            ( ( ( |_ ` ( Z / ( ( 1 + ( L x. E ) ) x. V ) ) ) + 1 )
              ... ( |_ ` ( Z / V ) ) ) $.
          $( Lemma for ~ pntlemj .  (Contributed by Mario Carneiro,
             7-Jun-2016.) $)
          pntlemq $p |- ( ph -> I C_ O ) $=
            ( c1 cmul co caddc cdiv cfl cfv cfz cexp cuz wss cz cle wbr crp clt
            wcel ceu csqrt w3a c4 clog cmin cdc pntlemb simp1d cc0 cioo pntlemc
            c2 c3 simp2d cfzo elfzoelz syl peano2zd rpexpcld rpdivcld rpred 1rp
            flcld pntlemd rpmulcld rpaddcl sylancr cabs cicc wral simpld simprd
            cr wa cv rpcnd mulcomd pntlemg elfzouz eluznn syl2anc nnnn0d expp1d
            eqtr4d breqtrd ltled lediv2d mpbid flwordi syl3anc eluz2 syl3anbrc
            cn eluzp1p1 fzss1 3syl fzss2 sstrd 3sstr4g ) AUDVJPKVKVLZVMVLZTVKVL
            ZVNVLZVOVPZVJVMVLZUDTVNVLZVOVPZVQVLZUDONVJVMVLZVRVLZVNVLZVOVPZVJVMV
            LZUDONVRVLZVNVLZVOVPZVQVLZMSAUUOUUTUUNVQVLZUVDAUUKUUSVSVPWFZUULUUTV
            SVPWFUUOUVEVTAUUSWAWFUUKWAWFUUSUUKWBWCZUVFAUURAUURAUDUUQAUDWDWFVJUD
            WEWCWGUDWHVPZWBWCUVHUDUCVNVLWBWCWIWJUUGVNVLUVHWBWCUBWKVPOWKVPZVNVLW
            SVMVLUDWKVPZUVIVNVLWJVNVLZWBWCJWTVKVLGVMVLJKWLVLZPKWSVRVLVKVLWTWSWM
            FVKVLVNVLVKVLUVJVKVLWBWCWIAEFGHIJKLOPUAUBUCUDUEUFUGUHUIUJUKULUMUNUO
            UPUQURUSUTWNWOZAOUUPAKWDWFZOWDWFZKWPVJWQVLWFVJOWEWCUVLWDWFWIZAEFHIJ
            KLOPUEUFUGUHUIUJUKULUMUNUOWRZXAZANANQRXBVLWFZNWAWFVHNQRXCXDZXEXFZXG
            XHZXJAUUJAUUJAUDUUIUVMAUUHTAVJWDWFUUGWDWFUUHWDWFXIAPKAPWDWFHWDWFLWD
            WFAEFHILPUEUFUGUHUIUJUKXKWOAUVNUVOUVPUVQWOXLVJUUGXMXNVFXLZXGXHZXJAU
            URXTWFUUJXTWFUURUUJWBWCZUVGUWBUWDAUUIUUQWBWCUWEAUUIUUQAUUIUWCXHAUUQ
            UWAXHAUUIOUVAVKVLZUUQWEAUVATWEWCZUUIUWFWEWCZAUWGUWHYADYBZIVPUWIVNVL
            XOVPKWBWCDTUUIXPVLXQVGXRZXSAUWFUVAOVKVLUUQAOUVAAOUVRYCZAUVAAONUVRUV
            TXFZYCYDAONUWKANAQYTWFZNQVSVPZWFZNYTWFAUWMRUWNWFUVKRQWLVLWBWCAEFGHI
            JKLOPQRUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTVAVBYEWOAUVSUWOVHNQR
            YFXDNQYGYHYIYJYKYLYMAUUIUUQUDUWCUWAUVMYNYOUURUUJYPYQUUSUUKYRYSUUSUU
            KUUAUULUUTUUNUUBUUCAUVCUUNVSVPWFZUVEUVDVTAUUNWAWFUVCWAWFUUNUVCWBWCZ
            UWPAUUMAUUMAUDTUVMVFXGXHZXJAUVBAUVBAUDUVAUVMUWLXGXHZXJAUUMXTWFUVBXT
            WFUUMUVBWBWCZUWQUWRUWSAUVATWBWCUWTAUVATAUVAUWLXHATVFXHAUWGUWHUWJXRY
            MAUVATUDUWLVFUVMYNYOUUMUVBYPYQUUNUVCYRYSUUNUUTUVCUUDXDUUEVIVEUUF $.

          $( Lemma for ~ pntlemj .  (Contributed by Mario Carneiro,
             7-Jun-2016.) $)
          pntlemr $p |- ( ph ->
            ( ( U - E ) x. ( ( ( L x. E ) / 8 ) x. ( log ` Z ) ) ) <_
     ( ( # ` I ) x. ( ( U - E ) x. ( ( log ` ( Z / V ) ) / ( Z / V ) ) ) ) ) $=
            ( cmin co cmul c8 cdiv clog cfv chash cle wbr c4 c2 crp wcel simp1d
            cc0 clt rpmulcld rpdivcl sylancl rpred caddc cexp rpdivcld remulcld
            c1 w3a c3 cfn cfl cfz syl recnd cr sylancr reflcl peano2re readdcld
            rphalfcld simp3d simp2d cz wa simprd rpcnd cn syl2anc breqtrd ltled
            cuz letrd lemul2d wceq rprege0d lemuldivd mulid2d ltmul1dd breqtrrd
            mpbid wne rpcnne0d rpcnne0 mp1i oveq2d syl3anc oveq1d eqtr3d mpbird
            cc wb 2z pntlemd cioo pntlemc 4re 4pos elrpii ceu csqrt cdc pntlemb
            cn0 fzfid syl5eqel hashcl nn0red rpaddcl 1cnd add32d rpsqrtcld cfzo
            elfzoelz peano2zd rpexpcld cv cabs cicc wral simpld mulcomd pntlemg
            elfzouz eluznn nnnn0d expp1d eqtr4d fzofzp1 pntlemh mpdan remsqsqrt
            1rp 1re ltaddrp eqbrtrrd ltdiv2d 2timesd 2re remulcl adddid divcan6
            1red leadd2dd eqtrd 2cnd mulassd 2rp divdiv1 oveq2i syl6req halfcld
            2t2e4 divcan1d 3brtr3d flle le2addd rprecred eliooord ltadd2dd df-2
            lttrd syl6breqr rpregt0d a1i 2pos ltdiv2 syl121anc divsubdir ax-1cn
            pncan2 divid 3eqtr3d ltaddsubd reccl adddird rpne0d 3eqtr2d lelttrd
            divrec2d fllep1 ltletrd eqbrtrd ltadd1d flcld fzval3 syl5eq flword2
            fveq2d eluzp1p1 hashfzo pnpcan2d 3eqtrd le2sq rpexpcl sqvald sqdivd
            resqrtth resqcld relogexp relogcld ledivmul syl112anc wi rerpdivcld
            logled rplogcld lemul12a syl22anc mp2and nnrp ax-mp div23 divmuldiv
            8nn 4t2e8 divass 3brtr4d mul12d ) AJKVJVKZPKVLVKZVMVNVKZUDVOVPZVLVK
[encoded data, 6400 characters]
            VVPXVSXBVVFXQ $.

          $( Lemma for ~ pnt .  The induction step.  Using ~ pntibnd , we find
             an interval in ` K ^ J ... K ^ ( J + 1 ) ` which is sufficiently
             large and has a much smaller value, ` R ( z ) / z <_ E ` (instead
             of our original bound ` R ( z ) / z <_ U ` ).  (Contributed by
             Mario Carneiro, 13-Apr-2016.) $)
          pntlemj $p |- ( ph ->
    ( ( U - E ) x. ( ( ( L x. E ) / 8 ) x. ( log ` Z ) ) ) <_ sum_ n e. O
    ( ( ( U / n ) - ( abs ` ( ( R ` ( Z / n ) ) / Z ) ) ) x. ( log ` n ) ) ) $=
            ( cmin co cmul c8 cdiv clog cfv cv cabs csu cc0 c1 wcel clt wbr crp
            w3a simp3d simp1d rpmulcld cn ceu cle c4 c2 caddc cexp rpred simp2d
            c3 cfn cn0 cfl fzfid syl5eqel rpdivcld relogcld rerpdivcld remulcld
            cfz syl wa cr adantr cuz cz rpexpcld rprege0d flge0nn0 nn0p1nn 3syl
            elfzuz eluznn nndivred recnd cc wceq syl2anc rpregt0d simpld syldan
            wb mpbird simprd rpcnd ltled letrd mpbid lemuldivd syl3anc cioo 8nn
            chash pntlemc pntlemd nnrp ax-mp rpdivcl sylancl csqrt cdc rplogcld
            pntlemb hashcl nn0red cfzo elfzoelz peano2zd eleq2s syl2an ffvelrni
            nnrpd pntrf abscld resubcld fsumrecl pntlemr cif fsumconst wss wral
            wo pntlemq ralrimivw olcd sumss2 syl21anc eqtr3d adantlr 0red breq1
            wn ifclda 1rp rpaddcl sylancr sselda simpr syl6eleq elfzle2 elfzelz
            flge nnred ere rpsqrtcld cicc mulcomd pntlemg elfzouz nnnn0d expp1d
            a1i eqtr4d breqtrd fzofzp1 pntlemh mpdan lemul2d remsqsqrt peano2re
            reflcl fllep1 elfzle1 logdivle syl22anc lemul2 rpcnne0d divass log1
            div23 nnge1d logleb syl5eqbrr divsubdir divdiv2 eqtrd absmuld absid
            wne fveq2d oveq2d 3eqtrd lemuldiv2 lediv23 elicc2 mpbir3and oveq12d
            fveq2 id rspcv sylc eqbrtrrd lesub2dd eqbrtrd lemul1ad nnzd elfzofz
            breq1d lediv2d jca pntlemn ifbothda fsumle ) AJLVKVLZQLVMVLZVNVOVLZ
[encoded data, 6400 characters]
            BUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTVAVBVCVDVUKYKXNVULVUMVUDYQ $.
        $}

        $( Lemma for ~ pnt .  Eliminate some assumptions from ~ pntlemj .
           (Contributed by Mario Carneiro, 13-Apr-2016.) $)
        pntlemi $p |- ( ( ph /\ J e. ( M ..^ N ) ) ->
    ( ( U - E ) x. ( ( ( L x. E ) / 8 ) x. ( log ` Z ) ) ) <_ sum_ n e. O
    ( ( ( U / n ) - ( abs ` ( ( R ` ( Z / n ) ) / Z ) ) ) x. ( log ` n ) ) ) $=
          ( vx cfzo co wcel wa cexp cv clt wbr c1 cmul caddc cfv cdiv cabs cicc
          cle wral cmin c8 clog csu crp cpnf cioo wrex cr cz cc0 pntlemc simp2d
          w3a elfzoelz rpexpcl syl2an rpred csqrt elfzofz pntlemh sylan2 simpld
          cfz cxr adantr rpxr elioopnf 3syl mpbir2and wceq breq2 breq1d anbi12d
          wb oveq2 id oveq12d raleqdv cbvrexv breq1 breq2d anbi1d rexbidv rspcv
          syl5bb sylc ad2antrr cico simprl simprr simplr eqid pntlemj rexlimddv
          cfl ) ANQRVFVGVHZVIZONVJVGZVEVKZVLVMZVNPLVOVGZVPVGZUUBVOVGZOUUAVOVGZV
          LVMZVIZDVKZIVQUUJVRVGVSVQLWAVMZDUUBUUFVTVGZWBZVIZJLWCVGZUUDWDVRVGUCWE
          VQVOVGVOVGSJKVKZVRVGUCUUPVRVGIVQUCVRVGVSVQWCVGUUPWEVQVOVGKWFWAVMVEWGY
          TUUAUAWHWIVGZVHZBVKZCVKZVLVMZUUEUUTVOVGZOUUSVOVGZVLVMZVIZUUKDUUTUVBVT
          VGZWBZVIZCWGWJZBUUQWBZUUNVEWGWJZYTUURUUAWKVHZUAUUAVLVMZYTUUAAOWGVHZNW
          LVHUUAWGVHYSALWGVHUVNLWMVNWIVGZVHVNOVLVMUUOWGVHWPAEFHIJLMOPUDUEUFUGUH
          UIUJUKULUMUNWNWONQRWQONWRWSWTYTUVMUUAUCXAVQWAVMZYSANQRXFVGVHUVMUVPVIN
          QRXBAEFGHIJLMNOPQRTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTVAXCXDXEYT
          UAWGVHZUAXGVHUURUVLUVMVIXQAUVQYSAUVQUBUAVLVMZUPXEXHUAXIUAUUAXJXKXLAUV
          JYSVCXHUVIUVKBUUAUUQUVIUUSUUBVLVMZUUFUVCVLVMZVIZUUMVIZVEWGWJUUSUUAXMZ
          UVKUVHUWBCVEWGUUTUUBXMZUVEUWAUVGUUMUWDUVAUVSUVDUVTUUTUUBUUSVLXNUWDUVB
          UUFUVCVLUUTUUBUUEVOXRZXOXPUWDUUKDUVFUULUWDUUTUUBUVBUUFVTUWDXSUWEXTYAX
          PYBUWCUWBUUNVEWGUWCUWAUUIUUMUWCUVSUUCUVTUUHUUSUUAUUBVLYCUWCUVCUUGUUFV
          LUUSUUAOVOXRYDXPYEYFYHYGYIYTUUBWGVHZUUNVIZVIBCDEFGHIJKLMUCUUFVRVGYRVQ
          VNVPVGUCUUBVRVGYRVQXFVGZNOPQRSUUBTUAUBUCUDUEAEWGVHYSUWGUFYJAFWGVHYSUW
          GUGYJAPUVOVHYSUWGUHYJUIUJAJWGVHYSUWGUKYJAJEWAVMYSUWGULYJUMUNAUBWGVHVN
          UBWAVMVIYSUWGUOYJAUVQUVRVIYSUWGUPYJAGWGVHYSUWGUQYJURAUCTWHYKVGVHYSUWG
          USYJUTVAAUUTIVQUUTVRVGVSVQJWAVMCUBWHYKVGWBYSUWGVBYJAUVJYSUWGVCYJVDYTU
          WFUUNYLYTUWFUUNYMAYSUWGYNUWHYOYPYQ $.
      $}

      $( Lemma for ~ pnt .  Add up the pieces in ~ pntlemi to get an estimate
         slightly better than the naive lower bound ` 0 ` .  (Contributed by
         Mario Carneiro, 13-Apr-2016.) $)
      pntlemf $p |- ( ph -> ( ( U - E ) x.
      ( ( ( L x. ( E ^ 2 ) ) / ( ; 3 2 x. B ) ) x. ( ( log ` Z ) ^ 2 ) ) )
      <_ sum_ n e. ( 1 ... ( |_ ` ( Z / Y ) ) )
    ( ( ( U / n ) - ( abs ` ( ( R ` ( Z / n ) ) / Z ) ) ) x. ( log ` n ) ) ) $=
        ( cmin co c2 cexp cmul c3 cdiv clog cfv c8 cfl cfz csu cc0 wcel clt wbr
        c1 cv crp w3a simp3d simp1d cz sylancl rpmulcld cn sylancr rpdivcld cle
        c4 caddc rpred simp2d nnred resubcld remulcld fzfid wa cr adantr adantl
        cuz syl rerpdivcld recnd fsumrecl cc wne wceq rpcnd rpcnne0 mp1i oveq2d
        rpcnne0d syl3anc 3eqtr2d oveq1d mpbid wss cn0 rpexpcld rprege0d nn0p1nn
        flge0nn0 3syl nnuz syl6eleq fzss1 sselda syldan wi oveq1 fveq2d sumeq1d
        oveq2 breq12d imbi2d simpld vm vj cdc cabs cioo pntlemc pntlemd rpexpcl
        3nn0 2nn decnncl nnrp ax-mp rpmulcl ceu csqrt pntlemb rplogcld 8re 8pos
        elrpii rpdivcl pntlemg eluznn syl2anc elfznn nndivre syl2an nnrpd pntrf
        2z ffvelrni abscld relogcld 4re 4pos divmuldiv syl22anc fveq2i relogefd
        syl5eq divdiv2 eqtrd mulcld divass mul4d sqvald sqcld mul32d 8t4e32 a1i
        ce oveq12d divdiv1 nncni mulcom div23 3eqtrd 4nn mulassd eqtr4d 3eqtr4d
        lemul2d eqbrtrrd breqtrrd nnzd eluzfz2 subidd mul01d elfzle2 wb elfzelz
        flge mpbird jca pntlemn fsumge0 eqbrtrd cfzo eqid pntlemi elfzoelz zred
        nncnd cun ssun1 peano2zd 1re ltle mpd peano2uz leexp2ad lediv2d flword2
        uzid eluzp1p1 flcld simprd elfzofz pntlemh sylan2 lttrd ltled syl3anbrc
        flwordi eluz2 fzsplit2 syl5sseqr sstrd adantlr ssun2 le2add 1cnd subcld
        mpand adddid addcomd addsubd mulid1d 3eqtr3d cin c0 reflcl ltp1d fzdisj
        zcnd fsumsplit sylibrd expcom a2d fzind2 mpcom fsumless letrd ) AJLVBVC
[encoded data, 6960 characters]
        VNWXOVVMVVNVVN $.

      $( Lemma for ~ pnt .  Evaluate the naive part of the estimate.
         (Contributed by Mario Carneiro, 14-Apr-2016.) $)
      pntlemk $p |- ( ph -> ( 2 x. sum_ n e. ( 1 ... ( |_ ` ( Z / Y ) ) )
          ( ( U / n ) x. ( log ` n ) ) ) <_
      ( ( U x. ( ( log ` Z ) + 3 ) ) x. ( log ` Z ) ) ) $=
        ( c2 c1 cdiv co cfl cfv cfz cv clog csu cmul c3 caddc cle wbr cexp wcel
        cr fzfid wa cn elfznn adantl relogcld nndivred fsumrecl remulcl sylancr
        2re nnrpd crp clt ceu csqrt w3a c4 cmin cdc pntlemb simp1d peano2re syl
        resqcld readdcl sylancl remulcld rpred simpld rerpdivcld 1red rpsqrtcld
        3re ere a1i 1lt2 egt2lt3 simpli lttri mp2an ltleii simp2d letrd flge1nn
        1re simp3d readdcld cc0 wb mpbid recnd breqtrd logleb syl5eqbrr wceq cc
        1rp adddird oveq2d 3brtr4d syl2anc logdivbnd lemuldiv2 syl112anc mpbird
        2pos reflcl flle simprd lediv2d div1d logled leadd1dd 0red nnge1d lep1d
        log1 le2sqd loge rpge0d lemulge12d rprege0d epr leadd2dd binom21 sqvald
        remsqsqrt df-3 oveq1i 2cnd 1cnd syl5eq mulid2d eqtr2d oveq12d sqcld 2cn
        mulcl addassd 3cn 3eqtr4rd lemul2d adantr rpcnne0d div23 divass syl3anc
        wne eqtr3d sumeq2dv fsummulc2 eqtr4d mul12d eqtrd mulassd ) AJVBVCUATVD
        VEZVFVGZVHVEZKVIZVJVGZUWSVDVEZKVKZVLVEZVLVEZJUAVJVGZVMVNVEZUXEVLVEZVLVE
        ZVBUWRJUWSVDVEUWTVLVEZKVKZVLVEZJUXFVLVEUXEVLVEVOAUXCUXGVOVPUXDUXHVOVPAU
        XCUXEVCVNVEZVBVQVEZUXGAVBVSVRZUXBVSVRZUXCVSVRWJAUWRUXAKAVCUWQVTZAUWSUWR
        VRZWAZUWTUWSUXRUWSUXRUWSUXQUWSWBVRAUWSUWQWCWDZWKZWEZUXSWFZWGZVBUXBWHWIZ
        AUXLAUXEVSVRZUXLVSVRAUAAUAWLVRZVCUAWMVPZWNUAWOVGZVOVPZUYHUWPVOVPZWPZWQO
        LVLVEVDVEUYHVOVPSVJVGNVJVGZVDVEVBVNVEUXEUYLVDVEWQVDVEVOVPJVMVLVEGVNVEJL
        WRVEOLVBVQVEVLVEVMVBWSFVLVEVDVEVLVEUXEVLVEVOVPWPZAEFGHIJLMNORSTUAUBUCUD
        UEUFUGUHUIUJUKULUMUNUOUPUQWTZXAZWEZUXEXBXCZXDZAUXFUXEAUYEVMVSVRUXFVSVRU
        YPXMUXEVMXEXFZUYPXGZAUXCUWQVJVGZVCVNVEZVBVQVEZUXMUYDAVUBAVUAVCAUWQAUWQA
        UWPVSVRZVCUWPVOVPUWQWBVRZAUATAUAUYOXHZATWLVRZVCTVOVPZUMXIZXJZAVCUYHUWPA
        XKZAUYHAUAUYOXLZXHZVUJAVCWNUYHVUKWNVSVRAXNXOZVUMVCWNVOVPAVCWNYEXNVCVBWM
        VPVBWNWMVPZVCWNWMVPXPVUOWNVMWMVPXQXRVCVBWNYEWJXNXSXTYAXOAUYGUYIUYJAUYFU
        YKUYMUYNYBZYBZYCZAUYGUYIUYJVUPYFYCUWPYDUUAZWKZWEZVUKYGZXDZUYRAUXCVUCVOV
        PZUXBVUCVBVDVEVOVPZAVUEVVEVUSKUWQUUBXCAUXOVUCVSVRUXNYHVBWMVPZVVDVVEYIUY
        CVVCUXNAWJXOZVVFAUUFXOUXBVUCVBUUCUUDUUEAVUBUXLVOVPVUCUXMVOVPAVUAUXEVCVV
        AUYPVUKAUWQUAVOVPVUAUXEVOVPAUWQUWPUAAVUDUWQVSVRVUJUWPUUGXCVUJVUFAVUDUWQ
        UWPVOVPVUJUWPUUHXCAUWPUAVCVDVEZUAVOAVUHUWPVVHVOVPAVUGVUHUMUUIAVCTUAVCWL
        VRZAYQXOVUIUYOUUJYJAUAAUAVUFYKUUKYLYCAUWQUAVUTUYOUULYJUUMZAVUBUXLVVBUYQ
        AYHVUAVUBAUUNZVVAVVBAYHVCVJVGZVUAVOUUQAVCUWQVOVPZVVLVUAVOVPZAUWQVUSUUOA
        VVIUWQWLVRVVMVVNYIYQVUTVCUWQYMWIYJYNAVUAVVAUUPYCZAYHVUBUXLVVKVVBUYQVVOV
        VJYCUURYJYCAUXEVBVQVEZVBUXEVLVEZVNVEZVCVNVEZVVRUXEVNVEZUXMUXGVOAVCUXEVV
        RVUKUYPAVVPVVQAUXEUYPXDAVBUXEVVGUYPXGYGAVCWNVJVGZUXEVOUUSAWNUAVOVPZVWAU
        XEVOVPZAWNUYHUAVUNVUMVUFVUQAUYHUYHUYHVLVEZUAVOAUYHUYHVUMVUMAUYHVULUUTVU
        RUVAAUAVSVRYHUAVOVPWAVWDUAYOAUAUYOUVBUAUVGXCYLYCAWNWLVRUYFVWBVWCYIUVCUY
        OWNUAYMWIYJYNUVDAUXEYPVRZUXMVVSYOAUXEUYPYKZUXEUVEXCAVVPVVQUXEVNVEZVNVEU
        XEUXEVLVEZVMUXEVLVEZVNVEVVTUXGAVVPVWHVWGVWIVNAUXEVWFUVFAVWIVVQVCUXEVLVE
        ZVNVEZVWGAVWIVBVCVNVEZUXEVLVEVWKVMVWLUXEVLUVHUVIAVBVCUXEAUVJZAUVKVWFYRU
        VLAVWJUXEVVQVNAUXEVWFUVMYSUVNUVOAVVPVVQUXEAUXEVWFUVPAVBYPVRVWEVVQYPVRUV
        QVWFVBUXEUVRWIVWFUVSAUXEVMUXEVWFVMYPVRAUVTXOVWFYRUWAYTYCAUXCUXGJUYDUYTU
        IUWBYJAUXKVBJUXBVLVEZVLVEUXDAUXJVWNVBVLAUXJUWRJUXAVLVEZKVKVWNAUWRUXIVWO
        KUXRJYPVRZUWTYPVRZUWSYPVRUWSYHUWHWAZUXIVWOYOUXRJAJVSVRUXQAJUIXHZUWCYKUX
        RUWTUYAYKUXRUWSUXTUWDVWPVWQVWRWPJUWTVLVEUWSVDVEUXIVWOJUWTUWSUWEJUWTUWSU
        WFUWIUWGUWJAUWRUXAJKUXPAJVWSYKZUXRUXAUYBYKUWKUWLYSAVBJUXBVWMVWTAUXBUYCY
        KUWMUWNAJUXFUXEVWTAUXFUYSYKVWFUWOYT $.

      pntlem1.C $e |- ( ph -> A. z e. ( 1 (,) +oo )
      ( ( ( ( abs ` ( R ` z ) ) x. ( log ` z ) ) -
        ( ( 2 / ( log ` z ) ) x. sum_ i e. ( 1 ... ( |_ ` ( z / Y ) ) )
             ( ( abs ` ( R ` ( z / i ) ) ) x. ( log ` i ) ) ) ) / z ) <_ C ) $.
      $( Lemma for ~ pnt .  Combine all the estimates to establish a smaller
         eventual bound on ` R ( Z ) / Z ` .  (Contributed by Mario Carneiro,
         14-Apr-2016.) $)
      pntlemo $p |- ( ph ->
        ( abs ` ( ( R ` Z ) / Z ) ) <_ ( U - ( F x. ( U ^ 3 ) ) ) ) $=
        ( vn cfv cdiv co cabs c3 cexp cmul cmin cle wbr clog caddc c2 crp cr c1
        wcel clt w3a c4 simp1d ffvelrni syl rerpdivcld abscld relogcld remulcld
        recnd rpred 3re a1i readdcld 2re cc0 cioo simp3d cz 2z rpexpcl rpmulcld
        sylancl cn sylancr rpdivcld resubcld rpcnd subdird cc wne wceq rpcnne0d
        div23 syl3anc oveq1i simp2d rpne0d syl5eq oveq2d eqtr3d mulassd oveq12d
        wa eqtrd oveq1d eqtr4d cfl cfz csu adantr fsumrecl mulcld fveq2 remulcl
        cv fveq2d letrd mpbird cdc ceu csqrt pntlemb pntrf pntlemc pntlemd 3nn0
        2nn decnncl nnrp ax-mp rpmulcl sqdivd sqcld divass 3eqtrd df-3 cn0 2nn0
        oveq2i expp1 mulcomd 1cnd rpreccld mulid2d syl5req eqtr2d subcld mul32d
        divrec2d 3eqtr2d eqeltrrd rplogcld fzfid elfznn adantl nnrpd divsubdird
        div23d absdivd rprege0d absid divassd sumeq2dv fsumdivc cpnf cxr wb 1re
        wral rexr elioopnf sylanbrc oveq2 cbvsumv oveq1 simpl sumeq12rdv breq1d
        mp2b rspcv sylc eqbrtrrd lesubadd2d mpbid 2cnd resqcld nndivred pntlemf
        id fsumcl 2pos lemul2 syl112anc fsumsub subdid pntlemk lesub1dd eqbrtrd
        lesubd sqvald breqtrrd leadd1dd leadd2dd adddid addassd 2timesd 3brtr4d
        ledivmul2d nppcan3d lesubaddd addsubd 3brtr3d 3z lemul1d ) AUAIVDZUAVEV
[encoded data, 6160 characters]
        AMUYTWUCAJVQVTVHWTVTUYTVQVTUIUYOJVHXBXDXCWLXHWVNUYPYT $.
    $}

    pntleme.U $e |- ( ph -> A. z e. ( Y [,) +oo )
      ( abs ` ( ( R ` z ) / z ) ) <_ U ) $.
    pntleme.K $e |- ( ph -> A. k e. ( K [,) +oo ) A. y e. ( X (,) +oo )
    E. z e. RR+ ( ( y < z /\ ( ( 1 + ( L x. E ) ) x. z ) < ( k x. y ) ) /\
        A. u e. ( z [,] ( ( 1 + ( L x. E ) ) x. z ) )
          ( abs ` ( ( R ` u ) / u ) ) <_ E ) ) $.
    pntleme.C $e |- ( ph -> A. z e. ( 1 (,) +oo )
  ( ( ( ( abs ` ( R ` z ) ) x. ( log ` z ) ) -
      ( ( 2 / ( log ` z ) ) x. sum_ i e. ( 1 ... ( |_ ` ( z / Y ) ) )
           ( ( abs ` ( R ` ( z / i ) ) ) x. ( log ` i ) ) ) ) / z ) <_ C ) $.
    $( Lemma for ~ pnt .  Package up ~ pntlemo in quantifiers.  (Contributed by
       Mario Carneiro, 14-Apr-2016.) $)
    pntleme $p |- ( ph -> E. w e. RR+ A. v e. ( w [,) +oo )
      ( abs ` ( ( R ` v ) / v ) ) <_ ( U - ( F x. ( U ^ 3 ) ) ) ) $=
      ( crp wcel cv cfv cdiv co cabs cexp cmul cmin cle wbr cpnf cico wral wrex
      c3 pntlema wa clog cfl c1 caddc c2 adantr cc0 cioo clt simpr eqid cxr w3a
      cicc pntlemc simp2d rpxrd pnfxr a1i cr rpred ltpnf syl syl3anc wceq oveq1
      lbico1 breq2d anbi2d anbi1d rexbidv ralbidv syl2anc cfz pntlemo ralrimiva
      rspcva csu raleqdv rspcev ) ASUTVAEVBZKVCXSVDVEVFVCLPLVPVGVEVHVEVIVEVJVKZ
      ESVLVMVEZVNZXTEDVBZVLVMVEZVNZDUTVOAGHIJKLOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUM
      UNUOUPVQAXTEYAAXSYAVAZVRBCFGHIJKLMOPQRTVSVCQVSVCZVDVEVTVCWAWBVEZXSVSVCYGV
      DVEWCVDVEVTVCZSTUAXSUBUCAGUTVAYFUDWDAHUTVAYFUEWDARWEWAWFVEZVAYFUFWDUGUHAL
      UTVAYFUIWDALGVJVKYFUJWDUKULAUAUTVAWAUAVJVKVRYFUMWDATUTVAUATWGVKVRYFUNWDAI
      UTVAYFUOWDUPAYFWHYHWIYIWIACVBZKVCZYKVDVEVFVCLVJVKCUAVLVMVEVNYFUQWDABVBZYK
      WGVKZWAROVHVEWBVEYKVHVEZQYMVHVEZWGVKZVRZFVBZKVCYSVDVEVFVCOVJVKFYKYOWLVEVN
      ZVRZCUTVOZBTVLWFVEZVNZYFAQQVLVMVEZVAZYNYONVBZYMVHVEZWGVKZVRZYTVRZCUTVOZBU
      UCVNZNUUEVNUUDAQWJVAVLWJVAZQVLWGVKZUUFAQAOUTVAQUTVAOYJVAWAQWGVKLOVIVEUTVA
      WKAGHJKLOPQRUBUCUDUEUFUGUHUIUJUKULWMWNZWOUUNAWPWQAQWRVAUUOAQUUPWSQWTXAQVL
      XEXBURUUMUUDNQUUEUUGQXCZUULUUBBUUCUUQUUKUUACUTUUQUUJYRYTUUQUUIYQYNUUQUUHY
      PYOWGUUGQYMVHXDXFXGXHXIXJXOXKWDAYLVFVCYKVSVCZVHVEWCUURVDVEWAYKUAVDVEVTVCX
      LVEYKMVBZVDVEKVCVFVCUUSVSVCVHVEMXPVHVEVIVEYKVDVEIVJVKCWAVLWFVEVNYFUSWDXMX
      NYEYBDSUTYCSXCXTEYDYAYCSVLVMXDXQXRXK $.
  $}

  ${
    $d r s t v w x y z A $.  $d a e k u v w x y z D $.  $d c r s t v w y z F $.
    $d p s u C $.  $d c e k t v w x y z K $.  $d c e k n r s t u v w x y z R $.
    $d a c e k t u v w x y z E $.  $d p s u w x T $.  $d a c k n t v w y z Y $.
    $d a r s $.  $d c e k t u v w x y z L $.  $d c p r s t v w x y ph $.
    $d e k v w x y z B $.  $d c t v w z U $.
    pntlem3.r $e |- R = ( a e. RR+ |-> ( ( psi ` a ) - a ) ) $.
    pntlem3.a $e |- ( ph -> A e. RR+ ) $.
    pntlem3.A $e |- ( ph -> A. x e. RR+ ( abs ` ( ( R ` x ) / x ) ) <_ A ) $.
    ${
      $d u z ph $.
      pntlem3.1 $e |- T = { t e. ( 0 [,] A ) | E. y e. RR+
        A. z e. ( y [,) +oo ) ( abs ` ( ( R ` z ) / z ) ) <_ t } $.
      pntlem3.2 $e |- ( ph -> C e. RR+ ) $.
      pntlem3.3 $e |- ( ( ph /\ u e. T ) ->
        ( u - ( C x. ( u ^ 3 ) ) ) e. T ) $.
      $( Lemma for ~ pnt .  Equation 10.6.35 in [Shapiro], p. 436.
         (Contributed by Mario Carneiro, 8-Apr-2016.)  (Proof shortened by AV,
         27-Sep-2020.) $)
      pntlem3 $p |- ( ph -> ( x e. RR+ |-> ( ( psi ` x ) / x ) ) ~~>r 1 ) $=
        ( co wbr wcel vs vp vw crp cv cchp cfv cdiv cmpt crli cle cmin cabs clt
        c1 wi wral cr wrex wss wa rpssre cpnf cico wn cicc cinf cc c3 cexp cmul
        cc0 ccncf ccnfld ctopn eqid ctx subcn ssid cncfmptid mp2an adantr rpcnd
        ccn a1i syl3anc 3nn0 mp1i wne 0re rpred sylancr cxr wb elicopnf ltletrd
        1re 0red wceq fveq2 id oveq12d fveq2d breq1d ralrimiva oveq1 rspcev syl
        breq2 raleqi ralrab2 bitri sylibr recnd caddc ad2antrr adantl ad3antrrr
        sylancl ltnled resubcld infrelb absdifltd mpand abscld rpre mpan2d syld
        ad2antlr sylbird oveq2d ovex fvmpt remulcld infregelb syl31anc ad2antll
        sylbid mtod mpbird cncfmptc cn0 expcn cncfcn1 syl6eleqr mulcncf c0 crab
        cncfmpt2f ssrab2 eqsstri iccssre syl5ss 0xr rpge0d ubicc2 simprbda 0lt1
        rpxrd simplbda elrpd rspcv sylc raleqdv rexralbidv elrab2 sylanbrc ne0i
        1rp w3a elicc2 biimpa simp2d a1d breq1 ralbidv infrecl cz biimpri sylan
        3z rpexpcl rpmulcld cncfi c2 rphalfcl ltaddrpd readdcld mpbid ax-resscn
        elrp syl6ss ssralv sselda ltsubrpd simpr biimprd rphalflt con1d reexpcl
        lttr reexpcld npcand breq2d ad4ant14 lensymd pm2.21d adantld jad nrexdv
        ralimdva sylibrd pm2.65da syl6bb rpgt0 ltletr rexanali simprl mpbir2and
        cbvralv simplr pntrval oveq1d chpcl rpcn rpne0 divsubdird dividd simprr
        3eqtrrd simplrl sseldd simp-4r rerpdivcl mpancom resubcl lelttr embantd
        exp32 com24 ralimdv2 syl5bi reximdva anassrs impancom expimpd rexlimdva
        mpd ssrexv mpsyl rgen 1cnd rlim2 ) ABUDBUEZUFUGZVUNUHRZUIUOUJSCUEZVUNUK
[encoded data, 5200 characters]
        VUKWEVVFAVBWEAVULVUMYT $.
    $}

    pntlemp.b $e |- ( ph -> B e. RR+ ) $.
    pntlemp.l $e |- ( ph -> L e. ( 0 (,) 1 ) ) $.
    pntlemp.d $e |- D = ( A + 1 ) $.
    pntlemp.f $e |- F = ( ( 1 - ( 1 / D ) ) x.
      ( ( L / ( ; 3 2 x. B ) ) / ( D ^ 2 ) ) ) $.
    pntlemp.K $e |- ( ph -> A. e e. ( 0 (,) 1 ) E. x e. RR+
    A. k e. ( ( exp ` ( B / e ) ) [,) +oo ) A. y e. ( x (,) +oo )
    E. z e. RR+ ( ( y < z /\ ( ( 1 + ( L x. e ) ) x. z ) < ( k x. y ) ) /\
        A. u e. ( z [,] ( ( 1 + ( L x. e ) ) x. z ) )
          ( abs ` ( ( R ` u ) / u ) ) <_ e ) ) $.
    ${
      pntlemp.u $e |- ( ph -> U e. RR+ ) $.
      pntlemp.u2 $e |- ( ph -> U <_ A ) $.
      pntlemp.e $e |- E = ( U / D ) $.
      pntlemp.k $e |- K = ( exp ` ( B / E ) ) $.
      pntlemp.y $e |- ( ph -> ( Y e. RR+ /\ 1 <_ Y ) ) $.
      pntlemp.U $e |- ( ph -> A. z e. ( Y [,) +oo )
        ( abs ` ( ( R ` z ) / z ) ) <_ U ) $.
      $( Lemma for ~ pnt .  Wrapping up more quantifiers.  (Contributed by
         Mario Carneiro, 14-Apr-2016.) $)
      pntlemp $p |- ( ph -> E. w e. RR+ A. v e. ( w [,) +oo )
        ( abs ` ( ( R ` v ) / v ) ) <_ ( U - ( F x. ( U ^ 3 ) ) ) ) $=
        ( vt vn vc cv clt wbr c1 cmul co caddc cfv cdiv cabs cle cicc wral wrex
        wa crp cpnf cioo cico clog c2 cfl cfz csu cmin c3 cexp cc0 wcel pntlemc
        w3a simp3d simp1d wceq oveq2 fveq2d syl6eqr oveq1d oveq2d breq1d anbi2d
        ce breq2 raleqbidv anbi12d rexbidv ralbidv oveq1 raleqdv cbvrexv syl6bb
        rspcva syl2anc cr simpld rpred simprd pntrlog2bnd reeanv c4 cdc rpaddcl
        adantr simpl syl2an ltaddrp jca adantrr simprlr eqid rpxr ad2antrl rpre
        wss cxr ltaddrp2d ltled iooss1 simprrl ssralv ralimdv sylc simprrr expr
        pntleme rexlimdvva syl5bir mp2and ) ACURZDURZUSUTZVAROVBVCZVDVCZUUGVBVC
        ZNURUUFVBVCZUSUTZVLZGURZKVEUUOVFVCVGVEZOVHUTZGUUGUUKVIVCZVJZVLZDVMVKZCU
        OURZVNVOVCZVJZNQVNVPVCZVJZUOVMVKZUUGKVEZVGVEUUGVQVEZVBVCVRUVIVFVCVAUUGS
        VFVCVSVEVTVCUUGUPURZVFVCKVEVGVEUVJVQVEVBVCUPWAVBVCWBVCUUGVFVCUQURZVHUTD
        VAVNVOVCVJZUQVMVKZFURZKVEUVNVFVCVGVELPLWCWDVCVBVCWBVCVHUTFEURVNVPVCVJEV
        MVKZAOWEVAVOVCZWFZUUHVARMURZVBVCZVDVCZUUGVBVCZUULUSUTZVLZUUPUVRVHUTZGUU
        GUWAVIVCZVJZVLZDVMVKZCBURZVNVOVCZVJZNIUVRVFVCZWSVEZVNVPVCZVJZBVMVKZMUVP
        VJUVGAUVQVAQUSUTZLOWBVCZVMWFZAOVMWFQVMWFUVQUWQUWSWHAHIJKLOPQRTUAUBUDUEU
        FUGUIUJUKULWGWIWJUHUWPUVGMOUVPUVROWKZUWPUVACUWJVJZNUVEVJZBVMVKUVGUWTUWO
        UXBBVMUWTUWKUXANUWNUVEUWTUWMQVNVPUWTUWMIOVFVCZWSVEQUWTUWLUXCWSUVROIVFWL
        WMULWNWOUWTUWHUVACUWJUWTUWGUUTDVMUWTUWCUUNUWFUUSUWTUWBUUMUUHUWTUWAUUKUU
        LUSUWTUVTUUJUUGVBUWTUVSUUIVAVDUVRORVBWLWPWOZWQWRUWTUWDUUQGUWEUURUWTUWAU
        UKUUGVIUXDWPUVROUUPVHWTXAXBXCXDXAXCUXBUVFBUOVMUWIUVBWKZUXAUVDNUVEUXEUVA
        CUWJUVCUWIUVBVNVOXEXFXDXGXHXIXJASXKWFZVASVHUTZUVMASASVMWFZUXGUMXLZXMZAU
        XHUXGUMXNDSKUPTUQUAXOXJUVGUVMVLUVFUVLVLZUQVMVKUOVMVKAUVOUVFUVLUOUQVMVMX
        PAUXKUVOUOUQVMVMAUVBVMWFZUVKVMWFZVLZUXKUVOAUXNUXKVLZVLZCDEFGHIUVKJKLUPN
        OPQRSXQUUIVFVCVDVCVRWDVCSUVBVDVCZQVRWDVCVBVCXQWDVCWCVRXRIVBVCUWRROVRWDV
        CVBVCVBVCVFVCLWCVBVCUVKVDVCVBVCWSVEVDVCVDVCZUXQSTUAAHVMWFUXOUBXTAIVMWFU
        XOUDXTARUVPWFUXOUEXTUFUGALVMWFUXOUIXTALHVHUTUXOUJXTUKULAUXHUXGVLUXOUMXT
        AUXNUXQVMWFZSUXQUSUTZVLUXKAUXNVLZUXSUXTAUXHUXLUXSUXNUXIUXLUXMYAZSUVBXSY
        BZAUXFUXLUXTUXNUXJUYBSUVBYCYBYDYEAUXLUXMUXKYFUXRYGAUVHUUGVFVCVGVELVHUTD
        SVNVPVCVJUXOUNXTUXPUXQVNVOVCZUVCYKZUVFUVACUYDVJZNUVEVJAUXNUYEUXKUYAUVBY
        LWFZUVBUXQVHUTUYEUXLUYGAUXMUVBYHYIUYAUVBUXQUXLUVBXKWFAUXMUVBYJYIZUYAUXQ
        UYCXMUYAUVBSUYHAUXHUXNUXIXTYMYNUVBUXQVNYOXJYEAUXNUVFUVLYPUYEUVDUYFNUVEU
        VACUYDUVCYQYRYSAUXNUVFUVLYTUUBUUAUUCUUDUUE $.
    $}

    $d z ph $.
    $( Lemma for ~ pnt .  Equation 10.6.35 in [Shapiro], p. 436.  (Contributed
       by Mario Carneiro, 14-Apr-2016.) $)
    pntleml $p |- ( ph -> ( x e. RR+ |-> ( ( psi ` x ) / x ) ) ~~>r 1 ) $=
      ( vr vt vv vw vs cv cfv cdiv co cabs cle wbr cpnf cico wral crp wrex cicc
      cc0 crab eqid wcel pntlemd simp3d wa c3 cexp cmul cmin 0m0e0 simpr oveq1d
      wceq cn 3nn 0exp ax-mp syl6eq oveq2d rpcnd ad2antrr eqtrd oveq12d 3eqtr4a
      mul01d simplr eqeltrd wne wi weq oveq1 raleqdv cbvrexv cr w3a simplrr 0re
      wb rpred elicc2 sylancr mpbid simp1d simp2d simplrl ne0gt0d elrpd rpexpcl
      cz 3z sylancl rpmulcld resubcld ce c1 caddc clt simprl 1rp rpaddcl rpge0d
      cioo 1re addge02 jca wss cxr rpxrd lep1d adantl syl fveq2 id fveq2d breq2
      breq1d rexralbidv elrab df-ico xrletr ixxss1 syl2anc simprr pntlemp leidd
      sylc rpre elicopnf mpbir2and rspcv pntrf ffvelrni rerpdivcl mpancom recnd
      ssralv absge0d 0red abscld letr syl3anc mpand syld rexlimdva mpd subge02d
      adantr mpbir3and rexlimdvaa syl5bi anassrs expimpd cbvralv syl5bb syl6bbr
      letrd 3imtr4g imp an32s pm2.61dane pntlem3 ) ABCDUCUDFLIDUHZIUIZUWDUJUKZU
      LUIZUDUHZUMUNZDCUHZUOUPUKZUQCURUSZUDVAFUTUKZVBZNOPQUWNVCAMURVDHURVDLURVDZ
      AFGHILMNOPRSTUAVEVFZAUCUHZUWNVDZVGZUWQLUWQVHVIUKZVJUKZVKUKZUWNVDZUWQVAUWS
      UWQVAVOZVGZUXBUWQUWNUXEVAVAVKUKVAUXBUWQVLUXEUWQVAUXAVAVKUWSUXDVMZUXEUXALV
      AVJUKZVAUXEUWTVALVJUXEUWTVAVHVIUKZVAUXEUWQVAVHVIUXFVNVHVPVDUXHVAVOVQVHVRV
      SVTWAAUXGVAVOUWRUXDALALUWPWBWGWCWDWEUXFWFAUWRUXDWHWIAUWQVAWJZUWRUXCAUXIVG
      ZUWRUXCUXJUWQUWMVDZUWGUWQUMUNZDUWKUQZCURUSZVGUXBUWMVDZUEUHZIUIZUXPUJUKZUL
      UIZUXBUMUNZUEUFUHZUOUPUKZUQZUFURUSZVGZUWRUXCUXJUXKUXNUYEAUXIUXKUXNUYEWKUX
      NUXLDUGUHZUOUPUKZUQZUGURUSAUXIUXKVGZVGZUYEUXMUYHCUGURCUGWLUXLDUWKUYGUWJUY
      FUOUPWMWNWOUYJUYHUYEUGURUYJUYFURVDZUYHVGZVGZUXOUYDUYMUXOUXBWPVDZVAUXBUMUN
      ZUXBFUMUNZUYMUWQUXAUYMUWQWPVDZVAUWQUMUNZUWQFUMUNZUYMUXKUYQUYRUYSWQZAUXIUX
      KUYLWRUYMVAWPVDZFWPVDZUXKUYTWTWSUYMFAFURVDUYIUYLPWCZXAZVAFUWQXBXCXDZXEZUY
      MUXAUYMLUWTAUWOUYIUYLUWPWCUYMUWQURVDVHXKVDUWTURVDUYMUWQVUFUYMUWQVUFUYMUYQ
      UYRUYSVUEXFAUXIUXKUYLXGXHXIZXLUWQVHXJXMXNZXAZXOZUYMUYDUYOUYMBCDUFUEEFGHIU
      WQJKUWQHUJUKZLGVUKUJUKXPUIZMUYFXQXRUKZNOVUCABUHZIUIVUNUJUKULUIFUMUNBURUQU
      YIUYLQWCAGURVDUYIUYLRWCAMVAXQYDUKZVDUYIUYLSWCTUAAUWJUWDXSUNXQMJUHZVJUKXRU
      KUWDVJUKZKUHUWJVJUKXSUNVGEUHZIUIVURUJUKULUIVUPUMUNEUWDVUQUTUKUQVGDURUSCVU
      NUOYDUKUQKGVUPUJUKXPUIUOUPUKUQBURUSJVUOUQUYIUYLUBWCVUGUYMUYQUYRUYSVUEVFZV
      UKVCVULVCUYMVUMURVDZXQVUMUMUNZUYMUYKXQURVDVUTUYJUYKUYHXTZYAUYFXQYBXMUYMVA
      UYFUMUNZVVAUYMUYFVVBYCUYMXQWPVDUYFWPVDVVCVVAWTYEUYMUYFVVBXAZXQUYFYFXCXDYG
      UYMVUMUOUPUKZUYGYHZUYHUXLDVVEUQUYMUYFYIVDUYFVUMUMUNVVFUYMUYFVVBYJUYMUYFVV
      DYKUDUCUFUEUYFVUMUOUPUMXSUMUPUMUDUCUFUUAZVVGUYFVUMUXPUUBUUCUUDUYJUYKUYHUU
      EUXLDVVEUYGUURUUHUUFZUYMUYCUYOUFURUYMUYAURVDZVGZUYCUYAIUIZUYAUJUKZULUIZUX
      BUMUNZUYOVVJUYAUYBVDZUYCVVNWKVVJVVOUYAWPVDZUYAUYAUMUNZVVIVVPUYMUYAUUIYLZV
      VJUYAVVRUUGVVJVVPVVOVVPVVQVGWTVVRUYAUYAUUJYMUUKUXTVVNUEUYAUYBUEUFWLZUXSVV
      MUXBUMVVSUXRVVLULVVSUXQVVKUXPUYAUJUXPUYAIYNVVSYOWEYPYRUULYMVVJVAVVMUMUNZV
      VNUYOVVJVVLVVJVVLVVIVVLWPVDZUYMVVKWPVDVVIVWAURWPUYAIINOUUMUUNVVKUYAUUOUUP
      YLUUQZUUSVVJVUAVVMWPVDUYNVVTVVNVGUYOWKVVJUUTVVJVVLVWBUVAUYMUYNVVIVUJUVIVA
      VVMUXBUVBUVCUVDUVEUVFUVGUYMUXBUWQFVUJVUFVUDUYMVAUXAUMUNUXBUWQUMUNUYMUXAVU
      HYCUYMUWQUXAVUFVUIUVHXDVUSUVRUYMVUAVUBUXOUYNUYOUYPWQWTWSVUDVAFUXBXBXCUVJV
      VHYGUVKUVLUVMUVNUWLUXNUDUWQUWMUDUCWLUWIUXLCDURUWKUWHUWQUWGUMYQYSYTUWLUYDU
      DUXBUWMUWHUXBVOZUWLUWGUXBUMUNZDUWKUQZCURUSUYDVWCUWIVWDCDURUWKUWHUXBUWGUMY
      QYSUYCVWEUFCURUYCVWDDUYBUQUFCWLZVWEUXTVWDUEDUYBUEDWLZUXSUWGUXBUMVWGUXRUWF
      ULVWGUXQUWEUXPUWDUJUXPUWDIYNVWGYOWEYPYRUVOVWFVWDDUYBUWKUYAUWJUOUPWMWNUVPW
      OUVQYTUVSUVTUWAUWBUWC $.
  $}

  ${
    $d a b c e f g k l r u w x y z $.
    $( The Prime Number Theorem, version 3: the second Chebyshev function tends
       asymptotically to ` x ` .  (Contributed by Mario Carneiro,
       1-Jun-2016.) $)
    pnt3 $p |- ( x e. RR+ |-> ( ( psi ` x ) / x ) ) ~~>r 1 $=
      ( vr va ve vk vu vf vg cv crp cfv co cdiv wbr wral wrex c1 wa clt cmul vb
      vy vz vl vc cchp cmin cmpt cabs cle crli eqid pntrmax wcel cicc cpnf cioo
      caddc ce cico cc0 pntibnd c3 c2 cdc cexp simpll simplr weq oveq12d fveq2d
      fveq2 id breq1d cbvralv sylib simprll simprlr breq2 oveq2 anbi12d raleqdv
      simprr cbvrexv breq1 breq2d anbi1d rexbidv syl5bb oveq1 ralbii rexlimdvva
      ralbidv pntleml expr mpi rexlimiva ax-mp ) BIZCJCIZUFKWTUGLUHZKZWSMLZUIKZ
      UAIZUJNZBJOZUAJPAJAIZUFKXHMLUHQUKNZBXACUAXAULZUMXGXIUAJXEJUNZXGRZUBIZUCIZ
      SNZQUDIZDIZTLURLZXNTLZEIZXMTLZSNZRZFIZXAKYDMLUIKXQUJNZFXNXSUOLZOZRZUCJPZU
      BWSUPUQLZOZEUEIZXQMLUSKUPUTLZOZBJPZDVAQUQLZOZUDYPPUEJPXIBUBUCFXADECUEUDXJ
      VBXLYQXIUEUDJYPXLYLJUNZXPYPUNZRZYQXIXLYTYQRZRZAGHFXEYLXEQURLZXADEQQUUCMLU
      GLXPVCVDVEYLTLMLUUCVDVFLMLTLZXPCXJXKXGUUAVGUUBXGXHXAKZXHMLZUIKZXEUJNZAJOX
      KXGUUAVHXFUUHBAJBAVIZXDUUGXEUJUUIXCUUFUIUUIXBUUEWSXHMWSXHXAVLUUIVMVJVKVNV
      OVPXLYRYSYQVQXLYRYSYQVRUUCULUUDULUUBYQGIZHIZSNZXRUUKTLZXTUUJTLZSNZRZYEFUU
      KUUMUOLZOZRZHJPZGXHUPUQLZOZEYMOZAJPZDYPOXLYTYQWCYOUVDDYPYNUVCBAJUUIYKUVBE
      YMYKUUTGYJOUUIUVBYIUUTUBGYJYIXMUUKSNZUUMYASNZRZUURRZHJPUBGVIZUUTYHUVHUCHJ
      UCHVIZYCUVGYGUURUVJXOUVEYBUVFXNUUKXMSVSUVJXSUUMYASXNUUKXRTVTZVNWAUVJYEFYF
      UUQUVJXNUUKXSUUMUOUVJVMUVKVJWBWAWDUVIUVHUUSHJUVIUVGUUPUURUVIUVEUULUVFUUOX
      MUUJUUKSWEUVIYAUUNUUMSXMUUJXTTVTWFWAWGWHWIVOUUIUUTGYJUVAWSXHUPUQWJWBWIWMW
      DWKVPWNWOWLWPWQWR $.

    $( The Prime Number Theorem, version 2: the first Chebyshev function tends
       asymptotically to ` x ` .  (Contributed by Mario Carneiro,
       1-Jun-2016.) $)
    pnt2 $p |- ( x e. RR+ |-> ( ( theta ` x ) / x ) ) ~~>r 1 $=
      ( crp cdiv co cmpt c1 crli wbr wtru c2 cr wa 2re cc0 a1i wne cc syl recnd
      wcel cv ccht cfv cpnf cico cres cchp elicopnf ax-mp chprpcl sylbi simplbi
      cle 0red clt 2pos simprbi ltletrd elrpd rpdivcld adantl chtrpcl wss ssriv
      wb pnt3 rlimres2 chpchtlim ax-1ne0 rpne0d rlimdiv cmul wceq rpre rpcnne0d
      chpcl divdivdiv mulcomd oveq2d chtcl divcan5 syl3anc 3eqtrd resmpt eqtr4i
      syl22anc mpteq2ia 1div1e1 3brtr3g rerpdivcl mpancom fmptd rpssre rlimresb
      eqid mpbird trud ) ABAUAZUBUCZWRCDZEZFGHZIXBXAJUDUEDZUFZFGHIAXCWRUGUCZWRC
      DZXEWSCDZCDZEZFFCDXDFGIAXCXFXGFFBWRXCTZXFBTIXJXEWRXJWRKTZJWRUMHZLZXEBTJKT
      ZXJXMVEMJWRUHUIZWRUJUKZXJWRXJXKXLXOULZXJNJWRXJUNXNXJMOXQNJUOHXJUPOXJXKXLX
      OUQURUSZUTVAXJXGBTIXJXEWSXPXJXMWSBTXOWRVBUKZUTVAZIAXCBXFFXCBVCZIAXCBXRVDZ
      OABXFEFGHIAVFOVGAXCXGEFGHIAVHOFNPIVIOIXJLXGXTVJVKXIAXCWTEZXDAXCXHWTXJXHXE
      WSVLDZWRXEVLDZCDZYDXEWRVLDZCDZWTXJXEQTZWRQTWRNPLZYIXENPLZWSQTZWSNPLXHYFVM
      XJWRBTZYIXRYMXEYMXKXEKTWRVNZWRVPRSRZXJWRXRVOZXJXEXPVOZXJWSXSVOXEWRXEWSVQW
      FXJYEYGYDCXJWRXEXJWRXQSYOVRVSXJYLYJYKYHWTVMXJYMYLXRYMWSYMXKWSKTZYNWRVTRZS
      RYPYQWSWRXEWAWBWCWGYAXDYCVMYBABXCWTWDUIWEWHWIIBJFXAIABWTQXAIYMLWTYMWTKTZI
      YRYMYTYSWSWRWJWKVASXAWOWLBKVCIWMOXNIMOWNWPWQ $.

    $( The Prime Number Theorem: the number of prime numbers less than ` x `
       tends asymptotically to ` x / log ( x ) ` as ` x ` goes to infinity.
       This is Metamath 100 proof #5.  (Contributed by Mario Carneiro,
       1-Jun-2016.) $)
    pnt $p |- ( x e. ( 1 (,) +oo ) |->
      ( ( ppi ` x ) / ( x / ( log ` x ) ) ) ) ~~>r 1 $=
      ( c1 cpnf co cdiv cmpt crli wbr wtru wcel clt cmul crp syl cc0 a1i adantl
      c2 cr rpne0d vy vz vw cioo cppi cfv clog cico cres wss wceq cxr 1re rexri
      cv 1lt2 cle df-ioo df-ico xrltletr ixxss1 mp2an resmpt mp1i sseli ioossre
      ccht w3a wb 2re pnfxr elico2 simp2bi chtrpcl syl2anc 0red eliooord simpld
      0lt1 lttrd elrpd rpdivcld cn ppinncl nnrpd rplogcld rpmulcld pnt2 rlimres
      ssriv ax-mp syl5eqbrr chtppilim wne ax-1ne0 rlimdiv recnd cc chtcl oveq2d
      mulcomd rpcnd divcan5d eqtrd divdivdivd divdiv2d 3eqtr4d mpteq2ia 1div1e1
      nncnd 3brtr3g cn0 ppicl nn0red rerpdivcld eqid fmptd rlimresb mpbird trud
      eqbrtrd ) ABCUDDZAUOZUEUFZYCYCUGUFZEDZEDZFZBGHZIYIYHRCUHDZUIZBGHIYKAYJYGF
      ZBGYJYBUJZYKYLUKIBULJBRKHYMBUMUNUPAUAUBUCBRCUHKKUQUDKAUAUBURAUAUBUSBRUCUO
      UTVAVBZAYBYJYGVCVDIAYJYCVGUFZYCEDZYOYDYELDZEDZEDZFBBEDYLBGIAYJYPYRBBMYCYJ
      JZYPMJIYTYOYCYTYCSJZRYCUQHZYOMJYTYCYBJZUUAYJYBYCYNVEZYBSYCBCVFZVEZNZYTUUA
      UUBYCCKHZRSJZCULJYTUUAUUBUUHVHVIVJVKRCYCVLVBVMZYCVNVOZYTUUCYCMJUUDUUCYCUU
      FUUCOBYCUUCVPBSJUUCUMPUUFOBKHUUCVSPUUCBYCKHUUHYCBCVQVRZVTWAZNZWBQYTYRMJIY
      TYOYQUUKYTYDYEYTYDYTUUAUUBYDWCJUUGUUJYCWDVOZWEYTUUCYEMJUUDUUCYCUUFUULWFZN
      ZWGZWBZQIAYJYPFZAMYPFZYJUIZBGYJMUJUVBUUTUKAYJMUUNWJAMYJYPVCWKUVABGHUVBBGH
      IAWHBYJUVAWIVDWLAYJYRFBGHIAWMPBOWNIWOPYTYROWNIYTYRUUSTQWPAYJYSYGYTYOYQLDZ
      YCYOLDZEDZYQYCEDZYSYGYTUVEUVCYOYCLDZEDUVFYTUVDUVGUVCEYTYCYOYTYCUUGWQZYTUU
      CYOWRJUUDUUCYOUUCUUAYOSJUUFYCWSNWQNZXAWTYTYQYCYOYTYQUURXBZUVHUVIYTYCUUNTZ
      YTYOUUKTZXCXDYTYOYCYOYQUVIUVHUVIUVJUVKYTYQUURTUVLXEYTYDYCYEYTYDUUOXJUVHYT
      YEUUQXBUVKYTYEUUQTXFXGXHXIXKYAIYBRBYHIAYBYGWRYHUUCYGWRJIUUCYGUUCYDYFUUCYD
      UUCUUAYDXLJUUFYCXMNXNUUCYCYEUUMUUPWBXOWQQYHXPXQYBSUJIUUEPUUIIVJPXRXSXT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ostrowski's theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z A $.  $d x y z B $.  $d x y z F $.  $d x y z R $.  $d x y z S $.
    $d y z G $.
    abvcxp.a $e |- A = ( AbsVal ` R ) $.
    abvcxp.b $e |- B = ( Base ` R ) $.
    abvcxp.f $e |- G = ( x e. B |-> ( ( F ` x ) ^c S ) ) $.
    $( Raising an absolute value to a power less than one yields another
       absolute value.  (Contributed by Mario Carneiro, 8-Sep-2014.) $)
    abvcxp $p |- ( ( F e. A /\ S e. ( 0 (,] 1 ) ) -> G e. A ) $=
      ( wcel cc0 co cfv wceq ccxp cr cle wbr syl vy vz c1 cioc cplusg cmulr c0g
      wa cabv a1i cbs eqidd crg abvrcl adantr cv abvcl adantlr abvge0 clt simpr
      w3a cxr wb 0xr 1re elioc2 mp2an sylib simp1d recxpcld fmptd ring0cl fveq2
      eqid oveq1d ovex fvmpt abv0 recnd simp2d gt0ne0d 0cxpd eqtrd simp1l simp2
      wne syl2anc abvgt0 3adant1r 3ad2ant1 rpcxpcld rpgt0d breqtrrd cmul simp2l
      elrpd simp3l abvmul syl3anc cc mulcxpd oveq12d 3eqtr4d caddc cgrp ringgrp
      ringcl grpcl readdcld addge0d abvtri cxple2d mpbid cxpaddle letrd 3brtr4d
      simp3d isabvd ) FBKZELUCUDMKZUHZUAUBBCDUENZDDUFNZGDUGNZBDUINOYBHUJCDUKNOY
      BIUJYBYCULYBYDULYBYEULXTDUMKZYABDFHUNUOZYBACAUPZFNZEPMZQGYBYHCKZUHYIEXTYK
      YIQKYABCDFYHHIUQURXTYKLYIRSYABCDFYHHIUSURYBEQKZYKYBYLLEUTSZEUCRSZYBYAYLYM
      YNVBZXTYAVALVCKUCQKYAYOVDVEVFLUCEVGVHVIZVJZUOVKJVLYBYEGNZYEFNZEPMZLYBYECK
      ZYRYTOYBYFUUAYGCDYEIYEVOZVMTAYEYJYTCGYHYEOYIYSEPYHYEFVNVPJYSEPVQVRTYBYTLE
      PMLYBYSLEPXTYSLOYABDFYEHUUBVSUOVPYBEYBEYQVTZYBEYBYLYMYNYPWAWBWCWDWDYBUAUP
      ZCKZUUDYEWGZVBZLUUDFNZEPMZUUDGNZUTUUGUUIUUGUUHEUUGUUHUUGXTUUEUUHQKZXTYAUU
      EUUFWEYBUUEUUFWFZBCDFUUDHIUQZWHXTUUEUUFLUUHUTSYABCDFUUDYEHIUUBWIWJWQYBUUE
      YLUUFYQWKWLWMUUGUUEUUJUUIOZUULAUUDYJUUICGYHUUDOYIUUHEPYHUUDFVNVPJUUHEPVQV
      RZTWNYBUUEUUFUHZUBUPZCKZUUQYEWGZUHZVBZUUDUUQYDMZFNZEPMZUUIUUQFNZEPMZWOMZU
      VBGNZUUJUUQGNZWOMUVAUVDUUHUVEWOMZEPMUVGUVAUVCUVJEPUVAXTUUEUURUVCUVJOXTYAU
      UPUUTWEZYBUUEUUFUUTWPZYBUUPUURUUSWRZBCDYDFUUDUUQHIYDVOZWSWTVPUVAUUHUVEEUV
      AXTUUEUUKUVKUVLUUMWHZUVAXTUUELUUHRSUVKUVLBCDFUUDHIUSWHZUVAXTUURUVEQKUVKUV
      MBCDFUUQHIUQWHZUVAXTUURLUVERSUVKUVMBCDFUUQHIUSWHZYBUUPEXAKUUTUUCWKXBWDUVA
      UVBCKZUVHUVDOUVAYFUUEUURUVSYBUUPYFUUTYGWKZUVLUVMCDYDUUDUUQIUVNXHWTAUVBYJU
      VDCGYHUVBOYIUVCEPYHUVBFVNVPJUVCEPVQVRTUVAUUJUUIUVIUVFWOUVAUUEUUNUVLUUOTZU
      VAUURUVIUVFOUVMAUUQYJUVFCGYHUUQOYIUVEEPYHUUQFVNVPJUVEEPVQVRTZXCXDUVAUUDUU
      QYCMZFNZEPMZUUIUVFXEMZUWCGNZUUJUVIXEMRUVAUWEUUHUVEXEMZEPMZUWFUVAUWDEUVAXT
      UWCCKZUWDQKUVKUVADXFKZUUEUURUWJUVAYFUWKUVTDXGTUVLUVMCYCDUUDUUQIYCVOZXIWTZ
      BCDFUWCHIUQWHZUVAXTUWJLUWDRSUVKUWMBCDFUWCHIUSWHZUVAYLYMYNYBUUPYOUUTYPWKZV
      JZVKUVAUWHEUVAUUHUVEUVOUVQXJZUVAUUHUVEUVOUVQUVPUVRXKZUWQVKUVAUUIUVFUVAUUH
      EUVOUVPUWQVKUVAUVEEUVQUVRUWQVKXJUVAUWDUWHRSZUWEUWIRSUVAXTUUEUURUWTUVKUVLU
      VMBCYCDFUUDUUQHIUWLXLWTUVAUWDUWHEUWNUWOUWRUWSUVAEUWQUVAYLYMYNUWPWAWQZXMXN
      UVAUUHUVEEUVOUVPUVQUVRUXAUVAYLYMYNUWPXRXOXPUVAUWJUWGUWEOUWMAUWCYJUWECGYHU
      WCOYIUWDEPYHUWCFVNVPJUWDEPVQVRTUVAUUJUUIUVIUVFXEUWAUWBXCXQXS $.
  $}

  ${
    $d q x P $.  $d x X $.
    padicval.j $e |- J = ( q e. Prime |-> ( x e. QQ |->
      if ( x = 0 , 0 , ( q ^ -u ( q pCnt x ) ) ) ) ) $.
    $( Value of the p-adic absolute value.  (Contributed by Mario Carneiro,
       8-Sep-2014.) $)
    padicfval $p |- ( P e. Prime -> ( J ` P ) = ( x e. QQ |->
      if ( x = 0 , 0 , ( P ^ -u ( P pCnt x ) ) ) ) ) $=
      ( cq cv cc0 wceq cpc co cneg cexp cif cmpt cprime id oveq1 negeqd oveq12d
      ifeq2d mpteq2dv qex mptex fvmpt ) DBAFAGZHIZHDGZUHUFJKZLZMKZNZOAFUGHBBUFJ
      KZLZMKZNZOPCUHBIZAFULUPUQUGUKUOHUQUHBUJUNMUQQUQUIUMUHBUFJRSTUAUBEAFUPUCUD
      UE $.

    $( Value of the p-adic absolute value.  (Contributed by Mario Carneiro,
       8-Sep-2014.) $)
    padicval $p |- ( ( P e. Prime /\ X e. QQ ) -> ( ( J ` P ) ` X ) =
      if ( X = 0 , 0 , ( P ^ -u ( P pCnt X ) ) ) ) $=
      ( cprime wcel cq cfv cv cc0 wceq cpc co cneg cexp cif cmpt padicfval eqid
      fveq1d eqeq1 oveq2 negeqd oveq2d ifbieq2d c0ex ovex ifex fvmpt sylan9eq )
      BGHZDIHDBCJZJDAIAKZLMZLBBUONOZPZQOZRZSZJDLMZLBBDNOZPZQOZRZUMDUNVAABCEFTUB
      ADUTVFIVAUODMZUPVBUSVELUODLUCVGURVDBQVGUQVCUODBNUDUEUFUGVAUAVBLVEUHBVDQUI
      UJUKUL $.
  $}

  ${
    $d k n A $.  $d k n B $.  $d k n ph $.
    ostth2lem1.1 $e |- ( ph -> A e. RR ) $.
    ostth2lem1.2 $e |- ( ph -> B e. RR ) $.
    ostth2lem1.3 $e |- ( ( ph /\ n e. NN ) -> ( A ^ n ) <_ ( n x. B ) ) $.
    $( Lemma for ~ ostth2 , although it is just a simple statement about
       exponentials which does not involve any specifics of ~ ostth2 .  If a
       power is upper bounded by a linear term, the exponent must be less than
       one.  Or in big-O notation, ` n e. o ( A ^ n ) ` for any ` 1 < A ` .
       (Contributed by Mario Carneiro, 10-Sep-2014.) $)
    ostth2lem1 $p |- ( ph -> A <_ 1 ) $=
      ( c1 cle wbr clt c2 cmul co cexp cn cr wcel adantr cc0 vk wn cmin cdiv cv
      wrex wa 2re remulcl sylancr crp simpr wb difrp rerpdivcld expnbnd syl3anc
      1re mpbid cn0 nnnn0 reexpcl syl2an rpred adantl remulcld ad2antrr nnmulcl
      nnre 2nn syl reexpcld nnred cz 0red a1i 0lt1 lttrd elrpd rpexpcl peano2re
      caddc ltp1d rpge0d bernneq2 ltletrd ltmul1dd recnd 2timesd oveq2d expaddd
      nnz eqtrd breqtrrd wral ralrimiva wceq oveq2 oveq1 rspcv sylc mul32d 2cnd
      breq12d 3brtr4d ltmul1 syl112anc mpbird rpgt0d ltmuldiv2 ltnsymd pm2.65da
      nngt0 nrexdv lenlt sylancl ) ABHIJZHBKJZUBZAXRLCMNZBHUCNZUDNZBUAUEZONZKJZ
      UAPUFZAXRUGZYBQRZBQRZXRYFYGXTYAYGLQRCQRZXTQRZUHAYJXRFSLCUIUJZYGXRYAUKRZAX
      RULZYGHQRZYIXRYMUMURAYIXRESZHBUNUJUSZUOZYPYNYBBUAUPUQYGYEUAPYGYCPRZUGZYDY
      BYGYIYCUTRZYDQRZYSYPYCVAZBYCVBVCZYGYHYSYRSYTYAYDMNZXTKJZYDYBKJZYTUUFUUEYC
      MNZXTYCMNZKJZYTYAYCMNZYDMNZLYCMNZCMNZUUHUUIKYTUULBUUMONZUUNYTUUKYDYTYAYCY
      GYAQRZYSYGYAYQVDSZYSYCQRZYGYCVIVEZVFZUUDVFYTBUUMAYIXRYSEVGZYTUUMPRZUUMUTR
      YTLPRYSUVBVJYGYSULLYCVHUJZUUMVAVKVLYTUUMCYTUUMUVCVMAYJXRYSFVGZVFYTUULYDYD
      MNZUUOKYTUUKYDYDUUTUUDYGBUKRZYCVNRYDUKRYSYGBYPYGTHBYGVOYOYGURVPYPTHKJYGVQ
      VPYNVRVSZYCWLBYCVTVCYTUUKUUKHWBNZYDUUTYTUUKQRUVHQRUUTUUKWAVKUUDYTUUKUUTWC
      YTYIUUATBIJUVHYDIJUVAYSUUAYGUUCVEZYTBYGUVFYSUVGSWDBYCWEUQWFWGYTUUOBYCYCWB
      NZONUVEYTUUMUVJBOYTYCYTYCUUSWHZWIWJYTBYCYCYTBUVAWHUVIUVIWKWMWNYTUVBBDUEZO
      NZUVLCMNZIJZDPWOZUUOUUNIJZUVCAUVPXRYSAUVODPGWPVGUVOUVQDUUMPUVLUUMWQUVMUUO
      UVNUUNIUVLUUMBOWRUVLUUMCMWSXDWTXAWFYTYAYDYCYTYAUUQWHYTYDUUDWHUVKXBYTLCYCY
      TXCYTCUVDWHUVKXBXEYTUUEQRYKUURTYCKJZUUFUUJUMYTYAYDUUQUUDVFYGYKYSYLSZUUSYS
      UVRYGYCXMVEUUEXTYCXFXGXHYTUUBYKUUPTYAKJZUUFUUGUMUUDUVSUUQYGUVTYSYGYAYQXIS
      YDXTYAXJXGUSXKXNXLAYIYOXQXSUMEURBHXOXPXH $.
  $}

  ${
    $d k n p y z G $.  $d k n K $.  $d j k n x M $.  $d a b k n p q x y z ph $.
    $d a g p y z J $.  $d a b k S $.  $d j k n x T $.  $d n x U $.  $d k x X $.
    $d a k n p q x y z A $.  $d k n x y z N $.  $d k n x y z Q $.  $d k Y $.
    $d a b g j k n p q y z F $.  $d a b k p q x y z P $.  $d a p q y z R $.
    qrng.q $e |- Q = ( CCfld |`s QQ ) $.
    $( The base set of the field of rationals.  (Contributed by Mario Carneiro,
       8-Sep-2014.) $)
    qrngbas $p |- QQ = ( Base ` Q ) $=
      ( cq cc wss cbs cfv wceq qsscn ccnfld cnfldbas ressbas2 ax-mp ) CDECAFGHI
      CDAJBKLM $.

    $( The rationals form a division ring.  (Contributed by Mario Carneiro,
       8-Sep-2014.) $)
    qdrng $p |- Q e. DivRing $=
      ( ccnfld cq cress co cdr csubrg cfv wcel qsubdrg simpri eqeltri ) ACDEFZG
      BDCHIJNGJKLM $.

    $( The zero element of the field of rationals.  (Contributed by Mario
       Carneiro, 8-Sep-2014.) $)
    qrng0 $p |- 0 = ( 0g ` Q ) $=
      ( cq ccnfld csubrg cfv wcel csubg cc0 c0g wceq cress co qsubdrg subrgsubg
      cdr simpli cnfld0 subg0 mp2b ) CDEFGZCDHFGIAJFKUADCLMPGNQCDOCDAIBRST $.

    $( The unit element of the field of rationals.  (Contributed by Mario
       Carneiro, 8-Sep-2014.) $)
    qrng1 $p |- 1 = ( 1r ` Q ) $=
      ( cq ccnfld csubrg cfv wcel c1 cur wceq cress co cdr simpli cnfld1 subrg1
      qsubdrg ax-mp ) CDEFGZHAIFJSDCKLMGQNCDAHBOPR $.

    $( The additive inverse in the field of rationals.  (Contributed by Mario
       Carneiro, 8-Sep-2014.) $)
    qrngneg $p |- ( X e. QQ -> ( ( invg ` Q ) ` X ) = -u X ) $=
      ( wcel ccnfld cminusg cfv cneg csubg wceq csubrg cress cdr qsubdrg simpli
      cq co subrgsubg ax-mp eqid subginv mpan cc qcn cnfldneg syl eqtr3d ) BPDZ
      BEFGZGZBAFGZGZBHZPEIGDZUHUJULJPEKGDZUNUOEPLQMDNOPERSPEAUIUKBCUITUKTUAUBUH
      BUCDUJUMJBUDBUEUFUG $.

    $( The division operation in the field of rationals.  (Contributed by Mario
       Carneiro, 8-Sep-2014.) $)
    qrngdiv $p |- ( ( X e. QQ /\ Y e. QQ /\ Y =/= 0 ) ->
                    ( X ( /r ` Q ) Y ) = ( X / Y ) ) $=
      ( cq wcel cc0 wne w3a cdiv cdvr cfv ccnfld csubrg csn cdif wceq cress cdr
      co qsubdrg simpli a1i simp1 wa 3simpc eldifsn sylibr cnflddiv qrng0 qdrng
      qrngbas drngui eqid subrgdv syl3anc eqcomd ) BEFZCEFZCGHZIZBCJTZBCAKLZTZV
      AEMNLFZURCEGOPZFZVBVDQVEVAVEMERTSFUAUBUCURUSUTUDVAUSUTUEVGURUSUTUFCEGUGUH
      EJMAVFVCBCDUIEAGADULADUJADUKUMVCUNUOUPUQ $.

    qabsabv.a $e |- A = ( AbsVal ` Q ) $.
    $( By using induction on ` N ` , we show a long-range inequality coming
       from the triangle inequality.  (Contributed by Mario Carneiro,
       10-Sep-2014.) $)
    qabvle $p |- ( ( F e. A /\ N e. NN0 ) -> ( F ` N ) <_ N ) $=
      ( wcel cfv cle wbr wi cc0 c1 caddc wceq fveq2 id breq12d cq cr cn0 imbi2d
      vk vn cv co qrng0 abv0 0le0 syl6eqbr wa cn nn0p1nn ad2antrl nnq syl abvcl
      qrngbas syldan cz nn0z zq peano2re zred simpl 1z mp1i cvv cplusg cnfldadd
      qex ccnfld ressplusg ax-mp abvtri syl3anc wne ax-1ne0 qrng1 adantr oveq2d
      abv1z mpan2 breqtrd 1red simprr leadd1dd letrd expr expcom nn0ind impcom
      a2d ) DUAGCAGZDCHZDIJZWNUCUEZCHZWQIJZKWNLCHZLIJZKWNUDUEZCHZXBIJZKWNXBMNUF
      ZCHZXEIJZKWNWPKUCUDDWQLOZWSXAWNXHWRWTWQLIWQLCPXHQRUBWQXBOZWSXDWNXIWRXCWQX
      BIWQXBCPXIQRUBWQXEOZWSXGWNXJWRXFWQXEIWQXECPXJQRUBWQDOZWSWPWNXKWRWOWQDIWQD
      CPXKQRUBWNWTLLIABCLFBEUGZUHUIUJXBUAGZWNXDXGWNXMXDXGKWNXMXDXGWNXMXDUKZUKZX
      FXCMNUFZXEWNXNXESGZXFTGXOXEULGZXQXMXRWNXDXBUMUNXEUOUPASBCXEFBEURZUQUSXOXC
      TGZXPTGWNXNXBSGZXTXOXBUTGZYAXMYBWNXDXBVAUNZXBVBUPZASBCXBFXSUQUSZXCVCUPXOX
      BTGXETGXOXBYCVDZXBVCUPXOXFXCMCHZNUFZXPIXOWNYAMSGZXFYHIJWNXNVEYDMUTGYIXOVF
      MVBVGASNBCXBMFXSSVHGNBVIHOVKSNVLBVHEVJVMVNVOVPXOYGMXCNWNYGMOZXNWNMLVQYJVR
      ABMCLFBEVSXLWBWCVTWAWDXOXCXBMYEYFXOWEWNXMXDWFWGWHWIWJWMWKWL $.

    $( Induct the product rule ~ abvmul to find the absolute value of a power.
       (Contributed by Mario Carneiro, 10-Sep-2014.) $)
    qabvexp $p |- ( ( F e. A /\ M e. QQ /\ N e. NN0 ) ->
      ( F ` ( M ^ N ) ) = ( ( F ` M ) ^ N ) ) $=
      ( wcel cq cexp co cfv wceq wi cc0 c1 oveq2 fveq2d eqeq12d cmul cn0 imbi2d
      vk vn wa cv caddc wne ax-1ne0 qrng1 qrng0 abv1z mpan2 adantr cc qcn exp0d
      adantl qrngbas abvcl recnd 3eqtr4d oveq1 expp1 sylan simpll qexpcl simplr
      adantll cvv cmulr qex ccnfld cnfldmul ressmulr ax-mp abvmul syl3anc eqtrd
      syl5ibr expcom a2d nn0ind com12 3impia ) CAHZDIHZEUAHZDEJKZCLZDCLZEJKZMZW
      HWFWGUEZWMWNDUCUFZJKZCLZWKWOJKZMZNWNDOJKZCLZWKOJKZMZNWNDUDUFZJKZCLZWKXDJK
      ZMZNWNDXDPUGKZJKZCLZWKXIJKZMZNWNWMNUCUDEWOOMZWSXCWNXNWQXAWRXBXNWPWTCWOODJ
      QRWOOWKJQSUBWOXDMZWSXHWNXOWQXFWRXGXOWPXECWOXDDJQRWOXDWKJQSUBWOXIMZWSXMWNX
      PWQXKWRXLXPWPXJCWOXIDJQRWOXIWKJQSUBWOEMZWSWMWNXQWQWJWRWLXQWPWICWOEDJQRWOE
      WKJQSUBWNPCLZPXAXBWFXRPMZWGWFPOUHXSUIABPCOGBFUJBFUKULUMUNWNWTPCWNDWGDUOHZ
      WFDUPURZUQRWNWKWNWKAIBCDGBFUSZUTVAZUQVBXDUAHZWNXHXMWNYDXHXMNXHXMWNYDUEZXF
      WKTKZXGWKTKZMXFXGWKTVCYEXKYFXLYGYEXKXEDTKZCLZYFYEXJYHCWNXTYDXJYHMYADXDVDV
      ERYEWFXEIHZWGYIYFMWFWGYDVFWGYDYJWFDXDVGVIWFWGYDVHAIBTCXEDGYBIVJHTBVKLMVLI
      VMBTVJFVNVOVPVQVRVSWNWKUOHYDXLYGMYCWKXDVDVESVTWAWBWCWDWE $.

    ${
      ostthlem1.1 $e |- ( ph -> F e. A ) $.
      ostthlem1.2 $e |- ( ph -> G e. A ) $.
      ${
        ostthlem1.3 $e |- ( ( ph /\ n e. ( ZZ>= ` 2 ) ) ->
          ( F ` n ) = ( G ` n ) ) $.
        $( Lemma for ~ ostth .  If two absolute values agree on the positive
           integers greater than one, then they agree for all rational numbers
           and thus are equal as functions.  (Contributed by Mario Carneiro,
           9-Sep-2014.) $)
        ostthlem1 $p |- ( ph -> F = G ) $=
          ( cq wcel cr cfv wceq cn cc0 fveq2 c1 vy vk wfn qrngbas abvf ffn 3syl
          wf cv cdiv co wrex cz elq wa cdr wne qdrng a1i adantr zq ad2antrl nnq
          cdvr ad2antll nnne0 qrng0 eqid abvdiv syl23anc cneg wi eqtr4d eqeq12d
          abv0 syl syl5ibrcom imp wral c2 wo elnn1uz2 qrng1 abv1 sylancr jaodan
          cuz sylan2b ralrimiva rspccva cminusg ad2antrr adantl qrngneg biimpar
          sylan eleq1d syl2anc abvneg 3eqtr3d w3o elz simprbi mpjao3dan adantrr
          ad2antlr adantrl oveq12d qrngdiv syl3anc fveq2d rexlimdvva eqfnfvd
          syl5bi ) AUALEFAEBMZLNEUHELUCIBLCEHCGUDZUELNEUFUGAFBMZLNFUHFLUCJBLCFH
          XPUELNFUFUGAUAUIZLMZXREOZXRFOZPZXSXRUBUIZDUIZUJUKZPZDQULUBUMULAYBUBDX
          RUNAYFYBUBDUMQAYCUMMZYDQMZUOZUOZYBYFYEEOZYEFOZPYJYCYDCVDOZUKZEOZYNFOZ
          YKYLYJYOYCEOZYDEOZUJUKZYPYJCUPMZXOYCLMZYDLMZYDRUQZYOYSPYTYJCGURZUSZAX
          OYIIUTYGUUAAYHYCVAZVBZYHUUBAYGYDVCVEZYHUUCAYGYDVFVEZBLYMCEYCYDRHXPCGV
          GZYMVHZVIVJYJYPYCFOZYDFOZUJUKZYSYJYTXQUUAUUBUUCYPUUNPUUEAXQYIJUTUUGUU
          HUUIBLYMCFYCYDRHXPUUJUUKVIVJYJYQUULYRUUMUJAYGYQUULPZYHAYGUOZYCRPZUUOY
          CQMZYCVKZQMZUUPUUQUUOAUUQUUOVLYGAUUOUUQREOZRFOZPAUVARUVBAXOUVARPIBCER
          HUUJVOVPAXQUVBRPJBCFRHUUJVOVPVMUUQYQUVAUULUVBYCRESYCRFSVNVQUTVRUUPYRU
          UMPZDQVSZUURUUOAUVDYGAUVCDQYHAYDTPZYDVTWGOMZWAUVCYDWBAUVEUVCUVFAUVEUV
          CAUVCUVETEOZTFOZPAUVGTUVHAYTXOUVGTPUUDIBCTEHCGWCZWDWEAYTXQUVHTPUUDJBC
          TFHUVIWDWEVMUVEYRUVGUUMUVHYDTESYDTFSVNVQVRKWFWHZWIZUTUVCUUODYCQYDYCPY
          RYQUUMUULYDYCESYDYCFSVNWJWPUUPUUTUOZYCCWKOZOZEOZUVNFOZYQUULUVLUVDUVNQ
          MZUVOUVPPZAUVDYGUUTUVKWLUUPUVQUUTUUPUVNUUSQUUPUUAUVNUUSPYGUUAAUUFWMCY
          CGWNVPWQWOUVCUVRDUVNQYDUVNPYRUVOUUMUVPYDUVNESYDUVNFSVNWJWRUVLXOUUAUVO
          YQPAXOYGUUTIWLYGUUAAUUTUUFXFZBLCEUVMYCHXPUVMVHZWSWRUVLXQUUAUVPUULPAXQ
          YGUUTJWLUVSBLCFUVMYCHXPUVTWSWRWTYGUUQUURUUTXAZAYGYCNMUWAYCXBXCWMXDXEA
          YHUVCYGUVJXGXHVMVMYJYNYEEYJUUAUUBUUCYNYEPUUGUUHUUICYCYDGXIXJZXKYJYNYE
          FUWBXKWTYFXTYKYAYLXRYEESXRYEFSVNVQXLXNVRXM $.
      $}

      ${
        ostthlem2.3 $e |- ( ( ph /\ p e. Prime ) ->
          ( F ` p ) = ( G ` p ) ) $.
        $( Lemma for ~ ostth .  Refine ~ ostthlem1 so that it is sufficient to
           only show equality on the primes.  (Contributed by Mario Carneiro,
           9-Sep-2014.)  (Revised by Mario Carneiro, 20-Jun-2015.) $)
        ostthlem2 $p |- ( ph -> F = G ) $=
          ( cfv wcel wceq wi c1 cmul fveq2 eqeq12d cq vn vy vz cv c2 cn eluz2nn
          cuz co imbi2d cc0 wne ax-1ne0 qrng1 qrng0 abv1z sylancl eqtr4d cprime
          expcom wa jcab oveq12 adantr cz eluzelz ad2antrl syl ad2antll qrngbas
          cvv cmulr qex ccnfld cnfldmul ressmulr abvmul syl3anc syl5ibr syl5bir
          zq ax-mp a2d prmind impcom sylan2 ostthlem1 ) ABCUADEGHIJUAUDZUEUHLZM
          AWHUFMZWHDLZWHELZNZWHUGWJAWMAFUDZDLZWNELZNZOAPDLZPELZNZOAUBUDZDLZXAEL
          ZNZOZAUCUDZDLZXFELZNZOZAXAXFQUIZDLZXKELZNZOZAWMOFUBUCWHWNPNZWQWTAXPWO
          WRWPWSWNPDRWNPERSUJWNXANZWQXDAXQWOXBWPXCWNXADRWNXAERSUJWNXFNZWQXIAXRW
          OXGWPXHWNXFDRWNXFERSUJWNXKNZWQXNAXSWOXLWPXMWNXKDRWNXKERSUJWNWHNZWQWMA
          XTWOWKWPWLWNWHDRWNWHERSUJAWRPWSADBMZPUKULZWRPNIUMBCPDUKHCGUNZCGUOZUPU
          QAEBMZYBWSPNJUMBCPEUKHYCYDUPUQURAWNUSMWQKUTXEXJVAAXDXIVAZOXAWIMZXFWIM
          ZVAZXOAXDXIVBYIAYFXNAYIYFXNOYFXNAYIVAZXBXGQUIZXCXHQUIZNXBXCXGXHQVCYJX
          LYKXMYLYJYAXATMZXFTMZXLYKNAYAYIIVDYJXAVEMZYMYGYOAYHUEXAVFVGXAWAVHZYJX
          FVEMZYNYHYQAYGUEXFVFVIXFWAVHZBTCQDXAXFHCGVJZTVKMQCVLLNVMTVNCQVKGVOVPW
          BZVQVRYJYEYMYNXMYLNAYEYIJVDYPYRBTCQEXAXFHYSYTVQVRSVSUTWCVTWDWEWFWG $.
      $}
    $}

    $( The regular absolute value function on the rationals is in fact an
       absolute value under our definition.  (Contributed by Mario Carneiro,
       9-Sep-2014.) $)
    qabsabv $p |- ( abs |` QQ ) e. A $=
      ( cabs ccnfld cabv cfv wcel cq csubrg cres absabv cress co qsubdrg simpli
      cdr eqid abvres mp2an ) EFGHZIJFKHIZEJLAIMUCFJNORIPQUBAJFBEUBSCDTUA $.

    ${
      padic.f $e |- F = ( x e. QQ |->
        if ( x = 0 , 0 , ( N ^ ( P pCnt x ) ) ) ) $.
      $( The p-adic absolute value (with arbitrary base) is an absolute value.
         (Contributed by Mario Carneiro, 9-Sep-2014.) $)
      padicabv $p |- ( ( P e. Prime /\ N e. ( 0 (,) 1 ) ) -> F e. A ) $=
        ( wcel cc0 co wa cq wceq cpc cexp wbr cle adantr vy vz cprime cioo cmul
        caddc cabv cfv a1i cbs qrngbas cvv cplusg qex ccnfld cnfldadd ressplusg
        c1 mp1i cmulr cnfldmul ressmulr c0g qrng0 cdr crg qdrng drngring cv cif
        cr 0red wn ioossre simpr sseldi ad2antrr wne clt eliooord adantl simpld
        elrpd rpne0d cz df-ne pcqcl adantlr anassrs sylan2br reexpclzd fmptd 0z
        ifclda zq ax-mp iftrue c0ex fvmpt w3a 3ad2ant1 3impb expgt0 eqeq1 oveq2
        oveq2d ifbieq2d ovex ifex 3ad2ant2 simp3 neneqd iffalsed eqtrd breqtrrd
        syl3anc pcqmul 3adant1r cc recnd 3adant3 simp1l syl2anc syl qcn oveq12d
        syl12anc zred crp ltexp2rd notbid lenltd 3bitr4d biimpa syldan rpexpcld
        pcadd rpge0d mpbid letrd simp3l simp3r expaddz syl22anc mulne0d 3eqtr4d
        simp2l qmulcl simp2r 3expb breq1d qaddcl simpl1 readdcld simprd addcomd
        ifnefalse addge01d addge02d lecasei eqbrtrd rpaddcld pm2.61ne 3brtr4d
        isabvd ) CUCJZFKURUDLZJZMZUAUBBNUFDUEEKBDUGUHOUVIHUINDUJUHOUVIDGUKUINUL
        JZUFDUMUHOUVIUNNUFUODULGUPUQUSUVJUEDUTUHOUVIUNNUODUEULGVAVBUSKDVCUHOUVI
        DGVDUIDVEJDVFJUVIDGVGDVHUSUVIANAVIZKOZKFCUVKPLZQLZVJZVKEUVIUVKNJZMZUVLK
        UVNVKUVQUVLMVLUVQUVLVMZMFUVMUVIFVKJZUVPUVRUVIUVGVKFKURVNUVFUVHVOVPZVQUV
        IFKVRZUVPUVRUVIFUVIFUVTUVIKFVSRZFURVSRZUVHUWBUWCMUVFFKURVTWAZWBZWCZWDZV
        QUVRUVQUVKKVRZUVMWEJZUVKKWFUVIUVPUWHUWIUVFUVPUWHMUWIUVHCUVKWGWHWIWJWKWN
        IWLKNJZKEUHKOUVIKWEJUWJWMKWOWPAKUVOKNEUVLKUVNWQIWRWSUSUVIUAVIZNJZUWKKVR
        ZWTZKFCUWKPLZQLZUWKEUHZVSUWNUVSUWOWEJZUWBKUWPVSRUVIUWLUVSUWMUVTXAUVIUWL
        UWMUWRUVFUWLUWMMZUWRUVHCUWKWGWHZXBUVIUWLUWBUWMUWEXAFUWOXCXPUWNUWQUWKKOZ
        KUWPVJZUWPUWLUVIUWQUXBOUWMAUWKUVOUXBNEUVKUWKOZUVLUXAUVNUWPKUVKUWKKXDUXC
        UVMUWOFQUVKUWKCPXEXFXGIUXAKUWPWRFUWOQXHXIWSXJUWNUXAKUWPUWNUWKKUVIUWLUWM
        XKXLXMXNZXOUVIUWSUBVIZNJZUXEKVRZMZWTZFCUWKUXEUELZPLZQLZUWPFCUXEPLZQLZUE
        LZUXJEUHZUWQUXEEUHZUELUXIUXLFUWOUXMUFLZQLZUXOUXIUXKUXRFQUVFUWSUXHUXKUXR
        OUVHUWKUXECXQXRXFUXIFXSJZUWAUWRUXMWEJZUXSUXOOUVIUWSUXTUXHUVIFUVTXTXAUVI
        UWSUWAUXHUWGXAZUVIUWSUWRUXHUWTYAZUXIUVFUXFUXGUYAUVFUVHUWSUXHYBZUVIUWSUX
        FUXGUUAZUVIUWSUXFUXGUUBZCUXEWGYGZFUWOUXMUUCUUDXNUXIUXPUXJKOZKUXLVJZUXLU
        XIUXJNJZUXPUYIOUXIUWLUXFUYJUVIUWLUWMUXHUUGZUYEUWKUXEUUHYCAUXJUVOUYINEUV
        KUXJOZUVLUYHUVNUXLKUVKUXJKXDUYLUVMUXKFQUVKUXJCPXEXFXGIUYHKUXLWRFUXKQXHX
        IWSYDUXIUYHKUXLUXIUXJKUXIUWKUXEUXIUWLUWKXSJUYKUWKYEYDZUXIUXFUXEXSJUYEUX
        EYEYDZUVIUWLUWMUXHUUIUYFUUEXLXMXNUXIUWQUWPUXQUXNUEUVIUWSUWQUWPOZUXHUVIU
        WLUWMUYOUXDUUJYAZUXIUXQUXEKOZKUXNVJZUXNUXIUXFUXQUYROUYEAUXEUVOUYRNEUVKU
        XEOZUVLUYQUVNUXNKUVKUXEKXDUYSUVMUXMFQUVKUXECPXEXFXGIUYQKUXNWRFUXMQXHXIW
        SYDUXIUYQKUXNUXIUXEKUYFXLXMXNZYFUUFUXIUWKUXEUFLZKOZKFCVUAPLZQLZVJZUWPUX
        NUFLZVUAEUHZUWQUXQUFLSUXIVUEVUFSRKVUFSRVUAKVUBVUEKVUFSVUBKVUDWQUUKUXIVU
        AKVRZMZVUEVUDVUFSVUHVUEVUDOUXIVUAKKVUDUUQWAVUIVUDVUFSRUWOUXMVUIUWOUXIUW
        RVUHUYCTZYHZVUIUXMUXIUYAVUHUYGTZYHZVUIUWOUXMSRZMZVUDUWPVUFVUOFVUCUXIUVS
        VUHVUNUVIUWSUVSUXHUVTXAVQZUXIUWAVUHVUNUYBVQZVUIVUCWEJZVUNVUIUVFVUANJZVU
        HVURUXIUVFVUHUYDTZUXIVUSVUHUXIUWLUXFVUSUYKUYEUWKUXEUULYCZTUXIVUHVOCVUAW
        GYGZTWKVUOFUWOVUPVUQVUIUWRVUNVUJTWKVUIVUFVKJZVUNVUIUWPUXNVUIFUWOVUIUVIU
        VSUVIUWSUXHVUHUUMZUVTYDZVUIUVIUWAVVDUWGYDZVUJWKZVUIFUXMVVEVVFVULWKZUUNZ
        TVUIVUNUWOVUCSRZVUDUWPSRZVUOUWKUXECVUIUVFVUNVUTTUXIUWLVUHVUNUYKVQUXIUXF
        VUHVUNUYEVQVUIVUNVOYQVUIVVJVVKVUIVUCUWOVSRZVMUWPVUDVSRZVMVVJVVKVUIVVLVV
        MVUIFVUCUWOVUIUVIFYIJZVVDUWFYDZVUJVVBVUIUVIUWCVVDUVIUWBUWCUWDUUOYDZYJYK
        VUIUWOVUCVUKVUIVUCVVBYHZYLVUIVUDUWPVUIFVUCVVEVVFVVBWKZVVGYLYMYNYOVUIUWP
        VUFSRZVUNVUIKUXNSRVVSVUIUXNUXIUXNYIJVUHUXIFUXMUVIUWSVVNUXHUWFXAZUYGYPZT
        YRVUIUWPUXNVVGVVHUURYSTYTVUIUXMUWOSRZMZVUDUXNVUFVUIVUDVKJVWBVVRTVUIUXNV
        KJVWBVVHTVUIVVCVWBVVITVUIVWBUXMVUCSRZVUDUXNSRZVWCUXMCUXEUWKUFLZPLZVUCSV
        WCUXEUWKCVUIUVFVWBVUTTUXIUXFVUHVWBUYEVQUXIUWLVUHVWBUYKVQVUIVWBVOYQUXIVU
        CVWGOVUHVWBUXIVUAVWFCPUXIUWKUXEUYMUYNUUPXFVQXOVUIVWDVWEVUIVUCUXMVSRZVMU
        XNVUDVSRZVMVWDVWEVUIVWHVWIVUIFVUCUXMVVOVULVVBVVPYJYKVUIUXMVUCVUMVVQYLVU
        IVUDUXNVVRVVHYLYMYNYOVUIUXNVUFSRZVWBVUIKUWPSRVWJVUIUWPUXIUWPYIJVUHUXIFU
        WOVVTUYCYPZTYRVUIUXNUWPVVHVVGUUSYSTYTUUTUVAUXIVUFUXIUWPUXNVWKVWAUVBYRUV
        CUXIVUSVUGVUEOVVAAVUAUVOVUENEUVKVUAOZUVLVUBUVNVUDKUVKVUAKXDVWLUVMVUCFQU
        VKVUACPXEXFXGIVUBKVUDWRFVUCQXHXIWSYDUXIUWQUWPUXQUXNUFUYPUYTYFUVDUVE $.
    $}

    padic.j $e |- J = ( q e. Prime |-> ( x e. QQ |->
      if ( x = 0 , 0 , ( q ^ -u ( q pCnt x ) ) ) ) ) $.
    $( The p-adic absolute value is an absolute value.  (Contributed by Mario
       Carneiro, 9-Sep-2014.) $)
    padicabvf $p |- J : Prime --> A $=
      ( vp cprime cv wcel cq cc0 co cexp cif cmpt c1 wa wf wfn cfv wral cpc qex
      wceq cneg mptex fnmpti padicfval wn cn prmnn ad2antrr nncnd nnne0d wne cz
      cdiv df-ne pcqcl anassrs sylan2br expnegd exprecd ifeq2da mpteq2dva eqtrd
      eqtr4d cr clt wbr nnrecred nnred prmgt1 recgt1i syl2anc simpld simprd cxr
      cioo w3a 0xr 1re rexri elioo2 mp2an syl3anbrc eqid padicabv mpdan eqeltrd
      wb rgen ffnfv mpbir2an ) JBDUADJUBIKZDUCZBLZIJUDEJAMAKZNUGZNEKZXCXAUEOUHP
      OQZRDAMXDUFUIHUJWTIJWRJLZWSAMXBNSWRUTOZWRXAUEOZPOZQZRZBXEWSAMXBNWRXGUHPOZ
      QZRXJAWRDEHUKXEAMXLXIXEXAMLZTZXBXKXHNXNXBULZTZXKSWRXGPOUTOXHXPWRXGXPWRXEW
      RUMLXMXOWRUNZUOZUPZXPWRXRUQZXOXNXANURZXGUSLZXANVAXEXMYAYBWRXAVBVCVDZVEXPW
      RXGXSXTYCVFVJVGVHVIXEXFNSWBOLZXJBLXEXFVKLZNXFVLVMZXFSVLVMZYDXEWRXQVNXEYFY
      GXEWRVKLSWRVLVMYFYGTXEWRXQVOWRVPWRVQVRZVSXEYFYGYHVTNWALSWALYDYEYFYGWCWNWD
      SWEWFNSXFWGWHWIABWRCXJXFFGXJWJWKWLWMWOIJBDWPWQ $.

    $( All positive powers of the p-adic absolute value are absolute values.
       (Contributed by Mario Carneiro, 9-Sep-2014.) $)
    padicabvcxp $p |- ( ( P e. Prime /\ R e. RR+ ) ->
      ( y e. QQ |-> ( ( ( J ` P ) ` y ) ^c R ) ) e. A ) $=
      ( wcel wa ccxp co cc0 adantr c1 clt wbr cprime crp cfv cmpt wceq cneg cpc
      cq cv cexp cif padicval adantlr oveq1d ovif rpre adantl recnd rpne0 0cxpd
      cr wne ifeq1d syl5eq wn df-ne cmul cc pcqcl zcnd mulneg12 syl2anc mulcomd
      cz negcld eqtrd oveq2d cn c2 cuz prmuz2 eluz2b2 sylib simpld znegcld zred
      nnrpd cxpmuld renegcld 3eqtr3d nnred nnne0d cxpexpzd rpcxpcld syl anassrs
      rpcnd sylan2br ifeq2da 3eqtrd mpteq2dva cioo rpgt0 lt0neg2d simprd cxpltd
      mpbid 0red cxp0d breqtrd cxr w3a wb 0xr rexri elioo2 mp2an syl3anbrc eqid
      1re padicabv syldan eqeltrd ) DUALZFUBLZMZBUHBUIZDGUCUCZFNOZUDBUHYGPUEZPD
      FUFZNOZDYGUGOZUJOZUKZUDZCYFBUHYIYOYFYGUHLZMZYIYJPDYMUFZUJOZUKZFNOZYJPYTFN
      OZUKZYOYRYHUUAFNYDYQYHUUAUEYEADGYGHKULUMUNYRUUBYJPFNOZUUCUKUUDYJPYTFNUOYR
      YJUUEPUUCYFUUEPUEYQYFFYFFYEFVALYDFUPUQZURZYEFPVBYDFUSUQUTQVCVDYRYJUUCYNPY
      JVEYRYGPVBZUUCYNUEZYGPVFYFYQUUHUUIYFYQUUHMZMZDYSNOZFNOZYLYMNOZUUCYNUUKDYS
      FVGOZNODYKYMVGOZNOUUMUUNUUKUUOUUPDNUUKUUOYMYKVGOZUUPUUKYMVHLFVHLZUUOUUQUE
      UUKYMYDUUJYMVNLYEDYGVIUMZVJZYFUURUUJUUGQZYMFVKVLUUKYMYKUUTUUKFUVAVOVMVPVQ
      UUKDYSFYFDUBLUUJYFDYFDVRLZRDSTZYFDVSVTUCLZUVBUVCMYDUVDYEDWAQDWBWCZWDZWGZQ
      ZUUKYSUUKYMUUSWEZWFUVAWHUUKDYKYMUVHYFYKVALUUJYFFUUFWIZQUUTWHWJUUKUULYTFNU
      UKDYSYFDVHLUUJYFDYFDUVFWKZURZQYFDPVBUUJYFDUVFWLQUVIWMUNUUKYLYMUUKYLYFYLUB
      LZUUJYFDYKUVGUVJWNZQZWQUUKUVMYLPVBUVOYLUSWOUUSWMWJWPWRWSWTXAYDYEYLPRXBOLZ
      YPCLYFYLVALZPYLSTZYLRSTZUVPYFUVMUVQUVNYLUPWOYFUVMUVRUVNYLXCWOYFYLDPNOZRSY
      FYKPSTZYLUVTSTYFPFSTZUWAYEUWBYDFXCUQYFFUUFXDXGYFDYKPUVKYFUVBUVCUVEXEUVJYF
      XHXFXGYFDUVLXIXJPXKLRXKLUVPUVQUVRUVSXLXMXNRXTXOPRYLXPXQXRBCDEYPYLIJYPXSYA
      YBYC $.

    ostth.k $e |- K = ( x e. QQ |-> if ( x = 0 , 0 , 1 ) ) $.
    $d x F $.
    ${
      ostth.1 $e |- ( ph -> F e. A ) $.
      ${
        ostth1.2 $e |- ( ph -> A. n e. NN -. 1 < ( F ` n ) ) $.
        ostth1.3 $e |- ( ph -> A. n e. Prime -. ( F ` n ) < 1 ) $.
        $( - Lemma for ~ ostth : trivial case.  (Not that the proof is trivial,
           but that we are proving that the function is trivial.)  If ` F ` is
           equal to ` 1 ` on the primes, then by complete induction and the
           multiplicative property ~ abvmul of the absolute value, ` F ` is
           equal to ` 1 ` on all the integers, and ~ ostthlem1 extends this to
           the other rational numbers.  (Contributed by Mario Carneiro,
           10-Sep-2014.) $)
        ostth1 $p |- ( ph -> F = K ) $=
          ( wcel cc0 c1 wceq cdr qdrng cq qrngbas qrng0 abvtriv mp1i cprime cfv
          cv wa clt wbr wn r19.21bi cn prmnn sylan2 cr nnq syl abvcl syl2an 1re
          lttri3 sylancl mpbir2and adantl cif eqeq1 ifbid c0ex ifex fvmpt nnne0
          wb 1ex neneqd iffalsed eqtrd eqtr4d ostthlem2 ) ACDFHEJKNDUAQHCQADJUB
          BCUCDHRKDJUDZDJUEMUFUGAEUJZUHQZUKZWDFUIZSWDHUIZWFWGSTZWGSULUMUNZSWGUL
          UMUNZAWJEUHPUOWEAWDUPQZWKWDUQZAWKEUPOUOURWFWGUSQZSUSQWIWJWKUKVPAFCQWD
          UCQZWNWENWEWLWOWMWDUTZVACUCDFWDKWCVBVCVDWGSVEVFVGWFWLWHSTWEWLAWMVHWLW
          HWDRTZRSVIZSWLWOWHWRTWPBWDBUJZRTZRSVIWRUCHWSWDTWTWQRSWSWDRVJVKMWQRSVL
          VQVMVNVAWLWQRSWLWDRWDVOVRVSVTVAWAWB $.
      $}

      ${
        ostth2.2 $e |- ( ph -> N e. ( ZZ>= ` 2 ) ) $.
        ostth2.3 $e |- ( ph -> 1 < ( F ` N ) ) $.
        ostth2.4 $e |- R = ( ( log ` ( F ` N ) ) / ( log ` N ) ) $.
        ${
          ostth2.5 $e |- ( ph -> M e. ( ZZ>= ` 2 ) ) $.
          ostth2.6 $e |- S = ( ( log ` ( F ` M ) ) / ( log ` M ) ) $.
          ostth2.7 $e |- T = if ( ( F ` M ) <_ 1 , 1 , ( F ` M ) ) $.
          $( Lemma for ~ ostth2 .  (Contributed by Mario Carneiro,
             10-Sep-2014.) $)
          ostth2lem2 $p |- ( ( ph /\ X e. NN0 /\
            Y e. ( 0 ... ( ( M ^ X ) - 1 ) ) ) ->
              ( F ` Y ) <_ ( ( M x. X ) x. ( T ^ X ) ) ) $=
            ( vk vn vj cn0 wcel cc0 cexp co c1 cmin cfz cfv cmul cle wa cv wral
            wbr wi caddc wceq oveq1d oveq2d oveq12d breq2d raleqbidv imbi2d weq
            oveq2 c2 cuz eluz2nn syl nncnd exp0d 1m1e0 syl6eq eleq2d 0le0 qrng0
            cn a1i abv0 mul01d cc cif cr 1re qrngbas abvcl syl2anc ifcl sylancr
            nnq syl5eqel recnd 0nn0 expcl sylancl mul02d 3brtr4d elfz1eq fveq2d
            cq eqtrd breq1d syl5ibrcom ralrimiv fveq2 cbvralv ad2antrr ad2antrl
            sylbid cz zq nnexpcld reexpcld zred remulcld nnred ad2antlr cvv qex
            ccnfld ax-mp syl3anc nngt0d wb nnzd mpbid syl112anc letrd syl6breqr
            clt cmo cdiv elfzelz simplr zmodcld nn0zd nndivred readdcld nn0p1nn
            cfl flcld peano2nn0 qmulcl cplusg ressplusg abvtri crp nnrpd modval
            cnfldadd qcn npcand cnfldmul ressmulr abvmul qabvexp 3brtr3d zmodfz
            cmulr nn0re simprr rspcv sylc mulcomd abvge0 expge0d elfzle1 divge0
            syl22anc flge0nn0 qabvle w3a simprl elfzm11 simp3d breqtrd ltdivmul
            0z expp1d mpbird fllt ltled lemul1ad eqbrtrd nnnn0d nn0ge0d leexp1a
            max1 syl32anc lemul2ad le2addd nn0cn adddid mulid1d mulcld breqtrrd
            1cnd adddird max2 nn0z uzid peano2uz leexp2ad lemul2 expr ralrimdva
            nnmulcld syl5bi expcom a2d nn0ind impcom rspccv 3impia ) AMUJUKZNUL
[encoded data, 5040 characters]
            UYONHXOXLUYCVSUYD $.

          ostth2.8 $e |- U = ( ( log ` N ) / ( log ` M ) ) $.
          $( Lemma for ~ ostth2 .  (Contributed by Mario Carneiro,
             10-Sep-2014.) $)
          ostth2lem3 $p |- ( ( ph /\ X e. NN ) ->
            ( ( ( F ` N ) / ( T ^c U ) ) ^ X ) <_
            ( X x. ( ( M x. T ) x. ( U + 1 ) ) ) ) $=
            ( cn wcel wa cfv ccxp co cdiv cexp cmul c1 caddc cle cr clt wbr cuz
            cq c2 eluz2b2 sylib simpld nnq syl qrngbas abvcl syl2anc adantr cif
            recnd 1re ifcl sylancr syl5eqel cc0 0red 1red 0lt1 a1i max2 ltletrd
            syl6breqr elrpd rpge0d clog nnred simprd rplogcld rpdivcld recxpcld
            crp rpred rpcxpcld rpne0d cn0 nnnn0 adantl expdivd cfl reexpcl nnre
            syl2an remulcld nn0ge0d flge0nn0 peano2nn0 nn0red reexpcld peano2re
            mulge0d wceq qabvexp syl3anc cmin ce cc mulcld eqbrtrrd wb mpbid cz
            nnrpd reexplog mpbird oveq2d eqtrd lemul2 syl112anc breqtrd eqbrtrd
            letrd cxpexp mulgt0d mul12d cfz divassd oveq2i oveq1d eqtr3d flltp1
            syl6eqr divcan1d ltmul1dd nnz nn0zd 3brtr4d nnexpcl nnexpcld nnnn0d
            eflt nnltlem1 nn0uz syl6eleq nnzd peano2zm ostth2lem2 3expia syldan
            elfz5 wi mpd leadd1dd nnge1 leadd2dd adddid mulid1d breqtrrd nngt0d
            expgt0 lemul1 remulcl mulcomd cxplead cxpmuld 3brtr3d lemul1d nngt0
            flle expp1d rpgt0d ltp1d lttrd mul32d rpexpcld ledivmuld ) ANUHUIZU
            JZMIUKZGHULUMZUNUMNUOUMUWNNUOUMZUWONUOUMZUNUMZNLGUPUMZHUQURUMZUPUMZ
            UPUMZUSUWMUWNUWONUWMUWNAUWNUTUIZUWLAICUIZMVDUIZUXCTAMUHUIZUXEAUXFUQ
            MVAVBZAMVEVCUKZUIUXFUXGUJUAMVFVGZVHZMVIVJZCVDDIMQDPVKZVLVMZVNVPUWMU
            WOUWMGHAGUTUIZUWLAGLIUKZUQUSVBZUQUXOVOZUTUFAUQUTUIZUXOUTUIZUXQUTUIV
            QAUXDLVDUIZUXSTALUHUIZUXTAUYAUQLVAVBZALUXHUIUYAUYBUJUDLVFVGZVHZLVIV
            JCVDDILQUXLVLVMZUXPUQUXOUTVRVSVTZVNZUWMGUWMGUYGAWAGVAVBZUWLAWAUQGAW
            BAWCZUYFWAUQVAVBAWDWEAUQUXQGUSAUXSUXRUQUXQUSVBUYEUYIUXOUQWFVMUFWHZW
            GVNZWIZWJAHUTUIZUWLAHAHMWKUKZLWKUKZUNUMZWQUGAUYNUYOAMAMUXJWLAUXFUXG
            UXIWMWNZALALUYDWLAUYAUYBUYCWMWNZWOVTZWRZVNZWPZVPZUWMUWOUWMGHUYLVUAW
            SZWTUWLNXAUIZANXBZXCZXDUWMUWRUXBUSVBUWPUWQUXBUPUMZUSVBUWMUWPLNUWTUP
            UMZUPUMZUWQGUPUMZUPUMZVUHUSUWMUWPLNHUPUMZXEUKZUQURUMZUPUMZGVUOUOUMZ
            UPUMZVULAUXCVUEUWPUTUIUWLUXMVUFUWNNXFXHZUWMVUPVUQUWMLVUOUWMLAUYAUWL
            UYDVNZWLZUWMVUOUWMVUNXAUIZVUOXAUIZUWMVUMUTUIZWAVUMUSVBVVBUWMNHUWLNU
            TUIZANXGZXCZVUAXIZUWMNHVVGVUAUWMNVUGXJAWAHUSVBUWLAHUYSWJVNXPVUMXKVM
            ZVUNXLVJZXMZXIZUWMGVUOUYGVVJXNZXIZUWMVUJVUKUWMLVUIVVAUWMNUWTVVGUWMU
            YMUWTUTUIVUAHXOVJZXIZXIZUWMUWQGUWMUWONVUBVUGXNZUYGXIZXIZUWMMNUOUMZI
            UKZUWPVURUSUWMUXDUXEVUEVWBUWPXQAUXDUWLTVNAUXEUWLUXKVNVUGCDIMNPQXRXS
            UWMVWAWALVUOUOUMZUQXTUMZUUAUMUIZVWBVURUSVBZUWMVWEVWAVWDUSVBZUWMVWAV
            WCVAVBZVWGUWMNUYNUPUMZYAUKZVUOUYOUPUMZYAUKZVWAVWCVAUWMVWIVWKVAVBZVW
            JVWLVAVBZUWMVUMUYOUPUMZVWIVWKVAUWMVWIUYOUNUMZUYOUPUMVWOVWIUWMVWPVUM
            UYOUPUWMVWPNUYPUPUMVUMUWMNUYNUYOUWMNVVGVPZAUYNYBUIUWLAUYNAUYNUYQWRZ
            VPVNZAUYOYBUIUWLAUYOAUYOUYRWRZVPVNZUWMUYOAUYOWQUIUWLUYRVNZWTZUUBHUY
            PNUPUGUUCUUGUUDUWMVWIUYOUWMNUYNVWQVWSYCVXAVXCUUHUUEUWMVUMVUOUYOVVHV
            VKVXBUWMVVDVUMVUOVAVBVVHVUMUUFVJUUIYDUWMVWIUTUIVWKUTUIVWMVWNYEUWMNU
            YNVVGAUYNUTUIUWLVWRVNXIUWMVUOUYOVVKAUYOUTUIUWLVWTVNXIVWIVWKUUPVMYFA
            MWQUINYGUIZVWAVWJXQUWLAMUXJYHNUUJZMNYIXHUWMLWQUIVUOYGUIZVWCVWLXQUWM
            LVUTYHUWMVUOVVJUUKZLVUOYIVMUULUWMVWAUHUIZVWCUHUIVWHVWGYEAUXFVUEVXHU
            WLUXJVUFMNUUMXHZUWMLVUOVUTVVJUUNZVWAVWCUUQVMYFUWMVWAWAVCUKZUIVWDYGU
            IZVWEVWGYEUWMVWAXAVXKUWMVWAVXIUUOUURUUSUWMVWCYGUIVXLUWMVWCVXJUUTVWC
            UVAVJVWAWAVWDUVEVMYJAUWLVVCVWEVWFUVFVVJAVVCVWEVWFABCDEFGIJKLMVUOVWA
            OPQRSTUAUBUCUDUEUFUVBUVCUVDUVGYDUWMVURVUJVUQUPUMZVULVVNUWMVUJVUQVVQ
            VVMXIVVTUWMVUPVUJUSVBZVURVXMUSVBZUWMVUOVUIUSVBZVXNUWMVUOVUMUQURUMZV
            UIVVKUWMVVDVXQUTUIVVHVUMXOVJVVPUWMVUNVUMUQUWMVUNVVIXMZVVHUWMWCZUWMV
            VDVUNVUMUSVBVVHVUMUWDVJZUVHUWMVXQVUMNURUMZVUIUSUWMUQNVUMVXSVVGVVHUW
            LUQNUSVBANUVIXCUVJUWMVUIVUMNUQUPUMZURUMVYAUWMNHUQVWQUWMHVUAVPZUWMUQ
            VXSVPUVKUWMVYBNVUMURUWMNVWQUVLYKYLUVMYQUWMVUOUTUIVUIUTUILUTUIWALVAV
            BVXPVXNYEVVKVVPVVAUWMLVUTUVNZVUOVUILYMYNYFUWMVUPUTUIVUJUTUIZVUQUTUI
            ZWAVUQVAVBZVXNVXOYEVVLVVQVVMUWMUXNVXFUYHVYGUYGVXGUYKGVUOUVOXSVUPVUJ
            VUQUVPYNYFUWMVUQVUKUSVBZVXMVULUSVBZUWMVUQGVUNUOUMZGUPUMZVUKUSUWMGVU
            NUWMGUYGVPZVVIUWEUWMVYJUWQUSVBVYKVUKUSVBUWMGVUNULUMZGHNUPUMZULUMZVY
            JUWQUSUWMGVUNVYNUYGAUQGUSVBUWLUYJVNVXRAUYMVVEVYNUTUIUWLUYTVVFHNUVQX
            HUWMVUNVUMVYNUSVXTUWMNHVWQVYCUVRYOUVSUWMGYBUIVVBVYMVYJXQVYLVVIGVUNY
            RVMUWMVYOUWONULUMZUWQUWMGHNUYLVUAVWQUVTUWMUWOYBUIVUEVYPUWQXQVUCVUGU
            WONYRVMYLUWAUWMVYJUWQGUWMGVUNUYGVVIXNVVRUYLUWBYFYPUWMVYFVUKUTUIVYEW
            AVUJVAVBVYHVYIYEVVMVVSVVQUWMLVUIVVAVVPVYDUWMNUWTVVGVVOUWLWANVAVBANU
            WCXCUWMWAHUWTUWMWBVUAVVOUWMHAHWQUIUWLUYSVNUWFUWMHVUAUWGUWHYSYSVUQVU
            KVUJYMYNYFYQYQUWMVULUWQVUJGUPUMZUPUMVUHUWMVUJUWQGUWMVUJVVQVPUWMUWQV
            VRVPVYLYTUWMVYQUXBUWQUPUWMVYQUWSVUIUPUMUXBUWMLVUIGUWMLVVAVPZUWMVUIV
            VPVPVYLUWIUWMUWSNUWTUWMLGVYRVYLYCVWQUWMUWTVVOVPYTYLYKYLYOUWMUWPUXBU
            WQVUSUWMNUXAVVGUWMUWSUWTUWMLGVVAUYGXIVVOXIXIUWMUWONVUDUWLVXDAVXEXCU
            WJUWKYJYP $.

          $( Lemma for ~ ostth2 .  (Contributed by Mario Carneiro,
             10-Sep-2014.) $)
          ostth2lem4 $p |- ( ph -> ( 1 < ( F ` M ) /\ R <_ S ) ) $=
            ( vn c1 cfv clt wbr cle wn cr wcel wb 1re cq cn c2 wa eluz2b2 sylib
            cuz simpld nnq syl qrngbas abvcl syl2anc ltnle sylancr ccxp co cmul
            mpbid cdiv caddc cif ifcl syl5eqel cc0 0red a1i 0lt1 max2 syl6breqr
            sylancl ltletrd elrpd clog nnrpd relogcld nnred rplogcld rerpdivcld
            rpcxpcld remulcld peano2re cv ostth2lem3 ostth2lem1 ledivmuld rpcnd
            simprd mulid1d breqtrd adantr iftrue syl5eq oveq1d sylan9eqr mpbird
            recnd 1cxpd mtand lttrd reeflogd wceq iffalse rpne0d cxpefd 3brtr4d
            ce eqtr2d efle div12d oveq2i syl6eqr mulcomd eqtrd breqtrrd 3brtr4g
            jca ) AUHLIUIZUJUKZEFULUKAYPYOUHULUKZUMZAYQMIUIZUHULUKZAUHYSUJUKZYT
            UMZUAAUHUNUOZYSUNUOZUUAUUBUPUQAICUOZMURUOZUUDSAMUSUOZUUFAUUGUHMUJUK
            ZAMUTVDUIZUOUUGUUHVATMVBVCZVEZMVFVGCURDIMPDOVHZVIVJZUHYSVKVLVPAYQVA
            YSGHVMVNZUHULAYSUUNULUKYQAYSUUNUHVOVNZUUNULAYSUUNVQVNZUHULUKYSUUOUL
            UKAUUPLGVOVNZHUHVRVNZVOVNUGAYSUUNUUMAGHAGAGYQUHYOVSZUNUEAUUCYOUNUOZ
            UUSUNUOUQAUUELURUOZUUTSALUSUOZUVAAUVBUHLUJUKZALUUIUOUVBUVCVAUCLVBVC
            ZVEZLVFVGCURDILPUULVIVJZYQUHYOUNVTVLWAZAWBUHGAWCZUUCAUQWDZUVGWBUHUJ
            UKAWEWDZAUHUUSGULAUUTUUCUHUUSULUKUVFUQYOUHWFWHUEWGWIWJAHMWKUIZLWKUI
            ZVQVNZUNUFAUVKUVLAMAMUUKWLWMZALALUVEWNZAUVBUVCUVDXEWOZWPWAZWQZWPAUU
            QUURALGUVOUVGWRAHUNUOUURUNUOUVQHWSVGWRABCDEFGHIJKLMUGWTNOPQRSTUAUBU
            CUDUEUFXAXBAYSUHUUNUUMUVIUVRXCVPAUUNAUUNUVRXDXFXGZXHYQAUUNUHHVMVNUH
            YQGUHHVMYQGUUSUHUEYQUHYOXIXJXKAHAHUVQXNZXOXLXGXPZAUUCUUTYPYRUPUQUVF
            UHYOVKVLXMZAYSWKUIZUVKVQVNZYOWKUIZUVLVQVNZEFULAUWDUWFULUKUWCUVKUWFV
            OVNZULUKAUWCHUWEVOVNZUWGULAUWCUWHULUKZUWCYDUIZUWHYDUIZULUKZAYSUUNUW
            JUWKULUVSAYSAYSUUMAWBUHYSUVHUVIUUMUVJUAXQWJZXRAUUNYOHVMVNUWKAGYOHVM
            AYRGYOXSUWAYRGUUSYOUEYQUHYOXTXJVGXKAYOHAYOUVFXNAYOAYOUVFAWBUHYOUVHU
            VIUVFUVJUWBXQWJZYAUVTYBYEYCAUWCUNUOUWHUNUOUWIUWLUPAYSUWMWMZAHUWEUVQ
            AYOUWNWMZWRUWCUWHYFVJXMAUWGUWEHVOVNZUWHAUWGUWEUVMVOVNUWQAUVKUWEUVLA
            UVKUVNXNAUWEUWPXNZAUVLUVPXDAUVLUVPYAYGHUVMUWEVOUFYHYIAUWEHUWRUVTYJY
            KYLAUWCUWFUVKUWOAUWEUVLUWPUVPWPAMAMUUKWNAUUGUUHUUJXEWOXCXMUBUDYMYN
            $.
        $}

        $( - Lemma for ~ ostth : regular case.  (Contributed by Mario Carneiro,
           10-Sep-2014.) $)
        ostth2 $p |- ( ph -> E. a e. ( 0 (,] 1 )
          F = ( y e. QQ |-> ( ( abs ` y ) ^c a ) ) ) $=
          ( vz cc0 c1 cioc co wcel cq cv cabs cfv ccxp cmpt wceq cr clt wbr cle
          wrex clog crp cn c2 cuz wa eluz2b2 sylib simpld nnq syl qrngbas abvcl
          cdiv syl2anc rplogcld nnred simprd rpdivcld syl5eqel rpred rpgt0d cn0
          ce nnnn0d qabvle wne nnne0d qrng0 abvgt0 syl3anc elrpd reeflogd nnrpd
          cmul 3brtr4d wb relogcld efle mpbird rpcnd mulid1d breqtrrd ledivmuld
          1red syl5eqbr cxr w3a 0xr elioc2 mp2an syl3anbrc qabsabv fvres oveq1d
          1re cres mpteq2ia eqcomi abvcxp sylancr cz eluzelz zq fveq2 eqid ovex
          fvmpt 3syl adantl simpr nn0ge0d absidd recnd adantr cxpefd ostth2lem4
          cc cif ef0 0re eflt gt0ne0d redivcld letri3d mpbir2and divcan1d eqtrd
          fveq2d 3eqtrd 3eqtrrd ostthlem1 oveq2 mpteq2dv eqeq2d rspcev ) AFUBUC
          UDUEZUFZGCUGCUHZUIUJZFUKUEZULZUMZGCUGUURLUHZUKUEZULZUMZLUUOURAFUNUFZU
          BFUOUPZFUCUQUPZUUPAFAFJGUJZUSUJZJUSUJZVLUEZUTTAUVJUVKAUVIAGDUFZJUGUFZ
          UVIUNUFQAJVAUFZUVNAUVOUCJUOUPZAJVBVCUJZUFZUVOUVPVDRJVEVFZVGZJVHVIZDUG
          EGJNEMVJZVKVMZSVNZAJAJUVTVOAUVOUVPUVSVPVNZVQVRZVSZAFUWFVTAFUVLUCUQTAU
          VLUCUQUPUVJUVKUCWMUEZUQUPAUVJUVKUWHUQAUVJUVKUQUPZUVJWBUJZUVKWBUJZUQUP
          ZAUVIJUWJUWKUQAUVMJWAUFUVIJUQUPQAJUVTWCDEGJMNWDVMAUVIAUVIUWCAUVMUVNJU
          BWEUBUVIUOUPQUWAAJUVTWFDUGEGJUBNUWBEMWGZWHWIWJWKAJAJUVTWLZWKWNAUVJUNU
          FUVKUNUFUWIUWLWOAUVJUWDVSZAJUWNWPUVJUVKWQVMWRAUVKAUVKUWEWSWTXAAUVJUCU
          VKUWOAXCUWEXBWRXDUBXEUFUCUNUFUUPUVFUVGUVHXFWOXGXNUBUCFXHXIXJZADEUAGUU
          TMNQAUIUGXOZDUFUUPUUTDUFDEMNXKUWPCDUGEFUWQUUTNUWBCUGUUQUWQUJZFUKUEZUL
          UUTCUGUWSUUSUUQUGUFUWRUURFUKUUQUGUIXLXMXPXQXRXSAUAUHZUVQUFZVDZUWTUUTU
          JZUWTUIUJZFUKUEZUWTFUKUEZUWTGUJZUXAUXCUXEUMZAUXAUWTXTUFZUWTUGUFZUXHVB
          UWTYAZUWTYBZCUWTUUSUXEUGUUTUUQUWTUMUURUXDFUKUUQUWTUIYCXMUUTYDUXDFUKYE
          YFYGYHUXBUXDUWTFUKUXBUWTUXBUWTUXBUWTVAUFZUCUWTUOUPZUXBUXAUXMUXNVDAUXA
          YIZUWTVEVFZVGZVOZUXBUWTUXBUWTUXQWCYJYKXMUXBUXFFUWTUSUJZWMUEZWBUJUXGUS
          UJZWBUJUXGUXBUWTFUXBUWTUXRYLUXBUWTUXQWFZAFYPUFUXAAFUWFWSYMYNUXBUXTUYA
          WBUXBUXTUYAUXSVLUEZUXSWMUEUYAUXBFUYCUXSWMUXBFUYCUMFUYCUQUPZUYCFUQUPZU
          XBUCUXGUOUPZUYDUXBBDEFUYCUXGUCUQUPUCUXGYQZUVKUXSVLUEZGHIUWTJKMNOPAUVM
          UXAQYMZAUVRUXARYMZAUCUVIUOUPZUXASYMTUXOUYCYDZUYGYDUYHYDYOZVPUXBUYKUYE
          UXBBDEUYCFUVIUCUQUPUCUVIYQZUXSUVKVLUEZGHIJUWTKMNOPUYIUXOUXBUYFUYDUYMV
          GUYLUYJTUYNYDUYOYDYOVPUXBFUYCAUVFUXAUWGYMUXBUYAUXSUXBUXGUXBUXGUXBUVMU
          XJUXGUNUFUYIUXBUXIUXJUXAUXIAUXKYHUXLVIZDUGEGUWTNUWBVKVMUXBUVMUXJUWTUB
          WEUBUXGUOUPUYIUYPUYBDUGEGUWTUBNUWBUWMWHWIWJZWPZUXBUWTUXBUWTUXQWLZWPZU
          XBUXSUXBUBUXSUOUPZUBWBUJZUXSWBUJZUOUPZUXBVUBUCVUCUOYRUXBUCUWTVUCUOUXB
          UXMUXNUXPVPUXBUWTUYSWKXAXDUXBUBUNUFUXSUNUFVUAVUDWOYSUYTUBUXSYTXSWRUUA
          ZUUBUUCUUDXMUXBUYAUXSUXBUYAUYRYLUXBUXSUYTYLVUEUUEUUFUUGUXBUXGUYQWKUUH
          UUIUUJUVEUVALFUUOUVBFUMZUVDUUTGVUFCUGUVCUUSUVBFUURUKUUKUULUUMUUNVM $.
      $}

      ${
        ostth3.2 $e |- ( ph -> A. n e. NN -. 1 < ( F ` n ) ) $.
        ostth3.3 $e |- ( ph -> P e. Prime ) $.
        ostth3.4 $e |- ( ph -> ( F ` P ) < 1 ) $.
        ostth3.5 $e |- R = -u ( ( log ` ( F ` P ) ) / ( log ` P ) ) $.
        ostth3.6 $e |- S =
          if ( ( F ` P ) <_ ( F ` p ) , ( F ` p ) , ( F ` P ) ) $.
        $( - Lemma for ~ ostth : p-adic case.  (Contributed by Mario Carneiro,
           10-Sep-2014.) $)
        ostth3 $p |- ( ph -> E. a e. RR+
          F = ( y e. QQ |-> ( ( ( J ` P ) ` y ) ^c a ) ) ) $=
          ( vk vb crp wcel cq cv ccxp co cmpt wceq wrex clog cdiv cneg cr cn c1
          cfv clt wbr c2 wa cprime syl nnq abvcl syl2anc cc0 wne nnne0d syl3anc
          abvgt0 elrpd syl5eqel cmul wb sylancl mpbid breqtrrd mpbird syl6breqr
          rpcnd wi fveq2 oveq1d eqid ovex cpc cexp cif padicval neneqd iffalsed
          fvmpt oveq2d negeqd a1i 3eqtrd recnd eqtrd rpne0d adantr ad2antlr weq
          cz ce cc ad2antrr wn syl2an 2re adantrr simprr breq1 adantl ad3antrrr
          cle cgcd caddc nnexpcl nnzd mpd zq qmulcl rpred cvv qex ad2antrl wral
          breq1d 1re rspcv sylc letrd eqbrtrd cuz prmuz2 eluz2b2 simpld qrngbas
          sylib qrng0 relogcld nnred simprd rplogcld rerpdivcld renegcld logltb
          1rp log1 syl6breq mul01d 0red ltdivmuld lt0neg1d padicabvcxp nncnd 1z
          exp1d eqtr3d neg1z cxpexpzd eqtr4d mulm1d negeqi negnegd syl5eq nnrpd
          pcid neg1rr cxpmuld cxpefd divcan1d fveq2d reeflogd 3eqtr3d syl5ibcom
          3eqtrrd eqeq12d prmnn 1cxpd cdvds pceq0 dvdsprm sylan necon3bbid neg0
          bitrd biimpar syl6eq exp0d ifcld rprecred ifboth syl5eqbr reclt1d nnz
          expnbnd exprecd qrng1 abv1z cn0 nnnn0 bezout simprl prmrp simpr rppwr
          ax-1ne0 simplr eqeq1d simprrl simprrr qaddcl readdcld rpexpcl remulcl
          cplusg ccnfld cnfldadd ressplusg ax-mp abvtri cmulr cnfldmul ressmulr
          sylancr abvmul qabvexp reexpcld remulcld w3o elz abv0 0le1 syl5ibrcom
          simprbi syl6eqbr lenlt ralbidva rspccv cminusg abvneg qrngneg eqeltrd
          eqbrtrrd expr 3jaod ralrimiva expgt0 lemul2 syl112anc mulid1d breqtrd
          rsp rpge0d leexp1a syl32anc le2addd 2timesd sylbid anassrs rexlimdvva
          max1 max2 rpregt0d ledivmul2 mp3an12 reexpcl pm2.21d rexlimdva breq2d
          pm2.01d notbid lttri3 mpbir2and 3eqtr4d eqtr2d ex pm2.61dne ostthlem2
          oveq2 mpteq2dv eqeq2d rspcev ) AGUHUIZJCUJCUKZEKVCZVCZGULUMZUNZUOZJCU
[encoded data, 7280 characters]
          ICUJVWTVWPVWSGVWOULVWHVWIVWJVWKVL $.
      $}
    $}

    $( Ostrowski's theorem, which classifies all absolute values on ` QQ ` .
       Any such absolute value must either be the trivial absolute value
       ` K ` , a constant exponent ` 0 < a <_ 1 ` times the regular absolute
       value, or a positive exponent times the p-adic absolute value.
       (Contributed by Mario Carneiro, 10-Sep-2014.) $)
    ostth $p |- ( F e. A <-> ( F = K \/
      E. a e. ( 0 (,] 1 ) F = ( y e. QQ |-> ( ( abs ` y ) ^c a ) ) \/
      E. a e. RR+ E. g e. ran J F = ( y e. QQ |-> ( ( g ` y ) ^c a ) ) ) ) $=
      ( vp wcel cq cfv c1 cprime vn vz vk wceq cabs ccxp cmpt cc0 cioc wrex crn
      cv co crp w3o clt wbr cn wa clog cdiv simpl wn c2 cuz 1re ltnri wne qrng1
      qrng0 abv1z mpan2 breq2d mtbiri adantr simprr fveq2 syl5ibcom mtod simprl
      ax-1ne0 wo elnn1uz2 sylib ord mpd eqid ostth2 rexlimdvaa syl6 wral ralnex
      cneg cle cif simpll simplr weq notbid cbvralv ostth3 expr reximdva wf wfn
      3mix2 padicabvf ffn fveq1 oveq1d mpteq2dv eqeq2d rexrn mp2b rexbii rexcom
      wb bitri 3mix3 sylbir breq1d ostth1 3mix1d syl5bir pm2.61d ex cdr qrngbas
      qdrng abvtriv ax-mp syl6eqel cres qabsabv fvres mpteq2ia eleq1 syl5ibrcom
      id eqcomi abvcxp rexlimiv padicabvcxp ancoms rexlimivv sylbi 3jaoi impbii
      mpan ) FCPZFHUDZFBQBULZUERZJULZUFUMZUGZUDZJUHSUIUMZUJZFBQUULEULZRZUUNUFUM
      ZUGZUDZEGUKUJZJUNUJZUOZUUJSUAULZFRZUPUQZUAURUJZUVGUUJUVKUUSUVGUUJUVJUUSUA
      URUUJUVHURPZUVJUSZUSZABCDUVIUTRUVHUTRVAUMZFGHUVHIJKLMNUUJUVMVBUVNUVHSUDZV
      CUVHVDVERPZUVNUVPSSFRZUPUQZUUJUVSVCUVMUUJUVSSSUPUQSVFVGUUJUVRSSUPUUJSUHVH
      UVRSUDWACDSFUHLDKVIDKVJZVKVLVMVNVOUVNUVJUVPUVSUUJUVLUVJVPZUVPUVIUVRSUPUVH
      SFVQVMVRVSUVNUVPUVQUVNUVLUVPUVQWBUUJUVLUVJVTUVHWCWDWEWFUWAUVOWGWHWIUUSUUK
      UVFXFWJUVKVCUVJVCZUAURWKZUUJUVGUVJUAURWLUUJUWCUVGUUJUWCUSZOULZFRZSUPUQZOT
      UJZUVGUWDUWHFBQUULUWEGRZRZUUNUFUMZUGZUDZJUNUJZOTUJZUVGUWDUWGUWNOTUWDUWETP
      ZUWGUWNUWDUWPUWGUSZUSZABCUWEDUWFUTRUWEUTRVAUMWMZUWFUBULFRZWNUQUWTUWFWOZUC
      FGHIUBJKLMNUUJUWCUWQWPUWRUWCSUCULZFRZUPUQZVCZUCURWKZUUJUWCUWQWQUWBUXEUAUC
      URUAUCWRZUVJUXDUXGUVIUXCSUPUVHUXBFVQVMWSWTZWDUWDUWPUWGVTUWDUWPUWGVPUWSWGU
      XAWGXAXBXCUWOUVFUVGUVFUWMOTUJZJUNUJZUWOUVEUXIJUNTCGXDGTXEUVEUXIXQACDGIKLM
      XGTCGXHUVDUWMEOTGUUTUWIUDZUVCUWLFUXKBQUVBUWKUXKUVAUWJUUNUFUULUUTUWIXIXJXK
      XLXMXNXOZUWMJOUNTXPXRUVFUUKUUSXSXTWJUWHVCUWGVCZOTWKZUWDUVGUWGOTWLUUJUWCUX
      NUVGUUJUWCUXNUSZUSZUUKUUSUVFUXPACDUCFGHIKLMNUUJUXOVBUXPUWCUXFUUJUWCUXNVTU
      XHWDUXPUXNUXCSUPUQZVCZUCTWKUUJUWCUXNVPUXMUXROUCTOUCWRZUWGUXQUXSUWFUXCSUPU
      WEUXBFVQYAWSWTWDYBYCXBYDYEYFYDYEUUKUUJUUSUVFUUKFHCUUKYSDYGPHCPDKYIACQDHUH
      LDKYHZUVTNYJYKYLUUQUUJJUURUUNUURPZUUJUUQUUPCPZUEQYMZCPUYAUYBCDKLYNBCQDUUN
      UYCUUPLUXTBQUULUYCRZUUNUFUMZUGUUPBQUYEUUOUULQPUYDUUMUUNUFUULQUEYOXJYPYTUU
      AUUIFUUPCYQYRUUBUVFUXJUUJUXLUWMUUJJOUNTUUNUNPZUWPUSUUJUWMUWLCPZUWPUYFUYGA
      BCUWEDUUNGIKLMUUCUUDFUWLCYQYRUUEUUFUUGUUH $.
  $}


$(
$@
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Fermat's Last Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$@

  flt @p |- ( ( N e. ( ZZ>= ` 3 ) /\ ( X e. NN /\ Y e. NN /\ Z e. NN ) )
    -> ( ( X ^ N ) + ( Y ^ N ) ) =/= ( Z ^ N ) ) @=
    ? @.
$)


$( Begin $[ set-tarskigeom.mm $] $)
$(
###############################################################################
  ELEMENTARY GEOMETRY
###############################################################################

  This part develops elementary geometry based on Tarski's axioms, following
  [Schwabhauser].  Tarski's geometry is a first-order theory with one sort, the
  "points".  It has two primitive notions, the ternary predicate of
  "betweenness" and the quaternary predicate of "congruence".  To adapt this
  theory to the framework of set.mm, and to be able to talk of *a* Tarski
  structure as a space satisfying the given axioms, we use the following
  definition, stated informally:

  A Tarski structure ` f ` is a set (of points) ` ( Base `` f ) ` together with
  functions ` ( Itv `` f ) ` and ` ( dist `` f ) ` on
  ` ( ( Base `` f ) X. ( Base `` f ) ) ` satisfying certain axioms (given in
  the definitions ~ df-trkg _et sequentes_).  This allows us to treat a Tarski
  structure as a special kind of extensible structure (see ~ df-struct ).

  The translation to and from Tarski's treatment is as follows (given, again,
  informally).

  Suppose that one is given an extensible structure ` f ` .  One defines a
  betweenness ternary predicate Btw by positing that, for any
  ` x , y , z e. ( Base `` f ) ` , one has "Btw ` x y z ` " if and only if
  ` y e. x ( Itv `` f ) z ` , and a congruence quaternary predicate Congr by
  positing that, for any ` x , y , z , t e. ( Base `` f ) ` , one has
  "Congr ` x y z t ` " if and only if
  ` x ( dist `` f ) y = z ( dist `` f ) t ` .
  It is easy to check that if ` f ` satisfies our Tarski axioms, then Btw and
  Congr satisfy Tarski's Tarski axioms when ` ( Base `` f ) ` is interpreted as
  the universe of discourse.

  Conversely, suppose that one is given a set ` a ` , a ternary predicate Btw,
  and a quaternary predicate Congr.  One defines the extensible structure ` f `
  such that ` ( Base `` f ) ` is ` a ` , and ` ( Itv `` f ) ` is the function
  which associates with each ` <. x , y >. e. ( a X. a ) ` the set of points
  ` z e. a ` such that "Btw ` x z y ` ", and ` ( dist `` f ) ` is the function
  which associates with each ` <. x , y >. e. ( a X. a ) ` the set of ordered
  pairs ` <. z , t >. e. ( a X. a ) ` such that "Congr ` x y z t ` ".  It is
  easy to check that if Btw and Congr satisfy Tarski's Tarski axioms when ` a `
  is interpreted as the universe of discourse, then ` f ` satisfies our Tarski
  axioms.

  We intentionally choose to represent congruence (without loss of generality)
  as ` x ( dist `` f ) y = z ( dist `` f ) t ` instead of "Congr ` x y z t ` ",
  as it is more convenient.  It is always possible to define ` dist ` for any
  particular geometry to produce equal results when conguence is desired, and
  in many cases there is an obvious interpretation of "distance" between
  two points that can be useful in other situations.  A similar representation
  is used in Axiom A1 of [Beeson2016] p. 5, which discusses how a large number
  of formalized proofs were found in Tarskian Geometry using OTTER.  Their
  detailed proofs in Tarski Geometry, along with other information, are
  available at ~ http://www.michaelbeeson.com/research/FormalTarski/ .

  Most theorems are in deduction form, as this is a very general, simple, and
  convenient format to use in Metamath.  An assertion in deduction form can be
  easily converted into an assertion in inference form (removing the
  antecedents ` ph -> ` ) by insert a ` T. -> ` in each hypothesis, using
  ~ a1i , then using ~ trud to remove the final ` T. -> ` prefix.  In some
  cases we represent, without loss of generality, an implication antecedent in
  [Schwabhauser] as a hypothesis.  The implication can be retrieved from the
  by using ~ simpr , the theorem as stated, and ~ ex .

  For descriptions of individual axioms, we refer to the specific definitions
  below.  A particular feature of Tarski's axioms is modularity, so by using
  various subsets of the set of axioms, we can define the classes of "absolute
  dimensionless Tarski structures" ( ~ df-trkg ), of "Euclidean dimensionless
  Tarski structures" ( ~ df-trkge ) and of "Tarski structures of dimension no
  less than N" ( ~ df-trkgld ).

  The first section is devoted to the definitions of these various structures.
  The second section ("Tarskian geometry") develops the synthetic treatment of
  geometry.  The remaining sections prove that real Euclidean spaces and
  complex Hilbert spaces, with intended interpretations, are Euclidean Tarski
  structures.

  Most of the work in this part is due to Thierry Arnoux, with earlier work by
  Mario Carneiro and Scott Fenton.  See also the credits in the comment of each
  statement.

$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Definition and Tarski's Axioms of Geometry
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  $c TarskiG Itv LineG $.
  $c TarskiGC TarskiGB TarskiGCB TarskiGE TarskiGDim>= $.

  $( Extends class notation with the class of Tarski geometries. $)
  cstrkg $a class TarskiG $.
  $( Extends class notation with the class of geometries fulfilling the
     congruence axioms. $)
  cstrkgc $a class TarskiGC $.
  $( Extends class notation with the class of geometries fulfilling the
     betweenness axioms. $)
  cstrkgb $a class TarskiGB $.
  $( Extends class notation with the class of geometries fulfilling the
     congruence and betweenness axioms. $)
  cstrkgcb $a class TarskiGCB $.
  $( Extends class notation with the relation for geometries fulfilling the
     lower dimension axioms. $)
  cstrkgld $a class TarskiGDim>= $.
  $( Extends class notation with the class of geometries fulfilling Euclid's
     axiom. $)
  cstrkge $a class TarskiGE $.

  $( Declare the syntax for the Interval (segment) index extractor. $)
  citv $a class Itv $.

  $( Declare the syntax for the Line function. $)
  clng $a class LineG $.

  $( Define the Interval (segment) index extractor for Tarski geometries.
     (Contributed by Thierry Arnoux, 24-Aug-2017.) $)
  df-itv $a |- Itv = Slot ; 1 6 $.

  $( Define the line index extractor for geometries.  (Contributed by Thierry
     Arnoux, 27-Mar-2019.) $)
  df-lng $a |- LineG = Slot ; 1 7 $.

  $( Index value of the Interval (segment) slot.  Use ~ ndxarg .  (Contributed
     by Thierry Arnoux, 24-Aug-2017.) $)
  itvndx $p |- ( Itv ` ndx ) = ; 1 6 $=
    ( citv c1 c6 cdc df-itv 1nn0 6nn decnncl ndxarg ) ABCDEBCFGHI $.

  $( Index value of the "line" slot.  Use ~ ndxarg .  (Contributed by Thierry
     Arnoux, 27-Mar-2019.) $)
  lngndx $p |- ( LineG ` ndx ) = ; 1 7 $=
    ( clng c1 c7 cdc df-lng 1nn0 7nn decnncl ndxarg ) ABCDEBCFGHI $.

  $( Utility theorem: index-independent form of ~ df-itv .  (Contributed by
     Thierry Arnoux, 24-Aug-2017.) $)
  itvid $p |- Itv = Slot ( Itv ` ndx ) $=
    ( citv c1 c6 cdc df-itv 1nn0 6nn decnncl ndxid ) ABCDEBCFGHI $.

  $( Utility theorem: index-independent form of ~ df-lng .  (Contributed by
     Thierry Arnoux, 27-Mar-2019.) $)
  lngid $p |- LineG = Slot ( LineG ` ndx ) $=
    ( clng c1 c7 cdc df-lng 1nn0 7nn decnncl ndxid ) ABCDEBCFGHI $.

  ${
    trkgstr.w $e |- W = { <. ( Base ` ndx ) , U >. ,
       <. ( dist ` ndx ) , D >. , <. ( Itv ` ndx ) , I >. } $.
    $( Functionality of a Tarski geometry.  (Contributed by Thierry Arnoux,
       24-Aug-2017.) $)
    trkgstr $p |- W Struct <. 1 , ; 1 6 >. $=
      ( cnx cbs cfv cop cds citv c1 c6 cdc c2 1nn 2nn0 1nn0 decnncl 6nn basendx
      ctp cstr 1lt10 declti 2nn dsndx 2lt6 declt itvndx strle3 eqbrtri ) DFGHZB
      IFJHZAIFKHZCIUBLLMNZIUCEUMUNUOLLONUPBACPUALOLPQRUDUELORUFSUGLOMRQTUHUILMR
      TSUJUKUL $.

    $( The base set of a Tarski geometry.  (Contributed by Thierry Arnoux,
       24-Aug-2017.) $)
    trkgbas $p |- ( U e. V -> U = ( Base ` W ) ) $=
      ( cbs c1 c6 cdc cop trkgstr baseid cnx cfv csn cds citv ctp snsstp1 strfv
      sseqtr4i ) BEGDHHIJKABCEFLMNGOBKZPUCNQOAKZNROCKZSEUCUDUETFUBUA $.

    $( The measure of a distance in a Tarski geometry.  (Contributed by Thierry
       Arnoux, 24-Aug-2017.) $)
    trkgdist $p |- ( D e. V -> D = ( dist ` W ) ) $=
      ( cds c1 c6 cdc cop trkgstr dsid cnx cfv csn cbs citv ctp snsstp2 strfv
      sseqtr4i ) AEGDHHIJKABCEFLMNGOAKZPNQOBKZUCNROCKZSEUDUCUETFUBUA $.

    $( The congruence relation in a Tarski geometry.  (Contributed by Thierry
       Arnoux, 24-Aug-2017.) $)
    trkgitv $p |- ( I e. V -> I = ( Itv ` W ) ) $=
      ( citv c1 c6 cdc cop trkgstr itvid cnx cfv csn cbs cds ctp snsstp3 strfv
      sseqtr4i ) CEGDHHIJKABCEFLMNGOCKZPNQOBKZNROAKZUCSEUDUEUCTFUBUA $.
  $}

  ${
    $d a b c d f g n p i j s t u v x y z $.
    $( Define the class of geometries fulfilling the congruence axioms of
       reflexivity, identity and transitivity.  These are axioms A1 to A3 of
       [Schwabhauser] p. 10.  With our distance based notation for congruence,
       transitivity of congruence boils down to transitivity of equality and is
       already given by ~ eqtr , so it is not listed in this definition.
       (Contributed by Thierry Arnoux, 24-Aug-2017.) $)
    df-trkgc $a |- TarskiGC = { f | [. ( Base ` f ) / p ].
          [. ( dist ` f ) / d ].
      ( A. x e. p A. y e. p ( x d y ) = ( y d x )
     /\ A. x e. p A. y e. p A. z e. p ( ( x d y ) = ( z d z ) -> x = y ) ) } $.

    $( Define the class of geometries fulfilling the 3 betweenness axioms in
       Tarski's Axiomatization of Geometry: identity, Axiom A6 of
       [Schwabhauser] p. 11, axiom of Pasch, Axiom A7 of [Schwabhauser] p. 12,
       and continuity, Axiom A11 of [Schwabhauser] p. 13.  (Contributed by
       Thierry Arnoux, 24-Aug-2017.) $)
    df-trkgb $a |- TarskiGB = { f | [. ( Base ` f ) / p ].
          [. ( Itv ` f ) / i ].
          ( A. x e. p A. y e. p ( y e. ( x i x ) -> x = y )
       /\ A. x e. p A. y e. p A. z e. p A. u e. p A. v e. p
           ( ( u e. ( x i z ) /\ v e. ( y i z ) )
           -> E. a e. p ( a e. ( u i y ) /\ a e. ( v i x ) ) )
       /\ A. s e. ~P p A. t e. ~P p
            ( E. a e. p A. x e. s A. y e. t x e. ( a i y )
           -> E. b e. p A. x e. s A. y e. t b e. ( x i y ) ) )
      } $.

    $( Define the class of geometries fulfilling the five segment axiom, Axiom
       A5 of [Schwabhauser] p. 11, and segment construction axiom, Axiom A4 of
       [Schwabhauser] p. 11.  (Contributed by Thierry Arnoux, 14-Mar-2019.) $)
    df-trkgcb $a |- TarskiGCB = { f | [. ( Base ` f ) / p ].
          [. ( dist ` f ) / d ]. [. ( Itv ` f ) / i ].
          ( A. x e. p A. y e. p A. z e. p A. u e. p
            A. a e. p A. b e. p A. c e. p A. v e. p
            ( ( ( x =/= y /\ y e. ( x i z ) /\ b e. ( a i c ) )
         /\ ( ( ( x d y ) = ( a d b ) /\ ( y d z ) = ( b d c ) )
         /\ ( ( x d u ) = ( a d v ) /\ ( y d u ) = ( b d v ) ) ) )
             -> ( z d u ) = ( c d v ) )
       /\ A. x e. p A. y e. p A. a e. p A. b e. p E. z e. p
             ( y e. ( x i z ) /\ ( y d z ) = ( a d b ) ) )
      } $.

    $( Define the class of geometries fulfilling Euclid's axiom, Axiom A10 of
       [Schwabhauser] p. 13.  (Contributed by Thierry Arnoux, 14-Mar-2019.) $)
    df-trkge $a |- TarskiGE = { f | [. ( Base ` f ) / p ].
          [. ( Itv ` f ) / i ].
          A. x e. p A. y e. p A. z e. p A. u e. p A. v e. p
            ( ( u e. ( x i v ) /\ u e. ( y i z ) /\ x =/= u ) -> E. a e. p
            E. b e. p ( y e. ( x i a ) /\ z e. ( x i b ) /\ v e. ( a i b ) ) )
      } $.

    $( Define the class of geometries fulfilling the lower dimension axiom for
       dimension ` n ` .  For such geometries, there are three non-colinear
       points that are equidistant from ` n - 1 ` distinct points.  Derived
       from remarks in _Tarski's System of Geometry_, Alfred Tarski and Steven
       Givant, Bulletin of Symbolic Logic, Volume 5, Number 2 (1999), 175-214.
       (Contributed by Scott Fenton, 22-Apr-2013.)  (Revised by Thierry Arnoux,
       23-Nov-2019.) $)
    df-trkgld $a |- TarskiGDim>= = { <. g , n >. |
          [. ( Base ` g ) / p ]. [. ( dist ` g ) / d ]. [. ( Itv ` g ) / i ].
          E. f ( f : ( 1 ..^ n ) -1-1-> p /\ E. x e. p E. y e. p E. z e. p
            ( A. j e. ( 2 ..^ n ) ( ( ( f ` 1 ) d x ) = ( ( f ` j ) d x ) /\
                                    ( ( f ` 1 ) d y ) = ( ( f ` j ) d y ) /\
                                    ( ( f ` 1 ) d z ) = ( ( f ` j ) d z ) )
               /\ -. ( z e. ( x i y ) \/ x e. ( z i y ) \/ y e. ( x i z ) ) ) )
      } $.

    $( Define the class of Tarski geometries.  A Tarski geometry is a set of
       points, equipped with a betweenness relation (denoting that a point lies
       on a line segment between two other points) and a congruence relation
       (denoting equality of line segment lengths).

       <HTML>Here, we are using the following:<UL>
       <LI> for congruence, ` ( x .- y ) = ( z .- w ) ` where
       ` .- = ( dist `` W ) `
       <LI> for betweenness, ` y e. ( x I z ) ` , where ` I = ( Itv `` W ) `
       </UL>
       With this definition, the axiom A2 is actually equivalent to the
       transitivity of addition, ~ eqtrd .<P>

       Tarski originally had more axioms, but later reduced his list to 11:<UL>
       <LI> A1 A kind of reflexivity for the congruence relation (TarskiGC)
       <LI> A2 Transitivity for the congruence relation ( ` TarskiGC ` )
       <LI> A3 Identity for the congruence relation ( ` TarskiGC ` )
       <LI> A4 Axiom of segment construction ( ` TarskiGCB ` )
       <LI> A5 5-segment axiom ( ` TarskiGCB ` )
       <LI> A6 Identity for the betweenness relation ( ` TarskiGB ` )
       <LI> A7 Axiom of Pasch ( ` TarskiGB ` )
       <LI> A8 Lower dimension axiom ` ( TarskiGDim>= `` 2 ) `
       <LI> A9 Upper dimension axiom ` ( _V \ ( TarskiGDim>= `` 3 ) ) `
       <LI> A10 Euclid's axiom ( ` TarskiGE ` )
       <LI> A11 Axiom of continuity ( ` TarskiGB ` )
       </UL>

       Our definition is split into 5 parts:<UL>
       <LI> congruence axioms ` TarskiGC ` (which metric spaces fulfill)
       <LI> betweenness axioms ` TarskiGB `
       <LI> congruence and betweenness axioms ` TarskiGCB `
       <LI> upper and lower dimension axioms ` TarskiGDim>= `
       <LI> axiom of Euclid / parallel postulate ` TarskiGE `
       </UL></HTML>

       So our definition of a Tarskian Geometry includes the 3 axioms for the
       quaternary congruence relation (A1, A2, A3), the 3 axioms for the
       ternary betweenness relation (A6, A7, A11), and the 2 axioms of
       compatibility of the congruence and the betweenness relations (A4,A5).

       It does not include Euclid's axiom A10, nor the 2-dimensional axioms A8
       (Lower dimension axiom) and A9 (Upper dimension axiom) so the number
       of dimensions of the geometry it formalizes is not constrained.

       Considering A2 as one of the 3 axioms for the quaternary congruence
       relation is somewhat conventional, because the transitivity of the
       congruence relation is automatically given by our choice to take the
       distance as this congruence relation in our definition of Tarski
       geometries.
       (Contributed by Thierry Arnoux, 24-Aug-2017.)  (Revised by Thierry
       Arnoux, 27-Apr-2019.) $)
    df-trkg $a |- TarskiG = ( ( TarskiGC i^i TarskiGB )
      i^i ( TarskiGCB i^i { f | [. ( Base ` f ) / p ]. [. ( Itv ` f ) / i ].
        ( LineG ` f ) = ( x e. p , y e. ( p \ { x } ) |-> { z e. p |
        ( z e. ( x i y ) \/ x e. ( z i y ) \/ y e. ( x i z ) ) } ) } ) ) $.
  $}

  ${
    $d d f g i n p G $.  $d a b c d f g i j n p s t u v x y z I $.
    $d a b c d f g i j n p s t u v x y z P $.
    $d a b c d f g i j n p u v x y z .- $.
    istrkg.p $e |- P = ( Base ` G ) $.
    istrkg.d $e |- .- = ( dist ` G ) $.
    istrkg.i $e |- I = ( Itv ` G ) $.
    $( Property of being a Tarski geometry - congruence part.  (Contributed by
       Thierry Arnoux, 14-Mar-2019.) $)
    istrkgc $p |- ( G e. TarskiGC <-> ( G e. _V /\
      ( A. x e. P A. y e. P ( x .- y ) = ( y .- x ) /\ A. x e. P
       A. y e. P A. z e. P ( ( x .- y ) = ( z .- z ) -> x = y ) ) ) ) $=
      ( vd vp vf cv co wceq wral wa wcel raleqbidva wi cds cfv wsbc cbs cstrkgc
      simpl eqcomd adantr simpllr oveqd eqeq12d oveqdr anbi12d sbcie2s df-trkgc
      imbi1d elab4g ) ANZBNZKNZOZUTUSVAOZPZBLNZQZAVEQZVBCNZVHVAOZPZUSUTPZUAZCVE
      QZBVEQZAVEQZRZKMNZUBUCUDLVQUEUCUDUSUTGOZUTUSGOZPZBDQZADQZVRVHVHGOZPZVKUAZ
      CDQZBDQZADQZRZMEUFWIVPMDGUEUBELKHIVEDPZVAGPZRZWBVGWHVOWLWAVFADVEWLVEDWJWK
      UGUHZWLUSDSZRZVTVDBDVEWLDVEPZWNWMUIZWOUTDSZRZVRVBVSVCWSGVAUSUTWSVAGWJWKWN
      WRUJUHZUKWSGVAUTUSWTUKULTTWLWGVNADVEWMWOWFVMBDVEWQWSWEVLCDVEWOWPWRWQUIWSV
      HDSZRZWDVJVKXBVRVBWCVIWSXAABGVAWTUMWSXACCGVAWTUMULUQTTTUNUOABCMLKUPUR $.

    $( Property of being a Tarski geometry - betweenness part.  (Contributed by
       Thierry Arnoux, 14-Mar-2019.) $)
    istrkgb $p |- ( G e. TarskiGB <-> ( G e. _V /\
        ( A. x e. P A. y e. P ( y e. ( x I x ) -> x = y )
       /\ A. x e. P A. y e. P A. z e. P A. u e. P A. v e. P
           ( ( u e. ( x I z ) /\ v e. ( y I z ) )
           -> E. a e. P ( a e. ( u I y ) /\ a e. ( v I x ) ) )
       /\ A. s e. ~P P A. t e. ~P P
            ( E. a e. P A. x e. s A. y e. t x e. ( a I y )
           -> E. b e. P A. x e. s A. y e. t b e. ( x I y ) ) ) ) ) $=
      ( co wcel wral wa vi vp vf cv wceq wrex cpw w3a citv cfv wsbc cbs cstrkgb
      simpl eqcomd adantr simpllr oveqd eleq2d imbi1d raleqbidva simp-6r oveqdr
      wi anbi12d rexeqbidva imbi12d ad2antrr simp-4r 2ralbidv 3anbi123d sbcie2s
      pweqd df-trkgb elab4g ) BUDZAUDZVQUAUDZQZRZVQVPUEZVDZBUBUDZSZAWCSZEUDZVQC
      UDZVRQZRZDUDZVPWGVRQZRZTZLUDZWFVPVRQZRZWNWJVQVRQZRZTZLWCUFZVDZDWCSZEWCSZC
      WCSZBWCSZAWCSZVQWNVPVRQZRZBFUDZSAKUDZSZLWCUFZMUDZVQVPVRQZRZBXISAXJSZMWCUF
      ZVDZFWCUGZSZKXSSZUHZUAUCUDZUIUJUKUBYCULUJUKVPVQVQIQZRZWAVDZBGSZAGSZWFVQWG
      IQZRZWJVPWGIQZRZTZWNWFVPIQZRZWNWJVQIQZRZTZLGUFZVDZDGSZEGSZCGSZBGSZAGSZVQW
      NVPIQZRZBXISAXJSZLGUFZXMVQVPIQZRZBXISAXJSZMGUFZVDZFGUGZSZKUUOSZUHZUCHUMUU
      RYBUCGIULUIHUBUANPWCGUEZVRIUEZTZYHWEUUEXFUUQYAUVAYGWDAGWCUVAWCGUUSUUTUNUO
      ZUVAVQGRZTZYFWBBGWCUVAGWCUEZUVCUVBUPZUVDVPGRZTZYEVTWAUVHYDVSVPUVHIVRVQVQU
      VHVRIUUSUUTUVCUVGUQUOURUSUTVAVAUVAUUDXEAGWCUVBUVDUUCXDBGWCUVFUVHUUBXCCGWC
      UVDUVEUVGUVFUPZUVHWGGRZTZUUAXBEGWCUVHUVEUVJUVIUPZUVKWFGRZTZYTXADGWCUVKUVE
      UVMUVLUPZUVNWJGRZTZYMWMYSWTUVQYJWIYLWLUVQYIWHWFUVQIVRVQWGUVQVRIUUSUUTUVCU
      VGUVJUVMUVPVBUOZURUSUVQYKWKWJUVQIVRVPWGUVRURUSVEUVQYRWSLGWCUVNUVEUVPUVOUP
      UVQWNGRZTZYOWPYQWRUVTYNWOWNUVQUVSEBIVRUVRVCUSUVTYPWQWNUVQUVSDAIVRUVRVCUSV
      EVFVGVAVAVAVAVAUVAUUPXTKUUOXSUVAGWCUVBVMZUVAXJUUORZTZUUNXRFUUOXSUVAUUOXSU
      EUWBUWAUPUWCXIUUORZTZUUIXLUUMXQUWEUUHXKLGWCUVAUVEUWBUWDUVBVHZUWEUVSTZUUGX
      HABXJXIUWGUUFXGVQUWGIVRWNVPUWGVRIUUSUUTUWBUWDUVSVIUOURUSVJVFUWEUULXPMGWCU
      WFUWEXMGRZTZUUKXOABXJXIUWIUUJXNXMUWIIVRVQVPUWIVRIUUSUUTUWBUWDUWHVIUOURUSV
      JVFVGVAVAVKVLABCDEFUCUAKUBLMVNVO $.

    $( Property of being a Tarski geometry - congruence and betweenness part.
       (Contributed by Thierry Arnoux, 14-Mar-2019.) $)
    istrkgcb $p |- ( G e. TarskiGCB <-> ( G e. _V /\
          ( A. x e. P A. y e. P A. z e. P A. u e. P
            A. a e. P A. b e. P A. c e. P A. v e. P
            ( ( ( x =/= y /\ y e. ( x I z ) /\ b e. ( a I c ) )
         /\ ( ( ( x .- y ) = ( a .- b ) /\ ( y .- z ) = ( b .- c ) )
         /\ ( ( x .- u ) = ( a .- v ) /\ ( y .- u ) = ( b .- v ) ) ) )
             -> ( z .- u ) = ( c .- v ) )
       /\ A. x e. P A. y e. P A. a e. P A. b e. P E. z e. P
             ( y e. ( x I z ) /\ ( y .- z ) = ( a .- b ) ) ) ) ) $=
      ( co wceq wa wral oveqd vi vd vp vf cv wne wcel w3a wi wrex citv cfv wsbc
      cds cstrkgcb simp1 eqcomd adantr ad6antr simpll3 3anbi23d simpll2 eqeq12d
      cbs eleq2d anbi12d imbi12d raleqbidva ad3antrrr rexeqbidva sbcie3s elab4g
      df-trkgcb ) AUEZBUEZUFZVOVNCUEZUAUEZPZUGZKUEZJUEZLUEZVRPZUGZUHZVNVOUBUEZP
      ZWBWAWGPZQZVOVQWGPZWAWCWGPZQZRZVNEUEZWGPZWBDUEZWGPZQZVOWOWGPZWAWQWGPZQZRZ
      RZRZVQWOWGPZWCWQWGPZQZUIZDUCUEZSZLXJSZKXJSZJXJSZEXJSZCXJSZBXJSZAXJSZVTWKW
      IQZRZCXJUJZKXJSZJXJSZBXJSZAXJSZRZUAUDUEZUKULUMUBYGUNULUMUCYGVDULUMVPVOVNV
      QHPZUGZWAWBWCHPZUGZUHZVNVOIPZWBWAIPZQZVOVQIPZWAWCIPZQZRZVNWOIPZWBWQIPZQZV
      OWOIPZWAWQIPZQZRZRZRZVQWOIPZWCWQIPZQZUIZDFSZLFSZKFSZJFSZEFSZCFSZBFSZAFSZY
      IYPYNQZRZCFUJZKFSZJFSZBFSZAFSZRZUDGUOUVHYFUDFIHVDUNUKGUCUBUAMNOXJFQZWGIQZ
      VRHQZUHZUUTXRUVGYEUVLUUSXQAFXJUVLXJFUVIUVJUVKUPUQZUVLVNFUGZRZUURXPBFXJUVL
      FXJQZUVNUVMURZUVOVOFUGZRZUUQXOCFXJUVOUVPUVRUVQURZUVSVQFUGZRZUUPXNEFXJUVSU
      VPUWAUVTURZUWBWOFUGZRZUUOXMJFXJUWBUVPUWDUWCURZUWEWBFUGZRZUUNXLKFXJUWEUVPU
      WGUWFURUWHWAFUGZRZUUMXKLFXJUVLUVPUVNUVRUWAUWDUWGUWIUVMUSUWJWCFUGZRZUULXID
      FXJUVOUVPUVRUWAUWDUWGUWIUWKUVQUSUWLWQFUGZRZUUHXEUUKXHUWNYLWFUUGXDUWNYIVTY
      KWEVPUWNYHVSVOUWNHVRVNVQUWNVRHUVSUVKUWAUWDUWGUWIUWKUWMUVIUVJUVKUVNUVRUTZU
      SUQZTVEUWNYJWDWAUWNHVRWBWCUWPTVEVAUWNYSWNUUFXCUWNYOWJYRWMUWNYMWHYNWIUWNIW
      GVNVOUWNWGIUVSUVJUWAUWDUWGUWIUWKUWMUVIUVJUVKUVNUVRVBZUSUQZTUWNIWGWBWAUWRT
      VCUWNYPWKYQWLUWNIWGVOVQUWRTUWNIWGWAWCUWRTVCVFUWNUUBWSUUEXBUWNYTWPUUAWRUWN
      IWGVNWOUWRTUWNIWGWBWQUWRTVCUWNUUCWTUUDXAUWNIWGVOWOUWRTUWNIWGWAWQUWRTVCVFV
      FVFUWNUUIXFUUJXGUWNIWGVQWOUWRTUWNIWGWCWQUWRTVCVGVHVHVHVHVHVHVHVHUVLUVFYDA
      FXJUVMUVOUVEYCBFXJUVQUVSUVDYBJFXJUVTUVSUWGRZUVCYAKFXJUVSUVPUWGUVTURZUWSUW
      IRZUVBXTCFXJUWSUVPUWIUWTURUXAUWARZYIVTUVAXSUXBYHVSVOUXBHVRVNVQUXBVRHUVSUV
      KUWGUWIUWAUWOVIUQTVEUXBYPWKYNWIUXBIWGVOVQUXBWGIUVSUVJUWGUWIUWAUWQVIUQZTUX
      BIWGWBWAUXCTVCVFVJVHVHVHVHVFVKABCDEUDUAUCJKLUBVMVL $.

    $( Property of fulfilling Euclid's axiom.  (Contributed by Thierry Arnoux,
       14-Mar-2019.) $)
    istrkge $p |- ( G e. TarskiGE <-> ( G e. _V /\
      A. x e. P A. y e. P A. z e. P A. u e. P A. v e. P
        ( ( u e. ( x I v ) /\ u e. ( y I z ) /\ x =/= u ) -> E. a e. P
      E. b e. P ( y e. ( x I a ) /\ z e. ( x I b ) /\ v e. ( a I b ) ) ) ) ) $=
      ( cv co wcel wral wa adantr vi vp vf wne w3a wrex wi citv cfv cbs cstrkge
      wsbc wceq simpl eqcomd simp-6r oveqd eleq2d 3anbi12d 3anbi123d rexeqbidva
      ad2antrr imbi12d raleqbidva sbcie2s df-trkge elab4g ) EOZAOZDOZUAOZPZQZVH
      BOZCOZVKPZQZVIVHUDZUEZVNVIJOZVKPZQZVOVIKOZVKPZQZVJVTWCVKPZQZUEZKUBOZUFZJW
      IUFZUGZDWIRZEWIRZCWIRZBWIRZAWIRZUAUCOZUHUIULUBWRUJUIULVHVIVJHPZQZVHVNVOHP
      ZQZVRUEZVNVIVTHPZQZVOVIWCHPZQZVJVTWCHPZQZUEZKFUFZJFUFZUGZDFRZEFRZCFRZBFRZ
      AFRZUCGUKXRWQUCFHUJUHGUBUALNWIFUMZVKHUMZSZXQWPAFWIYAWIFXSXTUNUOZYAVIFQZSZ
      XPWOBFWIYAFWIUMZYCYBTZYDVNFQZSZXOWNCFWIYDYEYGYFTZYHVOFQZSZXNWMEFWIYHYEYJY
      ITZYKVHFQZSZXMWLDFWIYKYEYMYLTZYNVJFQZSZXCVSXLWKYQWTVMXBVQVRYQWSVLVHYQHVKV
      IVJYQVKHXSXTYCYGYJYMYPUPZUOZUQURYQXAVPVHYQHVKVNVOYSUQURUSYQXKWJJFWIYNYEYP
      YOTZYQVTFQZSZXJWHKFWIYQYEUUAYTTUUBWCFQZSZXEWBXGWEXIWGUUDXDWAVNUUDHVKVIVTU
      UDVKHYQXTUUAUUCYRVBUOZUQURUUDXFWDVOUUDHVKVIWCUUEUQURUUDXHWFVJUUDHVKVTWCUU
      EUQURUTVAVAVCVDVDVDVDVDVEABCDEUCUAUBJKVFVG $.

    $( Building lines from the segment property.  (Contributed by Thierry
       Arnoux, 14-Mar-2019.) $)
    istrkgl $p |- ( G e. { f | [. ( Base ` f ) / p ]. [. ( Itv ` f ) / i ].
      ( LineG ` f ) = ( x e. p , y e. ( p \ { x } ) |-> { z e. p |
      ( z e. ( x i y ) \/ x e. ( z i y ) \/ y e. ( x i z ) ) } ) } <->
      ( G e. _V /\ ( LineG ` G ) = ( x e. P , y e. ( P \ { x } ) |-> { z e. P |
      ( z e. ( x I y ) \/ x e. ( z I y ) \/ y e. ( x I z ) ) } ) ) ) $=
      ( cv clng cfv co wcel wceq wa csn cdif w3o crab cmpt2 citv wsbc cbs simpl
      eqcomd adantr difeq1d simpr oveqd eleq2d 3orbi123d rabeqbidv mpt2eq123dva
      cab eqeq2d sbcie2s fveq2 eqeq1d bitrd eqid elab4g ) ENZOPZABJNZVIANZUAZUB
      ZCNZVJBNZFNZQZRZVJVMVNVOQZRZVNVJVMVOQZRZUCZCVIUDZUEZSZFVGUFPUGJVGUHPUGZGO
      PZABDDVKUBZVMVJVNHQZRZVJVMVNHQZRZVNVJVMHQZRZUCZCDUDZUEZSZEGWFEUSZVGGSZWFV
      HWQSZWRXAWEEDHUHUFGJFKMVIDSZVOHSZTZWQWDVHXDABDWHWPVIVLWCXDVIDXBXCUIUJZXDV
      JDRZTDVIVKXDDVISXFXEUKULXDWPWCSXFVNWHRTXDWOWBCDVIXEXDWJVQWLVSWNWAXDWIVPVM
      XDHVOVJVNXDVOHXBXCUMUJZUNUOXDWKVRVJXDHVOVMVNXGUNUOXDWMVTVNXDHVOVJVMXGUNUO
      UPUQUKURUTVAWTVHWGWQVGGOVBVCVDWSVEVF $.

    $d f g j n p x y z N $.
    $( Property of fulfilling the lower dimension ` N ` axiom.  (Contributed by
       Thierry Arnoux, 20-Nov-2019.) $)
    istrkgld $p |- ( ( G e. V /\ N e. ( ZZ>= ` 2 ) ) -> ( G TarskiGDim>= N <->
            E. f ( f : ( 1 ..^ N ) -1-1-> P /\ E. x e. P E. y e. P E. z e. P
            ( A. j e. ( 2 ..^ N ) ( ( ( f ` 1 ) .- x ) = ( ( f ` j ) .- x ) /\
                                    ( ( f ` 1 ) .- y ) = ( ( f ` j ) .- y ) /\
                                    ( ( f ` 1 ) .- z ) = ( ( f ` j ) .- z ) )
               /\ -. ( z e. ( x I y ) \/ x e. ( z I y ) \/ y e. ( x I z ) ) ) )
      ) ) $=
      ( cv cfzo co wceq wrex oveqd vn vp vd vi vg c1 wf1 cfv w3a c2 wral w3o wn
      wcel wex citv wsbc cds cbs cuz cstrkgld eqidd simp1 eqcomd f1eq123d simp2
      eqeq12d 3anbi123d ralbidv simp3 eleq2d 3orbi123d notbid anbi12d rexeqbidv
      wa exbidv sbcie3s oveq2 raleqdv anbi1d rexbidv 2rexbidv df-trkgld brabg )
      UFUAOZPQZUBOZEOZUGZUFWIUHZAOZUCOZQZFOWIUHZWLWMQZRZWKBOZWMQZWOWRWMQZRZWKCO
      ZWMQZWOXBWMQZRZUIZFUJWFPQZUKZXBWLWRUDOZQZUNZWLXBWRXIQZUNZWRWLXBXIQZUNZULZ
      UMZVPZCWHSZBWHSZAWHSZVPZEUOZUDUEOZUPUHUQUCYDURUHUQUBYDUSUHUQWGDWIUGZWKWLI
      QZWOWLIQZRZWKWRIQZWOWRIQZRZWKXBIQZWOXBIQZRZUIZFXGUKZXBWLWRHQZUNZWLXBWRHQZ
      UNZWRWLXBHQZUNZULZUMZVPZCDSZBDSZADSZVPZEUOZUFJPQZDWIUGZYOFUJJPQZUKZUUDVPZ
      CDSZBDSADSZVPZEUOUEUAGJKUJUTUHVAUUJYCUEDIHUSURUPGUBUCUDLMNWHDRZWMIRZXIHRZ
      UIZUUIYBEUVBYEWJUUHYAUVBWGWGDWHWIWIUVBWIVBUVBWGVBUVBWHDUUSUUTUVAVCVDZVEUV
      BUUGXTADWHUVCUVBUUFXSBDWHUVCUVBUUEXRCDWHUVCUVBYPXHUUDXQUVBYOXFFXGUVBYHWQY
      KXAYNXEUVBYFWNYGWPUVBIWMWKWLUVBWMIUUSUUTUVAVFVDZTUVBIWMWOWLUVDTVGUVBYIWSY
      JWTUVBIWMWKWRUVDTUVBIWMWOWRUVDTVGUVBYLXCYMXDUVBIWMWKXBUVDTUVBIWMWOXBUVDTV
      GVHVIUVBUUCXPUVBYRXKYTXMUUBXOUVBYQXJXBUVBHXIWLWRUVBXIHUUSUUTUVAVJVDZTVKUV
      BYSXLWLUVBHXIXBWRUVETVKUVBUUAXNWRUVBHXIWLXBUVETVKVLVMVNVOVOVOVNVQVRWFJRZU
      UIUUREUVFYEUULUUHUUQUVFWGUUKDDWIWIUVFWIVBWFJUFPVSUVFDVBVEUVFUUFUUPABDDUVF
      UUEUUOCDUVFYPUUNUUDUVFYOFXGUUMWFJUJPVSVTWAWBWCVNVQABCEUEUDFUAUBUCWDWE $.

    $( Property of fulfilling the lower dimension 2 axiom.  (Contributed by
       Thierry Arnoux, 20-Nov-2019.) $)
    istrkg2ld $p |- ( G e. V
      -> ( G TarskiGDim>= 2 <-> E. x e. P E. y e. P E. z e. P
        -. ( z e. ( x I y ) \/ x e. ( z I y ) \/ y e. ( x I z ) ) ) ) $=
      ( vf vj wcel c2 c1 co wceq wa wrex cstrkgld wbr cfzo wf1 cfv w3a wral w3o
      cv wn wex cuz wb cz 2z ax-mp istrkgld mpan2 r19.41v ancom rexbii 3bitr3ri
      uzid exbii rexcom4 simpr reximi adantl exlimiv cmpt csn cop wss 1ex f1osn
      wf1o vex f1of1 mp1i snssi f1ss syl2anc fzo12sn mpteq1 fmptsn mp2an eqtr4i
      wtru cvv a1i eqidd f1eq123d trud sylibr ral0 fzo0 raleqi mpbir jctl mptex
      c0 ovex f1eq1 nfmpt1 nfeq2 simpll fveq1d oveq1d eqeq12d 3anbi123d ralbida
      nfan anbi1d 2rexbidva anbi12d spcev syl2an impbida rexbiia 3bitr2i syl6bb
      nfv ) EHNZEOUAUBZPOUCQZDLUIZUDZPYFUEZAUIZGQZMUIZYFUEZYIGQZRZYHBUIZGQZYLYO
      GQZRZYHCUIZGQZYLYSGQZRZUFZMOOUCQZUGZYSYIYOFQNYIYSYOFQNYOYIYSFQNUHUJZSZCDT
      ZBDTZADTZSZLUKZUUFCDTZBDTZADTZYCOOULUENZYDUULUMOUNNUUPUOOVCUPABCDLMEFGOHI
      JKUQURUULYGUUISZADTZLUKUUQLUKZADTUUOUUKUURLUUIYGSZADTUUJYGSUURUUKUUIYGADU
      SUUTUUQADUUIYGUTVAUUJYGUTVBVDUUQALDVEUUSUUNADYIDNZUUSUUNUUSUUNUVAUUQUUNLU
      UIUUNYGUUHUUMBDUUGUUFCDUUEUUFVFVGVGVHVIVHUVAYEDMYEYIVJZUDZPUVBUEZYIGQZYKU
      VBUEZYIGQZRZUVDYOGQZUVFYOGQZRZUVDYSGQZUVFYSGQZRZUFZMUUDUGZUUFSZCDTZBDTZUU
      SUUNUVAPVKZDPYIVLVKZUDZUVCUVAUVTYIVKZUWAUDZUWCDVMUWBUVTUWCUWAVPUWDUVAPYIV
      NAVQZVOUVTUWCUWAVRVSYIDVTUVTUWCDUWAWAWBUVCUWBUMWHYEUVTDDUVBUWAUVBUWARWHUV
      BMUVTYIVJZUWAYEUVTRZUVBUWFRWCMYEUVTYIWDUPPWINYIWINUWAUWFRVNUWEMPYIWIWIWEW
      FWGWJUWGWHWCWJWHDWKWLWMWNUUMUVRBDUUFUVQCDUUFUVPUVPUVOMXAUGUVOMWOUVOMUUDXA
      OWPWQWRWSVGVGUUQUVCUVSSLUVBMYEYIPOUCXBWTYFUVBRZYGUVCUUIUVSYEDYFUVBXCUWHUU
      GUVQBCDDUWHYODNYSDNSZSZUUEUVPUUFUWJUUCUVOMUUDUWHUWIMMYFUVBMYEYIXDXEUWIMYB
      XLUWJYKUUDNZSZYNUVHYRUVKUUBUVNUWLYJUVEYMUVGUWLYHUVDYIGUWLPYFUVBUWHUWIUWKX
      FZXGZXHUWLYLUVFYIGUWLYKYFUVBUWMXGZXHXIUWLYPUVIYQUVJUWLYHUVDYOGUWNXHUWLYLU
      VFYOGUWOXHXIUWLYTUVLUUAUVMUWLYHUVDYSGUWNXHUWLYLUVFYSGUWOXHXIXJXKXMXNXOXPX
      QXRXSXTYA $.

    $( Property of fulfilling the lower dimension 3 axiom.  (Contributed by
       Thierry Arnoux, 12-Jul-2020.) $)
    istrkg3ld $p |- ( G e. V
      -> ( G TarskiGDim>= 3 <-> E. u e. P E. v e. P ( u =/= v
        /\ E. x e. P E. y e. P E. z e. P ( ( ( u .- x ) = ( v .- x )
            /\ ( u .- y ) = ( v .- y ) /\ ( u .- z ) = ( v .- z ) )
        /\ -. ( z e. ( x I y ) \/ x e. ( z I y ) \/ y e. ( x I z ) ) ) ) ) ) $=
      ( wcel c3 c1 co wceq c2 wrex vf vj cstrkgld wbr cfzo wf1 cfv w3a wral w3o
      cv wn wa wex cpr wne cuz wb cz cle 3z 2re 3re 2lt3 ltleii eluz1i mpbir2an
      2z a1i istrkgld mpdan fzo13pr f1eq2 ax-mp anbi1i exbii 1ne2 oveq1 eqeq12d
      eqidd 3anbi123d anbi1d rexbidv eqeq2d csn caddc 2p1e3 oveq2i fzosn eqtr3i
      1z raleqi fveq2 oveq1d ralsng bitri syl6bbr f1prex mp3an 3bitrd ) GJNZGOU
      CUDZPOUEQZFUAUKZUFZPXDUGZAUKZIQZUBUKZXDUGZXGIQZRZXFBUKZIQZXJXMIQZRZXFCUKZ
      IQZXJXQIQZRZUHZUBSOUEQZUIZXQXGXMHQNXGXQXMHQNXMXGXQHQNUJULZUMZCFTZBFTZAFTZ
      UMZUAUNZPSUOZFXDUFZYHUMZUAUNZEUKZDUKZUPYOXGIQZYPXGIQZRZYOXMIQZYPXMIQZRZYO
      XQIQZYPXQIQZRZUHZYDUMZCFTZBFTZAFTZUMDFTEFTZXAOSUQUGNZXBYJURUULXAUULOUSNSO
      UTUDVASOVBVCVDVESOVHVFVGVIABCFUAUBGHIOJKLMVJVKYJYNURXAYIYMUAXEYLYHXCYKRXE
      YLURVLXCYKFXDVMVNVOVPVIYNUUKURZXAPUSNSUSNZPSUPUUMWKVHVQYHUUJXHYRRZXNUUARZ
      XRUUDRZUHZYDUMZCFTZBFTZAFTEDPSFUAUSUSYOXFRZUUIUVAAFUVBUUHUUTBFUVBUUGUUSCF
      UVBUUFUURYDUVBYSUUOUUBUUPUUEUUQUVBYQXHYRYRYOXFXGIVRUVBYRVTVSUVBYTXNUUAUUA
      YOXFXMIVRUVBUUAVTVSUVBUUCXRUUDUUDYOXFXQIVRUVBUUDVTVSWAWBWCWCWCYPSXDUGZRZU
      VAYGAFUVDUUTYFBFUVDUUSYECFUVDUURYCYDUVDUURXHUVCXGIQZRZXNUVCXMIQZRZXRUVCXQ
      IQZRZUHZYCUVDUUOUVFUUPUVHUUQUVJUVDYRUVEXHYPUVCXGIVRWDUVDUUAUVGXNYPUVCXMIV
      RWDUVDUUDUVIXRYPUVCXQIVRWDWAYCYAUBSWEZUIZUVKYAUBYBUVLSSPWFQZUEQZYBUVLUVNO
      SUEWGWHUUNUVOUVLRVHSWIVNWJWLUUNUVMUVKURVHYAUVKUBSUSXISRZXLUVFXPUVHXTUVJUV
      PXKUVEXHUVPXJUVCXGIXISXDWMZWNWDUVPXOUVGXNUVPXJUVCXMIUVQWNWDUVPXSUVIXRUVPX
      JUVCXQIUVQWNWDWAWOVNWPWQWBWCWCWCWRWSVIWT $.
  $}

  ${
    $d f i p x y z $.  $d a b c v z A $.  $d b c v z B $.  $d c v C $.
    $d a b c s t u v x y z I $.  $d a b c s t u v x y z P $.  $d a b s t x S $.
    $d a b t x y T $.  $d a b c u v U $.  $d a b c u v x y z X $.
    $d a b c u v y z Y $.  $d a b c u v z Z $.  $d a b v V $.
    $d a b c u v x y z .- $.
    axtrkg.p $e |- P = ( Base ` G ) $.
    axtrkg.d $e |- .- = ( dist ` G ) $.
    axtrkg.i $e |- I = ( Itv ` G ) $.
    axtrkg.g $e |- ( ph -> G e. TarskiG ) $.
    ${
      axtgcgrrflx.1 $e |- ( ph -> X e. P ) $.
      axtgcgrrflx.2 $e |- ( ph -> Y e. P ) $.
      $( Axiom of reflexivity of congruence, Axiom A1 of [Schwabhauser] p. 10.
         (Contributed by Thierry Arnoux, 14-Mar-2019.) $)
      axtgcgrrflx $p |- ( ph -> ( X .- Y ) = ( Y .- X ) ) $=
        ( vx vy cv co wceq cstrkgc wcel vf vp vz vi cstrkg cstrkgb cin cstrkgcb
        wral clng cfv csn cdif w3o crab cmpt2 citv wsbc cbs df-trkg inss1 sstri
        cab eqsstri sseldi wi cvv wa istrkgc simprbi simpld oveq1 oveq2 eqeq12d
        syl rspc2v syl2anc mpd ) ANPZOPZEQZVTVSEQZRZOBUINBUIZFGEQZGFEQZRZACSTZW
        DAUESCUESUFUGZUHUAPZUJUKNOUBPZWKVSULUMUCPZVSVTUDPZQTVSWLVTWMQTVTVSWLWMQ
        TUNUCWKUOUPRUDWJUQUKURUBWJUSUKURUAVCUGZUGZSNOUCUAUDUBUTWOWISWIWNVASUFVA
        VBVDKVEWHWDWAWLWLEQRVSVTRVFUCBUIOBUINBUIZWHCVGTWDWPVHNOUCBCDEHIJVIVJVKV
        OAFBTGBTWDWGVFLMWCWGFVTEQZVTFEQZRNOFGBBVSFRWAWQWBWRVSFVTEVLVSFVTEVMVNVT
        GRWQWEWRWFVTGFEVMVTGFEVLVNVPVQVR $.
    $}

    ${
      axtgcgrid.1 $e |- ( ph -> X e. P ) $.
      axtgcgrid.2 $e |- ( ph -> Y e. P ) $.
      axtgcgrid.3 $e |- ( ph -> Z e. P ) $.
      axtgcgrid.4 $e |- ( ph -> ( X .- Y ) = ( Z .- Z ) ) $.
      $( Axiom of identity of congruence, Axiom A3 of [Schwabhauser] p. 10.
         (Contributed by Thierry Arnoux, 14-Mar-2019.) $)
      axtgcgrid $p |- ( ph -> X = Y ) $=
        ( vx co wceq wcel vy vz vf vp vi cv wi wral cstrkgc cstrkg cin cstrkgcb
        cstrkgb clng cfv csn cdif w3o crab cmpt2 citv cbs df-trkg inss1 eqsstri
        wsbc cab sstri sseldi cvv istrkgc simprbi simprd syl oveq1 eqeq1d eqeq1
        wa imbi12d oveq2 eqeq2 id oveq12d eqeq2d imbi1d rspc3v syl3anc mp2d ) A
        QUFZUAUFZERZUBUFZWLERZSZWIWJSZUGZUBBUHUABUHQBUHZFGERZHHERZSZFGSZACUITZW
        QAUJUICUJUIUMUKZULUCUFZUNUOQUAUDUFZXEWIUPUQWLWIWJUEUFZRTWIWLWJXFRTWJWIW
        LXFRTURUBXEUSUTSUEXDVAUOVFUDXDVBUOVFUCVGUKZUKZUIQUAUBUCUEUDVCXHXCUIXCXG
        VDUIUMVDVHVELVIXBWKWJWIERSUABUHQBUHZWQXBCVJTXIWQVRQUAUBBCDEIJKVKVLVMVNP
        AFBTGBTHBTWQWTXAUGZUGMNOWPXJFWJERZWMSZFWJSZUGWRWMSZXAUGQUAUBFGHBBBWIFSZ
        WNXLWOXMXOWKXKWMWIFWJEVOVPWIFWJVQVSWJGSZXLXNXMXAXPXKWRWMWJGFEVTVPWJGFWA
        VSWLHSZXNWTXAXQWMWSWRXQWLHWLHEXQWBZXRWCWDWEWFWGWH $.
    $}

    ${
      axtgsegcon.1 $e |- ( ph -> X e. P ) $.
      axtgsegcon.2 $e |- ( ph -> Y e. P ) $.
      axtgsegcon.3 $e |- ( ph -> A e. P ) $.
      axtgsegcon.4 $e |- ( ph -> B e. P ) $.
      $( Axiom of segment construction, Axiom A4 of [Schwabhauser] p. 11.  As
         discussed in Axiom 4 of [Tarski1999] p. 178, "The intuitive content
         [is that] given any line segment ` A B ` , one can construct a line
         segment congruent to it, starting at any point ` Y ` and going in the
         direction of any ray containing ` Y ` .  The ray is determined by the
         point ` Y ` and a second point ` X ` , the endpoint of the ray.  The
         other endpoint of the line segment to be constructed is just the point
         ` z ` whose existence is asserted."  (Contributed by Thierry Arnoux,
         15-Mar-2019.) $)
      axtgsegcon $p |- ( ph
        -> E. z e. P ( Y e. ( X I z ) /\ ( Y .- z ) = ( A .- B ) ) ) $=
        ( co wral va vb vy vx vf vp vi vc vu vv cv wcel wceq wa cstrkgcb cstrkg
        wrex cstrkgc cstrkgb cin clng cfv csn cdif w3o crab cmpt2 citv wsbc cbs
        cab df-trkg inss2 inss1 sstri eqsstri sseldi wne w3a wi istrkgcb simprd
        cvv simprbi syl oveq1 eleq2d anbi1d rexbidv eleq1 eqeq1d anbi12d rspc2v
        2ralbidv syl2anc mpd eqeq2d anbi2d oveq2 ) AJIBUKZGSZULZJWTHSZUAUKZUBUK
        ZHSZUMZUNZBEUQZUBETUAETZXBXCCDHSZUMZUNZBEUQZAUCUKZUDUKZWTGSZULZXOWTHSZX
        FUMZUNZBEUQZUBETUAETZUCETUDETZXJAFUOULZYDAUPUOFUPURUSUTZUOUEUKZVAVBUDUC
        UFUKZYHXPVCVDWTXPXOUGUKZSULXPWTXOYISULXOXPWTYISULVEBYHVFVGUMUGYGVHVBVIU
        FYGVJVBVIUEVKZUTZUTZUOUDUCBUEUGUFVLYLYKUOYFYKVMUOYJVNVOVPNVQYEXPXOVRXRX
        EXDUHUKZGSULVSXPXOHSXFUMXSXEYMHSUMUNXPUIUKZHSXDUJUKZHSUMXOYNHSXEYOHSUMU
        NUNUNWTYNHSYMYOHSUMVTUJETUHETUBETUAETUIETBETUCETUDETZYDYEFWCULYPYDUNUDU
        CBUJUIEFGHUAUBUHKLMWAWDWBWEAIEULJEULYDXJVTOPYCXJXOXAULZXTUNZBEUQZUBETUA
        ETUDUCIJEEXPIUMZYBYSUAUBEEYTYAYRBEYTXRYQXTYTXQXAXOXPIWTGWFWGWHWIWNXOJUM
        ZYSXIUAUBEEUUAYRXHBEUUAYQXBXTXGXOJXAWJUUAXSXCXFXOJWTHWFWKWLWIWNWMWOWPAC
        EULDEULXJXNVTQRXIXNXBXCCXEHSZUMZUNZBEUQUAUBCDEEXDCUMZXHUUDBEUUEXGUUCXBU
        UEXFUUBXCXDCXEHWFWQWRWIXEDUMZUUDXMBEUUFUUCXLXBUUFUUBXKXCXEDCHWSWQWRWIWM
        WOWP $.
    $}

    ${
      axtg5seg.1 $e |- ( ph -> X e. P ) $.
      axtg5seg.2 $e |- ( ph -> Y e. P ) $.
      axtg5seg.3 $e |- ( ph -> Z e. P ) $.
      axtg5seg.4 $e |- ( ph -> A e. P ) $.
      axtg5seg.5 $e |- ( ph -> B e. P ) $.
      axtg5seg.6 $e |- ( ph -> C e. P ) $.
      axtg5seg.7 $e |- ( ph -> U e. P ) $.
      axtg5seg.8 $e |- ( ph -> V e. P ) $.
      axtg5seg.9 $e |- ( ph -> X =/= Y ) $.
      axtg5seg.10 $e |- ( ph -> Y e. ( X I Z ) ) $.
      axtg5seg.11 $e |- ( ph -> B e. ( A I C ) ) $.
      axtg5seg.12 $e |- ( ph -> ( X .- Y ) = ( A .- B ) ) $.
      axtg5seg.13 $e |- ( ph -> ( Y .- Z ) = ( B .- C ) ) $.
      axtg5seg.14 $e |- ( ph -> ( X .- U ) = ( A .- V ) ) $.
      axtg5seg.15 $e |- ( ph -> ( Y .- U ) = ( B .- V ) ) $.
      $( Five segments axiom, Axiom A5 of [Schwabhauser] p. 11.  Take two
         triangles ` X Z U ` and ` A C V ` , a point ` Y ` on ` X Z ` , and a
         point ` B ` on ` A C ` .  If all corresponding line segments except
         for ` Z U ` and ` C V ` are congruent ( i.e., ` X Y .~ A B ` ,
         ` Y Z .~ B C ` , ` X U .~ A V ` , and ` Y U .~ B V ` ), then ` Z U `
         and ` C V ` are also congruent.  As noted in Axiom 5 of [Tarski1999]
         p. 178, "this axiom is similar in character to the well-known theorems
         of Euclidean geometry that allow one to conclude, from hypotheses
         about the congruence of certain corresponding sides and angles in two
         triangles, the congruence of other corresponding sides and angles."
         (Contributed by Thierry Arnoux, 14-Mar-2019.) $)
      axtg5seg $p |- ( ph -> ( Z .- U ) = ( C .- V ) ) $=
        ( vc vv vb va vu vx vy vz vf vp vi wne co wcel cv wceq wa wral cstrkgcb
        w3a wi cstrkg cstrkgc cstrkgb cin clng cfv csn cdif w3o crab cmpt2 citv
        wsbc cbs cab df-trkg inss2 inss1 sstri eqsstri sseldi wrex cvv istrkgcb
        simprbi simpld neeq1 oveq1 eleq2d 3anbi12d eqeq1d anbi1d anbi12d imbi1d
        syl ralbidv neeq2 eleq1 oveq2 anbi2d 3anbi2d imbi12d rspc3v syl3anc mpd
        2ralbidv 3anbi3d eqeq2d 3jca jca jca32 rspc2v syl2anc mp2d ) AKLVDZLKMH
        VEZVFZCBUMVGZHVEZVFZVLZKLIVEZBCIVEZVHZLMIVEZCYKIVEZVHZVIZKFIVEZBUNVGZIV
        EZVHZLFIVEZCUUCIVEZVHZVIZVIZVIZMFIVEZYKUUCIVEZVHZVMZUNEVJUMEVJZYHYJCBDH
        VEZVFZVLZYQYRCDIVEZVHZVIZUUBBJIVEZVHZUUFCJIVEZVHZVIZVIZVIZUULDJIVEZVHZA
        YHYJUOVGZUPVGZYKHVEZVFZVLZYOUVMUVLIVEZVHZYRUVLYKIVEZVHZVIZKUQVGZIVEZUVM
        UUCIVEZVHZLUWBIVEZUVLUUCIVEZVHZVIZVIZVIZMUWBIVEZUUMVHZVMZUNEVJZUMEVJZUO
        EVJZUPEVJUQEVJZUUPAURVGZUSVGZVDZUWTUWSUTVGZHVEZVFZUVOVLZUWSUWTIVEZUVQVH
        ZUWTUXBIVEZUVSVHZVIZUWSUWBIVEZUWDVHZUWTUWBIVEZUWGVHZVIZVIZVIZUXBUWBIVEZ
        UUMVHZVMZUNEVJZUMEVJUOEVJZUPEVJUQEVJZUTEVJUSEVJUREVJZUWRAGVKVFZUYDAVNVK
        GVNVOVPVQZVKVAVGZVRVSURUSVBVGZUYHUWSVTWAUXBUWSUWTVCVGZVEVFUWSUXBUWTUYIV
        EVFUWTUWSUXBUYIVEVFWBUTUYHWCWDVHVCUYGWEVSWFVBUYGWGVSWFVAWHZVQZVQZVKURUS
        UTVAVCVBWIUYLUYKVKUYFUYKWJVKUYJWKWLWMQWNUYEUYDUXDUXHUVQVHVIUTEWOUOEVJUP
        EVJUSEVJUREVJZUYEGWPVFUYDUYMVIURUSUTUNUQEGHIUPUOUMNOPWQWRWSXHAKEVFLEVFM
        EVFUYDUWRVMRSTUYCUWRKUWTVDZUWTKUXBHVEZVFZUVOVLZKUWTIVEZUVQVHZUXIVIZUWEU
        XNVIZVIZVIZUXSVMZUNEVJZUMEVJUOEVJZUPEVJUQEVJYHLUYOVFZUVOVLZUVRLUXBIVEZU
        VSVHZVIZUWIVIZVIZUXSVMZUNEVJZUMEVJUOEVJZUPEVJUQEVJURUSUTKLMEEEUWSKVHZUY
        BVUFUQUPEEVUQUYAVUEUOUMEEVUQUXTVUDUNEVUQUXQVUCUXSVUQUXEUYQUXPVUBVUQUXAU
        YNUXDUYPUVOUWSKUWTWTVUQUXCUYOUWTUWSKUXBHXAXBXCVUQUXJUYTUXOVUAVUQUXGUYSU
        XIVUQUXFUYRUVQUWSKUWTIXAXDXEVUQUXLUWEUXNVUQUXKUWCUWDUWSKUWBIXAXDXEXFXFX
        GXIXSXSUWTLVHZVUFVUPUQUPEEVURVUEVUOUOUMEEVURVUDVUNUNEVURVUCVUMUXSVURUYQ
        VUHVUBVULVURUYNYHUYPVUGUVOUWTLKXJUWTLUYOXKXCVURUYTVUKVUAUWIVURUYSUVRUXI
        VUJVURUYRYOUVQUWTLKIXLXDVURUXHVUIUVSUWTLUXBIXAXDXFVURUXNUWHUWEVURUXMUWF
        UWGUWTLUWBIXAXDXMXFXFXGXIXSXSUXBMVHZVUPUWQUQUPEEVUSVUOUWOUOUMEEVUSVUNUW
        NUNEVUSVUMUWKUXSUWMVUSVUHUVPVULUWJVUSVUGYJYHUVOVUSUYOYILUXBMKHXLXBXNVUS
        VUKUWAUWIVUSVUJUVTUVRVUSVUIYRUVSUXBMLIXLXDXMXEXFVUSUXRUWLUUMUXBMUWBIXAX
        DXOXIXSXSXPXQXRAFEVFBEVFCEVFUWRUUPVMUDUAUBUWPUUPUVPUWAUUBUWDVHZUUFUWGVH
        ZVIZVIZVIZUUNVMZUNEVJUMEVJYHYJUVLYLVFZVLZYOBUVLIVEZVHZUVTVIZUUEVVAVIZVI
        ZVIZUUNVMZUNEVJUMEVJUQUPUOFBCEEEUWBFVHZUWNVVEUMUNEEVVOUWKVVDUWMUUNVVOUW
        JVVCUVPVVOUWIVVBUWAVVOUWEVUTUWHVVAVVOUWCUUBUWDUWBFKIXLXDVVOUWFUUFUWGUWB
        FLIXLXDXFXMXMVVOUWLUULUUMUWBFMIXLXDXOXSUVMBVHZVVEVVNUMUNEEVVPVVDVVMUUNV
        VPUVPVVGVVCVVLVVPUVOVVFYHYJVVPUVNYLUVLUVMBYKHXAXBXTVVPUWAVVJVVBVVKVVPUV
        RVVIUVTVVPUVQVVHYOUVMBUVLIXAYAXEVVPVUTUUEVVAVVPUWDUUDUUBUVMBUUCIXAYAXEX
        FXFXGXSUVLCVHZVVNUUOUMUNEEVVQVVMUUKUUNVVQVVGYNVVLUUJVVQVVFYMYHYJUVLCYLX
        KXTVVQVVJUUAVVKUUIVVQVVIYQUVTYTVVQVVHYPYOUVLCBIXLYAVVQUVSYSYRUVLCYKIXAY
        AXFVVQVVAUUHUUEVVQUWGUUGUUFUVLCUUCIXAYAXMXFXFXGXSXPXQXRAUUSUVBUVGAYHYJU
        URUFUGUHYBAYQUVAUIUJYCAUVDUVFUKULYCYDADEVFJEVFUUPUVIUVKVMZVMUCUEUUOVVRU
        USUVBUUIVIZVIZUULDUUCIVEZVHZVMUMUNDJEEYKDVHZUUKVVTUUNVWBVWCYNUUSUUJVVSV
        WCYMUURYHYJVWCYLUUQCYKDBHXLXBXTVWCUUAUVBUUIVWCYTUVAYQVWCYSUUTYRYKDCIXLY
        AXMXEXFVWCUUMVWAUULYKDUUCIXAYAXOUUCJVHZVVTUVIVWBUVKVWDVVSUVHUUSVWDUUIUV
        GUVBVWDUUEUVDUUHUVFVWDUUDUVCUUBUUCJBIXLYAVWDUUGUVEUUFUUCJCIXLYAXFXMXMVW
        DVWAUVJUULUUCJDIXLYAXOYEYFYG $.
    $}

    ${
      axtgbtwnid.1 $e |- ( ph -> X e. P ) $.
      axtgbtwnid.2 $e |- ( ph -> Y e. P ) $.
      axtgbtwnid.3 $e |- ( ph -> Y e. ( X I X ) ) $.
      $( Identity of Betweenness.  Axiom A6 of [Schwabhauser] p. 11.
         (Contributed by Thierry Arnoux, 15-Mar-2019.) $)
      axtgbtwnid $p |- ( ph -> X = Y ) $=
        ( vy vx cv co wcel wral vf vp vz vi vu vv va vt vs vb wi cstrkgb cstrkg
        wceq cstrkgc cin cstrkgcb clng cfv csn cdif w3o crab cmpt2 citv cbs cab
        wsbc df-trkg inss1 inss2 eqsstri sseldi wa wrex cpw cvv istrkgb simprbi
        sstri w3a simp1d syl id oveq12d eleq2d eqeq1 imbi12d eleq1 eqeq2 rspc2v
        syl2anc mp2d ) AOQZPQZWODRZSZWOWNUNZUKZOBTPBTZGFFDRZSZFGUNZACULSZWTAUMU
        LCUMUOULUPZUQUAQZURUSPOUBQZXGWOUTVAUCQZWOWNUDQZRSWOXHWNXIRSWNWOXHXIRSVB
        UCXGVCVDUNUDXFVEUSVHUBXFVFUSVHUAVGUPZUPZULPOUCUAUDUBVIXKXEULXEXJVJUOULV
        KVTVLKVMXDWTUEQZWOXHDRSUFQZWNXHDRSVNUGQZXLWNDRSXNXMWODRSVNUGBVOUKUFBTUE
        BTUCBTOBTPBTZWOXNWNDRSOUHQZTPUIQZTUGBVOUJQWOWNDRSOXPTPXQTUJBVOUKUHBVPZT
        UIXRTZXDCVQSWTXOXSWAPOUCUFUEUHBCDEUIUGUJHIJVRVSWBWCNAFBSGBSWTXBXCUKZUKL
        MWSXTWNXASZFWNUNZUKPOFGBBWOFUNZWQYAWRYBYCWPXAWNYCWOFWOFDYCWDZYDWEWFWOFW
        NWGWHWNGUNYAXBYBXCWNGXAWIWNGFWJWHWKWLWM $.
    $}

    ${
      axtgpasch.1 $e |- ( ph -> X e. P ) $.
      axtgpasch.2 $e |- ( ph -> Y e. P ) $.
      axtgpasch.3 $e |- ( ph -> Z e. P ) $.
      axtgpasch.4 $e |- ( ph -> U e. P ) $.
      axtgpasch.5 $e |- ( ph -> V e. P ) $.
      axtgpasch.6 $e |- ( ph -> U e. ( X I Z ) ) $.
      axtgpasch.7 $e |- ( ph -> V e. ( Y I Z ) ) $.
      $( Axiom of (Inner) Pasch, Axiom A7 of [Schwabhauser] p. 12.  Given
         triangle ` X Y Z ` , point ` U ` in segment ` X Z ` , and point ` V `
         in segment ` Y Z ` , there exists a point ` a ` on both the segment
         ` U Y ` and the segment ` V X ` .  This axiom is essentially a subset
         of the general Pasch axiom.  The general Pasch axiom asserts that on a
         plane "a line intersecting a triangle in one of its sides, and not
         intersecting any of the vertices, must intersect one of the other two
         sides" (per the discussion about Axiom 7 of [Tarski1999] p. 179).  The
         (general) Pasch axiom was used implicitly by Euclid, but never stated;
         Moritz Pasch discovered its omission in 1882.  As noted in the
         Metamath book, this means that the omission of Pasch's axiom from
         Euclid went unnoticed for 2000 years.  Only the inner Pasch algorithm
         is included as an axiom; the "outer" form of the Pasch axiom can be
         proved using the inner form (see theorem 9.6 of [Schwabhauser] p. 69
         and the brief discussion in axiom 7.1 of [Tarski1999] p. 180).
         (Contributed by Thierry Arnoux, 15-Mar-2019.) $)
      axtgpasch $p |- ( ph
        -> E. a e. P ( a e. ( U I Y ) /\ a e. ( V I X ) ) ) $=
        ( vu vv vx vz vy vf vp vi vt vs vb co wcel cv wa wrex wi cstrkgb cstrkg
        wral cstrkgc cin cstrkgcb clng cfv csn cdif w3o crab wceq citv wsbc cbs
        cmpt2 cab df-trkg inss1 inss2 sstri eqsstri cpw cvv w3a istrkgb simprbi
        sseldi simp2d oveq1 eleq2d anbi1d oveq2 anbi2d rexbidv imbi12d 2ralbidv
        syl anbi12d imbi1d rspc3v syl3anc mpd eleq1 rspc2v syl2anc mp2and ) ACH
        JEUNZUOZGIJEUNZUOZKUPZCIEUNZUOZXLGHEUNZUOZUQZKBURZUAUBAUCUPZXHUOZUDUPZX
        JUOZUQZXLXSIEUNZUOZXLYAHEUNZUOZUQZKBURZUSZUDBVBUCBVBZXIXKUQZXRUSZAXSUEU
        PZUFUPZEUNZUOZYAUGUPZYOEUNZUOZUQZXLXSYREUNZUOZXLYAYNEUNZUOZUQZKBURZUSZU
        DBVBUCBVBZUFBVBUGBVBUEBVBZYKADUTUOZUUJAVAUTDVAVCUTVDZVEUHUPZVFVGUEUGUIU
        PZUUNYNVHVIYOYNYRUJUPZUNUOYNYOYRUUOUNUOYRYNYOUUOUNUOVJUFUUNVKVPVLUJUUMV
        MVGVNUIUUMVOVGVNUHVQVDZVDZUTUEUGUFUHUJUIVRUUQUULUTUULUUPVSVCUTVTWAWBOWH
        UUKYRYNYNEUNUOYNYRVLUSUGBVBUEBVBZUUJYNXLYREUNUOUGUKUPZVBUEULUPZVBKBURUM
        UPYNYREUNUOUGUUSVBUEUUTVBUMBURUSUKBWCZVBULUVAVBZUUKDWDUOUURUUJUVBWEUEUG
        UFUDUCUKBDEFULKUMLMNWFWGWIWRAHBUOIBUOJBUOUUJYKUSPQRUUIYKXSHYOEUNZUOZYTU
        QZUUCYGUQZKBURZUSZUDBVBUCBVBUVDYAIYOEUNZUOZUQZYIUSZUDBVBUCBVBUEUGUFHIJB
        BBYNHVLZUUHUVHUCUDBBUVMUUAUVEUUGUVGUVMYQUVDYTUVMYPUVCXSYNHYOEWJWKWLUVMU
        UFUVFKBUVMUUEYGUUCUVMUUDYFXLYNHYAEWMWKWNWOWPWQYRIVLZUVHUVLUCUDBBUVNUVEU
        VKUVGYIUVNYTUVJUVDUVNYSUVIYAYRIYOEWJWKWNUVNUVFYHKBUVNUUCYEYGUVNUUBYDXLY
        RIXSEWMWKWLWOWPWQYOJVLZUVLYJUCUDBBUVOUVKYCYIUVOUVDXTUVJYBUVOUVCXHXSYOJH
        EWMWKUVOUVIXJYAYOJIEWMWKWSWTWQXAXBXCACBUOGBUOYKYMUSSTYJYMXIYBUQZXNYGUQZ
        KBURZUSUCUDCGBBXSCVLZYCUVPYIUVRUVSXTXIYBXSCXHXDWLUVSYHUVQKBUVSYEXNYGUVS
        YDXMXLXSCIEWJWKWLWOWPYAGVLZUVPYLUVRXRUVTYBXKXIYAGXJXDWNUVTUVQXQKBUVTYGX
        PXNUVTYFXOXLYAGHEWJWKWNWOWPXEXFXCXG $.
    $}

    ${
      axtgcont.1 $e |- ( ph -> S C_ P ) $.
      axtgcont.2 $e |- ( ph -> T C_ P ) $.
      $( Axiom of Continuity.  Axiom A11 of [Schwabhauser] p. 13.  This axiom
         (scheme) asserts that any two sets ` S ` and ` T ` (of points) such
         that the elements of ` S ` precede the elements of ` T ` with respect
         to some point ` a ` (that is, ` x ` is between ` a ` and ` y `
         whenever ` x ` is in ` X ` and ` y ` is in ` Y ` ) are separated by
         some point ` b ` ; this is explained in Axiom 11 of [Tarski1999]
         p. 185.  (Contributed by Thierry Arnoux, 16-Mar-2019.) $)
      axtgcont1 $p |- ( ph ->
            ( E. a e. P A. x e. S A. y e. T x e. ( a I y )
           -> E. b e. P A. x e. S A. y e. T b e. ( x I y ) ) ) $=
        ( cv wcel wral vt vs vf vp vz vi vu vv co wi cpw cstrkgb cstrkg cstrkgc
        wrex cin cstrkgcb clng cfv csn cdif w3o crab wceq citv wsbc cbs df-trkg
        cmpt2 cab inss1 inss2 eqsstri sseldi cvv w3a istrkgb simprbi simp3d syl
        sstri wa wss wb fvex eqeltri ssex elpwg mpbird raleq rexbidv rexralbidv
        3syl imbi12d rspc2v syl2anc mpd ) ABRZJRZCRZHUISZCUARZTZBUBRZTZJDUOZKRW
        RWTHUISZCXBTZBXDTZKDUOZUJZUADUKZTUBXLTZXACFTZBETJDUOZXGCFTZBETKDUOZUJZA
        GULSZXMAUMULGUMUNULUPZUQUCRZURUSBCUDRZYBWRUTVAUERZWRWTUFRZUISWRYCWTYDUI
        SWTWRYCYDUISVBUEYBVCVIVDUFYAVEUSVFUDYAVGUSVFUCVJUPZUPZULBCUEUCUFUDVHYFX
        TULXTYEVKUNULVLWAVMOVNXSWTWRWRHUISWRWTVDUJCDTBDTZUGRZWRYCHUISUHRZWTYCHU
        ISWBWSYHWTHUISWSYIWRHUISWBJDUOUJUHDTUGDTUEDTCDTBDTZXMXSGVOSYGYJXMVPBCUE
        UHUGUADGHIUBJKLMNVQVRVSVTAEXLSZFXLSZXMXRUJAYKEDWCZPAYMEVOSYKYMWDPEDDGVG
        USVOLGVGWEWFZWGEDVOWHWMWIAYLFDWCZQAYOFVOSYLYOWDQFDYNWGFDVOWHWMWIXKXRXCB
        ETZJDUOZXHBETZKDUOZUJUBUAEFXLXLXDEVDZXFYQXJYSYTXEYPJDXCBXDEWJWKYTXIYRKD
        XHBXDEWJWKWNXBFVDZYQXOYSXQUUAXCXNJBDEXACXBFWJWLUUAXHXPKBDEXGCXBFWJWLWNW
        OWPWQ $.

      $d u v ph $.  $d u v S $.  $d u v T $.  $d u v x y A $.
      axtgcont.3 $e |- ( ph -> A e. P ) $.
      axtgcont.4 $e |- ( ( ph /\ u e. S /\ v e. T ) -> u e. ( A I v ) ) $.
      $( Axiom of Continuity.  Axiom A11 of [Schwabhauser] p. 13.  For more
         information see ~ axtgcont1 .  (Contributed by Thierry Arnoux,
         16-Mar-2019.) $)
      axtgcont $p |- ( ph -> E. b e. P A. x e. S A. y e. T b e. ( x I y ) ) $=
        ( va cv co wcel wral wrex 3expb ralrimivva wceq wa simplr simpr oveq12d
        simpll eleq12d cbvraldva rspcev syl2anc axtgcont1 mpd ) ABUCZUBUCZCUCZK
        UDZUEZCIUFZBHUFZUBGUGZMUCVBVDKUDUECIUFBHUFMGUGAFGUEEUCZFDUCZKUDZUEZDIUF
        ZEHUFZVITAVMEDHIAVJHUEVKIUEVMUAUHUIVHVOUBFGVCFUJZVGVNBEHVPVBVJUJZUKZVFV
        MCDIVRVDVKUJZUKZVBVJVEVLVPVQVSULVTVCFVDVKKVPVQVSUOVRVSUMUNUPUQUQURUSABC
        GHIJKLUBMNOPQRSUTVA $.
    $}
  $}

  ${
    $d u v x y z .- $.  $d u v x y z I $.  $d u v x y z P $.
    axtrkge.p $e |- P = ( Base ` G ) $.
    axtrkge.d $e |- .- = ( dist ` G ) $.
    axtrkge.i $e |- I = ( Itv ` G ) $.
    ${
      axtglowdim2.v $e |- ( ph -> G e. V ) $.
      axtglowdim2.g $e |- ( ph -> G TarskiGDim>= 2 ) $.
      $( Lower dimension axiom for dimension 2, Axiom A8 of [Schwabhauser]
         p. 13.  There exist 3 non-colinear points.  (Contributed by Thierry
         Arnoux, 20-Nov-2019.) $)
      axtglowdim2 $p |- ( ph -> E. x e. P E. y e. P E. z e. P
            -. ( z e. ( x I y ) \/ x e. ( z I y ) \/ y e. ( x I z ) ) ) $=
        ( c2 cstrkgld cv co wcel wrex wbr w3o wn wb istrkg2ld syl mpbid ) AFOPU
        AZDQZBQZCQZGRSUJUIUKGRSUKUJUIGRSUBUCDETCETBETZNAFISUHULUDMBCDEFGHIJKLUE
        UFUG $.
    $}

    ${
      $d u v x y z .- $.  $d u v x y z I $.  $d u v x y z P $.  $d u v z Z $.
      $d u v x y z X $.  $d u v y z Y $.  $d u v x y z U $.  $d v x y z V $.
      axtgupdim2.x $e |- ( ph -> X e. P ) $.
      axtgupdim2.y $e |- ( ph -> Y e. P ) $.
      axtgupdim2.z $e |- ( ph -> Z e. P ) $.
      axtgupdim2.u $e |- ( ph -> U e. P ) $.
      axtgupdim2.v $e |- ( ph -> V e. P ) $.
      axtgupdim2.0 $e |- ( ph -> U =/= V ) $.
      axtgupdim2.1 $e |- ( ph -> ( U .- X ) = ( V .- X ) ) $.
      axtgupdim2.2 $e |- ( ph -> ( U .- Y ) = ( V .- Y ) ) $.
      axtgupdim2.3 $e |- ( ph -> ( U .- Z ) = ( V .- Z ) ) $.
      axtgupdim2.w $e |- ( ph -> G e. V ) $.
      axtgupdim2.g $e |- ( ph -> -. G TarskiGDim>= 3 ) $.
      $( Upper dimension axiom for dimension 2, Axiom A9 of [Schwabhauser]
         p. 13.  Three points ` X ` , ` Y ` and ` Z ` equidistant to two given
         two points ` U ` and ` V ` must be colinear.  (Contributed by Thierry
         Arnoux, 29-May-2019.)  (Revised by Thierry Arnoux, 11-Jul-2020.) $)
      axtgupdim2 $p |- ( ph ->
        ( Z e. ( X I Y ) \/ X e. ( Z I Y ) \/ Y e. ( X I Z ) ) ) $=
        ( vx vy vz vu vv co wcel w3o wceq w3a wn 3jca wa wi cv wral wrex wne c3
        cstrkgld wbr wb istrkg3ld syl notbid mpbid sylibr neeq1 oveq1 3anbi123d
        ralnex2 eqeq1d anbi1d rexbidv anbi12d neeq2 eqeq2d rspc2v syl2anc imnan
        mpd ralnex3 oveq2 eqeq12d 3anbi1d eleq2d eleq1 3orbi123d 3anbi2d rspc3v
        3anbi3d syl3anc notnotrd ) AJHIEUJZUKZHJIEUJZUKZIHJEUJZUKZULZACHFUJZGHF
        UJZUMZCIFUJZGIFUJZUMZCJFUJZGJFUJZUMZUNZXDUOZUOZAXGXJXMTUAUBUPAXNXOUQZUO
        ZXNXPURACUEUSZFUJZGXSFUJZUMZCUFUSZFUJZGYCFUJZUMZCUGUSZFUJZGYGFUJZUMZUNZ
        YGXSYCEUJZUKZXSYGYCEUJZUKZYCXSYGEUJZUKZULZUOZUQZUOZUGBUTUFBUTUEBUTZXRAY
        TUGBVAZUFBVAZUEBVAZUOZUUBACGVBZUUFSAUUGUUEUQZUOZUUGUUFURAUHUSZUIUSZVBZU
        UJXSFUJZUUKXSFUJZUMZUUJYCFUJZUUKYCFUJZUMZUUJYGFUJZUUKYGFUJZUMZUNZYSUQZU
        GBVAZUFBVAZUEBVAZUQZUOZUIBUTUHBUTZUUIAUVGUIBVAUHBVAZUOZUVIADVCVDVEZUOUV
        KUDAUVLUVJADGUKUVLUVJVFUCUEUFUGUIUHBDEFGKLMVGVHVIVJUVGUHUIBBVOVKACBUKGB
        UKUVIUUIURQRUVHUUICUUKVBZXTUUNUMZYDUUQUMZYHUUTUMZUNZYSUQZUGBVAZUFBVAZUE
        BVAZUQZUOUHUICGBBUUJCUMZUVGUWBUWCUULUVMUVFUWAUUJCUUKVLUWCUVEUVTUEBUWCUV
        DUVSUFBUWCUVCUVRUGBUWCUVBUVQYSUWCUUOUVNUURUVOUVAUVPUWCUUMXTUUNUUJCXSFVM
        VPUWCUUPYDUUQUUJCYCFVMVPUWCUUSYHUUTUUJCYGFVMVPVNVQVRVRVRVSVIUUKGUMZUWBU
        UHUWDUVMUUGUWAUUEUUKGCVTUWDUVTUUDUEBUWDUVSUUCUFBUWDUVRYTUGBUWDUVQYKYSUW
        DUVNYBUVOYFUVPYJUWDUUNYAXTUUKGXSFVMWAUWDUUQYEYDUUKGYCFVMWAUWDUUTYIYHUUK
        GYGFVMWAVNVQVRVRVRVSVIWBWCWEUUGUUEWDVKWEYTUEUFUGBBBWFVKAHBUKIBUKJBUKUUB
        XRURNOPUUAXRXGYFYJUNZYGHYCEUJZUKZHYNUKZYCHYGEUJZUKZULZUOZUQZUOXGXJYJUNZ
        YGWRUKZHYGIEUJZUKZIUWIUKZULZUOZUQZUOUEUFUGHIJBBBXSHUMZYTUWMUXBYKUWEYSUW
        LUXBYBXGYFYJUXBXTXEYAXFXSHCFWGXSHGFWGWHWIUXBYRUWKUXBYMUWGYOUWHYQUWJUXBY
        LUWFYGXSHYCEVMWJXSHYNWKUXBYPUWIYCXSHYGEVMWJWLVIVSVIYCIUMZUWMUXAUXCUWEUW
        NUWLUWTUXCYFXJXGYJUXCYDXHYEXIYCICFWGYCIGFWGWHWMUXCUWKUWSUXCUWGUWOUWHUWQ
        UWJUWRUXCUWFWRYGYCIHEWGWJUXCYNUWPHYCIYGEWGWJYCIUWIWKWLVIVSVIYGJUMZUXAXQ
        UXDUWNXNUWTXOUXDYJXMXGXJUXDYHXKYIXLYGJCFWGYGJGFWGWHWOUXDUWSXDUXDUWOWSUW
        QXAUWRXCYGJWRWKUXDUWPWTHYGJIEVMWJUXDUWIXBIYGJHEWGWJWLVIVSVIWNWPWEXNXOWD
        VKWEWQ $.
    $}

    ${
      $d a b u v x y z I $.  $d a b u v x y z P $.  $d a b v V $.
      $d a b u v U $.  $d a b u v x y z X $.  $d a b u v y z Y $.
      $d a b u v z Z $.  $d a b u v x y z .- $.
      axtgeucl.g $e |- ( ph -> G e. TarskiGE ) $.
      axtgeucl.1 $e |- ( ph -> X e. P ) $.
      axtgeucl.2 $e |- ( ph -> Y e. P ) $.
      axtgeucl.3 $e |- ( ph -> Z e. P ) $.
      axtgeucl.4 $e |- ( ph -> U e. P ) $.
      axtgeucl.5 $e |- ( ph -> V e. P ) $.
      axtgeucl.6 $e |- ( ph -> U e. ( X I V ) ) $.
      axtgeucl.7 $e |- ( ph -> U e. ( Y I Z ) ) $.
      axtgeucl.8 $e |- ( ph -> X =/= U ) $.
      $( Euclid's Axiom.  Axiom A10 of [Schwabhauser] p. 13.  This is
         equivalent to Euclid's parallel postulate when combined with other
         axioms.  (Contributed by Thierry Arnoux, 16-Mar-2019.) $)
      axtgeucl $p |- ( ph -> E. a e. P E. b e. P
        ( Y e. ( X I a ) /\ Z e. ( X I b ) /\ V e. ( a I b ) ) ) $=
        ( vu vv vx vy vz co wcel wne cv w3a wrex wi wral cvv cstrkge wa istrkge
        sylib simprd wceq oveq1 eleq2d neeq1 3anbi13d 3anbi12d 2rexbidv imbi12d
        2ralbidv 3anbi2d eleq1 3anbi1d oveq2 rspc3v syl3anc mpd neeq2 3anbi123d
        imbi1d 3anbi3d rspc2v syl2anc mp3and ) ACHGEUJZUKZCIJEUJZUKZHCULZIHKUMZ
        EUJZUKZJHLUMZEUJZUKZGWLWOEUJZUKZUNZLBUOKBUOZUBUCUDAUEUMZHUFUMZEUJZUKZXB
        WIUKZHXBULZUNZWNWQXCWRUKZUNZLBUOKBUOZUPZUFBUQUEBUQZWHWJWKUNZXAUPZAXBUGU
        MZXCEUJZUKZXBUHUMZUIUMZEUJZUKZXPXBULZUNZXSXPWLEUJZUKZXTXPWOEUJZUKZXIUNZ
        LBUOKBUOZUPZUFBUQUEBUQZUIBUQUHBUQUGBUQZXMADURUKZYMADUSUKYNYMUTPUGUHUIUF
        UEBDEFKLMNOVAVBVCAHBUKIBUKJBUKYMXMUPQRSYLXMXEYBXGUNZXSWMUKZXTWPUKZXIUNZ
        LBUOKBUOZUPZUFBUQUEBUQXEXBIXTEUJZUKZXGUNZWNYQXIUNZLBUOKBUOZUPZUFBUQUEBU
        QUGUHUIHIJBBBXPHVDZYKYTUEUFBBUUGYDYOYJYSUUGXRXEYCXGYBUUGXQXDXBXPHXCEVEV
        FXPHXBVGVHUUGYIYRKLBBUUGYFYPYHYQXIUUGYEWMXSXPHWLEVEVFUUGYGWPXTXPHWOEVEV
        FVIVJVKVLXSIVDZYTUUFUEUFBBUUHYOUUCYSUUEUUHYBUUBXEXGUUHYAUUAXBXSIXTEVEVF
        VMUUHYRUUDKLBBUUHYPWNYQXIXSIWMVNVOVJVKVLXTJVDZUUFXLUEUFBBUUIUUCXHUUEXKU
        UIUUBXFXEXGUUIUUAWIXBXTJIEVPVFVMUUIUUDXJKLBBUUIYQWQWNXIXTJWPVNVMVJVKVLV
        QVRVSACBUKGBUKXMXOUPTUAXLXOCXDUKZWJWKUNZXKUPUEUFCGBBXBCVDZXHUUKXKUULXEU
        UJXFWJXGWKXBCXDVNXBCWIVNXBCHVTWAWBXCGVDZUUKXNXKXAUUMUUJWHWJWKUUMXDWGCXC
        GHEVPVFVOUUMXJWTKLBBUUMXIWSWNWQXCGWRVNWCVJVKWDWEVSWF $.
    $}
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Tarskian Geometry
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Congruence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    tkgeom.p $e |- P = ( Base ` G ) $.
    tkgeom.d $e |- .- = ( dist ` G ) $.
    tkgeom.i $e |- I = ( Itv ` G ) $.
    tkgeom.g $e |- ( ph -> G e. TarskiG ) $.

    ${
      tgcgrcomimp.a $e |- ( ph -> A e. P ) $.
      tgcgrcomimp.b $e |- ( ph -> B e. P ) $.
      tgcgrcomimp.c $e |- ( ph -> C e. P ) $.
      tgcgrcomimp.d $e |- ( ph -> D e. P ) $.
      $( Congruence commutes on the RHS. Theorem 2.5 of [Schwabhauser] p. 27.
         (Contributed by David A. Wheeler, 29-Jun-2020.) $)
      tgcgrcomimp $p |- ( ph ->
        ( ( A .- B ) = ( C .- D ) -> ( A .- B ) = ( D .- C ) ) ) $=
        ( co wceq axtgcgrrflx eqeq2d biimpd ) ABCIRZDEIRZSUCEDIRZSAUDUEUCAFGHID
        EJKLMPQTUAUB $.
    $}

    ${
      tgcgrcomr.a $e |- ( ph -> A e. P ) $.
      tgcgrcomr.b $e |- ( ph -> B e. P ) $.
      tgcgrcomr.c $e |- ( ph -> C e. P ) $.
      tgcgrcomr.d $e |- ( ph -> D e. P ) $.
      tgcgrcomr.6 $e |- ( ph -> ( A .- B ) = ( C .- D ) ) $.
      $( Congruence commutes on the RHS. Variant of Theorem 2.5 of
         [Schwabhauser] p. 27, but in a convenient form for a common case.
         (Contributed by David A. Wheeler, 29-Jun-2020.) $)
      tgcgrcomr $p |- ( ph -> ( A .- B ) = ( D .- C ) ) $=
        ( co axtgcgrrflx eqtrd ) ABCISDEISEDISRAFGHIDEJKLMPQTUA $.

      $( Congruence commutes on the LHS. Variant of Theorem 2.5 of
         [Schwabhauser] p. 27, but in a convenient form for a common case.
         (Contributed by David A. Wheeler, 29-Jun-2020.) $)
      tgcgrcoml $p |- ( ph -> ( B .- A ) = ( C .- D ) ) $=
        ( co axtgcgrrflx eqtr3d ) ABCISCBISDEISAFGHIBCJKLMNOTRUA $.
    $}

    ${
      tgcgrcomlr.a $e |- ( ph -> A e. P ) $.
      tgcgrcomlr.b $e |- ( ph -> B e. P ) $.
      tgcgrcomlr.c $e |- ( ph -> C e. P ) $.
      tgcgrcomlr.d $e |- ( ph -> D e. P ) $.
      tgcgrcomlr.6 $e |- ( ph -> ( A .- B ) = ( C .- D ) ) $.
      $( Congruence commutes on both sides.  (Contributed by Thierry Arnoux,
         23-Mar-2019.) $)
      tgcgrcomlr $p |- ( ph -> ( B .- A ) = ( D .- C ) ) $=
        ( co axtgcgrrflx 3eqtr3d ) ABCISDEISCBISEDISRAFGHIBCJKLMNOTAFGHIDEJKLMP
        QTUA $.

      $( Congruence and equality.  (Contributed by Thierry Arnoux,
         27-Aug-2019.) $)
      tgcgreqb $p |- ( ph -> ( A = B <-> C = D ) ) $=
        ( wcel adantr wa cstrkg co simpr oveq1d eqtr3d axtgcgrid eqtrd impbida
        wceq ) ABCUJZDEUJZAUKUAZFGHIDECJKLAGUBSZUKMTADFSUKPTAEFSZUKQTACFSZUKOTU
        MBCIUCZDEIUCZCCIUCAUQURUJZUKRTUMBCCIAUKUDUEUFUGAULUAZFGHIBCEJKLAUNULMTA
        BFSULNTAUPULOTAUOULQTUTUQUREEIUCAUSULRTUTDEEIAULUDUEUHUGUI $.

      ${
        tgcgreq.1 $e |- ( ph -> A = B ) $.
        $( Congruence and equality.  (Contributed by Thierry Arnoux,
           27-Aug-2019.) $)
        tgcgreq $p |- ( ph -> C = D ) $=
          ( wceq tgcgreqb mpbid ) ABCTDETSABCDEFGHIJKLMNOPQRUAUB $.
      $}

      ${
        tgcgrneq.1 $e |- ( ph -> A =/= B ) $.
        $( Congruence and equality.  (Contributed by Thierry Arnoux,
           27-Aug-2019.) $)
        tgcgrneq $p |- ( ph -> C =/= D ) $=
          ( wne tgcgreqb necon3bid mpbid ) ABCTDETSABCDEABCDEFGHIJKLMNOPQRUAUBU
          C $.
      $}
    $}

    ${
      $d x .- $.  $d x A $.  $d x B $.  $d x I $.  $d x P $.  $d x ph $.
      tgcgrtriv.1 $e |- ( ph -> A e. P ) $.
      tgcgrtriv.2 $e |- ( ph -> B e. P ) $.
      $( Degenerate segments are congruent.  Theorem 2.8 of [Schwabhauser]
         p. 28.  (Contributed by Thierry Arnoux, 23-Mar-2019.) $)
      tgcgrtriv $p |- ( ph -> ( A .- A ) = ( B .- B ) ) $=
        ( vx cv co wcel wceq wa ad2antrr cstrkg simplr simprr oveq2d axtgsegcon
        axtgcgrid eqtrd r19.29a ) ABCNOZFPQZBUIGPZCCGPZRZSZBBGPZULRNDAUIDQZSZUN
        SZUOUKULURBUIBGURDEFGBUICHIJAEUAQUPUNKTABDQUPUNLTAUPUNUBACDQUPUNMTUQUJU
        MUCZUFUDUSUGANCCDEFGCBHIJKMLMMUEUH $.
    $}

    ${
      tgcgrextend.a $e |- ( ph -> A e. P ) $.
      tgcgrextend.b $e |- ( ph -> B e. P ) $.
      tgcgrextend.c $e |- ( ph -> C e. P ) $.
      tgcgrextend.d $e |- ( ph -> D e. P ) $.
      tgcgrextend.e $e |- ( ph -> E e. P ) $.
      tgcgrextend.f $e |- ( ph -> F e. P ) $.
      ${
        tgcgrextend.1 $e |- ( ph -> B e. ( A I C ) ) $.
        tgcgrextend.2 $e |- ( ph -> E e. ( D I F ) ) $.
        tgcgrextend.3 $e |- ( ph -> ( A .- B ) = ( D .- E ) ) $.
        tgcgrextend.4 $e |- ( ph -> ( B .- C ) = ( E .- F ) ) $.
        $( Link congruence over a pair of line segments.  Theorem 2.11 of
           [Schwabhauser] p. 29.  (Contributed by Thierry Arnoux, 23-Mar-2019.)
           (Shortened by David A. Wheeler and Thierry Arnoux, 22-Apr-2020.) $)
        tgcgrextend $p |- ( ph -> ( A .- C ) = ( D .- F ) ) $=
          ( co wceq wa adantr simpr oveq1d cstrkg tgcgreq 3eqtr4d wne tgcgrtriv
          wcel tgcgrcomlr axtg5seg pm2.61dane ) ABDKUFZEHKUFZUGBCABCUGZUHZCDKUF
          ZGHKUFZVAVBAVEVFUGZVCUEUIVDBCDKAVCUJZUKVDEGHKVDBCEGFIJKLMNAIULUQZVCOU
          IABFUQZVCPUIACFUQZVCQUIAEFUQZVCSUIAGFUQZVCTUIABCKUFEGKUFUGZVCUDUIVHUM
          UKUNABCUOZUHZDBHEFIJKLMNAVIVOOUIZADFUQVORUIZAVJVOPUIZAHFUQVOUAUIZAVLV
          OSUIZVPEGHFBIJKEBCDLMNVQVSAVKVOQUIZVRWAAVMVOTUIZVTVSWAAVOUJACBDJUFUQV
          OUBUIAGEHJUFUQVOUCUIAVNVOUDUIZAVGVOUEUIVPBEFIJKLMNVQVSWAUPVPBCEGFIJKL
          MNVQVSWBWAWCWDURUSURUT $.
      $}

      ${
        tgsegconeq.1 $e |- ( ph -> D =/= A ) $.
        tgsegconeq.2 $e |- ( ph -> A e. ( D I E ) ) $.
        tgsegconeq.3 $e |- ( ph -> A e. ( D I F ) ) $.
        tgsegconeq.4 $e |- ( ph -> ( A .- E ) = ( B .- C ) ) $.
        tgsegconeq.5 $e |- ( ph -> ( A .- F ) = ( B .- C ) ) $.
        $( Two points that satisfy the conclusion of ~ axtgsegcon are
           identical.  Uniqueness portion of Theorem 2.12 of [Schwabhauser]
           p. 29.  (Contributed by Thierry Arnoux, 23-Mar-2019.) $)
        tgsegconeq $p |- ( ph -> E = F ) $=
          ( co eqidd eqtr4d tgcgrextend axtg5seg eqcomd axtgcgrid ) AFIJKGHGLMN
          OTUATAGGKUGGHKUGAEBGFGIJKHEBGLMNOSPTSPTTUAUBUCUCAEBKUGUHZABGKUGZUHAEB
          GEFBHIJKLMNOSPTSPUAUCUDUNAUOCDKUGBHKUGUEUFUIZUJUPUKULUM $.
      $}
    $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Betweenness
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

    $d x .- $.  $d x A $.  $d x B $.  $d x C $.  $d x D $.  $d x I $.
    $d x P $.  $d x ph $.
    ${
      tgbtwntriv2.1 $e |- ( ph -> A e. P ) $.
      tgbtwntriv2.2 $e |- ( ph -> B e. P ) $.
      $( Betweenness always holds for the second endpoint.  Theorem 3.1 of
         [Schwabhauser] p. 30.  (Contributed by Thierry Arnoux,
         15-Mar-2019.) $)
      tgbtwntriv2 $p |- ( ph -> B e. ( A I B ) ) $=
        ( vx cv co wcel wceq wa ad2antrr simprl cstrkg simplr axtgcgrid adantrl
        simpr oveq2d eleqtrrd axtgsegcon r19.29a ) ACBNOZFPZQZCUKGPCCGPRZSZCBCF
        PZQNDAUKDQZSZUOSZCULUPURUMUNUAUSCUKBFURUNCUKRUMURUNSDEFGCUKCHIJAEUBQUQU
        NKTACDQUQUNMTZAUQUNUCUTURUNUFUDUEUGUHANCCDEFGBCHIJKLMMMUIUJ $.

      ${
        tgbtwncom.3 $e |- ( ph -> C e. P ) $.
        tgbtwncom.4 $e |- ( ph -> B e. ( A I C ) ) $.
        $( Betweenness commutes.  Theorem 3.2 of [Schwabhauser] p. 30.
           (Contributed by Thierry Arnoux, 15-Mar-2019.) $)
        tgbtwncom $p |- ( ph -> B e. ( C I A ) ) $=
          ( vx co wcel wa cv cstrkg simplr simprl axtgbtwnid simprr tgbtwntriv2
          ad2antrr eqeltrd axtgpasch r19.29a ) AQUAZCCGRSZULDBGRZSZTZCUNSQEAULE
          SZTZUPTZCULUNUSEFGHCULIJKAFUBSUQUPLUHACESUQUPNUHAUQUPUCURUMUOUDUEURUM
          UOUFUIAECFGHDBCDQIJKLMNONOPACDEFGHIJKLNOUGUJUK $.
      $}

      ${
        tgbtwncomb.3 $e |- ( ph -> C e. P ) $.
        $( Betweenness commutes, biconditional version.  (Contributed by
           Thierry Arnoux, 3-Apr-2019.) $)
        tgbtwncomb $p |- ( ph -> ( B e. ( A I C ) <-> B e. ( C I A ) ) ) $=
          ( co wcel wa adantr simpr cstrkg tgbtwncom impbida ) ACBDGPQZCDBGPQZA
          UDRBCDEFGHIJKAFUAQZUDLSABEQZUDMSACEQZUDNSADEQZUDOSAUDTUBAUERDCBEFGHIJ
          KAUFUELSAUIUEOSAUHUENSAUGUEMSAUETUBUC $.

        ${
          tgbtwnne.1 $e |- ( ph -> B e. ( A I C ) ) $.
          tgbtwnne.2 $e |- ( ph -> B =/= A ) $.
          $( Betweenness and inequality.  (Contributed by Thierry Arnoux,
             1-Dec-2019.) $)
          tgbtwnne $p |- ( ph -> A =/= C ) $=
            ( wceq wcel adantr wa cstrkg co simpr oveq2d eleqtrrd eqcomd neneqd
            axtgbtwnid wne pm2.65da neqned ) ABDABDRZCBRAUMUAZBCUNEFGHBCIJKAFUB
            SUMLTABESUMMTACESUMNTUNCBDGUCZBBGUCACUOSUMPTUNBDBGAUMUDUEUFUIUGUNCB
            ACBUJUMQTUHUKUL $.
        $}
      $}

      $( Betweenness always holds for the first endpoint.  Theorem 3.3 of
         [Schwabhauser] p. 30.  (Contributed by Thierry Arnoux,
         15-Mar-2019.) $)
      tgbtwntriv1 $p |- ( ph -> A e. ( A I B ) ) $=
        ( tgbtwntriv2 tgbtwncom ) ACBBDEFGHIJKMLLACBDEFGHIJKMLNO $.
    $}

    ${
      tgbtwnswapid.1 $e |- ( ph -> A e. P ) $.
      tgbtwnswapid.2 $e |- ( ph -> B e. P ) $.
      tgbtwnswapid.3 $e |- ( ph -> C e. P ) $.
      tgbtwnswapid.4 $e |- ( ph -> A e. ( B I C ) ) $.
      tgbtwnswapid.5 $e |- ( ph -> B e. ( A I C ) ) $.
      $( If you can swap the first two arguments of a betweenness statement,
         then those arguments are identical.  Theorem 3.4 of [Schwabhauser]
         p. 30.  (Contributed by Thierry Arnoux, 16-Mar-2019.) $)
      tgbtwnswapid $p |- ( ph -> A = B ) $=
        ( vx wcel wa cv co wceq cstrkg ad2antrr simplr simprl axtgbtwnid simprr
        eqtr4d axtgpasch r19.29a ) ARUAZBBGUBSZUMCCGUBSZTZBCUCREAUMESZTZUPTZBUM
        CUSEFGHBUMIJKAFUDSUQUPLUEZABESUQUPMUEAUQUPUFZURUNUOUGUHUSEFGHCUMIJKUTAC
        ESUQUPNUEVAURUNUOUIUHUJAEBFGHCCBDRIJKLNMOMNPQUKUL $.
    $}

    tgbtwnintr.1 $e |- ( ph -> A e. P ) $.
    tgbtwnintr.2 $e |- ( ph -> B e. P ) $.
    tgbtwnintr.3 $e |- ( ph -> C e. P ) $.
    tgbtwnintr.4 $e |- ( ph -> D e. P ) $.
    ${
      tgbtwnintr.5 $e |- ( ph -> A e. ( B I D ) ) $.
      tgbtwnintr.6 $e |- ( ph -> B e. ( C I D ) ) $.
      $( Inner transitivity law for betweenness.  Left-hand side of Theorem 3.5
         of [Schwabhauser] p. 30.  (Contributed by Thierry Arnoux,
         18-Mar-2019.) $)
      tgbtwnintr $p |- ( ph -> B e. ( A I C ) ) $=
        ( wcel vx cv co cstrkg ad2antrr simplr simprr axtgbtwnid simprl eqeltrd
        wa axtgpasch r19.29a ) AUAUBZBDHUCZTZUNCCHUCTZUKZCUOTUAFAUNFTZUKZURUKZC
        UNUOVAFGHICUNJKLAGUDTUSURMUEACFTUSUROUEAUSURUFUTUPUQUGUHUTUPUQUIUJAFBGH
        ICCDEUAJKLMOPQNORSULUM $.
    $}

    ${
      tgbtwnexch3.5 $e |- ( ph -> B e. ( A I C ) ) $.
      tgbtwnexch3.6 $e |- ( ph -> C e. ( A I D ) ) $.
      $( Exchange the first endpoint in betweenness.  Left-hand side of Theorem
         3.6 of [Schwabhauser] p. 30.  (Contributed by Thierry Arnoux,
         18-Mar-2019.) $)
      tgbtwnexch3 $p |- ( ph -> C e. ( B I D ) ) $=
        ( tgbtwncom tgbtwnintr ) ACDEBFGHIJKLMOPQNABCDFGHIJKLMNOPRTABDEFGHIJKLM
        NPQSTUA $.
    $}

    ${
      tgbtwnouttr2.1 $e |- ( ph -> B =/= C ) $.
      tgbtwnouttr2.2 $e |- ( ph -> B e. ( A I C ) ) $.
      tgbtwnouttr2.3 $e |- ( ph -> C e. ( B I D ) ) $.
      $( Outer transitivity law for betweenness.  Left-hand side of Theorem 3.7
         of [Schwabhauser] p. 30.  (Contributed by Thierry Arnoux,
         18-Mar-2019.) $)
      tgbtwnouttr2 $p |- ( ph -> C e. ( A I D ) ) $=
        ( vx cv co wcel wa simprl cstrkg ad2antrr simplr wne tgbtwnexch3 simprr
        wceq eqidd tgsegconeq oveq2d eleqtrd axtgsegcon r19.29a ) ADBUAUBZHUCZU
        DZDUTIUCDEIUCZUMZUEZDBEHUCZUDUAFAUTFUDZUEZVEUEZDVAVFVHVBVDUFZVIUTEBHVID
        DECFUTEGHIJKLAGUGUDVGVEMUHZADFUDVGVEPUHZVLAEFUDVGVEQUHZACFUDVGVEOUHZAVG
        VEUIZVMACDUJVGVERUHVIBCDUTFGHIJKLVKABFUDVGVENUHVNVLVOACBDHUCUDVGVESUHVJ
        UKADCEHUCUDVGVETUHVHVBVDULVIVCUNUOUPUQAUADEFGHIBDJKLMNPPQURUS $.
    $}

    ${
      tgbtwnexch2.1 $e |- ( ph -> B e. ( A I D ) ) $.
      tgbtwnexch2.2 $e |- ( ph -> C e. ( B I D ) ) $.
      $( Exchange the outer point of two betweenness statements.  Right-hand
         side of Theorem 3.5 of [Schwabhauser] p. 30.  (Contributed by Thierry
         Arnoux, 23-Mar-2019.) $)
      tgbtwnexch2 $p |- ( ph -> C e. ( A I D ) ) $=
        ( wcel co wceq wa simpr adantr eqeltrrd wne cstrkg tgbtwnintr tgbtwncom
        tgbtwnouttr2 pm2.61dane ) ADBEHUAZTCDACDUBZUCCDUMAUNUDACUMTZUNRUEUFACDU
        GZUCZBCDEFGHIJKLAGUHTUPMUEZABFTUPNUEZACFTUPOUEZADFTUPPUEZAEFTUPQUEZAUPU
        DUQDCBFGHIJKLURVAUTUSUQDCBEFGHIJKLURVAUTUSVBADCEHUATUPSUEZAUOUPRUEUIUJV
        CUKUL $.
    $}

    ${
      tgbtwnouttr.1 $e |- ( ph -> B =/= C ) $.
      tgbtwnouttr.2 $e |- ( ph -> B e. ( A I C ) ) $.
      tgbtwnouttr.3 $e |- ( ph -> C e. ( B I D ) ) $.
      $( Outer transitivity law for betweenness.  Right-hand side of Theorem
         3.7 of [Schwabhauser] p. 30.  (Contributed by Thierry Arnoux,
         23-Mar-2019.) $)
      tgbtwnouttr $p |- ( ph -> B e. ( A I D ) ) $=
        ( necomd tgbtwncom tgbtwnouttr2 ) AECBFGHIJKLMQONAEDCBFGHIJKLMQPONACDRU
        AACDEFGHIJKLMOPQTUBABCDFGHIJKLMNOPSUBUCUB $.
    $}

    ${
      tgbtwnexch.1 $e |- ( ph -> B e. ( A I C ) ) $.
      tgbtwnexch.2 $e |- ( ph -> C e. ( A I D ) ) $.
      $( Outer transitivity law for betweenness.  Right-hand side of Theorem
         3.6 of [Schwabhauser] p. 30.  (Contributed by Thierry Arnoux,
         23-Mar-2019.) $)
      tgbtwnexch $p |- ( ph -> B e. ( A I D ) ) $=
        ( tgbtwncom tgbtwnexch2 ) AECBFGHIJKLMQONAEDCBFGHIJKLMQPONABDEFGHIJKLMN
        PQSTABCDFGHIJKLMNOPRTUAT $.
    $}

    ${
      $d q r .- $.  $d q r A $.  $d q r B $.  $d q r C $.  $d q r D $.
      $d q r E $.  $d q r F $.  $d q r I $.  $d q r P $.  $d q r ph $.
      tgtrisegint.e $e |- ( ph -> E e. P ) $.
      tgtrisegint.p $e |- ( ph -> F e. P ) $.
      tgtrisegint.1 $e |- ( ph -> B e. ( A I C ) ) $.
      tgtrisegint.2 $e |- ( ph -> E e. ( D I C ) ) $.
      tgtrisegint.3 $e |- ( ph -> F e. ( A I D ) ) $.
      $( A line segment between two sides of a triange intersects a segment
         crossing from the remaining side to the opposite vertex.  Theorem 3.17
         of [Schwabhauser] p. 33.  (Contributed by Thierry Arnoux,
         23-Mar-2019.) $)
      tgtrisegint $p |- ( ph
        -> E. q e. P ( q e. ( F I C ) /\ q e. ( B I E ) ) ) $=
        ( vr cv co wcel wa wrex cstrkg simplr simprl tgbtwncom axtgpasch simprr
        ad2antrr simpr tgbtwnexch2 ex anim1d reximdva mpd r19.29a ) AUFUGZGBJUH
        UIZVFHDJUHZUIZUJZLUGZVHUIZVKCGJUHUIZUJZLFUKZUFFAVFFUIZUJZVJUJZVKVFDJUHU
        IZVMUJZLFUKVOVRFVFIJKCGDBLMNOAIULUIZVPVJPURZAGFUIVPVJUAURADFUIZVPVJSURZ
        ABFUIVPVJQURZAVPVJUMZACFUIVPVJRURZVQVGVIUNVRBCDFIJKMNOWBWEWGWDACBDJUHUI
        VPVJUCURUOUPVRVTVNLFVRVKFUIZUJZVSVLVMWIVSVLWIVSUJHVFVKDFIJKMNOVRWAWHVSW
        BURVRHFUIZWHVSAWJVPVJUBURURVRVPWHVSWFURVRWHVSUMVRWCWHVSWDURVRVIWHVSVQVG
        VIUQURWIVSUSUTVAVBVCVDAFGIJKHDBEUFMNOPSQTUAUBAEGDFIJKMNOPTUASUDUOUEUPVE
        $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Dimension
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y P $.
    tglowdim1.p $e |- P = ( Base ` G ) $.
    tglowdim1.d $e |- .- = ( dist ` G ) $.
    tglowdim1.i $e |- I = ( Itv ` G ) $.
    tglowdim1.g $e |- ( ph -> G e. TarskiG ) $.
    tglowdim1.1 $e |- ( ph -> 2 <_ ( # ` P ) ) $.
    $( Lower dimension axiom for one dimension.  In dimension at least 1, there
       are at least two distinct points.  The condition "the space is of
       dimension 1 or more" is written here as ` 2 <_ ( # `` P ) ` to avoid a
       new definition, but a different convention could be chosen.
       (Contributed by Thierry Arnoux, 23-Mar-2019.) $)
    tglowdim1 $p |- ( ph -> E. x e. P E. y e. P x =/= y ) $=
      ( cvv wcel c2 chash cfv cv wrex cbs cle wbr eqeltri hashge2el2dif sylancr
      wne fvex ) ADMNODPQUAUBBRCRUFCDSBDSDETQMHETUGUCLBCDMUDUE $.

    $d a b y P $.  $d a b y X $.  $d a b ph $.
    tglowdim1i.1 $e |- ( ph -> X e. P ) $.
    $( Lower dimension axiom for one dimension.  (Contributed by Thierry
       Arnoux, 28-May-2019.) $)
    tglowdim1i $p |- ( ph -> E. y e. P X =/= y ) $=
      ( va vb cv wceq wn wrex wa wne wral cstrkg wcel adantr c2 chash tglowdim1
      cfv cle wbr simpllr simplr eqeq2 rspccva syl2anc eqtr3d nne sylibr nrexdv
      sylancom pm2.65da rexnal df-ne rexbii ) AGBPZQZRZBCSZGVFUAZBCSAVGBCUBZRVI
      AVKNPZOPZUAZOCSZNCSAVKTZNOCDEFHIJADUCUDVKKUEAUFCUGUIUJUKVKLUEUHVPVONCVPVL
      CUDZTZVNOCVRVMCUDZTZVLVMQVNRVTGVLVMVTVKVQGVLQZAVKVQVSULZVPVQVSUMVGWABVLCV
      FVLGUNUOUPVRVSVKGVMQZWBVGWCBVMCVFVMGUNUOVAUQVLVMURUSUTUTVBVGBCVCUSVJVHBCG
      VFVDVEUS $.
  $}

  ${
    tgldimor.p $e |- P = ( E ` F ) $.
    tgldimor.a $e |- ( ph -> A e. P ) $.
    $( Excluded-middle like statement allowing to treat dimension zero as a
       special case.  (Contributed by Thierry Arnoux, 11-Apr-2019.) $)
    tgldimor $p |- ( ph -> ( ( # ` P ) = 1 \/ 2 <_ ( # ` P ) ) ) $=
      ( cfv c1 wceq c2 cle wbr wo cvv wcel ax-mp cpnf wb c0 cc0 clt w3o eqeltri
      chash fvex hashv01gt1 3orass mpbi wa caddc co 1p1e2 cz 1z zltp1le sylancr
      cn0 nn0z biimpac syl5eqbrr cxr rexri pnfge breq2 mpbiri adantl hashnn0pnf
      2re mp1i mpjaodan orim2i wn wne ne0i hasheq0 biimpi necon3ai biorf mpbird
      3syl syl ) ACUEHZIJZKWCLMZNZWCUAJZWFNZWGWDIWCUBMZNZNZWHAWGWDWIUCZWKCOPZWL
      CEDHOFEDUFUDZCOUGQWGWDWIUHUIWJWFWGWIWEWDWIWCURPZWEWCRJZWIWOUJKIIUKULZWCLU
      MWOWIWQWCLMZWOIUNPWCUNPWIWRSUOWCUSIWCUPUQUTVAWPWEWIWPWEKRLMZKVBPWSKVIVCKV
      DQWCRKLVEVFVGWMWOWPNWIWNCOVHVJVKVLVLVJAWGVMZWFWHSABCPCTVNWTGCBVOWGCTWGCTJ
      ZWMWGXASWNCOVPQVQVRWAWGWFVSWBVT $.
  $}

  ${
    $d x A $.  $d x B $.  $d x P $.  $d x ph $.
    tgldim0.g $e |- P = ( E ` F ) $.
    tgldim0.p $e |- ( ph -> ( # ` P ) = 1 ) $.
    tgldim0.a $e |- ( ph -> A e. P ) $.
    tgldim0.b $e |- ( ph -> B e. P ) $.
    $( In dimension zero, any two points are equal.  (Contributed by Thierry
       Arnoux, 11-Apr-2019.) $)
    tgldim0eq $p |- ( ph -> A = B ) $=
      ( vx cv wceq cfv cvv wcel adantr eleqtrd elsni syl csn chash fvex eqeltri
      c1 wex wb hash1snb ax-mp sylib wa simpr eqtr4d exlimddv ) ADKLZUAZMZBCMKA
      DUBNUEMZUQKUFZHDOPURUSUGDFENOGFEUCUDDOKUHUIUJAUQUKZBUOCUTBUPPBUOMUTBDUPAB
      DPUQIQAUQULZRBUOSTUTCUPPCUOMUTCDUPACDPUQJQVARCUOSTUMUN $.
  $}

  ${
    tgbtwndiff.p $e |- P = ( Base ` G ) $.
    tgbtwndiff.d $e |- .- = ( dist ` G ) $.
    tgbtwndiff.i $e |- I = ( Itv ` G ) $.
    tgbtwndiff.g $e |- ( ph -> G e. TarskiG ) $.
    tgbtwndiff.a $e |- ( ph -> A e. P ) $.
    tgbtwndiff.b $e |- ( ph -> B e. P ) $.
    ${
      tgldim0itv.c $e |- ( ph -> C e. P ) $.
      tgldim0itv.p $e |- ( ph -> ( # ` P ) = 1 ) $.
      $( In dimension zero, any two points are equal.  (Contributed by Thierry
         Arnoux, 12-Apr-2019.) $)
      tgldim0itv $p |- ( ph -> A e. ( B I C ) ) $=
        ( co cbs tgldim0eq tgbtwntriv1 eqeltrd ) ABCCDGQABCERFIPMNSACDEFGHIJKLN
        OTUA $.

      tgldim0itv.d $e |- ( ph -> D e. P ) $.
      $( In dimension zero, any two pairs of points are congruent.
         (Contributed by Thierry Arnoux, 12-Apr-2019.) $)
      tgldim0cgr $p |- ( ph -> ( A .- B ) = ( C .- D ) ) $=
        ( cbs tgldim0eq oveq12d ) ABDCEIABDFSGJQNPTACEFSGJQORTUA $.
    $}

    $d c u v .- $.  $d c u v A $.  $d c u v B $.  $d c u v I $.  $d c u v P $.
    $d c u v ph $.
    tgbtwndiff.l $e |- ( ph -> 2 <_ ( # ` P ) ) $.
    $( There is always a ` c ` distinct from ` B ` such that ` B ` lies between
       ` A ` and ` c ` .  Theorem 3.14 of [Schwabhauser] p. 32.  The condition
       "the space is of dimension 1 or more" is written here as
       ` 2 <_ ( # `` P ) ` for simplicity.  (Contributed by Thierry Arnoux,
       23-Mar-2019.) $)
    tgbtwndiff $p |- ( ph -> E. c e. P ( B e. ( A I c ) /\ B =/= c ) ) $=
      ( vu co wcel wa ad3antrrr vv cv wne wrex cstrkg simpllr simplr axtgsegcon
      wceq simpr oveq2d eqtr2d axtgcgrid neneqd pm2.65da neqned anim2d reximdva
      simp-4r ex mpd tglowdim1 r19.29vva ) APUBZUAUBZUCZCBHUBZFQRZCVGUCZSZHDUDZ
      PUADDAVDDRZSZVEDRZSZVFSZVHCVGGQZVDVEGQZUIZSZHDUDVKVPHVDVEDEFGBCIJKAEUERZV
      LVNVFLTZABDRVLVNVFMTACDRZVLVNVFNTZAVLVNVFUFZVMVNVFUGZUHVPVTVJHDVPVGDRZSZV
      SVIVHWHVSVIWHVSSZCVGWICVGUIZVDVEUIWIWJSZDEFGVDVECIJKVPWAWGVSWJWBTVPVLWGVS
      WJWETVPVNWGVSWJWFTVPWCWGVSWJWDTWKCCGQVQVRWKCVGCGWIWJUJUKWHVSWJUGULUMWKVDV
      EVOVFWGVSWJUSUNUOUPUTUQURVAAPUADEFGIJKLOVBVC $.
  $}

  ${
    $d G x y z $.  $d I x y z $.  $d P x y z $.  $d X x y z $.  $d Y y z $.
    $d Z z $.
    tgdim01.p $e |- P = ( Base ` G ) $.
    tgdim01.i $e |- I = ( Itv ` G ) $.
    tgdim01.g $e |- ( ph -> G e. V ) $.
    tgdim01.1 $e |- ( ph -> -. G TarskiGDim>= 2 ) $.
    tgdim01.x $e |- ( ph -> X e. P ) $.
    tgdim01.y $e |- ( ph -> Y e. P ) $.
    tgdim01.z $e |- ( ph -> Z e. P ) $.
    $( In geometries of dimension lower than 2, all points are colinear.
       (Contributed by Thierry Arnoux, 27-Aug-2019.) $)
    tgdim01 $p |- ( ph
                 -> ( Z e. ( X I Y ) \/ X e. ( Z I Y ) \/ Y e. ( X I Z ) ) ) $=
      ( vz vx vy wcel co cv w3o wral wn wrex c2 cstrkgld wbr cds eqid istrkg2ld
      cfv syl mtbid rexnal2 rexbii rexnal bitri con2bii sylibr w3a oveq1 eleq2d
      wb wceq eleq1 3orbi123d oveq2 rspc3v imp syl31anc ) AFBSZGBSZHBSZPUAZQUAZ
      RUAZDTZSZVPVOVQDTZSZVQVPVODTZSZUBZPBUCRBUCZQBUCZHFGDTZSZFHGDTZSZGFHDTZSZU
      BZMNOAWDUDPBUERBUEZQBUEZUDWFACUFUGUHZWOLACESWPWOVDKQRPBCDCUIULZEIWQUJJUKU
      MUNWOWFWOWEUDZQBUEWFUDWNWRQBWDRPBBUOUPWEQBUQURUSUTVLVMVNVAWFWMWDWMVOFVQDT
      ZSZFVTSZVQFVODTZSZUBVOWGSZFVOGDTZSZGXBSZUBQRPFGHBBBVPFVEZVSWTWAXAWCXCXHVR
      WSVOVPFVQDVBVCVPFVTVFXHWBXBVQVPFVODVBVCVGVQGVEZWTXDXAXFXCXGXIWSWGVOVQGFDV
      HVCXIVTXEFVQGVODVHVCVQGXBVFVGVOHVEZXDWHXFWJXGWLVOHWGVFXJXEWIFVOHGDVBVCXJX
      BWKGVOHFDVHVCVGVIVJVK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Betweenness and Congruence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    tgbtwncgr.p $e |- P = ( Base ` G ) $.
    tgbtwncgr.m $e |- .- = ( dist ` G ) $.
    tgbtwncgr.i $e |- I = ( Itv ` G ) $.
    tgbtwncgr.g $e |- ( ph -> G e. TarskiG ) $.
    tgbtwncgr.a $e |- ( ph -> A e. P ) $.
    tgbtwncgr.b $e |- ( ph -> B e. P ) $.
    tgbtwncgr.c $e |- ( ph -> C e. P ) $.
    tgbtwncgr.d $e |- ( ph -> D e. P ) $.
    ${
      $d e f .- $.  $d e f A $.  $d e f B $.  $d e f C $.  $d e f D $.
      $d f E $.  $d e f F $.  $d f K $.  $d e f H $.  $d e f I $.  $d e f P $.
      $d e f ph $.
      tgifscgr.e $e |- ( ph -> E e. P ) $.
      tgifscgr.f $e |- ( ph -> F e. P ) $.
      tgifscgr.g $e |- ( ph -> K e. P ) $.
      tgifscgr.h $e |- ( ph -> H e. P ) $.
      tgifscgr.1 $e |- ( ph -> B e. ( A I C ) ) $.
      tgifscgr.2 $e |- ( ph -> F e. ( E I K ) ) $.
      tgifscgr.3 $e |- ( ph -> ( A .- C ) = ( E .- K ) ) $.
      tgifscgr.4 $e |- ( ph -> ( B .- C ) = ( F .- K ) ) $.
      tgifscgr.5 $e |- ( ph -> ( A .- D ) = ( E .- H ) ) $.
      tgifscgr.6 $e |- ( ph -> ( C .- D ) = ( K .- H ) ) $.
      $( Inner five segment congruence.  Take two triangles, ` A D C ` and
         ` E H K ` , with ` B ` between ` A ` and ` C ` and ` F ` between ` E `
         and ` K ` .  If the other components of the triangles are congruent,
         then so are ` B D ` and ` F H ` .  Theorem 4.2 of [Schwabhauser]
         p. 34.  (Contributed by Thierry Arnoux, 24-Mar-2019.) $)
      tgifscgr $p |- ( ph -> ( B .- D ) = ( F .- H ) ) $=
        ( ve vf chash cfv c1 wceq co c2 cle wbr wa cstrkg wcel simpr tgldim0cgr
        adantr oveq1d eleqtrd axtgbtwnid oveq2d eqtr2d axtgcgrid 3eqtr3d wne cv
        simp-4r ad6antr simplr ad4antr simpllr simprd necomd simpld tgbtwnexch3
        ad2antrr tgbtwncom simprl simprr tgcgrcomlr simp-5r axtg5seg axtgsegcon
        eqcomd r19.29a tgbtwndiff pm2.61dane cbs tgldimor mpjaodan ) AFUNUOZUPU
        QZCEMURZHJMURZUQZUSXAUTVAZAXBVBCEHJFIKMNOPAIVCVDZXBQVGACFVDZXBSVGAEFVDZ
        XBUAVGAHFVDZXBUCVGAXBVEAJFVDZXBUEVGVFAXFVBZXEBDXLBDUQZVBZDEMURZLJMURZXC
        XDAXOXPUQZXFXMUKWFXNDCEMXNFIKMDCNOPAXGXFXMQWFZADFVDZXFXMTWFAXHXFXMSWFXN
        CBDKURZDDKURACXTVDZXFXMUFWFXNBDDKXLXMVEZVHVIVJVHXNLHJMXNFIKMLHNOPXRALFV
        DZXFXMUDWFZAXJXFXMUCWFXNHGLKURZLLKURAHYEVDZXFXMUGWFXNGLLKXNFIKMGLBNOPXR
        AGFVDZXFXMUBWFYDABFVDZXFXMRWFXNBBMURBDMURZGLMURZXNBDBMYBVKAYIYJUQZXFXMU
        HWFVLVMVHVIVJVHVNXLBDVOZVBZDBULVPZKURVDZDYNVOZVBZXEULFYMYNFVDZVBZYQVBZL
        GUMVPZKURVDZLUUAMURZDYNMURZUQZVBZXEUMFYTUUAFVDZVBZUUFVBZUUALHFEIKMJYNDC
        NOPYTXGUUGUUFYMXGYRYQAXGXFYLQWFZWFZWFZYMYRYQUUGUUFVQZYTXSUUGUUFYMXSYRYQ
        AXSXFYLTWFZWFZWFZAXHXFYLYRYQUUGUUFSVRZYTUUGUUFVSZYTYCUUGUUFAYCXFYLYRYQU
        DVTZWFZAXJXFYLYRYQUUGUUFUCVRZAXIXFYLYRYQUUGUUFUAVRZAXKXFYLYRYQUUGUUFUEV
        RZUUIDYNUUIYOYPYSYQUUGUUFWAZWBWCUUICDYNFIKMNOPUULUUQUUPUUMUUIBCDYNFIKMN
        OPUULYMYHYRYQUUGUUFAYHXFYLRWFZVTZUUQUUPUUMAYAXFYLYRYQUUGUUFUFVRUUIYOYPU
        VDWDZWEWGUUIHLUUAFIKMNOPUULUVAUUTUURUUIGHLUUAFIKMNOPUULAYGXFYLYRYQUUGUU
        FUBVRZUVAUUTUURAYFXFYLYRYQUUGUUFUGVRUUHUUBUUEWHZWEWGUUIDYNLUUAFIKMNOPUU
        LUUPUUMUUTUURUUIUUCUUDUUHUUBUUEWIWNZWJUUICDHLFIKMNOPUULUUQUUPUVAUUTACDM
        URHLMURUQXFYLYRYQUUGUUFUIVRWJUUIGLUUAFEIKMJBDYNNOPUULUVFUUPUUMUVHUUTUUR
        UVBUVCXLYLYRYQUUGUUFWKUVGUVIAYKXFYLYRYQUUGUUFUHVRUVJABEMURGJMURUQXFYLYR
        YQUUGUUFUJVRAXQXFYLYRYQUUGUUFUKVRZWLUVKWLYTUMDYNFIKMGLNOPUUKAYGXFYLYRYQ
        UBVTUUSUUOYMYRYQVSWMWOYMBDFIKMULNOPUUJUVEUUNAXFYLVSWPWOWQABFWRINRWSWT
        $.
    $}

    ${
      tgcgrsub.e $e |- ( ph -> E e. P ) $.
      tgcgrsub.f $e |- ( ph -> F e. P ) $.
      tgcgrsub.1 $e |- ( ph -> B e. ( A I C ) ) $.
      tgcgrsub.2 $e |- ( ph -> E e. ( D I F ) ) $.
      tgcgrsub.3 $e |- ( ph -> ( A .- C ) = ( D .- F ) ) $.
      tgcgrsub.4 $e |- ( ph -> ( B .- C ) = ( E .- F ) ) $.
      $( Removing identical parts from the end of a line segment preserves
         congruence.  Theorem 4.3 of [Schwabhauser] p. 35.  (Contributed by
         Thierry Arnoux, 3-Apr-2019.) $)
      tgcgrsub $p |- ( ph -> ( A .- B ) = ( D .- E ) ) $=
        ( tgcgrtriv tgcgrcomlr tgifscgr ) ACBGEFIJKLMNOQPTSABCDBFEGIEJHKLMNOPQR
        PSTUASUBUCUDUEABEFIJKLMNOPSUFABDEHFIJKLMNOPRSUAUDUGUHUG $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Congruence of a series of points
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c cgrG $.

  $( Declare the constant for the congruence between shapes relation. $)
  ccgrg $a class cgrG $.

  ${
    $d a b g i j $.
    $( Define the relation congruence bewteen shapes.  Definition 4.4 of
       [Schwabhauser] p. 35.  Ideally, we would define this for functions of
       any set, but we will used words (functions over ` NN ` ) in most cases.
       (Contributed by Thierry Arnoux, 3-Apr-2019.) $)
    df-cgrg $a |- cgrG = ( g e. _V |-> { <. a , b >. |
      ( ( a e. ( ( Base ` g ) ^pm RR ) /\ b e. ( ( Base ` g ) ^pm RR ) )
        /\ ( dom a = dom b /\ A. i e. dom a A. j e. dom a
          ( ( a ` i ) ( dist ` g ) ( a ` j ) )
            = ( ( b ` i ) ( dist ` g ) ( b ` j ) ) )
      ) } ) $.
  $}

  ${
    $d a b g i j G $.  $d a b g .- $.  $d a b i j A $.  $d a b i j B $.
    $d a b g P $.
    iscgrg.p $e |- P = ( Base ` G ) $.
    iscgrg.m $e |- .- = ( dist ` G ) $.
    iscgrg.e $e |- .~ = ( cgrG ` G ) $.
    ${
      $( The congruence property for sequences of points.  (Contributed by
         Thierry Arnoux, 3-Apr-2019.) $)
      iscgrg $p |- ( G e. V -> ( A .~ B <-> ( (
        A e. ( P ^pm RR ) /\ B e. ( P ^pm RR ) ) /\ ( dom A = dom B /\
        A. i e. dom A A. j e. dom A
        ( ( A ` i ) .- ( A ` j ) ) = ( ( B ` i ) .- ( B ` j ) ) ) ) ) ) $=
        ( va vb wcel co wa wceq cfv wral vg wbr cv cpm cdm copab ccgrg cvv elex
        cr cbs cds fveq2 syl6eqr oveq1d anbi12d oveqd eqeq12d 2ralbidv opabbidv
        eleq2d anbi2d df-cgrg cxp df-xp ovex xpex eqeltrri simpl ssopab2i ssexi
        fvmpt syl5eq dmeq eqeq1d adantr simpll fveq1d oveq12d raleqbidva eqeq2d
        syl breqd fveq1 sylan9bb eqid brab2a syl6bb ) GIOZABDUBABMUCZCUJUDPZOZN
        UCZWKOZQZWJUEZWMUEZRZEUCZWJSZFUCZWJSZHPZWSWMSZXAWMSZHPZRZFWPTZEWPTZQZQZ
        MNUFZUBAWKOBWKOQAUEZBUEZRZWSASZXAASZHPZWSBSZXABSZHPZRZFXMTEXMTZQZQWIDXL
        ABWIDGUGSZXLLWIGUHOYEXLRGIUIUAGWJUAUCZUKSZUJUDPZOZWMYHOZQZWRWTXBYFULSZP
        ZXDXEYLPZRZFWPTEWPTZQZQZMNUFXLUHUGYFGRZYRXKMNYSYKWOYQXJYSYIWLYJWNYSYHWK
        WJYSYGCUJUDYSYGGUKSCYFGUKUMJUNUOZVAYSYHWKWMYTVAUPYSYPXIWRYSYOXGEFWPWPYS
        YMXCYNXFYSYLHWTXBYSYLGULSHYFGULUMKUNZUQYSYLHXDXEUUAUQURUSVBUPUTUAEFMNVC
        XLWOMNUFZWKWKVDUUBUHMNWKWKVEWKWKCUJUDVFZUUCVGVHXKWOMNWOXJVIVJVKVLWBVMWC
        XJYDMNABWKWKXLWJARZXJXMWQRZXRXFRZFXMTZEXMTZQWMBRZYDUUDWRUUEXIUUHUUDWPXM
        WQWJAVNZVOUUDXHUUGEWPXMUUJUUDWSWPOZQZXGUUFFWPXMUUDWPXMRUUKUUJVPUULXAWPO
        ZQZXCXRXFUUNWTXPXBXQHUUNWSWJAUUDUUKUUMVQZVRUUNXAWJAUUOVRVSVOVTVTUPUUIUU
        EXOUUHYCUUIWQXNXMWMBVNWAUUIUUFYBEFXMXMUUIXFYAXRUUIXDXSXEXTHWSWMBWDXAWMB
        WDVSWAUSUPWEXLWFWGWH $.
    $}

    iscgrgd.g $e |- ( ph -> G e. V ) $.
    iscgrgd.d $e |- ( ph -> D C_ RR ) $.
    iscgrgd.a $e |- ( ph -> A : D --> P ) $.
    iscgrgd.b $e |- ( ph -> B : D --> P ) $.
    $( TODO: change dom A into D here $)
    $( The property for two sequences ` A ` and ` B ` of points to be
       congruent.  (Contributed by Thierry Arnoux, 3-Apr-2019.) $)
    iscgrgd $p |- ( ph -> ( A .~ B <-> A. i e. dom A A. j e. dom A
      ( ( A ` i ) .- ( A ` j ) ) = ( ( B ` i ) .- ( B ` j ) ) ) ) $=
      ( cfv cvv cdm wceq cv co wral wa cr cpm wcel wbr wf wss fvex eqeltri reex
      cbs elpm2r mpanl12 syl2anc jca biantrurd fdm syl eqtr4d iscgrg 3bitr4rd
      wb ) ABUAZCUAZUBZGUCZBSHUCZBSJUDVKCSVLCSJUDUBHVHUEGVHUEZUFZBEUGUHUDZUIZCV
      OUIZUFZVNUFZVMBCFUJZAVRVNAVPVQADEBUKZDUGULZVPQPETUIZUGTUIZWAWBUFVPEIUPSTL
      IUPUMUNZUOEUGDBTTUQURUSADECUKZWBVQRPWCWDWFWBUFVQWEUOEUGDCTTUQURUSUTVAAVJV
      MAVHDVIAWAVHDUBQDEBVBVCAWFVIDUBRDECVBVCVDVAAIKUIVTVSVGOBCEFGHIJKLMNVEVCVF
      $.
  $}

  ${
    trgcgrg.p $e |- P = ( Base ` G ) $.
    trgcgrg.m $e |- .- = ( dist ` G ) $.
    trgcgrg.r $e |- .~ = ( cgrG ` G ) $.
    trgcgrg.g $e |- ( ph -> G e. TarskiG ) $.
    ${
      $d .- i j k l $.  $d A i j k l $.  $d B i j k l $.  $d G i j $.
      $d i j k l ph $.
      iscgrglt.d $e |- ( ph -> D C_ RR ) $.
      iscgrglt.a $e |- ( ph -> A : D --> P ) $.
      iscgrglt.b $e |- ( ph -> B : D --> P ) $.
      $( The property for two sequences ` A ` and ` B ` of points to be
         congruent, where the congruence is only required for indices verifying
         a less-than relation.  (Contributed by Thierry Arnoux, 7-Oct-2020.) $)
      iscgrglt $p |- ( ph -> ( A .~ B <-> A. i e. dom A A. j e. dom A ( i < j
        -> ( ( A ` i ) .- ( A ` j ) ) = ( ( B ` i ) .- ( B ` j ) ) ) ) ) $=
        ( co wceq wa vk vl wbr cv cfv cdm wral clt wi cstrkg iscgrgd wcel simp2
        3expia ex ralimdvva breq1 fveq2 oveq1d eqeq12d imbi12d cbvral2v simpllr
        breq2 oveq2d simplr simp-4r jca31 simpr imp syl2anc citv eqid ad3antrrr
        rspc2v wf ad2antrr fdm eleqtrd ffvelrnd adantr tgcgrtriv fveq2d 3eqtr3d
        syl adantl3r ad4antr tgcgrcomlr cr wss eqsstrd sseldd lttri4d mpjao3dan
        adantllr anasss ralrimivva syl5bir impbid bitrd ) ABCFUCGUDZBUEZHUDZBUE
        ZJRZXACUEZXCCUEZJRZSZHBUFZUGGXJUGZXAXCUHUCZXIUIZHXJUGGXJUGZABCDEFGHIJUJ
        KLMNOPQUKAXKXNAXIXMGHXJXJAXAXJULZXCXJULZTZTZXIXMXRXIXLXIXRXIXLUMUNUOUPX
        NUAUDZUBUDZUHUCZXSBUEZXTBUEZJRZXSCUEZXTCUEZJRZSZUIZUBXJUGUAXJUGZAXKYIXM
        XAXTUHUCZXBYCJRZXFYFJRZSZUIZUAUBGHXJXJXSXASZYAYKYHYNXSXAXTUHUQYPYDYLYGY
        MYPYBXBYCJXSXABURUSYPYEXFYFJXSXACURUSUTVAZXTXCSZYKXLYNXIXTXCXAUHVDYRYLX
        EYMXHYRYCXDXBJXTXCBURVEYRYFXGXFJXTXCCURVEUTVAZVBAYJXKAYJTZXIGHXJXJYTXOX
        PXIYTXOTZXPTZXLXIXAXCSZXCXAUHUCZUUBXLTZXQYJTZXLXIUUEXOXPYJYTXOXPXLVCUUA
        XPXLVFAYJXOXPXLVGVHUUBXLVIUUFXLXIXQYJXMYIXMYOUAUBXAXCXJXJYQYSVOVJVJVKAY
        JXOXPUUCXIAXOTZXPTZUUCTZXBXBJRXFXFJRXEXHUUIXBXFEIIVLUEZJKLUUJVMZAIUJULZ
        XOXPUUCNVNUUHXBEULZUUCUUHDEXABADEBVPZXOXPPVQZUUHXAXJDAXOXPVFZUUHUUNXJDS
        ZUUODEBVRZWEZVSZVTZWAUUHXFEULZUUCUUHDEXACADECVPXOXPQVQZUUTVTZWAWBUUIXBX
        DXBJUUIXAXCBUUHUUCVIZWCVEUUIXFXGXFJUUIXAXCCUVEWCVEWDWFUUBUUDTZXDXBXGXFE
        IUUJJKLUUKAUULYJXOXPUUDNWGAYJXOXPUUDXDEULZUUHUVGUUDUUHDEXCBUUOUUHXCXJDU
        UGXPVIUUSVSZVTWAWFAYJXOXPUUDUUMUUHUUMUUDUVAWAWFAYJXOXPUUDXGEULZUUHUVIUU
        DUUHDEXCCUVCUVHVTWAWFAYJXOXPUUDUVBUUHUVBUUDUVDWAWFUVFXPXOTZYJTZUUDXDXBJ
        RZXGXFJRZSZUVFXPXOYJUUAXPUUDVFYTXOXPUUDVCAYJXOXPUUDVGVHUUBUUDVIUVKUUDUV
        NUVJYJUUDUVNUIZYIUVOXCXTUHUCZXDYCJRZXGYFJRZSZUIUAUBXCXAXJXJXSXCSZYAUVPY
        HUVSXSXCXTUHUQUVTYDUVQYGUVRUVTYBXDYCJXSXCBURUSUVTYEXGYFJXSXCCURUSUTVAXT
        XASZUVPUUDUVSUVNXTXAXCUHVDUWAUVQUVLUVRUVMUWAYCXBXDJXTXABURVEUWAYFXFXGJX
        TXACURVEUTVAVOVJVJVKWHUUBXAXCUUBXJWIXAAXJWIWJYJXOXPAXJDWIAUUNUUQPUURWEO
        WKVNZAXOXPXOYJUUPWOWLUUBXJWIXCUWBUUAXPVIWLWMWNWPWQUOWRWSWT $.
    $}

    $d i j A $.  $d i j B $.  $d i j C $.  $d i j D $.  $d i j E $.
    $d i j F $.  $d i j G $.  $d i j .- $.  $d i j ph $.
    trgcgrg.a $e |- ( ph -> A e. P ) $.
    trgcgrg.b $e |- ( ph -> B e. P ) $.
    trgcgrg.c $e |- ( ph -> C e. P ) $.
    trgcgrg.d $e |- ( ph -> D e. P ) $.
    trgcgrg.e $e |- ( ph -> E e. P ) $.
    trgcgrg.f $e |- ( ph -> F e. P ) $.
    $( The property for two triangles to be congruent to each other.
       (Contributed by Thierry Arnoux, 3-Apr-2019.) $)
    trgcgrg $p |- ( ph -> ( <" A B C "> .~ <" D E F "> <->
      ( ( A .- B ) = ( D .- E ) /\ ( B .- C ) = ( E .- F )
        /\ ( C .- A ) = ( F .- D ) ) ) ) $=
      ( vi vj cv cs3 cfv co wceq cdm wral cc0 c1 c2 ctp wbr wf chash cfzo cword
      w3a wcel s3cld wrdf syl c3 s3len oveq2i fzo0to3tp eqtri feq2i fdm raleqdv
      sylib raleqbidv cstrkg cr wss 0re 1re 2re tpssi mp3an iscgrgd wa wb fveq2
      s3fv0 sylan9eqr oveq2d eqeq12d s3fv1 s3fv2 0red 1red raltpd adantr adantl
      a1i eqtr2d oveq1d 3anbi123d bitr4d an33rean citv eqid tgcgrtriv biantrurd
      3jca simprl simpr tgcgrcomlr impbida simprr bitr3d syl5bb bitr2d 3bitr4d
      jca ) AUBUDZBCDUEZUFZUCUDZXTUFZKUGZXSEHIUEZUFZYBYEUFZKUGZUHZUCXTUIZUJZUBY
      JUJYIUCUKULUMUNZUJZUBYLUJZXTYEGUOBCKUGZEHKUGZUHZCDKUGZHIKUGZUHZDBKUGZIEKU
      GZUHZUTZAYKYMUBYJYLAYLFXTUPZYJYLUHAUKXTUQUFZURUGZFXTUPZUUEAXTFUSZVAUUHABC
      DFPQRVBFXTVCVDUUGYLFXTUUGUKVEURUGZYLUUFVEUKURBCDVFVGVHVIVJVMZYLFXTVKVDZAY
      IUCYJYLUULVLVNAXTYEYLFGUBUCJKVOLMNOYLVPVQZAUKVPVAULVPVAUMVPVAZUUMVRVSVTUK
      ULUMVPWAWBWRUUKAUKYEUQUFZURUGZFYEUPZYLFYEUPAYEUUIVAUUQAEHIFSTUAVBFYEVCVDU
      UPYLFYEUUPUUJYLUUOVEUKUREHIVFVGVHVIVJVMWCAYNBBKUGZEEKUGZUHZYQBDKUGZEIKUGZ
      UHZUTZCBKUGZHEKUGZUHZCCKUGZHHKUGZUHZYTUTZUUCDCKUGZIHKUGZUHZDDKUGZIIKUGZUH
      ZUTZUTZUUDAYMUVDUVKUVRUBUKULUMVPVPVPAXSUKUHZWDZYMYABKUGZYFEKUGZUHZYACKUGZ
      YFHKUGZUHZYADKUGZYFIKUGZUHZUTZUVDAYMUWKWEZUVTAYIUWDUWGUWJUCUKULUMVPVPVPAY
      BUKUHZWDZYDUWBYHUWCUWNYCBYAKUWMAYCUKXTUFZBYBUKXTWFABFVAZUWOBUHZPBCDFWGVDZ
      WHWIUWNYGEYFKUWMAYGUKYEUFZEYBUKYEWFAEFVAZUWSEUHZSEHIFWGVDZWHWIWJAYBULUHZW
      DZYDUWEYHUWFUXDYCCYAKUXCAYCULXTUFZCYBULXTWFACFVAZUXECUHZQBCDFWKVDZWHWIUXD
      YGHYFKUXCAYGULYEUFZHYBULYEWFAHFVAZUXIHUHZTEHIFWKVDZWHWIWJAYBUMUHZWDZYDUWH
      YHUWIUXNYCDYAKUXMAYCUMXTUFZDYBUMXTWFADFVAZUXODUHZRBCDFWLVDZWHWIUXNYGIYFKU
      XMAYGUMYEUFZIYBUMYEWFAIFVAZUXSIUHZUAEHIFWLVDZWHWIWJAWMZAWNZUUNAVTWRZWOZWP
      UWAUUTUWDYQUWGUVCUWJUWAUURUWBUUSUWCUWABYABKUWAYAUWOBUVTYAUWOUHAXSUKXTWFWQ
      AUWQUVTUWRWPWSZWTUWAEYFEKUWAYFUWSEUVTYFUWSUHAXSUKYEWFWQAUXAUVTUXBWPWSZWTW
      JUWAYOUWEYPUWFUWABYACKUYGWTUWAEYFHKUYHWTWJUWAUVAUWHUVBUWIUWABYADKUYGWTUWA
      EYFIKUYHWTWJXAXBAXSULUHZWDZYMUWKUVKAUWLUYIUYFWPUYJUVGUWDUVJUWGYTUWJUYJUVE
      UWBUVFUWCUYJCYABKUYJYAUXECUYIYAUXEUHAXSULXTWFWQAUXGUYIUXHWPWSZWTUYJHYFEKU
      YJYFUXIHUYIYFUXIUHAXSULYEWFWQAUXKUYIUXLWPWSZWTWJUYJUVHUWEUVIUWFUYJCYACKUY
      KWTUYJHYFHKUYLWTWJUYJYRUWHYSUWIUYJCYADKUYKWTUYJHYFIKUYLWTWJXAXBAXSUMUHZWD
      ZYMUWKUVRAUWLUYMUYFWPUYNUUCUWDUVNUWGUVQUWJUYNUUAUWBUUBUWCUYNDYABKUYNYAUXO
      DUYMYAUXOUHAXSUMXTWFWQAUXQUYMUXRWPWSZWTUYNIYFEKUYNYFUXSIUYMYFUXSUHAXSUMYE
      WFWQAUYAUYMUYBWPWSZWTWJUYNUVLUWEUVMUWFUYNDYACKUYOWTUYNIYFHKUYPWTWJUYNUVOU
      WHUVPUWIUYNDYADKUYOWTUYNIYFIKUYPWTWJXAXBUYCUYDUYEWOUVSUUTUVJUVQUTZYQUVGWD
      ZYTUVNWDZUVCUUCWDZUTZWDZAUUDUUTYQUVCUVGUVJYTUUCUVNUVQXCAVUAVUBUUDAUYQVUAA
      UUTUVJUVQABEFJJXDUFZKLMVUCXEZOPSXFACHFJVUCKLMVUDOQTXFADIFJVUCKLMVUDORUAXF
      XHXGAUYRYQUYSYTUYTUUCAUYRYQAYQUVGXIAYQWDZYQUVGAYQXJZVUEBCEHFJVUCKLMVUDAJV
      OVAZYQOWPAUWPYQPWPAUXFYQQWPAUWTYQSWPAUXJYQTWPVUFXKXRXLAUYSYTAYTUVNXIAYTWD
      ZYTUVNAYTXJZVUHCDHIFJVUCKLMVUDAVUGYTOWPAUXFYTQWPAUXPYTRWPAUXJYTTWPAUXTYTU
      AWPVUIXKXRXLAUYTUUCAUVCUUCXMAUUCWDZUVCUUCVUJDBIEFJVUCKLMVUDAVUGUUCOWPAUXP
      UUCRWPAUWPUUCPWPAUXTUUCUAWPAUWTUUCSWPAUUCXJZXKVUKXRXLXAXNXOXPXQ $.

    trgcgr.1 $e |- ( ph -> ( A .- B ) = ( D .- E ) ) $.
    trgcgr.2 $e |- ( ph -> ( B .- C ) = ( E .- F ) ) $.
    trgcgr.3 $e |- ( ph -> ( C .- A ) = ( F .- D ) ) $.
    $( Triangle congruence.  (Contributed by Thierry Arnoux, 27-Apr-2019.) $)
    trgcgr $p |- ( ph -> <" A B C "> .~ <" D E F "> ) $=
      ( cs3 wbr co wceq trgcgrg mpbir3and ) ABCDUEEHIUEGUFBCKUGEHKUGUHCDKUGHIKU
      GUHDBKUGIEKUGUHUBUCUDABCDEFGHIJKLMNOPQRSTUAUIUJ $.
  $}

  ${
    $d a b g i j $.  $d i j x y z G $.  $d x P $.
    ercgrg.p $e |- P = ( Base ` G ) $.
    $( The shape congruence relation is an equivalence relation.  Statement 4.4
       of [Schwabhauser] p. 35.  (Contributed by Thierry Arnoux,
       9-Apr-2019.) $)
    ercgrg $p |- ( G e. TarskiG -> ( cgrG ` G ) Er ( P ^pm RR ) ) $=
      ( vi vj cstrkg wcel co cfv cv wa cdm wceq wbr iscgrg simpld simprd adantr
      wral r19.21bi vx vy vz va vg vb cpm ccgrg wrel cbs cds df-cgrg relmptopab
      cvv a1i eqid biimpa ancomd eqcomd simpl simprl eleqtrrd simprr ralrimivva
      cr syl21anc jca wb mpbir2and adantrr adantrl anasss eleqtrd pm4.24 rgen2a
      eqtrd eqidd pm3.2i biantru bitri syl6rbbr iserd ) BFGZUAUBUCAVEUGHZBUHIZW
      EUIWCUDJZUEJZUJIVEUGHZGUFJZWHGKWFLZWILMDJZWFIEJZWFIWGUKIZHWKWIIWLWIIWMHME
      WJSDWJSKKUEUDUFUNBUHUEDEUDUFULUMUOWCUAJZUBJZWENZKZWOWNWENZWOWDGZWNWDGZKZW
      OLZWNLZMZWKWOIWLWOIBUKIZHZWKWNIWLWNIXEHZMZEXBSDXBSZKZWQWTWSWQWTWSKZXCXBMZ
      XGXFMZEXCSZDXCSZKZWCWPXKXPKZWNWOAWEDEBXEFCXEUPZWEUPZOUQZPZURWQXDXIWQXCXBW
      QXLXOWQXKXPXTQZPZUSWQXHDEXBXBWQWKXBGZWLXBGZKZKZXGXFYGWQWKXCGZWLXCGZXMWQYF
      UTYGWKXBXCWQYDYEVAWQXLYFYCRZVBYGWLXBXCWQYDYEVCYJVBWQYHKXMEXCWQXNDXCWQXLXO
      YBQTTVFUSVDVGWCWRXAXJKVHWPWOWNAWEDEBXEFCXRXSORVIWCWPWOUCJZWENZKZKZWNYKWEN
      ZWTYKWDGZKZXCYKLZMZXGWKYKIWLYKIXEHZMZEXCSDXCSZKZYNWTYPWCWPWTYLWQWTWSYAPVJ
      YNWSYPYNWSYPKZXBYRMZXFYTMZEXBSZDXBSZKZWCYLUUDUUIKZWPWCYLUUJWOYKAWEDEBXEFC
      XRXSOUQVKZPQVGYNYSUUBYNXCXBYRYNXLXOYNXKXPWCWPXQYLXTVJQZPZYNUUEUUHYNUUDUUI
      UUKQZPVPYNUUADEXCXCYNYHYIKZKZXGXFYTYNYHYIXMYNYHKXMEXCYNXNDXCYNXLXOUULQTTV
      LUUPYNYDYEUUFYNUUOUTUUPWKXCXBYNYHYIVAYNXLUUOUUMRZVMUUPWLXCXBYNYHYIVCUUQVM
      YNYDKUUFEXBYNUUGDXBYNUUEUUHUUNQTTVFVPVDVGWCYOYQUUCKVHYMWNYKAWEDEBXEFCXRXS
      ORVIWCWNWNWENWTWTKZXCXCMZXGXGMZEXCSDXCSZKZKZWTWNWNAWEDEBXEFCXRXSOWTUURUVC
      WTVNUVBUURUUSUVAXCUPUUTDEXCUUOXGVQVOVRVSVTWAWB $.
  $}

  ${
    $d A e f g $.  $d B e f g $.  $d C e f g $.  $d D e f g $.  $d F e f g $.
    $d I e f g $.  $d P e f g $.  $d e f g .- $.  $d e f g .~ $.
    $d e f g ph $.
    tgcgrxfr.p $e |- P = ( Base ` G ) $.
    tgcgrxfr.m $e |- .- = ( dist ` G ) $.
    tgcgrxfr.i $e |- I = ( Itv ` G ) $.
    tgcgrxfr.r $e |- .~ = ( cgrG ` G ) $.
    tgcgrxfr.g $e |- ( ph -> G e. TarskiG ) $.
    ${
      tgcgrxfr.a $e |- ( ph -> A e. P ) $.
      tgcgrxfr.b $e |- ( ph -> B e. P ) $.
      tgcgrxfr.c $e |- ( ph -> C e. P ) $.
      tgcgrxfr.d $e |- ( ph -> D e. P ) $.
      tgcgrxfr.f $e |- ( ph -> F e. P ) $.
      tgcgrxfr.1 $e |- ( ph -> B e. ( A I C ) ) $.
      tgcgrxfr.2 $e |- ( ph -> ( A .- C ) = ( D .- F ) ) $.
      $( A line segment can be divided at the same place as a congruent line
         segment is divided.  Theorem 4.5 of [Schwabhauser] p. 35.
         (Contributed by Thierry Arnoux, 9-Apr-2019.) $)
      tgcgrxfr $p |- ( ph -> E. e e. P ( e e. ( D I F ) /\
        <" A B C "> .~ <" D e F "> ) ) $=
        ( vg vf chash cfv c1 wceq cv co wcel cs3 wa wrex c2 adantr cstrkg simpr
        wbr cle tgldim0itv tgldim0cgr trgcgr eleq1 eqidd id s3eqd breq2d rspcev
        anbi12d syl12anc wne ad3antrrr simplr axtgsegcon ad7antr simpllr simpld
        ad2antrr simprl tgbtwnexch3 simp-5r simprd necomd tgbtwncom tgcgrextend
        tgbtwnexch simprr eqcomd tgsegconeq oveq2d eleqtrd eqtr3d tgcgrcomlr ex
        jca ad5antr r19.29a reximdva mpd tgbtwndiff cbs tgldimor mpjaodan ) AFU
        GUHZUIUJZHUKZEIKULZUMZBCDUNZEXIIUNZGVAZUOZHFUPZUQXGVBVAZAXHUOZBFUMZBXJU
        MZXLEBIUNZGVAZXPAXSXHRURZXRBEIFJKLMNOAJUSUMZXHQURZYCAEFUMZXHUAURZAIFUMZ
        XHUBURZAXHUTZVCXRBCDEFGBIJLMNPYEYCACFUMZXHSURZADFUMZXHTURZYGYCYIXRBCEBF
        JKLMNOYEYCYLYGYJYCVDXRCDBIFJKLMNOYEYLYNYCYJYIVDXRDBIEFJKLMNOYEYNYCYIYJY
        GVDVEXOXTYBUOHBFXIBUJZXKXTXNYBXIBXJVFYOXMYAXLGYOEXIIIEBYOEVGYOVHYOIVGVI
        VJVLVKVMAXQUOZEIUEUKZKULUMZEYQVNZUOZXPUEFYPYQFUMZUOZYTUOZEYQXIKULUMZEXI
        LULZBCLULZUJZUOZHFUPXPUUCHBCFJKLYQEMNOAYDXQUUAYTQVOZYPUUAYTVPZAYFXQUUAY
        TUAVOAXSXQUUAYTRVOAYKXQUUAYTSVOZVQUUCUUHXOHFUUCXIFUMZUOZUUHXOUUMUUHUOZX
        IYQUFUKZKULUMZXIUUOLULZCDLULZUJZUOZXOUFFUUNUUOFUMZUOZUUTUOZXKXNUVCXIEUU
        OKULXJUVCYQEXIUUOFJKLMNOAYDXQUUAYTUULUUHUVAUUTQVRZUUNUUAUVAUUTUUCUUAUUL
        UUHUUJWAZWAZAYFXQUUAYTUULUUHUVAUUTUAVRZUUNUULUVAUUTUUCUULUUHVPZWAZUUNUV
        AUUTVPZUVCUUDUUGUUMUUHUVAUUTVSZVTZUVBUUPUUSWBZWCZUVCUUOIEKUVCEBDYQFUUOI
        JKLMNOUVDUVGAXSXQUUAYTUULUUHUVAUUTRVRZAYMXQUUAYTUULUUHUVAUUTTVRZUVFUVJA
        YHXQUUAYTUULUUHUVAUUTUBVRZUVCEYQUVCYRYSUUBYTUULUUHUVAUUTWDZWEWFUVCYQEXI
        UUOFJKLMNOUVDUVFUVGUVIUVJUVLUVMWIUVCIEYQFJKLMNOUVDUVQUVGUVFUVCYRYSUVRVT
        WGUVCEXIUUOBFCDJKLMNOUVDUVGUVIUVJUVOAYKXQUUAYTUULUUHUVAUUTSVRZUVPUVNACB
        DKULUMXQUUAYTUULUUHUVAUUTUCVRUVCUUDUUGUVKWEZUVBUUPUUSWJZWHUVCBDLULZEILU
        LZAUWBUWCUJXQUUAYTUULUUHUVAUUTUDVRWKWLZWMWNUVCBCDEFGXIIJLMNPUVDUVOUVSUV
        PUVGUVIUVQUVCUUEUUFUVTWKUVCUUQUURXIILULUWAUVCUUOIXILUWDWMWOADBLULIELULU
        JXQUUAYTUULUUHUVAUUTABDEIFJKLMNOQRTUAUBUDWPVRVEWRUUNUFCDFJKLYQXIMNOUUCY
        DUULUUHUUIWAUVEUVHUUCYKUULUUHUUKWAAYMXQUUAYTUULUUHTWSVQWTWQXAXBYPIEFJKL
        UEMNOAYDXQQURAYHXQUBURAYFXQUAURAXQUTXCWTABFXDJMRXEXF $.
    $}

    ${
      tgbtwnxfr.a $e |- ( ph -> A e. P ) $.
      tgbtwnxfr.b $e |- ( ph -> B e. P ) $.
      tgbtwnxfr.c $e |- ( ph -> C e. P ) $.
      $( Reflexivity law for three-place congruence.  (Contributed by Thierry
         Arnoux, 28-Apr-2019.) $)
      cgr3id $p |- ( ph -> <" A B C "> .~ <" A B C "> ) $=
        ( co eqidd trgcgr ) ABCDBEFCDGIJKMNOPQOPQABCIRSACDIRSADBIRST $.

      tgbtwnxfr.d $e |- ( ph -> D e. P ) $.
      tgbtwnxfr.e $e |- ( ph -> E e. P ) $.
      tgbtwnxfr.f $e |- ( ph -> F e. P ) $.
      tgbtwnxfr.2 $e |- ( ph -> <" A B C "> .~ <" D E F "> ) $.
      $( Deduce segment congruence from a triangle congruence.  (Contributed by
         Thierry Arnoux, 27-Apr-2019.) $)
      cgr3simp1 $p |- ( ph -> ( A .- B ) = ( D .- E ) ) $=
        ( co wceq cs3 wbr w3a trgcgrg mpbid simp1d ) ABCLUEEHLUEUFZCDLUEHILUEUF
        ZDBLUEIELUEUFZABCDUGEHIUGGUHUMUNUOUIUDABCDEFGHIJLMNPQRSTUAUBUCUJUKUL $.

      $( Deduce segment congruence from a triangle congruence.  (Contributed by
         Thierry Arnoux, 27-Apr-2019.) $)
      cgr3simp2 $p |- ( ph -> ( B .- C ) = ( E .- F ) ) $=
        ( co wceq cs3 wbr w3a trgcgrg mpbid simp2d ) ABCLUEEHLUEUFZCDLUEHILUEUF
        ZDBLUEIELUEUFZABCDUGEHIUGGUHUMUNUOUIUDABCDEFGHIJLMNPQRSTUAUBUCUJUKUL $.

      $( Deduce segment congruence from a triangle congruence.  (Contributed by
         Thierry Arnoux, 27-Apr-2019.) $)
      cgr3simp3 $p |- ( ph -> ( C .- A ) = ( F .- D ) ) $=
        ( co wceq cs3 wbr w3a trgcgrg mpbid simp3d ) ABCLUEEHLUEUFZCDLUEHILUEUF
        ZDBLUEIELUEUFZABCDUGEHIUGGUHUMUNUOUIUDABCDEFGHIJLMNPQRSTUAUBUCUJUKUL $.

      $( Permutation law for three-place congruence.  (Contributed by Thierry
         Arnoux, 27-Apr-2019.) $)
      cgr3swap12 $p |- ( ph -> <" B A C "> .~ <" E D F "> ) $=
        ( cgr3simp1 tgcgrcomlr cgr3simp3 cgr3simp2 trgcgr ) ACBDHFGEIJLMNPQSRTU
        BUAUCABCEHFJKLMNOQRSUAUBABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFADBIEFJKLMNOQTR
        UCUAABCDEFGHIJKLMNOPQRSTUAUBUCUDUGUFACDHIFJKLMNOQSTUBUCABCDEFGHIJKLMNOP
        QRSTUAUBUCUDUHUFUI $.

      $( Permutation law for three-place congruence.  (Contributed by Thierry
         Arnoux, 27-Apr-2019.) $)
      cgr3swap23 $p |- ( ph -> <" A C B "> .~ <" D F E "> ) $=
        ( cgr3simp3 tgcgrcomlr cgr3simp2 cgr3simp1 trgcgr ) ABDCEFGIHJLMNPQRTSU
        AUCUBADBIEFJKLMNOQTRUCUAABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFACDHIFJKLMNOQST
        UBUCABCDEFGHIJKLMNOPQRSTUAUBUCUDUGUFABCEHFJKLMNOQRSUAUBABCDEFGHIJKLMNOP
        QRSTUAUBUCUDUHUFUI $.

      $( Permutation law for three-place congruence.  (Contributed by Thierry
         Arnoux, 3-Oct-2020.) $)
      cgr3swap13 $p |- ( ph -> <" C B A "> .~ <" F E D "> ) $=
        ( cgr3swap12 cgr3swap23 ) ACDBHFGIEJKLMNOPQSTRUBUCUAACBDHFGEIJKLMNOPQSR
        TUBUAUCABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUE $.

      $( Permutation law for three-place congruence.  (Contributed by Thierry
         Arnoux, 1-Aug-2020.) $)
      cgr3rotr $p |- ( ph -> <" C A B "> .~ <" F D E "> ) $=
        ( cgr3swap23 cgr3swap12 ) ABDCEFGIHJKLMNOPQRTSUAUCUBABCDEFGHIJKLMNOPQRS
        TUAUBUCUDUEUF $.

      $( Permutation law for three-place congruence.  (Contributed by Thierry
         Arnoux, 1-Aug-2020.) $)
      cgr3rotl $p |- ( ph -> <" B C A "> .~ <" E F D "> ) $=
        ( cgr3swap12 cgr3swap23 ) ACBDHFGEIJKLMNOPQSRTUBUAUCABCDEFGHIJKLMNOPQRS
        TUAUBUCUDUEUF $.

      $( Commutative law for three-place congruence.  (Contributed by Thierry
         Arnoux, 27-Apr-2019.) $)
      trgcgrcom $p |- ( ph -> <" D E F "> .~ <" A B C "> ) $=
        ( co cgr3simp1 eqcomd cgr3simp2 cgr3simp3 trgcgr ) AEHIBFGCDJLMNPQUAUBU
        CRSTABCLUEEHLUEABCDEFGHIJKLMNOPQRSTUAUBUCUDUFUGACDLUEHILUEABCDEFGHIJKLM
        NOPQRSTUAUBUCUDUHUGADBLUEIELUEABCDEFGHIJKLMNOPQRSTUAUBUCUDUIUGUJ $.

      ${
        cgr3tr.j $e |- ( ph -> J e. P ) $.
        cgr3tr.k $e |- ( ph -> K e. P ) $.
        cgr3tr.l $e |- ( ph -> L e. P ) $.
        cgr3tr.1 $e |- ( ph -> <" D E F "> .~ <" J K L "> ) $.
        $( Transitivity law for three-place congruence.  (Contributed by
           Thierry Arnoux, 27-Apr-2019.) $)
        cgr3tr $p |- ( ph -> <" A B C "> .~ <" J K L "> ) $=
          ( co cgr3simp1 eqtrd cgr3simp2 cgr3simp3 trgcgr ) ABCDLFGMNJOPQSTUAUB
          UCUHUIUJABCOULEHOULLMOULABCDEFGHIJKOPQRSTUAUBUCUDUEUFUGUMAEHILFGMNJKO
          PQRSTUDUEUFUHUIUJUKUMUNACDOULHIOULMNOULABCDEFGHIJKOPQRSTUAUBUCUDUEUFU
          GUOAEHILFGMNJKOPQRSTUDUEUFUHUIUJUKUOUNADBOULIEOULNLOULABCDEFGHIJKOPQR
          STUAUBUCUDUEUFUGUPAEHILFGMNJKOPQRSTUDUEUFUHUIUJUKUPUNUQ $.
      $}

      $d e E $.
      tgbtwnxfr.1 $e |- ( ph -> B e. ( A I C ) ) $.
      $( A condition for extending betweenness to a new set of points based on
         congruence with another set of points.  Theorem 4.6 of [Schwabhauser]
         p. 36.  (Contributed by Thierry Arnoux, 27-Apr-2019.) $)
      tgbtwnxfr $p |- ( ph -> E e. ( D I F ) ) $=
        ( ve cv co cs3 wbr cstrkg ad2antrr simplr simprl eqidd simprr trgcgrcom
        wcel cgr3tr cgr3simp1 cgr3simp2 tgcgrcomlr tgifscgr axtgcgrid cgr3simp3
        wa eqeltrrd tgcgrxfr r19.29a ) AUFUGZEIKUHZURZBCDUIZEVJIUIGUJZVFZHVKURU
        FFAVJFURZVFZVOVFZVJHVKVRFJKLVJHVJMNOAJUKURVPVOQULZAVPVOUMZAHFURVPVOUBUL
        ZVTVREVJIHFEVJJVJKILMNOVSAEFURVPVOUAULZVTAIFURVPVOUCULZWAWBVTWCVTVQVLVN
        UNZWDVREILUHUOVRVJILUHUOVREHIEFGVJIJKLMNOPVSWBWAWCWBVTWCVREVJIEFGHIJKLM
        NOPVSWBVTWCWBWAWCVREVJIBFGCDJKEHILMNOPVSWBVTWCABFURVPVORULZACFURVPVOSUL
        ZADFURVPVOTULZVRBCDEFGVJIJKLMNOPVSWEWFWGWBVTWCVQVLVNUPUQWBWAWCAVMEHIUIG
        UJVPVOUDULUSUQZUTVRHIVJIFJKLMNOVSWAWCVTWCVREHIEFGVJIJKLMNOPVSWBWAWCWBVT
        WCWHVAVBVCVDWDVGABCDEFGUFIJKLMNOPQRSTUAUCUEADBIEFJKLMNOQTRUCUAABCDEFGHI
        JKLMNOPQRSTUAUBUCUDVEVBVHVI $.
    $}

    ${
      $d .- i j $.  $d A i j $.  $d B i j $.  $d C i j $.  $d D i j $.
      $d G i j $.  $d W i j $.  $d X i j $.  $d Y i j $.  $d Z i j $.
      $d i j ph $.
      tgcgr4.a $e |- ( ph -> A e. P ) $.
      tgcgr4.b $e |- ( ph -> B e. P ) $.
      tgcgr4.c $e |- ( ph -> C e. P ) $.
      tgcgr4.d $e |- ( ph -> D e. P ) $.
      tgcgr4.w $e |- ( ph -> W e. P ) $.
      tgcgr4.x $e |- ( ph -> X e. P ) $.
      tgcgr4.y $e |- ( ph -> Y e. P ) $.
      tgcgr4.z $e |- ( ph -> Z e. P ) $.
      $( Two quadrilaterals to be congruent to each other if one triangle
         formed by their vertices is, and the additional points are equidistant
         too.  (Contributed by Thierry Arnoux, 8-Oct-2020.) $)
      tgcgr4 $p |- ( ph -> ( <" A B C D "> .~ <" W X Y Z "> <->
        ( <" A B C "> .~ <" W X Y "> /\ ( ( A .- D ) = ( W .- Z )
          /\ ( B .- D ) = ( X .- Z ) /\ ( C .- D ) = ( Y .- Z ) ) ) ) ) $=
        ( vi vj cs4 wbr cv clt cfv co wceq wi cdm wral cc0 c3 cfzo wa cs3 c4 cr
        w3a wss cn0 fzo0ssnn0 nn0ssre sstri a1i chash cword wcel s4cld wrdf syl
        wf s4len oveq2i feq2i sylib iscgrglt csn cun fdm caddc 3p1e4 3nn0 nn0uz
        c1 eleqtri fzosplitsn ax-mp eqtr3i syl6eq raleqdv wb breq2 fveq2 oveq2d
        cuz eqeq12d imbi12d ralunsn syl6bb ralbidv wtru simpr adantl wfal breq1
        wn anbi12d bitrd s3cld s3len raleq cconcat df-s4 fveq1i s1cld syl6eleqr
        cs1 adantr ccatval1 syl3anc syl5eq oveq12d c2 mpbiri fveq2d s4fv0 eqtrd
        s4fv3 bitr3d s4fv1 s4fv2 sseldi simpl sselii syl6eqel elfzolt2 breqtrrd
        ltnsym imp syl21anc pm2.21d tbtru ralbidva c0 wne cn lbfzo0 mpbir ne0ii
        3nn r19.3rzv syl6bbr ltnri bifal imbi1d falim bitru anidm 3bitri r19.26
        ancom truan raleqbidv simprl simprr imbi2d 2ralbidva 3bitr4rd fzo0to3tp
        3syl ctp mp1i 3pos biimt 1lt3 2lt3 0red 1red 2re raltpd syl5bb 3bitrd )
        ABCDEUJZKLMNUJZGUKUHULZUIULZUMUKZUWNUWLUNZUWOUWLUNZJUOZUWNUWMUNZUWOUWMU
        NZJUOZUPZUQZUIUWLURZUSZUHUXEUSZUXDUIUTVAVBUOZUSZUWNVAUMUKZUWQVAUWLUNZJU
        OZUWTVAUWMUNZJUOZUPZUQZVCZUHUXHUSZBCDVDZKLMVDZGUKZBEJUOZKNJUOZUPZCEJUOZ
        LNJUOZUPZDEJUOZMNJUOZUPZVGZVCZAUWLUWMUTVEVBUOZFGUHUIHJOPRSUYMVFVHAUYMVI
        VFVEVJVKVLVMAUTUWLVNUNZVBUOZFUWLVTZUYMFUWLVTZAUWLFVOZVPUYPABCDEFTUAUBUC
        VQFUWLVRVSUYOUYMFUWLUYNVEUTVBBCDEWAWBWCWDZAUTUWMVNUNZVBUOZFUWMVTZUYMFUW
        MVTAUWMUYRVPVUBAKLMNFUDUEUFUGVQFUWMVRVSVUAUYMFUWMUYTVEUTVBKLMNWAWBWCWDW
        EAUXGUXQUHUXEUSZUXRAUXFUXQUHUXEAUXFUXDUIUXHVAWFWGZUSZUXQAUXDUIUXEVUDAUX
        EUYMVUDAUYQUXEUYMUPUYSUYMFUWLWHVSUTVAWMWIUOZVBUOZUYMVUDVUFVEUTVBWJWBVAU
        TXDUNZVPVUGVUDUPVAVIVUHWKWLWNUTVAWOWPWQWRZWSVAVIVPZVUEUXQWTWKUXDUXPUIUX
        HVAVIUWOVAUPZUWPUXJUXCUXOUWOVAUWNUMXAVUKUWSUXLUXBUXNVUKUWRUXKUWQJUWOVAU
        WLXBXCVUKUXAUXMUWTJUWOVAUWMXBXCXEXFXGWPXHXIAVUCUXQUHVUDUSZUXRAUXQUHUXEV
        UDVUIWSVULUXRXJVCZXJUXRVCUXRVUJVULVUMWTWKUXQXJUHUXHVAVIUWNVAUPZUXQXJXJV
        CXJVUNUXIXJUXPXJVUNUXIXJUIUXHUSZXJVUNUXDXJUIUXHVUNUWOUXHVPZVCZUXDUXDXJW
        TVUQUWPUXCVUQUWOVFVPZUWNVFVPZUWOUWNUMUKZUWPXOZVUQUXHVFUWOUXHVIVFVAVJVKV
        LZVUNVUPXKUUAVUQUWNVAVFVUNVUPUUBZVIVFVAVKWKUUCZUUDVUQUWOVAUWNUMVUPUWOVA
        UMUKVUNUWOUTVAUUEXLVVCUUFVURVUSVCVUTVVAUWOUWNUUGUUHUUIUUJUXDUUKWDUULUXH
        UUMUUNXJVUOWTUTUXHUTUXHVPVAUUOVPUUSVAUUPUUQUURXJUIUXHUUTWPUVAVUNUXPXMUX
        OUQZXJVUNUXJXMUXOVUNUXJVAVAUMUKZXMUWNVAVAUMXNVVFVAVVDUVBUVCXHUVDVVEUXOU
        VEUVFXHXPXJUVGXHXGWPUXRXJUVJUXRUVKUVHXHXQUXRUXIUHUXHUSZUXPUHUXHUSZVCAUY
        LUXIUXPUHUXHUVIAVVGUYAVVHUYKAUWPUWNUXSUNZUWOUXSUNZJUOZUWNUXTUNZUWOUXTUN
        ZJUOZUPZUQZUIUXSURZUSZUHVVQUSVVPUIUXHUSZUHUXHUSUYAVVGAVVRVVSUHVVQUXHAUX
        HFUXSVTZVVQUXHUPZAUTUXSVNUNZVBUOZFUXSVTZVVTAUXSUYRVPZVWDABCDFTUAUBXRFUX
        SVRVSVWCUXHFUXSVWBVAUTVBBCDXSWBZWCWDZUXHFUXSWHZVSAVVTVWAVVRVVSWTVWGVWHV
        VPUIVVQUXHXTUVSUVLAUXSUXTUXHFGUHUIHJOPRSUXHVFVHAVVBVMVWGAUTUXTVNUNZVBUO
        ZFUXTVTZUXHFUXTVTAUXTUYRVPZVWKAKLMFUDUEUFXRFUXTVRVSVWJUXHFUXTVWIVAUTVBK
        LMXSWBZWCWDWEAUXDVVPUHUIUXHUXHAUWNUXHVPZVUPVCZVCZUXCVVOUWPVWPUWSVVKUXBV
        VNVWPUWQVVIUWRVVJJVWPUWQUWNUXSEYFZYAUOZUNZVVIUWNUWLVWRBCDEYBZYCVWPVWEVW
        QUYRVPZUWNVWCVPVWSVVIUPVWPBCDFABFVPZVWOTYGACFVPZVWOUAYGADFVPZVWOUBYGXRZ
        VWPEFAEFVPZVWOUCYGYDZVWPUWNUXHVWCAVWNVUPUVMZVWFYEFUXSVWQUWNYHYIYJVWPUWR
        UWOVWRUNZVVJUWOUWLVWRVWTYCVWPVWEVXAUWOVWCVPVXIVVJUPVXEVXGVWPUWOUXHVWCAV
        WNVUPUVNZVWFYEFUXSVWQUWOYHYIYJYKVWPUWTVVLUXAVVMJVWPUWTUWNUXTNYFZYAUOZUN
        ZVVLUWNUWMVXLKLMNYBZYCVWPVWLVXKUYRVPZUWNVWJVPVXMVVLUPVWPKLMFAKFVPZVWOUD
        YGALFVPZVWOUEYGAMFVPZVWOUFYGXRZVWPNFANFVPZVWOUGYGYDZVWPUWNUXHVWJVXHVWMY
        EFUXTVXKUWNYHYIYJVWPUXAUWOVXLUNZVVMUWOUWMVXLVXNYCVWPVWLVXOUWOVWJVPVYBVV
        MUPVXSVYAVWPUWOUXHVWJVXJVWMYEFUXTVXKUWOYHYIYJYKXEUVOUVPUVQAVVHUXPUHUTWM
        YLUVTZUSZUYKUXHVYCUPVVHVYDWTAUVRUXPUHUXHVYCXTUWAAUXPUYDUYGUYJUHUTWMYLVF
        VFVFAUWNUTUPZVCZUXOUXPUYDVYFUXJUXOUXPWTZVYEUXJAVYEUXJUTVAUMUKUWBUWNUTVA
        UMXNYMXLUXJUXOUWCZVSVYFUXLUYBUXNUYCVYFUWQBUXKEJVYFUWQUTUWLUNZBVYFUWNUTU
        WLAVYEXKZYNAVYIBUPZVYEAVXBVYKTBCDEFYOVSYGYPAUXKEUPZVYEAVXFVYLUCBCDEFYQV
        SZYGYKVYFUWTKUXMNJVYFUWTUTUWMUNZKVYFUWNUTUWMVYJYNAVYNKUPZVYEAVXPVYOUDKL
        MNFYOVSYGYPAUXMNUPZVYEAVXTVYPUGKLMNFYQVSZYGYKXEYRAUWNWMUPZVCZUXOUXPUYGV
        YSUXJVYGVYRUXJAVYRUXJWMVAUMUKUWDUWNWMVAUMXNYMXLVYHVSVYSUXLUYEUXNUYFVYSU
        WQCUXKEJVYSUWQWMUWLUNZCVYSUWNWMUWLAVYRXKZYNAVYTCUPZVYRAVXCWUBUABCDEFYSV
        SYGYPAVYLVYRVYMYGYKVYSUWTLUXMNJVYSUWTWMUWMUNZLVYSUWNWMUWMWUAYNAWUCLUPZV
        YRAVXQWUDUEKLMNFYSVSYGYPAVYPVYRVYQYGYKXEYRAUWNYLUPZVCZUXOUXPUYJWUFUXJVY
        GWUEUXJAWUEUXJYLVAUMUKUWEUWNYLVAUMXNYMXLVYHVSWUFUXLUYHUXNUYIWUFUWQDUXKE
        JWUFUWQYLUWLUNZDWUFUWNYLUWLAWUEXKZYNAWUGDUPZWUEAVXDWUIUBBCDEFYTVSYGYPAV
        YLWUEVYMYGYKWUFUWTMUXMNJWUFUWTYLUWMUNZMWUFUWNYLUWMWUHYNAWUJMUPZWUEAVXRW
        UKUFKLMNFYTVSYGYPAVYPWUEVYQYGYKXEYRAUWFAUWGYLVFVPAUWHVMUWIXQXPUWJUWK $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Motions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Ismt $.

  $( Note - the first part of this section, until ~ motgrp , is not specific to
     geometry and might be moved further up in set.mm $)
  $( Declare the constant for the isometry builder. $)
  cismt $a class Ismt $.

  ${
    $d a b f g h $.
    $( Define the set of isometries between two structures.  Definition 4.8 of
       [Schwabhauser] p. 36.  See ~ isismt .  (Contributed by Thierry Arnoux,
       13-Dec-2019.) $)
    df-ismt $a |- Ismt = ( g e. _V , h e. _V |-> { f |
      ( f : ( Base ` g ) -1-1-onto-> ( Base ` h )
      /\ A. a e. ( Base ` g ) A. b e. ( Base ` g )
        ( ( f ` a ) ( dist ` h ) ( f ` b ) ) = ( a ( dist ` g ) b ) ) } ) $.
  $}

  ${
    $d .- f g h $.  $d B a b f g h $.  $d D f g h $.  $d F a b f $.
    $d G a b f g h $.  $d H a b f g h $.  $d P f g h $.
    isismt.b $e |- B = ( Base ` G ) $.
    isismt.p $e |- P = ( Base ` H ) $.
    isismt.d $e |- D = ( dist ` G ) $.
    isismt.m $e |- .- = ( dist ` H ) $.
    $( Property of being an isometry.  Compare with ~ isismty .  (Contributed
       by Thierry Arnoux, 13-Dec-2019.) $)
    isismt $p |- ( ( G e. V /\ H e. W ) -> ( F e. ( G Ismt H ) <->
      ( F : B -1-1-onto-> P /\ A. a e. B A. b e. B
        ( ( F ` a ) .- ( F ` b ) ) = ( a D b ) ) ) ) $=
      ( vf wcel cfv wceq cvv vg vh wa cismt co wf1o wral cab elex cbs cds eqidd
      cv fveq2 syl6eqr f1oeq123d oveqd eqeq2d raleqbidv anbi12d abbidv 2ralbidv
      eqeq1d df-ismt cmap ovex wf f1of eqeltri elmap sylibr adantr abssi ovmpt2
      fvex ssexi syl2an eleq2d fex sylancl f1oeq1 fveq1 oveq12d elab3 syl6bb )
      EHQZFIQZUCZDEFUDUEZQDACPUMZUFZJUMZWJRZKUMZWJRZGUEZWLWNBUEZSZKAUGJAUGZUCZP
      UHZQACDUFZWLDRZWNDRZGUEZWQSZKAUGJAUGZUCZWHWIXADWFETQFTQWIXASWGEHUIFIUIUAU
      BEFTTUAUMZUJRZUBUMZUJRZWJUFZWMWOXKUKRZUEZWLWNXIUKRZUEZSZKXJUGZJXJUGZUCZPU
      HXAUDAXLWJUFZXOWQSZKAUGZJAUGZUCZPUHXIESZYAYFPYGXMYBXTYEYGXJAXLXLWJWJYGWJU
      LYGXJEUJRZAXIEUJUNLUOZYGXLULUPYGXSYDJXJAYIYGXRYCKXJAYIYGXQWQXOYGXPBWLWNYG
      XPEUKRBXIEUKUNNUOUQURUSUSUTVAXKFSZYFWTPYJYBWKYEWSYJAAXLCWJWJYJWJULYJAULYJ
      XLFUJRZCXKFUJUNMUOUPYJYCWRJKAAYJXOWPWQYJXNGWMWOYJXNFUKRGXKFUKUNOUOUQVCVBU
      TVAPUAUBJKVDXACAVEUEZCAVEVFWTPYLWKWJYLQZWSWKACWJVGYMACWJVHCAWJCYKTMFUJVOV
      IAYHTLEUJVOVIZVJVKVLVMVPVNVQVRWTXHPDXBDTQZXGXBACDVGATQYOACDVHYNACTDVSVTVL
      WJDSZWKXBWSXGACWJDWAYPWRXFJKAAYPWPXEWQYPWMXCWOXDGWLWJDWBWNWJDWBWCVCVBUTWD
      WE $.
  $}

  ${
    $d F a b $.  $d G a b $.  $d P a b $.
    ismot.p $e |- P = ( Base ` G ) $.
    ismot.m $e |- .- = ( dist ` G ) $.
    $( Property of being an isometry mapping to the same space.  In geometry,
       this is also called a motion.  (Contributed by Thierry Arnoux,
       15-Dec-2019.) $)
    ismot $p |- ( G e. V -> ( F e. ( G Ismt G ) <-> ( F : P -1-1-onto-> P
      /\ A. a e. P A. b e. P ( ( F ` a ) .- ( F ` b ) ) = ( a .- b ) ) ) ) $=
      ( wcel cismt co wf1o cv cfv wceq wral wa wb isismt anidms ) CEJBCCKLJAABM
      FNZBOGNZBODLUBUCDLPGAQFAQRSADABCCDEEFGHHIITUA $.

    $d G a b f g $.  $d H a b $.  $d a b ph $.
    motgrp.1 $e |- ( ph -> G e. V ) $.
    ${
      $d A a b $.  $d B a b $.  $d .- a b $.
      motcgr.a $e |- ( ph -> A e. P ) $.
      motcgr.b $e |- ( ph -> B e. P ) $.
      motcgr.f $e |- ( ph -> F e. ( G Ismt G ) ) $.
      $( Property of a motion: distances are preserved.  (Contributed by
         Thierry Arnoux, 15-Dec-2019.) $)
      motcgr $p |- ( ph -> ( ( F ` A ) .- ( F ` B ) ) = ( A .- B ) ) $=
        ( va vb wcel cfv co wceq cv wral wf1o cismt wa wb ismot syl mpbid fveq2
        simprd oveq1d oveq1 eqeq12d oveq2d oveq2 rspc2va syl21anc ) ABDQCDQOUAZ
        ERZPUAZERZGSZUSVAGSZTZPDUBODUBZBERZCERZGSZBCGSZTZLMADDEUCZVFAEFFUDSQZVL
        VFUEZNAFHQVMVNUFKDEFGHOPIJUGUHUIUKVEVKVGVBGSZBVAGSZTOPBCDDUSBTZVCVOVDVP
        VQUTVGVBGUSBEUJULUSBVAGUMUNVACTZVOVIVPVJVRVBVHVGGVACEUJUOVACBGUPUNUQUR
        $.
    $}

    ${
      $( The identity is a motion.  (Contributed by Thierry Arnoux,
         15-Dec-2019.) $)
      idmot $p |- ( ph -> ( _I |` P ) e. ( G Ismt G ) ) $=
        ( va vb wcel cid cres cv cfv co wceq wral wa fvresi wf1o cismt f1oi a1i
        ad2antrl ad2antll oveq12d ralrimivva ismot biimpar syl12anc ) ACEKZBBLB
        MZUAZINZUMOZJNZUMOZDPUOUQDPQZJBRIBRZUMCCUBPKZHUNABUCUDAUSIJBBAUOBKZUQBK
        ZSSUPUOURUQDVBUPUOQAVCBUOTUEVCURUQQAVBBUQTUFUGUHULVAUNUTSBUMCDEIJFGUIUJ
        UK $.

      motco.2 $e |- ( ph -> F e. ( G Ismt G ) ) $.
      $( Motions are bijections.  (Contributed by Thierry Arnoux,
         15-Dec-2019.) $)
      motf1o $p |- ( ph -> F : P -1-1-onto-> P ) $=
        ( va vb wf1o cv cfv co wceq wral cismt wcel wa ismot syl mpbid simpld
        wb ) ABBCMZKNZCOLNZCOEPUHUIEPQLBRKBRZACDDSPTZUGUJUAZJADFTUKULUFIBCDEFKL
        GHUBUCUDUE $.

      ${
        motcl.a $e |- ( ph -> A e. P ) $.
        $( Closure of motions.  (Contributed by Thierry Arnoux,
           15-Dec-2019.) $)
        motcl $p |- ( ph -> ( F ` A ) e. P ) $=
          ( wf1o wf motf1o f1of syl ffvelrnd ) ACCBDACCDMCCDNACDEFGHIJKOCCDPQLR
          $.
      $}

      ${
        motco.3 $e |- ( ph -> H e. ( G Ismt G ) ) $.
        $( The composition of two motions is a motion.  (Contributed by Thierry
           Arnoux, 15-Dec-2019.) $)
        motco $p |- ( ph -> ( F o. H ) e. ( G Ismt G ) ) $=
          ( va vb co wcel wf1o cfv wceq adantr ccom cismt cv wral f1oco syl2anc
          motf1o wa f1of syl simprl fvco3 simprr oveq12d ffvelrnd motcgr 3eqtrd
          wf ralrimivva wb ismot mpbir2and ) ACEUAZDDUBOZPZBBVCQZMUCZVCRZNUCZVC
          RZFOZVGVIFOZSZNBUDMBUDZABBCQBBEQZVFABCDFGHIJKUGABEDFGHIJLUGZBBBCEUEUF
          AVMMNBBAVGBPZVIBPZUHZUHZVKVGERZCRZVIERZCRZFOWAWCFOVLVTVHWBVJWDFVTBBEU
          RZVQVHWBSAWEVSAVOWEVPBBEUIUJTZAVQVRUKZBBVGCEULUFVTWEVRVJWDSWFAVQVRUMZ
          BBVICEULUFUNVTWAWCBCDFGHIADGPZVSJTZVTBBVGEWFWGUOVTBBVIEWFWHUOACVDPVSK
          TUPVTVGVIBEDFGHIWJWGWHAEVDPVSLTUPUQUSAWIVEVFVNUHUTJBVCDFGMNHIVAUJVB
          $.
      $}

      $( The converse of a motion is a motion.  (Contributed by Thierry Arnoux,
         15-Dec-2019.) $)
      cnvmot $p |- ( ph -> `' F e. ( G Ismt G ) ) $=
        ( va vb co wcel wf1o cfv wceq syl wa adantr ccnv cismt cv motf1o f1ocnv
        wral wf f1of simprl ffvelrnd simprr motcgr f1ocnvfv2 syl2anc ralrimivva
        oveq12d eqtr3d wb ismot mpbir2and ) ACUAZDDUBMZNZBBVAOZKUCZVAPZLUCZVAPZ
        EMZVEVGEMZQZLBUFKBUFZABBCOZVDABCDEFGHIJUDZBBCUERZAVKKLBBAVEBNZVGBNZSZSZ
        VFCPZVHCPZEMVIVJVSVFVHBCDEFGHADFNZVRITVSBBVEVAABBVAUGZVRAVDWCVOBBVAUHRT
        ZAVPVQUIZUJVSBBVGVAWDAVPVQUKZUJACVBNVRJTULVSVTVEWAVGEVSVMVPVTVEQAVMVRVN
        TZWEBBVECUMUNVSVMVQWAVGQWGWFBBVGCUMUNUPUQUOAWBVCVDVLSURIBVADEFKLGHUSRUT
        $.
    $}

    motgrp.i $e |- I = { <. ( Base ` ndx ) , ( G Ismt G ) >. , <. ( +g ` ndx )
      , ( f e. ( G Ismt G ) , g e. ( G Ismt G ) |-> ( f o. g ) ) >. } $.
    ${
      $d f g a b $.
      motplusg.1 $e |- ( ph -> F e. ( G Ismt G ) ) $.
      motplusg.2 $e |- ( ph -> H e. ( G Ismt G ) ) $.
      $( The operation for motions is their composition.  (Contributed by
         Thierry Arnoux, 15-Dec-2019.) $)
      motplusg $p |- ( ph -> ( F ( +g ` I ) H ) = ( F o. H ) ) $=
        ( va vb wcel ccom cismt co cvv cplusg wceq coexg syl2anc cv coeq1 coeq2
        cfv cmpt2 ovex mpt2ex grpplusg ax-mp cbvmpt2v eqtr3i ovmpt2g syl3anc )
        AEFFUAUBZSZGVASZEGTZUCSZEGHUDUKZUBVDUEOPAVBVCVEOPEGVAVAUFUGQREGVAVAQUHZ
        RUHZTZVDVFEVHTUCVGEVHUIVHGEUJCDVAVACUHZDUHZTZULZVFQRVAVAVIULVMUCSVMVFUE
        CDVAVAVLFFUAUMZVNUNVAVMHUCNUOUPCDQRVAVAVLVIVGVKTVJVGVKUIVKVHVGUJUQURUSU
        T $.
    $}

    $d G f g h $.  $d I f g h $.  $d P f g h $.  $d f a b g h ph $.
    $( The motions of a geometry form a group with respect to function
       composition, called the Isometry group.  (Contributed by Thierry Arnoux,
       15-Dec-2019.) $)
    motgrp $p |- ( ph -> I e. Grp ) $=
      ( co cfv cv wcel wceq ccom motplusg eqtrd vh va vb cismt cplusg ccnv cres
      cid cvv cbs ovex cmpt2 grpbase mp1i eqidd 3ad2ant1 simp2 simp3 eqeltrd wa
      w3a motco coass 3adant3r3 oveq1d adantr simpr3 simpr2 oveq2d simpr1 idmot
      3eqtr4a simpr wf1o wf wral ismot simprbda sylan f1of fcoi2 3syl f1ococnv1
      cnvmot syl isgrpd ) ACDUAEEUDMZFUENZFCOZUFZUHBUGZWGUIPWGFUJNQAEEUDUKWGCDW
      GWGWIDOZRZULFUILUMUNAWHUOAWIWGPZWLWGPZVAZWIWLWHMZWMWGWPBCDWIEWLFGHIJAWNEH
      PZWOKUPZLAWNWOUQZAWNWOURZSZWPBWIEWLGHIJWSWTXAVBZUSAWNWOUAOZWGPZVAZUTZWMXD
      RZWIWLXDRZRZWQXDWHMZWIWLXDWHMZWHMZWIWLXDVCXGXKWMXDWHMXHXGWQWMXDWHAWNWOWQW
      MQXEXBVDVEXGBCDWMEXDFGHIJAWRXFKVFZLAWNWOWMWGPXEXCVDAWNWOXEVGZSTXGXMWIXIWH
      MXJXGXLXIWIWHXGBCDWLEXDFGHIJXNLAWNWOXEVHZXOSVIXGBCDWIEXIFGHIJXNLAWNWOXEVJ
      XGBWLEXDGHIJXNXPXOVBSTVLABEGHIJKVKZAWNUTZWKWIWHMWKWIRZWIXRBCDWKEWIFGHIJAW
      RWNKVFZLAWKWGPWNXQVFAWNVMZSXRBBWIVNZBBWIVOXSWIQAWRWNYBKWRWNYBUBOZWINUCOZW
      INGMYCYDGMQUCBVPUBBVPBWIEGHUBUCIJVQVRVSZBBWIVTBBWIWAWBTXRBWIEGHIJXTYAWDZX
      RWJWIWHMWJWIRZWKXRBCDWJEWIFGHIJXTLYFYASXRYBYGWKQYEBBWIWCWETWF $.

    ${
      $d .~ n $.  $d F a b n $.  $d P a b n $.  $d T a b n $.  $d n ph $.
      motcgrg.r $e |- .~ = ( cgrG ` G ) $.
      motcgrg.t $e |- ( ph -> T e. Word P ) $.
      motcgrg.f $e |- ( ph -> F e. ( G Ismt G ) ) $.
      $( Property of a motion: distances are preserved.  (Contributed by
         Thierry Arnoux, 15-Dec-2019.) $)
      motcgrg $p |- ( ph -> ( F o. T ) .~ T ) $=
        ( wcel cfv vn va vb cc0 cv cfzo co wf ccom wbr cn0 wceq cdm wral adantr
        wa simpr simprl wf1o motf1o f1of syl ad2antrr fco syl2anc eleqtrd fvco3
        fdm simprr oveq12d ffvelrnd cismt ad3antrrr motcgr eqtrd ralrimivva wss
        cr fzo0ssnn0 nn0ssre sstri a1i iscgrgd mpbird cword iswrd sylib r19.29a
        wrex ) AUDUAUEZUFUGZBDUHZGDUIZDCUJZUAUKAWJUKSZUPZWLUPZWNUBUEZWMTZUCUEZW
        MTZJUGZWRDTZWTDTZJUGZULZUCWMUMZUNUBXGUNWQXFUBUCXGXGWQWRXGSZWTXGSZUPZUPZ
        XBXCGTZXDGTZJUGXEXKWSXLXAXMJXKWLWRWKSWSXLULWQWLXJWPWLUQZUOZXKWRXGWKWQXH
        XIURXKWKBWMUHZXGWKULWQXPXJWQBBGUHZWLXPAXQWOWLABBGUSXQABGHJKLMNRUTBBGVAV
        BVCXNWKBBGDVDVEZUOWKBWMVHVBZVFZWKBWRGDVGVEXKWLWTWKSXAXMULXOXKWTXGWKWQXH
        XIVIXSVFZWKBWTGDVGVEVJXKXCXDBGHJKLMWQHKSZXJAYBWOWLNVCZUOXKWKBWRDXOXTVKX
        KWKBWTDXOYAVKAGHHVLUGSWOWLXJRVMVNVOVPWQWMDWKBCUBUCHJKLMPYCWKVRVQWQWKUKV
        RWJVSVTWAWBXRXNWCWDADBWESWLUAUKWIQBDUAWFWGWH $.
    $}
  $}

  ${
    motcgr3.p $e |- P = ( Base ` G ) $.
    motcgr3.m $e |- .- = ( dist ` G ) $.
    motcgr3.r $e |- .~ = ( cgrG ` G ) $.
    motcgr3.g $e |- ( ph -> G e. TarskiG ) $.
    motcgr3.a $e |- ( ph -> A e. P ) $.
    motcgr3.b $e |- ( ph -> B e. P ) $.
    motcgr3.c $e |- ( ph -> C e. P ) $.
    motcgr3.d $e |- ( ph -> D = ( H ` A ) ) $.
    motcgr3.e $e |- ( ph -> E = ( H ` B ) ) $.
    motcgr3.f $e |- ( ph -> F = ( H ` C ) ) $.
    motcgr3.h $e |- ( ph -> H e. ( G Ismt G ) ) $.
    $( Property of a motion: distances are preserved, special case of
       triangles.  (Contributed by Thierry Arnoux, 15-Dec-2019.) $)
    motcgr3 $p |- ( ph -> <" A B C "> .~ <" D E F "> ) $=
      ( cfv cstrkg motcl eqeltrd co oveq12d motcgr eqtr2d trgcgr ) ABCDEFGHIJLM
      NOPQRSAEBKUDZFTABFKJLUEMNPUCQUFUGAHCKUDZFUAACFKJLUEMNPUCRUFUGAIDKUDZFUBAD
      FKJLUEMNPUCSUFUGAEHLUHUMUNLUHBCLUHAEUMHUNLTUAUIABCFKJLUEMNPQRUCUJUKAHILUH
      UNUOLUHCDLUHAHUNIUOLUAUBUIACDFKJLUEMNPRSUCUJUKAIELUHUOUMLUHDBLUHAIUOEUMLU
      BTUIADBFKJLUEMNPSQUCUJUKUL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Colinearity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d f i p x y z G $.  $d f i p x y z I $.  $d f i p x y z P $.
    tglng.p $e |- P = ( Base ` G ) $.
    tglng.l $e |- L = ( LineG ` G ) $.
    tglng.i $e |- I = ( Itv ` G ) $.
    $( Lines of a Tarski Geometry.  This relates to both Definition 4.10 of
       [Schwabhauser] p. 36. and Definition 6.14 of [Schwabhauser] p. 45.
       (Contributed by Thierry Arnoux, 28-Mar-2019.) $)
    tglng $p |- ( G e. TarskiG -> L = ( x e. P , y e. ( P \ { x } ) |->
     { z e. P | ( z e. ( x I y ) \/ x e. ( z I y ) \/ y e. ( x I z ) ) } ) ) $=
      ( vf vp vi cstrkg wcel cv cfv co wceq cin clng csn cdif w3o crab citv cbs
      cmpt2 wsbc cab cstrkgc cstrkgb cstrkgcb df-trkg inss2 sstri eqsstri sseli
      cvv cds eqid istrkgl simprbi syl5eq syl ) ENOEKPZUAQABLPZVGAPZUBZUCCPZVHB
      PZMPZROVHVJVKVLROVKVHVJVLROUDCVGUEUHSMVFUFQUILVFUGQUIKUJZOZGABDDVIUCVJVHV
      KFROVHVJVKFROVKVHVJFROUDCDUEUHZSNVMENUKULTZUMVMTZTZVMABCKMLUNVRVQVMVPVQUO
      UMVMUOUPUQURVNGEUAQZVOIVNEUSOVSVOSABCDKMEFEUTQZLHVTVAJVBVCVDVE $.

    $( Lines as functions.  (Contributed by Thierry Arnoux, 25-May-2019.) $)
    tglnfn $p |- ( G e. TarskiG -> L Fn ( ( P X. P ) \ _I ) ) $=
      ( vx vy vz wcel cxp cdif wfn cv co cvv wral cbs mpbi cstrkg cid csn cmpt2
      w3o crab ciun cfv fvex eqeltri rabex rgen2w eqid fmpt2x ffn ax-mp xpdifid
      wf fneq2i tglng fneq1d mpbiri ) BUAKZDAALUBMZNHIAAHOZUCZMZJOZVEIOZCPKVEVH
      VICPKVIVEVHCPKUEZJAUFZUDZVDNZVLHAVFVGLUGZNZVMVNQVLURZVOVKQKZIVGRHARVPVQHI
      AVGVJJAABSUHQEBSUIUJUKULHIAVGVKQVLVLUMUNTVNQVLUOUPVNVDVLHAAUQUSTVCVDDVLHI
      JABCDEFGUTVAVB $.

    $d L p $.
    $( Lines are sets of points.  (Contributed by Thierry Arnoux,
       25-May-2019.) $)
    tglnunirn $p |- ( G e. TarskiG -> U. ran L C_ P ) $=
      ( vp vx vy vz cstrkg wcel cv wss crn co wrex cbs rexlimivw wral cuni cdif
      wa csn w3o crab cmpt2 tglng rneqd eleq2d biimpa wceq eqid cfv cvv eqeltri
      fvex rabex elrnmpt2 ssrab2 sseq1 mpbiri sylbi syl ralrimiva unissb sylibr
      ) BLMZHNZAOZHDPZUAVLUBAOVIVKHVLVIVJVLMZUDVJIJAAINZUEUCZKNZVNJNZCQMVNVPVQC
      QMVQVNVPCQMUFZKAUGZUHZPZMZVKVIVMWBVIVLWAVJVIDVTIJKABCDEFGUIUJUKULWBVJVSUM
      ZJVORZIARVKIJAVOVSVJVTVTUNVRKAABSUOUPEBSURUQUSUTWDVKIAWCVKJVOWCVKVSAOVRKA
      VAVJVSAVBVCTTVDVEVFHVLAVGVH $.

    ${
      tglnpt.g $e |- ( ph -> G e. TarskiG ) $.
      tglnpt.a $e |- ( ph -> A e. ran L ) $.
      tglnpt.x $e |- ( ph -> X e. A ) $.
      $( Lines are sets of points.  (Contributed by Thierry Arnoux,
         17-Oct-2019.) $)
      tglnpt $p |- ( ph -> X e. P ) $=
        ( crn cuni cstrkg wcel wss syl sseldd tglnunirn elssuni ) AFNZOZCGADPQU
        DCRKCDEFHIJUASABUDGABUCQBUDRLBUCUBSMTT $.
    $}
  $}

  ${
    $d x y z G $.  $d x y z I $.  $d x y z P $.  $d x y z X $.  $d x y z Y $.
    $d x y z ph $.
    tglngval.p $e |- P = ( Base ` G ) $.
    tglngval.l $e |- L = ( LineG ` G ) $.
    tglngval.i $e |- I = ( Itv ` G ) $.
    tglngval.g $e |- ( ph -> G e. TarskiG ) $.
    tglngval.x $e |- ( ph -> X e. P ) $.
    tglngval.y $e |- ( ph -> Y e. P ) $.
    ${
      tglngne.1 $e |- ( ph -> Z e. ( X L Y ) ) $.
      $( It takes two different points to form a line.  (Contributed by Thierry
         Arnoux, 6-Aug-2019.) $)
      tglngne $p |- ( ph -> X =/= Y ) $=
        ( cop cid wcel syl wceq wn wne cxp cdm cfv df-ov syl6eleq elfvdm cstrkg
        cdif co wfn tglnfn fndm 3syl eleqtrd eldifbd wbr df-br wb ideqg syl5bbr
        necon3bbid mpbid ) AFGPZQRZUAFGUBAVEBBUCZQAVEEUDZVGQUJZAHVEEUEZRVEVHRAH
        FGEUKVJOFGEUFUGHVEEUHSACUIREVIULVHVITLBCDEIJKUMVIEUNUOUPUQAVFFGVFFGQURZ
        AFGTZFGQUSAGBRVKVLUTNFGBVASVBVCVD $.
    $}

    ${
      tglngval.z $e |- ( ph -> X =/= Y ) $.
      $( The line going through points ` X ` and ` Y ` .  (Contributed by
         Thierry Arnoux, 28-Mar-2019.) $)
      tglngval $p |- ( ph -> ( X L Y ) = { z e. P |
        ( z e. ( X I Y ) \/ X e. ( z I Y ) \/ Y e. ( X I z ) ) } ) $=
        ( vx vy co wcel wceq csn cdif w3o crab cmpt2 cstrkg tglng syl oveqd cvv
        cv wne necomd eldifsn sylanbrc cbs cfv fvex eqeltri rabex a1i wa oveq12
        eleq2d simpl simpr oveq2d eleq12d oveq1d 3orbi123d rabbidv sneq difeq2d
        eqid ovmpt2x syl3anc eqtrd ) AGHFRGHPQCCPUKZUAZUBZBUKZVRQUKZERZSZVRWAWB
        ERZSZWBVRWAERZSZUCZBCUDZUEZRZWAGHERZSZGWAHERZSZHGWAERZSZUCZBCUDZAFWKGHA
        DUFSFWKTLPQBCDEFIJKUGUHUIAGCSHCGUAZUBZSZWTUJSZWLWTTMAHCSHGULXCNAGHOUMHC
        GUNUOXDAWSBCCDUPUQUJIDUPURUSUTVAPQGHCVTWJWTWKUJXBVRGTZWBHTZVBZWIWSBCXGW
        DWNWFWPWHWRXGWCWMWAVRGWBHEVCVDXGVRGWEWOXEXFVEZXGWBHWAEXEXFVFZVGVHXGWBHW
        GWQXIXGVRGWAEXHVIVHVJVKXEVSXACVRGVLVMWKVNVOVPVQ $.

      $( Lines are subset of the geometry base set.  That is, lines are sets of
         points.  (Contributed by Thierry Arnoux, 17-May-2019.) $)
      tglnssp $p |- ( ph -> ( X L Y ) C_ P ) $=
        ( vz co cv wcel w3o crab tglngval ssrab2 syl6eqss ) AFGEPOQZFGDPRFUDGDP
        RGFUDDPRSZOBTBAOBCDEFGHIJKLMNUAUEOBUBUC $.

      $d z Z $.
      tgellng.z $e |- ( ph -> Z e. P ) $.
      $( Property of lying on the line going through points ` X ` and ` Y ` .
         Definition 4.10 of [Schwabhauser] p. 36.  We choose the notation
         ` Z e. ( X ( LineG `` G ) Y ) ` instead of "colinear" because
         ` LineG ` is a common structure slot for other axiomatizations of
         geometry.  (Contributed by Thierry Arnoux, 28-Mar-2019.) $)
      tgellng $p |- ( ph -> ( Z e. ( X L Y )
        <-> ( Z e. ( X I Y ) \/ X e. ( Z I Y ) \/ Y e. ( X I Z ) ) ) ) $=
        ( vz co wcel eleq2d w3o wa cv crab tglngval eleq1 oveq1 oveq2 3orbi123d
        wceq elrab syl6bb biantrurd bitr4d ) AHFGERZSZHBSZHFGDRZSZFHGDRZSZGFHDR
        ZSZUAZUBZVDAUPHQUCZURSZFVFGDRZSZGFVFDRZSZUAZQBUDZSVEAUOVMHAQBCDEFGIJKLM
        NOUETVLVDQHBVFHUJZVGUSVIVAVKVCVFHURUFVNVHUTFVFHGDUGTVNVJVBGVFHFDUHTUIUK
        ULAUQVDPUMUN $.
    $}

    tgcolg.z $e |- ( ph -> Z e. P ) $.
    ${
      $( We choose the notation ` ( Z e. ( X L Y ) \/ X = Y ) ` instead of
         "colinear" in order to avoid defining an additional symbol for
         colinearity because ` LineG ` is a common structure slot for other
         axiomatizations of geometry.  (Contributed by Thierry Arnoux,
         25-May-2019.) $)
      tgcolg $p |- ( ph -> ( ( Z e. ( X L Y ) \/ X = Y )
        <-> ( Z e. ( X I Y ) \/ X e. ( Z I Y ) \/ Y e. ( X I Z ) ) ) ) $=
        ( co wcel wo wb adantr wceq w3o wa olcd cds cfv eqid cstrkg tgbtwntriv2
        simpr oveq2d eleqtrd 3mix2d 2thd wne wn neneqd biorf syl syl6bb tgellng
        orcom bitr3d pm2.61dane ) AHFGEPQZFGUAZRZHFGDPQZFHGDPZQZGFHDPQZUBZSFGAV
        FUCZVGVLVMVFVEAVFUJZUDVMVJVHVKVMFHFDPVIVMHFBCDCUEUFZIVOUGKACUHQZVFLTAHB
        QZVFOTAFBQZVFMTUIVMFGHDVNUKULUMUNAFGUOZUCZVEVGVLVTVEVFVERZVGVTVFUPVEWAS
        VTFGAVSUJZUQVFVEURUSVFVEVBUTVTBCDEFGHIJKAVPVSLTAVRVSMTAGBQVSNTWBAVQVSOT
        VAVCVD $.
    $}

    ${
      btwncolg1.z $e |- ( ph -> Z e. ( X I Y ) ) $.
      $( Betweenness implies colinearity.  (Contributed by Thierry Arnoux,
         28-Mar-2019.) $)
      btwncolg1 $p |- ( ph -> ( Z e. ( X L Y ) \/ X = Y ) ) $=
        ( co wcel wceq wo w3o 3mix1d tgcolg mpbird ) AHFGEQRFGSTHFGDQRZFHGDQRZG
        FHDQRZUAAUEUFUGPUBABCDEFGHIJKLMNOUCUD $.
    $}

    ${
      btwncolg2.z $e |- ( ph -> X e. ( Z I Y ) ) $.
      $( Betweenness implies colinearity.  (Contributed by Thierry Arnoux,
         28-Mar-2019.) $)
      btwncolg2 $p |- ( ph -> ( Z e. ( X L Y ) \/ X = Y ) ) $=
        ( co wcel wceq wo w3o 3mix2d tgcolg mpbird ) AHFGEQRFGSTHFGDQRZFHGDQRZG
        FHDQRZUAAUFUEUGPUBABCDEFGHIJKLMNOUCUD $.
    $}

    ${
      btwncolg3.z $e |- ( ph -> Y e. ( X I Z ) ) $.
      $( Betweenness implies colinearity.  (Contributed by Thierry Arnoux,
         28-Mar-2019.) $)
      btwncolg3 $p |- ( ph -> ( Z e. ( X L Y ) \/ X = Y ) ) $=
        ( co wcel wceq wo w3o 3mix3d tgcolg mpbird ) AHFGEQRFGSTHFGDQRZFHGDQRZG
        FHDQRZUAAUGUEUFPUBABCDEFGHIJKLMNOUCUD $.
    $}

    ${
      colrot $e |- ( ph -> ( Z e. ( X L Y ) \/ X = Y ) ) $.
      $( Swapping the points defining a line keeps it unchanged.  Part of
         Theorem 4.11 of [Schwabhauser] p. 34.  (Contributed by Thierry Arnoux,
         3-Apr-2019.) $)
      colcom $p |- ( ph -> ( Z e. ( Y L X ) \/ Y = X ) ) $=
        ( co wcel w3o tgbtwncomb wceq wo 3orcomb cds cfv eqid 3orbi123d 3bitr4d
        syl5bb tgcolg mpbid ) AHFGEQRFGUAUBZHGFEQRGFUAUBZPAHFGDQRZFHGDQRZGFHDQR
        ZSZHGFDQRZGHFDQRZFGHDQRZSZULUMUQUNUPUOSAVAUNUOUPUCAUNURUPUSUOUTAFHGBCDC
        UDUEZIVBUFZKLMONTAFGHBCDVBIVCKLMNOTAHFGBCDVBIVCKLOMNTUGUIABCDEFGHIJKLMN
        OUJABCDEGFHIJKLNMOUJUHUK $.

      $( Rotating the points defining a line.  Part of Theorem 4.11 of
         [Schwabhauser] p. 34.  (Contributed by Thierry Arnoux, 3-Apr-2019.) $)
      colrot1 $p |- ( ph -> ( X e. ( Y L Z ) \/ Y = Z ) ) $=
        ( co wcel wceq w3o wo 3orrot cds eqid tgbtwncomb biidd 3orbi123d syl5bb
        cfv tgcolg 3bitr4d mpbid ) AHFGEQRFGSUAZFGHEQRGHSUAZPAHFGDQRZFHGDQRZGFH
        DQRZTZFGHDQRZUQHGFDQRZTZUMUNURUPUQUOTAVAUOUPUQUBAUPUSUQUQUOUTAHFGBCDCUC
        UIZIVBUDZKLOMNUEAUQUFAFHGBCDVBIVCKLMONUEUGUHABCDEFGHIJKLMNOUJABCDEGHFIJ
        KLNOMUJUKUL $.

      $( Rotating the points defining a line.  Part of Theorem 4.11 of
         [Schwabhauser] p. 34.  (Contributed by Thierry Arnoux, 3-Apr-2019.) $)
      colrot2 $p |- ( ph -> ( Y e. ( Z L X ) \/ Z = X ) ) $=
        ( colrot1 ) ABCDEGHFIJKLNOMABCDEFGHIJKLMNOPQQ $.
    $}

    ${
      ncolrot $e |- ( ph -> -. ( Z e. ( X L Y ) \/ X = Y ) ) $.
      $( Swapping non-colinear points.  (Contributed by Thierry Arnoux,
         19-Oct-2019.) $)
      ncolcom $p |- ( ph -> -. ( Z e. ( Y L X ) \/ Y = X ) ) $=
        ( co wcel wceq adantr wo wa cstrkg simpr colcom mtand ) AHGFEQRGFSUAZHF
        GEQRFGSUAPAUGUBBCDEGFHIJKACUCRUGLTAGBRUGNTAFBRUGMTAHBRUGOTAUGUDUEUF $.

      $( Rotating non-colinear points.  (Contributed by Thierry Arnoux,
         19-Oct-2019.) $)
      ncolrot1 $p |- ( ph -> -. ( X e. ( Y L Z ) \/ Y = Z ) ) $=
        ( co wcel wceq adantr wo wa cstrkg simpr colrot2 mtand ) AFGHEQRGHSUAZH
        FGEQRFGSUAPAUGUBBCDEGHFIJKACUCRUGLTAGBRUGNTAHBRUGOTAFBRUGMTAUGUDUEUF $.

      $( Rotating non-colinear points.  (Contributed by Thierry Arnoux,
         19-Oct-2019.) $)
      ncolrot2 $p |- ( ph -> -. ( Y e. ( Z L X ) \/ Z = X ) ) $=
        ( co wcel wceq adantr wo wa cstrkg simpr colrot1 mtand ) AGHFEQRHFSUAZH
        FGEQRFGSUAPAUGUBBCDEHFGIJKACUCRUGLTAHBRUGOTAFBRUGMTAGBRUGNTAUGUDUEUF $.
    $}

    ${
      tgdim01ln.1 $e |- ( ph -> -. G TarskiGDim>= 2 ) $.
      $( In geometries of dimension lower than 2, any 3 points are colinear.
         (Contributed by Thierry Arnoux, 27-Aug-2019.) $)
      tgdim01ln $p |- ( ph -> ( Z e. ( X L Y ) \/ X = Y ) ) $=
        ( co wcel wa adantr wceq wo simpr btwncolg1 btwncolg2 btwncolg3 tgdim01
        cstrkg mpjao3dan ) AHFGDQRZHFGEQRFGUAUBFHGDQRZGFHDQRZAUJSBCDEFGHIJKACUH
        RZUJLTAFBRZUJMTAGBRZUJNTAHBRZUJOTAUJUCUDAUKSBCDEFGHIJKAUMUKLTAUNUKMTAUO
        UKNTAUPUKOTAUKUCUEAULSBCDEFGHIJKAUMULLTAUNULMTAUOULNTAUPULOTAULUCUFABCD
        UHFGHIKLPMNOUGUI $.
    $}

    ${
      ncoltgdim2.1 $e |- ( ph -> -. ( Z e. ( X L Y ) \/ X = Y ) ) $.
      $( If there are 3 non-colinear points, dimension must be 2 or more.
         ~ tglowdim2l converse.  (Contributed by Thierry Arnoux,
         23-Feb-2020.) $)
      ncoltgdim2 $p |- ( ph -> G TarskiGDim>= 2 ) $=
        ( c2 cstrkgld wcel adantr wn co wceq wo wa cstrkg simpr tgdim01ln mtand
        wbr notnotrd ) ACQRUJZAULUAZHFGEUBSFGUCUDPAUMUEBCDEFGHIJKACUFSUMLTAFBSU
        MMTAGBSUMNTAHBSUMOTAUMUGUHUIUK $.
    $}

    lnxfr.r $e |- .~ = ( cgrG ` G ) $.
    lnxfr.a $e |- ( ph -> A e. P ) $.
    lnxfr.b $e |- ( ph -> B e. P ) $.
    ${
      lnxfr.c $e |- ( ph -> C e. P ) $.
      lnxfr.1 $e |- ( ph -> ( Y e. ( X L Z ) \/ X = Z ) ) $.
      lnxfr.2 $e |- ( ph -> <" X Y Z "> .~ <" A B C "> ) $.
      $( Transfer law for colinearity.  Theorem 4.13 of [Schwabhauser] p. 37.
         (Contributed by Thierry Arnoux, 27-Apr-2019.) $)
      lnxfr $p |- ( ph -> ( B e. ( A L C ) \/ A = C ) ) $=
        ( co wcel wceq wo wa cstrkg adantr cds cfv eqid cs3 wbr simpr tgbtwnxfr
        btwncolg1 cgr3swap12 btwncolg2 cgr3swap23 btwncolg3 w3o mpbid mpjao3dan
        tgcolg ) AKJLHUFUGZCBDIUFUGBDUHUIJKLHUFUGZLJKHUFUGZAVIUJZEGHIBDCMNOAGUK
        UGZVIPULZABEUGZVIUAULZADEUGZVIUCULZACEUGZVIUBULZVLJKLBEFCDGHGUMUNZMWAUO
        ZOTVNAJEUGZVIQULAKEUGZVIRULALEUGZVISULVPVTVRAJKLUPBCDUPFUQZVIUEULAVIURU
        SUTAVJUJZEGHIBDCMNOAVMVJPULZAVOVJUAULZAVQVJUCULZAVSVJUBULZWGKJLCEFBDGHW
        AMWBOTWHAWDVJRULZAWCVJQULZAWEVJSULZWKWIWJWGJKLBEFCDGHWAMWBOTWHWMWLWNWIW
        KWJAWFVJUEULVAAVJURUSVBAVKUJZEGHIBDCMNOAVMVKPULZAVOVKUAULZAVQVKUCULZAVS
        VKUBULZWOJLKBEFDCGHWAMWBOTWPAWCVKQULZAWEVKSULZAWDVKRULZWQWRWSWOJKLBEFCD
        GHWAMWBOTWPWTXBXAWQWSWRAWFVKUEULVCAVKURUSVDAKJLIUFUGJLUHUIVIVJVKVEUDAEG
        HIJLKMNOPQSRVHVFVG $.
    $}

    lnxfr.d $e |- .- = ( dist ` G ) $.
    ${
      $d c .- $.  $d c .~ $.  $d c A $.  $d c B $.  $d c I $.  $d c P $.
      $d c X $.  $d c Y $.  $d c Z $.  $d c ph $.
      lnext.1 $e |- ( ph -> ( Y e. ( X L Z ) \/ X = Z ) ) $.
      lnext.2 $e |- ( ph -> ( X .- Y ) = ( A .- B ) ) $.
      $( Extend a line with a missing point.  Theorem 4.14 of [Schwabhauser]
         p. 37.  (Contributed by Thierry Arnoux, 27-Apr-2019.) $)
      lnext $p |- ( ph -> E. c e. P <" X Y Z "> .~ <" A B c "> ) $=
        ( co wcel cs3 cv wrex wa wceq axtgsegcon adantr cstrkg ad3antrrr simplr
        wbr simprr eqcomd simpllr simprl tgcgrextend tgcgrcomlr trgcgr reximdva
        ex mpd simpr tgcgrxfr cgr3swap23 wo w3o tgcolg mpbid mpjao3dan ) AKJLGU
        GUHZJKLUIBCMUJZUIEUSZMDUKZJKLGUGUHZLJKGUGUHZAVRULZCBVSGUGUHZCVSIUGZKLIU
        GZUMZULZMDUKZWAAWJVRAMKLDFGIBCNUDPQUBUCSTUNUOWDWIVTMDWDVSDUHZULZWIVTWLW
        IULZJKLBDECVSFINUDUAAFUPUHZVRWKWIQUQZAJDUHZVRWKWIRUQZAKDUHZVRWKWISUQZAL
        DUHZVRWKWITUQZABDUHZVRWKWIUBUQZACDUHZVRWKWIUCUQZWDWKWIURZAJKIUGBCIUGUMZ
        VRWKWIUFUQZWMWFWGWLWEWHUTVAZWMJLBVSDFGINUDPWOWQXAXCXFWMJKLBDCVSFGINUDPW
        OWQWSXAXCXEXFAVRWKWIVBWLWEWHVCXHXIVDVEVFVHVGVIAWBULZBCVSGUGUHZBVSIUGZJL
        IUGZUMZULZMDUKZWAAXPWBAMJLDFGICBNUDPQUCUBRTUNUOXJXOVTMDXJWKULZXOVTXQXOU
        LZJKLBDECVSFINUDUAAWNWBWKXOQUQZAWPWBWKXORUQZAWRWBWKXOSUQZAWTWBWKXOTUQZA
        XBWBWKXOUBUQZAXDWBWKXOUCUQZXJWKXOURZAXGWBWKXOUFUQZXRKJLCDBVSFGINUDPXSYA
        XTYBYDYCYEAWBWKXOVBXQXKXNVCXRJKBCDFGINUDPXSXTYAYCYDYFVEXRXLXMXQXKXNUTVA
        ZVDXRJLBVSDFGINUDPXSXTYBYCYEYGVEVFVHVGVIAWCULZVSBCGUGUHZJLKUIBVSCUIEUSZ
        ULZMDUKWAYHJLKBDEMCFGINUDPUAAWNWCQUOAWPWCRUOAWTWCTUOAWRWCSUOAXBWCUBUOAX
        DWCUCUOAWCVJAXGWCUFUOVKYHYKVTMDYHWKULZYKVTYLYKULJLKBDEVSCFGINUDPUAAWNWC
        WKYKQUQAWPWCWKYKRUQAWTWCWKYKTUQAWRWCWKYKSUQAXBWCWKYKUBUQYHWKYKURAXDWCWK
        YKUCUQYLYIYJUTVLVHVGVIAKJLHUGUHJLUMVMVRWBWCVNUEADFGHJLKNOPQRTSVOVPVQ $.
    $}

    ${
      tgfscgr.t $e |- ( ph -> T e. P ) $.
      tgfscgr.c $e |- ( ph -> C e. P ) $.
      tgfscgr.d $e |- ( ph -> D e. P ) $.
      tgfscgr.1 $e |- ( ph -> ( Y e. ( X L Z ) \/ X = Z ) ) $.
      tgfscgr.2 $e |- ( ph -> <" X Y Z "> .~ <" A B C "> ) $.
      tgfscgr.3 $e |- ( ph -> ( X .- T ) = ( A .- D ) ) $.
      tgfscgr.4 $e |- ( ph -> ( Y .- T ) = ( B .- D ) ) $.
      tgfscgr.5 $e |- ( ph -> X =/= Y ) $.
      $( Congruence law for the general five segment configuration.  Theorem
         4.16 of [Schwabhauser] p. 37.  (Contributed by Thierry Arnoux,
         27-Apr-2019.) $)
      tgfscgr $p |- ( ph -> ( Z .- T ) = ( C .- D ) ) $=
        ( co wcel wceq wa cstrkg adantr wne simpr tgbtwnxfr cgr3simp1 cgr3simp2
        cs3 wbr axtg5seg necomd cgr3swap12 cgr3swap23 tgifscgr w3o tgcolg mpbid
        wo mpjao3dan ) ANMOJUOUPZOHLUODELUOUQMNOJUOUPZOMNJUOUPZAVRURZBCDFHIJLEM
        NOPUFRAIUSUPZVRSUTZAMFUPZVRTUTZANFUPZVRUAUTZAOFUPZVRUBUTZABFUPZVRUDUTZA
        CFUPZVRUEUTZADFUPZVRUHUTZAHFUPZVRUGUTAEFUPZVRUIUTAMNVAVRUNUTAVRVBZWAMNO
        BFGCDIJLPUFRUCWCWEWGWIWKWMWOAMNOVFBCDVFGVGZVRUKUTZWRVCWAMNOBFGCDIJLPUFR
        UCWCWEWGWIWKWMWOWTVDWAMNOBFGCDIJLPUFRUCWCWEWGWIWKWMWOWTVEAMHLUOBELUOUQZ
        VRULUTANHLUOCELUOUQZVRUMUTVHAVSURZCBDFHIJLENMOPUFRAWBVSSUTZAWFVSUAUTZAW
        DVSTUTZAWHVSUBUTZAWLVSUEUTZAWJVSUDUTZAWNVSUHUTZAWPVSUGUTAWQVSUIUTANMVAV
        SAMNUNVIUTAVSVBZXCNMOCFGBDIJLPUFRUCXDXEXFXGXHXIXJXCMNOBFGCDIJLPUFRUCXDX
        FXEXGXIXHXJAWSVSUKUTVJZXKVCXCNMOCFGBDIJLPUFRUCXDXEXFXGXHXIXJXLVDXCNMOCF
        GBDIJLPUFRUCXDXEXFXGXHXIXJXLVEAXBVSUMUTAXAVSULUTVHAVTURZMONHFBDIEJCLPUF
        RAWBVTSUTZAWDVTTUTZAWHVTUBUTZAWFVTUAUTZAWPVTUGUTAWJVTUDUTZAWNVTUHUTZAWL
        VTUEUTZAWQVTUIUTAVTVBZXMMONBFGDCIJLPUFRUCXNXOXPXQXRXSXTXMMNOBFGCDIJLPUF
        RUCXNXOXQXPXRXTXSAWSVTUKUTZVKZYAVCXMMNOBFGCDIJLPUFRUCXNXOXQXPXRXTXSYBVD
        XMMONBFGDCIJLPUFRUCXNXOXPXQXRXSXTYCVEAXAVTULUTAXBVTUMUTVLANMOKUOUPMOUQV
        PVRVSVTVMUJAFIJKMONPQRSTUBUAVNVOVQ $.
    $}

    ${
      lncgr.1 $e |- ( ph -> X =/= Y ) $.
      lncgr.2 $e |- ( ph -> ( Y e. ( X L Z ) \/ X = Z ) ) $.
      lncgr.3 $e |- ( ph -> ( X .- A ) = ( X .- B ) ) $.
      lncgr.4 $e |- ( ph -> ( Y .- A ) = ( Y .- B ) ) $.
      $( Congruence rule for lines.  Theorem 4.17 of [Schwabhauser] p. 37.
         (Contributed by Thierry Arnoux, 28-Apr-2019.) $)
      lncgr $p |- ( ph -> ( Z .- A ) = ( Z .- B ) ) $=
        ( cgr3id tgfscgr ) AJKLCDEBFGHIJKLMNOPQRSTQRUCUASUBUEAJKLDEFGIMUCOTPQRS
        UHUFUGUDUI $.
    $}

    ${
      lnid.1 $e |- ( ph -> X =/= Y ) $.
      lnid.2 $e |- ( ph -> ( Y e. ( X L Z ) \/ X = Z ) ) $.
      lnid.3 $e |- ( ph -> ( X .- Z ) = ( X .- A ) ) $.
      lnid.4 $e |- ( ph -> ( Y .- Z ) = ( Y .- A ) ) $.
      $( Identity law for points on lines.  Theorem 4.18 of [Schwabhauser]
         p. 38.  (Contributed by Thierry Arnoux, 28-Apr-2019.) $)
      lnid $p |- ( ph -> Z = A ) $=
        ( co lncgr eqcomd axtgcgrid ) ADFGILBLMUCOPSUASALLIUHLBIUHALBDEFGHIJKLM
        NOPQRSTSUAUCUDUEUFUGUIUJUK $.
    $}

    ${
      tgidinside.1 $e |- ( ph -> Z e. ( X I Y ) ) $.
      tgidinside.2 $e |- ( ph -> ( X .- Z ) = ( X .- A ) ) $.
      tgidinside.3 $e |- ( ph -> ( Y .- Z ) = ( Y .- A ) ) $.
      $( Law for finding a point inside a segment.  Theorem 4.19 of
         [Schwabhauser] p. 38.  (Contributed by Thierry Arnoux,
         28-Apr-2019.) $)
      tgidinside $p |- ( ph -> Z = A ) $=
        ( wceq wa cstrkg wcel adantr co simpr oveq2d eleqtrrd axtgbtwnid eqtr3d
        tgcgreq wne wo btwncolg3 lnid pm2.61dane ) ALBUGJKAJKUGZUHZJLBVEDFGIJLM
        UCOAFUIUJZVDPUKZAJDUJZVDQUKZALDUJZVDSUKZVELJKGULZJJGULALVLUJVDUDUKVEJKJ
        GAVDUMUNUOUPZVEJLJBDFGIMUCOVGVIVKVIABDUJZVDUAUKAJLIULJBIULUGZVDUEUKVMUR
        UQAJKUSZUHBCDEFGHIJKLMNOAVFVPPUKAVHVPQUKAKDUJVPRUKAVJVPSUKTAVNVPUAUKACD
        UJVPUBUKUCAVPUMAKJLHULUJJLUGUTVPADFGHJLKMNOPQSRUDVAUKAVOVPUEUKAKLIULKBI
        ULUGVPUFUKVBVC $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Connectivity of betweenness
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    tgbtwnconn1.p $e |- P = ( Base ` G ) $.
    tgbtwnconn1.i $e |- I = ( Itv ` G ) $.
    tgbtwnconn1.g $e |- ( ph -> G e. TarskiG ) $.
    tgbtwnconn1.a $e |- ( ph -> A e. P ) $.
    tgbtwnconn1.b $e |- ( ph -> B e. P ) $.
    tgbtwnconn1.c $e |- ( ph -> C e. P ) $.
    tgbtwnconn1.d $e |- ( ph -> D e. P ) $.
    tgbtwnconn1.1 $e |- ( ph -> A =/= B ) $.
    tgbtwnconn1.2 $e |- ( ph -> B e. ( A I C ) ) $.
    tgbtwnconn1.3 $e |- ( ph -> B e. ( A I D ) ) $.

    ${
      tgbtwnconn1.m $e |- .- = ( dist ` G ) $.
      tgbtwnconn1.e $e |- ( ph -> E e. P ) $.
      tgbtwnconn1.f $e |- ( ph -> F e. P ) $.
      tgbtwnconn1.h $e |- ( ph -> H e. P ) $.
      tgbtwnconn1.j $e |- ( ph -> J e. P ) $.
      tgbtwnconn1.4 $e |- ( ph -> D e. ( A I E ) ) $.
      tgbtwnconn1.5 $e |- ( ph -> C e. ( A I F ) ) $.
      tgbtwnconn1.6 $e |- ( ph -> E e. ( A I H ) ) $.
      tgbtwnconn1.7 $e |- ( ph -> F e. ( A I J ) ) $.
      tgbtwnconn1.8 $e |- ( ph -> ( E .- D ) = ( C .- D ) ) $.
      tgbtwnconn1.9 $e |- ( ph -> ( C .- F ) = ( C .- D ) ) $.
      tgbtwnconn1.10 $e |- ( ph -> ( E .- H ) = ( B .- C ) ) $.
      tgbtwnconn1.11 $e |- ( ph -> ( F .- J ) = ( B .- D ) ) $.
      $( Lemma for ~ tgbtwnconn1 .  (Contributed by Thierry Arnoux,
         30-Apr-2019.) $)
      tgbtwnconn1lem1 $p |- ( ph -> H = J ) $=
        ( tgbtwnexch tgbtwnexch3 tgbtwncom axtgcgrrflx eqtr2d eqtr4d tgcgrcomlr
        co tgcgrextend tgcgrcomr tgsegconeq ) ACLCBFJLIKMNUDOPRUHRQUGUHUAABCGJF
        IKMNUDOPQRUEUGABCEGFIKMNUDOPQRTUEUCUIUQZUKUQABCHLFIKMNUDOPQRUFUHABCDHFI
        KMNUDOPQRSUFUBUJUQULUQACGJLFDCIKMNUDOPRUEUGUHSRABCGJFIKMNUDOPQRUEUGVHUK
        URACDLFIKMNUDOPRSUHABCDLFIKMNUDOPQRSUHUBABDHLFIKMNUDOPQSUFUHUJULUQURUSA
        CEGLFHDIKMNUDOPRTUEUHUFSABCEGFIKMNUDOPQRTUEUCUIURADHLFIKMNUDOPSUFUHABDH
        LFIKMNUDOPQSUFUHUJULURUSALHMVDHLMVDCEMVDAFIKMLHNUDOPUHUFUTUPVAAGEDHFIKM
        NUDOPUETSUFAGEMVDDEMVDDHMVDUMUNVBVCVEAGJCDFIKMNUDOPUEUGRSUOVFVEAFIKMCLN
        UDOPRUHUTVG $.

      $( Lemma for ~ tgbtwnconn1 .  (Contributed by Thierry Arnoux,
         30-Apr-2019.) $)
      tgbtwnconn1lem2 $p |- ( ph -> ( E .- F ) = ( C .- D ) ) $=
        ( co wceq wa axtgcgrrflx adantr cstrkg wcel simpr eqtrd tgbtwnconn1lem1
        oveq1d axtgcgrid oveq2d 3eqtrd wne tgbtwnexch3 eleqtrd tgbtwncom eqtr4d
        3eqtr3d eqtr2d tgcgrcomlr eqcomd tgcgrextend axtg5seg pm2.61dane ) AGHM
        UQZDEMUQZURCDACDURZUSZWCHGMUQZWDAWCWGURWEAFIKMGHNUDOPUEUFUTVAWFWGHLMUQZ
        CEMUQZWDWFGLHMWFGJLWFFIKMGJDNUDOAIVBVCZWEPVAAGFVCZWEUEVAAJFVCWEUGVAADFV
        CZWESVAWFGJMUQZCDMUQZDDMUQAWMWNURZWEUOVAWFCDDMAWEVDZVGVEVHAJLURZWEABCDE
        FGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPVFZVAVEVIAWHWIURWEUPVAWF
        CDEMWPVGVJVEACDVKZUSZHGEDFIKMNUDOAWJWSPVAZAHFVCWSUFVAZAWKWSUEVAZAEFVCWS
        TVAZAWLWSSVAZWTLGEFGIKMDCDHNUDOXAACFVCWSRVAZXEXBALFVCWSUHVAZXCXDXCXEAWS
        VDADCHKUQVCWSABCDHFIKMNUDOPQRSUFUBUJVLVAAGLEKUQVCWSAEGLFIKMNUDOPTUEUHAB
        EGLFIKMNUDOPQTUEUHUIAGBJKUQBLKUQUKAJLBKWRVIVMVLVNVAWTWMGLMUQWNLGMUQWTJL
        GMAWQWSWRVAVIAWOWSUOVAWTFIKMGLNUDOXAXCXGUTVPADHMUQZGEMUQZURWSAXHWDXIUNU
        MVOZVAWTCEGLFHDIKMNUDOXAXFXDXCXGXBXEAECGKUQVCWSABCEGFIKMNUDOPQRTUEUCUIV
        LVAAHLDKUQVCWSADHLFIKMNUDOPSUFUHABDHLFIKMNUDOPQSUFUHUJULVLVNVAAWILHMUQZ
        URWSAXKWHWIAFIKMLHNUDOPUHUFUTUPVQVAWTHDMUQZEGMUQZAXLXMURWSADHGEFIKMNUDO
        PSUFUETXJVRVAVSVTWTFIKMDGNUDOXAXEXCUTWAVRWB $.

      $d p q r C $.  $d p q r D $.  $d p q r E $.  $d p q r F $.  $d p q r I $.
      $d p q r P $.  $d p q r ph $.  $d p q r .- $.  $d q r X $.
      tgbtwnconn1.x $e |- ( ph -> X e. P ) $.
      tgbtwnconn1.12 $e |- ( ph -> X e. ( C I E ) ) $.
      tgbtwnconn1.13 $e |- ( ph -> X e. ( D I F ) ) $.
      tgbtwnconn1.14 $e |- ( ph -> C =/= E ) $.
      $( Lemma for ~ tgbtwnconn1 .  (Contributed by Thierry Arnoux,
         30-Apr-2019.) $)
      tgbtwnconn1lem3 $p |- ( ph -> D = F ) $=
        ( vp vr vq cv co wcel wa cstrkg ad6antr simplr adantr simpllr tgcgrtriv
        wceq simpr eqidd eqcomd tgbtwnconn1lem2 eqtr4d tgifscgr eqtrd axtgcgrid
        oveq2d oveq1d simp-4r ad2antrr wne neneqd pm2.65da neqned necomd simpld
        tgcgreq tgbtwncom simp-5r tgbtwnexch3 simprd tgcgrcomlr axtg5seg simprr
        axtgcgrrflx 3eqtr4d ad7antr simplrl 3eqtr4rd tgcgrextend pm2.61dane cfv
        ccgrg clng eqid btwncolg2 3eqtr3d 3eqtrd tgbtwnexch eleqtrd tgbtwnexch2
        axtgbtwnid wn tgbtwnconn1lem1 btwncolg3 tgbtwnintr lncgr btwncolg1 lnid
        eqtr3d axtgsegcon r19.29a ) ADGVBVEZKVFVGZDYJMVFZDHMVFZVOZVHZEHVOZVBFAY
[encoded data, 4320 characters]
        GZVVEAUVNYQYOURWGYHYIAVBDHFIKMGDOUEPQUFTTUGYHYI $.
    $}

    $d e f h j x A $.  $d h j x B $.  $d e f h j x C $.  $d e f h j x D $.
    $d e f h j x G $.  $d e f h j x I $.  $d e f h j x P $.  $d e f h j x ph $.
    $( Connectivity law for betweenness.  Theorem 5.1 of [Schwabhauser]
       p. 39-41.  In earlier presentations of Tarski's axioms, this theorem
       appeared as an additional axiom.  It was derived from the other axioms
       by Gupta, 1965.  (Contributed by Thierry Arnoux, 30-Apr-2019.) $)
    tgbtwnconn1 $p |- ( ph -> ( C e. ( A I D ) \/ D e. ( A I C ) ) ) $=
      ( wcel wa ve vf vh vj vx cv co cds cfv wceq wo simpld adantr simpr oveq2d
      simpllr eleqtrrd olcd simprl wn wne df-ne cstrkg ad4antr ad7antr simp-11l
      orcd eqid simp-4r simplr simp-6r simp-5r simprd tgcgrcomlr simprr simp-7r
      syl tgbtwnconn1lem3 wrex tgbtwncom axtgpasch ad5antr axtgsegcon ad3antrrr
      r19.29a ex syl5bir orrd mpjaodan ad2antrr ) AEBUAUFZHUGZSZEWKGUHUIZUGEDWN
      UGUJZTZDBEHUGZSZEBDHUGZSZUKZUAFAWKFSZTZWPTZDBUBUFZHUGZSZDXEWNUGDEWNUGUJZT
      ZXAUBFXDXEFSZTZXITZDWKUJZXAEXEUJZXLXMTZWTWRXOEWLWSXLWMXMXLWMWOXCWPXJXIUPZ
      ULZUMXODWKBHXLXMUNUOUQURXLXNTZWRWTXRDXFWQXLXGXNXKXGXHUSZUMXREXEBHXLXNUNUO
      UQVGXLXMXNXMUTDWKVAZXLXNDWKVBXLXTXNXLXTTZWKBUCUFZHUGSZWKYBWNUGCDWNUGUJZTZ
      XNUCFYAYBFSZTZYETZXEBUDUFZHUGSZXEYIWNUGCEWNUGUJZTZXNUDFYHYIFSZTZYLTZUEUFZ
      DWKHUGSZYPEXEHUGSZTZXNUEFYOYPFSZTZYSTZBCDEFWKXEGYBHYIWNYPIJXLGVCSZXTYFYEY
      MYLYTYSAUUCXBWPXJXIKVDZVEZXLBFSZXTYFYEYMYLYTYSAUUFXBWPXJXILVDZVEXLCFSZXTY
      FYEYMYLYTYSAUUHXBWPXJXIMVDZVEXLDFSZXTYFYEYMYLYTYSAUUJXBWPXJXINVDZVEZXLEFS
      ZXTYFYEYMYLYTYSAUUMXBWPXJXIOVDZVEZUUBABCVAAXBWPXJXIXTYFYEYMYLYTYSVFZPVQUU
      BACWSSUUPQVQUUBACWQSUUPRVQWNVHZXLXBXTYFYEYMYLYTYSAXBWPXJXIVIZVEZXLXJXTYFY
      EYMYLYTYSXDXJXIVJZVEYAYFYEYMYLYTYSVKYHYMYLYTYSVIXLWMXTYFYEYMYLYTYSXQVEXLX
      GXTYFYEYMYLYTYSXSVEUUBYCYDYGYEYMYLYTYSVLZULUUBYJYKYNYLYTYSUPZULUUBEWKEDFG
      HWNIUUQJUUEUUOUUSUUOUULXLWOXTYFYEYMYLYTYSXLWMWOXPVMVEVNXLXHXTYFYEYMYLYTYS
      XKXGXHVOVEUUBYCYDUVAVMUUBYJYKUVBVMYOYTYSVJUUAYQYRUSUUAYQYRVOXLXTYFYEYMYLY
      TYSVPVRXLYSUEFVSXTYFYEYMYLXLFDGHWNEXEWKBUEIUUQJUUDUUTUURUUGUUKUUNXLBDXEFG
      HWNIUUQJUUDUUGUUKUUTXSVTXLBEWKFGHWNIUUQJUUDUUGUUNUURXQVTWAWBWEXLYLUDFVSXT
      YFYEXLUDCEFGHWNBXEIUUQJUUDUUGUUTUUIUUNWCWDWEXLYEUCFVSXTXLUCCDFGHWNBWKIUUQ
      JUUDUUGUURUUIUUKWCUMWEWFWGWHWIAXIUBFVSXBWPAUBDEFGHWNBDIUUQJKLNNOWCWJWEAUA
      EDFGHWNBEIUUQJKLOONWCWE $.
  $}

  ${
    tgbtwnconn.p $e |- P = ( Base ` G ) $.
    tgbtwnconn.i $e |- I = ( Itv ` G ) $.
    tgbtwnconn.g $e |- ( ph -> G e. TarskiG ) $.
    tgbtwnconn.a $e |- ( ph -> A e. P ) $.
    tgbtwnconn.b $e |- ( ph -> B e. P ) $.
    tgbtwnconn.c $e |- ( ph -> C e. P ) $.
    tgbtwnconn.d $e |- ( ph -> D e. P ) $.
    ${
      tgbtwnconn2.1 $e |- ( ph -> A =/= B ) $.
      tgbtwnconn2.2 $e |- ( ph -> B e. ( A I C ) ) $.
      tgbtwnconn2.3 $e |- ( ph -> B e. ( A I D ) ) $.
      $( Another connectivity law for betweenness.  Theorem 5.2 of
         [Schwabhauser] p. 41.  (Contributed by Thierry Arnoux,
         17-May-2019.) $)
      tgbtwnconn2 $p |- ( ph -> ( C e. ( B I D ) \/ D e. ( B I C ) ) ) $=
        ( wcel adantr co wo wa cds cfv eqid cstrkg tgbtwnexch3 orcd tgbtwnconn1
        simpr olcd mpjaodan ) ADBEHUAZSZDCEHUASZECDHUASZUBEBDHUAZSZAUOUCZUPUQUT
        BCDEFGHGUDUEZIVAUFZJAGUGSZUOKTABFSZUOLTACFSZUOMTADFSZUONTAEFSZUOOTACURS
        UOQTAUOUKUHUIAUSUCZUQUPVHBCEDFGHVAIVBJAVCUSKTAVDUSLTAVEUSMTAVGUSOTAVFUS
        NTACUNSUSRTAUSUKUHULABCDEFGHIJKLMNOPQRUJUM $.
    $}

    ${
      $d p A $.  $d p B $.  $d p C $.  $d p D $.  $d p G $.  $d p I $.
      $d p P $.  $d p ph $.
      tgbtwnconn3.1 $e |- ( ph -> B e. ( A I D ) ) $.
      tgbtwnconn3.2 $e |- ( ph -> C e. ( A I D ) ) $.
      $( Inner connectivity law for betweenness.  Theorem 5.3 of [Schwabhauser]
         p. 41.  (Contributed by Thierry Arnoux, 17-May-2019.) $)
      tgbtwnconn3 $p |- ( ph -> ( B e. ( A I C ) \/ C e. ( A I B ) ) ) $=
        ( wcel adantr ad3antrrr vp chash cfv c1 wceq co wo c2 cle wbr wa cstrkg
        cds eqid simpr tgldim0itv orcd cv simplr simprr necomd simprl tgbtwncom
        tgbtwnintr tgbtwnexch3 tgbtwnconn2 tgbtwndiff r19.29a tgldimor mpjaodan
        wne cbs ) AFUBUCZUDUEZCBDHUFRZDBCHUFRZUGZUHVMUIUJZAVNUKZVOVPVSCBDFGHGUM
        UCZIVTUNZJAGULRZVNKSACFRZVNMSABFRZVNLSADFRZVNNSAVNUOUPUQAVRUKZBEUAURZHU
        FRZBWGVKZUKZVQUAFWFWGFRZUKZWJUKZWGBCDFGHIJAWBVRWKWJKTZWFWKWJUSZAWDVRWKW
        JLTZAWCVRWKWJMTZAWEVRWKWJNTZWMBWGWLWHWIUTVAWMCBWGFGHVTIWAJWNWQWPWOWMCBW
        GEFGHVTIWAJWNWQWPWOAEFRZVRWKWJOTZACBEHUFZRVRWKWJPTWMEBWGFGHVTIWAJWNWTWP
        WOWLWHWIVBZVCVDVCWMDBWGFGHVTIWAJWNWRWPWOWMEDBWGFGHVTIWAJWNWTWRWPWOWMBDE
        FGHVTIWAJWNWPWRWTADXARVRWKWJQTVCXBVEVCVFWFEBFGHVTUAIWAJAWBVRKSAWSVROSAW
        DVRLSAVRUOVGVHABFVLGILVIVJ $.

      tgbtwnconnln3.l $e |- L = ( LineG ` G ) $.
      $( Derive colinearity from betweenness.  (Contributed by Thierry Arnoux,
         17-May-2019.) $)
      tgbtwnconnln3 $p |- ( ph -> ( B e. ( A L C ) \/ A = C ) ) $=
        ( adantr co wcel wceq wo wa cstrkg simpr btwncolg1 tgbtwnconn3 mpjaodan
        btwncolg3 ) ACBDHUAUBZCBDIUAUBBDUCUDDBCHUAUBZAULUEFGHIBDCJSKAGUFUBZULLT
        ABFUBZULMTADFUBZULOTACFUBZULNTAULUGUHAUMUEFGHIBDCJSKAUNUMLTAUOUMMTAUPUM
        OTAUQUMNTAUMUGUKABCDEFGHJKLMNOPQRUIUJ $.
    $}

    ${
      tgbtwnconn22.e $e |- ( ph -> E e. P ) $.
      tgbtwnconn22.1 $e |- ( ph -> A =/= B ) $.
      tgbtwnconn22.2 $e |- ( ph -> C =/= B ) $.
      tgbtwnconn22.3 $e |- ( ph -> B e. ( A I C ) ) $.
      tgbtwnconn22.4 $e |- ( ph -> B e. ( A I D ) ) $.
      tgbtwnconn22.5 $e |- ( ph -> B e. ( C I E ) ) $.
      $( Double connectivity law for betweenness.  (Contributed by Thierry
         Arnoux, 1-Dec-2019.) $)
      tgbtwnconn22 $p |- ( ph -> B e. ( D I E ) ) $=
        ( wcel cds cfv eqid cstrkg adantr wne tgbtwncom tgbtwnouttr2 tgbtwnintr
        co wa simpr tgbtwnconn2 mpjaodan ) ADCEIUMUCZCEGIUMUCECDIUMUCZAURUNZEDC
        GFHIHUDUEZJVAUFZKAHUGUCZURLUHZAEFUCZURPUHZADFUCZUROUHZACFUCZURNUHZAGFUC
        ZURQUHADCUIURSUHUTCDEFHIVAJVBKVDVJVHVFAURUOUJACDGIUMUCZURUBUHUKAUSUNZEC
        GDFHIVAJVBKAVCUSLUHZAVEUSPUHAVIUSNUHZAVKUSQUHZAVGUSOUHZAUSUOVMDCGFHIVAJ
        VBKVNVQVOVPAVLUSUBUHUJULABCDEFHIJKLMNOPRTUAUPUQ $.
    $}

    ${
      tgbtwnconnln1.l $e |- L = ( LineG ` G ) $.
      tgbtwnconnln1.1 $e |- ( ph -> A =/= B ) $.
      tgbtwnconnln1.2 $e |- ( ph -> B e. ( A I C ) ) $.
      tgbtwnconnln1.3 $e |- ( ph -> B e. ( A I D ) ) $.
      $( Derive colinearity from betweenness.  (Contributed by Thierry Arnoux,
         17-May-2019.) $)
      tgbtwnconnln1 $p |- ( ph -> ( A e. ( C L D ) \/ C = D ) ) $=
        ( co wcel wceq wo cstrkg adantr simpr btwncolg2 cds tgbtwncom btwncolg3
        wa cfv eqid tgbtwnconn1 mpjaodan ) ADBEHUAUBZBDEIUAUBDEUCUDEBDHUAUBZAUQ
        ULFGHIDEBJQKAGUEUBZUQLUFADFUBZUQOUFAEFUBZUQPUFABFUBZUQMUFAUQUGUHAURULZF
        GHIDEBJQKAUSURLUFZAUTUROUFZAVAURPUFZAVBURMUFZVCBEDFGHGUIUMZJVHUNKVDVGVF
        VEAURUGUJUKABCDEFGHJKLMNOPRSTUOUP $.

      $( Derive colinearity from betweenness.  (Contributed by Thierry Arnoux,
         17-May-2019.) $)
      tgbtwnconnln2 $p |- ( ph -> ( B e. ( C L D ) \/ C = D ) ) $=
        ( co wcel wceq wo cstrkg adantr simpr btwncolg2 cds tgbtwncom btwncolg3
        wa cfv eqid tgbtwnconn2 mpjaodan ) ADCEHUAUBZCDEIUAUBDEUCUDECDHUAUBZAUQ
        ULFGHIDECJQKAGUEUBZUQLUFADFUBZUQOUFAEFUBZUQPUFACFUBZUQNUFAUQUGUHAURULZF
        GHIDECJQKAUSURLUFZAUTUROUFZAVAURPUFZAVBURNUFZVCCEDFGHGUIUMZJVHUNKVDVGVF
        VEAURUGUJUKABCDEFGHJKLMNOPRSTUOUP $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Less-than relation in geometric congruences
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c leG $.

  $( Less-than relation for geometric congruences. $)
  cleg $a class leG $.

  ${
    $d d e f g i p x y z $.
    $( Define the less-than relationship between geometric distance congruence
       classes.  See ~ legval .  (Contributed by Thierry Arnoux,
       21-Jun-2019.) $)
    df-leg $a |- leG = ( g e. _V |-> { <. e , f >. |
      [. ( Base ` g ) / p ]. [. ( dist ` g ) / d ]. [. ( Itv ` g ) / i ].
      E. x e. p E. y e. p ( f = ( x d y )
          /\ E. z e. p ( z e. ( x i y ) /\ e = ( x d z ) ) ) } ) $.
  $}

  ${
    legval.p $e |- P = ( Base ` G ) $.
    legval.d $e |- .- = ( dist ` G ) $.
    legval.i $e |- I = ( Itv ` G ) $.
    legval.l $e |- .<_ = ( leG ` G ) $.
    legval.g $e |- ( ph -> G e. TarskiG ) $.
    ${
      $d d e f g i p G $.  $d d g i p x y z I $.  $d d e f g i p x y z P $.
      $d d e f g i p x y z .- $.
      $( Value of the less-than relationship.  (Contributed by Thierry Arnoux,
         21-Jun-2019.) $)
      legval $p |- ( ph -> .<_ = { <. e , f >. |
        E. x e. P E. y e. P ( f = ( x .- y )
          /\ E. z e. P ( z e. ( x I y ) /\ e = ( x .- z ) ) ) } ) $=
        ( cv wceq wcel wa vg vd vi vp cleg cfv wrex copab cstrkg elex citv wsbc
        co cvv cds cbs w3a simp1 eqcomd simp2 oveqd eqeq2d simp3 eleq2d anbi12d
        rexeqbidv sbcie3s opabbidv df-leg wtru cxp cima c0 csn cun fvex eqeltri
        imaex p0ex unex simprr ovima0 ad5ant14 eqeltrd simpllr simpld ad3antrrr
        a1i jca eleq1 oveq2 cbvrexv sylib r19.29a rexlimivv adantl opabex2 trud
        ex simprd fvmpt 3syl syl5eq ) AJHUEUFZGQZBQZCQZKUMZRZDQZXFXGIUMZSZFQZXF
        XJKUMZRZTZDEUGZTZCEUGZBEUGZFGUHZOAHUISHUNSXDYARPHUIUJUAHXEXFXGUBQZUMZRZ
        XJXFXGUCQZUMZSZXMXFXJYBUMZRZTZDUDQZUGZTZCYKUGZBYKUGZUCUAQZUKUFULUBYPUOU
        FULUDYPUPUFULZFGUHYAUNUEYPHRYQXTFGXTYOUAEKIUPUOUKHUDUBUCLMNYKERZYBKRZYE
        IRZUQZXSYNBEYKUUAYKEYRYSYTURUSZUUAXRYMCEYKUUBUUAXIYDXQYLUUAXHYCXEUUAKYB
        XFXGUUAYBKYRYSYTUTUSZVAVBUUAXPYJDEYKUUBUUAXLYGXOYIUUAXKYFXJUUAIYEXFXGUU
        AYEIYRYSYTVCUSVAVDUUAXNYHXMUUAKYBXFXJUUCVAVBVEVFVEVFVFVGVHBCDFGUAUCUDUB
        VIYAUNSVJXTFGKEEVKZVLZVMVNZVOZUUGUNUNUUGUNSVJUUEUUFKUUDKHUOUFUNMHUOVPVQ
        VRVSVTWHZUUHVJXTTZXMUUGSZXEUUGSZXTUUJUUKTZVJXRUULBCEEXFESZXGESZTZXRUULU
        UOXRTZYBXKSZXMXFYBKUMZRZTZUULUBEUUPYBESZTZUUTTZUUJUUKUVCXMUURUUGUVBUUQU
        USWAUUMUVAUURUUGSUUNXRUUTEEKXFYBWBWCWDUVCXEXHUUGUVCXIXQUUOXRUVAUUTWEWFU
        UOXHUUGSXRUVAUUTEEKXFXGWBWGWDWIUUPXQUUTUBEUGUUOXIXQWAXPUUTDUBEXJYBRZXLU
        UQXOUUSXJYBXKWJUVDXNUURXMXJYBXFKWKVBVEWLWMWNWSWOWPZWFUUIUUJUUKUVEWTWQWR
        XAXBXC $.
    $}

    ${
      $d c d e f x y z .- $.  $d c d e f x y z A $.  $d c d e f x y z B $.
      $d c d e f x y z C $.  $d c d e f x y z D $.  $d c d e f x y z I $.
      $d c d e f x y z P $.  $d e f x y z G $.  $d c d x y z ph $.
      legov.a $e |- ( ph -> A e. P ) $.
      legov.b $e |- ( ph -> B e. P ) $.
      legov.c $e |- ( ph -> C e. P ) $.
      legov.d $e |- ( ph -> D e. P ) $.
      $( Value of the less-than relationship.  Definition 5.4 of [Schwabhauser]
         p. 41.  (Contributed by Thierry Arnoux, 21-Jun-2019.) $)
      legov $p |- ( ph -> ( ( A .- B ) .<_ ( C .- D ) <->
        E. z e. P ( z e. ( C I D ) /\ ( A .- B ) = ( C .- z ) ) ) ) $=
        ( vx vy vf ve vc vd co wbr cv wceq wcel wa wrex copab legval breqd ovex
        simpr eqeq1d simpl anbi2d rexbidv anbi12d 2rexbidv eqid braba anass cs3
        syl6bb anbi1i ccgrg cstrkg ad5antr adantr simp-5r simpllr simprl simprr
        cfv simp-4r cgr3swap23 tgbtwnxfr simplrr cgr3simp1 eqtrd clng btwncolg3
        simplr eqcomd lnext reximddv adantllr sylanbr eleq1 oveq2 eqeq2d sylibr
        cbvrexv r19.29a adantl3r oveq1 eleq2d anbi1d cbvrex2v r19.29vva rspc2ev
        jca eqidd syl112anc impbida bitrd ) ACDKUGZEFKUGZJUHZXMUAUIZUBUIZKUGZUJ
        ZBUIZXOXPIUGZUKZXLXOXSKUGZUJZULZBGUMZULZUBGUMUAGUMZXSEFIUGZUKZXLEXSKUGZ
        UJZULZBGUMZAXNXLXMUCUIZXQUJZYAUDUIZYBUJZULZBGUMZULZUBGUMUAGUMZUDUCUNZUH
        YGAJUUBXLXMAUAUBBGUDUCHIJKLMNOPUOUPUUAYGUDUCXLXMUUBCDKUQEFKUQYPXLUJZYNX
        MUJZULZYTYFUAUBGGUUEYOXRYSYEUUEYNXMXQUUCUUDURUSUUEYRYDBGUUEYQYCYAUUEYPX
        LYBUUCUUDUTUSVAVBVCVDUUBVEVFVIAYGYMAYGULZXMUEUIZUFUIZKUGZUJZXSUUGUUHIUG
        ZUKZXLUUGXSKUGZUJZULZBGUMZULZYMUEUFGGAYGUUGGUKZUUHGUKZUUQYMAUURULZUUSUL
        ZUUQULZXOUUKUKZXLUUGXOKUGZUJZULZYMUAGUVBXOGUKZULUVAUUJULZUUPULZUVGULUVF
        YMUVIUVBUVGUVAUUJUUPVGVJUVHUVGUVFYMUUPUVHUVGULZUVFULZUUGUUHXOVHEFXSVHHV
        KVSZUHZYLBGUVKXSGUKZUVMULZULZYIYKUVPUUGXOUUHEGUVLXSFHIKLMNUVLVEZUVKHVLU
        KZUVOAUVRUURUUSUUJUVGUVFPVMZVNZUVKUURUVOAUURUUSUUJUVGUVFVOZVNZUVHUVGUVF
        UVOVPZUVKUUSUVOUUTUUSUUJUVGUVFVTZVNZUVKEGUKZUVOAUWFUURUUSUUJUVGUVFSVMZV
        NZUVKUVNUVMVQZUVKFGUKZUVOAUWJUURUUSUUJUVGUVFTVMZVNZUVPUUGUUHXOEGUVLFXSH
        IKLMNUVQUVTUWBUWEUWCUWHUWLUWIUVKUVNUVMVRWAZUVKUVCUVOUVJUVCUVEVQZVNWBUVP
        XLUVDYJUVJUVCUVEUVOWCUVPUUGXOUUHEGUVLXSFHIKLMNUVQUVTUWBUWCUWEUWHUWIUWLU
        WMWDWEXGUVKEFGUVLHIHWFVSZKUUGUUHXOBLUWOVEZNUVSUWAUWDUVHUVGUVFWHZUVQUWGU
        WKMUVKGHIUWOUUGXOUUHLUWPNUVSUWAUWQUWDUWNWGUVKXMUUIUVAUUJUVGUVFVPWIWJWKW
        LWMUVBUUPUVFUAGUMUVAUUJUUPVRUVFUUOUABGXOXSUJZUVCUULUVEUUNXOXSUUKWNUWRUV
        DUUMXLXOXSUUGKWOWPVCWRWQWSWTUUFYGUUQUFGUMUEGUMAYGURUUQYFXMXOUUHKUGZUJZX
        SXOUUHIUGZUKZYCULZBGUMZULUEUFUAUBGGUUGXOUJZUUJUWTUUPUXDUXEUUIUWSXMUUGXO
        UUHKXAWPUXEUUOUXCBGUXEUULUXBUUNYCUXEUUKUXAXSUUGXOUUHIXAXBUXEUUMYBXLUUGX
        OXSKXAWPVCVBVCUUHXPUJZUWTXRUXDYEUXFUWSXQXMUUHXPXOKWOWPUXFUXCYDBGUXFUXBY
        AYCUXFUXAXTXSUUHXPXOIWOXBXCVBVCXDWQXEAYMULZUWFUWJXMXMUJZYMYGAUWFYMSVNAU
        WJYMTVNUXGXMXHAYMURYFUXHYMULXMEXPKUGZUJZXSEXPIUGZUKZYKULZBGUMZULUAUBEFG
        GXOEUJZXRUXJYEUXNUXOXQUXIXMXOEXPKXAWPUXOYDUXMBGUXOYAUXLYCYKUXOXTUXKXSXO
        EXPIXAXBUXOYBYJXLXOEXSKXAWPVCVBVCXPFUJZUXJUXHUXNYMUXPUXIXMXMXPFEKWOWPUX
        PUXMYLBGUXPUXLYIYKUXPUXKYHXSXPFEIWOXBXCVBVCXFXIXJXK $.

      $( An equivalent definition of the less-than relationship.  Definition
         5.5 of [Schwabhauser] p. 41.  (Contributed by Thierry Arnoux,
         21-Jun-2019.) $)
      legov2 $p |- ( ph -> ( ( A .- B ) .<_ ( C .- D ) <->
        E. x e. P ( B e. ( A I x ) /\ ( A .- x ) = ( C .- D ) ) ) ) $=
        ( vy vz co wbr cv wcel wceq wrex legov cs3 ccgrg cfv clng eqid ad2antrr
        cstrkg simplr simprl btwncolg1 simprr eqcomd lnext simpr simpllr simpld
        wa tgbtwnxfr trgcgrcom cgr3simp3 tgcgrcomlr jca reximdva adantllr eleq1
        ex mpd oveq2 eqeq2d anbi12d cbvrexv r19.29a btwncolg3 cgr3swap23 eleq2d
        sylib eqeq1d impbida bitrd ) ACDKUCZEFKUCZJUDUAUEZEFIUCZUFZWIEWKKUCZUGZ
        VFZUAGUHZDCBUEZIUCZUFZCWRKUCZWJUGZVFZBGUHZAUACDEFGHIJKLMNOPQRSTUIAWQXDA
        WQVFZUBUEZWLUFZWIEXFKUCZUGZVFZXDUBGAXFGUFZXJXDWQAXKVFZXJVFZEXFFUJCDWRUJ
        HUKULZUDZBGUHXDXMCDGXNHIHUMULZKEXFFBLXPUNZNAHUPUFZXKXJPUOZAEGUFZXKXJSUO
        ZAXKXJUQZAFGUFZXKXJTUOZXNUNZACGUFZXKXJQUOZADGUFZXKXJRUOZMXMGHIXPEFXFLXQ
        NXSYAYDYBXLXGXIURUSXMWIXHXLXGXIUTVAVBXMXOXCBGXMWRGUFZVFZXOXCYKXOVFZWTXB
        YLEXFFCGXNDWRHIKLMNYEXMXRYJXOXSUOZXMXTYJXOYAUOZXMXKYJXOYBUOZXMYCYJXOYDU
        OZXMYFYJXOYGUOZXMYHYJXOYIUOZXMYJXOUQZYKXOVCZYLXGXIXLXJYJXOVDVEVGYLWRCFE
        GHIKLMNYMYSYQYPYNYLCDWREGXNXFFHIKLMNYEYMYQYRYSYNYOYPYLEXFFCGXNDWRHIKLMN
        YEYMYNYOYPYQYRYSYTVHVIVJVKVOVLVPVMXEWQXJUBGUHAWQVCWPXJUAUBGWKXFUGZWMXGW
        OXIWKXFWLVNUUAWNXHWIWKXFEKVQVRVSVTWEWAAXDVFZDCXFIUCZUFZCXFKUCZWJUGZVFZW
        QUBGAXKUUGWQXDXLUUGVFZCXFDUJEFWKUJXNUDZUAGUHWQUUHEFGXNHIXPKCXFDUALXQNAX
        RXKUUGPUOZAYFXKUUGQUOZAXKUUGUQZAYHXKUUGRUOZYEAXTXKUUGSUOZAYCXKUUGTUOZMU
        UHGHIXPCDXFLXQNUUJUUKUUMUULXLUUDUUFURWBXLUUDUUFUTVBUUHUUIWPUAGUUHWKGUFZ
        VFZUUIWPUUQUUIVFZWMWOUURCDXFEGXNWKFHIKLMNYEUUHXRUUPUUIUUJUOZUUHYFUUPUUI
        UUKUOZUUHYHUUPUUIUUMUOZUUHXKUUPUUIUULUOZUUHXTUUPUUIUUNUOZUUHUUPUUIUQZUU
        HYCUUPUUIUUOUOZUURCXFDEGXNFWKHIKLMNYEUUSUUTUVBUVAUVCUVEUVDUUQUUIVCZWCUU
        RUUDUUFXLUUGUUPUUIVDVEVGUURDCWKEGHIKLMNUUSUVAUUTUVDUVCUURCXFDEGXNFWKHIK
        LMNYEUUSUUTUVBUVAUVCUVEUVDUVFVIVJVKVOVLVPVMUUBXDUUGUBGUHAXDVCXCUUGBUBGW
        RXFUGZWTUUDXBUUFUVGWSUUCDWRXFCIVQWDUVGXAUUEWJWRXFCKVQWFVSVTWEWAWGWH $.
    $}

    ${
      $d x y z .- $.  $d x y z A $.  $d x y z B $.  $d x y z C $.
      $d x y z D $.  $d x y z E $.  $d x y z F $.  $d x y z G $.  $d x y z I $.
      $d x y z P $.  $d x y z ph $.
      legid.a $e |- ( ph -> A e. P ) $.
      legid.b $e |- ( ph -> B e. P ) $.
      $( Reflexivity of the less-than relationship.  Proposition 5.7 of
         [Schwabhauser] p. 42.  (Contributed by Thierry Arnoux,
         27-Jun-2019.) $)
      legid $p |- ( ph -> ( A .- B ) .<_ ( A .- B ) ) $=
        ( vx co wcel wceq wa wbr cv wrex tgbtwntriv2 eqidd eleq1 eqeq2d anbi12d
        oveq2 rspcev syl12anc legov mpbird ) ABCHQZUNGUAPUBZBCFQZRZUNBUOHQZSZTZ
        PDUCZACDRCUPRZUNUNSZVAOABCDEFHIJKMNOUDAUNUEUTVBVCTPCDUOCSZUQVBUSVCUOCUP
        UFVDURUNUNUOCBHUIUGUHUJUKAPBCBCDEFGHIJKLMNONOULUM $.

      legtrd.c $e |- ( ph -> C e. P ) $.
      ${
        btwnleg.1 $e |- ( ph -> B e. ( A I C ) ) $.
        $( Betweenness implies less-than relation.  (Contributed by Thierry
           Arnoux, 3-Jul-2019.) $)
        btwnleg $p |- ( ph -> ( A .- B ) .<_ ( A .- C ) ) $=
          ( vx co wbr cv wcel wceq wrex eqidd eleq1 oveq2 eqeq2d anbi12d rspcev
          wa syl12anc legov mpbird ) ABCITZBDITHUASUBZBDGTZUCZUPBUQITZUDZULZSEU
          EZACEUCCURUCZUPUPUDZVCPRAUPUFVBVDVEULSCEUQCUDZUSVDVAVEUQCURUGVFUTUPUP
          UQCBIUHUIUJUKUMASBCBDEFGHIJKLMNOPOQUNUO $.
      $}

      legtrd.d $e |- ( ph -> D e. P ) $.
      ${
        legtrd.e $e |- ( ph -> E e. P ) $.
        legtrd.f $e |- ( ph -> F e. P ) $.
        legtrd.1 $e |- ( ph -> ( A .- B ) .<_ ( C .- D ) ) $.
        legtrd.2 $e |- ( ph -> ( C .- D ) .<_ ( E .- F ) ) $.
        $( Transitivity of the less-than relationship.  Proposition 5.8 of
           [Schwabhauser] p. 42.  (Contributed by Thierry Arnoux,
           27-Jun-2019.) $)
        legtrd $p |- ( ph -> ( A .- B ) .<_ ( E .- F ) ) $=
          ( vz vx vy co wbr cv wcel wceq wa wrex cs3 ccgrg cfv clng eqid cstrkg
          ad4antr simp-4r simplr simpllr simpld btwncolg3 simprr lnext ad2antrr
          ad6antr simpr cgr3swap23 tgbtwnxfr tgbtwnexch simp-5r cgr3simp1 eqtrd
          simprd jca ex reximdva mpd legov mpbid r19.29a mpbird ) ABCLUIZGHLUIZ
          KUJUFUKZGHJUIZULZWHGWJLUIZUMZUNZUFFUOZAUGUKZDEJUIULZWHDWQLUIZUMZUNZWP
          UGFAWQFULZUNZXAUNZUHUKZWKULZDELUIZGXELUIUMZUNZWPUHFXDXEFULZUNZXIUNZDE
          WQUPGXEWJUPIUQURZUJZUFFUOWPXLGXEFXMIJIUSURZLDEWQUFMXOUTZOAIVAULZXBXAX
          JXIQVBZADFULZXBXAXJXITVBZAEFULZXBXAXJXIUAVBZAXBXAXJXIVCZXMUTZAGFULZXB
          XAXJXIUBVBZXDXJXIVDNXLFIJXODWQEMXPOXRXTYCYBXLWRWTXCXAXJXIVEVFZVGXKXFX
          HVHVIXLXNWOUFFXLWJFULZUNZXNWOYIXNUNZWLWNYJGWJXEHFIJLMNOXLXQYHXNXRVJZX
          LYEYHXNYFVJZXLYHXNVDZXDXJXIYHXNVCZAHFULXBXAXJXIYHXNUCVKYJDWQEGFXMWJXE
          IJLMNOYDYKXLXSYHXNXTVJZXLXBYHXNYCVJZXLYAYHXNYBVJZYLYMYNYJDEWQGFXMXEWJ
          IJLMNOYDYKYOYQYPYLYNYMYIXNVLVMZXLWRYHXNYGVJVNYJXFXHXKXIYHXNVEVFVOYJWH
          WSWMYJWRWTXCXAXJXIYHXNVPVSYJDWQEGFXMWJXEIJLMNOYDYKYOYPYQYLYMYNYRVQVRV
          TWAWBWCAXIUHFUOZXBXAAXGWIKUJYSUEAUHDEGHFIJKLMNOPQTUAUBUCWDWEVJWFAWHXG
          KUJXAUGFUOUDAUGBCDEFIJKLMNOPQRSTUAWDWEWFAUFBCGHFIJKLMNOPQRSUBUCWDWG
          $.
      $}

      ${
        legtri3.1 $e |- ( ph -> ( A .- B ) .<_ ( C .- D ) ) $.
        legtri3.2 $e |- ( ph -> ( C .- D ) .<_ ( A .- B ) ) $.
        $( Equality from the less-than relationship.  Proposition 5.9 of
           [Schwabhauser] p. 42.  (Contributed by Thierry Arnoux,
           27-Jun-2019.) $)
        legtri3 $p |- ( ph -> ( A .- B ) = ( C .- D ) ) $=
          ( vx vy cv co wcel wa simpllr simprd cstrkg ad4antr simp-4r tgbtwncom
          wceq simpld simplr tgbtwnexch2 tgbtwntriv1 tgcgrcomlr eqcomd tgcgrsub
          simpr axtgcgrid oveq2d eleqtrd tgbtwnswapid eqtrd wbr legov2 ad2antrr
          wrex mpbid r19.29a legov ) AUBUDZDEHUEUFZBCJUEZDVOJUEZUNZUGZVQDEJUEZU
          NZUBFAVOFUFZUGZVTUGZEDUCUDZHUEZUFZDWFJUEVQUNZUGZWBUCFWEWFFUFZUGZWJUGZ
          VQVRWAWMVPVSWDVTWKWJUHZUIZWMVOEDJWMVOEDFGHJKLMAGUJUFWCVTWKWJOUKZAWCVT
          WKWJULZAEFUFWCVTWKWJSUKZADFUFWCVTWKWJRUKZWMDVOEFGHJKLMWPWSWQWRWMVPVSW
          NUOUMZWMDEVOFGHJKLMWPWSWRWQWMEWGDVOHUEWMWHWIWLWJVBZUOZWMWFVODHWMFGHJW
          FVOCKLMWPWEWKWJUPZWQACFUFWCVTWKWJQUKZWMWFVODCFCBGHJKLMWPXCWQWSXDXDABF
          UFWCVTWKWJPUKZWMWFEVODFGHJKLMWPXCWRWQWSWMDEWFFGHJKLMWPWSWRXCXBUMWTUQW
          MCBFGHJKLMWPXDXEURWMDWFBCFGHJKLMWPWSXCXEXDWMWHWIXAUIUSWMDVOBCFGHJKLMW
          PWSWQXEXDWMVQVRWOUTUSVAVCVDVEUMVFVDVGAWJUCFVKZWCVTAWAVQIVHXFUAAUCDEBC
          FGHIJKLMNORSPQVIVLVJVMAVQWAIVHVTUBFVKTAUBBCDEFGHIJKLMNOPQRSVNVLVM $.
      $}

      $( Trichotomy law for the less-than relationship.  Proposition 5.10 of
         [Schwabhauser] p. 42.  (Contributed by Thierry Arnoux,
         27-Jun-2019.) $)
      legtrid $p |- ( ph
        -> ( ( A .- B ) .<_ ( C .- D ) \/ ( C .- D ) .<_ ( A .- B ) ) ) $=
        ( wa vy vx chash cfv c1 wceq co wbr wo c2 cle cstrkg adantr legid simpr
        wcel tgldim0cgr breqtrd orcd cv wrex wne ad3antrrr simplr simprl necomd
        simplrr simplrl tgbtwncom simprrl tgbtwnconn2 simprrr ad2antrr reximddv
        axtgsegcon adantllr tgbtwndiff r19.29a andir eqcom anbi2i orbi2i rexbii
        jca bitri r19.43 sylib wb legov2 legov orbi12d mpbird tgldimor mpjaodan
        cbs ) AFUCUDZUEUFZBCJUGZDEJUGZIUHZWSWRIUHZUIZUJWPUKUHZAWQTZWTXAXDWRWRWS
        IXDBCFGHIJKLMNAGULUPZWQOUMZABFUPZWQPUMZACFUPZWQQUMZUNXDBCDEFGHJKLMXFXHX
        JADFUPZWQRUMAWQUOAEFUPZWQSUMUQURUSAXCTZXBCBUAUTZHUGUPZBXNJUGZWSUFZTZUAF
        VAZXNBCHUGUPZWSXPUFZTZUAFVAZUIZXMXOXTUIZXQTZUAFVAZYDXMBCUBUTZHUGUPZBYHV
        BZTZYGUBFAYHFUPZYKYGXCAYLTZYKTZBYHXNHUGUPZXQTZYFUAFYNXNFUPZYPTZTZYEXQYS
        YHBCXNFGHKMAXEYLYKYROVCZYNYLYRAYLYKVDZUMZAXGYLYKYRPVCZAXIYLYKYRQVCZYNYQ
        YPVEYSBYHYMYIYJYRVGVFYSCBYHFGHJKLMYTUUDUUCUUBYMYIYJYRVHVIYNYQYOXQVJVKYN
        YQYOXQVLWDYNUADEFGHJYHBKLMAXEYLYKOVMUUAAXGYLYKPVMAXKYLYKRVMAXLYLYKSVMVO
        VNVPXMCBFGHJUBKLMAXEXCOUMAXIXCQUMAXGXCPUMAXCUOVQVRYGXRYBUIZUAFVAYDYFUUE
        UAFYFXRXTXQTZUIUUEXOXTXQVSUUFYBXRXQYAXTXPWSVTWAWBWEWCXRYBUAFWFWEWGAXBYD
        WHXCAWTXSXAYCAUABCDEFGHIJKLMNOPQRSWIAUADEBCFGHIJKLMNORSPQWJWKUMWLABFWOG
        KPWMWN $.

      $( Degenerated (zero-length) segments are minimal.  Proposition 5.11 of
         [Schwabhauser] p. 42.  (Contributed by Thierry Arnoux,
         27-Jun-2019.) $)
      leg0 $p |- ( ph -> ( A .- A ) .<_ ( C .- D ) ) $=
        ( co vx wbr cv wcel wceq wrex tgbtwntriv1 tgcgrtriv eleq1 oveq2 anbi12d
        wa eqeq2d rspcev syl12anc legov mpbird ) ABBJTZDEJTIUBUAUCZDEHTZUDZURDU
        SJTZUEZULZUAFUFZADFUDDUTUDZURDDJTZUEZVERADEFGHJKLMORSUGABDFGHJKLMOPRUHV
        DVFVHULUADFUSDUEZVAVFVCVHUSDUTUIVIVBVGURUSDDJUJUMUKUNUOAUABBDEFGHIJKLMN
        OPPRSUPUQ $.

      ${
        legeq.1 $e |- ( ph -> ( A .- B ) .<_ ( C .- C ) ) $.
        $( Deduce equality from "less than" null segments.  (Contributed by
           Thierry Arnoux, 12-Aug-2019.) $)
        legeq $p |- ( ph -> A = B ) $=
          ( leg0 legtri3 axtgcgrid ) AFGHJBCDKLMOPQRABCDDFGHIJKLMNOPQRRTADBBCFG
          HIJKLMNORPPQUAUBUC $.
      $}

      ${
        legbtwn.1 $e |- ( ph -> ( A e. ( C I B ) \/ B e. ( C I A ) ) ) $.
        legbtwn.2 $e |- ( ph -> ( C .- A ) .<_ ( C .- B ) ) $.
        $( Deduce betweenness from "less than" relation.  Corresponds loosely
           to Proposition 6.13 of [Schwabhauser] p. 45.  (Contributed by
           Thierry Arnoux, 25-Aug-2019.) $)
        legbtwn $p |- ( ph -> A e. ( C I B ) ) $=
          ( co simpr wa cstrkg adantr tgbtwncom tgbtwntriv1 wbr btwnleg legtri3
          tgcgrcomlr eqidd tgcgrsub axtgcgrid eqeltrd oveq2d eleqtrd mpjaodan
          wcel ) ABDCHUBZUTZVBCDBHUBZUTZAVBUCAVDUDZBVCVAVEBCVCVEFGHJBCCKLMAGUEU
          TVDOUFZABFUTVDPUFZACFUTVDQUFZVHVEBCDCFCDGHJKLMVFVGVHADFUTVDRUFZVHVHVI
          VEDCBFGHJKLMVFVIVHVGAVDUCZUGVECDFGHJKLMVFVHVIUHVEDBDCFGHJKLMVFVIVGVIV
          HVEDBDCFGHIJKLMNVFVIVGVIVHADBJUBDCJUBIUIVDUAUFVEDCBFGHIJKLMNVFVIVHVGV
          JUJUKULVECDJUBUMUNUOZVJUPVEBCDHVKUQURTUS $.
      $}

      ${
        tgcgrsub2.d $e |- ( ph -> D e. P ) $.
        tgcgrsub2.e $e |- ( ph -> E e. P ) $.
        tgcgrsub2.f $e |- ( ph -> F e. P ) $.
        tgcgrsub2.1 $e |- ( ph -> ( B e. ( A I C ) \/ C e. ( A I B ) ) ) $.
        tgcgrsub2.2 $e |- ( ph -> ( E e. ( D I F ) \/ F e. ( D I E ) ) ) $.
        tgcgrsub2.3 $e |- ( ph -> ( A .- B ) = ( D .- E ) ) $.
        tgcgrsub2.4 $e |- ( ph -> ( A .- C ) = ( D .- F ) ) $.
        $( Removing identical parts from the end of a line segment preserves
           congruence.  In this version the order of points is not known.
           (Contributed by Thierry Arnoux, 3-Apr-2019.) $)
        tgcgrsub2 $p |- ( ph -> ( B .- C ) = ( E .- F ) ) $=
          ( co wcel wa cstrkg adantr simpr tgbtwncom wo btwnleg 3brtr3d legbtwn
          wceq tgcgrcomlr tgcgrsub orcomd mpjaodan ) ACBDJUIUJZCDLUIGHLUIUTDBCJ
          UIUJZAVEUKZDCHGFIJLMNOAIULUJZVEQUMZADFUJZVETUMZACFUJZVESUMZAHFUJZVEUD
          UMZAGFUJZVEUCUMZVGDCBHFGEIJLMNOVIVKVMABFUJZVERUMZVOVQAEFUJZVEUAUMZVGB
          CDFIJLMNOVIVSVMVKAVEUNZUOVGEGHFIJLMNOVIWAVQVOVGGHEEFIJKLMNOPVIVQVOWAW
          AAGEHJUIUJZHEGJUIUJZUPVEUFUMVGBCLUIZBDLUIZEGLUIZEHLUIZKVGBCDFIJKLMNOP
          VIVSVMVKWBUQAWEWGUTZVEUGUMAWFWHUTZVEUHUMURUSUOADBLUIHELUIUTZVEABDEHFI
          JLMNOQRTUAUDUHVAZUMACBLUIGELUIUTZVEABCEGFIJLMNOQRSUAUCUGVAZUMVBVAAVFU
          KZCDBGFHEIJLMNOAVHVFQUMZAVLVFSUMZAVJVFTUMZAVRVFRUMZAVPVFUCUMZAVNVFUDU
          MZAVTVFUAUMZWOBDCFIJLMNOWPWSWRWQAVFUNZUOWOEHGFIJLMNOWPXBXAWTWOHGEEFIJ
          KLMNOPWPXAWTXBXBAWDWCUPVFAWCWDUFVCUMWOWFWEWHWGKWOBDCFIJKLMNOPWPWSWRWQ
          XCUQAWJVFUHUMAWIVFUGUMURUSUOAWMVFWNUMAWKVFWLUMVBUEVD $.
      $}
    $}

    ${
      $d .- a x y $.  $d A a x y $.  $d P a x y $.  $d a ph x y $.
      legso.a $e |- E = ( .- " ( P X. P ) ) $.
      legso.f $e |- ( ph -> Fun .- ) $.
      ${
        ltgseg.p $e |- ( ph -> A e. E ) $.
        $( The set ` E ` denotes the possible values of the congruence.
           (Contributed by Thierry Arnoux, 15-Dec-2019.) $)
        ltgseg $p |- ( ph -> E. x e. P E. y e. P A = ( x .- y ) ) $=
          ( wrex wa va cv cfv wceq co cxp cop simp-4r simpr fveq2d eqtr3d df-ov
          wcel syl6eqr elxp2 sylib reximddv2 wfun cima syl6eleq fvelima syl2anc
          simplr r19.29a ) AUAUBZJUCZDUDZDBUBZCUBZJUEZUDZCESBESUAEEUFZAVEVLUMZT
          ZVGTZVEVHVIUGZUDZVKBCEEVOVHEUMZTVIEUMZTZVQTZDVPJUCZVJWAVFDWBVNVGVRVSV
          QUHWAVEVPJVTVQUIUJUKVHVIJULUNVOVMVQCESBESAVMVGVCBCVEEEUOUPUQAJURDJVLU
          SZUMVGUAVLSQADFWCRPUTUADVLJVAVBVD $.
      $}

      legso.l $e |- .< = ( ( .<_ |` E ) \ _I ) $.
      legso.d $e |- ( ph -> ( P X. P ) C_ dom .- ) $.
      ${
        ltgov.a $e |- ( ph -> A e. P ) $.
        ltgov.b $e |- ( ph -> B e. P ) $.
        $( Strict "shorter than" geometric relation between segments.
           (Contributed by Thierry Arnoux, 15-Dec-2019.) $)
        ltgov $p |- ( ph -> ( ( A .- B ) .< ( C .- D )
          <-> ( ( A .- B ) .<_ ( C .- D ) /\ ( A .- B ) =/= ( C .- D ) ) ) ) $=
          ( co wbr wcel cid wn wa cres cdif breqi brdif bitri ovex brres anbi1i
          wne anass 3bitri ideq necon3bbii cxp cima elovimad syl6eleqr syl5rbbr
          biantrurd anbi2d syl5bb ) BCLUDZDELUDZGUEZVKVLKUEZVKHUFZVKVLUGUEZUHZU
          IZUIZAVNVKVLURZUIVMVKVLKHUJZUEZVQUIZVNVOUIZVQUIVSVMVKVLWAUGUKZUEWCVKV
          LGWETULVKVLWAUGUMUNWBWDVQVKVLKHDELUOZUPUQVNVOVQUSUTAVRVTVNVTVQAVRVPVK
          VLVKVLWFVAVBAVOVQAVKLFFVCVDHABCFFLUBUCSUAVERVFVHVGVIVJ $.

        $( An equivalent definition of the less-than relationship, from the
           strict relation.  (Contributed by Thierry Arnoux, 15-Dec-2019.) $)
        legov3 $p |- ( ph -> ( ( A .- B ) .<_ ( C .- D )
          <-> ( ( A .- B ) .< ( C .- D ) \/ ( A .- B ) = ( C .- D ) ) ) ) $=
          ( co wbr wceq wo wne ltgov orbi1d simprl legid adantr breqtrd adantlr
          wa simpr mpjaodan wn simplr neqned jca ex orrd orcomd impbida bitr2d
          ) ABCLUDZDELUDZGUEZVHVIUFZUGVHVIKUEZVHVIUHZUPZVKUGZVLAVJVNVKABCDEFGHI
          JKLMNOPQRSTUAUBUCUIUJAVOVLAVOUPZVNVLVKVPVLVMUKAVKVLVOAVKUPVHVHVIKAVHV
          HKUEVKABCFIJKLMNOPQUBUCULUMAVKUQUNUOAVOUQURAVLUPZVKVNVQVKVNVQVKUSZVNV
          QVRUPZVLVMAVLVRUTVSVHVIVQVRUQVAVBVCVDVEVFVG $.
      $}

      $d .- a t u v x y z $.  $d .< a b c t u v x y z $.
      $d E a b c t u v x y z $.  $d P a t u v x y z $.
      $d a b c ph t u v x y z $.
      $( The shorter-than relationship builds an order over pairs.  Remark 5.13
         of [Schwabhauser] p. 42.  (Contributed by Thierry Arnoux,
         27-Jun-2019.) $)
      legso $p |- ( ph -> .< Or E ) $=
        ( wa wbr adantr va vb vc vx vy vz vt vu vv cv wcel co wceq wn wne neirr
        intnan cstrkg ad3antrrr cxp cdm wss ad4antr simpllr simplr ltgov mtbiri
        wfun simpr breq12d mtbird r19.29vva w3a ad8antr simp-9r simp-8r simp-6r
        ltgseg simp-5r simp-10r simpld simp-7r simp-4r 3brtr3d breqtrrd legtri3
        simprd legtrd neneqd pm2.65da neqned mpbir2and 3brtr4d ad5antr ad2antrr
        mpbid simp3d simp2d simplr1 ex ispod w3o wo legtrid legov3 eqcom orbi2i
        orbi12d df-3or 3orcomb orordir 3bitr3ri bitr3i eqeq12d 3orbi123d mpbird
        sylib wrex anasss issod ) AUAUBDCAUAUBUCDCAUAUJZDUKZRZYAUDUJZUEUJZHULZU
        MZYAYACSZUNUDUEBBYCYDBUKZRZYEBUKZRZYGRZYHYFYFCSZYMYNYFYFGSZYFYFUOZRYPYO
        YFUPUQYMYDYEYDYEBCDEFGHIJKLYCEURUKZYIYKYGAYQYBMTZUSNYCHVHZYIYKYGAYSYBOT
        ZUSPABBUTHVAVBZYBYIYKYGQVCYCYIYKYGVDYJYKYGVEVFVGYMYAYFYAYFCYLYGVIZUUBVJ
        VKYCUDUEYABDEFGHIJKLYRNYTAYBVIVRZVLAYBUBUJZDUKZUCUJZDUKZVMZRZYAUUDCSZUU
        DUUFCSZRZYAUUFCSZUUIUULRZYGUUMUDUEBBUUNYIRZYKRZYGRZUUDUFUJZUGUJZHULZUMZ
        UUMUFUGBBUUQUURBUKZRZUUSBUKZRZUVARZUUFUHUJZUIUJZHULZUMZUUMUHUIBBUVFUVGB
        UKZRZUVHBUKZRZUVJRZYFUVIYAUUFCUVOYFUVICSYFUVIGSYFUVIUOUVOYDYEUURUUSBUVG
        UVHEFGHIJKLUVFYQUVKUVMUVJAYQUUHUULYIYKYGUVBUVDUVAMVNZUSZUUNYIYKYGUVBUVD
        UVAUVKUVMUVJVOZUUOYKYGUVBUVDUVAUVKUVMUVJVPZUUQUVBUVDUVAUVKUVMUVJVQZUVCU
        VDUVAUVKUVMUVJVSZUVFUVKUVMUVJVDUVLUVMUVJVEUVOYFUUTGSZYFUUTUOZUVOYFUUTCS
        ZUWBUWCRUVOYAUUDYFUUTCUVOUUJUUKUUIUULYIYKYGUVBUVDUVAUVKUVMUVJVTZWAUUPYG
        UVBUVDUVAUVKUVMUVJWBZUVEUVAUVKUVMUVJWCZWDUVOYDYEUURUUSBCDEFGHIJKLUVQNUV
        FYSUVKUVMUVJAYSUUHUULYIYKYGUVBUVDUVAOVNZUSZPUVFUUAUVKUVMUVJAUUAUUHUULYI
        YKYGUVBUVDUVAQVNUSZUVRUVSVFWPZWAZUVOUUTUVIGSZUUTUVIUOZUVOUUTUVICSUWMUWN
        RUVOUUDUUFUUTUVICUVOUUJUUKUWEWGUWGUVNUVJVIZWDUVOUURUUSUVGUVHBCDEFGHIJKL
        UVQNUWIPUWJUVTUWAVFWPWAZWHUVOYFUVIUVOYFUVIUMZYFUUTUMZUVOUWQRZYDYEUURUUS
        BEFGHIJKLUVOYQUWQUVQTUVOYIUWQUVRTUVOYKUWQUVSTUVOUVBUWQUVTTUVOUVDUWQUWAT
        UVOUWBUWQUWLTUWSUUTUVIYFGUVOUWMUWQUWPTUVOUWQVIWEWFUWSYFUUTUVOUWCUWQUVOU
        WBUWCUWKWGTWIWJWKUVOYDYEUVGUVHBCDEFGHIJKLUVQNUWIPUWJUVRUVSVFWLUWFUWOWMU
        VFUHUIUUFBDEFGHIJKLUVPNUWHUUQUUGUVBUVDUVAUUQYBUUEUUGAUUHUULYIYKYGVSZWQU
        SVRVLUUQUFUGUUDBDEFGHIJKLAYQUUHUULYIYKYGMWNNAYSUUHUULYIYKYGOWNUUQYBUUEU
        UGUWTWRVRVLUUNUDUEYABDEFGHIJKLAYQUUHUULMWONAYSUUHUULOWOYBUUEUUGAUULWSVR
        VLWTXAAYBUUEUUJYAUUDUMZUUDYACSZXBZYCUUERZYGUXCUDUEBBUXDYIRZYKRZYGRZUVAU
        XCUFUGBBUXGUVBRZUVDRZUVARZUXCUWDUWRUUTYFCSZXBZUXJUWDUWRXCZUXKUUTYFUMZXC
        ZXCZUXLUXJUWBUUTYFGSZXCUXPUXJYDYEUURUUSBEFGHIJKLAYQYBUUEYIYKYGUVBUVDUVA
        MVNZUXDYIYKYGUVBUVDUVAVQZUXEYKYGUVBUVDUVAVSZUXGUVBUVDUVAVDZUXHUVDUVAVEZ
        XDUXJUWBUXMUXQUXOUXJYDYEUURUUSBCDEFGHIJKLUXRNAYSYBUUEYIYKYGUVBUVDUVAOVN
        ZPAUUAYBUUEYIYKYGUVBUVDUVAQVNZUXSUXTXEUXJUURUUSYDYEBCDEFGHIJKLUXRNUYCPU
        YDUYAUYBXEXHWPUXPUXMUXKUWRXCZXCZUXLUYEUXOUXMUWRUXNUXKYFUUTXFXGXGUWDUXKU
        WRXBUWDUXKXCUWRXCUXLUYFUWDUXKUWRXIUWDUXKUWRXJUWDUXKUWRXKXLXMXQUXJUUJUWD
        UXAUWRUXBUXKUXJYAYFUUDUUTCUXFYGUVBUVDUVAWCZUXIUVAVIZVJUXJYAYFUUDUUTUYGU
        YHXNUXJUUDUUTYAYFCUYHUYGVJXOXPUXDUVAUGBXRUFBXRYIYKYGUXDUFUGUUDBDEFGHIJK
        LAYQYBUUEMWONAYSYBUUEOWOYCUUEVIVRUSVLYCYGUEBXRUDBXRUUEUUCTVLXSXT $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Rays
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c hlG $.

  $( Function producing the relation "belong to the same half-line". $)
  chlg $a class hlG $.

  ${
    $d a b c g $.
    $( Define the function producting the relation "belong to the same
       half-line" (Contributed by Thierry Arnoux, 15-Aug-2020.) $)
    df-hlg $a |- hlG = ( g e. _V |-> ( c e. ( Base ` g ) |-> { <. a , b >. |
      ( ( a e. ( Base ` g ) /\ b e. ( Base ` g ) ) /\ ( a =/= c /\ b =/= c
      /\ ( a e. ( c ( Itv ` g ) b ) \/ b e. ( c ( Itv ` g ) a ) ) ) ) } ) ) $.
  $}

  ${
    ishlg.p $e |- P = ( Base ` G ) $.
    ishlg.i $e |- I = ( Itv ` G ) $.
    ishlg.k $e |- K = ( hlG ` G ) $.
    ishlg.a $e |- ( ph -> A e. P ) $.
    ishlg.b $e |- ( ph -> B e. P ) $.
    ishlg.c $e |- ( ph -> C e. P ) $.
    ${
      ishlg.g $e |- ( ph -> G e. V ) $.
      $d A a b $.  $d B a b $.  $d C a b c $.  $d G a b c g $.  $d I a b c g $.
      $d P a b c g $.  $d ph c $.
      $( Rays :  Definition 6.1 of [Schwabhauser] p. 43.  With this definition,
         ` A ( K `` C ) B ` means that ` A ` and ` B ` are on the same ray with
         initial point ` C ` .  This follows the same notation as Schwabhauser
         where rays are first defined as a relation.  It is possible to recover
         the ray itself using e.g. ` ( ( K `` C ) " { A } ) ` (Contributed by
         Thierry Arnoux, 21-Dec-2019.) $)
      ishlg $p |- ( ph -> ( A ( K ` C ) B <-> ( A =/= C /\ B =/= C
        /\ ( A e. ( C I B ) \/ B e. ( C I A ) ) ) ) ) $=
        ( va vb wcel wa vc vg cv wne co wo w3a copab wbr cfv simpl neeq1d simpr
        wb wceq oveq2d eleq12d orbi12d 3anbi123d eqid brab2a a1i chlg cmpt elex
        cvv cbs citv fveq2 syl6eqr eleq2d anbi12d oveqd 3anbi3d opabbidv df-hlg
        mpteq12dv fvex eqeltri mptex fvmpt syl5eq neeq2 oveq1 anbi2d adantl cxp
        3syl xpex opabssxp ssexi fvmptd breqd jca biantrurd 3bitr4d ) ABCQUCZES
        ZRUCZESZTZWQDUDZWSDUDZWQDWSGUEZSZWSDWQGUEZSZUFZUGZTZQRUHZUIZBESZCESZTZB
        DUDZCDUDZBDCGUEZSZCDBGUEZSZUFZUGZTZBCDHUJZUIYCXLYDUNAXIYCQRBCEEXKWQBUOZ
        WSCUOZTZXBXPXCXQXHYBYHWQBDYFYGUKZULYHWSCDYFYGUMZULYHXEXSXGYAYHWQBXDXRYI
        YHWSCDGYJUPUQYHWSCXFXTYJYHWQBDGYIUPUQURUSXKUTVAVBAYEXKBCAUADXAWQUAUCZUD
        ZWSYKUDZWQYKWSGUEZSZWSYKWQGUEZSZUFZUGZTZQRUHZXKEHVFAHFVCUJZUAEUUAVDZLAF
        ISFVFSUUBUUCUOPFIVEUBFUAUBUCZVGUJZWQUUESZWSUUESZTZYLYMWQYKWSUUDVHUJZUEZ
        SZWSYKWQUUIUEZSZUFZUGZTZQRUHZVDUUCVFVCUUDFUOZUAUUEUUQEUUAUURUUEFVGUJZEU
        UDFVGVIJVJZUURUUPYTQRUURUUHXAUUOYSUURUUFWRUUGWTUURUUEEWQUUTVKUURUUEEWSU
        UTVKVLUURUUNYRYLYMUURUUKYOUUMYQUURUUJYNWQUURUUIGYKWSUURUUIFVHUJGUUDFVHV
        IKVJZVMVKUURUULYPWSUURUUIGYKWQUVAVMVKURVNVLVOVQUBQRUAVPUAEUUAEUUSVFJFVG
        VRVSZVTWAWHWBYKDUOZUUAXKUOAUVCYTXJQRUVCYSXIXAUVCYLXBYMXCYRXHYKDWQWCYKDW
        SWCUVCYOXEYQXGUVCYNXDWQYKDWSGWDVKUVCYPXFWSYKDWQGWDVKURUSWEVOWFOXKVFSAXK
        EEWGEEUVBUVBWIXIQREEWJWKVBWLWMAXOYCAXMXNMNWNWOWP $.

      $( The half-line relation commutes.  Theorem 6.6 of [Schwabhauser] p. 44.
         (Contributed by Thierry Arnoux, 21-Feb-2020.) $)
      hlcomb $p |- ( ph -> ( A ( K ` C ) B <-> B ( K ` C ) A ) ) $=
        ( wne co wcel w3a wo cfv wbr 3ancoma wb orcom a1i 3anbi3d ishlg 3bitr4d
        syl5bb ) ABDQZCDQZBDCGRSZCDBGRSZUAZTZUMULUOUNUAZTZBCDHUBZUCCBUTUCUQUMUL
        UPTAUSULUMUPUDAUPURUMULUPURUEAUNUOUFUGUHUKABCDEFGHIJKLMNOPUIACBDEFGHIJK
        LNMOPUIUJ $.

      hlcomd.1 $e |- ( ph -> A ( K ` C ) B ) $.
      $( The half-line relation commutes.  Theorem 6.6 of [Schwabhauser] p. 44.
         (Contributed by Thierry Arnoux, 21-Feb-2020.) $)
      hlcomd $p |- ( ph -> B ( K ` C ) A ) $=
        ( cfv wbr hlcomb mpbid ) ABCDHRZSCBUBSQABCDEFGHIJKLMNOPTUA $.

      $( The half-line relation implies inequality.  (Contributed by Thierry
         Arnoux, 22-Feb-2020.) $)
      hlne1 $p |- ( ph -> A =/= C ) $=
        ( wne co wcel wo cfv wbr w3a ishlg mpbid simp1d ) ABDRZCDRZBDCGSTCDBGST
        UAZABCDHUBUCUHUIUJUDQABCDEFGHIJKLMNOPUEUFUG $.

      $( The half-line relation implies inequality.  (Contributed by Thierry
         Arnoux, 22-Feb-2020.) $)
      hlne2 $p |- ( ph -> B =/= C ) $=
        ( wne co wcel wo cfv wbr w3a ishlg mpbid simp2d ) ABDRZCDRZBDCGSTCDBGST
        UAZABCDHUBUCUHUIUJUDQABCDEFGHIJKLMNOPUEUFUG $.
    $}

    hlln.1 $e |- ( ph -> G e. TarskiG ) $.
    ${
      hlln.l $e |- L = ( LineG ` G ) $.
      hlln.2 $e |- ( ph -> A ( K ` C ) B ) $.
      $( The half-line relation implies colinearity, part of Theorem 6.4 of
         [Schwabhauser] p. 44.  (Contributed by Thierry Arnoux,
         22-Feb-2020.) $)
      hlln $p |- ( ph -> A e. ( B L C ) ) $=
        ( wcel adantr co w3o wa cds cfv eqid cstrkg tgbtwncom 3mix1d 3mix2d wne
        simpr wo wbr w3a ishlg mpbid simp3d mpjaodan simp2d tgellng mpbird ) AB
        CDIUASBCDGUASZCBDGUASZDCBGUASZUBZABDCGUASZVFCDBGUASZAVGUCZVCVDVEVIDBCEF
        GFUDUEZJVJUFZKAFUGSZVGPTADESZVGOTABESZVGMTACESZVGNTAVGULUHUIAVHUCZVDVCV
        EVPDCBEFGVJJVKKAVLVHPTAVMVHOTAVOVHNTAVNVHMTAVHULUHUJABDUKZCDUKZVGVHUMZA
        BCDHUEUNVQVRVSUORABCDEFGHUGJKLMNOPUPUQZURUSAEFGICDBJQKPNOAVQVRVSVTUTMVA
        VB $.
    $}

    $( The endpoint does not belong to the half-line.  (Contributed by Thierry
       Arnoux, 3-Mar-2020.) $)
    hleqnid $p |- ( ph -> -. A ( K ` A ) B ) $=
      ( cfv wbr cstrkg wcel adantr wne wn neirr a1i wa simpr hlne1 mtand ) ABCB
      HPQZBBUAZUJUBABUCUDAUIUEBCBEFGHRIJKABESUILTZACESUIMTUKAFRSUIOTAUIUFUGUH
      $.

    ${
      hlid.1 $e |- ( ph -> A =/= C ) $.
      $( The half-line relation is reflexive.  Theorem 6.5 of [Schwabhauser]
         p. 44.  (Contributed by Thierry Arnoux, 21-Feb-2020.) $)
      hlid $p |- ( ph -> A ( K ` C ) A ) $=
        ( cfv wbr wne co wcel w3a cds eqid tgbtwntriv2 olcd cstrkg ishlg mpbird
        wo 3jca ) ABBDHQRBDSZULBDBGTUAZUMUJZUBAULULUNPPAUMUMADBEFGFUCQZIUOUDJON
        LUEUFUKABBDEFGHUGIJKLLNOUHUI $.
    $}

    hltr.d $e |- ( ph -> D e. P ) $.
    ${
      hltr.1 $e |- ( ph -> A ( K ` D ) B ) $.
      hltr.2 $e |- ( ph -> B ( K ` D ) C ) $.
      $( The half-line relation is transitive.  Theorem 6.7 of [Schwabhauser]
         p. 44.  (Contributed by Thierry Arnoux, 23-Feb-2020.) $)
      hltr $p |- ( ph -> A ( K ` D ) C ) $=
        ( ad2antrr cfv wbr wne co wcel wo w3a cstrkg hlne1 hlne2 wa eqid simplr
        cds simpr tgbtwnexch orcd tgbtwnconn3 ishlg simp3d adantr simp1d necomd
        mpbid mpjaodan tgbtwnconn1 olcd 3jca mpbird ) ABDEIUAZUBBEUCZDEUCZBEDHU
        DZUEZDEBHUDZUEZUFZUGAVKVLVQABCEFGHIUHJKLMNQPRUIACDEFGHIUHJKLNOQPSUJABEC
        HUDZUEZVQCVOUEZAVSUKZCVMUEZVQDVRUEZWAWBUKZVNVPWDEBCDFGHGUNUAZJWEULZKAGU
        HUEZVSWBPTAEFUEZVSWBQTABFUEZVSWBMTACFUEZVSWBNTADFUEZVSWBOTAVSWBUMWAWBUO
        UPUQWAWCUKEBDCFGHJKAWGVSWCPTAWHVSWCQTAWIVSWCMTAWKVSWCOTAWJVSWCNTAVSWCUM
        WAWCUOURAWBWCUFZVSACEUCZVLWLACDVJUBWMVLWLUGSACDEFGHIUHJKLNOQPUSVDZUTZVA
        VEAVTUKZWBVQWCWPWBUKECBDFGHJKAWGVTWBPTAWHVTWBQTAWJVTWBNTAWIVTWBMTAWKVTW
        BOTAECUCVTWBACEAWMVLWLWNVBVCTAVTWBUMWPWBUOVFWPWCUKZVPVNWQEDCBFGHWEJWFKA
        WGVTWCPTAWHVTWCQTAWKVTWCOTAWJVTWCNTAWIVTWCMTWPWCUOAVTWCUMUPVGAWLVTWOVAV
        EAVKWMVSVTUFZABCVJUBVKWMWRUGRABCEFGHIUHJKLMNQPUSVDUTVEVHABDEFGHIUHJKLMO
        QPUSVI $.
    $}

    ${
      hlbtwn.1 $e |- ( ph -> D e. ( C I B ) ) $.
      hlbtwn.2 $e |- ( ph -> B =/= C ) $.
      hlbtwn.3 $e |- ( ph -> D =/= C ) $.
      $( Betweenness is a sufficient condition to swap half-lines.
         (Contributed by Thierry Arnoux, 21-Feb-2020.) $)
      hlbtwn $p |- ( ph -> ( A ( K ` C ) B <-> A ( K ` C ) D ) ) $=
        ( wne co wcel wo w3a cfv wbr 2thd wa cstrkg adantr tgbtwnconn3 cds eqid
        tgbtwnexch olcd jaodan orcd necomd tgbtwnconn1 impbida 3anbi23d 3bitr4d
        simpr ishlg ) ABDUAZCDUAZBDCHUBZUCZCDBHUBZUCZUDZUEVFEDUAZBDEHUBUCZEVJUC
        ZUDZUEBCDIUFZUGBEVQUGAVGVMVLVPVFAVGVMSTUHAVLVPAVIVPVKAVIUIDBECFGHJKAGUJ
        UCZVIPUKADFUCZVIOUKABFUCZVIMUKAEFUCZVIQUKACFUCZVINUKAVIVDAEVHUCZVIRUKUL
        AVKUIZVOVNWDDECBFGHGUMUFZJWEUNZKAVRVKPUKAVSVKOUKAWAVKQUKAWBVKNUKAVTVKMU
        KAWCVKRUKAVKVDUOUPUQAVNVLVOAVNUIZVIVKWGDBECFGHWEJWFKAVRVNPUKAVSVNOUKAVT
        VNMUKAWAVNQUKAWBVNNUKAVNVDAWCVNRUKUOURAVOUIDEBCFGHJKAVRVOPUKAVSVOOUKAWA
        VOQUKAVTVOMUKAWBVONUKADEUAVOAEDTUSUKAVOVDAWCVORUKUTUQVAVBABCDFGHIUJJKLM
        NOPVEABEDFGHIUJJKLMQOPVEVC $.
    $}

    ${
      btwnhl1.1 $e |- ( ph -> C e. ( A I B ) ) $.
      btwnhl1.2 $e |- ( ph -> A =/= B ) $.
      ${
        btwnhl1.3 $e |- ( ph -> C =/= A ) $.
        $( Deduce half-line from betweenness.  (Contributed by Thierry Arnoux,
           4-Mar-2020.) $)
        btwnhl1 $p |- ( ph -> C ( K ` A ) B ) $=
          ( cfv wbr wne co wcel wo w3a necomd orcd 3jca cstrkg ishlg mpbird ) A
          DCBIUAUBDBUCZCBUCZDBCHUDUEZCBDHUDUEZUFZUGAUNUOURTABCSUHAUPUQRUIUJADCB
          FGHIUKJKLONMPULUM $.
      $}

      btwnhl2.3 $e |- ( ph -> C =/= B ) $.
      $( Deduce half-line from betweenness.  (Contributed by Thierry Arnoux,
         4-Mar-2020.) $)
      btwnhl2 $p |- ( ph -> C ( K ` B ) A ) $=
        ( cfv wbr wne co wcel wo w3a cds eqid tgbtwncom orcd 3jca cstrkg mpbird
        ishlg ) ADBCIUAUBDCUCZBCUCZDCBHUDUEZBCDHUDUEZUFZUGAUPUQUTTSAURUSABDCFGH
        GUHUAZJVAUIKPMONRUJUKULADBCFGHIUMJKLOMNPUOUN $.
    $}

    ${
      btwnhl.1 $e |- ( ph -> A ( K ` D ) B ) $.
      btwnhl.3 $e |- ( ph -> D e. ( A I C ) ) $.
      $( Swap betweenness for a half-line.  (Contributed by Thierry Arnoux,
         2-Mar-2020.) $)
      btwnhl $p |- ( ph -> D e. ( B I C ) ) $=
        ( adantr co wcel wa cds cfv eqid cstrkg wne wbr w3a ishlg simp1d necomd
        wo mpbid tgbtwncom simpr tgbtwnouttr tgbtwnexch3 simp3d mpjaodan ) ABEC
        HUAUBZECDHUAUBCEBHUAUBZAVBUCZDECFGHGUDUEZJVEUFZKAGUGUBZVBPTZADFUBZVBOTZ
        AEFUBZVBQTZACFUBZVBNTZVDDEBCFGHVEJVFKVHVJVLABFUBZVBMTZVNAEBUHVBABEABEUH
        ZCEUHZVBVCUNZABCEIUEUIVQVRVSUJRABCEFGHIUGJKLMNQPUKUOZULUMTVDBEDFGHVEJVF
        KVHVPVLVJAEBDHUAUBZVBSTUPAVBUQURUPAVCUCZBCEDFGHVEJVFKAVGVCPTZAVOVCMTZAV
        MVCNTZAVKVCQTZAVIVCOTWBECBFGHVEJVFKWCWFWEWDAVCUQUPAWAVCSTUSAVQVRVSVTUTV
        A $.
    $}

    ${
      lnhl.l $e |- L = ( LineG ` G ) $.
      lnhl.1 $e |- ( ph -> C e. ( A L B ) ) $.
      $( Either a point ` C ` on the line AB is on the same side as ` A ` or on
         the opposite side.  (Contributed by Thierry Arnoux, 21-Sep-2020.) $)
      lnhl $p |- ( ph -> ( C ( K ` B ) A \/ B e. ( A I C ) ) ) $=
        ( cfv wbr co wcel wo wceq wa simpr cds eqid tgbtwntriv2 adantr eqeltrrd
        olcd wne w3o tglngne tgellng mpbid df-3or sylib w3a cstrkg ishlg df-3an
        wb syl6bb biantrurd tgbtwncomb orbi12d 3bitr2d orbi1d mpbird pm2.61dane
        jca ) ADBCIUAUBZCBDHUCZUDZUEZDCADCUFZUGZVRVPWADCVQAVTUHADVQUDVTABDFGHGU
        IUAZKWBUJZLQNPUKULUMUNADCUOZUGZVSDBCHUCUDZBDCHUCUDZUEZVRUEZAWIWDAWFWGVR
        UPZWIADBCJUCUDWJTAFGHJBCDKSLQNOAFGHJBCDKSLQNOTUQZPURUSWFWGVRUTVAULWEVPW
        HVRWEVPWDBCUOZUGZDCBHUCUDZBCDHUCUDZUEZUGZWPWHWEVPWDWLWPVBZWQAVPWRVFWDAD
        BCFGHIVCKLMPNOQVDULWDWLWPVEVGWEWMWPWEWDWLAWDUHAWLWDWKULVOVHWEWNWFWOWGWE
        CDBFGHWBKWCLAGVCUDWDQULZACFUDWDOULZADFUDWDPULZABFUDWDNULZVIWECBDFGHWBKW
        CLWSWTXBXAVIVJVKVLVMVN $.
    $}

    ${
      $d .- x y $.  $d A x y $.  $d B x y $.  $d C x y $.  $d D x y $.
      $d K x y $.  $d I x y $.  $d P x y $.  $d ph x y $.
      hlcgrex.m $e |- .- = ( dist ` G ) $.
      hlcgrex.1 $e |- ( ph -> D =/= A ) $.
      hlcgrex.2 $e |- ( ph -> B =/= C ) $.
      $( Construct a point on a half-line, at a given distance of its origin.
         (Contributed by Thierry Arnoux, 1-Aug-2020.) $)
      hlcgrex $p |- ( ph
        -> E. x e. P ( x ( K ` A ) D /\ ( A .- x ) = ( B .- C ) ) ) $=
        ( vy cv co wcel wne cfv wbr wceq wrex cstrkg ad2antrr simplr axtgsegcon
        wa wo w3a simprr tgcgrcoml eqcomd ad4antr tgcgrneq simprd necomd simprl
        simpllr simpld tgbtwncom tgbtwnconn2 3jca ishlg mpbird jca reximdva mpd
        ex cvv cbs fvex eqeltri a1i nehash2 tgbtwndiff r19.29a ) ACFUCUDZIUEUFZ
        CWFUGZUPZBUDZFCJUHUIZCWJKUEDEKUEZUJZUPZBGUKZUCGAWFGUFZUPZWIUPZCWFWJIUEU
        FZWMUPZBGUKWOWRBDEGHIKWFCLTMAHULUFZWPWIRUMZAWPWIUNZACGUFZWPWIOUMZADGUFZ
        WPWIPUMZAEGUFZWPWIQUMZUOWRWTWNBGWRWJGUFZUPZWTWNXKWTUPZWKWMXLWKWJCUGZFCU
        GZWJCFIUEUFFCWJIUEUFUQZURXLXMXNXOXLDEWJCGHIKLTMWRXAXJWTXBUMZWRXFXJWTXGU
        MZWRXHXJWTXIUMZWRXJWTUNZWRXDXJWTXEUMZXLWJCKUEWLXLCWJDEGHIKLTMXPXTXSXQXR
        XKWSWMUSZUTVAADEUGWPWIXJWTUBVBVCAXNWPWIXJWTUAVBXLWFCWJFGHILMXPWRWPXJWTX
        CUMZXTXSAFGUFWPWIXJWTSVBZXLCWFXLWGWHWQWIXJWTVGZVDVEXKWSWMVFXLFCWFGHIKLT
        MXPYCXTYBXLWGWHYDVHVIVJVKXLWJFCGHIJULLMNXSYCXTXPVLVMYAVNVQVOVPAFCGHIKUC
        LTMRSOADEGVRGVRUFAGHVSUHVRLHVSVTWAWBPQUBWCWDWE $.

      ${
        $d X y $.  $d Y y $.
        hlcgreulem.x $e |- ( ph -> X e. P ) $.
        hlcgreulem.y $e |- ( ph -> Y e. P ) $.
        hlcgreulem.1 $e |- ( ph -> X ( K ` A ) D ) $.
        hlcgreulem.2 $e |- ( ph -> Y ( K ` A ) D ) $.
        hlcgreulem.3 $e |- ( ph -> ( A .- X ) = ( B .- C ) ) $.
        hlcgreulem.4 $e |- ( ph -> ( A .- Y ) = ( B .- C ) ) $.
        $( Lemma for ~ hlcgreu .  (Contributed by Thierry Arnoux,
           9-Aug-2020.) $)
        hlcgreulem $p |- ( ph -> X = Y ) $=
          ( vy cv co wcel wne wceq cstrkg ad2antrr simplr simprr necomd cfv wbr
          wa hlcomd simprl btwnhl tgbtwncom tgsegconeq cvv cbs fvex eqeltri a1i
          nehash2 tgbtwndiff r19.29a ) ABEUJUKZHULUMZBVQUNZVCZKLUOUJFAVQFUMZVCZ
          VTVCZBCDVQFKLGHJMUANAGUPUMWAVTSUQZABFUMWAVTPUQZACFUMWAVTQUQADFUMWAVTR
          UQAWAVTURZAKFUMWAVTUDUQZALFUMWAVTUEUQZWCBVQWBVRVSUSUTWCKBVQFGHJMUANWD
          WGWEWFWCEKVQBFGHIMNOAEFUMWAVTTUQZWGWFWDWEAEKBIVAZVBWAVTAKEBFGHIUPMNOU
          DTPSUFVDUQWBVRVSVEZVFVGWCLBVQFGHJMUANWDWHWEWFWCELVQBFGHIMNOWIWHWFWDWE
          AELWJVBWAVTALEBFGHIUPMNOUETPSUGVDUQWKVFVGABKJULCDJULZUOWAVTUHUQABLJUL
          WLUOWAVTUIUQVHAEBFGHJUJMUANSTPACDFVIFVIUMAFGVJVAVIMGVJVKVLVMQRUCVNVOV
          P $.
      $}

      $( The point constructed in ~ hlcgrex is unique.  Theorem 6.11 of
         [Schwabhauser] p. 44.  (Contributed by Thierry Arnoux, 9-Aug-2020.) $)
      hlcgreu $p |- ( ph
        -> E! x e. P ( x ( K ` A ) D /\ ( A .- x ) = ( B .- C ) ) ) $=
        ( vy cv cfv wbr co wceq wa wrex wral wreu hlcgrex wcel ad3antrrr cstrkg
        wne simpllr simplr simprll simprrl simprlr simprrr hlcgreulem ralrimiva
        wi ex jca breq1 oveq2 eqidd eqeq12d anbi12d reu4 sylibr ) ABUDZFCJUEZUF
        ZCVPKUGZDEKUGZUHZUIZBGUJZWBUCUDZFVQUFZCWDKUGZVTUHZUIZUIZVPWDUHZVFZUCGUK
        ZBGUKZUIWBBGULAWCWMABCDEFGHIJKLMNOPQRSTUAUBUMAWLBGAVPGUNZUIZWKUCGWOWDGU
        NZUIZWIWJWQWIUICDEFGHIJKVPWDLMNACGUNWNWPWIOUOADGUNWNWPWIPUOAEGUNWNWPWIQ
        UOAHUPUNWNWPWIRUOAFGUNWNWPWISUOTAFCUQWNWPWIUAUOADEUQWNWPWIUBUOAWNWPWIUR
        WOWPWIUSWQVRWAWHUTWQWBWEWGVAWQVRWAWHVBWQWBWEWGVCVDVGVEVEVHWBWHBUCGWJVRW
        EWAWGVPWDFVQVIWJVSWFVTVTVPWDCKVJWJVTVKVLVMVNVO $.
    $}
  $}

  $( Once we have proven that ` ( K `` A ) `  is an equivalence relation, we
     may define rays from the point ` A ` as its equivalence classes, however
     it does not seem necessary at this point to add a new definition. $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Lines
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    btwnlng1.p $e |- P = ( Base ` G ) $.
    btwnlng1.i $e |- I = ( Itv ` G ) $.
    btwnlng1.l $e |- L = ( LineG ` G ) $.
    btwnlng1.g $e |- ( ph -> G e. TarskiG ) $.
    btwnlng1.x $e |- ( ph -> X e. P ) $.
    btwnlng1.y $e |- ( ph -> Y e. P ) $.
    btwnlng1.z $e |- ( ph -> Z e. P ) $.
    btwnlng1.d $e |- ( ph -> X =/= Y ) $.
    ${
      btwnlng1.1 $e |- ( ph -> Z e. ( X I Y ) ) $.
      $( Betweenness implies colinearity.  (Contributed by Thierry Arnoux,
         28-Mar-2019.) $)
      btwnlng1 $p |- ( ph -> Z e. ( X L Y ) ) $=
        ( co wcel w3o 3mix1d tgellng mpbird ) AHFGERSHFGDRSZFHGDRSZGFHDRSZTAUDU
        EUFQUAABCDEFGHIKJLMNPOUBUC $.
    $}

    ${
      btwnlng2.1 $e |- ( ph -> X e. ( Z I Y ) ) $.
      $( Betweenness implies colinearity.  (Contributed by Thierry Arnoux,
         28-Mar-2019.) $)
      btwnlng2 $p |- ( ph -> Z e. ( X L Y ) ) $=
        ( co wcel w3o 3mix2d tgellng mpbird ) AHFGERSHFGDRSZFHGDRSZGFHDRSZTAUEU
        DUFQUAABCDEFGHIKJLMNPOUBUC $.
    $}

    ${
      btwnlng3.1 $e |- ( ph -> Y e. ( X I Z ) ) $.
      $( Betweenness implies colinearity.  (Contributed by Thierry Arnoux,
         28-Mar-2019.) $)
      btwnlng3 $p |- ( ph -> Z e. ( X L Y ) ) $=
        ( co wcel w3o 3mix3d tgellng mpbird ) AHFGERSHFGDRSZFHGDRSZGFHDRSZTAUFU
        DUEQUAABCDEFGHIKJLMNPOUBUC $.
    $}

    ${
      lncom.1 $e |- ( ph -> Z e. ( Y L X ) ) $.
      $( Swapping the points defining a line keeps it unchanged.  Part of
         Theorem 4.11 of [Schwabhauser] p. 34.  (Contributed by Thierry Arnoux,
         3-Apr-2019.) $)
      lncom $p |- ( ph -> Z e. ( X L Y ) ) $=
        ( co wcel w3o 3orcomb cds cfv eqid tgbtwncomb 3orbi123d tgellng 3bitr4d
        syl5bb necomd mpbird ) AHFGERSZHGFERSZQAHFGDRSZFHGDRSZGFHDRSZTZHGFDRSZG
        HFDRSZFGHDRSZTZULUMUQUNUPUOTAVAUNUOUPUAAUNURUPUSUOUTAFHGBCDCUBUCZIVBUDZ
        JLMONUEAFGHBCDVBIVCJLMNOUEAHFGBCDVBIVCJLOMNUEUFUIABCDEFGHIKJLMNPOUGABCD
        EGFHIKJLNMAFGPUJOUGUHUK $.
    $}

    ${
      lnrot1.1 $e |- ( ph -> Y e. ( Z L X ) ) $.
      lnrot1.2 $e |- ( ph -> Z =/= X ) $.
      $( Rotating the points defining a line.  Part of Theorem 4.11 of
         [Schwabhauser] p. 34.  (Contributed by Thierry Arnoux, 3-Apr-2019.) $)
      lnrot1 $p |- ( ph -> Z e. ( X L Y ) ) $=
        ( co wcel w3o cds cfv eqid tgbtwncomb biidd 3orbi123d wb 3orrot tgellng
        a1i 3bitr4rd bitr4d mpbird ) AHFGESTZGHFESTZQAUOGHFDSTZHGFDSTZFHGDSTZUA
        ZUPAURUSUQUAZHFGDSTZUSGFHDSTZUAUTUOAURVBUSUSUQVCAGHFBCDCUBUCZIVDUDZJLNO
        MUEAUSUFAHGFBCDVDIVEJLONMUEUGUTVAUHAUQURUSUIUKABCDEFGHIKJLMNPOUJULABCDE
        HFGIKJLOMRNUJUMUN $.
    $}

    ${
      lnrot2.1 $e |- ( ph -> X e. ( Y L Z ) ) $.
      lnrot2.2 $e |- ( ph -> Y =/= Z ) $.
      $( Rotating the points defining a line.  Part of Theorem 4.11 of
         [Schwabhauser] p. 34.  (Contributed by Thierry Arnoux, 3-Apr-2019.) $)
      lnrot2 $p |- ( ph -> Z e. ( X L Y ) ) $=
        ( co wcel w3o cds cfv tgbtwncomb biidd 3orbi123d 3orrot syl6bbr tgellng
        eqid 3bitr4d mpbid ) AFGHESTZHFGESTZQAFGHDSTZGFHDSTZHGFDSTZUAZHFGDSTZFH
        GDSTZUPUAZUMUNAURUTUPUSUAVAAUOUTUPUPUQUSAGFHBCDCUBUCZIVBUJZJLNMOUDAUPUE
        AGHFBCDVBIVCJLNOMUDUFUSUTUPUGUHABCDEGHFIKJLNORMUIABCDEFGHIKJLMNPOUIUKUL
        $.
    $}
  $}

  ${
    tglineelsb2.p $e |- B = ( Base ` G ) $.
    tglineelsb2.i $e |- I = ( Itv ` G ) $.
    tglineelsb2.l $e |- L = ( LineG ` G ) $.
    tglineelsb2.g $e |- ( ph -> G e. TarskiG ) $.
    ${
      ncolne.x $e |- ( ph -> X e. B ) $.
      ncolne.y $e |- ( ph -> Y e. B ) $.
      ncolne.z $e |- ( ph -> Z e. B ) $.
      ncolne.2 $e |- ( ph -> -. ( X e. ( Y L Z ) \/ Y = Z ) ) $.
      $( Non-colinear points are different.  (Contributed by Thierry Arnoux,
         8-Aug-2019.) $)
      ncolne1 $p |- ( ph -> X =/= Y ) $=
        ( wceq co wcel adantr wo cstrkg cds cfv eqid tgbtwntriv1 oveq1d eleqtrd
        wa simpr btwncolg1 mtand neqned ) AFGAFGQZFGHERSGHQUAPAUNUIZBCDEGHFIKJA
        CUBSUNLTZAGBSUNNTAHBSUNOTZAFBSUNMTZUOFFHDRGHDRUOFHBCDCUCUDZIUSUEJUPURUQ
        UFUOFGHDAUNUJUGUHUKULUM $.

      $( Non-colinear points are different.  (Contributed by Thierry Arnoux,
         8-Aug-2019.)  TODO (NM): maybe ~ ncolne2 could be simplified out and
         deleted, replaced by ~ ncolcom . $)
      ncolne2 $p |- ( ph -> X =/= Z ) $=
        ( ncolcom ncolne1 ) ABCDEFHGIJKLMONABCDEGHFIKJLNOMPQR $.
    $}

    ${
      $d A x y $.  $d B x y z $.  $d G x y z $.  $d I x y z $.  $d ph x y z $.
      tgisline.1 $e |- ( ph -> A e. ran L ) $.
      $( The property of being a proper line, generated by two distinct points.
         (Contributed by Thierry Arnoux, 25-May-2019.) $)
      tgisline $p |- ( ph ->
        E. x e. B E. y e. B ( A = ( x L y ) /\ x =/= y ) ) $=
        ( vz cv co wcel wceq wa wrex w3o crab wne csn cdif cstrkg adantr simprl
        simprr eldifad eldifsn sylib simprd tglngval jca ralrimivva cmpt2 tglng
        necomd crn syl rneqd eleqtrd eqid elrnmpt2g mpbid r19.29d2r difss simpr
        wb wss simpll eqtr4d simplr reximi ssrexv mpsyl ) ABOZCOZHPZNOZVRVSGPQV
        RWAVSGPQVSVRWAGPQUANEUBZRZVRVSUCZSZDWBRZSZCEVRUDZUEZTZBETDVTRZWDSZCETZB
        ETAWEWFBCEWIAWEBCEWIAVREQZVSWIQZSZSZWCWDWQNEFGHVRVSIKJAFUFQZWPLUGAWNWOU
        HWQVSEWHAWNWOUIZUJWQVSVRWQVSEQZVSVRUCZWQWOWTXASWSVSEVRUKULUMUSZUNXBUOUP
        ADBCEWIWBUQZUTZQZWFCWITBETZADHUTZXDMAHXCAWRHXCRLBCNEFGHIKJURVAVBVCADXGQ
        XEXFVJMBCEWIWBDXCXGXCVDVEVAVFVGWJWMBEWIEVKWJWLCWITWMEWHVHWGWLCWIWGWKWDW
        GDWBVTWEWFVIWCWDWFVLVMWCWDWFVNUOVOWLCWIEVPVQVOVA $.
    $}

    ${
      $d B x y $.  $d G x y $.  $d I x y $.  $d L x y $.  $d X x y $.
      $d Y x y $.  $d ph x y $.
      tglnne.x $e |- ( ph -> X e. B ) $.
      tglnne.y $e |- ( ph -> Y e. B ) $.
      tglnne.1 $e |- ( ph -> ( X L Y ) e. ran L ) $.
      $( It takes two different points to form a line.  (Contributed by Thierry
         Arnoux, 27-Nov-2019.) $)
      tglnne $p |- ( ph -> X =/= Y ) $=
        ( vx vy co wa wcel ad3antrrr wceq wne cstrkg simpllr simplr simprr eqid
        cds cfv tgbtwntriv1 btwnlng1 simprl eleqtrrd tglngne tgisline r19.29vva
        cv ) AFGEQZOUQZPUQZEQZUAZUSUTUBZRZFGUBOPBBAUSBSZRZUTBSZRZVDRZBCDEFGUSHJ
        IACUCSVEVGVDKTZAFBSVEVGVDLTAGBSVEVGVDMTVIUSVAURVIBCDEUSUTUSHIJVJAVEVGVD
        UDZVFVGVDUEZVKVHVBVCUFVIUSUTBCDCUHUIZHVMUGIVJVKVLUJUKVHVBVCULUMUNAOPURB
        CDEHIJKNUOUP $.
    $}

    ${
      $d A x y $.  $d B x y $.  $d G x y $.  $d I x y $.  $d L x y $.
      $d ph x y $.
      tglndim0.d $e |- ( ph -> ( # ` B ) = 1 ) $.
      $( There are no lines in dimension 0.  (Contributed by Thierry Arnoux,
         18-Oct-2019.) $)
      tglndim0 $p |- ( ph -> -. A e. ran L ) $=
        ( vx vy crn wcel wa cv co wceq wfal wne cbs chash cfv c1 ad4antr simplr
        simpllr tgldim0eq simprr pm2.21ddne cstrkg adantr simpr r19.29vva inegd
        tgisline ) ABFNOZAURPZBLQZMQZFRSZUTVAUAZPZTLMCCUSUTCOZPZVACOZPZVDPZTUTV
        AVIUTVACUBDGACUCUDUESURVEVGVDKUFUSVEVGVDUHVFVGVDUGUIVHVBVCUJUKUSLMBCDEF
        GHIADULOURJUMAURUNUQUOUP $.
    $}

    ${
      tgelrnln.x $e |- ( ph -> X e. B ) $.
      tgelrnln.y $e |- ( ph -> Y e. B ) $.
      tgelrnln.d $e |- ( ph -> X =/= Y ) $.
      $( The property of being a proper line, generated by two distinct points.
         (Contributed by Thierry Arnoux, 25-May-2019.) $)
      tgelrnln $p |- ( ph -> ( X L Y ) e. ran L ) $=
        ( co cop cfv cid wcel syl2anc crn df-ov cxp cdif wfn cstrkg syl opelxpi
        tglnfn wne wn wbr wceq df-br syl5bbr necon3bbid biimpar eldifd fnfvelrn
        ideqg syl5eqel ) AFGEOFGPZEQZEUAZFGEUBAEBBUCZRUDZUEZVBVFSVCVDSACUFSVGKB
        CDEHJIUIUGAVBVERAFBSGBSZVBVESLMFGBBUHTAVHFGUJZVBRSZUKZMNVHVKVIVHVJFGVJF
        GRULVHFGUMFGRUNFGBUTUOUPUQTURVFVBEUSTVA $.
    $}

    tglineelsb2.1 $e |- ( ph -> P e. B ) $.
    tglineelsb2.2 $e |- ( ph -> Q e. B ) $.
    tglineelsb2.4 $e |- ( ph -> P =/= Q ) $.
    ${
      tglineelsb2.3 $e |- ( ph -> S e. B ) $.
      tglineelsb2.5 $e |- ( ph -> S =/= P ) $.
      tglineelsb2.6 $e |- ( ph -> S e. ( P L Q ) ) $.
      ${
        tglineeltr.7 $e |- ( ph -> R e. B ) $.
        tglineeltr.8 $e |- ( ph -> R e. ( P L S ) ) $.
        $( Transitivity law for lines, one half of ~ tglineelsb2 .
           (Contributed by Thierry Arnoux, 25-May-2019.) $)
        tglineeltr $p |- ( ph -> R e. ( P L Q ) ) $=
          ( co wcel wceq wo wn wa cstrkg ad3antrrr simpllr cds cfv simplr simpr
          eqid tgbtwnexch btwncolg1 tgbtwncom tgbtwnexch3 tgbtwnconnln3 tgellng
          btwncolg2 w3o mpbid ad2antrr mpjao3dan an32s mpidan wne tgbtwnconnln2
          necomd colrot2 tgbtwnintr btwncolg3 colcom tgbtwnconnln1 tgbtwnouttr2
          tgbtwnouttr id adantr biimpa syl21anc neneqd pm5.61 simplbi syl2anc )
          AECDIUBZUCZCDUDZUEZWIUFZWHAECFHUBZUCZWJCEFHUBUCZFCEHUBUCZAWMEBUCZWJTA
          WPWMWJAWPUGZWMUGZFCDHUBUCZWJCFDHUBUCZDWLUCZWRWSUGZBGHICDEJLKAGUHUCZWP
          WMWSMUIZACBUCZWPWMWSNUIZADBUCZWPWMWSOUIZAWPWMWSUJZXBCEFDBGHGUKULZJXJU
          OZKXDXFXIAFBUCZWPWMWSQUIXHWQWMWSUMWRWSUNUPUQWRWTUGZBGHICDEJLKAXCWPWMW
          TMUIZAXEWPWMWTNUIZAXGWPWMWTOUIZAWPWMWTUJZXMFECDBGHXJJXKKXNAXLWPWMWTQU
          IZXQXOXPXMCEFBGHXJJXKKXNXOXQXRWQWMWTUMURWRWTUNUSVBWRXAUGCEDFBGHIJKAXC
          WPWMXAMUIAXEWPWMXANUIAWPWMXAUJAXGWPWMXAOUIAXLWPWMXAQUIWQWMXAUMWRXAUNL
          UTAWSWTXAVCZWPWMAFWGUCXSSABGHICDFJLKMNOPQVAVDZVEVFVGVHAWNWPWJTAWPWNWJ
          WQWNUGZWSWJWTXAYAWSUGZBGHICDEJLKAXCWPWNWSMUIZAXEWPWNWSNUIZAXGWPWNWSOU
          IZAWPWNWSUJZYBECFDBGHXJJXKKYCYFYDAXLWPWNWSQUIYEACFVIZWPWNWSAFCRVKZUIW
          QWNWSUMYAWSUNVRVBYAWTUGZBGHIDECJLKAXCWPWNWTMUIZAXGWPWNWTOUIZAWPWNWTUJ
          ZAXEWPWNWTNUIZYIFCDEBGHIJKYJAXLWPWNWTQUIZYMYKYLLAFCVIZWPWNWTRUIYAWTUN
          YIECFBGHXJJXKKYJYLYMYNWQWNWTUMURVJVLYAXAUGZBGHIDCEJLKAXCWPWNXAMUIZAXG
          WPWNXAOUIZAXEWPWNXANUIZAWPWNXAUJZYPBGHIDCEJLKYQYRYSYTYPDCEFBGHXJJXKKY
          QYRYSYTAXLWPWNXAQUIYAXAUNWQWNXAUMVMVNVOAXSWPWNXTVEVFVGVHAWOWPWJTAWPWO
          WJWQWOUGZWSWJWTXAUUAWSUGZBGHIDECJLKAXCWPWOWSMUIZAXGWPWOWSOUIZAWPWOWSU
          JZAXEWPWOWSNUIZUUBCFDEBGHIJKUUCUUFAXLWPWOWSQUIUUDUUELAYGWPWOWSYHUIUUA
          WSUNWQWOWSUMVPVLUUAWTUGZBGHICDEJLKAXCWPWOWTMUIZAXEWPWOWTNUIZAXGWPWOWT
          OUIZAWPWOWTUJZUUGEFCDBGHXJJXKKUUHUUKAXLWPWOWTQUIZUUIUUJAYOWPWOWTRUIUU
          GCFEBGHXJJXKKUUHUUIUULUUKWQWOWTUMURUUAWTUNVQVBUUAXAUGZBGHICDEJLKAXCWP
          WOXAMUIZAXEWPWOXANUIZAXGWPWOXAOUIZAWPWOXAUJZUUMCDFEBGHXJJXKKUUNUUOUUP
          AXLWPWOXAQUIUUQUUAXAUNWQWOXAUMUPVNAXSWPWOXTVEVFVGVHAAWPECFIUBUCZWMWNW
          OVCZAVSTUAWQUURUUSWQBGHICFEJLKAXCWPMVTAXEWPNVTAXLWPQVTAYGWPYHVTAWPUNV
          AWAWBVFACDPWCWJWKUGWHWKWHWIWDWEWF $.
      $}

      $d x L $.  $d x P $.  $d x Q $.  $d x S $.  $d x ph $.
      $( If ` S ` lies on PQ , then PQ = PS .  Theorem 6.16 of [Schwabhauser]
         p. 45.  (Contributed by Thierry Arnoux, 17-May-2019.) $)
      tglineelsb2 $p |- ( ph -> ( P L Q ) = ( P L S ) ) $=
        ( wcel adantr vx co cv wa cstrkg wne necomd lncom lnrot1 tglnssp sselda
        simpr tglineeltr impbida eqrdv ) AUACDHUBZCEHUBZAUAUCZUPSZURUQSZAUSUDZB
        CEURDFGHIJKAFUESZUSLTZACBSZUSMTZAEBSZUSPTZACEUFUSAECQUGZTZADBSZUSNTZADC
        UFUSACDOUGTZVABFGHCEDIJKVCVEVGVKVIVABFGHDCEIJKVCVKVEVGVLAEUPSZUSRTUHVLU
        IAUPBURABFGHCDIKJLMNOUJUKAUSULUMAUTUDBCDUREFGHIJKAVBUTLTAVDUTMTAVJUTNTA
        CDUFUTOTAVFUTPTAECUFUTQTAVMUTRTAUQBURABFGHCEIKJLMPVHUJUKAUTULUMUNUO $.
    $}

    ${
      $( Reflexivity law for line membership.  Part of theorem 6.17 of
         [Schwabhauser] p. 45.  (Contributed by Thierry Arnoux,
         17-May-2019.) $)
      tglinerflx1 $p |- ( ph -> P e. ( P L Q ) ) $=
        ( cds cfv eqid tgbtwntriv1 btwnlng1 ) ABEFGCDCHIJKLMLNACDBEFEOPZHTQIKLM
        RS $.

      $( Reflexivity law for line membership.  Part of theorem 6.17 of
         [Schwabhauser] p. 45.  (Contributed by Thierry Arnoux,
         17-May-2019.) $)
      tglinerflx2 $p |- ( ph -> Q e. ( P L Q ) ) $=
        ( cds cfv eqid tgbtwntriv2 btwnlng1 ) ABEFGCDDHIJKLMMNACDBEFEOPZHTQIKLM
        RS $.

      $d x L $.  $d x P $.  $d x Q $.  $d x ph $.
      $( Commutativity law for lines.  Part of theorem 6.17 of [Schwabhauser]
         p. 45.  (Contributed by Thierry Arnoux, 17-May-2019.) $)
      tglinecom $p |- ( ph -> ( P L Q ) = ( Q L P ) ) $=
        ( vx co wcel wa adantr tglnssp cv cstrkg sselda wne simpr lncom impbida
        necomd eqrdv ) AOCDGPZDCGPZAOUAZUJQZULUKQZAUMRBEFGDCULHIJAEUBQZUMKSADBQ
        ZUMMSACBQZUMLSAUJBULABEFGCDHJIKLMNTUCADCUDUMACDNUHZSAUMUEUFAUNRBEFGCDUL
        HIJAUOUNKSAUQUNLSAUPUNMSAUKBULABEFGDCHJIKMLURTUCACDUDUNNSAUNUEUFUGUI $.

      $d A x y $.  $d B x y $.  $d G y x $.  $d I x y $.  $d L x y $.
      $d P x y $.  $d Q x y $.  $d ph x y $.
      tglinethru.0 $e |- ( ph -> P =/= Q ) $.
      tglinethru.1 $e |- ( ph -> A e. ran L ) $.
      tglinethru.2 $e |- ( ph -> P e. A ) $.
      tglinethru.3 $e |- ( ph -> Q e. A ) $.
      $( If ` A ` is a line containing two distinct points ` P ` and ` Q ` ,
         then ` A ` is the line through ` P ` and ` Q ` .  Theorem 6.18 of
         [Schwabhauser] p. 45.  (Contributed by Thierry Arnoux,
         25-May-2019.) $)
      tglinethru $p |- ( ph -> A = ( P L Q ) ) $=
        ( ad4antr vx vy cv co wceq wne wa cstrkg simp-4r simpllr simplrr necomd
        wcel simpr neeqtrd simplrl eleqtrd tglineelsb2 oveq1d 3eqtr4d tglinecom
        3eqtrd eqtrd pm2.61dane tgisline r19.29vva ) ABUAUCZUBUCZHUDZUEZVGVHUFZ
        UGZBDEHUDZUEZUAUBCCAVGCUMZUGZVHCUMZUGZVLUGZVNDVGVSDVGUEZUGZVIVGEHUDBVMW
        ACVGVHEFGHIJKAFUHUMZVOVQVLVTLTAVOVQVLVTUIVPVQVLVTUJVRVJVKVTUKAECUMZVOVQ
        VLVTNTWAEDVGWADEADEUFZVOVQVLVTPTULVSVTUNZUOWAEBVIAEBUMZVOVQVLVTSTVRVJVK
        VTUPZUQURWGWADVGEHWEUSUTVSDVGUFZUGZBDVGHUDZVMWIBVIVGDHUDWJVRVJVKWHUPZWI
        CVGVHDFGHIJKAWBVOVQVLWHLTZAVOVQVLWHUIZVPVQVLWHUJVRVJVKWHUKADCUMVOVQVLWH
        MTZVSWHUNZWIDBVIADBUMVOVQVLWHRTWKUQURWICVGDFGHIJKWLWMWNWIDVGWOULVAVBZWI
        CDVGEFGHIJKWLWNWMWOAWCVOVQVLWHNTWIDEAWDVOVQVLWHPTULWIEBWJAWFVOVQVLWHSTW
        PUQURVCVDAUAUBBCFGHIJKLQVEVF $.
    $}

    ${
      $d B x y $.  $d G x y $.  $d I x y $.  $d L x y $.  $d P x y $.
      $d Q x y $.  $d ph x y $.
      $( There is a line through any two distinct points.  Hilbert's axiom I.1
         for geometry.  (Contributed by Thierry Arnoux, 25-May-2019.) $)
      tghilberti1 $p |- ( ph -> E. x e. ran L ( P e. x /\ Q e. x ) ) $=
        ( co crn wcel wa eleq2 cv wrex tgelrnln tglinerflx1 tglinerflx2 anbi12d
        wceq rspcev syl12anc ) ADEHPZHQZRDUJRZEUJRZDBUAZRZEUNRZSZBUKUBACFGHDEIJ
        KLMNOUCACDEFGHIJKLMNOUDACDEFGHIJKLMNOUEUQULUMSBUJUKUNUJUGUOULUPUMUNUJDT
        UNUJETUFUHUI $.

      $( There is at most one line through any two distinct points.  Hilbert's
         axiom I.2 for geometry.  (Contributed by Thierry Arnoux,
         25-May-2019.) $)
      tghilberti2 $p |- ( ph -> E* x e. ran L ( P e. x /\ Q e. x ) ) $=
        ( vy cv wcel wa 3ad2ant1 wceq wi crn wral wrmo w3a co cstrkg wne simp2l
        simp3ll simp3lr tglinethru simp2r simp3rl simp3rr eqtr4d 3expia anbi12d
        ralrimivva eleq2 rmo4 sylibr ) ADBQZRZEVDRZSZDPQZRZEVHRZSZSZVDVHUAZUBZP
        HUCZUDBVOUDVGBVOUEAVNBPVOVOAVDVORZVHVORZSZVLVMAVRVLUFZVDDEHUGVHVSVDCDEF
        GHIJKAVRFUHRVLLTZAVRDCRVLMTZAVRECRVLNTZAVRDEUIVLOTZWCAVPVQVLUJVEVFVKAVR
        UKVEVFVKAVRULUMVSVHCDEFGHIJKVTWAWBWCWCAVPVQVLUNVIVJVGAVRUOVIVJVGAVRUPUM
        UQURUTVGVKBPVOVMVEVIVFVJVDVHDVAVDVHEVAUSVBVC $.

      $( There is a unique line going through any two distinct points.  Theorem
         6.19 of [Schwabhauser] p. 46.  (Contributed by Thierry Arnoux,
         25-May-2019.) $)
      tglinethrueu $p |- ( ph -> E! x e. ran L ( P e. x /\ Q e. x ) ) $=
        ( cv wcel wa crn wrex wrmo wreu tghilberti1 tghilberti2 reu5 sylanbrc )
        ADBPZQEUGQRZBHSZTUHBUIUAUHBUIUBABCDEFGHIJKLMNOUCABCDEFGHIJKLMNOUDUHBUIU
        EUF $.
    $}
  $}

  ${
    $d A x y $.  $d G x y $.  $d ph x y $.
    tglnne0.l $e |- L = ( LineG ` G ) $.
    tglnne0.g $e |- ( ph -> G e. TarskiG ) $.
    tglnne0.1 $e |- ( ph -> A e. ran L ) $.
    $( A line ` A ` has at least one point.  (Contributed by Thierry Arnoux,
       4-Mar-2020.) $)
    tglnne0 $p |- ( ph -> A =/= (/) ) $=
      ( vx vy cv co wceq wne wa c0 cbs cfv wcel citv eqid cstrkg simpllr simplr
      ad3antrrr simprr tglinerflx1 simprl eleqtrrd ne0i syl tgisline r19.29vva
      ) ABHJZIJZDKZLZUMUNMZNZBOMZHICPQZUTAUMUTRZNZUNUTRZNZURNZUMBRUSVEUMUOBVEUT
      UMUNCCSQZDUTTZVFTZEACUARVAVCURFUDAVAVCURUBVBVCURUCVDUPUQUEUFVDUPUQUGUHBUM
      UIUJAHIBUTCVFDVGVHEFGUKUL $.
  $}

  ${
    $d x y z A $.  $d x z G $.  $d x z I $.  $d x z P $.  $d x y z X $.
    $d x z ph $.
    tglnpt2.p $e |- P = ( Base ` G ) $.
    tglnpt2.i $e |- I = ( Itv ` G ) $.
    tglnpt2.l $e |- L = ( LineG ` G ) $.
    tglnpt2.g $e |- ( ph -> G e. TarskiG ) $.
    tglnpt2.a $e |- ( ph -> A e. ran L ) $.
    tglnpt2.x $e |- ( ph -> X e. A ) $.
    $( Find a second point on a line.  (Contributed by Thierry Arnoux,
       18-Oct-2019.) $)
    tglnpt2 $p |- ( ph -> E. y e. A X =/= y ) $=
      ( vx vz cv wne wa wcel co wceq cstrkg ad4antr simp-4r simpllr tglinerflx2
      wrex simplrr simplrl eleqtrrd simpr eqnetrd rspcev tglinerflx1 pm2.61dane
      neeq2 syl2anc tgisline r19.29vva ) ACOQZPQZGUAZUBZVAVBRZSZHBQZRZBCUHZOPDD
      AVADTZSZVBDTZSZVFSZVIHVAVNHVAUBZSZVBCTHVBRZVIVPVBVCCVPDVAVBEFGIJKAEUCTZVJ
      VLVFVOLUDAVJVLVFVOUEVKVLVFVOUFVMVDVEVOUIZUGVMVDVEVOUJUKVPHVAVBVNVOULVSUMV
      HVQBVBCVGVBHUQUNURVNHVARZSZVACTVTVIWAVAVCCWADVAVBEFGIJKAVRVJVLVFVTLUDAVJV
      LVFVTUEVKVLVFVTUFVMVDVEVTUIUOVMVDVEVTUJUKVNVTULVHVTBVACVGVAHUQUNURUPAOPCD
      EFGIJKLMUSUT $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d ph x y $.
    tglineintmo.p $e |- P = ( Base ` G ) $.
    tglineintmo.i $e |- I = ( Itv ` G ) $.
    tglineintmo.l $e |- L = ( LineG ` G ) $.
    tglineintmo.g $e |- ( ph -> G e. TarskiG ) $.
    ${
      tglineintmo.a $e |- ( ph -> A e. ran L ) $.
      tglineintmo.b $e |- ( ph -> B e. ran L ) $.
      tglineintmo.c $e |- ( ph -> A =/= B ) $.
      $( Two distinct lines intersect in at most one point.  Theorem 6.21 of
         [Schwabhauser] p. 46.  (Contributed by Thierry Arnoux,
         25-May-2019.) $)
      tglineintmo $p |- ( ph -> E* x ( x e. A /\ x e. B ) ) $=
        ( vy wcel wa ad2antrr wss cv wceq wi wal wmo wne wn cstrkg cuni elssuni
        crn syl tglnunirn sstrd simplrl simpld sseldd simplrr tglinethru simprd
        co simpr eqtr4d neneqd pm2.65da nne sylib ex alrimivv eleq1 anbi12d mo4
        sylibr ) ABUAZCQZVNDQZRZPUAZCQZVRDQZRZRZVNVRUBZUCZPUDBUDVQBUEAWDBPAWBWC
        AWBRZVNVRUFZUGWCWEWFCDUBWEWFRZCVNVRHVADWGCEVNVRFGHIJKAFUHQZWBWFLSZWGCEV
        NACETWBWFACHUKZUIZEACWJQZCWKTMCWJUJULAWHWKETLEFGHIKJUMULUNSZWGVOVPAVQWA
        WFUOZUPZUQZWGCEVRWMWGVSVTAVQWAWFURZUPZUQZWEWFVBZWTAWLWBWFMSWOWRUSWGDEVN
        VRFGHIJKWIWPWSWTWTADWJQWBWFNSWGVOVPWNUTWGVSVTWQUTUSVCWGCDACDUFWBWFOSVDV
        EVNVRVFVGVHVIVQWABPWCVOVSVPVTVNVRCVJVNVRDVJVKVLVM $.

      $d x X $.  $d x Y $.
      tglineineq.x $e |- ( ph -> X e. ( A i^i B ) ) $.
      tglineineq.y $e |- ( ph -> Y e. ( A i^i B ) ) $.
      $( Two distinct lines intersect in at most one point, variation.  Theorem
         6.21 of [Schwabhauser] p. 46.  (Contributed by Thierry Arnoux,
         6-Aug-2019.) $)
      tglineineq $p |- ( ph -> X = Y ) $=
        ( vx wcel cin cv wa wceq tglineintmo elin sylib eleq1 anbi12d syl212anc
        wmo moi ) AHBCUAZTZIUMTZSUBZBTZUPCTZUCZSUKHBTZHCTZUCZIBTZICTZUCZHIUDQRA
        SBCDEFGJKLMNOPUEAUNVBQHBCUFUGAUOVERIBCUFUGUSVBVESHIUMUMUPHUDUQUTURVAUPH
        BUHUPHCUHUIUPIUDUQVCURVDUPIBUHUPICUHUIULUJ $.
    $}

    ${
      $d x C $.  $d x D $.  $d x L $.  $d x X $.  $d x Y $.
      tglineinteq.a $e |- ( ph -> A e. P ) $.
      tglineinteq.b $e |- ( ph -> B e. P ) $.
      tglineinteq.c $e |- ( ph -> C e. P ) $.
      tglineinteq.d $e |- ( ph -> D e. P ) $.
      tglineinteq.e $e |- ( ph -> -. ( A e. ( B L C ) \/ B = C ) ) $.
      ${
        $( Given three non-colinear points, build two different lines.
           (Contributed by Thierry Arnoux, 6-Aug-2019.) $)
        tglineneq $p |- ( ph -> ( A L B ) =/= ( C L D ) ) $=
          ( wcel ad2antrr co wne wa wn ncolne1 tglinerflx1 adantr simplr cstrkg
          simpr tglngne adantlr neneqd pm2.65da nelne1 syl2anc wo pm2.46 neqned
          wceq syl eleqtrrd lnrot1 orcd pm2.61dane ) ABCIUAZDEIUAZUBZDEADEUTZUC
          ZBVFSZBVGSZUDVHAVKVIAFBCGHIJKLMNOAFGHIBCDJKLMNOPRUEUFUGVJVLVIAVIVLUHV
          JVLUCDEAVLDEUBZVIAVLUCFGHIDEBJLKAGUISZVLMUGADFSZVLPUGAEFSZVLQUGAVLUJU
          KULUMUNBVFVGUOUPAVMUCZVFVGVQVFVGUTZBCDIUASZCDUTZUQZVQVRUCZVSVTWBFGHIC
          DBJKLAVNVMVRMTZACFSVMVROTZAVOVMVRPTZABFSVMVRNTZACDUBVMVRACDAWAUDZVTUD
          RVSVTURVAUSTWBDVGVFWBFDEGHIJKLWCWEAVPVMVRQTAVMVRUHUFVQVRUJVBZWBFGHIBC
          DJLKWCWFWDWHUKVCVDAWGVMVRRTUNUSVE $.
      $}

      ${
        tglineinteq.1 $e |- ( ph -> X e. ( A L B ) ) $.
        tglineinteq.2 $e |- ( ph -> Y e. ( A L B ) ) $.
        tglineinteq.3 $e |- ( ph -> X e. ( C L D ) ) $.
        tglineinteq.4 $e |- ( ph -> Y e. ( C L D ) ) $.
        $( Two distinct lines intersect in at most one point.  Theorem 6.21 of
           [Schwabhauser] p. 46.  (Contributed by Thierry Arnoux,
           6-Aug-2019.) $)
        tglineinteq $p |- ( ph -> X = Y ) $=
          ( vx co wcel cv wmo wceq tglngne tgelrnln tglineneq tglineintmo eleq1
          wa jca anbi12d moi syl212anc ) AJBCIUFZUGZKVAUGZUEUHZVAUGZVDDEIUFZUGZ
          UPZUEUIVBJVFUGZUPZVCKVFUGZUPZJKUJUAUBAUEVAVFFGHILMNOAFGHIBCLMNOPQAFGH
          IBCJLNMOPQUAUKULAFGHIDELMNORSAFGHIDEJLNMORSUCUKULABCDEFGHILMNOPQRSTUM
          UNAVBVIUAUCUQAVCVKUBUDUQVHVJVLUEJKVAVAVDJUJVEVBVGVIVDJVAUOVDJVFUOURVD
          KUJVEVCVGVKVDKVAUOVDKVFUOURUSUT $.
      $}

      ${
        ncolncol.1 $e |- ( ph -> D e. ( A L B ) ) $.
        ncolncol.2 $e |- ( ph -> D =/= B ) $.
        $( Deduce non-colinearity from non-colinearity and colinearity.
           (Contributed by Thierry Arnoux, 27-Aug-2019.) $)
        ncolncol $p |- ( ph -> -. ( D e. ( B L C ) \/ B = C ) ) $=
          ( co wcel wo wa cstrkg adantr ad2antrr wne tglngne necomd simpr lncom
          wceq tglineelsb2 eleqtrrd pm2.21ddne colrot2 mpjaodan colrot1 mtand
          orcd ) AECDIUAZUBCDUMZUCZBVBUBVCUCRAVDUDZFGHIBCDJLKAGUEUBZVDMUFZABFUB
          ZVDNUFACFUBZVDOUFZADFUBZVDPUFZVEDECIUAUBZDBCIUAUBZBCUMZUCZECUMZVEVMUD
          ZVNVOVRFGHIBCDJKLAVFVDVMMUGZAVHVDVMNUGAVIVDVMOUGZAVKVDVMPUGZABCUHVDVM
          AFGHIBCEJLKMNOSUIZUGVRDCEIUAZCBIUAZVRFGHICEDJKLVSVTAEFUBZVDVMQUGWAACE
          UHVDVMAECTUJUGVEVMUKULAWDWCUMVDVMAFCBEGHIJKLMONABCWBUJZQTAFGHICBEJKLM
          ONQWFSULUNUGUOULVAVEVQUDVPECVEVQUKAECUHVDVQTUGUPVEFGHICDEJLKVGVJVLAWE
          VDQUFAVDUKUQURUSUT $.
      $}
    $}

    ${
      coltr.a $e |- ( ph -> A e. P ) $.
      coltr.b $e |- ( ph -> B e. P ) $.
      coltr.c $e |- ( ph -> C e. P ) $.
      coltr.d $e |- ( ph -> D e. P ) $.
      coltr.1 $e |- ( ph -> A e. ( B L C ) ) $.
      ${
        coltr.2 $e |- ( ph -> ( B e. ( C L D ) \/ C = D ) ) $.
        $( A transitivity law for colinearity.  (Contributed by Thierry Arnoux,
           27-Nov-2019.) $)
        coltr $p |- ( ph -> ( A e. ( C L D ) \/ C = D ) ) $=
          ( wcel co wceq wo wa cstrkg adantr simpr tglinerflx1 ex necon1bd orrd
          wne simplr eqeltrd orim1d mpd wn ad2antrr tglngne necomd lncom lnrot2
          ncolncol condan pm2.61dane ) ABDEIUAZTZDEUBZUCZBDABDUBZUDZDVFTZVHUCZV
          IAVMVJAVLVHAVLDEADEULZVLAVNUDFDEGHIJKLAGUETZVNMUFADFTZVNPUFAEFTZVNQUF
          AVNUGUHUIUJUKUFVKVLVGVHVKVLVGVKVLUDBDVFAVJVLUMVKVLUGUNUIUOUPABDULZUDZ
          VICVFTVHUCZAVTVRVIUQZSURVSWAUDBDECFGHIJKLAVOVRWAMURABFTZVRWANURAVPVRW
          APURAVQVRWAQURACFTZVRWAOURVSWAUGVSCBDIUATWAVSFGHIBDCJKLAVOVRMUFZAWBVR
          NUFZAVPVRPUFZAWCVROUFZAVRUGVSFGHIDCBJKLWDWFWGWEVSCDVSFGHICDBJLKWDWGWF
          ABCDIUATVRRUFZUSUTZWHVAWIVBUFACDULVRWAAFGHICDBJLKMOPRUSURVCVDVE $.
      $}

      ${
        coltr3.2 $e |- ( ph -> D e. ( A I C ) ) $.
        $( A transitivity law for colinearity.  (Contributed by Thierry Arnoux,
           27-Nov-2019.) $)
        coltr3 $p |- ( ph -> D e. ( B L C ) ) $=
          ( adantr co wcel wceq cds cfv cstrkg simpr oveq2d eleqtrrd axtgbtwnid
          wa eqid eqeltrrd btwnlng1 necomd tglngne lnrot1 tglineelsb2 tglinecom
          wne 3eqtr4d eleqtrd pm2.61dane ) AECDIUAZUBBDABDUCZUKZBEVDVFFGHGUDUEZ
          BEJVGULKAGUFUBZVEMTABFUBZVENTAEFUBZVEQTVFEBDHUAZBBHUAAEVKUBZVESTVFBDB
          HAVEUGUHUIUJABVDUBZVERTUMABDUTZUKZEBDIUAZVDVOFGHIBDEJKLAVHVNMTZAVIVNN
          TZADFUBVNPTZAVJVNQTAVNUGZAVLVNSTUNVODBIUADCIUAZVPVDVOFDBCGHIJKLVQVSVR
          VOBDVTUOZACFUBVNOTZACDUTVNAFGHICDBJLKMOPRUPZTZVOFGHIDBCJKLVQVSVRWCWBA
          VMVNRTWEUQURVOFBDGHIJKLVQVRVSVTUSAVDWAUCVNAFCDGHIJKLMOPWDUSTVAVBVC $.
      $}
    $}

    ${
      $d a x L $.  $d x P $.  $d a x X $.  $d a x Y $.  $d a x Z $.  $d a ph $.
      colline.1 $e |- ( ph -> X e. P ) $.
      colline.2 $e |- ( ph -> Y e. P ) $.
      colline.3 $e |- ( ph -> Z e. P ) $.
      colline.4 $e |- ( ph -> 2 <_ ( # ` P ) ) $.
      $( Three points are colinear iff there is a line through all three of
         them.  Theorem 6.23 of [Schwabhauser] p. 46.  (Contributed by Thierry
         Arnoux, 28-May-2019.) $)
      colline $p |- ( ph -> ( ( X e. ( Y L Z ) \/ Y = Z ) <->
        E. a e. ran L ( X e. a /\ Y e. a /\ Z e. a ) ) ) $=
        ( wcel wa eleq2 vx co wceq wo cv w3a crn wrex wne cstrkg ad4antr simplr
        tgelrnln tglinerflx1 simp-4r simpllr eqeltrrd 3anbi123d rspcev syl13anc
        eqeltrd cds cfv eqid tglowdim1i ad2antrr r19.29a tglinerflx2 pm2.61dane
        simpr adantlr simpll neneqd orel2 sylc syl21anc df-ne simplr1 ad3antrrr
        simplr2 simplr3 tglinethru eleqtrd syl5bir orrd orcomd r19.29an impbida
        wn ex ) AFGHEUBZRZGHUCZUDZFIUEZRZGWORZHWORZUFZIEUGZUHZAWNSZXAGHAWMXAWNA
        WMSZXAFHXCFHUCZSZFUAUEZUIZXAUABXEXFBRZSZXGSZFXFEUBZWTRFXKRZGXKRZHXKRZXA
        XJBCDEFXFJKLACUJRZWMXDXHXGMUKZAFBRZWMXDXHXGNUKZXEXHXGULZXIXGVJZUMXJBFXF
        CDEJKLXPXRXSXTUNZXJGHXKAWMXDXHXGUOXJFHXKXCXDXHXGUPYAUQZVAYBWSXLXMXNUFIX
        KWTWOXKUCWPXLWQXMWRXNWOXKFTWOXKGTWOXKHTURUSUTAXGUABUHWMXDAUABCDCVBVCZFJ
        YCVDKMQNVEVFVGXCFHUIZSZFHEUBZWTRFYFRZGYFRZHYFRZXAYEBCDEFHJKLAXOWMYDMVFZ
        AXQWMYDNVFZAHBRZWMYDPVFZXCYDVJZUMYEBFHCDEJKLYJYKYMYNUNYEGHYFAWMYDULYEBF
        HCDEJKLYJYKYMYNVHZVAYOWSYGYHYIUFIYFWTWOYFUCWPYGWQYHWRYIWOYFFTWOYFGTWOYF
        HTURUSUTVIVKXBGHUIZSZWKWTRZWLGWKRZHWKRZXAYQAWLYPYRAWNYPVLZYQWMWIZWNWLYQ
        GHXBYPVJZVMAWNYPULWMWLVNVOZUUCAWLSZYPSZBCDEGHJKLAXOWLYPMVFZAGBRZWLYPOVF
        ZAYLWLYPPVFZUUEYPVJZUMVPUUDYQAWLYPYSUUAUUDUUCUUFBGHCDEJKLUUGUUIUUJUUKUN
        VPYQAWLYPYTUUAUUDUUCUUFBGHCDEJKLUUGUUIUUJUUKVHVPWSWLYSYTUFIWKWTWOWKUCWP
        WLWQYSWRYTWOWKFTWOWKGTWOWKHTURUSUTVIAWSWNIWTAWOWTRZSZWSSZWMWLUUNWMWLUUB
        YPUUNWLGHVQUUNYPWLUUNYPSZFWOWKWPWQWRUUMYPVRUUOWOBGHCDEJKLAXOUULWSYPMVSA
        UUHUULWSYPOVSAYLUULWSYPPVSUUNYPVJZUUPAUULWSYPUPWPWQWRUUMYPVTWPWQWRUUMYP
        WAWBWCWJWDWEWFWGWH $.
    $}

    ${
      $d a b c z G $.  $d a b c z I $.  $d a b c z P $.  $d a b c z ph $.
      tglowdim2l.1 $e |- ( ph -> G TarskiGDim>= 2 ) $.
      $( Reformulation of the lower dimension axiom for dimension 2.  There
         exist three non colinear points.  Theorem 6.24 of [Schwabhauser]
         p. 46.  (Contributed by Thierry Arnoux, 30-May-2019.) $)
      tglowdim2l $p |- ( ph ->
        E. a e. P E. b e. P E. c e. P -. ( c e. ( a L b ) \/ a = b ) ) $=
        ( cv co wcel wn wrex wa rexbidva wceq wo w3o cds cfv cstrkg axtglowdim2
        eqid ad3antrrr simpllr simplr simpr tgcolg notbid mpbird ) AHNZFNZGNZEO
        PUQURUAUBZQZHBRZGBRZFBRUPUQURDOPUQUPURDOPURUQUPDOPUCZQZHBRZGBRZFBRAFGHB
        CDCUDUEZUFIVGUHJLMUGAVBVFFBAUQBPZSZVAVEGBVIURBPZSZUTVDHBVKUPBPZSZUSVCVM
        BCDEUQURUPIKJACUFPVHVJVLLUIAVHVJVLUJVIVJVLUKVKVLULUMUNTTTUO $.

      $d a b c z A $.  $d a b c z B $.  $d a b c z L $.
      tglowdim2ln.a $e |- ( ph -> A e. P ) $.
      tglowdim2ln.b $e |- ( ph -> B e. P ) $.
      tglowdim2ln.1 $e |- ( ph -> A =/= B ) $.
      $( There is always one point outside of any line.  Theorem 6.25 of
         [Schwabhauser] p. 46.  (Contributed by Thierry Arnoux,
         16-Nov-2019.) $)
      tglowdim2ln $p |- ( ph -> E. c e. P -. c e. ( A L B ) ) $=
        ( va vb wcel wn vz cv co wral wrex wceq wo tglowdim2l adantr wa simplr3
        w3a simpllr eleq1 rspcva syl2anc cstrkg ad3antrrr simplr1 simplr2 simpr
        neqned wne tgelrnln tglinethru eleqtrd orcomd ralrimivvva dfral2 ralbii
        ex orrd ralnex bitri sylib pm2.65da rexnal sylibr ) AHUBZBCGUCZSZHDUDZT
        WATHDUEAWBUAUBZQUBZRUBZGUCZSZWDWEUFZUGZTUADUEZRDUEZQDUEZAWLWBADEFGQRUAI
        JKLMUHUIAWBUJZWIUADUDZRDUDZQDUDZWLTZWMWIQRUADDDWMWDDSZWEDSZWCDSZULZUJZW
        HWGXBWHWGXBWHTZWGXBXCUJZWCVTWFXDWTWBWCVTSZWRWSWTWMXCUKAWBXAXCUMZWAXEHWC
        DVSWCVTUNUOUPXDVTDWDWEEFGIJKAEUQSWBXAXCLURZWRWSWTWMXCUSZWRWSWTWMXCUTZXD
        WDWEXBXCVAVBZXJXDDEFGBCIJKXGABDSWBXAXCNURACDSWBXAXCOURABCVCWBXAXCPURVDX
        DWRWBWDVTSZXHXFWAXKHWDDVSWDVTUNUOUPXDWSWBWEVTSZXIXFWAXLHWEDVSWEVTUNUOUP
        VEVFVKVLVGVHWPWKTZQDUDWQWOXMQDWOWJTZRDUDXMWNXNRDWIUADVIVJWJRDVMVNVJWKQD
        VMVNVOVPWAHDVQVR $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Point inversions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c pInvG $.

  $( Declare the constant for the point inversion function. $)
  cmir $a class pInvG $.

  ${
    $d a b g m $.
    $( Define the point inversion ("mirror") function.  Definition 7.5 of
       [Schwabhauser] p. 49.  See ~ mirval and ~ ismir .  (Contributed by
       Thierry Arnoux, 30-May-2019.) $)
    df-mir $a |- pInvG = ( g e. _V |-> ( m e. ( Base ` g ) |->
      ( a e. ( Base ` g ) |-> ( iota_ b e. ( Base ` g )
      ( ( m ( dist ` g ) b ) = ( m ( dist ` g ) a )
      /\ m e. ( b ( Itv ` g ) a ) ) ) ) ) ) $.
  $}

  ${
    $d b c .- $.  $d b c A $.  $d b c I $.  $d b c M $.  $d b c P $.
    $d b c ph $.
    mirreu.p $e |- P = ( Base ` G ) $.
    mirreu.d $e |- .- = ( dist ` G ) $.
    mirreu.i $e |- I = ( Itv ` G ) $.
    mirreu.g $e |- ( ph -> G e. TarskiG ) $.
    mirreu.a $e |- ( ph -> A e. P ) $.
    mirreu.m $e |- ( ph -> M e. P ) $.
    $( Existential uniqueness of the mirror point.  Theorem 7.8 of
       [Schwabhauser] p. 49.  (Contributed by Thierry Arnoux, 30-May-2019.) $)
    mirreu3 $p |- ( ph
      -> E! b e. P ( ( M .- b ) = ( M .- A ) /\ M e. ( b I A ) ) ) $=
      ( vc co wceq wcel wa adantr cv wrex wi wral wreu eqidd cstrkg tgbtwntriv2
      simpr eqeltrrd oveq2 eqeq1d oveq1 eleq2d anbi12d rspcev ad3antrrr simplrl
      syl12anc simprll simpllr oveq2d eqtrd axtgcgrid simplrr simprrl eqtr3d ex
      ralrimivva jca wne axtgsegcon wb ancom tgbtwncomb anbi2d rexbidva simprlr
      syl5bb mpbid tgbtwncom simprrr tgsegconeq pm2.61dane reu4 sylibr ) AFHUAZ
      GPZFBGPZQZFWGBEPZRZSZHCUBZWMFOUAZGPZWIQZFWOBEPZRZSZSZWGWOQZUCZOCUDHCUDZSZ
      WMHCUEAXEBFABFQZSZWNXDXGBCRZWIWIQZFBBEPZRZWNAXHXFMTZXGWIUFXGBFXJAXFUIXGBB
      CDEGIJKADUGRZXFLTXLXLUHUJWMXIXKSHBCWGBQZWJXIWLXKXNWHWIWIWGBFGUKULXNWKXJFW
      GBBEUMUNUOUPUSXGXCHOCCXGWGCRZWOCRZSZSZXAXBXRXASZFWGWOXSCDEGFWGFIJKAXMXFXQ
      XALUQZAFCRZXFXQXANUQZXGXOXPXAURYBXSWHWIFFGPZXRWJWLWTUTXSBFFGAXFXQXAVAVBZV
      CVDXSCDEGFWOFIJKXTYBXGXOXPXAVEYBXSWPWIYCXRWMWQWSVFYDVCVDVGVHVIVJABFVKZSZW
      NXDYFFBWGEPRZWJSZHCUBZWNYFHFBCDEGBFIJKAXMYELTAXHYEMTZAYAYENTZYKYJVLAYIWNV
      MYEAYHWMHCYHWJYGSAXOSZWMYGWJVNYLYGWLWJYLBFWGCDEGIJKAXMXOLTAXHXOMTAYAXONTA
      XOUIVOVPVSVQTVTYFXCHOCCYFXQSZXAXBYMXASZFFBBCWGWODEGIJKAXMYEXQXALUQZAYAYEX
      QXANUQZYPAXHYEXQXAMUQZYQYFXOXPXAURZYFXOXPXAVEZAYEXQXAVAYNWGFBCDEGIJKYOYRY
      PYQYMWJWLWTVRWAYNWOFBCDEGIJKYOYSYPYQYMWMWQWSWBWAYMWJWLWTUTYMWMWQWSVFWCVHV
      IVJWDWMWTHOCXBWJWQWLWSXBWHWPWIWGWOFGUKULXBWKWRFWGWOBEUMUNUOWEWF $.
  $}

  ${
    mirval.p $e |- P = ( Base ` G ) $.
    mirval.d $e |- .- = ( dist ` G ) $.
    mirval.i $e |- I = ( Itv ` G ) $.
    mirval.l $e |- L = ( LineG ` G ) $.
    mirval.s $e |- S = ( pInvG ` G ) $.
    mirval.g $e |- ( ph -> G e. TarskiG ) $.
    ${
      $d x y z A $.  $d y z B $.  $d x y z C $.  $d g x y z G $.  $d x y z M $.
      $d g x y z I $.  $d g x y z P $.  $d g x y z ph $.  $d g x y z .- $.
      mirval.a $e |- ( ph -> A e. P ) $.
      $( Value of the point inversion function ` S ` .  Definition 7.5 of
         [Schwabhauser] p. 49.  (Contributed by Thierry Arnoux,
         30-May-2019.) $)
      mirval $p |- ( ph -> ( S ` A ) = ( y e. P |->
        ( iota_ z e. P ( ( A .- z ) = ( A .- y ) /\ A e. ( z I y ) ) ) ) ) $=
        ( co wceq wcel vx vg cv wa crio cmpt cvv cmir cfv cbs citv df-mir fveq2
        cds a1i syl6eqr oveqd eqeq12d eleq2d anbi12d riotaeqbidv mpteq12dv elex
        adantl cstrkg syl fvex eqeltri mptex fvmptd syl5eq simpll oveq1d eleq1d
        riotabidva mpteq2dva ) AUADBEUAUCZCUCZJRZVQBUCZJRZSZVQVRVTHRZTZUDZCEUEZ
        UFZBEDVRJRZDVTJRZSZDWCTZUDZCEUEZUFZEFUGAFGUHUIUAEWGUFZOAUBGUAUBUCZUJUIZ
        BWQVQVRWPUNUIZRZVQVTWRRZSZVQVRVTWPUKUIZRZTZUDZCWQUEZUFZUFZWOUGUHUGUHUBU
        GXHUFSAUBUABCULUOWPGSZXHWOSAXIUAWQXGEWGXIWQGUJUIZEWPGUJUMKUPZXIBWQXFEWF
        XKXIXEWECWQEXKXIXAWBXDWDXIWSVSWTWAXIWRJVQVRXIWRGUNUIJWPGUNUMLUPZUQXIWRJ
        VQVTXLUQURXIXCWCVQXIXBHVRVTXIXBGUKUIHWPGUKUMMUPUQUSUTVAVBVBVDAGVETGUGTP
        GVEVCVFWOUGTAUAEWGEXJUGKGUJVGVHZVIUOVJVKVQDSZWGWNSAXNBEWFWMXNVTETZUDZWE
        WLCEXPVRETZUDZWBWJWDWKXRVSWHWAWIXRVQDVRJXNXOXQVLZVMXRVQDVTJXSVMURXRVQDW
        CXSVNUTVOVPVDQWNUGTABEWMXMVIUOVJ $.

      mirfv.m $e |- M = ( S ` A ) $.
      ${
        mirfv.b $e |- ( ph -> B e. P ) $.
        $( Value of the point inversion function ` M ` .  Definition 7.5 of
           [Schwabhauser] p. 49.  (Contributed by Thierry Arnoux,
           30-May-2019.) $)
        mirfv $p |- ( ph -> ( M ` B ) =
          ( iota_ z e. P ( ( A .- z ) = ( A .- B ) /\ A e. ( z I B ) ) ) ) $=
          ( vy cv co wceq wcel wa crio cvv cfv cmpt mirval syl5eq simplr oveq2d
          eqeq2d eleq2d anbi12d riotabidva riotaex a1i fvmptd ) AUADCBUBZKUCZCU
          AUBZKUCZUDZCVBVDHUCZUEZUFZBEUGZVCCDKUCZUDZCVBDHUCZUEZUFZBEUGZEJUHAJCF
          UIUAEVJUJSAUABCEFGHIKLMNOPQRUKULAVDDUDZUFZVIVOBEVRVBEUEZUFZVFVLVHVNVT
          VEVKVCVTVDDCKAVQVSUMZUNUOVTVGVMCVTVDDVBHWAUNUPUQURTVPUHUEAVOBEUSUTVA
          $.

        $( Property of the image by the point inversion function.  Definition
           7.5 of [Schwabhauser] p. 49.  (Contributed by Thierry Arnoux,
           3-Jun-2019.) $)
        mircgr $p |- ( ph -> ( A .- ( M ` B ) ) = ( A .- B ) ) $=
          ( vz cfv co wceq wcel wa cv crab crio mirfv wreu mirreu3 riotacl2 syl
          eqeltrd oveq2 eqeq1d oveq1 eleq2d anbi12d elrab sylib simprd simpld )
          ABCIUAZJUBZBCJUBZUCZBVDCGUBZUDZAVDDUDZVGVIUEZAVDBTUFZJUBZVFUCZBVLCGUB
          ZUDZUEZTDUGZUDVJVKUEAVDVQTDUHZVRATBCDEFGHIJKLMNOPQRSUIAVQTDUJVSVRUDAC
          DFGBJTKLMPSQUKVQTDULUMUNVQVKTVDDVLVDUCZVNVGVPVIVTVMVEVFVLVDBJUOUPVTVO
          VHBVLVDCGUQURUSUTVAVBVC $.

        $( Property of the image by the point inversion function.  Definition
           7.5 of [Schwabhauser] p. 49.  (Contributed by Thierry Arnoux,
           3-Jun-2019.) $)
        mirbtwn $p |- ( ph -> A e. ( ( M ` B ) I B ) ) $=
          ( vz cfv wcel co wceq cv wa crab crio mirfv wreu mirreu3 riotacl2 syl
          eqeltrd oveq2 eqeq1d oveq1 eleq2d anbi12d elrab sylib simprrd ) ACIUA
          ZDUBZBVCJUCZBCJUCZUDZBVCCGUCZUBZAVCBTUEZJUCZVFUDZBVJCGUCZUBZUFZTDUGZU
          BVDVGVIUFZUFAVCVOTDUHZVPATBCDEFGHIJKLMNOPQRSUIAVOTDUJVRVPUBACDFGBJTKL
          MPSQUKVOTDULUMUNVOVQTVCDVJVCUDZVLVGVNVIVSVKVEVFVJVCBJUOUPVSVMVHBVJVCC
          GUQURUSUTVAVB $.

        ${
          ismir.1 $e |- ( ph -> C e. P ) $.
          ismir.2 $e |- ( ph -> ( A .- C ) = ( A .- B ) ) $.
          ismir.3 $e |- ( ph -> A e. ( C I B ) ) $.
          $( Property of the image by the point inversion function.  Definition
             7.5 of [Schwabhauser] p. 49.  (Contributed by Thierry Arnoux,
             3-Jun-2019.) $)
          ismir $p |- ( ph -> C = ( M ` B ) ) $=
            ( vz cfv cv co wceq wcel wa crio mirfv wreu wb mirreu3 oveq2 eqeq1d
            oveq1 eleq2d anbi12d riota2 syl2anc mpbi2and eqtr2d ) ACJUEBUDUFZKU
            GZBCKUGZUHZBVECHUGZUIZUJZUDEUKZDAUDBCEFGHIJKLMNOPQRSTULABDKUGZVGUHZ
            BDCHUGZUIZVLDUHZUBUCADEUIVKUDEUMVNVPUJZVQUNUAACEGHBKUDLMNQTRUOVKVRU
            DEDVEDUHZVHVNVJVPVSVFVMVGVEDBKUPUQVSVIVOBVEDCHURUSUTVAVBVCVD $.
        $}
      $}

      $d x B $.  $d x ph $.
      $( Point inversion as function.  (Contributed by Thierry Arnoux,
         30-May-2019.) $)
      mirf $p |- ( ph -> M : P --> P ) $=
        ( vz co wcel vy vx cv wceq wa crio cvv riotaex a1i mirval syl5eq cstrkg
        cfv cmpt adantr simpr mirfv wreu mirreu3 riotacl syl eqeltrd fmpt2d ) A
        UAUBCBRUCZISZBUAUCZISUDBVDVFFSTUEZRCUFZCHUGVHUGTAVFCTUEVGRCUHUIAHBDUMUA
        CVHUNQAUARBCDEFGIJKLMNOPUJUKAUBUCZCTZUEZVIHUMVEBVIISUDBVDVIFSTUEZRCUFZC
        VKRBVICDEFGHIJKLMNAEULTVJOUOZABCTVJPUOZQAVJUPZUQVKVLRCURVMCTVKVICEFBIRJ
        KLVNVPVOUSVLRCUTVAVBVC $.

      ${
        mircl.x $e |- ( ph -> X e. P ) $.
        $( Closure of the point inversion function.  (Contributed by Thierry
           Arnoux, 20-Oct-2019.) $)
        mircl $p |- ( ph -> ( M ` X ) e. P ) $=
          ( mirf ffvelrnd ) ACCJHABCDEFGHIKLMNOPQRTSUA $.
      $}

      ${
        mirmir.b $e |- ( ph -> B e. P ) $.
        $( The point inversion function is an involution.  Theorem 7.7 of
           [Schwabhauser] p. 49.  (Contributed by Thierry Arnoux,
           3-Jun-2019.) $)
        mirmir $p |- ( ph -> ( M ` ( M ` B ) ) = B ) $=
          ( cfv mircl co mircgr eqcomd mirbtwn tgbtwncom ismir ) ACCITZITABUHCD
          EFGHIJKLMNOPQRABDEFGHIJCKLMNOPQRSUAZSABUHJUBBCJUBABCDEFGHIJKLMNOPQRSU
          CUDAUHBCDFGJKLMPUIQSABCDEFGHIJKLMNOPQRSUEUFUGUD $.

        ${
          mircom.1 $e |- ( ph -> ( M ` B ) = C ) $.
          $( Variation on ~ mirmir .  (Contributed by Thierry Arnoux,
             10-Nov-2019.) $)
          mircom $p |- ( ph -> ( M ` C ) = B ) $=
            ( cfv fveq2d mirmir eqtr3d ) ACJUBZJUBDJUBCAUFDJUAUCABCEFGHIJKLMNOP
            QRSTUDUE $.
        $}

        $d a z $.  $d a B $.  $d a M $.  $d a P $.  $d a ph $.
        $( Any point has a unique antecedent through point inversion.  Theorem
           7.8 of [Schwabhauser] p. 50.  (Contributed by Thierry Arnoux,
           3-Jun-2019.) $)
        mirreu $p |- ( ph -> E! a e. P ( M ` a ) = B ) $=
          ( cfv wcel wceq cv wi wral wreu mircl mirmir wa cstrkg ad2antrr simpr
          simplr fveq2d eqtr3d ex ralrimiva fveq2 eqeq1d eqreu syl3anc ) ACIUAZ
          DUBVCIUAZCUCZKUDZIUAZCUCZVFVCUCZUEZKDUFVHKDUGABDEFGHIJCLMNOPQRSTUHABC
          DEFGHIJLMNOPQRSTUIAVJKDAVFDUBZUJZVHVIVLVHUJZVGIUAVFVCVMBVFDEFGHIJLMNO
          PAFUKUBVKVHQULABDUBVKVHRULSAVKVHUNUIVMVGCIVLVHUMUOUPUQURVHVEKDVCVIVGV
          DCVFVCIUSUTVAVB $.

        mireq.c $e |- ( ph -> C e. P ) $.
        mireq.d $e |- ( ph -> ( M ` B ) = ( M ` C ) ) $.
        $( Equality deduction for point inversion.  Theorem 7.9 of
           [Schwabhauser] p. 50.  (Contributed by Thierry Arnoux,
           30-May-2019.) $)
        mireq $p |- ( ph -> B = C ) $=
          ( vz mircl co wceq wcel wa cv crio mirfv eqtr3d wreu wb mirreu3 oveq2
          cfv eqeq1d oveq1 eleq2d anbi12d riota2 mpbird simpld eqcomd tgbtwncom
          syl2anc simprd ismir mirmir eqtrd ) ACDJUQZJUQDABVLCEFGHIJKLMNOPQRSAB
          EFGHIJKDLMNOPQRSUAUDZTABVLKUEZBCKUEZAVNVOUFZBVLCHUEZUGZAVPVRUHZBUCUIZ
          KUEZVOUFZBVTCHUEZUGZUHZUCEUJZVLUFZACJUQWFVLAUCBCEFGHIJKLMNOPQRSTUKUBU
          LAVLEUGWEUCEUMVSWGUNVMACEGHBKUCLMNQTRUOWEVSUCEVLVTVLUFZWBVPWDVRWHWAVN
          VOVTVLBKUPURWHWCVQBVTVLCHUSUTVAVBVGVCZVDVEAVLBCEGHKLMNQVMRTAVPVRWIVHV
          FVIABDEFGHIJKLMNOPQRSUAVJVK $.
      $}

      ${
        mirinv.b $e |- ( ph -> B e. P ) $.
        $( The only invariant point of a point inversion Theorem 7.3 of
           [Schwabhauser] p. 49, Theorem 7.10 of [Schwabhauser] p. 50.
           (Contributed by Thierry Arnoux, 30-Jul-2019.) $)
        mirinv $p |- ( ph -> ( ( M ` B ) = B <-> A = B ) ) $=
          ( adantr cfv wceq wa cstrkg wcel co mirbtwn oveq1d eleqtrd axtgbtwnid
          simpr eqcomd eqidd tgbtwntriv1 eqeltrd ismir impbida ) ACIUAZCUBZBCUB
          ZAUSUCZCBVADFGJCBKLMAFUDUEZUSPTZACDUEZUSSTZABDUEZUSQTZVABURCGUFCCGUFZ
          VABCDEFGHIJKLMNOVCVGRVEUGVAURCCGAUSUKUHUIUJULAUTUCZCURVIBCCDEFGHIJKLM
          NOAVBUTPTZAVFUTQTRAVDUTSTZVKVIBCJUFUMVIBCVHAUTUKVICCDFGJKLMVJVKVKUNUO
          UPULUQ $.

        mirne.1 $e |- ( ph -> B =/= A ) $.
        $( Mirror of non-center point cannot be the center point.  (Contributed
           by Thierry Arnoux, 27-Sep-2020.) $)
        mirne $p |- ( ph -> ( M ` B ) =/= A ) $=
          ( cfv wceq wa simpr fveq2d mirmir adantr mirinv mpbiri 3eqtr3d neneqd
          eqid wne pm2.65da neqned ) ACIUAZBAUPBUBZCBUBAUQUCZUPIUAZBIUAZCBURUPB
          IAUQUDUEAUSCUBUQABCDEFGHIJKLMNOPQRSUFUGAUTBUBZUQAVABBUBBULABBDEFGHIJK
          LMNOPQRQUHUIUGUJURCBACBUMUQTUGUKUNUO $.
      $}

      $( The center point is invariant of a point inversion.  (Contributed by
         Thierry Arnoux, 25-Aug-2019.) $)
      mircinv $p |- ( ph -> ( M ` A ) = A ) $=
        ( cfv wceq eqid mirinv mpbiri ) ABHRBSBBSBTABBCDEFGHIJKLMNOPQPUAUB $.

      $d a M $.  $d a P $.  $d a x y z ph $.
      $( The point inversion function ` M ` is a bijection.  Theorem 7.11 of
         [Schwabhauser] p. 50.  (Contributed by Thierry Arnoux, 6-Jun-2019.) $)
      mirf1o $p |- ( ph -> M : P -1-1-onto-> P ) $=
        ( va wceq wcel wfn ccnv wf1o wf mirf ffn syl cv cfv cstrkg adantr simpr
        wral wa mirmir ralrimiva nvocnv syl2anc nvof1o ) AHCUAZHUBHSZCCHUCACCHU
        DZUTABCDEFGHIJKLMNOPQUEZCCHUFUGAVBRUHZHUIHUIVDSZRCUMVAVCAVERCAVDCTZUNBV
        DCDEFGHIJKLMNAEUJTVFOUKABCTVFPUKQAVFULUOUPRCHUQURCHUSUR $.

      miriso.1 $e |- ( ph -> X e. P ) $.
      miriso.2 $e |- ( ph -> Y e. P ) $.
      ${
        $d t x y z .- $.  $d t x y z A $.  $d t x y z I $.  $d t x y z M $.
        $d t x y z P $.  $d t x y z ph $.  $d t x y z X $.  $d t x y z Y $.
        $( The point inversion function is an isometry, i.e. it is conserves
           congruence.  Because it is also a bijection, it is also a motion.
           Theorem 7.13 of [Schwabhauser] p. 50.  (Contributed by Thierry
           Arnoux, 6-Jun-2019.) $)
        miriso $p |- ( ph -> ( ( M ` X ) .- ( M ` Y ) ) = ( X .- Y ) ) $=
          ( vx vy vz vt cfv co wceq wa simpr oveq1d cstrkg adantr mircgr eqcomd
          wcel oveq2d tgbtwntriv1 ismir 3eqtr2rd wne cv ad2antrr ad6antr simplr
          ad8antr simp-4r mircl mirbtwn simp-7r tgbtwnexch3 tgbtwnexch2 simpllr
          simpld tgbtwncom simp-5r simprd eqtr4d tgcgrextend eqtr2d axtgcgrrflx
          tgcgrcomlr 3eqtrd simp-9r neneqd eleqtrd axtgbtwnid neqned tgbtwnexch
          axtg5seg tgifscgr wrex simp-6l axtgsegcon syl21anc r19.29a pm2.61dane
          eqtrd mtand ) AJHUFZKHUFZIUGZJKIUGZUHZJBAJBUHZUIZXCBKIUGZBXAIUGZXBXFJ
          BKIAXEUJZUKXFBKCDEFGHILMNOPAEULUPZXEQUMZABCUPZXERUMZSAKCUPZXEUAUMUNXF
          BWTXAIXFBJBCDEFGHILMNOPXKXMSAJCUPZXETUMZXMXFBJBIXFJBXIUOUQXFBJCEFILMN
          XKXMXPURUSUKUTAJBVAZUIZJWTUBVBZFUGUPZJXSIUGZKBIUGZUHZUIZXDUBCXRXSCUPZ
          UIZYDUIZKXAUCVBZFUGUPZKYHIUGJBIUGZUHZUIZXDUCCYGYHCUPZUIZYLUIZWTXSUDVB
          ZFUGUPZWTYPIUGYBUHZUIZXDUDCYOYPCUPZUIZYSUIZXAYHUEVBZFUGUPZXAUUCIUGZYJ
          UHZUIZXDUECUUBUUCCUPZUIZUUGUIZXCXBUUJXSJBKCYPWTEXAFBILMNYGXJYMYLYTYSU
          UHUUGXRXJYEYDAXJXQQUMZVCZVDZYGYEYMYLYTYSUUHUUGXRYEYDVEZVDZXRXOYEYDYMY
          LYTYSUUHUUGAXOXQTUMZVFZYGXLYMYLYTYSUUHUUGXRXLYEYDAXLXQRUMZVCZVDZYGXNY
          MYLYTYSUUHUUGXRXNYEYDAXNXQUAUMZVCZVDZYOYTYSUUHUUGVGZYGWTCUPZYMYLYTYSU
          UHUUGXRUVEYEYDXRBCDEFGHIJLMNOPUUKUURSUUPVHZVCZVDZUUTXRXACUPZYEYDYMYLY
          TYSUUHUUGXRBCDEFGHIKLMNOPUUKUURSUVAVHZVFZUUJBJXSCEFILMNUUMUUTUUQUUOUU
          JWTBJXSCEFILMNUUMUVHUUTUUQUUOUUJBJCDEFGHILMNOPUUMUUTSUUQVIZUUJXTYCYFY
          DYMYLYTYSUUHUUGVJZVNZVKZVOZUUJBWTYPCEFILMNUUMUUTUVHUVDUUJXSBWTYPCEFIL
          MNUUMUUOUUTUVHUVDUUJXSJBWTCEFILMNUUMUUOUUQUUTUVHUUJWTJXSCEFILMNUUMUVH
          UUQUUOUVNVOUUJWTBJCEFILMNUUMUVHUUTUUQUVLVOVLZUUJYQYRUUAYSUUHUUGVMZVNZ
          VKZVOUUJBXSBYPCEFILMNUUMUUTUUOUUTUVDUUJBYPIUGZYHBIUGZBXSIUGZUUJBWTYPY
          HCKBEFILMNUUMUUTUVHUVDUUBYMUUHUUGYGYMYLYTYSVGZVCZUVCUUTUVTUUJBKYHCEFI
          LMNUUMUUTUVCUWEUUJXABKYHCEFILMNUUMUVKUUTUVCUWEUUJBKCDEFGHILMNOPUUMUUT
          SUVCVIZUUJYIYKYNYLYTYSUUHUUGVPZVNZVKVOZUUJBWTIUGZBJIUGZYHKIUGUUJBJCDE
          FGHILMNOPUUMUUTSUUQUNZUUJKYHJBCEFILMNUUMUVCUWEUUQUUTUUJYIYKUWGVQWBZVR
          UUJYQYRUVRVQVSZUUJYHKBBCJXSEFILMNUUMUWEUVCUUTUUTUUQUUOUWIUVOUWMUUJYAY
          BUUJXTYCUVMVQZUOVSZVTZWBUUJBJBWTCEFILMNUUMUUTUUQUUTUVHUUJUWJUWKUWLUOW
          BUUJKXSXAYPCEFILMNUUMUVCUUOUVKUVDUUJYHKBXSCUUCXAEYPFBILMNUUMUWEUVCUUT
          UUOUUBUUHUUGVEZUVKUUTUVDUWIUUJBXAUUCCEFILMNUUMUUTUVKUWRUUJYHBXAUUCCEF
          ILMNUUMUWEUUTUVKUWRUUJYHKBXACEFILMNUUMUWEUVCUUTUVKUUJXAKYHCEFILMNUUMU
          VKUVCUWEUWHVOUUJXABKCEFILMNUUMUVKUUTUVCUWFVOVLZUUJUUDUUFUUIUUGUJZVNZV
          KZVOUUJUWBUWCBUUCIUGZUUCBIUGZUWPUUJXSBUUCBCEFILMNUUMUUOUUTUWRUUTUUJXS
          BIUGUXCUXDUUJXSJBBCXAUUCEFILMNUUMUUOUUQUUTUUTUVKUWRUVPUXBUUJXSJIUGXGX
          HUUJJXSKBCEFILMNUUMUUQUUOUVCUUTUWOWBUUJBKCDEFGHILMNOPUUMUUTSUVCUNZVRU
          UJUUEYJUUJUUDUUFUWTVQUOVSUUJCEFIBUUCLMNUUMUUTUWRWAZWRZWBZUXFWCUUJXABI
          UGYBUUJBXABKCEFILMNUUMUUTUVKUUTUVCUXEWBUOUUJUUCYPIUGYPUUCIUGYHXSIUGUU
          JCEFIUUCYPLMNUUMUWRUVDWAUUJUUCBYHCUUCEFIXSXSBYPLMNUUMUUOUUTUVDUWRUUTU
          WEUWRUUOUUJXSBUUJXSBUHZXEUUJJBAXQYEYDYMYLYTYSUUHUUGWDWEUUJUXIUIZBJUXJ
          CEFIBJLMNUUJXJUXIUUMUMUUJXLUXIUUTUMUUJXOUXIUUQUMUXJJBXSFUGZBBFUGUUJJU
          XKUPUXIUVOUMUXJXSBBFUUJUXIUJUQWFWGUOWSWHUUJXSBWTYPCEFILMNUUMUUOUUTUVH
          UVDUVQUVSWIUUJYHBUUCCEFILMNUUMUWEUUTUWRUUJYHBXAUUCCEFILMNUUMUWEUUTUVK
          UWRUWSUXAWIVOUXGUUJUWAUWBBYHIUGUWNUUJCEFIYHBLMNUUMUWEUUTWAWRUUJCEFIXS
          UUCLMNUUMUUOUWRWAUUJUWCUXCUXHUOWJVTUWQWKWBUUJXHXGUXEUOWKUOUUBXRYMYLUU
          GUECWLXRYEYDYMYLYTYSWMUWDYNYLYTYSVMXRYMUIYLUIUEJBCEFIYHXALMNXRXJYMYLU
          UKVCXRYMYLVEXRUVIYMYLUVJVCXRXOYMYLUUPVCXRXLYMYLUURVCWNWOWPYGYSUDCWLYM
          YLYGUDKBCEFIXSWTLMNUULUUNUVGUVBUUSWNVCWPXRYLUCCWLYEYDXRUCJBCEFIXAKLMN
          UUKUVJUVAUUPUURWNVCWPXRUBKBCEFIWTJLMNUUKUVFUUPUVAUURWNWPWQ $.
      $}

      ${
        mirbtwni.z $e |- ( ph -> Z e. P ) $.
        mirbtwni.b $e |- ( ph -> Y e. ( X I Z ) ) $.
        $( Point inversion preserves betweenness, first half of Theorem 7.15 of
           [Schwabhauser] p. 51.  (Contributed by Thierry Arnoux,
           9-Jun-2019.) $)
        mirbtwni $p |- ( ph -> ( M ` Y ) e. ( ( M ` X ) I ( M ` Z ) ) ) $=
          ( cfv ccgrg eqid mirf ffvelrnd co miriso eqcomd trgcgr tgbtwnxfr ) AJ
          KLJHUEZCEUFUEZKHUEZLHUEZEFIMNOUPUGZRUAUBUCACCJHABCDEFGHIMNOPQRSTUHZUA
          UIZACCKHUTUBUIZACCLHUTUCUIZAJKLUOCUPUQUREIMNUSRUAUBUCVAVBVCAUOUQIUJJK
          IUJABCDEFGHIJKMNOPQRSTUAUBUKULAUQURIUJKLIUJABCDEFGHIKLMNOPQRSTUBUCUKU
          LAURUOIUJLJIUJABCDEFGHILJMNOPQRSTUCUAUKULUMUDUN $.
      $}

      ${
        mirbtwnb.z $e |- ( ph -> Z e. P ) $.
        $( Point inversion preserves betweenness.  Theorem 7.15 of
           [Schwabhauser] p. 51.  (Contributed by Thierry Arnoux,
           9-Jun-2019.) $)
        mirbtwnb $p |- ( ph ->
          ( Y e. ( X I Z ) <-> ( M ` Y ) e. ( ( M ` X ) I ( M ` Z ) ) ) ) $=
          ( co wcel cfv wa cstrkg adantr simpr mirbtwni mirf ffvelrnd wb mirmir
          oveq12d eleq12d mpbid impbida ) AKJLFUDZUEZKHUFZJHUFZLHUFZFUDUEZAVAUG
          BCDEFGHIJKLMNOPQAEUHUEZVARUIABCUEZVASUITAJCUEZVAUAUIAKCUEZVAUBUIALCUE
          ZVAUCUIAVAUJUKAVEUGZVBHUFZVCHUFZVDHUFZFUDZUEZVAVKBCDEFGHIVCVBVDMNOPQA
          VFVERUIZAVGVESUIZTVKCCJHVKBCDEFGHIMNOPQVQVRTULZAVHVEUAUIUMVKCCKHVSAVI
          VEUBUIUMVKCCLHVSAVJVEUCUIUMAVEUJUKAVPVAUNVEAVLKVOUTABKCDEFGHIMNOPQRST
          UBUOAVMJVNLFABJCDEFGHIMNOPQRSTUAUOABLCDEFGHIMNOPQRSTUCUOUPUQUIURUS $.
      $}

      ${
        mircgrs.z $e |- ( ph -> Z e. P ) $.
        mircgrs.t $e |- ( ph -> T e. P ) $.
        mircgrs.e $e |- ( ph -> ( X .- Y ) = ( Z .- T ) ) $.
        $( Point inversion preserves congruence.  Theorem 7.16 of
           [Schwabhauser] p. 51.  (Contributed by Thierry Arnoux,
           30-Jul-2019.) $)
        mircgrs $p |- ( ph ->
          ( ( M ` X ) .- ( M ` Y ) ) = ( ( M ` Z ) .- ( M ` T ) ) ) $=
          ( co cfv miriso 3eqtr4d ) AKLJUGMEJUGKIUHLIUHJUGMIUHEIUHJUGUFABCDFGHI
          JKLNOPQRSTUAUBUCUIABCDFGHIJMENOPQRSTUAUDUEUIUJ $.
      $}

      $( Point inversion of a point inversion through another point.
         (Contributed by Thierry Arnoux, 3-Nov-2019.) $)
      mirmir2 $p |- ( ph -> ( M ` ( ( S ` Y ) ` X ) )
        = ( ( S ` ( M ` Y ) ) ` ( M ` X ) ) ) $=
        ( cfv mircl eqid mircgr mircgrs mirbtwn mirbtwni ismir ) AKHUBZJHUBJKDU
        BZUBZHUBCDEFGUJDUBZILMNOPQABCDEFGHIKLMNOPQRSUAUCUMUDABCDEFGHIJLMNOPQRST
        UCABCDEFGHIULLMNOPQRSAKCDEFGUKIJLMNOPQUAUKUDZTUCZUCABCDJEFGHIKULKLMNOPQ
        RSUAUOUATAKJCDEFGUKILMNOPQUAUNTUEUFABCDEFGHIULKJLMNOPQRSUOUATAKJCDEFGUK
        ILMNOPQUAUNTUGUHUI $.
    $}

    ${
      $d G a b $.  $d M a b $.  $d P a b $.  $d a b ph $.
      mirmot.m $e |- M = ( S ` A ) $.
      mirmot.a $e |- ( ph -> A e. P ) $.
      $( Point investion is a motion of the geometric space.  Theorem 7.14 of
         [Schwabhauser] p. 51.  (Contributed by Thierry Arnoux,
         15-Dec-2019.) $)
      mirmot $p |- ( ph -> M e. ( G Ismt G ) ) $=
        ( va vb wcel cismt co wf1o cv cfv wceq wral mirf1o cstrkg adantr simprl
        wa simprr miriso ralrimivva wb ismot syl mpbir2and ) AHEEUAUBTZCCHUCZRU
        DZHUESUDZHUEIUBVBVCIUBUFZSCUGRCUGZABCDEFGHIJKLMNOQPUHAVDRSCCAVBCTZVCCTZ
        ULZULBCDEFGHIVBVCJKLMNAEUITZVHOUJABCTVHQUJPAVFVGUKAVFVGUMUNUOAVIUTVAVEU
        LUPOCHEIUIRSJKUQURUS $.
    $}

    ${
      mirln.m $e |- M = ( S ` A ) $.
      mirln.1 $e |- ( ph -> D e. ran L ) $.
      mirln.a $e |- ( ph -> A e. D ) $.
      mirln.b $e |- ( ph -> B e. D ) $.
      $( If two points are on the same line, so is the mirror point of one
         through the other.  (Contributed by Thierry Arnoux, 21-Dec-2019.) $)
      mirln $p |- ( ph -> ( M ` B ) e. D ) $=
        ( wcel wceq wa simpr fveq2d cstrkg adantr tglnpt mircinv eqtr3d eqeltrd
        cfv wne co mircl mirbtwn btwnlng2 crn tglinethru eleqtrrd pm2.61dane )
        ACJUMZDUBBCABCUCZUDZVCBDVEBJUMVCBVEBCJAVDUEUFVEBEFGHIJKLMNOPAGUGUBZVDQU
        HABEUBZVDADEGHIBLONQSTUIZUHRUJUKABDUBZVDTUHULABCUNZUDZVCBCIUODVKEGHIBCV
        CLNOAVFVJQUHZAVGVJVHUHZACEUBVJADEGHICLONQSUAUIZUHZVKBEFGHIJKCLMNOPVLVMR
        VOUPAVJUEZABVCCHUOUBVJABCEFGHIJKLMNOPQVHRVNUQUHURVKDEBCGHILNOVLVMVOVPVP
        ADIUSUBVJSUHAVIVJTUHACDUBVJUAUHUTVAVB $.
    $}

    ${
      mirln2.m $e |- M = ( S ` A ) $.
      mirln2.d $e |- ( ph -> D e. ran L ) $.
      mirln2.a $e |- ( ph -> A e. P ) $.
      mirln2.1 $e |- ( ph -> B e. D ) $.
      mirln2.2 $e |- ( ph -> ( M ` B ) e. D ) $.
      $( If a point and its mirror point are both on the same line, so is the
         center of the point inversion.  (Contributed by Thierry Arnoux,
         3-Mar-2020.) $)
      mirln2 $p |- ( ph -> A e. D ) $=
        ( wcel cfv wceq wa tglnpt mirinv biimpa adantr eqeltrd wne cstrkg simpr
        co mirbtwn btwnlng1 crn tglinethru eleqtrrd pm2.61dane ) ABDUCCJUDZCAVB
        CUEZUFBCDAVCBCUEABCEFGHIJKLMNOPQTRADEGHICLONQSUAUGZUHUIACDUCZVCUAUJUKAV
        BCULZUFZBVBCIUODVGEGHIVBCBLNOAGUMUCVFQUJZAVBEUCVFADEGHIVBLONQSUBUGUJZAC
        EUCVFVDUJZABEUCVFTUJZAVFUNZVGBCEFGHIJKLMNOPVHVKRVJUPUQVGDEVBCGHILNOVHVI
        VJVLVLADIURUCVFSUJAVBDUCVFUBUJAVEVFUAUJUSUTVA $.
    $}

    ${
      mirconn.m $e |- M = ( S ` A ) $.
      mirconn.a $e |- ( ph -> A e. P ) $.
      mirconn.x $e |- ( ph -> X e. P ) $.
      mirconn.y $e |- ( ph -> Y e. P ) $.
      mirconn.1 $e |- ( ph -> ( X e. ( A I Y ) \/ Y e. ( A I X ) ) ) $.
      $( Point inversion of connectedness.  (Contributed by Thierry Arnoux,
         2-Mar-2020.) $)
      mirconn $p |- ( ph -> A e. ( X I ( M ` Y ) ) ) $=
        ( co wcel cfv wa cstrkg mircl simpr mirbtwn tgbtwnintr wceq tgbtwntriv2
        adantr fveq2d mircinv eqtrd oveq2d eleqtrrd adantlr wne ad2antrr simplr
        tgbtwncom tgbtwnouttr2 pm2.61dane mpjaodan ) AJBKFUCUDZBJKHUEZFUCZUDZKB
        JFUCUDZAVHUFJBVIKCEFILMNAEUGUDZVHQUNAJCUDZVHTUNABCUDZVHSUNAVICUDZVHABCD
        EFGHIKLMNOPQSRUAUHZUNAKCUDZVHUAUNAVHUIABVIKFUCUDVHABKCDEFGHILMNOPQSRUAU
        JZUNUKAVLUFZVKKBAKBULZVKVLAWAUFZBJBFUCZVJABWCUDWAAJBCEFILMNQTSUMUNWBVIB
        JFWBVIBHUEZBWBKBHAWAUIUOAWDBULWAABCDEFGHILMNOPQSRUPUNUQURUSUTVTKBVAZUFZ
        JKBVICEFILMNAVMVLWEQVBZAVNVLWETVBZAVRVLWEUAVBZAVOVLWESVBZAVPVLWEVQVBVTW
        EUIWFBKJCEFILMNWGWJWIWHAVLWEVCVDABKVIFUCUDVLWEAVIBKCEFILMNQVQSUAVSVDVBV
        EVFUBVG $.
    $}

    ${
      mirhl.m $e |- M = ( S ` A ) $.
      mirhl.k $e |- K = ( hlG ` G ) $.
      mirhl.a $e |- ( ph -> A e. P ) $.
      mirhl.x $e |- ( ph -> X e. P ) $.
      mirhl.y $e |- ( ph -> Y e. P ) $.
      mirhl.z $e |- ( ph -> Z e. P ) $.
      ${
        mirhl.1 $e |- ( ph -> X ( K ` Z ) Y ) $.
        $( If two points ` X ` and ` Y ` are on the same half-line from ` Z ` ,
           the same applies to the mirror points.  (Contributed by Thierry
           Arnoux, 21-Feb-2020.) $)
        mirhl $p |- ( ph -> ( M ` X ) ( K ` ( M ` Z ) ) ( M ` Y ) ) $=
          ( cfv wbr wne co wcel wo w3a wa cstrkg adantr simpr mireq ishlg mpbid
          wceq simp1d neneqd pm2.65da neqned simp2d simp3d mirbtwni orim12d mpd
          ex 3jca mircl mpbird ) AKIUGZLIUGZMIUGZGUGUHVOVQUIZVPVQUIZVOVQVPFUJUK
          ZVPVQVOFUJUKZULZUMAVRVSWBAVOVQAVOVQVAZKMVAAWCUNZBKMCDEFHIJNOPQRAEUOUK
          ZWCSUPABCUKZWCUBUPTAKCUKZWCUCUPAMCUKZWCUEUPAWCUQURWDKMAKMUIZWCAWILMUI
          ZKMLFUJUKZLMKFUJUKZULZAKLMGUGUHWIWJWMUMUFAKLMCEFGUONPUAUCUDUESUSUTZVB
          UPVCVDVEAVPVQAVPVQVAZLMVAAWOUNZBLMCDEFHIJNOPQRAWEWOSUPAWFWOUBUPTALCUK
          ZWOUDUPAWHWOUEUPAWOUQURWPLMAWJWOAWIWJWMWNVFUPVCVDVEAWMWBAWIWJWMWNVGAW
          KVTWLWAAWKVTAWKUNBCDEFHIJMKLNOPQRAWEWKSUPAWFWKUBUPTAWHWKUEUPAWGWKUCUP
          AWQWKUDUPAWKUQVHVKAWLWAAWLUNBCDEFHIJMLKNOPQRAWEWLSUPAWFWLUBUPTAWHWLUE
          UPAWQWLUDUPAWGWLUCUPAWLUQVHVKVIVJVLAVOVPVQCEFGUONPUAABCDEFHIJKNOPQRSU
          BTUCVMABCDEFHIJLNOPQRSUBTUDVMABCDEFHIJMNOPQRSUBTUEVMSUSVN $.
      $}

      ${
        mirbtwnhl.1 $e |- ( ph -> X =/= A ) $.
        mirbtwnhl.2 $e |- ( ph -> Y =/= A ) $.
        mirbtwnhl.3 $e |- ( ph -> A e. ( X I Y ) ) $.
        $( If the center of the point inversion ` A ` is between two points
           ` X ` and ` Y ` , then the half lines are mirrored.  (Contributed by
           Thierry Arnoux, 3-Mar-2020.) $)
        mirbtwnhl $p |- ( ph -> ( Z ( K ` A ) X <-> ( M ` Z ) ( K ` A ) Y ) )
          $=
          ( cfv wb wceq wa wn hleqnid adantr simpr breq1d mtbird fveq2d mircinv
          wbr eqtrd 2falsed wne co wo w3a simplr neneqd cstrkg ad3antrrr eqtr4d
          wcel mireq mtand neqned mircl ishlg biimpa simp3d mirconn tgbtwnconn2
          ad2antrr orcomd mpbird tgbtwncom eqeltrd mirbtwnb impbida pm2.61dane
          3jca ) AMKBGUIZVAZMIUIZLWLVAZUJMBAMBUKZULZWMWOWQWMBKWLVAZAWRUMWPABKBC
          EFGNPUAUBUCUBSUNUOWQMBKWLAWPUPZUQURWQWOBLWLVAZAWTUMWPABLBCEFGNPUAUBUD
          UBSUNUOWQWNBLWLWQWNBIUIZBWQMBIWSUSAXABUKZWPABCDEFHIJNOPQRSUBTUTZUOVBU
          QURVCAMBVDZULZWMWOXEWMULZWOWNBVDZLBVDZWNBLFVEVMLBWNFVEVMVFZVGZXFXGXHX
          IXFWNBXFWNBUKZWPXFMBAXDWMVHVIXFXKULZBMBCDEFHIJNOPQRAEVJVMZXDWMXKSVKAB
          CVMZXDWMXKUBVKZTAMCVMZXDWMXKUEVKXOXLWNBXAXFXKUPAXBXDWMXKXCVKVLVNVOVPA
          XHXDWMUGWCXFKBWNLCEFNPAXMXDWMSWCZAKCVMZXDWMUCWCZAXNXDWMUBWCZAWNCVMZXD
          WMABCDEFHIJMNOPQRSUBTUEVQZWCALCVMZXDWMUDWCAKBVDZXDWMUFWCXFBCDEFHIJKMN
          OPQRXQTXTXSAXPXDWMUEWCXFMBKFVEVMZKBMFVEVMZXFXDYDYEYFVFZXEWMXDYDYGVGZA
          WMYHUJZXDAMKBCEFGVJNPUAUEUCUBSVRUOZVSVTWDWAABKLFVEVMXDWMUHWCWBWKXEWOX
          JUJZWMAYKXDAWNLBCEFGVJNPUAYBUDUBSVRUOZUOWEXEWOULZWMYHYMXDYDYGAXDWOVHA
          YDXDWOUFWCYMLBMKCEFNPAXMXDWOSWCZAYCXDWOUDWCZAXNXDWOUBWCZAXPXDWOUEWCZA
          XRXDWOUCWCAXHXDWOUGWCYMBLMFVEVMXALIUIZWNFVEZVMYMXABYSAXBXDWOXCWCYMWNB
          YRCEFJNOPYNAYAXDWOYBWCZYPYMBCDEFHIJLNOPQRYNYPTYOVQYMBCDEFHIJWNLNOPQRY
          NTYPYTYOYMXGXHXIXEWOXJYLVSVTWAWFWGYMBCDEFHIJLBMNOPQRYNYPTYOYPYQWHWEAB
          LKFVEVMXDWOAKBLCEFJNOPSUCUBUDUHWFWCWBWKXEYIWOYJUOWEWIWJ $.
      $}

      ${
        mirhl2.1 $e |- ( ph -> X =/= A ) $.
        mirhl2.2 $e |- ( ph -> Y =/= A ) $.
        mirhl2.3 $e |- ( ph -> A e. ( X I ( M ` Y ) ) ) $.
        $( Deduce half-line relation from mirror point.  (Contributed by
           Thierry Arnoux, 8-Aug-2020.) $)
        mirhl2 $p |- ( ph -> X ( K ` A ) Y ) $=
          ( cfv wbr wne co wcel wo w3a mircl wceq wa cstrkg adantr simpr eqtr4d
          mircinv mireq ex necon3d mpd tgbtwncom mirbtwn tgbtwnconn2 3jca ishlg
          mpbird ) AKLBGUIUJKBUKZLBUKZKBLFULUMLBKFULUMUNZUOAVNVOVPUFUGALIUIZBKL
          CEFNPSABCDEFHIJLNOPQRSUBTUDUPZUBUCUDAVOVQBUKUGAVQBLBAVQBUQZLBUQAVSURZ
          BLBCDEFHIJNOPQRAEUSUMVSSUTZABCUMVSUBUTZTALCUMVSUDUTWBVTVQBBIUIAVSVAVT
          BCDEFHIJNOPQRWAWBTVCVBVDVEVFVGAKBVQCEFJNOPSUCUBVRUHVHABLCDEFHIJNOPQRS
          UBTUDVIVJVKAKLBCEFGUSNPUAUCUDUBSVLVM $.
      $}
    $}

    ${
      mirtrcgr.e $e |- .~ = ( cgrG ` G ) $.
      mirtrcgr.m $e |- M = ( S ` B ) $.
      mirtrcgr.n $e |- N = ( S ` Y ) $.
      mirtrcgr.a $e |- ( ph -> A e. P ) $.
      mirtrcgr.b $e |- ( ph -> B e. P ) $.
      mirtrcgr.x $e |- ( ph -> X e. P ) $.
      mirtrcgr.y $e |- ( ph -> Y e. P ) $.
      ${
        mircgrextend.1 $e |- ( ph -> ( A .- B ) = ( X .- Y ) ) $.
        $( Link congruence over a pair of mirror points. cf ~ tgcgrextend .
           (Contributed by Thierry Arnoux, 4-Oct-2020.) $)
        mircgrextend $p |- ( ph -> ( A .- ( M ` A ) ) = ( X .- ( N ` X ) ) ) $=
          ( cfv mircl mirbtwn tgbtwncom tgcgrcomlr mircgr 3eqtr4d tgcgrextend
          co ) ABCBJUIZMDNMLUIZGHKOPQTUDUEACDFGHIJKBOPQRSTUEUBUDUJZUFUGANDFGHIL
          KMOPQRSTUGUCUFUJZAURCBDGHKOPQTUTUEUDACBDFGHIJKOPQRSTUEUBUDUKULAUSNMDG
          HKOPQTVAUGUFANMDFGHILKOPQRSTUGUCUFUKULUHACBKUQNMKUQCURKUQNUSKUQABCMND
          GHKOPQTUDUEUFUGUHUMACBDFGHIJKOPQRSTUEUBUDUNANMDFGHILKOPQRSTUGUCUFUNUO
          UP $.
      $}

      mirtrcgr.c $e |- ( ph -> C e. P ) $.
      mirtrcgr.z $e |- ( ph -> Z e. P ) $.
      mirtrcgr.1 $e |- ( ph -> A =/= B ) $.
      mirtrcgr.2 $e |- ( ph -> <" A B C "> .~ <" X Y Z "> ) $.
      $( Point inversion of one point of a triangle around another point
         preserves triangle congruence.  (Contributed by Thierry Arnoux,
         4-Oct-2020.) $)
      mirtrcgr $p |- ( ph -> <" ( M ` A ) B C "> .~ <" ( N ` X ) Y Z "> ) $=
        ( cfv mircl co cgr3simp1 tgcgrcomlr 3eqtr4d cgr3simp2 mirbtwn btwncolg1
        mircgr colcom mircgrextend trgcgr cgr3simp3 tgfscgr ) ABKUNZCDNMUNZEFOP
        HLQRUCUBACEGHIJKLBQRSTUAUBUGUDUFUOZUGUJAOEGHIJMLNQRSTUAUBUIUEUHUOZUIUKA
        CVIOVJEHILQRSUBUGVKUIVLACBLUPONLUPCVILUPOVJLUPABCNOEHILQRSUBUFUGUHUIABC
        DNEFOPHILQRSUCUBUFUGUJUHUIUKUMUQZURACBEGHIJKLQRSTUAUBUGUDUFVCAONEGHIJML
        QRSTUAUBUIUEUHVCUSZURABCDNEFOPHILQRSUCUBUFUGUJUHUIUKUMUTZAVIDVJPEHILQRS
        UBVKUJVLUKANOVJPEFDHIJLBCVIQTSUBUFUGVKUCUHUIRUJVLUKAEHIJVIBCQTSUBVKUFUG
        AEHIJVIBCQTSUBVKUFUGACBEGHIJKLQRSTUAUBUGUDUFVAVBVDABCVINEFOVJHLQRUCUBUF
        UGVKUHUIVLVMVNABVINVJEHILQRSUBUFVKUHVLABCEFGHIJKLMNOQRSTUAUBUCUDUEUFUGU
        HUIVMVEURVFADBPNEHILQRSUBUJUFUKUHABCDNEFOPHILQRSUCUBUFUGUJUHUIUKUMVGURV
        OULVHURVF $.
    $}

    ${
      mirauto.m $e |- M = ( S ` T ) $.
      mirauto.x $e |- X = ( M ` A ) $.
      mirauto.y $e |- Y = ( M ` B ) $.
      mirauto.z $e |- Z = ( M ` C ) $.
      mirauto.0 $e |- ( ph -> T e. P ) $.
      mirauto.1 $e |- ( ph -> A e. P ) $.
      mirauto.2 $e |- ( ph -> B e. P ) $.
      mirauto.3 $e |- ( ph -> C e. P ) $.
      mirauto.4 $e |- ( ph -> ( ( S ` A ) ` B ) = C ) $.
      $( Point inversion preserves point inversion.  (Contributed by Thierry
         Arnoux, 30-Jul-2019.) $)
      mirauto $p |- ( ph -> ( ( S ` X ) ` Y ) = Z ) $=
        ( cfv mirf ffvelrnd syl5eqel eqid co eqeltrd mircgr mircgrs wceq fveq2d
        syl6reqr oveq12d oveq12i 3eqtr4d mirbtwn eleqtrd mirbtwni 3eltr4g ismir
        a1i oveq1d eqcomd ) AONMFUKZUKAMNOEFHIJVNLPQRSTUAAMBKUKZEUCAEEBKAGEFHIJ
        KLPQRSTUAUFUBULZUGUMUNVNUOANCKUKZEUDAEECKVPUHUMUNAODKUKZEUEAEEDKVPUIUMU
        NAVOCBFUKZUKZKUKZLUPVOVQLUPZMOLUPMNLUPZAGEFCHIJKLBVTBPQRSTUAUFUBUGAVTDE
        UJUIUQUGUHABCEFHIJVSLPQRSTUAUGVSUOZUHURUSAMVOOWALMVOUTAUCVKAWAVROAVTDKU
        JVAUEVBVCWCWBUTAMVONVQLUCUDVDVKVEAVOVRVQIUPMONIUPAGEFHIJKLDBCPQRSTUAUFU
        BUIUGUHABVTCIUPDCIUPABCEFHIJVSLPQRSTUAUGWDUHVFAVTDCIUJVLVGVHUCOVRNVQIUE
        UDVDVIVJVM $.
    $}

    ${
      miduniq.a $e |- ( ph -> A e. P ) $.
      miduniq.b $e |- ( ph -> B e. P ) $.
      miduniq.x $e |- ( ph -> X e. P ) $.
      miduniq.y $e |- ( ph -> Y e. P ) $.
      miduniq.e $e |- ( ph -> ( ( S ` A ) ` X ) = Y ) $.
      miduniq.f $e |- ( ph -> ( ( S ` B ) ` X ) = Y ) $.
      $( Unicity of the middle point, expressed with point inversion.  Theorem
         7.17 of [Schwabhauser] p. 51.  (Contributed by Thierry Arnoux,
         30-Jul-2019.) $)
      miduniq $p |- ( ph -> A = B ) $=
        ( cfv wceq ccgrg eqid co mirbtwn oveq1d eleqtrd tgbtwncom miriso mircom
        mircl mircgr oveq2d eqtr3d eqcomd tgcgrcomlr 3eqtr3rd tgidinside mirinv
        mpbid ) ACBEUDZUDZCUEBCUEACVFAVFBDFUFUDZFGHIJKCLONQTUASVGUGABDEFGHVEICL
        MNOPQRVEUGZSUORMAKCJDFGILMNQUASTACJCEUDZUDZJGUHKJGUHACJDEFGHVIILMNOPQSV
        IUGZTUIAVJKJGUCUJUKULAKVEUDZVFIUHKCIUHZJVFIUHJCIUHZABDEFGHVEIKCLMNOPQRV
        HUASUMAVLJVFIABJKDEFGHVEILMNOPQRVHTUBUNUJACKCJDFGILMNQSUASTACJIUHZCKIUH
        ZACVJIUHVOVPACJDEFGHVIILMNOPQSVKTUPAVJKCIUCUQURZUSUTVAAJVEUDZVFIUHVNKVF
        IUHVMABDEFGHVEIJCLMNOPQRVHTSUMAVRKVFIUBUJACJCKDFGILMNQSTSUAVQUTVAVBUSAB
        CDEFGHVEILMNOPQRVHSVCVD $.
    $}

    ${
      miduniq1.a $e |- ( ph -> A e. P ) $.
      miduniq1.b $e |- ( ph -> B e. P ) $.
      miduniq1.x $e |- ( ph -> X e. P ) $.
      miduniq1.e $e |- ( ph -> ( ( S ` A ) ` X ) = ( ( S ` B ) ` X ) ) $.
      $( Unicity of the middle point, expressed with point inversion.  Theorem
         7.18 of [Schwabhauser] p. 52.  (Contributed by Thierry Arnoux,
         30-Jul-2019.) $)
      miduniq1 $p |- ( ph -> A = B ) $=
        ( cfv eqid mircl eqidd eqcomd miduniq ) ABCDEFGHIJJBEUAZUAZKLMNOPQRSABD
        EFGHUGIJKLMNOPQUGUBSUCAUHUDAUHJCEUAUATUEUF $.
    $}

    ${
      miduniq2.a $e |- ( ph -> A e. P ) $.
      miduniq2.b $e |- ( ph -> B e. P ) $.
      miduniq2.x $e |- ( ph -> X e. P ) $.
      miduniq2.e $e |- ( ph -> ( ( S ` A ) ` ( ( S ` B ) ` X ) )
                                       = ( ( S ` B ) ` ( ( S ` A ) ` X ) ) ) $.
      $( If two point inversions commute, they are identical.  Theorem 7.19 of
         [Schwabhauser] p. 52.  (Contributed by Thierry Arnoux,
         30-Jul-2019.) $)
      miduniq2 $p |- ( ph -> A = B ) $=
        ( wceq eqid mirf ffvelrnd mirauto mirmir fveq2d 3eqtr3d miduniq1 mirinv
        cfv mircl mpbid eqcomd ) ACBABCEUKZUKZBUACBUAAUPBDEFGHIJKLMNOPADDBUOACD
        EFGHUOIKLMNOPRUOUBZUCZQUDQSAJUOUKZUOUKZUPEUKZUKJBEUKZUKZUOUKZUOUKZJVAUK
        VCABUSVDDECFGHUOIUPUTVEKLMNOPUQUPUBUTUBVEUBRQADDJUOURSUDADDVCUOURABDEFG
        HVBIJKLMNOPQVBUBSULZUDTUEAUTJVAACJDEFGHUOIKLMNOPRUQSUFUGACVCDEFGHUOIKLM
        NOPRUQVFUFUHUIACBDEFGHUOIKLMNOPRUQQUJUMUN $.
    $}

    ${
      colmid.m $e |- M = ( S ` X ) $.
      colmid.a $e |- ( ph -> A e. P ) $.
      colmid.b $e |- ( ph -> B e. P ) $.
      colmid.x $e |- ( ph -> X e. P ) $.
      colmid.c $e |- ( ph -> ( X e. ( A L B ) \/ A = B ) ) $.
      colmid.d $e |- ( ph -> ( X .- A ) = ( X .- B ) ) $.
      $( Colinearity and equidistance implies midpoint.  Theorem 7.20 of
         [Schwabhauser] p. 52.  (Contributed by Thierry Arnoux,
         30-Jul-2019.) $)
      colmid $p |- ( ph -> ( B = ( M ` A ) \/ A = B ) ) $=
        ( cfv wceq wo wa simpr olcd wne co wcel cstrkg ad2antrr tgbtwncom ismir
        eqcomd orcd tgbtwntriv1 tgcgrcomlr eqidd tgcgrsub axtgcgrid adantlr w3o
        adantr df-ne orcomd orcanai sylan2b tgellng mpbid mpjao3dan pm2.61dane
        wn ) ACBIUDUEZBCUEZUFZBCAVQUGVQVPAVQUHUIABCUJZUGZKBCGUKULZVRBKCGUKULZCB
        KGUKULZVTWAUGZVPVQWDKBCDEFGHIJLMNOPAFUMULZVSWAQUNZAKDULZVSWAUAUNZRABDUL
        ZVSWASUNZACDULZVSWATUNZWDKBJUKZKCJUKZAWMWNUEVSWAUCUNUQWDBKCDFGJLMNWFWJW
        HWLVTWAUHUOUPURVTWBUGVQVPAWBVQVSAWBUGZCBWODFGJCBBLMNAWEWBQVFZAWKWBTVFZA
        WIWBSVFZWRWOCBKBDBKFGJLMNWPWQWRAWGWBUAVFZWRWRWSWOKBCDFGJLMNWPWSWRWQAWBU
        HUOWOBKDFGJLMNWPWRWSUSWOBKJUKZCKJUKZAWTXAUEZWBAKBKCDFGJLMNQUASUATUCUTZV
        FUQWOWTVAVBVCUQVDUIVTWCUGVQVPAWCVQVSAWCUGZDFGJBCCLMNAWEWCQVFZAWIWCSVFZA
        WKWCTVFZXGXDBCKCDCKFGJLMNXEXFXGAWGWCUAVFZXGXGXHAWCUHXDCKDFGJLMNXEXGXHUS
        AXBWCXCVFXDXAVAVBVCVDUIVTKBCHUKULZWAWBWCVEVSAVQVOXIBCVGAVQXIAXIVQUBVHVI
        VJVTDFGHBCKLONAWEVSQVFAWIVSSVFAWKVSTVFAVSUHAWGVSUAVFVKVLVMVN $.
    $}

    ${
      $d x .- $.  $d x A $.  $d x B $.  $d x C $.  $d x D $.  $d x G $.
      $d x I $.  $d x M $.  $d x P $.  $d x X $.  $d x ph $.
      symquadlem.m $e |- M = ( S ` X ) $.
      symquadlem.a $e |- ( ph -> A e. P ) $.
      symquadlem.b $e |- ( ph -> B e. P ) $.
      symquadlem.c $e |- ( ph -> C e. P ) $.
      symquadlem.d $e |- ( ph -> D e. P ) $.
      symquadlem.x $e |- ( ph -> X e. P ) $.
      symquadlem.1 $e |- ( ph -> -. ( A e. ( B L C ) \/ B = C ) ) $.
      symquadlem.2 $e |- ( ph -> B =/= D ) $.
      symquadlem.3 $e |- ( ph -> ( A .- B ) = ( C .- D ) ) $.
      symquadlem.4 $e |- ( ph -> ( B .- C ) = ( D .- A ) ) $.
      symquadlem.5 $e |- ( ph -> ( X e. ( A L C ) \/ A = C ) ) $.
      symquadlem.6 $e |- ( ph -> ( X e. ( B L D ) \/ B = D ) ) $.
      $( Lemma of the symetrial quadrilateral.  The diagonals of quadrilaterals
         with congruent opposing sides intersect at their middle point.  In
         Euclidean geometry, such quadrilaterals are called parallelograms, as
         opposing sides are parallel.  However, this is not necessarily true in
         the case of absolute geometry.  Lemma 7.21 of [Schwabhauser] p. 52.
         (Contributed by Thierry Arnoux, 6-Aug-2019.) $)
      symquadlem $p |- ( ph -> A = ( M ` C ) ) $=
        ( vx cs3 cv ccgrg cfv wbr wceq wcel wa wne tgbtwntriv2 btwncolg1 adantr
        wn co wo simpr oveq2d eleq2d eqeq2d orbi12d mpbid mtand neqned ad2antrr
        necomd neneqd cstrkg colcom eqid colrot2 tgcgrcomlr tgfscgr ncolcom ord
        simplr eqcomd orcomd axtgcgrrflx trgcgr lnxfr tglineinteq oveq1d eqtr4d
        mpd cgr3swap23 colmid lnext r19.29a ) ACEMUMECULUNZUMHUOUPZUQZBDKUPURZU
        LFAXAFUSZUTZXCUTZDBURZVEXDXGDBXGBDABDVAXEXCABDABDURZBCDJVFZUSZCDURZVGZU
        FAXIUTZBCBJVFZUSZCBURZVGZXMAXRXIAFHIJCBBNQPSUBUAUAACBFHILNOPSUBUAVBVCVD
        XNXPXKXQXLXNXOXJBXNBDCJAXIVHZVIVJXNBDCXSVKVLVMVNZVOVPVQVRXGXHXDXGXDXHXG
        DBFGHIJKLMNOPQRAHVSUSXEXCSVPZTADFUSXEXCUCVPZABFUSXEXCUAVPZAMFUSXEXCUEVP
        ZXGFHIJBDMNQPYAYCYBYDAMBDJVFZUSZXIVGXEXCUJVPZVTXGMDLVFXABLVFMBLVFXGECXA
        BFXBDHIJLCEMNQPYAACFUSXEXCUBVPZAEFUSXEXCUDVPZYDXBWAZYIYHOYBAXEXCWGZYCAE
        CMJVFUSCMURVGXEXCAFHIJMCENQPSUEUBUDAFHIJCEMNQPSUBUDUEUKWBVTZVPZXFXCVHZA
        CDLVFZEBLVFZURXEXCUIVPZXGCBLVFZEDLVFZAYRYSURXEXCABCDEFHILNOPSUAUBUCUDUH
        WCVPZWHACEVAXEXCUGVPZWDZXGMXABLXGBDCEFHIJMXANPQYAYCYBYHYIABDCJVFUSDCURV
        GVEXEXCAFHIJCDBNQPSUBUCUAUFWEVPAYFXEXCAXIVEZYFXTAXIYFAYFXIUJWIWFWPVPXGU
        UCXAYEUSZAUUCXEXCXTVPXGXIUUDXGUUDXIXGFHIJDBXANQPYAYBYCYKXGDXABFXBHIJBMD
        NQPYAYCYDYBYJYBYKYCYGXGBMDDFXBXABHLNOYJYAYCYDYBYBYKYCXGMBXADFHILNOPYAYD
        YCYKYBXGECXADFXBBHIJLCEMNQPYAYHYIYDYJYIYHOYCYKYBYMYNYTXGYOYPYQWHUUAWDWC
        UUBXGFHILDBNOPYAYBYCWJWKWLVTWIWFWPAMCEJVFZUSZXEXCACEURZVEZUUFACEUGVRZAU
        UGUUFAUUFUUGUKWIWFWPVPXGUUHXAUUEUSZAUUHXEXCUUIVPXGUUGUUJXGUUJUUGXGFHIJE
        CXANQPYAYIYHYKXGEXACFXBHIJCMENQPYAYHYDYIYJYIYKYHAUUFUUGVGXEXCUKVPXGCEME
        FXBCXAHILNOPYJYAYHYIYDYIYHYKYNWQWLVTWIWFWPWMWNWOWRWIWFWPAECFXBHIJLCEMUL
        NQPSUBUDUEYJUDUBOYLAFHILCENOPSUBUDWJWSWT $.
    $}

    ${
      krippen.m $e |- M = ( S ` X ) $.
      krippen.n $e |- N = ( S ` Y ) $.
      krippen.a $e |- ( ph -> A e. P ) $.
      krippen.b $e |- ( ph -> B e. P ) $.
      krippen.c $e |- ( ph -> C e. P ) $.
      krippen.e $e |- ( ph -> E e. P ) $.
      krippen.f $e |- ( ph -> F e. P ) $.
      krippen.x $e |- ( ph -> X e. P ) $.
      krippen.y $e |- ( ph -> Y e. P ) $.
      krippen.1 $e |- ( ph -> C e. ( A I E ) ) $.
      krippen.2 $e |- ( ph -> C e. ( B I F ) ) $.
      krippen.3 $e |- ( ph -> ( C .- A ) = ( C .- B ) ) $.
      krippen.4 $e |- ( ph -> ( C .- E ) = ( C .- F ) ) $.
      krippen.5 $e |- ( ph -> B = ( M ` A ) ) $.
      krippen.6 $e |- ( ph -> F = ( N ` E ) ) $.
      ${
        $d .- q $.  $d A q $.  $d B q $.  $d C q $.  $d E q $.  $d F q $.
        $d I q $.  $d P q $.  $d S q $.  $d X q $.  $d Y q $.  $d ph q $.
        krippen.l $e |- .<_ = ( leG ` G ) $.
        krippen.7 $e |- ( ph -> ( C .- A ) .<_ ( C .- E ) ) $.
        $( Lemma for ~ krippen .  We can assume krippen.7 "without loss of
           generality" (Contributed by Thierry Arnoux, 12-Aug-2019.) $)
        krippenlem $p |- ( ph -> C e. ( X I Y ) ) $=
          ( vq co wcel wceq wa adantr cfv cstrkg wbr simpr oveq2d breqtrd legeq
          tgcgreq 3eqtr3rd mirinv eqtr3d axtgcgrid 3eqtrrd oveq12d eleqtrrd wne
          mpbid ad2antrr eqid mirf ffvelrnd simplr simprl ad3antrrr tgbtwnexch3
          cv mirbtwn tgbtwntriv1 eleqtrd tgbtwncom tgbtwnconn2 breqtrrd legbtwn
          oveq1d mircgr pm2.61dane eqtrd eqcomd adantlr neneqd pm2.65da 3brtr3d
          neqned 3eqtr4d tgcgrcomlr syl6req mirauto tgifscgr axtgbtwnid 3eqtr3d
          fveq1i eqidd ccgrg btwncolg3 lncgr ismir miduniq mirbtwni tgtrisegint
          simprr r19.29a ) ADPQJVBZVCZGDAGDVDZVEZDBGJVBZYHADYLVCYJUMVFYKPBQGJYK
          BMVGZBVDPBVDYKDCBYMYKDBDCEIJNRSTAIVHVCZYJUCVFZADEVCZYJUHVFZABEVCZYJUF
          VFZYQACEVCZYJUGVFZADBNVBZDCNVBZVDZYJUOVFYKDBDCEIJLNRSTUSYOYQYSYQUUAYK
          UUBDGNVBZDDNVBZLAUUBUUELVIZYJUTVFYKGDDNAYJVJZVKZVLVMZVNUUJACYMVDZYJUQ
          VFVOYKPBEFIJKMNRSTUAUBYOAPEVCZYJUKVFUDYSVPWCYKGOVGZGVDQGVDYKGDHUUMUUH
          YKEIJNDHDRSTYOYQAHEVCZYJUJVFYQYKUUEDHNVBZUUFAUUEUUOVDZYJUPVFUUIVQVRAH
          UUMVDZYJURVFVSYKQGEFIJKONRSTUAUBYOAQEVCZYJULVFUEAGEVCZYJUIVFVPWCVTWAA
          GDWBZVEZVAWLZQDFVGZVGZDJVBZVCZUVBBCJVBVCZVEZYIVAEUVAUVBEVCZVEZUVHVEZD
          UVBQJVBYHUVKUVDUVBDQEIJNRSTUVAYNUVIUVHAYNUUTUCVFZWDZUVAUVDEVCZUVIUVHU
          VAEEQUVCUVADEFIJKUVCNRSTUAUBUVLAYPUUTUHVFZUVCWEZWFZAUURUUTULVFZWGZWDZ
          UVAUVIUVHWHZUVAYPUVIUVHUVOWDUVAUURUVIUVHUVRWDUVJUVFUVGWIZADUVDQJVBVCU
          UTUVIUVHADQEFIJKUVCNRSTUAUBUCUHUVPULWMWJWKUVKUVBPQJUVKUVBPEFIJKNBCRST
          UAUBUVMUWAAUULUUTUVIUVHUKWJUVAYRUVIUVHAYRUUTUFVFZWDZUVAYTUVIUVHAYTUUT
          UGVFZWDZUVKCBUVBFVGZVGUVKUVBBCEFIJKUWGNRSTUAUBUVMUWAUWGWEUWDUWFUVKUVB
          BNVBZUVBCNVBZUVKUWHUWIVDUVDDUVKUVDDVDZVEZUVDBNVBZUVDCNVBZUWHUWIUVAUWL
          UWMVDZUVIUVHUWJUVABUVDCUVDEIJNRSTUVLUWCUVSUWEUVSUVAGUVCVGZBDUVDEHUVCV
          GZCIUVDJDNRSTUVLUVAEEGUVCUVQAUUSUUTUIVFZWGZUWCUVOUVSUVAEEHUVCUVQAUUNU
          UTUJVFZWGZUWEUVOUVSUVADBUWOEIJNRSTUVLUVOUWCUWRUVABDUWOJVBZVCBDUVABDVD
          ZVEZBBUWOJVBUXAUXCBUWOEIJNRSTAYNUUTUXBUCWDAYRUUTUXBUFWDUVAUWOEVCZUXBU
          WRVFWNUXCBDUWOJUVAUXBVJWTWOUVABDWBZVEZBUWODBEIJLNRSTUSAYNUUTUXEUCWDZA
          YRUUTUXEUFWDZUVAUXDUXEUWRVFZAYPUUTUXEUHWDZUXHUXFGDBUWOEIJRTUXGAUUSUUT
          UXEUIWDZUXJUXHUXIAUUTUXEWHADGBJVBVCUUTUXEABDGEIJNRSTUCUFUHUIUMWPWDUXF
          UWODGEIJNRSTUXGUXIUXJUXKUXFDGEFIJKUVCNRSTUAUBUXGUXJUVPUXKWMWPWQUVAUUB
          DUWONVBZLVIUXEUVAUUBUUEUXLLAUUGUUTUTVFUVADGEFIJKUVCNRSTUAUBUVLUVOUVPU
          WQXAZWRVFWSXBWPZUVADCUWPEIJNRSTUVLUVOUWEUWTUVACDUWPJVBZVCCDUVACDVDZVE
          ZCCUWPJVBUXOUXQCUWPEIJNRSTAYNUUTUXPUCWDAYTUUTUXPUGWDUVAUWPEVCZUXPUWTV
          FWNUXQCDUWPJUVAUXPVJWTWOUVACDWBZVEZCUWPDCEIJLNRSTUSAYNUUTUXSUCWDZAYTU
          UTUXSUGWDZUVAUXRUXSUWTVFZAYPUUTUXSUHWDZUYBUXTHDCUWPEIJRTUYAAUUNUUTUXS
          UJWDZUYDUYBUYCUVAHDWBUXSUVAHDUVAHDVDZYJAUYFYJUUTAUYFVEZDGUYGEIJNDGDRS
          TAYNUYFUCVFAYPUYFUHVFZAUUSUYFUIVFUYHUYGUUEUUOUUFAUUPUYFUPVFUYGHDDNAUY
          FVJVKXCVRXDXEUVAUYFVEGDAUUTUYFWHXFXGXIVFADHCJVBVCUUTUXSACDHEIJNRSTUCU
          GUHUJUNWPWDUXTUWPDHEIJNRSTUYAUYCUYDUYEUXTDHEFIJKUVCNRSTUAUBUYAUYDUVPU
          YEWMWPWQUVAUUCDUWPNVBZLVIUXSUVAUUCUUOUYILAUUCUUOLVIUUTAUUBUUEUUCUUOLU
          TUOUPXHVFUVADHEFIJKUVCNRSTUAUBUVLUVOUVPUWSXAZWRVFWSXBWPZUVADUWODUWPEI
          JNRSTUVLUVOUWRUVOUWTUVAUUEUUOUXLUYIAUUPUUTUPVFUXMUYJXJXKUVADBDCEIJNRS
          TUVLUVOUWCUVOUWEAUUDUUTUOVFZXKUVAUVDUWOUVDUWPEIJNRSTUVLUVSUWRUVSUWTUV
          AUVDUWOUVDFVGZVGZNVBUVDUWONVBUVDUWPNVBUVAUVDUWOEFIJKUYMNRSTUAUBUVLUVS
          UYMWEUWRXAUVAUYNUWPUVDNUVAQGHEFDIJKUVCNUVDUWOUWPRSTUAUBUVLUVPUVDWEUWO
          WEUWPWEUVOUVRUWQUWSUVAHUUMGQFVGZVGAUUQUUTURVFZGOUYOUEXQXLXMVKVQXKUVAD
          UVDNVBXRXNXKZWJUWKUVDUVBBNUWKEIJNUVDUVBRSTUVKYNUWJUVMVFUVKUVNUWJUVTVF
          UVKUVIUWJUWAVFUWKUVBUVEUVDUVDJVBUVKUVFUWJUWBVFUWKUVDDUVDJUVKUWJVJVKWA
          XOZWTUWKUVDUVBCNUYRWTXPUVKUVDDWBZVEZBCEIXSVGZIJKNUVDDUVBRUATUVAYNUVIU
          VHUYSUVLWJZUVAUVNUVIUVHUYSUVSWJUVAYPUVIUVHUYSUVOWJZUVKUVIUYSUWAVFZVUA
          WEUVAYRUVIUVHUYSUWCWJUVAYTUVIUVHUYSUWEWJSUVKUYSVJUYTEIJKUVDUVBDRUATVU
          BUVKUVNUYSUVTVFVUDVUCUVKUVFUYSUWBVFXTUVAUWNUVIUVHUYSUYQWJUVAUUDUVIUVH
          UYSUYLWJYAXBXDUVKBUVBCEIJNRSTUVMUWDUWAUWFUVJUVFUVGYFWPYBXDUVKCYMBPFVG
          ZVGAUUKUUTUVIUVHUQWJBMVUEUDXQXLYCWTWOUVAUWOBDUWPECUVDIJNVARSTUVLUWRUW
          CUVOUWTUWEUVSUXNUYKUVADEFIJKUVCNGQHRSTUAUBUVLUVOUVPUWQUVRUWSUVAHQGEIJ
          NRSTUVLUWSUVRUWQUVAQUUMGJVBHGJVBUVAQGEFIJKONRSTUAUBUVLUVRUEUWQWMUVAHU
          UMGJUYPWTWAWPYDYEYGXB $.
      $}

      $( Krippenlemma (German for crib's lemma) Lemma 7.22 of [Schwabhauser]
         p. 53. proven by Gupta 1965 as Theorem 3.45.  (Contributed by Thierry
         Arnoux, 12-Aug-2019.) $)
      krippen $p |- ( ph -> C e. ( X I Y ) ) $=
        ( co cleg cfv wbr wcel wa cstrkg adantr wceq simpr krippenlem tgbtwncom
        eqid legtrid mpjaodan ) ADBMURZDGMURZIUSUTZVAZDOPJURVBVNVMVOVAZAVPVCBCD
        EFGHIJKVOLMNOPQRSTUAAIVDVBZVPUBVEUCUDABEVBZVPUEVEACEVBZVPUFVEADEVBZVPUG
        VEAGEVBZVPUHVEAHEVBZVPUIVEAOEVBZVPUJVEAPEVBZVPUKVEADBGJURVBZVPULVEADCHJ
        URVBZVPUMVEAVMDCMURVFZVPUNVEAVNDHMURVFZVPUOVEACBLUTVFZVPUPVEAHGNUTVFZVP
        UQVEVOVJZAVPVGVHAVQVCZPDOEIJMQRSAVRVQUBVEZAWEVQUKVEZAWAVQUGVEZAWDVQUJVE
        ZWMGHDEFBCIJKVONMLPOQRSTUAWNUDUCAWBVQUHVEZAWCVQUIVEZWPAVSVQUEVEZAVTVQUF
        VEZWOWQWMBDGEIJMQRSWNWTWPWRAWFVQULVEVIWMCDHEIJMQRSWNXAWPWSAWGVQUMVEVIAW
        IVQUOVEAWHVQUNVEAWKVQUQVEAWJVQUPVEWLAVQVGVHVIADBDGEIJVOMQRSWLUBUGUEUGUH
        VKVL $.
    $}

    ${
      $d .- p q r s x $.  $d A p q r s x $.  $d B p q r s x $.  $d M p q r $.
      $d C p q r s x $.  $d G s $.  $d I p q r s x $.  $d L p q r s x $.
      $d P p q r s x $.  $d S x $.  $d p ph q r s x $.
      midexlem.m $e |- M = ( S ` x ) $.
      midexlem.a $e |- ( ph -> A e. P ) $.
      midexlem.b $e |- ( ph -> B e. P ) $.
      midexlem.c $e |- ( ph -> C e. P ) $.
      midexlem.1 $e |- ( ph -> ( C .- A ) = ( C .- B ) ) $.
      $( Lemma for the existence of a middle point.  Lemma 7.25 of
         [Schwabhauser] p. 55.  This proof of the existence of a midpoint
         requires the existence of a third point ` C ` equidistant to ` A ` and
         ` B ` This condition will be removed later.  Because the operation
         notation ` ( A ( midG `` G ) B ) ` for a midpoint implies its
         uniqueness, it cannot be used until uniqueness is proven, and until
         then, an equivalent mirror point notation ` B = ( M `` A ) ` has to be
         used.  See ~ mideu for the existence and uniqueness of the midpoint.
         (Contributed by Thierry Arnoux, 25-Aug-2019.) $)
      midexlem $p |- ( ph -> E. x e. P B = ( M ` A ) ) $=
        ( vp vq vr vs co wcel wceq wo cfv wrex wa cv fveq2 syl5eq fveq1d eqeq2d
        rspcev sylan adantlr adantr eqid mircinv eqtr2d syl2anc cstrkg mpjaodan
        simpr colmid wn wne ad2antrr simprl ad3antrrr cs3 ccgrg simpllr ncolne1
        wbr ad7antr necomd eqnetrd simplr ad9antr ncolrot2 colcom stoic1a lncom
        btwnlng3 oveq2d eleqtrd neneqd pm2.65da neqned ncolncol ncolcom simp-4r
        axtgbtwnid simprd eqcomd tgcgrcomlr ad5antr tgcgrneq ncolne2 pm2.61dane
        simpld btwnlng1 btwncolg3 ad8antr axtgcgrrflx axtg5seg simprr cgr3simp2
        tgifscgr simp-10l colrot1 syl21anc btwncolg1 tgbtwncom cgr3simp1 trgcgr
        tgcgrextend lnxfr orcomd ord tglineinteq lncgr tgcgrxfr r19.29a simprrl
        mpd oveq1d ismir axtgpasch reximddv axtgsegcon cvv cbs fvex eqeltri a1i
        nehash2 tgbtwndiff pm2.61dan ) AECDJUHZUICDUJZUKZDCKULZUJZBFUMZAUUIUNZD
[encoded data, 5040 characters]
        KUVMECFYSFYSUIUVMFHYTULYSMHYTUUAUUBUUCUYKUXKVUEUUDUUEYKUUF $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Right angles
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c raG $.

  $( Declare the constant for the class of right angles. $)
  crag $a class raG $.

  ${
    $d w g $.
    $( Define the class of right angles.  Definition 8.1 of [Schwabhauser]
       p. 57.  See ~ israg .  (Contributed by Thierry Arnoux, 25-Aug-2019.) $)
    df-rag $a |- raG = ( g e. _V |-> { w e. Word ( Base ` g ) | ( ( # ` w ) = 3
      /\ ( ( w ` 0 ) ( dist ` g ) ( w ` 2 ) ) = ( ( w ` 0 ) ( dist ` g )
      ( ( ( pInvG ` g ) ` ( w ` 1 ) ) ` ( w ` 2 ) ) ) ) } ) $.
  $}

  $c perpG $.

  $( Declare the constant for the perpendicular relation. $)
  cperpg $a class perpG $.

  ${
    $d a b u v x g $.
    $( Define the "perpendicular" relation.  Definition 8.11 of [Schwabhauser]
       p. 59.  See ~ isperp .  (Contributed by Thierry Arnoux, 8-Sep-2019.) $)
    df-perpg $a |- perpG = ( g e. _V |-> { <. a , b >. | ( ( a e. ran ( LineG `
      g ) /\ b e. ran ( LineG ` g ) ) /\ E. x e. ( a i^i b )
      A. u e. a A. v e. b <" u x v "> e. ( raG ` g ) ) } ) $.
  $}

  ${
    $d .- g w $.  $d A w $.  $d B w $.  $d C w $.  $d G g w $.  $d P g w $.
    $d S g w $.  $d g ph w $.
    israg.p $e |- P = ( Base ` G ) $.
    israg.d $e |- .- = ( dist ` G ) $.
    israg.i $e |- I = ( Itv ` G ) $.
    israg.l $e |- L = ( LineG ` G ) $.
    israg.s $e |- S = ( pInvG ` G ) $.
    israg.g $e |- ( ph -> G e. TarskiG ) $.
    israg.a $e |- ( ph -> A e. P ) $.
    israg.b $e |- ( ph -> B e. P ) $.
    israg.c $e |- ( ph -> C e. P ) $.
    $( Property for 3 points A, B, C to form a right angle.  Definition 8.1 of
       [Schwabhauser] p. 57.  (Contributed by Thierry Arnoux, 25-Aug-2019.) $)
    israg $p |- ( ph -> ( <" A B C "> e. ( raG ` G ) <->
      ( A .- C ) = ( A .- ( ( S ` B ) ` C ) ) ) ) $=
      ( cfv vw vg cs3 cv chash c3 wceq cc0 c2 co c1 wa cword crab wcel wb s3cld
      crag fveq2 eqeq1d fveq1 oveq12d fveq2d fveq12d eqeq12d anbi12d elrab3 syl
      cds cmir cbs cvv cmpt df-rag a1i simpr syl6eqr wrdeq oveqd eqidd oveq123d
      fveq1d anbi2d rabeqbidv cstrkg elexd fvex wrdexg ax-mp rabex fvmptd s3fv0
      eqeltri eleq2d eqcomd s3fv2 s3fv1 s3len biantrurd bitrd 3bitr4d ) ABCDUCZ
      UAUDZUETZUFUGZUHXCTZUIXCTZJUJZXFXGUKXCTZFTZTZJUJZUGZULZUAEUMZUNZUOZXBUETZ
      UFUGZUHXBTZUIXBTZJUJZXTYAUKXBTZFTZTZJUJZUGZULZXBGURTZUOBDJUJZBDCFTZTZJUJZ
      UGZAXBXOUOXQYHUPABCDEQRSUQXNYHUAXBXOXCXBUGZXEXSXMYGYOXDXRUFXCXBUEUSUTYOXH
      YBXLYFYOXFXTXGYAJUHXCXBVAZUIXCXBVAZVBYOXFXTXKYEJYPYOXGYAXJYDYOXIYCFUKXCXB
      VAVCYQVDVBVEVFVGVHAYIXPXBAUBGXEXFXGUBUDZVITZUJZXFXGXIYRVJTZTZTZYSUJZUGZUL
      ZUAYRVKTZUMZUNZXPVLURVLURUBVLUUIVMUGAUAUBVNVOAYRGUGZULZUUFXNUAUUHXOUUKUUG
      EUGUUHXOUGUUKUUGGVKTZEUUKYRGVKAUUJVPZVCKVQUUGEVRVHUUKUUEXMXEUUKYTXHUUDXLU
      UKYSJXFXGUUKYSGVITJUUKYRGVIUUMVCLVQZVSUUKXFXFUUCXKYSJUUNUUKXFVTUUKXGUUBXJ
      UUKXIUUAFUUKUUAGVJTFUUKYRGVJUUMVCOVQWBWBWAVEWCWDAGWEPWFXPVLUOAXNUAXOEVLUO
      XOVLUOEUULVLKGVKWGWMEVLWHWIWJVOWKWNAYNYGYHAYJYBYMYFABXTDYAJAXTBABEUOXTBUG
      QBCDEWLVHWOZAYADADEUOYADUGSBCDEWPVHWOZVBABXTYLYEJUUOADYAYKYDACYCFAYCCACEU
      OYCCUGRBCDEWQVHWOVCUUPVDVBVEAXSYGXSABCDWRVOWSWTXA $.

    ${
      ragcom.1 $e |- ( ph -> <" A B C "> e. ( raG ` G ) ) $.
      $( Commutative rule for right angles.  Theorem 8.2 of [Schwabhauser]
         p. 57.  (Contributed by Thierry Arnoux, 25-Aug-2019.) $)
      ragcom $p |- ( ph -> <" C B A "> e. ( raG ` G ) ) $=
        ( cs3 crag wcel co wceq eqid mircl israg mpbid tgcgrcomlr miriso mirmir
        cfv oveq1d 3eqtr2d mpbird ) ADCBUAGUBUMZUCDBJUDZDBCFUMZUMZJUDZUEAURDUSU
        MZBJUDVBUSUMZUTJUDVAABDBVBEGHJKLMPQSQACEFGHIUSJDKLMNOPRUSUFZSUGZABCDUAU
        QUCBDJUDBVBJUDUETABCDEFGHIJKLMNOPQRSUHUIUJACEFGHIUSJVBBKLMNOPRVDVEQUKAV
        CDUTJACDEFGHIUSJKLMNOPRVDSULUNUOADCBEFGHIJKLMNOPSRQUHUP $.
    $}

    ${
      ragcol.d $e |- ( ph -> D e. P ) $.
      ragcol.1 $e |- ( ph -> <" A B C "> e. ( raG ` G ) ) $.
      ragcol.2 $e |- ( ph -> A =/= B ) $.
      ragcol.3 $e |- ( ph -> ( A e. ( B L D ) \/ B = D ) ) $.
      $( The right angle property is independent of the choice of point on one
         side.  Theorem 8.3 of [Schwabhauser] p. 58.  (Contributed by Thierry
         Arnoux, 25-Aug-2019.) $)
      ragcol $p |- ( ph -> <" D B C "> e. ( raG ` G ) ) $=
        ( cs3 crag cfv wcel co wceq ccgrg eqid mircl necomd mircgr eqcomd israg
        mpbid lncgr mpbird ) AECDUEHUFUGZUHEDKUIEDCGUGZUGZKUIUJADVCFHUKUGZHIJKC
        BELONQSRUAVDULTACFGHIJVBKDLMNOPQSVBULZTUMMABCUCUNUDACVCKUICDKUIACDFGHIJ
        VBKLMNOPQSVETUOUPABCDUEVAUHBDKUIBVCKUIUJUBABCDFGHIJKLMNOPQRSTUQURUSAECD
        FGHIJKLMNOPQUASTUQUT $.
    $}

    ${
      ragmir.1 $e |- ( ph -> <" A B C "> e. ( raG ` G ) ) $.
      $( Right angle property is preserved by point inversion.  Theorem 8.4 of
         [Schwabhauser] p. 58.  (Contributed by Thierry Arnoux,
         25-Aug-2019.) $)
      ragmir $p |- ( ph -> <" A B ( ( S ` B ) ` C ) "> e. ( raG ` G ) ) $=
        ( cfv cs3 crag wcel co wceq eqid mirmir oveq2d israg mpbid eqtr2d mircl
        mpbird ) ABCDCFUAZUAZUBGUCUAZUDBUPJUEZBUPUOUAZJUEZUFAUTBDJUEZURAUSDBJAC
        DEFGHIUOJKLMNOPRUOUGZSUHUIABCDUBUQUDVAURUFTABCDEFGHIJKLMNOPQRSUJUKULABC
        UPEFGHIJKLMNOPQRACEFGHIUOJDKLMNOPRVBSUMUJUN $.

      mirrag.m $e |- M = ( S ` D ) $.
      mirrag.d $e |- ( ph -> D e. P ) $.
      $( Right angle is conserved by point inversion.  (Contributed by Thierry
         Arnoux, 3-Nov-2019.) $)
      mirrag $p |- ( ph
        -> <" ( M ` A ) ( M ` B ) ( M ` C ) "> e. ( raG ` G ) ) $=
        ( cfv cs3 crag wcel co wceq eqid mircl israg mpbid mircgrs oveq2d eqtrd
        mirmir2 mpbird ) ABKUEZCKUEZDKUEZUFHUGUEZUHUTVBLUIZUTVBVAGUEUEZLUIZUJAV
        DUTDCGUEZUEZKUEZLUIVFAEFGVHHIJKLBDBMNOPQRUDUCSUASACFGHIJVGLDMNOPQRTVGUK
        UAULABCDUFVCUHBDLUIBVHLUIUJUBABCDFGHIJLMNOPQRSTUAUMUNUOAVIVEUTLAEFGHIJK
        LDCMNOPQRUDUCUATURUPUQAUTVAVBFGHIJLMNOPQRAEFGHIJKLBMNOPQRUDUCSULAEFGHIJ
        KLCMNOPQRUDUCTULAEFGHIJKLDMNOPQRUDUCUAULUMUS $.
    $}

    $( Trivial right angle.  Theorem 8.5 of [Schwabhauser] p. 58.  (Contributed
       by Thierry Arnoux, 25-Aug-2019.) $)
    ragtrivb $p |- ( ph -> <" A B B "> e. ( raG ` G ) ) $=
      ( cfv cs3 crag wcel co wceq eqid mircinv oveq2d eqcomd israg mpbird ) ABC
      CUAGUBTUCBCJUDZBCCFTZTZJUDZUEAUOULAUNCBJACEFGHIUMJKLMNOPRUMUFUGUHUIABCCEF
      GHIJKLMNOPQRRUJUK $.

    ${
      ragflat2.d $e |- ( ph -> D e. P ) $.
      ragflat2.1 $e |- ( ph -> <" A B C "> e. ( raG ` G ) ) $.
      ragflat2.2 $e |- ( ph -> <" D B C "> e. ( raG ` G ) ) $.
      ragflat2.3 $e |- ( ph -> C e. ( A I D ) ) $.
      $( Deduce equality from two right angles.  Theorem 8.6 of [Schwabhauser]
         p. 58.  (Contributed by Thierry Arnoux, 3-Sep-2019.) $)
      ragflat2 $p |- ( ph -> B = C ) $=
        ( cfv wceq ccgrg eqid mircl cs3 crag wcel israg mpbid tgidinside eqcomd
        co mirinv ) ADCGUEZUEZDUFCDUFADUTAUTBFHUGUEZHIJKBEDLONQRUATVAUHACFGHIJU
        SKDLMNOPQSUSUHZTUIRMUDABCDUJHUKUEZULBDKUQBUTKUQUFUBABCDFGHIJKLMNOPQRSTU
        MUNAECDUJVCULEDKUQEUTKUQUFUCAECDFGHIJKLMNOPQUASTUMUNUOUPACDFGHIJUSKLMNO
        PQSVBTURUN $.
    $}

    ${
      ragflat.1 $e |- ( ph -> <" A B C "> e. ( raG ` G ) ) $.
      ragflat.2 $e |- ( ph -> <" A C B "> e. ( raG ` G ) ) $.
      $( Deduce equality from two right angles.  Theorem 8.7 of [Schwabhauser]
         p. 58.  (Contributed by Thierry Arnoux, 3-Sep-2019.) $)
      ragflat $p |- ( ph -> B = C ) $=
        ( wceq simpr wne wa cfv cstrkg wcel adantr eqid mircl cs3 co tgcgrcomlr
        crag mircgr israg mpbid ragcom tgbtwncom btwncolg1 ragcol 3eqtrd mpbird
        mirbtwn ragflat2 pm2.61dane ) ACDUBZCDAVHUCACDUDZUEZBCDBDFUFZUFZEFGHIJK
        LMNOAGUGUHVIPUIZABEUHVIQUIZACEUHVIRUIZADEUHVISUIZVJDEFGHIVKJBKLMNOVMVPV
        KUJZVNUKZABCDULGUOUFZUHZVITUIZVJVLCDULVSUHVLDJUMZVLDCFUFZUFZJUMZUBVJWBB
        DJUMZBWDJUMZWEVJDVLDBEGHJKLMVMVPVRVPVNVJDBEFGHIVKJKLMNOVMVPVQVNUPUNVJVT
        WFWGUBWAVJBCDEFGHIJKLMNOVMVNVOVPUQURVJWDBWDVLEGHJKLMVMVJCEFGHIWCJDKLMNO
        VMVOWCUJZVPUKZVNWIVRVJWDDBULVSUHWDBJUMWDVLJUMUBVJCDBWDEFGHIJKLMNOVMVOVP
        VNWIVJBDCEFGHIJKLMNOVMVNVPVOABDCULVSUHVIUAUIUSAVIUCVJEGHIDWDCKNMVMVPWIV
        OVJWDCDEGHJKLMVMWIVOVPVJCDEFGHIWCJKLMNOVMVOWHVPVEUTVAVBVJWDDBEFGHIJKLMN
        OVMWIVPVNUQURUNVCVJVLCDEFGHIJKLMNOVMVRVOVPUQVDVJVLDBEGHJKLMVMVRVPVNVJDB
        EFGHIVKJKLMNOVMVPVQVNVEUTVFVG $.
    $}

    ${
      ragtriva.1 $e |- ( ph -> <" A B A "> e. ( raG ` G ) ) $.
      $( Trivial right angle.  Theorem 8.8 of [Schwabhauser] p. 58.
         (Contributed by Thierry Arnoux, 3-Sep-2019.) $)
      ragtriva $p |- ( ph -> A = B ) $=
        ( ragtrivb ragcom ragflat ) ABBCEFGHIJKLMNOPQQRACBBEFGHIJKLMNOPRQQACBDE
        FGHIJKLMNOPRQSUAUBTUC $.
    $}

    ${
      ragflat3.1 $e |- ( ph -> <" A B C "> e. ( raG ` G ) ) $.
      ragflat3.2 $e |- ( ph -> ( C e. ( A L B ) \/ A = B ) ) $.
      $( Right angle and colinearity.  Theorem 8.9 of [Schwabhauser] p. 58.
         (Contributed by Thierry Arnoux, 4-Sep-2019.) $)
      ragflat3 $p |- ( ph -> ( A = B \/ C = B ) ) $=
        ( wceq wn wa cstrkg wcel adantr cs3 crag cfv simpr neqned co wo colrot1
        ragcol ragtriva ex orrd ) ABCUBZDCUBZAUTUCZVAAVBUDZDCBEFGHIJKLMNOAGUEUF
        VBPUGZADEUFVBSUGZACEUFVBRUGZABEUFVBQUGZVCBCDDEFGHIJKLMNOVDVGVFVEVEABCDU
        HGUIUJUFVBTUGVCBCAVBUKULVCEGHIBCDKNMVDVGVFVEADBCIUMUFUTUNVBUAUGUOUPUQUR
        US $.
    $}

    ${
      ragcgr.c $e |- .~ = ( cgrG ` G ) $.
      ragcgr.d $e |- ( ph -> D e. P ) $.
      ragcgr.e $e |- ( ph -> E e. P ) $.
      ragcgr.f $e |- ( ph -> F e. P ) $.
      ragcgr.1 $e |- ( ph -> <" A B C "> e. ( raG ` G ) ) $.
      ragcgr.2 $e |- ( ph -> <" A B C "> .~ <" D E F "> ) $.
      $( Right angle and colinearity.  Theorem 8.10 of [Schwabhauser] p. 58.
         (Contributed by Thierry Arnoux, 4-Sep-2019.) $)
      ragcgr $p |- ( ph -> <" D E F "> e. ( raG ` G ) ) $=
        ( cs3 crag cfv wcel wceq wa eqidd cstrkg adantr cgr3simp2 simpr tgcgreq
        wbr s3eqd ragtrivb eqeltrd wne co israg mpbid cgr3simp3 tgcgrcomlr eqid
        mircl necomd mirbtwn tgbtwncom mircgr 3eqtr4d cgr3simp1 axtg5seg mpbird
        3eqtr3d pm2.61dane ) AEIJUJZKUKULZUMZCDACDUNZUOZWDEJJUJWEWHEIJJEJWHEUPW
        HCDIJFKLNOPQAKUQUMZWGTURZACFUMZWGUBURZADFUMZWGUCURZAIFUMZWGUFURZAJFUMZW
        GUGURZWHBCDEFGIJKLNOPQUDWJABFUMZWGUAURWLWNAEFUMZWGUEURZWPWRABCDUJZWDGVB
        ZWGUIURUSAWGUTVAWHJUPVCWHEJIFHKLMNOPQRSWJXAWRWPVDVEACDVFZUOZWFEJNVGZEJI
        HULZULZNVGZUNXEBDNVGZBDCHULZULZNVGZXFXIXEXBWEUMZXJXMUNAXNXDUHURXEBCDFHK
        LMNOPQRSAWIXDTURZAWSXDUAURZAWKXDUBURZAWMXDUCURZVHVIXEDBJEFKLNOPQXOXRXPA
        WQXDUGURZAWTXDUEURZXEBCDEFGIJKLNOPQUDXOXPXQXRXTAWOXDUFURZXSAXCXDUIURZVJ
        ZVKXEXLBXHEFKLNOPQXOXECFHKLMXKNDOPQRSXOXQXKVLZXRVMZXPXEIFHKLMXGNJOPQRSX
        OYAXGVLZXSVMZXTXEJIXHFBKLNEDCXLOPQXOXRXQYEXSYAYGXPXTXECDAXDUTVNXEXLCDFK
        LNOPQXOYEXQXRXECDFHKLMXKNOPQRSXOXQYDXRVOVPXEXHIJFKLNOPQXOYGYAXSXEIJFHKL
        MXGNOPQRSXOYAYFXSVOVPXECDIJFKLNOPQXOXQXRYAXSXEBCDEFGIJKLNOPQUDXOXPXQXRX
        TYAXSYBUSZVKXECDNVGIJNVGCXLNVGIXHNVGYHXECDFHKLMXKNOPQRSXOXQYDXRVQXEIJFH
        KLMXGNOPQRSXOYAYFXSVQVRYCXEBCEIFKLNOPQXOXPXQXTYAXEBCDEFGIJKLNOPQUDXOXPX
        QXRXTYAXSYBVSVKVTVKWBXEEIJFHKLMNOPQRSXOXTYAXSVHWAWC $.
    $}

    ${
      motrag.f $e |- ( ph -> F e. ( G Ismt G ) ) $.
      motrag.1 $e |- ( ph -> <" A B C "> e. ( raG ` G ) ) $.
      $( Right angles are preserved by motions.  (Contributed by Thierry
         Arnoux, 16-Dec-2019.) $)
      motrag $p |- ( ph ->
        <" ( F ` A ) ( F ` B ) ( F ` C ) "> e. ( raG ` G ) ) $=
        ( cfv ccgrg eqid cstrkg motcl eqidd motcgr3 ragcgr ) ABCDBGUCZEHUDUCZFC
        GUCZDGUCZHIJKLMNOPQRSTULUEZABEGHKUFLMQUARUGACEGHKUFLMQUASUGADEGHKUFLMQU
        ATUGUBABCDUKEULUMUNHGKLMUOQRSTAUKUHAUMUHAUNUHUAUIUJ $.
    $}

    ${
      ragncol.1 $e |- ( ph -> <" A B C "> e. ( raG ` G ) ) $.
      ragncol.2 $e |- ( ph -> A =/= B ) $.
      ragncol.3 $e |- ( ph -> C =/= B ) $.
      $( Right angle implies non-colinearity.  A consequence of theorem 8.9 of
         [Schwabhauser] p. 58.  (Contributed by Thierry Arnoux, 1-Dec-2019.) $)
      ragncol $p |- ( ph -> -. ( C e. ( A L B ) \/ A = B ) ) $=
        ( co wcel wceq wo wn neneqd ioran sylanbrc cstrkg adantr cs3 crag simpr
        wa cfv ragflat3 mtand ) ADBCIUCUDBCUEZUFZUTDCUEZUFZAUTUGVBUGVCUGABCUAUH
        ADCUBUHUTVBUIUJAVAUPBCDEFGHIJKLMNOAGUKUDVAPULABEUDVAQULACEUDVARULADEUDV
        ASULABCDUMGUNUQUDVATULAVAUOURUS $.
    $}

$(
    @{
      rag2col.d @e |- ( ph -> D e. P ) @.
      rag2col.1 @e |- ( ph -> <" A B C "> e. ( raG ` G ) ) @.
      rag2col.2 @e |- ( ph -> <" A B D "> e. ( raG ` G ) ) @.
      @( Two right angles imply colinearity.  (Contributed by Thierry Arnoux,
         3-Mar-2020.) @)
      rag2col @p |- ( ph -> ( B e. ( C L D ) \/ C = D ) ) @=
        ? @.
    @}
$)
  $}

  ${
    $d G a b g u v x $.  $d L a b g $.  $d a b g ph u v x $.
    perpln.l $e |- L = ( LineG ` G ) $.
    perpln.1 $e |- ( ph -> G e. TarskiG ) $.
    perpln.2 $e |- ( ph -> A ( perpG ` G ) B ) $.
    $( Derive a line from perpendicularity.  (Contributed by Thierry Arnoux,
       27-Nov-2019.) $)
    perpln1 $p |- ( ph -> A e. ran L ) $=
      ( va vb vu vx vv vg cfv cv wcel wral wa cvv cperpg cdm crn cs3 crag copab
      cin wrex clng cmpt df-perpg a1i simpr fveq2d syl6eqr rneqd eleq2d anbi12d
      wceq ralbidv rexralbidv opabbidv cstrkg elex syl fvex eqeltri rnexg xpexg
      cxp syl2anc wss opabssxp ssexd fvmptd anass opabbii syl6eq dmeqd dmopabss
      mp1i syl6eqss wrel relopab releqd mpbiri brrelex12 simpld breldmg syl3anc
      wbr simprd sseldd ) ADUAOZUBZEUCZBAWOIPZWPQZJPZWPQZKPLPMPUDZDUEOZQZMWSRZK
      WQRLWQWSUGZUHZSZSZIJUFZUBWPAWNXIAWNWRWTSZXFSZIJUFZXIANDWQNPZUIOZUCZQZWSXO
      QZSZXAXMUEOZQZMWSRZKWQRLXEUHZSZIJUFZXLTUATUANTYDUJUSALMKNIJUKULAXMDUSZSZY
      CXKIJYFXRXJYBXFYFXPWRXQWTYFXOWPWQYFXNEYFXNDUIOZEYFXMDUIAYEUMZUNFUOUPZUQYF
      XOWPWSYIUQURYFYAXDLKXEWQYFXTXCMWSYFXSXBXAYFXMDUEYHUNUQUTVAURVBADVCQDTQGDV
      CVDVEAXLWPWPVJZTAWPTQZYKYJTQETQYKAEYGTFDUIVFVGETVHWAZYLWPWPTTVIVKXLYJVLAX
      FIJWPWPVMULVNVOZXKXHIJWRWTXFVPVQVRVSXGIJWPVTWBABTQZCTQZBCWNWKZBWOQAYNYOAW
      NWCZYPYNYOSAYQXLWCXKIJWDAWNXLYMWEWFHBCWNWGVKZWHAYNYOYRWLHBCTTWNWIWJWM $.

    $( Derive a line from perpendicularity.  (Contributed by Thierry Arnoux,
       27-Nov-2019.) $)
    perpln2 $p |- ( ph -> B e. ran L ) $=
      ( va vb vu vx vv vg cfv crn cv wcel wa cvv cperpg cxp cs3 crag wral copab
      cin wrex clng cmpt df-perpg a1i simpr fveq2d syl6eqr rneqd eleq2d anbi12d
      wceq ralbidv rexralbidv opabbidv cstrkg elex syl fvex eqeltri rnexg xpexg
      mp1i syl2anc opabssxp ssexd fvmptd rnss ax-mp syl6eqss rnxpss syl6ss wrel
      wss relopab releqd mpbiri brrelex12 simpld simprd brelrng syl3anc sseldd
      wbr ) ADUAOZPZEPZCAWMWNWNUBZPZWNAWMIQZWNRZJQZWNRZSZKQLQMQUCZDUDOZRZMWSUEZ
      KWQUELWQWSUGZUHZSZIJUFZPZWPAWLXIANDWQNQZUIOZPZRZWSXMRZSZXBXKUDOZRZMWSUEZK
      WQUELXFUHZSZIJUFZXITUATUANTYBUJUSALMKNIJUKULAXKDUSZSZYAXHIJYDXPXAXTXGYDXN
      WRXOWTYDXMWNWQYDXLEYDXLDUIOZEYDXKDUIAYCUMZUNFUOUPZUQYDXMWNWSYGUQURYDXSXEL
      KXFWQYDXRXDMWSYDXQXCXBYDXKDUDYFUNUQUTVAURVBADVCRDTRGDVCVDVEAXIWOTAWNTRZYH
      WOTRETRYHAEYETFDUIVFVGETVHVJZYIWNWNTTVIVKXIWOWAZAXGIJWNWNVLZULVMVNZUPYJXJ
      WPWAYKXIWOVOVPVQWNWNVRVSABTRZCTRZBCWLWKZCWMRAYMYNAWLVTZYOYMYNSAYPXIVTXHIJ
      WBAWLXIYLWCWDHBCWLWEVKZWFAYMYNYQWGHBCWLTTWHWIWJ $.
  $}

  ${
    $d a b u v x A $.  $d a b u v x B $.  $d a b g u v x G $.  $d a b g L $.
    $d a b g u v x ph $.
    isperp.p $e |- P = ( Base ` G ) $.
    isperp.d $e |- .- = ( dist ` G ) $.
    isperp.i $e |- I = ( Itv ` G ) $.
    isperp.l $e |- L = ( LineG ` G ) $.
    isperp.g $e |- ( ph -> G e. TarskiG ) $.
    isperp.a $e |- ( ph -> A e. ran L ) $.
    ${
      isperp.b $e |- ( ph -> B e. ran L ) $.
      $( Property for 2 lines A, B to be perpendicular.  Item (ii) of
         definition 8.11 of [Schwabhauser] p. 59.  (Contributed by Thierry
         Arnoux, 16-Oct-2019.) $)
      isperp $p |- ( ph -> ( A ( perpG ` G ) B <-> E. x e. ( A i^i B )
        A. u e. A A. v e. B <" u x v "> e. ( raG ` G ) ) ) $=
        ( wcel cvv va vb vg cperpg cfv wbr cop cv crn wa cs3 crag wral cin wrex
        copab df-br clng cmpt wceq df-perpg simpr fveq2d syl6eqr eleq2d anbi12d
        a1i rneqd ralbidv rexralbidv opabbidv cstrkg elex syl cxp eqeltri rnexg
        fvex mp1i xpexg syl2anc wss opabssxp ssexd fvmptd syl5bb ineq12 simpllr
        wb simpll raleqdv raleqbidva rexeqbidva opelopab2a bitrd ) AEFHUDUEZUFZ
        EFUGZUAUHZJUIZSZUBUHZWTSZUJZDUHZBUHZCUHUKZHULUEZSZCXBUMZDWSUMZBWSXBUNZU
        OZUJZUAUBUPZSZXICFUMZDEUMZBEFUNZUOZWQWRWPSAXPEFWPUQAWPXOWRAUCHWSUCUHZUR
        UEZUIZSZXBYCSZUJZXGYAULUEZSZCXBUMZDWSUMBXLUOZUJZUAUBUPZXOTUDTUDUCTYLUSU
        TABCDUCUAUBVAVGAYAHUTZUJZYKXNUAUBYNYFXDYJXMYNYDXAYEXCYNYCWTWSYNYBJYNYBH
        URUEZJYNYAHURAYMVBZVCOVDVHZVEYNYCWTXBYQVEVFYNYIXJBDXLWSYNYHXICXBYNYGXHX
        GYNYAHULYPVCVEVIVJVFVKAHVLSHTSPHVLVMVNAXOWTWTVOZTAWTTSZYSYRTSJTSYSAJYOT
        OHURVRVPJTVQVSZYTWTWTTTVTWAXOYRWBAXMUAUBWTWTWCVGWDWEVEWFAEWTSFWTSXPXTWI
        QRXMXTUAUBEFWTWTWSEUTZXBFUTZUJZXKXRBXLXSWSEXBFWGUUCXFXLSZUJZXJXQDWSEUUA
        UUBUUDWJUUEXEWSSZUJXICXBFUUAUUBUUDUUFWHWKWLWMWNWAWO $.

      perpcom.1 $e |- ( ph -> A ( perpG ` G ) B ) $.
      $( The "perpendicular" relation commutes.  Theorem 8.12 of [Schwabhauser]
         p. 59.  (Contributed by Thierry Arnoux, 16-Oct-2019.) $)
      perpcom $p |- ( ph -> B ( perpG ` G ) A ) $=
        ( vu vx vv wcel cperpg cfv wbr cv cs3 crag wral cin wrex wceq incom a1i
        wa ralcom cmir cstrkg ad3antrrr crn simplrr tglnpt inss1 simpllr sseldi
        simplrl simpr ragcom impbida 2ralbidva syl5bb rexeqbidva isperp 3bitr4d
        eqid mpbid ) ABCEUAUBZUCZCBVOUCZPAQUDZRUDZSUDZUEEUFUBZTZSCUGQBUGZRBCUHZ
        UIVTVSVRUEWATZQBUGSCUGZRCBUHZUIVPVQAWCWFRWDWGWDWGUJABCUKULWCWBQBUGSCUGA
        VSWDTZUMZWFWBQSBCUNWIWBWESQCBWIVTCTZVRBTZUMZUMZWBWEWMWBUMZVRVSVTDEUOUBZ
        EFGHIJKLWOVMZAEUPTZWHWLWBMUQZWNBDEFGVRILKWRABGURZTZWHWLWBNUQZWIWJWKWBUS
        UTWNBDEFGVSILKWRXAWNWDBVSBCVAZAWHWLWBVBVCUTWNCDEFGVTILKWRACWSTZWHWLWBOU
        QWIWJWKWBVDUTWMWBVEVFWMWEUMZVTVSVRDWOEFGHIJKLWPAWQWHWLWEMUQZXDCDEFGVTIL
        KXEAXCWHWLWEOUQWIWJWKWEVDUTXDBDEFGVSILKXEAWTWHWLWENUQZXDWDBVSXBAWHWLWEV
        BVCUTXDBDEFGVRILKXEXFWIWJWKWEUSUTWMWEVEVFVGVHVIVJARSQBCDEFGHIJKLMNOVKAR
        QSCBDEFGHIJKLMONVKVLVN $.

      $d u v x y z A $.  $d y z B $.  $d y z G $.  $d y z ph $.
      $( Two perpendicular lines are different.  Theorem 8.14 of [Schwabhauser]
         p. 59.  (Contributed by Thierry Arnoux, 18-Oct-2019.) $)
      perpneq $p |- ( ph -> A =/= B ) $=
        ( cv wcel wa adantl4r vy vx vz vu vv cs3 crag cfv wne cin cstrkg adantr
        wral co ad5antr crn inss1 simpr sseldi ad4antr tglnpt simp-4r cmir eqid
        simplr simp-5r wceq eqidd s3eqd eleq1d rspc2va syl21anc simpllr ragncol
        id necomd ncolrot2 tglineneq tglinethru inss2 3netr4d tglnpt2 ad3antrrr
        wrex r19.29a cperpg wbr isperp mpbid ) AUAQZUBQZUCQZUFZEUGUHZRZUCCUMUAB
        UMZBCUIZUBBCUJZAWKWRRZSZWPSZWKUDQZUIZWQUDBXAXBBRZSXCSZWKUEQZUIZWQUECXEX
        FCRZSXGSZXBWKGUNZWKXFGUNZBCXIXKXJXIWKXFXBWKDEFGIKLWTEUKRZWPXDXCXHXGAXLW
        SMULZUOZWTWPXDXCXHXGWKDRWTXDSZXCSZXHSZXGSZBDEFGWKILKAXLWSXDXCXHXGMUOZAB
        GUPZRZWSXDXCXHXGNUOZWTWKBRXDXCXHXGWTWRBWKBCUQAWSURZUSZUTZVAZTZWTWPXDXCX
        HXGXFDRXRCDEFGXFILKXSACXTRZWSXDXCXHXGOUOZXPXHXGVEZVAZTZWTWPXDXCXHXGXBDR
        XRBDEFGXBILKXSYBWTXDXCXHXGVBZVAZTZYGXIDEFGXBWKXFILKXNYOYGYLXIXBWKXFDEVC
        UHZEFGHIJKLYPVDXNYOYGYLXIXDXHWPXBWKXFUFZWNRZXAXDXCXHXGVBXEXHXGVEWTWPXDX
        CXHXGVFWOYRXBWKWLUFZWNRUAUCXBXFBCWJXBVGZWMYSWNYTWJWKWLWLXBWKYTVOYTWKVHY
        TWLVHVIVJWLXFVGZYSYQWNUUAXBWKWLXFXBWKUUAXBVHUUAWKVHUUAVOVIVJVKVLWTWPXDX
        CXHXGXBWKUIXRWKXBXOXCXHXGVMVPZTWTWPXDXCXHXGXFWKUIXRWKXFXQXGURZVPTVNVQVR
        VPWTWPXDXCXHXGBXJVGXRBDXBWKEFGIKLXSYNYFUUBUUBYBYMYEVSTWTWPXDXCXHXGCXKVG
        XRCDWKXFEFGIKLXSYFYKUUCUUCYIWTWKCRXDXCXHXGWTWRCWKBCVTYCUSZUTYJVSTWAWTXG
        UECWDWPXDXCWTUECDEFGWKIKLXMAYHWSOULUUDWBWCWEWTXCUDBWDWPWTUDBDEFGWKIKLXM
        AYAWSNULYDWBULWEABCEWFUHWGWPUBWRWDPAUBUCUABCDEFGHIJKLMNOWHWIWE $.
    $}

    ${
      $d u v x X $.
      isperp2.b $e |- ( ph -> B e. ran L ) $.
      isperp2.x $e |- ( ph -> X e. ( A i^i B ) ) $.
      $( Property for 2 lines A, B, intersecting at a point X to be
         perpendicular.  Item (i) of definition 8.13 of [Schwabhauser] p. 59.
         (Contributed by Thierry Arnoux, 16-Oct-2019.) $)
      isperp2 $p |- ( ph -> ( A ( perpG ` G ) B <-> A. u e. A A. v e. B
        <" u X v "> e. ( raG ` G ) ) ) $=
        ( wcel vx cperpg cfv wbr cv cs3 crag wral wa cin cstrkg ad4antr simp-4r
        eqidd crn perpneq simpllr tglineineq eleq1d biimpd ralimdva wrex isperp
        s3eqd imp biimpa r19.29a wceq id 2ralbidv rspcev sylan wb adantr mpbird
        impbida ) ADEGUBUCUDZCUEZKBUEZUFZGUGUCZTZBEUHZCDUHZAVQUIZVRUAUEZVSUFZWA
        TZBEUHZCDUHZWDUADEUJZWEWFWKTZUIZWJWDWMWIWCCDWMVRDTZUIZWHWBBEWOVSETZUIZW
        HWBWQWGVTWAWQVRWFVSVSVRKWQVRUNWQDEFGHIWFKLNOAGUKTVQWLWNWPPULZADIUOZTVQW
        LWNWPQULZAEWSTVQWLWNWPRULZWQDEFGHIJLMNOWRWTXAAVQWLWNWPUMUPWEWLWNWPUQAKW
        KTZVQWLWNWPSULURWQVSUNVDUSUTVAVAVEAVQWJUAWKVBZAUABCDEFGHIJLMNOPQRVCZVFV
        GAWDUIVQXCAXBWDXCSWJWDUAKWKWFKVHZWHWBCBDEXEWGVTWAXEVRWFVSVSVRKXEVRUNXEV
        IXEVSUNVDUSVJVKVLAVQXCVMWDXDVNVOVP $.

      ${
        $d U u v $.  $d V v $.
        isperp2d.u $e |- ( ph -> U e. A ) $.
        isperp2d.v $e |- ( ph -> V e. B ) $.
        isperp2d.p $e |- ( ph -> A ( perpG ` G ) B ) $.
        $( One direction of ~ isperp2 .  (Contributed by Thierry Arnoux,
           10-Nov-2019.) $)
        isperp2d $p |- ( ph -> <" U X V "> e. ( raG ` G ) ) $=
          ( vu vv cv cs3 crag cfv wcel wral cperpg wbr isperp2 mpbid wi wceq id
          eqidd s3eqd eleq1d rspc2v syl2anc mpd ) AUCUEZKUDUEZUFZFUGUHZUIZUDCUJ
          UCBUJZEKJUFZVGUIZABCFUKUHULVIUBAUDUCBCDFGHIKLMNOPQRSUMUNAEBUIJCUIVIVK
          UOTUAVHVKEKVEUFZVGUIUCUDEJBCVDEUPZVFVLVGVMVDKVEVEEKVMUQVMKURVMVEURUSU
          TVEJUPZVLVJVGVNEKVEJEKVNEURVNKURVNUQUSUTVAVBVC $.
      $}
    $}

    ${
      $d X u v $.
      ragperp.b $e |- ( ph -> B e. ran L ) $.
      ragperp.x $e |- ( ph -> X e. ( A i^i B ) ) $.
      ragperp.u $e |- ( ph -> U e. A ) $.
      ragperp.v $e |- ( ph -> V e. B ) $.
      ragperp.1 $e |- ( ph -> U =/= X ) $.
      ragperp.2 $e |- ( ph -> V =/= X ) $.
      ragperp.r $e |- ( ph -> <" U X V "> e. ( raG ` G ) ) $.
      $( Deduce that two lines are perpendicular from a right angle statement.
         One direction of theorem 8.13 of [Schwabhauser] p. 59.  (Contributed
         by Thierry Arnoux, 20-Oct-2019.) $)
      ragperp $p |- ( ph -> A ( perpG ` G ) B ) $=
        ( vu vv cperpg cfv wbr cv cs3 crag wcel wral wa cmir eqid cstrkg adantr
        crn simprr tglnpt cin inss1 sseldi simprl wne wceq co wn ad2antrr simpr
        neqned tglinethru eleqtrd ex orrd orcomd ragcol ragcom inss2 ralrimivva
        isperp2 mpbird ) ABCFUGUHUIUEUJZKUFUJZUKFULUHZUMZUFCUNUEBUNAWHUEUFBCAWE
        BUMZWFCUMZUOZUOZWFKWEDFUPUHZFGHILMNOWMUQZAFURUMZWKPUSZWLCDFGHWFLONWPACH
        UTZUMZWKRUSZAWIWJVAZVBZWLBDFGHKLONWPABWQUMZWKQUSZAKBUMZWKABCVCZBKBCVDSV
        EZUSVBZWLBDFGHWELONWPXCAWIWJVFZVBZWLJKWEWFDWMFGHILMNOWNWPWLCDFGHJLONWPW
        SAJCUMZWKUAUSVBZXGXIXAWLWEKJDWMFGHILMNOWNWPXIXGXKWLEKJWEDWMFGHILMNOWNWP
        WLBDFGHELONWPXCAEBUMZWKTUSVBXGXKXIAEKJUKWGUMWKUDUSAEKVGWKUBUSWLKWEVHZEK
        WEHVIZUMZWLXMXOWLXMVJZXOWLXPUOZEBXNAXLWKXPTVKXQBDKWEFGHLNOAWOWKXPPVKWLK
        DUMZXPXGUSWLWEDUMXPXIUSXQKWEWLXPVLVMZXSAXBWKXPQVKAXDWKXPXFVKWLWIXPXHUSV
        NVOVPVQVRVSVTAJKVGWKUCUSWLKWFVHZJKWFHVIZUMZWLXTYBWLXTVJZYBWLYCUOZJCYAAX
        JWKYCUAVKYDCDKWFFGHLNOAWOWKYCPVKWLXRYCXGUSWLWFDUMYCXAUSYDKWFWLYCVLVMZYE
        AWRWKYCRVKAKCUMWKYCAXECKBCWASVEVKWLWJYCWTUSVNVOVPVQVRVSVTWBAUFUEBCDFGHI
        KLMNOPQRSWCWD $.
    $}

    ${
      $d A a b d p q u v x y z $.  $d C a b d p q u v x y z $.
      $d G a b d p q x y z $.  $d I a b d p q x y z $.  $d .- d p q x y z $.
      $d L a b d p q u v x y z $.  $d P a b d p q x y z $.
      $d a b d p ph q x y z $.
      foot.x $e |- ( ph -> C e. P ) $.
      foot.y $e |- ( ph -> -. C e. A ) $.
      $( Lemma for ~ foot : existence part.  (Contributed by Thierry Arnoux,
         19-Oct-2019.) $)
      footex $p |- ( ph -> E. x e. A ( C L x ) ( perpG ` G ) A ) $=
        ( co wcel adantr va vb vy vp vz vq vd wceq wne cperpg cfv wbr wrex cmir
        cv eqid cstrkg ad3antrrr ad2antrr ad6antr simplr simprr eqcomd midexlem
        simp-4r simp-6r simprl ad4antr simp-5r simprd simp-7r ad10antr simp-11r
        wa simpllr necomd simp-9r simpld btwnlng3 lncom eleqtrrd nelne2 syl2anc
        wn eqnetrrd mirinv necon3bid mpbid tgcgrneq mirbtwn oveq1d tgbtwnouttr2
        mircl tgbtwncom simplrl crag ccgrg oveq2d eqtrd israg mpbird tgcgrcomlr
        cs3 eqtr2d tglinerflx1 axtgcgrrflx axtg5seg trgcgr ragcgr eqidd krippen
        ragcom crn ad5antr ad9antr tglinethru tgelrnln tglinerflx2 elind mircgr
        simpr neeqtrd eleqtrd orcd ragcol eqeltrd wo btwncolg3 ragflat pm2.65da
        s3eqd neneqd neqned ragperp jca ex reximdv2 mpd axtgsegcon r19.29a
        tgisline r19.29vva ) ACUAUOZUBUOZHRZUHZUUCUUDUIZVNZDBUOZHRZCFUJUKULZBCU
[encoded data, 5600 characters]
        UXIVUIVUDVUDUXQYSYTAUAUBCEFGHJLMNOUUAUUB $.

      $( From a point ` C ` outside of a line ` A ` , there exists a unique
         point ` x ` on ` A ` such that ` ( C L x ) ` is perpendicular to
         ` A ` .  That point is called the foot from ` C ` on ` A ` .  Theorem
         8.18 of [Schwabhauser] p. 60.  (Contributed by Thierry Arnoux,
         19-Oct-2019.) $)
      foot $p |- ( ph -> E! x e. A ( C L x ) ( perpG ` G ) A ) $=
        ( vu wcel adantr vz vv cv co cperpg cfv wbr wrex wrmo wreu footex wa wi
        wceq wral cmir eqid cstrkg ad2antrr crn simprl tglnpt simprr cs3 wne wn
        nelne2 syl2anc necomd tglinerflx1 wb tgelrnln tglinerflx2 elind isperp2
        crag mpbid id eqidd s3eqd eleq1d rspc2va syl21anc ragflat ex ralrimivva
        oveq2 breq1d rmo4 sylibr reu5 sylanbrc ) ADBUCZHUDZCFUEUFZUGZBCUHWPBCUI
        ZWPBCUJABCDEFGHIJKLMNOPQUKAWPDUAUCZHUDZCWOUGZULZWMWRUNZUMZUACUOBCUOWQAX
        CBUACCAWMCSZWRCSZULZULZXAXBXGXAULZDWMWREFUPUFZFGHIJKLMXIUQAFURSZXFXANUS
        ZADESZXFXAPUSZXGWMESXAXGCEFGHWMJMLAXJXFNTZACHUTSXFOTZAXDXEVAZVBZTZXGWRE
        SXAXGCEFGHWRJMLXNXOAXDXEVCZVBZTZXHDWNSXERUCZWMUBUCZVDZFVPUFZSZUBCUORWNU
        OZDWMWRVDZYESZXHEDWMFGHJLMXKXMXRXGDWMVEXAXGWMDXGXDDCSVFZWMDVEXPAYJXFQTZ
        WMDCVGVHVIZTVJXGXEXAXSTXHWPYGXGWPWTVAXGWPYGVKXAXGUBRWNCEFGHIWMJKLMXNXGE
        FGHDWMJLMXNAXLXFPTZXQYLVLXOXGWNCWMXGEDWMFGHJLMXNYMXQYLVMXPVNVOTVQYFYIDW
        MYCVDZYESRUBDWRWNCYBDUNZYDYNYEYOYBWMYCYCDWMYOVRZYOWMVSYOYCVSZVTWAYCWRUN
        ZYNYHYEYRDWMYCWRDWMYRDVSYRWMVSYRVRVTWAWBWCXHDWSSXDYBWRYCVDZYESZUBCUORWS
        UOZDWRWMVDZYESZXHEDWRFGHJLMXKXMYAXGDWRVEXAXGWRDXGXEYJWRDVEXSYKWRDCVGVHV
        IZTVJXGXDXAXPTXHWTUUAXGWPWTVCXGWTUUAVKXAXGUBRWSCEFGHIWRJKLMXNXGEFGHDWRJ
        LMXNYMXTUUDVLXOXGWSCWRXGEDWRFGHJLMXNYMXTUUDVMXSVNVOTVQYTUUCDWRYCVDZYESR
        UBDWMWSCYOYSUUEYEYOYBWRYCYCDWRYPYOWRVSYQVTWAYCWMUNZUUEUUBYEUUFDWRYCWMDW
        RUUFDVSUUFWRVSUUFVRVTWAWBWCWDWEWFWPWTBUACXBWNWSCWOWMWRDHWGWHWIWJWPBCWKW
        L $.
    $}

    ${
      footne.x $e |- ( ph -> X e. A ) $.
      footne.y $e |- ( ph -> Y e. P ) $.
      footne.1 $e |- ( ph -> ( X L Y ) ( perpG ` G ) A ) $.
      $( Uniqueness of the foot point.  (Contributed by Thierry Arnoux,
         28-Feb-2020.) $)
      footne $p |- ( ph -> -. Y e. A ) $=
        ( wcel adantr wa wn cstrkg crn perpln1 wne perpneq necomd tglnpt tglnne
        co tglinerflx1 elind simpr tglinerflx2 tglineineq pm2.21ddne pm2.01da )
        AIBSZAUSUAZUSUBHIUTBHIFUKZCDEFHIJLMADUCSUSNTABFUDZSUSOTAVAVBSUSAVABDFMN
        RUEZTABVAUFUSAVABAVABCDEFGJKLMNVCORUGUHTUTBVAHAHBSUSPTAHVASUSACHIDEFJLM
        NABCDEFHJMLNOPUIZQACDEFHIJLMNVDQVCUJZULTUMUTBVAIAUSUNAIVASUSACHIDEFJLMN
        VDQVEUOTUMUPAHIUFUSVETUQUR $.
    $}

    ${
      $d .- x $.  $d I x $.  $d L x $.  $d P x $.  $d X x $.  $d Y x $.
      $d Z x $.
      footeq.x $e |- ( ph -> X e. A ) $.
      footeq.y $e |- ( ph -> Y e. A ) $.
      footeq.z $e |- ( ph -> Z e. P ) $.
      footeq.1 $e |- ( ph -> ( X L Z ) ( perpG ` G ) A ) $.
      footeq.2 $e |- ( ph -> ( Y L Z ) ( perpG ` G ) A ) $.
      $( Uniqueness of the foot point.  (Contributed by Thierry Arnoux,
         1-Mar-2020.) $)
      footeq $p |- ( ph -> X = Y ) $=
        ( vx cv co cperpg cfv wbr wceq breq1d footne foot tglnpt perpln1 tglnne
        oveq2 tglinecom eqbrtrrd reu2eqd ) AJUBUCZFUDZBDUEUFZUGJHFUDZBVAUGJIFUD
        ZBVAUGUBBHIUSHUHUTVBBVAUSHJFUOUIUSIUHUTVCBVAUSIJFUOUIAUBBJCDEFGKLMNOPSA
        BCDEFGHJKLMNOPQSTUJUKQRAHJFUDZVBBVAACHJDEFKMNOABCDEFHKNMOPQULZSACDEFHJK
        MNOVESAVDBDFNOTUMUNUPTUQAIJFUDZVCBVAACIJDEFKMNOABCDEFIKNMOPRULZSACDEFIJ
        KMNOVGSAVFBDFNOUAUMUNUPUAUQUR $.
    $}
  $}

  ${
    colperpex.p $e |- P = ( Base ` G ) $.
    colperpex.d $e |- .- = ( dist ` G ) $.
    colperpex.i $e |- I = ( Itv ` G ) $.
    colperpex.l $e |- L = ( LineG ` G ) $.
    colperpex.g $e |- ( ph -> G e. TarskiG ) $.
    ${
      hlperpnel.a $e |- ( ph -> A e. ran L ) $.
      hlperpnel.k $e |- K = ( hlG ` G ) $.
      hlperpnel.1 $e |- ( ph -> U e. A ) $.
      hlperpnel.2 $e |- ( ph -> V e. P ) $.
      hlperpnel.3 $e |- ( ph -> W e. P ) $.
      hlperpnel.4 $e |- ( ph -> A ( perpG ` G ) ( U L V ) ) $.
      hlperpnel.5 $e |- ( ph -> V ( K ` U ) W ) $.
      $( A point on a half-line which is perpendicular to a line cannot be on
         that line.  (Contributed by Thierry Arnoux, 1-Mar-2020.) $)
      hlperpnel $p |- ( ph -> -. W e. A ) $=
        ( co cperpg cfv tglnpt perpln2 tglnne wne wo wbr w3a cstrkg ishlg mpbid
        wcel simp2d hlln lnrot1 tglineelsb2 perpcom eqbrtrrd footne ) ABCEFHIDK
        LMNOPQSUAADJHUDZDKHUDBEUEUFACDJKEFHLNOPABCEFHDLONPQSUGZTACEFHDJLNOPVFTA
        BVEEHOPUBUHZUIZUAAJDUJZKDUJZJDKFUDUQKDJFUDUQUKZAJKDGUFULVIVJVKUMUCAJKDC
        EFGUNLNRTUAVFPUOUPURZACEFHDJKLNOPVFTUAVHAJKDCEFGHLNRTUAVFPOUCUSVLUTVAAB
        VECEFHILMNOPQVGUBVBVCVD $.
    $}

    ${
      perprag.1 $e |- ( ph -> A e. P ) $.
      perprag.2 $e |- ( ph -> B e. P ) $.
      perprag.3 $e |- ( ph -> C e. ( A L B ) ) $.
      perprag.4 $e |- ( ph -> D e. P ) $.
      perprag.5 $e |- ( ph -> ( A L B ) ( perpG ` G ) ( C L D ) ) $.
      $( Deduce a right angle from perpendicular lines.  (Contributed by
         Thierry Arnoux, 10-Nov-2019.) $)
      perprag $p |- ( ph -> <" A C D "> e. ( raG ` G ) ) $=
        ( cs3 crag cfv wcel wceq wa eqidd simpr s3eqd cmir eqid ragtrivb adantr
        eqeltrd wne co cstrkg crn tgelrnln tglnpt tglinerflx1 elind tglinerflx2
        tglngne cperpg wbr isperp2d pm2.61dane ) ABDEUAZGUBUCZUDDEADEUEZUFZVIBE
        EUAZVJVLBDEEBEVLBUGAVKUHVLEUGUIAVMVJUDVKABEEFGUJUCZGHIJKLMNVNUKOPSSULUM
        UNADEUOZUFZBCIUPZDEIUPZFBGHIJEDKLMNAGUQUDVOOUMZAVQIURUDVOAFGHIBCKMNOPQA
        FGHIBCDKNMOPQRVDZUSZUMVPFGHIDEKMNVSADFUDVOAVQFGHIDKNMOWARUTUMZAEFUDVOSU
        MZAVOUHZUSVPVQVRDADVQUDVORUMVPFDEGHIKMNVSWBWCWDVAVBABVQUDVOAFBCGHIKMNOP
        QVTVAUMVPFDEGHIKMNVSWBWCWDVCAVQVRGVEUCVFVOTUMVGVH $.
    $}

    ${
      perpdrag.1 $e |- ( ph -> A e. D ) $.
      perpdrag.2 $e |- ( ph -> B e. D ) $.
      perpdrag.3 $e |- ( ph -> C e. P ) $.
      perpdrag.4 $e |- ( ph -> D ( perpG ` G ) ( B L C ) ) $.
      $( Deduce a right angle from perpendicular lines.  (Contributed by
         Thierry Arnoux, 12-Dec-2019.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      perpdragALT $p |- ( ph -> <" A B C "> e. ( raG ` G ) ) $=
        ( wcel cs3 crag wceq wa eqidd simpr s3eqd cmir eqid co perpln1 ragtrivb
        cfv tglnpt ragcom adantr eqeltrrd wne cstrkg crn tglinethru eleqtrd wbr
        cperpg eqbrtrrd perprag pm2.61dane ) ABCDUAZGUBUMZTBCABCUCZUDZBBDUAZVHV
        IVKBBDDBCVKBUEAVJUFVKDUEUGAVLVITVJADBBFGUHUMZGHIJKLMNVMUIZORAEFGHIBKNMO
        AECDIUJZGINOSUKZPUNZVQADBDFVMGHIJKLMNVNORVQRULUOUPUQABCURZUDZBCCDFGHIJK
        LMNAGUSTVROUPZABFTVRVQUPZACFTVRAEFGHICKNMOVPQUNUPZVSCEBCIUJZACETVRQUPZV
        SEFBCGHIKMNVTWAWBAVRUFZWEAEIUTTVRVPUPABETVRPUPWDVAZVBADFTVRRUPVSEWCVOGV
        DUMZWFAEVOWGVCVRSUPVEVFVG $.

      $d A x $.  $d B x $.  $d C x $.  $d D x $.  $d G x $.  $d ph x $.
      $( Deduce a right angle from perpendicular lines.  (Contributed by
         Thierry Arnoux, 12-Dec-2019.) $)
      perpdrag $p |- ( ph -> <" A B C "> e. ( raG ` G ) ) $=
        ( wcel vx cv wne cs3 crag cfv cstrkg ad2antrr cperpg wbr perpln1 tglnpt
        wa co simplr simpr tglinethru eleqtrd eqbrtrrd perprag tglnpt2 r19.29a
        ) ABUAUBZUCZBCDUDGUEUFTUAEAVCETZUMZVDUMZBVCCDFGHIJKLMNAGUGTVEVDOUHZVGEF
        GHIBKNMVHVGECDIUNZGINVHAEVIGUIUFZUJVEVDSUHZUKZABETVEVDPUHZULZVGEFGHIVCK
        NMVHVLAVEVDUOZULZVGCEBVCIUNZACETVEVDQUHVGEFBVCGHIKMNVHVNVPVFVDUPZVRVLVM
        VOUQZURADFTVEVDRUHVGEVQVIVJVSVKUSUTAUAEFGHIBKMNOAEVIGINOSUKPVAVB $.
    $}

    ${
      colperp.a $e |- ( ph -> A e. P ) $.
      colperp.b $e |- ( ph -> B e. P ) $.
      colperp.c $e |- ( ph -> C e. P ) $.
      colperp.1 $e |- ( ph -> ( A L B ) ( perpG ` G ) D ) $.
      colperp.2 $e |- ( ph -> ( C e. ( A L B ) \/ A = B ) ) $.
      colperp.3 $e |- ( ph -> A =/= C ) $.
      $( Deduce a perpendicularity from perpendicularity and colinearity.
         (Contributed by Thierry Arnoux, 8-Dec-2019.) $)
      colperp $p |- ( ph -> ( A L C ) ( perpG ` G ) D ) $=
        ( cperpg cfv perpln1 tglnne tglinerflx1 wceq wcel neneqd orcomd ord mpd
        co wn tglinethru eqbrtrrd ) ABCIUMZBDIUMEGUBUCAUQFBDGHIKMNOPRUAUAAUQEGI
        NOSUDZAFBCGHIKMNOPQAFGHIBCKMNOPQURUEZUFABCUGZUNDUQUHZABCUSUIAUTVAAVAUTT
        UJUKULUOSUP $.
    $}

    ${
      colperpexlem.s $e |- S = ( pInvG ` G ) $.
      colperpexlem.m $e |- M = ( S ` A ) $.
      colperpexlem.n $e |- N = ( S ` B ) $.
      colperpexlem.k $e |- K = ( S ` Q ) $.
      colperpexlem.a $e |- ( ph -> A e. P ) $.
      colperpexlem.b $e |- ( ph -> B e. P ) $.
      colperpexlem.c $e |- ( ph -> C e. P ) $.
      colperpexlem.q $e |- ( ph -> Q e. P ) $.
      colperpexlem.1 $e |- ( ph -> <" A B C "> e. ( raG ` G ) ) $.
      colperpexlem.2 $e |- ( ph -> ( K ` ( M ` C ) ) = ( N ` C ) ) $.
      $( Lemma for ~ colperp .  First part of lemma 8.20 of [Schwabhauser]
         p. 62.  (Contributed by Thierry Arnoux, 27-Oct-2019.) $)
      colperpexlem1 $p |- ( ph -> <" B A Q "> e. ( raG ` G ) ) $=
        ( cs3 crag cfv wcel co wceq mircl eqid eqeltrd mirbtwn tgbtwncom fveq1i
        syl6eq oveq2d eleqtrd mirbtwni mirmir axtgcgrrflx miriso 3eqtr2d mircgr
        eqtr3d eqidd s3eqd wa fveq2d cstrkg adantr mircinv wne btwncolg1 colcom
        simpr ragcol pm2.61dane mirrag eqeltrrd israg mirmir2 eqtr4d tgcgrcomlr
        mpbid tgifscgr oveq2i mpbird ) ACBFUJHUKULZUMCFMUNZCFBGULZULZMUNZUOAWPC
        FLULZMUNWSAFCWTCEHIMOPQSUGUEABEGHIKLMFOPQRTSUDUAUGUPZUEADLULZFDCGULZULZ
        CEXDLULZWTHCIDMOPQSABEGHIKLMDOPQRTSUDUAUFUPZUGACEGHIKXCMDOPQRTSUEXCUQZU
        FUPZUEABEGHIKLMXDOPQRTSUDUAXHUPZXAUFUEAFXBXBJULZIUNXBXDIUNAXJFXBEHIMOPQ
        SAXJDNULZEUIACEGHIKNMDOPQRTSUEUBUFUPURUGXFAFXBEGHIKJMOPQRTSUGUCXFUSUTAX
        JXDXBIAXJXKXDUIDNXCUBVAVBZVCVDZAWTXEXBLULZIUNXEDIUNABEGHIKLMXDFXBOPQRTS
        UDUAXHUGXFAXBFXDEHIMOPQSXFUGXHXMUTVEAXNDXEIABDEGHIKLMOPQRTSUDUAUFVFZVCV
        DAXBXDMUNXDXBMUNXEXNMUNXEDMUNAEHIMXBXDOPQSXFXHVGABEGHIKLMXDXBOPQRTSUDUA
        XHXFVHAXNDXEMXOVCVIAFXDMUNZFXBMUNZWTXNMUNWTDMUNAFXJMUNXPXQAXJXDFMXLVCAF
        XBEGHIKJMOPQRTSUGUCXFVJVKABEGHIKLMFXBOPQRTSUDUAUGXFVHAXNDWTMXOVCVIACXBC
        XEEHIMOPQSUEXFUEXIACXBMUNZCXBCLULZGULULZMUNZCXEMUNACXSXBUJZWOUMXRYAUOAX
        SLULZXSXBUJYBWOAYCXSXBXBCXSABCEGHIKLMOPQRTSUDUAUEVFAXSVLAXBVLVMAXSCDBEG
        HIKLMOPQRTSABEGHIKLMCOPQRTSUDUAUEUPZUEUFAXSCDUJZWOUMBCABCUOZVNZYEBCDUJZ
        WOYGXSCDDBCYGBLULXSBYGBCLAYFWBVOYGBEGHIKLMOPQRTAHVPUMZYFSVQABEUMZYFUDVQ
        UAVRVKYGCVLYGDVLVMAYHWOUMZYFUHVQURABCVSZVNZBCDXSEGHIKMOPQRTAYIYLSVQZAYJ
        YLUDVQZACEUMYLUEVQZADEUMYLUFVQYMBEGHIKLMCOPQRTYNYOUAYPUPZAYKYLUHVQAYLWB
        YMEHIKXSCBORQYNYQYPYOYMEHIKXSCBORQYNYQYPYOYMBCEGHIKLMOPQRTYNYOUAYPUSVTW
        AWCWDUAUDWEWFACXSXBEGHIKMOPQRTSUEYDXFWGWKAXEXTCMABEGHIKLMDCOPQRTSUDUAUF
        UEWHVCWIWJACXDCDEHIMOPQSUEXHUEUFACDEGHIKXCMOPQRTSUEXGUFVJWJWLWJWTWRCMFL
        WQUAVAWMVBACBFEGHIKMOPQRTSUEUDUGWGWN $.

      colperpexlem2.e $e |- ( ph -> B =/= C ) $.
      $( Lemma for ~ colperpex .  Second part of lemma 8.20 of [Schwabhauser]
         p. 62.  (Contributed by Thierry Arnoux, 10-Nov-2019.) $)
      colperpexlem2 $p |- ( ph -> A =/= Q ) $=
        ( wne wceq wn wa cfv simpr fveq2d 3eqtr4g fveq1d mirmir adantr 3eqtr3rd
        wb mirinv mpbid ex necon3ad mpd neqned ) ABFACDUKBFULZUMUJAVJCDAVJCDULZ
        AVJUNZDNUOZDULZVKVLDLUOZLUOZVOJUOZDVMVLVOLJVLBGUOFGUOLJVLBFGAVJUPUQUAUC
        URUSAVPDULVJABDEGHIKLMOPQRTSUDUAUFUTVAAVQVMULVJUIVAVBAVNVKVCVJACDEGHIKN
        MOPQRTSUEUBUFVDVAVEVFVGVHVI $.
    $}

    ${
      $d .- p s t x $.  $d A d p s t x $.  $d B d p s t x $.  $d C d p s t x $.
      $d G d p s t x $.  $d I d p s t x $.  $d L d p s t x $.
      $d P d p s t x $.  $d d p s t x ph $.
      colperpex.1 $e |- ( ph -> A e. P ) $.
      colperpex.2 $e |- ( ph -> B e. P ) $.
      colperpex.3 $e |- ( ph -> C e. P ) $.
      colperpex.4 $e |- ( ph -> A =/= B ) $.
      ${
        colperpexlem3.1 $e |- ( ph -> -. C e. ( A L B ) ) $.
        $( Lemma for ~ colperpex .  Case 1 of theorem 8.21 of [Schwabhauser]
           p. 63.  (Contributed by Thierry Arnoux, 20-Nov-2019.) $)
        colperpexlem3 $p |- ( ph
          -> E. p e. P ( ( A L p ) ( perpG ` G ) ( A L B )
          /\ E. t e. P ( ( t e. ( A L B ) \/ A = B ) /\ t e. ( C I p ) ) ) ) $=
          ( vx cv co cperpg cfv wbr wcel wceq wo wrex cmir eqid cstrkg ad2antrr
          wa crn tgelrnln simplr tglnpt mircl mircgr cs3 crag wn nelne2 syl2anc
          tglinecom simpr eqbrtrd perpcom perprag israg eqtr2d midexlem mirbtwn
          wne mpbid eqcomd oveq1d eleqtrd tgtrisegint ad3antrrr simpllr simplrr
          oveq2d axtgbtwnid fveq2d fveq1d eqtr4d mirinv eleqtrrd oveq12d mircom
          colperpexlem2 eqnetrd adantr mireq neneqd pm2.65da neqned tglineelsb2
          mircinv btwnlng2 necomd ad5antr 3eqtr4d tglinerflx1 elind tglinerflx2
          eqtr3d colperpexlem1 ragcom ragperp pm2.61dane orcd tglineeltr simprl
          eqeltrd btwnlng1 tgbtwncom jca32 ex reximdva mpd r19.42v sylib footex
          r19.29a ) AEUBUCZIUDZCDIUDZGUEUFZUGZCKUCZIUDZYLYMUGZBUCZYLUHZCDUIZUJZ
          YREYOHUDUHZUPZBFUKUPZKFUKZUBYLAYJYLUHZUPZYNUPZECGULUFZUFZUFZEYJUUIUFZ
          UFZYOUUIUFZUFZUIZKFUKUUEUUHKUUMUUKCFUUIGHIUUNJLMNOUUIUMZAGUNUHZUUFYNP
          UOZUUNUMZUUHYJFUUIGHIUULJELMNOUUQUUSUUHYLFGHIYJLONUUSAYLIUQUHZUUFYNAF
          GHICDLNOPQRTURZUOZAUUFYNUSZUTZUULUMZAEFUHZUUFYNSUOZVAZUUHCFUUIGHIUUJJ
          ELMNOUUQUUSACFUHZUUFYNQUOZUUJUMZUVHVAZUVKUUHCUUKJUDCEJUDZCUUMJUDZUUHC
          EFUUIGHIUUJJLMNOUUQUUSUVKUVLUVHVBUUHCYJEVCGVDUFZUHZUVNUVOUIUUHCDYJEFG
          HIJLMNOUUSUVKADFUHZUUFYNRUOZUVDUVHUUHYJEIUDZYLFGHIJLMNOUUSUUHFGHIYJEL
          NOUUSUVEUVHUUHUUFEYLUHVEZYJEVQZUVDAUWAUUFYNUAUOYJEYLVFVGZURUVCUUHUVTY
          KYLYMUUHFYJEGHILNOUUSUVEUVHUWCVHUUGYNVIZVJVKVLZUUHCYJEFUUIGHIJLMNOUUQ
          UUSUVKUVEUVHVMVRVNVOUUHUUPUUDKFUUHYOFUHZUPZUUPUUDUWGUUPUPZYQUUCUPZBFU
          KZUUDUWHYRYOEHUDUHZYRCYJHUDZUHZUPZBFUKUWJUWHUUKCEUUMFYJYOGHJBLMNUUHUU
          RUWFUUPUUSUOZUUHUUKFUHUWFUUPUVMUOUUHUVJUWFUUPUVKUOZUUHUVGUWFUUPUVHUOZ
          UUHUUMFUHZUWFUUPUVIUOZUUHYJFUHZUWFUUPUVEUOZUUHUWFUUPUSZUWHCEFUUIGHIUU
          JJLMNOUUQUWOUWPUVLUWQVPUWHYJEFUUIGHIUULJLMNOUUQUWOUXAUVFUWQVPZUWHYOUU
          OUUMHUDUUKUUMHUDUWHYOUUMFUUIGHIUUNJLMNOUUQUWOUXBUUTUWSVPUWHUUOUUKUUMH
          UWHUUKUUOUWGUUPVIVSZVTWAWBUWHUWNUWIBFUWHYRFUHZUPZUWNUWIUXFUWNUPZYQUUA
          UUBUXGYQYJCUXGYJCUIZUPZYPYKYLYMUXIYRYOIUDZYPYKUXIYRCYOIUXICYRUXIFGHJC
          YRLMNUWHUURUXEUWNUXHUWOWCZUWHUVJUXEUWNUXHUWPWCUWHUXEUWNUXHWDZUXIYRUWL
          CCHUDUXFUWKUWMUXHWEZUXIYJCCHUXGUXHVIZWFWAWGVSZVTUXIYOYRIUDUUMYJIUDZUX
          JYKUXIYOUUMYRYJIUXIUUOUUMUIYOUUMUIUXIUUOUUKUUMUWHUUOUUKUIUXEUWNUXHUXD
          WCUXIEUULUUJUXIYJCUUIUXNWHWIWJUXIYOUUMFUUIGHIUUNJLMNOUUQUXKUWHUWFUXEU
          WNUXHUXBWCZUUTUWHUWRUXEUWNUXHUWSWCZWKVRUXIYJYRUXIFGHJYJYRLMNUXKUWHUWT
          UXEUWNUXHUXAWCZUXLUXIYRUWLYJYJHUDUXMUXIYJCYJHUXNVTWLWGVSWMUXIFYRYOGHI
          LNOUXKUXLUXQUXIYRCYOUXOUWHCYOVQZUXEUWNUXHUWHCYJEFYOUUIGHUUNIUUJJUULLM
          NOUWOUUQUVLUVFUUTUWPUXAUWQUXBUUHUVQUWFUUPUWEUOZUWHYOUUMUUKFUUIGHIUUNJ
          LMNOUUQUWOUXBUUTUWSUXDWNZUUHUWBUWFUUPUWCUOZWOZWCWPVHUXIUVTYJUUMIUDYKU
          XPUXIFYJEUUMGHILNOUXKUXSUWHUVGUXEUWNUXHUWQWCZUWHUWBUXEUWNUXHUYCWCZUXR
          UXIUUMYJUXIUUMYJUIZYJEUIUXIUYGUPZYJYJEFUUIGHIUULJLMNOUUQUXIUURUYGUXKW
          QZUXIUWTUYGUXSWQZUVFUYJUXIUVGUYGUYEWQUYHYJUULUFYJUUMUYHYJFUUIGHIUULJL
          MNOUUQUYIUYJUVFXCUXIUYGVIWJWRUYHYJEUXIUWBUYGUYFWQWSWTXAZUXIFGHIYJEUUM
          LNOUXKUXSUYEUXRUYFUWHYJUUMEHUDUHUXEUWNUXHUXCWCXDXBUXIFEYJGHILNOUXKUYE
          UXSUUHEYJVQUWFUUPUXEUWNUXHUUHYJEUWCXEXFVHUXIFUUMYJGHILNOUXKUXRUXSUYKV
          HXGXGXKUUHYNUWFUUPUXEUWNUXHUWDXFVJUXGYJCVQZUPZYPYLFYOGHIJYJCLMNOUWHUU
          RUXEUWNUYLUWOWCZUYMFGHICYOLNOUYNUWHUVJUXEUWNUYLUWPWCZUWHUWFUXEUWNUYLU
          XBWCZUWHUXTUXEUWNUYLUYDWCZURUUHUVAUWFUUPUXEUWNUYLUVCXFUYMYPYLCUYMFCYO
          GHILNOUYNUYOUYPUYQXHUUHCYLUHZUWFUUPUXEUWNUYLUUHFCDGHILNOUUSUVKUVSACDV
          QZUUFYNTUOZXHZXFXIUYMFCYOGHILNOUYNUYOUYPUYQXJUUHUUFUWFUUPUXEUWNUYLUVD
          XFZUYMCYOUYQXEUXGUYLVIZUYMYJCYOFUUIGHIJLMNOUUQUYNUWHUWTUXEUWNUYLUXAWC
          ZUYOUYPUWHYJCYOVCUVPUHUXEUWNUYLUWHCYJEFYOUUIGHUUNIUUJJUULLMNOUWOUUQUV
          LUVFUUTUWPUXAUWQUXBUYAUYBXLWCXMXNXOUXGUUAYJCUXIYSYTUXIYRCYLUXOUUHUYRU
          WFUUPUXEUWNUXHVUAXFXSXPUYMYSYTUYMFCDYRYJGHILNOUYNUYOUUHUVRUWFUUPUXEUW
          NUYLUVSXFUUHUYSUWFUUPUXEUWNUYLUYTXFVUDVUCVUBUWHUXEUWNUYLWDZUYMFGHICYJ
          YRLNOUYNUYOVUDVUEUYMYJCVUCXEUXFUWKUWMUYLWEXTXQXPXOUXGYOYREFGHJLMNUWHU
          URUXEUWNUWOUOUWHUWFUXEUWNUXBUOUWHUXEUWNUSUWHUVGUXEUWNUWQUOUXFUWKUWMXR
          YAYBYCYDYEYQUUCBFYFYGYCYDYEAUBYLEFGHIJLMNOPUVBSUAYHYI $.
      $}

      colperpex.5 $e |- ( ph -> G TarskiGDim>= 2 ) $.
      $( In dimension 2 and above, on a line ` ( A L B ) ` there is always a
         perpendicular ` P ` from ` A ` on a given plane (here given by ` C ` ,
         in case ` C ` does not lie on the line).  Theorem 8.21 of
         [Schwabhauser] p. 63.  (Contributed by Thierry Arnoux,
         20-Nov-2019.) $)
      colperpex $p |- ( ph -> E. p e. P ( ( A L p ) ( perpG ` G ) ( A L B )
        /\ E. t e. P ( ( t e. ( A L B ) \/ A = B ) /\ t e. ( C I p ) ) ) ) $=
        ( vd vs co wcel cv cperpg cfv wbr wceq wo wa wn cstrkg ad3antrrr simplr
        wrex simpr colperpexlem3 simprl ad5antr simp-5r orcd tgbtwntriv1 orbi1d
        wne eleq1 anbi12d rspcev syl12anc jca ex reximdva adantr c2 tglowdim2ln
        mpd cstrkgld r19.29a pm2.61dan ) AECDIUDZUEZCKUFZIUDWAGUGUHUIZBUFZWAUEZ
        CDUJZUKZWEEWCHUDZUEZULZBFUQZULZKFUQZAWBULZUBUFZWAUEUMZWNUBFWOWPFUEZULZW
        QULZWDUCUFZWAUEWGUKXAWPWCHUDUEULUCFUQZULZKFUQWNWTUCCDWPFGHIJKLMNOAGUNUE
        ZWBWRWQPUOACFUEZWBWRWQQUOADFUEZWBWRWQRUOWOWRWQUPACDVFZWBWRWQTUOWSWQURUS
        WTXCWMKFWTWCFUEZULZXCWMXIXCULZWDWLXIWDXBUTXJEFUEZWBWGUKZEWIUEZWLAXKWBWR
        WQXHXCSVAZXJWBWGAWBWRWQXHXCVBVCXJEWCFGHJLMNAXDWBWRWQXHXCPVAXNWTXHXCUPVD
        WKXLXMULBEFWEEUJZWHXLWJXMXOWFWBWGWEEWAVGVEWEEWIVGVHVIVJVKVLVMVQWOCDFGHI
        UBLNOAXDWBPVNAGVOVRUIWBUAVNAXEWBQVNAXFWBRVNAXGWBTVNVPVSAWBUMZULBCDEFGHI
        JKLMNOAXDXPPVNAXEXPQVNAXFXPRVNAXKXPSVNAXGXPTVNAXPURUSVT $.
    $}

    ${
      mideu.s $e |- S = ( pInvG ` G ) $.
      mideu.1 $e |- ( ph -> A e. P ) $.
      mideu.2 $e |- ( ph -> B e. P ) $.
      ${
        $d .- m r s x y $.  $d A m r s x y $.  $d B m r s x y $.  $d G r y $.
        $d I m r s x y $.  $d L m s y $.  $d O m r s x y $.  $d P m r s x y $.
        $d Q m r s x y $.  $d R m s x y $.  $d S m r s y $.  $d T m s x y $.
        $d ph m r s x y $.
        mideulem.1 $e |- ( ph -> A =/= B ) $.
        mideulem.2 $e |- ( ph -> Q e. P ) $.
        mideulem.3 $e |- ( ph -> O e. P ) $.
        mideulem.4 $e |- ( ph -> T e. P ) $.
        mideulem.5 $e |- ( ph -> ( A L B ) ( perpG ` G ) ( Q L B ) ) $.
        mideulem.6 $e |- ( ph -> ( A L B ) ( perpG ` G ) ( A L O ) ) $.
        mideulem.7 $e |- ( ph -> T e. ( A L B ) ) $.
        mideulem.8 $e |- ( ph -> T e. ( Q I O ) ) $.
        ${
          opphllem.1 $e |- ( ph -> R e. P ) $.
          opphllem.2 $e |- ( ph -> R e. ( B I Q ) ) $.
          opphllem.3 $e |- ( ph -> ( A .- O ) = ( B .- R ) ) $.
          ${
            $d M y $.
            mideulem2.1 $e |- ( ph -> X e. P ) $.
            mideulem2.2 $e |- ( ph -> X e. ( T I B ) ) $.
            mideulem2.3 $e |- ( ph -> X e. ( R I O ) ) $.
            mideulem2.4 $e |- ( ph -> Z e. P ) $.
            mideulem2.5 $e |- ( ph -> X e. ( ( ( S ` A ) ` O ) I Z ) ) $.
            mideulem2.6 $e |- ( ph -> ( X .- Z ) = ( X .- R ) ) $.
            mideulem2.7 $e |- ( ph -> M e. P ) $.
            mideulem2.8 $e |- ( ph -> R = ( ( S ` M ) ` Z ) ) $.
            $( Lemma for ~ opphllem , which is itself used for ~ mideu .
               (Contributed by Thierry Arnoux, 19-Feb-2020.) $)
            mideulem2 $p |- ( ph -> B = M ) $=
              ( vy cv co cperpg cfv wbr wceq oveq2 breq1d tgelrnln wn wa adantr
              wcel wne neneqd perpln2 tglnne tgcgrneq necomd jca wo cstrkg crag
              cs3 tglinerflx2 perpcom tglinecom breqtrd btwncolg3 ragcol ragcom
              perprag simpr orcd ragflat3 oran pm2.65da foot tglinerflx1 pm4.56
              sylib ncolne1 eqnetrd tgbtwncom coltr3 eqbrtrrd neleqtrrd syl2anc
              wreu nelne2 tgbtwnne btwnlng1 lnrot2 oveq1d eleqtrd eqtrd eqbrtrd
              tglineelsb2 elind ragperp reu2eqd mtand neqned eqid mircl colrot1
              crn colcom israg mpbid eqcomd eqidd mircom krippen oveq2d eqeltrd
              btwnlng3 tglineeltr 3eqtr4rd mircgr mirbtwn eleqtrrd tgbtwnconn22
              tgcgrcomlr ismir miduniq1 eqtr3d eqtr2d mpbird ) AFVDVEZKVFZBCKVF
              ZIVGVHZVIZFCKVFZUUPUUQVIZFLKVFZUUPUUQVIVDUUPCLUUNCVJUUOUUSUUPUUQU
              UNCFKVKVLZUUNLVJUUOUVAUUPUUQUUNLFKVKVLAVDUUPFDIJKMQRSTUAADIJKBCQS
              TUAUCUDUEVMZUMAFUUPVQZBCVJZVNZFCVJZVNZVOZAUVDVOZUVFUVHUVJBCABCVRU
              VDUEVPVSUVJFCUVJCFACFVRUVDABNCFDIJMQRSUAUCUGUDUMUOADIJKBNQSTUAUCU
              GAUUPBNKVFZIKTUAUJVTZWAZWBZVPWCVSWDUVJUVEUVGWEUVIVNUVJBCFDGIJKMQR
              STUBAIWFVQZUVDUAVPABDVQZUVDUCVPACDVQZUVDUDVPAFDVQZUVDUMVPABCFWHIW
              GVHZVQUVDAFCBDGIJKMQRSTUBUAUMUDUCAECBFDGIJKMQRSTUBUAUFUDUCUMAECCB
              DIJKMQRSTUAUFUDADECIJKQSTUAUFUDADIJKECQSTUAUFUDAUUPECKVFZIKTUAUIV
              TZWAZWIUCAUVTUUPCBKVFZUUQAUUPUVTDIJKMQRSTUAUVCUWAUIWJADBCIJKQSTUA
              UCUDUEWKZWLWPUWBADIJKCFEQTSUAUDUMUFUNWMWNWOZVPUVJUVDUVEAUVDWQWRWS
              UVEUVGWTXEXAZXBZADBCIJKQSTUAUCUDUEWIZADBCLOIJKQSTUAUCUDUEUPAOBAOB
              VJZUVEABCUEVSZAUWIVOZUURFBKVFZUUPUUQVIUUTVDUUPBCUUNBVJUUOUWLUUPUU
              QUUNBFKVKVLUVBAUURVDUUPXMUWIUWGVPABUUPVQUWIADBCIJKQSTUAUCUDUEXCZV
              PACUUPVQUWIUWHVPUWKUWLUVKUUPUUQUWKUWLBFKVFZUVKUWKDFBIJKQSTAUVOUWI
              UAVPZAUVRUWIUMVPZAUVPUWIUCVPZAFBVRUWIADIJKFBCQSTUAUMUCUDAUVDVNZUV
              FVOUVDUVEWEVNAUWRUVFUWFUWJWDUVDUVEXDXEXFVPZWKUWKDBFNIJKQSTUWOUWQU
              WPUWKFBUWSWCZANDVQZUWIUGVPZANBVRUWIABNUVMWCZVPUWKNOFKVFUWNUWKDIJK
              OFNQSTUWOAODVQUWIUPVPZUWPUXBUWKOBFAUWIWQZUWTXGUWKDIJKFNOQSTUWOUWP
              UXBUXDUWKNFANFVRUWIANOFDIJMQRSUAUGUPUMAFONDIJMQRSUAUMUPUGURXHZAOU
              UPVQZNUUPVQVNONVRAHBCODIJKQSTUAUHUCUDUPUKUQXIZAUUPUWCNANUWCVQZCBV
              JZVNZNBVJZVNZVOZAUXIVOZUXKUXMAUXKUXIACBABCUEWCZVSVPAUXMUXIANBUXCV
              SVPWDUXOUXJUXLWEUXNVNUXOCBNDGIJKMQRSTUBAUVOUXIUAVPAUVQUXIUDVPAUVP
              UXIUCVPAUXAUXIUGVPACBNWHUVSVQUXIACBBNDIJKMQRSTUAUDUCADCBIJKQSTUAU
              DUCUXPWIUGAUUPUWCUVKUUQUWDUJXJWPZVPUXOUXIUXJAUXIWQWRWSUXJUXLWTXEX
              AUWDXKONUUPXNXLXOVPWCZAOFNJVFZVQZUWIURVPXPUXRXQUWKOBFKUXEXRXSYBXT
              AUVKUUPUUQVIUWIAUUPUVKDIJKMQRSTUAUVCUVLUJWJVPYAUWKUUPUUSDIJKMQRST
              UWOAUUPKYKZVQUWIUVCVPAUUSUYAVQUWIADIJKFCQSTUAUMUDACFUVNWCZVMZVPAU
              UPUUSUUQVIUWIAUUPUUSDBIJKMFCQRSTUAUVCUYCAUUPUUSCUWHADFCIJKQSTUAUM
              UDUYBWIYCUWMADFCIJKQSTUAUMUDUYBXCUEUYBUWEYDZVPWJYEYFZYGZUXHVBADIJ
              KBOLQSTUAUCUPVBAOBUYFWCANNBGVHZVHZODGFPIJKUYGMLGVHZBLQRSTUBUAUYGY
              HZUYIYHZUGABDGIJKUYGMNQRSTUBUAUCUYJUGYIZUPUMUSUCVBUXFUTAOBNWHUVSV
              QONMVFZOUYHMVFZVJZACBNODGIJKMQRSTUBUAUDUCUGUPUXQUXPADIJKCBOQTSUAU
              DUCUPADIJKBCOQTSUAUCUDUPAUXGUVEUXHWRYLYJWNAOBNDGIJKMQRSTUBUAUPUCU
              GYMYNZAOPMVFZOFMVFZVAYOAUYHYPAFUYIVHZPALPFDGIJKUYIMQRSTUBUAVBUYKU
              SAFPUYIVHZVCYOYQZYOYRUUAUUBZAUUPUUSDIJKMQRSTUAUVCUYCUYDWJAUUPUVAD
              IJKMQRSTUAUVCADIJKFLQSTUAUMVBALFALUUPVQZUWRLFVRZVUBUWFLFUUPXNZXLW
              CZVMZAUUPUVADOIJKMFLQRSTUAUVCVUGAUUPUVALVUBADFLIJKQSTUAUMVBVUFWIY
              CUXHADFLIJKQSTUAUMVBVUFXCALOALOALOVJZUWIUYEAVUHVOZLOBAVUHWQZVUILB
              DGIJKMNQRSTUBAUVOVUHUAVPZALDVQVUHVBVPZAUVPVUHUCVPAUXAVUHUGVPZVUIU
              YHNUYIVHVUILNUYHDGIJKUYIMQRSTUBVUKVULUYKVUMAUYHDVQVUHUYLVPZVUIUYM
              UYNLNMVFLUYHMVFAUYOVUHUYPVPVUILONMVUJXRVUILOUYHMVUJXRUUCVUIPLFUYH
              DNIJQSVUKAPDVQVUHUSVPZVULAUVRVUHUMVPZVUNVUMVUIFLPLDIJMQRSVUKVUPVU
              LVUOVULVUILFLPDIJMQRSVUKVULVUPVULVUOVUILFMVFLUYTMVFLPMVFVUIFUYTLM
              AFUYTVJVUHVCVPYSVUILPDGIJKUYIMQRSTUBVUKVULUYKVUOUUDXTUUHVUILFVUIV
              UCUWRVUDVUILOUUPVUJAUXGVUHUXHVPYTAUWRVUHUWFVPVUEXLWCZWBVUQVUIFLPD
              IJMQRSVUKVUPVULVUOALFPJVFZVQVUHALUYTPJVFVURALPDGIJKUYIMQRSTUBUAVB
              UYKUSUUEAFUYTPJVCXRUUFVPXHVUIUYHLPDIJMQRSVUKVUNVULVUOVUILOUYHPJVF
              ZVUJAOVUSVQVUHUTVPYTXHVUILOUXSVUJAUXTVUHURVPYTUUGUUIYOUUJUUKYFYGW
              CVUFAOLFWHUVSVQUYROUYSMVFZVJAVUTUYQUYRAUYSPOMVUAYSVAUULAOLFDGIJKM
              QRSTUBUAUPVBUMYMUUMYDWJYE $.
          $}

          $( Lemma 8.24 of [Schwabhauser] p. 66.  This is used later for
             ~ mideulem and later for ~ opphl .  (Contributed by Thierry
             Arnoux, 21-Dec-2019.) $)
          opphllem $p |- ( ph
           -> E. x e. P ( B = ( ( S ` x ) ` A ) /\ O = ( ( S ` x ) ` R ) ) ) $=
            ( vs vm cv co wcel cfv wceq cstrkg adantr eqid simprl necomd neneqd
            wa wn wo perpln2 tglnne jca cs3 crag tglinerflx2 tglinecom eqbrtrrd
            cperpg simpr orcd ragflat3 oran sylib pm2.65da neleqtrrd wne pm4.56
            perprag simprrr tgbtwncom simprrl coltr3 nelne2 syl2anc israg mpbid
            ncolrot2 tgbtwnne ad3antrrr ad2antrr simplr mirbtwn ad4antr ad5antr
            mircl wbr simp-5r simprd simpld simpllr simprr eqcomd fveq2d fveq1d
            mideulem2 midexlem r19.29a oveq1d eleqtrrd mircgr tgcgrcomlr oveq2d
            eqtrd 3eqtrd tgcgrextend axtgcgrrflx colcom colrot1 ragcol tgifscgr
            eqtr4d axtgsegcon btwncolg1 symquadlem ismir axtgpasch reximddv ) A
            BUPZIDKUQURZYRGNKUQURZVGZDCYRHUSZUSZUTZNGUUBUSUTZVGBEAYREURZUUAVGZV
            GZUUDUUEUUHDNCGEHJKLUUBMYROPQRTAJVAURZUUGSVBZUUBVCZADEURZUUGUBVBZAN
            EURZUUGUEVBZACEURZUUGUAVBZAGEURZUUGUKVBZAUUFUUAVDZUUHEJKLCDNORQUUJU
            UQUUMUUOUUHNCDLUQZURZVHZCDUTZVHZVGUVBUVDVIVHUUHUVCUVEUUHUVADCLUQZNA
            NUVFURZVHUUGAUVGDCUTZVHZNCUTZVHZVGZAUVGVGZUVIUVKAUVIUVGADCACDUCVEZV
            FVBAUVKUVGANCACNAEJKLCNOQRSUAUEAUVACNLUQZJLRSUHVJVKVEVFVBVLUVMUVHUV
            JVIUVLVHUVMDCNEHJKLMOPQRTAUUIUVGSVBAUULUVGUBVBAUUPUVGUAVBAUUNUVGUEV
            BADCNVMJVNUSZURZUVGADCCNEJKLMOPQRSUBUAAEDCJKLOQRSUBUAUVNVOUEAUVAUVF
            UVOJVRUSZAECDJKLOQRSUAUBUCVPZUHVQWHZVBUVMUVGUVHAUVGVSVTWAUVHUVJWBWC
            WDZVBAUVAUVFUTUUGUVSVBWEUUHCDACDWFZUUGUCVBZVFVLUVBUVDWGWCWQUUHNYRGE
            JKMOPQUUJUUOUUTUUSUUHGYRNEJKMOPQUUJUUSUUTUUOAUUFYSYTWIZWJZUUHYRUVAU
            RZUVCYRNWFUUHICDYREJKLOQRUUJAIEURZUUGUFVBZUUQUUMUUTAIUVAURZUUGUIVBZ
            AUUFYSYTWKWLZAUVCUUGAUVAUVFNUWAUVSWEVBYRNUVAWMWNWRUUHYRNCHUSZUSZUNU
            PZKUQURZYRUWNMUQYRGMUQUTZVGZDNMUQZCGMUQZUTUNEUUHUWNEURZVGZUWQVGZUWR
            DUWMMUQZUWSAUWRUXCUTZUUGUWTUWQAUVQUXDUVTADCNEHJKLMOPQRTSUBUAUEWOWPW
            SUXBUWMCNGEGDJUWMKUWNMOPQAUUIUUGUWTUWQSWSZUUHUWMEURUWTUWQUUHCEHJKLU
            WLMNOPQRTUUJUUQUWLVCZUUOXEZWTZAUUPUUGUWTUWQUAWSZAUUNUUGUWTUWQUEWSZA
            UURUUGUWTUWQUKWSZUXKAUULUUGUWTUWQUBWSZUUHUWTUWQXAZUXHUXBCNEHJKLUWLM
            OPQRTUXEUXIUXFUXJXBZUXBDUWNDHUSZUSZUWNKUQGUWNKUQUXBDUWNEHJKLUXOMOPQ
            RTUXEUXLUXOVCZUXMXBUXBGUXPUWNKUXBGUWNUOUPZHUSZUSZUTZGUXPUTUOEUXBUXR
            EURZVGZUYAVGZGUXTUXPUYCUYAVSZUYDUWNUXSUXOUYDUXRDHUYDDUXRUYDCDEFGHIJ
            KLUXRMNYRUWNOPQRUXBUUIUYBUYAUXEWTTUXBUUPUYBUYAUXIWTUXBUULUYBUYAUXLW
            TUUHUWBUWTUWQUYBUYAUWCXCAFEURUUGUWTUWQUYBUYAUDXDUXBUUNUYBUYAUXJWTUU
            HUWGUWTUWQUYBUYAUWHXCAUVAFDLUQUVRXFUUGUWTUWQUYBUYAUGXDAUVAUVOUVRXFU
            UGUWTUWQUYBUYAUHXDUUHUWIUWTUWQUYBUYAUWJXCAIFNKUQURUUGUWTUWQUYBUYAUJ
            XDUXBUURUYBUYAUXKWTAGDFKUQURUUGUWTUWQUYBUYAULXDACNMUQZDGMUQZUTZUUGU
            WTUWQUYBUYAUMXDUXBUUFUYBUYAUUHUUFUWTUWQUUTWTZWTUYDYSYTUYDUUFUUAAUUG
            UWTUWQUYBUYAXGXHZXIUYDYSYTUYJXHUXBUWTUYBUYAUXMWTUYDUWOUWPUXAUWQUYBU
            YAXJXIUXBUWPUYBUYAUXAUWOUWPXKZWTUXBUYBUYAXAUYEXOXLXMXNYCUXBUOUWNGYR
            EHJKLUXSMOPQRTUXEUXSVCUXMUXKUYIUYKXPXQZXRXSZUXBUWMCNGEDUWNJKMOPQUXE
            UXHUXIUXJUXKUXLUXMUXNUYMUXBCUWMDGEJKMOPQUXEUXIUXHUXLUXKUXBCUWMMUQUY
            FUYGUXBCNEHJKLUWLMOPQRTUXEUXIUXFUXJXTAUYHUUGUWTUWQUMWSZYCYAUXBUYFUY
            GDUXPMUQDUWNMUQUYNUXBGUXPDMUYLYBUXBDUWNEHJKLUXOMOPQRTUXEUXLUXQUXMXT
            YDZYEUYOUXBEJKMUWMGOPQUXEUXHUXKYFUXBNGMUQGNMUQUWNUWMMUQUXBEJKMNGOPQ
            UXEUXJUXKYFUXBGYRNUWNEYRUWMJKMOPQUXEUXKUYIUXJUXMUYIUXHUUHYTUWTUWQUW
            DWTUXBUWMYRUWNEJKMOPQUXEUXHUYIUXMUXAUWOUWPVDWJUXBUWNYRMUQGYRMUQUXBY
            RUWNYRGEJKMOPQUXEUYIUXMUYIUXKUYKYAXLUXBYRCNVMUVPURYRNMUQYRUWMMUQUTU
            XBDCNYREHJKLMOPQRTUXEUXLUXIUXJUYIAUVQUUGUWTUWQUVTWSUUHDCWFUWTUWQUUH
            CDUWCVEWTUXBEJKLDCYRORQUXEUXLUXIUYIUXBEJKLCDYRORQUXEUXIUXLUYIUXBUWF
            UVDUUHUWFUWTUWQUWKWTVTYGZYHYIUXBYRCNEHJKLMOPQRTUXEUYIUXIUXJWOWPYEYC
            YJYKUUHUNYRGEJKMUWMYROPQUUJUXGUUTUUTUUSYLZXQZUUHCNDGEJKMOPQUUJUUQUU
            OUUMUUSAUYHUUGUMVBZYAUUHUWQYRUVFURUVHVIUNEUYPUYQXQUUHEJKLNGYRORQUUJ
            UUOUUSUUTUWEYMYNZUUHYRGNEHJKLUUBMOPQRTUUJUUTUUKUUSUUOUUHCYRDNEDYRJG
            KCMOPQUUJUUQUUTUUMUUOUUMUUTUUQUUSUUHDYRCEJKMOPQUUJUUMUUTUUQUUHYRUUC
            CKUQDCKUQUUHYRCEHJKLUUBMOPQRTUUJUUTUUKUUQXBUUHDUUCCKUYTXRXSZWJVUAUU
            HEJKMCDOPQUUJUUQUUMYFUUHYRDMUQYRUUCMUQYRCMUQUUHDUUCYRMUYTYBUUHYRCEH
            JKLUUBMOPQRTUUJUUTUUKUUQXTYCUYSUYRYJUWEYOVLAEIJKMGNDFBOPQSUEUBUDUFU
            KAFINEJKMOPQSUDUFUEUJWJULYPYQ $.
        $}

        ${
          mideulem.9 $e |- ( ph -> ( A .- O ) ( leG ` G ) ( B .- Q ) ) $.
          $( Lemma for ~ mideu .  We can assume mideulem.9 "without loss of
             generality" (Contributed by Thierry Arnoux, 25-Nov-2019.) $)
          mideulem $p |- ( ph -> E. x e. P B = ( ( S ` x ) ` A ) ) $=
            ( vr cv co wcel wceq wa cfv wrex simprrl cstrkg ad2antrr wne cperpg
            wbr simplr simprl simprr opphllem reximddv cleg legov mpbid r19.29a
            eqid ) AUKULZDFJUMUNZCMLUMZDVOLUMUOZUPZDCBULZGUQZUQUOZBEURUKEAVOEUN
            ZUPZVSUPZWBMVOWAUQUOZUPWBBEWEVTEUNWBWFUSWEBCDEFVOGHIJKLMNOPQAIUTUNW
            CVSRVASACEUNWCVSTVAADEUNWCVSUAVAACDVBWCVSUBVAAFEUNWCVSUCVAAMEUNWCVS
            UDVAAHEUNWCVSUEVAACDKUMZFDKUMIVCUQZVDWCVSUFVAAWGCMKUMWHVDWCVSUGVAAH
            WGUNWCVSUHVAAHFMJUMUNWCVSUIVAAWCVSVEWDVPVRVFWDVPVRVGVHVIAVQDFLUMIVJ
            UQZVDVSUKEURUJAUKCMDFEIJWILNOPWIVNRTUDUAUCVKVLVM $.
        $}
      $}

      $d .- p q s t x $.  $d A p q s t x y $.  $d B p q s t x y $.
      $d G p q s t x $.  $d I p q s t x $.  $d L p q s t x $.
      $d P p q s t x y $.  $d S p q t x y $.  $d ph p q s t x y $.
      mideu.3 $e |- ( ph -> G TarskiGDim>= 2 ) $.
      $( Existence of the midpoint, part Theorem 8.22 of [Schwabhauser] p. 64.
         Note that this proof requires a construction in 2 dimensions or more,
         i.e. it does not prove the existence of a midpoint in dimension 1, for
         a geometry restricted to a line.  (Contributed by Thierry Arnoux,
         25-Nov-2019.) $)
      midex $p |- ( ph -> E. x e. P B = ( ( S ` x ) ` A ) ) $=
        ( wa vq vp vt vs cv cfv wceq wrex wcel adantr cstrkg eqid mircinv simpr
        eqtr2d fveq2 fveq1d eqeq2d rspcev syl2anc wne co cperpg wbr wo ad2antrr
        cleg ad4antr simp-4r simpllr simp-5r perpln1 tgelrnln perpcom tglinecom
        simplr tglnne breqtrd simpld neneqd simprd orcomd ord mpd simprl simprr
        wn mideulem eqcomd mircom necomd crn eqeltrd 3brtr3d tgbtwncom reximddv
        eleqtrd ad3antrrr legtrid mpjaodan c2 cstrkgld colperpex r19.42v rexbii
        sylibr r19.29vva breqtrrd ex reximdv r19.29a pm2.61dane ) ADCBUEZFUFZUF
        ZUGZBEUHZCDACDUGZTZCEUIZDCCFUFZUFZUGZXQAXTXRQUJZXSYBCDXSCEFGHIYAJKLMNPA
        GUKUIZXROUJYDYAULUMAXRUNUOXPYCBCEXMCUGZXOYBDYFCXNYAXMCFUPUQURUSUTACDVAZ
        TZDUAUEZIVBZCDIVBZGVCUFZVDZXQUAEYHYIEUIZTZYMTZCUBUEZIVBZYKYLVDZUCUEZYKU
        IZXRVEZYTYIYQHVBUIZTZTZXQUBUCEEYPYQEUIZTZYTEUIZTZUUETZCYQJVBZDYIJVBZGVG
        UFZVDZXQUULUUKUUMVDZUUJUUNTZBCDEYIFYTGHIJYQKLMNYPYEUUFUUHUUEUUNYHYEYNYM
        AYEYGOUJZVFZVHZPYPXTUUFUUHUUEUUNYHXTYNYMAXTYGQUJZVFZVHZYPDEUIZUUFUUHUUE
        UUNYHUVCYNYMAUVCYGRUJZVFZVHZYPYGUUFUUHUUEUUNYHYGYNYMAYGUNZVFZVHZYPYNUUF
        UUHUUEUUNYHYNYMVPZVHZYPUUFUUHUUEUUNVIUUGUUHUUEUUNVJUUPYKYJYIDIVBYLUUPYJ
        YKEGHIJKLMNUUSUUPYJYKGINUUSYOYMUUFUUHUUEUUNVKZVLZUUPEGHICDKMNUUSUVBUVFU
        VIVMZUVLVNUUPEDYIGHIKMNUUSUVFUVKUUPEGHIDYIKMNUUSUVFUVKUVMVQVOVRUUPYRYKE
        GHIJKLMNUUSUUPYRYKGINUUSUUPYSUUDUUIUUEUUNVPZVSZVLUVNUVPVNUUPXRWGZUUAUUP
        CDUVIVTUUPXRUUAUUPUUAXRUUPUUBUUCUUPYSUUDUVOWAZVSWBWCWDUUPUUBUUCUVRWAUUJ
        UUNUNWHUUJUUOTZCDXNUFZUGZXPBEUVSXMEUIZUWATZTZXODUWDXMDCEFGHIXNJKLMNPUVS
        YEUWCYPYEUUFUUHUUEUUOUURVHZUJUVSUWBUWAWEXNULUVSUVCUWCYPUVCUUFUUHUUEUUOU
        VEVHZUJUWDCUVTUVSUWBUWAWFWIWJWIUVSBDCEYQFYTGHIJYIKLMNUWEPUWFYPXTUUFUUHU
        UEUUOUVAVHZUVSCDYPYGUUFUUHUUEUUOUVHVHZWKZYPUUFUUHUUEUUOVIZYPYNUUFUUHUUE
        UUOUVJVHZUUGUUHUUEUUOVJZUVSYQCIVBZDCIVBZEGHIJKLMNUWEUVSUWMYRIWLUVSYRUWM
        UVSECYQGHIKMNUWEUWGUWJUVSEGHICYQKMNUWEUWGUWJUVSYRYKGINUWEUVSYSUUDUUIUUE
        UUOVPZVSZVLZVQVOZWIUWQWMUVSEGHIDCKMNUWEUWFUWGUWIVMZUVSYRYKUWMUWNYLUWPUW
        RUVSECDGHIKMNUWEUWGUWFUWHVOZWNVNUVSYJUWNEGHIJKLMNUWEUVSYJYKGINUWEYOYMUU
        FUUHUUEUUOVKZVLUWSUVSYJYKUWNYLUXAUWTVRVNUVSYTYKUWNUVSUVQUUAUVSCDUWHVTUV
        SXRUUAUVSUUAXRUVSUUBUUCUVSYSUUDUWOWAZVSWBWCWDUWTWQUVSYIYTYQEGHJKLMUWEUW
        KUWLUWJUVSUUBUUCUXBWAWOUUJUUOUNWHWPUUJCYQDYIEGHUUMJKLMUUMULYPYEUUFUUHUU
        EUURWRYPXTUUFUUHUUEUVAWRYPUUFUUHUUEVJYPUVCUUFUUHUUEUVEWRYPYNUUFUUHUUEUV
        JWRWSWTYPYSUUDUCEUHTZUBEUHUUEUCEUHZUBEUHYPUCCDYIEGHIJUBKLMNUURUVAUVEUVJ
        UVHYHGXAXBVDZYNYMAUXEYGSUJZVFXCUXDUXCUBEYSUUDUCEXDXEXFXGYHYJUWNYLVDZUDU
        EZUWNUIDCUGVEUXHCYIHVBUITUDEUHZTZUAEUHYMUAEUHYHUDDCCEGHIJUAKLMNUUQUVDUU
        TUUTYHCDUVGWKUXFXCYHUXJYMUAEYHUXJYMYHUXJTYJUWNYKYLYHUXGUXIWEYHYKUWNUGUX
        JYHECDGHIKMNUUQUUTUVDUVGVOUJXHXIXJWDXKXL $.

      $( Existence and uniqueness of the midpoint, Theorem 8.22 of
         [Schwabhauser] p. 64.  (Contributed by Thierry Arnoux,
         25-Nov-2019.) $)
      mideu $p |- ( ph -> E! x e. P B = ( ( S ` x ) ` A ) ) $=
        ( wcel vy cv cfv wceq wrex wrmo wreu midex wral cstrkg ad2antrr simplrl
        wa wi simplrr simprl eqcomd simprr miduniq ralrimivva fveq2 fveq1d rmo4
        ex eqeq2d sylibr reu5 sylanbrc ) ADCBUBZFUCZUCZUDZBEUEVLBEUFZVLBEUGABCD
        EFGHIJKLMNOPQRSUHAVLDCUAUBZFUCZUCZUDZUMZVIVNUDZUNZUAEUIBEUIVMAVTBUAEEAV
        IETZVNETZUMZUMZVRVSWDVRUMZVIVNEFGHIJCDKLMNPAGUJTWCVROUKAWAWBVRULAWAWBVR
        UOACETWCVRQUKADETWCVRRUKWEDVKWDVLVQUPUQWEDVPWDVLVQURUQUSVDUTVLVQBUAEVSV
        KVPDVSCVJVOVIVNFVAVBVEVCVFVLBEVGVH $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Half-planes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d D a b $.  $d I a b $.  $d P a b $.
    hpg.p $e |- P = ( Base ` G ) $.
    hpg.d $e |- .- = ( dist ` G ) $.
    hpg.i $e |- I = ( Itv ` G ) $.
    hpg.o $e |- O = { <. a , b >. | ( ( a e. ( P \ D ) /\ b e. ( P \ D ) )
      /\ E. t e. D t e. ( a I b ) ) } $.
    ${
      $d A t u v $.  $d B t u v $.  $d D u v $.  $d I u v $.  $d P u v $.
      $d a b t u v $.
      islnopp.a $e |- ( ph -> A e. P ) $.
      islnopp.b $e |- ( ph -> B e. P ) $.
      $( The property for two points ` A ` and ` B ` to lie on the opposite
         sides of a set ` D ` Definition 9.1 of [Schwabhauser] p. 67.
         (Contributed by Thierry Arnoux, 19-Dec-2019.) $)
      islnopp $p |- ( ph -> ( A O B <-> ( ( -. A e. D /\ -. B e. D )
        /\ E. t e. D t e. ( A I B ) ) ) ) $=
        ( wcel wa vu vv wbr cdif cv co wrex wn wb eleq1 anbi1d id oveq1d eleq2d
        wceq rexbidv anbi12d anbi2d oveq2 copab simpl eqidd eleq12d simpr eqtri
        oveq12 cbvopabv brabg syl2anc biantrurd eldif syl6bbr bitr4d ) ACDJUCZC
        FEUDZSZDVOSZTZBUEZCDHUFZSZBEUGZTZCESUHZDESUHZTZWBTACFSZDFSZVNWCUIQRUAUE
        ZVOSZUBUEZVOSZTZVSWIWKHUFZSZBEUGZTZVPWLTZVSCWKHUFZSZBEUGZTWCUAUBCDFFJWI
        CUOZWMWRWPXAXBWJVPWLWICVOUJUKXBWOWTBEXBWNWSVSXBWICWKHXBULUMUNUPUQWKDUOZ
        WRVRXAWBXCWLVQVPWKDVOUJURXCWTWABEXCWSVTVSWKDCHUSUNUPUQJKUEZVOSZLUEZVOSZ
        TZVSXDXFHUFZSZBEUGZTZKLUTWQUAUBUTPXLWQKLUAUBXDWIUOZXFWKUOZTZXHWMXKWPXOX
        EWJXGWLXOXDWIVOVOXMXNVAXOVOVBZVCXOXFWKVOVOXMXNVDXPVCUQXOXJWOBEXOXIWNVSX
        DWIXFWKHVFUNUPUQVGVEVHVIAWFVRWBAWDVPWEVQAWDWGWDTVPAWGWDQVJCFEVKVLAWEWHW
        ETVQAWHWERVJDFEVKVLUQUKVM $.
    $}

    ${
      $d A t $.  $d B t $.  $d C t $.  $d D a b t $.  $d I a b t $.
      $d P a b $.  $d ph t $.
      islnoppd.a $e |- ( ph -> A e. P ) $.
      islnoppd.b $e |- ( ph -> B e. P ) $.
      islnoppd.c $e |- ( ph -> C e. D ) $.
      islnoppd.1 $e |- ( ph -> -. A e. D ) $.
      islnoppd.2 $e |- ( ph -> -. B e. D ) $.
      islnoppd.3 $e |- ( ph -> C e. ( A I B ) ) $.
      $( Deduce that ` A ` and ` B ` lie on opposite sides of line ` L ` .
         (Contributed by Thierry Arnoux, 16-Aug-2020.) $)
      islnoppd $p |- ( ph -> A O B ) $=
        ( wcel wn wa cv co wrex wceq simpr eleq1d rspcedvd jca31 islnopp mpbird
        wbr ) ACDKUQCFUDUEZDFUDUEZUFBUGZCDIUHZUDZBFUIZUFAURUSVCUAUBAVBEVAUDBEFT
        AUTEUJZUFUTEVAAVDUKULUCUMUNABCDFGHIJKLMNOPQRSUOUP $.
    $}

    $d A m p t x y z $.  $d B m t x y z $.  $d D m p t x y z $.  $d R m p t $.
    $d C m p t x y z $.  $d G m p t x y z $.  $d L m t x y z $.  $d U m p t $.
    $d I m p t x y z $.  $d K p t $.  $d M t $.  $d O m t x y z $.
    $d N m p t $.  $d P m p t x y z $.  $d S m p t $.  $d V m t $.
    $d ph m p t x y z $.  $d .- m p t x y z $.  $d t a b $.
    opphl.l $e |- L = ( LineG ` G ) $.
    opphl.d $e |- ( ph -> D e. ran L ) $.
    opphl.g $e |- ( ph -> G e. TarskiG ) $.
    ${
      oppcom.a $e |- ( ph -> A e. P ) $.
      oppcom.b $e |- ( ph -> B e. P ) $.
      oppcom.o $e |- ( ph -> A O B ) $.
      $( Points lying on opposite sides of a line cannot be on the line.
         (Contributed by Thierry Arnoux, 3-Mar-2020.) $)
      oppne1 $p |- ( ph -> -. A e. D ) $=
        ( wcel wn cv co wrex wbr wa islnopp mpbid simplld ) ACEUDUEZDEUDUEZBUFC
        DHUGUDBEUHZACDKUIUNUOUJUPUJUCABCDEFGHJKLMNOPQUAUBUKULUM $.

      $( Points lying on opposite sides of a line cannot be on the line.
         (Contributed by Thierry Arnoux, 3-Mar-2020.) $)
      oppne2 $p |- ( ph -> -. B e. D ) $=
        ( wcel wn wa cv co wrex wbr islnopp mpbid simpld simprd ) ACEUDUEZDEUDU
        EZAUOUPUFZBUGCDHUHUDBEUIZACDKUJUQURUFUCABCDEFGHJKLMNOPQUAUBUKULUMUN $.

      $( Points lying on opposite sides of a line cannot be equal.
         (Contributed by Thierry Arnoux, 3-Aug-2020.) $)
      oppne3 $p |- ( ph -> A =/= B ) $=
        ( wceq wcel wa cv cds cfv eqid cstrkg ad3antrrr crn simplr tglnpt simpr
        co simpllr oveq2d eleqtrrd axtgbtwnid eqeltrd wrex wn wbr islnopp mpbid
        simprd adantr r19.29a oppne1 pm2.65da neqned ) ACDACDUDZCEUEZAVNUFZBUGZ
        CDHUQZUEZVOBEVPVQEUEZUFZVSUFZCVQEWBFGHGUHUIZCVQNWCUJPAGUKUEVNVTVSTULZAC
        FUEVNVTVSUAULWBEFGHIVQNRPWDAEIUMUEVNVTVSSULVPVTVSUNZUOWBVQVRCCHUQWAVSUP
        WBCDCHAVNVTVSURUSUTVAWEVBAVSBEVCZVNAVOVDZDEUEVDUFZWFACDKVEWHWFUFUCABCDE
        FGHJKLMNOPQUAUBVFVGVHVIVJAWGVNABCDEFGHIJKLMNOPQRSTUAUBUCVKVIVLVM $.

      $( Commutativity rule for "opposite" Theorem 9.2 of [Schwabhauser] p. 67.
         (Contributed by Thierry Arnoux, 19-Dec-2019.) $)
      oppcom $p |- ( ph -> B O A ) $=
        ( wbr wcel wn wa cv co wrex islnopp mpbid simpld simprd cstrkg ad2antrr
        adantr crn simpr tglnpt tgbtwncom impbida rexbidva jca31 mpbird ) ADCKU
        DDEUEUFZCEUEUFZUGBUHZDCHUIUEZBEUJZUGAVFVGVJAVGVFAVGVFUGZVHCDHUIUEZBEUJZ
        ACDKUDVKVMUGUCABCDEFGHJKLMNOPQUAUBUKULZUMZUNAVGVFVOUMAVMVJAVKVMVNUNAVLV
        IBEAVHEUEZUGZVLVIVQVLUGCVHDFGHJNOPAGUOUEZVPVLTUPACFUEZVPVLUAUPVQVHFUEZV
        LVQEFGHIVHNRPAVRVPTUQAEIURUEVPSUQAVPUSUTZUQADFUEZVPVLUBUPVQVLUSVAVQVIUG
        DVHCFGHJNOPAVRVPVITUPAWBVPVIUBUPVQVTVIWAUQAVSVPVIUAUPVQVIUSVAVBVCULVDAB
        DCEFGHJKLMNOPQUBUAUKVE $.

      $d x y ph $.  $d x y D $.  $d x y G $.  $d x y I $.  $d x y P $.
      $( If two points opposite to a line exist, dimension must be 2 or more.
         (Contributed by Thierry Arnoux, 3-Mar-2020.) $)
      opptgdim2 $p |- ( ph -> G TarskiGDim>= 2 ) $=
        ( vx vy cv co wceq wne wa c2 cstrkgld wbr wcel cstrkg ad3antrrr simpllr
        simplr wn wo oppne1 simprl neleqtrd simprr neneqd jca sylibr ncoltgdim2
        ioran tgisline r19.29vva ) AEUDUFZUEUFZIUGZUHZVLVMUIZUJZGUKULUMUDUEFFAV
        LFUNZUJZVMFUNZUJZVQUJZFGHIVLVMCNRPAGUOUNVRVTVQTUPAVRVTVQUQVSVTVQURACFUN
        VRVTVQUAUPWBCVNUNZUSZVLVMUHZUSZUJWCWEUTUSWBWDWFWBEVNCACEUNUSVRVTVQABCDE
        FGHIJKLMNOPQRSTUAUBUCVAUPWAVOVPVBVCWBVLVMWAVOVPVDVEVFWCWEVIVGVHAUDUEEFG
        HINPRTSVJVK $.
    $}

    ${
      oppnid.1 $e |- ( ph -> A e. P ) $.
      $( The "opposite to a line" relation is irreflexive.  (Contributed by
         Thierry Arnoux, 4-Mar-2020.) $)
      oppnid $p |- ( ph -> -. A O A ) $=
        ( wbr wcel wa cv co cstrkg ad3antrrr crn simplr tglnpt simpr axtgbtwnid
        eqeltrd wn wrex islnopp simplbda r19.29a simprbda simpld pm2.65da ) ACC
        JUAZCDUBZAVBUCZBUDZCCGUEUBZVCBDVDVEDUBZUCZVFUCZCVEDVIEFGICVEMNOAFUFUBVB
        VGVFSUGZACEUBVBVGVFTUGVIDEFGHVEMQOVJADHUHUBVBVGVFRUGVDVGVFUIZUJVHVFUKUL
        VKUMAVBVCUNZVLUCZVFBDUOZABCCDEFGIJKLMNOPTTUPZUQURVDVLVLAVBVMVNVOUSUTVA
        $.
    $}

    ${
      opphllem1.s $e |- S = ( ( pInvG ` G ) ` M ) $.
      opphllem1.a $e |- ( ph -> A e. P ) $.
      opphllem1.b $e |- ( ph -> B e. P ) $.
      opphllem1.c $e |- ( ph -> C e. P ) $.
      opphllem1.r $e |- ( ph -> R e. D ) $.
      opphllem1.o $e |- ( ph -> A O C ) $.
      opphllem1.m $e |- ( ph -> M e. D ) $.
      opphllem1.n $e |- ( ph -> A = ( S ` C ) ) $.
      opphllem1.x $e |- ( ph -> A =/= R ) $.
      opphllem1.y $e |- ( ph -> B =/= R ) $.
      ${
        opphllem1.z $e |- ( ph -> B e. ( R I A ) ) $.
        $( Lemma for ~ opphl .  (Contributed by Thierry Arnoux,
           20-Dec-2019.) $)
        opphllem1 $p |- ( ph -> B O C ) $=
          ( wbr wcel wn wa cv co wrex wceq simpr simplr eqeltrd cstrkg ad2antrr
          wne tglnpt btwnlng3 lncom crn tglinethru eleqtrrd pm2.61dane pm2.65da
          necomd oppne1 adantr oppne2 cmir mirbtwn eqcomd mircom oveq1d eleqtrd
          cfv eqid axtgpasch simplrl simplrr simprd axtgbtwnid eqeltrrd adantlr
          btwnlng1 simprrl jca ex reximdv2 mpd jca31 islnopp mpbird ) ADEOUPDFU
          QZURZEFUQURZUSBUTZDEKVAUQZBFVBZUSAXGXHXKAXFCFUQZAXFUSZXLCDXMCDVCZUSCD
          FXMXNVDAXFXNVEVFXMCDVIZUSZCDHLVAFXPGJKLDHCRTUBAJVGUQZXFXOUDVHZADGUQXF
          XOUGVHZAHGUQZXFXOAFGJKLHRUBTUDUCUIVJZVHZACGUQXFXOUFVHZADHVIXFXOUNVHZX
          PGJKLHDCRTUBXRYBXSYCXPDHYDVRADHCKVAUQXFXOUOVHVKVLXPFGDHJKLRTUBXRXSYBY
          DYDAFLVMUQZXFXOUCVHAXFXOVEAHFUQZXFXOUIVHVNVOVPAXLURXFABCEFGJKLNOPQRST
          UAUBUCUDUFUHUJVSVTVQABCEFGJKLNOPQRSTUAUBUCUDUFUHUJWAAXJXIMHKVAZUQZUSZ
          BGVBXKAGDJKNMHECBRSTUDYAUHUFUGAFGJKLMRUBTUDUCUKVJZUOAMCIWHZCKVAECKVAA
          MCGJWBWHZJKLINRSTUBYLWIZUDYJUEUFWCAYKECKAMECGYLJKLINRSTUBYMUDYJUEUHAC
          EIWHULWDWEWFWGWJAYIXJBGFAXIGUQZYIUSZXIFUQZXJUSAYOUSZYPXJYQYPMHYQMHVCZ
          USZHXIFYSGJKNHXIRSTAXQYOYRUDVHAXTYOYRYAVHAYNYIYRWKYSXIYGHHKVAYSXJYHAY
          NYIYRWLWMYSMHHKYQYRVDWFWGWNAYFYOYRUIVHWOYQMHVIZUSZXIMHLVAZFUUAGJKLMHX
          IRTUBAYTXQYOAXQYTUDVTZWPAYTMGUQZYOAUUDYTYJVTZWPAYTXTYOAXTYTYAVTZWPAYN
          YIYTWKYQYTVDUUAXJYHAYNYIYTWLWMWQAYTFUUBVCYOAYTUSFGMHJKLRTUBUUCUUEUUFA
          YTVDZUUGAYEYTUCVTAMFUQYTUKVTAYFYTUIVTVNWPVOVPAYNXJYHWRWSWTXAXBXCABDEF
          GJKNOPQRSTUAUGUHXDXE $.
      $}

      opphllem2.z $e |- ( ph -> ( A e. ( R I B ) \/ B e. ( R I A ) ) ) $.
      $( Lemma for ~ opphl .  Lemma 9.3 of [Schwabhauser] p. 68.  (Contributed
         by Thierry Arnoux, 21-Dec-2019.) $)
      opphllem2 $p |- ( ph -> B O C ) $=
        ( co wcel wbr wa crn adantr cstrkg cfv cmir eqid mircl mirln wceq simpr
        tglnpt simplr eqeltrd wne ad3antrrr necomd btwnlng1 tglinethru eleqtrrd
        simpllr lncom pm2.61dane oppne1 ad2antrr pm2.65da mirmir eqeltrrd mtand
        wn mirbtwn islnoppd eqidd nelne2 syl2anc oppne2 eqcomd mircom opphllem1
        mirbtwni oppcom mpjaodan ) ACHDKUPUQZDEOURDHCKUPUQZAXAUSZBEDFGJKLNOPQRS
        TUAUBAFLUTUQZXAUCVAZAJVBUQZXAUDVAZAEGUQZXAUHVAZADGUQZXAUGVAZXCBDIVCZEDF
        GHIVCZIJKLMNOPQRSTUAUBXEXGUEXCMGJVDVCZJKLINDRSTUBXNVEZXGAMGUQZXAAFGJKLM
        RUBTUDUCUKVJZVAZUEXKVFZXIXKXCMHFGXNJKLINRSTUBXOXGUEXEAMFUQZXAUKVAZAHFUQ
        ZXAUIVAVGZXCBXLDMFGJKNOPQRSTUAXSXKYAXCXLFUQZDFUQZXCYECFUQZXCYEUSZYFCDYG
        CDVHZUSCDFYGYHVIXCYEYHVKVLYGCDVMZUSZCDHLUPFYJGJKLDHCRTUBAXFXAYEYIUDVNZA
        XJXAYEYIUGVNZAHGUQZXAYEYIAFGJKLHRUBTUDUCUIVJZVNZACGUQZXAYEYIUFVNZADHVMZ
        XAYEYIUNVNZYJGJKLHDCRTUBYKYOYLYQYJDHYSVOAXAYEYIVSVPVTYJFGDHJKLRTUBYKYLY
        OYSYSAXDXAYEYIUCVNXCYEYIVKAYBXAYEYIUIVNVQVRWAAYFWHXAYEABCEFGJKLNOPQRSTU
        AUBUCUDUFUHUJWBWCWDZXCYDUSZXLIVCDFUUAMDGXNJKLINRSTUBXOXCXFYDXGVAZXCXPYD
        XRVAUEXCXJYDXKVAWEUUAMXLFGXNJKLINRSTUBXOUUBUEXCXDYDXEVAXCXTYDYAVAXCYDVI
        VGWFWGZYTXCMDGXNJKLINRSTUBXOXGXRUEXKWIWJYAXCXLWKXCXMXLXCXMFUQZYDWHXMXLV
        MYCUUCXMXLFWLWMVOXCXMEXCUUDEFUQWHZXMEVMYCAUUEXAABCEFGJKLNOPQRSTUAUBUCUD
        UFUHUJWNVAXMEFWLWMVOXCCIVCZEXMXLKUPAUUFEVHXAAMECGXNJKLINRSTUBXOUDXQUEUH
        ACEIVCZULWOWPVAXCMGXNJKLINHCDRSTUBXOXGXRUEAYMXAYNVAAYPXAUFVAXKAXAVIWRWF
        WQWSAXBUSBCDEFGHIJKLMNOPQRSTUAUBAXDXBUCVAAXFXBUDVAUEAYPXBUFVAAXJXBUGVAA
        XHXBUHVAAYBXBUIVAACEOURXBUJVAAXTXBUKVAACUUGVHXBULVAACHVMXBUMVAAYRXBUNVA
        AXBVIWQUOWT $.
    $}

    opphl.k $e |- K = ( hlG ` G ) $.
    ${
      opphllem5.n $e |- N = ( ( pInvG ` G ) ` M ) $.
      opphllem5.a $e |- ( ph -> A e. P ) $.
      opphllem5.c $e |- ( ph -> C e. P ) $.
      opphllem5.r $e |- ( ph -> R e. D ) $.
      opphllem5.s $e |- ( ph -> S e. D ) $.
      opphllem5.m $e |- ( ph -> M e. P ) $.
      opphllem5.o $e |- ( ph -> A O C ) $.
      opphllem5.p $e |- ( ph -> D ( perpG ` G ) ( A L R ) ) $.
      opphllem5.q $e |- ( ph -> D ( perpG ` G ) ( C L S ) ) $.
      ${
        opphllem3.t $e |- ( ph -> R =/= S ) $.
        opphllem3.l $e |- ( ph -> ( S .- C ) ( leG ` G ) ( R .- A ) ) $.
        opphllem3.u $e |- ( ph -> U e. P ) $.
        ${
          opphllem3.v $e |- ( ph -> ( N ` R ) = S ) $.
          $( Lemma for ~ opphl :  We assume opphllem3.l "without loss of
             generality".  (Contributed by Thierry Arnoux, 21-Feb-2020.) $)
          opphllem3 $p |- ( ph -> ( U ( K ` R ) A <-> ( N ` U ) ( K ` S ) C ) )
            $=
            ( vp vm cv co wcel cfv wbr wceq ad4antr tglnpt cstrkg simplr simprl
            wb wne perpln2 tglnne simprr tgcgrcomlr cperpg tgcgrneq hlbtwn cmir
            eqid adantr ad5antr simpr mirhl eqidd fveq2d ad2antrr eqcomd fveq1i
            ad6antr mircom syl5eqr miduniq syl6eqr fveq1d eqtr2d necomd simp-4r
            wa crn tglinethru eqbrtrrd 3brtr3d eleqtrd simpllr opphllem r19.29a
            tglinecom breq123d mpbid mircl mirmir impbida bitrd wrex cleg legov
            wn islnopp simprd ) ABVCZCDKVDVEZICGLVFZVGZIPVFZDHLVFZVGZVNZBEAYEEV
            EZXCZYFXCZVAVCZGCKVDVEZHDOVDZGYPOVDVHZXCZYLVAFYOYPFVEZXCZYTXCZYHIYP
            YGVGZYKUUCICGYPFJKLTUBUGAIFVEZYMYFUUAYTUSVIZACFVEYMYFUUAYTUIVIZAGFV
            EZYMYFUUAYTAEFJKMGTUDUBUFUEUKVJZVIZAJVKVEZYMYFUUAYTUFVIZYOUUAYTVLZU
            UBYQYSVMZACGVOYMYFUUAYTAFJKMCGTUBUDUFUIUUIAECGMVDZJMUDUFUOVPVQVIUUC
            DHYPGFJKOTUAUBUULADFVEZYMYFUUAYTUJVIZAHFVEZYMYFUUAYTAEFJKMHTUDUBUFU
            EULVJZVIZUUMUUJUUCHDGYPFJKOTUAUBUULUUTUUQUUJUUMUUBYQYSVRZVSUUCFJKMD
            HTUBUDUULUUQUUTUUCEDHMVDZJMUDUULAEUVBJVTVFZVGYMYFUUAYTUPVIZVPVQZWAW
            BUUCUUDYKUUCUUDXCZYIYPPVFZGPVFZLVFZVGYKUVFNFJWCVFZJKLMPOIYPGTUAUBUD
            UVJWDZUUCUUKUUDUULWEUHUGANFVEZYMYFUUAYTUUDUMWFUUCUUEUUDUUFWEUUCUUAU
            UDUUMWEUUCUUHUUDUUJWEUUCUUDWGWHUVFYIYIUVGDUVIYJUVFYIWIUVFUVHHLAUVHH
            VHZYMYFUUAYTUUDUTWFWJUUCUVGDVHZUUDUUCGHVBVCZUVJVFZVFZVHZDYPUVPVFZVH
            ZXCZUVNVBFUUCUVOFVEZXCZUWAXCZDUVSUVGUWCUVRUVTVRUWDYPUVPPUWDUVPNUVJV
            FZPUWDUVONUVJUWDUVONFUVJJKMOHGTUAUBUDUVKUUCUUKUWBUWAUULWKUUCUWBUWAV
            LAUVLYMYFUUAYTUWBUWAUMWNUUCUURUWBUWAUUTWKUUCUUHUWBUWAUUJWKUWDGUVQUW
            CUVRUVTVMWLAHUWEVFZGVHYMYFUUAYTUWBUWAAUWFHPVFZGHPUWEUHWMANGHFUVJJKM
            POTUAUBUDUVKUFUMUHUUIUTWOWPWNWQWJUHWRWSWTUUCVBHGFCYPUVJYEJKMODTUAUB
            UDUULUVKUUTUUJUUCGHAGHVOYMYFUUAYTUQVIXAZUUGUUQUUCEFJKMYETUDUBUULAEM
            XDVEYMYFUUAYTUEVIZAYMYFUUAYTXBZVJUUCEHGMVDZUUOUVCUUCEFHGJKMTUBUDUUL
            UUTUUJUWHUWHUWIAHEVEYMYFUUAYTULVIAGEVEYMYFUUAYTUKVIXEZAEUUOUVCVGYMY
            FUUAYTUOVIXFUUCEUVBUWKHDMVDUVCUVDUWLUUCFDHJKMTUBUDUULUUQUUTUVEXLXGU
            UCYEEUWKUWJUWLXHYNYFUUAYTXIUUMUUNUVAXJXKZWEXMXNUUCYKXCZYIPVFZDPVFZU
            WGLVFZVGUUDUWNNFUVJJKLMPOYIDHTUAUBUDUVKUUCUUKYKUULWEZUHUGAUVLYMYFUU
            AYTYKUMWFZAYIFVEYMYFUUAYTYKANFUVJJKMPOITUAUBUDUVKUFUMUHUSXOWFUUCUUP
            YKUUQWEUUCUURYKUUTWEUUCYKWGWHUWNUWOIUWPYPUWQYGUWNNIFUVJJKMPOTUAUBUD
            UVKUWRUWSUHUUCUUEYKUUFWEXPUWNUWGGLUWNNGHFUVJJKMPOTUAUBUDUVKUWRUWSUH
            UUCUUHYKUUJWEAUVMYMYFUUAYTYKUTWFWOWJUWNNYPDFUVJJKMPOTUAUBUDUVKUWRUW
            SUHUUCUUAYKUUMWEUUCUVNYKUWMWEWOXMXNXQXRAYTVAFXSZYMYFAYRGCOVDJXTVFZV
            GUWTURAVAHDGCFJKUXAOTUAUBUXAWDUFUUSUJUUIUIYAXNWKXKACEVEYBDEVEYBXCZY
            FBEXSZACDQVGUXBUXCXCUNABCDEFJKOQRSTUAUBUCUIUJYCXNYDXK $.

          opphllem4.u $e |- ( ph -> V e. P ) $.
          opphllem4.1 $e |- ( ph -> U ( K ` R ) A ) $.
          opphllem4.2 $e |- ( ph -> V ( K ` S ) C ) $.
          $( Lemma for ~ opphl .  (Contributed by Thierry Arnoux,
             22-Feb-2020.) $)
          opphllem4 $p |- ( ph -> U O V ) $=
            ( cfv cmir eqid mircl wbr wcel wn wa cv co wrex mpbid simpld tglnpt
            islnopp cstrkg hlne1 necomd hlln wne w3a ishlg simp2d lnrot1 adantr
            crn simpr tglinethru eleqtrrd mtand mirmir mirbtwn eleqtrd btwnlng1
            wo oveq1d mirln eqeltrrd jca rspcev syl2anc mpbird opphllem3 hlcomd
            eleq1 eqidd hltr simp1d simp3d opphllem2 oppcom ) ABRIEFJKMOQSTUAUB
            UCUDUEUFUGVBUTABIPVEZRIEFHPJKMNOQSTUAUBUCUDUEUFUGUIANFJVFVEZJKMPOIU
            AUBUCUEXQVGZUGUNUIUTVHZVBUTUMAXPIQVIXPEVJZVKZIEVJZVKZVLZBVMZXPIKVNZ
            VJZBEVOZVLAYDYHAYAYCAXTYBAYBCEVJZAYIVKZDEVJVKZAYJYKVLZYECDKVNVJBEVO
            ZACDQVIYLYMVLUOABCDEFJKOQSTUAUBUCUDUJUKVSVPVQVQAYBVLZCGIMVNZEACYOVJ
            YBAFJKMGICUAUCUEUGAEFJKMGUAUEUCUGUFULVRZUTUJAIGAICGFJKLVTUAUCUHUTUJ
            YPUGVCWAWBZAICGFJKLMUAUCUHUTUJYPUGUEVCWCAIGWDZCGWDZIGCKVNVJCGIKVNVJ
            WSZAICGLVEVIZYRYSYTWEVCAICGFJKLVTUAUCUHUTUJYPUGWFVPWGWHWIYNEFGIJKMU
            AUCUEAJVTVJZYBUGWIAGFVJYBYPWIAIFVJZYBUTWIAGIWDYBYQWIZUUDAEMWJVJZYBU
            FWIAGEVJYBULWIAYBWKWLWMWNZAXTVLZXPPVEIEUUGNIFXQJKMPOUAUBUCUEXRAUUBX
            TUGWIZANFVJXTUNWIUIAUUCXTUTWIWOUUGNXPEFXQJKMPOUAUBUCUEXRUUHUIAUUEXT
            UFWIANEVJZXTANHGMVNEAFJKMHGNUAUCUEUGAEFJKMHUAUEUCUGUFUMVRZYPUNAGHUR
            WBZANGPVEZGKVNHGKVNANGFXQJKMPOUAUBUCUEXRUGUNUIYPWPAUULHGKVAWTWQWRAE
            FHGJKMUAUCUEUGUUJYPUUKUUKUFUMULWLWMZWIAXTWKXAXBWNUUFXCAUUINYFVJZYHU
            UMANIFXQJKMPOUAUBUCUEXRUGUNUIUTWPYGUUNBNEYENYFXIXDXEXCABXPIEFJKOQST
            UAUBUCUDXSUTVSXFUUMAXPXJAXPHWDZRHWDZXPHRKVNVJRHXPKVNVJWSZAXPRHLVEZV
            IUUOUUPUUQWEAXPDRHFJKLUAUCUHXSUKVBUGUUJAUUAXPDUURVIVCABCDEFGHIJKLMN
            OPQSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTVAXGVPARDHFJKLVTUAUCUH
            VBUKUUJUGVDXHXKAXPRHFJKLVTUAUCUHXSVBUUJUGWFVPZXLAUUOUUPUUQUUSWGAUUO
            UUPUUQUUSXMXNXO $.
        $}
      $}

      opphllem5.u $e |- ( ph -> U e. P ) $.
      ${
        opphllem5.v $e |- ( ph -> V e. P ) $.
        opphllem5.1 $e |- ( ph -> U ( K ` R ) A ) $.
        opphllem5.2 $e |- ( ph -> V ( K ` S ) C ) $.
        $( Second part of Lemma 9.4 of [Schwabhauser] p. 68.  (Contributed by
           Thierry Arnoux, 2-Mar-2020.) $)
        opphllem5 $p |- ( ph -> U O V ) $=
          ( vm wbr wceq wa cv co wcel wn wrex cperpg cfv tglnpt hlne2 tglinecom
          cstrkg breqtrd hlcomd hlperpnel ad3antrrr simplr wne cmir eqid adantr
          simpr simpllr tglinerflx2 eqeltrd tgelrnln perpcom ad4antr tglinethru
          crn tgbtwncom ragflat2 pm2.61dane fveq2d breqd mpbird btwnhl eqeltrrd
          perprag rspe syl2anc jca31 wb islnopp simprd r19.29a eqcomd opphllem4
          mpbid cleg oppcom necomd mircom wo legtrid mpjaodan c2 cstrkgld midex
          opptgdim2 ) AIRQVCZGHAGHVDZVEZBVFZCDKVGZVHZYEBEYGYHEVHZVEZYJVEZYEIEVH
          VIZREVHVIZVEYHIRKVGZVHZBEVJZVEZYMYNYOYRAYNYFYKYJAEFGJKLMOCIUAUBUCUEUG
          UFUHULUJURAECGMVGZGCMVGJVKVLZUPAFCGJKMUAUCUEUGUJAEFJKMGUAUEUCUGUFULVM
          ZAICGFJKLVPUAUCUHURUJUUBUGUTVNZVOVQAICGFJKLVPUAUCUHURUJUUBUGUTVRZVSVT
          AYOYFYKYJAEFHJKLMODRUAUBUCUEUGUFUHUMUKUSAEDHMVGZHDMVGUUAUQAFDHJKMUAUC
          UEUGUKAEFJKMHUAUEUCUGUFUMVMZARDHFJKLVPUAUCUHUSUKUUFUGVAVNZVOVQARDHFJK
          LVPUAUCUHUSUKUUFUGVAVRVSVTYMYKYQYRYGYKYJWAZYMGYHYPYMGYHVDZGYHYMUUIWFY
          MGYHWBZVEZDGYHCFJWCVLZJKMOUAUBUCUEUULWDZYMJVPVHZUUJAUUNYFYKYJUGVTZWEZ
          YMDFVHZUUJAUUQYFYKYJUKVTZWEZYMGFVHZUUJAUUTYFYKYJUUBVTZWEZYMYHFVHUUJYM
          EFJKMYHUAUEUCUUOAEMWNVHZYFYKYJUFVTZUUHVMWEZYMCFVHZUUJAUVFYFYKYJUJVTZW
          EZUUKDHGYHFJKMOUAUBUCUEUUPUUSYMHFVHZUUJAUVIYFYKYJUUFVTWEYMGUUEVHUUJYM
          GHUUEAYFYKYJWGZAHUUEVHYFYKYJAFDHJKMUAUCUEUGUKUUFUUGWHVTWIWEUVEUUKUUEE
          GYHMVGZUUAAUUEEUUAVCYFYKYJUUJAEUUEFJKMOUAUBUCUEUGUFAFJKMDHUAUCUEUGUKU
          UFUUGWJUQWKWLUUKEFGYHJKMUAUCUEUUPUVBUVEYMUUJWFZUVLYMUVCUUJUVDWEYMGEVH
          ZUUJAUVMYFYKYJULVTWEYMYKUUJUUHWEWMZVQXCUUKCGGYHFJKMOUAUBUCUEUUPUVHUVB
          YMGYTVHZUUJAUVOYFYKYJAFCGJKMUAUCUEUGUJUUBUUCWHVTWEUVEUUKYTEUVKUUAAYTE
          UUAVCYFYKYJUUJAEYTFJKMOUAUBUCUEUGUFAFJKMCGUAUCUEUGUJUUBUUCWJUPWKWLUVN
          VQXCUUKCYHDFJKOUAUBUCUUPUVHUVEUUSYLYJUUJWAWOWPWQZYMCIRGFJKLUAUCUHUVGA
          IFVHZYFYKYJURVTARFVHZYFYKYJUSVTZUUOUVAACIGLVLZVCYFYKYJUUDVTYMRGCFJKOU
          AUBUCUUOUVSUVAUVGYMDRCGFJKLUAUCUHUURUVSUVGUUOUVAYMRDGFJKLVPUAUCUHUVSU
          URUVAUUOYMRDUVTVCRDHLVLZVCZAUWBYFYKYJVAVTYMUVTUWARDYMGHLUVJWRWSWTVRYM
          CGDFJKOUAUBUCUUOUVGUVAUURYMGYHYIUVPYLYJWFWIWOXAWOXAXBYQBEXDXEXFAYEYSX
          GYFYKYJABIREFJKOQSTUAUBUCUDURUSXHVTWTAYJBEVJZYFACEVHVIDEVHVIVEZUWCACD
          QVCZUWDUWCVEUOABCDEFJKOQSTUAUBUCUDUJUKXHXMXIWEXJAGHWBZVEZHGVBVFZUULVL
          ZVLZVDZYEVBFUWGUWHFVHZVEZUWKVEZHDOVGZGCOVGZJXNVLZVCZYEUWPUWOUWQVCZUWN
          UWRVEZBCDEFGHIJKLMUWHOUWIQRSTUAUBUCUDUEAUVCUWFUWLUWKUWRUFWLAUUNUWFUWL
          UWKUWRUGWLUHUWIWDZAUVFUWFUWLUWKUWRUJWLAUUQUWFUWLUWKUWRUKWLAUVMUWFUWLU
          WKUWRULWLAHEVHZUWFUWLUWKUWRUMWLUWGUWLUWKUWRWGAUWEUWFUWLUWKUWRUOWLAEYT
          UUAVCZUWFUWLUWKUWRUPWLAEUUEUUAVCZUWFUWLUWKUWRUQWLUWGUWFUWLUWKUWRAUWFW
          FZVTUWNUWRWFAUVQUWFUWLUWKUWRURWLUWTHUWJUWMUWKUWRWAXKAUVRUWFUWLUWKUWRU
          SWLAICUVTVCZUWFUWLUWKUWRUTWLAUWBUWFUWLUWKUWRVAWLXLUWNUWSVEZBRIEFJKMOQ
          STUAUBUCUDUEAUVCUWFUWLUWKUWSUFWLZUWGUUNUWLUWKUWSAUUNUWFUGWEZVTZAUVRUW
          FUWLUWKUWSUSWLZAUVQUWFUWLUWKUWSURWLZUXGBDCEFHGRJKLMUWHOUWIQISTUAUBUCU
          DUEUXHUXJUHUXAAUUQUWFUWLUWKUWSUKWLZUWGUVFUWLUWKUWSAUVFUWFUJWEVTZUWGUX
          BUWLUWKUWSAUXBUWFUMWEVTUWGUVMUWLUWKUWSAUVMUWFULWEVTUWGUWLUWKUWSWGZUXG
          BCDEFJKMOQSTUAUBUCUDUEUXHUXJUXNUXMAUWEUWFUWLUWKUWSUOWLXOAUXDUWFUWLUWK
          UWSUQWLUWGUXCUWLUWKUWSAUXCUWFUPWEVTUWGHGWBUWLUWKUWSUWGGHUXEXPVTUWNUWS
          WFUXKUXGUWHGHFUULJKMUWIOUAUBUCUEUUMUXJUXOUXAUWGUUTUWLUWKUWSAUUTUWFUUB
          WEZVTUXGHUWJUWMUWKUWSWAXKXQUXLAUWBUWFUWLUWKUWSVAWLAUXFUWFUWLUWKUWSUTW
          LXLXOAUWRUWSXRUWFUWLUWKAHDGCFJKUWQOUAUBUCUWQWDUGUUFUKUUBUJXSVTXTUWGVB
          GHFUULJKMOUAUBUCUEUXIUUMUXPAUVIUWFUUFWEAJYAYBVCUWFABCDEFJKMOQSTUAUBUC
          UDUEUFUGUJUKUOYDWEYCXJWQ $.
      $}

      opphllem6.v $e |- ( ph -> ( N ` R ) = S ) $.
      $( First part of Lemma 9.4 of [Schwabhauser] p. 68.  (Contributed by
         Thierry Arnoux, 3-Mar-2020.) $)
      opphllem6 $p |- ( ph -> ( U ( K ` R ) A <-> ( N ` U ) ( K ` S ) C ) ) $=
        ( cfv wbr wb wceq wa cmir eqid cstrkg wcel adantr wne tglnpt co perpln2
        tglnne simpr eqtr4d mirinv mpbid neeqtrrd eqtrd cv ad3antrrr crn simplr
        simpllr tglinerflx2 eqeltrd tgelrnln perpcom ad4antr tglinethru breqtrd
        perprag tgbtwncom ragflat2 pm2.61dane wrex wn islnopp r19.29a mirbtwnhl
        cperpg simprd fveq2d breqd 3bitr3d cleg ad2antrr opphllem3 oppcom mircl
        necomd mircom mirmir breq1d bitr2d wo legtrid mpjaodan ) AICGLUSZUTZIPU
        SZDHLUSZUTZVAZGHAGHVBZVCZICNLUSZUTYADYGUTXTYCYFNFJVDUSZJKLMPOCDITUAUBUD
        YHVEZAJVFVGZYEUFVHUHUGANFVGZYEUMVHACFVGZYEUIVHADFVGZYEUJVHAIFVGZYEUQVHY
        FCGNACGVIYEAFJKMCGTUBUDUFUIAEFJKMGTUDUBUFUEUKVJZAECGMVKZJMUDUFUOVLVMZVH
        YFGPUSZGVBZNGVBZYFYRHGAYRHVBZYEURVHAYEVNZVOAYSYTVAYEANGFYHJKMPOTUAUBUDY
        IUFUMUHYOVPVHVQZVRYFDHNADHVIYEAFJKMDHTUBUDUFUJAEFJKMHTUDUBUFUEULVJZAEDH
        MVKZJMUDUFUPVLVMZVHYFNGHUUCUUBVSZVRYFNGCDKVKZUUCYFBVTZUUHVGZGUUHVGBEYFU
        UIEVGZVCZUUJVCZGUUIUUHUUMGUUIVBZGUUIUUMUUNVNUUMGUUIVIZVCZDGUUICFYHJKMOT
        UAUBUDYIUUMYJUUOAYJYEUUKUUJUFWAZVHZUUMYMUUOAYMYEUUKUUJUJWAVHZUUMGFVGZUU
        OAUUTYEUUKUUJYOWAVHZUUMUUIFVGUUOUUMEFJKMUUITUDUBUUQAEMWBVGZYEUUKUUJUEWA
        ZYFUUKUUJWCZVJVHZUUMYLUUOAYLYEUUKUUJUIWAVHZUUPDHGUUIFJKMOTUAUBUDUURUUSU
        UMHFVGZUUOAUVGYEUUKUUJUUDWAVHUUMGUUEVGUUOUUMGHUUEAYEUUKUUJWDAHUUEVGYEUU
        KUUJAFDHJKMTUBUDUFUJUUDUUFWEWAWFVHUVEUUPUUEEGUUIMVKZJXAUSZAUUEEUVIUTYEU
        UKUUJUUOAEUUEFJKMOTUAUBUDUFUEAFJKMDHTUBUDUFUJUUDUUFWGUPWHWIUUPEFGUUIJKM
        TUBUDUURUVAUVEUUMUUOVNZUVJUUMUVBUUOUVCVHUUMGEVGZUUOAUVKYEUUKUUJUKWAVHUU
        MUUKUUOUVDVHWJZWKWLUUPCGGUUIFJKMOTUAUBUDUURUVFUVAUUMGYPVGZUUOAUVMYEUUKU
        UJAFCGJKMTUBUDUFUIYOYQWEWAVHUVEUUPYPEUVHUVIAYPEUVIUTYEUUKUUJUUOAEYPFJKM
        OTUAUBUDUFUEAFJKMCGTUBUDUFUIYOYQWGUOWHWIUVLWKWLUUPCUUIDFJKOTUAUBUURUVFU
        VEUUSUULUUJUUOWCWMWNWOUULUUJVNWFAUUJBEWPZYEACEVGWQDEVGWQVCZUVNACDQUTZUV
        OUVNVCUNABCDEFJKOQRSTUAUBUCUIUJWRVQXBVHWSWFWTYFYGXSICYFNGLUUCXCXDYFYGYB
        YADYFNHLUUGXCXDXEAGHVIZVCZHDOVKZGCOVKZJXFUSZUTZYDUVTUVSUWAUTZUVRUWBVCBC
        DEFGHIJKLMNOPQRSTUAUBUCUDAUVBUVQUWBUEXGAYJUVQUWBUFXGUGUHAYLUVQUWBUIXGAY
        MUVQUWBUJXGAUVKUVQUWBUKXGAHEVGZUVQUWBULXGAYKUVQUWBUMXGAUVPUVQUWBUNXGAEY
        PUVIUTZUVQUWBUOXGAEUUEUVIUTZUVQUWBUPXGUVRUVQUWBAUVQVNZVHUVRUWBVNAYNUVQU
        WBUQXGAUUAUVQUWBURXGXHUVRUWCVCZYCYAPUSZCXSUTXTUWHBDCEFHGYAJKLMNOPQRSTUA
        UBUCUDAUVBUVQUWCUEXGZUVRYJUWCAYJUVQUFVHVHZUGUHAYMUVQUWCUJXGZUVRYLUWCAYL
        UVQUIVHVHZUVRUWDUWCAUWDUVQULVHVHUVRUVKUWCAUVKUVQUKVHVHAYKUVQUWCUMXGZUWH
        BCDEFJKMOQRSTUAUBUCUDUWJUWKUWMUWLAUVPUVQUWCUNXGXIAUWFUVQUWCUPXGUVRUWEUW
        CAUWEUVQUOVHVHUVRHGVIUWCUVRGHUWGXKVHUVRUWCVNUWHNFYHJKMPOITUAUBUDYIUWKUW
        NUHAYNUVQUWCUQXGZXJUWHNGHFYHJKMPOTUAUBUDYIUWKUWNUHUVRUUTUWCAUUTUVQYOVHV
        HAUUAUVQUWCURXGXLXHUWHUWIICXSUWHNIFYHJKMPOTUAUBUDYIUWKUWNUHUWOXMXNXOAUW
        BUWCXPUVQAHDGCFJKUWAOTUAUBUWAVEUFUUDUJYOUIXQVHXRWO $.
    $}

    ${
      $d L p $.
      oppperpex.1 $e |- ( ph -> A e. D ) $.
      oppperpex.2 $e |- ( ph -> C e. P ) $.
      oppperpex.3 $e |- ( ph -> -. C e. D ) $.
      oppperpex.4 $e |- ( ph -> G TarskiGDim>= 2 ) $.
      $( Restating ~ colperpex using the "opposite side of a line" relation.
         (Contributed by Thierry Arnoux, 2-Aug-2020.) $)
      oppperpex $p |- ( ph -> E. p e. P ( ( A L p ) ( perpG ` G ) D
        /\ C O p ) ) $=
        ( vx cv wne co cperpg cfv wbr wa wrex wcel wceq simprrl cstrkg ad2antrr
        wo crn tglnpt simplr tglinethru adantr breqtrrd ad3antrrr simprl footne
        simpr wn neneqd orcomd ord mpd eleqtrrd simprrr jca reximdv2 imp anasss
        ex jca31 wb islnopp mpbird cstrkgld colperpex reximddv tglnpt2 r19.29a
        c2 ) ACUHUIZUJZCMUIZJUKZEGULUMZUNZDWQLUNZUOZMFUPUHEAWOEUQZUOZWPUOZWRCWO
        JUKZWSUNZBUIZXFUQZCWOURZVBZXHDWQHUKUQZUOZBFUPZUOZXBMFXEWQFUQZXOUOZUOZWT
        XAXRWRXFEWSXEXPXGXNUSXEEXFURZXQXEEFCWOGHJPRTAGUTUQZXCWPUBVAZXEEFGHJCPTR
        YAAEJVCUQZXCWPUAVAZACEUQZXCWPUDVAZVDZXEEFGHJWOPTRYAYCAXCWPVEZVDZXDWPVLZ
        YIYCYEYGVFZVGVHZXRXADEUQVMZWQEUQVMZUOXLBEUPZUOZXRYLYMYNAYLXCWPXQUFVIXRE
        FGHJKCWQPQRTXEXTXQYAVGXEYBXQYCVGXEYDXQYEVGXEXPXOVJYKVKXEXPXOYNXEXPUOZXG
        XNYNYPXGUOZXNYNYQXMXLBFEYQXHFUQZXMUOZXHEUQZXLUOYQYSUOZYTXLUUAXHXFEUUAXJ
        VMXIUUACWOXEWPXPXGYSYIVIVNUUAXJXIUUAXIXJYQYRXKXLUSVOVPVQXEXSXPXGYSYJVIV
        RYQYRXKXLVSVTWDWAWBWCWCWEXEXPXOXAYOWFZYPXGXNUUBYQUUBXNYQBDWQEFGHKLNOPQR
        SXEDFUQZXPXGAUUCXCWPUEVAZVAXEXPXGVEWGVGWCWCWHVTXEBCWODFGHJKMPQRTYAYFYHU
        UDYIAGWNWIUNXCWPUGVAWJWKAUHEFGHJCPRTUBUAUDWLWM $.
    $}

    ${
      $d .- x y z $.
      opphl.a $e |- ( ph -> A e. P ) $.
      opphl.b $e |- ( ph -> B e. P ) $.
      opphl.c $e |- ( ph -> C e. P ) $.
      opphl.1 $e |- ( ph -> A O C ) $.
      opphl.2 $e |- ( ph -> R e. D ) $.
      opphl.3 $e |- ( ph -> A ( K ` R ) B ) $.
      $( If two points ` A ` and ` C ` lie on the opposite side of a line ` D `
         then any point of the half line ( ` R ` ` A ` ) also lies opposite to
         ` C ` .  Theorem 9.5 of [Schwabhauser] p. 69.  (Contributed by Thierry
         Arnoux, 3-Mar-2019.) $)
      opphl $p |- ( ph -> B O C ) $=
        ( vx vz vm vy cv co cperpg cfv wbr wcel wa cmir wceq crn ad8antr cstrkg
        eqid simp-4r mircl simplr simp-6r simp-8r simp-7r perpln1 tglnpt tglnne
        perpcom simp-5r simpllr eqcomd opphllem6 mpbid opphllem5 eqeltrd mirln2
        hlid mirmir wne hlne1 tglngne wo w3a ishlg simp3d opphllem2 tglinerflx2
        hlln simpr tglinethru breqtrd hlcomd wrex oppne1 adantr eleqtrrd footex
        mtand ad6antr r19.29a ad4antr cstrkgld opptgdim2 midex oppne2 ad2antrr
        c2 ) ACUKUOZLUPZFIUQURZUSZDENUSZUKFAXQFUTZVAZXTVAZEULUOZLUPZFXSUSZYAULF
        YDYEFUTZVAZYGVAZYEXQUMUOZIVBURZURZURZVCZYAUMGYJYKGUTZVAZYOVAZDUNUOZLUPZ
        FXSUSZYAUNFYRYSFUTZVAZUUAVAZBDCYMURZFGYSYEDIJKLYKMYMNEOPQRSTUAAFLVDUTZY
        BXTYHYGYPYOUUBUUAUBVEZAIVFUTZYBXTYHYGYPYOUUBUUAUCVEZUDYMVGZADGUTZYBXTYH
        YGYPYOUUBUUAUFVEZUUDYKGYLIJLYMMCQRSUAYLVGZUUIYJYPYOUUBUUAVHZUUJACGUTYBX
        TYHYGYPYOUUBUUAUEVEZVIZYRUUBUUAVJZYDYHYGYPYOUUBUUAVKZUUNUUDBCDUUEFGHYMI
        JLYKMNOPQRSTUAUUGUUIUUJUUOUULUUPAHFUTZYBXTYHYGYPYOUUBUUAUIVEUUDBCEFGXQY
        ECIJKLYKMYMNUUEOPQRSTUAUUGUUIUDUUJUUOAEGUTYBXTYHYGYPYOUUBUUAUGVEZAYBXTY
        HYGYPYOUUBUUAVLZUURUUNACENUSYBXTYHYGYPYOUUBUUAUHVEZUUDXRFGIJLMQRSUAUUIU
        UDXRFILUAUUIYCXTYHYGYPYOUUBUUAVMZVNZUUGUVCVQZUUDYFFGIJLMQRSUAUUIUUDYFFI
        LUAUUIYIYGYPYOUUBUUAVRZVNZUUGUVFVQZUUOUUPUUDCCXQGIJKQSUDUUOUUOUUDFGIJLX
        QQUASUUIUUGUVAVOZUUIUUDGIJLCXQQSUAUUIUUOUVIUVDVPWFZUUDCCXQKURUSUUEEYEKU
        RUSUVJUUDBCEFGXQYECIJKLYKMYMNOPQRSTUAUUGUUIUDUUJUUOUUTUVAUURUUNUVBUVEUV
        HUUOUUDYEYNYQYOUUBUUAVSVTZWAWBZWCUUDYKXQFGYLIJLYMMQRSUAUUMUUIUUJUUGUUNU
        VAUUDYNYEFUVKUURWDWEUUDUUEYMURCUUDYKCGYLIJLYMMQRSUAUUMUUIUUNUUJUUOWGVTA
        CHWHZYBXTYHYGYPYOUUBUUAACDHGIJKVFQSUDUEUFAFGIJLHQUASUCUBUIVOZUCUJWIVEAD
        HWHZYBXTYHYGYPYOUUBUUAAGIJLDHCQUASUCUFUVNACDHGIJKLQSUDUEUFUVNUCUAUJWQZW
        JZVEACHDJUPUTDHCJUPUTWKZYBXTYHYGYPYOUUBUUAAUVMUVOUVRACDHKURUSUVMUVOUVRW
        LUJACDHGIJKVFQSUDUEUFUVNUCWMWBWNVEWOUUDYTFGIJLMQRSUAUUIUUDYTFILUAUUIUUC
        UUAWRZVNZUUGUVSVQUUDFYFUUEYELUPXSUVHUUDYFGUUEYEIJLQSUAUUIUUPUUDFGIJLYEQ
        UASUUIUUGUURVOZUUDUUEEYEGIJKVFQSUDUUPUUTUWAUUIUVLWIZUWBUVGUUDUUEEYEGIJK
        LQSUDUUPUUTUWAUUIUAUVLWQZUUDGEYEIJLQSUAUUIUUTUWAUUDGIJLEYEUUEQUASUUIUUT
        UWAUWCWJWPWSWTUULUUTUUDDCYSGIJKQSUDUULUUOUUDFGIJLYSQUASUUIUUGUUQVOZUUIU
        UDGIJLDYSQSUAUUIUULUWDUVTVPWFUUDUUEEYEGIJKVFQSUDUUPUUTUWAUUIUVLXAWCAUUA
        UNFXBYBXTYHYGYPYOAUNFDGIJLMQRSUAUCUBUFADFUTZCFUTABCEFGIJLMNOPQRSTUAUBUC
        UEUGUHXCZAUWEVAZCDHLUPZFACUWHUTUWEUVPXDUWGFGDHIJLQSUAAUUHUWEUCXDAUUKUWE
        UFXDAHGUTUWEUVNXDAUVOUWEUVQXDZUWIAUUFUWEUBXDAUWEWRAUUSUWEUIXDWSXEXGXFXH
        XIYJUMXQYEGYLIJLMQRSUAAUUHYBXTYHYGUCXJZUUMYJFGIJLXQQUASUWJAUUFYBXTYHYGU
        BXJZAYBXTYHYGVHVOYJFGIJLYEQUASUWJUWKYDYHYGVJVOAIXPXKUSYBXTYHYGABCEFGIJL
        MNOPQRSTUAUBUCUEUGUHXLXJXMXIAYGULFXBYBXTAULFEGIJLMQRSUAUCUBUGABCEFGIJLM
        NOPQRSTUAUBUCUEUGUHXNXFXOXIAUKFCGIJLMQRSUAUCUBUEUWFXFXI $.
    $}
  $}

  ${
    $d A t x $.  $d B t x $.  $d C t x $.  $d G t x $.  $d I a b t x $.
    $d L a b t x $.  $d P a b t x $.  $d Q a b t x $.  $d R a b t x $.
    $d ph t x $.
    outpasch.p $e |- P = ( Base ` G ) $.
    outpasch.i $e |- I = ( Itv ` G ) $.
    outpasch.l $e |- L = ( LineG ` G ) $.
    outpasch.g $e |- ( ph -> G e. TarskiG ) $.
    outpasch.a $e |- ( ph -> A e. P ) $.
    outpasch.b $e |- ( ph -> B e. P ) $.
    outpasch.c $e |- ( ph -> C e. P ) $.
    outpasch.r $e |- ( ph -> R e. P ) $.
    outpasch.q $e |- ( ph -> Q e. P ) $.
    outpasch.1 $e |- ( ph -> C e. ( A I R ) ) $.
    outpasch.2 $e |- ( ph -> Q e. ( B I C ) ) $.
    $( Axiom of Pasch, outer form.  This was proven by Gupta from other axioms
       and is therefore presented as Theorem 9.6 in [Schwabhauser] p. 70.
       (Contributed by Thierry Arnoux, 16-Aug-2020.) $)
    outpasch $p |- ( ph -> E. x e. P ( x e. ( A I B ) /\ Q e. ( R I x ) ) ) $=
      ( va vb vt co wcel wceq wo cv wa wrex adantr eleq1d oveq2d eleq2d anbi12d
      cds cfv eqid tgbtwntriv1 cstrkg tgbtwncom tgbtwnexch jca rspcedvd adantlr
      simpr wn ad2antrr wb eleq1 eqidd adantl tgbtwntriv2 ad3antrrr tgbtwnexch3
      eleq12d ad4antr eqeltrd simpllr pm2.65da neqned tgbtwnouttr tgcolg biimpa
      oveq2 w3o 3orcoma 3orass bitr3i ord imp mpjaodan pm2.61dan simplr ncolne1
      sylib tglinerflx2 wne ncolcom ncolrot1 btwnlng3 tglineinteq eqeltrrd cdif
      copab wbr cbvrexv anbi2i opabbii tgelrnln ncolrot2 pm2.45 syl tglinerflx1
      chlg islnoppd tgbtwnne necomd btwnhl2 opphl islnopp simprd tglnpt ad5antr
      mpbid crn lncom simprl coltr3 btwnlng2 simprr axtgpasch r19.29a anasss ex
      jca32 reximdv2 mpd ) AHGEKUFZUGGEUHZUIZBUJZCDJUFZUGZGHUUDJUFZUGZUKZBFULZA
      UUCUKZGHEJUFZUGZUUJAUUMUUJUUCAUUMUKZUUICUUEUGZGHCJUFZUGZUKBCFACFUGZUUMPUM
      ZUUNUUDCUHZUKZUUFUUOUUHUUQUVAUUDCUUEUUNUUTVHZUNUVAUUGUUPGUVAUUDCHJUVBUOUP
      UQUUNUUOUUQAUUOUUMACDFIJIURUSZLUVCUTZMOPQVAUMUUNHGECFIJUVCLUVDMAIVBUGZUUM
      OUMAHFUGZUUMSUMAGFUGZUUMTUMAEFUGZUUMRUMUUSAUUMVHAEUUPUGZUUMACEHFIJUVCLUVD
      MOPRSUAVCZUMVDVEVFVGUUKUUMVIZUKZUUIDUUEUGZGHDJUFZUGZUKZBDFADFUGZUUCUVKQVJ
      ZUUDDUHZUUIUVPVKZUVLUVSUUFUVMUUHUVOUUDDUUEVLUVSGGUUGUVNUVSGVMUUDDHJWGVRUQ
      ZVNUVLUVMUVOAUVMUUCUVKACDFIJUVCLUVDMOPQVOZVJUVLHGEJUFUGZUVOEGHJUFUGZUVLUW
      CUKZEHGDFIJUVCLUVDMUVLUVEUWCAUVEUUCUVKOVJZUMZAUVHUUCUVKUWCRVPZAUVFUUCUVKU
      WCSVPZAUVGUUCUVKUWCTVPZUVLUVQUWCUVRUMUWEGHEFIJUVCLUVDMUWGUWJUWIUWHUVLUWCV
      HVCAGEDJUFZUGZUUCUVKUWCADGEFIJUVCLUVDMOQTRUBVCZVPVQUVLUWDUKZDGHFIJUVCLUVD
      MUVLUVEUWDUWFUMZUVLUVQUWDUVRUMZAUVGUUCUVKUWDTVPZAUVFUUCUVKUWDSVPZUWNDGEHF
      IJUVCLUVDMUWOUWPUWQAUVHUUCUVKUWDRVPUWRUWNGEUWNUUBUUMUWNUUBUKGEUULUWNUUBVH
      AEUULUGUUCUVKUWDUUBAHEFIJUVCLUVDMOSRVOVSVTUUKUVKUWDUUBWAWBWCAGDEJUFUGZUUC
      UVKUWDUBVPUVLUWDVHWDVCUUKUVKUWCUWDUIZUUKUUMUWTUUKUWCUUMUWDWHZUUMUWTUIZAUU
      CUXAAFIJKGEHLNMOTRSWEWFUXAUUMUWCUWDWHUXBUUMUWCUWDWIUUMUWCUWDWJWKWRWLWMWNV
      EVFWOAUUCVIZUKZDHGKUFZUGZUUJUXDUXFUKZUUIUVPBDFAUVQUXCUXFQVJZUVSUVTUXGUWAV
      NUXGUVMUVOAUVMUXCUXFUWBVJUXGDGUVNUXGHGEGFIJKDGLMNAUVEUXCUXFOVJZAUVFUXCUXF
      SVJAUVGUXCUXFTVJZAUVHUXCUXFRVJZUXJAUXCUXFWPUXDUXFVHUXDGUXEUGZUXFUXDFHGIJK
      LMNAUVEUXCOUMZAUVFUXCSUMZAUVGUXCTUMZUXDFIJKHGELMNUXMUXNUXOAUVHUXCRUMZAUXC
      VHZWQZWSZUMUXGFIJKEGDLMNUXIUXKUXJUXHUXDEGWTZUXFUXDFIJKEGHLMNUXMUXPUXOUXNU
      XDFIJKEGHLNMUXMUXPUXOUXNUXDFIJKGEHLNMUXMUXOUXPUXNUXQXAXBWQZUMZAUWLUXCUXFU
      WMVJXCUXGFEGIJKLMNUXIUXKUXJUYBWSXDADUVNUGUXCUXFAHDFIJUVCLUVDMOSQVOVJXEVEV
      FUXDUXFVIZUKZUUFBUXEULZUUJUYDCUXEUGVIUYCUKZUYEUYDCDUCUJZFUXEXFZUGUDUJZUYH
      UGUKZUEUJZUYGUYIJUFZUGZUEUXEULZUKZUCUDXGZXHUYFUYEUKUYDBECDUXEFHIJIXQUSZKU
      VCUYPUCUDLUVDMUYOUYJUUDUYLUGZBUXEULZUKUCUDUYNUYSUYJUYMUYRUEBUXEUYKUUDUYLV
      LXIXJXKZNUYDFIJKHGLMNUXDUVEUYCUXMUMZUXDUVFUYCUXNUMZUXDUVGUYCUXOUMUXDHGWTZ
      UYCUXRUMZXLZVUAUYQUTZAUVHUXCUYCRVJZAUURUXCUYCPVJZUXDUVQUYCAUVQUXCQUMZUMZU
      YDBEDGUXEFIJUVCUYPUCUDLUVDMUYTVUGVUJUXDUXLUYCUXSUMUXDEUXEUGZVIZUYCUXDVUKH
      GUHZUIVIVULUXDFIJKGEHLNMUXMUXOUXPUXNUXQXMZVUKVUMXNXOUMUXDUYCVHAUWLUXCUYCU
      WMVJXRUXDHUXEUGUYCUXDFHGIJKLMNUXMUXNUXOUXRXPUMUYDCHECFIJUYQLMVUFVUHVUBVUG
      VUAVUHAECHJUFUGUXCUYCUAVJUYDHCUYDHECFIJUVCLUVDMVUAVUBVUGVUHAUVIUXCUYCUVJV
      JUXDEHWTUYCUXDFIJKEHGLMNUXMUXPUXNUXOVUNWQUMZXSXTVUOYAYBUYDBCDUXEFIJUVCUYP
      UCUDLUVDMUYTVUHVUJYCYGYDUYDUUFUUIBUXEFUYDUUDUXEUGZUUFUKUUDFUGZUUIUKZUYDVU
      PUUFVURUYDVUPUKZUUFUKZVUQUUFUUHVUTUXEFIJKUUDLNMUYDUVEVUPUUFVUAVJZUYDUXEKY
      HUGVUPUUFVUEVJUYDVUPUUFWPZYEZVUSUUFVHZVUTUYKUUDHJUFUGZUYKUWKUGZUKZUUHUEFV
      UTUYKFUGZUKZVVGUKZUYKGUUGVVJHGEGFIJKUYKGLMNVUTUVEVVHVVGVVAVJZVUTUVFVVHVVG
      UXDUVFUYCVUPUUFUXNVPZVJZUXDUVGUYCVUPUUFVVHVVGUXOYFZVUTUVHVVHVVGUYDUVHVUPU
      UFVUGVJZVJZVVNUXDUXCUYCVUPUUFVVHVVGUXQYFVVJFIJKHGUYKLMNVVKVVMVVNVUTVVHVVG
      WPZUYDVUCVUPUUFVVHVVGVUDVSVVJUUDGHUYKFIJKLMNVVKVUTVUQVVHVVGVVCVJZVVNVVMVV
      QVVJFIJKGHUUDLMNVVKVVNVVMVVRUXDGHWTUYCVUPUUFVVHVVGUXDHGUXRXTYFVUTVUPVVHVV
      GVVBVJYIVVIVVEVVFYJZYKYIUXDUXLUYCVUPUUFVVHVVGUXSYFVVJFIJKEGUYKLMNVVKVVPVV
      NVVQUXDUXTUYCVUPUUFVVHVVGUYAYFVVJDGEUYKFIJKLMNVVKVUTUVQVVHVVGUYDUVQVUPUUF
      VUJVJZVJZVVNVVPVVQUXDDUUAUGUYCVUPUUFVVHVVGUXDFIJKGEDLMNUXMUXOUXPVUIUXDEGU
      YAXTAUWSUXCUBUMYLYFVVJEUYKDFIJUVCLUVDMVVKVVPVVQVWAVVIVVEVVFYMVCYKYIUXDGEG
      KUFUGUYCVUPUUFVVHVVGUXDFEGIJKLMNUXMUXPUXOUYAWSYFXDVVJUUDUYKHFIJUVCLUVDMVV
      KVVRVVQVVMVVSVCXEVUTFUUDIJUVCEDHCUELUVDMVVAVVTVVLUYDUURVUPUUFVUHVJZVVCVVO
      VUTCUUDDFIJUVCLUVDMVVAVWBVVCVVTVVDVCAUVIUXCUYCVUPUUFUVJVSYNYOYRYPYQYSYTWO
      WO $.
  $}

  ${
    $d A e $.  $d B e $.  $d C e $.  $d D e $.  $d G e $.  $d I e $.  $d K e $.
    $d P e $.  $d X e $.  $d e ph $.
    hlpasch.p $e |- P = ( Base ` G ) $.
    hlpasch.i $e |- I = ( Itv ` G ) $.
    hlpasch.k $e |- K = ( hlG ` G ) $.
    hlpasch.g $e |- ( ph -> G e. TarskiG ) $.
    hlpasch.1 $e |- ( ph -> A e. P ) $.
    hlpasch.2 $e |- ( ph -> B e. P ) $.
    hlpasch.3 $e |- ( ph -> C e. P ) $.
    hlpasch.4 $e |- ( ph -> X e. P ) $.
    hlpasch.5 $e |- ( ph -> D e. P ) $.
    hlpasch.6 $e |- ( ph -> A =/= B ) $.
    hlpasch.7 $e |- ( ph -> C ( K ` B ) D ) $.
    hlpasch.8 $e |- ( ph -> A e. ( X I C ) ) $.
    $( An application of the axiom of Pasch for half-lines.  (Contributed by
       Thierry Arnoux, 15-Sep-2020.) $)
    hlpasch $p |- ( ph -> E. e e. P ( A ( K ` B ) e /\ e e. ( X I D ) ) ) $=
      ( co wcel cv cfv wa wrex clng eqid cstrkg adantr simpr tgbtwncom outpasch
      wbr cds simplr ad2antrr simprr oveq2d eleqtrd axtgbtwnid eqcomd ad3antrrr
      wceq wne neneqd pm2.65da neqned btwnhl2 simprl jca ex reximdva mpd breq2d
      eleq1d anbi12d hlcomd oveq1d wo w3a ishlg mpbid simp1d hlbtwn tgbtwntriv2
      rspcedvd wb ad4ant14 tgbtwntriv1 hlne2 ad4antr tgbtwnexch3 simp-4r mpbird
      tgbtwnconn3 3jca wn eleqtrrd olcd necomd lncom hlln orcd coltr orcomd ord
      colrot1 btwncolg3 pm2.61dane colrot2 colcom lnhl mpjaodan axtgpasch ioran
      ad5antr sylibr ncolrot2 ncolne1 btwnlng1 eqeltrrd tglinerflx1 tglinerflx2
      simplrr tglngne tglineinteq btwnhl1 adantrl pm2.61dan simp3d ) ADCEIUDZUE
[encoded data, 4240 characters]
      EUXFUXGYNXQ $.
  $}

  $c hpG $.

  $( "Belong to the same open half-plane" relation for points in a geometry. $)
  chpg $a class hpG $.

  ${
    $d a b c d g i p t $.
    $( Define the open half plane relation for a geometry ` G ` .  Definition
       9.7 of [Schwabhauser] p. 71.  See ~ hpgbr to find the same formulation.
       (Contributed by Thierry Arnoux, 4-Mar-2020.) $)
    df-hpg $a |- hpG = ( g e. _V |-> ( d e. ran ( LineG ` g ) |->
      { <. a , b >. | [. ( Base ` g ) / p ]. [. ( Itv ` g ) / i ]. E. c e. p (
        ( ( a e. ( p \ d ) /\ c e. ( p \ d ) ) /\ E. t e. d t e. ( a i c ) )
     /\ ( ( b e. ( p \ d ) /\ c e. ( p \ d ) ) /\ E. t e. d t e. ( b i c ) ) )
      } ) ) $.
  $}

  ${
    ishpg.p $e |- P = ( Base ` G ) $.
    ishpg.i $e |- I = ( Itv ` G ) $.
    ishpg.l $e |- L = ( LineG ` G ) $.
    ishpg.o $e |- O = { <. a , b >. | ( ( a e. ( P \ D ) /\ b e. ( P \ D ) )
      /\ E. t e. D t e. ( a I b ) ) } $.
    ishpg.g $e |- ( ph -> G e. TarskiG ) $.
    ishpg.d $e |- ( ph -> D e. ran L ) $.
    ${
      $d D a b c d t $.  $d D a b c e f t $.  $d G a b d g i p $.  $d d ph $.
      $d I a b c d e f g i p t $.  $d L d g $.  $d P a b c d e f g i p t $.
      $( Value of the half-plane relation for a given line ` D ` .
         (Contributed by Thierry Arnoux, 4-Mar-2020.) $)
      ishpg $p |- ( ph -> ( ( hpG ` G ) ` D ) =
        { <. a , b >. | E. c e. P ( a O c /\ b O c ) } ) $=
        ( wcel wa anbi12d vd vg vp vi ve vf chpg cfv cv cdif wrex copab wbr crn
        cvv cstrkg cmpt wceq elex clng citv wsbc cbs fveq2 syl6eqr rneqd eqcomd
        co simpl difeq1d eleq2d simpr oveqd rexbidv rexeqbidv sbcie2s mpteq12dv
        opabbidv df-hpg fvex eqeltri rnex mptex fvmpt 3syl difeq2 id adantl cxp
        rexeqdv xpex eqeltrri eldifi anim12i adantrr adantlr rexlimivw ssopab2i
        df-xp ssexi a1i fvmptd eleq1 anbi1d oveq1 anbi2d eleq1d oveq12 cbvopabv
        vex oveq2 eqtri brab anbi12i rexbii opabbii eqtr4d ) ACEUGUHZUHIUIZDCUJ
        ZRZKUIZXTRZSZBUIZXSYBFVHZRZBCUKZSZJUIZXTRZYCSZYEYJYBFVHZRZBCUKZSZSZKDUK
        ZIJULZXSYBHUMZYJYBHUMZSZKDUKZIJULZAUACXSDUAUIZUJZRZYBUUFRZSZYGBUUEUKZSZ
        YJUUFRZUUHSZYNBUUEUKZSZSZKDUKZIJULZYSGUNZXRUOAEUPREUORXRUAUUSUURUQZURPE
        UPUSUBEUAUBUIZUTUHZUNZXSUCUIZUUEUJZRZYBUVERZSZYEXSYBUDUIZVHZRZBUUEUKZSZ
        YJUVERZUVGSZYEYJYBUVIVHZRZBUUEUKZSZSZKUVDUKZUDUVAVAUHVBUCUVAVCUHVBZIJUL
        ZUQUUTUOUGUVAEURZUAUVCUWCUUSUURUWDUVBGUWDUVBEUTUHZGUVAEUTVDNVEVFUWDUWBU
        UQIJUUQUWAUBDFVCVAEUCUDLMUVDDURZUVIFURZSZUUPUVTKDUVDUWHUVDDUWFUWGVIVGZU
        WHUUKUVMUUOUVSUWHUUIUVHUUJUVLUWHUUGUVFUUHUVGUWHUUFUVEXSUWHDUVDUUEUWIVJZ
        VKUWHUUFUVEYBUWJVKZTUWHYGUVKBUUEUWHYFUVJYEUWHFUVIXSYBUWHUVIFUWFUWGVLVGZ
        VMVKVNTUWHUUMUVOUUNUVRUWHUULUVNUUHUVGUWHUUFUVEYJUWJVKUWKTUWHYNUVQBUUEUW
        HYMUVPYEUWHFUVIYJYBUWLVMVKVNTTVOVPVRVQBUBUDUCIJKUAVSUAUUSUURGGUWEUONEUT
        VTWAWBWCWDWEUUECURZUURYSURAUWMUUQYRIJUWMUUPYQKDUWMUUKYIUUOYPUWMUUIYDUUJ
        YHUWMUUGYAUUHYCUWMUUFXTXSUUECDWFZVKUWMUUFXTYBUWNVKZTUWMYGBUUECUWMWGZWJT
        UWMUUMYLUUNYOUWMUULYKUUHYCUWMUUFXTYJUWNVKUWOTUWMYNBUUECUWPWJTTVNVRWHQYS
        UORAYSXSDRZYJDRZSZIJULZDDWIUWTUOIJDDWSDDDEVCUHUOLEVCVTWAZUXAWKWLYRUWSIJ
        YQUWSKDYIYLUWSYOYDYLUWSYHYAYLUWSYCYAYKUWSYCYAUWQYKUWRXSDCWMYJDCWMWNWOWP
        WPWOWQWRWTXAXBUUDYSURAUUCYRIJUUBYQKDYTYIUUAYPUEUIZXTRZUFUIZXTRZSZYEUXBU
        XDFVHZRZBCUKZSZYAUXESZYEXSUXDFVHZRZBCUKZSYIUEUFXSYBHIXJKXJZUXBXSURZUXFU
        XKUXIUXNUXPUXCYAUXEUXBXSXTXCXDUXPUXHUXMBCUXPUXGUXLYEUXBXSUXDFXEVKVNTUXD
        YBURZUXKYDUXNYHUXQUXEYCYAUXDYBXTXCZXFUXQUXMYGBCUXQUXLYFYEUXDYBXSFXKVKVN
        THYAYKSZYEXSYJFVHZRZBCUKZSZIJULUXJUEUFULOUYCUXJIJUEUFXSUXBURZYJUXDURZSZ
        UXSUXFUYBUXIUYFYAUXCYKUXEUYFXSUXBXTUYDUYEVIXGUYFYJUXDXTUYDUYEVLXGTUYFUY
        AUXHBCUYFUXTUXGYEXSUXBYJUXDFXHVKVNTXIXLZXMUXJYKUXESZYEYJUXDFVHZRZBCUKZS
        YPUEUFYJYBHJXJUXOUXBYJURZUXFUYHUXIUYKUYLUXCYKUXEUXBYJXTXCXDUYLUXHUYJBCU
        YLUXGUYIYEUXBYJUXDFXEVKVNTUXQUYHYLUYKYOUXQUXEYCYKUXRXFUXQUYJYNBCUXQUYIY
        MYEUXDYBYJFXKVKVNTUYGXMXNXOXPXAXQ $.
    $}

    hpgbr.a $e |- ( ph -> A e. P ) $.
    hpgbr.b $e |- ( ph -> B e. P ) $.
    ${
      $d A c u v $.  $d B c u v $.  $d D a b c t $.  $d G a b $.
      $d I a b c t $.  $d O a b u v $.  $d P a b c t u v $.
      $( Half-planes : property for points ` A ` and ` B ` to belong to the
         same open half plane delimited by line ` D ` .  Definition 9.7 of
         [Schwabhauser] p. 71.  (Contributed by Thierry Arnoux, 4-Mar-2020.) $)
      hpgbr $p |- ( ph -> ( A ( ( hpG ` G ) ` D ) B
        <-> E. c e. P ( A O c /\ B O c ) ) ) $=
        ( vu vv chpg cfv cv wa wrex copab ishpg wceq simpl breq1d simpr anbi12d
        wbr rexbidv cbvopabv syl6eq breqd wcel wb eqid brabga syl2anc bitrd ) A
        CDEGUDUEUEZUPCDUBUFZMUFZJUPZUCUFZVIJUPZUGZMFUHZUBUCUIZUPZCVIJUPZDVIJUPZ
        UGZMFUHZAVGVOCDAVGKUFZVIJUPZLUFZVIJUPZUGZMFUHZKLUIVOABEFGHIJKLMNOPQRSUJ
        WFVNKLUBUCWAVHUKZWCVKUKZUGZWEVMMFWIWBVJWDVLWIWAVHVIJWGWHULUMWIWCVKVIJWG
        WHUNUMUOUQURUSUTACFVADFVAVPVTVBTUAVNVTUBUCCDVOFFVHCUKZVKDUKZUGZVMVSMFWL
        VJVQVLVRWLVHCVIJWJWKULUMWLVKDVIJWJWKUNUMUOUQVOVCVDVEVF $.
    $}

    ${
      $d A c t $.  $d B c t $.  $d D a b c t $.  $d G a b t $.  $d I a b c t $.
      $d L t $.  $d O a b t $.  $d P a b c t $.  $d ph c t $.
      hpgne1.1 $e |- ( ph -> A ( ( hpG ` G ) ` D ) B ) $.
      $( Points on the open half plane cannot lie on its border.  (Contributed
         by Thierry Arnoux, 4-Mar-2020.) $)
      hpgne1 $p |- ( ph -> -. A e. D ) $=
        ( vc cv wbr wa wcel wn cds cfv crn ad2antrr cstrkg simplr simprl oppne1
        eqid chpg wrex hpgbr mpbid r19.29a ) ACUBUCZJUDZDVBJUDZUEZCEUFUGUBFAVBF
        UFZUEZVEUEBCVBEFGHIGUHUIZJKLMVHUPNPOAEIUJUFVFVERUKAGULUFVFVEQUKACFUFVFV
        ESUKAVFVEUMVGVCVDUNUOACDEGUQUIUIUDVEUBFURUAABCDEFGHIJKLUBMNOPQRSTUSUTVA
        $.

      $( Points on the open half plane cannot lie on its border.  (Contributed
         by Thierry Arnoux, 4-Mar-2020.) $)
      hpgne2 $p |- ( ph -> -. B e. D ) $=
        ( vc cv wbr wa wcel wn cds cfv crn ad2antrr cstrkg simplr simprr oppne1
        eqid chpg wrex hpgbr mpbid r19.29a ) ACUBUCZJUDZDVBJUDZUEZDEUFUGUBFAVBF
        UFZUEZVEUEBDVBEFGHIGUHUIZJKLMVHUPNPOAEIUJUFVFVERUKAGULUFVFVEQUKADFUFVFV
        ETUKAVFVEUMVGVCVDUNUOACDEGUQUIUIUDVEUBFURUAABCDEFGHIJKLUBMNOPQRSTUSUTVA
        $.
    $}

    ${
      $d A d t x y z $.  $d B d t x y z $.  $d C a b d t x y z $.
      $d D a b d t x y z $.  $d G a b d t x y z $.  $d I a b d t x y z $.
      $d L a b d t $.  $d O a b d t x y z $.  $d P a b d t x y z $.
      $d ph d t x y z $.
      lnopp2hpgb.c $e |- ( ph -> C e. P ) $.
      lnopp2hpgb.1 $e |- ( ph -> A O C ) $.
      $( Theorem 9.8 of [Schwabhauser] p. 71.  (Contributed by Thierry Arnoux,
         4-Mar-2020.) $)
      lnopp2hpgb $p |- ( ph -> ( B O C <-> A ( ( hpG ` G ) ` D ) B ) ) $=
        ( vd vx vy vz wbr chpg cfv wa wrex wcel adantr simpr wceq breq2 anbi12d
        cv rspcev syl12anc wb hpgbr mpbird co chlg cds ad7antr ad3antrrr cstrkg
        eqid crn ad4antr ad10antr wne wo simplr tglnpt wn simp-5r oppne1 nelne2
        w3a syl2anc tgelrnln tglinerflx2 nelne1 necomd simpllr simplrr btwnlng1
        tglinerflx1 tglineineq eqnetrd simp-4r simp-7r simprr simplrl tgbtwncom
        elind simprl oppne2 eqeltrd tgbtwnconn2 3jca ishlg opphl btwnhl1 hlcomd
        tgbtwnne pm2.61dan axtgpasch r19.29a islnopp mpbid simprd eleq1 cbvrexv
        sylib ad2antrr biimpa impbida ) ADEKUHZCDFHUIUJUJUHZAYCUKZYDCUDUSZKUHZD
        YFKUHZUKZUDGULZYEEGUMZCEKUHZYCYJAYKYCUBUNAYLYCUCUNAYCUOYIYLYCUKUDEGYFEU
        PYGYLYHYCYFECKUQYFEDKUQURUTVAAYDYJVBYCABCDFGHIJKLMUDNOPQRSTUAVCZUNVDAYD
        UKZYIYCUDGYNYFGUMZUKZYIUKZUEUSZCYFIVEZUMZYCUEFYQYRFUMZUKZYTUKZUFUSZDYFI
        VEZUMZYCUFFUUCUUDFUMZUKZUUFUKZUGUSZYRDIVEUMZUUJUUDCIVEUMZUKZYCUGGUUIUUJ
        GUMZUKZUUMUKZUUJFUMZYCUUPUUQUKZBCDEFGUUJHIHVFUJZJHVGUJZKLMNUUTVKZOQPUUI
        FJVLUMZUUNUUMUUQAUVBYDYOYIUUAYTUUGUUFSVHZVIZUUIHVJUMZUUNUUMUUQAUVEYDYOY
        IUUAYTUUGUUFRVHZVIZUUSVKZUUICGUMZUUNUUMUUQYQUVIUUAYTUUGUUFAUVIYDYOYITVI
        ZVMZVIZUUIDGUMZUUNUUMUUQYQUVMUUAYTUUGUUFAUVMYDYOYIUAVIZVMZVIZAYKYDYOYIU
        UAYTUUGUUFUUNUUMUUQUBVNZAYLYDYOYIUUAYTUUGUUFUUNUUMUUQUCVNZUUPUUQUOZUURC
        DUUJUUSUJUHCUUJVOZDUUJVOZCUUJDIVEUMDUUJCIVEUMVPZWCUURUVTUWAUWBUURUUJCUU
        RUUJUUDCUURFUUDCJVEZGHIJUUJUUDNOPUVGUVDUURGHIJUUDCNOPUVGUUIUUDGUMZUUNUU
        MUUQUUIFGHIJUUDNPOUVFUVCUUCUUGUUFVQZVRZVIZUVLUURUUGCFUMVSZUUDCVOUUCUUGU
        UFUUNUUMUUQVTZUURBCEFGHIJUUTKLMNUVAOQPUVDUVGUVLUVQUVRWAZUUDCFWBWDZWEUUR
        UWCFUURCUWCUMUWHUWCFVOUURGUUDCHIJNOPUVGUWGUVLUWKWFUWJCUWCFWGWDWHUURFUWC
        UUJUVSUURGHIJUUDCUUJNOPUVGUWGUVLUUIUUNUUMUUQWIZUWKUUOUUKUULUUQWJWKWTUUR
        FUWCUUDUWIUURGUUDCHIJNOPUVGUWGUVLUWKWLWTWMZUWKWNWHUURUUJDUURUUJYRDUURFY
        RDJVEZGHIJUUJYRNOPUVGUVDUURGHIJYRDNOPUVGUUIYRGUMZUUNUUMUUQUUIFGHIJYRNPO
        UVFUVCYQUUAYTUUGUUFWOZVRZVIZUVPUURUUADFUMVSZYRDVOYQUUAYTUUGUUFUUNUUMUUQ
        WPZUURBDYFFGHIJUUTKLMNUVAOQPUVDUVGUVPUUIYOUUNUUMUUQYQYOUUAYTUUGUUFYNYOY
        IVQZVMZVIZYQYHUUAYTUUGUUFUUNUUMUUQYPYGYHWQZVHWAZYRDFWBWDZWEUURUWNFUURDU
        WNUMUWSUWNFVOUURGYRDHIJNOPUVGUWRUVPUXFWFUXEDUWNFWGWDWHUURFUWNUUJUVSUURG
        HIJYRDUUJNOPUVGUWRUVPUWLUXFUUOUUKUULUUQWRWKWTUURFUWNYRUWTUURGYRDHIJNOPU
        VGUWRUVPUXFWLWTWMZUXFWNWHUURYFUUJCDGHINOUVGUXCUWLUVLUVPUURUUJYFUURUUQYF
        FUMVSZUUJYFVOUVSUURBCYFFGHIJUUTKLMNUVAOQPUVDUVGUVLUXCYQYGUUAYTUUGUUFUUN
        UUMUUQYPYGYHXAZVHXBUUJYFFWBWDWHUURUUJYRYFCIVEUXGUURCYRYFGHIUUTNUVAOUVGU
        VLUWRUXCUUIYTUUNUUMUUQUUBYTUUGUUFWIZVIWSXCUURUUJUUDYFDIVEUWMUURDUUDYFGH
        IUUTNUVAOUVGUVPUWGUXCUUIUUFUUNUUMUUQUUHUUFUOZVIWSXCXDXEUURCDUUJGHIUUSVJ
        NOUVHUVLUVPUWLUVGXFVDXGUUPUUQVSZUKZBUUJDEFGYRHIUUSJUUTKLMNUVAOQPUUIUVBU
        UNUUMUXLUVCVIZUUIUVEUUNUUMUXLUVFVIZUVHUUIUUNUUMUXLWIZUUIUVMUUNUUMUXLUVO
        VIZAYKYDYOYIUUAYTUUGUUFUUNUUMUXLUBVNZUXMBCUUJEFGUUDHIUUSJUUTKLMNUVAOQPU
        XNUXOUVHUUIUVIUUNUUMUXLUVKVIZUXPUXRAYLYDYOYIUUAYTUUGUUFUUNUUMUXLUCVNUUI
        UUGUUNUUMUXLUWEVIZUXMUUJCUUDGHIUUSVJNOUVHUXPUXSUUIUWDUUNUUMUXLUWFVIZUXO
        UXMUUDCUUJCGHIUUSNOUVHUYAUXSUXPUXOUXSUUOUUKUULUXLWJZUXMUUDUUJCGHIUUTNUV
        AOUXOUYAUXPUXSUYBUXMUUDUUJUXMUUGUXLUUDUUJVOUXTUUPUXLUOZUUDUUJFWBWDWHZXJ
        UYDXHXIXGUUIUUAUUNUUMUXLUWPVIZUXMYRDUUJCGHIUUSNOUVHUUIUWOUUNUUMUXLUWQVI
        ZUXQUXPUXOUXSUUOUUKUULUXLWRZUXMYRUUJDGHIUUTNUVAOUXOUYFUXPUXQUYGUXMYRUUJ
        UXMUUAUXLYRUUJVOUYEUYCYRUUJFWBWDWHZXJUYHXHXGXKUUIGYRHIUUTUUDCDYFUGNUVAO
        UVFUVKUVOUXBUWQUWFUXJUXKXLXMYQUUFUFFULZUUAYTYQBUSZUUEUMZBFULZUYIYQUWSUX
        HUKZUYLYQYHUYMUYLUKUXDYQBDYFFGHIUUTKLMNUVAOQUVNUXAXNXOXPUYKUUFBUFFUYJUU
        DUUEXQXRXSXTXMYQUYJYSUMZBFULZYTUEFULYQUWHUXHUKZUYOYQYGUYPUYOUKUXIYQBCYF
        FGHIUUTKLMNUVAOQUVJUXAXNXOXPUYNYTBUEFUYJYRYSXQXRXSXMAYDYJYMYAXMYB $.
    $}

    $d A t $.  $d B a b t $.  $d D a b t $.  $d G a b t $.  $d I a b t $.
    $d L a b t $.  $d O a b t $.  $d P a b t $.  $d ph t $.
    lnoppnhpg.1 $e |- ( ph -> A O B ) $.
    $( If two points lie on the opposite side of a line ` D ` , they are not on
       the same half-plane.  Theorem 9.9 of [Schwabhauser] p. 72.  (Contributed
       by Thierry Arnoux, 4-Mar-2020.) $)
    lnoppnhpg $p |- ( ph -> -. A ( ( hpG ` G ) ` D ) B ) $=
      ( wbr chpg cfv cds eqid oppnid lnopp2hpgb mtbid ) ADDJUBCDEGUCUDUDUBABDEF
      GHIGUEUDZJKLMUJUFNPORQTUGABCDDEFGHIJKLMNOPQRSTTUAUHUI $.
  $}

  ${
    $d A c t x $.  $d B c t $.  $d D a b c t x $.  $d G a b c t $.
    $d I a b c t $.  $d O a b t x $.  $d P a b c t x $.  $d ph c t x $.
    hpgid.p $e |- P = ( Base ` G ) $.
    hpgid.i $e |- I = ( Itv ` G ) $.
    hpgid.l $e |- L = ( LineG ` G ) $.
    hpgid.g $e |- ( ph -> G e. TarskiG ) $.
    hpgid.d $e |- ( ph -> D e. ran L ) $.
    hpgid.a $e |- ( ph -> A e. P ) $.
    hpgid.o $e |- O = { <. a , b >. | ( ( a e. ( P \ D ) /\ b e. ( P \ D ) )
      /\ E. t e. D t e. ( a I b ) ) } $.
    ${
      hpgid.1 $e |- ( ph -> -. A e. D ) $.
      ${
        $( Lemma for the proof that the half-plane relation is an equivalence
           relation.  Lemma 9.10 of [Schwabhauser] p. 72.  (Contributed by
           Thierry Arnoux, 4-Mar-2020.) $)
        hpgerlem $p |- ( ph -> E. c e. P A O c ) $=
          ( vx cv wcel wbr wrex c0 wne wex tglnne0 n0 sylib cds cfv eqid cstrkg
          wa co adantr crn simpr tglnpt c2 chash cle wceq tglndim0 pm2.65da cbs
          c1 wn tgldimor ord mpd tgbtwndiff ad4antr ad3antrrr simplr tglinethru
          btwnlng2 eleqtrrd mtand eleq1 rspcev syl2anc anasss wb islnopp mpbird
          jca31 ex reximdva exlimddv ) AUAUBZDUCZCLUBZIUDZLEUEZUAADUFUGWNUAUHAD
          FHOPQUIUADUJUKAWNUPZWMCWOGUQZUCZWMWOUGZUPZLEUEWQWRCWMEFGFULUMZLMXCUNZ
          NAFUOUCZWNPURZACEUCZWNRURZWRDEFGHWMMONXFADHUSUCZWNQURZAWNUTZVAZAVBEVC
          UMZVDUDZWNAXMVIVEZVJXNAXOXIAXIXOQURAXOUPDEFGHMNOAXEXOPURAXOUTVFVGAXOX
          NACEVHFMRVKVLVMURVNWRXBWPLEWRWOEUCZUPZXBWPXQXBUPWPCDUCZVJZWODUCZVJZUP
          BUBZWSUCZBDUEZUPZXQWTXAYEXQWTUPZXAUPZXSYAYDAXSWNXPWTXATVOZYGXTXRYHYGX
          TUPZCWMWOHUQDYIEFGHWMWOCMNOWRXEXPWTXAXTXFVOZWRWMEUCXPWTXAXTXLVOZXQXPW
          TXAXTWRXPUTZVPZXQXGWTXAXTWRXGXPXHURZVPYFXAXTVQZYGWTXTXQWTXAVQZURVSYID
          EWMWOFGHMNOYJYKYMYOYOWRXIXPWTXAXTXJVOYGWNXTWRWNXPWTXAXKVPZURYGXTUTVRV
          TWAYGWNWTYDYQYPYCWTBWMDYBWMWSWBWCWDWIWEXQWPYEWFXBXQBCWODEFGXCIJKMXDNS
          YNYLWGURWHWJWKVMWL $.
      $}

      $( The half-plane relation is reflexive.  Theorem 9.11 of [Schwabhauser]
         p. 72.  (Contributed by Thierry Arnoux, 4-Mar-2020.) $)
      hpgid $p |- ( ph -> A ( ( hpG ` G ) ` D ) A ) $=
        ( vc chpg cfv wbr cv wa wrex wcel simprr hpgerlem reximddv hpgbr mpbird
        jca ) ACCDFUAUBUBUCCTUDZIUCZUOUEZTEUFAUOUPTEAUNEUGZUOUEUEUOUOAUQUOUHZUR
        UMABCDEFGHIJKTLMNOPQRSUIUJABCCDEFGHIJKTLMNROPQQUKUL $.
    $}

    ${
      hpgcom.b $e |- ( ph -> B e. P ) $.
      hpgcom.1 $e |- ( ph -> A ( ( hpG ` G ) ` D ) B ) $.
      $( The half-plane relation commutes.  Theorem 9.12 of [Schwabhauser]
         p. 72.  (Contributed by Thierry Arnoux, 4-Mar-2020.) $)
      hpgcom $p |- ( ph -> B ( ( hpG ` G ) ` D ) A ) $=
        ( vc chpg cfv wbr cv wa wrex wb ancom a1i rexbidv hpgbr 3bitr4d mpbid )
        ACDEGUCUDUDZUEZDCUPUEZUAACUBUFZJUEZDUSJUEZUGZUBFUHVAUTUGZUBFUHUQURAVBVC
        UBFVBVCUIAUTVAUJUKULABCDEFGHIJKLUBMNOSPQRTUMABDCEFGHIJKLUBMNOSPQTRUMUNU
        O $.

      $d C a b c t $.  $d L a b t $.
      hpgtr.c $e |- ( ph -> C e. P ) $.
      hpgtr.1 $e |- ( ph -> B ( ( hpG ` G ) ` D ) C ) $.
      $( The half-plane relation is transitive.  Theorem 9.13 of [Schwabhauser]
         p. 72.  (Contributed by Thierry Arnoux, 4-Mar-2020.) $)
      hpgtr $p |- ( ph -> A ( ( hpG ` G ) ` D ) C ) $=
        ( vc chpg cfv cv wa wrex hpgbr mpbid wcel simprl ad2antrr cstrkg simplr
        wbr crn simprr lnopp2hpgb mpbird jca ex reximdva mpd ) ACEFHUFUGUGZURCU
        EUHZKURZEVHKURZUIZUEGUJZAVIDVHKURZUIZUEGUJZVLACDVGURVOUBABCDFGHIJKLMUEN
        OPTQRSUAUKULAVNVKUEGAVHGUMZUIZVNVKVQVNUIZVIVJVQVIVMUNVRVJDEVGURZAVSVPVN
        UDUOVRBDEVHFGHIJKLMNOPTAHUPUMVPVNQUOAFJUSUMVPVNRUOADGUMVPVNUAUOAEGUMVPV
        NUCUOAVPVNUQVQVIVMUTVAVBVCVDVEVFABCEFGHIJKLMUENOPTQRSUCUKVB $.
    $}

    ${
      $d A y $.  $d B y $.  $d C t y $.  $d D y $.  $d G y $.  $d I y $.
      $d L a b t y $.  $d ph y $.
      colopp.b $e |- ( ph -> B e. P ) $.
      colopp.p $e |- ( ph -> C e. D ) $.
      colopp.1 $e |- ( ph -> ( C e. ( A L B ) \/ A = B ) ) $.
      $( Opposite sides of a line for colinear points.  Theorem 9.18 of
         [Schwabhauser] p. 73.  (Contributed by Thierry Arnoux, 3-Aug-2020.) $)
      colopp $p |- ( ph
        -> ( A O B <-> ( C e. ( A I B ) /\ -. A e. D /\ -. B e. D ) ) ) $=
        ( vy wcel wn wa cv co wrex wbr w3a cstrkg ad3antrrr cds cfv crn simpllr
        eqid simpld simprd simplr wceq eleq1 adantl simpr rspcedvd jca31 mpbird
        wb islnopp oppne3 tgelrnln wne tglinerflx1 oppne1 nelne1 syl2anc neneqd
        wi orcomd ord elind tglnpt btwnlng1 tglineineq eqeltrd adantllr cbvrexv
        mpd sylib r19.29a adantr eleq1d adantlr impbida 3anrot df-3an bitri a1i
        pm5.32da 3bitr4d ) ACFUEUFZDFUEUFZUGZBUHZCDIUIZUEZBFUJZUGZXEEXGUEZUGZCD
        KUKZXKXCXDULZAXEXIXKAXEUGZXIXKXOXIUGZUDUHZXGUEZXKUDFXOXQFUEZXRXKXIXOXSU
        GZXRUGZEXQXGYACDJUIZFGHIJEXQNOPAHUMUEXEXSXRQUNZYAGHIJCDNOPYCACGUEXEXSXR
        SUNZADGUEXEXSXRUAUNZYABCDFGHIJHUOUPZKLMNYFUSZOTPAFJUQUEXEXSXRRUNZYCYDYE
        YAXMXJYAXCXDXIYAXCXDAXEXSXRURZUTYAXCXDYIVAYAXHXRBXQFXOXSXRVBZXFXQVCXHXR
        VJYAXFXQXGVDZVEXTXRVFZVGVHAXMXJVJXEXSXRABCDFGHIYFKLMNYGOTSUAVKZUNVIZVLZ
        VMYHYACYBUEXCYBFVNYAGCDHIJNOPYCYDYEYOVOYABCDFGHIJYFKLMNYGOTPYHYCYDYEYNV
        PCYBFVQVRYAYBFEYACDVCZUFZEYBUEZYACDYOVSAYQYRVTXEXSXRAYPYRAYRYPUCWAWBUNW
        JAEFUEZXEXSXRUBUNWCYAYBFXQYAGHIJCDXQNOPYCYDYEYAFGHIJXQNPOYCYHYJWDYOYLWE
        YJWCWFYLWGWHXPXIXRUDFUJXOXIVFXHXRBUDFYKWIWKWLAXKXIXEAXKUGZXHXKBEFAYSXKU
        BWMYTXFEVCZUGXFEXGYTUUAVFWNAXKVFVGWOWPXAYMXNXLVJAXNXCXDXKULXLXKXCXDWQXC
        XDXKWRWSWTXB $.

      $d A a b $.  $d C a b $.  $d ph t $.
      colhp.k $e |- K = ( hlG ` G ) $.
      $( Half-plane relation for colinear points.  Theorem 9.19 of
         [Schwabhauser] p. 73.  (Contributed by Thierry Arnoux, 3-Aug-2020.) $)
      colhp $p |- ( ph
        -> ( A ( ( hpG ` G ) ` D ) B <-> ( A ( K ` C ) B /\ -. A e. D ) ) ) $=
        ( cfv wbr wcel wn wa chpg ancom a1i cmir w3a cstrkg adantr crn cds eqid
        wb co tglnpt mircl wceq nelne2 sylan necomd neneqd cv wrex simpr mirmir
        mirln eqeltrrd stoic1a eqidd eleq12d mirbtwn tgbtwncom rspcedvd islnopp
        wne jca31 mpbird oppne3 btwnlng1 colcom colrot1 orcomd ord mpd wo coltr
        orcd colopp lnopp2hpgb simpll syl simprr syl2anc simprl mirhl2 3adantr3
        hlcomd jca simpld ad2antrr hlne2 ad3antrrr tglinethru eleqtrrd pm2.65da
        btwnhl hlln 3jca impbida 3bitr3d pm5.32da adantrl hpgne1 3bitr2rd ) ACD
        EJUFUGZCFUHZUIZUJZYEYCUJZYECDFHUKUFUFUGZUJZYHYFYGVAAYCYEULUMAYEYHYCAYEU
        JZDCEHUNUFZUFZUFZLUGEDYMIVBUHZDFUHZUIZYMFUHZUIZUOZYHYCYJBDYMEFGHIKLMNOP
        QAHUPUHZYERUQZAFKURUHZYESUQZADGUHZYEUBUQZUAAYMGUHZYEAEGYKHIKYLHUSUFZCOU
        UGUTZPQYKUTZRAFGHIKEOQPRSUCVCZYLUTZTVDZUQZAEFUHZYEUCUQYJGHIKEDYMOQPUUAA
        EGUHZYEUUJUQZUUEUUMYJYMCEDGHIKOPQUUAUUMACGUHZYETUQZUUPUUEYJCEVEZUIYMCEK
        VBUHZYJCEYJECAUUNYEECWCUCECFVFVGVHZVIYJUUSUUTYJUUTUUSYJGHIKYMCEOQPUUAUU
        MUURUUPYJGHIKCYMEOQPUUAUURUUMUUPYJECYMKVBUHCYMVEYJGHIKCYMEOPQUUAUURUUMU
        UPYJBCYMFGHIKUUGLMNOUUHPUAQUUCUUAUURUUMYJCYMLUGYEYRUJBVJZCYMIVBZUHZBFVK
        ZUJYJYEYRUVEAYEVLZAYQYDAYQUJZYMYLUFZCFAUVHCVEYQAECGYKHIKYLUUGOUUHPQUUIR
        UUJUUKTVMUQUVGEYMFGYKHIKYLUUGOUUHPQUUIAYTYQRUQUUKAUUBYQSUQAUUNYQUCUQAYQ
        VLVNVOVPZAUVEYEAUVDEUVCUHZBEFUCAUVBEVEZUJZUVBEUVCUVCAUVKVLUVLUVCVQVRAYM
        ECGHIUUGOUUHPRUULUUJTAECGYKHIKYLUUGOUUHPQUUIRUUJUUKTVSVTZWAUQWDYJBCYMFG
        HIUUGLMNOUUHPUAUURUUMWBWEZWFAUVJYEUVMUQWGWOWHWIWJWKWLACEDKVBUHEDVEWMYEA
        GHIKDECOQPRUBUUJTAGHIKCDEOQPRTUBUUJUDWIWHUQWNWIWPYJBCDYMFGHIKLMNOPQUAUU
        AUUCUURUUEUUMUVNWQYJYSYCYJYSUJYCYEYJYNYPYFYRYJYNYPUJZUJZYCYEUVPDCEGHIJU
        POPUEUVPAUUDAYEUVOWRZUBWSZUVPAUUQUVQTWSZUVPAUUOUVQUUJWSZUVPAYTUVQRWSZUV
        PEGYKHIJKYLUUGDCCOUUHPQUUIUWAUUKUEUVTUVRUVSUVSUVPUUNYPDEWCUVPAUUNUVQUCW
        SYJYNYPWTUUNYPUJEDEDFVFVHXAYJCEWCUVOUVAUQYJYNYPXBXCXEYJYEUVOUVFUQXFXDXG
        YJYCUJZYNYPYRUWBCDYMEGHIJOPUEYJUUQYCUURUQZYJUUDYCUUEUQZYJUUFYCUUMUQYJYT
        YCUUAUQZAUUOYEYCUUJXHZYJYCVLZAUVJYEYCUVMXHXNUWBYOYDUWBYOUJZCDEKVBZFUWBC
        UWIUHYOUWBCDEGHIJKOPUEUWCUWDUWFUWEQUWGXOUQUWHFGDEHIKOPQUWBYTYOUWEUQZUWB
        UUDYOUWDUQZUWBUUOYOUWFUQZUWHCDEGHIJUPOPUEUWBUUQYOUWCUQUWKUWLUWJUWBYCYOU
        WGUQXIZUWMYJUUBYCYOUUCXHUWBYOVLAUUNYEYCYOUCXJXKXLYJYEYCYOUVFXHXMYJYRYCU
        VIUQXPXQXRXSAYIYHAYHYHYEAYHVLZXTAYHUJZYEYHUWOBCDFGHIKLMNOPQUAAYTYHRUQAU
        UBYHSUQAUUQYHTUQAUUDYHUBUQUWNYAUWNXFXQYB $.
    $}

    ${
      $d A a b $.  $d B a b $.  $d C a b t $.  $d L a b t $.  $d ph t $.
      hphl.k $e |- K = ( hlG ` G ) $.
      hphl.a $e |- ( ph -> A e. D ) $.
      hphl.b $e |- ( ph -> B e. P ) $.
      hphl.c $e |- ( ph -> C e. P ) $.
      hphl.1 $e |- ( ph -> -. B e. D ) $.
      hphl.2 $e |- ( ph -> B ( K ` A ) C ) $.
      $( If two points are on the same half-line with endpoint on a line, they
         are on the same half-plane defined by this line.  (Contributed by
         Thierry Arnoux, 9-Aug-2020.) $)
      hphl $p |- ( ph -> B ( ( hpG ` G ) ` D ) C ) $=
        ( chpg cfv wbr wcel wn wa jca co wceq hlln orcd colrot2 colhp mpbird )
        ADEFHUHUIUIUJDECJUIUJZDFUKULZUMAVBVCUGUFUNABDECFGHIJKLMNOPQRSUDUAUEUCAG
        HIKECDOQPRUETUDADECKUOUKECUPADECGHIJKOPUBUDUETRQUGUQURUSUBUTVA $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Midpoints and Line Mirroring
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c midG lInvG $.

  $( Declare the constant for the midpoint operation. $)
  cmid $a class midG $.

  $( Declare the constant for the line mirroring function. $)
  clmi $a class lInvG $.

  ${
    $d a b g m $.
    $( Define the midpoint operation.  Definition 10.1 of [Schwabhauser] p. 88.
       See ~ ismidb , ~ midbtwn , and ~ midcgr .  (Contributed by Thierry
       Arnoux, 9-Jun-2019.) $)
    df-mid $a |- midG = ( g e. _V |-> ( a e. ( Base ` g ) , b e. ( Base ` g )
      |-> ( iota_ m e. ( Base ` g ) b = ( ( ( pInvG ` g ) ` m ) ` a ) ) ) ) $.

    $( Define the line mirroring function.  Definition 10.3 of [Schwabhauser]
       p. 89.  See ~ islmib .  (Contributed by Thierry Arnoux, 1-Dec-2019.) $)
    df-lmi $a |- lInvG = ( g e. _V |-> ( m e. ran ( LineG ` g ) |->
      ( a e. ( Base ` g ) |-> ( iota_ b e. ( Base ` g ) (
           ( a ( midG ` g ) b ) e. m
        /\ ( m ( perpG ` g ) ( a ( LineG ` g ) b ) \/ a = b )
      ) ) ) ) ) $.
  $}

  ${
    $d .- m $.  $d G a b g m $.  $d I m $.  $d L m $.  $d P a b g m $.
    $d a b g m ph $.
    ismid.p $e |- P = ( Base ` G ) $.
    ismid.d $e |- .- = ( dist ` G ) $.
    ismid.i $e |- I = ( Itv ` G ) $.
    ismid.g $e |- ( ph -> G e. TarskiG ) $.
    ismid.1 $e |- ( ph -> G TarskiGDim>= 2 ) $.
    $( Midpoint as a function.  (Contributed by Thierry Arnoux, 1-Dec-2019.) $)
    midf $p |- ( ph -> ( midG ` G ) : ( P X. P ) --> P ) $=
      ( va vb vm vg cfv cv wceq wcel wral cvv cmid wf cmir crio cmpt2 wreu clng
      cxp wa eqid cstrkg adantr simprl simprr cstrkgld mideu ralrimivva riotacl
      c2 wbr 2ralimi syl fmpt2 sylib cbs df-mid a1i fveq2 syl6eqr fveq1d eqeq2d
      cmpt riotaeqbidv mpt2eq123dv adantl elex fvex eqeltri mpt2ex fvmptd feq1d
      mpbird ) ABBUHZBCUAOZUBWCBKLBBLPZKPZMPZCUCOZOZOZQZMBUDZUEZUBZAWLBRZLBSKBS
      ZWNAWKMBUFZLBSKBSWPAWQKLBBAWFBRZWEBRZUIZUIMWFWEBWHCDCUGOZEFGHXAUJACUKRZWT
      IULWHUJAWRWSUMAWRWSUNACUSUOUTWTJULUPUQWQWOKLBBWKMBURVAVBKLBBWLBWMWMUJVCVD
      AWCBWDWMANCKLNPZVEOZXDWEWFWGXCUCOZOZOZQZMXDUDZUEZWMTUATUANTXJVLQANMKLVFVG
      XCCQZXJWMQAXKKLXDXDXIBBWLXKXDCVEOZBXCCVEVHFVIZXMXKXHWKMXDBXMXKXGWJWEXKWFX
      FWIXKWGXEWHXCCUCVHVJVJVKVMVNVOAXBCTRICUKVPVBWMTRAKLBBWLBXLTFCVEVQVRZXNVSV
      GVTWAWB $.

    ${
      midcl.1 $e |- ( ph -> A e. P ) $.
      midcl.2 $e |- ( ph -> B e. P ) $.
      $( Closure of the midpoint.  (Contributed by Thierry Arnoux,
         1-Dec-2019.) $)
      midcl $p |- ( ph -> ( A ( midG ` G ) B ) e. P ) $=
        ( cmid cfv midf fovrnd ) ABCDDDEOPADEFGHIJKLQMNR $.

      ${
        $d A a b m $.  $d B a b m $.  $d M m $.  $d S a b g m $.
        ismidb.s $e |- S = ( pInvG ` G ) $.
        ismidb.m $e |- ( ph -> M e. P ) $.
        $( Property of the midpoint.  (Contributed by Thierry Arnoux,
           1-Dec-2019.) $)
        ismidb $p |- ( ph ->
          ( B = ( ( S ` M ) ` A ) <-> ( A ( midG ` G ) B ) = M ) ) $=
          ( cfv wceq vm va vb vg cv crio cmid co wcel wreu wb clng mideu fveq1d
          eqid fveq2 eqeq2d riota2 syl2anc cbs cmir cvv cmpt df-mid a1i syl6eqr
          cmpt2 riotaeqbidv mpt2eq123dv adantl cstrkg syl eqeltri mpt2ex fvmptd
          elex wa simprr simprl fveq2d eqeq12d riotabidv riotacl ovmpt2d eqeq1d
          fvex bitr4d ) ACBHESZSZTZCBUAUEZESZSZTZUADUFZHTZBCFUGSZUHZHTAHDUIWNUA
          DUJZWJWPUKRAUABCDEFGFULSZIJKLWTUOMQOPNUMZWNWJUADHWKHTZWMWICXBBWLWHWKH
          EUPUNUQURUSAWRWOHAUBUCBCDDUCUEZUBUEZWLSZTZUADUFZWOWQDAUDFUBUCUDUEZUTS
          ZXIXCXDWKXHVASZSZSZTZUAXIUFZVGZUBUCDDXGVGZVBUGVBUGUDVBXOVCTAUDUAUBUCV
          DVEXHFTZXOXPTAXQUBUCXIXIXNDDXGXQXIFUTSZDXHFUTUPJVFZXSXQXMXFUAXIDXSXQX
          LXEXCXQXDXKWLXQWKXJEXQXJFVASEXHFVAUPQVFUNUNUQVHVIVJAFVKUIFVBUIMFVKVPV
          LXPVBUIAUBUCDDXGDXRVBJFUTWFVMZXTVNVEVOAXDBTZXCCTZVQVQZXFWNUADYCXCCXEW
          MAYAYBVRYCXDBWLAYAYBVSVTWAWBOPAWSWODUIXAWNUADWCVLWDWEWG $.
      $}

      $( Betweenness of midpoint.  (Contributed by Thierry Arnoux,
         7-Dec-2019.) $)
      midbtwn $p |- ( ph -> ( A ( midG ` G ) B ) e. ( A I B ) ) $=
        ( cmid cfv co midcl eqid wceq cmir mirbtwn eqidd ismidb mpbird eleqtrrd
        clng oveq1d tgbtwncom ) ACBCEOPQZBDEFGHIJKNABCDEFGHIJKLMNRZMAUJBUJEUAPZ
        PZPZBFQCBFQAUJBDULEFEUGPZUMGHIJUOSULSZKUKUMSMUBACUNBFACUNTUJUJTAUJUCABC
        DULEFUJGHIJKLMNUPUKUDUEUHUFUI $.

      ${
        midcgr.1 $e |- ( ph -> ( A ( midG ` G ) B ) = C ) $.
        $( Congruence of midpoint.  (Contributed by Thierry Arnoux,
           7-Dec-2019.) $)
        midcgr $p |- ( ph -> ( C .- A ) = ( C .- B ) ) $=
          ( co cfv wceq eqid cmir cmid midcl eqeltrrd ismidb mpbird oveq2d clng
          mircgr eqtr2d ) ADCHQDBDFUARZRZRZHQDBHQACUMDHACUMSBCFUBRQZDSPABCEUKFG
          DHIJKLMNOUKTZAUNDEPABCEFGHIJKLMNOUCUDZUEUFUGADBEUKFGFUHRZULHIJKUQTUOL
          UPULTNUIUJ $.
      $}

      $( Midpoint of a null segment.  (Contributed by Thierry Arnoux,
         7-Dec-2019.) $)
      midid $p |- ( ph -> ( A ( midG ` G ) A ) = A ) $=
        ( cmid cfv co midcl midbtwn axtgbtwnid eqcomd ) ABBBEOPQZADEFGBUBHIJKMA
        BBDEFGHIJKLMMRABBDEFGHIJKLMMSTUA $.

      $( Commutativity rule for the midpoint.  (Contributed by Thierry Arnoux,
         2-Dec-2019.) $)
      midcom $p |- ( ph -> ( A ( midG ` G ) B ) = ( B ( midG ` G ) A ) ) $=
        ( cmid cfv co cmir wceq eqid clng midcl eqidd midcgr ismir ismidb mpbid
        midbtwn ) ACBCBEOPZQZERPZPZPSBCUIQUJSAUJBCDUKEFEUAPZULGHIJUMTUKTZKACBDE
        FGHIJKLNMUBZULTMNACBUJDEFGHIJKLNMAUJUCUDACBDEFGHIJKLNMUHUEABCDUKEFUJGHI
        JKLMNUNUOUFUG $.

      ${
        mirmid.s $e |- S = ( ( pInvG ` G ) ` M ) $.
        mirmid.x $e |- ( ph -> M e. P ) $.
        $( Point inversion preserves midpoints.  (Contributed by Thierry
           Arnoux, 12-Dec-2019.) $)
        mirmid $p |- ( ph -> ( ( S ` A ) ( midG ` G ) ( S ` B ) )
          = ( S ` ( A ( midG ` G ) B ) ) ) $=
          ( cfv wceq cmid co cmir eqidd eqid midcl ismidb mpbird fveq2d mirmir2
          clng eqtrd mircl mpbid ) ACESZBESZBCFUASZUBZESZFUCSZSSZTUPUOUQUBUSTAU
          OBURUTSSZESVAACVBEACVBTURURTAURUDABCDUTFGURIJKLMNOPUTUEZABCDFGIJKLMNO
          PUFZUGUHUIAHDUTFGFUKSZEIBURJKLVEUEZVCMRQOVDUJULAUPUODUTFGUSIJKLMNAHDU
          TFGVEEIBJKLVFVCMRQOUMAHDUTFGVEEICJKLVFVCMRQPUMVCAHDUTFGVEEIURJKLVFVCM
          RQVDUMUGUN $.
      $}
    $}

    ${
      $d .- x $.  $d A b x $.  $d D b x $.  $d G b x $.  $d I x $.  $d L b x $.
      $d P b x $.  $d b x ph $.
      lmieu.l $e |- L = ( LineG ` G ) $.
      lmieu.1 $e |- ( ph -> D e. ran L ) $.
      lmieu.a $e |- ( ph -> A e. P ) $.
      $( Uniqueness of the line mirror point.  Theorem 10.2 of [Schwabhauser]
         p. 88.  (Contributed by Thierry Arnoux, 1-Dec-2019.) $)
      lmieu $p |- ( ph -> E! b e. P ( ( A ( midG ` G ) b ) e. D
        /\ ( D ( perpG ` G ) ( A L b ) \/ A = b ) ) ) $=
        ( wa adantr ad2antrr vx wcel cv cmid cfv co cperpg wceq wo wreu wb wral
        wbr wne simpr cmir eqidd cstrkg ad4antr cstrkgld ad3antrrr simpllr eqid
        wn c2 midcl ismidb mpbird crn neqned tgelrnln simp-4r tglinerflx1 elind
        midbtwn btwnlng1 tglineineq fveq2d mircinv 3eqtr2rd mtand ad5antr sylib
        fveq1d nne eqeltrrd perpneq ex con4d idd jaod eqcomd oveq2d midid eqtrd
        impr eqeltrd olcd jca impbida ralrimiva reu6i simplr tglnpt mircl oveq2
        syl2anc breq1d simprl wrmo foot reurmo nelne2 tglineelsb2 neneqd simprr
        syl tgbtwnne orcomd ord mpd perpcom eqbrtrrd rmoi2 mpbid perpln1 tglnne
        necomd mirbtwn oveq1d eleqtrrd lnrot1 breqtrd necon1bd footex pm2.61dan
        orrd r19.29a ) ABCUBZBIUCZEUDUEZUFZCUBZCBYTGUFZEUGUEZUMZBYTUHZUIZRZIDUJ
        ZAYSRZBDUBZUUIYTBUHZUKZIDULUUJAUULYSQSZUUKUUNIDUUKYTDUBZRZUUIUUMUUQUUIR
        BYTUUQUUCUUHUUGUUQUUCRZUUFUUGUUGUURUUGUUFUURUUGVDZUUFVDUURUUSRZUUFCUUDU
        NZUUTUVAUUGUURUUSUOZUUTUVARZYTBUUBEUPUEZUEZUEZBBUVDUEZUEBUUTYTUVFUHZUVA
        UUTUVHUUBUUBUHUUTUUBUQUUTBYTDUVDEFUUBHJKLAEURUBZYSUUPUUCUUSMUSZAEVEUTUM
        ZYSUUPUUCUUSNUSZUUKUULUUPUUCUUSUUOVAZUUKUUPUUCUUSVBZUVDVCZUUTBYTDEFHJKL
        UVJUVLUVMUVNVFZVGVHSUVCBUVGUVEUVCBUUBUVDUVCCUUDDEFGBUUBJLOUUTUVIUVAUVJS
        ZUUTCGVIZUBZUVAAUVSYSUUPUUCUUSPUSSUVCDEFGBYTJLOUVQUUTUULUVAUVMSZUUTUUPU
        VAUVNSZUUTBYTUNZUVAUUTBYTUVBVJZSZVKUUTUVAUOUVCCUUDBUUTYSUVAAYSUUPUUCUUS
        VLSUVCDBYTEFGJLOUVQUVTUWAUWDVMVNUVCCUUDUUBUUQUUCUUSUVAVBUUTUUBUUDUBUVAU
        UTDEFGBYTUUBJLOUVJUVMUVNUVPUWCUUTBYTDEFHJKLUVJUVLUVMUVNVOVPSVNVQVRWDUVC
        BDUVDEFGUVGHJKLOUVOUVQUVTUVGVCVSVTWAZUUTUUFRZCUUDDEFGHJKLOAUVIYSUUPUUCU
        USUUFMWBAUVSYSUUPUUCUUSUUFPWBZUWFCUUDUVRUUTCUUDUHZUUFUUTUVAVDUWHUWECUUD
        WEWCSUWGWFUUTUUFUOWGWAWHWIUURUUGWJWKWPWLUUQUUMRZUUCUUHUWIUUBBCUWIUUBBBU
        UAUFZBUWIYTBBUUAUUQUUMUOZWMAUWJBUHYSUUPUUMABBDEFHJKLMNQQWNVAWOAYSUUPUUM
        VBWQUWIUUGUUFUWIYTBUWKWLWRWSWTXAUUIIDBXBXGAYSVDZRZBUAUCZGUFZCUUEUMZUUJU
        ACUWMUWNCUBZRZUWPRZBUWNUVDUEZUEZDUBUUIYTUXAUHZUKZIDULUUJUWSUWNDUVDEFGUW
        THBJKLOUVOUWMUVIUWQUWPAUVIUWLMSZTZUWSCDEFGUWNJOLUXEUWMUVSUWQUWPAUVSUWLP
        SZTZUWMUWQUWPXCZXDZUWTVCZUWMUULUWQUWPAUULUWLQSZTZXEUWSUXCIDUWSUUPRZUUIU
        XBUXMUUIRZUXBUUBUWNUHZUXNUWNUUBUXNUWPBUUBGUFZCUUEUMUACUUBUWNUUBUHUWOUXP
        CUUEUWNUUBBGXFXHUXMUUCUUHXIZUWMUWPUACXJZUWQUWPUUPUUIUWMUWPUACUJUXRUWMUA
        CBDEFGHJKLOUXDUXFUXKAUWLUOZXKUWPUACXLXQUSUWSUWQUUPUUIUXHTUWRUWPUUPUUIVB
        UXNUUDUXPCUUEUXNDBYTUUBEFGJLOUWSUVIUUPUUIUXETZUWSUULUUPUUIUXLTZUWSUUPUU
        IXCZUXNBUUBYTDEFHJKLUXTUYAUXNBYTDEFHJKLUXTAUVKUWLUWQUWPUUPUUINWBZUYAUYB
        VFZUYBUXNBYTDEFHJKLUXTUYCUYAUYBVOZUXNUUCUWLUUBBUNUXQUWMUWLUWQUWPUUPUUIU
        XSUSUUBBCXMXGZXRZUYDUYFUXNDEFGBYTUUBJLOUXTUYAUYBUYDUYGUYEVPXNUXNCUUDDEF
        GHJKLOUXTUWSUVSUUPUUIUXGTUXNDEFGBYTJLOUXTUYAUYBUYGVKUXNUUSUUFUXNBYTUYGX
        OUXNUUGUUFUXNUUFUUGUXMUUCUUHXPXSXTYAYBYCYDWLUXNBYTDUVDEFUWNHJKLUXTUYCUY
        AUYBUVOUWSUWNDUBZUUPUUIUXITVGVHUXMUXBRZUUCUUHUYIUUBUWNCUYIUXBUXOUXMUXBU
        OUYIBYTDUVDEFUWNHJKLUWSUVIUUPUXBUXETZAUVKUWLUWQUWPUUPUXBNWBUWSUULUUPUXB
        UXLTZUWSUUPUXBXCUVOUWSUYHUUPUXBUXITZVGYEUWSUWQUUPUXBUXHTWQUYIUUFUUGUYIU
        UFBYTUYIUWBUUFUYIUWBRZCUWOUUDUUEUYMUWOCDEFGHJKLOUYIUVIUWBUYJSZUYMUWOCEG
        OUYNUWRUWPUUPUXBUWBVLZYFZUWSUVSUUPUXBUWBUXGVAUYOYBUYMDBUWNYTEFGJLOUYNUY
        IUULUWBUYKSZUYIUYHUWBUYLSZUYMDEFGBUWNJLOUYNUYQUYRUYPYGZUWSUUPUXBUWBVBZU
        YMBYTUYIUWBUOYHZUYMDEFGBUWNYTJLOUYNUYQUYRUYTUYSUYMDEFGYTBUWNJLOUYNUYTUY
        QUYRVUAUYMUWNUXABFUFYTBFUFUYMUWNBDUVDEFGUWTHJKLOUVOUYNUYRUXJUYQYIUYMYTU
        XABFUXMUXBUWBXCYJYKVPVUAYLXNYMWHYNYQWSWTXAUUIIDUXAXBXGUWMUACBDEFGHJKLOU
        XDUXFUXKUXSYOYRYP $.
    $}

    $d D a b d $.  $d G a b d g $.  $d L a b d g $.  $d P a b d g $.
    $d a b d g ph $.
    lmif.m $e |- M = ( ( lInvG ` G ) ` D ) $.
    lmif.l $e |- L = ( LineG ` G ) $.
    lmif.d $e |- ( ph -> D e. ran L ) $.
    $( Line mirror as a function.  (Contributed by Thierry Arnoux,
       11-Dec-2019.) $)
    lmif $p |- ( ph -> M : P --> P ) $=
      ( vb cfv wcel cvv va vd vg wf cv cmid co cperpg wceq wo wa crio cmpt wreu
      wbr cstrkg adantr c2 cstrkgld crn simpr lmieu riotacl syl eqid fmptd clmi
      clng cbs df-lmi a1i fveq2 syl6eqr rneqd oveqd eleq1d eqidd orbi1d anbi12d
      breq123d riotaeqbidv mpteq12dv adantl elex fvex eqeltri rnexg mptexg mp2b
      fvmptd eleq2 breq1 riotabidv mpteq2dv mptex syl5eq feq1d mpbird ) ACCGUDC
      CUACUAUEZQUEZDUFRZUGZBSZBWSWTFUGZDUHRZUOZWSWTUIZUJZUKZQCULZUMZUDAUACXJCXK
      AWSCSZUKZXIQCUNXJCSXMWSBCDEFHQIJKADUPSZXLLUQADURUSUOXLMUQOABFUTZSXLPUQAXL
      VAVBXIQCVCVDXKVEVFACCGXKAGBDVGRZRXKNAUBBUACXBUBUEZSZXQXDXEUOZXGUJZUKZQCUL
      ZUMZXKXOXPTAUCDUBUCUEZVHRZUTZUAYDVIRZWSWTYDUFRZUGZXQSZXQWSWTYEUGZYDUHRZUO
      ZXGUJZUKZQYGULZUMZUMZUBXOYCUMZTVGTVGUCTYRUMUIAUCUBUAQVJVKYDDUIZYRYSUIAYTU
      BYFYQXOYCYTYEFYTYEDVHRZFYDDVHVLOVMZVNYTUAYGYPCYBYTYGDVIRZCYDDVIVLIVMZYTYO
      YAQYGCUUDYTYJXRYNXTYTYIXBXQYTYHXAWSWTYDDUFVLVOVPYTYMXSXGYTXQXQYKXDYLXEYTX
      QVQYDDUHVLYTYEFWSWTUUBVOVTVRVSWAWBWBWCAXNDTSLDUPWDVDYSTSZAFTSXOTSUUEFUUAT
      ODVHWEWFFTWGUBXOYCTWHWIVKWJXQBUIZYCXKUIAUUFUACYBXJUUFYAXIQCUUFXRXCXTXHXQB
      XBWKUUFXSXFXGXQBXDXEWLVRVSWMWNWCPXKTSAUACXJCUUCTIDVIWEWFWOVKWJWPWQWR $.

    ${
      lmicl.1 $e |- ( ph -> A e. P ) $.
      $( Closure of the line mirror.  (Contributed by Thierry Arnoux,
         11-Dec-2019.) $)
      lmicl $p |- ( ph -> ( M ` A ) e. P ) $=
        ( lmif ffvelrnd ) ADDBHACDEFGHIJKLMNOPQSRT $.

      ${
        $d A a b $.  $d B b $.
        islmib.b $e |- ( ph -> B e. P ) $.
        $( Property of the line mirror.  (Contributed by Thierry Arnoux,
           11-Dec-2019.) $)
        islmib $p |- ( ph -> ( B = ( M ` A ) <-> ( ( A ( midG ` G ) B ) e. D
            /\ ( D ( perpG ` G ) ( A L B ) \/ A = B ) ) ) ) $=
          ( vb va vd vg cfv wceq cv cmid co wcel cperpg wbr wo wa crio clmi crn
          cmpt cvv clng cbs df-lmi a1i fveq2 syl6eqr rneqd oveqd eqidd breq123d
          eleq1d orbi1d anbi12d riotaeqbidv mpteq12dv adantl cstrkg syl eqeltri
          elex fvex rnexg mptexg mp2b fvmptd eleq2 breq1 riotabidv mptex syl5eq
          mpteq2dv oveq1 breq2d eqeq1 orbi12d wreu lmieu riotacl wb oveq2 eqeq2
          eqeq2d riota2 syl2anc eqcom syl6bbr bitr4d ) ACBIUEZUFCBUAUGZFUHUEZUI
          ZDUJZDBXHHUIZFUKUEZULZBXHUFZUMZUNZUAEUOZUFZBCXIUIZDUJZDBCHUIZXMULZBCU
          FZUMZUNZAXGXRCAUBBUBUGZXHXIUIZDUJZDYGXHHUIZXMULZYGXHUFZUMZUNZUAEUOZXR
          EIEAIDFUPUEZUEUBEYOURZPAUCDUBEYHUCUGZUJZYRYJXMULZYLUMZUNZUAEUOZURZYQH
          UQZYPUSAUDFUCUDUGZUTUEZUQZUBUUFVAUEZYGXHUUFUHUEZUIZYRUJZYRYGXHUUGUIZU
          UFUKUEZULZYLUMZUNZUAUUIUOZURZURZUCUUEUUDURZUSUPUSUPUDUSUUTURUFAUDUCUB
          UAVBVCUUFFUFZUUTUVAUFAUVBUCUUHUUSUUEUUDUVBUUGHUVBUUGFUTUEZHUUFFUTVDQV
          EZVFUVBUBUUIUUREUUCUVBUUIFVAUEZEUUFFVAVDKVEZUVBUUQUUBUAUUIEUVFUVBUULY
          SUUPUUAUVBUUKYHYRUVBUUJXIYGXHUUFFUHVDVGVJUVBUUOYTYLUVBYRYRUUMYJUUNXMU
          VBYRVHUUFFUKVDUVBUUGHYGXHUVDVGVIVKVLVMVNVNVOAFVPUJFUSUJNFVPVSVQUVAUSU
          JZAHUSUJUUEUSUJUVGHUVCUSQFUTVTVRHUSWAUCUUEUUDUSWBWCVCWDYRDUFZUUDYQUFA
          UVHUBEUUCYOUVHUUBYNUAEUVHYSYIUUAYMYRDYHWEUVHYTYKYLYRDYJXMWFVKVLWGWJVO
          RYQUSUJAUBEYOEUVEUSKFVAVTVRWHVCWDWIYGBUFZYOXRUFAUVIYNXQUAEUVIYIXKYMXP
          UVIYHXJDYGBXHXIWKVJUVIYKXNYLXOUVIYJXLDXMYGBXHHWKWLYGBXHWMWNVLWGVOSAXQ
          UAEWOZXREUJABDEFGHJUAKLMNOQRSWPZXQUAEWQVQWDXAAYFXRCUFZXSACEUJUVJYFUVL
          WRTUVKXQYFUAECXHCUFZXKYAXPYEUVMXJXTDXHCBXIWSVJUVMXNYCXOYDUVMXLYBDXMXH
          CBHWSWLXHCBWTWNVLXBXCCXRXDXEXF $.

        ${
          lmicom.1 $e |- ( ph -> ( M ` A ) = B ) $.
          $( The line mirroring function is an involution.  Theorem 10.4 of
             [Schwabhauser] p. 89.  (Contributed by Thierry Arnoux,
             11-Dec-2019.) $)
          lmicom $p |- ( ph -> ( M ` B ) = A ) $=
            ( cfv wceq cmid co wcel cperpg wbr wo midcom wa eqcomd islmib mpbid
            simpld eqeltrrd wn simprd orcomd ord cstrkg adantr neqned tglinecom
            wi simpr breq2d pm5.74da orrd eqcom orbi2i sylib mpbir2and ) ABCIUB
            ZABVNUCCBFUDUBZUEZDUFDCBHUEZFUGUBZUHZCBUCZUIZABCVOUEZVPDABCEFGJKLMN
            OSTUJAWBDUFZDBCHUEZVRUHZBCUCZUIZACBIUBZUCWCWGUKAWHCUAULABCDEFGHIJKL
            MNOPQRSTUMUNZUOUPAVSWFUIWAAWFVSAWFVSAWFUQZWEVEWJVSVEAWFWEAWEWFAWCWG
            WIURUSUTAWJWEVSAWJUKZWDVQDVRWKEBCFGHKMQAFVAUFWJNVBABEUFWJSVBACEUFWJ
            TVBWKBCAWJVFVCVDVGVHUNVIUSWFVTVSBCVJVKVLACBDEFGHIJKLMNOPQRTSUMVMUL
            $.
        $}
      $}

      $( Line mirroring is an involution.  Theorem 10.5 of [Schwabhauser]
         p. 89.  (Contributed by Thierry Arnoux, 11-Dec-2019.) $)
      lmilmi $p |- ( ph -> ( M ` ( M ` A ) ) = A ) $=
        ( cfv lmicl eqidd lmicom ) ABBHSZCDEFGHIJKLMNOPQRABCDEFGHIJKLMNOPQRTAUC
        UAUB $.

      $d A b $.  $d M b $.
      $( Any point has a unique antecedent through line mirroring.  Theorem
         10.6 of [Schwabhauser] p. 89.  (Contributed by Thierry Arnoux,
         11-Dec-2019.) $)
      lmireu $p |- ( ph -> E! b e. P ( M ` b ) = A ) $=
        ( cfv wcel wceq cv wi wral lmicl lmilmi wa cstrkg ad2antrr cstrkgld wbr
        wreu c2 crn simplr simpr fveq2d eqtr3d ex ralrimiva fveq2 eqreu syl3anc
        eqeq1d ) ABHTZDUAVFHTZBUBZJUCZHTZBUBZVIVFUBZUDZJDUEVKJDUMABCDEFGHIKLMNO
        PQRSUFABCDEFGHIKLMNOPQRSUGAVMJDAVIDUAZUHZVKVLVOVKUHZVJHTVIVFVPVICDEFGHI
        KLMAEUIUAVNVKNUJAEUNUKULVNVKOUJPQACGUOUAVNVKRUJAVNVKUPUGVPVJBHVOVKUQURU
        SUTVAVKVHJDVFVLVJVGBVIVFHVBVEVCVD $.

      ${
        $d B b $.
        lmieq.c $e |- ( ph -> B e. P ) $.
        lmieq.d $e |- ( ph -> ( M ` A ) = ( M ` B ) ) $.
        $( Equality deduction for line mirroring.  Theorem 10.7 of
           [Schwabhauser] p. 89.  (Contributed by Thierry Arnoux,
           11-Dec-2019.) $)
        lmieq $p |- ( ph -> A = B ) $=
          ( vb cv cfv wceq fveq2 eqeq1d lmicl lmireu eqidd reu2eqd ) AUBUCZIUDZ
          CIUDZUEBIUDZUNUEUNUNUEUBEBCULBUEUMUOUNULBIUFUGULCUEUMUNUNULCIUFUGAUND
          EFGHIJUBKLMNOPQRACDEFGHIJKLMNOPQRTUHUISTUAAUNUJUK $.
      $}

      $( The invariants of the line mirroring lie on the mirror line.  Theorem
         10.8 of [Schwabhauser] p. 89.  (Contributed by Thierry Arnoux,
         11-Dec-2019.) $)
      lmiinv $p |- ( ph -> ( ( M ` A ) = A <-> A e. D ) ) $=
        ( cfv wceq cmid co wcel cperpg wbr wo wa islmib wb eqcom a1i eqidd olcd
        biantrud midid eleq1d bitr3d 3bitr3d ) ABBHSZTZBBEUASUBZCUCZCBBGUBEUDSU
        EZBBTZUFZUGZUSBTZBCUCZABBCDEFGHIJKLMNOPQRRUHUTVGUIABUSUJUKAVBVFVHAVEVBA
        VDVCABULUMUNAVABCABBDEFIJKLMNRRUOUPUQUR $.

      ${
        lmicinv.1 $e |- ( ph -> A e. D ) $.
        $( The mirroring line is an invariant.  (Contributed by Thierry Arnoux,
           8-Aug-2020.) $)
        lmicinv $p |- ( ph -> ( M ` A ) = A ) $=
          ( cfv wceq wcel lmiinv mpbird ) ABHTBUABCUBSABCDEFGHIJKLMNOPQRUCUD $.
      $}

      ${
        lmimid.s $e |- S = ( ( pInvG ` G ) ` B ) $.
        lmimid.r $e |- ( ph -> <" A B C "> e. ( raG ` G ) ) $.
        lmimid.a $e |- ( ph -> A e. D ) $.
        lmimid.b $e |- ( ph -> B e. D ) $.
        lmimid.c $e |- ( ph -> C e. P ) $.
        lmimid.d $e |- ( ph -> A =/= B ) $.
        $( If we have a right angle, then the mirror point is the point
           inversion.  (Contributed by Thierry Arnoux, 15-Dec-2019.) $)
        lmimid $p |- ( ph -> ( M ` C ) = ( S ` C ) ) $=
          ( cfv wceq cmid co wcel cperpg wbr cmir a1i fveq1d eqid tglnpt ismidb
          wo mircl mpbid eqeltrd wn wne df-ne wa cstrkg adantr tgelrnln midbtwn
          simpr eqeltrrd btwnlng1 elind tglinerflx1 mirinv eqcom syl6bb biimpar
          crn eqcomd ex necon3d imp cs3 crag ragperp syl5bir orrd orcomd islmib
          mpbir2and ) ADGUHZDKUHZAWOWPUIDWOHUJUHUKZEULEDWOJUKZHUMUHUNZDWOUIZVAA
          WQCEAWODCHUOUHZUHZUHUIWQCUIADGXBGXBUIAUBUPUQADWOFXAHICLMNOPQUFACFXAHI
          JGLDMNOSXAURZPAEFHIJCMSOPTUEUSZUBUFVBZXCXDUTVCZUEVDAWTWSAWTWSWTVEDWOV
          FZAWSDWOVGAXGWSAXGVHZEWRFBHIJLDCMNOSAHVIULXGPVJZAEJWBULXGTVJXHFHIJDWO
          MOSXIADFULXGUFVJZAWOFULXGXEVJZAXGVMZVKXHEWRCACEULXGUEVJXHFHIJDWOCMOSX
          IXJXKACFULXGXDVJXLACDWOIUKZULXGAWQCXMXFADWOFHILMNOPQUFXEVLVNVJVOVPABE
          ULXGUDVJXHFDWOHIJMOSXIXJXKXLVQABCVFXGUGVJAXGDCVFADCDWOADCUIZWTAXNVHWO
          DAWODUIZXNAXOCDUIXNACDFXAHIJGLMNOSXCPXDUBUFVRCDVSVTWAWCWDWEWFABCDWGHW
          HUHULXGUCVJWIWDWJWKWLADWOEFHIJKLMNOPQRSTUFXEWMWNWC $.
      $}
    $}

    $d b M $.
    $( The line mirroring function ` M ` is a bijection.  Theorem 10.9 of
       [Schwabhauser] p. 89.  (Contributed by Thierry Arnoux, 11-Dec-2019.) $)
    lmif1o $p |- ( ph -> M : P -1-1-onto-> P ) $=
      ( vb wceq wcel adantr wfn ccnv wf1o wf lmif ffn syl cv cfv wral wa cstrkg
      c2 cstrkgld wbr crn simpr lmilmi ralrimiva nvocnv syl2anc nvof1o ) AGCUAZ
      GUBGRZCCGUCACCGUDZVCABCDEFGHIJKLMNOPUEZCCGUFUGAVEQUHZGUIGUIVGRZQCUJVDVFAV
      HQCAVGCSZUKVGBCDEFGHIJKADULSVILTADUMUNUOVIMTNOABFUPSVIPTAVIUQURUSQCGUTVAC
      GVBVA $.

    ${
      lmiiso.1 $e |- ( ph -> A e. P ) $.
      lmiiso.2 $e |- ( ph -> B e. P ) $.
      ${
        $( TODO this can be shortened as the first part of the proof is
          symmetrical for A and B $)
        lmiisolem.s $e |- S = ( ( pInvG ` G ) ` Z ) $.
        lmiisolem.z $e |- Z = ( ( A ( midG ` G ) ( M ` A ) )
           ( midG ` G ) ( B ( midG ` G ) ( M ` B ) ) ) $.
        $( Lemma for ~ lmiiso .  (Contributed by Thierry Arnoux,
           14-Dec-2019.) $)
        lmiisolem $p |- ( ph -> ( ( M ` A ) .- ( M ` B ) ) = ( A .- B ) ) $=
          ( cfv co wceq wcel cstrkg adantr cmid lmicl midcl syl5eqel cmir mircl
          wa eqid mircgr simpr eqcomd tgcgreq oveq2d syl6reqr c2 cstrkgld midid
          wbr eqtrd cperpg wo eqidd islmib mpbid simpld eqeltrd wne midbtwn crn
          btwnlng1 tglinethru eleqtrrd pm2.61dane eqeltrrd lmiinv syldan eqtr4d
          biimpar oveq1d cs3 crag axtgbtwnid s3eqd ragtrivb df-ne simprd orcomd
          wn orcanai sylan2b midcgr axtgcgrid necon3d imp tglineelsb2 tglinecom
          breqtrd israg ismidb mpbird 3eqtr2d mirbtwn 3eqtr4d tgcgrcomlr fveq1i
          perpdrag mirmid eqcomi mpbiri 3eqtr4a oveq12d miriso eqtr2d axtg5seg
          ex ) ABJUEZCJUEZKUFZBCKUFZUGBFUEZLAYJLUGZUQZYHLYGKUFZLCKUFZYIYLYFLYGK
          YLYFBLAYKBDUHZYFBUGZYLLBDYLLYJLBEGHKMNOAGUIUHZYKPUJZALEUHZYKALBYFGUKU
          EZUFZCYGYTUFZYTUFZEUDAUUAUUBEGHKMNOPQABYFEGHKMNOPQUAABDEGHIJKMNOPQRST
          UAULZUMZACYGEGHKMNOPQUBACDEGHIJKMNOPQRSTUBULZUMZUMUNZUJZAYJEUHZYKALEG
          UOUEZGHIFKBMNOSUUKURZPUUHUCUAUPZUJUUIABEUHZYKUAUJZYLLBEUUKGHIFKMNOSUU
          LYRUUIUCUUOUSYLYJLAYKUTVAVBZALDUHZYKAUUQUUAUUBAUUAUUBUGZUQZLUUADUUSLU
          UAUUAYTUFZUUAUUSUUTUUCLUUSUUAUUBUUAYTAUURUTVCUDVDUUSUUAUUAEGHKMNOAYQU
          URPUJAGVEVFVHZUURQUJAUUAEUHZUURUUEUJZUVCVGVIAUUADUHZUURAUVDDBYFIUFZGV
          JUEZVHZBYFUGZVKZAYFYFUGUVDUVIUQAYFVLABYFDEGHIJKMNOPQRSTUAUUDVMVNZVOZU
          JVPAUUAUUBVQZUQZLUUAUUBIUFDUVMEGHIUUAUUBLMOSAYQUVLPUJZAUVBUVLUUEUJZAU
          UBEUHZUVLUUGUJZAYSUVLUUHUJAUVLUTZALUUAUUBHUFZUHUVLALUUCUVSUDAUUAUUBEG
          HKMNOPQUUEUUGVRUNUJVTUVMDEUUAUUBGHIMOSUVNUVOUVQUVRUVRADIVSUHUVLTUJAUV
          DUVLUVKUJAUUBDUHZUVLAUVTDCYGIUFZUVFVHZCYGUGZVKZAYGYGUGUVTUWDUQAYGVLAC
          YGDEGHIJKMNOPQRSTUBUUFVMVNZVOZUJWAWBWCZUJWDAYPYOABDEGHIJKMNOPQRSTUAWE
          WHWFUUPWGWIAYNYMUGZYKAYNLCUUBUUKUEZUEZKUFZYMALUUBCWJZGWKUEZUHZYNUWKUG
          AUWNCYGAUWCUQZLCCWJZUWLUWMUWOLCCCLUUBUWOLVLUWOEGHKCUUBMNOAYQUWCPUJACE
          UHZUWCUBUJAUVPUWCUUGUJUWOUUBCYGHUFZCCHUFAUUBUWRUHZUWCACYGEGHKMNOPQUBU
          UFVRZUJUWOCYGCHAUWCUTVCWBWLUWOCVLWMAUWPUWMUHUWCALCCEUUKGHIKMNOSUULPUU
          HUBUBWNUJWDACYGVQZUQZLUUBCDEGHIKMNOSAYQUXAPUJZAUUQUXAUWGUJAUVTUXAUWFU
          JAUWQUXAUBUJZUXBDUWAUUBCIUFZUVFUXAAUWCWRUWBCYGWOAUWCUWBAUWBUWCAUVTUWD
          UWEWPWQWSWTUXBUWACUUBIUFUXEUXBECYGUUBGHIMOSUXCUXDAYGEUHZUXAUUFUJZAUXA
          UTZAUVPUXAUUGUJZAUXAUUBCVQAUUBCCYGAUUBCUGZUWCAUXJUQZEGHKCYGCMNOAYQUXJ
          PUJZAUWQUXJUBUJZAUXFUXJUUFUJZUXMUXKCCKUFCYGKUFUXKCYGCEGHKMNOUXLAUVAUX
          JQUJUXMUXNAUXJUTXAVAXBYEXCXDZUXBEGHICYGUUBMOSUXCUXDUXGUXIUXHAUWSUXAUW
          TUJVTXEUXBEUUBCGHIMOSUXCUXIUXDUXOXFWGXGXPWCALUUBCEUUKGHIKMNOSUULPUUHU
          UGUBXHVNAYGUWJLKAYGUWJUGUUBUUBUGAUUBVLACYGEUUKGHUUBKMNOPQUBUUFUULUUGX
          IXJZVCWGZUJYLLBCKUUPWIXKAYJLVQZUQZYIYHUXSYFFUEZLYFECGHKYGYJLBMNOAYQUX
          RPUJZAUUJUXRUUMUJZAYSUXRUUHUJZAUUNUXRUAUJZAUXTEUHUXRALEUUKGHIFKYFMNOS
          UULPUUHUCUUDUPZUJZUYCAYFEUHZUXRUUDUJZAUWQUXRUBUJZAUXFUXRUUFUJZAUXRUTU
          XSLBEUUKGHIFKMNOSUULUYAUYCUCUYDXLUXSLYFEUUKGHIFKMNOSUULUYAUYCUCUYHXLU
          XSLYJLUXTEGHKMNOUYAUYCUYBUYCUYFALYJKUFZLUXTKUFZUGUXRALBKUFZLYFKUFZUYK
          UYLAUYMLBUUAUUKUEUEZKUFZUYNALUUABWJZUWMUHZUYMUYPUGAUYRBYFAUVHUQZLBBWJ
          ZUYQUWMUYSLBBBLUUAUYSLVLUYSEGHKBUUAMNOAYQUVHPUJAUUNUVHUAUJAUVBUVHUUEU
          JUYSUUABYFHUFZBBHUFAUUAVUAUHZUVHABYFEGHKMNOPQUAUUDVRZUJUYSBYFBHAUVHUT
          VCWBWLUYSBVLWMAUYTUWMUHUVHALBBEUUKGHIKMNOSUULPUUHUAUAWNUJWDABYFVQZUQZ
          LUUABDEGHIKMNOSAYQVUDPUJZAUUQVUDUWGUJAUVDVUDUVKUJAUUNVUDUAUJZVUEDUVEU
          UABIUFZUVFVUDAUVHWRUVGBYFWOAUVHUVGAUVGUVHAUVDUVIUVJWPWQWSWTVUEUVEBUUA
          IUFVUHVUEEBYFUUAGHIMOSVUFVUGAUYGVUDUUDUJZAVUDUTZAUVBVUDUUEUJZAVUDUUAB
          VQAUUABBYFAUUABUGZUVHAVULUQZEGHKBYFBMNOAYQVULPUJZAUUNVULUAUJZAUYGVULU
          UDUJZVUOVUMBBKUFBYFKUFVUMBYFBEGHKMNOVUNAUVAVULQUJVUOVUPAVULUTXAVAXBYE
          XCXDZVUEEGHIBYFUUAMOSVUFVUGVUIVUKVUJAVUBVUDVUCUJVTXEVUEEUUABGHIMOSVUF
          VUKVUGVUQXFWGXGXPWCALUUABEUUKGHIKMNOSUULPUUHUUEUAXHVNAYFUYOLKAYFUYOUG
          UUAUUAUGAUUAVLABYFEUUKGHUUAKMNOPQUAUUDUULUUEXIXJVCWGZALBEUUKGHIFKMNOS
          UULPUUHUCUAUSALYFEUUKGHIFKMNOSUULPUUHUCUUDUSXMUJXNAUYMUYNUGUXRVURUJUX
          SCYJYGUXTEGHKMNOUYAUYIUYBUYJUYFACYJKUFZYGUXTKUFZUGUXRAVUTUWJYJUWIUEZK
          UFVUSAYGUWJUXTVVAKUXPAUXTVVAUGYJUXTYTUFZUUBUGAUUAFUEUUALUUKUEZUEZVVBU
          UBUUAFVVCUCXOABYFEFGHLKMNOPQUAUUDUCUUHXQAUUBVVDUGUUCLUGLUUCUDXRAUUAUU
          BEUUKGHLKMNOPQUUEUUGUULUUHXIXSXTAYJUXTEUUKGHUUBKMNOPQUUMUYEUULUUGXIXJ
          YAAUUBEUUKGHIUWIKCYJMNOSUULPUUGUWIURUBUUMYBYCUJXNAUWHUXRUXQUJYDVAWC
          $.
      $}

      $( The line mirroring function is an isometry, i.e. it is conserves
         congruence.  Because it is also a bijection, it is also a motion.
         Theorem 10.10 of [Schwabhauser] p. 89.  (Contributed by Thierry
         Arnoux, 11-Dec-2019.) $)
      lmiiso $p |- ( ph -> ( ( M ` A ) .- ( M ` B ) ) = ( A .- B ) ) $=
        ( cfv cmid co cmir eqid lmiisolem ) ABCDEBBIUAFUBUAZUCCCIUAUGUCUGUCZFUD
        UAUAZFGHIJUHKLMNOPQRSTUIUEUHUEUF $.
    $}

    $d a b M $.
    $( Line mirroring is a motion of the geometric space.  Theorem 10.11 of
       [Schwabhauser] p. 90.  (Contributed by Thierry Arnoux, 15-Dec-2019.) $)
    lmimot $p |- ( ph -> M e. ( G Ismt G ) ) $=
      ( va vb co wcel cismt wf1o cv cfv wceq wral lmif1o cstrkg adantr cstrkgld
      wa c2 wbr crn simprl simprr lmiiso ralrimivva wb ismot syl mpbir2and ) AG
      DDUASTZCCGUBZQUCZGUDRUCZGUDHSVEVFHSUEZRCUFQCUFZABCDEFGHIJKLMNOPUGAVGQRCCA
      VECTZVFCTZUKZUKVEVFBCDEFGHIJKADUHTZVKLUIADULUJUMVKMUINOABFUNTVKPUIAVIVJUO
      AVIVJUPUQURAVLVCVDVHUKUSLCGDHUHQRIJUTVAVB $.
  $}

  ${
    hypcgr.p $e |- P = ( Base ` G ) $.
    hypcgr.m $e |- .- = ( dist ` G ) $.
    hypcgr.i $e |- I = ( Itv ` G ) $.
    hypcgr.g $e |- ( ph -> G e. TarskiG ) $.
    hypcgr.h $e |- ( ph -> G TarskiGDim>= 2 ) $.
    hypcgr.a $e |- ( ph -> A e. P ) $.
    hypcgr.b $e |- ( ph -> B e. P ) $.
    hypcgr.c $e |- ( ph -> C e. P ) $.
    hypcgr.d $e |- ( ph -> D e. P ) $.
    hypcgr.e $e |- ( ph -> E e. P ) $.
    hypcgr.f $e |- ( ph -> F e. P ) $.
    hypcgr.1 $e |- ( ph -> <" A B C "> e. ( raG ` G ) ) $.
    hypcgr.2 $e |- ( ph -> <" D E F "> e. ( raG ` G ) ) $.
    hypcgr.3 $e |- ( ph -> ( A .- B ) = ( D .- E ) ) $.
    hypcgr.4 $e |- ( ph -> ( B .- C ) = ( E .- F ) ) $.
    ${
      hypcgrlem2.b $e |- ( ph -> B = E ) $.
      ${
        hypcgrlem1.s $e |- S
          = ( ( lInvG ` G ) ` ( ( A ( midG ` G ) D ) ( LineG ` G ) B ) ) $.
        hypcgrlem1.a $e |- ( ph -> C = F ) $.
        $( Lemma for ~ hypcgr , case where triangles share a cathetus.
           (Contributed by Thierry Arnoux, 15-Dec-2019.) $)
        hypcgrlem1 $p |- ( ph -> ( A .- C ) = ( D .- F ) ) $=
          ( co wceq cmid cfv cstrkg wcel adantr cmir cs3 crag clng ragcom israg
          wa mpbid eqcomd ismidb biimpar oveq12d eqtr4d tgcgrcomlr wne ad2antrr
          eqid simpr cstrkgld wbr midcl simplr tgelrnln ccgrg midbtwn btwncolg3
          mircl eqidd s3eqd eqeltrd lncgr mpbird tglinerflx1 tglinerflx2 lmimid
          c2 oveq2d cperpg wo midcom necomd tgbtwncom btwnlng1 midcgr axtgcgrid
          elind necon3d imp oveq1d eqtrd ragperp islmib mpbir2and lmiiso 3eqtrd
          ex orcd pm2.61dane ) ABDLUKZEILUKZULZBEJUMUNZUKZCAXTCULZVDZDBIEFJKLMN
          OAJUOUPZYAPUQADFUPZYATUQABFUPZYARUQAIFUPYAUCUQAEFUPZYAUAUQYBDBLUKZDBC
          JURUNZUNZUNZLUKZIELUKAYGYKULZYAADCBUSJUTUNZUPYLABCDFYHJKJVAUNZLMNOYNV
          NZYHVNZPRSTUDVBADCBFYHJKYNLMNOYOYPPTSRVCVEUQYBIDEYJLAIDULYAADIUJVFUQA
          EYJULYAABEFYHJKCLMNOPQRUAYPSVGVHVIVJVKAXTCVLZVDZXRBEYRBEULZVDBEDILYRY
          SVOADIULYQYSUJVMVIYRBEVLZVDZXPBDGUNZLUKZXQUUAXPBDYIUNZLUKZUUCUUABCDUS
          YMUPZXPUUEULAUUFYQYTUDVMUUABCDFYHJKYNLMNOYOYPAYCYQYTPVMZAYEYQYTRVMZAC
          FUPYQYTSVMZAYDYQYTTVMZVCVEZUUAUUBUUDBLUUAXTCDXTCYNUKZFYIJKYNGLMNOUUGA
          JWMVPVQZYQYTQVMZUIYOUUAFJKYNXTCMOYOUUGUUABEFJKLMNOUUGUUNUUHAYFYQYTUAV
          MZVRZUUIAYQYTVSZVTZUUPYIVNZUUAXTCDUSYMUPXTDLUKXTUUDLUKULUUADUUDFJWAUN
          ZJKYNLBEXTMYOOUUGUUHUUOUUPUUTVNUUJUUACFYHJKYNYILDMNOYOYPUUGUUIUUSUUJW
          DNYRYTVOZUUAFJKYNBXTEMYOOUUGUUHUUPUUOUUABEFJKLMNOUUGUUNUUHUUOWBZWCUUK
          UUAECDUSZYMUPEDLUKZEUUDLUKULUUAUVCEHIUSZYMAUVCUVEULYQYTAECDIEHAEWEUHU
          JWFVMAUVEYMUPYQYTUEVMWGUUAECDFYHJKYNLMNOYOYPUUGUUOUUIUUJVCVEWHUUAXTCD
          FYHJKYNLMNOYOYPUUGUUPUUIUUJVCWIUUAFXTCJKYNMOYOUUGUUPUUIUUQWJZUUAFXTCJ
          KYNMOYOUUGUUPUUIUUQWKZUUJUUQWLWNVJUUAUUCEGUNZUUBLUKUVDXQUUABUVHUUBLUU
          ABUVHULEBXSUKZUULUPUULEBYNUKZJWOUNVQZEBULZWPUUAUVIXTUULUUAEBFJKLMNOUU
          GUUNUUOUUHWQUVFWGUUAUVKUVLUUAUULUVJFCJKYNLBXTMNOYOUUGUURUUAFJKYNEBMOY
          OUUGUUOUUHUUABEUVAWRZVTUUAUULUVJXTUVFUUAFJKYNEBXTMOYOUUGUUOUUHUUPUVMU
          UABXTEFJKLMNOUUGUUHUUPUUOUVBWSWTXCUVGUUAFEBJKYNMOYOUUGUUOUUHUVMWKUUAX
          TCUUQWRYRYTBXTVLYRBXTBEYRBXTULZYSYRUVNVDZFJKLBEBMNOAYCYQUVNPVMZAYEYQU
          VNRVMZAYFYQUVNUAVMZUVQUVOBBLUKBELUKUVOBEBFJKLMNOUVPAUUMYQUVNQVMUVQUVR
          UVOBXTYRUVNVOVFXAVFXBXMXDXEUUACXTBUSYMUPCBLUKZCBXTYHUNUNZLUKZULUUAUVS
          CELUKZUWAAUVSUWBULYQYTAUVSHELUKUWBABCEHFJKLMNOPRSUAUBUFVKACHELUHXFVJV
          MUUAEUVTCLUUAEUVTULXTXTULUUAXTWEUUABEFYHJKXTLMNOUUGUUNUUHUUOYPUUPVGWI
          WNXGUUACXTBFYHJKYNLMNOYOYPUUGUUIUUPUUHVCWIXHXNUUAEBUULFJKYNGLMNOUUGUU
          NUIYOUURUUOUUHXIXJXFUUAEDUULFJKYNGLMNOUUGUUNUIYOUURUUOUUJXKAUVDXQULYQ
          YTADIELUJWNVMXLXGXOXO $.
      $}

      hypcgrlem2.s $e |- S
        = ( ( lInvG ` G ) ` ( ( C ( midG ` G ) F ) ( LineG ` G ) B ) ) $.
      $( Lemma for ~ hypcgr , case where triangles share one vertex ` B ` .
         (Contributed by Thierry Arnoux, 16-Dec-2019.) $)
      hypcgrlem2 $p |- ( ph -> ( A .- C ) = ( D .- F ) ) $=
        ( co wceq cmid cfv wa cmir clng clmi cstrkg wcel adantr c2 cstrkgld wbr
        eqid mircl eqidd mirinv mpbird eqcomd midcom simpr eqtr3d ismidb mirrag
        cs3 crag s3eqd eqeltrd miriso oveq2d 3eqtr2d oveq1d hypcgrlem1 ad2antrr
        3eqtrd wne midcl simplr tgelrnln lmicl lmimot motrag lmiiso tglinerflx2
        eqtr4d lmiinv fveq2d wo tglinerflx1 eqeltrrd midbtwn tgbtwncom btwnlng1
        cperpg necomd elind midcgr axtgcgrid ex necon3d imp oveq12d eqtrd israg
        ragperp orcd islmib mpbir2and pm2.61dane ) ABDLUJZEILUJZUKZDIJULUMZUJZC
        AYDCUKZUNZXTECJUOUMZUMZUMZDLUJYIIYHUMZLUJYAYFBCDYIFBYIYCUJCJUPUMZUJJUQU
        MZUMZHDJKLMNOAJURUSZYEPUTZAJVAVBVCZYEQUTZABFUSZYERUTACFUSZYESUTZADFUSZY
        ETUTZYFCFYGJKYKYHLEMNOYKVDZYGVDZYOYTYHVDZAEFUSZYEUAUTZVEAHFUSZYEUBUTZUU
        BABCDVOJVPUMZUSZYEUDUTYFYIHDVOYIHYHUMZYJVOUUJYFYIHDYJYIUULYFYIVFYFUULHY
        FUULHUKCHUKZAUUMYEUHUTZYFCHFYGJKYKYHLMNOUUCUUDYOYTUUEUUIVGVHZVIYFDYJUKI
        DYCUJZCUKYFYDUUPCYFDIFJKLMNOYOYQUUBAIFUSZYEUCUTZVJAYEVKVLYFIDFYGJKCLMNO
        YOYQUURUUBUUDYTVMVHZVQYFEHICFYGJKYKYHLMNOUUCUUDYOUUGUUIUURAEHIVOUUJUSZY
        EUEUTUUEYTVNVRYFBCLUJZEHLUJZYIUULLUJYIHLUJAUVAUVBUKZYEUFUTYFCFYGJKYKYHL
        EHMNOUUCUUDYOYTUUEUUGUUIVSYFUULHYILUUOVTWAYFCHDLUUNWBUUNYMVDYFDVFWCYFDY
        JYILUUSVTYFCFYGJKYKYHLEIMNOUUCUUDYOYTUUEUUGUURVSWEAYDCWFZUNZYBDIUVEDIUK
        ZUNBCDEFBEYCUJCYKUJYLUMZHIJKLMNOAYNUVDUVFPWDAYPUVDUVFQWDAYRUVDUVFRWDAYS
        UVDUVFSWDAUUAUVDUVFTWDAUUFUVDUVFUAWDAUUHUVDUVFUBWDAUUQUVDUVFUCWDAUUKUVD
        UVFUDWDAUUTUVDUVFUEWDAUVCUVDUVFUFWDACDLUJZHILUJZUKZUVDUVFUGWDAUUMUVDUVF
        UHWDUVGVDUVEUVFVKWCUVEDIWFZUNZXTEGUMZIGUMZLUJYAUVLBCDUVMFBUVMYCUJCYKUJY
        LUMZHGUMZUVNJKLMNOAYNUVDUVKPWDZAYPUVDUVKQWDZAYRUVDUVKRWDAYSUVDUVKSWDZAU
        UAUVDUVKTWDZUVLEYDCYKUJZFJKYKGLMNOUVQUVRUIUUCUVLFJKYKYDCMOUUCUVQUVLDIFJ
        KLMNOUVQUVRUVTAUUQUVDUVKUCWDZWGZUVSAUVDUVKWHZWIZAUUFUVDUVKUAWDZWJUVLHUW
        AFJKYKGLMNOUVQUVRUIUUCUWEAUUHUVDUVKUBWDZWJUVLIUWAFJKYKGLMNOUVQUVRUIUUCU
        WEUWBWJAUUKUVDUVKUDWDUVLEHIFYGGJKYKLMNOUUCUUDUVQUWFUWGUWBUVLUWAFJKYKGLM
        NOUVQUVRUIUUCUWEWKAUUTUVDUVKUEWDWLUVLUVAUVBUVMUVPLUJAUVCUVDUVKUFWDUVLEH
        UWAFJKYKGLMNOUVQUVRUIUUCUWEUWFUWGWMWOUVLUVHUVIUVPUVNLUJAUVJUVDUVKUGWDZU
        VLHIUWAFJKYKGLMNOUVQUVRUIUUCUWEUWGUWBWMWOUVLCGUMZCUVPUVLUWICUKCUWAUSUVL
        FYDCJKYKMOUUCUVQUWCUVSUWDWNZUVLCUWAFJKYKGLMNOUVQUVRUIUUCUWEUVSWPVHUVLCH
        GAUUMUVDUVKUHWDZWQVLUVOVDUVLDUVNUKUUPUWAUSUWAIDYKUJZJXDUMVCZIDUKZWRUVLY
        DUUPUWAUVLDIFJKLMNOUVQUVRUVTUWBVJUVLFYDCJKYKMOUUCUVQUWCUVSUWDWSZWTUVLUW
        MUWNUVLUWAUWLFCJKYKLDYDMNOUUCUVQUWEUVLFJKYKIDMOUUCUVQUWBUVTUVLDIUVEUVKV
        KXEZWIUVLUWAUWLYDUWOUVLFJKYKIDYDMOUUCUVQUWBUVTUWCUWPUVLDYDIFJKLMNOUVQUV
        TUWCUWBUVLDIFJKLMNOUVQUVRUVTUWBXAXBXCXFUWJUVLFIDJKYKMOUUCUVQUWBUVTUWPWN
        UVLYDCUWDXEUVEUVKDYDWFUVEDYDDIUVEDYDUKZUVFUVEUWQUNZFJKLDIDMNOAYNUVDUWQP
        WDZAUUAUVDUWQTWDZAUUQUVDUWQUCWDZUWTUWRDDLUJDILUJUWRDIDFJKLMNOUWSAYPUVDU
        WQQWDUWTUXAUWRDYDUVEUWQVKVIXGVIXHXIXJXKUVLCYDDVOUUJUSUVHCDYDYGUMUMZLUJZ
        UKUVLUVHUVIUXCUWHUVLHCIUXBLUVLCHUWKVIUVLIUXBUKYDYDUKUVLYDVFUVLDIFYGJKYD
        LMNOUVQUVRUVTUWBUUDUWCVMVHXLXMUVLCYDDFYGJKYKLMNOUUCUUDUVQUVSUWCUVTXNVHX
        OXPUVLIDUWAFJKYKGLMNOUVQUVRUIUUCUWEUWBUVTXQXRWCUVLEIUWAFJKYKGLMNOUVQUVR
        UIUUCUWEUWFUWBWMXMXSXS $.
    $}

    $( If the catheti of two right-angled triangles are congruent, so is their
       hypothenuse.  Theorem 10.12 of [Schwabhauser] p. 91.  (Contributed by
       Thierry Arnoux, 16-Dec-2019.) $)
    hypcgr $p |- ( ph -> ( A .- C ) = ( D .- F ) ) $=
      ( co cmid cfv cmir clng clmi eqid midcl mircl mirrag miriso eqtr4d midcom
      wceq ismidb mpbird hypcgrlem2 eqtrd ) ABDKUGECGIUHUIZUGZIUJUIZUIZUIZHVHUI
      ZKUGEHKUGABCDVIFDVJVEUGCIUKUIZUGIULUIUIZGVHUIZVJIJKLMNOPQRSAVFFVGIJVKVHKE
      LMNVKUMZVGUMZOACGFIJKLMNOPRUAUNZVHUMZTUOAVFFVGIJVKVHKGLMNVNVOOVPVQUAUOAVF
      FVGIJVKVHKHLMNVNVOOVPVQUBUOUCAEGHVFFVGIJVKVHKLMNVNVOOTUAUBUDVQVPUPABCKUGE
      GKUGVIVMKUGUEAVFFVGIJVKVHKEGLMNVNVOOVPVQTUAUQURACDKUGGHKUGVMVJKUGUFAVFFVG
      IJVKVHKGHLMNVNVOOVPVQUAUBUQURACVMUTGCVEUGVFUTAGCFIJKLMNOPUARUSAGCFVGIJVFK
      LMNOPUARVOVPVAVBVLUMVCAVFFVGIJVKVHKEHLMNVNVOOVPVQTUBUQVD $.
  $}

  ${
    lmiopp.p $e |- P = ( Base ` G ) $.
    lmiopp.m $e |- .- = ( dist ` G ) $.
    lmiopp.i $e |- I = ( Itv ` G ) $.
    lmiopp.l $e |- L = ( LineG ` G ) $.
    lmiopp.g $e |- ( ph -> G e. TarskiG ) $.
    lmiopp.h $e |- ( ph -> G TarskiGDim>= 2 ) $.
    lmiopp.d $e |- ( ph -> D e. ran L ) $.
    lmiopp.o $e |- O = { <. a , b >. | ( ( a e. ( P \ D ) /\ b e. ( P \ D ) )
      /\ E. t e. D t e. ( a I b ) ) } $.
    ${
      $d .- a b t $.  $d A a b t $.  $d D a b t $.  $d G a b t $.
      $d I a b t $.  $d M a b t $.  $d O t $.  $d P a b t $.  $d a b ph t $.
      lmiopp.n $e |- M = ( ( lInvG ` G ) ` D ) $.
      lmiopp.a $e |- ( ph -> A e. P ) $.
      lmiopp.1 $e |- ( ph -> -. A e. D ) $.
      $( Line mirroring produces points on the opposite side of the mirroring
         line.  Theorem 10.14 of [Schwabhauser] p. 92.  (Contributed by Thierry
         Arnoux, 2-Aug-2020.) $)
      lmiopp $p |- ( ph -> A O ( M ` A ) ) $=
        ( cfv wbr wcel wn wa cv co wrex lmilmi eqeq1d lmicl lmiinv wb eqcom a1i
        wceq 3bitr3d bitrd mtbird jca cmid cperpg wo eqidd islmib mpbid midbtwn
        simpld eleq1 rspcev syl2anc islnopp mpbird ) ACCIUEZKUFCDUGZUHZVRDUGZUH
        ZUIZBUJZCVRGUKZUGZBDULZUIAWCWGAVTWBUDAWAVSUDAWAVRCUTZVSAVRIUEZVRUTCVRUT
        ZWAWHAWICVRACDEFGHIJNOPRSUBQTUCUMUNAVRDEFGHIJNOPRSUBQTACDEFGHIJNOPRSUBQ
        TUCUOZUPWJWHUQACVRURUSVAACDEFGHIJNOPRSUBQTUCUPVBVCVDACVRFVEUEUKZDUGZWLW
        EUGZWGAWMDCVRHUKFVFUEUFWJVGZAVRVRUTWMWOUIAVRVHACVRDEFGHIJNOPRSUBQTUCWKV
        IVJVLACVREFGJNOPRSUCWKVKWFWNBWLDWDWLWEVMVNVOVDABCVRDEFGJKLMNOPUAUCWKVPV
        Q $.
    $}

    ${
      $d .- a b p t $.  $d A a b c d p t $.  $d D a b c d p t $.
      $d G a b c d p t $.  $d I a b c p t $.  $d L a b c d p t $.
      $d O a b p t $.  $d P a b c d p t $.  $d Q a b c d p t $.
      $d ph a b c d p t $.
      lnperpex.a $e |- ( ph -> A e. D ) $.
      lnperpex.q $e |- ( ph -> Q e. P ) $.
      lnperpex.1 $e |- ( ph -> -. Q e. D ) $.
      $( Existence of a perpendicular to a line ` L ` at a given point ` A ` .
         Theorem 10.15 of [Schwabhauser] p. 92.  (Contributed by Thierry
         Arnoux, 2-Aug-2020.) $)
      lnperpex $p |- ( ph -> E. p e. P ( D ( perpG ` G ) ( p L A )
        /\ p ( ( hpG ` G ) ` D ) Q ) ) $=
        ( vd vc cv wne co cperpg cfv wbr chpg wa wrex wcel cstrkg adantr simprl
        ad2antrr tglnpt ad3antrrr simprrl perpln1 tglnne tgelrnln crn tglinecom
        necomd eqbrtrd perpcom simpr simplr simprrr oppcom lnopp2hpgb mpbid jca
        chlg eqid oppne2 cstrkgld oppperpex reximddv hpgerlem r19.29a tglnpt2
        c2 ) ACUFUHZUIZDLUHZCIUJZGUKULZUMZWLFDGUNULULUMZUOZLEUPZUFDAWJDUQZUOWKU
        OZFUGUHZKUMZWRUGEWTXAEUQZUOZXBUOZCWLIUJZDWNUMZXAWLKUMZUOZWQLEXEWLEUQZXI
        UOZUOZWOWPXLWMDEGHIJOPQRXEGURUQZXKWTXMXCXBAXMWSWKSVAVAZUSZXLEGHIWLCOQRX
        OXEXJXIUTZWTCEUQZXCXBXKAXQWSWKADEGHICORQSUAUCVBVAVCZXLCWLXLEGHICWLOQRXO
        XRXPXLXFDGIRXOXEXJXGXHVDZVEVFVJZVGXEDIVHUQZXKWTYAXCXBAYAWSWKUAVAVAZUSZX
        LWMXFDWNXLEWLCGHIOQRXOXPXRXTVIXSVKVLXLXBWPXEXBXKXDXBVMZUSXLBWLFXADEGHIK
        MNOQRUBXOYCXPXEFEUQZXKWTYEXCXBAYEWSWKUDVAVAZUSXEXCXKWTXCXBVNZUSZXLBXAWL
        DEGHIJKMNOPQUBRYCXOYHXPXEXJXGXHVOVPVQVRVSXEBCXADEGHGVTULZIJKLMNOPQUBRYB
        XNYIWAWTCDUQZXCXBAYJWSWKUCVAVAYGXEBFXADEGHIJKMNOPQUBRYBXNYFYGYDWBWTGWIW
        CUMZXCXBAYKWSWKTVAVAWDWEAXBUGEUPWSWKABFDEGHIKMNUGOQRSUAUDUBUEWFVAWGAUFD
        EGHICOQRSUAUCWHWG $.
    $}
  $}

  ${
    $d .- a b f j k l q t v w x y z $.  $d A a b f j k l q t v w x y z $.
    $d B a b f j k l q t v w x y z $.  $d C a b f j k l q t v w x y z $.
    $d D a b f j k l q t v w x y z $.  $d E a b f j k l q t v w x y z $.
    $d F a b f j k l q t v w x y z $.  $d G a b f j k l q t v w x y z $.
    $d I a b f j k l q t v w x y z $.  $d L a b f j k l q t v w x y z $.
    $d P a b f j k l q t v w x y z $.  $d ph a b f j k l q t v w x y z $.
    $d K a f j k l $.
    trgcopy.p $e |- P = ( Base ` G ) $.
    trgcopy.m $e |- .- = ( dist ` G ) $.
    trgcopy.i $e |- I = ( Itv ` G ) $.
    trgcopy.l $e |- L = ( LineG ` G ) $.
    trgcopy.k $e |- K = ( hlG ` G ) $.
    trgcopy.g $e |- ( ph -> G e. TarskiG ) $.
    trgcopy.a $e |- ( ph -> A e. P ) $.
    trgcopy.b $e |- ( ph -> B e. P ) $.
    trgcopy.c $e |- ( ph -> C e. P ) $.
    trgcopy.d $e |- ( ph -> D e. P ) $.
    trgcopy.e $e |- ( ph -> E e. P ) $.
    trgcopy.f $e |- ( ph -> F e. P ) $.
    trgcopy.1 $e |- ( ph -> -. ( A e. ( B L C ) \/ B = C ) ) $.
    trgcopy.2 $e |- ( ph -> -. ( D e. ( E L F ) \/ E = F ) ) $.
    trgcopy.3 $e |- ( ph -> ( A .- B ) = ( D .- E ) ) $.
    $( Triangle construction: a copy of a given triangle can always be
       constructed in such a way that one side is lying on a half-line, and the
       third vertex is on a given half-plane: existence part.  First part of
       Theorem 10.16 of [Schwabhauser] p. 92.  (Contributed by Thierry Arnoux,
       4-Aug-2020.) $)
    trgcopy $p |- ( ph -> E. f e. P ( <" A B C "> ( cgrG ` G ) <" D E f ">
      /\ f ( ( hpG ` G ) ` ( D L E ) ) F ) ) $=
      ( vx vy vq vj vw vv vz vk vl cv co cperpg cfv wbr ccgrg chpg wa wrex wcel
      cs3 wceq cstrkg ad2antrr adantr ad3antrrr ad6antr simprl ad5antr cstrkgld
      eqid c2 ncoltgdim2 ad4antr crn ncolne1 tgelrnln simplr tglnpt wne ad7antr
      tglinecom eleqtrd simp-6r perpln1 perpcom wn ncolrot2 ioran simpld nelne2
      wo sylib syl2anc necomd 3brtr3d perprag tgcgrneq neneqd orcd colcom simpr
      colrot2 lnxfr orcomd ord mpd lncom simprrr eqcomd simpllr perpln2 3brtr4d
      tglnne simprrl hlln colperp cgr3simp2 hypcgr cmir eqbrtrd ragcom eqbrtrrd
      tgcgrcomlr cgr3simp3 trgcgr eleq12d anbi12d ad8antr colrot1 jca r19.29a
      cdif copab simpl eqidd simpll cbvrexdva cbvopabv trgcgrcom pm2.65da colhp
      oveq12d mpbird simplrr hpgtr hlcgrex reximddv lnperpex lnext footex ) ADU
[encoded data, 4560 characters]
      TAUJUVBDFJKMNOPQRTUYLUCVULUUSYT $.

    ${
      $d O a b t $.  $d X a b t $.  $d Y a b t $.
      trgcopyeulem.o $e |- O = { <. a , b >. | ( ( a e. ( P \ ( D L E ) )
        /\ b e. ( P \ ( D L E ) ) ) /\ E. t e. ( D L E ) t e. ( a I b ) ) } $.
      trgcopyeulem.x $e |- ( ph -> X e. P ) $.
      trgcopyeulem.y $e |- ( ph -> Y e. P ) $.
      trgcopyeulem.1 $e |- ( ph -> <" A B C "> ( cgrG ` G ) <" D E X "> ) $.
      trgcopyeulem.2 $e |- ( ph -> <" A B C "> ( cgrG ` G ) <" D E Y "> ) $.
      trgcopyeulem.3 $e |- ( ph -> X ( ( hpG ` G ) ` ( D L E ) ) F ) $.
      trgcopyeulem.4 $e |- ( ph -> Y ( ( hpG ` G ) ` ( D L E ) ) F ) $.
      $( Lemma for ~ trgcopyeu .  (Contributed by Thierry Arnoux,
         8-Aug-2020.) $)
      trgcopyeulem $p |- ( ph -> X = Y ) $=
        ( co clmi cfv ncoltgdim2 eqid ncolne1 tgelrnln wceq cmid wcel cperpg wo
        wbr wa cv cmir cstrkg ad2antrr crn simplr tglnpt lmicl ccgrg wne necomd
        lncom orcd colrot1 tgcgrcomlr eqtr3d lmiiso tglinerflx1 lmicinv 3eqtr2d
        cgr3simp3 oveq1d cgr3simp2 tglinerflx2 lncgr simpr eqcomd mircom ismidb
        ismir c2 cstrkgld mpbid eqeltrd wn wrex chpg hpgcom hpgtr hpgne1 lmiopp
        lnopp2hpgb mpbird islnopp simprd adantr oppne3 btwnlng1 elind ad3antrrr
        r19.29a cin simplld nelne2 syl2anc cs3 crag oveq2d eqtrd ragperp neneor
        israg syl mpjaodan jca islmib lmieq ) APQFHMVBZGJKMUUCJVCVDVDZNTUAUBUEA
        GJKMDECTUCUBUEUGUHUFULVEZUUDVFZUCAGJKMFHTUBUCUEUIUJAGJKMFHITUBUCUEUIUJU
        KUMVGZVHZUPUQAQUUDVDZPUUDVDZAUUIUUJVIPUUIJVJVDVBZUUCVKZUUCPUUIMVBZJVLVD
        VNZPUUIVIZVMZVOAUULUUPABVPZPUUIKVBVKZUULBUUCAUUQUUCVKZVOZUURVOZUUKUUQUU
        CUVAUUIPUUQJVQVDZVDZVDZVIUUKUUQVIUVAUVDUUIUVAUUQUUIPGUVBJKMUVCNTUAUBUCU
        VBVFZAJVRVKZUUSUURUEVSZUVAUUCGJKMUUQTUCUBUVGAUUCMVTZVKZUUSUURUUHVSZAUUS
        UURWAZWBZUVCVFZAUUIGVKUUSUURAQUUCGJKMUUDNTUAUBUEUUEUUFUCUUHUQWCZVSZUVAP
        UUIUVCVDUVAUUQUUIPGUVBJKMUVCNTUAUBUCUVEUVGUVLUVMUVOAPGVKZUUSUURUPVSZUVA
        PUUIGJWDVDZJKMNFHUUQTUCUBUVGAFGVKZUUSUURUIVSZAHGVKZUUSUURUJVSZUVLUVRVFZ
        UVQUVOUAAFHWEUUSUURUUGVSZUVAGJKMHFUUQTUCUBUVGUWBUVTUVLUVAUUQHFMVBVKHFVI
        UVAGJKMHFUUQTUBUCUVGUWBUVTUVLUVAFHUWDWFZUVKWGWHWIAFPNVBZFUUINVBZVIUUSUU
        RAUWFFQNVBZFUUDVDZUUINVBUWGACENVBUWFUWHAECPFGJKNTUAUBUEUHUFUPUIACDEFGUV
        RHPJKNTUAUBUWCUEUFUGUHUIUJUPURWPWJAECQFGJKNTUAUBUEUHUFUQUIACDEFGUVRHQJK
        NTUAUBUWCUEUFUGUHUIUJUQUSWPWJWKAFQUUCGJKMUUDNTUAUBUEUUEUUFUCUUHUIUQWLAU
        WIFUUINAFUUCGJKMUUDNTUAUBUEUUEUUFUCUUHUIAGFHJKMTUBUCUEUIUJUUGWMZWNWQWOV
        SZAHPNVBZHUUINVBZVIUUSUURAUWLHQNVBZHUUDVDZUUINVBUWMADENVBUWLUWNACDEFGUV
        RHPJKNTUAUBUWCUEUFUGUHUIUJUPURWRACDEFGUVRHQJKNTUAUBUWCUEUFUGUHUIUJUQUSW
        RWKAHQUUCGJKMUUDNTUAUBUEUUEUUFUCUUHUJUQWLAUWOHUUINAHUUCGJKMUUDNTUAUBUEU
        UEUUFUCUUHUJAGFHJKMTUBUCUEUIUJUUGWSZWNWQWOVSZWTUUTUURXAZXEXBXCXBZUVAPUU
        IGUVBJKUUQNTUAUBUVGAJXFXGVNUUSUURUUEVSUVQUVOUVEUVLXDXHUVKXIAPUUCVKXJZUU
        IUUCVKXJZVOZUURBUUCXKZAPUUIOVNZUXBUXCVOAUXDQPUUCJXLVDVDVNABQIPUUCGJKMOR
        STUBUCUEUUHUQUOUKVAUPABPIUUCGJKMORSTUBUCUEUUHUPUOUKUTXMXNABQPUUIUUCGJKM
        ORSTUBUCUOUEUUHUQUPUVNABQUUCGJKMUUDNORSTUAUBUCUEUUEUUHUOUUFUQABQIUUCGJK
        MORSTUBUCUOUEUUHUQUKVAXOXPXQXRZABPUUIUUCGJKNORSTUAUBUOUPUVNXSXHZXTZYFAU
        URUUPBUUCUVAUUNUUOUVAHUUQWEZUUNFUUQWEZUVAUXHVOZUUCUUMGHJKMNPUUQTUAUBUCU
        VAUVFUXHUVGYAZUVAUVIUXHUVJYAUVAUUMUVHVKZUXHAUXLUUSUURAGJKMPUUITUBUCUEUP
        UVNABPUUIUUCGJKMNORSTUAUBUOUCUUHUEUPUVNUXEYBZVHVSZYAUVAUUQUUCUUMYGVKZUX
        HUVAUUCUUMUUQUVKUVAGJKMPUUIUUQTUBUCUVGUVQUVOUVLAPUUIWEUUSUURUXMVSUWRYCY
        DZYAAHUUCVKUUSUURUXHUWPYEAPUUMVKZUUSUURUXHAGPUUIJKMTUBUCUEUPUVNUXMWMZYE
        UVAUXHXAUVAPUUQWEZUXHUVAUUQPUVAUUSUWTUUQPWEUVKAUWTUUSUURAUWTUXAUXCUXFYH
        VSUUQPUUCYIYJWFZYAUXJHUUQPYKJYLVDZVKUWLHUVDNVBZVIZUVAUYCUXHUVAUWLUWMUYB
        UWQUVAUUIUVDHNUWSYMYNYAUXJHUUQPGUVBJKMNTUAUBUCUVEUXKUVAUWAUXHUWBYAUVAUU
        QGVKZUXHUVLYAUVAUVPUXHUVQYAYQXRYOUVAUXIVOZUUCUUMGFJKMNPUUQTUAUBUCUVAUVF
        UXIUVGYAZUVAUVIUXIUVJYAUVAUXLUXIUXNYAUVAUXOUXIUXPYAAFUUCVKUUSUURUXIUWJY
        EAUXQUUSUURUXIUXRYEUVAUXIXAUVAUXSUXIUXTYAUYEFUUQPYKUYAVKUWFFUVDNVBZVIZU
        VAUYHUXIUVAUWFUWGUYGUWKUVAUUIUVDFNUWSYMYNYAUYEFUUQPGUVBJKMNTUAUBUCUVEUY
        FUVAUVSUXIUVTYAUVAUYDUXIUVLYAUVAUVPUXIUVQYAYQXRYOUVAHFWEUXHUXIVMUWEHFUU
        QYPYRYSWHUXGYFYTAPUUIUUCGJKMUUDNTUAUBUEUUEUUFUCUUHUPUVNUUAXRXBUUB $.
    $}

    $( Triangle construction: a copy of a given triangle can always be
       constructed in such a way that one side is lying on a half-line, and the
       third vertex is on a given half-plane: uniqueness part.  Second part of
       Theorem 10.16 of [Schwabhauser] p. 92.  (Contributed by Thierry Arnoux,
       8-Aug-2020.) $)
    trgcopyeu $p |- ( ph -> E! f e. P ( <" A B C "> ( cgrG ` G ) <" D E f ">
      /\ f ( ( hpG ` G ) ` ( D L E ) ) F ) ) $=
      ( vk vt vx vy vz va vb cs3 cv ccgrg cfv co chpg wa wrex wceq wi wral wreu
      wbr trgcopy wcel cdif copab cstrkg ad5antr wo simpl eleq1d anbi12d simpll
      wn simpr simplr oveq12d eleq12d cbvrexdva cbvopabv simp-5r simp-4r simpld
      simpllr simprd trgcopyeulem anasss ex ralrimivva eqidd s3eqd breq2d breq1
      id reu4 sylanbrc ) ABCDUQZEHGURZUQZJUSUTZVIZXEIEHMVAZJVBUTUTZVIZVCZGFVDXL
      XDEHUJURZUQZXGVIZXMIXJVIZVCZVCZXEXMVEZVFZUJFVGGFVGXLGFVHABCDEFGHIJKLMNOPQ
      RSTUAUBUCUDUEUFUGUHUIVJAXTGUJFFAXEFVKZXMFVKZXTAYAVCZYBVCZXRXSYDXLXQXSYDXL
      VCZXOXPXSYEXOVCZXPVCZUKBCDEFHIJKLMNULURZFXIVLZVKZUMURZYIVKZVCZUNURZYHYKKV
      AZVKZUNXIVDZVCZULUMVMXEXMUOUPOPQRSAJVNVKYAYBXLXOXPTVOABFVKYAYBXLXOXPUAVOA
      CFVKYAYBXLXOXPUBVOADFVKYAYBXLXOXPUCVOAEFVKYAYBXLXOXPUDVOAHFVKYAYBXLXOXPUE
      VOAIFVKYAYBXLXOXPUFVOABCDMVAVKCDVEVPWAYAYBXLXOXPUGVOAEHIMVAVKHIVEVPWAYAYB
      XLXOXPUHVOABCNVAEHNVAVEYAYBXLXOXPUIVOYRUOURZYIVKZUPURZYIVKZVCZUKURZYSUUAK
      VAZVKZUKXIVDZVCULUMUOUPYHYSVEZYKUUAVEZVCZYMUUCYQUUGUUJYJYTYLUUBUUJYHYSYIU
      UHUUIVQVRUUJYKUUAYIUUHUUIWBVRVSUUJYPUUFUNUKXIUUJYNUUDVEZVCZYNUUDYOUUEUUJU
      UKWBUULYHYSYKUUAKUUHUUIUUKVTUUHUUIUUKWCWDWEWFVSWGAYAYBXLXOXPWHYCYBXLXOXPW
      IYGXHXKYDXLXOXPWKZWJYEXOXPWCYGXHXKUUMWLYFXPWBWMWNWNWOWNWPXLXQGUJFXSXHXOXK
      XPXSXFXNXDXGXSEHXEXMEHXSEWQXSHWQXSXAWRWSXEXMIXJWTVSXBXC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Congruence of angles
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c cgrA $.

  $( Declare the constant for the congruence between angles relation. $)
  ccgra $a class cgrA $.

  ${
    $d a b g k p x y $.
    $( Define the congruence relation bewteen angles.  As for triangles we use
       "words of points".  See ~ iscgra for a more human readable version.
       (Contributed by Thierry Arnoux, 30-Jul-2020.) $)
    df-cgra $a |- cgrA = ( g e. _V |->
      { <. a , b >. | [. ( Base ` g ) / p ]. [. ( hlG ` g ) / k ].
      ( ( a e. ( p ^m ( 0 ..^ 3 ) ) /\ b e. ( p ^m ( 0 ..^ 3 ) ) )
       /\ E. x e. p E. y e. p ( a ( cgrG ` g ) <" x ( b ` 1 ) y "> /\
      x ( k ` ( b ` 1 ) ) ( b ` 0 ) /\ y ( k ` ( b ` 1 ) ) ( b ` 2 ) ) ) } ) $.
  $}

  ${
    $d A a b x y $.  $d B a b x y $.  $d C a b x y $.  $d D a b x y $.
    $d E a b x y $.  $d F a b x y $.  $d K a b g k p x y $.  $d ph x y $.
    $d G a b g k p x y $.  $d I a b g k p x y $.  $d P a b g k p x y $.
    iscgra.p $e |- P = ( Base ` G ) $.
    iscgra.i $e |- I = ( Itv ` G ) $.
    iscgra.k $e |- K = ( hlG ` G ) $.
    iscgra.g $e |- ( ph -> G e. TarskiG ) $.
    iscgra.a $e |- ( ph -> A e. P ) $.
    iscgra.b $e |- ( ph -> B e. P ) $.
    iscgra.c $e |- ( ph -> C e. P ) $.
    iscgra.d $e |- ( ph -> D e. P ) $.
    iscgra.e $e |- ( ph -> E e. P ) $.
    iscgra.f $e |- ( ph -> F e. P ) $.
    $( Property for two angles ABC and DEF to be congruent.  This is a modified
       version of the definition 11.3 of [Schwabhauser] p. 95. where the number
       of constructed points has been reduced to two.  We chose this version
       rather than the textbook version because it is shorter and therefore
       simpler to work with.  Theorem ~ dfcgra2 shows that those definitions
       are indeed equivalent.  (Contributed by Thierry Arnoux, 31-Jul-2020.) $)
    iscgra $p |- ( ph -> ( <" A B C "> ( cgrA ` G ) <" D E F ">
      <-> E. x e. P E. y e. P ( <" A B C "> ( cgrG ` G ) <" x E y ">
          /\ x ( K ` E ) D /\ y ( K ` E ) F ) ) ) $=
      ( va vb vg vp vk cs3 cv cc0 c3 cfzo co cmap wcel wa c1 cfv ccgrg wbr wrex
      c2 w3a copab ccgra wb wceq simpl eqidd simpr fveq1d s3eqd fveq2d breq123d
      breq12d 3anbi123d 2rexbidv brab2a a1i s3fv1 syl adantr breq2d s3fv0 s3fv2
      eqid 2rexbidva anbi2d bitrd cstrkg cvv elex chlg cbs eqcomd oveq1d eleq2d
      wsbc anbi12d fveq12d breqd 3anbi23d bicomd sbcie2s opabbidv fveq2 3anbi1d
      rexeqbidv rexbidv eqtrd df-cgra ovex xpex opabssxp ssexi fvmpt 3syl cword
      cxp chash s3cld s3len jca cn0 fvex eqeltri wrdmap mp2an biantrurd 3bitr4d
      3nn0 sylib ) ADEFUIZGIJUIZUDUJZHUKULUMUNZUOUNZUPZUEUJZYRUPZUQZYPBUJZURYTU
      SZCUJZUIZKUTUSZVAZUUCUKYTUSZUUDMUSZVAZUUEVCYTUSZUUJVAZVDZCHVBZBHVBZUQZUDU
      EVEZVAZYNYRUPZYOYRUPZUQZYNUUCIUUEUIZUUGVAZUUCGIMUSZVAZUUEJUVEVAZVDZCHVBBH
      VBZUQZYNYOKVFUSZVAUVIAUUSUVBYNUUCURYOUSZUUEUIZUUGVAZUUCUKYOUSZUVLMUSZVAZU
      UEVCYOUSZUVPVAZVDZCHVBBHVBZUQZUVJUUSUWBVGAUUPUWAUDUEYNYOYRYRUURYPYNVHZYTY
      OVHZUQZUUNUVTBCHHUWEUUHUVNUUKUVQUUMUVSUWEYPYNUUFUVMUUGUWCUWDVIUWEUUCUUDUU
      EUUEUUCUVLUWEUUCVJZUWEURYTYOUWCUWDVKZVLZUWEUUEVJZVMVPUWEUUCUUCUUIUVOUUJUV
      PUWFUWEUUDUVLMUWHVNZUWEUKYTYOUWGVLVOUWEUUEUUEUULUVRUUJUVPUWIUWJUWEVCYTYOU
      WGVLVOVQVRUURWGVSVTAUWAUVIUVBAUVTUVHBCHHAUUCHUPUUEHUPUQZUQZUVNUVDUVQUVFUV
      SUVGUWLUVMUVCYNUUGUWLUUCUVLUUEUUEUUCIUWLUUCVJZAUVLIVHZUWKAIHUPUWNUBGIJHWA
      WBWCZUWLUUEVJZVMWDUWLUUCUUCUVOGUVPUVEUWMUWLUVLIMUWOVNZAUVOGVHZUWKAGHUPUWR
      UAGIJHWEWBWCVOUWLUUEUUEUVRJUVPUVEUWPUWQAUVRJVHZUWKAJHUPUWSUCGIJHWFWBWCVOV
      QWHWIWJAUVKUURYNYOAKWKUPKWLUPUVKUURVHQKWKWMUFKYPUGUJZYQUOUNZUPZYTUXAUPZUQ
      ZYPUUFUFUJZUTUSZVAZUUCUUIUUDUHUJZUSZVAZUUEUULUXIVAZVDZCUWTVBZBUWTVBZUQZUH
      UXEWNUSWSUGUXEWOUSWSZUDUEVEZUURWLVFUXEKVHZUXQUUBUXGUUKUUMVDZCHVBZBHVBZUQZ
      UDUEVEUURUXRUXPUYBUDUEUYBUXOUFHMWOWNKUGUHNPUWTHVHZUXHMVHZUQZUUBUXDUYAUXNU
      YEYSUXBUUAUXCUYEYRUXAYPUYEHUWTYQUOUYEUWTHUYCUYDVIWPZWQZWRUYEYRUXAYTUYGWRW
      TUYEUXTUXMBHUWTUYFUYEUXSUXLCHUWTUYFUYEUXLUXSUYEUXJUUKUXKUUMUXGUYEUXIUUJUU
      CUUIUYEUUDUUDUXHMUYCUYDVKUYEUUDVJXAZXBUYEUXIUUJUUEUULUYHXBXCXDXIXIWTXEXFU
      XRUYBUUQUDUEUXRUYAUUPUUBUXRUXTUUOBHUXRUXSUUNCHUXRUXGUUHUUKUUMUXRUXFUUGYPU
      UFUXEKUTXGXBXHXJXJWIXFXKBCUFUHUGUDUEXLUURYRYRXTYRYRHYQUOXMZUYIXNUUPUDUEYR
      YRXOXPXQXRXBAUVBUVIAUUTUVAAYNHXSZUPZYNYAUSULVHZUQZUUTAUYKUYLADEFHRSTYBUYL
      ADEFYCVTYDHWLUPZULYEUPZUYMUUTVGHKWOUSWLNKWOYFYGZYLULHYNWLYHYIYMAYOUYJUPZY
      OYAUSULVHZUQZUVAAUYQUYRAGIJHUAUBUCYBUYRAGIJYCVTYDUYNUYOUYSUVAVGUYPYLULHYO
      WLYHYIYMYDYJYK $.

    ${
      $d K y $.
      iscgra1.m $e |- .- = ( dist ` G ) $.
      iscgra1.1 $e |- ( ph -> A =/= B ) $.
      iscgra1.2 $e |- ( ph -> ( A .- B ) = ( D .- E ) ) $.
      $( A special version of ~ iscgra where one distance is known to be equal.
         In this case, angle congruence can be written with only one
         quantifier.  (Contributed by Thierry Arnoux, 9-Aug-2020.) $)
      iscgra1 $p |- ( ph -> ( <" A B C "> ( cgrA ` G ) <" D E F ">
        <-> E. x e. P ( <" A B C "> ( cgrG ` G ) <" D E x ">
            /\ x ( K ` E ) F ) ) ) $=
        ( vy cs3 ccgra cfv wbr ccgrg w3a wrex wceq iscgra wcel ad3antrrr cstrkg
        cv wa simpllr simpr2 hlne2 co eqcomd tgcgrneq necomd hlid simplr simpr1
        eqid cgr3simp1 tgcgrcomlr hlcgreulem simpr3 simprrl id ad2antrl eqbrtrd
        jca32 wne simprrr impbida rexbidva r19.42v syl6bb wb eqidd s3eqd breq2d
        3jca anbi1d rexbidv ceqsrexv syl 3bitrd ) ACDEUHZFHIUHJUIUJUKWRUGUTZHBU
        TZUHZJULUJZUKZWSFHLUJZUKZWTIXDUKZUMZBGUNZUGGUNWSFUOZXCXFVAZBGUNZVAZUGGU
        NZWRFHWTUHZXBUKZXFVAZBGUNZAUGBCDEFGHIJKLNOPQRSTUAUBUCUPAXHXLUGGAWSGUQZV
        AZXHXIXJVAZBGUNXLXSXGXTBGXSWTGUQZVAZXGXTYBXGVAZXIXCXFYCHDCFGJKLMWSFNOPA
        HGUQZXRYAXGUBURZADGUQXRYAXGSURZACGUQXRYAXGRURZAJUSUQZXRYAXGQURZAFGUQZXR
        YAXGUAURZUDYCWSFHGJKLUSNOPAXRYAXGVBZYKYEYIYBXCXEXFVCZVDZYCCDYCFHCDGJKMN
        UDOYIYKYEYGYFYCCDMVEZFHMVEZAYOYPUOXRYAXGUFURVFZYNVGVHYLYKYMYCFHHGJKLNOP
        YKYEYEYIYNVIYCWSHCDGJKMNUDOYIYLYEYGYFYCYOWSHMVEYCCDEWSGXBHWTJKMNUDOXBVL
        YIYGYFAEGUQXRYAXGTURYLYEXSYAXGVJYBXCXEXFVKZVMVFVNYCFHCDGJKMNUDOYIYKYEYG
        YFYQVNVOYRYBXCXEXFVPWAYBXTVAZXCXEXFYBXIXCXFVQYSWSFFXDXIXIYBXJXIVRZVSYSF
        FHGJKLNOPAYJXRYAXTUAURZUUAAYDXRYAXTUBURAYHXRYAXTQURAFHWBXRYAXTACDFHGJKM
        NUDOQRSUAUBUFUEVGURVIVTYBXIXCXFWCWLWDWEXIXJBGWFWGWEAYJXMXQWHUAXKXQUGFGX
        IXJXPBGXIXCXOXFXIXAXNWRXBXIWSHWTWTFHYTXIHWIXIWTWIWJWKWMWNWOWPWQ $.
    $}

    ${
      $d K x y $.  $d X x y $.  $d Y y $.
      iscgrad.x $e |- ( ph -> X e. P ) $.
      iscgrad.y $e |- ( ph -> Y e. P ) $.
      iscgrad.1 $e |- ( ph -> <" A B C "> ( cgrG ` G ) <" X E Y "> ) $.
      iscgrad.2 $e |- ( ph -> X ( K ` E ) D ) $.
      iscgrad.3 $e |- ( ph -> Y ( K ` E ) F ) $.
      $( Sufficient conditions for angle congruence, deduction version.
         (Contributed by Thierry Arnoux, 1-Aug-2020.) $)
      iscgrad $p |- ( ph -> <" A B C "> ( cgrA ` G ) <" D E F "> ) $=
        ( vx vy cs3 ccgra cfv wbr cv ccgrg w3a wrex wcel 3jca wceq eqidd breq2d
        id s3eqd breq1 3anbi12d 3anbi13d rspc2ev syl3anc iscgra mpbird ) ABCDUK
        ZEGHUKIULUMUNVMUIUOZGUJUOZUKZIUPUMZUNZVNEGKUMZUNZVOHVSUNZUQZUJFURUIFURZ
        ALFUSMFUSVMLGMUKZVQUNZLEVSUNZMHVSUNZUQZWCUDUEAWEWFWGUFUGUHUTWBWHVMLGVOU
        KZVQUNZWFWAUQUIUJLMFFVNLVAZVRWJVTWFWAWKVPWIVMVQWKVNGVOVOLGWKVDWKGVBWKVO
        VBVEVCVNLEVSVFVGVOMVAZWJWEWAWGWFWLWIWDVMVQWLLGVOMLGWLLVBWLGVBWLVDVEVCVO
        MHVSVFVHVIVJAUIUJBCDEFGHIJKNOPQRSTUAUBUCVKVL $.
    $}

    cgrahl1.2 $e |- ( ph -> <" A B C "> ( cgrA ` G ) <" D E F "> ) $.
    $( Angles imply inequality.  (Contributed by Thierry Arnoux,
       1-Aug-2020.) $)
    cgrane1 $p |- ( ph -> A =/= B ) $=
      ( vx vy cs3 cv ccgrg cfv wbr w3a wne wcel wa cds cstrkg ad3antrrr simpllr
      eqid co simplr simpr1 cgr3simp1 eqcomd simpr2 hlne1 tgcgrneq ccgra iscgra
      wrex mpbid r19.29vva ) ABCDUEZUCUFZGUDUFZUEIUGUHZUIZVMEGKUHZUIZVNHVQUIZUJ
      ZBCUKUCUDFFAVMFULZUMZVNFULZUMZVTUMZVMGBCFIJIUNUHZLWFURZMAIUOULWAWCVTOUPZA
      WAWCVTUQZAGFULWAWCVTTUPZABFULWAWCVTPUPZACFULWAWCVTQUPZWEBCWFUSVMGWFUSWEBC
      DVMFVOGVNIJWFLWGMVOURWHWKWLADFULWAWCVTRUPWIWJWBWCVTUTWDVPVRVSVAVBVCWEVMEG
      FIJKUOLMNWIAEFULWAWCVTSUPWJWHWDVPVRVSVDVEVFAVLEGHUEIVGUHUIVTUDFVIUCFVIUBA
      UCUDBCDEFGHIJKLMNOPQRSTUAVHVJVK $.

    $( Angles imply inequality.  (Contributed by Thierry Arnoux,
       1-Aug-2020.) $)
    cgrane2 $p |- ( ph -> B =/= C ) $=
      ( vx vy cs3 cv ccgrg cfv wbr w3a wne wcel wa eqid cstrkg ad3antrrr simplr
      cds co simpllr simpr1 cgr3simp2 eqcomd simpr3 hlne1 necomd tgcgrneq ccgra
      wrex iscgra mpbid r19.29vva ) ABCDUEZUCUFZGUDUFZUEIUGUHZUIZVNEGKUHZUIZVOH
      VRUIZUJZCDUKUCUDFFAVNFULZUMZVOFULZUMZWAUMZGVOCDFIJIURUHZLWGUNZMAIUOULWBWD
      WAOUPZAGFULWBWDWATUPZWCWDWAUQZACFULWBWDWAQUPZADFULWBWDWARUPZWFCDWGUSGVOWG
      USWFBCDVNFVPGVOIJWGLWHMVPUNWIABFULWBWDWAPUPWLWMAWBWDWAUTWJWKWEVQVSVTVAVBV
      CWFVOGWFVOHGFIJKUOLMNWKAHFULWBWDWAUAUPWJWIWEVQVSVTVDVEVFVGAVMEGHUEIVHUHUI
      WAUDFVIUCFVIUBAUCUDBCDEFGHIJKLMNOPQRSTUAVJVKVL $.

    $( Angles imply inequality.  (Contributed by Thierry Arnoux,
       1-Aug-2020.) $)
    cgrane3 $p |- ( ph -> E =/= D ) $=
      ( vx vy cs3 cv ccgrg cfv wbr w3a wne wcel cstrkg simpllr ad3antrrr simpr2
      wa hlne2 necomd ccgra wrex iscgra mpbid r19.29vva ) ABCDUEZUCUFZGUDUFZUEI
      UGUHUIZVFEGKUHZUIZVGHVIUIZUJZGEUKUCUDFFAVFFULZUQVGFULZUQZVLUQZEGVPVFEGFIJ
      KUMLMNAVMVNVLUNAEFULVMVNVLSUOAGFULVMVNVLTUOAIUMULVMVNVLOUOVOVHVJVKUPURUSA
      VEEGHUEIUTUHUIVLUDFVAUCFVAUBAUCUDBCDEFGHIJKLMNOPQRSTUAVBVCVD $.

    $( Angles imply inequality.  (Contributed by Thierry Arnoux,
       1-Aug-2020.) $)
    cgrane4 $p |- ( ph -> E =/= F ) $=
      ( vx vy cs3 cv ccgrg cfv wbr w3a wne cstrkg simplr ad3antrrr simpr3 hlne2
      wcel wa necomd ccgra wrex iscgra mpbid r19.29vva ) ABCDUEZUCUFZGUDUFZUEIU
      GUHUIZVFEGKUHZUIZVGHVIUIZUJZGHUKUCUDFFAVFFUQZURZVGFUQZURZVLURZHGVQVGHGFIJ
      KULLMNVNVOVLUMAHFUQVMVOVLUAUNAGFUQVMVOVLTUNAIULUQVMVOVLOUNVPVHVJVKUOUPUSA
      VEEGHUEIUTUHUIVLUDFVAUCFVAUBAUCUDBCDEFGHIJKLMNOPQRSTUAVBVCVD $.

    $d X x y $.
    cgrahl1.x $e |- ( ph -> X e. P ) $.
    ${
      cgrahl1.1 $e |- ( ph -> X ( K ` E ) D ) $.
      $( Angle congruence is independent of the choice of points on the rays.
         Proposition 11.10 of [Schwabhauser] p. 95.  (Contributed by Thierry
         Arnoux, 1-Aug-2020.) $)
      cgrahl1 $p |- ( ph -> <" A B C "> ( cgrA ` G ) <" X E F "> ) $=
        ( vx vy cs3 cv ccgrg cfv wbr w3a ccgra wcel wa cstrkg ad3antrrr simpllr
        simplr simpr1 simpr2 hlcomd hltr simpr3 iscgrad iscgra mpbid r19.29vva
        wrex ) ABCDUHZUFUIZGUGUIZUHIUJUKULZVLEGKUKZULZVMHVOULZUMZVKLGHUHIUNUKZU
        LUFUGFFAVLFUOZUPZVMFUOZUPZVRUPZBCDLFGHIJKVLVMMNOAIUQUOVTWBVRPURZABFUOVT
        WBVRQURACFUOVTWBVRRURADFUOVTWBVRSURALFUOVTWBVRUDURZAGFUOVTWBVRUAURZAHFU
        OVTWBVRUBURAVTWBVRUSZWAWBVRUTWCVNVPVQVAWDVLELGFIJKMNOWHAEFUOVTWBVRTURZW
        FWEWGWCVNVPVQVBWDLEGFIJKUQMNOWFWIWGWEALEVOULVTWBVRUEURVCVDWCVNVPVQVEVFA
        VKEGHUHVSULVRUGFVJUFFVJUCAUFUGBCDEFGHIJKMNOPQRSTUAUBVGVHVI $.
    $}

    ${
      cgrahl2.1 $e |- ( ph -> X ( K ` E ) F ) $.
      $( Angle congruence is independent of the choice of points on the rays.
         Proposition 11.10 of [Schwabhauser] p. 95.  (Contributed by Thierry
         Arnoux, 1-Aug-2020.) $)
      cgrahl2 $p |- ( ph -> <" A B C "> ( cgrA ` G ) <" D E X "> ) $=
        ( vx vy cs3 cv ccgrg cfv wbr w3a ccgra wcel wa cstrkg ad3antrrr simpllr
        simplr simpr1 simpr2 simpr3 hlcomd hltr iscgrad iscgra mpbid r19.29vva
        wrex ) ABCDUHZUFUIZGUGUIZUHIUJUKULZVLEGKUKZULZVMHVOULZUMZVKEGLUHIUNUKZU
        LUFUGFFAVLFUOZUPZVMFUOZUPZVRUPZBCDEFGLIJKVLVMMNOAIUQUOVTWBVRPURZABFUOVT
        WBVRQURACFUOVTWBVRRURADFUOVTWBVRSURAEFUOVTWBVRTURAGFUOVTWBVRUAURZALFUOV
        TWBVRUDURZAVTWBVRUSWAWBVRUTZWCVNVPVQVAWCVNVPVQVBWDVMHLGFIJKMNOWHAHFUOVT
        WBVRUBURZWGWEWFWCVNVPVQVCWDLHGFIJKUQMNOWGWIWFWEALHVOULVTWBVRUEURVDVEVFA
        VKEGHUHVSULVRUGFVJUFFVJUCAUFUGBCDEFGHIJKMNOPQRSTUAUBVGVHVI $.
    $}

    $d Y x y $.  $d .- x y $.
    cgracgr.m $e |- .- = ( dist ` G ) $.
    cgracgr.y $e |- ( ph -> Y e. P ) $.
    cgracgr.1 $e |- ( ph -> X ( K ` B ) A ) $.
    cgracgr.2 $e |- ( ph -> Y ( K ` B ) C ) $.
    cgracgr.3 $e |- ( ph -> ( B .- X ) = ( E .- D ) ) $.
    cgracgr.4 $e |- ( ph -> ( B .- Y ) = ( E .- F ) ) $.
    $( First direction of proposition 11.4 of [Schwabhauser] p. 95.  Again,
       this is "half" of the proposition, i.e. only two additional points are
       used, while Schwabhauser has four.  (Contributed by Thierry Arnoux,
       31-Jul-2020.) $)
    cgracgr $p |- ( ph -> ( X .- Y ) = ( D .- F ) ) $=
      ( vx vy cs3 cv ccgrg cfv wbr w3a co wceq wcel wa clng eqid cstrkg simpllr
      ad3antrrr wo cgrane1 necomd hlln lncom orcd colrot1 simplr cgr3simp1 cleg
      simpr1 simpr2 ishlg mpbid simp3d orcomd eqcomd tgcgrsub2 trgcgr cgr3simp2
      tgcgrcomlr simpr3 cgr3simp3 cgrane2 tgfscgr ccgra wrex iscgra r19.29vva
      wne ) ABCDUOZUMUPZGUNUPZUOIUQURZUSZXAEGKURZUSZXBHXEUSZUTZMNLVAEHLVAVBUMUN
      FFAXAFVCZVDZXBFVCZVDZXHVDZXAGEHFXCNIJIVEURZLBCMOXNVFZPAIVGVCXIXKXHRVIZABF
      VCXIXKXHSVIZACFVCXIXKXHTVIZAMFVCXIXKXHUFVIZXCVFZAXIXKXHVHZAGFVCXIXKXHUCVI
      ZUGANFVCXIXKXHUHVIZAEFVCXIXKXHUBVIZAHFVCXIXKXHUDVIZACBMXNVAVCBMVBVJXIXKXH
      AFIJXNCBMOXOPRTSUFAMCBXNVAVCCBVBAFIJXNCBMOPXORTSUFABCABCDEFGHIJKOPQRSTUAU
      BUCUDUEVKZVLAMBCFIJKXNOPQUFSTRXOUIVMVNVOVPVIXMBCMXAFXCGEILOUGXTXPXQXRXSYA
      YBYDXMBCDXAFXCGXBIJLOUGPXTXPXQXRADFVCXIXKXHUAVIZYAYBXJXKXHVQZXLXDXFXGVTZV
      RZACMLVAZGELVAZVBXIXKXHUKVIZXMBMXAEFIJLOUGPXPXQXSYAYDXMXAELVABMLVAXMGXAEC
      FBMIJIVSURZLOUGPYNVFZXPYBYAYDXRXRXQXSXMXAGWSZEGWSZXAGEJVAVCEGXAJVAVCVJZXM
      XFYPYQYRUTXLXDXFXGWAXMXAEGFIJKVGOPQYAYDYBXPWBWCWDABCMJVAVCZMCBJVAVCZVJXIX
      KXHAYTYSAMCWSZBCWSZYTYSVJZAMBCKURZUSUUAUUBUUCUTUIAMBCFIJKVGOPQUFSTRWBWCWD
      WEVIXMXAGBCFIJLOUGPXPYAYBXQXRXMBCLVAXAGLVAYJWFWJZXMYKYLYMWFWGWFWJWHXMNBHX
      AFIJLOUGPXPYCXQYEYAXMGXBHXAFXCBIJXNLCDNOXOPXPXRYGYCXTYBYHUGXQYEYAADCNXNVA
      VCCNVBVJXIXKXHAFIJXNDCNOXOPRUATUHANDCXNVAVCDCVBANDCFIJKXNOPQUHUATRXOUJVMV
      OVPVIXMCDNGFXCXBHILOUGXTXPXRYGYCYBYHYEXMBCDXAFXCGXBIJLOUGPXTXPXQXRYGYAYBY
      HYIWIZXMCDNGFXBHIJYNLOUGPYOXPXRYGYCYBYBYHYEADCNJVAVCZNCDJVAVCZVJXIXKXHAUU
      HUUGANCWSZDCWSZUUHUUGVJZANDUUDUSUUIUUJUUKUTUJANDCFIJKVGOPQUHUATRWBWCWDWEV
      IXMXBGWSZHGWSZXBGHJVAVCHGXBJVAVCVJZXMXGUULUUMUUNUTXLXDXFXGWKXMXBHGFIJKVGO
      PQYHYEYBXPWBWCWDUUFACNLVAGHLVAVBXIXKXHULVIZWGXMCNGHFIJLOUGPXPXRYCYBYEUUOW
      JWHXMGXALVACBLVAUUEWFXMBCDXAFXCGXBIJLOUGPXTXPXQXRYGYAYBYHYIWLACDWSXIXKXHA
      BCDEFGHIJKOPQRSTUAUBUCUDUEWMVIWNWJUUOAUUBXIXKXHYFVIWNAWTEGHUOIWOURUSXHUNF
      WPUMFWPUEAUMUNBCDEFGHIJKOPQRSTUAUBUCUDWQWCWR $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C x y $.  $d G x y $.  $d I x y $.
    $d K x y $.  $d P x y $.  $d ph x y $.
    cgraid.p $e |- P = ( Base ` G ) $.
    cgraid.i $e |- I = ( Itv ` G ) $.
    cgraid.g $e |- ( ph -> G e. TarskiG ) $.
    cgraid.k $e |- K = ( hlG ` G ) $.
    cgraid.a $e |- ( ph -> A e. P ) $.
    cgraid.b $e |- ( ph -> B e. P ) $.
    cgraid.c $e |- ( ph -> C e. P ) $.
    ${
      cgraid.1 $e |- ( ph -> A =/= B ) $.
      cgraid.2 $e |- ( ph -> B =/= C ) $.
      $( Angle congruence is reflexive.  Theorem 11.6 of [Schwabhauser] p. 96.
         (Contributed by Thierry Arnoux, 31-Jul-2020.) $)
      cgraid $p |- ( ph -> <" A B C "> ( cgrA ` G ) <" A B C "> ) $=
        ( cfv eqid hlid ccgrg cds cgr3id necomd iscgrad ) ABCDBECDFGHBDIJLKMNOM
        NOMOABCDEFUARZFGFUBRZIUGSJUFSKMNOUCABBCEFGHIJLMMNKPTADBCEFGHIJLOMNKACDQ
        UDTUE $.

      $( Swap rays in a congruence relation.  Theorem 11.9 of [Schwabhauser]
         p. 96.  (Contributed by Thierry Arnoux, 5-Mar-2020.) $)
      cgraswap $p |- ( ph -> <" A B C "> ( cgrA ` G ) <" C B A "> ) $=
        ( vx co wcel vy cs3 ccgra cfv wbr cv ccgrg w3a wrex wceq wa eqid cstrkg
        ad3antrrr simpllr simprlr tgcgrcomlr eqcomd simprrr simplr clng simprll
        cds hlln orcd colrot1 cleg wne wo ishlg simp3d orcomd simprrl tgcgrsub2
        mpbid trgcgr axtgcgrrflx tgfscgr wb 3ad2ant1 simp2 simp3 trgcgrg adantr
        3jca 3expa mpbird necomd hlcgrex reeanv sylanbrc reximddv2 iscgra ) ABC
        DUBZDCBUBFUCUDUEWNRUFZCUAUFZUBFUGUDZUEZWODCHUDZUEZWPBWSUEZUHZUAEUIREUIA
        WTCWOFVCUDZSCBXCSUJZUKZXACWPXCSZCDXCSZUJZUKZUKZXBRUAEEAWOETZUKZWPETZUKZ
        XJUKZWRWTXAXOWRBCXCSZWOCXCSZUJZXGXFUJZDBXCSZWPWOXCSZUJZUHZXOXRXSYBXOXQX
        PXOCWOCBEFGXCIXCULZJAFUMTZXKXMXJKUNZACETZXKXMXJNUNZAXKXMXJUOZYHABETZXKX
        MXJMUNZXNWTXDXIUPZUQZURXOXFXGXNXEXAXHUSZURZXOYAXTXOWOWPBDEFGXCIYDJYFYIX
        LXMXJUTZYKADETZXKXMXJOUNZXOCWPBDEWQWPFGFVAUDZXCCDWOIYSULZJYFYHYRYIWQULZ
        YHYPYDYPYKYRXOEFGYSDCWOIYTJYFYRYHYIXOWODCYSSTDCUJXOWODCEFGHYSIJLYIYRYHY
        FYTXNWTXDXIVBZVDVEVFXOCDWOCEWQWPBFXCIYDUUAYFYHYRYIYHYPYKYOXOCDWOCEWPBFG
        FVGUDZXCIYDJUUCULYFYHYRYIYHYHYPYKXOWOCDGSTZDCWOGSTZXOWOCVHZDCVHZUUDUUEV
        IZXOWTUUFUUGUUHUHUUBXOWODCEFGHUMIJLYIYRYHYFVJVOVKVLXOWPCVHZBCVHZWPCBGST
        BCWPGSTVIZXOXAUUIUUJUUKUHXNXEXAXHVMZXOWPBCEFGHUMIJLYPYKYHYFVJVOVKYOYLVN
        YMVPYNXOEFGXCDWPIYDJYFYRYPVQACDVHXKXMXJQUNVRUQURWEXNWRYCVSZXJAXKXMUUMAX
        KXMUHBCDWOEWQCWPFXCIYDUUAAXKYEXMKVTAXKYJXMMVTAXKYGXMNVTZAXKYQXMOVTAXKXM
        WAUUNAXKXMWBWCWFWDWGUUBUULWEAXEREUIXIUAEUIXJUAEUIREUIARCCBDEFGHXCIJLNNM
        KOYDACDQWHABCPWHWIAUACCDBEFGHXCIJLNNOKMYDPQWIXEXIRUAEEWJWKWLARUABCDDECB
        FGHIJLKMNOONMWMWG $.
    $}

    $d D x y $.  $d E x y $.  $d F x y $.
    cgracom.d $e |- ( ph -> D e. P ) $.
    cgracom.e $e |- ( ph -> E e. P ) $.
    cgracom.f $e |- ( ph -> F e. P ) $.
    ${
      cgrcgra.1 $e |- ( ph -> A =/= B ) $.
      cgrcgra.2 $e |- ( ph -> B =/= C ) $.
      cgrcgra.3 $e |- ( ph -> <" A B C "> ( cgrG ` G ) <" D E F "> ) $.
      $( Triangle congruence implies angle congruence.  (Contributed by Thierry
         Arnoux, 2-Aug-2020.) $)
      cgrcgra $p |- ( ph -> <" A B C "> ( cgrA ` G ) <" D E F "> ) $=
        ( cds eqid ccgrg cgr3simp1 tgcgrneq cgr3simp2 tgcgrcomlr necomd iscgrad
        cfv hlid ) ABCDEFGHIJKEHLMONPQRSTUASUAUDAEBGFIJKLMOSPTNABCEGFIJIUEUNZLU
        PUFZMNPQSTABCDEFIUGUNZGHIJUPLUQMURUFZNPQRSTUAUDUHUBUIUOAHBGFIJKLMOUAPTN
        ADCHGFIJUPLUQMNRQUATACDGHFIJUPLUQMNQRTUAABCDEFURGHIJUPLUQMUSNPQRSTUAUDU
        JUKACDUCULUIUOUM $.
    $}

    cgracom.1 $e |- ( ph -> <" A B C "> ( cgrA ` G ) <" D E F "> ) $.
    $( Angle congruence commutes.  Theorem 11.7 of [Schwabhauser] p. 97.
       (Contributed by Thierry Arnoux, 5-Mar-2020.) $)
    cgracom $p |- ( ph -> <" D E F "> ( cgrA ` G ) <" A B C "> ) $=
      ( vx vy cs3 ccgra cfv wbr cv ccgrg w3a wrex cds co wceq wa wcel ad3antrrr
      eqid cstrkg simpllr simplr simprlr eqcomd simprrr simprll simprrl cgracgr
      tgcgrcomlr trgcgr cgrane1 cgrane3 hlcgrex cgrane2 necomd cgrane4 sylanbrc
      3jca reeanv reximddv2 iscgra mpbird ) AEGHUEZBCDUEZIUFUGZUHWCUCUIZCUDUIZU
      EIUJUGZUHZWFBCKUGZUHZWGDWJUHZUKZUDFULUCFULAWKCWFIUMUGZUNZGEWNUNZUOZUPZWLC
      WGWNUNZGHWNUNZUOZUPZUPZWMUCUDFFAWFFUQZUPZWGFUQZUPZXCUPZWIWKWLXHEGHWFFWHCW
      GIWNLWNUSZWHUSAIUTUQXDXFXCNURZAEFUQXDXFXCSURZAGFUQXDXFXCTURZAHFUQXDXFXCUA
      URZAXDXFXCVAZACFUQXDXFXCQURZXEXFXCVBZXHGECWFFIJWNLXIMXJXLXKXOXNXHWOWPXGWK
      WQXBVCZVDVIXHWSWTXGWRWLXAVEZVDXHEHWFWGFIJWNLXIMXJXKXMXNXPXHWFWGWNUNEHWNUN
      XHBCDEFGHIJKWNWFWGLMOXJABFUQXDXFXCPURXOADFUQXDXFXCRURXKXLXMAWDWCWEUHXDXFX
      CUBURXNXIXPXGWKWQXBVFZXGWRWLXAVGZXQXRVHVDVIVJXSXTVRAWRUCFULXBUDFULXCUDFUL
      UCFULAUCCGEBFIJKWNLMOQTSNPXIABCDEFGHIJKLMONPQRSTUAUBVKABCDEFGHIJKLMONPQRS
      TUAUBVLVMAUDCGHDFIJKWNLMOQTUANRXIACDABCDEFGHIJKLMONPQRSTUAUBVNVOABCDEFGHI
      JKLMONPQRSTUAUBVPVMWRXBUCUDFFVSVQVTAUCUDEGHBFCDIJKLMONSTUAPQRWAWB $.

    $d A u v $.  $d B u v $.  $d C u v $.  $d D u v $.  $d E u v $.
    $d F u v $.  $d G u v $.  $d H u v x y $.  $d U u v x y $.  $d I u v $.
    $d J u v x y $.  $d K u v $.  $d P u v $.  $d ph u v $.
    cgratr.h $e |- ( ph -> H e. P ) $.
    cgratr.i $e |- ( ph -> U e. P ) $.
    cgratr.j $e |- ( ph -> J e. P ) $.
    cgratr.1 $e |- ( ph -> <" D E F "> ( cgrA ` G ) <" H U J "> ) $.
    $( Angle congruence is transitive.  Theorem 11.8 of [Schwabhauser] p. 97.
       (Contributed by Thierry Arnoux, 5-Mar-2020.) $)
    cgratr $p |- ( ph -> <" A B C "> ( cgrA ` G ) <" H U J "> ) $=
      ( vx vy vu vv cs3 ccgra cfv wbr cv ccgrg w3a wrex cds co wceq wcel cstrkg
      wa eqid ad3antrrr simpllr simplr simprlr eqcomd tgcgrcomlr simprrr simpr1
      ad6antr cgr3simp3 simprll cgrahl1 simprrl cgrahl2 simpr2 simpr3 cgr3simp1
      eqtrd cgr3simp2 cgracgr iscgra mpbid r19.29vva trgcgr 3jca cgrane3 necomd
      cgrane1 hlcgrex cgrane4 cgrane2 reeanv sylanbrc reximddv2 mpbird ) ABCDUN
      ZKGMUNZJUOUPZUQXDUJURZGUKURZUNJUSUPZUQZXGKGNUPZUQZXHMXKUQZUTZUKFVAUJFVAAX
      LGXGJVBUPZVCZCBXOVCZVDZVGZXMGXHXOVCZCDXOVCZVDZVGZVGZXNUJUKFFAXGFVEZVGZXHF
      VEZVGZYDVGZXJXLXMYIBCDXGFXIGXHJXOOXOVHZXIVHZAJVFVEZYEYGYDQVIZABFVEZYEYGYD
      SVIZACFVEZYEYGYDTVIZADFVEZYEYGYDUAVIZAYEYGYDVJZAGFVEZYEYGYDUGVIZYFYGYDVKZ
      YICBGXGFJLXOOYJPYMYQYOUUBYTYIXPXQYHXLXRYCVLVMZVNYIXTYAYHXSXMYBVOVMZYIXDUL
      URZHUMURZUNXIUQZUUFEHNUPZUQZUUGIUUIUQZUTZDBXOVCZXHXGXOVCZVDULUMFFYIUUFFVE
      ZVGZUUGFVEZVGZUULVGZUUMUUGUUFXOVCUUNUUSBCDUUFFXIHUUGJLXOOYJPYKYIYLUUOUUQU
      ULYMVIZYIYNUUOUUQUULYOVIZYIYPUUOUUQUULYQVIZYIYRUUOUUQUULYSVIZYIUUOUUQUULV
      JZAHFVEYEYGYDUUOUUQUULUCVQZUUPUUQUULVKZUURUUHUUJUUKVPZVRUUSUUFUUGXGXHFJLX
      OOYJPUUTUVDUVFYIYEUUOUUQUULYTVIZYIYGUUOUUQUULUUCVIZUUSEHIXGFGXHJLNXOUUFUU
      GOPRUUTAEFVEYEYGYDUUOUUQUULUBVQZUVEAIFVEYEYGYDUUOUUQUULUDVQZUVHYIUUAUUOUU
      QUULUUBVIZUVIUUSEHIXGFGMJLNXHOPRUUTUVJUVEUVKUVHUVLAMFVEYEYGYDUUOUUQUULUHV
      QZUUSEHIKFGMJLNXGOPRUUTUVJUVEUVKAKFVEYEYGYDUUOUUQUULUFVQUVLUVMAEHIUNZXEXF
      UQYEYGYDUUOUUQUULUIVQUVHYIXLUUOUUQUULYHXLXRYCVSZVIVTUVIYIXMUUOUUQUULYHXSX
      MYBWAZVIWBUVDYJUVFUURUUHUUJUUKWCUURUUHUUJUUKWDUUSHUUFXOVCXQXPUUSUUFHBCFJL
      XOOYJPUUTUVDUVEUVAUVBUUSBCXOVCUUFHXOVCUUSBCDUUFFXIHUUGJLXOOYJPYKUUTUVAUVB
      UVCUVDUVEUVFUVGWEVMVNYIXQXPVDUUOUUQUULUUDVIWFUUSHUUGXOVCZYAXTUUSYAUVQUUSB
      CDUUFFXIHUUGJLXOOYJPYKUUTUVAUVBUVCUVDUVEUVFUVGWGVMYIYAXTVDUUOUUQUULUUEVIW
      FWHVNWFAUULUMFVAULFVAZYEYGYDAXDUVNXFUQUVRUEAULUMBCDEFHIJLNOPRQSTUAUBUCUDW
      IWJVIWKWLUVOUVPWMAXSUJFVAYCUKFVAYDUKFVAUJFVAAUJGCBKFJLNXOOPRUGTSQUFYJAGKA
      EHIKFGMJLNOPRQUBUCUDUFUGUHUIWNWOABCABCDEFHIJLNOPRQSTUAUBUCUDUEWPWOWQAUKGC
      DMFJLNXOOPRUGTUAQUHYJAGMAEHIKFGMJLNOPRQUBUCUDUFUGUHUIWRWOABCDEFHIJLNOPRQS
      TUAUBUCUDUEWSWQXSYCUJUKFFWTXAXBAUJUKBCDKFGMJLNOPRQSTUAUFUGUHWIXC $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C x y $.  $d D x y $.  $d E x y $.
    $d F x y $.  $d G x y $.  $d I x y $.  $d P x y $.  $d ph x y $.
    cgracol.p $e |- P = ( Base ` G ) $.
    cgracol.i $e |- I = ( Itv ` G ) $.
    cgracol.m $e |- .- = ( dist ` G ) $.
    cgracol.g $e |- ( ph -> G e. TarskiG ) $.
    cgracol.a $e |- ( ph -> A e. P ) $.
    cgracol.b $e |- ( ph -> B e. P ) $.
    cgracol.c $e |- ( ph -> C e. P ) $.
    cgracol.d $e |- ( ph -> D e. P ) $.
    cgracol.e $e |- ( ph -> E e. P ) $.
    cgracol.f $e |- ( ph -> F e. P ) $.
    cgracol.1 $e |- ( ph -> <" A B C "> ( cgrA ` G ) <" D E F "> ) $.
    $( Swap both side of angle congruence.  (Contributed by Thierry Arnoux,
       5-Oct-2020.) $)
    cgraswaplr $p |- ( ph -> <" C B A "> ( cgrA ` G ) <" F E D "> ) $=
      ( chlg cfv eqid cgrane2 necomd cgrane1 cgraswap cgratr cgrane3 cgrane4 )
      ADCBEFGGHIHJEIUCUDZLMOUMUEZRQPSTUAADCBBFGCDIEJHUMLMOUNRQPPQRADCBFIJUMLMOU
      NRQPACDABCDEFGHIJUMLMUNOPQRSTUAUBUFUGABCABCDEFGHIJUMLMUNOPQRSTUAUBUHUGUIS
      TUAUBUJUATSAEGHFIJUMLMOUNSTUAAGEABCDEFGHIJUMLMUNOPQRSTUAUBUKUGABCDEFGHIJU
      MLMUNOPQRSTUAUBULUIUJ $.

    ${
      cgrabtwn.2 $e |- ( ph -> B e. ( A I C ) ) $.
      $( Angle congruence preserves flat angles.  Part of Theorem 11.21 of
         [Schwabhauser] p. 97.  (Contributed by Thierry Arnoux, 9-Aug-2020.) $)
      cgrabtwn $p |- ( ph -> E e. ( D I F ) ) $=
        ( vx vy cs3 cv ccgrg cfv wbr chlg w3a co wcel wa eqid simpllr ad3antrrr
        cstrkg simpr2 simplr simpr3 simpr1 tgbtwnxfr tgbtwncom ccgra wrex mpbid
        btwnhl iscgra r19.29vva ) ABCDUFZUDUGZGUEUGZUFIUHUIZUJZVMEGIUKUIZUIZUJZ
        VNHVRUJZULZGEHJUMUNUDUEFFAVMFUNZUOZVNFUNZUOZWAUOZVMEHGFIJVQLMVQUPZAWBWD
        WAUQZAEFUNWBWDWASURAHFUNWBWDWAUAURZAIUSUNWBWDWAOURZAGFUNWBWDWATURZWEVPV
        SVTUTWFHGVMFIJKLNMWJWIWKWHWFVNHVMGFIJVQLMWGWCWDWAVAZWIWHWJWKWEVPVSVTVBW
        FVMGVNFIJKLNMWJWHWKWLWFBCDVMFVOGVNIJKLNMVOUPWJABFUNWBWDWAPURACFUNWBWDWA
        QURADFUNWBWDWARURWHWKWLWEVPVSVTVCACBDJUMUNWBWDWAUCURVDVEVIVEVIAVLEGHUFI
        VFUIUJWAUEFVGUDFVGUBAUDUEBCDEFGHIJVQLMWGOPQRSTUAVJVHVK $.
    $}

    ${
      $d K x y $.
      cgrahl.k $e |- K = ( hlG ` G ) $.
      cgrahl.2 $e |- ( ph -> A ( K ` B ) C ) $.
      $( Angle congruence preserves null angles.  Part of Theorem 11.21 of
         [Schwabhauser] p. 97.  (Contributed by Thierry Arnoux, 9-Aug-2020.) $)
      cgrahl $p |- ( ph -> D ( K ` E ) F ) $=
        ( vx vy cs3 cv ccgrg cfv wbr w3a wcel wa ad3antrrr simplr cstrkg simpr2
        simpllr hlcomd wne co wo hlne1 simpr3 adantr ad4antr simplr1 cgr3swap23
        eqid cgr3rotr simpr tgbtwnxfr orcd cgr3rotl ishlg mpbid simp3d mpjaodan
        olcd 3jca mpbird hltr ccgra wrex iscgra r19.29vva ) ABCDUHZUFUIZGUGUIZU
        HIUJUKZULZWJEGKUKZULZWKHWNULZUMZEHWNULUFUGFFAWJFUNZUOZWKFUNZUOZWQUOZEWK
        HGFIJKMNUDAEFUNWRWTWQTUPZWSWTWQUQZAHFUNWRWTWQUBUPZAIURUNZWRWTWQPUPZAGFU
        NZWRWTWQUAUPZXBEWJWKGFIJKMNUDXCAWRWTWQUTZXDXGXIXBWJEGFIJKURMNUDXJXCXIXG
        XAWMWOWPUSZVAXBWJWKWNULWJGVBZWKGVBZWJGWKJVCUNZWKGWJJVCUNZVDZUMXBXLXMXPX
        BWJEGFIJKURMNUDXJXCXIXGXKVEXBWKHGFIJKURMNUDXDXEXIXGXAWMWOWPVFZVEXBBCDJV
        CUNZXPDCBJVCUNZXBXRUOZXNXOXTCBDGFWLWJWKIJLMONWLVKZXBXFXRXGVGZACFUNZWRWT
        WQXRRVHZABFUNZWRWTWQXRQVHZADFUNZWRWTWQXRSVHZXBXHXRXIVGZXBWRXRXJVGZXBWTX
        RXDVGZXTBDCWJFWLWKGIJLMONYAYBYFYHYDYJYKYIXTBCDWJFWLGWKIJLMONYAYBYFYDYHY
        JYIYKWMWOWPXAXRVIVJVLXBXRVMVNVOXBXSUOZXOXNYLCDBGFWLWKWJIJLMONYAAXFWRWTW
        QXSPVHZAYCWRWTWQXSRVHZAYGWRWTWQXSSVHZAYEWRWTWQXSQVHZAXHWRWTWQXSUAVHZXBW
        TXSXDVGZXBWRXSXJVGZYLBCDWJFWLGWKIJLMONYAYMYPYNYOYSYQYRWMWOWPXAXSVIVPXBX
        SVMVNWAAXRXSVDZWRWTWQABCVBZDCVBZYTABDCKUKULUUAUUBYTUMUEABDCFIJKURMNUDQS
        RPVQVRVSUPVTWBXBWJWKGFIJKURMNUDXJXDXIXGVQWCWDXQWDAWIEGHUHIWEUKULWQUGFWF
        UFFWFUCAUFUGBCDEFGHIJKMNUDPQRSTUAUBWGVRWH $.
    $}

    ${
      cgracol.l $e |- L = ( LineG ` G ) $.
      cgracol.2 $e |- ( ph -> ( C e. ( A L B ) \/ A = B ) ) $.
      $( Angle congruence preserves colinearity.  (Contributed by Thierry
         Arnoux, 9-Aug-2020.) $)
      cgracol $p |- ( ph -> ( F e. ( D L E ) \/ D = E ) ) $=
        ( co wcel wo wceq w3o wne chlg cfv wbr w3a cstrkg adantr cs3 ccgra eqid
        wa cgrane2 necomd cgrane1 simpr tgbtwncom orcd 3jca jaodan ishlg mpbird
        olcd wb hlcomd cgrahl mpbid simp3d syldan df-3or sylibr cgracom tgellng
        cgrabtwn btwncolg3 wn neneqd orcomd ord mpd sylib mpjaodan ) ADBCJUFUGZ
        BDCJUFUGZUHZHEGKUFUGZEGUIZUHCBDJUFUGZAWNVAZWOWPWRWOHEGJUFUGZEHGJUFUGZGE
        HJUFUGZUJZWRWSWTUHZXAUHXBWRXCXAAWNEGHJUFUGZHGEJUFUGZUHZXCWREGUKZHGUKZXF
        WREHGIULUMZUMUNXGXHXFUOWRBCDEFGHIJXILMNOAIUPUGZWNPUQZABFUGZWNQUQZACFUGZ
        WNRUQZADFUGZWNSUQZAEFUGZWNTUQZAGFUGZWNUAUQZAHFUGZWNUBUQZABCDUREGHURIUSU
        MUNZWNUCUQXIUTZWRDBCFIJXIUPMNYEXQXMXOXKWRDBCXIUMUNZDCUKZBCUKZDCBJUFUGZB
        CDJUFUGZUHZUOZAWLYLWMAWLVAZYGYHYKAYGWLACDABCDEFGHIJXIMNYEPQRSTUAUBUCVBV
        CZUQAYHWLABCDEFGHIJXIMNYEPQRSTUAUBUCVDZUQYMYIYJYMBDCFIJLMONAXJWLPUQAXLW
        LQUQAXPWLSUQAXNWLRUQAWLVEVFVGVHAWMVAZYGYHYKAYGWMYNUQAYHWMYOUQYPYJYIYPDB
        CFIJLMONAXJWMPUQAXPWMSUQAXLWMQUQAXNWMRUQAWMVEVFVLVHVIAYFYLVMWNADBCFIJXI
        UPMNYESQRPVJUQVKVNVOWREHGFIJXIUPMNYEXSYCYAXKVJVPVQAXDXCXEAXDVAZWTWSYQGE
        HFIJLMONAXJXDPUQAXTXDUAUQAXRXDTUQAYBXDUBUQAXDVEVFVLAXEVAZWSWTYRGHEFIJLM
        ONAXJXEPUQAXTXEUAUQAYBXEUBUQAXRXETUQAXEVEVFVGVIVRVGWSWTXAVSVTAWOXBVMWNA
        FIJKEGHMUDNPTUAAEGHBFCDIJXIMNYEPTUAUBQRSABCDEFGHIJXIMNPYEQRSTUAUBUCWAVD
        UBWBUQVKVGAWQVAZFIJKEGHMUDNAXJWQPUQZAXRWQTUQZAXTWQUAUQZAYBWQUBUQZYSBCDE
        FGHIJLMNOYTAXLWQQUQAXNWQRUQAXPWQSUQUUAUUBUUCAYDWQUCUQAWQVEWCWDAWLWMWQUJ
        ZWNWQUHADBCKUFUGZUUDABCUIZWEUUEABCYOWFAUUFUUEAUUEUUFUEWGWHWIAFIJKBCDMUD
        NPQRYOSWBVPWLWMWQVSWJWK $.
    $}

    ${
      cgrancol.l $e |- L = ( LineG ` G ) $.
      cgrancol.2 $e |- ( ph -> -. ( C e. ( A L B ) \/ A = B ) ) $.
      $( Angle congruence preserves non-colinearity.  (Contributed by Thierry
         Arnoux, 9-Aug-2020.) $)
      cgrancol $p |- ( ph -> -. ( F e. ( D L E ) \/ D = E ) ) $=
        ( co wcel wceq wo wa cstrkg adantr chlg cfv cs3 ccgra wbr cgracom simpr
        eqid cgracol wn pm2.65da ) AHEGKUFUGEGUHUIZDBCKUFUGBCUHUIZAVDUJZEGHBFCD
        IJKLMNOAIUKUGVDPULZAEFUGVDTULZAGFUGVDUAULZAHFUGVDUBULZABFUGVDQULZACFUGV
        DRULZADFUGVDSULZVFBCDEFGHIJIUMUNZMNVGVNUTVKVLVMVHVIVJABCDUOEGHUOIUPUNUQ
        VDUCULURUDAVDUSVAAVEVBVDUEULVC $.
    $}
  $}

  ${
    $d .- a c d f t x y z $.  $d A a c d f t x y z $.  $d B a c d f t x y z $.
    $d C a c d f t x y z $.  $d D a c d f t x y z $.  $d E a c d f t x y z $.
    $d F a c d f t x y z $.  $d G a c d f t x y z $.  $d I a c d f t x y z $.
    $d P a c d f t x y z $.  $d L d f $.  $d ph a c d f t x y z $.
    dfcgra2.p $e |- P = ( Base ` G ) $.
    dfcgra2.i $e |- I = ( Itv ` G ) $.
    dfcgra2.m $e |- .- = ( dist ` G ) $.
    dfcgra2.g $e |- ( ph -> G e. TarskiG ) $.
    dfcgra2.a $e |- ( ph -> A e. P ) $.
    dfcgra2.b $e |- ( ph -> B e. P ) $.
    dfcgra2.c $e |- ( ph -> C e. P ) $.
    dfcgra2.d $e |- ( ph -> D e. P ) $.
    dfcgra2.e $e |- ( ph -> E e. P ) $.
    dfcgra2.f $e |- ( ph -> F e. P ) $.
    $( This is the full statement of definition 11.2 of [Schwabhauser] p. 95.
       This proof serves to confirm that the definition we have chosen,
       ~ df-cgra is indeed equivalent with the textbook's definition.
       (Contributed by Thierry Arnoux, 2-Aug-2020.) $)
    dfcgra2 $p |- ( ph -> ( <" A B C "> ( cgrA ` G ) <" D E F "> <->
      ( ( A =/= B /\ C =/= B ) /\ ( D =/= E /\ F =/= E )
      /\ E. a e. P E. c e. P E. d e. P E. f e. P (
         ( ( A e. ( B I a ) /\ ( A .- a ) = ( E .- D ) )
        /\ ( C e. ( B I c ) /\ ( C .- c ) = ( E .- F ) ) )
      /\ ( ( D e. ( E I d ) /\ ( D .- d ) = ( B .- A ) )
        /\ ( F e. ( E I f ) /\ ( F .- f ) = ( B .- C ) ) )
      /\ ( a .- c ) = ( d .- f ) ) ) ) ) $=
      ( vx vy vz vt cs3 ccgra cfv wbr wne wa cv co wcel wceq w3a wrex chlg eqid
      cstrkg adantr simpr cgrane1 cgrane2 necomd cgrane3 cgrane4 simprl ad5antr
      jca simprr simp-5r simp-4r simpllr simplr cgracom simplld tgbtwnne hlcomd
      btwnhl1 cgrahl1 simprld cgrahl2 hlid tgbtwncom simplrd eqcomd tgcgrextend
      tgcgrcoml simprrd cgracgr 3jca ex reximdva imp axtgsegcon reeanv sylanbrc
      r19.41vv ancom 2rexbii 3bitr3i bitr2i sylib reximddv2 df-3an ccgrg simpr1
      ad6antr simpr2 tgcgrcomr simpr3 tgcgrcomlr simp-6r iscgrad adantl3r eqidd
      trgcgr oveq2 eleq12d eqeq12d anbi12d 3anbi23d cbvrex2v r19.29vva 3anbi13d
      biidd oveq1 2rexbidv anasss sylan2b impbida ) ABCDUJEHIUJJUKULUMZBCUNZDCU
[encoded data, 6160 characters]
      OUUKVUMVUGLYCVYCUVOYAYEYJYMYHXHYIYNYOYP $.

    ${
      $d X x y $.  $d Y x y $.
      sacgr.x $e |- ( ph -> X e. P ) $.
      sacgr.y $e |- ( ph -> Y e. P ) $.
      sacgr.1 $e |- ( ph -> <" A B C "> ( cgrA ` G ) <" D E F "> ) $.
      sacgr.2 $e |- ( ph -> B e. ( A I X ) ) $.
      sacgr.3 $e |- ( ph -> E e. ( D I Y ) ) $.
      sacgr.4 $e |- ( ph -> B =/= X ) $.
      sacgr.5 $e |- ( ph -> E =/= Y ) $.
      $( Supplementary angles of congruent angles are themselves congruent.
         Theorem 11.13 of [Schwabhauser] p. 98.  (Contributed by Thierry
         Arnoux, 30-Sep-2020.) $)
      sacgr $p |- ( ph -> <" X B C "> ( cgrA ` G ) <" Y E F "> ) $=
        ( vx vy cmir cfv cs3 cv ccgrg wbr chlg w3a ccgra wcel wa eqid ad3antrrr
        cstrkg simpllr mircl simplr mircgr tgcgrcomlr simpr1 cgr3simp1 3eqtr2rd
        clng co cgr3simp2 mirmir eqidd s3eqd wne necomd mirne mirtrcgr eqbrtrrd
        cgr3swap13 cgr3simp3 trgcgr simpr2 hlne1 hlcomd btwnhl tgbtwncom oveq2d
        wceq eleqtrrd mirhl2 simpr3 iscgrad wrex cgrane2 cgraid cgrane1 cgrahl1
        cgratr iscgra mpbid r19.29vva ) ALCIUMUNZUNZUNZCDUOZUKUPZGULUPZUOIUQUNZ
        URZXMEGIUSUNZUNZURZXNHXRURZUTZLCDUOZMGHUOIVAUNZURUKULFFAXMFVBZVCZXNFVBZ
        VCZYAVCZLCDMFGHIJXQXMGXIUNZUNZXNNOXQVDZAIVFVBYDYFYAQVEZALFVBYDYFYAUDVEZ
        ACFVBYDYFYASVEZADFVBYDYFYATVEZAMFVBYDYFYAUEVEZAGFVBYDYFYAUBVEZAHFVBYDYF
        YAUCVEYHGFXIIJIVOUNZYIKXMNPOYRVDZXIVDZYLYQYIVDZAYDYFYAVGZVHZYEYFYAVIZYH
        LCDYJFXOGXNIKNPXOVDZYLYMYNYOUUCYQUUDYHYJGKVPXMGKVPXKCKVPZLCKVPZYHGYJGXM
        FIJKNPOYLYQUUCYQUUBYHGXMFXIIJYRYIKNPOYSYTYLYQUUAUUBVJVKYHXKCDXMFXOGXNIJ
        KNPOUUEYLAXKFVBYDYFYAACFXIIJYRXJKLNPOYSYTQSXJVDZUDVHZVEZYNYOUUBYQUUDYGX
        PXSXTVLZVMAUUFUUGWOYDYFYAACXKCLFIJKNPOQSUUISUDACLFXIIJYRXJKNPOYSYTQSUUH
        UDVJVKVEVNYHXKCDXMFXOGXNIJKNPOUUEYLUUJYNYOUUBYQUUDUUKVQYHLDYJXNFIJKNPOY
        LYMYOUUCUUDYHDCLXNFXOGYJIJKNPOUUEYLYOYNYMUUDYQUUCYHLCDYJFXOGXNIJKNPOUUE
        YLYMYNYOUUCYQUUDYHXKXJUNZCDUOZYBYJGXNUOXOAUUMYBWOYDYFYAAUULCDDLCACLFXII
        JYRXJKNPOYSYTQSUUHUDVRZACVSADVSVTVEYHXKCDFXOXIIJYRXJKYIXMGXNNPOYSYTYLUU
        EUUHUUAUUJYNUUBYQYOUUDAXKCWAYDYFYAACLFXIIJYRXJKNPOYSYTQSUUHUDACLUIWBWCZ
        VEUUKWDWEWFWGVKWHYHMYJGFIJXQVFNOYKYPUUCYQYLYHGFXIIJXQYRYIKMYJGNPOYSYTYL
        UUAYKYQYPUUCYQYHGMAGMWAYDYFYAUJVEWBYHGXMFXIIJYRYIKNPOYSYTYLYQUUAUUBYHXM
        EGFIJXQVFNOYKUUBAEFVBYDYFYAUAVEZYQYLYGXPXSXTWIZWJWCYHGMXMJVPMYJYIUNZJVP
        YHXMGMFIJKNPOYLUUBYQYPYHEXMMGFIJXQNOYKUUPUUBYPYLYQYHXMEGFIJXQVFNOYKUUBU
        UPYQYLUUQWKAGEMJVPVBYDYFYAUHVEWLWMYHUURXMMJYHGXMFXIIJYRYIKNPOYSYTYLYQUU
        AUUBVRWNWPWQWKYGXPXSXTWRWSAXLEGHUOYCURYAULFWTUKFWTAXKCDBFGCDIEJHXQNOQYK
        UUISTRSTAXKCDXKFCDIJXQBNOYKQUUISTUUISTAXKCDFIJXQNOQYKUUISTUUOABCDEFGHIJ
        XQNOYKQRSTUAUBUCUFXAXBRACFXIIJXQYRXJKBXKBNPOYSYTQUUHYKSRUUIRABCDEFGHIJX
        QNOYKQRSTUAUBUCUFXCUUOACBLJVPBUULJVPUGAUULLBJUUNWNWPWQXDUAUBUCUFXEAUKUL
        XKCDEFGHIJXQNOYKQUUISTUAUBUCXFXGXH $.
    $}

    ${
      oacgr.1 $e |- ( ph -> B e. ( A I D ) ) $.
      oacgr.2 $e |- ( ph -> B e. ( C I F ) ) $.
      oacgr.3 $e |- ( ph -> B =/= A ) $.
      oacgr.4 $e |- ( ph -> B =/= C ) $.
      oacgr.5 $e |- ( ph -> B =/= D ) $.
      oacgr.6 $e |- ( ph -> B =/= F ) $.
      $( Vertical angle theorem.  Vertical, or opposite angles are the facing
         pair of angles formed when two lines intersect.  Eudemus of Rhodes
         attributed the proof to Thales of Miletus.  The proposition showed
         that since both of a pair of vertical angles are supplementary to both
         of the adjacent angles, the vertical angles are equal in measure.  We
         follow the same path.  Theorem 11.14 of [Schwabhauser] p. 98.
         (Contributed by Thierry Arnoux, 27-Sep-2020.) $)
      oacgr $p |- ( ph -> <" A B C "> ( cgrA ` G ) <" D B F "> ) $=
        ( chlg cfv eqid necomd cgraswap tgbtwncom sacgr cgratr ) ABCDDFCCBIEJHI
        UHUIZLMOUPUJZPQRRQPABCDFIJUPLMOUQPQRACBUDUKUEULSQUAAHCBBFCHIJKDELMNOUAQ
        PPQUARSAHCBFIJUPLMOUQUAQPACHUGUKUDULADCHFIJKLNMORQUAUCUMUBUEUFUNUO $.
    $}

    ${
      acopy.l $e |- L = ( LineG ` G ) $.
      acopy.1 $e |- ( ph -> -. ( A e. ( B L C ) \/ B = C ) ) $.
      acopy.2 $e |- ( ph -> -. ( D e. ( E L F ) \/ E = F ) ) $.
      $( Angle construction.  Theorem 11.15 of [Schwabhauser] p. 98.  This is
         Hilbert's axiom III.4 for geometry.  (Contributed by Thierry Arnoux,
         9-Aug-2020.) $)
      acopy $p |- ( ph -> E. f e. P ( <" A B C "> ( cgrA ` G ) <" D E f ">
        /\ f ( ( hpG ` G ) ` ( D L E ) ) F ) ) $=
        ( vd cv chlg cfv wbr co wceq cs3 ccgra chpg wrex wcel ccgrg eqid cstrkg
        wa ad2antrr simplr wo wn simprl hlne1 ncolncol simprr eqcomd tgcgrcomlr
        hlln trgcopy wne ncolne1 ad4antr ncolrot1 cgrcgra hlcomd cgrahl1 ex crn
        simpr tgelrnln tglinerflx2 tglinethru fveq2d breqd anim12d reximdva mpd
        mpbird necomd hlcgrex r19.29a ) AUGUHZEHJUIUJZUJUKZHWQMULZCBMULZUMZVBZB
        CDUNZEHGUHZUNJUOUJUKZXEIEHLULZJUPUJZUJZUKZVBZGFUQZUGFAWQFURZVBZXCVBZXDW
        QHXEUNJUSUJUKZXEIWQHLULZXHUJZUKZVBZGFUQXLXOBCDWQFGHIJKWRLMNPOUDWRUTZAJV
        AURZXMXCQVCZABFURZXMXCRVCZACFURZXMXCSVCZADFURZXMXCTVCZAXMXCVDZAHFURZXMX
        CUBVCZAIFURXMXCUCVCZABCDLULURCDUMVEVFXMXCUEVCXOEHIWQFJKLNOUDYCAEFURZXMX
        CUAVCZYLYMYJAEHILULURHIUMVEVFXMXCUFVCXOWQEHFJKWRLNOYAYJYOYLYCUDXNWSXBVG
        ZVMZXOWQEHFJKWRVANOYAYJYOYLYCYPVHZVIXOCBHWQFJKMNPOYCYGYEYLYJXOWTXAXNWSX
        BVJVKVLVNXOXTXKGFXOXEFURZVBZXPXFXSXJYTXPXFYTXPVBZBCDWQFHXEJKWRENOYAXOYB
        YSXPYCVCZXOYDYSXPYEVCZXOYFYSXPYGVCZXOYHYSXPYIVCZXOXMYSXPYJVCZXOYKYSXPYL
        VCZXOYSXPVDZUUABCDWQFHXEJKWRNOUUBYAUUCUUDUUEUUFUUGUUHABCVOXMXCYSXPAFJKL
        BCDNOUDQRSTUEVPZVQACDVOXMXCYSXPAFJKLCDBNOUDQSTRAFJKLCDBNUDOQSTRUEVRVPVQ
        YTXPWDVSXOYNYSXPYOVCZUUAWQEHFJKWRVANOYAUUFUUJUUGUUBXOWSYSXPYPVCVTWAWBYT
        XSXJYTXSVBZXJXSYTXSWDUUKXIXRXEIUUKXGXQXHUUKXGFWQHJKLNOUDXOYBYSXSYCVCXOX
        MYSXSYJVCXOYKYSXSYLVCXOWQHVOYSXSYRVCZUULAXGLWCURXMXCYSXSAFJKLEHNOUDQUAU
        BAFJKLEHINOUDQUAUBUCUFVPZWEVQXOWQXGURYSXSYQVCAHXGURXMXCYSXSAFEHJKLNOUDQ
        UAUBUUMWFVQWGWHWIWMWBWJWKWLAUGHCBEFJKWRMNOYAUBSRQUAPUUMABCUUIWNWOWP $.

      $d .- a b d t u v w x y $.  $d A b t w $.  $d B b t w $.  $d C b t w $.
      $d D b t w $.  $d E b t u v w $.  $d F b t u v w $.  $d G b t u v w $.
      $d I b t u v w $.  $d K a b d t w x y $.  $d L a b t u v w $.
      $d P b t u v w $.  $d X a b d t w x y $.  $d Y a b d t w x y $.
      $d ph b t w $.
      acopyeu.x $e |- ( ph -> X e. P ) $.
      acopyeu.y $e |- ( ph -> Y e. P ) $.
      acopyeu.k $e |- K = ( hlG ` G ) $.
      acopyeu.1 $e |- ( ph -> <" A B C "> ( cgrA ` G ) <" D E X "> ) $.
      acopyeu.2 $e |- ( ph -> <" A B C "> ( cgrA ` G ) <" D E Y "> ) $.
      acopyeu.3 $e |- ( ph -> X ( ( hpG ` G ) ` ( D L E ) ) F ) $.
      acopyeu.4 $e |- ( ph -> Y ( ( hpG ` G ) ` ( D L E ) ) F ) $.
      $( Angle construction.  Theorem 11.15 of [Schwabhauser] p. 98.  This is
         Hilbert's axiom III.4 for geometry.  Akin to a uniqueness theorem,
         this states that if two points ` X ` and ` Y ` both fulfill the
         conditions, then they are on the same half-line.  (Contributed by
         Thierry Arnoux, 9-Aug-2020.) $)
      acopyeu $p |- ( ph -> X ( K ` E ) Y ) $=
        ( vd vx vy vt vu vv vw va vb cv cfv wbr co wceq wcel cs3 ccgrg ad2antrr
        wa ad3antrrr simplr cstrkg cdif wrex copab wo wn simprl ncolncol simprr
        hlln hlne1 tgcgrcomlr eqcomd simpl eleq1d simpr anbi12d oveq12d eleq12d
        cbvrexdva cbvopabv simpllr simprll simprrl ncolne1 tgelrnln tglinerflx2
        simpll crn tglinethru eqeltrrd eqcomi eleqtrd ncolrot2 cgrancol ncolcom
        ad5antr simprlr pm2.45 syl eleq2d mtbid hphl fveq2d breqd mpbid simprrr
        chpg hpgtr trgcopyeulem eqbrtrrd hlcomd hltr cgrahl1 wne iscgra1 reeanv
        ccgra sylanbrc r19.29vva necomd hlcgrex r19.29a ) AUPVEZEGKVFZVGZGYTMVH
        CBMVHVIZVNZNOUUAVGZUPFAYTFVJZVNZUUDVNZBCDVKZYTGUQVEZVKIVLVFZVGZUUJNUUAV
        GZVNZUUIYTGURVEZVKUUKVGZUUOOUUAVGZVNZVNZUUEUQURFFUUHUUJFVJZVNZUUOFVJZVN
        ZUUSVNZNUUOOGFIJKPQUKUUHNFVJZUUTUVBUUSAUVEUUFUUDUIVMZVOZUVAUVBUUSVPZUUH
        OFVJZUUTUVBUUSAUVIUUFUUDUJVMZVOZUUHIVQVJZUUTUVBUUSAUVLUUFUUDSVMZVOZUUHG
        FVJZUUTUVBUUSAUVOUUFUUDUDVMZVOZUVDUUONGFIJKVQPQUKUVHUVGUVQUVNUVDUUJUUON
        UUAUVDUSBCDYTFGHIJKLMUTVEZFYTGLVHZVRZVJZVAVEZUVTVJZVNZVBVEZUVRUWBJVHZVJ
        ZVBUVSVSZVNZUTVAVTZUUJUUOVCVDPRQUFUKUVNUUHBFVJZUUTUVBUUSAUWKUUFUUDTVMZV
        OUUHCFVJZUUTUVBUUSAUWMUUFUUDUAVMZVOUUHDFVJZUUTUVBUUSAUWOUUFUUDUBVMZVOUU
        HUUFUUTUVBUUSAUUFUUDVPZVOUVQUUHHFVJZUUTUVBUUSAUWRUUFUUDUEVMZVOZUUHBCDLV
        HVJCDVIWAWBZUUTUVBUUSAUXAUUFUUDUGVMVOUUHYTGHLVHZVJGHVIZWAWBUUTUVBUUSUUH
        EGHYTFIJLPQUFUVMAEFVJZUUFUUDUCVMZUVPUWSUWQAEUXBVJUXCWAWBUUFUUDUHVMUUHYT
        EGFIJKLPQUKUWQUXEUVPUVMUFUUGUUBUUCWCZWFZUUHYTEGFIJKVQPQUKUWQUXEUVPUVMUX
        FWGZWDVOUUHBCMVHZYTGMVHZVIUUTUVBUUSUUHUXJUXIUUHGYTCBFIJMPRQUVMUVPUWQUWN
        UWLUUGUUBUUCWEWHWIZVOUWIVCVEZUVTVJZVDVEZUVTVJZVNZUSVEZUXLUXNJVHZVJZUSUV
        SVSZVNZUTVAVCVDUVRUXLVIZUWBUXNVIZVNZUWDUXPUWHUXTUYDUWAUXMUWCUXOUYDUVRUX
        LUVTUYBUYCWJWKUYDUWBUXNUVTUYBUYCWLWKWMUYDUWGUXSVBUSUVSUYDUWEUXQVIZVNZUW
        EUXQUWFUXRUYDUYEWLUYFUVRUXLUWBUXNJUYBUYCUYEXDUYBUYCUYEVPWNWOWPWMWQZUUHU
        UTUVBUUSWRZUVHUVCUULUUMUURWSUVCUUNUUPUUQWTUVDVBUUJNHUVSFIJLUYAVCVDVTZUT
        VAPQUFUVNUUHUVSLXEZVJUUTUVBUUSUUHEGLVHZUVSUYJUUHUYKFYTGIJLPQUFUVMUWQUVP
        UXHUXHAUYKUYJVJUUFUUDAFIJLEGPQUFSUCUDAFIJLEGHPQUFSUCUDUEUHXAZXBVMZUXGAG
        UYKVJUUFUUDAFEGIJLPQUFSUCUDUYLXCVMZXFZUYMXGVOZUYHUWJUYIUYGXHZUVGUVDUSGU
        UJNUVSFIJKLUWJVCVDPQUFUVNUYPUVQUYGUKUUHGUVSVJUUTUVBUUSUUHGUYKUVSUYNUYOX
        IVOZUYHUVGUVDUUJUYKVJZUUJUVSVJUVDUYSEGVIZWAWBUYSWBUVDFIJLGEUUJPUFQUVNUV
        QUUHUXDUUTUVBUUSUXEVOZUYHUVDNGEUUJFIJLPQUFUVNUVGUVQVUAUYHANGELVHZVJGEVI
        ZWAWBUUFUUDUUTUVBUUSAFIJLEGNPUFQSUCUDUIABCDEFGNIJLMPQRSTUAUBUCUDUIULUFA
        FIJLCDBPUFQSUAUBTUGXJZXKXLXMUVDUUJNGFIJKLPQUKUYHUVGUVQUVNUFUVCUULUUMUUR
        XNZWFUVDUUJNGFIJKVQPQUKUYHUVGUVQUVNVUEWGWDXLUYSUYTXOXPUVDUYKUVSUUJUUHUY
        KUVSVIUUTUVBUUSUYOVOZXQXRVUEXSUWTUVDNHUYKIYDVFZVFZVGZNHUVSVUGVFZVGAVUIU
        UFUUDUUTUVBUUSUNXMUVDVUHVUJNHUUHVUHVUJVIUUTUVBUUSUUHUYKUVSVUGUYOXTVOZYA
        YBYEUVDVBUUOOHUVSFIJLUYIUTVAPQUFUVNUYPUVHUYQUVKUVDUSGUUOOUVSFIJKLUWJVCV
        DPQUFUVNUYPUVQUYGUKUYRUVHUVKUVDUUOUYKVJZUUOUVSVJUVDVULUYTWAWBVULWBUVDFI
        JLGEUUOPUFQUVNUVQVUAUVHUVDOGEUUOFIJLPQUFUVNUVKUVQVUAUVHAOVUBVJVUCWAWBUU
        FUUDUUTUVBUUSAFIJLEGOPUFQSUCUDUJABCDEFGOIJLMPQRSTUAUBUCUDUJUMUFVUDXKXLX
        MUVDUUOOGFIJKLPQUKUVHUVKUVQUVNUFUVCUUNUUPUUQYCZWFUVDUUOOGFIJKVQPQUKUVHU
        VKUVQUVNVUMWGWDXLVULUYTXOXPUVDUYKUVSUUOVUFXQXRVUMXSUWTUVDOHVUHVGZOHVUJV
        GAVUNUUFUUDUUTUVBUUSUOXMUVDVUHVUJOHVUKYAYBYEYFVUEYGYHVUMYIUUHUUNUQFVSZU
        URURFVSZUUSURFVSUQFVSUUHUUIYTGNVKIYNVFZVGVUOUUHBCDEFGNIJKYTPQUKUVMUWLUW
        NUWPUXEUVPUVFAUUIEGNVKVUQVGUUFUUDULVMUWQUXFYJUUHUQBCDYTFGNIJKMPQUKUVMUW
        LUWNUWPUWQUVPUVFRABCYKUUFUUDAFIJLBCDPQUFSTUAUBUGXAZVMZUXKYLYBUUHUUIYTGO
        VKVUQVGVUPUUHBCDEFGOIJKYTPQUKUVMUWLUWNUWPUXEUVPUVJAUUIEGOVKVUQVGUUFUUDU
        MVMUWQUXFYJUUHURBCDYTFGOIJKMPQUKUVMUWLUWNUWPUWQUVPUVJRVUSUXKYLYBUUNUURU
        QURFFYMYOYPAUPGCBEFIJKMPQUKUDUATSUCRUYLABCVURYQYRYS $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Angle Comparisons
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c inA leA $.

  $( Extend class relation with the geometrical "point in angle" relation. $)
  cinag $a class inA $.

  $( Extend class relation with the "angle less than" relation. $)
  cleag $a class leA $.

  ${
    $d g p t x $.
    $( Definition of the geometrical "in angle" relation.  (Contributed by
       Thierry Arnoux, 15-Aug-2020.) $)
    df-inag $a |- inA = ( g e. _V |-> { <. p , t >. | ( ( p e. ( Base ` g )
     /\ t e. ( ( Base ` g ) ^m ( 0 ..^ 3 ) ) ) /\ ( ( ( t ` 0 ) =/= ( t ` 1 )
       /\ ( t ` 2 ) =/= ( t ` 1 ) /\ p =/= ( t ` 1 ) )
     /\ E. x e. ( Base ` g ) ( x e. ( ( t ` 0 ) ( Itv ` g ) ( t ` 2 ) )
       /\ ( x = ( t ` 1 ) \/ x ( ( hlG ` g ) ` ( t ` 1 ) ) p ) ) ) ) } ) $.
  $}

  ${
    $d A p t x $.  $d B p t x $.  $d C p t x $.  $d G g p t x $.  $d I g p t $.
    $d K g p t $.  $d P g p t x $.  $d X p t x $.  $d ph x $.
    isinag.p $e |- P = ( Base ` G ) $.
    isinag.i $e |- I = ( Itv ` G ) $.
    isinag.k $e |- K = ( hlG ` G ) $.
    isinag.x $e |- ( ph -> X e. P ) $.
    isinag.a $e |- ( ph -> A e. P ) $.
    isinag.b $e |- ( ph -> B e. P ) $.
    isinag.c $e |- ( ph -> C e. P ) $.
    ${
      isinag.g $e |- ( ph -> G e. V ) $.
      $( Property for point ` X ` to lie in the angle ` <" A B C "> ` Defnition
         11.23 of [Schwabhauser] p. 101.  (Contributed by Thierry Arnoux,
         15-Aug-2020.) $)
      isinag $p |- ( ph -> ( X ( inA ` G ) <" A B C ">
       <-> ( ( A =/= B /\ C =/= B /\ X =/= B )
         /\ E. x e. P ( x e. ( A I C ) /\ ( x = B \/ x ( K ` B ) X ) ) ) ) ) $=
        ( wcel vp vt vg cs3 cv cc0 c3 cfzo co cmap wa cfv c1 wne c2 w3a wceq wo
        wbr wrex copab cinag simpr fveq1d neeq12d simpl 3anbi123d eqidd oveq12d
        eleq12d eqeq12d fveq2d breq123d orbi12d anbi12d rexbidv eqid brab2a a1i
        wb biidd s3fv0 syl s3fv1 s3fv2 neeq2d eleq2d eqeq2d breqd bitrd cvv cbs
        elex citv fveq2 syl6eqr oveq1d orbi2d rexeqbidv anbi2d opabbidv df-inag
        chlg oveqd fvex eqeltri ovex xpex opabssxp ssexi fvmpt 3syl cword chash
        cxp s3cld s3len jca cn0 3nn0 wrdmap mp2an sylib biantrurd 3bitr4d ) AKC
        DEUDZUAUEZFTZUBUEZFUFUGUHUIZUJUIZTZUKZUFYIULZUMYIULZUNZUOYIULZYOUNZYGYO
        UNZUPZBUEZYNYQHUIZTZUUAYOUQZUUAYGYOIULZUSZURZUKZBFUTZUKZUKZUAUBVAZUSZKF
        TZYFYKTZUKZCDUNZEDUNZKDUNZUPZUUACEHUIZTZUUADUQZUUAKDIULZUSZURZUKZBFUTZU
        KZUKZKYFGVBULZUSUVIAUUMUUPUFYFULZUMYFULZUNZUOYFULZUVMUNZKUVMUNZUPZUUAUV
        LUVOHUIZTZUUAUVMUQZUUAKUVMIULZUSZURZUKZBFUTZUKZUKZUVJUUMUWHVTAUUJUWGUAU
        BKYFFYKUULYGKUQZYIYFUQZUKZYTUVRUUIUWFUWKYPUVNYRUVPYSUVQUWKYNUVLYOUVMUWK
        UFYIYFUWIUWJVCZVDZUWKUMYIYFUWLVDZVEUWKYQUVOYOUVMUWKUOYIYFUWLVDZUWNVEUWK
        YGKYOUVMUWIUWJVFZUWNVEVGUWKUUHUWEBFUWKUUCUVTUUGUWDUWKUUAUUAUUBUVSUWKUUA
        VHZUWKYNUVLYQUVOHUWMUWOVIVJUWKUUDUWAUUFUWCUWKUUAUUAYOUVMUWQUWNVKUWKUUAU
        UAYGKUUEUWBUWQUWKYOUVMIUWNVLUWPVMVNVOVPVOUULVQVRVSAUUPUUPUWGUVIAUUPWAAU
        VRUUTUWFUVHAUVNUUQUVPUURUVQUUSAUVLCUVMDACFTUVLCUQPCDEFWBWCZADFTUVMDUQQC
        DEFWDWCZVEAUVOEUVMDAEFTUVOEUQRCDEFWEWCZUWSVEAUVMDKUWSWFVGAUWEUVGBFAUVTU
        VBUWDUVFAUVSUVAUUAAUVLCUVOEHUWRUWTVIWGAUWAUVCUWCUVEAUVMDUUAUWSWHAUWBUVD
        UUAKAUVMDIUWSVLWIVNVOVPVOVOWJAUVKUULKYFAGJTGWKTUVKUULUQSGJWMUCGYGUCUEZW
        LULZTZYIUXBYJUJUIZTZUKZYTUUAYNYQUXAWNULZUIZTZUUDUUAYGYOUXAXCULZULZUSZUR
        ZUKZBUXBUTZUKZUKZUAUBVAUULWKVBUXAGUQZUXQUUKUAUBUXRUXFYMUXPUUJUXRUXCYHUX
        EYLUXRUXBFYGUXRUXBGWLULZFUXAGWLWOLWPZWGUXRUXDYKYIUXRUXBFYJUJUXTWQWGVOUX
        RUXOUUIYTUXRUXNUUHBUXBFUXTUXRUXIUUCUXMUUGUXRUXHUUBUUAUXRUXGHYNYQUXRUXGG
        WNULHUXAGWNWOMWPXDWGUXRUXLUUFUUDUXRUXKUUEUUAYGUXRYOUXJIUXRUXJGXCULIUXAG
        XCWONWPVDWIWRVOWSWTVOXABUBUCUAXBUULFYKXOFYKFUXSWKLGWLXEXFZFYJUJXGXHUUJU
        AUBFYKXIXJXKXLWIAUUPUVIAUUNUUOOAYFFXMTZYFXNULUGUQZUKZUUOAUYBUYCACDEFPQR
        XPUYCACDEXQVSXRFWKTUGXSTUYDUUOVTUYAXTUGFYFWKYAYBYCXRYDYE $.
    $}

    inagswap.g $e |- ( ph -> G e. TarskiG ) $.
    inagswap.1 $e |- ( ph -> X ( inA ` G ) <" A B C "> ) $.
    $( Swap the order of the half lines delimiting the angle.  Theorem 11.24 of
       [Schwabhauser] p. 101.  (Contributed by Thierry Arnoux, 15-Aug-2020.) $)
    inagswap $p |- ( ph -> X ( inA ` G ) <" C B A "> ) $=
      ( vx wcel cs3 cinag cfv wbr wne cv co wceq wo wa wrex cstrkg isinag mpbid
      w3a simpld simp2d simp1d simp3d 3jca simprd cds eqid 3ad2ant1 simp2 simp3
      tgbtwncom 3expia anim1d reximdva mpd jca mpbird ) AIDCBUAFUBUCZUDDCUEZBCU
      EZICUEZUOZSUFZDBGUGTZVSCUHVSICHUCUDUIZUJZSEUKZUJAVRWCAVOVPVQAVPVOVQAVPVOV
      QUOZVSBDGUGTZWAUJZSEUKZAIBCDUAVNUDWDWGUJRASBCDEFGHULIJKLMNOPQUMUNZUPZUQAV
      PVOVQWIURAVPVOVQWIUSUTAWGWCAWDWGWHVAAWFWBSEAVSETZUJWEVTWAAWJWEVTAWJWEUOBV
      SDEFGFVBUCZJWKVCKAWJFULTWEQVDAWJBETWENVDAWJWEVEAWJDETWEPVDAWJWEVFVGVHVIVJ
      VKVLASDCBEFGHULIJKLMPONQUMVM $.

    ${
      $d x y z $.  $d A y z $.  $d B y z $.  $d C y z $.  $d D x y z $.
      $d F x y z $.  $d G y z $.  $d I x y z $.  $d K x y z $.  $d P x y z $.
      $d X y z $.  $d Y x y z $.  $d ph y z $.
      inaghl.d $e |- ( ph -> D e. P ) $.
      inaghl.f $e |- ( ph -> F e. P ) $.
      inaghl.y $e |- ( ph -> Y e. P ) $.
      inaghl.1 $e |- ( ph -> D ( K ` B ) A ) $.
      inaghl.2 $e |- ( ph -> F ( K ` B ) C ) $.
      inaghl.3 $e |- ( ph -> Y ( K ` B ) X ) $.
      $( The "point lie in angle" relation is independent of the points chosen
         on the half lines starting from ` B ` .  Theorem 11.25 of
         [Schwabhauser] p. 101.  (Contributed by Thierry Arnoux,
         27-Sep-2020.) $)
      inaghl $p |- ( ph -> Y ( inA ` G ) <" D B F "> ) $=
        ( vy vx vz cs3 cinag cfv wbr wne w3a cv co wcel wceq wo wa cstrkg hlne1
        wrex 3jca adantr wb eleq1 eqeq1 breq1 orbi12d anbi12d adantl hlcomd cds
        eqid simpr tgbtwncom btwnhl eqidd jca rspcedvd wn simpllr eleq1d eqeq1d
        orcd breq1d ad4antr simplr eqeltrrd eqeltrd ad6antr simprl hlne2 simprr
        ad2antrr hlpasch ad8antr simp-5r hltr simpld ex reximdva r19.29a jaodan
        olcd mpd anasss isinag mpbid simprd pm2.61dan mpbird ) ALECGUKHULUMZUNE
        CUOZGCUOZLCUOZUPZUHUQZEGIURZUSZYACUTZYALCJUMZUNZVAZVBZUHFVEZVBAXTYIAXQX
        RXSAEBCFHIJVCMNOUBQRTUEVDAGDCFHIJVCMNOUCSRTUFVDALKCFHIJVCMNOUDPRTUGVDVF
        ACBDIURZUSZYIAYKVBZYHCYBUSZCCUTZCLYEUNZVAZVBZUHCFACFUSZYKRVGZYDYHYQVHYL
        YDYCYMYGYPYACYBVIYDYDYNYFYOYACCVJYACLYEVKVLVMVNYLYMYPYLBEGCFHIJMNOABFUS
        ZYKQVGZAEFUSZYKUBVGAGFUSZYKUCVGZAHVCUSZYKTVGZYSABEYEUNZYKAEBCFHIJVCMNOU
        BQRTUEVOZVGYLGCBFHIHVPUMZMUUIVQZNUUFUUDYSUUAYLDGBCFHIJMNOADFUSZYKSVGZUU
        DUUAUUFYSADGYEUNZYKAGDCFHIJVCMNOUCSRTUFVOZVGYLBCDFHIUUIMUUJNUUFUUAYSUUL
        AYKVRVSVTVSVTYLYNYOYLCWAWHWBWCAYKWDZVBZUIUQZYJUSZUUQCUTZUUQKYEUNZVAZVBZ
        YIUIFUUPUUQFUSZVBZUURUVAYIUVDUURVBZUUSYIUUTUVEUUSVBZYHUUQYBUSZUUSUUQLYE
        UNZVAZVBUHUUQFUUPUVCUURUUSWEZUVFYAUUQUTZVBZYCUVGYGUVIUVLYAUUQYBUVFUVKVR
        ZWFUVLYDUUSYFUVHUVLYAUUQCUVMWGUVLYAUUQLYEUVMWIVLVMUVFUVGUVIUVFUUQCYBUVE
        UUSVRZUVFBEGCFHIJMNOAYTUUOUVCUURUUSQWJZAUUBUUOUVCUURUUSUBWJAUUCUUOUVCUU
        RUUSUCWJZAUUEUUOUVCUURUUSTWJZAYRUUOUVCUURUUSRWJZAUUGUUOUVCUURUUSUUHWJUV
        FGCBFHIUUIMUUJNUVQUVPUVRUVOUVFDGBCFHIJMNOAUUKUUOUVCUURUUSSWJZUVPUVOUVQU
        VRAUUMUUOUVCUURUUSUUNWJUVFUUQCDBIURUVNUVFBUUQDFHIUUIMUUJNUVQUVOUVJUVSUV
        DUURUUSWKVSWLVTVSVTWMUVFUUSUVHUVNWHWBWCUVEUUTVBZUUQUJUQZYEUNZUWADEIURUS
        ZVBZYIUJFUVTUWAFUSZVBZUWDVBZUWAYAYEUNZYCVBZUHFVEYIUWGUWACDGFUHHIJEMNOUV
        TUUEUWEUWDAUUEUUOUVCUURUUTTWJZWRZUVTUWEUWDWKZUVTYRUWEUWDAYRUUOUVCUURUUT
        RWJZWRZUVTUUKUWEUWDAUUKUUOUVCUURUUTSWJZWRZUVTUUBUWEUWDAUUBUUOUVCUURUUTU
        BWJZWRZAUUCUUOUVCUURUUTUWEUWDUCWNUWGUUQUWACFHIJVCMNOUVTUVCUWEUWDUUPUVCU
        URUUTWEZWRUWLUWNUWKUWFUWBUWCWOWPAUUMUUOUVCUURUUTUWEUWDUUNWNUWGDUWAEFHIU
        UIMUUJNUWKUWPUWLUWRUWFUWBUWCWQVSWSUWGUWIYHUHFUWGYAFUSZVBZUWIYHUXAUWIVBZ
        YCYGUXAUWHYCWQUXBYFYDUXBYAUWALCFHIJMNOUWGUWTUWIWKZUWGUWEUWTUWIUWLWRZALF
        USUUOUVCUURUUTUWEUWDUWTUWIUDWTZUWGUUEUWTUWIUWKWRZUWGYRUWTUWIUWNWRZUXBUW
        AYACFHIJVCMNOUXDUXCUXGUXFUXAUWHYCWOVOUXBLUWACFHIJVCMNOUXEUXDUXGUXFUXBLU
        UQUWACFHIJMNOUXEUVTUVCUWEUWDUWTUWIUWSWJZUXDUXFUXGUXBLKUUQCFHIJMNOUXEAKF
        USZUUOUVCUURUUTUWEUWDUWTUWIPWTZUXHUXFUXGALKYEUNUUOUVCUURUUTUWEUWDUWTUWI
        UGWTUXBUUQKCFHIJVCMNOUXHUXJUXGUXFUVEUUTUWEUWDUWTUWIXAVOXBUXBUWBUWCUWFUW
        DUWTUWIWEXCXBVOXBXHWBXDXEXIUVTUUQCBEFUJHIJDMNOUWJUWSUWMAYTUUOUVCUURUUTQ
        WJZUWOUWQUVTUUQKCFHIJVCMNOUWSAUXIUUOUVCUURUUTPWJUWMUWJUVEUUTVRVDAUUGUUO
        UVCUURUUTUUHWJUVTBUUQDFHIUUIMUUJNUWJUXKUWSUWOUVDUURUUTWKVSWSXFXGXJAUVBU
        IFVEZUUOABCUODCUOKCUOUPZUXLAKBCDUKXPUNUXMUXLVBUAAUIBCDFHIJVCKMNOPQRSTXK
        XLXMVGXFXNWBAUHECGFHIJVCLMNOUDUBRUCTXKXO $.
    $}
  $}

  ${
    $d a b g x $.
    $( Definition of the geometrical "angle less than" relation.  Definition
       11.27 of [Schwabhauser] p. 102.  (Contributed by Thierry Arnoux,
       7-Oct-2020.) $)
    df-leag $a |- leA = ( g e. _V |-> { <. a , b >. | ( ( a e. ( ( Base ` g )
      ^m ( 0 ..^ 3 ) ) /\ b e. ( ( Base ` g ) ^m ( 0 ..^ 3 ) ) ) /\ E. x e. (
      Base ` g ) ( x ( inA ` g ) <" ( b ` 0 ) ( b ` 1 ) ( b ` 2 ) "> /\ <" ( a
      ` 0 ) ( a ` 1 ) ( a ` 2 ) "> ( cgrA ` g ) <" ( b ` 0 ) ( b ` 1 ) x "> ) )
      } ) $.
  $}

  ${
    $d A a b x $.  $d B a b x $.  $d C a b x $.  $d D a b x $.  $d E a b x $.
    $d F a b x $.  $d G a b g x $.  $d P a b g x $.  $d ph x $.
    isleag.p $e |- P = ( Base ` G ) $.
    isleag.g $e |- ( ph -> G e. TarskiG ) $.
    isleag.a $e |- ( ph -> A e. P ) $.
    isleag.b $e |- ( ph -> B e. P ) $.
    isleag.c $e |- ( ph -> C e. P ) $.
    isleag.d $e |- ( ph -> D e. P ) $.
    isleag.e $e |- ( ph -> E e. P ) $.
    isleag.f $e |- ( ph -> F e. P ) $.
    $( Geometrical "less than" property for angles.  Definition 11.27 of
       [Schwabhauser] p. 102.  (Contributed by Thierry Arnoux, 7-Oct-2020.) $)
    isleag $p |- ( ph -> ( <" A B C "> ( leA ` G ) <" D E F ">
      <-> E. x e. P ( x ( inA ` G ) <" D E F ">
        /\ <" A B C "> ( cgrA ` G ) <" D E x "> ) ) ) $=
      ( cfv wcel va vb vg cs3 cleag wbr cc0 c3 cfzo co cmap wa cinag ccgra wrex
      cv c1 c2 copab cstrkg cvv wceq elex cbs fveq2 syl6eqr oveq1d eleq2d breqd
      anbi12d rexeqbidv opabbidv cxp ovex xpexg mp2an opabssxp ssexi fvmpt 3syl
      df-leag simpr fveq1d s3eqd breq2d simpl eqidd breq12d rexbidv eqid brab2a
      wb a1i s3fv0 syl s3fv1 s3fv2 anbi2d 3bitrd cword chash s3cld jca cn0 fvex
      s3len eqeltri 3nn0 wrdmap sylib biantrurd bitr4d ) ACDEUDZFHIUDZJUESZUFZX
      MGUGUHUIUJZUKUJZTZXNXRTZULZBUPZXNJUMSZUFZXMFHYBUDZJUNSZUFZULZBGUOZULZYIAX
      PXMXNUAUPZXRTZUBUPZXRTZULZYBUGYMSZUQYMSZURYMSZUDZYCUFZUGYKSZUQYKSZURYKSZU
      DZYPYQYBUDZYFUFZULZBGUOZULZUAUBUSZUFZYAYBUGXNSZUQXNSZURXNSZUDZYCUFZUGXMSZ
      UQXMSZURXMSZUDZUULUUMYBUDZYFUFZULZBGUOZULZYJAXOUUJXMXNAJUTTJVATXOUUJVBLJU
      TVCUCJYKUCUPZVDSZXQUKUJZTZYMUVHTZULZYBYSUVFUMSZUFZUUDUUEUVFUNSZUFZULZBUVG
      UOZULZUAUBUSUUJVAUEUVFJVBZUVRUUIUAUBUVSUVKYOUVQUUHUVSUVIYLUVJYNUVSUVHXRYK
      UVSUVGGXQUKUVSUVGJVDSZGUVFJVDVEKVFZVGZVHUVSUVHXRYMUWBVHVJUVSUVPUUGBUVGGUW
      AUVSUVMYTUVOUUFUVSUVLYCYBYSUVFJUMVEVIUVSUVNYFUUDUUEUVFJUNVEVIVJVKVJVLBUCU
      AUBWAUUJXRXRVMZXRVATZUWDUWCVATGXQUKVNZUWEXRXRVAVAVOVPUUHUAUBXRXRVQVRVSVTV
      IUUKUVEWLAUUHUVDUAUBXMXNXRXRUUJYKXMVBZYMXNVBZULZUUGUVCBGUWHYTUUPUUFUVBUWH
      YSUUOYBYCUWHYPYQYRUUNUULUUMUWHUGYMXNUWFUWGWBZWCZUWHUQYMXNUWIWCZUWHURYMXNU
      WIWCWDWEUWHUUDUUTUUEUVAYFUWHUUAUUBUUCUUSUUQUURUWHUGYKXMUWFUWGWFZWCUWHUQYK
      XMUWLWCUWHURYKXMUWLWCWDUWHYPYQYBYBUULUUMUWJUWKUWHYBWGWDWHVJWIUUJWJWKWMAUV
      DYIYAAUVCYHBGAUUPYDUVBYGAUUOXNYBYCAUULUUMUUNIFHAFGTUULFVBPFHIGWNWOZAHGTUU
      MHVBQFHIGWPWOZAIGTUUNIVBRFHIGWQWOWDWEAUUTXMUVAYEYFAUUQUURUUSECDACGTUUQCVB
      MCDEGWNWOADGTUURDVBNCDEGWPWOAEGTUUSEVBOCDEGWQWOWDAUULUUMYBYBFHUWMUWNAYBWG
      WDWHVJWIWRWSAYAYIAXSXTAXMGWTZTZXMXASUHVBZULZXSAUWPUWQACDEGMNOXBUWQACDEXFW
      MXCGVATZUHXDTZUWRXSWLGUVTVAKJVDXEXGZXHUHGXMVAXIVPXJAXNUWOTZXNXASUHVBZULZX
      TAUXBUXCAFHIGPQRXBUXCAFHIXFWMXCUWSUWTUXDXTWLUXAXHUHGXNVAXIVPXJXCXKXL $.

    ${
      $d x y $.  $d A y $.  $d B y $.  $d C y $.  $d D y $.  $d E y $.
      $d F y $.  $d G y $.  $d L x y $.  $d P y $.  $d X x y $.  $d ph y $.
      cgrg3col4.l $e |- L = ( LineG ` G ) $.
      cgrg3col4.x $e |- ( ph -> X e. P ) $.
      cgrg3col4.1 $e |- ( ph -> <" A B C "> ( cgrG ` G ) <" D E F "> ) $.
      cgrg3col4.2 $e |- ( ph -> ( X e. ( A L C ) \/ A = C ) ) $.
      $( Lemma 11.28 of [Schwabhauser] p. 102.  Extend a congruence of three
         points with a fourth colinear point.  (Contributed by Thierry Arnoux,
         8-Oct-2020.) $)
      cgrg3col4 $p |-
        ( ph -> E. y e. P <" A B C X "> ( cgrG ` G ) <" D E F y "> ) $=
        ( vx cs4 cv ccgrg cfv wbr wrex wceq wa co wcel cs3 citv cds eqid cstrkg
        wo ad2antrr simpr cgr3simp1 lnext simplr cgr3simp3 tgcgrcomlr cgr3simp2
        w3a ad4antr ad3antrrr oveq2d adantr tgcgreq 3eqtr3d jca tgcgr4 reximdva
        3jca mpbird ex mpd wn chpg chlg wne necomd tgcgrneq neneqd ioran sylibr
        ncolne1 ncolcom ncolrot1 trgcopy ad6antr ad5antr ncoltgdim2 tglowdim2ln
        simp-6r adantrd r19.29a pm2.61dan colrot1 simpllr tgfscgr pm2.61dane
        colcom ) ACDELUFFHIBUGZUFJUHUIZUJZBGUKZCEACEULZUMZDCLKUNZUOCLULZVAZXMXO
        XRUMZCDLUPFHXJUPXKUJZBGUKXMXSFHGXKJJUQUIZKJURUIZCDLBMUAYAUSZAJUTUOZXNXR
        NVBZACGUOZXNXROVBZADGUOZXNXRPVBZALGUOZXNXRUBVBZXKUSZAFGUOZXNXRRVBZAHGUO
        ZXNXRSVBZYBUSZXOXRVCACDYBUNFHYBUNULZXNXRACDEFGXKHIJYAYBMYQYCYLNOPQRSTUC
        VDZVBVEXSXTXLBGXSXJGUOZUMZXTXLUUAXTUMZXLCDEUPFHIUPXKUJZCLYBUNFXJYBUNULZ
        DLYBUNHXJYBUNULZELYBUNIXJYBUNULZVJZUMZUUBUUCUUGAUUCXNXRYTXTUCVKUUBUUDUU
        EUUFUUBLCXJFGJYAYBMYQYCXSYDYTXTYEVBZXSYJYTXTYKVBZXSYFYTXTYGVBZXSYTXTVFZ
        XSYMYTXTYNVBZUUBCDLFGXKHXJJYAYBMYQYCYLUUIUUKXSYHYTXTYIVBZUUJUUMXSYOYTXT
        YPVBZUULUUAXTVCZVGZVHUUBCDLFGXKHXJJYAYBMYQYCYLUUIUUKUUNUUJUUMUUOUULUUPV
        IUUBLEXJIGJYAYBMYQYCUUIUUJAEGUOZXNXRYTXTQVKZUULAIGUOZXNXRYTXTTVKZUUBLCY
        BUNZXJFYBUNZLEYBUNZXJIYBUNZUUQUUBCELYBXOXNXRYTXTAXNVCZVLVMUUBFIXJYBXOFI
        ULZXRYTXTXOCEFIGJYAYBMYQYCAYDXNNVNZAYFXNOVNZAUURXNQVNZAYMXNRVNZAUUTXNTV
        NZACEYBUNFIYBUNULXNAECIFGJYAYBMYQYCNQOTRACDEFGXKHIJYAYBMYQYCYLNOPQRSTUC
        VGVHZVNUVFVOZVLVMVPVHVTVQUUBCDELGXKJYAYBFHIXJMYQYCYLUUIUUKUUNUUSUUJUUMU
        UOUVAUULVRWAWBVSWCXOXRWDZUMZUEUGZFHKUNUOZWDZXMUEGUVPUVQGUOZUMZUVSUMZDCL
        UPHFXJUPXKUJZXJUVQHFKUNJWEUIUIUJZUMZBGUKXMUWBDCLHGBFUVQJYAJWFUIZKYBMYQY
        CUAUWFUSUVPYDUVTUVSXOYDUVOUVHVNZVBZUVPYHUVTUVSAYHXNUVOPVBZVBZUVPYFUVTUV
        SXOYFUVOUVIVNZVBZUVPYJUVTUVSAYJXNUVOUBVBZVBZUVPYOUVTUVSAYOXNUVOSVBZVBZU
        VPYMUVTUVSXOYMUVOUVKVNZVBZUVPUVTUVSVFZUVPUVOUVTUVSXOUVOVCZVBUWBGJYAKHFU
        VQMUAYCUWHUWPUWRUWSUWBGJYAKFHUVQMUAYCUWHUWRUWPUWSUWBUVSFHULZWDZUMUVRUXA
        VAWDUWBUVSUXBUWAUVSVCUWBFHUVPFHWGUVTUVSUVPCDFHGJYAYBMYQYCUWGUWKUWIUWQUW
        OAYRXNUVOYSVBUVPDCUVPGJYAKDCLMYCUAUWGUWIUWKUWMUWTWMWHWIZVBWJVQUVRUXAWKW
        LWNWOADCYBUNHFYBUNULXNUVOUVTUVSACDFHGJYAYBMYQYCNOPRSYSVHVKWPUWBUWEXLBGU
        WBYTUMZUWCXLUWDUXDUWCXLUXDUWCUMZXLUUHUXEUUCUUGAUUCXNUVOUVTUVSYTUWCUCWQU
        XEUUDUUEUUFUXEDCLHGXKFXJJYAYBMYQYCYLUWBYDYTUWCUWHVBZUWBYHYTUWCUWJVBZUWB
        YFYTUWCUWLVBZUWBYJYTUWCUWNVBZUWBYOYTUWCUWPVBZUWBYMYTUWCUWRVBZUWBYTUWCVF
        ZUXDUWCVCZVIZUXELDXJHGJYAYBMYQYCUXFUXIUXGUXLUXJUXEDCLHGXKFXJJYAYBMYQYCY
        LUXFUXGUXHUXIUXJUXKUXLUXMVGVHUXELEXJIGJYAYBMYQYCUXFUXIXOUURUVOUVTUVSYTU
        WCUVJWRZUXLXOUUTUVOUVTUVSYTUWCUVLWRZUXEUVBUVCUVDUVEUXECLFXJGJYAYBMYQYCU
        XFUXHUXIUXKUXLUXNVHUXECELYBAXNUVOUVTUVSYTUWCXAVMUXEFIXJYBXOUVGUVOUVTUVS
        YTUWCUVNWRVMVPVHVTVQUXECDELGXKJYAYBFHIXJMYQYCYLUXFUXHUXGUXOUXIUXKUXJUXP
        UXLVRWAWBXBVSWCUVPFHGJYAKUEMYCUAUWGUVPGJYAKCLDMUAYCUWGUWKUWMUWIUWTWSUWQ
        UWOUXCWTXCXDACEWGZUMZCELUPFIXJUPXKUJZBGUKZXMAUXTUXQAFIGXKJYAKYBCELBMUAY
        CNOQUBYLRTYQAGJYAKECLMUAYCNQOUBAGJYAKCELMUAYCNOQUBUDXIXEZUVMVEVNUXRUXSX
        LBGUXRYTUMZUXSXLUYBUXSUMZXLUUHUYCUUCUUGAUUCUXQYTUXSUCVLUYCUUDUUEUUFUYCL
        CXJFGJYAYBMYQYCAYDUXQYTUXSNVLZAYJUXQYTUXSUBVLZAYFUXQYTUXSOVLZUXRYTUXSVF
        ZAYMUXQYTUXSRVLZUYCCELFGXKIXJJYAYBMYQYCYLUYDUYFAUURUXQYTUXSQVLZUYEUYHAU
        UTUXQYTUXSTVLZUYGUYBUXSVCZVGVHUYCLDXJHGJYAYBMYQYCUYDUYEAYHUXQYTUXSPVLZU
        YGAYOUXQYTUXSSVLZUYCFIXJHGXKDJYAKYBCELMUAYCUYDUYFUYIUYEYLUYHUYJYQUYLUYG
        UYMAEXPUOXQVAUXQYTUXSUYAVLUYKAYRUXQYTUXSYSVLAEDYBUNIHYBUNULUXQYTUXSADEH
        IGJYAYBMYQYCNPQSTACDEFGXKHIJYAYBMYQYCYLNOPQRSTUCVIVHVLAUXQYTUXSXFXGVHUY
        CCELFGXKIXJJYAYBMYQYCYLUYDUYFUYIUYEUYHUYJUYGUYKVIVTVQUYCCDELGXKJYAYBFHI
        XJMYQYCYLUYDUYFUYLUYIUYEUYHUYMUYJUYGVRWAWBVSWCXH $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Congruence Theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    tgsas.p $e |- P = ( Base ` G ) $.
    tgsas.m $e |- .- = ( dist ` G ) $.
    tgsas.i $e |- I = ( Itv ` G ) $.
    tgsas.g $e |- ( ph -> G e. TarskiG ) $.
    tgsas.a $e |- ( ph -> A e. P ) $.
    tgsas.b $e |- ( ph -> B e. P ) $.
    tgsas.c $e |- ( ph -> C e. P ) $.
    tgsas.d $e |- ( ph -> D e. P ) $.
    tgsas.e $e |- ( ph -> E e. P ) $.
    tgsas.f $e |- ( ph -> F e. P ) $.
    ${
      tgsas.1 $e |- ( ph -> ( A .- B ) = ( D .- E ) ) $.
      tgsas.2 $e |- ( ph -> <" A B C "> ( cgrA ` G ) <" D E F "> ) $.
      tgsas.3 $e |- ( ph -> ( B .- C ) = ( E .- F ) ) $.
      $( First congruence theorem:  SAS (Side-Angle-Side):  If two pairs of
         sides of two triangles are equal in length, and the included angles
         are equal in measurement, then third sides are equal in length.
         Theorem 11.49 of [Schwabhauser] p. 107.  (Contributed by Thierry
         Arnoux, 1-Aug-2020.) $)
      tgsas1 $p |- ( ph -> ( C .- A ) = ( F .- D ) ) $=
        ( chlg cfv eqid cgrane1 hlid cgrane2 necomd tgcgrcomlr cgracgr ) ABDEHF
        IJKLMNOPRSUAABCDEFGHIJIUEUFZKBDLNUNUGZOPQRSTUAUCPMRABBCFIJUNLNUOPPQOABC
        DEFGHIJUNLNUOOPQRSTUAUCUHUIADBCFIJUNLNUORPQOACDABCDEFGHIJUNLNUOOPQRSTUA
        UCUJUKUIABCEGFIJKLMNOPQSTUBULUDUMUL $.

      $( First congruence theorem:  SAS (Side-Angle-Side):  If two pairs of
         sides of two triangles are equal in length, and the included angles
         are equal in measurement, then the triangles are congruent.  Theorem
         11.49 of [Schwabhauser] p. 107.  (Contributed by Thierry Arnoux,
         1-Aug-2020.) $)
      tgsas $p |- ( ph -> <" A B C "> ( cgrG ` G ) <" D E F "> ) $=
        ( ccgrg cfv eqid tgsas1 trgcgr ) ABCDEFIUEUFZGHIKLMUJUGOPQRSTUAUBUDABCD
        EFGHIJKLMNOPQRSTUAUBUCUDUHUI $.

      tgsas2.4 $e |- ( ph -> A =/= C ) $.
      $( First congruence theorem:  SAS. Theorem 11.49 of [Schwabhauser]
         p. 107.  (Contributed by Thierry Arnoux, 1-Aug-2020.) $)
      tgsas2 $p |- ( ph -> <" C A B "> ( cgrA ` G ) <" F D E "> ) $=
        ( chlg eqid ccgrg tgsas cgr3rotr cgr3simp1 necomd tgcgrneq hlid cgrane3
        cfv iscgrad ) ADBCHFEGIJIUFUPZHGLNURUGZORPQUASTUATABCDEFIUHUPZGHIJKLMNU
        TUGZOPQRSTUAABCDEFGHIJKLMNOPQRSTUAUBUCUDUIUJZAHBEFIJURLNUSUAPSOADBHEFIJ
        KLMNORPUASADBCHFUTEGIJKLMNVAORPQUASTVBUKABDUEULUMUNAGBEFIJURLNUSTPSOABC
        DEFGHIJURLNUSOPQRSTUAUCUOUNUQ $.

      $( First congruence theorem:  SAS. Theorem 11.49 of [Schwabhauser]
         p. 107.  (Contributed by Thierry Arnoux, 1-Aug-2020.) $)
      tgsas3 $p |- ( ph -> <" B C A "> ( cgrA ` G ) <" E F D "> ) $=
        ( chlg cfv eqid ccgrg tgsas cgr3rotl hlid cgr3simp2 tgcgrcomlr tgcgrneq
        cgrane4 iscgrad ) ACDBGFHEIJIUFUGZGELNURUHZOQRPTUASTSABCDEFIUIUGZGHIJKL
        MNUTUHZOPQRSTUAABCDEFGHIJKLMNOPQRSTUAUBUCUDUJUKZAGBHFIJURLNUSTPUAOABCDE
        FGHIJURLNUSOPQRSTUAUCUPULAEBHFIJURLNUSSPUAOABDEHFIJKLMNOPRSUAADBHEFIJKL
        MNORPUASACDBGFUTHEIJKLMNVAOQRPTUASVBUMUNUEUOULUQ $.
    $}

    ${
      $d .- a b f w $.  $d A a b $.  $d B a b f w $.  $d C a b f w $.
      $d D a b t u v w $.  $d E a b f t u v w $.  $d F a b f u v w $.
      $d G a b f u v w $.  $d I a b f t u v w $.  $d L a b t u v w $.
      $d P a b f u v w $.  $d ph a b f w $.
      tgasa.l $e |- L = ( LineG ` G ) $.
      tgasa.1 $e |- ( ph -> -. ( C e. ( A L B ) \/ A = B ) ) $.
      tgasa.2 $e |- ( ph -> ( A .- B ) = ( D .- E ) ) $.
      tgasa.3 $e |- ( ph -> <" A B C "> ( cgrA ` G ) <" D E F "> ) $.
      tgasa.4 $e |- ( ph -> <" C A B "> ( cgrA ` G ) <" F D E "> ) $.
      $( Second congruence theorem:  ASA. (Angle-Side-Angle):  If two pairs of
         angles of two triangles are equal in measurement, and the included
         sides are equal in length, then the triangles are congruent.  Theorem
         11.50 of [Schwabhauser] p. 108.  (Contributed by Thierry Arnoux,
         15-Aug-2020.) $)
      tgasa1 $p |- ( ph -> ( B .- C ) = ( E .- F ) ) $=
        ( vf vw va vb vt vu vv cv chlg cfv wbr wceq wcel simprr cstrkg ad2antrr
        co wa wo cgrancol eqid simplr adantr cs3 ccgra cgracom ad3antrrr colcom
        simpr colrot1 cgracol pm2.65da ccgrg simprl cgrahl2 cgrane1 hlid necomd
        cgrane2 tgcgrcomlr eqcomd cgracgr wne ncolne1 tgcgrneq iscgrad cgraswap
        wn trgcgr cgratr cgrane3 cdif wrex copab tgelrnln simpl eleq12d anbi12d
        crn simpll oveq12d cbvrexdva cbvopabv tglinerflx1 ncolcom pm2.45 hlcomd
        eqidd syl hphl hpgcom chpg hpgid acopyeu hlln cgrane4 lncom tglinerflx2
        tglineinteq oveq2d eqtr3d hlcgrex r19.29a ) AUHUOZHGIUPUQZUQURZGYKLVDZC
        DLVDZUSZVEZYOGHLVDZUSUHFAYKFUTZVEZYQVEZYNYOYRYTYMYPVAZUUAYKHGLUUAHEGHFI
        JKYKHMOUCAIVBUTZYSYQPVCZAHFUTZYSYQUBVCZAEFUTZYSYQTVCZAGFUTZYSYQUAVCZUUF
        AHEGKVDUTEGUSVFWOYSYQABCDEFGHIJKLMONPQRSTUAUBUFUCUDVGZVCUUAYKHEFIJYLKMO
        YLVHZAYSYQVIZUUFUUHUUDUCUUADBCGFEHIJYLKLYKHMONUUDADFUTZYSYQSVCZABFUTZYS
        YQQVCZACFUTZYSYQRVCZUUJUUHUUFUCADBCKVDUTBCUSVFZWOZYSYQUDVCZUUAGEHKVDUTE
        HUSVFZUUTUUAUVCVEZEGHBFCDIJKLMONUUAUUCUVCUUDVJZUUAUUGUVCUUHVJZUUAUUIUVC
        UUJVJZUUAUUEUVCUUFVJZUUAUUPUVCUUQVJUUAUURUVCUUSVJUUAUUNUVCUUOVJAEGHVKZB
        CDVKZIVLUQZURYSYQUVCABCDEFGHIJYLMOPUULQRSTUAUBUFVMZVNUCUVDFIJKHEGMUCOUV
        EUVHUVFUVGUVDFIJKEHGMUCOUVEUVFUVHUVGUUAUVCVPVOVQVRUUAUVAUVCUVBVJVSUUMUU
        FUULUUADBCYKFEEGIGJYKYLMOUUDUULUUOUUQUUSUUMUUHUUJUUADBCYKFEGIJYLYKGMOUU
        LUUDUUOUUQUUSUUMUUHUUJUUMUUJUUADBCYKFIVTUQZEGILMNUVMVHUUDUUOUUQUUSUUMUU
        HUUJUUABDEYKFIJLMNOUUDUUQUUOUUHUUMUUABCDEFGYKIJYLLBDMOUULUUDUUQUUSUUOUU
        HUUJUUMUUABCDEFGHIJYLYKMOUULUUDUUQUUSUUOUUHUUJUUFAUVJUVIUVKURYSYQUFVCUU
        MYTYMYPWAZWBUUQNUUOABBCYLUQZURYSYQABBCFIJYLMOUULQQRPABCDEFGHIJYLMOUULPQ
        RSTUAUBUFWCWDVCADDUVOURYSYQADBCFIJYLMOUULSQRPACDABCDEFGHIJYLMOUULPQRSTU
        AUBUFWFZWEWDVCACBLVDGELVDUSYSYQABCEGFIJLMNOPQRTUAUEWGVCUUAYNYOUUBWHZWIW
        GZABCLVDEGLVDUSYSYQUEVCUVQWPUUAYKHEFIJYLMOUULUUMUUFUUHUUDUUADBYKEFIJLMN
        OUUDUUOUUQUUMUUHUVRADBWJYSYQAFIJKDBCMOUCPSQRUDWKVCWLZWDAGGEYLUQURYSYQAG
        BEFIJYLMOUULUAQTPAEGAEGHBFCDIJYLMOUULPTUAUBQRSUVLWCZWEZWDVCWMUUJUUHUUMU
        UAYKEGFIJYLMOUUDUULUUMUUHUUJUVSAEGWJYSYQUVTVCWNWQADBCVKGEHVKUVKURYSYQAD
        BCHFEEGIGJHYLMOPUULSQRUBTUAUGUATUBAHEGFIJYLMOPUULUBTUAAEHADBCHFEGIJYLMO
        UULPSQRUBTUAUGWRWEZUVTWNWQVCUUAUIHYKGEKVDZFIJKUJUOZFUWCWSZUTZUKUOZUWEUT
        ZVEZULUOZUWDUWGJVDZUTZULUWCWTZVEZUJUKXAZUMUNMOUCUUDAUWCKXFUTYSYQAFIJKGE
        MOUCPUATUWAXBZVCZUUFUWNUMUOZUWEUTZUNUOZUWEUTZVEZUIUOZUWRUWTJVDZUTZUIUWC
        WTZVEUJUKUMUNUWDUWRUSZUWGUWTUSZVEZUWIUXBUWMUXFUXIUWFUWSUWHUXAUXIUWDUWRU
        WEUWEUXGUXHXCUXIUWEXOZXDUXIUWGUWTUWEUWEUXGUXHVPUXJXDXEUXIUWLUXEULUIUWCU
        XIUWJUXCUSZVEZUWJUXCUWKUXDUXIUXKVPUXLUWDUWRUWGUWTJUXGUXHUXKXGUXGUXHUXKV
        IXHXDXIXEXJZUUMUUAUIGHYKUWCFIJYLKUWOUMUNMOUCUUDUWQUUJUXMUULAGUWCUTYSYQA
        FGEIJKMOUCPUATUWAXKVCUUFUUMAHUWCUTZWOZYSYQAUXNGEUSZVFWOUXOAFIJKEGHMUCOP
        TUAUBUUKXLUXNUXPXMXPZVCUUAYKHGFIJYLVBMOUULUUMUUFUUJUUDUVNXNXQXRAHHUWCIX
        SUQUQURYSYQAUIHUWCFIJKUWOUMUNMOUCPUWPUBUXMUXQXTVCYAYBAHHEKVDUTYSYQAFHEI
        JKMOUCPUBTUWBXKVCUUAFIJKGHYKMOUCUUDUUJUUFUUMAGHWJYSYQABCDEFGHIJYLMOUULP
        QRSTUAUBUFYCZVCZUUAYKHGFIJYLKMOUULUUMUUFUUJUUDUCUVNYBYDUUAFGHIJKMOUCUUD
        UUJUUFUXSYEYFYGYHAUHGCDHFIJYLLMOUULUARSPUBNAGHUXRWEUVPYIYJ $.

      $( Second congruence theorem:  ASA. (Angle-Side-Angle):  If two pairs of
         angles of two triangles are equal in measurement, and the included
         sides are equal in length, then the triangles are congruent.  Theorem
         11.50 of [Schwabhauser] p. 108.  (Contributed by Thierry Arnoux,
         15-Aug-2020.) $)
      tgasa $p |- ( ph -> <" A B C "> ( cgrG ` G ) <" D E F "> ) $=
        ( tgasa1 tgsas ) ABCDEFGHIJLMNOPQRSTUAUBUEUFABCDEFGHIJKLMNOPQRSTUAUBUCU
        DUEUFUGUHUI $.
    $}

    ${
      $( Second congruence theorem: AAS (Angle-Angle-Side): If two pairs of
         angles of two triangles are equal in measurement, and a pair of
         corresponding non-included sides are equal in length, then the
         triangles are congruent. . Theorem 11.50 of [Schwabhauser] p. 108.
         (Contributed by Thierry Arnoux, 10-Aug-2020.) $)
    $}

    ${
      tgsss.1 $e |- ( ph -> ( A .- B ) = ( D .- E ) ) $.
      tgsss.2 $e |- ( ph -> ( B .- C ) = ( E .- F ) ) $.
      tgsss.3 $e |- ( ph -> ( C .- A ) = ( F .- D ) ) $.
      tgsss.4 $e |- ( ph -> A =/= B ) $.
      tgsss.5 $e |- ( ph -> B =/= C ) $.
      tgsss.6 $e |- ( ph -> C =/= A ) $.
      $( Third congruence theorem:  SSS (Side-Side-Side):  If the three pairs
         of sides of two triangles are equal in length, then the triangles are
         congruent.  Theorem 11.51 of [Schwabhauser] p. 109.  (Contributed by
         Thierry Arnoux, 1-Aug-2020.) $)
      tgsss1 $p |- ( ph -> <" A B C "> ( cgrA ` G ) <" D E F "> ) $=
        ( chlg cfv eqid ccgrg trgcgr tgcgrneq hlid necomd iscgrad ) ABCDEFGHIJI
        UHUIZEHLNUQUJZOPQRSTUASUAABCDEFIUKUIZGHIKLMUSUJOPQRSTUAUBUCUDULAEBGFIJU
        QLNURSPTOABCEGFIJKLMNOPQSTUBUEUMUNAHBGFIJUQLNURUAPTOAGHACDGHFIJKLMNOQRT
        UAUCUFUMUOUNUP $.

      $( Third congruence theorem:  SSS. Theorem 11.51 of [Schwabhauser]
         p. 109.  (Contributed by Thierry Arnoux, 1-Aug-2020.) $)
      tgsss2 $p |- ( ph -> <" C A B "> ( cgrA ` G ) <" F D E "> ) $=
        ( tgsss1 ) ADBCHFEGIJKLMNORPQUASTUDUBUCUGUEUFUH $.

      $( Third congruence theorem:  SSS. Theorem 11.51 of [Schwabhauser]
         p. 109.  (Contributed by Thierry Arnoux, 1-Aug-2020.) $)
      tgsss3 $p |- ( ph -> <" B C A "> ( cgrA ` G ) <" E F D "> ) $=
        ( tgsss1 ) ACDBGFHEIJKLMNOQRPTUASUCUDUBUFUGUEUH $.
    $}

    $( Fourth congruence theorem: ASS. Theorem 11.52 of [Schwabhauser] p. 109.
       $)
  $}

  ${
    isoas.p $e |- P = ( Base ` G ) $.
    isoas.m $e |- .- = ( dist ` G ) $.
    isoas.i $e |- I = ( Itv ` G ) $.
    isoas.l $e |- L = ( LineG ` G ) $.
    isoas.g $e |- ( ph -> G e. TarskiG ) $.
    isoas.a $e |- ( ph -> A e. P ) $.
    isoas.b $e |- ( ph -> B e. P ) $.
    isoas.c $e |- ( ph -> C e. P ) $.
    isoas.1 $e |- ( ph -> -. ( C e. ( A L B ) \/ A = B ) ) $.
    isoas.2 $e |- ( ph -> <" A B C "> ( cgrA ` G ) <" A C B "> ) $.
    $( Congruence theorem for isocele triangles: if two angles of a triangle
       are congruent, then the corresponding sides also are.  (Contributed by
       Thierry Arnoux, 5-Oct-2020.) $)
    isoas $p |- ( ph -> ( A .- B ) = ( A .- C ) ) $=
      ( cfv ccgrg eqid ncolrot1 axtgcgrrflx chlg cgrane2 ncolne2 necomd cgracom
      cgraswap cgratr ncolne1 tgasa cgr3simp3 ) ACDBDEFUATZCBFGIJKLUOUBNPQOQPOA
      CDBDECBFGHIJKLNPQOQPOMAEFGHBCDJMLNOPQRUCZAEFGICDJKLNPQUDACDBBECCDFDGBFUET
      ZJLNUQUBZPQOOPQACDBBECDCFBGDUQJLNURPQOOQPACDBEFGUQJLNURPQOABCDBEDCFGUQJLU
      RNOPQOQPSUFZABDAEFGHBCDJLMNOPQUPUGUHUJOPQABCDBEDCFGUQJLNUROPQOQPSUIUKQPOA
      BCDEFGUQJLNUROPQAEFGHBCDJLMNOPQUPULUSUJUKSUMUN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Equilateral triangles
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c eqltrG $.

  $( Declare the class of equilateral triangles. $)
  ceqlg $a class eqltrG $.

  ${
    $d g x $.
    $( Define the class of equilateral triangles.  (Contributed by Thierry
       Arnoux, 27-Nov-2019.) $)
    df-eqlg $a |- eqltrG = ( g e. _V |-> { x e. ( ( Base ` g ) ^m ( 0 ..^ 3 ) )
      | x ( cgrG ` g ) <" ( x ` 1 ) ( x ` 2 ) ( x ` 0 ) "> } ) $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.  $d G g x $.  $d P g x $.
    iseqlg.p $e |- P = ( Base ` G ) $.
    iseqlg.m $e |- .- = ( dist ` G ) $.
    iseqlg.i $e |- I = ( Itv ` G ) $.
    iseqlg.l $e |- L = ( LineG ` G ) $.
    iseqlg.g $e |- ( ph -> G e. TarskiG ) $.
    iseqlg.a $e |- ( ph -> A e. P ) $.
    iseqlg.b $e |- ( ph -> B e. P ) $.
    iseqlg.c $e |- ( ph -> C e. P ) $.
    $( Property of a triangle being equilateral.  (Contributed by Thierry
       Arnoux, 5-Oct-2020.) $)
    iseqlg $p |- ( ph -> ( <" A B C "> e. ( eqltrG ` G ) <->
        <" A B C "> ( cgrG ` G ) <" B C A "> ) ) $=
      ( vx cfv wcel vg cs3 ceqlg cv c1 c2 cc0 ccgrg wbr c3 cfzo co cmap crab wa
      cstrkg cvv wceq elex cbs fveq2 syl6eqr breqd rabeqbidv df-eqlg ovex rabex
      oveq1d fvmpt eleq2d wb id fveq1 s3eqd breq12d elrab a1i cword chash s3cld
      3syl s3len jca fvex eqeltri 3nn0 wrdmap mp2an sylib biantrurd s3fv1 s3fv2
      cn0 syl s3fv0 breq2d bitr3d 3bitrd ) ABCDUBZFUCSZTWSRUDZUEXASZUFXASZUGXAS
      ZUBZFUHSZUIZREUGUJUKULZUMULZUNZTZWSXITZWSUEWSSZUFWSSZUGWSSZUBZXFUIZUOZWSC
      DBUBZXFUIZAWTXJWSAFUPTFUQTWTXJURNFUPUSUAFXAXEUAUDZUHSZUIZRYAUTSZXHUMULZUN
      XJUQUCYAFURZYCXGRYEXIYFYDEXHUMYFYDFUTSZEYAFUTVAJVBVHYFYBXFXAXEYAFUHVAVCVD
      RUAVEXGRXIEXHUMVFVGVIWAVJXKXRVKAXGXQRWSXIXAWSURZXAWSXEXPXFYHVLYHXBXCXDXOX
      MXNUEXAWSVMUFXAWSVMUGXAWSVMVNVOVPVQAXQXRXTAXLXQAWSEVRTZWSVSSUJURZUOZXLAYI
      YJABCDEOPQVTYJABCDWBVQWCEUQTUJWMTYKXLVKEYGUQJFUTWDWEWFUJEWSUQWGWHWIWJAXPX
      SWSXFAXMXNXOBCDACETXMCURPBCDEWKWNADETXNDURQBCDEWLWNABETXOBUROBCDEWOWNVNWP
      WQWR $.

    ${
      iseqlgd.1 $e |- ( ph -> ( A .- B ) = ( B .- C ) ) $.
      iseqlgd.2 $e |- ( ph -> ( B .- C ) = ( C .- A ) ) $.
      iseqlgd.3 $e |- ( ph -> ( C .- A ) = ( A .- B ) ) $.
      $( Condition for a triangle to be equilateral.  (Contributed by Thierry
         Arnoux, 5-Oct-2020.) $)
      iseqlgd $p |- ( ph -> <" A B C "> e. ( eqltrG ` G ) ) $=
        ( cs3 ceqlg cfv wcel ccgrg wbr eqid trgcgr iseqlg mpbird ) ABCDUAZFUBUC
        UDUKCDBUAFUEUCZUFABCDCEULDBFIJKULUGNOPQPQORSTUHABCDEFGHIJKLMNOPQUIUJ $.
    $}
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Properties of geometries
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Isomorphisms between geometries
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    f1otrkg.p $e |- P = ( Base ` G ) $.
    f1otrkg.d $e |- D = ( dist ` G ) $.
    f1otrkg.i $e |- I = ( Itv ` G ) $.
    f1otrkg.b $e |- B = ( Base ` H ) $.
    f1otrkg.e $e |- E = ( dist ` H ) $.
    f1otrkg.j $e |- J = ( Itv ` H ) $.
    f1otrkg.f $e |- ( ph -> F : B -1-1-onto-> P ) $.
    f1otrkg.1 $e |- ( ( ph /\ ( e e. B /\ f e. B ) )
       -> ( e E f ) = ( ( F ` e ) D ( F ` f ) ) ) $.
    f1otrkg.2 $e |- ( ( ph /\ ( e e. B /\ f e. B /\ g e. B ) )
       -> ( g e. ( e J f ) <-> ( F ` g ) e. ( ( F ` e ) I ( F ` f ) ) ) ) $.

    ${
      $d e f g B $.  $d e f D $.  $d e f E $.  $d e f g F $.  $d e f g I $.
      $d e f g J $.  $d e f g X $.  $d e f g ph $.  $d f g Y $.  $d g Z $.
      f1otrgitv.x $e |- ( ph -> X e. B ) $.
      f1otrgitv.y $e |- ( ph -> Y e. B ) $.
      $( Convenient lemma for ~ f1otrg .  (Contributed by Thierry Arnoux,
         19-Mar-2019.) $)
      f1otrgds $p |- ( ph
        -> ( X E Y ) = ( ( F ` X ) D ( F ` Y ) ) ) $=
        ( cv co cfv wceq wral ralrimivva wcel oveq1 fveq2 oveq1d eqeq12d oveq2d
        wi oveq2 rspc2v syl2anc mpd ) AEUGZFUGZHUHZVDIUIZVEIUIZCUHZUJZFBUKEBUKZ
        NOHUHZNIUIZOIUIZCUHZUJZAVJEFBBUCULANBUMOBUMVKVPUSUEUFVJVPNVEHUHZVMVHCUH
        ZUJEFNOBBVDNUJZVFVQVIVRVDNVEHUNVSVGVMVHCVDNIUOUPUQVEOUJZVQVLVRVOVEONHUT
        VTVHVNVMCVEOIUOURUQVAVBVC $.

      f1otrgitv.z $e |- ( ph -> Z e. B ) $.
      $( Convenient lemma for ~ f1otrg .  (Contributed by Thierry Arnoux,
         19-Mar-2019.) $)
      f1otrgitv $p |- ( ph
        -> ( Z e. ( X J Y ) <-> ( F ` Z ) e. ( ( F ` X ) I ( F ` Y ) ) ) ) $=
        ( cv co wcel cfv wb wral ralrimivvva wi wceq oveq1 eleq2d fveq2 bibi12d
        oveq1d oveq2 oveq2d eleq1 eleq1d rspc3v syl3anc mpd ) AGUIZEUIZFUIZMUJZ
        UKZVJIULZVKIULZVLIULZLUJZUKZUMZGBUNFBUNEBUNZPNOMUJZUKZPIULZNIULZOIULZLU
        JZUKZUMZAVTEFGBBBUEUOANBUKOBUKPBUKWAWIUPUFUGUHVTWIVJNVLMUJZUKZVOWEVQLUJ
        ZUKZUMVJWBUKZVOWGUKZUMEFGNOPBBBVKNUQZVNWKVSWMWPVMWJVJVKNVLMURUSWPVRWLVO
        WPVPWEVQLVKNIUTVBUSVAVLOUQZWKWNWMWOWQWJWBVJVLONMVCUSWQWLWGVOWQVQWFWELVL
        OIUTVDUSVAVJPUQZWNWCWOWHVJPWBVEWRVOWDWGVJPIUTVFVAVGVHVI $.
    $}

    $d a b c d e f g i p s t u v w x y z B $.  $d c d e f g u v w D $.
    $d a b c e f g i p u v w x y z E $.  $d a b c d e f g u v w x y z F $.
    $d a c d e f g u v w x y I $.  $d a b c d e f g i p s t u v w x y z J $.
    $d a b c d e f g u v w x y z P $.  $d a b c d e f g s t u v w x y z ph $.
    $d H f i p $.
    f1otrg.h $e |- ( ph -> H e. V ) $.
    ${
      f1otrg.g $e |- ( ph -> G e. TarskiG ) $.
      f1otrg.l $e |- ( ph -> ( LineG ` H ) = ( x e. B , y e. ( B \ { x } ) |->
     { z e. B | ( z e. ( x J y ) \/ x e. ( z J y ) \/ y e. ( x J z ) ) } ) ) $.
      $( A bijection between bases which conserves distances and intervals
         conserves also geometries.  (Contributed by Thierry Arnoux,
         23-Mar-2019.) $)
      f1otrg $p |- ( ph -> H e. TarskiG ) $=
        ( vp vi vu vv va vt vs vb vc cstrkgc cstrkgb cin cstrkgcb clng cfv cdif
        vw cv co wcel w3o crab cmpt2 wceq wsbc cstrkg wral wi wa adantr wf wf1o
        syl f1of simprl ffvelrnd simprr adantlr w3a f1otrgds 3eqtr4d ralrimivva
        wb 3ad2ant1 jca simp3 3ad2antl1 3eqtr3d imp syl21anc 3expia ralrimivvva
        sylanbrc wrex 3adant3 f1otrgitv mpbid 3syl ad5antr simplr simpr anbi12d
        eleq1d ad2antrr f1ocnvfv2 syl2anc simplll sylancom r19.29a cima simpllr
        mpbird ex wfn wss ffn simp-4r simpld elpwid fnfvima simprd eleq2d oveq2
        syl3anc ad4antr sseldd ad3antrrr oveq2d elind ad9antr ralrimiva csn cbs
        citv cab elex axtgcgrrflx f1of1 simp21 simp22 simp23 axtgcgrid f1veqaeq
        cvv wf1 istrkgc axtgbtwnid ccnv f1ocnv simplr2 simplr3 rspcedvd simplr1
        cpw simp2 axtgpasch oveq1 rspc2va eqeltrd simp-5l adantllr eleq1 adantl
        2ralbidv rspcedv mpd crn imassrn wfo forn syl5sseq 4syl simp-5r eleqtrd
        f1ofo f1imacnv simp-6l f1ocnvdm 3eltr3d 3impa axtgcont r19.29an istrkgb
        3jca wne simp-9r simp-8r simp-7r simp-6r simprl1 dff1o6 simp3bi necon3d
        r19.21bi simprl2 simprl3 axtg5seg simp-4l sylan ffvelrnda 3eqtrd eqtr4d
        eleqtrrd eqeq1d syl22anc axtgsegcon istrkgcb istrkgl df-trkg syl6eleqr
        jca32 sylibr ) ANUSUTVAZVBIVGZVCVDBCUJVGZUYDBVGZUUAZVEDVGZUYECVGZUKVGZV
[encoded data, 9120 characters]
        VIXUHVJDEVKVLVMNUYJVIVUBUIBCDEIUKNPKUJUAUBUCUXQXBYRYRBCDIUKUJUXRUXS $.
    $}

    ${
      f1otrge.g $e |- ( ph -> G e. TarskiGE ) $.
      $( A bijection between bases which conserves distances and intervals
         conserves also the property of being a Euclidean geometry.
         (Contributed by Thierry Arnoux, 23-Mar-2019.) $)
      f1otrge $p |- ( ph -> H e. TarskiGE ) $=
        ( vu vx vv vy vz va vb vc vd cvv wcel cv wne w3a wrex wral cstrkge elex
        co wi syl wa cfv ccnv wf wf1o f1ocnv f1of 3syl ad6antr simpllr ffvelrnd
        simplr simpr1 wceq ad3antrrr f1ocnvfv2 syl2anc eleqtrrd simp-4l simplll
        oveq2d adantlr sylancom simprl ad2antrr simprr f1otrgitv mpbird simplr1
        wb simpr2 simpr3 oveq12d simplr3 oveq2 eleq2d 3anbi13d 3anbi23d rspc2ev
        oveq1 syl113anc adantr simplr2 mpbid jca wfn crn dff1o6 simp3bi necon3d
        r19.21bi imp syl21anc axtgeucl r19.29vva ralrimivvva ralrimivva istrkge
        ex sylanbrc ) AKUOUPZUFUQZUGUQZUHUQZMVDUPZYHUIUQZUJUQZMVDUPZYIYHURZUSZY
        LYIUKUQZMVDZUPZYMYIULUQZMVDZUPZYJYQYTMVDZUPZUSZULBUTUKBUTZVEZUHBVAUFBVA
        UJBVAZUIBVAUGBVAKVBUPAKNUPYGUDKNVCVFAUUHUGUIBBAYIBUPZYLBUPZVGZVGZUUGUJU
        FUHBBBUULYMBUPZYHBUPZYJBUPZUSZVGZYPUUFUUQYPVGZYLIVHZYIIVHZUMUQZLVDZUPZY
        MIVHZUUTUNUQZLVDZUPZYJIVHZUVAUVELVDZUPZUSZUUFUMUNDDUURUVADUPZVGZUVEDUPZ
        VGZUVKVGZUVAIVIZVHZBUPUVEUVQVHZBUPYLYIUVRMVDZUPZYMYIUVSMVDZUPZYJUVRUVSM
        VDZUPZUUFUVPDBUVAUVQADBUVQVJZUUKUUPYPUVLUVNUVKABDIVKZDBUVQVKUWFUABDIVLD
        BUVQVMVNVOZUURUVLUVNUVKVPZVQZUVPDBUVEUVQUWHUVMUVNUVKVRZVQZUVPUWAUUSUUTU
        VRIVHZLVDZUPUVPUUSUVBUWNUVOUVCUVGUVJVSUVPUWMUVAUUTLUVPUWGUVLUWMUVAVTUUR
        UWGUVLUVNUVKAUWGUUKUUPYPUAWAZWAZUWIBDUVAIWBWCZWGWDUVPBCDEFGHIJKLMYIUVRY
        LOPQRSTUWPUVPEUQZBUPZFUQZBUPZVGZUURUWRUWTHVDUWRIVHZUWTIVHZCVDVTZUURUVLU
        VNUVKUXBWEUURUXBUULUXEUULUUPYPUXBWFAUXBUXEUUKUBWHWIZWIZUVPUWSUXAGUQZBUP
        USZUURUXHUWRUWTMVDUPUXHIVHUXCUXDLVDUPWPZUURUVLUVNUVKUXIWEUURUXIUULUXJUU
        LUUPYPUXIWFAUXIUXJUUKUCWHWIZWIZUURUUIUVLUVNUVKUULUUIUUPYPAUUIUUJWJZWKZW
        AZUWJUURUUJUVLUVNUVKUULUUJUUPYPAUUIUUJWLZWKZWAWMWNUVPUWCUVDUUTUVSIVHZLV
        DZUPUVPUVDUVFUXSUVOUVCUVGUVJWQUVPUXRUVEUUTLUVPUWGUVNUXRUVEVTUWPUWKBDUVE
        IWBWCZWGWDUVPBCDEFGHIJKLMYIUVSYMOPQRSTUWPUXGUXLUXOUWLUURUUMUVLUVNUVKUUM
        UUNUUOUULYPWOZWAWMWNUVPUWEUVHUWMUXRLVDZUPUVPUVHUVIUYBUVOUVCUVGUVJWRUVPU
        WMUVAUXRUVELUWQUXTWSWDUVPBCDEFGHIJKLMUVRUVSYJOPQRSTUWPUXGUXLUWJUWLUURUU
        OUVLUVNUVKUUMUUNUUOUULYPWTZWAWMWNUUEUWAUWCUWEUSUWAUUBYJUVRYTMVDZUPZUSUK
        ULUVRUVSBBYQUVRVTZYSUWAUUDUYEUUBUYFYRUVTYLYQUVRYIMXAXBUYFUUCUYDYJYQUVRY
        TMXFXBXCYTUVSVTZUUBUWCUYEUWEUWAUYGUUAUWBYMYTUVSYIMXAXBUYGUYDUWDYJYTUVSU
        VRMXAXBXDXEXGUURDYHIVHZJLCUVHUUTUUSUVDUMUNOPQAJVBUPUUKUUPYPUEWAUULUUTDU
        PUUPYPUULBDYIIABDIVJZUUKAUWGUYIUABDIVMVFZXHZUXMVQWKUULUUSDUPUUPYPUULBDY
        LIUYKUXPVQWKUURBDYMIAUYIUUKUUPYPUYJWAZUYAVQUURBDYHIUYLUUMUUNUUOUULYPXIZ
        VQUURBDYJIUYLUYCVQUURYKUYHUUTUVHLVDUPUUQYKYNYOVSUURBCDEFGHIJKLMYIYJYHOP
        QRSTUWOUXFUXKUXNUYCUYMWMXJUURYNUYHUUSUVDLVDUPUUQYKYNYOWQUURBCDEFGHIJKLM
        YLYMYHOPQRSTUWOUXFUXKUXQUYAUYMWMXJUURUWGUUIVGZUUNYOUUTUYHURZUURUWGUUIUW
        OUXNXKUYMUUQYKYNYOWRUYNUUNVGZYOUYOUYPUUTUYHYIYHUYNUUTUYHVTYIYHVTVEZUFBU
        WGUYQUFBVAZUGBUWGIBXLIXMDVTUYRUGBVAUGUFBDIXNXOXQXQXPXRXSXTYAYEYBYCUGUIU
        JUHUFBKMHUKULRSTYDYF $.
    $}

$(
    @{
      f1otrg2d.g @e |- ( ph -> G e. TarskiG2D ) @.
      @( A bijection between bases which conserves distances and intervals
         conserves also planar geometries.  @)
      f1otrg2d @p |- ( ph -> H e. TarskiG2D ) @=
        ? @.
    @}
$)
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Geometry in Hilbert spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  $c toTG $.

  $( Function to convert an algebraic structure to a Tarski geometry. $)
  cttg $a class toTG $.

  ${
    $d i k w x y z $.
    $( Define a function converting a subcomplex Hilbert space to a Tarski
       Geometry.  It does so by equipping the structure with a betweenness
       operation.  Note that because the scalar product is applied over the
       interval ` ( 0 [,] 1 ) ` , only spaces whose scalar field is a superset
       of that interval can be considered.  (Contributed by Thierry Arnoux,
       24-Mar-2019.) $)
    df-ttg $a |- toTG = ( w e. _V |-> [_ ( x e. ( Base ` w ) , y e. ( Base ` w
        ) |-> { z e. ( Base ` w ) | E. k e. ( 0 [,] 1 ) ( z ( -g ` w ) x ) =
        ( k ( .s ` w ) ( y ( -g ` w ) x ) ) } ) / i ]_
        ( ( w sSet <. ( Itv ` ndx ) , i >. )
      sSet <. ( LineG ` ndx ) , ( x e. ( Base ` w ) , y e. ( Base ` w )
        |-> { z e. ( Base ` w ) |
          ( z e. ( x i y ) \/ x e. ( z i y ) \/ y e. ( x i z ) ) } ) >. ) ) $.
  $}

  ${
    ttgval.n $e |- G = ( toTG ` H ) $.
    ${
      $d a b c k x y z $.  $d a b c i w x y z B $.  $d i k w x y z H $.
      $d i x y z V $.  $d a b c i w x y z .- $.  $d a b c i w x y z .x. $.
      ttgval.b $e |- B = ( Base ` H ) $.
      ttgval.m $e |- .- = ( -g ` H ) $.
      ttgval.s $e |- .x. = ( .s ` H ) $.
      ttgval.i $e |- I = ( Itv ` G ) $.
      $( Define a function to augment a subcomplex Hilbert space with
         betweenness and a line definition.  (Contributed by Thierry Arnoux,
         25-Mar-2019.) $)
      ttgval $p |- ( H e. V -> ( G = ( ( H sSet <. ( Itv ` ndx ) ,
           ( x e. B , y e. B |-> { z e. B |
           E. k e. ( 0 [,] 1 ) ( z .- x ) = ( k .x. ( y .- x ) ) } ) >. )
        sSet <. ( LineG ` ndx ) , ( x e. B , y e. B |-> { z e. B |
           ( z e. ( x I y ) \/ x e. ( z I y ) \/ y e. ( x I z ) ) } ) >. )
        /\ I = ( x e. B , y e. B |-> { z e. B |
           E. k e. ( 0 [,] 1 ) ( z .- x ) = ( k .x. ( y .- x ) ) } ) ) ) $=
        ( wcel co wceq csts vi vw va vb vc cnx citv cfv cv cicc wrex crab cmpt2
        cc0 c1 cop clng w3o cttg csb a1i cvv elex cbs cvsca fveq2 syl6eqr oveqd
        csg eqidd eqeq12d rexbidv rabeqbidv mpt2eq123dv csbeq1d oveq1 rabeq syl
        oveq123d opeq2d oveq12d csbeq2dv eqtrd df-ttg ovex csbex eqeltri mpt2ex
        fvmpt fvex wa simpr oveq2 oveq2d rabbidv eqeq2d eqeq1d cbvrabv cbvmpt2v
        syl6eq eleq2d 3orbi123d mpt2eq3dv syldan csbied 3eqtrd fveq2d itvid wne
        c6 cdc 1nn0 6nn decnncl nnrei 6nn0 7nn 6lt7 declt ltneii itvndx neeq12i
        c7 lngndx mpbir setsnid setsid mpan2 3eqtr4d eqtr4d jca ) HKQZGHUFUGUHZ
        ABDDCUIZAUIZJRZFUIZBUIZYOJRZERZSZFUNUOUJRZUKZCDULZUMZUPZTRZUFUQUHZABDDY
        NYOYRIRZQZYOYNYRIRZQZYRYOYNIRZQZURZCDULZUMZUPZTRZSIUUESYLGUUGUUHABDDYNY
        OYRUUERZQZYOYNYRUUERZQZYRYOYNUUERZQZURZCDULZUMZUPZTRZUUSYLGHUSUHZUAUUEH
        YMUAUIZUPZTRZUUHABDDYNYOYRUVLRZQZYOYNYRUVLRZQZYRYOYNUVLRZQZURZCDULZUMZU
        PZTRZUTZUVJGUVKSYLLVAYLHVBQUVKUWFSHKVCUBHUAABUBUIZVDUHZUWHYNYOUWGVIUHZR
        ZYQYRYOUWIRZUWGVEUHZRZSZFUUBUKZCUWHULZUMZUWGUVMTRZUUHABUWHUWHUWACUWHULZ
        UMZUPZTRZUTZUWFVBUSUWGHSZUXCUAUUEUXBUTUWFUXDUAUWQUUEUXBUXDABUWHUWHUWPDD
        UUDUXDUWHHVDUHZDUWGHVDVFMVGZUXFUXDUWOUUCCUWHDUXFUXDUWNUUAFUUBUXDUWJYPUW
        MYTUXDUWIJYNYOUXDUWIHVIUHJUWGHVIVFNVGZVHUXDYQYQUWKYSUWLEUXDUWLHVEUHEUWG
        HVEVFOVGUXDYQVJUXDUWIJYRYOUXGVHVSVKVLVMVNVOUXDUAUUEUXBUWEUXDUWRUVNUXAUW
        DTUWGHUVMTVPUXDUWTUWCUUHUXDABUWHUWHUWSDDUWBUXFUXFUXDUWHDSUWSUWBSUXFUWAC
        UWHDVQVRVNVTWAWBWCABCUBUAFWDUAUUEUWEUVNUWDTWEWFWIVRYLUAUUEUWEUVJVBUUEVB
        QZYLABDDUUDDUXEVBMHVDWJWGZUXIWHZVAYLUVLUUESZUVLUCUDDDUEUIZUCUIZJRZYQUDU
        IZUXMJRZERZSZFUUBUKZUEDULZUMZSZUWEUVJSYLUXKWKUVLUUEUYAYLUXKWLUCUDABDDUX
        TUUDUXLYOJRZYQUXOYOJRZERZSZFUUBUKZUEDULZUXMYOSZUXSUYGUEDUYIUXRUYFFUUBUY
        IUXNUYCUXQUYEUXMYOUXLJWMUYIUXPUYDYQEUXMYOUXOJWMWNVKVLWOUXOYRSZUYHUYCYTS
        ZFUUBUKZUEDULUUDUYJUYGUYLUEDUYJUYFUYKFUUBUYJUYEYTUYCUYJUYDYSYQEUXOYRYOJ
        VPWNWPVLWOUYLUUCUECDUXLYNSZUYKUUAFUUBUYMUYCYPYTUXLYNYOJVPWQVLWRWTWSZVGY
        LUYBWKZUVNUUGUWDUVITUYOUVMUUFHTUYOUVLUUEYMUYOUVLUYAUUEYLUYBWLUYNWTZVTWN
        UYOUWCUVHUUHUYOABDDUWBUVGUYOUWAUVFCDUYOUVPUVAUVRUVCUVTUVEUYOUVOUUTYNUYO
        UVLUUEYOYRUYPVHXAUYOUVQUVBYOUYOUVLUUEYNYRUYPVHXAUYOUVSUVDYRUYOUVLUUEYOY
        NUYPVHXAXBWOXCVTWAXDXEXFZYLUURUVIUUGTYLUUQUVHUUHYLABDDUUPUVGYLUUOUVFCDY
        LUUJUVAUULUVCUUNUVEYLUUIUUTYNYLIUUEYOYRYLGUGUHZUUGUGUHZIUUEYLUYRUVJUGUH
        UYSYLGUVJUGUYQXGUVHUUHUGUUGXHYMUUHXIUOXJXKZUOYCXKZXIUYTVUAUYTUOXJXLXMXN
        XOUOXJYCXLXPXQXRXSXTYMUYTUUHVUAYAYDYBYEYFVGIUYRSYLPVAYLUXHUUEUYSSUXJKUU
        EUGVBHXHYGYHYIZVHXAYLUUKUVBYOYLIUUEYNYRVUBVHXAYLUUMUVDYRYLIUUEYOYNVUBVH
        XAXBWOXCVTWNYJVUBYK $.
    $}

    ${
      $d H k x y z $.
      ttglem.2 $e |- E = Slot N $.
      ttglem.3 $e |- N e. NN $.
      ttglem.4 $e |- N < ; 1 6 $.
      $( Lemma for ~ ttgbas and ~ ttgvsca .  (Contributed by Thierry Arnoux,
         15-Apr-2019.) $)
      ttglem $p |- ( E ` H ) = ( E ` G ) $=
        ( vx vy vz wcel cfv wceq cv co c1 eqid wne c0 vk cvv cnx citv cbs cvsca
        csg cc0 cicc wrex crab cmpt2 cop csts w3o ttgval simpld fveq2d ndxid c6
        clng cdc nnrei ltneii ndxarg itvndx neeq12i mpbir setsnid clt 1nn0 6nn0
        c7 wbr 7nn 6lt7 declt decnncl lttri mp2an lngndx eqtri syl6reqr wn str0
        6nn fvprc cttg syl5eq 3eqtr4a pm2.61i ) CUBLZCAMZBAMZNWLWNCUCUDMZIJCUEM
        ZWPKOZIOZCUGMZPUAOJOZWRWSPCUFMZPNUAUHQUIPUJKWPUKULZUMUNPZUCVAMZIJWPWPWQ
        WRWTBUDMZPLWRWQWTXEPLWTWRWQXEPLUOKWPUKULZUMUNPZAMZWMWLBXGAWLBXGNXEXBNIJ
        KWPXAUABCXEWSUBEWPRWSRXARXERUPUQURWMXCAMXHXBWOACADFGUSZUCAMZWOSDQUTVBZS
        DXKDGVCZHVDXJDWOXKADFGVEZVFVGVHVIXFXDAXCXIXJXDSDQVMVBZSDXNXLDXKVJVNXKXN
        VJVNDXNVJVNHQUTVMVKVLVOVPVQDXKXNXLXKQUTVKWFVRVCXNQVMVKVOVRVCVSVTVDXJDXD
        XNXMWAVGVHVIWBWCWLWDZTTAMWMWNADFWECAWGXOBTAXOBCWHMTECWHWGWIURWJWK $.
    $}

    ${
      ttgbas.1 $e |- B = ( Base ` H ) $.
      $( The base set of a subcomplex Hilbert space augmented with betweenness.
         (Contributed by Thierry Arnoux, 25-Mar-2019.) $)
      ttgbas $p |- B = ( Base ` G ) $=
        ( cbs cfv c1 df-base 1nn c6 6nn0 1nn0 1lt10 declti ttglem eqtri ) ACFGB
        FGEFBCHDIJHKHJLMNOPQ $.
    $}

    ${
      ttgplusg.1 $e |- .+ = ( +g ` H ) $.
      $( The addition operation of a subcomplex Hilbert space augmented with
         betweenness.  (Contributed by Thierry Arnoux, 25-Mar-2019.) $)
      ttgplusg $p |- .+ = ( +g ` G ) $=
        ( cplusg cfv c2 df-plusg 2nn c1 1nn 6nn0 2nn0 2lt10 declti ttglem eqtri
        c6 ) ACFGBFGEFBCHDIJKSHLMNOPQR $.
    $}

    ${
      ttgsub.1 $e |- .- = ( -g ` H ) $.
      $( The subtraction operation of a subcomplex Hilbert space augmented with
         betweenness.  (Contributed by Thierry Arnoux, 25-Mar-2019.) $)
      ttgsub $p |- .- = ( -g ` G ) $=
        ( csg cfv wceq wtru cbs eqid ttgbas a1i ttgplusg grpsubpropd trud eqtri
        cplusg ) CBFGZAFGZESTHIBABJGZAJGHIUAABDUAKLMBRGZARGHIUBABDUBKNMOPQ $.
    $}

    ${
      ttgvsca.1 $e |- .x. = ( .s ` H ) $.
      $( The scalar product of a subcomplex Hilbert space augmented with
         betweenness.  (Contributed by Thierry Arnoux, 25-Mar-2019.) $)
      ttgvsca $p |- .x. = ( .s ` G ) $=
        ( cvsca cfv c6 df-vsca 6nn c1 1nn 6nn0 6lt10 declti ttglem eqtri ) ACFG
        BFGEFBCHDIJKHHLMMNOPQ $.
    $}

    ${
      ttgds.1 $e |- D = ( dist ` H ) $.
      $( The metric of a subcomplex Hilbert space augmented with betweenness.
         (Contributed by Thierry Arnoux, 25-Mar-2019.) $)
      ttgds $p |- D = ( dist ` G ) $=
        ( cds cfv c1 c2 cdc df-ds 1nn0 2nn decnncl 2nn0 6nn 2lt6 declt ttglem
        c6 eqtri ) ACFGBFGEFBCHIJDKHILMNHITLOPQRSUA $.
    $}

    $d k x y z .- $.  $d x y z .x. $.  $d k x y z H $.  $d k x y z P $.
    $d k x y z V $.  $d k x y z X $.  $d k x y z Y $.  $d k z Z $.
    ttgitvval.i $e |- I = ( Itv ` G ) $.
    ttgitvval.b $e |- P = ( Base ` H ) $.
    ttgitvval.m $e |- .- = ( -g ` H ) $.
    ttgitvval.s $e |- .x. = ( .s ` H ) $.
    $( Betweenness for a subcomplex Hilbert space augmented with betweenness.
       (Contributed by Thierry Arnoux, 25-Mar-2019.) $)
    ttgitvval $p |- ( ( H e. V /\ X e. P /\ Y e. P ) -> ( X I Y ) = { z e. P
      | E. k e. ( 0 [,] 1 ) ( z .- X ) = ( k .x. ( Y .- X ) ) } ) $=
      ( vx wcel co wceq vy w3a cv cc0 cicc wrex crab cvv cmpt2 cnx citv cfv cop
      csts clng w3o ttgval simprd 3ad2ant1 simprl oveq2d simprr oveq12d eqeq12d
      c1 wa rexbidv rabbidv simp2 simp3 cbs fvex eqeltri rabex a1i ovmpt2d ) FI
      RZJBRZKBRZUBZQUAJKBBAUCZQUCZHSZDUCZUAUCZWBHSZCSZTZDUDVEUESZUFZABUGZWAJHSZ
      WDKJHSZCSZTZDWIUFZABUGZGUHVQVRGQUABBWKUIZTZVSVQEFUJUKULWRUMUNSUJUOULQUABB
      WAWBWEGSRWBWAWEGSRWEWBWAGSRUPABUGUIUMUNSTWSQUAABCDEFGHILNOPMUQURUSVTWBJTZ
      WEKTZVFVFZWJWPABXBWHWODWIXBWCWLWGWNXBWBJWAHVTWTXAUTZVAXBWFWMWDCXBWEKWBJHV
      TWTXAVBXCVCVAVDVGVHVQVRVSVIVQVRVSVJWQUHRVTWPABBFVKULUHNFVKVLVMVNVOVP $.

    ttgelitv.x $e |- ( ph -> X e. P ) $.
    ttgelitv.y $e |- ( ph -> Y e. P ) $.
    ${
      ttgelitv.h $e |- ( ph -> H e. V ) $.
      ttgelitv.z $e |- ( ph -> Z e. P ) $.
      $( Betweenness for a subcomplex Hilbert space augmented with betweenness.
         (Contributed by Thierry Arnoux, 25-Mar-2019.) $)
      ttgelitv $p |- ( ph -> ( Z e. ( X I Y )
        <-> E. k e. ( 0 [,] 1 ) ( Z .- X ) = ( k .x. ( Y .- X ) ) ) ) $=
        ( vz co wcel cv wceq cc0 c1 cicc wrex wa ttgitvval syl3anc eleq2d oveq1
        crab eqeq1d rexbidv elrab syl6bb biantrurd bitr4d ) ALJKGUCZUDZLBUDZLJH
        UCZDUEKJHUCCUCZUFZDUGUHUIUCZUJZUKZVJAVDLUBUEZJHUCZVGUFZDVIUJZUBBUPZUDVK
        AVCVPLAFIUDJBUDKBUDVCVPUFTRSUBBCDEFGHIJKMNOPQULUMUNVOVJUBLBVLLUFZVNVHDV
        IVQVMVFVGVLLJHUOUQURUSUTAVEVJUAVAVB $.
    $}

    ttgbtwnid.r $e |- R = ( Base ` ( Scalar ` H ) ) $.
    ttgbtwnid.2 $e |- ( ph -> ( 0 [,] 1 ) C_ R ) $.
    ${
      $d k X $.  $d k Y $.  $d k ph $.
      ttgbtwnid.1 $e |- ( ph -> H e. CMod ) $.
      ttgbtwnid.y $e |- ( ph -> Y e. ( X I X ) ) $.
      $( Any subcomplex module equipped with the betweenness operation fulfills
         the identity of betweenness (Axiom A6).  (Contributed by Thierry
         Arnoux, 26-Mar-2019.) $)
      ttgbtwnid $p |- ( ph -> X = Y ) $=
        ( vk co cv wceq cc0 c1 cicc wcel wa c0g simpll simpr clmod cclm clmlmod
        cfv syl eqid lmodsubid syl2anc ad2antrr oveq2d wss simplr sseldd 3eqtrd
        csca lmodvs0 wb lmodsubeq0 syl3anc biimpa eqcomd ttgelitv mpbid r19.29a
        wrex ) AJIHUCZUBUDZIIHUCZDUCZUEZIJUEUBUFUGUHUCZAVTWDUIZUJZWCUJZJIWGAVSF
        UKUQZUEZJIUEZAWEWCULWGVSWBVTWHDUCZWHWFWCUMWGWAWHVTDAWAWHUEZWEWCAFUNUIZI
        BUIZWLAFUOUIWMTFUPURZPIHBFWHMWHUSZNUTVAVBVCWGWMVTCUIWKWHUEAWMWEWCWOVBWG
        WDCVTAWDCVDWEWCSVBAWEWCVEVFDFVHUQZCFVTWHWQUSORWPVIVAVGAWIWJAWMJBUIWNWIW
        JVJWOQPJIHBFWHMWPNVKVLVMVAVNAJIIGUCUIWCUBWDVRUAABDUBEFGHUOIIJKLMNOPPTQV
        OVPVQ $.
    $}

    ttgitvval.p $e |- .+ = ( +g ` H ) $.
    ${
      $d B k $.  $d K k $.  $d L k $.  $d M k $.  $d .x. k $.
      ttgcontlem1.h $e |- ( ph -> H e. CVec ) $.
      ttgcontlem1.a $e |- ( ph -> A e. P ) $.
      ttgcontlem1.n $e |- ( ph -> N e. P ) $.
      ttgcontlem1.o $e |- ( ph -> M =/= 0 ) $.
      ttgcontlem1.p $e |- ( ph -> K =/= 0 ) $.
      ttgcontlem1.q $e |- ( ph -> K =/= 1 ) $.
      ttgcontlem1.r $e |- ( ph -> L =/= M ) $.
      ttgcontlem1.s $e |- ( ph -> L <_ ( M / K ) ) $.
      ttgcontlem1.l $e |- ( ph -> L e. ( 0 [,] 1 ) ) $.
      ttgcontlem1.k $e |- ( ph -> K e. ( 0 [,] 1 ) ) $.
      ttgcontlem1.m $e |- ( ph -> M e. ( 0 [,] L ) ) $.
      ttgcontlem1.y $e |- ( ph -> ( X .- A ) = ( K .x. ( Y .- A ) ) ) $.
      ttgcontlem1.x $e |- ( ph -> ( X .- A ) = ( M .x. ( N .- A ) ) ) $.
      ttgcontlem1.b $e |- ( ph -> B = ( A .+ ( L .x. ( N .- A ) ) ) ) $.
      $( Lemma for % ttgcont .  (Contributed by Thierry Arnoux,
         24-May-2019.) $)
      ttgcontlem1 $p |- ( ph -> B e. ( X I Y ) ) $=
        ( vk co wcel cv wceq cc0 c1 cicc wrex cmul cmin cdiv cr unitssre sseldi
        cle wbr remulcld wss 0re iccssre sseldd resubcld 1red recnd 1cnd subdid
        sylancr subcld necomd subne0d mulne0d eqnetrrd redivcld crp cxr 0xr a1i
        rexrd iccgelb syl3anc ne0gt0d elrpd clt wne iccleub ltlend mpbir2and wb
        difrp syl2anc mpbird mulid1d breqtrrd mulcld ccvs cfv clmsubcl cvsdivcl
        mpbid eqid syl13anc syl grpsubcl clmvsass oveq12d oveq1d oveq2d mulcomd
        eqtrd 3eqtr3d lmodsubdir clmsub 3eqtr4d 3eqtr2rd cvsmuleqdivd cvsdiveqd
        grpnnncan2 eqeltrd rpmulcld eqeltrrd subge0d mulge0d lemuldivd lesub1dd
        subdird breqtrd divge0d ledivmuld elicc2i syl3anbrc cclm cvsclm 0elunit
        1re iccss2 sstrd csca 1elunit cgrp clmgrp divmuldivd csg clmlmod clmvs1
        clmod eqcomd lmodvscl grpcl cabl ablpncan2 eqtr4d 3eqtr3rd oveq1 eqeq2d
        lmodabl rspcev ttgelitv ) ACPQJVCVDCPNVCZVBVEZQPNVCZGVCZVFZVBVGVHVIVCZV
        JZALKVKVCZMKVKVCZVLVCZMVHVKVCZUWHVLVCZVMVCZUWEVDZUVTUWLUWBGVCZVFZUWFAUW
        LVNVDVGUWLVQVRUWLVHVQVRZUWMAUWIUWKAUWGUWHALKAUWEVNLVOUPVPZAUWEVNKVOUQVP
        ZVSZAMKAVGLVIVCZVNMAVGVNVDLVNVDUWTVNVTWAUWQVGLWBWIURWCZUWRVSZWDZAUWJUWH
        AMVHUXAAWEZVSZUXBWDAMVHKVLVCZVKVCZUWKVGAMVHKAMUXAWFZAWGZAKUWRWFZWHZAMUX
        FUXHAVHKUXIUXJWJZUKAVHKUXIUXJAKVHUMWKZWLZWMWNWOAUWIUWKUXCAUXGUWKWPUXKAM
        UXFAMUXAAMUXAAVGWQVDZLWQVDZMUWTVDZVGMVQVRUXOAWRWSZALUWQWTZURVGLMXAXBUKX
        CXDAKVHXEVRZUXFWPVDZAUXTKVHVQVRZVHKXFAUXOVHWQVDZKUWEVDZUYBUXRAVHUXDWTZU
        QVGVHKXGXBUXMAKVHUWRUXDXHXIAKVNVDVHVNVDUXTUYAXJUWRUXDKVHXKXLYAUUAUUBZAV
        GLMVLVCZKVKVCZUWIVQAUYGKALMUWQUXAWDZUWRAVGUYGVQVRMLVQVRZAUXOUXPUXQUYJUX
        RUXSURVGLMXGXBALMUWQUXAUUCXMAUXOUYCUYDVGKVQVRUXRUYEUQVGVHKXAXBZUUDALMKA
        LUWQWFZUXHUXJUUGZUUHUUIAUWPUWIUWKVHVKVCZVQVRAUWIUWKUYNVQAUWGUWJUWHUWSUX
        EUXBAUWGMUWJVQAUWGMVQVRLMKVMVCVQVRUOALMKUWQUXAAKUWRAKUWRUYKULXCXDUUEXMA
        MUXHXNXOUUFAUWKAUWJUWHAMVHUXHUXIXPAMKUXHUXJXPWJXNXOAUWIVHUWKUXCUXDUYFUU
        JXMVGVHUWLWAUUPUUKUULAUYGMVMVCZKUXFVMVCZVKVCZUWBGVCZUYOUYPUWBGVCZGVCZUW
        NUVTAIUUMVDZUYOFVDZUYPFVDZUWBDVDZUYRUYTVFAIUHUUNZAIXQVDZUYGFVDZMFVDZMVG
        XFVUBUHAVUALFVDZVUHVUGVUEAUWEFLUFUPWCZAUWTFMAUWTUWEFAVGUWEVDLUWEVDUWTUW
        EVTUUOUPVGVHVGLUUQWIUFUURURWCZIUUSXRZFILMVULYBZUEXSXBZVUKUKUYGMVULFIVUM
        UEXTYCAVUFKFVDZUXFFVDZUXFVGXFVUCUHAUWEFKUFUQWCZAVUAVHFVDZVUOVUPVUEAUWEF
        VHUFVHUWEVDAUUTWSWCZVUQVULFIVHKVUMUEXSXBZUXNKUXFVULFIVUMUEXTYCAIUVAVDZQ
        DVDZPDVDZVUDAVUAVVAVUEIUVBYDZUDUCDINQPTUAYEXBZUYOUYPGVULFDIUWBTVUMUBUEY
        FYCAUYQUWLUWBGAUYQUYHUXGVMVCUWLAUYGMKUXFAUYGUYIWFZUXHUXJUXLUKUXNUVCAUYH
        UWIUXGUWKVMUYMUXKYGYKYHAMUYGGVULFDIUYSUVTTUBVUMUEUHVUKVUNAUYSPBNVCZDAUX
        FKGVULFDIUWBVVGTUBVUMUEUHVUTVUQVVEAVVAVVCBDVDZVVGDVDVVDUCUIDINPBTUAYEXB
        ZUXNULAKUXFGVULFDIUWBVVGTUBVUMUEUHVUQVUTVVEVVIULAUXFVVGGVCUXFKQBNVCZGVC
        ZGVCZKUXFVVJGVCZGVCZKUWBGVCAVVGVVKUXFGUSYIAKUXFVKVCZVVJGVCZUXFKVKVCZVVJ
        GVCZVVNVVLAVVOVVQVVJGAKUXFUXJUXLYJYHAVUAVUOVUPVVJDVDZVVPVVNVFVUEVUQVUTA
        VVAVVBVVHVVSVVDUDUIDINQBTUAYEXBZKUXFGVULFDIVVJTVUMUBUEYFYCAVUAVUPVUOVVS
        VVRVVLVFVUEVUTVUQVVTUXFKGVULFDIVVJTVUMUBUEYFYCYLAVVMUWBKGAVVMVVJVVGNVCZ
        UWBAVHKVULUVDXRZVCZVVJGVCVHVVJGVCZVVKNVCVVMVWAAVHKVWBGVULFNDIVVJTUBVUMU
        EUAVWBYBZAVUAIUVGVDZVUEIUVEYDZVUSVUQVVTYMAUXFVWCVVJGAVUAVURVUOUXFVWCVFV
        UEVUSVUQVHKVULFIVUMUEYNXBYHAVVJVWDVVGVVKNAVWDVVJAVUAVVSVWDVVJVFVUEVVTGD
        IVVJTUBUVFXLUVHUSYGYOAVVAVVBVVCVVHVWAUWBVFVVDUDUCUIDINQPBTUAYSYCYKYIYPY
        QYRZVVIYTAVVACDVDZVVCUVTDVDVVDACBLOBNVCZGVCZEVCZDVAAVVAVVHVWKDVDZVWLDVD
        VVDUIAVWFVUIVWJDVDZVWMVWGVUJAVVAODVDVVHVWNVVDUJUIDINOBTUAYEXBZLGVULFDIV
        WJTVUMUBUEUVIXBZDEIBVWKTUGUVJXBYTZUCDINCPTUAYEXBZUKALMUYLUXHUNWLZAUYSVV
        GMUYGVMVCUVTGVCVWHAUYGMGVULFDIUVTVVGTUBVUMUEUHVUNVUKVWRVVIVWSUKAMUYGGVU
        LFDIUVTVVGTUBVUMUEUHVUKVUNVWRVVIUKAUYGVVGGVCUYGMVWJGVCZGVCZMUYGVWJGVCZG
        VCZMUVTGVCAVVGVWTUYGGUTYIAMUYGVKVCZVWJGVCZUYGMVKVCZVWJGVCZVXCVXAAVXDVXF
        VWJGAMUYGUXHVVFYJYHAVUAVUHVUGVWNVXEVXCVFVUEVUKVUNVWOMUYGGVULFDIVWJTVUMU
        BUEYFYCAVUAVUGVUHVWNVXGVXAVFVUEVUNVUKVWOUYGMGVULFDIVWJTVUMUBUEYFYCYLAVX
        BUVTMGAVXBCBNVCZVVGNVCZUVTALMVWBVCZVWJGVCVWKVWTNVCVXBVXIALMVWBGVULFNDIV
        WJTUBVUMUEUAVWEVWGVUJVUKVWOYMAUYGVXJVWJGAVUAVUIVUHUYGVXJVFVUEVUJVUKLMVU
        LFIVUMUEYNXBYHAVXHVWKVVGVWTNAVXHVWLBNVCZVWKACVWLBNVAYHAIUVKVDZVVHVWMVXK
        VWKVFAVWFVXLVWGIUVQYDUIVWPDEINBVWKTUGUAUVLXBYKUTYGYOAVVAVWIVVCVVHVXIUVT
        VFVVDVWQUCUIDINCPBTUAYSYCYKYIYPYQYRUVMYRUVNUWDUWOVBUWLUWEUWAUWLVFUWCUWN
        UVTUWAUWLUWBGUVOUVPUVRXLADGVBHIJNXQPQCRSTUAUBUCUDUHVWQUVSXM $.
    $}

$(
    @{
      @d .+ b j k l x y @.  @d .- b i j k l m x y @.  @d .x. b i j k l m x y @.
      @d A b i j k l m n u v x y @.  @d H j k l x y @.  @d P b j k l n x y @.
      @d I b j k l m n u v x y @.  @d L b j k l x y @.
      @d S b i j k l m n u v x y @.  @d T b j l m n u v x y @.
      @d ph j l m n u v x y @.
      ttgcont.h @e |- ( ph -> H e. CVec ) @.
      ttgcont.1 @e |- ( ph -> S C_ P ) @.
      ttgcont.2 @e |- ( ph -> T C_ P ) @.
      ttgcont.3 @e |- ( ph -> A e. P ) @.
      ttgcont.4 @e |- ( ( ph /\ u e. S /\ v e. T ) -> u e. ( A I v ) ) @.
      ttgcont.5 @e |- L = sup ( { k e. ( 0 [,] 1 ) |
        E. m e. S ( m .- A ) = ( k .x. ( n .- A ) ) } , RR , < ) @.
      @( Any subcomplex module equipped with the betweenness operation fulfills
         the Axiom of Continuity (Axiom A11).  This proof indirectly refers to
         ~ sup3 , the completeness axiom for the real, which itself refers to
         ~ axsup which can be replaced by ~ dedekind , so this proof indeed
         relates to the continuity of the real line.  (Contributed by Thierry
         Arnoux, 16-May-2019.) @)
      ttgcont @p |- ( ph -> E. b e. P A. x e. S A. y e. T b e. ( x I y ) ) @=
        ( vj vl cv co wcel wral wrex c0 wceq adantr rzal adantl ralrimivw eleq1
        wa ralbidv rspcev syl2anc wne wtru adantlr cgrp cclm clmgrp syl clmlmod
        clmod cc0 c1 cicc wss ad2antrr crab clt csup 0red 1red ssrab2 a1i nfre1
        cr nfv nfcv nfrab simpr 3expb ralrimivva oveq2 eleq2d cbvral2v r19.21bi
        nfne sylib an32s sselda ttgelitv rspe rexcom sylibr reximdva0 r19.29af2
        mpbid rabn0 a1tru supicc sseldd syl3anc ad4antr cle wbr unitssre sseldi
        cxr rexrd jca oveq1 syl21anc r19.29a pm2.61dane syl5eqel grpsubcl grpcl
        csca cfv eqid lmodvscl simprl simprr ad6antr simpl ne0i simp-4r iccgelb
        simplr 1re eqeq1d eqeq2d rexbidv supiccub syl6breqr w3a elicc2 syl23anc
        elrab biimpar simpllr eqidd ttgcontlem1 simpld simprd ) AUDVDZBVDZCVDZR
        VEZVFZCKVGZBJVGZUDGVHZKVIAKVIVJZVPZFGVFZFUVOVFZCKVGZBJVGZUVSAUWBUVTUSVK
        UWAUWDBJUVTUWDAUWCCKVLVMVNUVRUWEUDFGUVLFVJZUVQUWDBJUWFUVPUWCCKUVLFUVOVO
        VQVQVRZVSAKVIVTZVPZWAUVSOKUWIOVDZKVFZVPUVSWAAUWKUVSUWHAUWKVPZUVSJVIAJVI
        VJZUVSUWKAUWMVPUWBUWEUVSAUWBUWMUSVKUWMUWEAUWDBJVLVMUWGVSWBUWLJVIVTZVPZF
        SUWJFTVEZLVEZHVEZGVFZUWRUVOVFZCKVGZBJVGZUVSUWOQWCVFZUWBUWQGVFZUWSUWLUXC
        UWNUWLQWDVFZUXCAUXEUWKUNVKZQWEWFVKZUWLUWBUWNAUWBUWKUSVKZVKZUWOQWHVFZSIV
        FUWPGVFZUXDUWLUXJUWNUWLUXEUXJUXFQWGWFZVKUWOWIWJWKVEZISAUXMIWLZUWKUWNUOW
        MUWOSNVDZFTVEZMVDZUWPLVEZVJZNJVHZMUXMWNZXBWOWPZUXMVAUWOUYAWIWJUWOWQZUWO
        WRUYAUXMWLZUWOUXTMUXMWSZWTUWOWAUYAVIVTZNJUWONXCNUYAVIUXTNMUXMUXSNJXANUX
        MXDXENVIXDXMUWOUXOJVFZVPUYFWAUWLUYGUYFUWNUWLUYGVPZUXTMUXMVHZUYFUYHUXSMU
        XMVHZNJVHZUYIUYHUYGUYJUYKUWLUYGXFUYHUXOFUWJRVEZVFZUYJAUYGUWKUYMAUYGVPUY
        MOKAUYMOKVGZNJAEVDZFDVDZRVEZVFZDKVGEJVGZUYNNJVGAUYREDJKAUYOJVFUYPKVFUYR
        UTXGXHZUYRUYMUXOUYQVFEDNOJKUYOUXOUYQVOUYPUWJVJZUYQUYLUXOUYPUWJFRXIZXJXK
        XNXLXLXOUYHGLMPQRTWHFUWJUXOUEUFUGUHUIUWLUXJUYGUXLVKUWLUWBUYGUXHVKUWLUWJ
        GVFZUYGAKGUWJURXPZVKUWLJGUXOAJGWLZUWKUQVKZXPXQYCUYJNJXRVSUXSMNUXMJXSXTU
        XTMUXMYDXTWBVKUWLWANJUYHYEYAYBZYFUUAZYGUWOUXCVUCUWBUXKUXGUWLVUCUWNVUDVK
        UXIGQTUWJFUGUHUUBYHSLQUUDUUEZIGQUWPUGVUIUUFUIUMUUGYHGHQFUWQUGUPUUCYHUWL
        UXBUWNUWLUWTBCJKUWLUVMJVFZUVNKVFZVPZVPZUVMFTVEZVBVDZUVNFTVELVEVJZUWTVBU
        XMVUMVUOUXMVFZVPZVUPVPZVUNVCVDZUWPLVEZVJZUWTVCUXMVUSVUTUXMVFZVPZVVBVPZF
        UWRGHILPQRVUOSVUTTUWJWDUVMUVNUEUFUGUHUIVUMUXEVUQVUPVVCVVBUWLUXEVULUXFVK
        ZYIZVUMUVMGVFVUQVUPVVCVVBVUMJGUVMUWLVUEVULVUFVKUWLVUJVUKUUHZYGZYIVUMUVN
        GVFVUQVUPVVCVVBVUMKGUVNAKGWLUWKVULURWMUWLVUJVUKUUIZYGZYIUMVVGAUXNUWKVUL
        VUQVUPVVCVVBUOUUJUPVVEUWLUWBVUMUWLVUQVUPVVCVVBUWLVULUUKZYIZUXHWFVUMVUCV
        UQVUPVVCVVBVUMUWLVUCVVLVUDWFZYIVVEUWLUWNSUXMVFVVMVUMUWNVUQVUPVVCVVBVUMV
        UJUWNVVHJUVMUULWFYIZVUHVSZVUMVUQVUPVVCVVBUUMVVEWIXBVFZSXBVFZVUTXBVFZWIV
        UTYJYKZVUTSYJYKZVUTWISWKVEVFZVVEUWLUWNVVQVVMVVOUYCVSZVVEUXMXBSYLVVPYMVV
        EUXMXBVUTYLVUSVVCVVBUUOZYMVVEWIYNVFWJYNVFVVCVVTVVEWIVWCYOVVEWJWJXBVFVVE
        UUPWTZYOVWDWIWJVUTUUNYHVVEVUTUYBSYJVVEUYAWIWJVUTVWCVWEUYDVVEUYEWTVVEUWL
        UWNUYFVVMVVOVUGVSVVEVVCUXPVVAVJZNJVHZVPVUTUYAVFVVEVVCVWGVWDVVEVUJVVBVPV
        WGVVEVUJVVBVUMVUJVUQVUPVVCVVBVVHYIVVDVVBXFZYPVWFVVBNUVMJUXOUVMVJUXPVUNV
        VAUXOUVMFTYQUUQVRWFYPUXTVWGMVUTUXMUXQVUTVJZUXSVWFNJVWIUXRVVAUXPUXQVUTUW
        PLYQUURUUSUVEXTUUTVAUVAVVQVVRVPVWBVVSVVTVWAUVBWISVUTUVCUVFUVDVURVUPVVCV
        VBUVGVWHVVEUWRUVHUVIVUMVVBVCUXMVHZVUQVUPVUMUVMUYLVFZVWJVUMAVUJUWKVWKVUM
        AUWKVVLUVJZVVHVUMAUWKVVLUVKAVUJVPZVWKOKAVWKOKVGZBJAUYSVWNBJVGUYTUYRVWKU
        VMUYQVFZEDBOJKUYOUVMUYQVOZVUAUYQUYLUVMVUBXJXKXNXLXLYRVUMGLVCPQRTWDFUWJU
        VMUEUFUGUHUIVVFVUMUWLUWBVVLUXHWFZVVNVVIXQYCWMYSVUMUVMFUVNRVEZVFZVUPVBUX
        MVHVUMAVUJVUKVWSVWLVVHVVJVWMVWSCKAVWSCKVGZBJAUYSVWTBJVGUYTUYRVWSVWOEDBC
        JKVWPUYPUVNVJUYQVWRUVMUYPUVNFRXIXJXKXNXLXLYRVUMGLVBPQRTWDFUVNUVMUEUFUGU
        HUIVVFVWQVVKVVIXQYCYSXHVKUVRUXBUDUWRGUVLUWRVJZUVQUXABJVXAUVPUWTCKUVLUWR
        UVOVOVQVQVRVSYTWBVKAWAOKUWLYEYAYSYT @.
    @}

    ttgelitv2.r @e |- R = ( Base ` ( Scalar ` H ) ) @.
    ttgelitv2.1 @e |- ( ph -> H e. CMod ) @.
    ttgelitv2.2 @e |- ( ph -> ( 0 [,] 1 ) C_ R ) @.
    ttgelitv2.3 @e |- ( ph -> 1 = ( 1r ` ( Scalar ` H ) ) ) @.
    @{
      ttgelitv2.z @e |- ( ph -> Z e. P ) @.
      @( Betweenness for a subcomplex Hilbert space augmented with betweenness.
         (Contributed by Thierry Arnoux, 25-Mar-2019.) @)
      ttgelitv2 @p |- ( ph -> ( Z e. ( X I Y )
        <-> E. k e. ( 0 [,] 1 ) ( Y .- Z ) = ( k .x. ( Y .- X ) ) ) ) @=
        ? @.
    @}

    @{
      ttgpasch.3 @e |- ( ph -> Z e. P ) @.
      ttgpasch.4 @e |- ( ph -> U e. P ) @.
      ttgpasch.5 @e |- ( ph -> V e. P ) @.
      ttgpasch.6 @e |- ( ph -> U e. ( X I Z ) ) @.
      ttgpasch.7 @e |- ( ph -> V e. ( Y I Z ) ) @.
      ttgpasch.8 @e |- E = ( ( k - ( k x. l ) ) / ( 1 - ( k x. l ) ) ) @.
      ttgpasch.9 @e |- F = ( ( l - ( k x. l ) ) / ( 1 - ( k x. l ) ) ) @.
      @( Any subcomplex vector space equipped with the betweenness operation
         fulfills the axiom of Pasch, Axiom A7 of [Schwabhauser] p. 12.
         (Contributed by Thierry Arnoux, 26-Mar-2019.) @)
      ttgpasch @p |- ( ph
        -> E. a e. P ( a e. ( U I Y ) /\ a e. ( V I X ) ) ) @=
        ? @.
    @}

    @{
      ttgsegcon.1 @e |- ( ph -> X e. P ) @.
      ttgsegcon.2 @e |- ( ph -> Y e. P ) @.
      ttgsegcon.3 @e |- ( ph -> A e. P ) @.
      ttgsegcon.4 @e |- ( ph -> B e. P ) @.
      @( Any subcomplex module equipped with the betweenness operation fulfills
         the axiom of segment construction, Axiom A4 of [Schwabhauser] p. 11.
         (Contributed by Thierry Arnoux, 26-Mar-2019.) @)
      ttgsegcon @p |- ( ph
        -> E. z e. P ( Y e. ( X I z ) /\ ( Y .- z ) = ( A .- B ) ) ) @=
        ? @.
    @}
  $)
  $}

  ${
    $d x y z G $.
    $( Any metric space fulfills Tarski's geometry axioms of congruence.
       (Contributed by Thierry Arnoux, 13-Mar-2019.) $)
    xmstrkgc $p |- ( G e. *MetSp -> G e. TarskiGC ) $=
      ( vx vy vz cxme wcel cvv cv cds cfv co wceq cbs wral wi wa w3a cc0 xmseq0
      eqid cstrkgc xmssym 3expb ralrimivva simpl simpr3 equid mpbiri syl3anc wb
      elex eqeq2d 3adant3r3 bitrd biimpd ralrimivvva jca citv istrkgc sylanbrc
      ) AEFZAGFBHZCHZAIJZKZVCVBVDKLZCAMJZNBVGNZVEDHZVIVDKZLZVBVCLZOZDVGNCVGNBVG
      NZPAUAFAEUKVAVHVNVAVFBCVGVGVAVBVGFZVCVGFZVFVBVCVDAVGVGTZVDTZUBUCUDVAVMBCD
      VGVGVGVAVOVPVIVGFZQZPZVKVLWAVKVERLZVLWAVJRVEWAVAVSVSVJRLZVAVTUEVAVOVPVSUF
      ZWDVAVSVSQWCVIVILDUGVIVIVDAVGVQVRSUHUIULVAVOVPWBVLUJVSVBVCVDAVGVQVRSUMUNU
      OUPUQBCDVGAAURJZVDVQVRWETUSUT $.
  $}

$(
  @{
    cmodtrkgb.g @e |- G = ( toTG ` W ) @.
    cmodtrkgb.f @e |- R = ( Base ` ( Scalar ` H ) ) @.
    @( Any subcomplex vector space equipped with the betweenness operation
       fulfills Tarski's geometry axioms for betweenness. @)
    cmodtrkgb @p |- ( ( W e. CVec /\ ( 0 [,] 1 ) C_ R ) -> G e. TarskiGB ) @=
      ? @.
  @}
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Geometry in the complex plane
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

$(
  @{
    @d x y B @.  @d x y K @.  @d x y L @.  @d x y ph @.
    nlmpropd.1 @e |- ( ph -> B = ( Base ` K ) ) @.
    nlmpropd.2 @e |- ( ph -> B = ( Base ` L ) ) @.
    nlmpropd.3 @e |- ( ( ph /\ ( x e. B /\ y e. B ) ) ->
      ( x ( +g ` K ) y ) = ( x ( +g ` L ) y ) ) @.
    nlmpropd.4 @e |- ( ph -> F = ( Scalar ` K ) ) @.
    nlmpropd.5 @e |- ( ph -> F = ( Scalar ` L ) ) @.
    nlmpropd.6 @e |- P = ( Base ` F ) @.
    nlmpropd.7 @e |- ( ( ph /\ ( x e. P /\ y e. B ) ) ->
      ( x ( .s ` K ) y ) = ( x ( .s ` L ) y ) ) @.
    nlmpropd.8 @e |- ( ph ->
      ( ( dist ` K ) |` ( B X. B ) ) = ( ( dist ` L ) |` ( B X. B ) ) ) @.
    nlmpropd.9 @e |- ( ph -> ( TopOpen ` K ) = ( TopOpen ` L ) ) @.
    @( Property deduction for a normed group.  (Contributed by Mario Carneiro,
       4-Oct-2015.) @)
    nlmpropd @p |- ( ph -> ( K e. NrmMod <-> L e. NrmMod ) ) @=
      ? @.
  @}
$)

  ${
    cchhl.c $e |- C = ( ( ( subringAlg ` CCfld ) ` RR ) sSet <. ( .i ` ndx ) ,
      ( x e. CC , y e. CC |-> ( x x. ( * ` y ) ) ) >. ) $.
    ${
      $d x y $.
      cchhllem.2 $e |- E = Slot N $.
      cchhllem.3 $e |- N e. NN $.
      cchhllem.4 $e |- ( N < 5 \/ 8 < N ) $.
      $( Lemma for chlbas and chlvsca .  (Contributed by Thierry Arnoux,
         15-Apr-2019.) $)
      cchhllem $p |- ( E ` CCfld ) = ( E ` C ) $=
        ( cr ccnfld cfv cc wne c8 c5 clt wbr 8re wtru csra cnx cip cv ccj cmpt2
        cmul co cop csts ndxid 5lt8 nnrei 5re lttri mpan2 ltnei syl necomd jaoi
        wo ax-mp ndxarg ipndx neeq12i mpbir setsnid wceq eqidd cbs wss cnfldbas
        ax-resscn sseqtri a1i sralem trud fveq2i 3eqtr4i ) JKUALLZDLZVTUBUCLZAB
        MMAUDBUDUELUGUHUFZUIUJUHZDLKDLZCDLWCWBDVTDEGHUKUBDLZWBNEONZEPQRZOEQRZVA
        WGIWHWGWIWHOEWHEOQRZOENWHPOQRWJULEPOEHUMZUNSUOUPEOWKSUQURUSOESWKUQUTVBW
        FEWBODEGHVCVDVEVFVGWEWAVHTVTJDEKTVTVIJKVJLZVKTJMWLVMVLVNVOGHIVPVQCWDDFV
        RVS $.
    $}

$(
    @( The base of the complex plane equipped with an inner product @)
    cchhlbas @p |- CC = ( Base ` C ) @=
      ? @.

    @( The scalar field of the complex plane equipped with an inner product @)
    cchhlsca @p |- ( CCfld |`s RR ) = ( Scalar ` C ) @=
      ? @.

    @( The scalar field of the complex plane equipped with an inner product @)
    cchhlds @p |- ( CCfld |`s RR ) = ( Scalar ` C ) @=
      ? @.

    @( Define the complex plane as a Hilbert space.  This is done by taking the
       field of complex numbers seen as a subring algebra over the real numbers
       ` RR ` , and augmenting it with the canonical inner product operation.
       (Contributed by Thierry Arnoux, 24-Mar-2019.) @)
    cchhl @p |- C e. CHil @=
      ? @.

    ccg.e @p |- G = ( toTG ` C ) @.

    @( The geometry structure for ` CC ` is a Tarski geometry @)
    ccgtrkg @p |- G e. TarskiG @=
      ? @.

    @( The geometry structure for ` CC ` is Euclidean @)
    ccgtrkge @p |- G e. TarskiGE @=
      ? @.

    @( The geometry structure for ` CC ` is a geometry of dimension 2 @)
    ccg2dg @p |- G e. TarskiG2D @=
      ? @.
$)
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Geometry in Euclidean spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Definition of the Euclidean space
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c EE Btwn Cgr $.

  $( Declare the syntax for the Euclidean space generator. $)
  cee $a class EE $.

  $( Declare the syntax for the Euclidean betweenness predicate. $)
  cbtwn $a class Btwn $.

  $( Declare the syntax for the Euclidean congruence predicate. $)
  ccgr $a class Cgr $.

  $( Define the Euclidean space generator.  For details, see ~ elee .
     (Contributed by Scott Fenton, 3-Jun-2013.) $)
  df-ee $a |- EE = ( n e. NN |-> ( RR ^m ( 1 ... n ) ) ) $.

  ${
    $d n x y z t i $.
    $( Define the Euclidean betweenness predicate.  For details, see ~ brbtwn .
       (Contributed by Scott Fenton, 3-Jun-2013.) $)
    df-btwn $a |- Btwn =
      `' { <. <. x , z >. , y >. |
         E. n e. NN (
           ( x e. ( EE ` n ) /\ z e. ( EE ` n ) /\ y e. ( EE ` n ) ) /\
           E. t e. ( 0 [,] 1 ) A. i e. ( 1 ... n )
             ( y ` i ) = ( ( ( 1 - t ) x. ( x ` i ) ) + ( t x. ( z ` i ) ) ) )
         } $.
  $}

  ${
    $d n x y i $.
    $( Define the Euclidean congruence predicate.  For details, see ~ brcgr .
       (Contributed by Scott Fenton, 3-Jun-2013.) $)
    df-cgr $a |- Cgr =
       { <. x , y >. |
         E. n e. NN
           ( ( x e. ( ( EE ` n ) X. ( EE ` n ) ) /\
             y e. ( ( EE ` n ) X. ( EE ` n ) ) ) /\
           sum_ i e. ( 1 ... n )
             ( ( ( ( 1st ` x ) ` i ) - ( ( 2nd ` x ) ` i ) ) ^ 2 ) =
           sum_ i e. ( 1 ... n )
             ( ( ( ( 1st ` y ) ` i ) - ( ( 2nd ` y ) ` i ) ) ^ 2 ) ) } $.
  $}

  ${
    $d N n $.
    $( Membership in a Euclidean space.  We define Euclidean space here using
       Cartesian coordinates over ` N ` space.  We later abstract away from
       this using Tarski's geometry axioms, so this exact definition is
       unimportant.  (Contributed by Scott Fenton, 3-Jun-2013.) $)
    elee $p |- ( N e. NN -> ( A e. ( EE ` N ) <-> A : ( 1 ... N ) --> RR ) ) $=
      ( vn cn wcel cee cfv cr c1 cfz co cmap wf cv wceq oveq2 oveq2d df-ee ovex
      fvmpt eleq2d reex elmap syl6bb ) BDEZABFGZEAHIBJKZLKZEUGHAMUEUFUHACBHICNZ
      JKZLKUHDFUIBOUJUGHLUIBIJPQCRHUGLSTUAHUGAUBIBJSUCUD $.
  $}

  ${
    $d N a k $.  $d A a $.  $d B a $.  $d F a $.
    $( A condition for a mapping to be an element of a Euclidean space.
       (Contributed by Scott Fenton, 7-Jun-2013.) $)
    mptelee $p |- ( N e. NN ->
      ( ( k e. ( 1 ... N ) |-> ( A F B ) ) e. ( EE ` N ) <->
        A. k e. ( 1 ... N ) ( A F B ) e. RR ) ) $=
      ( va cn wcel c1 cfz co cr wral wss cv wi wal rsp sylbir bitri cmpt cee wf
      cfv elee crn wfn ovex eqid fnmpti df-f mpbiran wceq wrex cab rnmpt sseq1i
      abss nfre1 nfv nfim nfal r19.23v albii ralcom4 clel2 syl6ibr nfra1 eleq1a
      ralrimi syl6 rexlimd alrimiv impbii syl6bb ) EGHCIEJKZABDKZUAZEUBUDHVPLVR
      UCZVQLHZCVPMZVREUEVSVRUFZLNZWAVSVRVPUGWCCVPVQVRABDUHZVRUIZUJVPLVRUKULWCFO
      ZVQUMZCVPUNZFUOZLNZWAWBWILCFVPVQVRWEUPUQWJWHWFLHZPZFQZWAWHFLURWMWAWMVTCVP
      WLCFWHWKCWGCVPUSWKCUTZVAVBWMWGWKPZCVPMZFQZCOVPHZVTPZWPWLFWGWKCVPVCVDWQWOF
      QZCVPMZWSWOCFVPVEXAWRWTVTWTCVPRFVQLWDVFVGSSVJWAWLFWAWGWKCVPVTCVPVHWNWAWRV
      TWOVTCVPRVQLWFVIVKVLVMVNTTTVO $.
  $}

  ${
    $( If ` A ` is in ` ( EE `` N ) ` , then ` N ` is a natural.  (Contributed
       by Scott Fenton, 1-Jul-2013.) $)
    eleenn $p |- ( A e. ( EE ` N ) -> N e. NN ) $=
      ( vn cee cfv wcel c0 wceq cn n0i cdm cr c1 cv cfz cmap ovex df-ee dmmpti
      co eleq2i ndmfv sylnbir nsyl2 ) ABDEZFUEGHZBIFZUEAJUGBDKZFUFUHIBCILMCNOTZ
      PTDLUIPQCRSUABDUBUCUD $.
  $}

  $( The forward direction of ~ elee .  (Contributed by Scott Fenton,
     1-Jul-2013.) $)
  eleei $p |- ( A e. ( EE ` N ) -> A : ( 1 ... N ) --> RR ) $=
    ( cee cfv wcel c1 cfz co cr wf cn wb eleenn elee syl ibi ) ABCDEZFBGHIAJZQB
    KEQRLABMABNOP $.

  $( A point belongs to at most one Euclidean space.  (Contributed by Scott
     Fenton, 1-Jul-2013.) $)
  eedimeq $p |- ( ( A e. ( EE ` N ) /\ A e. ( EE ` M ) ) -> N = M ) $=
    ( cee cfv wcel wa c1 wceq cfz co cr wf eleei cdm fdm sylan9req syl2an cuz
    wb cn eleenn nnuz syl6eleq adantr fzopth syl mpbid simprd ) ACDEFZABDEFZGZH
    HIZCBIZULHCJKZHBJKZIZUMUNGZUJUOLAMZUPLAMZUQUKACNABNUSUTUOAOUPUOLAPUPLAPQRUL
    CHSEZFZUQURTUJVBUKUJCUAVAACUBUCUDUEHBHCUFUGUHUI $.

  ${
    $d N x y z i t n $.  $d A x y z i t n $.  $d B x y z i t n $.
    $d C x y z i t n $.
    $( The binary relation form of the betweenness predicate.  The statement
       ` A Btwn <. B , C >. ` should be informally read as " ` A ` lies on a
       line segment between ` B ` and ` C ` .  This exact definition is
       abstracted away by Tarski's geometry axioms later on.  (Contributed by
       Scott Fenton, 3-Jun-2013.) $)
    brbtwn $p |- (
      ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ->
      ( A Btwn <. B , C >. <->
        E. t e. ( 0 [,] 1 ) A. i e. ( 1 ... N )
           ( A ` i ) =
           ( ( ( 1 - t ) x. ( B ` i ) ) + ( t x. ( C ` i ) ) ) ) ) $=
      ( vn cv cfv wcel w3a c1 co cmul caddc wceq wral wrex wa cn vy vz vx cbtwn
      cop wbr cee cmin cfz cc0 cicc coprab ccnv df-btwn breqi wb cvv opex mpan2
      brcnvg 3ad2ant1 df-br eleq1 3anbi1d fveq1 oveq2d oveq1d eqeq2d rexralbidv
      anbi12d rexbidv 3anbi2d 3anbi3d eqeq1d eloprabg simp1 eedimeq syl2anr syl
      oveq2 raleqdv biimpd rexlimdvw eleenn fveq2 eleq2d 3anbi123d rspcev exp32
      expimpd wi mpcom impbid bitrd 3comr syl5bb ) BCDUEZUDUFBWQUAHZGHZUGIZJZUB
      HZWTJZUCHZWTJZKZEHZXDIZLAHZUHMZXGWRIZNMZXIXGXBIZNMZOMZPZELWSUIMZQAUJLUKMZ
      RZSZGTRZUAUBUCULZUMZUFZBFUGIZJZCYEJZDYEJZKZXGBIZXJXGCIZNMZXIXGDIZNMZOMZPZ
      ELFUIMZQZAXRRZBWQUDYCUAUCUBAEGUNUOYIYDWQBYBUFZYSYFYGYDYTUPZYHYFWQUQJUUACD
      URBWQYEUQYBUTUSVAYTWQBUEYBJZYIYSWQBYBVBYGYHYFUUBYSUPYGYHYFKZUUBCWTJZDWTJZ
      BWTJZKZYPEXQQZAXRRZSZGTRZYSYAUUDXCXEKZXHYLXNOMZPZEXQQAXRRZSZGTRUUDUUEXEKZ
      XHYOPZEXQQAXRRZSZGTRUUKUAUBUCCDBYEYEYEWRCPZXTUUPGTUVAXFUULXSUUOUVAXAUUDXC
      XEWRCWTVCVDUVAXPUUNAEXRXQUVAXOUUMXHUVAXLYLXNOUVAXKYKXJNXGWRCVEVFVGVHVIVJV
      KXBDPZUUPUUTGTUVBUULUUQUUOUUSUVBXCUUEUUDXEXBDWTVCVLUVBUUNUURAEXRXQUVBUUMY
      OXHUVBXNYNYLOUVBXMYMXINXGXBDVEVFVFVHVIVJVKXDBPZUUTUUJGTUVCUUQUUGUUSUUIUVC
      XEUUFUUDUUEXDBWTVCVMUVCUURYPAEXRXQUVCXHYJYOXGXDBVEVNVIVJVKVOUUCUUKYSUUCUU
      JYSGTUUCUUGUUIYSUUCUUGSZUUIYSUVDWSFPZUUIYSUPUUGUUDYGUVEUUCUUDUUEUUFVPYGYH
      YFVPCFWSVQVRUVEUUHYRAXRUVEYPEXQYQWSFLUIVTWAVKZVSWBWJWCFTJZUUCYSUUKWKYGYHU
      VGYFCFWDVAUVGUUCYSUUKUUJUUCYSSGFTUVEUUGUUCUUIYSUVEUUDYGUUEYHUUFYFUVEWTYEC
      WSFUGWEZWFUVEWTYEDUVHWFUVEWTYEBUVHWFWGUVFVJWHWIWLWMWNWOWPWNWP $.
  $}

  ${
    $d N n i x y $.  $d A n i x y $.  $d B n i x y $.  $d C n i x y $.
    $d D n i x y $.
    $( The binary relation form of the congruence predicate.  The statement
       ` <. A , B >. Cgr <. C , D >. ` should be read informally as "the ` N `
       dimensional point ` A ` is as far from ` B ` as ` C ` is from ` D ` , or
       "the line segment ` A B ` is congruent to the line segment ` C D ` .
       This particular definition is encapsulated by Tarski's axioms later on.
       (Contributed by Scott Fenton, 3-Jun-2013.) $)
    brcgr $p |- ( ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
                    ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
      ( <. A , B >. Cgr <. C , D >. <->
        sum_ i e. ( 1 ... N ) ( ( ( A ` i ) - ( B ` i ) ) ^ 2 ) =
        sum_ i e. ( 1 ... N ) ( ( ( C ` i ) - ( D ` i ) ) ^ 2 ) ) ) $=
      ( vn cfv wcel wa co c1st c2nd cmin c2 cexp csu wceq cn fveq1d vx cop ccgr
      vy wbr cv cee cxp c1 cfz wrex eleq1 anbi1d fveq2 oveq12d oveq1d sumeq2sdv
      opex eqeq1d anbi12d rexbidv anbi2d eqeq2d df-cgr brab wb opelxp2 ad2antll
      simplrr eedimeq syl2anc adantlr oveq2 sumeq1d syl op1stg op2ndg eqeqan12d
      eqeq12d ad2antrr bitrd biimpd expimpd rexlimdva wi eleenn opelxpi anim12i
      adantr biimpar jca sqxpeqd eleq2d rspcev sylan2 exp32 mpcom impbid syl5bb
      ) ABUBZCDUBZUCUEWTGUFZUGHZXCUHZIZXAXDIZJZUIXBUJKZEUFZWTLHZHZXIWTMHZHZNKZO
      PKZEQZXHXIXALHZHZXIXAMHZHZNKZOPKZEQZRZJZGSUKZAFUGHZIBYGIJZCYGIZDYGIZJZJZU
      IFUJKZXIAHZXIBHZNKZOPKZEQZYMXICHZXIDHZNKZOPKZEQZRZUAUFZXDIZUDUFZXDIZJZXHX
      IUUELHZHZXIUUEMHZHZNKZOPKZEQZXHXIUUGLHZHZXIUUGMHZHZNKZOPKZEQZRZJZGSUKXEUU
      HJZXPUVCRZJZGSUKYFUAUDWTXAUCABURCDURUUEWTRZUVEUVHGSUVIUUIUVFUVDUVGUVIUUFX
      EUUHUUEWTXDULUMUVIUUPXPUVCUVIXHUUOXOEUVIUUNXNOPUVIUUKXKUUMXMNUVIXIUUJXJUU
      EWTLUNTUVIXIUULXLUUEWTMUNTUOUPUQUSUTVAUUGXARZUVHYEGSUVJUVFXGUVGYDUVJUUHXF
      XEUUGXAXDULVBUVJUVCYCXPUVJXHUVBYBEUVJUVAYAOPUVJUURXRUUTXTNUVJXIUUQXQUUGXA
      LUNTUVJXIUUSXSUUGXAMUNTUOUPUQVCUTVAUAUDEGVDVEYLYFUUDYLYEUUDGSYLXBSIZJZXGY
      DUUDUVLXGJZYDUUDUVMYDYMXOEQZYMYBEQZRZUUDUVMXBFRZYDUVPVFYLXGUVQUVKYLXGJDXC
      IZYJUVQXFUVRYLXECDXCXCVGVHYHYIYJXGVIDFXBVJVKVLUVQXPUVNYCUVOUVQXHYMXOEXBFU
      IUJVMZVNUVQXHYMYBEUVSVNVSZVOYLUVPUUDVFUVKXGYHYKUVNYRUVOUUCYHYMXOYQEYHXNYP
      OPYHXKYNXMYONYHXIXJAABYGYGVPTYHXIXLBABYGYGVQTUOUPUQYKYMYBUUBEYKYAUUAOPYKX
      RYSXTYTNYKXIXQCCDYGYGVPTYKXIXSDCDYGYGVQTUOUPUQVRZVTWAWBWCWDFSIZYLUUDYFWEY
      JUWBYHYIDFWFVHUWBYLUUDYFYLUUDJZUWBWTYGYGUHZIZXAUWDIZJZUVPJZYFUWCUWGUVPYLU
      WGUUDYHUWEYKUWFABYGYGWGCDYGYGWGWHWIYLUVPUUDUWAWJWKYEUWHGFSUVQXGUWGYDUVPUV
      QXEUWEXFUWFUVQXDUWDWTUVQXCYGXBFUGUNWLZWMUVQXDUWDXAUWIWMUTUVTUTWNWOWPWQWRW
      S $.
  $}

  $( The function value of a point is a real.  (Contributed by Scott Fenton,
     10-Jun-2013.) $)
  fveere $p |- ( ( A e. ( EE ` N ) /\ I e. ( 1 ... N ) ) ->
         ( A ` I ) e. RR ) $=
    ( cee cfv wcel c1 cfz co cr eleei ffvelrnda ) ACDEFGCHIJBAACKL $.

  $( The function value of a point is a complex.  (Contributed by Scott Fenton,
     10-Jun-2013.) $)
  fveecn $p |- ( ( A e. ( EE ` N ) /\ I e. ( 1 ... N ) ) ->
         ( A ` I ) e. CC ) $=
    ( cee cfv wcel c1 cfz co wa fveere recnd ) ACDEFBGCHIFJBAEABCKL $.

  ${
    $d A i $.  $d B i $.  $d N i $.
    $( Two points are equal iff they agree in all dimensions.  (Contributed by
       Scott Fenton, 10-Jun-2013.) $)
    eqeefv $p |- ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
       ( A = B <-> A. i e. ( 1 ... N ) ( A ` i ) = ( B ` i ) ) ) $=
      ( cee cfv wcel c1 cfz co wfn wceq cv wral wb cr wf eleei ffn syl eqfnfv
      syl2an ) ADEFZGZAHDIJZKZBUEKZABLCMZAFUHBFLCUENOBUCGZUDUEPAQUFADRUEPASTUIU
      EPBQUGBDRUEPBSTCUEABUAUB $.
  $}

  ${
    $d N i $.  $d A i $.  $d B i $.
    $( Two points are equal iff the square of the distance between them is
       zero.  (Contributed by Scott Fenton, 10-Jun-2013.)  (Revised by Mario
       Carneiro, 22-May-2014.) $)
    eqeelen $p |- ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
        ( A = B <->
          sum_ i e. ( 1 ... N ) ( ( ( A ` i ) - ( B ` i ) ) ^ 2 ) = 0 ) ) $=
      ( cee cfv wcel wa cv cmin co c2 cexp cc0 wceq c1 wral cr fveere recnd cfz
      csu cc adantlr adantll resubcld sqeq0 syl subeq0ad bitrd ralbidva resqcld
      wb fzfid sqge0d fsum00 eqeefv 3bitr4rd ) ADEFZGZBUSGZHZCIZAFZVCBFZJKZLMKZ
      NOZCPDUAKZQVDVEOZCVIQVIVGCUBNOABOVBVHVJCVIVBVCVIGZHZVHVFNOZVJVLVFUCGVHVMU
      MVLVFVLVDVEUTVKVDRGVAAVCDSUDZVAVKVERGUTBVCDSUEZUFZTVFUGUHVLVDVEVLVDVNTVLV
      EVOTUIUJUKVBVIVGCVBPDUNVLVFVPULVLVFVPUOUPABCDUQUR $.
  $}

  ${
    $d N i j k p t $.  $d A i j k p t $.  $d B i j k p t $.  $d C i j k p t $.
    $( Alternate characterization of betweenness, with no existential
       quantifiers.  (Contributed by Scott Fenton, 24-Jun-2013.) $)
    brbtwn2 $p |-
        ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ->
          ( A Btwn <. B , C >. <->
            ( A. i e. ( 1 ... N )
            ( ( ( B ` i ) - ( A ` i ) ) x. ( ( C ` i ) - ( A ` i ) ) ) <_ 0 /\
              A. i e. ( 1 ... N ) A. j e. ( 1 ... N )
            ( ( ( B ` i ) - ( A ` i ) ) x. ( ( C ` j ) - ( A ` j ) ) ) =
            ( ( ( B ` j ) - ( A ` j ) ) x. ( ( C ` i ) - ( A ` i ) ) ) ) ) ) $=
      ( wcel wbr c1 cmin co cmul caddc wceq cc0 cle wa cc oveq1d wb vk vt vp cv
      cfv wral wrex wi cr fveere 3ad2antl2 3ad2antl3 cneg resubcl 3adant3 recnd
      w3a oveq2d 1re 3ad2ant3 mul4d recn 3ad2ant1 3ad2ant2 subdid ax-1cn subdir
      sylancr mp3an1 syl2anc mulid2d 3eqtr3d remulcld subsub4d mulneg1d oveq12d
      simp1 3eqtrd eqtrd mpbird mulge0d mpbid eqbrtrd 3expa sylan an32s anim12i
      ralrimiva fveecn anandirs subcl ancoms mulcomd simp2r syl22anc simp3 mpan
      simp2l mulcld sub32d 3eqtr3rd 3eqtr2d syl2an fveq2 eqeq12d rspccva breq1d
      weq ralbidva oveqan12d anbi12d wo 3ad2antl1 syl3anc anbi1d simpl2 adantlr
      oveq2 eqeefv fveq1 orbi12d bitrd adantr 3adant1 eqeq2d ralbidv rspcev wne
      ex oveq1 wn cdiv breq12d simprr simprl clt resubcld subge0d necomd subcld
      cee cop cbtwn cfz cicc brbtwn jca c2 cexp sqvald 0re elicc2i negcld nncan
      simp1bi simp2 subsub3d negeqd readdcld negsubdi2d resqcld simp2bi simp3bi
      3eqtr2rd mulneg2d subge0 sqge0d le0neg2d anim12dan 3adantl1 simp1l simp1r
      mulsub2 ralrimivva syl oveqan12rd 2ralbidva biimprcd rexlimdva mulsuble0b
      anandis simpl1 letri3d pm4.25 breq2d anbi2d ad2antlr biimprd adantrd 3jca
      syl5bb 0elunit mulid2 mul02 addid1 ad2antll eqtr2d 1m0e1 exp32 necon3abid
      syl6eq syldd df-ne rexbii bitri syl6bbr rspcv ad2antrl simpl lesub1d letr
      rexnal simplrr ltlend mpbir2and posdifd divelunit div2subd lesub2d jaodan
      eqeltrd syld rspc2v simp11 simp12 simpl23 simpl21 simpl12 simpl22 simpl13
      imp simp13 simpl3 subne0d divdird npncan2 adddird simpl11 addid2d addsubd
      mul02d add32d nnncan2d subdird eqtr3d eqtr4d 3eqtr4d adddid npcand addcld
      addsubassd simpr div23d divsubdird dividd syl331anc 3expia com23 ralrimdv
      divmuld anim12d syl6 rexlimdvaa sylbid pm2.61dne impbid ) AFUUAUEZGZBVVGG
[encoded data, 9840 characters]
      PYEYFYGVVBVVCVVDVVEVVDVVFYB $.
  $}

  $( Lemma for ~ colinearalg .  Expand out a multiplication.  (Contributed by
     Scott Fenton, 24-Jun-2013.) $)
  colinearalglem1 $p |- (
    ( ( A e. CC /\ B e. CC /\ C e. CC ) /\
      ( D e. CC /\ E e. CC /\ F e. CC ) ) ->
    ( ( ( B - A ) x. ( F - D ) ) = ( ( E - D ) x. ( C - A ) ) <->
      ( ( B x. F ) - ( ( A x. F ) + ( B x. D ) ) ) =
      ( ( C x. E ) - ( ( A x. E ) + ( C x. D ) ) ) ) ) $=
    ( cc wcel w3a cmin co cmul caddc subcld subdid subdird oveq12d mulcl syl2an
    wceq simpl2 simpl1 simpr3 simpr1 simp2 simp3 simp1 subsub3d addsubd 3eqtrrd
    subsub4d oveq1d 3eqtr2d simpr2 simpl3 mulcomd eqtr3d 3eqtrd addcld addcan2d
    wa eqeq12d bitrd ) AGHZBGHZCGHZIZDGHZEGHZFGHZIZVAZBAJKZFDJKLKZEDJKZCAJKZLKZ
    TBFLKZAFLKZBDLKZMKZJKZADLKZMKZCELKZAELKZCDLKZMKZJKZWCMKZTWBWITVLVNWDVQWJVLV
    NVMFLKZVMDLKZJKZVRVSJKZVTJKZWCMKZWDVLVMFDVLBAVDVEVFVKUAZVDVEVFVKUBZNVGVHVIV
    JUCZVGVHVIVJUDZOVLWMWNVTWCJKZJKWNWCMKVTJKWPVLWKWNWLXAJVLBAFWQWRWSPVLBADWQWR
    WTPQVLWNVTWCVLVRVSVGVEVJVRGHVKVDVEVFUEZVHVIVJUFZBFRSZVGVDVJVSGHVKVDVEVFUGZX
    CAFRSZNZVGVEVHVTGHVKXBVHVIVJUGZBDRSZVGVDVHWCGHVKXEXHADRSZUHVLWNWCVTXGXJXIUI
    UJVLWOWBWCMVLVRVSVTXDXFXIUKULUMVLVQVPVOLKVPELKZVPDLKZJKZWJVLVOVPVLEDVGVHVIV
    JUNZWTNVLCAVDVEVFVKUOZWRNZUPVLVPEDXPXNWTOVLWEWFJKZWGJKZWCMKZXMWJVLXMXQWGWCJ
    KZJKXQWCMKWGJKXSVLXKXQXLXTJVLCAEXOWRXNPVLCADXOWRWTPQVLXQWGWCVLWEWFVGVFVIWEG
    HVKVDVEVFUFZVHVIVJUEZCERSZVGVDVIWFGHVKXEYBAERSZNZVGVFVHWGGHVKYAXHCDRSZXJUHV
    LXQWCWGYEXJYFUIUJVLXRWIWCMVLWEWFWGYCYDYFUKULUQURVBVLWBWIWCVLVRWAXDVLVSVTXFX
    IUSNVLWEWHYCVLWFWGYDYFUSNXJUTVC $.

  ${
    $d A i j $.  $d B i j $.  $d C i j $.  $d N i j $.
    $( Lemma for ~ colinearalg .  Translate between two forms of the
       colinearity condition.  (Contributed by Scott Fenton, 24-Jun-2013.) $)
    colinearalglem2 $p |- (
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ->
       ( A. i e. ( 1 ... N ) A. j e. ( 1 ... N )
         ( ( ( B ` i ) - ( A ` i ) ) x. ( ( C ` j ) - ( A ` j ) ) ) =
         ( ( ( B ` j ) - ( A ` j ) ) x. ( ( C ` i ) - ( A ` i ) ) )
         <->
         A. i e. ( 1 ... N ) A. j e. ( 1 ... N )
         ( ( ( C ` i ) - ( B ` i ) ) x. ( ( A ` j ) - ( B ` j ) ) ) =
         ( ( ( C ` j ) - ( B ` j ) ) x. ( ( A ` i ) - ( B ` i ) ) ) ) ) $=
      ( cfv wcel w3a cmin co cmul wceq fveecn syl2an caddc mulcl subcld eqtrd
      cc cv c1 wa wb simp1 simpl simp2 simp3 simpr addcld subadd2d eqcom syl6bb
      cee cfz addsubd addcomd oveq1d eqtr3d eqeq2d bitrd subsub4d eqcomd oveq2d
      subsub3d subsubd 3eqtr2d eqeq1d subeqrev syl22anc 3bitr3rd addrsub sub32d
      addsub12d colinearalglem1 3anrot syl2anb 3bitr4d syl33anc 2ralbidva ) AFU
      NGZHZBWAHZCWAHZIZDUAZBGZWFAGZJKEUAZCGZWIAGZJKLKWIBGZWKJKWFCGZWHJKLKMZWMWG
      JKWKWLJKLKWJWLJKWHWGJKLKMZDEUBFUOKZWPWEWFWPHZWIWPHZUCZUCWHTHZWGTHZWMTHZWK
      THZWLTHZWJTHZWNWOUDWEWBWQWTWSWBWCWDUEZWQWRUFZAWFFNOWEWCWQXAWSWBWCWDUGZXGB
      WFFNOWEWDWQXBWSWBWCWDUHZXGCWFFNOWEWBWRXCWSXFWQWRUIZAWIFNOWEWCWRXDWSXHXJBW
      IFNOWEWDWRXEWSXIXJCWIFNOWTXAXBIZXCXDXEIZUCZWGWJLKZWHWJLKZWGWKLKZPKZJKWMWL
      LKZWHWLLKZWMWKLKZPKZJKMZXTXPXRPKJKZXOXNXSPKZJKZMZWNWOXMYBXPYEPKZXTXRJKZMZ
      YFXMXQXNJKZXSJKZYHMZYJYAXRJKZMZYIYBXMYLYJYHXSPKZMZYNXMYLYOYJMYPXMYJXSYHXM
      XQXNXMXOXPXKWTXEXOTHXLWTXAXBUEZXCXDXEUHZWHWJQOZXKXAXCXPTHXLWTXAXBUGZXCXDX
      EUEZWGWKQOZUJZXKXAXEXNTHZXLYTYRWGWJQOZRXKWTXDXSTHXLYQXCXDXEUGZWHWLQOZXMXT
      XRXKXBXCXTTHXLWTXAXBUHZUUAWMWKQOZXKXBXDXRTHZXLUUHUUFWMWLQOZRZUKYOYJULUMXM
      YOYMYJXMXTXSPKZXRJKYOYMXMXTXSXRUUIUUGUUKUPXMUUMYAXRJXMXTXSUUIUUGUQURUSUTV
      AXMYKYGYHXMYKXOXNJKZXPXSJKZPKZYGXMYKXQYDJKXOYDXPJKZJKZUUPXMXQXNXSUUCUUEUU
      GVBXMXOYDXPYSXMXNXSUUEUUGUJZUUBVEXMUURXOXNUUOJKZJKUUPXMUUQUUTXOJXMUUTUUQX
      MXNXPXSUUEUUBUUGVEVCVDXMXOXNUUOYSUUEXMXPXSUUBUUGRVFSVGXMUUPXPUUNXSJKZPKYG
      XMUUNXPXSXMXOXNYSUUERUUBUUGVNXMUVAYEXPPXMXOXNXSYSUUEUUGVBVDSSVHXMXQTHUUDY
      ATHUUJYNYBUDUUCUUEXMXSXTUUGUUIUJUUKXQXNYAXRVIVJVKXMYIYEYCMZYFXMYIYEYHXPJK
      ZMUVBXMXPYEYHUUBXMXOYDYSUUSRUULVLXMUVCYCYEXMUVCXTXPJKXRJKYCXMXTXRXPUUIUUK
      UUBVMXMXTXPXRUUIUUBUUKVBSUTVAYEYCULUMVAWHWGWMWKWLWJVOXKXAXBWTIXDXEXCIWOYF
      UDXLWTXAXBVPXCXDXEVPWGWMWHWLWJWKVOVQVRVSVT $.

    $( Lemma for ~ colinearalg .  Translate between two forms of the
       colinearity condition.  (Contributed by Scott Fenton, 24-Jun-2013.) $)
    colinearalglem3 $p |- (
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ->
       ( A. i e. ( 1 ... N ) A. j e. ( 1 ... N )
         ( ( ( B ` i ) - ( A ` i ) ) x. ( ( C ` j ) - ( A ` j ) ) ) =
         ( ( ( B ` j ) - ( A ` j ) ) x. ( ( C ` i ) - ( A ` i ) ) )
         <->
         A. i e. ( 1 ... N ) A. j e. ( 1 ... N )
         ( ( ( A ` i ) - ( C ` i ) ) x. ( ( B ` j ) - ( C ` j ) ) ) =
         ( ( ( A ` j ) - ( C ` j ) ) x. ( ( B ` i ) - ( C ` i ) ) ) ) ) $=
      ( cee cfv wcel w3a cv cmin co cmul wceq c1 cfz wral colinearalglem2 wb
      3comr bitrd ) AFGHZIZBUCIZCUCIZJDKZBHZUGAHZLMEKZCHZUJAHZLMNMUJBHZULLMUGCH
      ZUILMNMOEPFQMZRDUORUNUHLMULUMLMNMUKUMLMUIUHLMNMOEUORDUORZUIUNLMUMUKLMNMUL
      UKLMUHUNLMNMOEUORDUORZABCDEFSUEUFUDUPUQTBCADEFSUAUB $.
  $}

  ${
    $d A i $.  $d C i $.  $d K i $.  $d N i $.
    $( Lemma for ~ colinearalg .  Prove a disjunction that will be needed in
       the final proof.  (Contributed by Scott Fenton, 27-Jun-2013.) $)
    colinearalglem4 $p |- (
       ( ( A e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\ K e. RR ) ->
       ( A. i e. ( 1 ... N ) ( ( ( ( K x. ( ( C ` i ) - ( A ` i ) ) ) +
         ( A ` i ) ) - ( A ` i ) ) x. ( ( C ` i ) - ( A ` i ) ) ) <_ 0 \/
         A. i e. ( 1 ... N ) ( ( ( C ` i ) - ( ( K x. ( ( C ` i ) -
         ( A ` i ) ) ) + ( A ` i ) ) ) x. ( ( A ` i ) -
         ( ( K x. ( ( C ` i ) - ( A ` i ) ) ) + ( A ` i ) ) ) ) <_ 0 \/
         A. i e. ( 1 ... N ) ( ( ( A ` i ) - ( C ` i ) ) x. ( ( ( K x.
         ( ( C ` i ) - ( A ` i ) ) ) + ( A ` i ) ) - ( C ` i ) ) ) <_ 0 ) ) $=
      ( wcel wa cr cc0 cle wbr c1 cmin co cmul recnd remulcld cc oveq2d cneg cv
      cee cfv w3o caddc cfz wral relin01 adantl fveere adantlr adantll jca cexp
      c2 simprl resubcl ancoms adantr mulassd recn pncand oveq1d sqvald 3eqtr4d
      ad2antrr wo simprr sqge0d wb resqcld mulle0b syl2anc mpbird eqbrtrd sylan
      orcd an32s ralrimiva expr sub32d wceq ax-1cn subdir mp3an1 mulid2d eqtr2d
      ad2antlr subsub4d 3eqtr3rd subidd syl6eqr oveq12d 1re mpan ad2antrl mul4d
      df-neg negeqd 3eqtrd simpl sylancr subge0 biimpar adantrl mulge0d breqtrd
      mulneg2d le0neg2d mpbid negsubdi2d simplr simpll peano2rem mulneg1d eqtrd
      mul12d eqtr4d mp3an2 subsub3d mpan2 3orim123d mpd ) AEUBUCZFZBYDFZGZDHFZG
      ZDIJKZIDJKZDLJKZGZLDJKZUDZDCUAZBUCZYPAUCZMNZONZYRUENZYRMNZYSONZIJKZCLEUFN
      ZUGZYQUUAMNZYRUUAMNZONZIJKZCUUEUGZYRYQMNZUUAYQMNZONZIJKZCUUEUGZUDYHYOYGDU
      HUIYIYJUUFYMUUKYNUUPYGYHYJUUFYGYHYJGZGUUDCUUEYGYPUUEFZUUQUUDYGUURGZYRHFZY
      QHFZGZUUQUUDUUSUUTUVAYEUURUUTYFAYPEUJUKYFUURUVAYEBYPEUJULUMZUVBUUQGZUUCDY
      SUOUNNZONZIJUVDYTYSONDYSYSONZONUUCUVFUVDDYSYSUVDDUVBYHYJUPZPUVDYSUVBYSHFZ
      UUQUVAUUTUVIYQYRUQZURZUSZPZUVMUTUVDUUBYTYSOUVDYTYRUVDYTUVDDYSUVHUVLQPUUTY
      RRFZUVAUUQYRVAZVFVBVCUVDUVEUVGDOUVDYSUVMVDSVEUVDUVFIJKZYJIUVEJKZGZYKUVEIJ
      KGZVGZUVDUVRUVSUVDYJUVQUVBYHYJVHUVDYSUVLVIUMVQUVDYHUVEHFUVPUVTVJUVHUVDYSU
      VLVKDUVEVLVMVNVOVPVRVSVTYGYHYMUUKYGYHYMGZGUUJCUUEYGUURUWAUUJUUSUVBUWAUUJU
      VCUVBUWAGZUUILDMNZDONZUVGONZTZIJUWBUUIUWCYSONZYTTZONUWGYTONZTUWFUWBUUGUWG
      UUHUWHOUWBYSYTMNZYQYTMNYRMNUWGUUGUWBYQYRYTUVAYQRFZUUTUWAYQVAZWHZUUTUVNUVA
      UWAUVOVFZUWBYTUWBDYSUVBYHYMUPZUVBUVIUWAUVKUSZQPZWAUWBUWGLYSONZYTMNZUWJUWB
      DRFZYSRFZUWGUWSWBZUWBDUWOPZUWBYSUWPPZLRFZUWTUXAUXBWCLDYSWDWEVMUWBUWRYSYTM
      UWBYSUXDWFVCWGUWBYQYTYRUWMUWQUWNWIWJUWBYRYRMNZYTMNZYRYTMNYRMNUWHUUHUWBYRY
      RYTUWNUWNUWQWAUWBUXGIYTMNUWHUWBUXFIYTMUWBYRUWNWKVCYTWRWLUWBYRYTYRUWNUWQUW
      NWIWJWMUWBUWGYTUWBUWGUWBUWCYSYHUWCHFZUVBYMLHFZYHUXHWNLDUQZWOWPZUWPQPUWQXH
      UWBUWIUWEUWBUWCYSDYSUWBUWCUXKPUXDUXCUXDWQWSWTUWBIUWEJKUWFIJKUWBIUWDUVEONU
      WEJUWBUWDUVEUWBUWCDUXKUWOQZUWBYSUWPVKUWAIUWDJKUVBUWAUWCDUWAUXIYHUXHWNYHYM
      XAZUXJXBUXMYHYLIUWCJKZYKYHUXNYLUXIYHUXNYLVJWNLDXCWOXDXEYHYKYLUPXFUIUWBYSU
      WPVIXFUWBUVEUVGUWDOUWBYSUXDVDSXGUWBUWEUWBUWDUVGUXLUWBYSYSUWPUWPQQXIXJVOVP
      VRVSVTYGYHYNUUPYGYHYNGZGUUOCUUEYGUURUXOUUOUUSUVBUXOUUOUVCUVBUXOGZUUNDLMNZ
      UVEONZTZIJUXPYSTZUXQYSONZONZUULUYAONUXSUUNUXPUXTUULUYAOUXPYQYRUVAUWKUUTUX
      OUWLWHZUUTUVNUVAUXOUVOVFZXKVCUXPUYBYSUYAONZTUXSUXPYSUYAUXPYSUXPUVAUUTUVIU
      UTUVAUXOXLUUTUVAUXOXMUVJVMZPZUXPUYAUXPUXQYSYHUXQHFUVBYNDXNWPZUYFQPXOUXPUY
      EUXRUXPUYEUXQUVGONUXRUXPYSUXQYSUYGUXPUXQUYHPUYGXQUXPUVEUVGUXQOUXPYSUYGVDS
      XRWSXPUXPUYAUUMUULOUXPUYAYTUWRMNZYTYSMNUUMUXPUWTUXAUYAUYIWBZUXPDUVBYHYNUP
      ZPUYGUWTUXEUXAUYJWCDLYSWDXSVMUXPUWRYSYTMUXPYSUYGWFSUXPYTYQYRUXPYTUXPDYSUY
      KUYFQPUYCUYDXTWTSWJUXPIUXRJKUXSIJKUXPUXQUVEUYHUXPYSUYFVKZUXPIUXQJKZYNUVBY
      HYNVHYHUYMYNVJZUVBYNYHUXIUYNWNDLXCYAWPVNUXPYSUYFVIXFUXPUXRUXPUXQUVEUYHUYL
      QXIXJVOVPVRVSVTYBYC $.
  $}

  ${
    $d N i j p $.  $d A i j p $.  $d B i j p $.  $d C i j p $.
    $( An algebraic characterization of colinearity.  Note the similarity to
       ~ brbtwn2 .  (Contributed by Scott Fenton, 24-Jun-2013.) $)
    colinearalg $p |-
        (
          ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ->
          ( ( A Btwn <. B , C >. \/ B Btwn <. C , A >. \/
              C Btwn <. A , B >. ) <->
            A. i e. ( 1 ... N ) A. j e. ( 1 ... N )
            ( ( ( B ` i ) - ( A ` i ) ) x. ( ( C ` j ) - ( A ` j ) ) ) =
            ( ( ( B ` j ) - ( A ` j ) ) x. ( ( C ` i ) - ( A ` i ) ) ) ) ) $=
      ( vp cfv wcel w3a wbr cmin co cmul cc0 cle wral wceq wa wb cee cop w3o cv
      cbtwn c1 brbtwn2 3comr colinearalglem3 anbi2d bitrd colinearalglem2 3coml
      3orbi123d wi cc fveecn subid oveq2d adantl subcl mul01d eqtrd syl2an 0le0
      anandirs syl6eqbr ralrimiva 3adant1 fveq1 oveq12d ralbidv syl5ibcom 3mix1
      cfz breq1d syl6 a1dd wne wrex simp3 simp1 eqeefv syl2anc necon3abid df-ne
      wn rexbii rexnal bitr2i syl6bb ralcom fveq2 oveq1d eqeq12d rspcv ad2antrl
      weq cr fveere 3ad2antl1 3ad2antl2 3ad2antl3 3jca anim1i anasss cdiv caddc
      adantlr recn 3anim123i adantr ad2antlr simplrr eqcom simp12 simp11 simp22
      simp21 subcld simp23 simpr3 simpr1 subeq0ad biimp3ar divcld simp13 mulcld
      necon3bid syl3anc syl5bb resubcld oveq1 ralimi ralbi syl oveq2 wo df-3or
      andir subadd2 bicomd div23d eqeq2d divmuld mulcomd eqeq1d ralbidva 3simpb
      3bitr2d simpl2 simpl1 simpl3 3ad2ant1 redivcld colinearalglem4 syl5ibrcom
      recnd biimpar sylbird syldan syld syl5bi sylbid pm2.61dne pm4.71rd orbi1i
      rexlimdvaa anbi1i bitri 3bitr4i syl6rbb ) AFUAHZIZBUVMIZCUVMIZJZABCUBUEKZ
      BCAUBUEKZCABUBUEKZUCDUDZBHZUWAAHZLMZUWACHZUWCLMZNMZOPKZDUFFVOMZQZUWDEUDZC
      HZUWKAHZLMZNMZUWKBHZUWMLMZUWFNMZRZEUWIQDUWIQZSZUWEUWBLMZUWCUWBLMZNMZOPKZD
      UWIQZUWTSZUWCUWELMZUWBUWELMZNMZOPKZDUWIQZUWTSZUCZUWTUVQUVRUXAUVSUXGUVTUXM
      ABCDEFUGUVQUVSUXFUXBUWMUWPLMNMUWLUWPLMUXCNMREUWIQDUWIQZSZUXGUVOUVPUVNUVSU
      XPTBCADEFUGUHUVQUXOUWTUXFUVOUVPUVNUXOUWTTBCADEFUIUHUJUKUVPUVNUVOUVTUXMTUV
      PUVNUVOJZUVTUXLUXHUWPUWLLMNMUWMUWLLMUXINMREUWIQDUWIQZSUXMCABDEFUGUXQUXRUW
      TUXLCABDEFULUJUKUMUNUVQUWTUWJUXFUXLUCZUWTSZUXNUVQUWTUXSUVQUWTUXSUOZCAUVQC
      ARZUXSUWTUVQUYBUWJUXSUVQUXIUWEUWELMZNMZOPKZDUWIQZUYBUWJUVOUVPUYFUVNUVOUVP
      SZUYEDUWIUYGUWAUWIIZSUYDOOPUVOUVPUYHUYDORZUVOUYHSUWBUPIZUWEUPIZUYIUVPUYHS
      BUWAFUQZCUWAFUQZUYJUYKSZUYDUXIONMZOUYKUYDUYORUYJUYKUYCOUXINUWEURUSUTUYNUX
      IUWBUWEVAVBVCVDVFVEVGVHVIUYBUYEUWHDUWIUYBUYDUWGOPUYBUXIUWDUYCUWFNUYBUWEUW
      CUWBLUWACAVJZUSUYBUWEUWCUWELUYPUSVKVPVLVMUWJUXFUXLVNVQVRUVQCAVSZGUDZCHZUY
      RAHZVSZGUWIVTZUYAUVQUYQUYSUYTRZGUWIQZWGZVUBUVQVUDCAUVQUVPUVNUYBVUDTUVNUVO
      UVPWAUVNUVOUVPWBCAGFWCWDWEVUBVUCWGZGUWIVTVUEVUAVUFGUWIUYSUYTWFWHVUCGUWIWI
      WJWKUVQVUAUYAGUWIUWTUWSDUWIQZEUWIQZUVQUYRUWIIZVUASZSZUXSUWSDEUWIUWIWLVUKV
      UHUWDUYSUYTLMZNMZUYRBHZUYTLMZUWFNMZRZDUWIQZUXSVUIVUHVURUOUVQVUAVUGVUREUYR
      UWIEGWRZUWSVUQDUWIVUSUWOVUMUWRVUPVUSUWNVULUWDNVUSUWLUYSUWMUYTLUWKUYRCWMUW
      KUYRAWMZVKUSVUSUWQVUOUWFNVUSUWPVUNUWMUYTLUWKUYRBWMVUTVKWNWOVLWPWQUVQVUJUY
      TWSIZVUNWSIZUYSWSIZJZVUASZVURUXSUOUVQVUIVUAVVEUVQVUISZVVDVUAVVFVVAVVBVVCU
      VNUVOVUIVVAUVPAUYRFWTXAUVOUVNVUIVVBUVPBUYRFWTXBUVPUVNVUIVVCUVOCUYRFWTXCXD
      XEXFUVQVVESZVURUWBVUOVULXGMZUWFNMZUWCXHMZRZDUWIQZUXSVVGVVKVUQDUWIVVGUYHSU
      WCUPIZUYJUYKJZUYTUPIZVUNUPIZUYSUPIZJZVUAVVKVUQTUVQUYHVVNVVEUVQUYHSVVMUYJU
      YKUVNUVOUYHVVMUVPAUWAFUQXAUVOUVNUYHUYJUVPUYLXBUVPUVNUYHUYKUVOUYMXCXDXIVVE
      VVRUVQUYHVVDVVRVUAVVAVVOVVBVVPVVCVVQUYTXJZVUNXJUYSXJXKXLXMUVQVVDVUAUYHXNV
      VKVVJUWBRZVVNVVRVUAJZVUQUWBVVJXOVWAVVTUWDVVIRZUWDVUPVULXGMZRZVUQVWAUYJVVM
      VVIUPIZVVTVWBTVVMUYJUYKVVRVUAXPZVVMUYJUYKVVRVUAXQZVWAVVHUWFVWAVUOVULVWAVU
      NUYTVVNVVOVVPVVQVUAXRVVNVVOVVPVVQVUAXSZXTZVWAUYSUYTVVNVVOVVPVVQVUAYAVWHXT
      ZVVNVVRVULOVSZVUAVVNVVRSZVULOUYSUYTVWLUYSUYTVVNVVOVVPVVQYBVVNVVOVVPVVQYCY
      DYIYEZYFVWAUWEUWCVVMUYJUYKVVRVUAYGVWGXTZYHUYJVVMVWEJVWBVVTUWBUWCVVIUUAUUB
      YJVWAVWCVVIUWDVWAVUOUWFVULVWIVWNVWJVWMUUCUUDVWDVWCUWDRZVWAVUQUWDVWCXOVWAV
      WOVULUWDNMZVUPRVUQVWAVUPVULUWDVWAVUOUWFVWIVWNYHVWJVWAUWBUWCVWFVWGXTZVWMUU
      EVWAVWPVUMVUPVWAVULUWDVWJVWQUUFUUGUKYKUUJYKYJUUHUVQUVNUVPSZVVHWSIZVVLUXSU
      OVVEUVNUVOUVPUUIVVEVUOVULVVEVUNUYTVVAVVBVVCVUAUUKVVAVVBVVCVUAUULZYLVVEUYS
      UYTVVAVVBVVCVUAUUMVWTYLVVDVWKVUAVVDVULOUYSUYTVVDUYSUYTVVDUYSVVAVVBVVCWAUU
      RVVAVVBVVOVVCVVSUUNYDYIUUSUUOVWRVWSSUXSVVLVVJUWCLMZUWFNMZOPKZDUWIQZUWEVVJ
      LMZUWCVVJLMZNMZOPKZDUWIQZUXHVVJUWELMZNMZOPKZDUWIQZUCACDVVHFUUPVVLUWJVXDUX
      FVXIUXLVXMVVLUWHVXCTZDUWIQUWJVXDTVVKVXNDUWIVVKUWGVXBOPVVKUWDVXAUWFNUWBVVJ
      UWCLYMWNVPYNUWHVXCDUWIYOYPVVLUXEVXHTZDUWIQUXFVXITVVKVXODUWIVVKUXDVXGOPVVK
      UXBVXEUXCVXFNUWBVVJUWELYQUWBVVJUWCLYQVKVPYNUXEVXHDUWIYOYPVVLUXKVXLTZDUWIQ
      UXLVXMTVVKVXPDUWIVVKUXJVXKOPVVKUXIVXJUXHNUWBVVJUWELYMUSVPYNUXKVXLDUWIYOYP
      UNUUQVDUUTUVAUVBUVCUVHUVDUVEUVFUWJUXFYRZUWTSZUXMYRZUXAUXGYRZUXMYRUXTUXNVX
      RVXTUXMUWJUXFUWTYTUVGUXTVXQUXLYRZUWTSVXSUXSVYAUWTUWJUXFUXLYSUVIVXQUXLUWTY
      TUVJUXAUXGUXMYSUVKUVLUK $.
  $}

  ${
    $d N i $.  $d A i $.  $d B i $.
    eleesub.1 $e |- C = ( i e. ( 1 ... N ) |-> ( ( A ` i ) - ( B ` i ) ) ) $.
    $( Membership of a subtraction mapping in a Euclidean space.  (Contributed
       by Scott Fenton, 17-Jul-2013.) $)
    eleesub $p |- ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
             C e. ( EE ` N ) ) $=
      ( cee cfv wcel wa c1 cfz co cv cmin cmpt cr wral fveere resubcl ralrimiva
      syl2an anandirs wb cn eleenn mptelee syl adantr mpbird syl5eqel ) AEGHZIZ
      BULIZJZCDKELMZDNZAHZUQBHZOMZPZULFUOVAULIZUTQIZDUPRZUOVCDUPUMUNUQUPIZVCUMV
      EJURQIUSQIVCUNVEJAUQESBUQESURUSTUBUCUAUMVBVDUDZUNUMEUEIVFAEUFURUSDOEUGUHU
      IUJUK $.
  $}

  ${
    $d N i $.  $d A i $.  $d B i $.
    eleesubd.1 $e |- ( ph ->
       C = ( i e. ( 1 ... N ) |-> ( ( A ` i ) - ( B ` i ) ) ) ) $.
    $( Membership of a subtraction mapping in a Euclidean space.  Deduction
       form of ~ eleesub .  (Contributed by Scott Fenton, 17-Jul-2013.) $)
    eleesubd $p |- ( ( ph /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
             C e. ( EE ` N ) ) $=
      ( cee cfv wcel w3a c1 cfz co cv cmin cmpt wa cr fveere wceq 3ad2ant1 wral
      resubcl syl2an anandirs ralrimiva wb cn eleenn mptelee syl adantr 3adant1
      mpbird eqeltrd ) ABFHIZJZCUQJZKDELFMNZEOZBIZVACIZPNZQZUQAURDVEUAUSGUBURUS
      VEUQJZAURUSRZVFVDSJZEUTUCZVGVHEUTURUSVAUTJZVHURVJRVBSJVCSJVHUSVJRBVAFTCVA
      FTVBVCUDUEUFUGURVFVIUHZUSURFUIJVKBFUJVBVCEPFUKULUMUOUNUP $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Tarski's axioms for geometry for the Euclidean space
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( The unique dimension axiom.  If a point is in ` N ` dimensional space and
     in ` M ` dimensional space, then ` N = M ` .  This axiom is not
     traditionally presented with Tarski's axioms, but we require it here as we
     are considering spaces in arbitrary dimensions.  (Contributed by Scott
     Fenton, 24-Sep-2013.) $)
  axdimuniq $p |- ( ( ( N e. NN /\ A e. ( EE ` N ) ) /\
   ( M e. NN /\ A e. ( EE ` M ) ) ) -> N = M ) $=
    ( cee cfv wcel wceq cn eedimeq ad2ant2l ) ACDEFABDEFCBGCHFBHFABCIJ $.

  ${
    $d N i $.  $d A i $.  $d B i $.
    $( ` A ` is as far from ` B ` as ` B ` is from ` A ` .  Axiom A1 of
       [Schwabhauser] p. 10.  (Contributed by Scott Fenton, 3-Jun-2013.) $)
    axcgrrflx $p |- ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
       <. A , B >. Cgr <. B , A >. ) $=
      ( vi cee cfv wcel cop ccgr wbr cn wa co cmin c2 cexp csu wceq cc fveecn
      c1 cv sqsubswap syl2an anandirs sumeq2dv wb id simpr simpl brcgr syl12anc
      cfz mpbird 3adant1 ) ACEFZGZBUPGZABHBAHIJZCKGUQURLZUSUACUMMZDUBZAFZVBBFZN
      MOPMZDQVAVDVCNMOPMZDQRZUTVAVEVFDUQURVBVAGZVEVFRZUQVHLVCSGVDSGVIURVHLAVBCT
      BVBCTVCVDUCUDUEUFUTUTURUQUSVGUGUTUHUQURUIUQURUJABBADCUKULUNUO $.
  $}

  ${
    $d N i $.  $d A i $.  $d B i $.  $d C i $.  $d D i $.  $d E i $.  $d F i $.
    $( Congruence is transitive.  Axiom A2 of [Schwabhauser] p. 10.
       (Contributed by Scott Fenton, 3-Jun-2013.) $)
    axcgrtr $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
       ( ( <. A , B >. Cgr <. C , D >. /\
           <. A , B >. Cgr <. E , F >. ) ->
         <. C , D >. Cgr <. E , F >. ) ) $=
      ( vi cfv wcel cop ccgr wbr wa co cmin c2 cexp csu wceq cee wi cn c1 eqtr2
      w3a cfz cv wb simpl1 simpl2 simpl3 simpr1 syl22anc simpr2 anbi12d imbi12d
      brcgr simpr3 mpbiri 3adant1 ) AGUAIZJZBVBJZCVBJZUFZDVBJZEVBJZFVBJZUFZABKZ
      CDKZLMZVKEFKZLMZNZVLVNLMZUBZGUCJVFVJNZVRUDGUGOZHUHZAIWABIPOQROHSZVTWACIWA
      DIPOQROHSZTZWBVTWAEIWAFIPOQROHSZTZNZWCWETZUBWBWCWEUEVSVPWGVQWHVSVMWDVOWFV
      SVCVDVEVGVMWDUIVCVDVEVJUJZVCVDVEVJUKZVCVDVEVJULZVFVGVHVIUMZABCDHGURUNVSVC
      VDVHVIVOWFUIWIWJVFVGVHVIUOZVFVGVHVIUSZABEFHGURUNUPVSVEVGVHVIVQWHUIWKWLWMW
      NCDEFHGURUNUQUTVA $.
  $}

  ${
    $d N i $.  $d A i $.  $d B i $.  $d C i $.
    $( If there is no distance between ` A ` and ` B ` , then ` A = B ` .
       Axiom A3 of [Schwabhauser] p. 10.  (Contributed by Scott Fenton,
       3-Jun-2013.) $)
    axcgrid $p |- ( ( N e. NN /\
      ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
      ( <. A , B >. Cgr <. C , C >. -> A = B ) ) $=
      ( vi cfv wcel cop wceq c1 co cmin csu cc0 wa cc fveecn syl wb bitrd wi cn
      cee w3a ccgr wbr cfz cv cexp wral subid sq0id sumeq2dv cfn fzfid cuz sumz
      c2 wss olcs eqtrd 3ad2ant3 eqeq2d fveere adantlr adantll resubcld resqcld
      cr sqge0d fsum00 subcl sqeq0 subeq0 anandirs ralbidva 3adant3 simp1 simp2
      syl2an simp3 brcgr syl22anc eqeefv 3bitr4d biimpd adantl ) ADUCFZGZBWHGZC
      WHGZUDZABHCCHUEUFZABIZUADUBGWLWMWNWLJDUGKZEUHZAFZWPBFZLKZURUIKZEMZWOWPCFZ
      XBLKZURUIKZEMZIZWQWRIZEWOUJZWMWNWLXFXANIZXHWLXENXAWKWIXENIWJWKXEWONEMZNWK
      WOXDNEWKWPWOGZOXBPGZXDNICWPDQXLXCXBUKULRUMWKWOUNGZXJNIZWKJDUOWOJUPFUSXMXN
      WOEJUQUTRVAVBVCWIWJXIXHSWKWIWJOZXIWTNIZEWOUJXHXOWOWTEXOJDUOXOXKOZWSXQWQWR
      WIXKWQVIGWJAWPDVDVEWJXKWRVIGWIBWPDVDVFVGZVHXQWSXRVJVKXOXPXGEWOWIWJXKXPXGS
      ZWIXKOWQPGZWRPGZXSWJXKOAWPDQBWPDQXTYAOZXPWSNIZXGYBWSPGXPYCSWQWRVLWSVMRWQW
      RVNTVTVOVPTVQTWLWIWJWKWKWMXFSWIWJWKVRWIWJWKVSWIWJWKWAZYDABCCEDWBWCWIWJWNX
      HSWKABEDWDVQWEWFWG $.
  $}

  ${
    $d N t i k x $.  $d A t i k x $.  $d B t i k x $.  $d C t i k x $.
    $d D t i k x $.
    $( Lemma for ~ axsegcon .  Handle the degenerate case.  (Contributed by
       Scott Fenton, 7-Jun-2013.) $)
    axsegconlem1 $p |- ( ( A = B /\
     ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
       ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ) ->
      E. x e. ( EE ` N ) E. t e. ( 0 [,] 1 ) (
       A. i e. ( 1 ... N ) ( B ` i ) =
         ( ( ( 1 - t ) x. ( A ` i ) ) + ( t x. ( x ` i ) ) ) /\
       sum_ i e. ( 1 ... N ) ( ( ( B ` i ) - ( x ` i ) ) ^ 2 ) =
       sum_ i e. ( 1 ... N ) ( ( ( C ` i ) - ( D ` i ) ) ^ 2 ) ) ) $=
      ( vk wceq cfv wcel wa c1 cmin co cmul caddc wral cc0 cee cv cfz cexp cicc
      csu wrex w3a cmpt fveere 3ad2antl1 3ad2antl2 3ad2antl3 resubcld ralrimiva
      c2 cr wb cn eleenn mptelee syl 3ad2ant1 mpbird fveecn 1m0e1 oveq1i mulid2
      cc syl5eq subcl sylan2 mul02d oveq12d addid1 eqtr2d syl3anc subcld nncand
      3impb oveq1d sumeq2dv 0elunit fveq1 fveq2 eqid ovex fvmpt sylan9eq oveq2d
      eqeq2d ralbidva eqeq1d anbi12d oveq2 oveq1 ralbidv anbi1d mp3an2 syl12anc
      weq rspc2ev 3expb adantll 2rexbidv syl5ibr imp ) CDJZCHUAKZLZDXILZMEXILZF
      XILZMZMZGUBZDKZNBUBZOPZXPCKZQPZXRXPAUBZKZQPZRPZJZGNHUCPZSZYGXQYCOPZUPUDPZ
      GUFZYGXPEKZXPFKZOPZUPUDPZGUFZJZMZBTNUEPZUGAXIUGZXOYTXHXQXSXQQPZYDRPZJZGYG
      SZYQMZBYSUGAXIUGZXKXNUUFXJXKXLXMUUFXKXLXMUHZIYGIUBZDKZUUHEKZUUHFKZOPZOPZU
      IZXILZXQNTOPZXQQPZTXQYNOPZQPZRPZJZGYGSZYGXQUUROPZUPUDPZGUFZYPJZUUFUUGUUOU
      UMUQLZIYGSZUUGUVGIYGUUGUUHYGLZMZUUIUULXKXLUVIUUIUQLXMDUUHHUJUKUVJUUJUUKXL
      XKUVIUUJUQLXMEUUHHUJULXMXKUVIUUKUQLXLFUUHHUJUMUNUNUOXKXLUUOUVHURZXMXKHUSL
      UVKDHUTUUIUULIOHVAVBVCVDUUGUVAGYGUUGXPYGLZMZXQVILZYLVILZYMVILZUVAXKXLUVLU
      VNXMDXPHVEUKZXLXKUVLUVOXMEXPHVEULZXMXKUVLUVPXLFXPHVEUMZUVNUVOUVPUHZUUTXQT
      RPZXQUVTUUQXQUUSTRUVTUUQNXQQPZXQUUPNXQQVFVGUVNUVOUWBXQJUVPXQVHVCVJUVTUURU
      VNUVOUVPUURVILZUVOUVPMUVNYNVILUWCYLYMVKXQYNVKVLVTVMVNUVNUVOUWAXQJUVPXQVOV
      CVPVQUOUUGYGUVDYOGUVMUVCYNUPUDUVMXQYNUVQUVMYLYMUVRUVSVRVSWAWBUUOTYSLUVBUV
      FMZUUFWCUUEUWDXQUUAXRUURQPZRPZJZGYGSZUVFMABUUNTXIYSYBUUNJZUUDUWHYQUVFUWIU
      UCUWGGYGUWIUVLMZUUBUWFXQUWJYDUWEUUARUWJYCUURXRQUWIUVLYCXPUUNKUURXPYBUUNWD
      IXPUUMUURYGUUNIGXAZUUIXQUULYNOUUHXPDWEUWKUUJYLUUKYMOUUHXPEWEUUHXPFWEVNVNU
      UNWFXQYNOWGWHWIZWJWJWKWLUWIYKUVEYPUWIYGYJUVDGUWJYIUVCUPUDUWJYCUURXQOUWLWJ
      WAWBWMWNXRTJZUWHUVBUVFUWMUWGUVAGYGUWMUWFUUTXQUWMUUAUUQUWEUUSRUWMXSUUPXQQX
      RTNOWOWAXRTUURQWPVNWKWQWRXBWSWTXCXDXHYRUUEABXIYSXHYHUUDYQXHYFUUCGYGXHYEUU
      BXQXHYAUUAYDRXHXTXQXSQXPCDWDWJWAWKWQWRXEXFXG $.
  $}

  ${
    $d A p $.  $d B p $.  $d C p $.  $d D p $.  $d N p $.
    axsegconlem2.1 $e |- S =
       sum_ p e. ( 1 ... N ) ( ( ( A ` p ) - ( B ` p ) ) ^ 2 ) $.
    $( Lemma for ~ axsegcon .  Show that the square of the distance between two
       points is a real number.  (Contributed by Scott Fenton, 17-Sep-2013.) $)
    axsegconlem2 $p |- ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) -> S e. RR ) $=
      ( cee cfv wcel wa c1 cfz co cv cmin c2 cexp csu cr fveere resubcl resqcld
      fzfid syl2an anandirs fsumrecl syl5eqel ) ADGHZIZBUHIZJZCKDLMZENZAHZUMBHZ
      OMZPQMZERSFUKULUQEUKKDUCUIUJUMULIZUQSIZUIURJUNSIZUOSIZUSUJURJAUMDTBUMDTUT
      VAJUPUNUOUAUBUDUEUFUG $.

    $( Lemma for ~ axsegcon .  Show that the square of the distance between two
       points is nonnegative.  (Contributed by Scott Fenton, 17-Sep-2013.) $)
    axsegconlem3 $p |- ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) -> 0 <_ S ) $=
      ( cee cfv wcel wa cc0 c1 cfz co cv cmin c2 cexp cr fveere csu cle adantlr
      fzfid adantll resubcld resqcld sqge0d fsumge0 syl6breqr ) ADGHZIZBUKIZJZK
      LDMNZEOZAHZUPBHZPNZQRNZEUACUBUNUOUTEUNLDUDUNUPUOIZJZUSVBUQURULVAUQSIUMAUP
      DTUCUMVAURSIULBUPDTUEUFZUGVBUSVCUHUIFUJ $.

    $( Lemma for ~ axsegcon .  Show that the distance between two points is a
       real number.  (Contributed by Scott Fenton, 17-Sep-2013.) $)
    axsegconlem4 $p |- ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
                  ( sqrt ` S ) e. RR ) $=
      ( cee cfv wcel wa axsegconlem2 axsegconlem3 resqrtcld ) ADGHZIBNIJCABCDEF
      KABCDEFLM $.

    $( Lemma for ~ axsegcon .  Show that the distance between two points is
       nonnegative.  (Contributed by Scott Fenton, 17-Sep-2013.) $)
    axsegconlem5 $p |- ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
                  0 <_ ( sqrt ` S ) ) $=
      ( cee cfv wcel wa axsegconlem2 axsegconlem3 sqrtge0d ) ADGHZIBNIJCABCDEFK
      ABCDEFLM $.

    $( Lemma for ~ axsegcon .  Show that the distance between two distinct
       points is positive.  (Contributed by Scott Fenton, 17-Sep-2013.) $)
    axsegconlem6 $p |- ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ A =/= B ) ->
                   0 < ( sqrt ` S ) ) $=
      ( cee cfv wcel wne w3a csqrt cr axsegconlem4 3adant3 cc0 cle wbr wceq co
      axsegconlem5 wa c1 cfz cv cmin c2 csu eqeelen eqeq1i syl6bbr axsegconlem2
      cexp wb axsegconlem3 sqrt00 syl2anc bitr4d necon3bid biimp3a ne0gt0d ) AD
      GHZIZBVBIZABJZKCLHZVCVDVFMIVEABCDEFNOVCVDPVFQRVEABCDEFUAOVCVDVEVFPJVCVDUB
      ZABVFPVGABSZCPSZVFPSZVGVHUCDUDTEUEZAHVKBHUFTUGUMTEUHZPSVIABEDUICVLPFUJUKV
      GCMIPCQRVJVIUNABCDEFULABCDEFUOCUPUQURUSUTVA $.

    ${
      axsegconlem7.2 $e |- T = sum_ p e. ( 1 ... N )
                         ( ( ( C ` p ) - ( D ` p ) ) ^ 2 ) $.
      $( Lemma for ~ axsegcon .  Show that a particular ratio of distances is
         in the closed unit interval.  (Contributed by Scott Fenton,
         18-Sep-2013.) $)
      axsegconlem7 $p |- ( (
        ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ A =/= B ) /\
        ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
        ( ( sqrt ` S ) / ( ( sqrt ` S ) + ( sqrt ` T ) ) ) e. ( 0 [,] 1 ) ) $=
        ( cfv wcel wa csqrt co cc0 cle wbr cr adantr cee wne caddc cdiv c1 cicc
        w3a axsegconlem5 adantl axsegconlem4 3adant3 addge01 syl2an clt readdcl
        wb mpbid 0red axsegconlem6 ltletrd divelunit syl22anc mpbird ) AGUAKZLZ
        BVDLZABUBZUGZCVDLDVDLMZMZENKZVKFNKZUCOZUDOPUEUFOLZVKVMQRZVJPVLQRZVOVIVP
        VHCDFGHJUHUIVHVKSLZVLSLZVPVOUPVIVEVFVQVGABEGHIUJUKZCDFGHJUJZVKVLULUMUQZ
        VJVQPVKQRZVMSLZPVMUNRVNVOUPVHVQVIVSTZVHWBVIVEVFWBVGABEGHIUHUKTVHVQVRWCV
        IVSVTVKVLUOUMZVJPVKVMVJURWDWEVHPVKUNRVIABEGHIUSTWAUTVKVMVAVBVC $.

      ${
        $d A i k $.  $d B i k $.  $d C i k $.  $d D i k $.  $d N i k $.
        $d S i k $.  $d T i k $.  $d i p $.
        axsegconlem8.3 $e |- F = ( k e. ( 1 ... N ) |->
              ( ( ( ( ( sqrt ` S ) + ( sqrt ` T ) ) x. ( B ` k ) ) -
                  ( ( sqrt ` T ) x. ( A ` k ) ) ) /
                ( sqrt ` S ) ) ) $.
        $( Lemma for ~ axsegcon .  Show that a particular mapping generates a
           point.  (Contributed by Scott Fenton, 18-Sep-2013.) $)
        axsegconlem8 $p |- ( ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ A =/=
              B
            ) /\
     ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) -> F e. ( EE ` N ) ) $=
          ( cfv wcel wne wa co csqrt cr cee w3a c1 caddc cv cmul cmin cdiv cmpt
          cfz wral axsegconlem4 3adant3 ad2antrr ad2antlr readdcld simpl2 sylan
          fveere remulcld simpl1 resubcld cc0 axsegconlem6 gt0ne0d ralrimiva cn
          redivcld wb eleenn ad2antll mptelee syl mpbird syl5eqel ) AIUANZOZBVP
          OZABPZUBZCVPOZDVPOZQZQZHGUCIUJRZESNZFSNZUDRZGUEZBNZUFRZWGWIANZUFRZUGR
          ZWFUHRZUIZVPMWDWPVPOZWOTOZGWEUKZWDWRGWEWDWIWEOZQZWNWFXAWKWMXAWHWJXAWF
          WGVTWFTOZWCWTVQVRXBVSABEIJKULUMUNZWCWGTOVTWTCDFIJLULUOZUPWDVRWTWJTOVQ
          VRVSWCUQBWIIUSURUTXAWGWLXDWDVQWTWLTOVQVRVSWCVAAWIIUSURUTVBXCVTWFVCPWC
          WTVTWFABEIJKVDVEUNVHVFWDIVGOZWQWSVIWBXEVTWADIVJVKWNWFGUHIVLVMVNVO $.

        $( Lemma for ~ axsegcon .  Show that ` B F ` is congruent to ` C D ` .
           (Contributed by Scott Fenton, 19-Sep-2013.) $)
        axsegconlem9 $p |- ( ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ A =/=
              B
            ) /\
  ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
            sum_ i e. ( 1 ... N ) ( ( ( B ` i ) - ( F ` i ) ) ^ 2 ) =
            sum_ i e. ( 1 ... N ) ( ( ( C ` i ) - ( D ` i ) ) ^ 2 ) ) $=
          ( cfv wcel co cmin cmul recnd cee wne w3a wa c1 cfz cv cexp csu csqrt
          c2 cdiv caddc wceq weq fveq2 oveq2d oveq12d oveq1d fvmpt axsegconlem4
          ovex adantl cr 3adant3 ad2antrr simpl2 fveere remulcld readdcl syl2an
          sylan adantr ad2antlr simpl1 resubcld axsegconlem6 gt0ne0d divsubdird
          subsubd cneg renegcld adddid addcomd negsubd eqtrd negsubdi2d pncan2d
          cc0 negeqd eqtr3d subdird cc mulneg12 3eqtr3rd divcan3d sqdivd sqmuld
          syl2anc cle axsegconlem2 axsegconlem3 resqrtth sumeq2dv fzfid resqcld
          wbr 3eqtrd fsummulc2 cbvsumv eqtri eqtr4i oveq12i wb sqrt00 necon3bid
          eqid mpbid divmul3d mpbiri fsumdivc ) AJUAOZPZBYBPZABUBZUCZCYBPDYBPUD
          ZUDZUEJUFQZGUGZBOZYJIOZRQZUKUHQZGUIYIFYJAOZYKRQZUKUHQZSQZEULQZGUIZYIY
          JCOZYJDOZRQZUKUHQZGUIZYHYIYNYSGYHYJYIPZUDZYNFUJOZYPSQZEUJOZULQZUKUHQU
          UIUKUHQZUUJUKUHQZULQYSUUGYMUUKUKUHUUGYMYKUUJUUHUMQZYKSQZUUHYOSQZRQZUU
          JULQZRQZUUKUUGYLUURYKRUUFYLUURUNYHHYJUUNHUGZBOZSQZUUHUUTAOZSQZRQZUUJU
          LQUURYIIHGUOZUVEUUQUUJULUVFUVBUUOUVDUUPRUVFUVAYKUUNSUUTYJBUPUQUVFUVCY
          OUUHSUUTYJAUPUQURUSNUUQUUJULVBUTVCUQUUGUUJYKSQZUUQRQZUUJULQUVGUUJULQZ
          UURRQUUKUUSUUGUVGUUQUUJUUGUVGUUGUUJYKYFUUJVDPZYGUUFYCYDUVJYEABEJKLVAV
          EZVFZYHYDUUFYKVDPYCYDYEYGVGBYJJVHVLZVITZUUGUUQUUGUUOUUPUUGUUNYKYHUUNV
          DPZUUFYFUVJUUHVDPZUVOYGUVKCDFJKMVAZUUJUUHVJVKVMZUVMVIZUUGUUHYOYGUVPYF
          UUFUVQVNZYHYCUUFYOVDPYCYDYEYGVOAYJJVHVLZVIZVPTUUGUUJUVLTZYFUUJWIUBZYG
          UUFYFUUJABEJKLVQVRZVFZVSUUGUVHUUIUUJULUUGUVHUVGUUORQZUUPUMQZUUIUUGUVG
          UUOUUPUVNUUGUUOUVSTUUGUUPUWBTVTUUGUUHYKWAZYOUMQZSQUUHUWISQZUUPUMQUUIU
          WHUUGUUHUWIYOUUGUUHUVTTZUUGUWIUUGYKUVMWBTZUUGYOUWATZWCUUGUWJYPUUHSUUG
          UWJYOUWIUMQYPUUGUWIYOUWMUWNWDUUGYOYKUWNUUGYKUVMTZWEWFUQUUGUWKUWGUUPUM
          UUGUUJUUNRQZYKSQUUHWAZYKSQZUWGUWKUUGUWPUWQYKSUUGUUNUUJRQZWAUWPUWQUUGU
          UNUUJUUGUUNUVRTZUWCWGUUGUWSUUHUUGUUJUUHUWCUWLWHWJWKUSUUGUUJUUNYKUWCUW
          TUWOWLUUGUUHWMPYKWMPUWRUWKUNUWLUWOUUHYKWNWSWOUSWOWFUSUUGUVIYKUURRUUGY
          KUUJUWOUWCUWFWPUSWOWFUSUUGUUIUUJUUGUUIUUGUUHYPUVTUUGYOYKUWAUVMVPZVITU
          WCUWFWQUUGUULYRUUMEULUUGUULUUHUKUHQZYQSQYRUUGUUHYPUWLUUGYPUXATWRUUGUX
          BFYQSUUGFVDPZWIFWTXGZUXBFUNYGUXCYFUUFCDFJKMXAZVNZYGUXDYFUUFCDFJKMXBVN
          FXCWSUSWFYFUUMEUNZYGUUFYCYDUXGYEYCYDUDEVDPZWIEWTXGZUXGABEJKLXAZABEJKL
          XBZEXCWSVEVFURXHXDYHFYIYQGUIZSQZEULQZYIYRGUIZEULQUUEYTYHUXMUXOEULYHYI
          YQFGYHUEJXEZYHFYGUXCYFUXEVCZTUUGYQUUGYPUXAXFZTXIUSYHUXNUUEUNUXMUUEESQ
          UNFUUEUXLESFYIKUGZCOZUXSDOZRQZUKUHQZKUIUUEMYIUYCUUDKGKGUOZUYBUUCUKUHU
          YDUXTUUAUYAUUBRUXSYJCUPUXSYJDUPURUSXJXKUXLYIUXSAOZUXSBOZRQZUKUHQZKUIE
          YIYQUYHGKGKUOZYPUYGUKUHUYIYOUYEYKUYFRYJUXSAUPYJUXSBUPURUSXJLXLXMYHUXM
          UUEEYHUXMYHFUXLUXQYFUXLVDPZYGYCYDUYJYEABUXLJGUXLXQXAVEVMVITYHUUEYGUUE
          VDPYFCDUUEJGUUEXQXAVCTYHEYFUXHYGYCYDUXHYEUXJVEZVMTZYFEWIUBZYGYFUWDUYM
          UWEYFUXHUXIUWDUYMXNUYKYCYDUXIYEUXKVEUXHUXIUDUUJWIEWIEXOXPWSXRVMZXSXTY
          HYIYREGUXPUYLUUGYRUUGFYQUXFUXRVITUYNYAWOWF $.

        $( Lemma for ~ axsegcon .  Show that the scaling constant from
           ~ axsegconlem7 produces the betweenness condition for ` A ` , ` B `
           and ` F ` .  (Contributed by Scott Fenton, 21-Sep-2013.) $)
        axsegconlem10 $p |- ( ( ( A e. ( EE ` N ) /\ B e. ( EE ` N )
          /\ A =/= B ) /\ ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
  A. i e. ( 1 ... N ) ( B ` i ) =
  ( ( ( 1 - ( ( sqrt ` S ) / ( ( sqrt ` S ) + ( sqrt ` T ) ) ) ) x. ( A ` i ) )
  + ( ( ( sqrt ` S ) / ( ( sqrt ` S ) + ( sqrt ` T ) ) ) x. ( F ` i ) ) ) ) $=
          ( cfv wcel co cdiv cmul recnd cee wne w3a wa cv csqrt caddc cmin wceq
          c1 cfz cr axsegconlem4 ad2antlr simpl1 fveere sylan remulcld ad2antrr
          3adant3 axsegconlem8 readdcl syl2an cc0 0red clt wbr axsegconlem6 cle
          adantr axsegconlem5 adantl wb addge01 mpbid ltletrd gt0ne0d weq fveq2
          divdird oveq2d oveq12d oveq1d fvmpt simpl2 resubcld divcan2d readdcld
          ovex eqtrd pncan3d divmul2d mpbird cc div23d divsubdird pncan2 dividd
          3eqtr3d ralrimiva ) AJUAOZPZBXAPZABUBZUCZCXAPDXAPUDZUDZGUEZBOZUJEUFOZ
          XJFUFOZUGQZRQZUHQZXHAOZSQZXMXHIOZSQZUGQZUIGUJJUKQZXGXHXTPZUDZXKXOSQZX
          JXQSQZUGQZXLRQZYCXLRQZYDXLRQZUGQXIXSYBYCYDXLYBYCYBXKXOXFXKULPZXEYACDF
          JKMUMZUNXGXBYAXOULPXBXCXDXFUOAXHJUPUQZURZTZYBYDYBXJXQXEXJULPZXFYAXBXC
          YNXDABEJKLUMUTZUSZXGIXAPYAXQULPABCDEFHIJKLMNVAIXHJUPUQZURZTYBXLXGXLUL
          PZYAXEYNYIYSXFYOYJXJXKVBVCZVJZTZXGXLVDUBYAXGXLXGVDXJXLXGVEXEYNXFYOVJY
          TXEVDXJVFVGXFABEJKLVHZVJXGVDXKVIVGZXJXLVIVGZXFUUDXECDFJKMVKVLXEYNYIUU
          DUUEVMXFYOYJXJXKVNVCVOVPVQVJZVTYBYFXIUIYEXLXISQZUIYBYEYCUUGYCUHQZUGQU
          UGYBYDUUHYCUGYBYDXJUUHXJRQZSQUUHYBXQUUIXJSYAXQUUIUIXGHXHXLHUEZBOZSQZX
          KUUJAOZSQZUHQZXJRQUUIXTIHGVRZUUOUUHXJRUUPUULUUGUUNYCUHUUPUUKXIXLSUUJX
          HBVSWAUUPUUMXOXKSUUJXHAVSWAWBWCNUUHXJRWIWDVLWAYBUUHXJYBUUHYBUUGYCYBXL
          XIUUAXGXCYAXIULPXBXCXDXFWEBXHJUPUQZURZYLWFTYBXJYPTZXEXJVDUBXFYAXEXJUU
          CVQUSWGWJWAYBYCUUGYMYBUUGUURTWKWJYBYEXIXLYBYEYBYCYDYLYRWHTYBXIUUQTUUB
          UUFWLWMYBYGXPYHXRUGYBYGXKXLRQZXOSQXPYBXKXOXLXFXKWNPZXEYAXFXKYJTZUNYBX
          OYKTUUBUUFWOYBUUTXNXOSYBXLXJUHQZXLRQXLXLRQZXMUHQUUTXNYBXLXJXLUUBUUSUU
          BUUFWPYBUVCXKXLRXGUVCXKUIZYAXEXJWNPUVAUVEXFXEXJYOTUVBXJXKWQVCVJWCYBUV
          DUJXMUHYBXLUUBUUFWRWCWSWCWJYBXJXQXLUUSYBXQYQTUUBUUFWOWBWSWT $.
      $}
    $}
  $}

  ${
    $d N k p t i x $.  $d A k p t i x $.  $d B k p t i x $.  $d C k p t i x $.
    $d D k p t i x $.
    $( Any segment ` A B ` can be extended to a point ` x ` such that ` B x `
       is congruent to ` C D ` .  Axiom A4 of [Schwabhauser] p. 11.
       (Contributed by Scott Fenton, 4-Jun-2013.) $)
    axsegcon $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
       ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
       E. x e. ( EE ` N ) ( B Btwn <. A , x >. /\
                            <. B , x >. Cgr <. C , D >. ) ) $=
      ( vi vt vk vp cfv wcel wa cmin co cmul caddc wceq c2 cexp cee cv cop ccgr
      cbtwn wbr wrex cn c1 cfz wral csu cc0 cicc wi axsegconlem1 ex wne simprll
      simprlr simpl w3a csqrt cdiv cmpt axsegconlem8 axsegconlem7 axsegconlem10
      simprr axsegconlem9 oveq2d eqeq2d ralbidv oveq1d sumeq2sdv eqeq1d anbi12d
      eqid fveq1 oveq2 oveq1 oveq12d anbi1d rspc2ev syl112anc pm2.61ine simpllr
      syl31anc wb simplll simpr brbtwn syl3anc simplrl simplrr syl22anc r19.41v
      brcgr syl6bbr rexbidva mpbird 3adant1 ) BFUAKZLZCXCLZMZDXCLZEXCLZMZCBAUBZ
      UCUEUFZCXJUCDEUCUDUFZMZAXCUGZFUHLXFXIMZXNGUBZCKZUIHUBZNOZXPBKZPOZXRXPXJKZ
      POZQOZRZGUIFUJOZUKZYFXQYBNOZSTOZGULZYFXPDKXPEKNOSTOGULZRZMZHUMUIUNOZUGZAX
      CUGZXOYPUOBCBCRXOYPAHBCDEGFUPUQBCURZXOYPYQXOMXDXEYQXIYPYQXDXEXIUSYQXDXEXI
      UTYQXOVAYQXFXIVIXDXEYQVBXIMIYFYFJUBZBKYRCKNOSTOJULZVCKZYFYRDKYREKNOSTOJUL
      ZVCKZQOZIUBZCKPOUUBUUDBKPONOYTVDOVEZXCLYTUUCVDOZYNLXQUIUUFNOZXTPOZUUFXPUU
      EKZPOZQOZRZGYFUKZYFXQUUINOZSTOZGULZYKRZYPBCDEYSUUAIUUEFJYSVRZUUAVRZUUEVRZ
      VFBCDEYSUUAFJUURUUSVGBCDEYSUUAGIUUEFJUURUUSUUTVHBCDEYSUUAGIUUEFJUURUUSUUT
      VJYMUUMUUQMXQYAXRUUIPOZQOZRZGYFUKZUUQMAHUUEUUFXCYNXJUUERZYGUVDYLUUQUVEYEU
      VCGYFUVEYDUVBXQUVEYCUVAYAQUVEYBUUIXRPXPXJUUEVSZVKVKVLVMUVEYJUUPYKUVEYFYIU
      UOGUVEYHUUNSTUVEYBUUIXQNUVFVKVNVOVPVQXRUUFRZUVDUUMUUQUVGUVCUULGYFUVGUVBUU
      KXQUVGYAUUHUVAUUJQUVGXSUUGXTPXRUUFUINVTVNXRUUFUUIPWAWBVLVMWCWDWEWHUQWFXOX
      MYOAXCXOXJXCLZMZXMYGHYNUGZYLMYOUVIXKUVJXLYLUVIXEXDUVHXKUVJWIXDXEXIUVHWGZX
      DXEXIUVHWJXOUVHWKZHCBXJGFWLWMUVIXEUVHXGXHXLYLWIUVKUVLXFXGXHUVHWNXFXGXHUVH
      WOCXJDEGFWRWPVQYGYLHYNWQWSWTXAXB $.
  $}

  ${
    $d A i j $.  $d B i j $.  $d C i j $.  $d N i j $.  $d T i j $.
    $( Lemma for ~ ax5seg .  Rexpress a one congruence sum given betweenness.
       (Contributed by Scott Fenton, 11-Jun-2013.) $)
    ax5seglem1 $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( T e. ( 0 [,] 1 ) /\
         A. i e. ( 1 ... N ) ( B ` i ) =
          ( ( ( 1 - T ) x. ( A ` i ) ) + ( T x. ( C ` i ) ) ) ) ) ->
       sum_ j e. ( 1 ... N ) ( ( ( A ` j ) - ( B ` j ) ) ^ 2 ) =
       ( ( T ^ 2 ) x.
         sum_ j e. ( 1 ... N ) ( ( ( A ` j ) - ( C ` j ) ) ^ 2 ) ) ) $=
      ( wcel cfv wa c1 co cmin cmul wceq c2 cexp cc adantr oveq1d cn cee cc0 cv
      cicc caddc cfz w3a csu simpl2l fveecn sylancom simpl2r cr cle wbr 0re 1re
      wral elicc2i simp1bi 3ad2ant3 recnd fveq2 oveq12d eqeq12d rspccva adantll
      oveq2d 3ad2antl3 oveq2 subdi 3coml ax-1cn subcl mpan adantl subdir mp3an1
      simpl syl2anc nncan mulid2 3eqtr3rd 3adant2 simp1 ancoms 3adant1 subsub4d
      mulcl sylan 3eqtr2rd simp3 sqmuld eqtrd sylan9eqr syl31anc sumeq2dv fzfid
      3adant3 resqcld 3adant2r 3adant2l sqcld 3expa 3adantl3 fsummulc2 eqtr4d )
      GUAHZAGUBIZHZCXJHZJZDUCKUELHZEUDZBIZKDMLZXOAIZNLZDXOCIZNLZUFLZOZEKGUGLZUS
      ZJZUHZYDFUDZAIZYHBIZMLZPQLZFUIYDDPQLZYIYHCIZMLZPQLZNLZFUIYMYDYPFUINLYGYDY
      LYQFYGYHYDHZJYIRHZYNRHZDRHZYJXQYINLZDYNNLZUFLZOZYLYQOYGYRXKYSXKXLXIYFYRUJ
      AYHGUKZULYGYRXLYTXKXLXIYFYRUMCYHGUKZULYGUUAYRYGDYFXIDUNHZXMXNUUHYEXNUUHUC
      DUOUPDKUOUPUCKDUQURUTVAZSVBVCSYFXIYRUUEXMYEYRUUEXNYCUUEEYHYDXOYHOZXPYJYBU
      UDXOYHBVDUUJXSUUBYAUUCUFUUJXRYIXQNXOYHAVDVIUUJXTYNDNXOYHCVDVIVEVFVGVHVJUU
      EYSYTUUAUHZYLYIUUDMLZPQLZYQUUEYKUULPQYJUUDYIMVKTUUKUUMDYONLZPQLYQUUKUULUU
      NPQUUKUUNDYINLZUUCMLZYIUUBMLZUUCMLZUULUUAYSYTUUNUUPODYIYNVLVMYSUUAUURUUPO
      YTYSUUAJZUUQUUOUUCMUUSKXQMLZYINLZKYINLZUUBMLZUUOUUQUUSXQRHZYSUVAUVCOZUUAU
      VDYSKRHZUUAUVDVNKDVOVPZVQYSUUAVTUVFUVDYSUVEVNKXQYIVRVSWAUUAUVAUUOOYSUUAUU
      TDYINUVFUUAUUTDOVNKDWBVPTVQYSUVCUUQOUUAYSUVBYIUUBMYIWCTSWDTWEUUKYIUUBUUCY
      SYTUUAWFYSUUAUUBRHZYTUUAYSUVHUUAUVDYSUVHUVGXQYIWJWKWGWEYTUUAUUCRHZYSUUAYT
      UVIDYNWJWGWHWIWLTUUKDYOYSYTUUAWMYSYTYORHZUUAYIYNVOZWTWNWOWPWQWRYGYDYPYMFY
      GKGWSYFXIYMRHZXMXNUVLYEXNYMXNDUUIXAVCSVBXIXMYRYPRHZYFXIXMYRUVMXIXMYRUHZYO
      UVNYSYTUVJXIXKYRYSXLXKYRYSXIUUFWHXBXIXLYRYTXKXLYRYTXIUUGWHXCUVKWAXDXEXFXG
      XH $.

    $( Lemma for ~ ax5seg .  Rexpress another congruence sum given betweenness.
       (Contributed by Scott Fenton, 11-Jun-2013.) $)
    ax5seglem2 $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( T e. ( 0 [,] 1 ) /\
         A. i e. ( 1 ... N ) ( B ` i ) =
          ( ( ( 1 - T ) x. ( A ` i ) ) + ( T x. ( C ` i ) ) ) ) ) ->
       sum_ j e. ( 1 ... N ) ( ( ( B ` j ) - ( C ` j ) ) ^ 2 ) =
       ( ( ( 1 - T ) ^ 2 ) x.
         sum_ j e. ( 1 ... N ) ( ( ( A ` j ) - ( C ` j ) ) ^ 2 ) ) ) $=
      ( wcel cfv wa cc0 c1 co cmin cmul caddc wceq c2 cexp cc cee cicc cfz wral
      cn cv w3a csu simpl2l fveecn sylancom simpl2r cle wbr 0re elicc2i simp1bi
      cr 1re recnd adantr 3ad2ant3 fveq2 oveq2d oveq12d eqeq12d rspccva adantll
      3ad2antl3 oveq1 oveq1d ax-1cn subcl mpan simp1 mulcld simp3 simp2 syl3an1
      addsubassd subdi 3coml subdir mp3an1 ancoms 3adant1 mulid2 3ad2ant2 eqtrd
      subsub2d 3eqtrd eqtr4d 3adant3 sqmuld sylan9eqr syl31anc sumeq2dv resubcl
      fzfid sylancr resqcld 3adant2r 3adant2l subcld sqcld 3adantl3 fsummulc2
      3expa ) GUEHZAGUAIZHZCXJHZJZDKLUBMHZEUFZBIZLDNMZXOAIZOMZDXOCIZOMZPMZQZELG
      UCMZUDZJZUGZYDFUFZBIZYHCIZNMZRSMZFUHYDXQRSMZYHAIZYJNMZRSMZOMZFUHYMYDYPFUH
      OMYGYDYLYQFYGYHYDHZJYNTHZYJTHZDTHZYIXQYNOMZDYJOMZPMZQZYLYQQYGYRXKYSXKXLXI
      YFYRUIAYHGUJZUKYGYRXLYTXKXLXIYFYRULCYHGUJZUKYGUUAYRYFXIUUAXMXNUUAYEXNDXND
      URHZKDUMUNDLUMUNKLDUOUSUPUQZUTVAVBVAYFXIYRUUEXMYEYRUUEXNYCUUEEYHYDXOYHQZX
      PYIYBUUDXOYHBVCUUJXSUUBYAUUCPUUJXRYNXQOXOYHAVCVDUUJXTYJDOXOYHCVCVDVEVFVGV
      HVIUUEYSYTUUAUGZYLUUDYJNMZRSMZYQUUEYKUULRSYIUUDYJNVJVKUUKUUMXQYOOMZRSMYQU
      UKUULUUNRSUUKUULUUBUUCYJNMPMZUUNUUKUUBUUCYJUUKXQYNUUAYSXQTHZYTLTHZUUAUUPV
      LLDVMVNZVBZYSYTUUAVOVPZUUKDYJYSYTUUAVQYSYTUUAVRZVPZUVAVTUUKUUNUUBXQYJOMZN
      MZUUBYJUUCNMZNMUUOUUAYSYTUUNUVDQZUUAUUPYSYTUVFUURXQYNYJWAVSWBUUKUVCUVEUUB
      NUUKUVCLYJOMZUUCNMZUVEYTUUAUVCUVHQZYSUUAYTUVIUUQUUAYTUVIVLLDYJWCWDWEWFYTY
      SUVHUVEQUUAYTUVGYJUUCNYJWGVKWHWIVDUUKUUBYJUUCUUTUVAUVBWJWKWLVKUUKXQYOUUSY
      SYTYOTHUUAYNYJVMWMWNWIWOWPWQYGYDYPYMFYGLGWSYFXIYMTHZXMXNUVJYEXNYMXNXQXNLU
      RHUUHXQURHUSUUILDWRWTXAUTVAVBXIXMYRYPTHZYFXIXMYRUVKXIXMYRUGZYOUVLYNYJXIXK
      YRYSXLXKYRYSXIUUFWFXBXIXLYRYTXKXLYRYTXIUUGWFXCXDXEXHXFXGWL $.
  $}

  $( Lemma for ~ ax5seg .  (Contributed by Scott Fenton, 7-May-2015.) $)
  ax5seglem3a $p |- ( ( ( N e. NN /\
    ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
    ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) /\
      j e. ( 1 ... N ) ) ->
      ( ( ( A ` j ) - ( C ` j ) ) e. RR /\
        ( ( D ` j ) - ( F ` j ) ) e. RR ) ) $=
    ( cn wcel cee cfv w3a cv co cmin cr fveere sylancom resubcld c1 cfz simpl21
    wa simpl23 simpl31 simpl33 jca ) HIJZAHKLZJZBUJJZCUJJZMZDUJJZFUJJZGUJJZMZMZ
    ENZUAHUBOJZUDZUTALZUTCLZPOQJUTDLZUTGLZPOQJVBVCVDUSVAUKVCQJUKULUMUIURVAUCAUT
    HRSUSVAUMVDQJUKULUMUIURVAUECUTHRSTVBVEVFUSVAUOVEQJUOUPUQUIUNVAUFDUTHRSUSVAU
    QVFQJUOUPUQUIUNVAUGGUTHRSTUH $.

  ${
    $d A i j $.  $d B i j $.  $d C i j $.  $d D i j $.  $d E i j $.
    $d F i j $.  $d N i j $.  $d S i j $.  $d T i j $.
    $( Lemma for ~ ax5seg .  Combine congruences for points on a line.
       (Contributed by Scott Fenton, 11-Jun-2013.) $)
    ax5seglem3 $p |-
        ( ( ( N e. NN /\
            ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
            ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) /\
            ( ( T e. ( 0 [,] 1 ) /\ S e. ( 0 [,] 1 ) ) /\
              ( A. i e. ( 1 ... N )
                ( B ` i ) =
                ( ( ( 1 - T ) x. ( A ` i ) ) + ( T x. ( C ` i ) ) ) /\
                A. i e. ( 1 ... N )
                ( E ` i ) =
                ( ( ( 1 - S ) x. ( D ` i ) ) + ( S x. ( F ` i ) ) ) ) ) /\
            ( <. A , B >. Cgr <. D , E >. /\
              <. B , C >. Cgr <. E , F >. ) ) ->
         sum_ j e. ( 1 ... N ) ( ( ( A ` j ) - ( C ` j ) ) ^ 2 ) =
         sum_ j e. ( 1 ... N ) ( ( ( D ` j ) - ( F ` j ) ) ^ 2 ) ) $=
      ( wcel cfv c1 co cmul wceq wbr c2 cexp cn cee w3a cc0 cicc wa cv cmin cfz
      caddc wral cop ccgr csu csqrt 1re cle 0re elicc2i simp1bi resubcl sylancr
      cr ad2antrr 3ad2ant2 ax5seglem3a simpld resqcld fsumrecl sqge0d resqrtcld
      fzfid fsumge0 3ad2ant1 remulcld ad2antlr simprd wb subge0 mpbird sqrtge0d
      simp3bi mulge0d resqrtth syl2anc oveq2d ax-1cn recnd subcl sqmuld simp122
      cc simp3r simp123 simp132 simp133 syl22anc simp11 simp121 simp2ll simp2rl
      brcgr ax5seglem2 syl122anc simp131 simp2lr simp2rr 3eqtr3d 3eqtr4d simp3l
      mpbid sq11d simp2bi ax5seglem1 oveq12d adddird npcan adantr mulid2d eqtrd
      oveq1d sqrt11 ) KUALZAKUBMZLZBYDLZCYDLZUCZDYDLZIYDLZJYDLZUCZUCZFUDNUEOZLZ
      EYNLZUFZGUGZBMNFUHOZYRAMPOFYRCMPOUJOQGNKUIOZUKZYRIMNEUHOZYRDMPOEYRJMPOUJO
      QGYTUKZUFZUFZABULDIULUMRZBCULIJULUMRZUFZUCZYTHUGZAMZUUJCMZUHOZSTOZHUNZUOM
      ZYTUUJDMZUUJJMZUHOZSTOZHUNZUOMZQZUUOUVAQZUUIYSFUJOZUUPPOZUUBEUJOZUVBPOZUU
      PUVBUUIYSUUPPOZFUUPPOZUJOUUBUVBPOZEUVBPOZUJOUVFUVHUUIUVIUVKUVJUVLUJUUIUVI
      UVKUUIYSUUPUUEYMYSVCLZUUHYOUVMYPUUDYONVCLZFVCLZUVMUPYOUVOUDFUQRZFNUQRZUDN
      FURUPUSZUTZNFVAVBVDVEZYMUUEUUPVCLUUHYMUUOYMYTUUNHYMNKVLZYMUUJYTLUFZUUMUWB
      UUMVCLZUUSVCLZABCDHIJKVFZVGZVHZVIZYMYTUUNHUWAUWGUWBUUMUWFVJVMZVKZVNZVOUUI
      UUBUVBUUEYMUUBVCLZUUHYPUWLYOUUDYPUVNEVCLZUWLUPYPUWMUDEUQRZENUQRZUDNEURUPU
      SZUTZNEVAVBVPVEZYMUUEUVBVCLUUHYMUVAYMYTUUTHUWAUWBUUSUWBUWCUWDUWEVQZVHZVIZ
      YMYTUUTHUWAUWTUWBUUSUWSVJVMZVKZVNZVOUUIYSUUPUVTUWKUUEYMUDYSUQRZUUHYOUXEYP
      UUDYOUXEUVQYOUVOUVPUVQUVRWBYOUVNUVOUXEUVQVRUPUVSNFVSVBVTVDVEYMUUEUDUUPUQR
      UUHYMUUOUWHUWIWAVNZWCUUIUUBUVBUWRUXDUUEYMUDUUBUQRZUUHYPUXGYOUUDYPUXGUWOYP
      UWMUWNUWOUWPWBYPUVNUWMUXGUWOVRUPUWQNEVSVBVTVPVEYMUUEUDUVBUQRUUHYMUVAUXAUX
      BWAVNZWCUUIYSSTOZUUPSTOZPOUXIUUOPOZUVISTOUVKSTOZUUIUXJUUOUXIPYMUUEUXJUUOQ
      ZUUHYMUUOVCLZUDUUOUQRZUXMUWHUWIUUOWDWEZVNWFUUIYSUUPUUINWLLZFWLLZYSWLLWGUU
      EYMUXRUUHYOUXRYPUUDYOFUVSWHZVDVEZNFWIVBZYMUUEUUPWLLUUHYMUUPUWJWHZVNZWJUUI
      UUBSTOZUVBSTOZPOUYDUVAPOZUXLUXKUUIUYEUVAUYDPYMUUEUYEUVAQZUUHYMUVAVCLZUDUV
      AUQRZUYGUXAUXBUVAWDWEVNZWFUUIUUBUVBUUIUXQEWLLZUUBWLLWGUUEYMUYKUUHYPUYKYOU
      UDYPEUWQWHZVPVEZNEWIVBZYMUUEUVBWLLUUHYMUVBUXCWHZVNZWJUUIYTUUJBMZUULUHOSTO
      HUNZYTUUJIMZUURUHOSTOHUNZUXKUYFUUIUUGUYRUYTQZYMUUEUUFUUGWMUUIYFYGYJYKUUGV
      UAVRYEYFYGYCYLUUEUUHWKZYEYFYGYCYLUUEUUHWNZYIYJYKYCYHUUEUUHWOZYIYJYKYCYHUU
      EUUHWPZBCIJHKXBWQXKUUIYCYEYGYOUUAUYRUXKQYCYHYLUUEUUHWRZYEYFYGYCYLUUEUUHWS
      ZVUCYOYPUUDYMUUHWTZUUAUUCYQYMUUHXAZABCFGHKXCXDUUIYCYIYKYPUUCUYTUYFQVUFYIY
      JYKYCYHUUEUUHXEZVUEYOYPUUDYMUUHXFZUUAUUCYQYMUUHXGZDIJEGHKXCXDXHXIXIXLUUIU
      VJUVLUUIFUUPUUEYMUVOUUHYOUVOYPUUDUVSVDVEZUWKVOUUIEUVBUUEYMUWMUUHYPUWMYOUU
      DUWQVPVEZUXDVOUUIFUUPVUMUWKUUEYMUVPUUHYOUVPYPUUDYOUVOUVPUVQUVRXMVDVEUXFWC
      UUIEUVBVUNUXDUUEYMUWNUUHYPUWNYOUUDYPUWMUWNUWOUWPXMVPVEUXHWCUUIFSTOZUXJPOZ
      VUOUUOPOZUVJSTOUVLSTOZYMUUEVUPVUQQUUHYMUXJUUOVUOPUXPWFVNUUIFUUPUXTUYCWJUU
      IESTOZUYEPOVUSUVAPOZVURVUQUUIUYEUVAVUSPUYJWFUUIEUVBUYMUYPWJUUIYTUUKUYQUHO
      STOHUNZYTUUQUYSUHOSTOHUNZVUQVUTUUIUUFVVAVVBQZYMUUEUUFUUGXJUUIYEYFYIYJUUFV
      VCVRVUGVUBVUJVUDABDIHKXBWQXKUUIYCYEYGYOUUAVVAVUQQVUFVUGVUCVUHVUIABCFGHKXN
      XDUUIYCYIYKYPUUCVVBVUTQVUFVUJVUEVUKVULDIJEGHKXNXDXHXIXIXLXOUUIYSFUUPUYAUX
      TUYCXPUUIUUBEUVBUYNUYMUYPXPXIUUIUVFNUUPPOZUUPUUEYMUVFVVDQZUUHYQVVEUUDYQUV
      ENUUPPYOUVENQZYPYOUXQUXRVVFWGUXSNFXQVBXRYAXRVEYMUUEVVDUUPQUUHYMUUPUYBXSVN
      XTUUIUVHNUVBPOZUVBUUEYMUVHVVGQZUUHYPVVHYOUUDYPUVGNUVBPYPUXQUYKUVGNQWGUYLN
      EXQVBYAVPVEYMUUEVVGUVBQUUHYMUVBUYOXSVNXTXHYMUUEUVCUVDVRZUUHYMUXNUXOUYHUYI
      VVIUWHUWIUXAUXBUUOUVAYBWQVNXK $.
  $}

  ${
    $d A i $.  $d B i $.  $d C i $.  $d N i $.  $d T i $.
    $( Lemma for ~ ax5seg .  Given two distinct points, the scaling constant in
       a betweenness statement is nonzero.  (Contributed by Scott Fenton,
       11-Jun-2013.) $)
    ax5seglem4 $p |-
       ( ( ( N e. NN /\
           ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) /\
           A. i e. ( 1 ... N )
               ( B ` i ) =
               ( ( ( 1 - T ) x. ( A ` i ) ) + ( T x. ( C ` i ) ) ) /\
            A =/= B ) -> T =/= 0 ) $=
      ( wcel cfv wa c1 cmin co cmul caddc wceq wral wne cc0 cc fveecn cn cee cv
      w3a cfz oveq2 1m0e1 syl6eq oveq1d oveq1 oveq12d eqeq2d ralbidv biimpac wb
      eqeefv 3adant1 3adant3r3 simplr1 sylancom simplr3 mulid2 oveqan12d addid1
      eqcom mul02 adantr eqtrd syl2anc eqeq1d syl5rbbr ralbidva syl5ibr expdimp
      bitrd necon3d 3impia ) FUAGZAFUBHZGZBVSGZCVSGZUDIZEUCZBHZJDKLZWDAHZMLZDWD
      CHZMLZNLZOZEJFUELZPZABQDRQWCWNIDRABWCWNDROZABOZWNWOIWPWCWEJWGMLZRWIMLZNLZ
      OZEWMPZWOWNXAWOWLWTEWMWOWKWSWEWOWHWQWJWRNWOWFJWGMWOWFJRKLJDRJKUFUGUHUIDRW
      IMUJUKULUMUNWCWPWGWEOZEWMPZXAVRVTWAWPXCUOZWBVTWAXDVRABEFUPUQURWCXBWTEWMWT
      WSWEOWCWDWMGZIZXBWSWEVEXFWSWGWEXFWGSGZWISGZWSWGOWCXEVTXGVTWAWBVRXEUSAWDFT
      UTWCXEWBXHVTWAWBVRXEVACWDFTUTXGXHIWSWGRNLZWGXGXHWQWGWRRNWGVBWIVFVCXGXIWGO
      XHWGVDVGVHVIVJVKVLVOVMVNVPVQ $.
  $}

  ${
    $d A i j $.  $d B i j $.  $d C i j $.  $d T i $.  $d N i j $.
    $( Lemma for ~ ax5seg .  If ` B ` is between ` A ` and ` C ` , and ` A ` is
       distinct from ` B ` , then ` A ` is distinct from ` C ` .  (Contributed
       by Scott Fenton, 11-Jun-2013.) $)
    ax5seglem5 $p |-
        ( ( ( N e. NN /\
            ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) /\
            ( A =/= B /\ T e. ( 0 [,] 1 ) /\
              A. i e. ( 1 ... N )
                ( B ` i ) =
                ( ( ( 1 - T ) x. ( A ` i ) ) + ( T x. ( C ` i ) ) ) ) ) ->
         sum_ j e. ( 1 ... N ) ( ( ( A ` j ) - ( C ` j ) ) ^ 2 ) =/= 0 ) $=
      ( wcel cfv wa wne cc0 c1 co cmul caddc wceq wral wb cc cn cee w3a cicc cv
      cmin cfz c2 cexp csu fveq1 oveq2d eqeq2d ralbidv biimparc simplr1 simplr2
      wi eqeefv syl2anc fveecn sylan cle wbr 0re elicc2i simp1bi recnd ad2antlr
      cr 1re ax-1cn npcan mpan oveq1d mulid2 sylan9eqr subcl adantl simpr simpl
      adddird eqtr3d eqeq1d eqcom syl6bb ralbidva bitrd syl5ibr expd necon3d ex
      impr com23 exp4a 3imp2 simplr3 eqeelen necon3bid mpbid ) GUAHZAGUBIZHZBXB
      HZCXBHZUCJZABKZDLMUDNHZEUEZBIZMDUFNZXIAIZONZDXICIZONZPNZQZEMGUGNZRZUCZJZA
      CKZXRFUEZAIYCCIUFNUHUINFUJZLKXFXGXHXSYBXFXGXHXSYBXFXHXSJZXGYBXFYEXGYBURXF
      YEJACABXFXHXSACQZABQZURXFXHJZXSYFYGXSYFJYGYHXJXMDXLONZPNZQZEXRRZYFYLXSYFY
      KXQEXRYFYJXPXJYFYIXOXMPYFXLXNDOXIACUKULULUMUNUOYHYGXLXJQZEXRRZYLYHXCXDYGY
      NSXCXDXEXAXHUPZXCXDXEXAXHUQABEGUSUTYHYMYKEXRYHXIXRHZJZYMYJXJQZYKYQXLTHZDT
      HZYMYRSYHXCYPYSYOAXIGVAVBXHYTXFYPXHDXHDVJHLDVCVDDMVCVDLMDVEVKVFVGVHVIYSYT
      JZXLYJXJUUAXKDPNZXLONZXLYJYTYSUUCMXLONXLYTUUBMXLOMTHZYTUUBMQVLMDVMVNVOXLV
      PVQUUAXKDXLYTXKTHZYSUUDYTUUEVLMDVRVNVSYSYTVTYSYTWAWBWCWDUTYJXJWEWFWGWHWIW
      JWMWKWLWNWOWPYAACYDLYAXCXEYFYDLQSXCXDXEXAXTUPXCXDXEXAXTWQACFGWRUTWSWT $.
  $}

  ${
    $d A i j $.  $d B i j $.  $d C i j $.  $d D i j $.  $d E i j $.
    $d F i j $.  $d N i j $.  $d S i j $.  $d T i j $.
    $( Lemma for ~ ax5seg .  Given two line segments that are divided into
       pieces, if the pieces are congruent, then the scaling constant is the
       same.  (Contributed by Scott Fenton, 12-Jun-2013.) $)
    ax5seglem6 $p |-
        ( ( ( N e. NN /\
            ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
              ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ) /\
            ( A =/= B /\ ( T e. ( 0 [,] 1 ) /\ S e. ( 0 [,] 1 ) ) /\
              ( A. i e. ( 1 ... N )
                ( B ` i ) =
                ( ( ( 1 - T ) x. ( A ` i ) ) + ( T x. ( C ` i ) ) ) /\
                A. i e. ( 1 ... N )
                ( E ` i ) =
                ( ( ( 1 - S ) x. ( D ` i ) ) + ( S x. ( F ` i ) ) ) ) ) /\
            ( <. A , B >. Cgr <. D , E >. /\
              <. B , C >. Cgr <. E , F >. ) ) -> T = S ) $=
      ( vj wcel cfv wa cc0 c1 co cmin cmul wceq cn cee w3a wne cicc cv cfz wral
      caddc cop ccgr wbr c2 cexp csu simp22l cle 0re 1re elicc2i simp1bi resqcl
      cr cc recnd 3syl simp22r fzfid simprl1 3ad2ant1 fveecn sylan subcld sqcld
      simprl3 fsumcl simp1l simp1rl simp21 simp23l ax5seglem5 simp3l wb simprl2
      syl23anc simprr1 simprr2 brcgr mpbid ax5seglem1 syl122anc simprr3 simp23r
      syl22anc 3eqtr3d simp1rr simp22 simp23 simp3r ax5seglem3 syl322anc oveq2d
      eqtr4d mulcan2ad simp2bi jca syl sq11 syl2anc ) JUALZAJUBMZLZBXKLZCXKLZUC
      ZDXKLZHXKLZIXKLZUCZNZNZABUDZFOPUEQZLZEYCLZNZGUFZBMPFRQYGAMSQFYGCMSQUIQTGP
      JUGQZUHZYGHMPERQYGDMSQEYGIMSQUIQTGYHUHZNZUCZABUJDHUJUKULZBCUJHIUJUKULZNZU
      CZFUMUNQZEUMUNQZTZFETZYPYQYRYHKUFZAMZUUACMZRQZUMUNQZKUOZYPYDFVCLZYQVDLYDY
      EYBYKYAYOUPZYDUUGOFUQULZFPUQULZOPFURUSUTZVAZUUGYQFVBVEVFYPYEEVCLZYRVDLYDY
      EYBYKYAYOVGZYEUUMOEUQULZEPUQULZOPEURUSUTZVAZUUMYREVBVEVFYPYHUUEKYPPJVHYPU
      UAYHLZNZUUDUUTUUBUUCYPXLUUSUUBVDLYAYLXLYOXLXMXNXSXJVIZVJZAUUAJVKVLYPXNUUS
      UUCVDLYAYLXNYOXLXMXNXSXJVOVJZCUUAJVKVLVMVNVPYPXJXOYBYDYIUUFOUDXJXTYLYOVQZ
      XOXSXJYLYOVRZYAYBYFYKYOVSUUHYIYJYBYFYAYOVTZABCFGKJWAWEYPYQUUFSQZYRYHUUADM
      ZUUAIMRQUMUNQKUOZSQZYRUUFSQYPYHUUBUUABMRQUMUNQKUOZYHUVHUUAHMRQUMUNQKUOZUV
      GUVJYPYMUVKUVLTZYAYLYMYNWBZYAYLYMUVMWCZYOYAXLXMXPXQUVOUVAXLXMXNXSXJWDXPXQ
      XRXOXJWFZXPXQXRXOXJWGABDHKJWHWNVJWIYPXJXLXNYDYIUVKUVGTUVDUVBUVCUUHUVFABCF
      GKJWJWKYPXJXPXRYEYJUVLUVJTUVDYAYLXPYOUVPVJYAYLXRYOXPXQXRXOXJWLVJUUNYIYJYB
      YFYAYOWMDHIEGKJWJWKWOYPUUFUVIYRSYPXJXOXSYFYKYMYNUUFUVITUVDUVEXOXSXJYLYOWP
      YAYBYFYKYOWQYAYBYFYKYOWRUVNYAYLYMYNWSABCDEFGKHIJWTXAXBXCXDYPUUGUUINZUUMUU
      ONZYSYTWCYPYDUVQUUHYDUUGUUIUULYDUUGUUIUUJUUKXEXFXGYPYEUVRUUNYEUUMUUOUURYE
      UUMUUOUUPUUQXEXFXGFEXHXIWI $.
  $}

  ${
    ax5seglem7.1 $e |- A e. CC $.
    ax5seglem7.2 $e |- T e. CC $.
    ax5seglem7.3 $e |- C e. CC $.
    ax5seglem7.4 $e |- D e. CC $.
    $( Lemma for ~ ax5seg .  An algebraic calculation needed further down the
       line.  (Contributed by Scott Fenton, 12-Jun-2013.) $)
    ax5seglem7 $p |- ( T x. ( ( C - D ) ^ 2 ) ) =
       ( ( ( ( ( ( 1 - T ) x. A ) + ( T x. C ) ) - D ) ^ 2 ) +
         ( ( 1 - T ) x.
           ( ( T x. ( ( A - C ) ^ 2 ) ) - ( ( A - D ) ^ 2 ) ) ) ) $=
      ( cmin co c2 cexp cmul caddc oveq2i 2cn mulcli subcli cc wcel adddii wceq
      c1 binom2subi sqcli subdii oveq1i 3eqtri cc0 ax-1cn addcli subadd23 mp3an
      binom2i addsubassi addsubi 3eqtr4i eqtri oveq12i addsub4i subdiri mulid2i
      eqtr4i subsub3 subsub4 3eqtr2i addassi add32i subsub2 cneg addcomi sqmuli
      addsub12 sqvali mulassi mul12i mulcomi eqtr3i eqeltrri 3eqtrri negsubdi2i
      sub32 subsub mulneg2i negsubi subeq0i mpbir addid2i ) DBCIJKLJZMJZDBKLJZM
      JZDKBCMJZMJZMJZIJZDCKLJZMJZNJZUCDIJZAMJZDBMJZNJCIJZKLJZWTDABIJKLJZMJZACIJ
      KLJZIJZMJZNJZWJDWKWNIJZWQNJZMJDXKMJZWRNJWSWIXLDMBCGHUDODXKWQFWKWNBGUEZKWM
      PBCGHQZQZRCHUEZUAXMWPWRNDWKWNFXNXPUFUGUHXJXAKLJZKXAXBCIJZMJZMJZNJZXBKLJZW
      QNJZNJZWTDAKLJZKABMJZMJZIJZMJZYFKACMJZMJZIJZIJZMJZWQDWLMJZNJZIJZNJZWLWRNJ
      ZKXBCMJZMJZIJZNJZUIWSNJWSYEUUBIJZYTNJZYRNJZYEUUCNJZYRNJXJUUDUUFUUHYRNYEST
      ZUUBSTYTSTZUUFUUHUBYBYDXRYAXAWTAUCDUJFRZEQZUEKXTPXAXSUULXBCDBFGQZHRZQQUKZ
      YCWQXBUUMUEZXQUKZUKZKUUAPXBCUUMHQQZWLWRDWKFXNQZDWQFXQQZUKZYEUUBYTULUMUGXJ
      UUEYTYRNJZNJUUGXDUUEXIUVCNXAXSNJZKLJYBXSKLJZNJZXDUUEXAXSUULUUNUNXCUVDKLXA
      XBCUULUUMHUOUGUUEYBYDUUBIJZNJUVFYBYDUUBUUOUUQUUSUOUVEUVGYBNUVEYCUUBIJWQNJ
      UVGXBCUUMHUDYCWQUUBUUPXQUUSUPVCOVCUQXIWTYNWLWQIJZNJZMJYOWTUVHMJZNJZUVCXHU
      VIWTMXHYJWLNJZYMWQNJZIJUVIXFUVLXGUVMIXFDYIWKNJZMJUVLXEUVNDMABEGUDODYIWKFY
      FYHAEUEZKYGPABEGQQZRZXNUAURACEHUDUSYJWLYMWQDYIFUVQQZUUTYFYLUVOKYKPACEHQQZ
      RZXQUTUROWTYNUVHUUKYJYMUVRUVTRZWLWQUUTXQRZUAUVKYOYTYQIJZNJZUVCUVJUWCYONUV
      JUCUVHMJZDUVHMJZIJUVHYPWRIJZIJZUWCUCDUVHUJFUWBVAUWEUVHUWFUWGIUVHUWBVBDWLW
      QFUUTXQUFUSUWHUVHWRNJZYPIJZYTWQIJZYPIJZUWCUVHSTYPSTZWRSTUWHUWJUBUWBDWLFUU
      TQZUVAUVHYPWRVDUMUWKUWIYPIWLWRWQUUTUVAXQUPUGUUJWQSTUWMUWLUWCUBUVBXQUWNYTW
      QYPVEUMVFUHOYOSTZUUJYQSTZUWDUVCUBWTYNUUKUWAQZUVBWQYPXQUWNUKZYOYTYQVMUMURU
      HUSUUEYTYRYEUUBUURUUSRUVBYOYQUWQUWRRZVGVCYEYRUUCUURUWSYTUUBUVBUUSRVHUQYSU
      IUUCWSNYEYQYOIJZIJZYSUIUUIUWPUWOUXAYSUBUURUWRUWQYEYQYOVIUMUXAUIUBYEUWTUBY
      BYCNJZWQNJZYEUWTYBYCWQUUOUUPXQVGWQUXBNJWQYPYOIJZNJUXCUWTUXBUXDWQNUXBYCYBN
      JYPYOVJZNJUXDYBYCUUOUUPVKYCYPYBUXENYCDKLJZWKMJDDMJZWKMJYPDBFGVLUXFUXGWKMD
      FVNUGDDWKFFXNVOUHYBWTYMYJIJZMJZWTYNVJZMJUXEYBWTYFDYFMJZIJZMJZWTDYHMJZYLIJ
      ZMJZNJWTUXLUXONJZMJUXIXRUXMYAUXPNXRWTKLJZYFMJWTWTMJZYFMJZUXMWTAUUKEVLUXRU
      XSYFMWTUUKVNUGUXTWTWTYFMJZMJUXMWTWTYFUUKUUKUVOVOUYAUXLWTMUYAUCYFMJZUXKIJU
      XLUCDYFUJFUVOVAUYBYFUXKIYFUVOVBUGUROURUHYAXAKXSMJZMJWTAUYCMJZMJUXPKXAXSPU
      ULUUNVPWTAUYCUUKEKXSPUUNQVOUYDUXOWTMKAMJZXSMJZUYDUXOAKMJZXSMJUYFUYDUYGUYE
      XSMAKEPVQUGAKXSEPUUNVOVRUYFUYEXBMJZUYECMJZIJUXOUYEXBCKAPEQZUUMHUFUYHUXNUY
      IYLIUYHDUYEBMJZMJUXNUYEDBUYJFGVPUYKYHDMKABPEGVOOURKACPEHVOUSURVROUHUSWTUX
      LUXOUUKYFUXKUVODYFFUVOQZRZUXNYLDYHFUVPQZUVSRUAUXQUXHWTMUXHYFUXKUXNIJZIJZY
      LIJZUXLUXNNJZYLIJUXQUXHYMUYOIJZUYQYJUYOYMIDYFYHFUVOUVPUFZOYFSTZUYOSTYLSTU
      YQUYSUBUVOYJUYOSUYTUVRVSUVSYFUYOYLWBUMVCUYPUYRYLIVUAUXKSTUXNSTUYPUYRUBUVO
      UYLUYNYFUXKUXNWCUMUGUXLUXNYLUYMUYNUVSUOVTOVFUXJUXHWTMYJYMUVRUVTWAOWTYNUUK
      UWAWDVFUSYPYOUWNUWQWEUHOUXBWQYBYCUUOUUPUKXQVKWQYPYOXQUWNUWQUOUQVRYEUWTUUR
      YQYOUWRUWQRWFWGVRUUCYTWOIJWSUUBWOYTIUUBKDWMMJZMJWOUUAVUBKMDBCFGHVOOKDWMPF
      XOVPUROWLWRWOUUTUVADWNFXPQZUPURUSWSWPWRWLWOUUTVUCRUVAUKWHUHVC $.
  $}

  $( Lemma for ~ ax5seg .  Use the weak deduction theorem to eliminate the
     hypotheses from ~ ax5seglem7 .  (Contributed by Scott Fenton,
     11-Jun-2013.) $)
  ax5seglem8 $p |- ( ( ( A e. CC /\ T e. CC ) /\ ( C e. CC /\ D e. CC ) ) ->
       ( T x. ( ( C - D ) ^ 2 ) ) =
       ( ( ( ( ( ( 1 - T ) x. A ) + ( T x. C ) ) - D ) ^ 2 ) +
         ( ( 1 - T ) x.
           ( ( T x. ( ( A - C ) ^ 2 ) ) - ( ( A - D ) ^ 2 ) ) ) ) ) $=
    ( cc wcel cmin co c2 cexp cmul caddc wceq cc0 cif oveq2 oveq1d oveq1 oveq2d
    oveq12d c1 eqeq2d eqeq12d 0cn elimel ax5seglem7 dedth4h ) AEFZDEFZBEFZCEFZD
    BCGHZIJHZKHZUADGHZAKHZDBKHZLHZCGHZIJHZUODABGHZIJHZKHZACGHZIJHZGHZKHZLHZMUNU
    OUHANOZKHZUQLHZCGHZIJHZUODVIBGHZIJHZKHZVICGHZIJHZGHZKHZLHZMUIDNOZUMKHZUAWBG
    HZVIKHZWBBKHZLHZCGHZIJHZWDWBVOKHZVRGHZKHZLHZMWBUJBNOZCGHZIJHZKHZWEWBWNKHZLH
    ZCGHZIJHZWDWBVIWNGHZIJHZKHZVRGHZKHZLHZMWBWNUKCNOZGHZIJHZKHZWSXHGHZIJHZWDXDV
    IXHGHZIJHZGHZKHZLHZMADBCNNNNAVIMZVHWAUNXSUTVMVGVTLXSUSVLIJXSURVKCGXSUPVJUQL
    AVIUOKPQQQXSVFVSUOKXSVCVPVEVRGXSVBVODKXSVAVNIJAVIBGRQSXSVDVQIJAVICGRQTSTUBD
    WBMZUNWCWAWMDWBUMKRXTVMWIVTWLLXTVLWHIJXTVKWGCGXTVJWEUQWFLXTUOWDVIKDWBUAGPZQ
    DWBBKRTQQXTUOWDVSWKKYAXTVPWJVRGDWBVOKRQTTUCBWNMZWCWQWMXGYBUMWPWBKYBULWOIJBW
    NCGRQSYBWIXAWLXFLYBWHWTIJYBWGWSCGYBWFWRWELBWNWBKPSQQYBWKXEWDKYBWJXDVRGYBVOX
    CWBKYBVNXBIJBWNVIGPQSQSTUCCXHMZWQXKXGXRYCWPXJWBKYCWOXIIJCXHWNGPQSYCXAXMXFXQ
    LYCWTXLIJCXHWSGPQYCXEXPWDKYCVRXOXDGYCVQXNIJCXHVIGPQSSTUCVIWNXHWBANEUDUEDNEU
    DUEBNEUDUECNEUDUEUFUG $.

  ${
    $d A i j $.  $d B i j $.  $d C i j $.  $d D i j $.  $d N i j $.
    $d T i j $.
    $( Lemma for ~ ax5seg .  Take the calculation in ~ ax5seglem8 and turn it
       into a series of measurements.  (Contributed by Scott Fenton,
       12-Jun-2013.)  (Revised by Mario Carneiro, 22-May-2014.) $)
    ax5seglem9 $p |- ( ( ( N e. NN /\
            ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
              ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ) /\
            ( T e. ( 0 [,] 1 ) /\
              A. i e. ( 1 ... N )
                ( B ` i ) =
                ( ( ( 1 - T ) x. ( A ` i ) ) + ( T x. ( C ` i ) ) ) ) ) ->
         ( T x. sum_ j e. ( 1 ... N ) ( ( ( C ` j ) - ( D ` j ) ) ^ 2 ) ) =
         ( sum_ j e. ( 1 ... N ) ( ( ( B ` j ) - ( D ` j ) ) ^ 2 ) +
           ( ( 1 - T ) x.
             ( ( T x. sum_ j e. ( 1 ... N ) ( ( ( A ` j ) - ( C ` j ) ) ^ 2 ) )
               -
             sum_ j e. ( 1 ... N ) ( ( ( A ` j ) - ( D ` j ) ) ^ 2 ) ) ) ) ) $=
      ( wcel cfv wa c1 co cmin cmul caddc c2 cexp csu cc cn cee cc0 cicc cv cfz
      wceq wral fzfid cr cle wbr 0re 1re elicc2i simp1bi recnd ad2antrl simprrl
      ad2antrr fveecn simprrr subcld sqcld simprll oveq1d adantr mulcld fsumsub
      sylancom fsummulc2 eqtr4d oveq2d ax-1cn subcl sylancr eqtrd simprlr fveq2
      fsumadd oveq12d eqeq12d rspccva adantll ax5seglem8 oveq1 eqcomd syl221anc
      sylan9eq 3impa sumeq2dv ) HUAIZAHUBJZIZBWMIZKZCWMIZDWMIZKZKKZEUCLUDMIZFUE
      ZBJZLENMZXBAJZOMZEXBCJZOMZPMZUGZFLHUFMZUHZKZKZEXKGUEZCJZXODJZNMZQRMZGSOMX
      KEXSOMZGSZXKXOBJZXQNMZQRMZGSZXDEXKXOAJZXPNMZQRMZGSOMZXKYFXQNMZQRMZGSZNMZO
      MZPMZXNXKXSEGXNLHUIZXAETIZWTXLXAEXAEUJIUCEUKULELUKULUCLEUMUNUOUPUQURZXNXO
      XKIZKZXRYTXPXQXNYSWQXPTIZWTWQXMYSWLWPWQWRUSUTCXOHVAVJZXNYSWRXQTIZWTWRXMYS
      WLWPWQWRVBUTDXOHVAVJZVCVDVKXNYOXKYDXDEYHOMZYKNMZOMZPMZGSZYAXNYOYEXKUUGGSZ
      PMUUIXNYNUUJYEPXNYNXDXKUUFGSZOMUUJXNYMUUKXDOXNYMXKUUEGSZYLNMUUKXNYIUULYLN
      XNXKYHEGYPYRYTYGYTYFXPXNYSWNYFTIZWTWNXMYSWLWNWOWSVEUTAXOHVAVJZUUBVCVDZVKV
      FXNXKUUEYKGYPYTEYHXNYQYSYRVGZUUOVHZYTYJYTYFXQUUNUUDVCVDZVIVLVMXNXKUUFXDGY
      PXNLTIZYQXDTIZVNYRLEVOZVPYTUUEYKUUQUURVCZVKVQVMXNXKYDUUGGYPYTYCYTYBXQXNYS
      WOYBTIWTWOXMYSWLWNWOWSVRUTBXOHVAVJUUDVCVDYTXDUUFYTUUSYQUUTVNUUPUVAVPUVBVH
      VTVLXNXKXTUUHGYTUUMYQUUAUUCYBXDYFOMZEXPOMZPMZUGZXTUUHUGZUUNUUPUUBUUDXMYSU
      VFWTXLYSUVFXAXJUVFFXOXKXBXOUGZXCYBXIUVEXBXOBVSUVHXFUVCXHUVDPUVHXEYFXDOXBX
      OAVSVMUVHXGXPEOXBXOCVSVMWAWBWCWDWDUUMYQKZUUAUUCKZUVFUVGUVIUVJKUVFXTUVEXQN
      MZQRMZUUGPMZUUHYFXPXQEWEUVFUUHUVMUVFYDUVLUUGPUVFYCUVKQRYBUVEXQNWFVFVFWGWI
      WJWHWKVLVL $.
  $}

  ${
    $d A i j t s $.  $d B i j t s $.  $d C i j t s $.  $d D i j t s $.
    $d E i j t s $.  $d F i j t s $.  $d G i j t s $.  $d H i j t s $.
    $d N i j t s $.
    $( The five segment axiom.  Take two triangles ` A D C ` and ` E H G ` , a
       point ` B ` on ` A C ` , and a point ` F ` on ` E G ` .  If all
       corresponding line segments except for ` C D ` and ` G H ` are
       congruent, then so are ` C D ` and ` G H ` .  Axiom A5 of [Schwabhauser]
       p. 11.  (Contributed by Scott Fenton, 12-Jun-2013.) $)
    ax5seg $p |-
    ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
        ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ E e. ( EE ` N ) ) /\
        ( F e. ( EE ` N ) /\ G e. ( EE ` N ) /\ H e. ( EE ` N ) ) ) ->
    ( ( ( A =/= B /\ B Btwn <. A , C >. /\
                     F Btwn <. E , G >. ) /\
        ( <. A , B >. Cgr <. E , F >. /\
          <. B , C >. Cgr <. F , G >. ) /\
        ( <. A , D >. Cgr <. E , H >. /\
          <. B , D >. Cgr <. F , H >. ) ) ->
       <. C , D >. Cgr <. G , H >. ) ) $=
      ( vi vt vj wcel cfv w3a cmin co cmul wa cop vs cn cee wne cv c1 caddc cfz
      wceq wral cc0 cicc wrex ccgr wbr c2 cexp csu cbtwn wi cc fzfid cr simpl21
      fveere sylancom simpl22 resubcld resqcld recnd adantr simpl32 simpl33 cle
      fsumrecl 0re elicc2i simp1bi ad2antrr adantl simpl11 simp12 simp13 simp21
      1re 3ad2ant1 3jca simprrl simp1rl ax5seglem4 syl211anc simpr3r wb simpl13
      simpl31 brcgr syl22anc mpbid simp23 simp31 simp32 simpr1l simprrr simpr2l
      jca simpr2r ax5seglem6 syl232anc oveq2d syl322anc oveq12d simpr3l simpl12
      ax5seglem3 simpl23 simp22 jca32 simp1ll ax5seglem9 3ad2ant3 jca31 simp1lr
      3simpc 3eqtr4d oveq1d eqtr4d mulcanad 3exp2 expd rexlimdvv brbtwn syl3anc
      3impd anbi12d reeanv syl6bbr anbi2d 3anass r19.42v rexbii 3bitr4g 3anbi1d
      bitri simp33 3imtr4d ) IUBMZAIUCNZMZBUUGMZOZCUUGMZDUUGMZEUUGMZOZFUUGMZGUU
      GMZHUUGMZOZOZABUDZJUEZBNUFKUEZPQZUVAANRQUVBUVACNRQUGQUIJUFIUHQZUJZUVAFNUF
      UAUEZPQZUVAENRQUVFUVAGNRQUGQUIJUVDUJZSZSZUAUKUFULQZUMZKUVKUMZABTEFTUNUOZB
      CTFGTUNUOZSZADTEHTUNUOZBDTFHTUNUOZSZOUVDLUEZCNZUVTDNZPQZUPUQQZLURZUVDUVTG
      NZUVTHNZPQZUPUQQZLURZUIZUUTBACTUSUOZFEGTUSUOZOZUVPUVSOCDTGHTUNUOZUUSUVMUV
      PUVSUWKUUSUVJUVPUVSUWKUTUTZKUAUVKUVKUUSUVBUVKMZUVFUVKMZSZUVJUWPUUSUWSUVJS
      ZUVPUVSUWKUUSUWTUVPUVSOZSZUWEUWJUVBUUSUWEVAMUXAUUSUWEUUSUVDUWDLUUSUFIVBZU
      USUVTUVDMZSZUWCUXEUWAUWBUUSUXDUUKUWAVCMUUKUULUUMUUJUURUXDVDCUVTIVEVFUUSUX
      DUULUWBVCMUUKUULUUMUUJUURUXDVGDUVTIVEVFVHVIVOVJVKUUSUWJVAMUXAUUSUWJUUSUVD
      UWILUXCUXEUWHUXEUWFUWGUUSUXDUUPUWFVCMUUOUUPUUQUUJUUNUXDVLGUVTIVEVFUUSUXDU
      UQUWGVCMUUOUUPUUQUUJUUNUXDVMHUVTIVEVFVHVIVOVJVKUXAUVBVAMZUUSUWTUVPUXFUVSU
      WQUXFUWRUVJUWQUVBUWQUVBVCMUKUVBVNUOUVBUFVNUOUKUFUVBVPWEVQVRVJVSWFVTUXBUUF
      UUHUUIUUKOZUVEUUTUVBUKUDUUFUUHUUIUUNUURUXAWAZUUSUXGUXAUUSUUHUUIUUKUUFUUHU
      UIUUNUURWBZUUFUUHUUIUUNUURWCZUUJUUKUULUUMUURWDZWGZVKZUXAUVEUUSUWTUVPUVEUV
      SUWSUUTUVEUVHWHWFVTZUXAUUTUUSUUTUVIUWSUVPUVSWIVTZABCUVBJIWJWKUXBUVBUWERQZ
      UVFUWJRQZUVBUWJRQUXBUVDUVTBNUWBPQUPUQQLURZUVCUVBUVDUVTANZUWAPQUPUQQLURZRQ
      ZUVDUXSUWBPQUPUQQLURZPQZRQZUGQZUVDUVTFNUWGPQUPUQQLURZUVGUVFUVDUVTENZUWFPQ
      UPUQQLURZRQZUVDUYGUWGPQUPUQQLURZPQZRQZUGQZUXPUXQUXBUXRUYFUYDUYLUGUXBUVRUX
      RUYFUIZUVQUVRUWTUVPUUSWLUXBUUIUULUUOUUQUVRUYNWMUUFUUHUUIUUNUURUXAWNUUKUUL
      UUMUUJUURUXAVGZUUOUUPUUQUUJUUNUXAWOUUOUUPUUQUUJUUNUXAVMZBDFHLIWPWQWRUXBUV
      CUVGUYCUYKRUXBUVBUVFUFPUXBUUFUXGUUMUUOUUPOZSZUUTUWSUVIUVNUVOUVBUVFUIUXHUU
      SUYRUXAUUSUXGUYQUXLUUSUUMUUOUUPUUJUUKUULUUMUURWSZUUJUUNUUOUUPUUQWTZUUJUUN
      UUOUUPUUQXAZWGZXEVKUXOUWSUVJUVPUVSUUSXBZUXBUVEUVHUXNUXAUVHUUSUWTUVPUVHUVS
      UWSUUTUVEUVHXCWFVTZXEZUVNUVOUWTUVSUUSXDZUVNUVOUWTUVSUUSXFZABCEUVFUVBJFGIX
      GXHZXIUXBUYAUYIUYBUYJPUXBUVBUVFUXTUYHRVUHUXBUUFUXGUYQUWSUVIUVNUVOUXTUYHUI
      UXHUXMUUSUYQUXAVUBVKVUCVUEVUFVUGABCEUVFUVBJLFGIXNXJXKUXBUVQUYBUYJUIZUVQUV
      RUWTUVPUUSXLUXBUUHUULUUMUUQUVQVUIWMUUFUUHUUIUUNUURUXAXMUYOUUKUULUUMUUJUUR
      UXAXOUYPADEHLIWPWQWRXKXKXKUXBUUFUUHUUISZUUKUULSSZUWQUVEUXPUYEUIUXHUUSVUKU
      XAUUSVUJUUKUULUUSUUHUUIUXIUXJXEUXKUUJUUKUULUUMUURXPZXQVKUXAUWQUUSUWQUWRUV
      JUVPUVSXRVTUXNABCDUVBJLIXSWQUXBUUFUUMUUOSUUPUUQSZSZUWRUVHUXQUYMUIUXHUUSVU
      NUXAUUSUUMUUOVUMUYSUYTUURUUJVUMUUNUUOUUPUUQYCXTYAVKUXAUWRUUSUWQUWRUVJUVPU
      VSYBVTVUDEFGHUVFJLIXSWQYDUXBUVBUVFUWJRVUHYEYFYGYHYIYJYMUUSUWNUVMUVPUVSUUS
      UUTUWLUWMSZSUUTUVIUAUVKUMZKUVKUMZSZUWNUVMUUSVUOVUQUUTUUSVUOUVEKUVKUMZUVHU
      AUVKUMZSVUQUUSUWLVUSUWMVUTUUSUUIUUHUUKUWLVUSWMUXJUXIUXKKBACJIYKYLUUSUUOUU
      MUUPUWMVUTWMUYTUYSVUAUAFEGJIYKYLYNUVEUVHKUAUVKUVKYOYPYQUUTUWLUWMYRUVMUUTV
      UPSZKUVKUMVURUVLVVAKUVKUUTUVIUAUVKYSYTUUTVUPKUVKYSUUCUUAUUBUUSUUKUULUUPUU
      QUWOUWKWMUXKVULVUAUUJUUNUUOUUPUUQUUDCDGHLIWPWQUUE $.
  $}

  ${
    $d N t i $.  $d A t i $.  $d B t i $.
    $( Points are indivisible.  That is, if ` A ` lies between ` B ` and
       ` B ` , then ` A = B ` .  Axiom A6 of [Schwabhauser] p. 11.
       (Contributed by Scott Fenton, 3-Jun-2013.) $)
    axbtwnid $p |- ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
     ( A Btwn <. B , B >. -> A = B ) ) $=
      ( vi vt wcel cfv wbr cv c1 co cmul caddc wceq wral cc0 wb cc cle wa cbtwn
      cn cee w3a cop cmin cfz cicc simp2 simp3 brbtwn syl3anc wi cr 0re elicc2i
      wrex 1re simp1bi recnd eqeefv 3adant1 adantr ax-1cn npcan ad2antlr oveq1d
      mpan subcl simplr simpll3 fveecn sylancom adddird mulid2d 3eqtr3rd eqeq2d
      ralbidva bitrd biimprd sylan2 rexlimdva sylbid ) CUBFZACUCGZFZBWEFZUDZABB
      UEUAHZDIZAGZJEIZUFKZWJBGZLKWLWNLKMKZNZDJCUGKZOZEPJUHKZUQZABNZWHWFWGWGWIWT
      QWDWFWGUIWDWFWGUJZXBEABBDCUKULWHWRXAEWSWLWSFZWHWLRFZWRXAUMXCWLXCWLUNFPWLS
      HWLJSHPJWLUOURUPUSUTWHXDTZXAWRXEXAWKWNNZDWQOZWRWHXAXGQZXDWFWGXHWDABDCVAVB
      VCXEXFWPDWQXEWJWQFZTZWNWOWKXJWMWLMKZWNLKJWNLKWOWNXJXKJWNLXDXKJNZWHXIJRFZX
      DXLVDJWLVEVHVFVGXJWMWLWNXDWMRFZWHXIXMXDXNVDJWLVIVHVFWHXDXIVJXEXIWGWNRFWDW
      FWGXDXIVKBWJCVLVMZVNXJWNXOVOVPVQVRVSVTWAWBWC $.
  $}

  ${
    $d T p r $.  $d S p r $.
    $( Lemma for ~ axpasch .  Set up coefficents used in the proof.
       (Contributed by Scott Fenton, 5-Jun-2013.) $)
    axpaschlem $p |- ( ( T e. ( 0 [,] 1 ) /\ S e. ( 0 [,] 1 ) ) ->
       E. r e. ( 0 [,] 1 ) E. p e. ( 0 [,] 1 )
       ( p = ( ( 1 - r ) x. ( 1 - T ) ) /\
         r = ( ( 1 - p ) x. ( 1 - S ) ) /\
         ( ( 1 - r ) x. T ) = ( ( 1 - p ) x. S ) ) ) $=
      ( cc0 c1 co wcel cmin cmul wceq cr 1re cle recnd oveq2 oveq1d eqeq2d cdiv
      wbr cicc wa cv w3a wi 0re elicc2i simp1bi ad2antrl resubcl sylancr mul02d
      eqcomd ad2antll mulid2d adantr syl6eq eqtr2d ax-1cn mul01i eqtr4d 1elunit
      1m0e1 0elunit 1m1e0 eqeq1 eqeq1d 3anbi123d rspc2ev mp3an12 syl3anc ex wne
      wrex remulcld resubcld readdcld clt 1red simp2bi simp3bi lemul1ad breqtrd
      caddc simpl ne0gt0d mpbid lelttrd posdifd gt0ne0d redivcld subge0d mpbird
      ltaddpos2d divge0 syl22anc ltled lesub1dd breqtrrd wb ledivmul2 syl112anc
      syl3anbrc lemul2ad mulid1d addge01d div23d subdi syl2anc eqtrd divsubdird
      mp3an2 nnncan2d pncand dividd 3eqtr3d mulcomd oveq12d syl113anc pm2.61ine
      cc pncan2d ) BEFUAGZHZAYCHZUBZDUCZFCUCZIGZFBIGZJGZKZYHFYGIGZFAIGZJGZKZYIB
      JGZYMAJGZKZUDZDYCVNCYCVNZUEAEAEKZYFUUAUUBYFUBZEEYJJGZKZFFYNJGZKZEBJGZFAJG
      ZKZUUAUUCUUDEUUCYJUUCYJUUCFLHZBLHZYJLHZMYDUULUUBYEYDUULEBNTZBFNTZEFBUFMUG
      ZUHZUIZFBUJZUKOULUMUUCUUFYNFUUCYNUUCYNUUCUUKALHZYNLHZMYEUUTUUBYDYEUUTEANT
      ZAFNTZEFAUFMUGZUHZUNFAUJZUKOUOUUCYNFEIGZFUUBYNUVGKYFAEFIPUPVCUQURUUCUUHEU
      UIUUCBUUCBUUROULUUCUUIFEJGZEUUBUUIUVHKYFAEFJPUPFUSUTUQVAFYCHEYCHUUEUUGUUJ
      UDZUUAVBVDYTUVIYGUUDKZFYOKZUUHYRKZUDCDFEYCYCYHFKZYLUVJYPUVKYSUVLUVMYKUUDY
      GUVMYIEYJJUVMYIFFIGEYHFFIPVEUQZQRYHFYOVFUVMYQUUHYRUVMYIEBJUVNQVGVHYGEKZUV
      JUUEUVKUUGUVLUUJYGEUUDVFUVOYOUUFFUVOYMFYNJUVOYMUVGFYGEFIPVCUQZQRUVOYRUUIU
      UHUVOYMFAJUVPQRVHVIVJVKVLAEVMZYFUUAUVQYFUBZBABJGZIGZABWDGZUVSIGZSGZYCHZAU
      VSIGZUWBSGZYCHZUWFFUWCIGZYJJGZKZUWCFUWFIGZYNJGZKZUWHBJGZUWKAJGZKZUUAUVRUW
      CLHEUWCNTZUWCFNTZUWDUVRUVTUWBUVRBUVSYDUULUVQYEUUQUIZUVRABYEUUTUVQYDUVEUNZ
      UWSVOZVPZUVRUWAUVSUVRABUWTUWSVQZUXAVPZUVRUWBUVRUVSUWAVRTEUWBVRTZUVRUVSBUW
      AUXAUWSUXCUVRUVSFBJGBNUVRAFBUWTUVRVSZUWSYDUUNUVQYEYDUULUUNUUOUUPVTUIZYEUV
      CUVQYDYEUUTUVBUVCUVDWAUNWBUVRBUVRBUWSOZUOWCZUVREAVRTBUWAVRTUVRAUWTYEUVBUV
      QYDYEUUTUVBUVCUVDVTUNZUVQYFWEWFUVRABUWTUWSWNWGZWHUVRUVSUWAUXAUXCWIWGZWJZW
      KUVRUVTLHZEUVTNTZUWBLHZUXEUWQUXBUVRUXOUVSBNTUXIUVRBUVSUWSUXAWLWMUXDUXLUVT
      UWBWOWPUVRUWRUVTFUWBJGZNTZUVRUVTUWBUXQNUVRBUWAUVSUWSUXCUXAUVRBUWAUWSUXCUX
      KWQWRUVRUWBUVRUWBUXDOZUOZWSUVRUXNUUKUXPUXEUWRUXRWTUXBUXFUXDUXLUVTFUWBXAXB
      WMEFUWCUFMUGXCUVRUWFLHEUWFNTZUWFFNTZUWGUVRUWEUWBUVRAUVSUWTUXAVPZUXDUXMWKU
      VRUWELHZEUWENTZUXPUXEUYAUYCUVRUYEUVSANTUVRUVSAFJGZANUVRBFAUWSUXFUWTUXJYDU
      UOUVQYEYDUULUUNUUOUUPWAUIXDUVRAUVRAUWTOZXEZWCUVRAUVSUWTUXAWLWMUXDUXLUWEUW
      BWOWPUVRUYBUWEUXQNTZUVRUWEUWBUXQNUVRAUWAUVSUWTUXCUXAUVRUUNAUWANTUXGUVRABU
      WTUWSXFWGWRUXTWSUVRUYDUUKUXPUXEUYBUYIWTUYCUXFUXDUXLUWEFUWBXAXBWMEFUWFUFMU
      GXCUVRAYJJGZUWBSGAUWBSGZYJJGUWFUWIUVRAYJUWBUYGUVRYJUVRUUKUULUUMMUWSUUSUKO
      UXSUXMXGUVRUYJUWEUWBSUVRUYJUYFUVSIGZUWEUVRAYAHZBYAHZUYJUYLKZUYGUXHUYMFYAH
      ZUYNUYOUSAFBXHXLXIUVRUYFAUVSIUYHQXJQUVRUYKUWHYJJUVRUWBUVTIGZUWBSGUWBUWBSG
      ZUWCIGUYKUWHUVRUWBUVTUWBUXSUVRUVTUXBOUXSUXMXKUVRUYQAUWBSUVRUYQUWABIGAUVRU
      WABUVSUVRUWAUXCOZUXHUVRUVSUXAOZXMUVRABUYGUXHXNXJQUVRUYRFUWCIUVRUWBUXSUXMX
      OZQXPZQXPUVRBYNJGZUWBSGBUWBSGZYNJGUWCUWLUVRBYNUWBUXHUVRYNUVRUUKUUTUVAMUWT
      UVFUKOUXSUXMXGUVRVUCUVTUWBSUVRVUCBFJGZBAJGZIGZUVTUVRUYNUYMVUCVUGKZUXHUYGU
      YNUYPUYMVUHUSBFAXHXLXIUVRVUEBVUFUVSIUVRBUXHXEUVRBAUXHUYGXQXRXJQUVRVUDUWKY
      NJUVRUWBUWEIGZUWBSGUYRUWFIGVUDUWKUVRUWBUWEUWBUXSUVRUWEUYCOUXSUXMXKUVRVUIB
      UWBSUVRVUIUWAAIGBUVRUWAAUVSUYSUYGUYTXMUVRABUYGUXHYBXJQUVRUYRFUWFIVUAQXPZQ
      XPUVRUVSUWBSGZVUFUWBSGZUWNUWOUVRUVSVUFUWBSUVRABUYGUXHXQQUVRVUKUYKBJGUWNUV
      RABUWBUYGUXHUXSUXMXGUVRUYKUWHBJVUBQXJUVRVULVUDAJGUWOUVRBAUWBUXHUYGUXSUXMX
      GUVRVUDUWKAJVUJQXJXPYTUWJUWMUWPUDYGUWIKZUWCYOKZUWNYRKZUDCDUWCUWFYCYCYHUWC
      KZYLVUMYPVUNYSVUOVUPYKUWIYGVUPYIUWHYJJYHUWCFIPZQRYHUWCYOVFVUPYQUWNYRVUPYI
      UWHBJVUQQVGVHYGUWFKZVUMUWJVUNUWMVUOUWPYGUWFUWIVFVURYOUWLUWCVURYMUWKYNJYGU
      WFFIPZQRVURYRUWOUWNVURYMUWKAJVUSQRVHVIXSVLXT $.
  $}

  ${
    $d A i $.  $d A q $.  $d A r $.  $d B i $.  $d B q $.  $d B r $.  $d C i $.
    $d C q $.  $d C r $.  $d i q $.  $d i r $.  $d i s $.  $d i t $.  $d N i $.
    $d N q $.  $d N r $.  $d q r $.  $d q s $.  $d q t $.  $d r s $.  $d r t $.
    $d A s $.  $d A t $.  $d A x $.  $d B s $.  $d B t $.  $d B x $.  $d C s $.
    $d C t $.  $d C x $.  $d D i $.  $d D q $.  $d D r $.  $d D s $.  $d D t $.
    $d D x $.  $d E i $.  $d E q $.  $d E r $.  $d E s $.  $d E t $.  $d E x $.
    $d i x $.  $d N s $.  $d N t $.  $d N x $.  $d q x $.  $d r x $.  $d s t $.
    $d s x $.  $d t x $.  $d A k $.  $d B k $.  $d C k $.  $d i k $.  $d k q $.
    $d k r $.  $d k s $.  $d k t $.  $d k x $.  $d N k $.  $d D k $.  $d E k $.

    $( The inner Pasch axiom.  Take a triangle ` A C E ` , a point ` D ` on
       ` A C ` , and a point ` B ` extending ` C E ` .  Then ` A E ` and
       ` D B ` intersect at some point ` x ` .  Axiom A7 of [Schwabhauser]
       p. 12.  (Contributed by Scott Fenton, 3-Jun-2013.) $)
    axpasch $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) ) ) ->
       ( ( D Btwn <. A , C >. /\ E Btwn <. B , C >. ) ->
         E. x e. ( EE ` N ) ( x Btwn <. D , B >. /\
                              x Btwn <. E , A >. ) ) ) $=
      ( vi vr vq wcel wa c1 co cmul caddc wrex cr recnd remulcld vt cee cfv w3a
      vs vk cn cv cmin wceq cfz wral cc0 cicc cop cbtwn wbr axpaschlem 3ad2ant3
      wi simp1 oveq1d eqcomd simp2 oveq12d simp3 adantr 1re simpl2l cle elicc2i
      0re simp1bi resubcl sylancr simp13l simp121 fveere simp123 adddid mulassd
      syl sylan cc fveecn eqtr4d simp122 add32d simpl2r simp13r oveq2d comraddd
      eqtrd 3eqtr4d ralrimiva 3expia reximdvva mpd cmpt simplrl simpl3l simpl21
      simpl23 readdcld simpl22 anassrs wb simpll1 mptelee fveq1 fveq2 eqid ovex
      mpbird fvmpt sylan9eq eqeq1d anbi12d biantrur ralbidva rspcev ex reximdva
      syl6bbr rexcom rexbii bitri sylib eqeq2d bi2anan9 ralimi rexbidv 2rexbidv
      oveq2 ralbi brbtwn syl3anc r19.26 2rexbii reeanv rexlimdvv 3adant3 simp3l
      syl5ibrcom simp21 simp23 simp3r simp22 simpr simpl3r rexbidva 3imtr4d ) G
[encoded data, 4240 characters]
      HUWBYRYSVYJVYLIJUWDUWDYTYGYDUUKUUL $.
  $}

  $( Lemma for ~ axlowdim .  Establish a particular constant function as a
     function.  (Contributed by Scott Fenton, 29-Jun-2013.) $)
  axlowdimlem1 $p |- ( ( 3 ... N ) X. { 0 } ) : ( 3 ... N ) --> RR $=
    ( c3 cfz co cc0 cr 0re fconst6 ) BACDEFGH $.

  $( Lemma for ~ axlowdim .  Show that two sets are disjoint.  (Contributed by
     Scott Fenton, 29-Jun-2013.) $)
  axlowdimlem2 $p |- ( ( 1 ... 2 ) i^i ( 3 ... N ) ) = (/) $=
    ( c2 c3 clt wbr c1 cfz co cin c0 wceq 2lt3 fzdisj ax-mp ) BCDEFBGHCAGHIJKLF
    BCAMN $.

  $( Lemma for ~ axlowdim .  Set up a union property for an interval of
     integers.  (Contributed by Scott Fenton, 29-Jun-2013.) $)
  axlowdimlem3 $p |- ( N e. ( ZZ>= ` 2 ) ->
    ( 1 ... N ) = ( ( 1 ... 2 ) u. ( 3 ... N ) ) ) $=
    ( c2 cuz cfv wcel c1 cfz co caddc cun c3 wceq cle wbr 1le2 a1i eluzle cz wa
    syl wb eluzelz 2z elfz mp3an12 mpbir2and fzsplit df-3 oveq1i uneq2i syl6eqr
    1z ) ABCDEZFAGHZFBGHZBFIHZAGHZJZUOKAGHZJUMBUNEZUNURLUMUTFBMNZBAMNZVAUMOPBAQ
    UMAREZUTVAVBSUAZBAUBBREFREVCVDUCULBFAUDUETUFBFAUGTUSUQUOKUPAGUHUIUJUK $.

  ${
    axlowdimlem4.1 $e |- A e. RR $.
    axlowdimlem4.2 $e |- B e. RR $.
    $( Lemma for ~ axlowdim .  Set up a particular constant function.
       (Contributed by Scott Fenton, 17-Apr-2013.) $)
    axlowdimlem4 $p |- { <. 1 , A >. , <. 2 , B >. } :
                  ( 1 ... 2 ) --> RR $=
      ( c1 c2 cfz co cpr cop wf cr wss wne 1ne2 1ex elexi ax-mp wcel df-2 caddc
      2ex cz wceq 1z fzpr oveq2i preq2i 3eqtr4i feq2i mpbir wa pm3.2i prss mpbi
      fpr fss mp2an ) EFGHZABIZEAJFBJIZKZUTLMZUSLVAKVBEFIZUTVAKZEFNVEOEFABPUBAL
      CQZBLDQZUPRUSVDUTVAEEEUAHZGHZEVHIZUSVDEUCSVIVJUDUEEUFRFVHEGTUGFVHETUHUIUJ
      UKALSZBLSZULVCVKVLCDUMABLVFVGUNUOUSUTLVAUQUR $.

    $( Lemma for ~ axlowdim .  Show that a particular union is a point in
       Euclidean space.  (Contributed by Scott Fenton, 29-Jun-2013.) $)
    axlowdimlem5 $p |- ( N e. ( ZZ>= ` 2 ) ->
       ( { <. 1 , A >. , <. 2 , B >. } u.
         ( ( 3 ... N ) X. { 0 } ) ) e. ( EE ` N ) ) $=
      ( c2 cuz cfv wcel c1 cop cpr c3 cfz co cc0 csn cun cr wf cxp cee cin wceq
      wa axlowdimlem4 axlowdimlem1 pm3.2i axlowdimlem2 mp2an axlowdimlem3 feq2d
      c0 fun2 mpbiri cn wb eluz2nn elee syl mpbird ) CFGHIZJAKFBKLZMCNOZPQUAZRZ
      CUBHIZJCNOZSVFTZVBVIJFNOZVDRZSVFTZVJSVCTZVDSVETZUEVJVDUCUMUDVLVMVNABDEUFC
      UGUHCUIVJVDSVCVEUNUJVBVHVKSVFCUKULUOVBCUPIVGVIUQCURVFCUSUTVA $.
  $}

  ${
    $d N i j $.
    axlowdimlem6.1 $e |- A =
    ( { <. 1 , 0 >. , <. 2 , 0 >. } u. ( ( 3 ... N ) X. { 0 } ) ) $.
    axlowdimlem6.2 $e |- B =
    ( { <. 1 , 1 >. , <. 2 , 0 >. } u. ( ( 3 ... N ) X. { 0 } ) ) $.
    axlowdimlem6.3 $e |- C =
    ( { <. 1 , 0 >. , <. 2 , 1 >. } u. ( ( 3 ... N ) X. { 0 } ) ) $.
    $( Lemma for ~ axlowdim .  Show that three points are non-colinear.
       (Contributed by Scott Fenton, 29-Jun-2013.) $)
    axlowdimlem6 $p |- ( N e. ( ZZ>= ` 2 ) ->
    -. ( A Btwn <. B , C >. \/ B Btwn <. C , A >. \/
         C Btwn <. A , B >. ) ) $=
      ( c2 cfv wcel c1 cc0 cop co wbr cmin cmul wceq ax-mp syl6eq vi vj cuz cpr
      c3 cfz csn cxp cun cbtwn w3o cv wral wne wrex wn cz cle wa eluzelz cn wss
      1zzd 2nn uznnssnn sseqtri sseli eluzle syl 1re leidi jctil elfz4 syl31anc
      nnuz eluzel2 1le2 ax-1ne0 1t1e1 0cn mul01i neeq12i mpbir fveq2 wfn cin c0
      cr wf 0re axlowdimlem4 ffn axlowdimlem1 axlowdimlem2 1z 2z 3pm3.2i pm3.2i
      w3a mp2an fvun1 mp3an fvpr1 eqtri elexi oveq12d 1m0e1 oveq1d 0m0e0 oveq2d
      1ne2 1ex neeq12d 2re fvpr2 rspc2ev mp3an3 df-ne rexbii rexnal bitri sylib
      syl2anc cee wb axlowdimlem5 colinearalg syl3anc opeq12i breq12i 3orbi123i
      mtbird sylnibr ) DHUCIZJZKLMZHLMZUDZUEDUFNZLUGUHZUIZKKMYQUDZYTUIZYPHKMUDZ
      YTUIZMZUJOZUUCUUEUUAMZUJOZUUEUUAUUCMZUJOZUKZABCMZUJOZBCAMZUJOZCABMZUJOZUK
      YOUULUAULZUUCIZUUSUUAIZPNZUBULZUUEIZUVCUUAIZPNZQNZUVCUUCIZUVEPNZUUSUUEIZU
      VAPNZQNZRZUBKDUFNZUMZUAUVNUMZYOUVGUVLUNZUBUVNUOZUAUVNUOZUVPUPZYOKUVNJZHUV
      NJZUVSYOKUQJZDUQJZUWCKKUROZKDUROZUSUWAYOVCZHDUTZUWGYOUWFUWEYODKUCIZJUWFYN
      UWIDYNVAUWIHVAJYNVAVBVDHVESVOVFVGKDVHVIKVJVKZVLKKDVMVNYOUWCUWDHUQJZKHUROZ
      HDUROZUSUWBUWGUWHHDVPYOUWMUWLHDVHVQVLHKDVMVNUWAUWBKKQNZLLQNZUNZUVSUWPKLUN
      VRUWNKUWOLVSLVTWAWBWCUVQUWPKUVFQNZUVILQNZUNUAUBKHUVNUVNUUSKRZUVGUWQUVLUWR
      UWSUVBKUVFQUWSUVBKLPNZKUWSUUTKUVALPUWSUUTKUUCIZKUUSKUUCWDUXAKUUBIZKUUBKHU
      FNZWEZYTYSWEZUXCYSWFWGRZKUXCJZUSZUXAUXBRUXCWHUUBWIUXDKLVJWJWKUXCWHUUBWLSZ
      YSWHYTWIUXEDWMYSWHYTWLSZUXFUXGDWNZUWCUWKUWCWSUWEUWLUSUXGUWCUWKUWCWOWPWOWQ
      UWEUWLUWJVQWRKKHVMWTWRZUXCYSUUBYTKXAXBKHUNZUXBKRXKKHKLXLXLXCSXDTUWSUVAKUU
      AIZLUUSKUUAWDUXNKYRIZLYRUXCWEZUXEUXHUXNUXORUXCWHYRWIUXPLLWJWJWKUXCWHYRWLS
      ZUXJUXLUXCYSYRYTKXAXBUXMUXOLRXKKHLLXLLWHWJXEZXCSXDTZXFXGTXHUWSUVKLUVIQUWS
      UVKLLPNZLUWSUVJLUVALPUWSUVJKUUEIZLUUSKUUEWDUYAKUUDIZLUUDUXCWEZUXEUXHUYAUY
      BRUXCWHUUDWIUYCLKWJVJWKUXCWHUUDWLSZUXJUXLUXCYSUUDYTKXAXBUXMUYBLRXKKHLKXLU
      XRXCSXDTUXSXFXITXJXMUVCHRZUWQUWNUWRUWOUYEUVFKKQUYEUVFUWTKUYEUVDKUVELPUYEU
      VDHUUEIZKUVCHUUEWDUYFHUUDIZKUYCUXEUXFHUXCJZUSZUYFUYGRUYDUXJUXFUYHUXKUWCUW
      KUWKWSUWLHHUROZUSUYHUWCUWKUWKWOWPWPWQUWLUYJVQHXNVKWRHKHVMWTWRZUXCYSUUDYTH
      XAXBUXMUYGKRXKKHLKHUQWPXEZXLXOSXDTUYEUVEHUUAIZLUVCHUUAWDUYMHYRIZLUXPUXEUY
      IUYMUYNRUXQUXJUYKUXCYSYRYTHXAXBUXMUYNLRXKKHLLUYLUXRXOSXDTZXFXGTXJUYEUVILL
      QUYEUVIUXTLUYEUVHLUVELPUYEUVHHUUCIZLUVCHUUCWDUYPHUUBIZLUXDUXEUYIUYPUYQRUX
      IUXJUYKUXCYSUUBYTHXAXBUXMUYQLRXKKHKLUYLUXRXOSXDTUYOXFXITXHXMXPXQYCUVSUVOU
      PZUAUVNUOUVTUVRUYRUAUVNUVRUVMUPZUBUVNUOUYRUVQUYSUBUVNUVGUVLXRXSUVMUBUVNXT
      YAXSUVOUAUVNXTYAYBYOUUADYDIZJUUCUYTJUUEUYTJUULUVPYELLDWJWJYFKLDVJWJYFLKDW
      JVJYFUUAUUCUUEUAUBDYGYHYLUUNUUGUUPUUIUURUUKAUUAUUMUUFUJEBUUCCUUEFGYIYJBUU
      CUUOUUHUJFCUUEAUUAGEYIYJCUUEUUQUUJUJGAUUABUUCEFYIYJYKYM $.
  $}

  ${
    axlowdimlem7.1 $e |- P = ( { <. 3 , -u 1 >. } u.
                 ( ( ( 1 ... N ) \ { 3 } ) X. { 0 } ) ) $.
    $( Lemma for ~ axlowdim .  Set up a point in Euclidean space.  (Contributed
       by Scott Fenton, 29-Jun-2013.) $)
    axlowdimlem7 $p |- ( N e. ( ZZ>= ` 3 ) -> P e. ( EE ` N ) ) $=
      ( c3 cfv wcel c1 csn cc0 cun cr wf wa wceq wss mp2an cle wbr cz wb cuz co
      cneg cop cfz cdif cxp cee cin eqid 3ex negex fsn mpbir neg1rr snssi ax-mp
      c0 fss 0re fconst6 pm3.2i disjdif fun2 eluzle jctil eluzelz 3z 1z mp3an12
      1le3 elfz mpbird snssd undif sylib feq2d mpbii cn eluzge3nn elee syl5eqel
      syl ) BDUAEFZADGUCZUDHZGBUEUBZDHZUFZIHUGZJZBUHEZCWDWKWLFZWGKWKLZWDWHWIJZK
      WKLZWNWHKWFLZWIKWJLZMWHWIUIURNWPWQWRWHWEHZWFLZWSKOZWQWTWFWFNWFUJDWEWFUKGU
      LUMUNWEKFXAUOWEKUPUQWHWSKWFUSPWIIKUTVAVBWHWGVCWHWIKWFWJVDPWDWOWGKWKWDWHWG
      OWOWGNWDDWGWDDWGFZGDQRZDBQRZMZWDXDXCDBVEVKVFWDBSFZXBXETZDBVGDSFGSFXFXGVHV
      IDGBVLVJWCVMVNWHWGVOVPVQVRWDBVSFWMWNTBVTWKBWAWCVMWB $.

    $( Lemma for ~ axlowdim .  Calculate the value of ` P ` at three.
       (Contributed by Scott Fenton, 21-Apr-2013.) $)
    axlowdimlem8 $p |- ( P ` 3 ) = -u 1 $=
      ( c3 cfv c1 cneg cop csn cfz co cdif cc0 cxp cun fveq1i wfn cin c0 wceq
      wcel wa cr 3re elexi negex fnsn c0ex fconst ffn ax-mp disjdif snid pm3.2i
      wf fvun1 mp3an fvsn 3eqtri ) DAEDDFGZHIZFBJKZDIZLZMIZNZOZEZDVAEZUTDAVGCPV
      AVCQVFVDQZVCVDRSTZDVCUAZUBVHVITDUTDUCUDUEZFUFZUGVDVEVFUOVJVDMUHUIVDVEVFUJ
      UKVKVLVCVBULDVMUMUNVCVDVAVFDUPUQDUTVMVNURUS $.

    $( Lemma for ~ axlowdim .  Calculate the value of ` P ` away from three.
       (Contributed by Scott Fenton, 21-Apr-2013.) $)
    axlowdimlem9 $p |- ( ( K e. ( 1 ... N ) /\ K =/= 3 ) -> ( P ` K ) = 0 ) $=
      ( c1 cfz co wcel c3 wne wa cfv cneg cop csn cdif cc0 wceq wfn c0ex fveq1i
      cxp cun eldifsn cin c0 disjdif cr 3re elexi negex fnsn fconst ax-mp fvun2
      wf ffn mp3an12 mpan fvconst2 eqtrd sylbir syl5eq ) BECFGZHBIJKZBALBIEMZNO
      ZVDIOZPZQOZUBZUCZLZQBAVLDUAVEBVIHZVMQRBVDIUDVNVMBVKLZQVHVIUEUFRZVNVMVORZV
      HVDUGVGVHSVKVISZVPVNKVQIVFIUHUIUJEUKULVIVJVKUPVRVIQTUMVIVJVKUQUNVHVIVGVKB
      UOURUSVIQBTUTVAVBVC $.
  $}

  ${
    axlowdimlem10.1 $e |- Q = ( { <. ( I + 1 ) , 1 >. } u.
                    ( ( ( 1 ... N ) \ { ( I + 1 ) } ) X. { 0 } ) ) $.
    $( Lemma for ~ axlowdim .  Set up a family of points in Euclidean space.
       (Contributed by Scott Fenton, 21-Apr-2013.) $)
    axlowdimlem10 $p |- ( ( N e. NN /\ I e. ( 1 ... ( N - 1 ) ) ) ->
                Q e. ( EE ` N ) ) $=
      ( wcel c1 co cfz wa cr wf caddc csn cun cc0 wss wceq ax-mp mp2an snssi cn
      cmin cee cfv cdif cop cxp cin wf1o ovex 1ex f1osn f1of c0ex fconst pm3.2i
      c0 disjdif fun feq1i mpbir 1re 0re unssi fznatpl1 snssd undif sylib feq2d
      fss mpbii wb elee adantr mpbird ) CUAEZBFCFUBGHGEZIZACUCUDEZFCHGZJAKZVRBF
      LGZMZVTWCUEZNZJAKZWAWEFMZOMZNZAKZWIJPWFWJWEWIWBFUFMZWDWHUGZNZKZWCWGWKKZWD
      WHWLKZIWCWDUHUQQWNWOWPWCWGWKUIWOWBFBFLUJUKULWCWGWKUMRWDOUNUOUPWCVTURWCWDW
      GWHWKWLUSSWEWIAWMDUTVAWGWHJFJEWGJPVBFJTROJEWHJPVCOJTRVDWEWIJAVJSVRWEVTJAV
      RWCVTPWEVTQVRWBVTBCVEVFWCVTVGVHVIVKVPVSWAVLVQACVMVNVO $.

    $( Lemma for ~ axlowdim .  Calculate the value of ` Q ` at its
       distinguished point.  (Contributed by Scott Fenton, 21-Apr-2013.) $)
    axlowdimlem11 $p |- ( Q ` ( I + 1 ) ) = 1 $=
      ( c1 caddc co cfv cop csn cfz cdif cc0 cxp cun fveq1i wfn cin wceq 1ex c0
      wcel wa ovex fnsn wf c0ex fconst ffn ax-mp disjdif snid pm3.2i fvun1 fvsn
      mp3an 3eqtri ) BEFGZAHURUREIJZECKGZURJZLZMJZNZOZHZURUSHZEURAVEDPUSVAQVDVB
      QZVAVBRUASZURVAUBZUCVFVGSUREBEFUDZTUEVBVCVDUFVHVBMUGUHVBVCVDUIUJVIVJVAUTU
      KURVKULUMVAVBUSVDURUNUPUREVKTUOUQ $.

    $( Lemma for ~ axlowdim .  Calculate the value of ` Q ` away from its
       distinguished point.  (Contributed by Scott Fenton, 21-Apr-2013.) $)
    axlowdimlem12 $p |- ( ( K e. ( 1 ... N ) /\ K =/= ( I + 1 ) ) ->
                ( Q ` K ) = 0 ) $=
      ( c1 cfz co wcel caddc wne wa cfv cop csn cdif cc0 wceq wfn c0ex cxp ovex
      cun fveq1i eldifsn cin c0 disjdif 1ex fnsn fconst ffn ax-mp fvun2 mp3an12
      wf mpan fvconst2 eqtrd sylbir syl5eq ) CFDGHZICBFJHZKLZCAMCVCFNOZVBVCOZPZ
      QOZUAZUCZMZQCAVJEUDVDCVGIZVKQRCVBVCUEVLVKCVIMZQVFVGUFUGRZVLVKVMRZVFVBUHVE
      VFSVIVGSZVNVLLVOVCFBFJUBUIUJVGVHVIUPVPVGQTUKVGVHVIULUMVFVGVEVICUNUOUQVGQC
      TURUSUTVA $.
  $}

  ${
    axlowdimlem13.1 $e |- P = ( { <. 3 , -u 1 >. } u.
                 ( ( ( 1 ... N ) \ { 3 } ) X. { 0 } ) ) $.
    axlowdimlem13.2 $e |- Q = ( { <. ( I + 1 ) , 1 >. } u.
                    ( ( ( 1 ... N ) \ { ( I + 1 ) } ) X. { 0 } ) ) $.
    $( Lemma for ~ axlowdim .  Establish that ` P ` and ` Q ` are different
       points.  (Contributed by Scott Fenton, 21-Apr-2013.) $)
    axlowdimlem13 $p |- ( ( N e. NN /\ I e. ( 1 ... ( N - 1 ) ) ) ->
                  P =/= Q ) $=
      ( wcel c1 co cfz wa c3 csn cc0 cun caddc wceq wne crn c2 cn cmin cneg cop
      cdif cxp wn wo 2ne0 neii eqcom 1pneg1e0 eqcomi df-2 eqeq12i ax-1cn neg1cn
      addcani 3bitri mtbi intnanr ax-1ne0 cc wb negeq0 ax-mp pm3.2ni negex c0ex
      cpr 1ex preq12b mtbir 3ex rnsnop a1i c0 cuz cfv elnnuz eluzfz1 sylbi df-3
      1e0p1 2cn 0cn addcan2i bitri necon3bii mpbir necomi eldifsn sylibr adantr
      jctir ne0i rnxp 3syl uneq12d rnun df-pr 3eqtr4g ovex cz wss fzssp1 npcan1
      nnz zcn oveq2d syl syl5sseq sselda cr elfzelz zred id ltp1 ltned sylanbrc
      adantl eqeq12d mtbiri rneq nsyl necon3abii ) DUAGZCHDHUBIZJIZGZKZLHUCZUDM
      ZHDJIZLMUEZNMZUFZOZCHPIZHUDMZYNYSMUEZYPUFZOZQZUGABRYKYRSZUUCSZQZUUDYKUUGY
      LNVJZHNVJZQZUUJYLHQZNNQZKZYLNQZNHQZKZUHUUMUUPUUKUULTNQZUUKTNUIUJUUQNTQHYL
      PIZHHPIZQUUKTNUKNUURTUUSUURNULUMUNUOHYLHUPUQUPURUSUTVAUUNUUOHNQZUUNHNVBUJ
      HVCGUUTUUNVDUPHVEVFUTVAVGYLNHNHVHVIVKVIVLVMYKUUEUUHUUFUUIYKYMSZYQSZOYLMZY
      POUUEUUHYKUVAUVCUVBYPUVAUVCQYKLYLVNVOVPYKHYOGZYOVQRUVBYPQYGUVDYJYGHYNGZHL
      RZKUVDYGUVEUVFYGDHVRVSGUVEDVTHDWAWBLHLHRTNRUILHTNLHQTHPIZNHPIZQUUQLUVGHUV
      HWCWDUOTNHWEWFUPWGWHWIWJWKWOHYNLWLWMWNYOHWPYOYPWQWRWSYMYQWTYLNXAXBYKYTSZU
      UBSZOHMZYPOUUFUUIYKUVIUVKUVJYPUVIUVKQYKYSHCHPXCVOVPYKCUUAGZUUAVQRUVJYPQYK
      CYNGCYSRZUVLYGYIYNCYGDXDGZYIYNXEDXHUVNHYHHPIZJIZYIYNHYHXFUVNDVCGZUVPYNQDX
      IUVQUVODHJDXGXJXKXLXKXMYJUVMYGYJCXNGZUVMYJCCHYHXOXPUVRCYSUVRXQCXRXSXKYACY
      NYSWLXTUUACWPUUAYPWQWRWSYTUUBWTHNXAXBYBYCYRUUCYDYEUUDABAYRBUUCEFUOYFWM $.
  $}

  ${
    $d I i $.  $d N i $.  $d Q i $.  $d R i $.
    axlowdimlem14.1 $e |- Q = ( { <. ( I + 1 ) , 1 >. } u.
                    ( ( ( 1 ... N ) \ { ( I + 1 ) } ) X. { 0 } ) ) $.
    axlowdimlem14.2 $e |- R = ( { <. ( J + 1 ) , 1 >. } u.
                    ( ( ( 1 ... N ) \ { ( J + 1 ) } ) X. { 0 } ) ) $.
    $( Lemma for ~ axlowdim .  Take two possible ` Q ` from ~ axlowdimlem10 .
       They are the same iff their distinguished values are the same.
       (Contributed by Scott Fenton, 21-Apr-2013.) $)
    axlowdimlem14 $p |- ( ( N e. NN /\ I e. ( 1 ... ( N - 1 ) ) /\
                            J e. ( 1 ... ( N - 1 ) ) ) ->
       ( Q = R -> I = J ) ) $=
      ( vi wcel c1 co wceq cfv wb wa cr adantr wne wn cc0 cmin cfz w3a wral wfn
      cn cv wf cee axlowdimlem10 elee mpbid ffn eqfnfv syl2an 3impdi wrex caddc
      syl fznatpl1 3adant3 ax-1ne0 axlowdimlem11 cc elfzelz zcnd ax-1cn addcan2
      a1i 3adant1 necon3bid biimpar axlowdimlem12 syl2anc 3netr4d df-ne neeq12d
      mp3an3 fveq2 syl5bbr rspcev ex rexnal 3imtr3g con4d sylbid ) EUFIZCJEJUAK
      ZUBKZIZDWIIZUCZABLZHUGZAMZWNBMZLZHJEUBKZUDZCDLZWGWJWKWMWSNZWGWJOZAWRUEZBW
      RUEZXAWGWKOZXBWRPAUHZXCXBAEUIMZIZXFACEFUJWGXHXFNWJAEUKQULWRPAUMUSXEWRPBUH
      ZXDXEBXGIZXIBDEGUJWGXJXINWKBEUKQULWRPBUMUSHWRABUNUOUPWLWTWSWLCDRZWQSZHWRU
      QZWTSWSSWLXKXMWLXKOZCJURKZWRIZXOAMZXOBMZRZXMWLXPXKWGWJXPWKCEUTVAQZXNJTXQX
      RJTRXNVBVIXQJLXNACEFVCVIXNXPXODJURKZRZXRTLXTWLYBXKWLXOYACDWJWKXOYALWTNZWG
      WJCVDIZDVDIZYCWKWJCCJWHVEVFWKDDJWHVEVFYDYEJVDIYCVGCDJVHVRUOVJVKVLBDXOEGVM
      VNVOXLXSHXOWRXLWOWPRWNXOLZXSWOWPVPYFWOXQWPXRWNXOAVSWNXOBVSVQVTWAVNWBCDVPW
      QHWRWCWDWEWF $.
  $}

  ${
    $d F j k $.  $d N i j k $.
    axlowdimlem15.1 $e |- F =
      ( i e. ( 1 ... ( N - 1 ) ) |-> if ( i = 1 ,
         ( { <. 3 , -u 1 >. } u. ( ( ( 1 ... N ) \ { 3 } ) X. { 0 } ) ) ,
         ( { <. ( i + 1 ) , 1 >. } u.
           ( ( ( 1 ... N ) \ { ( i + 1 ) } ) X. { 0 } ) ) ) ) $.
    $( Lemma for ~ axlowdim .  Set up a one-to-one function of points.
       (Contributed by Scott Fenton, 21-Apr-2013.) $)
    axlowdimlem15 $p |- ( N e. ( ZZ>= ` 3 ) ->
                   F : ( 1 ... ( N - 1 ) ) -1-1-> ( EE ` N ) ) $=
      ( vj vk cfv wcel c1 co wceq wi cop csn cdif cxp cun caddc wa cvv cuz cmin
      c3 cfz cee wf cv weq wral wf1 cneg cc0 eqid axlowdimlem7 adantr eluzge3nn
      cif cn axlowdimlem10 sylan ifcld fmptd wb eqeq1 oveq1 opeq1d sneqd xpeq1d
      difeq2d uneq12d ifbieq2d snex ovex difexg ax-mp xpex unex fvmpt eqeqan12d
      ifex adantl eqtr3 2a1d axlowdimlem13 neneqd pm2.21d adantrl iftrue imbi1d
      wn iffalse syl5ibr necomd adantrr axlowdimlem14 3expb 4cases sylbid dff13
      ralrimivva sylanbrc ) CUCUAGHZICIUBJUDJZCUEGZBUFEUGZBGZFUGZBGZKZEFUHZLZFX
      CUIEXCUIXCXDBUJXBAXCAUGZIKZUCIUKMZNZICUDJZUCNZOZULNZPZQZXLIRJZIMZNZXPYBNZ
      OZXSPZQZUQZXDBXBXLXCHZSXMYAYHXDXBYAXDHYJYACYAUMZUNUOXBCURHZYJYHXDHCUPZYHX
      LCYHUMUSUTVADVBXBXKEFXCXCXBXEXCHZXGXCHZSZSZXIXEIKZYAXEIRJZIMZNZXPYSNZOZXS
      PZQZUQZXGIKZYAXGIRJZIMZNZXPUUHNZOZXSPZQZUQZKZXJYPXIUUPVCXBYNYOXFUUFXHUUOA
      XEYIUUFXCBAEUHZXMYRYHUUEYAXLXEIVDUUQYDUUAYGUUDUUQYCYTUUQYBYSIXLXEIRVEZVFV
      GUUQYFUUCXSUUQYEUUBXPUUQYBYSUURVGVIVHVJVKDYRYAUUEXOXTXNVLXRXSXPTHZXRTHICU
      DVMZXPXQTVNVOULVLZVPVQZUUAUUDYTVLUUCXSUUSUUCTHUUTXPUUBTVNVOUVAVPVQVTVRAXG
      YIUUOXCBAFUHZXMUUGYHUUNYAXLXGIVDUVCYDUUJYGUUMUVCYCUUIUVCYBUUHIXLXGIRVEZVF
      VGUVCYFUULXSUVCYEUUKXPUVCYBUUHUVDVGVIVHVJVKDUUGYAUUNUVBUUJUUMUUIVLUULXSUU
      SUULTHUUTXPUUKTVNVOUVAVPVQVTVRVSWAYRUUGYQUUPXJLZLYRUUGSXJYQUUPXEXGIWBWCYQ
      UVEYRUUGWJZSZYAUUNKZXJLZXBYLYPUVIYMYLYOUVIYNYLYOSZUVHXJUVJYAUUNYAUUNXGCYK
      UUNUMZWDWEWFWGUTUVGUUPUVHXJYRUVFUUFYAUUOUUNYRYAUUEWHUUGYAUUNWKZVSWIWLYQUV
      EYRWJZUUGSZUUEYAKZXJLZXBYNUVPYOXBYLYNUVPYMYLYNSZUVOXJUVQUUEYAUVQYAUUEYAUU
      EXECYKUUEUMZWDWMWEWFUTWNUVNUUPUVOXJUVMUUGUUFUUEUUOYAYRYAUUEWKZUUGYAUUNWHV
      SWIWLYQUVEUVMUVFSZUUEUUNKZXJLZXBYLYPUWBYMYLYNYOUWBUUEUUNXEXGCUVRUVKWOWPUT
      UVTUUPUWAXJUVMUVFUUFUUEUUOUUNUVSUVLVSWIWLWQWRWTEFXCXDBWSXA $.
  $}

  ${
    $d P i $.  $d I i $.  $d N i $.  $d Q i $.
    axlowdimlem16.1 $e |- P = ( { <. 3 , -u 1 >. } u.
                 ( ( ( 1 ... N ) \ { 3 } ) X. { 0 } ) ) $.
    axlowdimlem16.2 $e |- Q = ( { <. ( I + 1 ) , 1 >. } u.
                    ( ( ( 1 ... N ) \ { ( I + 1 ) } ) X. { 0 } ) ) $.
    $( Lemma for ~ axlowdim .  Set up a summation that will help establish
       distance.  (Contributed by Scott Fenton, 21-Apr-2013.) $)
    axlowdimlem16 $p |- ( ( N e. ( ZZ>= ` 3 ) /\ I e. ( 2 ... ( N - 1 ) ) )
          ->
      sum_ i e. ( 3 ... N ) ( ( P ` i ) ^ 2 ) =
      sum_ i e. ( 3 ... N ) ( ( Q ` i ) ^ 2 ) ) $=
      ( c3 wcel c2 c1 co cfz wa csu wceq caddc syl wbr cc0 cuz cfv cmin cv cexp
      wi elfz1eq oveq1 df-3 syl6reqr oveq12d sumeq1d cz syl6eqr syl6eqel ax-1cn
      cc sqcli fveq2 axlowdimlem11 syl6eq fsum1 sylancl eqtrd cneg axlowdimlem8
      3z oveq1d sqneg ax-mp mp2an a1i 3m1e2 oveq2d eleq2d oveq2 eqeq12d wne clt
      cle adantl simpl cr wb sylancr 3ad2ant1 elfzelz zred ltp1d fzfid 2eluzge1
      3re wss fzss1 sseli syl2an fveecn sqcld 3adantl2 3ad2ant3 elfzle2 lelttrd
      cn ltm1d eluz syl2anc mpbird adantr peano2re axlowdimlem12 sq0id sumeq2dv
      imp cfn wo fzfi olci sumz sq1 1le2 elfzle1 peano2nnd nnuz syl6eleq sselda
      2re oveq1i fsum1p 1p0e1 ex pm2.61ine 2lt3 ltleii mp3an12 elfz 3adant3 1re
      2z 1z wn 3imtr4d adantld simprl eluzle ltlen mpbir2and adantrr simprr w3a
      eluzelre cin c0 fzssp1 simp3 sseldi eluzelz zcnd npcan eleqtrd fzdisj cun
      fzsplit cee eluzge3nn axlowdimlem10 fsumsplit peano2rem ltled fzss2 sseld
      syl5 ltned peano2zd eqeq1d syl5ib 1red letrd elnnz1 sylanbrc mpbid simpr1
      nnltp1le simpr3 eqtri ltletrd gtned 0p1e1 simp1 mpbir2an uztrn lttr mpani
      eluz1i ltle mpan sylc jctil ltne necomd sumeq1i oveq2i 3nn eleqtri fsumcl
      addid2d axlowdimlem7 ad2antrr neg1sqe1 zaddcl zrei 1lt3 ltp1i lttri mpbir
      3eqtrrd ltnlei mpbi intnanr mtbiri eleq1 syl5ibrcom necon2ad axlowdimlem9
      notbid 3eqtr4rd syl3anc ) EHUAUBIZDJEKUCLZMLZIZNZHEMLZCUDZAUBZJUELZCOZUYL
[encoded data, 4640 characters]
      TPWXLWXKWWKEXPXQWWLCKXRVJVAVNVDYIVAYPUYEUYFYJYK $.

    ${
      $d A i $.  $d X i $.  $d Y i $.
      axlowdimlem17.3 $e |- A =
          ( { <. 1 , X >. , <. 2 , Y >. } u. ( ( 3 ... N ) X. { 0 } ) ) $.
      axlowdimlem17.4 $e |- X e. RR $.
      axlowdimlem17.5 $e |- Y e. RR $.
      $( Lemma for ~ axlowdim .  Establish a congruence result.  (Contributed
         by Scott Fenton, 22-Apr-2013.)  (Proof shortened by Mario Carneiro,
         22-May-2014.) $)
      axlowdimlem17 $p |- ( ( N e. ( ZZ>= ` 3 ) /\
               I e. ( 2 ... ( N - 1 ) ) ) ->
           <. P , A >. Cgr <. Q , A >. ) $=
        ( vi c3 cfv wcel c2 c1 co cc0 cuz cmin cfz wa cop ccgr wbr cv cexp wceq
        csu caddc wne wss uzuzle23 ad2antrr fzss2 syl simpr sseldd fznuz adantl
        wn cz uzid ax-mp df-3 fveq2i eleqtri eleq1 mpbiri necon3bi axlowdimlem9
        3z syl2anc elfzuz ad2antlr eluzp1p1 ssneldd eluzelz syl5ibrcom necon3bd
        uzss mpd axlowdimlem12 eqtr4d oveq1d sumeq2dv axlowdimlem16 csn cxp cpr
        cun fveq1i cin c0 axlowdimlem2 wfn cr axlowdimlem4 axlowdimlem1 mp3an12
        wf ffn fvun2 mpan syl5eq c0ex fvconst2 eqtrd oveq2d cee cc axlowdimlem7
        cn 3nn nnuz fzss1 sseli fveecn subid1d eluzge3nn 2eluzge1 axlowdimlem10
        syl2an 3eqtr4d oveq12d a1i cle eluzelre eluzle 2re 3re adantr wb mpbird
        sylancom subcld sqcld fsumsplit 2lt3 ltleii wi letr mpani sylc jctil 2z
        1le2 1z fzsplit oveq1i uneq2i syl6eqr fzfid axlowdimlem5 syl5eqel sylan
        elfz brcgr syl22anc ) ENUAOZPZDQERUBSZUCSZPZUDZBAUECAUEUFUGZREUCSZMUHZB
        OZUVJAOZUBSZQUISZMUKZUVIUVJCOZUVLUBSZQUISZMUKZUJZUVGRQUCSZUVNMUKZNEUCSZ
        UVNMUKZULSUWAUVRMUKZUWCUVRMUKZULSUVOUVSUVGUWBUWEUWDUWFULUVGUWAUVNUVRMUV
        GUVJUWAPZUDZUVMUVQQUIUWHUVKUVPUVLUBUWHUVKTUVPUWHUVJUVIPZUVJNUMZUVKTUJUW
        HUWAUVIUVJUWHEQUAOZPZUWAUVIUNUVCUWLUVFUWGEUOZUPQREUQURUVGUWGUSUTZUWHUVJ
        QRULSZUAOZPZVCZUWJUWGUWRUVGUVJRQVAVBZUWQUVJNUVJNUJUWQNUWPPNUVBUWPNVDPNU
        VBPVNNVEVFNUWOUAVGVHVIUVJNUWPVJVKVLURBUVJEHVMVOUWHUWIUVJDRULSZUMZUVPTUJ
        UWNUWHUVJUWTUAOZPZVCUXAUWHUXBUWPUVJUWHUWTUWPPZUXBUWPUNUWHDUWKPZUXDUVFUX
        EUVCUWGDQUVDVPVQQDVRURZUWOUWTWCURUWSVSUWHUXCUVJUWTUWHUXCUVJUWTUJUWTUXBP
        ZUWHUWTVDPZUXGUWHUXDUXHUXFUWOUWTVTURUWTVEURUVJUWTUXBVJWAWBWDCDUVJEIWEVO
        WFWGWGWHUVGUWCUVKQUISZMUKUWCUVPQUISZMUKUWDUWFBCMDEHIWIUVGUWCUVNUXIMUVGU
        VJUWCPZUDZUVMUVKQUIUXLUVMUVKTUBSUVKUXLUVLTUVKUBUXKUVLTUJUVGUXKUVLUVJUWC
        TWJWKZOZTUXKUVLUVJRFUEQGUEWLZUXMWMZOZUXNUVJAUXPJWNUWAUWCWOWPUJZUXKUXQUX
        NUJZEWQZUXOUWAWRZUXMUWCWRZUXRUXKUDUXSUWAWSUXOXCUYAFGKLWTUWAWSUXOXDVFUWC
        WSUXMXCUYBEXAUWCWSUXMXDVFUWAUWCUXOUXMUVJXEXBXFXGUWCTUVJXHXIXJVBZXKUXLUV
        KUXLBEXLOZPZUWIUVKXMPZUVCUYEUVFUXKBEHXNZUPUXKUWIUVGUWCUVIUVJNRUAOZPUWCU
        VIUNNXOUYHXPXQVINREXRVFXSZVBBUVJEXTZVOYAXJWGWHUVGUWCUVRUXJMUXLUVQUVPQUI
        UXLUVQUVPTUBSUVPUXLUVLTUVPUBUYCXKUXLUVPUVGCUYDPZUWIUVPXMPZUXKUVCEXOPDRU
        VDUCSZPUYKUVFEYBUVEUYMDQUYHPUVEUYMUNYCQRUVDXRVFXSCDEIYDYEZUYICUVJEXTZYE
        YAXJWGWHYFYGUVGUWAUWCUVNUVIMUXRUVGUXTYHZUVGUVIUWAUWOEUCSZWMZUWAUWCWMUVG
        QUVIPZUVIUYRUJUVGUYSRQYIUGZQEYIUGZUDZUVCVUBUVFUVCVUAUYTUVCEWSPZNEYIUGZV
        UANEYJNEYKVUCQNYIUGZVUDVUAQNYLYMUUAUUBQWSPNWSPVUCVUEVUDUDVUAUUCYLYMQNEU
        UDXBUUEUUFUUIUUGYNUVGEVDPZUYSVUBYOZUVCVUFUVFNEVTYNQVDPRVDPVUFVUGUUHUUJQ
        REUUSXBURYPQREUUKURUWCUYQUWANUWOEUCVGUULUUMUUNZUVGREUUOZUVGUWIUDZUVMVUJ
        UVKUVLUVGUWIUYEUYFUVCUYEUVFUWIUYGUPUYJYQUVGUWIAUYDPZUVLXMPUVCVUKUVFUWIU
        VCUWLVUKUWMUWLAUXPUYDJFGEKLUUPUUQURZUPAUVJEXTYQZYRYSYTUVGUWAUWCUVRUVIMU
        YPVUHVUIVUJUVQVUJUVPUVLUVGUYKUWIUYLUYNUYOUURVUMYRYSYTYFUVGUYEVUKUYKVUKU
        VHUVTYOUVCUYEUVFUYGYNUVCVUKUVFVULYNZUYNVUNBACAMEUUTUVAYP $.
    $}
  $}

  ${
    $d N x y $.
    $( The lower dimension axiom for one dimension.  In any dimension, there
       are at least two distinct points.  Theorem 3.13 of [Schwabhauser] p. 32,
       where it is derived from ~ axlowdim2 .  (Contributed by Scott Fenton,
       22-Apr-2013.) $)
    axlowdim1 $p |- ( N e. NN ->
               E. x e. ( EE ` N ) E. y e. ( EE ` N ) x =/= y ) $=
      ( wcel c1 csn cxp cfv cc0 wne cv wrex cr fconst6 elee mpbiri crn wceq syl
      wf cn cfz co cee 1re 0re ax-1ne0 neii 1ex sneqr mto c0 cuz elnnuz eluzfz1
      sylbi ne0i rnxp eqeq12d mtbiri rneq neqned neeq1 neeq2 rspc2ev syl3anc
      nsyl ) CUADZECUBUCZEFZGZCUDHZDZVIIFZGZVLDZVKVOJZAKZBKZJZBVLLAVLLVHVMVIMVK
      TVIEMUENVKCOPVHVPVIMVOTVIIMUFNVOCOPVHVKVOVHVKQZVOQZRZVKVORVHWCVJVNRZWDEIR
      EIUGUHEIUIUJUKVHWAVJWBVNVHVIULJZWAVJRVHEVIDZWEVHCEUMHDWFCUNECUOUPVIEUQSZV
      IVJURSVHWEWBVNRWGVIVNURSUSUTVKVOVAVGVBVTVQVKVSJABVKVOVLVLVRVKVSVCVSVOVKVD
      VEVF $.
  $}

  ${
    $d N x y z $.
    $( The lower two-dimensional axiom.  In any space where the dimension is
       greater than one, there are three non-colinear points.  Axiom A8 of
       [Schwabhauser] p. 12.  (Contributed by Scott Fenton, 15-Apr-2013.) $)
    axlowdim2 $p |- ( N e. ( ZZ>= ` 2 ) ->
       E. x e. ( EE ` N ) E. y e. ( EE ` N ) E. z e. ( EE ` N )
        -. ( x Btwn <. y , z >. \/ y Btwn <. z , x >. \/
             z Btwn <. x , y >. ) ) $=
      ( c2 wcel c1 cc0 cop cpr cun cv cbtwn wbr w3o wn wrex axlowdimlem5 breq2d
      0re cuz cfv c3 cfz co csn cxp cee 1re eqid axlowdimlem6 opeq2 opeq1 breq1
      wceq 3orbi123d notbid rspcev syl2anc rexbidv rspc2ev syl3anc ) DEUAUBFZGH
      IZEHIZJUCDUDUEHUFUGZKZDUHUBZFGGIVEJVFKZVHFVGVICLZIZMNZVIVJVGIZMNZVJVGVIIZ
      MNZOZPZCVHQZALZBLZVJIZMNZWAVJVTIZMNZVJVTWAIZMNZOZPZCVHQZBVHQAVHQHHDTTRGHD
      UITRVCVDEGIJVFKZVHFVGVIWKIZMNZVIWKVGIZMNZWKVOMNZOZPZVSHGDTUIRVGVIWKDVGUJV
      IUJWKUJUKVRWRCWKVHVJWKUOZVQWQWSVLWMVNWOVPWPWSVKWLVGMVJWKVIULSWSVMWNVIMVJW
      KVGUMSVJWKVOMUNUPUQURUSWJVSVGWBMNZWAVMMNZVJVGWAIZMNZOZPZCVHQABVGVIVHVHVTV
      GUOZWIXECVHXFWHXDXFWCWTWEXAWGXCVTVGWBMUNXFWDVMWAMVTVGVJULSXFWFXBVJMVTVGWA
      UMSUPUQUTWAVIUOZXEVRCVHXGXDVQXGWTVLXAVNXCVPXGWBVKVGMWAVIVJUMSWAVIVMMUNXGX
      BVOVJMWAVIVGULSUPUQUTVAVB $.
  $}

  ${
    $d N i k p x y z $.
    $( The general lower dimension axiom.  Take a dimension ` N ` greater than
       or equal to three.  Then, there are three non-colinear points in ` N `
       dimensional space that are equidistant from ` N - 1 ` distinct points.
       Derived from remarks in _Tarski's System of Geometry_, Alfred Tarski and
       Steven Givant, Bulletin of Symbolic Logic, Volume 5, Number 2 (1999),
       175-214.  (Contributed by Scott Fenton, 22-Apr-2013.) $)
    axlowdim $p |- ( N e. ( ZZ>= ` 3 ) ->
       E. p E. x e. ( EE ` N ) E. y e. ( EE ` N ) E. z e. ( EE ` N )
         ( p : ( 1 ... ( N - 1 ) ) -1-1-> ( EE ` N ) /\
           A. i e. ( 2 ... ( N - 1 ) ) (
            <. ( p ` 1 ) , x >. Cgr <. ( p ` i ) , x >. /\
            <. ( p ` 1 ) , y >. Cgr <. ( p ` i ) , y >. /\
            <. ( p ` 1 ) , z >. Cgr <. ( p ` i ) , z >. ) /\
        -. ( x Btwn <. y , z >. \/ y Btwn <. z , x >. \/
             z Btwn <. x , y >. ) ) ) $=
      ( c3 wcel c1 co wceq cop cc0 ccgr wbr w3a c2 cbtwn syl opeq1d vk cuz cmin
      cfv cfz cee cv cneg csn cdif cxp cun caddc cif cmpt wf1 wral w3o wrex wex
      wn cpr uzuzle23 0re axlowdimlem5 1re eqid axlowdimlem15 axlowdimlem17 cle
      wa cz 1zzd peano2zm 3ad2ant2 2m1e1 2re 3re 2lt3 ltleii cr wi letr mp3an12
      zre mpani imp 3adant1 lesub1 mp3an13 mpbid syl5eqbrr 3jca 3imtr4i eluzfz1
      wb eluz2 adantr eqeq1 oveq1 difeq2d xpeq1d uneq12d ifbieq2d snex cvv ovex
      sneqd difexg ax-mp xpex unex ifex fvmpt iftruei syl6eq wss 2eluzge1 fzss1
      sseli adantl clt 1lt2 ltnlei mpbi intnanr eluzelz 1z 2z breq12d 3anbi123d
      notbid opeq2 ralbidv breq1 breq2d opeq1 3orbi123d 3anbi23d fveq1 iffalsed
      elfz mtbiri eleq1 syl5ibrcom con2d eqtrd mpbir3and ralrimiva axlowdimlem6
      3anbi1d 3anbi2d 3anbi3d rspc3ev syl33anc mptex 3anbi12d rexbidv 2rexbidv
      f1eq1 spcev ) EGUBUDHZIEIUCJZUEJZEUFUDZUAUVDUAUGZIKZGIUHLZUIZIEUEJZGUIZUJ
      ZMUIZUKZULZUVFIUMJZILZUIZUVJUVPUIZUJZUVMUKZULZUNZUOZUPZIUWDUDZAUGZLZDUGZU
      WDUDZUWGLZNOZUWFBUGZLZUWJUWMLZNOZUWFCUGZLZUWJUWQLZNOZPZDQUVCUEJZUQZUWGUWM
      UWQLZROZUWMUWQUWGLZROZUWQUWGUWMLZROZURZVAZPZCUVEUSZBUVEUSAUVEUSZUVDUVEFUG
      ZUPZIUXOUDZUWGLZUWIUXOUDZUWGLZNOZUXQUWMLZUXSUWMLZNOZUXQUWQLZUXSUWQLZNOZPZ
      DUXBUQZUXKPZCUVEUSZBUVEUSAUVEUSZFUTUVBIMLZQMLZVBGEUEJUVMUKZULZUVEHZIILUYN
      VBUYOULZUVEHZUYMQILVBUYOULZUVEHZUWEUWFUYPLZUWJUYPLZNOZUWFUYRLZUWJUYRLZNOZ
      UWFUYTLZUWJUYTLZNOZPZDUXBUQZUYPUYRUYTLZROZUYRUYTUYPLZROZUYTUYPUYRLZROZURZ
      VAZUXNUVBEQUBUDHZUYQEVCZMMEVDVDVESUVBVVAUYSVVBIMEVFVDVESUVBVVAVUAVVBMIEVD
      VFVESUAUWDEUWDVGZVHUVBVUKDUXBUVBUWIUXBHZVKZVUKUVOUYPLZUWIIUMJZILZUIZUVJVV
      GUIZUJZUVMUKZULZUYPLZNOZUVOUYRLZVVMUYRLZNOZUVOUYTLZVVMUYTLZNOZUYPUVOVVMUW
      IEMMUVOVGZVVMVGZUYPVGZVDVDVIUYRUVOVVMUWIEIMVWBVWCUYRVGZVFVDVIUYTUVOVVMUWI
      EMIVWBVWCUYTVGZVDVFVIVVEVUDVVOVUGVVRVUJVWAVVEVUBVVFVUCVVNNVVEUWFUVOUYPVVE
      UWFIIKZUVOIIUMJZILZUIZUVJVWHUIZUJZUVMUKZULZUNZUVOVVEIUVDHZUWFVWOKZUVBVWPV
      VDUVBUVCIUBUDZHZVWPGVLHZEVLHZGEVJOZPZIVLHZUVCVLHZIUVCVJOZPUVBVWSVXCVXDVXE
      VXFVXCVMVXAVWTVXEVXBEVNZVOVXCIQIUCJZUVCVJVPVXCQEVJOZVXHUVCVJOZVXAVXBVXIVW
      TVXAVXBVXIVXAQGVJOZVXBVXIQGVQVRVSVTVXAEWAHZVXKVXBVKVXIWBZEWEZQWAHZGWAHVXL
      VXMVQVRQGEWCWDSWFWGWHVXCVXLVXIVXJWPZVXAVWTVXLVXBVXNVOVXOVXLIWAHVXPVQVFQEI
      WIWJSWKWLWMGEWQIUVCWQWNIUVCWOSZWRUAIUWCVWOUVDUWDUVGUVGVWGUWBVWNUVOUVFIIWS
      UVGUVRVWJUWAVWMUVGUVQVWIUVGUVPVWHIUVFIIUMWTZTXHUVGUVTVWLUVMUVGUVSVWKUVJUV
      GUVPVWHVXRXHXAXBXCXDVVCVWGUVOVWNUVIUVNUVHXEUVLUVMUVJXFHZUVLXFHIEUEXGZUVJU
      VKXFXIXJMXEZXKXLZVWJVWMVWIXEVWLUVMVXSVWLXFHVXTUVJVWKXFXIXJVYAXKXLXMXNZSVW
      GUVOVWNIVGXOZXPZTVVEUWJVVMUYPVVEUWJUWIIKZUVOVVMUNZVVMVVEUWIUVDHZUWJVYGKVV
      DVYHUVBUXBUVDUWIQVWRHUXBUVDXQXRQIUVCXSXJXTYAUAUWIUWCVYGUVDUWDUVFUWIKZUVGV
      YFUWBVVMUVOUVFUWIIWSVYIUVRVVIUWAVVLVYIUVQVVHVYIUVPVVGIUVFUWIIUMWTZTXHVYIU
      VTVVKUVMVYIUVSVVJUVJVYIUVPVVGVYJXHXAXBXCXDVVCVYFUVOVVMVYBVVIVVLVVHXEVVKUV
      MVXSVVKXFHVXTUVJVVJXFXIXJVYAXKXLXMXNSVVEVYFUVOVVMUVBVVDVYFVAUVBVYFVVDUVBV
      VDVAVYFIUXBHZVAUVBVYKQIVJOZVXFVKZVYLVXFIQYBOVYLVAYCIQVFVQYDYEYFUVBVXEVYKV
      YMWPZUVBVXAVXEGEYGVXGSVXDQVLHVXEVYNYHYIIQUVCUUBWDSUUCVYFVVDVYKUWIIUXBUUDY
      LUUEUUFWGUUAUUGZTYJVVEVUEVVPVUFVVQNVVEUWFUVOUYRVYETVVEUWJVVMUYRVYOTYJVVEV
      UHVVSVUIVVTNUVBVUHVVSKVVDUVBUWFUVOUYTUVBUWFVWOUVOUVBVWPVWQVXQVYCSVYDXPTWR
      VVEUWJVVMUYTVYOTYJYKUUHUUIUVBVVAVUTVVBUYPUYRUYTEVWDVWEVWFUUJSUXLUWEVULVUT
      PUWEVUDUWPUWTPZDUXBUQZUYPUXDROZUWMUWQUYPLZROZUWQUYPUWMLZROZURZVAZPUWEVUDV
      UGUWTPZDUXBUQZUYPUYRUWQLZROZUYRVYSROZUWQVUQROZURZVAZPABCUYPUYRUYTUVEUVEUV
      EUWGUYPKZUXCVYQUXKWUDUWEWUMUXAVYPDUXBWUMUWLVUDUWPUWTWUMUWHVUBUWKVUCNUWGUY
      PUWFYMUWGUYPUWJYMYJUUKYNWUMUXJWUCWUMUXEVYRUXGVYTUXIWUBUWGUYPUXDRYOWUMUXFV
      YSUWMRUWGUYPUWQYMYPWUMUXHWUAUWQRUWGUYPUWMYQYPYRYLYSUWMUYRKZVYQWUFWUDWULUW
      EWUNVYPWUEDUXBWUNUWPVUGVUDUWTWUNUWNVUEUWOVUFNUWMUYRUWFYMUWMUYRUWJYMYJUULY
      NWUNWUCWUKWUNVYRWUHVYTWUIWUBWUJWUNUXDWUGUYPRUWMUYRUWQYQYPUWMUYRVYSRYOWUNW
      UAVUQUWQRUWMUYRUYPYMYPYRYLYSUWQUYTKZWUFVULWULVUTUWEWUOWUEVUKDUXBWUOUWTVUJ
      VUDVUGWUOUWRVUHUWSVUINUWQUYTUWFYMUWQUYTUWJYMYJUUMYNWUOWUKVUSWUOWUHVUNWUIV
      UPWUJVURWUOWUGVUMUYPRUWQUYTUYRYMYPWUOVYSVUOUYRRUWQUYTUYPYQYPUWQUYTVUQRYOY
      RYLYSUUNUUOUYLUXNFUWDUAUVDUWCIUVCUEXGUUPUXOUWDKZUYKUXMABUVEUVEWUPUYJUXLCU
      VEWUPUXPUWEUYIUXCUXKUVDUVEUXOUWDUUTWUPUYHUXADUXBWUPUYAUWLUYDUWPUYGUWTWUPU
      XRUWHUXTUWKNWUPUXQUWFUWGIUXOUWDYTZTWUPUXSUWJUWGUWIUXOUWDYTZTYJWUPUYBUWNUY
      CUWONWUPUXQUWFUWMWUQTWUPUXSUWJUWMWURTYJWUPUYEUWRUYFUWSNWUPUXQUWFUWQWUQTWU
      PUXSUWJUWQWURTYJYKYNUUQUURUUSUVAS $.
  $}

  $(
  @{
    @d A i @.  @d P i @.  @d Q i @.  @d N i @.
    @( Lemma for ~ axupdim .  A condition for two points to be equidistant from
       a third. @)
    axupdimlem1 @p |- ( ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) /\
       A e. ( EE ` N ) ) ->
       ( <. P , A >. Cgr <. Q , A >. <->
         sum_ i e. ( 1 ... N ) ( ( ( P ` i ) - ( Q ` i ) ) x. ( A ` i ) ) =
         ( sum_ i e. ( 1 ... N ) ( ( ( P ` i ) ^ 2 ) - ( ( Q ` i ) ^ 2 ) )
           / 2 ) ) ) @=
       ( cee cfv wcel w3a cop ccgr wbr c1 cfz co cv cmin c2 cexp csu wceq cmul
       cdiv wb brcgr 3impdir cc0 wa cc fveecn 3ad2antl1 3ad2antl2 3ad2antl3
       caddc binom2sub 3adant2 3adant1 oveq12d sqcl 3ad2ant1 2cn mulcl
       mulcl sylancr 3ad2ant2 sub4 syl22anc subcl syl2anc 3ad2ant3 pnpcan2
       syl3anc subdir oveq2d subdi mp3an1 eqtrd 3eqtr4d sumeq2dv eqeq1d cuz
       wral cn eleenn nnuz syl6eleq syl jca ralrimiva fsumsub fsumcl subeq0
       bitrd fsummulc1 mp3an2 eqeq2d 3bitr4d eqcom syl6bb wne 2ne0 pm3.2i
       divmul mp3an3 bitr4d 3bitr3d ) BEFGZHZCXGHZAXGHZIZBAJCAJKLZMENOZDPZBGZXN
       AGZQOZRSOZDTZXMXNCGZXPQOZRSOZDTZUAZXMXOXTQOZXPUBOZDTZXMXORSOZXTRSOZQOZDT
       ZRUCOZUAZXHXJXIXLYDUDBACADEUEUFXKXMXRYBQOZDTZUGUAZXMYJRYFUBOZQOZDTZUGUAZ
       YDYMXKYOYSUGXKXMYNYRDXKXNXMHZUHZXOUIHZXTUIHZXPUIHZYNYRUAXHXIUUAUUCXJBXNE
       UJUKZXIXHUUAUUDXJCXNEUJULZXJXHUUAUUEXIAXNEUJUMZUUCUUDUUEIZYNYHRXOXPUBOZU
       BOZQOZXPRSOZUNOZYIRXTXPUBOZUBOZQOZUUMUNOZQOZYRUUIXRUUNYBUURQUUCUUEXRUUNU
       AUUDXOXPUOUPUUDUUEYBUURUAUUCXTXPUOUQURUUIUULUUQQOZYJUUKUUPQOZQOZUUSYRUUI
       YHUIHZUUKUIHZYIUIHZUUPUIHZUUTUVBUAUUCUUDUVCUUEXOUSZUTZUUIRUIHZUUJUIHZUVD
       VAUUCUUEUVJUUDXOXPVBUPZRUUJVCVDZUUDUUCUVEUUEXTUSZVEZUUIUVIUUOUIHZUVFVAUU
       DUUEUVOUUCXTXPVBUQZRUUOVCVDZYHUUKYIUUPVFVGUUIUULUIHZUUQUIHZUUMUIHZUUSUUT
       UAUUIUVCUVDUVRUVHUVLYHUUKVHVIUUIUVEUVFUVSUVNUVQYIUUPVHVIUUEUUCUVTUUDXPUS
       VJUULUUQUUMVKVLUUIYQUVAYJQUUIYQRUUJUUOQOZUBOZUVAUUIYFUWARUBXOXTXPVMVNUUI
       UVJUVOUWBUVAUAZUVKUVPUVIUVJUVOUWCVARUUJUUOVOVPVIVQVNVRVQVLVSVTXKYPXSYCQO
       ZUGUAZYDXKYOUWDUGXKEMWAGZHZXRUIHZYBUIHZUHZDXMWBYOUWDUAXKEWCUWFXHXIEWCHXJ
       BEWDUTWEWFZXKUWJDXMUUBUWHUWIUUBXQUIHZUWHUUBUUCUUEUWLUUFUUHXOXPVHVIXQUSWG
       ZUUBYAUIHZUWIUUBUUDUUEUWNUUGUUHXTXPVHVIYAUSWGZWHWIXRYBDMEWJVIVTXKXSUIHZY
       CUIHZUWEYDUDXKUWGUWHDXMWBUWPUWKXKUWHDXMUWMWIXRDMEWKVIXKUWGUWIDXMWBUWQUWK
       XKUWIDXMUWOWIYBDMEWKVIXSYCWLVIWMXKYTYLYGUAZYMXKYTRYGUBOZYKUAZUWRXKYTYKUW
       SUAZUWTXKYKXMYQDTZQOZUGUAZYKUXBUAZYTUXAXKYKUIHZUXBUIHZUXDUXEUDXKUWGYJUIH
       ZDXMWBUXFUWKXKUXHDXMUUBUVCUVEUXHUUBUUCUVCUUFUVGWGUUBUUDUVEUUGUVMWGYHYIVH
       VIZWIYJDMEWKVIZXKUWGYQUIHZDXMWBUXGUWKXKUXKDXMUUBUVIYFUIHZUXKVAUUBYEUIHZU
       UEUXLUUBUUCUUDUXMUUFUUGXOXTVHVIUUHYEXPVCVIZRYFVCVDZWIYQDMEWKVIYKUXBWLVIX
       KYSUXCUGXKUWGUXHUXKUHZDXMWBYSUXCUAUWKXKUXPDXMUUBUXHUXKUXIUXOWHWIYJYQDMEW
       JVIVTXKUWSUXBYKXKUWGUXLDXMWBZUWSUXBUAZUWKXKUXLDXMUXNWIZUWGUVIUXQUXRVAYFR
       DMEWNWOVIWPWQYKUWSWRWSXKUXFYGUIHZUWRUWTUDZUXJXKUWGUXQUXTUWKUXSYFDMEWKVIU
       XFUXTUVIRUGWTZUHUYAUVIUYBVAXAXBYKYGRXCXDVIXEYLYGWRWSXFWM @.
       @( [19-Apr-2014] @) @( [8-Jul-2013] @)
  @}

  @{
    @d J j @.  @d K j k @.  @d N j k @.  @d P j k @.
    axupdimlem2.1 @e |- Q = ( k e. ( 1 ... ( N - 1 ) ) |->
       ( j e. ( 1 ... N ) |->
         ( ( ( P ` 1 ) ` j ) - ( ( P ` ( k + 1 ) ) ` j ) ) ) ) @.
    @( Lemma for ~ axupdim .  Calculate the value of a mapping used from here
       on out. @)
    axupdimlem2 @p |- ( ( K e. ( 1 ... ( N - 1 ) ) /\ J e. ( 1 ... N ) ) ->
       ( ( Q ` K ) ` J ) =
         ( ( ( P ` 1 ) ` J ) - ( ( P ` ( K + 1 ) ) ` J ) ) ) @=
       ( c1 cmin co cfz wcel cfv cv caddc cmpt wceq eqidd oveq1 fveq2d fveq1d
       oveq2d mpteq12dv cvv ovex mptexg ax-mp fvmpt fveq2 oveq12d eqid
       sylan9eq ) FIGIJKLKZMZEIGLKZMEFBNZNECUPCOZIANZNZURFIPKZANZNZJKZQZNEUSNZE
       VBNZJKZUOEUQVEDFCUPUTURDOZIPKZANZNZJKZQVEUNBVIFRZCUPVMUPVDVNUPSVNVLVCUTJ
       VNURVKVBVNVJVAAVIFIPTUAUBUCUDHUPUEMVEUEMIGLUFCUPVDUEUGUHUIUBCEVDVHUPVEUR
       ERUTVFVCVGJUREUSUJUREVBUJUKVEULVFVGJUFUIUM @.
       @( [19-Apr-2014] @) @( [17-Jul-2013] @)
  @}

  @{
    @d N i j @.  @d N k p q @.  @d P i j @.  @d P k j p q @.  @d Q i p q @.
    axupdimlem3.1 @e |- Q = ( k e. ( 1 ... ( N - 1 ) ) |->
       ( j e. ( 1 ... N ) |->
         ( ( ( P ` 1 ) ` j ) - ( ( P ` ( k + 1 ) ) ` j ) ) ) ) @.
    @( Lemma for ~ axupdim .  Show that the translation of the ` P ` points
       results in a one-to-one function into points. @)
    axupdimlem3 @p |- ( ( N e. NN /\ P : ( 1 ... N ) -1-1-> ( EE ` N ) ) ->
       Q : ( 1 ... ( N - 1 ) ) -1-1-> ( EE ` N ) ) @=
       ( vp vq vi cn wcel c1 cfz co cee cfv wf1 wa cmin wf cv wceq wi wral
       caddc cmpt f1f adantl cuz elnnuz eluzfz1 sylbi adantr ffvelrn syl2anc
       simplr syl fznatpl1 adantlr eqid eleesub ex fmptd simprl axupdimlem2
       sylan simprr eqeq12d cc wb syl2an ancoms fveecn simpl simpr subcan
       syl3anc bitrd ralbidva eqidd oveq1 fveq2d fveq1d oveq2d mpteq12dv
       cvv ovex mptexg ax-mp fvmpt eleesubd eqeefv 3bitr4d f1fveq syl12anc cz
       elfzelz zcn ax-1cn addcan2 mp3an3 biimpd ralrimivva jca dff13 sylibr )
       EJKZLEMNZEOPZAQZRZLELSNZMNZXIBTZGUAZBPZHUAZBPZUBZXOXQUBZUCZHXMUDGXMUDZRX
       MXIBQXKXNYBXKDXMCXHCUAZLAPZPZYCDUAZLUENZAPZPZSNZUFZXIBXKYFXMKZYKXIKZXKYL
       RZYDXIKZYHXIKZYMXKYOYLXKXHXIATZLXHKZYOXJYQXGXHXIAUGZUHXGYRXJXGELUIPKYREU
       JLEUKULZUMXHXILAUNZUOUMYNYQYGXHKZYPYNXJYQXGXJYLUPYSUQXGYLUUBXJYFEURUSXHX
       IYGAUNUOYDYHYKCEYKUTVAUOVBFVCXKYAGHXMXMXKXOXMKZXQXMKZRZRZXSXTUUFXSXOLUEN
       ZXQLUENZUBZXTUUFXSUUGAPZUUHAPZUBZUUIUUFIUAZXPPZUUMXRPZUBZIXHUDZUUMUUJPZU
       UMUUKPZUBZIXHUDZXSUULUUFUUPUUTIXHUUFUUMXHKZRZUUPUUMYDPZUURSNZUVDUUSSNZUB
       ZUUTUVCUUNUVEUUOUVFUUFUUCUVBUUNUVEUBXKUUCUUDVDZABCDUUMXOEFVEVFUUFUUDUVBU
       UOUVFUBXKUUCUUDVGZABCDUUMXQEFVEVFVHUVCUVDVIKZUURVIKZUUSVIKZUVGUUTVJUUFYO
       UVBUVJXKYOUUEXJXGYOXJYQYRYOXGYSYTUUAVKVLUMZYDUUMEVMVFUUFUUJXIKZUVBUVKUUF
       YQUUGXHKZUVNUUFXJYQXGXJUUEUPZYSUQZXKXGUUCUVOUUEXGXJVNZUUCUUDVNXOEURVKZXH
       XIUUGAUNUOZUUJUUMEVMVFUUFUUKXIKZUVBUVLUUFYQUUHXHKZUWAUVQXKXGUUDUWBUUEUVR
       UUCUUDVOXQEURVKZXHXIUUHAUNUOZUUKUUMEVMVFUVDUURUUSVPVQVRVSUUFXPXIKZXRXIKZ
       XSUUQVJUUFUUCYOUVNUWEUVHUVMUVTUUCYDUUJXPCEDXOYKCXHYEYCUUJPZSNZUFZXMBYFXO
       UBZCXHYJXHUWHUWJXHVTUWJYIUWGYESUWJYCYHUUJUWJYGUUGAYFXOLUEWAWBWCWDWEFXHWF
       KZUWIWFKLEMWGZCXHUWHWFWHWIWJWKVQUUFUUDYOUWAUWFUVIUVMUWDUUDYDUUKXRCEDXQYK
       CXHYEYCUUKPZSNZUFZXMBYFXQUBZCXHYJXHUWNUWPXHVTUWPYIUWMYESUWPYCYHUUKUWPYGU
       UHAYFXQLUEWAWBWCWDWEFUWKUWOWFKUWLCXHUWNWFWHWIWJWKVQXPXRIEWLUOUUFUVNUWAUU
       LUVAVJUVTUWDUUJUUKIEWLUOWMUUFXJUVOUWBUULUUIVJUVPUVSUWCXHXIUUGUUHAWNWOVRU
       UFXOVIKZXQVIKZUUIXTVJZUUEUWQXKUUCUWQUUDUUCXOWPKUWQXOLXLWQXOWRUQUMUHUUEUW
       RXKUUDUWRUUCUUDXQWPKUWRXQLXLWQXQWRUQUHUHUWQUWRLVIKUWSWSXOXQLWTXAUOVRXBXC
       XDGHXMXIBXEXF @.
       @( [19-Apr-2014] @) @( [17-Jul-2013] @)
  @}

  @{
    @d I a j k @.  @d N a j k @.  @d P a j k @.
    axupdimlem4.1 @e |- Q = ( k e. ( 1 ... ( N - 1 ) ) |->
       ( j e. ( 1 ... N ) |->
         ( ( ( P ` 1 ) ` j ) - ( ( P ` ( k + 1 ) ) ` j ) ) ) ) @.
    @( Lemma for ~ axupdim .  For all values of ` Q ` , there is some nonzero
       value of it. @)
    axupdimlem4 @p |- ( ( N e. NN /\ P : ( 1 ... N ) -1-1-> ( EE ` N ) /\
       I e. ( 1 ... ( N - 1 ) ) ) ->
       E. a e. ( 1 ... N ) ( ( Q ` I ) ` a ) =/= 0 ) @=
       ( cn wcel c1 cfz co cee cfv wf1 cmin w3a cv cc0 wne wrex caddc wceq
       wral wn cr clt wbr cz elfzelz peano2zd zre syl 3ad2ant3 1re a1i
       peano2re ltp1 cle elfzle1 wb leadd1 mp3an13 mpbid ltletrd ltneOLD mp3an1
       syl2anc simp2 fznatpl1 3adant2 cuz elnnuz eluzfz1 sylbi 3ad2ant1
       f1fveq syl12anc necon3bid mpbird necomd df-ne sylib wf f1f ffvelrn
       syl2an ancoms 3adant3 3ad2ant2 eqeefv mtbid rexbii rexnal bitri sylibr
       wa axupdimlem2 3ad2antl3 eqeq1d cc fveecn sylan subeq0 bitrd rexbidva )
       FIJZKFLMZFNOZAPZEKFKQMZLMJZRZGSZEBOOZTUAZGXIUBXOKAOZOZXOEKUCMZAOZOZUAZGX
       IUBZXNXSYBUDZGXIUEZUFZYDXNXRYAUDZYFXNXRYAUAYHUFXNYAXRXNYAXRUAXTKUAZXNXTU
       GJZKXTUHUIZYIXMXHYJXKXMXTUJJYJXMEEKXLUKZULXTUMUNUOZXNKKKUCMZXTKUGJZXNUPU
       QZXNYOYNUGJYPKURUNYMXNYOKYNUHUIYPKUSUNXNKEUTUIZYNXTUTUIZXMXHYQXKEKXLVAUO
       XNEUGJZYQYRVBZXMXHYSXKXMEUJJYSYLEUMUNUOYOYSYOYTUPUPKEKVCVDUNVEVFYOYJYKYI
       UPKXTVGVHVIXNYAXRXTKXNXKXTXIJZKXIJZYAXRUDXTKUDVBXHXKXMVJXHXMUUAXKEFVKVLZ
       XHXKUUBXMXHFKVMOJUUBFVNKFVOVPZVQXIXJXTKAVRVSVTWAWBXRYAWCWDXNXRXJJZYAXJJZ
       YHYFVBXHXKUUEXMXKXHUUEXKXIXJAWEZUUBUUEXHXIXJAWFZUUDXIXJKAWGWHWIWJZXNUUGU
       UAUUFXKXHUUGXMUUHWKUUCXIXJXTAWGVIZXRYAGFWLVIWMYDYEUFZGXIUBYGYCUUKGXIXSYB
       WCWNYEGXIWOWPWQXNXQYCGXIXNXOXIJZWRZXPTXSYBUUMXPTUDXSYBQMZTUDZYEUUMXPUUNT
       XMXHUULXPUUNUDXKABCDXOEFHWSWTXAUUMXSXBJZYBXBJZUUOYEVBXNUUEUULUUPUUIXRXOF
       XCXDXNUUFUULUUQUUJYAXOFXCXDXSYBXEVIXFVTXGWA @.
       @( [19-Apr-2014] @) @( [17-Jul-2013] @)
  @}

  @{
    @d A p x y @.  @d B p x y @.  @d N p x y @.
    axupdimlem5.1 @e |- T = ( x e. ( EE ` N ) , y e. ( EE ` N ) |->
        sum_ p e. ( 1 ... N ) ( ( x ` p ) x. ( y ` p ) ) ) @.
    @( Lemma for ~ axupdim .  Calculate the value of a dot product of two
       points. @)
    axupdimlem5 @p |- ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
      ( A T B ) = sum_ p e. ( 1 ... N ) ( ( A ` p ) x. ( B ` p ) ) ) @=
       ( cee cfv c1 cfz co cv cmul csu wceq fveq1 oveq1d sumeq2sdv oveq2d
       sumex ovmpt2 ) ABCDFIJZUDKFLMZGNZANZJZUFBNZJZOMZGPUEUFCJZUFDJZOMZGPEUEUL
       UJOMZGPUGCQZUEUKUOGUPUHULUJOUFUGCRSTUIDQZUEUOUNGUQUJUMULOUFUIDRUATHUEUNG
       UBUC @.
       @( [19-Apr-2014] @) @( [8-Aug-2013] @)

    @{
      @d A i @.  @d N i @.  @d p i @.
      @( Lemma for ~ axupdim .  The dot product of a point with itself is zero
         iff all coordinates of the points are zero. @)
      axupdimlem6 @p |- ( A e. ( EE ` N ) ->
       ( ( A T A ) = 0 <-> A. i e. ( 1 ... N ) ( A ` i ) = 0 ) ) @=
       ( cee cfv wcel co cc0 wceq c1 cfz cv cmul csu wral axupdimlem5 anidms
       eqeq1d cuz cr cle wbr wa wb cn eleenn nnuz syl6eleq fveere remulcl
       msqge0 jca syl ralrimiva fsum00 syl2anc cc fveecn c2 cexp sqval sqeq0
       bitr3d ralbidva fveq2 cbvralv syl6bb bitrd ) CFIJKZCCDLZMNOFPLZGQZCJZVRR
       LZGSZMNZEQZCJZMNZEVPTZVNVOVTMVNVOVTNABCCDFGHUAUBUCVNWAVSMNZGVPTZWEVNFOUD
       JZKVSUEKZMVSUFUGZUHZGVPTWAWGUIVNFUJWHCFUKULUMVNWKGVPVNVQVPKUHZVRUEKZWKCV
       QFUNWMWIWJWMWIVRVRUOUBVRUPUQURUSVSGOFUTVAVNWGVRMNZGVPTWEVNWFWNGVPWLVRVBK
       ZWFWNUICVQFVCWOVRVDVELZMNWFWNWOWPVSMVRVFUCVRVGVHURVIWNWDGEVPVQWBNVRWCMVQ
       WBCVJUCVKVLVMVM @.
       @( [19-Apr-2014] @) @( [8-Aug-2013] @)
    @}

    @( Lemma for ~ axupdim .  The dot product of two points is a real. @)
    axupdimlem7 @p |- ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
       ( A T B ) e. RR ) @=
       ( cee cfv wcel wa co c1 cfz cv cmul csu cr axupdimlem5 cuz wral cn
       eleenn nnuz syl6eleq adantr fveere remulcl syl2an anandirs ralrimiva
       fsumrecl syl2anc eqeltrd ) CFIJZKZDUPKZLZCDEMNFOMZGPZCJZVADJZQMZGRZSABC
       DEFGHTUSFNUAJZKZVDSKZGUTUBVESKUQVGURUQFUCVFCFUDUEUFUGUSVHGUTUQURVAUTKZVH
       UQVILVBSKVCSKVHURVILCVAFUHDVAFUHVBVCUIUJUKULVDGNFUMUNUO @.
       @( [19-Apr-2014] @) @( [8-Aug-2013] @)
  @}

  @{
    @d A i p @.  @d A k @.  @d B i @.  @d B k p @.  @d D p y @.  @d I i @.
    @d I j k p @.  @d I x y @.  @d N i @.  @d N j k p @.  @d N x y @.
    @d P i @.  @d P j k p @.  @d Q p x y @.  @d D x @.
    axupdimlem8.1 @e |- Q = ( k e. ( 1 ... ( N - 1 ) ) |->
       ( j e. ( 1 ... N ) |->
         ( ( ( P ` 1 ) ` j ) - ( ( P ` ( k + 1 ) ) ` j ) ) ) ) @.
    axupdimlem8.2 @e |- D = ( k e. ( 1 ... N ) |->
       ( ( B ` k ) - ( A ` k ) ) ) @.
    axupdimlem8.3 @e |- T = ( x e. ( EE ` N ) , y e. ( EE ` N ) |->
        sum_ p e. ( 1 ... N ) ( ( x ` p ) x. ( y ` p ) ) ) @.
    @( Lemma for ~ axupdim .  The dot product of a ` Q ` and ` D ` is zero. @)
    axupdimlem8 @p |- ( ( ( ( N e. NN /\ P : ( 1 ... N ) -1-1-> ( EE ` N ) )
       /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ) /\
       A. i e. ( 2 ... N ) ( <. ( P ` 1 ) , A >. Cgr <. ( P ` i ) , A >. /\
           <. ( P ` 1 ) , B >. Cgr <. ( P ` i ) , B >. ) /\
       I e. ( 1 ... ( N - 1 ) ) ) -> ( ( Q ` I ) T D ) = 0 ) @=
       ( cn wcel c1 cfz co cee cfv wf1 wa cop cv ccgr wbr c2 wral cmin w3a
       cmul csu cc0 wceq caddc simp3 wf simp1lr f1f syl simp1ll cuz elnnuz
       eluzfz1 sylbi ffvelrn syl2anc fznatpl1 cmpt eqidd oveq1 fveq2d fveq1d
       oveq2d mpteq12dv cvv ovex mptexg ax-mp fvmpt eleesubd syl3anc
       simp1rr simp1rl eleesub axupdimlem5 cexp cdiv axupdimlem2 sylan fveq2
       oveq12d adantl cc fveecn subcl subdi eqtrd sumeq2dv sylib mulcl jca
       ralrimiva fsumsub cle df-2 elfzle1 cr wb cz elfzelz zre 1re leadd1
       mp3an13 mpbid 3ad2ant3 syl5eqbr elfzle2 peano2z nnz 2z elfz mp3an2
       mpbird simp2 opeq1d breq2d anbi12d rspcv sylc simprd axupdimlem1
       simpld sqcl fsumcl halfcl subid 3eqtrd ) MRSZTMUAUBZMUCUDZFUEZUFZCUUFSZD
       UUFSZUFZUFZTFUDZCUGZIUHZFUDZCUGZUIUJZUUMDUGZUUPDUGZUIUJZUFZIUKMUAUBZULZL
       TMTUMUBZUAUBZSZUNZLGUDZEHUBZUUENUHZUVIUDZUVKEUDZUOUBZNUPZUQUVHUVIUUFSZEU
       UFSZUVJUVOURUVHUVGUUMUUFSZLTUSUBZFUDZUUFSZUVPUULUVDUVGUTZUVHUUEUUFFVAZTU
       UESZUVRUVHUUGUWCUUDUUGUUKUVDUVGVBUUEUUFFVCVDZUVHUUDUWDUUDUUGUUKUVDUVGVEZ
       UUDMTVFUDSZUWDMVGZTMVHVIVDUUEUUFTFVJVKZUVHUWCUVSUUESZUWAUWEUVHUUDUVGUWJU
       WFUWBLMVLVKZUUEUUFUVSFVJVKZUVGUUMUVTUVIJMKLJUUEJUHZUUMUDZUWMKUHZTUSUBZFU
       DZUDZUMUBZVMJUUEUWNUWMUVTUDZUMUBZVMZUVFGUWOLURZJUUEUWSUUEUXAUXCUUEVNUXCU
       WRUWTUWNUMUXCUWMUWQUVTUXCUWPUVSFUWOLTUSVOVPVQVRVSOUUEVTSUXBVTSTMUAWAJUUE
       UXAVTWBWCWDWEWFUVHUUJUUIUVQUUIUUJUUHUVDUVGWGZUUIUUJUUHUVDUVGWHZDCEKMPWIV
       KABUVIEHMNQWJVKUVHUVOUUEUVKUUMUDZUVKUVTUDZUMUBZUVKDUDZUOUBZNUPZUUEUXHUVK
       CUDZUOUBZNUPZUMUBZUUEUXFUKWKUBZUXGUKWKUBZUMUBZNUPZUKWLUBZUXTUMUBZUQUVHUV
       OUUEUXJUXMUMUBZNUPZUXOUVHUUEUVNUYBNUVHUVKUUESZUFZUVNUXHUXIUXLUMUBZUOUBZU
       YBUYEUVLUXHUVMUYFUOUVHUVGUYDUVLUXHURUWBFGJKUVKLMOWMWNUYDUVMUYFURUVHKUVKU
       WODUDZUWOCUDZUMUBUYFUUEEUWOUVKURUYHUXIUYIUXLUMUWOUVKDWOUWOUVKCWOWPPUXIUX
       LUMWAWDWQWPUYEUXHWRSZUXIWRSZUXLWRSZUYGUYBURUYEUXFWRSZUXGWRSZUYJUVHUVRUYD
       UYMUWIUUMUVKMWSWNZUVHUWAUYDUYNUWLUVTUVKMWSWNZUXFUXGWTVKZUVHUUJUYDUYKUXDD
       UVKMWSWNZUVHUUIUYDUYLUXECUVKMWSWNZUXHUXIUXLXAWFXBXCUVHUWGUXJWRSZUXMWRSZU
       FZNUUEULUYCUXOURUVHUUDUWGUWFUWHXDZUVHVUBNUUEUYEUYTVUAUYEUYJUYKUYTUYQUYRU
       XHUXIXEVKUYEUYJUYLVUAUYQUYSUXHUXLXEVKXFXGUXJUXMNTMXHVKXBUVHUXKUXTUXNUXTU
       MUVHUUSUVTDUGZUIUJZUXKUXTURZUVHUUNUVTCUGZUIUJZVUEUVHUVSUVCSZUVDVUHVUEUFZ
       UVHVUIUKUVSXIUJZUVSMXIUJZUFZUVHVUKVULUVHUKTTUSUBZUVSXIXJUVGUULVUNUVSXIUJ
       ZUVDUVGTLXIUJZVUOLTUVEXKUVGLXLSZVUPVUOXMZUVGLXNSZVUQLTUVEXOZLXPVDTXLSZVU
       QVVAVURXQXQTLTXRXSVDXTYAYBUVHUWJVULUWKUVSTMYCVDXFUVHUVSXNSZMXNSZVUIVUMXM
       ZUVGUULVVBUVDUVGVUSVVBVUTLYDVDYAUVHUUDVVCUWFMYEVDVVBUKXNSVVCVVDYFUVSUKMY
       GYHVKYIUULUVDUVGYJUVBVUJIUVSUVCUUOUVSURZUURVUHUVAVUEVVEUUQVUGUUNUIVVEUUP
       UVTCUUOUVSFWOZYKYLVVEUUTVUDUUSUIVVEUUPUVTDVVFYKYLYMYNYOZYPUVHUVRUWAUUJVU
       EVUFXMUWIUWLUXDDUUMUVTNMYQWFXTUVHVUHUXNUXTURZUVHVUHVUEVVGYRUVHUVRUWAUUIV
       UHVVHXMUWIUWLUXECUUMUVTNMYQWFXTWPUVHUXTWRSZUYAUQURUVHUXSWRSZVVIUVHUWGUXR
       WRSZNUUEULVVJVUCUVHVVKNUUEUYEUXPWRSZUXQWRSZVVKUYEUYMVVLUYOUXFYSVDUYEUYNV
       VMUYPUXGYSVDUXPUXQWTVKXGUXRNTMYTVKUXSUUAVDUXTUUBVDUUCXB @.
       @( [19-Apr-2014] @) @( [17-Jul-2013] @)
  @}

  @{
    @d A i @.  @d A k @.  @d B i @.  @d B k @.  @d D i @.  @d D p @.  @d D x @.
    @d D y @.  @d i k @.  @d i p @.  @d N i @.  @d N k @.  @d N p @.  @d N x @.
    @d N y @.  @d p x @.  @d p y @.  @d x y @.
    axupdimlem9.1 @e |- D = ( k e. ( 1 ... N ) |->
       ( ( B ` k ) - ( A ` k ) ) ) @.
    axupdimlem9.2 @e |- T = ( x e. ( EE ` N ) , y e. ( EE ` N ) |->
        sum_ p e. ( 1 ... N ) ( ( x ` p ) x. ( y ` p ) ) ) @.
    @( Lemma for ~ axupdim .  The dot product of ` D ` with itself is nonzero
       iff ` A ` and ` B ` are distinct. @)
    axupdimlem9 @p |- ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
       ( ( D T D ) = 0 <-> A = B ) ) @=
       ( vi cee cfv wcel wa cv cc0 wceq c1 cfz co wral cmin wb fveq2 oveq12d
       ovex fvmpt eqeq1d adantl cc fveecn subeq0 syl2an ancoms anandirs eqcom
       syl6bb bitrd ralbidva eleesub axupdimlem6 syl eqeefv 3bitr4d ) CHMNZOZDV
       GOZPZLQZENZRSZLTHUAUBZUCZVKCNZVKDNZSZLVNUCEEFUBRSZCDSVJVMVRLVNVJVKVNOZPZ
       VMVQVPUDUBZRSZVRVTVMWCUEVJVTVLWBRGVKGQZDNZWDCNZUDUBWBVNEWDVKSWEVQWFVPUDW
       DVKDUFWDVKCUFUGJVQVPUDUHUIUJUKWAWCVQVPSZVRVHVIVTWCWGUEZVIVTPZVHVTPZWHWIV
       QULOVPULOWHWJDVKHUMCVKHUMVQVPUNUOUPUQVQVPURUSUTVAVJEVGOZVSVOUEVIVHWKDCEG
       HJVBUPABEFLHIKVCVDCDLHVEVF @.
       @( [19-Apr-2014] @) @( [11-Aug-2013] @)
  @}

  @{
    @d a p @.  @d I a j k @.  @d I p @.  @d I x y @.  @d N a j k @.  @d N p @.
    @d N x y @.  @d P a j k @.  @d p x y @.  @d Q a p @.  @d Q x y @.
    axupdimlem10.1 @e |- Q = ( k e. ( 1 ... ( N - 1 ) ) |->
       ( j e. ( 1 ... N ) |->
         ( ( ( P ` 1 ) ` j ) - ( ( P ` ( k + 1 ) ) ` j ) ) ) ) @.
    axupdimlem10.2 @e |- T = ( x e. ( EE ` N ) , y e. ( EE ` N ) |->
        sum_ p e. ( 1 ... N ) ( ( x ` p ) x. ( y ` p ) ) ) @.
    @( Lemma for ~ axupdim .  The dot product of a ` Q ` with itself is
       nonzero. @)
    axupdimlem10 @p |- ( ( N e. NN /\ P : ( 1 ... N ) -1-1-> ( EE ` N ) /\
       I e. ( 1 ... ( N - 1 ) ) ) -> ( ( Q ` I ) T ( Q ` I ) ) =/= 0 ) @=
       ( va cn wcel c1 cfz co cee cfv wf1 cmin w3a cc0 wceq wn wne cv wral
       wrex axupdimlem4 df-ne rexbii rexnal bitri sylib wb wa wf axupdimlem3
       f1f syl ffvelrn sylan 3impa axupdimlem6 mtbird sylibr ) INOZPIQRZISTZCUA
       ZHPIPUBRQRZOZUCZHDTZVPERZUDUEZUFVQUDUGVOVRMUHVPTZUDUEZMVJUIZVOVSUDUGZMVJ
       UJZWAUFZCDFGHIMKUKWCVTUFZMVJUJWDWBWEMVJVSUDULUMVTMVJUNUOUPVOVPVKOZVRWAUQ
       VIVLVNWFVIVLURZVMVKDUSZVNWFWGVMVKDUAWHCDFGIKUTVMVKDVAVBVMVKHDVCVDVEABVPE
       MIJLVFVBVGVQUDULVH @.
       @( [19-Apr-2014] @) @( [12-Aug-2013] @)
  @}

  @{
    @d A i j @.  @d B i j @.  @d C i j @.
    @( The upper dimension axiom for one-dimensional geometry.  In a
       one-dimensional space, all points are colinear.  Derived from remarks in
       _Tarski's System of Geometry_, Alfred Tarski and Steven Givant,
       Bulletin of Symbolic Logic, Volume 5, Number 2 (1999), 175-214.  Note
       the similarity to ~ axlowdim2 .  (Contributed by Scott Fenton,
       3-Jul-2013). @)
    axupdim1 @p |- ( ( A e. ( EE ` 1 ) /\ B e. ( EE ` 1 ) /\ C e. ( EE ` 1 ) )
       -> ( A Btwn <. B , C >. \/ B Btwn <. C , A >. \/
            C Btwn <. A , B >. ) ) @=
       ( vi vj c1 cee cfv wcel w3a cop cbtwn wbr w3o cv cmin co cmul wceq cfz
       wral csn cz 1z fzsn ax-mp eleq2i velsn bitri wa fveq2 oveq12d
       oveqan12d oveqan12rd eqtr4d syl2anb rgen2a colinearalg mpbiri ) AFGHZI
       BUTICUTIJABCKLMBCAKLMCABKLMNDOZBHZVAAHZPQZEOZCHZVEAHZPQZRQZVEBHZVGPQZVAC
       HZVCPQZRQZSZEFFTQZUADVPUAVODEVPVAVPIZVAFSZVEFSZVOVEVPIZVQVAFUBZIVRVPWAVA
       FUCIVPWASUDFUEUFZUGDFUHUIVTVEWAIVSVPWAVEWBUGEFUHUIVRVSUJVIFBHZFAHZPQZFCH
       ZWDPQZRQVNVRVSVDWEVHWGRVRVBWCVCWDPVAFBUKVAFAUKZULVSVFWFVGWDPVEFCUKVEFAUK
       ZULUMVSVRVKWEVMWGRVSVJWCVGWDPVEFBUKWIULVRVLWFVCWDPVAFCUKWHULUNUOUPUQABCD
       EFURUS @.
       @( [19-Apr-2014] @) @( [3-Jul-2013] @)
  @}

  @{
    @d N a b c p i @.  @d A a b c p i @.  @d B a b c p i @.  @d C a b c p i @.
    @d P i p @.
    @( The general upper dimension axiom for Euclidean geometry.  Given ` N `
       distinct points, the locus of all points equidistant from them forms a
       line in ` N ` dimensional geometry.  Derived from remarks in _Tarski's
       System of Geometry_, Alfred Tarski and Steven Givant, Bulletin of
       Symbolic Logic, Volume 5, Number 2 (1999), 175-214.  Note the similarity
       to ~ axlowdim . @)
    axupdim @p |- ( ( N e. ( ZZ>= ` 2 ) /\
      ( P : ( 1 ... N ) -1-1-> ( EE ` N ) /\ A e. ( EE ` N ) ) /\
      ( B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
      ( A. i e. ( 2 ... N ) ( <. ( P ` 1 ) , A >. Cgr <. ( P ` i ) , A >. /\
           <. ( P ` 1 ) , B >. Cgr <. ( P ` i ) , B >. /\
           <. ( P ` 1 ) , C >. Cgr <. ( P ` i ) , C >. ) ->
        ( A Btwn <. B , C >. \/ B Btwn <. C , A >. \/
          C Btwn <. A , B >. ) ) ) @= ? @.
      @( [19-Apr-2014] @) @( [12-Jul-2013] @)
  @}
  $)

  ${
    $d A i k r s u x y $.  $d B i k r s u x y $.  $d C i k r s u x y $.
    $d N i k r s u x y $.  $d P i k r s u x y $.  $d Q i k r s u x y $.
    $d T i k r s u x y $.
    $( Lemma for ~ axeuclid .  Handle the algebraic aspects of the theorem.
       (Contributed by Scott Fenton, 9-Sep-2013.) $)
    axeuclidlem $p |- (
      ( ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
          ( C e. ( EE ` N ) /\ T e. ( EE ` N ) ) ) /\
        ( P e. ( 0 [,] 1 ) /\ Q e. ( 0 [,] 1 ) /\ P =/= 0 ) /\
        A. i e. ( 1 ... N )
         ( ( ( 1 - P ) x. ( A ` i ) ) + ( P x. ( T ` i ) ) ) =
         ( ( ( 1 - Q ) x. ( B ` i ) ) + ( Q x. ( C ` i ) ) ) ) ->
      E. x e. ( EE ` N ) E. y e. ( EE ` N )
      E. r e. ( 0 [,] 1 ) E. s e. ( 0 [,] 1 ) E. u e. ( 0 [,] 1 )
      A. i e. ( 1 ... N )
       ( ( B ` i ) =
         ( ( ( 1 - r ) x. ( A ` i ) ) + ( r x. ( x ` i ) ) ) /\
         ( C ` i ) =
         ( ( ( 1 - s ) x. ( A ` i ) ) + ( s x. ( y ` i ) ) ) /\
         ( T ` i ) = (
         ( ( 1 - u ) x. ( x ` i ) ) + ( u x. ( y ` i ) ) ) ) ) $=
      ( wcel c1 co cmul caddc wceq wrex vk cee cfv wa cc0 cicc wne w3a cmin cfz
      cv wral simp21 simp22 cdiv cr fveere expcom anim12d impcom unitssre sseli
      cmpt 3ad2ant1 adantl peano2rem simplll remulcld simpllr readdcld redivcld
      syl simpr3 sylan an32s ralrimiva eleenn ad3antrrr mptelee 3adant3 simplrl
      cn wb mpbird wi cc fveecn eqcom ax-1cn simpr2 recnd subcl sylancr sylancl
      simpr1 mulcld addcld simplrr divmuld syl5bb cneg negsubdi2 mulneg1d npcan
      oveq1d adddird mulid2d 3eqtr3d oveq2d negsubd addcomd eqeq1d syl6bb add4d
      3eqtr3rd bitr4d adddid oveq12d eqtr4d divdird divassd 3eqtrd eqeq2d fveq1
      addassd addid2d divcan2d fveq2 eqid fvmpt sylan9eq oveq2 ralbidva ralbidv
      ovex oveq1 2rexbidv rexcom rexbii bitri subaddd 3bitr3rd biimpd mul02 jca
      npncan2 jctild df-3an syl6ibr ralimdva 3impia weq rspc2ev syl3anc 3anbi1d
      3anbi13d 3anbi23d 3anbi2d 3anbi3d rspc3ev syl31anc 3bitri sylib ) DKUBUCZ
[encoded data, 4800 characters]
      BUVLUVDYRYTYSUVBUVC $.
  $}

  ${
    $d A i p q r s u x y $.  $d B i p q r s u x y $.  $d C i p q r s u x y $.
    $d D i p q x y $.  $d N i p q r s u x y $.  $d T i p q r s u x y $.
    $( Euclid's axiom.  Take an angle ` B A C ` and a point ` D ` between ` B `
       and ` C ` .  Now, if you extend the segment ` A D ` to a point ` T ` ,
       then ` T ` lies between two points ` x ` and ` y ` that lie on the
       angle.  Axiom A10 of [Schwabhauser] p. 13.  (Contributed by Scott
       Fenton, 9-Sep-2013.) $)
    axeuclid $p |- ( ( N e. NN /\
                       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\
                         C e. ( EE ` N ) ) /\
                       ( D e. ( EE ` N ) /\ T e. ( EE ` N ) ) ) ->
     ( ( D Btwn <. A , T >. /\ D Btwn <. B , C >. /\ A =/= D ) ->
       E. x e. ( EE ` N ) E. y e. ( EE ` N )
         ( B Btwn <. A , x >. /\ C Btwn <. A , y >. /\
           T Btwn <. x , y >. ) ) ) $=
      ( vi vp vq wcel wa c1 co cmul caddc wceq cc0 wrex vr vs vu cn cee cfv w3a
      cv cmin cfz wral wne cicc cop wbr simpl21 simpl22 simpl23 simpl3r simprll
      cbtwn jca simprlr cc simp21 ad2antrr fveecn sylan simp3r mulid2 oveqan12d
      mul02 addid1 adantr eqtrd syl2anc oveq2 1m0e1 syl6eq oveq1d oveq1 oveq12d
      eqeq1d ad2antlr mpbird eqeq2d eqcom syl6bb biimpd adantrd ralimdva simp3l
      wb impancom eqeefv sylibrd necon3d impr anasss eqtr2 ad2antll axeuclidlem
      ralimi syl231anc exp32 brbtwn syl3anc simp22 simp23 r19.26 2rexbii reeanv
      rexlimdvv 3anbi12d bitri anbi1i r19.41vv df-3an 3bitr4i syl6bbr 3anbi123d
      simprl simprr r19.26-3 rexbii 3reeanv 2rexbidva 3imtr4d ) HUDLZCHUEUFZLZD
      YJLZEYJLZUGZFYJLZGYJLZMZUGZIUHZFUFZNJUHZUIOZYSCUFZPOZUUAYSGUFZPOZQOZRZYTN
      KUHZUIOYSDUFZPOUUIYSEUFZPOQOZRZMZINHUJOZUKZCFULZMZKSNUMOZTJUUSTZUUJNUAUHZ
      UIOUUCPOUVAYSAUHZUFZPOQORZUUKNUBUHZUIOUUCPOUVEYSBUHZUFZPOQORZUUENUCUHZUIO
      UVCPOUVIUVGPOQORZUGIUUOUKZUCUUSTZUBUUSTUAUUSTZBYJTAYJTZFCGUNVAUOZFDEUNVAU
      OZUUQUGZDCUVBUNVAUOZECUVFUNVAUOZGUVBUVFUNVAUOZUGZBYJTAYJTYRUURUVNJKUUSUUS
      YRUUAUUSLZUUIUUSLZMZUURUVNYRUWDUURMZMZYKYLMYMYPMUWBUWCUUASULZUUGUULRZIUUO
      UKZUVNUWFYKYLYKYLYMYIYQUWEUPYKYLYMYIYQUWEUQVBUWFYMYPYKYLYMYIYQUWEURYOYPYI
      YNUWEUSVBYRUWBUWCUURUTYRUWBUWCUURVCYRUWDUURUWGYRUWDMZUUPUUQUWGUWJUUPMZUUA
      SCFUWKUUASRZUUCYTRZIUUOUKZCFRZUWJUWLUUPUWNUWJUWLMZUUNUWMIUUOUWPYSUUOLZMZU
      UHUWMUUMUWRUUHUWMUWRUUHYTUUCRUWMUWRUUGUUCYTUWRUUGUUCRZNUUCPOZSUUEPOZQOZUU
      CRZUWRUUCVDLZUUEVDLZUXCUWPYKUWQUXDYRYKUWDUWLYIYKYLYMYQVEZVFCYSHVGVHUWPYPU
      WQUXEYRYPUWDUWLYIYNYOYPVIZVFGYSHVGVHUXDUXEMUXBUUCSQOZUUCUXDUXEUWTUUCUXASQ
      UUCVJUUEVLVKUXDUXHUUCRUXEUUCVMVNVOVPUWLUWSUXCWMUWJUWQUWLUUGUXBUUCUWLUUDUW
      TUUFUXAQUWLUUBNUUCPUWLUUBNSUIONUUASNUIVQVRVSVTUUASUUEPWAWBWCWDWEWFYTUUCWG
      WHWIWJWKWNUWKYKYOUWOUWNWMYRYKUWDUUPUXFVFYRYOUWDUUPYIYNYOYPWLZVFCFIHWOVPWP
      WQWRWSUURUWIYRUWDUUPUWIUUQUUNUWHIUUOYTUUGUULWTXCVNXAABUCCDEUUAUUIGIHUBUAX
      BXDXEXMYRUVQUUHIUUOUKZJUUSTZUUMIUUOUKZKUUSTZUUQUGZUUTYRUVOUXKUVPUXMUUQYRY
      OYKYPUVOUXKWMUXIUXFUXGJFCGIHXFXGYRYOYLYMUVPUXMWMUXIYIYKYLYMYQXHYIYKYLYMYQ
      XIKFDEIHXFXGXNUUPKUUSTJUUSTZUUQMUXKUXMMZUUQMUUTUXNUXOUXPUUQUXOUXJUXLMZKUU
      STJUUSTUXPUUPUXQJKUUSUUSUUHUUMIUUOXJXKUXJUXLJKUUSUUSXLXOXPUUPUUQJKUUSUUSX
      QUXKUXMUUQXRXSXTYRUWAUVMABYJYJYRUVBYJLZUVFYJLZMZMZUWAUVDIUUOUKZUAUUSTZUVH
      IUUOUKZUBUUSTZUVJIUUOUKZUCUUSTZUGZUVMUYAUVRUYCUVSUYEUVTUYGUYAYLYKUXRUVRUY
      CWMYKYLYMYIYQUXTUQYKYLYMYIYQUXTUPZYRUXRUXSYBZUADCUVBIHXFXGUYAYMYKUXSUVSUY
      EWMYKYLYMYIYQUXTURUYIYRUXRUXSYCZUBECUVFIHXFXGUYAYPUXRUXSUVTUYGWMYOYPYIYNU
      XTUSUYJUYKUCGUVBUVFIHXFXGYAUVMUYBUYDUYFUGZUCUUSTZUBUUSTUAUUSTUYHUVLUYMUAU
      BUUSUUSUVKUYLUCUUSUVDUVHUVJIUUOYDYEXKUYBUYDUYFUAUBUCUUSUUSUUSYFXOXTYGYH
      $.
  $}

  ${
    $d D s t x y $.  $d i j s t x y N $.  $d U i j s t x y $.
    $d i Z j s t x y $.
    axcontlem1.1 $e |- F = { <. x , t >. |
        ( x e. D /\ ( t e. ( 0 [,) +oo ) /\
           A. i e. ( 1 ... N )
            ( x ` i ) = ( ( ( 1 - t ) x. ( Z ` i ) ) +
                          ( t x. ( U ` i ) ) ) ) ) } $.
    $( Lemma for ~ axcont .  Change bound variables for later use.
       (Contributed by Scott Fenton, 20-Jun-2013.) $)
    axcontlem1 $p |- F = { <. y , s >. |
        ( y e. D /\ ( s e. ( 0 [,) +oo ) /\
           A. j e. ( 1 ... N )
            ( y ` j ) = ( ( ( 1 - s ) x. ( Z ` j ) ) +
                          ( s x. ( U ` j ) ) ) ) ) } $=
      ( cv wcel co cfv c1 cmul caddc wa cc0 cpnf cico cmin wceq cfz wral weq wb
      copab eleq1 adantr adantl fveq1 oveq2 oveq1d oveq1 oveq12d ralbidv oveq2d
      eqeqan12d fveq2 eqeq12d cbvralv syl6bb anbi12d cbvopabv eqtri ) HAMZDNZCM
      ZUAUBUCOZNZFMZVIPZQVKUDOZVNJPZROZVKVNEPZROZSOZUEZFQIUFOZUGZTZTZACUJBMZDNZ
      KMZVLNZGMZWGPZQWIUDOZWKJPZROZWIWKEPZROZSOZUEZGWCUGZTZTZBKUJLWFXBACBKABUHZ
      CKUHZTZVJWHWEXAXCVJWHUIXDVIWGDUKULXEVMWJWDWTXDVMWJUIXCVKWIVLUKUMXEWDVNWGP
      ZWMVQROZWIVSROZSOZUEZFWCUGWTXEWBXJFWCXCXDVOXFWAXIVNVIWGUNXDVRXGVTXHSXDVPW
      MVQRVKWIQUDUOUPVKWIVSRUQURVAUSXJWSFGWCFGUHZXFWLXIWRVNWKWGVBXKXGWOXHWQSXKV
      QWNWMRVNWKJVBUTXKVSWPWIRVNWKEVBUTURVCVDVEVFVFVGVH $.
  $}

  ${
    $d Z k p x y t s i $.  $d U k p x y t s i $.  $d N k p x y s t i $.
    $d D k x y t $.
    axcontlem2.1 $e |- D = { p e. ( EE ` N ) |
       ( U Btwn <. Z , p >. \/ p Btwn <. Z , U >. ) } $.
    axcontlem2.2 $e |- F = { <. x , t >. |
        ( x e. D /\ ( t e. ( 0 [,) +oo ) /\
           A. i e. ( 1 ... N )
            ( x ` i ) = ( ( ( 1 - t ) x. ( Z ` i ) ) +
                          ( t x. ( U ` i ) ) ) ) ) } $.
    $( Lemma for ~ axcont .  The idea here is to set up a mapping ` F ` that
       will allow us to transfer ~ dedekind to two sets of points.  Here, we
       set up ` F ` and show its domain and range.  (Contributed by Scott
       Fenton, 17-Jun-2013.) $)
    axcontlem2 $p |-
       ( ( ( N e. NN /\ Z e. ( EE ` N ) /\ U e. ( EE ` N ) ) /\ Z =/= U ) ->
         F : D -1-1-onto-> ( 0 [,) +oo ) ) $=
      ( wcel wa cc0 co c1 cmul caddc wceq wral vs vy vk cfv w3a wne wfn ccnv cv
      cmin weu wreu wrex weq wi cop cbtwn wbr opeq2 breq2d breq1 orbi12d elrab2
      wo simpll3 simpll2 simpr brbtwn syl3anc biimpa simp-4r oveq2 oveq1d oveq1
      wb oveq12d eqeq2d ralbidv adantr eqeefv syl2anc cc ad2antrr fveecn mulid2
      sylancom mul02 eqtrd ralbidva syl5ibr mpd cdiv cr cle 0re 1re elicc2i clt
      sylan 0le1 mpanl12 elrege0 sylanbrc adantll recnd simplr ad3antrrr ax-1cn
      ad3antlr reccl subcl sylancr mpan mulcld simprr simpl subdi mp3an2 oveq2d
      adddird mulid1d recid2 mulassd 3eqtr3rd simpll simprl eqtr3d mulcl syl2an
      ad2antll addassd ralrimiva rspcev ralimi syl simplbi adantl sylib mpbird
      copab cn cee cpnf cico wf1o cfz cicc 1m0e1 syl6eq biimpac eqcom oveqan12d
      simpllr addid1 bitr4d syl5bb expdimp necon3d simp1bi divge0 mp3an3 addcld
      rereccl simp2bi ne0gt0d addsubass npcan subeq0bd sylan9eq ad2ant2r adddid
      3eqtr2d eqtr4d addid2 ad2antrl syl22anc ralbi rexbidv syl5ibrcom impancom
      syldan wss 3simpa 3imtr4i ssriv ssrexv mpsyl jaodan anasss sylan2b r19.26
      r19.29an eqtr2 sylbir anim12i simpl2 simpl3 ad2ant2rl ad2ant2l addsubeq4d
      nnncan1 mp3an1 ad2antlr subdird eqeq12d mulcan1g 3bitr2d syl12anc r19.32v
      ancoms wn neneqd mtbid subeq0 sylibd syl5bi sylbid sylan2 syl5 ralrimivva
      orel2 reu4 df-reu fnopabg fveere resubcl remulcl 3adant3 3adant2 readdcld
      cmpt simpll1 mptelee 0red 1red 0lt1 a1i ltletrd divelunit gt0ne0d 3eqtr3d
      letric eqeltrd npncan2 3eqtr2rd fveq2 eqid ovex fvmpt ralbiia syl6bb 3jca
      anbi1i rgen sylancl orim12d fveq1 eqeq1d crab ssrab2 eqsstri sseli bitr3i
      ex eqtr3 an12 opabbii eqtri cnveqi cnvopab dff1o4 ) GUUALZHGUUBUDZLZDVVML
[encoded data, 8400 characters]
      CVWAFVVKXC $.
  $}

  ${
    $d A p x $.  $d B p x y $.  $d N p x y $.  $d U p x y $.  $d Z p x y $.
    axcontlem3.1 $e |- D = { p e. ( EE ` N ) |
       ( U Btwn <. Z , p >. \/ p Btwn <. Z , U >. ) } $.
    $( Lemma for ~ axcont .  Given the separation assumption, ` B ` is a subset
       of ` D ` .  (Contributed by Scott Fenton, 18-Jun-2013.) $)
    axcontlem3 $p |- ( (
       ( N e. NN /\ ( A C_ ( EE ` N ) /\ B C_ ( EE ` N ) /\
                      A. x e. A A. y e. B x Btwn <. Z , y >. ) ) /\
        ( Z e. ( EE ` N ) /\ U e. A /\ Z =/= U ) ) ->
       B C_ D ) $=
      ( cn wcel wss cv cop cbtwn wbr wral w3a wa cee cfv wne wo simplr2 simplr3
      simpr2 anim1i adantr breq1 opeq2 breq2d rspc2v sylc orcd ralrimiva sseq2i
      weq crab ssrab bitri sylanbrc ) GKLZCGUAUBZMZDVDMZANZHBNZOZPQZBDRACRZSTZH
      VDLZFCLZHFUCZSZTZVFFHINZOZPQZVRHFOPQZUDZIDRZDEMZVEVFVKVCVPUEVQWBIDVQVRDLZ
      TZVTWAWFVNWETVKVTVQVNWEVLVMVNVOUGUHVQVKWEVEVFVKVCVPUFUIVJVTFVIPQABFVRCDVG
      FVIPUJBIURVIVSFPVHVRHUKULUMUNUOUPWDDWBIVDUSZMVFWCTEWGDJUQWBIVDDUTVAVB $.
  $}

  ${
    $d A b i r t p x $.  $d B b i r t p x y $.  $d N b i r s t p x y $.
    $d U b i r s t p x y $.  $d b i r s t p y $.  $d Z b i r s t $.
    $d Z p x y $.
    axcontlem4.1 $e |- D = { p e. ( EE ` N ) |
       ( U Btwn <. Z , p >. \/ p Btwn <. Z , U >. ) } $.
    $( Lemma for ~ axcont .  Given the separation assumption, ` A ` is a subset
       of ` D ` .  (Contributed by Scott Fenton, 18-Jun-2013.) $)
    axcontlem4 $p |- ( (
       ( N e. NN /\ ( A C_ ( EE ` N ) /\ B C_ ( EE ` N ) /\
                      A. x e. A A. y e. B x Btwn <. Z , y >. ) ) /\
        ( ( Z e. ( EE ` N ) /\ U e. A /\ B =/= (/) ) /\ Z =/= U ) ) ->
       A C_ D ) $=
      ( vi wcel wral wa wceq c1 co cmul caddc cc0 vb vt vs vr cn cee cfv wss cv
      cop cbtwn wbr w3a c0 wne wo simplr1 wi wex n0 idd ssel adantr simp2 breq1
      rspccva sylan cmin wrex ralimi oveq2 oveq1d oveq1 oveq12d ralbidv syl2anc
      eqeq1d wb cc fveecn ad2antrr sylancom eqtrd mpd simp2l cle cr 0re elicc2i
      1re simp1bi syl cdiv clt simp2bi simp3 ne0gt0d ltletrd divelunit syl22anc
      0red simp13 recnd simplr divcl adantl ax-1cn simpr2 sylancr simpll mulcld
      subcl adddid oveq2d addassd adddird mp3an2 mulid1d divcan1 npncan mulassd
      subdi simp1 mp3an1 eqtr3d 3eqtr2rd syl23anc ralrimiva eqeq2d rspcev ex id
      r19.43 ralbi orbi12d 3expia brbtwn syl3anc bitri syl6bbr breq2d 3anim123d
      com12 opeq2 rspcv ralimdv anim2d simplr2 sseldd simpr3 syl2an jca32 sylib
      jca sselda an4 cfz cicc simpl2r simpl eqcom syl6eq syl5bb biimpac simpl2l
      1m0e1 simpl3l eqeefv simp1r mulid2 mul02 oveqan12d addid1 ralbidva bitr4d
      syl5ibr expdimp sylan2 necon3d simp1l simp2r letrid mpbird simp12 simpll3
      3jca simpr gt0ne0d biimpar simp112 simp113 simp12r simp12l eqtr2d 3eqtrrd
      3eqtr3rd 3expa orim12d syl6ibr eqeqan12d eqeqan12rd syl5ibrcom rexlimdvva
      rexbidv com23 simp3l simp3r anbi12d r19.26 2rexbii reeanv 3imtr4d sylanl2
      imp impd 3adantr2 3exp2 syl6 exlimiv sylbi com4l 3impd imp32 sseq2i ssrab
      crab sylanbrc ) GUELZCGUFUGZUHZDUYIUHZAUIZHBUIZUJZUKULZBDMZACMZUMZNZHUYIL
[encoded data, 6240 characters]
      UYEYSUYG $.
  $}

  ${
    $d t D x $.  $d i p t x N $.  $d P i $.  $d t p $.  $d t P $.  $d x p $.
    $d x P $.  $d x T i t $.  $d U i p t x $.  $d i Z p t x $.
    axcontlem5.1 $e |- D = { p e. ( EE ` N ) |
       ( U Btwn <. Z , p >. \/ p Btwn <. Z , U >. ) } $.
    axcontlem5.2 $e |- F = { <. x , t >. |
        ( x e. D /\ ( t e. ( 0 [,) +oo ) /\
           A. i e. ( 1 ... N )
            ( x ` i ) = ( ( ( 1 - t ) x. ( Z ` i ) ) +
                          ( t x. ( U ` i ) ) ) ) ) } $.
    $( Lemma for ~ axcont .  Compute the value of ` F ` .  (Contributed by
       Scott Fenton, 18-Jun-2013.) $)
    axcontlem5 $p |- ( ( ( ( N e. NN /\ Z e. ( EE ` N ) /\ U e. ( EE ` N ) )
       /\ Z =/= U ) /\ P e. D ) -> ( ( F ` P ) = T <->
         ( T e. ( 0 [,) +oo ) /\
           A. i e. ( 1 ... N ) ( P ` i ) =
              ( ( ( 1 - T ) x. ( Z ` i ) ) + ( T x. ( U ` i ) ) ) ) ) ) $=
      ( wcel cfv wa co wceq c1 cmul cn cee w3a wne cc0 cpnf cico cmin caddc cfz
      cv wral wf1o wf axcontlem2 f1of syl ffvelrnda eleq1 syl5ibcom wi simpl wb
      a1i wbr wfn f1ofn fnbrfvb sylan 3adant3 fveq1 eqeq1d ralbidv anbi2d oveq2
      anbi12d oveq1d oveq1 eqeq2d anass anidm anbi2i bitr2i anbi1i syl6bb brabg
      oveq12d 3bitr3i bianabs 3adant1 bitrd 3expia pm5.21ndd ) IUANJIUBOZNFWNNU
      CJFUDPZDCNZPZEUEUFUGQZNZDHOZERZWSGUKZDOZSEUHQZXBJOZTQZEXBFOZTQZUIQZRZGSIU
      JQZULZPZWQWTWRNXAWSWOCWRDHWOCWRHUMZCWRHUNABCFGHIJKLMUOZCWRHUPUQURWTEWRUSU
      TXMWSVAWQWSXLVBVDWOWPWSXAXMVCWOWPWSUCXADEHVEZXMWOWPXAXPVCZWSWOHCVFZWPXQWO
      XNXRXOCWRHVGUQCDEHVHVIVJWPWSXPXMVCWOWPWSPZXPXMAUKZCNZBUKZWRNZXBXTOZSYBUHQ
      ZXETQZYBXGTQZUIQZRZGXKULZPZPWPYCXCYHRZGXKULZPZPZXSXMPZABDECWRHXTDRZYAWPYK
      YNXTDCUSYQYJYMYCYQYIYLGXKYQYDXCYHXBXTDVKVLVMVNVPYBERZYOWPXMPZYPYRYNXMWPYR
      YCWSYMXLYBEWRUSYRYLXJGXKYRYHXIXCYRYFXFYGXHUIYRYEXDXETYBESUHVOVQYBEXGTVRWG
      VSVMVPVNXSXLPXSWSPZXLPYSYPXSYTXLYTWPWSWSPZPXSWPWSWSVTUUAWSWPWSWAWBWCWDWPW
      SXLVTXSWSXLVTWHWEMWFWIWJWKWLWM $.

    ${
      $d D s $.  $d D y $.  $d F i j s $.  $d F y $.  $d i y $.  $d j p $.
      $d j t $.  $d j x $.  $d j y $.  $d N j s $.  $d N y $.  $d P j s $.
      $d p s $.  $d p y $.  $d P y $.  $d s t $.  $d s x $.  $d s y $.
      $d t y $.  $d U j $.  $d U s $.  $d U y $.  $d x y $.  $d Z j $.
      $d Z s $.  $d Z y $.
      $( Lemma for ~ axcont .  State the defining properties of the value of
         ` F ` .  (Contributed by Scott Fenton, 19-Jun-2013.) $)
      axcontlem6 $p |- ( ( ( ( N e. NN /\ Z e. ( EE ` N ) /\ U e. ( EE ` N )
            )
       /\ Z =/= U ) /\ P e. D ) -> ( ( F ` P ) e. ( 0 [,) +oo ) /\
           A. i e. ( 1 ... N ) ( P ` i ) =
              ( ( ( 1 - ( F ` P ) ) x. ( Z ` i ) ) +
                  ( ( F ` P ) x. ( U ` i ) ) )
              ) ) $=
        ( vj wcel cfv wa co cmul caddc wceq vy vs cn cee w3a wne cc0 cpnf cv c1
        cico cmin wral axcontlem1 axcontlem5 mpbii fveq2 oveq2d oveq12d eqeq12d
        cfz eqid cbvralv anbi2i sylib ) HUCNIHUDOZNEVFNUEIEUFPDCNPZDGOZUGUHUKQN
        ZMUIZDOZUJVHULQZVJIOZRQZVHVJEOZRQZSQZTZMUJHVAQZUMZPZVIFUIZDOZVLWBIOZRQZ
        VHWBEOZRQZSQZTZFVSUMZPVGVHVHTWAVHVBUAUBCDVHEMGHIJKAUABCEFMGHIUBLUNUOUPV
        TWJVIVRWIMFVSVJWBTZVKWCVQWHVJWBDUQWKVNWEVPWGSWKVMWDVLRVJWBIUQURWKVOWFVH
        RVJWBEUQURUSUTVCVDVE $.
    $}
  $}

  ${
    $d t D x $.  $d i F t $.  $d i p t x N $.  $d P i $.  $d t p $.  $d t P $.
    $d x p $.  $d x P $.  $d Q i t x $.  $d U i p t x $.  $d i Z p t x $.
    axcontlem7.1 $e |- D = { p e. ( EE ` N ) |
       ( U Btwn <. Z , p >. \/ p Btwn <. Z , U >. ) } $.
    axcontlem7.2 $e |- F = { <. x , t >. |
        ( x e. D /\ ( t e. ( 0 [,) +oo ) /\
           A. i e. ( 1 ... N )
            ( x ` i ) = ( ( ( 1 - t ) x. ( Z ` i ) ) +
                          ( t x. ( U ` i ) ) ) ) ) } $.
    $( Lemma for ~ axcont .  Given two points in ` D ` , one preceeds the other
       iff its scaling constant is less than the other point's.  (Contributed
       by Scott Fenton, 18-Jun-2013.) $)
    axcontlem7 $p |- ( ( ( ( N e. NN /\ Z e. ( EE ` N ) /\ U e. ( EE ` N ) )
       /\ Z =/= U ) /\ ( P e. D /\ Q e. D ) ) ->
          ( P Btwn <. Z , Q >. <-> ( F ` P ) <_ ( F ` Q ) ) ) $=
      ( wcel wa c1 co cmul wceq cc0 cn cee cfv w3a wne cop cbtwn wbr cmin caddc
      cv cfz wral cicc wrex wb wo crab ssrab2 eqsstri ad2antrl simpll2 ad2antll
      cle sseli brbtwn syl3anc cpnf cico axcontlem6 anim12dan an4 r19.26 anbi2i
      bitr4i id oveq2 oveq2d eqeqan12d ralimi ralbi syl rexbidv cc fveecn sylan
      simpll3 cr 0re elicc2i simp1bi recnd adantr elrege0 simplbi adantl ax-1cn
      1re simpr1 simpr3 mulcld subcl sylancr mpan simpll subdird simpr2 nnncan1
      3ad2ant2 mp3an1 syl2anc oveq1d subdi mp3an2 mulid1 npncan eqtr2d 3ad2ant1
      3ad2ant3 adddird mulassd 3eqtrd 3eqtr3d simplr eqeq12d addsubeq4d addassd
      addcld adddid eqtr4d eqeq2d 3bitr2rd syl23anc ralbidva ad2antlr wi rspcev
      eqtrd oveq1 bitrd subcld mulcan1g r19.32v wn neneqd biorf syl6bb subeq0ad
      eqeefv 3adant1 orbi2d 3bitr3rd syl5bb 3bitrd anassrs rexbidva 1red biimpi
      orcom simp3bi lemul1a syl31anc mulid2d breqtrd breq1 syl5ibrcom rexlimdva
      0elunit simpl mul02d adantrl a1d ex cdiv simp3 simprbi 0red simp1 ne0gt0d
      clt ltletrd divelunit syl22anc mpbird gt0ne0d divcan1d eqcomd 3exp impbid
      pm2.61ine sylan9bbr anasss sylan2b syldan ) IUANZJIUBUCZNZFUWPNZUDZJFUEZO
      ZDCNZECNZOZOZDJEUFUGUHZGUKZDUCZPBUKZUIQZUXGJUCZRQZUXIUXGEUCZRQZUJQZSZGPIU
      LQZUMZBTPUNQZUOZDHUCZEHUCZVDUHZUXEDUWPNZUWQEUWPNZUXFUXTUPUXBUYDUXAUXCCUWP
      DCFJKUKZUFUGUHUYFJFUFUGUHUQZKUWPURUWPLUYGKUWPUSUTZVEVAUWOUWQUWRUWTUXDVBUX
      CUYEUXAUXBCUWPEUYHVEVCBDJEGIVFVGUXAUXDUYATVHVIQZNZUXHPUYAUIQZUXKRQZUYAUXG
      FUCZRQZUJQZSZGUXQUMZOZUYBUYINZUXMPUYBUIQZUXKRQZUYBUYMRQZUJQZSZGUXQUMZOZOZ
      UXTUYCUPZUXAUXBUYRUXCVUFABCDFGHIJKLMVJABCEFGHIJKLMVJVKVUGUXAUYJUYSOZUYPVU
      DOZGUXQUMZOZVUHVUGVUIUYQVUEOZOVULUYJUYQUYSVUEVLVUKVUMVUIUYPVUDGUXQVMVNVOU
      XAVUIVUKVUHVUKUXTUYOUXLUXIVUCRQZUJQZSZGUXQUMZBUXSUOZUXAVUIOZUYCVUKUXRVUQB
      UXSVUKUXPVUPUPZGUXQUMUXRVUQUPVUJVUTGUXQUYPVUDUXHUYOUXOVUOUYPVPVUDUXNVUNUX
      LUJUXMVUCUXIRVQVRVSVTUXPVUPGUXQWAWBWCVUSVURUYAUXIUYBRQZSZBUXSUOZUYCVUSVUQ
      VVBBUXSUXAVUIUXIUXSNZVUQVVBUPUXAVUIVVDOZOZVUQUYAVVAUIQZUXKRQZVVGUYMRQZSZG
      UXQUMVVGTSZUXKUYMSZUQZGUXQUMZVVBVVFVUPVVJGUXQVVFUXGUXQNZOZUXKWDNZUYMWDNZU
      XIWDNZUYAWDNZUYBWDNZVUPVVJUPVVFUWQVVOVVQUWOUWQUWRUWTVVEVBJUXGIWEWFZVVFUWR
      VVOVVRUWOUWQUWRUWTVVEWGFUXGIWEWFZVVFVVSVVOVVDVVSUXAVUIVVDUXIVVDUXIWHNZTUX
      IVDUHZUXIPVDUHZTPUXIWIWRWJZWKZWLVCZWMZVVFVVTVVOVUIVVTUXAVVDUYJVVTUYSUYJUY
      AUYJUYAWHNZTUYAVDUHZUYAWNZWOZWLWMZVAZWMZVVFVWAVVOVUIVWAUXAVVDUYSVWAUYJUYS
      UYBUYSUYBWHNZTUYBVDUHZUYBWNZWOZWLZWPZVAZWMZVVQVVROZVVSVVTVWAUDZOZVVJUXLUX
      IVUARQZUJQZUYLUIQZUYNUXIVUBRQZUIQZSUYOVXJVXLUJQZSVUPVXHVVHVXKVVIVXMVXHPVV
      AUIQZUYKUIQZUXKRQVXOUXKRQZUYLUIQVVHVXKVXHVXOUYKUXKVXHPWDNZVVAWDNZVXOWDNWQ
      VXHUXIUYBVXFVVSVVTVWAWSZVXFVVSVVTVWAWTZXAZPVVAXBXCVXGUYKWDNZVXFVVTVVSVYCV
      WAVXRVVTVYCWQPUYAXBXDXIWPZVVQVVRVXGXEZXFVXHVXPVVGUXKRVXHVXSVVTVXPVVGSZVYB
      VXFVVSVVTVWAXGZVXRVXSVVTVYFWQPVVAUYAXHXJXKXLVXHVXQVXJUYLUIVXHVXQUXJUXIUYT
      RQZUJQZUXKRQUXLVYHUXKRQZUJQVXJVXHVXOVYIUXKRVXHVYIUXJUXIVVAUIQZUJQZVXOVXHV
      YHVYKUXJUJVXHVVSVWAVYHVYKSVXTVYAVVSVWAOZVYHUXIPRQZVVAUIQZVYKVVSVXRVWAVYHV
      YOSWQUXIPUYBXMXNVYMVYNUXIVVAUIVVSVYNUXISVWAUXIXOWMXLYRXKVRVXHVVSVXSVYLVXO
      SZVXTVYBVXRVVSVXSVYPWQPUXIVVAXPXJXKXQXLVXHUXJVYHUXKVXGUXJWDNZVXFVVSVVTVYQ
      VWAVXRVVSVYQWQPUXIXBXDXRWPZVXHUXIUYTVXTVXGUYTWDNZVXFVWAVVSVYSVVTVXRVWAVYS
      WQPUYBXBXDXSWPZXAVYEXTVXHVYJVXIUXLUJVXHUXIUYTUXKVXTVYTVYEYAVRYBXLYCVXHVVI
      UYNVVAUYMRQZUIQVXMVXHUYAVVAUYMVYGVYBVVQVVRVXGYDZXFVXHWUAVXLUYNUIVXHUXIUYB
      UYMVXTVYAWUBYAVRYRYEVXHUYLUYNVXJVXLVXHUYKUXKVYDVYEXAVXHUYAUYMVYGWUBXAVXHU
      XLVXIVXHUXJUXKVYRVYEXAZVXHUXIVUAVXTVXHUYTUXKVYTVYEXAZXAZYHVXHUXIVUBVXTVXH
      UYBUYMVYAWUBXAZXAZYFVXHVXNVUOUYOVXHVXNUXLVXIVXLUJQZUJQVUOVXHUXLVXIVXLWUCW
      UEWUGYGVXHVUNWUHUXLUJVXHUXIVUAVUBVXTWUDWUFYIVRYJYKYLYMYNVVFVVJVVMGUXQVVPV
      VGWDNVVQVVRVVJVVMUPVVPUYAVVAVWQVVPUXIUYBVWJVXEXAUUAVWBVWCVVGUXKUYMUUBVGYN
      VVNVVKVVLGUXQUMZUQZVVFVVBVVKVVLGUXQUUCVVFVVKVVKJFSZUQZVVBWUJVVFWUKUUDZVVK
      WULUPVVFJFUWSUWTVVEYDUUEWUMVVKWUKVVKUQWULWUKVVKUUFWUKVVKUUSUUGWBVVFUYAVVA
      VWPVVFUXIUYBVWIVXDXAUUHVVFWUKWUIVVKUXAWUKWUIUPZVVEUWSWUNUWTUWQUWRWUNUWOJF
      GIUUIUUJWMWMUUKUULUUMUUNUUOUUPVUIVVCUYCUPUXAVUIVVCUYCVUIVVBUYCBUXSVVEUYCV
      VBVVAUYBVDUHVVEVVAPUYBRQZUYBVDVVEVWDPWHNVWRVWSOZVWFVVAWUOVDUHVVDVWDVUIVWH
      WPVVEUUQUYSWUPUYJVVDUYSWUPVWTUURYOVVDVWFVUIVVDVWDVWEVWFVWGUUTWPUXIPUYBUVA
      UVBVVEUYBUYSVWAUYJVVDVXBYOUVCUVDUYAVVAUYBVDUVEUVFUVGVUIUYCVVCYPZYPUYATUYA
      TSZVUIWUQWURVUIOVVCUYCWURUYSVVCUYJWURUYSOZTUXSNUYATUYBRQZSZVVCUVHWUSUYATW
      UTWURUYSUVIUYSWUTTSWURUYSUYBVXBUVJWPYJVVBWVABTUXSUXITSVVAWUTUYAUXITUYBRYS
      YKYQXCUVKUVLUVMUYATUEZVUIUYCVVCWVBVUIUYCUDZUYAUYBUVNQZUXSNZUYAWVDUYBRQZSZ
      VVCWVCWVEUYCWVBVUIUYCUVOZWVCVWKVWLVWRTUYBUVTUHWVEUYCUPVUIWVBVWKUYCUYJVWKU
      YSVWNWMXIZVUIWVBVWLUYCUYJVWLUYSUYJVWKVWLVWMUVPWMXIZVUIWVBVWRUYCUYSVWRUYJV
      XAWPXIZWVCTUYAUYBWVCUVQWVIWVKWVCUYAWVIWVJWVBVUIUYCUVRUVSWVHUWAZUYAUYBUWBU
      WCUWDWVCWVFUYAWVCUYAUYBVUIWVBVVTUYCVWOXIVUIWVBVWAUYCVXCXIWVCUYBWVLUWEUWFU
      WGVVBWVGBWVDUXSUXIWVDSVVAWVFUYAUXIWVDUYBRYSYKYQXKUWHUWJUWIWPYTUWKUWLUWMUW
      NYT $.
  $}

  ${
    $d D p t x $.  $d F p i t $.  $d x i N p t $.  $d P i p t x $.
    $d Q i p t x $.  $d R i p t x $.  $d U i p t x $.  $d i Z p t x $.
    $d i F t $.
    axcontlem8.1 $e |- D = { p e. ( EE ` N ) |
       ( U Btwn <. Z , p >. \/ p Btwn <. Z , U >. ) } $.
    axcontlem8.2 $e |- F = { <. x , t >. |
        ( x e. D /\ ( t e. ( 0 [,) +oo ) /\
           A. i e. ( 1 ... N )
            ( x ` i ) = ( ( ( 1 - t ) x. ( Z ` i ) ) +
                          ( t x. ( U ` i ) ) ) ) ) } $.
    $( Lemma for ~ axcont .  A point in ` D ` is between two others if its
       function value falls in the middle.  (Contributed by Scott Fenton,
       18-Jun-2013.) $)
    axcontlem8 $p |- ( ( ( ( N e. NN /\ Z e. ( EE ` N ) /\ U e. ( EE ` N ) )
       /\ Z =/= U ) /\ ( P e. D /\ Q e. D /\ R e. D ) ) ->
          ( ( ( F ` P ) <_ ( F ` Q ) /\ ( F ` Q ) <_ ( F ` R ) ) ->
            Q Btwn <. P , R >. ) ) $=
      ( wcel c1 cmin co cmul caddc cn cee cfv w3a wne wa cle wbr cop cbtwn wceq
      cv cfz wral cc0 cicc wrex cpnf cico axcontlem6 ex 3anim123d imp adantr wi
      3an6 0elunit cc cr simplr1 ad2antlr elrege0 simplbi recnd simprrl simprrr
      syl simpl breqtrrd simplr2 letri3d simpll simpll2 fveecn sylancom simpll3
      mpbir2and ax-1cn subcl sylancr simprl mulcld mulcl adantrl addcld mulid2d
      mul02d oveq12d addid1d eqtr2d 3adant2 oveq2 oveq1d oveq1 oveq2d eqeqan12d
      3ad2ant2 mpbid syl122anc ralrimiva 1m0e1 eqeq2d ralbidv rspcev adantl clt
      cdiv resubcld mpbird necomd ad2antrl sylan subcld divdird mulid1d mulcomd
      eqtrd subdi mp3an2 syl2anc subdird divmuld div23d 3eqtr3d adddird mulassd
      wb 3eqtr4rd adddid sseli syl6eq simplr3 lesub1dd subge0d ltlend divelunit
      letrd posdifd syl22anc simp2r simp2l simp1l simp1r subne0d subdid npncand
      addsub4d npncan3d 3eqtr2d divsubdird nnncan2d dividd divcld simp3l simp3r
      3eqtr4d add4d eqtr4d syl222anc pm2.61ine r19.26-3 simp2 oveqan12d eqeq12d
      ralimi ralbi rexbidv biimprcd syl5bir an32s expimpd adantlr syl5bi simpl1
      mpd wo crab ssrab2 eqsstri 3anim123i 3com12 brbtwn syl2an ) JUAOZKJUBUCZO
[encoded data, 6080 characters]
      PYTUWJUWKWYMWYIUWNBEDFHJUWLXOUWMVDXSVA $.
  $}

  ${
    $d A m n p x $.  $d B m n p x y $.  $d t D x $.  $d i F $.  $d m F $.
    $d t F $.  $d i p t x $.  $d m n x y $.  $d i N $.  $d m N n p $.
    $d t N $.  $d x n N y $.  $d t p x $.  $d y p $.  $d x t $.  $d U i $.
    $d U m n p $.  $d t U x $.  $d y U x $.  $d i Z $.  $d m Z n p $.
    $d t Z x $.  $d y Z $.  $d F p m $.  $d n p $.  $d A a b $.  $d B a b $.
    $d F a b $.  $d D a b $.  $d i a b $.  $d x a b $.  $d y a b $.
    $d m a b $.  $d n a b $.  $d t a b $.  $d N a b $.  $d U a b $.
    $d Z a b $.
    axcontlem9.1 $e |- D = { p e. ( EE ` N ) |
       ( U Btwn <. Z , p >. \/ p Btwn <. Z , U >. ) } $.
    axcontlem9.2 $e |- F = { <. x , t >. |
        ( x e. D /\ ( t e. ( 0 [,) +oo ) /\
           A. i e. ( 1 ... N )
            ( x ` i ) = ( ( ( 1 - t ) x. ( Z ` i ) ) +
                          ( t x. ( U ` i ) ) ) ) ) } $.
    $( Lemma for ~ axcont .  Given the separation assumption, all values of
       ` F ` over ` A ` are less than or equal to all values of ` F ` over
       ` B ` .  (Contributed by Scott Fenton, 20-Jun-2013.) $)
    axcontlem9 $p |- ( ( ( N e. NN /\ ( A C_ ( EE ` N ) /\ B C_ ( EE ` N ) /\
                      A. x e. A A. y e. B x Btwn <. Z , y >. ) ) /\
        ( ( Z e. ( EE ` N ) /\ U e. A /\ B =/= (/) )
          /\ Z =/= U ) ) -> A. n e. ( F " A ) A. m e. ( F " B ) n <_ m ) $=
      ( va vb wcel wa cn cee cfv wss cv cop cbtwn wbr wral w3a c0 wne cima wceq
      cle wrex cc0 cpnf cico co wf1o wfun simpll simprl1 simplr1 simprl2 sseldd
      wi simprr axcontlem2 syl31anc f1ofun fvelima ex 3syl reeanv simplr3 breq1
      opeq2 breq2d rspc2v mpan9 wb simplll adantr 3jca simplrr axcontlem4 sseld
      simpl axcontlem3 syl13anc anim12d imp axcontlem7 syl21anc mpbid syl5ibcom
      breq12 rexlimdvva syl5bir syl2and ralrimivv ) LUASZDLUBUCZUDZEXEUDZAUEZMB
      UEZUFZUGUHZBEUIADUIZUJZTZMXESZGDSZEUKULZUJZMGULZTZTZJUEZIUEZUOUHZJIKDUMZK
      EUMZYAYBYESZQUEZKUCZYBUNZQDUPZYCYFSZRUEZKUCZYCUNZREUPZYDYAFUQURUSUTZKVAZK
      VBZYGYKVHYAXDXOGXESZXSYRXDXMXTVCXOXPXQXSXNVDZYADXEGXFXGXLXDXTVEXOXPXQXSXN
      VFZVGZXNXRXSVIZACFGHKLMNOPVJVKZFYQKVLZYSYGYKQYBDKVMVNVOYAYRYSYLYPVHUUEUUF
      YSYLYPRYCEKVMVNVOYKYPTYJYOTZREUPQDUPYAYDYJYOQRDEVPYAUUGYDQRDEYAYHDSZYMESZ
      TZTZYIYNUOUHZUUGYDUUKYHMYMUFZUGUHZUULYAXLUUJUUNXFXGXLXDXTVQXKUUNYHXJUGUHA
      BYHYMDEXHYHXJUGVRXIYMUNXJUUMYHUGXIYMMVSVTWAWBUUKXDXOYTUJXSYHFSZYMFSZTZUUN
      UULWCUUKXDXOYTXDXMXTUUJWDYAXOUUJUUAWEYAYTUUJUUCWEWFXNXRXSUUJWGYAUUJUUQYAU
      UHUUOUUIUUPYADFYHABDEFGLMNOWHWIYAEFYMYAXNXOXPXSEFUDXNXTWJUUAUUBUUDABDEFGL
      MNOWKWLWIWMWNACFYHYMGHKLMNOPWOWPWQYIYBYNYCUOWSWRWTXAXBXC $.
  $}

  ${
    $d A b p x $.  $d B b p x y $.  $d D p t x $.  $d F b $.  $d i F p t x $.
    $d y F $.  $d i p t x $.  $d N b $.  $d i N p t x $.  $d y N $.
    $d t p x $.  $d y p $.  $d x t $.  $d U b $.  $d U i p t x $.  $d y U x $.
    $d Z b $.  $d i Z p t x $.  $d y Z $.  $d p b $.  $d A k m n q r $.
    $d b k m n q r $.  $d B k m n q r $.  $d F k m n q r $.  $d i k m n q r $.
    $d p k m n q r $.  $d N k m n q r $.  $d p k m n q r $.  $d t k m n q r $.
    $d U k m n q r $.  $d x k m n q r $.  $d y k m n q r $.  $d Z k m n q r $.
    axcontlem10.1 $e |- D = { p e. ( EE ` N ) |
       ( U Btwn <. Z , p >. \/ p Btwn <. Z , U >. ) } $.
    axcontlem10.2 $e |- F = { <. x , t >. |
        ( x e. D /\ ( t e. ( 0 [,) +oo ) /\
           A. i e. ( 1 ... N )
            ( x ` i ) = ( ( ( 1 - t ) x. ( Z ` i ) ) +
                          ( t x. ( U ` i ) ) ) ) ) } $.
    $( Lemma for ~ axcont .  Given a handful of assumptions, derive the
       conclusion of the final theorem.  (Contributed by Scott Fenton,
       20-Jun-2013.) $)
    axcontlem10 $p |-
      ( ( ( N e. NN /\ ( A C_ ( EE ` N ) /\ B C_ ( EE ` N ) /\
                      A. x e. A A. y e. B x Btwn <. Z , y >. ) ) /\
       ( ( Z e. ( EE ` N ) /\ U e. A /\ B =/= (/) ) /\
         Z =/= U ) ) ->
         E. b e. ( EE ` N ) A. x e. A A. y e. B b Btwn <. x , y >. ) $=
      ( wcel wbr wral wa cle vm vk vn vq vr cn cee cfv wss cv cop cbtwn w3a wne
      c0 cima cr wrex cc0 cpnf cico co crn imassrn wf1o wfo wceq simpll simprl1
      simplr1 simprl2 sseldd simprr axcontlem2 syl31anc f1ofo syl5sseq rge0ssre
      forn 3syl syl6ss axcontlem9 dedekindle syl3anc simpr wex simprl3 ad2antrr
      wi n0 sylib 0red wf syl axcontlem4 ffvelrnd sseldi simprl elrege0 simprbi
      f1of wf1 f1of1 f1elima mpbird adantr simpl1 simpl2 3jca axcontlem3 sylan2
      wb sselda adantrl jca breq1 anbi1d breq2 anbi2d rspc2va sylan an32s letrd
      simpld expr exlimdv mpd sylanbrc ex ccnv ssrab2 syl2an sseqtr4d funfvima2
      wo crab syl2anc sylc breq2d weq eqsstri f1ocnvdm adantrr wfun cdm anim12d
      simplr f1ofun fdm imp simprll rspc2v f1ocnvfv2 anbi12d axcontlem8 anassrs
      breq1d ralrimivva opeq1 opeq2 cbvral2v 2ralbidv rspcev com23 rexlimdv
      syld ) JUFPZDJUGUHZUIZEUVHUIZAUJZKBUJZUKULQBERADRZUMZSZKUVHPZGDPZEUOUNZUM
      ZKGUNZSZSZUAUJZUBUJZTQZUWDUCUJZTQZSZUCIEUPZRUAIDUPZRZUBUQURZMUJZUVKUVLUKZ
      ULQZBERADRZMUVHURZUWBUWJUQUIUWIUQUIUWCUWFTQUCUWIRUAUWJRUWLUWBUWJUSUTVAVBZ
      UQUWBIVCZUWJUWRIDVDUWBFUWRIVEZFUWRIVFUWSUWRVGUWBUVGUVPGUVHPZUVTUWTUVGUVNU
      WAVHZUVPUVQUVRUVTUVOVIZUWBDUVHGUVIUVJUVMUVGUWAVJUVPUVQUVRUVTUVOVKZVLZUVOU
      VSUVTVMZACFGHIJKLNOVNVOZFUWRIVPFUWRIVSVTZVQVRWAUWBUWIUWRUQUWBUWSUWIUWRIEV
      DUXHVQVRWAABCDEFGHUCUAIJKLNOWBUAUCUBUWJUWIWCWDUWBUWKUWQUBUQUWBUWKUWDUQPZU
      WQUWBUWKUXIUWQWIUWBUWKSZUXIUWDUWRPZUWQUXJUXIUXKUXJUXISZUXIUSUWDTQZUXKUXJU
      XIWEUXLUWMEPZMWFZUXMUXLUVRUXOUWBUVRUWKUXIUVPUVQUVRUVTUVOWGWHMEWJWKUXLUXNU
      XMMUXJUXIUXNUXMUXJUXIUXNSZSZUSGIUHZUWDUXQWLUWBUXRUQPZUWKUXPUWBUWRUQUXRVRU
      WBFUWRGIUWBUWTFUWRIWMZUXGFUWRIXAZWNUWBDFGABDEFGJKLNWOZUXDVLZWPZWQWHUXJUXI
      UXNWRUWBUSUXRTQZUWKUXPUWBUXRUWRPZUYEUYDUYFUXSUYEUXRWSWTWNWHUXQUXRUWDTQZUW
      DUWMIUHZTQZUWBUXPUWKUYGUYISZUWBUXPSZUXRUWJPZUYHUWIPZSUWKUYJUYKUYLUYMUWBUY
      LUXPUWBUYLUVQUXDUWBFUWRIXBZGFPDFUIUYLUVQXLUWBUWTUYNUXGFUWRIXCWNZUYCUYBFUW
      RIGDXDWDXEXFUWBUXNUYMUXIUWBUXNSZUYMUXNUWBUXNWEUYPUYNUWMFPEFUIZUYMUXNXLUWB
      UYNUXNUYOXFUWBEFUWMUWAUVOUVPUVQUVTUMUYQUWAUVPUVQUVTUVPUVQUVRUVTXGUVPUVQUV
      RUVTXHUVSUVTWEXIABDEFGJKLNXJXKZXMUWBUYQUXNUYRXFFUWRIUWMEXDWDXEXNXOUWHUYJU
      YGUWGSUAUCUXRUYHUWJUWIUWCUXRVGUWEUYGUWGUWCUXRUWDTXPXQUWFUYHVGUWGUYIUYGUWF
      UYHUWDTXRXSXTYAYBYDYCYEYFYGUWDWSYHYIUWBUWKUXKUWQUWBUWKUXKSZSZUWDIYJUHZUVH
      PVUAUWNULQZBERADRZUWQUYTFUVHVUAFGKLUJZUKULQVUDKGUKULQYOZLUVHYPUVHNVUELUVH
      YKUUAUWBUWTUXKVUAFPZUYSUXGUWKUXKWEFUWRUWDIUUBZYLWQUYTVUAUDUJZUEUJZUKZULQZ
      UEERUDDRVUCUYTVUKUDUEDEUWBUYSVUHDPZVUIEPZSZVUKUWBUYSVUNSZSZUVGUVPUXAUMZUV
      TSZVUHFPZVUFVUIFPZUMZSVUHIUHZVUAIUHZTQZVVCVUIIUHZTQZSZVUKVUPVURVVAUWBVURV
      UOUWBVUQUVTUWBUVGUVPUXAUXBUXCUXEXIUXFXOXFVUPVUSVUFVUTUWBVUNVUSUYSUWBVULVU
      SVUMUWBDFVUHUYBXMUUCXNUWBUWTUXKVUFVUOUXGUWKUXKVUNUUGZVUGYLUWBVUNVUTUYSUWB
      VUMVUTVULUWBEFVUIUYRXMXNXNXIXOVUPVVGVVBUWDTQZUWDVVETQZSZVUPVVBUWJPZVVEUWI
      PZSZUWKVVKUWBVUNVVNUYSUWBVUNVVNUWBVULVVLVUMVVMUWBIUUDZDIUUEZUIVULVVLWIUWB
      UWTVVOUXGFUWRIUUHWNZUWBDFVVPUYBUWBUWTUXTVVPFVGUXGUYAFUWRIUUIVTZYMDVUHIYNY
      QUWBVVOEVVPUIVUMVVMWIVVQUWBEFVVPUYRVVRYMEVUIIYNYQUUFUUJXNUWBUWKUXKVUNUUKU
      WHVVKVVIUWGSUAUCVVBVVEUWJUWIUWCVVBVGUWEVVIUWGUWCVVBUWDTXPXQUWFVVEVGUWGVVJ
      VVIUWFVVEUWDTXRXSUULYRVUPVVDVVIVVFVVJVUPVVCUWDVVBTUWBUWTUXKVVCUWDVGVUOUXG
      VVHFUWRUWDIUUMYLZYSVUPVVCUWDVVETVVSUUQUUNXEACFVUHVUAVUIGHIJKLNOUUOYRUUPUU
      RVUKVUBVUAUVKVUIUKZULQUDUEABDEUDAYTVUJVVTVUAULVUHUVKVUIUUSYSUEBYTVVTUWNVU
      AULVUIUVLUVKUUTYSUVAWKUWPVUCMVUAUVHUWMVUAVGUWOVUBABDEUWMVUAUWNULXPUVBUVCY
      QYEUVFYIUVDUVEYG $.
  $}

  ${
    $d A b x i j p q r t z $.  $d B b x y i j p q r t z $.
    $d N b x y i j p q r t z $.  $d U b x y i j p q r t z $.
    $d Z b x y i j p q r t z $.

    $( Lemma for ~ axcont .  Eliminate the hypotheses from ~ axcontlem10 .
       (Contributed by Scott Fenton, 20-Jun-2013.) $)
    axcontlem11 $p |-
      ( ( ( N e. NN /\ ( A C_ ( EE ` N ) /\ B C_ ( EE ` N ) /\
                      A. x e. A A. y e. B x Btwn <. Z , y >. ) ) /\
       ( ( Z e. ( EE ` N ) /\ U e. A /\ B =/= (/) ) /\
         Z =/= U ) ) ->
         E. b e. ( EE ` N ) A. x e. A A. y e. B b Btwn <. x , y >. ) $=
      ( vt vq vz vr vj vp cv cop cbtwn wbr cfv co vi wo cee crab wcel cpnf cico
      cc0 c1 cmin cmul caddc wceq cfz wral wa copab opeq2 breq1 orbi12d cbvrabv
      breq2d eqid axcontlem1 axcontlem10 ) ABICDEGJOZPZQRZVFGEPZQRZUBZJFUCSZUDZ
      EUAKOZVMUELOZUHUFUGTUEMOZVNSUIVOUJTVPGSUKTVOVPESUKTULTUMMUIFUNTUOUPUPKLUQ
      ZFGNHVKEGNOZPZQRZVRVIQRZUBJNVLVFVRUMZVHVTVJWAWBVGVSEQVFVRGURVBVFVRVIQUSUT
      VAKALVMEMUAVQFGIVQVCVDVE $.
  $}

  ${
    $d A b x u $.  $d B b x y u $.  $d N b x y u $.  $d Z b x y u $.

    $( Lemma for ~ axcont .  Eliminate the trivial cases from the previous
       lemmas.  (Contributed by Scott Fenton, 20-Jun-2013.) $)
    axcontlem12 $p |-
      ( ( ( N e. NN /\ ( A C_ ( EE ` N ) /\ B C_ ( EE ` N ) /\
                      A. x e. A A. y e. B x Btwn <. Z , y >. ) ) /\
       Z e. ( EE ` N ) ) ->
         E. b e. ( EE ` N ) A. x e. A A. y e. B b Btwn <. x , y >. ) $=
      ( vu cv wne wrex wcel wss cbtwn wbr wral wa wi c0 wceq cn cee cfv cop w3a
      rzal ralrimivw 2ralbidv rspcev expcom syl adantld simprrl simprrr simprll
      breq1 simpl 3jca simprlr axcontlem11 syl12anc pm2.61ine rexlimiva con2bii
      ex wn df-ne ralbii ralnex bitri simpr3 eqeq2 rspccva opeq1 breq2d ralbidv
      wb bitr4d ralbidva biimpa sylan2 ancoms expl sylbir pm2.61i ) FHIZJZHCKZE
      UALZCEUBUCZMZDWJMZAIZFBIZUDZNOZBDPZACPZUEQZFWJLZQZGIZWMWNUDZNOZBDPACPZGWJ
      KZRZWGXGHCWFCLZWGQZXAXFXIXAQZXFRDSDSTZXAXFXIXKWTXFWSXKFXCNOZBDPZACPZWTXFR
      XKXMACXLBDUFUGWTXNXFXEXNGFWJXBFTXDXLABCDXBFXCNUPUHUIZUJUKULULDSJZXJXFXPXJ
      QZWSWTXHXPUEWGXFXPXIWSWTUMXQWTXHXPXPXIWSWTUNXPXHWGXAUOXPXJUQURXPXHWGXAUSA
      BCDWFEFGUTVAVEVBVEVCWHVFZFWFTZHCPZXGXTWGVFZHCPXRXSYAHCWGXSFWFVGVDVHWGHCVI
      VJXTWSWTXFWTXTWSQZXFYBWTXNXFWSXTWRXNWIWKWLWRVKXTWRXNXTWQXMACXTWMCLQFWMTZW
      QXMVQXSYCHWMCWFWMFVLVMYCWPXLBDYCWPWMXCNOXLYCWOXCWMNFWMWNVNVOFWMXCNUPVRVPU
      KVSVTWAXOWAWBWCWDWE $.
  $}

  ${
    $d A a b x y $.  $d B a b x y $.  $d N a b x y $.
    $( The axiom of continuity.  Take two sets of points ` A ` and ` B ` .  If
       all the points in ` A ` come before the points of ` B ` on a line, then
       there is a point separating the two.  Axiom A11 of [Schwabhauser] p. 13.
       (Contributed by Scott Fenton, 20-Jun-2013.) $)
    axcont $p |-
      ( ( N e. NN /\ ( A C_ ( EE ` N ) /\ B C_ ( EE ` N ) /\
          E. a e. ( EE ` N ) A. x e. A A. y e. B x Btwn <. a , y >. ) )
        ->
        E. b e. ( EE ` N ) A. x e. A A. y e. B b Btwn <. x , y >. ) $=
      ( cn wcel cee wss cv cop cbtwn wbr wral wrex wi wa w3a cfv 3anim3i anim2i
      simpr simpr3l axcontlem12 syl2anc 3exp2 com4r rexlimiva com4l 3imp2 ) EHI
      ZCEJUAZKZDUNKZALZFLZBLZMNOBDPACPZFUNQZGLUQUSMNOBDPACPGUNQZVAUMUOUPVBUTUMU
      OUPVBRRRFUNUMUOUPURUNIZUTSZVBUMUOUPVDVBUMUOUPVDTZSUMUOUPUTTZSVCVBVEVFUMVD
      UTUOUPVCUTUDUBUCVCUTUOUPUMUEABCDEURGUFUGUHUIUJUKUL $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  EE^n fulfills Tarski's Axioms
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c EEG $.

  $( Extends class notation with the Tarski geometry structure for
     ` EE ^ N ` . $)
  ceeng $a class EEG $.

  ${
    $d i n x y z $.
    $( Define the geometry structure for ` EE ^ N ` .  (Contributed by Thierry
       Arnoux, 24-Aug-2017.) $)
    df-eeng $a |- EEG = ( n e. NN |-> ( {
        <. ( Base ` ndx ) , ( EE ` n ) >. ,
        <. ( dist ` ndx ) , ( x e. ( EE ` n ) , y e. ( EE ` n ) |->
            sum_ i e. ( 1 ... n ) ( ( ( x ` i ) - ( y ` i ) ) ^ 2 ) ) >. } u. {
        <. ( Itv ` ndx ) , ( x e. ( EE ` n ) , y e. ( EE ` n ) |->
                           { z e. ( EE ` n ) | z Btwn <. x , y >. } ) >. ,
        <. ( LineG ` ndx ) , ( x e. ( EE ` n ) , y e. ( ( EE ` n ) \ { x } )
                       |-> { z e. ( EE ` n ) |
             ( z Btwn <. x , y >. \/ x Btwn <. z , y >. \/ y Btwn <. x , z >. )
             } ) >. } )
        ) $.
  $}

  ${
    $d i n x y z N $.
    $( The value of the Euclidean geometry for dimension ` N ` .  (Contributed
       by Thierry Arnoux, 15-Mar-2019.) $)
    eengv $p |- ( N e. NN -> ( EEG ` N ) =
      ( { <. ( Base ` ndx ) , ( EE ` N ) >.
      , <. ( dist ` ndx ) , ( x e. ( EE ` N ) , y e. ( EE ` N ) |->
            sum_ i e. ( 1 ... N ) ( ( ( x ` i ) - ( y ` i ) ) ^ 2 ) ) >. } u. {
        <. ( Itv ` ndx ) , ( x e. ( EE ` N ) , y e. ( EE ` N ) |->
                           { z e. ( EE ` N ) | z Btwn <. x , y >. } ) >. ,
        <. ( LineG ` ndx ) , ( x e. ( EE ` N ) , y e. ( ( EE ` N ) \ { x } )
                       |-> { z e. ( EE ` N ) |
             ( z Btwn <. x , y >. \/ x Btwn <. z , y >. \/ y Btwn <. x , z >. )
             } ) >. } ) ) $=
      ( vn cnx cfv cv cee cop c1 cfz co cmpt2 cpr cbtwn crab opeq2d wa cbs cmin
      cds c2 cexp csu citv wbr clng csn cdif w3o cun cn ceeng wceq fveq2 adantr
      simpl oveq2d sumeq1d mpt2eq123dva preq12d rabeqdv difeq1d uneq12d df-eeng
      wcel prex unex fvmpt ) FEGUAHZFIZJHZKZGUCHZABVNVNLVMMNZDIZAIZHVRBIZHUBNUD
      UENZDUFZOZKZPZGUGHZABVNVNCIZVSVTKQUHZCVNRZOZKZGUIHZABVNVNVSUJZUKZWHVSWGVT
      KQUHVTVSWGKQUHULZCVNRZOZKZPZUMVLEJHZKZVPABWTWTLEMNZWADUFZOZKZPZWFABWTWTWH
      CWTRZOZKZWLABWTWTWMUKZWOCWTRZOZKZPZUMUNUOVMEUPZWEXFWSXNXOVOXAWDXEXOVNWTVL
      VMEJUQZSXOWCXDVPXOABVNVNWBWTWTXCXPXOVNWTUPZVSVNVHZXPURZXOXRVTVNVHTZTZVQXB
      WADYAVMELMXOXTUSUTVAVBSVCXOWKXIWRXMXOWJXHWFXOABVNVNWIWTWTXGXPXSYAWHCVNWTX
      OXQXTXPURVDVBSXOWQXLWLXOABVNWNWPWTXJXKXPXOXRTVNWTWMXSVEXOWPXKUPXRVTWNVHTX
      OWOCVNWTXPVDURVBSVCVFABCDFVGXFXNXAXEVIXIXMVIVJVK $.

    $( The Euclidean geometry as a structure.  (Contributed by Thierry Arnoux,
       15-Mar-2019.) $)
    eengstr $p |- ( N e. NN -> ( EEG ` N ) Struct <. 1 , ; 1 7 >. ) $=
      ( vx vy vi vz cfv cnx cop c1 co cv c2 cmpt2 cbtwn wbr c7 cdc 1nn0 decnncl
      c6 cn wcel ceeng cbs cee cds cfz cmin cexp csu cpr citv crab clng csn w3o
      cdif cun cstr eengv 1nn basendx 2nn0 1lt10 declti 2nn dsndx strle2 itvndx
      6nn 6nn0 7nn 6lt7 declt lngndx 2lt6 strleun syl6eqbr ) AUAUBAUCFGUDFZAUEF
      ZHGUFFZBCVTVTIAUGJDKZBKZFWBCKZFUHJLUIJDUJMZHUKZGULFZBCVTVTEKZWCWDHNOZEVTU
      MMZHGUNFZBCVTVTWCUOUQWIWCWHWDHNOWDWCWHHNOUPEVTUMMZHUKZURIIPQZHUSBCEDAUTII
      LQZITQZWNWFWMVSWAIWOVTWEVAVBILIVAVCRVDVEILRVFSVGVHWGWKWPWNWJWLITRVJSVIITP
      RVKVLVMVNIPRVLSVOVHILTRVCVJVPVNVQVR $.

    $( The Base of the Euclidean geometry.  (Contributed by Thierry Arnoux,
       15-Mar-2019.) $)
    eengbas $p |- ( N e. NN -> ( EE ` N ) = ( Base ` ( EEG ` N ) ) ) $=
      ( vx vy vi vz cn wcel cee cfv ceeng cbs cvv c1 cop wbr co cnx cmpt2 cbtwn
      cv baseid fvexd ccnv wfun c0 csn cdif c7 cdc cstr eengstr cle w3a cdm cfz
      wss isstruct simp2bi syl wceq structcnvcnv funeqd mpbird cds cmin c2 cexp
      csu cpr citv crab clng w3o opex prid1 elun1 ax-mp eengv syl5eleqr strfv2d
      cun ) AFGZAHIZAJIZKLLUAWBAJUBWBWDUCUCZUDWDUEUFUGZUDZWBWDMMUHUIZNZUJOZWGAU
      KZWJMFGWHFGMWHULOUMWGWDUNMWHUOPUPWDMWHUQURUSWBWEWFWBWJWEWFUTWKWDWIVAUSVBV
      CWBQKIZWCNZWMQVDIBCWCWCMAUOPDTZBTZIWNCTZIVEPVFVGPDVHRNZVIZQVJIBCWCWCETZWO
      WPNSOZEWCVKRNQVLIBCWCWCWOUFUGWTWOWSWPNSOWPWOWSNSOVMEWCVKRNVIZWAZWDWMWRGWM
      XBGWMWQWLWCVNVOWMWRXAVPVQBCEDAVRVSWBAHUBVT $.
  $}

  ${
    $d i x y z N $.  $d x y z X $.  $d x y z Y $.  $d z Z $.  $d x y z ph $.
    ebtwntg.1 $e |- ( ph -> N e. NN ) $.
    ebtwntg.2 $e |- P = ( Base ` ( EEG ` N ) ) $.
    ebtwntg.3 $e |- I = ( Itv ` ( EEG ` N ) ) $.
    ebtwntg.x $e |- ( ph -> X e. P ) $.
    ebtwntg.y $e |- ( ph -> Y e. P ) $.
    ebtwntg.z $e |- ( ph -> Z e. P ) $.
    $( The betweenness relation used in the Tarski structure for the Euclidean
       geometry is the same as ` Btwn ` .  (Contributed by Thierry Arnoux,
       15-Mar-2019.) $)
    ebtwntg $p |- ( ph -> ( Z Btwn <. X , Y >. <-> Z e. ( X I Y ) ) ) $=
      ( vz vx vy wcel cop cbtwn cfv vi co cv wbr cee crab cvv cmpt2 ceeng itvid
      citv fvexd ccnv wfun c0 csn cdif c1 c7 cdc cn eengstr syl cle w3a cdm cfz
      cstr wss isstruct simp2bi wceq structcnvcnv funeqd mpbird cnx cbs cmin c2
      cds cexp csu cpr clng w3o cun opex prid1 elun2 ax-mp eengv syl5eleqr fvex
      mpt2ex a1i strfv2d syl6reqr simprl simprr opeq12d breq2d rabbidv syl6eleq
      wa eengbas eleqtrrd rabex ovmpt2d eleq2d wb breq1 elrab3 bitr2d ) AGEFCUB
      ZQGNUCZEFRZSUDZNDUETZUFZQZGXPSUDZAXNXSGAOPEFXRXRXOOUCZPUCZRZSUDZNXRUFZXSC
      UGAOPXRXRYFUHZDUITZUKTCAYGYHUKUGUGUJADUIULAYHUMUMZUNYHUOUPUQZUNZAYHURURUS
      UTZRZVHUDZYKADVAQZYNHDVBVCZYNURVAQYLVAQURYLVDUDVEYKYHVFURYLVGUBVIYHURYLVJ
      VKVCAYIYJAYNYIYJVLYPYHYMVMVCVNVOAVPUKTZYGRZVPVQTXRRVPVTTOPXRXRURDVGUBUAUC
      ZYBTYSYCTVRUBVSWAUBUAWBUHRWCZYRVPWDTOPXRXRYBUPUQYEYBXOYCRSUDYCYBXORSUDWEN
      XRUFUHRZWCZWFZYHYRUUBQYRUUCQYRUUAYQYGWGWHYRUUBYTWIWJAYOYHUUCVLHOPNUADWKVC
      WLYGUGQAOPXRXRYFDUEWMZUUDWNWOWPJWQAYBEVLZYCFVLZXDXDZYEXQNXRUUGYDXPXOSUUGY
      BEYCFAUUEUUFWRAUUEUUFWSWTXAXBAEYHVQTZXRAEBUUHKIXCAYOXRUUHVLHDXEVCZXFAFUUH
      XRAFBUUHLIXCUUIXFXSUGQAXQNXRUUDXGWOXHXIAGXRQXTYAXJAGUUHXRAGBUUHMIXCUUIXFX
      QYANGXRXOGXPSXKXLVCXM $.
  $}

  ${
    $d i x y A $.  $d i x y B $.  $d i x y C $.  $d i x y D $.  $d i x y z N $.
    $d i x y ph $.
    ecgrtg.1 $e |- ( ph -> N e. NN ) $.
    ecgrtg.2 $e |- P = ( Base ` ( EEG ` N ) ) $.
    ecgrtg.3 $e |- .- = ( dist ` ( EEG ` N ) ) $.
    ecgrtg.a $e |- ( ph -> A e. P ) $.
    ecgrtg.b $e |- ( ph -> B e. P ) $.
    ecgrtg.c $e |- ( ph -> C e. P ) $.
    ecgrtg.d $e |- ( ph -> D e. P ) $.
    $( The congruence relation used in the Tarski structure for the Euclidean
       geometry is the same as ` Cgr ` .  (Contributed by Thierry Arnoux,
       15-Mar-2019.) $)
    ecgrtg $p |- ( ph
      -> ( <. A , B >. Cgr <. C , D >. <-> ( A .- B ) = ( C .- D ) ) ) $=
      ( vi cop co cfv wcel vx vy vz ccgr wbr c1 cfz cv cmin c2 cexp csu wceq wb
      cee ceeng cbs cn eengbas syl syl6eqr eleqtrrd brcgr syl22anc cvv cds dsid
      cmpt2 fvexd ccnv wfun c0 csn cdif c7 cdc eengstr cle w3a cdm wss isstruct
      cstr simp2bi structcnvcnv funeqd mpbird cnx cpr citv cbtwn crab clng opex
      w3o cun prid2 elun1 ax-mp eengv syl5eleqr fvex mpt2ex strfv2d syl6reqr wa
      a1i simplrl fveq1d simplrr oveq12d oveq1d sumeq2dv ovmpt2d eqcomd eqeq12d
      sumex bitrd ) ABCQDEQUDUEZUFHUGRZPUHZBSZYACSZUIRZUJUKRZPULZXTYADSZYAESZUI
      RZUJUKRZPULZUMZBCGRZDEGRZUMABHUOSZTCYOTDYOTEYOTXSYLUNABFYOLAYOHUPSZUQSZFA
      HURTZYOYQUMIHUSUTJVAZVBZACFYOMYSVBZADFYONYSVBZAEFYOOYSVBZBCDEPHVCVDAYFYMY
      KYNAYMYFAUAUBBCYOYOXTYAUAUHZSZYAUBUHZSZUIRZUJUKRZPULZYFGVEAUAUBYOYOUUJVHZ
      YPVFSGAUUKYPVFVEVEVGAHUPVIAYPVJVJZVKYPVLVMVNZVKZAYPUFUFVOVPZQZWCUEZUUNAYR
      UUQIHVQUTZUUQUFURTUUOURTUFUUOVRUEVSUUNYPVTUFUUOUGRWAYPUFUUOWBWDUTAUULUUMA
      UUQUULUUMUMUURYPUUPWEUTWFWGAWHVFSZUUKQZWHUQSYOQZUUTWIZWHWJSUAUBYOYOUCUHZU
      UDUUFQWKUEZUCYOWLVHQWHWMSUAUBYOYOUUDVMVNUVDUUDUVCUUFQWKUEUUFUUDUVCQWKUEWO
      UCYOWLVHQWIZWPZYPUUTUVBTUUTUVFTUVAUUTUUSUUKWNWQUUTUVBUVEWRWSAYRYPUVFUMIUA
      UBUCPHWTUTXAUUKVETAUAUBYOYOUUJHUOXBZUVGXCXGXDKXEZAUUDBUMZUUFCUMZXFXFZXTUU
      IYEPUVKYAXTTZXFZUUHYDUJUKUVMUUEYBUUGYCUIUVMYAUUDBAUVIUVJUVLXHXIUVMYAUUFCA
      UVIUVJUVLXJXIXKXLXMYTUUAYFVETAXTYEPXQXGXNXOAYNYKAUAUBDEYOYOUUJYKGVEUVHAUU
      DDUMZUUFEUMZXFXFZXTUUIYJPUVPUVLXFZUUHYIUJUKUVQUUEYGUUGYHUIUVQYAUUDDAUVNUV
      OUVLXHXIUVQYAUUFEAUVNUVOUVLXJXIXKXLXMUUBUUCYKVETAXTYJPXQXGXNXOXPXR $.
  $}

  ${
    $d i x y z N $.  $d z P $.
    elntg.1 $e |- P = ( Base ` ( EEG ` N ) ) $.
    elntg.2 $e |- I = ( Itv ` ( EEG ` N ) ) $.
    $( The line definition in the Tarski structure for the Euclidean geometry.
       (Contributed by Thierry Arnoux, 7-Apr-2019.) $)
    elntg $p |- ( N e. NN -> ( LineG ` ( EEG ` N ) ) =
      ( x e. P , y e. ( P \ { x } ) |-> { z e. P |
        ( z e. ( x I y ) \/ x e. ( z I y ) \/ y e. ( x I z ) ) } ) ) $=
      ( vi cn wcel cfv cv cop wbr cmpt2 co cvv c1 cnx cee cdif cbtwn crab ceeng
      csn w3o clng lngid fvex a1i ccnv wfun c0 cdc cstr eengstr cle w3a cdm cfz
      c7 wss isstruct simp2bi syl wceq structcnvcnv funeqd mpbird cbs cmin cexp
      cds csu cpr citv cun opex prid2 elun2 ax-mp eengv syl5eleqr difexg mpt2ex
      c2 strfv2d eengbas syl6eqr difeq1d adantr simplrl eleqtrd simplrr eldifad
      wa simpll simpr ebtwntg 3orbi123d rabeqbidva mpt2eq123dva eqtr3d ) FJKZAB
      FUALZXFAMZUFZUBZCMZXGBMZNUCOZXGXJXKNUCOZXKXGXJNUCOZUGZCXFUDZPZFUELZUHLABD
      DXHUBZXJXGXKEQKZXGXJXKEQKZXKXGXJEQKZUGZCDUDZPXEXQXRUHRRUIXRRKXEFUEUJUKXEX
      RULULZUMXRUNUFUBZUMZXEXRSSVBUOZNZUPOZYGFUQZYJSJKYHJKSYHUROUSYGXRUTSYHVAQV
      CXRSYHVDVEVFXEYEYFXEYJYEYFVGYKXRYIVHVFVIVJXETUHLZXQNZTVKLXFNTVNLABXFXFSFV
      AQIMZXGLYNXKLVLQWGVMQIVOPNVPZTVQLABXFXFXLCXFUDPNZYMVPZVRZXRYMYQKYMYRKYPYM
      YLXQVSVTYMYQYOWAWBABCIFWCWDXQRKXEABXFXIXPFUAUJZXFRKXIRKYSXFXHRWEWBWFUKWHX
      EABXFXIXPDXSYDXEXFXRVKLDFWIGWJZXEXIXSVGXGXFKZXEXFDXHYTWKWLXEUUAXKXIKZWQZW
      QZXOYCCXFDXEXFDVGZUUCYTWLUUDXJXFKZWQZXLXTXMYAXNYBUUGDEFXGXKXJXEUUCUUFWRZG
      HUUGXGXFDXEUUAUUBUUFWMUUGXEUUEUUHYTVFZWNZUUGXKXFDUUGXKXFXHXEUUAUUBUUFWOWP
      UUIWNZUUGXJXFDUUDUUFWSUUIWNZWTUUGDEFXJXKXGUUHGHUULUUKUUJWTUUGDEFXGXJXKUUH
      GHUUJUULUUKWTXAXBXCXD $.
  $}

  ${
    $d a b c f i p s t u v x y z N $.
    $( The geometry structure for ` EE ^ N ` is a Tarski geometry.
       (Contributed by Thierry Arnoux, 15-Mar-2019.) $)
    eengtrkg $p |- ( N e. NN -> ( EEG ` N ) e. TarskiG ) $=
      ( vx vy vz va vb wcel cv co wceq wral cop wbr adantr eleqtrrd w3a ebtwntg
      wi wa ad2antrr vf vp vi vu vv vt vs vc ceeng cfv cstrkgc cstrkgb cstrkgcb
      cn cin clng csn cdif w3o crab cmpt2 citv wsbc cbs cab cstrkg cvv cds ccgr
      fvexd cee simpl simprl eengbas simprr axcgrrflx syl3anc eqid ecgrtg mpbid
      ralrimivva simpr1 simpr2 simpr3 3adantr3 axcgrid syl13anc sylbird istrkgc
      ralrimivvva jca32 sylibr wrex cpw cbtwn axbtwnid imp eqcomd ex simpll syl
      axpasch syl132anc anbi12d simplll eleqtrd rexeqbidva 3imtr3d wss ad2antrl
      sseqtr4d ad2antll simplrl simplrr axcont syl12anc simplr sseldd 2ralbidva
      simpr elpwi 3jca istrkgb sylanbrc elind wne simplr1 simplr2 3anass ax5seg
      simplr3 syl5bir syl333anc 3anbi23d axsegcon syl122anc istrkgcb istrkgl
      elntg df-trkg syl6eleqr ) AUNGZAUIUJZUKULUOZUMUAHZUPUJBCUBHZUUFBHZUQZURDH
[encoded data, 5040 characters]
      DUURUAUCUUCUWLUUOUBUWBUWCUWMYRYDYEYEBCDUAUCUBYTUUA $.
  $}

  ${
    $d a b u v x y z N $.
    $( The geometry structure for ` EE ^ N ` is a Euclidean geometry.
       (Contributed by Thierry Arnoux, 15-Mar-2019.) $)
    eengtrkge $p |- ( N e. NN -> ( EEG ` N ) e. TarskiGE ) $=
      ( vu vx vv va vb wcel cfv cv co w3a wral wa cop cbtwn wbr adantr eleqtrrd
      ad2antrr ebtwntg vy vz cn ceeng cvv citv wne cbs wrex cstrkge fvexd simpl
      wi cee simprl wceq eengbas simprr simpr1 simpr3 syl13anc simpr2 syl132anc
      axeuclid 3anbi12d simpr eleqtrd rexeqbidva 3imtr3d ralrimivvva ralrimivva
      eqid 3anbi123d cds istrkge sylanbrc ) AUCGZAUDHZUEGBIZCIZDIZVRUFHZJGZVSUA
      IZUBIZWBJGZVTVSUGZKZWDVTEIZWBJGZWEVTFIZWBJGZWAWIWKWBJGZKZFVRUHHZUIZEWOUIZ
      UMZDWOLBWOLUBWOLZUAWOLCWOLVRUJGVQAUDUKVQWSCUAWOWOVQVTWOGZWDWOGZMZMZWRUBBD
      WOWOWOXCWEWOGZVSWOGZWAWOGZKZMZVSVTWANOPZVSWDWENOPZWGKZWDVTWINOPZWEVTWKNOP
      ZWAWIWKNOPZKZFAUNHZUIZEXPUIZWHWQXHVQVTXPGZWDXPGZWEXPGZVSXPGWAXPGXKXRUMXCV
      QXGVQXBULQZXCXSXGXCVTWOXPVQWTXAUOZVQXPWOUPZXBAUQZQZRQXCXTXGXCWDWOXPVQWTXA
      URZYFRQXHVQWTXAXDYAYBXCWTXGYCQZXCXAXGYGQZXCXDXEXFUSZVQWTXAXDKZMWEWOXPVQWT
      XAXDUTVQYDYKYEQRVAXHVSWOXPXCXDXEXFVBZVQYDXBXGYESZRXHWAWOXPXCXDXEXFUTZYMRE
      FVTWDWEVSWAAVDVCXHXIWCXJWFWGXHWOWBAVTWAVSYBWOVLZWBVLZYHYNYLTXHWOWBAWDWEVS
      YBYOYPYIYJYLTVEXHXQWPEXPWOYMXHWIXPGZMZXOWNFXPWOXHYDYQYMQZYRWKXPGZMZXLWJXM
      WLXNWMUUAWOWBAVTWIWDXHVQYQYTYBSZYOYPXHWTYQYTYHSZYRWIWOGYTYRWIXPWOXHYQVFYS
      VGQZXHXAYQYTYISTUUAWOWBAVTWKWEUUBYOYPUUCUUAWKXPWOYRYTVFXHYDYQYTYMSVGZXHXD
      YQYTYJSTUUAWOWBAWIWKWAUUBYOYPUUDUUEXHXFYQYTYNSTVMVHVHVIVJVKCUAUBDBWOVRWBV
      RVNHZEFYOUUFVLYPVOVP $.
  $}

$( End $[ set-tarskigeom.mm $] $)


$( Begin $[ set-graphth.mm $] $)
$(
###############################################################################
  GRAPH THEORY
###############################################################################

  <HTML><br><br>
  To give an overview of the definitions and terms used in the context of graph
  theory, a glossary is provided in the following, mainly according to
  definitions in [Bollobas] p. 1-8 or in [Diestel] p. 2-28.  Although this
  glossary concentrates on <b>undirected graphs</b>, many of the concepts are
  also useful for directed graphs.<br><br>

  <h1>Basic concepts:</h1>

  <table border="1" id="graph-theory-glossary0">
  <tr><th>Term</th><th>Reference</th><th>Definition</th><th>Remarks</th></tr>
  <tr><td><b>Vertex</b></td><td> ~ df-vtx </td>
    <td>A <b>vertex</b> of a graph ` G ` is an element of the set of vertices
    ` ( Vtx `` G ) ` of the graph ` G `.</td>
    <td>The set of vertices ` ( Vtx `` G ) ` (corresponding to V(G) in
    [Bollobas] p. 1) is usually the first component ` V ` of the graph ` G ` if
    it is represented by an ordered pair ` <. V , E >. ` (see ~ opvtxfv ), or
    the base set ` ( Base `` G ) ` of the graph ` G ` if it is represented as
    extensible structure (see ~ basvtxval ).</td></tr>
  <tr><td><b>Edge</b></td><td> ~ df-edg </td>
    <td>An <b>edge</b> of a graph ` G ` is a nonempty set of vertices of the
    graph.  It is said that these vertices are "joined" or "connected" by the
    edge, see [Bollobas] p. 1.</td>
    <td>The set of edges ` ( Edg `` G ) ` (corresponding to E(G) in [Bollobas]
    p. 1) is usually the range ` ran E ` of the second component ` E ` of the
    graph ` G ` if it is represented by an ordered pair ` <. V , E >. `, or the
    range of the component ` ( .ef `` G ) ` of the graph ` G ` if it is
    represented as extensible structure.<br>
    </td></tr>
  <tr><td><b>Loop</b></td><td></td>
    <td>A <b>loop</b> in a graph ` G ` is an edge which connects a single
    vertex with itself (or, according to [Bollobas] p. 7 "joins a vertex to
    itself").</td>
    <td>In other words, a loop is an edge ` e e. ( Edg `` G ) ` which is a
    singleton consisting of a vertex ` v e. ( Vtx `` G ) `: ` e = { v } `
    </td></tr>
  <tr><td><b>Edge function</b> resp. <b>indexed edges</b></td>
    <td> ~ df-iedg </td>
    <td>An <b>edge function</b> (or <b>indexed set of edges</b>) of a graph
    ` G ` is a mapping of an arbitrary index set to nonempty sets of vertices
    of the graph.</td>
    <td>The edge function ` ( iEdg `` G ) ` is usually the second component
    ` E ` of the graph ` G ` if it is represented by an ordered pair
    ` <. V , E > ` (see ~ opiedgfv ), or the component ` ( .ef `` G ) ` of the
    graph ` G ` if it is represented as extensible structure (see
    ~ edgfiedgval ).<br>
    The set of edges of a graph ` G ` is the range of its edge function:
    ` ( Edg `` G ) = ran ( iEdg `` G ) `, see ~ edgval .<br>
    Whereas the concept of plain edges is sufficient for simple hypergraphs,
    indexed edges are required for e.g. multigraphs in which the same vertices
    may be connected by more than one edge.</td></tr>
  </table>

  <h1>Basic kinds of graphs:</h1>

  <table border="1" id="graph-theory-glossary1">
  <tr><th>Term</th><th>Reference</th><th>Definition</th><th>Remarks</th></tr>
  <tr><td><b>Undirected hypergraph</b></td><td> ~ df-uhgr </td>
    <td>a class ` G ` with an edge function ` E = ( iEdg `` G ) ` which is a
    function into the power set of the vertices ` V = ( Vtx `` G ) `:
    ` ran E C_ ( ~P V \ { (/) } ) `.</td>
    <td>In this most general definition of a graph, an "edge" may connect three
    or more vertices with each other, see [Berge] p. 1.<br>
    In Wikipedia "Hypergraph", see ~ https://en.wikipedia.org/wiki/Hypergraph
    (18-Jan-2020) such a hypergraph is called a "non-simple hypergraph",
    "multiple hypergraph" or "multi-hypergraphs".  According to Wikipedia
    "Incidence structure",
    see ~ https://en.wikipedia.org/wiki/Incidence_structure (18-Jan-2020)
    "Each hypergraph [[...] can be regarded as an <b>incidence structure</b> in
    which the [[vertices] play the role of "points", the corresponding family
    of [[edges] plays the role of "lines" and the incidence relation is set
    membership".<br><br>
    Notice that by using ` ( Edg `` G ) ` the (possibly more than one) edges
    connecting the same vertices could not be distinguished anymore.
    Therefore, this representation will only be used for undirected simple
    hypergraphs.</td></tr>
  <tr><td><b>Undirected simple hypergraph</b></td><td> ~ df-ushgr </td>
    <td>a class ` G ` with an edge function ` E = ( iEdg `` G ) ` which is a
    one-to-one function into the power set of the vertices
    ` V = ( Vtx `` G ) `: ` ran E C_ ( ~P V \ { (/) } ) `.</td>
    <td>See also Wikipedia "Hypergraph",
    ~ https://en.wikipedia.org/wiki/Hypergraph (18-Jan-2020).  This is how a
    "hypergraph" is defined in Section I.1 in [Bollobas] p. 7 or the definition
    in section 1.10 in [Diestel] p. 27.  A simple hypergraph has at most one
    edge between the same vertices, hence a pseudograph needs not be a simple
    hypergraph.<br>
    According to [Berge] p. 1, "A <i>simple hypergraph</i> (or "Sperner
    family") is a hypergraph H = { E_1, E_2, ..., E_m } such that E_i C_ E_j
    => i = j".  By this definition, a simple hypergraph cannot contain the
    edges E_1 = { v_1 , v_2 } and E_2 = { v_1, v_2, v_3 }, because E_1 C_ E_2,
    but 1 =/= 2. </td></tr>
  <tr><td><b>Undirected loop-free hypergraph</b></td><td>---</td>
    <td>an undirected hypergraph without a loop, i.e. all edges connect at
    least two vertices.</td>
    <td></td></tr>
  <tr><td><b>Undirected pseudograph</b></td><td> ~ df-upgr </td>
    <td>a class ` G ` with an edge function ` E = ( iEdg `` G ) ` which is a
    function into the set of (proper or not proper) unordered pairs of vertices
    ` V = ( Vtx `` G ) `.</td>
    <td>A proper unordered pair contains two different elements, a not proper
    unordered pair contains two times the same element, so it is a singleton
    (see ~ preqsn ).  This means a pseudograph may contain loops.<br>
    This defintion corresponds to the definition of a "multigraph" in Section
    I.1 in [Bollobas] p. 7, "In a multigraph both <b>multiple edges</b>
    [joining two vertices] and multiple <b>loops</b> [joining a vertex to
    itself] are allowed", or in [Diestel] p. 28, "A <i>multigraph</i> is a
    pair (V,E) of disjoint sets (of vertices and edges) together with a map
    E -> V u. [[V]^2 assigning to every edge either one or two vertices, its
    end(s).".</td></tr>
  <tr><td><b>Undirected multigraph</b></td><td> ~ df-umgr </td>
    <td>a class ` G ` with an edge function ` E = ( iEdg `` G ) ` which is a
    function into the set of (proper!) unordered pairs of vertices
    ` V = ( Vtx `` G ) `.</td>
    <td>This definition is according to Chartrand, Gary and Zhang, Ping (2012):
    "A First Course in Graph Theory.", Dover, ISBN 978-0-486-48368-9,
    section 1.4, p. 26:  "A multigraph M consists of a finite nonempty set V of
    vertices and a set E of edges, where every two vertices of M are joined by
    a finite number of edges (possibly zero).  If two or more edges join the
    same pair of (distinct) vertices, then these edges are called parallel
    edges."<br>
    A proper unordered pair contains two different elements, therefore a
    multigraph does not have loops.</td></tr>
  <tr><td><b>Undirected simple pseudograph</b></td><td> ~ df-uspgr </td>
    <td>a class ` G ` with an edge function ` E = ( iEdg `` G ) ` which is a
    one-to-one function into the set of (proper or not proper) unordered pairs
    of vertices ` V = ( Vtx `` G ) `.</td>
    <td>This means that there is at most one edge between two vertices, and at
    most one loop from a vertex to itself.</td></tr>
  <tr><td><b>Undirected simple graph</b></td><td> ~ df-usgr </td>
    <td>a class ` G ` with an edge function ` E = ( iEdg `` G ) ` which is a
    one-to-one function into the set of (proper!) unordered pairs of vertices
    ` V = ( Vtx `` G ) `.</td>
    <td>An ordered pair ` <. V , E >. ` of two distinct sets ` V ` (the
    vertices) and ` E ` (the edges), the "usual" definition of a "graph", see,
    for example, the definition in section I.1 of [Bollobas] p. 1 or in section
    1.1 of [Diestel] p. 2, can be identified with an undirected simple graph
    without loops by "indexing" the edges with themselves, see ~ usgrausgrb .
    </td></tr>
  <tr><td><b>Finite graph</b></td><td> ~ df-fusgr </td>
    <td>a graph ` G ` with a finite set of vertices ` V = ( Vtx `` G ) `.</td>
    <td>See definitions in [Bollobas] p. 1 or [Diestel] p. 2.<br>
    In simple graphs, the set of (indexed) edges ` ( iEdg `` G ) ` (and
    therefore also the set of edges ` ( Edg `` G ) `) is finite if
    ` V = ( Vtx `` G ) ` is finite, see ~ fusgrfis .  The number of edges is
    limited by ` ( n _C 2 ) ` (or "` n ` choose 2") with ` n = ( # `` V ) `,
    see ~ fusgrmaxsize .  Analogously, the number of edges
    ` E = ( iEdg `` G ) ` of an undirected simple pseudograph (which may have
    loops) is limited by ` ( ( n + 1 ) _C 2 ) ` .  In pseudographs or
    multigraphs, however, ` E ` can be infinite although ` V ` is finite.
    </td></tr>
  <tr><td><b>Graph of finite size</b></td><td>---</td>
    <td>a graph ` G ` with a finite set ` E = ( iEdg `` G ) `, i.e. with a
    finite number of edges.</td>
    <td>A graph can be of finite size although its set of vertices is infinite
    (most of the vertices would not be connected by an edge).</td></tr>
  </table>

  <h1>Terms and properties of graphs:</h1>

  <table border="1" id="graph-theory-glossary2">
  <tr><th>Term</th><th>Reference</th><th>Definition</th><th>Remarks</th></tr>
  <tr><td><b>Edge joining</b> resp. <b> connecting (two) vertices</b></td>
    <td>---</td>
    <td>An edge ` e e. ( Edg `` G ) ` <b>joins</b> resp. <b>connects</b> the
    vertices v_1, v_2, ... v_n ( ` n e. NN ` )
    if ` e ` = { v_1, v_2, ... v_n }.</td>
    <td>If ` n = 1 ` , ` e ` = { v_1 } is a loop,
    if ` n = 2 ` , ` e ` = { v_1 , v_2 } is an edge as it is usually defined,
    see definition in Section I.1 in [Bollobas] p. 1.</td></tr>
  <tr><td><b>(Two) Endvertices of an edge</b></td>
    <td> see definition in Section I.1 in [Bollobas] p. 1.</td>
    <td>If an edge ` e e. ( Edg `` G ) ` joins the vertices v_1, v_2, ... v_n
    ( ` n e. NN ` ), then the vertices v_1, v_2, ... v_n are called the
    <b>endvertices</b> of the edge ` e `.</td><td></td></tr>
  <tr><td><b>(Two) Adjacent vertices</b></td>
    <td> see definition in Section I.1 in [Bollobas] p. 1/2.</td>
    <td>The vertices v_1, v_2, ... v_n ( ` n e. NN ` ) are <b>adjacent</b> if
    there is an edge e = { v_1, v_2, ... v_n } joining these vertices.  In this
    case, the vertices are <b>incident</b> with the edge e (see definition in
    Section I.1 in [Bollobas] p. 2) or <b>connected</b> by the edge e.</td>
    <td></td></tr>
  <tr><td><b>Edge ending at a vertex</b></td><td> </td>
    <td> An edge ` e e. ( Edg `` G ) ` is <b>ending</b> at a vertex ` v ` if
     the vertex is an endvertex of the edge: ` v e. e ` . In other words, the
     vertex ` v ` is incident with the edge ` e `. </td><td></td></tr>
  <tr><td><b>(Two) Adjacent edges</b></td><td></td>
    <td>The edges e_0, e_1, ... e_n ( ` n e. NN ` ) are <b>adjacent</b> if
    they have exactly one common endvertex.</td>
    <td>Generalization of definition in Section I.1 in [Bollobas] p. 2.</td>
    </tr>
  <tr><td><b>Order of a graph</b></td>
    <td>see definition in Section I.1 in [Bollobas] p. 3</td>
    <td>The <b>order</b> of a graph ` G ` is the number of vertices in the
    graph: ` ( # `` ( Vtx `` G ) ) `.</td><td></td></tr>
  <tr><td><b>Size of a graph</b></td>
    <td>see definition in Section I.1 in [Bollobas] p. 3</td>
    <td>The <b>size</b> of a graph ` G ` is the number of edges in the graph:
    ` ( # `` ( iEdg `` G ) ) `.  Or, for a simple graph ` G ` :
    ` ( # `` ( Edg `` G ) ) ` ).</td><td></td></tr>
  <tr><td><b>Neighborhood of a vertex</b></td>
    <td> ~ df-nbgr resp. definition in Section I.1 in [Bollobas] p. 3</td>
    <td>A vertex connected with a vertex ` v ` by an edge is called a
    <b>neighbor</b> of the vertex ` v `. The set of neighbors of a vertex ` v `
    is called the <b>neighborhood</b> (or <b>open neighborhood</b>) of the
    vertex ` v `. The <b>closed neighborhood</b> is the union of the (open)
    neighborhood of the vertex ` v ` with ` { v } `.</td><td></td></tr>
  <tr><td><b>Degree of a vertex</b></td><td> ~ df-vtxdg </td>
    <td>The <b>degree</b> of a vertex is the number of the edges ending at this
    vertex.</td>
    <td>In a simple graph, the degree of a vertex is the number of neighbors of
    this vertex, see definition in Section I.1 in [Bollobas] p. 3</td></tr>
  <tr><td><b>Isolated vertex</b></td><td> ~ usgrvd0nedg </td>
    <td>A vertex is called <b>isolated</b> if it is not an endvertex of any
    edge, thus having degree 0.</td><td></td></tr>
  <tr><td><b>Universal vertex</b></td><td> ~ df-uvtx </td>
    <td>A vertex is called <b>universal</b> if it is connected with every other
    vertex of the graph by an edge, thus having degree
    ` ( ( # `` ( Vtx `` G ) ) - ) `.</td><td></td></tr>
  </table>

  <h1>Special kinds of graphs:</h1>

  <table border="1" id="graph-theory-glossary3">
  <tr><th>Term</th><th>Reference</th><th>Definition</th><th>Remarks</th></tr>
  <tr><td><b>Complete graph</b></td><td> ~ df-cplgr </td>
    <td>A graph is called <b>complete</b> if each pair of vertices is connected
    by an edge.</td>
    <td>The size of a complete undirected simple graph of order ` n ` is
    ` ( n _C 2 ) ` (or "` n ` choose 2"), see ~ cusgrsize .</td></tr>
  <tr><td><b>Empty graph</b></td><td> ~ uhgr0e </td>
    <td>A graph is called <b>empty</b> if it has no edges.</td>
    <td></td></tr>
  <tr><td><b>Null graph</b></td><td> ~ uhgr0 and ~ uhgr0vb </td>
    <td>A graph is called a <b>null graph</b> if it has no vertices (and
    therefore also no edges).</td><td></td></tr>
  <tr><td><b>Trivial graph</b></td><td> ~ usgr1v </td>
    <td>A graph is called the <b>"trivial graph"</b> if it has only one vertex
    and no edges.</td><td></td></tr>
  <tr><td><b>Connected graph</b></td>
    <td> ~ df-conngr resp. definition in Section I.1 in [Bollobas] p. 6</td>
    <td>A graph is called <b>connected</b> if for each pair of vertices there
    is a path between these vertices.</td><td></td></tr>
  </table><br><br>

  For the terms <b>"Path"</b>, <b>"Walk"</b>, <b>"Trail"</b>, <b>"Circuit"</b>,
  <b>"Cycle"</b> see the remarks below and the definitions in Section I.1 in
  [Bollobas] p. 4-5.
  </HTML>

$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Vertices and edges
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  In the following, the vertices and (indexed) edges for an arbitrary class
  ` G ` (called "graph" in the following) are defined and examined.  The main
  result of this section is to show that the set of vertices ` ( Vtx `` G ) `
  of a graph ` G ` is the first component ` V ` of the graph ` G ` if it is
  represented by an ordered pair ` <. V , E >. ` (see ~ opvtxfv ), or the base
  set ` ( Base `` G ) ` of the  graph ` G ` if it is represented as extensible
  structure (see ~ basvtxval ), and that the set of indexed edges resp. the
  edge function ` ( iEdg `` G ) ` is  the second component ` E ` of the graph
  ` G ` if it is represented by an ordered pair ` <. V , E >. ` (see
  ~ opiedgfv ), or the component ` ( .ef `` G ) ` of the graph ` G ` if it is
  represented as extensible structure (see ~ edgfiedgval ).  Finally, it is
  shown that the set of edges of a graph ` G ` is the range of its edge
  function: ` ( Edg `` G ) = ran ( iEdg `` G ) `, see ~ edgval .

  Usually, a graph ` G ` is a set. If ` G ` is a proper class, however, it
  represents the null graph (without vertices and edges), because
  ` ( Vtx `` G ) = (/) ` and ` ( iEdg `` G ) = (/) ` holds, see ~ vtxvalprc
  and ~ iedgvalprc .

  Up to the end of this section, the edges need not be related to the vertices.
  Once undirected hypergraphs are defined (see ~ df-uhgr ), the edges become
  nonempty sets of vertices, and by this obtain their meaning as "connectors"
  of vertices.

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The edge function extractor for extensible structures
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c .ef $.

  $( Extend class notation with an edge function. $)
  cedgf $a class .ef $.

  $( Define the edge function (indexed edges) of a graph.  (Contributed by AV,
     18-Jan-2020.) $)
  df-edgf $a |- .ef = Slot ; 1 8 $.

  $( Utility theorem: index-independent form of ~ df-edgf .  (Contributed by
     AV, 16-Nov-2021.) $)
  edgfid $p |- .ef = Slot ( .ef ` ndx ) $=
    ( cedgf c1 c8 cdc df-edgf 1nn0 8nn decnncl ndxid ) ABCDEBCFGHI $.

  $( The index value of the edge function extractor is a positive integer.
     This property should be ensured for every concrete coding because
     otherwise it could not be used in an extensible structure (slots must be
     positive integers).  (Contributed by AV, 21-Sep-2020.) $)
  edgfndxnn $p |- ( .ef ` ndx ) e. NN $=
    ( cnx cedgf cfv c1 c8 cdc cn df-edgf 1nn0 8nn decnncl ndxarg eqeltri ) ABCD
    EFZGBNHDEIJKZLOM $.

  $( The value of the edge function extractor is the value of the corresponding
     slot of the structure.  (Contributed by AV, 21-Sep-2020.) $)
  edgfndxid $p |- ( G e. V -> ( .ef ` G ) = ( G ` ( .ef ` ndx ) ) ) $=
    ( wcel cnx cedgf cfv c1 c8 cdc id df-edgf 1nn0 8nn decnncl strndxid eqcomd
    ) ABCZDEFAFAEFQAEGHIBQJKGHLMNOP $.

  $( The index value of the ` Base ` slot is less than the index value of the
     ` .ef ` slot.  (Contributed by AV, 21-Sep-2020.) $)
  baseltedgf $p |- ( Base ` ndx ) < ( .ef ` ndx ) $=
    ( c1 c8 cdc cnx cbs cfv cedgf clt 1nn 8nn0 1nn0 1lt10 declti df-base ndxarg
    df-edgf 8nn decnncl 3brtr4i ) AABCZDEFDGFHABAIJKLMEANIOGTPABKQROS $.

  $( The slots ` Base ` and ` .ef ` are different.  (Contributed by AV,
     21-Sep-2020.) $)
  slotsbaseefdif $p |- ( Base ` ndx ) =/= ( .ef ` ndx ) $=
    ( cnx cbs cfv cedgf basendxnn nnrei baseltedgf ltneii ) ABCZADCIEFGH $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Vertices and indexed edges
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The key concepts in graph theory are _vertices_ and _edges_. In general, a
  graph "consists" (at least) of two sets: the set of vertices and the set of
  edges.  The edges "connect" vertices.  The meaning of "connect" is different
  for different kinds of graphs (directed/undirected graphs, hyper-/pseudo-/
  multi-/simple graphs, etc.).  The simplest way to represent a graph (of any
  kind) is to define a graph as "an ordered pair of disjoint sets (V, E)" (see
  section I.1 in [Bollobas] p. 1), or in the notation of Metamath:
  ` <. V , E >. `.

  Another way is to regard a graph as a mathematical structure, which consistes
  at least of a set (of vertices) and a relation between the vertices (edge
  function), but which can be enhanced by additional features (see Wikipedia
  "Mathematical structure", 24-Sep-2020,
  ~ https://en.wikipedia.org/wiki/Mathematical_structure ): "In mathematics,
  a _structure_ is a set endowed with some additional features on the set
  (e.g., operation, relation, metric, topology).  Often, the additional
  features are attached or related to the set, so as to provide it with some
  additional meaning or significance.".  Such structures are provided as
  "extensible structures" in Metamath, see ~ df-struct .

  To allow for expressing and proving most of the theorems for graphs
  independently from their representation, the functions ` Vtx ` and ` iEdg `
  are defined (see ~ df-vtx and ~ df-iedg ), which provide the vertices resp.
  (indexed) edges of an arbitrary class ` G ` which represents a graph:
  ` ( Vtx `` G ) ` resp. ` ( iEdg `` G ) `.  In literature, these functions are
  often denoted also by "V" and "E", see section I.1 in [Bollobas] p. 1 ("If G
  is a graph, then V = V(G) is the vertex set of G, and E = E(G) is the edge
  set.") or section 1.1 in [Diestel] p. 2 ("The vertex set of graph G is
  referred to as V(G), its edge set as E(G).").

  Instead of providing edges themselves, ` iEdg ` is intended to provide a
  function as mapping of "indices" (the domain of the function) to the edges
  (therefore called "set of indexed edges"), which allows for
  hyper-/pseudo-/multigraphs with more than one edge between two (or more)
  vertices.   For example, e_1 = e(1) = { a, b } and e_2 = e(2) = { a, b } are
  two _different_ edges connecting the same two vertices a and b (in a
  pseudograph).  In section 1.10 of [Diestel] p. 28, the edge function is
  defined differently: as "map E -> V u. [[V]^2 assigning to every edge either
  one or two vertices, its _end_.".  Here, the domain is the set of abstract
  edges: for two different edges e_1 and e_2 connecting the same two vertices a
  and b, we would have e(e_1) = e(e_2) = { a, b }.  Since the set of abstract
  edges can be chosen as index set, these definitions are equivalent.

  The result of these functions are as expected: for a graph represented as
  ordered pair ( ` G e. ( _V X. _V ) ` ), the set of vertices is
  ` ( Vtx `` G ) = ( 1st ``  G ) ` (see ~ opvtxval ) and the set of (indexed)
  edges is ` ( iEdg `` G ) = ( 2nd ``  G ) ` (see ~ opiedgval ), or if ` G ` is
  given as ordered pair ` G = <. V , E >. `, the set of vertices is
  ` ( Vtx `` G ) = V ` (see ~ opvtxfv ) and the set of (indexed) edges is
  ` ( iEdg `` G ) = E ` (see ~ opiedgfv ).

  And for a graph represented as extensible structure
  (` G Struct <. ( Base `` ndx ) , ( .ef `` ndx ) >. `), the set of vertices is
  ` ( Vtx `` G ) = ( Base ``  G ) ` (see ~ funvtxval )  and the set of
  (indexed) edges is ` ( iEdg `` G ) = ( .ef ``  G ) ` (see ~ funiedgval ),
  or if ` G ` is given in its simplest form as extensible structure with two
  slots (` G = { <. ( Base `` ndx ) , V >. , <. ( .ef `` ndx ) , E >. } `), the
  set of vertices is ` ( Vtx `` G ) = V ` (see ~ struct2grvtx ) and the set of
  (indexed) edges is ` ( iEdg `` G ) = E ` (see ~ struct2griedg ).

  These two representations are convertible, see ~ graop and ~ grastruct :
  If ` G ` is a graph (for example ` G = <. V , E >. `), then
  ` H = { <. ( Base `` ndx ) , ( Vtx `` G ) >. , `
        ` <. ( .ef `` ndx ) , ( iEdg `` G ) >. } ` represents essentially the
  same graph, and if ` G ` is a graph (for example
  ` G = { <. ( Base `` ndx ) , V >. , <. ( .ef `` ndx ) , E >. } `),
  then ` H = <. ( Vtx `` G ) , ( iEdg `` G )  >. ` represents essentially the
  same graph.  In both cases, ` ( Vtx `` G ) = ( Vtx `` H ) ` and
  ` ( iEdg `` G ) = ( iEdg `` H ) ` hold.  Theorems ~ gropd and ~ gropeld show
  that if any representation of a graph with vertices ` V ` and edges ` E ` has
  a certain property, then the ordered pair ` <. V , E >. ` of the set of
  vertices and the set of edges (which is such a representation of a graph with
  vertices ` V ` and edges ` E `) has this property.  Analogously, theorems
  ~ grstructd and ~ grstructeld show that if any representation of a graph with
  vertices ` V ` and edges ` E ` has a certain property, then any extensible
  structure with base set ` V ` and value ` E ` in the slot for edge functions
  (which is also such a representation of a graph with vertices ` V ` and edges
  ` E `) has this property.

  Besides the usual way to represent graphs without edges (consisting of
  unconnected vertices only), which would be ` G = <. V , (/) >. ` or
  ` G = { <. ( Base `` ndx ) , V >. , <. ( .ef `` ndx ) , (/) >. } `,
  a structure without a slot for edges can be used:
  ` G = { <. ( Base `` ndx ) , V >. } `, see ~ snstrvtxval and ~ snstriedgval .
  Analogously, the empty set ` (/) ` can be used to represent the null graph,
  see ~ vtxval0 and ~ iedgval0 , which can also be represented by
  ` G = <. (/) , (/) >. ` or
  ` G = { <. ( Base `` ndx ) , (/) >. , <. ( .ef `` ndx ) , (/) >. } `.  Even
  proper classes can be used to represent the null graph, see ~ vtxvalprc and
  ~ iedgvalprc .

  Other classes should not be used to represent graphs, because there could be
  a degenerated behavior of the vertex set and (indexed) edge functions, see
  ~ vtxvalsnop resp. ~ iedgvalsnop , and ~ vtxval3sn resp. ~ iedgval3sn .

$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Definitions and basic properties
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c Vtx iEdg $.

  $( Extend class notation with the vertices of "graphs". $)
  cvtx $a class Vtx $.

  $( Extend class notation with the indexed edges of "graphs". $)
  ciedg $a class iEdg $.

  $( Define the function mapping a graph to the set of its vertices.  This
     definition is very general:  It defines the set of vertices for any
     ordered pair as its first component, and for any other class as its "base
     set".  It is meaningful, however, only if the ordered pair represents a
     graph resp. the class is an extensible structure representing a graph.
     (Contributed by AV, 9-Jan-2020.)  (Revised by AV, 20-Sep-2020.) $)
  df-vtx $a |- Vtx = ( g e. _V |-> if ( g e. ( _V X. _V ) ,
                                        ( 1st ` g ) , ( Base ` g ) ) ) $.

  $( Define the function mapping a graph to its indexed edges.  This definition
     is very general:  It defines the indexed edges for any ordered pair as its
     second component, and for any other class as its "edge function".  It is
     meaningful, however, only if the ordered pair represents a graph resp. the
     class is an extensible structure (containing a slot for "edge functions")
     representing a graph.  (Contributed by AV, 20-Sep-2020.) $)
  df-iedg $a |- iEdg = ( g e. _V |-> if ( g e. ( _V X. _V ) ,
                                               ( 2nd ` g ) , ( .ef ` g ) ) ) $.

  ${
    $d G g $.
    $( The set of vertices of a graph.  (Contributed by AV, 9-Jan-2020.)
       (Revised by AV, 21-Sep-2020.) $)
    vtxval $p |- ( Vtx ` G ) = if ( G e. ( _V X. _V ) ,
                                    ( 1st ` G ) , ( Base ` G ) ) $=
      ( vg cvv wcel cvtx cfv cxp c1st cbs cif wceq eleq1 fveq2 ifbieq12d df-vtx
      cv fvex ifex fvmpt fvprc wn c0 prcnel iffalsed 3eqtr4rd pm2.61i ) ACDZAEF
      ZACCGZDZAHFZAIFZJZKBABPZUIDZUNHFZUNIFZJUMCEUNAKUOUJUPUQUKULUNAUILUNAHMUNA
      IMNBOUJUKULAHQAIQRSUGUAZULUBUMUHAITURUJUKULAUIUCUDAETUEUF $.

    $( The set of indexed edges of a graph.  (Contributed by AV,
       21-Sep-2020.) $)
    iedgval $p |- ( iEdg ` G ) = if ( G e. ( _V X. _V ) ,
                                      ( 2nd ` G ) , ( .ef ` G ) ) $=
      ( vg cvv wcel ciedg cfv cxp c2nd cedgf wceq eleq1 fveq2 ifbieq12d df-iedg
      cif cv fvex ifex fvmpt fvprc wn c0 prcnel iffalsed 3eqtr4rd pm2.61i ) ACD
      ZAEFZACCGZDZAHFZAIFZOZJBABPZUIDZUNHFZUNIFZOUMCEUNAJUOUJUPUQUKULUNAUIKUNAH
      LUNAILMBNUJUKULAHQAIQRSUGUAZULUBUMUHAITURUJUKULAUIUCUDAETUEUF $.

    $( Obsolete version of ~ vtxval as of 11-Nov-2021.  (Contributed by AV,
       9-Jan-2020.)  (Revised by AV, 21-Sep-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    vtxvalOLD $p |- ( G e. V -> ( Vtx ` G ) = if ( G e. ( _V X. _V ) ,
                                              ( 1st ` G ) , ( Base ` G ) ) ) $=
      ( vg wcel cvv cvtx cfv cxp c1st cbs cif wceq eleq1 fveq2 ifbieq12d df-vtx
      elex cv fvex ifex fvmpt syl ) ABDAEDAFGAEEHZDZAIGZAJGZKZLABQCACRZUCDZUHIG
      ZUHJGZKUGEFUHALUIUDUJUKUEUFUHAUCMUHAINUHAJNOCPUDUEUFAISAJSTUAUB $.

    $( Obsolete version of ~ iedgval as of 11-Nov-2021.  (Contributed by AV,
       21-Sep-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    iedgvalOLD $p |- ( G e. V -> ( iEdg ` G ) = if ( G e. ( _V X. _V ) ,
                                               ( 2nd ` G ) , ( .ef ` G ) ) ) $=
      ( vg wcel cvv ciedg cfv cxp c2nd cedgf wceq elex cv eleq1 fveq2 ifbieq12d
      cif df-iedg fvex ifex fvmpt syl ) ABDAEDAFGAEEHZDZAIGZAJGZQZKABLCACMZUCDZ
      UHIGZUHJGZQUGEFUHAKUIUDUJUKUEUFUHAUCNUHAIOUHAJOPCRUDUEUFAISAJSTUAUB $.
  $}

  ${
    1vgrex.v $e |- V = ( Vtx ` G ) $.
    $( A graph with at least one vertex is a set.  (Contributed by AV,
       2-Mar-2021.) $)
    1vgrex $p |- ( N e. V -> G e. _V ) $=
      ( cvv wcel cvtx cfv elfvex eleq2s ) AEFBAGHCBAGIDJ $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The vertices and edges of a graph represented as ordered pair
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( The set of vertices of a graph represented as an ordered pair of vertices
     and indexed edges.  (Contributed by AV, 9-Jan-2020.)  (Revised by AV,
     21-Sep-2020.) $)
  opvtxval $p |- ( G e. ( _V X. _V ) -> ( Vtx ` G ) = ( 1st ` G ) ) $=
    ( cvv cxp wcel cvtx cfv c1st cbs cif vtxval iftrue syl5eq ) ABBCDZAEFMAGFZA
    HFZINAJMNOKL $.

  $( The set of vertices of a graph represented as an ordered pair of vertices
     and indexed edges as function value.  (Contributed by AV, 21-Sep-2020.) $)
  opvtxfv $p |- ( ( V e. X /\ E e. Y ) -> ( Vtx ` <. V , E >. ) = V ) $=
    ( wcel wa cop cvtx cfv c1st cvv cxp wceq opelvvg opvtxval syl op1stg eqtrd
    ) BCEADEFZBAGZHIZTJIZBSTKKLEUAUBMBACDNTOPBACDQR $.

  $( The set of vertices of a graph represented as an ordered pair of vertices
     and indexed edges as operation value.  (Contributed by AV,
     21-Sep-2020.) $)
  opvtxov $p |- ( ( V e. X /\ E e. Y ) -> ( V Vtx E ) = V ) $=
    ( wcel wa cvtx co cop cfv wceq df-ov a1i opvtxfv eqtrd ) BCEADEFZBAGHZBAIGJ
    ZBQRKPBAGLMABCDNO $.

  $( The set of indexed edges of a graph represented as an ordered pair of
     vertices and indexed edges.  (Contributed by AV, 21-Sep-2020.) $)
  opiedgval $p |- ( G e. ( _V X. _V ) -> ( iEdg ` G ) = ( 2nd ` G ) ) $=
    ( cvv cxp wcel ciedg cfv c2nd cedgf cif iedgval iftrue syl5eq ) ABBCDZAEFMA
    GFZAHFZINAJMNOKL $.

  $( The set of indexed edges of a graph represented as an ordered pair of
     vertices and indexed edges as function value.  (Contributed by AV,
     21-Sep-2020.) $)
  opiedgfv $p |- ( ( V e. X /\ E e. Y ) -> ( iEdg ` <. V , E >. ) = E ) $=
    ( wcel cop ciedg cfv c2nd cvv cxp wceq opelvvg opiedgval syl op2ndg eqtrd
    wa ) BCEADERZBAFZGHZTIHZASTJJKEUAUBLBACDMTNOBACDPQ $.

  $( The set of indexed edges of a graph represented as an ordered pair of
     vertices and indexed edges as operation value.  (Contributed by AV,
     21-Sep-2020.) $)
  opiedgov $p |- ( ( V e. X /\ E e. Y ) -> ( V iEdg E ) = E ) $=
    ( wcel wa ciedg co cop cfv wceq df-ov a1i opiedgfv eqtrd ) BCEADEFZBAGHZBAI
    GJZAQRKPBAGLMABCDNO $.

  ${
    opvtxfvi.v $e |- V e. _V $.
    opvtxfvi.e $e |- E e. _V $.
    $( The set of vertices of a graph represented as an ordered pair of
       vertices and indexed edges as function value.  (Contributed by AV,
       4-Mar-2021.) $)
    opvtxfvi $p |- ( Vtx ` <. V , E >. ) = V $=
      ( cvv wcel cop cvtx cfv wceq opvtxfv mp2an ) BEFAEFBAGHIBJCDABEEKL $.

    $( The set of indexed edges of a graph represented as an ordered pair of
       vertices and indexed edges as function value.  (Contributed by AV,
       4-Mar-2021.) $)
    opiedgfvi $p |- ( iEdg ` <. V , E >. ) = E $=
      ( cvv wcel cop ciedg cfv wceq opiedgfv mp2an ) BEFAEFBAGHIAJCDABEEKL $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The vertices and edges of a graph represented as extensible structure
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $( The set of vertices of an extensible structure with (at least) two
       slots.  (Contributed by AV, 12-Oct-2020.)  (Revised by AV, 7-Jun-2021.)
       (Revised by AV, 12-Nov-2021.) $)
    funvtxdmge2val $p |- ( ( Fun ( G \ { (/) } ) /\ 2 <_ ( # ` dom G ) )
                           -> ( Vtx ` G ) = ( Base ` G ) ) $=
      ( c0 csn cdif wfun c2 cdm chash cfv cle wbr wa cvtx cvv cxp wcel c1st cbs
      cif vtxval fundmge2nop0 iffalsed syl5eq ) ABCDEFAGHIJKLZAMIANNOPZAQIZARIZ
      SUGATUDUEUFUGAUAUBUC $.

    $( The set of indexed edges of an extensible structure with (at least) two
       slots.  (Contributed by AV, 12-Oct-2020.)  (Revised by AV, 7-Jun-2021.)
       (Revised by AV, 12-Nov-2021.) $)
    funiedgdmge2val $p |- ( ( Fun ( G \ { (/) } ) /\ 2 <_ ( # ` dom G ) )
                            -> ( iEdg ` G ) = ( .ef ` G ) ) $=
      ( c0 csn cdif wfun c2 cdm chash cfv cle wbr ciedg cvv cxp wcel c2nd cedgf
      wa cif iedgval fundmge2nop0 iffalsed syl5eq ) ABCDEFAGHIJKRZALIAMMNOZAPIZ
      AQIZSUGATUDUEUFUGAUAUBUC $.
  $}

  ${
    funvtxdm2val.a $e |- A e. _V $.
    funvtxdm2val.b $e |- B e. _V $.
    $( The set of vertices of an extensible structure with (at least) two
       slots.  (Contributed by AV, 22-Sep-2020.)  (Revised by AV, 7-Jun-2021.)
       (Revised by AV, 12-Nov-2021.) $)
    funvtxdm2val $p |- ( ( Fun ( G \ { (/) } ) /\ A =/= B
                     /\ { A , B } C_ dom G ) -> ( Vtx ` G ) = ( Base ` G ) ) $=
      ( c0 csn cdif wfun wne cpr cdm wss w3a cvtx cfv cvv cxp wcel c1st cbs cif
      vtxval fun2dmnop0 iffalsed syl5eq ) CFGHIABJABKCLMNZCOPCQQRSZCTPZCUAPZUBU
      JCUCUGUHUIUJABCDEUDUEUF $.

    $( The set of indexed edges of an extensible structure with (at least) two
       slots.  (Contributed by AV, 22-Sep-2020.)  (Revised by AV, 7-Jun-2021.)
       (Revised by AV, 12-Nov-2021.) $)
    funiedgdm2val $p |- ( ( Fun ( G \ { (/) } ) /\ A =/= B
                     /\ { A , B } C_ dom G ) -> ( iEdg ` G ) = ( .ef ` G ) ) $=
      ( c0 csn cdif wfun wne cpr cdm wss w3a ciedg cfv cvv cxp wcel c2nd syl5eq
      cedgf cif iedgval fun2dmnop0 iffalsed ) CFGHIABJABKCLMNZCOPCQQRSZCTPZCUBP
      ZUCUJCUDUGUHUIUJABCDEUEUFUA $.

    $( Obsolete version of ~ funvtxdm2val as of 11-Nov-2021.  (Contributed by
       AV, 22-Sep-2020.)  (Revised by AV, 7-Jun-2021.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    funvtxdm2valOLD $p |- ( ( ( G e. V /\ Fun ( G \ { (/) } ) ) /\ A =/= B
                            /\ { A , B } C_ dom G )
                          -> ( Vtx ` G ) = ( Base ` G ) ) $=
      ( wcel c0 csn cdif wfun wa wne cpr cdm wss w3a cvtx cfv cvv cxp c1st wceq
      cbs cif vtxvalOLD adantr 3ad2ant1 wn fun2dmnop0 3adant1l iffalsed eqtrd )
      CDGZCHIJKZLZABMZABNCOPZQZCRSZCTTUAGZCUBSZCUDSZUEZVCUPUQUTVDUCZURUNVEUOCDU
      FUGUHUSVAVBVCUOUQURVAUIUNABCEFUJUKULUM $.

    $( Obsolete version of ~ funiedgdm2val as of 11-Nov-2021.  (Contributed by
       AV, 22-Sep-2020.)  (Revised by AV, 7-Jun-2021.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    funiedgdm2valOLD $p |- ( ( ( G e. V /\ Fun ( G \ { (/) } ) ) /\ A =/= B
                               /\ { A , B } C_ dom G )
                             -> ( iEdg ` G ) = ( .ef ` G ) ) $=
      ( wcel c0 csn cdif wfun wa wne cpr cdm wss w3a ciedg cfv cvv cxp c2nd cif
      cedgf wceq iedgvalOLD adantr 3ad2ant1 fun2dmnop0 3adant1l iffalsed eqtrd
      wn ) CDGZCHIJKZLZABMZABNCOPZQZCRSZCTTUAGZCUBSZCUDSZUCZVCUPUQUTVDUEZURUNVE
      UOCDUFUGUHUSVAVBVCUOUQURVAUMUNABCEFUIUJUKUL $.
  $}

  ${
    funvtxval0.s $e |- S e. _V $.
    $( The set of vertices of an extensible structure with a base set and (at
       least) another slot.  (Contributed by AV, 22-Sep-2020.)  (Revised by AV,
       7-Jun-2021.)  (Revised by AV, 12-Nov-2021.) $)
    funvtxval0 $p |- ( ( Fun ( G \ { (/) } ) /\ S =/= ( Base ` ndx )
                         /\ { ( Base ` ndx ) , S } C_ dom G )
                       -> ( Vtx ` G ) = ( Base ` G ) ) $=
      ( cnx cbs cfv wne csn cdif wfun cpr cdm cvtx wceq necom fvex funvtxdm2val
      c0 wss syl3an2b ) ADEFZGBRHIJUAAGUAAKBLSBMFBEFNAUAOUAABDEPCQT $.

    $( Obsolete version of ~ funvtxval0 as of 11-Nov-2021.  (Contributed by AV,
       22-Sep-2020.)  (Revised by AV, 7-Jun-2021.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    funvtxval0OLD $p |- ( ( ( G e. V /\ Fun ( G \ { (/) } ) )
                          /\ S =/= ( Base ` ndx )
                          /\ { ( Base ` ndx ) , S } C_ dom G )
                        -> ( Vtx ` G ) = ( Base ` G ) ) $=
      ( cnx cbs cfv wne wcel c0 csn cdif wfun wa cpr cdm wss cvtx wceq necom
      fvex funvtxdm2valOLD syl3an2b ) AEFGZHBCIBJKLMNUDAHUDAOBPQBRGBFGSAUDTUDAB
      CEFUADUBUC $.
  $}

  ${
    $( Obsolete version of ~ funvtxdmge2val as of 11-Nov-2021.  (Contributed by
       AV, 12-Oct-2020.)  (Revised by AV, 7-Jun-2021.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    funvtxdmge2valOLD $p |- ( ( G e. V /\ Fun ( G \ { (/) } )
                                 /\ 2 <_ ( # ` dom G ) )
                          -> ( Vtx ` G ) = ( Base ` G ) ) $=
      ( wcel c0 csn cdif wfun c2 cdm chash cfv cle wbr w3a cvtx cvv cxp cbs cif
      c1st wceq vtxvalOLD 3ad2ant1 wn fundmge2nop0 3adant1 iffalsed eqtrd ) ABC
      ZADEFGZHAIJKLMZNZAOKZAPPQCZATKZARKZSZUPUIUJUMUQUAUKABUBUCULUNUOUPUJUKUNUD
      UIAUEUFUGUH $.

    $( Obsolete version of ~ funiedgdmge2val as of 11-Nov-2021.  (Contributed
       by AV, 12-Oct-2020.)  (Revised by AV, 7-Jun-2021.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    funiedgdmge2valOLD $p |- ( ( G e. V /\ Fun ( G \ { (/) } )
                                  /\ 2 <_ ( # ` dom G ) )
                             -> ( iEdg ` G ) = ( .ef ` G ) ) $=
      ( wcel c0 csn cdif wfun c2 cdm chash cfv cle wbr w3a ciedg cvv c2nd cedgf
      cxp cif wceq iedgvalOLD 3ad2ant1 wn fundmge2nop0 3adant1 iffalsed eqtrd )
      ABCZADEFGZHAIJKLMZNZAOKZAPPSCZAQKZARKZTZUPUIUJUMUQUAUKABUBUCULUNUOUPUJUKU
      NUDUIAUEUFUGUH $.
  $}

  ${
    basvtxval.s $e |- ( ph -> G Struct X ) $.
    basvtxval.d $e |- ( ph -> 2 <_ ( # ` dom G ) ) $.
    ${
      basvtxval.v $e |- ( ph -> V e. Y ) $.
      basvtxval.b $e |- ( ph -> <. ( Base ` ndx ) , V >. e. G ) $.
      $( The set of vertices of a graph represented as an extensible structure
         with the set of vertices as base set.  (Contributed by AV,
         14-Oct-2020.)  (Revised by AV, 12-Nov-2021.) $)
      basvtxval $p |- ( ph -> ( Vtx ` G ) = V ) $=
        ( cvtx cfv cbs c0 csn cdif wfun c2 cdm chash wbr cle syl funvtxdmge2val
        wceq cstr structn0fun syl2anc opelstrbas eqtr4d ) ABJKZBLKZCABMNOPZQBRS
        KUATUJUKUDABDUETULFBDUFUBGBUCUGABCDEFHIUHUI $.
    $}

    edgfiedgval.e $e |- ( ph -> E e. Y ) $.
    edgfiedgval.f $e |- ( ph -> <. ( .ef ` ndx ) , E >. e. G ) $.
    $( The set of indexed edges of a graph represented as an extensible
       structure with the indexed edges in the slot for edge functions.
       (Contributed by AV, 14-Oct-2020.)  (Revised by AV, 12-Nov-2021.) $)
    edgfiedgval $p |- ( ph -> ( iEdg ` G ) = E ) $=
      ( ciedg cfv cedgf c0 csn cdif wfun wbr syl cvv ccnv c2 cdm chash cle wceq
      cstr structn0fun funiedgdmge2val syl2anc wcel structex structfung strfv2d
      edgfid eqtr4d ) ACJKZCLKZBACMNOPZUACUBUCKUDQUPUQUEACDUFQZURFCDUGRGCUHUIAB
      CLSEUNAUSCSUJFCDUKRAUSCTTPFCDULRIHUMUO $.
  $}

  ${
    basvtxvalOLD.g $e |- ( ph -> G e. X ) $.
    basvtxvalOLD.f $e |- ( ph -> Fun G ) $.
    basvtxvalOLD.v $e |- ( ph -> 2 <_ ( # ` dom G ) ) $.
    ${
      basvtxvalOLD.e $e |- ( ph -> V e. Y ) $.
      basvtxvalOLD.s $e |- ( ph -> <. ( Base ` ndx ) , V >. e. G ) $.
      $( Obsolete version of ~ basvtxval as of 12-Nov-2021.  (Contributed by
         AV, 14-Oct-2020.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      basvtxvalOLD $p |- ( ph -> ( Vtx ` G ) = V ) $=
        ( cvtx cfv cbs cnx wcel c0 csn cdif wfun wceq c2 cdm cle wbr fundif syl
        chash funvtxdmge2valOLD syl3anc c1 df-base 1nn strndxid funopfv 3eqtr2d
        cop sylc ) ABKLZBMLZNMLZBLZCABDOBPQZRSZUABUBUGLUCUDURUSTFABSZVCGVBBUEUF
        HBDUHUIABMUJDFUKULUMAVDUTCUPBOVACTGJUTCBUNUQUO $.
    $}

    edgfiedgvalOLD.e $e |- ( ph -> E e. Y ) $.
    edgfiedgvalOLD.s $e |- ( ph -> <. ( .ef ` ndx ) , E >. e. G ) $.
    $( Obsolete version of ~ edgfiedgval as of 12-Nov-2021.  (Contributed by
       AV, 14-Oct-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    edgfiedgvalOLD $p |- ( ph -> ( iEdg ` G ) = E ) $=
      ( ciedg cfv cedgf cnx wcel c0 csn wfun wceq syl cdif c2 cdm chash cle wbr
      fundif funiedgdmge2valOLD syl3anc edgfndxid cop funopfv sylc 3eqtrd ) ACK
      LZCMLZNMLZCLZBACDOZCPQZUARZUBCUCUDLUEUFUOUPSFACRZVAGUTCUGTHCDUHUIAUSUPURS
      FCDUJTAVBUQBUKCOURBSGJUQBCULUMUN $.
  $}

  $( The set of vertices of a graph represented as an extensible structure with
     vertices as base set and indexed edges.  (Contributed by AV, 22-Sep-2020.)
     (Revised by AV, 7-Jun-2021.)  (Revised by AV, 12-Nov-2021.) $)
  funvtxval $p |- ( ( Fun ( G \ { (/) } )
                      /\ { ( Base ` ndx ) , ( .ef ` ndx ) } C_ dom G )
                    -> ( Vtx ` G ) = ( Base ` G ) ) $=
    ( csn cdif wfun cnx cbs cfv cedgf wne cpr cdm cvtx wceq slotsbaseefdif fvex
    c0 wss funvtxdm2val mp3an2 ) APBCDEFGZEHGZITUAJAKQALGAFGMNTUAAEFOEHORS $.

  $( The set of indexed edges of a graph represented as an extensible structure
     with vertices as base set and indexed edges.  (Contributed by AV,
     21-Sep-2020.)  (Revised by AV, 7-Jun-2021.)  (Revised by AV,
     12-Nov-2021.) $)
  funiedgval $p |- ( ( Fun ( G \ { (/) } )
                       /\ { ( Base ` ndx ) , ( .ef ` ndx ) } C_ dom G )
                     -> ( iEdg ` G ) = ( .ef ` G ) ) $=
    ( csn cdif wfun cnx cbs cfv cedgf wne cpr cdm wss ciedg wceq slotsbaseefdif
    c0 fvex funiedgdm2val mp3an2 ) APBCDEFGZEHGZITUAJAKLAMGAHGNOTUAAEFQEHQRS $.

  $( Obsolete version of ~ funvtxval as of 12-Nov-2021.  (Contributed by AV,
     22-Sep-2020.)  (Revised by AV, 7-Jun-2021.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  funvtxvalOLD $p |- ( ( G e. V /\ Fun ( G \ { (/) } )
                       /\ { ( Base ` ndx ) , ( .ef ` ndx ) } C_ dom G )
                     -> ( Vtx ` G ) = ( Base ` G ) ) $=
    ( wcel c0 csn cdif wfun cnx cbs cfv cedgf cpr cdm wss w3a wa cvtx wceq fvex
    wne 3simpa slotsbaseefdif a1i simp3 funvtxdm2valOLD syl3anc ) ABCZADEFGZHIJ
    ZHKJZLAMNZOZUGUHPUIUJTZUKAQJAIJRUGUHUKUAUMULUBUCUGUHUKUDUIUJABHISHKSUEUF $.

  $( Obsolete version of ~ funiedgval as of 12-Nov-2021.  (Contributed by AV,
     21-Sep-2020.)  (Revised by AV, 7-Jun-2021.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  funiedgvalOLD $p |- ( ( G e. V /\ Fun ( G \ { (/) } )
                       /\ { ( Base ` ndx ) , ( .ef ` ndx ) } C_ dom G )
                     -> ( iEdg ` G ) = ( .ef ` G ) ) $=
    ( wcel c0 csn cdif wfun cnx cbs cfv cedgf cpr cdm wss w3a wa wne ciedg wceq
    fvex 3simpa slotsbaseefdif a1i simp3 funiedgdm2valOLD syl3anc ) ABCZADEFGZH
    IJZHKJZLAMNZOZUGUHPUIUJQZUKARJAKJSUGUHUKUAUMULUBUCUGUHUKUDUIUJABHITHKTUEUF
    $.

  ${
    structvtxvallem.s $e |- S e. NN $.
    structvtxvallem.b $e |- ( Base ` ndx ) < S $.
    structvtxvallem.g $e |- G = { <. ( Base ` ndx ) , V >. , <. S , E >. } $.
    $( Lemma for ~ structvtxval and ~ structiedg0val .  (Contributed by AV,
       23-Sep-2020.)  (Revised by AV, 12-Nov-2021.) $)
    structvtxvallem $p |- ( ( V e. X /\ E e. Y ) -> 2 <_ ( # ` dom G ) ) $=
      ( wcel wa cnx cbs cfv cvv cn fvexd a1i simpl cop simpr cpr prex basendxnn
      eqeltri wne nnrei ltneii wss eqimss2i hashdmpropge2 ) DEJZBFJZKZLMNZADBCO
      PEFOUNLMQAPJUNGRULUMSULUMUACOJUNCUODTZABTZUBZOIUPUQUCUERUOAUFUNUOAUOUDUGH
      UHRURCUIUNCURIUJRUK $.

    $( The set of vertices of an extensible structure with a base set and
       another slot.  (Contributed by AV, 23-Sep-2020.)  (Proof shortened by
       AV, 12-Nov-2021.) $)
    structvtxval $p |- ( ( V e. X /\ E e. Y ) -> ( Vtx ` G ) = V ) $=
      ( wcel wa cnx cbs cfv cop cstr wbr 2strstr1 a1i structvtxvallem simpl cpr
      opex prid1 eleqtrri basvtxval ) DEJZBFJZKZCDLMNZAOZECUKPQUIDBCAIHGRSABCDE
      FGHITUGUHUAUJDOZCJUIULULABOZUBCULUMUJDUCUDIUESUF $.

    $( The set of indexed edges of an extensible structure with a base set and
       another slot not being the slot for edge functions is empty.
       (Contributed by AV, 23-Sep-2020.)  (Proof shortened by AV,
       12-Nov-2021.) $)
    structiedg0val $p |- ( ( V e. X /\ E e. Y /\ S =/= ( .ef ` ndx ) )
                           -> ( iEdg ` G ) = (/) ) $=
      ( wcel cnx cedgf cfv c0 wceq cop wbr cdm cvv wn wne w3a ciedg cbs cstr wa
      2strstr1 csn cdif wfun c2 cle structn0fun structvtxvallem funiedgdmge2val
      chash syl2an mpan 3adant3 cpr prex syl5eqel edgfndxid mp2b slotsbaseefdif
      a1i wo nesymi neneq eqcom sylnibr 3ad2ant3 ioran sylanbrc fvex elpr dmeqi
      dmpropg syl5eq neleqtrrd ndmfv syl eqtrd ) DEJZBFJZAKLMZUAZUBZCUCMZCLMZNW
      DWEWIWJOZWGCKUDMZAPZUEQZWDWEUFZWKDBCAIHGUGWNCNUHUIUJUKCRZUPMULQWKWOCWMUMA
      BCDEFGHIUNCUOUQURUSWHWJWFCMZNCWLDPZABPZUTZOZCSJWJWQOIXACWTSIWTSJXAWRWSVAV
      FVBCSVCVDWHWFWPJTWQNOWHWPWLAUTZWFWHWFWLOZWFAOZVGZWFXBJWHXCTZXDTZXETXFWHWL
      WFVEVHVFWGWDXGWEWGAWFOXDAWFVIWFAVJVKVLXCXDVMVNWFWLAKLVOVPVKWHWPWTRZXBCWTI
      VQWDWEXHXBOWGWLDABEFVRUSVSVTWFCWAWBVSWC $.
  $}

  ${
    structgrssvtx.g $e |- ( ph -> G Struct X ) $.
    structgrssvtx.v $e |- ( ph -> V e. Y ) $.
    structgrssvtx.e $e |- ( ph -> E e. Z ) $.
    structgrssvtx.s $e |- ( ph -> { <. ( Base ` ndx ) , V >. ,
                                    <. ( .ef ` ndx ) , E >. } C_ G ) $.
    $( Lemma for ~ structgrssvtx and ~ structgrssiedg .  (Contributed by AV,
       14-Oct-2020.)  (Proof shortened by AV, 12-Nov-2021.) $)
    structgrssvtxlem $p |- ( ph -> 2 <_ ( # ` dom G ) ) $=
      ( cnx cbs cfv cedgf cvv fvexd cstr wbr wcel slotsbaseefdif hashdmpropge2
      structex syl wne a1i ) ALMNZLONZDBCPPFGPALMQALOQIJACERSCPTHCEUCUDUGUHUEAU
      AUFKUB $.

    $( The set of vertices of a graph represented as an extensible structure
       with vertices as base set and indexed edges.  (Contributed by AV,
       14-Oct-2020.)  (Proof shortened by AV, 12-Nov-2021.) $)
    structgrssvtx $p |- ( ph -> ( Vtx ` G ) = V ) $=
      ( structgrssvtxlem cnx cbs cfv cop cedgf cpr wcel opex wss wa prss sylbir
      simpl syl basvtxval ) ACDEFHABCDEFGHIJKLIAMNOZDPZMQOZBPZRCUAZUICSZKULUMUK
      CSZUBUMUIUKCUHDTUJBTUCUMUNUEUDUFUG $.

    $( The set of indexed edges of a graph represented as an extensible
       structure with vertices as base set and indexed edges.  (Contributed by
       AV, 14-Oct-2020.)  (Proof shortened by AV, 12-Nov-2021.) $)
    structgrssiedg $p |- ( ph -> ( iEdg ` G ) = E ) $=
      ( structgrssvtxlem cnx cbs cfv cop cedgf cpr wcel opex wss wa prss sylbir
      simpr syl edgfiedgval ) ABCEGHABCDEFGHIJKLJAMNOZDPZMQOZBPZRCUAZUKCSZKULUI
      CSZUMUBUMUIUKCUHDTUJBTUCUNUMUEUDUFUG $.
  $}

  ${
    $d G a b $.
    structgrssvtxOLD.g $e |- ( ph -> G e. X ) $.
    structgrssvtxOLD.f $e |- ( ph -> Fun G ) $.
    structgrssvtxOLD.v $e |- ( ph -> V e. Y ) $.
    structgrssvtxOLD.e $e |- ( ph -> E e. Z ) $.
    structgrssvtxOLD.s $e |- ( ph -> { <. ( Base ` ndx ) , V >. ,
                                       <. ( .ef ` ndx ) , E >. } C_ G ) $.
    $( Obsolete version of ~ structgrssvtxlem as of 14-Nov-2021.  (Contributed
       by AV, 14-Oct-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    structgrssvtxlemOLD $p |- ( ph -> 2 <_ ( # ` dom G ) ) $=
      ( va vb cdm wcel wne cfv cnx wss cvv cv wrex c2 chash cle wbr dmexg cedgf
      syl cbs cpr cop wceq dmpropg syl2anc dmss eqsstr3d wa fvex slotsbaseefdif
      prss wi neeq1 neeq2 rspc2ev mp3an3 a1i syl5bir mpd hashge2el2difr ) ACOZU
      APZMUBZNUBZQZNVLUCMVLUCZUDVLUERUFUGACEPVMHCEUHUJASUKRZSUIRZULZVLTZVQAVTVR
      DUMVSBUMULZOZVLADFPBGPWCVTUNJKVRDVSBFGUOUPAWBCTWCVLTLWBCUQUJURWAVRVLPZVSV
      LPZUSZAVQVRVSVLSUKUTSUIUTVBWFVQVCAWDWEVRVSQZVQVAVPWGVRVOQMNVRVSVLVLVNVRVO
      VDVOVSVRVEVFVGVHVIVJMNVLUAVKUP $.

    $( Obsolete version of ~ structgrssvtx as of 14-Nov-2021.  (Contributed by
       AV, 14-Oct-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    structgrssvtxOLD $p |- ( ph -> ( Vtx ` G ) = V ) $=
      ( structgrssvtxlemOLD cnx cbs cfv cop cedgf wcel opex cpr wss prss sylbir
      wa simpl syl basvtxvalOLD ) ACDEFHIABCDEFGHIJKLMJANOPZDQZNRPZBQZUACUBZUJC
      SZLUMUNULCSZUEUNUJULCUIDTUKBTUCUNUOUFUDUGUH $.

    $( Obsolete version of ~ structgrssiedg as of 14-Nov-2021.  (Contributed by
       AV, 14-Oct-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    structgrssiedgOLD $p |- ( ph -> ( iEdg ` G ) = E ) $=
      ( structgrssvtxlemOLD cnx cbs cfv cop cedgf wcel opex cpr wss prss sylbir
      wa simpr syl edgfiedgvalOLD ) ABCEGHIABCDEFGHIJKLMKANOPZDQZNRPZBQZUACUBZU
      LCSZLUMUJCSZUNUEUNUJULCUIDTUKBTUCUOUNUFUDUGUH $.
  $}

  ${
    struct2grvtx.g $e |- G = { <. ( Base ` ndx ) , V >. ,
                               <. ( .ef ` ndx ) , E >. } $.
    $( A graph represented as an extensible structure with vertices as base set
       and indexed edges is actually an extensible structure.  (Contributed by
       AV, 23-Nov-2020.) $)
    struct2grstr $p |- G Struct <. ( Base ` ndx ) , ( .ef ` ndx ) >. $=
      ( cnx cedgf cfv baseltedgf edgfndxnn 2strstr1 ) CABEFGDHIJ $.

    $( The set of vertices of a graph represented as an extensible structure
       with vertices as base set and indexed edges.  (Contributed by AV,
       23-Sep-2020.) $)
    struct2grvtx $p |- ( ( V e. X /\ E e. Y ) -> ( Vtx ` G ) = V ) $=
      ( cnx cedgf cfv edgfndxnn baseltedgf structvtxval ) GHIABCDEJKFL $.

    $( The set of indexed edges of a graph represented as an extensible
       structure with vertices as base set and indexed edges.  (Contributed by
       AV, 23-Sep-2020.)  (Proof shortened by AV, 12-Nov-2021.) $)
    struct2griedg $p |- ( ( V e. X /\ E e. Y ) -> ( iEdg ` G ) = E ) $=
      ( wcel wa cnx cbs cfv cedgf cop cstr wbr struct2grstr a1i simpl simpr cpr
      wss eqimss2i structgrssiedg ) CDGZAEGZHZABCIJKZILKZMZDEBUINOUFABCFPQUDUER
      UDUESUGCMUHAMTZBUAUFBUJFUBQUC $.
  $}

  ${
    graop.h $e |- H = <. ( Vtx ` G ) , ( iEdg ` G ) >. $.
    $( Any representation of a graph ` G ` (especially as extensible structure
       ` G = { <. ( Base `` ndx ) , V >. , <. ( .ef `` ndx ) , E >. } ` ) is
       convertible in a representation of the graph as ordered pair.
       (Contributed by AV, 7-Oct-2020.) $)
    graop $p |- ( ( Vtx ` G ) = ( Vtx ` H )
                  /\ ( iEdg ` G ) = ( iEdg ` H ) ) $=
      ( cvtx cfv wceq ciedg cop fveq2i wcel fvex opvtxfv eqtr2i opiedgfv pm3.2i
      cvv mp2an ) ADEZBDEZFAGEZBGEZFSRTHZDEZRBUBDCIRPJZTPJZUCRFADKZAGKZTRPPLQMU
      AUBGEZTBUBGCIUDUEUHTFUFUGTRPPNQMO $.
  $}

  ${
    grastruct.h $e |- H = { <. ( Base ` ndx ) , ( Vtx ` G ) >. ,
                                <. ( .ef ` ndx ) , ( iEdg ` G ) >. } $.
    $( Any representation of a graph ` G ` (especially as ordered pair
       ` G = <. V , E >. ` ) is convertible in a representation of the graph as
       extensible structure.  (Contributed by AV, 8-Oct-2020.) $)
    grastruct $p |- ( ( Vtx ` G ) = ( Vtx ` H )
                      /\ ( iEdg ` G ) = ( iEdg ` H ) ) $=
      ( cvtx cfv wceq ciedg wcel struct2grvtx mp2an eqcomi struct2griedg pm3.2i
      cvv fvex ) ADEZBDEZFAGEZBGEZFQPPNHZRNHZQPFADOZAGOZRBPNNCIJKSRTUASRFUBUCRB
      PNNCLJKM $.
  $}

  ${
    $d E g $.  $d V g $.  $d ph g $.
    gropd.g $e |- ( ph -> A. g ( ( ( Vtx ` g ) = V /\ ( iEdg ` g ) = E )
                                   -> ps ) ) $.
    gropd.v $e |- ( ph -> V e. U ) $.
    gropd.e $e |- ( ph -> E e. W ) $.
    $( If any representation of a graph with vertices ` V ` and edges ` E ` has
       a certain property ` ps ` , then the ordered pair ` <. V , E >. ` of the
       set of vertices and the set of edges (which is such a representation of
       a graph with vertices ` V ` and edges ` E ` ) has this property.
       (Contributed by AV, 11-Oct-2020.) $)
    gropd $p |- ( ph -> [. <. V , E >. / g ]. ps ) $=
      ( cvv wcel cvtx cfv wceq ciedg wa wi fveq2 eqeq1d cop cv wal wsbc opvtxfv
      opex a1i opiedgfv jca syl2anc nfcv nfv nfsbc1v nfim anbi12d sbceq1a spcgf
      imbi12d syl3c ) AFEUAZKLZDUBZMNZFOZVBPNZEOZQZBRZDUCUTMNZFOZUTPNZEOZQZBDUT
      UDZVAAFEUFUGHAFCLZEGLZVMIJVOVPQVJVLEFCGUEEFCGUHUIUJVHVMVNRDUTKDUTUKVMVNDV
      MDULBDUTUMUNVBUTOZVGVMBVNVQVDVJVFVLVQVCVIFVBUTMSTVQVEVKEVBUTPSTUOBDUTUPUR
      UQUS $.

    $d S g $.
    grstructd.s $e |- ( ph -> S e. X ) $.
    grstructd.f $e |- ( ph -> Fun ( S \ { (/) } ) ) $.
    grstructd.d $e |- ( ph -> 2 <_ ( # ` dom S ) ) $.
    grstructd.b $e |- ( ph -> ( Base ` S ) = V ) $.
    grstructd.e $e |- ( ph -> ( .ef ` S ) = E ) $.
    $( If any representation of a graph with vertices ` V ` and edges ` E ` has
       a certain property ` ps ` , then any structure with base set ` V ` and
       value ` E ` in the slot for edge functions (which is such a
       representation of a graph with vertices ` V ` and edges ` E ` ) has this
       property.  (Contributed by AV, 12-Oct-2020.)  (Revised by AV,
       9-Jun-2021.) $)
    grstructd $p |- ( ph -> [. S / g ]. ps ) $=
      ( cvtx cfv wceq wcel cv ciedg wa wi wal wsbc cbs c0 csn cdif c2 cdm chash
      wfun cle wbr funvtxdmge2val syl2anc eqtrd funiedgdmge2val jca nfv nfsbc1v
      cedgf nfcv nfim fveq2 eqeq1d anbi12d sbceq1a imbi12d spcgf syl3c ) ACIUAE
      UBZRSZGTZVOUCSZFTZUDZBUEZEUFCRSZGTZCUCSZFTZUDZBECUGZMJAWCWEAWBCUHSZGACUIU
      JUKUOZULCUMUNSUPUQZWBWHTNOCURUSPUTAWDCVESZFAWIWJWDWKTNOCVAUSQUTVBWAWFWGUE
      ECIECVFWFWGEWFEVCBECVDVGVOCTZVTWFBWGWLVQWCVSWEWLVPWBGVOCRVHVIWLVRWDFVOCUC
      VHVIVJBECVKVLVMVN $.
  $}

  ${
    $d C g $.  $d E g $.  $d V g $.  $d ph g $.
    gropeld.g $e |- ( ph -> A. g ( ( ( Vtx ` g ) = V /\ ( iEdg ` g ) = E )
                                   -> g e. C ) ) $.
    gropeld.v $e |- ( ph -> V e. U ) $.
    gropeld.e $e |- ( ph -> E e. W ) $.
    $( If any representation of a graph with vertices ` V ` and edges ` E ` is
       an element of an arbitrary class ` C ` , then the ordered pair
       ` <. V , E >. ` of the set of vertices and the set of edges (which is
       such a representation of a graph with vertices ` V ` and edges ` E ` )
       is an element of this class ` C ` .  (Contributed by AV,
       11-Oct-2020.) $)
    gropeld $p |- ( ph -> <. V , E >. e. C ) $=
      ( cv wcel cop wsbc gropd sbcel1v sylib ) ADKBLZDFEMZNSBLARCDEFGHIJODSBPQ
      $.

    $d S g $.
    grstructeld.s $e |- ( ph -> S e. X ) $.
    grstructeld.f $e |- ( ph -> Fun ( S \ { (/) } ) ) $.
    grstructeld.d $e |- ( ph -> 2 <_ ( # ` dom S ) ) $.
    grstructeld.b $e |- ( ph -> ( Base ` S ) = V ) $.
    grstructeld.e $e |- ( ph -> ( .ef ` S ) = E ) $.
    $( If any representation of a graph with vertices ` V ` and edges ` E ` is
       an element of an arbitrary class ` C ` , then any structure with base
       set ` V ` and value ` E ` in the slot for edge functions (which is such
       a representation of a graph with vertices ` V ` and edges ` E ` ) is an
       element of this class ` C ` .  (Contributed by AV, 12-Oct-2020.)
       (Revised by AV, 9-Jun-2021.) $)
    grstructeld $p |- ( ph -> S e. C ) $=
      ( cv wcel wsbc grstructd sbcel1v sylib ) AERBSZECTCBSAUDCDEFGHIJKLMNOPQUA
      ECBUBUC $.
  $}

  ${
    setsvtx.i $e |- I = ( .ef ` ndx ) $.
    setsvtx.s $e |- ( ph -> G Struct X ) $.
    setsvtx.b $e |- ( ph -> ( Base ` ndx ) e. dom G ) $.
    setsvtx.e $e |- ( ph -> E e. W ) $.
    $( The vertices of a structure with a base set and an inserted resp.
       replaced slot for the edge function.  (Contributed by AV, 18-Jan-2020.)
       (Revised by AV, 16-Nov-2021.) $)
    setsvtx $p |- ( ph -> ( Vtx ` ( G sSet <. I , E >. ) ) = ( Base ` G ) ) $=
      ( cop csts co cvtx cfv cbs cnx cedgf cpr cvv csn cdif wfun cdm wceq fvexi
      c0 wss wcel a1i setsn0fun eqcomi basprssdmsets syl5eqss funvtxval syl2anc
      preq2i baseid slotsbaseefdif neeqtrri setsnid syl6eqr ) ACDBKLMZNOZVCPOZC
      POAVCUGUAUBUCQPOZQROZSZVCUDZUHVDVEUEACTBDEFHDTUIADQRGUFUJZJUKAVHVFDSVIVGD
      VFDVGGULUQACTBDEFHVJJIUMUNVCUOUPBDPCURVFVGDUSGUTVAVB $.

    $( The (indexed) edges of a structure with a base set and an inserted resp.
       replaced slot for the edge function.  (Contributed by AV, 7-Jun-2021.)
       (Revised by AV, 16-Nov-2021.) $)
    setsiedg $p |- ( ph -> ( iEdg ` ( G sSet <. I , E >. ) ) = E ) $=
      ( cnx cedgf cfv cop csts co ciedg wceq cvv syl2anc c0 csn cbs cpr cdm wss
      cdif wfun fvexd setsn0fun basprssdmsets funiedgval opeq1i oveq2i a1i wcel
      fveq2i cstr wbr structex syl edgfid setsid 3eqtr4d ) ACKLMZBNZOPZQMZVGLMZ
      CDBNZOPZQMZBAVGUAUBUGUHKUCMVEUDVGUEUFVHVIRACSBVEEFHAKLUIZJUJACSBVEEFHVMJI
      UKVGULTVLVHRAVKVGQVJVFCODVEBGUMUNUQUOACSUPZBEUPBVIRACFURUSVNHCFUTVAJSBLEC
      VBVCTVD $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Representations of graphs without edges
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    snstrvtxval.v $e |- V e. _V $.
    snstrvtxval.g $e |- G = { <. ( Base ` ndx ) , V >. } $.
    $( The set of vertices of a graph without edges represented as an
       extensible structure with vertices as base set and no indexed edges.
       See ~ vtxvalsnop for the (degenerated) case where
       ` V = ( Base `` ndx ) ` .  (Contributed by AV, 23-Sep-2020.) $)
    snstrvtxval $p |- ( V =/= ( Base ` ndx ) -> ( Vtx ` G ) = V ) $=
      ( cnx cbs cfv wne cvv cxp wcel c1st cif cvtx necom fvex funsndifnop sylbi
      wn wceq iffalsed vtxval a1i 1strbas mp1i 3eqtr4d ) BEFGZHZAIIJKZALGZAFGZM
      ZUKANGZBUHUIUJUKUHUGBHUISBUGOUGBAEFPCDQRUAUMULTUHAUBUCBIKBUKTUHCBAIDUDUEU
      F $.

    $( The set of indexed edges of a graph without edges represented as an
       extensible structure with vertices as base set and no indexed edges.
       See ~ iedgvalsnop for the (degenerated) case where
       ` V = ( Base `` ndx ) ` .  (Contributed by AV, 24-Sep-2020.) $)
    snstriedgval $p |- ( V =/= ( Base ` ndx )
                            -> ( iEdg ` G ) = (/) ) $=
      ( cnx cbs cfv wne ciedg cvv wcel cedgf c0 wceq a1i wn fvex csn cdm syl5eq
      cxp c2nd iedgval necom funsndifnop sylbi iffalsed snex syl5eqel edgfndxid
      cif mp2b slotsbaseefdif nesymi elsn sylnibr dmeqi dmsnopg neleqtrrd ndmfv
      cop mp1i syl 3eqtrd ) BEFGZHZAIGZAJJUAKZAUBGZALGZUKZVJMVGVKNVFAUCOVFVHVIV
      JVFVEBHVHPBVEUDVEBAEFQCDUEUFUGVFVJELGZAGZMAVEBVAZRZNZAJKVJVMNDVPAVOJDVOJK
      VPVNUHOUIAJUJULVFVLASZKPVMMNVFVQVERZVLVFVLVENZVLVRKVSPVFVEVLUMUNOVLVEELQU
      OUPVFVQVOSZVRAVODUQBJKVTVRNVFCVEBJURVBTUSVLAUTVCTVD $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Degenerated cases of representations of graphs
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Degenerated case 1 for vertices:  The set of vertices of the empty set is
     the empty set.  (Contributed by AV, 24-Sep-2020.) $)
  vtxval0 $p |- ( Vtx ` (/) ) = (/) $=
    ( cvv cxp wcel c1st cfv cbs cif cvtx 0nelxp iffalsei vtxval base0 3eqtr4i
    c0 ) NAABCZNDEZNFEZGQNHENOPQAAIJNKLM $.

  $( Degenerated case 1 for edges:  The set of indexed edges of the empty set
     is the empty set.  (Contributed by AV, 24-Sep-2020.) $)
  iedgval0 $p |- ( iEdg ` (/) ) = (/) $=
    ( c0 cvv cxp wcel cfv cedgf cif ciedg 0nelxp iffalsei iedgval c1 c8 df-edgf
    c2nd cdc str0 3eqtr4i ) ABBCDZAOEZAFEZGUAAHEASTUABBIJAKFLMPNQR $.

  ${
    vtxvalsnop.b $e |- B e. _V $.
    vtxvalsnop.g $e |- G = { <. B , B >. } $.
    $( Degenerated case 2 for vertices:  The set of vertices of a singleton
       containing an ordered pair with equal components is the singleton
       containing the component.  (Contributed by AV, 24-Sep-2020.)  (Proof
       shortened by AV, 12-Nov-2021.) $)
    vtxvalsnop $p |- ( Vtx ` G ) = { B } $=
      ( wceq csn cop cvtx cfv eqid funsneqopsn fveq2 snex opvtxfvi syl6eq mp2b
      ) AAEBAFZQGZEZBHIZQEAJAABCCDKSTRHIQBRHLQQAMZUANOP $.

    $( Degenerated case 2 for edges:  The set of indexed edges of a singleton
       containing an ordered pair with equal components is the singleton
       containing the component.  (Contributed by AV, 24-Sep-2020.)  (Proof
       shortened by AV, 12-Nov-2021.) $)
    iedgvalsnop $p |- ( iEdg ` G ) = { B } $=
      ( wceq csn cop ciedg eqid funsneqopsn fveq2 snex opiedgfvi syl6eq mp2b
      cfv ) AAEBAFZQGZEZBHPZQEAIAABCCDJSTRHPQBRHKQQALZUAMNO $.
  $}

  ${
    vtxval3sn.a $e |- A e. _V $.
    $( Degenerated case 3 for vertices:  The set of vertices of a singleton
       containing a singleton containing a singleton is the innermost
       singleton.  (Contributed by AV, 24-Sep-2020.) $)
    vtxval3sn $p |- ( Vtx ` { { { A } } } ) = { A } $=
      ( csn cop opid eqcomi sneqi vtxvalsnop ) AACCZCBIAADZJIABEFGH $.

    $( Degenerated case 3 for edges:  The set of indexed edges of a singleton
       containing a singleton containing a singleton is the innermost
       singleton.  (Contributed by AV, 24-Sep-2020.) $)
    iedgval3sn $p |- ( iEdg ` { { { A } } } ) = { A } $=
      ( csn cop opid eqcomi sneqi iedgvalsnop ) AACCZCBIAADZJIABEFGH $.
  $}

  $( Degenerated case 4 for vertices:  The set of vertices of a proper class is
     the empty set.  (Contributed by AV, 12-Oct-2020.) $)
  vtxvalprc $p |- ( C e/ _V -> ( Vtx ` C ) = (/) ) $=
    ( cvv wnel wcel wn cvtx cfv c0 wceq df-nel fvprc sylbi ) ABCABDEAFGHIABJAFK
    L $.

  $( Degenerated case 4 for edges:  The set of indexed edges of a proper class
     is the empty set.  (Contributed by AV, 12-Oct-2020.) $)
  iedgvalprc $p |- ( C e/ _V -> ( iEdg ` C ) = (/) ) $=
    ( cvv wnel wcel wn ciedg cfv c0 wceq df-nel fvprc sylbi ) ABCABDEAFGHIABJAF
    KL $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Edges as range of the edge function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Edg $.

  $( Extend class notation with the set of edges (of an undirected simple
     (hyper-/pseudo-)graph). $)
  cedg $a class Edg $.

  ${
    $( Define the class of edges of a graph, see also definition "E = E(G)" in
       section I.1 of [Bollobas] p. 1.  This definition is very general:  It
       defines edges of a class as the range of its edge function (which even
       needs not to be a function).  Therefore, this definition could also be
       used for hypergraphs, pseudographs and multigraphs.  In these cases,
       however, the (possibly more than one) edges connecting the same vertices
       could not be distinguished anymore.  In some cases, this is no problem,
       so theorems with ` Edg ` are meaningful nevertheless (e.g., ~ edguhgr ).
       Usually, however, this definition is used only for undirected simple
       (hyper-/pseudo-)graphs (with or without loops).  (Contributed by AV,
       1-Jan-2020.)  (Revised by AV, 13-Oct-2020.) $)
    df-edg $a |- Edg = ( g e. _V |-> ran ( iEdg ` g ) ) $.
  $}

  ${
    $d G g $.
    $( The edges of a graph.  (Contributed by AV, 1-Jan-2020.)  (Revised by AV,
       13-Oct-2020.)  (Revised by AV, 8-Dec-2021.) $)
    edgval $p |- ( Edg ` G ) = ran ( iEdg ` G ) $=
      ( vg cvv wcel cedg cfv ciedg crn wceq cv df-edg a1i fveq2 rneqd adantl id
      cmpt fvex c0 fvprc rnex fvmptd wn rn0 3eqtr4rd pm2.61i ) ACDZAEFZAGFZHZIU
      GBABJZGFZHZUJCECEBCUMQIUGBKLUKAIZUMUJIUGUNULUIUKAGMNOUGPUJCDUGUIAGRUALUBU
      GUCZSHZSUJUHUPSIUOUDLUOUISAGTNAETUEUF $.

    $d V g $.
    $( Obsolete version of ~ edgval as of 8-Dec-2021.  (Contributed by AV,
       1-Jan-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    edgvalOLD $p |- ( G e. V -> ( Edg ` G ) = ran ( iEdg ` G ) ) $=
      ( vg wcel cv ciedg cfv crn cvv cedg cmpt wceq df-edg a1i fveq2 rneqd elex
      adantl fvex rnex fvmptd ) ABDZCACEZFGZHZAFGZHZIJIJCIUEKLUBCMNUCALZUEUGLUB
      UHUDUFUCAFOPRABQUGIDUBUFAFSTNUA $.
  $}

  ${
    iedgedg.e $e |- E = ( iEdg ` G ) $.
    $( An indexed edge is an edge.  (Contributed by AV, 19-Dec-2021.) $)
    iedgedg $p |- ( ( Fun E /\ I e. dom E ) -> ( E ` I ) e. ( Edg ` G ) ) $=
      ( wfun cdm wcel cfv crn cedg fvelrn ciedg edgval rneqi eqtr4i syl6eleqr
      wa ) AECAFGQCAHAIZBJHZCAKSBLHZIRBMATDNOP $.
  $}

  $( The edges of a graph represented as ordered pair.  (Contributed by AV,
     1-Jan-2020.)  (Revised by AV, 13-Oct-2020.) $)
  edgopval $p |- ( ( V e. W /\ E e. X ) -> ( Edg ` <. V , E >. ) = ran E ) $=
    ( wcel wa cop cedg cfv ciedg crn edgval opiedgfv rneqd syl5eq ) BCEADEFZBAG
    ZHIQJIZKAKQLPRAABCDMNO $.

  $( The edges of a graph represented as ordered pair, shown as operation
     value.  Although a little less intuitive, this representation is often
     used because it is shorter than the representation as function value of a
     graph given as ordered pair, see ~ edgopval .  The representation
     ` ran E ` for the set of edges is even shorter, though.  (Contributed by
     AV, 2-Jan-2020.)  (Revised by AV, 13-Oct-2020.) $)
  edgov $p |- ( ( V e. W /\ E e. X ) -> ( V Edg E ) = ran E ) $=
    ( wcel wa cedg co cop cfv crn df-ov edgopval syl5eq ) BCEADEFBAGHBAIGJAKBAG
    LABCDMN $.

  ${
    edgstruct.s $e |- G = { <. ( Base ` ndx ) , V >. ,
                            <. ( .ef ` ndx ) , E >. } $.
    $( The edges of a graph represented as an extensible structure with
       vertices as base set and indexed edges.  (Contributed by AV,
       13-Oct-2020.) $)
    edgstruct $p |- ( ( V e. W /\ E e. X ) -> ( Edg ` G ) = ran E ) $=
      ( wcel wa cedg cfv ciedg crn edgval struct2griedg rneqd syl5eq ) CDGAEGHZ
      BIJBKJZLALBMQRAABCDEFNOP $.
  $}

  ${
    $d E x $.  $d I x $.
    edgiedgb.i $e |- I = ( iEdg ` G ) $.
    $( A set is an edge iff it is an indexed edge.  (Contributed by AV,
       17-Oct-2020.)  (Revised by AV, 8-Dec-2021.) $)
    edgiedgb $p |- ( Fun I -> ( E e. ( Edg ` G )
                                <-> E. x e. dom I E = ( I ` x ) ) ) $=
      ( cedg cfv wcel crn wfun cv wceq cdm wrex ciedg edgval eqcomi rneqi eqtri
      eleq2i elrnrexdmb syl5bb ) BCFGZHBDIZHDJBAKDGLADMNUCUDBUCCOGZIUDCPUEDDUEE
      QRSTADBUAUB $.

    $( Obsolete version of ~ edgiedgb as of 8-Dec-2021.  (Contributed by AV,
       17-Oct-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    edgiedgbOLD $p |- ( ( G e. W /\ Fun I ) -> ( E e. ( Edg ` G )
                                         <-> E. x e. dom I E = ( I ` x ) ) ) $=
      ( wcel wfun wa cedg cfv crn wceq cdm wrex ciedg edgvalOLD adantr eqcomi
      cv a1i rneqd eqtrd eleq2d wb elrnrexdmb adantl bitrd ) CEGZDHZIZBCJKZGBDL
      ZGZBATDKMADNOZUKULUMBUKULCPKZLZUMUIULUQMUJCEQRUKUPDUPDMUKDUPFSUAUBUCUDUJU
      NUOUEUIADBUFUGUH $.
  $}

  ${
    edg0iedg0.i $e |- I = ( iEdg ` G ) $.
    edg0iedg0.e $e |- E = ( Edg ` G ) $.
    $( There is no edge in a graph iff its edge function is empty.
       (Contributed by AV, 15-Dec-2020.)  (Revised by AV, 8-Dec-2021.) $)
    edg0iedg0 $p |- ( Fun I -> ( E = (/) <-> I = (/) ) ) $=
      ( wfun c0 wceq ciedg cfv crn wb cedg edgval eqtri eqeq1i a1i eqcomi rneqi
      wrel funrel relrn0 bicomd syl 3bitrd ) CFZAGHZBIJZKZGHZCKZGHZCGHZUGUJLUFA
      UIGABMJUIEBNOPQUJULLUFUIUKGUHCCUHDRSPQUFCTZULUMLCUAUNUMULCUBUCUDUE $.

    $( Obsolete version of ~ edg0iedg0 as of 8-Dec-2021.  (Contributed by AV,
       15-Dec-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    edg0iedg0OLD $p |- ( ( G e. W /\ Fun I ) -> ( E = (/) <-> I = (/) ) ) $=
      ( wcel wfun wa c0 wceq cfv crn cedg edgvalOLD syl5eq adantr eqeq1d eqcomi
      ciedg a1i rneqd wb wrel funrel relrn0 bicomd syl adantl 3bitrd ) BDGZCHZI
      ZAJKBTLZMZJKCMZJKZCJKZUMAUOJUKAUOKULUKABNLUOFBDOPQRUMUOUPJUMUNCUNCKUMCUNE
      SUAUBRULUQURUCZUKULCUDZUSCUEUTURUQCUFUGUHUIUJ $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Undirected graphs
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  For undirected graphs, we will have the following hierarchy/taxonomy:

  * Undirected Hypergraph: ` UHGraph `

  * Undirected loop-free graphs: ULFGraph (not defined formally yet)

  * Undirected simple Hypergraph: ` USHGraph `
    => ` USHGraph C_ UHGraph ` ( ~ ushgruhgr )

  * Undirected Pseudograph: ` UPGraph `
    => ` UPGraph C_ UHGraph ` ( ~ upgruhgr )

  * Undirected loop-free hypergraph: ULFHGraph (not defined formally yet)
    => ULFHGraph ` C_ UHGraph `
    and ULFHGraph ` C_ ` ULFGraph

  * Undirected loop-free simple hypergraph: ULFSHGraph (not defined formally
    yet)
    => ULFSHGraph ` C_ USHGraph `
    and ULFSHGraph ` C_ ` ULFHGraph

  * Undirected simple Pseudograph: ` USPGraph `
    => ` USPGraph C_ UPGraph ` ( ~ uspgrupgr )
    and ` USPGraph C_ USHGraph ` ( ~ uspgrushgr ),
    see also ~ uspgrupgrushgr

  * Undirected Muligraph: ` UMGraph `
    => ` UMGraph C_ UPGraph ` ( ~ umgrupgr )
    and ` UMGraph C_ ` ULFHGraph ( ~ umgrislfupgr )

  * Undirected simple Graph: ` USGraph `
    => ` USGraph C_ USPGraph ` ( ~ usgruspgr )
    and ` USGraph C_ UMGraph ` ( ~ usgrumgr )
    and ` USGraph C_ ` ULFSHGraph ( ~ usgrislfuspgr )
    see also ~ usgrumgruspgr

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Undirected hypergraphs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c UHGraph $.
  $c USHGraph $.

  $( Extend class notation with undirected hypergraphs. $)
  cuhgr $a class UHGraph $.

  $( Extend class notation with undirected simple hypergraphs. $)
  cushgr $a class USHGraph $.

  ${
    $d e g v $.
    $( Define the class of all undirected hypergraphs.  An undirected
       hypergraph consists of a set ` v ` (of "vertices") and a function ` e `
       (representing indexed "edges") into the power set of this set (the empty
       set excluded).  (Contributed by Alexander van der Vekens, 26-Dec-2017.)
       (Revised by AV, 8-Oct-2020.) $)
    df-uhgr $a |- UHGraph = { g | [. ( Vtx ` g ) / v ]. [. ( iEdg ` g ) / e ].
                                  e : dom e --> ( ~P v \ { (/) } ) } $.

    $( Define the class of all undirected simple hypergraphs.  An undirected
       simple hypergraph is a special (non-simple, multiple, multi-) hypergraph
       for which the edge function ` e ` is an injective (one-to-one) function
       into subsets of the set of vertices ` v ` , representing the (one or
       more) vertices incident to the edge.  This definition corresponds to the
       definition of hypergraphs in section I.1 of [Bollobas] p. 7 (except that
       the empty set seems to be allowed to be an "edge") or section 1.10 of
       [Diestel] p. 27, where "E is a subset of [[...] the power set of V, that
       is the set of all subsets of V" resp.  "the elements of E are non-empty
       subsets (of any cardinality) of V".  (Contributed by AV, 19-Jan-2020.)
       (Revised by AV, 8-Oct-2020.) $)
    df-ushgr $a |- USHGraph = { g | [. ( Vtx ` g ) / v ].
                [. ( iEdg ` g ) / e ]. e : dom e -1-1-> ( ~P v \ { (/) } ) } $.
  $}

  ${
    $d g h v e $.  $d E h $.  $d G h $.  $d V h $.
    isuhgr.v $e |- V = ( Vtx ` G ) $.
    isuhgr.e $e |- E = ( iEdg ` G ) $.
    $( The predicate "is an undirected hypergraph."  (Contributed by Alexander
       van der Vekens, 26-Dec-2017.)  (Revised by AV, 9-Oct-2020.) $)
    isuhgr $p |- ( G e. U -> ( G e. UHGraph
                               <-> E : dom E --> ( ~P V \ { (/) } ) ) ) $=
      ( ve vv vg vh wcel cv cdm cpw cdif ciedg cfv cvtx wceq fveq2 cuhgr c0 csn
      wsbc cab df-uhgr eleq2i syl6eqr dmeqd eqcomi dmeqi syl6eq difeq1d feq123d
      wf pweqd weq cvv fvexd wa adantr simpr sbcied2 cbvabv elab2g syl5bb ) CUA
      KCGLZMZHLZNZUBUCZOZVGUOZGILZPQZUDZHVNRQZUDZIUEZKCAKBMZDNZVKOZBUOZUAVSCHGI
      UFUGJLZPQZMZWDRQZNZVKOZWEUOZWCJCVSAWDCSZWFVTWIWBWEBWKWECPQZBWDCPTZFUHWKWF
      WLMVTWKWEWLWMUIWLBBWLFUJUKULWKWHWAVKWKWGDWKWGCRQDWDCRTEUHUPUMUNVRWJIJIJUQ
      ZVPWJHVQWGURWNVNRUSVNWDRTWNVIWGSZUTZVMWJGVOWEURWPVNPUSWNVOWESWOVNWDPTVAWP
      VGWESZUTZVHWFVLWIVGWEWPWQVBZWRVGWEWSUIWPVLWISWQWPVJWHVKWPVIWGWNWOVBUPUMVA
      UNVCVCVDVEVF $.

    $( The predicate "is an undirected simple hypergraph."  (Contributed by AV,
       19-Jan-2020.)  (Revised by AV, 9-Oct-2020.) $)
    isushgr $p |- ( G e. U -> ( G e. USHGraph
                               <-> E : dom E -1-1-> ( ~P V \ { (/) } ) ) ) $=
      ( ve vv vg vh wcel cv cdm cpw cdif ciedg cfv cvtx wceq fveq2 csn wf1 wsbc
      cushgr c0 df-ushgr eleq2i syl6eqr dmeqd eqcomi dmeqi syl6eq pweqd difeq1d
      cab f1eq123d weq cvv fvexd wa adantr simpr sbcied2 cbvabv elab2g syl5bb )
      CUDKCGLZMZHLZNZUEUAZOZVGUBZGILZPQZUCZHVNRQZUCZIUOZKCAKBMZDNZVKOZBUBZUDVSC
      HGIUFUGJLZPQZMZWDRQZNZVKOZWEUBZWCJCVSAWDCSZWFVTWIWBWEBWKWECPQZBWDCPTZFUHW
      KWFWLMVTWKWEWLWMUIWLBBWLFUJUKULWKWHWAVKWKWGDWKWGCRQDWDCRTEUHUMUNUPVRWJIJI
      JUQZVPWJHVQWGURWNVNRUSVNWDRTWNVIWGSZUTZVMWJGVOWEURWPVNPUSWNVOWESWOVNWDPTV
      AWPVGWESZUTZVHWFVLWIVGWEWPWQVBZWRVGWEWSUIWPVLWISWQWPVJWHVKWPVIWGWNWOVBUMU
      NVAUPVCVCVDVEVF $.
  $}

  ${
    uhgrf.v $e |- V = ( Vtx ` G ) $.
    uhgrf.e $e |- E = ( iEdg ` G ) $.
    $( The edge function of an undirected hypergraph is a function into the
       power set of the set of vertices.  (Contributed by Alexander van der
       Vekens, 26-Dec-2017.)  (Revised by AV, 9-Oct-2020.) $)
    uhgrf $p |- ( G e. UHGraph -> E : dom E --> ( ~P V \ { (/) } ) ) $=
      ( cuhgr wcel cdm cpw c0 csn cdif wf isuhgr ibi ) BFGAHCIJKLAMFABCDENO $.

    $( The edge function of an undirected simple hypergraph is a one-to-one
       function into the power set of the set of vertices.  (Contributed by AV,
       9-Oct-2020.) $)
    ushgrf $p |- ( G e. USHGraph -> E : dom E -1-1-> ( ~P V \ { (/) } ) ) $=
      ( cushgr wcel cdm cpw c0 csn cdif wf1 isushgr ibi ) BFGAHCIJKLAMFABCDENO
      $.

    $( An edge is a subset of vertices.  (Contributed by Alexander van der
       Vekens, 26-Dec-2017.)  (Revised by AV, 18-Jan-2020.) $)
    uhgrss $p |- ( ( G e. UHGraph /\ F e. dom E ) -> ( E ` F ) C_ V ) $=
      ( cuhgr wcel cdm wa cfv cpw c0 csn cdif uhgrf ffvelrnda eldifad elpwid )
      CGHZBAIZHJZBAKZDUBUCDLZMNZTUAUDUEOBAACDEFPQRS $.

    uhgreq12g.w $e |- W = ( Vtx ` H ) $.
    uhgreq12g.f $e |- F = ( iEdg ` H ) $.
    $( If two sets have the same vertices and the same edges, one set is a
       hypergraph iff the other set is a hypergraph.  (Contributed by Alexander
       van der Vekens, 26-Dec-2017.)  (Revised by AV, 18-Jan-2020.) $)
    uhgreq12g $p |- ( ( ( G e. X /\ H e. Y ) /\ ( V = W /\ E = F ) )
                     -> ( G e. UHGraph <-> H e. UHGraph ) ) $=
      ( wcel wa wceq cuhgr cdm cpw cdif adantr c0 wf wb isuhgr simpr dmeqd pweq
      csn difeq1d feq123d adantl bicomd sylan9bbr bitrd ) CGMZDHMZNZEFOZABOZNZN
      CPMZAQZERZUAUHZSZAUBZDPMZUQVAVFUCZUTUOVHUPGACEIJUDTTUTVFBQZFRZVDSZBUBZUQV
      GUTVBVIVEVKABURUSUEZUTABVMUFURVEVKOUSURVCVJVDEFUGUITUJUQVGVLUPVGVLUCUOHBD
      FKLUDUKULUMUN $.
  $}

  ${
    uhgrfun.e $e |- E = ( iEdg ` G ) $.
    $( The edge function of an undirected hypergraph is a function.
       (Contributed by Alexander van der Vekens, 26-Dec-2017.)  (Revised by AV,
       15-Dec-2020.) $)
    uhgrfun $p |- ( G e. UHGraph -> Fun E ) $=
      ( cuhgr wcel cdm cvtx cfv cpw c0 csn cdif eqid uhgrf ffund ) BDEAFBGHZIJK
      LAABPPMCNO $.

    $( An edge is a nonempty subset of vertices.  (Contributed by Mario
       Carneiro, 11-Mar-2015.)  (Revised by AV, 15-Dec-2020.) $)
    uhgrn0 $p |- ( ( G e. UHGraph /\ E Fn A /\ F e. A )
                   -> ( E ` F ) =/= (/) ) $=
      ( cuhgr wcel wfn w3a cfv cvtx cpw c0 csn cdif wne wa wf cdm eqid fndm imp
      uhgrf feq2d syl5ibcom ffvelrnda 3impa eldifsni syl ) DFGZBAHZCAGZICBJZDKJ
      ZLZMNOZGZUMMPUJUKULUQUJUKQAUPCBUJUKAUPBRZUJBSZUPBRUKURBDUNUNTEUCUKUSAUPBA
      BUAUDUEUBUFUGUMUOMUHUI $.
  $}

  ${
    lpvtx.i $e |- I = ( iEdg ` G ) $.
    $( The endpoints of a loop (which is an edge at index ` J ` ) are two
       (identical) vertices ` A ` .  (Contributed by AV, 1-Feb-2021.) $)
    lpvtx $p |- ( ( G e. UHGraph /\ J e. dom I /\ ( I ` J ) = { A } )
                  -> A e. ( Vtx ` G ) ) $=
      ( cuhgr wcel cdm cfv csn wceq w3a c0 wne cvtx 3ad2ant3 mpd wss wb cvv wfn
      simp1 wfun uhgrfun funfn sylib 3ad2ant1 simp2 uhgrn0 syl3anc neeq1 biimpd
      wi eqid uhgrss 3adant3 sseq1 mpbid snnzb snssg sylbir syl5ibrcom ) BFGZDC
      HZGZDCIZAJZKZLZVGMNZABOIZGZVIVFMNZVJVIVCCVDUAZVEVMVCVEVHUBVCVEVNVHVCCUCVN
      CBEUDCUEUFUGVCVEVHUHVDCDBEUIUJVHVCVMVJUMVEVHVMVJVFVGMUKULPQVIVLVJVGVKRZVI
      VFVKRZVOVCVEVPVHCDBVKVKUNEUOUPVHVCVPVOSVEVFVGVKUQPURVJATGVLVOSAUSAVKTUTVA
      VBQ $.
  $}

  $( An undirected simple hypergraph is an undirected hypergraph.  (Contributed
     by AV, 19-Jan-2020.)  (Revised by AV, 9-Oct-2020.) $)
  ushgruhgr $p |- ( G e. USHGraph -> G e. UHGraph ) $=
    ( cushgr wcel cuhgr ciedg cfv cdm cvtx cpw csn cdif wf1 eqid ushgrf f1f syl
    c0 wf isuhgr mpbird ) ABCZADCAEFZGZAHFZIQJKZUBRZUAUCUEUBLUFUBAUDUDMZUBMZNUC
    UEUBOPBUBAUDUGUHST $.

  $( The property of being an undirected hypergraph represented as an ordered
     pair.  The representation as an ordered pair is the usual representation
     of a graph, see section I.1 of [Bollobas] p. 1.  (Contributed by AV,
     1-Jan-2020.)  (Revised by AV, 9-Oct-2020.) $)
  isuhgrop $p |- ( ( V e. W /\ E e. X )
                   -> ( <. V , E >. e. UHGraph
                        <-> E : dom E --> ( ~P V \ { (/) } ) ) ) $=
    ( wcel wa cop cuhgr ciedg cfv cdm cvtx cpw c0 csn cdif wf cvv wb eqid dmeqd
    opex isuhgr mp1i opiedgfv opvtxfv pweqd difeq1d feq123d bitrd ) BCEADEFZBAG
    ZHEZULIJZKZULLJZMZNOZPZUNQZAKZBMZURPZAQULREUMUTSUKBAUBRUNULUPUPTUNTUCUDUKUO
    VAUSVCUNAABCDUEZUKUNAVDUAUKUQVBURUKUPBABCDUFUGUHUIUJ $.

  ${
    uhgr0e.g $e |- ( ph -> G e. W ) $.
    uhgr0e.e $e |- ( ph -> ( iEdg ` G ) = (/) ) $.
    $( The empty graph, with vertices but no edges, is a hypergraph.
       (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by AV,
       25-Nov-2020.) $)
    uhgr0e $p |- ( ph -> G e. UHGraph ) $=
      ( cuhgr wcel c0 cdm cvtx cfv cpw csn cdif wf f0 dm0 wb eqid syl isuhgr id
      feq2i mpbir ciedg wceq dmeq feq12d bitrd mpbiri ) ABFGZHIZBJKZLHMNZHOZUOH
      UNHOUNPULHUNHQUCUDAUKBUEKZIZUNUPOZUOABCGUKURRDCUPBUMUMSUPSUATAUPHUFZURUOR
      EUSUQULUNUPHUSUBUPHUGUHTUIUJ $.
  $}

  $( The null graph, with no vertices, is a hypergraph if and only if the edge
     function is empty.  (Contributed by Alexander van der Vekens,
     27-Dec-2017.)  (Revised by AV, 9-Oct-2020.) $)
  uhgr0vb $p |- ( ( G e. W /\ ( Vtx ` G ) = (/) )
                -> ( G e. UHGraph <-> ( iEdg ` G ) = (/) ) ) $=
    ( wcel cvtx cfv c0 wceq wa cuhgr ciedg cdm cpw cdif eqid uhgrf pweq difeq1d
    csn wf pw0 difeq1i difid eqtri syl6eq adantl feq3d f00 simplbi syl6bi simpl
    syl5 wi simpr uhgr0e ex adantr impbid ) ABCZADEZFGZHZAICZAJEZFGZVBVCKZUSLZF
    RZMZVCSZVAVDVCAUSUSNVCNOVAVIVEFVCSZVDVAVHFVCVEUTVHFGURUTVHFLZVGMZFUTVFVKVGU
    SFPQVLVGVGMFVKVGVGTUAVGUBUCUDUEUFVJVDVEFGVEVCUGUHUIUKURVDVBULUTURVDVBURVDHA
    BURVDUJURVDUMUNUOUPUQ $.

  $( The null graph represented by an empty set is a hypergraph.  (Contributed
     by AV, 9-Oct-2020.) $)
  uhgr0 $p |- (/) e. UHGraph $=
    ( c0 cuhgr wcel cdm cpw csn cdif wf f0 dm0 difeq1i difid eqtri feq23i mpbir
    pw0 cvv wb cfv eqcomi 0ex cvtx vtxval0 ciedg iedgval0 isuhgr ax-mp ) ABCZAD
    ZAEZAFZGZAHZUMAAAHAIUIULAAAJULUKUKGAUJUKUKPKUKLMNOAQCUHUMRUAQAAAAUBSAUCTAUD
    SAUETUFUGO $.

  ${
    uhgrun.g $e |- ( ph -> G e. UHGraph ) $.
    uhgrun.h $e |- ( ph -> H e. UHGraph ) $.
    uhgrun.e $e |- E = ( iEdg ` G ) $.
    uhgrun.f $e |- F = ( iEdg ` H ) $.
    uhgrun.vg $e |- V = ( Vtx ` G ) $.
    uhgrun.vh $e |- ( ph -> ( Vtx ` H ) = V ) $.
    uhgrun.i $e |- ( ph -> ( dom E i^i dom F ) = (/) ) $.
    ${
      uhgrun.u $e |- ( ph -> U e. W ) $.
      uhgrun.v $e |- ( ph -> ( Vtx ` U ) = V ) $.
      uhgrun.un $e |- ( ph -> ( iEdg ` U ) = ( E u. F ) ) $.
      $( The union ` U ` of two (undirected) hypergraphs ` G ` and ` H ` with
         the same vertex set ` V ` is a hypergraph with the vertex ` V ` and
         the union ` ( E u. F ) ` of the (indexed) edges.  (Contributed by AV,
         11-Oct-2020.)  (Revised by AV, 24-Oct-2021.) $)
      uhgrun $p |- ( ph -> U e. UHGraph ) $=
        ( wcel wf cuhgr ciedg cfv cdm cvtx cpw c0 csn cdif cun uhgrf syl eqcomd
        eqid pweqd difeq1d feq3d mpbird fun2d dmeqd dmun syl6eq feq123d isuhgr
        wb ) ABUASZBUBUCZUDZBUEUCZUFZUGUHZUIZVGTZAVMCUDZDUDZUJZGUFZVKUIZCDUJZTA
        VNVOVRCDAEUASVNVRCTICEGMKUKULAVOVRDTVOFUEUCZUFZVKUIZDTZAFUASWCJDFVTVTUN
        LUKULAVRWBDVOAVQWAVKAGVTAVTGNUMUOUPUQUROUSAVHVPVLVRVGVSRAVHVSUDVPAVGVSR
        UTCDVAVBAVJVQVKAVIGQUOUPVCURABHSVFVMVEPHVGBVIVIUNVGUNVDULUR $.
    $}

    $( The union of two (undirected) hypergraphs (with the same vertex set)
       represented as ordered pair:  If ` <. V , E >. ` and ` <. V , F >. ` are
       hypergraphs, then ` <. V , E u. F >. ` is a hypergraph (the vertex set
       stays the same, but the edges from both graphs are kept, possibly
       resulting in two edges between two vertices).  (Contributed by Alexander
       van der Vekens, 27-Dec-2017.)  (Revised by AV, 11-Oct-2020.)  (Revised
       by AV, 24-Oct-2021.) $)
    uhgrunop $p |- ( ph -> <. V , ( E u. F ) >. e. UHGraph ) $=
      ( cvv wcel cvtx cfv fvex eqeltri ciedg cun cop opex a1i wceq unex opvtxfv
      wa pm3.2i mp1i opiedgfv uhgrun ) AFBCUAZUBZBCDEFNGHIJKLMUNNOAFUMUCUDFNOZU
      MNOZUHZUNPQFUEAUOUPFDPQNKDPRSBCBDTQNIDTRSCETQNJETRSUFUIZUMFNNUGUJUQUNTQUM
      UEAURUMFNNUKUJUL $.
  $}

  ${
    ushgrun.g $e |- ( ph -> G e. USHGraph ) $.
    ushgrun.h $e |- ( ph -> H e. USHGraph ) $.
    ushgrun.e $e |- E = ( iEdg ` G ) $.
    ushgrun.f $e |- F = ( iEdg ` H ) $.
    ushgrun.vg $e |- V = ( Vtx ` G ) $.
    ushgrun.vh $e |- ( ph -> ( Vtx ` H ) = V ) $.
    ushgrun.i $e |- ( ph -> ( dom E i^i dom F ) = (/) ) $.
    ${
      ushgrun.u $e |- ( ph -> U e. W ) $.
      ushgrun.v $e |- ( ph -> ( Vtx ` U ) = V ) $.
      ushgrun.un $e |- ( ph -> ( iEdg ` U ) = ( E u. F ) ) $.
      $( The union ` U ` of two (undirected) simple hypergraphs ` G ` and ` H `
         with the same vertex set ` V ` is a (not necessarily simple)
         hypergraph with the vertex ` V ` and the union ` ( E u. F ) ` of the
         (indexed) edges.  (Contributed by AV, 29-Nov-2020.)  (Revised by AV,
         24-Oct-2021.) $)
      ushgrun $p |- ( ph -> U e. UHGraph ) $=
        ( cushgr wcel cuhgr ushgruhgr syl uhgrun ) ABCDEFGHAESTEUATIEUBUCAFSTFU
        ATJFUBUCKLMNOPQRUD $.
    $}

    $( The union of two (undirected) simple hypergraphs (with the same vertex
       set) represented as ordered pair:  If ` <. V , E >. ` and
       ` <. V , F >. ` are simple hypergraphs, then ` <. V , E u. F >. ` is a
       (not necessarily simple) hypergraph - the vertex set stays the same, but
       the edges from both graphs are kept, possibly resulting in two edges
       between two vertices.  (Contributed by AV, 29-Nov-2020.)  (Revised by
       AV, 24-Oct-2021.) $)
    ushgrunop $p |- ( ph -> <. V , ( E u. F ) >. e. UHGraph ) $=
      ( cushgr wcel cuhgr ushgruhgr syl uhgrunop ) ABCDEFADNODPOGDQRAENOEPOHEQR
      IJKLMS $.
  $}

  ${
    uhgrstrrepe.v $e |- V = ( Base ` G ) $.
    uhgrstrrepe.i $e |- I = ( .ef ` ndx ) $.
    uhgrstrrepe.s $e |- ( ph -> G Struct X ) $.
    uhgrstrrepe.b $e |- ( ph -> ( Base ` ndx ) e. dom G ) $.
    uhgrstrrepe.w $e |- ( ph -> E e. W ) $.
    uhgrstrrepe.e $e |- ( ph -> E : dom E --> ( ~P V \ { (/) } ) ) $.
    $( Replacing (or adding) the edges (between elements of the base set) of an
       extensible structure results in a hypergraph.  Instead of requiring
       ` ( ph -> G Struct X ) ` , it would be sufficient to require
       ` ( ph -> Fun ( G \ { (/) } ) ) ` and ` ( ph -> G e. _V ) ` .
       (Contributed by AV, 18-Jan-2020.)  (Revised by AV, 7-Jun-2021.)
       (Revised by AV, 16-Nov-2021.) $)
    uhgrstrrepe $p |- ( ph -> ( G sSet <. I , E >. ) e. UHGraph ) $=
      ( csts wcel cfv cdm cpw wf mpbird cop co cuhgr ciedg cvtx c0 csn cdif cbs
      setsvtx syl6eqr pweqd difeq1d feq3d setsiedg dmeqd feq12d cvv ovex isuhgr
      wb eqid mp1i ) ACDBUAZNUBZUCOZVEUDPZQZVEUEPZRZUFUGZUHZVGSZAVMBQZVLBSZAVOV
      NERZVKUHZBSMAVLVQBVNAVJVPVKAVIEAVICUIPEABCDFGIJKLUJHUKULUMUNTAVHVNVLVGBAB
      CDFGIJKLUOZAVGBVRUPUQTVEUROVFVMVAACVDNUSURVGVEVIVIVBVGVBUTVCT $.
  $}

  ${
    $d E e $.  $d G e $.  $d I e v $.  $d L e v $.  $d P e v $.  $d V e v $.
    $d W e $.
    incistruhgr.v $e |- V = ( Vtx ` G ) $.
    incistruhgr.e $e |- E = ( iEdg ` G ) $.
    $( An _incidence structure_ ` <. P , L , I >. ` "where ` P ` is a set whose
       elements are called _points_, ` L ` is a distinct set whose elements are
       called _lines_ and ` I C_ ( P X. L ) ` is the _incidence relation_" (see
       Wikipedia "Incidence structure" (24-Oct-2020),
       ~ https://en.wikipedia.org/wiki/Incidence_structure ) implies an
       undirected hypergraph, if the incidence relation is right-total (to
       exclude empty edges).  The points become the vertices, and the edge
       function is derived from the incidence relation by mapping each line
       ("edge") to the set of vertices incident to the line/edge.  With
       ` P = ( Base `` S ) ` and by defining two new slots for lines and
       incidence relations (analogous to ` LineG ` and ` Itv ` ) and enhancing
       the definition of ` iEdg ` accordingly, it would even be possible to
       express that a corresponding incidence structure _is_ an undirected
       hypergraph.  By choosing the incident relation appropriately, other
       kinds of undirected graphs (pseudographs, multigraphs, simple graphs,
       etc.) could be defined.  (Contributed by AV, 24-Oct-2020.) $)
    incistruhgr $p |- ( ( G e. W /\ I C_ ( P X. L ) /\ ran I = L )
                        -> ( ( V = P /\ E = ( e e. L |-> { v e. P | v I e } ) )
                             -> G e. UHGraph ) ) $=
      ( wcel cxp wss wceq w3a cv crab wa c0 crn wbr cmpt cuhgr cdm cpw csn cdif
      wf rabeqdv mpteq2dv eqeq2d xpeq1 sseq2d 3anbi2d anbi12d dmeq cvtx cfv cvv
      id wi fvex eqeltri rabex eqid dmmpti a1i eqtrd ssrab2 elpw sylibr wrex wn
      wb eleq2 3ad2ant3 ssrelrn ex 3ad2ant2 sylbird imp df-ne rabn0 bitr3i elsn
      wne sylnibr eldifd fmptd simpl simpr feq12d syl5ibr mpdan syl6bir expdimp
      impcom isuhgr 3ad2ant1 adantr mpbird ) EILZFBGMZNZFUAZGOZPZHBOZDCGAQCQZFU
      BZABRZUCZOZSZEUDLZXHXOSXPDUEZHUFZTUGZUHZDUIZXOXHYAXIXNXHYAXIXNXHSDCGXKAHR
      ZUCZOZXCFHGMZNZXGPZSYAXIYDXNYGXHXIYCXMDXICGYBXLXIXKAHBXIVAUJUKULXIYFXEXCX
      GXIYEXDFHBGUMUNUOUPYDYGYAYDXQGOZYGYAVBYDXQYCUEZGDYCUQYIGOYDCGYBYCXKAHHEUR
      USUTJEURVCVDVEZYCVFZVGVHVIYGYAYDYHSZGXTYCUIYGCGYBXTYCYGXJGLZSZYBXRXSYNYBH
      NZYBXRLYOYNXKAHVJVHYBHYJVKVLYNYBTOZYBXSLYNXKAHVMZYPVNZYGYMYQYGYMXJXFLZYQX
      GXCYSYMVOYFXFGXJVPVQYFXCYSYQVBXGYFYSYQHGFXJAVRVSVTWAWBYRYBTWGYQYBTWCXKAHW
      DWEVLYBTYJWFWHWIYKWJYLXQGXTDYCYDYHWKYDYHWLWMWNWOWBWPWQWRXHXPYAVOZXOXCXEYT
      XGIDEHJKWSWTXAXBVS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Undirected pseudographs and multigraphs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c UPGraph UMGraph $.

  $( Extend class notation with undirected pseudographs. $)
  cupgr $a class UPGraph $.

  $( Extend class notation with undirected multigraphs. $)
  cumgr $a class UMGraph $.

  ${
    $d e g v x $.
    $( Define the class of all undirected pseudographs.  An (undirected)
       pseudograph consists of a set ` v ` (of "vertices") and a function ` e `
       (representing indexed "edges") into subsets of ` v ` of cardinality one
       or two, representing the two vertices incident to the edge, or the one
       vertex if the edge is a loop.  This is according to Chartrand, Gary and
       Zhang, Ping (2012):  "A First Course in Graph Theory.", Dover, ISBN
       978-0-486-48368-9, section 1.4, p. 26:  "In a pseudograph, not only are
       parallel edges permitted but an edge is also permitted to join a vertex
       to itself.  Such an edge is called a loop."  (in contrast to a
       multigraph, see ~ df-umgr ).  (Contributed by Mario Carneiro,
       11-Mar-2015.)  (Revised by AV, 24-Nov-2020.) $)
    df-upgr $a |- UPGraph = { g | [. ( Vtx ` g ) / v ]. [. ( iEdg ` g ) / e ].
                e : dom e --> { x e. ( ~P v \ { (/) } ) | ( # ` x ) <_ 2 } } $.

    $( Define the class of all undirected multigraphs.  An (undirected)
       multigraph consists of a set ` v ` (of "vertices") and a function ` e `
       (representing indexed "edges") into subsets of ` v ` of cardinality two,
       representing the two vertices incident to the edge.  In contrast to a
       pseudograph, a multigraph has no loop.  This is according to Chartrand,
       Gary and Zhang, Ping (2012):  "A First Course in Graph Theory.", Dover,
       ISBN 978-0-486-48368-9, section 1.4, p. 26:  "A multigraph M consists of
       a finite nonempty set V of vertices and a set E of edges, where every
       two vertices of M are joined by a finite number of edges (possibly
       zero).  If two or more edges join the same pair of (distinct) vertices,
       then these edges are called parallel edges."  To provide uniform
       definitions for all kinds of graphs, ` x e. ( ~P v \ { (/) } ) ` is used
       as restriction of the class abstraction, although ` x e. ~P v ` would be
       sufficient (see ~ prprrab and ~ isumgrs ).  (Contributed by AV,
       24-Nov-2020.) $)
    df-umgr $a |- UMGraph = { g | [. ( Vtx ` g ) / v ]. [. ( iEdg ` g ) / e ].
                 e : dom e --> { x e. ( ~P v \ { (/) } ) | ( # ` x ) = 2 } } $.
  $}

  ${
    $d e g h v x $.  $d E h $.  $d G h x $.  $d V h x $.
    isupgr.v $e |- V = ( Vtx ` G ) $.
    isupgr.e $e |- E = ( iEdg ` G ) $.
    $( The property of being an undirected pseudograph.  (Contributed by Mario
       Carneiro, 11-Mar-2015.)  (Revised by AV, 10-Oct-2020.) $)
    isupgr $p |- ( G e. U -> ( G e. UPGraph <->
      E : dom E --> { x e. ( ~P V \ { (/) } ) | ( # ` x ) <_ 2 } ) ) $=
      ( ve vv vg vh wcel cv cdm cfv cpw ciedg cvtx wceq fveq2 cupgr chash c2 c0
      cle wbr csn cdif crab wsbc cab df-upgr eleq2i syl6eqr dmeqd eqcomi syl6eq
      wf dmeqi pweqd difeq1d rabeqdv feq123d weq cvv fvexd wa adantr simpr pweq
      ad2antlr sbcied2 cbvabv elab2g syl5bb ) DUALDHMZNZAMUBOUCUEUFZAIMZPZUDUGZ
      UHZUIZVPURZHJMZQOZUJZIWEROZUJZJUKZLDBLCNZVRAEPZWAUHZUIZCURZUAWJDAIHJULUMK
      MZQOZNZVRAWPROZPZWAUHZUIZWQURZWOKDWJBWPDSZWRWKXBWNWQCXDWQDQOZCWPDQTZGUNXD
      WRXENWKXDWQXEXFUOXECCXEGUPUSUQXDVRAXAWMXDWTWLWAXDWSEXDWSDROEWPDRTFUNUTVAV
      BVCWIXCJKJKVDZWGXCIWHWSVEXGWERVFWEWPRTXGVSWSSZVGZWDXCHWFWQVEXIWEQVFXGWFWQ
      SXHWEWPQTVHXIVPWQSZVGZVQWRWCXBVPWQXIXJVIZXKVPWQXLUOXKVRAWBXAXKVTWTWAXHVTW
      TSXGXJVSWSVJVKVAVBVCVLVLVMVNVO $.

    $( The property of being an undirected pseudograph, expressing the edges as
       "words".  (Contributed by Mario Carneiro, 11-Mar-2015.)  (Revised by AV,
       10-Oct-2020.) $)
    wrdupgr $p |- ( ( G e. U /\ E e. Word X ) -> ( G e. UPGraph <->
      E e. Word { x e. ( ~P V \ { (/) } ) | ( # ` x ) <_ 2 } ) ) $=
      ( wcel cword wa cupgr cdm cv chash cfv c2 cle wf wrdf wbr cpw c0 csn cdif
      crab wb isupgr adantr cc0 cfzo co wceq adantl fdm syl feq2d iswrdi impbii
      syl6bb bitrd ) DBIZCFJIZKZDLIZCMZANOPQRUAAEUBUCUDUEUFZCSZCVGJIZVBVEVHUGVC
      ABCDEGHUHUIVDVHUJCOPZUKULZVGCSZVIVDVFVKVGCVDVKFCSZVFVKUMVCVMVBFCTUNVKFCUO
      UPUQVLVIVGVJCURVGCTUSUTVA $.

    $( The edge function of an undirected pseudograph is a function into
       unordered pairs of vertices.  Version of ~ upgrfn without explicitly
       specified domain of the edge function.  (Contributed by Mario Carneiro,
       12-Mar-2015.)  (Revised by AV, 10-Oct-2020.) $)
    upgrf $p |- ( G e. UPGraph ->
      E : dom E --> { x e. ( ~P V \ { (/) } ) | ( # ` x ) <_ 2 } ) $=
      ( cupgr wcel cdm cv chash cfv c2 cle wbr cpw c0 csn cdif crab isupgr ibi
      wf ) CGHBIAJKLMNOADPQRSTBUCAGBCDEFUAUB $.

    $( The edge function of an undirected pseudograph is a function into
       unordered pairs of vertices.  (Contributed by Mario Carneiro,
       11-Mar-2015.)  (Revised by AV, 10-Oct-2020.) $)
    upgrfn $p |- ( ( G e. UPGraph /\ E Fn A ) ->
      E : A --> { x e. ( ~P V \ { (/) } ) | ( # ` x ) <_ 2 } ) $=
      ( cupgr wcel wfn cv chash cfv c2 cle wbr cpw c0 csn wf cdif crab cdm fndm
      upgrf feq2d syl5ibcom imp ) DHIZCBJZBAKLMNOPAEQRSUAUBZCTZUICUCZUKCTUJULAC
      DEFGUEUJUMBUKCBCUDUFUGUH $.

    $( An edge is a subset of vertices.  (Contributed by Mario Carneiro,
       11-Mar-2015.)  (Revised by AV, 29-Nov-2020.) $)
    upgrss $p |- ( ( G e. UPGraph /\ F e. dom E ) -> ( E ` F ) C_ V ) $=
      ( vx cupgr wcel cdm wa cfv cv chash c2 cle wbr cpw c0 csn cdif crab difss
      ssrab2 sstri upgrf ffvelrnda sseldi elpwid ) CHIZBAJZIKZBALZDULGMNLOPQZGD
      RZSTZUAZUBZUOUMURUQUOUNGUQUDUOUPUCUEUJUKURBAGACDEFUFUGUHUI $.

    $( An edge is a nonempty subset of vertices.  (Contributed by Mario
       Carneiro, 11-Mar-2015.)  (Revised by AV, 10-Oct-2020.) $)
    upgrn0 $p |- ( ( G e. UPGraph /\ E Fn A /\ F e. A ) ->
      ( E ` F ) =/= (/) ) $=
      ( vx cupgr wcel wfn w3a cfv cpw c0 csn cdif wne cv chash c2 cle ssrab2 wa
      wbr crab upgrfn ffvelrnda 3impa sseldi eldifsni syl ) DIJZBAKZCAJZLZCBMZE
      NZOPQZJUQORUPHSTMUAUBUEZHUSUFZUSUQUTHUSUCUMUNUOUQVAJUMUNUDAVACBHABDEFGUGU
      HUIUJUQUROUKUL $.

    $d E x $.  $d F x $.
    $( An edge of an undirected pseudograph has at most two ends.  (Contributed
       by Mario Carneiro, 11-Mar-2015.)  (Revised by AV, 10-Oct-2020.) $)
    upgrle $p |- ( ( G e. UPGraph /\ E Fn A /\ F e. A ) ->
      ( # ` ( E ` F ) ) <_ 2 ) $=
      ( vx cupgr wcel wfn w3a cfv cv chash c2 cle wbr cpw c0 csn cdif wa upgrfn
      crab ffvelrnda 3impa wceq fveq2 breq1d elrab simprbi syl ) DIJZBAKZCAJZLC
      BMZHNZOMZPQRZHESTUAUBZUEZJZUQOMZPQRZUNUOUPVCUNUOUCAVBCBHABDEFGUDUFUGVCUQV
      AJVEUTVEHUQVAURUQUHUSVDPQURUQOUIUJUKULUM $.

    $( An edge is a finite subset of vertices.  (Contributed by Mario Carneiro,
       11-Mar-2015.)  (Revised by AV, 10-Oct-2020.) $)
    upgrfi $p |- ( ( G e. UPGraph /\ E Fn A /\ F e. A ) ->
      ( E ` F ) e. Fin ) $=
      ( cupgr wcel wfn w3a cfv c2 cle wbr wn cpnf 2re cxr cvv cfn upgrle clt cr
      chash ltpnf ax-mp rexri pnfxr xrltnle mp2an mpbi wceq fvex hashinf breq1d
      wb mpan mtbiri con4i syl ) DHIBAJCAIKCBLZUELZMNOZVBUAIZABCDEFGUBVEVDVEPZV
      DQMNOZMQUCOZVGPZMUDIVHRMUFUGMSIQSIVHVIUQMRUHUIMQUJUKULVFVCQMNVBTIVFVCQUMC
      BUNVBTUOURUPUSUTVA $.

    $d A x y $.  $d E y $.  $d F y $.  $d G y $.  $d V y $.
    $( An edge is an unordered pair of vertices.  (Contributed by Mario
       Carneiro, 11-Mar-2015.)  (Revised by AV, 10-Oct-2020.) $)
    upgrex $p |- ( ( G e. UPGraph /\ E Fn A /\ F e. A ) ->
      E. x e. V E. y e. V ( E ` F ) = { x , y } ) $=
      ( wcel cfv wceq wa wex c0 wne wss adantr wbr cvv cupgr wfn w3a cpr upgrn0
      cv wrex sylib cdm simp1 fndm eqcomd eleq2d biimpd a1i 3imp upgrss syl2anc
      n0 wi sselda csn cdif simpr ssdif0 sylibr snssd eqssd preq2 dfsn2 syl6eqr
      eqeq2d rspcev simprr eldifad sseldd cfn cen upgrfi simprl prssd cdom fvex
      ssdomg mpsyl chash cle c2 upgrle eldifsni ad2antll necomd wb vex breqtrrd
      hashprg mp2an prfi hashdom sylancl mpbid sbth fisseneq syl3anc jca eximdv
      expr imp df-rex sylan2b pm2.61dane ex mpd ) FUAJZDCUBZECJZUCZAUFZGJZEDKZX
      RBUFZUDZLZBGUGZMZANZYDAGUGXQXRXTJZANZYFXQXTOPYHCDEFGHIUEAXTUSUHXQYGYEAXQY
      GYEXQYGMZXSYDXQXTGXRXQXNEDUIZJZXTGQZXNXOXPUJXNXOXPYKXOXPYKUTUTXNXOXPYKXOC
      YJEXOYJCCDUKULUMUNUOUPDEFGHIUQURZVAZYIYDXTXRVBZVCZOYIYPOLZMZXSXTYOLZYDYIX
      SYQYNRYRXTYOYRYQXTYOQYIYQVDXTYOVEVFYIYOXTQYQYIXRXTXQYGVDVGRVHYCYSBXRGYAXR
      LZYBYOXTYTYBXRXRUDYOYAXRXRVIXRVJVKVLVMURYPOPYIYAYPJZBNZYDBYPUSYIUUBMYAGJZ
      YCMZBNZYDYIUUBUUEYIUUAUUDBXQYGUUAUUDXQYGUUAMZMZUUCYCUUGXTGYAXQYLUUFYMRUUG
      YAXTYOXQYGUUAVNVOZVPUUGYBXTUUGXTVQJZYBXTQZYBXTVRSZYBXTLXQUUIUUFCDEFGHIVSR
      ZUUGXRYAXTXQYGUUAVTUUHWAZUUGYBXTWBSZXTYBWBSZUUKXTTJUUGUUJUUNEDWCUUMYBXTTW
      DWEUUGXTWFKZYBWFKZWGSZUUOUUGUUPWHUUQWGXQUUPWHWGSUUFCDEFGHIWIRUUGXRYAPZUUQ
      WHLZUUGYAXRUUAYAXRPXQYGYAXTXRWJWKWLXRTJYATJUUSUUTWMAWNBWNXRYATTWPWQUHWOUU
      GUUIYBVQJUURUUOWMUULXRYAWRXTYBVQWSWTXAYBXTXBURYBXTXCXDULXEXGXFXHYCBGXIVFX
      JXKXEXLXFXMYDAGXIVF $.
  $}

  ${
    $d V x $.  $d X x $.  $d Y x $.
    upgrbi.x $e |- X e. V $.
    upgrbi.y $e |- Y e. V $.
    $( Show that an unordered pair is a valid edge in a pseudograph.
       (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by Mario
       Carneiro, 28-Feb-2016.)  (Revised by AV, 28-Feb-2021.) $)
    upgrbi $p |- { X , Y } e. { x e. ( ~P V \ { (/) } ) | ( # ` x ) <_ 2 } $=
      ( cpr cv chash cfv c2 cle wbr cpw c0 csn cdif crab wcel mpbir2an wne prex
      wss prssi mp2an elpw mpbir elexi prnz eldifsn hashprlei simpri wceq fveq2
      cfn breq1d elrab ) CDGZAHZIJZKLMZABNZOPQZRSURVCSZURIJZKLMZVDURVBSZUROUAVG
      URBUCZCBSDBSVHEFCDBUDUEURBCDUBUFUGCDCBEUHUIURVBOUJTURUOSVFCDUKULVAVFAURVC
      USURUMUTVEKLUSURIUNUPUQT $.
  $}

  ${
    $d G p $.
    $( A pseudograph represented by an ordered pair.  (Contributed by AV,
       12-Dec-2021.) $)
    upgrop $p |- ( G e. UPGraph
                   -> <. ( Vtx ` G ) , ( iEdg ` G ) >. e. UPGraph ) $=
      ( vp cupgr wcel cvtx cfv ciedg cop cdm cv chash cpw cdif crab wf eqid cvv
      wb fvex mp1i c2 cle wbr c0 csn upgrf wa pm3.2i opex isupgr opiedgfv dmeqd
      opvtxfv pweqd difeq1d rabeqdv feq123d bitrd mpbird ) ACDZAEFZAGFZHZCDZVBI
      ZBJKFUAUBUCZBVALZUDUEZMZNZVBOZBVBAVAVAPVBPUFVAQDZVBQDZUGZVDVKRUTVLVMAESAG
      SUHVNVDVCGFZIZVFBVCEFZLZVHMZNZVOOZVKVCQDVDWARVNVAVBUIBQVOVCVQVQPVOPUJTVNV
      PVEVTVJVOVBVBVAQQUKZVNVOVBWBULVNVFBVSVIVNVRVGVHVNVQVAVBVAQQUMUNUOUPUQURTU
      S $.
  $}

  ${
    $d e g h v x $.  $d E h $.  $d G h x $.  $d V h x $.
    isumgr.v $e |- V = ( Vtx ` G ) $.
    isumgr.e $e |- E = ( iEdg ` G ) $.
    $( The property of being an undirected multigraph.  (Contributed by AV,
       24-Nov-2020.) $)
    isumgr $p |- ( G e. U -> ( G e. UMGraph
           <-> E : dom E --> { x e. ( ~P V \ { (/) } ) | ( # ` x ) = 2 } ) ) $=
      ( ve vv vg vh wcel cv cdm cfv wceq cpw ciedg cvtx fveq2 cumgr chash c2 c0
      csn cdif crab wf wsbc cab df-umgr eleq2i syl6eqr dmeqd eqcomi dmeqi pweqd
      syl6eq difeq1d rabeqdv feq123d weq cvv fvexd wa adantr simpr pweq sbcied2
      ad2antlr cbvabv elab2g syl5bb ) DUALDHMZNZAMUBOUCPZAIMZQZUDUEZUFZUGZVNUHZ
      HJMZROZUIZIWCSOZUIZJUJZLDBLCNZVPAEQZVSUFZUGZCUHZUAWHDAIHJUKULKMZROZNZVPAW
      NSOZQZVSUFZUGZWOUHZWMKDWHBWNDPZWPWIWTWLWOCXBWODROZCWNDRTZGUMXBWPXCNWIXBWO
      XCXDUNXCCCXCGUOUPURXBVPAWSWKXBWRWJVSXBWQEXBWQDSOEWNDSTFUMUQUSUTVAWGXAJKJK
      VBZWEXAIWFWQVCXEWCSVDWCWNSTXEVQWQPZVEZWBXAHWDWOVCXGWCRVDXEWDWOPXFWCWNRTVF
      XGVNWOPZVEZVOWPWAWTVNWOXGXHVGZXIVNWOXJUNXIVPAVTWSXIVRWRVSXFVRWRPXEXHVQWQV
      HVJUSUTVAVIVIVKVLVM $.

    $( The simplified property of being an undirected multigraph.  (Contributed
       by AV, 24-Nov-2020.) $)
    isumgrs $p |- ( G e. U -> ( G e. UMGraph
                         <-> E : dom E --> { x e. ~P V | ( # ` x ) = 2 } ) ) $=
      ( wcel cumgr cdm cv chash cfv c2 wceq cpw c0 csn crab wf cdif prprrab a1i
      isumgr feq3d bitrd ) DBHZDIHCJZAKLMNOZAEPZQRUASZCTUHUIAUJSZCTABCDEFGUDUGU
      KULCUHUKULOUGAEUBUCUEUF $.

    $( The property of being an undirected multigraph, expressing the edges as
       "words".  (Contributed by AV, 24-Nov-2020.) $)
    wrdumgr $p |- ( ( G e. U /\ E e. Word X ) -> ( G e. UMGraph
                             <-> E e. Word { x e. ~P V | ( # ` x ) = 2 } ) ) $=
      ( wcel cword wa cumgr cdm cv chash cfv c2 wceq wf wrdf cpw crab wb adantr
      isumgrs cc0 cfzo co adantl fdm syl feq2d iswrdi impbii syl6bb bitrd ) DBI
      ZCFJIZKZDLIZCMZANOPQRAEUAUBZCSZCVBJIZUQUTVCUCURABCDEGHUEUDUSVCUFCOPZUGUHZ
      VBCSZVDUSVAVFVBCUSVFFCSZVAVFRURVHUQFCTUIVFFCUJUKULVGVDVBVECUMVBCTUNUOUP
      $.

    $( The edge function of an undirected multigraph is a function into
       unordered pairs of vertices.  Version of ~ umgrfn without explicitly
       specified domain of the edge function.  (Contributed by AV,
       24-Nov-2020.) $)
    umgrf $p |- ( G e. UMGraph
                   -> E : dom E --> { x e. ~P V | ( # ` x ) = 2 } ) $=
      ( cumgr wcel cdm cv chash cfv c2 wceq cpw crab wf isumgrs ibi ) CGHBIAJKL
      MNADOPBQAGBCDEFRS $.

    $( The edge function of an undirected multigraph is a function into
       unordered pairs of vertices.  (Contributed by AV, 24-Nov-2020.) $)
    umgrfn $p |- ( ( G e. UMGraph /\ E Fn A )
                  -> E : A --> { x e. ~P V | ( # ` x ) = 2 } ) $=
      ( cumgr wcel wfn cv chash cfv c2 wceq cpw crab wf cdm umgrf syl5ibcom imp
      fndm feq2d ) DHIZCBJZBAKLMNOAEPQZCRZUECSZUGCRUFUHACDEFGTUFUIBUGCBCUCUDUAU
      B $.

    $d E x $.  $d X x $.
    $( An edge of a multigraph has exactly two ends.  (Contributed by AV,
       24-Nov-2020.) $)
    umgredg2 $p |- ( ( G e. UMGraph /\ X e. dom E )
                     -> ( # ` ( E ` X ) ) = 2 ) $=
      ( vx cumgr wcel cdm wa cfv cv chash c2 wceq cpw crab umgrf ffvelrnda syl
      fveq2 eqeq1d elrab simprbi ) BHIZDAJZIKDALZGMZNLZOPZGCQZRZIZUHNLZOPZUFUGU
      MDAGABCEFSTUNUHULIUPUKUPGUHULUIUHPUJUOOUIUHNUBUCUDUEUA $.
  $}

  ${
    $d V x $.  $d X x $.  $d Y x $.
    umgrbi.x $e |- X e. V $.
    umgrbi.y $e |- Y e. V $.
    umgrbi.n $e |- X =/= Y $.
    $( Show that an unordered pair is a valid edge in a multigraph.
       (Contributed by AV, 9-Mar-2021.) $)
    umgrbi $p |- { X , Y } e. { x e. ~P V | ( # ` x ) = 2 } $=
      ( cpr cv chash cfv c2 wceq cpw crab wcel wss prssi mp2an prex elpw wa wne
      mpbir hashprg mpbii fveq2 eqeq1d elrab mpbir2an ) CDHZAIZJKZLMZABNZOPUKUO
      PZUKJKZLMZUPUKBQZCBPZDBPZUSEFCDBRSUKBCDTUAUDUTVAUREFUTVAUBCDUCURGCDBBUEUF
      SUNURAUKUOULUKMUMUQLULUKJUGUHUIUJ $.
  $}

  ${
    $d G x $.
    $( An undirected pseudograph is an undirected hypergraph.  (Contributed by
       Alexander van der Vekens, 27-Dec-2017.)  (Revised by AV,
       10-Oct-2020.) $)
    upgruhgr $p |- ( G e. UPGraph -> G e. UHGraph ) $=
      ( vx cupgr wcel cuhgr ciedg cfv cdm cvtx cpw c0 csn cdif wf chash cle wbr
      cv c2 eqid crab wss upgrf ssrab2 fss sylancl isuhgr mpbird ) ACDZAEDAFGZH
      ZAIGZJKLMZUJNZUIUKBROGSPQZBUMUAZUJNUPUMUBUNBUJAULULTZUJTZUCUOBUMUDUKUPUMU
      JUEUFCUJAULUQURUGUH $.

    $( An undirected multigraph is an undirected pseudograph.  (Contributed by
       AV, 25-Nov-2020.) $)
    umgrupgr $p |- ( G e. UMGraph -> G e. UPGraph ) $=
      ( vx cumgr wcel cupgr ciedg cfv cdm cv chash c2 cle wbr cvtx crab wf eqid
      cpw a1i mpbird c0 csn cdif wceq isumgr id wss wi leidi breq1 ss2rabi fssd
      2re syl6bi pm2.43i isupgr ) ACDZAEDAFGZHZBIZJGZKLMZBANGZRUAUBUCZOZURPZUQV
      FUQUQUSVAKUDZBVDOZURPZVFBCURAVCVCQZURQZUEVIUSVHVEURVIUFVHVEUGVIVGVBBVDVGV
      BUHUTVDDVGVBKKLMZVLVGKUMUISVAKKLUJTSUKSULUNUOBCURAVCVJVKUPT $.
  $}

  $( An undirected multigraph is an undirected hypergraph.  (Contributed by AV,
     26-Nov-2020.) $)
  umgruhgr $p |- ( G e. UMGraph -> G e. UHGraph ) $=
    ( cumgr wcel cupgr cuhgr umgrupgr upgruhgr syl ) ABCADCAECAFAGH $.

  ${
    upgrle2.i $e |- I = ( iEdg ` G ) $.
    $( An edge of an undirected pseudograph has at most two ends.  (Contributed
       by AV, 6-Feb-2021.) $)
    upgrle2 $p |- ( ( G e. UPGraph /\ X e. dom I )
                    -> ( # ` ( I ` X ) ) <_ 2 ) $=
      ( cupgr wcel cdm wa wfn cfv chash c2 cle wbr simpl cuhgr upgruhgr uhgrfun
      wfun syl funfn sylib adantr simpr cvtx eqid upgrle syl3anc ) AEFZCBGZFZHU
      IBUJIZUKCBJKJLMNUIUKOUIULUKUIBSZULUIAPFUMAQBADRTBUAUBUCUIUKUDUJBCAAUEJZUN
      UFDUGUH $.
  $}

  ${
    umgrnloopv.e $e |- E = ( iEdg ` G ) $.
    $( In a multigraph, there is no loop, i.e. no edge connecting a vertex with
       itself.  (Contributed by Alexander van der Vekens, 26-Jan-2018.)
       (Revised by AV, 11-Dec-2020.) $)
    umgrnloopv $p |- ( ( G e. UMGraph /\ M e. W )
                       -> ( ( E ` X ) = { M , N } -> M =/= N ) ) $=
      ( cumgr wcel cfv cpr wceq wne wi wa c0 adantr chash c2 eqid cdm cres wfun
      csn prnzg adantl neeq1 mpbird fvfundmfvn0 cvtx umgredg2 fveq2 hashprdifel
      wb syl eqeq1d simp3d syl6bi syl5com expcom com23 mpcom ex com13 imp ) BHI
      ZCEIZFAJZCDKZLZCDMZNVJVGVFVKVJVGVFVKNZFAUAIZAFUDUBUCZOZVJVGOZVLVPVHPMZVOV
      PVQVIPMZVGVRVJCDEUEUFVJVQVRUNVGVHVIPUGQUHFAUIUOVMVPVLNVNVMVFVPVKVFVMVPVKN
      VFVMOVHRJZSLZVPVKABBUJJZFWATGUKVJVTVKNVGVJVTVIRJZSLZVKVJVSWBSVHVIRULUPWCC
      VIIDVIIVKCDVIVITUMUQURQUSUTVAQVBVCVDVE $.

    ${
      umgredgprv.v $e |- V = ( Vtx ` G ) $.
      $( In a multigraph, an edge is an unordered pair of vertices.  This
         theorem would not hold for arbitrary hyper-/pseudographs since either
         ` M ` or ` N ` could be proper classes ( ` ( E `` X ) ` would be a
         loop in this case), which are no vertices of course.  (Contributed by
         Alexander van der Vekens, 19-Aug-2017.)  (Revised by AV,
         11-Dec-2020.) $)
      umgredgprv $p |- ( ( G e. UMGraph /\ X e. dom E )
                     -> ( ( E ` X ) = { M , N } -> ( M e. V /\ N e. V ) ) ) $=
        ( cumgr wcel cdm wa cfv wss chash c2 wceq cpr wi cuhgr umgruhgr anbi12d
        uhgrss sylan umgredg2 sseq1 fveq2 eqeq1d wne w3a eqid hashprdifel prssg
        wb 3adant3 biimprd syl impcom syl6bi com12 syl2anc ) BIJZFAKJZLFAMZENZV
        DOMZPQZVDCDRZQZCEJDEJLZSVBBTJVCVEBUAAFBEHGUCUDABEFHGUEVIVEVGLZVJVIVKVHE
        NZVHOMZPQZLVJVIVEVLVGVNVDVHEUFVIVFVMPVDVHOUGUHUBVNVLVJVNCVHJZDVHJZCDUIZ
        UJZVLVJSCDVHVHUKULVRVJVLVOVPVJVLUNVQCDEVHVHUMUOUPUQURUSUTVA $.
    $}

    $d G x $.  $d M x $.  $d N x $.
    $( In a multigraph, there is no loop, i.e. no edge connecting a vertex with
       itself.  (Contributed by Alexander van der Vekens, 19-Aug-2017.)
       (Revised by AV, 11-Dec-2020.) $)
    umgrnloop $p |- ( G e. UMGraph -> ( E. x e. dom E ( E ` x ) = { M , N }
                                      -> M =/= N ) ) $=
      ( cumgr wcel cv cfv cpr wceq wne cdm wa cvtx imp wi ex adantr com23 com12
      eqid umgredgprv umgrnloopv mpcom rexlimdva ) CGHZAIZBJDEKLZDEMZABNZUHUIUL
      HZOZUJUKDCPJZHZEUOHZOZUNUJOZUKUNUJURBCDEUOUIFUOUCUDQUPUSUKRUQUSUPUKUNUJUP
      UKRZUHUJUTRUMUHUPUJUKUHUPUJUKRBCDEUOUIFUESUATQUBTUFSUG $.

    $d U x $.
    $( A multigraph has no loops.  (Contributed by Alexander van der Vekens,
       6-Dec-2017.)  (Revised by AV, 11-Dec-2020.) $)
    umgrnloop0 $p |- ( G e. UMGraph
                       -> { x e. dom E | ( E ` x ) = { U } } = (/) ) $=
      ( cumgr wcel cv cfv csn wceq wn cdm wral crab c0 wrex cpr wne sylibr mtoi
      neirr umgrnloop wa simpr dfsn2 syl6eq ex reximdv mtod ralnex rabeq0 ) DFG
      ZAHCIZBJZKZLACMZNZUPAUQOPKUMUPAUQQZLURUMUSUNBBRZKZAUQQZUMVBBBSBUBACDBBEUC
      UAUMUPVAAUQUMUPVAUMUPUDUNUOUTUMUPUEBUFUGUHUIUJUPAUQUKTUPAUQULT $.
  $}

  ${
    $d G x $.
    umgr0e.g $e |- ( ph -> G e. W ) $.
    umgr0e.e $e |- ( ph -> ( iEdg ` G ) = (/) ) $.
    $( The empty graph, with vertices but no edges, is a multigraph.
       (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by AV,
       25-Nov-2020.) $)
    umgr0e $p |- ( ph -> G e. UMGraph ) $=
      ( vx cumgr wcel ciedg cfv cdm cv chash c2 wceq cvtx cpw c0 syl eqid wf wb
      csn cdif crab wf1 f10d f1f isumgr mpbird ) ABGHZBIJZKZFLMJNOFBPJZQRUCUDUE
      ZULUAZAUMUOULUFUPAUOULEUGUMUOULUHSABCHUKUPUBDFCULBUNUNTULTUISUJ $.

    $( The empty graph, with vertices but no edges, is a pseudograph.
       (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by AV,
       11-Oct-2020.)  (Proof shortened by AV, 25-Nov-2020.) $)
    upgr0e $p |- ( ph -> G e. UPGraph ) $=
      ( cumgr wcel cupgr umgr0e umgrupgr syl ) ABFGBHGABCDEIBJK $.
  $}

  ${
    $d B x $.  $d C x $.  $d S x $.
    upgr1elem.s $e |- ( ph -> { B , C } e. S ) $.
    upgr1elem.b $e |- ( ph -> B e. W ) $.
    $( Lemma for ~ upgr1e and ~ uspgr1e .  (Contributed by AV, 16-Oct-2020.) $)
    upgr1elem $p |- ( ph -> { { B , C } }
                           C_ { x e. ( S \ { (/) } ) | ( # ` x ) <_ 2 } ) $=
      ( cpr cv chash cfv c2 cle wbr c0 csn cdif wcel sylanbrc wne prnzg eldifsn
      crab syl cfn hashprlei simpri a1i wceq fveq2 breq1d elrab snssd ) ACDIZBJ
      ZKLZMNOZBEPQRZUDZAUOUSSZUOKLZMNOZUOUTSAUOESUOPUAZVAGACFSVDHCDFUBUEUOEPUCT
      VCAUOUFSVCCDUGUHUIURVCBUOUSUPUOUJUQVBMNUPUOKUKULUMTUN $.
  $}

  ${
    $d B x $.  $d C x $.  $d G x $.
    upgr1e.v $e |- V = ( Vtx ` G ) $.
    upgr1e.a $e |- ( ph -> A e. X ) $.
    upgr1e.b $e |- ( ph -> B e. V ) $.
    upgr1e.c $e |- ( ph -> C e. V ) $.
    upgr1e.e $e |- ( ph -> ( iEdg ` G ) = { <. A , { B , C } >. } ) $.
    $( A pseudograph with one edge.  Such a graph is actually a simple
       pseudograph, see ~ uspgr1e .  (Contributed by Mario Carneiro,
       12-Mar-2015.)  (Revised by AV, 16-Oct-2020.)  (Revised by AV,
       21-Mar-2021.)  (Proof shortened by AV, 17-Apr-2021.) $)
    upgr1e $p |- ( ph -> G e. UPGraph ) $=
      ( vx wcel cfv cdm csn wf cvv mpbird cupgr ciedg cv chash cle wbr cvtx cpw
      c2 c0 cdif crab cpr cop prex snid a1i fsnd wss prssd syl6sseq elpw sylibr
      upgr1elem fssd wceq fdm syl feq2d dmeqd feq12d wb 1vgrex eqid isupgr 3syl
      ) AEUANZEUBOZPZMUCUDOUIUEUFZMEUGOZUHZUJQZUKULZVRRZAWEBCDUMZUNQZPZWDWGRZAW
      IBQZWDWGRAWJWFQZWDWGABWFGWKIWFWKNAWFCDUOZUPUQURZAMCDWBFAWFWAUSWFWBNAWFFWA
      ACDFJKUTHVAWFWAWLVBVCJVDVEAWHWJWDWGAWJVTMSWCUKULZWGRWHWJVFAWJWKWNWGWMAMCD
      SFWFSNAWLUQJVDVEWJWNWGVGVHVITAVSWHWDVRWGLAVRWGLVJVKTACFNESNVQWEVLJECFHVMM
      SVREWAWAVNVRVNVOVPT $.
  $}

  $( The empty graph, with vertices but no edges, is a pseudograph.  The empty
     graph is actually a simple graph, see ~ usgr0eop , and therefore also a
     multigraph ( ` G e. UMGraph ` ).  (Contributed by Mario Carneiro,
     12-Mar-2015.)  (Revised by AV, 11-Oct-2020.) $)
  upgr0eop $p |- ( V e. W -> <. V , (/) >. e. UPGraph ) $=
    ( wcel c0 cop cvv opex a1i ciedg cfv wceq 0ex opiedgfv mpan2 upgr0e ) ABCZA
    DEZFQFCPADGHPDFCQIJDKLDABFMNO $.

  $( A pseudograph with one edge.  Such a graph is actually a simple
     pseudograph, see ~ uspgr1eop .  (Contributed by Mario Carneiro,
     12-Mar-2015.)  (Revised by AV, 10-Oct-2020.) $)
  upgr1eop $p |- ( ( ( V e. W /\ A e. X ) /\ ( B e. V /\ C e. V ) ) ->
      <. V , { <. A , { B , C } >. } >. e. UPGraph ) $=
    ( wcel wa cpr cop csn cvtx cfv eqid simplr simpl cvv wceq syl2an eleqtrrd
    adantl snex a1i opvtxfv simprr ciedg opiedgfv upgr1e ) DEGZAFGZHZBDGZCDGZHZ
    HZABCDABCIJZKZJZURLMZFUSNUIUJUNOUOBDUSUNULUKULUMPUAUKUIUQQGZUSDRUNUIUJPZUTU
    NUPUBUCZUQDEQUDSZTUOCDUSUKULUMUEVCTUKUIUTURUFMUQRUNVAVBUQDEQUGSUH $.

  ${
    $d V g $.  $d W g $.
    $( Alternate proof of ~ upgr0eop , using the general theorem ~ gropeld to
       transform a theorem for an arbitrary representation of a graph into a
       theorem for a graph represented as ordered pair.  This general approach
       causes some overhead, which makes the proof longer than necessary (see
       proof of ~ upgr0eop ).  (Contributed by AV, 11-Oct-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    upgr0eopALT $p |- ( V e. W -> <. V , (/) >. e. UPGraph ) $=
      ( vg wcel cupgr c0 cvv cv cvtx cfv wceq ciedg wa wal vex a1i simpr upgr0e
      wi ax-gen id 0ex gropeld ) ABDZEBCFAGCHZIJAKZUELJFKZMZUEEDSZCNUDUICUHUEGU
      EGDUHCOPUFUGQRTPUDUAFGDUDUBPUC $.

    $d A g $.  $d B g $.  $d C g $.  $d X g $.
    $( Alternate proof of ~ upgr1eop , using the general theorem ~ gropeld to
       transform a theorem for an arbitrary representation of a graph into a
       theorem for a graph represented as ordered pair.  This general approach
       causes some overhead, which makes the proof longer than necessary (see
       proof of ~ upgr1eop ).  (Contributed by AV, 11-Oct-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    upgr1eopALT $p |- ( ( ( V e. W /\ A e. X ) /\ ( B e. V /\ C e. V ) ) ->
      <. V , { <. A , { B , C } >. } >. e. UPGraph ) $=
      ( vg wcel wa cupgr cpr cop csn cvv cfv wceq wb eleq2 ad2antrl mpbird cvtx
      cv ciedg wi eqid simpllr simplrl simplrr simprr upgr1e alrimiv simpll a1i
      ex snex gropeld ) DEHZAFHZIZBDHZCDHZIZIZJEGABCKLZMZDNVCGUBZUAOZDPZVFUCOVE
      PZIZVFJHZUDGVCVJVKVCVJIZABCVFVGFVGUEUQURVBVJUFVLBVGHZUTUSUTVAVJUGVHVMUTQV
      CVIVGDBRSTVLCVGHZVAUSUTVAVJUHVHVNVAQVCVIVGDCRSTVCVHVIUIUJUNUKUQURVBULVENH
      VCVDUOUMUP $.
  $}

  ${
    upgrun.g $e |- ( ph -> G e. UPGraph ) $.
    upgrun.h $e |- ( ph -> H e. UPGraph ) $.
    upgrun.e $e |- E = ( iEdg ` G ) $.
    upgrun.f $e |- F = ( iEdg ` H ) $.
    upgrun.vg $e |- V = ( Vtx ` G ) $.
    upgrun.vh $e |- ( ph -> ( Vtx ` H ) = V ) $.
    upgrun.i $e |- ( ph -> ( dom E i^i dom F ) = (/) ) $.
    ${
      $d x E $.  $d x F $.  $d x G $.  $d x H $.  $d x U $.  $d x V $.
      $d x ph $.
      upgrun.u $e |- ( ph -> U e. W ) $.
      upgrun.v $e |- ( ph -> ( Vtx ` U ) = V ) $.
      upgrun.un $e |- ( ph -> ( iEdg ` U ) = ( E u. F ) ) $.
      $( The union ` U ` of two pseudographs ` G ` and ` H ` with the same
         vertex set ` V ` is a pseudograph with the vertex ` V ` and the union
         ` ( E u. F ) ` of the (indexed) edges.  (Contributed by AV,
         12-Oct-2020.)  (Revised by AV, 24-Oct-2021.) $)
      upgrun $p |- ( ph -> U e. UPGraph ) $=
        ( vx wf cupgr wcel ciedg cfv cdm cv chash c2 cle wbr cvtx cpw cdif crab
        c0 csn cun upgrf syl eqid eqcomd pweqd difeq1d feq3d mpbird fun2d dmeqd
        rabeqdv dmun syl6eq feq123d wb isupgr ) ABUAUBZBUCUDZUEZSUFUGUDUHUIUJZS
        BUKUDZULZUOUPZUMZUNZVOTZAWCCUEZDUEZUQZVQSGULZVTUMZUNZCDUQZTAWDWEWICDAEU
        AUBWDWICTISCEGMKURUSAWEWIDTWEVQSFUKUDZULZVTUMZUNZDTZAFUAUBWOJSDFWKWKUTL
        URUSAWIWNDWEAVQSWHWMAWGWLVTAGWKAWKGNVAVBVCVHVDVEOVFAVPWFWBWIVOWJRAVPWJU
        EWFAVOWJRVGCDVIVJAVQSWAWHAVSWGVTAVRGQVBVCVHVKVEABHUBVNWCVLPSHVOBVRVRUTV
        OUTVMUSVE $.
    $}

    $( The union of two pseudographs (with the same vertex set):  If
       ` <. V , E >. ` and ` <. V , F >. ` are pseudographs, then
       ` <. V , E u. F >. ` is a pseudograph (the vertex set stays the same,
       but the edges from both graphs are kept).  (Contributed by Mario
       Carneiro, 12-Mar-2015.)  (Revised by AV, 12-Oct-2020.)  (Revised by AV,
       24-Oct-2021.) $)
    upgrunop $p |- ( ph -> <. V , ( E u. F ) >. e. UPGraph ) $=
      ( cvv wcel cvtx cfv fvex eqeltri ciedg cun cop opex a1i wceq unex opvtxfv
      wa pm3.2i mp1i opiedgfv upgrun ) AFBCUAZUBZBCDEFNGHIJKLMUNNOAFUMUCUDFNOZU
      MNOZUHZUNPQFUEAUOUPFDPQNKDPRSBCBDTQNIDTRSCETQNJETRSUFUIZUMFNNUGUJUQUNTQUM
      UEAURUMFNNUKUJUL $.
  $}

  ${
    umgrun.g $e |- ( ph -> G e. UMGraph ) $.
    umgrun.h $e |- ( ph -> H e. UMGraph ) $.
    umgrun.e $e |- E = ( iEdg ` G ) $.
    umgrun.f $e |- F = ( iEdg ` H ) $.
    umgrun.vg $e |- V = ( Vtx ` G ) $.
    umgrun.vh $e |- ( ph -> ( Vtx ` H ) = V ) $.
    umgrun.i $e |- ( ph -> ( dom E i^i dom F ) = (/) ) $.
    ${
      $d x E $.  $d x F $.  $d x G $.  $d x H $.  $d x U $.  $d x V $.
      $d x ph $.
      umgrun.u $e |- ( ph -> U e. W ) $.
      umgrun.v $e |- ( ph -> ( Vtx ` U ) = V ) $.
      umgrun.un $e |- ( ph -> ( iEdg ` U ) = ( E u. F ) ) $.
      $( The union ` U ` of two multigraphs ` G ` and ` H ` with the same
         vertex set ` V ` is a multigraph with the vertex ` V ` and the union
         ` ( E u. F ) ` of the (indexed) edges.  (Contributed by AV,
         25-Nov-2020.) $)
      umgrun $p |- ( ph -> U e. UMGraph ) $=
        ( vx wf cumgr wcel ciedg cfv cdm cv chash c2 wceq cvtx cpw crab cun syl
        umgrf eqid eqcomd pweqd rabeqdv feq3d mpbird fun2d dmeqd syl6eq feq123d
        dmun wb isumgrs ) ABUAUBZBUCUDZUEZSUFUGUDUHUIZSBUJUDZUKZULZVJTZAVPCUEZD
        UEZUMZVLSGUKZULZCDUMZTAVQVRWACDAEUAUBVQWACTISCEGMKUOUNAVRWADTVRVLSFUJUD
        ZUKZULZDTZAFUAUBWFJSDFWCWCUPLUOUNAWAWEDVRAVLSVTWDAGWCAWCGNUQURUSUTVAOVB
        AVKVSVOWAVJWBRAVKWBUEVSAVJWBRVCCDVFVDAVLSVNVTAVMGQURUSVEVAABHUBVIVPVGPS
        HVJBVMVMUPVJUPVHUNVA $.
    $}

    $( The union of two multigraphs (with the same vertex set):  If
       ` <. V , E >. ` and ` <. V , F >. ` are multigraphs, then
       ` <. V , E u. F >. ` is a multigraph (the vertex set stays the same, but
       the edges from both graphs are kept).  (Contributed by Mario Carneiro,
       12-Mar-2015.)  (Revised by AV, 25-Nov-2020.) $)
    umgrunop $p |- ( ph -> <. V , ( E u. F ) >. e. UMGraph ) $=
      ( cvv wcel cvtx cfv fvex eqeltri ciedg cun cop opex a1i wceq unex opvtxfv
      wa pm3.2i mp1i opiedgfv umgrun ) AFBCUAZUBZBCDEFNGHIJKLMUNNOAFUMUCUDFNOZU
      MNOZUHZUNPQFUEAUOUPFDPQNKDPRSBCBDTQNIDTRSCETQNJETRSUFUIZUMFNNUGUJUQUNTQUM
      UEAURUMFNNUKUJUL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Loop-free graphs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  For a hypergraph, the property to be "loop-free" is expressed by
  ` I : dom I --> E ` with ` E = { x e. ~P V | 2 <_ ( # `` x ) } ` and
  ` I = ( iEdg `` G ) `. ` E ` is the set of edges which connect at least two
  vertices.

$)

  $( Lemma for ~ umgrislfupgr and ~ usgrislfuspgr .  (Contributed by AV,
     27-Jan-2021.) $)
  umgrislfupgrlem $p |- ( { x e. ( ~P V \ { (/) } ) | ( # ` x ) <_ 2 }
                      i^i { x e. ~P V | 2 <_ ( # ` x ) } )
                        = { x e. ( ~P V \ { (/) } ) | ( # ` x ) = 2 } $=
    ( chash cfv c2 cle wbr c0 crab cin wa wceq cc0 wcel wi 2re ax-mp wb cxr cvv
    cv cpw csn cdif clt 2pos wne simprl fveq2 hash0 syl6eq breq2d wn 0re lenlti
    pm2.21 sylbi syl6bi adantld impd ax-1 pm2.61ine eldifsn sylanbrc simprr jca
    com23 ex eldifi anim1i impbid1 rabbidva2 ineq2i inrab cxnn0 hashxnn0 xnn0xr
    vex rexri xrletri3 mp2an bicomi a1i rabbiia 3eqtri ) AUAZCDZEFGZABUBZHUCZUD
    ZIZEWGFGZAWIIZJWLWMAWKIZJWHWMKZAWKIWGELZAWKIWNWOWLMEUEGZWNWOLUFWRWMWMAWIWKW
    RWFWINZWMKZWFWKNZWMKZWRWTXBWRWTKZXAWMXCWSWFHUGZXAWRWSWMUHXCXDOWFHWFHLZWRWTX
    DXEWTWRXDXEWMWRXDOZWSXEWMEMFGZXFXEWGMEFXEWGHCDMWFHCUIUJUKULXGWRUMXFEMPUNUOW
    RXDUPUQURUSVGUTXDXCVAVBWFWIHVCVDWRWSWMVEVFVHXAWSWMWFWIWJVIVJVKVLQVMWHWMAWKV
    NWPWQAWKWPWQRXAWQWPWGSNZESNWQWPRWGVONZXHWFTNXIAVRWFTVPQWGVQQEPVSWGEVTWAWBWC
    WDWE $.

  ${
    $d G x $.  $d V x $.
    umgrislfupgr.v $e |- V = ( Vtx ` G ) $.
    umgrislfupgr.i $e |- I = ( iEdg ` G ) $.
    $( A multigraph is a loop-free pseudograph.  (Contributed by AV,
       27-Jan-2021.) $)
    umgrislfupgr $p |- ( G e. UMGraph <-> ( G e. UPGraph
                         /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) ) $=
      ( cumgr wcel cupgr cdm c2 cle wbr crab wf wa wceq a1i mpbird wb chash cfv
      cv cpw umgrupgr umgrf id wss wi 2re leidi breq2 ss2rabi fssd syl jca cdif
      csn upgrf cin fin umgrislfupgrlem ax-mp sylbb1 sylan isumgr adantr impbii
      c0 feq3 ) BGHZBIHZCJZKAUCZUAUBZLMZADUDZNZCOZPZVKVLVSBUEVKVMVOKQZAVQNZCOZV
      SACBDEFUFWCVMWBVRCWCUGWBVRUHWCWAVPAVQWAVPUIVNVQHWAVPKKLMZWDWAKUJUKRVOKKLU
      LSRUMRUNUOUPVTVKVMWAAVQVIURUQZNZCOZVLVMVOKLMAWENZCOZVSWGACBDEFUSVMWHVRUTZ
      COZWIVSPWGVMWHVRCVAWJWFQWKWGTADVBWJWFVMCVJVCVDVEVLVKWGTVSAICBDEFVFVGSVH
      $.
  $}

  ${
    $d A x $.  $d I x y $.  $d V x y $.  $d X y $.
    lfuhgrnloopv.i $e |- I = ( iEdg ` G ) $.
    lfuhgrnloopv.a $e |- A = dom I $.
    lfuhgrnloopv.e $e |- E = { x e. ~P V | 2 <_ ( # ` x ) } $.
    $( An edge of a loop-free graph has at least two ends.  (Contributed by AV,
       23-Feb-2021.) $)
    lfgredgge2 $p |- ( ( I : A --> E /\ X e. A )
                       -> 2 <_ ( # ` ( I ` X ) ) ) $=
      ( vy wf wcel cfv c2 cv chash cle wbr wceq wa crab feq23i biimpi ffvelrnda
      cpw eqid fveq2 breq2d cbvrabv elrab2 simprbi syl ) BCELZGBMUAGENZOAPZQNZR
      SZAFUFZUBZMZOUOQNZRSZUNBUTGEUNBUTELBCBUTEBUGJUCUDUEVAUOUSMVCOKPZQNZRSZVCK
      UOUSUTVDUOTVEVBORVDUOQUHUIURVFAKUSUPVDTUQVEORUPVDQUHUIUJUKULUM $.

    $d U x $.
    $( A loop-free graph has no loops.  (Contributed by AV, 23-Feb-2021.) $)
    lfgrnloop $p |- ( I : A --> E -> { x e. A | ( I ` x ) = { U } } = (/) ) $=
      ( cfv wceq wn c2 chash cle wbr cc0 c1 mtbiri wf cv csn wral crab nfcv cpw
      c0 nfrab1 nfcxfr nff wcel wa wo hashsn01 clt 2pos 0re 2re mpbi breq2 1lt2
      ltnlei 1re jaoi ax-mp fveq2 breq2d lfgredgge2 nsyl3 ralrimi rabeq0 sylibr
      ex ) BDFUAZAUBZFKZCUCZLZMZABUDVSABUEUHLVOVTABABDFAFUFABUFADNVPOKPQZAGUGZU
      EJWAAWBUIUJUKVOVPBULZVTVSNVQOKZPQZVOWCUMVSWENVROKZPQZWFRLZWFSLZUNWGMZCUOW
      HWJWIWHWGNRPQZRNUPQWKMUQRNURUSVCUTWFRNPVATWIWGNSPQZSNUPQWLMVBSNVDUSVCUTWF
      SNPVATVEVFVSWDWFNPVQVROVGVHTABDEFGVPHIJVIVJVNVKVSABVLVM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Edges as subsets of vertices of graphs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d E x $.  $d I x $.
    uhgredgiedgb.i $e |- I = ( iEdg ` G ) $.
    $( In a hypergraph, a set is an edge iff it is an indexed edge.
       (Contributed by AV, 17-Oct-2020.) $)
    uhgredgiedgb $p |- ( G e. UHGraph -> ( E e. ( Edg ` G )
                                         <-> E. x e. dom I E = ( I ` x ) ) ) $=
      ( cuhgr wcel wfun cedg cfv cv wceq cdm wrex wb uhgrfun edgiedgb syl ) CFG
      DHBCIJGBAKDJLADMNODCEPABCDEQR $.
  $}

  $( A hypergraph has no edges iff its edge function is empty.  (Contributed by
     AV, 21-Oct-2020.)  (Proof shortened by AV, 8-Dec-2021.) $)
  uhgriedg0edg0 $p |- ( G e. UHGraph -> ( ( Edg ` G ) = (/)
                                          <-> ( iEdg ` G ) = (/) ) ) $=
    ( cuhgr wcel ciedg cfv wfun cedg c0 wceq wb eqid uhgrfun edg0iedg0 syl ) AB
    CADEZFAGEZHIOHIJOAOKZLPAOQPKMN $.

  $( An edge of a hypergraph is a nonempty subset of vertices.  (Contributed by
     AV, 28-Nov-2020.) $)
  uhgredgn0 $p |- ( ( G e. UHGraph /\ E e. ( Edg ` G ) )
                  -> E e. ( ~P ( Vtx ` G ) \ { (/) } ) ) $=
    ( cuhgr wcel cedg cfv cvtx cpw c0 csn cdif ciedg crn edgval cdm wf wss eqid
    uhgrf frn syl syl5eqss sselda ) BCDZBEFZBGFZHIJKZAUDUEBLFZMZUGBNUDUHOZUGUHP
    UIUGQUHBUFUFRUHRSUJUGUHTUAUBUC $.

  $( An edge of a hypergraph is a subset of vertices.  (Contributed by AV,
     26-Oct-2020.)  (Proof shortened by AV, 28-Nov-2020.) $)
  edguhgr $p |- ( ( G e. UHGraph /\ E e. ( Edg ` G ) )
                  -> E e. ~P ( Vtx ` G ) ) $=
    ( cuhgr wcel cedg cfv wa cvtx cpw c0 csn uhgredgn0 eldifad ) BCDABEFDGABHFI
    JKABLM $.

  $( An edge of a hypergraph contains only vertices.  (Contributed by Alexander
     van der Vekens, 18-Feb-2018.)  (Revised by AV, 4-Jun-2021.) $)
  uhgredgrnv $p |- ( ( G e. UHGraph /\ E e. ( Edg ` G ) /\ N e. E )
                     -> N e. ( Vtx ` G ) ) $=
    ( cuhgr wcel cedg cfv cvtx wa cpw wi edguhgr elelpwi expcom syl 3impia ) BD
    EZABFGEZCAEZCBHGZEZQRIATJEZSUAKABLSUBUACATMNOP $.

  ${
    $d G x $.
    $( The set of edges of a hypergraph is a subset of the power set of
       vertices without the empty set.  (Contributed by AV, 29-Nov-2020.) $)
    uhgredgss $p |- ( G e. UHGraph
                      -> ( Edg ` G ) C_ ( ~P ( Vtx ` G ) \ { (/) } ) ) $=
      ( vx cuhgr wcel cedg cfv cvtx cpw c0 csn cdif cv uhgredgn0 ex ssrdv ) ACD
      ZBAEFZAGFHIJKZPBLZQDSRDSAMNO $.

    $( The set of edges of a pseudograph is a subset of the set of unordered
       pairs of vertices.  (Contributed by AV, 29-Nov-2020.) $)
    upgredgss $p |- ( G e. UPGraph -> ( Edg ` G )
                 C_ { x e. ( ~P ( Vtx ` G ) \ { (/) } ) | ( # ` x ) <_ 2 } ) $=
      ( cupgr wcel cedg cfv ciedg crn cv chash c2 cle wbr cvtx cpw c0 cdif crab
      csn eqid edgval cdm wf wss upgrf frn syl syl5eqss ) BCDZBEFBGFZHZAIJFKLMA
      BNFZOPSQRZBUAUIUJUBZUMUJUCUKUMUDAUJBULULTUJTUEUNUMUJUFUGUH $.

    $( The set of edges of a multigraph is a subset of the set of unordered
       pairs of vertices.  (Contributed by AV, 25-Nov-2020.) $)
    umgredgss $p |- ( G e. UMGraph
               -> ( Edg ` G ) C_ { x e. ~P ( Vtx ` G ) | ( # ` x ) = 2 } ) $=
      ( cumgr wcel cedg cfv ciedg crn cv chash c2 wceq cvtx cpw crab edgval cdm
      wf wss eqid umgrf frn syl syl5eqss ) BCDZBEFBGFZHZAIJFKLABMFZNOZBPUEUFQZU
      IUFRUGUISAUFBUHUHTUFTUAUJUIUFUBUCUD $.

    $d E x $.
    $( Properties of an edge of a pseudograph.  (Contributed by AV,
       8-Nov-2020.) $)
    edgupgr $p |- ( ( G e. UPGraph /\ E e. ( Edg ` G ) )
                -> ( E e. ~P ( Vtx ` G ) /\ E =/= (/) /\ ( # ` E ) <_ 2 ) ) $=
      ( vx cupgr wcel cedg cfv cvtx cpw c0 wne chash c2 cle wbr w3a wceq a1i wa
      eqid ciedg crn edgval eleq2d cv csn cdif crab cdm wss upgrf frn syl sseld
      fveq2 breq1d elrab eldifsn biimpi anim1i df-3an sylibr syl5bi syld sylbid
      wf wi imp ) BDEZABFGZEZABHGZIZEZAJKZALGZMNOZPZVIVKABUAGZUBZEZVRVIVJVTAVJV
      TQVIBUCRUDVIWAACUEZLGZMNOZCVMJUFUGZUHZEZVRVIVTWFAVIVSUIZWFVSVFVTWFUJCVSBV
      LVLTVSTUKWHWFVSULUMUNWGAWEEZVQSZVIVRWDVQCAWEWBAQWCVPMNWBALUOUPUQWJVRVGVIW
      JVNVOSZVQSVRWIWKVQWIWKAVMJURUSUTVNVOVQVAVBRVCVDVEVH $.

    $( Properties of an edge of a multigraph.  (Contributed by AV,
       25-Nov-2020.) $)
    edgumgr $p |- ( ( G e. UMGraph /\ E e. ( Edg ` G ) )
                    -> ( E e. ~P ( Vtx ` G ) /\ ( # ` E ) = 2 ) ) $=
      ( vx cumgr wcel cedg cfv wa cv chash wceq cvtx cpw umgredgss sselda fveq2
      c2 crab eqeq1d elrab sylib ) BDEZABFGZEHACIZJGZQKZCBLGMZRZEAUGEAJGZQKZHUB
      UCUHACBNOUFUJCAUGUDAKUEUIQUDAJPSTUA $.
  $}

  ${
    $d E e $.  $d I e i $.  $d U e i $.
    uhgrvtxedgiedgb.v $e |- V = ( Vtx ` G ) $.
    uhgrvtxedgiedgb.i $e |- I = ( iEdg ` G ) $.
    uhgrvtxedgiedgb.e $e |- E = ( Edg ` G ) $.
    $( In a hypergraph, a vertex is incident with an edge iff it is contained
       in an element of the range of the edge function.  (Contributed by AV,
       24-Dec-2020.) $)
    uhgrvtxedgiedgb $p |- ( ( G e. UHGraph /\ U e. V )
                  -> ( E. i e. dom I U e. ( I ` i ) <-> E. e e. E U e. e ) ) $=
      ( cuhgr wcel wa cv wrex cfv cdm wb crn cedg ciedg wceq edgval a1i 3eqtr4g
      rneqi rexeqdv wfn uhgrfun funfn sylib eleq2 rexrn syl bitrd adantr bicomd
      wfun ) EKLZAGLZMABNZLZBDOZACNFPZLZCFQZOZUSVCVGRUTUSVCVBBFSZOZVGUSVBBDVHUS
      ETPZEUAPZSZDVHVJVLUBUSEUCUDJFVKIUFUEUGUSFVFUHZVIVGRUSFURVMFEIUIFUJUKVBVEB
      CVFFVAVDAULUMUNUOUPUQ $.
  $}

  ${
    $d C x $.  $d G x $.  $d V x $.  $d C a b c $.  $d G a b $.  $d V a b c $.
    upgredg.v $e |- V = ( Vtx ` G ) $.
    upgredg.e $e |- E = ( Edg ` G ) $.
    $( For each edge in a pseudograph, there are two vertices which are
       connected by this edge.  (Contributed by AV, 4-Nov-2020.)  (Proof
       shortened by AV, 26-Nov-2021.) $)
    upgredg $p |- ( ( G e. UPGraph /\ C e. E )
                    -> E. a e. V E. b e. V C = { a , b } ) $=
      ( vx wcel wa cv chash cfv c2 cle wbr wceq wrex syl cupgr cpw c0 cdif crab
      csn cpr ciedg crn cedg edgval a1i syl5eq eleq2d cdm wf wss eqid upgrf frn
      sseld sylbid imp fveq2 breq1d elrab hashle2prv biimpa sylbi ) CUAJZABJZKA
      ILZMNZOPQZIDUBUCUFUDZUEZJZAELFLUGRFDSEDSZVJVKVQVJVKACUHNZUIZJVQVJBVTAVJBC
      UJNZVTHWAVTRVJCUKULUMUNVJVTVPAVJVSUOZVPVSUPVTVPUQIVSCDGVSURUSWBVPVSUTTVAV
      BVCVQAVOJZAMNZOPQZKVRVNWEIAVOVLARVMWDOPVLAMVDVEVFWCWEVRADEFVGVHVIT $.

    $( For each edge in a multigraph, there are two distinct vertices which are
       connected by this edge.  (Contributed by Alexander van der Vekens,
       9-Dec-2017.)  (Revised by AV, 25-Nov-2020.) $)
    umgredg $p |- ( ( G e. UMGraph /\ C e. E )
                    -> E. a e. V E. b e. V ( a =/= b /\ C = { a , b } ) ) $=
      ( cumgr wcel wa cv wne cpr wceq wex wrex cfv wss vex cvtx chash c2 eleq2i
      cpw cedg edgumgr sylan2b hash2prde wi eleq1 prex elpw sseq2i sylbbr sylbi
      prss syl6bi adantrd adantl imdistanri ex 2eximdv mpd syl r2ex sylibr ) CI
      JZABJZKZELZDJFLZDJKZVKVLMZAVKVLNZOZKZKZFPEPZVQFDQEDQVJACUARZUEZJZAUBRUCOZ
      KZVSVIVHACUFRZJWDBWEAHUDACUGUHWDVQFPEPVSAWAEFUIWDVQVREFWDVQVRVQWDVMVPWDVM
      UJVNVPWBVMWCVPWBVOWAJZVMAVOWAUKWFVOVTSZVMVOVTVKVLULUMVMVODSWGVKVLDETFTUQD
      VTVOGUNUOUPURUSUTVAVBVCVDVEVQEFDDVFVG $.

    ${
      $d E m n $.  $d G m n $.  $d M m n $.  $d N m n $.  $d U m n $.
      $d V m n $.  $d W m n $.
      $( An edge of a pseudograph always connects two vertices if the edge
         contains two sets.  The two vertices/sets need not necessarily be
         different (loops are allowed).  (Contributed by AV, 18-Nov-2021.) $)
      upgrpredgv $p |- ( ( G e. UPGraph /\ ( M e. U /\ N e. W )
                                        /\ { M , N } e. E )
                         -> ( M e. V /\ N e. V ) ) $=
        ( vm vn wcel wa cpr cv wceq wb eleq1 eqcoms biimpd wrex upgredg 3adant2
        cupgr wo preq12bg 3ad2antl2 wi im2anan9 com12 ancoms jaod adantl sylbid
        w3a rexlimdvva mpd ) CUDLZDALEGLMZDENZBLZUOZUTJOZKOZNPZKFUAJFUAZDFLZEFL
        ZMZURVAVFUSUTBCFJKHIUBUCVBVEVIJKFFVBVCFLZVDFLZMZMVEDVCPZEVDPZMZDVDPZEVC
        PZMZUEZVIUSURVLVEVSQVADEVCVDAGFFUFUGVLVSVIUHVBVLVOVIVRVOVLVIVMVJVGVNVKV
        HVMVJVGVJVGQVCDVCDFRSTVNVKVHVKVHQVDEVDEFRSTUIUJVKVJVRVIUHVRVKVJMVIVPVKV
        GVQVJVHVPVKVGVKVGQVDDVDDFRSTVQVJVHVJVHQVCEVCEFRSTUIUJUKULUMUNUPUQ $.
    $}

    $( An edge of a multigraph always connects two vertices.  Analogue of
       ~ umgredgprv .  This theorem does not hold for arbitrary pseudographs:
       if either ` M ` or ` N ` is a proper class, then ` { M , N } e. E `
       could still hold ( ` { M , N } ` would be either ` { M } ` or
       ` { N } ` , see ~ prprc1 or ~ prprc2 , i.e. a loop), but ` M e. V ` or
       ` N e. V ` would not be true.  (Contributed by AV, 27-Nov-2020.) $)
    umgrpredgv $p |- ( ( G e. UMGraph /\ { M , N } e. E )
                      -> ( M e. V /\ N e. V ) ) $=
      ( cumgr wcel cpr wa cvtx cfv cpw chash c2 wceq cedg eleq2i syl edgumgr wi
      sylan2b wne hashprdifel eqcomi pweqi prelpw biimprd syl5bi 3adant3 impcom
      w3a eqid ) BHIZCDJZAIZKUPBLMZNZIZUPOMPQZKZCEIDEIKZUQUOUPBRMZIVBAVDUPGSUPB
      UAUCVAUTVCVACUPIZDUPIZCDUDZUMUTVCUBZCDUPUPUNUEVEVFVHVGUTUPENZIZVEVFKZVCUS
      VIUPUREEURFUFUGSVKVCVJCDEUPUPUHUIUJUKTULT $.

    $d A a b c $.  $d E a c $.  $d G c $.
    $( For a vertex incident to an edge there is another vertex incident to the
       edge in a pseudograph.  (Contributed by AV, 18-Oct-2020.)  (Revised by
       AV, 5-Dec-2020.) $)
    upgredg2vtx $p |- ( ( G e. UPGraph /\ C e. E /\ A e. C )
                        -> E. b e. V C = { A , b } ) $=
      ( va vc cupgr wcel w3a cv cpr wceq wrex upgredg 3adant3 wi wa eleq2 eqeq1
      elpr2elpr 3expia rexbidv imbi12d syl5ibr com13 3ad2ant3 rexlimdvv mpd ) D
      KLZBCLZABLZMZBINZJNZOZPZJEQIEQZBAFNOZPZFEQZUMUNVAUOBCDEIJGHRSUPUTVDIJEEUO
      UMUQELZURELZUAZUTVDTTUNUTVGUOVDVGUOVDTUTAUSLZUSVBPZFEQZTVEVFVHVJAEUQURFUD
      UEUTUOVHVDVJBUSAUBUTVCVIFEBUSVBUCUFUGUHUIUJUKUL $.

    $d B a b $.  $d U a b $.  $d W a b $.
    $( If a proper pair (of vertices) is a subset of an edge in a pseudograph,
       the pair is the edge.  (Contributed by AV, 30-Dec-2020.) $)
    upgredgpr $p |- ( ( ( G e. UPGraph /\ C e. E /\ { A , B } C_ C )
                          /\ ( A e. U /\ B e. W /\ A =/= B ) )
                      -> { A , B } = C ) $=
      ( va vb wcel cpr wss w3a wceq cv wrex wi cupgr wne upgredg 3adant3 biimpd
      wa ssprsseq sseq2 eqeq2 imbi12d syl5ibr com23 a1i rexlimivv com12 mpd imp
      3ad2ant3 ) FUAMZCEMZABNZCOZPZADMBHMABUBPZVACQZVCCKRZLRZNZQZLGSKGSZVDVETZU
      SUTVJVBCEFGKLIJUCUDVBUSVJVKTUTVJVBVKVIVBVKTZKLGGVIVLTVFGMVGGMUFVIVDVBVEVD
      VBVETVIVAVHOZVAVHQZTVDVMVNABVFVGDHUGUEVIVBVMVEVNCVHVAUHCVHVAUIUJUKULUMUNU
      OURUPUQ $.
  $}

  ${
    $d E m n v $.  $d G i m n $.  $d N i m n v $.  $d V i m n v $.
    edglnl.v $e |- V = ( Vtx ` G ) $.
    edglnl.e $e |- E = ( iEdg ` G ) $.
    $( The edges incident with a vertex ` N ` are the edges joining ` N ` with
       other vertices and the loops on ` N ` in a pseudograph.  (Contributed by
       AV, 18-Dec-2021.) $)
    edglnl $p |- ( ( G e. UPGraph /\ N e. V )
                  -> ( U_ v e. ( V \ { N } )
                          { i e. dom E | ( N e. ( E ` i ) /\ v e. ( E ` i ) ) }
                       u. { i e. dom E | ( E ` i ) = { N } } )
                     = { i e. dom E | N e. ( E ` i ) } ) $=
      ( vn vm wcel wa csn cv cfv crab wceq wrex wi eleq2 cupgr cdif ciun iunrab
      cdm cun a1i uneq1d wo unrab simpl rexlimivw ad2antlr syl5ibrcom jaod cedg
      snidg wfun cuhgr upgruhgr uhgrfun syl adantr iedgedg sylan cpr upgredg ex
      eqid ad2antrr dfsn2 eqcomi elsni eqcomd syl5eq eleq2s preq2 eleq2d eqeq1d
      w3a sneq imbi12d mpbiri imp olcd expcom 3ad2ant3 wne simpr3 necomd simpr2
      com12 prproe syl3anc r19.42v sylanbrc orcd pm2.61ine 3exp anbi12d rexbidv
      eqeq1 orbi12d rexlimdvva syld mpd impbid rabbidva eqtrd ) DUAKZEFKZLZAFEM
      ZUBZEBNZCOZKZANZXPKZLZBCUEZPUCZXPXMQZBYAPZUFXTAXNRZBYAPZYDUFZXQBYAPZXLYBY
      FYDYBYFQXLXTABXNYAUDUGUHXLYGYEYCUIZBYAPYHYEYCBYAUJXLYIXQBYAXLXOYAKZLZYIXQ
      YKYEXQYCYEXQSYKXTXQAXNXQXSUKULUGYKXQYCEXMKZXKYLXJYJEFUQUMXPXMETUNUOYKXPDU
      POZKZXQYISZXLCURZYJYNXJYPXKXJDUSKYPDUTCDHVAVBVCCDXOHVDVEYKYNXPINZJNZVFZQZ
      JFRIFRZYOXJYNUUASXKYJXJYNUUAXPYMDFIJGYMVIVGVHVJYKYTYOIJFFYKYQFKYRFKLZLYOY
      TEYSKZUUCXRYSKZLZAXNRZYSXMQZUIZSZYKUUBUUIXKUUBUUISXJYJXKUUBUUCUUHXKUUBUUC
      VTZUUHSYRYQUUJYRYQQZUUHUUCXKUUKUUHSUUBUUKUUCUUHUUKUUCLUUGUUFUUKUUCUUGUUKU
      UCUUGSEYQYQVFZKZUULXMQZSUUNEYQMZUULEUUOKZUULUUOXMUUOUULYQVKVLZUUPEYQQZUUO
      XMQEYQVMUURXMUUOEYQWAVNVBVOUUQVPUUKUUCUUMUUGUUNUUKYSUULEYRYQYQVQZVRUUKYSU
      ULXMUUSVSWBWCWDWEWFWGWLYRYQWHZUUJUUHUUTUUJLZUUFUUGUVAUUCUUDAXNRZUUFUUTXKU
      UBUUCWIZUVAUUCYQYRWHUUBUVBUVCUVAYRYQUUTUUJUKWJUUTXKUUBUUCWKAYQYREFWMWNUUC
      UUDAXNWOWPWQVHWRWSUMWDYTXQUUCYIUUHXPYSETZYTYEUUFYCUUGYTXTUUEAXNYTXQUUCXSU
      UDUVDXPYSXRTWTXAXPYSXMXBXCWBUNXDXEXFXGXHVOXI $.

    $d E i w $.  $d E j $.  $d G j $.  $d G v w $.  $d N i j v $.  $d N w $.
    $d V j $.  $d V w $.  $d i n m w $.
    $( The number of edges incident with a vertex ` N ` is the number of edges
       joining ` N ` with other vertices and the number of loops on ` N ` in a
       pseudograph of finite size.  (Contributed by AV, 19-Dec-2021.) $)
    numedglnl $p |- ( ( G e. UPGraph /\ ( V e. Fin /\ E e. Fin ) /\ N e. V )
        -> ( sum_ v e. ( V \ { N } )
                  ( # ` { i e. dom E | ( N e. ( E ` i ) /\ v e. ( E ` i ) ) } )
             + ( # ` { i e. dom E | ( E ` i ) = { N } } ) )
           = ( # ` { i e. dom E | N e. ( E ` i ) } ) ) $=
      ( vw wcel cfn wa cv cfv chash wceq adantr wral wn wi vm vn cupgr w3a cdif
      vj csn cdm crab csu caddc co ciun cun diffi 3ad2ant2 rabfi syl adantl weq
      dmfi cin c0 wo wdisj notnotb cpr wrex cedg cuhgr upgruhgr uhgrfun iedgedg
      wfun sylan eqid upgredg syldan ex 3ad2ant1 eldifsni 3elpr2eq expcom 3expd
      imp wne com23 3imp con3d com24 eleq2 notbid imbi12d syl5ibrcom rexlimdvva
      3exp syl2an mpd syl5bir orrd anandi bicomi notbii orbi2i 3bitri ralrimiva
      ianor sylibr inrab eqeq1i rabeq0 ralrimivva eleq1w anbi2d rabbidv hashiun
      bitri disjor eqcomd oveq1d iunfi syl2anc fveq2 eqeq1d elrab syl5ibr eliun
      eldifn intnand ralnex eleq2d anbi12d ralbii 3bitr2i syl5bi ralrimiv disjr
      hashun syl3anc edglnl 3adant2 fveq2d 3eqtr2d ) DUCJZFKJZCKJZLZEFJZUDZFEUG
      ZUEZEBMZCNZJZAMZUUMJZLZBCUHZUIZONAUJZUUMUUJPZBUURUIZONZUKULAUUKUUSUMZONZU
      VCUKULZUVDUVBUNZONZUUNBUURUIZONUUIUUTUVEUVCUKUUIUVEUUTUUIAUUKUUSUUGUUDUUK
      KJZUUHUUEUVJUUFFUUJUOQUPZUUIUUSKJZUUOUUKJZUUGUUDUVLUUHUUFUVLUUEUUFUURKJZU
      VLCVAZUUQBUURUQURUSUPQZUUIAIUTZUUSUUNIMZUUMJZLZBUURUIZVBZVCPZVDZIUUKRAUUK
      RAUUKUUSVEUUIUWDAIUUKUUKUUIUVMUVRUUKJZLZLZUVQUWCUWGUVQSZUWCUWGUWHLZUUQUVT
      LZSZBUURRZUWCUWIUWKBUURUWIUULUURJZLZUUNSZUUPSZUVSSZVDZVDZUWKUWNUWOUWRUWOS
      UUNUWNUWRUUNVFUWNUUNUWRUWNUUNLZUWPUWQUWPSUUPUWTUWQUUPVFUWNUUNUUPUWQTZUWNU
      UMUAMZUBMZVGZPZUBFVHUAFVHZUUNUXATZUWIUWMUXFUWGUWMUXFTZUWHUUIUXHUWFUUDUUGU
      XHUUHUUDUWMUXFUUDUWMUUMDVINZJZUXFUUDCVNZUWMUXJUUDDVJJUXKDVKCDHVLURCDUULHV
      MVOUUMUXIDFUAUBGUXIVPVQVRVSVTQQWEUWIUXFUXGTZUWMUWGUWHUXLUWFUWHUXLTZUUIUVM
      UUOEWFZUVREWFZUXMUWEUUOFEWAUVRFEWAUXNUXOLZUWHUXLUXPUWHLZUXEUXGUAUBFFUXQUX
      EUXGTUXBFJUXCFJLUXQUXGUXEEUXDJZUUOUXDJZUVRUXDJZSZTZTZUXPUWHUYCUXPUXSUXRUW
      HUYAUXPUXSUXRUWHUYATUXPUXSUXRUDUXTUVQUXPUXSUXRUXTUVQTZUXPUXRUXSUYDUXPUXRU
      XSUXTUVQUXRUXSUXTUDUXPUVQUXBUXCEUUOUVRWBWCWDWGWHWIWPWJWEUXEUUNUXRUXAUYBUU
      MUXDEWKUXEUUPUXSUWQUYAUUMUXDUUOWKUXEUVSUXTUUMUXDUVRWKWLWMWMWNQWOVSWQUSWEQ
      WRWEWSWTVSWSWTUWKUUNUUPUVSLZLZSUWOUYESZVDUWSUWJUYFUYFUWJUUNUUPUVSXAXBXCUU
      NUYEXGUYGUWRUWOUUPUVSXGXDXEXHXFUWCUWJBUURUIZVCPUWLUWBUYHVCUUQUVTBUURXIXJU
      WJBUURXKXQXHVSWTXLUUKUUSUWAAIUVQUUQUVTBUURUVQUUPUVSUUNAIUUMXMXNXOXRXHXPXS
      XTUUIUVDKJZUVBKJZUVDUVBVBVCPZUVHUVFPUUIUVJUVLAUUKRUYIUVKUUIUVLAUUKUVPXFAU
      UKUUSYAYBUUGUUDUYJUUHUUFUYJUUEUUFUVNUYJUVOUVABUURUQURUSUPUUIUFMZUVDJZSZUF
      UVBRUYKUUIUYNUFUVBUYLUVBJUYLUURJZUYLCNZUUJPZLZUUIUYNUVAUYQBUYLUURBUFUTZUU
      MUYPUUJUULUYLCYCZYDYEUUIUYRUYNUUIUYRLZUYOEUYPJZUUOUYPJZLZLZSZAUUKRZUYNVUA
      VUFAUUKVUAUVMLZVUDUYOVUHVUCVUBVUAUVMVUCSZUYRUVMVUITZUUIUYQVUJUYOUVMVUIUYQ
      UUOUUJJZSUUOFUUJYHUYQVUCVUKUYPUUJUUOWKWLYFUSUSWEYIYIXFUYNUYLUUSJZAUUKVHZS
      VULSZAUUKRVUGUYMVUMAUYLUUKUUSYGXCVULAUUKYJVUNVUFAUUKVULVUEUUQVUDBUYLUURUY
      SUUNVUBUUPVUCUYSUUMUYPEUYTYKUYSUUMUYPUUOUYTYKYLYEXCYMYNXHVSYOYPUFUVDUVBYQ
      XHUVDUVBYRYSUUIUVGUVIOUUDUUHUVGUVIPUUGABCDEFGHYTUUAUUBUUC $.
  $}

  ${
    umgredgne.v $e |- E = ( Edg ` G ) $.
    $( An edge of a multigraph always connects two different vertices.
       Analogue of ~ umgrnloopv resp. ~ umgrnloop .  (Contributed by AV,
       27-Nov-2020.) $)
    umgredgne $p |- ( ( G e. UMGraph /\ { M , N } e. E ) -> M =/= N ) $=
      ( cumgr wcel cpr wa cvtx cfv cpw chash c2 wceq wne eleq2i edgumgr sylan2b
      cedg eqid hashprdifel simp3d adantl syl ) BFGZCDHZAGZIUGBJKLGZUGMKNOZIZCD
      PZUHUFUGBTKZGUKAUMUGEQUGBRSUJULUIUJCUGGDUGGULCDUGUGUAUBUCUDUE $.
  $}

  $( A multigraph has no loops.  (Contributed by AV, 27-Oct-2020.)  (Revised by
     AV, 30-Nov-2020.) $)
  umgrnloop2 $p |- ( G e. UMGraph -> { N , N } e/ ( Edg ` G ) ) $=
    ( cumgr wcel cpr cedg wn wnel cvtx wa eqid umgrpredgv simpld wceq umgredgne
    cfv wne eqneqall mpsyl pm2.65da df-nel sylibr ) ACDZBBEZAFPZDZGUDUEHUCUFBAI
    PZDZUCUFJZUHUHUEABBUGUGKUEKZLMBBNUIBBQUHGZBKUEABBUJOUKBBRSTUDUEUAUB $.

  ${
    $d C v $.  $d E v $.  $d G v $.
    umgredgnlp.e $e |- E = ( Edg ` G ) $.
    $( An edge of a multigraph is not a loop.  (Contributed by AV, 9-Jan-2020.)
       (Revised by AV, 8-Jun-2021.) $)
    umgredgnlp $p |- ( ( G e. UMGraph /\ C e. E ) -> -. E. v C = { v } ) $=
      ( cumgr wcel wa cv csn wceq cvtx cfv cpw chash c2 cvv c1 wn mtbiri eqeq1d
      vex hashsng 1ne2 neii eqeq1 mp2b fveq2 intnand cedg edgumgr sylan2b nsyl3
      eleq2i nexdv ) DFGZBCGZHZBAIZJZKZAVABDLMNGZBOMZPKZHZURVAVDVBVAVDUTOMZPKZU
      SQGVFRKZVGSAUBUSQUCVHVGRPKRPUDUEVFRPUFTUGVAVCVFPBUTOUHUATUIUQUPBDUJMZGVEC
      VIBEUNBDUKULUMUO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Undirected simple graphs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, "simple graph" will always stand for "undirected simple
  graph (without loops)" and "simple pseudograph" for "undirected simple
  pseudograph (which could have loops)".

$)

  $c USPGraph $.
  $c USGraph $.

  $( Extend class notation with undirected simple pseudographs (which could
     have loops). $)
  cuspgr $a class USPGraph $.

  $( Extend class notation with undirected simple graphs (without loops). $)
  cusgr $a class USGraph $.

  ${
    $d e g v x $.
    $( Define the class of all undirected simple pseudographs (which could have
       loops).  An undirected simple pseudograph is a special undirected
       pseudograph (see ~ uspgrupgr ) or a special undirected simple hypergraph
       (see ~ uspgrushgr ), consisting of a set ` v ` (of "vertices") and an
       injective (one-to-one) function ` e ` (representing (indexed) "edges")
       into subsets of ` v ` of cardinality one or two, representing the two
       vertices incident to the edge, or the one vertex if the edge is a loop.
       In contrast to a pseudograph, there is at most one edge between two
       vertices resp. at most one loop for a vertex.  (Contributed by Alexander
       van der Vekens, 10-Aug-2017.)  (Revised by AV, 13-Oct-2020.) $)
    df-uspgr $a |- USPGraph = { g | [. ( Vtx ` g ) / v ].
                                    [. ( iEdg ` g ) / e ].
             e : dom e -1-1-> { x e. ( ~P v \ { (/) } ) | ( # ` x ) <_ 2 } } $.

    $( Define the class of all undirected simple graphs (without loops).  An
       undirected simple graph is a special undirected simple pseudograph (see
       ~ usgruspgr ), consisting of a set ` v ` (of "vertices") and an
       injective (one-to-one) function ` e ` (representing (indexed) "edges")
       into subsets of ` v ` of cardinality two, representing the two vertices
       incident to the edge.  In contrast to an undirected simple pseudograph,
       an undirected simple graph has no loops (edges connecting a vertex with
       itself).  (Contributed by Alexander van der Vekens, 10-Aug-2017.)
       (Revised by AV, 13-Oct-2020.) $)
    df-usgr $a |- USGraph = { g | [. ( Vtx ` g ) / v ]. [. ( iEdg ` g ) / e ].
              e : dom e -1-1-> { x e. ( ~P v \ { (/) } ) | ( # ` x ) = 2 } } $.
  $}

  ${
    $d e g h v x $.  $d E h $.  $d G h x $.  $d V h x $.
    isuspgr.v $e |- V = ( Vtx ` G ) $.
    isuspgr.e $e |- E = ( iEdg ` G ) $.
    $( The property of being a simple pseudograph.  (Contributed by Alexander
       van der Vekens, 10-Aug-2017.)  (Revised by AV, 13-Oct-2020.) $)
    isuspgr $p |- ( G e. U -> ( G e. USPGraph <->
           E : dom E -1-1-> { x e. ( ~P V \ { (/) } ) | ( # ` x ) <_ 2 } ) ) $=
      ( ve vv vg vh wcel cv cdm cfv cpw ciedg cvtx wceq fveq2 cuspgr c2 cle wbr
      chash c0 csn cdif crab wf1 cab df-uspgr eleq2i syl6eqr dmeqd eqcomi dmeqi
      wsbc syl6eq pweqd difeq1d rabeqdv f1eq123d weq fvexd wa adantr simpr pweq
      cvv ad2antlr sbcied2 cbvabv elab2g syl5bb ) DUALDHMZNZAMUEOUBUCUDZAIMZPZU
      FUGZUHZUIZVPUJZHJMZQOZURZIWEROZURZJUKZLDBLCNZVRAEPZWAUHZUIZCUJZUAWJDAIHJU
      LUMKMZQOZNZVRAWPROZPZWAUHZUIZWQUJZWOKDWJBWPDSZWRWKXBWNWQCXDWQDQOZCWPDQTZG
      UNXDWRXENWKXDWQXEXFUOXECCXEGUPUQUSXDVRAXAWMXDWTWLWAXDWSEXDWSDROEWPDRTFUNU
      TVAVBVCWIXCJKJKVDZWGXCIWHWSVJXGWERVEWEWPRTXGVSWSSZVFZWDXCHWFWQVJXIWEQVEXG
      WFWQSXHWEWPQTVGXIVPWQSZVFZVQWRWCXBVPWQXIXJVHZXKVPWQXLUOXKVRAWBXAXKVTWTWAX
      HVTWTSXGXJVSWSVIVKVAVBVCVLVLVMVNVO $.

    $( The property of being a simple graph.  (Contributed by Alexander van der
       Vekens, 10-Aug-2017.)  (Revised by AV, 13-Oct-2020.) $)
    isusgr $p |- ( G e. U -> ( G e. USGraph <->
            E : dom E -1-1-> { x e. ( ~P V \ { (/) } ) | ( # ` x ) = 2 } ) ) $=
      ( ve vv vg vh wcel cv cdm cfv wceq cpw ciedg cvtx fveq2 cusgr chash c2 c0
      csn cdif crab wf1 wsbc cab df-usgr eleq2i dmeqd eqcomi dmeqi syl6eq pweqd
      syl6eqr difeq1d rabeqdv f1eq123d weq cvv fvexd adantr simpr pweq ad2antlr
      wa sbcied2 cbvabv elab2g syl5bb ) DUALDHMZNZAMUBOUCPZAIMZQZUDUEZUFZUGZVNU
      HZHJMZROZUIZIWCSOZUIZJUJZLDBLCNZVPAEQZVSUFZUGZCUHZUAWHDAIHJUKULKMZROZNZVP
      AWNSOZQZVSUFZUGZWOUHZWMKDWHBWNDPZWPWIWTWLWOCXBWODROZCWNDRTZGURXBWPXCNWIXB
      WOXCXDUMXCCCXCGUNUOUPXBVPAWSWKXBWRWJVSXBWQEXBWQDSOEWNDSTFURUQUSUTVAWGXAJK
      JKVBZWEXAIWFWQVCXEWCSVDWCWNSTXEVQWQPZVIZWBXAHWDWOVCXGWCRVDXEWDWOPXFWCWNRT
      VEXGVNWOPZVIZVOWPWAWTVNWOXGXHVFZXIVNWOXJUMXIVPAVTWSXIVRWRVSXFVRWRPXEXHVQW
      QVGVHUSUTVAVJVJVKVLVM $.

    $( The edge function of a simple pseudograph is a one-to-one function into
       unordered pairs of vertices.  (Contributed by Alexander van der Vekens,
       10-Aug-2017.)  (Revised by AV, 13-Oct-2020.) $)
    uspgrf $p |- ( G e. USPGraph ->
             E : dom E -1-1-> { x e. ( ~P V \ { (/) } ) | ( # ` x ) <_ 2 } ) $=
      ( cuspgr wcel cdm cv chash cfv c2 cle wbr cpw c0 csn cdif crab isuspgr
      wf1 ibi ) CGHBIAJKLMNOADPQRSTBUBAGBCDEFUAUC $.

    $( The edge function of a simple graph is a one-to-one function into
       unordered pairs of vertices.  (Contributed by Alexander van der Vekens,
       10-Aug-2017.)  (Revised by AV, 13-Oct-2020.) $)
    usgrf $p |- ( G e. USGraph ->
              E : dom E -1-1-> { x e. ( ~P V \ { (/) } ) | ( # ` x ) = 2 } ) $=
      ( cusgr wcel cdm cv chash cfv c2 wceq cpw c0 csn cdif crab wf1 isusgr ibi
      ) CGHBIAJKLMNADOPQRSBTAGBCDEFUAUB $.

    $d x U $.
    $( The property of being a simple graph, simplified version of ~ isusgr .
       (Contributed by Alexander van der Vekens, 13-Aug-2017.)  (Revised by AV,
       13-Oct-2020.)  (Proof shortened by AV, 24-Nov-2020.) $)
    isusgrs $p |- ( G e. U -> ( G e. USGraph <->
                          E : dom E -1-1-> { x e. ~P V | ( # ` x ) = 2 } ) ) $=
      ( wcel cusgr cdm cv chash cfv c2 wceq cpw c0 csn crab wf1 cdif wb prprrab
      isusgr f1eq3 mp1i bitrd ) DBHZDIHCJZAKLMNOZAEPZQRUASZCTZUIUJAUKSZCTZABCDE
      FGUDULUNOUMUOUBUHAEUCULUNUICUEUFUG $.

    $( The edge function of a simple graph is a one-to-one function into
       unordered pairs of vertices.  Simplified version of ~ usgrf .
       (Contributed by Alexander van der Vekens, 13-Aug-2017.)  (Revised by AV,
       13-Oct-2020.) $)
    usgrfs $p |- ( G e. USGraph
                   -> E : dom E -1-1-> { x e. ~P V | ( # ` x ) = 2 } ) $=
      ( cusgr wcel cdm cv chash cfv c2 wceq cpw crab wf1 isusgrs ibi ) CGHBIAJK
      LMNADOPBQAGBCDEFRS $.
  $}

  ${
    $d G x $.
    $( The edge function of a simple graph is a function.  (Contributed by
       Alexander van der Vekens, 18-Aug-2017.)  (Revised by AV,
       13-Oct-2020.) $)
    usgrfun $p |- ( G e. USGraph -> Fun ( iEdg ` G ) ) $=
      ( vx cusgr wcel ciedg cfv cdm cv chash wceq cvtx cpw crab wf1 wfun usgrfs
      c2 eqid f1fun syl ) ACDAEFZGZBHIFQJBAKFZLMZUANUAOBUAAUCUCRUARPUBUDUAST $.

    $( The set of edges of a simple graph is a subset of the set of unordered
       pairs of vertices.  (Contributed by AV, 1-Jan-2020.)  (Revised by AV,
       14-Oct-2020.) $)
    usgredgss $p |- ( G e. USGraph
               -> ( Edg ` G ) C_ { x e. ~P ( Vtx ` G ) | ( # ` x ) = 2 } ) $=
      ( cusgr wcel cedg cfv ciedg crn cv chash c2 wceq cvtx cpw crab edgval cdm
      wf1 wf eqid wss usgrfs f1f frn 3syl syl5eqss ) BCDZBEFBGFZHZAIJFKLABMFZNO
      ZBPUGUHQZUKUHRULUKUHSUIUKUAAUHBUJUJTUHTUBULUKUHUCULUKUHUDUEUF $.

    $d E x $.
    $( An edge of a simple graph is an unordered pair of vertices.
       (Contributed by AV, 1-Jan-2020.)  (Revised by AV, 14-Oct-2020.) $)
    edgusgr $p |- ( ( G e. USGraph /\ E e. ( Edg ` G ) )
                -> ( E e. ~P ( Vtx ` G ) /\ ( # ` E ) = 2 ) ) $=
      ( vx cusgr wcel cedg cfv wa cv chash wceq cvtx cpw usgredgss sselda fveq2
      c2 crab eqeq1d elrab sylib ) BDEZABFGZEHACIZJGZQKZCBLGMZRZEAUGEAJGZQKZHUB
      UCUHACBNOUFUJCAUGUDAKUEUIQUDAJPSTUA $.
  $}

  ${
    $d E p $.  $d V p $.  $d W p $.  $d X p $.
    $( The property of being an undirected simple pseudograph represented as an
       ordered pair.  The representation as an ordered pair is the usual
       representation of a graph, see section I.1 of [Bollobas] p. 1.
       (Contributed by AV, 25-Nov-2021.) $)
    isuspgrop $p |- ( ( V e. W /\ E e. X ) -> ( <. V , E >. e. USPGraph
                               <-> E : dom E -1-1-> { p e. ( ~P V \ { (/) } ) |
                                                      ( # ` p ) <_ 2 } ) ) $=
      ( wcel wa cop cuspgr ciedg cfv cdm cv chash cpw cdif crab wf1 cvv eqid c2
      cle wbr cvtx c0 wb opex isuspgr mp1i opiedgfv dmeqd opvtxfv pweqd difeq1d
      csn rabeqdv f1eq123d bitrd ) BCFADFGZBAHZIFZUTJKZLZEMNKUAUBUCZEUTUDKZOZUE
      UOZPZQZVBRZALZVDEBOZVGPZQZARUTSFVAVJUFUSBAUGESVBUTVEVETVBTUHUIUSVCVKVIVNV
      BAABCDUJZUSVBAVOUKUSVDEVHVMUSVFVLVGUSVEBABCDULUMUNUPUQUR $.

    $( The property of being an undirected simple graph represented as an
       ordered pair.  The representation as an ordered pair is the usual
       representation of a graph, see section I.1 of [Bollobas] p. 1.
       (Contributed by AV, 30-Nov-2020.) $)
    isusgrop $p |- ( ( V e. W /\ E e. X ) -> ( <. V , E >. e. USGraph
                      <-> E : dom E -1-1-> { p e. ~P V | ( # ` p ) = 2 } ) ) $=
      ( wcel wa cop cusgr ciedg cfv cdm cv chash c2 cpw crab wf1 cvv eqid dmeqd
      wceq cvtx opex isusgrs mp1i opiedgfv opvtxfv pweqd rabeqdv f1eq123d bitrd
      wb ) BCFADFGZBAHZIFZUOJKZLZEMNKOUBZEUOUCKZPZQZUQRZALZUSEBPZQZARUOSFUPVCUM
      UNBAUDESUQUOUTUTTUQTUEUFUNURVDVBVFUQAABCDUGZUNUQAVGUAUNUSEVAVEUNUTBABCDUH
      UIUJUKUL $.
  $}

  ${
    $d G x $.
    $( A simple graph represented by an ordered pair.  (Contributed by AV,
       23-Oct-2020.)  (Proof shortened by AV, 30-Nov-2020.) $)
    usgrop $p |- ( G e. USGraph
                   -> <. ( Vtx ` G ) , ( iEdg ` G ) >. e. USGraph ) $=
      ( vx cusgr wcel cvtx cfv ciedg cop cdm cv chash c2 wceq cpw crab wf1 eqid
      usgrfs cvv fvex wa wb pm3.2i isusgrop mp1i mpbird ) ACDZAEFZAGFZHCDZUIIBJ
      KFLMBUHNOUIPZBUIAUHUHQUIQRUHSDZUISDZUAUJUKUBUGULUMAETAGTUCUIUHSSBUDUEUF
      $.
  $}

  ${
    $d e v x E $.  $d e v x V $.  $d x X $.  $d x Y $.
    ausgr.1 $e |- G = { <. v , e >. | e C_ { x e. ~P v | ( # ` x ) = 2 } } $.
    $( The property of an unordered pair to be an alternatively defined simple
       graph, defined as a pair (V,E) of a set V (vertex set) and a set of
       unordered pairs of elements of V (edge set).  (Contributed by Alexander
       van der Vekens, 28-Aug-2017.) $)
    isausgr $p |- ( ( V e. W /\ E e. X )
                     -> ( V G E <-> E C_ { x e. ~P V | ( # ` x ) = 2 } ) ) $=
      ( cv chash cfv c2 wceq cpw crab wss wa simpr pweq adantr rabeqdv sseq12d
      brabga ) CJZAJKLMNZABJZOZPZQDUFAFOZPZQBCFDEGHUGFNZUEDNZRZUEDUIUKULUMSUNUF
      AUHUJULUHUJNUMUGFTUAUBUCIUD $.

    $( The equivalence of the definitions of a simple graph.  (Contributed by
       Alexander van der Vekens, 28-Aug-2017.)  (Revised by AV,
       14-Oct-2020.) $)
    ausgrusgrb $p |- ( ( V e. X /\ E e. Y )
                       -> ( V G E <-> <. V , ( _I |` E ) >. e. USGraph ) ) $=
      ( wcel wa cfv wceq cpw crab wf1 wi wb ax-mp cvv wbr cv chash wss cid cres
      cop ciedg cdm cvtx cusgr isausgr wf1o f1oi crn dff1o5 dmresi eqcomi f1eq2
      c2 f1ss sylib ex a1d adantr sylbi wf wfn df-f rnresi sseq1i biimpi adantl
      syl11 impbid resiexg opiedgfv sylan2 dmeqd opvtxfv pweqd rabeqdv f1eq123d
      f1f bitr4d opex eqid isusgrs bicomi a1i 3bitrd ) FGJZDHJZKZFDEUADAUBUCLUT
      MZAFNZOZUDZFUEDUFZUGZUHLZUIZWOAWTUJLZNZOZXAPZWTUKJZABCDEFGHIULWNWRWSUIZWQ
      WSPZXFWNWRXIDDWSUMZWNWRXIQZQZDUNXJDDWSPZWSUOZDMZKXLDDWSUPXMXLXOXMXKWNXMWR
      XIXMWRKDWQWSPZXIDDWQWSVADXHMXPXIRXHDDUQURDXHWQWSUSSVBVCVDVEVFSXHWQWSVGZWN
      WRXIXQWSXHVHZXNWQUDZKWNWRQZXHWQWSVIXSXTXRXSWRWNXSWRXNDWQDVJVKVLVDVMVFXHWQ
      WSWDVNVOWNXBXHXEWQXAWSWMWLWSTJZXAWSMDHVPZWSFGTVQVRZWNXAWSYCVSWNWOAXDWPWNX
      CFWMWLYAXCFMYBWSFGTVTVRWAWBWCWEXFXGRWNXGXFWTTJXGXFRFWSWFATXAWTXCXCWGXAWGW
      HSWIWJWK $.

    $d H e v x $.
    $( A simple graph represented by an alternatively defined simple graph.
       (Contributed by AV, 15-Oct-2020.) $)
    usgrausgri $p |- ( H e. USGraph -> ( Vtx ` H ) G ( Edg ` H ) ) $=
      ( cusgr wcel cedg cfv cv chash c2 wceq cvtx cpw crab wss cvv fvex isausgr
      wbr usgredgss wb mp2an sylibr ) EGHEIJZAKLJMNAEOJZPQRZUHUGDUBZAEUCUHSHUGS
      HUJUIUDEOTEITABCUGDUHSSFUAUEUF $.

    $( If an alternatively defined simple graph has the vertices and edges of
       an arbitrary graph, the arbitrary graph is an undirected multigraph.
       (Contributed by AV, 18-Oct-2020.)  (Revised by AV, 25-Nov-2020.) $)
    ausgrumgri $p |- ( ( H e. W /\ ( Vtx ` H ) G ( Edg ` H )
                       /\ Fun ( iEdg ` H ) ) -> H e. UMGraph ) $=
      ( wcel cvtx cfv cedg wbr ciedg w3a wceq wss cvv wb fvex eqid cumgr cdm cv
      wfun chash c2 cpw crab wf wi isausgr mp2an crn edgval sseq1d funfn biimpi
      a1i 3ad2ant3 simp2 df-f sylanbrc 3exp sylbid syl5bi 3imp isumgrs 3ad2ant1
      wfn mpbird ) EFHZEIJZEKJZDLZEMJZUDZNEUAHZVOUBZAUCUEJUFOAVLUGUHZVOUIZVKVNV
      PVTVNVMVSPZVKVPVTUJZVLQHVMQHVNWAREISEKSABCVMDVLQQGUKULVKWAVOUMZVSPZWBVKVM
      WCVSVMWCOVKEUNURUOVKWDVPVTVKWDVPNVOVRVIZWDVTVPVKWEWDVPWEVOUPUQUSVKWDVPUTV
      RVSVOVAVBVCVDVEVFVKVNVQVTRVPAFVOEVLVLTVOTVGVHVJ $.

    $d H f $.  $d x W $.
    ausgrusgri.1 $e |- O = { f | f : dom f -1-1-> ran f } $.
    $( The equivalence of the definitions of a simple graph, expressed with the
       set of vertices and the set of edges.  (Contributed by AV,
       15-Oct-2020.) $)
    ausgrusgri $p |- ( ( H e. W /\ ( Vtx ` H ) G ( Edg ` H )
                                /\ ( iEdg ` H ) e. O ) -> H e. USGraph ) $=
      ( wcel cvtx cfv cedg ciedg w3a wceq wf1 cvv fvex wbr cusgr cdm chash crab
      cv c2 cpw wss wi isausgr mp2an crn edgval a1i sseq1d cab eleq2i dmeq rneq
      wb id f1eq123d elab sylbb 3ad2ant3 simp2 f1ssr syl2anc 3exp sylbid syl5bi
      3imp eqid isusgrs 3ad2ant1 mpbird ) FHKZFLMZFNMZEUAZFOMZGKZPFUBKZWBUCZAUF
      UDMUGQAVSUHUEZWBRZVRWAWCWGWAVTWFUIZVRWCWGUJZVSSKVTSKWAWHVAFLTFNTABCVTEVSS
      SIUKULVRWHWBUMZWFUIZWIVRVTWJWFVTWJQVRFUNUOUPVRWKWCWGVRWKWCPWEWJWBRZWKWGWC
      VRWLWKWCWBDUFZUCZWMUMZWMRZDUQZKWLGWQWBJURWPWLDWBFOTWMWBQZWNWEWOWJWMWBWRVB
      WMWBUSWMWBUTVCVDVEVFVRWKWCVGWEWJWFWBVHVIVJVKVLVMVRWAWDWGVAWCAHWBFVSVSVNWB
      VNVOVPVQ $.

    $( The equivalence of the definitions of a simple graph, expressed with the
       set of vertices and the set of edges.  (Contributed by AV, 2-Jan-2020.)
       (Revised by AV, 15-Oct-2020.) $)
    usgrausgrb $p |- ( ( H e. W /\ ( iEdg ` H ) e. O )
                      -> ( ( Vtx ` H ) G ( Edg ` H ) <-> H e. USGraph ) ) $=
      ( wcel ciedg cfv wa cvtx cedg wbr cusgr wi ausgrusgri 3exp imp usgrausgri
      com23 impbid1 ) FHKZFLMGKZNFOMFPMEQZFRKZUFUGUHUISUFUHUGUIUFUHUGUIABCDEFGH
      IJTUAUDUBABCEFIUCUE $.
  $}

  $( An edge of a simple graph as second component of an ordered pair.
     (Contributed by Alexander van der Vekens, 17-Aug-2017.)  (Proof shortened
     by Alexander van der Vekens, 16-Dec-2017.)  (Revised by AV,
     15-Oct-2020.) $)
  usgredgop $p |- ( ( G e. USGraph /\ E = ( iEdg ` G ) /\ X e. dom E )
                     -> ( ( E ` X ) = { M , N }
                          <-> <. X , { M , N } >. e. E ) ) $=
    ( cusgr wcel ciedg cfv wceq wfun cdm cpr cop wb usgrfun syl5ibrcom funopfvb
    funeq imp stoic3 ) BFGZABHIZJZAKZEALGEAICDMZJEUFNAGOUBUDUEUBUEUDUCKBPAUCSQT
    EUFARUA $.

  ${
    $d G x $.
    usgrf1o.e $e |- E = ( iEdg ` G ) $.
    $( The edge function of a simple graph is a bijective function onto its
       range.  (Contributed by Alexander van der Vekens, 18-Nov-2017.)
       (Revised by AV, 15-Oct-2020.) $)
    usgrf1o $p |- ( G e. USGraph -> E : dom E -1-1-onto-> ran E ) $=
      ( vx cusgr wcel cdm chash cfv wceq cvtx cpw crab wf1 crn wf1o eqid usgrfs
      cv c2 f1f1orn syl ) BEFAGZDSHITJDBKIZLMZANUCAOAPDABUDUDQCRUCUEAUAUB $.

    $( The edge function of a simple graph is a one to one function.
       (Contributed by Alexander van der Vekens, 18-Nov-2017.)  (Revised by AV,
       15-Oct-2020.) $)
    usgrf1 $p |- ( G e. USGraph -> E : dom E -1-1-> ran E ) $=
      ( cusgr wcel cdm crn wf1o wf1 usgrf1o f1of1 syl ) BDEAFZAGZAHMNAIABCJMNAK
      L $.

    $( The edge function of a simple pseudograph is a bijective function onto
       the edges of the graph.  (Contributed by AV, 2-Jan-2020.)  (Revised by
       AV, 15-Oct-2020.) $)
    uspgrf1oedg $p |- ( G e. USPGraph -> E : dom E -1-1-onto-> ( Edg ` G ) ) $=
      ( vx cuspgr wcel cdm cv chash cfv c2 cle wbr cvtx cpw csn cdif wf1o crn
      c0 crab cedg eqid uspgrf f1f1orn wceq wb ciedg rneqi edgval eqtr4i f1oeq3
      wf1 ax-mp sylib syl ) BEFAGZDHIJKLMDBNJZOTPQUAZAUMZUQBUBJZARZDABURURUCCUD
      UTUQASZARZVBUQUSAUEVCVAUFVDVBUGVCBUHJZSVAAVECUIBUJUKVCVAUQAULUNUOUP $.

    $d V x $.
    usgrss.v $e |- V = ( Vtx ` G ) $.
    $( An edge is a subset of vertices.  (Contributed by Alexander van der
       Vekens, 19-Aug-2017.)  (Revised by AV, 15-Oct-2020.) $)
    usgrss $p |- ( ( G e. USGraph /\ X e. dom E ) -> ( E ` X ) C_ V ) $=
      ( vx cusgr wcel cdm wa cfv cv chash c2 wceq cpw crab ssrab2 wf1 wf usgrfs
      f1f syl ffvelrnda sseldi elpwid ) BHIZDAJZIKZDALZCUJGMNLOPZGCQZRZUMUKULGU
      MSUHUIUNDAUHUIUNATUIUNAUAGABCFEUBUIUNAUCUDUEUFUG $.
  $}

  ${
    $d G x $.
    $( A simple pseudograph is an undirected simple hypergraph.  (Contributed
       by AV, 19-Jan-2020.)  (Revised by AV, 15-Oct-2020.) $)
    uspgrushgr $p |- ( G e. USPGraph -> G e. USHGraph ) $=
      ( vx cuspgr wcel cushgr ciedg cfv cdm cvtx cpw c0 csn wf1 cv chash c2 cle
      cdif wbr eqid crab isuspgr wss ssrab2 f1ss syl6bi isushgr sylibrd pm2.43i
      mpan2 ) ACDZAEDZUKUKAFGZHZAIGZJKLRZUMMZULUKUKUNBNOGPQSZBUPUAZUMMZUQBCUMAU
      OUOTZUMTZUBUTUSUPUCUQURBUPUDUNUSUPUMUEUJUFCUMAUOVAVBUGUHUI $.

    $( A simple pseudograph is an undirected pseudograph.  (Contributed by
       Alexander van der Vekens, 10-Aug-2017.)  (Revised by AV,
       15-Oct-2020.) $)
    uspgrupgr $p |- ( G e. USPGraph -> G e. UPGraph ) $=
      ( vx cuspgr wcel cupgr ciedg cfv cdm cv chash c2 cle wbr cvtx cpw c0 cdif
      csn crab eqid wf wf1 isuspgr f1f syl6bi isupgr sylibrd pm2.43i ) ACDZAEDZ
      UIUIAFGZHZBIJGKLMBANGZOPRQSZUKUAZUJUIUIULUNUKUBUOBCUKAUMUMTZUKTZUCULUNUKU
      DUEBCUKAUMUPUQUFUGUH $.

    $( A graph is a simple pseudograph iff it is a pseudograph and a simple
       hypergraph.  (Contributed by AV, 30-Nov-2020.) $)
    uspgrupgrushgr $p |- ( G e. USPGraph
                           <-> ( G e. UPGraph /\ G e. USHGraph ) ) $=
      ( vx cuspgr wcel cupgr cushgr wa uspgrupgr uspgrushgr jca ciedg cfv chash
      cdm cv c2 cle wbr wf1 eqid cvtx cpw c0 csn cdif crab crn ushgrf upgredgss
      wss cedg edgval syl5eqssr f1ssr syl2anr wb isuspgr adantr mpbird impbii )
      ACDZAEDZAFDZGZVAVBVCAHAIJVDVAAKLZNZBOMLPQRBAUALZUBUCUDUEZUFZVESZVCVFVHVES
      VEUGZVIUJVJVBVEAVGVGTZVETZUHVBVKAUKLVIAULBAUIUMVFVHVIVEUNUOVBVAVJUPVCBEVE
      AVGVLVMUQURUSUT $.

    $( A simple graph is a simple pseudograph.  (Contributed by Alexander van
       der Vekens, 10-Aug-2017.)  (Revised by AV, 15-Oct-2020.) $)
    usgruspgr $p |- ( G e. USGraph -> G e. USPGraph ) $=
      ( vx cusgr wcel cuspgr ciedg cfv cdm cv chash c2 cle wbr cvtx cpw c0 crab
      csn wf1 eqid cdif wceq isusgr wss wi 2re eqlei2 ss2rabi f1ss mpan2 syl6bi
      a1i isuspgr sylibrd pm2.43i ) ACDZAEDZUPUPAFGZHZBIZJGZKLMZBANGZOPRUAZQZUR
      SZUQUPUPUSVAKUBZBVDQZURSZVFBCURAVCVCTZURTZUCVIVHVEUDVFVGVBBVDVGVBUEUTVDDK
      VAUFUGULUHUSVHVEURUIUJUKBCURAVCVJVKUMUNUO $.

    $( A simple graph is an undirected multigraph.  (Contributed by AV,
       25-Nov-2020.) $)
    usgrumgr $p |- ( G e. USGraph -> G e. UMGraph ) $=
      ( vx cusgr wcel cumgr ciedg cfv cdm cv chash c2 wceq cvtx cpw crab wf wf1
      eqid usgrfs f1f syl isumgrs mpbird ) ACDZAEDAFGZHZBIJGKLBAMGZNOZUEPZUDUFU
      HUEQUIBUEAUGUGRZUERZSUFUHUETUABCUEAUGUJUKUBUC $.

    $( A graph is a simple graph iff it is a multigraph and a simple
       pseudograph.  (Contributed by AV, 30-Nov-2020.) $)
    usgrumgruspgr $p |- ( G e. USGraph
                          <-> ( G e. UMGraph /\ G e. USPGraph ) ) $=
      ( vx cusgr wcel cumgr cuspgr wa usgrumgr usgruspgr jca ciedg cfv cv chash
      cdm c2 wceq crab wf1 eqid cvtx cpw c0 csn cdif cle wbr crn cedg umgredgss
      uspgrf edgval prprrab eqcomi 3sstr3g f1ssr wb isusgr adantr mpbird impbii
      wss syl2anr ) ACDZAEDZAFDZGZVDVEVFAHAIJVGVDAKLZOZBMNLZPQZBAUALZUBZUCUDUEZ
      RZVHSZVFVIVJPUFUGBVNRZVHSVHUHZVOVBVPVEBVHAVLVLTZVHTZUKVEAUILVKBVMRZVRVOBA
      UJAULVOWABVLUMUNUOVIVQVOVHUPVCVEVDVPUQVFBEVHAVLVSVTURUSUTVA $.

    $d G e x y $.
    $( A class is a simple graph iff it is a simple pseudograph without loops.
       (Contributed by AV, 18-Oct-2020.) $)
    usgruspgrb $p |- ( G e. USGraph
                <-> ( G e. USPGraph /\ A. e e. ( Edg ` G ) ( # ` e ) = 2 ) ) $=
      ( vx vy wcel cuspgr cv chash cfv c2 wceq wral wa crab wf1 cle wbr wi eqid
      ex cusgr cedg usgruspgr cpw edgusgr simprd ralrimiva jca ciedg cdm edgval
      cvtx crn a1i raleqdv c0 csn cdif uspgrf wss wf f1f frn ssel2 expcom fveq2
      syl eqeq1d rspcv breq1d elrab eldifi anim1i sylibr adantr sylbi syl9 syld
      weq com13 imp ssrdv mpan9 f1ssr syldan sylbid wb isusgrs mpbird impbii )
      BUAEZBFEZAGZHIZJKZABUBIZLZMZWKWLWQBUCWKWOAWPWKWMWPEMWMBULIZUDZEWOWMBUEUFU
      GUHWRWKBUIIZUJZCGZHIZJKZCWTNZXAOZWLWQXGWLWQWOAXAUMZLZXGWLWOAWPXHWPXHKWLBU
      KUNUOWLXBXDJPQZCWTUPUQZURZNZXAOZXIXGRCXABWSWSSZXASZUSXNXIXGXNXIXHXFUTZXGX
      NXHXMUTZXIXQXNXBXMXAVAXRXBXMXAVBXBXMXAVCVGXIXRXQXIXRMDXHXFXIXRDGZXHEZXSXF
      EZRXTXRXIYAXTXRXSXMEZXIYARXRXTYBXHXMXSVDVEXTXIXSHIZJKZYBYAWOYDAXSXHADVSWN
      YCJWMXSHVFVHVIYBXSXLEZYCJPQZMYDYARZXJYFCXSXLCDVSZXDYCJPXCXSHVFZVJVKYEYGYF
      YEYDYAYEYDMXSWTEZYDMYAYEYJYDXSWTXKVLVMXEYDCXSWTYHXDYCJYIVHVKVNTVOVPVQVRVT
      WAWBTWCXBXMXFXAWDWETVGWFWAWLWKXGWGWQCFXABWSXOXPWHVOWIWJ $.
  $}

  $( A simple graph is an undirected pseudograph.  (Contributed by Alexander
     van der Vekens, 20-Aug-2017.)  (Revised by AV, 15-Oct-2020.) $)
  usgrupgr $p |- ( G e. USGraph -> G e. UPGraph ) $=
    ( cusgr wcel cuspgr cupgr usgruspgr uspgrupgr syl ) ABCADCAECAFAGH $.

  $( A simple graph is an undirected hypergraph.  (Contributed by AV,
     9-Feb-2018.)  (Revised by AV, 15-Oct-2020.) $)
  usgruhgr $p |- ( G e. USGraph -> G e. UHGraph ) $=
    ( cusgr wcel cupgr cuhgr usgrupgr upgruhgr syl ) ABCADCAECAFAGH $.

  ${
    $d G x $.  $d V x $.
    usgrislfuspgr.v $e |- V = ( Vtx ` G ) $.
    usgrislfuspgr.i $e |- I = ( iEdg ` G ) $.
    $( A simple graph is a loop-free simple pseudograph.  (Contributed by AV,
       27-Jan-2021.) $)
    usgrislfuspgr $p |- ( G e. USGraph <-> ( G e. USPGraph
                         /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) ) $=
      ( wcel cuspgr c2 cle wbr crab wf wa wceq wf1 wi a1i mpbird df-f1 cusgr cv
      cdm chash cfv cpw usgruspgr usgrfs f1f wss 2re leidi ss2rabi fssd syl jca
      breq2 c0 csn cdif uspgrf ccnv wfun cin fin wb umgrislfupgrlem feq3 sylbb1
      ax-mp anim1i sylibr ex impancom sylbi imp sylan isusgr adantr impbii ) BU
      AGZBHGZCUCZIAUBZUDUEZJKZADUFZLZCMZNZWAWBWIBUGWAWCWEIOZAWGLZCPZWIACBDEFUHW
      MWCWLWHCWCWLCUIWLWHUJWMWKWFAWGWKWFQWDWGGWKWFIIJKZWNWKIUKULRWEIIJUQSRUMRUN
      UOUPWJWAWCWKAWGURUSUTZLZCPZWBWCWEIJKAWOLZCPZWIWQACBDEFVAWSWIWQWSWCWRCMZCV
      BVCZNWIWQQWCWRCTWTWIXAWQWTWINZXAWQXBXANWCWPCMZXANWQXBXCXAWCWRWHVDZCMZXBXC
      WCWRWHCVEXDWPOXEXCVFADVGXDWPWCCVHVJVIVKWCWPCTVLVMVNVOVPVQWBWAWQVFWIAHCBDE
      FVRVSSVT $.
  $}

  ${
    uspgrun.g $e |- ( ph -> G e. USPGraph ) $.
    uspgrun.h $e |- ( ph -> H e. USPGraph ) $.
    uspgrun.e $e |- E = ( iEdg ` G ) $.
    uspgrun.f $e |- F = ( iEdg ` H ) $.
    uspgrun.vg $e |- V = ( Vtx ` G ) $.
    uspgrun.vh $e |- ( ph -> ( Vtx ` H ) = V ) $.
    uspgrun.i $e |- ( ph -> ( dom E i^i dom F ) = (/) ) $.
    ${
      uspgrun.u $e |- ( ph -> U e. W ) $.
      uspgrun.v $e |- ( ph -> ( Vtx ` U ) = V ) $.
      uspgrun.un $e |- ( ph -> ( iEdg ` U ) = ( E u. F ) ) $.
      $( The union ` U ` of two simple pseudographs ` G ` and ` H ` with the
         same vertex set ` V ` is a pseudograph with the vertex ` V ` and the
         union ` ( E u. F ) ` of the (indexed) edges.  (Contributed by AV,
         16-Oct-2020.) $)
      uspgrun $p |- ( ph -> U e. UPGraph ) $=
        ( cuspgr wcel cupgr uspgrupgr syl upgrun ) ABCDEFGHAESTEUATIEUBUCAFSTFU
        ATJFUBUCKLMNOPQRUD $.
    $}

    $( The union of two simple pseudographs (with the same vertex set):  If
       ` <. V , E >. ` and ` <. V , F >. ` are simple pseudographs, then
       ` <. V , E u. F >. ` is a pseudograph (the vertex set stays the same,
       but the edges from both graphs are kept, maybe resulting incident two
       edges between two vertices).  (Contributed by Alexander van der Vekens,
       10-Aug-2017.)  (Revised by AV, 16-Oct-2020.)  (Revised by AV,
       24-Oct-2021.) $)
    uspgrunop $p |- ( ph -> <. V , ( E u. F ) >. e. UPGraph ) $=
      ( cuspgr wcel cupgr uspgrupgr syl upgrunop ) ABCDEFADNODPOGDQRAENOEPOHEQR
      IJKLMS $.
  $}

  ${
    usgrun.g $e |- ( ph -> G e. USGraph ) $.
    usgrun.h $e |- ( ph -> H e. USGraph ) $.
    usgrun.e $e |- E = ( iEdg ` G ) $.
    usgrun.f $e |- F = ( iEdg ` H ) $.
    usgrun.vg $e |- V = ( Vtx ` G ) $.
    usgrun.vh $e |- ( ph -> ( Vtx ` H ) = V ) $.
    usgrun.i $e |- ( ph -> ( dom E i^i dom F ) = (/) ) $.
    ${
      usgrun.u $e |- ( ph -> U e. W ) $.
      usgrun.v $e |- ( ph -> ( Vtx ` U ) = V ) $.
      usgrun.un $e |- ( ph -> ( iEdg ` U ) = ( E u. F ) ) $.
      $( The union ` U ` of two simple graphs ` G ` and ` H ` with the same
         vertex set ` V ` is a multigraph (not necessarily a simple graph!)
         with the vertex ` V ` and the union ` ( E u. F ) ` of the (indexed)
         edges.  (Contributed by AV, 29-Nov-2020.) $)
      usgrun $p |- ( ph -> U e. UMGraph ) $=
        ( cusgr wcel cumgr usgrumgr syl umgrun ) ABCDEFGHAESTEUATIEUBUCAFSTFUAT
        JFUBUCKLMNOPQRUD $.
    $}

    $( The union of two simple graphs (with the same vertex set):  If
       ` <. V , E >. ` and ` <. V , F >. ` are simple graphs, then
       ` <. V , E u. F >. ` is a multigraph (not necessarily a simple graph!) -
       the vertex set stays the same, but the edges from both graphs are kept,
       possibly resulting in two edges between two vertices.  (Contributed by
       AV, 29-Nov-2020.) $)
    usgrunop $p |- ( ph -> <. V , ( E u. F ) >. e. UMGraph ) $=
      ( cusgr wcel cumgr usgrumgr syl umgrunop ) ABCDEFADNODPOGDQRAENOEPOHEQRIJ
      KLMS $.
  $}

  ${
    $d E x $.  $d G x $.  $d X x $.
    usgredg2.e $e |- E = ( iEdg ` G ) $.
    $( The value of the "edge function" of a simple graph is a set containing
       two elements (the vertices the corresponding edge is connecting).
       (Contributed by Alexander van der Vekens, 11-Aug-2017.)  (Revised by AV,
       16-Oct-2020.)  (Proof shortened by AV, 11-Dec-2020.) $)
    usgredg2 $p |- ( ( G e. USGraph /\ X e. dom E )
                     -> ( # ` ( E ` X ) ) = 2 ) $=
      ( cusgr wcel cumgr cdm cfv chash wceq usgrumgr cvtx eqid umgredg2 sylan
      c2 ) BEFBGFCAHFCAIJIQKBLABBMIZCRNDOP $.

    $( Alternate proof of ~ usgredg2 , not using ~ umgredg2 .  (Contributed by
       Alexander van der Vekens, 11-Aug-2017.)  (Revised by AV, 16-Oct-2020.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    usgredg2ALT $p |- ( ( G e. USGraph /\ X e. dom E )
                     -> ( # ` ( E ` X ) ) = 2 ) $=
      ( vx cusgr wcel cdm wa cfv cv chash c2 wceq cvtx cpw c0 csn cdif syl crab
      wf1 wf eqid usgrf f1f ffvelrnda fveq2 eqeq1d elrab simprbi ) BFGZCAHZGICA
      JZEKZLJZMNZEBOJZPQRSZUAZGZUNLJZMNZULUMUTCAULUMUTAUBUMUTAUCEABURURUDDUEUMU
      TAUFTUGVAUNUSGVCUQVCEUNUSUOUNNUPVBMUOUNLUHUIUJUKT $.

    usgredgprv.v $e |- V = ( Vtx ` G ) $.
    $( In a simple graph, an edge is an unordered pair of vertices.
       (Contributed by Alexander van der Vekens, 19-Aug-2017.)  (Revised by AV,
       16-Oct-2020.)  (Proof shortened by AV, 11-Dec-2020.) $)
    usgredgprv $p |- ( ( G e. USGraph /\ X e. dom E )
                     -> ( ( E ` X ) = { M , N } -> ( M e. V /\ N e. V ) ) ) $=
      ( cusgr wcel cumgr cdm cfv cpr wceq wa wi usgrumgr umgredgprv sylan ) BIJ
      BKJFALJFAMCDNOCEJDEJPQBRABCDEFGHST $.

    $( Alternate proof of ~ usgredgprv , using ~ usgredg2 instead of
       ~ umgredgprv .  (Contributed by Alexander van der Vekens, 19-Aug-2017.)
       (Revised by AV, 16-Oct-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    usgredgprvALT $p |- ( ( G e. USGraph /\ X e. dom E )
                     -> ( ( E ` X ) = { M , N } -> ( M e. V /\ N e. V ) ) ) $=
      ( cusgr wcel cdm wa cfv wss chash c2 wceq cpr wi usgrss sseq1 anbi12d wne
      usgredg2 fveq2 eqeq1d w3a hashprdifel wb prssg 3adant3 biimprd syl impcom
      eqid syl6bi com12 syl2anc ) BIJFAKJLFAMZENZUSOMZPQZUSCDRZQZCEJDEJLZSABEFG
      HTABFGUDVDUTVBLZVEVDVFVCENZVCOMZPQZLVEVDUTVGVBVIUSVCEUAVDVAVHPUSVCOUEUFUB
      VIVGVEVICVCJZDVCJZCDUCZUGZVGVESCDVCVCUOUHVMVEVGVJVKVEVGUIVLCDEVCVCUJUKULU
      MUNUPUQUR $.
  $}

  ${
    usgredgppr.e $e |- E = ( Edg ` G ) $.
    $( An edge of a simple graph is a proper pair, i.e. a set containing two
       different elements (the endvertices of the edge).  Analogue of
       ~ usgredg2 .  (Contributed by Alexander van der Vekens, 11-Aug-2017.)
       (Revised by AV, 9-Jan-2020.)  (Revised by AV, 23-Oct-2020.) $)
    usgredgppr $p |- ( ( G e. USGraph /\ C e. E ) -> ( # ` C ) = 2 ) $=
      ( cusgr wcel wa cvtx cfv chash c2 wceq cedg eleq2i edgusgr sylan2b simprd
      cpw ) CEFZABFZGACHIRFZAJIKLZTSACMIZFUAUBGBUCADNACOPQ $.

    usgrpredgv.v $e |- V = ( Vtx ` G ) $.
    $( An edge of a simple graph always connects two vertices.  Analogue of
       ~ usgredgprv .  (Contributed by Alexander van der Vekens, 7-Oct-2017.)
       (Revised by AV, 9-Jan-2020.)  (Revised by AV, 23-Oct-2020.)  (Proof
       shortened by AV, 27-Nov-2020.) $)
    usgrpredgv $p |- ( ( G e. USGraph /\ { M , N } e. E )
                      -> ( M e. V /\ N e. V ) ) $=
      ( cusgr wcel cumgr cpr wa usgrumgr umgrpredgv sylan ) BHIBJICDKAICEIDEILB
      MABCDEGFNO $.
  $}

  ${
    edgssv2.v $e |- V = ( Vtx ` G ) $.
    edgssv2.e $e |- E = ( Edg ` G ) $.
    $( An edge of a simple graph is an unordered pair of vertices, i.e. a
       subset of the set of vertices of size 2.  (Contributed by AV,
       10-Jan-2020.)  (Revised by AV, 23-Oct-2020.) $)
    edgssv2 $p |- ( ( G e. USGraph /\ C e. E )
                    -> ( C C_ V /\ ( # ` C ) = 2 ) ) $=
      ( cusgr wcel wa wss chash cfv wceq cvtx cpw cedg eleq2i edgusgr sylan2b
      c2 elpwi anim1i syl a1i sseq2d anbi1d mpbird ) CGHZABHZIZADJZAKLTMZIACNLZ
      JZULIZUJAUMOHZULIZUOUIUHACPLZHUQBURAFQACRSUPUNULAUMUAUBUCUJUKUNULUJDUMADU
      MMUJEUDUEUFUG $.

    $d C a b $.  $d G a b $.  $d V a b $.
    $( For each edge in a simple graph, there are two distinct vertices which
       are connected by this edge.  (Contributed by Alexander van der Vekens,
       9-Dec-2017.)  (Revised by AV, 17-Oct-2020.)  (Shortened by AV,
       25-Nov-2020.) $)
    usgredg $p |- ( ( G e. USGraph /\ C e. E )
                    -> E. a e. V E. b e. V ( a =/= b /\ C = { a , b } ) ) $=
      ( cusgr wcel cumgr cv wne cpr wceq wa wrex usgrumgr umgredg sylan ) CIJCK
      JABJELZFLZMAUAUBNOPFDQEDQCRABCDEFGHST $.
  $}

  ${
    usgrnloopv.e $e |- E = ( iEdg ` G ) $.
    $( In a simple graph, there is no loop, i.e. no edge connecting a vertex
       with itself.  (Contributed by Alexander van der Vekens, 26-Jan-2018.)
       (Revised by AV, 17-Oct-2020.)  (Proof shortened by AV, 11-Dec-2020.) $)
    usgrnloopv $p |- ( ( G e. USGraph /\ M e. W )
                       -> ( ( E ` X ) = { M , N } -> M =/= N ) ) $=
      ( cusgr wcel cumgr cfv cpr wceq wne wi usgrumgr umgrnloopv sylan ) BHIBJI
      CEIFAKCDLMCDNOBPABCDEFGQR $.

    $( Alternate proof of ~ usgrnloopv , not using ~ umgrnloopv .  (Contributed
       by Alexander van der Vekens, 26-Jan-2018.)  (Revised by AV,
       17-Oct-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    usgrnloopvALT $p |- ( ( G e. USGraph /\ M e. W )
                       -> ( ( E ` X ) = { M , N } -> M =/= N ) ) $=
      ( cusgr wcel cfv cpr wceq wne wi cdm wa c0 adantr chash c2 csn cres prnzg
      wfun adantl wb neeq1 mpbird fvfundmfvn0 usgredg2 fveq2 eqeq1d hashprdifel
      syl eqid simp3d syl6bi syl5com expcom com23 mpcom ex com13 imp ) BHIZCEIZ
      FAJZCDKZLZCDMZNVIVFVEVJVIVFVEVJNZFAOIZAFUAUBUDZPZVIVFPZVKVOVGQMZVNVOVPVHQ
      MZVFVQVICDEUCUEVIVPVQUFVFVGVHQUGRUHFAUIUNVLVOVKNVMVLVEVOVJVEVLVOVJNVEVLPV
      GSJZTLZVOVJABFGUJVIVSVJNVFVIVSVHSJZTLZVJVIVRVTTVGVHSUKULWACVHIDVHIVJCDVHV
      HUOUMUPUQRURUSUTRVAVBVCVD $.

    $d G x $.  $d M x $.  $d N x $.
    $( In a simple graph, there is no loop, i.e. no edge connecting a vertex
       with itself.  (Contributed by Alexander van der Vekens, 19-Aug-2017.)
       (Proof shortened by Alexander van der Vekens, 20-Mar-2018.)  (Revised by
       AV, 17-Oct-2020.)  (Proof shortened by AV, 11-Dec-2020.) $)
    usgrnloop $p |- ( G e. USGraph -> ( E. x e. dom E ( E ` x ) = { M , N }
                                      -> M =/= N ) ) $=
      ( cusgr wcel cumgr cv cfv cpr wceq cdm wrex wne wi usgrumgr umgrnloop syl
      ) CGHCIHAJBKDELMABNODEPQCRABCDEFST $.

    $( Alternate proof of ~ usgrnloop , not using ~ umgrnloop .  (Contributed
       by Alexander van der Vekens, 19-Aug-2017.)  (Proof shortened by
       Alexander van der Vekens, 20-Mar-2018.)  (Revised by AV, 17-Oct-2020.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    usgrnloopALT $p |- ( G e. USGraph -> ( E. x e. dom E ( E ` x ) = { M , N }
                                      -> M =/= N ) ) $=
      ( cusgr wcel cv cfv cpr wceq wne cdm wa cvtx imp wi ex adantr com23 com12
      eqid usgredgprv usgrnloopv mpcom rexlimdva ) CGHZAIZBJDEKLZDEMZABNZUHUIUL
      HZOZUJUKDCPJZHZEUOHZOZUNUJOZUKUNUJURBCDEUOUIFUOUCUDQUPUSUKRUQUSUPUKUNUJUP
      UKRZUHUJUTRUMUHUPUJUKUHUPUJUKRBCDEUOUIFUESUATQUBTUFSUG $.

    $d U x $.
    $( A simple graph has no loops.  (Contributed by Alexander van der Vekens,
       6-Dec-2017.)  (Revised by AV, 17-Oct-2020.)  (Proof shortened by AV,
       11-Dec-2020.) $)
    usgrnloop0 $p |- ( G e. USGraph
                       -> { x e. dom E | ( E ` x ) = { U } } = (/) ) $=
      ( cusgr wcel cumgr cv cfv csn wceq cdm crab c0 usgrumgr umgrnloop0 syl )
      DFGDHGAICJBKLACMNOLDPABCDEQR $.

    $( Alternate proof of ~ usgrnloop0 , not using ~ umgrnloop0 .  (Contributed
       by Alexander van der Vekens, 6-Dec-2017.)  (Revised by AV, 17-Oct-2020.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    usgrnloop0ALT $p |- ( G e. USGraph
                       -> { x e. dom E | ( E ` x ) = { U } } = (/) ) $=
      ( cusgr wcel cv cfv csn wceq wn cdm wral crab c0 wrex cpr wne sylibr mtoi
      neirr usgrnloop wa simpr dfsn2 syl6eq ex reximdv mtod ralnex rabeq0 ) DFG
      ZAHCIZBJZKZLACMZNZUPAUQOPKUMUPAUQQZLURUMUSUNBBRZKZAUQQZUMVBBBSBUBACDBBEUC
      UAUMUPVAAUQUMUPVAUMUPUDUNUOUTUMUPUEBUFUGUHUIUJUPAUQUKTUPAUQULT $.
  $}

  ${
    usgredgne.v $e |- E = ( Edg ` G ) $.
    $( An edge of a simple graph always connects two different vertices.
       Analogue of ~ usgrnloopv resp. ~ usgrnloop .  (Contributed by Alexander
       van der Vekens, 2-Sep-2017.)  (Revised by AV, 17-Oct-2020.)  (Proof
       shortened by AV, 27-Nov-2020.) $)
    usgredgne $p |- ( ( G e. USGraph /\ { M , N } e. E ) -> M =/= N ) $=
      ( cusgr wcel cumgr cpr wne usgrumgr umgredgne sylan ) BFGBHGCDIAGCDJBKABC
      DELM $.
  $}

  ${
    $d G x $.
    usgrf1oedg.i $e |- I = ( iEdg ` G ) $.
    usgrf1oedg.e $e |- E = ( Edg ` G ) $.
    $( The edge function of a simple graph is a 1-1 function onto the set of
       edges.  (Contributed by by AV, 18-Oct-2020.) $)
    usgrf1oedg $p |- ( G e. USGraph -> I : dom I -1-1-onto-> E ) $=
      ( vx cusgr wcel cdm wf1o crn cv chash cfv c2 wceq cvtx cpw c0 csn f1f1orn
      cdif crab wf1 eqid usgrf syl cedg ciedg edgval eqcomi rneqi syl6eq syl5eq
      a1i f1oeq3d mpbird ) BGHZCIZACJUSCKZCJZURUSFLMNOPFBQNZRSTUBUCZCUDVAFCBVBV
      BUEDUFUSVCCUAUGURAUTUSCURABUHNZUTEURVDBUINZKZUTVDVFPURBUJUOVECCVEDUKULUMU
      NUPUQ $.

    $d A x y $.  $d B x y $.  $d G y $.  $d I x y $.  $d N x y $.
    ${
      $d V x y $.
      uhgr2edg.v $e |- V = ( Vtx ` G ) $.
      $( If a vertex is adjacent to two different vertices in a hypergraph,
         there are more than one edges starting at this vertex.  (Contributed
         by Alexander van der Vekens, 10-Dec-2017.)  (Revised by AV,
         11-Feb-2021.) $)
      uhgr2edg $p |- ( ( ( G e. UHGraph /\ A =/= B )
                         /\ ( A e. V /\ B e. V /\ N e. V )
                         /\ ( { N , A } e. E /\ { B , N } e. E ) )
                       -> E. x e. dom I E. y e. dom I
                          ( x =/= y /\ N e. ( I ` x ) /\ N e. ( I ` y ) ) ) $=
        ( wcel wa w3a cfv wrex wceq wi adantl cuhgr wne cv simp1l simp1r simp23
        cpr cdm simp21 3simpc 3ad2ant2 jca31 simp3 wb crn cedg ciedg a1i edgval
        eqcomi rneqd 3eqtrd eleq2d anbi12d wfn wfun uhgrfun funfn sylib fvelrnb
        bitrd ad2antrr reeanv fveq2 eqeq1d anbi1d eqtr2 prcom eqeq2i wo ancom2s
        syl preq12bg eqneqall eqtr ancoms jaoi adantld syl6bi com3l sylbi com23
        impd ax-1 pm2.61ine prid1g syl5ibr adantr impcom prid2g 3jca ex reximdv
        eleq2 syl5bir sylbid sylc ) FUAMZCDUBZNZCIMZDIMZHIMZOZHCUGZEMZDHUGZEMZN
        ZOZXJXMXKNZXLXMNZNZNZXSAUCZBUCZUBZHYEGPZMZHYFGPZMZOZBGUHZQZAYMQZXTXHXIY
        CXHXIXNXSUDXHXIXNXSUEXTXMXKYBXJXKXLXMXSUFXJXKXLXMXSUIXNXJYBXSXKXLXMUJUK
        ULULXJXNXSUMYDXSYHXORZAYMQZYJXQRZBYMQZNZYOXHXSYTUNXIYCXHXSXOGUOZMZXQUUA
        MZNZYTXHXPUUBXRUUCXHEUUAXOXHEFUPPZFUQPZUOZUUAEUUERXHKURUUEUUGRXHFUSURXH
        UUFGUUFGRXHGUUFJUTURVAVBZVCXHEUUAXQUUHVCVDXHGYMVEZUUDYTUNXHGVFUUIGFJVGG
        VHVIUUIUUBYQUUCYSAYMXOGVJBYMXQGVJVDWBVKVLYTYPYRNZBYMQZAYMQYDYOYPYRABYMY
        MVMYDUUKYNAYMYDUUJYLBYMYDUUJYLYDUUJNZYGYIYKUULYGSYEYFYEYFRZYDUUJYGUUMUU
        JYDYGUUMUUJYJXORZYRNZYDYGSZUUMYPUUNYRUUMYHYJXOYEYFGVNVOVPUUOXOXQRZUUPYJ
        XOXQVQUUQXOHDUGZRZUUPXQUURXODHVRVSUUSXJYCYGYCUUSXJYGYCUUSHHRZCDRZNZHDRZ
        CHRZNZVTZXJYGSYAXMXLUUSUVFUNHCHDIIIIWCWAUVFXIYGXHUVBXIYGSZUVEUVAUVGUUTY
        GCDWDZTUVEUVAUVGUVDUVCUVACHDWEWFUVHWBWGWHWIWJWMWKWBWIWLWMYGUULWNWOUUJYD
        YIYPYDYISYRYDYIYPHXOMZYCUVIXJXMUVIXKYBHCIWPVLTYHXOHXDWQWRWSUUJYDYKYRYDY
        KSYPYDYKYRHXQMZYCUVJXJXMUVJXKYBDHIWTVLTYJXQHXDWQTWSXAXBXCXCXEXFXG $.
    $}

    $( If a vertex is adjacent to two different vertices in a multigraph, there
       are more than one edges starting at this vertex.  (Contributed by
       Alexander van der Vekens, 10-Dec-2017.)  (Revised by AV,
       11-Feb-2021.) $)
    umgr2edg $p |- ( ( ( G e. UMGraph /\ A =/= B )
                       /\ ( { N , A } e. E /\ { B , N } e. E ) )
                     -> E. x e. dom I E. y e. dom I
                         ( x =/= y /\ N e. ( I ` x ) /\ N e. ( I ` y ) ) ) $=
      ( wcel wne wa cpr cfv w3a cv wrex umgrpredgv simpld cumgr cvtx cdm anim1i
      cuhgr umgruhgr adantr eqid ad2ant2r simprd ad2ant2rl 3jca simpr uhgr2edg
      syl ) FUAKZCDLZMZHCNEKZDHNEKZMZMZFUEKZUQMZCFUBOZKZDVEKZHVEKZPZVAPAQZBQZLH
      VJGOKHVKGOKPBGUCZRAVLRVBVDVIVAURVDVAUPVCUQFUFUDUGVBVFVGVHVBVHVFUPUSVHVFMU
      QUTEFHCVEVEUHZJSUIZUJVBVGVHUPUTVGVHMUQUSEFDHVEVMJSUKTVBVHVFVNTULURVAUMULA
      BCDEFGHVEIJVMUNUO $.

    $( If a vertex is adjacent to two different vertices in a simple graph,
       there are more than one edges starting at this vertex.  (Contributed by
       Alexander van der Vekens, 10-Dec-2017.)  (Revised by AV, 17-Oct-2020.)
       (Proof shortened by AV, 11-Feb-2021.) $)
    usgr2edg $p |- ( ( ( G e. USGraph /\ A =/= B )
                       /\ ( { N , A } e. E /\ { B , N } e. E ) )
                     -> E. x e. dom I E. y e. dom I
                         ( x =/= y /\ N e. ( I ` x ) /\ N e. ( I ` y ) ) ) $=
      ( cusgr wcel wne wa cpr cumgr cv cfv wrex anim1i w3a usgrumgr umgr2edg
      cdm syl ) FKLZCDMZNZHCOELDHOELNZNFPLZUGNZUINAQZBQZMHULGRLHUMGRLUABGUDZSAU
      NSUHUKUIUFUJUGFUBTTABCDEFGHIJUCUE $.

    $( If a vertex is adjacent to two different vertices in a multigraph, there
       is not only one edge starting at this vertex.  (Contributed by Alexander
       van der Vekens, 10-Dec-2017.)  (Revised by AV, 8-Jun-2021.) $)
    umgr2edg1 $p |- ( ( ( G e. UMGraph /\ A =/= B )
                        /\ ( { N , A } e. E /\ { B , N } e. E ) )
                      -> -. E! x e. dom I N e. ( I ` x ) ) $=
      ( vy wcel wne wa cpr cv cfv wrex wn w3a bitri cumgr cdm weq wral umgr2edg
      wi wreu 3anrot df-ne 3anbi3i df-3an 2rexbii sylib rexanali rexbii intnand
      rexnal fveq2 eleq2d reu4 sylnibr ) EUAKBCLMGBNDKCGNDKMMZGAOZFPZKZAFUBZQZV
      EGJOZFPZKZMZAJUCZUFJVFUDZAVFUDZMVEAVFUGVBVNVGVBVKVLRZMZJVFQZAVFQZVNRZVBVC
      VHLZVEVJSZJVFQAVFQVRAJBCDEFGHIUEWAVPAJVFVFWAVEVJVOSZVPWAVEVJVTSWBVTVEVJUH
      VTVOVEVJVCVHUIUJTVEVJVOUKTULUMVRVMRZAVFQVSVQWCAVFVKVLJVFUNUOVMAVFUQTUMUPV
      EVJAJVFVLVDVIGVCVHFURUSUTVA $.

    $( If a vertex is adjacent to two different vertices in a simple graph,
       there is not only one edge starting at this vertex.  (Contributed by
       Alexander van der Vekens, 10-Dec-2017.)  (Revised by AV, 17-Oct-2020.)
       (Proof shortened by AV, 8-Jun-2021.) $)
    usgr2edg1 $p |- ( ( ( G e. USGraph /\ A =/= B )
                        /\ ( { N , A } e. E /\ { B , N } e. E ) )
                      -> -. E! x e. dom I N e. ( I ` x ) ) $=
      ( cusgr wcel cumgr wne cpr wa cv cfv cdm wreu wn usgrumgr umgr2edg1
      sylanl1 ) EJKELKBCMGBNDKCGNDKOGAPFQKAFRSTEUAABCDEFGHIUBUC $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d E x y $.  $d G x y $.  $d N x y $.
    umgrvad2edg.e $e |- E = ( Edg ` G ) $.
    $( If a vertex is adjacent to two different vertices in a multigraph, there
       are more than one edges starting at this vertex, analogous to
       ~ usgr2edg .  (Contributed by Alexander van der Vekens, 10-Dec-2017.)
       (Revised by AV, 9-Jan-2020.)  (Revised by AV, 8-Jun-2021.) $)
    umgrvad2edg $p |- ( ( ( G e. UMGraph /\ A =/= B )
                       /\ ( { N , A } e. E /\ { B , N } e. E ) )
                    -> E. x e. E E. y e. E ( x =/= y /\ N e. x /\ N e. y ) ) $=
      ( cpr wcel wa wne w3a cv wrex umgrpredgv ex imp ad3antrrr wceq cumgr cvtx
      simpl simpr cfv wo wi anim12d adantr simplr umgredgne necomd ad2ant2r jca
      eqid olcd prneimg prid1g 3jca syl2anc neeq1 eleq2 3anbi12d neeq2 3anbi13d
      prid2g rspc2ev syl2an23an ) GCIZEJZDGIZEJZKZVJVLFUAJZCDLZKZVIVKLZGVIJZGVK
      JZMZANZBNZLZGWAJZGWBJZMZBEOAEOVJVLUCVJVLUDVPVMKZGFUBUEZJZCWHJZKZDWHJWIKZK
      ZGDLGGLKZVOCGLZKZUFZVTVPVMWMVNVMWMUGVOVNVJWKVLWLVNVJWKEFGCWHWHUOZHPQVNVLW
      LEFDGWHWRHPQUHUIRWGWPWNWGVOWOVNVOVMUJVNVJWOVOVLVNVJKGCEFGCHUKULUMUNUPWMWQ
      KVQVRVSWMWQVQGCDGWHWHWHWHUQRWIVRWJWLWQGCWHURSWIVSWJWLWQDGWHVFSUSUTWFVTVIW
      BLZVRWEMABVIVKEEWAVITWCWSWDVRWEWAVIWBVAWAVIGVBVCWBVKTWSVQWEVSVRWBVKVIVDWB
      VKGVBVEVGVH $.

    $( If a vertex is adjacent to two different vertices in a multigraph, there
       is not only one edge starting at this vertex, analogous to ~ usgr2edg1 .
       Lemma for theorems about friendship graphs.  (Contributed by Alexander
       van der Vekens, 10-Dec-2017.)  (Revised by AV, 9-Jan-2020.) $)
    umgr2edgneu $p |- ( ( ( G e. UMGraph /\ A =/= B )
                        /\ ( { N , A } e. E /\ { B , N } e. E ) )
                          -> -. E! x e. E N e. x ) $=
      ( vy cumgr wcel wne wa cpr cv wrex weq wi wral wn reximi wreu umgrvad2edg
      w3a 3simpc neneq 3ad2ant1 jca syl rexbii rexnal bitri sylib intnand eleq2
      rexanali reu4 sylnibr ) EIJBCKLFBMDJCFMDJLLZFANZJZADOZUTFHNZJZLZAHPZQHDRZ
      ADRZLUTADUAURVGVAURVDVESZLZHDOZADOZVGSZURUSVBKZUTVCUCZHDOZADOVKAHBCDEFGUB
      VOVJADVNVIHDVNVDVHVMUTVCUDVMUTVHVCUSVBUEUFUGTTUHVKVFSZADOVLVJVPADVDVEHDUO
      UIVFADUJUKULUMUTVCAHDUSVBFUNUPUQ $.
  $}

  ${
    $d G x $.
    $( In a simple graph, the size of the edge function is the number of the
       edges of the graph.  (Contributed by AV, 4-Jan-2020.)  (Revised by AV,
       7-Jun-2021.) $)
    usgrsizedg $p |- ( G e. USGraph
                       -> ( # ` ( iEdg ` G ) ) = ( # ` ( Edg ` G ) ) ) $=
      ( vx cusgr wcel ciedg cfv chash crn cedg cdm cvv cv c2 wceq cvtx cpw cdif
      c0 csn eqid crab wf1 fvex usgrf hashf1rn sylancr edgval a1i fveq2d eqtr4d
      dmex ) ACDZAEFZGFZUMHZGFZAIFZGFULUMJZKDURBLGFMNBAOFZPRSQUAZUMUBUNUPNUMAEU
      CUKBUMAUSUSTUMTUDURUTUMKUEUFULUQUOGUQUONULAUGUHUIUJ $.
  $}

  ${
    $d E x y $.  $d G x y $.  $d V x y $.  $d X x y $.
    usgredg3.v $e |- V = ( Vtx ` G ) $.
    usgredg3.e $e |- E = ( iEdg ` G ) $.
    $( The value of the "edge function" of a simple graph is a set containing
       two elements (the endvertices of the corresponding edge).  (Contributed
       by Alexander van der Vekens, 18-Dec-2017.)  (Revised by AV,
       17-Oct-2020.) $)
    usgredg3 $p |- ( ( G e. USGraph /\ X e. dom E )
              -> E. x e. V E. y e. V ( x =/= y /\ ( E ` X ) = { x , y } ) ) $=
      ( cusgr wcel cdm cfv cedg cv wne wceq wa wrex crn wfun cpr usgrfun funeqi
      ciedg sylibr fvelrn sylan edgval eqcomi rneqi syl6eq adantr eleqtrrd eqid
      a1i usgredg syldan ) DIJZFCKJZFCLZDMLZJANZBNZOUTVBVCUAPQBERAERURUSQUTCSZV
      AURCTZUSUTVDJURDUDLZTVEDUBCVFHUCUEFCUFUGURVAVDPUSURVAVFSZVDVAVGPURDUHUOVF
      CCVFHUIUJUKULUMUTVADEABGVAUNUPUQ $.

    $d E x z $.  $d G z $.  $d V z $.  $d X z $.  $d Y x y z $.
    $( For a vertex incident to an edge there is another vertex incident to the
       edge.  (Contributed by Alexander van der Vekens, 18-Dec-2017.)  (Revised
       by AV, 17-Oct-2020.) $)
    usgredg4 $p |- ( ( G e. USGraph /\ X e. dom E /\ Y e. ( E ` X ) )
                      -> E. y e. V ( E ` X ) = { Y , y } ) $=
      ( vx vz wcel cv cpr wceq wrex wa wi wb adantl ex cusgr cdm usgredg3 eleq2
      cfv wne simplrr weq preq2 eqeq2d eqidd rspcedvd simprr eqeqan12rd rexbidv
      wo preq1 mpbird simplrl prcom a1i jaoi elpri sylbid rexlimdvva mpd 3impia
      syl11 ) CUAKZEBUBKZFEBUEZKZVKFALZMZNZADOZVIVJPZILZJLZUFZVKVRVSMZNZPZJDOID
      OVLVPQZIJBCDEGHUCVQWCWDIJDDVQVRDKZVSDKZPPZWCWDWGWCPZVLFWAKZVPWCVLWIRZWGWB
      WJVTVKWAFUDSSFVRNZFVSNZUPWHVPWIWKWHVPQWLWKWHVPWKWHPZVPWAVRVMMZNZADOWMWOWA
      WANZAVSDWHWFWKVQWEWFWCUGSAJUHZWOWPRWMWQWNWAWAVMVSVRUIUJSWMWAUKULWMVOWOADW
      HWKVKWAVNWNWGVTWBUMZFVRVMUQUNUOURTWLWHVPWLWHPZVPWAVSVMMZNZADOWSXAWAVSVRMZ
      NZAVRDWHWEWLVQWEWFWCUSSAIUHZXAXCRWSXDWTXBWAVMVRVSUIUJSXCWSVRVSUTVAULWSVOX
      AADWHWLVKWAVNWTWRFVSVMUQUNUOURTVBFVRVSVCVHVDTVEVFVG $.

    $( For a vertex incident to an edge there is exactly one other vertex
       incident to the edge.  (Contributed by Alexander van der Vekens,
       4-Jan-2018.)  (Revised by AV, 18-Oct-2020.) $)
    usgredgreu $p |- ( ( G e. USGraph /\ X e. dom E /\ Y e. ( E ` X ) )
                      -> E! y e. V ( E ` X ) = { Y , y } ) $=
      ( vx cusgr wcel cdm cfv w3a cv cpr wceq wa wral vex wrex wi wreu usgredg4
      weq eqtr2 preqr2 syl a1i ralrimivva preq2 eqeq2d reu4 sylanbrc ) CJKEBLKF
      EBMZKNZUOFAOZPZQZADUAUSUOFIOZPZQZRZAIUEZUBZIDSADSUSADUCABCDEFGHUDUPVEAIDD
      VEUPUQDKUTDKRRVCURVAQVDUOURVAUFUQUTFATITUGUHUIUJUSVBAIDVDURVAUOUQUTFUKULU
      MUN $.
  $}

  ${
    $d E x y $.  $d G x y $.  $d Y x y $.
    $( For a vertex incident to an edge there is another vertex incident to the
       edge in a simple graph.  (Contributed by AV, 18-Oct-2020.)  (Proof
       shortened by AV, 5-Dec-2020.) $)
    usgredg2vtx $p |- ( ( G e. USGraph /\ E e. ( Edg ` G ) /\ Y e. E )
                        -> E. y e. ( Vtx ` G ) E = { Y , y } ) $=
      ( cusgr wcel cupgr cedg cfv cv cpr wceq cvtx usgrupgr upgredg2vtx syl3an1
      wrex eqid ) CEFCGFBCHIZFDBFBDAJKLACMIZQCNDBSCTATRSROP $.

    $( For a vertex incident to an edge there is exactly one other vertex
       incident to the edge in a simple pseudograph.  (Contributed by AV,
       18-Oct-2020.)  (Revised by AV, 6-Dec-2020.) $)
    uspgredg2vtxeu $p |- ( ( G e. USPGraph /\ E e. ( Edg ` G ) /\ Y e. E )
                           -> E! y e. ( Vtx ` G ) E = { Y , y } ) $=
      ( vx cuspgr wcel cedg cfv w3a cv cpr wceq cvtx wrex wa weq wral eqid vex
      wi wreu cupgr uspgrupgr upgredg2vtx syl3an1 eqtr2 preqr2 ralrimivva preq2
      syl a1i eqeq2d reu4 sylanbrc ) CFGZBCHIZGZDBGZJZBDAKZLZMZACNIZOZVCBDEKZLZ
      MZPZAEQZUAZEVDRAVDRVCAVDUBUPCUCGURUSVECUDDBUQCVDAVDSUQSUEUFUTVKAEVDVDVKUT
      VAVDGVFVDGPPVIVBVGMVJBVBVGUGVAVFDATETUHUKULUIVCVHAEVDVJVBVGBVAVFDUJUMUNUO
      $.

    $( For a vertex incident to an edge there is exactly one other vertex
       incident to the edge in a simple graph.  (Contributed by AV,
       18-Oct-2020.)  (Proof shortened by AV, 6-Dec-2020.) $)
    usgredg2vtxeu $p |- ( ( G e. USGraph /\ E e. ( Edg ` G ) /\ Y e. E )
                          -> E! y e. ( Vtx ` G ) E = { Y , y } ) $=
      ( cusgr wcel cuspgr cedg cfv cv cpr wceq cvtx wreu uspgredg2vtxeu syl3an1
      usgruspgr ) CEFCGFBCHIFDBFBDAJKLACMINCQABCDOP $.

    $( Alternate proof of ~ usgredg2vtxeu , using ~ edgiedgb , the general
       translation from ` ( iEdg `` G ) ` to ` ( Edg `` G ) ` .  (Contributed
       by AV, 18-Oct-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    usgredg2vtxeuALT $p |- ( ( G e. USGraph /\ E e. ( Edg ` G ) /\ Y e. E )
                             -> E! y e. ( Vtx ` G ) E = { Y , y } ) $=
      ( vx cusgr wcel cedg cfv cv cpr wceq cvtx wreu ciedg cdm wrex wi wb eqid
      cuhgr usgruhgr uhgredgiedgb syl w3a usgredgreu 3expia 3adant3 eleq2 eqeq1
      reubidv imbi12d 3ad2ant3 mpbird 3exp rexlimdv sylbid 3imp ) CFGZBCHIGZDBG
      ZBDAJKZLZACMIZNZUSUTBEJZCOIZIZLZEVGPZQZVAVERZUSCUAGUTVKSCUBEBCVGVGTZUCUDU
      SVIVLEVJUSVFVJGZVIVLUSVNVIUEVLDVHGZVHVBLZAVDNZRZUSVNVRVIUSVNVOVQAVGCVDVFD
      VDTVMUFUGUHVIUSVLVRSVNVIVAVOVEVQBVHDUIVIVCVPAVDBVHVBUJUKULUMUNUOUPUQUR $.
  $}

  ${
    $d E e $.  $d G z $.  $d N e $.  $d N z $.  $d V z $.  $d Y e $.  $d Y z $.
    uspgredg2v.v $e |- V = ( Vtx ` G ) $.
    uspgredg2v.e $e |- E = ( Edg ` G ) $.
    uspgredg2v.a $e |- A = { e e. E | N e. e } $.
    $( Lemma for ~ uspgredg2v .  (Contributed by Alexander van der Vekens,
       4-Jan-2018.)  (Revised by AV, 6-Dec-2020.) $)
    uspgredg2vlem $p |- ( ( G e. USPGraph /\ Y e. A )
                           -> ( iota_ z e. V Y = { N , z } ) e. V ) $=
      ( wcel cuspgr wa cv cpr wceq crio cfv wreu eleq2 elrab2 cedg simpl eleq2i
      w3a biimpi ad2antrl simprr 3jca cvtx uspgredg2vtxeu reueq1 sylibr riotacl
      wb ax-mp 3syl sylan2b ) HBLEMLZHDLZFHLZNZHFAOPQZAGRGLZFCOZLVBCHDBVFHFUAKU
      BUTVCNZUTHEUCSZLZVBUFZVDAGTZVEVGUTVIVBUTVCUDVAVIUTVBVAVIDVHHJUEUGUHUTVAVB
      UIUJVJVDAEUKSZTZVKAHEFULGVLQVKVMUPIVDAGVLUMUQUNVDAGUOURUS $.

    $d A x y $.  $d F x $.  $d G n x y $.  $d N n x y z $.  $d V n x y $.
    $d e x y $.
    uspgredg2v.f $e |- F = ( y e. A |-> ( iota_ z e. V y = { N , z } ) ) $.
    $( In a simple pseudograph, the mapping of edges having a fixed endpoint to
       the "other" vertex of the edge (which may be the fixed vertex itself in
       the case of a loop) is a one-to-one function into the set of vertices.
       (Contributed by Alexander van der Vekens, 4-Jan-2018.)  (Revised by AV,
       6-Dec-2020.) $)
    uspgredg2v $p |- ( ( G e. USPGraph /\ N e. V ) -> F : A -1-1-> V ) $=
      ( vx vn wcel wa cv wceq wreu cuspgr cpr crio wral uspgredg2vlem ralrimiva
      wf1 adantr preq2 eqeq2d cbvriotav cedg cfv w3a simpl elrab2 eleq2i biimpi
      wi eleq2 anim1i sylbi anim12i 3anass sylibr cvtx uspgredg2vtxeu wb reueq1
      ax-mp syl adantl riotaeqimp ex ralrimivva eqeq1 riotabidv f1mpt sylanbrc
      ) GUAPZHIPZQZARZHBRZUBZSZBIUCZIPZACUDZWGNRZWESZBIUCZSZWCWJSZUSZNCUDACUDCI
      FUGVTWIWAVTWHACBCDEGHIWCJKLUEUFUHWBWOANCCWBWCCPZWJCPZQZQZWMWNWSHORZUBZWGW
      LIWCWJOWFWCXASZBOIWDWTSZWEXAWCWDWTHUIZUJUKWKWJXASZBOIXCWEXAWJXDUJUKWSVTWC
      GULUMZPZHWCPZUNZXBOITZWSVTXGXHQZQXIWBVTWRXKVTWAUOZWPXKWQWPWCEPZXHQXKHDRZP
      ZXHDWCECXNWCHUTLUPXMXGXHXMXGEXFWCKUQURVAVBUHVCVTXGXHVDVEXIXBOGVFUMZTZXJOW
      CGHVGIXPSZXJXQVHJXBOIXPVIVJVEVKWSVTWJXFPZHWJPZUNZXEOITZWSVTXSXTQZQYAWBVTW
      RYCXLWQYCWPWQWJEPZXTQYCXOXTDWJECXNWJHUTLUPYDXSXTYDXSEXFWJKUQURVAVBVLVCVTX
      SXTVDVEYAXEOXPTZYBOWJGHVGXRYBYEVHJXEOIXPVIVJVEVKVMVNVOANCIWGWLFMWNWFWKBIW
      CWJWEVPVQVRVS $.
  $}

  ${
    $d E x z $.  $d G z $.  $d N x z $.  $d V z $.
    usgredg2v.v $e |- V = ( Vtx ` G ) $.
    usgredg2v.e $e |- E = ( iEdg ` G ) $.
    ${
      $d Y x z $.
      usgredg2v.a $e |- A = { x e. dom E | N e. ( E ` x ) } $.
      $( Lemma 1 for ~ usgredg2v .  (Contributed by Alexander van der Vekens,
         4-Jan-2018.)  (Revised by AV, 18-Oct-2020.) $)
      usgredg2vlem1 $p |- ( ( G e. USGraph /\ Y e. A )
                            -> ( iota_ z e. V ( E ` Y ) = { z , N } ) e. V ) $=
        ( wcel cusgr cdm cfv wa cv cpr wceq wreu fveq2 eleq2d elrab2 usgredgreu
        crio w3a prcom eqeq2i reubii sylib 3expb riotacl syl sylan2b ) HCLEMLZH
        DNZLZFHDOZLZPZURBQZFRZSZBGUEGLZFAQZDOZLUSAHUPCVEHSVFURFVEHDUAUBKUCUOUTP
        VCBGTZVDUOUQUSVGUOUQUSUFURFVARZSZBGTVGBDEGHFIJUDVIVCBGVHVBURFVAUGUHUIUJ
        UKVCBGULUMUN $.

      $d I z $.
      $( Lemma 2 for ~ usgredg2v .  (Contributed by Alexander van der Vekens,
         4-Jan-2018.)  (Revised by AV, 18-Oct-2020.) $)
      usgredg2vlem2 $p |- ( ( G e. USGraph /\ Y e. A )
                            -> ( I = ( iota_ z e. V ( E ` Y ) = { z , N } )
                                 -> ( E ` Y ) = { I , N } ) ) $=
        ( wcel cfv cv cpr wceq wi wa biimpi cusgr crio fveq2 eleq2d elrab2 wreu
        cdm usgredgreu 3expb usgredg2vlem1 adantlr ad4ant23 eleq1 adantl mpbird
        prcom eqeq2i reubii ad3antrrr preq1 eqeq2d riota2 syl2anc exbiri eqcoms
        wb com13 pm2.43i expdcom mpancom expcom com23 mpcom impcom ) ICMZEUAMZF
        IDNZBOZGPZQZBHUBZQZVQFGPZQZRZIDUGZMZGVQMZSZVOVPWERVOWIGAOZDNZMWHAIWFCWJ
        IQWKVQGWJIDUCUDLUETWIVPVOWEVPWIVOWERZVQGVRPZQZBHUFZVPWISZWLVPWGWHWOBDEH
        IGJKUHUIWBWOWPSZVOWDWBWQVOSZWDRZWBWSRWAFWRWBWAFQZWDWRWBWDWTWRWBSZFHMZVT
        BHUFZWDWTVFXAXBWAHMZWPVOXDWOWBVPVOXDWIABCDEGHIJKLUJUKULWBXBXDVFWRFWAHUM
        UNUOWOXCWPVOWBWOXCWNVTBHWMVSVQGVRUPUQURTUSVTWDBHFVRFQVSWCVQVRFGUTVAVBVC
        VDVGVEVHVIVJVKVLVMVN $.

      $d A w y $.  $d E w x y z $.  $d F w $.  $d G w y $.  $d N u w y $.
      $d V u w y $.  $d E u w z $.
      usgredg2v.f $e |- F = ( y e. A
                              |-> ( iota_ z e. V ( E ` y ) = { z , N } ) ) $.
      $( In a simple graph, the mapping of edges having a fixed endpoint to the
         other vertex of the edge is a one-to-one function into the set of
         vertices.  (Contributed by Alexander van der Vekens, 4-Jan-2018.)
         (Revised by AV, 18-Oct-2020.) $)
      usgredg2v $p |- ( ( G e. USGraph /\ N e. V ) -> F : A -1-1-> V ) $=
        ( vw vu wcel wa cv wceq wn cusgr cfv cpr crio wral weq wi usgredg2vlem1
        wf1 ralrimiva adantr cdm crn wb usgrf1 crab elrabi eleq2s f1fveq syl2an
        anim12i bicomd notbid simpl preq1 eqeq2d cbvriotav usgredg2vlem2 mpisyl
        simpr eqeq12d wo cvv riotaex a1i preq12bg syl22anc adantl ioran eqeq12i
        ianor notbii biimpi a1d eqid pm2.24i jaoi sylbi com12 sylbid ralrimivva
        id con4d fveq2 eqeq1d riotabidv f1mpt sylanbrc ) GUAPZHIPZQZBRZEUBZCRZH
        UCZSZCIUDZIPZBDUEZXGNRZEUBZXESZCIUDZSZBNUFZUGZNDUEBDUEDIFUIWSXIWTWSXHBD
        ACDEGHIXBJKLUHUJUKXAXPBNDDXAXBDPZXJDPZQZQZXOXNXTXOTXCXKSZTZXNTZXTXOYAXT
        YAXOXAEULZEUMZEUIZXBYDPZXJYDPZQYAXOUNXSWSYFWTEGKUOUKXQYGXRYHYGXBHAREUBP
        ZAYDUPZDYIAXBYDUQLURYHXJYJDYIAXJYDUQLURVAYDYEXBXJEUSUTVBVCXTYBXCORZHUCZ
        SZOIUDZHUCZXKYLSZOIUDZHUCZSZTZYCXTYAYSXTXCYOXKYRXTWSXQQYNXGSXCYOSXAWSXS
        XQWSWTVDZXQXRVDVAYMXFOCIOCUFZYLXEXCYKXDHVEZVFVGZACDEGYNHIXBJKLVHVIXTWSX
        RQYQXMSXKYRSXAWSXSXRUUAXQXRVJVAYPXLOCIUUBYLXEXKUUCVFVGZACDEGYQHIXJJKLVH
        VIVKVCXAYTYCUGXSXAYTYNYQSZHHSZQZYNHSHYQSQZVLZTZYCWTYTUUKUNWSWTYSUUJWTYN
        VMPZWTYQVMPZWTYSUUJUNUULWTYMOIVNVOWTWLZUUMWTYPOIVNVOUUNYNHYQHVMIVMIVPVQ
        VCVRWSUUKYCUGWTUUKWSYCUUKUUHTZUUITZQWSYCUGZUUHUUIVSUUOUUQUUPUUOUUFTZUUG
        TZVLUUQUUFUUGWAUURUUQUUSUURYCWSUURYCUUFXNYNXGYQXMUUDUUEVTWBWCWDUUGUUQHW
        EWFWGWHUKWHWIUKWJUKWJWJWMWKBNDIXGXMFMXOXFXLCIXOXCXKXEXBXJEWNWOWPWQWR $.
    $}

    $d E x y z $.  $d G y $.  $d N y $.  $d V y $.
    $( Alternate version of ~ usgredgleord , not using the notation
       ` ( Edg `` G ) ` .  In a simple graph the number of edges which contain
       a given vertex is not greater than the number of vertices.  (Contributed
       by Alexander van der Vekens, 4-Jan-2018.)  (Revised by AV,
       18-Oct-2020.) $)
    usgriedgleord $p |- ( ( G e. USGraph /\ N e. V )
                   -> ( # ` { x e. dom E | N e. ( E ` x ) } ) <_ ( # ` V ) ) $=
      ( vy vz cusgr wcel wa cv cfv cdm wbr chash cvv cvtx eqid crab cle cpr wf1
      cdom wceq crio cmpt fvex eqeltri usgredg2v f1domg mpsyl hashdomi syl ) CJ
      KDEKLZDAMBNKABOUAZEUEPZUQQNEQNUBPERKUPUQEHUQHMBNIMDUCUFIEUGUHZUDURECSNRFC
      SUIUJAHIUQBUSCDEFGUQTUSTUKUQERUSULUMUQEUNUO $.
  $}

  ${
    $d B e f $.  $d E e i j $.  $d G e f i j $.  $d G x $.  $d I e f i j $.
    $d I e i x $.  $d N e f i j $.  $d N x $.  $d V e f i j $.  $d V x $.
    ushgredgedg.e $e |- E = ( Edg ` G ) $.
    ushgredgedg.i $e |- I = ( iEdg ` G ) $.
    ushgredgedg.v $e |- V = ( Vtx ` G ) $.
    ushgredgedg.a $e |- A = { i e. dom I | N e. ( I ` i ) } $.
    ushgredgedg.b $e |- B = { e e. E | N e. e } $.
    ushgredgedg.f $e |- F = ( x e. A |-> ( I ` x ) ) $.
    $( In a simple hypergraph there is a 1-1 onto mapping between the indexed
       edges containing a fixed vertex and the set of edges containing this
       vertex.  (Contributed by AV, 11-Dec-2020.) $)
    ushgredgedg $p |- ( ( G e. USHGraph /\ N e. V )
                        -> F : A -1-1-onto-> B ) $=
      ( vj wcel wceq vf cushgr wa wf1o cfv cdm crab cima cres cvtx cpw csn cdif
      cv wf1 wss eqid ushgrf adantr ssrab2 f1ores sylancl cmpt eqidd mpteq12dva
      c0 a1i syl5eq wf f1f syl feqresmpt eqcomd eqtrd wrex cab wfun ciedg cuhgr
      ushgruhgr uhgrfun funeqi sylibr dfimafn fveq2 eleq2d elrab w3a crn fvelrn
      wi simpl eqcomi rneqi eleq2i syl2an 3adant3 wb eleq1 eqcoms 3ad2ant3 cedg
      mpbird edgval 3ad2ant1 eleq2 biimpcd adantl 3imp jca 3exp syl5bi rexlimdv
      funfn biimpi fvelrnb dmeqi fveq1i eqeq2i adantld eqeq1i ex reximdv2 com23
      wfn imp sylbid impd impbid vex eqeq2 rexbidv elab 3bitr4g eqrdv f1oeq123d
      elrab2 ) HUBSZJKSZUCZBCGUDJEUNZIUEZSZEIUFZUGZIUUEUHZIUUEUIZUDZYTUUDHUJUEZ
      UKVFULUMZIUOZUUEUUDUPZUUHYRUUKYSIHUUIUUIUQMURZUSUUCEUUDUTZUUDUUJUUEIVAVBY
      TBUUECUUFGUUGYTGAUUEAUNZIUEZVCZUUGYTGABUUPVCUUQQYTABUUPUUEUUPBUUETYTOVGZY
      TUUOBSUCUUPVDVEVHYTUUGUUQYRUUGUUQTYSYRAUUDUUJUUEIYRUUKUUDUUJIVIUUMUUDUUJI
      VJVKUULYRUUNVGVLUSVMVNUURYTUUFCYTUUFRUNZIUEZDUNZTZRUUEVOZDVPZCYTIVQZUULUU
      FUVDTYRUVEYSYRHVRUEZVQZUVEYRHVSSUVGHVTUVFHUVFUQWAVKZIUVFMWBWCUSZUUNRDUUEI
      WDVBYTUAUVDCYTUUTUAUNZTZRUUEVOZUVJFSZJUVJSZUCZUVJUVDSUVJCSYTUVLUVOYTUVKUV
      ORUUEUUSUUESZUUSUUDSZJUUTSZUCZYTUVKUVOWKUUCUVREUUSUUDUUAUUSTUUBUUTJUUAUUS
      IWEWFWGZYTUVSUVKUVOYTUVSUVKWHZUVMUVNUWAUVMUVJUVFWIZSZUWAUWCUUTUWBSZYTUVSU
      WDUVKYTUVEUVQUWDUVSUVIUVQUVRWLUVEUVQUCUUTIWIZSUWDUUSIWJUWBUWEUUTUVFIIUVFM
      WMZWNWOWCWPWQUVKYTUWCUWDWRZUVSUWGUVJUUTUVJUUTUWBWSWTXAXCYTUVSUVMUWCWRZUVK
      YRUWHYSYRFUWBUVJYRFHXBUEZUWBLUWIUWBTYRHXDVGVHWFZUSXEXCYTUVSUVKUVNUVSUVKUV
      NWKZWKYTUVRUWKUVQUVKUVRUVNUUTUVJJXFXGXHVGXIXJXKXLXMYRUVOUVLWKYSYRUVMUVNUV
      LYRUVMUWCUVNUVLWKZUWJYRUWCUUSUVFUEZUVJTZRUVFUFZVOZUWLYRUVFUWOYEZUWCUWPWRY
      RUVGUWQUVHUVGUWQUVFXNXOVKRUWOUVJUVFXPVKYRUVNUWPUVLYRUVNUWPUVLWKYRUVNUCZUW
      NUVKRUWOUUEUWRUUSUWOSZUWNUCZUVPUVKUCUWRUWTUCZUVPUVKUXAUVSUVPUXAUVQUVRUWTU
      VQUWRUWSUVQUWNUWSUVQUWOUUDUUSUVFIUWFXQWOXOUSXHUWRUWTUVRUWRUWNUVRUWSUVNUWN
      UVRWKYRUWNUVNUVRUWNUVJUUTJUVJUUTTZUVJUWMUVJUWMTUXBUWMUUTUVJUUSUVFIUWFXRZX
      SXOWTWFXGXHXTYFXJUVTWCUWTUVKUWRUWNUVKUWSUWNUVKUWMUUTUVJUXCYAXOXHXHXJYBYCY
      BYDYGYGYHUSYIUVCUVLDUVJUAYJUVAUVJTUVBUVKRUUEUVAUVJUUTYKYLYMJUVASUVNDUVJFC
      UVAUVJJXFPYQYNYOVNVMYPXC $.

    $( In a simple graph there is a 1-1 onto mapping between the indexed edges
       containing a fixed vertex and the set of edges containing this vertex.
       (Contributed by by AV, 18-Oct-2020.)  (Proof shortened by AV,
       11-Dec-2020.) $)
    usgredgedg $p |- ( ( G e. USGraph /\ N e. V )
                        -> F : A -1-1-onto-> B ) $=
      ( cusgr wcel cushgr wf1o cuspgr usgruspgr uspgrushgr ushgredgedg sylan
      syl ) HRSZHTSZJKSBCGUAUHHUBSUIHUCHUDUGABCDEFGHIJKLMNOPQUEUF $.
  $}

  ${
    $d B e f $.  $d E e i j $.  $d G e f i j $.  $d G x $.  $d I e f i j $.
    $d I e i x $.  $d N e f i j $.  $d N x $.  $d V e f i j $.  $d V x $.
    ushgredgedgloop.e $e |- E = ( Edg ` G ) $.
    ushgredgedgloop.i $e |- I = ( iEdg ` G ) $.
    ushgredgedgloop.v $e |- V = ( Vtx ` G ) $.
    ushgredgedgloop.a $e |- A = { i e. dom I | ( I ` i ) = { N } } $.
    ushgredgedgloop.b $e |- B = { e e. E | e = { N } } $.
    ushgredgedgloop.f $e |- F = ( x e. A |-> ( I ` x ) ) $.
    $( In a simple hypergraph there is a 1-1 onto mapping between the indexed
       edges being loops at a fixed vertex and the set of loops at this vertex.
       (Contributed by AV, 11-Dec-2020.) $)
    ushgredgedgloop $p |- ( ( G e. USHGraph /\ N e. V )
                        -> F : A -1-1-onto-> B ) $=
      ( vj wcel wceq vf cushgr wa wf1o cfv csn cdm crab cima cres cvtx cpw cdif
      cv wf1 wss eqid ushgrf adantr ssrab2 f1ores sylancl cmpt eqidd mpteq12dva
      c0 a1i syl5eq wf f1f syl feqresmpt eqtr4d wrex wfun ciedg cuhgr ushgruhgr
      cab uhgrfun funeqi sylibr dfimafn fveq2 eqeq1d elrab w3a crn simpl fvelrn
      wi eqcomi rneqi syl6eleqr syl2an 3adant3 wb eqcoms 3ad2ant3 mpbird edgval
      eleq1 cedg eleq2d 3ad2ant1 eqeq1 biimpcd adantl 3imp 3exp syl5bi rexlimdv
      jca wfn funfn biimpi fvelrnb dmeqi eleq2i fveq1i eqeq2i adantld eqeq1i ex
      imp reximdv2 com23 sylbid impd impbid vex eqeq2 rexbidv elab elrab2 eqrdv
      3bitr4g eqtr2d f1oeq123d ) HUBSZJKSZUCZBCGUDEUNZIUEZJUFZTZEIUGZUHZIUUHUIZ
      IUUHUJZUDZUUBUUGHUKUEZULVFUFUMZIUOZUUHUUGUPZUUKYTUUNUUAIHUULUULUQMURZUSUU
      FEUUGUTZUUGUUMUUHIVAVBUUBBUUHCUUIGUUJUUBGAUUHAUNZIUEZVCZUUJUUBGABUUSVCUUT
      QUUBABUUSUUHUUSBUUHTUUBOVGZUUBUURBSUCUUSVDVEVHYTUUJUUTTUUAYTAUUGUUMUUHIYT
      UUNUUGUUMIVIUUPUUGUUMIVJVKUUOYTUUQVGVLUSVMUVAUUBUUIRUNZIUEZDUNZTZRUUHVNZD
      VSZCUUBIVOZUUOUUIUVGTYTUVHUUAYTHVPUEZVOZUVHYTHVQSUVJHVRUVIHUVIUQVTVKZIUVI
      MWAWBUSZUUQRDUUHIWCVBUUBUAUVGCUUBUVCUAUNZTZRUUHVNZUVMFSZUVMUUETZUCZUVMUVG
      SUVMCSUUBUVOUVRUUBUVNUVRRUUHUVBUUHSZUVBUUGSZUVCUUETZUCZUUBUVNUVRWKUUFUWAE
      UVBUUGUUCUVBTUUDUVCUUEUUCUVBIWDWEWFZUUBUWBUVNUVRUUBUWBUVNWGZUVPUVQUWDUVPU
      VMUVIWHZSZUWDUWFUVCUWESZUUBUWBUWGUVNUUBUVHUVTUWGUWBUVLUVTUWAWIUVHUVTUCUVC
      IWHUWEUVBIWJUVIIIUVIMWLZWMWNWOWPUVNUUBUWFUWGWQZUWBUWIUVMUVCUVMUVCUWEXBWRW
      SWTUUBUWBUVPUWFWQZUVNYTUWJUUAYTFUWEUVMYTFHXCUEZUWELUWKUWETYTHXAVGVHXDZUSX
      EWTUUBUWBUVNUVQUWBUVNUVQWKZWKUUBUWAUWMUVTUVNUWAUVQUVCUVMUUEXFXGXHVGXIXMXJ
      XKXLYTUVRUVOWKUUAYTUVPUVQUVOYTUVPUWFUVQUVOWKZUWLYTUWFUVBUVIUEZUVMTZRUVIUG
      ZVNZUWNYTUVIUWQXNZUWFUWRWQYTUVJUWSUVKUVJUWSUVIXOXPVKRUWQUVMUVIXQVKYTUVQUW
      RUVOYTUVQUWRUVOWKYTUVQUCZUWPUVNRUWQUUHUWTUVBUWQSZUWPUCZUVSUVNUCUWTUXBUCZU
      VSUVNUXCUWBUVSUXCUVTUWAUXBUVTUWTUXAUVTUWPUXAUVTUWQUUGUVBUVIIUWHXRXSXPUSXH
      UWTUXBUWAUWTUWPUWAUXAUVQUWPUWAWKYTUWPUVQUWAUWPUVMUVCUUEUVMUVCTZUVMUWOUVMU
      WOTUXDUWOUVCUVMUVBUVIIUWHXTZYAXPWRWEXGXHYBYEXMUWCWBUXBUVNUWTUWPUVNUXAUWPU
      VNUWOUVCUVMUXEYCXPXHXHXMYDYFYDYGYHYHYIUSYJUVFUVODUVMUAYKUVDUVMTUVEUVNRUUH
      UVDUVMUVCYLYMYNUVDUUETUVQDUVMFCUVDUVMUUEXFPYOYQYPYRYSWT $.
  $}

  ${
    $d E e f x $.  $d G f x y $.  $d N e f x y $.  $d V f x y $.
    usgredgleord.v $e |- V = ( Vtx ` G ) $.
    usgredgleord.e $e |- E = ( Edg ` G ) $.
    $( In a simple pseudograph the number of edges which contain a given vertex
       is not greater than the number of vertices.  (Contributed by Alexander
       van der Vekens, 4-Jan-2018.)  (Revised by AV, 6-Dec-2020.) $)
    uspgredgleord $p |- ( ( G e. USPGraph /\ N e. V )
                   -> ( # ` { e e. E | N e. e } ) <_ ( # ` V ) ) $=
      ( vx vy cuspgr wcel wa cv crab wbr chash cfv cvv cvtx eqid cdom wceq crio
      cle cpr cmpt wf1 fvex eqeltri uspgredg2v f1domg mpsyl hashdomi syl ) CJKD
      EKLZDAMKABNZEUAOZUPPQEPQUDOERKUOUPEHUPHMDIMUEUBIEUCUFZUGUQECSQRFCSUHUIHIU
      PABURCDEFGUPTURTUJUPERURUKULUPEUMUN $.

    $( In a simple graph the number of edges which contain a given vertex is
       not greater than the number of vertices.  (Contributed by Alexander van
       der Vekens, 4-Jan-2018.)  (Revised by AV, 18-Oct-2020.)  (Proof
       shortened by AV, 6-Dec-2020.) $)
    usgredgleord $p |- ( ( G e. USGraph /\ N e. V )
                   -> ( # ` { e e. E | N e. e } ) <_ ( # ` V ) ) $=
      ( cusgr wcel cuspgr crab chash cfv cle wbr usgruspgr uspgredgleord sylan
      cv ) CHICJIDEIDASIABKLMELMNOCPABCDEFGQR $.

    $( Alternate proof for ~ usgredgleord based on ~ usgriedgleord .  In a
       simple graph the number of edges which contain a given vertex is not
       greater than the number of vertices.  (Contributed by Alexander van der
       Vekens, 4-Jan-2018.)  (Revised by AV, 18-Oct-2020.)  (Proof shortened by
       AV, 5-May-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    usgredgleordALT $p |- ( ( G e. USGraph /\ N e. V )
                   -> ( # ` { e e. E | N e. e } ) <_ ( # ` V ) ) $=
      ( vx vy vf cusgr wcel wa cv ciedg cfv crab chash cvv eqid cmpt fvex rabex
      cdm cle dmex eleq2w cbvrabv usgredgedg hasheqf1od usgriedgleord eqbrtrrd
      a1i ) CKLDELMZDHNCOPZPLZHUOUDZQZRPDANLZABQZRPERPUEUNURUTSIURINUOPUAZURSLU
      NUPHUQUOCOUBUFUCUMIURUTJHBVACUODEGUOTZFURTUSDJNLAJBAJDUGUHVATUIUJHUOCDEFV
      BUKUL $.
  $}

  ${
    $d G x $.  $d E x $.  $d I x $.  $d V x $.  $d ph x $.
    usgrstrrepe.v $e |- V = ( Base ` G ) $.
    usgrstrrepe.i $e |- I = ( .ef ` ndx ) $.
    usgrstrrepe.s $e |- ( ph -> G Struct X ) $.
    usgrstrrepe.b $e |- ( ph -> ( Base ` ndx ) e. dom G ) $.
    usgrstrrepe.w $e |- ( ph -> E e. W ) $.
    usgrstrrepe.e $e |- ( ph -> E : dom E -1-1-> { x e. ~P V |
                                                   ( # ` x ) = 2 } ) $.
    $( Replacing (or adding) the edges (between elements of the base set) of an
       extensible structure results in a simple graph.  Instead of requiring
       ` ( ph -> G Struct X ) ` , it would be sufficient to require
       ` ( ph -> Fun ( G \ { (/) } ) ) ` and ` ( ph -> G e. _V ) ` .
       (Contributed by AV, 13-Nov-2021.)  (Proof shortened by AV,
       16-Nov-2021.) $)
    usgrstrrepe $p |- ( ph -> ( G sSet <. I , E >. ) e. USGraph ) $=
      ( csts wcel cfv cdm wf1 mpbird cop co cusgr ciedg cv chash wceq cvtx crab
      c2 cpw wb cbs setsvtx syl6eqr pweqd rabeqdv f1eq3 setsiedg dmeqd f1eq123d
      syl eqidd cvv ovex eqid isusgrs mp1i ) ADECUAZOUBZUCPZVJUDQZRZBUEUFQUJUGZ
      BVJUHQZUKZUIZVLSZAVRCRZVQCSZAVTVSVNBFUKZUIZCSZNAVQWBUGVTWCULAVNBVPWAAVOFA
      VODUMQFACDEGHJKLMUNIUOUPUQVQWBVSCURVBTAVMVSVQVQVLCACDEGHJKLMUSZAVLCWDUTAV
      QVCVATVJVDPVKVRULADVIOVEBVDVLVJVOVOVFVLVFVGVHT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Examples for graphs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d G x $.
    usgr0e.g $e |- ( ph -> G e. W ) $.
    usgr0e.e $e |- ( ph -> ( iEdg ` G ) = (/) ) $.
    $( The empty graph, with vertices but no edges, is a simple graph.
       (Contributed by Alexander van der Vekens, 10-Aug-2017.)  (Revised by AV,
       16-Oct-2020.)  (Proof shortened by AV, 25-Nov-2020.) $)
    usgr0e $p |- ( ph -> G e. USGraph ) $=
      ( vx cusgr wcel ciedg cfv cdm cv chash c2 wceq cvtx cpw c0 csn eqid cdif
      crab wf1 f10d wb isusgr syl mpbird ) ABGHZBIJZKFLMJNOFBPJZQRSUAUBZUJUCZAU
      LUJEUDABCHUIUMUEDFCUJBUKUKTUJTUFUGUH $.
  $}

  $( The null graph, with no vertices, is a simple graph iff the edge function
     is empty.  (Contributed by Alexander van der Vekens, 30-Sep-2017.)
     (Revised by AV, 16-Oct-2020.) $)
  usgr0vb $p |- ( ( G e. W /\ ( Vtx ` G ) = (/) )
                -> ( G e. USGraph <-> ( iEdg ` G ) = (/) ) ) $=
    ( wcel cvtx cfv c0 wa cusgr ciedg cuhgr usgruhgr uhgr0vb syl5ib simpl simpr
    wceq wi usgr0e ex adantr impbid ) ABCZADEFPZGZAHCZAIEFPZUEAJCUDUFAKABLMUBUF
    UEQUCUBUFUEUBUFGABUBUFNUBUFORSTUA $.

  ${
    uhgr0v0e.v $e |- V = ( Vtx ` G ) $.
    uhgr0v0e.e $e |- E = ( Edg ` G ) $.
    $( The null graph, with no vertices, has no edges.  (Contributed by AV,
       21-Oct-2020.) $)
    uhgr0v0e $p |- ( ( G e. UHGraph /\ V = (/) ) -> E = (/) ) $=
      ( cuhgr wcel c0 wceq wa ciedg cfv cvtx wi eqeq1i uhgr0vb biimpd ex syl5bi
      pm2.43a imp wb cedg uhgriedg0edg0 syl5bb adantr mpbird ) BFGZCHIZJAHIZBKL
      HIZUHUIUKUIUHUKUIBMLZHIZUHUHUKNZCULHDOUHUMUNUHUMJUHUKBFPQRSTUAUHUJUKUBUIU
      JBUCLZHIUHUKAUOHEOBUDUEUFUG $.

    $( The size of a hypergraph with no vertices (the null graph) is 0.
       (Contributed by Alexander van der Vekens, 5-Jan-2018.)  (Revised by AV,
       7-Nov-2020.) $)
    uhgr0vsize0 $p |- ( ( G e. UHGraph /\ ( # ` V ) = 0 ) -> ( # ` E ) = 0 ) $=
      ( cuhgr wcel chash cfv cc0 wceq c0 cvv wb cvtx fvex eqeltri hasheq0 ax-mp
      cedg uhgr0v0e ex 3imtr4g imp ) BFGZCHIJKZAHIJKZUECLKZALKZUFUGUEUHUIABCDEU
      AUBCMGUFUHNCBOIMDBOPQCMRSAMGUGUINABTIMEBTPQAMRSUCUD $.
  $}

  $( A graph of order 0 (i.e. with 0 vertices) has a finite set of edges.
     (Contributed by Alexander van der Vekens, 5-Jan-2018.)  (Revised by AV,
     10-Jan-2020.)  (Revised by AV, 8-Jun-2021.) $)
  uhgr0edgfi $p |- ( ( G e. UHGraph /\ ( # ` ( Vtx ` G ) ) = 0 )
                     -> ( Edg ` G ) e. Fin ) $=
    ( cuhgr wcel cvtx cfv chash cc0 wceq wa cedg cfn eqid uhgr0vsize0 c0 cvv wb
    fvex hasheq0 ax-mp 0fin eleq1 mpbiri sylbi syl ) ABCADEZFEGHIAJEZFEGHZUFKCZ
    UFAUEUELUFLMUGUFNHZUHUFOCUGUIPAJQUFORSUIUHNKCTUFNKUAUBUCUD $.

  $( The null graph, with no vertices, is a simple graph.  (Contributed by AV,
     1-Nov-2020.) $)
  usgr0v $p |- ( ( G e. W /\ ( Vtx ` G ) = (/) /\ ( iEdg ` G ) = (/) )
                 -> G e. USGraph ) $=
    ( wcel cvtx cfv c0 wceq cusgr ciedg usgr0vb biimp3ar ) ABCADEFGAHCAIEFGABJK
    $.

  $( The null graph, with no vertices, represented by a hypergraph, is a simple
     graph.  (Contributed by AV, 5-Dec-2020.) $)
  uhgr0vusgr $p |- ( ( G e. UHGraph /\ ( Vtx ` G ) = (/) ) -> G e. USGraph ) $=
    ( cuhgr wcel cvtx cfv c0 wceq wa simpl cedg ciedg uhgr0v0e wb uhgriedg0edg0
    eqid adantr mpbid usgr0e ) ABCZADEZFGZHZABSUAIUBAJEZFGZAKEFGZUCATTOUCOLSUDU
    EMUAANPQR $.

  $( The null graph represented by an empty set is a simple graph.
     (Contributed by AV, 16-Oct-2020.) $)
  usgr0 $p |- (/) e. USGraph $=
    ( vx c0 cusgr wcel cdm cv chash cfv c2 wceq cpw csn cdif wf1 wb ax-mp mpbir
    crab cvv eqcomi f10 dm0 f1eq2 0ex cvtx vtxval0 ciedg iedgval0 isusgr ) BCDZ
    BEZAFGHIJABKBLMRZBNZUMBULBNZULUAUKBJUMUNOUBUKBULBUCPQBSDUJUMOUDASBBBBUEHBUF
    TBUGHBUHTUIPQ $.

  ${
    $d B x $.  $d C x $.  $d G x $.
    uspgr1e.v $e |- V = ( Vtx ` G ) $.
    uspgr1e.a $e |- ( ph -> A e. X ) $.
    uspgr1e.b $e |- ( ph -> B e. V ) $.
    uspgr1e.c $e |- ( ph -> C e. V ) $.
    uspgr1e.e $e |- ( ph -> ( iEdg ` G ) = { <. A , { B , C } >. } ) $.
    $( A simple pseudograph with one edge.  (Contributed by Alexander van der
       Vekens, 10-Aug-2017.)  (Revised by AV, 16-Oct-2020.)  (Revised by AV,
       21-Mar-2021.)  (Proof shortened by AV, 17-Apr-2021.) $)
    uspgr1e $p |- ( ph -> G e. USPGraph ) $=
      ( vx wcel cfv csn wf1 wss cvv mpbird cuspgr ciedg cdm cv chash c2 cle wbr
      cvtx cpw c0 cdif crab cpr cop prex snid f1sng sylancl prssd syl6sseq elpw
      sylibr upgr1elem f1ss syl2anc wceq wb a1i f1dm f1eq2 dmeqd eqidd f1eq123d
      3syl 1vgrex eqid isuspgr ) AEUANZEUBOZUCZMUDUEOUFUGUHZMEUIOZUJZUKPZULUMZV
      TQZAWGBCDUNZUOPZUCZWFWIQZAWKBPZWFWIQZAWLWHPZWIQZWNWFRWMABGNWHWNNWOIWHCDUP
      ZUQBWHGWNURUSZAMCDWDFAWHWCRWHWDNAWHFWCACDFJKUTHVAWHWCWPVBVCJVDWLWNWFWIVEV
      FAWLWBMSWEULUMZWIQZWJWLVGWKWMVHAWOWNWRRWSWQAMCDSFWHSNAWPVIJVDWLWNWRWIVEVF
      WLWRWIVJWJWLWFWIVKVOTAWAWJWFWFVTWILAVTWILVLAWFVMVNTACFNESNVSWGVHJECFHVPMS
      VTEWCWCVQVTVQVRVOT $.

    usgr1e.e $e |- ( ph -> B =/= C ) $.
    $( A simple graph with one edge (with additional assumption that
       ` B =/= C ` since otherwise the edge is a loop!).  (Contributed by
       Alexander van der Vekens, 10-Aug-2017.)  (Revised by AV,
       18-Oct-2020.) $)
    usgr1e $p |- ( ph -> G e. USGraph ) $=
      ( vx wcel chash cfv c2 wceq wral cuspgr cv cedg cusgr uspgr1e cpr csn wne
      hashprg syl2anc mpbid prex fveq2 eqeq1d ralsn sylibr ciedg crn cop edgval
      wb a1i rneqd rnsnopg syl 3eqtrd raleqdv mpbird usgruspgrb sylanbrc ) AEUA
      ONUBZPQZRSZNEUCQZTZEUDOABCDEFGHIJKLUEAVOVMNCDUFZUGZTZAVPPQZRSZVRACDUHZVTM
      ACFODFOWAVTVAJKCDFFUIUJUKVMVTNVPCDULVKVPSVLVSRVKVPPUMUNUOUPAVMNVNVQAVNEUQ
      QZURZBVPUSUGZURZVQVNWCSAEUTVBAWBWDLVCABGOWEVQSIBVPGVDVEVFVGVHNEVIVJ $.
  $}

  $( The empty graph, with vertices but no edges, is a simple graph.
     (Contributed by Alexander van der Vekens, 10-Aug-2017.)  (Revised by AV,
     16-Oct-2020.) $)
  usgr0eop $p |- ( V e. W -> <. V , (/) >. e. USGraph ) $=
    ( wcel c0 cop cvv opex a1i ciedg cfv wceq 0ex opiedgfv mpan2 usgr0e ) ABCZA
    DEZFQFCPADGHPDFCQIJDKLDABFMNO $.

  $( A simple pseudograph with (at least) two vertices and one edge.
     (Contributed by Alexander van der Vekens, 10-Aug-2017.)  (Revised by AV,
     16-Oct-2020.) $)
  uspgr1eop $p |- ( ( ( V e. W /\ A e. X ) /\ ( B e. V /\ C e. V ) )
                    -> <. V , { <. A , { B , C } >. } >. e. USPGraph ) $=
    ( wcel wa cpr cop csn cvtx cfv eqid simplr simprl cvv wceq syl2an eleqtrrd
    simpl snex a1i opvtxfv simprr ciedg opiedgfv uspgr1e ) DEGZAFGZHZBDGZCDGZHZ
    HZABCDABCIJZKZJZURLMZFUSNUIUJUNOUOBDUSUKULUMPUKUIUQQGZUSDRUNUIUJUAZUTUNUPUB
    UCZUQDEQUDSZTUOCDUSUKULUMUEVCTUKUIUTURUFMUQRUNVAVBUQDEQUGSUH $.

  $( A simple pseudograph with (at least) two vertices and one edge represented
     by a singleton word.  (Contributed by AV, 9-Jan-2021.) $)
  uspgr1ewop $p |- ( ( V e. W /\ A e. V /\ B e. V )
                     -> <. V , <" { A , B } "> >. e. USPGraph ) $=
    ( wcel w3a cpr cs1 cop cc0 csn cuspgr cvv wceq prex s1val mp1i opeq2d simp1
    wa c0ex a1i 3simpc uspgr1eop syl21anc eqeltrd ) CDEZACEZBCEZFZCABGZHZICJUKI
    KZIZLUJULUMCUKMEULUMNUJABOUKMPQRUJUGJMEZUHUITUNLEUGUHUISUOUJUAUBUGUHUIUCJAB
    CDMUDUEUF $.

  $( A simple pseudograph with (at least) one vertex and one edge (a loop).
     (Contributed by AV, 5-Dec-2020.) $)
  uspgr1v1eop $p |- ( ( V e. W /\ A e. X /\ B e. V )
                      -> <. V , { <. A , { B } >. } >. e. USPGraph ) $=
    ( w3a csn cop cpr cuspgr dfsn2 opeq2i sneqi wa 3simpa id 3ad2ant3 uspgr1eop
    wcel ancri syl2anc syl5eqel ) CDSZAESZBCSZFZCABGZHZGZHCABBIZHZGZHZJUIULCUHU
    KUGUJABKLMLUFUCUDNUEUENZUMJSUCUDUEOUEUCUNUDUEUEUEPTQABBCDERUAUB $.

  $( A simple graph with (at least) two different vertices and one edge.  If
     the two vertices were not different, the edge would be a loop.
     (Contributed by Alexander van der Vekens, 10-Aug-2017.)  (Revised by AV,
     18-Oct-2020.) $)
  usgr1eop $p |- ( ( ( V e. W /\ A e. X ) /\ ( B e. V /\ C e. V ) )
            -> ( B =/= C -> <. V , { <. A , { B , C } >. } >. e. USGraph ) ) $=
    ( wcel wa wne cpr cop csn cusgr cfv cvv wceq adantr a1i syl2an eleqtrrd ex
    cvtx eqid simpllr simplrl simpl opvtxfv simprr ciedg opiedgfv simpr usgr1e
    snex ) DEGZAFGZHZBDGZCDGZHZHZBCIZDABCJKZLZKZMGUTVAHZABCVDVDUBNZFVFUCUNUOUSV
    AUDVEBDVFUPUQURVAUEUTUNVCOGZVFDPZVAUPUNUSUNUOUFZQZVGVAVBUMZRZVCDEOUGZSTUTCV
    FGVAUTCDVFUPUQURUHUPUNVGVHUSVIVGUSVKRVMSTQUTUNVGVDUINVCPVAVJVLVCDEOUJSUTVAU
    KULUA $.

  $( A simple pseudograph with two vertices and one edge represented by a
     singleton word.  (Contributed by AV, 9-Jan-2021.) $)
  uspgr2v1e2w $p |- ( ( A e. X /\ B e. Y )
                      -> <. { A , B } , <" { A , B } "> >. e. USPGraph ) $=
    ( wcel wa cpr cvv cs1 cop cuspgr a1i prid1g adantr prid2g adantl uspgr1ewop
    prex syl3anc ) ACEZBDEZFZABGZHEZAUCEZBUCEZUCUCIJKEUDUBABRLTUEUAABCMNUAUFTAB
    DOPABUCHQS $.

  $( A simple graph with two vertices and one edge represented by a singleton
     word.  (Contributed by AV, 9-Jan-2021.) $)
  usgr2v1e2w $p |- ( ( A e. X /\ B e. Y /\ A =/= B )
                     -> <. { A , B } , <" { A , B } "> >. e. USGraph ) $=
    ( wcel wne w3a cpr cs1 cop cc0 csn cusgr cvv wceq prex s1val mp1i opeq2d wa
    prid1g prid2g anim12i c0ex pm3.2i jctil usgr1eop imp stoic3 eqeltrd ) ACEZB
    DEZABFZGZABHZUOIZJUOKUOJLZJZMUNUPUQUOUONEZUPUQOUNABPZUONQRSUKULUSKNEZTZAUOE
    ZBUOEZTZTZUMURMEZUKULTVEVBUKVCULVDABCUAABDUBUCUSVAUTUDUEUFVFUMVGKABUONNUGUH
    UIUJ $.

  $( A class without edges is a simple graph.  Since ` ran F = (/) ` does not
     generally imply ` Fun F ` , but ` Fun ( iEdg `` G ) ` is required for
     ` G ` to be a simple graph, however, this must be provided as assertion.
     (Contributed by AV, 18-Oct-2020.) $)
  edg0usgr $p |- ( ( G e. W /\ ( Edg ` G ) = (/) /\ Fun ( iEdg ` G ) )
                   -> G e. USGraph ) $=
    ( wcel cedg cfv c0 wceq ciedg wfun cusgr crn wi edgval a1i eqeq1d wb funrel
    wrel relrn0 bicomd syl wa simpr simpl usgr0e ex syl6bi com13 sylbid 3imp )
    ABCZADEZFGZAHEZIZAJCZUKUMUNKZFGZUOUPLUKULUQFULUQGUKAMNOUOURUKUPUOURUNFGZUKU
    PLUOUNRZURUSPUNQUTUSURUNSTUAUSUKUPUSUKUBABUSUKUCUSUKUDUEUFUGUHUIUJ $.

  ${
    $d G v x $.  $d V v x $.
    lfuhgr1v0e.v $e |- V = ( Vtx ` G ) $.
    lfuhgr1v0e.i $e |- I = ( iEdg ` G ) $.
    lfuhgr1v0e.e $e |- E = { x e. ~P V | 2 <_ ( # ` x ) } $.
    $( A loop-free hypergraph with one vertex has no edges.  (Contributed by
       AV, 18-Oct-2020.)  (Revised by AV, 2-Apr-2021.) $)
    lfuhgr1v0e $p |- ( ( G e. UHGraph /\ ( # ` V ) = 1 /\ I : dom I --> E )
                       -> ( Edg ` G ) = (/) ) $=
      ( vv wcel chash cfv c1 wceq c0 c2 cle wbr cvv cc0 cuhgr cdm wf cedg ciedg
      w3a wa a1i dmeqi cv cpw crab csn wi cvtx fvex eqeltri hash1snb ax-mp pweq
      wex wb rabeqdv wn wral cpr clt 2pos 0re 2re ltnlei mpbi 1lt2 1re 0ex snex
      fveq2 hash0 syl6eq breq2d notbid hashsng ralpr mpbir2an pwsn raleqi mpbir
      vex rabeq0 a1d exlimiv sylbi impcom feq123d biimp3a simplbi uhgriedg0edg0
      syl5eq f00 syl 3ad2ant1 mpbird ) CUAJZEKLMNZDUBZBDUCZUFZCUDLONZCUELZONZXG
      XIUBZOXIUCZXJXCXDXFXLXCXDUGZXEXKBODXIDXINXMGUHXEXKNXMDXIGUIUHXMBPAUJZKLZQ
      RZAEUKZULZOHXDXCXRONZXDEIUJZUMZNZIVAZXCXSUNZESJXDYCVBECUOLSFCUOUPUQESIURU
      SYBYDIYBXSXCYBXRXPAYAUKZULZOYBXPAXQYEEYAUTVCYFONXPVDZAYEVEZYHYGAOYAVFZVEZ
      YJPTQRZVDZPMQRZVDZTPVGRYLVHTPVIVJVKVLMPVGRYNVMMPVNVJVKVLYGYLYNAOYAVOXTVPX
      NONZXPYKYOXOTPQYOXOOKLTXNOKVQVRVSVTWAXNYANZXPYMYPXOMPQYPXOYAKLZMXNYAKVQXT
      SJYQMNIWHXTSWBUSVSVTWAWCWDYGAYEYIXTWEWFWGXPAYEWIWGVSWJWKWLWMWRWNWOXLXJXKO
      NXKXIWSWPWTXCXDXHXJVBXFCWQXAXB $.
  $}

  ${
    $d A x $.  $d G x $.  $d W x $.  $d X x $.
    $( A simple graph with one vertex has no edges.  (Contributed by AV,
       18-Oct-2020.)  (Revised by AV, 21-Mar-2021.)  (Proof shortened by AV,
       2-Apr-2021.) $)
    usgr1vr $p |- ( ( A e. X /\ ( Vtx ` G ) = { A } )
                   -> ( G e. USGraph -> ( iEdg ` G ) = (/) ) ) $=
      ( vx wcel cvtx cfv csn wceq wa cusgr ciedg c0 cedg cuhgr chash cdm adantl
      c1 eqid c2 cv cle wbr cpw crab wf usgruhgr fveq2 hashsng sylan9eqr adantr
      cuspgr usgrislfuspgr simprbi lfuhgr1v0e syl3anc wb uhgriedg0edg0 mpbid ex
      syl ) ACEZBFGZAHZIZJZBKEZBLGZMIZVGVHJZBNGMIZVJVKBOEZVDPGZSIZVIQUADUBPGUCU
      DDVDUEUFZVIUGZVLVHVMVGBUHZRVGVOVHVFVCVNVEPGSVDVEPUIACUJUKULVHVQVGVHBUMEVQ
      DBVIVDVDTZVITZUNUORDVPBVIVDVSVTVPTUPUQVHVLVJURZVGVHVMWAVRBUSVBRUTVA $.

    $( A class with one (or no) vertex is a simple graph if and only if it has
       no edges.  (Contributed by Alexander van der Vekens, 13-Oct-2017.)
       (Revised by AV, 18-Oct-2020.) $)
    usgr1v $p |- ( ( G e. W /\ ( Vtx ` G ) = { A } )
                   -> ( G e. USGraph <-> ( iEdg ` G ) = (/) ) ) $=
      ( cvv wcel cvtx cfv csn wceq wa cusgr ciedg c0 wb usgr1vr adantrl simplrl
      wi ex simpl simpr usgr0e impbid snprc eqtrd usgr0vb syl2an2 sylbi pm2.61i
      wn simprr ) ADEZBCEZBFGZAHZIZJZBKEZBLGMIZNZRZULUQUTULUQJZURUSULUPURUSRUMA
      BDOPVBUSURVBUSJBCULUMUPUSQVBUSUAUBSUCSULUJUOMIZVAAUDVCUQUTUQUMVCUNMIUTUMU
      PTVCUQJUNUOMVCUMUPUKVCUQTUEBCUFUGSUHUI $.

    $( A class with one (or no) vertex is a simple graph if and only if it has
       no edges.  (Contributed by Alexander van der Vekens, 13-Oct-2017.)
       (Revised by AV, 18-Oct-2020.) $)
    usgr1v0edg $p |- ( ( G e. W /\ ( Vtx ` G ) = { A } /\ Fun ( iEdg ` G ) )
                       -> ( G e. USGraph <-> ( Edg ` G ) = (/) ) ) $=
      ( wcel cvtx cfv csn wceq ciedg wfun w3a cusgr c0 crn cedg wb 3adant3 wrel
      usgr1v funrel relrn0 syl 3ad2ant3 edgval eqcomi eqeq1i a1i 3bitrd ) BCDZB
      EFAGHZBIFZJZKZBLDZUKMHZUKNZMHZBOFZMHZUIUJUNUOPULABCSQULUIUOUQPZUJULUKRUTU
      KTUKUAUBUCUQUSPUMUPURMURUPBUDUEUFUGUH $.
  $}

  $( Lemma for ~ usgrexmpledg : all "edges" are different.  (Contributed by
     Alexander van der Vekens, 15-Aug-2017.) $)
  usgrexmpldifpr $p |- ( ( { 0 , 1 } =/= { 1 , 2 } /\ { 0 , 1 } =/= { 2 , 0 }
                /\ { 0 , 1 } =/= { 0 , 3 } ) /\ ( { 1 , 2 } =/= { 2 , 0 }
                /\ { 1 , 2 } =/= { 0 , 3 } /\ { 2 , 0 } =/= { 0 , 3 } ) ) $=
    ( cc0 c1 cpr c2 wne c3 w3a cz wcel wa wo 0z pm3.2i ax-1ne0 orci prneimg mp2
    1z 2z cn necomi 2ne0 1ne2 olci 3nn 1re 1lt3 ltneii 3pm3.2i 2re 2lt3 ) ABCZB
    DCZEZULDACZEZULAFCZEZGUMUOEZUMUQEZUOUQEZGUNUPURAHIZBHIZJZVCDHIZJZJABEZADEZJ
    ZBBEBDEZJZKUNVDVFVBVCLRMZVCVERSMZMVIVKVGVHBANUADAUBUAMOABBDHHHHPQVDVEVBJZJV
    HAAEZJZVJBAEZJZKUPVDVNVLVEVBSLMZMVRVPVJVQUCNMZUDABDAHHHHPQVDVBFTIZJZJVOAFEJ
    ZVQBFEZJZKURVDWBVLVBWALUEMZMWEWCVQWDNBFUFUGUHMZUDABAFHHHTPQUIUSUTVAVFVNJVRD
    DEDAEZJZKUSVFVNVMVSMVRWIVTOBDDAHHHHPQVFWBJWEWHDFEZJZKUTVFWBVMWFMWEWKWGOBDAF
    HHHTPQVNWBJWKWCKVAVNWBVSWFMWKWCWHWJUBDFUJUKUHMODAAFHHHTPQUIM $.

  ${
    $d x y E $.  $d e E $.  $d x y V $.  $d p x y $.  $d e p V $.
    usgrexmplef.v $e |- V = ( 0 ... 4 ) $.
    usgrexmplef.e $e |- E = <" { 0 , 1 } { 1 , 2 } { 2 , 0 } { 0 , 3 } "> $.
    $( Lemma for ~ usgrexmpl .  (Contributed by Alexander van der Vekens,
       15-Aug-2017.) $)
    usgrexmplef $p |- E : dom E -1-1-> { e e. ~P V | ( # ` e ) = 2 } $=
      ( cc0 c1 cpr c2 c3 chash cfv wceq wne wa wcel wi c4 mp2an cz vy vx vp cdm
      cun wf1o wf1 cv cpw crab w3a cs4 usgrexmpldifpr cvv s4f1o mp4an mp2 f1of1
      prex wf wbr wmo wal wfn crn wss id vex elpr cfz cn0 cle 0nn0 4nn0 0re 4re
      wo co 4pos ltleii elfz2nn0 mpbir3an eleqtrri 1nn0 1lt4 prelpwi syl5ibrcom
      1re eleq1 fveq2 prhash2ex syl6eq jca 2nn0 2re 2lt4 1ne2 cn wb 1nn hashprg
      2nn mpbi jaoi sylbi 2ne0 2z 0z 3nn0 3lt4 3ne0 necomi 3z elun eqeq1d elrab
      3re 3imtr4i ssriv syl6ss anim2i df-f anim1i dff12 mp2b ) BUDZFGHZGIHZHZIF
      HZFJHZHZUEZBUFZYFYMBUGZYFAUHZKLZIMZACUIZUJZBUGZYGYHNYGYJNYGYKNUKYHYJNYHYK
      NYJYKNUKOZBYGYHYJYKULMZYNUMEYGUNPYHUNPYJUNPYKUNPUUBUUCYNQQFGUSGIUSIFUSFJU
      SYGYHYJYKUNBUOUPUQYFYMBURYFYMBUTZUAUHUBUHBVAUAVBUBVCZOYFYTBUTZUUEOYOUUAUU
      DUUFUUEBYFVDZBVEZYMVFZOUUGUUHYTVFZOUUDUUFUUIUUJUUGUUIUUHYMYTUUIVGUCYMYTUC
      UHZYIPZUUKYLPZVQUUKYSPZUUKKLZIMZOZUUKYMPUUKYTPUULUUQUUMUULUUKYGMZUUKYHMZV
      QUUQUUKYGYHUCVHZVIUURUUQUUSUURUUNUUPFCPZGCPZUURUUNQFFRVJVRZCFUVCPFVKPRVKP
      ZFRVLVAVMVNFRVOVPVSVTFRWAWBDWCZGUVCCGUVCPGVKPUVDGRVLVAWDVNGRWHVPWEVTGRWAW
      BDWCZUVAUVBOUUNUURYGYSPFGCWFUUKYGYSWIWGSUURUUOYGKLIUUKYGKWJWKWLWMUUSUUNUU
      PUVBICPZUUSUUNQUVFIUVCCIUVCPIVKPUVDIRVLVAWNVNIRWOVPWPVTIRWAWBDWCZUVBUVGOU
      UNUUSYHYSPGICWFUUKYHYSWIWGSUUSUUOYHKLZIUUKYHKWJGINZUVIIMZWQGWRPIWRPUVJUVK
      WSWTXBGIWRWRXASXCWLWMXDXEUUMUUKYJMZUUKYKMZVQUUQUUKYJYKUUTVIUVLUUQUVMUVLUU
      NUUPUVGUVAUVLUUNQUVHUVEUVGUVAOUUNUVLYJYSPIFCWFUUKYJYSWIWGSUVLUUOYJKLZIUUK
      YJKWJIFNZUVNIMZXFITPFTPZUVOUVPWSXGXHIFTTXASXCWLWMUVMUUNUUPUVAJCPZUVMUUNQU
      VEJUVCCJUVCPJVKPUVDJRVLVAXIVNJRXQVPXJVTJRWAWBDWCUVAUVROUUNUVMYKYSPFJCWFUU
      KYKYSWIWGSUVMUUOYKKLZIUUKYKKWJFJNZUVSIMZJFXKXLUVQJTPUVTUWAWSXHXMFJTTXASXC
      WLWMXDXEXDUUKYIYLXNYRUUPAUUKYSYPUUKMYQUUOIYPUUKKWJXOXPXRXSXTYAYFYMBYBYFYT
      BYBXRYCUAUBYFYMBYDUAUBYFYTBYDXRYE $.
  $}

  ${
    usgrexmpl.v $e |- V = ( 0 ... 4 ) $.
    usgrexmpl.e $e |- E = <" { 0 , 1 } { 1 , 2 } { 2 , 0 } { 0 , 3 } "> $.
    usgrexmpl.g $e |- G = <. V , E >. $.
    $( Lemma for ~ usgrexmpl .  (Contributed by AV, 21-Oct-2020.) $)
    usgrexmpllem $p |- ( ( Vtx ` G ) = V /\ ( iEdg ` G ) = E ) $=
      ( cvtx cfv wceq ciedg wa cvv wcel cc0 c4 cfz eqeltri c1 cpr c2 co ovex c3
      cop cs4 cword s4cli elexi opvtxfv opiedgfv jca mp2an fveq2i anbi12i mpbir
      eqeq1i ) BGHZCIZBJHZAIZKCAUDZGHZCIZVAJHZAIZKZCLMZALMZVFCNOPUALDNOPUBQANRS
      ZRTSZTNSZNUCSZUEZLEVMLUFVIVJVKVLUGUHQVGVHKVCVEACLLUIACLLUJUKULURVCUTVEUQV
      BCBVAGFUMUPUSVDABVAJFUMUPUNUO $.

    $( The vertices ` 0 , 1 , 2 , 3 , 4 ` of the graph ` G = <. V , E >. ` .
       (Contributed by AV, 12-Jan-2020.)  (Revised by AV, 21-Oct-2020.) $)
    usgrexmplvtx $p |- ( Vtx ` G ) = ( { 0 , 1 , 2 } u. { 3 , 4 } ) $=
      ( cvtx cfv wceq ciedg wa cc0 c1 c2 ctp c3 c4 cpr cun usgrexmpllem id cfz
      co fz0to4untppr eqtri syl6eq adantr ax-mp ) BGHZCIZBJHAIZKUILMNOPQRSZIZAB
      CDEFTUJUMUKUJUICULUJUACLQUBUCULDUDUEUFUGUH $.

    $( The edges ` { 0 , 1 } , { 1 , 2 } , { 2 , 0 } , { 0 , 3 } ` of the graph
       ` G = <. V , E >. ` .  (Contributed by AV, 12-Jan-2020.)  (Revised by
       AV, 21-Oct-2020.) $)
    usgrexmpledg $p |- ( Edg ` G ) = ( { { 0 , 1 } , { 1 , 2 } }
                                       u. { { 2 , 0 } , { 0 , 3 } } ) $=
      ( cfv crn cc0 c1 cpr c2 c3 wceq cvv wcel wa wne prex pm3.2i cedg cun cvtx
      ciedg edgval usgrexmpllem simpri rneqi w3a cs4 usgrexmpldifpr s4f1o imp31
      cdm wf1o wf1 dff1o5 simprbi mp2b 3eqtri ) BUAGBUDGZHAHZIJKZJLKZKLIKZIMKZK
      UBZBUEVAABUCGCNVAANABCDEFUFUGUHVCOPZVDOPZQZVEOPZVFOPZQZQZVCVDRVCVERVCVFRU
      IVDVERVDVFRVEVFRUIQZQZAVCVDVEVFUJNZQAUNZVGAUOZVBVGNZVPVQVNVOVJVMVHVIIJSJL
      STVKVLLISIMSTTUKTETVNVOVQVSVCVDVEVFOAULUMVSVRVGAUPVTVRVGAUQURUSUT $.

    $d E e $.  $d G e $.  $d V e $.
    $( ` G ` is a simple graph of five vertices ` 0 , 1 , 2 , 3 , 4 ` , with
       edges ` { 0 , 1 } , { 1 , 2 } , { 2 , 0 } , { 0 , 3 } ` .  (Contributed
       by Alexander van der Vekens, 15-Aug-2017.)  (Revised by AV,
       21-Oct-2020.) $)
    usgrexmpl $p |- G e. USGraph $=
      ( ve cusgr wcel cdm cv cfv wceq cpw crab wf1 cvv wb eqid ax-mp chash opex
      c2 usgrexmplef cop eqeltri ciedg cvtx isusgrs wa usgrexmpllem simpr dmeqd
      pweq adantr rabeqdv f1eq123d syl6bb mpbir ) BHIZAJZGKUALUCMZGCNZOZAPZGACD
      EUDBQIZUTVERBCAUEQFCAUBUFVFUTBUGLZJZVBGBUHLZNZOZVGPZVEGQVGBVIVISVGSUIVICM
      ZVGAMZUJZVLVERABCDEFUKVOVHVAVKVDVGAVMVNULZVOVGAVPUMVOVBGVJVCVMVJVCMVNVICU
      NUOUPUQTURTUS $.
  $}

  ${
    $d e v $.
    griedg0prc.u $e |- U = { <. v , e >. | e : (/) --> (/) } $.
    $( The class of empty graphs (represented as ordered pairs) is a proper
       class.  (Contributed by AV, 27-Dec-2020.) $)
    griedg0prc $p |- U e/ _V $=
      ( cvv wnel c0 cv wf copab wex feq1 f0 ceqsexv2d opabn1stprc ax-mp wceq wb
      0ex neleq1 mpbir ) BEFZGGCHZIZACJZEFZUDCKUFUDGGGICGSGGUCGLGMNUDACOPBUEQUB
      UFRDBUEETPUA $.

    $d e g v $.  $d U g $.
    $( The class of all simple graphs is a superclass of the class of empty
       graphs represented as ordered pairs.  (Contributed by AV,
       27-Dec-2020.) $)
    griedg0ssusgr $p |- U C_ USGraph $=
      ( vg cusgr cv wcel cop wceq c0 wf wex copab eleq2i elopab bitri cvv vex
      wa opex a1i ciedg cfv opiedgfv mp2an biimpi syl5eq usgr0e adantl wb eleq1
      f0bi adantr mpbird exlimivv sylbi ssriv ) EBFEGZBHZUSAGZCGZIZJZKKVBLZTZCM
      AMZUSFHZUTUSVEACNZHVGBVIUSDOVEACUSPQVFVHACVFVHVCFHZVEVJVDVEVCRVCRHVEVAVBU
      AUBVEVCUCUDZVBKVARHVBRHVKVBJASCSVBVARRUEUFVEVBKJVBKUMUGUHUIUJVDVHVJUKVEUS
      VCFULUNUOUPUQUR $.
  $}

  ${
    $d e v $.
    $( The class of simple graphs is a proper class (and therefore, because of
       ~ prcssprc , the classes of multigraphs, pseudographs and hypergraphs
       are proper classes, too).  (Contributed by AV, 27-Dec-2020.) $)
    usgrprc $p |- USGraph e/ _V $=
      ( ve vv c0 cv copab cusgr wss wnel eqid griedg0ssusgr griedg0prc prcssprc
      wf cvv mp2an ) CCADMBAEZFGPNHFNHBPAPIZJBPAQKPFLO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subgraphs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c SubGraph $.

  $( Extend class notation with subgraphs. $)
  csubgr $a class SubGraph $.

  ${
    $d s g $.
    $( Define the class of the subgraph relation.  A class ` s ` is a
       _subgraph_ of a class ` g ` (the _supergraph_ of ` s ` ) if its vertices
       are also vertices of ` g ` , and its edges are also edges of ` g ` ,
       connecting vertices of ` s ` only (see section I.1 in [Bollobas] p. 2 or
       section 1.1 in [Diestel] p. 4).  The second condition is ensured by the
       requirement that the edge function of ` s ` is a restriction of the edge
       function of ` g ` having only vertices of ` s ` in its range.  Note that
       the domains of the edge functions of the subgraph and the supergraph
       should be compatible.  (Contributed by AV, 16-Nov-2020.) $)
    df-subgr $a |- SubGraph = { <. s , g >. | ( ( Vtx ` s ) C_ ( Vtx ` g )
                         /\ ( iEdg ` s ) = ( ( iEdg ` g ) |` dom ( iEdg ` s ) )
                         /\ ( Edg ` s ) C_ ~P ( Vtx ` s ) ) } $.

    $( The class of the subgraph relation is a relation.  (Contributed by AV,
       16-Nov-2020.) $)
    relsubgr $p |- Rel SubGraph $=
      ( vs vg cv cvtx cfv wss ciedg cdm cres wceq cedg csubgr df-subgr relopabi
      cpw w3a ) ACZDEZBCZDEFQGEZSGETHIJQKEROFPABLBAMN $.
  $}

  $( If a class is a subgraph of another class, both classes are sets.
     (Contributed by AV, 16-Nov-2020.) $)
  subgrv $p |- ( S SubGraph G -> ( S e. _V /\ G e. _V ) ) $=
    ( csubgr wbr cvv wcel relsubgr brrelexi brrelex2i jca ) ABCDAEFBEFABCGHABCG
    IJ $.

  ${
    $d G s g $.  $d S s g $.
    issubgr.v $e |- V = ( Vtx ` S ) $.
    issubgr.a $e |- A = ( Vtx ` G ) $.
    issubgr.i $e |- I = ( iEdg ` S ) $.
    issubgr.b $e |- B = ( iEdg ` G ) $.
    issubgr.e $e |- E = ( Edg ` S ) $.
    $( The property of a set to be a subgraph of another set.  (Contributed by
       AV, 16-Nov-2020.) $)
    issubgr $p |- ( ( G e. W /\ S e. U ) -> ( S SubGraph G
                       <-> ( V C_ A /\ I = ( B |` dom I ) /\ E C_ ~P V ) ) ) $=
      ( cvtx cfv wss ciedg wceq fveq2 vs vg wcel wa csubgr wbr cdm cres cpw w3a
      cedg wb cv adantr sseq12d dmeqd reseq12d eqeq12d pweqd 3anbi123d df-subgr
      adantl brabga ancoms sseq12i dmeqi reseq12i eqeq12i 3anbi123i syl6bbr
      pweqi ) FIUCZCDUCZUDCFUEUFZCOPZFOPZQZCRPZFRPZVRUGZUHZSZCUKPZVOUIZQZUJZHAQ
      ZGBGUGZUHZSZEHUIZQZUJVMVLVNWFULUAUMZOPZUBUMZOPZQZWMRPZWORPZWRUGZUHZSZWMUK
      PZWNUIZQZUJWFUAUBCFUEDIWMCSZWOFSZUDZWQVQXBWBXEWEXHWNVOWPVPXFWNVOSXGWMCOTZ
      UNXGWPVPSXFWOFOTVBUOXHWRVRXAWAXFWRVRSXGWMCRTZUNXHWSVSWTVTXGWSVSSXFWOFRTVB
      XFWTVTSXGXFWRVRXJUPUNUQURXFXEWEULXGXFXCWCXDWDWMCUKTXFWNVOXIUSUOUNUTUBUAVA
      VCVDWGVQWJWBWLWEHVOAVPJKVEGVRWIWALBVSWHVTMGVRLVFVGVHEWCWKWDNHVOJVKVEVIVJ
      $.

    $( The property of a set to be a subgraph of a set whose edge function is
       actually a function.  (Contributed by AV, 20-Nov-2020.) $)
    issubgr2 $p |- ( ( G e. W /\ Fun B /\ S e. U ) -> ( S SubGraph G
                       <-> ( V C_ A /\ I C_ B /\ E C_ ~P V ) ) ) $=
      ( wcel wfun w3a csubgr wbr wss cdm cres wceq cpw wb issubgr 3adant2 resss
      sseq1 mpbiri wi wa funssres eqcomd ex 3ad2ant2 impbid2 3anbi2d bitrd ) FI
      OZBPZCDOZQZCFRSZHATZGBGUAZUBZUCZEHUDTZQZVEGBTZVIQUTVBVDVJUEVAABCDEFGHIJKL
      MNUFUGVCVHVKVEVIVCVHVKVHVKVGBTBVFUHGVGBUIUJVAUTVKVHUKVBVAVKVHVAVKULVGGBGU
      MUNUOUPUQURUS $.

    $( The properties of a subgraph.  (Contributed by AV, 19-Nov-2020.) $)
    subgrprop $p |- ( S SubGraph G
                      -> ( V C_ A /\ I = ( B |` dom I ) /\ E C_ ~P V ) ) $=
      ( cvv wcel wa csubgr wbr wss cdm cres cpw subgrv wi issubgr biimpd ancoms
      wceq w3a mpcom ) CMNZEMNZOCEPQZGARFBFSTUGDGUARUHZCEUBUKUJULUMUCUKUJOULUMA
      BCMDEFGMHIJKLUDUEUFUI $.

    $( The properties of a subgraph:  If ` S ` is a subgraph of ` G ` , its
       vertices are also vertices of ` G ` , and its edges are also edges of
       ` G ` , connecting vertices of the subgraph only.  (Contributed by AV,
       19-Nov-2020.) $)
    subgrprop2 $p |- ( S SubGraph G -> ( V C_ A /\ I C_ B /\ E C_ ~P V ) ) $=
      ( csubgr wbr wss cdm cres wceq cpw w3a subgrprop resss mpbiri 3anim2i syl
      sseq1 ) CEMNGAOZFBFPZQZRZDGSOZTUGFBOZUKTABCDEFGHIJKLUAUJULUGUKUJULUIBOBUH
      UBFUIBUFUCUDUE $.
  $}

  ${
    $d S e $.  $d V e $.
    uhgrissubgr.v $e |- V = ( Vtx ` S ) $.
    uhgrissubgr.a $e |- A = ( Vtx ` G ) $.
    uhgrissubgr.i $e |- I = ( iEdg ` S ) $.
    uhgrissubgr.b $e |- B = ( iEdg ` G ) $.
    $( The property of a hypergraph to be a subgraph.  (Contributed by AV,
       19-Nov-2020.) $)
    uhgrissubgr $p |- ( ( G e. W /\ Fun B /\ S e. UHGraph )
                        -> ( S SubGraph G <-> ( V C_ A /\ I C_ B ) ) ) $=
      ( ve wcel cuhgr w3a wss wa cfv cpw wceq wfun csubgr wbr subgrprop2 3simpa
      cedg eqid syl cres simprl simp2 simpr funssres syl2an eqcomd cvtx edguhgr
      cdm cv ex pweqi eleq2i syl6ibr ssrdv 3ad2ant3 adantr wb issubgr mpbir3and
      3adant2 impbid2 ) DGMZBUAZCNMZOZCDUBUCZFAPZEBPZQZVPVQVRCUFRZFSZPZOVSABCVT
      DEFHIJKVTUGZUDVQVRWBUEUHVOVSVPVOVSQZVPVQEBEURUIZTZWBVOVQVRUJWDWEEVOVMVRWE
      ETVSVLVMVNUKVQVRULBEUMUNUOVOWBVSVNVLWBVMVNLVTWAVNLUSZVTMZWGCUPRZSZMZWGWAM
      VNWHWKWGCUQUTWAWJWGFWIHVAVBVCVDVEVFVOVPVQWFWBOVGZVSVLVNWLVMABCNVTDEFGHIJK
      WCVHVJVFVIUTVK $.
  $}

  ${
    subgrprop3.v $e |- V = ( Vtx ` S ) $.
    subgrprop3.a $e |- A = ( Vtx ` G ) $.
    subgrprop3.e $e |- E = ( Edg ` S ) $.
    subgrprop3.b $e |- B = ( Edg ` G ) $.
    $( The properties of a subgraph:  If ` S ` is a subgraph of ` G ` , its
       vertices are also vertices of ` G ` , and its edges are also edges of
       ` G ` .  (Contributed by AV, 19-Nov-2020.) $)
    subgrprop3 $p |- ( S SubGraph G -> ( V C_ A /\ E C_ B ) ) $=
      ( wss ciedg cfv wa eqid syl crn cvv wcel cedg wbr cpw w3a subgrprop2 rnss
      csubgr 3simpa simprl ad2antll wb subgrv wceq edgval syl5eq sseq12d adantr
      a1i mpbird jca mpdan ) CEUFUAZFAKZCLMZELMZKZNZVBDBKZNVAVBVEDFUBKZUCVFAVDC
      DEVCFGHVCOVDOIUDVBVEVHUGPVAVFNZVBVGVAVBVEUHVIVGVCQZVDQZKZVEVLVAVBVCVDUEUI
      VAVGVLUJZVFVACRSERSNZVMCEUKVNDVJBVKVNDCTMZVJIVOVJULVNCUMUQUNVNBETMZVKJVPV
      KULVNEUMUQUNUOPUPURUSUT $.
  $}

  $( An empty graph consisting of a subset of vertices of a graph (and having
     no edges) is a subgraph of the graph.  (Contributed by AV, 17-Nov-2020.)
     (Proof shortened by AV, 17-Dec-2020.) $)
  egrsubgr $p |- ( ( ( G e. W /\ S e. U ) /\ ( Vtx ` S ) C_ ( Vtx ` G )
                     /\ ( Fun ( iEdg ` S ) /\ ( Edg ` S ) = (/) ) )
                   -> S SubGraph G ) $=
    ( wcel wa cvtx cfv wss ciedg wfun cedg c0 wceq w3a cdm cres wb eqid adantl
    csubgr wbr cpw simp2 edg0iedg0 res0 eqcomi id syl6eq reseq2d 3eqtr4a syl6bi
    dmeq dm0 impr 3adant2 0ss sseq1 mpbiri 3ad2ant3 issubgr 3ad2ant1 mpbir3and
    ) CDEABEFZAGHZCGHZIZAJHZKZALHZMNZFZOACUAUBZVGVHCJHZVHPZQZNZVJVEUCZIZVDVGVLU
    DVDVLVQVGVDVIVKVQVDVIFVKVHMNZVQVIVKVTRVDVJAVHVHSZVJSZUETVTMVNMQZVHVPWCMVNUF
    UGVTUHVTVOMVNVTVOMPMVHMUMUNUIUJUKULUOUPVLVDVSVGVKVSVIVKVSMVRIVRUQVJMVRURUST
    UTVDVGVMVGVQVSORVLVFVNABVJCVHVEDVESVFSWAVNSWBVAVBVC $.

  $( The null graph (represented by an empty set) is a subgraph of all graphs.
     (Contributed by AV, 17-Nov-2020.) $)
  0grsubgr $p |- ( G e. W -> (/) SubGraph G ) $=
    ( wcel c0 csubgr wbr cvtx cfv wss cdm cres wceq cpw 0ss cvv eqcomi iedgval0
    ciedg eqid crn w3a dm0 reseq2i res0 eqtr2i 3pm3.2i 0ex vtxval0 edgval rneqi
    wb cedg rn0 3eqtrri issubgr mpan2 mpbiri ) ABCZDAEFZDAGHZIZDARHZDJZKZLZDDMZ
    IZUAZVAVEVGUTNVDVBDKDVCDVBUBUCVBUDUEVFNUFURDOCUSVHUKUGUTVBDODADDBDGHDUHPUTS
    DRHZDQPVBSDULHVITDTDDUIVIDQUJUMUNUOUPUQ $.

  $( The null graph (as hypergraph) is a subgraph of all graphs.  (Contributed
     by AV, 17-Nov-2020.)  (Proof shortened by AV, 28-Nov-2020.) $)
  0uhgrsubgr $p |- ( ( G e. W /\ S e. UHGraph /\ ( Vtx ` S ) = (/) )
                     -> S SubGraph G ) $=
    ( wcel cuhgr cvtx cfv c0 wceq w3a wss ciedg wfun cedg csubgr wbr 3simpa crn
    wa wi 0ss sseq1 mpbiri 3ad2ant3 eqid uhgrfun 3ad2ant2 edgval uhgr0vb syl6eq
    rneq rn0 syl6bi ex pm2.43a a1i 3imp syl5eq egrsubgr syl112anc ) BCDZAEDZAFG
    ZHIZJZVAVBSVCBFGZKZALGZMZANGZHIABOPVAVBVDQVDVAVGVBVDVGHVFKVFUAVCHVFUBUCUDVB
    VAVIVDVHAVHUEUFUGVEVJVHRZHAUHVAVBVDVKHIZVBVDVLTTVAVDVBVLVBVDVBVLTVBVDSVBVHH
    IZVLAEUIVMVKHRHVHHUKULUJUMUNUOUPUQURAEBCUSUT $.

  $( A hypergraph is a subgraph of itself.  (Contributed by AV, 17-Nov-2020.)
     (Proof shortened by AV, 21-Nov-2020.) $)
  uhgrsubgrself $p |- ( G e. UHGraph -> G SubGraph G ) $=
    ( cuhgr wcel csubgr wbr cvtx cfv wss ciedg wa ssid pm3.2i wfun eqid uhgrfun
    wb id uhgrissubgr mpd3an23 mpbiri ) ABCZAADEZAFGZUCHZAIGZUEHZJZUDUFUCKUEKLU
    AUEMUAUBUGPUEAUENZOUAQUCUEAAUEUCBUCNZUIUHUHRST $.

  $( The edge function of a subgraph of a graph whose edge function is actually
     a function is a function.  (Contributed by AV, 20-Nov-2020.) $)
  subgrfun $p |- ( ( Fun ( iEdg ` G ) /\ S SubGraph G )
                   -> Fun ( iEdg ` S ) ) $=
    ( csubgr wbr ciedg cfv wfun cvtx wss cedg cpw w3a subgrprop2 funss 3ad2ant2
    wi eqid syl impcom ) ABCDZBEFZGZAEFZGZTAHFZBHFZIZUCUAIZAJFZUEKIZLUBUDPZUFUA
    AUIBUCUEUEQUFQUCQUAQUIQMUHUGUKUJUCUANORS $.

  $( The edge function of a subgraph of a hypergraph is a function.
     (Contributed by AV, 16-Nov-2020.)  (Proof shortened by AV,
     20-Nov-2020.) $)
  subgruhgrfun $p |- ( ( G e. UHGraph /\ S SubGraph G )
                       -> Fun ( iEdg ` S ) ) $=
    ( cuhgr wcel ciedg cfv wfun csubgr wbr eqid uhgrfun subgrfun sylan ) BCDBEF
    ZGABHIAEFGNBNJKABLM $.

  $( An element of the domain of the edge function of a subgraph is an element
     of the domain of the edge function of the supergraph.  (Contributed by AV,
     20-Nov-2020.) $)
  subgreldmiedg $p |- ( ( S SubGraph G /\ X e. dom ( iEdg ` S ) )
                        -> X e. dom ( iEdg ` G ) ) $=
    ( csubgr wbr cfv cdm wcel cvtx wss cedg cpw w3a wi eqid subgrprop2 3ad2ant2
    ciedg dmss sseld syl imp ) ABDEZCARFZGZHZCBRFZGZHZUCAIFZBIFZJZUDUGJZAKFZUJL
    JZMZUFUINUKUGAUNBUDUJUJOUKOUDOUGOUNOPUPUEUHCUMULUEUHJUOUDUGSQTUAUB $.

  ${
    subgruhgredgd.v $e |- V = ( Vtx ` S ) $.
    subgruhgredgd.i $e |- I = ( iEdg ` S ) $.
    subgruhgredgd.g $e |- ( ph -> G e. UHGraph ) $.
    subgruhgredgd.s $e |- ( ph -> S SubGraph G ) $.
    subgruhgredgd.x $e |- ( ph -> X e. dom I ) $.
    $( An edge of a subgraph of a hypergraph is a nonempty subset of its
       vertices.  (Contributed by AV, 17-Nov-2020.)  (Revised by AV,
       21-Nov-2020.) $)
    subgruhgredgd $p |- ( ph -> ( I ` X ) e. ( ~P V \ { (/) } ) ) $=
      ( cfv wss ciedg c0 wcel eqid syl cdm adantr cvtx cedg cpw w3a cdif csubgr
      csn wbr subgrprop2 wa wne simpr3 wfun cuhgr subgruhgrfun syl2anc syl6eleq
      crn dmeqi jca fveq1i fvelrn syl5eqel edgval syl6eleqr sseldd wceq uhgrfun
      simpr2 funssfv eqcomd syl3anc funfn subgreldmiedg uhgrn0 eqnetrd sylanbrc
      wfn sylib eldifsn mpdan ) AECUALZMZDCNLZMZBUBLZEUCZMZUDZFDLZWGOUGUEPZABCU
      FUHZWIJWBWDBWFCDEGWBQHWDQZWFQUIRAWIUJZWJWGPWJOUKWKWNWFWGWJAWCWEWHULWNWJBN
      LZURZWFWNWOUMZFWOSZPZUJZWJWPPAWTWIAWQWSACUNPZWLWQIJBCUOUPAFDSZWRKDWOHUSUQ
      ZUTTWTWJFWOLWPFDWOHVAFWOVBVCRBVDVEVFWNWJFWDLZOWNWDUMZWEFXBPZWJXDVGAXEWIAX
      AXEIWDCWMVHRZTAWCWEWHVIAXFWIKTXEWEXFUDXDWJFWDDVJVKVLWNXAWDWDSZVRZFXHPZXDO
      UKAXAWIITAXIWIAXEXIXGWDVMVSTAXJWIAWLWSXJJXCBCFVNUPTXHWDFCWMVOVLVPWJWGOVTV
      QWA $.
  $}

  ${
    $d I e $.  $d V e $.  $d X e $.
    subumgredg2.v $e |- V = ( Vtx ` S ) $.
    subumgredg2.i $e |- I = ( iEdg ` S ) $.
    $( An edge of a subgraph of a multigraph connects exactly two different
       vertices.  (Contributed by AV, 26-Nov-2020.) $)
    subumgredg2 $p |- ( ( S SubGraph G /\ G e. UMGraph /\ X e. dom I )
                      -> ( I ` X ) e. { e e. ~P V | ( # ` e ) = 2 } ) $=
      ( wcel cdm w3a cfv chash c2 wceq cpw crab 3ad2ant2 wss eqid csubgr wbr cv
      cumgr c0 cdif cuhgr umgruhgr simp1 simp3 subgruhgredgd ciedg wfun uhgrfun
      csn syl cvtx cedg subgrprop2 simp2d 3ad2ant1 funssfv eqcomd syl3anc simp2
      fveq2d wi dmeqi eleq2i subgreldmiedg ex syl5bi a1d umgredg2 syl2anc eqtrd
      3imp fveq2 eqeq1d elrab sylanbrc prprrab syl6eleq ) ACUAUBZCUDIZFDJZIZKZF
      DLZBUCZMLZNOZBEPZUEUOUFZQZWLBWMQWHWIWNIWIMLZNOZWIWOIWHACDEFGHWEWDCUGIZWGC
      UHZRWDWEWGUIWDWEWGUJZUKWHWPFCULLZLZMLZNWHWIXBMWHXAUMZDXASZWGWIXBOWEWDXDWG
      WEWRXDWSXACXATZUNUPRWDWEXEWGWDAUQLZCUQLZSXEAURLZXGPSXHXAAXICDXGXGTXHTZHXF
      XITUSUTVAWTXDXEWGKXBWIFXADVBVCVDVFWHWEFXAJIZXCNOWDWEWGVEWDWEWGXKWDWGXKVGW
      EWGFAULLZJZIZWDXKWFXMFDXLHVHVIWDXNXKACFVJVKVLVMVQXACXHFXJXFVNVOVPWLWQBWIW
      NWJWIOWKWPNWJWIMVRVSVTWABEWBWC $.
  $}

  ${
    $d G x $.  $d S x $.
    $( A subgraph of a hypergraph is a hypergraph.  (Contributed by AV,
       16-Nov-2020.)  (Proof shortened by AV, 21-Nov-2020.) $)
    subuhgr $p |- ( ( G e. UHGraph /\ S SubGraph G ) -> S e. UHGraph ) $=
      ( vx cuhgr wcel csubgr wbr cvtx cfv wss ciedg cedg cpw w3a wa eqid adantl
      cvv adantr syl wi subgrprop2 cdm c0 csn cdif wf wfn crn wfun subgruhgrfun
      ancoms funfn sylib cv wral simplrr simpr subgruhgredgd ralrimiva fnfvrnss
      simplrl syl2anc df-f sylanbrc wb subgrv isuhgr mpbird ex anabsi8 ) BDEZAB
      FGZADEZVMAHIZBHIZJAKIZBKIZJALIZVOMZJNZVMVLOZVNUAVPVRAVSBVQVOVOPZVPPVQPZVR
      PVSPUBWAWBVNWAWBOZVNVQUCZVTUDUEUFZVQUGZWEVQWFUHZVQUIWGJZWHWEVQUJZWIWBWKWA
      VLVMWKABUKULQVQUMUNZWEWICUOZVQIWGEZCWFUPWJWLWEWNCWFWEWMWFEZOABVQVOWMWCWDW
      AVMVLWOUQWAVMVLWOVBWEWOURUSUTCWFWGVQVAVCWFWGVQVDVEWBVNWHVFZWAVMWPVLVMAREZ
      BREZOWPABVGWQWPWRRVQAVOWCWDVHSTSQVIVJTVK $.

    $d S e x $.
    $( A subgraph of a pseudograph is a pseudograph.  (Contributed by AV,
       16-Nov-2020.)  (Proof shortened by AV, 21-Nov-2020.) $)
    subupgr $p |- ( ( G e. UPGraph /\ S SubGraph G ) -> S e. UPGraph ) $=
      ( ve vx cupgr wcel wbr cvtx cfv wss wa wi eqid chash c2 cle adantl adantr
      syl cvv csubgr ciedg cedg cpw w3a subgrprop2 cdm cv csn cdif crab wfn crn
      c0 wfun cuhgr upgruhgr subgruhgrfun sylan ancoms funfn wral anim2i ancomd
      wf sylib anim1i simplld simpl subgruhgredgd wceq uhgrfun ad2antll simpll2
      funssfv syl3anc eqcomd fveq2d subgreldmiedg ex upgrle expcom syld eqbrtrd
      simpr imp fveq2 breq1d sylanbrc ralrimiva fnfvrnss syl2anc df-f wb subgrv
      elrab isupgr mpbird anabsi8 ) BEFZABUAGZAEFZXAAHIZBHIZJZAUBIZBUBIZJZAUCIZ
      XCUDZJZUEZXAWTKZXBLXDXGAXIBXFXCXCMZXDMZXFMZXGMZXIMUFXLXMXBXLXMKZXBXFUGZCU
      HZNIZOPGZCXJUNUIUJZUKZXFVEZXRXFXSULZXFUMYDJZYEXMYFXLXMXFUOZYFWTXAYHWTBUPF
      ZXAYHBUQZABURUSUTXFVAVFQZXRYFDUHZXFIZYDFZDXSVBYGYKXRYNDXSXRYLXSFZKZYMYCFY
      MNIZOPGZYNYPABXFXCYLXNXPYPYIXAYOXRYIXAKYOXRXAYIXMXAYIKXLWTYIXAYJVCQVDVGVH
      XRXAYOXMXAXLXAWTVIQRXRYOWEZVJYPYQYLXGIZNIZOPYPYMYTNYPYTYMYPXGUOZXHYOYTYMV
      KXRUUBYOWTUUBXLXAWTYIUUBYJXGBXQVLSZVMRXEXHXKXMYOVNYSYLXGXFVOVPVQVRXRYOUUA
      OPGZXRYOYLXGUGZFZUUDXMYOUUFLZXLXAUUGWTXAYOUUFABYLVSVTRQWTUUFUUDLXLXAUUFWT
      UUDUUFWTKWTXGUUEULZUUFUUDUUFWTWEWTUUHUUFWTUUBUUHUUCXGVAVFQUUFWTVIUUEXGYLB
      XDXOXQWAVPWBVMWCWFWDYBYRCYMYCXTYMVKYAYQOPXTYMNWGWHWPWIWJDXSYDXFWKWLXSYDXF
      WMWIXMXBYEWNZXLXAUUIWTXAATFZBTFZKUUIABWOUUJUUIUUKCTXFAXCXNXPWQRSRQWRVTSWS
      $.

    $( A subgraph of a multigraph is a multigraph.  (Contributed by AV,
       26-Nov-2020.) $)
    subumgr $p |- ( ( G e. UMGraph /\ S SubGraph G ) -> S e. UMGraph ) $=
      ( ve vx cumgr wcel csubgr wbr cvtx cfv wss ciedg cedg cpw w3a wa eqid cvv
      cv syl wi subgrprop2 cdm chash c2 wceq crab wf wfn crn cuhgr subgruhgrfun
      wfun umgruhgr sylan ancoms funfn sylib adantl simplrl simplrr subumgredg2
      wral simpr syl3anc ralrimiva fnfvrnss syl2anc df-f sylanbrc subgrv adantr
      wb isumgrs ad2antrl mpbird ex anabsi8 ) BEFZABGHZAEFZVTAIJZBIJZKALJZBLJZK
      AMJZWBNZKOZVTVSPZWAUAWCWEAWFBWDWBWBQZWCQWDQZWEQWFQUBWHWIWAWHWIPZWAWDUCZCS
      UDJUEUFCWGUGZWDUHZWLWDWMUIZWDUJWNKZWOWIWPWHWIWDUMZWPVSVTWRVSBUKFVTWRBUNAB
      ULUOUPWDUQURUSZWLWPDSZWDJWNFZDWMVCWQWSWLXADWMWLWTWMFZPVTVSXBXAWHVTVSXBUTW
      HVTVSXBVAWLXBVDACBWDWBWTWJWKVBVEVFDWMWNWDVGVHWMWNWDVIVJVTWAWOVMZWHVSVTARF
      ZBRFZPXCABVKXDXCXECRWDAWBWJWKVNVLTVOVPVQTVR $.

    $d G e $.  $d G y $.
    $( A subgraph of a simple graph is a simple graph.  (Contributed by AV,
       16-Nov-2020.)  (Proof shortened by AV, 27-Nov-2020.) $)
    subusgr $p |- ( ( G e. USGraph /\ S SubGraph G ) -> S e. USGraph ) $=
      ( ve vx vy cusgr wcel cvtx cfv wss ciedg cpw wa eqid cv adantl adantr syl
      wfun cvv csubgr wbr cedg w3a wi subgrprop2 cdm chash c2 wceq crab wf ccnv
      wf1 wfn cuhgr usgruhgr subgruhgrfun sylan ancoms funfn sylib wral simplrl
      cumgr usgrumgr simpr subumgredg2 syl3anc ralrimiva fnfvrnss df-f sylanbrc
      crn syl2anc simp2 usgrfs df-f1 anim1i sylbi anim12ci df-3an sylibr f1ssf1
      ffun wb subgrv isusgrs mpbird ex anabsi8 ) BFGZABUAUBZAFGZWMAHIZBHIZJZAKI
      ZBKIZJZAUCIZWOLZJZUDZWMWLMZWNUEWPWSAXABWRWOWONZWPNZWRNZWSNZXANUFXDXEWNXDX
      EMZWNWRUGZCOUHIUIUJCXBUKZWRUNZXJXKXLWRULZWRUMSZXMXJWRXKUOZWRVNXLJZXNXEXPX
      DXEWRSZXPWLWMXRWLBUPGWMXRBUQABURUSUTWRVAVBPZXJXPDOZWRIXLGZDXKVCXQXSXJYADX
      KXJXTXKGZMWMBVEGZYBYAXDWMWLYBVDXJYCYBXEYCXDWLYCWMBVFPPQXJYBVGACBWRWOXTXFX
      HVHVIVJDXKXLWRVKVOXKXLWRVLVMXJWSSZWSUMSZWTUDZXOXJYDYEMZWTMYFXDWTXEYGWQWTX
      CVPWLYGWMWLWSUGZEOUHIUIUJEWPLUKZWSUNZYGEWSBWPXGXIVQYJYHYIWSULZYEMYGYHYIWS
      VRYKYDYEYHYIWSWEVSVTRPWAYDYEWTWBWCWSWRWDRXKXLWRVRVMXEWNXMWFZXDWMYLWLWMATG
      ZBTGZMYLABWGYMYLYNCTWRAWOXFXHWHQRQPWIWJRWK $.
  $}

  ${
    uhgrspan.v $e |- V = ( Vtx ` G ) $.
    uhgrspan.e $e |- E = ( iEdg ` G ) $.
    uhgrspan.s $e |- ( ph -> S e. W ) $.
    uhgrspan.q $e |- ( ph -> ( Vtx ` S ) = V ) $.
    uhgrspan.r $e |- ( ph -> ( iEdg ` S ) = ( E |` A ) ) $.
    ${
      $d S e i $.  $d ph e i $.
      uhgrspan.g $e |- ( ph -> G e. UHGraph ) $.
      $( Lemma for ~ uhgrspansubgr :  The edges of the graph ` S ` obtained by
         removing some edges of a hypergraph ` G ` are subsets of its vertices
         (a spanning subgraph, see comment for ~ uhgrspansubgr .  (Contributed
         by AV, 18-Nov-2020.) $)
      uhgrspansubgrlem $p |- ( ph -> ( Edg ` S ) C_ ~P ( Vtx ` S ) ) $=
        ( ve vi cfv cpw wcel cdm wfun cedg cvtx cv ciedg crn edgval eleq2i wceq
        wrex cres cuhgr uhgrfun funres 3syl funeqd mpbird elrnrexdmb syl adantr
        wb fveq1d cin dmeqd dmres syl6eq eleq2d elinel1 syl6bi imp fvresd eqtrd
        wa wss elinel2 uhgrss syl2an2r pweqd fvex elpw eqeltrd eleq1 syl5ibrcom
        syl6bb rexlimdva sylbid syl5bi ssrdv ) ANCUAPZCUBPZQZNUCZWHRWKCUDPZUEZR
        ZAWKWJRZWHWMWKCUFUGAWNWKOUCZWLPZUHZOWLSZUIZWOAWLTZWNWTUTAXADBUJZTZAEUKR
        ZDTXCMDEIULBDUMUNAWLXBLUOUPOWLWKUQURAWRWOOWSAWPWSRZVLZWOWRWQWJRXFWQWPDP
        ZWJXFWQWPXBPXGXFWPWLXBAWLXBUHXELUSVAXFWPBDAXEWPBRZAXEWPBDSZVBZRZXHAWSXJ
        WPAWSXBSXJAWLXBLVCDBVDVEVFZWPBXIVGVHVIVJVKXFXGWJRZXGFVMZAXDXEWPXIRZXNMA
        XEXOAXEXKXOXLWPBXIVNVHVIDWPEFHIVOVPXFXMXGFQZRZXNAXMXQUTXEAWJXPXGAWIFKVQ
        VFUSXGFWPDVRVSWCUPVTWKWQWJWAWBWDWEWFWG $.

      $( A spanning subgraph ` S ` of a hypergraph ` G ` is actually a subgraph
         of ` G ` .  A subgraph ` S ` of a graph ` G ` which has the same
         vertices as ` G ` and is obtained by removing some edges of ` G ` is
         called a _spanning subgraph_ (see section I.1 in [Bollobas] p. 2 and
         section 1.1 in [Diestel] p. 4).  Formally, the edges are "removed" by
         restricting the edge function of the original graph by an arbitrary
         class (which actually needs not to be a subset of the domain of the
         edge function).  (Contributed by AV, 18-Nov-2020.)  (Proof shortened
         by AV, 21-Nov-2020.) $)
      uhgrspansubgr $p |- ( ph -> S SubGraph G ) $=
        ( csubgr wbr cfv wss cuhgr wcel eqid cvtx ciedg cedg ssid syl5sseq cres
        cpw resss syl6eqss uhgrspansubgrlem w3a wb uhgrfun syl issubgr2 syl3anc
        wfun mpbir3and ) ACENOZCUAPZFQZCUBPZDQZCUCPZUTUGQZAUTUTFUTUDKUEAVBDBUFD
        LDBUHUIABCDEFGHIJKLMUJAERSZDUQZCGSUSVAVCVEUKULMAVFVGMDEIUMUNJFDCGVDEVBU
        TRUTTHVBTIVDTUOUPUR $.

      $( A spanning subgraph ` S ` of a hypergraph ` G ` is a hypergraph.
         (Contributed by AV, 11-Oct-2020.)  (Proof shortened by AV,
         18-Nov-2020.) $)
      uhgrspan $p |- ( ph -> S e. UHGraph ) $=
        ( cuhgr wcel csubgr wbr uhgrspansubgr subuhgr syl2anc ) AENOCEPQCNOMABC
        DEFGHIJKLMRCEST $.
    $}

    ${
      upgrspan.g $e |- ( ph -> G e. UPGraph ) $.
      $( A spanning subgraph ` S ` of a pseudograph ` G ` is a pseudograph.
         (Contributed by AV, 11-Oct-2020.)  (Proof shortened by AV,
         18-Nov-2020.) $)
      upgrspan $p |- ( ph -> S e. UPGraph ) $=
        ( cupgr wcel csubgr wbr cuhgr upgruhgr syl uhgrspansubgr subupgr
        syl2anc ) AENOZCEPQCNOMABCDEFGHIJKLAUDEROMESTUACEUBUC $.
    $}

    ${
      umgrspan.g $e |- ( ph -> G e. UMGraph ) $.
      $( A spanning subgraph ` S ` of a multigraph ` G ` is a multigraph.
         (Contributed by AV, 27-Nov-2020.) $)
      umgrspan $p |- ( ph -> S e. UMGraph ) $=
        ( cumgr wcel csubgr wbr cuhgr umgruhgr syl uhgrspansubgr subumgr
        syl2anc ) AENOZCEPQCNOMABCDEFGHIJKLAUDEROMESTUACEUBUC $.
    $}

    usgrspan.g $e |- ( ph -> G e. USGraph ) $.
    $( A spanning subgraph ` S ` of a simple graph ` G ` is a simple graph.
       (Contributed by AV, 15-Oct-2020.)  (Revised by AV, 16-Oct-2020.)  (Proof
       shortened by AV, 18-Nov-2020.) $)
    usgrspan $p |- ( ph -> S e. USGraph ) $=
      ( cusgr wcel csubgr wbr cuhgr usgruhgr syl uhgrspansubgr subusgr syl2anc
      ) AENOZCEPQCNOMABCDEFGHIJKLAUDEROMESTUACEUBUC $.
  $}

  ${
    uhgrspanop.v $e |- V = ( Vtx ` G ) $.
    uhgrspanop.e $e |- E = ( iEdg ` G ) $.
    $( A spanning subgraph of a hypergraph represented by an ordered pair is a
       hypergraph.  (Contributed by Alexander van der Vekens, 27-Dec-2017.)
       (Revised by AV, 11-Oct-2020.) $)
    uhgrspanop $p |- ( G e. UHGraph -> <. V , ( E |` A ) >. e. UHGraph ) $=
      ( cuhgr wcel cres cop cvv opex a1i cvtx cfv wceq fvex eqeltri ciedg mp2an
      resex opvtxfv opiedgfv id uhgrspan ) CGHZADBAIZJZBCDKEFUHKHUFDUGLMUHNODPZ
      UFDKHZUGKHZUIDCNOKECNQRZBABCSOKFCSQRUAZUGDKKUBTMUHSOUGPZUFUJUKUNULUMUGDKK
      UCTMUFUDUE $.

    $d A g $.  $d E g $.  $d G g $.  $d V g $.
    $( A spanning subgraph of a pseudograph represented by an ordered pair is a
       pseudograph.  (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by
       AV, 13-Oct-2020.) $)
    upgrspanop $p |- ( G e. UPGraph -> <. V , ( E |` A ) >. e. UPGraph ) $=
      ( vg cupgr wcel cvv cres cv cvtx cfv wceq ciedg wa a1i fvex eqeltri simpl
      wi vex simprl simprr upgrspan ex alrimiv resex gropeld ) CHIZHJGBAKZDJUKG
      LZMNDOZUMPNULOZQZUMHIZUBGUKUPUQUKUPQZAUMBCDJEFUMJIURGUCRUKUNUOUDUKUNUOUEU
      KUPUAUFUGUHDJIUKDCMNJECMSTRULJIUKBABCPNJFCPSTUIRUJ $.

    $( A spanning subgraph of a multigraph represented by an ordered pair is a
       multigraph.  (Contributed by AV, 27-Nov-2020.) $)
    umgrspanop $p |- ( G e. UMGraph -> <. V , ( E |` A ) >. e. UMGraph ) $=
      ( vg cumgr wcel cvv cres cv cvtx cfv wceq ciedg wa a1i fvex eqeltri simpl
      wi vex simprl simprr umgrspan ex alrimiv resex gropeld ) CHIZHJGBAKZDJUKG
      LZMNDOZUMPNULOZQZUMHIZUBGUKUPUQUKUPQZAUMBCDJEFUMJIURGUCRUKUNUOUDUKUNUOUEU
      KUPUAUFUGUHDJIUKDCMNJECMSTRULJIUKBABCPNJFCPSTUIRUJ $.

    $( A spanning subgraph of a simple graph represented by an ordered pair is
       a simple graph.  (Contributed by Alexander van der Vekens, 10-Aug-2017.)
       (Revised by AV, 16-Oct-2020.) $)
    usgrspanop $p |- ( G e. USGraph -> <. V , ( E |` A ) >. e. USGraph ) $=
      ( vg cusgr wcel cvv cres cv cvtx cfv wceq ciedg wa a1i fvex eqeltri simpl
      wi vex simprl simprr usgrspan ex alrimiv resex gropeld ) CHIZHJGBAKZDJUKG
      LZMNDOZUMPNULOZQZUMHIZUBGUKUPUQUKUPQZAUMBCDJEFUMJIURGUCRUKUNUOUDUKUNUOUEU
      KUPUAUFUGUHDJIUKDCMNJECMSTRULJIUKBABCPNJFCPSTUIRUJ $.
  $}

  ${
    uhgrspan1.v $e |- V = ( Vtx ` G ) $.
    uhgrspan1.i $e |- I = ( iEdg ` G ) $.
    uhgrspan1.f $e |- F = { i e. dom I | N e/ ( I ` i ) } $.
    $( Lemma 1 for ~ uhgrspan1 .  (Contributed by AV, 19-Nov-2020.) $)
    uhgrspan1lem1 $p |- ( ( V \ { N } ) e. _V /\ ( I |` F ) e. _V ) $=
      ( csn cdif cvv wcel cres cvtx cfv fvex eqeltri difexi ciedg resex pm3.2i
      ) FEJZKLMDBNLMFUCFCOPLGCOQRSDBDCTPLHCTQRUAUB $.

    uhgrspan1.s $e |- S = <. ( V \ { N } ) , ( I |` F ) >. $.
    $( Lemma 2 for ~ uhgrspan1 .  (Contributed by AV, 19-Nov-2020.) $)
    uhgrspan1lem2 $p |- ( Vtx ` S ) = ( V \ { N } ) $=
      ( cvtx cfv csn cdif cres cop fveq2i cvv wcel wa uhgrspan1lem1 ax-mp eqtri
      wceq opvtxfv ) ALMGFNOZECPZQZLMZUGAUILKRUGSTUHSTUAUJUGUEBCDEFGHIJUBUHUGSS
      UFUCUD $.

    $( Lemma 3 for ~ uhgrspan1 .  (Contributed by AV, 19-Nov-2020.) $)
    uhgrspan1lem3 $p |- ( iEdg ` S ) = ( I |` F ) $=
      ( ciedg cfv csn cdif cres cop fveq2i cvv wcel wceq uhgrspan1lem1 opiedgfv
      wa ax-mp eqtri ) ALMGFNOZECPZQZLMZUHAUILKRUGSTUHSTUDUJUHUABCDEFGHIJUBUHUG
      SSUCUEUF $.

    $d F c j $.  $d G c j $.  $d I c i j $.  $d N c i j $.  $d V c j $.
    $( The induced subgraph ` S ` of a hypergraph ` G ` obtained by removing
       one vertex is actually a subgraph of ` G ` .  A subgraph is called
       _induced_ or _spanned_ by a subset of vertices of a graph if it contains
       all edges of the original graph that join two vertices of the subgraph
       (see section I.1 in [Bollobas] p. 2 and section 1.1 in [Diestel] p. 4).
       (Contributed by AV, 19-Nov-2020.) $)
    uhgrspan1 $p |- ( ( G e. UHGraph /\ N e. V ) -> S SubGraph G ) $=
      ( vc vj wcel wa wss cfv wceq cv cvv cuhgr csubgr wbr cdif ciedg cres cima
      csn cdm cpw difssd uhgrspan1lem3 resresdm mp1i wrex wi uhgrfun fvelima ex
      wfun adantr wnel eqidd fveq2 neleq12d elrab2 fvexd uhgrss ad2ant2r simprr
      syl weq elpwdifsn syl3anc wb eleq1 eqcoms syl5ibrcom syl5bi rexlimdv syld
      ssrdv w3a cop opex eqeltri a1i cvtx uhgrspan1lem2 eqcomi eqid cedg edgval
      crn rneqi df-ima 3eqtr4ri issubgr sylan2 mpbir3and ) DUANZFGNZOZADUBUCZGF
      UHZUDZGPZAUEQZEXHUIUFRZECUGZXFUJZPZXCGXEUKXHECUFZRXIXCABCDEFGHIJKULZCEXHU
      MUNXCLXJXKXCLSZXJNZMSZEQZXORZMCUOZXOXKNZXAXPXTUPZXBXAEUTZYBEDIUQYCXPXTMXO
      CEURUSVKVAXCXSYAMCXQCNXQEUIZNZFXRVBZOZXCXSYAUPZFBSZEQZVBYFBXQYDCBMVLZFFYJ
      XRYKFVCYIXQEVDVEJVFXCYGYHXCYGOZYAXSXRXKNZYLXRTNXRGPZYFYMYLXQEVGXAYEYNXBYF
      EXQDGHIVHVIXCYEYFVJFXRGTVMVNYAYMVOXOXRXOXRXKVPVQVRUSVSVTWAWBXBXAATNZXDXGX
      IXLWCVOYOXBAXFXMWDTKXFXMWEWFWGGEATXJDXHXFUAAWHQXFABCDEFGHIJKWIWJHXHWKIXHW
      NXMWNAWLQXJXHXMXNWOAWMECWPWQWRWSWT $.
  $}

  ${
    $d E i j $.  $d E j p $.  $d F j $.  $d G j p $.  $d N i j $.  $d N j p $.
    $d V j p $.
    upgrres.v $e |- V = ( Vtx ` G ) $.
    upgrres.e $e |- E = ( iEdg ` G ) $.
    upgrres.f $e |- F = { i e. dom E | N e/ ( E ` i ) } $.
    $( Lemma for ~ upgrres .  (Contributed by AV, 27-Nov-2020.)  (Revised by
       AV, 19-Dec-2021.) $)
    upgrreslem $p |- ( ( G e. UPGraph /\ N e. V )
                   -> ran ( E |` F ) C_ { p e. ( ~P ( V \ { N } ) \ { (/) } ) |
                                          ( # ` p ) <_ 2 } ) $=
      ( vj wcel wa cv chash cfv c0 syl wi adantr cupgr cres crn cima c2 cle wbr
      csn cdif cpw crab df-ima wss wral cdm wnel wceq wb fveq2 neleq2 elrab2 wf
      upgrf ffvelrn breq1d elrab eldifsn simpl elpwi simpr elpwdifsn syl3anc ex
      wne sylbi eldifsni sylanbrc elrabd com23 imp4b syl5bi ralrimiv wfun cuhgr
      imp upgruhgr uhgrfun ssrab2 eqsstri funimass4 sylancl mpbird syl5eqssr
      a1d ) DUALZEFLZMZBCUBUCBCUDZGNZOPZUEUFUGZGFEUHUIUJZQUHZUIZUKZBCULWQWRXEUM
      ZKNZBPZXELZKCUNZWQXIKCXGCLXGBUOZLZEXHUPZMWQXIEANZBPZUPZXMAXGXKCXNXGUQXOXH
      UQXPXMURXNXGBUSXOXHEUTRJVAWOWPXLXMXIWOXKXAGFUJZXCUIZUKZBVBZWPXLXMXISZSSGB
      DFHIVCXTXLWPYAXTXLWPYASZXTXLMXHXSLZYBXKXSXGBVDYCXHXRLZXHOPZUEUFUGZMZYBXAY
      FGXHXRWSXHUQWTYEUEUFWSXHOUSVEZVFYGYAWPYGXMXIYGXMMZXAYFGXHXDYHYIXHXBLZXHQV
      NZXHXDLYGXMYJYDXMYJSZYFYDXHXQLZYKMYLXHXQQVGYMYLYKYMXMYJYMXMMYMXHFUMZXMYJY
      MXMVHYMYNXMXHFVITYMXMVJEXHFXQVKVLVMTVOTWEYGYKXMYDYKYFXHXQQVPTTXHXBQVGVQYG
      YFXMYDYFVJTVRVMWNVORVMVSRVTWAWBWQBWCZCXKUMXFXJURWOYOWPWODWDLYODWFBDIWGRTC
      XPAXKUKXKJXPAXKWHWIKCXEBWJWKWLWM $.

    $( Lemma for ~ umgrres and ~ usgrres .  (Contributed by AV, 27-Nov-2020.)
       (Revised by AV, 19-Dec-2021.) $)
    umgrreslem $p |- ( ( G e. UMGraph /\ N e. V )
           -> ran ( E |` F ) C_ { p e. ~P ( V \ { N } ) | ( # ` p ) = 2 } ) $=
      ( vj wcel wa cv chash cfv wceq syl wi adantr cumgr cres crn cima csn cdif
      c2 cpw crab df-ima wss wral cdm wnel wb fveq2 neleq2 elrab2 umgrf ffvelrn
      weq wf eqeq1d elrab simpll elpwi simpr elpwdifsn syl3anc elrabd a1d sylbi
      ex com23 imp4b syl5bi ralrimiv wfun cuhgr umgruhgr uhgrfun ssrab2 eqsstri
      funimass4 sylancl mpbird syl5eqssr ) DUALZEFLZMZBCUBUCBCUDZGNZOPZUGQZGFEU
      EUFUHZUIZBCUJWJWKWPUKZKNZBPZWPLZKCULZWJWTKCWRCLWRBUMZLZEWSUNZMWJWTEANZBPZ
      UNZXDAWRXBCAKVAXFWSQXGXDUOXEWRBUPXFWSEUQRJURWHWIXCXDWTWHXBWNGFUHZUIZBVBZW
      IXCXDWTSZSSGBDFHIUSXJXCWIXKXJXCWIXKSZXJXCMWSXILZXLXBXIWRBUTXMWSXHLZWSOPZU
      GQZMZXLWNXPGWSXHWLWSQWMXOUGWLWSOUPVCZVDXQXKWIXQXDWTXQXDMZWNXPGWSWOXRXSXNW
      SFUKZXDWSWOLXNXPXDVEXQXTXDXNXTXPWSFVFTTXQXDVGEWSFXHVHVIXQXPXDXNXPVGTVJVMV
      KVLRVMVNRVOVPVQWJBVRZCXBUKWQXAUOWHYAWIWHDVSLYADVTBDIWARTCXGAXBUIXBJXGAXBW
      BWCKCWPBWDWEWFWG $.

    $d N p $.  $d S p $.  $d V p $.
    upgrres.s $e |- S = <. ( V \ { N } ) , ( E |` F ) >. $.
    $( A subgraph obtained by removing one vertex and all edges incident with
       this vertex from a pseudograph (see ~ uhgrspan1 ) is a pseudograph.
       (Contributed by AV, 8-Nov-2020.)  (Revised by AV, 19-Dec-2021.) $)
    upgrres $p |- ( ( G e. UPGraph /\ N e. V ) -> S e. UPGraph ) $=
      ( vp cupgr wcel cfv csn cdif wfun cvv eqcomi wa cres cdm cv chash cle wbr
      c2 cpw c0 crab wf wfn crn wss cuhgr upgruhgr uhgrfun funres funfnd adantr
      3syl upgrreslem df-f sylanbrc wb opex eqeltri uhgrspan1lem2 uhgrspan1lem3
      cop cvtx ciedg isupgr mp1i mpbird ) EMNZFGNZUAZAMNZCDUBZUCZLUDUEOUHUFUGLG
      FPQZUIUJPQUKZWAULZVSWAWBUMZWAUNWDUOWEVQWFVRVQWAVQEUPNCRWAREUQCEIURDCUSVBU
      TVABCDEFGLHIJVCWBWDWAVDVEASNVTWEVFVSAWCWAVKSKWCWAVGVHLSWAAWCAVLOWCABDECFG
      HIJKVITAVMOWAABDECFGHIJKVJTVNVOVP $.

    $( A subgraph obtained by removing one vertex and all edges incident with
       this vertex from a multigraph (see ~ uhgrspan1 ) is a multigraph.
       (Contributed by AV, 27-Nov-2020.)  (Revised by AV, 19-Dec-2021.) $)
    umgrres $p |- ( ( G e. UMGraph /\ N e. V ) -> S e. UMGraph ) $=
      ( vp cumgr wcel wa cres cfv wfun cvv eqcomi cdm cv chash c2 wceq csn cdif
      cpw crab wfn crn wss cuhgr umgruhgr uhgrfun funres 3syl funfnd umgrreslem
      wf adantr df-f sylanbrc cop opex eqeltri cvtx uhgrspan1lem2 uhgrspan1lem3
      wb ciedg isumgrs mp1i mpbird ) EMNZFGNZOZAMNZCDPZUAZLUBUCQUDUELGFUFUGZUHU
      IZVSUTZVQVSVTUJZVSUKWBULWCVOWDVPVOVSVOEUMNCRVSREUNCEIUODCUPUQURVABCDEFGLH
      IJUSVTWBVSVBVCASNVRWCVJVQAWAVSVDSKWAVSVEVFLSVSAWAAVGQWAABDECFGHIJKVHTAVKQ
      VSABDECFGHIJKVITVLVMVN $.

    $d G x $.  $d V x $.
    $( A subgraph obtained by removing one vertex and all edges incident with
       this vertex from a simple graph (see ~ uhgrspan1 ) is a simple graph.
       (Contributed by Alexander van der Vekens, 2-Jan-2018.)  (Revised by AV,
       19-Dec-2021.) $)
    usgrres $p |- ( ( G e. USGraph /\ N e. V ) -> S e. USGraph ) $=
      ( vp vx cusgr wcel cv cfv wceq wf1 cvv wa cres cdm chash c2 csn cdif crab
      cpw c0 crn wss usgrf wnel ssrab3 a1i f1ssres syl2an2r usgrumgr umgrreslem
      cumgr sylan f1ssr syl2anc wb ssdmres mpbi f1eq2 ax-mp sylibr opex eqeltri
      cop cvtx uhgrspan1lem2 eqcomi ciedg uhgrspan1lem3 isusgrs mp1i mpbird ) E
      NOZFGOZUAZANOZCDUBZUCZLPUDQUERLGFUFUGZUIUHZWFSZWDDWIWFSZWJWDDMPUDQUERMGUI
      UJUFUGUHZWFSZWFUKWIULZWKWBCUCZWLCSWCDWOULZWMMCEGHIUMWPWDFBPCQUNBWODJUOZUP
      WOWLDCUQURWBEVAOWCWNEUSBCDEFGLHIJUTVBDWLWIWFVCVDWGDRZWJWKVEWPWRWQDCVFVGWG
      DWIWFVHVIVJATOWEWJVEWDAWHWFVMTKWHWFVKVLLTWFAWHAVNQWHABDECFGHIJKVOVPAVQQWF
      ABDECFGHIJKVRVPVSVTWA $.
  $}

  ${
    $d E e $.  $d G e $.  $d N e $.  $d V e $.
    upgrres1.v $e |- V = ( Vtx ` G ) $.
    upgrres1.e $e |- E = ( Edg ` G ) $.
    upgrres1.f $e |- F = { e e. E | N e/ e } $.
    $( Lemma 1 for ~ upgrres1 .  (Contributed by AV, 7-Nov-2020.) $)
    upgrres1lem1 $p |- ( ( V \ { N } ) e. _V /\ ( _I |` F ) e. _V ) $=
      ( csn cdif cvv wcel cid cres cvtx cfv fvex eqeltri cedg difexi cv resiexg
      wnel rabex2 ax-mp pm3.2i ) FEJZKLMNCOLMZFUHFDPQLGDPRSUACLMUIEAUBUDABCIBDT
      QLHDTRSUECLUCUFUG $.

    $d F p $.  $d G p $.  $d N p $.  $d V e p $.
    $( Lemma for ~ umgrres1 .  (Contributed by AV, 27-Nov-2020.) $)
    umgrres1lem $p |- ( ( G e. UMGraph /\ N e. V )
           -> ran ( _I |` F ) C_ { p e. ~P ( V \ { N } ) | ( # ` p ) = 2 } ) $=
      ( wcel wa cv cfv cpw crab wi wss simpr adantr cumgr cid cres crn chash c2
      wceq cdif rnresi wnel wral cuhgr cedg umgruhgr eleq2i biimpi cvtx edguhgr
      csn elpwi syl6sseqr syl syl2an ad4ant13 elpwdifsn syl3anc ralrimiva rabss
      ex sylibr syl5eqss elrabi syl6eleq edgumgr simprd syl5com eleq2s ssrabdv
      impcom ) DUAKZEFKZLZUBCUCUDCGMZUENUFUGZGFEUSUHOZPCUIWBWDGWECWBCEAMZUJZABP
      ZWEJWBWGWFWEKZQZABUKWHWERWBWJABWBWFBKZLZWGWIWLWGLWKWFFRZWGWIWLWKWGWBWKSTV
      TWKWMWAWGVTDULKZWFDUMNZKZWMWKDUNWKWPBWOWFIUOUPWNWPLWFDUQNZOZKZWMWFDURWSWF
      WQFWFWQUTHVAVBVCVDWLWGSEWFFBVEVFVIVGWGABWEVHVJVKWCCKWBWDWBWDQWCWHCWCWHKZW
      CWOKZWBWDWTWCBWOWGAWCBVLIVMVTXAWDQWAVTXAWDVTXALWCWRKWDWCDVNVOVITVPJVQVSVR
      VK $.

    upgrres1.s $e |- S = <. ( V \ { N } ) , ( _I |` F ) >. $.
    $( Lemma 2 for ~ upgrres1 .  (Contributed by AV, 7-Nov-2020.) $)
    upgrres1lem2 $p |- ( Vtx ` S ) = ( V \ { N } ) $=
      ( cvtx cfv csn cdif cid cres cop cvv wcel wceq upgrres1lem1 opvtxfv ax-mp
      fveq2i wa eqtri ) ALMGFNOZPDQZRZLMZUHAUJLKUEUHSTUISTUFUKUHUABCDEFGHIJUBUI
      UHSSUCUDUG $.

    $( Lemma 3 for ~ upgrres1 .  (Contributed by AV, 7-Nov-2020.) $)
    upgrres1lem3 $p |- ( iEdg ` S ) = ( _I |` F ) $=
      ( ciedg cfv csn cdif cid cres cop cvv wcel fveq2i wceq upgrres1lem1 ax-mp
      wa opiedgfv eqtri ) ALMGFNOZPDQZRZLMZUIAUJLKUAUHSTUISTUEUKUIUBBCDEFGHIJUC
      UIUHSSUFUDUG $.

    $d F p $.  $d G p x $.  $d N e p $.  $d S p $.  $d V p x $.
    $( A pseudograph obtained by removing one vertex and all edges incident
       with this vertex is a pseudograph.  Remark:  This graph is not a
       subgraph of the original graph in the sense of ~ df-subgr since the
       domains of the edge functions may not be compatible.  (Contributed by
       AV, 8-Nov-2020.) $)
    upgrres1 $p |- ( ( G e. UPGraph /\ N e. V ) -> S e. UPGraph ) $=
      ( vp vx wcel wa cv chash cfv c2 cle cid cres cdm wbr csn cdif cpw c0 crab
      cupgr wf wf1o f1oi f1of mp1i ffdmd wnel wral wss simpr adantr cedg eleq2i
      wi cvtx wne w3a edgupgr syl6sseqr 3ad2ant1 syl sylan2b ad4ant13 elpwdifsn
      elpwi syl3anc wn simpl biimpi simp2d syl2an nelsn eldifd ralrimiva sylibr
      ex rabss syl5eqss elrabi ciedg crn edgval eqtri eqid upgrf frn sseld wceq
      syl5bi fveq2 breq1d elrab simprbi syl6 syl5com eleq2s impcom ssrabdv fssd
      cvv wb cop opex eqeltri upgrres1lem2 eqcomi upgrres1lem3 isupgr mpbird )
      EUJNZFGNZOZAUJNZUADUBZUCZLPZQRZSTUDZLGFUEUFZUGZUHUEZUFZUIZYDUKZYBYEDYMYDY
      BDDYDDDYDULDDYDUKYBDUMDDYDUNUOUPYBYHLYLDYBDFBPZUQZBCUIZYLJYBYPYOYLNZVDZBC
      URYQYLUSYBYSBCYBYOCNZOZYPYRUUAYPOZYOYJYKUUBYTYOGUSZYPYOYJNUUAYTYPYBYTUTVA
      XTYTUUCYAYPYTXTYOEVBRZNZUUCCUUDYOIVCZXTUUEOZYOEVERZUGNZYOUHVFZYOQRSTUDZVG
      UUCYOEVHZUUIUUJUUCUUKUUIYOUUHGYOUUHVOHVIVJVKVLVMUUAYPUTFYOGCVNVPUUBUUJYOY
      KNVQUUAUUJYPYBXTUUEUUJYTXTYAVRYTUUEUUFVSUUGUUIUUJUUKUULVTWAVAYOUHWBVKWCWF
      WDYPBCYLWGWEWHYFDNYBYHYBYHVDYFYQDYFYQNYFCNZYBYHYPBYFCWIXTUUMYHVDYAXTUUMYF
      MPZQRZSTUDZMGUGYKUFZUIZNZYHUUMYFEWJRZWKZNXTUUSCUVAYFCUUDUVAIEWLWMVCXTUVAU
      URYFXTUUTUCZUURUUTUKUVAUURUSMUUTEGHUUTWNWOUVBUURUUTWPVKWQWSUUSYFUUQNYHUUP
      YHMYFUUQUUNYFWRUUOYGSTUUNYFQWTXAXBXCXDVAXEJXFXGXHXIAXJNYCYNXKYBAYIYDXLXJK
      YIYDXMXNLXJYDAYIAVERYIABCDEFGHIJKXOXPAWJRYDABCDEFGHIJKXQXPXRUOXS $.

    $( A multigraph obtained by removing one vertex and all edges incident with
       this vertex is a multigraph.  Remark:  This graph is not a subgraph of
       the original graph in the sense of ~ df-subgr since the domains of the
       edge functions may not be compatible.  (Contributed by AV,
       27-Nov-2020.) $)
    umgrres1 $p |- ( ( G e. UMGraph /\ N e. V ) -> S e. UMGraph ) $=
      ( vp cumgr wcel cfv wceq wf mp1i mpbird cvv wa cid cres cdm cv chash cdif
      c2 csn cpw crab wf1o f1oi f1of dmresi a1i feq2d crn umgrres1lem syl5eqssr
      rnresi fssd wb opex eqeltri cvtx upgrres1lem2 eqcomi upgrres1lem3 isumgrs
      cop ciedg ) EMNFGNUAZAMNZUBDUCZUDZLUEUFOUHPLGFUIUGZUJUKZVOQZVMVPDVRVOVMVP
      DVOQDDVOQZDDVOULVTVMDUMDDVOUNRVMVPDDVOVPDPVMDUOUPUQSVMDVOURVRDVABCDEFGLHI
      JUSUTVBATNVNVSVCVMAVQVOVKTKVQVOVDVELTVOAVQAVFOVQABCDEFGHIJKVGVHAVLOVOABCD
      EFGHIJKVIVHVJRS $.

    $( Restricting a simple graph by removing one vertex results in a simple
       graph.  Remark:  This restricted graph is not a subgraph of the original
       graph in the sense of ~ df-subgr since the domains of the edge functions
       may not be compatible.  (Contributed by Alexander van der Vekens,
       2-Jan-2018.)  (Revised by AV, 10-Jan-2020.)  (Revised by AV,
       23-Oct-2020.)  (Proof shortened by AV, 27-Nov-2020.) $)
    usgrres1 $p |- ( ( G e. USGraph /\ N e. V ) -> S e. USGraph ) $=
      ( vp cusgr wcel cfv wceq wf1 mp1i eqidd cvv wa cid cres cdm cv chash cdif
      c2 csn cpw crab crn wf1o f1oi f1of1 dmresi f1eq123d mpbird cumgr usgrumgr
      wss a1i umgrres1lem sylan f1ssr syl2anc wb opex eqeltri cvtx upgrres1lem2
      cop eqcomi ciedg upgrres1lem3 isusgrs ) EMNZFGNZUAZAMNZUBDUCZUDZLUEUFOUHP
      LGFUIUGZUJUKZWAQZVSWBDWAQZWAULWDVAZWEVSWFDDWAQZDDWAUMWHVSDUNDDWAUORVSWBDD
      DWAWAVSWASWBDPVSDUPVBVSDSUQURVQEUSNVRWGEUTBCDEFGLHIJVCVDWBDWDWAVEVFATNVTW
      EVGVSAWCWAVLTKWCWAVHVILTWAAWCAVJOWCABCDEFGHIJKVKVMAVNOWAABCDEFGHIJKVOVMVP
      RUR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finite undirected simple graphs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c FinUSGraph $.

  $( Extend class notation with finite simple graphs. $)
  cfusgr $a class FinUSGraph $.

  $( Define the class of all finite undirected simple graphs without loops
     (called "finite simple graphs" in the following).  A finite simple graph
     is an undirected simple graph of finite order, i.e. with a finite set of
     vertices.  (Contributed by AV, 3-Jan-2020.)  (Revised by AV,
     21-Oct-2020.) $)
  df-fusgr $a |- FinUSGraph = { g e. USGraph | ( Vtx ` g ) e. Fin } $.

  ${
    $d G g $.  $d V g $.
    isfusgr.v $e |- V = ( Vtx ` G ) $.
    $( The property of being a finite simple graph.  (Contributed by AV,
       3-Jan-2020.)  (Revised by AV, 21-Oct-2020.) $)
    isfusgr $p |- ( G e. FinUSGraph <-> ( G e. USGraph /\ V e. Fin ) ) $=
      ( vg cv cvtx cfv cfn wcel cusgr cfusgr wceq fveq2 syl6eqr eleq1d df-fusgr
      elrab2 ) DEZFGZHIBHIDAJKRALZSBHTSAFGBRAFMCNODPQ $.

    $( A finite simple graph has a finite set of vertices.  (Contributed by AV,
       16-Dec-2020.) $)
    fusgrvtxfi $p |- ( G e. FinUSGraph -> V e. Fin ) $=
      ( cfusgr wcel cusgr cfn isfusgr simprbi ) ADEAFEBGEABCHI $.

    $d G x $.  $d V x $.  $d W x $.
    isfusgrf1.i $e |- I = ( iEdg ` G ) $.
    $( The property of being a finite simple graph.  (Contributed by AV,
       3-Jan-2020.)  (Revised by AV, 21-Oct-2020.) $)
    isfusgrf1 $p |- ( G e. W -> ( G e. FinUSGraph
                           <-> ( I : dom I -1-1-> { x e. ~P V | ( # ` x ) = 2 }
                                 /\ V e. Fin ) ) ) $=
      ( cfusgr wcel cusgr cfn wa cdm cv chash cfv c2 wceq cpw crab wf1 isfusgr
      isusgrs anbi1d syl5bb ) BHIBJIZDKIZLBEIZCMANOPQRADSTCUAZUGLBDFUBUHUFUIUGA
      ECBDFGUCUDUE $.
  $}

  $( The property of being a finite simple graph.  (Contributed by AV,
     3-Jan-2020.)  (Revised by AV, 9-Jan-2020.) $)
  isfusgrcl $p |- ( G e. FinUSGraph
                    <-> ( G e. USGraph /\ ( # ` ( Vtx ` G ) ) e. NN0 ) ) $=
    ( cfusgr wcel cusgr cvtx cfv cfn wa chash cn0 eqid isfusgr cvv fvex hashclb
    wb mp1i pm5.32i bitri ) ABCADCZAEFZGCZHTUAIFJCZHAUAUAKLTUBUCUAMCUBUCPTAENUA
    MOQRS $.

  $( A finite simple graph is a simple graph.  (Contributed by AV,
     16-Jan-2020.)  (Revised by AV, 21-Oct-2020.) $)
  fusgrusgr $p |- ( G e. FinUSGraph -> G e. USGraph ) $=
    ( cfusgr wcel cusgr cvtx cfv cfn eqid isfusgr simplbi ) ABCADCAEFZGCAKKHIJ
    $.

  $( A finite simple graph represented as ordered pair.  (Contributed by AV,
     23-Oct-2020.) $)
  opfusgr $p |- ( ( V e. X /\ E e. Y ) -> ( <. V , E >. e. FinUSGraph
               <-> ( <. V , E >. e. USGraph /\ V e. Fin ) ) ) $=
    ( cop cfusgr wcel cvtx cfv cfn wa eqid isfusgr opvtxfv eleq1d anbi2d syl5bb
    cusgr ) BAEZFGSRGZSHIZJGZKBCGADGKZTBJGZKSUAUALMUCUBUDTUCUABJABCDNOPQ $.

  ${
    $d G x $.
    usgredgffibi.I $e |- I = ( iEdg ` G ) $.
    usgredgffibi.e $e |- E = ( Edg ` G ) $.
    $( The number of edges in a simple graph is finite iff its edge function is
       finite.  (Contributed by AV, 10-Jan-2020.)  (Revised by AV,
       22-Oct-2020.) $)
    usgredgffibi $p |- ( G e. USGraph
                         -> ( E e. Fin <-> I e. Fin ) ) $=
      ( vx cusgr wcel cfn crn cvv cdm cv chash cfv c2 wceq cvtx cpw ciedg fvexi
      crab wf1 wb eqid usgrfs f1vrnfibi sylancr cedg edgval eqcomi rneqi 3eqtri
      eleq1i syl6rbbr ) BGHZCIHZCJZIHZAIHUPCKHCLZFMNOPQFBROZSUBZCUCUQUSUDCBTDUA
      FCBVAVAUEDUFUTVBCKUGUHAURIABUIOBTOZJUREBUJVCCCVCDUKULUMUNUO $.
  $}

  ${
    $d E e $.  $d G e $.  $d N e $.  $d V e $.
    fusgredgfi.v $e |- V = ( Vtx ` G ) $.
    fusgredgfi.e $e |- E = ( Edg ` G ) $.
    $( In a finite simple graph the number of edges which contain a given
       vertex is also finite.  (Contributed by Alexander van der Vekens,
       4-Jan-2018.)  (Revised by AV, 21-Oct-2020.) $)
    fusgredgfi $p |- ( ( G e. FinUSGraph /\ N e. V )
                       -> { e e. E | N e. e } e. Fin ) $=
      ( cfusgr wcel wa cv crab cvv chash cfv cn0 cle wbr cfn cedg eqeltri cusgr
      fvex rabexg mp1i isfusgr hashcl adantl sylbi fusgrusgr usgredgleord sylan
      adantr hashbnd syl3anc ) CHIZDEIZJZDAKIZABLZMIZENOZPIZUTNOVBQRZUTSIBMIVAU
      RBCTOMGCTUCUAUSABMUDUEUPVCUQUPCUBIZESIZJVCCEFUFVFVCVEEUGUHUIUMUPVEUQVDCUJ
      ABCDEFGUKULUTVBMUNUO $.

    $d E v $.  $d G v $.  $d V v $.
    $( The size of a (finite) simple graph with 1 vertex is 0.  (Contributed by
       Alexander van der Vekens, 5-Jan-2018.)  (Revised by AV, 22-Oct-2020.) $)
    usgr1v0e $p |- ( ( G e. USGraph /\ ( # ` V ) = 1 )
                          -> ( # ` E ) = 0 ) $=
      ( vv cusgr wcel chash cfv wceq c0 cvv cvtx eqeq1i cedg fvex eqeltri mp1i
      wb c1 cc0 cv csn wex wa ciedg simpl vex a1i biimpi adantl usgr1vr 3adant1
      syl3anc mpd cuhgr usgruhgr uhgriedg0edg0 syl adantr syl5bb mpbird exlimdv
      wi ex hash1snb hasheq0 3imtr4d imp ) BGHZCIJUAKZAIJUBKZVKCFUCZUDZKZFUEZAL
      KZVLVMVKVPVRFVKVPVRVKVPUFZVRBUGJLKZVSVKVTVKVPUHZVSVKVNMHZBNJZVOKZVKVTVEZW
      AWBVSFUIUJVPWDVKVPWDCWCVODOUKULWBWDWEVKVNBMUMUNUOUPVRBPJZLKZVSVTAWFLEOVKW
      GVTTZVPVKBUQHWHBURBUSUTVAVBVCVFVDCMHVLVQTVKCWCMDBNQRCMFVGSAMHVMVRTVKAWFME
      BPQRAMVHSVIVJ $.

    usgrfilem.f $e |- F = { e e. E | N e/ e } $.
    $( In a finite simple graph, the number of edges is finite iff the number
       of edges not containing one of the vertices is finite.  (Contributed by
       Alexander van der Vekens, 4-Jan-2018.)  (Revised by AV, 9-Nov-2020.) $)
    usgrfilem $p |- ( ( G e. FinUSGraph /\ N e. V )
                      -> ( E e. Fin <-> F e. Fin ) ) $=
      ( cfusgr wcel wa cfn cv wnel crab rabfi syl5eqel cun uncom elnelun eqtr2i
      eqid fusgredgfi anim1i ancomd unfi syl ex impbid2 ) DJKEFKLZBMKZCMKZULCEA
      NZOZABPMIUOABQRUKUMULUKUMLZBCEUNKABPZSZMURUQCSBCUQTBEUNUQCAUQUCIUAUBUPUMU
      QMKZLURMKUPUSUMUKUSUMABDEFGHUDUEUFCUQUGUHRUIUJ $.
  $}

  $( Induction base for ~ fusgrfis .  Main work is done in ~ uhgr0v0e .
     (Contributed by Alexander van der Vekens, 5-Jan-2018.)  (Revised by AV,
     23-Oct-2020.) $)
  fusgrfisbase $p |- ( ( ( V e. X /\ E e. Y ) /\ <. V , E >. e. USGraph
                         /\ ( # ` V ) = 0 ) -> E e. Fin ) $=
    ( wcel wa cop cusgr chash cfv cc0 wceq w3a cedg cfn cuhgr 3ad2ant2 3ad2ant1
    c0 eqid cvtx usgruhgr opvtxfv hasheq0 biimpd adantr a1d 3imp eqtrd uhgr0v0e
    wi syl2anc 0fin syl6eqel ciedg wb usgredgffibi opiedgfv eleq1d bitrd mpbid
    ) BCEZADEZFZBAGZHEZBIJKLZMZVENJZOEZAOEZVHVISOVHVEPEZVEUAJZSLVISLVFVDVLVGVEU
    BQVHVMBSVDVFVMBLVGABCDUCRVDVFVGBSLZVDVGVNUKZVFVBVOVCVBVGVNBCUDUEUFUGUHUIVIV
    EVMVMTVITZUJULUMUNVHVJVEUOJZOEZVKVFVDVJVRUPVGVIVEVQVQTVPUQQVHVQAOVDVFVQALVG
    ABCDURRUSUTVA $.

  ${
    $d E p $.  $d N p $.  $d V p $.
    $( Induction step in ~ fusgrfis :  In a finite simple graph, the number of
       edges is finite if the number of edges not containing one of the
       vertices is finite.  (Contributed by Alexander van der Vekens,
       5-Jan-2018.)  (Revised by AV, 23-Oct-2020.) $)
    fusgrfisstep $p |- ( ( ( V e. X /\ E e. Y ) /\ <. V , E >. e. FinUSGraph
                           /\ N e. V )
                 -> ( ( _I |` { p e. ( Edg ` <. V , E >. ) | N e/ p } ) e. Fin
                      -> E e. Fin ) ) $=
      ( cid cv wnel cop cedg cfv crab cres cfn wcel wa cfusgr wb eqid w3a ciedg
      residfi cusgr fusgrusgr usgredgffibi 3ad2ant2 simp2 opvtxfv eqcomd eleq2d
      syl cvtx biimpa 3adant2 syl2anc opiedgfv eleq1d 3ad2ant1 3bitr3rd biimprd
      usgrfilem syl5bi ) GBFHIFCAJZKLZMZNOPVFOPZCDPAEPQZVDRPZBCPZUAZAOPZVFUCVKV
      LVGVKVEOPZVDUBLZOPZVGVLVIVHVMVOSZVJVIVDUDPVPVDUEVEVDVNVNTVETZUFULUGVKVIBV
      DUMLZPZVMVGSVHVIVJUHVHVJVSVIVHVJVSVHCVRBVHVRCACDEUIUJUKUNUOFVEVFVDBVRVRTV
      QVFTVBUPVHVIVOVLSVJVHVNAOACDEUQURUSUTVAVC $.
  $}

  ${
    $d G e f n p q v y w $.
    $( A finite simple graph is of finite size, i.e. has a finite number of
       edges.  (Contributed by Alexander van der Vekens, 6-Jan-2018.)  (Revised
       by AV, 8-Nov-2020.) $)
    fusgrfis $p |- ( G e. FinUSGraph -> ( Edg ` G ) e. Fin ) $=
      ( ve vp vv vq wcel cusgr cfv cfn wa cedg eqid cop cv wceq wb eleq1 adantl
      cvv wi vn vf vy cfusgr cvtx isfusgr ciedg usgrop wnel crab cres fvex cmpt
      vw cid mptresid mptrabex eqeltrri csn cdif opvtxfvi eqcomi usgrres1 chash
      vex cc0 pm3.2i fusgrfisbase mp3an1 c1 caddc cn0 w3a simpl simprr1 hashclb
      co biimprd adantr com12 syl6bir 3ad2ant2 impcom opfusgr mpbir2and simprr3
      3jca mpan fusgrfisstep syl imp opfi1ind sylan usgredgffibi mpbird sylbi )
      AUDFAGFZAUEHZIFZJZAKHZIFZAWRWRLUFWTXBAUGHZIFZWQWRXCMGFWSXDAUHXDBNZIFZUOUA
      NZCNUIZCDNZXEMZKHZUJZUKZIFZUBNZIFZUCUNDBUBUAXCXMGWRAUGULEXLENZUMXMSEXLUPX
      HECXKXQXJKULUQURXEXCOXFXDPXIWROXEXCIQRXEXOOXFXPPXIUNNZOXEXOIQRXIXGUSUTZXM
      MZCXKXLXJXGXIXJUEHXIXEXIDVEZBVEZVAVBXKLXLLXTLVCXOXMOXPXNPXRXSOXOXMIQRXISF
      ZXESFZJZXJGFZXIVDHZVFOXFYCYDYAYBVGZXEXISSVHVIUCNVJVKVQZVLFZYFYGYIOZXGXIFZ
      VMZJZXNXFYNYEXJUDFZYLVMZXNXFTYEYNYPYHYEYNJZYEYOYLYEYNVNYQYOYFXIIFZYFYKYLY
      JYEVOYNYEYRYMYJYEYRTZYKYFYJYSTYLYKYJYGVLFZYSYGYIVLQYEYTYRYCYTYRTYDYCYRYTX
      ISVPVRVSVTWAWBWCWCYEYOYFYRJPYNXEXISSWDVSWEYFYKYLYJYEWFWGWHXEXGXISSCWIWJWK
      WLWMWQXBXDPWSXAAXCXCLXALWNVSWOWP $.
  $}

  ${
    fusgrfupgrfs.v $e |- V = ( Vtx ` G ) $.
    fusgrfupgrfs.i $e |- I = ( iEdg ` G ) $.
    $( A finite simple graph is a finite pseudograph of finite size.
       (Contributed by AV, 27-Dec-2021.) $)
    fusgrfupgrfs $p |- ( G e. FinUSGraph
                         -> ( G e. UPGraph /\ V e. Fin /\ I e. Fin ) ) $=
      ( cfusgr wcel cupgr cfn cusgr fusgrusgr usgrupgr fusgrvtxfi cedg fusgrfis
      syl cfv wb eqid usgredgffibi mpbid 3jca ) AFGZAHGZCIGBIGZUCAJGZUDAKZALPAC
      DMUCANQZIGZUEAOUCUFUIUERUGUHABEUHSTPUAUB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Neighbors, complete graphs and universal vertices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Neighbors
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c NeighbVtx $.

  $( Extend class notation with neighbors (of a vertex in a graph). $)
  cnbgr $a class NeighbVtx $.

  ${
    $d e g n v $.
    $( Define the (open) _neighborhood_ resp. the class of all neighbors of a
       vertex (in a graph), see definition in section I.1 of [Bollobas] p. 3 or
       definition in section 1.1 of [Diestel] p. 3.  The neighborhood/neighbors
       of a vertex are all (other) vertices which are connected with this
       vertex by an edge.  In contrast to a closed neighborhood, a vertex is
       not a neighbor of itself.  This definition is applicable even for
       arbitrary hypergraphs.

       Remark:  To distinguish this definition from other definitions for
       neighborhoods resp. neighbors (e.g., ` nei ` in Topology, see
       ~ df-nei ), the suffix ` Vtx ` is added to the class constant
       ` NeighbVtx ` .  (Contributed by Alexander van der Vekens and Mario
       Carneiro, 7-Oct-2017.)  (Revised by AV, 24-Oct-2020.) $)
    df-nbgr $a |- NeighbVtx = ( g e. _V , v e. ( Vtx ` g )
                                |-> { n e. ( ( Vtx ` g ) \ { v } ) |
                                      E. e e. ( Edg ` g ) { v , n } C_ e } ) $.

    $( The set of neighbors is empty if the graph ` G ` or the vertex ` N ` are
       proper classes.  (Contributed by AV, 26-Oct-2020.) $)
    nbgrprc0 $p |- ( -. ( G e. _V /\ N e. _V ) -> ( G NeighbVtx N ) = (/) ) $=
      ( vg vv vn ve cnbgr cvv cv cvtx cfv cpr wss cedg wrex cdif crab reldmmpt2
      csn df-nbgr ovprc ) ABGCDHCIZJKZDIZEILFIMFUBNKOEUCUDSPQGDFCETRUA $.
  $}

  ${
    $d G g $.  $d X g $.  $d e g n v $.
    nbgrcl.v $e |- V = ( Vtx ` G ) $.
    $( If a class ` X ` has at least one neighbor, this class must be a vertex.
       (Contributed by AV, 6-Jun-2021.)  (Revised by AV, 12-Feb-2022.) $)
    nbgrcl $p |- ( N e. ( G NeighbVtx X ) -> X e. V ) $=
      ( vg vv vn ve cnbgr co wcel cvv cv cvtx cfv csb cpr wss cedg wrex df-nbgr
      csn cdif crab mpt2xeldm csbfv eqtr4i eleq2i biimpi simpl2im ) BADJKLAMLDF
      AFNZOPZQZLZDCLZFGMUMGNZHNRINSIULTPUAHUMUQUCUDUEJBADGIFHUBUFUOUPUNCDUNAOPC
      FAOUGEUHUIUJUK $.
  $}

  ${
    $d G g $.  $d X g $.  $d e g n v $.
    $( Obsolete version of ~ nbgrcl as of 12-Feb-2022.  (Contributed by AV,
       6-Jun-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nbgrclOLD $p |- ( N e. ( G NeighbVtx X ) -> X e. ( Vtx ` G ) ) $=
      ( vg vv vn ve cnbgr co wcel cvv cv cvtx cfv csb cpr wss cedg wrex csn
      cdif crab df-nbgr mpt2xeldm csbfv eleq2i biimpi simpl2im ) BACHIJAKJCDADL
      ZMNZOZJZCAMNZJZDEKUJELZFLPGLQGUIRNSFUJUOTUAUBHBACEGDFUCUDULUNUKUMCDAMUEUF
      UGUH $.
  $}

  ${
    $d E e g k $.  $d G e g k n $.  $d N e g k n $.  $d V e g k n $.
    nbgrval.v $e |- V = ( Vtx ` G ) $.
    nbgrval.e $e |- E = ( Edg ` G ) $.
    $( The set of neighbors of a vertex ` V ` in a graph ` G ` .  (Contributed
       by Alexander van der Vekens, 7-Oct-2017.)  (Revised by AV, 24-Oct-2020.)
       (Revised by AV, 21-Mar-2021.) $)
    nbgrval $p |- ( N e. V -> ( G NeighbVtx N ) = { n e. ( V \ { N } ) |
                                                E. e e. E { N , n } C_ e } ) $=
      ( vg vk wcel cnbgr cvv cv cvtx cfv cpr cedg wceq adantl wss wrex csn cdif
      crab cmpt2 co df-nbgr 1vgrex fveq2 syl6reqr eleq2d biimpac wa fvex difexi
      rabexg mp1i syl6eqr adantr sneq difeq12d preq1 sseq1d rexeqbidv rabeqbidv
      wb ovmpt2dv2 mpi ) EFKZLIJMINZOPZJNZBNZQZANZUAZAVKRPZUBZBVLVMUCZUDZUEZUFS
      DELUGEVNQZVPUAZACUBZBFEUCZUDZUEZSJAIBUHVJIJDEMVLWBWHLMDEFGUIVKDSZVJEVLKWI
      FVLEWIVLDOPZFVKDOUJZGUKULUMWAMKWBMKVJWIVMESZUNZUNZVLVTVKOUOUPVSBWAMUQURWN
      VSWEBWAWGWMWAWGSVJWMVLFVTWFWIVLFSWLWIVLWJFWKGUSUTWLVTWFSWIVMEVATVBTWNVQWD
      AVRCWMVRCSZVJWIWOWLWIVRDRPCVKDRUJHUSUTTWMVQWDVGZVJWLWPWIWLVOWCVPVMEVNVCVD
      TTVEVFVHVI $.

    $( Alternate definition of the neighbors of a vertex breaking up the subset
       relationship of an unordered pair.  (Contributed by AV, 15-Nov-2020.)
       (Revised by AV, 21-Mar-2021.) $)
    dfnbgr2 $p |- ( N e. V -> ( G NeighbVtx N ) = { n e. ( V \ { N } ) |
                                          E. e e. E ( N e. e /\ n e. e ) } ) $=
      ( wcel cnbgr co cv cpr wss wrex csn cdif crab wa cvv nbgrval wb vex prssg
      mpan2 bicomd rexbidv rabbidv eqtrd ) EFIZDEJKEBLZMALZNZACOZBFEPQZREULIUKU
      LISZACOZBUORABCDEFGHUAUJUNUQBUOUJUMUPACUJUPUMUJUKTIUPUMUBBUCEUKULFTUDUEUF
      UGUHUI $.
  $}

  ${
    $d G e n $.  $d I e i n $.  $d N e i n $.  $d V e n $.
    dfnbgr3.v $e |- V = ( Vtx ` G ) $.
    dfnbgr3.i $e |- I = ( iEdg ` G ) $.
    $( Alternate definition of the neighbors of a vertex using the edge
       function instead of the edges themselves (see also ~ nbgrval ).
       (Contributed by Alexander van der Vekens, 17-Dec-2017.)  (Revised by AV,
       25-Oct-2020.)  (Revised by AV, 21-Mar-2021.) $)
    dfnbgr3 $p |- ( ( N e. V /\ Fun I )
                    -> ( G NeighbVtx N ) = { n e. ( V \ { N } ) |
                                    E. i e. dom I { N , n } C_ ( I ` i ) } ) $=
      ( ve wcel wfun wa cnbgr co cv wss cfv wrex crab crn cpr cedg csn cdif cdm
      wceq eqid nbgrval adantr ciedg edgval eqcomi rneqi eqtri rexeqi wfn funfn
      wb biimpi adantl sseq2 rexrn syl syl5bb rabbidv eqtrd ) EFJZDKZLZCEMNZEBO
      UAZIOZPZICUBQZRZBFEUCUDZSZVKAODQZPZADUEZRZBVPSVGVJVQUFVHIBVNCEFGVNUGUHUIV
      IVOWABVPVOVMIDTZRZVIWAVMIVNWBVNCUJQZTWBCUKWDDDWDHULUMUNUOVIDVTUPZWCWAURVH
      WEVGVHWEDUQUSUTVMVSIAVTDVLVRVKVAVBVCVDVEVF $.
  $}

  ${
    $d e g n v $.  $d G g $.  $d X g $.
    nbgrel.v $e |- V = ( Vtx ` G ) $.
    $( If a class ` X ` is not a vertex of a graph ` G ` , then it has no
       neighbors in ` G ` .  (Contributed by Alexander van der Vekens,
       12-Oct-2017.)  (Revised by AV, 26-Oct-2020.) $)
    nbgrnvtx0 $p |- ( X e/ V -> ( G NeighbVtx X ) = (/) ) $=
      ( vg vv vn ve wnel cvv cv cvtx cfv csb wo cnbgr co c0 wceq wb csbfv ax-mp
      eqtr4i neleq2 olcd cpr wss cedg wrex csn cdif crab df-nbgr mpt2xneldm syl
      biimpi ) CBIZAJIZCEAEKZLMZNZIZOACPQRSUQVBURUQVBBVASUQVBTBALMVADEALUAUCBVA
      CUDUBUPUEEFJUTFKZGKUFHKUGHUSUHMUIGUTVCUJUKULPACFHEGUMUNUO $.

    $d E e n $.  $d G e n $.  $d N e n $.  $d X e n $.  $d V e n $.
    nbgrel.e $e |- E = ( Edg ` G ) $.
    $( Characterization of a neighbor ` N ` of a vertex ` X ` in a graph
       ` G ` .  (Contributed by Alexander van der Vekens and Mario Carneiro,
       9-Oct-2017.)  (Revised by AV, 26-Oct-2020.)  (Revised by AV,
       12-Feb-2022.) $)
    nbgrel $p |- ( N e. ( G NeighbVtx X )
                   <-> ( ( N e. V /\ X e. V ) /\ N =/= X
                         /\ E. e e. E { X , N } C_ e ) ) $=
      ( vn cnbgr co wcel wa cpr cv wss wrex anbi1i bitri anass wne w3a pm4.71ri
      nbgrcl cdif crab nbgrval eleq2d preq2 sseq1d rexbidv elrab eldifsn syl6bb
      csn wceq pm5.32i df-3an ancom bitr3i 3bitr2ri ) DCFJKZLZFELZVCMZDELZVDMZD
      FUAZFDNZAOZPZABQZUBZVCVDCDEFGUDUCVEVDVFVHMZVLMZMZVMVDVCVOVDVCDFIOZNZVJPZA
      BQZIEFUOUEZUFZLZVOVDVBWBDAIBCFEGHUGUHWCDWALZVLMVOVTVLIDWAVQDUPZVSVKABWEVR
      VIVJVQDFUIUJUKULWDVNVLDEFUMRSUNUQVMVGVHMZVLMVDVNMZVLMVPVGVHVLURWGWFVLWGVD
      VFMZVHMWFVDVFVHTWHVGVHVDVFUSRUTRVDVNVLTVASS $.
  $}

  ${
    $d e g n v $.  $d E e k $.  $d G e k $.  $d G g $.  $d K e k $.  $d N g $.
    $d N e k $.  $d V e k $.  $d W e k $.
    nbgrelOLD.v $e |- V = ( Vtx ` G ) $.
    nbgrelOLD.e $e |- E = ( Edg ` G ) $.
    $( Obsolete version of ~ nbgrel as of 12-Feb-2022.  (Contributed by
       Alexander van der Vekens and Mario Carneiro, 9-Oct-2017.)  (Revised by
       AV, 26-Oct-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nbgrelOLD $p |- ( G e. W -> ( K e. ( G NeighbVtx N )
                               <-> ( ( K e. V /\ N e. V ) /\ K =/= N
                                     /\ E. e e. E { N , K } C_ e ) ) ) $=
      ( vk wcel cnbgr wa cpr cv wss wrex anbi1i anass syl6bb co wne w3a wi cvtx
      cfv nbgrclOLD syl6eleqr a1i pm4.71rd wb csn cdif crab nbgrval eleq2d wceq
      preq2 sseq1d rexbidv elrab eldifsn 3bitri adantl pm5.32da 3anass 3bitrri
      ancom bitrd ) CGKZDCELUAZKZEFKZVLMZDFKZVMMZDEUBZEDNZAOZPZABQZUCZVJVLVMVLV
      MUDVJVLECUEUFFCDEUGHUHUIUJVJVNVMVOVQWAMZMZMZWBVJVMVLWDVMVLWDUKVJVMVLDEJOZ
      NZVSPZABQZJFEULUMZUNZKZWDVMVKWKDAJBCEFHIUOUPWLDWJKZWAMVOVQMZWAMWDWIWAJDWJ
      WFDUQZWHVTABWOWGVRVSWFDEURUSUTVAWMWNWADFEVBRVOVQWASVCTVDVEWBVPWCMVMVOMZWC
      MWEVPVQWAVFVPWPWCVOVMVHRVMVOWCSVGTVI $.
  $}

  ${
    $d e g n v $.  $d G e g $.  $d K e g $.  $d N e $.  $d V e $.
    nbgrisvtx.v $e |- V = ( Vtx ` G ) $.
    $( Every neighbor ` N ` of a vertex ` K ` is a vertex.  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV, 26-Oct-2020.)
       (Revised by AV, 12-Feb-2022.) $)
    nbgrisvtx $p |- ( N e. ( G NeighbVtx K ) -> N e. V ) $=
      ( ve cnbgr co wcel wa wne cpr cv wss cedg cfv wrex w3a eqid nbgrel simp1l
      sylbi ) CABGHICDIZBDIZJCBKZBCLFMNFAOPZQZRUCFUFACDBEUFSTUCUDUEUGUAUB $.

    $d G n $.  $d K n $.  $d V n $.
    $( The neighbors of a vertex ` K ` in a graph form a subset of all vertices
       of the graph.  (Contributed by Alexander van der Vekens, 12-Oct-2017.)
       (Revised by AV, 26-Oct-2020.)  (Revised by AV, 12-Feb-2022.) $)
    nbgrssvtx $p |- ( G NeighbVtx K ) C_ V $=
      ( vn cnbgr co cv nbgrisvtx ssriv ) EABFGCABEHCDIJ $.

    $d W e $.
    $( Obsolete version of ~ nbgrisvtx as of 12-Feb-2022.  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV, 26-Oct-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nbgrisvtxOLD $p |- ( ( G e. W /\ N e. ( G NeighbVtx K ) ) -> N e. V ) $=
      ( ve wcel cnbgr co wa wne cpr cv wss cedg cfv wrex w3a eqid simp1l syl6bi
      nbgrelOLD imp ) AEHZCABIJHZCDHZUEUFUGBDHZKCBLZBCMGNOGAPQZRZSUGGUJACBDEFUJ
      TUCUGUHUIUKUAUBUD $.

    $d N n $.  $d W n $.
    $( Obsolete version of ~ nbgrssvtx as of 12-Feb-2022.  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV, 26-Oct-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nbgrssvtxOLD $p |- ( G e. W -> ( G NeighbVtx N ) C_ V ) $=
      ( vn wcel cnbgr co cv nbgrisvtxOLD ex ssrdv ) ADGZFABHIZCNFJZOGPCGABPCDEK
      LM $.
  $}

  ${
    $d E e $.  $d G e n $.  $d N e n $.  $d V e n $.  $d X e n $.
    nbuhgr.v $e |- V = ( Vtx ` G ) $.
    nbuhgr.e $e |- E = ( Edg ` G ) $.
    $( The set of neighbors of a vertex in a hypergraph.  This version of
       ~ nbgrval (with ` N ` being an arbitrary set instead of being a vertex)
       only holds for classes whose edges are subsets of the set of vertices
       (hypergraphs!).  (Contributed by AV, 26-Oct-2020.)  (Proof shortened by
       AV, 15-Nov-2020.) $)
    nbuhgr $p |- ( ( G e. UHGraph /\ N e. X )
                   -> ( G NeighbVtx N ) = { n e. ( V \ { N } ) |
                                            E. e e. E { N , n } C_ e } ) $=
      ( wcel wa cv wss wceq wi wn c0 adantr cfv simpl cuhgr cnbgr cpr wrex cdif
      co csn crab nbgrval a1d wnel df-nel nbgrnvtx0 sylbir wral cvtx cpw eleq2i
      cedg biimpi edguhgr syl2an selpw eqcomi sseq2i bitri sstr wb prssg bicomd
      cvv vex mpan2 syl6bi syl5com ex com13 ad3antlr syl5bi mpd con3rr3 expdimp
      rexlimdva ralrimiv rabeq0 sylibr eqtr4d pm2.61i ) EFJZDUAJZEGJZKZDEUBUFZE
      BLZUCZALZMZACUDZBFEUGUEZUHZNZOWIXAWLABCDEFHIUIUJWIPZWLXAXBWLKZWMQWTXBWMQN
      ZWLXBEFUKXDEFULDFEHUMUNRXCWRPZBWSUOWTQNXCXEBWSXBWLWNWSJZXEWLXFKZWRWIXGWQW
      IACXGWPCJZKZWPDUPSZUQJZWQWIOZXGWJWPDUSSZJZXKXHWLWJXFWJWKTRXHXNCXMWPIURUTW
      PDVAVBXKWPFMZXIXLXKWPXJMXOAXJVCXJFWPFXJHVDVEVFWKXOXLOWJXFXHWQXOWKWIWQXOWK
      WIOWQXOKWOFMZWKWIWOWPFVGWKXPWIWNFJZKZWIWKWNVKJZXPXRVHBVLWKXSKXRXPEWNFGVKV
      IVJVMWIXQTVNVOVPVQVRVSVTWCWAWBWDWRBWSWEWFWGVPWH $.

    $d E n v x $.  $d G e x $.  $d G v $.  $d N n v x $.  $d V v x $.
    $( The set of neighbors of a vertex in a pseudograph.  (Contributed by AV,
       5-Nov-2020.)  (Proof shortened by AV, 30-Dec-2020.) $)
    nbupgr $p |- ( ( G e. UPGraph /\ N e. V )
            -> ( G NeighbVtx N ) = { n e. ( V \ { N } ) | { N , n } e. E } ) $=
      ( ve wcel wa cv wss crab wceq adantl cvv wne simpr adantr a1i cupgr cnbgr
      co cpr wrex csn cdif nbgrval w3a simp-4l vex eldifsn sylbi 3jca upgredgpr
      necomd syl31anc ex eleq1 biimprd syl6ci rexlimdva wb ssid rspcedvd impbid
      sseq2 rabbidva eqtrd ) CUAIZDEIZJZCDUBUCZDAKZUDZHKZLZHBUEZAEDUFUGZMZVOBIZ
      AVSMVKVMVTNVJHABCDEFGUHOVLVRWAAVSVLVNVSIZJZVRWAWCVQWAHBWCVPBIZJZVQVOVPNZW
      DWAWEVQWFWEVQJVJWDVQVKVNPIZDVNQZUIZWFVJVKWBWDVQUJWEWDVQWCWDRZSWEVQRWEWIVQ
      WCWIWDWCVKWGWHVLVKWBVJVKRSWGWCAUKTWBWHVLWBVNEIZVNDQZJZWHVNEDULWMVNDWKWLRU
      PUMOUNSSDVNVPEBCEPFGUOUQURWJWFWAWDVOVPBUSUTVAVBWCWAVRWCWAJZVQVOVOLZHVOBWC
      WARVPVONVQWOVCWNVPVOVOVGOWOWNVOVDTVEURVFVHVI $.

    $d K n $.
    $( A neighbor of a vertex in a pseudograph.  (Contributed by AV,
       5-Nov-2020.) $)
    nbupgrel $p |- ( ( ( G e. UPGraph /\ K e. V ) /\ ( N e. V /\ N =/= K ) )
                     -> ( N e. ( G NeighbVtx K ) <-> { N , K } e. E ) ) $=
      ( vn cupgr wcel wa wne cnbgr co csn cdif cpr wb cv crab nbupgr wceq preq2
      eleq2d eleq1d elrab syl6bb adantr eldifsn biimpri adantl biantrurd eleq1i
      prcom a1i 3bitr2d ) BIJCEJKZDEJDCLKZKZDBCMNZJZDECOPZJZCDQZAJZKZVEDCQZAJZU
      QVAVFRURUQVADCHSZQZAJZHVBTZJVFUQUTVLDHABCEFGUAUDVKVEHDVBVIDUBVJVDAVIDCUCU
      EUFUGUHUSVCVEURVCUQVCURDECUIUJUKULVEVHRUSVDVGACDUNUMUOUP $.

    $d e v $.
    $( The set of neighbors of a vertex in a multigraph.  (Contributed by AV,
       27-Nov-2020.)  (Proof shortened by AV, 30-Dec-2020.) $)
    nbumgrvtx $p |- ( ( G e. UMGraph /\ N e. V )
                      -> ( G NeighbVtx N ) = { n e. V | { N , n } e. E } ) $=
      ( vv ve vx wcel wa cv cpr wss wrex wceq adantl adantr simpr cumgr co cdif
      cnbgr csn crab nbgrval cupgr cvv wne w3a umgrupgr ad4antr vex a1i eldifsn
      eldifi necomd sylbi 3jca upgredgpr syl31anc eleq1 biimprd syl6ci impr jca
      ex rexlimdvaa expimpd umgredgne ad2ant2rl sylanbrc wb sseq2 ssid rspcedvd
      simprl impbid preq2 sseq1d rexbidv elrab eleq1d 3bitr4g eqrdv eqtrd ) CUA
      KZDEKZLZCDUDUBZDHMZNZIMZOZIBPZHEDUEZUCZUFZDAMZNZBKZAEUFZWIWKWSQWHIHBCDEFG
      UGRWJJWSXCWJJMZWRKZDXDNZWNOZIBPZLZXDEKZXFBKZLZXDWSKXDXCKWJXIXLWJXEXHXLWJX
      ELZXGXLIBXMWNBKZXGLZLXJXKXMXJXOXEXJWJXDEWQUQRSXMXNXGXKXMXNLZXGXFWNQZXNXKX
      PXGXQXPXGLCUHKZXNXGWIXDUIKZDXDUJZUKZXQWHXRWIXEXNXGCULUMXPXNXGXMXNTZSXPXGT
      XPYAXGXMYAXNXMWIXSXTWJWIXEWHWITSXSXMJUNUOXEXTWJXEXJXDDUJZLZXTXDEDUPZYDXDD
      XJYCTURUSRUTSSDXDWNEBCEUIFGVAVBVHYBXQXKXNXFWNBVCVDVEVFVGVIVJWJXLXIWJXLLZX
      EXHYFXJYCXEWJXJXKVRYFDXDWHXKXTWIXJBCDXDGVKVLURYEVMYFXGXFXFOZIXFBXLXKWJXJX
      KTRWNXFQXGYGVNYFWNXFXFVORYGYFXFVPUOVQVGVHVSWPXHHXDWRWLXDQZWOXGIBYHWMXFWNW
      LXDDVTWAWBWCXBXKAXDEWTXDQXAXFBWTXDDVTWDWCWEWFWG $.

    $( The set of neighbors of an arbitrary class in a multigraph.
       (Contributed by AV, 27-Nov-2020.) $)
    nbumgr $p |- ( G e. UMGraph -> ( G NeighbVtx N )
                                   = { n e. V | { N , n } e. E } ) $=
      ( wcel cumgr cnbgr co cv cpr crab wceq wi wn wa c0 ex nbumgrvtx nbgrnvtx0
      expcom wnel df-nel sylbir adantr umgrpredgv simpld adantl con3d com13 imp
      wral ralrimiv rabeq0 sylibr eqtr4d pm2.61i ) DEHZCIHZCDJKZDALZMBHZAENZOZP
      VAUTVFABCDEFGUAUCUTQZVAVFVGVARZVBSVEVGVBSOZVAVGDEUDVIDEUECEDFUBUFUGVHVDQZ
      AEUNVESOVHVJAEVGVAVCEHZVJPVKVAVGVJVKVAVGVJPVKVARVDUTVAVDUTPVKVAVDUTVAVDRU
      TVKBCDVCEFGUHUITUJUKTULUMUOVDAEUPUQURTUS $.

    $( The set of neighbors of a vertex in a simple graph.  (Contributed by
       Alexander van der Vekens, 9-Oct-2017.)  (Revised by AV, 26-Oct-2020.)
       (Proof shortened by AV, 27-Nov-2020.) $)
    nbusgrvtx $p |- ( ( G e. USGraph /\ N e. V )
                      -> ( G NeighbVtx N ) = { n e. V | { N , n } e. E } ) $=
      ( cusgr wcel cumgr cnbgr co cv cpr crab wceq usgrumgr nbumgrvtx sylan ) C
      HICJIDEICDKLDAMNBIAEOPCQABCDEFGRS $.

    $( The set of neighbors of an arbitrary class in a simple graph.
       (Contributed by Alexander van der Vekens, 9-Oct-2017.)  (Revised by AV,
       26-Oct-2020.)  (Proof shortened by AV, 27-Nov-2020.) $)
    nbusgr $p |- ( G e. USGraph -> ( G NeighbVtx N )
                                   = { n e. V | { N , n } e. E } ) $=
      ( cusgr wcel cumgr cnbgr co cv cpr crab wceq usgrumgr nbumgr syl ) CHICJI
      CDKLDAMNBIAEOPCQABCDEFGRS $.
  $}

  ${
    $d E a b e n $.  $d G a b e n v $.  $d V a b e n v $.
    nbgr2vtx1edg.v $e |- V = ( Vtx ` G ) $.
    nbgr2vtx1edg.e $e |- E = ( Edg ` G ) $.
    $( If a graph has two vertices, and there is an edge between the vertices,
       then each vertex is the neighbor of the other vertex.  (Contributed by
       AV, 2-Nov-2020.)  (Revised by AV, 25-Mar-2021.)  (Proof shortened by AV,
       13-Feb-2022.) $)
    nbgr2vtx1edg $p |- ( ( ( # ` V ) = 2 /\ V e. E )
                 -> A. v e. V A. n e. ( V \ { v } ) n e. ( G NeighbVtx v ) ) $=
      ( va vb ve wceq wcel cv cnbgr cdif wral wa wrex wb adantl chash cfv c2 co
      csn wne cpr wi cvv cvtx fvexi hash2prb ax-mp simpll ancomd simpl ad2antlr
      wss necomd id sseq2 ssid rspcedvd nbgrel syl3anbrc prcom eqimssi difprsn1
      a1i raleqdv vex eleq1 ralsn syl6bb difprsn2 adantr mpbir2and ex raleqbidv
      anbi12d difeq1 sneq difeq2d oveq2 eleq2d ralpr mpbird rexlimivv sylbi imp
      imbi12d ) EUAUBUCKZECLZBMZDAMZNUDZLZBEWOUEZOZPZAEPZWLHMZIMZUFZEXBXCUGZKZQ
      ZIERHERZWMXAUHZEUILWLXHSEDUJFUKEUIHIULUMXGXIHIEEXBELZXCELZQZXGXIXLXGQZXIX
      ECLZWNDXBNUDZLZBXEXBUEZOZPZWNDXCNUDZLZBXEXCUEZOZPZQZUHZXMXNYEXMXNQZYEXCXO
      LZXBXTLZYGXKXJQXCXBUFZXEJMZURZJCRZYHYGXJXKXLXGXNUNZUOXGYJXLXNXGXBXCXDXFUP
      ZUSUQXNYMXMXNYLXEXEURZJXECXNUTZYKXEKZYLYPSXNYKXEXEVATYPXNXEVBVIVCTJCDXCEX
      BFGVDVEYGXLXDXCXBUGZYKURZJCRZYIYNXGXDXLXNYOUQXNUUAXMXNYTYSXEURZJXECYQYRYT
      UUBSXNYKXEYSVATUUBXNYSXEXCXBVFVGVIVCTJCDXBEXCFGVDVEXGYEYHYIQSZXLXNXDUUCXF
      XDXSYHYDYIXDXSXPBYBPYHXDXPBXRYBXBXCVHVJXPYHBXCIVKZWNXCXOVLVMVNXDYDYABXQPY
      IXDYABYCXQXBXCVOVJYAYIBXBHVKZWNXBXTVLVMVNVTVPUQVQVRXGXIYFSZXLXFUUFXDXFWMX
      NXAYEEXECVLXFXAWQBXEWROZPZAXEPYEXFWTUUHAEXEXFUTXFWQBWSUUGEXEWRWAVJVSUUHXS
      YDAXBXCUUEUUDWOXBKZWQXPBUUGXRUUIWRXQXEWOXBWBWCUUIWPXOWNWOXBDNWDWEVSWOXCKZ
      WQYABUUGYCUUJWRYBXEWOXCWBWCUUJWPXTWNWOXCDNWDWEVSWFVNWKTTWGVRWHWIWJ $.

    $( Lemma for ~ nbuhgr2vtx1edgb .  This reverse direction of ~ nbgr2vtx1edg
       only holds for classes whose edges are subsets of the set of vertices,
       which is the property of hypergraphs.  (Contributed by AV, 2-Nov-2020.)
       (Proof shortened by AV, 13-Feb-2022.) $)
    nbuhgr2vtx1edgblem $p |- ( ( G e. UHGraph /\ V = { a , b } /\
                               a e. ( G NeighbVtx b ) ) -> { a , b } e. E ) $=
      ( ve wcel cv cpr wceq wa wss wi cfv cpw sylbi com13 ex cuhgr cnbgr co wne
      wrex w3a nbgrel cvtx cedg eleq2i edguhgr sylan2b eqeq1i pweq eleq2d selpw
      wb syl6bb adantl prcom sseq1i eqss eleq1a a1i sylbir ad2antlr sylbid mpid
      impancom com14 rexlimdv 3impia com12 syl5bi ) BUAIZCDJZEJZKZLZVPBVQUBUCIZ
      VRAIZVTVPCIVQCIMZVPVQUDZVQVPKZHJZNZHAUEZUFZVOVSMZWAHABVPCVQFGUGWHWIWAWBWC
      WGWIWAOZWBWCMZWFWJHAWIWEAIZWFWKWAVOWLVSWFWKWAOZOZVOWLMZVSWEBUHPZQZIZWNWLV
      OWEBUIPZIWRAWSWEGUJWEBUKULWOVSWRWNOWOVSMWRWEVRNZWNVSWRWTUQZWOVSWPVRLZXACW
      PVRFUMXBWRWEVRQZIWTXBWQXCWEWPVRUNUOHVRUPURRUSWLWTWNOVOVSWFWTWLWMWFVRWENZW
      TWLWMOZOWDVRWEVQVPUTVAXDWTXEXDWTMVRWELZXEVRWEVBWKWLXFWAWLXFWAOOWKWEAVRVCV
      DSVETRSVFVGTVHVIVJVKVLVMVNVL $.

    $( If a hypergraph has two vertices, and there is an edge between the
       vertices, then each vertex is the neighbor of the other vertex.
       (Contributed by AV, 2-Nov-2020.)  (Proof shortened by AV,
       13-Feb-2022.) $)
    nbuhgr2vtx1edgb $p |- ( ( G e. UHGraph /\ ( # ` V ) = 2 )
                          -> ( V e. E <-> A. v e. V A. n e. ( V \ { v } )
                                          n e. ( G NeighbVtx v ) ) ) $=
      ( va vb ve wcel wceq cv cnbgr cdif wral wb wa wrex adantl cuhgr chash cfv
      c2 co csn wne cpr cvv cvtx fvexi hash2prb ax-mp wss simpr ancomd ad2antrr
      id necomd adantr ad2antlr prcom eleq1i biimpi eqimssi a1i rspcedvd nbgrel
      sseq2 syl3anbrc simplrl jca ex nbuhgr2vtx1edgblem 3exp adantld imp impbid
      wi eleq1 difeq1 raleqdv raleqbidv vex difeq2d oveq2 eleq2d ralpr difprsn1
      sneq ralsn syl6bb difprsn2 anbi12d syl5bb sylan9bbr bibi12d mpbird syl5bi
      rexlimdvva ) DUAKZEUBUCUDLZECKZBMZDAMZNUEZKZBEXEUFZOZPZAEPZQZXBHMZIMZUGZE
      XMXNUHZLZRZIESHESZXAXLEUIKXBXSQEDUJFUKEUIHIULUMXAXRXLHIEEXAXMEKZXNEKZRZRZ
      XRXLYCXRRZXLXPCKZXNDXMNUEZKZXMDXNNUEZKZRZQZYDYEYJYDYEYJYDYERZYGYIYLYAXTRZ
      XNXMUGZXPJMZUNZJCSZYGYCYMXRYEYCXTYAXAYBUOZUPUQXRYNYCYEXOYNXQXOXMXNXOURUSU
      TVAYEYQYDYEYPXPXNXMUHZUNZJYSCYEYSCKXPYSCXMXNVBZVCVDYOYSLYPYTQYEYOYSXPVITY
      TYEXPYSUUAVEVFVGTJCDXNEXMFGVHVJYLYBXOYSYOUNZJCSZYIYCYBXRYEYRUQYCXOXQYEVKY
      EUUCYDYEUUBYSXPUNZJXPCYEURYOXPLUUBUUDQYEYOXPYSVITUUDYEYSXPXNXMVBVEVFVGTJC
      DXMEXNFGVHVJVLVMYDYIYEYGYCXRYIYEVSZYCXQUUEXOXAXQUUEVSYBXAXQYIYECDEHIFGVNV
      OUTVPVQVPVRXRXLYKQYCXRXCYEXKYJXQXCYEQXOEXPCVTTXQXKXGBXPXHOZPZAXPPZXOYJXQX
      JUUGAEXPXQURXQXGBXIUUFEXPXHWAWBWCUUHXDYFKZBXPXMUFZOZPZXDYHKZBXPXNUFZOZPZR
      XOYJUUGUULUUPAXMXNHWDZIWDZXEXMLZXGUUIBUUFUUKUUSXHUUJXPXEXMWJWEUUSXFYFXDXE
      XMDNWFWGWCXEXNLZXGUUMBUUFUUOUUTXHUUNXPXEXNWJWEUUTXFYHXDXEXNDNWFWGWCWHXOUU
      LYGUUPYIXOUULUUIBUUNPYGXOUUIBUUKUUNXMXNWIWBUUIYGBXNUURXDXNYFVTWKWLXOUUPUU
      MBUUJPYIXOUUMBUUOUUJXMXNWMWBUUMYIBXMUUQXDXMYHVTWKWLWNWOWPWQTWRVMWTWSVQ $.
  $}

  ${
    $d E n $.  $d G n $.  $d K n $.  $d N n $.
    nbusgreledg.e $e |- E = ( Edg ` G ) $.
    $( A class/vertex is a neighbor of another class/vertex in a simple graph
       iff the vertices are endpoints of an edge.  (Contributed by Alexander
       van der Vekens, 11-Oct-2017.)  (Revised by AV, 26-Oct-2020.) $)
    nbusgreledg $p |- ( G e. USGraph -> ( N e. ( G NeighbVtx K )
                                            <-> { N , K } e. E ) ) $=
      ( vn cusgr wcel cnbgr co cv cpr cvtx cfv crab eqid nbusgr wa wb a1i prcom
      eleq2d usgrpredgv simprd pm4.71rd eleq1i wceq preq2 eleq1d elrab 3bitr4rd
      ex bitrd ) BGHZDBCIJZHDCFKZLZAHZFBMNZOZHZDCLZAHZUNUOUTDFABCUSUSPZEQUBUNCD
      LZAHZDUSHZVFRZVCVAUNVFVGUNVFVGUNVFRCUSHVGABCDUSEVDUCUDULUEVCVFSUNVBVEADCU
      AUFTVAVHSUNURVFFDUSUPDUGUQVEAUPDCUHUIUJTUKUM $.
  $}

  ${
    $d G e n $.  $d N e n $.
    $( A vertex which is not endpoint of an edge has no neighbor in a
       hypergraph.  (Contributed by Alexander van der Vekens, 12-Oct-2017.)
       (Revised by AV, 26-Oct-2020.) $)
    uhgrnbgr0nb $p |- ( ( G e. UHGraph /\ A. e e. ( Edg ` G ) N e/ e )
                        -> ( G NeighbVtx N ) = (/) ) $=
      ( vn cvv wcel cuhgr cv wnel cedg cfv wral wa cnbgr c0 wceq wi eqid expcom
      wn co cpr wss wrex cvtx csn cdif crab nbuhgr adantlr df-nel prssg syl6bir
      wel simpl ad2antlr con3d syl5bi ralimdva ralnex sylib expd impcom expdimp
      imp ralrimiv rabeq0 sylibr eqtrd id intnand nbgrprc0 syl a1d pm2.61i ) CE
      FZBGFZCAHZIZABJKZLZMZBCNUAZOPZQWBVPWDWBVPMZWCCDHZUBVRUCZAVTUDZDBUEKZCUFUG
      ZUHZOVQVPWCWKPWAADVTBCWIEWIRVTRUIUJWEWHTZDWJLWKOPWEWLDWJWBVPWFWJFZWLWAVQV
      PWMMZWLQWAVQWNWLVQWNMZWAWLWOWAMWGTZAVTLZWLWOWAWQWOVSWPAVTVSCVRFZTWOVRVTFZ
      MZWPCVRUKWTWGWRWNWGWRQVQWSWNWGWRDAUNZMWRCWFVREWJULWRXAUOUMUPUQURUSVEWGAVT
      UTVASVBVCVDVFWHDWJVGVHVISVPTZWDWBXBBEFZVPMTWDXBVPXCXBVJVKBCVLVMVNVO $.
  $}

  ${
    $d G e n $.  $d K e n $.
    ${
      nbgr0vtxlem.v $e |- ( ph -> A. n e. ( ( Vtx ` G ) \ { K } )
                                  -. E. e e. ( Edg ` G ) { K , n } C_ e ) $.
      $( Lemma for ~ nbgr0vtx and ~ nbgr0edg .  (Contributed by AV,
         15-Nov-2020.) $)
      nbgr0vtxlem $p |- ( ph -> ( G NeighbVtx K ) = (/) ) $=
        ( cvtx cfv wcel cvv wa cnbgr co c0 wceq wi cv eqid wn a1d cpr cedg wrex
        wss cdif crab nbgrval ad2antrl wral ad2antll rabeq0 sylibr eqtrd expcom
        csn ex com23 wnel df-nel nbgrnvtx0 sylbir nbgrprc0 pm2.61nii ) EDGHZIZD
        JIEJIKZADELMZNOZPVEAVFVHVEAVFVHPVFVEAKZVHVFVIKZVGECQUABQUDBDUBHZUCZCVDE
        UOUEZUFZNVEVGVNOVFABCVKDEVDVDRZVKRUGUHVJVLSCVMUIZVNNOAVPVFVEFUJVLCVMUKU
        LUMUNUPUQVESZVHAVQEVDURVHEVDUSDVDEVOUTVATVFSVHADEVBTVC $.
    $}

    $( In a null graph (with no vertices), all neighborhoods are empty.
       (Contributed by AV, 15-Nov-2020.) $)
    nbgr0vtx $p |- ( ( Vtx ` G ) = (/) -> ( G NeighbVtx K ) = (/) ) $=
      ( ve vn cvtx cfv c0 wceq cpr wss cedg wrex csn cdif wral ral0 difeq1 0dif
      cv wn syl6eq raleqdv mpbiri nbgr0vtxlem ) AEFZGHZCDABUFBDSICSJCAKFLTZDUEB
      MZNZOUGDGOUGDPUFUGDUIGUFUIGUHNGUEGUHQUHRUAUBUCUD $.

    $( In an empty graph (with no edges), every vertex has no neighbor.
       (Contributed by Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV,
       26-Oct-2020.)  (Proof shortened by AV, 15-Nov-2020.) $)
    nbgr0edg $p |- ( ( Edg ` G ) = (/) -> ( G NeighbVtx K ) = (/) ) $=
      ( ve vn cedg cfv c0 wceq cv cpr wss wrex wn cvtx csn cdif wral rzal sylib
      ralnex ralrimivw nbgr0vtxlem ) AEFZGHZCDABUDBDIJCIKZCUCLMZDANFBOPUDUEMZCU
      CQUFUGCUCRUECUCTSUAUB $.

    ${
      $d G e n v $.  $d K v $.
      $( In a graph with one vertex, all neighborhoods are empty.  (Contributed
         by AV, 15-Nov-2020.) $)
      nbgr1vtx $p |- ( ( # ` ( Vtx ` G ) ) = 1 -> ( G NeighbVtx K ) = (/) ) $=
        ( ve vn vv cvtx cfv wcel chash wceq c0 wi wa cv wn csn cdif wral cvv ex
        c1 cnbgr co cpr wss cedg wrex fvex hash1snb ax-mp ral0 eleq2 simpr sneq
        wex adantr difeq12d difid syl6eq elsni syl11 sylbid imp raleqdv exlimiv
        wb mpbiri sylbi impcom nbgr0vtxlem wnel df-nel nbgrnvtx0 sylbir pm2.61i
        eqid a1d ) BAFGZHZVRIGUAJZABUBUCKJZLVSVTWAVSVTMCDABVTVSBDNUDCNUECAUFGUG
        OZDVRBPZQZRZVTVRENZPZJZEUOZVSWELZVRSHVTWIVFAFUHVRSEUIUJWHWJEWHVSWEWHVSM
        ZWEWBDKRWBDUKWKWBDWDKWHVSWDKJZWHVSBWGHZWLVRWGBULBWFJZWHWLWMWNWHWLWNWHMZ
        WDWGWGQKWOVRWGWCWGWNWHUMWNWCWGJWHBWFUNUPUQWGURUSTBWFUTVAVBVCVDVGTVEVHVI
        VJTVSOZWAVTWPBVRVKWABVRVLAVRBVRVPVMVNVQVO $.
    $}

    $d V e n v $.
    nbgrnself.v $e |- V = ( Vtx ` G ) $.
    $( A vertex in a graph is not a neighbor of itself.  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV, 3-Nov-2020.)
       (Revised by AV, 21-Mar-2021.) $)
    nbgrnself $p |- A. v e. V v e/ ( G NeighbVtx v ) $=
      ( vn ve cv cnbgr co wnel wcel cpr wss cedg cfv wrex csn cdif crab wa wceq
      neldifsnd intnanrd df-nel preq2 sseq1d rexbidv elrab xchbinx sylibr eqidd
      wn eqid nbgrval neleq12d mpbird rgen ) AGZBURHIZJZACURCKZUTURUREGZLZFGZMZ
      FBNOZPZECURQRZSZJZVAURVHKZURURLZVDMZFVFPZTZULVJVAVKVNVAURCUBUCVJURVIKVOUR
      VIUDVGVNEURVHVBURUAZVEVMFVFVPVCVLVDVBURURUEUFUGUHUIUJVAURURUSVIVAURUKFEVF
      BURCDVFUMUNUOUPUQ $.
  $}

  ${
    $d G v $.  $d X v $.
    $( A class ` X ` is not a neighbor of itself (whether it is a vertex or
       not).  (Contributed by Alexander van der Vekens, 12-Oct-2017.)  (Revised
       by AV, 3-Nov-2020.)  (Revised by AV, 12-Feb-2022.) $)
    nbgrnself2 $p |- X e/ ( G NeighbVtx X ) $=
      ( vv cvtx cfv wcel cnbgr co wnel cv wceq id oveq2 neleq12d eqid nbgrnself
      vtoclri wn nbgrisvtx con3i df-nel sylibr pm2.61i ) BADEZFZBABGHZIZCJZAUHG
      HZIUGCBUDUHBKZUHBUIUFUJLUHBAGMNCAUDUDOZPQUERBUFFZRUGULUEABBUDUKSTBUFUAUBU
      C $.

    $d V v $.
    nbgrssovtx.v $e |- V = ( Vtx ` G ) $.
    $( The neighbors of a vertex ` X ` form a subset of all vertices except the
       vertex ` X ` itself.  Stronger version of ~ nbgrssvtx .  (Contributed by
       Alexander van der Vekens, 13-Jul-2018.)  (Revised by AV, 3-Nov-2020.)
       (Revised by AV, 12-Feb-2022.) $)
    nbgrssovtx $p |- ( G NeighbVtx X ) C_ ( V \ { X } ) $=
      ( vv cnbgr co csn cdif cv wcel nbgrisvtx wceq wn nbgrnself2 df-nel neleq1
      wne wnel syl5bbr mpbiri necon2ai eldifsn sylanbrc ssriv ) EACFGZBCHIZEJZU
      FKZUHBKUHCRUHUGKACUHBDLUIUHCUHCMZUINZCUFSZACOUKUHUFSUJULUHUFPUHCUFQTUAUBU
      HBCUCUDUE $.

    $( The neighbors of a vertex ` X ` form a subset of all vertices except the
       vertex ` X ` itself and a class ` M ` which is not a neighbor of ` X ` .
       (Contributed by Alexander van der Vekens, 13-Jul-2018.)  (Revised by AV,
       3-Nov-2020.)  (Revised by AV, 12-Feb-2022.) $)
    nbgrssvwo2 $p |- ( M e/ ( G NeighbVtx X )
                         -> ( G NeighbVtx X ) C_ ( V \ { M , X } ) ) $=
      ( cnbgr co wnel csn cdif cpr wss wi nbgrssovtx cin c0 wceq wcel wn df-nel
      disjsn sylbb2 reldisj syl5ib ax-mp prcom difeq2i difpr eqtri syl6sseqr )
      BADFGZHZUKCDIJZBIZJZCBDKZJZUKUMLZULUKUOLZMACDENULUKUNOPQZURUSULBUKRSUTBUK
      TUKBUAUBUKUNUMUCUDUEUQCDBKZJUOUPVACBDUFUGCDBUHUIUJ $.
  $}

  ${
    $d G v $.  $d N v $.  $d W v $.
    $( Obsolete version of ~ nbgrnself2 as of 12-Feb-2022.  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV, 3-Nov-2020.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    nbgrnself2OLD $p |- ( G e. W -> N e/ ( G NeighbVtx N ) ) $=
      ( vv cvtx cfv wcel cnbgr co wnel wi cv wral wceq id oveq2 neleq12d rspccv
      eqid wn nbgrnself a1i syl11 nbgrisvtxOLD con3rr3 df-nel syl6ibr pm2.61i
      ex ) BAEFZGZACGZBABHIZJZKDLZAUOHIZJZDUJMZUKUNULUQUNDBUJUOBNZUOBUPUMUSOUOB
      AHPQRURULDAUJUJSZUAUBUCUKTULBUMGZTUNULVAUKULVAUKABBUJCUTUDUIUEBUMUFUGUH
      $.

    $d V v $.
    nbgrssovtxOLD.v $e |- V = ( Vtx ` G ) $.
    $( Obsolete version of ~ nbgrssovtx as of 12-Feb-2022.  (Contributed by
       Alexander van der Vekens, 13-Jul-2018.)  (Revised by AV, 3-Nov-2020.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    nbgrssovtxOLD $p |- ( G e. W -> ( G NeighbVtx N ) C_ ( V \ { N } ) ) $=
      ( vv wcel cnbgr co csn cdif cv wa nbgrisvtxOLD wceq wn wnel nbgrnself2OLD
      wne ex adantr df-nel wb neleq1 adantl syl5bbr mpbird con2d neqned eldifsn
      imp sylanbrc ssrdv ) ADGZFABHIZCBJKZUNFLZUOGZUQUPGZUNURMZUQCGUQBSUSABUQCD
      ENUTUQBUNURUQBOZPUNVAURUNVAURPZUNVAMZVBBUOQZUNVDVAABDRUAVBUQUOQZVCVDUQUOU
      BVAVEVDUCUNUQBUOUDUEUFUGTUHUKUIUQCBUJULTUM $.

    $( Obsolete version of ~ nbgrssvwo2 as of 12-Feb-2022.  (Contributed by
       Alexander van der Vekens, 13-Jul-2018.)  (Revised by AV, 3-Nov-2020.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    nbgrssvwo2OLD $p |- ( ( G e. W /\ M e/ ( G NeighbVtx N ) )
                         -> ( G NeighbVtx N ) C_ ( V \ { M , N } ) ) $=
      ( wcel cnbgr co wnel wa csn cdif cpr wss wi nbgrssovtxOLD cin c0 wceq syl
      wn df-nel disjsn sylbb2 reldisj syl5ib imp prcom difeq2i difpr syl6sseqr
      eqtri ) AEGZBACHIZJZKUODCLMZBLZMZDBCNZMZUNUPUOUSOZUNUOUQOZUPVBPACDEFQUPUO
      URRSTZVCVBUPBUOGUBVDBUOUCUOBUDUEUOURUQUFUGUAUHVADCBNZMUSUTVEDBCUIUJDCBUKU
      MUL $.
  $}

  ${
    $( Obsolete as of 12-Feb-2022.  Use ~ nbgrnself2 instead.  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV, 27-Oct-2020.)
       (Proof shortened by AV, 3-Nov-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    usgrnbnself2OLD $p |- ( G e. USGraph -> N e/ ( G NeighbVtx N ) ) $=
      ( cusgr nbgrnself2OLD ) ABCD $.
  $}

  ${
    $d G e $.  $d K e $.  $d N e $.
    $( In a graph, the neighborhood relation is symmetric: a vertex ` N ` in a
       graph ` G ` is a neighbor of a second vertex ` K ` iff the second vertex
       ` K ` is a neighbor of the first vertex ` N ` .  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV, 27-Oct-2020.)
       (Revised by AV, 12-Feb-2022.) $)
    nbgrsym $p |- ( N e. ( G NeighbVtx K ) <-> K e. ( G NeighbVtx N ) ) $=
      ( ve cvtx cfv wcel wa wne cpr cv wss cedg wrex cnbgr co ancom eqid nbgrel
      w3a necom prcom sseq1i rexbii 3anbi123i 3bitr4i ) CAEFZGZBUGGZHZCBIZBCJZD
      KZLZDAMFZNZTUIUHHZBCIZCBJZUMLZDUONZTCABOPGBACOPGUJUQUKURUPVAUHUIQCBUAUNUT
      DUOULUSUMBCUBUCUDUEDUOACUGBUGRZUORZSDUOABUGCVBVCSUF $.

    $d W e $.
    $( Obsolete version of ~ nbgrsym as of 12-Feb-2022.  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV, 27-Oct-2020.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    nbgrsymOLD $p |- ( G e. W -> ( N e. ( G NeighbVtx K )
                                <-> K e. ( G NeighbVtx N ) ) ) $=
      ( ve wcel cvtx cfv wa wne cpr cv wss cedg wrex w3a cnbgr eqid nbgrelOLD
      co wb ancom necom prcom sseq1i rexbii 3anbi123i a1i 3bitr4d ) ADFZCAGHZFZ
      BUKFZIZCBJZBCKZELZMZEANHZOZPZUMULIZBCJZCBKZUQMZEUSOZPZCABQTFBACQTFVAVGUAU
      JUNVBUOVCUTVFULUMUBCBUCURVEEUSUPVDUQBCUDUEUFUGUHEUSACBUKDUKRZUSRZSEUSABCU
      KDVHVISUI $.
  $}

  ${
    $d E e $.  $d G e $.  $d K e $.  $d N e $.  $d M e $.  $d V e $.
    nbupgrres.v $e |- V = ( Vtx ` G ) $.
    nbupgrres.e $e |- E = ( Edg ` G ) $.
    nbupgrres.f $e |- F = { e e. E | N e/ e } $.
    nbupgrres.s $e |- S = <. ( V \ { N } ) , ( _I |` F ) >. $.
    $( The neighborhood of a vertex in a restricted pseudograph (not
       necessarily valid for a hypergraph, because ` N ` , ` K ` and ` M `
       could be connected by one edge, so ` M ` is a neighbor of ` K ` in the
       original graph, but not in the restricted graph, because the edge
       between ` M ` and ` K ` , also incident with ` N ` , was removed).
       (Contributed by Alexander van der Vekens, 2-Jan-2018.)  (Revised by AV,
       8-Nov-2020.) $)
    nbupgrres $p |- ( ( ( G e. UPGraph /\ N e. V ) /\ K e. ( V \ { N } )
                        /\ M e. ( V \ { N , K } ) )
                   -> ( M e. ( G NeighbVtx K ) -> M e. ( S NeighbVtx K ) ) ) $=
      ( wcel wa cdif wne eldifsn sylbi 3ad2ant3 cupgr csn cpr w3a cnbgr co wnel
      wb simp1l eldifi 3ad2ant2 anim1i difpr eleq2s nbupgrel syl21anc biimpa wn
      eleq2i anbi1i 3bitri simpr necomd adantr nelprd df-nel sylibr cv sylanbrc
      neleq2 elrab2 upgrres1 3ad2ant1 simp2 sylbb jca31 cfv upgrres1lem2 eqcomi
      cvtx cedg ciedg crn cid cres edgval upgrres1lem3 rneqi rnresi 3eqtrri syl
      mpbird ex ) EUANZHINZOZFIHUBZPZNZGIHFUCPZNZUDZGEFUEUFNZGAFUEUFNZXBXCOZXDG
      FUCZDNZXEXFCNZHXFUGZXGXBXCXHXBWNFINZGINZGFQZOZXCXHUHWNWOWSXAUIWSWPXJXAFIW
      QUJUKXAWPXMWSXMGWRFUBPZWTGXNNZGWRNZXLOZXMGWRFRZXPXKXLGIWQUJULSIHFUMZUNTCE
      FGIJKUOUPUQXBXIXCXBHXFNURXIXBHGFXAWPHGQZWSXAXKGHQZOZXLOZXTXAXOXQYCWTXNGXS
      USZXRXPYBXLGIHRUTVAYBXTXLYBGHXKYAVBVCVDSTWSWPHFQZXAWSXJFHQZOZYEFIHRYGFHXJ
      YFVBVCSUKVEHXFVFVGVDHBVHZUGXIBXFCDYHXFHVJLVKVIXEAUANZWSOXQOZXDXGUHXBYJXCX
      BYIWSXQWPWSYIXAABCDEHIJKLMVLVMWPWSXAVNXAWPXQWSXAXOXQYDXRVOTVPVDDAFGWRAVTV
      QWRABCDEHIJKLMVRVSAWAVQAWBVQZWCWDDWEZWCDAWFYKYLABCDEHIJKLMWGWHDWIWJUOWKWL
      WM $.
  $}

  ${
    usgrnbcnvfv.i $e |- I = ( iEdg ` G ) $.
    $( Applying the edge function on the converse edge function applied on a
       pair of a vertex and one of its neighbors is this pair in a simple
       graph.  (Contributed by Alexander van der Vekens, 18-Dec-2017.)
       (Revised by AV, 27-Oct-2020.) $)
    usgrnbcnvfv $p |- ( ( G e. USGraph /\ N e. ( G NeighbVtx K ) )
                     -> ( I ` ( `' I ` { K , N } ) ) = { K , N } ) $=
      ( cusgr wcel cdm crn wf1o cnbgr co cpr ccnv cfv wceq usgrf1o prcom cedg
      wa nbusgreledg ciedg edgval eqcomi rneqi eqtri a1i eleq2d bitrd syl5eqelr
      eqid biimpa f1ocnvfv2 syl2an2r ) AFGZBHZBIZBJDACKLGZCDMZUQGUSBNOBOUSPBAEQ
      UOURTUSDCMZUQDCRUOURUTUQGZUOURUTASOZGVAVBACDVBUKUAUOVBUQUTVBUQPUOVBAUBOZI
      UQAUCVCBBVCEUDUEUFUGUHUIULUJUPUQUSBUMUN $.
  $}

  ${
    $d E e $.  $d G e $.  $d M e $.  $d N e $.
    nbusgredgeu.e $e |- E = ( Edg ` G ) $.
    $( For each neighbor of a vertex there is exactly one edge between the
       vertex and its neighbor in a simple graph.  (Contributed by Alexander
       van der Vekens, 17-Dec-2017.)  (Revised by AV, 27-Oct-2020.) $)
    nbusgredgeu $p |- ( ( G e. USGraph /\ M e. ( G NeighbVtx N ) )
                            -> E! e e. E e = { M , N } ) $=
      ( cusgr wcel cnbgr co wa cv cpr wceq wrex wrmo wreu nbusgreledg biimpa wb
      eqeq1 adantl eqidd rspcedvd rmoeq a1i reu5 sylanbrc ) CGHZDCEIJHZKZALZDEM
      ZNZABOUNABPZUNABQUKUNUMUMNZAUMBUIUJUMBHBCEDFRSUNUNUPTUKULUMUMUAUBUKUMUCUD
      UOUKAUMBUEUFUNABUGUH $.
  $}

  ${
    $d C n $.  $d E n $.  $d G n $.  $d M n $.  $d V n $.
    edgnbusgreu.v $e |- V = ( Vtx ` G ) $.
    edgnbusgreu.e $e |- E = ( Edg ` G ) $.
    edgnbusgreu.n $e |- N = ( G NeighbVtx M ) $.
    $( For each edge incident to a vertex there is exactly one neighbor of the
       vertex also incident to this edge in a simple graph.  (Contributed by
       AV, 28-Oct-2020.) $)
    edgnbusgreu $p |- ( ( ( G e. USGraph /\ M e. V ) /\ ( C e. E /\ M e. C ) )
                        -> E! n e. N C = { M , n } ) $=
      ( wcel wa cpr wceq weu wreu cfv simpl eleq2i simprr cv cvtx adantr biimpi
      cusgr cedg ad2antrl usgredg2vtxeu syl3anc df-reu wi eqeq2i eleq1d biimpcd
      prcom adantld imp jca eqid usgrpredgv simpld syl2an impbida eubidv biimpd
      syl5bi mpd wb cnbgr co nbusgreledg syl5bb anbi1d ad2antrr mpbird sylibr )
      DUEKZEGKZLZACKZEAKZLZLZBUAZFKZAEWDMZNZLZBOZWGBFPWCWIWDEMZCKZWGLZBOZWCWGBD
      UBQZPZWMWCVQADUFQZKZWAWOVSVQWBVQVRRUCZVTWQVSWAVTWQCWPAISUDUGVSVTWATBADEUH
      UIWOWDWNKZWGLZBOZWCWMWGBWNUJWCXAWMWCWTWLBWCWTWLWCWTLWKWGWCWTWKWCWGWKWSVTW
      GWKUKVSWAWGVTWKWGAWJCWGAWJNWFWJAEWDUOULUDUMUNUGUPUQWCWSWGTURWCWLLWSWGWCVQ
      WKWSWLWRWKWGRVQWKLWSEWNKCDWDEWNIWNUSUTVAVBWCWKWGTURVCVDVEVFVGWCWHWLBVQWHW
      LVHVRWBVQWEWKWGWEWDDEVIVJZKVQWKFXBWDJSCDEWDIVKVLVMVNVDVOWGBFUJVP $.
  $}

  ${
    $d E i e $.  $d G i $.  $d M i $.  $d N i $.  $d U i e $.  $d V i $.
    nbusgrf1o1.v $e |- V = ( Vtx ` G ) $.
    nbusgrf1o1.e $e |- E = ( Edg ` G ) $.
    nbusgrf1o1.n $e |- N = ( G NeighbVtx U ) $.
    nbusgrf1o1.i $e |- I = { e e. E | U e. e } $.
    $( For each neighbor of a vertex there is exactly one edge between the
       vertex and its neighbor in a simple graph.  (Contributed by Alexander
       van der Vekens, 17-Dec-2017.)  (Revised by AV, 27-Oct-2020.)  (Proof
       shortened by AV, 13-Feb-2022.) $)
    nbusgredgeu0 $p |- ( ( ( G e. USGraph /\ U e. V ) /\ M e. N )
                          -> E! i e. I i = { U , M } ) $=
      ( wcel wa cv weu wreu cnbgr co cusgr wceq simpll eleq2i wb nbgrsym biimpd
      cpr a1i syl5bi imp nbusgredgeu syl2anc df-reu sylib anass prid1g ad2antlr
      eleq2 syl5ibrcom pm4.71rd bicomd anbi2d syl5bb eubidv mpbird elrab2 eubii
      anbi1i bitri sylibr ) EUANZAINZOZGHNZOZCPZDNZAVQNZOZVQAGUHZUBZOZCQZWBCFRZ
      VPWDVRWBOZCQZVPWBCDRZWGVPVLAEGSTNZWHVLVMVOUCVNVOWIVOGEASTZNZVNWIHWJGLUDVN
      WKWIWKWIUEVNEAGUFUIUGUJUKCDEAGKULUMWBCDUNUOVPWCWFCWCVRVSWBOZOVPWFVRVSWBUP
      VPWLWBVRVPWBWLVPWBVSVPVSWBAWANZVMWMVLVOAGIUQURVQWAAUSUTVAVBVCVDVEVFWEVQFN
      ZWBOZCQWDWBCFUNWOWCCWNVTWBABPZNVSBVQDFWPVQAUSMVGVIVHVJVK $.

    $d E n $.  $d G e n $.  $d I e n $.  $d N e n $.  $d U n $.  $d V e n $.
    ${
      $d F e $.
      nbusgrf1o.f $e |- F = ( n e. N |-> { U , n } ) $.
      $( The mapping of neighbors of a vertex to edges incident to the vertex
         is a bijection ( 1-1 onto function) in a simple graph.  (Contributed
         by Alexander van der Vekens, 17-Dec-2017.)  (Revised by AV,
         28-Oct-2020.) $)
      nbusgrf1o0 $p |- ( ( G e. USGraph /\ U e. V )
                        -> F : N -1-1-onto-> I ) $=
        ( wcel wa cv cpr wral eleq2i cusgr wceq wreu wf1o co nbusgreledg adantr
        cnbgr prcom eleq1i biimpi adantl prid1g crab eleq2 elrab bitri sylanbrc
        wb ex sylbid syl5bi imp ralrimiva rabeq2i edgnbusgreu sylan2b f1ompt )
        FUAOZAIOZPZACQZRZGOZCHSBQZVMUBCHUCZBGSHGEUDVKVNCHVKVLHOZVNVQVLFAUHUEZOZ
        VKVNHVRVLLTVKVSVLARZDOZVNVIVSWAUSVJDFAVLKUFUGVKWAVNVKWAPVMDOZAVMOZVNWAW
        BVKWAWBVTVMDVLAUIUJUKULVKWCWAVJWCVIAVLIUMULUGVNVMAVOOZBDUNZOWBWCPGWEVMM
        TWDWCBVMDVOVMAUOUPUQURUTVAVBVCVDVKVPBGVOGOVKVODOWDPVPWDBGDMVEVOCDFAHIJK
        LVFVGVDCBHGVMENVHUR $.
    $}

    $d I f $.  $d N f n $.  $d U f $.
    $( The set of neighbors of a vertex is isomorphic to the set of edges
       containing the vertex in a simple graph.  (Contributed by Alexander van
       der Vekens, 19-Dec-2017.)  (Revised by AV, 28-Oct-2020.) $)
    nbusgrf1o1 $p |- ( ( G e. USGraph /\ U e. V )
                       -> E. f f : N -1-1-onto-> I ) $=
      ( vn cusgr wcel wa cv cvv wf1o cnbgr cpr cmpt co ovex eqeltri mptexg mp1i
      wex eqid nbusgrf1o0 f1oeq1 spcegv sylc ) ENOAHOPZMGAMQUAZUBZROZGFUPSZGFCQ
      ZSZCUHGROUQUNGEATUCRKEATUDUEMGUORUFUGABMDUPEFGHIJKLUPUIUJUTURCUPRGFUSUPUK
      ULUM $.
  $}

  ${
    $d E c e f $.  $d G c f $.  $d U c e f $.  $d V c $.
    nbusgrf1o.v $e |- V = ( Vtx ` G ) $.
    nbusgrf1o.e $e |- E = ( Edg ` G ) $.
    $( The set of neighbors of a vertex is isomorphic to the set of edges
       containing the vertex in a simple graph.  (Contributed by Alexander van
       der Vekens, 19-Dec-2017.)  (Revised by AV, 28-Oct-2020.) $)
    nbusgrf1o $p |- ( ( G e. USGraph /\ U e. V )
             -> E. f f : ( G NeighbVtx U ) -1-1-onto-> { e e. E | U e. e } ) $=
      ( vc cv wcel crab cnbgr co eqid eleq2 cbvrabv nbusgrf1o1 ) AICDEABJZKZBDL
      EAMNZFGHUAOTAIJZKBIDSUBAPQR $.

    $( The number of neighbors of a vertex is the number of edges at the vertex
       in a simple graph.  (Contributed by AV, 27-Dec-2020.)  (Proof shortened
       by AV, 5-May-2021.) $)
    nbedgusgr $p |- ( ( G e. USGraph /\ U e. V )
                -> ( # ` ( G NeighbVtx U ) ) = ( # ` { e e. E | U e. e } ) ) $=
      ( vf cnbgr co cvv wcel cusgr wa cv crab wf1o wex chash cfv wceq nbusgrf1o
      ovex hasheqf1oi mpsyl ) DAIJZKLDMLAELNUFABOLBCPZHOQHRUFSTUGSTUADAIUCABHCD
      EFGUBUFUGHKUDUE $.

    $( The number of neighbors of a vertex in a simple graph is finite iff the
       number of edges having this vertex as endpoint is finite.  (Contributed
       by Alexander van der Vekens, 20-Dec-2017.)  (Revised by AV,
       28-Oct-2020.) $)
    edgusgrnbfin $p |- ( ( G e. USGraph /\ U e. V )
            -> ( ( G NeighbVtx U ) e. Fin <-> { e e. E | U e. e } e. Fin ) ) $=
      ( vf cusgr wcel wa cnbgr co cfn cv crab wi expcom syl exlimiv wex wfo wf1
      wf1o nbusgrf1o f1ofo fofi f1of1 f1fi impbid ) DIJAEJKZDALMZNJZABOJBCPZNJZ
      UKULUNHOZUDZHUAZUMUOQZABHCDEFGUEZUQUSHUQULUNUPUBZUSULUNUPUFUMVAUOULUNUPUG
      RSTSUKURUOUMQZUTUQVBHUQULUNUPUCZVBULUNUPUHUOVCUMULUNUPUIRSTSUJ $.

    $( The class of neighbors of a vertex in a simple graph with a finite
       number of edges is a finite set.  (Contributed by Alexander van der
       Vekens, 19-Dec-2017.)  (Revised by AV, 28-Oct-2020.) $)
    nbusgrfi $p |- ( ( G e. USGraph /\ E e. Fin /\ U e. V )
                     -> ( G NeighbVtx U ) e. Fin ) $=
      ( ve cusgr wcel cfn w3a cnbgr co crab rabfi 3ad2ant2 edgusgrnbfin 3adant2
      cv wb mpbird ) CHIZBJIZADIZKCALMJIZAGSIZGBNJIZUCUBUGUDUFGBOPUBUDUEUGTUCAG
      BCDEFQRUA $.
  $}

  $( The class of neighbors of a vertex in a finite simple graph is a finite
     set.  (Contributed by Alexander van der Vekens, 7-Mar-2018.)  (Revised by
     AV, 28-Oct-2020.) $)
  nbfiusgrfi $p |- ( ( G e. FinUSGraph /\ N e. ( Vtx ` G ) )
                     -> ( G NeighbVtx N ) e. Fin ) $=
    ( cfusgr wcel cvtx cfv wa cusgr cedg cfn cnbgr co fusgrusgr adantr fusgrfis
    simpr eqid nbusgrfi syl3anc ) ACDZBAEFZDZGAHDZAIFZJDZUBABKLJDTUCUBAMNTUEUBA
    ONTUBPBUDAUAUAQUDQRS $.

  ${
    hashnbusgrnn0.v $e |- V = ( Vtx ` G ) $.
    $( The number of neighbors of a vertex in a finite simple graph is a
       nonnegative integer.  (Contributed by Alexander van der Vekens,
       14-Jul-2018.)  (Revised by AV, 15-Dec-2020.) $)
    hashnbusgrnn0 $p |- ( ( G e. FinUSGraph /\ U e. V )
                          -> ( # ` ( G NeighbVtx U ) ) e. NN0 ) $=
      ( cfusgr wcel wa cnbgr co cfn chash cfv cn0 cvtx eleq2i nbfiusgrfi hashcl
      sylan2b syl ) BEFZACFZGBAHIZJFZUBKLMFUATABNLZFUCCUDADOBAPRUBQS $.

    $( The number of neighbors of a vertex is at most the number of vertices of
       the graph minus 1 in a finite simple graph.  (Contributed by AV,
       16-Dec-2020.)  (Proof shortened by AV, 13-Feb-2022.) $)
    nbfusgrlevtxm1 $p |- ( ( G e. FinUSGraph /\ U e. V )
                        -> ( # ` ( G NeighbVtx U ) ) <_ ( ( # ` V ) - 1 ) ) $=
      ( cfusgr wcel wa cnbgr co chash cfv csn cdif c1 cmin cle cvv wss wbr cvtx
      difexi nbgrssovtx a1i hashss sylancr cfn wceq fusgrvtxfi hashdifsn eqcomd
      fvexi sylan breqtrrd ) BEFZACFZGZBAHIZJKZCALZMZJKZCJKNOIZPUPUTQFUQUTRZURV
      APSCUSCBTDUKUAVCUPBCADUBUCUTUQQUDUEUNCUFFZUOVBVAUGBCDUHVDUOGVAVBCAUIUJULU
      M $.

    $( If there is a vertex which is not a neighbor of another vertex, the
       number of neighbors of the other vertex is at most the number of
       vertices of the graph minus 2 in a finite simple graph.  (Contributed by
       AV, 16-Dec-2020.)  (Proof shortened by AV, 13-Feb-2022.) $)
    nbfusgrlevtxm2 $p |- ( ( ( G e. FinUSGraph /\ U e. V )
                           /\ ( M e. V /\ M =/= U /\ M e/ ( G NeighbVtx U ) ) )
                        -> ( # ` ( G NeighbVtx U ) ) <_ ( ( # ` V ) - 2 ) ) $=
      ( cfusgr wcel wa wne cnbgr co wnel w3a chash cfv cpr cdif c2 cle cvv cmin
      wss wbr cvtx fvexi difexg simpr3 nbgrssvwo2 syl hashss syl2anc fusgrvtxfi
      mp1i cfn wceq ad2antrr simpr1 simplr simpr2 hashdifpr syl13anc breqtrd )
      BFGZADGZHZCDGZCAIZCBAJKZLZMZHZVHNOZDCAPZQZNOZDNORUAKZSVKVNTGZVHVNUBZVLVOS
      UCDTGVQVKDBUDEUEDVMTUFUMVKVIVRVEVFVGVIUGBCDAEUHUIVNVHTUJUKVKDUNGZVFVDVGVO
      VPUOVCVSVDVJBDEULUPVEVFVGVIUQVCVDVJURVEVFVGVIUSDCAUTVAVB $.

    $( If the number of neighbors of a vertex in a finite simple graph is the
       number of vertices of the graph minus 1, each vertex except the first
       mentioned vertex is a neighbor of this vertex.  (Contributed by
       Alexander van der Vekens, 14-Jul-2018.)  (Revised by AV,
       16-Dec-2020.) $)
    nbusgrvtxm1 $p |- ( ( G e. FinUSGraph /\ U e. V )
                   -> ( ( # ` ( G NeighbVtx U ) ) = ( ( # ` V ) - 1 )
                        -> ( ( M e. V /\ M =/= U )
                             -> M e. ( G NeighbVtx U ) ) ) ) $=
      ( co wcel wa chash cfv c1 cmin wi wn c2 cle wbr simpr adantr ex cnbgr wne
      cfusgr wceq ax-1 2a1d wnel simprl adantl df-nel biimpri nbfusgrlevtxm2 wb
      syl13anc breq1 cfn cn0 fusgrvtxfi hashcl cr nn0re clt 2re a1i id ltsub2dd
      1red 1lt2 resubcld peano2rem ltnled syl 3syl pm2.21d ad3antlr sylbid mpid
      mpbid com23 pm2.61i ) CBAUAFZGZBUCGZADGZHZWAIJZDIJZKLFZUDZCDGZCAUBZHZWBMZ
      MZMWBWMWEWIWBWLUEUFWBNZWEWNWOWEHZWLWIWBWPWLWIWBMWPWLHZWIWFWGOLFZPQZWBWQWE
      WJWKCWAUGZWSWPWEWLWOWERSWPWJWKUHWLWKWPWJWKRUIWPWTWLWOWTWEWTWOCWAUJUKSSABC
      DEULUNWQWIWSWBMWQWIHWSWHWRPQZWBWIWSXAUMWQWFWHWRPUOUIWEXAWBMZWOWLWIWCXBWDW
      CXAWBWCDUPGWGUQGZXANZBDEURDUSXCWGUTGZXDWGVAXEWRWHVBQXDXEKOWGXEVGOUTGXEVCV
      DZXEVEZKOVBQXEVHVDVFXEWRWHXEWGOXGXFVIWGVJVKVRVLVMVNSVOVPTVQTVSTVT $.
  $}

  ${
    $d A v $.  $d B v $.  $d C v $.  $d E v $.  $d G v $.  $d V v $.
    $d ph v $.
    nb3grpr.v $e |- V = ( Vtx ` G ) $.
    nb3grpr.e $e |- E = ( Edg ` G ) $.
    nb3grpr.g $e |- ( ph -> G e. USGraph ) $.
    nb3grpr.t $e |- ( ph -> V = { A , B , C } ) $.
    nb3grpr.s $e |- ( ph -> ( A e. X /\ B e. Y /\ C e. Z ) ) $.
    $( Lemma 1 for ~ nb3grpr .  (Contributed by Alexander van der Vekens,
       15-Oct-2017.)  (Revised by AV, 28-Oct-2020.) $)
    nb3grprlem1 $p |- ( ph -> ( ( G NeighbVtx A ) = { B , C }
                                <-> ( { A , B } e. E /\ { A , C } e. E ) ) ) $=
      ( wceq wcel syl adantr wb vv cnbgr co cpr wa prid1g 3ad2ant2 eleq2 eqcoms
      w3a adantl mpbid cusgr nbusgreledg prcom a1i eleq1d bitrd prid2g 3ad2ant3
      jca cv crab nbusgr cab wo ctp wi w3o vex wne usgredgne df-ne pm2.24 com12
      eltp wn sylbi ex com3r orc 2a1d olc 3jaoi sylbid impd 3mix2i simp2d eltpg
      eqid mpbiri eleq1 bicomd impcom preq2 biimpcd ad2antrl tpid3g jaoi impbid
      ad2antll abbidv df-rab dfpr2 3eqtr4g eqtrd impbida ) AFBUBUCZCDUDZPZBCUDZ
      EQZBDUDZEQZUEZAXJUEZXLXNXPCXHQZXLXPCXIQZXQAXRXJABHQZCIQZDJQZUJZXROXTXSXRY
      ACDIUFUGRSXJXRXQTZAYCXIXHXIXHCUHUIUKULAXQXLTZXJAFUMQZYDMYEXQCBUDZEQXLEFBC
      LUNYEYFXKEYFXKPYECBUOUPUQURRSULXPDXHQZXNXPDXIQZYGAYHXJAYBYHOYAXSYHXTCDJUS
      UTRSXJYHYGTZAYIXIXHXIXHDUHUIUKULAYGXNTZXJAYEYJMYEYGDBUDZEQXNEFBDLUNYEYKXM
      EYKXMPYEDBUOUPUQURRSULVAAXOUEZXHBUAVBZUDZEQZUAGVCZXIAXHYPPZXOAYEYQMUAEFBG
      KLVDRSYLYMGQZYOUEZUAVEYMCPZYMDPZVFZUAVEYPXIYLYSUUBUAYLYSUUBYLYRYOUUBYLYRY
      MBCDVGZQZYOUUBVHZAYRUUDTZXOAGUUCPZUUFNGUUCYMUHZRSUUDYLUUEUUDYMBPZYTUUAVIY
      LUUEVHZYMBCDUAVJVPUUIUUJYTUUAYLYOUUIUUBAYOUUIUUBVHZVHZXOAYEUULMYEYOUUKYEY
      OUEBYMVKZUUKEFBYMLVLUUMBYMPZVQZUUKBYMVMUUIUUOUUBUUOUUBVHBYMUUNUUBVNUIVOVR
      RVSRSVTYTUUBYLYOYTUUAWAWBUUAUUBYLYOUUAYTWCWBWDVRVOWEWFUUBYLYSYTYLYSVHUUAY
      TYLYSYTYLUEYRYOYLYTYRAYTYRVHXOAYTYRAYTUEZUUDYRUUPCUUCQZUUDAUUQYTAUUQCBPZC
      CPZCDPZVIZUUSUURUUTCWJWGAXTUUQUVATAXSXTYAOWHCBCDIWIRWKSYTUUQUUDTAYTUUDUUQ
      YMCUUCWLWMUKULAUUDYRTZYTAUUGUVBNUUGYRUUDUUHWMRZSULVSSWNYLYTYOXLYTYOVHAXNY
      TXLYOXLYOTCYMCYMPXKYNECYMBWOUQUIWPWQWNVAVSUUAYLYSUUAYLUEYRYOYLUUAYRAUUAYR
      VHXOAUUAYRAUUAUEZUUDYRUVDDUUCQZUUDAUVEUUAAYBUVEOYAXSUVEXTDJBCWRUTRSUUAUVE
      UUDTAUUAUUDUVEYMDUUCWLWMUKULAUVBUUAUVCSULVSSWNYLUUAYOXNUUAYOVHAXLUUAXNYOX
      NYOTDYMDYMPXMYNEDYMBWOUQUIWPXAWNVAVSWSVOWTXBYOUAGXCUACDXDXEXFXG $.

    $d A v w $.  $d B w $.  $d C w $.  $d E v $.  $d G w $.  $d V w $.
    nb3grpr.n $e |- ( ph -> ( A =/= B /\ A =/= C /\ B =/= C ) ) $.
    $( Lemma 2 for ~ nb3grpr .  (Contributed by Alexander van der Vekens,
       17-Oct-2017.)  (Revised by AV, 28-Oct-2020.)  (Proof shortened by AV,
       13-Feb-2022.) $)
    nb3grprlem2 $p |- ( ph -> ( ( G NeighbVtx A ) = { B , C }
                                <-> E. v e. V E. w e. ( V \ { v } )
                                    ( G NeighbVtx A ) = { v , w } ) ) $=
      ( cpr wceq cnbgr co cv ctp csn cdif wrex w3o wcel w3a sneq difeq2d eqeq2d
      wb preq1 rexeqbidv rextpg syl cusgr wa jca simpl difeq1 adantr rexeqdv wo
      preq2 rexprg 3adant1 ancoms 3adant2 3adant3 3orbi123d wne tprot a1i necom
      difeq1d diftpsn3 syl2anb eqtrd eqcomi anbi1i biimpi prcom eqeq2i oridm wn
      orbi2i bitr2i wnel nbgrnself2 wi df-nel 3ad2ant1 eleq2 syl5ibrcom con3rr3
      prid2g sylbi mpsyl biorf orcom syl6bb prid1g con3dimp expcom ioran sylibr
      orbi12d 3bior1fd 3bitrd 3bitr4rd ) AHDUAUBZCUCZBUCZSZTZBDEFUDZXOUEZUFZUGZ
      CXSUGZXNDXPSZTZBXSDUEZUFZUGZXNEXPSZTZBXSEUEZUFZUGZXNFXPSZTZBXSFUEZUFZUGZU
      HZXRBIXTUFZUGZCIUGZXNEFSZTZADJUIZEKUIZFLUIZUJZYCYSUNQYBYHYMYRCDEFJKLXODTZ
      XRYEBYAYGUUIXTYFXSXODUKULUUIXQYDXNXODXPUOUMUPXOETZXRYJBYAYLUUJXTYKXSXOEUK
      ULUUJXQYIXNXOEXPUOUMUPXOFTZXRYOBYAYQUUKXTYPXSXOFUKULUUKXQYNXNXOFXPUOUMUPU
      QURAIXSTZHUSUIZUTZUUBYCUNAUULUUMPOVAUUNUUAYBCIXSUULUUMVBUUNXRBYTYAUULYTYA
      TUUMIXSXTVCVDVEUPURAYEBUUCUGZYJBFDSZUGZYOBDESZUGZUHZXNUURTZXNDFSZTZVFZUUD
      XNEDSZTZVFZXNUUPTZXNFESZTZVFZUHZYSUUDAUUHUUTUVLUNQUUHUUOUVDUUQUVGUUSUVKUU
      FUUGUUOUVDUNUUEYEUVAUVCBEFKLXPETZYDUURXNXPEDVGUMXPFTZYDUVBXNXPFDVGUMVHVIU
      UEUUGUUQUVGUNZUUFUUGUUEUVOYJUUDUVFBFDLJUVNYIUUCXNXPFEVGUMXPDTZYIUVEXNXPDE
      VGUMVHVJVKUUEUUFUUSUVKUNUUGYOUVHUVJBDEJKUVPYNUUPXNXPDFVGUMUVMYNUVIXNXPEFV
      GUMVHVLVMURADEVNZDFVNZEFVNZUJZYSUUTUNRUVTYHUUOYMUUQYRUUSUVTYEBYGUUCUVTYGE
      FDUDZYFUFZUUCUVTXSUWAYFXSUWATUVTDEFVOVPVRUVQUVRUWBUUCTZUVSUVQEDVNFDVNUWCU
      VRDEVQDFVQEFDVSVTVLWAVEUVTYJBYLUUPUVTYLFDEUDZYKUFZUUPUVTXSUWDYKXSUWDTUVTU
      WDXSFDEVOWBVPVRUVQUVSUWEUUPTZUVRUVQUVSUTFEVNZUVQUTZUWFUVSUVQUWHUVSUVQUTUW
      HUVSUWGUVQEFVQWCWDVJFDEVSURVKWAVEUVTYOBYQUURUVRUVSYQUURTUVQDEFVSVIVEVMURA
      UUDUUDUVJVFZUVGUVKVFUVLUUDUWIUNAUWIUUDUUDVFUUDUVJUUDUUDUVIUUCXNFEWEWFWIUU
      DWGWJVPAUUDUVGUVJUVKAUVFWHZUUDUVGUNDXNWKZAUUHUWJHDWLZQUWKDXNUIZWHZUUHUWJW
      MDXNWNZUUHUVFUWMUUHUWMUVFDUVEUIZUUEUUFUWPUUGEDJWSWOXNUVEDWPWQWRWTXAUWJUUD
      UVFUUDVFUVGUVFUUDXBUVFUUDXCXDURAUVHWHZUVJUVKUNUWKAUUHUWQUWLQUWKUWNUUHUWQW
      MUWOUUHUVHUWMUUHUWMUVHDUUPUIZUUEUUFUWRUUGFDJWSWOXNUUPDWPWQWRWTXAUVHUVJXBU
      RXJAUVKUVGUVDAUVAWHZUVCWHZUTZUVDWHUWKAUUHUXAUWLQUWKUWNUUHUXAWMUWOUUHUWNUX
      AUUHUWNUTUWSUWTUUHUVAUWMUUHUWMUVADUURUIZUUEUUFUXBUUGDEJXEWOXNUURDWPWQXFUU
      HUVCUWMUUHUWMUVCDUVBUIZUUEUUFUXCUUGDFJXEWOXNUVBDWPWQXFVAXGWTXAUVAUVCXHXIX
      KXLXMXM $.

    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d E y $.  $d G x y z $.
    $d V x y z $.  $d ph y $.
    $( The neighbors of a vertex in a simple graph with three elements are an
       unordered pair of the other vertices iff all vertices are connected with
       each other.  (Contributed by Alexander van der Vekens, 18-Oct-2017.)
       (Revised by AV, 28-Oct-2020.) $)
    nb3grpr $p |- ( ph -> ( ( { A , B } e. E /\ { B , C } e. E
                              /\ { C , A } e. E )
                            <-> A. x e. V E. y e. V E. z e. ( V \ { y } )
                                ( G NeighbVtx x ) = { y , z } ) ) $=
      ( w3a cpr wcel cnbgr co cv wceq csn cdif wrex ctp wral wa wb prcom eleq1i
      id 3anbi123i 3anrot bitr4i a1i biadan2 an6 bitri nb3grprlem1 tprot syl6eq
      sylib syl6eqr sylibr 3anbi123d nb3grprlem2 wne necom 3bitr2d oveq2 eqeq1d
      biid 2rexbidv raltpg syl raleq bicomd ) AEFUAZHUBZFGUAZHUBZGEUAZHUBZTZIEU
      CUDZCUEZDUEUAZUFZDJWKUGUHZUICJUIZIFUCUDZWLUFZDWNUICJUIZIGUCUDZWLUFZDWNUIC
      JUIZTZIBUEZUCUDZWLUFZDWNUICJUIZBEFGUJZUKZXFBJUKZAWIWDEGUAZHUBZULZWFFEUAZH
      UBZULZWHGFUAZHUBZULZTZWJWEUFZWPWGUFZWSWCUFZTXBWIXSUMAWIWIXKXNXQTZULXSWIWI
      YCWIUPWIYCUMWIWIXNXQXKTYCWDXNWFXQWHXKWCXMHEFUNUOWEXPHFGUNUOWGXJHGEUNUOUQX
      KXNXQURUSUTVAWDWFWHXKXNXQVBVCUTAXTXLYAXOYBXRAEFGHIJKLMNOPQRVDAFGEHIJLMKNO
      PAJXGFGEUJQEFGVEVFZAEKUBZFLUBZGMUBZTZYFYGYETRYEYFYGURVGZVDAGEFHIJMKLNOPAJ
      XGGEFUJQGEFVEVHZAYHYGYEYFTRYGYEYFURVIZVDVJAXTWOYAWRYBXAADCEFGHIJKLMNOPQRS
      VKADCFGEHIJLMKNOPYDYIAEFVLZEGVLZFGVLZTZYNFEVLZGEVLZTZSYOYPYQYNTYRYLYPYMYQ
      YNYNEFVMEGVMZYNVQUQYNYPYQURUSVGVKADCGEFHIJMKLNOPYJYKAYOYQGFVLZYLTZSYOYMYN
      YLTUUAYLYMYNURYMYQYNYTYLYLYSFGVMYLVQUQVCVGVKVJVNAYHXHXBUMRXFWOWRXABEFGKLM
      XCEUFZXEWMCDJWNUUBXDWJWLXCEIUCVOVPVRXCFUFZXEWQCDJWNUUCXDWPWLXCFIUCVOVPVRX
      CGUFZXEWTCDJWNUUDXDWSWLXCGIUCVOVPVRVSVTAJXGUFZXHXIUMQUUEXIXHXFBJXGWAWBVTV
      N $.

    $( The neighbors of a vertex in a simple graph with three elements are an
       unordered pair of the other vertices iff all vertices are connected with
       each other.  (Contributed by Alexander van der Vekens, 18-Oct-2017.)
       (Revised by AV, 28-Oct-2020.) $)
    nb3grpr2 $p |- ( ph -> ( ( { A , B } e. E /\ { B , C } e. E
                                /\ { C , A } e. E )
                              <-> ( ( G NeighbVtx A ) = { B , C }
                                 /\ ( G NeighbVtx B ) = { A , C }
                                 /\ ( G NeighbVtx C ) = { A , B } ) ) ) $=
      ( cpr wcel w3a wa cnbgr co wceq wb 3anan32 a1i prcom eleq1i biimpi anbi2i
      pm4.71i anass bitr4i anbi1i bitri syl6bb df-3an 3anass anbi12i an6 tpcoma
      nb3grprlem1 ctp syl6eq 3ancoma sylib tprot 3anrot sylibr 3anbi123d bitr4d
      syl6eqr ) ABCQZERZCDQZERZDBQZERZSZVNBDQZERZTZCBQZERZVPTZVRDCQZERZTZSZFBUA
      UBVOUCZFCUAUBVTUCZFDUAUBVMUCZSAVSVNVRTZWAVPTZTZWIAVSWMVPTZWOVSWPUDAVNVPVR
      UEUFWPWMWATZVPTWOWMWQVPWMVNVRWATZTWQVRWRVNVRWAVRWAVQVTEDBUGUHUIUKUJVNVRWA
      ULUMUNWMWAVPULUOUPWOVNWDVRSZWAVPWGSZTWIWMWSWNWTWMVNWDTZVRTWSVNXAVRVNWDVNW
      DVMWCEBCUGUHUIUKUNVNWDVRUQUMWNWAVPWGTZTWTVPXBWAVPWGVPWGVOWFECDUGUHUIUKUJW
      AVPWGURUMUSVNWDVRWAVPWGUTUOUPAWJWBWKWEWLWHABCDEFGHIJKLMNOVBACBDEFGIHJKLMA
      GBCDVCZCBDVCNBCDVAVDABHRZCIRZDJRZSZXEXDXFSOXDXEXFVEVFVBADBCEFGJHIKLMAGXCD
      BCVCNDBCVGVLAXGXFXDXESOXFXDXEVHVIVBVJVK $.
  $}

  $( If the neighbors of two vertices in a graph with three elements are an
     unordered pair of the other vertices, the neighbors of all three vertices
     are an unordered pair of the other vertices.  (Contributed by Alexander
     van der Vekens, 18-Oct-2017.)  (Revised by AV, 28-Oct-2020.) $)
  nb3gr2nb $p |- ( ( ( A e. X /\ B e. Y /\ C e. Z )
                      /\ ( ( Vtx ` G ) = { A , B , C } /\ G e. USGraph ) )
        -> ( ( ( G NeighbVtx A ) = { B , C }
                /\ ( G NeighbVtx B ) = { A , C } )
             <-> ( ( G NeighbVtx A ) = { B , C }
                /\ ( G NeighbVtx B ) = { A , C }
                /\ ( G NeighbVtx C ) = { A , B } ) ) ) $=
    ( wcel w3a ctp wceq wa cnbgr co cpr biimpi simprr simprl simpl nb3grprlem1
    cvtx cfv cusgr cedg wi eleq1i adantl anim12i a1i eqid 3ancoma tpcoma eqeq2i
    prcom wb anim1i syl2an anbi12d 3anrot biimpri eqcomi anbi1i 3imtr4d pm4.71d
    tprot df-3an syl6bbr ) AEHZBFHZCGHZIZDUAUBZABCJZKZDUCHZLZLZDAMNBCOZKZDBMNAC
    OZKZLZWBDCMNABOZKZLVSWAWDIVQWBWDVQWCDUDUBZHZVTWEHZLZBAOWEHZVRWEHZLZLZCAOZWE
    HZCBOZWEHZLZWBWDWLWQUEVQWHWNWKWPWGWNWFWGWNVTWMWEACUNUFPUGWJWPWIWJWPVRWOWEBC
    UNUFPUGUHUIVQVSWHWAWKVQABCWEDVLEFGVLUJZWEUJZVKVNVOQVKVNVORVKVPSTVKVIVHVJIZV
    LBACJZKZVOLZWAWKUOVPVKWTVHVIVJUKPVNXBVOVNXBVMXAVLABCULUMPUPWTXCLBACWEDVLFEG
    WRWSWTXBVOQWTXBVORWTXCSTUQURVKVJVHVIIZVLCABJZKZVOLZWDWQUOVPXDVKVJVHVIUSUTVP
    XGVNXFVOVMXEVLXEVMCABVEVAUMVBPXDXGLCABWEDVLGEFWRWSXDXFVOQXDXFVORXDXGSTUQVCV
    DVSWAWDVFVG $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Universal vertices
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c UnivVtx $.

  $( Extend class notation with the universal vertices (in a graph). $)
  cuvtx $a class UnivVtx $.

  ${
    $d g v n $.
    $( Define the class of all universal vertices (in graphs).  A vertex is
       called _universal_ if it is adjacent, i.e. connected by an edge, to all
       other vertices (of the graph), or equivalently, if all other vertices
       are its neighbors.  (Contributed by Alexander van der Vekens,
       12-Oct-2017.)  (Revised by AV, 24-Oct-2020.) $)
    df-uvtx $a |- UnivVtx = ( g e. _V |-> { v e. ( Vtx ` g ) |
              A. n e. ( ( Vtx ` g ) \ { v } ) n e. ( g NeighbVtx v ) } ) $.
  $}

  ${
    $d G g n v $.  $d V g n v $.
    uvtxval.v $e |- V = ( Vtx ` G ) $.
    $( The set of all universal vertices.  (Contributed by Alexander van der
       Vekens, 12-Oct-2017.)  (Revised by AV, 29-Oct-2020.)  (Revised by AV,
       14-Feb-2022.) $)
    uvtxval $p |- ( UnivVtx ` G )
                 = { v e. V | A. n e. ( V \ { v } ) n e. ( G NeighbVtx v ) } $=
      ( vg cuvtx cfv cv cnbgr wcel csn cdif wral cvtx crab df-uvtx wceq fveq2
      co syl6eqr difeq1d oveq1 eleq2d raleqbidv fvmptrabfv eqcomi rabeqi eqtri
      ) CGHBIZCAIZJTZKZBDUKLZMZNZACOHZPUPADPUJFIZUKJTZKZBUROHZUNMZNUPFAGOCAFBQU
      RCRZUTUMBVBUOVCVADUNVCVAUQDURCOSEUAUBVCUSULUJURCUKJUCUDUEUFUPAUQDDUQEUGUH
      UI $.

    $d W g $.
    $( Obsolete version of ~ uvtxel as of 14-Feb-2022.  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV, 29-Oct-2020.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    uvtxavalOLD $p |- ( G e. W -> ( UnivVtx ` G ) = { v e. V |
                            A. n e. ( V \ { v } ) n e. ( G NeighbVtx v ) } ) $=
      ( vg wcel cv cnbgr co cvtx cfv cdif wral crab cvv cuvtx wceq a1i csn cmpt
      df-uvtx fveq2 syl6eqr difeq1d eleq2d raleqbidv rabeqbidv adantl elex fvex
      oveq1 eqeltri rabex fvmptd ) CEHZGCBIZGIZAIZJKZHZBUSLMZUTUAZNZOZAVCPZURCU
      TJKZHZBDVDNZOZADPZQRQRGQVGUBSUQAGBUCTUSCSZVGVLSUQVMVFVKAVCDVMVCCLMZDUSCLU
      DFUEZVMVBVIBVEVJVMVCDVDVOUFVMVAVHURUSCUTJUMUGUHUIUJCEUKVLQHUQVKADDVNQFCLU
      LUNUOTUP $.
  $}

  ${
    $d G n v $.  $d N n v $.  $d V n v $.
    uvtxel.v $e |- V = ( Vtx ` G ) $.
    $( A universal vertex, i.e. an element of the set of all universal
       vertices.  (Contributed by Alexander van der Vekens, 12-Oct-2017.)
       (Revised by AV, 29-Oct-2020.)  (Revised by AV, 14-Feb-2022.) $)
    uvtxel $p |- ( N e. ( UnivVtx ` G )
            <-> ( N e. V /\ A. n e. ( V \ { N } ) n e. ( G NeighbVtx N ) ) ) $=
      ( vv cv cnbgr wcel csn cdif wral cuvtx cfv wceq sneq difeq2d oveq2 eleq2d
      co raleqbidv uvtxval elrab2 ) AGZBFGZHTZIZADUEJZKZLUDBCHTZIZADCJZKZLFCDBM
      NUECOZUGUKAUIUMUNUHULDUECPQUNUFUJUDUECBHRSUAFABDEUBUC $.

    $( Obsolete version of ~ uvtxel as of 14-Feb-2022.  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV, 29-Oct-2020.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    uvtxaelOLD $p |- ( G e. W -> ( N e. ( UnivVtx ` G )
          <-> ( N e. V /\ A. n e. ( V \ { N } ) n e. ( G NeighbVtx N ) ) ) ) $=
      ( vv wcel cuvtx cfv cv cnbgr co csn cdif wral crab wa uvtxavalOLD eleq2d
      wceq sneq difeq2d oveq2 raleqbidv elrab syl6bb ) BEHZCBIJZHCAKZBGKZLMZHZA
      DUKNZOZPZGDQZHCDHUJBCLMZHZADCNZOZPZRUHUIUQCGABDEFSTUPVBGCDUKCUAZUMUSAUOVA
      VCUNUTDUKCUBUCVCULURUJUKCBLUDTUEUFUG $.

    $( A universal vertex is a vertex.  (Contributed by Alexander van der
       Vekens, 12-Oct-2017.)  (Revised by AV, 30-Oct-2020.)  (Proof shortened
       by AV, 14-Feb-2022.) $)
    uvtxisvtx $p |- ( N e. ( UnivVtx ` G ) -> N e. V ) $=
      ( vn cuvtx cfv wcel cv cnbgr co csn cdif wral uvtxel simplbi ) BAFGHBCHEI
      ABJKHECBLMNEABCDOP $.

    $( The set of the universal vertices is a subset of the set of all
       vertices.  (Contributed by AV, 23-Dec-2020.) $)
    uvtxssvtx $p |- ( UnivVtx ` G ) C_ V $=
      ( vn cuvtx cfv cv uvtxisvtx ssriv ) DAEFBADGBCHI $.

    $( A universal vertex has all other vertices as neighbors.  (Contributed by
       Alexander van der Vekens, 14-Oct-2017.)  (Revised by AV, 30-Oct-2020.)
       (Proof shortened by AV, 14-Feb-2022.) $)
    vtxnbuvtx $p |- ( N e. ( UnivVtx ` G )
                      -> A. n e. ( V \ { N } ) n e. ( G NeighbVtx N ) ) $=
      ( cuvtx cfv wcel cv cnbgr co csn cdif wral uvtxel simprbi ) CBFGHCDHAIBCJ
      KHADCLMNABCDEOP $.

    $( A universal vertex has all other vertices as neighbors.  (Contributed by
       Alexander van der Vekens, 14-Oct-2017.)  (Revised by AV,
       30-Oct-2020.) $)
    uvtxnbgrss $p |- ( N e. ( UnivVtx ` G )
                       -> ( V \ { N } ) C_ ( G NeighbVtx N ) ) $=
      ( vn cuvtx cfv wcel cv cnbgr co csn cdif wral wss vtxnbuvtx dfss3 sylibr
      ) BAFGHEIABJKZHECBLMZNTSOEABCDPETSQR $.

    $( A universal vertex is neighbor of all other vertices.  (Contributed by
       Alexander van der Vekens, 14-Oct-2017.)  (Revised by AV,
       30-Oct-2020.) $)
    uvtxnbgrvtx $p |- ( N e. ( UnivVtx ` G )
                        -> A. v e. ( V \ { N } ) N e. ( G NeighbVtx v ) ) $=
      ( vn cuvtx cfv wcel cv cnbgr co csn cdif wral wi vtxnbuvtx eleq1w rspcva
      wa wb nbgrsym a1i syl5ibcom expcom com23 mpcom ralrimiv ) CBGHIZCBAJZKLIZ
      ADCMNZFJBCKLZIZFULOZUIUJULIZUKPFBCDEQUOUPUIUKUPUOUIUKPUPUOTUJUMIZUIUKUNUQ
      FUJULFAUMRSUQUKUAUIBCUJUBUCUDUEUFUGUH $.

    $( There is no universal vertex if there is no vertex.  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV, 30-Oct-2020.)
       (Proof shortened by AV, 14-Feb-2022.) $)
    uvtx0 $p |- ( V = (/) -> ( UnivVtx ` G ) = (/) ) $=
      ( vn vv c0 wceq cuvtx cfv cv cnbgr wcel cdif wral crab uvtxval rabeq rab0
      co csn syl6eq syl5eq ) BFGZAHIDJAEJZKSLDBUDTMNZEBOZFEDABCPUCUFUEEFOFUEEBF
      QUEERUAUB $.

    $d E e $.  $d G e k v $.  $d V e k $.  $d W e k v $.
    isuvtx.e $e |- E = ( Edg ` G ) $.
    $( The set of all universal vertices.  (Contributed by Alexander van der
       Vekens, 12-Oct-2017.)  (Revised by AV, 30-Oct-2020.)  (Revised by AV,
       14-Feb-2022.) $)
    isuvtx $p |- ( UnivVtx ` G )
               = { v e. V | A. k e. ( V \ { v } ) E. e e. E { k , v } C_ e } $=
      ( cuvtx cfv cv cnbgr co wcel wral crab cpr wss wrex wa csn uvtxval nbgrel
      cdif wne w3a df-3an bitri prcom sseq1i rexbii id eldifi anim12ci eldifsni
      adantl jca biantrurd syl5rbb syl5bb ralbidva rabbiia eqtri ) EIJCKZEAKZLM
      NZCFVEUAZUDZOZAFPVDVEQZBKZRZBDSZCVHOZAFPACEFGUBVIVNAFVEFNZVFVMCVHVFVDFNZV
      OTZVDVEUEZTZVEVDQZVKRZBDSZTZVOVDVHNZTZVMVFVQVRWBUFWCBDEVDFVEGHUCVQVRWBUGU
      HVMWBWEWCVLWABDVJVTVKVDVEUIUJUKWEVSWBWEVQVRVOVOWDVPVOULVDFVGUMUNWDVRVOVDF
      VEUOUPUQURUSUTVAVBVC $.

    $( Obsolete version of ~ uvtxel1 as of 14-Feb-2022.  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV, 30-Oct-2020.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    isuvtxaOLD $p |- ( G e. W -> ( UnivVtx ` G ) = { v e. V |
                          A. k e. ( V \ { v } ) E. e e. E { k , v } C_ e } ) $=
      ( wcel cuvtx cfv cv wral crab cpr wss wrex wa syl5bb cnbgr co uvtxavalOLD
      csn cdif nbgrel df-3an prcom sseq1i rexbii simpr eldifi anim12ci eldifsni
      wne w3a adantl jca biantrurd syl5rbb ralbidva rabbidva eqtrd ) EGJZEKLCMZ
      EAMZUAUBJZCFVFUDZUEZNZAFOVEVFPZBMZQZBDRZCVINZAFOACEFGHUCVDVJVOAFVDVFFJZSZ
      VGVNCVIVGVEFJZVPSZVEVFUOZVFVEPZVLQZBDRZUPZVQVEVIJZSZVNBDEVEFVFHIUFWDVSVTS
      ZWCSZWFVNVSVTWCUGVNWCWFWHVMWBBDVKWAVLVEVFUHUIUJWFWGWCWFVSVTVQVPWEVRVDVPUK
      VEFVHULUMWEVTVQVEFVFUNUQURUSUTTTVAVBVC $.

    $d E n $.  $d N e k n $.
    $( Characterization of a universal vertex.  (Contributed by Alexander van
       der Vekens, 12-Oct-2017.)  (Revised by AV, 14-Feb-2022.) $)
    uvtxel1 $p |- ( N e. ( UnivVtx ` G )
          <-> ( N e. V /\ A. k e. ( V \ { N } ) E. e e. E { k , N } C_ e ) ) $=
      ( vn cv cpr wss wrex csn cdif wral cuvtx cfv wceq sneq difeq2d raleqbidv
      preq2 sseq1d rexbidv isuvtx elrab2 ) BJZIJZKZAJZLZACMZBFUINZOZPUHEKZUKLZA
      CMZBFENZOZPIEFDQRUIESZUMURBUOUTVAUNUSFUIETUAVAULUQACVAUJUPUKUIEUHUCUDUEUB
      IABCDFGHUFUG $.

    $d E v $.
    $( If a graph/class has no edges, it has universal vertices if and only if
       it has exactly one vertex.  (Contributed by Alexander van der Vekens,
       12-Oct-2017.)  (Revised by AV, 30-Oct-2020.)  (Revised by AV,
       14-Feb-2022.) $)
    uvtx01vtx $p |- ( E = (/) -> ( ( UnivVtx ` G ) =/= (/)
                                   <-> ( # ` V ) = 1 ) ) $=
      ( vn vv c0 wceq cfv wne cv wcel cdif wral wrex a1i wb wex wi cuvtx co csn
      cnbgr crab chash c1 uvtxval neeq1d rabn0 wa wn wal falseral0 noel mpg wss
      ex ssdif0 sssn ne0i eqneqall syl5 ax-1 jaoi sylbi sylbir syl impcom vsnid
      wo eleq2 mpbiri ralel difeq1 syl6eq raleqdv jca impbii exbidv cedg eqeq1i
      difid nbgr0edg eleq2d rexralbidv df-rex syl6bb cvv fvexi hash1snb 3bitr4d
      cvtx mp1i 3bitrd ) AHIZBUAJZHKFLZBGLZUDUBZMZFCWSUCZNZOZGCUEZHKZXDGCPZCUFJ
      UGIZWPWQXEHWQXEIWPGFBCDUHQUIXFXGRWPXDGCUJQWPWSCMZWRHMZFXCOZUKZGSZCXBIZGSZ
      XGXHWPXLXNGXLXNRWPXLXNXKXIXNXKXCHIZXIXNTZXJULZXKXPTFXRFUMXKXPXJFXCUNURWRU
      OUPXPCXBUQZXQCXBUSXSCHIZXNVKXQCWSUTXTXQXNXICHKXTXNCWSVAXNCHVBVCXNXIVDVEVF
      VGVHVIXNXIXKXNXIWSXBMGVJCXBWSVLVMXNXKXJFHOFHVNXNXJFXCHXNXCXBXBNHCXBXBVOXB
      WCVPVQVMVRVSQVTWPXGXKGCPXMWPXAXJGFCXCWPWTHWRWPBWAJZHIWTHIAYAHEWBBWSWDVFWE
      WFXKGCWGWHCWIMXHXORWPCBWMDWJCWIGWKWNWLWO $.

    $d W n $.
    $( Obsolete version of ~ uvtxel1 as of 14-Feb-2022.  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    uvtxael1OLD $p |- ( G e. W -> ( N e. ( UnivVtx ` G )
        <-> ( N e. V /\ A. k e. ( V \ { N } ) E. e e. E { k , N } C_ e ) ) ) $=
      ( vn wcel cuvtx cfv cv cpr wss wrex csn cdif wral crab wa isuvtxaOLD wceq
      eleq2d sneq difeq2d preq2 sseq1d rexbidv raleqbidv elrab syl6bb ) DGKZEDL
      MZKEBNZJNZOZANZPZACQZBFUQRZSZTZJFUAZKEFKUPEOZUSPZACQZBFERZSZTZUBUNUOVEEJA
      BCDFGHIUCUEVDVKJEFUQEUDZVAVHBVCVJVLVBVIFUQEUFUGVLUTVGACVLURVFUSUQEUPUHUIU
      JUKULUM $.

    $( Obsolete version of ~ uvtx01vtx as of 14-Feb-2022.  (Contributed by AV,
       30-Oct-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    uvtxa01vtx0OLD $p |- ( ( G e. W /\ E = (/) )
                        -> ( ( UnivVtx ` G ) =/= (/) <-> ( # ` V ) = 1 ) ) $=
      ( vn vv wcel c0 wceq wa cfv wne cv cdif wral wrex wb cvv cuvtx cnbgr crab
      co csn chash c1 uvtxavalOLD adantr neeq1d rabn0 a1i wex wi falseral0 noel
      wn wal ex mpg wss ssdif0 wo sssn ne0i eqneqall syl5 ax-1 sylbi sylbir syl
      jaoi impcom vsnid eleq2 mpbiri ral0 difeq1 difid syl6eq jca impbii exbidv
      raleqdv cedg eqeq1i eleq2d ralbidv rexbidv adantl df-rex syl6bb cvtx fvex
      nbgr0edg eqeltri hash1snb mp1i 3bitr4d 3bitrd ) BDIZAJKZLZBUAMZJNGOZBHOZU
      BUDZIZGCXFUEZPZQZHCUCZJNZXKHCRZCUFMUGKZXCXDXLJXAXDXLKXBHGBCDEUHUIUJXMXNSX
      CXKHCUKULXCXFCIZXEJIZGXJQZLZHUMZCXIKZHUMZXNXOXCXSYAHXSYASXCXSYAXRXPYAXRXJ
      JKZXPYAUNZXQUQZXRYCUNGYEGURXRYCXQGXJUOUSXEUPUTYCCXIVAZYDCXIVBYFCJKZYAVCYD
      CXFVDYGYDYAXPCJNYGYACXFVEYACJVFVGYAXPVHVLVIVJVKVMYAXPXRYAXPXFXIIHVNCXIXFV
      OVPYAXRXQGJQXQGVQYAXQGXJJYAXJXIXIPJCXIXIVRXIVSVTWDVPWAWBULWCXCXNXRHCRZXTX
      BXNYHSXAXBXKXRHCXBXHXQGXJXBXGJXEXBBWEMZJKXGJKAYIJFWFBXFWOVIWGWHWIWJXRHCWK
      WLCTIXOYBSXCCBWMMTEBWMWNWPCTHWQWRWSWT $.

    $d E x y $.  $d G x y $.  $d V x y $.
    $( If a graph has two vertices, and there is an edge between the vertices,
       then each vertex is universal.  (Contributed by AV, 1-Nov-2020.)
       (Revised by AV, 25-Mar-2021.)  (Proof shortened by AV, 14-Feb-2022.) $)
    uvtx2vtx1edg $p |- ( ( ( # ` V ) = 2 /\ V e. E )
                         -> A. v e. V v e. ( UnivVtx ` G ) ) $=
      ( vn chash cfv c2 wceq wcel wa cv cuvtx wral cnbgr co csn cdif uvtxel a1i
      nbgr2vtx1edg wb baibd ralbidva mpbird ) DHIJKDBLMZANZCOILZADPGNCUIQRLGDUI
      STPZADPAGBCDEFUCUHUJUKADUHUJUIDLZUKUJULUKMUDUHGCUIDEUAUBUEUFUG $.

    $( If a hypergraph has two vertices, there is an edge between the vertices
       iff each vertex is universal.  (Contributed by AV, 3-Nov-2020.) $)
    uvtx2vtx1edgb $p |- ( ( G e. UHGraph /\ ( # ` V ) = 2 )
                          -> ( V e. E <-> A. v e. V v e. ( UnivVtx ` G ) ) ) $=
      ( vn cuhgr wcel chash cfv c2 wceq wa cv cnbgr co csn cdif wral uvtxel a1i
      cuvtx nbuhgr2vtx1edgb wb baibd bicomd ralbidva bitrd ) CHIDJKLMNZDBIGOCAO
      ZPQIGDUKRSTZADTUKCUCKIZADTAGBCDEFUDUJULUMADUJUKDIZNUMULUJUMUNULUMUNULNUEU
      JGCUKDEUAUBUFUGUHUI $.
  $}

  ${
    uvtxnbgr.v $e |- V = ( Vtx ` G ) $.
    $( A universal vertex has all other vertices as neighbors.  (Contributed by
       Alexander van der Vekens, 14-Oct-2017.)  (Revised by AV, 3-Nov-2020.)
       (Revised by AV, 23-Mar-2021.) $)
    uvtxnbgr $p |- ( N e. ( UnivVtx ` G )
                     -> ( G NeighbVtx N ) = ( V \ { N } ) ) $=
      ( cuvtx cfv wcel cnbgr co csn cdif wss nbgrssovtx a1i uvtxnbgrss eqssd )
      BAEFGZABHIZCBJKZRSLQACBDMNABCDOP $.

    $d G n $.  $d N n $.  $d V n $.
    $( A vertex is universal iff all the other vertices are its neighbors.
       (Contributed by Alexander van der Vekens, 13-Jul-2018.)  (Revised by AV,
       3-Nov-2020.)  (Revised by AV, 23-Mar-2021.)  (Proof shortened by AV,
       14-Feb-2022.) $)
    uvtxnbgrb $p |- ( N e. V -> ( N e. ( UnivVtx ` G )
                                <-> ( G NeighbVtx N ) = ( V \ { N } ) ) ) $=
      ( vn wcel cuvtx cfv cnbgr co csn cdif wceq uvtxnbgr wa wral simpl raleleq
      cv eqcoms adantl uvtxel sylanbrc ex impbid2 ) BCFZBAGHFZABIJZCBKLZMZABCDN
      UFUJUGUFUJOUFESUHFEUIPZUGUFUJQUJUKUFUKUIUHEUIUHRTUAEABCDUBUCUDUE $.

    $d G k n $.  $d V k v $.
    uvtxusgr.e $e |- E = ( Edg ` G ) $.
    $( The set of all universal vertices of a simple graph.  (Contributed by
       Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV,
       31-Oct-2020.) $)
    uvtxusgr $p |- ( G e. USGraph -> ( UnivVtx ` G )
                      = { n e. V | A. k e. ( V \ { n } ) { k , n } e. E } ) $=
      ( cusgr wcel cuvtx cfv cv cnbgr co csn cdif wral crab cpr uvtxval ralbidv
      nbusgreledg rabbidv syl5eq ) DHIZDJKALZDBLZMNIZAEUGOPZQZBERUFUGSCIZAUIQZB
      ERBADEFTUEUJULBEUEUHUKAUICDUGUFGUBUAUCUD $.

    $d E v $.  $d G v $.  $d N k v $.
    $( A universal vertex, i.e. an element of the set of all universal
       vertices, of a simple graph.  (Contributed by Alexander van der Vekens,
       12-Oct-2017.)  (Revised by AV, 31-Oct-2020.) $)
    uvtxusgrel $p |- ( G e. USGraph -> ( N e. ( UnivVtx ` G )
                  <-> ( N e. V /\ A. k e. ( V \ { N } ) { k , N } e. E ) ) ) $=
      ( vv cusgr wcel cuvtx cfv cv cpr csn cdif wral crab wa uvtxusgr wceq sneq
      eleq2d difeq2d preq2 eleq1d raleqbidv elrab syl6bb ) CIJZDCKLZJDAMZHMZNZB
      JZAEUMOZPZQZHERZJDEJULDNZBJZAEDOZPZQZSUJUKUSDAHBCEFGTUCURVDHDEUMDUAZUOVAA
      UQVCVEUPVBEUMDUBUDVEUNUTBUMDULUEUFUGUHUI $.
  $}

  ${
    uvtxnm1nbgr.v $e |- V = ( Vtx ` G ) $.
    $( A universal vertex has ` n - 1 ` neighbors in a finite graph with ` n `
       vertices.  (Contributed by Alexander van der Vekens, 14-Oct-2017.)
       (Revised by AV, 3-Nov-2020.) $)
    uvtxnm1nbgr $p |- ( ( G e. FinUSGraph /\ N e. ( UnivVtx ` G ) )
                         -> ( # ` ( G NeighbVtx N ) ) = ( ( # ` V ) - 1 ) ) $=
      ( cfusgr wcel cuvtx cfv wa cnbgr chash csn cdif cmin wceq uvtxnbgr adantl
      co c1 fveq2d cfn wss fusgrvtxfi uvtxisvtx hashssdif syl2an hashsng oveq2d
      snssd 3eqtrd ) AEFZBAGHZFZIZABJRZKHCBLZMZKHZCKHZUPKHZNRZUSSNRUNUOUQKUMUOU
      QOUKABCDPQTUKCUAFUPCUBURVAOUMACDUCUMBCABCDUDUICUPUEUFUNUTSUSNUMUTSOUKBULU
      GQUHUJ $.

    $d G v $.  $d U v $.  $d V v $.
    $( If the number of neighbors of a vertex in a finite simple graph is the
       number of vertices of the graph minus 1, the vertex is universal.
       (Contributed by Alexander van der Vekens, 14-Jul-2018.)  (Revised by AV,
       16-Dec-2020.)  (Proof shortened by AV, 13-Feb-2022.) $)
    nbusgrvtxm1uvtx $p |- ( ( G e. FinUSGraph /\ U e. V )
                   -> ( ( # ` ( G NeighbVtx U ) ) = ( ( # ` V ) - 1 )
                        -> U e. ( UnivVtx ` G ) ) ) $=
      ( vv cfusgr wcel wa cnbgr co chash cfv c1 cmin wceq cuvtx cdif nbgrssovtx
      csn cv sseli wne eldifsn wi nbusgrvtxm1 syl5bi impbid2 eqrdv wb uvtxnbgrb
      imp ad2antlr mpbird ex ) BFGZACGZHZBAIJZKLCKLMNJOZABPLGZUQUSHZUTURCASQZOZ
      VAEURVBVAETZURGZVDVBGZURVBVDBCADRUAVFVDCGVDAUBHZVAVEVDCAUCUQUSVGVEUDABVDC
      DUEUKUFUGUHUPUTVCUIUOUSBACDUJULUMUN $.

    $( A universal vertex has ` n - 1 ` neighbors in a finite simple graph with
       ` n ` vertices.  A biconditional version of ~ nbusgrvtxm1uvtx resp.
       ~ uvtxnm1nbgr .  (Contributed by Alexander van der Vekens, 14-Jul-2018.)
       (Revised by AV, 16-Dec-2020.) $)
    uvtxnbvtxm1 $p |- ( ( G e. FinUSGraph /\ U e. V )
                  -> ( U e. ( UnivVtx ` G )
                       <-> ( # ` ( G NeighbVtx U ) ) = ( ( # ` V ) - 1 ) ) ) $=
      ( cfusgr wcel wa cuvtx cfv cnbgr co chash c1 cmin wceq uvtxnm1nbgr adantr
      wi ex nbusgrvtxm1uvtx impbid ) BEFZACFZGABHIFZBAJKLICLIMNKOZUBUDUERUCUBUD
      UEBACDPSQABCDTUA $.
  $}

  ${
    $d E e $.  $d G e n $.  $d K e n $.  $d N e n $.  $d S n $.  $d V e n $.
    nbupgruvtxres.v $e |- V = ( Vtx ` G ) $.
    nbupgruvtxres.e $e |- E = ( Edg ` G ) $.
    nbupgruvtxres.f $e |- F = { e e. E | N e/ e } $.
    nbupgruvtxres.s $e |- S = <. ( V \ { N } ) , ( _I |` F ) >. $.
    $( The neighborhood of a universal vertex in a restricted pseudograph.
       (Contributed by Alexander van der Vekens, 2-Jan-2018.)  (Revised by AV,
       8-Nov-2020.)  (Proof shortened by AV, 13-Feb-2022.) $)
    nbupgruvtxres $p |- ( ( ( G e. UPGraph /\ N e. V ) /\ K e. ( V \ { N } ) )
                      -> ( ( G NeighbVtx K ) = ( V \ { K } )
                           -> ( S NeighbVtx K ) = ( V \ { N , K } ) ) ) $=
      ( vn wcel wa csn cdif cnbgr co wceq cupgr cpr wss nbgrssovtx upgrres1lem2
      cvtx cfv eqid difpr eqcomi a1i difeq1d syl5eq syl5sseqr adantr wral simpl
      cv w3a anim1i df-3an sylibr wi wne dif32 eqtri eleq2i eldifsn bitri eleq2
      simplbi syl5ibr adantl imp nbupgrres sylc ralrimiva dfss3 eqssd ex ) EUAN
      GHNOZFHGPZQZNZOZEFRSZHFPZQZTZAFRSZHGFUBQZTWEWIOZWJWKWEWJWKUCWIWEAUFUGZWGQ
      ZWJWKAWMFWMUHUDWEWKWCWGQZWNHGFUIZWEWCWMWGWCWMTWEWMWCABCDEGHIJKLUEUJUKULUM
      UNUOWLMURZWJNZMWKUPWKWJUCWLWRMWKWLWQWKNZOZWAWDWSUSZWQWFNZWRWTWEWSOXAWLWEW
      SWEWIUQUTWAWDWSVAVBWLWSXBWIWSXBVCWEWSXBWIWQWHNZWSXCWQGVDZWSWQWHWBQZNXCXDO
      WKXEWQWKWOXEWPHWBWGVEVFVGWQWHGVHVIVKWFWHWQVJVLVMVNABCDEFWQGHIJKLVOVPVQMWK
      WJVRVBVSVT $.

    $( A universal vertex is universal in a restricted pseudograph.
       (Contributed by Alexander van der Vekens, 2-Jan-2018.)  (Revised by AV,
       8-Nov-2020.) $)
    uvtxupgrres $p |- ( ( ( G e. UPGraph /\ N e. V ) /\ K e. ( V \ { N } ) )
                    -> ( K e. ( UnivVtx ` G ) -> K e. ( UnivVtx ` S ) ) ) $=
      ( cuvtx cfv wcel cnbgr co cdif wceq wa csn uvtxnbgr cpr nbupgruvtxres imp
      cupgr cvtx upgrres1lem2 difeq1i a1i difpr syl6reqr adantr eqtrd syl6eleqr
      wb simpr eqid uvtxnbgrb syl mpbird ex syl5 ) FEMNOEFPQHFUAZRSZEUFOGHOTZFH
      GUARZOZTZFAMNOZEFHIUBVIVEVJVIVETZVJAFPQZAUGNZVDRZSZVKVLHGFUCRZVNVIVEVLVPS
      ABCDEFGHIJKLUDUEVIVPVNSVEVIVNVGVDRZVPVNVQSVIVMVGVDABCDEGHIJKLUHZUIUJHGFUK
      ULUMUNVKFVMOZVJVOUPVIVSVEVIFVGVMVFVHUQVRUOUMAFVMVMURUSUTVAVBVC $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Complete graphs
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c ComplGraph $.
  $c ComplUSGraph $.

  $( Extend class notation with (arbitrary) complete graphs. $)
  ccplgr $a class ComplGraph $.

  $( Extend class notation with complete simple graphs. $)
  ccusgr $a class ComplUSGraph $.

  $( Define the class of all complete "graphs".  A class/graph is called
     _complete_ if every pair of distinct vertices is connected by an edge,
     i.e., each vertex has all other vertices as neighbors or, in other words,
     each vertex is a universal vertex.  (Contributed by AV, 24-Oct-2020.)
     (Revised by TA, 15-Feb-2022.) $)
  df-cplgr $a |- ComplGraph = { g | ( UnivVtx ` g ) = ( Vtx ` g ) } $.

  $( Define the class of all complete simple graphs.  A simple graph is called
     _complete_ if every pair of distinct vertices is connected by a (unique)
     edge, see definition in section 1.1 of [Diestel] p. 3.  In contrast, the
     definition in section I.1 of [Bollobas] p. 3 is based on the size of
     (finite) complete graphs, see ~ cusgrsize .  (Contributed by Alexander van
     der Vekens, 12-Oct-2017.)  (Revised by AV, 24-Oct-2020.)  (Revised by BJ,
     14-Feb-2022.) $)
  df-cusgr $a |- ComplUSGraph = ( USGraph i^i ComplGraph ) $.

  ${
    $d G g $.  $d V g $.
    cplgruvtxb.v $e |- V = ( Vtx ` G ) $.
    $( A graph ` G ` is complete iff each vertex is a universal vertex.
       (Contributed by Alexander van der Vekens, 14-Oct-2017.)  (Revised by AV,
       15-Feb-2022.) $)
    cplgruvtxb $p |- ( G e. W -> ( G e. ComplGraph
                                   <-> ( UnivVtx ` G ) = V ) ) $=
      ( vg cv cuvtx cfv cvtx wceq ccplgr fveq2 syl6eqr eqeq12d df-cplgr elab2g
      ) EFZGHZQIHZJAGHZBJEAKCQAJZRTSBQAGLUASAIHBQAILDMNEOP $.

    $d G g v $.  $d V v $.
    $( A proper class (representing a null graph, see ~ vtxvalprc ) has the
       property of a complete graph (see also ~ cplgr0v ), but cannot be an
       element of ` ComplGraph ` , of course.  Because of this, a sethood
       antecedent like ` G e. W ` is necessary in the following theorems like
       ~ iscplgr .  (Contributed by AV, 14-Feb-2022.) $)
    prcliscplgr $p |- ( -. G e. _V -> A. v e. V v e. ( UnivVtx ` G ) ) $=
      ( cvv wcel wn cvtx cfv c0 wceq cuvtx wral fvprc eqeq1i ral0 mpbiri sylbir
      cv raleq syl ) BEFGBHIZJKZASBLIFZACMZBHNUCCJKZUECUBJDOUFUEUDAJMUDAPUDACJT
      QRUA $.

    $( The property of being a complete graph.  (Contributed by AV,
       1-Nov-2020.) $)
    iscplgr $p |- ( G e. W -> ( G e. ComplGraph
                                <-> A. v e. V v e. ( UnivVtx ` G ) ) ) $=
      ( wcel ccplgr cuvtx cfv wceq cv wral cplgruvtxb wss eqss uvtxssvtx anbi2i
      wa dfss3 mpbiran bitri syl6bb ) BDFBGFBHIZCJZAKUCFACLZBCDEMUDUCCNZCUCNZRZ
      UEUCCOUHUFUEBCEPUGUEUFACUCSQTUAUB $.

    $d W g $.
    $( Obsolete proof of ~ cplgruvtxb as of 15-Feb-2022.  (Contributed by
       Alexander van der Vekens, 14-Oct-2017.)  (Revised by AV, 1-Nov-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    cplgruvtxbOLD $p |- ( G e. W -> ( G e. ComplGraph
                                   <-> ( UnivVtx ` G ) = V ) ) $=
      ( vv vg wcel ccplgr cv cuvtx cfv wral wceq iscplgr wa uvtxisvtx ralrimiva
      wss adantl dfss3 sylibr adantr biimpri eqssd raleleq eqcoms impbid1 bitrd
      ex ) ACGZAHGEIAJKZGEBLZUKBMZEABCDNUJULUMUJULUMUJULOUKBUJUKBRZULUJFIZBGZFU
      KLUNUJUPFUKUOUKGUPUJAUOBDPSQFUKBTUAUBULBUKRZUJUQULEBUKTUCSUDUIULBUKEBUKUE
      UFUGUH $.

    $d G n v $.  $d V n $.  $d W v $.
    $( A graph is complete iff all vertices are neighbors of all vertices.
       (Contributed by AV, 1-Nov-2020.) $)
    iscplgrnb $p |- ( G e. W -> ( G e. ComplGraph
              <-> A. v e. V A. n e. ( V \ { v } ) n e. ( G NeighbVtx v ) ) ) $=
      ( wcel ccplgr cv cuvtx cfv wral cnbgr co csn cdif iscplgr wa wb uvtxel
      a1i baibd ralbidva bitrd ) CEGZCHGAIZCJKGZADLBICUFMNGBDUFOPLZADLACDEFQUEU
      GUHADUEUGUFDGZUHUGUIUHRSUEBCUFDFTUAUBUCUD $.

    $d E e $.  $d G e $.  $d V e $.  $d W e n v $.
    iscplgredg.v $e |- E = ( Edg ` G ) $.
    $( A graph ` G ` is complete iff all vertices are connected with each other
       by (at least) one edge.  (Contributed by AV, 10-Nov-2020.) $)
    iscplgredg $p |- ( G e. W -> ( G e. ComplGraph
            <-> A. v e. V A. n e. ( V \ { v } ) E. e e. E { v , n } C_ e ) ) $=
      ( wcel ccplgr cv cnbgr co csn wral wa wb a1i ralbidva cdif wrex iscplgrnb
      cpr wss wne w3a df-3an nbgrel eldifsn simpr simpl anim12ci simprr sylan2b
      jca biantrurd 3bitr4d bitrd ) EGJZEKJCLZEALZMNJZCFVBOUAZPZAFPVBVAUDBLUEBD
      UBZCVDPZAFPACEFGHUCUTVEVGAFUTVBFJZQZVCVFCVDVIVAVDJZQZVAFJZVHQZVAVBUFZVFUG
      ZVMVNQZVFQZVCVFVOVQRVKVMVNVFUHSVCVORVKBDEVAFVBHIUISVKVPVFVJVIVLVNQZVPVAFV
      BUJVIVRQVMVNVIVHVRVLUTVHUKVLVNULUMVIVLVNUNUPUOUQURTTUS $.
  $}

  $( The property of being a complete simple graph.  (Contributed by AV,
     1-Nov-2020.) $)
  iscusgr $p |- ( G e. ComplUSGraph
                  <-> ( G e. USGraph /\ G e. ComplGraph ) ) $=
    ( cusgr ccplgr ccusgr df-cusgr elin2 ) ABCDEF $.

  $( A complete simple graph is a simple graph.  (Contributed by Alexander van
     der Vekens, 13-Oct-2017.)  (Revised by AV, 1-Nov-2020.) $)
  cusgrusgr $p |- ( G e. ComplUSGraph -> G e. USGraph ) $=
    ( ccusgr wcel cusgr ccplgr iscusgr simplbi ) ABCADCAECAFG $.

  $( A complete simple graph is a complete graph.  (Contributed by AV,
     1-Nov-2020.) $)
  cusgrcplgr $p |- ( G e. ComplUSGraph -> G e. ComplGraph ) $=
    ( ccusgr wcel cusgr ccplgr iscusgr simprbi ) ABCADCAECAFG $.

  ${
    $d G v $.  $d V v $.
    iscusgrvtx.v $e |- V = ( Vtx ` G ) $.
    $( A simple graph is complete iff all vertices are uniuversal.
       (Contributed by AV, 1-Nov-2020.) $)
    iscusgrvtx $p |- ( G e. ComplUSGraph
                    <-> ( G e. USGraph /\ A. v e. V v e. ( UnivVtx ` G ) ) ) $=
      ( ccusgr wcel cusgr ccplgr wa cv cuvtx wral iscusgr iscplgr pm5.32i bitri
      cfv ) BEFBGFZBHFZIRAJBKQFACLZIBMRSTABCGDNOP $.

    $( A simple graph is complete iff the set of vertices is the set of
       universal vertices.  (Contributed by Alexander van der Vekens,
       14-Oct-2017.)  (Revised by Alexander van der Vekens, 18-Jan-2018.)
       (Revised by AV, 1-Nov-2020.) $)
    cusgruvtxb $p |- ( G e. USGraph
                         -> ( G e. ComplUSGraph <-> ( UnivVtx ` G ) = V ) ) $=
      ( ccusgr wcel cusgr ccplgr wa cuvtx wceq iscusgr cplgruvtxb bitr3d syl5bb
      cfv ibar ) ADEAFEZAGEZHZQAIOBJZAKQRSTQRPABFCLMN $.

    $d G k n $.  $d V k n $.
    iscusgredg.v $e |- E = ( Edg ` G ) $.
    $( A simple graph is complete iff all vertices are connected by an edge.
       (Contributed by Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV,
       1-Nov-2020.) $)
    iscusgredg $p |- ( G e. ComplUSGraph <-> ( G e. USGraph
                       /\ A. k e. V A. n e. ( V \ { k } ) { n , k } e. E ) ) $=
      ( ccusgr wcel cusgr ccplgr wa cv cpr csn cdif wral iscusgr cnbgr ralbidv
      co iscplgrnb nbusgreledg bitrd pm5.32i bitri ) DHIDJIZDKIZLUGBMZAMZNCIZBE
      UJOPZQZAEQZLDRUGUHUNUGUHUIDUJSUAIZBULQZAEQUNABDEJFUBUGUPUMAEUGUOUKBULCDUJ
      UIGUCTTUDUEUF $.

    $d E n p v y z $.  $d G p x y z $.  $d V p x y z $.
    $( In a complete simple graph, the edges are all the pairs of different
       vertices.  (Contributed by Alexander van der Vekens, 12-Jan-2018.)
       (Revised by AV, 1-Nov-2020.) $)
    cusgredg $p |- ( G e. ComplUSGraph
                     -> E = { x e. ~P V | ( # ` x ) = 2 } ) $=
      ( vn vv vy vz wcel cv cpr wral wa cfv wceq adantr wi eleq1d vp ccusgr csn
      cusgr cdif chash cpw crab iscusgredg wss cedg usgredgss pweqi rabeq ax-mp
      c2 cvtx 3sstr4g wne wrex elss2prb weq difeq2d preq2 raleqbidv rspcv simpr
      necom biimpi anim12i eldifsn sylibr preq1 syl id prcom syl6req biimpd a1d
      sneq ad2antll com23 3syld ex rexlimivv com13 imp syl5bi ssrdv eqssd sylbi
      ) CUBKCUDKZGLZHLZMZBKZGDWNUCZUEZNZHDNZOZBALUFPUPQZADUGZUHZQHGBCDEFUIXABXD
      WLBXDUJWTWLCUKPXBACUQPZUGZUHZBXDACULFXCXFQXDXGQDXEEUMXBAXCXFUNUOURRXAUAXD
      BUALZXDKILZJLZUSZXHXIXJMZQZOZJDUTIDUTZXAXHBKZIJAXHDVAWLWTXOXPSXOWTWLXPXNW
      TWLXPSZSZIJDDXIDKZXJDKZOZXNXRYAXNOZWTWMXIMZBKZGDXIUCZUEZNZXJXIMZBKZXQYAWT
      YGSZXNXSYJXTWSYGHXIDHIVBZWPYDGWRYFYKWQYEDWNXIVTVCYKWOYCBWNXIWMVDTVEVFRRYB
      XJYFKZYGYISYBXTXJXIUSZOYLYAXTXNYMXSXTVGXKYMXMXKYMXIXJVHVIRVJXJDXIVKVLYDYI
      GXJYFGJVBYCYHBWMXJXIVMTVFVNYBWLYIXPXMWLYIXPSZSYAXKXMYNWLXMYIXPXMYHXHBXMXH
      XLYHXMVOXIXJVPVQTVRVSWAWBWCWDWEWFWGWHWIWJWK $.
  $}

  $( The null graph (with no vertices and no edges) represented by the empty
     set is a complete graph.  (Contributed by AV, 1-Nov-2020.) $)
  cplgr0 $p |- (/) e. ComplGraph $=
    ( vv c0 ccplgr wcel cv cuvtx cfv cvtx wral ral0 vtxval0 raleqi mpbir cvv wb
    0ex eqid iscplgr ax-mp ) BCDZAEBFGDZABHGZIZUCUAABIUAAJUAAUBBKLMBNDTUCOPABUB
    NUBQRSM $.

  $( The null graph (with no vertices and no edges) represented by the empty
     set is a complete simple graph.  (Contributed by AV, 1-Nov-2020.) $)
  cusgr0 $p |- (/) e. ComplUSGraph $=
    ( c0 ccusgr wcel cusgr ccplgr usgr0 cplgr0 iscusgr mpbir2an ) ABCADCAECFGAH
    I $.

  ${
    $d G v $.  $d V v $.
    cplgr0v.v $e |- V = ( Vtx ` G ) $.
    $( A null graph (with no vertices) is a complete graph.  (Contributed by
       Alexander van der Vekens, 13-Oct-2017.)  (Revised by AV, 1-Nov-2020.) $)
    cplgr0v $p |- ( ( G e. W /\ V = (/) ) -> G e. ComplGraph ) $=
      ( vv wcel c0 wceq wa ccplgr cv cfv wral rzal adantl iscplgr adantr mpbird
      cuvtx wb ) ACFZBGHZIAJFZEKASLFZEBMZUBUEUAUDEBNOUAUCUETUBEABCDPQR $.

    $( A graph with no vertices and no edges is a complete simple graph.
       (Contributed by Alexander van der Vekens, 13-Oct-2017.)  (Revised by AV,
       1-Nov-2020.) $)
    cusgr0v $p |- ( ( G e. W /\ V = (/) /\ ( iEdg ` G ) = (/) )
                    -> G e. ComplUSGraph ) $=
      ( wcel wceq ciedg cfv w3a cusgr ccplgr ccusgr cvtx eqeq1i usgr0v syl3an2b
      c0 cplgr0v 3adant3 iscusgr sylanbrc ) ACEZBQFZAGHQFZIAJEZAKEZALEUCUBAMHZQ
      FUDUEBUGQDNACOPUBUCUFUDABCDRSATUA $.

    $d G n $.  $d V n v $.
    $( Lemma for ~ cplgr1v and ~ cusgr1v .  (Contributed by AV,
       23-Mar-2021.) $)
    cplgr1vlem $p |- ( ( # ` V ) = 1 -> G e. _V ) $=
      ( vn chash cfv c1 wceq cv csn wex cvv wcel wb cvtx eqeltri hash1snb ax-mp
      fvex vsnid eleq2 mpbiri 1vgrex syl exlimiv sylbi ) BEFGHZBDIZJZHZDKZALMZB
      LMUGUKNBAOFLCAOSPBLDQRUJULDUJUHBMZULUJUMUHUIMDTBUIUHUAUBAUHBCUCUDUEUF $.

    $( A graph with one vertex is complete.  (Contributed by Alexander van der
       Vekens, 13-Oct-2017.)  (Revised by AV, 1-Nov-2020.)  (Revised by AV,
       23-Mar-2021.)  (Proof shortened by AV, 14-Feb-2022.) $)
    cplgr1v $p |- ( ( # ` V ) = 1 -> G e. ComplGraph ) $=
      ( vv vn chash cfv c1 wceq ccplgr wcel cv wral csn cdif c0 wi cvv wb sylbi
      cuvtx wa cnbgr co simpr ral0 cvtx fvexi hash1snb ax-mp velsn sneq difeq2d
      wex difid syl6eq a1i eleq2 difeq1 eqeq1d 3imtr4d exlimiv raleqdv sylanbrc
      imp mpbiri uvtxel ralrimiva cplgr1vlem iscplgr syl mpbird ) BFGHIZAJKZDLZ
      AUAGKZDBMZVMVPDBVMVOBKZUBZVRELZAVOUCUDKZEBVONZOZMZVPVMVRUEVSWDWAEPMWAEUFV
      SWAEWCPVMVRWCPIZVMBVTNZIZEUNZVRWEQZBRKVMWHSBAUGCUHBREUIUJWGWIEWGVOWFKZWFW
      BOZPIZVRWEWJWLQWGWJVOVTIZWLDVTUKWMWKWFWFOPWMWBWFWFVOVTULUMWFUOUPTUQBWFVOU
      RWGWCWKPBWFWBUSUTVAVBTVEVCVFEAVOBCVGVDVHVMARKVNVQSABCVIDABRCVJVKVL $.

    $( A graph with one vertex and no edges is a complete simple graph.
       (Contributed by AV, 1-Nov-2020.)  (Revised by AV, 23-Mar-2021.) $)
    cusgr1v $p |- ( ( ( # ` V ) = 1 /\ ( iEdg ` G ) = (/) )
                    -> G e. ComplUSGraph ) $=
      ( chash cfv c1 wceq ciedg c0 wa cusgr ccplgr ccusgr cvv cplgr1vlem adantr
      wcel simpr usgr0e cplgr1v iscusgr sylanbrc ) BDEFGZAHEIGZJZAKQALQZAMQUEAN
      UCANQUDABCOPUCUDRSUCUFUDABCTPAUAUB $.

    $d E v $.
    cplgr2v.e $e |- E = ( Edg ` G ) $.
    $( An undirected hypergraph with two (different) vertices is complete iff
       there is an edge between these two vertices.  (Contributed by AV,
       3-Nov-2020.) $)
    cplgr2v $p |- ( ( G e. UHGraph /\ ( # ` V ) = 2 )
                    -> ( G e. ComplGraph <-> V e. E ) ) $=
      ( vv cuhgr wcel chash cfv c2 wceq wa ccplgr cv cuvtx wral iscplgr adantr
      wb uvtx2vtx1edgb bitr4d ) BGHZCIJKLZMBNHZFOBPJHFCQZCAHUCUEUFTUDFBCGDRSFAB
      CDEUAUB $.

    $( An undirected hypergraph with two (different) vertices is complete iff
       there is an edge between these two vertices.  (Contributed by Alexander
       van der Vekens, 12-Oct-2017.)  (Proof shortened by Alexander van der
       Vekens, 16-Dec-2017.)  (Revised by AV, 3-Nov-2020.) $)
    cplgr2vpr $p |- ( ( ( A e. X /\ B e. Y /\ A =/= B )
                        /\ ( G e. UHGraph /\ V = { A , B } ) )
                      -> ( G e. ComplGraph <-> { A , B } e. E ) ) $=
      ( wcel wne w3a cuhgr wceq wa chash cfv c2 cvv elex cpr ccplgr simpl fveq2
      wb adantl id hashprb biimpi syl3an sylan9eqr cplgr2v syl2an2 simprr bitrd
      eleq1d ) AFJZBGJZABKZLZDMJZEABUAZNZOZOZDUBJZECJZVBCJVDVAUTEPQZRNVFVGUEVAV
      CUCVDUTVHVBPQZRVCVHVINVAEVBPUDUFUQASJZURBSJZUSUSVIRNZAFTBGTUSUGVJVKUSLVLA
      BUHUIUJUKCDEHIULUMVEEVBCUTVAVCUNUPUO $.
  $}

  ${
    nbcplgr.v $e |- V = ( Vtx ` G ) $.
    $( In a complete graph, each vertex has all other vertices as neighbors.
       (Contributed by Alexander van der Vekens, 12-Oct-2017.)  (Revised by AV,
       3-Nov-2020.) $)
    nbcplgr $p |- ( ( G e. ComplGraph /\ N e. V )
                     -> ( G NeighbVtx N ) = ( V \ { N } ) ) $=
      ( ccplgr wcel wa cuvtx cfv cnbgr co csn cdif cplgruvtxb ibi eqcomd eleq2d
      wceq biimpa wb uvtxnbgrb adantl mpbid ) AEFZBCFZGBAHIZFZABJKCBLMRZUDUEUGU
      DCUFBUDUFCUDUFCRACEDNOPQSUEUGUHTUDABCDUAUBUC $.
  $}

  ${
    cplgr3v.e $e |- E = ( Edg ` G ) $.
    cplgr3v.t $e |- ( Vtx ` G ) = { A , B , C } $.
    $d A n v $.  $d B n v $.  $d C n v $.  $d G n v $.  $d X n v $.
    $d Y n v $.  $d Z n v $.
    $( A pseudograph with three (different) vertices is complete iff there is
       an edge between each of these three vertices.  (Contributed by Alexander
       van der Vekens, 12-Oct-2017.)  (Revised by AV, 5-Nov-2020.)  (Proof
       shortened by AV, 13-Feb-2022.) $)
    cplgr3v $p |- ( ( ( A e. X /\ B e. Y /\ C e. Z ) /\ G e. UPGraph
                       /\ ( A =/= B /\ A =/= C /\ B =/= C ) )
                   -> ( G e. ComplGraph <-> ( { A , B } e. E
                        /\ { B , C } e. E /\ { C , A } e. E ) ) ) $=
      ( vn wcel w3a wne cnbgr cdif wb wceq wa eleq1 vv cupgr ccplgr cv ctp wral
      co csn cpr cvtx cfv eqcomi iscplgrnb 3ad2ant2 difeq2d tprot difeq1i necom
      diftpsn3 syl2anb 3adant3 syl5eq 3ad2ant3 sylan9eqr oveq2 eleq2d raleqbidv
      sneq adantl biimpi anim2i ancomd syl 3adant2 3adant1 simp1 3ad2ant1 simp2
      simp3 raltpd ralprg ancoms 3anbi123d 3an6 nbgrsym 3anbi123i anbi1d 3anrot
      bicomi anbi1i anidm bitri tpid3g syl6eleqr 3anim123i df-3an simplr anim1i
      a1i sylib simpll anim12i nbupgrel 3imp3i2an necomd syl3an1 syl5bb 3bitrd
      simpr ) AFLZBGLZCHLZMZEUBLZABNZACNZBCNZMZMZEUCLZKUDZEUAUDZOUGZLZKABCUEZYB
      UHZPZUFZUAYEUFZYAEAOUGZLZKBCUIZUFZYAEBOUGZLZKCAUIZUFZYAECOUGZLZKABUIZUFZM
      ZYTDLZYLDLZYPDLZMZXNXMXTYIQXRUAKEYEUBEUJUKYEJULZUMUNXSYHYMYQUUAUAABCFGHXS
      YBARZSYDYKKYGYLUUHXSYGYEAUHZPZYLUUHYFUUIYEYBAVHUOXRXMUUJYLRXNXRUUJBCAUEZU
      UIPZYLYEUUKUUIABCUPZUQXOXPUULYLRZXQXOBANCANZUUNXPABURACURBCAUSUTVAVBVCVDU
      UHYDYKQXSUUHYCYJYAYBAEOVEVFVIVGXSYBBRZSYDYOKYGYPUUPXSYGYEBUHZPZYPUUPYFUUQ
      YEYBBVHUOXRXMUURYPRXNXRUURCABUEZUUQPZYPYEUUSUUQUUSYECABUPULZUQXOXQUUTYPRZ
      XPXOXQSZCBNZXOSUVBUVCXOUVDXQUVDXOXQUVDBCURVJVKVLCABUSVMVNVBVCVDUUPYDYOQXS
      UUPYCYNYAYBBEOVEVFVIVGXSYBCRZSYDYSKYGYTUVEXSYGYECUHZPZYTUVEYFUVFYEYBCVHUO
      XRXMUVGYTRZXNXPXQUVHXOABCUSVOVCVDUVEYDYSQXSUVEYCYRYAYBCEOVEVFVIVGXMXNXJXR
      XJXKXLVPVQXMXNXKXRXJXKXLVRVQXMXNXLXRXJXKXLVSVQVTXSUUBBYJLZCYJLZSZCYNLZAYN
      LZSZAYRLZBYRLZSZMZUVIUVLUVOMZUVJUVMUVPMZSZUUFXMXNUUBUVRQXRXMYMUVKYQUVNUUA
      UVQXKXLYMUVKQXJYKUVIUVJKBCGHYABYJTYACYJTWAVOXJXLYQUVNQZXKXLXJUWBYOUVLUVMK
      CAHFYACYNTYAAYNTWAWBVNXJXKUUAUVQQXLYSUVOUVPKABFGYAAYRTYABYRTWAVAWCVQUVRUW
      AQXSUVIUVJUVLUVMUVOUVPWDWSXSUWAUVMUVPUVJMZUVTSZUVTUUFXSUVSUWCUVTUVSUWCQXS
      UVIUVMUVLUVPUVOUVJEABWEEBCWEECAWEWFWSWGUWDUVTQXSUWDUVTUVTSUVTUWCUVTUVTUVT
      UWCUVJUVMUVPWHZWIWJUVTWKWLWSUVTUWCXSUUFUWEXMAYELZBYELZSZCYELZSZXNXRUWCUUF
      QXMUWFUWGUWIMUWJXJUWFXKUWGXLUWIXJAUUKYEAFBCWMUUMWNXKBUUSYEBGCAWMUVAWNCHAB
      WMWOUWFUWGUWIWPWTUWJXNXRMUVMUUCUVPUUDUVJUUEUWJXNXRXNUWGSZUWFXOSUVMUUCQUWJ
      XNUWKXRUWJXNSZUWGXNUWJUWGXNUWFUWGUWIWQZWRVLVAUWJUWFXRXOUWFUWGUWIXAZXOXPXQ
      VPXBDEBAYEUUGIXCXDUWJXNXRXNUWISZUWGXQSUVPUUDQUWJXNUWOXRUWLUWIXNUWJUWIXNUW
      HUWIXIZWRVLVAUWJUWGXRXQUWMXOXPXQVSXBDECBYEUUGIXCXDUWJXNXRXNUWFSZUWIUUOSUV
      JUUEQUWJXNUWQXRUWLUWFXNUWJUWFXNUWNWRVLVAUWJUWIXRUUOUWPXRACXOXPXQVRXEXBDEA
      CYEUUGIXCXDWCXFXGXHXHXH $.

    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d E x y z $.  $d G x y z $.
    $d V x y z $.  $d X y $.  $d Y y $.  $d Z y $.
    cplgr3v.v $e |- V = ( Vtx ` G ) $.
    $( The neighbors of a vertex in a simple graph with three elements are
       unordered pairs of the other vertices if and only if the graph is
       complete.  (Contributed by Alexander van der Vekens, 18-Oct-2017.)
       (Revised by AV, 5-Nov-2020.) $)
    cusgr3vnbpr $p |- ( ( ( A e. X /\ B e. Y /\ C e. Z ) /\ G e. USGraph
                       /\ ( A =/= B /\ A =/= C /\ B =/= C ) )
             -> ( G e. ComplGraph <-> A. x e. V E. y e. V E. z e. ( V \ { y } )
                  ( G NeighbVtx x ) = { y , z } ) ) $=
      ( wcel w3a wne cpr cv cusgr ccplgr cnbgr co wceq csn cdif wrex wral cupgr
      usgrupgr cplgr3v syl3an2 simp2 ctp cvtx cfv eqtri a1i simp1 simp3 nb3grpr
      wb bitrd ) DJPEKPFLPQZHUAPZDERDFREFRQZQZHUBPZDESGPEFSGPFDSGPQZHATUCUDBTZC
      TSUECIVKUFUGUHBIUHAIUIVFVEHUJPVGVIVJVCHUKDEFGHJKLMNULUMVHABCDEFGHIJKLOMVE
      VFVGUNIDEFUOZUEVHIHUPUQVLONURUSVEVFVGUTVEVFVGVAVBVD $.
  $}

  ${
    $d G e g n v $.
    $( A complete graph represented by an ordered pair.  (Contributed by AV,
       10-Nov-2020.) $)
    cplgrop $p |- ( G e. ComplGraph
                    -> <. ( Vtx ` G ) , ( iEdg ` G ) >. e. ComplGraph ) $=
      ( vg vv vn ve ccplgr wcel cvv ciedg cvtx cv wceq cedg wrex cdif wral eqid
      cfv wa adantl cpr wss csn iscplgredg crn edgval simpl difeq1d simpr rneqd
      wi a1i syl5eq eqtr4d rexeqdv raleqbidv biimpar wb vex ax-mp sylibr expcom
      expd syl5com sylbid pm2.43i alrimiv fvexd gropeld ) AFGZFHBAIRZAJRZHVJBKZ
      JRZVLLZVMIRZVKLZSZVMFGZUKZBVJVTVJVJCKZDKUAEKUBZEAMRZNZDVLWAUCZOZPZCVLPZVT
      CEDWCAVLFVLQWCQUDVJWCVKUEZLZWHVTWJVJAUFULWHWJVRVSWJVRSZWHVSWKWHSWBEVMMRZN
      ZDVNWEOZPZCVNPZVSWKWPWHWKWOWGCVNVLVRVOWJVOVQUGZTWKWMWDDWNWFVRWNWFLWJVRVNV
      LWEWQUHTWKWBEWLWCWKWLWIWCVRWLWILWJVRWLVPUEWIVMUFVRVPVKVOVQUIUJUMTWJVRUGUN
      UOUPUPUQVMHGVSWPURBUSCEDWLVMVNHVNQWLQUDUTVAVBVCVDVEVFVGVJAJVHVJAIVHVI $.
  $}

  $( A complete simple graph represented by an ordered pair.  (Contributed by
     AV, 10-Nov-2020.) $)
  cusgrop $p |- ( G e. ComplUSGraph
                  -> <. ( Vtx ` G ) , ( iEdg ` G ) >. e. ComplUSGraph ) $=
    ( cusgr wcel ccplgr wa cvtx cfv ciedg ccusgr usgrop cplgrop anim12i iscusgr
    cop 3imtr4i ) ABCZADCZEAFGAHGNZBCZRDCZEAICRICPSQTAJAKLAMRMO $.

  ${
    $d V x $.
    usgrexi.p $e |- P = { x e. ~P V | ( # ` x ) = 2 } $.
    $( Lemma 1 for ~ cusgrexi .  (Contributed by Alexander van der Vekens,
       12-Jan-2018.) $)
    cusgrexilem1 $p |- ( V e. W -> ( _I |` P ) e. _V ) $=
      ( wcel cvv cid cres cv chash cfv c2 wceq cpw pwexg rabexd resiexg syl ) C
      DFZBGFHBIGFTAJKLMNACOBGECDPQBGRS $.

    $( Lemma for ~ usgrexi .  (Contributed by AV, 12-Jan-2018.)  (Revised by
       AV, 10-Nov-2021.) $)
    usgrexilem $p |- ( V e. W -> ( _I |` P ) : dom ( _I |` P )
                                   -1-1-> { x e. ~P V | ( # ` x ) = 2 } ) $=
      ( wcel cid cres cdm cv chash cfv c2 wceq cpw crab wf1 wf1o ax-mp wb f1of1
      f1oi dmresi f1eq2 mpbir eqcomi f1eq3 mp1i mpbiri ) CDFZGBHZIZAJKLMNACOPZU
      KQZULBUKQZUOBBUKQZBBUKRUPBUBBBUKUASULBNUOUPTBUCULBBUKUDSUEUMBNUNUOTUJBUME
      UFUMBULUKUGUHUI $.

    $d P x $.  $d W x $.
    $( An arbitrary set regarded as vertices together with the set of pairs of
       elements of this set regarded as edges is a simple graph.  (Contributed
       by Alexander van der Vekens, 12-Jan-2018.)  (Revised by AV, 5-Nov-2020.)
       (Proof shortened by AV, 10-Nov-2021.) $)
    usgrexi $p |- ( V e. W -> <. V , ( _I |` P ) >. e. USGraph ) $=
      ( wcel cid cres cop cusgr cfv cdm wceq cpw crab wf1 cvv mpdan mpbird eqid
      ciedg cv chash c2 usgrexilem cusgrexilem1 opiedgfv dmeqd opvtxfv f1eq123d
      cvtx pweqd rabeqdv wb opex isusgrs mp1i ) CDFZCGBHZIZJFZUTUAKZLZAUBUCKUDM
      ZAUTUKKZNZOZVBPZURVHUSLZVDACNZOZUSPABCDEUEURVCVIVGVKVBUSURUSQFZVBUSMABCDE
      UFZUSCDQUGRZURVBUSVNUHURVDAVFVJURVECURVLVECMVMUSCDQUIRULUMUJSUTQFVAVHUNUR
      CUSUOAQVBUTVEVETVBTUPUQS $.

    $d P e n v x $.  $d V e n v $.  $d W e n v $.
    $( Lemma 2 for ~ cusgrexi .  (Contributed by AV, 12-Jan-2018.)  (Revised by
       AV, 10-Nov-2021.) $)
    cusgrexilem2 $p |- ( ( ( V e. W /\ v e. V ) /\ n e. ( V \ { v } ) )
                         -> E. e e. ran ( _I |` P ) { v , n } C_ e ) $=
      ( wcel cv wa csn wss chash cfv c2 wceq syl2an adantl wb cdif cpr cid cres
      crn cpw simpr eldifi prelpwi wne eldifsni necomd hashprg mpbid fveq2 crab
      eqeq1d rnresi eqtri elrab2 sylanbrc sseq2 ssid a1i rspcedvd ) FGIZBJZFIZK
      ZEJZFVGLZUAIZKZVGVJUBZDJZMZVNVNMZDVNUCCUDUEZVMVNFUFZIZVNNOZPQZVNVRIVIVHVJ
      FIZVTVLVFVHUGZVJFVKUHZVGVJFUIRVMVGVJUJZWBVLWFVIVLVJVGVJFVGUKULSVIVHWCWFWB
      TVLWDWEVGVJFFUMRUNAJZNOZPQZWBAVNVSVRWGVNQWHWAPWGVNNUOUQVRCWIAVSUPCURHUSUT
      VAVOVNQVPVQTVMVOVNVNVBSVQVMVNVCVDVE $.

    $( An arbitrary set ` V ` regarded as set of vertices together with the set
       of pairs of elements of this set regarded as edges is a complete simple
       graph.  (Contributed by Alexander van der Vekens, 12-Jan-2018.)
       (Revised by AV, 5-Nov-2020.)  (Proof shortened by AV, 14-Feb-2022.) $)
    cusgrexi $p |- ( V e. W -> <. V , ( _I |` P ) >. e. ComplUSGraph ) $=
      ( vv vn ve wcel cv cfv wral wa cvv wceq mpdan eleq2d wb ad2antrr mpbird
      cid cres cop cusgr ccplgr ccusgr usgrexi cuvtx cvtx cnbgr co cusgrexilem1
      csn cdif opvtxfv eqcomd biimpa wne cpr wss cedg wrex eldifi adantl simplr
      jca eldifsni cusgrexilem2 ciedg edgval opiedgfv rneqd syl5eq rexeqdv eqid
      nbgrel syl3anbrc ralrimiva adantr difeq1d raleqdv uvtxel sylanbrc iscplgr
      crn opex mp1i iscusgr ) CDIZCUABUBZUCZUDIWKUEIZWKUFIABCDEUGWIWLFJZWKUHKIZ
      FWKUIKZLZWIWPWNFCLWIWNFCWIWMCIZMZWMWOIZGJZWKWMUJUKIZGWOWMUMZUNZLZWNWIWQWS
      WICWOWMWIWJNIZCWOOABCDEULZWIXEMWOCWJCDNUOZUPPQUQWRXDXAGCXBUNZLWRXAGXHWRWT
      XHIZMZWTWOIZWSMWTWMURZWMWTUSHJUTZHWKVAKZVBZXAXJXKWSXJXKWTCIZXIXPWRWTCXBVC
      VDWIXKXPRWQXIWIWOCWTWIXEWOCOZXFXGPZQSTXJWSWQWIWQXIVEWIWSWQRWQXIWIWOCWMXRQ
      STVFXIXLWRWTCWMVGVDXJXOXMHWJWEZVBZAFBHGCDEVHWIXOXTRWQXIWIXMHXNXSWIXNWKVIK
      ZWEXSWKVJWIYAWJWIXEYAWJOXFWJCDNVKPVLVMVNSTHXNWKWTWOWMWOVOZXNVOVPVQVRWRXAG
      XCXHWRWOCXBWIXQWQXRVSVTWATGWKWMWOYBWBWCVRWIWNFWOCXRWATWKNIWLWPRWICWJWFFWK
      WONYBWDWGTWKWHWC $.
  $}

  ${
    $d V x y $.  $d V e y $.  $d W x $.
    $( For each set there is a set of edges so that the set together with these
       edges is a complete simple graph.  (Contributed by Alexander van der
       Vekens, 12-Jan-2018.)  (Revised by AV, 5-Nov-2020.) $)
    cusgrexg $p |- ( V e. W -> E. e <. V , e >. e. ComplUSGraph ) $=
      ( vy vx wcel cid cv chash cfv wceq cpw crab cres cvv cop ccusgr wex weq
      c2 fveq2 eqeq1d cbvrabv cusgrexilem1 cusgrexi opeq2 eleq1d spcegv sylc )
      BCFGDHZIJZTKZDBLZMZNZOFBUOPZQFZBAHZPZQFZAREUNBCULEHZIJZTKDEUMDESUKVBTUJVA
      IUAUBUCZUDEUNBCVCUEUTUQAUOOURUOKUSUPQURUOBUFUGUHUI $.
  $}

  ${
    $d G x $.  $d P x $.  $d S x $.  $d ph x $.
    structtousgr.p $e |- P = { x e. ~P ( Base ` S ) | ( # ` x ) = 2 } $.
    structtousgr.s $e |- ( ph -> S Struct X ) $.
    structtousgr.g $e |- G = ( S sSet <. ( .ef ` ndx ) , ( _I |` P ) >. ) $.
    structtousgr.b $e |- ( ph -> ( Base ` ndx ) e. dom S ) $.
    $( Any (extensible) structure with a base set can be made a simple graph
       with the set of pairs of elements of the base set regarded as edges.
       (Contributed by AV, 10-Nov-2021.)  (Revised by AV, 17-Nov-2021.) $)
    structtousgr $p |- ( ph -> G e. USGraph ) $=
      ( cnx cedgf cfv cid cres cbs cvv eqid wcel mp1i cop co cusgr cusgrexilem1
      csts fvex cdm cv chash wceq cpw crab wf1 usgrexilem usgrstrrepe syl5eqel
      c2 ) AEDKLMZNCOZUAUEUBUCIABUSDURDPMZQFUTRURRHJUTQSZUSQSADPUFZBCUTQGUDTVAU
      SUGBUHUIMUQUJBUTUKULUSUMAVBBCUTQGUNTUOUP $.

    $d G e n v $.  $d P e n v x $.  $d S e n v $.  $d ph n v $.
    $( Any (extensible) structure with a base set can be made a complete simple
       graph with the set of pairs of elements of the base set regarded as
       edges.  (Contributed by AV, 10-Nov-2021.)  (Revised by AV, 17-Nov-2021.)
       (Proof shortened by AV, 14-Feb-2022.) $)
    structtocusgr $p |- ( ph -> G e. ComplUSGraph ) $=
      ( vv vn ve wcel cv cfv cvtx wa cbs cvv cusgr ccplgr structtousgr cuvtx co
      ccusgr wral cnbgr csn cdif wne cpr wss cedg wrex eldifi anim12ci eldifsni
      simpr adantl cid cres crn fvexd cnx cedgf cop csts eqid fvex cusgrexilem1
      fveq2i setsvtx syl5eq eleq2d biimpa adantr wi difeq1d biimpd cusgrexilem2
      mp1i imp syl21anc wb ciedg edgval setsiedg rexeqdv ad2antrr mpbird nbgrel
      rneqd syl3anbrc ralrimiva uvtxel sylanbrc elexd iscplgr syl iscusgr ) AEU
      ANEUBNZEUFNABCDEFGHIJUCZAXBKOZEUDPNZKEQPZUGZAXEKXFAXDXFNZRZXHLOZEXDUHUENZ
      LXFXDUIZUJZUGXEAXHUSZXIXKLXMXIXJXMNZRZXJXFNZXHRXJXDUKZXDXJULMOUMZMEUNPZUO
      ZXKXIXHXOXQXNXJXFXLUPUQXOXRXIXJXFXDURUTXPYAXSMVACVBZVCZUOZXPDSPZTNZXDYENZ
      XJYEXLUJZNZYDXPDSVDXIYGXOAXHYGAXFYEXDAXFDVEVFPZYBVGVHUEZQPYEEYKQIVLAYBDYJ
      TFYJVIZHJYFYBTNADSVJBCYETGVKWBZVMVNZVOVPVQXIXOYIAXOYIVRXHAXOYIAXMYHXJAXFY
      EXLYNVSVOVTVQWCBKCMLYETGWAWDAYAYDWEXHXOAXSMXTYCAXTEWFPZVCYCEWGAYOYBAYOYKW
      FPYBEYKWFIVLAYBDYJTFYLHJYMWHVNWMVNWIWJWKMXTEXJXFXDXFVIZXTVIWLWNWOLEXDXFYP
      WPWQWOAETNXBXGWEAEUAXCWRKEXFTYPWSWTWKEXAWQ $.
  $}

  ${
    $d G x $.  $d P x $.
    cffldtocusgr.p $e |- P = { x e. ~P CC | ( # ` x ) = 2 } $.
    cffldtocusgr.g $e |- G = ( CCfld sSet <. ( .ef ` ndx ) ,
                                             ( _I |` P ) >. ) $.
    $( The field of complex numbers can be made a complete simple graph with
       the set of pairs of complex numbers regarded as edges.  This theorem
       demonstrates the capabilities of the current definitions for graphs
       applied to extensible structures.  (Contributed by AV, 14-Nov-2021.)
       (Proof shortened by AV, 17-Nov-2021.) $)
    cffldtocusgr $p |- G e. ComplUSGraph $=
      ( cnx cbs cfv cc cop ccnfld wcel ctp csn cun wo orci elun mpbir wceq cmul
      ccusgr cplusg caddc cmulr cstv ccj cts cabs cmin ccom cmopn cle cds cunif
      cple cmetu tpid1 df-cnfld eleq2i bitri c1 c3 cdc cv chash c2 cpw cnfldbas
      opex crab pweqi rabeq ax-mp cstr wbr cnfldstr a1i fvex cnex structtocusgr
      eqtri opeldm ) FGHZIJZKLZCUBLWFWEWEFUCHUDJZFUEHUAJZMZFUFHUGJNZOZLZWEFUHHU
      IUJUKZULHJFUPHUMJFUNHWMJMFUOHWMUQHJNOZLZPZWLWOWLWEWILZWEWJLZPWQWRWEWGWHWD
      IVJURQWEWIWJRSQWFWEWKWNOZLWPKWSWEUSUTWEWKWNRVASWFABKCVBVBVCVDJZBAVEVFHVGT
      ZAIVHZVKZXAAKGHZVHZVKZDXBXETXCXFTIXDVIVLXAAXBXEVMVNWBKWTVOVPWFVQVREWDIKFG
      VSVTWCWAVN $.
  $}

  ${
    $d E e $.  $d G e n v $.  $d N e n v $.  $d S n v $.  $d V e n v $.
    cusgrres.v $e |- V = ( Vtx ` G ) $.
    cusgrres.e $e |- E = ( Edg ` G ) $.
    cusgrres.f $e |- F = { e e. E | N e/ e } $.
    cusgrres.s $e |- S = <. ( V \ { N } ) , ( _I |` F ) >. $.
    $( Restricting a complete simple graph.  (Contributed by Alexander van der
       Vekens, 2-Jan-2018.) $)
    cusgrres $p |- ( ( G e. ComplUSGraph /\ N e. V ) -> S e. ComplUSGraph ) $=
      ( vv vn ccusgr wcel wa cusgr ccplgr cfv cvv cusgrusgr usgrres1 sylan cdif
      cv cuvtx csn wral iscusgr cupgr usgrupgr adantr anim1i wi eldifi ad2antll
      iscplgr eleq1 rspcv syl ex com23 sylbid impl uvtxupgrres ralrimiva sylanb
      imp sylc cid cres cop opex eqeltri cvtx upgrres1lem2 eqcomi mp1i sylanbrc
      wb mpbird ) ENOZFGOZPZAQOZAROZANOWBEQOZWCWEEUAABCDEFGHIJKUBUCWDWFLUEZAUFS
      OZLGFUGZUDZUHZWBWGEROZPZWCWLEUIWNWCPZWILWKWOWHWKOZPEUJOZWCPZWPPWHEUFSZOZW
      IWOWRWPWNWQWCWGWQWMEUKULUMUMWNWCWPWTWGWMWCWPPZWTUNZWGWMMUEZWSOZMGUHZXBMEG
      QHUQWGXAXEWTWGXAXEWTUNZWGXAPWHGOZXFWPXGWGWCWHGWJUOUPXDWTMWHGXCWHWSURUSUTV
      AVBVCVHVDABCDEWHFGHIJKVEVIVFVGATOWFWLVTWDAWKVJDVKZVLTKWKXHVMVNLAWKTAVOSWK
      ABCDEFGHIJKVPVQUQVRWAAUIVS $.
  $}

  ${
    cusgrsizeindb0.v $e |- V = ( Vtx ` G ) $.
    cusgrsizeindb0.e $e |- E = ( Edg ` G ) $.
    $( Base case of the induction in ~ cusgrsize .  The size of a complete
       simple graph with 0 vertices, actually of every null graph, is
       0=((0-1)*0)/2.  (Contributed by Alexander van der Vekens, 2-Jan-2018.)
       (Revised by AV, 7-Nov-2020.) $)
    cusgrsizeindb0 $p |- ( ( G e. UHGraph /\ ( # ` V ) = 0 )
                           -> ( # ` E ) = ( ( # ` V ) _C 2 ) ) $=
      ( cuhgr wcel chash cfv cc0 wceq wa c2 cbc co uhgr0vsize0 oveq1 2nn bc0k
      cn ax-mp syl6req adantl eqtrd ) BFGZCHIZJKZLAHIJUFMNOZABCDEPUGJUHKUEUGUHJ
      MNOZJUFJMNQMTGUIJKRMSUAUBUCUD $.

    $( Base case of the induction in ~ cusgrsize .  The size of a (complete)
       simple graph with 1 vertex is 0=((1-1)*1)/2.  (Contributed by Alexander
       van der Vekens, 2-Jan-2018.)  (Revised by AV, 7-Nov-2020.) $)
    cusgrsizeindb1 $p |- ( ( G e. USGraph /\ ( # ` V ) = 1 )
                           -> ( # ` E ) = ( ( # ` V ) _C 2 ) ) $=
      ( cusgr wcel chash cfv c1 wceq wa c2 cbc co cc0 usgr1v0e wb clt wbr oveq1
      cn0 cz wo 1nn0 2z 1lt2 olci bcval4 mp3an syl6eq eqeq2d adantl mpbird ) BF
      GZCHIZJKZLAHIZUPMNOZKZURPKZABCDEQUQUTVARUOUQUSPURUQUSJMNOZPUPJMNUAJUBGMUC
      GMPSTZJMSTZUDVBPKUEUFVDVCUGUHMJUIUJUKULUMUN $.

    $d E e f n $.  $d G e f n $.  $d N e f n $.  $d V e f n $.
    $( Lemma for ~ cusgrsizeinds .  (Contributed by Alexander van der Vekens,
       11-Jan-2018.)  (Revised by AV, 9-Nov-2020.) $)
    cusgrsizeindslem $p |- ( ( G e. ComplUSGraph /\ V e. Fin /\ N e. V )
                        -> ( # ` { e e. E | N e. e } ) = ( ( # ` V ) - 1 ) ) $=
      ( vf vn wcel cfn co chash cfv cv crab wceq 3adant2 wa syl ccusgr w3a cdif
      cnbgr c1 cmin ccplgr cusgrcplgr nbcplgr sylan fveq2d wf1o cusgr cusgrusgr
      csn wex anim1i nbusgrf1o wb cpr nbusgr adantr rabfi adantl eqeltrd cfusgr
      3adant3 isfusgr sylibr cedg fusgrfis syl5eqel hasheqf1o syl2anc hashdifsn
      mpbird 3adant1 3eqtr3d ) CUAJZEKJZDEJZUBZCDUDLZMNZEDUOUCZMNZDAOJZABPZMNZE
      MNUEUFLZWBWCWEMVSWAWCWEQZVTVSCUGJWAWKCUHCDEFUIUJRUKWBWDWIQZWCWHHOULHUPZWB
      CUMJZWASZWMVSWAWOVTVSWNWACUNZUQRDAHBCEFGURTWBWCKJZWHKJZWLWMUSVSVTWQWAVSVT
      SZWCDIOUTBJZIEPZKVSWCXAQZVTVSWNXBWPIBCDEFGVATVBVTXAKJVSWTIEVCVDVEVGVSVTWR
      WAWSCVFJZWRWSWNVTSXCVSWNVTWPUQCEFVHVIXCBKJWRXCBCVJNKGCVKVLWGABVCTTVGWCWHH
      VMVNVPVTWAWFWJQVSEDVOVQVR $.

    ${
      cusgrsizeinds.f $e |- F = { e e. E | N e/ e } $.
      $( Part 1 of induction step in ~ cusgrsize .  The size of a complete
         simple graph with ` n ` vertices is ` ( n - 1 ) ` plus the size of the
         complete graph reduced by one vertex.  (Contributed by Alexander van
         der Vekens, 11-Jan-2018.)  (Revised by AV, 9-Nov-2020.) $)
      cusgrsizeinds $p |- ( ( G e. ComplUSGraph /\ V e. Fin /\ N e. V )
                          -> ( # ` E ) = ( ( ( # ` V ) - 1 ) + ( # ` F ) ) ) $=
        ( wcel cfn cfv chash co caddc wceq wi wa eqcomi a1i ccusgr cedg c1 cmin
        w3a cusgr cusgrusgr cfusgr isfusgr fusgrfis sylbir a1d ex syl 3imp crab
        cv cun elnelun fveq2i cin c0 eleq1i rabfi sylbi adantl wb anim1i sylibr
        usgrfilem stoic3 syl5bb biimpa elneldisj hashun cusgrsizeindslem adantr
        eqid syl3anc oveq1d 3eqtrd mpdan ) DUAJZFKJZEFJZUEZDUBLZKJZBMLZFMLUCUDN
        ZCMLZONZPWCWDWEWHWCDUFJZWDWEWHQZQDUGZWMWDWNWMWDRZWHWEWPDUHJZWHDFGUIZDUJ
        UKULUMUNUOWFWHRZWIEAUQZJZABUPZCURZMLZXBMLZWKONZWLWIXDPWSBXCMXCBBEWTXBCA
        XBVRZIUSSUTTWSXBKJZCKJZXBCVAVBPZXDXFPWHXHWFWHBKJZXHWGBKBWGHSVCZXAABVDVE
        VFWFWHXIWHXKWFXIXLWCWDWQWEXKXIVGWCWDRWPWQWCWMWDWOVHWRVIABCDEFGHIVJVKVLV
        MXJWSBEWTXBCAXGIVNTXBCVOVSWSXEWJWKOWFXEWJPWHABDEFGHVPVQVTWAWB $.

      $( Induction step in ~ cusgrsize .  If the size of the complete graph
         with ` n ` vertices reduced by one vertex is " ` ( n - 1 ) ` choose
         2", the size of the complete graph with ` n ` vertices is " ` n `
         choose 2".  (Contributed by Alexander van der Vekens, 11-Jan-2018.)
         (Revised by AV, 9-Nov-2020.) $)
      cusgrsize2inds $p |- ( Y e. NN0
                         -> ( ( G e. ComplUSGraph /\ ( # ` V ) = Y /\ N e. V )
                           -> ( ( # ` F ) = ( ( # ` ( V \ { N } ) ) _C 2 )
                             -> ( # ` E ) = ( ( # ` V ) _C 2 ) ) ) ) $=
        ( wcel chash cfv wceq c2 co wi cvv wa imp ccusgr w3a cn0 cdif cvtx fvex
        csn cbc eqeltri cn hashnn0n0nn anassrs c1 caddc simplll simplr wb eleq1
        cmin eqcoms nnm1nn0 syl6bi ad2antlr nncn 1cnd npcand eqcomd brfi1indlem
        syl31anc oveq1 eqeq2d cfn nnnn0 hashclb syl5ibrcom cusgrsizeinds adantl
        oveq2 bcn2m1 biimpd adantr sylbid ex com3r 3exp com14 syldc com23 com13
        syl com24 mpcom adantllr mpd exp41 com25 ax-mp 3imp com12 ) DUAKZFLMZGN
        ZEFKZUBGUCKZCLMZFEUGUDLMZOUHPZNZBLMZXAOUHPZNZQZWTXBXCXDXLQZFRKZWTXBXCXM
        QQQFDUEMRHDUEUFUIXNXDXBXCWTXLXNXDXBXCWTXLQZXNXDSZXBSXCSGUJKZXOXPXBXCXQE
        FRGUKULXNXBXCXQXOQXDXNXBSZXCSZXQXOXFXAUMUSPZNZXSXQSZXOYBXNXCXTUCKZXAXTU
        MUNPZNZYAXNXBXCXQUOXRXCXQUPXSXQYCXBXQYCQXNXCXBXQXAUJKZYCXQYFUQZGXAGXAUJ
        URUTZXAVAVBVCTXSXQYEXBXQYEQXNXCXBXQYFYEYHYFYDXAYFXAUMXAVDYFVEVFVGVBVCTX
        NXCYCUBYEYAEFRXTVHTVIYAXHWTYBXKYAXHXEXTOUHPZNZWTYBXKQQYAXGYIXEXFXTOUHVJ
        VKYBWTYJXKXSXQWTYJXKQZQZXSXQYFYLXBYGXNXCYHVCXRXCYFYLQZXNXCYMQXBXNYFXCYL
        YFXNFVLKZXCYLQYFYNXNXAUCKXAVMFRVNVOWTYNXCYFYKWTYNXCYFYKQZWTYNXCUBXIXTXE
        UNPZNZYOABCDEFHIJVPYFYJYQXKYFYJYQXKQYFYJSYQXIXTYIUNPZNZXKYJYQYSUQYFYJYP
        YRXIXEYIXTUNVRVKVQYFYSXKQYJYFYSXKYFYRXJXIXAVSVKVTWAWBWCWDWJWEWFWGWHWATW
        BTWIVBWKWLWCWMWNWOWPWQWRWS $.
    $}

    $d G e f n v $.  $d V e f n v $.  $d c e f n v w y $.
    $( The size of a finite complete simple graph with ` n ` vertices
       ( ` n e. NN0 ` ) is ` ( n _C 2 ) ` (" ` n ` choose 2") resp.
       ` ( ( ( n - 1 ) * n ) / 2 ) ` , see definition in section I.1 of
       [Bollobas] p. 3 .  (Contributed by Alexander van der Vekens,
       11-Jan-2018.)  (Revised by AV, 10-Nov-2020.) $)
    cusgrsize $p |- ( ( G e. ComplUSGraph /\ V e. Fin )
                       -> ( # ` E ) = ( ( # ` V ) _C 2 ) ) $=
      ( vc ccusgr wcel wa chash cfv crn c2 cbc co wceq fveq2d cop cv cvv ve cfn
      vv vn vf vw ciedg cedg edgval eqtri a1i cvtx opeq1i cusgrop syl5eqel wnel
      vy cid crab cres csn cdif fvex rabexg resiexd ax-mp rneq fveq2 eqeqan12rd
      oveq1d opvtxfvi eqcomi eqid cusgrres adantl adantr eqeq12d edgopval mp2an
      vex cc0 eqcomd cuhgr cusgr cusgrusgr usgruhgr syl cusgrsizeindb0 sylan c1
      eqtrd caddc cn0 rnresi fveq2i rabeqdv syl5eq eqeq1d biimpd cusgrsize2inds
      w3a imdistani imp31 opfi1ind ) BGHZCUBHZIZAJKBUGKZLZJKZCJKZMNOZXGAXIJAXIP
      XGABUHKXIEBUIUJUKQXECXHRZGHXFXJXLPZXEXMBULKZXHRGCXOXHDUMBUNUOXNUASZLZJKZU
      CSZJKZMNOZPZURUDSZFSUPZFXSXPRZUHKZUSZUTZLZJKZXSYCVAVBZJKZMNOZPZUESZLZJKZU
      FSZJKZMNOZPUQUFUCUAUEUDXHYHGCBUGVCYFTHZYHTHYEUHVCUUAYGTYDFYFTVDVEVFXPXHPZ
      XSCPZXRXJYAXLUUBXQXIJXPXHVGQUUCXTXKMNXSCJVHVJVIXPYOPZXSYRPZXRYQYAYTUUDXQY
      PJXPYOVGQUUEXTYSMNXSYRJVHVJVIYKYHRZFYFYGYEYCXSYEULKXSXPXSUCVTZUAVTZVKVLZY
      FVMZYGVMUUFVMVNYRYKPZYOYHPZIZYQYJYTYMUULYQYJPUUKUULYPYIJYOYHVGQVOUUMYSYLM
      NUUKYSYLPUULYRYKJVHVPVJVQYEGHZXTWAPZIZXRYFJKZYAUUPXQYFJUUPYFXQYFXQPZUUPXS
      THXPTHUURUUGUUHXPXSTTVRVSZUKWBQUUNYEWCHZUUOUUQYAPUUNYEWDHUUTYEWEYEWFWGYFY
      EXSUUIUUJWHWIWKUQSWJWLOZWMHZUUNXTUVAPYCXSHXAZIZYNIUVDYDFXQUSZJKZYMPZIYBUV
      DYNUVGUVDYNUVGUVDYJUVFYMUVDYJYGJKUVFYIYGJYGWNWOUVDYGUVEJUVDYDFYFXQUURUVDU
      USUKWPQWQWRWSXBUVBUVCUVGYBFXQUVEYEYCXSUVAUUIYFXQUUSVLUVEVMWTXCWGXDWIWK $.
  $}

  ${
    cusgrfi.v $e |- V = ( Vtx ` G ) $.
    ${
      $d G x $.  $d N a x $.  $d V a x $.
      cusgrfi.p $e |- P = { x e. ~P V |
                            E. a e. V ( a =/= N /\ x = { a , N } ) } $.
      $( Lemma 1 for ~ cusgrfi .  (Contributed by Alexander van der Vekens,
         13-Jan-2018.)  (Revised by AV, 11-Nov-2020.) $)
      cusgrfilem1 $p |- ( ( G e. ComplUSGraph /\ N e. V )
                          -> P C_ ( Edg ` G ) ) $=
        ( ccusgr wcel cfv wss cv chash c2 wceq crab wi wa imp cedg cpw cusgredg
        eqid wne cpr wrex fveq2 ad2antlr wb hashprg adantrr biimpcd eqtrd an13s
        adantr rexlimdvaa ss2rabdv a1i id sseq12d syl5ibr syl ) CIJZDEJZBCUAKZL
        ZVDVFAMZNKZOPZAEUBZQZPZVEVGRAVFCEGVFUDUCVEVGVMFMZDUEZVHVNDUFZPZSZFEUGZA
        VKQZVLLVEVSVJAVKVEVHVKJZSZVRVJFEVRVNEJZWBVJVRWCWBSZSVIVPNKZOVQVIWEPVOWD
        VHVPNUHUIVRWDWEOPZVOWDWFRVQWDVOWFWCVEVOWFUJWAVNDEEUKULUMUPTUNUOUQURVMBV
        TVFVLBVTPVMHUSVMUTVAVBVCT $.

      $d F e $.  $d N a e x $.  $d N a v x $.  $d P e x $.  $d V e $.
      $d V v $.
      cusgrfi.f $e |- F = ( x e. ( V \ { N } ) |-> { x , N } ) $.
      $( Lemma 2 for ~ cusgrfi .  (Contributed by Alexander van der Vekens,
         13-Jan-2018.)  (Revised by AV, 11-Nov-2020.) $)
      cusgrfilem2 $p |- ( N e. V -> F : ( V \ { N } ) -1-1-onto-> P ) $=
        ( ve vv wcel cv wral wceq wa wrex adantl eqeq1 cpr csn cdif wreu eldifi
        wf1o cpw wne id prelpwi syl2anr eldifsni eqidd jca neeq1 eqeq2d anbi12d
        wb preq1 rspcedv sylc crab eleq2i anbi2d rexbidv cbvrabv bitri sylanbrc
        elrab2 ralrimiva simpl anim2i eldifsn sylibr wi ad2antlr preqr1 equcomd
        vex syl6bi adantll equcoms biimpcd impbid reximdv2 expimpd reu6 3imtr4g
        ex ralrimiv f1ompt ) EFMZANZEUAZBMZAFEUBZUCZOKNZWNPZAWQUDZKBOWQBCUFWLWO
        AWQWLWMWQMZQZWNFUGZMZGNZEUHZWNXEEUAZPZQZGFRZWOXAWMFMZWLXDWLWMFWPUEZWLUI
        WMEFUJUKXBXKWMEUHZWNWNPZQZXJXAXKWLXLSXBXMXNXAXMWLWMFEULSXBWNUMUNXKXIXOG
        WMFXKUIXEWMPZXIXOURXKXPXFXMXHXNXEWMEUOXPXGWNWNXEWMEUSZUPUQSUTVAWOWNXFWM
        XGPZQZGFRZAXCVBZMXDXJQBYAWNIVCXFLNZXGPZQZGFRZXJLWNXCYAYBWNPZYDXIGFYFYCX
        HXFYBWNXGTVDVEXTYEALXCWMYBPZXSYDGFYGXRYCXFWMYBXGTVDVEVFVIVGVHVJWLWTKBWL
        WRXCMZXFWRXGPZQZGFRZQWSWMXEPZURZAWQOZGWQRZWRBMWTWLYHYKYOWLYHQZYJYNGFWQY
        PXEFMZYJQZXEWQMZYNQYPYRQZYSYNYTYQXFQZYSYRUUAYPYJXFYQXFYIVKVLSXEFEVMVNYT
        YMAWQYTXAQWSYLYRXAWSYLVOYPYRXAQWSXGWNPZYLYJWSUUBURZYQXAYIUUCXFWRXGWNTSV
        PUUBGAXEWMEGVSAVSVQVRVTWAYRYLWSVOZYPXAYJUUDYQYIUUDXFYLYIWSYLXGWNWRUUBGA
        XQWBUPWCSSVPWDVJUNWIWEWFXTYKAWRXCBWMWRPZXSYJGFUUEXRYIXFWMWRXGTVDVEIVIWS
        AGWQWGWHWJAKWQBWNCJWKVH $.

      $d F f $.  $d N f $.  $d P f $.  $d V f $.
      $( Lemma 3 for ~ cusgrfi .  (Contributed by Alexander van der Vekens,
         13-Jan-2018.)  (Revised by AV, 11-Nov-2020.) $)
      cusgrfilem3 $p |- ( N e. V -> ( V e. Fin <-> P e. Fin ) ) $=
        ( vf wcel cfn csn cdif wn cv wf1o cvv cvtx diffi wa snfi difinf sylancl
        simpr ex con4d impbid2 cen wbr wb wex cpr cmpt cfv eqeltri difexg ax-mp
        fvex mptexg mp1i syl5eqel cusgrfilem2 f1oeq1 spcegv sylc bren syl bitrd
        sylibr enfi ) EFLZFMLZFENZOZMLZBMLZVMVNVQFVOUAVMVNVQVMVNPZVQPZVMVSUBVSV
        OMLVTVMVSUFEUCFVOUDUEUGUHUIVMVPBUJUKZVQVRULVMVPBKQZRZKUMZWAVMCSLVPBCRZW
        DVMCAVPAQEUNZUOZSJVPSLZWGSLVMFSLWHFDTUPSHDTUTUQFVOSURUSAVPWFSVAVBVCABCD
        EFGHIJVDWCWEKCSVPBWBCVEVFVGVPBKVHVKVPBVLVIVJ $.
    $}

    $d E n $.  $d G n p $.  $d V e n p v $.
    cusgrfi.e $e |- E = ( Edg ` G ) $.
    $( If the size of a complete simple graph is finite, then its order is also
       finite.  (Contributed by Alexander van der Vekens, 13-Jan-2018.)
       (Revised by AV, 11-Nov-2020.) $)
    cusgrfi $p |- ( ( G e. ComplUSGraph /\ E e. Fin ) -> V e. Fin ) $=
      ( vn vv ve vp ccusgr wcel cfn wn cv wi wa cpr wceq wrex expcom crab eqeq1
      nfielex wne cpw csn cdif cmpt weq anbi2d rexbidv cbvrabv eqid cusgrfilem3
      notbid biimpac cedg cfv cusgrfilem1 eleq1i ssfi syl5bi con3d com23 adantl
      wss syl mpd exlimddv com12 con4d imp ) BJKZALKZCLKZVMVOVNVOMZVMVNMZVPFNZC
      KZVMVQOZFFCUCVPVSPGNZVRUDZHNZWAVRQZRZPZGCSZHCUEZUAZLKZMZVTVSVPWKVSVOWJIWI
      ICVRUFUGINZVRQUHZBVRCGDWGWBWLWDRZPZGCSHIWHHIUIZWFWOGCWPWEWNWBWCWLWDUBUJUK
      ULZWMUMUNUOUPVSWKVTOVPVSVMWKVQVMVSWKVQOZVMVSPWIBUQURZVFZWRIWIBVRCGDWQUSWT
      VNWJVNWSLKZWTWJAWSLEUTXAWTWJWSWIVATVBVCVGTVDVEVHVIVJVKVL $.
  $}

  ${
    $d E e $.  $d G e $.
    fusgrmaxsize.v $e |- V = ( Vtx ` G ) $.
    fusgrmaxsize.e $e |- E = ( Edg ` G ) $.
    ${
      $d F a b e f k n $.  $d G a b $.  $d H a b e k n $.  $d V a b k n $.
      usgrsscusgra.h $e |- V = ( Vtx ` H ) $.
      usgrsscusgra.f $e |- F = ( Edg ` H ) $.
      $( A simple graph is a subgraph of a complete simple graph.  (Contributed
         by Alexander van der Vekens, 11-Jan-2018.)  (Revised by AV,
         13-Nov-2020.) $)
      usgredgsscusgredg $p |- ( ( G e. USGraph /\ H e. ComplUSGraph )
                                -> E C_ F ) $=
        ( va vb vn vk wcel wa cv cpr wceq wi wral cusgr ccusgr wne wrex usgredg
        csn cdif iscusgredg weq sneq difeq2d preq2 eleq1d raleqbidv rspcv simpl
        ve necomd anim2i eldifsn sylibr preq1 prcom eqeq2i eqcom sylbb ad2antll
        syl biimpd syld syl9 impl adantld syl5bi ex rexlimivv impancom ssrdv )
        CUANZDUBNZOUQABVSUQPZANZVTWABNZVSWBOJPZKPZUCZWAWDWEQZRZOZKEUDJEUDVTWCSZ
        WAACEJKFGUEWIWJJKEEWDENZWEENZOZWIWJVTDUANZLPZMPZQZBNZLEWPUFZUGZTZMETZOW
        MWIOZWCMLBDEHIUHXCXBWCWNWKWLWIXBWCSWKXBWOWDQZBNZLEWDUFZUGZTZWLWIOZWCXAX
        HMWDEMJUIZWRXELWTXGXJWSXFEWPWDUJUKXJWQXDBWPWDWOULUMUNUOXIXHWEWDQZBNZWCX
        IWEXGNZXHXLSXIWLWEWDUCZOXMWIXNWLWIWDWEWFWHUPURUSWEEWDUTVAXEXLLWEXGLKUIX
        DXKBWOWEWDVBUMUOVHWHXLWCSWLWFWHXLWCWHXKWABWHWAXKRXKWARWGXKWAWDWEVCVDWAX
        KVEVFUMVIVGVJVKVLVMVNVOVPVHVQVR $.

      $( A simple graph is a subgraph of a complete simple graph.  (Contributed
         by Alexander van der Vekens, 11-Jan-2018.)  (Revised by AV,
         13-Nov-2020.) $)
      usgrsscusgr $p |- ( ( G e. USGraph /\ H e. ComplUSGraph )
                          -> A. e e. E E. f e. F e = f ) $=
        ( cusgr wcel ccusgr wa wss weq wrex wral usgredgsscusgredg dfss5 sylib
        ) ELMFNMOCDPABQBDRACSCDEFGHIJKTABCDUAUB $.

      $( Lemma 1 for ~ sizusglecusg .  (Contributed by Alexander van der
         Vekens, 12-Jan-2018.)  (Revised by AV, 13-Nov-2020.) $)
      sizusglecusglem1 $p |- ( ( G e. USGraph /\ H e. ComplUSGraph )
                               -> ( _I |` E ) : E -1-1-> F ) $=
        ( cusgr wcel ccusgr wa cid cres wf1 wss wf1o f1oi f1of1 ax-mp sylancr
        usgredgsscusgredg f1ss ) CJKDLKMAANAOZPZABQABUEPAAUERUFASAAUETUAABCDEFG
        HIUCAABUEUDUB $.

      $( Lemma 2 for ~ sizusglecusg .  (Contributed by Alexander van der
         Vekens, 13-Jan-2018.)  (Revised by AV, 13-Nov-2020.) $)
      sizusglecusglem2 $p |- ( ( G e. USGraph /\ H e. ComplUSGraph
                                 /\ F e. Fin ) -> E e. Fin ) $=
        ( cusgr wcel ccusgr cfn w3a cusgrfi 3adant1 wi wa cedg cfv fusgrfis mpd
        cfusgr isfusgr sylbir syl5eqel ex 3ad2ant1 ) CJKZDLKZBMKZNEMKZAMKZUJUKU
        LUIBDEHIOPUIUJULUMQUKUIULUMUIULRZACSTZMGUNCUCKUOMKCEFUDCUAUEUFUGUHUB $.

      $d E f $.
      $( The size of a simple graph with ` n ` vertices is at most the size of
         a complete simple graph with ` n ` vertices ( ` n ` may be infinite).
         (Contributed by Alexander van der Vekens, 13-Jan-2018.)  (Revised by
         AV, 13-Nov-2020.) $)
      sizusglecusg $p |- ( ( G e. USGraph /\ H e. ComplUSGraph )
                           -> ( # ` E ) <_ ( # ` F ) ) $=
        ( vf cfn wcel wa chash cfv wbr wi wf1 cvv cedg cusgr ccusgr cle wex cid
        cres fvex eqeltri resiexg mp1i sizusglecusglem1 spcegv sylc adantl cdom
        cv f1eq1 wb hashdom adantr brdomg bitrd mpbird sizusglecusglem2 pm2.24d
        exp31 wn w3a 3expia com13 pm2.61i nfile mp3an12 a1d ) BKLZCUALZDUBLZMZA
        NOBNOUCPZQZAKLZVOVTQWAVOVRVSWAVOMZVRMZVSABJUPZRZJUDZVRWFWBVRUEAUFZSLZAB
        WGRZWFASLZWHVRACTOSGCTUGUHZASUIUJABCDEFGHIUKWEWIJWGSABWDWGUQULUMUNWCVSA
        BUOPZWFWBVSWLURVRABKUSUTWBWLWFURZVRVOWMWAABKJVAUNUTVBVCVFVRVOWAVGZVSVPV
        QVOWNVSQVPVQVOVHWAVSABCDEFGHIVDVEVIVJVKVOVGZVSVRWJBSLWOVSWKBDTOSIDTUGUH
        ABSSVLVMVNVK $.
    $}

    $d V e $.
    $( The maximum size of a finite simple graph with ` n ` vertices is
       ` ( ( ( n - 1 ) * n ) / 2 ) ` .  See statement in section I.1 of
       [Bollobas] p. 3 .  (Contributed by Alexander van der Vekens,
       13-Jan-2018.)  (Revised by AV, 14-Nov-2020.) $)
    fusgrmaxsize $p |- ( G e. FinUSGraph
                         -> ( # ` E ) <_ ( ( # ` V ) _C 2 ) ) $=
      ( ve cfusgr wcel cusgr cfn wa chash cfv cle wbr adantl cvtx cvv wceq wi
      c2 cbc co isfusgr cop ccusgr wex cusgrexg cedg fvex eqeltri opvtxfv mp2an
      cv vex eqcomi eqid sizusglecusg adantlr cusgrsize breq2 biimpd syl expcom
      imp mpd exlimddv sylbi ) BGHBIHZCJHZKZALMZCLMUAUBUCZNOZBCDUDVKCFUNZUEZUFH
      ZVNFVJVQFUGVIFCJUHPVKVQKVLVPUIMZLMZNOZVNVIVQVTVJAVRBVPCDEVPQMZCCRHVORHWAC
      SCBQMRDBQUJUKFUOVOCRRULUMUPZVRUQZURUSVKVQVTVNTZVJVQWDTVIVQVJWDVQVJKVSVMSZ
      WDVRVPCWBWCUTWEVTVNVSVMVLNVAVBVCVDPVEVFVGVH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Vertex degree
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c VtxDeg $.

  $( Extend class notation with the vertex degree function. $)
  cvtxdg $a class VtxDeg $.

  ${
    $d e g u v x $.
    $( Define the vertex degree function for a graph.  To be appropriate for
       arbitrary hypergraphs, we have to double-count those edges that contain
       ` u ` "twice" (i.e. self-loops), this being represented as a singleton
       as the edge's value.  Since the degree of a vertex can be (positive)
       infinity (if the graph containing the vertex is not of finite size), the
       extended addition ` +e ` is used for the summation of the number of
       "ordinary" edges" and the number of "loops".  (Contributed by Mario
       Carneiro, 12-Mar-2015.)  (Revised by Alexander van der Vekens,
       20-Dec-2017.)  (Revised by AV, 9-Dec-2020.) $)
    df-vtxdg $a |- VtxDeg = ( g e. _V |-> [_ ( Vtx ` g ) / v ]_
                                          [_ ( iEdg ` g ) / e ]_ ( u e. v |->
                          ( ( # ` { x e. dom e | u e. ( e ` x ) } ) +e
                            ( # ` { x e. dom e | ( e ` x ) = { u } } ) ) ) ) $.

    $d A g x $.  $d G g u x $.  $d I g $.  $d V g u $.  $d W g $.
    vtxdgfval.v $e |- V = ( Vtx ` G ) $.
    vtxdgfval.i $e |- I = ( iEdg ` G ) $.
    vtxdgfval.a $e |- A = dom I $.
    $( The value of the vertex degree function.  (Contributed by Mario
       Carneiro, 12-Mar-2015.)  (Revised by Alexander van der Vekens,
       20-Dec-2017.)  (Revised by AV, 9-Dec-2020.) $)
    vtxdgfval $p |- ( G e. W -> ( VtxDeg ` G ) = ( u e. V
                          |-> ( ( # ` { x e. A | u e. ( I ` x ) } ) +e
                                ( # ` { x e. A | ( I ` x ) = { u } } ) ) ) ) $=
      ( vg wcel cv cvtx cfv crab chash wceq cxad cvv vv ve ciedg cdm csn co csb
      cmpt cvtxdg df-vtxdg a1i wa fvex simpl dmeq fveq1 eleq2d rabeqbidv fveq2d
      eqeq1d oveq12d adantl csbie2 fveq2 syl6eqr dmeqd dmeqi fveq1d syl5eq elex
      mpteq12dv eqtri eqeltri mptexg mp1i fvmptd ) DGLZKDUAKMZNOZUBVRUCOZBUAMZB
      MZAMZUBMZOZLZAWDUDZPZQOZWEWBUEZRZAWGPZQOZSUFZUHZUGUGZBFWBWCEOZLZACPZQOZWQ
      WJRZACPZQOZSUFZUHZTUITUIKTWPUHRVQAUABUBKUJUKVQVRDRZULWPBVSWBWCVTOZLZAVTUD
      ZPZQOZXGWJRZAXIPZQOZSUFZUHZXEUAUBVSVTWOXPVRNUMVRUCUMWAVSRZWDVTRZULBWAWNVS
      XOXQXRUNXRWNXORXQXRWIXKWMXNSXRWHXJQXRWFXHAWGXIWDVTUOZXRWEXGWBWCWDVTUPZUQU
      RUSXRWLXMQXRWKXLAWGXIXSXRWEXGWJXTUTURUSVAVBVKVCXFXPXERVQXFBVSXOFXDXFVSDNO
      ZFVRDNVDHVEXFXKWTXNXCSXFXJWSQXFXHWRAXICXFXIDUCOZUDZCXFVTYBVRDUCVDZVFCEUDY
      CJEYBIVGVLVEZXFXGWQWBXFWCVTEXFVTYBEYDIVEVHZUQURUSXFXMXBQXFXLXAAXICYEXFXGW
      QWJYFUTURUSVAVKVBVIDGVJFTLXETLVQFYATHDNUMVMBFXDTVNVOVP $.
  $}

  ${
    $d A u x $.  $d G u x $.  $d I u $.  $d U u x $.  $d V u $.
    vtxdgval.v $e |- V = ( Vtx ` G ) $.
    vtxdgval.i $e |- I = ( iEdg ` G ) $.
    vtxdgval.a $e |- A = dom I $.
    $( The degree of a vertex.  (Contributed by Mario Carneiro, 12-Mar-2015.)
       (Revised by Alexander van der Vekens, 20-Dec-2017.)  (Revised by AV,
       10-Dec-2020.)  (Revised by AV, 22-Mar-2021.) $)
    vtxdgval $p |- ( U e. V -> ( ( VtxDeg ` G ) ` U )
                              = ( ( # ` { x e. A | U e. ( I ` x ) } ) +e
                                  ( # ` { x e. A | ( I ` x ) = { U } } ) ) ) $=
      ( vu wcel cfv cv crab chash csn wceq cxad co cvv cvtxdg 1vgrex syl fveq1d
      cmpt vtxdgfval eleq1 rabbidv fveq2d sneq eqeq2d oveq12d eqid fvmpt eqtrd
      ovex ) CFKZCDUALZLCJFJMZAMELZKZABNZOLZUTUSPZQZABNZOLZRSZUEZLCUTKZABNZOLZU
      TCPZQZABNZOLZRSZUQCURVIUQDTKURVIQDCFGUBAJBDEFTGHIUFUCUDJCVHVQFVIUSCQZVCVL
      VGVPRVRVBVKOVRVAVJABUSCUTUGUHUIVRVFVOOVRVEVNABVRVDVMUTUSCUJUKUHUIULVIUMVL
      VPRUPUNUO $.

    $( The degree of a vertex for graphs of finite size.  (Contributed by Mario
       Carneiro, 12-Mar-2015.)  (Revised by Alexander van der Vekens,
       21-Jan-2018.)  (Revised by AV, 8-Dec-2020.)  (Revised by AV,
       22-Mar-2021.) $)
    vtxdgfival $p |- ( ( A e. Fin /\ U e. V ) -> ( ( VtxDeg ` G ) ` U )
                              = ( ( # ` { x e. A | U e. ( I ` x ) } ) +
                                  ( # ` { x e. A | ( I ` x ) = { U } } ) ) ) $=
      ( cfn wcel wa cfv crab chash wceq co cr cn0 syl cvtxdg csn caddc vtxdgval
      cv cxad adantl rabfi hashcl nn0red jca adantr rexadd eqtrd ) BJKZCFKZLZCD
      UAMMZCAUEEMZKZABNZOMZUSCUBPZABNZOMZUFQZVBVEUCQZUPURVFPUOABCDEFGHIUDUGUQVB
      RKZVERKZLZVFVGPUOVJUPUOVHVIUOVBUOVAJKVBSKUTABUHVAUITUJUOVEUOVDJKVESKVCABU
      HVDUITUJUKULVBVEUMTUN $.
  $}

  ${
    $d G u x $.
    $( The vertex degree expressed as operation.  (Contributed by AV,
       12-Dec-2021.) $)
    vtxdgop $p |- ( G e. W -> ( VtxDeg ` G )
                              = ( ( Vtx ` G ) VtxDeg ( iEdg ` G ) ) ) $=
      ( vu vx wcel cvtx cfv ciedg cop cvtxdg cv crab chash wceq cvv fvex eqcomi
      co eqid vtxdgfval cdm csn cxad cmpt opex opvtxfvi opiedgfvi mp1i 3eqtr4rd
      df-ov a1i ) ABEZAFGZAHGZIZJGZCUMCKZDKUNGZEDUNUAZLMGURUQUBNDUSLMGUCRUDZUMU
      NJRZAJGUOOEUPUTNULUMUNUEDCUSUOUNUMOUOFGUMUNUMAFPZAHPZUFQUOHGUNUNUMVBVCUGQ
      USSZTUHVAUPNULUMUNJUJUKDCUSAUNUMBUMSUNSVDTUI $.
  $}

  ${
    $d G u x $.  $d V u $.  $d W u $.
    vtxdgf.v $e |- V = ( Vtx ` G ) $.
    $( The vertex degree function is a function from vertices to extended
       nonnegative integers.  (Contributed by Alexander van der Vekens,
       20-Dec-2017.)  (Revised by AV, 10-Dec-2020.) $)
    vtxdgf $p |- ( G e. W -> ( VtxDeg ` G ) : V --> NN0* ) $=
      ( vu vx wcel cxnn0 cvtxdg cfv wf cv ciedg crab chash eqid rabexd hashxnn0
      cvv syl cdm wceq cxad co cmpt wa fvex dmexg mp1i xnn0xaddcl syl2anc fmptd
      csn vtxdgfval feq1d mpbird ) ACGZBHAIJZKBHEBELZFLAMJZJZGZFUTUAZNZOJZVAUSU
      MUBZFVCNZOJZUCUDZUEZKUQEBVIHVJUQUSBGUFZVEHGZVHHGZVIHGVKVDSGVLVKVBFVCVDSVD
      PUTSGVCSGVKAMUGUTSUHUIZQVDSRTVKVGSGVMVKVFFVCVGSVGPVNQVGSRTVEVHUJUKVJPULUQ
      BHURVJFEVCAUTBCDUTPVCPUNUOUP $.

    $( The degree of a vertex is either a nonnegative integer or positive
       infinity.  (Contributed by Alexander van der Vekens, 30-Dec-2017.)
       (Revised by AV, 10-Dec-2020.)  (Revised by AV, 22-Mar-2021.) $)
    vtxdgelxnn0 $p |- ( X e. V -> ( ( VtxDeg ` G ) ` X ) e. NN0* ) $=
      ( cvv wcel cvtxdg cfv cxnn0 1vgrex vtxdgf ffvelrnda mpancom ) AEFZCBFCAGH
      ZHIFACBDJNBICOABEDKLM $.

    $( The degree of a vertex in the null graph is zero (or anything else),
       because there are no vertices.  (Contributed by AV, 11-Dec-2020.) $)
    vtxdg0v $p |- ( ( G = (/) /\ U e. V ) -> ( ( VtxDeg ` G ) ` U ) = 0 ) $=
      ( wceq wcel cvtxdg cfv cc0 cvtx eleq2i fveq2 vtxval0 syl6eq eleq2d syl5bb
      c0 noel pm2.21i syl6bi imp ) BQEZACFZABGHHIEZUBUCAQFZUDUCABJHZFUBUECUFADK
      UBUFQAUBUFQJHQBQJLMNOPUEUDARSTUA $.

    $d U x $.
    vtxdg0e.i $e |- I = ( iEdg ` G ) $.
    $( The degree of a vertex in an empty graph is zero, because there are no
       edges.  This is the base case for the induction for calculating the
       degree of a vertex, for example in a K&ouml;nigsberg graph (see also the
       induction steps ~ vdegp1ai , ~ vdegp1bi and ~ vdegp1ci ).  (Contributed
       by Mario Carneiro, 12-Mar-2015.)  (Revised by Alexander van der Vekens,
       20-Dec-2017.)  (Revised by AV, 11-Dec-2020.)  (Revised by AV,
       22-Mar-2021.) $)
    vtxdg0e $p |- ( ( U e. V /\ I = (/) ) -> ( ( VtxDeg ` G ) ` U ) = 0 ) $=
      ( vx wcel c0 wceq cfv cdm crab chash caddc co cc0 cfn syl6eq sylbi cvtxdg
      wa cv ciedg csn eqeq1i dmeq 0fin syl6eqel simpl vtxdgfival syl2an2 adantl
      dm0 eqid rabeq rab0 fveq2d hash0 fveq2i eqtri oveq12d syl 00id eqtrd ) AD
      HZCIJZUBZABUAKKZAGUCBUDKZKZHZGVJLZMZNKZVKAUEJZGVMMZNKZOPZQVGVMRHZVFVFVIVS
      JVGVJIJZVTCVJIFUFZWAVMIRWAVMILIVJIUGUNSZUHUITVFVGUJGVMABVJDEVJUOVMUOUKULV
      HVSQQOPZQVHVMIJZVSWDJVGWEVFVGWAWEWBWCTUMWEVOQVRQOWEVOINKZQWEVNINWEVNVLGIM
      IVLGVMIUPVLGUQSURUSSWEVRVPGIMZNKZQWEVQWGNVPGVMIUPURWHWFQWGINVPGUQUTUSVASV
      BVCVDSVE $.

    $d A u x $.
    vtxdgfisnn0.a $e |- A = dom I $.
    $( The degree of a vertex in a graph of finite size is a nonnegative
       integer.  (Contributed by Alexander van der Vekens, 10-Mar-2018.)
       (Revised by AV, 11-Dec-2020.)  (Revised by AV, 22-Mar-2021.) $)
    vtxdgfisnn0 $p |- ( ( A e. Fin /\ U e. V )
                        -> ( ( VtxDeg ` G ) ` U ) e. NN0 ) $=
      ( vx cfn wcel wa cvtxdg cfv crab chash cn0 rabfi hashcl syl cv wceq caddc
      csn co vtxdgfival nn0addcld adantr eqeltrd ) AJKZBEKZLBCMNNBIUADNZKZIAOZP
      NZULBUDUBZIAOZPNZUCUEZQIABCDEFGHUFUJUSQKUKUJUOURUJUNJKUOQKUMIARUNSTUJUQJK
      URQKUPIARUQSTUGUHUI $.

    $( The vertex degree function on graphs of finite size is a function from
       vertices to nonnegative integers.  (Contributed by Mario Carneiro,
       12-Mar-2015.)  (Revised by Alexander van der Vekens, 20-Dec-2017.)
       (Revised by AV, 11-Dec-2020.) $)
    vtxdgfisf $p |- ( ( G e. W /\ A e. Fin ) -> ( VtxDeg ` G ) : V --> NN0 ) $=
      ( vu wcel cfn wa cvtxdg cfv wfn cv cn0 wral wf cxnn0 vtxdgf adantll ffnfv
      adantr ffnd vtxdgfisnn0 ralrimiva sylanbrc ) BEJZAKJZLZBMNZDOIPZULNQJZIDR
      DQULSUKDTULUIDTULSUJBDEFUAUDUEUKUNIDUJUMDJUNUIAUMBCDFGHUFUBUGIDQULUCUH $.
  $}

  ${
    $d H u x $.  $d G u x $.  $d ph u x $.
    vtxdeqd.g $e |- ( ph -> G e. X ) $.
    vtxdeqd.h $e |- ( ph -> H e. Y ) $.
    vtxdeqd.v $e |- ( ph -> ( Vtx ` H ) = ( Vtx ` G ) ) $.
    vtxdeqd.i $e |- ( ph -> ( iEdg ` H ) = ( iEdg ` G ) ) $.
    $( Equality theorem for the vertex degree:  If two graphs are structurally
       equal, their vertex degree functions are equal.  (Contributed by AV,
       26-Feb-2021.) $)
    vtxdeqd $p |- ( ph -> ( VtxDeg ` H ) = ( VtxDeg ` G ) ) $=
      ( vu vx cvtx cfv cv wcel crab chash wceq cxad eqid cdm csn co cmpt cvtxdg
      ciedg dmeqd fveq1d eleq2d rabeqbidv fveq2d eqeq1d mpteq12dv vtxdgfval syl
      oveq12d 3eqtr4d ) AJCLMZJNZKNZCUFMZMZOZKVAUAZPZQMZVBUSUBZRZKVDPZQMZSUCZUD
      ZJBLMZUSUTBUFMZMZOZKVNUAZPZQMZVOVGRZKVQPZQMZSUCZUDZCUEMZBUEMZAJURVKVMWCHA
      VFVSVJWBSAVEVRQAVCVPKVDVQAVAVNIUGZAVBVOUSAUTVAVNIUHZUIUJUKAVIWAQAVHVTKVDV
      QWGAVBVOVGWHULUJUKUPUMACEOWEVLRGKJVDCVAUREURTVATVDTUNUOABDOWFWDRFKJVQBVNV
      MDVMTVNTVQTUNUOUQ $.
  $}

  ${
    vtxduhgr0e.v $e |- V = ( Vtx ` G ) $.
    vtxduhgr0e.e $e |- E = ( Edg ` G ) $.
    $( The degree of a vertex in an empty hypergraph is zero, because there are
       no edges.  Analogue of ~ vtxdg0e .  (Contributed by AV, 15-Dec-2020.) $)
    vtxduhgr0e $p |- ( ( G e. UHGraph /\ U e. V /\ E = (/) )
                       -> ( ( VtxDeg ` G ) ` U ) = 0 ) $=
      ( cuhgr wcel c0 wceq cvtxdg cfv cc0 wa ciedg wfun eqid uhgrfun edg0iedg0
      wb syl adantr wi vtxdg0e ex adantl sylbid 3impia ) CGHZADHZBIJZACKLLMJZUI
      UJNUKCOLZIJZULUIUKUNTZUJUIUMPUOUMCUMQZRBCUMUPFSUAUBUJUNULUCUIUJUNULACUMDE
      UPUDUEUFUGUH $.
  $}

  ${
    $d G x $.  $d V x $.
    vtxdlfuhgr1v.v $e |- V = ( Vtx ` G ) $.
    vtxdlfuhgr1v.i $e |- I = ( iEdg ` G ) $.
    vtxdlfuhgr1v.e $e |- E = { x e. ~P V | 2 <_ ( # ` x ) } $.
    $( The degree of the vertex in a loop-free hypergraph with one vertex is 0.
       (Contributed by AV, 2-Apr-2021.) $)
    vtxdlfuhgr1v $p |- ( ( G e. UHGraph /\ ( # ` V ) = 1 /\ I : dom I --> E )
                         -> ( U e. V -> ( ( VtxDeg ` G ) ` U ) = 0 ) ) $=
      ( cuhgr wcel chash cfv c1 wceq cdm wf w3a cvtxdg cc0 wa cedg simpl1 simpr
      c0 lfuhgr1v0e adantr eqid vtxduhgr0e syl3anc ex ) DJKZFLMNOZEPCEQZRZBFKZB
      DSMMTOZUOUPUAULUPDUBMZUEOZUQULUMUNUPUCUOUPUDUOUSUPACDEFGHIUFUGBURDFGURUHU
      IUJUK $.
  $}

  ${
    $d G x $.  $d V x $.
    vdumgr0.v $e |- V = ( Vtx ` G ) $.
    $( A vertex in a multigraph has degree 0 if the graph consists of only one
       vertex.  (Contributed by Alexander van der Vekens, 6-Dec-2017.)
       (Revised by AV, 2-Apr-2021.) $)
    vdumgr0 $p |- ( ( G e. UMGraph /\ N e. V /\ ( # ` V ) = 1 )
                    -> ( ( VtxDeg ` G ) ` N ) = 0 ) $=
      ( vx cumgr wcel chash cfv c1 wceq w3a cuhgr ciedg cdm c2 cv 3ad2ant1 eqid
      cle wbr cpw crab wf cvtxdg umgruhgr simp3 cupgr umgrislfupgr simprbi 3jca
      cc0 simp2 vtxdlfuhgr1v sylc ) AFGZBCGZCHIJKZLZAMGZURANIZOPEQHITUAECUBUCZV
      AUDZLUQBAUEIIULKUSUTURVCUPUQUTURAUFRUPUQURUGUPUQVCURUPAUHGVCEAVACDVASZUIU
      JRUKUPUQURUMEBVBAVACDVDVBSUNUO $.
  $}

  ${
    $d G x $.  $d H x $.  $d I x $.  $d J x $.  $d N x $.  $d U x $.
    $d ph x $.
    vtxdun.i $e |- I = ( iEdg ` G ) $.
    vtxdun.j $e |- J = ( iEdg ` H ) $.
    vtxdun.vg $e |- V = ( Vtx ` G ) $.
    vtxdun.vh $e |- ( ph -> ( Vtx ` H ) = V ) $.
    vtxdun.vu $e |- ( ph -> ( Vtx ` U ) = V ) $.
    vtxdun.d $e |- ( ph -> ( dom I i^i dom J ) = (/) ) $.
    vtxdun.fi $e |- ( ph -> Fun I ) $.
    vtxdun.fj $e |- ( ph -> Fun J ) $.
    vtxdun.n $e |- ( ph -> N e. V ) $.
    vtxdun.u $e |- ( ph -> ( iEdg ` U ) = ( I u. J ) ) $.
    $( The degree of a vertex in the union of two graphs on the same vertex set
       is the sum of the degrees of the vertex in each graph.  (Contributed by
       Mario Carneiro, 12-Mar-2015.)  (Revised by Alexander van der Vekens,
       21-Dec-2017.)  (Revised by AV, 19-Feb-2021.) $)
    vtxdun $p |- ( ph -> ( ( VtxDeg ` U ) ` N )
                    = ( ( ( VtxDeg ` G ) ` N ) +e ( ( VtxDeg ` H ) ` N ) ) ) $=
      ( vx cfv cv ciedg wcel cdm crab chash csn wceq co cvtxdg cun wa wo df-rab
      cxad dmeqd dmun syl6eq eleq2d elun syl6bb anbi1d andir abbidv syl5eq unab
      cab eqcomi a1i fveq1d adantr wfn c0 wfun funfn sylib anim1i fvun1 syl3anc
      cin eqtrd rabbidva syl5eqr fvun2 uneq12d 3eqtrd fveq2d fvex eqeltri rabex
      cvv dmex wss ssrab2 ss2in mp2an syl5sseq ss0 hashunx eqeq1d oveq12d cxnn0
      syl hashxnn0 xnn0add4d cvtx eleqtrrd eqid vtxdgval 3eqtr4d ) AGSUAZBUBTZT
      ZUCZSXLUDZUEZUFTZXMGUGZUHZSXOUEZUFTZUOUIZGXKETZUCZSEUDZUEZUFTZYCXRUHZSYEU
      EZUFTZUOUIZGXKFTZUCZSFUDZUEZUFTZYLXRUHZSYNUEZUFTZUOUIZUOUIZGBUJTTZGCUJTTZ
      GDUJTTZUOUIAYBYGYPUOUIZYJYSUOUIZUOUIUUAAXQUUEYAUUFUOAXQYFYOUKZUFTZUUEAXPU
      UGUFAXPXKYEUCZXNULZXKYNUCZXNULZUMZSVGZUUJSVGZUULSVGZUKZUUGAXPXKXOUCZXNULZ
      SVGUUNXNSXOUNAUUSUUMSAUUSUUIUUKUMZXNULUUMAUURUUTXNAUURXKYEYNUKZUCUUTAXOUV
      AXKAXOEFUKZUDUVAAXLUVBRUPEFUQURUSXKYEYNUTVAZVBUUIUUKXNVCVAVDVEUUNUUQUHAUU
      QUUNUUJUULSVFVHVIAUUOYFUUPYOAUUOXNSYEUEYFXNSYEUNAXNYDSYEAUUIULZXMYCGUVDXM
      XKUVBTZYCAXMUVEUHZUUIAXKXLUVBRVJZVKUVDEYEVLZFYNVLZYEYNVTZVMUHZUUIULUVEYCU
      HAUVHUUIAEVNUVHOEVOVPZVKAUVIUUIAFVNUVIPFVOVPZVKAUVKUUINVQYEYNEFXKVRVSWAZU
      SWBWCAUUPXNSYNUEYOXNSYNUNAXNYMSYNAUUKULZXMYLGUVOXMUVEYLAUVFUUKUVGVKUVOUVH
      UVIUVKUUKULUVEYLUHAUVHUUKUVLVKAUVIUUKUVMVKAUVKUUKNVQYEYNEFXKWDVSWAZUSWBWC
      WEWFWGAYFWKUCZYOWKUCZYFYOVTZVMUHZUUHUUEUHUVQAYDSYEEECUBTWKICUBWHWIWLZWJVI
      ZUVRAYMSYNFFDUBTWKJDUBWHWIWLZWJVIZAUVSVMWMUVTAUVJUVSVMYFYEWMYOYNWMUVSUVJW
      MYDSYEWNYMSYNWNYFYEYOYNWOWPNWQUVSWRXCYFYOWKWKWSVSWAAYAYIYRUKZUFTZUUFAXTUW
      EUFAXTUUIXSULZUUKXSULZUMZSVGZUWGSVGZUWHSVGZUKZUWEAXTUURXSULZSVGUWJXSSXOUN
      AUWNUWISAUWNUUTXSULUWIAUURUUTXSUVCVBUUIUUKXSVCVAVDVEUWJUWMUHAUWMUWJUWGUWH
      SVFVHVIAUWKYIUWLYRAUWKXSSYEUEYIXSSYEUNAXSYHSYEUVDXMYCXRUVNWTWBWCAUWLXSSYN
      UEYRXSSYNUNAXSYQSYNUVOXMYLXRUVPWTWBWCWEWFWGAYIWKUCZYRWKUCZYIYRVTZVMUHZUWF
      UUFUHUWOAYHSYEUWAWJVIZUWPAYQSYNUWCWJVIZAUWQVMWMUWRAUVJUWQVMYIYEWMYRYNWMUW
      QUVJWMYHSYEWNYQSYNWNYIYEYRYNWOWPNWQUWQWRXCYIYRWKWKWSVSWAXAAYGYPYJYSAUVQYG
      XBUCUWBYFWKXDXCAUVRYPXBUCUWDYOWKXDXCAUWOYJXBUCUWSYIWKXDXCAUWPYSXBUCUWTYRW
      KXDXCXEWAAGBXFTZUCUUBYBUHAGHUXAQMXGSXOGBXLUXAUXAXHXLXHXOXHXIXCAUUCYKUUDYT
      UOAGHUCUUCYKUHQSYEGCEHKIYEXHXIXCAGDXFTZUCUUDYTUHAGHUXBQLXGSYNGDFUXBUXBXHJ
      YNXHXIXCXAXJ $.

    vtxdfiun.a $e |- ( ph -> dom I e. Fin ) $.
    vtxdfiun.b $e |- ( ph -> dom J e. Fin ) $.
    $( The degree of a vertex in the union of two hypergraphs of finite size on
       the same vertex set is the sum of the degrees of the vertex in each
       hypergraph.  (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by
       Alexander van der Vekens, 21-Jan-2018.)  (Revised by AV,
       19-Feb-2021.) $)
    vtxdfiun $p |- ( ph -> ( ( VtxDeg ` U ) ` N )
                     = ( ( ( VtxDeg ` G ) ` N ) + ( ( VtxDeg ` H ) ` N ) ) ) $=
      ( cvtxdg cfv cxad co caddc vtxdun cdm cfn wcel vtxdgfisnn0 syl2anc nn0red
      cn0 eqid cvtx eleqtrrd rexaddd eqtrd ) AGBUAUBUBGCUAUBUBZGDUAUBUBZUCUDUSU
      TUEUDABCDEFGHIJKLMNOPQRUFAUSUTAUSAEUGZUHUIGHUIUSUMUISQVAGCEHKIVAUNUJUKULA
      UTAFUGZUHUIGDUOUBZUIUTUMUITAGHVCQLUPVBGDFVCVCUNJVBUNUJUKULUQUR $.
  $}

  ${
    vtxduhgrun.i $e |- I = ( iEdg ` G ) $.
    vtxduhgrun.j $e |- J = ( iEdg ` H ) $.
    vtxduhgrun.vg $e |- V = ( Vtx ` G ) $.
    vtxduhgrun.vh $e |- ( ph -> ( Vtx ` H ) = V ) $.
    vtxduhgrun.vu $e |- ( ph -> ( Vtx ` U ) = V ) $.
    vtxduhgrun.d $e |- ( ph -> ( dom I i^i dom J ) = (/) ) $.
    vtxduhgrun.g $e |- ( ph -> G e. UHGraph ) $.
    vtxduhgrun.h $e |- ( ph -> H e. UHGraph ) $.
    vtxduhgrun.n $e |- ( ph -> N e. V ) $.
    vtxduhgrun.u $e |- ( ph -> ( iEdg ` U ) = ( I u. J ) ) $.
    $( The degree of a vertex in the union of two hypergraphs on the same
       vertex set is the sum of the degrees of the vertex in each hypergraph.
       (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by Alexander van
       der Vekens, 21-Dec-2017.)  (Revised by AV, 12-Dec-2020.)  (Proof
       shortened by AV, 19-Feb-2021.) $)
    vtxduhgrun $p |- ( ph -> ( ( VtxDeg ` U ) ` N )
                    = ( ( ( VtxDeg ` G ) ` N ) +e ( ( VtxDeg ` H ) ` N ) ) ) $=
      ( cuhgr wcel wfun uhgrfun syl vtxdun ) ABCDEFGHIJKLMNACSTEUAOECIUBUCADSTF
      UAPFDJUBUCQRUD $.

    vtxduhgrfiun.a $e |- ( ph -> dom I e. Fin ) $.
    vtxduhgrfiun.b $e |- ( ph -> dom J e. Fin ) $.
    $( The degree of a vertex in the union of two hypergraphs of finite size on
       the same vertex set is the sum of the degrees of the vertex in each
       hypergraph.  (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by
       Alexander van der Vekens, 21-Jan-2018.)  (Revised by AV, 7-Dec-2020.)
       (Proof shortened by AV, 19-Feb-2021.) $)
    vtxduhgrfiun $p |- ( ph -> ( ( VtxDeg ` U ) ` N )
                     = ( ( ( VtxDeg ` G ) ` N ) + ( ( VtxDeg ` H ) ` N ) ) ) $=
      ( cuhgr wcel wfun uhgrfun syl vtxdfiun ) ABCDEFGHIJKLMNACUAUBEUCOECIUDUEA
      DUAUBFUCPFDJUDUEQRSTUF $.
  $}

  ${
    $d A x $.  $d G x $.  $d I x $.  $d U x $.  $d V x $.
    vtxdlfgrval.v $e |- V = ( Vtx ` G ) $.
    vtxdlfgrval.i $e |- I = ( iEdg ` G ) $.
    vtxdlfgrval.a $e |- A = dom I $.
    vtxdlfgrval.d $e |- D = ( VtxDeg ` G ) $.
    $( The value of the vertex degree function for a loop-free graph ` G ` .
       (Contributed by AV, 23-Feb-2021.) $)
    vtxdlfgrval $p |- ( ( I : A --> { x e. ~P V | 2 <_ ( # ` x ) } /\ U e. V )
                        -> ( D ` U ) = ( # ` { x e. A | U e. ( I ` x ) } ) ) $=
      ( chash cfv crab wcel wceq cxad cc0 c0 cvv c2 cv cle wbr cpw wf wa csn co
      cvtxdg fveq1i vtxdgval adantl syl5eq lfgrnloop adantr fveq2d hash0 syl6eq
      eqid oveq2d cxr cxnn0 ciedg dmeqi eqtri fvex dmex eqeltri hashxnn0 xnn0xr
      cdm rabex mp2b xaddid1 mp1i 3eqtrd ) BUAAUBZLMUCUDAGUENZFUFZDGOZUGZDCMZDV
      RFMZOZABNZLMZWDDUHPABNZLMZQUIZWGRQUIZWGWBWCDEUJMZMZWJDCWLKUKWAWMWJPVTABDE
      FGHIJULUMUNWBWIRWGQWBWISLMRWBWHSLVTWHSPWAABDVSEFGIJVSUTUOUPUQURUSVAWGVBOZ
      WKWGPWBWFTOWGVCOWNWEABBEVDMZVLZTBFVLWPJFWOIVEVFWOEVDVGVHVIVMWFTVJWGVKVNWG
      VOVPVQ $.

    $( The value of the vertex degree function for a multigraph.  (Contributed
       by Alexander van der Vekens, 20-Dec-2017.)  (Revised by AV,
       23-Feb-2021.) $)
    vtxdumgrval $p |- ( ( G e. UMGraph /\ U e. V )
                        -> ( D ` U ) = ( # ` { x e. A | U e. ( I ` x ) } ) ) $=
      ( cumgr wcel c2 cv chash cfv cle crab wf wbr cpw wceq cdm wa umgrislfupgr
      cupgr eqcomi feq2i biimpi adantl sylbi vtxdlfgrval sylan ) ELMZBNAOZPQRUA
      AGUBSZFTZDGMDCQDUPFQMABSPQUCUOEUGMZFUDZUQFTZUEURAEFGHIUFVAURUSVAURUTBUQFB
      UTJUHUIUJUKULABCDEFGHIJKUMUN $.

    $( The value of the vertex degree function for a simple graph.
       (Contributed by Alexander van der Vekens, 20-Dec-2017.)  (Revised by AV,
       11-Dec-2020.) $)
    vtxdusgrval $p |- ( ( G e. USGraph /\ U e. V )
                        -> ( D ` U ) = ( # ` { x e. A | U e. ( I ` x ) } ) ) $=
      ( cusgr wcel cumgr cfv cv crab chash wceq usgrumgr vtxdumgrval sylan ) EL
      MENMDGMDCODAPFOMABQROSETABCDEFGHIJKUAUB $.
  $}

  ${
    $d G i $.  $d I i $.  $d U i $.  $d V i $.
    vtxd0nedgb.v $e |- V = ( Vtx ` G ) $.
    vtxd0nedgb.i $e |- I = ( iEdg ` G ) $.
    vtxd0nedgb.d $e |- D = ( VtxDeg ` G ) $.
    $( A vertex has degree 0 iff there is no edge incident with the vertex.
       (Contributed by AV, 24-Dec-2020.)  (Revised by AV, 22-Mar-2021.) $)
    vtxd0nedgb $p |- ( U e. V -> ( ( D ` U ) = 0
                                     <-> -. E. i e. dom I U e. ( I ` i ) ) ) $=
      ( wcel cfv cc0 wceq crab wa wn wb cvv ax-mp wral cv cdm chash csn cxad co
      wrex cvtxdg fveq1i eqid syl5eq eqeq1d cxnn0 ciedg fvex eqeltri dmex rabex
      vtxdgval pm3.2i xnn0xadd0 mp1i wo c0 hasheq0 anbi12i rabeq0 ralnex bicomi
      hashxnn0 ioran ralbii r19.26 3bitri wi snidg eleq2 syl5ibrcom sylib orcom
      pm4.72 syl6rbbr rexbidv notbid syl5bb 3bitrd ) BFJZBAKZLMBCUAEKZJZCEUBZNZ
      UCKZWIBUDZMZCWKNZUCKZUEUFZLMZWMLMZWQLMZOZWJCWKUGZPZWGWHWRLWGWHBDUHKZKWRBA
      XEIUICWKBDEFGHWKUJUSUKULWMUMJZWQUMJZOWSXBQWGXFXGWLRJZXFWJCWKEEDUNKRHDUNUO
      UPUQZURZWLRVJSWPRJZXGWOCWKXIURZWPRVJSUTWMWQVAVBXBWJWOVCZCWKUGZPZWGXDXBWLV
      DMZWPVDMZOWJPZCWKTZWOPZCWKTZOZXOWTXPXAXQXHWTXPQXJWLRVESXKXAXQQXLWPRVESVFX
      PXSXQYAWJCWKVGWOCWKVGVFXOYBXOXMPZCWKTZXRXTOZCWKTYBYDXOXMCWKVHVIYCYECWKWJW
      OVKVLXRXTCWKVMVNVIVNWGXNXCWGXMWJCWKWGWJWOWJVCZXMWGWOWJVOWJYFQWGWJWOBWNJBF
      VPWIWNBVQVRWOWJWAVSWJWOVTWBWCWDWEWF $.
  $}

  ${
    $d E c e i $.  $d G c e i x $.  $d U c e i x $.  $d V c e i x $.
    vtxdushgrfvedg.v $e |- V = ( Vtx ` G ) $.
    vtxdushgrfvedg.e $e |- E = ( Edg ` G ) $.
    $( Lemma for ~ vtxdushgrfvedg and ~ vtxdusgrfvedg .  (Contributed by AV,
       12-Dec-2020.)  (Proof shortened by AV, 5-May-2021.) $)
    vtxdushgrfvedglem $p |- ( ( G e. USHGraph /\ U e. V )
               -> ( # ` { i e. dom ( iEdg ` G ) | U e. ( ( iEdg ` G ) ` i ) } )
                  = ( # ` { e e. E | U e. e } ) ) $=
      ( vx vc cushgr wcel wa cv ciedg cfv cdm crab cvv eqid cmpt fvex rabex a1i
      dmex eleq2w cbvrabv ushgredgedg hasheqf1od ) EKLAFLMZACNEOPZPLZCUKQZRZABN
      LZBDRZSIUNINUKPUAZUNSLUJULCUMUKEOUBUEUCUDIUNUPJCDUQEUKAFHUKTGUNTUOAJNLBJD
      BJAUFUGUQTUHUI $.

    vtxdushgrfvedg.d $e |- D = ( VtxDeg ` G ) $.
    $( The value of the vertex degree function for a simple hypergraph.
       (Contributed by AV, 12-Dec-2020.)  (Proof shortened by AV,
       5-May-2021.) $)
    vtxdushgrfvedg $p |- ( ( G e. USHGraph /\ U e. V )
                           -> ( D ` U ) = ( ( # ` { e e. E | U e. e } )
                                       +e ( # ` { e e. E | e = { U } } ) ) ) $=
      ( vi vx vc wcel cfv cv crab chash wceq cxad eqid cushgr wa cvtxdg cdm csn
      ciedg co fveq1i a1i vtxdgval adantl vtxdushgrfvedglem cvv cmpt fvex rabex
      dmex eqeq1 cbvrabv ushgredgedgloop hasheqf1od oveq12d 3eqtrd ) EUAMZBFMZU
      BZBANZBEUCNZNZBJOEUFNZNZMJVJUDZPQNZVKBUEZRZJVLPZQNZSUGZBCOZMCDPQNZVSVNRZC
      DPZQNZSUGVGVIRVFBAVHIUHUIVEVIVRRVDJVLBEVJFGVJTZVLTUJUKVFVMVTVQWCSBCJDEFGH
      ULVFVPWBUMKVPKOVJNUNZVPUMMVFVOJVLVJEUFUOUQUPUIKVPWBLJDWEEVJBFHWDGVPTWALOZ
      VNRCLDVSWFVNURUSWETUTVAVBVC $.

    $( The value of the vertex degree function for a simple graph.
       (Contributed by AV, 12-Dec-2020.) $)
    vtxdusgrfvedg $p |- ( ( G e. USGraph /\ U e. V )
                          -> ( D ` U ) = ( # ` { e e. E | U e. e } ) ) $=
      ( vi cusgr wcel wa cfv cv ciedg cdm crab chash eqid vtxdusgrval usgruspgr
      cushgr wceq cuspgr uspgrushgr syl vtxdushgrfvedglem sylan eqtrd ) EKLZBFL
      ZMBANBJOEPNZNLJUMQZRSNZBCOLCDRSNZJUNABEUMFGUMTUNTIUAUKEUCLZULUOUPUDUKEUEL
      UQEUBEUFUGBCJDEFGHUHUIUJ $.

    $d G i v $.  $d U v $.  $d V v $.
    $( If a vertex in a hypergraph has degree 0, the vertex is not adjacent to
       another vertex via an edge.  (Contributed by Alexander van der Vekens,
       8-Dec-2017.)  (Revised by AV, 15-Dec-2020.)  (Proof shortened by AV,
       24-Dec-2020.) $)
    vtxduhgr0nedg $p |- ( ( G e. UHGraph /\ U e. V /\ ( D ` U ) = 0 )
                          -> -. E. v e. V { U , v } e. E ) $=
      ( vi cuhgr wcel cfv wceq cv wrex wn wb adantl sylbid cc0 cpr wa ciedg cdm
      eqid vtxd0nedgb cedg eleq2i uhgredgiedgb syl5bb adantr wi eleq2 syl5ibcom
      prid1g reximdv rexlimdvw con3d 3impia ) EKLZCFLZCBMUANZCAOZUBZDLZAFPZQZVA
      VBUCZVCCJOEUDMZMZLZJVJUEZPZQZVHVBVCVORVABCJEVJFGVJUFZIUGSVIVGVNVIVFVNAFVI
      VFVEVKNZJVMPZVNVAVFVRRVBVFVEEUHMZLVAVRDVSVEHUIJVEEVJVPUJUKULVIVQVLJVMVBVQ
      VLUMVAVBCVELVQVLCVDFUPVEVKCUNUOSUQTURUSTUT $.

    $( If a vertex in a multigraph has degree 0, the vertex is not adjacent to
       another vertex via an edge.  (Contributed by Alexander van der Vekens,
       8-Dec-2017.)  (Revised by AV, 12-Dec-2020.)  (Proof shortened by AV,
       15-Dec-2020.) $)
    vtxdumgr0nedg $p |- ( ( G e. UMGraph /\ U e. V /\ ( D ` U ) = 0 )
                          -> -. E. v e. V { U , v } e. E ) $=
      ( cumgr wcel cuhgr cfv cc0 wceq cv cpr wrex wn umgruhgr vtxduhgr0nedg
      syl3an1 ) EJKELKCFKCBMNOCAPQDKAFRSETABCDEFGHIUAUB $.

    $( A vertex in a hypergraph has degree 0 iff there is no edge incident with
       this vertex.  (Contributed by AV, 24-Dec-2020.) $)
    vtxduhgr0edgnel $p |- ( ( G e. UHGraph /\ U e. V )
                          -> ( ( D ` U ) = 0 <-> -. E. e e. E U e. e ) ) $=
      ( vi cuhgr wcel wa cfv cc0 wceq cv ciedg wrex wn cdm wb vtxd0nedgb adantl
      eqid uhgrvtxedgiedgb notbid bitrd ) EKLZBFLZMZBANOPZBJQERNZNLJUMUASZTZBCQ
      LCDSZTUJULUOUBUIABJEUMFGUMUEZIUCUDUKUNUPBCJDEUMFGUQHUFUGUH $.

    $( A vertex in a simple graph has degree 0 iff there is no edge incident
       with this vertex.  (Contributed by AV, 17-Dec-2020.)  (Proof shortened
       by AV, 24-Dec-2020.) $)
    vtxdusgr0edgnel $p |- ( ( G e. USGraph /\ U e. V )
                          -> ( ( D ` U ) = 0 <-> -. E. e e. E U e. e ) ) $=
      ( cusgr wcel cuhgr cfv cc0 wceq cv wrex wn wb usgruhgr vtxduhgr0edgnel
      sylan ) EJKELKBFKBAMNOBCPKCDQRSETABCDEFGHIUAUB $.

    $( Alternate proof of ~ vtxdusgr0edgnel , not based on ~ vtxduhgr0edgnel .
       A vertex in a simple graph has degree 0 if there is no edge incident
       with this vertex.  (Contributed by AV, 17-Dec-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    vtxdusgr0edgnelALT $p |- ( ( G e. USGraph /\ U e. V )
                          -> ( ( D ` U ) = 0 <-> -. E. e e. E U e. e ) ) $=
      ( cusgr wcel wa cfv cc0 wceq cv wn cvv wb cedg crab c0 wrex vtxdusgrfvedg
      chash eqeq1d fvex eqeltri rabex mp1i wral rabeq0 ralnex a1i syl5bb 3bitrd
      hasheq0 ) EJKBFKLZBAMZNOBCPKZCDUAZUEMZNOZVAUBOZUTCDUCQZURUSVBNABCDEFGHIUD
      UFVARKVCVDSURUTCDDETMRHETUGUHUIVARUQUJVDUTQCDUKZURVEUTCDULVFVESURUTCDUMUN
      UOUP $.
  $}

  ${
    vtxdgfusgrf.v $e |- V = ( Vtx ` G ) $.
    $( The vertex degree function on finite simple graphs is a function from
       vertices to nonnegative integers.  (Contributed by AV, 12-Dec-2020.) $)
    vtxdgfusgrf $p |- ( G e. FinUSGraph -> ( VtxDeg ` G ) : V --> NN0 ) $=
      ( cfusgr wcel ciedg cfv cdm cfn cn0 cvtxdg wf fusgrfis cusgr wb fusgrusgr
      cedg eqid usgredgffibi syl wfun usgrfun fundmfibi 3syl bitrd mpbid mpdan
      vtxdgfisf ) ADEZAFGZHZIEZBJAKGLUIAQGZIEZULAMUIUNUJIEZULUIANEZUNUOOAPZUMAU
      JUJRZUMRSTUIUPUJUAUOULOUQAUBUJUCUDUEUFUKAUJBDCURUKRUHUG $.

    $d G v $.
    $( In a finite simple graph, the degree of each vertex is finite.
       (Contributed by Alexander van der Vekens, 10-Mar-2018.)  (Revised by AV,
       12-Dec-2020.) $)
    vtxdgfusgr $p |- ( G e. FinUSGraph
                       -> A. v e. V ( ( VtxDeg ` G ) ` v ) e. NN0 ) $=
      ( cfusgr wcel cv cvtxdg cfv cn0 vtxdgfusgrf ffvelrnda ralrimiva ) BEFZAGZ
      BHIZIJFACNCJOPBCDKLM $.
  $}

  ${
    $d G k n u v $.  $d V k u v $.
    fusgrn0degnn0.v $e |- V = ( Vtx ` G ) $.
    $( In a nonempty, finite graph there is a vertex having a nonnegative
       integer as degree.  (Contributed by Alexander van der Vekens,
       6-Sep-2018.)  (Revised by AV, 1-Apr-2021.) $)
    fusgrn0degnn0 $p |- ( ( G e. FinUSGraph /\ V =/= (/) )
                       -> E. v e. V E. n e. NN0 ( ( VtxDeg ` G ) ` v ) = n ) $=
      ( vk vu c0 wne cfusgr wcel cv cfv wceq cn0 wrex wi weq fveq2 sylbi cvtxdg
      n0 wral vtxdgfusgr eleq1d rspcv risset eqeq1d eqcom syl6bb rexbidv rspcev
      wex expcom com12 syld syl5 exlimiv impcom ) DHIZCJKZALZCUAMZMZBLZNZBOPZAD
      PZUTFLZDKZFUMVAVHQZFDUBVJVKFVAGLZVCMZOKZGDUCZVJVHGCDEUDVJVOVIVCMZOKZVHVNV
      QGVIDGFRVMVPOVLVIVCSUEUFVQVJVHVQVEVPNZBOPZVJVHQBVPOUGVJVSVHVGVSAVIDAFRZVF
      VRBOVTVFVPVENVRVTVDVPVEVBVIVCSUHVPVEUIUJUKULUNTUOUPUQURTUS $.
  $}

  ${
    1loopgruspgr.v $e |- ( ph -> ( Vtx ` G ) = V ) $.
    1loopgruspgr.a $e |- ( ph -> A e. X ) $.
    1loopgruspgr.n $e |- ( ph -> N e. V ) $.
    1loopgruspgr.i $e |- ( ph -> ( iEdg ` G ) = { <. A , { N } >. } ) $.
    $( A graph with one edge which is a loop is a simple pseudograph (see also
       ~ uspgr1v1eop ).  (Contributed by AV, 21-Feb-2021.) $)
    1loopgruspgr $p |- ( ph -> G e. USPGraph ) $=
      ( cvtx cfv eqid eleqtrrd ciedg csn cop cpr wceq dfsn2 sneqd eqtrd uspgr1e
      a1i opeq2d ) ABDDCCKLZFUFMHADEUFIGNZUGACOLBDPZQZPBDDRZQZPJAUIUKAUHUJBUHUJ
      SADTUDUEUAUBUC $.

    $( The set of edges in a graph (simple pseudograph) with one edge which is
       a loop is a singleton of a singleton.  (Contributed by AV, 17-Dec-2020.)
       (Revised by AV, 21-Feb-2021.) $)
    1loopgredg $p |- ( ph -> ( Edg ` G ) = { { N } } ) $=
      ( cedg cfv ciedg crn csn cop wceq edgval a1i rneqd wcel rnsnopg 3eqtrd
      syl ) ACKLZCMLZNZBDOZPOZNZUHOZUEUGQACRSAUFUIJTABFUAUJUKQHBUHFUBUDUC $.

    $d A v $.  $d G v $.  $d N v $.  $d V v $.  $d X v $.  $d ph v $.
    $( In a graph (simple pseudograph) with one edge which is a loop, the
       vertex connected with itself by the loop has no neighbors.  (Contributed
       by AV, 17-Dec-2020.)  (Revised by AV, 21-Feb-2021.) $)
    1loopgrnb0 $p |- ( ph -> ( G NeighbVtx N ) = (/) ) $=
      ( vv cfv wcel csn cdif c0 wceq eleq2d mpbird wa cnbgr co cv cpr cedg cvtx
      crab cupgr cuspgr 1loopgruspgr uspgrupgr eqid nbupgr syl2anc wral difeq1d
      syl wn wne eldifsn elexd adantr elex adantl preqsnd simpr syl6bi necon3ad
      cvv expimpd syl5bi sylbid wb 1loopgredg prex elsn syl6bb notbid ralrimiva
      imp rabeq0 sylibr eqtrd ) ACDUAUBZDKUCZUDZCUELZMZKCUFLZDNZOZUGZPACUHMZDWI
      MZWDWLQACUIMWMABCDEFGHIJUJCUKUQAWNDEMIAWIEDGRSKWGCDWIWIULWGULUMUNAWHURZKW
      KUOWLPQAWOKWKAWEWKMZTWOWFWJQZURZAWPWRAWPWEEWJOZMZWRAWKWSWEAWIEWJGUPRWTWEE
      MZWEDUSZTAWRWEEDUTAXAXBWRAXATZWQWEDXCWQDDQZWEDQZTXEXCDWEDADVIMXAADEIVAVBZ
      XAWEVIMAWEEVCVDXFVEXDXEVFVGVHVJVKVLVTAWOWRVMWPAWHWQAWHWFWJNZMWQAWGXGWFABC
      DEFGHIJVNRWFWJDWEVOVPVQVRVBSVSWHKWKWAWBWC $.

    $d A a e $.  $d G a e $.  $d N a e $.  $d V a e $.  $d X a e $.
    $d ph a e $.
    $( The vertex degree of a one-edge graph, case 4: an edge from a vertex to
       itself contributes two to the vertex's degree.  I. e. in a graph (simple
       pseudograph) with one edge which is a loop, the vertex connected with
       itself by the loop has degree 2.  (Contributed by Mario Carneiro,
       12-Mar-2015.)  (Revised by Alexander van der Vekens, 22-Dec-2017.)
       (Revised by AV, 21-Feb-2021.) $)
    1loopgrvd2 $p |- ( ph -> ( ( VtxDeg ` G ) ` N ) = 2 ) $=
      ( ve va cfv wcel crab wceq c1 eqid wex c0 cvtxdg cv cedg chash cxad co c2
      csn cushgr cvtx cuspgr 1loopgruspgr uspgrushgr syl vtxdushgrfvedg syl2anc
      eleqtrrd cif snex eqeq2d ceqsexv2d a1i snidg iftrued eqeq1d exbidv mpbird
      sneq 1loopgredg rabeqdv eleq2 rabsnif syl6eq wb fvex rabex hash1snb ax-mp
      cvv sylibr iftruei eqeq1i exbii eqeq1 oveq12d caddc cr rexadd mp2an 1p1e2
      1re eqtri 3eqtrd ) ADCUAMZMZDKUBZNZKCUCMZOZUDMZWPDUHZPZKWROZUDMZUEUFZQQUE
      UFZUGACUINZDCUJMZNWOXEPACUKNXGABCDEFGHIJULCUMUNADEXHIGUQWNDKWRCXHXHRWRRWN
      RUOUPAWTQXDQUEAWSLUBZUHZPZLSZWTQPZAXLDXANZXAUHZTURZXJPZLSZAXRXOXJPZLSZXTA
      XSXOXOPLXADUSXIXAPXJXOXOXIXAVHUTXORVAVBZAXQXSLAXPXOXJAXNXOTADENXNIDEVCUNV
      DVEVFVGAXKXQLAWSXPXJAWSWQKXOOXPAWQKWRXOABCDEFGHIJVIZVJWQXNKXAWPXADVKVLVMV
      EVFVGWSVSNXMXLVNWQKWRCUCVOZVPWSVSLVQVRVTAXCXJPZLSZXDQPZAYEXAXAPZXOTURZXJP
      ZLSZAXTYJYAYIXSLYHXOXJYGXOTXARWAWBWCVTAYDYILAXCYHXJAXCXBKXOOYHAXBKWRXOYBV
      JXBYGKXAWPXAXAWDVLVMVEVFVGXCVSNYFYEVNXBKWRYCVPXCVSLVQVRVTWEXFUGPAXFQQWFUF
      ZUGQWGNZYLXFYKPWKWKQQWHWIWJWLVBWM $.

    $d A i $.  $d G i $.  $d K i $.  $d N i $.  $d ph i $.
    1loopgrvd0.k $e |- ( ph -> K e. ( V \ { N } ) ) $.
    $( The vertex degree of a one-edge graph, case 1 (for a loop): a loop at a
       vertex other than the given vertex contributes nothing to the vertex
       degree.  (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by AV,
       21-Feb-2021.) $)
    1loopgrvd0 $p |- ( ph -> ( ( VtxDeg ` G ) ` K ) = 0 ) $=
      ( vi cfv wceq wcel csn cvv eleq2d eqid cvtxdg cc0 cv ciedg cdm wn eldifbd
      wrex cop snex fvsng sylancl mtbird dmeqd dmsnopg mp1i fveq1d rexeqbidv wb
      eqtrd fveq2 rexsng syl bitrd cvtx eldifad mpbird vtxd0nedgb ) ADCUANZNUBO
      ZDMUCZCUDNZNZPZMVLUEZUHZUFZAVPDBBEQZUIQZNZPZAWADVRPADFVRLUGAVTVRDABGPZVRR
      PZVTVROIEUJZBVRGRUKULSUMAVPDVKVSNZPZMBQZUHZWAAVNWFMVOWGAVOVSUEZWGAVLVSKUN
      WCWIWGOAWDBVRRUOUPUTAVMWEDAVKVLVSKUQSURAWBWHWAUSIWFWAMBGVKBOWEVTDVKBVSVAS
      VBVCVDUMADCVENZPZVJVQUSAWKDFPADFVRLVFAWJFDHSVGVIDMCVLWJWJTVLTVITVHVCVG $.
  $}

  ${
    $d A x $.  $d D x $.  $d G x $.
    1hevtxdg0.i $e |- ( ph -> ( iEdg ` G ) = { <. A , E >. } ) $.
    1hevtxdg0.v $e |- ( ph -> ( Vtx ` G ) = V ) $.
    1hevtxdg0.a $e |- ( ph -> A e. X ) $.
    1hevtxdg0.d $e |- ( ph -> D e. V ) $.
    ${
      1hevtxdg0.e $e |- ( ph -> E e. Y ) $.
      1hevtxdg0.n $e |- ( ph -> D e/ E ) $.
      $( The vertex degree of vertex ` D ` in a graph ` G ` with only one
         hyperedge ` E ` is 0 if ` D ` is not incident with the edge ` E ` .
         (Contributed by AV, 2-Mar-2021.) $)
      1hevtxdg0 $p |- ( ph -> ( ( VtxDeg ` G ) ` D ) = 0 ) $=
        ( vx cfv wceq wcel wn mpbird cvtxdg cc0 cv ciedg cdm wrex wral csn wnel
        df-nel sylib cop fveq1d fvsng syl2anc neleqtrrd wb eleq2d notbid ralsng
        eqtrd fveq2 syl dmeqd dmsnopg raleqdv ralnex cvtx eqid vtxd0nedgb ) ACE
        UAPZPUBQZCOUCZEUDPZPZRZOVNUEZUFSZAVPSZOVQUGZVRAVTVSOBUHZUGZAWBCBVNPZRZS
        ZAWCDCACDUICDRSNCDUJUKAWCBBDULUHZPZDABVNWFIUMABGRZDHRZWGDQKMBDGHUNUOVAU
        PAWHWBWEUQKVSWEOBGVMBQZVPWDWJVOWCCVMBVNVBURUSUTVCTAVSOVQWAAVQWFUEZWAAVN
        WFIVDAWIWKWAQMBDHVEVCVAVFTVPOVQVGUKACEVHPZRZVLVRUQAWMCFRLAWLFCJURTVKCOE
        VNWLWLVIVNVIVKVIVJVCT $.
    $}

    $d E x $.
    1hevtxdg1.e $e |- ( ph -> E e. ~P V ) $.
    1hevtxdg1.n $e |- ( ph -> D e. E ) $.
    1hevtxdg1.l $e |- ( ph -> 2 <_ ( # ` E ) ) $.
    $( The vertex degree of vertex ` D ` in a graph ` G ` with only one
       hyperedge ` E ` (not being a loop) is 1 if ` D ` is incident with the
       edge ` E ` .  (Contributed by AV, 2-Mar-2021.)  (Proof shortened by AV,
       17-Apr-2021.) $)
    1hevtxdg1 $p |- ( ph -> ( ( VtxDeg ` G ) ` D ) = 1 ) $=
      ( vx cfv wceq c1 wcel chash ciedg cdm csn cop dmeqd cpw dmsnopg syl eqtrd
      cvtxdg wa cv crab c2 cle wbr cvtx wf pweqd eleqtrrd fveq2 breq2d sylanbrc
      elrab fsnd adantr simpr feq12d mpbird vtxdlfgrval syl2anc rabeq adantl c0
      eqid fveq2d cif eleq2d rabsnif fveq1d fvsng iftrued syl5eq hashsng 3eqtrd
      mpdan ) AEUAPZUBZBUCZQZCEUJPZPZRQAWHBDUDUCZUBZWIAWGWMHUEADFUFZSZWNWIQLBDW
      OUGUHUIAWJUKZWLCOULZWGPZSZOWHUMZTPZWTOWIUMZTPZRWQWHUNWRTPZUOUPZOEUQPZUFZU
      MZWGURZCXGSZWLXBQWQXJWIXIWMURZAXLWJABDGXIJADXHSUNDTPZUOUPZDXISADWOXHLAXGF
      IUSUTNXFXNODXHWRDQXEXMUNUOWRDTVAVBVDVCVEVFWQWHWIXIWGWMAWGWMQWJHVFAWJVGVHV
      IAXKWJACFXGKIUTVFOWHWKCEWGXGXGVOWGVOWHVOWKVOVJVKWQXAXCTWJXAXCQAWTOWHWIVLV
      MVPAXDRQWJAXDWITPZRAXCWITAXCCBWGPZSZWIVNVQWIWTXQOBWRBQWSXPCWRBWGVAVRVSAXQ
      WIVNACDXPMAXPBWMPZDABWGWMHVTABGSZWPXRDQJLBDGWOWAVKUIUTWBWCVPAXSXORQJBGWDU
      HUIVFWEWF $.
  $}

  ${
    1hegrvtxdg1.a $e |- ( ph -> A e. X ) $.
    1hegrvtxdg1.b $e |- ( ph -> B e. V ) $.
    1hegrvtxdg1.c $e |- ( ph -> C e. V ) $.
    1hegrvtxdg1.n $e |- ( ph -> B =/= C ) $.
    1hegrvtxdg1.x $e |- ( ph -> E e. ~P V ) $.
    1hegrvtxdg1.i $e |- ( ph -> ( iEdg ` G ) = { <. A , E >. } ) $.
    1hegrvtxdg1.e $e |- ( ph -> { B , C } C_ E ) $.
    1hegrvtxdg1.v $e |- ( ph -> ( Vtx ` G ) = V ) $.
    $( The vertex degree of a graph with one hyperedge, case 2: an edge from
       the given vertex to some other vertex contributes one to the vertex's
       degree.  (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by
       Alexander van der Vekens, 22-Dec-2017.)  (Revised by AV,
       23-Feb-2021.) $)
    1hegrvtxdg1 $p |- ( ph -> ( ( VtxDeg ` G ) ` B ) = 1 ) $=
      ( cpr wcel syl sseldd prid1g cpw prid2g nehash2 1hevtxdg1 ) ABCEFGHNPIJMA
      CDQZECOACGRCUFRJCDGUASTZACDEGUBMUGAUFEDOADGRDUFRKCDGUCSTLUDUE $.

    $( The vertex degree of a graph with one hyperedge, case 3: an edge from
       some other vertex to the given vertex contributes one to the vertex's
       degree.  (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by
       Alexander van der Vekens, 22-Dec-2017.)  (Revised by AV,
       23-Feb-2021.) $)
    1hegrvtxdg1r $p |- ( ph -> ( ( VtxDeg ` G ) ` C ) = 1 ) $=
      ( necomd cpr prcom syl5eqss 1hegrvtxdg1 ) ABDCEFGHIKJACDLQMNADCRCDREDCSOT
      PUA $.
  $}

  ${
    1egrvtxdg1.v $e |- ( ph -> ( Vtx ` G ) = V ) $.
    1egrvtxdg1.a $e |- ( ph -> A e. X ) $.
    1egrvtxdg1.b $e |- ( ph -> B e. V ) $.
    1egrvtxdg1.c $e |- ( ph -> C e. V ) $.
    1egrvtxdg1.n $e |- ( ph -> B =/= C ) $.
    ${
      $d A x $.  $d B x $.  $d C x $.  $d G x $.  $d ph x $.
      1egrvtxdg1.i $e |- ( ph -> ( iEdg ` G ) = { <. A , { B , C } >. } ) $.
      $( The vertex degree of a one-edge graph, case 2: an edge from the given
         vertex to some other vertex contributes one to the vertex's degree.
         (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by Alexander
         van der Vekens, 22-Dec-2017.)  (Revised by AV, 21-Feb-2021.) $)
      1egrvtxdg1 $p |- ( ph -> ( ( VtxDeg ` G ) ` B ) = 1 ) $=
        ( vx cfv wcel chash c1 wceq eqid cvtxdg cv ciedg cdm crab cvtx eleqtrrd
        cusgr usgr1e vtxdusgrval syl2anc cpr cop csn wa dmeq adantl cvv dmsnopg
        prex eqtrd wb fveq1 eleq2d rabeqbidv fveq2d c0 cif fveq2 rabsnif prid1g
        mp1i syl fvsng sylancl iftrued syl5eq hashsng adantr mpdan ) ACEUAOZOZC
        NUBZEUCOZOZPZNWDUDZUEZQOZRAEUHPCEUFOZPWBWISABCDEWJGWJTZIACFWJJHUGZADFWJ
        KHUGMLUIWLNWGWACEWDWJWKWDTWGTWATUJUKAWDBCDULZUMUNZSZWIRSMAWOUOZWICWCWNO
        ZPZNBUNZUEZQOZRWPWHWTQWPWFWRNWGWSWPWGWNUDZWSWOWGXBSAWDWNUPUQWMURPZXBWSS
        WPCDUTZBWMURUSVLVAWOWFWRVBAWOWEWQCWCWDWNVCVDUQVEVFAXARSWOAXAWSQOZRAWTWS
        QAWTCBWNOZPZWSVGVHWSWRXGNBWCBSWQXFCWCBWNVIVDVJAXGWSVGACWMXFACFPCWMPJCDF
        VKVMABGPZXCXFWMSIXDBWMGURVNVOUGVPVQVFAXHXERSIBGVRVMVAVSVAVTVA $.

      $( The vertex degree of a one-edge graph, case 3: an edge from some other
         vertex to the given vertex contributes one to the vertex's degree.
         (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by Alexander
         van der Vekens, 22-Dec-2017.)  (Revised by AV, 21-Feb-2021.) $)
      1egrvtxdg1r $p |- ( ph -> ( ( VtxDeg ` G ) ` C ) = 1 ) $=
        ( necomd ciedg cfv cpr cop csn wceq prcom opeq2d sneqd eqtrd 1egrvtxdg1
        a1i ) ABDCEFGHIKJACDLNAEOPBCDQZRZSBDCQZRZSMAUHUJAUGUIBUGUITACDUAUFUBUCU
        DUE $.
    $}

    $d B e $.  $d C e $.  $d D e $.  $d G e $.
    1egrvtxdg0.d $e |- ( ph -> D e. V ) $.
    1egrvtxdg0.n $e |- ( ph -> C =/= D ) $.
    1egrvtxdg0.i $e |- ( ph -> ( iEdg ` G ) = { <. A , { B , D } >. } ) $.
    $( The vertex degree of a one-edge graph, case 1: an edge between two
       vertices other than the given vertex contributes nothing to the vertex
       degree.  (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by
       Alexander van der Vekens, 22-Dec-2017.)  (Revised by AV,
       21-Feb-2021.) $)
    1egrvtxdg0 $p |- ( ph -> ( ( VtxDeg ` G ) ` C ) = 0 ) $=
      ( ve wceq adantl wcel cvtxdg cfv cc0 wi wa ciedg cpr cop csn preq2 eqcoms
      cvtx dfsn2 syl6eqr adantr opeq2d sneqd cdif wne necomd jca eldifsn sylibr
      eqtrd 1loopgrvd0 ex cv cedg wrex wn wo necom df-ne sylbb syl neneqd ioran
      crn edgval rneqd rnsnopg syl5eq rexeqdv cvv prex eleq2 rexsng mp1i 3bitrd
      wb elprg mtbird cusgr eqid eleqtrrd usgr1e vtxdusgr0edgnel syl2anc mpbird
      simpl pm2.61ine ) ADFUAUBZUBUCRZUDCECERZAXCXDAUEZBFDCGHAFULUBZGRXDISABHTZ
      XDJSACGTXDKSXEFUFUBZBCEUGZUHZUIZBCUIZUHZUIAXHXKRZXDPSXEXJXMXEXIXLBXDXIXLR
      AXDXICCUGZXLXIXORECECCUJUKCUMUNUOUPUQVDADGXLURTZXDADGTZDCUSZUEXPAXQXRLACD
      MUTVADGCVBVCSVEVFCEUSZAXCXSAUEZXCDQVGZTZQFVHUBZVIZVJZXTYDDCRZDERZVKZXTYFV
      JZYGVJZUEZYHVJAYKXSAYIYJACDUSZYIMYLXRYICDVLDCVMVNVOADEOVPVASYFYGVQVCXTYDY
      BQXIUIZVIZDXITZYHXTYBQYCYMAYCYMRXSAYCXHVRZYMFVSAYPXKVRZYMAXHXKPVTAXGYQYMR
      JBXIHWAVOVDWBSWCXIWDTYNYOWJXTCEWEYBYOQXIWDYAXIDWFWGWHAYOYHWJZXSAXQYRLDCEG
      WKVOSWIWLXTFWMTDXFTZXCYEWJXTBCEFXFHXFWNZAXGXSJSACXFTXSACGXFKIWOSAEXFTXSAE
      GXFNIWOSAXNXSPSXSAWTWPAYSXSADGXFLIWOSXBDQYCFXFYTYCWNXBWNWQWRWSVFXA $.
  $}

  ${
    p1evtxdeq.v $e |- V = ( Vtx ` G ) $.
    p1evtxdeq.i $e |- I = ( iEdg ` G ) $.
    p1evtxdeq.f $e |- ( ph -> Fun I ) $.
    p1evtxdeq.fv $e |- ( ph -> ( Vtx ` F ) = V ) $.
    p1evtxdeq.fi $e |- ( ph -> ( iEdg ` F ) = ( I u. { <. K , E >. } ) ) $.
    p1evtxdeq.k $e |- ( ph -> K e. X ) $.
    p1evtxdeq.d $e |- ( ph -> K e/ dom I ) $.
    p1evtxdeq.u $e |- ( ph -> U e. V ) $.
    ${
      p1evtxdeq.e $e |- ( ph -> E e. Y ) $.
      $( Lemma for ~ p1evtxdeq and ~ p1evtxdp1 .  (Contributed by AV,
         3-Mar-2021.) $)
      p1evtxdeqlem $p |- ( ph -> ( ( VtxDeg ` F ) ` U )
                      = ( ( ( VtxDeg ` G ) ` U )
                       +e ( ( VtxDeg ` <. V , { <. K , E >. } >. ) ` U ) ) ) $=
        ( cvv cop csn wcel wa ciedg wceq cvtx fvex eqeltri snex pm3.2i opiedgfv
        cfv eqcomd ax-mp opvtxfv mp1i cdm cin c0 dmsnopg syl ineq2d wnel df-nel
        wn sylib disjsn sylibr eqtrd wfun funsng syl2anc vtxdun ) ADEHGCUAZUBZU
        AZFVPBHLHTUCZVPTUCZUDZVPVQUEUMZUFVRVSHEUGUMTKEUGUHUIVOUJUKZVTWAVPVPHTTU
        LUNUOKVTVQUGUMHUFAWBVPHTTUPUQNAFURZVPURZUSWCGUBZUSZUTAWDWEWCACJUCZWDWEU
        FSGCJVAVBVCAGWCUCVFZWFUTUFAGWCVDWHQGWCVEVGWCGVHVIVJMAGIUCWGVPVKPSGCIJVL
        VMROVN $.

      p1evtxdeq.n $e |- ( ph -> U e/ E ) $.
      $( If an edge ` E ` which does not contain vertex ` U ` is added to a
         graph ` G ` (yielding a graph ` F ` ), the degree of ` U ` is the same
         in both graphs.  (Contributed by AV, 2-Mar-2021.) $)
      p1evtxdeq $p |- ( ph -> ( ( VtxDeg ` F ) ` U )
                            = ( ( VtxDeg ` G ) ` U ) ) $=
        ( cvtxdg cfv cop csn cxad co cc0 p1evtxdeqlem wcel ciedg wceq cvtx fvex
        cvv wa eqeltri snex pm3.2i opiedgfv mp1i opvtxfv 1hevtxdg0 oveq2d cxnn0
        cxr vtxdgelxnn0 xnn0xr 3syl xaddid1d 3eqtrd ) ABDUAUBUBBEUAUBUBZBHGCUCZ
        UDZUCZUAUBUBZUEUFVKUGUEUFVKABCDEFGHIJKLMNOPQRSUHAVOUGVKUEAGBCVNHIJHUNUI
        ZVMUNUIZUOZVNUJUBVMUKAVPVQHEULUBUNKEULUMUPVLUQURZVMHUNUNUSUTVRVNULUBHUK
        AVSVMHUNUNVAUTPRSTVBVCAVKABHUIVKVDUIVKVEUIREHBKVFVKVGVHVIVJ $.
    $}

    p1evtxdp1.e $e |- ( ph -> E e. ~P V ) $.
    p1evtxdp1.n $e |- ( ph -> U e. E ) $.
    p1evtxdp1.l $e |- ( ph -> 2 <_ ( # ` E ) ) $.
    $( If an edge ` E ` (not being a loop) which contains vertex ` U ` is added
       to a graph ` G ` (yielding a graph ` F ` ), the degree of ` U ` is
       increased by 1.  (Contributed by AV, 3-Mar-2021.) $)
    p1evtxdp1 $p |- ( ph -> ( ( VtxDeg ` F ) ` U )
                          = ( ( ( VtxDeg ` G ) ` U ) +e 1 ) ) $=
      ( cvtxdg cfv cop csn cxad co c1 cpw p1evtxdeqlem cvv wcel ciedg wceq cvtx
      wa fvex eqeltri snex pm3.2i opiedgfv mp1i opvtxfv 1hevtxdg1 oveq2d eqtrd
      ) ABDUAUBUBBEUAUBUBZBHGCUCZUDZUCZUAUBUBZUEUFVFUGUEUFABCDEFGHIHUHJKLMNOPQR
      UIAVJUGVFUEAGBCVIHIHUJUKZVHUJUKZUOZVIULUBVHUMAVKVLHEUNUBUJJEUNUPUQVGURUSZ
      VHHUJUJUTVAVMVIUNUBHUMAVNVHHUJUJVBVAOQRSTVCVDVE $.
  $}

  ${
    uspgrloopvtx.g $e |- G = <. V , { <. A , { N } >. } >. $.
    $( The set of vertices in a graph (simple pseudograph) with one edge which
       is a loop (see ~ uspgr1v1eop ).  (Contributed by AV, 17-Dec-2020.) $)
    uspgrloopvtx $p |- ( V e. W -> ( Vtx ` G ) = V ) $=
      ( wcel cvtx cfv csn cop fveq2i cvv wceq snex opvtxfv mpan2 syl5eq ) DEGZB
      HIDACJKZJZKZHIZDBUBHFLSUAMGUCDNTOUADEMPQR $.

    $( A vertex in a graph (simple pseudograph) with one edge which is a loop
       (see ~ uspgr1v1eop ).  (Contributed by AV, 17-Dec-2020.) $)
    uspgrloopvtxel $p |- ( ( V e. W /\ N e. V ) -> N e. ( Vtx ` G ) ) $=
      ( wcel cvtx cfv wceq uspgrloopvtx wi eleq2 biimpd eqcoms com12 mpan9 ) DE
      GBHIZDJZCDGZCRGZABCDEFKSTUATUALDRDRJTUADRCMNOPQ $.

    $( The set of edges in a graph (simple pseudograph) with one edge which is
       a loop (see ~ uspgr1v1eop ) is a singleton of a singleton.  (Contributed
       by AV, 21-Feb-2021.) $)
    uspgrloopiedg $p |- ( ( V e. W /\ A e. X )
                         -> ( iEdg ` G ) = { <. A , { N } >. } ) $=
      ( wcel wa ciedg cfv csn cop fveq2i cvv wceq snex a1i opiedgfv sylan2
      syl5eq ) DEHZAFHZIBJKDACLMZLZMZJKZUEBUFJGNUCUBUEOHZUGUEPUHUCUDQRUEDEOSTUA
      $.

    $( The set of edges in a graph (simple pseudograph) with one edge which is
       a loop (see ~ uspgr1v1eop ) is a singleton of a singleton.  (Contributed
       by AV, 17-Dec-2020.) $)
    uspgrloopedg $p |- ( ( V e. W /\ A e. X ) -> ( Edg ` G ) = { { N } } ) $=
      ( wcel wa cedg cfv csn cop crn fveq2i cvv wceq snex a1i edgopval rnsnopg
      sylan2 syl5eq adantl eqtrd ) DEHZAFHZIZBJKZACLZMZLZNZUJLZUHUIDULMZJKZUMBU
      OJGOUGUFULPHZUPUMQUQUGUKRSULDEPTUBUCUGUMUNQUFAUJFUAUDUE $.

    $( In a graph (simple pseudograph) with one edge which is a loop (see
       ~ uspgr1v1eop ), the vertex connected with itself by the loop has no
       neighbors.  (Contributed by AV, 17-Dec-2020.)  (Proof shortened by AV,
       21-Feb-2021.) $)
    uspgrloopnb0 $p |- ( ( V e. W /\ A e. X /\ N e. V )
                         -> ( G NeighbVtx N ) = (/) ) $=
      ( wcel w3a cvtx cfv uspgrloopvtx 3ad2ant1 simp2 simp3 ciedg uspgrloopiedg
      wceq csn cop 3adant3 1loopgrnb0 ) DEHZAFHZCDHZIABCDFUCUDBJKDRUEABCDEGLMUC
      UDUENUCUDUEOUCUDBPKACSTSRUEABCDEFGQUAUB $.

    $( The vertex degree of a one-edge graph, case 4: an edge from a vertex to
       itself contributes two to the vertex's degree.  I. e. in a graph (simple
       pseudograph) with one edge which is a loop (see ~ uspgr1v1eop ), the
       vertex connected with itself by the loop has degree 2.  (Contributed by
       Mario Carneiro, 12-Mar-2015.)  (Revised by Alexander van der Vekens,
       22-Dec-2017.)  (Revised by AV, 17-Dec-2020.)  (Proof shortened by AV,
       21-Feb-2021.) $)
    uspgrloopvd2 $p |- ( ( V e. W /\ A e. X /\ N e. V )
                         -> ( ( VtxDeg ` G ) ` N ) = 2 ) $=
      ( wcel w3a cvtx cfv uspgrloopvtx 3ad2ant1 simp2 simp3 ciedg uspgrloopiedg
      wceq csn cop 3adant3 1loopgrvd2 ) DEHZAFHZCDHZIABCDFUCUDBJKDRUEABCDEGLMUC
      UDUENUCUDUEOUCUDBPKACSTSRUEABCDEFGQUAUB $.
  $}

  ${
    umgr2v2evtx.g $e |- G = <. V , { <. 0 , { A , B } >. ,
                                     <. 1 , { A , B } >. } >. $.
    $( The set of vertices in a multigraph with two edges connecting the same
       two vertices.  (Contributed by AV, 17-Dec-2020.) $)
    umgr2v2evtx $p |- ( V e. W -> ( Vtx ` G ) = V ) $=
      ( wcel cvtx cfv cc0 cpr cop c1 fveq2i cvv wceq prex opvtxfv mpan2 syl5eq
      ) DEGZCHIDJABKZLZMUBLZKZLZHIZDCUFHFNUAUEOGUGDPUCUDQUEDEORST $.

    $( A vertex in a multigraph with two edges connecting the same two
       vertices.  (Contributed by AV, 17-Dec-2020.) $)
    umgr2v2evtxel $p |- ( ( V e. W /\ A e. V ) -> A e. ( Vtx ` G ) ) $=
      ( wcel cvtx cfv wceq umgr2v2evtx eqcom biimpi eleq2d biimpcd mpan9 ) DEGC
      HIZDJZADGZAQGZABCDEFKRSTRDQARDQJQDLMNOP $.

    $( The edge function in a multigraph with two edges connecting the same two
       vertices.  (Contributed by AV, 17-Dec-2020.) $)
    umgr2v2eiedg $p |- ( ( V e. W /\ A e. V /\ B e. V )
                         -> ( iEdg ` G ) = { <. 0 , { A , B } >. ,
                                             <. 1 , { A , B } >. } ) $=
      ( wcel w3a ciedg cfv cc0 cpr cop c1 fveq2i cvv wceq simp1 prex opiedgfv
      sylancl syl5eq ) DEGZADGZBDGZHZCIJDKABLZMZNUGMZLZMZIJZUJCUKIFOUFUCUJPGULU
      JQUCUDUERUHUISUJDEPTUAUB $.

    $( The set of edges in a multigraph with two edges connecting the same two
       vertices.  (Contributed by AV, 17-Dec-2020.) $)
    umgr2v2eedg $p |- ( ( V e. W /\ A e. V /\ B e. V )
                        -> ( Edg ` G ) = { { A , B } } ) $=
      ( wcel w3a cedg cfv ciedg crn cc0 cpr cop c1 csn wceq a1i cvv edgval c0ex
      umgr2v2eiedg rneqd 1ex rnpropg mp2an dfsn2 syl6eqr 3eqtrd ) DEGADGBDGHZCI
      JZCKJZLZMABNZOPUOONZLZUOQZULUNRUKCUASUKUMUPABCDEFUCUDUKUQUOUONZURUQUSRZUK
      MTGPTGUTUBUEMPUOUOTTUFUGSUOUHUIUJ $.

    $d A e $.  $d B e $.  $d G e $.
    $( A multigraph with two edges connecting the same two vertices.
       (Contributed by AV, 17-Dec-2020.) $)
    umgr2v2e $p |- ( ( ( V e. W /\ A e. V /\ B e. V ) /\ A =/= B )
                     -> G e. UMGraph ) $=
      ( ve wcel wne wa cfv chash c2 wceq wf cc0 cpr cop c1 cvv w3a cumgr cdm cv
      ciedg cvtx cpw crab c0ex 1ex pm3.2i prex 0ne1 a1i fprg mp3an12i csn dfsn2
      prelpwi 3adant1 umgr2v2evtx 3ad2ant1 pweqd eleqtrrd adantr hashprg biimpd
      wi imp fveq2 elrab sylanbrc snssd syl5eqssr fssd ffdmd umgr2v2eiedg dmeqd
      eqeq1d feq12d mpbird wb opex eqeltri eqid isumgrs mp1i ) DEHZADHZBDHZUAZA
      BIZJZCUBHZCUEKZUCZGUDZLKZMNZGCUFKZUGZUHZWOOZWMXCPABQZRSXDRQZUCZXBXEOWMPSQ
      ZXBXEWMXGXDXDQZXBXEPTHZSTHZJXDTHZXKJWMPSIZXGXHXEOXIXJUIUJUKXKXKABULZXMUKX
      LWMUMUNPSXDXDTTTTUOUPWMXHXDUQXBXDURWMXDXBWMXDXAHZXDLKZMNZXDXBHWKXNWLWKXDD
      UGZXAWIWJXDXQHWHABDUSUTWKWTDWHWIWTDNWJABCDEFVAVBVCVDVEWKWLXPWIWJWLXPVHWHW
      IWJJWLXPABDDVFVGUTVIWSXPGXDXAWQXDNWRXOMWQXDLVJVSVKVLVMVNVOVPWMWPXFXBWOXEW
      KWOXENWLABCDEFVQVEZWMWOXEXRVRVTWACTHWNXCWBWMCDXERTFDXEWCWDGTWOCWTWTWEWOWE
      WFWGWA $.

    $d A x $.  $d B x $.  $d G x $.  $d V x $.  $d W x $.
    $( In a multigraph with two edges connecting the same two vertices, each of
       the vertices has one neighbor.  (Contributed by AV, 18-Dec-2020.) $)
    umgr2v2enb1 $p |- ( ( ( V e. W /\ A e. V /\ B e. V ) /\ A =/= B )
                        -> ( G NeighbVtx A ) = { B } ) $=
      ( vx wcel w3a wne wa cnbgr cpr cfv csn wceq adantr eqid wb wi co cv cumgr
      cedg cvtx crab umgr2v2evtxel 3adant3 nbumgrvtx syl2anc umgr2v2eedg eleq2d
      umgr2v2e prex elsn syl6bb simpr simpll3 preq2b bitrd pm5.32da umgr2v2evtx
      wal 3ad2ant1 eleq12 exbiri com13 3ad2ant3 pm4.71rd bitr4d alrimiv rabeqsn
      mpd sylibr eqtrd ) DEHZADHZBDHZIZABJZKZCALUAZAGUBZMZCUDNZHZGCUENZUFZBOZWA
      CUCHAWGHZWBWHPABCDEFUMVSWJVTVPVQWJVRABCDEFUGUHQGWECAWGWGRWERUIUJWAWCWGHZW
      FKZWCBPZSZGVCWHWIPWAWNGWAWLWKWMKWMWAWKWFWMWAWKKZWFWDABMZPZWMWOWFWDWPOZHZW
      QWAWFWSSZWKVSWTVTVSWEWRWDABCDEFUKULQQWDWPAWCUNUOUPWOWCBAWGDWAWKUQVPVQVRVT
      WKURUSUTVAWAWMWKVSWMWKTZVTVSWGDPZXAVPVQXBVRABCDEFVBVDVRVPXBXATVQWMXBVRWKW
      MXBWKVRWCBWGDVEVFVGVHVMQVIVJVKWFGWGBVLVNVO $.

    $( In a multigraph with two edges connecting the same two vertices, each of
       the vertices has degree 2.  (Contributed by AV, 18-Dec-2020.) $)
    umgr2v2evd2 $p |- ( ( ( V e. W /\ A e. V /\ B e. V ) /\ A =/= B )
                         -> ( ( VtxDeg ` G ) ` A ) = 2 ) $=
      ( vx wcel wne cfv cdm crab chash c2 wceq eqid cc0 cpr c1 eleq2d wa cvtxdg
      w3a cv ciedg cumgr cvtx umgr2v2e umgr2v2evtxel 3adant3 adantr vtxdumgrval
      syl2anc cop umgr2v2eiedg dmeqd prex dmprop syl6eq fveq1d rabeqbidv fveq2d
      wral prid1g 0ne1 c0ex fvpr1 ax-mp syl6eleqr 1ex fvpr2 fveq2 rabid2 sylibr
      ralpr sylanbrc eqcomd prhash2ex 3ad2ant2 eqtrd ) DEHZADHZBDHZUCZABIZUAZAC
      UBJZJZAGUDZCUEJZJZHZGWJKZLZMJZNWFCUFHACUGJZHZWHWOOABCDEFUHWDWQWEWAWBWQWCA
      BCDEFUIUJUKGWMWGACWJWPWPPWJPWMPWGPULUMWDWONOWEWDWOAWIQABRZUNSWRUNRZJZHZGQ
      SRZLZMJZNWDWNXCMWDWLXAGWMXBWDWMWSKXBWDWJWSABCDEFUOZUPQWRSWRABUQZXFURUSWDW
      KWTAWDWIWJWSXEUTTVAVBWBWAXDNOWCWBXDXBMJNWBXCXBMWBXBXCWBXAGXBVCZXBXCOWBAQW
      SJZHZASWSJZHZXGWBAWRXHABDVDZQSIZXHWROVEQSWRWRVFXFVGVHVIWBAWRXJXLXMXJWROVE
      QSWRWRVJXFVKVHVIXAXIXKGQSVFVJWIQOWTXHAWIQWSVLTWISOWTXJAWISWSVLTVOVPXAGXBV
      MVNVQVBVRUSVSVTUKVT $.
  $}

  ${
    $d G e $.  $d U e $.  $d V e $.
    hashnbusgrvd.v $e |- V = ( Vtx ` G ) $.
    $( In a simple graph, the number of neighbors of a vertex is the degree of
       this vertex.  This theorem does not hold for (simple) pseudographs,
       because a vertex connected with itself only by a loop has no neighbors,
       see ~ uspgrloopnb0 , but degree 2, see ~ uspgrloopvd2 .  And it does not
       hold for multigraphs, because a vertex connected with only one other
       vertex by two edges has one neighbor, see ~ umgr2v2enb1 , but also
       degree 2, see ~ umgr2v2evd2 .  (Contributed by Alexander van der Vekens,
       17-Dec-2017.)  (Revised by AV, 15-Dec-2020.)  (Proof shortened by AV,
       5-May-2021.) $)
    hashnbusgrvd $p |- ( ( G e. USGraph /\ U e. V )
                   -> ( # ` ( G NeighbVtx U ) ) = ( ( VtxDeg ` G ) ` U ) ) $=
      ( ve cusgr wcel wa cnbgr co chash cfv cedg crab cvtxdg eqid vtxdusgrfvedg
      cv nbedgusgr eqtr4d ) BFGACGHBAIJKLAERGEBMLZNKLABOLZLAEUABCDUAPZSUBAEUABC
      DUCUBPQT $.

    $( In a finite simple graph with n vertices a vertex is universal iff the
       vertex has degree ` n - 1 ` .  (Contributed by Alexander van der Vekens,
       14-Jul-2018.)  (Revised by AV, 17-Dec-2020.) $)
    usgruvtxvdb $p |- ( ( G e. FinUSGraph /\ U e. V )
                     -> ( U e. ( UnivVtx ` G )
                          <-> ( ( VtxDeg ` G ) ` U ) = ( ( # ` V ) - 1 ) ) ) $=
      ( cfusgr wcel wa cuvtx cfv cnbgr co chash c1 cmin wceq cvtxdg uvtxnbvtxm1
      cusgr fusgrusgr hashnbusgrvd sylan eqeq1d bitrd ) BEFZACFZGZABHIFBAJKLIZC
      LIMNKZOABPIIZUHOABCDQUFUGUIUHUDBRFUEUGUIOBSABCDTUAUBUC $.

    $d G v $.  $d V v $.
    $( A finite simple graph with n vertices is complete iff every vertex has
       degree ` n - 1 ` .  (Contributed by Alexander van der Vekens,
       14-Jul-2018.)  (Revised by AV, 22-Dec-2020.) $)
    vdiscusgrb $p |- ( G e. FinUSGraph -> ( G e. ComplUSGraph
                <-> A. v e. V ( ( VtxDeg ` G ) ` v ) = ( ( # ` V ) - 1 ) ) ) $=
      ( cfusgr wcel ccusgr cv cuvtx cfv wral cvtxdg chash c1 cmin co wceq bitrd
      wb wss cusgr fusgrusgr cusgruvtxb sssseq eqcom syl6rbbr mp1i dfss3 syl6bb
      uvtxssvtx syl usgruvtxvdb ralbidva ) BEFZBGFZAHZBIJZFZACKZUPBLJJCMJNOPQZA
      CKUNBUAFZUOUSSBUBVAUOCUQTZUSVAUOUQCQZVBBCDUCUQCTZVCVBSVABCDUJVDVBCUQQVCCU
      QUDUQCUEUFUGRACUQUHUIUKUNURUTACUPBCDULUMR $.

    $d G n v $.  $d V n $.
    $( In a finite complete simple graph with n vertices every vertex has
       degree ` n - 1 ` .  (Contributed by Alexander van der Vekens,
       14-Jul-2018.)  (Revised by AV, 17-Dec-2020.) $)
    vdiscusgr $p |- ( G e. FinUSGraph
                      -> ( A. v e. V ( ( VtxDeg ` G ) ` v ) = ( ( # ` V ) - 1 )
                           -> G e. ComplUSGraph ) ) $=
      ( vn cfusgr wcel cv cvtxdg cfv chash c1 cmin co wceq wral wa wb mpbird ex
      ccusgr cuvtx uvtxisvtx weq fveq2 eqeq1d rspccv adantl usgruvtxvdb adantlr
      wi imp impbid2 eqrdv cusgr fusgrusgr cusgruvtxb syl adantr ) BFGZAHZBIJZJ
      ZCKJLMNZOZACPZBUAGZUTVFQZVGBUBJZCOZVHEVICVHEHZVIGZVKCGZBVKCDUCVHVMVLVHVMQ
      VLVKVBJZVDOZVHVMVOVFVMVOUKUTVEVOAVKCAEUDVCVNVDVAVKVBUEUFUGUHULUTVMVLVORVF
      VKBCDUIUJSTUMUNUTVGVJRZVFUTBUOGVPBUPBCDUQURUSST $.
  $}

  ${
    $d E v $.  $d G v $.  $d U v $.  $d V v $.
    vtxdusgradjvtx.v $e |- V = ( Vtx ` G ) $.
    vtxdusgradjvtx.e $e |- E = ( Edg ` G ) $.
    $( The degree of a vertex in a simple graph is the number of vertices
       adjacent to this vertex.  (Contributed by Alexander van der Vekens,
       9-Jul-2018.)  (Revised by AV, 23-Dec-2020.) $)
    vtxdusgradjvtx $p |- ( ( G e. USGraph /\ U e. V )
           -> ( ( VtxDeg ` G ) ` U ) = ( # ` { v e. V | { U , v } e. E } ) ) $=
      ( cusgr wcel wa cnbgr co chash cfv cvtxdg cv cpr crab hashnbusgrvd wceq
      nbusgr adantr fveq2d eqtr3d ) DHIZBEIZJZDBKLZMNBDONNBAPQCIAERZMNBDEFSUGUH
      UIMUEUHUITUFACDBEFGUAUBUCUD $.

    $( If a vertex in a simple graph has degree 0, the vertex is not adjacent
       to another vertex via an edge.  (Contributed by Alexander van der
       Vekens, 20-Dec-2017.)  (Revised by AV, 16-Dec-2020.)  (Proof shortened
       by AV, 23-Dec-2020.) $)
    usgrvd0nedg $p |- ( ( G e. USGraph /\ U e. V )
          -> ( ( ( VtxDeg ` G ) ` U ) = 0 -> -. E. v e. V { U , v } e. E ) ) $=
      ( cusgr wcel wa cvtxdg cfv cc0 wceq cv cpr wn cvv cvtx syl5bi crab eqeq1d
      chash wrex vtxdusgradjvtx c0 fvex eqeltri rabex hasheq0 ax-mp wral rabeq0
      wb wi ralnex biimpi a1i sylbid ) DHIBEIJZBDKLLZMNBAOPCIZAEUAZUCLZMNZVBAEU
      DQZUTVAVDMABCDEFGUEUBVEVCUFNZUTVFVCRIVEVGUNVBAEEDSLRFDSUGUHUIVCRUJUKVGVBQ
      AEULZUTVFVBAEUMVHVFUOUTVHVFVBAEUPUQURTTUS $.

    $d E e v $.  $d G e $.  $d V e $.
    $( If every vertex in a hypergraph has degree 0, there is no edge in the
       graph.  (Contributed by Alexander van der Vekens, 12-Jul-2018.)
       (Revised by AV, 24-Dec-2020.) $)
    uhgrvd00 $p |- ( G e. UHGraph -> ( A. v e. V ( ( VtxDeg ` G ) ` v ) = 0
                                       -> E = (/) ) ) $=
      ( ve wcel cv cfv wceq wral wn c0 wa wrex wne wex wss ex cuhgr cvtxdg eqid
      cc0 vtxduhgr0edgnel ralnex syl6bbr ralbidva ralcom ralnex2 bitri cvtx cpw
      simpr csn cdif cedg eleq2i uhgredgn0 sylan2b eldifsn elpwi sseq2i ssn0rex
      wi sylbir syl imp sylbi jca eximdv df-rex 3imtr4g con3d syl5bi nne syl6ib
      n0 sylbid ) CUAHZAIZCUBJZJUDKZADLWAGIZHZMZGBLZADLZBNKZVTWCWGADVTWADHOWCWE
      GBPMWGWBWAGBCDEFWBUCUEWEGBUFUGUHVTWHBNQZMZWIWHWEADPZGBPZMZVTWKWHWFADLGBLW
      NWFAGDBUIWEGABDUJUKVTWJWMVTWDBHZGRWOWLOZGRWJWMVTWOWPGVTWOWPVTWOOZWOWLVTWO
      UNWQWDCULJZUMZNUOUPHZWLWOVTWDCUQJZHWTBXAWDFURWDCUSUTWTWDWSHZWDNQZOWLWDWSN
      VAXBXCWLXBWDWRSZXCWLVEZWDWRVBXDWDDSZXEDWRWDEVCXFXCWLAWDDVDTVFVGVHVIVGVJTV
      KGBVRWLGBVLVMVNVOBNVPVQVS $.

    $( If every vertex in a simple graph has degree 0, there is no edge in the
       graph.  (Contributed by Alexander van der Vekens, 12-Jul-2018.)
       (Revised by AV, 17-Dec-2020.)  (Proof shortened by AV, 23-Dec-2020.) $)
    usgrvd00 $p |- ( G e. USGraph -> ( A. v e. V ( ( VtxDeg ` G ) ` v ) = 0
                                       -> E = (/) ) ) $=
      ( cusgr wcel cuhgr cv cvtxdg cfv cc0 wceq wral c0 usgruhgr uhgrvd00 syl
      wi ) CGHCIHAJCKLLMNADOBPNTCQABCDEFRS $.
  $}

  ${
    $d x U $.  $d x V $.  $d x X $.  $d x Y $.
    vdegp1ai.vg $e |- V = ( Vtx ` G ) $.
    vdegp1ai.u $e |- U e. V $.
    vdegp1ai.i $e |- I = ( iEdg ` G ) $.
    vdegp1ai.w $e |- I e. Word { x e. ( ~P V \ { (/) } ) | ( # ` x ) <_ 2 } $.
    vdegp1ai.d $e |- ( ( VtxDeg ` G ) ` U ) = P $.
    vdegp1ai.vf $e |- ( Vtx ` F ) = V $.
    ${
      vdegp1ai.x $e |- X e. V $.
      vdegp1ai.xu $e |- X =/= U $.
      vdegp1ai.y $e |- Y e. V $.
      vdegp1ai.yu $e |- Y =/= U $.
      vdegp1ai.f $e |- ( iEdg ` F ) = ( I ++ <" { X , Y } "> ) $.
      $( The induction step for a vertex degree calculation.  If the degree of
         ` U ` in the edge set ` E ` is ` P ` , then adding ` { X , Y } ` to
         the edge set, where ` X =/= U =/= Y ` , yields degree ` P ` as well.
         (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by Mario
         Carneiro, 28-Feb-2016.)  (Revised by AV, 3-Mar-2021.) $)
      vdegp1ai $p |- ( ( VtxDeg ` F ) ` U ) = P $=
        ( cvtxdg cfv cpr cvv wcel wceq prex chash cv c2 cle wbr cpw c0 csn cdif
        crab cword wfun cc0 cfzo co wf wrdf ffun syl mp1i a1i ciedg cs1 cconcat
        cvtx cop cun wrdv ax-mp cats1un mpan syl5eq fvexd cdm wrdlndm id necomi
        wnel prneli p1evtxdeq eqtri ) CDUAUBUBZCEUAUBUBZBHIUCZUDUEZWIWJUFHIUGWL
        CWKDEFFUHUBZGUDUDJLFAUIUHUBUJUKULAGUMUNUOUPUQZURUEZFUSZWLMWOUTWMVAVBZWN
        FVCWPWNFVDWQWNFVEVFVGDVLUBGUFWLOVHWLDVIUBFWKVJVKVBZFWMWKVMUOVNZTFUDURUE
        ZWLWRWSUFWOWTMWNFVOVPFWKUDVQVRVSWLFUHVTWOWMFWAWEWLMWNFWBVGCGUEWLKVHWLWC
        CWKWEWLCHIHCQWDICSWDWFVHWGVPNWH $.
    $}

    ${
      vdegp1bi.x $e |- X e. V $.
      vdegp1bi.xu $e |- X =/= U $.
      ${
        vdegp1bi.f $e |- ( iEdg ` F ) = ( I ++ <" { U , X } "> ) $.
        $( The induction step for a vertex degree calculation, for example in
           the K&ouml;nigsberg graph.  If the degree of ` U ` in the edge set
           ` E ` is ` P ` , then adding ` { U , X } ` to the edge set, where
           ` X =/= U ` , yields degree ` P + 1 ` .  (Contributed by Mario
           Carneiro, 12-Mar-2015.)  (Revised by Mario Carneiro, 28-Feb-2016.)
           (Revised by AV, 3-Mar-2021.) $)
        vdegp1bi $p |- ( ( VtxDeg ` F ) ` U ) = ( P + 1 ) $=
          ( cfv wcel wceq cvtxdg c1 cxad co caddc cpr cvv prex chash cv cle wbr
          c2 cpw c0 csn cdif crab cword wfun cc0 cfzo wrdf ffund mp1i a1i ciedg
          cvtx cs1 cconcat cop cun wrdv ax-mp cats1un mpan syl5eq fvexd wrdlndm
          cdm wnel wa pm3.2i prelpwi prid1g necomi wb hashprg mp2an mpbi eqcomi
          wne 2re eqlei p1evtxdp1 cr cfn cn0 fzofi wrddm vtxdgfisnn0 nn0rei 1re
          rexadd oveq1i 3eqtri ) CDUARRZCEUARRZUBUCUDZXHUBUEUDZBUBUEUDCHUFZUGSZ
          XGXITCHUHXLCXKDEFFUIRZGUGIKFAUJUIRUMUKULAGUNZUOUPUQURZUSSZFUTXLLXPVAX
          MVBUDZXOFXOFVCVDVEDVHRGTXLNVFXLDVGRFXKVIVJUDZFXMXKVKUPVLZQFUGUSSZXLXR
          XSTXPXTLXOFVMVNFXKUGVOVPVQXLFUIVRXPXMFVTZWAXLLXOFVSVECGSZXLJVFYBHGSZW
          BXKXNSXLYBYCJOWCCHGWDVEYBCXKSXLJCHGWEVEUMXKUIRZTUMYDUKULXLYDUMCHWLZYD
          UMTZHCPWFYBYCYEYFWGJOCHGGWHWIWJWKUMYDWMWNVEWOVNXHWPSUBWPSXIXJTXHXQWQS
          YBXHWRSVAXMWSJXQCEFGIKYAXQXPYAXQTLXOFWTVNWKXAWIXBXCXHUBXDWIXHBUBUEMXE
          XF $.
      $}

      vdegp1ci.f $e |- ( iEdg ` F ) = ( I ++ <" { X , U } "> ) $.
      $( The induction step for a vertex degree calculation, for example in the
         K&ouml;nigsberg graph.  If the degree of ` U ` in the edge set ` E `
         is ` P ` , then adding ` { X , U } ` to the edge set, where
         ` X =/= U ` , yields degree ` P + 1 ` .  (Contributed by Mario
         Carneiro, 12-Mar-2015.)  (Revised by Mario Carneiro, 28-Feb-2016.)
         (Revised by AV, 3-Mar-2021.) $)
      vdegp1ci $p |- ( ( VtxDeg ` F ) ` U ) = ( P + 1 ) $=
        ( cpr cs1 cconcat ciedg cfv wceq prcom s1eq ax-mp oveq2i eqtri vdegp1bi
        co ) ABCDEFGHIJKLMNOPDUAUBFHCRZSZTUJFCHRZSZTUJQULUNFTUKUMUCULUNUCHCUDUK
        UMUEUFUGUHUI $.
    $}
  $}

  ${
    vtxdginducedm1.v $e |- V = ( Vtx ` G ) $.
    vtxdginducedm1.e $e |- E = ( iEdg ` G ) $.
    vtxdginducedm1.k $e |- K = ( V \ { N } ) $.
    vtxdginducedm1.i $e |- I = { i e. dom E | N e/ ( E ` i ) } $.
    vtxdginducedm1.p $e |- P = ( E |` I ) $.
    vtxdginducedm1.s $e |- S = <. K , P >. $.
    $( Lemma 1 for ~ vtxdginducedm1 : the edge function in the induced subgraph
       ` S ` of a pseudograph ` G ` obtained by removing one vertex ` N ` .
       (Contributed by AV, 16-Dec-2021.) $)
    vtxdginducedm1lem1 $p |- ( iEdg ` S ) = P $=
      ( ciedg cfv cvv fvexi eqeltri cop fveq2i cdif cvtx difexi resex opiedgfvi
      csn cres eqtri ) BPQGAUAZPQABUKPOUBAGGIHUHZUCRLIULIEUDJSUETADFUIRNDFDEPKS
      UFTUGUJ $.

    $d E i $.
    $( Lemma 2 for ~ vtxdginducedm1 : the domain of the edge function in the
       induced subgraph ` S ` of a pseudograph ` G ` obtained by removing one
       vertex ` N ` .  (Contributed by AV, 16-Dec-2021.) $)
    vtxdginducedm1lem2 $p |- dom ( iEdg ` S ) = I $=
      ( ciedg cfv cdm cres eqtri vtxdginducedm1lem1 dmeqi wss wceq cv wnel crab
      ssrab2 eqsstri ssdmres mpbi ) BPQZRDFSZRZFULUMULAUMABCDEFGHIJKLMNOUANTUBF
      DRZUCUNFUDFHCUEDQUFZCUOUGUOMUPCUOUHUIFDUJUKT $.

    $( Lemma 3 for ~ vtxdginducedm1 : an edge in the induced subgraph ` S ` of
       a pseudograph ` G ` obtained by removing one vertex ` N ` .
       (Contributed by AV, 16-Dec-2021.) $)
    vtxdginducedm1lem3 $p |- ( H e. I -> ( ( iEdg ` S ) ` H ) = ( E ` H ) ) $=
      ( wcel ciedg cfv cres vtxdginducedm1lem1 eqtri fveq1i fvres syl5eq ) FGQF
      BRSZSFDGTZSFDSFUFUGUFAUGABCDEGHIJKLMNOPUAOUBUCFGDUDUE $.

    $d J k $.  $d N i k $.  $d V k $.  $d W k $.
    vtxdginducedm1.j $e |- J = { i e. dom E | N e. ( E ` i ) } $.
    $( Lemma 4 for ~ vtxdginducedm1 .  (Contributed by AV, 17-Dec-2021.) $)
    vtxdginducedm1lem4 $p |- ( W e. ( V \ { N } )
                            -> ( # ` { k e. J | ( E ` k ) = { W } } ) = 0 ) $=
      ( wcel csn cdif cv cfv wceq crab c0 chash cc0 wn wral cdm wi fveq2 eleq2d
      weq elrab2 eldifsn df-ne eleq2 elsni eqcomd com12 con3rr3 sylbi simplbiim
      wne syl6bi impcom ralrimiva rabeq0 sylibr cvv wb ciedg fvexi dmex eqeltri
      rabex hasheq0 ax-mp ) LKJUAUBTZDUCZEUDZLUAZUEZDHUFZUGUEZWGUHUDUIUEZWBWFUJ
      ZDHUKWHWBWJDHWCHTZWBWJWKWCEULZTJWDTZWBWJUMJCUCZEUDZTZWMCWCWLHCDUPWOWDJWNW
      CEUNUOSUQWBWMWJWBLKTLJVGZWMWJUMZLKJURWQLJUEZUJWRLJUSWMWFWSWFWMWSWFWMJWETZ
      WSWDWEJUTWTJLJLVAVBVHVCVDVEVFVCVFVIVJWFDHVKVLWGVMTWIWHVNWFDHHWPCWLUFVMSWP
      CWLEEFVONVPVQVSVRVSWGVMVTWAVL $.

    $d E k l $.  $d G k $.  $d I k $.  $d J l $.  $d S k $.  $d k l v $.
    $( The degree of a vertex ` v ` in the induced subgraph ` S ` of a
       pseudograph ` G ` obtained by removing one vertex ` N ` plus the number
       of edges joining the vertex ` v ` and the vertex ` N ` is the degree of
       the vertex ` v ` in the pseudograph ` G ` .  (Contributed by AV,
       17-Dec-2021.) $)
    vtxdginducedm1 $p |- A. v e. ( V \ { N } )
         ( ( VtxDeg ` G ) ` v ) = ( ( ( VtxDeg ` S ) ` v )
                                    +e ( # ` { l e. J | v e. ( E ` l ) } ) ) $=
      ( vk cv cvtxdg cfv wcel crab chash cxad co wceq csn cdm ciedg cun elnelun
      cdif eqcomi rabeqi rabun2 eqtri fveq2i cvv cin fvexi dmex rab2ex wnel wss
      ssrab2 ss2in mp2an elneldisj sseq2i ss0 sylbi ax-mp hashunx mp3an oveq12i
      c0 cxnn0 hashxnn0 a1i xnn0add4d cxr xnn0xaddcl xaddcom vtxdginducedm1lem4
      xnn0xr cc0 oveq2d xaddid1 syl6eq eleq2d cbvrabv syl5eq vtxdginducedm1lem2
      fveq2 eqtrd vtxdginducedm1lem3 rabbiia eqeq1d oveq1i eldifi eqid vtxdgval
      syl cvtx cop difexg syl5eqel resexg opvtxfvi eleq2i sylbbr oveq1d 3eqtr4d
      cres rgen ) AUAZFUBUCUCZXSCUBUCUCZXSLUAZEUCZUDZLHUEZUFUCZUGUHZUIAKJUJZUOZ
      XSYIUDZXSTUAZEUCZUDZTEUKZUEZUFUCZYLXSUJZUIZTYNUEZUFUCZUGUHZXSYKCULUCZUCZU
      DZTUUBUKZUEZUFUCZUUCYQUIZTUUEUEZUFUCZUGUHZYFUGUHZXTYGYJUUAYMTGUEZUFUCZYRT
      GUEZUFUCZUGUHZYFUGUHZUULYJUUAYMTHUEZUFUCZUUNUGUHZYRTHUEZUFUCZUUPUGUHZUGUH
      ZUURYPUVAYTUVDUGYPUUSUUMUMZUFUCZUVAYOUVFUFYOYMTHGUMZUEUVFYMTYNUVHUVHYNYNJ
      DUAEUCZHGDSPUNUPZUQYMTHGURUSUTUUSVAUDZUUMVAUDZUUSUUMVBZVSUIZUVGUVAUIYMJUV
      IUDZTDYNHSEEFULNVCZVDZVEZYMJUVIVFZTDYNGPUVQVEZUVMHGVBZVGZUVNUUSHVGUUMGVGU
      WBYMTHVHYMTGVHUUSHUUMGVIVJUWBUVMVSVGUVNUWAVSUVMYNJUVIHGDSPVKZVLUVMVMVNVOU
      USUUMVAVAVPVQUSYTUVBUUOUMZUFUCZUVDYSUWDUFYSYRTUVHUEUWDYRTYNUVHUVJUQYRTHGU
      RUSUTUVBVAUDZUUOVAUDZUVBUUOVBZVSUIZUWEUVDUIYRUVOTDYNHSUVQVEZYRUVSTDYNGPUV
      QVEZUWHUWAVGZUWIUVBHVGUUOGVGUWLYRTHVHYRTGVHUVBHUUOGVIVJUWLUWHVSVGUWIUWAVS
      UWHUWCVLUWHVMVNVOUVBUUOVAVAVPVQUSVRYJUVEUUTUVCUGUHZUUQUGUHZUURYJUUTUUNUVC
      UUPUUTVTUDZYJUVKUWOUVRUUSVAWAVOZWBUUNVTUDZYJUVLUWQUVTUUMVAWAVOZWBUVCVTUDZ
      YJUWFUWSUWJUVBVAWAVOZWBUUPVTUDZYJUWGUXAUWKUUOVAWAVOZWBWCYJUWNUUQUWMUGUHZU
      URUWMWDUDZUUQWDUDZUWNUXCUIUWMVTUDZUXDUWOUWSUXFUWPUWTUUTUVCWEVJUWMWHVOUUQV
      TUDZUXEUWQUXAUXGUWRUXBUUNUUPWEVJUUQWHVOUWMUUQWFVJYJUWMYFUUQUGYJUWMUUTYFYJ
      UWMUUTWIUGUHZUUTYJUVCWIUUTUGBCDTEFGHIJKXSMNOPQRSWGWJUUTWDUDZUXHUUTUIUWOUX
      IUWPUUTWHVOUUTWKVOWLUUSYEUFYMYDTLHYKYBUIYLYCXSYKYBEWQWMWNUTWLWJWOWRWOUUQU
      UKYFUGUUKUUQUUGUUNUUJUUPUGUUFUUMUFUUFUUDTGUEUUMUUDTUUEGBCDEFGIJKMNOPQRWPZ
      UQUUDYMTGYKGUDZUUCYLXSBCDEFYKGIJKMNOPQRWSZWMWTUSUTUUIUUOUFUUIUUHTGUEUUOUU
      HTUUEGUXJUQUUHYRTGUXKUUCYLYQUXLXAWTUSUTVRUPXBWLYJXSKUDXTUUAUIXSKYHXCTYNXS
      FEKMNYNXDXEXFYJYAUUKYFUGYJXSCXGUCZUDZYAUUKUIUXNXSIUDYJUXMIXSUXMIBXHZXGUCI
      CUXOXGRUTBIKVAUDZIVAUDKFXGMVCUXPIYIVAOKYHVAXIXJVOEVAUDZBVAUDUVPUXQBEGXQVA
      QEGVAXKXJVOXLUSXMIYIXSOXMXNTUUEXSCUUBUXMUXMXDUUBXDUUEXDXEXFXOXPXR $.

    $d E v $.
    $( The degree of a vertex ` v ` in the induced subgraph ` S ` of a
       pseudograph ` G ` of finite size obtained by removing one vertex ` N `
       plus the number of edges joining the vertex ` v ` and the vertex ` N `
       is the degree of the vertex ` v ` in the pseudograph ` G ` .
       (Contributed by AV, 18-Dec-2021.) $)
    vtxdginducedm1fi $p |- ( E e. Fin -> A. v e. ( V \ { N } )
        ( ( VtxDeg ` G ) ` v ) = ( ( ( VtxDeg ` S ) ` v )
                                   + ( # ` { l e. J | v e. ( E ` l ) } ) ) ) $=
      ( wcel cfn cv cvtxdg cfv crab chash cxad co wceq cdif wral vtxdginducedm1
      csn caddc wa cdm cn0 cres finresfin dmfi syl syl5eqel cvtx cop fveq2i cvv
      dmeqi fvexi difexi eqeltri ciedg resex opvtxfvi vtxdginducedm1lem1 eqcomi
      3eqtrri eqid vtxdgfisnn0 sylan nn0red hashcl adantr rexaddd eqeq2d biimpd
      rabfi 3syl ralimdva mpi ) EUATZAUBZFUCUDUDZWKCUCUDUDZWKLUBEUDTZLHUEZUFUDZ
      UGUHZUIZAKJUMZUJZUKWLWMWPUNUHZUIZAWTUKABCDEFGHIJKLMNOPQRSULWJWRXBAWTWJWKW
      TTZUOZWRXBXDWQXAWLXDWMWPXDWMWJBUPZUATXCWMUQTWJXEEGURZUPZUABXFQVGWJXFUATXG
      UATGEUSXFUTVAVBXEWKCBWTCVCUDIBVDZVCUDIWTCXHVCRVEBIIWTVFOKWSKFVCMVHVIVJBXF
      VFQEGEFVKNVHVLVJVMOVPCVKUDBBCDEFGIJKMNOPQRVNVOXEVQVRVSVTXDWPWJWPUQTZXCWJH
      UATWOUATXIWJHJDUBEUDTZDEUPZUEZUASWJXKUATXLUATEUTXJDXKWFVAVBWNLHWFWOWAWGWB
      VTWCWDWEWHWI $.
  $}

  ${
    $d E i $.  $d G i $.  $d N i $.
    finsumvtxdg2sstep.v $e |- V = ( Vtx ` G ) $.
    finsumvtxdg2sstep.e $e |- E = ( iEdg ` G ) $.
    finsumvtxdg2sstep.k $e |- K = ( V \ { N } ) $.
    finsumvtxdg2sstep.i $e |- I = { i e. dom E | N e/ ( E ` i ) } $.
    finsumvtxdg2sstep.p $e |- P = ( E |` I ) $.
    finsumvtxdg2sstep.s $e |- S = <. K , P >. $.
    ${
      finsumvtxdg2ssteplem.j $e |- J = { i e. dom E | N e. ( E ` i ) } $.
      $( Lemma for ~ finsumvtxdg2sstep .  (Contributed by AV, 15-Dec-2021.) $)
      finsumvtxdg2ssteplem1 $p |- ( ( ( G e. UPGraph /\ N e. V )
                                     /\ ( V e. Fin /\ E e. Fin ) )
                                 -> ( # ` E ) = ( ( # ` P ) + ( # ` J ) ) ) $=
        ( wcel chash cfv cupgr wa cfn cres cdm cdif caddc co wfun wceq upgruhgr
        wss cuhgr uhgrfun ad2antrr simprr cv wnel ssrab2 eqsstri hashreshashfun
        syl crab syl3anc eqcomi fveq2i wn notrab difeq2i wb nnel bicomi rabbiia
        a1i eqtri 3eqtr4i fveq2d oveq12d eqtrd ) EUARZIJRZUBZJUCRZDUCRZUBZUBZDS
        TZDFUDZSTZDUEZFUFZSTZUGUHZASTZGSTZUGUHWFDUIZWDFWJULZWGWMUJVTWPWAWEVTEUM
        RWPEUKDELUNVBUOWBWCWDUPWQWFFICUQZDTZURZCWJVCZWJNWTCWJUSUTVNDFVAVDWFWIWN
        WLWOUGWIWNUJWFWHASAWHOVEVFVNWFWKGSWKGUJWFWJXAUFWTVGZCWJVCZWKGWTCWJVHFXA
        WJNVIGIWSRZCWJVCXCQXDXBCWJXDXBVJWRWJRXBXDIWSVKVLVNVMVOVPVNVQVRVS $.

      $( Lemma for ~ finsumvtxdg2sstep .  (Contributed by AV, 12-Dec-2021.) $)
      finsumvtxdg2ssteplem2 $p |- ( ( ( G e. UPGraph /\ N e. V )
                                     /\ ( V e. Fin /\ E e. Fin ) )
         -> ( ( VtxDeg ` G ) ` N )
              = ( ( # ` J ) + ( # ` { i e. dom E | ( E ` i ) = { N } } ) ) ) $=
        ( wcel cfv chash cupgr wa cfn cvtxdg cv cdm crab csn wceq caddc co dmfi
        adantl simpr eqid vtxdgfival syl2anr eqcomi fveq2i a1i oveq1d eqtrd ) E
        UARZIJRZUBZJUCRZDUCRZUBZUBZIEUDSSZICUEDSZRCDUFZUGZTSZVKIUHUICVLUGTSZUJU
        KZGTSZVOUJUKVHVLUCRZVDVJVPUIVEVGVRVFDULUMVCVDUNCVLIEDJKLVLUOUPUQVIVNVQV
        OUJVNVQUIVIVMGTGVMQURUSUTVAVB $.

      $d E v $.  $d G v $.  $d N v $.  $d V i v $.
      $( Lemma for ~ finsumvtxdg2sstep .  (Contributed by AV, 19-Dec-2021.) $)
      finsumvtxdg2ssteplem3 $p |- ( ( ( G e. UPGraph /\ N e. V )
                                       /\ ( V e. Fin /\ E e. Fin ) )
           -> ( sum_ v e. ( V \ { N } ) ( # ` { i e. J | v e. ( E ` i ) } )
                + ( # ` { i e. dom E | ( E ` i ) = { N } } ) ) = ( # ` J ) ) $=
        ( wcel wa cupgr cfn csn cdif cv cfv crab chash csu cdm caddc co rabeq2i
        wceq anbi1i anass bitri rabbia2 fveq2i a1i sumeq2dv oveq1d simpll simpr
        simplr numedglnl syl3anc eqtrd syl6eqr ) FUASZJKSZTZKUBSEUBSTZTZKJUCZUD
        ZAUEZDUEZEUFZSZDHUGZUHUFZAUIZVSVOUNDEUJZUGUHUFZUKULZJVSSZDWDUGZUHUFZHUH
        UFVNWFVPWGVTTZDWDUGZUHUFZAUIZWEUKULZWIVNWCWMWEUKVNVPWBWLAWBWLUNVNVQVPST
        WAWKUHVTWJDHWDVRHSZVTTVRWDSZWGTZVTTWPWJTWOWQVTWGDHWDRUMUOWPWGVTUPUQURUS
        UTVAVBVNVJVMVKWNWIUNVJVKVMVCVLVMVDVJVKVMVEADEFJKLMVFVGVHHWHUHRUSVI $.

      $d J i $.  $d K v $.
      $( Lemma for ~ finsumvtxdg2sstep .  (Contributed by AV, 12-Dec-2021.) $)
      finsumvtxdg2ssteplem4 $p |- ( ( ( ( G e. UPGraph /\ N e. V )
                   /\ ( V e. Fin /\ E e. Fin ) )
                   /\ sum_ v e. K ( ( VtxDeg ` S ) ` v ) = ( 2 x. ( # ` P ) ) )
            -> ( sum_ v e. ( V \ { N } ) ( ( VtxDeg ` G ) ` v )
                 + ( ( # ` J ) + ( # ` { i e. dom E | ( E ` i ) = { N } } ) ) )
               = ( 2 x. ( ( # ` P ) + ( # ` J ) ) ) ) $=
        ( wcel caddc cupgr wa cfn cv cvtxdg cfv csu c2 chash cmul wceq csn cdif
        co crab wral vtxdginducedm1fi ad2antll sumeq2d diffi adantr adantl cres
        cdm cc finresfin dmfi syl syl5eqel eqcomi eleq2i biimpi cvtx cop fveq2i
        dmeqi cvv fvexi difexi eqeltri ciedg opvtxfvi eqtr2i vtxdginducedm1lem1
        resex eqid vtxdgfisnn0 nn0cnd syl2an rabfi hashcl fsumadd eqtrd sumeq1i
        cn0 3syl eqeq1i oveq1 oveq1d fsumcl add12d finsumvtxdg2ssteplem3 oveq2d
        sylbi sylan9eq 2timesd eqcomd 3eqtrd 2cnd mulcld addcld addassd 3eqtr4d
        adddid ) FUASJKSUBZKUCSZEUCSZUBZUBZIAUDZCUEUFUFZAUGZUHBUIUFZUJUNZUKZUBZ
        KJULZUMZXTFUEUFUFZAUGZHUIUFZDUDEUFZYGUKZDEVDZUOZUIUFZTUNZTUNYDYHXTYLSZD
        HUOZUIUFZAUGZTUNZYQTUNZUHYCYKTUNUJUNZYFYJUUBYQTXSYEYJYHYAAUGZUUATUNZUUB
        XSYJYHYAYTTUNZAUGUUFXSYHYIUUGAXQYIUUGUKAYHUPXOXPABCDEFGHIJKDLMNOPQRUQUR
        USXSYHYAYTAXRYHUCSZXOXPUUHXQKYGUTVAZVBXSBVDZUCSZXTISZYAVESXTYHSZXQUUKXO
        XPXQUUJEGVCZVDZUCBUUNPVPXQUUNUCSUUOUCSGEVFZUUNVGVHVIURUUMUULYHIXTIYHNVJ
        VKVLUUKUULUBYAUUJXTCBICVMUFIBVNZVMUFICUUQVMQVOBIIYHVQNKYGKFVMLVRVSVTBUU
        NVQPEGEFWAMVRWEVTWBWCCWAUFBBCDEFGIJKLMNOPQWDVJUUJWFWGWHWIXSYTVESZUUMXQU
        URXOXPXQYTXQHUCSZYSUCSYTWOSXQHJYLSZDYNUOZUCRXQYNUCSZUVAUCSEVGZUUTDYNWJV
        HVIZYRDHWJYSWKWPWHZURVAWLWMYEUUEYDUKUUFUUBUKYBUUEYDIYHYAANWNWQUUEYDUUAT
        WRXDXEWSXSUUCUUDUKYEXSYDUUAYQTUNZTUNYDUHYKUJUNZTUNUUCUUDXSUVFUVGYDTXSUV
        FYKUUAYPTUNZTUNZYKYKTUNZUVGXRUVFUVIUKXOXRUUAYKYPXRYHYTAUUIXRUURUUMXQUUR
        XPUVEVBVAWTZXQYKVESZXPXQYKXQUUSYKWOSUVDHWKVHWHZVBXQYPVESXPXQYPXQUVBYOUC
        SYPWOSUVCYMDYNWJYOWKWPWHZVBXAVBXSUVHYKYKTABCDEFGHIJKLMNOPQRXBXCXQUVJUVG
        UKXOXPXQUVGUVJXQYKUVMXFXGURXHXCXSYDUUAYQXQYDVESXOXPXQUHYCXQXIXQYCXQBUCS
        YCWOSXQBUUNUCPUUPVIBWKVHWHZXJURXRUUAVESXOUVKVBXQYQVESXOXPXQYKYPUVMUVNXK
        URXLXSUHYCYKXSXIXQYCVESXOXPUVOURXQUVLXOXPUVMURXNXMVAWM $.
    $}

    $d E i j $.  $d E v $.  $d G v $.  $d K v $.  $d N j $.  $d N v $.
    $d V i v $.
    $( Induction step of ~ finsumvtxdg2size :  In a finite pseudograph of
       finite size, the sum of the degrees of all vertices of the pseudograph
       is twice the size of the pseudograph if the sum of the degrees of all
       vertices of the subgraph of the pseudograph not containing one of the
       vertices is twice the size of the subgraph.  (Contributed by AV,
       19-Dec-2021.) $)
    finsumvtxdg2sstep $p |- ( ( ( G e. UPGraph /\ N e. V )
                                /\ ( V e. Fin /\ E e. Fin ) )
            -> ( ( P e. Fin
                   -> sum_ v e. K ( ( VtxDeg ` S ) ` v ) = ( 2 x. ( # ` P ) ) )
              -> sum_ v e. V ( ( VtxDeg ` G ) ` v ) = ( 2 x. ( # ` E ) ) ) ) $=
      ( wcel cfv co wceq vj cupgr wa cfn cv cvtxdg c2 chash cmul cres finresfin
      csu ad2antll syl5eqel csn cdif caddc cdm crab cun difsnid ad2antlr eqcomd
      csb sumeq1d wnel cz wral diffi adantr adantl simpr neldifsn nelir a1i cn0
      dmfi eleq2d biimpd imp vtxdgfisnn0 syl2an2r nn0zd ralrimiva fsumsplitsnun
      syl121anc fveq2 csbied oveq2d finsumvtxdg2ssteplem2 finsumvtxdg2ssteplem4
      wi eqid 3eqtrd cbvrabv fveq2i oveq2i finsumvtxdg2ssteplem1 ex embantd ) F
      UBQZIJQZUCZJUDQZEUDQZUCZUCZBUDQHAUEZCUFRRAULUGBUHRZUISTZJXHFUFRZRZAULZUGE
      UHRZUISZTZXGBEGUJZUDOXEXQUDQXCXDGEUKUMUNXGXJXPXGXJUCZXMJIUOZUPZXLAULZIXKR
      ZUQSZUGXIIDUEZERZQZDEURZUSZUHRZUQSZUISZXOXGXMYCTXJXGXMXTXSUTZXLAULZYAAIXL
      VDZUQSZYCXGJYLXLAXGYLJXBYLJTXAXFJIVAZVBVCVEXGXTUDQZXBIXTVFZXLVGQZAYLVHYMY
      OTXFYQXCXDYQXEJXSVIVJVKXCXBXFXAXBVLZVJYRXGIXTIJVMVNVOXGYSAYLXGXHYLQZUCXLX
      GYGUDQZUUAXHJQZXLVPQXEUUBXCXDEVQUMXGUUAUUCXBUUAUUCWLXAXFXBUUAUUCXBYLJXHYP
      VRVSVBVTYGXHFEJKLYGWMWAWBWCWDXTXLAJIWEWFXGYNYBYAUQXCYNYBTXFXCAIXLYBJYTXHI
      TXLYBTXCXHIXKWGVKWHVJWIWNVJXRYCYAIUAUEZERZQZUAYGUSZUHRZYEXSTDYGUSUHRUQSZU
      QSZUGXIUUHUQSZUISZYKXGYCUUJTXJXGYBUUIYAUQBCDEFGUUGHIJKLMNOPUUFYFUADYGUUDY
      DTUUEYEIUUDYDEWGVRWOZWJWIVJABCDEFGUUGHIJKLMNOPUUMWKUULYKTXRUUKYJUGUIUUHYI
      XIUQUUGYHUHUUMWPWQWQVOWNXGYKXOTXJXGXOYKXGXNYJUGUIBCDEFGYHHIJKLMNOPYHWMWRW
      IVCVJWNWSWT $.
  $}

  ${
    $d G e k n v $.  $d V v $.  $d e f i k n v w $.  $d e f k n p q v w y $.
    sumvtxdg2size.v $e |- V = ( Vtx ` G ) $.
    sumvtxdg2size.i $e |- I = ( iEdg ` G ) $.
    sumvtxdg2size.d $e |- D = ( VtxDeg ` G ) $.
    $( The sum of the degrees of all vertices of a finite pseudograph of finite
       size is twice the size of the pseudograph.  See equation (1) in section
       I.1 in [Bollobas] p. 4.  Here, the "proof" is simply the statement
       "Since each edge has two endvertices, the sum of the degrees is exactly
       twice the number of edges".  The formal proof of this theorem (for
       pseudographs) is much more complicated, taking also the used auxiliary
       theorems into account.  The proof for a (finite) simple graph (see
       ~ fusgr1th ) would be shorter, but nevertheless still laborious.
       Although this theorem would hold also for infinite pseudographs and
       pseudographs of infinite size, the proof of this most general version
       (see theorem "sumvtxdg2size" below) would require many more auxiliary
       theorems (e.g., the extension of the sum ` sum_ ` over an arbitrary
       set).

       I dedicate this theorem and its proof to Norman Megill, who deceased too
       early on December 9, 2021.  This proof is an example for the rigor which
       was the main motivation for Norman Megill to invent and develop
       Metamath, see section 1.1.6 "Rigor" on page 19 of the Metamath book:
        "... it is usually assumed in mathematical literature that the person
       reading the proof is a mathematician familiar with the specialty being
       described, and that the missing steps are obvious to such a reader or at
       least the reader is capable of filling them in."  I filled in the
       missing steps of Bollobas' proof as Norm would have liked it...
       (Contributed by Alexander van der Vekens, 19-Dec-2021.) $)
    finsumvtxdg2size $p |- ( ( G e. UPGraph /\ V e. Fin /\ I e. Fin )
                          -> sum_ v e. V ( D ` v ) = ( 2 x. ( # ` I ) ) ) $=
      ( wcel cfn cfv c2 chash cmul co wceq cvtxdg wi wa wb ve vk vn vi vf vw vy
      cupgr cv csu cvtx ciedg cop upgrop wnel cdm crab cres csn cdif fvex resex
      eleq1 adantl oveq12 fveq1d adantr sumeq12dv oveq2d eqeq12d imbi12d syl6eq
      simpl fveq2 vex opvtxfvi eqcomi eqid upgrres opeq12 fveq2d cc0 c0 hasheq0
      df-ov cvv ax-mp 2t0e0 a1i opiedgfvi cuhgr upgruhgr eqeq1i uhgr0vb sylan2b
      mpbid syl5eq sylibr sumeq1 sum0 3eqtr4rd a1d c1 caddc cn0 eqcoms 3ad2ant2
      w3a hashclb biimprd dmeqi rabeqi eqidd neleq12d rabbiia finsumvtxdg2sstep
      eqtri reseq12i fveq1i sumeq2i syl6ibr exp32 com34 3adant2 syl5 sylbid imp
      impcom opfi1ind ex syl eleq1i vtxdgop fveq2i oveq2i 3imtr4d 3imp ) CUHIZE
      JIZDJIZEAUIZBKZAUJZLDMKZNOZPZYRCUKKZJIZCULKZJIZUUGUUAUUGUUIQOZKZAUJZLUUIM
      KZNOZPZRZYSYTUUFRYRUUGUUIUMUHIZUUHUUQRCUNUURUUHUUQUUQUAUIZJIZUBUIZUUAUVAU
      USQOZKZAUJZLUUSMKZNOZPZRZUVAUUSUMZULKZUCUIZUDUIZUVJKZUOZUDUVJUPZUQZURZJIZ
      UVAUVKUSUTZUUAUVSUVQUMZQKZKZAUJZLUVQMKZNOZPZRZUEUIZJIZUFUIZUUAUWJUWHUMZQK
      ZKZAUJZLUWHMKZNOZPZRUGUFUBUAUEUCUUIUVQUHUUGCULVAUVJUVPUVIULVAVBUVAUUGPZUU
      SUUIPZSZUUTUUJUVGUUPUWSUUTUUJTUWRUUSUUIJVCVDUWTUVDUUMUVFUUOUWTUVAUUGUVCUU
      LAUWRUWSVMUWTUVCUULPUUAUVAIZUWTUUAUVBUUKUVAUUGUUSUUIQVEVFVGVHUWSUVFUUOPUW
      RUWSUVEUUNLNUUSUUIMVNVIVDVJVKUVAUWJPZUUSUWHPZSZUUTUWIUVGUWQUXCUUTUWITUXBU
      USUWHJVCVDUXDUVDUWNUVFUWPUXDUVAUWJUVCUWMAUXBUXCVMUXDUVCUWMPUXAUXDUUAUVBUW
      LUXDUVBUWJUWHQOUWLUVAUWJUUSUWHQVEUWJUWHQWEVLVFVGVHUXCUVFUWPPUXBUXCUVEUWOL
      NUUSUWHMVNVIVDVJVKUVTUDUVJUVPUVIUVKUVAUVIUKKZUVAUUSUVAUBVOZUAVOZVPVQZUVJV
      RUVPVRUVTVRZVSUWJUVSPZUWHUVQPZSZUWIUVRUWQUWFUXKUWIUVRTUXJUWHUVQJVCVDUXLUW
      NUWCUWPUWEUXLUWJUVSUWMUWBAUXJUXKVMUXLUWMUWBPUUAUWJIUXLUUAUWLUWAUXLUWKUVTQ
      UWJUWHUVSUVQVTWAVFVGVHUXKUWPUWEPUXJUXKUWOUWDLNUWHUVQMVNVIVDVJVKUVIUHIZUVA
      MKZWBPZSUVGUUTUXOUXMUVAWCPZUVGUVAWFIZUXOUXPTUXFUVAWFWDWGUXMUXPSZLWBNOZWBU
      VFUVDUXSWBPUXRWHWIUXRUVEWBLNUXRUUSWCPZUVEWBPZUXRUUSUVJWCUVJUUSUUSUVAUXFUX
      GWJZVQZUXRUVIWKIZUVJWCPZUXMUYDUXPUVIWLVGUXPUXMUXEWCPUYDUYETUVAUXEWCUXHWMU
      VIUHWNWOWPWQUUSWFIUYAUXTTUXGUUSWFWDWGWRVIUXPUVDWBPUXMUXPUVDWCUVCAUJWBUVAW
      CUVCAWSUVCAWTVLVDXAWOXBUGUIXCXDOZXEIZUXMUXNUYFPZUVKUVAIZXHZSUWGUVHUYJUYGU
      WGUVHRZUYJUYGUXNXEIZUYKUYHUXMUYGUYLTZUYIUYMUYFUXNUYFUXNXEVCXFXGUYLUVAJIZU
      YJUYKUXQUYLUYNRUXFUXQUYNUYLUVAWFXIXJWGUXMUYIUYNUYKRUYHUXMUYISZUYNUUTUWGUV
      GUYOUYNUUTUWGUVGRUYOUYNUUTSSUWGUVAUUAUVIQKZKZAUJZUVFPUVGAUVQUVTUDUUSUVIUV
      KUVLUUSKZUOZUDUUSUPZUQZUVSUVKUVAUXHUYCUVSVRVUBVRUVJUUSUVPVUBUYBUVPUVNUDVU
      AUQVUBUVNUDUVOVUAUVJUUSUYBXKXLUVNUYTUDVUAUVLVUAIZUVKUVKUVMUYSVUCUVKXMVUCU
      VLUVJUUSUVJUUSPVUCUYBWIVFXNXOXQXRUXIXPUVDUYRUVFUVAUVCUYQAUVCUYQPUXAUUAUVB
      UYPUVAUUSQWEXSWIXTWMYAYBYCYDYEYFYHYGYIYJYKYSUUHTYREUUGJFYLWIYRYTUUJUUFUUP
      YTUUJTYRDUUIJGYLWIYRUUCUUMUUEUUOYREUUGUUBUULAEUUGPYRFWIYRUUBUULPUUAEIYRUU
      ABUUKYRBCQKUUKHCUHYMWQVFVGVHUUEUUOPYRUUDUUNLNDUUIMGYNYOWIVJVKYPYQ $.

    $( The sum of the degrees of all vertices of a finite simple graph is twice
       the size of the graph.  See equation (1) in section I.1 in [Bollobas]
       p. 4.  Also known as the "First Theorem of Graph Theory" (see
       ~ https://charlesreid1.com/wiki/First_Theorem_of_Graph_Theory ).
       (Contributed by AV, 26-Dec-2021.) $)
    fusgr1th $p |- ( G e. FinUSGraph
                     -> sum_ v e. V ( D ` v ) = ( 2 x. ( # ` I ) ) ) $=
      ( cfusgr wcel cupgr cfn w3a cv cfv csu c2 chash cmul co wceq fusgrfupgrfs
      finsumvtxdg2size syl ) CIJCKJELJDLJMEANBOAPQDROSTUACDEFGUBABCDEFGHUCUD $.

    $(
    @( The sum of the degrees of all vertices of a pseudograph is twice the
       size of the pseudograph.  (Contributed by AV, 30-Dec-2021.) @)
    sumvtxdg2size @p |- ( G e. UPGraph
                          -> sum_ v e. V ( D ` v ) = ( 2 x. ( # ` I ) ) ) @=
      ? @.
    $)
  $}

  ${
    $d G v $.  $d V v $.
    finsumvtxdgeven.v $e |- V = ( Vtx ` G ) $.
    finsumvtxdgeven.i $e |- I = ( iEdg ` G ) $.
    finsumvtxdgeven.d $e |- D = ( VtxDeg ` G ) $.
    $( The sum of the degrees of all vertices of a finite pseudograph of finite
       size is even.  See equation (2) in section I.1 in [Bollobas] p. 4, where
       it is also called the _handshaking lemma_.  (Contributed by AV,
       22-Dec-2021.) $)
    finsumvtxdgeven $p |- ( ( G e. UPGraph /\ V e. Fin /\ I e. Fin )
                            -> 2 || sum_ v e. V ( D ` v ) ) $=
      ( cupgr wcel cfn w3a c2 chash cfv cmul co cv csu cdvds cz wceq wbr hashcl
      cn0 3ad2ant3 nn0zd eqidd 2teven syl2anc finsumvtxdg2size breqtrrd ) CIJZE
      KJZDKJZLZMMDNOZPQZEARBOASTUPUQUAJURURUBMURTUCUPUQUOUMUQUEJUNDUDUFUGUPURUH
      UQURUIUJABCDEFGHUKUL $.

    $d D v w $.  $d G w $.  $d I v w $.  $d V w $.
    $( The number of vertices of odd degree is even in a finite pseudograph of
       finite size.  Proposition 1.2.1 in [Diestel] p. 5.  See also remark
       about equation (2) in section I.1 in [Bollobas] p. 4.  (Contributed by
       AV, 22-Dec-2021.) $)
    vtxdgoddnumeven $p |- ( ( G e. UPGraph /\ V e. Fin /\ I e. Fin )
                            -> 2 || ( # ` { v e. V | -. 2 || ( D ` v ) } ) ) $=
      ( vw wcel cfn c2 cfv csu cdvds wbr wn wceq wa cz cupgr cv finsumvtxdgeven
      w3a crab chash caddc co cin c0 incom rabnc eqtri a1i rabxm equncomi simp2
      cun cvtxdg fveq1i cdm cn0 dmfi 3ad2ant3 vtxdgfisnn0 sylan nn0cnd syl5eqel
      cc eqid fsumsplit breq2d rabfi 3ad2ant2 elrabi syl2an nn0zd fsumzcl fveq2
      adantr notbid elrab simprbi adantl sumodd biimpa sumeven opeo syl22anc ex
      con4d sylbid mpd ) CUAJZEKJZDKJZUDZLEIUBZBMZINZOPZLLAUBZBMZOPZQZAEUEZUFMO
      PZIBCDEFGHUCWQXALXFWSINZXDAEUEZWSINZUGUHZOPZXGWQWTXKLOWQXFXIWSEIXFXIUIZUJ
      RWQXMXIXFUIUJXFXIUKXDAEULUMUNEXFXIURRWQEXIXFXDAEUOUPUNWNWOWPUQWQWREJZSZWS
      WRCUSMZMZVIWRBXPHUTZXOXQWQDVAZKJZXNXQVBJZWPWNXTWODVCVDZXSWRCDEFGXSVJVEZVF
      VGVHVKVLWQXGXLWQXGQZXLQZWQYDSXHTJZLXHOPZQZXJTJZLXJOPZYEWQYFYDWQXFWSIWOWNX
      FKJWPXEAEVMVNZWQWRXFJZSZWSXQTXRYMXQWQXTXNYAYLYBXEAWREVOYCVPVQVHZVRVTWQYDY
      HWQXGYGWQXFWSIYKYNYLLWSOPZQZWQYLXNYPXEYPAWREXBWRRZXDYOYQXCWSLOXBWRBVSVLZW
      AWBWCWDWEWAWFWQYIYDWQXIWSIWOWNXIKJWPXDAEVMVNZWQWRXIJZSZWSXQTXRUUAXQWQXTXN
      YAYTYBXDAWREVOYCVPVQVHZVRVTWQYJYDWQXIWSIYSUUBYTYOWQYTXNYOXDYOAWREYRWBWCWD
      WGVTXHXJWHWIWJWKWLWM $.

    $( The number of vertices of odd degree is even in a finite simple graph.
       Proposition 1.2.1 in [Diestel] p. 5.  See also remark about equation (2)
       in section I.1 in [Bollobas] p. 4.  (Contributed by AV, 27-Dec-2021.) $)
    fusgrvtxdgonume $p |- ( G e. FinUSGraph
                            -> 2 || ( # ` { v e. V | -. 2 || ( D ` v ) } ) ) $=
      ( cfusgr wcel cupgr cfn w3a c2 cv cfv cdvds wbr wn crab fusgrfupgrfs syl
      chash vtxdgoddnumeven ) CIJCKJELJDLJMNNAOBPQRSAETUCPQRCDEFGUAABCDEFGHUDUB
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Regular graphs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  With ~ df-rgr and ~ df-rusgr , k-regularity of a (simple) graph is defined as
  predicate ` RegGraph ` resp. ` RegUSGraph `.

  Instead of defining a predicate, an alternative could have been to define a
  function that maps an extended nonnegative integer to the class of "graphs"
  in which every vertex has the extended nonnegative integer as degree:
  ` RegGraph = ( k e. NN0* |-> { g | A. v e. ( Vtx `` g )
  ( ( VtxDeg `` g ) `` v ) = k } ) ` .  This function, however, would not be
  defined at least for ` k = 0 ` (see ~ rgrx0nd ), because
  ` { g | A. v e. ( Vtx `` g ) ( ( VtxDeg `` g ) `` v ) = 0 } ` is not a set
  (see ~ rgrprcx ).  It is expected that this function is not defined for every
  ` k e. NN0* ` (how could this be proven?).

$)

  $c RegGraph $.
  $c RegUSGraph $.

  $( Extend class notation to include the class of all regular graphs. $)
  crgr $a class RegGraph $.

  $( Extend class notation to include the class of all regular simple
     graphs. $)
  crusgr $a class RegUSGraph $.

  ${
    $d g k v $.
    $( Define the "k-regular" predicate, which is true for a "graph" being
       k-regular: read ` G RegGraph K ` as " ` G ` is ` K `-regular" or " ` G `
       is a ` K `-regular graph".  Note that ` K ` is allowed to be positive
       infinity ( ` K e. NN0* ` ), as proposed by GL. (Contributed by Alexander
       van der Vekens, 6-Jul-2018.)  (Revised by AV, 26-Dec-2020.) $)
    df-rgr $a |- RegGraph = { <. g , k >. | ( k e. NN0*
                       /\ A. v e. ( Vtx ` g ) ( ( VtxDeg ` g ) ` v ) = k ) } $.
  $}

  ${
    $d g k $.
    $( Define the "k-regular simple graph" predicate, which is true for a
       simple graph being k-regular: read ` G RegUSGraph K ` as ` G ` is a
       ` K `-regular simple graph.  (Contributed by Alexander van der Vekens,
       6-Jul-2018.)  (Revised by AV, 18-Dec-2020.) $)
    df-rusgr $a |- RegUSGraph = { <. g , k >. |
                                  ( g e. USGraph /\ g RegGraph k ) } $.
  $}

  ${
    $d G g k v $.  $d K g k v $.
    isrgr.v $e |- V = ( Vtx ` G ) $.
    isrgr.d $e |- D = ( VtxDeg ` G ) $.
    $( The property of a class being a k-regular graph.  (Contributed by
       Alexander van der Vekens, 7-Jul-2018.)  (Revised by AV, 26-Dec-2020.) $)
    isrgr $p |- ( ( G e. W /\ K e. Z ) -> ( G RegGraph K
                            <-> ( K e. NN0* /\ A. v e. V ( D ` v ) = K ) ) ) $=
      ( vk vg wcel wa cxnn0 cv cvtxdg cfv wceq cvtx wral wbr eleq1 adantl fveq2
      crgr wb adantr fveq1d simpr eqeq12d raleqbidv df-rgr brabga fveq1i eqeq1i
      anbi12d raleqbii bicomi a1i anbi2d bitrd ) CFLDGLMZCDUEUADNLZAOZCPQZQZDRZ
      ACSQZTZMZVCVDBQZDRZAETZMJOZNLZVDKOZPQZQZVNRZAVPSQZTZMVJKJCDUEFGVPCRZVNDRZ
      MZVOVCWAVIWCVOVCUFWBVNDNUBUCWDVSVGAVTVHWBVTVHRWCVPCSUDUGWDVRVFVNDWBVRVFRW
      CWBVDVQVEVPCPUDUHUGWBWCUIUJUKUPAKJULUMVBVIVMVCVIVMUFVBVMVIVLVGAEVHHVKVFDV
      DBVEIUNUOUQURUSUTVA $.

    $( The properties of a k-regular graph.  (Contributed by Alexander van der
       Vekens, 8-Jul-2018.)  (Revised by AV, 26-Dec-2020.) $)
    rgrprop $p |- ( G RegGraph K
                    -> ( K e. NN0* /\ A. v e. V ( D ` v ) = K ) ) $=
      ( vk vg cvv wcel wa crgr wbr cxnn0 cv cfv wceq wral cvtxdg df-rgr biimpd
      cvtx copab breqi brabv sylbi isrgr mpcom ) CJKDJKLZCDMNZDOKAPZBQDRAESLZUK
      CDHPZOKULIPZTQQUNRAUOUCQSLZIHUDZNUJCDMUQAIHUAUEUPIHCDUFUGUJUKUMABCDEJJFGU
      HUBUI $.
  $}

  ${
    $d G g k $.  $d K g k $.
    $( The property of being a k-regular simple graph.  (Contributed by
       Alexander van der Vekens, 7-Jul-2018.)  (Revised by AV, 18-Dec-2020.) $)
    isrusgr $p |- ( ( G e. W /\ K e. Z ) -> ( G RegUSGraph K
                                    <-> ( G e. USGraph /\ G RegGraph K ) ) ) $=
      ( vg vk wcel wa crusgr wbr cusgr crgr cv wceq eleq1 adantr breq12 anbi12d
      wb df-rusgr brabga biidd bitrd ) ACGBDGHZABIJAKGZABLJZHZUGEMZKGZUHFMZLJZH
      UGEFABICDUHANZUJBNZHUIUEUKUFULUIUESUMUHAKOPUHAUJBLQREFTUAUDUGUBUC $.

    $( The properties of a k-regular simple graph.  (Contributed by Alexander
       van der Vekens, 8-Jul-2018.)  (Revised by AV, 18-Dec-2020.) $)
    rusgrprop $p |- ( G RegUSGraph K -> ( G e. USGraph /\ G RegGraph K ) ) $=
      ( vg vk cvv wcel wa crusgr cusgr crgr cv copab df-rusgr breqi brabv sylbi
      wbr isrusgr biimpd mpcom ) AEFBEFGZABHQZAIFABJQGZUBABCKZIFUDDKJQGZCDLZQUA
      ABHUFCDMNUECDABOPUAUBUCABEERST $.
  $}

  $( A k-regular simple graph is a k-regular graph.  (Contributed by Alexander
     van der Vekens, 8-Jul-2018.)  (Revised by AV, 18-Dec-2020.) $)
  rusgrrgr $p |- ( G RegUSGraph K -> G RegGraph K ) $=
    ( crusgr wbr cusgr wcel crgr rusgrprop simprd ) ABCDAEFABGDABHI $.

  $( A k-regular simple graph is a simple graph.  (Contributed by Alexander van
     der Vekens, 8-Jul-2018.)  (Revised by AV, 18-Dec-2020.) $)
  rusgrusgr $p |- ( G RegUSGraph K -> G e. USGraph ) $=
    ( crusgr wbr cusgr wcel crgr rusgrprop simpld ) ABCDAEFABGDABHI $.

  ${
    finrusgrfusgr.v $e |- V = ( Vtx ` G ) $.
    $( A finite regular simple graph is a finite simple graph.  (Contributed by
       AV, 3-Jun-2021.) $)
    finrusgrfusgr $p |- ( ( G RegUSGraph K /\ V e. Fin )
                          -> G e. FinUSGraph ) $=
      ( crusgr wbr cfn wcel wa cusgr cfusgr rusgrusgr anim1i isfusgr sylibr ) A
      BEFZCGHZIAJHZQIAKHPRQABLMACDNO $.
  $}

  ${
    $d G v $.  $d K v $.
    isrusgr0.v $e |- V = ( Vtx ` G ) $.
    isrusgr0.d $e |- D = ( VtxDeg ` G ) $.
    $( The property of being a k-regular simple graph.  (Contributed by
       Alexander van der Vekens, 7-Jul-2018.)  (Revised by AV, 26-Dec-2020.) $)
    isrusgr0 $p |- ( ( G e. W /\ K e. Z ) -> ( G RegUSGraph K
            <-> ( G e. USGraph /\ K e. NN0* /\ A. v e. V ( D ` v ) = K ) ) ) $=
      ( wcel wa crusgr wbr cusgr crgr cxnn0 cv cfv wceq wral w3a isrusgr anbi2d
      isrgr 3anass syl6bbr bitrd ) CFJDGJKZCDLMCNJZCDOMZKZUIDPJZAQBRDSAETZUAZCD
      FGUBUHUKUIULUMKZKUNUHUJUOUIABCDEFGHIUDUCUIULUMUEUFUG $.

    $( The properties of a k-regular simple graph.  (Contributed by Alexander
       van der Vekens, 8-Jul-2018.)  (Revised by AV, 26-Dec-2020.) $)
    rusgrprop0 $p |- ( G RegUSGraph K
               -> ( G e. USGraph /\ K e. NN0* /\ A. v e. V ( D ` v ) = K ) ) $=
      ( crusgr wbr cusgr wcel crgr wa cxnn0 cv cfv wceq wral w3a rusgrprop syl
      rgrprop anim2i 3anass sylibr ) CDHICJKZCDLIZMZUFDNKZAOBPDQAERZSZCDTUHUFUI
      UJMZMUKUGULUFABCDEFGUBUCUFUIUJUDUEUA $.

    $( If all vertices in a simple graph have the same degree, the graph is
       k-regular.  (Contributed by AV, 26-Dec-2020.) $)
    usgreqdrusgr $p |- ( ( G e. USGraph /\ K e. NN0*
                           /\ A. v e. V ( D ` v ) = K ) -> G RegUSGraph K ) $=
      ( cusgr wcel cxnn0 cv cfv wceq wral w3a crusgr wbr wb isrusgr0 3adant3
      ibir ) CHIZDJIZAKBLDMAENZOZCDPQZUBUCUFUERUDABCDEHJFGSTUA $.

    $d V v $.
    $( In a nonempty finite simple graph, the degree of each vertex is finite.
       (Contributed by Alexander van der Vekens, 6-Mar-2018.)  (Revised by AV,
       19-Dec-2020.) $)
    fusgrregdegfi $p |- ( ( G e. FinUSGraph /\ V =/= (/) )
                          -> ( A. v e. V ( D ` v ) = K -> K e. NN0 ) ) $=
      ( cfusgr wcel c0 wne cv cfv wceq wral cn0 wi cvtxdg vtxdgfusgr wa biimpac
      r19.26 wb fveq1i eqeq1i eleq1 sylbi ralimi rspn0 syl5com sylbir com23 syl
      ex imp ) CHIZEJKZALZBMZDNZAEOZDPIZQZUPURCRMZMZPIZAEOZUQVCQACEFSVGVAUQVBVG
      VAUQVBQZVGVATVFUTTZAEOZVHVFUTAEUBVJVBAEOUQVBVIVBAEUTVFVBUTVEDNVFVBUCUSVED
      URBVDGUDUEVEDPUFUGUAUHVBAEUIUJUKUNULUMUO $.

    $( If all vertices in a nonempty finite simple graph have the same (finite)
       degree, the graph is k-regular.  (Contributed by AV, 26-Dec-2020.) $)
    fusgrn0eqdrusgr $p |- ( ( G e. FinUSGraph /\ V =/= (/) )
                          -> ( A. v e. V ( D ` v ) = K -> G RegUSGraph K ) ) $=
      ( cfusgr wcel c0 wne wa cv cfv wceq wral crusgr wbr cusgr cxnn0 fusgrusgr
      ad2antrr cn0 fusgrregdegfi imp nn0xnn0d simpr usgreqdrusgr syl3anc ex ) C
      HIZEJKZLZAMBNDOAEPZCDQRZUMUNLZCSIZDTIUNUOUKUQULUNCUAUBUPDUMUNDUCIABCDEFGU
      DUEUFUMUNUGABCDEFGUHUIUJ $.
  $}

  ${
    $d G v $.  $d K v $.  $d V v $.
    frusgrnn0.v $e |- V = ( Vtx ` G ) $.
    $( In a nonempty finite k-regular simple graph, the degree of each vertex
       is finite.  (Contributed by AV, 7-May-2021.) $)
    frusgrnn0 $p |- ( ( G e. FinUSGraph /\ G RegUSGraph K /\ V =/= (/) )
                      -> K e. NN0 ) $=
      ( vv cfusgr wcel crusgr wbr c0 wne w3a wa cvtxdg cfv wceq wral cn0 3simpb
      cv cusgr cxnn0 eqid rusgrprop0 simp3d 3ad2ant2 fusgrregdegfi sylc ) AFGZA
      BHIZCJKZLUIUKMETANOZOBPECQZBRGUIUJUKSUJUIUMUKUJAUAGBUBGUMEULABCDULUCZUDUE
      UFEULABCDUNUGUH $.
  $}

  ${
    $d G v $.  $d W v $.
    $( A graph is 0-regular if it has no edges.  (Contributed by Alexander van
       der Vekens, 8-Jul-2018.)  (Revised by AV, 26-Dec-2020.) $)
    0edg0rgr $p |- ( ( G e. W /\ ( iEdg ` G ) = (/) ) -> G RegGraph 0 ) $=
      ( vv wcel ciedg cfv c0 wceq wa cc0 crgr wbr cxnn0 cv cvtx wral simpr eqid
      cvtxdg 0xnn0 simplr vtxdg0e syl2anc ralrimiva jctil wb a1i sylan2 mpbird
      isrgr ) ABDZAEFZGHZIZAJKLZJMDZCNZASFZFJHZCAOFZPZIZUNVAUPUNUSCUTUNUQUTDZIV
      CUMUSUNVCQUKUMVCUAUQAULUTUTRZULRUBUCUDTUEUMUKUPUOVBUFUPUMTUGCURAJUTBMVDUR
      RUJUHUI $.

    $( A hypergraph is 0-regular if it has no edges.  (Contributed by AV,
       19-Dec-2020.) $)
    uhgr0edg0rgr $p |- ( ( G e. UHGraph /\ ( Edg ` G ) = (/) )
                         -> G RegGraph 0 ) $=
      ( cuhgr wcel cedg cfv c0 wceq ciedg cc0 wbr uhgriedg0edg0 biimpa 0edg0rgr
      crgr syldan ) ABCZADEFGZAHEFGZAINJPQRAKLABMO $.

    $( A hypergraph is 0-regular iff it has no edges.  (Contributed by
       Alexander van der Vekens, 12-Jul-2018.)  (Revised by AV,
       24-Dec-2020.) $)
    uhgr0edg0rgrb $p |- ( G e. UHGraph
                          -> ( G RegGraph 0 <-> ( Edg ` G ) = (/) ) ) $=
      ( vv cuhgr wcel cc0 crgr wbr cedg c0 wceq cxnn0 cv cvtxdg cvtx wral wa wi
      cfv eqid uhgrvd00 com12 adantl rgrprop syl11 uhgr0edg0rgr ex impbid ) ACD
      ZAEFGZAHRZIJZEKDZBLAMRZREJBANRZOZPUHUKUIUOUHUKQULUHUOUKBUJAUNUNSZUJSTUAUB
      BUMAEUNUPUMSUCUDUHUKUIAUEUFUG $.

    $( A simple graph is 0-regular iff it has no edges.  (Contributed by
       Alexander van der Vekens, 12-Jul-2018.)  (Revised by AV, 19-Dec-2020.)
       (Proof shortened by AV, 24-Dec-2020.) $)
    usgr0edg0rusgr $p |- ( G e. USGraph
                           -> ( G RegUSGraph 0 <-> ( Edg ` G ) = (/) ) ) $=
      ( cusgr wcel cc0 crusgr wbr crgr wa cedg cfv c0 wceq cn0 wb isrusgr mpan2
      0nn0 ibar cuhgr usgruhgr uhgr0edg0rgrb syl 3bitr2d ) ABCZADEFZUDADGFZHZUF
      AIJKLZUDDMCUEUGNQADBMOPUDUFRUDASCUFUHNATAUAUBUC $.
  $}

  ${
    $d G k v $.  $d W k $.
    $( A null graph (with no vertices) is k-regular for every k.  (Contributed
       by Alexander van der Vekens, 10-Jul-2018.)  (Revised by AV,
       26-Dec-2020.) $)
    0vtxrgr $p |- ( ( G e. W /\ ( Vtx ` G ) = (/) )
                    -> A. k e. NN0* G RegGraph k ) $=
      ( vv wcel cvtx cfv c0 wceq wa cv crgr wbr cxnn0 cvtxdg wral rzal ad2antlr
      simpr eqid wb isrgr adantlr mpbir2and ralrimiva ) BCEZBFGZHIZJZBAKZLMZANU
      IUJNEZJUKULDKBOGZGUJIZDUGPZUIULSUHUOUFULUNDUGQRUFULUKULUOJUAUHDUMBUJUGCNU
      GTUMTUBUCUDUE $.

    $d W v $.
    $( A graph with no vertices and an empty edge function is a k-regular
       simple graph for every k.  (Contributed by Alexander van der Vekens,
       10-Jul-2018.)  (Revised by AV, 26-Dec-2020.) $)
    0vtxrusgr $p |- ( ( G e. W /\ ( Vtx ` G ) = (/) /\ ( iEdg ` G ) = (/) )
                      -> A. k e. NN0* G RegUSGraph k ) $=
      ( vv wcel cvtx cfv c0 wceq ciedg w3a cv crusgr cxnn0 wa cusgr crgr usgr0v
      wbr adantr wi wral 0vtxrgr breq2 rspccva ex syl 3adant3 isrusgr 3ad2antl1
      imp wb mpbir2and ralrimiva ) BCEZBFGHIZBJGHIZKZBALZMSZANURUSNEZOUTBPEZBUS
      QSZURVBVABCRTURVAVCUOUPVAVCUAZUQUOUPOBDLZQSZDNUBZVDDBCUCVGVAVCVFVCDUSNVEU
      SBQUDUEUFUGUHUKUOUPVAUTVBVCOULUQBUSCNUIUJUMUN $.

    $( The null graph as hypergraph is a k-regular simple graph for every k.
       (Contributed by Alexander van der Vekens, 10-Jul-2018.)  (Revised by AV,
       26-Dec-2020.) $)
    0uhgrrusgr $p |- ( ( G e. UHGraph /\ ( Vtx ` G ) = (/) )
                       -> A. k e. NN0* G RegUSGraph k ) $=
      ( cuhgr wcel cvtx cfv c0 wceq ciedg cv crusgr wbr cxnn0 wral wi wa biimpd
      uhgr0vb ex pm2.43a imp 0vtxrusgr mpd3an3 ) BCDZBEFGHZBIFGHZBAJKLAMNUDUEUF
      UEUDUFUDUEUDUFOUDUEPUDUFBCRQSTUAABCUBUC $.

    $( The null graph represented by an empty set is a k-regular simple graph
       for every k.  (Contributed by AV, 26-Dec-2020.) $)
    0grrusgr $p |- A. k e. NN0* (/) RegUSGraph k $=
      ( c0 cvv wcel cvtx cfv wceq ciedg cv crusgr wbr wral 0ex vtxval0 iedgval0
      cxnn0 0vtxrusgr mp3an ) BCDBEFBGBHFBGBAIJKAPLMNOABCQR $.

    $( The null graph represented by an empty set is k-regular for every k.
       (Contributed by AV, 26-Dec-2020.) $)
    0grrgr $p |- A. k e. NN0* (/) RegGraph k $=
      ( c0 cv crusgr wbr cxnn0 wral crgr 0grrusgr rusgrrgr ralimi ax-mp ) BACZD
      EZAFGBMHEZAFGAINOAFBMJKL $.
  $}

  ${
    $d G v $.  $d V v $.
    cusgrrusgr.v $e |- V = ( Vtx ` G ) $.
    $( A complete simple graph with n vertices (at least one) is (n-1)-regular.
       (Contributed by Alexander van der Vekens, 10-Jul-2018.)  (Revised by AV,
       26-Dec-2020.) $)
    cusgrrusgr $p |- ( ( G e. ComplUSGraph /\ V e. Fin /\ V =/= (/) )
                       -> G RegUSGraph ( ( # ` V ) - 1 ) ) $=
      ( vv ccusgr wcel cfn c0 wne w3a chash cfv c1 cmin co wceq 3ad2ant1 wa cvv
      wral crusgr wbr cusgr cxnn0 cv cvtxdg cusgrusgr hashnncl nnm1nn0 nn0xnn0d
      cn syl6bir imp 3adant1 cnbgr csn cdif ccplgr cusgrcplgr nbcplgr ralrimiva
      sylan anim1i adantr hashnbusgrvd syl hashdifsn 3ad2antl2 sylan9eqr eqtr3d
      fveq2 ex ralimdva mpd wb simp1 ovex eqid isrusgr0 sylancl mpbir3and ) AEF
      ZBGFZBHIZJZABKLZMNOZUAUBZAUCFZWGUDFZDUEZAUFLZLZWGPZDBTZWBWCWIWDAUGQZWCWDW
      JWBWCWDWJWCWDWFUKFZWJBUHWQWGWFUIUJULUMUNWEAWKUOOZBWKUPUQZPZDBTWOWEWTDBWEA
      URFZWKBFZWTWBWCXAWDAUSQAWKBCUTVBVAWEWTWNDBWEXBRZWTWNXCWTRZWRKLZWMWGXDWIXB
      RZXEWMPXCXFWTWEWIXBWPVCVDWKABCVEVFWTXCXEWSKLZWGWRWSKVKWCWBXBXGWGPWDBWKVGV
      HVIVJVLVMVNWEWBWGSFWHWIWJWOJVOWBWCWDVPWFMNVQDWLAWGBESCWLVRVSVTWA $.

    $( A finite simple graph with n vertices is complete iff it is
       (n-1)-regular.  Hint:  If the definition of ` RegGraph ` was allowed for
       ` k e. ZZ ` , then the assumption ` V =/= (/) ` could be removed.
       (Contributed by Alexander van der Vekens, 14-Jul-2018.)  (Revised by AV,
       26-Dec-2020.) $)
    cusgrm1rusgr $p |- ( ( G e. FinUSGraph /\ V =/= (/) )
                         -> ( G e. ComplUSGraph
                              <-> G RegUSGraph ( ( # ` V ) - 1 ) ) ) $=
      ( vv cfusgr wcel c0 wne wa ccusgr chash cfv c1 cmin crusgr wbr cfn adantr
      co simpr fusgrvtxfi cusgrrusgr syl3anc ex cv cvtxdg wceq wral cusgr cxnn0
      eqid rusgrprop0 simp3d wi vdiscusgr syl5 impbid ) AEFZBGHZIZAJFZABKLMNSZO
      PZUTVAVCUTVAIVABQFZUSVCUTVATUTVDVAURVDUSABCUARRUTUSVAURUSTRABCUBUCUDVCDUE
      AUFLZLVBUGDBUHZUTVAVCAUIFVBUJFVFDVEAVBBCVEUKULUMURVFVAUNUSDABCUORUPUQ $.
  $}

  ${
    $d G v $.  $d K v $.
    rusgrpropnb.v $e |- V = ( Vtx ` G ) $.
    $( The properties of a k-regular simple graph expressed with neighbors.
       (Contributed by Alexander van der Vekens, 26-Jul-2018.)  (Revised by AV,
       26-Dec-2020.) $)
    rusgrpropnb $p |- ( G RegUSGraph K -> ( G e. USGraph /\ K e. NN0*
                              /\ A. v e. V ( # ` ( G NeighbVtx v ) ) = K ) ) $=
      ( crusgr wbr cusgr wcel cxnn0 cv cvtxdg cfv wceq wral w3a cnbgr co chash
      wa rusgrprop0 simp1 simp2 hashnbusgrvd adantlr wb eqeq2 eqcoms syl5ibrcom
      eqid ralimdva 3impia 3jca syl ) BCFGBHIZCJIZAKZBLMZMZCNZADOZPZUOUPBUQQRSM
      ZCNZADOZPAURBCDEURUJUAVBUOUPVEUOUPVAUBUOUPVAUCUOUPVAVEUOUPTZUTVDADVFUQDIZ
      TVDUTVCUSNZUOVGVHUPUQBDEUDUEVDVHUFCUSCUSVCUGUHUIUKULUMUN $.

    $d G e v $.
    $( The properties of a k-regular simple graph expressed with edges.
       (Contributed by AV, 23-Dec-2020.)  (Revised by AV, 27-Dec-2020.) $)
    rusgrpropedg $p |- ( G RegUSGraph K -> ( G e. USGraph /\ K e. NN0*
                  /\ A. v e. V ( # ` { e e. ( Edg ` G ) | v e. e } ) = K ) ) $=
      ( crusgr wbr cusgr wcel cxnn0 cv cnbgr chash cfv wceq wral w3a wa df-3an
      co wel cedg crab rusgrpropnb eqid nbedgusgr eqeq1d biimpd ralimdva adantr
      wi imdistani 3imtr4i syl ) CDGHCIJZDKJZCALZMUANOZDPZAEQZRZUPUQABUBBCUCOZU
      DNOZDPZAEQZRZACDEFUEUPUQSZVASVHVFSVBVGVHVAVFUPVAVFULUQUPUTVEAEUPUREJSZUTV
      EVIUSVDDURBVCCEFVCUFUGUHUIUJUKUMUPUQVATUPUQVFTUNUO $.

    $d G k v $.  $d V k $.
    $( The properties of a k-regular simple graph expressed with adjacent
       vertices.  (Contributed by Alexander van der Vekens, 26-Jul-2018.)
       (Revised by AV, 27-Dec-2020.) $)
    rusgrpropadjvtx $p |- ( G RegUSGraph K -> ( G e. USGraph /\ K e. NN0*
          /\ A. v e. V ( # ` { k e. V | { v , k } e. ( Edg ` G ) } ) = K ) ) $=
      ( crusgr wbr cusgr wcel cxnn0 cv cnbgr co chash cfv wceq wral w3a wa cedg
      cpr crab rusgrpropnb simp1 simp2 eqid nbusgrvtx fveq2d eqcomd simpr eqtrd
      adantr ex ralimdva imp 3adant2 3jca syl ) CDGHCIJZDKJZCALZMNZOPZDQZAERZSZ
      UTVAVBBLUBCUAPZJBEUCZOPZDQZAERZSACDEFUDVGUTVAVLUTVAVFUEUTVAVFUFUTVFVLVAUT
      VFVLUTVEVKAEUTVBEJTZVEVKVMVETVJVDDVMVJVDQVEVMVDVJVMVCVIOBVHCVBEFVHUGUHUIU
      JUMVMVEUKULUNUOUPUQURUS $.
  $}

  ${
    $d G f p s w $.  $d K p $.  $d P f p s w $.  $d V f p s w $.
    rusgrnumwrdl2.v $e |- V = ( Vtx ` G ) $.
    $( In a k-regular simple graph, the number of edges resp. walks of length 1
       (represented as words of length 2) starting at a fixed vertex is k.
       (Contributed by Alexander van der Vekens, 28-Jul-2018.)  (Revised by AV,
       6-May-2021.) $)
    rusgrnumwrdl2 $p |- ( ( G RegUSGraph K /\ P e. V )
                -> ( # ` { w e. Word V | ( ( # ` w ) = 2 /\ ( w ` 0 ) = P
                     /\ { ( w ` 0 ) , ( w ` 1 ) } e. ( Edg ` G ) ) } ) = K ) $=
      ( vs vf vp crusgr wcel cv chash cfv wceq cpr w3a crab cvv cvtx wbr wa cc0
      c2 c1 cedg cword wf1o wex fvex eqeltri wrdexi a1i wrd2f1tovbij hasheqf1oi
      rabex sylan mpsyl cusgr cxnn0 wral wi rusgrpropadjvtx preq1 eleq1d fveq2d
      rabbidv eqeq1d rspccv 3ad2ant3 syl imp eqtrd ) CDJUAZBEKZUBZALZMNUDOUCVQN
      ZBOVRUEVQNPCUFNZKQZAEUGZRZMNZBGLZPZVSKZGERZMNZDWBSKVPWBWGHLUHHUIZWCWHOVTA
      WAEECTNSFCTUJUKZULUPVNESKZVOWIWKVNWJUMABHGEVSSUNUQWBWGHSUOURVNVOWHDOZVNCU
      SKZDUTKZILZWDPZVSKZGERZMNZDOZIEVAZQVOWLVBZIGCDEFVCXAWMXBWNWTWLIBEWOBOZWSW
      HDXCWRWGMXCWQWFGEXCWPWEVSWOBWDVDVEVGVFVHVIVJVKVLVM $.
  $}

  ${
    $d K v $.  $d V v $.
    $( Lemma for ~ rusgr1vtx .  (Contributed by AV, 27-Dec-2020.) $)
    rusgr1vtxlem $p |- ( ( ( A. v e. V ( # ` A ) = K /\ A. v e. V A = (/) )
                         /\ ( V e. W /\ ( # ` V ) = 1 ) ) -> K = 0 ) $=
      ( chash cfv wceq wral c0 wa wcel c1 cc0 r19.26 fveq2 eqeq1d biimpac syl
      wi ralimi wne hash1n0 rspn0 hash0 eqeq1 mpbii syl6com sylbir imp ) BFGZCH
      ZADIBJHZADIKZDELDFGMHKZCNHZUNULUMKZADIZUOUPTZULUMADOURJFGZCHZADIZUSUQVAAD
      UMULVAUMUKUTCBJFPQRUAUOVBVAUPUODJUBVBVATDEUCVAADUDSVAUTNHUPUEUTCNUFUGUHSU
      IUJ $.
  $}

  ${
    $d G v $.  $d K v $.
    $( If a k-regular simple graph has only one vertex, then k must be ` 0 ` .
       (Contributed by Alexander van der Vekens, 4-Sep-2018.)  (Revised by AV,
       27-Dec-2020.) $)
    rusgr1vtx $p |- ( ( ( # ` ( Vtx ` G ) ) = 1 /\ G RegUSGraph K )
                      -> K = 0 ) $=
      ( vv cvtx cfv chash c1 wceq crusgr wbr wa cv cnbgr co c0 wral wcel wi cvv
      ex cusgr w3a cc0 nbgr1vtx ralrimivw eqid rusgrpropnb anim12i rusgr1vtxlem
      cxnn0 fvex mpani 3ad2ant3 com13 impd adantr mpd ) ADEZFEGHZABIJZKACLZMNZO
      HZCURPZAUAQZBUJQZVBFEBHCURPZUBZKZBUCHZUSVDUTVHUSVCCURAVAUDUECABURURUFUGUH
      USVIVJRUTUSVDVHVJVHVDUSVJVGVEVDUSVJRZRVFVGVDVKVGVDKZURSQZUSVJADUKVLVMUSKV
      JCVBBURSUITULTUMUNUOUPUQ $.
  $}

  ${
    $d e g p v $.
    $( The class of 0-regular simple graphs is a proper class.  (Contributed by
       AV, 27-Dec-2020.) $)
    rgrusgrprc $p |- { g e. USGraph | A. v e. ( Vtx ` g )
                                    ( ( VtxDeg ` g ) ` v ) = 0 } e/ _V $=
      ( ve vp cv cfv cc0 wceq cusgr crab cvv wnel ciedg c0 wcel cop wa wex eqid
      wb cvtxdg cvtx wral wf copab wss elopab opeq2 vex usgr0eop ax-mp syl6eqel
      f0bi opiedgfv mp2an id syl5eq jca sylbi adantl eleq1 fveq2 eqeq1d anbi12d
      adantr mpbird elrab sylibr exlimivv ssriv griedg0prc crusgr wbr cxnn0 w3a
      prcssprc df-3an bicomi a1i 0xnn0 ibar mpan2 isrusgr0 3bitr4d rabbiia cedg
      usgr0edg0rusgr cuhgr usgruhgr uhgriedg0edg0 syl bitrd eqtri neleq1 mpbir
      ) AEZBEZUAFZFGHAWQUBFZUCZBIJZKLZWQMFZNHZBIJZKLZNNCEZUDZACUEZXEUFXIKLXFDXI
      XEDEZXIOXJWPXGPZHZXHQZCRARXJXEOZXHACXJUGXMXNACXMXJIOZXJMFZNHZQZXNXMXRXKIO
      ZXKMFZNHZQZXHYBXLXHXGNHZYBXGNUMYCXSYAYCXKWPNPZIXGNWPUHWPKOZYDIOAUIZWPKUJU
      KULYCXTXGNYEXGKOXTXGHYFCUIXGWPKKUNUOYCUPUQURUSUTXLXRYBTXHXLXOXSXQYAXJXKIV
      AXLXPXTNXJXKMVBVCVDVEVFXDXQBXJIWQXJHXCXPNWQXJMVBVCVGVHVIUSVJAXICXISVKXIXE
      VPUOXAXEHXBXFTXAWQGVLVMZBIJXEWTYGBIWQIOZYHGVNOZQZWTQZYHYIWTVOZWTYGYKYLTYH
      YLYKYHYIWTVQVRVSYHYIWTYKTVTYJWTWAWBYHYIYGYLTVTAWRWQGWSIVNWSSWRSWCWBWDWEYG
      XDBIYHYGWQWFFNHZXDWQWGYHWQWHOYMXDTWQWIWQWJWKWLWEWMXAXEKWNUKWO $.

    $( The class of 0-regular simple graphs is a proper class.  (Contributed by
       AV, 27-Dec-2020.) $)
    rusgrprc $p |- { g | g RegUSGraph 0 } e/ _V $=
      ( vv cv cc0 crusgr wbr cab cvv wnel cvtxdg cfv wceq cvtx cusgr wcel cxnn0
      wb w3a 0xnn0 eqid wral crab rgrusgrprc wa isrusgr0 mp2an 3ancomb mpbiran2
      vex df-3an 3bitri abbii df-rab eqtr4i neleq1 ax-mp mpbir ) ACZDEFZAGZHIZB
      CURJKZKDLBURMKZUAZANUBZHIZBAUCUTVELVAVFQUTURNOZVDUDZAGVEUSVHAUSVGDPOZVDRZ
      VGVDVIRZVHURHOVIUSVJQAUISBVBURDVCHPVCTVBTUEUFVGVIVDUGVKVHVISVGVDVIUJUHUKU
      LVDANUMUNUTVEHUOUPUQ $.

    $( The class of 0-regular graphs is a proper class.  (Contributed by AV,
       27-Dec-2020.) $)
    rgrprc $p |- { g | g RegGraph 0 } e/ _V $=
      ( cc0 crusgr wbr cab crgr wss cvv rusgrrgr ss2abi rusgrprc prcssprc mp2an
      cv wnel ) ANZBCDZAEZPBFDZAEZGRHOTHOQSAPBIJAKRTLM $.

    $( The class of 0-regular graphs is a proper class.  (Contributed by AV,
       27-Dec-2020.) $)
    rgrprcx $p |- { g | A. v e. ( Vtx ` g )
                        ( ( VtxDeg ` g ) ` v ) = 0 } e/ _V $=
      ( cv cvtxdg cfv cc0 wceq cvtx wral cab cvv wnel crgr rgrprc wb cxnn0 wcel
      wbr 0xnn0 eqid wa vex isrgr mp2an mpbiran bicomi abbii neleq1 ax-mp mpbir
      ) ACBCZDEZEFGAUKHEZIZBJZKLZUKFMRZBJZKLZBNUOURGUPUSOUNUQBUQUNUQFPQZUNSUKKQ
      UTUQUTUNUAOBUBSAULUKFUMKPUMTULTUCUDUEUFUGUOURKUHUIUJ $.
  $}

  ${
    $d g k v $.
    rgrx0ndm.u $e |- R = ( k e. NN0* |-> { g | A. v e. ( Vtx ` g )
                                              ( ( VtxDeg ` g ) ` v ) = k } ) $.
    $( 0 is not in the domain of the potentially alternative definition of the
       sets of k-regular graphs for each extended nonnegative integer k.
       (Contributed by AV, 28-Dec-2020.) $)
    rgrx0ndm $p |- 0 e/ dom R $=
      ( cc0 cdm wnel cxnn0 wcel cv cvtxdg cfv wceq cvtx wral cab cvv wa wn neli
      rgrprcx intnan df-nel crab dmmpt eleq2i eqeq2 ralbidv abbidv eleq1d elrab
      bitri xchbinx mpbir ) FBGZHZFIJZAKCKZLMMZFNZAUSOMZPZCQZRJZSZTVEURVDRACUBU
      AUCUQFUPJZVFFUPUDVGFUTDKZNZAVBPZCQZRJZDIUEZJVFUPVMFDIVKBEUFUGVLVEDFIVHFNZ
      VKVDRVNVJVCCVNVIVAAVBVHFUTUHUIUJUKULUMUNUO $.

    $( The potentially alternatively defined k-regular graphs is not defined
       for k=0.  (Contributed by AV, 28-Dec-2020.) $)
    rgrx0nd $p |- ( R ` 0 ) = (/) $=
      ( cc0 cdm wcel wn cfv c0 wceq rgrx0ndm neli ndmfv ax-mp ) FBGZHIFBJKLFQAB
      CDEMNFBOP $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Walks, paths and cycles
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  A "walk" in a graph is usually defined for simple graphs, multigraphs or even
  pseudographs as "alternating sequence of vertices and edges x0 , e1 , x1 ,
  e2 , ... , e(l) , x(l) where e(i) = x(i-1)x(i), 0<i<=l.", see definition of
  [Bollobas] p. 4, or "A walk (of length k) in a graph is a non-empty
  alternating sequence v_0 e_0 v_1 e_1 ... e_(k-1) v_k of vertices and edges in
  G such that e_i = { v_i , v_i+1 } for all i < k.", see definition of
  [Diestel] p. 10.

  Formalizing these definitions (mainly by representing the indexed vertices
  and edges by functions), a walk is represented by two mappings f from
  { 1 , ... , n } and p from { 0 , ... , n }, where f enumerates the (indices
  of the) edges (e is a third function enumerating the edges within the graph,
  not within the walk), and p enumerates the vertices, see ~ df-wlks .  Hence a
  walk (of length n) is represented by the following sequence:

  p(0) e(f(1)) p(1) e(f(2)) ... p(n-1) e(f(n)) p(n).

  Alternatively, one could define a walk as a function
  ` w : ( 0 ... ( 2 x. n ) ) --> ( ( Edg `` G ) u. ( Vtx `` G ) ) ` such that
  for all ` 0 <_ k <_ n `, ` ( w `` ( 2 x. k ) ) e. ( Vtx `` G ) ` and for all
  ` 0 <_ k <_ ( n - 1 ) `, ` ( w `` ( ( 2 x. k ) + 1 ) ) e. ( Edg `` G ) ` and
  ` { ( w `` ( 2 x. k ) ) , ( w `` ( ( 2 x. k ) + 2 ) ) } `
  ` C_ ( w `` ( ( 2 x. k ) + 1 ) ) `.

  Based on our definition of ` Walks `, the class of all walks, more
  restrictive constructs are defined:

  * ` Trails ` ( ~ df-trls ): A "walk is called a _trail_ if all its edges are
    distinct.", see Definition of [Bollobas] p. 5, i.e., f(i) =/= f(j) if
    i =/= j.

  * ` Paths ` ( ~ df-pths ): A _path_ is a walk whose vertices except the first
    and the last vertex are distinct, i.e., p(i) =/= p(j) if i < j, except
    possibly when i = 0 and j = n.

  * ` SPaths ` (simple paths, ~ df-spths ): A _simple path_ "is a walk with
    distinct vertices.", see Notation of [Bollobas] p. 5, i.e., p(i) =/= p(j)
    if i =/= j.

  * ` ClWalks ` (closed walks, ~ df-clwlks ): A walk whose endvertices coincide
    is called a _closed walk_, i.e.,  p(0) = p(n).

  * ` Circuits ` ( ~ df-crcts ): "A trail whose endvertices coincide (a closed
    trail) is called a _circuit_." (see Definition of [Bollobas] p. 5), i.e.,
    f(i) =/= f(j) if i =/= j and p(0) = p(n).  Equivalently, a circuit is a
    closed walk with distinct edges.

  * ` Cycles ` ( ~ df-cycls ): A path whose endvertices coincide (a closed
    path) is called a _cycle_, i.e., p(i) =/= p(j) if i =/= j, except i = 0 and
    j = n, and p(0) = p(n).  Equivalently, a cycle is a closed walk with
    distinct vertices.

  * ` EulerPaths ` (Eulerian paths, ~ df-eupth ): An _Eulerian path_ is "a
    trail containing all edges [of the graph]" (see definition in [Bollobas]
    p. 16), i.e., f(i) =/= f(j) if  i =/= j and for all edges e(x) there is an
    1 <= i <= n with e(x) = e(f(i)).  Note, however, that an Eulerian path
    needs not be a path.

  * Eulerian circuit: An _Eulerian circuit_ (called _Euler tour_ in the
    definition in [Diestel] p. 22) is "a circuit in a graph containing all the
    edges" (see definition in [Bollobas] p. 16), i.e.,  f(i) =/= f(j) if
    i =/= j, p(0) = p(n) and for all edges e(x) there is an 1 <= i <= n with
    e(x) = e(f(i)).

  Hierarchy of all kinds of walks (apply ~ ssriv and ~ elopabran to the
  mentioned theorems to obtain the following subset relationships, as available
  for ~ clwlkiswlk , see ~ clwlkwlk and ~ clwlkswks ):

  * Trails are walks ( ~ trliswlk ): ` ( Trails `` G ) C_ ( Walks `` G ) `

  * Paths are trails ( ~ pthistrl ): ` ( Paths `` G ) C_ ( Trails `` G ) `

  * Simple paths are paths ( ~ spthispth ):
    ` ( SPaths `` G ) C_ ( Paths `` G ) `

  * Closed walks are walks ( ~ clwlkiswlk ):
    ` ( ClWalks `` G ) C_ ( Walks `` G ) `

  * Circuits are closed walks ( ~ crctisclwlk ):
    ` ( Circuits `` G ) C_ ( ClWalks `` G ) `

  * Circuits are trails ( ~ crctistrl ):
    ` ( Circuits `` G ) C_ ( Trails `` G ) `

  * Cycles are paths ( ~ cyclispth ): ` ( Cycles `` G ) C_ ( Paths `` G ) `

  * Cycles are circuits ( ~ cycliscrct ):
    ` ( Cycles `` G ) C_ ( Circuits `` G ) `

  * (Non trivial) cycles are not simple paths ( ~ cyclnspth ):
    ` ( F =/= (/) -> ( F ( Cycles `` G ) P -> -. F ( SPaths `` G ) P ) ) `

  * Eulerian paths are trails ( ~ eupthistrl ):
    ` ( EulerPaths `` G ) C_ ( Trails `` G ) `

  Often, it is sufficient to refer to a walk by the natural sequence of its
  vertices, i.e omitting its edges in its representation: p(0) p(1) ... p(n-1)
  p(n), see the corresponding remark in [Diestel] p. 6.  The concept of a
  ` Word `, see ~ df-word , is the appropriate way to define such a sequence
  (being finite and starting at index 0) of vertices.  Therefore, it is used in
  definition ~ df-wwlks for ` WWalks `, and the representation of a walk as
  sequence of its vertices is called "walk as word".

  Only for simple pseudographs, however, the edges can be uniquely
  reconstructed from such a representation.  In other cases, there could be
  more than one edge between two adjacent vertices in the walk (in a
  multigraph), or two adjacent vertices could be connected by two different
  hyperedges involving additional vertices (in a hypergraph).


  Based on this definition of ` WWalks `, the class of all walks as word, more
  restrictive constructs are defined analogously to the general definition of a
  walk:

  * ` WWalksN ` (walks of length N as word, ~ df-wwlksn ): n = N

  * ` WSPathsN ` (simple paths of length N as word, ~ df-wspthsn ):
    p(i) =/= p(j) if i =/= j and n = N

  * ` ClWWalks ` (closed walks as word, ~ df-clwwlks ): p(0) = p(n)

  * ` ClWWalksN ` (closed walks of length N as word, ~ df-clwwlksn ):
    p(0) = p(n) and n = N

  Finally, there are a couple of definitions for (special) walks
  ` <. F , P >. ` having fixed endpoints ` A ` and ` B `:

  * Walks with particular endpoints ( ~ df-wlkson ):
    ` F ( A ( WalksOn `` G ) B ) P `

  * Trails with particular endpoints ( ~ df-trlson ):
    ` F ( A ( TrailsOn `` G ) B ) P `

  * Paths with particular endpoints ( ~ df-pthson ):
    ` F ( A ( PathsOn `` G ) B ) P `

  * Simple paths with particular endpoints ( ~ df-spthson ):
    ` F ( A ( SPathsOn `` G ) B ) P `

  * Walks of a fixed length N as words with particular endpoints
    ( ~ df-wwlksnon ): ` F ( A ( WWalksNOn `` G ) B ) ` P

  * Simple paths of a fixed length N as words with particular endpoints
    ( ~ df-wspthsnon ): ` F ( A ( WSPathsNOn `` G ) B ) P `

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Walks
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  A "walk" within a graph is usually defined for simple graphs, multigraphs or
  even pseudographs as "alternating sequence of vertices and edges x0 , e1 ,
  x1 , e2 , ... , e(l) , x(l) where e(i) = x(i-1)x(i), 0<i<=l.", see Definition
  of [Bollobas] p. 4.  This definition requires the edges to connect two
  vertices at most (loops are also allowed: if e(i) is a loop, then
  x(i-1) = x(i)).  For hypergraphs containing hyperedges (i.e. edges connecting
  more than two vertices), however, a more general definition is needed.  Two
  approaches for a definition applicable for arbitrary hypergraphs are used in
  the literature: "walks on the vertex level" and "walks on the edge level"
  (see Aksoy, Joslyn, Marrero, Praggastis, Purvine: "Hypernetwork science via
  high-order hypergraph walks", June 2020,
  ~ https://doi.org/10.1140/epjds/s13688-020-00231-0 ):

  "walks on the edge level": For a positive integer s, an s-walk of length k
  between hyperedges f and g is a sequence of hyperedges, f=e(0), e(1), ... ,
  e(k)=g, where for j=1, ... , k, e(j-1) =/= e(j) and e(j-1) and e(j) have at
  least s vertices in common (according to Aksoy et al.).

  "walks on the vertex level": For a positive integer s, an s-walk of length k
  between vertices a and b is a sequence of vertices, a=v(0), v(1), ... ,
  v(k)=b, where for j=1, ... , k, v(j-1) and v(j) are connected by at least s
  edges (analogous to Aksoy et al.).

  There are two imperfections for the definition for "walks on the edge level":
  one is that a walk of length 1 consists of two edges (or a walk of length 0
  consists of one edge), whereas a walk of length 1 on the vertex level
  consists of two vertices and one edge (or a walk of length 0 consists of one
  vertex and no edge).  The other is that edges, especially loops, can be
  traversed only once (and not repeatedly) because of the condition
  e(j-1) =/= e(j).  The latter is avoided in the definition for ` EdgWalks `,
  see ~ df-ewlks .  To be compatible with the (usual) definition of walks for
  pseudographs, walks also suitable for arbitrary hypergraphs are defined "on
  the vertex level" in the following as ` Walks `, see ~ df-wlks ,
  restricting s to 1.  ~ wlk1ewlk shows that such a 1-walk "on the vertex
  level" induces a 1-walk "on the edge level".

$)

  $c EdgWalks $.
  $c Walks $.
  $c WalksOn $.

  $( Extend class notation with s-walks "on the edge level" (of a
     hypergraph). $)
  cewlks $a class EdgWalks $.

  $( Extend class notation with walks (i.e. 1-walks) (of a hypergraph). $)
  cwlks $a class Walks $.

  $( Extend class notation with walks between two vertices (within a graph). $)
  cwlkson $a class WalksOn $.

  ${
    $d f g i k s $.
    $( Define the set of all s-walks of edges (in a hypergraph) corresponding
       to s-walks "on the edge level" discussed in Aksoy et al.  For an
       extended nonnegative integer s, an s-walk is a sequence of hyperedges,
       e(0), e(1), ... , e(k), where e(j-1) and e(j) have at least s vertices
       in common (for j=1, ... , k).  In contrast to the definition in Aksoy et
       al., ` s = 0 ` (a 0-walk is an arbitrary sequence of hyperedges) and
       ` s = +oo ` (then the number of common vertices of two adjacent
       hyperedges must be infinite) are allowed.  Furthermore, it is not
       forbidden that adjacent hyperedges are equal.  (Contributed by AV,
       4-Jan-2021.) $)
    df-ewlks $a |- EdgWalks = ( g e. _V , s e. NN0*
                     |-> { f | [. ( iEdg ` g ) / i ].
                               ( f e. Word dom i /\ A. k e. ( 1 ..^ ( # ` f ) )
                                s <_ ( # ` ( ( i ` ( f ` ( k - 1 ) ) )
                                             i^i ( i ` ( f ` k ) ) ) ) ) } ) $.
  $}

  ${
    $d f g k p $.
    $( Define the set of all walks (in a hypergraph).  Such walks correspond to
       the s-walks "on the vertex level" (with s = 1), and also to 1-walks "on
       the edge level" (see ~ wlk1walk ) discussed in Aksoy et al.  The
       predicate ` F ( Walks `` G ) P ` can be read as "The pair
       ` <. F , P >. ` represents a walk in a graph ` G ` ", see also ~ iswlk .

       The condition ` { ( p `` k ) , ( p `` ( k + 1 ) ) } `
       ` C_ ( ( iEdg `` g ) `` ( f `` k ) ) ` (hereinafter referred to as C)
       would not be sufficient, because the repetition of a vertex in a walk
       (i.e. ` ( p `` k ) = ( p `` ( k + 1 ) ) ` should be allowed only if
       there is a loop at ` ( p `` k ) ` .  Otherwise, C would be fulfilled by
       each edge containing ` ( p `` k ) ` .

       According to the definition of [Bollobas] p. 4.:  "A walk W in a graph
       is an alternating sequence of vertices and edges x0 , e1 , x1 ,
       e2 , ... , e(l) , x(l) ...", a walk can be represented by two mappings f
       from { 1 , ... , n } and p from { 0 , ... , n }, where f enumerates the
       (indices of the) edges, and p enumerates the vertices.  So the walk is
       represented by the following sequence: p(0) e(f(1)) p(1) e(f(2)) ...
       p(n-1) e(f(n)) p(n).  (Contributed by AV, 30-Dec-2020.) $)
    df-wlks $a |- Walks = ( g e. _V |-> { <. f , p >. |
                     ( f e. Word dom ( iEdg ` g )
                       /\ p : ( 0 ... ( # ` f ) ) --> ( Vtx ` g )
                       /\ A. k e. ( 0 ..^ ( # ` f ) )
                          if- ( ( p ` k ) = ( p ` ( k + 1 ) ) ,
                                ( ( iEdg ` g ) ` ( f ` k ) ) = { ( p ` k ) } ,
                                { ( p ` k ) , ( p ` ( k + 1 ) ) }
                                C_ ( ( iEdg ` g ) ` ( f ` k ) ) ) ) } ) $.

    $d a b f g p $.
    $( Define the collection of walks with particular endpoints (in a
       hypergraph).  The predicate ` F ( A ( WalksOn `` G ) B ) P ` can be read
       as "The pair ` <. F , P >. ` represents a walk from vertex ` A ` to
       vertex ` B ` in a graph ` G ` ", see also ~ iswlkon .  This corresponds
       to the "x0-x(l)-walks", see Definition in [Bollobas] p. 5.  (Contributed
       by Alexander van der Vekens and Mario Carneiro, 4-Oct-2017.)  (Revised
       by AV, 28-Dec-2020.) $)
    df-wlkson $a |- WalksOn = ( g e. _V
                               |-> ( a e. ( Vtx ` g ) , b e. ( Vtx ` g )
                      |-> { <. f , p >. | ( f ( Walks ` g ) p /\ ( p ` 0 ) = a
                                            /\ ( p ` ( # ` f ) ) = b ) } ) ) $.
  $}

  ${
    $d G f g i k s $.  $d S f g i k s $.  $d W f g k s $.
    ewlksfval.i $e |- I = ( iEdg ` G ) $.
    $( The set of s-walks of edges (in a hypergraph).  (Contributed by AV,
       4-Jan-2021.) $)
    ewlksfval $p |- ( ( G e. W /\ S e. NN0* )
                      -> ( G EdgWalks S ) = { f | ( f e. Word dom I
                             /\ A. k e. ( 1 ..^ ( # ` f ) )
                                S <_ ( # ` ( ( I ` ( f ` ( k - 1 ) ) )
                                             i^i ( I ` ( f ` k ) ) ) ) ) } ) $=
      ( vg vs vi wcel wa cv ciedg cfv chash cle cvv wceq adantr cxnn0 cewlks co
      cdm cword c1 cmin cin wbr cfzo wral wsbc cmpt2 df-ewlks fvexd simpr fveq2
      cab a1i eqtrd dmeqd wrdeq syl eleq2d fveq1d ineq12d fveq2d breq12d sbcied
      ralbidv anbi12d abbidv adantl elex crab df-rab fvex dmex wrdexi syl5eqelr
      rabex ovmpt2d eqcomi breq2d ) DFKZAUAKZLZDAUBUCBMZDNOZUDZUEZKZACMZUFUGUCW
      HOZWIOZWMWHOZWIOZUHZPOZQUIZCUFWHPOUJUCZUKZLZBURZWHEUDZUEZKZAWNEOZWPEOZUHZ
      POZQUIZCXAUKZLZBURWGHIDARUAWHJMZUDZUEZKZIMZWNXOOZWPXOOZUHZPOZQUIZCXAUKZLZ
      JHMZNOZULZBURZXDUBRUBHIRUAYJUMSWGBHJCIUNUSYGDSZXSASZLZYJXDSWGYMYIXCBYMYFX
      CJYHRYMYGNUOYMXOYHSZLZXRWLYEXBYOXQWKWHYOXPWJSXQWKSYOXOWIYOXOYHWIYMYNUPYMY
      HWISZYNYKYPYLYGDNUQTTUTZVAXPWJVBVCVDYOYDWTCXAYOXSAYCWSQYMYLYNYKYLUPTYOYBW
      RPYOXTWOYAWQYOWNXOWIYQVEYOWPXOWIYQVEVFVGVHVJVKVIVLVMWEDRKWFDFVNTWEWFUPWGX
      DXBBWKVOZRXBBWKVPYRRKWGXBBWKWJWIDNVQVRVSWAUSVTWBWGXCXNBWGWLXGXBXMWGWKXFWH
      WGWJXESWKXFSWGWIEWIESWGEWIGWCUSZVAWJXEVBVCVDWGWTXLCXAWGWSXKAQWGWRXJPWGWOX
      HWQXIWGWNWIEYSVEWGWPWIEYSVEVFVGWDVJVKVLUT $.

    $d F f k $.  $d I f $.
    $( Conditions for a function (sequence of hyperedges) to be an s-walk of
       edges.  (Contributed by AV, 4-Jan-2021.) $)
    isewlk $p |- ( ( G e. W /\ S e. NN0* /\ F e. U ) -> ( F e. ( G EdgWalks S )
                          <-> ( F e. Word dom I /\ A. k e. ( 1 ..^ ( # ` F ) )
                                S <_ ( # ` ( ( I ` ( F ` ( k - 1 ) ) )
                                             i^i ( I ` ( F ` k ) ) ) ) ) ) ) $=
      ( vf wcel co cv c1 cfv cin chash cle wbr cfzo fveq2d cxnn0 w3a cewlks cdm
      cword cmin wral wa cab wceq ewlksfval 3adant3 eleq2d wb eleq1 fveq2 fveq1
      oveq2d ineq12d breq2d raleqbidv anbi12d elabg 3ad2ant3 bitrd ) EGJZAUAJZD
      BJZUBZDEAUCKZJDILZFUDUEZJZACLZMUFKZVKNZFNZVNVKNZFNZOZPNZQRZCMVKPNZSKZUGZU
      HZIUIZJZDVLJZAVODNZFNZVNDNZFNZOZPNZQRZCMDPNZSKZUGZUHZVIVJWGDVFVGVJWGUJVHA
      ICEFGHUKULUMVHVFWHWTUNVGWFWTIDBVKDUJZVMWIWEWSVKDVLUOXAWBWPCWDWRXAWCWQMSVK
      DPUPURXAWAWOAQXAVTWNPXAVQWKVSWMXAVPWJFVOVKDUQTXAVRWLFVNVKDUQTUSTUTVAVBVCV
      DVE $.

    $( Properties of an s-walk of edges.  (Contributed by AV, 4-Jan-2021.) $)
    ewlkprop $p |- ( F e. ( G EdgWalks S )
                     -> ( ( G e. _V /\ S e. NN0* )
                          /\ F e. Word dom I /\ A. k e. ( 1 ..^ ( # ` F ) )
                                  S <_ ( # ` ( ( I ` ( F ` ( k - 1 ) ) )
                                               i^i ( I ` ( F ` k ) ) ) ) ) ) $=
      ( vg vs vf vi cewlks co wcel cvv cxnn0 wa cv c1 cfv chash cdm cin cle wbr
      cword cmin cfzo wral w3a ciedg wsbc cab df-ewlks elmpt2cl simpr wi isewlk
      wb 3expa biimpd expcom pm2.43a imp 3anass sylanbrc mpdan ) CDAKLZMZDNMZAO
      MZPZVKCEUAUEMZABQZRUFLZCSESVMCSESUBTSUCUDBRCTSUGLUHZUIZGHNOIQZJQZUAUEMHQV
      NVQSVRSVMVQSVRSUBTSUCUDBRVQTSUGLUHPJGQUJSUKIULDAKCIGJBHUMUNVHVKPVKVLVOPZV
      PVHVKUOVHVKVSVKVHVSVKVHVHVSUPVKVHPVHVSVIVJVHVHVSURAVGBCDENFUQUSUTVAVBVCVK
      VLVOVDVEVF $.

    $d I k $.  $d K k $.
    $( The intersection (common vertices) of two adjacent edges in an s-walk of
       edges.  (Contributed by AV, 4-Jan-2021.) $)
    ewlkinedg $p |- ( ( F e. ( G EdgWalks S ) /\ K e. ( 1 ..^ ( # ` F ) ) )
                      -> S <_ ( # ` ( ( I ` ( F ` ( K - 1 ) ) )
                                      i^i ( I ` ( F ` K ) ) ) ) ) $=
      ( vk cewlks co wcel c1 chash cfv cfzo cmin cin cle wbr cvv fveq2d wa wral
      cxnn0 cdm cword cv w3a wi ewlkprop wceq oveq1 fveq2 ineq12d breq2d rspccv
      3ad2ant3 syl imp ) BCAHIJZEKBLMNIZJZAEKOIZBMZDMZEBMZDMZPZLMZQRZUSCSJAUCJU
      AZBDUDUEJZAGUFZKOIZBMZDMZVLBMZDMZPZLMZQRZGUTUBZUGVAVIUHZAGBCDFUIWAVJWBVKV
      TVIGEUTVLEUJZVSVHAQWCVRVGLWCVOVDVQVFWCVNVCDWCVMVBBVLEKOUKTTWCVPVEDVLEBULT
      UMTUNUOUPUQUR $.
  $}

  ${
    $d F k $.  $d G k $.  $d S k $.  $d T k $.
    $( An s-walk of edges is also a t-walk of edges if t <_ s.  (Contributed by
       AV, 4-Jan-2021.) $)
    ewlkle $p |- ( ( F e. ( G EdgWalks S ) /\ T e. NN0* /\ T <_ S )
                     -> F e. ( G EdgWalks T ) ) $=
      ( vk cewlks co wcel cxnn0 cle wbr cvv wa cfv c1 chash wral wi cxr xnn0xr
      ciedg cdm cword cmin cin cfzo w3a eqid ewlkprop simpl2 adantl adantr fvex
      cv inex1 hashxrcl mp1i xrletr syl3anc exp4b imp32 ralimdv com23 a1d 3imp1
      ex wb simpl1l simprl isewlk mpbir2and syl 3impib ) CDAFGHZBIHZBAJKZCDBFGH
      ZVNDLHZAIHZMZCDUANZUBUCZHZAEUNZOUDGCNZWANZWDCNWANZUEZPNZJKZEOCPNUFGZQZUGZ
      VOVPMZVQRAECDWAWAUHZUIWMWNVQWMWNMZVQWCBWIJKZEWKQZVTWCWLWNUJZVTWCWLWNWRVTW
      LWNWRRRWCVTWNWLWRVTWNWLWRRVTWNMWJWQEWKVTVOVPWJWQRZVSVOVPWTRRVRVSVOVPWJWQV
      SVOMZBSHZASHZWISHZVPWJMWQRVOXBVSBTUKVSXCVOATULWHLHXDXAWFWGWEWAUMUOWHLUPUQ
      BAWIURUSUTUKVAVBVFVCVDVEWPVRVOWCVQWCWRMVGVRVSWCWLWNVHWMVOVPVIWSBWBECDWALW
      OVJUSVKVFVLVM $.

    $( In a pseudograph, there is no s-walk of edges of length greater than 1
       with s>2.  (Contributed by AV, 4-Jan-2021.) $)
    upgrewlkle2 $p |- ( ( G e. UPGraph /\ F e. ( G EdgWalks S )
                        /\ 1 < ( # ` F ) ) -> S <_ 2 ) $=
      ( vk co wcel c1 chash cfv wbr c2 cle cvv wa w3a wi ax-mp syl cxr a1i cmin
      cewlks cupgr clt cxnn0 ciedg cdm cword cin cfzo wral eqid ewlkprop hashin
      cv fvex wfn simpl3 cuhgr upgruhgr uhgrfun funfn sylib 3ad2ant3 adantr cc0
      simpl cfz elfzofz fz1fzo0m1 adantl jca wrdsymbcl 3ad2antl2 upgrle syl3anc
      wfun cvtx inex1 hashxrcl 2re rexri 3pm3.2i xrletr mpan2d expcomd 3ad2ant1
      mpi xnn0xr mpd ralimdva 3exp com34 3imp cn0 lencl c0 wceq wn cz 1zzd nn0z
      wne wb fzon bicomd cr nn0re 1red lenlt bitrd biimpd necon2ad impcom rspn0
      ex com23 com13 3ad2ant2 syld 3imp21 ) BCAUBEFZCUCFZGBHIZUDJZAKLJZYBCMFZAU
      EFZNZBCUFIZUGZUHFZADUOZGUAEZBIZYJIZYMBIYJIZUIZHIZLJZDGYDUJEZUKZOZYCYEYFPZ
      PADBCYJYJULZUMUUCYCYFDUUAUKZUUDYIYLUUBYCUUFPYIYLYCUUBUUFYIYLYCUUBUUFPYIYL
      YCOZYTYFDUUAUUGYMUUAFZNZYSKLJZYTYFPZUUIYSYPHIZLJZUUJYPMFZUUMYOYJUPZYPYQMU
      NQUUIUUMUULKLJZUUJUUIYCYJYKUQZYOYKFZUUPYIYLYCUUHURUUGUUQUUHYCYIUUQYLYCYJV
      QZUUQYCCUSFUUSCUTYJCUUEVARYJVBVCVDVEYLYIUUHUURYCYLUUHNZYLYNVFYDUJEFZNUURU
      UTYLUVAYLUUHVGUUHUVAYLUUHYMGYDVHEFUVAYMGYDVIYMYDVJRVKVLYNYKBVMRVNYKYJYOCC
      VRIZUVBULUUEVOVPUUIYSSFZUULSFZKSFZOZUUMUUPNUUJPUVFUUIUVCUVDUVEYRMFUVCYPYQ
      UUOVSYRMVTQZUUNUVDUUOYPMVTQKWAWBZWCTYSUULKWDRWEWHUUGUUJUUKPZUUHYIYLUVIYCY
      HUVIYGYHYTUUJYFYHASFUVCUVEYTUUJNYFPAWIUVCYHUVGTUVEYHUVHTAYSKWDVPWFVKWGVEW
      JWKWLWMWNYLYIUUFUUDPZUUBYLYDWOFZUVJYKBWPUVKUVJPYLYEUUFUVKYFYEUVKUUFYFYEUV
      KUUFYFPZYEUVKNUUAWQXCZUVLUVKYEUVMUVKYEUUAWQUVKUUAWQWRZYEWSZUVKUVNYDGLJZUV
      OUVKUVPUVNUVKGWTFZYDWTFZNUVPUVNXDUVKUVQUVRUVKXAYDXBVLGYDXERXFUVKYDXGFZGXG
      FZNUVPUVOXDUVKUVSUVTYDXHUVKXIVLYDGXJRXKXLXMXNYFDUUAXORXPXQXRTWJXSXTRYA $.
  $}

  $( Lemma 1 for walks to substitute the index of the condition for vertices
     and edges in a walk.  (Contributed by AV, 23-Apr-2021.) $)
  wkslem1 $p |- ( A = B -> ( if- ( ( P ` A ) = ( P ` ( A + 1 ) ) ,
                                    ( I ` ( F ` A ) ) = { ( P ` A ) } ,
                                    { ( P ` A ) , ( P ` ( A + 1 ) ) }
                                    C_ ( I ` ( F ` A ) ) )
                          <-> if- ( ( P ` B ) = ( P ` ( B + 1 ) ) ,
                                    ( I ` ( F ` B ) ) = { ( P ` B ) } ,
                                    { ( P ` B ) , ( P ` ( B + 1 ) ) }
                                    C_ ( I ` ( F ` B ) ) ) ) ) $=
    ( wceq cfv c1 caddc co csn cpr wss fveq2 oveq1 fveq2d eqeq12d sneqd preq12d
    sseq12d ifpbi123d ) ABFZACGZAHIJZCGZFADGZEGZUCKZFUCUELZUGMBCGZBHIJZCGZFBDGZ
    EGZUJKZFUJULLZUNMUBUCUJUEULABCNZUBUDUKCABHIOPZQUBUGUNUHUOUBUFUMEABDNPZUBUCU
    JUQRQUBUIUPUGUNUBUCUJUEULUQURSUSTUA $.

  $( Lemma 2 for walks to substitute the index of the condition for vertices
     and edges in a walk.  (Contributed by AV, 23-Apr-2021.) $)
  wkslem2 $p |- ( ( A = B /\ ( A + 1 ) = C )
                         -> ( if- ( ( P ` A ) = ( P ` ( A + 1 ) ) ,
                                    ( I ` ( F ` A ) ) = { ( P ` A ) } ,
                                    { ( P ` A ) , ( P ` ( A + 1 ) ) }
                                    C_ ( I ` ( F ` A ) ) )
                          <-> if- ( ( P ` B ) = ( P ` C ) ,
                                    ( I ` ( F ` B ) ) = { ( P ` B ) } ,
                                    { ( P ` B ) , ( P ` C ) }
                                    C_ ( I ` ( F ` B ) ) ) ) ) $=
    ( wceq c1 caddc co wa cfv csn cpr wss fveq2 adantr adantl eqeq12d wb fveq2d
    sneqd preq12d sseq12d ifpbi123d ) ABGZAHIJZCGZKZADLZUGDLZGAELZFLZUJMZGZUJUK
    NZUMOBDLZCDLZGBELZFLZUQMZGZUQURNZUTOUIUJUQUKURUFUJUQGUHABDPZQZUHUKURGUFUGCD
    PRZSUFUOVBTUHUFUMUTUNVAUFULUSFABEPUAZUFUJUQVDUBSQUIUPVCUMUTUIUJUQUKURVEVFUC
    UFUMUTGUHVGQUDUE $.

  ${
    $d G f g k p $.  $d I f g p $.  $d V g p $.  $d W f g $.
    wksfval.v $e |- V = ( Vtx ` G ) $.
    wksfval.i $e |- I = ( iEdg ` G ) $.
    $( The set of walks (in an undirected graph).  (Contributed by AV,
       30-Dec-2020.) $)
    wksfval $p |- ( G e. W -> ( Walks ` G ) = { <. f , p >. |
             ( f e. Word dom I /\ p : ( 0 ... ( # ` f ) ) --> V
               /\ A. k e. ( 0 ..^ ( # ` f ) )
                  if- ( ( p ` k ) = ( p ` ( k + 1 ) ) ,
                                ( I ` ( f ` k ) ) = { ( p ` k ) } ,
                                { ( p ` k ) , ( p ` ( k + 1 ) ) }
                                C_ ( I ` ( f ` k ) ) ) ) } ) $=
      ( vg wcel cv ciedg cfv cc0 co cvtx wceq wss cvv cdm cword chash cfz wf c1
      caddc csn cpr wif cfzo wral w3a copab cwlks df-wlks a1i fveq2 dmeqd wrdeq
      cmpt syl6eqr eleq2d feq3d biidd fveq1d eqeq1d ifpbi123d ralbidv 3anbi123d
      syl sseq2d opabbidv adantl elex wa 3anass opabbii fvex eqeltri wrdexg cab
      dmex mp1i ovex mapex sylancr simpl ss2abi ssexd opabex3d syl5eqel fvmptd
      ) CFKZJCALZJLZMNZUAZUBZKZOWOUCNZUDPZWPQNZGLZUEZBLZXDNZXFUFUGPXDNZRZXFWONZ
      WQNZXGUHZRZXGXHUIZXKSZUJZBOXAUKPZULZUMZAGUNZWODUAZUBZKZXBEXDUEZXIXJDNZXLR
      ZXNYESZUJZBXQULZUMZAGUNZTUOTUOJTXTVARWNAJBGUPUQWPCRZXTYKRWNYLXSYJAGYLWTYC
      XEYDXRYIYLWSYBWOYLWRYARWSYBRYLWQDYLWQCMNZDWPCMURIVBZUSWRYAUTVKVCYLXCEXDXB
      YLXCCQNZEWPCQURHVBVDYLXPYHBXQYLXIXMXOXIYFYGYLXIVEYLXKYEXLYLXJWQDYNVFZVGYL
      XKYEXNYPVLVHVIVJVMVNCFVOWNYKYCYDYIVPZVPZAGUNTYJYRAGYCYDYIVQVRWNYQAGYBYATK
      YBTKWNDDYMTICMVSVTWCYATWAWDWNYCVPZYQGWBZYDGWBZTYSXBTKETKZUUATKOXAUDWEUUBY
      SEYOTHCQVSVTUQXBETTGWFWGYTUUASYSYQYDGYDYIWHWIUQWJWKWLWM $.

    $d F f k p $.  $d P f k p $.  $d V f $.
    $( Properties of a pair of functions to be a walk.  (Contributed by AV,
       30-Dec-2020.) $)
    iswlk $p |- ( ( G e. W /\ F e. U /\ P e. Z ) -> ( F ( Walks ` G ) P
                         <-> ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V
                               /\ A. k e. ( 0 ..^ ( # ` F ) )
                                  if- ( ( P ` k ) = ( P ` ( k + 1 ) ) ,
                                        ( I ` ( F ` k ) ) = { ( P ` k ) } ,
                                        { ( P ` k ) , ( P ` ( k + 1 ) ) }
                                        C_ ( I ` ( F ` k ) ) ) ) ) ) $=
      ( vf vp wcel w3a cfv cc0 co wceq adantr cwlks wbr cop cdm cword chash cfz
      cv wf caddc csn cpr wss wif cfzo wral copab df-br wksfval 3ad2ant1 eleq2d
      c1 syl5bb wb wa eleq1 simpr fveq2 oveq2d feq12d fveq1 adantl fveq2d sneqd
      eqeq12d eqeqan12d preq12d sseq12d ifpbi123d raleqbidv opelopabga 3adant1
      3anbi123d bitrd ) EHNZDBNZAINZOZDAEUAPZUBZDAUCZLUHZFUDUEZNZQWLUFPZUGRZGMU
      HZUIZCUHZWQPZWSVBUJRZWQPZSZWSWLPZFPZWTUKZSZWTXBULZXEUMZUNZCQWOUORZUPZOZLM
      UQZNZDWMNZQDUFPZUGRZGAUIZWSAPZXAAPZSZWSDPZFPZXTUKZSZXTYAULZYDUMZUNZCQXQUO
      RZUPZOZWJWKWINWHXODAWIURWHWIXNWKWEWFWIXNSWGLCEFGHMJKUSUTVAVCWFWGXOYLVDWEX
      MYLLMDABIWLDSZWQASZVEZWNXPWRXSXLYKYMWNXPVDYNWLDWMVFTYOWPXRGWQAYMYNVGYMWPX
      RSYNYMWOXQQUGWLDUFVHZVITVJYOXJYICXKYJYMXKYJSYNYMWOXQQUOYPVITYOXCXGXIYBYFY
      HYNXCYBVDYMYNWTXTXBYAWSWQAVKZXAWQAVKZVOVLYMYNXEYDXFYEYMXDYCFWSWLDVKVMZYNW
      TXTYQVNVPYOXHYGXEYDYNXHYGSYMYNWTXTXBYAYQYRVQVLYMXEYDSYNYSTVRVSVTWCWAWBWD
      $.

    $( Properties of a walk.  (Contributed by AV, 5-Nov-2021.) $)
    wlkprop $p |- ( F ( Walks ` G ) P
                    -> ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V
                               /\ A. k e. ( 0 ..^ ( # ` F ) )
                                  if- ( ( P ` k ) = ( P ` ( k + 1 ) ) ,
                                        ( I ` ( F ` k ) ) = { ( P ` k ) } ,
                                        { ( P ` k ) , ( P ` ( k + 1 ) ) }
                                        C_ ( I ` ( F ` k ) ) ) ) ) $=
      ( vf vp cvv wcel w3a cwlks cfv cc0 chash co cv wceq wbr cword wf c1 caddc
      cdm cfz csn cpr wss wif cfzo wral wksfval brfvopab iswlk biimpd mpcom ) D
      KLCKLAKLMZCADNOUAZCEUFUBZLPCQOZUGRFAUCBSZAOZVCUDUERZAOZTVCCOEOZVDUHTVDVFU
      IVGUJUKBPVBULRUMMZISZVALPVIQOZUGRFJSZUCVCVKOZVEVKOZTVCVIOEOZVLUHTVLVMUIVN
      UJUKBPVJULRUMMIJCANDIBDEFKJGHUNUOUSUTVHAKBCDEFKKGHUPUQUR $.
  $}

  ${
    $d G f k p $.
    $( The classes involved in a walk are sets.  (Contributed by Alexander van
       der Vekens, 31-Oct-2017.)  (Revised by AV, 3-Feb-2021.) $)
    wlkv $p |- ( F ( Walks ` G ) P -> ( G e. _V /\ F e. _V /\ P e. _V ) ) $=
      ( vf vp vk cv ciedg cfv cdm cword wcel cc0 chash cfz co cvtx wf wceq eqid
      c1 caddc csn cpr wss wif cfzo wral w3a cwlks cvv wksfval brfvopab ) DGZCH
      IZJKLMUNNIZOPCQIZEGZRFGZURIZUSUAUBPURIZSUSUNIUOIZUTUCSUTVAUDVBUEUFFMUPUGP
      UHUIDEBAUJCDFCUOUQUKEUQTUOTULUM $.

    $d F k $.  $d P k $.
    iswlkg.v $e |- V = ( Vtx ` G ) $.
    iswlkg.i $e |- I = ( iEdg ` G ) $.
    $( Generalisation of ~ iswlk :  Conditions for two classes to represent a
       walk.  (Contributed by Alexander van der Vekens, 23-Jun-2018.)  (Revised
       by AV, 1-Jan-2021.) $)
    iswlkg $p |- ( G e. W -> ( F ( Walks ` G ) P
                         <-> ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V
                               /\ A. k e. ( 0 ..^ ( # ` F ) )
                                  if- ( ( P ` k ) = ( P ` ( k + 1 ) ) ,
                                        ( I ` ( F ` k ) ) = { ( P ` k ) } ,
                                        { ( P ` k ) , ( P ` ( k + 1 ) ) }
                                        C_ ( I ` ( F ` k ) ) ) ) ) ) $=
      ( wcel cvv cfv cc0 cfz co wceq w3a wi a1i cvtx wa cwlks cword chash wf cv
      wbr cdm c1 caddc csn cpr wss wif cfzo wral wlkv 3simpc syl elex ovex fvex
      cpm eqeltri fpm elexd anim12i 3adant3 wb iswlk 3expib pm5.21ndd ) DGJZCKJ
      ZAKJZUAZCADUBLUGZCEUHUCZJZMCUDLZNOZFAUEZBUFZALZWCUIUJOALZPWCCLELZWDUKPWDW
      EULWFUMUNBMVTUOOUPZQZVQVPRVMVQDKJZVNVOQVPACDUQWIVNVOURUSSWHVPRVMVSWBVPWGV
      SVNWBVOCVRUTWBAFWAVCOWAFAMVTNVAFDTLKHDTVBVDVEVFVGVHSVMVNVOVQWHVIAKBCDEFGK
      HIVJVKVL $.
  $}

  ${
    $d F k $.  $d G k $.  $d P k $.
    wlkf.i $e |- I = ( iEdg ` G ) $.
    $( The mapping enumerating the (indices of the) edges of a walk is a word
       over the indices of the edges of the graph.  (Contributed by AV,
       5-Apr-2021.) $)
    wlkf $p |- ( F ( Walks ` G ) P -> F e. Word dom I ) $=
      ( vk cwlks cfv wbr cdm cword wcel cc0 chash cfz co cvtx wf cv wceq c1 csn
      caddc cpr wss wif cfzo wral eqid wlkprop simp1d ) BACGHIBDJKLMBNHZOPCQHZA
      RFSZAHZUNUAUCPAHZTUNBHDHZUOUBTUOUPUDUQUEUFFMULUGPUHAFBCDUMUMUIEUJUK $.
  $}

  $( A walk has length ` # ( F ) ` , which is an integer.  Formerly proven for
     an Eulerian path, see ~ eupthcl .  (Contributed by Mario Carneiro,
     12-Mar-2015.)  (Revised by AV, 18-Feb-2021.) $)
  wlkcl $p |- ( F ( Walks ` G ) P -> ( # ` F ) e. NN0 ) $=
    ( cwlks cfv wbr ciedg cdm cword wcel chash cn0 eqid wlkf lencl syl ) BACDEF
    BCGEZHZIJBKELJABCQQMNRBOP $.

  ${
    $d F k $.  $d G k $.  $d P k $.
    wlkp.v $e |- V = ( Vtx ` G ) $.
    $( The mapping enumerating the vertices of a walk is a function.
       (Contributed by AV, 5-Apr-2021.) $)
    wlkp $p |- ( F ( Walks ` G ) P -> P : ( 0 ... ( # ` F ) ) --> V ) $=
      ( vk cwlks cfv wbr ciedg cdm cword wcel cc0 chash cfz co wf cv wceq caddc
      c1 csn cpr wss wif cfzo wral eqid wlkprop simp2d ) BACGHIBCJHZKLMNBOHZPQD
      ARFSZAHZUNUBUAQAHZTUNBHULHZUOUCTUOUPUDUQUEUFFNUMUGQUHAFBCULDEULUIUJUK $.

    $( The sequence of vertices of a walk is a word over the set of vertices.
       (Contributed by AV, 27-Jan-2021.) $)
    wlkpwrd $p |- ( F ( Walks ` G ) P -> P e. Word V ) $=
      ( cwlks cfv wbr cc0 chash cfz co wf cword wcel wlkp ffz0iswrd syl ) BACFG
      HIBJGZKLDAMADNOABCDEPDSAQR $.
  $}

  $( The number of vertices of a walk (in an undirected graph) is the number of
     its edges plus 1.  (Contributed by Alexander van der Vekens, 29-Jun-2018.)
     (Revised by AV, 1-May-2021.) $)
  wlklenvp1 $p |- ( F ( Walks ` G ) P -> ( # ` P ) = ( ( # ` F ) + 1 ) ) $=
    ( cwlks cfv wbr chash cn0 wcel cc0 co cvtx wf c1 caddc wceq wlkcl eqid wlkp
    cfz ffz0hash syl2anc ) BACDEFBGEZHIJUCTKCLEZAMAGEUCNOKPABCQABCUDUDRSUDAUCUA
    UB $.

  ${
    $d G f p $.
    $( The class of walks is a set.  (Contributed by AV, 15-Jan-2021.) $)
    wksv $p |- { <. f , p >. | f ( Walks ` G ) p } e. _V $=
      ( cvtx cfv cvv wcel cwlks wbr copab fvex ciedg cdm cword dmex wrdexg mp1i
      cv eqid adantl wlkf wlkpwrd opabex2 ax-mp ) BDEZFGZARZCRZBHEIZACJFGBDKUFU
      IACBLEZMZNZUENZFFUKFGULFGUFUJBLKOUKFPQUEFPUIUGULGUFUHUGBUJUJSUATUIUHUMGUF
      UHUGBUEUESUBTUCUD $.
  $}

  $( The sequence of vertices of a walk cannot be empty, i.e. a walk always
     consists of at least one vertex.  (Contributed by Alexander van der
     Vekens, 19-Jul-2018.)  (Revised by AV, 2-Jan-2021.) $)
  wlkn0 $p |- ( F ( Walks ` G ) P -> P =/= (/) ) $=
    ( cwlks cfv wbr c0 wne cdm cc0 chash cfz co cvtx wf wceq eqid wlkp syl wcel
    fdm eqcomd cn0 wlkcl cuz elnn0uz fzn0 sylbb2 eqnetrrd wrel reldm0 necon3bid
    wb frel mpbird ) BACDEFZAGHZAIZGHZUPJBKEZLMZURGUPVACNEZAOZVAURPABCVBVBQRZVC
    URVAVAVBAUAUBSUPUTUCTZVAGHZABCUDVEUTJUEETVFUTUFJUTUGUHSUIUPAUJZUQUSUMUPVCVG
    VDVAVBAUNSVGAGURGAUKULSUO $.

  $( The number of edges of a walk is the number of its vertices minus 1.
     (Contributed by Alexander van der Vekens, 1-Jul-2018.)  (Revised by AV,
     2-Jan-2021.) $)
  wlklenvm1 $p |- ( F ( Walks ` G ) P -> ( # ` F ) = ( ( # ` P ) - 1 ) ) $=
    ( cwlks cfv wbr chash c1 caddc co wceq cmin wlklenvp1 wa oveq1 wlkcl nn0cnd
    cc wcel pncan1 syl sylan9eqr eqcomd mpdan ) BACDEFZAGEZBGEZHIJZKZUGUFHLJZKA
    BCMUEUINUJUGUIUEUJUHHLJZUGUFUHHLOUEUGRSUKUGKUEUGABCPQUGTUAUBUCUD $.

  $( Lemma for ~ wlkvtxeledg :  Two adjacent (not necessarily different)
     vertices ` A ` and ` B ` in a walk are incident with an edge ` E ` .
     (Contributed by AV, 4-Apr-2021.)  (Revised by AV, 5-Nov-2021.) $)
  ifpsnprss $p |- ( if- ( A = B , E = { A } , { A , B } C_ E )
                    -> { A , B } C_ E ) $=
    ( wceq csn cpr wss ssid a1i preq2 dfsn2 syl6eqr eqcoms adantr simpr 3sstr4d
    wa 1fpid3 ) ABDZCAEZDZABFZCGSUAQZTTUBCTTGUCTHISUBTDZUAUDBABADUBAAFTBAAJAKLM
    NSUAOPR $.

  ${
    $d G k $.  $d F k $.  $d P k $.
    wlkvtxeledg.i $e |- I = ( iEdg ` G ) $.
    $( Each pair of adjacent vertices in a walk is a subset of an edge.
       (Contributed by AV, 28-Jan-2021.)  (Proof shortened by AV,
       4-Apr-2021.) $)
    wlkvtxeledg $p |- ( F ( Walks ` G ) P -> A. k e. ( 0 ..^ ( # ` F ) )
                    { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) $=
      ( cvv wcel w3a cwlks cfv wbr cv c1 caddc co cpr cc0 wral wceq chash cword
      wss cfzo wlkv cdm cfz cvtx csn wif iswlk ifpsnprss ralimi 3ad2ant3 syl6bi
      wf eqid mpcom ) DGHCGHAGHIZCADJKLZBMZAKZVANOPAKZQVACKEKZUCZBRCUAKZUDPZSZA
      CDUEUSUTCEUFUBHZRVFUGPDUHKZAUPZVBVCTVDVBUITVEUJZBVGSZIVHAGBCDEVJGGVJUQFUK
      VMVIVHVKVLVEBVGVBVCVDULUMUNUOUR $.

    $d F e $.  $d G e $.  $d I e k $.  $d P e $.
    $( The vertices of a walk are connected by indexed edges.  (Contributed by
       Alexander van der Vekens, 22-Jul-2018.)  (Revised by AV, 2-Jan-2021.)
       (Proof shortened by AV, 4-Apr-2021.) $)
    wlkvtxiedg $p |- ( F ( Walks ` G ) P
                       -> A. k e. ( 0 ..^ ( # ` F ) ) E. e e. ran I
                          { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ e ) $=
      ( cwlks cfv wbr cv c1 co wss wral wcel wa c0 wne adantl caddc cpr cc0 crn
      chash cfzo wrex wlkvtxeledg fvex prnz ssn0 mpan2 fvn0fvelrn wceq wb sseq2
      syl simpr rspcedvd ex ralimdva mpd ) DAEHIJZCKZAIZVDLUAMAIZUBZVDDIZFIZNZC
      UCDUEIUFMZOVGBKZNZBFUDZUGZCVKOACDEFGUHVCVJVOCVKVCVDVKPQZVJVOVPVJQZVMVJBVI
      VNVQVIRSZVIVNPVJVRVPVJVGRSVRVEVFVDAUIUJVGVIUKULTFVHUMUQVLVIUNVMVJUOVQVLVI
      VGUPTVPVJURUSUTVAVB $.
  $}

  ${
    $d f g k p $.
    $( The set ` ( Walks `` G ) ` of all walks on ` G ` is a set of pairs by
       our definition of a walk, and so is a relation.  (Contributed by
       Alexander van der Vekens, 30-Jun-2018.)  (Revised by AV,
       19-Feb-2021.) $)
    relwlk $p |- Rel ( Walks ` G ) $=
      ( vf vg vp vk cv ciedg cfv cdm cword wcel cc0 chash co cvtx wf caddc wceq
      cfz c1 csn cpr wss wif cfzo wral w3a cvv cwlks df-wlks relmptopab ) BFZCF
      ZGHZIJKLULMHZSNUMOHDFZPEFZUPHZUQTQNUPHZRUQULHUNHZURUARURUSUBUTUCUDELUOUEN
      UFUGCBDUHAUIBCEDUJUK $.
  $}

  $( If there is at least one walk in the graph, all walks are in the universal
     class of ordered pairs.  (Contributed by AV, 2-Jan-2021.) $)
  wlkvv $p |- ( ( 1st ` W ) ( Walks ` G ) ( 2nd ` W )
                 -> W e. ( _V X. _V ) ) $=
    ( c1st cfv c2nd cwlks wbr c0 wne cvv cxp wcel wlkn0 2ndnpr necon1ai syl ) B
    CDZBEDZAFDGRHIBJJKLZRQAMSRHBNOP $.

  $( A walk is an ordered pair.  (Contributed by Alexander van der Vekens,
     30-Jun-2018.)  (Revised by AV, 1-Jan-2021.) $)
  wlkop $p |- ( W e. ( Walks ` G )
                 -> W = <. ( 1st ` W ) , ( 2nd ` W ) >. ) $=
    ( cwlks cfv wrel wcel c1st c2nd cop wceq relwlk 1st2nd mpan ) ACDZEBNFBBGDB
    HDIJAKBNLM $.

  $( A walk as class with two components.  (Contributed by Alexander van der
     Vekens, 22-Jul-2018.)  (Revised by AV, 2-Jan-2021.) $)
  wlkcpr $p |- ( W e. ( Walks ` G )
                 <-> ( 1st ` W ) ( Walks ` G ) ( 2nd ` W ) ) $=
    ( cwlks cfv wcel c1st c2nd cop wceq wbr wlkop cvv wlkvv 1st2ndb sylib eleq1
    cxp df-br syl6bbr pm5.21nii ) BACDZEZBBFDZBGDZHZIZUCUDUAJZABKUGBLLQEUFABMBN
    OUFUBUEUAEUGBUEUAPUCUDUARST $.

  ${
    $d G f p $.  $d W f p $.
    $( If there is a walk ` W ` there is a pair of functions representing this
       walk.  (Contributed by Alexander van der Vekens, 22-Jul-2018.) $)
    wlk2f $p |- ( W e. ( Walks ` G ) -> E. f E. p f ( Walks ` G ) p ) $=
      ( cwlks cfv wcel c1st c2nd wbr cv wex wlkcpr fvex breq12 spc2ev sylbi ) C
      BEFZGCHFZCIFZRJZAKZDKZRJZDLALBCMUDUAADSTCHNCINUBSUCTROPQ $.
  $}

  ${
    $d F k $.  $d G k $.  $d P k $.
    wlkcomp.v $e |- V = ( Vtx ` G ) $.
    wlkcomp.i $e |- I = ( iEdg ` G ) $.
    wlkcomp.1 $e |- F = ( 1st ` W ) $.
    wlkcomp.2 $e |- P = ( 2nd ` W ) $.
    $( A walk expressed by properties of its components.  (Contributed by
       Alexander van der Vekens, 23-Jun-2018.)  (Revised by AV, 1-Jan-2021.) $)
    wlkcomp $p |- ( ( G e. U /\ W e. ( S X. T ) ) -> ( W e. ( Walks ` G )
                         <-> ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V
                               /\ A. k e. ( 0 ..^ ( # ` F ) )
                                  if- ( ( P ` k ) = ( P ` ( k + 1 ) ) ,
                                        ( I ` ( F ` k ) ) = { ( P ` k ) } ,
                                        { ( P ` k ) , ( P ` ( k + 1 ) ) }
                                        C_ ( I ` ( F ` k ) ) ) ) ) ) $=
      ( wcel cfv cc0 co wceq eqcomi cxp cwlks wbr cdm cword chash cfz wf cv csn
      c1 caddc cpr wss wif cfzo wral w3a c1st c2nd wa pm3.2i eqop mpbiri eleq1d
      cop df-br syl6bbr iswlkg sylan9bbr ) JBCUAOZJGUBPZOZFAVLUCZGDOFHUDUEOQFUF
      PZUGRIAUHEUIZAPZVPUKULRAPZSVPFPHPZVQUJSVQVRUMVSUNUOEQVOUPRUQURVKVMFAVFZVL
      OVNVKJVTVLVKJVTSJUSPZFSZJUTPZASZVAWBWDFWAMTAWCNTVBJFABCVCVDVEFAVLVGVHAEFG
      HIDKLVIVJ $.

    $( Implications for the properties of the components of a walk.
       (Contributed by Alexander van der Vekens, 23-Jun-2018.)  (Revised by AV,
       2-Jan-2021.) $)
    wlkcompim $p |- ( W e. ( Walks ` G ) -> ( F e. Word dom I
                /\ P : ( 0 ... ( # ` F ) ) --> V /\ A. k e. ( 0 ..^ ( # ` F ) )
                                  if- ( ( P ` k ) = ( P ` ( k + 1 ) ) ,
                                        ( I ` ( F ` k ) ) = { ( P ` k ) } ,
                                        { ( P ` k ) , ( P ` ( k + 1 ) ) }
                                        C_ ( I ` ( F ` k ) ) ) ) ) $=
      ( cwlks cfv wcel cvv cxp cdm cc0 co wceq cword chash cfz wf cv c1 csn cpr
      caddc wss wif cfzo wral w3a elfvex c1st wbr wlkcpr wlkvv sylbi wa wlkcomp
      c2nd biimpcd mp2and ) GDLMZNZDONZGOOPNZCEQUANRCUBMZUCSFAUDBUEZAMZVKUFUISA
      MZTVKCMEMZVLUGTVLVMUHVNUJUKBRVJULSUMUNZGDLUOVGGUPMGVCMVFUQVIDGURDGUSUTVHV
      IVAVGVOAOOOBCDEFGHIJKVBVDVE $.

    $( The components of a walk are words/functions over a zero based range of
       integers.  (Contributed by Alexander van der Vekens, 23-Jun-2018.)
       (Revised by AV, 2-Jan-2021.) $)
    wlkelwrd $p |- ( W e. ( Walks ` G ) -> ( F e. Word dom I
                                        /\ P : ( 0 ... ( # ` F ) ) --> V ) ) $=
      ( vk cwlks cfv wcel cdm cword cc0 chash co wceq cfz wf cv csn cpr wss wif
      c1 caddc cfzo wral w3a wa wlkcompim 3simpa syl ) FCLMNBDOPNZQBRMZUASEAUBZ
      KUCZAMZUTUHUISAMZTUTBMDMZVAUDTVAVBUEVCUFUGKQURUJSUKZULUQUSUMAKBCDEFGHIJUN
      UQUSVDUOUP $.
  $}

  ${
    $d A x $.  $d B x $.  $d N x $.
    $( Conditions for two walks (within the same graph) being the same.
       (Contributed by AV, 1-Jul-2018.)  (Revised by AV, 16-May-2019.)
       (Revised by AV, 14-Apr-2021.) $)
    wlkeq $p |- ( ( A e. ( Walks ` G ) /\ B e. ( Walks ` G )
          /\ N = ( # ` ( 1st ` A ) ) ) -> ( A = B <-> ( N = ( # ` ( 1st ` B ) )
      /\ A. x e. ( 0 ..^ N ) ( ( 1st ` A ) ` x ) = ( ( 1st ` B ) ` x )
      /\ A. x e. ( 0 ... N ) ( ( 2nd ` A ) ` x ) = ( ( 2nd ` B ) ` x ) ) ) ) $=
      ( cfv wcel chash wceq w3a wa cc0 co wral cfz wb cvv eqid adantr anbi12d
      cwlks c1st c2nd cv cfzo cxp cop wlkop 1st2ndb sylibr xpopth bicomd syl2an
      3adant3 ciedg cdm cword cvtx wf cmin wlkelwrd anim12i eleq1 wbr wlklenvm1
      c1 df-br sylbir syl6bi mpcom eqwrd ad2ant2r cn0 simplr simprr 3jca 2ffzeq
      lencl syl syl2anc eqeq1 oveq2 bibi2d 3ad2ant3 mpbird 3anass anandi bitr2i
      raleqdv a1i 3bitrd ) BDUAFZGZCWLGZEBUBFZHFZIZJZBCIZWOCUBFZIZBUCFZCUCFZIZK
      ZEWTHFZIZAUDZWOFXHWTFIZALEUEMZNZKZXGXHXBFXHXCFIZALEOMZNZKZKZXGXKXOJZWMWNW
      SXEPZWQWMBQQUFZGZCXTGZXSWNWMBWOXBUGZIZYADBUHZBUIUJWNCWTXCUGZIZYBDCUHZCUIU
      JYAYBKXEWSBCQQQQUKULUMUNWRXEXQPZXEWPXFIZXIALWPUEMZNZKZYJXMALWPOMZNZKZKZPZ
      WMWNYRWQWMWNKWODUOFZUPZUQZGZYNDURFZXBUSZKZWTUUAGZLXFOMUUCXCUSZKZKZWPXBHFV
      FUTMIZXFXCHFVFUTMIZKZYRWMUUEWNUUHXBWODYSUUCBUUCRZYSRZWORXBRVAXCWTDYSUUCCU
      UMUUNWTRXCRVAVBWMUUJWNUUKYDWMUUJYEYDWMYCWLGZUUJBYCWLVCUUOWOXBWLVDUUJWOXBW
      LVGXBWODVEVHVIVJYGWNUUKYHYGWNYFWLGZUUKCYFWLVCUUPWTXCWLVDUUKWTXCWLVGXCWTDV
      EVHVIVJVBUUIUULKZXAYMXDYPUUIXAYMPZUULUUBUUFUURUUDUUGWOAYTWTVKVLSUUQWPVMGZ
      UUDUUGJZXDYPPUUIUUTUULUUIUUSUUDUUGUUEUUSUUHUUBUUSUUDYTWOVRSSUUBUUDUUHVNUU
      EUUFUUGVOVPSXCAXBWPXFUUCUUCVQVSTVTUNWQWMYIYRPWNWQXQYQXEWQXLYMXPYPWQXGYJXK
      YLEWPXFWAZWQXIAXJYKEWPLUEWBWITWQXGYJXOYOUVAWQXMAXNYNEWPLOWBWITTWCWDWEXQXR
      PWRXRXGXKXOKKXQXGXKXOWFXGXKXOWGWHWJWK $.
  $}

  ${
    edginwlk.i $e |- I = ( iEdg ` G ) $.
    edginwlk.e $e |- E = ( Edg ` G ) $.
    $( The value of the edge function for an index of an edge within a walk is
       an edge.  (Contributed by AV, 2-Jan-2021.)  (Revised by AV,
       9-Dec-2021.) $)
    edginwlk $p |- ( ( Fun I /\ F e. Word dom I /\ K e. ( 0 ..^ ( # ` F ) ) )
                     -> ( I ` ( F ` K ) ) e. E ) $=
      ( wfun cdm cword wcel cc0 chash cfv cfzo co w3a crn simp1 wrdsymbcl ciedg
      3adant1 fvelrn syl2anc cedg edgval eqcomi rneqi 3eqtri syl6eleqr ) DHZBDI
      ZJKZELBMNOPKZQZEBNZDNZDRZAUOUKUPULKZUQURKUKUMUNSUMUNUSUKEULBTUBUPDUCUDACU
      ENCUANZRURGCUFUTDDUTFUGUHUIUJ $.

    $( Obsolete version of ~ edginwlk as of 9-Dec-2021.  (Contributed by AV,
       2-Jan-2021.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    edginwlkOLD $p |- ( ( G e. W /\ Fun I /\ F e. Word dom I )
                 -> ( K e. ( 0 ..^ ( # ` F ) ) -> ( I ` ( F ` K ) ) e. E ) ) $=
      ( wcel wfun cdm cword w3a cc0 chash cfv cfzo co wa crn simpl2 fvelrn cedg
      wrdsymbcl 3ad2antl3 syl2anc wb ciedg edgvalOLD eqcomi rneqi syl6eq syl5eq
      eleq2d 3ad2ant1 adantr mpbird ex ) CFIZDJZBDKZLIZMZENBOPQRIZEBPZDPZAIZVCV
      DSZVGVFDTZIZVHUTVEVAIZVJUSUTVBVDUAVBUSVDVKUTEVABUDUEVEDUBUFVCVGVJUGZVDUSU
      TVLVBUSAVIVFUSACUCPZVIHUSVMCUHPZTVICFUIVNDDVNGUJUKULUMUNUOUPUQUR $.

    $( The value of the edge function for an index of an edge within a walk is
       an edge.  (Contributed by AV, 2-Jan-2021.) $)
    upgredginwlk $p |- ( ( G e. UPGraph /\ F e. Word dom I )
                 -> ( K e. ( 0 ..^ ( # ` F ) ) -> ( I ` ( F ` K ) ) e. E ) ) $=
      ( cupgr wcel wfun cdm cword cc0 chash cfv cfzo co wi cuhgr upgruhgr sylan
      uhgrfun syl edginwlk 3expia ) CHIZDJZBDKLIZEMBNOPQIZEBODOAIZRUFCSIUGCTDCF
      UBUCUGUHUIUJABCDEFGUDUEUA $.
  $}

  ${
    iedginwlk.i $e |- I = ( iEdg ` G ) $.
    $( The value of the edge function for an index of an edge within a walk is
       an edge.  (Contributed by AV, 23-Apr-2021.) $)
    iedginwlk $p |- ( ( Fun I /\ F ( Walks ` G ) P
                        /\ X e. ( 0 ..^ ( # ` F ) ) )
                      -> ( I ` ( F ` X ) ) e. ran I ) $=
      ( wfun cwlks cfv wbr cc0 chash cfzo co wcel w3a cdm crn simp1 syl2anc
      cword wlkf 3ad2ant2 simp3 wrdsymbcl fvelrn ) DGZBACHIJZEKBLIMNOZPZUGEBIZD
      QZOZUKDIDROUGUHUISUJBULUAOZUIUMUHUGUNUIABCDFUBUCUGUHUIUDEULBUETUKDUFT $.
  $}

  ${
    $d F k $.  $d G k $.  $d P k $.
    $( A walk of length 1 from a vertex to itself is a loop.  (Contributed by
       AV, 23-Apr-2021.) $)
    wlkl1loop $p |- ( ( ( Fun ( iEdg ` G ) /\ F ( Walks ` G ) P )
                         /\ ( ( # ` F ) = 1 /\ ( P ` 0 ) = ( P ` 1 ) ) )
                       -> { ( P ` 0 ) } e. ( Edg ` G ) ) $=
      ( vk cfv wa c1 wceq cc0 csn wcel wi cvv w3a cfzo co syl6eq ad2antrl caddc
      c0ex ciedg wfun cwlks wbr chash cedg wlkv crn simp3l simp2 snid syl5eleqr
      oveq2 fzo01 3ad2ant3 eqid iedginwlk syl3anc cdm cword cfz cvtx wf cpr wss
      cv wif wral iswlkg raleqdv oveq1 0p1e1 wkslem2 mpdan syl6bb ifptru biimpa
      wb ralsn eqcomd ad2antll sylbid com12 syl6bi 3imp edgval a1i 3eltr4d 3exp
      ex 3ad2ant1 mpcom expd impcom imp ) CUAEZUBZBACUCEUDZFBUEEZGHZIAEZGAEZHZF
      ZXAJZCUFEZKZWRWQXDXGLWRWQXDXGCMKZBMKZAMKZNWRWQXDFZXGLZABCUGXHXIWRXLLXJXHW
      RXKXGXHWRXKNZIBEWPEZWPUHZXEXFXMWQWRIIWSOPZKZXNXOKXHWRWQXDUIXHWRXKUJXKXHXQ
      WRWTXQWQXCWTIIJZXPITUKWTXPIGOPXRWSGIOUMUNQZULRUOABCWPIWPUPZUQURXHWRXKXEXN
      HZXHWRBWPUSUTKZIWSVAPCVBEZAVCZDVFZAEZYEGSPZAEZHYEBEWPEZYFJHYFYHVDYIVEVGZD
      XPVHZNXKYALZADBCWPYCMYCUPXTVIYKYBYLYDXKYKYAXKYKXCXNXEHZXAXBVDXNVEZVGZYAWT
      YKYOVRWQXCWTYKYJDXRVHYOWTYJDXPXRXSVJYJYODITYEIHZYGGHYJYOVRYPYGIGSPGYEIGSV
      KVLQYEIGABWPVMVNVSVORXCYOYALWQWTXCYOYAXCYOFXNXEXCYOYMXCYMYNVPVQVTWJWAWBWC
      UOWDWEXFXOHXMCWFWGWHWIWKWLWMWNWO $.
  $}

  ${
    $d F i k $.  $d G i k $.  $d P i k $.
    wlk1walk.i $e |- I = ( iEdg ` G ) $.
    $( A walk is a 1-walk "on the edge level" according to Aksoy et al.
       (Contributed by AV, 30-Dec-2020.) $)
    wlk1walk $p |- ( F ( Walks ` G ) P -> A. k e. ( 1 ..^ ( # ` F ) )
          1 <_ ( # ` ( ( I ` ( F ` ( k - 1 ) ) ) i^i ( I ` ( F ` k ) ) ) ) ) $=
      ( vi cvv wcel cfv c1 co wceq cpr wss wif wa wi com12 adantl w3a cwlks wbr
      cv cmin cin chash cle cfzo wral wlkv ciedg cdm cword cc0 cfz wf caddc csn
      cvtx eqid iswlk c0 wne fvex inex1 fzo0ss1 sseli wkslem1 rspcv syl elfzofz
      imp fz1fzo0m1 3syl wn wo df-ifp cz cc elfzoelz zcn npcan1 wkslem2 syl2anc
      wb eqidd sneq eqeq2d snid fveq1i eleq2i eleq2 syl5bb syl6eleqr anim12i ex
      mpbiri syl6bi prss eqcomi biimpi adantr sylbir anbi12i sylbi com3r ancoms
      jaoi mp2d inelcm hashge1 sylancr ralrimiva 3ad2ant3 mpcom ) DHICHIAHIUAZC
      ADUBJUCZKBUDZKUELZCJZEJZXSCJZEJZUFZUGJUHUCZBKCUGJZUILZUJZACDUKXQXRCDULJZU
      MUNIZUOYGUPLDUTJZAUQZGUDZAJZYNKURLAJZMYNCJYJJZYOUSMYOYPNYQOPZGUOYGUILZUJZ
      UAYIAHGCDYJYLHHYLVAYJVAVBYTYKYIYMYTYFBYHYTXSYHIZQZYEHIYEVCVDZYFYBYDYAEVEV
      FUUBXSAJZYBIZUUDYDIZQZUUCUUAYTUUGUUAYTQUUDXSKURLZAJZMZYCYJJZUUDUSZMZUUDUU
      INUUKOZPZXTAJZXTKURLZAJZMYAYJJZUUPUSZMZUUPUURNUUSOPZUUGUUAYTUUOUUAXSYSIYT
      UUORYHYSXSYGVGVHYRUUOGXSYSYNXSACYJVIVJVKVMUUAYTUVBUUAXSKYGUPLIXTYSIYTUVBR
      XSKYGVLXSYGVNYRUVBGXTYSYNXTACYJVIVJVOVMUUAUUOUVBUUGRZRYTUUOUUAUVCUUOUUJUU
      MQZUUJVPZUUNQZVQZUUAUVCRUUJUUMUUNVRUUAUVBUVGUUGUUAUVBUUPUUDMZUVAUUPUUDNUU
      SOZPZUVGUUGRZUUAXSVSIXSVTIZUVBUVJWFZXSKYGWAXSWBUVLXTXTMUUQXSMUVMUVLXTWGXS
      WCXTXTXSACYJWDWEVOUVJUVHUVAQZUVHVPZUVIQZVQUVKUVHUVAUVIVRUVNUVKUVPUVGUVNUU
      GUVDUVNUUGRZUVFUUMUVQUUJUVNUUMUUGUVHUVAUUMUUGRZUVHUVAUUSUULMZUVRUVHUUTUUL
      UUSUUPUUDWHWIZUVSUUMUUGUVSUUEUUMUUFUVSUUEUUDUULIZUUDXSAVEZWJZUUEUUDUUSIZU
      VSUWAYBUUSUUDYAEYJFWKWLUUSUULUUDWMWNWRZUUMUUDUUKYDUUMUUDUUKIZUWAUWCUUKUUL
      UUDWMZWRYCEYJFWKZWOWPWQWSVMSTUUNUVQUVEUVNUUNUUGUVHUVAUUNUUGRZUVHUVAUVSUWI
      UVTUVSUUNUUGUVSUUEUUNUUFUWEUUNUWFUUIUUKIZQZUUFUUDUUIUUKUWBUUHAVEWTZUWFUUF
      UWJUWFUUFUUKYDUUDYCYJEEYJFXAZWKWLZXBXCXDWPWQWSVMSTXISUVGUVPUUGUVDUVPUUGRZ
      UVFUUMUWOUUJUVPUUMUUGUVIUVRUVOUVIUUPUUSIZUWDQZUVRUUPUUDUUSXTAVEUWBWTZUWDU
      VRUWPUWDUUMUUGUWDUUEUUMUUFUWDUUEUUSYBUUDYAYJEUWMWKWLZXBUUMUUFUWAUWCUUFUWF
      UUMUWAYDUUKUUDUWHWLUWGWNWRWPWQTXDTSTUUNUWOUVEUUNUWKUWOUWLUWFUWOUWJUVPUWFU
      UGUVIUWFUUGRZUVOUVIUWQUWTUWRUWDUWTUWPUWDUWFUUGUWDUWFQUUGUWDUUEUWFUUFUWSUW
      NXEXBWQTXDTSXCXDTXISXIXFWSXGXFSXCXJXHUUDYBYDXKVKYEHXLXMXNXOWSXP $.
  $}

  ${
    $d F k $.  $d G k $.  $d P k $.
    $( A walk is an s-walk "on the edge level" (with s=1) according to Aksoy et
       al.  (Contributed by AV, 5-Jan-2021.) $)
    wlk1ewlk $p |- ( F ( Walks ` G ) P -> F e. ( G EdgWalks 1 ) ) $=
      ( vk cwlks cfv wbr c1 cewlks co wcel ciedg cdm cword cv cin chash cle cvv
      cmin cfzo wral eqid wlkf wlk1walk cxnn0 wlkv simp1d cn0 1nn0 nn0xnn0 mp1i
      wa wb isewlk syl3anc mpbir2and ) BACEFGZBCHIJKZBCLFZMNZKZHDOZHTJBFUTFVCBF
      UTFPQFRGDHBQFUAJUBZABCUTUTUCZUDZADBCUTVEUEURCSKZHUFKZVBUSVBVDUMUNURVGBSKA
      SKABCUGUHHUIKVHURUJHUKULVFHVADBCUTSVEUOUPUQ $.
  $}

  ${
    $d G k $.  $d F k $.  $d I k $.  $d P k $.  $d V k $.
    upgriswlk.v $e |- V = ( Vtx ` G ) $.
    upgriswlk.i $e |- I = ( iEdg ` G ) $.
    $( Properties of a pair of functions to be a walk in a pseudograph.
       (Contributed by AV, 2-Jan-2021.)  (Revised by AV, 28-Oct-2021.) $)
    upgriswlk $p |- ( G e. UPGraph -> ( F ( Walks ` G ) P
        <-> ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V
              /\ A. k e. ( 0 ..^ ( # ` F ) )
                 ( I ` ( F ` k ) ) = { ( P ` k ) , ( P ` ( k + 1 ) ) } ) ) ) $=
      ( cupgr wcel cfv cc0 co wceq cpr wral w3a wa wi cvv cwlks wbr cword chash
      cdm cfz wf cv c1 caddc csn wss wif iswlkg wn wo df-ifp dfsn2 preq2 syl5eq
      cfzo eqeq2d biimpa a1d cedg upgredginwlk adantrr imp simp-4l simpr adantr
      eqid wne adantl fvexd neqne 3jca upgredgpr syl31anc eqcomd exp31 mpd jaoi
      com12 syl5bi ifpprsnss impbid1 ralbidva pm5.32da df-3an 3bitr4g bitrd ) D
      IJZCADUAKUBCEUEUCJZLCUDKZUFMFAUGZBUHZAKZWQUIUJMZAKZNZWQCKEKZWRUKZNZWRWTOZ
      XBULZUMZBLWOVAMZPZQZWNWPXBXENZBXHPZQZABCDEFIGHUNWMWNWPRZXIRXNXLRXJXMWMXNX
      IXLWMXNRZXGXKBXHXOWQXHJZRZXGXKXGXAXDRZXAUOZXFRZUPZXQXKXAXDXFUQYAXQXKXRXQX
      KSXTXRXKXQXAXDXKXAXCXEXBXAXCWRWROXEWRURWRWTWRUSUTVBVCVDXQXTXKXQXBDVEKZJZX
      TXKSXOXPYCWMWNXPYCSWPYBCDEWQHYBVLZVFVGVHXQYCXTXKXQYCRZXTRZXEXBYFWMYCXFWRT
      JZWTTJZWRWTVMZQZXEXBNWMXNXPYCXTVIYEYCXTXQYCVJVKXTXFYEXSXFVJVNXTYJYEXSYJXF
      XSYGYHYIXSWQAVOXSWSAVOWRWTVPVQVKVNWRWTXBTYBDFTGYDVRVSVTWAWBWDWCWDWEWRWTXB
      WFWGWHWIWNWPXIWJWNWPXLWJWKWL $.
  $}

  ${
    $d F k $.  $d G k $.  $d I k $.  $d P k $.
    upgrwlkedg.i $e |- I = ( iEdg ` G ) $.
    $( The edges of a walk in a pseudograph join exactly the two corresponding
       adjacent vertices in the walk.  (Contributed by AV, 27-Feb-2021.) $)
    upgrwlkedg $p |- ( ( G e. UPGraph /\ F ( Walks ` G ) P )
                       -> A. k e. ( 0 ..^ ( # ` F ) ) ( I ` ( F ` k ) )
                                       = { ( P ` k ) , ( P ` ( k + 1 ) ) } ) $=
      ( cupgr wcel cwlks cfv wbr cv c1 caddc co cpr wceq cc0 chash cfzo cdm cfz
      wral cword cvtx wf w3a eqid upgriswlk simp3 syl6bi imp ) DGHZCADIJKZBLZCJ
      EJUOAJUOMNOAJPQBRCSJZTOUCZUMUNCEUAUDHZRUPUBODUEJZAUFZUQUGUQABCDEUSUSUHFUI
      URUTUQUJUKUL $.
  $}

  ${
    $d F k $.  $d G k $.  $d I k $.  $d P k $.  $d V k $.
    upgrwlkcompim.v $e |- V = ( Vtx ` G ) $.
    upgrwlkcompim.i $e |- I = ( iEdg ` G ) $.
    upgrwlkcompim.1 $e |- F = ( 1st ` W ) $.
    upgrwlkcompim.2 $e |- P = ( 2nd ` W ) $.
    $( Implications for the properties of the components of a walk in a
       pseudograph.  (Contributed by Alexander van der Vekens, 23-Jun-2018.)
       (Revised by AV, 14-Apr-2021.) $)
    upgrwlkcompim $p |- ( ( G e. UPGraph /\ W e. ( Walks ` G ) )
           -> ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V
                /\ A. k e. ( 0 ..^ ( # ` F ) )
                   ( I ` ( F ` k ) ) = { ( P ` k ) , ( P ` ( k + 1 ) ) } ) ) $=
      ( cupgr wcel cwlks cfv cdm cword cc0 co wbr chash cfz wf cv c1 caddc wceq
      cpr cfzo wral w3a c1st c2nd wlkcpr breq12i bitr4i upgriswlk biimpd syl5bi
      imp ) DLMZGDNOZMZCEPQMRCUAOZUBSFAUCBUDZCOEOVEAOVEUEUFSAOUHUGBRVDUISUJUKZV
      CCAVBTZVAVFVCGULOZGUMOZVBTVGDGUNCVHAVIVBJKUOUPVAVGVFABCDEFHIUQURUSUT $.
  $}

  ${
    $d E e $.  $d F e k $.  $d G e k $.  $d P e k $.
    wlkvtxedg.e $e |- E = ( Edg ` G ) $.
    $( The vertices of a walk are connected by edges.  (Contributed by
       Alexander van der Vekens, 22-Jul-2018.)  (Revised by AV, 2-Jan-2021.) $)
    wlkvtxedg $p |- ( F ( Walks ` G ) P
                       -> A. k e. ( 0 ..^ ( # ` F ) ) E. e e. E
                          { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ e ) $=
      ( cwlks cfv wbr cv c1 caddc co cpr wss ciedg crn wrex wral cc0 chash cfzo
      eqid wlkvtxiedg cedg edgval eqtr2i rexeqi ralbii sylib ) EAFHIJCKZAIULLMN
      AIOBKPZBFQIZRZSZCUAEUBIUCNZTUMBDSZCUQTABCEFUNUNUDUEUPURCUQUMBUODDFUFIUOGF
      UGUHUIUJUK $.

    $( The pairs of connected vertices of a walk are edges in a pseudograph.
       (Contributed by Alexander van der Vekens, 22-Jul-2018.)  (Revised by AV,
       2-Jan-2021.) $)
    upgrwlkvtxedg $p |- ( ( G e. UPGraph /\ F ( Walks ` G ) P )
                           -> A. k e. ( 0 ..^ ( # ` F ) )
                              { ( P ` k ) , ( P ` ( k + 1 ) ) } e. E ) $=
      ( cupgr wcel cwlks cfv wbr cv c1 co cc0 wral eqid wi wa imp caddc cpr cdm
      chash cfzo ciedg cword cfz cvtx wf wceq w3a upgriswlk upgredginwlk ancoms
      wb eleq1 eqcoms syl5ibrcom ralimdva impancom 3adant2 com12 sylbid ) EGHZD
      AEIJKZBLZAJVGMUANAJUBZCHZBODUDJZUENZPZVEVFDEUFJZUCUGHZOVJUHNEUIJZAUJZVGDJ
      VMJZVHUKZBVKPZULZVLABDEVMVOVOQVMQZUMVTVEVLVNVSVEVLRVPVNVEVSVLVNVESZVRVIBV
      KWBVGVKHZSVIVRVQCHZWBWCWDVEVNWCWDRCDEVMVGWAFUNUOTVIWDUPVHVQVHVQCUQURUSUTV
      AVBVCVDT $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d G x y $.  $d N x y $.
    $( Conditions for two walks within the same simple pseudograph being the
       same.  It is sufficient that the vertices (in the same order) are
       identical.  (Contributed by AV, 3-Jul-2018.)  (Revised by AV,
       14-Apr-2021.) $)
    uspgr2wlkeq $p |- ( ( G e. USPGraph /\ ( A e. ( Walks ` G )
                          /\ B e. ( Walks ` G ) ) /\ N = ( # ` ( 1st ` A ) ) )
                -> ( A = B <-> ( N = ( # ` ( 1st ` B ) ) /\ A. y e. ( 0 ... N )
                             ( ( 2nd ` A ) ` y ) = ( ( 2nd ` B ) ` y ) ) ) ) $=
      ( vx wcel cfv wa wceq cc0 cfzo co wral wi imp ex eqid com12 adantr cuspgr
      cwlks c1st chash w3a cv c2nd cfz wb 3anan32 a1i wlkeq 3expa 3adant1 caddc
      c1 cpr ciedg fzofzp1 adantl fveq2 eqeq12d rspcdv impancom ralrimiv fveq2d
      cbvralv sylibr wss fzossfz ssralv mp1i r19.26 preq12 ralimdv syl5bir expd
      oveq1 syld mpd cdm cword cvtx wf cupgr uspgrupgr upgrwlkcompim syl eqcoms
      oveq2 raleqdv bi2anan9r eqeq2 biimpd syl6bi com13 ral2imi sylbir 3ad2ant3
      syl2and 3imp1 eqcom crn cedg wf1o uspgrf1oedg f1of1 eqidd edgval f1eq123d
      wf1 eqcomi mpbird 3ad2ant1 wlkelwrd eleq2d wrdsymbcl expcom jcad f1veqaeq
      syl2an syl2an2r syl5bi ralimdva 3syld expimpd pm4.71d 3bitr4d ) DUAGZBDUB
      HZGZCYJGZIZEBUCHZUDHZJZUEZECUCHZUDHZJZAUFZYNHZUUAYRHZJZAKELMZNZUUABUGHZHZ
      UUACUGHZHZJZAKEUHMZNZUEZYTUUMIZUUFIZBCJZUUOUUNUUPUIYQYTUUFUUMUJUKYMYPUUQU
      UNUIZYIYKYLYPUURABCDEULUMUNYQUUOUUFYQYTUUMUUFYQYTIZUUMUUHUUAUPUOMZUUGHZUQ
      ZUUJUUTUUIHZUQZJZAUUENZUUCDURHZHZUUBUVGHZJZAUUENZUUFUUSUUMUVFUUSUUMIZUVAU
      VCJZAUUENZUVFUVLFUFZUPUOMZUUGHZUVPUUIHZJZFUUENUVNUVLUVSFUUEUUSUVOUUEGZUUM
      UVSUUSUVTIZUUKUVSAUVPUULUVTUVPUULGUUSKEUVOUSUTUUAUVPJZUUKUVSUIUWAUWBUUHUV
      QUUJUVRUUAUVPUUGVAUUAUVPUUIVAVBUTVCVDVEUVMUVSAFUUEUUAUVOJZUVAUVQUVCUVRUWC
      UUTUVPUUGUUAUVOUPUOVRZVFUWCUUTUVPUUIUWDVFVBVGVHUUSUUMUVNUVFOZUUSUUMUUKAUU
      ENZUWEUUEUULVIUUMUWFOUUSKEVJUUKAUUEUULVKVLUUSUWFUVNUVFUWFUVNIUUKUVMIZAUUE
      NUUSUVFUUKUVMAUUEVMUUSUWGUVEAUUEUWGUVEOUUSUUHUVAUUJUVCVNUKVOVPVQVSPVTQYIY
      MYPYTUVFUVKOZYIYKYNUVGWAZWBZGZKYOUHMDWCHZUUGWDZUVIUVBJZAKYOLMZNZUEZYLYRUW
      JGZKYSUHMUWLUUIWDZUVHUVDJZAKYSLMZNZUEZYPYTUWHOOZYIDWEGZYKUWQODWFZUXEYKUWQ
      UUGAYNDUVGUWLBUWLRZUVGRZYNRZUUGRZWGQWHYIUXEYLUXCOUXFUXEYLUXCUUIAYRDUVGUWL
      CUXGUXHYRRZUUIRZWGQWHUWQUXCIZUXDOYIUXMYPYTUWHUWQUXCYPYTIZUWHOZUWPUWKUXCUX
      OOUWMUXCUWPUXOUXBUWRUWPUXOOUWSUXBUWPUXOUXNUXBUWPIZUWHUXNUXPUWTAUUENZUWNAU
      UENZIZUWHYTUXBUXQYPUWPUXRYTUWTAUXAUUEUXAUUEJYSEYSEKLWJWIWKYPUWNAUWOUUEUWO
      UUEJYOEYOEKLWJWIWKWLUXSUWTUWNIZAUUENUWHUWTUWNAUUEVMUXTUVEUVJAUUEUWTUWNUVE
      UVJOUVEUWNUWTUVJUVEUWNUVIUVDJZUWTUVJOUVBUVDUVIWMUYAUWTUVJUWTUVJUIUVDUVIUV
      DUVIUVHWMWIWNWOWPPWQWRWOSQWSSWSPVQUKWTXAUUSUVJUUDAUUEUVJUVIUVHJZUUSUUAUUE
      GZIUUDUVHUVIXBUUSUWIUVGXCZUVGXKZUYCUUBUWIGZUUCUWIGZIZUYBUUDOYQUYEYTYIYMUY
      EYPYIUYEUWIDXDHZUVGXKZYIUWIUYIUVGXEUYJUVGDUXHXFUWIUYIUVGXGWHYIUWIUWIUYDUY
      IUVGUVGYIUVGXHYIUWIXHUYDUYIJYIUYIUYDDXIXLUKXJXMXNTUUSUYCUYHYQYTUYCUYHOZYM
      YPYTUYKOZYIYMYPUYLYMYPYTUYKYMUXNUYCUYHYKUWKUWMIZUWRUWSIZUXNUYCIZUYHOZYLUU
      GYNDUVGUWLBUXGUXHUXIUXJXOUUIYRDUVGUWLCUXGUXHUXKUXLXOUYMUYNUYPUWKUYNUYPOUW
      MUYNUWKUYPUWRUWKUYPOUWSUWRUWKUYPUWRUWKIUYOUYFUYGUWKUYOUYFOUWRUYOUWKUYFUXN
      UYCUWKUYFOZYPUYCUYQOYTYPUYCUUAUWOGZUYQYPUUEUWOUUAEYOKLWJXPUWKUYRUYFUUAUWI
      YNXQXRWOTPSUTUWRUYOUYGOUWKUYOUWRUYGUXNUYCUWRUYGOZYTUYCUYSOYPYTUYCUUAUXAGZ
      UYSYTUUEUXAUUAEYSKLWJXPUWRUYTUYGUUAUWIYRXQXRWOUTPSTXSQTSTPYAVQVQPUNPPUWIU
      YDUUBUUCUVGXTYBYCYDYEYFYGYH $.
  $}

  ${
    $d A i $.  $d B i $.  $d G i $.  $d N i $.
    $( Conditions for two walks within the same simple pseudograph to be
       identical.  It is sufficient that the vertices (in the same order) are
       identical.  (Contributed by Alexander van der Vekens, 25-Aug-2018.)
       (Revised by AV, 14-Apr-2021.) $)
    uspgr2wlkeq2 $p |- ( ( ( G e. USPGraph /\ N e. NN0 )
                        /\ ( A e. ( Walks ` G ) /\ ( # ` ( 1st ` A ) ) = N )
                        /\ ( B e. ( Walks ` G ) /\ ( # ` ( 1st ` B ) ) = N ) )
                         -> ( ( 2nd ` A ) = ( 2nd ` B ) -> A = B ) ) $=
      ( vi cuspgr wcel cn0 wa cwlks cfv c1st chash wceq w3a simpr eqcomd adantr
      c2nd simpl cv cc0 co wral 3ad2ant3 fveq1 adantl ralrimivw simpl1l anim12i
      cfz wb 3adant1 3ad2ant2 uspgr2wlkeq syl3anc mpbir2and ex ) CFGZDHGZIZACJK
      ZGZALKMKZDNZIZBVBGZBLKMKZDNZIZOZASKZBSKZNZABNZVKVNIZVODVHNZEUAZVLKVRVMKNZ
      EUBDUKUCZUDZVKVQVNVJVAVQVFVJVHDVGVIPQUERVPVSEVTVNVSVKVRVLVMUFUGUHVPUSVCVG
      IZDVDNZVOVQWAIULUSUTVFVJVNUIVKWBVNVFVJWBVAVFVCVJVGVCVETVGVITUJUMRVKWCVNVF
      VAWCVJVFVDDVCVEPQUNREABCDUOUPUQUR $.

    $( Conditions for two walks within the same simple pseudograph to be
       identical.  It is sufficient that the vertices (in the same order) are
       identical.  (Contributed by AV, 6-May-2021.) $)
    uspgr2wlkeqi $p |- ( ( G e. USPGraph /\ ( A e. ( Walks ` G )
                        /\ B e. ( Walks ` G ) ) /\ ( 2nd ` A ) = ( 2nd ` B ) )
                         -> A = B ) $=
      ( wcel cfv wa c2nd wceq c1st chash wbr wi wlkcpr c1 cmin adantl wlklenvm1
      co simpl anim12i cuspgr cwlks w3a wlkcl fveq2 oveq1d eqcomd wb eqeqan12rd
      cn0 adantr mpbird anim2i exp44 mpcom sylbi imp31 eqidd simpr uspgr2wlkeq2
      syl5bi 3adant1 syl3anc ex com23 3impia mpd ) CUADZACUBEZDZBVIDZFZAGEZBGEZ
      HZUCAIEZJEZUJDZBIEZJEZVQHZFZABHZVLVOWBVHVJVKVOWBVJVPVMVIKZVKVOWBLZLCAMVKV
      SVNVIKZWDWECBMVRWDWFWELVMVPCUDVRWDWFVOWBWDWFFZVOFZWAVRWHWAVNJEZNORZVMJEZN
      ORZHZVOWMWGVOWLWJVOWKWINOVMVNJUEUFUGPWGWAWMUHVOWFWDVTWJVQWLVNVSCQVMVPCQUI
      UKULUMUNUOVAUPUQVBVHVLVOWBWCLVHVLFZWBVOWCWNWBVOWCLZWNWBFVHVRFVJVQVQHZFVKW
      AFWOWNVHWBVRVHVLSVRWASTWNVJWBWPVLVJVHVJVKSPWBVQURTWNVKWBWAVLVKVHVJVKUSPVR
      WAUSTABCVQUTVCVDVEVFVG $.
  $}

  ${
    $d F k $.  $d G k $.  $d P k $.
    $( In a multigraph, each walk has no loops!  (Contributed by Alexander van
       der Vekens, 7-Nov-2017.)  (Revised by AV, 3-Jan-2021.) $)
    umgrwlknloop $p |- ( ( G e. UMGraph /\ F ( Walks ` G ) P )
            -> A. k e. ( 0 ..^ ( # ` F ) ) ( P ` k ) =/= ( P ` ( k + 1 ) ) ) $=
      ( cumgr wcel cwlks cfv wbr wa cv c1 caddc co cpr cedg cc0 chash cfzo wral
      wne cupgr umgrupgr upgrwlkvtxedg sylan wi umgredgne ex adantr ralimdv mpd
      eqid ) DEFZCADGHIZJZBKZAHZUPLMNAHZODPHZFZBQCRHSNZTZUQURUAZBVATUMDUBFUNVBD
      UCABUSCDUSULZUDUEUOUTVCBVAUMUTVCUFUNUMUTVCUSDUQURVDUGUHUIUJUK $.
  $}

  ${
    $d G f p $.
    wlkRes.1 $e |- ( f ( W ` G ) p -> f ( Walks ` G ) p ) $.
    $( Restrictions of walks (i.e. special kinds of walks, for example paths -
       see ~ pthsfval ) are sets.  (Contributed by Alexander van der Vekens,
       1-Nov-2017.)  (Revised by AV, 30-Dec-2020.)  (Proof shortened by AV,
       15-Jan-2021.) $)
    wlkRes $p |- { <. f , p >. | ( f ( W ` G ) p /\ ph ) } e. _V $=
      ( cv cfv wbr cwlks wi wal copab cvv wcel wa gen2 wksv opabbrex mp2an ) BG
      ZEGZCDHZIZUAUBCJHIZKZELBLUEBEMNOUDAPBEMNOUFBEFQBCERUEABEUCNST $.
  $}

  $( If there is a walk in the null graph (a class without vertices), it would
     be the pair consisting of empty sets.  (Contributed by Alexander van der
     Vekens, 2-Sep-2018.)  (Revised by AV, 5-Mar-2021.) $)
  wlkv0 $p |- ( ( ( Vtx ` G ) = (/) /\ W e. ( Walks ` G ) )
                 -> ( ( 1st ` W ) = (/) /\ ( 2nd ` W ) = (/) ) ) $=
    ( cvtx cfv c0 wceq cwlks wcel c1st c2nd wa wbr wlkcpr ciedg cc0 wf eqid jca
    wi cz cdm cword chash cfz co wlkf wlkp feq3 f00 syl6bb cn0 clt nn0z sylancr
    wb 0z fzn nn0nlt0 pm2.21d sylbird com12 adantl lencl impel simpll ex syl6bi
    com23 impd syl5 syl5bi imp ) ACDZEFZBAGDZHZBIDZEFZBJDZEFZKZVPVQVSVOLZVNWAAB
    MWBVQANDZUAZUBHZOVQUCDZUDUEZVMVSPZKVNWAWBWEWHVSVQAWCWCQUFVSVQAVMVMQUGRVNWEW
    HWAVNWHWEWAVNWHVTWGEFZKZWEWASVNWHWGEVSPWJVMEWGVSUHWGVSUIUJWJWEWAWJWEKVRVTWJ
    WFUKHZVRWEWIWKVRSVTWKWIVRWKWIWFOULLZVRWKOTHWFTHWLWIUOUPWFUMOWFUQUNWKWLVRWFU
    RUSUTVAVBWDVQVCVDVTWIWEVERVFVGVHVIVJVKVL $.

  ${
    $d G w $.
    $( There is no walk in a null graph (a class without vertices).
       (Contributed by Alexander van der Vekens, 2-Sep-2018.)  (Revised by AV,
       5-Mar-2021.) $)
    g0wlk0 $p |- ( ( Vtx ` G ) = (/) -> ( Walks ` G ) = (/) ) $=
      ( vw cwlks cfv c0 wceq cvtx wi ax-1 wn cv wcel wex neq0 c1st wlkv0 adantl
      wa c2nd sylbi wbr wlkcpr wne eqneqall syl5com mpd expcom exlimiv pm2.61i
      wlkn0 ) ACDZEFZAGDEFZULHZULUMIULJBKZUKLZBMUNBUKNUPUNBUMUPULUMUPRUOODZEFZU
      OSDZEFZRZULAUOPUPVAULHZUMUPUQUSUKUAZVBAUOUBVCUSEUCZVAULUSUQAUJUTVDULHURUL
      USEUDQUETQUFUGUHTUI $.
  $}

  $( There is no walk for the empty set, i.e. in a null graph.  (Contributed by
     Alexander van der Vekens, 2-Sep-2018.)  (Revised by AV, 5-Mar-2021.) $)
  0wlk0 $p |- ( Walks ` (/) ) = (/) $=
    ( c0 cvtx cfv wceq cwlks vtxval0 g0wlk0 ax-mp ) ABCADAECADFAGH $.

  $( There is no walk in a null graph (a class without vertices).  (Contributed
     by Alexander van der Vekens, 2-Sep-2018.)  (Revised by AV, 5-Mar-2021.) $)
  wlk0prc $p |- ( ( S e/ _V /\ ( Vtx ` S ) = ( Vtx ` G ) )
                     -> ( Walks ` G ) = (/) ) $=
    ( cvv wnel cvtx cfv wa c0 cwlks eqcom biimpi vtxvalprc sylan9eqr g0wlk0 syl
    wceq ) ACDZAEFZBEFZPZGSHPBIFHPTQSRHTSRPRSJKALMBNO $.

  $( The number of vertices in a walk equals the length of the walk after it is
     "closed" (i.e. enhanced by an edge from its last vertex to its first
     vertex).  (Contributed by Alexander van der Vekens, 29-Jun-2018.)
     (Revised by AV, 2-May-2021.) $)
  wlklenvclwlk $p |- ( ( W e. Word ( Vtx ` G ) /\ 1 <_ ( # ` W ) )
                   -> ( <. F , ( W ++ <" ( W ` 0 ) "> ) >. e. ( Walks ` G )
                        -> ( # ` F ) = ( # ` W ) ) ) $=
    ( cc0 cfv cs1 cconcat co wcel c1 chash wbr wa wceq wi caddc cc nn0cn adantr
    cn0 cop cwlks cword cle df-br wlklenvp1 wlkcl wrdsymb1 s1cld ccatlen syldan
    cvtx s1len a1i oveq2d eqtrd eqeq1d lencl adantl 1cnd addcan2d biimpd syl5bi
    eqcom ex com23 syl sylbid com3l sylc sylbir com12 ) ACDCEZFZGHZUABUBEZIZCBU
    LEZUCZIZJCKEZUDLZMZAKEZWANZVQAVOVPLZWCWEOZAVOVPUEWFVOKEZWDJPHZNZWDTIZWGVOAB
    UFVOABUGWCWJWKWEWCWJWAJPHZWINZWKWEOZWCWHWLWIWCWHWAVNKEZPHZWLVTWBVNVSIWHWPNW
    CVMVRVRCUHUIVRCVNUJUKWCWOJWAPWOJNWCVMUMUNUOUPUQVTWMWNOZWBVTWATIZWQVRCURWRWK
    WMWEWRWKWMWEOWMWIWLNZWRWKMZWEWLWIVDWTWSWEWTWDWAJWKWDQIWRWDRUSWRWAQIWKWARSWT
    UTVAVBVCVEVFVGSVHVIVJVKVL $.

  ${
    $d A a b f g p $.  $d B a b f g p $.  $d G a b f g p $.  $d V f g p $.
    wlkson.v $e |- V = ( Vtx ` G ) $.
    $( The set of walks between two vertices.  (Contributed by Alexander van
       der Vekens, 12-Dec-2017.)  (Revised by AV, 30-Dec-2020.)  (Revised by
       AV, 22-Mar-2021.) $)
    wlkson $p |- ( ( A e. V /\ B e. V ) -> ( A ( WalksOn ` G ) B )
                      = { <. f , p >. | ( f ( Walks ` G ) p /\ ( p ` 0 ) = A
                                          /\ ( p ` ( # ` f ) ) = B ) } ) $=
      ( va vb vg wcel wa cwlkson cfv cv wceq cwlks copab cvtx cvv cc0 chash wbr
      co w3a 1vgrex adantr simpl syl6eleq simpr wksv eqeq2 bi2anan9 biidd cmpt2
      a1i cmpt df-wlkson eqid 3anass ancom bitri opabbii mpteq2i mptmpt2opabbrd
      mpt2eq123i eqtri bitr4i syl6eq ) AEKZBEKZLZABDMNUDUAFOZNZAPZCOZUBNVMNZBPZ
      LZVPVMDQNUCZLZCFRVTVOVRUEZCFRVLVTVNHOZPZVQIOZPZLZVSWGSSQCJFDMTTABHIVJDTKV
      KDAEGUFUGVLAEDSNZVJVKUHGUIVLBEWHVJVKUJGUIVTCFRTKVLCDFUKUPVLVTUJWCAPWDVOWE
      BPWFVRWCAVNULWEBVQULUMJOZDPWGUNMJTHIWISNZWJVPVMWIQNUCZWDWFUEZCFRZUOZUQJTH
      IWJWJWGWKLZCFRZUOZUQCJFHIURJTWNWQHIWJWJWMWJWJWPWJUSZWRWLWOCFWLWKWGLWOWKWD
      WFUTWKWGVAVBVCVFVDVGVEWAWBCFWAVTVSLWBVSVTVAVTVOVRUTVHVCVI $.

    $d F f p $.  $d P f p $.
    $( Properties of a pair of functions to be a walk between two given
       vertices (in an undirected graph).  (Contributed by Alexander van der
       Vekens, 2-Nov-2017.)  (Revised by AV, 31-Dec-2020.)  (Revised by AV,
       22-Mar-2021.) $)
    iswlkon $p |- ( ( ( A e. V /\ B e. V ) /\ ( F e. U /\ P e. Z ) )
                    -> ( F ( A ( WalksOn ` G ) B ) P <-> ( F ( Walks ` G ) P
                         /\ ( P ` 0 ) = A /\ ( P ` ( # ` F ) ) = B ) ) ) $=
      ( vp vf wcel wa cfv wbr cc0 wceq chash cv eqeq1d cwlkson cwlks w3a wlkson
      co wb fveq1 adantl simpr fveq2 adantr fveq12d 2rbropap 3expb ) AGLBGLMZED
      LCHLECABFUANUEZOECFUBNZOPCNZAQZERNZCNZBQZUCUFUOPJSZNZAQUSVBKSZRNZVCNZBQCK
      EUPUQDHJABKFGJIUDVEEQZVCCQZMZVDURAVIVDURQVHPVCCUGUHTVJVGVABVJVFUTVCCVHVIU
      IVHVFUTQVIVEERUJUKULTUMUN $.

    $d V a b $.
    $( Properties of a walk between two vertices.  (Contributed by Alexander
       van der Vekens, 12-Dec-2017.)  (Revised by AV, 31-Dec-2020.)  (Proof
       shortened by AV, 16-Jan-2021.) $)
    wlkonprop $p |- ( F ( A ( WalksOn ` G ) B ) P
                 -> ( ( G e. _V /\ A e. V /\ B e. V ) /\ ( F e. _V /\ P e. _V )
                      /\ ( F ( Walks ` G ) P /\ ( P ` 0 ) = A
                           /\ ( P ` ( # ` F ) ) = B ) ) ) $=
      ( vf vp vg va cfv wbr cvv wcel w3a wa wceq cvtx cv vb cwlkson cwlks chash
      co cc0 fvex eqeltri df-wlkson copab 3simpc wlkson syl fveq2 syl6eqr breqd
      3anbi1d bropfvvvv mp2an 3anass anbi1i df-3an bitr4i sylibr anim1i iswlkon
      wi wb biimpd imdistani mpancom ) DCABEUBLUEZMZENOZAFOZBFOZPZDNOCNOQZQZDCE
      UCLZMUFCLARDUDLCLBRPZQZVQVRWAPVSVMWBVMVNVOVPQZVRPZVSFNOZWEVMWDVGFESLZNGES
      UGUHZWGHTZITZJTZUCLZMZUFWILZKTRZWHUDLWILZUATRZPWHWIVTMZWNWPPWQWMARWOBRPZE
      ABDFFNICUBWJSLZWSNNJKUAHHJIKUAUIVQWCVLWRHIUJRVNVOVPUKZABHEFIGULUMWJERZWSW
      FFWJESUNGUOZXBXAWLWQWNWPXAWKVTWHWIWJEUCUNUPUQURUSVSVNWCQZVRQWDVQXCVRVNVOV
      PUTVAVNWCVRVBVCVDVSVMWAVSVMWAVSWCVRQVMWAVHVQWCVRWTVEABCNDEFNGVFUMVIVJVKVQ
      VRWAVBVD $.
  $}

  ${
    wlkpvtx.v $e |- V = ( Vtx ` G ) $.
    $( A walk connects vertices.  (Contributed by AV, 22-Feb-2021.) $)
    wlkpvtx $p |- ( F ( Walks ` G ) P
                      -> ( N e. ( 0 ... ( # ` F ) ) -> ( P ` N ) e. V ) ) $=
      ( cwlks cfv wbr cc0 chash cfz co wf wcel wi wlkp ffvelrn ex syl ) BACGHIJ
      BKHLMZEANZDUAOZDAHEOZPABCEFQUBUCUDUAEDARST $.

    $( The endpoints of a walk are vertices.  (Contributed by AV,
       31-Jan-2021.) $)
    wlkepvtx $p |- ( F ( Walks ` G ) P
                      -> ( ( P ` 0 ) e. V /\ ( P ` ( # ` F ) ) e. V ) ) $=
      ( cwlks cfv wbr cc0 chash cfz co wf cn0 wcel wa wlkp wlkcl 0elfz ffvelrn
      sylan2 nn0fz0 sylan2b jca syl2anc ) BACFGHIBJGZKLZDAMZUFNOZIAGDOZUFAGDOZP
      ABCDEQABCRUHUIPUJUKUIUHIUGOUJUFSUGDIATUAUIUHUFUGOUKUFUBUGDUFATUCUDUE $.
  $}

  $( A walk between two vertices is a walk.  (Contributed by Alexander van der
     Vekens, 12-Dec-2017.)  (Revised by AV, 2-Jan-2021.) $)
  wlkoniswlk $p |- ( F ( A ( WalksOn ` G ) B ) P -> F ( Walks ` G ) P ) $=
    ( cwlkson cfv co wbr cvv wcel cvtx w3a cwlks cc0 wceq chash eqid wlkonprop
    wa simp31 syl ) DCABEFGHIEJKAELGZKBUCKMZDJKCJKTZDCENGIZOCGAPZDQGCGBPZMMUFAB
    CDEUCUCRSUDUEUFUGUHUAUB $.

  $( A walk is a walk between its endpoints.  (Contributed by Alexander van der
     Vekens, 2-Nov-2017.)  (Revised by AV, 2-Jan-2021.)  (Proof shortened by
     AV, 31-Jan-2021.) $)
  wlkonwlk $p |- ( F ( Walks ` G ) P
                   -> F ( ( P ` 0 ) ( WalksOn ` G ) ( P ` ( # ` F ) ) ) P ) $=
    ( cwlks cfv wbr cc0 chash cwlkson co wceq id eqidd cvtx wcel wa cvv wb eqid
    w3a wlkepvtx wlkv 3simpc syl iswlkon syl2anc mpbir3and ) BACDEFZBAGAEZBHEAE
    ZCIEJFZUHUIUIKZUJUJKZUHLUHUIMUHUJMUHUICNEZOUJUNOPBQOZAQOZPZUKUHULUMTRABCUNU
    NSZUAUHCQOZUOUPTUQABCUBUSUOUPUCUDUIUJAQBCUNQURUEUFUG $.

  ${
    wlkonwlk1l.w $e |- ( ph -> F ( Walks ` G ) P ) $.
    $( A walk is a walk from its first vertex to its last vertex.  (Contributed
       by AV, 7-Feb-2021.)  (Revised by AV, 22-Mar-2021.) $)
    wlkonwlk1l $p |- ( ph -> F ( ( P ` 0 )
                                 ( WalksOn ` G ) ( lastS ` P ) ) P ) $=
      ( cc0 cfv clsw cwlkson co wbr wceq chash c1 cword wcel eqid syl wa jca32
      cwlks eqidd cmin wlklenvm1 fveq2d cvtx wlkpwrd lsw eqtr4d cvv wb caddc cn
      w3a cn0 wlkcl nn0p1nn wlklenvp1 fstwrdne0 lswlgt0cl jca ciedg cdm iswlkon
      wlkf wrdv mpbir3and ) ACBFBGZBHGZDIGJKZCBDUAGKZVHVHLZCMGZBGZVILZEAVHUBAVK
      VOEVKVNBMGZNUCJZBGZVIVKVMVQBBCDUDUEVKBDUFGZOZPZVIVRLBCDVSVSQZUGZBVTUHRUIR
      AVHVSPZVIVSPZSZCUJOZPZWASSZVJVKVLVOUNUKAVKWIEVKWFWHWAVKVMNULJZUMPZWAVPWJL
      ZSSZWFVKWKWAWLVKVMUOPWKBCDUPVMUQRWCBCDURTWMWDWEWJVSBUSWJVSBUTVARVKCDVBGZV
      CZOPWHBCDWNWNQVEWOCVFRWCTRVHVIBWGCDVSVTWBVDRVG $.
  $}

  $( Two walks with identical sequences of vertices start and end at the same
     vertices.  (Contributed by AV, 14-May-2021.) $)
  wlksoneq1eq2 $p |- ( ( F ( A ( WalksOn ` G ) B ) P
                      /\ H ( C ( WalksOn ` G ) D ) P )
                       -> ( A = C /\ B = D ) ) $=
    ( cfv co wbr cvv wcel w3a wa wceq chash wlkonprop wi simp2 cwlkson cvtx cc0
    cwlks eqid eqcomd sylan9eqr simp3 adantl c1 cmin wlklenvm1 eqtr3 fveq2d syl
    ex 3ad2ant1 com12 imp simpl3 3eqtrd jca 3ad2ant3 syl2an ) FEABGUAIZJKGLMZAG
    UBIZMBVGMNZFLMELMZOZFEGUDIZKZUCEIZAPZFQIZEIZBPZNZNZVFCVGMDVGMNZHLMVIOZHEVKK
    ZVMCPZHQIZEIZDPZNZNZACPZBDPZOZHECDVEJKABEFGVGVGUEZRCDEHGVGWLRVSWHWKVRVHWHWK
    SVJWHVRWKWGVTVRWKSWAWGVRWKWGVROZWIWJVRWGAVMCVRVMAVLVNVQTUFWBWCWFTUGWMBVPWED
    VRBVPPWGVRVPBVLVNVQUHUFUIWGVRVPWEPZWBWCVRWNSZWFWBWDEQIUJUKJZPZWOEHGULVRWQWN
    VLVNWQWNSZVQVLVOWPPZWREFGULWSWQWNWSWQOVOWDEVOWDWPUMUNUPUOUQURUOUQUSWBWCWFVR
    UTVAVBUPVCURVCUSVD $.

  ${
    $d A e k $.  $d F e k $.  $d G e k $.  $d I e k $.  $d P e k $.
    wlkonl1iedg.i $e |- I = ( iEdg ` G ) $.
    $( If there is a walk between two vertices ` A ` and ` B ` at least of
       length 1, then the start vertex ` A ` is incident with an edge.
       (Contributed by AV, 4-Apr-2021.) $)
    wlkonl1iedg $p |- ( ( F ( A ( WalksOn ` G ) B ) P /\ ( # ` F ) =/= 0 )
                        -> E. e e. ran I A e. e ) $=
      ( vk cfv co cc0 wcel wrex cvv w3a wa wi c1 adantr cwlkson wbr wne cv cvtx
      chash crn cwlks wceq eqid wlkonprop cpr wss caddc cfzo fveq2 oveq1 syl6eq
      0p1e1 fveq2d preq12d sseq1d rexbidv wral wlkvtxiedg cn0 wlkcl cn simplbi2
      elnnne0 lbfzo0 syl6ibr syl imp rspcdva fvex prss eleq1 ax-1 syl6bi adantl
      impd syl5bir reximdv mpd ex 3adant3 3ad2ant3 ) ECABFUAJKUBZEUFJZLUCZADUDZ
      MZDGUGZNZWIFOMAFUEJZMBWPMPZEOMCOMQZECFUHJUBZLCJZAUIZWJCJBUIZPZPWKWORZABCE
      FWPWPUJUKXCWQXDWRWSXAXDXBWSXAQZWKWOXEWKQZWTSCJZULZWLUMZDWNNZWOXFIUDZCJZXK
      SUNKZCJZULZWLUMZDWNNZXJILWJUOKZLXKLUIZXPXIDWNXSXOXHWLXSXLWTXNXGXKLCUPXSXM
      SCXSXMLSUNKSXKLSUNUQUSURUTVAVBVCXEXQIXRVDZWKWSXTXACDIEFGHVETTXEWKLXRMZWSW
      KYARZXAWSWJVFMZYBCEFVGYCWKWJVHMZYAYDYCWKWJVJVIWJVKVLVMTVNVOXEXJWORWKXEXIW
      MDWNXIWTWLMZXGWLMZQXEWMWTXGWLLCVPSCVPVQXEYEYFWMXAYEYFWMRZRWSXAYEWMYGWTAWL
      VRWMYFVSVTWAWBWCWDTWEWFWGWHVMVN $.
  $}

  ${
    $( The length of a walk between two different vertices is not 0 (i.e. is at
       least 1).  (Contributed by AV, 3-Apr-2021.) $)
    wlkon2n0 $p |- ( ( F ( A ( WalksOn ` G ) B ) P /\ A =/= B )
                     -> ( # ` F ) =/= 0 ) $=
      ( cwlkson cfv co wbr wne chash cc0 cvv wcel cvtx w3a wa cwlks wceq wn nne
      wi eqid wlkonprop fveq2 eqeq1d anbi2d eqtr2 sylibr com12 3adant1 3ad2ant3
      syl6bi syl necon2ad imp ) DCABEFGHIZABJZDKGZLJUQURUSLUQEMNAEOGZNBUTNPZDMN
      CMNQZDCERGIZLCGZASZUSCGZBSZPZPUSLSZURTZUBZABCDEUTUTUCUDVHVAVKVBVEVGVKVCVI
      VEVGQZVJVIVLVEVDBSZQZVJVIVGVMVEVIVFVDBUSLCUEUFUGVNABSVJVDABUHABUAUIUMUJUK
      ULUNUOUP $.
  $}

  ${
    $d E k $.  $d F k $.  $d P k $.
    $( Lemma for theorems for walks of length 2.  (Contributed by Alexander van
       der Vekens, 1-Feb-2018.) $)
    2wlklem $p |- ( A. k e. { 0 , 1 } ( E ` ( F ` k ) )
                                        = { ( P ` k ) , ( P ` ( k + 1 ) ) }
                     <-> ( ( E ` ( F ` 0 ) ) = { ( P ` 0 ) , ( P ` 1 ) }
                        /\ ( E ` ( F ` 1 ) ) = { ( P ` 1 ) , ( P ` 2 ) } ) ) $=
      ( cv cfv c1 caddc co cpr wceq cc0 c0ex fveq2 fveq2d oveq1 preq12d eqeq12d
      c2 syl6eq 1ex 0p1e1 1p1e2 ralpr ) BEZDFZCFZUEAFZUEGHIZAFZJZKLDFZCFZLAFZGA
      FZJZKGDFZCFZUOSAFZJZKBLGMUAUELKZUGUMUKUPVAUFULCUELDNOVAUHUNUJUOUELANVAUIG
      AVAUILGHIGUELGHPUBTOQRUEGKZUGURUKUTVBUFUQCUEGDNOVBUHUOUJUSUEGANVBUISAVBUI
      GGHISUEGGHPUCTOQRUD $.

    $d G k $.  $d I k $.  $d V k $.
    upgr2wlk.v $e |- V = ( Vtx ` G ) $.
    upgr2wlk.i $e |- I = ( iEdg ` G ) $.
    $( Properties of a pair of functions to be a walk of length 2 in a
       pseudograph.  Note that the vertices need not to be distinct and the
       edges can be loops or multiedges.  (Contributed by Alexander van der
       Vekens, 16-Feb-2018.)  (Revised by AV, 3-Jan-2021.)  (Revised by AV,
       28-Oct-2021.) $)
    upgr2wlk $p |- ( G e. UPGraph -> ( ( F ( Walks ` G ) P /\ ( # ` F ) = 2 )
                  <-> ( F : ( 0 ..^ 2 ) --> dom I /\ P : ( 0 ... 2 ) --> V
               /\ ( ( I ` ( F ` 0 ) ) = { ( P ` 0 ) , ( P ` 1 ) }
                    /\ ( I ` ( F ` 1 ) ) = { ( P ` 1 ) , ( P ` 2 ) } ) ) ) ) $=
      ( vk wcel cfv c2 wceq wa cc0 cfz co wf c1 cpr cfzo cupgr cwlks wbr cdm cv
      chash cword caddc wral w3a upgriswlk anbi1d iswrdb oveq2 syl5bb fzo0to2pr
      feq2d syl6eq raleqdv 2wlklem syl6bb 3anbi123d adantl 3anass pm5.32rd an32
      wb ex bitri syl6bbr cn0 2nn0 fnfzo0hash pm4.71i bicomi a1i 3anbi1d 3bitrd
      mpan ) CUAIZBACUBJUCZBUFJZKLZMBDUDZUGIZNWBOPZEAQZHUEZBJDJWHAJWHRUHPAJSLZH
      NWBTPZUIZUJZWCMZNKTPZWDBQZWCMZNKOPZEAQZNBJDJNAJRAJZSLRBJDJWSKAJSLMZUJZWOW
      RWTUJZVTWAWLWCAHBCDEFGUKULVTWMWOWRWTMZMZWCMZXAVTWCWLXDVTWCWLXDVGVTWCMWLXB
      XDWCWLXBVGVTWCWEWOWGWRWKWTWEWJWDBQWCWOWDBUMWCWJWNWDBWBKNTUNZUQUOWCWFWQEAW
      BKNOUNUQWCWKWIHNRSZUIWTWCWIHWJXGWCWJWNXGXFUPURUSAHDBUTVAVBVCWOWRWTVDVAVHV
      EXAWPXCMXEWPWRWTVDWOWCXCVFVIVJVTWPWOWRWTWPWOVGVTWOWPWOWCKVKIWOWCVLWDBKVMV
      SVNVOVPVQVR $.
  $}

  $( Lemma for ~ wlkres .  TODO-AV:  Will become obsolete if
     ` H = ( F |`` ( 0 ..^ N ) ) ` is replaced by
     ` H = ( F substr <. 0 , N >. ) ` or ` H = ( F prefix N ) ` in ~ wlkres and
     ~ trlres .  (Contributed by AV, 5-Mar-2021.) $)
  wlkreslem0 $p |- ( ( F e. Word S /\ N e. ( 0 ... ( # ` F ) ) )
       -> ( # ` ( F |` ( 0 ..^ N ) ) ) = N ) $=
    ( cword wcel cc0 chash cfv cfz cfzo cres cop csubstr swrd0val eqcomd fveq2d
    co wa swrd0len eqtrd ) BADECFBGHIQERZBFCJQKZGHBFCLMQZGHCUAUBUCGUAUCUBABCNOP
    ABCST $.

  ${
    $( TODO-AV: ` H = ( F |` ( 0 ..^ N ) ) ` could be replaced by
                ` H = ( F substr <. 0 , N >. ) ` or
                ` H = ( F prefix N ) ` ! $)
    wlkres.v $e |- V = ( Vtx ` G ) $.
    wlkres.i $e |- I = ( iEdg ` G ) $.
    wlkres.d $e |- ( ph -> F ( Walks ` G ) P ) $.
    wlkres.n $e |- ( ph -> N e. ( 0 ..^ ( # ` F ) ) ) $.
    wlkres.s $e |- ( ph -> ( Vtx ` S ) = V ) $.
    wlkres.e $e |- ( ph -> ( iEdg ` S ) = ( I |` ( F " ( 0 ..^ N ) ) ) ) $.
    wlkres.h $e |- H = ( F |` ( 0 ..^ N ) ) $.
    wlkres.q $e |- Q = ( P |` ( 0 ... N ) ) $.
    $( Lemma for ~ wlkres .  (Contributed by AV, 5-Mar-2021.) $)
    wlkreslem $p |- ( ph -> ( S e. _V /\ H e. _V /\ Q e. _V ) ) $=
      ( cvv wcel wi ax-1 wn wnel df-nel cwlks cfv wbr cop df-br c0 ne0i wa cvtx
      wne wceq syl6eq anim1i ancomd wlk0prc eqneqall 3syl com13 syl sylbi mpcom
      expcom com12 sylbir pm2.61i cc0 cfzo cres wfun cdm cword wlkf chash ffund
      co wrdf ovex resfunexg sylancl syl5eqel cfz wf wlkp ffun 3jca ) ADSTZGSTC
      STWKAWKUAZWKAUBWKUCDSUDZWLDSUEAWMWKEBFUFUGZUHZAWMWKUAZMWOEBUIZWNTZAWPUAZE
      BWNUJWRWNUKUOZWSWNWQULWMAWTWKAWMWTWKUAZAWMUMZWMDUNUGZFUNUGZUPZUMWNUKUPXAX
      BXEWMAXEWMAXCJXDOKUQURUSDFUTWKWNUKVAVBVGVCVDVEVFVHVIVJAGEVKIVLVTZVMZSQAEV
      NZXFSTXGSTAWOEHVOZVPTZXHMBEFHLVQXJVKEVRUGZVLVTXIEXIEWAVSVBVKIVLWBEXFSWCWD
      WEACBVKIWFVTZVMZSRABVNZXLSTXMSTAWOVKXKWFVTZJBWGXNMBEFJKWHXOJBWIVBVKIWFWBB
      XLSWCWDWEWJ $.

    $d F k i x $.  $d G k $.  $d H x $.  $d I k $.  $d N i x $.  $d P k $.
    $d Q x $.  $d S x $.  $d ph i x $.
    $( The restriction ` <. H , Q >. ` of a walk ` <. F , P >. ` to an initial
       segment of the walk (of length ` N ` ) forms a walk on the subgraph
       ` S ` consisting of the edges in the initial segment.  Formerly proven
       directly for Eulerian paths, see ~ eupthres .  (Contributed by Mario
       Carneiro, 12-Mar-2015.)  (Revised by Mario Carneiro, 3-May-2015.)
       (Revised by AV, 5-Mar-2021.) $)
    wlkres $p |- ( ph -> H ( Walks ` S ) Q ) $=
      ( cfv wceq vx vi vk cwlks wbr ciedg cdm cword wcel cc0 chash cfz co wf cv
      cvtx c1 caddc csn cpr wss wif cfzo wral cres wfn wlkf wrdfn 3syl elfzouz2
      cuz fzoss2 fnssres syl2anc wa cima cin simpr wb fveq2 eqeq1d adantl fvres
      wrex eqcomd rspcedvd adantr fvelimabd mpbird wi syl ffvelrn expcom sselda
      wrdf syl11 mpcom imp eqeltrd elind dmres syl6eleqr dmeqd eleq2d ralrimiva
      expd ffnfv sylanbrc sseldi wlkreslem0 oveq2d feq2d iswrdb sylibr syl5eqel
      fzossfz wlkp feq3d elfzuz3 fzss2 fssresd fveq2i syl5eq feq1i w3a cvv wlkv
      iswlk biimpd fveq1i a1i fvresd syl5req fzofzp1 jca ex sylbid ancli fveq2d
      eqid wfun ffund fdm sseq2 syl5ibr impcom resfvresima sylan fveq12d eqtr4d
      eqtrd eleqtrrd wkslem1 rspcv eqeq12 sneq eqeq12d preq12 sseq12d ifpbi123d
      sylsyld com12 3ad2ant3 wlkreslem mpbir3and ) AGCDUDSUEZGDUFSZUGZUHZUIZUJG
      UKSZULUMZDUPSZCUNZUAUOZCSZUVOUQURUMZCSZTZUVOGSZUVGSZUVPUSZTZUVPUVRUTZUWAV
      AZVBZUAUJUVKVCUMZVDZAGEUJIVCUMZVEZUVIQAUJUWJUKSZVCUMZUVHUWJUNZUWJUVIUIAUW
      MUWIUVHUWJUNZAUWJUWIVFZUVOUWJSZUVHUIZUAUWIVDUWNAEUJEUKSZVCUMZVFZUWIUWSVAZ
      UWOAEBFUDSUEZEHUGZUHUIZUWTMBEFHLVGZUXCEVHVIZAIUWSUIZUWRIVKSZUIZUXANIUJUWR
      VJZIUJUWRVLVIZUWSUWIEVMVNAUWQUAUWIAUVOUWIUIZVOZUWQUWPHEUWIVPZVEZUGZUIZUXM
      UWPUXNUXCVQUXPUXMUXNUXCUWPUXMUWPUXNUIUBUOZESZUWPTZUBUWIWDUXMUXTUVOESZUWPT
      ZUBUVOUWIAUXLVRUXRUVOTZUXTUYBVSUXMUYCUXSUYAUWPUXRUVOEVTWAWBUXMUWPUYAUXLUW
      PUYATAUVOUWIEWCWBZWEWFUXMUBUWSUWIUWPEAUWTUXLUXFWGAUXAUXLUXKWGWHWIUXMUWPUY
      AUXCUYDAUXLUYAUXCUIZUXDAUXLUYEWJZAUXBUXDMUXEWKZUXDUWSUXCEUNZAUYFWJUXCEWOZ
      UYHAUXLUYEUVOUWSUIZUYHUYEUXMUYHUYJUYEUWSUXCUVOEWLWMAUWIUWSUVOUXKWNWPXFWKW
      QWRWSWTHUXNXAXBAUWQUXQVSUXLAUVHUXPUWPAUVGUXOPXCXDWGWIXEUAUWIUVHUWJXGXHAUW
      LUWIUVHUWJAUWKIUJVCAUXDIUJUWRULUMZUIZUWKITUYGAUWSUYKIUJUWRXPNXIZUXCEIXJVN
      ZXKXLWIUVHUWJXMXNXOAUVLUVMBUJIULUMZVEZUNZUVNAUYQUYOUVMUYPUNAUYKUVMUYOBAUY
      KUVMBUNUYKJBUNZAUXBUYRMBEFJKXQWKAUVMJBUYKOXRWIAUYLUXIUYOUYKVAUYMIUJUWRXSI
      UJUWRXTVIYAAUVLUYOUVMUYPAUVKIUJULAUVKUWKIGUWJUKQYBUYNYCZXKXLWIUVLUVMCUYPR
      YDXNAUWFUAUWGUXDUYRUCUOZBSZUYTUQURUMBSZTUYTESHSZVUAUSTVUAVUBUTVUCVAVBZUCU
      WSVDZYEZAUVOUWGUIZVOZUWFAVUFVUGAUXBVUFMFYFUIEYFUIBYFUIYEZUXBVUFBEFYGVUIUX
      BVUFBYFUCEFHJYFYFKLYHYIWQWKWGVUEUXDVUHUWFWJUYRVUHVUEUWFVUHUVOBSZUVPTZUVQB
      SZUVRTZVOZUYAHSZUWATZVOZVUEVUJVULTZVUOVUJUSZTZVUJVULUTZVUOVAZVBZUWFVUHVUN
      VUPAVUGVUNAVUGUXLVUNAUWGUWIUVOAUVKIUJVCUYSXKXDZAUXLVUNUXMVUKVUMUXMUVPUVOU
      YPSVUJUVOCUYPRYJUXMUVOUYOBAUWIUYOUVOUWIUYOVAAUJIXPYKWNYLYMUXMUVRUVQUYPSVU
      LUVQCUYPRYJUXMUVQUYOBUXLUVQUYOUIAUJIUVOYNWBYLYMYOYPYQWRVUHVUOUWPUXOSZUWAA
      VUGVUOVVETZAVUGUXLVVFVVDAUXLVVFUXMVVEVUOAAUXDVOZUXLVVEVUOTAUXDUYGYRVVGUXL
      VOUWIEHUVOVVGEUUAZUXLUXDVVHAUXDUWSUXCEUYIUUBWBWGVVGUWIEUGZVAZUXLUXDAVVJUX
      DUYHVVIUWSTZAVVJWJUYIUWSUXCEUUCAVVJVVKUXAUXKVVIUWSUWIUUDUUEVIUUFWGVVGUXLV
      RUUGUUHWEYPYQWRVUHUVTUWPUVGUXOAUVGUXOTVUGPWGUVTUWPTVUHUVOGUWJQYJYKUUIUUJY
      OVUHUYJVUEVVCWJAUWGUWSUVOAUWRUVKVKSZUIUWGUWSVAAUWRUXHVVLAUXGUXINUXJWKAUVK
      IVKAUVKUWKIAGUWJUKGUWJTAQYKYSUYNUUKYSUULUVKUJUWRVLWKWNVUDVVCUCUVOUWSUYTUV
      OBEHUUMUUNWKVUQVVCUWFVUQVURVUTVVBUVSUWCUWEVUNVURUVSVSVUPVUJUVPVULUVRUUOWG
      VUQVUOUWAVUSUWBVUNVUPVRZVUNVUSUWBTZVUPVUKVVNVUMVUJUVPUUPWGWGUUQVUQVVAUWDV
      UOUWAVUNVVAUWDTVUPVUJVULUVPUVRUURWGVVMUUSUUTYIUVAUVBUVCWQXEADYFUIGYFUICYF
      UIYEUVFUVJUVNUWHYEVSABCDEFGHIJKLMNOPQRUVDCYFUAGDUVGUVMYFYFUVMYTUVGYTYHWKU
      VE $.
  $}

  $( Lemma for ~ redwlk .  (Contributed by Alexander van der Vekens,
     1-Nov-2017.)  (Revised by AV, 29-Jan-2021.) $)
  redwlklem $p |- ( ( F e. Word S /\ 1 <_ ( # ` F )
                        /\ P : ( 0 ... ( # ` F ) ) --> V )
           -> ( P |` ( 0 ..^ ( # ` F ) ) ) :
              ( 0 ... ( # ` ( F |` ( 0 ..^ ( ( # ` F ) - 1 ) ) ) ) ) --> V ) $=
    ( cword wcel c1 chash cfv cle wbr cc0 cfz co wf cfzo cres wa wceq syl simpr
    cmin wss fzossfz fssres sylancl ex cz lencl nn0zd fzoval adantr wrdred1hash
    wb oveq2 eqeq2d mpbird feq2d sylibd 3impia ) CBEFZGCHIZJKZLVBMNZDAOZLCLVBGU
    BNZPNQHIZMNZDALVBPNZQZOZVAVCRZVEVIDVJOZVKVLVEVMVLVERVEVIVDUCVMVLVEUALVBUDVD
    DVIAUEUFUGVLVIVHDVJVLVIVHSZVILVFMNZSZVAVPVCVAVBUHFVPVAVBBCUIUJLVBUKTULVLVGV
    FSZVNVPUNBCUMVQVHVOVIVGVFLMUOUPTUQURUSUT $.

  ${
    $d F k $.  $d G k $.  $d P k $.
    $( A walk ending at the last but one vertex of the walk is a walk.
       (Contributed by Alexander van der Vekens, 1-Nov-2017.)  (Revised by AV,
       29-Jan-2021.) $)
    redwlk $p |- ( ( F ( Walks ` G ) P /\ 1 <_ ( # ` F ) )
            -> ( F |` ( 0 ..^ ( ( # ` F ) - 1 ) ) ) ( Walks ` G )
               ( P |` ( 0 ..^ ( # ` F ) ) ) ) $=
      ( vk cfv wbr c1 cc0 co cfzo cvv wcel w3a wa wi wceq wss wral syl eqcomd
      cwlks chash cle cmin cres wlkv ciedg cdm cword cfz cvtx wf cv csn cpr wif
      caddc eqid iswlk wrdred1 a1i wlkf redwlklem 3exp imp wlkcl wrdred1hash cz
      cn0 sylan nn0z fzossrbm1 ssralv sselda fvres fzo0ss1 simpr 1zzd fzoaddel2
      adantr syl3anc sseldi eqeq12d adantl fveq2d sneqd preq12d biimpd ralimdva
      sseq12d ifpbi123d syld wb raleqdv sylibd syl2an2r 3anim123d resexg bicomd
      oveq2 id syl3an syl5ib expcomd sylbid mpcom anabsi5 ) BACUAEZFZGBUBEZUCFZ
      BHXJGUDIZJIZUEZAHXJJIZUEZXHFZCKLZBKLZAKLZMZXIXIXKNZXQOZABCUFYAXIBCUGEZUHZ
      UIZLZHXJUJICUKEZAULZDUMZAEZYJGUQIZAEZPZYJBEZYDEZYKUNZPZYKYMUOZYPQZUPZDXOR
      ZMZYCAKDBCYDYHKKYHURZYDURZUSYAYBUUCXQYBUUCNXNYFLZHXNUBEZUJIYHXPULZYJXPEZY
      LXPEZPZYJXNEZYDEZUUIUNZPZUUIUUJUOZUUMQZUPZDHUUGJIZRZMZYAXQYBUUCUVAYBYGUUF
      YIUUHUUBUUTYGUUFOYBYEBUTVAXIXKYIUUHOZXIYGXKUVBOABCYDUUEVBZYGXKYIUUHAYEBYH
      VCVDSVEXIXJVILZXKUUGXLPZUUBUUTOABCVFXIYGXKUVEUVCYEBVGVJUVDUVENUUBUURDXMRZ
      UUTUVDUUBUVFOUVEUVDUUBUUADXMRZUVFUVDXMXOQZUUBUVGOUVDXJVHLZUVHXJVKZXJVLSZU
      UADXMXOVMSUVDUUAUURDXMUVDYJXMLZNZUUAUURUVMYNYRYTUUKUUOUUQUVMYKUUIYMUUJUVM
      UUIYKUVMYJXOLUUIYKPUVDXMXOYJUVKVNYJXOAVOSTZUVMUUJYMUVMYLXOLUUJYMPUVMGXJJI
      ZXOYLXJVPUVMUVLUVIGVHLYLUVOLUVDUVLVQUVDUVIUVLUVJVTUVMVRYJXJGVSWAWBYLXOAVO
      STZWCUVMYPUUMYQUUNUVMYOUULYDUVMUULYOUVLUULYOPUVDYJXMBVOWDTWEZUVMYKUUIUVNW
      FWCUVMYSUUPYPUUMUVMYKUUIYMUUJUVNUVPWGUVQWJWKWHWIWLVTUVEUVFUUTWMUVDUVEUURD
      XMUUSUVEUUSXMUUGXLHJWTTWNWDWOWPWQVEXRXRXSXNKLZXTXPKLZUVAXQWMXRXABXMKWRAXO
      KWRXRUVRUVSMXQUVAXPKDXNCYDYHKKUUDUUEUSWSXBXCXDXEXFXG $.
  $}

  ${
    wlkp1.v $e |- V = ( Vtx ` G ) $.
    wlkp1.i $e |- I = ( iEdg ` G ) $.
    wlkp1.f $e |- ( ph -> Fun I ) $.
    wlkp1.a $e |- ( ph -> I e. Fin ) $.
    wlkp1.b $e |- ( ph -> B e. _V ) $.
    wlkp1.c $e |- ( ph -> C e. V ) $.
    wlkp1.d $e |- ( ph -> -. B e. dom I ) $.
    wlkp1.w $e |- ( ph -> F ( Walks ` G ) P ) $.
    wlkp1.n $e |- N = ( # ` F ) $.
    $( Lemma for ~ wlkp1 .  (Contributed by AV, 6-Mar-2021.) $)
    wlkp1lem1 $p |- ( ph -> -. ( N + 1 ) e. dom P ) $=
      ( wcel co cwlks cfv wbr chash cn0 cc0 cfz wf wa c1 caddc cdm wn wlkcl jca
      wlkp wceq fzp1nel a1i oveq1i eleq1i sylnibr eleq2 notbid syl5ibrcom impel
      fdm 3syl ) AEDFUAUBUCZEUDUBZUESZUFVJUGTZIDUHZUIHUJUKTZDULZSZUMZQVIVKVMDEF
      UNDEFIJUPUOVKVOVLUQZVQVMVKVQVRVNVLSZUMVKVJUJUKTZVLSZVSWAUMVKUFVJURUSVNVTV
      LHVJUJUKRUTVAVBVRVPVSVOVLVNVCVDVEVLIDVGVFVH $.

    wlkp1.e $e |- ( ph -> E e. ( Edg ` G ) ) $.
    wlkp1.x $e |- ( ph -> { ( P ` N ) , C } C_ E ) $.
    wlkp1.u $e |- ( ph -> ( iEdg ` S ) = ( I u. { <. B , E >. } ) ) $.
    wlkp1.h $e |- H = ( F u. { <. N , B >. } ) $.
    $( Lemma for ~ wlkp1 .  (Contributed by AV, 6-Mar-2021.) $)
    wlkp1lem2 $p |- ( ph -> ( # ` H ) = ( N + 1 ) ) $=
      ( chash cfv cop csn cun c1 caddc co wceq fveq2i a1i cvv wcel cfn wn cwlks
      wa opex wbr cdm cword wlkf wrdfin 3syl cc0 wi fzonel eleq1 notbid syl5ibr
      cfzo ax-mp wfn wrdfn fnop ex syl jca hashunsng mpsyl eqcomi oveq1d 3eqtrd
      mtod ) AIUFUGZGKBUHZUIUJZUFUGZGUFUGZUKULUMZKUKULUMWJWMUNAIWLUFUEUOUPWKUQU
      RAGUSURZWKGURZUTZVBWMWOUNKBVCAWPWRAGDHVAUGVDZGJVEZVFURZWPTDGHJNVGZWTGVHVI
      AWQKVJWNVPUMZURZKWNUNZAXDUTZVKUAAXFXEWNXCURZUTZXHAVJWNVLUPXEXDXGKWNXCVMVN
      VOVQAGXCVRZWQXDVKAWSXAXITXBWTGVSVIXIWQXDXCKBGVTWAWBWIWCGWKUQWDWEAWNKUKULW
      NKUNAKWNUAWFUPWGWH $.

    $( Lemma for ~ wlkp1 .  (Contributed by AV, 6-Mar-2021.) $)
    wlkp1lem3 $p |- ( ph -> ( ( iEdg ` S ) ` ( H ` N ) )
                              = ( ( I u. { <. B , E >. } ) ` B ) ) $=
      ( cfv ciedg cop csn cun wceq a1i fveq1d cvv wcel chash fvex eqeltri cwlks
      cdm wn wbr cword wlkf cn0 cc0 cfzo co lencl wrddm wa fzonel simpr eleq12d
      mtbiri syl2anc 3syl fsnunfv mp3an2i eqtrd fveq12d ) AKIUFZBEUGUFJBFUHUIUJ
      UDAWBKGKBUHUIUJZUFZBAKIWCIWCUKAUEULUMKUNUOABUNUOKGUTZUOZVAZWDBUKKGUPUFZUN
      UAGUPUQURQAGDHUSUFVBGJUTZVCUOZWGTDGHJNVDWJWHVEUOZWEVFWHVGVHZUKZWGWIGVIWIG
      VJWKWMVKZWFWHWLUOVFWHVLWNKWHWEWLKWHUKWNUAULWKWMVMVNVOVPVQGUNUNKBVRVSVTWA
      $.

    wlkp1.q $e |- Q = ( P u. { <. ( N + 1 ) , C >. } ) $.
    wlkp1.s $e |- ( ph -> ( Vtx ` S ) = V ) $.
    $( Lemma for ~ wlkp1 .  (Contributed by AV, 6-Mar-2021.) $)
    wlkp1lem4 $p |- ( ph -> ( S e. _V /\ H e. _V /\ Q e. _V ) ) $=
      ( ciedg cfv cdm cword wcel cc0 chash cfz co cvtx wf wa cvv w3a cwlks eqid
      wbr wlkf wlkp jca syl eleqtrrd elfvexd adantr cop csn simprl snex sylancl
      cun unexg syl5eqel c1 caddc cpm ovex fvex fpm ad2antll 3jca mpdan ) AHIUI
      UJZUKULZUMZUNHUOUJZUPUQZIURUJZDUSZUTZFVAUMZJVAUMZEVAUMZVBAHDIVCUJVEZWQUAX
      AWLWPDHIWJWJVDVFDHIWOWOVDVGVHVIAWQUTZWRWSWTAWRWQACURFACMFURUJSUHVJVKVLXBJ
      HLBVMZVNZVRZVAUFXBWLXDVAUMXEVAUMAWLWPVOXCVPHXDWKVAVSVQVTXBEDLWAWBUQCVMZVN
      ZVRZVAUGXBDWOWNWCUQZUMZXGVAUMXHVAUMWPXJAWLWNWODUNWMUPWDIURWEWFWGXFVPDXGXI
      VAVSVQVTWHWI $.

    $d ph k $.
    $( Lemma for ~ wlkp1 .  (Contributed by AV, 6-Mar-2021.) $)
    wlkp1lem5 $p |- ( ph -> A. k e. ( 0 ... N ) ( Q ` k ) = ( P ` k ) ) $=
      ( cv cfv wceq cc0 cfz co wa c1 caddc cop csn cun fveq1i wne wn wi fzp1nel
      wcel wb eleq1 notbid eqcoms mpbiri a1i con2d imp neqned fvunsn syl syl5eq
      ralrimiva ) AGUJZEUKZWADUKZULGUMMUNUOZAWAWDVGZUPZWBWADMUQURUOZCUSUTVAZUKZ
      WCWAEWHUHVBWFWGWAVCWIWCULWFWGWAAWEWGWAULZVDAWJWEWJWEVDZVEAWJWKWGWDVGZVDZU
      MMVFWKWMVHWAWGWAWGULWEWLWAWGWDVIVJVKVLVMVNVOVPDWGCWAVQVRVSVT $.

    $d ph k x $.  $d N x $.  $d P x $.  $d Q x $.
    $( Lemma for ~ wlkp1 .  (Contributed by AV, 6-Mar-2021.) $)
    wlkp1lem6 $p |- ( ph -> A. k e. ( 0 ..^ N ) ( ( Q ` k ) = ( P ` k )
                     /\ ( Q ` ( k + 1 ) ) = ( P ` ( k + 1 ) )
                     /\ ( ( iEdg ` S ) ` ( H ` k ) ) = ( I ` ( F ` k ) ) ) ) $=
      ( vx cv cfv wceq c1 caddc co ciedg w3a cc0 cfzo wcel wral wlkp1lem5 wa wi
      cfz elfzofz adantl fveq2 eqeq12d rspcv syl imp fzofzp1 cop csn cun adantr
      fveq1i wne wn fzonel eleq1 mtbii con2d neqned fvunsn syl5eq fveq12d chash
      a1i cdm oveq2i eleq2i cword cwlks wbr wlkf wrdsymbcl ex syl5bi syl5ibrcom
      con3d mpid eqtrd 3jca mpidan ralrimiva ) AGUKZEULZXIDULZUMZXIUNUOUPZEULZX
      MDULZUMZXIKULZFUQULZULZXIIULZLULZUMZURZGUSMUTUPZAXIYDVAZUJUKZEULZYFDULZUM
      ZUJUSMVFUPZVBZYCABCDEFUJHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIVCAYEVDZYKVDXLXPYB
      YLYKXLYLXIYJVAZYKXLVEYEYMAXIUSMVGVHYIXLUJXIYJYFXIUMYGXJYHXKYFXIEVIYFXIDVI
      VJVKVLVMYLYKXPYLXMYJVAZYKXPVEYEYNAUSMXIVNVHYIXPUJXMYJYFXMUMYGXNYHXOYFXMEV
      IYFXMDVIVJVKVLVMYLYBYKYLXSXTLBHVOVPVQZULZYAYLXQXTXRYOAXRYOUMYEUFVRYLXQXII
      MBVOVPVQZULZXTXIKYQUGVSYLMXIVTYRXTUMYLMXIAYEMXIUMZWAAYSYEYSYEWAVEAYSMYDVA
      YEUSMWBMXIYDWCWDWKWEVMWFIMBXIWGVLWHWIYLBXTVTYPYAUMYLBXTAYEBXTUMZWAZAYEBLW
      LZVAZWAZUUAUAAYEUUDUUAVEYLYTUUCYLUUCYTXTUUBVAZAYEUUEYEXIUSIWJULZUTUPZVAZA
      UUEYDUUGXIMUUFUSUTUCWMWNAIUUBWOVAZUUHUUEVEAIDJWPULWQUUIUBDIJLPWRVLUUIUUHU
      UEXIUUBIWSWTVLXAVMBXTUUBWCXBXCWTXDVMWFLBHXTWGVLXEVRXFXGXH $.

    $d N k $.  $d P k $.  $d Q k $.
    $( Lemma for ~ wlkp1 .  (Contributed by AV, 6-Mar-2021.) $)
    wlkp1lem7 $p |- ( ph -> { ( Q ` N ) , ( Q ` ( N + 1 ) ) }
                              C_ ( ( iEdg ` S ) ` ( H ` N ) ) ) $=
      ( vk cfv c1 caddc co cpr cop csn cun ciedg wceq cc0 cfz eqeq12d wlkp1lem5
      cv fveq2 cwlks wbr chash cn0 wcel wlkcl eqcomi eleq1i nn0fz0 3syl rspcdva
      sylbb fveq1i cvv wn ovex wlkp1lem1 fsnunfv mp3an2i syl5eq preq12d syl3anc
      cdm cedg 3sstr4d wlkp1lem3 sseqtr4d ) ALEUJZLUKULUMZEUJZUNZBKBGUOUPUQUJZL
      JUJFURUJUJALDUJZCUNGWPWQUDAWMWRWOCAUIVDZEUJZWSDUJZUSWMWRUSUIUTLVAUMZLWSLU
      SWTWMXAWRWSLEVEWSLDVEVBABCDEFUIGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHVCAHDIVFUJVG
      HVHUJZVIVJZLXBVJZUADHIVKXDLVIVJXEXCLVILXCUBVLVMLVNVQVOVPAWOWNDWNCUOUPUQZU
      JZCWNEXFUGVRWNVSVJACMVJWNDWHVJVTXGCUSLUKULWASABCDHIKLMNOPQRSTUAUBWBDVSMWN
      CWCWDWEWFABVSVJGIWIUJZVJBKWHVJVTWQGUSRUCTKVSXHBGWCWGWJABCDFGHIJKLMNOPQRST
      UAUBUCUDUEUFWKWL $.

    $d F k $.  $d G k $.  $d H k $.  $d S k $.
    wlkp1.l $e |- ( ( ph /\ C = ( P ` N ) ) -> E = { C } ) $.
    $( Lemma for ~ wlkp1 .  (Contributed by AV, 6-Mar-2021.) $)
    wlkp1lem8 $p |- ( ph -> A. k e. ( 0 ..^ ( # ` H ) )
                           if- ( ( Q ` k ) = ( Q ` ( k + 1 ) ) ,
                                 ( ( iEdg ` S ) ` ( H ` k ) ) = { ( Q ` k ) } ,
                                 { ( Q ` k ) , ( Q ` ( k + 1 ) ) }
                                 C_ ( ( iEdg ` S ) ` ( H ` k ) ) ) ) $=
      ( vx cv cfv c1 caddc wceq ciedg csn cpr wss wif chash cfzo wral wlkp1lem6
      co cc0 w3a cwlks wbr cdm cword wcel cfz wf cvv wb cedg elfvexd iswlkg syl
      eqcomi oveq2i raleqi biimpi 3ad2ant3 syl6bi mpd 3adant3 simp3 simp1 sneqd
      eqeq12 eqeq12d preq12 sseq12d ifpbi123d biimprd ral2imi sylc wa wlkp1lem3
      cop cun adantr wn 3jca fsnunfv fveq2 wlkp1lem5 cn0 cuz wlkf lencl elnn0uz
      wi eleq1i sylbb1 3syl sylibr nn0fz0 rspcdva fveq1i ovex wlkp1lem1 mp3an2i
      sylib syl5eq eqeq2d eqcom syl6bb sneq adantl ex sylbid imbi12d syl5ibrcom
      eqtrd eqeq1 fveq2d imp 3eqtrd wlkp1lem7 ifpimpda wlkp1lem2 oveq2d raleqdv
      fzosplitsn ralunb fvex eqeltri oveq1 preq12d ralsng mp1i anbi2d mpbir2and
      a1i 3bitrd ) AGULZEUMZUUTUNUOVFZEUMZUPZUUTKUMZFUQUMZUMZUVAURZUPZUVAUVCUSZ
      UVGUTZVAZGVGKVBUMZVCVFZVDZUVLGVGMVCVFZVDZMEUMZMUNUOVFZEUMZUPZMKUMZUVFUMZU
      VRURZUPZUVRUVTUSZUWCUTZVAZAUVAUUTDUMZUPZUVCUVBDUMZUPZUVGUUTIUMLUMZUPZVHZG
      UVPVDUWIUWKUPZUWMUWIURZUPZUWIUWKUSZUWMUTZVAZGUVPVDZUVQABCDEFGHIJKLMNOPQRS
      TUAUBUCUDUEUFUGUHUIVEAIDJVIUMVJZUXBUBAUXCILVKZVLVMZVGIVBUMZVNVFNDVOZUXAGV
      GUXFVCVFZVDZVHZUXBAJVPVMUXCUXJVQAHVRJUDVSDGIJLNVPOPVTWAUXIUXEUXBUXGUXIUXB
      UXAGUXHUVPUXFMVGVCMUXFUCWBWCWDWEWFWGWHUWOUXAUVLGUVPUWOUVLUXAUWOUVDUVIUVKU
      WPUWRUWTUWJUWLUVDUWPVQUWNUVAUWIUVCUWKWMWIUWOUVGUWMUVHUWQUWJUWLUWNWJZUWOUV
      AUWIUWJUWLUWNWKWLWNUWOUVJUWSUVGUWMUWJUWLUVJUWSUPUWNUVAUVCUWIUWKWOWIUXKWPW
      QWRWSWTAUWAUWEUWGAUWAXAZUWCBLBHXCURXDUMZHUWDAUWCUXMUPUWAABCDFHIJKLMNOPQRS
      TUAUBUCUDUEUFUGXBXEUXLBVPVMZHJVRUMZVMZBUXDVMXFZVHZUXMHUPAUXRUWAAUXNUXPUXQ
      SUDUAXGXELVPUXOBHXHWAAUWAHUWDUPZAUVRMDUMZUPZUWAUXSXPZAUKULZEUMZUYCDUMZUPU
      YAUKVGMVNVFZMUYCMUPUYDUVRUYEUXTUYCMEXIUYCMDXIWNABCDEFUKHIJKLMNOPQRSTUAUBU
      CUDUEUFUGUHUIXJAMXKVMZMUYFVMAMVGXLUMVMZUYGAUXCUXEUYHUBDIJLPXMUXEUXFXKVMZU
      YHUXDIXNUYGUYIUYHMUXFXKUCXQMXOZXRWAXSZUYJXTMYAYGYBAUYBUYAUXTUVTUPZHUXTURZ
      UPZXPAUYLCUXTUPZUYNAUYLUXTCUPUYOAUVTCUXTAUVTUVSDUVSCXCURXDZUMZCUVSEUYPUHY
      CUVSVPVMACNVMUVSDVKVMXFUYQCUPMUNUOYDTABCDIJLMNOPQRSTUAUBUCYEDVPNUVSCXHYFY
      HYIUXTCYJYKAUYOUYNAUYOXAHCURZUYMUJUYOUYRUYMUPACUXTYLYMYRYNYOUYAUWAUYLUXSU
      YNUVRUXTUVTYSUYAUWDUYMHUVRUXTYLYIYPYQWHUUAUUBAUWGUWAXFABCDEFHIJKLMNOPQRST
      UAUBUCUDUEUFUGUHUIUUCXEUUDAUVOUVLGUVPMURZXDZVDZUVQUVLGUYSVDZXAZUVQUWHXAAU
      VLGUVNUYTAUVNVGUVSVCVFZUYTAUVMUVSVGVCABCDFHIJKLMNOPQRSTUAUBUCUDUEUFUGUUEU
      UFAUYHVUDUYTUPUYKVGMUUHWAYRUUGVUAVUCVQAUVLGUVPUYSUUIUURAVUBUWHUVQMVPVMVUB
      UWHVQAMUXFVPUCIVBUUJUUKUVLUWHGMVPUUTMUPZUVDUVIUVKUWAUWEUWGVUEUVAUVRUVCUVT
      UUTMEXIZVUEUVBUVSEUUTMUNUOUULYTZWNVUEUVGUWCUVHUWDVUEUVEUWBUVFUUTMKXIYTZVU
      EUVAUVRVUFWLWNVUEUVJUWFUVGUWCVUEUVAUVRUVCUVTVUFVUGUUMVUHWPWQUUNUUOUUPUUSU
      UQ $.

    $( Append one path segment (edge) ` E ` from vertex ` ( P `` N ) ` to a
       vertex ` C ` to a walk ` <. F , P >. ` to become a walk ` <. H , Q >. `
       of the supergraph ` S ` obtained by adding the new edge to the graph
       ` G ` .  Formerly proven directly for Eulerian paths (for pseudographs),
       see ~ eupthp1 .  (Contributed by Mario Carneiro, 7-Apr-2015.)  (Revised
       by AV, 6-Mar-2021.)  (Prove shortened by AV, 18-Apr-2021.) $)
    wlkp1 $p |- ( ph -> H ( Walks ` S ) Q ) $=
      ( vk cwlks cfv wbr ciedg cdm cword wcel cc0 chash cfz co cvtx wf cv caddc
      c1 wceq csn cpr wss wif cfzo wral cun cop cin c0 wlkf eqcomi oveq2i feq2i
      wrdf sylib 3syl cvv fvex eqeltri a1i snidg syl cedg dmsnopg eleqtrrd fsnd
      fzodisjsn fun syl21anc wlkp1lem2 oveq2d cuz cn0 wlkcl wi wb eleq1 elnn0uz
      eqcoms biimpi syl6bi ax-mp fzosplitsn syl6eq feq123d mpbird iswrdb sylibr
      eqtrd dmeqd dmun wlkp ovexd fzp1disj fzsuc feq23d wlkp1lem8 w3a wlkp1lem4
      unidm eqid iswlk mpbir3and ) AJEFUKULUMZJFUNULZUOZUPUQZURJUSULZUTVAZFVBUL
      ZEVCZUJVDZEULZYTVFVEVAEULZVGYTJULYMULZUUAVHVGUUAUUBVIUUCVJVKUJURYPVLVAZVM
      ZAUUDYNJVCZYOAUUFURLVLVAZLVHZVNZKUOZBGVOVHZUOZVNZHLBVOVHZVNZVCZAUUGUUJHVC
      ZUUHUULUUNVCUUGUUHVPVQVGZUUPAHDIUKULUMZHUUJUPUQZUUQUADHIKOVRUUTURHUSULZVL
      VAZUUJHVCUUQUUJHWBUVBUUGUUJHUVALURVLLUVAUBVSVTWAWCWDALBWEUULLWEUQALUVAWEU
      BHUSWFWGWHABBVHZUULABWEUQBUVCUQRBWEWIWJAGIWKULZUQUULUVCVGUCBGUVDWLWJWMWNU
      URAURLWOWHUUGUUHUUJUULHUUNWPWQAUUDUUIYNUUMJUUOJUUOVGAUFWHAUUDURLVFVEVAZVL
      VAZUUIAYPUVEURVLABCDFGHIJKLMNOPQRSTUAUBUCUDUEUFWRZWSALURWTULUQZUVFUUIVGAU
      USUVAXAUQZUVHUADHIXBLUVAVGZUVIUVHXCUBUVJUVILXAUQZUVHUVIUVKXDUVALUVALXAXEX
      GUVKUVHLXFXHXIXJWDZURLXKWJXQAYNKUUKVNZUOUUMAYMUVMUEXRKUUKXSXLXMXNYNJXOXPA
      YSURUVEUTVAZMDUVECVOVHZVNZVCZAUVQURLUTVAZUVEVHZVNZMMVNZUVPVCZAUVRMDVCZUVS
      MUVOVCUVRUVSVPVQVGZUWBAURUVAUTVAZMDVCZUWCAUUSUWFUADHIMNXTWJUVRUWEMDLUVAUR
      UTUBVTWAXPAUVECWEMALVFVEYASWNUWDAURLYBWHUVRUVSMMDUVOWPWQAUVNMUVTUWAUVPAUV
      HUVNUVTVGUVLURLYCWJMUWAVGAUWAMMYHVSWHYDXNAYQUVNYRMEUVPEUVPVGAUGWHAYPUVEUR
      UTUVGWSUHXMXNABCDEFUJGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIYEAFWEUQJWEUQEWEUQYF
      YLYOYSUUEYFXDABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHYGEWEUJJFYMYRWEWEYRYIYMY
      IYJWJYK $.
  $}

  ${
    $d F k $.  $d P k $.
    wlkd.p $e |- ( ph -> P e. Word _V ) $.
    wlkd.f $e |- ( ph -> F e. Word _V ) $.
    wlkd.l $e |- ( ph -> ( # ` P ) = ( ( # ` F ) + 1 ) ) $.
    ${
      $d V k $.
      wlkdlem1.v $e |- ( ph -> A. k e. ( 0 ... ( # ` F ) ) ( P ` k ) e. V ) $.
      $( Lemma 1 for ~ wlkd .  (Contributed by AV, 7-Feb-2021.) $)
      wlkdlem1 $p |- ( ph -> P : ( 0 ... ( # ` F ) ) --> V ) $=
        ( cc0 chash cfv cfzo co cvv wf cfz cword wcel syl wrdf c1 caddc cz wceq
        oveq2d cn0 lencl nn0zd fzval3 eqtr4d feq2d wss cv wb ssv frnssb sylancr
        wral bitrd mpbid ) AJBKLZMNZOBPZJDKLZQNZEBPZABORZSVDFOBUATAVDVFOBPZVGAV
        CVFOBAVCJVEUBUCNZMNZVFAVBVJJMHUFAVEUDSVFVKUEAVEADVHSVEUGSGODUHTUIJVEUJT
        UKULAEOUMCUNBLESCVFUSVIVGUOEUPIVFCBEOUQURUTVA $.
    $}

    $d I k $.  $d ph k $.
    wlkd.e $e |- ( ph -> A. k e. ( 0 ..^ ( # ` F ) )
                    { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) $.
    $( Lemma 2 for ~ wlkd .  (Contributed by AV, 7-Feb-2021.) $)
    wlkdlem2 $p |- ( ph -> ( ( ( # ` F ) e. NN -> ( P ` ( # ` F ) )
                                         e. ( I ` ( F ` ( ( # ` F ) - 1 ) ) ) )
                              /\ A. k e. ( 0 ..^ ( # ` F ) )
                                 ( P ` k ) e. ( I ` ( F ` k ) ) ) ) $=
      ( cfv wcel c1 co wi wral caddc cpr fveq2d wa fvex chash cmin cc0 cfzo wss
      cn cv fzo0end wceq fveq2 oveq1 preq12d sseq12d rspcv syl prss nncn npcan1
      cc eleq1d biimpd adantld syl5bir syld syl5com sylbir a1i ralimdva mpd jca
      simpl ) ADUAJZUFKZVLBJZVLLUBMZDJZEJZKZNCUGZBJZVSDJZEJZKZCUCVLUDMZOZAVTVSL
      PMZBJZQZWBUEZCWDOZVMVRIVMWJVOBJZVOLPMZBJZQZVQUEZVRVMVOWDKWJWONVLUHWIWOCVO
      WDVSVOUIZWHWNWBVQWPVTWKWGWMVSVOBUJWPWFWLBVSVOLPUKRULWPWAVPEVSVODUJRUMUNUO
      WOWKVQKZWMVQKZSVMVRWKWMVQVOBTWLBTUPVMWRVRWQVMWRVRVMWMVNVQVMWLVLBVMVLUSKWL
      VLUIVLUQVLURUORUTVAVBVCVDVEAWJWEIAWIWCCWDWIWCNAVSWDKSWIWCWGWBKZSWCVTWGWBV
      SBTWFBTUPWCWSVKVFVGVHVIVJ $.

    $( Lemma 3 for ~ wlkd .  (Contributed by Alexander van der Vekens,
       10-Nov-2017.)  (Revised by AV, 7-Feb-2021.) $)
    wlkdlem3 $p |- ( ph -> F e. Word dom I ) $=
      ( cvv cword wcel cv cfv cdm cc0 chash cfzo co wral cn c1 cmin wi wlkdlem2
      wa elfvdm ralimi adantl syl iswrdsymb syl2anc ) ADJKLCMZDNZEOZLZCPDQNZRSZ
      TZDUOKLGAUQUALUQBNUQUBUCSDNENLUDZUMBNZUNENLZCURTZUFUSABCDEFGHIUEVCUSUTVBU
      PCURVAUNEUGUHUIUJCUODUKUL $.

    wlkd.n $e |- ( ph -> A. k e. ( 0 ..^ ( # ` F ) )
                            ( P ` k ) =/= ( P ` ( k + 1 ) ) ) $.
    $( Lemma 4 for ~ wlkd .  (Contributed by Alexander van der Vekens,
       1-Feb-2018.)  (Revised by AV, 23-Jan-2021.) $)
    wlkdlem4 $p |- ( ph -> A. k e. ( 0 ..^ ( # ` F ) )
            if- ( ( P ` k ) = ( P ` ( k + 1 ) ) ,
                  ( I ` ( F ` k ) ) = { ( P ` k ) } ,
                  { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) $=
      ( cv cfv c1 caddc co cpr wss wral wceq wa cc0 chash wne csn wif r19.26 wn
      cfzo wb df-ne ifpfal sylbi biimparc ralimi sylbir syl2anc ) ACKZBLZUQMNOB
      LZPUQDLELZQZCUADUBLUHOZRZURUSUCZCVBRZURUSSZUTURUDSZVAUEZCVBRZIJVCVETVAVDT
      ZCVBRVIVAVDCVBUFVJVHCVBVDVHVAVDVFUGVHVAUIURUSUJVFVGVAUKULUMUNUOUP $.

    $d G k $.  $d V k $.  $d ph k $.
    wlkd.g $e |- ( ph -> G e. W ) $.
    wlkd.v $e |- V = ( Vtx ` G ) $.
    wlkd.i $e |- I = ( iEdg ` G ) $.
    wlkd.a $e |- ( ph -> A. k e. ( 0 ... ( # ` F ) ) ( P ` k ) e. V ) $.
    $( Two words representing a walk in a graph.  (Contributed by AV,
       7-Feb-2021.) $)
    wlkd $p |- ( ph -> F ( Walks ` G ) P ) $=
      ( cfv wcel co cwlks wbr cdm cword cc0 chash cfz wf cv c1 wceq csn cpr wss
      caddc wif cfzo wral wlkdlem3 wlkdlem1 wlkdlem4 cvv w3a wb iswlk mpbir3and
      syl3anc ) ADBEUARUBZDFUCUDSZUEDUFRZUGTGBUHZCUIZBRZVLUJUOTBRZUKVLDRFRZVMUL
      UKVMVNUMVOUNUPCUEVJUQTURZABCDFIJKLUSABCDGIJKQUTABCDFIJKLMVAAEHSDVBUDZSBVQ
      SVHVIVKVPVCVDNJIBVQCDEFGHVQOPVEVGVF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Walks for loop-free graphs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d F k x $.  $d G k $.  $d I k x $.  $d P k $.  $d V k x $.
    lfgrwlkprop.i $e |- I = ( iEdg ` G ) $.
    $( Two adjacent vertices in a walk are different in a loop-free graph.
       (Contributed by AV, 28-Jan-2021.) $)
    lfgrwlkprop $p |- ( ( F ( Walks ` G ) P
                            /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } )
            -> A. k e. ( 0 ..^ ( # ` F ) ) ( P ` k ) =/= ( P ` ( k + 1 ) ) ) $=
      ( cfv wbr c2 chash cle c1 co wi wcel wceq cvv wa cwlks cdm cv cpw crab wf
      caddc wne cc0 cfzo wral cword cfz cvtx csn cpr wss wif wb wlkv eqid iswlk
      w3a syl ifptru adantr simplr wrdsymbcl ad4ant14 ffvelrnd fveq2 elrab fvex
      breq2d hashsng ax-mp breq2i clt 1lt2 wn 1re 2re ltnlei pm2.21 sylbi com12
      syl6bi adantl a1i syl5bi mpd sylbid ex neqne 2a1d pm2.61i ralimdva 3impia
      com23 pm2.43i imp ) DBEUAIJZFUBZKAUCZLIZMJZAGUDZUEZFUFZCUCZBIZXJNUGOBIZUH
      ZCUIDLIZUJOZUKZXBXIXPPZXBXBDXCULQZUIXNUMOEUNIZBUFZXKXLRZXJDIZFIZXKUOZRZXK
      XLUPYCUQZURZCXOUKZVCZXQXBESQDSQBSQVCXBYIUSBDEUTBSCDEFXSSSXSVAHVBVDXRXTYHX
      QXRXTTZXIYHXPYJXIYHXPPYJXITZYGXMCXOYAYKXJXOQZTZYGXMPZPYAYMYNYAYMTYGYEXMYA
      YGYEUSYMYAYEYFVEVFYMYEXMPZYAYMYCXHQZYOYMXCXHYBFYJXIYLVGXRYLYBXCQXTXIXJXCD
      VHVIVJYPYCXGQZKYCLIZMJZTZYMYOXFYSAYCXGXDYCRXEYRKMXDYCLVKVNVLYTYOPYMYSYOYQ
      YEYSXMYEYSKYDLIZMJZXMYEYRUUAKMYCYDLVKVNUUBKNMJZXMUUANKMXKSQUUANRXJBVMXKSV
      OVPVQNKVRJZUUCXMPZVSUUDUUCVTUUENKWAWBWCUUCXMWDWEVPWEWGWFWHWIWJWKWHWLWMYAV
      TXMYMYGXKXLWNWOWPWQWMWSWRWGWTXA $.

    lfgriswlk.v $e |- V = ( Vtx ` G ) $.
    $( Conditions for a pair of functions to be a walk in a loop-free graph.
       (Contributed by AV, 28-Jan-2021.) $)
    lfgriswlk $p |- ( ( G e. W
                        /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } )
             -> ( F ( Walks ` G ) P <-> ( F e. Word dom I
                                      /\ P : ( 0 ... ( # ` F ) ) --> V
                                      /\ A. k e. ( 0 ..^ ( # ` F ) )
                                         ( ( P ` k ) =/= ( P ` ( k + 1 ) )
                                           /\ { ( P ` k ) , ( P ` ( k + 1 ) ) }
                                              C_ ( I ` ( F ` k ) ) ) ) ) ) $=
      ( wcel cv chash cfv wbr wf wa co wral adantl cdm cle cpw crab cwlks cword
      c2 cc0 cfz c1 caddc wne cpr wss cfzo w3a wlkf wlkp lfgrwlkprop expcom imp
      wi wlkvtxeledg r19.26 sylanbrc 3jca csn wif simpr1 simpr2 wn df-ne ifpfal
      wceq wb sylbi biimpar ralimi 3ad2ant3 iswlkg ad2antrr mpbir3and impbida )
      EHKZFUAZUGALMNUBOAGUCUDFPZQZDBEUENOZDWEUFKZUHDMNZUIRGBPZCLZBNZWLUJUKRBNZU
      LZWMWNUMWLDNFNZUNZQZCUHWJUORZSZUPZWGWHQZWIWKWTWHWIWGBDEFIUQTWHWKWGBDEGJUR
      TXBWOCWSSZWQCWSSZWTWGWHXCWFWHXCVBWDWHWFXCABCDEFGIUSUTTVAWHXDWGBCDEFIVCTWO
      WQCWSVDVEVFWGXAQWHWIWKWMWNVNZWPWMVGVNZWQVHZCWSSZWGWIWKWTVIWGWIWKWTVJXAXHW
      GWTWIXHWKWRXGCWSWOXGWQWOXEVKXGWQVOWMWNVLXEXFWQVMVPVQVRVSTWDWHWIWKXHUPVOWF
      XABCDEFGHJIVTWAWBWC $.

    $( In a loop-free graph, each walk has no loops!  (Contributed by AV,
       2-Feb-2021.) $)
    lfgrwlknloop $p |- ( ( I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) }
                            /\ F ( Walks ` G ) P )
            -> A. k e. ( 0 ..^ ( # ` F ) ) ( P ` k ) =/= ( P ` ( k + 1 ) ) ) $=
      ( cfv wbr cv chash wf co cc0 wral cvv wcel wi cwlks cdm c2 cle crab caddc
      cpw c1 wne cfzo w3a wlkv wa cword cfz cpr lfgriswlk simpl ralimi 3ad2ant3
      wss syl6bi ex com23 3ad2ant1 mpcom impcom ) DBEUAJKZFUBZUCALMJUDKAGUGUEFN
      ZCLZBJZVKUHUFOBJZUIZCPDMJZUJOZQZERSZDRSZBRSZUKVHVJVQTZBDEULVRVSVHWATVTVRV
      JVHVQVRVJVHVQTVRVJUMVHDVIUNSZPVOUOOGBNZVNVLVMUPVKDJFJVAZUMZCVPQZUKVQABCDE
      FGRHIUQWFWBVQWCWEVNCVPVNWDURUSUTVBVCVDVEVFVG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Trails
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Trails $.
  $c TrailsOn $.

  $( Extend class notation with trails (within a graph). $)
  ctrls $a class Trails $.

  $( Extend class notation with trails between two vertices (within a
     graph). $)
  ctrlson $a class TrailsOn $.

  ${
    $d f g p $.
    $( Define the set of all Trails (in an undirected graph).

       According to Wikipedia ("Path (graph theory)",
       ~ https://en.wikipedia.org/wiki/Path_(graph_theory) , 3-Oct-2017):  "A
       trail is a walk in which all edges are distinct.

       According to Bollobas:  "... walk is called a trail if all its edges are
       distinct.", see Definition of [Bollobas] p. 5.

       Therefore, a trail can be represented by an injective mapping f from {
       1 , ... , n } and a mapping p from { 0 , ... , n }, where f enumerates
       the (indices of the) different edges, and p enumerates the vertices.  So
       the trail is also represented by the following sequence: p(0) e(f(1))
       p(1) e(f(2)) ... p(n-1) e(f(n)) p(n).  (Contributed by Alexander van der
       Vekens and Mario Carneiro, 4-Oct-2017.)  (Revised by AV,
       28-Dec-2020.) $)
    df-trls $a |- Trails = ( g e. _V |-> { <. f , p >. |
                                      ( f ( Walks ` g ) p /\ Fun `' f ) } ) $.

    $d a b f g p $.
    $( Define the collection of trails with particular endpoints (in an
       undirected graph).  (Contributed by Alexander van der Vekens and Mario
       Carneiro, 4-Oct-2017.)  (Revised by AV, 28-Dec-2020.) $)
    df-trlson $a |- TrailsOn = ( g e. _V
                                |-> ( a e. ( Vtx ` g ) , b e. ( Vtx ` g )
                         |-> { <. f , p >. | ( f ( a ( WalksOn ` g ) b ) p
                                               /\ f ( Trails ` g ) p ) } ) ) $.
  $}

  ${
    $d f g p $.
    $( The set ` ( Trails `` G ) ` of all trails on ` G ` is a set of pairs by
       our definition of a trail, and so is a relation.  (Contributed by AV,
       29-Oct-2021.) $)
    reltrls $p |- Rel ( Trails ` G ) $=
      ( vf vp vg cv cwlks cfv wbr ccnv wfun wa cvv ctrls df-trls relmptopab ) B
      EZCEDEFGHPIJKDBCLAMBDCNO $.
  $}

  ${
    $d G f g p $.
    $( The set of trails (in an undirected graph).  (Contributed by Alexander
       van der Vekens, 20-Oct-2017.)  (Revised by AV, 28-Dec-2020.)  (Revised
       by AV, 29-Oct-2021.) $)
    trlsfval $p |- ( Trails ` G ) = { <. f , p >. |
                                      ( f ( Walks ` G ) p /\ Fun `' f ) } $=
      ( vg ctrls cfv cv cwlks wbr ccnv wfun copab wceq wtru biidd cvv wcel wksv
      wa a1i df-trls fvmptopab trud ) BEFAGZCGBHFIZUDJKZSACLMNUFUFACDHEBNDGBMSU
      FOUEACLPQNABCRTADCUAUBUC $.

    $d F f p $.  $d P f p $.
    $( Conditions for a pair of classes/functions to be a trail (in an
       undirected graph).  (Contributed by Alexander van der Vekens,
       20-Oct-2017.)  (Revised by AV, 28-Dec-2020.)  (Revised by AV,
       29-Oct-2021.) $)
    istrl $p |- ( F ( Trails ` G ) P
                  <-> ( F ( Walks ` G ) P /\ Fun `' F ) ) $=
      ( vf vp cv ccnv wfun ctrls cwlks trlsfval wceq cnveq funeqd adantr relwlk
      wb brfvopabrbr ) DFZGZHZBGZHZDEIJBACDCEKSBLZUAUCQEFALUDTUBSBMNOCPR $.
  $}

  $( A trail is a walk.  (Contributed by Alexander van der Vekens,
     20-Oct-2017.)  (Revised by AV, 7-Jan-2021.)  (Proof shortened by AV,
     29-Oct-2021.) $)
  trliswlk $p |- ( F ( Trails ` G ) P -> F ( Walks ` G ) P ) $=
    ( ctrls cfv wbr cwlks ccnv wfun istrl simplbi ) BACDEFBACGEFBHIABCJK $.

  ${
    trlf1.i $e |- I = ( iEdg ` G ) $.
    $( The enumeration ` F ` of a trail ` <. F , P >. ` is injective.
       (Contributed by AV, 20-Feb-2021.)  (Proof shortened by AV,
       29-Oct-2021.) $)
    trlf1 $p |- ( F ( Trails ` G ) P
                  -> F : ( 0 ..^ ( # ` F ) ) -1-1-> dom I ) $=
      ( ctrls cfv wbr cwlks ccnv wfun wa cc0 chash cfzo co cdm wf1 istrl cword
      wcel wf wi wlkf wrdf df-f1 simplbi2 3syl imp sylbi ) BACFGHBACIGHZBJKZLMB
      NGOPZDQZBRZABCSUKULUOUKBUNTUAUMUNBUBZULUOUCABCDEUDUNBUEUOUPULUMUNBUFUGUHU
      IUJ $.
  $}

  ${
    $( TODO-AV: ` H = ( F |` ( 0 ..^ N ) ) ` could be replaced by
                ` H = ( F substr <. 0 , N >. ) ` or
                ` H = ( F prefix N ) ` ! $)
    trlres.v $e |- V = ( Vtx ` G ) $.
    trlres.i $e |- I = ( iEdg ` G ) $.
    trlres.d $e |- ( ph -> F ( Trails ` G ) P ) $.
    trlres.n $e |- ( ph -> N e. ( 0 ..^ ( # ` F ) ) ) $.
    trlres.h $e |- H = ( F |` ( 0 ..^ N ) ) $.
    $( Lemma for ~ trlres .  Formerly part of proof of ~ eupthres .
       (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by Mario
       Carneiro, 3-May-2015.)  (Revised by AV, 6-Mar-2021.) $)
    trlreslem $p |- ( ph -> H : ( 0 ..^ ( # ` H ) )
                              -1-1-onto-> dom ( I |` ( F " ( 0 ..^ N ) ) ) ) $=
      ( cc0 chash cfv cfzo co wcel 3syl cima cres cdm wf1 wss ctrls wbr syl cuz
      wf1o trlf1 elfzouz2 fzoss2 f1ores syl2anc wceq a1i fveq2i cword cfz cwlks
      trliswlk wlkf elfzofz wlkreslem0 syl5eq oveq2d wf ssdmres sylib f1oeq123d
      wrdf fimass mpbird ) ANEOPZQRZFCNGQRZUAZUBUCZEUJVQVRCVQUBZUJZANCOPZQRZFUC
      ZCUDZVQWCUEZWAACBDUFPUGZWEKBCDFJUKUHAGWCSZWBGUIPSWFLGNWBULGNWBUMTWCWDVQCU
      NUOAVPVQVSVREVTEVTUPAMUQAVOGNQAVOVTOPZGEVTOMURACWDUSSZGNWBUTRSZWIGUPAWGCB
      DVAPUGZWJKBCDVBZBCDFJVCZTAWHWKLGNWBVDUHWDCGVEUOVFVGAVRWDUEZVSVRUPAWGWLWOK
      WMWLWJWCWDCVHWOWNWDCVLWCWDCVQVMTTVRFVIVJVKVN $.

    trlres.s $e |- ( ph -> ( Vtx ` S ) = V ) $.
    trlres.e $e |- ( ph -> ( iEdg ` S ) = ( I |` ( F " ( 0 ..^ N ) ) ) ) $.
    trlres.q $e |- Q = ( P |` ( 0 ... N ) ) $.
    $( The restriction ` <. H , Q >. ` of a trail ` <. F , P >. ` to an initial
       segment of the trail (of length ` N ` ) forms a trail on the subgraph
       ` S ` consisting of the edges in the initial segment.  (Contributed by
       AV, 6-Mar-2021.)  (Proof shortened by AV, 29-Oct-2021.) $)
    trlres $p |- ( ph -> H ( Trails ` S ) Q ) $=
      ( cfv wbr cwlks ccnv wfun ctrls trliswlk syl wlkres cc0 cfzo co cima cres
      chash cdm wf1o wf1 trlreslem f1of1 wf df-f1 simprbi 3syl istrl sylanbrc )
      AGCDUASTGUBUCZGCDUDSTABCDEFGHIJKLAEBFUDSTEBFUASTMBEFUEUFNPQORUGAUHGUMSUIU
      JZHEUHIUIUJUKULUNZGUOVFVGGUPZVEABEFGHIJKLMNOUQVFVGGURVHVFVGGUSVEVFVGGUTVA
      VBCGDVCVD $.
  $}

  ${
    $d G f k p $.  $d I f k p $.  $d V k p $.
    upgrtrls.v $e |- V = ( Vtx ` G ) $.
    upgrtrls.i $e |- I = ( iEdg ` G ) $.
    $( The set of trails in a pseudograph, definition of walks expanded.
       (Contributed by Alexander van der Vekens, 20-Oct-2017.)  (Revised by AV,
       7-Jan-2021.) $)
    upgrtrls $p |- ( G e. UPGraph -> ( Trails ` G ) = { <. f , p >. |
            ( ( f e. Word dom I /\ Fun `' f )
              /\ p : ( 0 ... ( # ` f ) ) --> V
              /\ A. k e. ( 0 ..^ ( # ` f ) )
                 ( I ` ( f ` k ) ) = { ( p ` k ) , ( p ` ( k + 1 ) ) } ) } ) $=
      ( cupgr wcel ctrls cfv cv cwlks wa copab cc0 co w3a 3anass wbr ccnv cword
      wfun cdm chash cfz wf c1 caddc cpr wceq cfzo wral trlsfval upgriswlk an32
      anbi1d anbi1i 3bitr4i syl6bb opabbidv syl5eq ) CIJZCKLAMZFMZCNLUAZVEUBUDZ
      OZAFPVEDUEUCJZVHOZQVEUFLZUGREVFUHZBMZVELDLVNVFLVNUIUJRVFLUKULBQVLUMRUNZSZ
      AFPACFUOVDVIVPAFVDVIVJVMVOSZVHOZVPVDVGVQVHVFBVECDEGHUPURVJVMVOOZOZVHOVKVS
      OVRVPVJVSVHUQVQVTVHVJVMVOTUSVKVMVOTUTVAVBVC $.

    $d F k $.  $d P k $.
    $( Properties of a pair of functions to be a trail in a pseudograph,
       definition of walks expanded.  (Contributed by Alexander van der Vekens,
       20-Oct-2017.)  (Revised by AV, 7-Jan-2021.)  (Revised by AV,
       29-Oct-2021.) $)
    upgristrl $p |- ( G e. UPGraph -> ( F ( Trails ` G ) P
      <-> ( ( F e. Word dom I /\ Fun `' F ) /\ P : ( 0 ... ( # ` F ) ) --> V
              /\ A. k e. ( 0 ..^ ( # ` F ) )
                 ( I ` ( F ` k ) ) = { ( P ` k ) , ( P ` ( k + 1 ) ) } ) ) ) $=
      ( ctrls cfv wbr cwlks ccnv wfun wa wcel cc0 co w3a 3anass cupgr cdm cword
      chash cfz wf cv c1 caddc cpr wceq cfzo wral istrl upgriswlk anbi1d anbi1i
      an32 3bitr4i syl6bb syl5bb ) CADIJKCADLJKZCMNZOZDUAPZCEUBUCPZVCOZQCUDJZUE
      RFAUFZBUGZCJEJVJAJVJUHUIRAJUJUKBQVHULRUMZSZACDUNVEVDVFVIVKSZVCOZVLVEVBVMV
      CABCDEFGHUOUPVFVIVKOZOZVCOVGVOOVNVLVFVOVCURVMVPVCVFVIVKTUQVGVIVKTUSUTVA
      $.

    $( Properties of a pair of a one-to-one function into the set of indices of
       edges and a function into the set of vertices to be a trail in a
       pseudograph.  (Contributed by Alexander van der Vekens, 20-Oct-2017.)
       (Revised by AV, 7-Jan-2021.)  (Revised by AV, 29-Oct-2021.) $)
    upgrf1istrl $p |- ( G e. UPGraph -> ( F ( Trails ` G ) P
                   <-> ( F : ( 0 ..^ ( # ` F ) ) -1-1-> dom I
                         /\ P : ( 0 ... ( # ` F ) ) --> V
                         /\ A. k e. ( 0 ..^ ( # ` F ) ) ( I ` ( F ` k ) )
                                   = { ( P ` k ) , ( P ` ( k + 1 ) ) } ) ) ) $=
      ( cupgr wcel ctrls cfv wbr cdm cword wa cc0 co wf w3a ccnv wfun chash cfz
      cv c1 caddc cpr wceq cfzo wral wf1 upgristrl wb iswrdb a1i anbi1d syl6bbr
      df-f1 3anbi1d bitrd ) DIJZCADKLMCENZOJZCUAUBZPZQCUCLZUDRFASZBUEZCLELVIALV
      IUFUGRALUHUIBQVGUJRZUKZTVJVCCULZVHVKTABCDEFGHUMVBVFVLVHVKVBVFVJVCCSZVEPVL
      VBVDVMVEVDVMUNVBVCCUOUPUQVJVCCUSURUTVA $.
  $}

  ${
    $d A a b f g p $.  $d B a b f g p $.  $d G a b f g p $.  $d O a b g $.
    $d Q a b g $.  $d V a b f g p $.
    wksonproplem.v $e |- V = ( Vtx ` G ) $.
    wksonproplem.b $e |- ( ( ( G e. _V /\ A e. V /\ B e. V )
                     /\ ( F e. _V /\ P e. _V ) ) -> ( F ( A ( W ` G ) B ) P
                          <-> ( F ( A ( O ` G ) B ) P /\ F ( Q ` G ) P ) ) ) $.
    wksonproplem.d $e |- W = ( g e. _V
                        |-> ( a e. ( Vtx ` g ) , b e. ( Vtx ` g )
                              |-> { <. f , p >. | ( f ( a ( O ` g ) b ) p
                                                    /\ f ( Q ` g ) p ) } ) ) $.
    wksonproplem.w $e |- ( ( ( G e. _V /\ A e. V /\ B e. V )
                               /\ f ( Q ` G ) p ) -> f ( Walks ` G ) p ) $.
    $( Lemma for theorems for properties of walks between two vertices, e.g.
       ~ trlsonprop .  (Contributed by AV, 16-Jan-2021.) $)
    wksonproplem $p |- ( F ( A ( W ` G ) B ) P
                 -> ( ( G e. _V /\ A e. V /\ B e. V ) /\ ( F e. _V /\ P e. _V )
                      /\ ( F ( A ( O ` G ) B ) P /\ F ( Q ` G ) P ) ) ) $=
      ( cvv wa cfv co wbr wcel w3a wi cvtx fvex eqeltri cv cwlks simp1 syl6eleq
      simp2 simp3 copab wksv mptmpt2opabovd fveq2 syl6eqr oveqd breqd bropfvvvv
      anbi12d mp2an 3anass anbi1i df-3an bitr4i sylibr biimpd imdistani mpancom
      a1i wceq ) GCABHKUAUBUCZHSUDZAJUDZBJUDZUEZGSUDCSUDTZTZGCABHIUAZUBZUCGCHDU
      AZUCTZTZVTWAWFUEWBVPWGVPVQVRVSTZWAUEZWBJSUDZWJVPWIUFJHUGUAZSOHUGUHUIZWLEU
      JZLUJZMUJZNUJZFUJZIUAZUBZUCZWMWNWQDUAZUCZTWMWNWOWPWCUBZUCZWMWNWEUCZTWMWNW
      DUCXETHABGJJSLCKWQUGUAZXFSSFMNEQVTWMWNHUKUAUCZUGUGIDEFLHKSSABMNVQVRVSULVT
      AJWKVQVRVSUNOUMVTBJWKVQVRVSUOOUMXGELUPSUDVTEHLUQVNRQURWQHVOZXFWKJWQHUGUSO
      UTZXIXHWTXDXBXEXHWSXCWMWNXHWRWCWOWPWQHIUSVAVBXHXAWEWMWNWQHDUSVBVDVCVEWBVQ
      WHTZWATWIVTXJWAVQVRVSVFVGVQWHWAVHVIVJWBVPWFWBVPWFPVKVLVMVTWAWFVHVJ $.
  $}

  ${
    $d A a b f g p $.  $d B a b f g p $.  $d G a b f g p $.  $d V a b f g p $.
    trlsonfval.v $e |- V = ( Vtx ` G ) $.
    $( The set of trails between two vertices.  (Contributed by Alexander van
       der Vekens, 4-Nov-2017.)  (Revised by AV, 7-Jan-2021.)  (Proof shortened
       by AV, 15-Jan-2021.)  (Revised by AV, 21-Mar-2021.) $)
    trlsonfval $p |- ( ( A e. V /\ B e. V ) -> ( A ( TrailsOn ` G ) B )
                       = { <. f , p >. | ( f ( A ( WalksOn ` G ) B ) p
                                           /\ f ( Trails ` G ) p ) } ) $=
      ( vg va vb wcel wa cv cwlks cfv wbr cvtx ctrls cvv syl6eleq 1vgrex adantr
      cwlkson ctrlson simpl simpr copab wksv a1i trliswlk adantl mptmpt2opabovd
      df-trlson ) AEKZBEKZLZCMZFMZDNOPZQQUCRCHFDUDSSABIJUNDSKUODAEGUAUBUPAEDQOZ
      UNUOUEGTUPBEUTUNUOUFGTUSCFUGSKUPCDFUHUIUQURDROPUSUPURUQDUJUKCHFIJUMUL $.

    $d F f p $.  $d P f p $.
    $( Properties of a pair of functions to be a trail between two given
       vertices.  (Contributed by Alexander van der Vekens, 3-Nov-2017.)
       (Revised by AV, 7-Jan-2021.)  (Revised by AV, 21-Mar-2021.) $)
    istrlson $p |- ( ( ( A e. V /\ B e. V ) /\ ( F e. U /\ P e. Z ) )
                     -> ( F ( A ( TrailsOn ` G ) B ) P
               <-> ( F ( A ( WalksOn ` G ) B ) P /\ F ( Trails ` G ) P ) ) ) $=
      ( vf vp wcel wa ctrlson cfv co wbr cv wceq breq12 cwlkson trlsonfval eqid
      ctrls copab breqd anbi12d brabga sylan9bb ) AGLBGLMZECABFNOPZQECJRZKRZABF
      UAOPZQZULUMFUDOZQZMZJKUEZQEDLCHLMECUNQZECUPQZMZUJUKUSECABJFGKIUBUFURVBJKE
      CUSDHULESUMCSMUOUTUQVAULEUMCUNTULEUMCUPTUGUSUCUHUI $.

    $( Properties of a trail between two vertices.  (Contributed by Alexander
       van der Vekens, 5-Nov-2017.)  (Revised by AV, 7-Jan-2021.)  (Proof
       shortened by AV, 16-Jan-2021.) $)
    trlsonprop $p |- ( F ( A ( TrailsOn ` G ) B ) P
           -> ( ( G e. _V /\ A e. V /\ B e. V ) /\ ( F e. _V /\ P e. _V )
                /\ ( F ( A ( WalksOn ` G ) B ) P /\ F ( Trails ` G ) P ) ) ) $=
      ( vf vg vp va vb ctrls cwlkson ctrlson cvv wcel wa cfv wbr co wb istrlson
      w3a 3simpc anim1i syl df-trlson cv cwlks trliswlk adantl wksonproplem ) A
      BCMHIDENFOJKLGEPQZAFQZBFQZUDZDPQCPQRZRUOUPRZURRDCABEOSUATDCABENSUATDCEMSZ
      TRUBUQUSURUNUOUPUEUFABCPDEFPGUCUGHIJKLUHHUIZJUIZUTTVAVBEUJSTUQVBVAEUKULUM
      $.
  $}

  $( A trail between two vertices is a trail.  (Contributed by Alexander van
     der Vekens, 12-Dec-2017.)  (Revised by AV, 7-Jan-2021.) $)
  trlsonistrl $p |- ( F ( A ( TrailsOn ` G ) B ) P -> F ( Trails ` G ) P ) $=
    ( ctrlson cfv co wbr cvv wcel cvtx w3a cwlkson ctrls eqid trlsonprop simp3r
    wa syl ) DCABEFGHIEJKAELGZKBUAKMZDJKCJKSZDCABENGHIZDCEOGIZSMUEABCDEUAUAPQUB
    UCUDUERT $.

  $( A trail between two vertices is a walk between these vertices.
     (Contributed by Alexander van der Vekens, 5-Nov-2017.)  (Revised by AV,
     7-Jan-2021.) $)
  trlsonwlkon $p |- ( F ( A ( TrailsOn ` G ) B ) P
                     -> F ( A ( WalksOn ` G ) B ) P ) $=
    ( ctrlson cfv co wbr cvv wcel cvtx w3a cwlkson ctrls eqid trlsonprop simp3l
    wa syl ) DCABEFGHIEJKAELGZKBUAKMZDJKCJKSZDCABENGHIZDCEOGIZSMUDABCDEUAUAPQUB
    UCUDUERT $.

  $( A trail is a trail between its endpoints.  (Contributed by AV,
     31-Jan-2021.) $)
  trlontrl $p |- ( F ( Trails ` G ) P
                   -> F ( ( P ` 0 ) ( TrailsOn ` G ) ( P ` ( # ` F ) ) ) P ) $=
    ( ctrls cfv wbr cc0 chash ctrlson co cwlkson cwlks trliswlk wlkonwlk syl id
    wcel wa cvv jca cvtx wb w3a eqid wlkepvtx wlkv simpll simplr 3simpc syl2anc
    adantl istrlson mpbir2and ) BACDEFZBAGAEZBHEAEZCIEJFZBAUOUPCKEJFZUNUNBACLEF
    ZURABCMZABCNOUNPUNUOCUAEZQZUPVAQZRZBSQZASQZRZRZUQURUNRUBUNUSVHUTUSVDCSQZVEV
    FUCZVHABCVAVAUDZUEABCUFVDVJRZVDVGVLVBVCVBVCVJUGVBVCVJUHTVJVGVDVIVEVFUIUKTUJ
    OUOUPASBCVASVKULOUM $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Paths and simple paths
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Paths $.
  $c SPaths $.
  $c PathsOn $.
  $c SPathsOn $.

  $( Extend class notation with paths (of a graph). $)
  cpths $a class Paths $.

  $( Extend class notation with simple paths (of a graph). $)
  cspths $a class SPaths $.

  $( Extend class notation with paths between two vertices (within a graph). $)
  cpthson $a class PathsOn $.

  $( Extend class notation with simple paths between two vertices (within a
     graph). $)
  cspthson $a class SPathsOn $.

  ${
    $d g f p $.
    $( Define the set of all paths (in an undirected graph).

       According to Wikipedia ("Path (graph theory)",
       ~ https://en.wikipedia.org/wiki/Path_(graph_theory) , 3-Oct-2017):  "A
       path is a trail in which all vertices (except possibly the first and
       last) are distinct. ... use the term simple path to refer to a path
       which contains no repeated vertices."

       According to Bollobas:  "... a path is a walk with distinct vertices.",
       see Notation of [Bollobas] p. 5.  (A walk with distinct vertices is
       actually a simple path, see ~ upgrwlkdvspth ).

       Therefore, a path can be represented by an injective mapping f from {
       1 , ... , n } and a mapping p from { 0 , ... , n }, which is injective
       restricted to the set { 1 , ... , n }, where f enumerates the (indices
       of the) different edges, and p enumerates the vertices.  So the path is
       also represented by the following sequence: p(0) e(f(1)) p(1)
       e(f(2)) ... p(n-1) e(f(n)) p(n).  (Contributed by Alexander van der
       Vekens and Mario Carneiro, 4-Oct-2017.)  (Revised by AV, 9-Jan-2021.) $)
    df-pths $a |- Paths = ( g e. _V |-> { <. f , p >. | ( f ( Trails ` g ) p
                          /\ Fun `' ( p |` ( 1 ..^ ( # ` f ) ) )
                          /\ ( ( p " { 0 , ( # ` f ) } )
                               i^i ( p " ( 1 ..^ ( # ` f ) ) ) ) = (/) ) } ) $.

    $( Define the set of all simple paths (in an undirected graph).

       According to Wikipedia ("Path (graph theory)",
       ~ https://en.wikipedia.org/wiki/Path_(graph_theory) , 3-Oct-2017):  "A
       path is a trail in which all vertices (except possibly the first and
       last) are distinct. ... use the term simple path to refer to a path
       which contains no repeated vertices."

       Therefore, a simple path can be represented by an injective mapping f
       from { 1 , ... , n } and an injective mapping p from { 0 , ... , n },
       where f enumerates the (indices of the) different edges, and p
       enumerates the vertices.  So the simple path is also represented by the
       following sequence: p(0) e(f(1)) p(1) e(f(2)) ... p(n-1) e(f(n)) p(n).
       (Contributed by Alexander van der Vekens, 20-Oct-2017.)  (Revised by AV,
       9-Jan-2021.) $)
    df-spths $a |- SPaths = ( g e. _V
                  |-> { <. f , p >. | ( f ( Trails ` g ) p /\ Fun `' p ) } ) $.

    $d a b g f p $.
    $( Define the collection of paths with particular endpoints (in an
       undirected graph).  (Contributed by Alexander van der Vekens and Mario
       Carneiro, 4-Oct-2017.)  (Revised by AV, 9-Jan-2021.) $)
    df-pthson $a |- PathsOn = ( g e. _V
                    |-> ( a e. ( Vtx ` g ) , b e. ( Vtx ` g )
                          |-> { <. f , p >. | ( f ( a ( TrailsOn ` g ) b ) p
                                                /\ f ( Paths ` g ) p ) } ) ) $.

    $( Define the collection of simple paths with particular endpoints (in an
       undirected graph).  (Contributed by Alexander van der Vekens,
       1-Mar-2018.)  (Revised by AV, 9-Jan-2021.) $)
    df-spthson $a |- SPathsOn = ( g e. _V
                   |-> ( a e. ( Vtx ` g ) , b e. ( Vtx ` g )
                         |-> { <. f , p >. | ( f ( a ( TrailsOn ` g ) b ) p
                                               /\ f ( SPaths ` g ) p ) } ) ) $.
  $}

  ${
    $d f g p $.
    $( The set ` ( Paths `` G ) ` of all paths on ` G ` is a set of pairs by
       our definition of a path, and so is a relation.  (Contributed by AV,
       30-Oct-2021.) $)
    relpths $p |- Rel ( Paths ` G ) $=
      ( vf vp vg cv ctrls cfv wbr c1 chash cfzo cres ccnv wfun cc0 cpr cima cin
      co c0 wceq w3a cvv cpths df-pths relmptopab ) BEZCEZDEFGHUHIUGJGZKSZLMNUH
      OUIPQUHUJQRTUAUBDBCUCAUDBDCUEUF $.
  $}

  ${
    $d G f g p $.
    $( The set of paths (in an undirected graph).  (Contributed by Alexander
       van der Vekens, 20-Oct-2017.)  (Revised by AV, 9-Jan-2021.)  (Revised by
       AV, 29-Oct-2021.) $)
    pthsfval $p |- ( Paths ` G ) = { <. f , p >. | ( f ( Trails ` G ) p
                            /\ Fun `' ( p |` ( 1 ..^ ( # ` f ) ) )
                            /\ ( ( p " { 0 , ( # ` f ) } )
                                 i^i ( p " ( 1 ..^ ( # ` f ) ) ) ) = (/) ) } $=
      ( vg cpths cfv cv ctrls wbr cima wceq wa w3a wtru cvv cmpt 3anass opabbii
      copab eqtri c1 chash cfzo co cres ccnv wfun cc0 cpr biidd wcel cwlks wksv
      cin c0 trliswlk ssopab2i ssexi a1i df-pths mpteq2i fvmptopab trud bicomi
      ) BEFZAGZCGZBHFIZVGUAVFUBFZUCUDZUEUFUGZVGUHVIUIJVGVJJUNUOKZLZLZACSZVHVKVL
      MZACSVEVOKNVMVMACDHEBNDGZBKLVMUJVHACSZOUKNVRVFVGBULFIZACSABCUMVHVSACVGVFB
      UPUQURUSEDOVFVGVQHFIZVKVLMZACSZPDOVTVMLZACSZPADCUTDOWBWDWAWCACVTVKVLQRVAT
      VBVCVNVPACVPVNVHVKVLQVDRT $.

    $( The set of simple paths (in an undirected graph).  (Contributed by
       Alexander van der Vekens, 21-Oct-2017.)  (Revised by AV, 9-Jan-2021.)
       (Revised by AV, 29-Oct-2021.) $)
    spthsfval $p |- ( SPaths ` G ) = { <. f , p >. |
                                       ( f ( Trails ` G ) p /\ Fun `' p ) } $=
      ( vg cspths cfv cv ctrls wbr ccnv wfun wa copab wceq wtru biidd cvv cwlks
      wcel wksv trliswlk ssopab2i ssexi a1i df-spths fvmptopab trud ) BEFAGZCGZ
      BHFIZUIJKZLACMNOUKUKACDHEBODGBNLUKPUJACMZQSOULUHUIBRFIZACMABCTUJUMACUIUHB
      UAUBUCUDADCUEUFUG $.

    $d F f p $.  $d P f p $.
    $( Conditions for a pair of classes/functions to be a path (in an
       undirected graph).  (Contributed by Alexander van der Vekens,
       21-Oct-2017.)  (Revised by AV, 9-Jan-2021.)  (Revised by AV,
       29-Oct-2021.) $)
    ispth $p |- ( F ( Paths ` G ) P <-> ( F ( Trails ` G ) P
                            /\ Fun `' ( P |` ( 1 ..^ ( # ` F ) ) )
                            /\ ( ( P " { 0 , ( # ` F ) } )
                                 i^i ( P " ( 1 ..^ ( # ` F ) ) ) ) = (/) ) ) $=
      ( vp vf cpths cfv wbr ctrls c1 chash cfzo co cres ccnv cc0 cima c0 wceq
      wa wfun cpr cin cv copab pthsfval 3anass opabbii eqtri simpr fveq2 oveq2d
      w3a adantr reseq12d cnveqd funeqd preq2d imaeq12d ineq12d anbi12d reltrls
      eqeq1d brfvopabrbr bitr4i ) BACFGZHBACIGZHZAJBKGZLMZNZOZUAZAPVIUBZQZAVJQZ
      UCZRSZTZTVHVMVRUMDUDZJEUDZKGZLMZNZOZUAZVTPWBUBZQZVTWCQZUCZRSZTZVSEDFIBACV
      FWAVTVGHZWFWKUMZEDUEWMWLTZEDUEECDUFWNWOEDWMWFWKUGUHUIWABSZVTASZTZWFVMWKVR
      WRWEVLWRWDVKWRVTAWCVJWPWQUJZWPWCVJSWQWPWBVIJLWABKUKZULUNZUOUPUQWRWJVQRWRW
      HVOWIVPWRVTAWGVNWSWPWGVNSWQWPWBVIPWTURUNUSWRVTAWCVJWSXAUSUTVCVACVBVDVHVMV
      RUGVE $.

    $( Conditions for a pair of classes/functions to be a simple path (in an
       undirected graph).  (Contributed by Alexander van der Vekens,
       21-Oct-2017.)  (Revised by AV, 9-Jan-2021.)  (Revised by AV,
       29-Oct-2021.) $)
    isspth $p |- ( F ( SPaths ` G ) P <-> ( F ( Trails ` G ) P
                                            /\ Fun `' P ) ) $=
      ( vp vf cv ccnv wfun cspths ctrls spthsfval wceq wb funeqd adantl reltrls
      cnveq brfvopabrbr ) DFZGZHZAGZHZEDIJBACECDKSALZUAUCMEFBLUDTUBSAQNOCPR $.
  $}

  $( A path is a trail (in an undirected graph).  (Contributed by Alexander van
     der Vekens, 21-Oct-2017.)  (Revised by AV, 9-Jan-2021.)  (Proof shortened
     by AV, 30-Oct-2021.) $)
  pthistrl $p |- ( F ( Paths ` G ) P -> F ( Trails ` G ) P ) $=
    ( cpths cfv wbr ctrls c1 chash cfzo co cres ccnv wfun cc0 cpr cima cin wceq
    c0 ispth simp1bi ) BACDEFBACGEFAHBIEZJKZLMNAOUCPQAUDQRTSABCUAUB $.

  $( A simple path is a path (in an undirected graph).  (Contributed by
     Alexander van der Vekens, 21-Oct-2017.)  (Revised by AV, 9-Jan-2021.)
     (Proof shortened by AV, 30-Oct-2021.) $)
  spthispth $p |- ( F ( SPaths ` G ) P -> F ( Paths ` G ) P ) $=
    ( ctrls cfv wbr ccnv wfun wa c1 chash cfzo co cc0 cima c0 wceq adantl eqtri
    cin cres cpr w3a cspths cpths simpl funres11 caddc 1e0p1 oveq1i ineq2i wcel
    cz 0z prinfzo0 ax-mp imaeq2i ima0 imain syl5reqr 3jca isspth ispth 3imtr4i
    ) BACDEFZAGHZIZVEAJBKEZLMZUAGHZANVHUBZOAVIOTZPQZUCBACUDEFBACUEEFVGVEVJVMVEV
    FUFVFVJVEVIAUGRVFVMVEVFPAVKVITZOZVLVOAPOPVNPAVNVKNJUHMZVHLMZTZPVIVQVKJVPVHL
    UIUJUKNUMULVRPQUNNVHUOUPSUQAURSVKVIAUSUTRVAABCVBABCVCVD $.

  $( A path is a walk (in an undirected graph).  (Contributed by AV,
     6-Feb-2021.) $)
  pthiswlk $p |- ( F ( Paths ` G ) P -> F ( Walks ` G ) P ) $=
    ( cpths cfv wbr ctrls cwlks pthistrl trliswlk syl ) BACDEFBACGEFBACHEFABCIA
    BCJK $.

  $( A simple path is a walk (in an undirected graph).  (Contributed by AV,
     16-May-2021.) $)
  spthiswlk $p |- ( F ( SPaths ` G ) P -> F ( Walks ` G ) P ) $=
    ( cspths cfv wbr cpths cwlks spthispth pthiswlk syl ) BACDEFBACGEFBACHEFABC
    IABCJK $.

  ${
    $( The inner vertices of a path are distinct from all other vertices.
       (Contributed by AV, 5-Feb-2021.)  (Proof shortened by AV,
       31-Oct-2021.) $)
    pthdivtx $p |- ( ( F ( Paths ` G ) P /\ ( I e. ( 1 ..^ ( # ` F ) )
                                     /\ J e. ( 0 ... ( # ` F ) ) /\ I =/= J ) )
                     -> ( P ` I ) =/= ( P ` J ) ) $=
      ( cfv wbr co wcel cc0 w3a wceq wi wa wb adantl ad2antrl sylbid ex a1d cfz
      cpths c1 chash cfzo wne ctrls cres ccnv wfun cpr cima c0 ispth cwlks cvtx
      cin wf trliswlk eqid wlkp w3o elfz0lmr wnel cn0 clt elfzo1 nnnn0 3ad2ant2
      cn sylbi fvinim0ffz sylan2 wn fveq2 eqeq2d cdm adantr fdm fzo0ss1 fzossfz
      ffun sstri sseli eleq2 syl5ibr syl imp adantrl simprr funfvima sylc eleq1
      jca syl5ibcom nnel syl6ibr necon2ad adantrd com23 3imp com12 fvres eqcomd
      eqeq12d wf1 wss mpan2 df-f1 biimpri sylan 3adant3 simpr f1veqaeq syl2an2r
      fssres ancomd ancoms necon3d adantld 3jaoi 3imp21 3exp 3syl ) BACUBFGZDUC
      BUDFZUEHZIZEJYFUAHZIZDEUFZKZDAFZEAFZUFZYEBACUGFGZAYGUHZUIUJZAJYFUKULAYGUL
      ZUQUMLZKYLYOMZABCUNYPYRYTUUAYPBACUOFGYICUPFZAURZYRYTUUAMMABCUSABCUUBUUBUT
      VAUUCYRYTUUAYLUUCYRYTKZYOYJYHYKUUDYOMZYJEJLZEYGIZEYFLZVBYHYKUUEMZMZEYFVCU
      UFUUJUUGUUHUUFYHUUIUUFYHNZUUEYKUUDUUKYOUUCYRYTUUKYOMZUUCYTUULMYRUUCUUKYTY
      OUUCUUKYTYOMZUUCUUKNZYTJAFZYSVDZYFAFZYSVDZNZYOUUKUUCYFVEIZYTUUSOZYHUUTUUF
      YHDVJIZYFVJIZDYFVFGZKUUTYFDVGUVCUVBUUTUVDYFVHVIVKZPAYFUUBVLZVMUUNUUPYOUUR
      UUNUUPYMYNUUNYMYNLZUUOYSIZUUPVNUUNUVGYMUUOLZUVHUUFUVGUVIOUUCYHUUFYNUUOYME
      JAVOVPQUUNYMYSIZUVIUVHUUNAUJZDAVQZIZNZYHUVJUUCYHUVNUUFUUCYHNUVKUVMUUCUVKY
      HYIUUBAWBVRUUCYHUVMUUCUVLYILZYHUVMMYIUUBAVSYHUVMUVODYIIYGYIDYGJYFUEHYIYFV
      TJYFWAWCZWDUVLYIDWEWFWGWHWNZWIUUCUUFYHWJYGDAWKZWLYMUUOYSWMWORUUOYSWPWQWRW
      SRSWTTXAXBTSUUGYHUUIUUGYHNZUUDYKYOUVSUUDYKYOMUVSUUDNYMYNDEUUDUVSUVGDELZMU
      UDUVSNZUVGDYQFZEYQFZLZUVTUWAYMUWBYNUWCUWAUWBYMUVSUWBYMLZUUDYHUWEUUGDYGAXC
      PPXDUWAUWCYNUUGUWCYNLUUDYHEYGAXCQXDXEUUDYGUUBYQXFZUVSYHUUGNUWDUVTMUUCYRUW
      FYTUUCYGUUBYQURZYRUWFUUCYGYIXGUWGUVPYIUUBYGAXPXHUWFUWGYRNYGUUBYQXIXJXKXLU
      WAUUGYHUUDUVSXMXQYGUUBDEYQXNXORXRXSSWTSUUHYHUUIUUHYHNZUUEYKUUDUWHYOUUCYRY
      TUWHYOMZUUCYTUWIMYRUUCUWHYTYOUUCUWHUUMUUCUWHNZYTUUSYOUWHUUCUUTUVAYHUUTUUH
      UVEPUVFVMUWJUURYOUUPUWJUURYMYNUWJUVGUUQYSIZUURVNUWJUVGYMUUQLZUWKUUHUVGUWL
      OUUCYHUUHYNUUQYMEYFAVOVPQUWJUVJUWLUWKUWJUVNYHUVJUUCYHUVNUUHUVQWIUUCUUHYHW
      JUVRWLYMUUQYSWMWORUUQYSWPWQWRXTRSWTTXAXBTSYAWGYBXBYCYDXAVKWH $.

    $( The adjacent vertices of a path of length at least 2 are distinct.
       (Contributed by AV, 5-Feb-2021.) $)
    pthdadjvtx $p |- ( ( F ( Paths ` G ) P /\ 1 < ( # ` F )
                         /\ I e. ( 0 ..^ ( # ` F ) ) )
                       -> ( P ` I ) =/= ( P ` ( I + 1 ) ) ) $=
      ( cc0 cfv cfzo co wcel c1 wbr caddc wne wi w3a wa simpr cz 3jca syl chash
      clt cpths wceq wo elfzo0l cfz cwlks pthiswlk wlkcl 1zzd nn0z adantr fzolb
      cn0 syl3anbrc 0elfz ax-1ne0 a1i ex impcom pthdivtx syl2anc necomd 3adant1
      3syl fveq2 oveq1 0p1e1 syl6eq fveq2d neeq12d 3ad2ant1 mpbird 3exp fzo0ss1
      wb simp3 id sseli fzofzp1 cc elfzoelz zcnd 1cnd addn0nid jaoi 3imp31 ) DE
      BUAFZGHZIZJWIUBKZBACUCFKZDAFZDJLHZAFZMZWKDEUDZDJWIGHZIZUEWLWMWQNNZDWIUFWR
      XAWTWRWLWMWQWRWLWMOWQEAFZJAFZMZWLWMXDWRWLWMPZXCXBXEWMJWSIZEEWIUGHZIZJEMZO
      ZXCXBMWLWMQWMWLXJWMBACUHFKWIUOIZWLXJNABCUIABCUJXKWLXJXKWLPZXFXHXIXLJRIWIR
      IZWLXFXLUKXKXMWLWIULUMXKWLQJWIUNUPXKXHWLWIUQUMXIXLURUSSUTVFVAABCJEVBVCVDV
      EWRWLWQXDVQWMWRWNXBWPXCDEAVGWRWOJAWRWOEJLHJDEJLVHVIVJVKVLVMVNVOWTWLWMWQWT
      WLWMOWMWTWOXGIZDWOMZOZWQWTWLWMVRWTWLXPWMWTWTXNXOWTVSWTWKXNWSWJDWIVPVTEWID
      WATWTDWBIZJWBIZXIOZXOWTXQXRXIWTDDJWIWCWDWTWEXIWTURUSSXSWODDJWFVDTSVMABCDW
      OVBVCVOWGTWH $.
  $}

  ${
    $d F i $.  $d G i $.  $d I i $.  $d P i $.
    2pthnloop.i $e |- I = ( iEdg ` G ) $.
    $( A path of length at least 2 does not contain a loop.  In contrast, a
       path of length 1 can contain/be a loop, see ~ lppthon .  (Contributed by
       AV, 6-Feb-2021.) $)
    2pthnloop $p |- ( ( F ( Paths ` G ) P /\ 1 < ( # ` F ) )
                       -> A. i e. ( 0 ..^ ( # ` F ) )
                          2 <_ ( # ` ( I ` ( F ` i ) ) ) ) $=
      ( cfv wbr c1 chash cc0 co wi cvv wcel w3a wceq wa fvexd sylbid clt c2 cle
      cpths cfzo wral cwlks pthiswlk wlkv syl ctrls cres ccnv wfun cpr cima cin
      cv c0 wb ispth a1i cdm cword cfz cvtx caddc csn wss wif istrl eqid iswlkg
      wf anbi1d syl5bb wn pthdadjvtx ad5ant245 neneqd ifpfal adantl prsshashgt1
      wne neqne syl31anc mpdan ralimdva ex com23 exp31 com24 3impia exp4c com14
      imp 3imp com12 3ad2ant1 mpcom pm2.43i ) CADUDGHZICJGZUAHZUBBURZCGZEGZJGUC
      HZBKXCUELZUFZXBXDXJMZDNOZCNOZANOZPZXBXBXKMZXBCADUGGHZXOACDUHACDUIUJXLXMXB
      XPMXNXLXBCADUKGHZAIXCUELZULUMUNZAKXCUOUPAXSUPUQUSQZPZXPXBYBUTXLACDVAVBYBX
      LXPXRXTYAXLXPMXLXTYAXRXPXLXRYAXTXPXLXRCEVCVDOZKXCVELDVFGZAVNZXEAGZXEIVGLZ
      AGZQZXGYFVHQZYFYHUOXGVIZVJZBXIUFZPZCUMUNZRZYAXTXPMMZXRXQYORXLYPACDVKXLXQY
      NYOABCDEYDNYDVLFVMVOVPYPYQMXLYNYOYQYNYOYAXTXPYCYEYMYOYARXTRZXPMYCYERZXBYR
      YMXKYSXBYRYMXKMYSXBRYRRZXDYMXJYTXDYMXJMYTXDRZYLXHBXIUUAXEXIOZRZYIVQZYLXHM
      UUCYFYHXBXDUUBYFYHWDZYSYRACDXEVRVSVTUUCUUDRYLYKXHUUDYLYKUTUUCYIYJYKWAWBUU
      DYKXHMZUUCUUDYFNOYHNOUUEXGNOUUFUUDXEASUUDYGASYFYHWEUUDXFESYFYHXGNNNWCWFWB
      TWGWHWIWJWKWLWMWNWPVBTWLWOWQWRTWSWTXAWP $.

    $( A path of length at least 2 in a pseudograph does not contain a loop.
       (Contributed by AV, 6-Feb-2021.) $)
    upgr2pthnlp $p |- ( ( G e. UPGraph /\ F ( Paths ` G ) P /\ 1 < ( # ` F ) )
                        -> A. i e. ( 0 ..^ ( # ` F ) )
                           ( # ` ( I ` ( F ` i ) ) ) = 2 ) $=
      ( cupgr wcel cpths cfv wbr chash w3a c2 cle wral wi wa cxr cvv c1 clt cc0
      cv cfzo co wceq 2pthnloop 3adant1 cwlks cdm cword pthiswlk wlkf wrdsymbcl
      simp2 upgrle2 3imp3i2an wb cxnn0 fvex hashxnn0 xnn0xr mp2b rexri xrletri3
      2re pm3.2i mp1i biimprd mpand 3exp 3syl impcom 3adant3 imp ralimdva mpd )
      DGHZCADIJKZUACLJZUBKZMZNBUDZCJZEJZLJZOKZBUCWAUEUFZPZWGNUGZBWIPVTWBWJVSABC
      DEFUHUIWCWHWKBWIWCWDWIHZWHWKQZVSVTWLWMQZWBVTVSWNVTCADUJJKCEUKZULHZVSWNQAC
      DUMACDEFUNWPVSWLWMWPVSWLMZWGNOKZWHWKWPVSWLVSWEWOHWRWPVSWLUPWDWOCUODEWEFUQ
      URWQWKWRWHRZWGSHZNSHZRWKWSUSWQWTXAWFTHWGUTHWTWEEVAWFTVBWGVCVDNVGVEVHWGNVF
      VIVJVKVLVMVNVOVPVQVR $.
  $}

  $( The vertices of a simple path are distinct, so the vertex function is
     one-to-one.  (Contributed by Alexander van der Vekens, 26-Jan-2018.)
     (Revised by AV, 5-Jun-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
  spthdifv $p |- ( F ( SPaths ` G ) P
                   -> P : ( 0 ... ( # ` F ) ) -1-1-> ( Vtx ` G ) ) $=
    ( cspths cfv wbr ctrls ccnv wfun wa cc0 chash cfz co wf1 isspth cwlks wf wi
    cvtx trliswlk eqid wlkp df-f1 simplbi2 3syl imp sylbi ) BACDEFBACGEFZAHIZJK
    BLEMNZCTEZAOZABCPUIUJUMUIBACQEFUKULARZUJUMSABCUAABCULULUBUCUMUNUJUKULAUDUEU
    FUGUH $.

  $( A simple path (at least of length 1) has different start and end points
     (in an undirected graph).  (Contributed by AV, 31-Jan-2021.)  (Proof
     shortened by AV, 30-Oct-2021.) $)
  spthdep $p |- ( ( F ( SPaths ` G ) P /\ ( # ` F ) =/= 0 )
                  -> ( P ` 0 ) =/= ( P ` ( # ` F ) ) ) $=
    ( cspths cfv wbr chash cc0 wne ctrls ccnv wfun isspth cfz wcel wceq syl jca
    wa wi co cvtx wf1 wf cwlks trliswlk eqid wlkp anim1i df-f1 sylibr cn0 wlkcl
    nn0fz0 biimpi 0elfz 3syl adantr eqcom f1veqaeq syl5bi necon3d sylbi imp ) B
    ACDEFZBGEZHIZHAEZVFAEZIZVEBACJEFZAKLZSZVGVJTABCMVMVHVIVFHVMHVFNUAZCUBEZAUCZ
    VFVNOZHVNOZSZSZVHVIPZVFHPZTVMVPVSVMVNVOAUDZVLSVPVKWCVLVKBACUEEFZWCABCUFZABC
    VOVOUGUHQUIVNVOAUJUKVKVSVLVKWDVFULOZVSWEABCUMWFVQVRWFVQVFUNUOVFUPRUQURRWAVI
    VHPVTWBVHVIUSVNVOVFHAUTVAQVBVCVD $.

  $( A path with different start and end points is a simple path (in an
     undirected graph).  (Contributed by Alexander van der Vekens,
     31-Oct-2017.)  (Revised by AV, 12-Jan-2021.)  (Proof shortened by AV,
     30-Oct-2021.) $)
  pthdepisspth $p |- ( ( F ( Paths ` G ) P
                         /\ ( P ` 0 ) =/= ( P ` ( # ` F ) ) )
                       -> F ( SPaths ` G ) P ) $=
    ( cpths cfv wbr cc0 chash wne wa ctrls ccnv wfun cspths c1 co w3a ad3antrrr
    cima syl cfzo cres cpr cin c0 wceq wi ispth simplll cn0 wcel cfz cvtx cwlks
    wf trliswlk wlkcl eqid wlkp simpllr simpr 3jca simplr injresinj syl3c sylbi
    jca ex3 imp isspth sylibr ) BACDEFZGAEBHEZAEIZJBACKEFZALMZJZBACNEFVLVNVQVLV
    OAOVMUAPZUBLMZAGVMUCSAVRSUDUEUFZQVNVQUGABCUHVOVSVTVNVQVOVSJZVTJZVNJZVOVPVOV
    SVTVNUIWCVMUJUKZGVMULPCUMEZAUOZVSVNQVTVPVOWDVSVTVNVOBACUNEFZWDABCUPZABCUQTR
    WCWFVSVNVOWFVSVTVNVOWGWFWHABCWEWEURUSTRVOVSVTVNUTWBVNVAVBWAVTVNVCAVMWEVDVEV
    GVHVFVIABCVJVK $.

  ${
    $d F a b k x y $.  $d I k x y $.  $d P a b k x y $.  $d V x y $.
    $( Lemma for ~ upgrwlkdvde .  (Contributed by Alexander van der Vekens,
       27-Oct-2017.)  (Proof shortened by AV, 17-Jan-2021.) $)
    upgrwlkdvdelem $p |- ( ( P : ( 0 ... ( # ` F ) ) -1-1-> V
                             /\ F e. Word dom I )
                           -> ( A. k e. ( 0 ..^ ( # ` F ) )
                          ( I ` ( F ` k ) ) = { ( P ` k ) , ( P ` ( k + 1 ) ) }
                                  -> Fun `' F ) ) $=
      ( vx vy va vb wcel cc0 cfv co c1 caddc wceq wi wa fveq2 syl cdm cword cfz
      chash wf1 cv cpr cfzo wral ccnv wfun cfn wf wrdfin wrdf weq adantr fveq2d
      simpr oveq1 preq12d eqeq12d rspcv anim12ii simpl eqcomd adantl wo preq12b
      3eqtrd fvex dff13 elfzofz eqeq1d eqeq1 imbi12d eqeq2d eqeq2 rspc2v syl2an
      a1dd com14 cn0 hashcl a1i fzofzp1 anim12d1 anim12d expimpd wb elfzonn0 c2
      imp cc add1p1 wne 2cnd 2ne0 addn0nid syl3anc eqneqall syl5com sylbid syld
      nn0cn ex com3l expd com34 jaoi adantld syl5bi com23 sylbi com15 ralrimivv
      impcom adantlr sylanbrc df-f1 sylib syl2anc ) CDUAZUBJZKCUDLZUCMZEAUEZBUF
      ZCLZDLZYHALZYHNOMZALZUGZPZBKYEUHMZUIZCUJUKZQZYDCULJZYPYCCUMZYGYSQYCCUNYCC
      UOYTUUARZYGYQYRUUBYGYQRZYRUUBUUCRZUUAYRRZYRUUDYPYCCUEZUUEUUDUUAFUFZCLZGUF
      ZCLZPZFGUPZQZGYPUIFYPUIZUUFUUBUUAUUCYTUUAUSUQYTUUCUUNUUAYTUUCRUUMFGYPYPUU
      CYTUUGYPJZUUIYPJZRZUUMQZYGYQYTUURQUUQYQYTYGUUMUUQYQUUHDLZUUGALZUUGNOMZALZ
      UGZPZUUJDLZUUIALZUUINOMZALZUGZPZRZYTYGUUMQQUUOYQUVDUUPUVJYOUVDBUUGYPBFUPZ
      YJUUSYNUVCUVLYIUUHDYHUUGCSURUVLYKUUTYMUVBYHUUGASUVLYLUVAAYHUUGNOUTURVAVBV
      CYOUVJBUUIYPBGUPZYJUVEYNUVIUVMYIUUJDYHUUICSURUVMYKUVFYMUVHYHUUIASUVMYLUVG
      AYHUUINOUTURVAVBVCVDUUKUVKYTYGUUQUULUUKUUSUVEPZUVKYTYGUUQUULQZQQZQUUHUUJD
      SUVNUVKUVPUVNUVKRZUVCUVIPZUVPUVQUVCUUSUVEUVIUVKUVCUUSPUVNUVKUUSUVCUVDUVJV
      EVFVGUVNUVKVEUVKUVJUVNUVDUVJUSVGVJUVRUUTUVFPZUVBUVHPZRZUUTUVHPZUVBUVFPZRZ
      VHZUVPUUTUVBUVFUVHUUGAVKUVAAVKUUIAVKUVGAVKVIUWEYGYTUVOYGYFEAUMZHUFZALZIUF
      ZALZPZHIUPZQZIYFUIHYFUIZRUWEYTUVOQZHIYFEAVLUWEUWNUWOUWFUWAUWNUWOQZUWDUVSU
      WPUVTUUQUWNYTUVSUULUUQUWNUVSUULQZYTUUOUUGYFJZUUIYFJZUWNUWQQUUPUUGKYEVMZUU
      IKYEVMZUWMUWQUUTUWJPZFIUPZQZHIUUGUUIYFYFHFUPZUWKUXBUWLUXCUXEUWHUUTUWJUWGU
      UGASVNUWGUUGUWIVOVPZIGUPZUXBUVSUXCUULUXGUWJUVFUUTUWIUUIASZVQUWIUUIUUGVRVP
      VSVTWAWBUQUUQUWNYTUWDUULUUQUWNUWDYTUULUUQUWNUWDYTUULQYTUUQUWNUWDRZUULYTYE
      WCJZUUQUXIUULQZQCWDUXJUUQUXKUXJUUQRZUXIUUGUVGPZUVAUUIPZRZUULUXLUWNUWDUXOU
      XLUWNRUWBUXMUWCUXNUXLUWNUWBUXMQZUXLUWRUVGYFJZRZUWNUXPQUXJUUQUXRUXJUUOUWRU
      UPUXQUUOUWRQUXJUWTWEKYEUUIWFWGWMUWMUXPUXDHIUUGUVGYFYFUXFUWIUVGPZUXBUWBUXC
      UXMUXSUWJUVHUUTUWIUVGASVQUWIUVGUUGVRVPVSTWMUXLUWNUWCUXNQZUXLUVAYFJZUWSRZU
      WNUXTQUXJUUQUYBUXJUUOUYAUUPUWSUUOUYAQUXJKYEUUGWFWEUXAWGWMUWMUXTUVBUWJPZUV
      AUWIPZQHIUVAUUIYFYFUWGUVAPZUWKUYCUWLUYDUYEUWHUVBUWJUWGUVAASVNUWGUVAUWIVOV
      PUXGUYCUWCUYDUXNUXGUWJUVFUVBUXHVQUWIUUIUVAVRVPVSTWMWHWIUUQUXOUULQUXJUUQUX
      MUXNUULUUQUXMRUXNUVGNOMZUUIPZUULUXMUXNUYGWJUUQUXMUVAUYFUUIUUGUVGNOUTVNVGU
      UQUYGUULQZUXMUUPUYHUUOUUPUUIWCJZUYHUUIYEWKUYIUYGUUIWLOMZUUIPZUULUYIUYFUYJ
      UUIUYIUUIWNJZUYFUYJPUUIXEZUUIWOTVNUYIUYJUUIWPZUYKUULUYIUYLWLWNJWLKWPZUYNU
      YMUYIWQUYOUYIWRWEUUIWLWSWTUULUYJUUIXAXBXCTVGUQXCWIVGXDXFTXGXHXIWBXJXKXLXM
      XNTXFTXOXDWBWMXQXPXRFGYPYCCVLXSYPYCCXTYAUUAYRUSTXFXHYBXQ $.
  $}

  ${
    $d F k $.  $d G k $.  $d P k $.
    $( In a pseudograph, all edges of a walk consisting of different vertices
       are different.  Notice that this theorem would not hold for arbitrary
       hypergraphs, see the counterexample given in the comment of
       ~ upgrspthswlk .  (Contributed by AV, 17-Jan-2021.) $)
    upgrwlkdvde $p |- ( ( G e. UPGraph /\ F ( Walks ` G ) P /\ Fun `' P )
                        -> Fun `' F ) $=
      ( vk cupgr wcel cwlks cfv wbr ccnv wfun ciedg cdm cword cc0 chash co eqid
      wi wa cfz cvtx wf cv c1 caddc cpr wceq cfzo wral upgriswlk df-f1 simplbi2
      w3a wf1 3ad2ant2 impcom simpr1 jca simpr3 upgrwlkdvdelem sylc expcom 3imp
      syl6bi ) CEFZBACGHIZAJKZBJKZVFVGBCLHZMNFZOBPHZUAQZCUBHZAUCZDUDZBHVJHVPAHV
      PUEUFQAHUGUHDOVLUIQUJZUNZVHVISADBCVJVNVNRVJRUKVHVRVIVHVRTZVMVNAUOZVKTVQVI
      VSVTVKVRVHVTVOVKVHVTSVQVTVOVHVMVNAULUMUPUQVHVKVOVQURUSVHVKVOVQUTADBVJVNVA
      VBVCVEVD $.

    $d G f p $.
    $( The set of simple paths in a pseudograph, expressed as walk.  Notice
       that this theorem would not hold for arbitrary hypergraphs, since a walk
       with distinct vertices does not need to be a trail: let E = { p_0, p_1,
       p_2 } be a hyperedge, then ( p_0, e, p_1, e, p_2 ) is walk with distinct
       vertices, but not with distinct edges.  Therefore, E is not a trail and,
       by definition, also no path.  (Contributed by AV, 11-Jan-2021.)  (Proof
       shortened by AV, 17-Jan-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
    upgrspthswlk $p |- ( G e. UPGraph -> ( SPaths ` G ) = { <. f , p >. |
                                      ( f ( Walks ` G ) p /\ Fun `' p ) } ) $=
      ( cupgr wcel cspths cfv cv ctrls ccnv wfun wa copab cwlks spthsfval wb wi
      wbr upgrwlkdvde 3exp com23 imp istrl syl6rbbr ex pm5.32rd opabbidv syl5eq
      pm4.71d ) BDEZBFGAHZCHZBIGRZULJKZLZACMUKULBNGRZUNLZACMABCOUJUOUQACUJUNUMU
      PUJUNUMUPPUJUNLZUPUPUKJKZLUMURUPUSUJUNUPUSQUJUPUNUSUJUPUNUSULUKBSTUAUBUIU
      LUKBUCUDUEUFUGUH $.

    $d F f p $.  $d P f p $.
    $( A walk consisting of different vertices is a simple path.  Notice that
       this theorem would not hold for arbitrary hypergraphs, see the
       counterexample given in the comment of ~ upgrspthswlk .  (Contributed by
       Alexander van der Vekens, 27-Oct-2017.)  (Revised by AV,
       17-Jan-2021.) $)
    upgrwlkdvspth $p |- ( ( G e. UPGraph /\ F ( Walks ` G ) P /\ Fun `' P )
                       -> F ( SPaths ` G ) P ) $=
      ( vf vp cupgr wcel cwlks cfv wbr ccnv wfun w3a wa 3simpc cv wceq cvv syl
      wb cspths copab upgrspthswlk 3ad2ant1 breqd 3ad2ant2 breq12 funeqd adantl
      wlkv cnveq anbi12d eqid brabga bitrd mpbird ) CFGZBACHIZJZAKZLZMZBACUAIZJ
      ZUSVANZUQUSVAOVBVDBADPZEPZURJZVGKZLZNZDEUBZJZVEVBVCVLBAUQUSVCVLQVADCEUCUD
      UEVBBRGZARGZNZVMVETUSUQVPVAUSCRGZVNVOMVPABCUJVQVNVOOSUFVKVEDEBAVLRRVFBQZV
      GAQZNVHUSVJVAVFBVGAURUGVSVJVATVRVSVIUTVGAUKUHUIULVLUMUNSUOUP $.
  $}

  ${
    $d G a b f g p $.  $d A a b f g p $.  $d B a b f g p $.  $d V a f g p $.
    pthsonfval.v $e |- V = ( Vtx ` G ) $.
    $( The set of paths between two vertices (in an undirected graph).
       (Contributed by Alexander van der Vekens, 8-Nov-2017.)  (Revised by AV,
       16-Jan-2021.)  (Revised by AV, 21-Mar-2021.) $)
    pthsonfval $p |- ( ( A e. V /\ B e. V ) -> ( A ( PathsOn ` G ) B )
                       = { <. f , p >. | ( f ( A ( TrailsOn ` G ) B ) p
                                           /\ f ( Paths ` G ) p ) } ) $=
      ( vg va vb wcel wa cv cwlks cfv wbr cvtx cpths cvv syl6eleq 1vgrex adantr
      ctrlson cpthson simpl simpr copab wksv a1i pthiswlk adantl mptmpt2opabovd
      df-pthson ) AEKZBEKZLZCMZFMZDNOPZQQUCRCHFDUDSSABIJUNDSKUODAEGUAUBUPAEDQOZ
      UNUOUEGTUPBEUTUNUOUFGTUSCFUGSKUPCDFUHUIUQURDROPUSUPURUQDUJUKCHFIJUMUL $.

    $( The set of simple paths between two vertices (in an undirected graph).
       (Contributed by Alexander van der Vekens, 1-Mar-2018.)  (Revised by AV,
       16-Jan-2021.)  (Revised by AV, 21-Mar-2021.) $)
    spthson $p |- ( ( A e. V /\ B e. V ) -> ( A ( SPathsOn ` G ) B )
                    = { <. f , p >. | ( f ( A ( TrailsOn ` G ) B ) p
                                        /\ f ( SPaths ` G ) p ) } ) $=
      ( vg va vb wcel wa cv cwlks cfv wbr cvtx cspths cvv syl6eleq 1vgrex simpl
      ctrlson cspthson adantr simpr copab wksv a1i cpths spthispth pthiswlk syl
      adantl df-spthson mptmpt2opabovd ) AEKZBEKZLZCMZFMZDNOPZQQUCRCHFDUDSSABIJ
      UQDSKURDAEGUAUEUSAEDQOZUQURUBGTUSBEVCUQURUFGTVBCFUGSKUSCDFUHUIUTVADROPZVB
      USVDUTVADUJOPVBVAUTDUKVAUTDULUMUNCHFIJUOUP $.

    $d F f p $.  $d P f p $.
    $( Properties of a pair of functions to be a path between two given
       vertices.  (Contributed by Alexander van der Vekens, 8-Nov-2017.)
       (Revised by AV, 16-Jan-2021.)  (Revised by AV, 21-Mar-2021.) $)
    ispthson $p |- ( ( ( A e. V /\ B e. V ) /\ ( F e. U /\ P e. Z ) )
                     -> ( F ( A ( PathsOn ` G ) B ) P
              <-> ( F ( A ( TrailsOn ` G ) B ) P /\ F ( Paths ` G ) P ) ) ) $=
      ( vf vp wcel wa cpthson cfv co wbr cv wceq breq12 ctrlson pthsonfval eqid
      cpths copab breqd anbi12d brabga sylan9bb ) AGLBGLMZECABFNOPZQECJRZKRZABF
      UAOPZQZULUMFUDOZQZMZJKUEZQEDLCHLMECUNQZECUPQZMZUJUKUSECABJFGKIUBUFURVBJKE
      CUSDHULESUMCSMUOUTUQVAULEUMCUNTULEUMCUPTUGUSUCUHUI $.

    $( Properties of a pair of functions to be a simple path between two given
       vertices.  (Contributed by Alexander van der Vekens, 1-Mar-2018.)
       (Revised by AV, 16-Jan-2021.)  (Revised by AV, 21-Mar-2021.) $)
    isspthson $p |- ( ( ( A e. V /\ B e. V ) /\ ( F e. U /\ P e. Z ) )
                      -> ( F ( A ( SPathsOn ` G ) B ) P
              <-> ( F ( A ( TrailsOn ` G ) B ) P /\ F ( SPaths ` G ) P ) ) ) $=
      ( vf vp wcel wa cspthson cfv co wbr cv wceq breq12 ctrlson cspths spthson
      copab breqd anbi12d eqid brabga sylan9bb ) AGLBGLMZECABFNOPZQECJRZKRZABFU
      AOPZQZULUMFUBOZQZMZJKUDZQEDLCHLMECUNQZECUPQZMZUJUKUSECABJFGKIUCUEURVBJKEC
      USDHULESUMCSMUOUTUQVAULEUMCUNTULEUMCUPTUFUSUGUHUI $.

    $d V b $.
    $( Properties of a path between two vertices.  (Contributed by Alexander
       van der Vekens, 12-Dec-2017.)  (Revised by AV, 16-Jan-2021.) $)
    pthsonprop $p |- ( F ( A ( PathsOn ` G ) B ) P
           -> ( ( G e. _V /\ A e. V /\ B e. V ) /\ ( F e. _V /\ P e. _V )
                /\ ( F ( A ( TrailsOn ` G ) B ) P /\ F ( Paths ` G ) P ) ) ) $=
      ( vf vg vp va vb cpths ctrlson cpthson cvv wcel wa cfv wbr co wb ispthson
      w3a 3simpc anim1i syl df-pthson cv cwlks pthiswlk adantl wksonproplem ) A
      BCMHIDENFOJKLGEPQZAFQZBFQZUDZDPQCPQRZRUOUPRZURRDCABEOSUATDCABENSUATDCEMSZ
      TRUBUQUSURUNUOUPUEUFABCPDEFPGUCUGHIJKLUHHUIZJUIZUTTVAVBEUJSTUQVBVAEUKULUM
      $.

    $( Properties of a simple path between two vertices.  (Contributed by
       Alexander van der Vekens, 1-Mar-2018.)  (Revised by AV, 16-Jan-2021.) $)
    spthonprop $p |- ( F ( A ( SPathsOn ` G ) B ) P
          -> ( ( G e. _V /\ A e. V /\ B e. V ) /\ ( F e. _V /\ P e. _V )
               /\ ( F ( A ( TrailsOn ` G ) B ) P /\ F ( SPaths ` G ) P ) ) ) $=
      ( vf vg vp va vb cspths ctrlson cspthson cvv wcel wa cfv wbr co wb 3simpc
      w3a anim1i isspthson syl df-spthson cwlks cpths spthispth pthiswlk adantl
      cv wksonproplem ) ABCMHIDENFOJKLGEPQZAFQZBFQZUDZDPQCPQRZRUQURRZUTRDCABEOS
      UATDCABENSUATDCEMSZTRUBUSVAUTUPUQURUCUEABCPDEFPGUFUGHIJKLUHHUNZJUNZVBTZVC
      VDEUISTZUSVEVCVDEUJSTVFVDVCEUKVDVCEULUGUMUO $.
  $}

  $( A path between two vertices is a path.  (Contributed by Alexander van der
     Vekens, 12-Dec-2017.)  (Revised by AV, 17-Jan-2021.) $)
  pthonispth $p |- ( F ( A ( PathsOn ` G ) B ) P -> F ( Paths ` G ) P ) $=
    ( cpthson cfv co wbr cvv wcel cvtx w3a ctrlson cpths eqid pthsonprop simp3r
    wa syl ) DCABEFGHIEJKAELGZKBUAKMZDJKCJKSZDCABENGHIZDCEOGIZSMUEABCDEUAUAPQUB
    UCUDUERT $.

  $( A path between two vertices is a trail between these vertices.
     (Contributed by AV, 24-Jan-2021.) $)
  pthontrlon $p |- ( F ( A ( PathsOn ` G ) B ) P
                     -> F ( A ( TrailsOn ` G ) B ) P ) $=
    ( cpthson cfv co wbr cvv wcel cvtx w3a ctrlson cpths eqid pthsonprop simp3l
    wa syl ) DCABEFGHIEJKAELGZKBUAKMZDJKCJKSZDCABENGHIZDCEOGIZSMUDABCDEUAUAPQUB
    UCUDUERT $.

  $( A path is a path between its endpoints.  (Contributed by AV,
     31-Jan-2021.) $)
  pthonpth $p |- ( F ( Paths ` G ) P
                   -> F ( ( P ` 0 ) ( PathsOn ` G ) ( P ` ( # ` F ) ) ) P ) $=
    ( cpths cfv wbr cc0 chash cpthson co ctrlson ctrls pthistrl trlontrl syl id
    cwlks wcel wa cvv cvtx pthiswlk eqid wlkepvtx w3a wlkv 3simpc ispthson 3syl
    wb jca mpbir2and ) BACDEFZBAGAEZBHEAEZCIEJFZBAUNUOCKEJFZUMUMBACLEFUQABCMABC
    NOUMPUMBACQEFZUNCUAEZRUOUSRSZBTRZATRZSZSUPUQUMSUJABCUBURUTVCABCUSUSUCZUDURC
    TRZVAVBUEVCABCUFVEVAVBUGOUKUNUOATBCUSTVDUHUIUL $.

  ${
    isspthonpth.v $e |- V = ( Vtx ` G ) $.
    $( A pair of functions is a simple path between two given vertices iff it
       is a simple path starting and ending at the two vertices.  (Contributed
       by Alexander van der Vekens, 9-Mar-2018.)  (Revised by AV,
       17-Jan-2021.) $)
    isspthonpth $p |- ( ( ( A e. V /\ B e. V ) /\ ( F e. W /\ P e. Z ) )
                         -> ( F ( A ( SPathsOn ` G ) B ) P
                              <-> ( F ( SPaths ` G ) P /\ ( P ` 0 ) = A
                                              /\ ( P ` ( # ` F ) ) = B ) ) ) $=
      ( wcel wa cfv co wbr wceq w3a wb adantr syl adantl cspthson ctrlson chash
      cspths isspthson cwlkson ctrls istrlson cpths spthispth pthistrl biantrud
      cc0 cwlks trliswlk iswlkon 3anass syl6bb mpbirand 3bitr2d pm5.32rd bitr2i
      ex ancom bitrd ) AFJBFJKDGJCHJKKZDCABEUALMNDCABEUBLMNZDCEUDLNZKZVHUMCLAOZ
      DUCLCLBOZPZABCGDEFHIUEVFVIVJVKKZVHKZVLVFVHVGVMVFVHVGVMQVFVHKZVGDCABEUFLMN
      ZDCEUGLNZKZVPVMVFVGVRQVHABCGDEFHIUHRVOVQVPVHVQVFVHDCEUILNVQCDEUJCDEUKSZTU
      LVOVPDCEUNLNZVMVHVTVFVHVQVTVSCDEUOSTVFVPVTVMKZQVHVFVPVTVJVKPWAABCGDEFHIUP
      VTVJVKUQURRUSUTVCVAVLVHVMKVNVHVJVKUQVHVMVDVBURVE $.
  $}

  $( A simple path between to vertices is a simple path.  (Contributed by
     Alexander van der Vekens, 2-Mar-2018.)  (Revised by AV, 18-Jan-2021.) $)
  spthonisspth $p |- ( F ( A ( SPathsOn ` G ) B ) P
                          -> F ( SPaths ` G ) P ) $=
    ( cspthson cfv co wbr cvv wcel cvtx w3a wa ctrlson cspths spthonprop simp3r
    eqid syl ) DCABEFGHIEJKAELGZKBUAKMZDJKCJKNZDCABEOGHIZDCEPGIZNMUEABCDEUAUASQ
    UBUCUDUERT $.

  $( A simple path between two vertices is a path between these vertices.
     (Contributed by AV, 24-Jan-2021.) $)
  spthonpthon $p |- ( F ( A ( SPathsOn ` G ) B ) P
                      -> F ( A ( PathsOn ` G ) B ) P ) $=
    ( cspthson cfv wbr cvtx wcel cvv ctrlson cspths w3a cpthson eqid spthonprop
    co wa syl 3simpc 3anim1i cpths spthispth anim2i 3ad2ant3 wb ispthson mpbird
    3adant3 ) DCABEFGRHZAEIGZJZBULJZSZDKJCKJSZDCABELGRHZDCEMGHZSZNZDCABEOGRHZUK
    EKJZUMUNNZUPUSNUTABCDEULULPZQVCUOUPUSVBUMUNUAUBTUTVAUQDCEUCGHZSZUSUOVFUPURV
    EUQCDEUDUEUFUOUPVAVFUGUSABCKDEULKVDUHUJUIT $.

  $( The endpoints of a simple path between two vertices are equal iff the path
     is of length 0.  (Contributed by Alexander van der Vekens, 1-Mar-2018.)
     (Revised by AV, 18-Jan-2021.)  (Proof shortened by AV, 31-Oct-2021.) $)
  spthonepeq $p |- ( F ( A ( SPathsOn ` G ) B ) P
                      -> ( A = B <-> ( # ` F ) = 0 ) ) $=
    ( cfv co wbr cvv wcel w3a wa wceq cc0 wb wi ex syl expcom syl6bi cvtx chash
    cspthson ctrlson cspths eqid spthonprop cwlkson ccnv wfun istrlson 3adantl1
    ctrls isspth a1i anbi12d cwlks wlkonprop cn0 cfz wlkcl wlkp wf1 df-f1 eqeq2
    wf eqtr3 cuz elnn0uz eluzfz2 sylbi 0elfz f1veqaeq sylan2 com13 com15 sylbir
    sylc 3imp1 fveq2 eqeq1d anbi2d eqtr2 3adant1 adantr impbid 3ad2ant3 adantld
    jca com12 imp 3impia ) DCABEUCFGHEIJZAEUAFZJZBWNJZKZDIJCIJLZDCABEUDFGHZDCEU
    EFHZLZKABMZDUBFZNMZOZABCDEWNWNUFZUGWQWRXAXEWQWRLZXADCABEUHFGHZDCEUMFHZLZXIC
    UIUJZLZLXEXGWSXJWTXLWOWPWRWSXJOWMABCIDEWNIXFUKULWTXLOXGCDEUNUOUPXJXLXEXHXLX
    EPXIXHXKXEXIXHWQWRDCEUQFHZNCFZAMZXCCFZBMZKZKXKXEPZABCDEWNXFURXRWQXSWRXRXKXE
    XRXKLXBXDXMXOXQXKXBXDPZXMXCUSJZNXCUTGZWNCVFZXOXQXKXTPPPCDEVACDEWNXFVBXKYCXO
    XQYAXTYCXKXOXQYAXTPPPZYCXKLYBWNCVCZYDYBWNCVDXBXOXQYAYEXDXBXOXNBMZXQYAYEXDPP
    ZPABXNVEXQYFYGXQYFLXPXNMZYGXPXNBVGYEYAYHXDYEYAYHXDPZYAYEXCYBJZNYBJZLYIYAYJY
    KYAXCNVHFJYJXCVINXCVJVKXCVLWIYBWNXCNCVMVNQVORSTVPVQSVPVRVSXRXDXBPZXKXOXQYLX
    MXDXOXQLZXBXDYMXOYFLXBXDXQYFXOXDXPXNBXCNCVTWAWBXNABWCTWJWDWEWFQWGRWHWEWKTWL
    R $.

  ${
    $d F i $.  $d G i $.
    $( Lemma 1 for ~ uhgrwkspth .  (Contributed by AV, 25-Jan-2021.) $)
    uhgrwkspthlem1 $p |- ( ( F ( Walks ` G ) P /\ ( # ` F ) = 1 )
                             -> Fun `' F ) $=
      ( vi cwlks cfv wbr ciedg cdm cword wcel chash c1 wceq ccnv wfun eqid wlkf
      wa cv cs1 wrex wrdl1exs1 funcnvs1 cnveq funeqd mpbiri rexlimivw syl sylan
      ) BACEFGBCHFZIZJKZBLFMNZBOZPZABCUKUKQRUMUNSBDTZUAZNZDULUBUPULBDUCUSUPDULU
      SUPUROZPUQUDUSUOUTBURUEUFUGUHUIUJ $.
  $}

  $( Lemma 2 for ~ uhgrwkspth .  (Contributed by AV, 25-Jan-2021.) $)
  uhgrwkspthlem2 $p |- ( ( F ( Walks ` G ) P /\ ( ( # ` F ) = 1 /\ A =/= B )
                             /\ ( ( P ` 0 ) = A /\ ( P ` ( # ` F ) ) = B ) )
                           -> Fun `' P ) $=
    ( cfv c1 wceq wne wa cc0 ccnv wfun cfz co wf wi cpr cz wcel cwlks wbr chash
    cvtx eqid wlkp wb oveq2 caddc 1e0p1 oveq2i ax-mp 0p1e1 preq2i 3eqtri syl6eq
    fzpr feq2d adantr simpl simpr neeq12d bicomd fveq2 neeq2d sylan9bbr anbi12d
    0z cop w3a fpr2g mp2an cs2 funcnvs2 3expa adantl s2prop eqcomd eqtrd cnveqd
    funeqd mpbird exp32 impcom 3impa sylbi imp syl6bi expd com12 com34 impd syl
    1z 3imp ) DCEUAFUBZDUCFZGHZABIZJZKCFZAHZWQCFZBHZJZCLZMZWPKWQNOZEUDFZCPZWTXE
    XGQZQCDEXIXIUEUFXJWRWSXKXJWRXEWSXGXJWRXEWSXGQZWRXEJZXJXLXMXJWSXGXMXJWSJKGRZ
    XICPZXAGCFZIZJXGXMXJXOWSXQWRXJXOUGXEWRXHXNXICWRXHKGNOZXNWQGKNUHXRKKGUIOZNOZ
    KXSRZXNGXSKNUJUKKSTZXTYAHVHKUQULXSGKUMUNUOUPURUSXEWSXAXCIZWRXQXEYCWSXEXAAXC
    BXBXDUTXBXDVAVBVCWRXCXPXAWQGCVDVEVFVGXOXQXGXOXAXITZXPXITZCKXAVIGXPVIRZHZVJZ
    XQXGQZYBGSTXOYHUGVHWNKGXICSSVKVLYDYEYGYIYGYDYEJZYIYGYJXQXGYGYJXQJZJZXGXAXPV
    MZLZMZYKYOYGYDYEXQYOXAXPXIVNVOVPYLXFYNYLCYMYLCYFYMYGYKUTYKYFYMHZYGYJYPXQYJY
    MYFXAXPXIVQVRUSVPVSVTWAWBWCWDWEWFWGWHWIWJWIWKWLWMWO $.

  ${
    uhgrwkspth.v $e |- V = ( Vtx ` G ) $.
    uhgrwkspth.e $e |- E = ( Edg ` G ) $.
    $( Any walk of length 1 between two different vertices is a simple path.
       (Contributed by AV, 25-Jan-2021.)  (Proof shortened by AV,
       31-Oct-2021.) $)
    uhgrwkspth $p |- ( ( G e. W /\ ( # ` F ) = 1 /\ A =/= B )
                         -> ( F ( A ( WalksOn ` G ) B ) P
                              <-> F ( A ( SPathsOn ` G ) B ) P ) ) $=
      ( wcel cfv wceq w3a co wbr wa cvv sylanbrc 3simpc c1 wne cwlkson cspthson
      chash cvtx cwlks cc0 cspths ctrls ccnv wfun simpl31 uhgrwkspthlem1 expcom
      3ad2ant2 com12 3ad2ant1 3ad2ant3 imp adantl adantr uhgrwkspthlem2 syl3anc
      wi istrl isspth 3anass wb 3simpa eqid isspthonpth syl mpbird ex wlkonprop
      3anim1i syl11 cpthson ctrlson spthonpthon pthontrlon trlsonwlkon impbid1
      3syl ) FHKZEUELZUAMZABUBZNZECABFUCLOPZECABFUDLOPZAFUFLZKZBWMKZQZERKCRKQZE
      CFUGLPZUHCLAMZWGCLBMZNZNZWJWLWKXBWJWLXBWJQZWLECFUILPZWSWTNZXCXDWSWTQZXEXC
      ECFUJLPZCUKULZXDXCWREUKULZXGWRWSWTWPWQWJUMZXBWJXIXAWPWJXIVEZWQWRWSXKWTWJW
      RXIWHWFWRXIVEWIWRWHXICEFUNUOUPUQURUSUTCEFVFSXCWRWHWIQZXFXHXJWJXLXBWFWHWIT
      VAXBXFWJXAWPXFWQWRWSWTTUSVBZABCEFVCVDCEFVGSXMXDWSWTVHSXCWPWQQZWLXEVIXBXNW
      JWPWQXAVJVBABCEFWMRRWMVKZVLVMVNVOWKFRKZWNWONZWQXANXBABCEFWMXOVPXQWPWQXAXP
      WNWOTVQVMVRWLECABFVSLOPECABFVTLOPWKABCEFWAABCEFWBABCEFWCWEWD $.
  $}

  ${
    $d F k $.  $d G k $.  $d P k $.
    $( The vertices and edges are pairwise different in a walk of length 2 in a
       simple graph.  (Contributed by Alexander van der Vekens, 2-Mar-2018.)
       (Revised by AV, 26-Jan-2021.) $)
    usgr2wlkneq $p |- ( ( ( G e. USGraph /\ F ( Walks ` G ) P )
                      /\ ( ( # ` F ) = 2 /\ ( P ` 0 ) =/= ( P ` ( # ` F ) ) ) )
             -> ( ( ( P ` 0 ) =/= ( P ` 1 ) /\ ( P ` 0 ) =/= ( P ` 2 )
                 /\ ( P ` 1 ) =/= ( P ` 2 ) ) /\ ( F ` 0 ) =/= ( F ` 1 ) ) ) $=
      ( vk wcel cfv c2 wceq cc0 wne wa c1 cfz co cpr cfzo wi cvv fvex ex wbr wf
      cusgr cwlks chash w3a ciedg cdm cword cvtx caddc wral cupgr usgrupgr eqid
      cv wb upgriswlk syl 2wlklem simplll usgrnloopv sylancl fveq2 eqeq1d eqtr2
      anim12d prcom eqeq2i preqr1 sylbi syl6bi impd com12 necon3d adantr adantl
      simpl simprr 3jca jctild com23 mpdd syl5bi neeq2d oveq2 fzo0to2pr raleqdv
      syl6eq feq2d imbi1d imbi12d syl5ibrcom com24 3impd sylbid imp31 ) CUCEZBA
      CUDFUAZBUEFZGHZIAFZWTAFZJZKZXBLAFZJZXBGAFZJZXFXHJZUFZIBFZLBFZJZKZWRWSBCUG
      FZUHUIEZIWTMNZCUJFZAUBZDUPZBFXPFYAAFYALUKNAFOHZDIWTPNZULZUFZXEXOQZWRCUMEW
      SYEUQCUNADBCXPXSXSUOXPUOZURUSWRXQXTYDYFWRXQXTYDYFQQWRXQKZXEYDXTXOYHXAXDYD
      XTXOQZQZYHXDYJQXAXIYBDILOZULZIGMNZXSAUBZXOQZQZQYHXIYPYHXIKZYNYLXOYQYNYLXO
      QYLXLXPFZXBXFOZHZXMXPFZXFXHOZHZKZYQYNKZXOADXPBUTUUEUUDXGXJKZXOUUEYTXGUUCX
      JUUEWRXBREYTXGQWRXQXIYNVAZIASZXPCXBXFRXLYGVBVCUUEWRXFREUUCXJQUUGLASXPCXFX
      HRXMYGVBVCVGYQUUDUUFXOQQZYNXIUUIYHXIUUFUUDXOXIUUFUUDXOQXIUUFKZUUDXNXKXIUU
      DXNQUUFUUDXIXNUUDXLXMXBXHXLXMHZUUDXBXHHZUUKYTUUCUULUUKYTUUAYSHZUUCUULQUUK
      YRUUAYSXLXMXPVDVEUUMUUCUULUUMUUCKYSUUBHZUULUUAYSUUBVFUUNYSXHXFOZHUULUUBUU
      OYSXFXHVHVIXBXHXFUUHGASVJVKUSTVLVMVNVOVNVPUUJXGXIXJUUFXGXIXGXJVRVQXIUUFVR
      XIXGXJVSVTWATWBVQVPWCWDTWBTXAXDXIYJYPXAXCXHXBWTGAVDWEXAYDYLYIYOXAYBDYCYKX
      AYCIGPNYKWTGIPWFWGWIWHXAXTYNXOXAXRYMXSAWTGIMWFWJWKWLWLWMVMWNTWOWPWQ $.
  $}

  $( Lemma 1 for ~ usgr2wlkspth .  (Contributed by Alexander van der Vekens,
     2-Mar-2018.)  (Revised by AV, 26-Jan-2021.) $)
  usgr2wlkspthlem1 $p |- ( ( F ( Walks ` G ) P
                               /\ ( G e. USGraph /\ ( # ` F ) = 2
                                    /\ ( P ` 0 ) =/= ( P ` ( # ` F ) ) ) )
                             -> Fun `' F ) $=
    ( cwlks cfv wbr cusgr wcel chash c2 wceq cc0 wne w3a wa ccnv wfun cvv fvexd
    c1 cs2 simp1 anim2i ancomd 3simpc adantl usgr2wlkneq syl2anc simpr funcnvs2
    3jca 3syl ciedg cword eqid wlkf simp2 wrdlen2s2 syl2an cnveqd funeqd mpbird
    cdm ) BACDEFZCGHZBIEZJKZLAEZVFAEMZNZOZBPZQLBEZTBEZUAZPZQZVKVHTAEZMVHJAEZMVR
    VSMNZVMVNMZOZVMRHZVNRHZWANVQVKVEVDOVGVIOZWBVKVDVEVJVEVDVEVGVIUBUCUDVJWEVDVE
    VGVIUEUFABCUGUHWBWCWDWAWBLBSWBTBSVTWAUIUKVMVNRUJULVKVLVPVKBVOVDBCUMEZVCZUNH
    VGBVOKVJABCWFWFUOUPVEVGVIUQWGBURUSUTVAVB $.

  $( Lemma 2 for ~ usgr2wlkspth .  (Contributed by Alexander van der Vekens,
     2-Mar-2018.)  (Revised by AV, 27-Jan-2021.) $)
  usgr2wlkspthlem2 $p |- ( ( F ( Walks ` G ) P
                             /\ ( G e. USGraph /\ ( # ` F ) = 2
                                  /\ ( P ` 0 ) =/= ( P ` ( # ` F ) ) ) )
                           -> Fun `' P ) $=
    ( cfv wcel chash c2 wceq cc0 wne w3a wa ccnv wfun c1 cvv fvex c3 caddc co
    cwlks wbr cusgr simp1 anim2i ancomd 3simpc adantl usgr2wlkneq syl2anc simpl
    3pm3.2i jctil funcnvs3 3syl cvtx cword wlkpwrd wlklenvp1 oveq1 2p1e3 syl6eq
    cs3 eqid 3ad2ant2 sylan9eq wrdlen3s3 syl2an2r cnveqd funeqd mpbird ) BACUAD
    UBZCUCEZBFDZGHZIADZVNADJZKZLZAMZNVPOADZGADZVCZMZNZVSVPWAJVPWBJWAWBJKZIBDOBD
    JZLZVPPEZWAPEZWBPEZKZWFLWEVSVMVLLVOVQLZWHVSVLVMVRVMVLVMVOVQUDUEUFVRWMVLVMVO
    VQUGUHABCUIUJWHWFWLWFWGUKWIWJWKIAQOAQGAQULUMVPWAWBPUNUOVSVTWDVSAWCVLACUPDZU
    QEVRAFDZRHAWCHABCWNWNVDURVLVRWOVNOSTZRABCUSVOVMWPRHVQVOWPGOSTRVNGOSUTVAVBVE
    VFWNAVGVHVIVJVK $.

  $( In a simple graph, any walk of length 2 between two different vertices is
     a simple path.  (Contributed by Alexander van der Vekens, 2-Mar-2018.)
     (Revised by AV, 27-Jan-2021.)  (Proof shortened by AV, 31-Oct-2021.) $)
  usgr2wlkspth $p |- ( ( G e. USGraph /\ ( # ` F ) = 2 /\ A =/= B )
                       -> ( F ( A ( WalksOn ` G ) B ) P
                            <-> F ( A ( SPathsOn ` G ) B ) P ) ) $=
    ( wcel cfv wceq wne w3a co wbr wa cvv ccnv wfun wi ex 3ad2ant3 sylanbrc cc0
    cusgr chash c2 cwlkson cspthson cvtx cwlks cspths ctrls simpl31 simp2 simp3
    neeq12d bicomd 3anbi3d usgr2wlkspthlem1 3ad2ant1 imp istrl usgr2wlkspthlem2
    sylbid isspth 3simpc adantr 3anass wb 3simpa eqid isspthonpth syl wlkonprop
    mpbird 3anim1i cpthson ctrlson spthonpthon pthontrlon trlsonwlkon impbid1
    syl11 3syl ) EUBFZDUCGZUDHZABIZJZDCABEUEGKLZDCABEUFGKLZAEUGGZFZBWJFZMZDNFCN
    FMZDCEUHGLZUACGZAHZWDCGZBHZJZJZWGWIWHXAWGWIXAWGMZWIDCEUIGLZWQWSJZXBXCWQWSMZ
    XDXBDCEUJGLZCOPZXCXBWODOPZXFWOWQWSWMWNWGUKXAWGXHWTWMWGXHQWNWTWGWCWEWPWRIZJZ
    XHWTWFXIWCWEWTXIWFWTWPAWRBWOWQWSULWOWQWSUMUNUOUPZWOWQXJXHQWSWOXJXHCDEUQRURV
    BSUSCDEUTTXAWGXGWTWMWGXGQWNWTWGXJXGXKWOWQXJXGQWSWOXJXGCDEVARURVBSUSCDEVCTXA
    XEWGWTWMXEWNWOWQWSVDSVEXCWQWSVFTXBWMWNMZWIXDVGXAXLWGWMWNWTVHVEABCDEWJNNWJVI
    ZVJVKVMRWHENFZWKWLJZWNWTJXAABCDEWJXMVLXOWMWNWTXNWKWLVDVNVKWAWIDCABEVOGKLDCA
    BEVPGKLWHABCDEVQABCDEVRABCDEVSWBVT $.

  ${
    $d F i $.  $d G i $.  $d P i $.
    $( In a simple graph, any trail of length 2 does not start and end at the
       same vertex.  (Contributed by AV, 5-Jun-2021.)  (Proof shortened by AV,
       31-Oct-2021.) $)
    usgr2trlncl $p |- ( ( G e. USGraph /\ ( # ` F ) = 2 )
                      -> ( F ( Trails ` G ) P -> ( P ` 0 ) =/= ( P ` 2 ) ) ) $=
      ( vi wcel cfv c2 wceq cc0 wne wi cfzo co wf1 c1 cpr wb eqid wa cvv wbr wf
      cusgr chash ctrls ciedg cdm cvtx cv caddc wral cupgr usgrupgr upgrf1istrl
      cfz w3a syl eqidd oveq2 fzo0to2pr syl6eq f1eq123d raleqdv 2wlklem anbi12d
      syl6bb adantl c0ex pm3.2i 0ne1 f12dfv mp2an cedg wf1o usgrf1oedg f1of1 id
      1ex prid1 a1i ffvelrnd prid2 anim2i ancoms f1veqaeq necon3d simpl neeq12d
      jca simpr preq1 prcom necon3i syl6bi com12 syl6 expcom com23 mpcom syl5bi
      a1d impd adantr sylbid 3adant2 expdcom imp ) CUCEZBUDFZGHZBACUEFUAZIAFZGA
      FZJZKXHXKXJXNXHXKIXILMZCUFFZUGZBNZIXIUOMCUHFZAUBZDUIZBFXPFYAAFYAOUJMAFPHZ
      DXOUKZUPZXJXNKXHCULEXKYDQCUMADBCXPXSXSRXPRZUNUQXHXJYDXNYDXHXJXNXRYCXHXJSZ
      XNKXTYFXRYCSZXNYFYGIOPZXQBNZIBFZXPFZXLOAFZPZHZOBFZXPFZYLXMPZHZSZSZXNXJYGY
      TQXHXJXRYIYCYSXJXOYHXQXQBBXJBURXJXOIGLMYHXIGILUSUTVAZXJXQURVBXJYCYBDYHUKY
      SXJYBDXOYHUUAVCADXPBVDVFVEVGXHYTXNKXJXHYIYSXNYIYHXQBUBZYJYOJZSZXHYSXNKZIT
      EZOTEZSIOJYIUUDQUUFUUGVHVRVIVJYHXQTBTIOYHRVKVLXQCVMFZXPVNZXHUUDUUEKZUUHCX
      PYEUUHRVOUUIXQUUHXPNZXHUUJKXQUUHXPVPUUKUUDXHUUEUUKUUBUUCXHUUEKZUUBUUKUUCU
      ULKUUBUUKSZUUCYKYPJZUULUUMYKYPYJYOUUMUUKYJXQEZYOXQEZSZSZYKYPHYJYOHKUUKUUB
      UURUUBUUQUUKUUBUUOUUPUUBYHXQIBUUBVQZIYHEUUBIOVHVSVTWAUUBYHXQOBUUSOYHEUUBI
      OVRWBVTWAWIWCWDXQUUHYJYOXPWEUQWFUUNUUEXHYSUUNXNYSUUNYMYQJXNYSYKYMYPYQYNYR
      WGYNYRWJWHXLXMYMYQXLXMHYMXMYLPYQXLXMYLWKXMYLWLVAWMWNWOXAWPWQXBWRUQWSWTXBX
      CXDWOXEXFWRXDWRXG $.
  $}

  $( In a simple graph, any trail of length 2 is a simple path.  (Contributed
     by AV, 5-Jun-2021.) $)
  usgr2trlspth $p |- ( ( G e. USGraph /\ ( # ` F ) = 2 )
                       -> ( F ( Trails ` G ) P <-> F ( SPaths ` G ) P ) ) $=
    ( cusgr wcel chash cfv c2 wa ctrls wbr cspths cc0 wne usgr2trlncl imp cwlks
    wceq wi co cwlkson trliswlk wlkonwlk cspthson wb simpll simplr fveq2 eqcomd
    neeq2d biimpd adantl usgr2wlkspth syl3anc spthonisspth syl6bi expcom impcom
    com13 3syl mpd ex cpths spthispth pthistrl syl impbid1 ) CDEZBFGZHRZIZBACJG
    KZBACLGKZVKVLVMVKVLIMAGZHAGZNZVMVKVLVPABCOPVLVKVPVMSZVLBACQGKBAVNVIAGZCUAGT
    KZVKVQSABCUBABCUCVPVKVSVMVKVPVSVMSVKVPIZVSBAVNVRCUDGTKZVMVTVHVJVNVRNZVSWAUE
    VHVJVPUFVHVJVPUGVKVPWBVJVPWBSVHVJVPWBVJVOVRVNVJVRVOVIHAUHUIUJUKULPVNVRABCUM
    UNVNVRABCUOUPUQUSUTURVAVBVMBACVCGKVLABCVDABCVEVFVG $.

  $( In a simple graph, any path of length 2 is a simple path.  (Contributed by
     Alexander van der Vekens, 25-Jan-2018.)  (Revised by AV, 5-Jun-2021.) $)
  usgr2pthspth $p |- ( ( G e. USGraph /\ ( # ` F ) = 2 )
                         -> ( F ( Paths ` G ) P <-> F ( SPaths ` G ) P ) ) $=
    ( cusgr wcel chash cfv c2 wceq cpths wbr cspths ctrls pthistrl usgr2trlspth
    wa syl5ib spthispth impbid1 ) CDEBFGHIPZBACJGKZBACLGKZUABACMGKTUBABCNABCOQA
    BCRS $.

  ${
    $d F i $.  $d F x y z $.  $d G x y z $.  $d I i $.  $d I x y z $.
    $d P i $.  $d P x y z $.  $d V x y z $.
    usgr2pthlem.v $e |- V = ( Vtx ` G ) $.
    usgr2pthlem.i $e |- I = ( iEdg ` G ) $.
    $( Lemma for ~ usgr2pth .  (Contributed by Alexander van der Vekens,
       27-Jan-2018.)  (Revised by AV, 5-Jun-2021.) $)
    usgr2pthlem $p |- ( ( F : ( 0 ..^ ( # ` F ) ) -1-1-> dom I
                       /\ P : ( 0 ... ( # ` F ) ) --> V
                       /\ A. i e. ( 0 ..^ ( # ` F ) )
                        ( I ` ( F ` i ) ) = { ( P ` i ) , ( P ` ( i + 1 ) ) } )
              -> ( ( G e. USGraph /\ ( # ` F ) = 2 )
                   -> E. x e. V E. y e. ( V \ { x } ) E. z e. ( V \ { x , y } )
                      ( ( ( P ` 0 ) = x /\ ( P ` 1 ) = y /\ ( P ` 2 ) = z )
                        /\ ( ( I ` ( F ` 0 ) ) = { x , y }
                        /\ ( I ` ( F ` 1 ) ) = { y , z } ) ) ) ) $=
      ( cc0 cfv c1 wceq wcel c2 wa wi adantl chash cfzo co cdm wf1 cfz wf caddc
      cpr wral cusgr w3a cdif wrex csn cn0 cle 0nn0 2nn0 0le2 elfz2nn0 mpbir3an
      cv wbr ffvelrn mpan2 1nn0 1le2 wne wn cvv simpr jctir prcom eqeq2i biimpi
      fvex adantr usgrnloopv sylc elsn necon3bbii sylibr eldifd wb sneq difeq2d
      ad2antlr eleq2d mpbird 2re leidi crn usgrf1 simpl ad2antrr jca 2nn lbfzo0
      mpbir clt 1lt2 elfzo0 pm3.2i 0ne1 3jca 2f1fvneq necom 3pm3.2i fvexd jca31
      cn a1i imp pr1nebg sylancr syl5bb nelprd preq12 eqcom 3anbi123i ad4ant123
      adantll preq12d eqeq2d anbi12d biimpa exp41 imp31 rspcimedv com15 pm2.43i
      syl com12 oveq2 raleqdv fzo0to2pr raleqi 2wlklem bitri syl6bb feq2d f1eq2
      imbi1d imbi12d 3imtr4d com14 com23 3imp ) LFUAMZUBUCZHUDZFUEZLUUJUFUCZIDU
      GZEVCZFMHMUUPDMUUPNUHUCDMUIOZEUUKUJZGUKPZUUJQOZRZLDMZAVCZOZNDMZBVCZOZQDMZ
      CVCZOZULZLFMZHMZUVCUVFUIZOZNFMZHMZUVFUVIUIZOZRZRZCIUVNUMZUNZBIUVCUOZUMZUN
      ZAIUNZSZUUMUURUUOUWHUVAUURUUOUUMUWGUVAUVMUVBUVEUIZOZUVQUVEUVHUIZOZRZLQUFU
      CZIDUGZLQUBUCZUULFUEZUWGSZSZUURUUOUUMUWGSZSUUSUWMUWSSUUTUWMUUSUWSUWMUUSUW
      SSUWQUWMUUSUWOUWMUWGUWQUWMUUSUWOUWMUWGSUWQUWMRZUUSRZUWORZUWFUWMAUVBIUWOUV
      BIPZUXBUWOLUWNPZUXDUXELUPPQUPPZLQUQVDURUSUTLQVAVBUWNILDVEVFTUXCUVCUVBOZRZ
      UWCUWMBUVEUWEUXHUVEUWEPZUVEIUVBUOZUMZPZUXCUXLUXGUXCUVEIUXJUWOUVEIPZUXBUWO
      NUWNPZUXMUXNNUPPZUXFNQUQVDVGUSVHNQVAVBUWNINDVEVFTUXCUVEUVBVIZUVEUXJPZVJUX
      BUXPUWOUXBUUSUVEVKPZRUVMUVEUVBUIZOZUXPUXBUUSUXRUXAUUSVLZNDVQZVMUWMUXTUWQU
      USUWJUXTUWLUWJUXTUWIUXSUVMUVBUVEVNVOVPVRWHHGUVEUVBVKUVLKVSVTVRUXQUVEUVBUV
      EUVBUYBWAWBWCWDVRUXGUXIUXLWEUXCUXGUWEUXKUVEUXGUWDUXJIUVCUVBWFWGWITWJUXHUV
      FUVEOZRZUWAUWMCUVHUWBUYDUVHUWBPZUVHIUWIUMZPZUXCUYGUXGUYCUXCUVHIUWIUWOUVHI
      PZUXBUWOQUWNPZUYHUYIUXFUXFQQUQVDUSUSQWKWLQQVAVBUWNIQDVEVFTUXCUVHUVBUVEUXC
      UVHUVBVIZUWIUWKVIZUXCUULHWMZHUEZUWQRZLUWPPZNUWPPZRZLNVIZULUWMUYKUXCUYNUYQ
      UYRUXCUYMUWQUUSUYMUXAUWOHGKWNWHUXAUWQUUSUWOUWQUWMWOWPWQUYQUXCUYOUYPUYOQXL
      PZWRQWSWTUYPUXOUYSNQXAVDVGWRXBNQXCVBXDXMUYRUXCXEXMXFUXAUWMUUSUWOUWQUWMVLW
      PLNUWPUULUYLHFUWIUWKXGVTUYJUVBUVHVIZUXCUYKUVHUVBXHUXCUVBVKPZUXRUVHVKPZULU
      VBUVEVIZUYTUYKWEVUAUXRVUBLDVQUYBQDVQXIUXCUUSVUARZUWJRZVUCUXBVUEUWOUXBUUSV
      UAUWJUYAUXBLDXJUWMUWJUWQUUSUWJUWLWOWHXKVRVUDUWJVUCHGUVBUVEVKUVLKVSXNYMUVB
      UVEUVHVKVKVKXOXPXQWJUXCUUSVUBRZUVQUVHUVEUIZOZRZUVHUVEVIZUXBVUIUWOUXBUUSVU
      BVUHUYAUXBQDXJUWMVUHUWQUUSUWLVUHUWJUWLVUHUWKVUGUVQUVEUVHVNVOVPTWHXKVRVUFV
      UHVUJHGUVHUVEVKUVPKVSXNYMXRWDWPUXGUYCUYEUYGWEUXCUXGUYCRZUWBUYFUVHVUKUVNUW
      IIUVCUVFUVBUVEXSWGWIYCWJUXHUYCUVIUVHOZUWMUWASZUXGUYCVULVUMSSUXCUXGUYCVULU
      WMUWAVUKVULRZUWMRUVKUVTUXGUYCVULUVKUWMUXGUYCVULULUVKUXGUVDUYCUVGVULUVJUVC
      UVBXTZUVFUVEXTZUVIUVHXTZYAVPYBVUNUWMUVTVUNUWJUVOUWLUVSVUNUWIUVNUVMVUNUVBU
      VCUVEUVFUXGUVDUYCVULUXGUVDVUOVPWPUYCUVGUXGVULUYCUVGVUPVPWHZYDYEVUNUWKUVRU
      VQVUNUVEUVFUVHUVIVURVULUVJVUKVULUVJVUQVPTYDYEYFYGWQYHTYIYJYJYJYHYKYLYNVRU
      UTUURUWMWEUUSUUTUURUUQEUWPUJZUWMUUTUUQEUUKUWPUUJQLUBYOZYPVUSUUQELNUIZUJUW
      MUUQEUWPVVAYQYRDEHFYSYTUUATUVAUUOUWOUWTUWRUUTUUOUWOWEUUSUUTUUNUWNIDUUJQLU
      FYOUUBTUUTUWTUWRWEUUSUUTUUMUWQUWGUUTUUKUWPOUUMUWQWEVUTUUKUWPUULFUUCYMUUDT
      UUEUUFUUGUUHUUI $.

    $d G i $.  $d V i $.
    $( In a simple graph, there is a path of length 2 iff there are three
       distinct vertices so that one of them is connected to each of the two
       others by an edge.  (Contributed by Alexander van der Vekens,
       27-Jan-2018.)  (Revised by AV, 5-Jun-2021.)  (Proof shortened by AV,
       31-Oct-2021.) $)
    usgr2pth $p |- ( G e. USGraph -> ( ( F ( Paths ` G ) P /\ ( # ` F ) = 2 )
     <-> ( F : ( 0 ..^ 2 ) -1-1-> dom I /\ P : ( 0 ... 2 ) -1-1-> V
           /\ E. x e. V E. y e. ( V \ { x } ) E. z e. ( V \ { x , y } )
                ( ( ( P ` 0 ) = x /\ ( P ` 1 ) = y /\ ( P ` 2 ) = z )
           /\ ( ( I ` ( F ` 0 ) ) = { x , y }
                /\ ( I ` ( F ` 1 ) ) = { y , z } ) ) ) ) ) $=
      ( vi cfv c2 wceq wa cc0 cpr wi adantl imp cusgr wcel cpths wbr chash cfzo
      co cdm wf1 cfz cv c1 w3a cdif wrex csn cspths usgr2pthspth cupgr usgrupgr
      adantr ctrls ccnv wfun wb isspth a1i caddc upgrf1istrl anbi1d oveq2 f1eq2
      wral syl biimpd com12 3ad2ant1 ad2antrl feq2d df-f1 simplbi2 sylbid com3l
      wf 3ad2ant2 usgr2pthlem 3jcad ex com23 mpcom com13 cn0 fnfzo0hash sylancr
      2nn0 eqcoms ad2antrr syl5ib biimpi preq12d eqeq2d biimpcd impcom 3ad2ant3
      f1f eqcom rexlimivw a1i13 fzo0to2pr syl6eq raleqdv 2wlklem syl6bb sylibrd
      imbi2d 3jca simprbi bitrd mpbird simpr simp-4l syl2anc exp41 3imp impbid
      jca ) FUAUBZEDFUCLUDZEUELZMNZOZPMUFUGZGUHZEUIZPMUJUGZHDUIZPDLZAUKZNZULDLZ
      BUKZNZMDLZCUKZNZUMZPELGLZYRUUAQZNZULELGLZUUAUUDQZNZOZOZCHUUHUNZUOZBHYRUPU
      NZUOZAHUOZUMZYKYGUUTYHYJYGUUTRYGYJYHUUTYGYJYHUUTRYGYJOZYHEDFUQLUDZUUTDEFU
      RZFUSUBZUVAUVBUUTRYGUVDYJFUTZVAUVDUVBUVAUUTUVDUVBEDFVBLUDZDVCVDZOZUVAUUTR
      ZUVBUVHVEUVDDEFVFVGZUVDUVHPYIUFUGZYMEUIZPYIUJUGZHDWDZKUKZELGLUVODLUVOULVH
      UGDLQNZKUVKVMZUMZUVGOZUVIUVDUVFUVRUVGDKEFGHIJVIVJZUVDUVSUVIUVDUVSOUVAYNYP
      UUSUVRUVAYNRZUVDUVGUVLUVNUWAUVQUVAUVLYNYJUVLYNRYGYJUVLYNYJUVKYLNUVLYNVEYI
      MPUFVKZUVKYLYMEVLVNVOSVPVQVRUVSUVAYPRZUVDUVRUVGUWCUVNUVLUVGUWCRUVQUVAUVNU
      VGYPYJUVNUVGYPRZRYGYJUVNYOHDWDZUWDYJUVMYOHDYIMPUJVKVSUWEUWDRYJYPUWEUVGYOH
      DVTZWAVGWBSWCWETSUVRUVAUUSRUVDUVGABCDKEFGHIJWFVRWGWHWBWBWIWJWBWHWKTVPUUTY
      GYKYNYPUUSYGYKRZYJYNYPUUSUWGRRYNMWLUBYLYMEWDYJWOYLYMEXEYMEMWMWNYJYNYPUUSU
      WGYJYNOZYPOZUUSOZYGYKUWJYGOZYHYJUWKYHUVBUWKUVBUVSUWKUVRUVGUWKUVLUVNUVQUWI
      UVLUUSYGUWHUVLYPYJYNUVLYJYNUVLYJYLUVKNZYNUVLVEUWLMYIMYIPUFVKWPYLUVKYMEVLV
      NVOTVAWQUWIUVNUUSYGUWHYPUVNYPUWEUWHUVNYOHDXEUWHYOUVMHDYJYOUVMNZYNUWMMYIMY
      IPUJVKWPVAVSWRTWQUWJYGUVQUWIUUSYGUVQRZYJUUSUWNRYNYPYJUUSYGUUGYQYTQZNZUUJY
      TUUCQZNZOZRUWNYJUUSYGUWSUURUWSAHUUPUWSBUUQUUNUWSCUUOUUNUWPUWRUUMUUFUWPUUI
      UUFUWPRUULUUFUUIUWPUUFUUHUWOUUGUUFYRYQUUAYTYSUUBYRYQNZUUEYSUWTYQYRXFWSVQU
      UBYSUUAYTNZUUEUUBUXAYTUUAXFWSWEZWTXAXBVAXCUUMUUFUWRUULUUFUWRRUUIUUFUULUWR
      UUFUUKUWQUUJUUFUUAYTUUDUUCUXBUUEYSUUDUUCNZUUBUUEUXCUUCUUDXFWSXDWTXAXBSXCY
      FXGXGXGXHYJUVQUWSYGYJUVQUVPKPULQZVMUWSYJUVPKUVKUXDYJUVKYLUXDUWBXIXJXKDKGE
      XLXMXOXNWQTTXPUWIUVGUUSYGYPUVGUWHYPUWEUVGUWFXQSWQYFYGUVBUVSVEZUWJYGUVDUXE
      UVEUVDUVBUVHUVSUVJUVTXRVNSXSUWKYGYJYHUVBVEUWJYGXTYJYNYPUUSYGYAZUVCYBXSUXF
      YFWHYCWJYDVPYE $.

    $( In a simply graph, there is a path of length 2 iff there are three
       distinct vertices so that one of them is connected to each of the two
       others by an edge.  (Contributed by Alexander van der Vekens,
       27-Jan-2018.)  (Revised by AV, 5-Jun-2021.) $)
    usgr2pth0 $p |- ( G e. USGraph -> ( ( F ( Paths ` G ) P /\ ( # ` F ) = 2 )
               <-> ( F : ( 0 ..^ 2 ) -1-1-> dom I
                  /\ P : ( 0 ... 2 ) -1-1-> V
                  /\ E. x e. V E. y e. ( V \ { x } ) E. z e. ( V \ { x , y } )
                          ( ( ( P ` 0 ) = x /\ ( P ` 1 ) = z /\ ( P ` 2 ) = y )
                            /\ ( ( I ` ( F ` 0 ) ) = { x , z }
                              /\ ( I ` ( F ` 1 ) ) = { z , y } ) ) ) ) ) $=
      ( cfv c2 wceq wa cc0 cv w3a cpr wrex wne cusgr wcel cpths wbr cfzo co cdm
      chash wf1 cfz c1 cdif csn usgr2pth wb r19.42v bitr3i rexbii rexcom df-3an
      rexdifpr anass ancom necom anbi2ci anbi1i 3bitri 3bitr4i 3bitr2i rexdifsn
      a1i rexbidva 3anbi3d bitrd ) FUAUBZEDFUCKUDEUHKLMNOLUEUFGUGEUIZOLUJUFHDUI
      ZODKAPZMUKDKCPZMLDKBPZMQOEKGKVRVSRZMUKEKGKVSVTRMNNZBHWAULZSZCHVRUMULZSZAH
      SZQVPVQWBCHVRVTRULZSZBWESZAHSZQACBDEFGHIJUNVOWGWKVPVQVOWFWJAHWFWJUOVOVRHU
      BNVSVRTZWDNZCHSZVTVRTZWINZBHSZWFWJWNWOVTVSTZWLWBNZQZBHSZCHSWTCHSZBHSWQWMX
      ACHWMWSBWCSXAWLWBBWCUPWSBHVRVSVAUQURWTCBHHUSXBWPBHXBWLVSVTTZWOWBNZQZCHSXD
      CWHSWPWTXECHWTWOWRNZWSNXFWLNZWBNZXEWOWRWSUTXFWLWBVBWLXCNZWONZWBNXIXDNXHXE
      XIWOWBVBXGXJWBXGWOWRWLNZNXKWONXJWOWRWLVBWOXKVCXKXIWOWRXCWLVTVSVDVEVFVGVFW
      LXCXDUTVHVIURXDCHVRVTVAWOWBCWHUPVIURVGWDCHVRVJWIBHVRVJVHVKVLVMVN $.
  $}

  ${
    $d P i j $.  $d R i j $.  $d ph i j $.
    pthd.p $e |- ( ph -> P e. Word _V ) $.
    pthd.r $e |- R = ( ( # ` P ) - 1 ) $.
    pthd.s $e |- ( ph -> A. i e. ( 0 ..^ ( # ` P ) ) A. j e. ( 1 ..^ R )
                         ( i =/= j -> ( P ` i ) =/= ( P ` j ) ) ) $.
    $( Lemma 1 for ~ pthd .  (Contributed by Alexander van der Vekens,
       13-Nov-2017.)  (Revised by AV, 9-Feb-2021.) $)
    pthdlem1 $p |- ( ph -> Fun `' ( P |` ( 1 ..^ R ) ) ) $=
      ( c1 cfv co wbr cfzo wa cvv wral wcel syl wceq cz cmin clt cres ccnv wfun
      chash wf wf1 cv wne wi cc0 cword wrdf fzo0ss1 a1i oveq2d syl5sseq wss cn0
      lencl nn0z 3syl fzossrbm1 sstrd fssresd adantr csn cun cn cle nn0re ltm1d
      cr 1re peano2rem lttr mp3an2i 1red ltle syl2anc mpan2d imdistani elnnnn0c
      syld sylibr sylan fzo0sn0fzo1 caddc cuz 1zzd c2 1p1e2 2z eqeltri ltaddsub
      wb w3a bicomd 2re sylancr sylbid imp eluz2 syl3anbrc fzosplitsnm1 raleqdv
      uneq2d eqtrd ralunb anbi2i bitri syl6bb eqcomi oveq2i raleqi fvres eqcomd
      adantl neeq12d biimpd imim2d ralimdva syl5bi adantrd adantld mpd sylanbrc
      dff14a df-f1 sylib simprd wn funcnv0 nn0zd peano2zm zred lenltd biimpar
      c0 syl5eqbr syl5eqel fzon mpbird reseq2d res0 syl6eq cnveqd funeqd mpbiri
      jca pm2.61dan ) AIBUFJZIUAKZUBLZBICMKZUCZUDZUEZAUUONZUUPOUUQUGZUUSUUTUUPO
      UUQUHZUVAUUSNUUTUVADUIZEUIZUJZUVCUUQJZUVDUUQJZUJZUKZEUUPPZDUUPPZUVBAUVAUU
      OAULUUMMKZOUUPBABOUMQZUVLOBUGFOBUNRAUUPULUUNMKZUVLAULCMKUUPUVNCUOACUUNULM
      CUUNSAGUPUQURAUUMTQZUVNUVLUSAUVMUUMUTQZUVOFOBVAZUUMVBZVCUUMVDRVEVFVGUUTUV
      EUVCBJZUVDBJZUJZUKZEUUPPZDUVLPZUVKAUWDUUOHVGUUTUWDUWCDULVHZPZUWCDIUUNMKZP
      ZUWCDUUNVHZPZNZNZUVKUUTUWDUWCDUWEUWGUWIVIZVIZPZUWLUUTUWCDUVLUWNUUTUVLUWEI
      UUMMKZVIZUWNUUTUUMVJQZUVLUWQSAUVPUUOUWRAUVMUVPFUVQRZUVPUUONZUVPIUUMVKLZNU
      WRUVPUUOUXAUVPUUOUUNUUMUBLZUXAUVPUUMUUMVLZVMUVPUUOUXBNZIUUMUBLZUXAIVNQZUV
      PUUNVNQZUUMVNQZUXDUXEUKVOUVPUXHUXGUXCUUMVPRUXCIUUNUUMVQVRUVPUXFUXHUXEUXAU
      KUVPVSZUXCIUUMVTWAWEWBWCUUMWDWFWGUUMWHRUUTUWPUWMUWEUUTITQZUUMIIWIKZWJJQZU
      WPUWMSUUTWKAUVPUUOUXLUWSUWTUXKTQZUVOUXKUUMVKLZUXLUXMUWTUXKWLTWMWNWOUPUVPU
      VOUUOUVRVGUVPUUOUXNUVPUUOUXKUUMUBLZUXNUXFUVPUXFUXHUUOUXOWQVOUXIUXCUXFUXFU
      XHWRUXOUUOIIUUMWPWSVRUVPUXKVNQUXHUXOUXNUKUXKWLVNWMWTWOUXCUXKUUMVTXAXBXCUX
      KUUMXDXEWGIUUMXFWAXHXIXGUWOUWFUWCDUWMPZNUWLUWCDUWEUWMXJUXPUWKUWFUWCDUWGUW
      IXJXKXLXMUUTUWKUVKUWFUUTUWHUVKUWJUWHUWCDUUPPUUTUVKUWCDUWGUUPUUNCIMCUUNGXN
      XOXPUUTUWCUVJDUUPUUTUVCUUPQZNZUWBUVIEUUPUXRUVDUUPQZNZUWAUVHUVEUXTUWAUVHUX
      TUVSUVFUVTUVGUXRUVSUVFSZUXSUXQUYAUUTUXQUVFUVSUVCUUPBXQXRXSVGUXSUVTUVGSUXR
      UXSUVGUVTUVDUUPBXQXRXSXTYAYBYCYCYDYEYFXBYGDEUUPOUUQYIYHUUPOUUQYJYKYLAUUOY
      MZNZUUSYTUDZUEYNUYCUURUYDUYCUUQYTUYCUUQBYTUCYTUYCUUPYTBUYCUUPYTSZCIVKLZUY
      CCUUNIVKGAUUNIVKLUYBAUUNIAUUNAUVOUUNTQAUUMUWSYOUUMYPRZYQAVSYRYSUUAUYCUXJC
      TQZNZUYEUYFWQAUYIUYBAUXJUYHAWKACUUNTGUYGUUBUUKVGUYIUYFUYEICUUCWSRUUDUUEBU
      UFUUGUUHUUIUUJUUL $.

    $d I i j $.
    $( Lemma for ~ pthdlem2 .  (Contributed by AV, 10-Feb-2021.) $)
    pthdlem2lem $p |- ( ( ph /\ ( # ` P ) e. NN /\ ( I = 0 \/ I = R ) )
                        -> ( P ` I ) e/ ( P " ( 1 ..^ R ) ) ) $=
      ( cfv cn wcel cc0 wceq wral wne wi wa syl5ibr cvv chash wo w3a c1 cfzo co
      cima wn wnel cv wrex 3ad2ant1 ralcom clt elfzo1 nnne0 necomd sylbi adantl
      wbr neeq1 expd cle cr nnre adantr ltlend simpr syl6bi 3impia jaoi 3adant1
      impcom imp lbfzo0 biimpri eleq1 cmin fzo0end syl5eqel fveq2 imbi12d rspcv
      neeq1d syl mpid nesym syl6ib ralimdva syl5bi ralnex sylib wfun cword wrdf
      mpd wf ffun 3syl fvelima ex mtod df-nel sylibr ) ABUAJZKLZFMNZFCNZUBZUCZF
      BJZBUDCUEUFZUGZLZUHXKXMUIXJXNEUJZBJZXKNZEXLUKZXJXQUHZEXLOZXRUHXJDUJZXOPZY
      ABJZXPPZQZEXLODMXEUEUFZOZXTAXFYGXIIULYGYEDYFOZEXLOXJXTYEDEYFXLUMXJYHXSEXL
      XJXOXLLZRZYHXKXPPZXSYJYHFXOPZYKXJYIYLXFXIYIYLQZAXIXFYMXGXFYMQXHXGXFYIYLXF
      YIRZYLXGMXOPZYIYOXFYIXOKLZCKLZXOCUNUTZUCZYOCXOUOZYPYQYOYRYPXOMXOUPUQULURU
      SFMXOVASVBXHXFYIYLYNYLXHCXOPZYIUUAXFYIYSUUAYTYPYQYRUUAYPYQRZYRXOCVCUTZUUA
      RUUAUUBXOCYPXOVDLYQXOVEVFYQCVDLYPCVEUSVGUUCUUAVHVIVJURUSFCXOVASVBVKVMVLVN
      YJFYFLZYHYLYKQZQXJUUDYIXFXIUUDAXIXFUUDXGXFUUDQXHXFUUDXGMYFLZUUFXFXEVOVPFM
      YFVQSXFUUDXHCYFLXFCXEUDVRUFYFHXEVSVTFCYFVQSVKVMVLVFYEUUEDFYFYAFNZYBYLYDYK
      YAFXOVAUUGYCXKXPYAFBWAWDWBWCWEWFXKXPWGWHWIWJWPXQEXLWKWLXJBWMZXNXRQAXFUUHX
      IABTWNLYFTBWQUUHGTBWOYFTBWRWSULUUHXNXREXKXLBWTXAWEXBXKXMXCXD $.

    $( Lemma 2 for ~ pthd .  (Contributed by Alexander van der Vekens,
       11-Nov-2017.)  (Revised by AV, 10-Feb-2021.) $)
    pthdlem2 $p |- ( ph -> ( ( P " { 0 , R } )
                               i^i ( P " ( 1 ..^ R ) ) ) = (/) ) $=
      ( cfv cc0 wceq cima c1 cfzo co c0 wcel cvv cn0 cfz chash cpr cin wn cword
      cn wi lencl wne df-ne elnnne0 simplbi2 syl5bir 3syl wnel eqid pthdlem2lem
      wa wo orci mp3an3 olci wf wb cmin wrdffz syl adantr oveq2i sylibr nnm1nn0
      feq2i syl5eqel adantl fvinim0ffz syl2anc mpbir2and ex oveq1 syl5eq oveq2d
      syld cle wbr caddc c2 1p1e2 breqtrri 0re 1re lesubadd2i mpbir cz peano2zm
      0le2 1z 0z ax-mp fzon mp2an mpbi syl6eq imaeq2d ima0 ineq2d in0 pm2.61d2
      ) ABUAIZJKZBJCUBLZBMCNOZLZUCZPKZAXIUDZXHUFQZXNABRUEQZXHSQZXOXPUGFRBUHXOXH
      JUIZXRXPXHJUJXPXRXSXHUKULUMUNAXPXNAXPURZXNJBIXLUOZCBIXLUOZAXPJJKZJCKZUSYA
      YCYDJUPUTABCDEJFGHUQVAAXPCJKZCCKZUSYBYFYECUPVBABCDECFGHUQVAXTJCTOZRBVCZCS
      QZXNYAYBURVDXTJXHMVEOZTOZRBVCZYHAYLXPAXQYLFRBVFVGVHYGYKRBCYJJTGVIVLVJXPYI
      AXPCYJSGXHVKVMVNBCRVOVPVQVRWBXIXMXJPUCPXIXLPXJXIXLBPLPXIXKPBXIXKMJMVEOZNO
      ZPXICYMMNXICYJYMGXHJMVEVSVTWAYMMWCWDZYNPKZYOJMMWEOZWCWDJWFYQWCWOWGWHJMMWI
      WJWJWKWLMWMQYMWMQZYOYPVDWPJWMQYRWQJWNWRMYMWSWTXAXBXCBXDXBXEXJXFXBXG $.

    $d F i j $.
    pthd.f $e |- ( # ` F ) = R $.
    pthd.t $e |- ( ph -> F ( Trails ` G ) P ) $.
    $( Two words representing a trail which also represent a path in a graph.
       (Contributed by AV, 10-Feb-2021.)  (Proof shortened by AV,
       30-Oct-2021.) $)
    pthd $p |- ( ph -> F ( Paths ` G ) P ) $=
      ( cfv wbr c1 chash cfzo co cc0 wral ctrls cres ccnv wfun cpr cima c0 wceq
      cin cpths cmin eqtri cv wne oveq2i raleqi ralbii sylibr pthdlem1 pthdlem2
      wi ispth syl3anbrc ) AFBGUAMNBOFPMZQRZUBUCUDBSVDUEUFBVEUFUIUGUHFBGUJMNLAB
      VDDEHVDCBPMZOUKRKIULZADUMZEUMZUNVHBMVIBMUNVAZEOCQRZTZDSVFQRZTVJEVETZDVMTJ
      VNVLDVMVJEVEVKVDCOQKUOUPUQURZUSABVDDEHVGVOUTBFGVBVC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Closed walks
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ClWalks $.

  $( Extend class notation with closed walks (of a graph). $)
  cclwlks $a class ClWalks $.

  ${
    $d f g p $.
    $( Define the set of all closed walks (in an undirected graph).

       According to definition 4 in [Huneke] p. 2:  "A walk of length n on (a
       graph) G is an ordered sequence v0 , v1 , ... v(n) of vertices such that
       v(i) and v(i+1) are neighbors (i.e are connected by an edge).  We say
       the walk is closed if v(n) = v0".

       According to the definition of a walk as two mappings f from { 0 , ... ,
       ( n - 1 ) } and p from { 0 , ... , n }, where f enumerates the (indices
       of the) edges, and p enumerates the vertices, a closed walk is
       represented by the following sequence: p(0) e(f(0)) p(1) e(f(1)) ...
       p(n-1) e(f(n-1)) p(n)=p(0).

       Notice that by this definition, a single vertex can be considered as a
       closed walk of length 0, see also ~ 0clwlk .  (Contributed by Alexander
       van der Vekens, 12-Mar-2018.)  (Revised by AV, 16-Feb-2021.) $)
    df-clwlks $a |- ClWalks = ( g e. _V |-> { <. f , p >. |
                 ( f ( Walks ` g ) p /\ ( p ` 0 ) = ( p ` ( # ` f ) ) ) } ) $.
  $}

  ${
    $d G f g p $.
    $( The set of closed walks (in an undirected graph).  (Contributed by
       Alexander van der Vekens, 15-Mar-2018.)  (Revised by AV, 16-Feb-2021.)
       (Revised by AV, 29-Oct-2021.) $)
    clwlks $p |- ( ClWalks ` G ) = { <. f , p >. | ( f ( Walks ` G ) p
                                        /\ ( p ` 0 ) = ( p ` ( # ` f ) ) ) } $=
      ( vg cclwlks cfv cv cwlks wbr cc0 chash wceq wa copab wtru biidd cvv wcel
      wksv a1i df-clwlks fvmptopab trud ) BEFAGZCGZBHFIZJUEFUDKFUEFLZMACNLOUGUG
      ACDHEBODGBLMUGPUFACNQROABCSTADCUAUBUC $.
  $}

  ${
    $d F f p $.  $d G f p $.  $d P f p $.
    $( A pair of functions represents a closed walk iff it represents a walk in
       which the first vertex is equal to the last vertex.  (Contributed by
       Alexander van der Vekens, 24-Jun-2018.)  (Revised by AV, 16-Feb-2021.)
       (Proof shortened by AV, 30-Oct-2021.) $)
    isclwlk $p |- ( F ( ClWalks ` G ) P <-> ( F ( Walks ` G ) P
                                        /\ ( P ` 0 ) = ( P ` ( # ` F ) ) ) ) $=
      ( vp vf cc0 cv cfv chash cclwlks cwlks clwlks wa fveq1 adantl simpr fveq2
      wceq adantr fveq12d eqeq12d relwlk brfvopabrbr ) FDGZHZEGZIHZUDHZRFAHZBIH
      ZAHZREDJKBACECDLUFBRZUDARZMZUEUIUHUKUMUEUIRULFUDANOUNUGUJUDAULUMPULUGUJRU
      MUFBIQSTUACUBUC $.

    $( A closed walk is a walk (in an undirected graph).  (Contributed by
       Alexander van der Vekens, 15-Mar-2018.)  (Revised by AV, 16-Feb-2021.)
       (Proof shortened by AV, 30-Oct-2021.) $)
    clwlkiswlk $p |- ( F ( ClWalks ` G ) P -> F ( Walks ` G ) P ) $=
      ( cclwlks cfv wbr cwlks cc0 chash wceq isclwlk simplbi ) BACDEFBACGEFHAEB
      IEAEJABCKL $.

    $d W f p $.
    $( Closed walks are walks (in an undirected graph).  (Contributed by
       Alexander van der Vekens, 23-Jun-2018.)  (Revised by AV, 16-Feb-2021.)
       (Proof shortened by AV, 30-Oct-2021.) $)
    clwlkwlk $p |- ( W e. ( ClWalks ` G ) -> W e. ( Walks ` G ) ) $=
      ( vf vp cwlks cfv wcel cv wbr cc0 chash wa copab cclwlks elopabran clwlks
      wceq eleq2s ) BAEFZGBCHZDHZSIJUAFTKFUAFQZLCDMANFUBCDBSOCADPR $.
  $}

  ${
    $d G w $.
    $( Closed walks are walks (in an undirected graph).  (Contributed by
       Alexander van der Vekens, 25-Aug-2018.)  (Revised by AV,
       16-Feb-2021.) $)
    clwlkswks $p |- ( ClWalks ` G ) C_ ( Walks ` G ) $=
      ( vw cclwlks cfv cwlks cv clwlkwlk ssriv ) BACDAEDABFGH $.
  $}

  ${
    $d F k $.  $d G k $.  $d P k $.
    isclwlke.v $e |- V = ( Vtx ` G ) $.
    isclwlke.i $e |- I = ( iEdg ` G ) $.
    $( Properties of a pair of functions to be a closed walk (in an undirected
       graph).  (Contributed by Alexander van der Vekens, 24-Jun-2018.)
       (Revised by AV, 16-Feb-2021.) $)
    isclwlke $p |- ( G e. X -> ( F ( ClWalks ` G ) P
                     <-> ( ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V )
                               /\ ( A. k e. ( 0 ..^ ( # ` F ) )
                                      if- ( ( P ` k ) = ( P ` ( k + 1 ) ) ,
                                            ( I ` ( F ` k ) ) = { ( P ` k ) } ,
                                            { ( P ` k ) , ( P ` ( k + 1 ) ) }
                                            C_ ( I ` ( F ` k ) ) )
                               /\ ( P ` 0 ) = ( P ` ( # ` F ) ) ) ) ) ) $=
      ( cclwlks cfv wbr cwlks cc0 chash wceq wa wcel co syl6bb cdm cword cfz wf
      cv caddc csn cpr wss wif cfzo wral isclwlk w3a iswlkg df-3an anbi1d anass
      c1 syl5bb ) CADJKLCADMKLZNAKCOKZAKPZQZDGRZCEUAUBRZNVBUCSFAUDZQZBUEZAKZVIU
      SUFSAKZPVICKEKZVJUGPVJVKUHVLUIUJBNVBUKSULZVCQQZACDUMVEVDVHVMQZVCQVNVEVAVO
      VCVEVAVFVGVMUNVOABCDEFGHIUOVFVGVMUPTUQVHVMVCURTUT $.

    $d I k $.  $d V k $.
    $( Properties of a pair of functions to be a closed walk (in a
       pseudograph).  (Contributed by Alexander van der Vekens, 24-Jun-2018.)
       (Revised by AV, 11-Apr-2021.)  (Revised by AV, 28-Oct-2021.) $)
    isclwlkupgr $p |- ( G e. UPGraph -> ( F ( ClWalks ` G ) P
               <-> ( ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V )
                     /\ ( A. k e. ( 0 ..^ ( # ` F ) )
                          ( I ` ( F ` k ) ) = { ( P ` k ) , ( P ` ( k + 1 ) ) }
                          /\ ( P ` 0 ) = ( P ` ( # ` F ) ) ) ) ) ) $=
      ( cclwlks cfv wbr cwlks cc0 chash wceq wa cupgr wcel cdm co cword cfz cpr
      wf cv c1 caddc cfzo wral isclwlk upgriswlk anbi1d 3an4anass syl6bb syl5bb
      w3a ) CADIJKCADLJKZMAJCNJZAJOZPZDQRZCESUARZMURUBTFAUDZPBUEZCJEJVDAJVDUFUG
      TAJUCOBMURUHTUIZUSPPZACDUJVAUTVBVCVEUPZUSPVFVAUQVGUSABCDEFGHUKULVBVCVEUSU
      MUNUO $.

    clwlkcomp.1 $e |- F = ( 1st ` W ) $.
    clwlkcomp.2 $e |- P = ( 2nd ` W ) $.
    $( A closed walk expressed by properties of its components.  (Contributed
       by Alexander van der Vekens, 24-Jun-2018.)  (Revised by AV,
       17-Feb-2021.) $)
    clwlkcomp $p |- ( ( G e. X /\ W e. ( S X. T ) )
                    -> ( W e. ( ClWalks ` G ) <-> ( ( F e. Word dom I
            /\ P : ( 0 ... ( # ` F ) ) --> V ) /\ ( A. k e. ( 0 ..^ ( # ` F ) )
                                      if- ( ( P ` k ) = ( P ` ( k + 1 ) ) ,
                                            ( I ` ( F ` k ) ) = { ( P ` k ) } ,
                                            { ( P ` k ) , ( P ` ( k + 1 ) ) }
                                            C_ ( I ` ( F ` k ) ) )
                               /\ ( P ` 0 ) = ( P ` ( # ` F ) ) ) ) ) ) $=
      ( wcel cfv cc0 co wa wceq cxp cclwlks wbr cdm cword chash cfz wf cv caddc
      csn cpr wss wif cfzo wral cop c1st c2nd eqcomi pm3.2i mpbiri eleq1d df-br
      c1 eqop syl6bbr isclwlke sylan9bbr ) IBCUAOZIFUBPZOZEAVKUCZFJOEGUDUEOQEUF
      PZUGRHAUHSDUIZAPZVOVEUJRAPZTVOEPGPZVPUKTVPVQULVRUMUNDQVNUORUPQAPVNAPTSSVJ
      VLEAUQZVKOVMVJIVSVKVJIVSTIURPZETZIUSPZATZSWAWCEVTMUTAWBNUTVAIEABCVFVBVCEA
      VKVDVGADEFGHJKLVHVI $.

    $d G f g $.  $d W f g $.
    $( Implications for the properties of the components of a closed walk.
       (Contributed by Alexander van der Vekens, 24-Jun-2018.)  (Revised by AV,
       17-Feb-2021.) $)
    clwlkcompim $p |- ( W e. ( ClWalks ` G ) -> ( ( F e. Word dom I
            /\ P : ( 0 ... ( # ` F ) ) --> V )
            /\ ( A. k e. ( 0 ..^ ( # ` F ) )
                 if- ( ( P ` k ) = ( P ` ( k + 1 ) ) ,
                       ( I ` ( F ` k ) ) = { ( P ` k ) } ,
                       { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) )
                 /\ ( P ` 0 ) = ( P ` ( # ` F ) ) ) ) ) $=
      ( vf vg cfv wcel cc0 co wa wceq cvv cclwlks cdm cword chash cfz wf cv csn
      c1 caddc cpr wss wif cfzo cxp wb elfvex cwlks wbr copab clwlks a1i eleq2d
      wral elopaelxp anim2i ex sylbid mpcom clwlkcomp syl ibi ) GDUANZOZCEUBUCO
      PCUDNZUEQFAUFRBUGZANZVPUIUJQANZSVPCNENZVQUHSVQVRUKVSULUMBPVOUNQVDPANVOANS
      RRZVNDTOZGTTUOOZRZVNVTUPWAVNWCGDUAUQWAVNGLUGZMUGZDURNUSPWENWDUDNWENSRZLMU
      TZOZWCWAVMWGGVMWGSWALDMVAVBVCWAWHWCWHWBWAWFLMGVEVFVGVHVIATTBCDEFGTHIJKVJV
      KVL $.

    $( Implications for the properties of the components of a closed walk in a
       pseudograph.  (Contributed by Alexander van der Vekens, 24-Jun-2018.)
       (Revised by AV, 2-May-2021.) $)
    upgrclwlkcompim $p |- ( ( G e. UPGraph /\ W e. ( ClWalks ` G ) )
                  -> ( ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V )
                       /\ A. k e. ( 0 ..^ ( # ` F ) )
                          ( I ` ( F ` k ) ) = { ( P ` k ) , ( P ` ( k + 1 ) ) }
                       /\ ( P ` 0 ) = ( P ` ( # ` F ) ) ) ) $=
      ( cupgr wcel cclwlks cfv wa cc0 co wceq wral cdm cword chash cfz wf cv c1
      csn cpr wss wif cfzo w3a clwlkcompim adantl simprl clwlkwlk upgrwlkcompim
      caddc cwlks simp3d sylan2 adantr simprrr 3jca mpdan ) DLMZGDNOMZPZCEUAUBM
      ZQCUCOZUDRFAUEZPZBUFZAOZVNUGUSRAOZSVNCOEOZVOUHSVOVPUIZVQUJUKBQVKULRZTZQAO
      VKAOSZPZPZVMVQVRSBVSTZWAUMVHWCVGABCDEFGHIJKUNUOVIWCPVMWDWAVIVMWBUPVIWDWCV
      HVGGDUTOMZWDDGUQVGWEPVJVLWDABCDEFGHIJKURVAVBVCVIVMVTWAVDVEVF $.
  $}

  ${
    $( A closed walk of length 1 is a loop.  (Contributed by AV,
       22-Apr-2021.) $)
    clwlkl1loop $p |- ( ( Fun ( iEdg ` G ) /\ F ( ClWalks ` G ) P
                          /\ ( # ` F ) = 1 )
              -> ( ( P ` 0 ) = ( P ` 1 ) /\ { ( P ` 0 ) } e. ( Edg ` G ) ) ) $=
      ( ciedg cfv wfun cclwlks wbr chash c1 wceq cc0 cedg wcel wa cwlks isclwlk
      csn wi fveq2 eqeq2d anbi2d w3a simp2r simp3 simp2l simpr anim2i wlkl1loop
      3adant3 syl21anc jca 3exp sylbid com13 syl5bi 3imp ) CDEFZBACGEHZBIEZJKZL
      AEZJAEZKZVBRCMENZOZUSBACPEHZVBUTAEZKZOZURVAVFSABCQVAVJURVFVAVJVGVDOZURVFS
      VAVIVDVGVAVHVCVBUTJATUAUBVAVKURVFVAVKURUCZVDVEVAVGVDURUDVLURVGVAVDOZVEVAV
      KURUEVAVGVDURUFVAVKVMURVKVDVAVGVDUGUHUJABCUIUKULUMUNUOUPUQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Circuits and cycles
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Circuits $.
  $c Cycles $.

  $( Extend class notation with circuits (in a graph). $)
  ccrcts $a class Circuits $.

  $( Extend class notation with cycles (in a graph). $)
  ccycls $a class Cycles $.

  ${
    $d g f p $.
    $( Define the set of all circuits (in an undirected graph).

       According to Wikipedia ("Cycle (graph theory)",
       ~ https://en.wikipedia.org/wiki/Cycle_(graph_theory) , 3-Oct-2017):  "A
       circuit can be a closed walk allowing repetitions of vertices but not
       edges;"; according to Wikipedia ("Glossary of graph theory terms",
       ~ https://en.wikipedia.org/wiki/Glossary_of_graph_theory_terms,
       3-Oct-2017):  "A circuit may refer to ... a trail (a closed tour without
       repeated edges), ...".

       Following Bollobas ("A trail whose endvertices coincide (a closed trail)
       is called a circuit.", see Definition of [Bollobas] p. 5.), a circuit is
       a closed trail without repeated edges.  So the circuit is also
       represented by the following sequence: p(0) e(f(1)) p(1) e(f(2)) ...
       p(n-1) e(f(n)) p(n)=p(0).  (Contributed by Alexander van der Vekens,
       3-Oct-2017.)  (Revised by AV, 31-Jan-2021.) $)
    df-crcts $a |- Circuits = ( g e. _V |-> { <. f , p >. |
       ( f ( Trails ` g ) p /\ ( p ` 0 ) = ( p ` ( # ` f ) ) ) } ) $.

    $( Define the set of all (simple) cycles (in an undirected graph).

       According to Wikipedia ("Cycle (graph theory)",
       ~ https://en.wikipedia.org/wiki/Cycle_(graph_theory) , 3-Oct-2017):  "A
       simple cycle may be defined either as a closed walk with no repetitions
       of vertices and edges allowed, other than the repetition of the starting
       and ending vertex,"

       According to Bollobas:  "If a walk W = x0 x1 ... x(l) is such that l >=
       3, x0=x(l), and the vertices x(i), 0 < i < l, are distinct from each
       other and x0, then W is said to be a cycle.", see Definition of
       [Bollobas] p. 5.

       However, since a walk consisting of distinct vertices (except the first
       and the last vertex) is a path, a cycle can be defined as path whose
       first and last vertices coincide.  So a cycle is represented by the
       following sequence: p(0) e(f(1)) p(1) ... p(n-1) e(f(n)) p(n)=p(0).
       (Contributed by Alexander van der Vekens, 3-Oct-2017.)  (Revised by AV,
       31-Jan-2021.) $)
    df-cycls $a |- Cycles = ( g e. _V |-> { <. f , p >. |
       ( f ( Paths ` g ) p /\ ( p ` 0 ) = ( p ` ( # ` f ) ) ) } ) $.
  $}

  ${
    $d G g f p $.
    $( The set of circuits (in an undirected graph).  (Contributed by Alexander
       van der Vekens, 30-Oct-2017.)  (Revised by AV, 31-Jan-2021.) $)
    crcts $p |- ( Circuits ` G ) = { <. f , p >. |
                   ( f ( Trails ` G ) p /\ ( p ` 0 ) = ( p ` ( # ` f ) ) ) } $=
      ( vg ccrcts cfv cv ctrls wbr cc0 chash wceq wa copab wtru biidd cvv cwlks
      wcel wksv trliswlk ssopab2i ssexi a1i df-crcts fvmptopab trud ) BEFAGZCGZ
      BHFIZJUIFUHKFUIFLZMACNLOUKUKACDHEBODGBLMUKPUJACNZQSOULUHUIBRFIZACNABCTUJU
      MACUIUHBUAUBUCUDADCUEUFUG $.

    $( The set of cycles (in an undirected graph).  (Contributed by Alexander
       van der Vekens, 30-Oct-2017.)  (Revised by AV, 31-Jan-2021.) $)
    cycls $p |- ( Cycles ` G ) = { <. f , p >. |
                   ( f ( Paths ` G ) p /\ ( p ` 0 ) = ( p ` ( # ` f ) ) ) } $=
      ( vg ccycls cfv cv cpths wbr cc0 chash wceq wa copab wtru biidd cvv cwlks
      wcel wksv pthiswlk ssopab2i ssexi a1i df-cycls fvmptopab trud ) BEFAGZCGZ
      BHFIZJUIFUHKFUIFLZMACNLOUKUKACDHEBODGBLMUKPUJACNZQSOULUHUIBRFIZACNABCTUJU
      MACUIUHBUAUBUCUDADCUEUFUG $.
  $}

  ${
    $d F f p $.  $d G f p $.  $d P f p $.
    $( Sufficient and necessary conditions for a pair of functions to be a
       circuit (in an undirected graph):  A pair of function "is" (represents)
       a circuit iff it is a closed trail.  (Contributed by Alexander van der
       Vekens, 30-Oct-2017.)  (Revised by AV, 31-Jan-2021.)  (Revised by AV,
       30-Oct-2021.) $)
    iscrct $p |- ( F ( Circuits ` G ) P <-> ( F ( Trails ` G ) P
                                        /\ ( P ` 0 ) = ( P ` ( # ` F ) ) ) ) $=
      ( vp vf cc0 cv cfv chash wceq ccrcts ctrls crcts fveq1 adantl simpr fveq2
      wa adantr fveq12d eqeq12d reltrls brfvopabrbr ) FDGZHZEGZIHZUDHZJFAHZBIHZ
      AHZJEDKLBACECDMUFBJZUDAJZRZUEUIUHUKUMUEUIJULFUDANOUNUGUJUDAULUMPULUGUJJUM
      UFBIQSTUACUBUC $.

    $( Sufficient and necessary conditions for a pair of functions to be a
       cycle (in an undirected graph):  A pair of function "is" (represents) a
       cycle iff it is a closed path.  (Contributed by Alexander van der
       Vekens, 30-Oct-2017.)  (Revised by AV, 31-Jan-2021.)  (Revised by AV,
       30-Oct-2021.) $)
    iscycl $p |- ( F ( Cycles ` G ) P <-> ( F ( Paths ` G ) P
                                        /\ ( P ` 0 ) = ( P ` ( # ` F ) ) ) ) $=
      ( vp vf cc0 cv cfv chash wceq ccycls cpths cycls fveq1 adantl simpr fveq2
      wa adantr fveq12d eqeq12d relpths brfvopabrbr ) FDGZHZEGZIHZUDHZJFAHZBIHZ
      AHZJEDKLBACECDMUFBJZUDAJZRZUEUIUHUKUMUEUIJULFUDANOUNUGUJUDAULUMPULUGUJJUM
      UFBIQSTUACUBUC $.
  $}

  $( The properties of a circuit:  A circuit is a closed trail.  (Contributed
     by AV, 31-Jan-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
  crctprop $p |- ( F ( Circuits ` G ) P -> ( F ( Trails ` G ) P
                                        /\ ( P ` 0 ) = ( P ` ( # ` F ) ) ) ) $=
    ( ccrcts cfv wbr ctrls cc0 chash wceq wa iscrct biimpi ) BACDEFBACGEFHAEBIE
    AEJKABCLM $.

  $( The properties of a cycle:  A cycle is a closed path.  (Contributed by AV,
     31-Jan-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
  cyclprop $p |- ( F ( Cycles ` G ) P -> ( F ( Paths ` G ) P
                                        /\ ( P ` 0 ) = ( P ` ( # ` F ) ) ) ) $=
    ( ccycls cfv wbr cpths cc0 chash wceq wa iscycl biimpi ) BACDEFBACGEFHAEBIE
    AEJKABCLM $.

  $( A circuit is a closed walk.  (Contributed by AV, 17-Feb-2021.)  (Proof
     shortened by AV, 30-Oct-2021.) $)
  crctisclwlk $p |- ( F ( Circuits ` G ) P -> F ( ClWalks ` G ) P ) $=
    ( ccrcts cfv wbr ctrls cc0 chash wa cclwlks crctprop cwlks trliswlk isclwlk
    wceq biimpri sylan syl ) BACDEFBACGEFZHAEBIEAEPZJBACKEFZABCLTBACMEFZUAUBABC
    NUBUCUAJABCOQRS $.

  $( A circuit is a trail.  (Contributed by Alexander van der Vekens,
     30-Oct-2017.)  (Revised by AV, 31-Jan-2021.) $)
  crctistrl $p |- ( F ( Circuits ` G ) P -> F ( Trails ` G ) P ) $=
    ( ccrcts cfv wbr ctrls cc0 chash wceq crctprop simpld ) BACDEFBACGEFHAEBIEA
    EJABCKL $.

  $( A circuit is a walk.  (Contributed by AV, 6-Apr-2021.) $)
  crctiswlk $p |- ( F ( Circuits ` G ) P -> F ( Walks ` G ) P ) $=
    ( ccrcts cfv wbr ctrls cwlks crctistrl trliswlk syl ) BACDEFBACGEFBACHEFABC
    IABCJK $.

  $( A cycle is a path.  (Contributed by Alexander van der Vekens,
     30-Oct-2017.)  (Revised by AV, 31-Jan-2021.) $)
  cyclispth $p |- ( F ( Cycles ` G ) P -> F ( Paths ` G ) P ) $=
    ( ccycls cfv wbr cpths cc0 chash wceq cyclprop simpld ) BACDEFBACGEFHAEBIEA
    EJABCKL $.

  $( A cycle is a walk.  (Contributed by Alexander van der Vekens, 7-Nov-2017.)
     (Revised by AV, 31-Jan-2021.) $)
  cycliswlk $p |- ( F ( Cycles ` G ) P -> F ( Walks ` G ) P ) $=
    ( ccycls cfv wbr cpths cwlks cyclispth pthiswlk syl ) BACDEFBACGEFBACHEFABC
    IABCJK $.

  $( A cycle is a circuit.  (Contributed by Alexander van der Vekens,
     30-Oct-2017.)  (Revised by AV, 31-Jan-2021.)  (Proof shortened by AV,
     30-Oct-2021.) $)
  cycliscrct $p |- ( F ( Cycles ` G ) P -> F ( Circuits ` G ) P ) $=
    ( cpths cfv wbr cc0 chash ctrls ccycls ccrcts pthistrl anim1i iscycl iscrct
    wceq wa 3imtr4i ) BACDEFZGAEBHEAEPZQBACIEFZTQBACJEFBACKEFSUATABCLMABCNABCOR
    $.

  $( A (non trivial) cycle is not a simple path.  (Contributed by Alexander van
     der Vekens, 30-Oct-2017.)  (Revised by AV, 31-Jan-2021.)  (Proof shortened
     by AV, 30-Oct-2021.) $)
  cyclnspth $p |- ( F =/= (/)
                    -> ( F ( Cycles ` G ) P -> -. F ( SPaths ` G ) P ) ) $=
    ( ccycls cfv wbr c0 wne cspths wn cpths cc0 chash wceq wa wi iscycl cvv syl
    wcel relpths brrelexi hasheq0 necon3bid bicomd biimpa spthdep neneqd expcom
    wb con2d impancom sylbi com12 ) BACDEFZBGHZBACIEFZJZUOBACKEZFZLAEZBMEZAEZNZ
    OUPURPABCQUTUPVDURUTUPOZUQVDVEVBLHZUQVDJZPUTUPVFUTBRTZUPVFUJBAUSCUAUBVHVFUP
    VHVBLBGBRUCUDUESUFUQVFVGUQVFOVAVCABCUGUHUISUKULUMUN $.

  $( A cycle is a path starting and ending at its first vertex.  (Contributed
     by Alexander van der Vekens, 8-Nov-2017.)  (Revised by AV, 31-Jan-2021.)
     (Proof shortened by AV, 30-Oct-2021.) $)
  cyclispthon $p |- ( F ( Cycles ` G ) P
                      -> F ( ( P ` 0 ) ( PathsOn ` G ) ( P ` 0 ) ) P ) $=
    ( ccycls cfv wbr cc0 cpthson chash cpths cyclispth pthonpth syl wceq iscycl
    co wa simpr sylbi oveq2d breqd mpbird ) BACDEFZBAGAEZUDCHEZPZFBAUDBIEAEZUEP
    ZFZUCBACJEFZUIABCKABCLMUCUFUHBAUCUDUGUDUEUCUJUDUGNZQUKABCOUJUKRSTUAUB $.

  ${
    $d F k x $.  $d G k $.  $d I k x $.  $d P k $.  $d V k x $.
    lfgrn1cycl.v $e |- V = ( Vtx ` G ) $.
    lfgrn1cycl.i $e |- I = ( iEdg ` G ) $.
    $( In a loop-free graph there are no cycles with length 1 (consisting of
       one edge).  (Contributed by Alexander van der Vekens, 7-Nov-2017.)
       (Revised by AV, 2-Feb-2021.) $)
    lfgrn1cycl $p |- ( I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) }
                       -> ( F ( Cycles ` G ) P -> ( # ` F ) =/= 1 ) ) $=
      ( vk cfv wbr c1 wne cc0 wceq wa wi caddc co wcel ccycls cdm c2 cv cle cpw
      chash crab wf cpths cwlks cyclprop cycliswlk cfzo wral lfgrwlknloop eleq1
      cn 1nn mpbiri lbfzo0 sylibr fveq2 oveq1 0p1e1 syl6eq fveq2d neeq12d rspcv
      syl impcom wb neeq2d adantl mpbird ex necon2d com13 sylc com12 ) CBDUAJKZ
      EUBUCAUDUGJUEKAFUFUHEUIZCUGJZLMZWACBDUJJKZNBJZWCBJZOZPCBDUKJKZWBWDQZBCDUL
      BCDUMWHWIWJQWEWBWIWHWDWBWIWHWDQZWBWIPIUDZBJZWLLRSZBJZMZINWCUNSZUOZWKABICD
      EFHGUPWRWCLWFWGWRWCLOZWFWGMZWRWSPWTWFLBJZMZWSWRXBWSNWQTZWRXBQWSWCURTZXCWS
      XDLURTUSWCLURUQUTWCVAVBWPXBINWQWLNOZWMWFWOXAWLNBVCXEWNLBXEWNNLRSLWLNLRVDV
      EVFVGVHVIVJVKWSWTXBVLWRWSWGXAWFWCLBVCVMVNVOVPVQVJVPVRVNVSVT $.
  $}

  $( In a simple graph, any trail of length 2 is not a circuit.  (Contributed
     by AV, 5-Jun-2021.) $)
  usgr2trlncrct $p |- ( ( G e. USGraph /\ ( # ` F ) = 2 )
                      -> ( F ( Trails ` G ) P -> -. F ( Circuits ` G ) P ) ) $=
    ( cusgr wcel chash cfv c2 wa ctrls wbr ccrcts wn cc0 wne usgr2trlncl imp wi
    wceq crctprop fveq2 eqeq2d biimpcd simpl2im com12 ad2antlr necon3ad mpd ex
    ) CDEZBFGZHSZIZBACJGKZBACLGKZMZUMUNIZNAGZHAGZOZUPUMUNUTABCPQUQUOURUSULUOURU
    SSZRUJUNUOULVAUOUNURUKAGZSZULVARABCTULVCVAULVBUSURUKHAUAUBUCUDUEUFUGUHUI $.

  ${
    $d F x $.  $d G x $.
    $( In a multigraph graph (with no loops!) there are no cycles with length 1
       (consisting of one edge).  (Contributed by Alexander van der Vekens,
       7-Nov-2017.)  (Revised by AV, 2-Feb-2021.) $)
    umgrn1cycl $p |- ( ( G e. UMGraph /\ F ( Cycles ` G ) P )
                       -> ( # ` F ) =/= 1 ) $=
      ( vx cumgr wcel ccycls cfv wbr chash c1 wne ciedg cdm c2 cv cle cvtx eqid
      cpw crab wf wi cupgr umgrislfupgr simprbi lfgrn1cycl syl imp ) CEFZBACGHI
      ZBJHKLZUJCMHZNODPJHQIDCRHZTUAUMUBZUKULUCUJCUDFUODCUMUNUNSZUMSZUEUFDABCUMU
      NUPUQUGUHUI $.

    $d F k $.  $d G k $.  $d P k $.
    $( In a simple pseudograph there are no circuits with length 2 (consisting
       of two edges).  (Contributed by Alexander van der Vekens, 9-Nov-2017.)
       (Revised by AV, 3-Feb-2021.)  (Proof shortened by AV, 31-Oct-2021.) $)
    uspgrn2crct $p |- ( ( G e. USPGraph /\ F ( Circuits ` G ) P )
                        -> ( # ` F ) =/= 2 ) $=
      ( vk vx cfv wbr wcel c2 wne cc0 wceq wa wi co c1 cpr cfzo adantl adantr
      ccrcts cuspgr chash ctrls crctprop cwlks ccnv istrl cupgr uspgrupgr ciedg
      wfun cdm cword cfz cvtx wf cv caddc wral w3a upgriswlk preq2 prcom syl6eq
      eqid eqcoms eqeq2d anbi2d ad2antrr eqtr3 cle cpw csn cdif crab wf1 uspgrf
      wb c0 df-f1 simplbi2 wrdf syl11 imp cn 2nn lbfzo0 mpbir cn0 clt 1nn0 1lt2
      elfzo0 mpbir3an pm3.2i oveq2 eleq2d anbi12d f1cofveqaeq syl21anc eqneqall
      mpbiri 0ne1 syl6mpi adantll sylbid expimpd ex pm2.61ine fzo0to2pr raleqdv
      syl5 2wlklem syl6bb fveq2 neeq2d imbi12d mpbird com13 expd 3adant2 syl6bi
      2a1 impd com23 mpcom com12 sylbi necon2d impancom syl impcom ) BACUAFGZCU
      BHZBUCFZIJZYNBACUDFGZKAFZYPAFZLZMYOYQNABCUEYRYOUUAYQYRYOMYPIYSYTYRYOYPILZ
      YSYTJZNZYRBACUFFGZBUGULZMZYOUUDNZABCUHYOUUGUUDCUIHZYOUUGUUDNCUJUUIUUGYOUU
      DUUIUUEUUFUUHUUIUUEBCUKFZUMZUNHZKYPUOOCUPFZAUQZDURZBFUUJFUUOAFUUOPUSOAFQL
      ZDKYPROZUTZVAUUFUUHNZADBCUUJUUMUUMVFZUUJVFZVBUULUURUUSUUNUULUURMZUUFYOUUD
      UUBUUFYOMZUVBUUCUUBUVCUVBUUCNZUUBUVCMZUVDUULKBFUUJFZYSPAFZQZLZPBFUUJFZUVG
      IAFZQZLZMZMZYSUVKJZNZUVEUVQNYSUVKYSUVKLZUVEUVQUVRUVEMZUULUVNUVPUVSUULMZUV
      NUVIUVJUVHLZMZUVPUVRUVNUWBVSUVEUULUVRUVMUWAUVIUVRUVLUVHUVJUVLUVHLUVKYSUVK
      YSLUVLUVGYSQUVHUVKYSUVGVCUVGYSVDVEVGVHVIVJUWBUVFUVJLZUVTUVPUVFUVJUVHVKUVE
      UULUWCUVPNUVRUVEUULMZUWCKPLZKPJUVPUWDUUKEURUCFIVLGEUUMVMVTVNVOVPZUUJVQZUU
      QUUKBVQZKUUQHZPUUQHZMZUWCUWENUVEUWGUULUVCUWGUUBYOUWGUUFEUUJCUUMUUTUVAVRSS
      TUVEUULUWHUVCUULUWHNZUUBUUFUWLYOUUQUUKBUQZUUFUWHUULUWHUWMUUFUUQUUKBWAWBUU
      KBWCWDTSWEUUBUWKUVCUULUUBUWKKKIROZHZPUWNHZMUWOUWPUWOIWFHZWGIWHWIUWPPWJHUW
      QPIWKGWLWGWMPIWNWOWPUUBUWIUWOUWJUWPUUBUUQUWNKYPIKRWQZWRUUBUUQUWNPUWRWRWSX
      CVJUUQUUKUWFUUJBKPWTXAXDUVPKPXBXEXFXMXGXHXIUVPUVEUVOYDXJUUBUVDUVQVSUVCUUB
      UVBUVOUUCUVPUUBUURUVNUULUUBUURUUPDKPQZUTUVNUUBUUPDUUQUWSUUBUUQUWNUWSUWRXK
      VEXLADUUJBXNXOVIUUBYTUVKYSYPIAXPXQXRTXSXIXTYAYBYCYEYFYGYHYIWEYJYKYLYM $.

    $( In a simple graph there are no cycles with length 2 (consisting of two
       edges).  (Contributed by Alexander van der Vekens, 9-Nov-2017.)
       (Revised by AV, 4-Feb-2021.) $)
    usgrn2cycl $p |- ( ( G e. USGraph /\ F ( Cycles ` G ) P )
                        -> ( # ` F ) =/= 2 ) $=
      ( cusgr wcel cuspgr ccrcts cfv wbr chash wne ccycls usgruspgr uspgrn2crct
      c2 cycliscrct syl2an ) CDECFEBACGHIBJHOKBACLHICMABCPABCNQ $.
  $}

  $( Lemma for ~ crctcshwlkn0 .  (Contributed by AV, 13-Mar-2021.) $)
  crctcshwlkn0lem1 $p |- ( ( A e. RR /\ B e. NN )
                            -> ( ( A - B ) + 1 ) <_ A ) $=
    ( cr wcel cn wa cmin co caddc cle wceq recn adantr nncn adantl 1cnd w3a wbr
    c1 cc subsub eqcomd syl3anc cc0 nnm1ge0 wb nnre peano2rem syl bicomd sylan2
    subge02 mpbird eqbrtrd ) ACDZBEDZFZABGHSIHZABSGHZGHZAJUQATDZBTDZSTDZURUTKUO
    VAUPALMUPVBUOBNOUQPVAVBVCQUTURABSUAUBUCUQUTAJRZUDUSJRZUPVEUOBUEOUPUOUSCDZVD
    VEUFUPBCDVFBUGBUHUIUOVFFVEVDAUSULUJUKUMUN $.

  ${
    $d J x $.  $d N x $.  $d P x $.  $d S x $.  $d ph x $.
    crctcshwlkn0lem.s $e |- ( ph -> S e. ( 1 ..^ N ) ) $.
    crctcshwlkn0lem.q $e |- Q = ( x e. ( 0 ... N ) |-> if ( x <_ ( N - S ) ,
                           ( P ` ( x + S ) ) , ( P ` ( ( x + S ) - N ) ) ) ) $.
    $( Lemma for ~ crctcshwlkn0 .  (Contributed by AV, 12-Mar-2021.) $)
    crctcshwlkn0lem2 $p |- ( ( ph /\ J e. ( 0 ... ( N - S ) ) )
                              -> ( Q ` J ) = ( P ` ( J + S ) ) ) $=
      ( cc0 cmin co cfz wcel cfv cle wbr caddc cif wceq wa cvv cmpt breq1 oveq1
      cv a1i fveq2d oveq1d ifbieq12d adantl c1 cfzo wi fzo0ss1 sseli cuz wss cz
      cn0 elfzoel2 elfzonn0 eluzmn syl2anc fzss2 syl sseld 3syl imp fvex fvmptd
      ifex elfzle2 iftrued eqtrd ) AFJGEKLZMLZNZUAZFDOFVPPQZFERLZCOZWAGKLZCOZSZ
      WBVSBFBUFZVPPQZWFERLZCOZWHGKLZCOZSZWEJGMLZDUBDBWMWLUCTVSIUGWFFTZWLWETVSWN
      WGVTWIWKWBWDWFFVPPUDWNWHWACWFFERUEZUHWNWJWCCWNWHWAGKWOUIUHUJUKAVRFWMNZAEU
      LGUMLZNEJGUMLZNZVRWPUNHWQWREGUOUPWSVQWMFWSGVPUQONZVQWMURWSGUSNEUTNWTEJGVA
      EGVBGEVCVDVPJGVEVFVGVHVIWEUBNVSVTWBWDWACVJWCCVJVLUGVKVSVTWBWDVRVTAFJVPVMU
      KVNVO $.

    $( Lemma for ~ crctcshwlkn0 .  (Contributed by AV, 12-Mar-2021.) $)
    crctcshwlkn0lem3 $p |- ( ( ph /\ J e. ( ( ( N - S ) + 1 ) ... N ) )
                        -> ( Q ` J ) = ( P ` ( ( J + S ) - N ) ) ) $=
      ( co c1 wcel wa cfv cle wbr cc0 cz cr wi cmin caddc cfz cif cvv cmpt wceq
      a1i breq1 oveq1 fveq2d oveq1d ifbieq12d adantl cuz cfzo elfzoel2 elfzoelz
      cv wss 0zd zsubcld peano2zd cn clt elfzo1 nnre posdif 0red resubcl ancoms
      ltle syl2anc lep1d 1red readdcld letr syl3anc mpan2d sylbid syl2an 3impia
      w3a syld sylbi eluz2 syl3anbrc syl fzss1 sselda fvex ifex fvmptd wn elfz2
      zre anim12i simprr simpl resubcld ltp1d ltletr mpand ltnled sylibd expcom
      3adant1 com12 com13 adantr impcom syl5bi imp iffalsed eqtrd ) AFGEUAJZKUB
      JZGUCJZLZMZFDNFXPOPZFEUBJZCNZYBGUAJZCNZUDZYEXTBFBUSZXPOPZYGEUBJZCNZYIGUAJ
      ZCNZUDZYFQGUCJZDUEDBYNYMUFUGXTIUHYGFUGZYMYFUGXTYOYHYAYJYLYCYEYGFXPOUIYOYI
      YBCYGFEUBUJZUKYOYKYDCYOYIYBGUAYPULUKUMUNAXRYNFAXQQUONLZXRYNUTAEKGUPJLZYQH
      YRQRLXQRLZQXQOPZYQYRVAYRXPYRGEEKGUQEKGURZVBVCYREVDLZGVDLZEGVEPZWCYTGEVFUU
      BUUCUUDYTUUBESLZGSLZUUDYTTUUCEVGGVGUUEUUFMZUUDQXPVEPZYTEGVHUUGUUHQXPOPZYT
      UUGQSLZXPSLZUUHUUITUUGVIZUUFUUEUUKGEVJVKZQXPVLVMUUGUUIXPXQOPZYTUUGXPUUMVN
      UUGUUJUUKXQSLZUUIUUNMYTTUULUUMUUGXPKUUMUUGVOVPQXPXQVQVRVSWDVTWAWBWEQXQWFW
      GWHXQQGWIWHWJYFUELXTYAYCYEYBCWKYDCWKWLUHWMXTYAYCYEAXSYAWNZAYRXSUUPTHXSYSG
      RLZFRLZWCZXQFOPZFGOPZMZMZYRUUPFXQGWOUVCYRUUPUVBUUSYRUUPTZUUTUUSUVDTUVAYRU
      USUUTUUPYRERLZUUSUUTUUPTZTUUAUUSUVEUVFUUQUURUVEUVFTZYSUURUUQUVGUVEUURUUQM
      ZUVFUVEUUEFSLZUUFMZUVFUVHEWPUURUVIUUQUUFFWPGWPWQUUEUVJMZUUTXPFVEPZUUPUVKX
      PXQVEPZUUTUVLUVKXPUVKGEUUEUVIUUFWRUUEUVJWSWTZXAUVKUUKUUOUVIUVMUUTMUVLTUVN
      UVKXPKUVNUVKVOVPUVJUVIUUEUVIUUFWSUNZXPXQFXBVRXCUVKXPFUVNUVOXDXEWAXFVKXGXH
      WHXIXJXKXHXLWHXMXNXO $.

    $d F i $.  $d I i $.  $d N i $.  $d P i $.  $d S i $.  $d ph i j $.
    $d ph j x $.
    crctcshwlkn0lem.h $e |- H = ( F cyclShift S ) $.
    crctcshwlkn0lem.n $e |- N = ( # ` F ) $.
    crctcshwlkn0lem.f $e |- ( ph -> F e. Word A ) $.
    crctcshwlkn0lem.p $e |- ( ph -> A. i e. ( 0 ..^ N )
            if- ( ( P ` i ) = ( P ` ( i + 1 ) ) ,
                  ( I ` ( F ` i ) ) = { ( P ` i ) } ,
                  { ( P ` i ) , ( P ` ( i + 1 ) ) } C_ ( I ` ( F ` i ) ) ) ) $.
    $( Lemma for ~ crctcshwlkn0 .  (Contributed by AV, 12-Mar-2021.) $)
    crctcshwlkn0lem4 $p |- ( ph -> A. j e. ( 0 ..^ ( N - S ) )
            if- ( ( Q ` j ) = ( Q ` ( j + 1 ) ) ,
                  ( I ` ( H ` j ) ) = { ( Q ` j ) } ,
                  { ( Q ` j ) , ( Q ` ( j + 1 ) ) } C_ ( I ` ( H ` j ) ) ) ) $=
      ( cfv wcel cv c1 caddc co wceq csn cpr wss wif cmin cfzo wa wral elfzoelz
      cc0 wi cc zcnd adantl adantr 1cnd add32d cn0 cn clt elfzo1 nnnn0 elfzonn0
      wbr w3a nn0addcl ex syl syl5com 3ad2ant1 sylbi imp fzo0ss1 elfzo0 simp2bi
      sseli cr wb nn0re nnre anim12i 3anass sylibr ltaddsub bicomd biimpd com23
      3adant3 impcom syl3anbrc fveq2 oveq1 fveq2d simpr sylan9eqr eqeq12d sneqd
      a1d 3imp preq12d sseq12d ifpbi123d rspcdv mpdan mpid cfz crctcshwlkn0lem2
      sylan elfzofz sylan2 fzofzp1 ccsh fveq1i chash cmo cz cuz cle nnz zsubcld
      cword nn0ge0d subge02 syl2anr mpbid 3jca eluz2 fzoss2 3syl oveq2i syl3anc
      3ad2ant2 syl2anc mpbird syl5eq sselda syl6eleq cshwidxmod nnm1nn0 zltlem1
      eqcomi nn0zd sylbid impancom 3adant2 sylanb elfz2nn0 zaddcl zmodid2 eqtrd
      simp1 simp2 simp3 ralrimiva ) AHUAZESZUUTUBUCUDZESZUEZUUTJSZKSZUVAUFZUEZU
      VAUVCUGZUVFUHZUIZHUOLFUJUDZUKUDZAUUTUVMTZULZUVKUUTFUCUDZDSZUVBFUCUDZDSZUE
      ZUVPISZKSZUVQUFZUEZUVQUVSUGZUWBUHZUIZAUVNUWGAUVNGUAZDSZUWHUBUCUDZDSZUEZUW
      HISZKSZUWIUFZUEZUWIUWKUGZUWNUHZUIZGUOLUKUDZUMZUWGRAUVNUXAUWGUPZAFUBLUKUDZ
      TZUVNUXBMUXDUVNULZUVPUBUCUDZUVRUEZUXBUXEUUTFUBUVNUUTUQTUXDUVNUUTUUTUOUVLU
      NZURUSUXDFUQTUVNUXDFFUBLUNZURUTUXEVAVBUXEUXGULZUWSUWGGUVPUWTUXEUVPUWTTZUX
      GUXEUVPVCTZLVDTZUVPLVEVIZUXKUXDUVNUXLUXDFVDTZUXMFLVEVIZVJZUVNUXLUPZLFVFZU
      XOUXMUXRUXPUXOFVCTZUVNUXLFVGZUVNUUTVCTZUXTUXLUPUUTUVLVHUYBUXTUXLUUTFVKZVL
      VMVNVOZVPVQUXDUXMUVNUXDFUWTTZUXMUXCUWTFLVRWAUYEUXTUXMUXPFLVSVTVMUTZUVNUXD
      UXNUVNUYBUVLVDTZUUTUVLVEVIZVJZUXDUXNUPZUUTUVLVSZUYBUYGUYHUYJUYBUYHUYJUPUY
      GUYBUXDUYHUXNUYBUXDUYHUXNUPUYBUXDULZUYHUXNUYLUUTWBTZFWBTZLWBTZVJZUYHUXNWC
      ZUYLUYMUYNUYOULZULZUYPUYBUYMUXDUYRUUTWDZUXDUXQUYRUXSUXOUXMUYRUXPUXOUYNUXM
      UYOFWEZLWEZWFWMZVPWFUYMUYNUYOWGZWHUYPUXNUYHUUTFLWIWJZVMWKVLWLXCXDVPWNUVPL
      VSWOUTUXJUWHUVPUEZULZUWLUWPUWRUVTUWDUWFVUGUWIUVQUWKUVSVUFUWIUVQUEUXJUWHUV
      PDWPZUSZVUFUXJUWKUXFDSUVSVUFUWJUXFDUWHUVPUBUCWQWRUXJUXFUVRDUXEUXGWSWRWTZX
      AVUFUWPUWDWCUXJVUFUWNUWBUWOUWCVUFUWMUWAKUWHUVPIWPWRZVUFUWIUVQVUHXBXAUSVUG
      UWQUWEUWNUWBVUGUWIUVQUWKUVSVUIVUJXEVUFUWNUWBUEUXJVUKUSXFXGXHXIXMVLXJVQUVO
      UVAUVQUEZUVCUVSUEZUVFUWBUEZUVKUWGWCUVNAUUTUOUVLXKUDZTVULUUTUOUVLXNABDEFUU
      TLMNXLXOUVNAUVBVUOTVUMUOUVLUUTXPABDEFUVBLMNXLXOUVOUVEUWAKUVOUVEUUTIFXQUDZ
      SZUWAUUTJVUPOXRUVOVUQUVPIXSSZXTUDZISZUWAUVOICYFTZFYATZUUTUOVURUKUDZTVUQVU
      TUEAVVAUVNQUTAVVBUVNAUXDVVBMUXIVMUTUVOUUTUWTVVCAUVMUWTUUTAUXDLUVLYBSTZUVM
      UWTUHMUXDUVLYATZLYATZUVLLYCVIZVJZVVDUXDUXQVVHUXSUXOUXMVVHUXPUXOUXMULZVVEV
      VFVVGVVILFUXMVVFUXOLYDZUSZUXOVVBUXMFYDUTYEVVKVVIUOFYCVIZVVGUXOVVLUXMUXOFU
      YAYGUTUXMUYOUYNVVLVVGWCUXOVUBVUALFYHYIYJYKWMVPUVLLYLWHUVLUOLYMYNUUALVURUO
      UKPYOUUBUUTFCIUUCYPUVOVUSUVPIUVOVUSUVPLXTUDZUVPVURLUVPXTLVURPUUFYOAUXDUVN
      VVMUVPUEZMUXEVVNUVPUOLUBUJUDZXKUDTZUXEUXLVVOVCTZUVPVVOYCVIZVJZVVPUXDUXQUV
      NVVSUXSUXQUVNULUXLVVQVVRUXQUVNUXLUYDVQUXQVVQUVNUXMUXOVVQUXPLUUDYQUTUVNUXQ
      VVRUVNUYIUXQVVRUPZUYKUYBUYHVVTUYGUYBUXQUYHVVRUYBUXQULZUYHUXNVVRVWAUYPUYQV
      WAUYSUYPUYBUYMUXQUYRUYTVUCWFVUDWHVUEVMVWAUXNVVRVWAUVPYATZVVFUXNVVRWCVWAUV
      PUXQUYBUXTUXLUXOUXMUXTUXPUYAVOUYCXOUUGUXQVVFUYBUXMUXOVVFUXPVVJYQUSUVPLUUE
      YRWKUUHUUIUUJVPWNYKUUKUVPVVOUULWHUXEVWBUXMVVNVVPWCUVNUUTYATVVBVWBUXDUXHUX
      IUUTFUUMYIUYFUVPLUUNYRYSXMYTWRUUOYTWRVULVUMVUNVJZUVDUVHUVJUVTUWDUWFVWCUVA
      UVQUVCUVSVULVUMVUNUUPZVULVUMVUNUUQZXAVWCUVFUWBUVGUWCVULVUMVUNUURZVWCUVAUV
      QVWDXBXAVWCUVIUWEUVFUWBVWCUVAUVQUVCUVSVWDVWEXEVWFXFXGYPYSUUS $.

    $( Lemma for ~ crctcshwlkn0 .  (Contributed by AV, 12-Mar-2021.) $)
    crctcshwlkn0lem5 $p |- ( ph -> A. j e. ( ( ( N - S ) + 1 ) ..^ N )
            if- ( ( Q ` j ) = ( Q ` ( j + 1 ) ) ,
                  ( I ` ( H ` j ) ) = { ( Q ` j ) } ,
                  { ( Q ` j ) , ( Q ` ( j + 1 ) ) } C_ ( I ` ( H ` j ) ) ) ) $=
      ( cfv wcel cv c1 caddc co wceq csn cpr wss wif cmin cfzo wa wral elfzoelz
      cc0 wi cc zcnd adantl 1cnd adantr elfzoel2 2addsubd eqcomd cn0 cn clt wbr
      w3a elfzo1 cuz cz cle nnz 3ad2ant2 3ad2ant1 zaddcld elfzo2 eluz2 zre nnre
      cr anim12i simplr simpll resubcld lep1d 1red readdcld simpr syl3anc mpand
      letr lesubaddd sylibd ex syl 3adant3 syl5com com23 imp sylbi com12 syl5bi
      3adant1 syl3anbrc uznn0sub simpl2 ax-1 imdistanri lt2add syl21anc sylibrd
      expcomd 3impia com13 3adant2 impcom 3jca sylanb elfzo0 sylibr fveq2 oveq1
      ltsubaddd fveq2d sylan9eqr eqeq12d sneqd preq12d sseq12d ifpbi123d rspcdv
      wb crctcshwlkn0lem3 sylan2 cmo nnnn0 oveq2i syl5eq mpdan mpid cfz elfzofz
      sylan fzofzp1 ccsh fveq1i chash cword ltle nn0sub mpbid nn0addcld elnn0uz
      1nn0 a1i sylib fzoss1 3syl sselda syl6eleq cshwidxmod eqcomi crp eluzelre
      c2 cmul nnrp rpred simpr3 simpl3 lt2addmuld jca jca31 2submod eqtrd simp1
      simp2 simp3 mpbird ralrimiva ) AHUAZESZUWCUBUCUDZESZUEZUWCJSZKSZUWDUFZUEZ
      UWDUWFUGZUWIUHZUIZHLFUJUDZUBUCUDZLUKUDZAUWCUWQTZULZUWNUWCFUCUDZLUJUDZDSZU
      WEFUCUDLUJUDZDSZUEZUXAISZKSZUXBUFZUEZUXBUXDUGZUXGUHZUIZAUWRUXLAUWRGUAZDSZ
      UXMUBUCUDZDSZUEZUXMISZKSZUXNUFZUEZUXNUXPUGZUXSUHZUIZGUOLUKUDZUMZUXLRAUWRU
      YFUXLUPZAFUBLUKUDTZUWRUYGMUYHUWRULZUXAUBUCUDZUXCUEZUYGUYIUXCUYJUYIUWCUBFL
      UWRUWCUQTUYHUWRUWCUWCUWPLUNZURUSUYIUTUYHFUQTUWRUYHFFUBLUNZURVAUYHLUQTUWRU
      YHLFUBLVBURVAVCVDUYIUYKULZUYDUXLGUXAUYEUYIUXAUYETZUYKUYIUXAVETZLVFTZUXALV
      GVHZVIZUYOUYHFVFTZUYQFLVGVHZVIZUWRUYSLFVJZVUBUWRULZUYPUYQUYRVUDUWTLVKSTZU
      YPVUDLVLTZUWTVLTLUWTVMVHZVUEVUBVUFUWRUYQUYTVUFVUALVNVOVAVUDUWCFUWRUWCVLTZ
      VUBUYLUSVUBFVLTZUWRUYTUYQVUIVUAFVNVPVAVQVUBUWRVUGUWRUWCUWPVKSTZVUFUWCLVGV
      HZVIZVUBVUGUWCUWPLVRZVULVUBVUGVUJVUFVUBVUGUPZVUKVUJUWPVLTZVUHUWPUWCVMVHZV
      IZVUNUWPUWCVSZVUHVUPVUNVUOVUHVUPVUNVUHVUBVUPVUGVUHUWCWBTZVUBVUPVUGUPZUWCV
      TZUYTUYQVUSVUTUPZVUAUYTUYQULZFWBTZLWBTZULZVVBUYTVVDUYQVVEFWAZLWAWCZVVFVUS
      VUTVVFVUSULZVUPUWOUWCVMVHZVUGVVIUWOUWPVMVHZVUPVVJVVIUWOVVILFVVDVVEVUSWDZV
      VDVVEVUSWEZWFZWGVVIUWOWBTUWPWBTVUSVVKVUPULVVJUPVVNVVIUWOUBVVNVVIWHWIVVFVU
      SWJZUWOUWPUWCWMWKWLVVILFUWCVVLVVMVVOWNWOWPWQWRWSWTXAXEXBVPZXCXDXALUWTVSXF
      LUWTXGWQUYTUYQVUAUWRXHUWRVUBUYRUWRVULVUBUYRUPZVUMVUJVUKVVQVUFVUJVUKVVQVUJ
      VUQVUKVVQUPZVURVUHVUOVVRVUPVUBVUKVUHUYRUYTUYQVUAVUKVUHUYRUPZUPZVVCVVFVUAV
      VTUPVVHVVFVUKVUAVVSVVFVUHVUKVUAULZUYRVVFVUHVWAUYRUPVVFVUHULZVWAUWTLLUCUDV
      GVHZUYRVWBVUSVVDVVEVVEULZVWAVWCUPVUHVUSVVFVVAUSZVVDVVEVUHWEZVVFVWDVUHVVEV
      VDVVEVVEVVDXIXJVAUWCFLLXKXLVWBUWTLLVWBUWCFVWEVWFWIVVDVVEVUHWDZVWGYEXMWPWT
      XNWQXOXPVOXBXAXQXBXRXSXTUXALYAYBVAUYNUXMUXAUEZULZUXQUYAUYCUXEUXIUXKVWIUXN
      UXBUXPUXDVWHUXNUXBUEUYNUXMUXADYCZUSZVWHUYNUXPUYJDSUXDVWHUXOUYJDUXMUXAUBUC
      YDYFUYNUYJUXCDUYIUYKWJYFYGZYHVWHUYAUXIYNUYNVWHUXSUXGUXTUXHVWHUXRUXFKUXMUX
      AIYCYFVWHUXNUXBVWJYIYHUSVWIUYBUXJUXSUXGVWIUXNUXBUXPUXDVWKVWLYJVWIUXRUXFKV
      WIUXMUXAIUYNVWHWJYFYFYKYLYMUUAUUEWPUUBXAUWSUWDUXBUEZUWFUXDUEZUWIUXGUEZUWN
      UXLYNUWRAUWCUWPLUUCUDZTVWMUWCUWPLUUDABDEFUWCLMNYOYPUWRAUWEVWPTVWNUWPLUWCU
      UFABDEFUWELMNYOYPUWSUWHUXFKUWSUWHUWCIFUUGUDZSZUXFUWCJVWQOUUHUWSVWRUWTIUUI
      SZYQUDZISZUXFUWSICUUJTZVUIUWCUOVWSUKUDZTVWRVXAUEAVXBUWRQVAAVUIUWRAUYHVUIM
      UYMWQVAUWSUWCUYEVXCAUWQUYEUWCAUYHUWPUOVKSTZUWQUYEUHMUYHUWPVETVXDUYHUWOUBU
      YHVUBUWOVETZVUCVUBFLVMVHZVXEUYTUYQVUAVXFVVCVVFVUAVXFUPVVHFLUUKWQXOVUBFVET
      ZLVETZULZVXFVXEYNUYTUYQVXIVUAUYTVXGUYQVXHFYRLYRWCWRFLUULWQUUMXBUBVETUYHUU
      PUUQUUNUWPUUOUURUWPUOLUUSUUTUVALVWSUOUKPYSUVBUWCFCIUVCWKUWSVWTUXAIUWSVWTU
      WTLYQUDZUXAVWSLUWTYQLVWSPUVDYSUWSUWTWBTZLUVETZULVUGUWTUVGLUVHUDVGVHZULZUL
      ZVXJUXAUEAUWRVXOAUYHUWRVXOUPZMUYHVUBVXPVUCUWRVULVUBVXOVUMVUBVULVXOVUBVULU
      LZVXKVXLVXNVXQUWCFVULVUSVUBVUJVUFVUSVUKUWPUWCUVFVPUSZVUBVVDVULUYTUYQVVDVU
      AVVGVPVAZWIVUBVXLVULUYQUYTVXLVUALUVIVOVAZVXQVUGVXMVULVUBVUGVVPXRVXQUWCFLV
      XRVXSVXQLVXTUVJVUBVUJVUFVUKUVKUYTUYQVUAVULUVLUVMUVNUVOWPXDXBWQXAUWTLUVPWQ
      YTYFUVQYTYFVWMVWNVWOVIZUWGUWKUWMUXEUXIUXKVYAUWDUXBUWFUXDVWMVWNVWOUVRZVWMV
      WNVWOUVSZYHVYAUWIUXGUWJUXHVWMVWNVWOUVTZVYAUWDUXBVYBYIYHVYAUWLUXJUWIUXGVYA
      UWDUXBUWFUXDVYBVYCYJVYDYKYLWKUWAUWB $.

    crctcshwlkn0lem.e $e |- ( ph -> ( P ` N ) = ( P ` 0 ) ) $.
    $( Lemma for ~ crctcshwlkn0 .  (Contributed by AV, 12-Mar-2021.) $)
    crctcshwlkn0lem6 $p |- ( ( ph /\ J = ( N - S ) ) ->
            if- ( ( Q ` J ) = ( Q ` ( J + 1 ) ) ,
                  ( I ` ( H ` J ) ) = { ( Q ` J ) } ,
                  { ( Q ` J ) , ( Q ` ( J + 1 ) ) } C_ ( I ` ( H ` J ) ) ) ) $=
      ( wceq cmin co wa cfv c1 caddc csn cpr wss wif chash cmo cv cfzo wb oveq1
      cc0 0p1e1 syl6eq wkslem2 mpdan cn wcel clt wbr w3a elfzo1 simp2 sylbi syl
      lbfzo0 sylibr rspcdva eqeq1 eqeq2d preq1 sseq1d ifpbi123d mpbird cc npcan
      sneq nncn syl2anr simpr eqcomi a1i oveq2d crp nnrp modid0 eqtrd sylan9eqr
      adantl simpl 3jca 3adant3 simp1 fveq2d eqeq1d eqeq12d preq1d sseq12d 3syl
      sneqd cfz cn0 nnsub biimp3a nnnn0d nn0fz0 sylib crctcshwlkn0lem2 elfzoel2
      cuz cz cle elfzoelz zsubcld peano2zd anim1i ancoms crctcshwlkn0lem1 eluz2
      nnre eluzfz1 crctcshwlkn0lem3 subcl ax-1cn pncan2 eqcomd sylancl peano2cn
      cr subsub3d eqtr2d syl2an ccsh adantr syl3anc fveq1i cword elfzofz oveq2i
      ubmelfzo syl6eleqr cshwidxmod syl5eq simp3 preq12d wkslem1 ) AKLFUAUBZTZU
      CKEUDZKUEUFUBEUDZTKIUDJUDZUUNUGTUUNUUOUHUUPUIUJZUULEUDZUULUEUFUBZEUDZTZUU
      LIUDZJUDZUURUGZTZUURUUTUHZUVCUIZUJZAUVHUUMAUVHUULFUFUBZDUDZUEDUDZTZUVIHUK
      UDZULUBZHUDZJUDZUVJUGZTZUVJUVKUHZUVPUIZUJZAUWALDUDZUVKTZUQHUDZJUDZUWBUGZT
      ZUWBUVKUHZUWEUIZUJZAUWJUQDUDZUVKTZUWEUWKUGZTZUWKUVKUHZUWEUIZUJZAGUMZDUDZU
      WRUEUFUBZDUDZTUWRHUDJUDZUWSUGTUWSUXAUHUXBUIUJZUWQGUQLUNUBZUQUWRUQTZUWTUET
      UXCUWQUOUXEUWTUQUEUFUBUEUWRUQUEUFUPURUSUWRUQUEDHJUTVARALVBVCZUQUXDVCAFUEL
      UNUBVCZUXFMUXGFVBVCZUXFFLVDVEZVFZUXFLFVGZUXHUXFUXIVHVIVJLVKVLVMAUWBUWKTZU
      WJUWQUOSUXLUWCUWGUWIUWLUWNUWPUWBUWKUVKVNUXLUWFUWMUWEUWBUWKWBVOUXLUWHUWOUW
      EUWBUWKUVKVPVQVRVJVSAUXGUVILTZUVNUQTZUXHUXFUCZVFZUWAUWJUOMUXGUXJUXPUXKUXH
      UXFUXPUXIUXOUXMUXPUXFLVTVCZFVTVCZUXMUXHLWCZFWCZLFWAWDUXOUXMUCUXMUXNUXOUXO
      UXMWEUXMUXOUVNLUVMULUBZUQUVILUVMULUPUXOUYALLULUBZUQUXOUVMLLULUVMLTUXOLUVM
      PWFZWGWHUXFUYBUQTZUXHUXFLWIVCUYDLWJLWKVJWNWLWMUXOUXMWOWPVAWQVIUXPUVLUVRUV
      TUWCUWGUWIUXPUVJUWBUVKUXPUVILDUXMUXNUXOWRWSZWTUXPUVPUWEUVQUWFUXPUVOUWDJUX
      PUVNUQHUXMUXNUXOVHWSWSZUXPUVJUWBUYEXEXAUXPUVSUWHUVPUWEUXPUVJUWBUVKUYEXBUY
      FXCVRXDVSAUURUVJTZUUTUVKTZUVBUVOTZUVHUWAUOAUULUQUULXFUBVCZUYGAUULXGVCZUYJ
      AUXGUYKMUXGUXJUYKUXKUXJUULUXHUXFUXIUULVBVCFLXHXIXJVIVJUULXKXLABDEFUULLMNX
      MVAAUUTUUSFUFUBLUAUBZDUDZUVKAUUSUUSLXFUBVCZUUTUYMTALUUSXOUDVCZUYNAUUSXPVC
      ZLXPVCZUUSLXQVEZVFZUYOAUXGUYSMUXGUYPUYQUYRUXGUULUXGLFFUELXNZFUELXRZXSXTUY
      TUXGUXJUYRUXKUXHUXFUYRUXIUXOLYNVCZUXHUCZUYRUXFUXHVUCUXFVUBUXHLYEYAYBLFYCV
      JWQVIWPVJUUSLYDVLUUSLYFVJABDEFUUSLMNYGVAAUYLUEDAUXGUYLUETZMUXGUXJVUDUXKUX
      HUXFVUDUXIUXHUXRUXQVUDUXFUXTUXSUXRUXQUCZUEUUSUULUAUBZUYLVUEUULVTVCZUEVTVC
      ZUEVUFTUXQUXRVUGLFYHYBZYIVUGVUHUCVUFUEUULUEYJYKYLVUEUUSLFVUEVUGUUSVTVCVUI
      UULYMVJUXRUXQWEUXRUXQWOYOYPYQWQVIVJWSWLAUVBUULHFYRUBZUDZUVOUULIVUJOUUAAUX
      GVUKUVOTZMAUXGUCZHCUUBVCZFXPVCZUULUQUVMUNUBZVCVULAVUNUXGQYSUXGVUOAVUAWNVU
      MUULUXDVUPUXGUULUXDVCZAUXGFUELXFUBVCVUQFUELUUCFLUUEVJWNUVMLUQUNUYCUUDUUFU
      ULFCHUUGYTVAUUHUYGUYHUYIVFZUVAUVEUVGUVLUVRUVTVURUURUVJUUTUVKUYGUYHUYIWRZU
      YGUYHUYIVHZXAVURUVCUVPUVDUVQVURUVBUVOJUYGUYHUYIUUIWSZVURUURUVJVUSXEXAVURU
      VFUVSUVCUVPVURUURUVJUUTUVKVUSVUTUUJVVAXCVRYTVSYSUUMUUQUVHUOAKUULEIJUUKWNV
      S $.

    $d I j $.  $d H j $.  $d N j $.  $d Q j $.  $d S j $.
    $( Lemma for ~ crctcshwlkn0 .  (Contributed by AV, 12-Mar-2021.) $)
    crctcshwlkn0lem7 $p |- ( ph -> A. j e. ( 0 ..^ N )
            if- ( ( Q ` j ) = ( Q ` ( j + 1 ) ) ,
                  ( I ` ( H ` j ) ) = { ( Q ` j ) } ,
                  { ( Q ` j ) , ( Q ` ( j + 1 ) ) } C_ ( I ` ( H ` j ) ) ) ) $=
      ( wcel cv cfv c1 caddc co wceq csn cpr wss wif cfzo wral crctcshwlkn0lem4
      cc0 cmin eqidd crctcshwlkn0lem6 mpdan ovex wkslem1 sylibr ralunb sylanbrc
      cun ralsn cn clt wbr w3a elfzo1 cuz cn0 cz cle nnz zsubcl syl2anr 3adant3
      cr wi nnre wa posdif 0re resubcl ancoms ltle sylancr sylbid syl2an 3impia
      elnn0z elnn0uz sylib fzosplitsn syl sylbi raleqdv mpbird crctcshwlkn0lem5
      cfz nnsub biimp3a nnnn0 peano2nn0 3syl 3ad2ant2 crctcshwlkn0lem1 elfz2nn0
      anim1i syl3anbrc fzosplit ) AHUAZEUBZXMUCUDUEEUBZUFXMJUBKUBZXNUGUFXNXOUHX
      PUIUJZHUNLUKUEZULXQHUNLFUOUEZUCUDUEZUKUEZXTLUKUEZVDZULZAXQHYAULZXQHYBULYD
      AYEXQHUNXSUKUEZXSUGZVDZULZAXQHYFULXQHYGULZYIABCDEFGHIJKLMNOPQRUMAXSEUBZXT
      EUBZUFXSJUBKUBZYKUGUFYKYLUHYMUIUJZYJAXSXSUFYNAXSUPABCDEFGIJKXSLMNOPQRSUQU
      RXQYNHXSLFUOUSXMXSEJKUTVEVAXQHYFYGVBVCAXQHYAYHAFUCLUKUETZYAYHUFZMYOFVFTZL
      VFTZFLVGVHZVIZYPLFVJZYTXSUNVKUBTZYPYTXSVLTZUUBYTXSVMTZUNXSVNVHZUUCYQYRUUD
      YSYRLVMTFVMTUUDYQLVOFVOLFVPVQVRYQYRYSUUEYQFVSTZLVSTZYSUUEVTYRFWALWAZUUFUU
      GWBZYSUNXSVGVHZUUEFLWCUUIUNVSTXSVSTZUUJUUEVTWDUUGUUFUUKLFWEWFUNXSWGWHWIWJ
      WKXSWLVCXSWMWNUNXSWOWPWQWPWRWSABCDEFGHIJKLMNOPQRWTXQHYAYBVBVCAXQHXRYCAYOX
      TUNLXAUETZXRYCUFMYOYTUULUUAYTXTVLTZLVLTZXTLVNVHZUULYTXSVFTZUUCUUMYQYRYSUU
      PFLXBXCXSXDXSXEXFYRYQUUNYSLXDXGYQYRUUOYSYQYRWBUUGYQWBZUUOYRYQUUQYRUUGYQUU
      HXJWFLFXHWPVRXTLXIXKWQUNLXTXLXFWRWS $.
  $}

  ${
    crctcsh.v $e |- V = ( Vtx ` G ) $.
    crctcsh.i $e |- I = ( iEdg ` G ) $.
    crctcsh.d $e |- ( ph -> F ( Circuits ` G ) P ) $.
    crctcsh.n $e |- N = ( # ` F ) $.
    $( Lemma for ~ crctcsh .  (Contributed by AV, 10-Mar-2021.) $)
    crctcshlem1 $p |- ( ph -> N e. NN0 ) $=
      ( ccrcts cfv wbr cwlks cn0 wcel crctiswlk chash wlkcl syl5eqel 3syl ) ACB
      DLMNCBDOMNZFPQJBCDRUCFCSMPKBCDTUAUB $.

    crctcsh.s $e |- ( ph -> S e. ( 0 ..^ N ) ) $.
    crctcsh.h $e |- H = ( F cyclShift S ) $.
    $( Lemma for ~ crctcsh .  (Contributed by AV, 10-Mar-2021.) $)
    crctcshlem2 $p |- ( ph -> ( # ` H ) = N ) $=
      ( co chash cfv wcel wbr ccsh cdm cword cz wceq ccrcts crctiswlk wlkf 3syl
      cwlks cc0 cfzo elfzoelz syl cshwlen syl2anc fveq2i 3eqtr4g ) ADCUAPZQRZDQ
      RZFQRHADGUBZUCSZCUDSZUTVAUEADBEUFRTDBEUJRTVCLBDEUGBDEGKUHUIACUKHULPSVDNCU
      KHUMUNCVBDUOUPFUSQOUQMUR $.

    $d N x $.
    crctcsh.q $e |- Q = ( x e. ( 0 ... N ) |-> if ( x <_ ( N - S ) ,
                           ( P ` ( x + S ) ) , ( P ` ( ( x + S ) - N ) ) ) ) $.
    $( Lemma for ~ crctcsh .  (Contributed by AV, 10-Mar-2021.) $)
    crctcshlem3 $p |- ( ph -> ( G e. _V /\ H e. _V /\ Q e. _V ) ) $=
      ( cvv wcel ccrcts cfv ctrls crctistrl cwlks trliswlk wlkv simp1 3syl ccsh
      wbr w3a co ovex eqeltri a1i cc0 cfz cv cmin cle caddc cif cmpt mptex 3jca
      ) AGSTZHSTZDSTZAFCGUAUBUKFCGUCUBUKZVGNCFGUDVJFCGUEUBUKVGFSTZCSTZULVGCFGUF
      CFGUGVGVKVLUHUIUIVHAHFEUJUMSQFEUJUNUOUPVIADBUQJURUMZBUSZJEUTUMVAUKVNEVBUM
      ZCUBVOJUTUMCUBVCZVDSRBVMVPUQJURUNVEUOUPVF $.

    $d P x $.  $d S x $.  $d ph x $.
    $( Lemma for ~ crctcsh .  (Contributed by AV, 10-Mar-2021.) $)
    crctcshlem4 $p |- ( ( ph /\ S = 0 ) -> ( H = F /\ Q = P ) ) $=
      ( cc0 co wceq wa ccsh oveq2 cdm cword wcel ccrcts cfv wbr cwlks crctiswlk
      wlkf 3syl cshw0 syl sylan9eqr syl5eq cfz cv cmin cle cif cmpt crctcshlem1
      caddc wb nn0cnd subid1d breq2d adantr adantl elfzelz zcnd sylan9eq fveq2d
      addid1d oveq1d ifbieq12d mpteq2dva elfzle2 iftrued wf wlkp wfn ffn eqcomi
      chash oveq2i fneq2i sylib dffn5 eqcomd mpdan eqtrd jca ) AESUAZUBZHFUADCU
      AWRHFEUCTZFQWQAWSFSUCTZFESFUCUDAFIUEZUFUGZWTFUAAFCGUHUIUJZFCGUKUIUJZXBNCF
      GULZCFGIMUMUNXAFUOUPUQURWRDBSJUSTZBUTZJEVATZVBUJZXGEVFTZCUIZXJJVATZCUIZVC
      ZVDZCRWRXOBXFXGJVBUJZXGCUIZXGJVATZCUIZVCZVDZCWRBXFXNXTWRXGXFUGZUBZXIXPXKX
      MXQXSWRXIXPVGYBWRXHJXGVBWQAXHJSVATJESJVAUDAJAJACFGIJKLMNOVEVHVIUQVJVKYCXJ
      XGCWRYBXJXGSVFTZXGWQXJYDUAAESXGVFUDVLYBXGYBXGXGSJVMVNVQVOZVPYCXLXRCYCXJXG
      JVAYEVRVPVSVTAYACUAWQAYABXFXQVDZCABXFXTXQAYBUBXPXQXSYBXPAXGSJWAVLWBVTASFW
      HUIZUSTZKCWCZYFCUAAXCXDYINXECFGKLWDUNAYIUBZCYFYJCXFWEZCYFUAYIYKAYICYHWEYK
      YHKCWFYHXFCYGJSUSJYGOWGWIWJWKVLBXFCWLWKWMWNWOVKWOURWP $.

    $d F i j k x $.  $d G i j $.  $d H j $.  $d I i j k x $.  $d N i j k $.
    $d P i j k $.  $d Q j $.  $d S i j k $.  $d V i j k x $.  $d ph i j k $.
    $( Cyclically shifting the indices of a circuit ` <. F , P >. ` results in
       a walk ` <. H , Q >. ` .  (Contributed by AV, 10-Mar-2021.) $)
    crctcshwlkn0 $p |- ( ( ph /\ S =/= 0 ) -> H ( Walks ` G ) Q ) $=
      ( wa wcel vj vi vk cc0 wne cwlks cfv wbr cdm cword chash co wf cv c1 wceq
      cfz caddc csn cpr wss wif cfzo wral w3a ccsh ccrcts crctiswlk wlkf cshwcl
      3syl syl syl5eqel adantr cmin cle cif wi wlkp simpll cn0 elfznn0 elfzonn0
      nn0addcld elfz3nn0 syl5eqelr ad2antlr cr wb elfzelz zred elfzoelz elfzel2
      adantl leaddsub syl3anc biimpar syl6breq sylanl1 elfz2nn0 sylibr ffvelrnd
      3jca adantll elfzoel2 zaddcl adantrr simprr zsubcld clt zsubcl ancoms zre
      wn cz ltnle syl2anr ltsubadd syl2an23an posdifd 0red ltle syl2anc sylbird
      sylbid imp exp31 syl11 imp31 nn0re 3ad2ant1 3impia ex mpbird mpcom oveq2d
      jca biimpi ad2antrl cvv elnn0z elfzo0 anim12ci nnre 3ad2ant2 simpr3 jca32
      cn syl2an syl2anb le2add lesubadd ifclda exp32 crctcshlem2 wlkprop eqcomi
      fmptd feq2d oveq2i raleqi simplbi2 simplll wkslem1 cbvralv ctrls crctprop
      fzo1fzo0n0 fveq2i eqeq2i eqcomd crctcshwlkn0lem7 syl5bi com23 crctcshlem3
      raleqdv iswlk ) AEUDUEZSZHDGUFUGZUHZHIUIZUJZTZUDHUKUGZUQULZKDUMZUAUNZDUGZ
      UWHUOURULDUGZUPUWHHUGIUGZUWIUSUPUWIUWJUTUWKVAVBZUAUDUWEVCULZVDZVEZUVSUWDU
      WGUWNAUWDUVRAHFEVFULZUWCQAFUWCTZUWPUWCTAFCGVGUGUHZFCUVTUHZUWQNCFGVHZCFGIM
      VIVKEUWBFVJVLVMVNAUWGUVRAUWGUDJUQULZKDUMABUXABUNZJEVOULZVPUHZUXBEURULZCUG
      ZUXEJVOULZCUGZVQZKDAUXBUXATZUXIKTZUWSAUXJUXKVRZAUWRUWSNUWTVLUWSUDFUKUGZUQ
      ULZKCUMZAUXLVRCFGKLVSUXOAUXJUXKUXOAUXJSZSZUXDUXFUXHKUXQUXDSUXNKUXECUXOUXP
      UXDVTUXPUXDUXEUXNTZUXOUXPUXDSUXEWATZUXMWATZUXEUXMVPUHZVEZUXRAEUDJVCULZTZU
      XJUXDUYBPUYDUXJSZUXDSZUXSUXTUYAUYEUXSUXDUYEUXBEUXJUXBWATZUYDUXBJWBWNUYDEW
      ATZUXJEJWCVNWDVNUXJUXTUYDUXDUXJUXMJWAOUXBJWEWFZWGUYFUXEJUXMVPUYEUXEJVPUHZ
      UXDUYEUXBWHTZEWHTZJWHTZUYJUXDWIUXJUYKUYDUXJUXBUXBUDJWJZWKWNUYDUYLUXJUYDEE
      UDJWLZWKVNUXJUYMUYDUXJJUXBUDJWMWKWNUXBEJWOWPWQOWRXCWSUXEUXMWTXAXDXBUXQUXD
      XNZSUXNKUXGCUXOUXPUYPVTUXPUYPUXGUXNTZUXOUXPUYPSUXGWATZUXTUXGUXMVPUHZVEZUY
      QAUYDUXJUYPUYTPUYEUYPSZUYRUXTUYSVUAUXGXOTZUDUXGVPUHZSZUYRUYDUXJUYPVUDUYDE
      XOTZJXOTZUXJUYPVUDVRZVRUYOEUDJXEZUXBXOTZVUEVUFSZVUGUXJVUIVUJUYPVUDVUIVUJS
      ZUYPSVUBVUCVUKVUBUYPVUKUXEJVUIVUEUXEXOTVUFUXBEXFXGZVUIVUEVUFXHXIZVNVUKUYP
      VUCVUKUYPUXCUXBXJUHZVUCVUJUXCWHTUYKVUNUYPWIVUIVUJUXCVUFVUEUXCXOTJEXKXLWKU
      XBXMZUXCUXBXPXQVUKVUNJUXEXJUHZVUCVUJUYMUYLVUIUYKVUNVUPWIVUFUYMVUEJXMWNZVU
      EUYLVUFEXMVNVUIUYKVUJVUOVNJEUXBXRXSVUKVUPUDUXGXJUHZVUCVUKJUXEVUJUYMVUIVUQ
      WNZVUKUXEVULWKZXTVUKUDWHTUXGWHTVURVUCVRVUKYAVUKUXGVUMWKUDUXGYBYCYEYEYDYFY
      QYGUYNYHYCYIUXGUUAXAUXJUXTUYDUYPUYIWGVUAUXGJUXMVPUYEUXGJVPUHZUYPUYEVVAUXE
      JJURULVPUHZUYEUYKUYLSZUYMUYMSZSZUXBJVPUHZEJVPUHZSZSZVVBUYDUYHJUUHTZEJXJUH
      ZVEZUYGJWATZVVFVEZVVIUXJEJUUBUXBJWTVVLVVNSZVVEVVFVVGVVOVVCVVDVVLUYLVVNUYK
      UYHVVJUYLVVKEYJZYKUYGVVMUYKVVFUXBYJYKUUCVVLVVDVVNVVJUYHVVDVVKVVJUYMUYMJUU
      DZVVQYQUUEVNYQVVLUYGVVMVVFUUFVVLVVGVVNUYHVVJVVKVVGUYHUYLUYMVVKVVGVRVVJVVP
      VVQEJYBUUIYLVNUUGUUJVVEVVHVVBUXBEJJUUKYFVLUYEUXEWHTZUYMUYMVEZVVAVVBWIUYDU
      XJVVSUYDVUEVUFUXJVVSVRUYOVUHVUIVUJVVSUXJVUIVUJVVSVUKVVRUYMUYMVUTVUSVUSXCY
      MUYNYHYCYFUXEJJUULVLYNVNOWRXCWSUXGUXMWTXAXDXBUUMUUNVLYOYFRUURAUWFUXAKDAUW
      EJUDUQACEFGHIJKLMNOPQUUOZYPUUSYNVNUWQUXOUBUNZCUGZVWAUOURULCUGZUPVWAFUGIUG
      ZVWBUSUPVWBVWCUTVWDVAVBZUBUDUXMVCULZVDZVEZUVSUWNAVWHUVRAUWRUWSVWHNUWTCUBF
      GIKLMUUPVKVNUWQUXOVWGUVSUWNVRUWQUXOSZUVSVWGUWNVWIUVSVWGUWNVRVWGVWEUBUYCVD
      ZVWIUVSSZUWNVWEUBVWFUYCUXMJUDVCJUXMOUUQZUUTUVAVWKVWJUWNVWKVWJSZUWNUWLUAUY
      CVDZVWMBUWBCDEUCUAFHIJUVSEUOJVCULTZVWIVWJAUVRVWOAUYDUVRVWOVRPVWOUYDUVREJU
      VHUVBVLYFWGRQOUWQUXOUVSVWJUVCVWJUCUNZCUGZVWPUOURULCUGZUPVWPFUGIUGZVWQUSUP
      VWQVWRUTVWSVAVBZUCUYCVDZVWKVWJVXAVWEVWTUBUCUYCVWAVWPCFIUVDUVEYRWNVWKJCUGZ
      UDCUGZUPZVWJAVXDVWIUVRAUWRFCGUVFUGUHZVXCUXMCUGZUPZSVXDNCFGUVGVXGVXDVXEVXG
      VXCVXBVXGVXCVXBUPVXFVXBVXCUXMJCVWLUVIUVJYRUVKWNVKYSVNUVLVWKUWNVWNWIZVWJAV
      XHVWIUVRAUWLUAUWMUYCAUWEJUDVCVVTYPUVPYSVNYNYMUVMYMUVNYLYOXCUVSGYTTHYTTDYT
      TVEZUWAUWOWIAVXIUVRABCDEFGHIJKLMNOPQRUVOVNDYTUAHGIKYTYTLMUVQVLYN $.

    $( Cyclically shifting the indices of a circuit ` <. F , P >. ` results in
       a walk ` <. H , Q >. ` .  (Contributed by AV, 10-Mar-2021.) $)
    crctcshwlk $p |- ( ph -> H ( Walks ` G ) Q ) $=
      ( cfv wbr cwlks cc0 wceq wa crctcshlem4 wi ccrcts crctistrl trliswlk 3syl
      ctrls breq12 syl5ibrcom adantr mpd crctcshwlkn0 pm2.61dane ) AHDGUASZTZEU
      BAEUBUCZUDHFUCDCUCUDZUSABCDEFGHIJKLMNOPQRUEAVAUSUFUTAUSVAFCURTZAFCGUGSTFC
      GUKSTVBNCFGUHCFGUIUJHFDCURULUMUNUOABCDEFGHIJKLMNOPQRUPUQ $.

    $( Cyclically shifting the indices of a circuit ` <. F , P >. ` results in
       a trail ` <. H , Q >. ` .  (Contributed by AV, 14-Mar-2021.)  (Proof
       shortened by AV, 30-Oct-2021.) $)
    crctcshtrl $p |- ( ph -> H ( Trails ` G ) Q ) $=
      ( cfv wbr cwlks ccnv wfun ctrls crctcshwlk cdm cword wcel cz ccsh co wceq
      w3a wa ccrcts crctistrl cc0 chash cfzo trlf1 wf df-f1 iswrdi anim1i sylbi
      wf1 syl 3syl elfzoelz df-3an sylanbrc cshinj mpisyl istrl ) AHDGUASTHUBUC
      ZHDGUDSZTABCDEFGHIJKLMNOPQRUEAFIUFZUGUHZFUBUCZEUIUHZUMZHFEUJUKULVOAVRVSUN
      ZVTWAAFCGUOSTFCVPTZWBNCFGUPWCUQFURSZUSUKZVQFVFZWBCFGIMUTWFWEVQFVAZVSUNWBW
      EVQFVBWGVRVSVQWDFVCVDVEVGVHAEUQJUSUKUHVTPEUQJVIVGVRVSVTVJVKQVQEFHVLVMDHGV
      NVK $.

    $d H x $.  $d N x $.  $d P x $.  $d S x $.  $d ph x $.
    $( Cyclically shifting the indices of a circuit ` <. F , P >. ` results in
       a circuit ` <. H , Q >. ` .  (Contributed by AV, 10-Mar-2021.)  (Proof
       shortened by AV, 31-Oct-2021.) $)
    crctcsh $p |- ( ph -> H ( Circuits ` G ) Q ) $=
      ( cc0 co ccrcts cfv wbr wceq crctcshlem4 breq12 syl5ibrcom adantr mpd wne
      wa wi ctrls chash crctcshtrl caddc cv cmin cle cif cfz cvv cmpt a1i breq1
      oveq1 fveq2d oveq1d ifbieq12d cfzo wcel elfzo0le syl crctcshlem1 elfzoelz
      nn0red cz zred subge0d mpbird iftrued sylan9eqr cn0 0elfz fvexd fvmptd wn
      elfzoel2 elfzonn0 cn simpr anim1i elnnne0 sylibr nngt0d cr nn0re anim12ci
      clt wb zre ltsubpos bicomd syl2anc imp crctcshlem2 breq1d notbid resubcld
      jca ltnle bitr4d iffalsed eqeltrd nn0cnd zcnd addsubd subidd eqtrd nn0fz0
      ex sylib eqtr4d iscrct sylanbrc pm2.61dane ) AHDGUAUBZUCZESAESUDZUKHFUDDC
      UDUKZYHABCDEFGHIJKLMNOPQRUEAYJYHULYIAYHYJFCYGUCZNHFDCYGUFUGUHUIAESUJZUKZH
      DGUMUBUCZSDUBZHUNUBZDUBZUDYHAYNYLABCDEFGHIJKLMNOPQRUOUHYMYOSEUPTZCUBZYQYM
      BSBUQZJEURTZUSUCZYTEUPTZCUBZUUCJURTZCUBZUTZYSSJVATZDVBDBUUHUUGVCUDYMRVDZY
      TSUDZYMUUGSUUAUSUCZYSYRJURTZCUBZUTYSUUJUUBUUKUUDUUFYSUUMYTSUUAUSVEUUJUUCY
      RCYTSEUPVFZVGUUJUUEUULCUUJUUCYRJURUUNVHVGVIYMUUKYSUUMAUUKYLAUUKEJUSUCZAES
      JVJTVKZUUOPEJVLVMAJEAJACFGIJKLMNOVNZVPZAEAUUPEVQVKPESJVOVMZVRZVSVTUHWAWBY
      MJWCVKZSUUHVKYMCFGIJKLMAYKYLNUHZOVNJWDVMYMYRCWEZWFYMBYPUUGYSUUHDVBUUIYMYT
      YPUDZUKUUGYPEUPTZJURTZCUBZYSUVDYMUUGYPUUAUSUCZUVECUBZUVGUTUVGUVDUUBUVHUUD
      UUFUVIUVGYTYPUUAUSVEUVDUUCUVECYTYPEUPVFZVGUVDUUEUVFCUVDUUCUVEJURUVJVHVGVI
      YMUVHUVIUVGYMUVHWGZUUAJWSUCZAYLUVLAUUPYLUVLULZPUUPJVQVKZEWCVKZUVMESJWHEJW
      IUVNUVOUKZYLUVLUVPYLUKZUVLSEWSUCZUVQEUVQUVOYLUKEWJVKUVPUVOYLUVNUVOWKWLEWM
      WNWOUVQEWPVKZJWPVKZUKZUVLUVRWTUVPUWAYLUVNUVTUVOUVSJXAEWQWRUHUWAUVRUVLEJXB
      XCVMVTYAXDVMXEYMUVKJUUAUSUCZWGZUVLYMUVHUWBYMYPJUUAUSYMCEFGHIJKLMUVBOAUUPY
      LPUHQXFXGXHYMUUAWPVKZUVTUKZUVLUWCWTAUWEYLAUWDUVTAJEUURUUTXIUURXJUHUUAJXKV
      MXLVTXMWBYMUVGYSUDZUVDAUWFYLAUVFYRCAUVFYPJURTZEUPTYRAYPEJAYPAYPJWCACEFGHI
      JKLMNOPQXFZUUQXNXOAEUUSXPAJUUQXOZXQAUWGSEUPAUWGJJURTSAYPJJURUWHVHAJUWIXRX
      SVHXSVGUHUHXSYMYPJUUHAYPJUDYLUWHUHAJUUHVKZYLAUVAUWJUUQJXTYBUHXNUVCWFYCDHG
      YDYEYF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Walks as words
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In general, a walk is an alternating sequence of vertices and edges, as
  defined in ~ df-wlks : p(0) e(f(1)) p(1) e(f(2)) ... p(n-1) e(f(n)) p(n).
  Often, it is sufficient to refer to a walk by the natural sequence of its
  vertices, i.e omitting its edges in its representation: p(0) p(1) ... p(n-1)
  p(n), see the corresponding remark in [Diestel] p. 6.  The concept of a
  ` Word `, see ~ df-word , is the appropriate way to define such a sequence
  (being finite and starting at index 0) of vertices.  Therefore, it is used in
  definitions ~ df-wwlks and ~ df-wwlksn , and the representation of a walk as
  sequence of its vertices is called "walk as word".

  Only for simple pseudographs, however, the edges can be uniquely
  reconstructed from such a representation.  In other cases, there could be
  more than one edge between two adjacent vertices in the walk (in a
  multigraph), or two adjacent vertices could be connected by two different
  hyperedges involving additional vertices (in a hypergraph).

$)

  $c WWalks $.
  $c WWalksN $.
  $c WWalksNOn $.
  $c WSPathsN $.
  $c WSPathsNOn $.

  $( Extend class notation with walks (in a graph) as word over the set of
     vertices. $)
  cwwlks $a class WWalks $.

  $( Extend class notation with walks (in a graph) of a fixed length as word
     over the set of vertices. $)
  cwwlksn $a class WWalksN $.

  $( Extend class notation with walks between two vertices (in a graph) of a
     fixed length as word over the set of vertices. $)
  cwwlksnon $a class WWalksNOn $.

  $( Extend class notation with simple paths (in a graph) of a fixed length as
     word over the set of vertices. $)
  cwwspthsn $a class WSPathsN $.

  $( Extend class notation with simple paths between two vertices (in a graph)
     of a fixed length as word over the set of vertices. $)
  cwwspthsnon $a class WSPathsNOn $.

  ${
    $d g i w $.
    $( Define the set of all walks (in an undirected graph) as words over the
       set of vertices.  Such a word corresponds to the sequence p(0) p(1) ...
       p(n-1) p(n) of the vertices in a walk p(0) e(f(1)) p(1) e(f(2)) ...
       p(n-1) e(f(n)) p(n) as defined in ~ df-wlks . ` w = (/) ` has to be
       excluded because a walk always consists of at least one vertex, see
       ~ wlkn0 .  (Contributed by Alexander van der Vekens, 15-Jul-2018.)
       (Revised by AV, 8-Apr-2021.) $)
    df-wwlks $a |- WWalks = ( g e. _V |-> { w e. Word ( Vtx ` g ) | ( w =/= (/)
                   /\ A. i e. ( 0 ..^ ( ( # ` w ) - 1 ) )
                      { ( w ` i ) , ( w ` ( i + 1 ) ) } e. ( Edg ` g ) ) } ) $.
  $}

  ${
    $d g n w $.
    $( Define the set of all walks (in an undirected graph) of a fixed length n
       as words over the set of vertices.  Such a word corresponds to the
       sequence p(0) p(1) ... p(n) of the vertices in a walk p(0) e(f(1)) p(1)
       e(f(2)) ... p(n-1) e(f(n)) p(n) as defined in ~ df-wlks .  (Contributed
       by Alexander van der Vekens, 15-Jul-2018.)  (Revised by AV,
       8-Apr-2021.) $)
    df-wwlksn $a |- WWalksN = ( n e. NN0 , g e. _V |->
                           { w e. ( WWalks ` g ) | ( # ` w ) = ( n + 1 ) } ) $.
  $}

  ${
    $d a b g n w $.
    $( Define the collection of walks of a fixed length with particular
       endpoints as word over the set of vertices.  (Contributed by Alexander
       van der Vekens, 15-Feb-2018.)  (Revised by AV, 11-May-2021.) $)
    df-wwlksnon $a |- WWalksNOn = ( n e. NN0 , g e. _V
                        |-> ( a e. ( Vtx ` g ) , b e. ( Vtx ` g )
                              |-> { w e. ( n WWalksN g ) |
                                    ( ( w ` 0 ) = a /\ ( w ` n ) = b ) } ) ) $.
  $}

  ${
    $d f g n w $.
    $( Define the collection of simple paths of a fixed length as word over the
       set of vertices.  (Contributed by Alexander van der Vekens, 1-Mar-2018.)
       (Revised by AV, 11-May-2021.) $)
    df-wspthsn $a |- WSPathsN = ( n e. NN0 , g e. _V
                    |-> { w e. ( n WWalksN g ) | E. f f ( SPaths ` g ) w } ) $.
  $}

  ${
    $d a b f g n w $.
    $( Define the collection of simple paths of a fixed length with particular
       endpoints as word over the set of vertices.  (Contributed by Alexander
       van der Vekens, 1-Mar-2018.)  (Revised by AV, 11-May-2021.) $)
    df-wspthsnon $a |- WSPathsNOn = ( n e. NN0 , g e. _V
                         |-> ( a e. ( Vtx ` g ) , b e. ( Vtx ` g )
                               |-> { w e. ( a ( n WWalksNOn g ) b ) |
                                     E. f f ( a ( SPathsOn ` g ) b ) w } ) ) $.
  $}

  ${
    $d E g $.  $d G g i w $.  $d V g w $.
    wwlks.v $e |- V = ( Vtx ` G ) $.
    wwlks.e $e |- E = ( Edg ` G ) $.
    $( The set of walks (in an undirected graph) as words over the set of
       vertices.  (Contributed by Alexander van der Vekens, 15-Jul-2018.)
       (Revised by AV, 8-Apr-2021.) $)
    wwlks $p |- ( WWalks ` G ) = { w e. Word V | ( w =/= (/)
                               /\ A. i e. ( 0 ..^ ( ( # ` w ) - 1 ) )
                                  { ( w ` i ) , ( w ` ( i + 1 ) ) } e. E ) } $=
      ( vg cvv wcel cwwlks cfv cv c0 co wral cword wceq cedg cvtx wne caddc cpr
      c1 cc0 chash cmin cfzo wa crab cmpt df-wwlks a1i fveq2 syl6eqr syl eleq2d
      ralbidv anbi2d rabeqbidv adantl id fvex eqeltri wrdexg rabexg 3syl fvmptd
      wrdeq fvprc syl5eq 0wrd0 syl6bb nne biimpri intnanrd syl6bi rabeq0 sylibr
      wn ralrimiv eqtr4d pm2.61i ) DIJZDKLZAMZNUAZBMZWFLWHUDUBOWFLUCZCJZBUEWFUF
      LUDUGOUHOZPZUIZAEQZUJZRWDHDWGWIHMZSLZJZBWKPZUIZAWPTLZQZUJZWOIKIKHIXCUKRWD
      AHBULUMWPDRZXCWORWDXDWTWMAXBWNXDXAERXBWNRXDXADTLZEWPDTUNFUOXAEVIUPXDWSWLW
      GXDWRWJBWKXDWQCWIXDWQDSLCWPDSUNGUOUQURUSUTVAWDVBWDEIJZWNIJWOIJXFWDEXEIFDT
      VCVDUMEIVEWMAWNIVFVGVHWDVTZWENWODKVJXGWMVTZAWNPWONRXGXHAWNXGWFWNJZWFNRZXH
      XGXIWFNQZJXJXGWNXKWFXGENRWNXKRXGEXENFDTVJVKENVIUPUQWFVLVMXJWGWLWGVTXJWFNV
      NVOVPVQWAWMAWNVRVSWBWC $.

    $d E w $.  $d V w $.  $d W i w $.
    $( A word over the set of vertices representing a walk (in an undirected
       graph).  (Contributed by Alexander van der Vekens, 15-Jul-2018.)
       (Revised by AV, 8-Apr-2021.) $)
    iswwlks $p |- ( W e. ( WWalks ` G ) <-> ( W =/= (/) /\ W e. Word V
                               /\ A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) )
                                  { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E ) ) $=
      ( vw cv c0 wne cfv c1 co wcel cc0 chash cmin cfzo wa caddc cpr wral cword
      crab cwwlks wceq neeq1 fveq2 oveq1d oveq2d fveq1 preq12d eleq1d raleqbidv
      w3a anbi12d elrab wwlks eleq2i 3anan12 3bitr4i ) EHIZJKZAIZVCLZVEMUANZVCL
      ZUBZBOZAPVCQLZMRNZSNZUCZTZHDUDZUEZOEVPOZEJKZVEELZVGELZUBZBOZAPEQLZMRNZSNZ
      UCZTZTECUFLZOVSVRWGUPVOWHHEVPVCEUGZVDVSVNWGVCEJUHWJVJWCAVMWFWJVLWEPSWJVKW
      DMRVCEQUIUJUKWJVIWBBWJVFVTVHWAVEVCEULVGVCEULUMUNUOUQURWIVQEHABCDFGUSUTVSV
      RWGVAVB $.
  $}

  ${
    $d G g n w $.  $d N g n w $.
    $( The set of walks (in an undirected graph) of a fixed length as words
       over the set of vertices.  (Contributed by Alexander van der Vekens,
       15-Jul-2018.)  (Revised by AV, 8-Apr-2021.) $)
    wwlksn $p |- ( N e. NN0 -> ( N WWalksN G ) = { w e. ( WWalks ` G ) |
                                                   ( # ` w ) = ( N + 1 ) } ) $=
      ( vn vg cvv wcel cn0 cwwlksn co cv cfv c1 caddc wceq cwwlks crab wa a1i
      c0 chash wi cmpt2 df-wwlksn fveq2 adantl wb oveq1 eqeq2d adantr rabeqbidv
      simpl simpr fvex rabex ovmpt2d expcom reldmmpt2 ovprc2 fvprc rabeqdv rab0
      wn syl6eq eqtr4d a1d pm2.61i ) BFGZCHGZCBIJZAKUALZCMNJZOZABPLZQZOZUBVIVHV
      PVIVHRZDECBHFVKDKZMNJZOZAEKZPLZQZVOIFIDEHFWCUCOVQAEDUDZSVRCOZWABOZRZWCVOO
      VQWGVTVMAWBVNWFWBVNOWEWABPUEUFWEVTVMUGWFWEVSVLVKVRCMNUHUIUJUKUFVIVHULVIVH
      UMVOFGVQVMAVNBPUNUOSUPUQVHVCZVPVIWHVJTVOCBIDEHFWCIWDURUSWHVOVMATQTWHVMAVN
      TBPUTVAVMAVBVDVEVFVG $.
  $}

  ${
    $d N w $.  $d G w $.  $d W w $.
    $( A word over the set of vertices representing a walk of a fixed length
       (in an undirected graph).  (Contributed by Alexander van der Vekens,
       15-Jul-2018.)  (Revised by AV, 8-Apr-2021.) $)
    iswwlksn $p |- ( N e. NN0 -> ( W e. ( N WWalksN G )
                    <-> ( W e. ( WWalks ` G ) /\ ( # ` W ) = ( N + 1 ) ) ) ) $=
      ( vw cn0 wcel cwwlksn co cv chash cfv c1 caddc wceq cwwlks crab wa wwlksn
      eleq2d fveq2 eqeq1d elrab syl6bb ) BEFZCBAGHZFCDIZJKZBLMHZNZDAOKZPZFCUJFC
      JKZUHNZQUDUEUKCDABRSUIUMDCUJUFCNUGULUHUFCJTUAUBUC $.
  $}

  ${
    $d G i $.  $d W i $.
    iswwlksnx.v $e |- V = ( Vtx ` G ) $.
    iswwlksnx.e $e |- E = ( Edg ` G ) $.
    $( Properties of a word to represent a walk of a fixed length, definition
       of ` WWalks ` expanded.  (Contributed by AV, 28-Apr-2021.) $)
    iswwlksnx $p |- ( N e. NN0 -> ( W e. ( N WWalksN G )
                  <-> ( W e. Word V /\ A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) )
                                       { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E
                        /\ ( # ` W ) = ( N + 1 ) ) ) ) $=
      ( wcel co cfv c1 caddc wa cc0 w3a wb c0 wne df-3an cn0 cwwlksn chash wceq
      cwwlks cword cv cpr cmin cfzo wral iswwlksn iswwlks nn0p1gt0 adantr neeq1
      gt0ne0d adantl mpbird hasheq0 necon3bid syl5ibcom bicomd anbi1d syl5bb ex
      pm4.71rd pm5.32rd syl6bbr bitrd ) DUAIZFDCUBJIFCUEKIZFUCKZDLMJZUDZNZFEUFZ
      IZAUGZFKVSLMJFKUHBIAOVMLUIJUJJUKZVOPZCDFULVKVPVRVTNZVONWAVKVOVLWBVKVOVLWB
      QVLFRSZVRVTPZVKVONZWBABCEFGHUMWDWCVRNZVTNWEWBWCVRVTTWEWFVRVTWEVRWFWEVRWCW
      EVMOSZVRWCWEWGVNOSZVKWHVOVKVNDUNUQUOVOWGWHQVKVMVNOUPURUSVRVMOFRFVQUTVAVBV
      GVCVDVEVEVFVHVRVTVOTVIVJ $.
  $}

  ${
    $d G i $.  $d W i $.
    wwlkbp.v $e |- V = ( Vtx ` G ) $.
    $( Basic properties of a walk (in an undirected graph) as word.
       (Contributed by Alexander van der Vekens, 15-Jul-2018.)  (Revised by AV,
       9-Apr-2021.) $)
    wwlkbp $p |- ( W e. ( WWalks ` G ) -> ( G e. _V /\ W e. Word V ) ) $=
      ( vi cwwlks cfv wcel cvv cword elfvex c0 wne cv c1 caddc co cpr cedg cc0
      chash cmin cfzo wral eqid iswwlks simp2bi jca ) CAFGHZAIHCBJHZCAFKUICLMUJ
      ENZCGUKOPQCGRASGZHETCUAGOUBQUCQUDEULABCDULUEUFUGUH $.

    $d g n w $.
    $( Basic properties of a walk of a fixed length (in an undirected graph) as
       word.  (Contributed by Alexander van der Vekens, 16-Jul-2018.)  (Revised
       by AV, 9-Apr-2021.)  (Proof shortened by AV, 20-May-2021.) $)
    wwlknbp $p |- ( W e. ( N WWalksN G )
                    -> ( G e. _V /\ N e. NN0 /\ W e. Word V ) ) $=
      ( vn vg vw cn0 wcel cvv wa cwwlksn co cv chash cfv c1 caddc wceq w3a crab
      cword cwwlks df-wwlksn elmpt2cl ancomd wb adantr wwlkbp simprd syl6bi imp
      simpl iswwlksn df-3an sylanbrc mpancom ) BIJZAKJZLZDBAMNJZUTUSDCUCJZUAZFG
      IKHOPQFORSNTHGOUDQUBBAMDHGFUEUFVAVBLZUTUSLVCVDVEUSUTVAVBUNUGVAVBVCVAVBDAU
      DQJZDPQBRSNTZLZVCUSVBVHUHUTABDUOUIVFVCVGVFUTVCACDEUJUKUIULUMUTUSVCUPUQUR
      $.

    $d N i $.
    wwlknp.e $e |- E = ( Edg ` G ) $.
    $( Properties of a set being a walk of length n (represented by a word).
       (Contributed by Alexander van der Vekens, 17-Jun-2018.)  (Revised by AV,
       9-Apr-2021.) $)
    wwlknp $p |- ( W e. ( N WWalksN G )
                   -> ( W e. Word V /\ ( # ` W ) = ( N + 1 )
           /\ A. i e. ( 0 ..^ N ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E ) ) $=
      ( wcel w3a co cfv c1 caddc wceq cc0 cfzo wi wa cmin cvv cn0 cword cwwlksn
      chash cv cpr wral wwlknbp cwwlks iswwlksn wne iswwlks simpl2 simprl oveq1
      c0 cc nn0cn pncan1 syl sylan9eq oveq2d raleqdv biimpcd 3ad2ant3 imp sylbi
      3jca ex expdimp com12 sylbid 3ad2ant2 mpcom ) CUAIZDUBIZFEUCIZJFDCUDKIZVR
      FUELZDMNKZOZAUFZFLWCMNKFLUGBIZAPDQKZUHZJZCDEFGUIVQVPVSWGRVRVQVSFCUJLIZWBS
      ZWGCDFUKWIVQWGWHWBVQWGWHFUQULZVRWDAPVTMTKZQKZUHZJZWBVQSZWGRABCEFGHUMWNWOW
      GWNWOSVRWBWFWJVRWMWOUNWNWBVQUOWNWOWFWMWJWOWFRVRWOWMWFWOWDAWLWEWOWKDPQWBVQ
      WKWAMTKZDVTWAMTUPVQDURIWPDODUSDUTVAVBVCVDVEVFVGVIVJVHVKVLVMVNVO $.
  $}

  ${
    $d G f g n w $.  $d N g n w $.
    $( The set of simple paths of a fixed length as word.  (Contributed by
       Alexander van der Vekens, 1-Mar-2018.)  (Revised by AV, 11-May-2021.) $)
    wspthsn $p |- ( N WSPathsN G ) = { w e. ( N WWalksN G ) |
                                       E. f f ( SPaths ` G ) w } $=
      ( vn vg cn0 wcel cvv wa cwwspthsn co cv cspths cfv wbr cwwlksn crab wceq
      c0 wex oveq12 fveq2 breqd exbidv adantl rabeqbidv df-wspthsn ovex ovmpt2a
      wb rabex wn mpt2ndm0 chash c1 cwwlks df-wwlksn rabeqdv rab0 syl6eq eqtr4d
      caddc pm2.61i ) DGHCIHJZDCKLZBMZAMZCNOZPZBUAZADCQLZRZSEFDCGIVGVHFMZNOZPZB
      UAZAEMZVNQLZRZVMKVRDSZVNCSZJVQVKAVSVLVRDVNCQUBWBVQVKUKWAWBVPVJBWBVOVIVGVH
      VNCNUCUDUEUFUGABFEUHZVKAVLDCQUIULUJVEUMZVFTVMEFVTKDCGIWCUNWDVMVKATRTWDVKA
      VLTEFVHUOOVRUPVCLSAVNUQORQDCGIAFEURUNUSVKAUTVAVBVD $.

    $d W f w $.
    $( An element of the set of simple paths of a fixed length as word.
       (Contributed by Alexander van der Vekens, 1-Mar-2018.)  (Revised by AV,
       11-May-2021.) $)
    iswspthn $p |- ( W e. ( N WSPathsN G ) <-> ( W e. ( N WWalksN G )
                                              /\ E. f f ( SPaths ` G ) W ) ) $=
      ( vw cv cspths cfv wbr wex cwwlksn co cwwspthsn wceq breq2 exbidv wspthsn
      elrab2 ) AFZEFZBGHZIZAJSDUAIZAJEDCBKLCBMLTDNUBUCATDSUAOPEABCQR $.

    $( Properties of a set being a simple path of a fixed length as word.
       (Contributed by AV, 18-May-2021.) $)
    wspthnp $p |- ( W e. ( N WSPathsN G ) -> ( ( N e. NN0 /\ G e. _V )
                      /\ W e. ( N WWalksN G ) /\ E. f f ( SPaths ` G ) W ) ) $=
      ( vn vg vw cn0 wcel cvv wa cwwspthsn co cwwlksn cv cspths cfv wbr wex w3a
      crab df-wspthsn elmpt2cl simpl wb iswspthn biimpa 3anass sylanbrc mpancom
      a1i ) CHIBJIKZDCBLMIZULDCBNMIZAOZDBPQRASZTZEFHJUOGOFOZPQRASGEOURNMUACBLDG
      AFEUBUCULUMKULUNUPKZUQULUMUDULUMUSUMUSUEULABCDUFUKUGULUNUPUHUIUJ $.
  $}

  ${
    $d G a b g n w $.  $d N a b g n w $.  $d U g n $.  $d V a b g n $.
    wwlksnon.v $e |- V = ( Vtx ` G ) $.
    $( The set of walks of a fixed length between two vertices as word.
       (Contributed by Alexander van der Vekens, 15-Feb-2018.)  (Revised by AV,
       11-May-2021.) $)
    wwlksnon $p |- ( ( N e. NN0 /\ G e. U )
                     -> ( N WWalksNOn G ) = ( a e. V , b e. V |->
                                  { w e. ( N WWalksN G ) |
                                    ( ( w ` 0 ) = a /\ ( w ` N ) = b ) } ) ) $=
      ( vn vg cn0 wcel wa cvv cv cvtx cfv wceq cwwlksn cmpt2 cc0 crab cwwlksnon
      co df-wwlksnon a1i fveq2 syl6eqr adantl oveq12 wb eqeq1d anbi2d rabeqbidv
      adantr mpt2eq123dv simpl elex fvex eqeltri mpt2ex ovmpt2d ) DKLZCBLZMZIJD
      CKNFGJOZPQZVGUAAOZQFORZIOZVHQZGOZRZMZAVJVFSUDZUBZTZFGEEVIDVHQZVLRZMZADCSU
      DZUBZTZUCNUCIJKNVQTRVEAJIFGUEUFVJDRZVFCRZMZVQWCRVEWFFGVGVGVPEEWBWEVGERWDW
      EVGCPQZEVFCPUGHUHUIZWHWFVNVTAVOWAVJDVFCSUJWDVNVTUKWEWDVMVSVIWDVKVRVLVJDVH
      UGULUMUOUNUPUIVCVDUQVDCNLVCCBURUIWCNLVEFGEEWBEWGNHCPUSUTZWIVAUFVB $.

    $d G a b f g n w $.  $d N f $.
    $( The set of simple paths of a fixed length between two vertices as word.
       (Contributed by Alexander van der Vekens, 1-Mar-2018.)  (Revised by AV,
       11-May-2021.) $)
    wspthsnon $p |- ( ( N e. NN0 /\ G e. U )
                      -> ( N WSPathsNOn G ) = ( a e. V , b e. V |->
                                   { w e. ( a ( N WWalksNOn G ) b ) |
                                     E. f f ( a ( SPathsOn ` G ) b ) w } ) ) $=
      ( vn vg cn0 wcel cvv cv cvtx cfv co wceq adantl wa cspthson wbr cwwlksnon
      wex crab cmpt2 cwwspthsnon df-wspthsnon a1i fveq2 syl6eqr oveq12 oveqd wb
      breqd exbidv rabeqbidv mpt2eq123dv simpl elex fvex eqeltri mpt2ex ovmpt2d
      ) ELMZDBMZUAZJKEDLNGHKOZPQZVJCOZAOZGOZHOZVIUBQZRZUCZCUEZAVMVNJOZVIUDRZRZU
      FZUGZGHFFVKVLVMVNDUBQZRZUCZCUEZAVMVNEDUDRZRZUFZUGZUHNUHJKLNWCUGSVHACKJGHU
      IUJVSESZVIDSZUAZWCWKSVHWNGHVJVJWBFFWJWMVJFSWLWMVJDPQZFVIDPUKIULTZWPWNVRWG
      AWAWIWNVTWHVMVNVSEVIDUDUMUNWNVQWFCWMVQWFUOWLWMVPWEVKVLWMVOWDVMVNVIDUBUKUN
      UPTUQURUSTVFVGUTVGDNMVFDBVATWKNMVHGHFFWJFWONIDPVBVCZWQVDUJVE $.
  $}

  ${
    $d A a b w $.  $d B a b w $.  $d G a b w $.  $d N a b w $.  $d V a b $.
    $d a b g n w $.
    iswwlksnon.v $e |- V = ( Vtx ` G ) $.
    $( The set of walks of a fixed length between two vertices as word.
       (Contributed by Alexander van der Vekens, 15-Feb-2018.)  (Revised by AV,
       12-May-2021.) $)
    iswwlksnon $p |- ( ( A e. V /\ B e. V ) -> ( A ( N WWalksNOn G ) B )
           = { w e. ( N WWalksN G ) | ( ( w ` 0 ) = A /\ ( w ` N ) = B ) } ) $=
      ( va vb vn vg wcel cvv wa co cv cfv wceq crab c0 cn0 cwwlksnon cwwlksn wi
      cc0 cmpt2 wwlksnon adantr eqeq2 bi2anan9 rabbidv adantl simprl ovex rabex
      simprr a1i ovmpt2d ex wn 0ov cvtx df-wwlksnon mpt2ndm0 oveqd chash cwwlks
      c1 caddc df-wwlksn rabeqdv rab0 syl6eq 3eqtr4a a1d pm2.61i ) EUALDMLNZBFL
      ZCFLZNZBCEDUBOZOZUEAPZQZBRZEWCQZCRZNZAEDUCOZSZRZUDVQVTWKVQVTNZHIBCFFWDHPZ
      RZWFIPZRZNZAWISZWJWAMVQWAHIFFWRUFRVTAMDEFHIGUGUHWMBRZWOCRZNZWRWJRWLXAWQWH
      AWIWSWNWEWTWPWGWMBWDUIWOCWFUIUJUKULVQVRVSUMVQVRVSUPWJMLWLWHAWIEDUCUNUOUQU
      RUSVQUTZWKVTXBBCTOTWBWJBCVAXBWATBCJKHIKPZVBQZXDWNJPZWCQWORNAXEXCUCOSUFUBE
      DUAMAKJHIVCVDVEXBWJWHATSTXBWHAWITJKWCVFQXEVHVIORAXCVGQSUCEDUAMAKJVJVDVKWH
      AVLVMVNVOVP $.

    $d A a b f w $.  $d B f $.  $d G f $.  $d N f $.  $d f g n $.
    $( The set of simple paths of a fixed length between two vertices as word.
       (Contributed by Alexander van der Vekens, 1-Mar-2018.)  (Revised by AV,
       12-May-2021.) $)
    iswspthsnon $p |- ( ( A e. V /\ B e. V ) -> ( A ( N WSPathsNOn G ) B )
                                   = { w e. ( A ( N WWalksNOn G ) B ) |
                                       E. f f ( A ( SPathsOn ` G ) B ) w } ) $=
      ( va vb vn vg wcel cvv wa co cv cfv wceq c0 cn0 cwwspthsnon wbr cwwlksnon
      cspthson wex crab wi cmpt2 wspthsnon adantr oveq12 breqd exbidv rabeqbidv
      adantl simprl simprr ovex rabex a1i ovmpt2d ex cvtx df-wspthsnon mpt2ndm0
      0ov oveqd cc0 cwwlksn df-wwlksnon syl6eq rabeqdv rab0 3eqtr4a a1d pm2.61i
      wn ) FUAMENMOZBGMZCGMZOZBCFEUBPZPZDQZAQZBCEUERZPZUCZDUFZABCFEUDPZPZUGZSZU
      HVSWBWNVSWBOZIJBCGGWEWFIQZJQZWGPZUCZDUFZAWPWQWKPZUGZWMWCNVSWCIJGGXBUISWBA
      NDEFGIJHUJUKWPBSWQCSOZXBWMSWOXCWTWJAXAWLWPBWQCWKULXCWSWIDXCWRWHWEWFWPBWQC
      WGULUMUNUOUPVSVTWAUQVSVTWAURWMNMWOWJAWLBCWKUSUTVAVBVCVSVRZWNWBXDBCTPZTWDW
      MBCVGZXDWCTBCKLIJLQZVDRZXHWEWFWPWQXGUERPUCDUFAWPWQKQZXGUDPPUGUIUBFEUANADL
      KIJVEVFVHXDWMWJATUGTXDWJAWLTXDWLXETXDWKTBCKLIJXHXHVIWFRWPSXIWFRWQSOAXIXGV
      JPUGUIUDFEUANALKIJVKVFVHXFVLVMWJAVNVLVOVPVQ $.
  $}

  ${
    $d A w $.  $d B w $.  $d G w $.  $d N w $.  $d W w $.
    wwlknon.v $e |- V = ( Vtx ` G ) $.
    $( An element of the set of walks of a fixed length between two vertices as
       word.  (Contributed by Alexander van der Vekens, 15-Feb-2018.)  (Revised
       by AV, 12-May-2021.) $)
    wwlknon $p |- ( ( A e. V /\ B e. V ) -> ( W e. ( A ( N WWalksNOn G ) B )
                           <-> ( W e. ( N WWalksN G ) /\ ( W ` 0 ) = A
                                                      /\ ( W ` N ) = B ) ) ) $=
      ( vw wcel wa cwwlksnon co cc0 cv cfv wceq cwwlksn crab fveq1 eqeq1d elrab
      w3a iswwlksnon eleq2d anbi12d 3anass bitr4i syl6bb ) AEIBEIJZFABDCKLLZIFM
      HNZOZAPZDUKOZBPZJZHDCQLZRZIZFUQIZMFOZAPZDFOZBPZUBZUIUJURFHABCDEGUCUDUSUTV
      BVDJZJVEUPVFHFUQUKFPZUMVBUOVDVGULVAAMUKFSTVGUNVCBDUKFSTUEUAUTVBVDUFUGUH
      $.

    $d A f w $.  $d B f $.  $d G f $.  $d N f $.  $d W f $.
    $( An element of the set of simple paths of a fixed length between two
       vertices as word.  (Contributed by Alexander van der Vekens,
       1-Mar-2018.)  (Revised by AV, 12-May-2021.) $)
    wspthnon $p |- ( ( A e. V /\ B e. V ) -> ( W e. ( A ( N WSPathsNOn G ) B )
                            <-> ( W e. ( A ( N WWalksNOn G ) B )
                                  /\ E. f f ( A ( SPathsOn ` G ) B ) W ) ) ) $=
      ( vw wcel wa cwwspthsnon co cv cspthson cfv wbr wex cwwlksnon crab eleq2d
      iswspthsnon wceq breq2 exbidv elrab syl6bb ) AFJBFJKZGABEDLMMZJGCNZINZABD
      OPMZQZCRZIABEDSMMZTZJGUOJUJGULQZCRZKUHUIUPGIABCDEFHUBUAUNURIGUOUKGUCUMUQC
      UKGUJULUDUEUFUG $.

    $d G a b f g n w $.  $d N a b g n $.  $d V a b $.
    $( Properties of a set being a simple path of a fixed length between two
       vertices as word.  (Contributed by AV, 14-May-2021.) $)
    wspthnonp $p |- ( W e. ( A ( N WSPathsNOn G ) B )
                      -> ( ( N e. NN0 /\ G e. _V ) /\ ( A e. V /\ B e. V )
                             /\ ( W e. ( A ( N WWalksNOn G ) B )
                                  /\ E. f f ( A ( SPathsOn ` G ) B ) W ) ) ) $=
      ( vg vn vb co wcel cn0 cvv wa cvtx cfv cv adantl vw cwwspthsnon cwwlksnon
      va cspthson wbr wex w3a wral wi fvex pm3.2i rgen2w crab df-wspthsnon wceq
      fveq2 el2mpt2cl simprl eleq2i anbi12i biimpri eqid wspthnon biimpd impcom
      jca ax-mp 3jca mpdan ) GABEDUBLLMZENMDOMPZADQRZMZBVMMZPZPZVLAFMZBFMZPZGAB
      EDUCLLMCSZGABDUERLUFCUGPZUHISZQRZOMZWEPZIOUIJNUIVKVQUJWFJINOWEWEWCQUKZWGU
      LUMJIKNOWDWDABOWAUASUDSZKSZWCUERLUFCUGUAWHWIJSZWCUCLLUNVMVMUBOGEDUDUACIJU
      DKUOWCDUPZWDVMUPZWLPWJEUPWKWLWLWCDQUQZWMVGTURVHVKVQPVLVTWBVKVLVPUSVQVTVKV
      PVTVLVTVPVRVNVSVOFVMAHUTFVMBHUTVAVBTTVQVKWBVPVKWBUJVLVPVKWBABCDEVMGVMVCVD
      VETVFVIVJ $.
  $}

  ${
    $d A f h $.  $d B f h $.  $d C f h $.  $d D f h $.  $d G f h $.
    $d N f h $.  $d P f h $.
    $( Two simple paths with identical sequences of vertices start and end at
       the same vertices.  (Contributed by AV, 14-May-2021.) $)
    wspthneq1eq2 $p |- ( ( P e. ( A ( N WSPathsNOn G ) B )
                        /\ P e. ( C ( N WSPathsNOn G ) D ) )
                         -> ( A = C /\ B = D ) ) $=
      ( vf vh co wcel wa cfv cv wbr wex w3a wceq wspthnonp syl2an cn0 cwwlksnon
      cwwspthsnon cvtx cspthson eqid simp3r cpthson cwlkson spthonpthon anim12i
      cvv ctrlson pthontrlon trlsonwlkon wlksoneq1eq2 3syl expcom exlimiv com12
      wi imp ) EABGFUCJZJKGUAKFULKLZAFUDMZKBVEKLZEABGFUBJZJKZHNZEABFUEMZJOZHPZL
      QZVDCVEKDVEKLZECDVGJKZINZECDVJJOZIPZLQZACRBDRLZECDVCJKABHFGVEEVEUFZSCDIFG
      VEEWASVMVLVRVTVSVDVFVHVLUGVDVNVOVRUGVLVRVTVKVRVTVAHVRVKVTVQVKVTVAIVKVQVTV
      KVQLVIEABFUHMZJOZVPECDWBJOZLVIEABFUIMZJOZVPECDWEJOZLZVTVKWCVQWDABEVIFUJCD
      EVPFUJUKWCVIEABFUMMZJOZVPECDWIJOZWHWDABEVIFUNCDEVPFUNWJWFWKWGABEVIFUOCDEV
      PFUOUKTABCDEVIFVPUPUQURUSUTUSVBTT $.
  $}

  ${
    $d G i w $.
    $( The set of all walks as words of length 0 is the set of all words of
       length 1 over the vertices.  (Contributed by Alexander van der Vekens,
       22-Jul-2018.)  (Revised by AV, 12-Apr-2021.) $)
    wwlksn0s $p |- ( 0 WWalksN G )
                   = { w e. Word ( Vtx ` G ) | ( # ` w ) = 1 } $=
      ( vi cc0 wcel co cv cfv c1 wceq crab caddc wa cmin cfzo wral eqid cvv clt
      c0 cn0 cwwlksn chash cvtx cword 0nn0 cwwlks wwlksn wb wne cpr w3a iswwlks
      cedg 0p1e1 eqeq2i anbi12i simp2 wbr breq2 mpbiri hashgt0n0 sylancr adantr
      vex 0lt1 simpr ral0 oveq1 1m1e0 syl6eq fzo0 raleqdv 3jca impbid2 pm5.32ri
      oveq2d ex bitri a1i rabbidva2 eqtrd ax-mp ) DUAEZDBUBFZAGZUCHZIJZABUDHZUE
      ZKZJUFWDWEWGDILFZJZABUGHZKWKABDUHWDWMWHAWNWJWFWNEZWMMZWFWJEZWHMZUIWDWPWFT
      UJZWQCGZWFHWTILFWFHUKBUNHZEZCDWGINFZOFZPZULZWHMWRWOXFWMWHCXABWIWFWIQXAQUM
      WLIWGUOUPUQWHXFWQWHXFWQWSWQXEURWHWQXFWHWQMWSWQXEWHWSWQWHWFREDWGSUSZWSAVEW
      HXGDISUSVFWGIDSUTVAWFRVBVCVDWHWQVGWHXEWQWHXEXBCTPXBCVHWHXBCXDTWHXDDDOFTWH
      XCDDOWHXCIINFDWGIINVIVJVKVQDVLVKVMVAVDVNVRVOVPVSVTWAWBWC $.
  $}

  ${
    $d G w $.  $d V w $.
    wwlkssswrd.v $e |- V = ( Vtx ` G ) $.
    $( Walks (represented by words) are words.  (Contributed by Alexander van
       der Vekens, 17-Jul-2018.)  (Revised by AV, 9-Apr-2021.) $)
    wwlkssswrd $p |- ( WWalks ` G ) C_ Word V $=
      ( vw cwwlks cfv cword cv wcel cvv wwlkbp simprd ssriv ) DAEFZBGZDHZNIAJIP
      OIABPCKLM $.

    $d G v $.  $d V v $.  $d W v $.  $d W w $.
    $( A walk of length 0 is represented by a singleton word.  (Contributed by
       Alexander van der Vekens, 20-Jul-2018.)  (Revised by AV, 9-Apr-2021.)
       (Proof shortened by AV, 21-May-2021.) $)
    wwlksn0 $p |- ( W e. ( 0 WWalksN G ) -> E. v e. V W = <" v "> ) $=
      ( vw cvtx cfv cword wcel chash c1 wceq wa cv cs1 wrex cc0 cwwlksn co crab
      wrdl1exs1 wwlksn0s eleq2i fveq2 eqeq1d elrab bitri rexeqi 3imtr4i ) DBGHZ
      IZJDKHZLMZNZDAOPMZAUKQDRBSTZJZUPACQUKDAUBURDFOZKHZLMZFULUAZJUOUQVBDFBUCUD
      VAUNFDULUSDMUTUMLUSDKUEUFUGUHUPACUKEUIUJ $.
  $}

  ${
    $d G i w $.  $d N i w $.
    $( In graphs without edges, there are no walks of length greater than 0.
       (Contributed by Alexander van der Vekens, 26-Jul-2018.)  (Revised by AV,
       7-May-2021.) $)
    0enwwlksnge1 $p |- ( ( ( Edg ` G ) = (/) /\ N e. NN )
                         -> ( N WWalksN G ) = (/) ) $=
      ( vw vi cfv c0 wceq cn wcel wa co cv c1 caddc syl adantl wral wi cc0 cmin
      cedg cwwlksn chash cwwlks crab cn0 nnnn0 wwlksn wn wne cvtx cword cpr w3a
      cfzo eqid iswwlks cc nncn pncan1 id eqeltrd wb oveq1 eleq1d adantr mpbird
      lbfzo0 sylibr fveq2 0p1e1 syl6eq fveq2d preq12d rspcdv eleq2 noel pm2.21i
      syl6bi syldc 3ad2ant3 com12 syl5bi expimpd pm2.61i ralrimiva rabeq0 eqtrd
      ax-1 ) AUAEZFGZBHIZJZBAUBKZCLZUCEZBMNKZGZCAUDEZUEZFWLWNWTGZWKWLBUFIXABUGC
      ABUHOPWMWRUIZCWSQWTFGWMXBCWSWRWMWOWSIZJZXBRWRWMXCXBXCWOFUJZWOAUKEZULIZDLZ
      WOEZXHMNKZWOEZUMZWJIZDSWPMTKZUOKZQZUNZWRWMJZXBDWJAXFWOXFUPWJUPUQXQXRXBXPX
      EXRXBRXGXRXPSWOEZMWOEZUMZWJIZXBXRXMYBDSXOXRXNHIZSXOIXRYCWQMTKZHIZWMYEWRWL
      YEWKWLYDBHWLBURIYDBGBUSBUTOWLVAVBPPWRYCYEVCWMWRXNYDHWPWQMTVDVEVFVGXNVHVIX
      HSGZXMYBVCXRYFXLYAWJYFXIXSXKXTXHSWOVJYFXJMWOYFXJSMNKMXHSMNVDVKVLVMVNVEPVO
      WMYBXBRZWRWKYGWLWKYBYAFIZXBWJFYAVPYHXBYAVQVRVSVFPVTWAWBWCWDXBXDWIWEWFWRCW
      SWGVIWH $.
  $}

  $( A walk of a fixed length as word is a walk (in an undirected graph) as
     word.  (Contributed by Alexander van der Vekens, 17-Jul-2018.)  (Revised
     by AV, 12-Apr-2021.) $)
  wwlkswwlksn $p |- ( W e. ( N WWalksN G ) -> W e. ( WWalks ` G ) ) $=
    ( cvv wcel cn0 cvtx cfv cword cwwlksn co cwwlks eqid wwlknbp chash c1 caddc
    w3a wceq wa wb iswwlksn 3ad2ant2 simpl syl6bi mpcom ) ADEZBFEZCAGHZIEZRZCBA
    JKEZCALHEZABUICUIMNUKULUMCOHBPQKSZTZUMUHUGULUOUAUJABCUBUCUMUNUDUEUF $.

  ${
    $d G w $.  $d N w $.
    $( The walks of a fixed length as words are walks (in an undirected graph)
       as words.  (Contributed by Alexander van der Vekens, 17-Jul-2018.)
       (Revised by AV, 12-Apr-2021.) $)
    wwlkssswwlksn $p |- ( N WWalksN G ) C_ ( WWalks ` G ) $=
      ( vw cwwlksn co cwwlks cfv cv wwlkswwlksn ssriv ) CBADEAFGABCHIJ $.
  $}

  ${
    $d G i $.  $d N i $.  $d W i $.
    $( Other basic properties of a set being a walk of length n (represented by
       a word).  (Contributed by Alexander van der Vekens, 3-Oct-2018.)
       (Revised by AV, 12-Apr-2021.) $)
    wwlknbp2 $p |- ( W e. ( N WWalksN G )
                    -> ( W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( N + 1 ) ) ) $=
      ( vi cwwlksn co wcel cvtx cfv cword chash c1 caddc wceq cpr cedg cc0 cfzo
      cv eqid wral w3a wa wwlknp 3simpa syl ) CBAEFGCAHIZJGZCKIBLMFNZDSZCIUJLMF
      CIOAPIZGDQBRFUAZUBUHUIUCDUKABUGCUGTUKTUDUHUIULUEUF $.
  $}

  ${
    $d F i $.  $d G i $.  $d P i $.
    $( The sequence of vertices in a walk is a walk as word in a pseudograph.
       (Contributed by Alexander van der Vekens, 20-Jul-2018.)  (Revised by AV,
       9-Apr-2021.) $)
    wlkiswwlks1 $p |- ( G e. UPGraph -> ( F ( Walks ` G ) P
                                            -> P e. ( WWalks ` G ) ) ) $=
      ( vi wcel cfv cword cc0 chash co c1 caddc wceq cfzo wral wi eqid wa cmin
      ex cupgr cwlks wbr c0 wne cwwlks wlkn0 ciedg cdm cfz cvtx wf cv upgriswlk
      cpr w3a cedg simpr ffz0iswrd 3ad2ant2 ad2antlr crn wfn cuhgr wfun uhgrfun
      upgruhgr biimpi 3syl wrdsymbcl ad4ant14 fnfvelrn syl2anc edgval syl6eleqr
      funfn eleq1 eqcoms syl5ibrcom ralimdva com23 3impia impcom lencl ffz0hash
      wb cn0 oveq1 cc nn0cn pncan1 syl sylan9eqr syld imp oveq2d raleqdv adantl
      3adant3 mpbird adantr iswwlks syl3anbrc sylbid mpdi ) CUAEZBACUBFUCZAUDUE
      ZACUFFEZABCUGXFXGBCUHFZUIZGEZHBIFZUJJCUKFZAULZDUMZBFZXJFZXPAFXPKLJAFUOZMZ
      DHXMNJZOZUPZXHXIPZADBCXJXNXNQZXJQZUNXFYCYDXFYCRZXHXIYGXHRXHAXNGEZXSCUQFZE
      ZDHAIFZKSJZNJZOZXIYGXHURYCYHXFXHXOXLYHYBXNXMAUSUTVAYGYNXHYGYNYJDYAOZYCXFY
      OXLXOYBXFYOPXLXORZXFYBYOYPXFYBYOPYPXFRZXTYJDYAYQXPYAEZRZYJXTXRYIEZYSXRXJV
      BZYIYSXJXKVCZXQXKEZXRUUAEXFUUBYPYRXFCVDEXJVEZUUBCVGXJCYFVFUUDUUBXJVPVHVIV
      AXLYRUUCXOXFXPXKBVJVKXKXQXJVLVMCVNVOYJYTWFXSXRXSXRYIVQVRVSVTTWAWBWCYCYNYO
      WFZXFXLXOUUEYBYPYJDYMYAYPYLXMHNXLXOYLXMMZXLXMWGEZXOUUFPXKBWDUUGXOYKXMKLJZ
      MZUUFUUGXOUUIXNAXMWETUUGUUIUUFUUIUUGYLUUHKSJZXMYKUUHKSWHUUGXMWIEUUJXMMXMW
      JXMWKWLWMTWNWLWOWPWQWSWRWTXADYICXNAYEYIQXBXCTTXDXE $.
  $}

  $( The sequence of vertices in a walk of length ` N ` is a walk as word of
     length ` N ` in a pseudograph.  (Contributed by Alexander van der Vekens,
     21-Jul-2018.)  (Revised by AV, 12-Apr-2021.) $)
  wlklnwwlkln1 $p |- ( G e. UPGraph
                        -> ( ( F ( Walks ` G ) P /\ ( # ` F ) = N )
                             -> P e. ( N WWalksN G ) ) ) $=
    ( cwlks cfv wbr chash wceq wa wcel co cn0 wi adantr c1 caddc com12 ad2antrl
    adantl cupgr wlkcl cwwlks wlkiswwlks1 imp wlklenvp1 oveq1 eqtrd wb iswwlksn
    cwwlksn eleq1 syl6bi impcom mpbir2and ex mpancom ) BACEFGZBHFZDIZJZCUAKZADC
    UKLKZUSMKZVAVBVCNURVDUTABCUBOVDVAJZVBVCVEVBJVCACUCFKZAHFZDPQLZIZVEVBVFURVBV
    FNVDUTVBURVFABCUDRSUEVEVIVBVEVGUSPQLZVHURVGVJIVDUTABCUFSVAVJVHIZVDUTVKURUSD
    PQUGTTUHOVEVCVFVIJUIZVBVAVDVLUTVDVLNURUTVDDMKVLUSDMULCDAUJUMTUNOUOUPUQR $.

  ${
    $d P x $.
    wlkiswwlks2lem.f $e |- F = ( x e. ( 0 ..^ ( ( # ` P ) - 1 ) ) |->
                            ( `' E ` { ( P ` x ) , ( P ` ( x + 1 ) ) } ) ) $.
    $( Lemma 1 for ~ wlkiswwlks2 .  (Contributed by Alexander van der Vekens,
       20-Jul-2018.) $)
    wlkiswwlks2lem1 $p |- ( ( P e. Word V /\ 1 <_ ( # ` P ) )
                           -> ( # ` F ) = ( ( # ` P ) - 1 ) ) $=
      ( cword wcel c1 chash cfv cle wbr wa cmin co cn0 cc0 cfzo wfn cn elnnnn0c
      wceq lencl biimpri sylan nnm1nn0 syl caddc cpr ccnv fvex fnmpti ffzo0hash
      cv sylancl ) BEGHZIBJKZLMZNZURIOPZQHZDRVASPZTDJKVAUCUTURUAHZVBUQURQHZUSVD
      EBUDVDVEUSNURUBUEUFURUGUHAVCAUOZBKVFIUIPBKUJZCUKZKDVGVHULFUMDVAUNUP $.

    $d E x $.  $d I x $.
    $( Lemma 2 for ~ wlkiswwlks2 .  (Contributed by Alexander van der Vekens,
       20-Jul-2018.) $)
    wlkiswwlks2lem2 $p |- ( ( ( # ` P ) e. NN0
                                   /\ I e. ( 0 ..^ ( ( # ` P ) - 1 ) ) )
               -> ( F ` I ) = ( `' E ` { ( P ` I ) , ( P ` ( I + 1 ) ) } ) ) $=
      ( chash cfv cn0 wcel cc0 c1 cmin co cfzo wa caddc cpr wceq fveq2d cv ccnv
      cvv cmpt a1i fveq2 oveq1 preq12d adantl simpr fvexd fvmptd ) BGHZIJZEKUML
      MNONZJZPZAEAUAZBHZURLQNZBHZRZCUBZHZEBHZELQNZBHZRZVCHZUODUCDAUOVDUDSUQFUEU
      RESZVDVISUQVJVBVHVCVJUSVEVAVGUREBUFVJUTVFBURELQUGTUHTUIUNUPUJUQVHVCUKUL
      $.

    $d V x $.
    $( Lemma 3 for ~ wlkiswwlks2 .  (Contributed by Alexander van der Vekens,
       20-Jul-2018.) $)
    wlkiswwlks2lem3 $p |- ( ( P e. Word V /\ 1 <_ ( # ` P ) )
                           -> P : ( 0 ... ( # ` F ) ) --> V ) $=
      ( cword wcel c1 chash cfv cle wbr wa cmin co wceq cc0 cfz wf wi cfzo wrdf
      wlkiswwlks2lem1 cn0 lencl cz nn0z fzoval syl oveq2 sylan9eq feq2d biimpcd
      eqcoms expd sylc adantr mpd ) BEGHZIBJKZLMZNDJKZVAIOPZQZRVCSPZEBTZABCDEFU
      DUTVEVGUAZVBUTRVAUBPZEBTZVAUEHZVHEBUCEBUFVJVKVEVGVKVENZVJVGVLVIVFEBVKVEVI
      RVDSPZVFVKVAUGHVIVMQVAUHRVAUIUJVMVFQVDVCVDVCRSUKUOULUMUNUPUQURUS $.

    $d F i $.  $d G i $.  $d P i $.  $d V i x $.
    wlkiswwlks2lem.e $e |- E = ( iEdg ` G ) $.
    $( Lemma 4 for ~ wlkiswwlks2 .  (Contributed by Alexander van der Vekens,
       20-Jul-2018.)  (Revised by AV, 10-Apr-2021.) $)
    wlkiswwlks2lem4 $p |- ( ( G e. USPGraph /\ P e. Word V /\ 1 <_ ( # ` P ) )
       -> ( A. i e. ( 0 ..^ ( ( # ` P ) - 1 ) )
            { ( P ` i ) , ( P ` ( i + 1 ) ) } e. ran E
               -> A. i e. ( 0 ..^ ( # ` F ) )
                   ( E ` ( F ` i ) ) = { ( P ` i ) , ( P ` ( i + 1 ) ) } ) ) $=
      ( chash cfv c1 co wceq wcel crn cc0 cfzo wral wi cuspgr cword cle wbr w3a
      cmin cv caddc cpr wlkiswwlks2lem1 3adant1 wa cn0 3ad2ant2 wlkiswwlks2lem2
      ccnv lencl sylan adantr fveq2d cdm wf1o uspgrf1oedg wb ciedg rneqi edgval
      cedg eqtr4i f1oeq3 ax-mp sylibr 3ad2ant1 f1ocnvfv2 eqtrd ralimdva raleqdv
      ex oveq2 imbi2d syl5ibr mpcom ) EJKZBJKZLUFMZNZFUAOZBGUBOZLWDUCUDZUEZCUGZ
      BKWKLUHMBKUIZDPZOZCQWERMZSZWKEKZDKZWLNZCQWCRMZSZTZWHWIWFWGABDEGHUJUKWJXBW
      FWPWSCWOSZTWJWNWSCWOWJWKWOOZULZWNWSXEWNULZWRWLDUPKZDKZWLXFWQXGDXEWQXGNZWN
      WJWDUMOZXDXIWHWGXJWIGBUQUNABDEWKHUOURUSUTXEDVAZWMDVBZWNXHWLNWJXLXDWGWHXLW
      IWGXKFVHKZDVBZXLDFIVCWMXMNXLXNVDWMFVEKZPXMDXOIVFFVGVIWMXMXKDVJVKVLVMUSXKW
      MWLDVNURVOVRVPWFXAXCWPWFWSCWTWOWCWEQRVSVQVTWAWB $.

    $d E i $.  $d G x $.
    $( Lemma 5 for ~ wlkiswwlks2 .  (Contributed by Alexander van der Vekens,
       21-Jul-2018.)  (Revised by AV, 10-Apr-2021.) $)
    wlkiswwlks2lem5 $p |- ( ( G e. USPGraph /\ P e. Word V /\ 1 <_ ( # ` P ) )
                           -> ( A. i e. ( 0 ..^ ( ( # ` P ) - 1 ) )
                                { ( P ` i ) , ( P ` ( i + 1 ) ) } e. ran E
                               -> F e. Word dom E ) ) $=
      ( wcel cword c1 cfv cv caddc co cpr crn wa wf1o cuspgr chash cle wbr cmin
      w3a cc0 cfzo wral wf ccnv cedg uspgrf1oedg wceq ciedg rneqi edgval eqtr4i
      cdm a1i f1oeq3d mpbird 3ad2ant1 ad2antrr simpr fveq2 oveq1 fveq2d preq12d
      wb eleq1d adantl rspcdv impancom imp f1ocnvdm syl2anc fmptd iswrdi syl ex
      ) FUAJZBGKJZLBUBMZUCUDZUFZCNZBMZWGLOPZBMZQZDRZJZCUGWDLUEPZUHPZUIZEDUSZKJZ
      WFWPSZWOWQEUJWRWSAWOANZBMZWTLOPZBMZQZDUKMZWQEWSWTWOJZSWQWLDTZXDWLJZXEWQJW
      FXGWPXFWBWCXGWEWBXGWQFULMZDTDFIUMWBWLXIWQDWLXIUNWBWLFUOMZRXIDXJIUPFUQURUT
      VAVBVCVDWSXFXHWFXFWPXHWFXFSZWMXHCWTWOWFXFVEWGWTUNZWMXHVJXKXLWKXDWLXLWHXAW
      JXCWGWTBVFXLWIXBBWGWTLOVGVHVIVKVLVMVNVOWQWLXDDVPVQHVRWQWNEVSVTWA $.

    $( Lemma 6 for ~ wlkiswwlks2 .  (Contributed by Alexander van der Vekens,
       21-Jul-2018.)  (Revised by AV, 10-Apr-2021.) $)
    wlkiswwlks2lem6 $p |- ( ( G e. USPGraph /\ P e. Word V /\ 1 <_ ( # ` P ) )
                           -> ( A. i e. ( 0 ..^ ( ( # ` P ) - 1 ) )
                                { ( P ` i ) , ( P ` ( i + 1 ) ) } e. ran E
         -> ( F e. Word dom E /\ P : ( 0 ... ( # ` F ) ) --> V
              /\ A. i e. ( 0 ..^ ( # ` F ) )
                 ( E ` ( F ` i ) ) = { ( P ` i ) , ( P ` ( i + 1 ) ) } ) ) ) $=
      ( wcel cword c1 chash cfv w3a co cc0 cfzo wral imp cuspgr cle wbr cpr crn
      cv caddc cmin cdm cfz wceq wlkiswwlks2lem5 wlkiswwlks2lem3 3adant1 adantr
      wf wa wlkiswwlks2lem4 3jca ex ) FUAJZBGKJZLBMNZUBUCZOZCUFZBNVFLUGPBNUDZDU
      EJCQVCLUHPRPSZEDUIKJZQEMNZUJPGBUPZVFENDNVGUKCQVJRPSZOVEVHUQVIVKVLVEVHVIAB
      CDEFGHIULTVEVKVHVBVDVKVAABDEGHUMUNUOVEVHVLABCDEFGHIURTUSUT $.
  $}

  ${
    $d G f i x $.  $d P f i x $.
    $( A walk as word corresponds to the sequence of vertices in a walk in a
       simple pseudograph.  (Contributed by Alexander van der Vekens,
       21-Jul-2018.)  (Revised by AV, 10-Apr-2021.) $)
    wlkiswwlks2 $p |- ( G e. USPGraph -> ( P e. ( WWalks ` G )
                                            -> E. f f ( Walks ` G ) P ) ) $=
      ( vi vx cfv wcel cv cvv wa wi eqid c1 co cc0 chash cfzo wral w3a wceq wbr
      cwwlks cuspgr cwlks wex cvtx cword wwlkbp wne caddc cpr cedg cmin iswwlks
      c0 ciedg cdm cfz ccnv cmpt ovex mptexg mp1i cle crn simprr simplr hashge1
      wf ancoms adantr edgval a1i eleq2d ralbidv biimpd wlkiswwlks2lem6 sylsyld
      3jca wb eleq1 fveq2 oveq2d feq2d fveq2d eqeq1d raleqbidv 3anbi123d imbi2d
      fveq1 adantl mpbird spcimedv com23 3impia expd impcom imp cupgr uspgrupgr
      ex upgriswlk syl exbidv syl5bi mpcom com12 ) ACUBFGZCUCGZBHZACUDFUAZBUEZC
      IGACUFFZUGZGZJZXHXIXLKZCXMAXMLZUHXHAUOUIZXODHZAFXTMUJNAFUKZCULFZGZDOAPFZM
      UMNZQNZRZSZXPXQDYBCXMAXRYBLUNXPYHXQXPYHJZXIXLYIXIJZXLXJCUPFZUQUGZGZOXJPFZ
      URNZXMAVIZXTXJFZYKFZYATZDOYNQNZRZSZBUEZYIXIUUCYHXPXIUUCKYHXPXIUUCXSXOYGXP
      XIJZUUCKXSXOJZUUDYGUUCUUEUUDYGUUCKUUEUUDJZUUBYGBEYFEHZAFUUGMUJNAFUKYKUSFZ
      UTZIYFIGUUIIGUUFOYEQVAEYFUUHIVBVCUUFXJUUITZJZYGUUBKZYGUUIYLGZOUUIPFZURNZX
      MAVIZXTUUIFZYKFZYATZDOUUNQNZRZSZKZUUKXIXOMYDVDUAZSZYGYAYKVEZGZDYFRZUVBUUF
      UVEUUJUUFXIXOUVDUUEXPXIVFXSXOUUDVGUUEUVDUUDXOXSUVDAXNVHVJVKVSVKUUKYGUVHUU
      KYCUVGDYFUUKYBUVFYAYBUVFTUUKCVLVMVNVOVPEADYKUUICXMUUILYKLZVQVRUUJUULUVCVT
      UUFUUJUUBUVBYGUUJYMUUMYPUUPUUAUVAXJUUIYLWAUUJYOUUOXMAUUJYNUUNOURXJUUIPWBZ
      WCWDUUJYSUUSDYTUUTUUJYNUUNOQUVJWCUUJYRUURYAUUJYQUUQYKXTXJUUIWJWEWFWGWHWIW
      KWLWMXAWNWOWPWQWRYJXKUUBBXIXKUUBVTZYIXICWSGUVKCWTADXJCYKXMXRUVIXBXCWKXDWL
      XAXAXEXFXG $.
  $}

  ${
    $d G f $.  $d P f $.
    $( A walk as word corresponds to a walk in a simple pseudograph.
       (Contributed by Alexander van der Vekens, 21-Jul-2018.)  (Revised by AV,
       10-Apr-2021.) $)
    wlkiswwlks $p |- ( G e. USPGraph -> ( E. f f ( Walks ` G ) P
                                           <-> P e. ( WWalks ` G ) ) ) $=
      ( cuspgr wcel cv cwlks cfv wbr wex cwwlks cupgr uspgrupgr wlkiswwlks1 syl
      wi exlimdv wlkiswwlks2 impbid ) CDEZBFZACGHIZBJACKHEZTUBUCBTCLEUBUCPCMAUA
      CNOQABCRS $.
  $}

  ${
    $d G f i x $.  $d P f i x $.
    $( A walk as word corresponds to the sequence of vertices in a walk in a
       pseudograph.  This variant of ~ wlkiswwlks2 does not require ` G ` to be
       a simple pseudograph, but it requires the Axiom of Choice ( ~ ac6 ) for
       its proof.  Notice that only the existence of a function ` f ` can be
       proven, but, in general, it cannot be "constructed" (as in
       ~ wlkiswwlks2 ).  (Contributed by Alexander van der Vekens,
       21-Jul-2018.)  (Revised by AV, 10-Apr-2021.) $)
    wlkiswwlksupgr2 $p |- ( G e. UPGraph -> ( P e. ( WWalks ` G )
                                            -> E. f f ( Walks ` G ) P ) ) $=
      ( vi vx cfv wcel cv co cc0 cfzo wral wex wa wceq wi syl adantl ex adantr
      cwwlks c0 wne cvtx cword c1 caddc cpr cedg chash cmin w3a cupgr cwlks wbr
      eqid iswwlks ciedg cdm cfz wf wrex crn edgval wfun cuhgr upgruhgr uhgrfun
      eleq2i elrnrexdm eqcom rexbii syl6ibr syl5bi ralimdv com23 ovex fvex dmex
      3impia impcom fveq2 eqeq1d ac6 iswrdi cn cfn wrdfin hashnncl biimpac wrdf
      wb bicomd cz nnz fzoval cn0 nnm1nn0 fnfzo0hash sylan eqcomd eqtrd biimpcd
      oveq2d feq2d expd mpd 3adant3 com12 imp raleqdv mpbird anasss 3jca eximdv
      simpr upgriswlk exbidv ) ACUAFGAUBUCZACUDFZUEGZDHZAFYBUFUGIAFUHZCUIFZGZDJ
      AUJFZUFUKIZKIZLZULZCUMGZBHZACUNFUOZBMZDYDCXTAXTUPZYDUPUQYKYJYNYKYJNZYNYLC
      URFZUSZUEGZJYLUJFZUTIZXTAVAZYBYLFZYQFZYCOZDJYTKIZLZULZBMZYPYHYRYLVAZUUEDY
      HLZNZBMZUUIYPEHZYQFZYCOZEYRVBZDYHLZUUMYJYKUURXSYAYIYKUURPXSYANZYKYIUURUUS
      YKYIUURPUUSYKNZYEUUQDYHYEYCYQVCZGZUUTUUQYDUVAYCCVDVIUUTYQVEZUVBUUQPYKUVCU
      USYKCVFGUVCCVGYQCYQUPZVHQRUVCUVBYCUUOOZEYRVBUUQEYQYCVJUUPUVEEYRUUOYCVKVLV
      MQVNVOSVPVTWAUUPUUEDEYHYRBJYGKVQYQCURVRVSUUNUUCOUUOUUDYCUUNUUCYQWBWCWDQYP
      UULUUHBYPUULUUHYPUULNYSUUBUUGUULYSYPUUJYSUUKYRYGYLWETRUULYPUUBUUJYPUUBPUU
      KYPUUJUUBYJUUJUUBPZYKXSYAUVFYIUUSYFWFGZUVFYAXSUVGYAAWGGZXSUVGWLXTAWHUVHUV
      GXSAWIWMQWJZYAUVGUVFPZXSYAJYFKIZXTAVAZUVJXTAWKUVLUVGUUJUUBUVGUUJNZUVLUUBU
      VMUVKUUAXTAUVMUVKJYGUTIZUUAUVGUVKUVNOZUUJUVGYFWNGUVOYFWOJYFWPQTUVMYGYTJUT
      UVMYTYGUVGYGWQGUUJYTYGOZYFWRYRYLYGWSWTZXAXDXBXEXCXFQRXGXHRXITWAYPUUJUUKUU
      GYPUUJNZUUKNZUUGUUKUVRUUKXPUVSUUEDUUFYHUVRUUFYHOZUUKYPUUJUVTYJUUJUVTPZYKX
      SYAUWAYIUUSUUJUVTUUSUUJNYTYGJKUUSUVGUUJUVPUVIUVQWTXDSXHRXJTXKXLXMXNSXOXGY
      PYMUUHBYKYMUUHWLYJADYLCYQXTYOUVDXQTXRXLSVN $.
  $}

  ${
    $d G f $.  $d P f $.
    $( A walk as word corresponds to a walk in a pseudograph.  This variant of
       ~ wlkiswwlks does not require ` G ` to be a simple pseudograph, but it
       requires (indirectly) the Axiom of Choice for its proof.  (Contributed
       by Alexander van der Vekens, 21-Jul-2018.)  (Revised by AV,
       10-Apr-2021.) $)
    wlkiswwlkupgr $p |- ( G e. UPGraph -> ( E. f f ( Walks ` G ) P
                                          <-> P e. ( WWalks ` G ) ) ) $=
      ( cupgr wcel cwlks cfv wbr wex cwwlks wlkiswwlks1 exlimdv wlkiswwlksupgr2
      cv impbid ) CDEZBNZACFGHZBIACJGEZPRSBAQCKLABCMO $.
  $}

  ${
    $d F x y $.  $d G f w x y $.
    wlkpwwlkf1ouspgr.f $e |- F = ( w e. ( Walks ` G ) |-> ( 2nd ` w ) ) $.
    $( The mapping of (ordinary) walks to their sequences of vertices is a
       bijection in a simple pseudograph.  (Contributed by AV, 6-May-2021.) $)
    wlkpwwlkf1ouspgr $p |- ( G e. USPGraph
                          -> F : ( Walks ` G ) -1-1-onto-> ( WWalks ` G ) ) $=
      ( vf vx vy wcel cfv cv c2nd wbr wex wceq weq wral fveq2 adantl sylanbrc
      wa cuspgr cwlks cwwlks wf wf1o c1st fvex breq1 spcev syl5ib wlkcpr biimpi
      wlkiswwlks impel fmptd wf1 wfo wi simpr wb cvv a1i fvexd fvmptd eqeqan12d
      cmpt id uspgr2wlkeqi ad4ant134 ex sylbid ralrimivva dff13 wrex adantr cop
      df-br vex op2nd eqcomi opex eleq1 anbi12d mpan2 sylbi exlimiv syl6bir imp
      eqeq2d df-rex sylibr rexbiia ralrimiva dffo3 df-f1o mpdan ) CUAHZCUBIZCUC
      IZBUDZWRWSBUEZWQAWRAJZKIZWSBWQXBUFIZXCWRLZXCWSHZXBWRHZXEEJZXCWRLZEMWQXFXI
      XEEXDXBUFUGXHXDXCWRUHUIXCECUMUJXGXECXBUKULUNDUOWQWTTZWRWSBUPZWRWSBUQZXAXJ
      WTFJZBIZGJZBIZNZFGOZURZGWRPFWRPXKWQWTUSZXJXSFGWRWRXJXMWRHZXOWRHZTZTZXQXMK
      IZXOKIZNZXRYCXQYGUTXJYAYBXNYEXPYFYAAXMXCYEWRBVABAWRXCVFNZYADVBAFOXCYENYAX
      BXMKQRYAVGYAXMKVCVDZYBAXOXCYFWRBVAYHYBDVBAGOXCYFNYBXBXOKQRYBVGYBXOKVCVDVE
      RYDYGXRWQYCYGXRWTXMXOCVHVIVJVKVLFGWRWSBVMSXJWTXOXNNZFWRVNZGWSPXLXTXJYKGWS
      XJXOWSHZTZXOYENZFWRVNZYKYMYAYNTZFMZYOXJYLYQXJYLXHXOWRLZEMZYQWQYSYLUTWTXOE
      CUMVOYRYQEYRXHXOVPZWRHZYQXHXOWRVQUUAXOYTKIZNZYQUUBXOXHXOEVRGVRVSVTYPUUAUU
      CTFYTXHXOWAXMYTNZYAUUAYNUUCXMYTWRWBUUDYEUUBXOXMYTKQWIWCUIWDWEWFWGWHYNFWRW
      JWKYJYNFWRYAXNYEXOYIWIWLWKWMFGWRWSBWNSWRWSBWOSWP $.
  $}

  ${
    $d G f w $.
    $( The set of walks as words and the set of (ordinary) walks are isomorphic
       in a simple pseudograph.  (Contributed by AV, 6-May-2021.) $)
    wlkisowwlkupgr $p |- ( G e. USPGraph -> E. f f : ( Walks ` G )
                                                -1-1-onto-> ( WWalks ` G ) ) $=
      ( vw cuspgr wcel cwlks cfv cwwlks cv c2nd cmpt wf1o eqid wlkpwwlkf1ouspgr
      wex fvex mptex f1oeq1 spcev syl ) BDEBFGZBHGZCUACIJGZKZLZUAUBAIZLZAOCUDBU
      DMNUGUEAUDCUAUCBFPQUAUBUFUDRST $.
  $}

  ${
    $d G x $.  $d W x $.
    $( Removing the trailing edge from a walk (as word) with at least one edge
       results in a walk.  (Contributed by Alexander van der Vekens,
       1-Aug-2018.)  (Revised by AV, 19-Apr-2021.) $)
    wwlksm1edg $p |- ( ( W e. ( WWalks ` G ) /\ 2 <_ ( # ` W ) )
             -> ( W substr <. 0 , ( ( # ` W ) - 1 ) >. ) e. ( WWalks ` G ) ) $=
      ( vx cfv wcel cle wbr cc0 c1 cmin co c0 cfzo wi wa adantr sylibr syl wceq
      sylan cwwlks c2 chash cop csubstr wne cvtx cword caddc cpr cedg wral eqid
      cv w3a iswwlks cin cn0 lencl cn simpl 1red 2re a1i nn0re 1le2 simpr letrd
      cr jca elnnnn0c lbfzo0 nn0ge2m1nn inelcm cres wrdfn fnresdisj nn0ge2m1nn0
      wfn wb lem1d 3jca elfz2nn0 swrd0val eqeq1d bicomd syldan bitr2d necon3bid
      cfz mpbird 3ad2antl2 swrdcl a1d 3ad2ant2 imp wss cuz nn0z peano2rem eluz2
      cz peano2zm swrd0len oveq1d fveq2d fzoss2 ssralv oveq2d fzossrbm1 swrd0fv
      eleqtrrd eleq2d sselda syl3anc eqcomd elfzom1p1elfzo sylbid eleq1d biimpd
      preq12d ex ralimdva syld expcom com3l 3imp1 syl3anbrc sylbi ) BAUADZEZUBB
      UCDZFGZBHYLIJKZUDUEKZYJEZYKBLUFZBAUGDZUHZEZCUNZBDZUUAIUIKZBDZUJZAUKDZEZCH
      YNMKZULZUOZYMYPNCUUFAYRBYRUMZUUFUMZUPUUJYMYPUUJYMOYOLUFZYOYSEZUUAYODZUUCY
      ODZUJZUUFEZCHYOUCDZIJKZMKZULZYPYTYQYMUUMUUIYTYMOZUUMHYLMKZUUHUQZLUFZUVCHU
      VDEZHUUHEZOZUVFYTYLUREZYMUVIYRBUSZUVJYMOZUVGUVHUVLYLUTEZUVGUVLUVJIYLFGZOU
      VMUVLUVJUVNUVJYMVAZUVLIUBYLUVLVBUBVIEUVLVCVDUVJYLVIEZYMYLVEZPZIUBFGUVLVFV
      DUVJYMVGVHVJYLVKQYLVLQUVLYNUTEZUVHYLVMZYNVLQVJTHUVDUUHVNRUVCYOLUVELUVCUVE
      LSZBUUHVOZLSZYOLSZUVCBUVDVSZUWAUWCVTYTUWEYMYRBVPPUVDUUHBVQRYTYMYNHYLWJKEZ
      UWCUWDVTUVCYNUREZUVJYNYLFGZUOZUWFYTUVJYMUWIUVKUVLUWGUVJUWHYLVRZUVOUVLYLUV
      RWAWBTYNYLWCZQZYTUWFOZUWDUWCUWMYOUWBLYRBYNWDWEWFWGWHWIWKWLUUJYMUUNYTYQYMU
      UNNUUIYTUUNYMYRBHYNWMWNWOWPYQYTUUIYMUVBYTUUIYMUVBNNNYQYMYTUUIUVBYTYMUUIUV
      BNUVCUUIUUGCUVAULZUVBUVCUVAUUHWQZUUIUWNNUVCYNUUTWRDZEUWOUVCYNYNIJKZWRDZUW
      PUVCUWQXBEZYNXBEZUWQYNFGZUOZYNUWREYTUVJYMUXBUVKUVLUWSUWTUXAUVJUWSYMUVJUWT
      UWSUVJYLXBEUWTYLWSYLXCRZYNXCRPUVJUWTYMUXCPUVJUXAYMUVJYNUVJUVPYNVIEUVQYLWT
      RWAPWBTUWQYNXAQUVCUUTUWQWRYTYMUWFUUTUWQSUVCUWIUWFYTUVJYMUWIUVKUVLUWGUVJUW
      HUWJUVOUVJUWHYMUVJYLUVQWAPWBTUWKQZUWMUUSYNIJYRBYNXDZXEWGXFXLUUTHYNXGRUUGC
      UVAUUHXHRUVCUUGUURCUVAUVCUUAUVAEZOZUUGUURUXGUUEUUQUUFUVCUXFUUEUUQSZUVCUXF
      UUAHUWQMKZEZUXHUVCUVAUXIUUAUVCUUTUWQHMUVCUUSYNIJYTYMUWFUUSYNSUXDUXEWGXEXI
      XMUVCUXJUXHUVCUXJOZUUBUUOUUDUUPUXKUUOUUBUXKYTUWFUUAUUHEUUOUUBSUVCYTUXJYTY
      MVAPZUVCUWFUXJUWLPZUVCUXIUUHUUAUVCUWGUXIUUHWQZYTUVJYMUWGUVKUWJTUWGUWTUXNY
      NWSYNXJRRXNUUAYNYRBXKXOXPUXKUUPUUDUXKYTUWFUUCUUHEZUUPUUDSUXLUXMUVCUVSUXJU
      XOYTUVJYMUVSUVKUVTTYNUUAXQTUUCYNYRBXKXOXPYAYBXRWPXSXTYCYDYEYFVDYGCUUFAYRY
      OUUKUULUPYHYBYIWP $.
  $}

  ${
    $d G f $.  $d N f $.  $d P f $.  $d ph f $.
    wlklnwwlkln2lem.1 $e |- ( ph -> ( P e. ( WWalks ` G )
                                       -> E. f f ( Walks ` G ) P ) ) $.
    $( Lemma for ~ wlklnwwlkln2 and ~ wlklnwwlklnupgr2 .  Formerly part of
       proof for ~ wlklnwwlkln2 .  (Contributed by Alexander van der Vekens,
       21-Jul-2018.)  (Revised by AV, 12-Apr-2021.) $)
    wlklnwwlkln2lem $p |- ( ph -> ( P e. ( N WWalksN G )
                         -> E. f ( f ( Walks ` G ) P /\ ( # ` f ) = N ) ) ) $=
      ( co wcel cfv chash wceq wa wex wi c1 adantr cc adantl com12 ex cwlks wbr
      cwwlksn cv cvv cn0 cvtx cword w3a eqid wwlknbp cwwlks caddc iswwlksn cmin
      wb lencl nn0cnd nn0cn subadd2d eqcom syl6rbb biimpcd impcom imp wlklenvm1
      1cnd simpr jccir eximdv mpd eqeq2 anbi2d exbidv syl5ib expd mpcom 3adant1
      sylbid ) BEDUCGHZACUDZBDUAIUBZWAJIZEKZLZCMZDUEHZEUFHZBDUGIZUHHZUIVTAWFNZD
      EWIBWIUJUKWHWJVTWKNWGWHWJLZVTBDULIHZBJIZEOUMGZKZLZWKWHVTWQUPWJDEBUNPWLWQW
      KWNOUOGZEKZWLWQLZWKWQWLWSWPWLWSNWMWLWPWSWLWSWOWNKWPWLWNOEWJWNQHWHWJWNWIBU
      QURRWLVGWHEQHWJEUSPUTWOWNVAVBVCRVDWSWTAWFWTALZWBWCWRKZLZCMZWSWFXAWBCMZXDW
      TAXEWQAXENZWLWMXFWPAWMXEFSPRVEXAWBXCCXAWBXCXAWBLWBXBXAWBVHBWADVFVITVJVKWS
      XCWECWSXBWDWBWREWCVLVMVNVOVPVQTVSVRVQS $.
  $}

  ${
    $d G f $.  $d N f $.  $d P f $.
    $( A walk of length ` N ` as word corresponds to the sequence of vertices
       in a walk of length ` N ` in a simple pseudograph.  (Contributed by
       Alexander van der Vekens, 21-Jul-2018.)  (Revised by AV,
       12-Apr-2021.) $)
    wlklnwwlkln2 $p |- ( G e. USPGraph -> ( P e. ( N WWalksN G )
                         -> E. f ( f ( Walks ` G ) P /\ ( # ` f ) = N ) ) ) $=
      ( cuspgr wcel wlkiswwlks2 wlklnwwlkln2lem ) CEFABCDABCGH $.

    $( A walk of length ` N ` as word corresponds to a walk with length ` N `
       in a simple pseudograph.  (Contributed by Alexander van der Vekens,
       21-Jul-2018.)  (Revised by AV, 12-Apr-2021.) $)
    wlklnwwlkn $p |- ( G e. USPGraph -> ( E. f ( f ( Walks ` G ) P
                     /\ ( # ` f ) = N ) <-> P e. ( N WWalksN G ) ) ) $=
      ( cuspgr wcel cv cwlks cfv wbr chash wa wex cwwlksn co cupgr wi uspgrupgr
      wceq wlklnwwlkln1 syl exlimdv wlklnwwlkln2 impbid ) CEFZBGZACHIJUFKIDSLZB
      MADCNOFZUEUGUHBUECPFUGUHQCRAUFCDTUAUBABCDUCUD $.

    $( A walk of length ` N ` as word corresponds to the sequence of vertices
       in a walk of length ` N ` in a pseudograph.  This variant of
       ~ wlklnwwlkln2 does not require ` G ` to be a simple pseudograph, but it
       requires (indirectly) the Axiom of Choice.  (Contributed by Alexander
       van der Vekens, 21-Jul-2018.)  (Revised by AV, 12-Apr-2021.) $)
    wlklnwwlklnupgr2 $p |- ( G e. UPGraph -> ( P e. ( N WWalksN G )
                         -> E. f ( f ( Walks ` G ) P /\ ( # ` f ) = N ) ) ) $=
      ( cupgr wcel wlkiswwlksupgr2 wlklnwwlkln2lem ) CEFABCDABCGH $.

    $( A walk of length ` N ` as word corresponds to a walk with length ` N `
       in a pseudograph.  This variant of wlkiswwlks 40197 does not require
       ` G ` to be a simple pseudograph, but it requires (indirectly) the Axiom
       of Choice for its proof.  (Contributed by Alexander van der Vekens,
       21-Jul-2018.)  (Revised by AV, 12-Apr-2021.) $)
    wlklnwwlknupgr $p |- ( G e. UPGraph -> ( E. f ( f ( Walks ` G ) P
                     /\ ( # ` f ) = N ) <-> P e. ( N WWalksN G ) ) ) $=
      ( cupgr wcel cv cwlks cfv wbr chash wceq wex cwwlksn wlklnwwlkln1 exlimdv
      wa co wlklnwwlklnupgr2 impbid ) CEFZBGZACHIJUBKIDLQZBMADCNRFZUAUCUDBAUBCD
      OPABCDST $.
  $}

  ${
    $d G i $.  $d W i $.
    $( If a walk in a pseudograph has length ` N ` , then the sequence of the
       vertices of the walk is a word representing the walk as word of length
       ` N ` .  (Contributed by Alexander van der Vekens, 25-Aug-2018.)
       (Revised by AV, 11-Apr-2021.) $)
    wlknewwlksn $p |- ( ( ( G e. UPGraph /\ W e. ( Walks ` G ) )
                          /\ ( N e. NN0 /\ ( # ` ( 1st ` W ) ) = N ) )
                         -> ( 2nd ` W ) e. ( N WWalksN G ) ) $=
      ( vi wcel cfv wa chash wceq co cword c1 cc0 cfzo wral adantl cfz eqid syl
      caddc cupgr cwlks cn0 c1st c2nd cwwlksn c0 wne cvtx cpr cedg cmin w3a wbr
      cv wlkcpr wlkn0 sylbi ciedg wf wlkelwrd ffz0iswrd upgrwlkvtxedg wlklenvm1
      cdm oveq2d raleqdv mpbid sylan2b adantr simpl oveq2 feq2d biimpd impancom
      3jca wi adantld imp ffz0hash syl2an2 ex wb cwwlks iswwlksn iswwlks anbi1d
      a1i bitrd mpbir2and ) AUAEZCAUBFZEZGZBUCEZCUDFZHFZBIZGZGZCUEFZBAUFJEZXAUG
      UHZXAAUIFZKEZDUOZXAFXFLTJXAFUJAUKFZEZDMXAHFZLULJZNJZOZUMZXIBLTJIZWNXMWSWN
      XCXEXLWMXCWKWMWPXAWLUNZXCACUPZXAWPAUQURPWMXEWKWMWPAUSFZVEKEZMWQQJZXDXAUTZ
      GZXEXAWPAXQXDCXDRZXQRWPRXARVAZXTXEXRXDWQXAVBPSPWMWKXOXLXPWKXOGZXHDMWQNJZO
      XLXADXGWPAXGRZVCYDXHDYEXKYDWQXJMNXOWQXJIWKXAWPAVDPVFVGVHVIVPVJWNWSXNWMWSX
      NVQZWKWMYAYGYCYAWSXNWSWOYAMBQJZXDXAUTZXNWOWRVKZYAWSYIYAWRYIWOXRWRXTYIXRWR
      GZXTYIYKXSYHXDXAWRXSYHIXRWQBMQVLPVMVNVOVRVSXDXABVTWAWBSPVSWTWOXBXMXNGZWCW
      SWOWNYJPWOXBXAAWDFEZXNGYLABXAWEWOYMXMXNYMXMWCWODXGAXDXAYBYFWFWHWGWISWJ $.
  $}

  ${
    $d G p t $.  $d N p t $.  $d T t $.  $d W t $.
    wlknwwlksnbij.t $e |- T = { p e. ( Walks ` G ) |
                               ( # ` ( 1st ` p ) ) = N } $.
    wlknwwlksnbij.w $e |- W = ( N WWalksN G ) $.
    wlknwwlksnbij.f $e |- F = ( t e. T |-> ( 2nd ` t ) ) $.
    $( Lemma 1 for ~ wlknwwlksnbij2 .  (Contributed by Alexander van der
       Vekens, 25-Aug-2018.)  (Revised by AV, 14-Apr-2021.) $)
    wlknwwlksnfun $p |- ( ( G e. UPGraph /\ N e. NN0 ) -> F : T --> W ) $=
      ( cupgr wcel cn0 wa cv c2nd cfv c1st chash wceq co cwlks weq fveq2 fveq2d
      cwwlksn eqeq1d elrab2 wlknewwlksn an4s sylan2b syl6eleqr fmptd ) DKLZEMLZ
      NZABAOZPQZFCUPUQBLZNUREDUFUAZFUSUPUQDUBQZLZUQRQZSQZETZNURUTLZGOZRQZSQZETV
      EGUQVABGAUCZVIVDEVJVHVCSVGUQRUDUEUGHUHUNVBUOVEVFDEUQUIUJUKIULJUM $.

    $d F v w $.  $d G p t v w $.  $d N v w $.  $d T v w $.
    $( Lemma 2 for ~ wlknwwlksnbij2 .  (Contributed by Alexander van der
       Vekens, 25-Aug-2018.)  (Revised by AV, 14-Apr-2021.) $)
    wlknwwlksninj $p |- ( ( G e. USPGraph /\ N e. NN0 ) -> F : T -1-1-> W ) $=
      ( vv vw wcel wa cv cfv wceq c2nd c1st chash cuspgr cn0 wf weq wi wral wf1
      cupgr uspgrupgr wlknwwlksnfun sylan wb fveq2 fvmpt eqeqan12d adantl cwlks
      fveq2d eqeq1d elrab2 anbi12i uspgr2wlkeq2 3expb sylan2b sylbid ralrimivva
      fvex dff13 sylanbrc ) DUAMZEUBMZNZBFCUCZKOZCPZLOZCPZQZKLUDZUEZLBUFKBUFBFC
      UGVJDUHMVKVMDUIABCDEFGHIJUJUKVLVTKLBBVLVNBMZVPBMZNZNVRVNRPZVPRPZQZVSWCVRW
      FULVLWAWBVOWDVQWEAVNAOZRPZWDBCWGVNRUMJVNRVGUNAVPWHWEBCWGVPRUMJVPRVGUNUOUP
      WCVLVNDUQPZMVNSPZTPZEQZNZVPWIMVPSPZTPZEQZNZNWFVSUEZWAWMWBWQGOZSPZTPZEQZWL
      GVNWIBGKUDZXAWKEXCWTWJTWSVNSUMURUSHUTXBWPGVPWIBGLUDZXAWOEXDWTWNTWSVPSUMUR
      USHUTVAVLWMWQWRVNVPDEVBVCVDVEVFKLBFCVHVI $.

    $d F p u $.  $d G p f u $.  $d N f u $.  $d T p t u $.  $d W p u $.
    $( Lemma 3 for ~ wlknwwlksnbij2 .  (Contributed by Alexander van der
       Vekens, 25-Aug-2018.)  (Revised by AV, 14-Apr-2021.) $)
    wlknwwlksnsur $p |- ( ( G e. USPGraph /\ N e. NN0 ) -> F : T -onto-> W ) $=
      ( vu vf wcel wa cv cfv wceq c2nd c1st chash cuspgr cn0 wf wrex wral cupgr
      wfo uspgrupgr wlknwwlksnfun sylan cwwlksn co eleq2i cwlks crab wex wbr wb
      wlklnwwlkn adantr cop df-br vex op1st eqcomi fveq2i eqeq1i cvv elex eleq1
      biimparc fveq2 fveq2d eqeq1d adantl biimpar op2nd syl6req ex spcimedv imp
      jca31 syl2anb exlimiv syl6bir weq elrab anbi1i exbii sylibr df-rex rexeqi
      fvex fvmpt eqeq2d rexbiia sylan2b ralrimiva dffo3 sylanbrc ) DUAMZEUBMZNZ
      BFCUCZGOZKOZCPZQZKBUDZGFUEBFCUGXADUFMXBXDDUHABCDEFGHIJUIUJXCXIGFXEFMXCXEE
      DUKULZMZXIFXJXEIUMXCXKNZXEXFRPZQZKBUDZXIXLXNKXESPZTPZEQZGDUNPZUOZUDZXOXLX
      FXTMZXNNZKUPZYAXLXFXSMZXFSPZTPZEQZNZXNNZKUPZYDXCXKYKXCXKLOZXEXSUQZYLTPZEQ
      ZNZLUPZYKXAYQXKURXBXELDEUSUTYPYKLYMYLXEVAZXSMZYRSPZTPZEQZYKYOYLXEXSVBYNUU
      AEYLYTTYTYLYLXELVCZGVCZVDVEVFVGYSUUBYKYSYJUUBKYRVHYRXSVIYSXFYRQZNZUUBYJUU
      FUUBNYEYHXNUUFYEUUBUUEYEYSXFYRXSVJVKUTUUFYHUUBUUEYHUUBURYSUUEYGUUAEUUEYFY
      TTXFYRSVLVMVNVOVPUUFXNUUBUUEXNYSUUEXMYRRPXEXFYRRVLYLXEUUCUUDVQVRVOUTWBVSV
      TWAWCWDWEWAYCYJKYBYIXNXRYHGXFXSGKWFZXQYGEUUGXPYFTXEXFSVLVMVNWGWHWIWJXNKXT
      WKWJXNKBXTHWLWJXHXNKBXFBMXGXMXEAXFAOZRPXMBCUUHXFRVLJXFRWMWNWOWPWJWQWRKGBF
      CWSWT $.

    $( Lemma 4 for ~ wlknwwlksnbij2 .  (Contributed by Alexander van der
       Vekens, 25-Aug-2018.)  (Revised by AV, 14-Apr-2021.) $)
    wlknwwlksnbij $p |- ( ( G e. USPGraph /\ N e. NN0 )
                          -> F : T -1-1-onto-> W ) $=
      ( cuspgr wcel cn0 wa wf1 wfo wf1o wlknwwlksninj wlknwwlksnsur df-f1o
      sylanbrc ) DKLEMLNBFCOBFCPBFCQABCDEFGHIJRABCDEFGHIJSBFCTUA $.
  $}

  ${
    $d G f p t u x $.  $d N f p t u x $.
    $( There is a bijection between the set of walks of a fixed length and the
       set of walks represented by words of the same length in a simple
       pseudograph.  (Contributed by Alexander van der Vekens, 25-Aug-2018.)
       (Revised by AV, 15-Apr-2021.) $)
    wlknwwlksnbij2 $p |- ( ( G e. USPGraph /\ N e. NN0 )
                  -> E. f f : { p e. ( Walks ` G ) | ( # ` ( 1st ` p ) ) = N }
                              -1-1-onto-> ( N WWalksN G ) ) $=
      ( vx vt vu c1st cfv chash wceq cwlks crab cvv wcel wf1o weq fveq2 fveq2d
      cv c2nd cmpt cuspgr cn0 wa cwwlksn co wex mptrabex eqeq1d cbvrabv mpteq1i
      fvex eqid wlknwwlksnbij f1oeq1 spcegv mpsyl ) EFTZHIZJIZCKZFBLIZMZETUAIZU
      BZNOBUCOCUDOUEDTZHIZJIZCKZDVCMZCBUFUGZVFPZVKVLATZPZAUHVBEFVCVEBLUMUIEVKVF
      BCVLGVJGTZHIZJIZCKDGVCDGQZVIVRCVSVHVQJVGVPHRSUJUKVLUNEVDVKVEVBVJFDVCFDQZV
      AVICVTUTVHJUSVGHRSUJUKULUOVOVMAVFNVKVLVNVFUPUQUR $.
  $}

  ${
    $d G f p $.  $d N f p $.
    $( In a simple pseudograph, the set of walks of a fixed length and the set
       of walks represented by words are equinumerous.  (Contributed by
       Alexander van der Vekens, 25-Aug-2018.)  (Revised by AV,
       15-Apr-2021.) $)
    wlknwwlksnen $p |- ( ( G e. USPGraph /\ N e. NN0 )
                         -> { p e. ( Walks ` G ) | ( # ` ( 1st ` p ) ) = N }
                            ~~ ( N WWalksN G ) ) $=
      ( vf cuspgr wcel cn0 wa cv c1st cfv chash wceq cwlks crab cwwlksn co wf1o
      wex cen wbr wlknwwlksnbij2 bren sylibr ) AEFBGFHCIJKLKBMCANKOZBAPQZDIRDSU
      EUFTUADABCUBUEUFDUCUD $.
  $}

  ${
    $d G p $.  $d N p $.
    $( The set of walks of a fixed length and the set of walks represented by
       words have the same size.  (Contributed by Alexander van der Vekens,
       25-Aug-2018.)  (Revised by AV, 15-Apr-2021.) $)
    wlknwwlksneqs $p |- ( ( G e. USPGraph /\ N e. NN0 )
                   -> ( # ` { p e. ( Walks ` G ) | ( # ` ( 1st ` p ) ) = N } )
                     = ( # ` ( N WWalksN G ) ) ) $=
      ( cuspgr wcel cn0 wa cv c1st cfv chash wceq cwlks crab cwwlksn co cen wbr
      wlknwwlksnen hasheni syl ) ADEBFEGCHIJKJBLCAMJNZBAOPZQRUBKJUCKJLABCSUBUCT
      UA $.
  $}

  ${
    $d G p t w $.  $d N p t w $.  $d P p t w $.  $d T t w $.  $d V t $.
    $d W t $.
    wlkwwlkbij.t $e |- T = { p e. ( Walks ` G ) |
                    ( ( # ` ( 1st ` p ) ) = N /\ ( ( 2nd ` p ) ` 0 ) = P ) } $.
    wlkwwlkbij.w $e |- W = { w e. ( N WWalksN G ) | ( w ` 0 ) = P } $.
    wlkwwlkbij.f $e |- F = ( t e. T |-> ( 2nd ` t ) ) $.
    $( Lemma 1 for ~ wlkwwlkbij2 .  (Contributed by Alexander van der Vekens,
       22-Jul-2018.)  (Proof shortened by Alexander van der Vekens,
       25-Aug-2018.)  (Revised by AV, 15-Apr-2021.) $)
    wlkwwlkfun $p |- ( ( G e. UPGraph /\ P e. V /\ N e. NN0 )
                       -> F : T --> W ) $=
      ( wcel cv c2nd cfv wa cc0 wceq cupgr cn0 w3a cwwlksn cwlks c1st chash weq
      fveq2 fveq2d eqeq1d fveq1d anbi12d elrab2 simp1 simpl anim12i wlknewwlksn
      co simp3 simprl syl2anc simprrr jca sylan2b fveq1 sylibr fmptd ) FUANZCHN
      ZGUBNZUCZBDBOZPQZIEVLVMDNZRVNGFUDUSZNZSVNQZCTZRZVNINVOVLVMFUEQZNZVMUFQZUG
      QZGTZVSRZRZVTJOZUFQZUGQZGTZSWHPQZQZCTZRWFJVMWADJBUHZWKWEWNVSWOWJWDGWOWIWC
      UGWHVMUFUIUJUKWOWMVRCWOSWLVNWHVMPUIULUKUMKUNVLWGRZVQVSWPVIWBRVKWERVQVLVIW
      GWBVIVJVKUOWBWFUPUQVLVKWGWEVIVJVKUTWBWEVSVAUQFGVMURVBVLWBWEVSVCVDVESAOZQZ
      CTVSAVNVPIWQVNTWRVRCSWQVNVFUKLUNVGMVH $.

    $d F v w $.  $d G p v w $.  $d N v $.  $d P v $.  $d T t v $.  $d V v w $.
    $( Lemma 2 for ~ wlkwwlkbij2 .  (Contributed by Alexander van der Vekens,
       23-Jul-2018.)  (Proof shortened by Alexander van der Vekens,
       25-Aug-2018.)  (Revised by AV, 16-Apr-2021.) $)
    wlkwwlkinj $p |- ( ( G e. USPGraph /\ P e. V /\ N e. NN0 )
                         -> F : T -1-1-> W ) $=
      ( wcel cfv wceq wa c2nd fveq2 c1st vv cuspgr cn0 w3a wf cv wral wf1 cupgr
      wi uspgrupgr wlkwwlkfun syl3an1 wb fvmpt eqeqan12d adantl cwlks chash cc0
      fvex fveq2d eqeq1d fveq1d anbi12d elrab2 3simpb adantr simpl uspgr2wlkeq2
      anbi12i anim2i syl3anc sylan2b sylbid ralrimivva dff13 sylanbrc ) FUBNZCH
      NZGUCNZUDZDIEUEZUAUFZEOZAUFZEOZPZWDWFPZUJZADUGUADUGDIEUHVSFUINVTWAWCFUKAB
      CDEFGHIJKLMULUMWBWJUAADDWBWDDNZWFDNZQZQWHWDROZWFROZPZWIWMWHWPUNWBWKWLWEWN
      WGWOBWDBUFZROZWNDEWQWDRSMWDRVAUOBWFWRWODEWQWFRSMWFRVAUOUPUQWMWBWDFUROZNZW
      DTOZUSOZGPZUTWNOZCPZQZQZWFWSNZWFTOZUSOZGPZUTWOOZCPZQZQZQZWPWIUJZWKXGWLXOJ
      UFZTOZUSOZGPZUTXRROZOZCPZQZXFJWDWSDXRWDPZYAXCYDXEYFXTXBGYFXSXAUSXRWDTSVBV
      CYFYCXDCYFUTYBWNXRWDRSVDVCVEKVFYEXNJWFWSDXRWFPZYAXKYDXMYGXTXJGYGXSXIUSXRW
      FTSVBVCYGYCXLCYGUTYBWOXRWFRSVDVCVEKVFVKWBXPQVSWAQZWTXCQZXHXKQZXQWBYHXPVSV
      TWAVGVHXPYIWBXGYIXOXFXCWTXCXEVIVLVHUQXPYJWBXOYJXGXNXKXHXKXMVIVLUQUQWDWFFG
      VJVMVNVOVPUAADIEVQVR $.

    $d F p u $.  $d G f p u w $.  $d N f u $.  $d P f u $.  $d T t p u $.
    $d W p u $.
    $( Lemma 3 for ~ wlkwwlkbij2 .  (Contributed by Alexander van der Vekens,
       23-Jul-2018.)  (Revised by AV, 16-Apr-2021.) $)
    wlkwwlksur $p |- ( ( G e. USPGraph /\ P e. V /\ N e. NN0 )
                         -> F : T -onto-> W ) $=
      ( vu wcel cfv wceq cc0 wa c2nd vf cuspgr cn0 w3a wf cv wrex wfo uspgrupgr
      wral cupgr wlkwwlkfun syl3an1 cwwlksn weq fveq1 eqeq1d elrab2 chash cwlks
      co c1st crab wex wbr wi wlklnwwlkn df-br op1st eqcomi fveq2i eqeq1i op2nd
      cop vex fveq1i cvv opex a1i simpll simpr anim1i jca31 eleq1 fveq2d fveq1d
      fveq2 anbi12d eqeq2d syl5ibrcom impancom spcimedv syl2anb exlimiv syl6bir
      syl5bi imp32 elrab anbi1i exbii sylibr df-rex rexeqi fvex rexbiia sylan2b
      fvmpt ralrimiva 3ad2ant1 dffo3 sylanbrc ) FUBOZCHOZGUCOZUDDIEUEZJUFZNUFZE
      PZQZNDUGZJIUJZDIEUHXLFUKOXMXNXOFUIABCDEFGHIJKLMULUMXLXMYAXNXLXTJIXPIOXLXP
      GFUNVAZOZRXPPZCQZSZXTRAUFZPZCQYEAXPYBIAJUOYHYDCRYGXPUPUQLURXLYFSZXPXQTPZQ
      ZNDUGZXTYIYKNXPVBPZUSPZGQZRXPTPZPZCQZSZJFUTPZVCZUGZYLYIXQUUAOZYKSZNVDZUUB
      YIXQYTOZXQVBPZUSPZGQZRYJPZCQZSZSZYKSZNVDZUUEXLYCYEUUOXLYCUAUFZXPYTVEZUUPU
      SPZGQZSZUAVDYEUUOVFZXPUAFGVGUUTUVAUAUUQUUPXPVNZYTOZUVBVBPZUSPZGQZUVAUUSUU
      PXPYTVHUURUVEGUUPUVDUSUVDUUPUUPXPUAVOZJVOZVIVJVKVLYERUVBTPZPZCQZUVCUVFSZU
      UOYDUVJCRXPUVIUVIXPUUPXPUVGUVHVMVJZVPVLUVLUUNUVKNUVBVQUVBVQOUVLUUPXPVRVSU
      VLUVKXQUVBQZUUNUVLUVKSZUUNUVNUVCUVFUVKSZSZXPUVIQZSUVOUVCUVPUVRUVCUVFUVKVT
      UVLUVFUVKUVCUVFWAWBUVRUVOUVMVSWCUVNUUMUVQYKUVRUVNUUFUVCUULUVPXQUVBYTWDUVN
      UUIUVFUUKUVKUVNUUHUVEGUVNUUGUVDUSXQUVBVBWGWEUQUVNUUJUVJCUVNRYJUVIXQUVBTWG
      ZWFUQWHWHUVNYJUVIXPUVSWIWHWJWKWLWPWMWNWOWQUUDUUNNUUCUUMYKYSUULJXQYTJNUOZY
      OUUIYRUUKUVTYNUUHGUVTYMUUGUSXPXQVBWGWEUQUVTYQUUJCUVTRYPYJXPXQTWGWFUQWHWRW
      SWTXAYKNUUAXBXAYKNDUUAKXCXAXSYKNDXQDOXRYJXPBXQBUFZTPYJDEUWAXQTWGMXQTXDXGW
      IXEXAXFXHXINJDIEXJXK $.

    $( Lemma 4 for ~ wlkwwlkbij2 .  (Contributed by Alexander van der Vekens,
       22-Jul-2018.)  (Revised by AV, 16-Apr-2021.) $)
    wlkwwlkbij $p |- ( ( G e. USPGraph /\ P e. V /\ N e. NN0 )
                         -> F : T -1-1-onto-> W ) $=
      ( cuspgr wcel cn0 w3a wf1 wfo wf1o wlkwwlkinj wlkwwlksur df-f1o sylanbrc
      ) FNOCHOGPOQDIERDIESDIETABCDEFGHIJKLMUAABCDEFGHIJKLMUBDIEUCUD $.
  $}

  ${
    $d G p s u $.  $d G s u w x $.  $d G f p t x $.  $d N p u $.  $d N s w $.
    $d N f t x $.  $d P p s t u $.  $d P s w $.  $d P f t x $.  $d V s x $.
    $d f w $.
    $( There is a bijection between the set of walks of a fixed length,
       starting at a fixed vertex, and the set of walks represented as words of
       the same length, starting at the same vertex.  (Contributed by Alexander
       van der Vekens, 22-Jul-2018.)  (Revised by AV, 16-Apr-2021.) $)
    wlkwwlkbij2 $p |- ( ( G e. USPGraph /\ P e. V /\ N e. NN0 )
          -> E. f f : { p e. ( Walks ` G ) | ( ( # ` ( 1st ` p ) ) = N
                                                /\ ( ( 2nd ` p ) ` 0 ) = P ) }
                      -1-1-onto-> { w e. ( N WWalksN G ) | ( w ` 0 ) = P } ) $=
      ( vx vt vs vu cv c1st cfv chash wceq cc0 c2nd wcel eqeq1d cwlks crab cmpt
      wa cvv cuspgr cn0 w3a cwwlksn co wf1o wex fvex mptrabex weq fveq2d fveq1d
      fveq2 anbi12d cbvrabv fveq1 mpteq1i wlkwwlkbij f1oeq1 spcegv mpsyl ) HILZ
      MNZONZEPZQVGRNZNZBPZUDZIDUANZUBZHLRNZUCZUESDUFSBFSEUGSUHGLZMNZONZEPZQVSRN
      ZNZBPZUDZGVOUBZQALZNZBPZAEDUIUJZUBZVRUKZWGWLCLZUKZCULVNHIVOVQDUAUMUNJHBWG
      VRDEFWLKWFKLZMNZONZEPZQWPRNZNZBPZUDGKVOGKUOZWBWSWEXBXCWAWREXCVTWQOVSWPMUR
      UPTXCWDXABXCQWCWTVSWPRURUQTUSUTWJQJLZNZBPAJWKAJUOWIXEBQWHXDVATUTHVPWGVQVN
      WFIGVOIGUOZVJWBVMWEXFVIWAEXFVHVTOVGVSMURUPTXFVLWDBXFQVKWCVGVSRURUQTUSUTVB
      VCWOWMCVRUEWGWLWNVRVDVEVF $.
  $}

  ${
    $d T i $.  $d W i $.
    $( Equality of two walks (as words).  (Contributed by Alexander van der
       Vekens, 4-Aug-2018.)  (Revised by AV, 16-Apr-2021.) $)
    wwlkseq $p |- ( ( W e. ( WWalks ` G ) /\ T e. ( WWalks ` G ) )
                    -> ( W = T <-> ( ( # ` W ) = ( # ` T ) /\
                     A. i e. ( 0 ..^ ( # ` W ) ) ( W ` i ) = ( T ` i ) ) ) ) $=
      ( cwwlks cfv wcel cvtx cword wceq chash cv cc0 cfzo co wral wwlkbp simprd
      wa wb cvv eqid eqwrd syl2an ) DCEFZGZDCHFZIZGZAUHGZDAJDKFZAKFJBLZDFULAFJB
      MUKNOPSTAUEGZUFCUAGZUICUGDUGUBZQRUMUNUJCUGAUOQRDBUGAUCUD $.
  $}

  ${
    $d G i $.  $d N i $.  $d W i $.
    $( Reduction of a walk (as word) by removing the trailing edge/vertex.
       (Contributed by Alexander van der Vekens, 4-Aug-2018.)  (Revised by AV,
       16-Apr-2021.) $)
    wwlksnred $p |- ( N e. NN0 -> ( W e. ( ( N + 1 ) WWalksN G )
                  -> ( W substr <. 0 , ( N + 1 ) >. ) e. ( N WWalksN G ) ) ) $=
      ( vi wcel c1 co cfv wceq wa cc0 wb cmin cfzo wral wi mpbird adantr adantl
      syl cn0 caddc cwwlksn cwwlks chash cop csubstr peano2nn0 iswwlksn c0 cvtx
      wne cword cv cpr cedg w3a eqid iswwlks cn cle wbr nn0p1nn 3ad2ant3 nn0red
      simp1 lep1d breq2 3ad2ant2 swrdn0 syl3anc 3exp impcom swrdcl oveq1 nn0cnd
      imp 1cnd pncand sylan9eq oveq2d raleqdv wss cuz nn0z nn0re ad2antll eluz2
      3jca sylibr fzoss2 ssralv cfz simpl nn0fz0 sylib fzelp1 eleq2d fzossfzop1
      cz oveq2 sseld swrd0fv eqcomd fzofzp1 fzval3 preq12d eleq1d ralimdva syld
      biimpd sylbid nn0cn swrd0len0 oveq1d exp31 com23 3adant1 expdimp elfz2nn0
      syl3anbrc anim2i exp32 swrd0len mpbir2and expcom sylanb com12 ) BUAEZCBFU
      BGZAUCGEZCAUDHZEZCUEHZYJFUBGZIZJZCKYJUFUGGZBAUCGEZYIYJUAEZYKYQLBUHZAYJCUI
      TYQYIYSYMCUJULZCAUKHZUMZEZDUNZCHZUUFFUBGZCHZUOZAUPHZEZDKYNFMGZNGZOZUQZYPY
      IYSPDUUKAUUCCUUCURZUUKURZUSYIUUPYPJZYSYIUUSJZYSYRYLEZYRUEHZYJIZUUTYRUJULZ
      YRUUDEZUUFYRHZUUHYRHZUOZUUKEZDKUVBFMGZNGZOZUVAUUSYIUVDUUPYPYIUVDPZUUEUUBY
      PUVMPUUOUUEYPYIUVDUUEYPYIUQZUUEYJUTEZYJYNVAVBZUVDUUEYPYIVFYIUUEUVOYPBVCVD
      UVNUVPYJYOVAVBZYIUUEUVQYPYIYJYIYJUUAVEVGZVDYPUUEUVPUVQLYIYNYOYJVAVHVIQYJU
      UCCVJVKVLVIVQVMUUSUVEYIUUPUVEYPUUEUUBUVEUUOUUCCKYJVNVIRSUUSYIUVLUUPYPYIUV
      LUUEUUOYPYIJZUVLPZUUBUUEUUOUVTUUEUVSUUOUVLUUEUVSUUOUVLUUEUVSJZUUOJZUVLUVI
      DKYJFMGZNGZOZUWBUWEUVIDKBNGZOZUWAUUOUWGUWAUUOUULDKYJNGZOZUWGUVSUUOUWILUUE
      UVSUULDUUNUWHUVSUUMYJKNYPYIUUMYOFMGYJYNYOFMVOYIYJFYIYJUUAVPYIVRZVSVTWAWBS
      UWAUWIUULDUWFOZUWGUWAUWFUWHWCZUWIUWKPUWAYJBWDHEZUWLUWABWTEZYJWTEZBYJVAVBZ
      UQZUWMYIUWQUUEYPYIUWNUWOUWPBWEZYIYTUWOUUAYJWETYIBBWFVGWIWGBYJWHWJBKYJWKTU
      ULDUWFUWHWLTUWAUULUVIDUWFUWAUUFUWFEZJZUULUVIUWTUUJUVHUUKUWTUUGUVFUUIUVGUW
      TUVFUUGUWTUUEYJKYNWMGZEZUUFUWHEZUVFUUGIUWAUUEUWSUUEUVSWNZRZUWAUXBUWSUWAUX
      BYJKYOWMGZEZUWAYJKYJWMGEZUXGYIUXHUUEYPYIYTUXHUUAYJWOWPWGYJKYJWQTUVSUXBUXG
      LZUUEYPUXIYIYPUXAUXFYJYNYOKWMXAWRRZSQRZUWAUWSUXCYIUWSUXCPUUEYPYIUWFUWHUUF
      BWSXBWGVQUUFYJUUCCXCVKXDUWTUVGUUIUWTUUEUXBUUHUWHEZUVGUUIIUXEUXKUWTUXLUUHK
      BWMGZEZUWSUXNUWAKBUUFXESUWAUXLUXNLZUWSYIUXOUUEYPYIUWHUXMUUHYIUWNUWHUXMIUW
      RUWNUXMUWHKBXFXDTWRWGRQUUHYJUUCCXCVKXDXGXHXKXIXJXLVQUWBUVIDUWDUWFUWAUWDUW
      FIZUUOYIUXPUUEYPYIUWCBKNYIBFBXMUWJVSWAWGRWBQUWAUVLUWELUUOUWAUVIDUVKUWDUWA
      UVJUWCKNUWAUVBYJFMUWAUUEYTYPUVCUXDYIYTUUEYPUUAWGUVSYPUUEYPYIWNSYJUUCCXNVK
      XOWAWBRQXPXQVQXRXSVMDUUKAUUCYRUUQUURUSYAUUTUUEUXBJZUVCUUSYIUXQUUPYPYIUXQP
      ZUUEUUBYPUXRPUUOUUEYPYIUXQUVSUXBUUEUVSUXBUXGYIUXGYPYIYTYOUAEZUVQUXGUUAYIY
      TUXSUUAYJUHTUVRYJYOXTYASUXJQYBYCVIVQVMUUCCYJYDTYIYSUVAUVCJLUUSABYRUIRYEYF
      YGYHXL $.

    $d E i $.  $d S i $.  $d T i $.  $d V i $.
    wwlksnext.v $e |- V = ( Vtx ` G ) $.
    wwlksnext.e $e |- E = ( Edg ` G ) $.
    $( Extension of a walk (as word) by adding an edge/vertex.  (Contributed by
       Alexander van der Vekens, 4-Aug-2018.)  (Revised by AV, 16-Apr-2021.) $)
    wwlksnext $p |- ( ( T e. ( N WWalksN G ) /\ S e. V
                        /\ { ( lastS ` T ) , S } e. E )
                      -> ( T ++ <" S "> ) e. ( ( N + 1 ) WWalksN G ) ) $=
      ( vi co wcel cfv c1 wa wi c0 cc0 cmin cfzo wceq cwwlksn cpr cconcat caddc
      clsw cs1 cvv cn0 cword w3a wwlknbp wne cv chash wral wwlknp cop csn simp1
      cun simprl cats1un syl2an opex snnz neii intnan df-ne un00 xchbinxr mpbir
      wn eqnetrd s1cl ad2antrl ccatcl simplrl simpll adantr fzossfzop1 ad2antlr
      a1i sseld imp wb oveq2 eleq2d adantl mpbird ccats1val1 syl3anc fzonn0p1p1
      eqcomd eleqtrrd exp41 impcom eleq1d ralbidva biimpd ex com23 3impia oveq1
      preq12d ad2antll nn0cn ax-1cn pncan sylancl eqtrd fveq2d fzonn0p1 3eqtr4d
      cc lsw simpr ccats1val2 biimpcd exp4c com12 3adant3 fveq2 ralsng sylanbrc
      ralunb cfz cuz elnn0uz eluzfz2 sylbi fzelp1 fzosplit 3syl cz fzosn uneq2d
      nn0z syl raleqdv oveq1d ccatlen simpl2 s1len oveq12d nn0cnd 3eqtrd oveq2d
      peano2nn0 3jca jca expd cwwlks iswwlks anbi1i syl6bb sylibrd mpcom 3impib
      iswwlksn ) BEDUAJKZAFKZBUELZAUBZCKZBAUFZUCJZEMUDJZDUAJKZDUGKZEUHKZBFUIZKZ
      UJUUTUVAUVDNZUVHOZDEFBGUKUVIUVJUUTUVNOUVLUVIUVJNZUUTUVNUVOUUTNUVMUVFPULZU
      VFUVKKZIUMZUVFLZUVRMUDJZUVFLZUBZCKZIQUVFUNLZMRJZSJZUOZUJZUWDUVGMUDJZTZNZU
      VHUVOUUTUVMUWKOZUVJUUTUWLOUVIUUTUVJUWLUUTUVJUVMUWKUUTUVLBUNLZUVGTZUVRBLZU
      VTBLZUBZCKZIQESJZUOZUJZUVJUVMNZUWKOICDEFBGHUPUXAUXBUWKUXAUXBNZUWHUWJUXCUV
      PUVQUWGUXCUVFBUWMAUQZURZUTZPUXAUVLUVAUVFUXFTUXBUVLUWNUWTUSZUVJUVAUVDVABAF
      VBVCUXFPULZUXCUXHBPTZUXEPTZNZVLUXJUXIUXEPUXDUWMAVDVEVFVGUXHUXFPTUXKUXFPVH
      BUXEVIVJVKWBVMUXAUVLUVEUVKKZUVQUXBUXGUVAUXLUVJUVDAFVNVOZFBUVEVPVCUXCUWGUW
      CIQUVGSJZUOZUXCUXOUWCIUWSEURZUTZUOZUXCUWCIUWSUOZUWCIUXPUOZUXRUXAUXBUXSUVL
      UWNUWTUXBUXSOUVLUWNNZUXBUWTUXSUYAUXBUWTUXSOUYAUXBNZUWTUXSUYBUWRUWCIUWSUYB
      UVRUWSKZNUWQUWBCUYBUYCUWQUWBTZUXBUYAUYCUYDOZUVMUVJUYAUYEOZUVAUVJUYFOUVDUV
      AUVJUYAUYCUYDUVAUVJNZUYANZUYCNZUWOUVSUWPUWAUYIUVSUWOUYIUVLUVAUVRQUWMSJZKZ
      UVSUWOTUYGUVLUWNUYCVQZUYHUVAUYCUVAUVJUYAVRZVSZUYIUYKUVRUXNKZUYHUYCUYOUVJU
      YCUYOOUVAUYAUVJUWSUXNUVREVTWCWAWDUYAUYKUYOWEZUYGUYCUWNUYPUVLUWNUYJUXNUVRU
      WMUVGQSWFZWGWHWAWIAUVRFBWJWKWMUYIUWAUWPUYIUVLUVAUVTUYJKUWAUWPTUYLUYNUYIUV
      TUXNUYJUYCUVTUXNKUYHUVREWLWHUYAUYJUXNTZUYGUYCUWNUYRUVLUYQWHWAWNAUVTFBWJWK
      WMXDWOVSWPWPWDWQWRWSWTXAXBWDUXCUXTEUVFLZUVGUVFLZUBZCKZUXAUXBVUBUVLUWNUXBV
      UBOUWTUXBUYAVUBUVMUVJUYAVUBOZUVDUVAUVJVUCOUVDUVAUVJUYAVUBUYHUVDVUBUYHUVCV
      UACUYHUVBUYSAUYTUYHUWMMRJZBLZEBLZUVBUYSUYHVUDEBUYHVUDUVGMRJZEUWNVUDVUGTUY
      GUVLUWMUVGMRXCXEUVJVUGETZUVAUYAUVJEXNKMXNKZVUHEXFXGEMXHXIWAXJXKUVLUVBVUET
      UYGUWNBUVKXOVOUYHUVLUVAEUYJKZUYSVUFTUYGUVLUWNVAZUYMUYHVUJEUXNKZUVJVULUVAU
      YAEXLWAUWNVUJVULWEUYGUVLUWNUYJUXNEUYQWGXEWIAEFBWJWKXMUYHUYTAUYHUVLUVAUVGU
      WMTZUYTATVUKUYMUYAVUMUYGUYAUWMUVGUVLUWNXPWMWHAUVGFBXQWKWMXDWQXRXSWPWPXTYA
      WDUVJUXTVUBWEUXAUVMUWCVUBIEUHUVRETZUWBVUACVUNUVSUYSUWAUYTUVREUVFYBVUNUVTU
      VGUVFUVREMUDXCXKXDWQYCVOWIUWCIUWSUXPYEYDUXCUWCIUXNUXQUVJUXNUXQTUXAUVMUVJU
      XNUWSEUVGSJZUTZUXQUVJEQEYFJKZEQUVGYFJKUXNVUPTUVJEQYGLKVUQEYHQEYIYJEQEYKQU
      VGEYLYMUVJVUOUXPUWSUVJEYNKVUOUXPTEYQEYOYRYPXJVOYSWIUXCUWCIUWFUXNUXCUWEUVG
      QSUXCUWEUWMUVEUNLZUDJZMRJUWIMRJZUVGUXCUWDVUSMRUXAUVLUXLUWDVUSTUXBUXGUXMFB
      UVEUUAVCZYTUXCVUSUWIMRUXCUWMUVGVURMUDUVLUWNUWTUXBUUBVURMTUXCAUUCWBUUDZYTU
      VJVUTUVGTZUXAUVMUVJUVGXNKVUIVVCUVJUVGEUUHZUUEXGUVGMXHXIVOUUFUUGYSWIUUIUXC
      UWDVUSUWIVVAVVBXJUUJWTYRUUKXTWHWDUVOUVHUWKWEUUTUVOUVHUVFDUULLKZUWJNZUWKUV
      JUVHVVFWEZUVIUVJUVGUHKVVGVVDDUVGUVFUUSYRWHVVEUWHUWJICDFUVFGHUUMUUNUUOVSUU
      PWTYAUUQUUR $.

    $( Extension of a walk (as word) by adding an edge/vertex.  (Contributed by
       Alexander van der Vekens, 5-Aug-2018.)  (Revised by AV, 16-Apr-2021.) $)
    wwlksnextbi $p |- ( ( ( N e. NN0 /\ S e. V ) /\ ( T e. Word V
                      /\ W = ( T ++ <" S "> ) /\ { ( lastS ` T ) , S } e. E ) )
              -> ( W e. ( ( N + 1 ) WWalksN G ) <-> T e. ( N WWalksN G ) ) ) $=
      ( wcel wa co wceq cfv c1 caddc chash cc0 wi csubstr cn0 cword cs1 cconcat
      vi clsw cpr w3a cwwlksn cv cfzo wral wwlknp cop wwlksnred ad2antrr eqeq1d
      wb fveq2 3ad2ant2 adantl anim2i ancoms ccatlen syl s1len a1i oveq2d lencl
      s1cl cc nn0cnd peano2nn0 addcan2d 3bitrd opeq2 eqcoms swrdccat1 sylan9eqr
      1cnd sylbid 3ad2antr1 imp oveq1 ad2antlr mpbird eleq1d biimpd com23 com13
      ex syld mpcom com12 wwlksnext eleq1 syl5ibrcom 3exp com14 3adant1 impbid
      ) EUAJZAFJZKZBFUBZJZGBAUCZUDLZMZBUFNAUGCJZUHZKZGEOPLZDUILZJZBEDUILZJZXOXL
      XQGXEJZGQNZXMOPLZMZUEUJZGNYBOPLGNUGCJUERXMUKLULZUHXOXLXQSZUECDXMFGHIUMYAX
      RXOYDSYCXLXOYAXQXLXOGRXMUNZTLZXPJZYAXQSXBXOYGSXCXKDEGUOUPXLYAYGXQXLYAYGXQ
      SXLYAKZYGXQYHYFBXPYHYFBMZXHYETLZBMZXLYAYKXLYAXHQNZXTMZYKXKYAYMURZXDXIXFYN
      XJXIXSYLXTGXHQUSUQUTVAXDXIXFYMYKSXJXDXFKZYMBQNZXMMZYKYOYMYPXGQNZPLZXTMYPO
      PLZXTMYQYOYLYSXTYOXFXGXEJZKZYLYSMXFXDUUBXDUUAXFXCUUAXBAFVJVAVBVCZFBXGVDVE
      UQYOYSYTXTYOYROYPPYROMYOAVFVGVHUQYOYPXMOXFYPVKJXDXFYPFBVIVLVAXBXMVKJXCXFX
      BXMEVMVLUPYOVTVNVOYOYQYKYQYOYJXHRYPUNZTLZBYQYEUUDXHTYEUUDMXMYPXMYPRVPVQVH
      YOUUBUUEBMUUCFBXGVRVEVSWKWAWBWAWCXKYIYKURZXDYAXIXFUUFXJXIYFYJBGXHYETWDUQU
      TWEWFWGWHWKWIWLWJUTWMWNXDXKXQXOSZXCXKUUGSXBXKXCUUGXIXJXCUUGSZXFXIXJUUHXQX
      JXCXIXOXQXCXJXIXOSZXQXCXJUUIXQXCXJUHXOXIXHXNJABCDEFHIWOGXHXNWPWQWRWIWSWCW
      TWNVAWCXA $.
  $}

  ${
    $d E i $.  $d E y $.  $d G i $.  $d G y $.  $d N i $.  $d N y $.  $d W i $.
    $d W y $.
    wwlksnredwwlkn.e $e |- E = ( Edg ` G ) $.
    $( For each walk (as word) of length at least 1 there is a shorter walk (as
       word).  (Contributed by Alexander van der Vekens, 22-Aug-2018.)
       (Revised by AV, 18-Apr-2021.) $)
    wwlksnredwwlkn $p |- ( N e. NN0 -> ( W e. ( ( N + 1 ) WWalksN G )
              -> E. y e. ( N WWalksN G ) ( ( W substr <. 0 , ( N + 1 ) >. ) = y
                             /\ { ( lastS ` y ) , ( lastS ` W ) } e. E ) ) ) $=
      ( vi wcel c1 caddc co wceq clsw cfv cpr wa cmin syl adantl fveq2d cwwlksn
      cn0 cc0 cop csubstr wrex eqidd cvtx cword chash cfzo wral w3a eqid wwlknp
      cv cfz simprl peano2nn0 cn clt wbr id nn0p1nn cr nn0re peano2re 3jca lttr
      ltp1d syl12anc elfzo0 syl3anbrc fz0add1fz1 syl2anc adantr wb oveq2 eleq2d
      imp mpbird jca 3adantr3 swrd0fvlsw 3ad2ant1 preq12d oveq1 3ad2ant2 preq2d
      lsw nn0cn 1cnd pncand nn0cnd eqtrd wi fveq2 rspcv fzonn0p1 syl11 3ad2ant3
      eleq1d impcom eqeltrd sylan2 wwlksnred preq1d anbi12d rspcedv mp2and ex
      eqeq2 ) DUBHZEDIJKZCUAKHZEUCXNUDUEKZAUPZLZXQMNZEMNZOZBHZPZADCUAKZUFZXMXOP
      ZXPXPLZXPMNZXTOZBHZYEYFXPUGXOXMECUHNZUIZHZEUJNZXNIJKZLZGUPZENZYQIJKZENZOZ
      BHZGUCXNUKKZULZUMZYJGBCXNYKEYKUNFUOXMUUEPZYIXNIQKZENZYNIQKZENZOZBUUFYHUUH
      XTUUJUUFYMXNIYNUQKZHZPZYHUUHLXMYMYPUUNUUDXMYMYPPZPZYMUUMXMYMYPURUUPUUMXNI
      YOUQKZHZXMUURUUOXMYOUBHZDUCYOUKKHZUURXMXNUBHZUUSDUSZXNUSRXMXMYOUTHZDYOVAV
      BZUUTXMVCXMUVAUVCUVBXNVDRXMDVEHZXNVEHZYOVEHZUMZDXNVAVBZXNYOVAVBZUVDXMUVEU
      VHDVFZUVEUVEUVFUVGUVEVCDVGZUVEUVFUVGUVLXNVGRVHRXMDUVKVJXMXNXMUVAUVFUVBXNV
      FRVJUVHUVIUVJPUVDDXNYOVIVTVKDYOVLVMYODVNVOVPUUOUUMUURVQZXMYPUVMYMYPUULUUQ
      XNYNYOIUQVRVSSSWAWBWCXNYKEWDRUUEXTUUJLZXMYMYPUVNUUDEYLWJWESWFUUFUUKDENZXN
      ENZOZBUUFUUKUUHYOIQKZENZOZUVQUUFUUJUVSUUHUUFUUIUVREUUEUUIUVRLZXMYPYMUWAUU
      DYNYOIQWGWHSTWIXMUVTUVQLUUEXMUUHUVOUVSUVPXMUUGDEXMDIDWKXMWLZWMTXMUVRXNEXM
      XNIXMXNUVBWNUWBWMTWFVPWOUUEXMUVQBHZUUDYMXMUWCWPYPDUUCHUUDUWCXMUUBUWCGDUUC
      YQDLZUUAUVQBUWDYRUVOYTUVPYQDEWQUWDYSXNEYQDIJWGTWFXBWRDWSWTXAXCXDXDXEYFYCY
      GYJPZAXPYDXMXOXPYDHCDEXFVTXQXPLZYCUWEVQYFUWFXRYGYBYJXQXPXPXLUWFYAYIBUWFXS
      YHXTXQXPMWQXGXBXHSXIXJXK $.

    $d P y $.
    $( For each walk (as word) of length at least 1 there is a shorter walk (as
       word) starting at the same vertex.  (Contributed by Alexander van der
       Vekens, 22-Aug-2018.)  (Revised by AV, 18-Apr-2021.) $)
    wwlksnredwwlkn0 $p |- ( ( N e. NN0 /\ W e. ( ( N + 1 ) WWalksN G ) )
                         -> ( ( W ` 0 ) = P <-> E. y e. ( N WWalksN G )
                       ( ( W substr <. 0 , ( N + 1 ) >. ) = y /\ ( y ` 0 ) = P
                         /\ { ( lastS ` y ) , ( lastS ` W ) } e. E ) ) ) $=
      ( vi wcel c1 caddc co wa cc0 cfv wceq wi adantl adantr ex cn0 cwwlksn cop
      csubstr cv clsw cpr w3a wrex wwlksnredwwlkn simpl fveq1 eqcoms cvtx cword
      imp chash cfz cfzo wral eqid wwlknp cn cle wbr nn0p1nn cr peano2nn0 nn0re
      lep1 3syl cz nn0zd fznn mpbir2and oveq2 eleq2d syl5ibr jctild 3adant3 syl
      wb impcom swrd0fv0 simprll 3eqtrd simpr reximdva com13 mpcom eqcomd com12
      3jca rexlimdvw impbid ) EUAIZFEJKLZDUBLIZMZNFOZBPZFNWQUCUDLZAUEZPZNXCOZBP
      ZXCUFOFUFOUGCIZUHZAEDUBLZUIZXDXGMZAXIUIZWSXAXJQWPWRXLACDEFGUJUPXAWSXLXJXA
      WSXLXJQXAWSMZXKXHAXIXMXCXIIZMZXKXHXOXKMXDXFXGXKXDXOXDXGUKRXKXOXFXDXOXFQXG
      XDXOXFXDXOMZXENXBOZWTBXDXEXQPZXOXRXCXBNXCXBULUMSXPFDUNOZUOIZWQJFUQOZURLZI
      ZMZXQWTPZXOYDXDXMYDXNWSYDXAWRWPYDWRXTYAWQJKLZPZHUEZFOYHJKLFOUGCIHNWQUSLUT
      ZUHWPYDQZHCDWQXSFXSVAGVBXTYGYJYIXTYGMWPYCXTYGWPYCQXTWPYCYGWQJYFURLZIZWPYL
      WQVCIZWQYFVDVEZEVFWPWQUAIZWQVGIYNEVHZWQVIWQVJVKWPYOYFVLIYLYMYNMWBYPYOYFWQ
      VHVMWQYFVNVKVOYGYBYKWQYAYFJURVPVQVRRXTYGUKVSVTWAWCZRSRWQXSFWDZWAXDXAWSXNW
      EWFTSWCXKXGXOXDXGWGRWMTWHTWIWJWSXHXAAXIXHWSXAXDXFWSXAQXGXDXFMZWSXAYSWSMWT
      XQXEBWSWTXQPYSWSXQWTWSYDYEYQYRWAWKRYSXQXEPZWSXDYTXFNXBXCULSSYSXFWSXDXFWGS
      WFTVTWLWNWO $.
  $}

  ${
    $d G i w $.  $d N i w $.  $d W w $.
    wwlksnextbij0.v $e |- V = ( Vtx ` G ) $.
    wwlksnextbij0.e $e |- E = ( Edg ` G ) $.
    wwlksnextbij0.d $e |- D = { w e. Word V | ( ( # ` w ) = ( N + 2 )
                               /\ ( w substr <. 0 , ( N + 1 ) >. ) = W
                               /\ { ( lastS ` W ) , ( lastS ` w ) } e. E ) } $.
    $( Lemma for ~ wwlksnextbij .  (Contributed by Alexander van der Vekens,
       5-Aug-2018.)  (Revised by AV, 18-Apr-2021.) $)
    wwlksnextwrd $p |- ( W e. ( N WWalksN G )
                         -> D = { w e. ( ( N + 1 ) WWalksN G ) |
                           ( ( w substr <. 0 , ( N + 1 ) >. ) = W
                             /\ { ( lastS ` W ) , ( lastS ` w ) } e. E ) } ) $=
      ( co wcel c2 caddc wceq cc0 c1 wa wi adantr vi cwwlksn cv cfv cop csubstr
      chash clsw cpr w3a cword crab 3anass bianass wb cvv cn0 wwlknbp cs1 simpl
      cconcat c0 wne clt wbr nn0re 2re a1i nn0ge0 2pos addgegt0d breq2 ad2antll
      cr mpbird hashgt0n0 syl2an2 lswcl adantrr swrdcl eleq1 syl5ibr eqcoms imp
      com12 adantl oveq1 cmin nn0cn 2cnd 1cnd addsubassd 2m1e1 oveq2d sylan9eqr
      eqtrd opeq2d oveq1d swrdccatwrd eqtr3d eqtr2d wwlksnextbi syl23anc exbiri
      simprrr com23 3ad2ant2 mpcom expcomd cfzo wral wwlknp 1p1e2 eqeq2d biimpd
      addassd jctild 3adant3 3adant1 impbid ex pm5.32rd syl5bb rabbidva2 syl5eq
      syl ) GEDUBKLZBAUCZUGUDZEMNKZOZYHPEQNKZUEZUFKZGOZGUHUDYHUHUDZUICLZUJZAFUK
      ZULYOYQRZAYLDUBKZULJYGYRYTAYSUUAYHYSLZYRRUUBYKRZYTRZYGYHUUALZYTRYRYKYTUUB
      YKYOYQUMUNYGYTUUCUUEYGYTUUCUUEUOYGYTRUUCUUEYGYTUUCUUESYGUUCYTUUEDUPLZEUQL
      ZGYSLZUJZYGUUDUUESZDEFGHURZUUGUUFYGUUJSUUHUUGUUDYGUUEUUGUUDUUEYGUUGUUDRZU
      UGYPFLZUUHYHGYPUSZVAKZOYQUUEYGUOUUGUUDUTUUGUUCUUMYTUUCUUBUUGYHVBVCZUUMUUB
      YKUTZUUCUUBUUGPYIVDVEZUUPUUQUUGUUCRZUURPYJVDVEZUUGUUTUUCUUGEMEVFMVNLUUGVG
      VHEVIPMVDVEUUGVJVHVKTYKUURUUTUOUUGUUBYIYJPVDVLVMVOYHYSVPVQZFYHVRVQVSUUDUU
      HUUGUUCYTUUHUUBYTUUHSYKYTUUBUUHYOUUBUUHSZYQUVBGYNUUBUUHGYNOYNYSLFYHPYLVTG
      YNYSWAWBWCTWETWDWFUULUUOYNUUNVAKZYHYTUUOUVCOZUUGUUCYOUVDYQUVDGYNGYNUUNVAW
      GWCTVMUUGUUCUVCYHOYTUUSYHPYIQWHKZUEZUFKZUUNVAKZUVCYHUUSUVGYNUUNVAUUSUVFYM
      YHUFUUSUVEYLPUUCUUGUVEYJQWHKZYLYKUVEUVIOUUBYIYJQWHWGWFUUGUVIEMQWHKZNKYLUU
      GEMQEWIZUUGWJUUGWKZWLUUGUVJQENUVJQOUUGWMVHWNWPWOWQWNWRUUCUUBUUGUUPUVHYHOU
      UQUVAFYHWSVQWTVSXAUUGUUCYOYQXEYPGCDEFYHHIXBXCXDXFXGXHXIWDYGUUEUUCSZYTYGUU
      IUVMUUKUUGUUHUVMUUFUUEUUGUUHRZUUCUUEUUBYIYLQNKZOZUAUCZYHUDUVQQNKYHUDUICLU
      APYLXJKXKZUJUVNUUCSZUACDYLFYHHIXLUUBUVPUVSUVRUUBUVPRUVNYKUUBUVPUVNYKSUUBU
      VNUVPYKUUGUVPYKSUUHUUGUVPYKUUGUVOYJYIUUGUVOEQQNKZNKYJUUGEQQUVKUVLUVLXPUUG
      UVTMENUVTMOUUGXMVHWNWPXNXOTWEWFUUBUVPUTXQXRYFWEXSYFTXTYAYBYCYDYE $.

    $d D t $.  $d E n $.  $d E w $.  $d N t w $.  $d R t $.  $d V n $.
    $d V w $.  $d W n $.  $d n t $.
    wwlksnextbij.r $e |- R = { n e. V | { ( lastS ` W ) , n } e. E } $.
    wwlksnextbij.f $e |- F = ( t e. D |-> ( lastS ` t ) ) $.
    $( Lemma for ~ wwlksnextbij .  (Contributed by Alexander van der Vekens,
       7-Aug-2018.)  (Revised by AV, 18-Apr-2021.) $)
    wwlksnextfun $p |- ( N e. NN0 -> F : D --> R ) $=
      ( wcel cfv wa wceq cn0 cv clsw cpr cword chash c2 caddc co cc0 c1 csubstr
      cop w3a fveq2 eqeq1d preq2d eleq1d 3anbi123d elrab2 c0 wne simpll clt wbr
      oveq1 wi nn0re cr 2re a1i nn0ge0 2pos addgegt0d ad2antlr wb adantl mpbird
      breq2 hashgt0n0 syl2anc jca expcom 3ad2ant1 expd impcom lswcl syl simprr3
      sylan2b preq2 sylibr fmptd ) IUAQZBCBUBZUCRZDGWNWOCQZSWPJQZKUCRZWPUDZFQZS
      ZWPDQWQWNWOJUEZQZWOUFRZIUGUHUIZTZWOUJIUKUHUIUMZULUIZKTZXAUNZSZXBAUBZUFRZX
      FTZXMXHULUIZKTZWSXMUCRZUDZFQZUNXKAWOXCCXMWOTZXOXGXQXJXTXAYAXNXEXFXMWOUFUO
      UPYAXPXIKXMWOXHULVFUPYAXSWTFYAXRWPWSXMWOUCUOUQURUSNUTWNXLSZWRXAYBXDWOVAVB
      ZSZWRXLWNYDXKXDWNYDVGXKXDWNYDXGXJXDWNSZYDVGXAYEXGYDYEXGSZXDYCXDWNXGVCZYFX
      DUJXEVDVEZYCYGYFYHUJXFVDVEZWNYIXDXGWNIUGIVHUGVIQWNVJVKIVLUJUGVDVEWNVMVKVN
      VOXGYHYIVPYEXEXFUJVDVSVQVRWOXCVTWAWBWCWDWEWFWFJWOWGWHXGXJXAXDWNWIWBWJWSEU
      BZUDZFQXAEWPJDYJWPTYKWTFYJWPWSWKUROUTWLPWM $.

    $d D d x $.  $d F d x $.  $d N d t w x $.
    $( Lemma for ~ wwlksnextbij .  (Contributed by Alexander van der Vekens,
       7-Aug-2018.)  (Revised by AV, 18-Apr-2021.) $)
    wwlksnextinj $p |- ( N e. NN0 -> F : D -1-1-> R ) $=
      ( wceq wi wa adantr vd vx cn0 wcel wf cv cfv wral wwlksnextfun clsw fveq2
      wf1 wb fvex fvmpt eqeqan12d adantl cword chash c2 caddc co cc0 c1 csubstr
      cop cpr w3a eqeq1d oveq1 preq2d eleq1d 3anbi123d elrab2 cmin eqtr3 expcom
      3ad2ant1 com12 imp simpr 1e2m1 oveq2d nn0cn 2cnd addsubassd eqtr4d eqeq2d
      a1i 1cnd mpbird opeq2 eqeq12d syl biimpd ex com13 impcom 3ad2ant2 3adant3
      com23 imp31 c0 wne simpl anim12i clt wbr nn0re 2re nn0ge0 addgegt0d breq2
      cr 2pos hashgt0n0 sylan2 exp32 jca32 hashneq0 biimprd 2swrd1eqwrdeq ancom
      syl3anc anbi2i 3anass bitr4i syl6bb exp31 syl2anb sylbid ralrimivva dff13
      mpbir3and sylanbrc ) IUCUDZCDGUEUAUFZGUGZUBUFZGUGZQZYQYSQZRZUBCUHUACUHCDG
      ULABCDEFGHIJKLMNOPUIYPUUCUAUBCCYPYQCUDZYSCUDZSZSUUAYQUJUGZYSUJUGZQZUUBUUF
      UUAUUIUMYPUUDUUEYRUUGYTUUHBYQBUFZUJUGZUUGCGUUJYQUJUKPYQUJUNUOBYSUUKUUHCGU
      UJYSUJUKPYSUJUNUOUPUQUUFYPUUIUUBRZUUDYQJURZUDZYQUSUGZIUTVAVBZQZYQVCIVDVAV
      BZVFZVEVBZKQZKUJUGZUUGVGZFUDZVHZSZYSUUMUDZYSUSUGZUUPQZYSUUSVEVBZKQZUVBUUH
      VGZFUDZVHZSZYPUULRUUEAUFZUSUGZUUPQZUVPUUSVEVBZKQZUVBUVPUJUGZVGZFUDZVHZUVE
      AYQUUMCUVPYQQZUVRUUQUVTUVAUWCUVDUWEUVQUUOUUPUVPYQUSUKVIUWEUVSUUTKUVPYQUUS
      VEVJVIUWEUWBUVCFUWEUWAUUGUVBUVPYQUJUKVKVLVMNVNUWDUVNAYSUUMCUVPYSQZUVRUVIU
      VTUVKUWCUVMUWFUVQUVHUUPUVPYSUSUKVIUWFUVSUVJKUVPYSUUSVEVJVIUWFUWBUVLFUWFUW
      AUUHUVBUVPYSUJUKVKVLVMNVNUVFUVOSZYPUUIUUBUWGYPSZUUISZUUBUUOUVHQZUUIYQVCUU
      OVDVOVBZVFZVEVBZYSUWLVEVBZQZUWHUWJUUIUWGUWJYPUVFUVOUWJUVEUVOUWJRZUUNUUQUV
      AUWPUVDUVOUUQUWJUVNUUQUWJRZUVGUVIUVKUWQUVMUUQUVIUWJUUOUVHUUPVPVQVRUQVSVRU
      QVTTTUWHUUIWAUWHUWOUUIUVFUVOYPUWOUVEUVOYPUWORZRZUUNUUQUVAUWSUVDUVOUUQUVAS
      ZUWRUVNUWTUWRRZUVGUVKUVIUXAUVMUWTUVKUWRUVAUUQUVKUWRRUVAUVKUUQUWRUVAUVKUUQ
      UWRRZUVAUVKSUUTUVJQZUXBUUTUVJKVPYPUUQUXCUWOYPUUQUXCUWORYPUUQSZUXCUWOUXDUU
      RUWKQZUXCUWOUMUXDUXEUURUUPVDVOVBZQZYPUXGUUQYPUURIUTVDVOVBZVAVBUXFYPVDUXHI
      VAVDUXHQYPWBWIWCYPIUTVDIWDYPWEYPWJWFWGTUUQUXEUXGUMYPUUQUWKUXFUURUUOUUPVDV
      OVJWHUQWKUXEUUTUWMUVJUWNUXEUUSUWLYQVEUURUWKVCWLZWCUXEUUSUWLYSVEUXIWCWMWNW
      OWPWQWNWPXAWRVSWSUQVSWTUQXBTUWIUUNUVGSZYQXCXDZYSXCXDZSZSZUUBUWJUUIUWOVHZU
      MUWHUXNUUIUWHUXJUXKUXLUWGUXJYPUVFUUNUVOUVGUUNUVEXEUVGUVNXEXFTUWGYPUXKUVFY
      PUXKRZUVOUVEUUNUXPUUQUVAUUNUXPRUVDUUNUUQUXPUUNUUQYPUXKUUQYPSZUUNVCUUOXGXH
      ZUXKUXQUXRVCUUPXGXHZYPUXSUUQYPIUTIXIUTXNUDYPXJWIIXKVCUTXGXHYPXOWIXLZUQUUQ
      UXRUXSUMYPUUOUUPVCXGXMTWKYQUUMXPXQXRVSVRWRTVTUWGYPUXLUVOYPUXLRZUVFUVNUVGU
      YAUVIUVKUVGUYARUVMUVGUVIUYAUVGUVIYPUXLUVIYPSZUVGVCUVHXGXHZUXLUYBUYCUXSYPU
      XSUVIUXTUQUVIUYCUXSUMYPUVHUUPVCXGXMTWKYSUUMXPXQXRVSVRWRUQVTXSTUXNUUBUWJUW
      OUUISZSZUXOUXNUUNUVGUXRUUBUYEUMUXJUUNUXMUUNUVGXETUXJUVGUXMUUNUVGWATUXMUXJ
      UXRUXKUXJUXRRUXLUXJUXKUXRUUNUXKUXRRUVGUUNUXRUXKYQUUMXTYATVSTWRYSJYQYBYDUY
      EUWJUUIUWOSZSUXOUYDUYFUWJUWOUUIYCYEUWJUUIUWOYFYGYHWNYNYIYJWRYKYLUAUBCDGYM
      YO $.

    $d D d r $.  $d E d $.  $d F r $.  $d G d r $.  $d N d n r t w $.
    $d R d r $.  $d V d $.  $d W d i r $.
    $( Lemma for ~ wwlksnextbij .  (Contributed by Alexander van der Vekens,
       7-Aug-2018.)  (Revised by AV, 18-Apr-2021.) $)
    wwlksnextsur $p |- ( W e. ( N WWalksN G ) -> F : D -onto-> R ) $=
      ( vd wcel wceq wa vr vi cwwlksn co wf cfv wrex wral wfo cvv cn0 cword w3a
      cv wwlknbp simp2 wwlksnextfun 3syl clsw cpr preq2 eleq1d elrab2 cc0 caddc
      c1 cop csubstr crab wex cconcat wwlksnext 3expb chash cfzo s1cl swrdccat1
      cs1 wi sylan2 ex adantr opeq2 eqcoms oveq2d eqeq1d adantl sylibrd 3adant3
      wwlknp syl11 impcom lswccats1 eqcomd 3ad2ant3 syl imp preq2d biimpd jca32
      impr ovexd eleq1 oveq1 fveq2 anbi12d eqeq2d bicomd spcimedv mp2and anbi1i
      elrab exbii sylibr df-rex wwlksnextwrd rexeqdv fvex fvmpt rexbiia sylan2b
      wb mpbird ralrimiva dffo3 sylanbrc ) KIHUCUDRZCDGUEZUAUNZQUNZGUFZSZQCUGZU
      ADUHCDGUIYGHUJRZIUKRZKJULZRZUMZYOYHHIJKLUOZYNYOYQUPABCDEFGHIJKLMNOPUQURYG
      YMUADYIDRYGYIJRZKUSUFZYIUTZFRZTZYMUUAEUNZUTZFRUUCEYIJDUUEYISUUFUUBFUUEYIU
      UAVAVBOVCYGUUDTZYIYJUSUFZSZQCUGZYMUUGUUJUUIQAUNZVDIVFVEUDZVGZVHUDZKSZUUAU
      UKUSUFZUTZFRZTZAUULHUCUDZVIZUGZUUGYJUVARZUUITZQVJZUVBUUGYJUUTRZYJUUMVHUDZ
      KSZUUAUUHUTZFRZTZTZUUITZQVJZUVEUUGKYIVRZVKUDZUUTRZUVPUUMVHUDZKSZUUAUVPUSU
      FZUTZFRZTZTZYIUVTSZUVNUUGUVQUVSUWBYGYTUUCUVQYIKFHIJLMVLVMUUDYGUVSYTYGUVSV
      SUUCYQKVNUFZUULSZUBUNZKUFUWHVFVEUDKUFUTFRUBVDIVOUDUHZUMYTUVSYGYQUWGYTUVSV
      SUWIYQUWGTYTUVPVDUWFVGZVHUDZKSZUVSYQYTUWLVSUWGYQYTUWLYTYQUVOYPRUWLYIJVPJK
      UVOVQVTWAWBUWGUVSUWLYBYQUWGUVRUWKKUWGUUMUWJUVPVHUUMUWJSUULUWFUULUWFVDWCWD
      WEWFWGWHWIUBFHIJKLMWJWKWBWLYGYTUUCUWBYGYTTZUUCUWBUWMUUBUWAFUWMYIUVTUUAYGY
      TUWEYGYRYTUWEVSZYSYQYNUWNYOYQYTUWEYQYTTUVTYIYIJKWMWNWAWOZWPWQWRVBWSXAWTUU
      DYGUWEYTYGUWEVSUUCYRYTUWEYGUWOYSWKWBWLUUGUVMUWDUWETZQUVPUJUUGKUVOVKXBUUGY
      JUVPSZTUWPUVMUWQUWPUVMYBUUGUWQUVMUWPUWQUVLUWDUUIUWEUWQUVFUVQUVKUWCYJUVPUU
      TXCUWQUVHUVSUVJUWBUWQUVGUVRKYJUVPUUMVHXDWFUWQUVIUWAFUWQUUHUVTUUAYJUVPUSXE
      ZWRVBXFXFUWQUUHUVTYIUWRXGXFXHWGWSXIXJUVDUVMQUVCUVLUUIUUSUVKAYJUUTUUKYJSZU
      UOUVHUURUVJUWSUUNUVGKUUKYJUUMVHXDWFUWSUUQUVIFUWSUUPUUHUUAUUKYJUSXEWRVBXFX
      LXKXMXNUUIQUVAXOXNUUGUUIQCUVAYGCUVASUUDACFHIJKLMNXPWBXQYCYLUUIQCYJCRYKUUH
      YIBYJBUNZUSUFUUHCGUWTYJUSXEPYJUSXRXSXGXTXNYAYDQUACDGYEYF $.

    $( Lemma for ~ wwlksnextbij .  (Contributed by Alexander van der Vekens,
       7-Aug-2018.)  (Revised by AV, 18-Apr-2021.) $)
    wwlksnextbij0 $p |- ( W e. ( N WWalksN G ) -> F : D -1-1-onto-> R ) $=
      ( cwwlksn co wcel wf1 wfo cvv cn0 cword w3a wwlknbp wwlksnextinj 3ad2ant2
      wf1o syl wwlksnextsur df-f1o sylanbrc ) KIHQRSZCDGTZCDGUACDGUIUNHUBSZIUCS
      ZKJUDSZUEUOHIJKLUFUQUPUOURABCDEFGHIJKLMNOPUGUHUJABCDEFGHIJKLMNOPUKCDGULUM
      $.
  $}

  ${
    $d E f n p t w x $.  $d G f t w x $.  $d N f p t w x $.
    $d V f n p t w x $.  $d W f n p t w x $.
    wwlksnextbij.v $e |- V = ( Vtx ` G ) $.
    wwlksnextbij.e $e |- E = ( Edg ` G ) $.
    $( There is a bijection between the extensions of a walk (as word) by an
       edge and the set of vertices being connected to the trailing vertex of
       the walk.  (Contributed by Alexander van der Vekens, 21-Aug-2018.)
       (Revised by AV, 18-Apr-2021.) $)
    wwlksnextbij $p |- ( W e. ( N WWalksN G )
               -> E. f f : { w e. ( ( N + 1 ) WWalksN G ) |
                             ( ( w substr <. 0 , ( N + 1 ) >. ) = W
                             /\ { ( lastS ` W ) , ( lastS ` w ) } e. E ) }
                       -1-1-onto-> { n e. V | { ( lastS ` W ) , n } e. E } ) $=
      ( vx vt co wcel cv wceq clsw cfv crab cvv vp cwwlksn cc0 c1 caddc csubstr
      cop cpr wa wf1o cmpt ovexd rabexg mptexg 3syl chash w3a cword eqid eleq1d
      c2 preq2 cbvrabv fveq2 eqeq1d oveq1 preq2d 3anbi123d mpteq1i wwlksnextwrd
      wwlksnextbij0 eqcomd mpteq1d eqidd f1oeq123d mpbird f1oeq1 elabd ) HFEUBM
      NZAOZUCFUDUEMZUGZUFMZHPZHQRZVTQRZUHZDNZUIAWAEUBMZSZWECOZUHZDNZCGSZBOZUJWJ
      WNKLOZWBUFMZHPZWEWPQRZUHZDNZUIZLWISZKOQRZUKZUJZBXEVSWITNXCTNXETNVSWAEUBUL
      XBLWITUMKXCXDTUNUOVSXFVTUPRZFVAUEMZPZWDWHUQZAGURZSZWNKWPUPRZXHPZWRXAUQZLX
      KSZXDUKZUJAKXLWNUADXQEFGHIJXLUSZWMWEUAOZUHZDNCUAGWKXSPWLXTDWKXSWEVBUTVCKX
      PXLXDXOXJLAXKWPVTPZXNXIWRWDXAWHYAXMXGXHWPVTUPVDVEYAWQWCHWPVTWBUFVFVEYAWTW
      GDYAWSWFWEWPVTQVDVGUTVHVCVIVKVSWJXLWNWNXEXQVSKXCXPXDVSXPXCLXPDEFGHIJXPUSV
      JVLVMVSXLWJAXLDEFGHIJXRVJVLVSWNVNVOVPWJWNWOXEVQVR $.
  $}

  ${
    $d E f n w $.  $d G f w $.  $d N f w $.  $d V f n w $.  $d W f n w $.
    wwlksnexthasheq.v $e |- V = ( Vtx ` G ) $.
    wwlksnexthasheq.e $e |- E = ( Edg ` G ) $.
    $( The number of the extensions of a walk (as word) by an edge equals the
       number of vertices being connected to the trailing vertex of the walk.
       (Contributed by Alexander van der Vekens, 23-Aug-2018.)  (Revised by AV,
       19-Apr-2021.)  (Proof shortened by AV, 5-May-2021.) $)
    wwlksnexthasheq $p |- ( W e. ( N WWalksN G )
                   -> ( # ` { w e. ( ( N + 1 ) WWalksN G ) |
                              ( ( w substr <. 0 , ( N + 1 ) >. ) = W
                                /\ { ( lastS ` W ) , ( lastS ` w ) } e. E ) } )
                      = ( # ` { n e. V | { ( lastS ` W ) , n } e. E } ) ) $=
      ( vf cv co wceq clsw cfv cpr wcel cwwlksn crab cvv cc0 caddc csubstr wf1o
      c1 cop wa wex chash ovex rabex wwlksnextbij hasheqf1oi mpsyl ) AKZUAEUEUB
      LZUFUCLGMGNOZUONOPCQUGZAUPDRLZSZTQGEDRLQUTUQBKPCQBFSZJKUDJUHUTUIOVAUIOMUR
      AUSUPDRUJUKAJBCDEFGHIULUTVAJTUMUN $.

    $d N y $.  $d V x $.  $d x y $.
    $( Sets of walks (as words) extended by an edge are disjunct if each set
       contains extensions of distinct walks.  (Contributed by Alexander van
       der Vekens, 29-Jul-2018.)  (Revised by AV, 19-Apr-2021.) $)
    disjxwwlksn $p |- Disj_ y e. ( N WWalksN G ) { x e. Word V |
                             ( ( x substr <. 0 , N >. ) = y /\ ( y ` 0 ) = P
                               /\ { ( lastS ` y ) , ( lastS ` x ) } e. E ) } $=
      ( cv cc0 cop csubstr co wceq cfv clsw wcel crab wdisj cpr w3a wss cwwlksn
      cword wral wi simp1 a1i ss2rabi rgenw disjxwrd disjss2 mp2 ) AJZKFLMNBJZO
      ZKUPPCOZUPQPUOQPUADRZUBZAGUEZSZUQAVASZUCZBFEUDNZUFBVEVCTBVEVBTVDBVEUTUQAV
      AUTUQUGUOVARUQURUSUHUIUJUKABFGVEULBVEVBVCUMUN $.
  $}

  ${
    $d G w $.  $d N w $.
    $( Conditions for ` WWalksN ` not being defined.  (Contributed by Alexander
       van der Vekens, 30-Jul-2018.)  (Revised by AV, 19-Apr-2021.) $)
    wwlksnndef $p |- ( ( G e/ _V \/ N e/ NN0 )
                       -> ( N WWalksN G ) = (/) ) $=
      ( vw cwwlksn co c0 wceq cvv wnel cn0 wo wn cv wcel wex neq0 cvtx cfv nnel
      wa cword w3a eqid wwlknbp anbi12i biimpri 3adant3 ioran syl exlimiv sylbi
      sylibr con4i ) BADEZFGZAHIZBJIZKZUOLCMZUNNZCOURLZCUNPUTVACUTAHNZBJNZUSAQR
      ZUANZUBZVAABVDUSVDUCUDVFUPLZUQLZTZVAVBVCVIVEVIVBVCTVGVBVHVCAHSBJSUEUFUGUP
      UQUHULUIUJUKUM $.
  $}

  ${
    $d G i w $.  $d N w $.
    $( The number of walks represented by words of fixed length is finite if
       the number of vertices is finite (in the graph).  (Contributed by
       Alexander van der Vekens, 30-Jul-2018.)  (Revised by AV,
       19-Apr-2021.) $)
    wwlksnfi $p |- ( ( Vtx ` G ) e. Fin -> ( N WWalksN G ) e. Fin ) $=
      ( vw vi cvv wcel cn0 wa cfv cfn co wi cv c0 c1 caddc wceq crab cab wn wne
      cvtx cwwlksn cpr cedg cc0 chash cmin cfzo wral cword cwwlks wwlksn df-rab
      syl6eq adantl w3a wb iswwlks a1i anbi1d abbidv 3anan12 anbi1i anass bitri
      eqid abbii eqtr4i eqtrd adantr peano2nn0 anim2i ancoms wrdnfi simpr rgenw
      wss ss2rab mpbir ssfi sylancl eqeltrd ex wnel wo wwlksnndef ioran anbi12i
      syl nnel sylbb nsyl4 0fin a1d pm2.61i ) AEFZBGFZHZAUBIZJFZBAUCKZJFZLWSXAX
      CWSXAHZXBCMZNUAZDMZXEIXGOPKXEIUDAUEIZFDUFXEUGIZOUHKUIKUJZHZXIBOPKZQZHZCWT
      UKZRZJWSXBXPQXAWSXBXEAULIZFZXMHZCSZXPWRXBXTQWQWRXBXMCXQRXTCABUMXMCXQUNUOU
      PWSXTXFXEXOFZXJUQZXMHZCSZXPWSXSYCCWSXRYBXMXRYBURWSDXHAWTXEWTVGXHVGUSUTVAV
      BYDYAXNHZCSXPYCYECYCYAXKHZXMHYEYBYFXMXFYAXJVCVDYAXKXMVEVFVHXNCXOUNVIUOVJV
      KXDXMCXORZJFZXPYGVRZXPJFXDXAXLGFZHZYHXAWSYKWSYJXAWRYJWQBVLUPVMVNCXLWTVOWJ
      YIXNXMLZCXOUJYLCXOXKXMVPVQXNXMCXOVSVTYGXPWAWBWCWDWSTZXCXAYMXBNJAEWEZBGWEZ
      WFZXBNQWSABWGYPTYNTZYOTZHWSYNYOWHYQWQYRWRAEWKBGWKWIWLWMNJFYMWNUTWCWOWP $.
  $}

  ${
    $d G p $.  $d N p $.
    $( The number of walks of fixed length is finite if the number of vertices
       is finite (in the graph).  (Contributed by Alexander van der Vekens,
       25-Aug-2018.)  (Revised by AV, 20-Apr-2021.) $)
    wlksnfi $p |- ( ( G e. FinUSGraph /\ N e. NN0 )
               -> { p e. ( Walks ` G ) | ( # ` ( 1st ` p ) ) = N } e. Fin ) $=
      ( cfusgr wcel cn0 wa cwwlksn co cfn cv c1st cfv chash wceq cwlks crab cen
      wbr syl cvtx eqid fusgrvtxfi adantr wwlksnfi cusgr fusgrusgr wlknwwlksnen
      cuspgr usgruspgr sylan enfii syl2anc ) ADEZBFEZGZBAHIZJEZCKLMNMBOCAPMQZUQ
      RSZUSJEUPAUAMZJEZURUNVBUOAVAVAUBUCUDABUETUNAUIEZUOUTUNAUFEVCAUGAUJTABCUHU
      KUSUQULUM $.
  $}

  ${
    $d G f p q w $.  $d G p q s t $.  $d N f p q w $.  $d N p q s t $.
    $d X f p w $.
    $( There is a bijection between the set of walks of a fixed length and the
       set of walks represented by words of the same length and starting at the
       same vertex.  (Contributed by Alexander van der Vekens, 30-Sep-2018.)
       (Revised by AV, 20-Apr-2021.) $)
    wlksnwwlknvbij $p |- ( ( G e. USGraph /\ N e. NN0 /\ X e. ( Vtx ` G ) )
         -> E. f f : { p e. ( Walks ` G ) |
                       ( ( # ` ( 1st ` p ) ) = N /\ ( ( 2nd ` p ) ` 0 ) = X ) }
                     -1-1-onto-> { w e. ( N WWalksN G ) | ( w ` 0 ) = X } ) $=
      ( vq vs vt wcel cfv cv c1st chash wceq cc0 c2nd wa crab wf1o cn0 cvtx w3a
      cusgr cwlks cwwlksn co wex cmpt cres fvex mptrabex resex cuspgr usgruspgr
      cvv eqid weq fveq2 fveq2d eqeq1d cbvrabv cbvmptv wlknwwlksnbij 3adant3 wb
      sylan fveq1 3ad2ant3 f1oresrab f1oeq1 spcegv mpsyl cab df-rab anass abbii
      bicomi elrab anbi1i eqtr4i 3eqtri f1oeq2 mp1i exbidv mpbird ) CUDJZDUAJZE
      CUBKJZUCZFLZMKZNKZDOZPWKQKZKZEOZRZFCUEKZSZPALZKZEOZADCUFUGZSZBLZTZBUHWQFG
      LZMKZNKZDOZGWSSZSZXEXFTZBUHZFXLWOUIZXMUJZUPJWJXMXEXQTZXOXPXMXKFGWSWOCUEUK
      ULUMWJWQXCFAXLXDWOXPXPUQWGWHXLXDXPTZWIWGCUNJWHXSCUOHXLXPCDXDIXKILZMKZNKZD
      OGIWSGIURZXJYBDYCXIYANXHXTMUSUTVAVBXDUQFHXLWOHLZQKWKYDQUSVCVDVGVEXAWOOZWJ
      XCWQVFWKXLJZYEXBWPEPXAWOVHVAVIVJXNXRBXQUPXMXEXFXQVKVLVMWJXGXNBWTXMOXGXNVF
      WJWTWKWSJZWRRZFVNYGWNRZWQRZFVNZXMWRFWSVOYHYJFYJYHYGWNWQVPVRVQYKYFWQRZFVNX
      MYJYLFYLYJYFYIWQXKWNGWKWSGFURZXJWMDYMXIWLNXHWKMUSUTVAVSVTVRVQWQFXLVOWAWBW
      TXMXEXFWCWDWEWF $.
  $}

  ${
    wwlksnextprop.x $e |- X = ( ( N + 1 ) WWalksN G ) $.
    $( Lemma 1 for ~ wwlksnextprop .  (Contributed by Alexander van der Vekens,
       31-Jul-2018.)  (Revised by AV, 20-Apr-2021.) $)
    wwlksnextproplem1 $p |- ( ( W e. X /\ N e. NN0 )
                   -> ( ( W substr <. 0 , ( N + 1 ) >. ) ` 0 ) = ( W ` 0 ) ) $=
      ( wcel wa cfv c1 caddc co cfz cc0 wceq cz jca 1z a1i adantl syl cn0 cword
      cvtx chash cop csubstr cwwlksn wwlknbp2 0zd peano2nn0 nn0zd fzssp1 nn0fz0
      wi biimpi sseldi elfz3 mp1i fzadd2 1e0p1 simplr oveq12d eleqtrrd ex simpl
      sylc jctild eleq2s imp swrd0fv0 ) CDFZBUAFZGCAUCHZUBFZBIJKZICUDHZLKZFZGZM
      CMVOUEUFKHMCHNVKVLVSVLVSUNZCVOAUGKZDCWAFVNVPVOIJKZNZGZVTAVOCUHWDVLVRVNWDV
      LVRWDVLGZVOMIJKZWBLKZVQWEMOFZVOOFZGZIOFZWKGZGZBMVOLKZFZIIILKFZGVOWGFVLWMW
      DVLWJWLVLWHWIVLUIVLVOBUJUKPVLWKWKWKVLQRZWQPPSWEWOWPVLWOWDVLMBLKZWNBMBULVL
      BWRFBUMUOUPSWKWPWEQIUQURPIBIMVOIUSVFWEIWFVPWBLIWFNWEUTRVNWCVLVAVBVCVDVNWC
      VEVGTEVHVIVOVMCVJT $.

    $d G i $.  $d E i $.  $d N i $.  $d W i $.
    wwlksnextprop.e $e |- E = ( Edg ` G ) $.
    $( Lemma 2 for ~ wwlksnextprop .  (Contributed by Alexander van der Vekens,
       1-Aug-2018.)  (Revised by AV, 20-Apr-2021.) $)
    wwlksnextproplem2 $p |- ( ( W e. X /\ N e. NN0 )
                            -> { ( lastS ` ( W substr <. 0 , ( N + 1 ) >. ) ) ,
                                 ( lastS ` W ) } e. E ) $=
      ( vi wcel c1 caddc co cfv wi wceq wa adantl fveq2d syl cle cn0 clsw cword
      cc0 cop csubstr cpr cwwlksn cvtx chash cfzo wral w3a eqid wwlknp fzonn0p1
      cv fveq2 oveq1 preq12d eleq1d rspcv imp wb cmin cfz simpll wbr 1zzd lencl
      cz nn0zd ad2antrr peano2nn0 3jca nn0ge0 nn0re addge02d mpbid nn0red lep1d
      1red breq2 syl5ibrcom a1i com23 imp31 jca elfz2 sylanbrc swrd0fvlsw nn0cn
      1cnd pncand eqtrd lsw nn0cnd sylan9eq adantr mpbird exp31 3impia eleq2s )
      DEICUAIZDUDCJKLZUEUFLUBMZDUBMZUGZAIZXDXINZDXEBUHLZEDXKIDBUIMZUCZIZDUJMZXE
      JKLZOZHUQZDMZXRJKLZDMZUGZAIZHUDXEUKLZULZUMXJHABXEXLDXLUNGUOXNXQYEXJXNXQPZ
      XDYEXIYFXDYEXIYFXDPZYEPXICDMZXEDMZUGZAIZYGYEYKYGCYDIZYEYKNXDYLYFCUPQYCYKH
      CYDXRCOZYBYJAYMXSYHYAYIXRCDURYMXTXEDXRCJKUSRUTVAVBSVCYGXIYKVDYEYGXHYJAYGX
      FYHXGYIYGXFXEJVELZDMZYHYGXNXEJXOVFLIZPXFYOOYGXNYPXNXQXDVGYGJVKIZXOVKIZXEV
      KIZUMJXETVHZXEXOTVHZPYPYGYQYRYSYGVIXNYRXQXDXNXOXLDVJZVLVMXDYSYFXDXECVNZVL
      QVOYGYTUUAXDYTYFXDUDCTVHYTCVPXDJCXDWBCVQVRVSQXNXQXDUUAXNXOUAIZXQXDUUANNUU
      BUUDXDXQUUAXDXQUUANNUUDXDUUAXQXEXPTVHXDXEXDXEUUCVTWAXOXPXETWCWDWEWFSWGWHX
      EJXOWIWJWHXEXLDWKSXDYOYHOYFXDYNCDXDCJCWLXDWMZWNRQWOYGXGXOJVELZDMZYIXNXGUU
      GOXQXDDXMWPVMYFXDUUGXPJVELZDMZYIXQUUGUUIOXNXQUUFUUHDXOXPJVEUSRQXDUUHXEDXD
      XEJXDXEUUCWQUUEWNRWRWOUTVAWSWTXAWFXBSFXCVC $.

    $d G w $.  $d N w $.  $d P w $.  $d W w $.
    wwlksnextprop.y $e |- Y = { w e. ( N WWalksN G ) | ( w ` 0 ) = P } $.
    $( Lemma 3 for ~ wwlksnextprop .  (Contributed by Alexander van der Vekens,
       1-Aug-2018.)  (Revised by AV, 20-Apr-2021.) $)
    wwlksnextproplem3 $p |- ( ( W e. X /\ ( W ` 0 ) = P /\ N e. NN0 )
                              -> ( W substr <. 0 , ( N + 1 ) >. ) e. Y ) $=
      ( wcel cc0 cfv wceq c1 co wa syl c2 vi cn0 w3a cop csubstr cwwlksn cwwlks
      caddc wi chash wb peano2nn0 iswwlksn cmin cvv cvtx cword eqid lencl eqcom
      wwlkbp cc nn0cn adantr adantl subadd2 bicomd syl3anc syl5bb biimpi syl6bi
      1cnd ex com23 simpl2im imp opeq2d oveq2d cle wbr simpll nn0ge0 cr 2re a1i
      nn0re addge02d mpbid addassd 1p1e2 eqtrd breqtrrd breq2 mpbird wwlksm1edg
      ad2antlr jca eqeltrd expcom sylbid com12 cfz cv cfzo wral wwlknp peano2re
      cpr lep1d elfz2nn0 syl3anbrc oveq2 eleqtrrd adantll swrd0len exp31 eleq2s
      3adant3 3imp wwlksnextproplem1 3adant2 simp2 fveq1 eqeq1d elrab2 sylanbrc
      ) FGLZMFNZBOZEUBLZUCZFMEPUHQZUDZUEQZEDUFQZLZMYNNZBOZYNHLYGYIYJYPYIYJYPUIU
      IFYLDUFQZGFYSLZYIYJYPYTYIRZYJRZYPYNDUGNZLZYNUJNYLOZRZUUBUUDUUEUUAYJUUDYTY
      JUUDUIYIYJYTUUDYJYTFUUCLZFUJNZYLPUHQZOZRZUUDYJYLUBLZYTUUKUKEULZDYLFUMSUUK
      YJUUDUUKYJRZYNFMUUHPUNQZUDZUEQZUUCUUNYMUUPFUEUUNYLUUOMUUKYJYLUUOOZUUGUUJY
      JUURUIZUUGDUOLFDUPNZUQLZUUJUUSUIZDUUTFUUTURZVAUVAUUHUBLZUVBUUTFUSUVDYJUUJ
      UURUVDYJUUJUURUIUVDYJRZUUJUUOYLOZUURUUJUUIUUHOZUVEUVFUUHUUIUTUVEUUHVBLZPV
      BLZYLVBLZUVGUVFUKUVDUVHYJUUHVCVDUVEVLYJUVJUVDYJUULUVJUUMYLVCSVEUVHUVIUVJU
      CUVFUVGUUHPYLVFVGVHVIUVFUURUUOYLUTVJVKVMVNSVOVPVPVQVRUUNUUGTUUHVSVTZRUUQU
      UCLUUNUUGUVKUUGUUJYJWAUUNUVKTUUIVSVTZYJUVLUUKYJTETUHQZUUIVSYJMEVSVTTUVMVS
      VTEWBYJTETWCLYJWDWEEWFZWGWHYJUUIEPPUHQZUHQUVMYJEPPEVCYJVLZUVPWIYJUVOTEUHU
      VOTOYJWJWEVRWKWLVEUUJUVKUVLUKUUGYJUUHUUITVSWMWPWNWQDFWOSWRWSWTXAVDVPUUBUV
      AYLMUUHXBQZLZRZUUEUUAYJUVSYTYJUVSUIZYIYTUVAUUJUAXCZFNUWAPUHQFNXHCLUAMYLXD
      QXEZUCUVTUACDYLUUTFUVCJXFUVAUUJUVTUWBUVAUUJRZYJUVSUWCYJRUVAUVRUVAUUJYJWAU
      UJYJUVRUVAUUJYJRYLMUUIXBQZUVQYJYLUWDLZUUJYJUULUUIUBLZYLUUIVSVTUWEUUMYJUUL
      UWFUUMYLULSYJYLYJEWCLYLWCLUVNEXGSXIYLUUIXJXKVEUUJUVQUWDOYJUUHUUIMXBXLVDXM
      XNWQVMXRSVDVPUUTFYLXOSWQYJYPUUFUKUUADEYNUMVEWNXPIXQXSYKYQYHBYGYJYQYHOYIDE
      FGIXTYAYGYIYJYBWKMAXCZNZBOYRAYNYOHUWGYNOUWHYQBMUWGYNYCYDKYEYF $.

    $d E y $.  $d N x y $.  $d P y $.  $d X y $.  $d Y y $.  $d w x $.
    $( Adding additional properties to the set of walks (as words) of a fixed
       length starting at a fixed vertex.  (Contributed by Alexander van der
       Vekens, 1-Aug-2018.)  (Revised by AV, 20-Apr-2021.) $)
    wwlksnextprop $p |- ( N e. NN0 -> { x e. X | ( x ` 0 ) = P }
                  = { x e. X | E. y e. Y ( ( x substr <. 0 , ( N + 1 ) >. ) = y
                             /\ ( y ` 0 ) = P
                             /\ { ( lastS ` y ) , ( lastS ` x ) } e. E ) } ) $=
      ( wcel cc0 cfv wceq clsw wa ancoms adantr cn0 cv c1 caddc cop csubstr cpr
      co w3a eqidd wwlksnextproplem1 eqeq2 adantl mpbid wwlksnextproplem2 simpr
      wrex wb simpll wwlksnextproplem3 syl3anc fveq1 eqeq1d fveq2 preq1d eleq1d
      3anbi123d rspcedv mp3and ex wi eqcoms eqcomd syl5ibr syl6bi 3adant3 com12
      imp rexlimdva impbid rabbidva ) GUAMZNAUBZOZDPZWCNGUCUDUHUEUFUHZBUBZPZNWG
      OZDPZWGQOZWCQOZUGZEMZUIZBIUQZAHWBWCHMZRZWEWPWRWEWPWRWERZWFWFPZNWFOZDPZWFQ
      OZWLUGZEMZWPWSWFUJWSXAWDPZXBWRXFWEWQWBXFFGWCHJUKZSTWEXFXBURWRWDDXAULUMUNW
      RXEWEWQWBXEEFGWCHJKUOSTWSWOWTXBXEUIZBWFIWSWQWEWBWFIMWRWQWEWBWQUPTWRWEUPWB
      WQWEUSCDEFGWCHIJKLUTVAWGWFPZWOXHURWSXIWHWTWJXBWNXEWGWFWFULXIWIXADNWGWFVBZ
      VCXIWMXDEXIWKXCWLWGWFQVDVEVFVGUMVHVIVJWRWOWEBIWOWRWGIMZRZWEWHWJXLWEVKZWNW
      HWJXMWHWJXBXMWHWIXADWIXAPWGWFXJVLVCXLWEXBWDXAPZWRXNXKWQWBXNWQWBRXAWDXGVMS
      TWEXNURDXADXAWDULVLVNVOVRVPVQVSVTWA $.

    $d G x $.  $d M y $.  $d X x $.
    $( Sets of walks (as words) extended by an edge are disjunct if each set
       contains extensions of distinct walks.  (Contributed by Alexander van
       der Vekens, 21-Aug-2018.)  (Revised by AV, 20-Apr-2021.) $)
    disjxwwlkn $p |- Disj_ y e. Y { x e. X | ( ( x substr <. 0 , M >. ) = y
                               /\ ( y ` 0 ) = P
                               /\ { ( lastS ` y ) , ( lastS ` x ) } e. E ) } $=
      ( cv cc0 co wceq cfv crab wss cop csubstr clsw wcel cvtx cword wral wdisj
      cpr w3a wi simp1 rgenw ss2rab mpbir c1 caddc cwwlksn cwwlks wwlkssswwlksn
      eqid wwlkssswrd sstri eqsstri rabss2 ax-mp disjxwrd disjss2 mp2 ) ANZOGUA
      UBPBNZQZOVKRDQZVKUCRVJUCRUIEUDZUJZAISZVLAFUERZUFZSZTZBJUGBJVSUHBJVPUHVTBJ
      VPVLAISZVSVPWATVOVLUKZAIUGWBAIVLVMVNULUMVOVLAIUNUOIVRTWAVSTIHUPUQPZFURPZV
      RKWDFUSRVRFWCUTFVQVQVAVBVCVDVLAIVRVEVFVCUMABGVQJVGBJVPVSVHVI $.

    $d G y $.  $d Y x $.
    $( Number of walks (as words) extended by an edge as a sum over the
       prefixes.  (Contributed by Alexander van der Vekens, 21-Aug-2018.)
       (Revised by AV, 20-Apr-2021.) $)
    hashwwlksnext $p |- ( ( Vtx ` G ) e. Fin
                          -> ( # ` { x e. X | E. y e. Y
                              ( ( x substr <. 0 , M >. ) = y /\ ( y ` 0 ) = P
                                /\ { ( lastS ` y ) , ( lastS ` x ) } e. E ) } )
                             = sum_ y e. Y ( # ` { x e. X |
                              ( ( x substr <. 0 , M >. ) = y /\ ( y ` 0 ) = P
                           /\ { ( lastS ` y ) , ( lastS ` x ) } e. E ) } ) ) $=
      ( cfv cfn wcel cv cc0 co wceq cvtx cop csubstr clsw cpr w3a crab wwlksnfi
      cwwlksn wss ssrab2 ssfi sylancl syl5eqel c1 caddc rabfi adantr disjxwwlkn
      syl wdisj a1i hashrabrex ) FUANOPZAQZRGUBUCSBQZTRVFNDTVFUDNVEUDNUEEPUFZAB
      IJVDJRCQNDTZCHFUISZUGZOMVDVIOPVJVIUJVJOPFHUHVHCVIUKVIVJULUMUNVDVGAIUGZOPZ
      VFJPVDIOPVLVDIHUOUPSZFUISOKFVMUHUNVGAIUQUTURBJVKVAVDABCDEFGHIJKLMUSVBVC
      $.
  $}

  ${
    $d G a b $.  $d N a b $.  $d U a b $.  $d V a b $.  $d W a b $.
    wwlksnwwlksnon.v $e |- V = ( Vtx ` G ) $.
    $( A walk of fixed length is a walk of fixed length between two vertices.
       (Contributed by Alexander van der Vekens, 21-Feb-2018.)  (Revised by AV,
       12-May-2021.) $)
    wwlksnwwlksnon $p |- ( ( N e. NN0 /\ G e. U ) -> ( W e. ( N WWalksN G )
                 <-> E. a e. V E. b e. V W e. ( a ( N WWalksNOn G ) b ) ) ) $=
      ( wcel wa co cc0 cfv cv wceq w3a wrex cword cfzo wb cn0 cwwlksn cwwlksnon
      cvtx chash c1 caddc wwlknbp2 adantl eqcomi wrdeqi eleq2i biimpi adantr cn
      nn0p1nn lbfzo0 sylibr ad3antrrr eleq2d ad2antll mpbird wrdsymbcl fzonn0p1
      oveq2 syl2an2 simplr eqidd eqeq2 3anbi2d 3anbi3d syl113anc mpdan ex simp1
      rspc2ev wi a1i rexlimdvva impbid wwlknon bicomd 2rexbidva bitrd ) CUAIZBA
      IZJZECBUBKIZWHLEMZFNZOZCEMZGNZOZPZGDQFDQZEWJWMCBUCKKIZGDQFDQWGWHWPWGWHWPW
      GWHJZEBUDMZRZIZEUEMZCUFUGKZOZJZWPWHXEWGBCEUHUIWRXEJZWIDIZWLDIZWHWIWIOZWLW
      LOZWPXEEDRZIZWRLLXBSKZIZXGXAXLXDXAXLWTXKEWSDDWSHUJUKULUMUNZXFXNLLXCSKZIZW
      EXQWFWHXEWEXCUOIXQCUPXCUQURUSXDXNXQTWRXAXDXMXPLXBXCLSVEZUTVAVBLDEVCVFXEXL
      WRCXMIZXHXOXFXSCXPIZWEXTWFWHXECVDUSXDXSXTTWRXAXDXMXPCXRUTVAVBCDEVCVFWGWHX
      EVGXFWIVHXFWLVHWOWHXIXJPWHXIWNPFGWIWLDDWJWIOWKXIWHWNWJWIWIVIVJWMWLOWNXJWH
      XIWMWLWLVIVKVPVLVMVNWGWOWHFGDDWOWHVQWGWJDIWMDIJZJWHWKWNVOVRVSVTWGWOWQFGDD
      YAWOWQTWGYAWQWOWJWMBCDEHWAWBUIWCWD $.

    $d G a b f $.  $d N f $.  $d U f $.  $d V f $.  $d W f $.
    $( A simple path of fixed length is a simple path of fixed length between
       two vertices.  (Contributed by Alexander van der Vekens, 1-Mar-2018.)
       (Revised by AV, 16-May-2021.) $)
    wspthsnwspthsnon $p |- ( ( N e. NN0 /\ G e. U ) -> ( W e. ( N WSPathsN G )
                <-> E. a e. V E. b e. V W e. ( a ( N WSPathsNOn G ) b ) ) ) $=
      ( vf wcel wa co cv cfv wrex wb wceq c1 wi adantl cwwspthsn cwwlksn cspths
      cn0 wbr wex cwwlksnon cwwspthsnon iswspthn wwlksnwwlksnon anbi1d r19.41vv
      a1i syl6bbr cspthson cc0 chash w3a 3anass cvv vex jctl isspthonpth syl2an
      simpr cwlks spthiswlk wlklenvm1 wwlknon simpl2 cword caddc wwlknbp2 oveq1
      cmin cvtx cc nn0cn pncan1 adantr sylan9eq ex 3ad2ant1 eqtrd fveq2d simpl3
      syl imp exp32 com12 sylbid 3syl pm4.71d 3bitr4rd exbidv pm5.32da wspthnon
      jca bitr4d 2rexbidva 3bitrd ) CUDJZBAJZKZECBUALJZECBUBLJZIMZEBUCNUEZIUFZK
      ZEFMZGMZCBUGLLZJZXIKZGDOFDOZEXKXLCBUHLLJZGDOFDOXEXJPXDIBCEUIUMXDXJXNGDOFD
      OZXIKXPXDXFXRXIABCDEFGHUJUKXNXIFGDDULUNXDXOXQFGDDXDXKDJXLDJKZKZXOXNXGEXKX
      LBUONLUEZIUFZKZXQXTXNXIYBXTXNKZXHYAIYDXHUPENXKQZXGUQNZENZXLQZURZXHYEYHKZK
      ZYAXHYIYKPYDXHYEYHUSUMXTXSXGUTJZXNKYAYIPXNXDXSVEXNYLIVAVBXKXLEXGBDUTXMHVC
      VDYDXHYJXHYDYJXHXGEBVFNUEYFEUQNZRVOLZQZYDYJSEXGBVGEXGBVHYDYOYJXTXNYOYJSZX
      TXNXFYECENZXLQZURZYPXSXNYSPXDXKXLBCDEHVITXDYSYPSZXSXBYTXCYSXBYPYSXBYOYJYS
      XBYOKZKZYEYHXFYEYRUUAVJUUBYGYQXLUUBYFCEUUBYFYNCUUAYOYSXBYOVETYSUUAYNCQZXF
      YEUUAUUCSZYRXFEBVPNVKJZYMCRVLLZQZKZUUDBCEVMUUHUUAUUCUUHUUAYNUUFRVOLZCUUGY
      NUUIQUUEYMUUFRVOVNTXBUUICQZYOXBCVQJUUJCVRCVSWGVTWAWBWGWCWHWDWEXFYEYRUUAWF
      WDWRWIWJVTVTWKWHWJWLWJWMWNWOWPXSXQYCPXDXKXLIBCDEHWQTWSWTXA $.
  $}

  ${
    $d G a b g n w $.  $d N a b w $.  $d V a b $.
    wwlksnon0.v $e |- V = ( Vtx ` G ) $.
    $( Conditions for a set of walks of a fixed length between two vertices to
       be empty.  (Contributed by AV, 15-May-2021.)  (Proof shortened by AV,
       21-May-2021.) $)
    wwlksnon0 $p |- ( -. ( ( N e. NN0 /\ G e. _V ) /\ ( A e. V /\ B e. V ) )
                       -> ( A ( N WWalksNOn G ) B ) = (/) ) $=
      ( vn vg vb va vw cn0 cvv cv cfv wceq wa cwwlksn co crab cmpt2 df-wwlksnon
      cvtx cc0 cwwlksnon wwlksnon 2mpt20 ) GHILMEEABJIHNZUCOZUIUDKNZOJNPZGNZUJO
      INZPQKULUHRSTUAUKDUJOUMPQKDCRSTUEDCJKHGJIUBKMCDEJIFUFUG $.
  $}

  ${
    $d G f p $.  $d N f p $.  $d X f p $.  $d Y f p $.
    $( If the set of simple paths of length at least 1 between two vertices is
       not empty, the two vertices must be different.  (Contributed by
       Alexander van der Vekens, 3-Mar-2018.)  (Revised by AV, 16-May-2021.) $)
    wspthsnonn0vne $p |- ( ( N e. NN /\ ( X ( N WSPathsNOn G ) Y ) =/= (/) )
                           -> X =/= Y ) $=
      ( vp vf co wne wcel wi wa cfv wbr cc0 wceq c1 cmin syl adantr com12 c0 cn
      cwwspthsnon cv wex cn0 cvv cvtx cwwlksnon cspthson eqid wspthnonp cwwlksn
      n0 w3a wb wwlknon adantl cwwlks chash caddc cspths spthonisspth spthispth
      iswwlksn cpths cwlks pthiswlk wlklenvm1 3syl oveq1 eqeq2d simpr cc pncan1
      nncn eqtrd nnne0 eqnetrd spthonepeq necon3bid syl5ibrcom expcom com23 mpd
      syl6bi com13 exlimiv 3ad2ant1 sylbid impd 3impia sylbi impcom ) CDBAUCGGZ
      UAHZBUBIZCDHZWPEUDZWOIZEUEWQWRJZEWOUNWTXAEWTBUFIZAUGIZKZCAUHLZIDXEIKZWSCD
      BAUIGGIZFUDZWSCDAUJLGMZFUEZKZUOXACDFABXEWSXEUKZULXDXFXKXAXDXFKZXGXJXAXMXG
      WSBAUMGIZNWSLCOZBWSLDOZUOZXJXAJZXFXGXQUPXDCDABXEWSXLUQURXQXMXRXNXOXMXRJXP
      XMXNXRXDXNXRJZXFXBXSXCXBXNWSAUSLIZWSUTLZBPVAGZOZKXRABWSVEYCXRXTXJYCXAXIYC
      XAJZFXIXHUTLZYAPQGZOZYDXIXHWSAVBLMXHWSAVFLMZYGCDWSXHAVCWSXHAVDYHXHWSAVGLM
      YGWSXHAVHWSXHAVIRVJYCYGXIXAYCYGYEYBPQGZOZXIXAJYCYFYIYEYAYBPQVKVLYJWQXIWRW
      QYJXIWRJWQYJKZWRXIYENHYKYEBNYKYEYIBWQYJVMWQYIBOZYJWQBVNIYLBVPBVORSVQWQBNH
      YJBVRSVSXICDYENCDWSXHAVTWAWBWCWDWFWGWEWHTURWFSSTWITWJWKWLRWHWMWN $.
  $}

  ${
    $d G f w $.  $d N f w $.
    $( The set of simple paths of a fixed length between two vertices is a
       subset of the set of walks of the fixed length.  (Contributed by AV,
       18-May-2021.) $)
    wspthsswwlkn $p |- ( N WSPathsN G ) C_ ( N WWalksN G ) $=
      ( vw vf cwwspthsn co cwwlksn cv wcel cn0 cvv wa cspths cfv wbr wex simp2d
      wspthnp ssriv ) CBAEFZBAGFZCHZTIBJIAKILUBUAIDHUBAMNODPDABUBRQS $.
  $}

  $( In a finite graph, the set of simple paths of a fixed length is finite.
     (Contributed by Alexander van der Vekens, 4-Mar-2018.)  (Revised by AV,
     18-May-2021.) $)
  wspthnfi $p |- ( ( Vtx ` G ) e. Fin -> ( N WSPathsN G ) e. Fin ) $=
    ( cvtx cfv cfn wcel cwwlksn cwwspthsn wwlksnfi wss wspthsswwlkn a1i ssfid
    co ) ACDEFZBAGNZBAHNZABIQPJOABKLM $.

  ${
    $d A w $.  $d B w $.  $d G w $.  $d N w $.
    $( In a finite graph, the set of walks of a fixed length between two
       vertices is finite.  (Contributed by Alexander van der Vekens,
       4-Mar-2018.)  (Revised by AV, 15-May-2021.) $)
    wwlksnonfi $p |- ( ( Vtx ` G ) e. Fin
                       -> ( A ( N WWalksNOn G ) B ) e. Fin ) $=
      ( vw cn0 wcel cvv wa cvtx cfv cfn cwwlksnon co wi cc0 cv wceq syl c0 crab
      cwwlksn wwlksnfi rabfi eqid iswwlksnon adantl eleq1d syl5ibr wn wwlksnon0
      0fin eleq1 mpbiri a1d pm2.61i ) DFGCHGIZACJKZGBURGIZIZURLGZABDCMNNZLGZOZV
      AVCUTPEQZKARDVEKBRIZEDCUBNZUAZLGZVAVGLGVICDUCVFEVGUDSUTVBVHLUSVBVHRUQEABC
      DURURUEZUFUGUHUIUTUJVBTRZVDABCDURVJUKVKVCVAVKVCTLGULVBTLUMUNUOSUP $.
  $}

  ${
    $d A f w $.  $d B f w $.  $d G f w $.  $d N f w $.
    $( The set of simple paths of a fixed length between two vertices is a
       subset of the set of walks of the fixed length between the two vertices.
       (Contributed by AV, 15-May-2021.) $)
    wspthsswwlknon $p |- ( A ( N WSPathsNOn G ) B )
                           C_ ( A ( N WWalksNOn G ) B ) $=
      ( vw vf cwwspthsnon co cwwlksnon cv wcel cn0 cvv wa cvtx cfv cspthson wbr
      wex w3a eqid wspthnonp simp3l syl ssriv ) EABDCGHHZABDCIHHZEJZUFKDLKCMKNZ
      ACOPZKBUJKNZUHUGKZFJUHABCQPHRFSZNTULABFCDUJUHUJUAUBUIUKULUMUCUDUE $.
  $}

  $( In a finite graph, the set of simple paths of a fixed length between two
     vertices is finite.  (Contributed by Alexander van der Vekens,
     4-Mar-2018.)  (Revised by AV, 15-May-2021.) $)
  wspthnonfi $p |- ( ( Vtx ` G ) e. Fin
                     -> ( A ( N WSPathsNOn G ) B ) e. Fin ) $=
    ( cvtx cfv cfn wcel cwwlksnon cwwspthsnon wwlksnonfi wss wspthsswwlknon a1i
    co ssfid ) CEFGHZABDCIOOZABDCJOOZABCDKSRLQABCDMNP $.

  ${
    $d G p w x y $.  $d N p w x y $.  $d U w x y $.  $d V p w x y $.
    wspniunwspnon.v $e |- V = ( Vtx ` G ) $.
    $( The set of nonempty simple paths of fixed length is the double union of
       the simple paths of the fixed length between different vertices.
       (Contributed by Alexander van der Vekens, 3-Mar-2018.)  (Revised by AV,
       16-May-2021.) $)
    wspniunwspnon $p |- ( ( N e. NN /\ G e. U ) -> ( N WSPathsN G ) =
                U_ x e. V U_ y e. ( V \ { x } ) ( x ( N WSPathsNOn G ) y ) ) $=
      ( vp vw cn wcel wa co cv wrex ciun wne ex rexbidv syl6bbr cwwspthsnon csn
      cwwspthsn cdif cab cn0 nnnn0 wspthsnwspthsnon sylan wspthsnonn0vne adantr
      wb c0 ne0i impel necomd pm4.71rd rexdifsn vex wceq eleq1 elab bitrd eqrdv
      wi dfiunv2 syl6eqr ) EJKZDCKZLZEDUCMZHNZANZBNZEDUAMMZKZBFVMUBUDZOZAFOZHUE
      ZAFBVQVOPPVJIVKVTVJINZVKKZWAVOKZBFOZAFOZWAVTKZVHEUFKVIWBWEULEUGCDEFWAABGU
      HUIVJWEWCBVQOZAFOZWFVJWDWGAFVJWDVNVMQZWCLZBFOWGVJWCWJBFVJWCWIVJWCWIVJWCLV
      MVNVJVOUMQZVMVNQZWCVHWKWLVEVIVHWKWLDEVMVNUJRUKVOWAUNUOUPRUQSWCBFVMURTSVSW
      HHWAIUSVLWAUTZVRWGAFWMVPWCBVQVLWAVOVASSVBTVCVDABHFVQVOVFVG $.
  $}

  ${
    $d G f w $.  $d N f w $.  $d V f w $.  $d f g n w $.
    wspn0.v $e |- V = ( Vtx ` G ) $.
    $( If there are no vertices, then there are no simple paths (of any
       length), too.  (Contributed by Alexander van der Vekens, 11-Mar-2018.)
       (Revised by AV, 16-May-2021.) $)
    wspn0 $p |- ( V = (/) -> ( N WSPathsN G ) = (/) ) $=
      ( vf vw vn vg wcel wa c0 wceq co wi cv cfv chash syl cc0 adantr cwwspthsn
      cn0 cvv cspths wbr wex cwwlksn crab wspthsn a1i wn wral cword c1 wwlknbp2
      cvtx caddc wb syl5eqr wrdeq eleq2d 0wrd0 syl6bb adantl fveq2 hash0 syl6eq
      id eqeq1d wne nn0p1gt0 gt0ne0d eqneqall eqcoms com12 sylbid ex imp impcom
      com3l ralrimiva rabeq0 sylibr eqtrd df-wspthsn mpt2ndm0 a1d pm2.61i ) BUB
      IZAUCIZJZCKLZBAUAMZKLZNWKWLWNWKWLJZWMEOZFOZAUDPUEEUFZFBAUGMZUHZKWMWTLWOFE
      ABUIUJWOWRUKZFWSULWTKLWOXAFWSWQWSIZWOXAXBWQAUPPZUMZIZWQQPZBUNUQMZLZJWOXAN
      ZABWQUOXEXHXIWOXEXHXAWOXEWQKLZXHXANZWLXEXJURWKWLXEWQKUMZIXJWLXDXLWQWLXCKL
      XDXLLWLXCCKDWLVHUSXCKUTRVAWQVBVCVDWKXJXKNZWLWIXMWJWIXJXKWIXJJXHSXGLZXAXJX
      HXNURWIXJXFSXGXJXFKQPSWQKQVEVFVGVIVDWIXNXANZXJWIXGSVJZXOWIXGBVKVLXNXPXAXP
      XANXGSXAXGSVMVNVORTVPVQTTVPVTVRRVSWAWRFWSWBWCWDVQWKUKWNWLGHWPWQHOZUDPUEEU
      FFGOXQUGMUHUABAUBUCFEHGWEWFWGWH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Walks/paths of length 2 (as length 3 strings)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    2wlkd.p $e |- P = <" A B C "> $.
    2wlkd.f $e |- F = <" J K "> $.
    $( Lemma 1 for ~ 2wlkd .  (Contributed by AV, 14-Feb-2021.) $)
    2wlkdlem1 $p |- ( # ` P ) = ( ( # ` F ) + 1 ) $=
      ( chash cfv cs3 c1 caddc co fveq2i c2 c3 s3len eqtri s2len eqtr2i oveq1i
      df-3 cs2 ) DJKABCLZJKZEJKZMNOZDUFJHPUGQMNOZUIUGRUJABCSUDTQUHMNUHFGUEZJKQE
      UKJIPFGUAUBUCTT $.

    $( Lemma 2 for ~ 2wlkd .  (Contributed by AV, 14-Feb-2021.) $)
    2wlkdlem2 $p |- ( 0 ..^ ( # ` F ) ) = { 0 , 1 } $=
      ( cc0 chash cfv cfzo co c2 c1 cpr cs2 fveq2i eqtri s2len oveq2i fzo0to2pr
      ) JEKLZMNJOMNJPQUDOJMUDFGRZKLOEUEKISFGUATUBUCT $.

    2wlkd.s $e |- ( ph -> ( A e. V /\ B e. V /\ C e. V ) ) $.
    $( Lemma 3 for ~ 2wlkd .  (Contributed by AV, 14-Feb-2021.) $)
    2wlkdlem3 $p |- ( ph
                    -> ( ( P ` 0 ) = A /\ ( P ` 1 ) = B /\ ( P ` 2 ) = C ) ) $=
      ( wcel cc0 cfv wceq c1 c2 fveq1i syl5eq w3a cs3 s3fv0 s3fv1 3anim123i syl
      s3fv2 ) ABIMZCIMZDIMZUANEOZBPZQEOZCPZREOZDPZUALUHULUIUNUJUPUHUKNBCDUBZOBN
      EUQJSBCDIUCTUIUMQUQOCQEUQJSBCDIUDTUJUORUQODREUQJSBCDIUGTUEUF $.

    $d F k $.  $d P k $.  $d V k $.
    $( Lemma 4 for ~ 2wlkd .  (Contributed by AV, 14-Feb-2021.) $)
    2wlkdlem4 $p |- ( ph -> A. k e. ( 0 ... ( # ` F ) ) ( P ` k ) e. V ) $=
      ( cc0 cfv wcel c1 c2 wceq eleq1d w3a cv chash cfz co wral 2wlkdlem3 simp1
      wb simp2 simp3 3anbi123d bicomd syl mpbid fveq2i s2len eqtri oveq2i fz0tp
      ctp cs2 raleqi c0ex 1ex 2ex fveq2 raltp bitri sylibr ) ANEOZJPZQEOZJPZREO
      ZJPZUAZFUBZEOZJPZFNGUCOZUDUEZUFZABJPZCJPZDJPZUAZVQMAVKBSZVMCSZVODSZUAZWGV
      QUIABCDEGHIJKLMUGWKVQWGWKVLWDVNWEVPWFWKVKBJWHWIWJUHTWKVMCJWHWIWJUJTWKVODJ
      WHWIWJUKTULUMUNUOWCVTFNQRVAZUFVQVTFWBWLWBNRUDUEWLWARNUDWAHIVBZUCORGWMUCLU
      PHIUQURUSUTURVCVTVLVNVPFNQRVDVEVFVRNSVSVKJVRNEVGTVRQSVSVMJVRQEVGTVRRSVSVO
      JVRREVGTVHVIVJ $.

    2wlkd.n $e |- ( ph -> ( A =/= B /\ B =/= C ) ) $.
    $( Lemma 5 for ~ 2wlkd .  (Contributed by AV, 14-Feb-2021.) $)
    2wlkdlem5 $p |- ( ph -> A. k e. ( 0 ..^ ( # ` F ) )
                             ( P ` k ) =/= ( P ` ( k + 1 ) ) ) $=
      ( cc0 cfv c1 wne caddc wceq c2 wa cv co chash cfzo w3a wb 2wlkdlem3 simp1
      wral simp2 neeq12d simp3 anbi12d bicomd syl cpr 2wlkdlem2 raleqi c0ex 1ex
      mpbid fveq2 oveq1 0p1e1 syl6eq fveq2d 1p1e2 ralpr bitri sylibr ) AOEPZQEP
      ZRZVNUAEPZRZUBZFUCZEPZVSQSUDZEPZRZFOGUEPUFUDZUKZABCRZCDRZUBZVRNAVMBTZVNCT
      ZVPDTZUGZWHVRUHABCDEGHIJKLMUIWLVRWHWLVOWFVQWGWLVMBVNCWIWJWKUJWIWJWKULZUMW
      LVNCVPDWMWIWJWKUNUMUOUPUQVCWEWCFOQURZUKVRWCFWDWNBCDEGHIKLUSUTWCVOVQFOQVAV
      BVSOTZVTVMWBVNVSOEVDWOWAQEWOWAOQSUDQVSOQSVEVFVGVHUMVSQTZVTVNWBVPVSQEVDWPW
      AUAEWPWAQQSUDUAVSQQSVEVIVGVHUMVJVKVL $.

    $d F j k $.  $d P j $.
    $( Lemma 1 for ~ 2pthd .  (Contributed by AV, 14-Feb-2021.) $)
    2pthdlem1 $p |- ( ph -> A. k e. ( 0 ..^ ( # ` P ) )
                            A. j e. ( 1 ..^ ( # ` F ) )
                            ( k =/= j -> ( P ` k ) =/= ( P ` j ) ) ) $=
      ( c1 wne cfv cc0 c2 cv wi chash cfzo co wral w3a wa 2wlkdlem3 simpl simpr
      wceq wb neeq12d bicomd 3adant3 biimpcd adantr imp a1d eqid eqneqall necom
      mp1i syl6rbb 3adant1 adantl 3jca syl2anc ctp c3 fveq2i s3len eqtri oveq2i
      cs3 fzo0to3tp raleqi c0ex 1ex 2ex neeq1 fveq2 neeq1d imbi12d raltp sylibr
      bitri csn cs2 s2len fzo12sn neeq2 neeq2d ralsn ralbii ) AGUAZPQZWQERZPERZ
      QZUBZGSEUCRZUDUEZUFZWQFUAZQZWSXFERZQZUBZFPHUCRZUDUEZUFZGXDUFASPQZSERZWTQZ
      UBZPPQZWTWTQZUBZTPQZTERZWTQZUBZUGZXEABCQZCDQZUHZXOBULZWTCULZYBDULZUGZYEOA
      BCDEHIJKLMNUIYHYLUHZXQXTYDYMXPXNYHYLXPYFYLXPUBYGYLYFXPYIYJYFXPUMYKYIYJUHZ
      XPYFYNXOBWTCYIYJUJYIYJUKUNUOUPUQURUSUTPPULXTYMPVAXSPPVBVDYMYCYAYHYLYCYGYL
      YCUBYFYLYGYCYJYKYGYCUMYIYJYKUHZYCDCQYGYOYBDWTCYJYKUKYJYKUJUNDCVCVEVFUQVGU
      SUTVHVIXEXBGSPTVJZUFYEXBGXDYPXDSVKUDUEYPXCVKSUDXCBCDVPZUCRVKEYQUCLVLBCDVM
      VNVOVQVNVRXBXQXTYDGSPTVSVTWAWQSULZWRXNXAXPWQSPWBYRWSXOWTWQSEWCWDWEWQPULZW
      RXRXAXSWQPPWBYSWSWTWTWQPEWCWDWEWQTULZWRYAXAYCWQTPWBYTWSYBWTWQTEWCWDWEWFWH
      WGXMXBGXDXMXJFPWIZUFXBXJFXLUUAXLPTUDUEUUAXKTPUDXKIJWJZUCRTHUUBUCMVLIJWKVN
      VOWLVNVRXJXBFPVTXFPULZXGWRXIXAXFPWQWMUUCXHWTWSXFPEWCWNWEWOWHWPWG $.

    2wlkd.e $e |- ( ph -> ( { A , B } C_ ( I ` J )
                          /\ { B , C } C_ ( I ` K ) ) ) $.
    $( Lemma 6 for ~ 2wlkd .  (Contributed by AV, 23-Jan-2021.) $)
    2wlkdlem6 $p |- ( ph -> ( B e. ( I ` J ) /\ B e. ( I ` K ) ) ) $=
      ( cpr cfv wss wa wcel prcom sseq1i biimpi adantl wb simp2d prssg syl2an2r
      simp1d adantr mpbird simpld ex simpr simp3d anim12d mpd ) ABCPZHGQZRZCDPI
      GQZRZSCUSTZCVATZSOAUTVCVBVDAUTVCAUTSZVCBUSTZVEVCVFSZCBPZUSRZUTVIAUTVIURVH
      USBCUAUBUCUDACJTZUTBJTZVGVIUEAVKVJDJTZMUFZAVKUTAVKVJVLMUIUJCBUSJJUGUHUKUL
      UMAVBVDAVBSZVDDVATZVNVDVOSZVBAVBUNAVJVBVLVPVBUEVMAVLVBAVKVJVLMUOUJCDVAJJU
      GUHUKULUMUPUQ $.

    $( Lemma 7 for ~ 2wlkd .  (Contributed by AV, 14-Feb-2021.) $)
    2wlkdlem7 $p |- ( ph -> ( J e. _V /\ K e. _V ) ) $=
      ( cfv wcel wa cvv elfvex 2wlkdlem6 anim12i syl ) ACHGPQZCIGPQZRHSQZISQZRA
      BCDEFGHIJKLMNOUAUDUFUEUGCHGTCIGTUBUC $.

    $( Lemma 8 for ~ 2wlkd .  (Contributed by AV, 14-Feb-2021.) $)
    2wlkdlem8 $p |- ( ph -> ( ( F ` 0 ) = J /\ ( F ` 1 ) = K ) ) $=
      ( cc0 cfv wceq c1 cvv wa wcel 2wlkdlem7 s2fv0 s2fv1 anim12i fveq1i eqeq1i
      cs2 syl anbi12i sylibr ) APHIUIZQZHRZSUMQZIRZUAZPFQZHRZSFQZIRZUAAHTUBZITU
      BZUAURABCDEFGHIJKLMNOUCVCUOVDUQHITUDHITUEUFUJUTUOVBUQUSUNHPFUMLUGUHVAUPIS
      FUMLUGUHUKUL $.

    $( Lemma 9 for ~ 2wlkd .  (Contributed by AV, 14-Feb-2021.) $)
    2wlkdlem9 $p |- ( ph -> ( { A , B } C_ ( I ` ( F ` 0 ) )
                            /\ { B , C } C_ ( I ` ( F ` 1 ) ) ) ) $=
      ( cpr cfv wss wa wceq cc0 c1 2wlkdlem8 fveq2 adantr sseq2d adantl anbi12d
      wb syl mpbird ) ABCPZUAFQZGQZRZCDPZUBFQZGQZRZSZULHGQZRZUPIGQZRZSZOAUMHTZU
      QITZSZUTVEUIABCDEFGHIJKLMNOUCVHUOVBUSVDVHUNVAULVFUNVATVGUMHGUDUEUFVHURVCU
      PVGURVCTVFUQIGUDUGUFUHUJUK $.

    $d I k $.
    $( Lemma 10 for ~ 3wlkd .  (Contributed by AV, 14-Feb-2021.) $)
    2wlkdlem10 $p |- ( ph -> A. k e. ( 0 ..^ ( # ` F ) )
                    { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) $=
      ( cc0 cfv c1 wceq cpr wss c2 wa cv caddc co chash cfzo wral 2wlkdlem9 w3a
      2wlkdlem3 preq12 3adant3 sseq1d 3adant1 anbi12d syl mpbird 2wlkdlem2 c0ex
      wb raleqi 1ex fveq2 oveq1 0p1e1 syl6eq fveq2d preq12d sseq12d 1p1e2 ralpr
      bitri sylibr ) AQERZSERZUAZQGRZHRZUBZVRUCERZUAZSGRZHRZUBZUDZFUEZERZWISUFU
      GZERZUAZWIGRZHRZUBZFQGUHRUIUGZUJZAWHBCUAZWAUBZCDUAZWFUBZUDZABCDEGHIJKLMNO
      PUKAVQBTZVRCTZWCDTZULZWHXCVCABCDEGIJKLMNUMXGWBWTWGXBXGVSWSWAXDXEVSWSTXFVQ
      VRBCUNUOUPXGWDXAWFXEXFWDXATXDVRWCCDUNUQUPURUSUTWRWPFQSUAZUJWHWPFWQXHBCDEG
      IJLMVAVDWPWBWGFQSVBVEWIQTZWMVSWOWAXIWJVQWLVRWIQEVFXIWKSEXIWKQSUFUGSWIQSUF
      VGVHVIVJVKXIWNVTHWIQGVFVJVLWISTZWMWDWOWFXJWJVRWLWCWISEVFXJWKUCEXJWKSSUFUG
      UCWISSUFVGVMVIVJVKXJWNWEHWISGVFVJVLVNVOVP $.

    $d G k $.  $d ph k $.
    2wlkd.v $e |- V = ( Vtx ` G ) $.
    2wlkd.i $e |- I = ( iEdg ` G ) $.
    $( Construction of a walk from two given edges in a graph.  (Contributed by
       Alexander van der Vekens, 5-Feb-2018.)  (Revised by AV, 23-Jan-2021.)
       (Proof shortened by AV, 14-Feb-2021.)  (Revised by AV, 24-Mar-2021.) $)
    2wlkd $p |- ( ph -> F ( Walks ` G ) P ) $=
      ( vk wcel cvv cword cs3 s3cli eqeltri a1i cs2 s2cli chash cfv c1 caddc co
      wceq 2wlkdlem1 2wlkdlem10 2wlkdlem5 w3a 1vgrex 3ad2ant1 2wlkdlem4 wlkd
      syl ) AESFGHKUAEUAUBZTAEBCDUCVDLBCDUDUEUFFVDTAFIJUGVDMIJUHUEUFEUIUJFUIUJU
      KULUMUNABCDEFIJLMUOUFABCDESFHIJKLMNOPUPABCDESFIJKLMNOUQABKTZCKTZDKTZURGUA
      TZNVEVFVHVGGBKQUSUTVCQRABCDESFIJKLMNVAVB $.

    $( A walk of length 2 from one vertex to another, different vertex via a
       third vertex.  (Contributed by Alexander van der Vekens, 6-Dec-2017.)
       (Revised by AV, 30-Jan-2021.)  (Revised by AV, 24-Mar-2021.) $)
    2wlkond $p |- ( ph -> F ( A ( WalksOn ` G ) C ) P ) $=
      ( cfv wcel cwlkson wbr cwlks cc0 wceq chash 2wlkd simp1d cs3 fveq1i s3fv0
      co syl5eq syl c2 cs2 fveq2i s2len eqtri fveq12i simp3d s3fv2 wa cvv cword
      w3a wb 3simpb s2cli eqeltri s3cli pm3.2i iswlkon sylancl mpbir3and ) AFEB
      DGUASULUBZFEGUCSUBZUDESZBUEZFUFSZESZDUEZABCDEFGHIJKLMNOPQRUGABKTZVSAWCCKT
      ZDKTZNUHWCVRUDBCDUIZSBUDEWFLUJBCDKUKUMUNAWAUOWFSZDVTUOEWFLVTIJUPZUFSUOFWH
      UFMUQIJURUSUTAWEWGDUEAWCWDWENVABCDKVBUNUMAWCWEVCZFVDVEZTZEWJTZVCVPVQVSWBV
      FVGAWCWDWEVFWINWCWDWEVHUNWKWLFWHWJMIJVIVJEWFWJLBCDVKVJVLBDEWJFGKWJQVMVNVO
      $.

    2trld.n $e |- ( ph -> J =/= K ) $.
    $( Construction of a trail from two given edges in a graph.  (Contributed
       by Alexander van der Vekens, 4-Dec-2017.)  (Revised by AV, 24-Jan-2021.)
       (Revised by AV, 24-Mar-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
    2trld $p |- ( ph -> F ( Trails ` G ) P ) $=
      ( cvv cwlks cfv wbr ccnv wfun ctrls 2wlkd cs2 wne w3a wa 2wlkdlem7 df-3an
      wcel sylanbrc funcnvs2 syl cnveqi funeqi sylibr istrl ) AFEGUAUBUCFUDZUEZ
      FEGUFUBUCABCDEFGHIJKLMNOPQRUGAIJUHZUDZUEZVCAITUNZJTUNZIJUIZUJZVFAVGVHUKVI
      VJABCDEFHIJKLMNOPULSVGVHVIUMUOIJTUPUQVBVEFVDMURUSUTEFGVAUO $.

    $( A trail of length 2 from one vertex to another, different vertex via a
       third vertex.  (Contributed by Alexander van der Vekens, 6-Dec-2017.)
       (Revised by AV, 30-Jan-2021.)  (Revised by AV, 24-Mar-2021.) $)
    2trlond $p |- ( ph -> F ( A ( TrailsOn ` G ) C ) P ) $=
      ( wcel ctrlson cfv co wbr cwlkson ctrls 2wlkond 2trld cvv cword wa simp1d
      wb simp3d cs2 s2cli eqeltri a1i cs3 s3cli istrlson syl22anc mpbir2and ) A
      FEBDGUAUBUCUDZFEBDGUEUBUCUDZFEGUFUBUDZABCDEFGHIJKLMNOPQRUGABCDEFGHIJKLMNO
      PQRSUHABKTZDKTZFUIUJZTZEVITZVDVEVFUKUMAVGCKTZVHNULAVGVLVHNUNVJAFIJUOVIMIJ
      UPUQURVKAEBCDUSVILBCDUTUQURBDEVIFGKVIQVAVBVC $.

    $d ph j $.
    $( A path of length 2 from one vertex to another vertex via a third vertex.
       (Contributed by Alexander van der Vekens, 6-Dec-2017.)  (Revised by AV,
       24-Jan-2021.)  (Revised by AV, 24-Mar-2021.) $)
    2pthd $p |- ( ph -> F ( Paths ` G ) P ) $=
      ( chash vk vj cfv cvv cword wcel cs3 s3cli eqeltri a1i c2 c3 c1 co fveq2i
      cmin cs2 s2len eqtri 3m1e2 s3len eqtr2i 3eqtr2i 2pthdlem1 eqid 2trld pthd
      oveq1i ) AEFTUCZUAUBFGEUDUEZUFAEBCDUGZVJLBCDUHUIUJVIUKULUMUPUNETUCZUMUPUN
      VIIJUQZTUCUKFVMTMUOIJURUSUTULVLUMUPVLVKTUCULEVKTLUOBCDVAVBVHVCABCDEUBUAFI
      JKLMNOVDVIVEABCDEFGHIJKLMNOPQRSVFVG $.

    2spthd.n $e |- ( ph -> A =/= C ) $.
    $( A simple path of length 2 from one vertex to another, different vertex
       via a third vertex.  (Contributed by Alexander van der Vekens,
       1-Feb-2018.)  (Revised by AV, 24-Jan-2021.)  (Revised by AV,
       24-Mar-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
    2spthd $p |- ( ph -> F ( SPaths ` G ) P ) $=
      ( ctrls cfv wbr ccnv wfun cspths 2trld cs3 wcel w3a wne sylanbrc funcnvs3
      wa 3anan32 syl2anc wceq a1i cnveqd funeqd mpbird isspth ) AFEGUAUBUCEUDZU
      EZFEGUFUBUCABCDEFGHIJKLMNOPQRSUGAVDBCDUHZUDZUEZABKUICKUIDKUIUJBCUKZBDUKZC
      DUKZUJZVGNAVHVJUNVIVKOTVHVIVJUOULBCDKUMUPAVCVFAEVEEVEUQALURUSUTVAEFGVBUL
      $.

    $( A simple path of length 2 from one vertex to another, different vertex
       via a third vertex.  (Contributed by Alexander van der Vekens,
       6-Dec-2017.)  (Revised by AV, 24-Jan-2021.)  (Proof shortened by AV,
       30-Jan-2021.)  (Revised by AV, 24-Mar-2021.) $)
    2pthond $p |- ( ph -> F ( A ( SPathsOn ` G ) C ) P ) $=
      ( cspthson cfv co wbr ctrlson cspths 2trlond 2spthd wcel wa cvv cword w3a
      3simpb syl cs2 s2cli eqeltri cs3 s3cli pm3.2i isspthson sylancl mpbir2and
      wb ) AFEBDGUAUBUCUDZFEBDGUEUBUCUDZFEGUFUBUDZABCDEFGHIJKLMNOPQRSUGABCDEFGH
      IJKLMNOPQRSTUHABKUIZDKUIZUJZFUKULZUIZEVLUIZUJVFVGVHUJVEAVICKUIZVJUMVKNVIV
      OVJUNUOVMVNFIJUPVLMIJUQUREBCDUSVLLBCDUTURVABDEVLFGKVLQVBVCVD $.
  $}

  ${
    $d A f i j p $.  $d B f i j p $.  $d C f i j p $.  $d G f i j p $.
    $d V i j $.
    2pthon3v.v $e |- V = ( Vtx ` G ) $.
    2pthon3v.e $e |- E = ( Edg ` G ) $.
    $( For a vertex adjacent to two other vertices there is a simple path of
       length 2 between these other vertices in a hypergraph.  (Contributed by
       Alexander van der Vekens, 4-Dec-2017.)  (Revised by AV, 24-Jan-2021.) $)
    2pthon3v $p |- ( ( ( G e. UHGraph /\ ( A e. V /\ B e. V /\ C e. V ) )
                          /\ ( A =/= B /\ A =/= C /\ B =/= C )
                          /\ ( { A , B } e. E /\ { B , C } e. E ) )
            -> E. f E. p ( f ( A ( SPathsOn ` G ) C ) p /\ ( # ` f ) = 2 ) ) $=
      ( vi vj wcel wa cfv wceq wb adantr wi com12 cuhgr w3a wne cpr cv cspthson
      co wbr chash c2 wex ciedg cdm wrex crn edgval eqtri eleq2i wfn cpw c0 csn
      cedg cdif eqid ffnd fvelrnb syl syl5bb anbi12d reeanv syl6bbr cs2 cvv cs3
      uhgrf cs1 cconcat df-s2 ovexi df-s3 pm3.2i simp-4r 3simpb eqimss2 anim12i
      ad3antlr wss adantl fveq2 eqeq1d anbi1d wo 3simpa 3simpc preq12bg syl2anc
      eqtr2 eqneqall 3ad2ant1 3ad2ant2 jaoi com23 imp pm2.61ine simplr2 2pthond
      syl6bi 2a1 s2len jctir breq12 spc2egv mpsyl ex rexlimdvva sylbid 3impia )
      FUAMZAGMZBGMZCGMZUBZNZABUCZACUCZBCUCZUBZABUDZEMZBCUDZEMZNZDUEZHUEZACFUFOU
      GZUHZYNUIOZUJPZNZHUKDUKZYDYHNZYMKUEZFULOZOZYIPZLUEZUUDOZYKPZNZLUUDUMZUNKU
      UKUNZUUAUUBYMUUFKUUKUNZUUILUUKUNZNZUULYDYMUUOQZYHXSUUPYCXSYJUUMYLUUNYJYIU
      UDUOZMZXSUUMEUUQYIEFVCOUUQJFUPUQZURXSUUDUUKUSZUURUUMQXSUUKGUTVAVBVDUUDUUD
      FGIUUDVEZVPVFZKUUKYIUUDVGVHVIYLYKUUQMZXSUUNEUUQYKUUSURXSUUTUVCUUNQUVBLUUK
      YKUUDVGVHVIVJRRUUFUUIKLUUKUUKVKVLUUBUUJUUAKLUUKUUKUUBUUCUUKMUUGUUKMNZNZUU
      JUUAUUCUUGVMZVNMZABCVOZVNMZNUVEUUJNZUVFUVHYPUHZUVFUIOZUJPZNZUUAUVGUVIUVFU
      UCVQUUGVQVRUUCUUGVSVTUVHABVMCVQVRABCWAVTWBUVJUVKUVMUVJABCUVHUVFFUUDUUCUUG
      GUVHVEUVFVEXSYCYHUVDUUJWCYHYEYGNYDUVDUUJYEYFYGWDWGUUJYIUUEWHZYKUUHWHZNUVE
      UUFUVOUUIUVPYIUUEWEYKUUHWEWFWIIUVAUVEUUJUUCUUGUCZUUBUUJUVQSZUVDUUBUVRSUUC
      UUGUUCUUGPZUUJUUBUVQUVSUUJUUHYIPZUUINZUUBUVQSZUVSUUFUVTUUIUVSUUEUUHYIUUCU
      UGUUDWJWKWLUWAYIYKPZUWBUUHYIYKWRUUBUWCUVQYDYHUWCUVQSZYCYHUWDSXSYCUWCYHUVQ
      YCUWCABPZBCPZNZACPZBBPZNZWMZYHUVQSZYCXTYANYAYBNUWCUWKQXTYAYBWNXTYAYBWOABB
      CGGGGWPWQUWGUWLUWJUWEUWLUWFYHUWEUVQYEYFUWEUVQSYGUWEYEUVQUVQABWSTWTTRUWHUW
      LUWIYHUWHUVQYFYEUWHUVQSYGUWHYFUVQUVQACWSTXATRXBXHXCWIXDTVHXHXCUVQUUBUUJXI
      XERXDUVEYFUUJYEYFYGYDUVDXFRXGUUCUUGXJXKYTUVNDHUVFUVHVNVNYNUVFPZYOUVHPZNYQ
      UVKYSUVMYNUVFYOUVHYPXLUWMYSUVMQUWNUWMYRUVLUJYNUVFUIWJWKRVJXMXNXOXPXQXR $.
  $}

  ${
    umgr2adedgwlk.e $e |- E = ( Edg ` G ) $.
    $( Lemma for ~ umgr2adedgwlk , ~ umgr2adedgspth , etc.  (Contributed by
       Alexander van der Vekens, 1-Feb-2018.)  (Revised by AV, 29-Jan-2021.) $)
    umgr2adedgwlklem $p |- ( ( G e. UMGraph /\ { A , B } e. E
                                            /\ { B , C } e. E )
                       -> ( ( A =/= B /\ B =/= C )
                            /\ ( A e. ( Vtx ` G ) /\ B e. ( Vtx ` G )
                                                   /\ C e. ( Vtx ` G ) ) ) ) $=
      ( cumgr wcel cpr w3a wne wa cvtx cfv umgredgne anim12d umgrpredgv 3adant2
      ex simpld 3impib eqid 3adant3 simprd 3jca jca ) EGHZABIDHZBCIDHZJZABKZBCK
      ZLZAEMNZHZBUNHZCUNHZJUGUHUIUMUGUHUKUIULUGUHUKDEABFOSUGUIULDEBCFOSPUAUJUOU
      PUQUGUHUOUIUGUHLUOUPDEABUNUNUBZFQTUCUGUIUPUHUGUILZUPUQDEBCUNURFQZTRUGUIUQ
      UHUSUPUQUTUDRUEUF $.

    umgr2adedgwlk.i $e |- I = ( iEdg ` G ) $.
    umgr2adedgwlk.f $e |- F = <" J K "> $.
    umgr2adedgwlk.p $e |- P = <" A B C "> $.
    umgr2adedgwlk.g $e |- ( ph -> G e. UMGraph ) $.
    umgr2adedgwlk.a $e |- ( ph -> ( { A , B } e. E /\ { B , C } e. E ) ) $.
    umgr2adedgwlk.j $e |- ( ph -> ( I ` J ) = { A , B } ) $.
    umgr2adedgwlk.k $e |- ( ph -> ( I ` K ) = { B , C } ) $.
    $( In a multigraph, two adjacent edges form a walk of length 2.
       (Contributed by Alexander van der Vekens, 18-Feb-2018.)  (Revised by AV,
       29-Jan-2021.) $)
    umgr2adedgwlk $p |- ( ph -> ( F ( Walks ` G ) P /\ ( # ` F ) = 2
                  /\ ( A = ( P ` 0 ) /\ B = ( P ` 1 ) /\ C = ( P ` 2 ) ) ) ) $=
      ( cfv cwlks wbr chash c2 wceq cc0 c1 w3a cvtx wne wcel cumgr cpr sylanbrc
      wa 3anass umgr2adedgwlklem syl simprd simpld wss ssid syl5sseqr jca 2wlkd
      eqid cs2 fveq2i s2len eqtri a1i s3fv0 s3fv1 s3fv2 3anim123i fveq1i eqeq2i
      cs3 eqcom bitri 3anbi123i sylibr 3jca ) AGEHUATUBGUCTZUDUEZBUFETZUEZCUGET
      ZUEZDUDETZUEZUHZABCDEGHIJKHUITZONABCUJCDUJUOZBWMUKZCWMUKZDWMUKZUHZAHULUKZ
      BCUMZFUKZCDUMZFUKZUHZWNWRUOAWSXAXCUOXDPQWSXAXCUPUNBCDFHLUQURZUSZAWNWRXEUT
      AWTJITZVAXBKITZVAAWTWTXGWTVBRVCAXBXBXHXBVBSVCVDWMVFMVEWEAWDJKVGZUCTUDGXIU
      CNVHJKVIVJVKAUFBCDVRZTZBUEZUGXJTZCUEZUDXJTZDUEZUHZWLAWRXQXFWOXLWPXNWQXPBC
      DWMVLBCDWMVMBCDWMVNVOURWGXLWIXNWKXPWGBXKUEXLWFXKBUFEXJOVPVQBXKVSVTWICXMUE
      XNWHXMCUGEXJOVPVQCXMVSVTWKDXOUEXPWJXODUDEXJOVPVQDXOVSVTWAWBWC $.

    $( In a multigraph, two adjacent edges form a walk between two vertices.
       (Contributed by Alexander van der Vekens, 18-Feb-2018.)  (Revised by AV,
       30-Jan-2021.) $)
    umgr2adedgwlkon $p |- ( ph -> F ( A ( WalksOn ` G ) C ) P ) $=
      ( wcel cvtx cfv wne wa w3a cumgr cpr 3anass sylanbrc umgr2adedgwlklem syl
      simprd simpld wss ssid syl5sseqr jca eqid 2wlkond ) ABCDEGHIJKHUAUBZONABC
      UCCDUCUDZBUTTCUTTDUTTUEZAHUFTZBCUGZFTZCDUGZFTZUEZVAVBUDAVCVEVGUDVHPQVCVEV
      GUHUIBCDFHLUJUKZULAVAVBVIUMAVDJIUBZUNVFKIUBZUNAVDVDVJVDUORUPAVFVFVKVFUOSU
      PUQUTURMUS $.

    $( Alternate proof for ~ umgr2adedgwlkon , using ~ umgr2adedgwlk , but with
       a much longer proof!  In a multigraph, two adjacent edges form a walk
       between two (different) vertices.  (Contributed by Alexander van der
       Vekens, 18-Feb-2018.)  (Revised by AV, 30-Jan-2021.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    umgr2adedgwlkonALT $p |- ( ph -> F ( A ( WalksOn ` G ) C ) P ) $=
      ( cfv cwlkson co wbr cwlks cc0 chash w3a c2 c1 umgr2adedgwlk simp1 eqcoms
      wceq id 3ad2ant1 3ad2ant3 wi fveq2 eqeq1d biimpcd com12 a1i 3imp 3jca syl
      cumgr wcel cvtx cvv cword cpr wne 3anass sylanbrc umgr2adedgwlklem 3simpb
      wa wb adantl 3syl cs2 s2cli eqeltri cs3 s3cli pm3.2i 3adant1 eqid iswlkon
      anim1i sylancl mpbird ) AGEBDHUATUBUCZGEHUDTUCZUEETZBUMZGUFTZETZDUMZUGZAW
      NWQUHUMZBWOUMZCUIETUMZDUHETZUMZUGZUGZWTABCDEFGHIJKLMNOPQRSUJXGWNWPWSWNXAX
      FUKXFWNWPXAXBXCWPXEWPWOBWPUNULUOUPWNXAXFWSXAXFWSUQUQWNXFXAWSXEXBXAWSUQZXC
      XHXDDXAXDDUMWSXAXDWRDXDWRUMUHWQUHWQEURULUSUTULUPVAVBVCVDVEAHVFVGZBHVHTZVG
      ZDXJVGZUGZGVIVJZVGZEXNVGZVQZWMWTVRZAXIXKXLVQZXMPAXIBCVKFVGZCDVKFVGZUGZBCV
      LCDVLVQZXKCXJVGZXLUGZVQXSAXIXTYAVQYBPQXIXTYAVMVNBCDFHLVOYEXSYCXKYDXLVPVSV
      TXIXKXLVMVNXOXPGJKWAXNNJKWBWCEBCDWDXNOBCDWEWCWFXMXQVQXSXQVQXRXMXSXQXKXLXS
      XIXSUNWGWJBDEXNGHXJXNXJWHWIVEWKWL $.

    umgr2adedgspth.n $e |- ( ph -> A =/= C ) $.
    $( In a multigraph, two adjacent edges with different endvertices form a
       simple path of length 2.  (Contributed by Alexander van der Vekens,
       1-Feb-2018.)  (Revised by AV, 29-Jan-2021.) $)
    umgr2adedgspth $p |- ( ph -> F ( SPaths ` G ) P ) $=
      ( cvtx cfv wne wa wcel w3a cumgr cpr 3anass sylanbrc umgr2adedgwlklem syl
      simprd simpld wss ssid syl5sseqr jca eqid wi fveq2 eqcoms eqeq1d eqtr2 ex
      syl6bi com13 eqcom prcom eqeq2i bitri umgrpredgv anim12d preqr1g eqneqall
      wceq sylc syl6ci syl5bi syld neqne pm2.61d1 2spthd ) ABCDEGHIJKHUAUBZONAB
      CUCCDUCUDZBWDUEZCWDUEZDWDUEZUFZAHUGUEZBCUHZFUEZCDUHZFUEZUFZWEWIUDAWJWLWNU
      DZWOPQWJWLWNUIUJBCDFHLUKULZUMAWEWIWQUNAWKJIUBZUOWMKIUBZUOAWKWKWRWKUPRUQAW
      MWMWSWMUPSUQURWDUSZMAJKVPZJKUCZAXAWMWKVPZXBAWRWKVPZWSWMVPZXAXCUTRSXAXEXDX
      CXAXEWRWMVPZXDXCUTXAWSWRWMWSWRVPKJKJIVAVBVCXFXDXCWRWMWKVDVEVFVGVQXCWKDCUH
      ZVPZAXBXCWKWMVPXHWMWKVHWMXGWKCDVIVJVKAXHBDVPZBDUCXBAWFWHUDZXHXIUTAWJWPXJP
      QWJWLWFWNWHWJWLWFWJWLUDWFWGFHBCWDWTLVLUNVEWJWNWHWJWNUDWGWHFHCDWDWTLVLUMVE
      VMVQBDCWDWDVNULTXBBDVOVRVSVTJKWAWBTWC $.
  $}

  ${
    $d A f i j p $.  $d B f i j p $.  $d C f i j p $.  $d E i j $.
    $d G f i j p $.
    umgr2wlk.e $e |- E = ( Edg ` G ) $.
    $( In a multigraph, there is a walk of length 2 for each pair of adjacent
       edges.  (Contributed by Alexander van der Vekens, 18-Feb-2018.)
       (Revised by AV, 30-Jan-2021.) $)
    umgr2wlk $p |- ( ( G e. UMGraph /\ { A , B } e. E /\ { B , C } e. E )
                    -> E. f E. p ( f ( Walks ` G ) p /\ ( # ` f ) = 2
                  /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) ) $=
      ( vi vj wcel w3a cv cfv wceq chash c2 wi wb wa cumgr cpr ciedg wrex cwlks
      cdm wbr cc0 c1 cuhgr umgruhgr cedg eleq2i eqid uhgredgiedgb syl5bb biimpd
      wex syl a1d 3imp a1dd cs2 cvv cword cs3 s2cli pm3.2i simpl1 3simpc adantr
      s3cli simpl eqcomd adantl simpr umgr2adedgwlk breq12 fveq2 eqeq1d spc2egv
      fveq1 eqeq2d 3anbi123d mpsyl exp32 com12 rexlimivw com13 mp2d ) FUAKZABUB
      ZEKZBCUBZEKZLZWNIMZFUCNZNZOZIWRUFZUDZWLJMZWRNZOZJXAUDZDMZGMZFUENZUGZXGPNZ
      QOZAUHXHNZOZBUIXHNZOZCQXHNZOZLZLZGURDURZWKWMWOXBWKWOXBRWMWKWOXBWKFUJKZWOX
      BSFUKZWOWNFULNZKYBXBEYDWNHUMIWNFWRWRUNZUOUPUSUQUTVAWKWMWOXFWKWMXFWOWKWMXF
      WKYBWMXFSYCWMWLYDKYBXFEYDWLHUMJWLFWRYEUOUPUSUQVBVAXBWPXFYARZWTWPYFRIXAXFW
      PWTYAXEWPWTYARZRJXAWPXEYGWPXEWTYAXCWQVCZVDVEZKZABCVFZYIKZTWPXEWTTZTZYHYKX
      IUGZYHPNZQOZAUHYKNZOZBUIYKNZOZCQYKNZOZLZLZYAYJYLXCWQVGABCVLVHYNABCYKEYHFW
      RXCWQHYEYHUNYKUNWKWMWOYMVIWPWMWOTYMWKWMWOVJVKYMXDWLOWPYMWLXDXEWTVMVNVOYMW
      SWNOWPYMWNWSXEWTVPVNVOVQXTUUEDGYHYKYIYIXGYHOZXHYKOZTXJYOXLYQXSUUDXGYHXHYK
      XIVRUUFXLYQSUUGUUFXKYPQXGYHPVSVTVKUUGXSUUDSUUFUUGXNYSXPUUAXRUUCUUGXMYRAUH
      XHYKWBWCUUGXOYTBUIXHYKWBWCUUGXQUUBCQXHYKWBWCWDVOWDWAWEWFWGWHWIWHWGWJ $.

    $d E f p $.
    $( For each pair of adjacent edges in a multigraph, there is a walk of
       length 2 between the not common vertices of the edges.  (Contributed by
       Alexander van der Vekens, 18-Feb-2018.)  (Revised by AV,
       30-Jan-2021.) $)
    umgr2wlkon $p |- ( ( G e. UMGraph /\ { A , B } e. E /\ { B , C } e. E )
                       -> E. f E. p f ( A ( WalksOn ` G ) C ) p ) $=
      ( wcel cpr w3a cv cfv wbr c2 wceq wex wa wi cvv cumgr cwlks chash cwlkson
      cc0 c1 umgr2wlk simp1 eqcom biimpi 3ad2ant1 3ad2ant3 fveq2 eqcoms biimpcd
      co eqeq1d com12 a1i 3imp 3jca adantl cvtx wb wne umgr2adedgwlklem simprr1
      simprr3 jca mpdan vex pm3.2i eqid iswlkon syl2an2r mpbird ex 2eximdv mpd
      ) FUAIABJEIBCJEIKZDLZGLZFUBMNZWAUCMZOPZAUEWBMZPZBUFWBMPZCOWBMZPZKZKZGQDQW
      AWBACFUDMUPNZGQDQABCDEFGHUGVTWLWMDGVTWLWMVTWLRZWMWCWFAPZWDWBMZCPZKZWLWRVT
      WLWCWOWQWCWEWKUHWKWCWOWEWGWHWOWJWGWOAWFUIUJUKULWCWEWKWQWEWKWQSSWCWKWEWQWJ
      WGWEWQSZWHWSWICWEWICPWQWEWIWPCWIWPPOWDOWDWBUMUNUQUOUNULURUSUTVAVBVTAFVCMZ
      IZCWTIZRZWLWATIZWBTIZRZWMWRVDVTABVEBCVERZXABWTIZXBKRZXCABCEFHVFVTXIRXAXBX
      AXHXBXGVTVGXAXHXBXGVTVHVIVJXFWNXDXEDVKGVKVLUSACWBTWAFWTTWTVMVNVOVPVQVRVS
      $.
  $}

  ${
    $d A a c w $.  $d B w $.  $d C a c w $.  $d G a c w $.  $d V a c $.
    $d a b g n w $.
    wwlks2onv.v $e |- V = ( Vtx ` G ) $.
    $( If a length 3 string represents a walk of length 2, its components are
       vertices.  (Contributed by Alexander van der Vekens, 19-Feb-2018.) $)
    wwlks2onv $p |- ( ( B e. U /\ <" A B C "> e. ( A ( 2 WWalksNOn G ) C ) )
                      -> ( A e. V /\ B e. V /\ C e. V ) ) $=
      ( va vc vw wcel c2 co wa cc0 cv cfv wceq c1 c0 vn vg vb cvv cs3 cwwlksnon
      w3a wi cwwlksn crab cmpt2 cn0 2nn0 wwlksnon mpan oveqd eleq2d eqid simprl
      elmpt2cl eqeq2 anbi1d rabbidv anbi2d ovex rabex ovmpt2 fveq1 eqeq1d elrab
      anbi12d cvtx cword chash caddc wwlknbp2 s3fv1 eqcomd adantl ctp 1ex tpid2
      c3 id syl6eq oveq2d fzo0to3tp syl5eleqr wrdsymbcl syl6eleqr sylan2 adantr
      cfzo 2p1e3 eqeltrd ex syl a1i syl5bi sylbid impd impcom simprr 3jca exp31
      mpid syl6bi com23 df-wwlksnon reldmmpt2 ovprc2 0ov noel pm2.21i pm2.61i
      wn ) EUDKZBDKZABCUEZACLEUFMZMZKZNAFKZBFKZCFKZUGZUHXQXRYBYFXQYBXRYFXQYBXSA
      CHIFFOJPZQZHPZRZLYGQZIPZRZNZJLEUIMZUJZUKZMZKZXRYFUHZXQYAYRXSXQXTYQACLULKX
      QXTYQRUMJUDELFHIGUNUOUPUQYSXRYCYENZYFHIFFYPACYQXSYQURZUTYSXRUUAYFYSXRNZUU
      ANYCYDYEUUCYCYEUSUUAUUCYDUUAYSXRYDUUAYSXSYHARZYKCRZNZJYOUJZKZXRYDUHZUUAYR
      UUGXSHIACFFYPUUGYQUUDYMNZJYOUJYIARZYNUUJJYOUUKYJUUDYMYIAYHVAVBVCYLCRZUUJU
      UFJYOUULYMUUEUUDYLCYKVAVDVCUUBUUFJYOLEUIVEVFVGUQUUHXSYOKZOXSQZARZLXSQZCRZ
      NZNZUUAUUIUUFUURJXSYOYGXSRZUUDUUOUUEUUQUUTYHUUNAOYGXSVHVIUUTYKUUPCLYGXSVH
      VIVKVJUUSUUIUHUUAUUMUUIUURUUMXSEVLQZVMKZXSVNQZLSVOMZRZNZUUIELXSVPUVFXRYDU
      VFXRNBSXSQZFXRBUVGRUVFXRUVGBABCDVQVRVSUVFUVGFKZXRUVEUVBSOUVCWMMZKZUVHUVES
      OSLVTZUVIOSLWAWBUVEUVIOWCWMMUVKUVEUVCWCOWMUVEUVCUVDWCUVEWDWNWEWFWGWEWHUVB
      UVJNUVGUVAFSUVAXSWIGWJWKWLWOWPWQWLWRWSWTXAXBUUCYCYEXCXDXEXFXGXHXAXQXPZXRY
      BYFUVLYBXRYFUVLYBXSTKZYTUVLYATXSUVLYAACTMTUVLXTTACLEUFUAUBULUDHUCUBPZVLQZ
      UVOYJUAPZYGQUCPRNJUVPUVNUIMUJUKUFJUBUAHUCXIXJXKUPACXLWEUQUVMYTXSXMXNXGXHX
      AXO $.
  $}

  ${
    $d A b $.  $d C b $.  $d G b $.  $d U b $.  $d V b $.  $d W b $.
    elwwlks2ons3.v $e |- V = ( Vtx ` G ) $.
    $( For each walk of length 2 between two vertices, there is a third vertex
       in the middle of the walk.  (Contributed by Alexander van der Vekens,
       15-Feb-2018.)  (Revised by AV, 12-May-2021.) $)
    elwwlks2ons3 $p |- ( ( G e. U /\ A e. V /\ C e. V )
            -> ( W e. ( A ( 2 WWalksNOn G ) C ) <-> E. b e. V ( W = <" A b C ">
                       /\ <" A b C "> e. ( A ( 2 WWalksNOn G ) C ) ) ) ) $=
      ( wcel w3a c2 co wceq wa c1 cfv simpr cc0 wb adantr cwwlksnon cv cs3 wrex
      cwwlksn wwlknon 3adant1 wi cvtx cword chash caddc wwlknbp2 c3 eqeq2i cfzo
      2p1e3 ctp tpid2 oveq2 fzo0to3tp syl6eq syl5eleqr wrdsymbcl 3ad2ant1 simpl
      1ex sylan2 eqidd 3jca 3ad2ant2 eqcomi wrdeqi eleq2i biimpi simpl32 adantl
      simpl33 eqwrds3 syl13anc mpbir2and mpdan 3exp sylan2b 3impib com12 sylbid
      jca syl imp anass sylanbrc id s3eqd eqeq2 anbi12d biimpac rspcedvd eqcoms
      eleq1 ex biimpa a1i rexlimdvw impbid ) DCIZAEIZBEIZJZFABKDUALLZIZFAGUBZBU
      CZMZXMXJIZNZGEUDZXIXKXQXIXKNZXKFAOFPZBUCZMZNZXSEIZNZXQXRXKYAYCNZYDXIXKQXI
      XKYEXIXKFKDUELIZRFPAMZKFPBMZJZYEXGXHXKYISXFABDKEFHUFUGYIXIYEYFYGYHXIYEUHZ
      YFFDUIPZUJZIZFUKPZKOULLZMZNYGYHNZYJUHZDKFUMYPYMYNUNMZYRYOUNYNUQUOYMYSNZYQ
      XIYEYTYQXIJZXSYKIZYEYTYQUUBXIYSYMORYNUPLZIUUBYSOROKURZUUCROKVGUSYSUUCRUNU
      PLUUDYNUNRUPUTVAVBVCOYKFVDVHVEUUAUUBNZYAYCUUEYAYSYGXSXSMZYHJZUUAYSUUBYTYQ
      YSXIYMYSQVETUUAUUGUUBYQYTUUGXIYQYGUUFYHYGYHVFYQXSVIYGYHQVJVKTUUEFEUJZIZXG
      YCXHYAYSUUGNSUUAUUIUUBYTYQUUIXIYMUUIYSYMUUIYLUUHFYKEEYKHVLZVMVNVOTVETXFXG
      XHYTYQUUBVPUUBYCUUAUUBYCYKEXSUUJVNVOVQZXFXGXHYTYQUUBVRAXSBEFVSVTWAUUKWHWB
      WCWDWIWEWFWGWJXKYAYCWKWLYDXPYAXTXJIZNZGXSEYBYCQXLXSMZXPUUMSZYDUUNXMXTMZUU
      OUUNAXLBBAXSUUNAVIUUNWMUUNBVIWNUUPXNYAXOUULXMXTFWOXMXTXJWTWPWIVQYBUUMYCYB
      YAUULXKYAQYAXKUULFXTXJWTWQWHTWRWIXAXIXPXKGEXPXKUHXIXNXOXKXOXKSXMFXMFXJWTW
      SXBXCXDXE $.
  $}

  ${
    $d A f $.  $d B f $.  $d C f $.  $d G f $.
    s3wwlks2on.v $e |- V = ( Vtx ` G ) $.
    $( A length 3 string which represents a walk of length 2 between two
       vertices.  (Contributed by Alexander van der Vekens, 15-Feb-2018.)
       (Revised by AV, 12-May-2021.) $)
    s3wwlks2on $p |- ( ( G e. UPGraph /\ A e. V /\ C e. V )
                       -> ( <" A B C "> e. ( A ( 2 WWalksNOn G ) C )
              <-> E. f ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) ) ) $=
      ( cupgr wcel w3a cs3 c2 cwwlksnon co cwwlksn cfv wceq wa wb 3adant1 cwlks
      cc0 cv wbr chash wex wwlknon s3fv0 s3fv2 anim12i biantrud 3anass syl6rbbr
      wlklnwwlknupgr bicomd 3ad2ant1 3bitrd ) EHIZAFIZCFIZJZABCKZACLEMNNIZVBLEO
      NIZUBVBPAQZLVBPCQZJZVDDUCZVBEUAPUDVHUEPLQRDUFZUSUTVCVGSURACELFVBGUGTVAVDV
      DVEVFRZRVGVAVJVDUSUTVJURUSVEUTVFABCFUHABCFUIUJTUKVDVEVFULUMURUSVDVISUTURV
      IVDVBDELUNUOUPUQ $.

    $d A p $.  $d B p $.  $d C p $.  $d E f $.  $d G p $.  $d V f p $.
    usgrwwlks2on.e $e |- E = ( Edg ` G ) $.
    $( A walk of length 2 between two vertices as word in a multigraph.  This
       theorem would also hold for pseudographs, but to prove this the cases
       ` A = B ` and/or ` B = C ` must be considered separately.  (Contributed
       by Alexander van der Vekens, 18-Feb-2018.)  (Revised by AV,
       12-May-2021.) $)
    umgrwwlks2on $p |- ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) )
                         -> ( <" A B C "> e. ( A ( 2 WWalksNOn G ) C )
                              <-> ( { A , B } e. E /\ { B , C } e. E ) ) ) $=
      ( wcel w3a wa c2 co cfv wceq wb adantl cc0 c1 wi vf vp cumgr cwwlksnon cv
      cs3 cwlks wbr chash wex cpr cupgr umgrupgr adantr simp1 simpr3 s3wwlks2on
      syl3anc cfzo ciedg cdm wf cfz eqid upgr2wlk s3fv0 3ad2ant1 s3fv1 3ad2ant2
      syl preq12d eqeq2d s3fv2 3ad2ant3 anbi12d 3anbi3d crn cuhgr wfun umgruhgr
      uhgrfun fdmrn simpr id c0ex prid1 fzo0to2pr eleqtrri a1i ffvelrnd 1ex jca
      prid2 com12 sylbi 3syl imp eqcom biimpi cedg edgval eleq12d mpbird sylbid
      ex eqtri exlimdv umgr2wlk c3 caddc wlklenvp1 oveq1 2p1e3 syl6eq 3anbi123i
      sylan9eq cword wlkpwrd oveq2 fzo0to3tp tpid1 eleq2 mpbiri wrdsymbcl tpid2
      ctp sylan2 2ex tpid3 3jca 3adant3 3anbi123d 3exp impancom syl2anc eqwrds3
      eleq1 impd breq2d biimpd pm2.43a 3impib simpr2 eximdv 3expib com23 impbid
      syl5com bitrd ) EUCIZAFIZBFIZCFIZJZKZABCUFZACLEUDMMIZUAUEZUUPEUGNZUHZUURU
      INZLOZKZUAUJZABUKZDIZBCUKZDIZKZUUOEULIZUUKUUMUUQUVDPUUJUVJUUNEUMZUNUUNUUK
      UUJUUKUULUUMUOQUUJUUKUULUUMUPABCUAEFGUQURUUOUVDUVIUUOUVCUVIUAUUOUVCRLUSMZ
      EUTNZVAZUURVBZRLVCMFUUPVBZRUURNZUVMNZRUUPNZSUUPNZUKZOZSUURNZUVMNZUVTLUUPN
      ZUKZOZKZJZUVIUUJUVCUWIPZUUNUUJUVJUWJUVKUUPUUREUVMFGUVMVDZVEVJUNUUOUWIUVOU
      VPUVRUVEOZUWDUVGOZKZJZUVIUUOUWHUWNUVOUVPUUNUWHUWNPUUJUUNUWBUWLUWGUWMUUNUW
      AUVEUVRUUNUVSAUVTBUUKUULUVSAOUUMABCFVFVGUULUUKUVTBOUUMABCFVHVIZVKVLUUNUWF
      UVGUWDUUNUVTBUWECUWPUUMUUKUWECOUULABCFVMVNVKVLVOQVPUUJUWOUVITUUNUUJUWOUVI
      UUJUWOKZUVIUVRUVMVQZIZUWDUWRIZKZUUJUWOUXAUUJEVRIUVMVSZUWOUXATZEVTUVMEUWKW
      AUXBUVNUWRUVMVBZUXCUVMWBUWOUXDUXAUVOUVPUXDUXATUWNUVOUXDUXAUVOUXDKZUWSUWTU
      XEUVNUWRUVQUVMUVOUXDWCZUVOUVQUVNIUXDUVOUVLUVNRUURUVOWDZRUVLIUVORRSUKZUVLR
      SWEWFWGWHWIWJUNWJUXEUVNUWRUWCUVMUXFUVOUWCUVNIUXDUVOUVLUVNSUURUXGSUVLIUVOS
      UXHUVLRSWKWMWGWHWIWJUNWJWLXEVGWNWOWPWQUWQUVFUWSUVHUWTUWQUVEUVRDUWRUWOUVEU
      VROZUUJUWNUVOUXIUVPUWLUXIUWMUWLUXIUVRUVEWRWSUNVNQDUWROUWQDEWTNUWRHEXAXFWI
      ZXBUWQUVGUWDDUWRUWOUVGUWDOZUUJUWNUVOUXKUVPUWMUXKUWLUWMUXKUWDUVGWRWSQVNQUX
      JXBVOXCXEUNXDXDXGUUJUUNUVIUVDTUUJUVIUUNUVDUUJUVFUVHUUNUVDTUUJUVFUVHJUURUB
      UEZUUSUHZUVBARUXLNZOZBSUXLNZOZCLUXLNZOZJZJZUBUJZUAUJUUNUVDABCUADEUBHXHUUN
      UYBUVCUAUUNUYAUVCUBUUNUYAUVCUUNUYAKUUTUVBUYAUUTUUNUXMUVBUXTUUTUVBUXTKZUXM
      UUTUXMUYCUXMUUTTUXMUYCKZUXMUUTUYDUXLUUPUURUUSUYDUXLUUPOZUXLUINZXIOZUXNAOZ
      UXPBOZUXRCOZJZKZUYDUYGUYKUXMUYCUYFUVASXJMZXIUXLUUREXKZUVBUYMXIOUXTUVBUYML
      SXJMXIUVALSXJXLXMXNZUNXPUYCUYKUXMUXTUYKUVBUXTUYKUXOUYHUXQUYIUXSUYJAUXNWRB
      UXPWRCUXRWRXOWSQQWLUYDUXLFXQIZUUNKZUYEUYLPUXMUYCUYQUXMUYPUYFUYMOZUYCUYQTU
      XLUUREFGXRUYNUYPUYRKUVBUXTUYQUYPUVBUYRUXTUYQTZUYPUVBKUYRUYGUYSUVBUYRUYGPU
      YPUVBUYMXIUYFUYOVLQUYPUYGUYSTUVBUYPUYGUXTUYQUYPUYGUXTJZUYPUUNUYPUYGUXTUOU
      YTUUNUXNFIZUXPFIZUXRFIZJZUYPUYGVUDUXTUYGUYPRUYFUSMZRSLYFZOZVUDUYGVUERXIUS
      MVUFUYFXIRUSXSXTXNUYPVUGKVUAVUBVUCVUGUYPRVUEIZVUAVUGVUHRVUFIRSLWEYAVUEVUF
      RYBYCRFUXLYDYGVUGUYPSVUEIZVUBVUGVUISVUFIRSLWKYEVUEVUFSYBYCSFUXLYDYGVUGUYP
      LVUEIZVUCVUGVUJLVUFIRSLYHYIVUEVUFLYBYCLFUXLYDYGYJYGYKUXTUYPUUNVUDPUYGUXTU
      UKVUAUULVUBUUMVUCUXOUXQUUKVUAPUXSAUXNFYQVGUXQUXOUULVUBPUXSBUXPFYQVIUXSUXO
      UUMVUCPUXQCUXRFYQVNYLVNXCWLYMUNXDYNYRYOWQABCFUXLYPVJXCYSYTXEUUAUUBQUUNUXM
      UVBUXTUUCWLXEXGUUDUUHUUEUUFWQUUGUUI $.
  $}

  ${
    elwwlks2on.v $e |- V = ( Vtx ` G ) $.
    $( There is a walk of length 2 from one vertex to another vertex iff there
       is a walk of length 2 from the other vertex to the first vertex.
       (Contributed by AV, 7-Jan-2022.) $)
    wwlks2onsym $p |- ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) )
                       -> ( <" A B C "> e. ( A ( 2 WWalksNOn G ) C )
                            <-> <" C B A "> e. ( C ( 2 WWalksNOn G ) A ) ) ) $=
      ( cumgr wcel w3a wa cs3 c2 cwwlksnon co cpr cfv umgrwwlks2on prcom eleq1i
      cedg eqid wb 3anrev sylan2b anbi12ci syl6rbb bitrd ) DGHZAEHZBEHZCEHZIZJZ
      ABCKACLDMNZNHABOZDTPZHZBCOZUPHZJZCBAKCAUNNHZABCUPDEFUPUAZQUMVACBOZUPHZBAO
      ZUPHZJZUTULUHUKUJUIIVAVGUBUIUJUKUCCBAUPDEFVBQUDVDUSVFUQVCURUPCBRSVEUOUPBA
      RSUEUFUG $.

    $d A b f $.  $d C b f $.  $d G b f $.  $d V b $.  $d W b f $.
    $( A walk of length 2 between two vertices as length 3 string.
       (Contributed by Alexander van der Vekens, 15-Feb-2018.)  (Revised by AV,
       12-May-2021.) $)
    elwwlks2on $p |- ( ( G e. UPGraph /\ A e. V /\ C e. V )
            -> ( W e. ( A ( 2 WWalksNOn G ) C ) <-> E. b e. V ( W = <" A b C ">
                       /\ E. f ( f ( Walks ` G ) W /\ ( # ` f ) = 2 ) ) ) ) $=
      ( cupgr wcel w3a c2 co cv wceq wa wrex cfv wbr wex cwwlksnon elwwlks2ons3
      cs3 cwlks chash s3wwlks2on wb breq2 eqcoms anbi1d exbidv sylan9bb rexbidv
      pm5.32da bitrd ) DIJAEJBEJKZFABLDUAMMZJFAGNZBUCZOZUSUQJZPZGEQUTCNZFDUDRZS
      ZVCUERLOZPZCTZPZGEQABIDEFGHUBUPVBVIGEUPUTVAVHUPVAVCUSVDSZVFPZCTUTVHAURBCD
      EHUFUTVKVGCUTVJVEVFVJVEUGUSFUSFVCVDUHUIUJUKULUNUMUO $.

    $( A simple path of length 2 between two vertices (in a graph) as length 3
       string.  (Contributed by Alexander van der Vekens, 9-Mar-2018.)
       (Revised by AV, 12-May-2021.) $)
    elwspths2on $p |- ( ( G e. UPGraph /\ A e. V /\ C e. V )
           -> ( W e. ( A ( 2 WSPathsNOn G ) C ) <-> E. b e. V ( W = <" A b C ">
                          /\ <" A b C "> e. ( A ( 2 WSPathsNOn G ) C ) ) ) ) $=
      ( vf cupgr wcel c2 co cv wceq wa wrex cfv wbr wex wi cwwspthsnon cspthson
      w3a cwwlksnon wspthnon biimpd 3adant1 cwlks chash elwwlks2on simpl biimpa
      cs3 eleq1 jca ex adantr com12 reximdv a1i13 com24 impd com23 mpdd biimpar
      sylbid a1i rexlimdva impbid ) CIJZADJZBDJZUCZEABKCUALLZJZEAFMZBUMZNZVQVNJ
      ZOZFDPZVMVOEABKCUDLLJZHMZEABCUBQLRHSZOZWAVKVLVOWETVJVKVLOVOWEABHCKDEGUEUF
      UGVMWEVOWAVMWBWDVOWATZVMWBVRWCECUHQRWCUIQKNOHSZOZFDPZWDWFTABHCDEFGUJVMVOW
      DWIWAVMVOWDWIWATVOWHVTFDWHVOVTVRVOVTTWGVRVOVTVRVOOVRVSVRVOUKVRVOVSEVQVNUN
      ZULUOUPUQURUSUTVAVFVBVCVDVMVTVOFDVTVOTVMVPDJOVRVOVSWJVEVGVHVI $.
  $}

  ${
    $d A f w $.  $d B f w $.  $d G f w $.  $d V f w $.
    wpthswwlks2on.v $e |- V = ( Vtx ` G ) $.
    $( For two different vertices, a walk of length 2 between these vertices is
       a simple path of length 2 between these vertices in a simple graph.
       (Contributed by Alexander van der Vekens, 2-Mar-2018.)  (Revised by AV,
       13-May-2021.) $)
    wpthswwlks2on $p |- ( ( G e. USGraph /\ ( A e. V /\ B e. V ) /\ A =/= B )
                 -> ( A ( 2 WSPathsNOn G ) B ) = ( A ( 2 WWalksNOn G ) B ) ) $=
      ( vf vw wcel wa w3a cv cfv co wbr c2 crab wceq wb 3ad2ant2 cvv wne anbi1d
      cusgr cspthson wex cwwlksnon cc0 cwwlksn cwwspthsnon wwlknon 3anass anass
      anbi1i bitri syl6bb rabbidva2 cwlks chash cupgr wlklnwwlknupgr syl bicomd
      usgrupgr 3ad2ant1 cwlkson simprl adantr fveq2 ad2antll simprr simpll2 vex
      eqtrd pm3.2i iswlkon sylancl mpbir3and simpll1 simpll3 usgr2wlkspth mpbid
      wi syl3anc ex eximdv com23 sylbid pm4.71d rabbidva iswspthsnon iswwlksnon
      imp 3eqtr4d ) CUCHZADHBDHIZABUAZJZFKZGKZABCUDLMNZFUEZGABOCUFMMZPZUGWSLAQZ
      OWSLZBQZIZGOCUHMZPZABOCUIMMZXBWQXCXGXAIZGXHPXIWQXAXKGXBXHWQWSXBHZXAIWSXHH
      ZXDXFJZXAIZXMXKIZWQXLXNXAWOWNXLXNRWPABCODWSEUJSUBXOXMXGIZXAIXPXNXQXAXMXDX
      FUKUMXMXGXAULUNUOUPWQXKXGGXHWQXMIZXGXKXRXGXAWQXMXGXAWBZWQXMWRWSCUQLNZWRUR
      LZOQZIZFUEZXSWNWOXMYDRWPWNYDXMWNCUSHYDXMRCVCWSFCOUTVAVBVDWQXGYDXAWQXGYDXA
      WBWQXGIZYCWTFYEYCWTYEYCIZWRWSABCVELMNZWTYFYGXTXDYAWSLZBQZYEXTYBVFYEXDYCWQ
      XDXFVFVGYFYHXEBYBYHXEQYEXTYAOWSVHVIYEXFYCWQXDXFVJVGVMYFWOWRTHZWSTHZIYGXTX
      DYIJRWNWOWPXGYCVKYJYKFVLGVLVNABWSTWRCDTEVOVPVQYFWNYBWPYGWTRWNWOWPXGYCVRYE
      XTYBVJWNWOWPXGYCVSABWSWRCVTWCWAWDWEWDWFWGWLWHVBWIVMWOWNXJXCQWPGABFCODEWJS
      WOWNXBXIQWPGABCODEWKSWM $.
  $}

  ${
    $d A b c t $.  $d G b c t $.  $d V b c t $.
    $( All simple paths of length 2 from a fixed vertex to another vertex are
       disjunct.  (Contributed by Alexander van der Vekens, 4-Mar-2018.)
       (Revised by AV, 9-Jan-2022.) $)
    2wspdisj $p |- Disj_ b e. ( V \ { A } ) ( A ( 2 WSPathsNOn G ) b ) $=
      ( vt vc csn cdif cv c2 cwwspthsnon wdisj wtru oveq2 wcel weq wspthneq1eq2
      co wa wceq simprd 3adant1 disjord trud ) DCAGHZADIZJBKRZRZLMEUHAFIZUGRZUE
      DFUFUIAUGNEIZUHOZUKUJOZDFPZMULUMSAATUNAUFAUIUKBJQUAUBUCUD $.

    $d G a d $.  $d V a b c d t $.
    $( All simple paths of length 2 from a fixed vertex to another vertex are
       disjunct.  (Contributed by Alexander van der Vekens, 5-Mar-2018.)
       (Revised by AV, 14-May-2021.)  (Proof shortened by AV, 9-Jan-2022.) $)
    2wspiundisj $p |- Disj_ a e. V U_ b e. ( V \ { a } )
                      ( a ( 2 WSPathsNOn G ) b ) $=
      ( vt vc vd cv csn cdif c2 cwwspthsnon co ciun wdisj wtru oveq1 oveq2 wcel
      weq sneq difeq2d wa wspthneq1eq2 simpld 3adant1 disjiund trud ) CBDBCHZIZ
      JZUIDHZKALMZMZNOPEUNFHZULUMMUOGHZUMMZBUKBUOIZJCDFGUIUOULUMQULUPUOUMRCFTZU
      JURBUIUOUAUBEHZUNSZUTUQSZUSPVAVBUCUSDGTUIULUOUPUTAKUDUEUFUGUH $.
  $}

  ${
    usgr2wspthon0.v $e |- V = ( Vtx ` G ) $.
    usgr2wspthon0.e $e |- E = ( Edg ` G ) $.
    $( A simple path of length 2 between two vertices represented as length 3
       string corresponds to two adjacent edges in a simple graph.
       (Contributed by Alexander van der Vekens, 8-Mar-2018.)  (Revised by AV,
       17-May-2021.) $)
    usgr2wspthons3 $p |- ( ( G e. USGraph /\ ( A e. V /\ B e. V /\ C e. V ) )
                -> ( <" A B C "> e. ( A ( 2 WSPathsNOn G ) C )
                     <-> ( A =/= C /\ { A , B } e. E /\ { B , C } e. E ) ) ) $=
      ( cusgr wcel w3a wa cs3 c2 cwwspthsnon co wne cpr wb syl cwwlksnon wi 2nn
      cn ne0i wspthsnonn0vne sylancr simplr simpll ad2antlr simpr wpthswwlks2on
      3simpb 3jca eleq2d biimpa jca exp31 com13 mpd com12 bicomd biimpd expimpd
      c0 impbid cumgr usgrumgr umgrwwlks2on sylan anbi2d 3anass syl6bbr bitrd )
      EIJZAFJZBFJZCFJZKZLZABCMZACNEOPPZJZACQZWAACNEUAPPZJZLZWDABRDJZBCRDJZKZVTW
      CWGWCVTWGWCWDVTWGUBWCNUDJWBVEQWDUCWBWAUEENACUFUGVTWDWCWGVTWDWCWGVTWDLZWCL
      WDWFVTWDWCUHWKWCWFWKVOVPVRLZWDKZWCWFSWKVOWLWDVOVSWDUIVSWLVOWDVPVQVRUMUJVT
      WDUKUNZWMWBWEWAACEFGULUOZTUPUQURUSUTVAVTWDWFWCWKWFWCWKWMWFWCSWNWMWCWFWOVB
      TVCVDVFVTWGWDWHWILZLWJVTWFWPWDVOEVGJVSWFWPSEVHABCDEFGHVIVJVKWDWHWIVLVMVN
      $.

    $d A b $.  $d C b $.  $d G b $.  $d V b $.  $d T b $.
    $( A simple path of length 2 between two vertices corresponds to two
       adjacent edges in a simple graph.  (Contributed by Alexander van der
       Vekens, 9-Mar-2018.)  (Revised by AV, 17-May-2021.) $)
    usgr2wspthon $p |- ( ( G e. USGraph /\ ( A e. V /\ C e. V ) )
                          -> ( T e. ( A ( 2 WSPathsNOn G ) C )
                               <-> E. b e. V ( ( T = <" A b C "> /\ A =/= C )
                               /\ ( { A , b } e. E /\ { b , C } e. E ) ) ) ) $=
      ( cusgr wcel wa co wrex cpr wb adantr simpl adantl simpr cwwspthsnon wceq
      c2 cv cs3 wne usgrupgr elwspths2on syl3anc simplrl simplrr usgr2wspthons3
      cupgr w3a syl13anc anbi2d anass 3anass bicomi anbi2i bitri rexbidva bitrd
      syl6bbr ) EJKZAFKZBFKZLZLZCABUCEUAMMZKZCAGUDZBUEZUBZVMVJKZLZGFNZVNABUFZLA
      VLODKZVLBODKZLZLZGFNVIEUMKZVFVGVKVQPVEWCVHEUGQVHVFVEVFVGRSVHVGVEVFVGTSABE
      FCGHUHUIVIVPWBGFVIVLFKZLZVPVNVRVSVTUNZLZWBWEVOWFVNWEVEVFWDVGVOWFPVIVEWDVE
      VHRQVEVFVGWDUJVIWDTVEVFVGWDUKAVLBDEFHIULUOUPWBVNVRWALZLWGVNVRWAUQWHWFVNWF
      WHVRVSVTURUSUTVAVDVBVC $.
  $}

  ${
    $d V a b c $.  $d W a b c $.
    elwwlks2s3.v $e |- V = ( Vtx ` G ) $.
    $( A walk of length 2 between two vertices as length 3 string is a length 3
       string.  (Contributed by AV, 18-May-2021.) $)
    elwwlks2s3 $p |- ( W e. ( 2 WWalksN G )
                       -> E. a e. V E. b e. V E. c e. V W = <" a b c "> ) $=
      ( c2 cwwlksn co wcel cvtx cfv cword chash wceq wa cv wrex c3 c1 caddc cs3
      wwlknbp2 wrdeqi eleq2i df-3 eqeq2i anbi12i wrdl3s3 sylbb1 syl ) CHAIJKCAL
      MZNZKZCOMZHUAUBJZPZQZCDRERFRUCPFBSEBSDBSZAHCUDCBNZKZUPTPZQUSUTVBUOVCURVAU
      NCBUMGUEUFTUQUPUGUHUIBCDEFUJUKUL $.

    $( There is a vertex between the endpoints of a walk of length 2 between
       two vertices as length 3 string.  (Contributed by AV, 10-Jan-2022.) $)
    midwwlks2s3 $p |- ( W e. ( 2 WWalksN G ) -> E. b e. V ( W ` 1 ) = b ) $=
      ( va vc c2 cwwlksn co wcel cv cs3 wceq wrex c1 cfv elwwlks2s3 wa wi fveq1
      s3fv1 sylan9eqr ex adantl rexlimdvw reximdva rexlimiv syl ) CHAIJKCFLZDLZ
      GLZMZNZGBOZDBOZFBOPCQZUKNZDBOZABCFDGERUPUSFBUJBKZUOURDBUTUKBKZSUNURGBVAUN
      URTUTVAUNURUNVAUQPUMQUKPCUMUAUJUKULBUBUCUDUEUFUGUHUI $.
  $}

  ${
    $d G a b c f p $.  $d V a b c f p $.  $d W a b c f p $.
    elwwlks2.v $e |- V = ( Vtx ` G ) $.
    $( A walk of length 2 between two vertices as length 3 string in a
       pseudograph.  (Contributed by Alexander van der Vekens, 21-Feb-2018.)
       (Revised by AV, 17-May-2021.) $)
    elwwlks2 $p |- ( G e. UPGraph -> ( W e. ( 2 WWalksN G )
         <-> E. a e. V E. b e. V E. c e. V ( W = <" a b c ">
             /\ E. f E. p ( f ( Walks ` G ) p /\ ( # ` f ) = 2
             /\ ( a = ( p ` 0 ) /\ b = ( p ` 1 ) /\ c = ( p ` 2 ) ) ) ) ) ) $=
      ( wcel c2 co cv wrex wceq cfv wa c1 cvv wi cupgr cwwlksn cwwlksnon cs3 wb
      cwlks wbr chash wex cc0 w3a cn0 2nn0 wwlksnwwlksnon mpan elwwlks2on 3expb
      2rexbidva rexcom cword s3cli a1i simplr simpr eqtr4d breq2d biimpd adantr
      com12 impcom simprr vex s3fv0 eqcomd mp1i fveq1 s3fv1 s3fv2 3jca spcimedv
      adantl ex c3 caddc wlklenvp1 simpl oveq1 eqtrd 2p1e3 syl6eq exp32 mpd imp
      eqcom biimpi 3anim123i anim12i wlkpwrd anim1i 3anass ad2antrr eqwrds3 syl
      sylibr mpbird jctird exp41 com25 pm2.43i exlimdv impbid pm5.32da rexbidva
      3imp exbidv syl5bb 3bitrd ) BUAJZDKBUBLJZDFMZHMZKBUCLLJZHCNFCNZDXTGMZYAUD
      ZOZAMZDBUFPZUGZYGUHPZKOZQZAUIZQZGCNZHCNZFCNYFYGEMZYHUGZYKXTUJYQPZOZYDRYQP
      ZOZYAKYQPZOZUKZUKZEUIZAUIZQZHCNGCNZFCNKULJXRXSYCUEUMUABKCDFHIUNUOXRYBYOFH
      CCXRXTCJZYACJZYBYOUEXTYAABCDGIUPUQURXRYPUUJFCYPYNHCNGCNXRUUKQZUUJYNHGCCUS
      UUMYNUUIGHCCUUMYDCJZUULQZQZYFYMUUHUUPYFQZYLUUGAUUQYLUUGUUQUUFYLEYESUTZYEU
      URJUUQXTYDYAVAVBUUQYQYEOZQZYLUUFUUTYLQYRYKUUEYLUUTYRYIUUTYRTYKUUTYIYRUUTY
      IYRUUTDYQYGYHUUTDYEYQUUPYFUUSVCUUQUUSVDVEVFVGVIVHVJUUTYIYKVKUUTUUEYLUUSUU
      EUUQUUSYTUUBUUDUUSXTUJYEPZYSXTSJZXTUVAOUUSFVLUVBUVAXTXTYDYASVMVNVOUJYQYEV
      PVEUUSYDRYEPZUUAYDSJZYDUVCOUUSGVLUVDUVCYDXTYDYASVQVNVORYQYEVPVEUUSYAKYEPZ
      UUCYASJZYAUVEOUUSHVLUVFUVEYAXTYDYASVRVNVOKYQYEVPVEVSWAVHVSWBVTUUQUUFYLEUU
      FUUQYLYRYKUUEUUQYLTZYRYKUUEUVGTTYRUUQYKUUEYRYLYRUUQYKUUEYRYLTYRUUQQZYKQZU
      UEQZYRYIYKUVJYRYIUVJYQDYGYHUVJYQYEDUVJUUSYQUHPZWCOZYSXTOZUUAYDOZUUCYAOZUK
      ZQZUVIUVLUUEUVPUVHYKUVLYRYKUVLTZUUQYRUVKYJRWDLZOZUVRYQYGBWEYRUVTYKUVLYRUV
      TYKQZQUVKKRWDLZWCUWAUVKUWBOYRUWAUVKUVSUWBUVTYKWFYKUVSUWBOUVTYJKRWDWGWAWHW
      AWIWJWKWLVHWMYTUVMUUBUVNUUDUVOYTUVMXTYSWNWOUUBUVNYDUUAWNWOUUDUVOYAUUCWNWO
      WPWQUVJYQCUTJZUUKUUNUULUKZQZUUSUVQUEUVHUWEYKUUEYRUWCUUQUWDYQYGBCIWRUUPUWD
      YFUUPUUKUUOQUWDUUMUUKUUOXRUUKVDWSUUKUUNUULWTXDVHWQXAXTYDYACYQXBXCXEUVHYFY
      KUUEYRUUPYFVKXAVEVFVGUVHYKUUEVCXFXGXHXIXNVIXJXKXOXLURXPXMXQ $.

    $( A simple path of length 2 between two vertices as length 3 string in a
       pseudograph.  (Contributed by Alexander van der Vekens, 28-Feb-2018.)
       (Revised by AV, 18-May-2021.) $)
    elwspths2spth $p |- ( G e. UPGraph -> ( W e. ( 2 WSPathsN G )
          <-> E. a e. V E. b e. V E. c e. V ( W = <" a b c ">
              /\ E. f E. p ( f ( SPaths ` G ) p /\ ( # ` f ) = 2
              /\ ( a = ( p ` 0 ) /\ b = ( p ` 1 ) /\ c = ( p ` 2 ) ) ) ) ) ) $=
      ( wcel c2 co wrex wceq wa cfv c1 w3a wb cvv cupgr cwwspthsn cv cs3 cspths
      cwwspthsnon wbr chash cc0 wex cn0 2nn0 wspthsnwspthsnon elwspths2on 3expb
      mpan 2rexbidva rexcom cwwlksnon cspthson simpr anim12i wspthnon syl ancom
      adantr 19.41v bitr4i cwwlks caddc cword s3cli isspthonpth sylancl cwwlksn
      vex pm3.2i wwlknon iswwlksn ax-mp a1i 3anbi1d bitrd anbi12d simprl1 cwlks
      wi cmin spthiswlk wlklenvm1 simpl oveq1 2cn pncan1 syl6eq adantl 3ad2ant1
      cc eqtrd ex 3syl s3fv0 eqcomi s3fv1 s3fv2 3pm3.2i 3jca breq2 fveq1 eqeq2d
      imp 3anbi123d 3anbi13d ad2antlr mpbird spcimedv wlklenvp1 biimpcd 3adant3
      c3 2p1e3 eqcom 3anbi123i biimpi 3ad2ant3 jca wlkpwrd anim1i 3anass sylibr
      eqwrds3 syl2anr fveq2 3ad2ant2 wlkiswwlks1 syl5com impcom bicomd syl5bb
      eleq1 s3len df-3 eqtri jctir mpdan impbid exbidv pm5.32da rexbidva 3bitrd
      exlimdv ) BUAJZDKBUBLJZDFUCZHUCZKBUFLLZJZHCMFCMZDUUNGUCZUUOUDZNZUUTUUPJZO
      ZGCMZHCMZFCMUVAAUCZEUCZBUEPZUGZUVFUHPZKNZUUNUIUVGPZNZUUSQUVGPZNZUUOKUVGPZ
      NZRZRZEUJZAUJZOZHCMGCMZFCMKUKJZUULUUMUURSULUABKCDFHIUMUPUULUUQUVDFHCCUULU
      UNCJZUUOCJZUUQUVDSUUNUUOBCDGIUNUOUQUULUVEUWCFCUVEUVCHCMGCMUULUWEOZUWCUVCH
      GCCURUWGUVCUWBGHCCUWGUUSCJZUWFOZOZUVAUVBUWAUWJUVAOZUVBUUTUUNUUOKBUSLLJZUV
      FUUTUUNUUOBUTPLUGZAUJZOZUWAUWJUVBUWOSZUVAUWJUWEUWFOZUWPUWGUWEUWIUWFUULUWE
      VAZUWHUWFVAVBZUUNUUOABKCUUTIVCVDVFUWOUWMUWLOZAUJZUWKUWAUWOUWNUWLOUXAUWLUW
      NVEUWMUWLAVGVHUWKUWTUVTAUWKUWTUVFUUTUVHUGZUIUUTPZUUNNZUVJUUTPZUUONZRZUUTB
      VIPZJZUUTUHPZKQVJLZNZOZUXDKUUTPZUUONZRZOZUVTUWJUWTUXQSUVAUWJUWMUXGUWLUXPU
      WJUWQUVFTJZUUTTVKZJZOUWMUXGSUWSUXRUXTAVPUUNUUSUUOVLZVQUUNUUOUUTUVFBCTUXSI
      VMVNUWJUWLUUTKBVOLJZUXDUXORZUXPUWJUWQUWLUYCSUWSUUNUUOBKCUUTIVRVDUWJUYBUXM
      UXDUXOUYBUXMSZUWJUWDUYDULBKUUTVSVTWAWBWCWDVFUWJUXQUVTSUVAUWJUXQUVTUWJUVSU
      XQEUUTUXSUXTUWJUYAWAUWJUVGUUTNZOZUXQUVSUYFUXQOZUVSUXBUVKUUNUXCNZUUSQUUTPZ
      NZUUOUXNNZRZRZUYGUXBUVKUYLUXBUXDUXFUXPUYFWEUXQUVKUYFUXGUXPUVKUXBUXDUXPUVK
      WGZUXFUXBUVFUUTBWFPZUGUVJUXJQWHLZNZUYNUUTUVFBWIUUTUVFBWJUYQUXPUVKUYQUXPOU
      VJUYPKUYQUXPWKUXPUYPKNZUYQUXMUXDUYRUXOUXLUYRUXIUXLUYPUXKQWHLZKUXJUXKQWHWL
      KWRJUYSKNWMKWNVTWOWPWQWPWSWTXAWQXKWPUYLUYGUYHUYJUYKUXCUUNUUNTJUXDFVPUUNUU
      SUUOTXBVTZXCUYIUUSUUSTJUYIUUSNGVPUUNUUSUUOTXDVTXCUXNUUOUUOTJUXOHVPUUNUUSU
      UOTXEVTZXCXFWAXGUYEUVSUYMSUWJUXQUYEUVIUXBUVRUYLUVKUVGUUTUVFUVHXHZUYEUVMUY
      HUVOUYJUVQUYKUYEUVLUXCUUNUIUVGUUTXIXJUYEUVNUYIUUSQUVGUUTXIXJUYEUVPUXNUUOK
      UVGUUTXIXJXLXMXNXOWTXPUWJUVSUXQEUWJUVSUXQUWJUVSOZUYEUXQVUCUYEUVGUHPZXTNZU
      VLUUNNZUVNUUSNZUVPUUONZRZOZVUCVUEVUIUVSVUEUWJUVIUVKVUEUVRUVIUVKVUEUVIUVFU
      VGUYOUGZVUDUVJQVJLZNZUVKVUEWGUVGUVFBWIZUVGUVFBXQUVKVUMVUEUVKVULXTVUDUVKVU
      LUXKXTUVJKQVJWLYAWOXJXRXAXKXSWPUVSVUIUWJUVRUVIVUIUVKUVRVUIUVMVUFUVOVUGUVQ
      VUHUUNUVLYBUUSUVNYBUUOUVPYBYCYDYEWPYFUVSUVGCVKJZUWEUWHUWFRZUYEVUJSUWJUVIU
      VKVUOUVRUVIVUKVUOVUNUVGUVFBCIYGVDWQUWJUWEUWIOVUPUWGUWEUWIUWRYHUWEUWHUWFYI
      YJUUNUUSUUOCUVGYKYLXOVUCUYEOZUXGUXPVUQUXBUXDUXFVUCUYEUXBUVSUYEUXBWGZUWJUV
      IUVKVURUVRUYEUVIUXBVUBXRWQWPXKUXDVUQUYTWAZUVSUXFUWJUYEUVKUVIUXFUVRUVKUXEU
      XNUUOUVJKUUTYMVUAWOYNXNXGVUQUXMUXDUXOVUQUXIUXLVUQUXIUVGUXHJZVUCVUTUYEUVSU
      WJVUTUVIUVKUWJVUTWGUVRUVIVUKUWJVUTVUNUWGVUKVUTWGZUWIUULVVAUWEUVGUVFBYOVFV
      FYPWQYQVFUYEUXIVUTSVUCUYEVUTUXIUVGUUTUXHYTYRWPXOUXJXTUXKUUNUUSUUOUUAUUBUU
      CUUDVUSUXOVUQVUAWAXGYFUUEWTUUKUUFVFWCUUGYSWCUUHUQYSUUIUUJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Walks in regular graphs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d G i w $.  $d K w $.  $d P w $.  $d V w $.
    rusgrnumwwlkl1.v $e |- V = ( Vtx ` G ) $.
    $( In a k-regular graph, there are k walks (as word) of length 1 starting
       at each vertex.  (Contributed by Alexander van der Vekens, 28-Jul-2018.)
       (Revised by AV, 7-May-2021.) $)
    rusgrnumwwlkl1 $p |- ( ( G RegUSGraph K /\ P e. V )
           -> ( # ` { w e. ( 1 WWalksN G ) | ( w ` 0 ) = P } ) = K ) $=
      ( vi wcel wa cc0 cfv wceq c1 co chash c2 c0 caddc wb a1i wbr cwwlksn crab
      crusgr cv cpr cedg w3a cword wne cmin cfzo wral cwwlks cn0 iswwlksn ax-mp
      1nn0 eqid iswwlks anbi1i bitri anbi1d 1p1e2 eqeq2i anbi2d 3anass wn fveq2
      hash0 syl6eq 2ne0 nesymi eqeq1 mtbiri syl necon2ai adantl biantrurd oveq1
      2m1e1 oveq2d raleqdv fzo01 raleqi c0ex 0p1e1 fveq2d preq12d eleq1d syl6bb
      csn ralsn 3bitr2d ex pm5.32rd bitrd df-3an bitr4i anbi2i 3bitrd rabbidva2
      anass ancom rusgrnumwrdl2 eqtrd ) CDUDUABEHIZJAUEZKZBLZAMCUBNZUCZOKXHOKZP
      LZXJXIMXHKZUFZCUGKZHZUHZAEUIZUCZOKDXGXLYAOXGXJXSAXKXTXGXHXKHZXJIXHQUJZXHX
      THZGUEZXHKZYEMRNZXHKZUFZXQHZGJXMMUKNZULNZUMZUHZXMMMRNZLZIZXJIZYDXRIZXNXJI
      ZIZYDXSIZXGYBYQXJYBYQSXGYBXHCUNKHZYPIZYQMUOHYBUUDSURCMXHUPUQUUCYNYPGXQCEX
      HFXQUSUTVAVBTVCXGYRYSXNIZXJIUUAXGYQUUEXJXGYQYNXNIUUEXGYPXNYNYPXNSXGYOPXMV
      DVETVFXGXNYNYSXGXNYNYSSXGXNIZYNYCYDYMIZIZUUGYSYNUUHSUUFYCYDYMVGTUUFYCUUGX
      NYCXGXNXHQXHQLZXMJLZXNVHUUIXMQOKJXHQOVIVJVKUUJXNJPLPJVLVMXMJPVNVOVPVQVRVS
      UUFYMXRYDUUFYMYJGJMULNZUMZXRUUFYJGYLUUKXNYLUUKLXGXNYKMJULXNYKPMUKNMXMPMUK
      VTWAVKWBVRWCUULYJGJWLZUMXRYJGUUKUUMWDWEYJXRGJWFYEJLZYIXPXQUUNYFXIYHXOYEJX
      HVIUUNYGMXHUUNYGJMRNMYEJMRVTWGVKWHWIWJWMVBWKVFWNWOWPWQVCYSXNXJXCWKUUAUUBS
      XGUUAYDXRYTIZIUUBYDXRYTXCUUOXSYDUUOYTXRIXSXRYTXDXNXJXRWRWSWTVBTXAXBWHABCD
      EFXEXF $.
  $}

  ${
    $d P w $.  $d Y w $.  $d Z w $.
    $( Lemma for ~ rusgrnumwwlks .  (Contributed by Alexander van der Vekens,
       23-Aug-2018.) $)
    rusgrnumwwlkslem $p |- ( Y e. { w e. Z | ( w ` 0 ) = P }
                             -> { w e. X | ( ph /\ ps ) }
                              = { w e. X | ( ph /\ ( Y ` 0 ) = P /\ ps ) } ) $=
      ( cc0 cv cfv wceq crab wcel wa w3a fveq1 eqeq1d elrab wb ibar ad2antlr
      3anass 3ancoma bitr3i syl6bb rabbidva sylbi ) FHCIZJZDKZCGLMFGMZHFJZDKZNZ
      ABNZCELAUMBOZCELKUJUMCFGUHFKUIULDHUHFPQRUNUOUPCEUMUOUPSUKUHEMUMUOUMUONZUP
      UMUOTUQUMABOUPUMABUBUMABUCUDUEUAUFUG $.
  $}

  ${
    $d G n v w $.  $d N n v w $.  $d P n v w $.  $d V n v w $.
    rusgrnumwwlk.v $e |- V = ( Vtx ` G ) $.
    rusgrnumwwlk.l $e |- L = ( v e. V , n e. NN0
                      |-> ( # ` { w e. ( n WWalksN G ) | ( w ` 0 ) = v } ) ) $.
    $( Lemma for ~ rusgrnumwwlk etc.  (Contributed by Alexander van der Vekens,
       21-Jul-2018.)  (Revised by AV, 7-May-2021.) $)
    rusgrnumwwlklem $p |- ( ( P e. V /\ N e. NN0 ) -> ( P L N )
                = ( # ` { w e. ( N WWalksN G ) | ( w ` 0 ) = P } ) ) $=
      ( cn0 cc0 cv cfv wceq cwwlksn co crab chash wa adantl wb adantr rabeqbidv
      oveq1 eqeq2 fveq2d fvex ovmpt2a ) BDCGHKLAMNZBMZOZADMZEPQZRZSNUJCOZAGEPQZ
      RZSNFUKCOZUMGOZTZUOURSVAULUPAUNUQUTUNUQOUSUMGEPUEUAUSULUPUBUTUKCUJUFUCUDU
      GJURSUHUI $.

    $( Induction base 0 for ~ rusgrnumwwlk .  Here, we do not need the
       regularity of the graph yet.  (Contributed by Alexander van der Vekens,
       24-Jul-2018.)  (Revised by AV, 7-May-2021.) $)
    rusgrnumwwlkb0 $p |- ( ( G e. USPGraph /\ P e. V ) -> ( P L 0 ) = 1 ) $=
      ( wcel wa cc0 co cv cfv wceq crab chash c1 cab cuspgr cwwlksn cs1 csn cn0
      simpr 0nn0 rusgrnumwwlklem sylancl cword df-rab a1i wwlksn0s eleq2d rabid
      syl6bb anbi1d abbidv wb w3a wrdl1s1 df-3an syl6rbb vex eleq1 fveq2 eqeq1d
      cvtx anbi12d fveq1 elab velsn 3bitr4g eleq2s adantl 3eqtrd fveq2d hashsng
      eqrdv s1cl syl ) EUAJZCGJZKZCLFMZLANZOZCPZALEUBMZQZROZCUCZUDZROZSWDWCLUEJ
      WEWKPWBWCUFUGABCDEFLGHIUHUIWDWJWMRWDWJWFWIJZWHKZATZWFEVHOZUJZJZWFROZSPZKZ
      WHKZATZWMWJWQPWDWHAWIUKULWDWPXDAWDWOXCWHWDWOWFXBAWSQZJXCWDWIXFWFWIXFPWDAE
      UMULUNXBAWSUOUPUQURWCXEWMPWBWCBXEWMBNZXEJZXGWMJZUSCWRGCWRJZXGWSJZXGROZSPZ
      KZLXGOZCPZKZXGWLPZXHXIXJXRXKXMXPUTXQCWRXGVAXKXMXPVBVCXDXQAXGBVDWFXGPZXCXN
      WHXPXSWTXKXBXMWFXGWSVEXSXAXLSWFXGRVFVGVIXSWGXOCLWFXGVJVGVIVKBWLVLVMHVNVSV
      OVPVQWCWNSPZWBWCWLGUJZJXTCGVTWLYAVRWAVOVP $.

    $d K w $.
    $( Induction base 1 for ~ rusgrnumwwlk .  (Contributed by Alexander van der
       Vekens, 28-Jul-2018.)  (Revised by AV, 7-May-2021.) $)
    rusgrnumwwlkb1 $p |- ( ( G RegUSGraph K /\ P e. V ) -> ( P L 1 ) = K ) $=
      ( crusgr wbr wcel wa c1 co cc0 cv cfv wceq crab chash cn0 rusgrnumwwlklem
      cwwlksn simpr 1nn0 sylancl rusgrnumwwlkl1 eqtrd ) EFKLZCHMZNZCOGPZQARSCTA
      OEUEPUAUBSZFUMULOUCMUNUOTUKULUFUGABCDEGOHIJUDUHACEFHIUIUJ $.

    $d G i w $.  $d N i $.
    $( Special case for graphs without edges:  There are no walks of length
       greater than 0.  (Contributed by Alexander van der Vekens, 26-Jul-2018.)
       (Revised by AV, 7-May-2021.) $)
    rusgr0edg $p |- ( ( G RegUSGraph 0 /\ P e. V /\ N e. NN )
                      -> ( P L N ) = 0 ) $=
      ( cc0 crusgr wbr wcel cn co cfv wceq chash c0 cv cwwlksn crab simp2 nnnn0
      w3a 3ad2ant3 rusgrnumwwlklem syl2anc wn wral wi cedg cusgr usgr0edg0rusgr
      cn0 wa rusgrusgr biimpcd mpd 0enwwlksnge1 sylan eleq2 noel pm2.21i syl6bi
      syl 3adant2 ralrimiv rabeq0 sylibr fveq2d hash0 syl6eq eqtrd ) EKLMZCHNZG
      ONZUFZCGFPZKAUAZQCRZAGEUBPZUCZSQZKVSVQGUPNZVTWERVPVQVRUDVRVPWFVQGUEUGABCD
      EFGHIJUHUIVSWETSQKVSWDTSVSWBUJZAWCUKWDTRVSWGAWCVPVRWAWCNZWGULZVQVPVRUQWCT
      RZWIVPEUMQTRZVRWJVPEUNNZWKEKURWLVPWKEUOUSUTEGVAVBWJWHWATNZWGWCTWAVCWMWGWA
      VDVEVFVGVHVIWBAWCVJVKVLVMVNVO $.

    $d G i n p w x y $.  $d K p y $.  $d N x y $.  $d P x y $.  $d V p y $.
    $( Induction step for ~ rusgrnumwwlk .  (Contributed by Alexander van der
       Vekens, 24-Aug-2018.)  (Revised by AV, 7-May-2021.) $)
    rusgrnumwwlks $p |- ( ( G RegUSGraph K
                           /\ ( V e. Fin /\ P e. V /\ N e. NN0 ) )
                         -> ( ( P L N ) = ( K ^ N )
                               -> ( P L ( N + 1 ) ) = ( K ^ ( N + 1 ) ) ) ) $=
      ( vy wcel wa co wceq cc0 cfv crab chash vx vp crusgr wbr cfn cn0 w3a cexp
      vi cv cwwlksn c1 simpr2 simpr3 rusgrnumwwlklem eqeq1d syl2anc cop csubstr
      caddc wb clsw cpr cedg wrex csu wi wwlksnredwwlkn0 ex 3ad2ant3 adantl imp
      eqid rabbidva adantr fveq2d simp2 pm4.71ri a1i rexbidva fveq1 rexrab cvtx
      syl6bbr simplr1 eleq1i biimpi hashwwlksnext 3syl cbvrabv rusgrnumwwlkslem
      3eqtrd eqcomd elrabi wwlksnexthasheq syl cusgr cxnn0 wral rusgrpropadjvtx
      sumeq1i cword c0 wne elrab cfzo wwlknp simpll clt nn0p1gt0 breq2 ad2antlr
      mpbird wn cle hashle00 lencl nn0red 0re lenlt bicomd sylancl nne 3bitr4rd
      cr ad2antrr con4bid jca 3adant3 sylbi lswcl preq1 eleq1d rabbidv sylancom
      rspcva exp41 com14 imp41 cmul sumeq2dv oveq1 cc wwlksnfi cfusgr rusgrusgr
      3ad2ant1 rabfi simp1 anim12i isfusgr sylibr simpl ne0i 3ad2ant2 frusgrnn0
      syl3anc nn0cnd fsumconst expp1d 3eqtr4d eqtrd peano2nn0 sylbid ) EFUCUDZI
      UEMZCIMZHUFMZUGZNZCHGOZFHUHOZPZQAUJZRZCPZAHEUKOZSZTRZUVLPZCHULUTOZGOZFUWA
      UHOZPZUVJUVGUVHUVMUVTVAUVEUVFUVGUVHUMZUVEUVFUVGUVHUNZUVGUVHNUVKUVSUVLABCD
      EGHIJKUOUPUQUVJUVTUWDUVJUVTNZUWDUVPAUWAEUKOZSZTRZUWCPZUWGUWJUVNQUWAURUSOL
      UJZPZQUWLRZCPZUWLVBRZUVNVBRVCEVDRZMZUGZLUVQVEZAUWHSZTRZUVRUWSAUWHSZTRZLVF
      ZUWCUWGUWIUXATUVJUWIUXAPUVTUVJUVPUWTAUWHUVJUVNUWHMZUVPUWTVAZUVIUXFUXGVGZU
      VEUVHUVFUXHUVGUVHUXFUXGLCUWQEHUVNUWQVMZVHVIVJVKVLVNVOVPUWGUXBUWSLQUAUJZRZ
      CPZUAUVQSZVEZAUWHSZTRZUXMUXDLVFZUXEUWGUXAUXOTUVJUXAUXOPUVTUVJUWTUXNAUWHUV
      JUXFNZUWTUWOUWSNZLUVQVEUXNUXRUWSUXSLUVQUWSUXSVAUXRUWLUVQMZNUWSUWOUWMUWOUW
      RVQVRVSVTUXLUWOUWSLUAUVQUXJUWLPUXKUWNCQUXJUWLWAUPWBWDVNVOVPUWGUVFEWCRZUEM
      ZUXPUXQPUVFUVGUVHUVEUVTWEUVFUYBIUYAUEJWFZWGALUACUWQEUWAHUWHUXMUWHVMUXIUXM
      VMWHWIUXQUXEPUWGUXMUVRUXDLUXLUVPUAAUVQUXJUVNPUXKUVOCQUXJUVNWAUPWJXAVSWLUW
      GUXEUVRFLVFZUWCUWGUVRUXDFLUWGUWLUVRMZNZUXDUWMUWRNAUWHSZTRZUWPDUJZVCZUWQMZ
      DISZTRZFUYEUXDUYHPUWGUYEUXCUYGTUYEUYGUXCUWMUWRACUWHUWLUVQWKWMVPVKUYFUXTUY
      HUYMPUYEUXTUWGUVPAUWLUVQWNVKADUWQEHIUWLJUXIWOWPUVEUVIUVTUYEUYMFPZUVEEWQMZ
      FWRMZUBUJZUYIVCZUWQMZDISZTRZFPZUBIWSZUGUVIUVTUYEUYNVGVGVGZUBDEFIJWTVUCUYO
      VUDUYPUYEUVIUVTVUCUYNUYEUVIUVTVUCUYNUYEUVINZUVTNVUCUWPIMZUYNVUEVUFUVTVUCV
      UEUWLIXBZMZUWLXCXDZNZVUFUYEUVIVUJUYEUXTUWONZUVIVUJVGZUVPUWOAUWLUVQUVNUWLP
      UVOUWNCQUVNUWLWAUPXEVUKVUHUWLTRZUWAPZUIUJZUWLRVUOULUTOUWLRVCUWQMUIQHXFOWS
      ZUGZVULUXTVUQUWOUIUWQEHIUWLJUXIXGVOVUHVUNVULVUPVUHVUNNZUVIVUJVURUVINZVUHV
      UIVUHVUNUVIXHVUSVUIQVUMXIUDZVUSVUTQUWAXIUDZUVIVVAVURUVHUVFVVAUVGHXJVJVKVU
      NVUTVVAVAVUHUVIVUMUWAQXIXKXLXMVUSVUIVUTVUHVUIXNZVUTXNZVAVUNUVIVUHVUMQXOUD
      ZUWLXCPZVVCVVBUWLVUGXPVUHVUMYEMZQYEMZVVCVVDVAVUHVUMIUWLXQXRXSVVFVVGNVVDVV
      CVUMQXTYAYBVVBVVEVAVUHUWLXCYCVSYDYFYGXMYHVIYIWPYJVLIUWLYKWPYFVUBUYNUBUWPI
      UYQUWPPZVUAUYMFVVHUYTUYLTVVHUYSUYKDIVVHUYRUYJUWQUYQUWPUYIYLYMYNVPUPYPYOYQ
      YRVJWPYSWLUUAUWGUVSFYTOZUVLFYTOZUYDUWCUVTVVIVVJPUVJUVSUVLFYTUUBVKUWGUVRUE
      MZFUUCMZUYDVVIPUWGUVQUEMZVVKUVIVVMUVEUVTUVFUVGVVMUVHUVFUYBVVMUYCEHUUDYJUU
      GXLUVPAUVQUUHWPUVJVVLUVTUVJFUVJEUUEMZUVEIXCXDZFUFMUVJUYOUVFNVVNUVEUYOUVIU
      VFEFUUFUVFUVGUVHUUIUUJEIJUUKUULUVEUVIUUMUVIVVOUVEUVGUVFVVOUVHICUUNUUOVKEF
      IJUUPUUQUURZVOUVRFLUUSUQUVJUWCVVJPUVTUVJFHVVPUWFUUTVOUVAUVBWLUVJUWDUWKVAZ
      UVTUVJUVGUWAUFMZVVQUWEUVIVVRUVEUVHUVFVVRUVGHUVCVJVKUVGVVRNUWBUWJUWCABCDEG
      UWAIJKUOUPUQVOXMVIUVD $.

    $d K x $.  $d L x y $.  $d V v x y $.
    $( In a ` K `-regular graph, the number of walks of a fixed length ` N `
       from a fixed vertex is ` K ` to the power of ` N ` .  By definition,
       ` ( N WWalksN G ) ` is the set of walks (as words) with length ` N ` ,
       and ` ( P L N ) ` is the number of walks with length ` N ` starting at
       the vertex ` P ` .  Because of the ` K `-regularity, a walk can be
       continued in ` K ` different ways at the end vertex of the walk, and
       this repeated ` N ` times.

       This theorem even holds for ` N = 0 ` : in this case, the walk consists
       of only one vertex ` P ` , so the number of walks of length ` N = 0 `
       starting with ` P ` is ` ( K ^ 0 ) = 1 ` .  (Contributed by Alexander
       van der Vekens, 24-Aug-2018.)  (Revised by AV, 7-May-2021.) $)
    rusgrnumwwlk $p |- ( ( G RegUSGraph K
                           /\ ( V e. Fin /\ P e. V /\ N e. NN0 ) )
                         -> ( P L N ) = ( K ^ N ) ) $=
      ( wcel co cexp wceq wi wa cc0 oveq2 eqeq12d vx vy cfn cn0 crusgr cv caddc
      w3a wbr c1 imbi2d weq cuspgr cusgr rusgrusgr usgruspgr syl rusgrnumwwlkb0
      simpr syl2anr cfusgr c0 wne cc anim12ci isfusgr sylibr ad2antlr frusgrnn0
      simpl ne0i nn0cnd syl3anc exp0d eqtr4d anim1i df-3an rusgrnumwwlks expcom
      syl2an2r a2d nn0ind expd com12 3impia impcom ) IUCLZCILZHUDLZUHEFUEUIZCHG
      MZFHNMZOZWGWHWIWJWMPZWIWGWHQZWNWIWOWJWMWOWJQZCUAUFZGMZFWQNMZOZPWPCRGMZFRN
      MZOZPWPCUBUFZGMZFXDNMZOZPWPCXDUJUGMZGMZFXHNMZOZPWPWMPUAUBHWQROZWTXCWPXLWR
      XAWSXBWQRCGSWQRFNSTUKUAUBULZWTXGWPXMWRXEWSXFWQXDCGSWQXDFNSTUKWQXHOZWTXKWP
      XNWRXIWSXJWQXHCGSWQXHFNSTUKWQHOZWTWMWPXOWRWKWSWLWQHCGSWQHFNSTUKWPXAUJXBWJ
      EUMLZWHXAUJOWOWJEUNLZXPEFUOZEUPUQWGWHUSABCDEGIJKURUTWPFWPEVALZWJIVBVCZFVD
      LWPXQWGQXSWOWGWJXQWGWHVJXRVEEIJVFVGWOWJUSZWHXTWGWJICVKVHXSWJXTUHFEFIJVIVL
      VMVNVOXDUDLZWPXGXKWPYBXGXKPZWPWJYBWGWHYBUHZYCYAWPYBQWOYBQYDWPWOYBWOWJVJVP
      WGWHYBVQVGABCDEFGXDIJKVRVTVSWAWBWCWDWEWF $.
  $}

  ${
    $d G n v w $.  $d K w $.  $d N n v w $.  $d P n v w $.  $d V n v w $.
    rusgrnumwwlkg.v $e |- V = ( Vtx ` G ) $.
    $( In a ` K `-regular graph, the number of walks (as words) of a fixed
       length ` N ` from a fixed vertex is ` K ` to the power of ` N ` .
       Closed form of ~ rusgrnumwwlk .  (Contributed by Alexander van der
       Vekens, 30-Sep-2018.)  (Revised by AV, 7-May-2021.) $)
    rusgrnumwwlkg $p |- ( ( G RegUSGraph K
                            /\ ( V e. Fin /\ P e. V /\ N e. NN0 ) )
           -> ( # ` { w e. ( N WWalksN G ) | ( w ` 0 ) = P } ) = ( K ^ N ) ) $=
      ( vv vn crusgr wcel cn0 wa cv cfv wceq cwwlksn co crab chash wbr cfn cexp
      w3a cc0 cmpt2 3simpc adantl eqid rusgrnumwwlklem syl rusgrnumwwlk eqtr3d
      ) CDJUAZFUBKZBFKZELKZUDZMZBEHIFLUEANOZHNPAINCQRSTOUFZRZUTBPAECQRSTOZDEUCR
      USUPUQMZVBVCPURVDUNUOUPUQUGUHAHBICVAEFGVAUIZUJUKAHBICDVAEFGVEULUM $.

    $d G f g p w $.  $d N f g p $.  $d K p $.  $d P f g p $.  $d V p $.
    $( In a k-regular graph, the number of walks of a fixed length n from a
       fixed vertex is k to the power of n.  This theorem corresponds to
       statement 11 in [Huneke] p. 2:  "The total number of walks v(0) v(1) ...
       v(n-2) from a fixed vertex v = v(0) is k^(n-2) as G is k-regular.".
       This theorem even holds for n=0: then the walk consists of only one
       vertex v(0), so the number of walks of length n=0 starting with v=v(0)
       is 1=k^0.  (Contributed by Alexander van der Vekens, 24-Aug-2018.)
       (Revised by AV, 7-May-2021.) $)
    rusgrnumwlkg $p |- ( ( G RegUSGraph K
                           /\ ( V e. Fin /\ P e. V /\ N e. NN0 ) )
                     -> ( # ` { w e. ( Walks ` G ) | ( ( # ` ( 1st ` w ) ) = N
                                               /\ ( ( 2nd ` w ) ` 0 ) = P ) } )
                        = ( K ^ N ) ) $=
      ( vp vg vf wcel wa cc0 cv cfv wceq cwwlksn co crab chash wbr cfn cn0 c1st
      crusgr w3a c2nd cwlks cexp cvv wf1o wex ovex rabex cusgr rusgrusgr adantr
      cvtx simpr3 eleq2i biimpi adantl wlksnwwlknvbij syl3anc sylibr hasheqf1oi
      3ad2ant2 f1oexbi mpsyl rusgrnumwwlkg eqtr3d ) CDUEUAZFUBKZBFKZEUCKZUFZLZM
      HNOBPZHECQRZSZTOZANZUDOTOEPMWBUGOOBPLACUHOSZTOZDEUIRVTUJKVQVTWCINUKIULZWA
      WDPVRHVSECQUMUNVQWCVTJNUKJULZWEVQCUOKZVOBCUROZKZWFVLWGVPCDUPUQVLVMVNVOUSV
      PWIVLVNVMWIVOVNWIFWHBGUTVAVGVBHJCEBAVCVDVTWCIJVHVEVTWCIUJVFVIHBCDEFGVJVK
      $.
  $}

  ${
    clwwlknclwwlkdif.a $e |- A = { w e. ( N WWalksN G ) |
                                  ( ( w ` 0 ) = X /\ ( lastS ` w ) =/= X ) } $.
    clwwlknclwwlkdif.b $e |- B = { w e. ( N WWalksN G ) |
                            ( ( lastS ` w ) = ( w ` 0 ) /\ ( w ` 0 ) = X ) } $.
    $( The set of walks of length n starting with a fixed vertex and ending not
       at this vertex is the difference between the set of walks of length n
       starting with this vertex and the set of walks of length n starting with
       this vertex and ending at this vertex.  (Contributed by Alexander van
       der Vekens, 30-Sep-2018.)  (Revised by AV, 7-May-2021.) $)
    clwwlknclwwlkdifs $p |- A = ( { w e. ( N WWalksN G ) |
                                    ( w ` 0 ) = X } \ B ) $=
      ( cc0 cv cfv wceq clsw wne wa cwwlksn crab cdif wn wb difeq2i difrab wcel
      co wo wi ianor eqeq2 notbid neqne anim2i sylbid com12 pm2.21 sylbi impcom
      ex jaoi simpl neeq2 eqcoms syl6bi imp intnanrd jca impbii rabbiia 3eqtrri
      neneq a1i eqtri ) BIAJZKZFLZVLMKZFNZOZAEDPUDZQZVNAVRQZCRZGWAVTVOVMLZVNOZA
      VRQZRVNWCSZOZAVRQVSCWDVTHUAVNWCAVRUBWFVQAVRWFVQTVLVRUCWFVQWEVNVQWEWBSZVNS
      ZUEVNVQUFZWBVNUGWGWIWHVNWGVQVNWGVOFLZSZVQVNWBWJVMFVOUHUIVNWKVQWKVPVNVOFUJ
      UKUQULUMVNVQUNURUOUPVQVNWEVNVPUSVQWBVNVNVPWGVNVPVOVMNZWGVPWLTFVMFVMVOUTVA
      VOVMVIVBVCVDVEVFVJVGVHVK $.

    $d G w $.  $d K w $.  $d N w $.  $d V w $.  $d X w $.
    clwwlknclwwlkdifnum.v $e |- V = ( Vtx ` G ) $.
    $( In a k-regular graph, the size of the set of walks of length n starting
       with a fixed vertex and ending not at this vertex is the difference
       between k to the power of n and the size of the set of walks of length n
       starting with this vertex and ending at this vertex.  (Contributed by
       Alexander van der Vekens, 30-Sep-2018.)  (Revised by AV, 7-May-2021.) $)
    clwwlknclwwlkdifnum $p |- ( ( ( G RegUSGraph K /\ V e. Fin )
                                /\ ( X e. V /\ N e. NN ) )
                              -> ( # ` A ) = ( ( K ^ N ) - ( # ` B ) ) ) $=
      ( cfn wcel wa chash cfv wceq co cmin adantl crusgr wbr cn cv cwwlksn crab
      cc0 cdif cexp clwwlknclwwlkdifs fveq2i cvtx eleq1i biimpi adantr wwlksnfi
      wss rabfi 3syl clsw simpr a1i ss2rabi eqsstri hashssdif sylancl cn0 simpl
      wi nnnn0 rusgrnumwwlkg syl13anc oveq1d eqtrd syl5eq ) DEUAUBZGLMZNZHGMZFU
      CMZNZNZBOPUGAUDZPZHQZAFDUERZUFZCUHZOPZEFUIRZCOPZSRZBWHOABCDFHIJUJUKWBWIWG
      OPZWKSRZWLWBWGLMZCWGUQWIWNQWBDULPZLMZWFLMWOVRWQWAVQWQVPVQWQGWPLKUMUNTUODF
      UPWEAWFURUSCWCUTPWDQZWENZAWFUFWGJWSWEAWFWSWEVIWCWFMWRWEVAVBVCVDWGCVEVFWBW
      MWJWKSWBVPVQVSFVGMZWMWJQVRVPWAVPVQVHUOVRVQWAVPVQVAUOWAVSVRVSVTVHTWAWTVRVT
      WTVSFVJTTAHDEFGKVKVLVMVNVO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Closed walks as words
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In general, a closed walk is an alternating sequence of vertices and edges,
  as defined in ~ df-clwlks : p(0) e(f(1)) p(1) e(f(2)) ... p(n-1) e(f(n))
  p(n), with p(n) = p(0).  Often, it is sufficient to refer to a walk by the
  (cyclic) sequence of its vertices, i.e omitting its edges in its
  representation: p(0) p(1) ... p(n-1) p(0), see the corresponding remark on
  cycles (which are special closed walks) in [Diestel] p. 7.  As for "walks as
  words" in general, the concept of a ` Word `, see ~ df-word , is also used in
  definitions ~ df-clwwlks and ~ df-clwwlksn , and the representation of a
  closed walk as the sequence of its vertices is called "closed walk as word".

  In contrast to "walks as words", the terminating vertex p(n) of a closed walk
  is omitted in the representation of a closed walk as word, see definitions
  ~ df-clwwlks and ~ df-clwwlksn , because it is always equal to the first
  vertex of the closed walk.  This represenation has the advantage that the
  vertices can be cyclically shifted without changing the represented closed
  walk.  Furthermore, the length of a closed walk (i.e. the number of its
  edges) equals the number of symbols/vertices of the word representing the
  closed walk.

  To avoid to handle the degenerate case of representing a (closed) walk of
  length 0 by the empty word, this case is excluded within the definition
  (` w =/= (/) `).  This is because a walk of length 0 is anchored at an
  arbitrary vertex by the general definition for closed walks, see ~ 0clwlkv ,
  which neither can be reflected by the empty word nor by a singleton word
  ` <" v "> ` with vertex v : ` <" v "> ` represents the walk "` v ` ` v `",
  which is a (closed) walk of length 1 (if there is an edge/loop from ` v ` to
  ` v `), see ~ loopclwwlksn1b .

  Therefore, a closed walk corresponds to a closed walk as word only for walks
  of length at least 1, see ~ clwlkclwwlk2 .  This is also the reason for
  defining the set ` ClWWalksN ` of all closed walks of a fixed length as words
  over the set of vertices as function over ` NN ` and not ` NN0 `, because
  ` ( 0 ClWWalksN G ) = (/) ` (see ~ clwwlksn0 ) would hold anyway.  In all
  other cases, however, a closed walk (of length at least 1) corresponds to a
  closed walk as word, at least in a simple pseudograph, see ~ clwlkclwwlk2 .

$)

  $c ClWWalks $.
  $c ClWWalksN $.

  $( Extend class notation with closed walks (in an undirected graph) as word
     over the set of vertices. $)
  cclwwlks $a class ClWWalks $.

  $( Extend class notation with closed walks (in an undirected graph) of a
     fixed length as word over the set of vertices. $)
  cclwwlksn $a class ClWWalksN $.

  ${
    $d g i w $.
    $( Define the set of all closed walks (in an undirected graph) as words
       over the set of vertices.  Such a word corresponds to the sequence p(0)
       p(1) ... p(n-1) of the vertices in a closed walk p(0) e(f(1)) p(1)
       e(f(2)) ... p(n-1) e(f(n)) p(n)=p(0) as defined in ~ df-clwlks .  Notice
       that the word does not contain the terminating vertex p(n) of the walk,
       because it is always equal to the first vertex of the closed walk.
       (Contributed by Alexander van der Vekens, 20-Mar-2018.)  (Revised by AV,
       24-Apr-2021.) $)
    df-clwwlks $a |- ClWWalks = ( g e. _V |-> { w e. Word ( Vtx ` g ) |
                     ( w =/= (/) /\ A. i e. ( 0 ..^ ( ( # ` w ) - 1 ) )
                               { ( w ` i ) , ( w ` ( i + 1 ) ) } e. ( Edg ` g )
                       /\ { ( lastS ` w ) , ( w ` 0 ) } e. ( Edg ` g ) ) } ) $.
  $}

  ${
    $d g n w $.
    $( Define the set of all closed walks (in an undirected graph) of a fixed
       length n as words over the set of vertices.  Such a word corresponds to
       the sequence p(0) p(1) ... p(n-1) of the vertices in a closed walk p(0)
       e(f(1)) p(1) e(f(2)) ... p(n-1) e(f(n)) p(n)=p(0) as defined in
       ~ df-clwlks .  (Contributed by Alexander van der Vekens, 20-Mar-2018.)
       (Revised by AV, 24-Apr-2021.) $)
    df-clwwlksn $a |- ClWWalksN = ( n e. NN , g e. _V |->
                                 { w e. ( ClWWalks ` g ) | ( # ` w ) = n } ) $.
  $}

  ${
    $d E g $.  $d G g i w $.  $d V g w $.
    clwwlks.v $e |- V = ( Vtx ` G ) $.
    clwwlks.e $e |- E = ( Edg ` G ) $.
    $( The set of closed walks (in an undirected graph) as words over the set
       of vertices.  (Contributed by Alexander van der Vekens, 20-Mar-2018.)
       (Revised by AV, 24-Apr-2021.) $)
    clwwlks $p |- ( ClWWalks ` G ) = { w e. Word V | ( w =/= (/)
                                   /\ A. i e. ( 0 ..^ ( ( # ` w ) - 1 ) )
                                         { ( w ` i ) , ( w ` ( i + 1 ) ) } e. E
                                   /\ { ( lastS ` w ) , ( w ` 0 ) } e. E ) } $=
      ( vg cvv wcel cclwwlks cfv cv c0 co wral wceq cedg cvtx eleq2d wne c1 cpr
      caddc cc0 chash cmin cfzo clsw w3a cword crab cmpt df-clwwlks a1i syl6eqr
      fveq2 syl ralbidv 3anbi23d rabeqbidv adantl id fvex eqeltri wrdexg rabexg
      wrdeq 3syl fvmptd wn noel syl5eq mtbiri adantr intn3an3d ralrimiva rabeq0
      fvprc wa sylibr eqtr4d pm2.61i ) DIJZDKLZAMZNUAZBMZWFLWHUBUDOWFLUCZCJZBUE
      WFUFLUBUGOUHOZPZWFUILUEWFLUCZCJZUJZAEUKZULZQWDHDWGWIHMZRLZJZBWKPZWMWSJZUJ
      ZAWRSLZUKZULZWQIKIKHIXFUMQWDAHBUNUOWRDQZXFWQQWDXGXCWOAXEWPXGXDEQXEWPQXGXD
      DSLZEWRDSUQFUPXDEVHURXGXAWLXBWNWGXGWTWJBWKXGWSCWIXGWSDRLZCWRDRUQGUPZTUSXG
      WSCWMXJTUTVAVBWDVCWDEIJZWPIJWQIJXKWDEXHIFDSVDVEUOEIVFWOAWPIVGVIVJWDVKZWEN
      WQDKVSXLWOVKZAWPPWQNQXLXMAWPXLWFWPJZVTWNWGWLXLWNVKXNXLWNWMNJWMVLXLCNWMXLC
      XINGDRVSVMTVNVOVPVQWOAWPVRWAWBWC $.

    $d E w $.  $d W i w $.
    $( Properties of a word to represent a closed walk (in an undirected
       graph).  (Contributed by Alexander van der Vekens, 20-Mar-2018.)
       (Revised by AV, 24-Apr-2021.) $)
    isclwwlks $p |- ( W e. ( ClWWalks ` G ) <-> ( ( W e. Word V /\ W =/= (/) )
                                 /\ A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) )
                                    { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E
                                 /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) $=
      ( vw c0 cfv c1 co cpr wcel cc0 chash cmin cfzo clsw wa wne caddc wral w3a
      cword crab cclwwlks wceq neeq1 fveq2 oveq1d oveq2d fveq1 eleq1d raleqbidv
      preq12d 3anbi123d elrab clwwlks eleq2i 3anass anass bicomi anbi2i 3bitr4i
      cv 3bitri ) EHVFZIUAZAVFZVHJZVJKUBLZVHJZMZBNZAOVHPJZKQLZRLZUCZVHSJZOVHJZM
      ZBNZUDZHDUEZUFZNEWENZEIUAZVJEJZVLEJZMZBNZAOEPJZKQLZRLZUCZESJZOEJZMZBNZUDZ
      TZECUGJZNWGWHTZWPWTUDZWDXAHEWEVHEUHZVIWHVSWPWCWTVHEIUIXFVOWLAVRWOXFVQWNOR
      XFVPWMKQVHEPUJUKULXFVNWKBXFVKWIVMWJVJVHEUMVLVHEUMUPUNUOXFWBWSBXFVTWQWAWRV
      HESUJOVHEUMUPUNUQURXCWFEHABCDFGUSUTXEXDWPWTTZTWGWHXGTZTXBXDWPWTVAWGWHXGVB
      XHXAWGXAXHWHWPWTVAVCVDVGVE $.
  $}

  ${
    $d G g n w $.  $d N g n w $.
    $( The set of closed walks (in an undirected graph) of a fixed length as
       words over the set of vertices.  (Contributed by Alexander van der
       Vekens, 20-Mar-2018.)  (Revised by AV, 24-Apr-2021.) $)
    clwwlksn $p |- ( N e. NN -> ( N ClWWalksN G )
                         = { w e. ( ClWWalks ` G ) | ( # ` w ) = N } ) $=
      ( vn vg cvv wcel cn cclwwlksn co cv chash cfv wceq cclwwlks wa a1i adantl
      crab c0 wi cmpt2 df-clwwlksn fveq2 wb eqeq2 adantr simpl simpr fvex rabex
      rabeqbidv ovmpt2d expcom reldmmpt2 ovprc2 fvprc rabeqdv syl6eq eqtr4d a1d
      wn rab0 pm2.61i ) BFGZCHGZCBIJZAKLMZCNZABOMZSZNZUAVFVEVLVFVEPZDECBHFVHDKZ
      NZAEKZOMZSZVKIFIDEHFVRUBNVMAEDUCZQVNCNZVPBNZPZVRVKNVMWBVOVIAVQVJWAVQVJNVT
      VPBOUDRVTVOVIUEWAVNCVHUFUGULRVFVEUHVFVEUIVKFGVMVIAVJBOUJUKQUMUNVEVBZVLVFW
      CVGTVKCBIDEHFVRIVSUOUPWCVKVIATSTWCVIAVJTBOUQURVIAVCUSUTVAVD $.
  $}

  ${
    $d N w $.  $d G w $.  $d W w $.
    $( A word over the set of vertices representing a closed walk of a fixed
       length (in an undirected graph).  (Contributed by Alexander van der
       Vekens, 15-Mar-2018.)  (Revised by AV, 24-Apr-2021.) $)
    isclwwlksn $p |- ( N e. NN -> ( W e. ( N ClWWalksN G )
                          <-> ( W e. ( ClWWalks ` G ) /\ ( # ` W ) = N ) ) ) $=
      ( vw cn wcel cclwwlksn co cv chash cfv wceq cclwwlks crab clwwlksn eleq2d
      wa fveq2 eqeq1d elrab syl6bb ) BEFZCBAGHZFCDIZJKZBLZDAMKZNZFCUGFCJKZBLZQU
      BUCUHCDABOPUFUJDCUGUDCLUEUIBUDCJRSTUA $.
  $}

  ${
    $d G i $.  $d W i $.
    clwwlkbp.v $e |- V = ( Vtx ` G ) $.
    $( Basic properties of a closed walk (in an undirected graph) as word.
       (Contributed by Alexander van der Vekens, 15-Mar-2018.)  (Revised by AV,
       24-Apr-2021.) $)
    clwwlkbp $p |- ( W e. ( ClWWalks ` G )
                        -> ( G e. _V /\ W e. Word V /\ W =/= (/) ) ) $=
      ( vi cclwwlks cfv wcel cvv cword c0 wne wa w3a elfvex cv c1 co cpr cc0
      caddc cedg chash cmin cfzo wral clsw isclwwlks simp1bi 3anass sylanbrc
      eqid ) CAFGHZAIHZCBJHZCKLZMZUNUOUPNCAFOUMUQEPZCGURQUARCGSAUBGZHETCUCGQUDR
      UERUFCUGGTCGSUSHEUSABCDUSULUHUIUNUOUPUJUK $.

    $d G n w $.  $d N n w $.  $d W w $.  $d g n w $.
    $( Basic properties of a closed walk of a fixed length as word.
       (Contributed by Alexander van der Vekens, 25-Mar-2018.)  (Revised by AV,
       24-Apr-2021.) $)
    clwwlknbp0 $p |- ( W e. ( N ClWWalksN G )
                         -> ( ( G e. _V /\ N e. NN )
                              /\ ( W e. Word V /\ ( # ` W ) = N ) ) ) $=
      ( vn vg vw cn wcel cvv wa cclwwlksn co cword chash cfv wceq cv cclwwlks
      crab df-clwwlksn elmpt2cl simpl ancomd wi isclwwlksn c0 wne simp2d anim1i
      clwwlkbp syl6bi adantr imp jca mpancom ) BIJZAKJZLZDBAMNJZUSURLZDCOJZDPQB
      RZLZLFGIKHSPQFSRHGSTQUABAMDHGFUBUCUTVALZVBVEVFURUSUTVAUDUEUTVAVEURVAVEUFU
      SURVADATQJZVDLVEABDUGVGVCVDVGUSVCDUHUIACDEULUJUKUMUNUOUPUQ $.

    $( Basic properties of a closed walk of a fixed length as word.
       (Contributed by AV, 30-Apr-2021.) $)
    clwwlknbp $p |- ( W e. ( N ClWWalksN G )
                          -> ( W e. Word V /\ ( # ` W ) = N ) ) $=
      ( cclwwlksn co wcel cvv cn wa cword chash cfv wceq clwwlknbp0 simprd ) DB
      AFGHAIHBJHKDCLHDMNBOKABCDEPQ $.

    $( A closed walk of a fixed length as word is a word over the vertices.
       (Contributed by AV, 30-Apr-2021.) $)
    clwwlksnwrd $p |- ( W e. ( N ClWWalksN G ) -> W e. Word V ) $=
      ( cclwwlksn co wcel cword chash cfv wceq clwwlknbp simpld ) DBAFGHDCIHDJK
      BLABCDEMN $.

    $d N i $.
    clwwlknp.e $e |- E = ( Edg ` G ) $.
    $( Properties of a set being a closed walk (represented by a word).
       (Contributed by Alexander van der Vekens, 17-Jun-2018.)  (Revised by AV,
       24-Apr-2021.) $)
    clwwlknp $p |- ( W e. ( N ClWWalksN G )
     -> ( ( W e. Word V /\ ( # ` W ) = N )
          /\ A. i e. ( 0 ..^ ( N - 1 ) ) { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E
          /\ { ( lastS ` W ) , ( W ` 0 ) } e. E ) ) $=
      ( cvv wcel wa cfv co c1 cpr cc0 cmin cfzo wral w3a cn cword chash wceq cv
      cclwwlksn caddc clsw clwwlknbp0 cclwwlks wb isclwwlksn ad2antlr simpr wne
      c0 isclwwlks oveq1 oveq2d raleqdv biimpd anim1d com12 3adant1 imp anim12i
      wi sylbi 3anass sylibr ex sylbid mpcom ) CIJZDUAJZKZFEUBJZFUCLZDUDZKZKZFD
      CUFMJZVTAUEZFLWCNUGMFLOBJZAPDNQMZRMZSZFUHLPFLOBJZTZCDEFGUIWAWBFCUJLJZVSKZ
      WIVOWBWKUKVNVTCDFULUMWAWKWIWAWKKVTWGWHKZKWIWAVTWKWLVPVTUNWJVSWLWJVQFUPUOK
      ZWDAPVRNQMZRMZSZWHTVSWLVGZABCEFGHUQWPWHWQWMVSWPWHKWLVSWPWGWHVSWPWGVSWDAWO
      WFVSWNWEPRVRDNQURUSUTVAVBVCVDVHVEVFVTWGWHVIVJVKVLVM $.
  $}

  $( Properties of a word to represent a closed walk of a fixed length.
     Generalization of ~ isclwwlksn .  (Contributed by AV, 25-Apr-2021.) $)
  isclwwlksng $p |- ( W e. ( N ClWWalksN G )
                      <-> ( W e. ( ClWWalks ` G ) /\ ( # ` W ) = N ) ) $=
    ( cclwwlksn co wcel cn cclwwlks cfv chash wceq wa cvv cvtx cword clwwlknbp0
    eqid simplrd c0 wne w3a clwwlkbp lennncl 3adant1 syl adantr wb eleq1 eqcoms
    adantl mpbird isclwwlksn pm5.21nii ) CBADEFZBGFZCAHIFZCJIZBKZLZUNAMFZUOCANI
    ZOFZURLABVACVAQZPRUSUOUQGFZUPVDURUPUTVBCSTZUAVDAVACVCUBVBVEVDUTVACUCUDUEUFU
    RUOVDUGZUPVFBUQBUQGUHUIUJUKABCULUM $.

  ${
    $d G i $.  $d W i $.
    isclwwlksnx.v $e |- V = ( Vtx ` G ) $.
    isclwwlksnx.e $e |- E = ( Edg ` G ) $.
    $( Properties of a word to represent a closed walk of a fixed length ,
       definition of ` ClWWalks ` expanded.  (Contributed by AV,
       25-Apr-2021.) $)
    isclwwlksnx $p |- ( N e. NN -> ( W e. ( N ClWWalksN G )
                  <-> ( ( W e. Word V /\ A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) )
                                         { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E
                          /\ { ( lastS ` W ) , ( W ` 0 ) } e. E )
                        /\ ( # ` W ) = N ) ) ) $=
      ( cn wcel c0 wne cfv c1 co cpr cc0 wa w3a bitri cword cv caddc chash cmin
      cfzo wral clsw cclwwlksn wb wi eleq1 eqcoms cn0 elnnne0 hasheq0 necon3bid
      biimpcd simplbiim syl6bi impcom imp biantrurd bicomd pm5.32da ex pm5.32rd
      wceq cclwwlks isclwwlksng isclwwlks 3anass anass anbi1i 3bitr4g ) DIJZFEU
      AZJZFKLZAUBZFMVTNUCOFMPBJAQFUDMZNUEOUFOUGZFUHMQFMPBJZRZRZRZWADVHZRZVRWDRZ
      WGRFDCUIOJZVRWBWCSZWGRVPWGWFWIVPWGWFWIUJVPWGRZVRWEWDWLVRRZWDWEWMVSWDWLVRV
      SWGVPVRVSUKZWGVPWAIJZWNVPWOUJDWADWAIULUMWOWAUNJWAQLZWNWAUOVRWPVSVRWAQFKFV
      QUPUQURUSUTVAVBVCVDVEVFVGWJFCVIMJZWGRWHCDFVJWQWFWGWQVRVSRZWBWCSZWFABCEFGH
      VKWSWRWDRWFWRWBWCVLVRVSWDVMTTVNTWKWIWGVRWBWCVLVNVO $.
  $}

  ${
    $d G i $.  $d W i $.
    $( A word representing a closed walk of length ` N ` also represents a walk
       of length ` N - 1 ` .  The walk is one edge shorter than the closed
       walk, because the last edge connecting the last with the first vertex is
       missing.  For example, if ` <" a b c "> e. ( 3 ClWWalksN G ) `
       represents a closed walk "abca" of length 3, then
       ` <" a b c "> e. ( 2 WWalksN G ) ` represents a walk "abc" (not closed
       if ` a =/= c ` ) of length 2, and ` <" a b c a "> e. ( 3 WWalksN G ) `
       represents also a closed walk "abca" of length 3.  (Contributed by AV,
       24-Jan-2022.) $)
    clwwlksnwwlksn $p |- ( ( N e. NN /\ W e. ( N ClWWalksN G ) )
                           -> W e. ( ( N - 1 ) WWalksN G ) ) $=
      ( vi wcel co wa c1 cmin cfv caddc cpr cc0 wceq w3a eqid wi idd syl com12
      cn cclwwlksn cwwlksn cvtx cword cv cedg chash cfzo wral wne clsw cclwwlks
      c0 isclwwlksn isclwwlks anbi1i syl6bb cc nncn npcan1 eqcomd eqeq2d biimpd
      3anim123d 3exp a1dd adantr 3imp1 sylbid imp cn0 nnm1nn0 iswwlksnx mpbird
      wb ) BUAEZCBAUBFEZGCBHIFZAUCFEZCAUDJZUEEZDUFZCJWCHKFCJLAUGJZEDMCUHJZHIFUI
      FUJZWEVSHKFZNZOZVQVRWIVQVRWBCUNUKZGZWFCULJMCJLWDEZOZWEBNZGZWIVQVRCAUMJEZW
      NGWOABCUOWPWMWNDWDAWACWAPZWDPZUPUQURWOVQWIWKWFWLWNVQWIQZWBWFWLWNWSQZQQWJW
      BWFWTWLWBWFWNWSVQWBWFWNOWIVQWBWBWFWFWNWHVQWBRVQWFRVQWNWHVQBWGWEVQWGBVQBUS
      EWGBNBUTBVASVBVCVDVETVFVGVHVITVJVKVQVTWIVPZVRVQVSVLEXABVMDWDAVSWACWQWRVNS
      VHVO $.

    $d N i $.
    $( The last but one vertex in a closed walk is a neighbor of the first
       vertex of the closed walk.  (Contributed by AV, 17-Feb-2022.) $)
    clwwlksnlbonbgr1 $p |- ( ( G e. USGraph /\ W e. ( N ClWWalksN G ) )
                         -> ( W ` ( N - 1 ) ) e. ( G NeighbVtx ( W ` 0 ) ) ) $=
      ( vi cusgr wcel cclwwlksn co wa c1 cmin cfv cc0 cnbgr cpr cedg cvtx cword
      chash eqid wceq cv caddc cfzo wral clsw clwwlknp wi oveq1 fveq2d sylan9eq
      w3a lsw preq1d eleq1d biimpd a1d 3imp adantl wb nbusgreledg adantr mpbird
      syl ) AEFZCBAGHFZIBJKHZCLZAMCLZNHFZVHVIOZAPLZFZVFVMVEVFCAQLZRZFZCSLZBUAZI
      ZDUBZCLVTJUCHCLOVLFDMVGUDHUEZCUFLZVIOZVLFZULVMDVLABVNCVNTVLTZUGVSWAWDVMVS
      WDVMUHWAVSWDVMVSWCVKVLVSWBVHVIVPVRWBVQJKHZCLVHCVOUMVRWFVGCVQBJKUIUJUKUNUO
      UPUQURVDUSVEVJVMUTVFVLAVIVHWEVAVBVC $.
  $}

  ${
    $d G w $.  $d N w $.
    $( Conditions for ` ClWWalksN ` not being defined.  (Contributed by
       Alexander van der Vekens, 15-Sep-2018.)  (Revised by AV,
       24-Apr-2021.) $)
    clwwlksnndef $p |- ( ( G e/ _V \/ N e/ NN )
                         -> ( N ClWWalksN G ) = (/) ) $=
      ( vw cclwwlksn co c0 wceq cvv wnel cn wo wn cv wcel wex neq0 wa cvtx nnel
      cfv cword chash eqid clwwlknbp0 ioran anbi12i sylbbr adantr exlimiv sylbi
      syl con4i ) BADEZFGZAHIZBJIZKZUNLCMZUMNZCOUQLZCUMPUSUTCUSAHNZBJNZQZURARTZ
      UANURUBTBGQZQUTABVDURVDUCUDVCUTVEUTUOLZUPLZQVCUOUPUEVFVAVGVBAHSBJSUFUGUHU
      KUIUJUL $.
  $}

  $( A closed walk of a fixed length as word is a closed walk (in an undirected
     graph) as word.  (Contributed by Alexander van der Vekens, 15-Mar-2018.)
     (Revised by AV, 24-Apr-2021.) $)
  clwwlkclwwlkn $p |- ( P e. ( N ClWWalksN G )
                        -> P e. ( ClWWalks ` G ) ) $=
    ( cvv wcel cn wa cvtx cfv cword chash wceq cclwwlksn co cclwwlks clwwlknbp0
    eqid wi isclwwlksn simpl syl6bi ad2antlr mpcom ) BDEZCFEZGABHIZJEAKICLZGZGA
    CBMNEZABOIEZBCUFAUFQPUEUIUJRUDUHUEUIUJUGGUJBCASUJUGTUAUBUC $.

  ${
    $d G w $.  $d N w $.
    $( The closed walks of a fixed length as words are closed walks (in an
       undirected graph) as words.  (Contributed by Alexander van der Vekens,
       15-Mar-2018.)  (Revised by AV, 12-Apr-2021.) $)
    clwwlkssclwwlksn $p |- ( N ClWWalksN G ) C_ ( ClWWalks ` G ) $=
      ( vw cclwwlksn co cclwwlks cfv cv clwwlkclwwlkn ssriv ) CBADEAFGCHABIJ $.
  $}

  ${
    $d E i $.  $d P i $.
    $( Lemma 1 for ~ clwlkclwwlklem2a .  (Contributed by Alexander van der
       Vekens, 21-Jun-2018.)  (Revised by AV, 11-Apr-2021.) $)
    clwlkclwwlklem2a1 $p |- ( ( P e. Word V /\ 2 <_ ( # ` P ) )
              -> ( ( ( lastS ` P ) = ( P ` 0 )
                     /\ ( A. i e. ( 0 ..^ ( ( ( ( # ` P ) - 1 ) - 0 ) - 1 ) )
                          { ( P ` i ) , ( P ` ( i + 1 ) ) } e. ran E
                     /\ { ( P ` ( ( # ` P ) - 2 ) ) , ( P ` 0 ) } e. ran E ) )
                   -> A. i e. ( 0 ..^ ( ( # ` P ) - 1 ) )
                          { ( P ` i ) , ( P ` ( i + 1 ) ) } e. ran E ) ) $=
      ( wcel c2 cfv wa cc0 wceq c1 co cmin cfzo wral wi eqtrd adantr oveq2d a1i
      cword chash cle wbr cv caddc cpr crn csn cun cn0 cc lencl nn0cn peano2cnm
      clsw subid1d oveq1d sub1m1 raleqdv biimpcd adantl impcom lsw 2m1e1 eqcomd
      3syl syl 2cnd subsubd fveq2d wb eqeq1 mpbid preq2d eleq1d biimpd ex com13
      cvv ovexd fveq2 oveq1 preq12d ralunsn mpbir2and 1e2m1 cuz cz nn0re cr 2re
      1cnd subge0d biimprd nn0z 2z zsubcld jctild imp elnn0z elnn0uz fzosplitsn
      sylibr sylib mpbird ) ADUAZEZFAUBGZUCUDZHZAUPGZIAGZJZBUEZAGZXOKUFLZAGZUGZ
      CUHZEZBIXIKMLZIMLZKMLZNLZOZXIFMLZAGZXMUGZXTEZHZHZYABIYBNLZOZXKYLHZYNYABIY
      GNLZYGUIUJZOZYOYRYABYPOZYHYGKUFLZAGZUGZXTEZYLXKYSYKXKYSPZXNYFUUDYJXKYFYSX
      KYABYEYPXKYDYGINXHYDYGJZXJXHXIUKEZXIULEZUUEDAUMZXIUNZUUGYDYBKMLYGUUGYCYBK
      MUUGYBXIUOUQURXIUSQVGRSUTVARVBVCYLXKUUCYKXNXKUUCPZYJXNUUJPYFXKXNYJUUCXKXN
      YJUUCPXKXNHZYJUUCUUKYIUUBXTUUKXMUUAYHUUKXLUUAJZXMUUAJZXKUULXNXHUULXJXHXLY
      BAGUUAAXGVDXHYBYTAXHYBXIFKMLZMLZYTXHKUUNXIMXHUUNKUUNKJXHVETVFSXHXIFKXHUUF
      UUGUUHUUIVHXHVIXHWMVJZQVKQRRXNUULUUMVLXKXLXMUUAVMVBVNVOVPVQVRVSVBVCVCYOYG
      VTEYRYSUUCHVLYOXIFMWAYAUUCBYPYGVTXOYGJZXSUUBXTUUQXPYHXRUUAXOYGAWBUUQXQYTA
      XOYGKUFWCVKWDVPWEVHWFYOYABYMYQXKYMYQJYLXKYMIYTNLZYQXHYMUURJXJXHYBYTINXHYB
      UUOYTXHKUUNXIMKUUNJXHWGTSUUPQSRXKYGIWHGEZUURYQJXKYGUKEZUUSXKYGWIEZIYGUCUD
      ZHZUUTXHXJUVCXHUUFXJUVCPUUHUUFXJUVBUVAUUFUVBXJUUFXIFXIWJFWKEUUFWLTWNWOUUF
      XIFXIWPFWIEUUFWQTWRWSVHWTYGXAXDYGXBXEIYGXCVHQRUTXFVR $.
  $}

  ${
    $d P x $.
    clwlkclwwlklem2.f $e |- F = ( x e. ( 0 ..^ ( ( # ` P ) - 1 ) ) |->
                            if ( x < ( ( # ` P ) - 2 ) ,
                                 ( `' E ` { ( P ` x ) , ( P ` ( x + 1 ) ) } ) ,
                                 ( `' E ` { ( P ` x ) , ( P ` 0 ) } ) ) ) $.
    $( Lemma 2 for ~ clwlkclwwlklem2a .  (Contributed by Alexander van der
       Vekens, 21-Jun-2018.) $)
    clwlkclwwlklem2a2 $p |- ( ( P e. Word V /\ 2 <_ ( # ` P ) )
                               -> ( # ` F ) = ( ( # ` P ) - 1 ) ) $=
      ( wcel c2 chash cfv wbr wa c1 cmin co cn0 cc0 clt adantr cr cword cle wfn
      cfzo wceq cn lencl cz nn0z 0red 2re a1i nn0re 2pos simpr ltletrd sylanbrc
      elnnz sylan nnm1nn0 syl cv caddc cpr ccnv cif fvex ifex ffzo0hash sylancl
      fnmpti ) BEUAGZHBIJZUBKZLZVMMNOZPGZDQVPUDOZUCDIJVPUEVOVMUFGZVQVLVMPGZVNVS
      EBUGVTVNLZVMUHGZQVMRKVSVTWBVNVMUISWAQHVMWAUJHTGWAUKULVTVMTGVNVMUMSQHRKWAU
      NULVTVNUOUPVMURUQUSVMUTVAAVRAVBZVMHNORKZWCBJZWCMVCOBJVDZCVEZJZWEQBJVDZWGJ
      ZVFDWDWHWJWFWGVGWIWGVGVHFVKDVPVIVJ $.

    $d E x $.  $d V x $.
    $( Lemma 3 for ~ clwlkclwwlklem2a .  (Contributed by Alexander van der
       Vekens, 21-Jun-2018.) $)
    clwlkclwwlklem2a3 $p |- ( ( P e. Word V /\ 2 <_ ( # ` P ) )
                                -> ( P ` ( # ` F ) ) = ( lastS ` P ) ) $=
      ( cword wcel c2 chash cfv cle wbr wa clsw c1 cmin co wceq lsw adantr
      clwlkclwwlklem2a2 eqcomd fveq2d eqtr2d ) BEGZHZIBJKZLMZNZBOKZUHPQRZBKZDJK
      ZBKUGUKUMSUIBUFTUAUJULUNBUJUNULABCDEFUBUCUDUE $.

    $d I x $.
    $( Lemma 4a for ~ clwlkclwwlklem2a .  (Contributed by Alexander van der
       Vekens, 22-Jun-2018.) $)
    clwlkclwwlklem2fv1 $p |- ( ( ( # ` P ) e. NN0
                                   /\ I e. ( 0 ..^ ( ( # ` P ) - 2 ) ) )
               -> ( F ` I ) = ( `' E ` { ( P ` I ) , ( P ` ( I + 1 ) ) } ) ) $=
      ( cfv wcel cc0 c2 cmin co clt wbr c1 caddc cpr a1i fveq2d cz chash cn0 wa
      cfzo cv ccnv cif cvv cmpt wceq breq1 fveq2 oveq1 preq12d preq1d ifbieq12d
      elfzolt2 adantl iftrued sylan9eqr cuz wss cle nn0z 2z zsubcld peano2zm cr
      syl 1red nn0re 1le2 lesub2dd eluz2 syl3anbrc fzoss2 sselda fvexd fvmptd
      2re ) BUAGZUBHZEIWAJKLZUDLZHZUCZAEAUEZWCMNZWGBGZWGOPLZBGZQZCUFZGZWIIBGZQZ
      WMGZUGZEBGZEOPLZBGZQZWMGZIWAOKLZUDLZDUHDAXEWRUIUJWFFRWGEUJZWFWREWCMNZXCWS
      WOQZWMGZUGXCXFWHXGWNWQXCXIWGEWCMUKXFWLXBWMXFWIWSWKXAWGEBULZXFWJWTBWGEOPUM
      SUNSXFWPXHWMXFWIWSWOXJUOSUPWFXGXCXIWEXGWBEIWCUQURUSUTWBWDXEEWBXDWCVAGHZWD
      XEVBWBWCTHXDTHZWCXDVCNXKWBWAJWAVDZJTHWBVERVFWBWATHXLXMWAVGVIWBOJWAWBVJJVH
      HWBVTRWAVKOJVCNWBVLRVMWCXDVNVOWCIXDVPVIVQWFXBWMVRVS $.

    $( Lemma 4b for ~ clwlkclwwlklem2a .  (Contributed by Alexander van der
       Vekens, 22-Jun-2018.) $)
    clwlkclwwlklem2fv2 $p |- ( ( ( # ` P ) e. NN0 /\ 2 <_ ( # ` P ) )
                 -> ( F ` ( ( # ` P ) - 2 ) )
                    = ( `' E ` { ( P ` ( ( # ` P ) - 2 ) ) , ( P ` 0 ) } ) ) $=
      ( cfv wcel c2 wbr wa co clt c1 cpr cc0 wceq a1i cz adantr cr cn0 cle cmin
      chash cv caddc ccnv cif cfzo cvv cmpt wn wi simpr 2z jctir zsubcl eqeltrd
      nn0z syl ex zre nn0re 2re resubcld lttri3 syl2anr simpl syl6bi syld com13
      pm2.43i impcom iffalsed fveq2 adantl preq1d fveq2d subge0d biimpar elnn0z
      wb eqtrd cn sylanbrc nn0ge2m1nn 1red 1lt2 ltsub2dd elfzo0 syl3anbrc fvexd
      fvmptd ) BUDFZUAGZHWNUBIZJZAWNHUCKZAUEZWRLIZWSBFZWSMUFKBFNCUGZFZXAOBFZNZX
      BFZUHZWRBFZXDNZXBFZOWNMUCKZUIKZDUJDAXLXGUKPWQEQWQWSWRPZJZXGXFXJXNWTXCXFXM
      WQWTULZXMWQXOUMWQXMXMXOWQXMWSRGZXMXOUMZWQXMXPXNWSWRRWQXMUNWQWRRGZXMWOXRWP
      WOWNRGZHRGZJZXRWOXSXTWNUSUOUPZWNHUQZUTSSURVAWQXPXQWQXPJXMXOWRWSLIULZJZXOX
      PWSTGWRTGZXMYEWBWQWSVBWOYFWPWOWNHWNVCZHTGZWOVDQZVESWSWRVFVGXOYDVHVIVAVJVK
      VLVMVNXNXEXIXBXNXAXHXDXMXAXHPWQWSWRBVOVPVQVRWCWQWRUAGZXKWDGWRXKLIWRXLGWQX
      ROWRUBIZYJWQYAXRWOYAWPYBSYCUTWOYKWPWOWNHYGYIVSVTWRWAWEWNWFWQMHWNWQWGYHWQV
      DQWOWNTGWPYGSMHLIWQWHQWIWRXKWJWKWQXIXBWLWM $.

    $( Lemma 4 for ~ clwlkclwwlklem2a .  (Contributed by Alexander van der
       Vekens, 21-Jun-2018.)  (Revised by AV, 11-Apr-2021.) $)
    clwlkclwwlklem2a4 $p |- ( ( E : dom E -1-1-> R /\ P e. Word V
                                /\ 2 <_ ( # ` P ) )
    -> ( ( ( lastS ` P ) = ( P ` 0 ) /\ I e. ( 0 ..^ ( ( # ` P ) - 1 ) ) )
         -> ( { ( P ` I ) , ( P ` ( I + 1 ) ) } e. ran E
              -> ( E ` ( F ` I ) ) = { ( P ` I ) , ( P ` ( I + 1 ) ) } ) ) ) $=
      ( wcel c2 cfv cc0 wceq c1 cmin co wa wi adantr imp cdm wf1 cword cle clsw
      chash wbr w3a cfzo caddc cpr crn fveq2 cn0 lencl clwlkclwwlklem2fv2 sylan
      ccnv sylan9eqr ex 3adant1 ad2antrr impcom fveq2d wf1o 3ad2ant1 lsw eqeq1d
      f1f1orn cc nn0cn id 2cnd 1cnd subsubd 2m1e1 a1i oveq2d eqtr3d 3syl eqcoms
      wb eqeq2 adantl mpbird sylbid 3ad2ant2 com12 preq2d preq12d eleq1d biimpd
      oveq1 impancom f1ocnvfv2 eqcom biimpi 1e2m1 syl eqtrd eqtr4d exp31 3eqtrd
      syl2an2 wn simpll cn clt syl6eq eleq2d subidi eqeq2d notbid anbi12d elsni
      2cn csn pm2.24d fzo01 eleq2s syl6bi adantld wne df-ne nn0re simpr leltned
      cr 2re elfzo0 simp-4l cz nn0z zsubcld posdifd biimpa elnnz sylanbrc com23
      2z ad5ant24 peano2zm zltlem1 syl2an subsub4d 1p1e2 breq2d bitr2i resubcld
      bitrd necom ad2antlr leltne bicomd syl3anc 3jca exp41 com25 3adant2 sylbi
      syl5bi com13 sylbird syl5bir pm2.61i sylibr jca clwlkclwwlklem2fv1 simprr
      expd pm2.61ian ) DUAZCDUBZBGUCZIZJBUFKZUDUGZUHZBUEKZLBKZMZFLUVPNOPZUIPZIZ
      QZFBKZFNUJPZBKZUKZDULZIZFEKZDKZUWIMZFUVPJOPZMZUVRUWEQZUWKQZUWNUWPUWRQZUWM
      UWOBKZUVTUKZDURZKZDKZUXAUWIUWSUWLUXCDUWRUWPUWLUXCMZUVRUWPUXERZUWEUWKUVOUV
      QUXFUVMUVOUVQQZUWPUXEUWPUXGUWLUWOEKZUXCFUWOEUMUVOUVPUNIZUVQUXHUXCMGBUOZAB
      DEHUPUQUSUTVAVBVCVDUWRUVLUWJDVEZUWPUXAUWJIZUXDUXAMUVRUXKUWEUWKUVMUVOUXKUV
      QUVLCDVIVFVBZUWRUWPUXLUWQUWPUWKUXLUWQUWPQZUWKUXLUXNUWIUXAUWJUXNUWIUXAMZUW
      TUWONUJPZBKZUKZUXAMZUXNUXQUVTUWTUWQUXQUVTMZUWPUWEUVRUXTUWAUVRUXTRUWDUVRUW
      AUXTUVOUVMUWAUXTRUVQUVOUWAUWBBKZUVTMZUXTUVOUVSUYAUVTBUVNVGVHZUVOUYBUXTUVO
      UYBQZUXTUXQUYAMZUYDUXPUWBBUVOUXPUWBMZUYBUVOUXIUVPVJIZUYFUXJUVPVKZUYGUVPJN
      OPZOPZUXPUWBUYGUVPJNUYGVLUYGVMUYGVNVOUYGUYINUVPOUYINMUYGVPVQVRVSVTSVDUYBU
      XTUYEWBZUVOUYKUVTUYAUVTUYAUXQWCWAWDWEUTWFWGWHSVCSWIUWPUXOUXSWBUWQUWPUWIUX
      RUXAUWPUWFUWTUWHUXQFUWOBUMUWPUWGUXPBFUWONUJWMVDWJZVHWDWEWKWLWNVCUVLUWJUXA
      DWOXDUWRUWPUXAUWIMZUWQUWPUYMRZUWKUWEUVRUYNUWAUVRUYNRUWDUVRUWAUYNUVOUVMUWA
      UYNRUVQUVOUWAUWPUYMUVOUWAQZUWPQUXAUXRUWIUYOUXAUXRMUWPUYOUVTUXQUWTUVOUWAUV
      TUXQMZUVOUWAUYBUYPUYCUVOUYBUYPUYBUVOUVTUYAUXQUYBUVTUYAMUYAUVTWPWQUVOUWBUX
      PBUVOUWBUYJUXPUVONUYIUVPONUYIMUVOWRVQVRUVOUVPJNUVOUXIUYGUXJUYHWSUVOVMUVOV
      NVOWTVDUSUTWFTWISUWPUWIUXRMUYOUYLWDXAXBWGWHSVCSVCXCUWPXEZUWRQZUWMUWIUXBKZ
      DKZUWIUYRUWLUYSDUYRUXIFLUWOUIPIZQZUWLUYSMUWRUYQVUBUWQUYQVUBRZUWKUWEUVRVUC
      UWDUVRVUCRUWAUVRUWDVUCUVRUWDUYQVUBUVOUVQUWDUYQQZVUBRZUVMUVOUVQVUEUVOUXIUV
      QVUERUXJUXIUVQVUDVUBUXIUVQQZVUDQZUXIVUAUXIUVQVUDXFVUGFUNIZUWOXGIZFUWOXHUG
      ZUHZVUAUVPJMZVUGVUKRVULVUDVUKVUFVULVUDFLNUIPZIZFLMZXEZQVUKVULUWDVUNUYQVUP
      VULUWCVUMFVULUWBNLUIVULUWBUYINUVPJNOWMVPXIVRXJVULUWPVUOVULUWOLFVULUWOJJOP
      LUVPJJOWMJXPXKXIXLXMXNVUNVUPVUKVUPVUKRFLXQZVUMFVUQIVUOVUKFLXOXRXSXTTYAYBV
      UGVULXEZVUKVUFVUDVURVUKRVUFVURVUDVUKVURUVPJYCZVUFVUDVUKRZUVPJYDVUFVUSJUVP
      XHUGZVUTVUFJUVPJYHIZVUFYIVQUXIUVPYHIUVQUVPYEZSUXIUVQYFYGUXIVVAVUTRUVQVUDV
      VAUXIVUKUWDUYQVVAUXIVUKRRZUWDVUHUWBXGIZFUWBXHUGZUHUYQVVDRZFUWBYJVUHVVFVVG
      VVEVUHVVFVVGVUHUXIUYQVVAVVFVUKVUHUXIUYQVVAVVFVUKRVUHUXIQZUYQQZVVAQZVVFVUK
      VVJVVFQVUHVUIVUJVUHUXIUYQVVAVVFYKUXIVVAVUIVUHUYQVVFUXIVVAQUWOYLIZLUWOXHUG
      ZVUIUXIVVKVVAUXIUVPJUVPYMZJYLIUXIYTVQYNSUXIVVAVVLUXIJUVPVVBUXIYIVQZVVCYOY
      PUWOYQYRUUAVVJVVFVUJVVIVVFVUJRZVVAVVHUYQVVOVVHVVFUYQVUJVVHVVFFUWOUDUGZUYQ
      VUJRZVVHVVFFUWBNOPZUDUGZVVPVUHFYLIUWBYLIZVVFVVSWBUXIFYMUXIUVPYLIVVTVVMUVP
      UUBWSFUWBUUCUUDVVHVVRUWOFUDVVHVVRUVPNNUJPZOPUWOVVHUVPNNUXIUYGVUHUYHWDVVHV
      NZVWBUUEVVHVWAJUVPOVWAJMVVHUUFVQVRWTUUGUUJVVHVVPVVQUYQUWOFYCZVVHVVPQZVUJV
      WCFUWOYCUYQUWOFUUKFUWOYDUUHVWDVWCVUJVWDFYHIZUWOYHIZVVPVWCVUJWBVUHVWEUXIVV
      PFYEVBUXIVWFVUHVVPUXIUVPJVVCVVNUUIUULVVHVVPYFVWEVWFVVPUHVUJVWCFUWOUUMUUNU
      UOWLUVAUTWFYSTSTUUPUTUUQUURTUUSUUTTUVBSUVCUVDYSTWHUVEFUWOYJUVFUVGXBWSTVAU
      VJWHWDVCSVCABDEFHUVHWSVDUWRUXKUYQUWKUYTUWIMUXMUYQUWQUWKUVIUVLUWJUWIDWOXDW
      TUVKXB $.

    $d E i $.  $d F i $.  $d P i $.  $d R i x $.  $d V i $.
    $( Lemma for ~ clwlkclwwlklem2 .  (Contributed by Alexander van der Vekens,
       22-Jun-2018.)  (Revised by AV, 11-Apr-2021.) $)
    clwlkclwwlklem2a $p |- ( ( E : dom E -1-1-> R /\ P e. Word V
                               /\ 2 <_ ( # ` P ) )
              -> ( ( ( lastS ` P ) = ( P ` 0 )
                     /\ ( A. i e. ( 0 ..^ ( ( ( ( # ` P ) - 1 ) - 0 ) - 1 ) )
                          { ( P ` i ) , ( P ` ( i + 1 ) ) } e. ran E
                     /\ { ( P ` ( ( # ` P ) - 2 ) ) , ( P ` 0 ) } e. ran E ) )
                   -> ( ( F e. Word dom E /\ P : ( 0 ... ( # ` F ) ) --> V
                               /\ A. i e. ( 0 ..^ ( # ` F ) ) ( E ` ( F ` i ) )
                                          = { ( P ` i ) , ( P ` ( i + 1 ) ) } )
                               /\ ( P ` 0 ) = ( P ` ( # ` F ) ) ) ) ) $=
      ( wcel c2 cfv wbr cc0 wceq c1 co cmin wa adantr wi cdm wf1 cword cle clsw
      chash w3a cv caddc cpr crn cfzo wral cfz wf clt ccnv cif wn wo simpl wf1o
      f1f1orn 3ad2ant1 ad2antrl cn0 cn elfzo0 lencl cz elnn0z cr 0red zre nn0re
      2re resubcld adantl lelttr syl3anc nn0z 2z zsubcld anim1i elnnz sylibr wb
      a1i nn0cn peano2cnm syl subid1d oveq1d subsub4d 1p1e2 oveq2d eqtrd eleq1d
      cc 1cnd mpbird ex syld exp4b com23 sylbi com12 impcom df-2 eqcomd 3eqtr2d
      imp breq2d biimpcd syl3anbrc exp32 a1d com24 com25 3adant2 3adant1 syl7bi
      com14 com13 imp31 fveq2 oveq1 fveq2d preq12d expdimp f1ocnvdm syl2anc jca
      rspcdv orcd anim12i biimpd mpbid oveq2 eqcoms zltlem1 sylbid lenlt ancomd
      peano2zm impancom lttri3 exp31 syl5com 3ad2ant2 olcd pm2.61ian ifel fmptd
      preq1d iswrdi wrdf clwlkclwwlklem2a2 fzoval 3syl syldan clwlkclwwlklem2a1
      sylan9eq feq2d clwlkclwwlklem2a4 impl ralimdva raleqdv imbi2d syl5ibr mpd
      mpcom adantrr 3jca clwlkclwwlklem2a3 eqeq2d ) EUAZCEUBZBGUCIZJBUFKZUDLZUG
      ZBUEKZMBKZNZDUHZBKZUWFOUIPZBKZUJZEUKZIZDMUVTOQPZMQPZOQPZULPZUMZUVTJQPZBKZ
      UWDUJZUWKIZRZRZFUVQUCIZMFUFKZUNPZGBUOZUWFFKEKUWJNZDMUXEULPZUMZUGZUWDUXEBK
      ZNZRUWBUXCRZUXKUXMUXNUXDUXGUXJUXNMUWMULPZUVQFUOUXDUXNAUXOAUHZUWRUPLZUXPBK
      ZUXPOUIPZBKZUJZEUQZKZUXRUWDUJZUYBKZURZUVQFUXNUXPUXOIZRZUXQUYCUVQIZRZUXQUS
      ZUYEUVQIZRZUTZUYFUVQIUXQUYHUYNUXQUYHRZUYJUYMUYOUXQUYIUXQUYHVAUYOUVQUWKEVB
      ZUYAUWKIZUYIUXNUYPUXQUYGUWBUYPUXCUVRUVSUYPUWAUVQCEVCVDSZVEUYHUXQUYQUXNUYG
      UXQUYQUXCUWBUYGUXQRZUYQTZUWQUWBUYTTUWEUXAUYSUWBUWQUYQUYSUWBUWQUYQTUYSUWBR
      ZUWLUYQDUXPUWPUYGUXQUWBUXPUWPIZUWBUXQUYGVUBUYGUXPVFIZUWMVGIZUXPUWMUPLZUGZ
      UWBUXQVUBUXPUWMVHZUVSUWAUXQVUFVUBTTZUVRUVSUWAVUHUVSUVTVFIZUWAVUHTGBVIZVUF
      UWAUXQVUIVUBVUCVUEUWAUXQVUIVUBTTTZVUDVUCVUEVUKVUCVUIUWAUXQVUEVUBVUCVUIUWA
      UXQVUEVUBTTTVUCVUIRZVUEUXQUWAVUBVULUXQUWAVUBTTVUEVULUXQUWAVUBVULUXQUWARZR
      VUCUWOVGIZUXPUWOUPLZVUBVULVUCVUMVUCVUIVASVUMVULVUNUXQVULVUNTUWAVULUXQVUNV
      UCVUIUXQVUNTZVUCUXPVJIZMUXPUDLZRVUIVUPTZUXPVKVUQVURVUSVUQVUIVURVUPVUQVUIV
      URUXQVUNVUQVUIRZVURUXQRZMUWRUPLZVUNVUTMVLIUXPVLIZUWRVLIZVVAVVBTVUTVMVUQVV
      CVUIUXPVNSVUIVVDVUQVUIUVTJUVTVOJVLIVUIVPWHVQZVRMUXPUWRVSVTVUIVVBVUNTVUQVU
      IVVBVUNVUIVVBRZVUNUWRVGIZVVFUWRVJIZVVBRVVGVUIVVHVVBVUIUVTJUVTWAZJVJIVUIWB
      WHWCWDUWRWEWFVUIVUNVVGWGVVBVUIUWOUWRVGVUIUWOUWMOQPZUWRVUIUWNUWMOQVUIUWMVU
      IUVTWSIUWMWSIUVTWIZUVTWJWKWLZWMVUIVVJUVTOOUIPZQPZUWRVUIUVTOOVVKVUIWTZVVOW
      NZVUIVVMJUVTQVVMJNVUIWOWHWPWQZWQWRSXAXBVRXCXDXEXLXFXLXGSXHVUMVULVUOUXQVUL
      VUOTUWAVULUXQVUOVULUWRUWOUXPUPVUIUWRUWONVUCVUIUWRVVNVVJUWOVUIJVVMUVTQJVVM
      NVUIXIWHWPVVPVUIUWMUWNOQVUIUWNUWMVVLXJWMXKVRXMXNSXHUXPUWOVHXOXPXQXRXBXSXL
      XTYCWKXLYAYBYDYEUWFUXPNZUWLUYQWGVUAVVRUWJUYAUWKVVRUWGUXRUWIUXTUWFUXPBYFVV
      RUWHUXSBUWFUXPOUIYGYHYIWRVRYNXBYDVEXHYJXHUVQUWKUYAEYKYLYMYOUYKUYHRZUYMUYJ
      VVSUYKUYLUYKUYHVAVVSUYPUYDUWKIZUYLUXNUYPUYKUYGUYRVEUYHUYKVVTUWBUXCUYGUYKV
      VTTZUXCUWBUYGVWATZUXBUWBVWBTZUWEUXAVWCUWQUYKUWBUYGUXAVVTUWBUYKUYGUXAVVTTZ
      TUWBUYKUYGVWDUWBUYKUYGRZRZUXAVVTVWFUWTUYDUWKVWFUWSUXRUWDVWFUWRUXPBUWBVWEU
      WRUXPNZUVSUVRVWEVWGTUWAUVSVUIVWEVWGVUJUYGUYKVUIVWGTZUYGVUFUYKVWHTZVUGVUCV
      UEVWIVUDVUCVUERZVUIUYKVWGVWJVUIUYKVWGVWJVUIRZUYKRZVWGUWRUXPUPLUSZUYKRZVWK
      VWMUYKVWKUXPUWRUDLZVWMVWJVUIVWOVUCVUIVUEVWOVULVUEUXPVVJUDLZVWOVULVUQUWMVJ
      IZRVUEVWPWGVUCVUQVUIVWQUXPWAVUIUVTVJIZVWQVVIUVTUUEWKYPUXPUWMUUAWKVULVWPVW
      OVULVVJUWRUXPUDVUIVVJUWRNVUCVVQVRXMYQUUBUUFXLVWKVVCVVDRVWOVWMWGVWJVVCVUIV
      VDVUCVVCVUEUXPVOSVVEYPZUXPUWRUUCWKYRWDVWLVVDVVCRZVWGVWNWGVWKVWTUYKVWKVVCV
      VDVWSUUDSUWRUXPUUGWKXAUUHXEXTXFXHUUIUUJXLYHUUOWRYQXPXGYCVRVRXGYEXHUVQUWKU
      YDEYKYLYMUUKUULUXQUYCUYEUVQUUMWFHUUNUVQUWMFUUPWKUWBUXGUXCUVSUWAUXGUVRUVSU
      WARZMUVTULPZGBUOZUXGUVSVXCUWAGBUUQSVXAVXBUXFGBUVSUWAUXEUWMNZVXBUXFNABEFGH
      UURZUVSVXDVXBMUWMUNPZUXFUVSVUIVWRVXBVXFNVUJVVIMUVTUUSUUTVXFUXFNUWMUXEUWMU
      XEMUNYSYTUVCUVAUVDYRYASUXNUWLDUXOUMZUXJUWBUXCVXGUVSUWAUXCVXGTUVRBDEGUVBYA
      XLUWBUWEVXGUXJTZUXBVXDUWBUWERZVXHUWBVXDUWEUVSUWAVXDUVRVXEYASVXIVXHVXDVXGU
      XHDUXOUMZTVXIUWLUXHDUXOUWBUWEUWFUXOIUWLUXHTABCEFUWFGHUVEUVFUVGVXDUXJVXJVX
      GVXDUXHDUXIUXOUXEUWMMULYSUVHUVIUVJUVLUVMUVKUVNUXCUWBUXMUWEUWBUXMTZUXBVXKU
      WDUWCUWBUWDUWCNUXMUWBUWCUXLUWDUWBUXLUWCUVSUWAUXLUWCNUVRABEFGHUVOYAXJUVPXN
      YTSXHYMXB $.
  $}

  ${
    $d E f i x $.  $d P f i x $.  $d R f i x $.  $d V f i x $.
    $( Lemma 1 for ~ clwlkclwwlk .  (Contributed by Alexander van der Vekens,
       22-Jun-2018.)  (Revised by AV, 11-Apr-2021.) $)
    clwlkclwwlklem1 $p |- ( ( E : dom E -1-1-> R /\ P e. Word V
                              /\ 2 <_ ( # ` P ) )
              -> ( ( ( lastS ` P ) = ( P ` 0 )
                     /\ ( A. i e. ( 0 ..^ ( ( ( ( # ` P ) - 1 ) - 0 ) - 1 ) )
                          { ( P ` i ) , ( P ` ( i + 1 ) ) } e. ran E
                     /\ { ( P ` ( ( # ` P ) - 2 ) ) , ( P ` 0 ) } e. ran E ) )
                   -> E. f ( ( f e. Word dom E /\ P : ( 0 ... ( # ` f ) ) --> V
                               /\ A. i e. ( 0 ..^ ( # ` f ) ) ( E ` ( f ` i ) )
                                          = { ( P ` i ) , ( P ` ( i + 1 ) ) } )
                               /\ ( P ` 0 ) = ( P ` ( # ` f ) ) ) ) ) $=
      ( vx wcel chash cfv w3a cc0 co c1 cpr wceq cfzo wa cmin cvv cdm wf1 cword
      c2 cle wbr cv cfz wf caddc wral clsw crn clt ccnv cif cmpt ovex mptexg wi
      mp1i clwlkclwwlklem2a adantr eleq1 fveq2 oveq2d feq2d fveq1 fveq2d eqeq1d
      eqid wb raleqbidv 3anbi123d eqeq2d anbi12d imbi2d adantl mpbird spcimedv
      ) EUAZBEUBAFUCHUDAIJZUEUFKZCUGZWAUCZHZLWDIJZUHMZFAUIZDUGZWDJZEJZWJAJWJNUJ
      MAJOZPZDLWGQMZUKZKZLAJZWGAJZPZRZAULJWRPWMEUMZHDLWBNSMZLSMNSMQMUKWBUDSMZAJ
      WROXBHRRZCGLXCQMZGUGZXDUNUFXGAJZXGNUJMAJOEUOZJXHWROXIJUPZUQZTXFTHXKTHWCLX
      CQURGXFXJTUSVAWCWDXKPZRXEXAUTZXEXKWEHZLXKIJZUHMZFAUIZWJXKJZEJZWMPZDLXOQMZ
      UKZKZWRXOAJZPZRZUTZWCYGXLGABDEXKFXKVKVBVCXLXMYGVLWCXLXAYFXEXLWQYCWTYEXLWF
      XNWIXQWPYBWDXKWEVDXLWHXPFAXLWGXOLUHWDXKIVEZVFVGXLWNXTDWOYAXLWGXOLQYHVFXLW
      LXSWMXLWKXREWJWDXKVHVIVJVMVNXLWSYDWRXLWGXOAYHVIVOVPVQVRVSVT $.

    $d F i $.
    $( Lemma 2 for ~ clwlkclwwlk .  (Contributed by Alexander van der Vekens,
       22-Jun-2018.)  (Revised by AV, 11-Apr-2021.) $)
    clwlkclwwlklem2 $p |- ( ( ( E : dom E -1-1-> R /\ F e. Word dom E )
                         /\ ( P : ( 0 ... ( # ` F ) ) --> V /\ 2 <_ ( # ` P ) )
                         /\ ( A. i e. ( 0 ..^ ( # ` F ) ) ( E ` ( F ` i ) )
                                          = { ( P ` i ) , ( P ` ( i + 1 ) ) }
                               /\ ( P ` 0 ) = ( P ` ( # ` F ) ) ) )
              -> ( ( lastS ` P ) = ( P ` 0 )
                   /\ A. i e. ( 0 ..^ ( ( # ` F ) - 1 ) )
                          { ( P ` i ) , ( P ` ( i + 1 ) ) } e. ran E
                   /\ { ( P ` ( ( # ` F ) - 1 ) ) , ( P ` 0 ) } e. ran E ) ) $=
      ( wcel wa cc0 cfv co c2 cle c1 wceq wi imp syl adantr adantl cdm cword wf
      wf1 chash cfz wbr cv caddc cpr cfzo wral clsw crn cmin w3a wfn f1fn dffn3
      sylib cn0 lencl ffn fnfz0hash syl2an ffz0iswrd lsw ad6antr oveq1 ad4antlr
      fveq2d eqcom nn0cn 1cnd pncand eqcomd eqeq1d biimpd syl5bi adantld 3eqtrd
      cuz cz nn0z peano2zm nn0re lem1d eluz2 syl3anbrc fzoss2 ssralv 3syl simpr
      wss wrdf simpll fzossrbm1 sselda exp31 ad3antrrr biimpi eleq1d syl5ibrcom
      ffvelrnd ralimdva syldc impcom cn wb breq2 2re a1i lesubaddd 2m1e1 breq1i
      1red elnnnn0c simplbi2 sylbird sylbid lbfzo0 sylibr fveq2 preq12d eqeq12d
      cr fzoend rspcdv npcand preq2d eqeq2d com12 syl6bi com3r imp31 preq2 3jca
      mpbird exp41 com13 mpcom mpd expcom com14 sylan 3imp ) DUAZBDUDZEUUGUBGZH
      IEUEJZUFKZFAUCZLAUEJZMUGZHZCUHZEJZDJZUUPAJZUUPNUIKZAJZUJZOZCIUUJUKKZULZIA
      JZUUJAJZOZHZAUMJZUVFOZUVBDUNZGZCIUUJNUOKZUKKZULZUVNAJZUVFUJZUVLGZUPZUUHUU
      GUVLDUCZUUIUUOUVIUVTPZPUUHDUUGUQUWAUUGBDURUUGDUSUTUUOUWAUUIHZUWBUULUUNUWC
      UWBPUWCUUNUULUWBUWAUUIUUNUULUWBPPUULUUIUUNUWAUWBUUIUULUUNUWAUWBPPZUUIUULH
      UUMUUJNUIKZOZUWDUUIUUJVAGZAUUKUQUWFUULUUGEVBZUUKFAVCAUUJVDVEUUIUULUWFUWDP
      ZUWGUUIUULUWIPUWHUULUUIUWGUWIUULAFUBZGZUUIUWGUWIPPFUUJAVFUWKUUIUWGUWFUWDU
      WKUUIHZUWGHZUWFHZUUNUWAUVIUVTUWNUUNHZUWAHZUVIHZUVKUVPUVSUWQUVJUUMNUOKZAJZ
      UWENUOKZAJZUVFUWKUVJUWSOUUIUWGUWFUUNUWAUVIAUWJVGVHUWFUWSUXAOUWMUUNUWAUVIU
      WFUWRUWTAUUMUWENUOVIVKVJUWPUVIUXAUVFOZUWPUVHUXBUVEUVHUVGUVFOZUWPUXBUVFUVG
      VLUWPUXCUXBUWPUVGUXAUVFUWPUUJUWTAUWGUUJUWTOUWLUWFUUNUWAUWGUWTUUJUWGUUJNUU
      JVMZUWGVNZVOVPVJVKVQVRVSVTQWAUVIUWPUVPUVEUWPUVPPUVHUWPUVEUVCCUVOULZUVPUWP
      UUJUVNWBJGZUVOUVDWNZUVEUXFPUWGUXGUWLUWFUUNUWAUWGUVNWCGZUUJWCGZUVNUUJMUGUX
      GUWGUXJUXIUUJWDZUUJWERUXKUWGUUJUUJWFZWGUVNUUJWHWIVJUVNIUUJWJUVCCUVOUVDWKW
      LUWPUVCUVMCUVOUWPUUPUVOGZHZUVMUVCUURUVLGUXNUUGUVLUUQDUWPUWAUXMUWOUWAWMZSU
      WPUXMUUQUUGGZUWMUXMUXPPZUWFUUNUWAUWLUWGUXQUUIUWGUXQPZUWKUUIUVDUUGEUCZUXRU
      UGEWOZUXSUWGUXMUXPUXSUWGHZUXMHUVDUUGUUPEUXSUWGUXMWPUYAUVOUVDUUPUWGUXHUXSU
      WGUXJUXHUXKUUJWQRTWRXDWSRTQWTQXDUVCUVBUURUVLUVCUVBUUROUURUVBVLXAXBXCXEXFS
      XGUWQUVSUVQUVGUJZUVLGZUVIUWPUYCUVEUWPUYCPUVHUWPUVEUVNEJZDJZUVQUVNNUIKZAJZ
      UJZOZUYCUWPUVCUYICUVNUVDUWPIUVDGZUVNUVDGZUWPUUJXHGZUYJUWOUYLUWAUWNUUNUYLU
      WNUUNLUWEMUGZUYLUWFUUNUYMXIUWMUUMUWELMXJZTUWMUYMUYLPZUWFUWGUYOUWLUWGUYMLN
      UOKZUUJMUGZUYLUWGLNUUJLYFGUWGXKXLUWGXPUXLXMUYQNUUJMUGZUWGUYLUYPNUUJMXNXOU
      YLUWGUYRUUJXQXRVSXSZTSXTQSUUJYAZYBIUUJYGZRUUPUVNOZUVCUYIXIUWPVUBUURUYEUVB
      UYHVUBUUQUYDDUUPUVNEYCVKVUBUUSUVQUVAUYGUUPUVNAYCVUBUUTUYFAUUPUVNNUIVIVKYD
      YETYHUWPUYIUYEUYBOZUYCUWPUYHUYBUYEUWPUYGUVGUVQUWPUYFUUJAUWGUYFUUJOUWLUWFU
      UNUWAUWGUUJNUXDUXEYIVJVKYJYKUWPUYCVUCUYEUVLGUWPUUGUVLUYDDUXOUWOUYDUUGGUWA
      UWOUVDUUGUVNEUUIUXSUWKUWGUWFUUNUXTVJUWOUYJUYKUWOUYLUYJUWMUWFUUNUYLUWGUWFU
      UNUYLPPUWLUWFUUNUWGUYLUWFUUNUYMUWGUYLPUYNUWGUYMUYLUYSYLYMYNTYOUYTYBVUARXD
      SXDVUCUYBUYEUVLVUCUYBUYEOUYEUYBVLXAXBXCXTXFSXGUVIUVSUYCXIZUWPUVHVUDUVEUVH
      UVRUYBUVLUVFUVGUVQYPXBTTYRYQYSYSRYTUUAQUUBUUCUUDQYTQYLUUEUUF $.

    $( Lemma 3 for ~ clwlkclwwlk .  (Contributed by Alexander van der Vekens,
       22-Jun-2018.)  (Revised by AV, 11-Apr-2021.) $)
    clwlkclwwlklem3 $p |- ( ( E : dom E -1-1-> R /\ P e. Word V
                              /\ 2 <_ ( # ` P ) )
                -> ( E. f ( ( f e. Word dom E /\ P : ( 0 ... ( # ` f ) ) --> V
                            /\ A. i e. ( 0 ..^ ( # ` f ) ) ( E ` ( f ` i ) )
                                          = { ( P ` i ) , ( P ` ( i + 1 ) ) } )
                               /\ ( P ` 0 ) = ( P ` ( # ` f ) ) )
            <-> ( ( lastS ` P ) = ( P ` 0 )
               /\ ( A. i e. ( 0 ..^ ( ( ( ( # ` P ) - 1 ) - 0 ) - 1 ) )
                      { ( P ` i ) , ( P ` ( i + 1 ) ) } e. ran E
               /\ { ( P ` ( ( # ` P ) - 2 ) ) , ( P ` 0 ) } e. ran E ) ) ) ) $=
      ( wcel c2 cfv w3a cc0 co c1 cpr wceq cfzo wa cmin adantr wi cdm wf1 cword
      chash cle wbr cv cfz caddc wral wex clsw crn simp1 anim12i simp3 anim12ci
      wf simpl2 anim1i adantl clwlkclwwlklem2 syl3anc cn0 lencl ffz0hash oveq1d
      wb oveq1 cc nn0cn peano2cn peano2cnm 3syl subid1d pncand sylan9eqr oveq2d
      1cnd eqtrd raleqdv subsub3d 2m1e1 a1i eqtr3d fveq2d preq1d eleq1d anbi12d
      2cnd anbi2d 3anass syl6bbr expcom expd syl com23 sylc imp 3adant3 syl5com
      ex 3ad2ant2 mpbird exlimdv clwlkclwwlklem1 impbid ) EUAZBEUBZAFUCGZHAUDIZ
      UEUFZJZCUGZXHUCGZKXNUDIZUHLFAURZDUGZXNIEIXRAIXRMUILAINZODKXPPLUJZJZKAIZXP
      AIOZQZCUKAULIYBOZXSEUMZGZDKXKMRLZKRLZMRLZPLZUJZXKHRLZAIZYBNZYFGZQZQZXMYDY
      RCXMYDYRXMYDQZYRYEYGDKXPMRLZPLZUJZYTAIZYBNZYFGZJZYSXIXOQXQXLQXTYCQZUUFXMX
      IYDXOXIXJXLUNYAXOYCXOXQXTUNSUOXMXLYDXQXIXJXLUPXOXQXTYCUSUQYDUUGXMYAXTYCXO
      XQXTUPUTVAABDEXNFVBVCXMYDYRUUFVHZXJXIYDUUHTXLXJXKVDGZYDUUHFAVEYAUUIUUHTZY
      CXOXQUUJXTXOXQUUJXOXPVDGZUUKXQUUJTXHXNVEZUULUUKXQUUKUUJUUKXQUUKUUJTZUUKXQ
      QXKXPMUILZOZUUMFAXPVFUUOUUKUUIUUHUUKUUIQZUUOUUHUUPUUOQZYRYEUUBUUEQZQUUFUU
      QYQUURYEUUQYLUUBYPUUEUUQYGDYKUUAUUQYJYTKPUUQYIXPMRUUOUUPYIUUNMRLZKRLZXPUU
      OYHUUSKRXKUUNMRVIVGUUKUUTXPOUUIUUKUUTUUSXPUUKUUSUUKXPVJGUUNVJGUUSVJGXPVKZ
      XPVLUUNVMVNVOUUKXPMUVAUUKVSZVPVTSVQVGVRWAUUQYOUUDYFUUQYNUUCYBUUQYMYTAUUOU
      UPYMUUNHRLZYTXKUUNHRVIUUKUVCYTOUUIUUKXPHMRLZRLUVCYTUUKXPHMUVAUUKWJUVBWBUU
      KUVDMXPRUVDMOUUKWCWDVRWESVQWFWGWHWIWKYEUUBUUEWLWMWNWOWPXBWQWRWSWTSXAXCWSX
      DXBXEABCDEFXFXG $.

    $d G f i $.
    clwlkclwwlk.v $e |- V = ( Vtx ` G ) $.
    clwlkclwwlk.e $e |- E = ( iEdg ` G ) $.
    $( A closed walk as word of length at least 2 corresponds to a closed walk
       in a simple pseudograph.  (Contributed by Alexander van der Vekens,
       22-Jun-2018.)  (Revised by AV, 24-Apr-2021.) $)
    clwlkclwwlk $p |- ( ( G e. USPGraph /\ P e. Word V /\ 2 <_ ( # ` P ) )
     -> ( E. f f ( ClWalks ` G ) P <-> ( ( lastS ` P ) = ( P ` 0 ) /\
          ( P substr <. 0 , ( ( # ` P ) - 1 ) >. ) e. ( ClWWalks ` G ) ) ) ) $=
      ( vi wcel cfv w3a cc0 co c1 wceq cfzo wa cmin wb syl cuspgr cword cle wbr
      c2 chash cv cdm cfz wf cpr wral wex clsw cop csubstr crn cclwlks cclwwlks
      caddc cedg wf1 wf1o uspgrf1oedg f1of1 clwlkclwwlklem3 syl3an1 lencl sylan
      ige2m1fz swrd0len syldan nn0cnd subcld subid1d eqcomd adantr eqtrd oveq1d
      cn0 1cnd oveq2d eleq2d c0 wne simpll wrdlenge2n0 cz peano2zm elfzom1elfzo
      nn0z swrdtrcfv syl3anc elfzom1elp1fzo preq12d eleq1d ex sylbid raleqbidva
      imp swrdtrcfvl swrdtrcfv0 anbi12d bicomd 3adant1 swrdcl 3ad2ant2 3biant1d
      bitrd anbi2d cupgr uspgrupgr isclwlkupgr 3an4anass syl6bbr exbidv 3adant3
      eqid isclwwlks cn simpl nn0ge2m1nn wi nn0re lem1d a1d 3jca swrdn0 3anbi1d
      biantrud syl5bb ciedg edgval eqcomi rneqi eqtri eleq2i ralbii 3anbi123i
      biid syl6bb 3bitr4d ) DUAIZAEUBZIZUEAUFJZUCUDZKZBUGZCUHZUBIZLUUIUFJZUIMEA
      UJZHUGZUUIJCJUUNAJZUUNNUTMZAJZUKZOHLUULPMULZKLAJZUULAJOZQZBUMZAUNJUUTOZAL
      UUFNRMZUOUPMZUUDIZUUNUVFJZUUPUVFJZUKZCUQZIZHLUVFUFJZNRMZPMZULZUVFUNJZLUVF
      JZUKZUVKIZKZQZUUIADURJUDZBUMZUVDUVFDUSJIZQUUHUVCUVDUURUVKIZHLUVELRMZNRMZP
      MZULZUUFUERMAJZUUTUKZUVKIZQZQZUWBUUCUUJDVAJZCVBZUUEUUGUVCUWOSUUCUUJUWPCVC
      UWQCDGVDUUJUWPCVETAUWPBHCEVFVGUUHUWNUWAUVDUUHUWNUVPUVTQZUWAUUEUUGUWNUWRSU
      UCUUEUUGQZUWRUWNUWSUVPUWJUVTUWMUWSUVLUWFHUVOUWIUWSUVNUWHLPUWSUVMUWGNRUWSU
      VMUVEUWGUUEUUGUVELUUFUIMIZUVMUVEOUUEUUFVTIZUUGUWTEAVHZUUFVJVIEAUVEVKVLZUU
      EUVEUWGOUUGUUEUWGUVEUUEUVEUUEUUFNUUEUUFUXBVMUUEWAVNVOVPVQVRVSWBUWSUUNUVOI
      ZUVLUWFSZUWSUXDUUNLUVENRMZPMZIZUXEUWSUVOUXGUUNUWSUVNUXFLPUWSUVMUVENRUXCVS
      WBWCUWSUXHUXEUWSUXHQZUVJUURUVKUXIUVHUUOUVIUUQUXIUUEAWDWEZUUNLUVEPMZIZUVHU
      UOOUUEUUGUXHWFZUWSUXJUXHEAWGVQZUWSUVEWHIZUXHUXLUUEUXOUUGUUEUXAUXOUXBUXAUU
      FWHIUXOUUFWKUUFWITZTVQUUNUVEWJVIUUNEAWLWMUXIUUEUXJUUPUXKIZUVIUUQOUXMUXNUW
      SUXAUXHUXQUUEUXAUUGUXBVQUXAUXOUXHUXQUXPUUNUVEWNVIVIUUPEAWLWMWOWPWQWRWTWSU
      WSUVSUWLUVKUWSUVQUWKUVRUUTEAXAEAXBWOWPXCXDXEUUHUVTUVPUVGUUEUUCUVGUUGEALUV
      EXFXGXHXIXJXIUUCUUEUWDUVCSUUGUUCUUEQUWCUVBBUUCUWCUVBSZUUEUUCDXKIZUXRDXLUX
      SUWCUUKUUMQUUSUVAQQUVBAHUUIDCEFGXMUUKUUMUUSUVAXNXOTVQXPXQUUHUWEUWAUVDUUHU
      WEUVGUVJUWPIZHUVOULZUVSUWPIZKZUWAUWEUVGUVFWDWEZQZUYAUYBKUUHUYCHUWPDEUVFFU
      WPXRXSUUHUYEUVGUYAUYBUUHUVGUYEUUHUYDUVGUUHUUEUVEXTIZUVEUUFUCUDZKZUYDUUEUU
      GUYHUUCUWSUUEUYFUYGUUEUUGYAUUEUXAUUGUYFUXBUUFYBVIUUEUUGUYGUUEUXAUUGUYGYCU
      XBUXAUYGUUGUXAUUFUUFYDYEYFTWTYGXEUVEEAYHTYJXDYIYKUVGUVGUYAUVPUYBUVTUVGYTU
      XTUVLHUVOUWPUVKUVJUWPDYLJZUQUVKDYMUYICCUYIGYNYOYPZYQYRUWPUVKUVSUYJYQYSUUA
      XJUUB $.

    $( A closed walk corresponds to a closed walk as word in a simple
       pseudograph.  (Contributed by Alexander van der Vekens, 22-Jun-2018.)
       (Revised by AV, 24-Apr-2021.) $)
    clwlkclwwlk2 $p |- ( ( G e. USPGraph /\ P e. Word V /\ 1 <_ ( # ` P ) )
                       -> ( E. f f ( ClWalks ` G ) ( P ++ <" ( P ` 0 ) "> )
                            <-> P e. ( ClWWalks ` G ) ) ) $=
      ( wcel c1 chash cfv cle wbr cc0 co csubstr wceq wa 3adant1 c2 w3a cconcat
      cuspgr cword cs1 cmin cop cclwwlks clsw cv cclwlks lswccats1fst biantrurd
      simpl wrdsymb1 wrdlenccats1lenm1 syl2anc eqcomd opeq2d oveq2d s1cld eqidd
      wex swrdccatid syl3anc eqtr2d eleq1d simp1 simp2 ccatcl caddc lencl 1e2m1
      wb cn0 a1i breq1d cr 2re nn0re lesubaddd bitrd syl biimpa s1len syl6breqr
      1red oveq2i jca ccatlen breqtrrd clwlkclwwlk 3bitr4rd ) DUCHZAEUDZHZIAJKZ
      LMZUAZANAKZUEZUBOZNXBJKZIUFOZUGZPOZDUHKZHZXBUIKNXBKQZXHRZAXGHBUJXBDUKKMBV
      CZWSXIXHWPWRXIWNAEULSUMWSAXFXGWPWRAXFQWNWPWRRZXFXBNWQUGZPOZAXLXEXMXBPXLXD
      WQNXLWQXDXLWPWTEHWQXDQWPWRUNZEAUOZWTEAUPUQURUSUTXLWPXAWOHZWQWQQXNAQXOXLWT
      EXPVAZXLWQVBAXAWQEVDVEVFSVGWSWNXBWOHZTXCLMXKXJVNWNWPWRVHWSWPXQXSWNWPWRVIW
      PWRXQWNXRSEAXAVJUQWSTWQXAJKZVKOZXCLWPWRTYALMWNXLTWQIVKOZYALWPWRTYBLMZWPWQ
      VOHZWRYCVNEAVLYDWRTIUFOZWQLMYCYDIYEWQLIYEQYDVMVPVQYDTIWQTVRHYDVSVPYDWGWQV
      TWAWBWCWDXTIWQVKWTWEWHWFSWSWPXQRZXCYAQWPWRYFWNXLWPXQXOXRWISEAXAWJWCWKXBBC
      DEFGWLVEWM $.
  $}

  ${
    $d G i $.  $d M i $.  $d N i $.  $d W i $.
    $( If the initial vertex of a walk occurs another time in the walk, the
       walk starts with a closed walk.  Since the walk is expressed as a word
       over vertices, the closed walk can be expressed as a subword of this
       word.  (Contributed by Alexander van der Vekens, 15-Sep-2018.)  (Revised
       by AV, 23-Jan-2022.) $)
    clwwlkinwwlk $p |- ( ( ( N e. NN /\ M e. ( ZZ>= ` N ) )
                           /\ W e. ( M WWalksN G ) /\ ( W ` N ) = ( W ` 0 ) )
                         -> ( W substr <. 0 , N >. ) e. ( N ClWWalksN G ) ) $=
      ( vi co wcel cfv wa c1 wceq cpr cc0 cfzo w3a adantr syl adantl wb cfz cuz
      cwwlksn cn cvtx cword chash caddc cv cedg wral cop csubstr cclwwlksn eqid
      wwlknp cclwwlks c0 wne cmin clsw swrdcl cle wbr simpll simprl cr cz eluz2
      zre id 3anim123i sylbi letrp1 ad2antlr mpbird swrdn0 syl3anc jca 3adantl3
      breq2 wi wss cn0 nnz 1nn0 eluzmn sylancl uzss sselda fzoss2 3ad2ant3 3exp
      ssralv com34 3imp1 nnnn0 elnn0uz sylib eluzfz sylan fzelp1 oveq2 swrd0len
      eleq2d syl2anc oveq1d oveq2d raleqdv swrd0fv elfzom1elp1fzo preq12d bitrd
      ad2antrl eleq1d ralbidva swrd0fvlsw swrd0fv0 fz1fzo0m1 simpr fveq2d oveq1
      elfz1uz cc nncn npcan1 sylan9eqr ex rspcdv preq2 mpbid eqeltrd 3jca exp31
      imp 3imp21 isclwwlks sylibr 3adant3 impcom isclwwlksn 3ad2ant1 mpbir2and
      syl3an2 ) DBAUBFGCUCGZBCUAHZGZIZDAUDHZUEZGZDUFHZBJUGFZKZEUHZDHZUUNJUGFZDH
      ZLZAUIHZGZEMBNFZUJZOZCDHZMDHZKZDMCUKULFZCAUMFGZEUUSABUUHDUUHUNZUUSUNZUOUU
      GUVCUVFOZUVHUVGAUPHGZUVGUFHZCKZUVKUVGUUIGZUVGUQURZIZUUNUVGHZUUPUVGHZLZUUS
      GZEMUVMJUSFZNFZUJZUVGUTHZMUVGHZLZUUSGZOZUVLUVCUUGUVFUWIUVCUUGUVFUWIUVCUUG
      IZUVFIZUVQUWDUWHUWJUVQUVFUUJUUMUUGUVQUVBUUJUUMIZUUGIZUVOUVPUWLUVOUUGUUJUV
      OUUMUUHDMCVAPPUWMUUJUUDCUUKVBVCZUVPUUJUUMUUGVDZUWLUUDUUFVEUWMUWNCUULVBVCZ
      UUGUWPUWLUUFUWPUUDUUFCVFGZBVFGZCBVBVCZOZUWPUUFCVGGZBVGGZUWSOUWTCBVHUXAUWQ
      UXBUWRUWSUWSCVIBVIUWSVJVKVLCBVMQRRUUMUWNUWPSUUJUUGUUKUULCVBVTVNVOCUUHDVPV
      QVRVSPUWKUWDUUTEMCJUSFZNFZUJZUWJUXEUVFUUJUUMUVBUUGUXEUUJUUMUUGUVBUXEUUJUU
      MUUGUVBUXEWAZUUJUUMUUGOZUXDUVAWBZUXFUUGUUJUXHUUMUUGBUXCUAHZGUXHUUDUUEUXIB
      UUDCUXIGZUUEUXIWBUUDUXAJWCGUXJCWDZWECJWFWGZUXCCWHQWIUXCMBWJQWKUUTEUXDUVAW
      MQWLWNWOPUWJUWDUXESZUVFUUJUUMUUGUXMUVBUWMUWDUWAEUXDUJUXEUWMUWAEUWCUXDUWMU
      WBUXCMNUWMUVMCJUSUWMUUJCMUUKTFZGZUVNUWOUWMUXOCMUULTFZGZUUGUXQUWLUUGCMBTFG
      ZUXQUUDCMUAHGZUUFUXRUUDCWCGUXSCWPCWQWRCMBWSWTZCMBXAZQRUUMUXOUXQSUUJUUGUUM
      UXNUXPCUUKUULMTXBXDVNZVOZUUHDCXCZXEXFXGXHUWMUWAUUTEUXDUWMUUNUXDGZIZUVTUUR
      UUSUYFUVRUUOUVSUUQUYFUUJUXOUUNMCNFZGUVRUUOKUWMUUJUYEUWOPZUWMUXOUYEUYCPZUW
      MUXDUYGUUNUWMUXJUXDUYGWBUUDUXJUWLUUFUXLXMUXCMCWJQWIUUNCUUHDXIVQUYFUUJUXOU
      UPUYGGZUVSUUQKUYHUYIUWMUXAUYEUYJUUDUXAUWLUUFUXKXMUUNCXJWTUUPCUUHDXIVQXKXN
      XOXLVSPVOUWKUWGUXCDHZUVELZUUSUWJUWGUYLKZUVFUUJUUMUUGUYMUVBUWMUUJCJUUKTFZG
      ZUYMUWOUWMUYOCJUULTFZGZUUGUYQUWLUUGCJBTFGZUYQBCYBZCJBXAQRUUMUYOUYQSUUJUUG
      UUMUYNUYPCUUKUULJTXBXDVNVOUUJUYOIUWEUYKUWFUVECUUHDXPCUUHDXQXKXEVSPUWKUYKU
      VDLZUUSGZUYLUUSGZUWJVUAUVFUUJUUMUVBUUGVUAUUJUUMUUGUVBVUAUUJUUMUUGUVBVUAWA
      UXGUUTVUAEUXCUVAUUGUUJUXCUVAGZUUMUUGUYRVUCUYSCBXRQWKUXGUUNUXCKZUUTVUASZUU
      GUUJVUDVUEWAZUUMUUDVUFUUFUUDVUDVUEUUDVUDIZUURUYTUUSVUGUUOUYKUUQUVDVUGUUNU
      XCDUUDVUDXSXTVUGUUPCDVUDUUDUUPUXCJUGFZCUUNUXCJUGYAUUDCYCGVUHCKCYDCYEQYFXT
      XKXNYGPWKYNYHWLWNWOPUVFVUAVUBSUWJUVFUYTUYLUUSUVDUVEUYKYIXNRYJYKYLYMYOEUUS
      AUUHUVGUVIUVJYPYQUVKUUJUXOIZUVNUUGUVCVUIUVFUVCUUGVUIUUJUUMUUGVUIWAUVBUWLU
      UGVUIUWMUUJUXOUWOUWMUXOUXQUWMUXRUXQUUGUXRUWLUXTRUYAQUYBVOVRYGYRYSYRUYDQUU
      GUVCUVHUVLUVNISZUVFUUDVUJUUFACUVGYTPUUAUUBUUC $.
  $}

  $( There is no empty closed walk (i.e. a closed walk without any edge)
     represented by a word of vertices.  (Contributed by Alexander van der
     Vekens, 15-Sep-2018.)  (Revised by AV, 24-Apr-2021.) $)
  clwwlksgt0 $p |- ( W e. ( ClWWalks ` G ) -> 0 < ( # ` W ) ) $=
    ( cclwwlks cfv wcel cvv cvtx cword c0 wne w3a cc0 clt wbr clwwlkbp hashneq0
    chash eqid biimpar 3adant1 syl ) BACDEAFEZBAGDZHZEZBIJZKLBQDMNZAUCBUCROUEUF
    UGUBUEUGUFBUDPSTUA $.

  $( There is no closed walk of length 0 (i.e. a closed walk without any edge)
     represented by a word of vertices.  (Contributed by Alexander van der
     Vekens, 15-Sep-2018.)  (Revised by AV, 24-Apr-2021.) $)
  clwwlksn0 $p |- ( 0 ClWWalksN G ) = (/) $=
    ( cvv wnel cc0 cn wo cclwwlksn co wceq 0nnn nelir olci clwwlksnndef ax-mp
    c0 ) ABCZDECZFDAGHOIQPDEJKLADMN $.

  ${
    $d G i $.  $d W i $.
    $( A closed walk of length 1 is a loop.  See also ~ clwlkl1loop .
       (Contributed by AV, 24-Apr-2021.) $)
    clwwlks1loop $p |- ( ( W e. ( ClWWalks ` G ) /\ ( # ` W ) = 1 )
                         -> { ( W ` 0 ) , ( W ` 0 ) } e. ( Edg ` G ) ) $=
      ( vi cclwwlks cfv wcel chash c1 wceq cc0 cedg cvtx cword c0 wa co wi eqid
      cpr imp wne cv caddc cmin cfzo wral clsw w3a isclwwlks lsw1 preq1d eleq1d
      biimpd ex com23 adantr 3adant2 sylbi ) BADEFZBGEZHIZJBEZVBSZAKEZFZUSBALEZ
      MFZBNUAZOZCUBZBEVJHUCPBESVDFCJUTHUDPUEPUFZBUGEZVBSZVDFZUHVAVEQZCVDAVFBVFR
      VDRUIVIVNVOVKVIVNVOVGVNVOQVHVGVAVNVEVGVAVNVEQVGVAOZVNVEVPVMVCVDVPVLVBVBVF
      BUJUKULUMUNUOUPTUQURT $.

    $( A closed walk of length 1 represented as word is a word consisting of 1
       symbol representing a vertex connected to itself by (at least) one edge,
       that is, a loop.  (Contributed by AV, 24-Apr-2021.)  (Revised by AV,
       11-Feb-2022.) $)
    clwwlksn1 $p |- ( W e. ( 1 ClWWalksN G ) <-> ( ( # ` W ) = 1
                /\ W e. Word ( Vtx ` G ) /\ { ( W ` 0 ) } e. ( Edg ` G ) ) ) $=
      ( vi c1 co wcel cfv cpr cc0 cmin cfzo wral w3a wceq wa eqid 3anass syl6eq
      wb c0 cclwwlksn cvtx cword cv caddc cedg chash clsw csn isclwwlksnx ax-mp
      cn 1nn ral0 oveq1 oveq2d fzo0 raleqdv adantr mpbiri biantrurd lsw1 ancoms
      1m1e0 preq1d syl6eqr eleq1d bitr3d pm5.32da syl5bb pm5.32ri bitr2i 3bitri
      dfsn2 ancom ) BDAUAEFZBAUBGZUCFZCUDZBGVSDUEEBGHAUFGZFZCIBUGGZDJEZKEZLZBUH
      GZIBGZHZVTFZMZWBDNZOZVRWGUIZVTFZOZWKOZWKVRWNMZDULFVPWLSUMCVTADVQBVQPVTPUJ
      UKWKWJWOWJVRWEWIOZOWKWOVRWEWIQWKVRWRWNWKVROZWIWRWNWSWEWIWSWEWACTLZWACUNWK
      WEWTSVRWKWACWDTWKWDIIKETWKWCIIKWKWCDDJEIWBDDJUOVDRUPIUQRURUSUTVAWSWHWMVTW
      SWHWGWGHWMWSWFWGWGVRWKWFWGNVQBVBVCVEWGVNVFVGVHVIVJVKWQWKWOOWPWKVRWNQWKWOV
      OVLVM $.
  $}

  $( The singleton word consisting of a vertex ` V ` represents a closed walk
     of length 1 iff there is a loop at vertex ` V ` .  (Contributed by AV,
     11-Feb-2022.) $)
  loopclwwlksn1b $p |- ( V e. ( Vtx ` G )
              -> ( { V } e. ( Edg ` G ) <-> <" V "> e. ( 1 ClWWalksN G ) ) ) $=
    ( cs1 c1 cclwwlksn co wcel chash cfv wceq cvtx cword cc0 csn cedg clwwlksn1
    w3a wi sneqd eleq1d s1fv biimpcd 3ad2ant3 com12 wa s1len s1cl adantr eqcomd
    a1i biimpa 3jca ex impbid syl5rbb ) BCZDAEFGUPHIDJZUPAKIZLGZMUPIZNZAOIZGZQZ
    BURGZBNZVBGZAUPPVEVDVGVDVEVGVCUQVEVGRUSVEVCVGVEVAVFVBVEUTBBURUAZSTUBUCUDVEV
    GVDVEVGUEZUQUSVCUQVIBUFUJVEUSVGBURUGUHVEVGVCVEVFVAVBVEBUTVEUTBVHUISTUKULUMU
    NUO $.

  ${
    $d G i $.  $d G v $.  $d W i $.  $d W v $.
    $( A word represents a closed walk of length 1 iff this word is a singleton
       word consisting of a vertex with an attached loop.  (Contributed by AV,
       11-Feb-2022.) $)
    clwwlksn1loopb $p |- ( W e. ( 1 ClWWalksN G )
           <-> E. v e. ( Vtx ` G ) ( W = <" v "> /\ { v } e. ( Edg ` G ) ) ) $=
      ( c1 cclwwlksn co wcel chash cfv wceq cc0 csn w3a wa wrex wi sneqd eleq1d
      biimpd imp cvtx cword cedg cv cs1 clwwlksn1 wrdl1exs1 fveq1 s1fv sylan9eq
      ex com13 ancld reximdva syl5com expcom 3imp s1len s1cl adantr eqcomd 3jca
      a1i adantrl fveq2 eqeq1d eleq1 3anbi123d ad2antrl mpbird rexlimiva impbii
      wb bitri ) CDBEFGCHIZDJZCBUAIZUBZGZKCIZLZBUCIZGZMZCAUDZUEZJZWELZWBGZNZAVQ
      OZBCUFWDWKVPVSWCWKVSVPWCWKPVSVPNWGAVQOWCWKVQCAUGWCWGWJAVQWCWEVQGZNWGWIWCW
      LWGWIPWGWLWCWIWGWLWCWIPWGWLNZWCWIWMWAWHWBWMVTWEWGWLVTKWFIZWEKCWFUHZWEVQUI
      ZUJQRSUKULTUMUNUOUPUQWJWDAVQWLWJNWDWFHIZDJZWFVRGZWNLZWBGZMZWLWIXBWGWLWINZ
      WRWSXAWRXCWEURVCWLWSWIWEVQUSUTWLWIXAWLWIXAWLWHWTWBWLWEWNWLWNWEWPVAQRSTVBV
      DWGWDXBVMWLWIWGVPWRVSWSWCXAWGVOWQDCWFHVEVFCWFVRVGWGWAWTWBWGVTWNWOQRVHVIVJ
      VKVLVN $.
  $}

  ${
    $d G i $.  $d W i $.
    $( A closed walk of length 2 represented as word is a word consisting of 2
       symbols representing (not necessarily different) vertices connected by
       (at least) one edge.  (Contributed by Alexander van der Vekens,
       19-Sep-2018.)  (Revised by AV, 25-Apr-2021.) $)
    clwwlksn2 $p |- ( W e. ( 2 ClWWalksN G ) <-> ( ( # ` W ) = 2
                             /\ W e. Word ( Vtx ` G )
                             /\ { ( W ` 0 ) , ( W ` 1 ) } e. ( Edg ` G ) ) ) $=
      ( vi c2 co wcel cfv c1 caddc cpr cc0 cmin cfzo wral wceq wa 3anass syl6eq
      w3a eqid cclwwlksn cvtx cword cv cedg chash clsw cn 2nn isclwwlksnx ax-mp
      wb csn oveq1 2m1e1 oveq2d fzo01 adantr raleqdv fveq2 0p1e1 fveq2d preq12d
      c0ex eleq1d ralsn syl6bb prcom lsw sylan9eqr preq2d syl5eq anidm pm5.32da
      anbi12d syl5bb pm5.32ri ancom bitr2i 3bitri ) BDAUAEFZBAUBGZUCZFZCUDZBGZW
      EHIEZBGZJZAUEGZFZCKBUFGZHLEZMEZNZBUGGZKBGZJZWJFZSZWLDOZPZWDWQHBGZJZWJFZPZ
      XAPZXAWDXESZDUHFWAXBULUICWJADWBBWBTWJTUJUKXAWTXFWTWDWOWSPZPXAXFWDWOWSQXAW
      DXIXEXAWDPZXIXEXEPXEXJWOXEWSXEXJWOWKCKUMZNXEXJWKCWNXKXAWNXKOWDXAWNKHMEXKX
      AWMHKMXAWMDHLEHWLDHLUNUORZUPUQRURUSWKXECKVDWEKOZWIXDWJXMWFWQWHXCWEKBUTXMW
      GHBXMWGKHIEHWEKHIUNVARVBVCVEVFVGXJWRXDWJXJWRWQWPJXDWPWQVHXJWPXCWQWDXAWPWM
      BGXCBWCVIXAWMHBXLVBVJVKVLVEVOXEVMVGVNVPVQXHXAXFPXGXAWDXEQXAXFVRVSVT $.
  $}

  ${
    $d G i w $.
    $( Closed walks (represented by words) are words.  (Contributed by
       Alexander van der Vekens, 25-Mar-2018.)  (Revised by AV,
       25-Apr-2021.) $)
    clwwlkssswrd $p |- ( ClWWalks ` G ) C_ Word ( Vtx ` G ) $=
      ( vw vi cclwwlks cfv cv c0 wne c1 caddc cpr cedg wcel cc0 chash cmin cfzo
      co wral eqid clsw w3a cvtx cword crab clwwlks ssrab2 eqsstri ) ADEBFZGHCF
      ZUIEUJIJRUIEKALEZMCNUIOEIPRQRSUIUAENUIEKUKMUBZBAUCEZUDZUEUNBCUKAUMUMTUKTU
      FULBUNUGUH $.
  $}

  $( A closed walk in a multigraph has a length of at least 2 (because it
     cannot have a loop).  (Contributed by Alexander van der Vekens,
     16-Sep-2018.)  (Revised by AV, 24-Apr-2021.) $)
  umgrclwwlksge2 $p |- ( G e. UMGraph -> ( P e. ( ClWWalks ` G )
                                           -> 2 <_ ( # ` P ) ) ) $=
    ( cumgr wcel cclwwlks cfv c2 chash cle wa cc0 wne c1 c0 eqid adantl wi wceq
    w3a expcom wbr cn0 cvv cvtx cword clwwlkbp lencl 3ad2ant2 hasheq0 necon3bid
    bicomd biimpd a1i 3imp cpr cedg clwwlks1loop umgredgne eqneqall mpsyl com23
    syl6 imp4c wn neqne a1d pm2.61i 3jca mpdan nn0n0n1ge2 syl ex ) BCDZABEFDZGA
    HFZIUAZVMVNJZVOUBDZVOKLZVOMLZSZVPVQBUCDZABUDFZUEZDZANLZSZWAVNWGVMBWCAWCOUFP
    VQWGJZVRVSVTWGVRVQWEWBVRWFWCAUGUHPWGVSVQWBWEWFVSWEWFVSQQWBWEWFVSWEANVOKWEVO
    KRANRAWDUIUKUJULUMUNPVOMRZWHVTQWIVMVNWGVTWIVNVMWGVTQZWIVNKAFZWKUOBUPFZDZVMW
    JQVNWIWMBAUQTVMWMWJWKWKRVMWMJWKWKLWJWKOWLBWKWKWLOURWJWKWKUSUTTVBVAVCWIVDVTW
    HVOMVEVFVGVHVIVOVJVKVL $.

  ${
    $d G w $.  $d N w $.
    $( If there is only a finite number of vertices, the number of closed walks
       of fixed length (as words) is also finite.  (Contributed by Alexander
       van der Vekens, 25-Mar-2018.)  (Revised by AV, 25-Apr-2021.) $)
    clwwlksnfi $p |- ( ( Vtx ` G ) e. Fin
                       -> ( N ClWWalksN G ) e. Fin ) $=
      ( vw cn wcel cvtx cfv cfn cclwwlksn co wi wa chash wceq crab syl wss wnel
      cv c0 cclwwlks clwwlksn adantr cword cn0 nnnn0 anim1i ancomd clwwlkssswrd
      wrdnfi rabss2 mp1i ssfid eqeltrd ex wn cvv wo df-nel biimpri clwwlksnndef
      olcd 0fin syl6eqel a1d pm2.61i ) BDEZAFGZHEZBAIJZHEZKVGVIVKVGVILZVJCSMGBN
      ZCAUAGZOZHVGVJVONVICABUBUCVLVMCVHUDZOZVOVLVIBUEEZLVQHEVLVRVIVGVRVIBUFUGUH
      CBVHUJPVNVPQVOVQQVLAUIVMCVNVPUKULUMUNUOVGUPZVKVIVSVJTHVSAUQRZBDRZURVJTNVS
      WAVTWAVSBDUSUTVBABVAPVCVDVEVF $.
  $}

  ${
    $d G i $.  $d G w $.  $d N i $.  $d N w $.  $d P i $.  $d P w $.
    clwwlksbij.d $e |- D = { w e. ( N WWalksN G ) |
                             ( lastS ` w ) = ( w ` 0 ) } $.
    $( Obtaining a closed walk (as word) by appending the first symbol to the
       word representing a walk.  (Contributed by AV, 28-Sep-2018.)  (Revised
       by AV, 25-Apr-2021.) $)
    clwwlksel $p |- ( ( N e. NN
                       /\ ( P e. Word ( Vtx ` G ) /\ ( # ` P ) = N )
                       /\ ( A. i e. ( 0 ..^ ( N - 1 ) )
                            { ( P ` i ) , ( P ` ( i + 1 ) ) } e. ( Edg ` G )
                            /\ { ( lastS ` P ) , ( P ` 0 ) } e. ( Edg ` G ) ) )
                     -> ( P ++ <" ( P ` 0 ) "> ) e. D ) $=
      ( wcel cfv wceq wa c1 caddc co cc0 cmin cfzo adantr adantl wb cword chash
      cn cvtx cv cpr cedg wral clsw w3a cs1 cconcat cwwlksn c0 simprl fstwrdne0
      wne ccatws1n0 syl2anc 3adant3 simp2l s1cld ccatcl csn wi cn0 clt elfzonn0
      cz wbr nnz elfzo0 nn0re nnre peano2rem syl 3jca simpr ltm1d lttr syl12anc
      cr imp ex impancom 3adant2 sylbi elfzo0z syl3anbrc adantlr oveq2 ad2antll
      impcom eleq2d mpbird syl3anc eqcomd elfzom1p1elfzo preq12d eleq1d biimpcd
      ccatval1 eleqtrrd ralbidva expdcom fzo0end oveq1 fveq2d eqcoms lsw eqtr4d
      3imp eqtr2d fveq2 nncn 1cnd npcand ccatws1ls 3eqtr3rd ovex sylibr addsubd
      ralsn cun oveq2d cuz nnm1nn0 elnn0uz sylib fzosplitsn eqtrd ralunb syl6bb
      raleqdv 3ad2ant1 mpbir2and ccatlen id a1i eqid s1len oveq12d oveq1d nnnn0
      cwwlks iswwlks anbi1d bitrd lswccats1 lbfzo0 biimpri fveq1 eqeq12d elrab2
      iswwlksn sylanbrc ) FUCHZCEUDIZUAZHZCUBIZFJZKZDUEZCIZUVDLMNZCIZUFZEUGIZHZ
      DOFLPNZQNZUHZCUIIZOCIZUFZUVIHZKZUJZCUVOUKZULNZFEUMNZHZUWAUIIZOUWAIZJZUWAB
      HUVSUWCUWAUNUQZUWAUUSHZUVDUWAIZUVFUWAIZUFZUVIHZDOUWAUBIZLPNZQNZUHZUJZUWMF
      LMNZJZUVSUWGUWHUWPUUQUVCUWGUVRUUQUVCKZUUTUVOUURHZUWGUUQUUTUVBUOZFUURCUPZU
      URCUVOURUSUTUVSUUTUVTUUSHZUWHUUQUUTUVBUVRVAUUQUVCUXDUVRUWTUVOUURUXCVBZUTU
      URCUVTVCUSUVSUWPUWLDOUWRLPNZQNZUHZUVSUXHUWLDUVLUHZUWLDUVKVDZUHZUUQUVCUVRU
      XIUVRUUQUVCUXIUVMUWTUXIVEUVQUWTUVMUXIUWTUVJUWLDUVLUWTUVDUVLHZKZUVHUWKUVIU
      XMUVEUWIUVGUWJUXMUWIUVEUXMUUTUXDUVDOUVAQNZHZUWIUVEJUWTUUTUXLUXBRZUWTUXDUX
      LUXERZUXMUXOUVDOFQNZHZUUQUXLUXSUVCUUQUXLKUVDVFHZFVIHZUVDFVGVJZUXSUXLUXTUU
      QUVDUVKVHSUUQUYAUXLFVKRUXLUUQUYBUXLUXTUVKUCHZUVDUVKVGVJZUJUUQUYBVEZUVDUVK
      VLUXTUYDUYEUYCUXTUUQUYDUYBUXTUUQKZUYDUYBUYFUYDKUVDWBHZUVKWBHZFWBHZUJZUYDU
      VKFVGVJZUYBUYFUYJUYDUYFUYGUYHUYIUXTUYGUUQUVDVMRUUQUYHUXTUUQUYIUYHFVNZFVOV
      PSUUQUYIUXTUYLSVQRUYFUYDVRUYFUYKUYDUUQUYKUXTUUQFUYLVSSRUYJUYDUYKKUYBUVDUV
      KFVTWCWAWDWEWFWGWMUVDFWHWIWJUWTUXOUXSTZUXLUVBUYMUUQUUTUVBUXNUXRUVDUVAFOQW
      KZWNWLRWOUURCUVTUVDXBWPWQUXMUWJUVGUXMUUTUXDUVFUXNHUWJUVGJUXPUXQUXMUVFUXRU
      XNUUQUXLUVFUXRHUVCFUVDWRWJUWTUXNUXRJZUXLUVBUYOUUQUUTUYNWLRXCUURCUVTUVFXBW
      PWQWSWTXDXARXEXLUVSUVKUWAIZUVKLMNZUWAIZUFZUVIHZUXKUUQUVCUVRUYTUVRUUQUVCUY
      TUVQUWTUYTVEUVMUWTUVQUYTUWTUVPUYSUVIUWTUVNUYPUVOUYRUWTUYPUVKCIZUVNUWTUUTU
      XDUVKUXNHZUYPVUAJUXBUXEUWTVUBUVKUXRHZUUQVUCUVCFXFRUVBVUBVUCTUUQUUTUVBUXNU
      XRUVKUYNWNWLWOUURCUVTUVKXBWPUVCVUAUVNJUUQUVCVUAUVALPNZCIZUVNUVBVUAVUEJZUU
      TVUFFUVAFUVAJUVKVUDCFUVALPXGXHXISUUTUVNVUEJUVBCUUSXJRXKSXMUWTFUWAIZUVAUWA
      IZUYRUVOUVBVUGVUHJZUUQUUTVUIFUVAFUVAUWAXNXIWLUUQVUGUYRJUVCUUQFUYQUWAUUQUY
      QFUUQFLFXOZUUQXPZXQWQXHRUWTUUTUXAVUHUVOJUXBUXCUURCUVOXRUSXSWSWTXASXEXLUWL
      UYTDUVKFLPXTUVDUVKJZUWKUYSUVIVULUWIUYPUWJUYRUVDUVKUWAXNVULUVFUYQUWAUVDUVK
      LMXGXHWSWTYCYAUUQUVCUXHUXIUXKKZTUVRUUQUXHUWLDUVLUXJYDZUHVUMUUQUWLDUXGVUNU
      UQUXGOUYQQNZVUNUUQUXFUYQOQUUQFLLVUJVUKVUKYBYEUUQUVKOYFIHZVUOVUNJUUQUVKVFH
      VUPFYGUVKYHYIOUVKYJVPYKYNUWLDUVLUXJYLYMYOYPUVSUWLDUWOUXGUVSUWNUXFOQUVSUWM
      UWRLPUUQUVCUWSUVRUWTUWMUVAUVTUBIZMNZUWRUWTUUTUXDUWMVURJUXBUXEUURCUVTYQUSU
      VBVURUWRJUUQUUTUVBUVAFVUQLMUVBYRVUQLJUVBUVOUUAYSUUBWLYKUTZUUCYEYNWOVQVUSU
      UQUVCUWCUWQUWSKZTUVRUUQUWCUWAEUUEIHZUWSKZVUTUUQFVFHUWCVVBTFUUDEFUWAUUOVPU
      UQVVAUWQUWSVVAUWQTUUQDUVIEUURUWAUURYTUVIYTUUFYSUUGUUHYOYPUUQUVCUWFUVRUWTU
      WDUVOUWEUWTUUTUXAUWDUVOJUXBUXCUVOUURCUUIUSUWTUUTUXDOUXNHZUWEUVOJUXBUXEUWT
      VVCOUXRHZUUQVVDUVCVVDUUQFUUJUUKRUVBVVCVVDTUUQUUTUVBUXNUXROUYNWNWLWOUURCUV
      TOXBWPXKUTAUEZUIIZOVVEIZJUWFAUWAUWBBVVEUWAJVVFUWDVVGUWEVVEUWAUIXNOVVEUWAU
      ULUUMGUUNUUP $.

    $d D t $.  $d G i t $.  $d G t w $.  $d N t $.
    clwwlksbij.f $e |- F = ( t e. D |-> ( t substr <. 0 , N >. ) ) $.
    $( Lemma 1 for ~ clwwlksbij :  F is a function.  (Contributed by Alexander
       van der Vekens, 27-Sep-2018.)  (Revised by AV, 26-Apr-2021.) $)
    clwwlksf $p |- ( N e. NN -> F : D --> ( N ClWWalksN G ) ) $=
      ( vi wcel cc0 co cfv wceq wa c1 cfzo wi syl adantr cn cop csubstr cwwlksn
      cclwwlksn clsw fveq2 fveq1 eqeq12d elrab2 cvtx cword caddc cpr cedg chash
      cv cmin wral w3a c0 wne cwwlks cn0 nnnn0 iswwlksn eqid iswwlks a1i anbi1d
      wb bitrd cfz simpll cle wbr peano2nn0 nnre lep1d elfz2nn0 syl3anbrc oveq2
      adantl eleq2d mpbird swrd0len ex 3ad2antl2 impcom 3ad2ant2 ad2antrl oveq1
      jca swrdcl oveq2d nncn 1cnd pncand sylan9eqr raleqdv wss cuz nnz peano2zm
      cz lem1d eluz2 fzoss2 ssralv simplr ad2antrr sseld swrd0fv eqcomd syl3anc
      imp elfzom1elp1fzo sylan preq12d eleq1d ralbidva biimpd com23 syld sylbid
      com14 3adant1 simprl2 ancli peano2zd swrd0fvlsw swrd0fv0 eqcom biimpi lsw
      fznn fveq2d 3eqtrd preq2d eqeltrd sylan9eq fzo0end rspcva npcand 3ad2ant3
      mpd com3r 3jca simpl mpancom exp31 imp32 isclwwlksnx sylan2b fmptd ) FUAJ
      ZBCBUQZKFUBUCLZFEUELZDUUQCJUUPUUQFEUDLZJZUUQUFMZKUUQMZNZOZUURUUSJZAUQZUFM
      ZKUVGMZNUVDAUUQUUTCUVGUUQNUVHUVBUVIUVCUVGUUQUFUGKUVGUUQUHUIGUJUUPUVEOUVFU
      UREUKMZULZJZIUQZUURMZUVMPUMLZUURMZUNZEUOMZJZIKUURUPMZPURLZQLZUSZUURUFMZKU
      URMZUNZUVRJZUTZUVTFNZOZUUPUVAUVDUWJUUPUVAUUQVAVBZUUQUVKJZUVMUUQMZUVOUUQMZ
      UNZUVRJZIKUUQUPMZPURLZQLZUSZUTZUWQFPUMLZNZOZUVDUWJRUUPUVAUUQEVCMJZUXCOZUX
      DUUPFVDJZUVAUXFVKFVEZEFUUQVFSUUPUXEUXAUXCUXEUXAVKUUPIUVREUVJUUQUVJVGZUVRV
      GZVHVIVJVLUUPUXDUVDUWJUWIUUPUXDOZUVDOZUWJUXKUWIUVDUXDUUPUWIUWLUWKUXCUUPUW
      IRUWTUWLUXCOZUUPUWIUXMUUPOZUWLFKUWQVMLZJZOUWIUXNUWLUXPUWLUXCUUPVNUXNUXPFK
      UXBVMLZJZUUPUXRUXMUUPUXGUXBVDJZFUXBVOVPZUXRUXHUUPUXGUXSUXHFVQSUUPFFVRZVSZ
      FUXBVTWAZWCUXMUXPUXRVKZUUPUXCUYDUWLUXCUXOUXQFUWQUXBKVMWBWDZWCTWEWMUVJUUQF
      WFSWGWHWITUWIUXLOZUWHUWIUYFUVLUWCUWGUXKUVLUWIUVDUXAUVLUUPUXCUWLUWKUVLUWTU
      VJUUQKFWNWJWKWKUYFUWCUVSIKFPURLZQLZUSZUXKUYIUWIUVDUXDUUPUYIUXAUXCUUPUYIRZ
      UWLUWTUXCUYJRZUWKUWLUWTUYKUUPUWTUXCUWLUYIUUPUXCUWTUWLUYIRZUUPUXCUWTUYLRUU
      PUXCOZUWTUWPIKFQLZUSZUYLUYMUWPIUWSUYNUXCUUPUWSKUXBPURLZQLUYNUXCUWRUYPKQUW
      QUXBPURWLZWOUUPUYPFKQUUPFPFWPZUUPWQZWRZWOWSWTUYMUYOUWPIUYHUSZUYLUYMUYHUYN
      XAZUYOVUARUUPVUBUXCUUPFUYGXBMJZVUBUUPUYGXEJZFXEJZUYGFVOVPVUCUUPVUEVUDFXCZ
      FXDSVUFUUPFUYAXFUYGFXGWAUYGKFXHSZTUWPIUYHUYNXISUYMUWLVUAUYIUYMUWLVUAUYIRU
      YMUWLOZVUAUYIVUHUWPUVSIUYHVUHUVMUYHJZOZUWOUVQUVRVUJUWMUVNUWNUVPVUJUWLUXPU
      VMUYNJZUWMUVNNUYMUWLVUIXJZUYMUXPUWLVUIUYMUXPUXRUUPUXRUXCUYCTUXCUYDUUPUYEW
      CWEXKZVUHVUIVUKUUPVUIVUKRUXCUWLUUPUYHUYNUVMVUGXLXKXPUWLUXPVUKUTUVNUWMUVMF
      UVJUUQXMXNXOVUJUWLUXPUVOUYNJZUWNUVPNVULVUMVUHVUEVUIVUNUUPVUEUXCUWLVUFXKUV
      MFXQXRUWLUXPVUNUTUVPUWNUVOFUVJUUQXMXNXOXSXTYAYBWGYCYDYEWGYCYFXPYGXPWIWKUY
      FUVSIUWBUYHUWIUWBUYHNUXLUWIUWAUYGKQUVTFPURWLWOTWTWEUXLUWGUWIUXLUWFUYGUUQM
      ZUVCUNZUVRUXLUWDVUOUWEUVCUXLUWLFPUWQVMLZJZOZUWDVUONUXKVUSUVDUXKUWLVURUWKU
      WLUWTUXCUUPYHUXKVURFPUXBVMLZJZUUPVVAUXDUUPVVAUUPUXTOZUUPUXTUYBYIUUPUXBXEJ
      VVAVVBVKUUPFVUFYJFUXBYPSWETUXDVURVVAVKZUUPUXCVVCUXAUXCVUQVUTFUWQUXBPVMWBW
      DWCWCWEWMZTFUVJUUQYKSUXKUWEUVCNZUVDUXKVUSVVEVVDFUVJUUQYLSTXSUXLVUPVUOFUUQ
      MZUNZUVRUXLUVCVVFVUOUXLUVCUVBUWRUUQMZVVFUVDUVCUVBNZUXKUVDVVIUVBUVCYMYNWCU
      XKUVBVVHNZUVDUXAVVJUUPUXCUWLUWKVVJUWTUUQUVKYOWJWKTUXLUWRFUUQUXKUWRFNUVDUX
      DUUPUWRUYPFUXCUWRUYPNUXAUYQWCUYTWSTYQYRYSUXKVVGUVRJZUVDUXDUUPVVKUXAUXCUUP
      VVKRZUWTUWKUXCVVLRUWLUXCUUPUWTVVKUXCUUPUWTVVKRUXCUUPOZUWTUYOVVKVVMUWPIUWS
      UYNVVMUWRFKQUXCUUPUWRUYPFUYQUYTUUAWOWTUUPUYOVVKRUXCUUPUYOVVKUUPUYOOVUOUYG
      PUMLZUUQMZUNZUVRJZVVKUUPUYGUYNJUYOVVQFUUBUWPVVQIUYGUYNUVMUYGNZUWOVVPUVRVV
      RUWMVUOUWNVVOUVMUYGUUQUGVVRUVOVVNUUQUVMUYGPUMWLYQXSXTUUCXRUUPVVQVVKRUYOUU
      PVVQVVKUUPVVPVVGUVRUUPVVOVVFVUOUUPVVNFUUQUUPFPUYRUYSUUDYQYSXTYBTUUFWGWCYE
      WGUUGUUEXPWITYTYTWCUUHUWIUXLUUIWMUUJUUKYEUULUUPUVFUWJVKUVEIUVREFUVJUURUXI
      UXJUUMTWEUUNHUUO $.

    $d W t $.
    $( Lemma 2 for ~ clwwlksbij : the value of function F. (Contributed by
       Alexander van der Vekens, 28-Sep-2018.)  (Revised by AV,
       26-Apr-2021.) $)
    clwwlksfv $p |- ( W e. D -> ( F ` W ) = ( W substr <. 0 , N >. ) ) $=
      ( cv cc0 cop csubstr co oveq1 ovex fvmpt ) BGBJZKFLZMNGSMNCDRGSMOIGSMPQ
      $.

    $d D x y $.  $d F x y $.  $d N i x y $.  $d N t w x y $.
    $( Lemma 3 for ~ clwwlksbij :  F is a 1-1 function.  (Contributed by AV,
       28-Sep-2018.)  (Revised by AV, 26-Apr-2021.) $)
    clwwlksf1 $p |- ( N e. NN -> F : D -1-1-> ( N ClWWalksN G ) ) $=
      ( vi wcel co cfv wceq wi wa cc0 csubstr adantl c1 ad2antlr vx vy cn wf cv
      cclwwlksn wral wf1 clwwlksf cop wb clwwlksfv eqeqan12d cwwlksn clsw fveq2
      fveq1 eqeq12d elrab2 anbi12i cvtx cword chash caddc cedg cfzo eqid wwlknp
      cpr cmin simprlr simpllr eqtr4d cc nncn ax-1cn pncan eqcomd sylancl oveq1
      w3a sylan9eqr opeq2d oveq2d ex impcom biimpa cn0 cle simpll anim12ci 0nn0
      wbr nnnn0 jctil adantr nnre lep1d breq2 syl5ibr swrdspsleq lbfzo0 biimpri
      syl112anc rspcv syl sylbid imp simpr eqeqan12rd jca32 clt 1red nngt0 0lt1
      mpbird a1i addgt0d 2swrd1eqwrdeq exp31 expdcom 3adant3 imp31 com12 syl5bi
      3jca ralrimivva dff13 sylanbrc ) FUCJZCFEUFKZDUDUAUEZDLZUBUEZDLZMZYLYNMZN
      ZUBCUGUACUGCYKDUHABCDEFGHUIYJYRUAUBCCYJYLCJZYNCJZOZOYPYLPFUJZQKZYNUUBQKZM
      ZYQUUAYPUUEUKYJYSYTYMUUCYOUUDABCDEFYLGHULABCDEFYNGHULUMRYJUUAUUEYQNZUUAYL
      FEUNKZJZYLUOLZPYLLZMZOZYNUUGJZYNUOLZPYNLZMZOZOZYJUUFYSUULYTUUQAUEZUOLZPUU
      SLZMZUUKAYLUUGCUUSYLMUUTUUIUVAUUJUUSYLUOUPPUUSYLUQURGUSUVBUUPAYNUUGCUUSYN
      MUUTUUNUVAUUOUUSYNUOUPPUUSYNUQURGUSUTUURYJUUFUUHUUKUUQYJUUFNZUUHYLEVALZVB
      ZJZYLVCLZFSVDKZMZIUEZYLLZUVJSVDKZYLLVIEVELZJIPFVFKZUGZWAUUKUUQUVCNNZIUVME
      FUVDYLUVDVGZUVMVGZVHUVFUVIUVPUVOUUQUVFUVIOZUUKUVCUUMUUPUVSUUKOZUVCNZUUMYN
      UVEJZYNVCLZUVHMZUVJYNLZUVLYNLVIUVMJIUVNUGZWAUUPUWANZIUVMEFUVDYNUVQUVRVHUW
      BUWDUWGUWFUWBUWDOZUUPUWAYJUWHUUPOZUVTUUFYJUWIUVTOZUUEYQYJUWJOZUUEOZYQUVGU
      WCMZYLPUVGSVJKZUJZQKZYNUWOQKZMZUUIUUNMZOOZUWLUWMUWRUWSUWJUWMYJUUEUWJUVGUV
      HUWCUWIUVFUVIUUKVKUWBUWDUUPUVTVLVMTUWKUUEUWRUWJYJUUEUWRUKZUVTYJUXANZUWIUV
      IUXBUVFUUKUVIYJUXAUVIYJOZUUCUWPUUDUWQUXCUUBUWOYLQUXCFUWNPYJUVIFUVHSVJKZUW
      NYJFVNJZSVNJZFUXDMFVOVPUXEUXFOUXDFFSVQVRVSUVIUWNUXDUVGUVHSVJVTVRWBWCZWDUX
      CUUBUWOYNQUXGWDURWETRWFWGUWLUWSUUJUUOMZUWKUUEUXHUWKUUEUVKUWEMZIUVNUGZUXHU
      WKUVFUWBOZPWHJZFWHJZOZFUVGWIWMZFUWCWIWMZUUEUXJUKUWJUXKYJUWIUWBUVTUVFUWBUW
      DUUPWJZUVFUVIUUKWJZWKRYJUXNUWJYJUXMUXLFWNWLWOWPUWJYJUXOUVTYJUXONZUWIUVIUX
      SUVFUUKYJUXOUVIFUVHWIWMZYJFFWQZWRZUVGUVHFWIWSWTTRWFUWJYJUXPUWIYJUXPNZUVTU
      WDUYCUWBUUPYJUXPUWDUXTUYBUWCUVHFWIWSWTTWPWFYNIPFUVDYLXAXDUWKPUVNJZUXJUXHN
      YJUYDUWJUYDYJFXBXCWPUXIUXHIPUVNUVJPMUVKUUJUWEUUOUVJPYLUPUVJPYNUPURXEXFXGX
      HUWJUWSUXHUKYJUUEUVTUWIUUIUUJUUNUUOUVSUUKXIUWHUUPXIXJTXPXKUWLUVFUWBPUVGXL
      WMZWAZYQUWTUKUWKUYFUUEUWKUVFUWBUYEUWJUVFYJUVTUVFUWIUXRRRUWJUWBYJUWIUWBUVT
      UXQWPRUWJYJUYEUVTYJUYENZUWIUVIUYGUVFUUKYJUYEUVIPUVHXLWMYJFSUYAYJXMFXNPSXL
      WMYJXOXQXRUVGUVHPXLWSWTTRWFYFWPYNUVDYLXSXFXPXTYAWEYBXFXHYAYBXFYCYDYEXHXGY
      GUAUBCYKDYHYI $.

    $d D p $.  $d F p $.  $d G i p w x $.  $d N p $.
    $( Lemma 4 for ~ clwwlksbij :  F is an onto function.  (Contributed by
       Alexander van der Vekens, 29-Sep-2018.)  (Revised by AV,
       26-Apr-2021.) $)
    clwwlksfo $p |- ( N e. NN -> F : D -onto-> ( N ClWWalksN G ) ) $=
      ( vp vx vi wcel co cv cfv wceq wa cc0 csubstr syl cclwwlksn wrex wral wfo
      cn wf clwwlksf cop cs1 cconcat cvtx cword chash caddc cedg cmin cfzo clsw
      c1 cpr w3a wi clwwlknp simpr simpl1 3simpc adantr clwwlksel syl3anc opeq2
      eqcoms oveq2d adantl 3ad2ant1 simpll fstwrdne0 ancoms s1cld jca 3ad2antl1
      eqid swrdccat1 eqtr2d ex impcom oveq1 eqeq2d rspcev wb clwwlksfv rexbidva
      mpbird ralrimiva dffo3 sylanbrc ) FUELZCFEUAMZDUFINZJNZDOZPZJCUBZIWQUCCWQ
      DUDABCDEFGHUGWPXBIWQWPWRWQLZQZXBWRWSRFUHZSMZPZJCUBZXDWRRWROZUIZUJMZCLZWRX
      KXESMZPZQZXHXCWPXOXCWREUKOZULZLZWRUMOZFPZQZKNZWROYBUSUNMWROUTEUOOZLKRFUSU
      PMUQMUCZWRUROXIUTYCLZVAZWPXOVBKYCEFXPWRXPWAYCWAVCYFWPXOYFWPQZXLXNYGWPYAYD
      YEQZXLYFWPVDYAYDYEWPVEYFYHWPYAYDYEVFVGACWRKEFGVHVIYGXMXKRXSUHZSMZWRYFXMYJ
      PZWPYAYDYKYEXTYKXRXTXEYIXKSXEYIPFXSFXSRVJVKVLVMVNVGYGXRXJXQLZQZYJWRPYAYDW
      PYMYEYAWPQZXRYLXRXTWPVOYNXIXPWPYAXIXPLFXPWRVPVQVRVSVTXPWRXJWBTWCVSWDTWEXG
      XNJXKCWSXKPXFXMWRWSXKXESWFWGWHTXDXAXGJCWSCLZXAXGWIXDYOWTXFWRABCDEFWSGHWJW
      GVMWKWLWMJICWQDWNWO $.

    $( Lemma 5 for ~ clwwlksbij :  F is a 1-1 onto function.  (Contributed by
       Alexander van der Vekens, 29-Sep-2018.)  (Revised by AV,
       26-Apr-2021.) $)
    clwwlksf1o $p |- ( N e. NN
                      -> F : D -1-1-onto-> ( N ClWWalksN G ) ) $=
      ( cn wcel cclwwlksn co wf1 wfo wf1o clwwlksf1 clwwlksfo df-f1o sylanbrc )
      FIJCFEKLZDMCTDNCTDOABCDEFGHPABCDEFGHQCTDRS $.
  $}

  ${
    $d G f w x $.  $d N f w x $.
    $( There is a bijection between the set of closed walks of a fixed length
       represented by walks (as word) and the set of closed walks (as words) of
       a fixed length.  The difference between these two representations is
       that in the first case the starting vertex is repeated at the end of the
       word, and in the second case it is not.  (Contributed by Alexander van
       der Vekens, 29-Sep-2018.)  (Revised by AV, 26-Apr-2021.) $)
    clwwlksbij $p |- ( N e. NN -> E. f f : { w e. ( N WWalksN G ) |
                                            ( lastS ` w ) = ( w ` 0 ) }
                                     -1-1-onto-> ( N ClWWalksN G ) ) $=
      ( vx cv clsw cfv cc0 wceq cwwlksn co crab cop csubstr cmpt wcel wf1o eqid
      cvv cn cclwwlksn wex ovex mptrabex clwwlksf1o f1oeq1 spcegv mpsyl ) EAFZG
      HIUJHJZADCKLZMZEFIDNOLZPZTQDUAQUMDCUBLZUORZUMUPBFZRZBUCUKEAULUNDCKUDUEAEU
      MUOCDUMSUOSUFUSUQBUOTUMUPURUOUGUHUI $.
  $}

  ${
    $d G i $.  $d G w $.  $d N i $.  $d N w $.  $d P i $.  $d P w $.
    $( Obtaining a closed walk (as word) by appending the first symbol to the
       word representing a walk.  (Contributed by Alexander van der Vekens,
       29-Sep-2018.)  (Revised by AV, 26-Apr-2021.) $)
    clwwlksnwwlkncl $p |- ( ( N e. NN /\ P e. ( N ClWWalksN G ) )
                           -> ( P ++ <" ( P ` 0 ) "> )
           e. { w e. ( N WWalksN G ) | ( lastS ` w ) = ( w ` 0 ) } ) $=
      ( vi cn wcel cclwwlksn co wa cvtx cfv wceq cv c1 cpr cc0 clsw w3a eqid wi
      cword chash caddc cedg cmin cfzo wral cs1 cconcat cwwlksn crab clwwlknbp0
      cvv clwwlknp simpll1 3simpc ad2antrr 3jca ex syl2anc impcom clwwlksel syl
      simpr ) DFGZBDCHIGZJVFBCKLZUBGBUCLDMJZENZBLVJOUDIBLPCUELZGEQDOUFIUGIUHZBR
      LQBLZPVKGZJZSZBVMUIUJIANZRLQVQLMADCUKIULZGVGVFVPVGVIVLVNSZCUNGVFJVIJZVFVP
      UAEVKCDVHBVHTZVKTUOCDVHBWAUMVSVTJZVFVPWBVFJVFVIVOWBVFVEVIVLVNVTVFUPVSVOVT
      VFVIVLVNUQURUSUTVAVBAVRBECDVRTVCVD $.

    $d G f w x y $.  $d G i w $.  $d N f x y $.  $d S f w y $.
    $( There is a bijection between the set of closed walks of a fixed length
       starting at a fixed vertex represented by walks (as word) and the set of
       closed walks (as words) of a fixed length starting at a fixed vertex.
       The difference between these two representations is that in the first
       case the starting vertex is repeated at the end of the word, and in the
       second case it is not.  (Contributed by Alexander van der Vekens,
       29-Sep-2018.)  (Revised by AV, 26-Apr-2021.) $)
    clwwlksvbij $p |- ( N e. NN -> E. f f : { w e. ( N WWalksN G ) |
                               ( ( lastS ` w ) = ( w ` 0 ) /\ ( w ` 0 ) = S ) }
            -1-1-onto-> { w e. ( N ClWWalksN G ) | ( w ` 0 ) = S } ) $=
      ( vx vy wcel cv cfv cc0 wceq wa co crab wf1o eqid wb c1 cfz vi cn cwwlksn
      clsw cclwwlksn wex cop csubstr cmpt cres cvv ovex mptrabex clwwlksf1o w3a
      resex fveq1 eqeq1d 3ad2ant3 cvtx cword chash wi fveq2 eqeq12d elrab caddc
      cpr cedg cfzo wral wwlknp simpll cuz cz nnz uzid peano2uz elfz1end biimpi
      fzss2 sselda syl2anc adantl oveq2 eleq2d adantr mpbird jca ex 3adant3 syl
      3syl sylbi impcom bitrd f1oresrab f1oeq1 spcegv mpsyl cbvrabv f1oeq3 mp1i
      swrd0fv0 exbidv cab df-rab anass bicomi abbii anbi1i eqtr4i 3eqtri f1oeq2
      ) EUBHZAIZUDJZKXPJZLZXRBLZMZAEDUCNZOZXTAEDUENZOZCIZPZCUFXTAFIZUDJZKYHJZLZ
      FYBOZOZYEYFPZCUFZXOYOYMKGIZJZBLZGYDOZYFPZCUFZAYLXPKEUGUHNZUIZYMUJZUKHXOYM
      YSUUDPZUUAUUCYMYKAFYBUUBEDUCULUMUPXOXTYRAGYLYDUUBUUCUUCQZFAYLUUCDEYLQUUFU
      NXOXPYLHZYPUUBLZUOYRKUUBJZBLZXTUUHXOYRUUJRUUGUUHYQUUIBKYPUUBUQURUSXOUUGUU
      JXTRUUHXOUUGMZUUIXRBUUKXPDUTJZVAHZESXPVBJZTNZHZMZUUIXRLUUGXOUUQUUGXPYBHZX
      SMZXOUUQVCZYKXSFXPYBYHXPLYIXQYJXRYHXPUDVDKYHXPUQVEVFZUURUUTXSUURUUMUUNESV
      GNZLZUAIZXPJUVDSVGNXPJVHDVIJZHUAKEVJNVKZUOUUTUAUVEDEUULXPUULQUVEQVLUUMUVC
      UUTUVFUUMUVCMZXOUUQUVGXOMZUUMUUPUUMUVCXOVMUVHUUPESUVBTNZHZXOUVJUVGXOUVBEV
      NJZHZESETNZHZUVJXOEVOHEUVKHUVLEVPEVQEEVRWMXOUVNEVSVTUVLUVMUVIEESUVBWAWBWC
      WDUVGUUPUVJRZXOUVCUVOUUMUVCUUOUVIEUUNUVBSTWEWFWDWGWHWIWJWKWLWGWNWOEUULXPX
      DWLURWKWPWQYTUUECUUDUKYMYSYFUUDWRWSWTXOYNYTCYEYSLYNYTRXOXTYRAGYDXPYPLXRYQ
      BKXPYPUQURXAYEYSYMYFXBXCXEWHXOYGYNCYCYMLYGYNRXOYCUURYAMZAXFUUSXTMZAXFZYMY
      AAYBXGUVPUVQAUVQUVPUURXSXTXHXIXJUVRUUGXTMZAXFYMUVQUVSAUUSUUGXTUUGUUSUVAXI
      XKXJXTAYLXGXLXMYCYMYEYFXNXCXEWH $.
  $}

  ${
    $d E i $.  $d G i $.  $d N i $.  $d W i $.  $d Z i $.
    clwwlksext2edg.v $e |- V = ( Vtx ` G ) $.
    clwwlksext2edg.e $e |- E = ( Edg ` G ) $.
    $( If a word concatenated with a vertex represents a closed walk in (in a
       graph), there is an edge between this vertex and the last vertex of the
       word, and between this vertex and the first vertex of the word.
       (Contributed by Alexander van der Vekens, 3-Oct-2018.)  (Revised by AV,
       27-Apr-2021.) $)
    clwwlksext2edg $p |- ( ( ( W e. Word V /\ Z e. V /\ N e. ( ZZ>= ` 2 ) )
                             /\ ( W ++ <" Z "> ) e. ( N ClWWalksN G ) )
                           -> ( { ( lastS ` W ) , Z } e. E
                                /\ { Z , ( W ` 0 ) } e. E ) ) $=
      ( co wcel c2 cfv cc0 wa wceq wi c1 cmin adantr ex cconcat cclwwlksn cword
      vi cs1 cuz w3a clsw cpr cvv cn chash clwwlknbp0 cv caddc cfzo isclwwlksnx
      wral ad2antlr ige2m2fzo 3ad2ant3 oveq1 oveq2d eleq2d adantl mpbird fveq2d
      wb fveq2 preq12d eleq1d rspcv wrdlenccats1lenm1 sylan9eq 3adant3 eluzelcn
      syl 1cnd subsub4d 1p1e2 a1i eqtr2d eqcomd syld imp c0 wne simpl1 3ad2ant2
      s1cl clt wbr cz cle eluz2 cr zre 1red simpl 1lt2 simpr ltletrd id posdifd
      2re mpbid 3imp sylbi breq2 hashneq0 3adantl2 3jca ccatval1lsw eqtrd 2m1e1
      subsubd eqeq2 syl5ibrcom ccatws1ls sylibd com13 lswccats1 ccatfv0 syl3anc
      2cnd imp31 impcom biimpcd impl jca syl6bi mpcom ) EFUEZUAIZCBUBIJZEDUCZJZ
      FDJZCKUFLJZUGZEUHLZFUIZAJZFMELZUIZAJZNZBUJJZCUKJZNYNYPJZYNULLZCOZNZNZYOYT
      UUGPZBCDYNGUMUUNYOUUJUDUNZYNLZUUPQUOIZYNLZUIZAJZUDMUUKQRIZUPIZURZYNUHLZMY
      NLZUIZAJZUGZUULNZUUOUUIYOUVJVHUUHUUMUDABCDYNGHUQUSUVJYTUUGUVJYTNUUCUUFUVI
      UULYTUUCUVDUUJUULYTUUCPPUVHYTUULUVDUUCYTUULUVDUUCPYTUULNZUVDCKRIZYNLZUVLQ
      UOIZYNLZUIZAJZUUCUVKUVLUVCJZUVDUVQPUVKUVRUVLMCQRIZUPIZJZYTUWAUULYSYQUWAYR
      CUTVASUULUVRUWAVHYTUULUVCUVTUVLUULUVBUVSMUPUUKCQRVBZVCVDVEVFUVAUVQUDUVLUV
      CUUPUVLOZUUTUVPAUWCUUQUVMUUSUVOUUPUVLYNVIUWCUURUVNYNUUPUVLQUOVBVGVJVKVLVQ
      UVKUVPUUBAUVKUVMUUAUVOFUVKUVMEULLZQRIZYNLZUUAUVKUVLUWEYNYTUULUVLUWEOZYTUU
      LUWDUVSOZUWGYQYRUULUWHPYSYQYRNZUULUWHUWIUULUWDUVBUVSFDEVMUWBVNTVOZYTUWHUW
      GYTUWHUVLUVSQRIZUWEYSYQUVLUWKOYRYSUWKCQQUOIZRIUVLYSCQQKCVPZYSVRZUWNVSYSUW
      LKCRUWLKOYSVTWAVCWBVAUWHUWEUWKUWDUVSQRVBWCVNTWDWEVGUVKYQYMYPJZEWFWGZUGZUW
      FUUAOYTUULUWQYTUULUWHUWQUWJYTUWHUWQYTUWHNZYQUWOUWPYQYRYSUWHWHZYTUWOUWHYRY
      QUWOYSFDWJWISZYQYSUWHUWPYRYQYSNZUWHNZMUWDWKWLZUWPUXBUXCMUVSWKWLZYSUXDYQUW
      HYSKWMJZCWMJZKCWNWLZUGUXDKCWOUXEUXFUXGUXDUXFUXGUXDPZPUXEUXFCWPJZUXHCWQUXI
      UXGUXDUXIUXGNZQCWKWLZUXDUXJQKCUXJWRKWPJUXJXEWAUXIUXGWSQKWKWLUXJWTWAUXIUXG
      XAXBUXIUXKUXDVHUXGUXIQCUXIWRUXIXCXDSXFTVQWAXGXHZUSUWHUXCUXDVHZUXAUWDUVSMW
      KXIZVEVFUXAUXCUWPVHZUWHYQUXOYSEYPXJSSXFXKXLTWDWEEYMDXMVQXNUVKUVOUWDYNLZFU
      VKUVNUWDYNYTUULUVNUWDOZYTUULUWHUXQUWJYTUXQUWHUVNUVSOZYSYQUXRYRYSUVSCKQRIZ
      RIUVNYSQUXSCRYSUXSQUXSQOYSXOWAWCVCYSCKQUWMYSYEUWNXPWBVAUWDUVSUVNXQXRWDWEV
      GUVKUWIUXPFOYTUWIUULYQYRUWIYSUWIXCVOZSDEFXSVQXNVJVKXTTYAWIYFUVIUULYTUUFUV
      HUUJUULYTNZUUFPUVDUYAUVHUUFUYAUVGUUEAYTUULUVGUUEOZYTUULUWHUYBUWJYTUWHUYBU
      WRUVEFUVFUUDUWRUWIUVEFOYTUWIUWHUXTSFDEYBVQUWRYQUWOUXCUVFUUDOUWSUWTUWRUXCU
      XDYTUXDUWHYSYQUXDYRUXLVASUWHUXMYTUXNVEVFEYMDYCYDVJTWDYGVKYHVAYIYJTYKYLYG
      $.

    $d V i $.
    $( If a word represents a walk in (in a graph) and there are edges between
       the last vertex of the word and another vertex and between this other
       vertex and the first vertex of the word, then the concatenation of the
       word representing the walk with this other vertex represents a closed
       walk.  (Contributed by Alexander van der Vekens, 3-Oct-2018.)  (Revised
       by AV, 27-Apr-2021.) $)
    wwlksext2clwwlk $p |- ( ( W e. ( N WWalksN G ) /\ Z e. V /\ N e. NN0 )
                  -> ( ( { ( lastS ` W ) , Z } e. E /\ { Z , ( W ` 0 ) } e. E )
                       -> ( W ++ <" Z "> ) e. ( ( N + 2 ) ClWWalksN G ) ) ) $=
      ( vi co wcel cfv cc0 wa caddc wi c1 wceq adantr adantl cwwlksn cn0 cpr c2
      clsw cs1 cconcat cclwwlksn cvv cword w3a wwlknbp cv chash cmin cfzo simp3
      wral ccatcl syl2an wwlknp csn cun simpll ad2antlr cn clt wbr elfzo0 simp1
      s1cl peano2nn 3ad2ant2 nn0re 3ad2ant1 nnre peano2re ltp1d lttrd syl3anbrc
      cr syl sylbi wb eleq2d mpbird ccatval1 syl3anc eqcomd fzonn0p1p1 ad3antlr
      oveq2 preq12d eleq1d ralbidva biimpd ex com23 3impia com12 oveq1 cc nn0cn
      impcom ad2antll pncan1 eqtr2d fveq2d c0 wne nn0p1gt0 breq2 hashneq0 mpbid
      ccatval1lsw eqcoms ccatws1ls ad2ant2r 3adantl3 impr simprlr ralsng ralunb
      fveq2 sylanbrc elnn0uz biimpi fzosplitsn raleqdv ccatws1len oveq1d ax-1cn
      cuz addcl simpr pncand sylancl imp eqtrd exp31 oveq2d exp32 adantrd simpl
      sylan9eqr ccatfv0 cvtx wwlknbp2 wrdeqi eqcomi eleq2i anim1i impel biimpcd
      lswccats1 3jca 1cnd addassd 1p1e2 oveq2i syl6eq sylan9eq nn0nnaddcl mpan2
      2nn isclwwlksnx ad3antrrr mpbir2and mpancom 3impib ) ECBUAJKZFDKZCUBKZEUE
      LZFUCZAKZFMELZUCZAKZNZEFUFZUGJZCUDOJZBUHJKZPZBUIKZUVMEDUJZKZUKZUVKUVLUVMN
      ZUWEPBCDEGULUWIUVKNZUWJUVTUWDUWKUWJNZUVTNZUWDUWBUWGKZIUMZUWBLZUWOQOJZUWBL
      ZUCZAKZIMUWBUNLZQUOJZUPJZURZUWBUELZMUWBLZUCZAKZUKZUXAUWCRZUWMUWNUXDUXHUWL
      UWNUVTUWKUWHUWAUWGKZUWNUWJUWIUWHUVKUWFUVMUWHUQSUVLUXKUVMFDVKSZDEUWAUSUTSU
      WLUVTUXDUWLUVPUXDUVSUWKUWJUVPUXDPZUVKUWJUXMPZUWIUVKUWHEUNLZCQOJZRZUWOELZU
      WQELZUCZAKZIMCUPJZURZUKZUXNIABCDEGHVAUYDUWJUVPUXDUYDUWJUVPNZNZUXDUWTIMUXP
      UPJZURZUYFUYHUWTIUYBCVBZVCZURZUYFUWTIUYBURZUWTIUYIURZUYKUYEUYDUYLUWJUYDUY
      LPUVPUYDUWJUYLUWHUXQUYCUWJUYLPUWHUXQNZUWJUYCUYLUYNUWJUYCUYLPUYNUWJNZUYCUY
      LUYOUYAUWTIUYBUYOUWOUYBKZNZUXTUWSAUYQUXRUWPUXSUWRUYQUWPUXRUYQUWHUXKUWOMUX
      OUPJZKZUWPUXRRUYOUWHUYPUWHUXQUWJVDZSZUWJUXKUYNUYPUXLVEZUYQUYSUWOUYGKZUYPV
      UCUYOUYPUWOUBKZCVFKZUWOCVGVHZUKZVUCUWOCVIVUGVUDUXPVFKZUWOUXPVGVHVUCVUDVUE
      VUFVJVUEVUDVUHVUFCVLVMVUGUWOCUXPVUDVUEUWOWAKVUFUWOVNVOVUEVUDCWAKZVUFCVPZV
      MVUEVUDUXPWAKZVUFVUEVUIVUKVUJCVQWBVMVUDVUEVUFUQVUEVUDCUXPVGVHVUFVUECVUJVR
      VMVSUWOUXPVIVTWCTUYOUYSVUCWDZUYPUYNVULUWJUYNUYRUYGUWOUXQUYRUYGRUWHUXOUXPM
      UPWLZTWESSWFDEUWAUWOWGWHWIUYQUWRUXSUYQUWHUXKUWQUYRKZUWRUXSRVUAVUBUYQVUNUW
      QUYGKZUYPVUOUYOUWOCWJTUXQVUNVUOWDUWHUWJUYPUXQUYRUYGUWQVUMWEWKWFDEUWAUWQWG
      WHWIWMWNWOWPWQWRWSWTSXDUYFUYMCUWBLZUXPUWBLZUCZAKZUYDUWJUVPVUSUYDUWJNZUVPV
      USVUTUVOVURAUWHUXQUWJUVOVURRUYCUYOUVNVUPFVUQUYOVUPUXOQUOJZUWBLZUVNUYOCVVA
      UWBUYOVVAUXPQUOJZCUXQVVAVVCRUWHUWJUXOUXPQUOXAVEUYOCXBKZVVCCRUVMVVDUYNUVLC
      XCZXECXFWBXGXHUYOUWHUXKEXIXJZVVBUVNRUYTUWJUXKUYNUXLTUYOMUXOVGVHZVVFUYOVVG
      MUXPVGVHZUVMVVHUYNUVLCXKZXEUXQVVGVVHWDZUWHUWJUXOUXPMVGXLZVEWFUYOUWHVVGVVF
      WDUYTEUWGXMWBXNEUWADXOWHXGUYOVUQUXOUWBLZFUXQVUQVVLRZUWHUWJVVMUXPUXOUXPUXO
      UWBYDXPVEUWHUVLVVLFRUXQUVMDEFXQXRXGWMXSWNWPXTUYFUVMUYMVUSWDUYDUVLUVMUVPYA
      UWTVUSICUBUWOCRZUWSVURAVVNUWPVUPUWRVUQUWOCUWBYDVVNUWQUXPUWBUWOCQOXAXHWMWN
      YBWBWFUWTIUYBUYIYCYEUYFUWTIUYGUYJUYFCMYMLKZUYGUYJRUYEVVOUYDUVMVVOUVLUVPUV
      MVVOCYFYGVETMCYHWBYIWFUYFUWTIUXCUYGUYFUXBUXPMUPUYFUXBUXOQOJZQUOJZUXPUYFUX
      AVVPQUOUYDUWHUVLUXAVVPRZUYEUWHUXQUYCVJUVLUVMUVPVDDEFYJZUTYKUYDUYEVVQUXPRZ
      UXQUWHUYEVVTPUYCUYEUXQVVTUVMUXQVVTPUVLUVPUVMUXQVVTUXQUVMVVQUXPQOJZQUOJZUX
      PUXQVVPVWAQUOUXOUXPQOXAZYKUVMVVDQXBKZVWBUXPRVVEYLVVDVWDNUXPQCQYNVVDVWDYOY
      PYQUUEWQVEWTVMYRYSUUAYIWFUUBWBTYRUUCYRUVTUWLUXHUVSUWLUXHPUVPUWLUVSUXHUWLU
      VRUXGAUWKUWJUVRUXGRZUWIUYNUWJVWEPZUVKUVMUWFUYNVWFPUWHUYNUVMVWFUYNUVMUWJVW
      EUYNUVMNZUWJNZFUXEUVQUXFVWHUXEFVWGUWHUVLUXEFRUWJUWHUXQUVMVDZUVLUVMUUDFDEU
      UOUTWIVWHUWHUXKVVGUVQUXFRVWGUWHUWJVWISUWJUXKVWGUXLTVWGVVGUWJVWGVVGVVHUVMV
      VHUYNVVITUXQVVJUWHUVMVVKVEWFSUWHUXKVVGUKUXFUVQEUWADUUFWIWHWMYTWTVMUVKEBUU
      GLZUJZKZUXQNUYNBCEUUHVWLUWHUXQVWLUWHVWKUWGEUWGVWKDVWJGUUIUUJUUKYGUULWBZUU
      MYRWNUUNTXDUUPUWLUXJUVTUWKUWJUXJUVKUWJUXJPZUWIUVKUYNVWNVWMUYNUWJUXJUYOUXA
      VVPUWCUWHUVLVVRUXQUVMVVSXRUYNUWJVVPVWAUWCUXQVVPVWARUWHVWCTUVMVWAUWCRUVLUV
      MVWACQQOJZOJUWCUVMCQQVVEUVMUUQZVWPUURVWOUDCOUUSUUTUVATUVBYSWQWBTYRSUWIUWD
      UXIUXJNWDZUVKUWJUVTUWIUWCVFKZVWQUVMUWFVWRUWHUVMUDVFKVWRUVECUDUVCUVDVMIABU
      WCDUWBGHUVFWBUVGUVHYTUVIUVJ $.
  $}

  ${
    $d G i $.  $d M i $.  $d N i $.  $d X i $.
    $( Any prefix of a word representing a closed walk represents a walk.
       (Contributed by Alexander van der Vekens, 5-Oct-2018.)  (Revised by AV,
       28-Apr-2021.) $)
    wwlksubclwwlks $p |- ( ( M e. NN /\ N e. ( ZZ>= ` ( M + 1 ) ) )
                           -> ( X e. ( N ClWWalksN G )
                  -> ( X substr <. 0 , M >. ) e. ( ( M - 1 ) WWalksN G ) ) ) $=
      ( vi wcel c1 co cfv wa cc0 cfzo wceq w3a wi adantr syl cle wbr adantl cuz
      cn caddc cclwwlksn cop csubstr cmin cwwlksn cvtx cword cv cedg chash wral
      cpr clsw eqid clwwlknp swrdcl ad2antrr wss cz nnz eluzp1m1 peano2zm lem1d
      ex nnre eluzuzle syl2anc syld imp fzoss2 ssralv cfz simpll eluz2 peano2re
      cn0 cr zre ad2antrl lep1d simpr letrd nnnn0 0red 3jca nn0ge0d anim1i letr
      sylc elnn0z sylibr adantlrr mpdan expcom 3adant1 sylbi impcom elfz2nn0 wb
      jca oveq2 eleq2d mpbird syl3anbrc sseld swrd0fv syl3anc eqcomd fzonn0p1p1
      nncn npcan1 oveq2d syl5ib preq12d eleq1d ralbidva sylibd impancom adantlr
      cc swrd0len oveq1d raleqdv eqtrd 3adant3 nnm1nn0 iswwlksnx ) BUBFZCBGUCHZ
      UAIFZJZDCAUDHFZDKBUEUFHZBGUGHZAUHHFZYNYOJZYRYPAUIIZUJZFZEUKZYPIZUUCGUCHZY
      PIZUOZAULIZFZEKYPUMIZGUGHZLHZUNZUUJYQGUCHZMZNZYOYNUUPYODUUAFZDUMIZCMZJZUU
      CDIZUUEDIZUOZUUHFZEKCGUGHZLHZUNZDUPIKDIUOUUHFZNYNUUPOZEUUHACYTDYTUQZUUHUQ
      ZURUUTUVGUVIUVHUUTUVGJZYNUUPUVLYNJZUUBUUMUUOUUTUUBUVGYNUUQUUBUUSYTDKBUSPU
      TUVMUUMUUIEKYQLHZUNZUVLYNUVOUUTYNUVGUVOUUTYNJZUVGUVDEUVNUNZUVOUVPUVNUVFVA
      ZUVGUVQOYNUVRUUTYNUVEYQUAIZFZUVRYKYMUVTYKYMUVEBUAIFZUVTYKBVBFZYMUWAOBVCZU
      WBYMUWABCVDVGQYKYQVBFZYQBRSZUWAUVTOYKUWBUWDUWCBVEQZYKBBVHZVFZBYQUVEVIVJVK
      VLYQKUVEVMQTUVDEUVNUVFVNQUVPUVDUUIEUVNUVPUUCUVNFZJZUVCUUGUUHUWJUVAUUDUVBU
      UFUWJUUDUVAUWJUUQBKUURVOHZFZUUCKBLHZFZUUDUVAMUVPUUQUWIUUQUUSYNVPZPZUVPUWL
      UWIUVPUWLBKCVOHZFZYNUWRUUTYNBVSFZCVSFZBCRSZNZUWRYMYKUXBYMYLVBFZCVBFZYLCRS
      ZNYKUXBOZYLCVQUXDUXEUXFUXCYKUXDUXEJZUXBYKUXGJZUXAUXBUXHBYLCYKBVTFZUXGUWGP
      YKYLVTFZUXGYKUXIUXJUWGBVRQPUXDCVTFZYKUXECWAZWBYKBYLRSUXGYKBUWGWCPUXGUXEYK
      UXDUXEWDTWEUXHUXAJUWSUWTUXAYKUWSUXGUXABWFZUTYKUXDUXAUWTUXEYKUXDJZUXAJZUXD
      KCRSZJUWTUXOUXDUXPUXNUXDUXAYKUXDWDPUXOKVTFZUXIUXKNZKBRSZUXAJUXPUXNUXRUXAU
      XNUXQUXIUXKUXNWGYKUXIUXDUWGPUXDUXKYKUXLTWHPUXNUXSUXAYKUXSUXDYKBUXMWIPWJKB
      CWKWLXCCWMWNWOUXHUXAWDWHWPWQWRWSWTBCXAWNTUUTUWLUWRXBZYNUUSUXTUUQUUSUWKUWQ
      BUURCKVOXDXETPXFZPZUVPUWIUWNYKUWIUWNOUUTYMYKUVNUWMUUCYKBUVSFZUVNUWMVAYKUW
      DUWBUWEUYCUWFUWCUWHYQBVQXGYQKBVMQXHWBVLUUCBYTDXIXJXKUWJUUFUVBUWJUUQUWLUUE
      UWMFZUUFUVBMUWPUYBUVPUWIUYDYKUWIUYDOUUTYMUWIUUEKUUNLHZFYKUYDUUCYQXLYKUYEU
      WMUUEYKUUNBKLYKBYCFUUNBMBXMBXNQZXOXEXPWBVLUUEBYTDXIXJXKXQXRXSXTYAVLUVMUUI
      EUULUVNUVMUUKYQKLUVMUUJBGUGUVMUUQUWLJZUUJBMZUUTYNUYGUVGUVPUUQUWLUWOUYAXCY
      BYTDBYDZQYEXOYFXFUUTYNUUOUVGUVPUUJBUUNUVPUUQUWLUYHUWOUYAUYIVJYKBUUNMUUTYM
      YKUUNBUYFXKWBYGYBWHVGYHQWTYSYQVSFZYRUUPXBYKUYJYMYOBYIUTEUUHAYQYTYPUVJUVKY
      JQXFVG $.
  $}

  ${
    $d A i $.  $d B i $.  $d L i $.  $d R i $.  $d W i $.
    $( Lemma for ~ clwwisshclwwslem .  (Contributed by Alexander van der
       Vekens, 23-Mar-2018.) $)
    clwwisshclwwslemlem $p |- ( ( ( L e. ( ZZ>= ` 2 ) /\ A e. ZZ /\ B e. ZZ )
                                /\ A. i e. ( 0 ..^ ( L - 1 ) )
                                         { ( W ` i ) , ( W ` ( i + 1 ) ) } e. R
                                /\ { ( W ` ( L - 1 ) ) , ( W ` 0 ) } e. R )
                           -> { ( W ` ( ( A + B ) mod L ) ) ,
                                ( W ` ( ( ( A + 1 ) + B ) mod L ) ) } e. R ) $=
      ( cfv wcel c1 caddc co cpr cc0 cmo wceq fveq2d 3ad2ant1 wi wa adantr cmin
      c2 cuz cz w3a cv cfzo wral cc 3ad2ant2 1cnd 3ad2ant3 add32d oveq1d preq2d
      zcn clt wbr cn0 cn zaddcl 3adant1 eluz2nn zmodcld uz2m1nn simpr syl3anbrc
      elfzo0 fveq2 oveq1 preq12d eleq1d rspcv syl crp zred modltm1p1mod syl3anc
      nnrpd sylibrd impancom 3adant3 zmodfzo syl2anc elfzonlteqm1 eqcomd adantl
      cr wn ex zre readdcl syl2an jca modm1p1mod0 sylc biimpd com23 imp 3adant2
      syld pm2.61d eqeltrd ) EUBUCGHZAUDHZBUDHZUEZDUFZFGZXHIJKZFGZLZCHZDMEIUAKZ
      UGKZUHZXNFGZMFGZLZCHZUEZABJKZENKZFGZAIJKBJKZENKZFGZLYDYBIJKZENKZFGZLZCYAY
      GYJYDXGXPYGYJOXTXGYFYIFXGYEYHENXGAIBXEXDAUIHXFAUPUJXGUKXFXDBUIHXEBUPULUMU
      NPQUOYAYCXNUQURZYKCHZXGXPYLYMRXTXGYLXPYMXGYLSZXPYDYCIJKZFGZLZCHZYMYNYCXOH
      ZXPYRRYNYCUSHZXNUTHZYLYSXGYTYLXGYBEXEXFYBUDHZXDABVAZVBZXDXEEUTHZXFEVCZQZV
      DTXGUUAYLXDXEUUAXFEVEQTXGYLVFZYCXNVHVGXMYRDYCXOXHYCOZXLYQCUUIXIYDXKYPXHYC
      FVIUUIXJYOFXHYCIJVJPVKVLVMVNYNYKYQCYNYJYPYDYNYIYOFYNYBWHHZEVOHZYLYIYOOXGU
      UJYLXEXFUUJXDXEXFSYBUUCVPVBTXGUUKYLXDXEUUKXFXDEUUFVSQZTUUHYBEVQVRPUOVLVTW
      AWBXGXTYLWIZYMRZXPXGXTUUNXGUUMXTYMXGUUMXNYCOZXTYMRZXGYCMEUGKHZUUMUUORXGUU
      BUUEUUQUUDUUGYBEWCWDUUQUUMUUOUUQUUMSYCXNYCEWEWFWJVNXGUUOUUPXGUUOSZXTYMUUR
      XSYKCUURXQYDXRYJUUOXQYDOXGXNYCFVIWGUURMYIFUURYIMUURUUJUUKSZYCXNOYIMOXGUUS
      UUOXGUUJUUKXEXFUUJXDXEAWHHBWHHUUJXFAWKBWKABWLWMVBUULWNTUURXNYCXGUUOVFWFYB
      EWOWPWFPVKVLWQWJXAWRWSWTXBXC $.
  $}

  ${
    $d E i j $.  $d N i j $.  $d V i j $.  $d W i j $.
    $( Lemma for ~ clwwisshclwws .  (Contributed by AV, 24-Mar-2018.)  (Revised
       by AV, 28-Apr-2021.) $)
    clwwisshclwwslem $p |- ( ( W e. Word V /\ N e. ( 1 ..^ ( # ` W ) ) )
                          -> ( ( A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) )
                                    { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E
                                 /\ { ( lastS ` W ) , ( W ` 0 ) } e. E )
                    -> A. j e. ( 0 ..^ ( ( # ` ( W cyclShift N ) ) - 1 ) )
                          { ( ( W cyclShift N ) ` j )
                          , ( ( W cyclShift N ) ` ( j + 1 ) ) } e. E ) ) $=
      ( wcel c1 cfv cfzo co wa caddc cpr cc0 cz wceq adantr wbr c2 cv cmin wral
      cword chash clsw ccsh wb elfzoelz cshwlen sylan2 oveq1d oveq2d eleq2d cmo
      simpll ad2antlr cuz wss cn0 lencl cle nn0z peano2zm syl nn0re lem1d eluz2
      fzoss2 sselda cshwidxmod syl3anc clt elfzo1 simp2bi adantl elfzom1p1elfzo
      syl3anbrc cn sylan preq12d adantlr w3a 2z a1i nnz 3ad2ant2 wne nnnn0 1red
      nnne0 cr nnre 3ad2ant1 nnge1 simp3 lelttrd gtned nn0n0n1ge2 sylbi simplrl
      wi lsw preq1d eleq1d biimpcd impcom clwwisshclwwslemlem syl311anc eqeltrd
      ad3antlr ex sylbid ralrimiv ) FEUDZGZDHFUEIZJKGZLZAUAZFIXTHMKFINCGAOXQHUB
      KZJKZUCZFUFIZOFIZNZCGZLZBUAZFDUGKZIZYIHMKZYJIZNZCGZBOYJUEIZHUBKZJKZUCXSYH
      LZYOBYRYSYIYRGZYIYBGZYOXSYTUUAUHYHXSYRYBYIXSYQYAOJXSYPXQHUBXRXPDPGZYPXQQD
      HXQUIZDEFUJUKULUMUNRYSUUAYOYSUUALZYNYIDMKXQUOKFIZYLDMKXQUOKFIZNZCXSUUAYNU
      UGQYHXSUUALZYKUUEYMUUFUUHXPUUBYIOXQJKZGYKUUEQXPXRUUAUPZXRUUBXPUUAUUCUQZXS
      YBUUIYIXSXQYAURIGZYBUUIUSXPUULXRXPXQUTGZUULEFVAUUMYAPGZXQPGZYAXQVBSUULUUM
      UUOUUNXQVCZXQVDVEUUPUUMXQXQVFVGYAXQVHVRVERYAOXQVIVEVJYIDEFVKVLUUHXPUUBYLU
      UIGZYMUUFQUUJUUKXSXQVSGZUUAUUQXRUURXPXRDVSGZUURDXQVMSZXQDVNZVOVPXQYIVQVTY
      LDEFVKVLWAWBUUDXQTURIGZYIPGZUUBYCYAFIZYENZCGZUUGCGXRUVBXPYHUUAXRUUSUURUUT
      WCZUVBUVAUVGTPGZUUOTXQVBSZUVBUVHUVGWDWEUURUUSUUOUUTXQWFWGUVGUUMXQOWHZXQHW
      HUVIUURUUSUUMUUTXQWIWGUURUUSUVJUUTXQWKWGUVGHXQUVGWJZUVGHDXQUVKUUSUURDWLGU
      UTDWMWNUURUUSXQWLGUUTXQWMWGUUSUURHDVBSUUTDWOWNUUSUURUUTWPWQWRXQWSVLTXQVHV
      RWTXKUUAUVCYSYIOYAUIVPXRUUBXPYHUUAUUCXKXSYCYGUUAXAYSUVFUUAYHXSUVFYGXSUVFX
      BYCXSYGUVFXSYFUVECXSYDUVDYEXPYDUVDQXRFXOXCRXDXEXFVPXGRYIDCAXQFXHXIXJXLXMX
      NXL $.
  $}

  ${
    $d G i j $.  $d N i j $.  $d W i j $.
    $( Cyclically shifting a closed walk as word results in a closed walk as
       word (in an undirected graph).  (Contributed by Alexander van der
       Vekens, 24-Mar-2018.)  (Revised by AV, 28-Apr-2021.) $)
    clwwisshclwws $p |- ( ( W e. ( ClWWalks ` G )
                               /\ N e. ( 0 ..^ ( # ` W ) ) )
                             -> ( W cyclShift N ) e. ( ClWWalks ` G ) ) $=
      ( vi vj cfv wcel cc0 cfzo co wa ccsh wceq wi c0 wne adantr c1 caddc cpr
      cclwwlks chash cvv cvtx cword eqid clwwlkbp cshw0 3ad2ant2 eleq1d biimprd
      w3a mpcom oveq2 syl5ibrcom fzo1fzo0n0 cedg cmin wral clsw cshwcl 3ad2ant1
      cv cz elfzoelz cshwlen syl2an hasheq0 bicomd necon3bid biimpa eqnetrd syl
      simpl mpbid 3ad2antl1 jca anim1i 3simpc clwwisshclwwslem sylc cfz elfzofz
      wb lswcshw sylan2 fzo0ss1 sseli cshwidx0 preq12d ex elfzo1elm1fzo0 adantl
      imp fveq2 oveq1 fveq2d cc zcnd 1cnd npcand sylan9eqr rspcdv com24 eqeltrd
      a1d 3imp1 3jca expcom isclwwlks 3imtr4g sylbir com13 pm2.61dne ) CAUAFZGZ
      BHCUBFZIJZGZKCBLJZXOGZBHXPBHMZYANXSXPYAYBCHLJZXOGZAUCGZCAUDFZUEZGZCOPZULZ
      XPYDAYFCYFUFZUGYJYDXPYJYCCXOYHYEYCCMYIYFCUHUIUJUKUMYBXTYCXOBHCLUNUJUOQXPX
      SBHPZYANYLXSXPYAXSYLXPYANZXSYLKBRXQIJZGZYMBXQUPYOYHYIKZDVCZCFZYQRSJZCFZTZ
      AUQFZGZDHXQRURJIJZUSZCUTFHCFTUUBGZULZXTYGGZXTOPZKZEVCZXTFUUKRSJXTFTUUBGEH
      XTUBFZRURJIJUSZXTUTFZHXTFZTZUUBGZULZXPYAUUGYOUURUUGYOKZUUJUUMUUQUUSUUHUUI
      UUGUUHYOYPUUEUUHUUFYHUUHYIBYFCVAQZVBQYPUUEYOUUIUUFYPYOKZUULHPUUIUVAUULXQH
      YPYHBVDGUULXQMYOYHYIVNZBRXQVEZBYFCVFVGYPXQHPZYOYHYIUVDYHCOXQHYHXQHMCOMCYG
      VHVIVJVKQVLUVAUULHXTOUVAUUHUULHMXTOMWDYPUUHYOUUTQXTYGVHVMVJVOVPVQUUSYHYOK
      ZUUEUUFKZUUMUUGYHYOYPUUEYHUUFUVBVBVRUUGUVFYOYPUUEUUFVSQDEUUBBYFCVTWAUUSUU
      PBRURJZCFZBCFZTZUUBUUGYOUUPUVJMZYPUUEYOUVKNZUUFYHUVLYIYHYOUVKUVEUUNUVHUUO
      UVIYOYHBRXQWBJGUUNUVHMBRXQWCBYFCWEWFYOYHXSUUOUVIMYNXRBXQWGWHBYFCWIWFWJWKQ
      VBWNYPUUEUUFYOUVJUUBGZYPYOUUFUUEUVMYHYOUUFUUEUVMNZNZNYIYHYOUVOUVEUVNUUFUV
      EUUCUVMDUVGUUDYOUVGUUDGYHBXQWLWMUVEYQUVGMZKZUUAUVJUUBUVQYRUVHYTUVIUVPYRUV
      HMUVEYQUVGCWOWMUVPUVEYTUVGRSJZCFUVIUVPYSUVRCYQUVGRSWPWQUVEUVRBCUVEBRYOBWR
      GYHYOBUVCWSWMUVEWTXAWQXBWJUJXCXFWKQXDXGXEXHXIDUUBAYFCYKUUBUFZXJEUUBAYFXTY
      KUVSXJXKXLXIXMWNXN $.
  $}

  $( Cyclically shifting a closed walk as word results in a closed walk as word
     (in an undirected graph).  (Contributed by Alexander van der Vekens,
     15-Jun-2018.)  (Revised by AV, 29-Apr-2021.) $)
  clwwisshclwwsn $p |- ( ( W e. ( ClWWalks ` G )
                           /\ N e. ( 0 ... ( # ` W ) ) )
                         -> ( W cyclShift N ) e. ( ClWWalks ` G ) ) $=
    ( chash cfv wceq cclwwlks wcel cc0 cfz co wa ccsh oveq2 cword cvv c0 simprl
    cvtx wne eqid clwwlkbp simp2d cshwn syl adantr sylan9eq eqeltrd wn wi df-ne
    cfzo fzofzim expcom syl5bir adantl impcom clwwisshclwws syl2anc pm2.61ian )
    BCDEZFZCAGEZHZBIVAJKHZLZCBMKZVCHZVBVFLVGCVCVBVFVGCVAMKZCBVACMNVDVICFZVEVDCA
    SEZOHZVJVDAPHVLCQTAVKCVKUAUBUCVKCUDUEUFUGVBVDVERUHVBUIZVFLVDBIVAULKHZVHVMVD
    VERVFVMVNVEVMVNUJVDVMBVATZVEVNBVAUKVOVEVNBVAUMUNUOUPUQABCURUSUT $.

  $( Cyclically shifting a closed walk as word of fixed length results in a
     closed walk as word of the same length (in an undirected graph).
     (Contributed by Alexander van der Vekens, 10-Jun-2018.)  (Revised by AV,
     29-Apr-2021.) $)
  clwwnisshclwwsn $p |- ( ( W e. ( N ClWWalksN G )
                            /\ M e. ( 0 ... N ) )
                         -> ( W cyclShift M ) e. ( N ClWWalksN G ) ) $=
    ( cclwwlksn co wcel cc0 cfz ccsh cvv cn wa cfv chash wceq wi wb a1d 3imp cz
    cvtx cword eqid clwwlknbp0 w3a cclwwlks clwwlkclwwlkn 3ad2ant2 oveq2 eleq2d
    eqcoms ad2antll biimpd clwwisshclwwsn syl2anc elfzelz sylan2 ad2antrl eqtrd
    cshwlen ex simp1rr simp1lr isclwwlksn syl mpbir2and 3exp mpcom imp ) DCAEFZ
    GZBHCIFZGZDBJFZVKGZAKGZCLGZMZDAUBNZUCGZDONZCPZMZMZVLVNVPQACVTDVTUDUEWEVLVNV
    PWEVLVNUFZVPVOAUGNZGZVOONZCPZWFDWGGZBHWBIFZGZWHVLWEWKVNDACUHUIWEVLVNWMWEVNW
    MQVLWEVNWMWCVNWMRZVSWAWNCWBCWBPVMWLBCWBHIUJUKULUMUNSTABDUOUPWFWIWBCWEVLVNWI
    WBPZWEVNWOQZVLWAWPVSWCWAVNWOVNWABUAGWOBHCUQBVTDVAURVBUSSTWAWCVSVLVNVCUTWFVR
    VPWHWJMRVQVRWDVLVNVDACVOVEVFVGVHVIVJ $.

  ${
    erclwwlks.r $e |- .~ = { <. u , w >. | ( u e. ( ClWWalks ` G )
               /\ w e. ( ClWWalks ` G ) /\ E. n e. ( 0 ... ( # ` w ) )
                                           u = ( w cyclShift n ) ) } $.
    $( ` .~ ` is a relation.  (Contributed by Alexander van der Vekens,
       25-Mar-2018.)  (Revised by AV, 29-Apr-2021.) $)
    erclwwlksrel $p |- Rel .~ $=
      ( cv cclwwlks cfv wcel ccsh co wceq cc0 chash cfz wrex w3a relopabi ) BGZ
      EHIZJAGZUAJTUBDGKLMDNUBOIPLQRBACFS $.

    $d G n u w $.
    ${
      $d U n u w $.  $d W n u w $.
      $( Two classes are equivalent regarding ` .~ ` if both are words and one
         is the other cyclically shifted.  (Contributed by Alexander van der
         Vekens, 25-Mar-2018.)  (Revised by AV, 29-Apr-2021.) $)
      erclwwlkseq $p |- ( ( U e. X /\ W e. Y )
               -> ( U .~ W <-> ( U e. ( ClWWalks ` G ) /\ W e. ( ClWWalks ` G )
          /\ E. n e. ( 0 ... ( # ` W ) ) U = ( W cyclShift n ) ) ) ) $=
        ( cv cfv wcel ccsh co wceq cc0 chash cfz adantl cclwwlks wrex w3a wa wb
        eleq1 adantr fveq2 oveq2d simpl eqeq12d rexeqbidv 3anbi123d brabga
        oveq1 ) BKZFUALZMZAKZUQMZUPUSEKZNOZPZEQUSRLZSOZUBZUCDUQMZGUQMZDGVANOZPZ
        EQGRLZSOZUBZUCBADGCHIUPDPZUSGPZUDZURVGUTVHVFVMVNURVGUEVOUPDUQUFUGVOUTVH
        UEVNUSGUQUFTVPVCVJEVEVLVOVEVLPVNVOVDVKQSUSGRUHUITVPUPDVBVIVNVOUJVOVBVIP
        VNUSGVANUOTUKULUMJUN $.

      $d X n $.  $d Y n $.
      $( If two classes are equivalent regarding ` .~ ` , then they are words
         of the same length.  (Contributed by Alexander van der Vekens,
         8-Apr-2018.)  (Revised by AV, 29-Apr-2021.) $)
      erclwwlkseqlen $p |- ( ( U e. X /\ W e. Y )
                             -> ( U .~ W -> ( # ` U ) = ( # ` W ) ) ) $=
        ( wcel wa wbr cfv co wceq cc0 chash wi ex cclwwlks cv ccsh cfz wrex w3a
        erclwwlkseq fveq2 cvtx cword cz cvv c0 wne eqid clwwlkbp simp2d elfzelz
        ad2antlr cshwlen syl2an sylan9eqr rexlimdva com23 3impia com12 sylbid )
        DHKGIKLZDGCMDFUANZKZGVIKZDGEUBZUCOZPZEQGRNZUDOZUEZUFZDRNZVOPZABCDEFGHIJ
        UGVRVHVTVJVKVQVHVTSVJVKLZVHVQVTWAVHVQVTSWAVHLZVNVTEVPWBVLVPKZLZVNVTVNWD
        VSVMRNZVODVMRUHWBGFUINZUJKZVLUKKWEVOPWCVKWGVJVHVKFULKWGGUMUNFWFGWFUOUPU
        QUSVLQVOURVLWFGUTVAVBTVCTVDVEVFVG $.
    $}

    $d n u w x $.
    $( ` .~ ` is a reflexive relation over the set of closed walks (defined as
       words).  (Contributed by Alexander van der Vekens, 25-Mar-2018.)
       (Revised by AV, 29-Apr-2021.) $)
    erclwwlksref $p |- ( x e. ( ClWWalks ` G ) <-> x .~ x ) $=
      ( cv cclwwlks cfv wcel ccsh co wceq cc0 w3a wbr wa cvv cn0 chash cfz wrex
      anidm anbi1i df-3an cvtx cword wne eqid clwwlkbp cshw0 cle 0nn0 a1i lencl
      elfz2nn0 syl3anbrc eqcom biimpi oveq2 eqeq2d rspcev syl2an mpdan 3ad2ant2
      c0 hashge0 syl pm4.71i 3bitr4ri wb vex erclwwlkseq mp2an bitr4i ) AHZFIJK
      ZVRVRVQVQEHZLMZNZEOVQUAJZUBMZUCZPZVQVQDQZVRVRRZWDRVRWDRWEVRWGVRWDVRUDUEVR
      VRWDUFVRWDVRFSKZVQFUGJZUHZKZVQVGUIZPWDFWIVQWIUJUKWKWHWDWLWKVQOLMZVQNZWDWI
      VQULWKOWCKZVQWMNZWDWNWKOTKZWBTKOWBUMQWOWQWKUNUOWIVQUPVQWJVHOWBUQURWNWPWMV
      QUSUTWAWPEOWCVSONVTWMVQVSOVQLVAVBVCVDVEVFVIVJVKVQSKZWRWFWEVLAVMZWSBCDVQEF
      VQSSGVNVOVP $.

    $d n u w y $.  $d m n x y $.
    $( ` .~ ` is a symmetric relation over the set of closed walks (defined as
       words).  (Contributed by Alexander van der Vekens, 8-Apr-2018.)
       (Revised by AV, 29-Apr-2021.) $)
    erclwwlkssym $p |- ( x .~ y -> y .~ x ) $=
      ( vm cv cvv wcel wbr wi wa cfv wceq ccsh co wrex vex chash erclwwlkseqlen
      cclwwlks cc0 cfz w3a erclwwlkseq simpl2 simpl1 cvtx cword c0 wne clwwlkbp
      eqid simp2d ad2antlr simpr cshwcshid expd rexlimdv com23 3impia imp oveq2
      ex weq eqeq2d cbvrexv sylibr 3jca wb ancoms syl5ibr sylbid mpdd mp2an ) A
      JZKLZBJZKLZVSWAEMZWAVSEMZNAUABUAVTWBOZWCVSUBPZWAUBPZQZWDCDEVSFGWAKKHUCWEW
      CVSGUDPZLZWAWILZVSWAFJZRSQZFUEWGUFSZTZUGZWHWDNCDEVSFGWAKKHUHWEWPWHWDWPWHO
      ZWDWEWKWJWAVSWLRSZQZFUEWFUFSZTZUGZWQWKWJXAWJWKWOWHUIWJWKWOWHUJWQWAVSIJZRS
      ZQZIWTTZXAWPWHXFWJWKWOWHXFNWJWKOZWHWOXFXGWHWOXFNXGWHOZWMXFFWNXHWLWNLWMXFX
      HABFIGUKPZWKWAXIULLZWJWHWKGKLXJWAUMUNGXIWAXIUPUOUQURXGWHUSUTVAVBVGVCVDVEW
      SXEFIWTFIVHWRXDWAWLXCVSRVFVIVJVKVLWBVTWDXBVMCDEWAFGVSKKHUHVNVOVAVPVQVR $.

    $d G k m n $.  $d n u w z $.  $d k m n x y $.  $d k m x z $.
    $( ` .~ ` is a transitive relation over the set of closed walks (defined as
       words).  (Contributed by Alexander van der Vekens, 10-Apr-2018.)
       (Revised by AV, 30-Apr-2021.) $)
    erclwwlkstr $p |- ( ( x .~ y /\ y .~ z ) -> x .~ z ) $=
      ( vm vk cv cvv wcel wa wi cfv wceq ccsh co wbr vex erclwwlkseqlen 3adant3
      w3a chash 3adant1 cclwwlks cc0 cfz wrex erclwwlkseq simpr1 simplr2 eqeq2d
      wb oveq2 cbvrexv cvtx cword wne clwwlkbp simp2d ad2antlr simpr cshwcsh2id
      c0 exp5l imp41 rexlimdva ex syl7bi syl5bi exp31 com15 impcom com13 3impia
      eqid 3jca 3adant2 syl5ibrcom com24 com4t sylbid com25 mpdd impd mp3an ) A
      LZMNZBLZMNZCLZMNZWJWLFUAZWLWNFUAZOWJWNFUAZPAUBBUBCUBWKWMWOUEZWPWQWRWSWPWJ
      UFQWLUFQZRZWQWRPWKWMWPXAPWODEFWJGHWLMMIUCUDWSWQXAWPWRWSWQWTWNUFQZRZXAWPWR
      PPZWMWOWQXCPWKDEFWLGHWNMMIUCUGWSWQWLHUHQZNZWNXENZWLWNGLZSTZRZGUIXBUJTZUKZ
      UEZXCXDPWMWOWQXMUPWKDEFWLGHWNMMIULUGWSWPXCXAXMWRWSWPWJXENZXFWJWLXHSTZRZGU
      IWTUJTZUKZUEZXCXAXMWRPZPPWKWMWPXSUPWODEFWJGHWLMMIULUDXCXAWSXSXTXCXAWSXSXT
      PPXCXAOZXMXSWSWRYAXMXSWSWRPYAXMOZXSOZWRWSXNXGWJXIRGXKUKZUEZYCXNXGYDYBXNXF
      XRUMXFXGXLYAXSUNXSYBYDXNXFXRYBYDPYBXRXNXFOZYDXMYAXRYFYDPPZXGXLYAYGPZXFXLX
      GYHYFXGYAXRXLYDYFXGYAXRXLYDPZPXRWJWLJLZSTZRZJXQUKZYFXGOZYAOZYIXPYLGJXQXHY
      JRXOYKWJXHYJWLSUQUOURXLWLWNKLZSTZRZKXKUKZYOYMYDXJYRGKXKXHYPRXIYQWLXHYPWNS
      UQUOURYOYLYSYDPZJXQYOYJXQNZOZYLYTUUBYLOYRYDKXKYOUUAYLYPXKNZYRYDPYOUUAYLUU
      CYRYDYOABCKJGHUSQZXGWNUUDUTNZYFYAXGHMNUUEWNVGVAHUUDWNUUDVSVBVCVDYNYAVEVFV
      HVIVJVKVJVLVMVNVOVPUGVPVQVRVPVTWKWOWRYEUPWMDEFWJGHWNMMIULWAWBVNWCVKWDWEWF
      WEWGWCWGWHWI $.

    $d G x $.  $d .~ x y z $.
    $( ` .~ ` is an equivalence relation over the set of closed walks (defined
       as words).  (Contributed by Alexander van der Vekens, 10-Apr-2018.)
       (Revised by AV, 30-Apr-2021.) $)
    erclwwlks $p |- .~ Er ( ClWWalks ` G ) $=
      ( vx vy cclwwlks erclwwlksrel erclwwlkssym erclwwlkstr erclwwlksref iseri
      vz cfv ) GHOEIPCABCDEFJGHABCDEFKGHOABCDEFLGABCDEFMN $.
  $}

  ${
    $d m n G $.  $d m n K $.  $d m n N $.  $d m n X $.  $d m n Y $.
    $d m n Z $.
    erclwwlksn1.w $e |- W = ( N ClWWalksN G ) $.
    $( Lemma 1 for ~ eleclclwwlksn .  (Contributed by Alexander van der Vekens,
       11-May-2018.)  (Revised by AV, 30-Apr-2021.) $)
    eleclclwwlksnlem1 $p |- ( ( K e. ( 0 ... N ) /\ ( X e. W /\ Y e. W ) )
               -> ( ( X = ( Y cyclShift K )
                    /\ E. m e. ( 0 ... N ) Z = ( Y cyclShift m ) )
                    -> E. n e. ( 0 ... N ) Z = ( X cyclShift n ) ) ) $=
      ( co wcel wa ccsh wceq cv wrex cfv adantl adantr cc0 cfz cvtx cword chash
      w3a cclwwlksn eqid clwwlknbp eleq2s simpl simprr 3jca 2cshwcshw sylc ex )
      DUAEUBKZLZGFLZHFLZMZMZGHDNKOZIHAPNKOAUQQZMZIGBPNKOBUQQZVBVEMZHCUCRZUDLHUE
      REOMZURVCVDUFVFVBVIVEVAVIURUTVIUSVIHECUGKFCEVHHVHUHUIJUJSSTVGURVCVDVBURVE
      URVAUKTVEVCVBVCVDUKSVBVCVDULUMABDEVHGHIUNUOUP $.

    $d k m n $.  $d m n x $.
    $( Lemma 2 for ~ eleclclwwlksn .  (Contributed by Alexander van der Vekens,
       11-May-2018.)  (Revised by AV, 30-Apr-2021.) $)
    eleclclwwlksnlem2 $p |- ( ( ( k e. ( 0 ... N )
                           /\ X = ( x cyclShift k ) ) /\ ( X e. W /\ x e. W ) )
                        -> ( E. m e. ( 0 ... N ) Y = ( x cyclShift m )
                         <-> E. n e. ( 0 ... N ) Y = ( X cyclShift n ) ) ) $=
      ( cv cc0 co wcel ccsh wceq wa adantr wi adantl cfz wrex eleclclwwlksnlem1
      simpl anim1i simpr sylc chash cfv cmin cvtx cclwwlksn clwwlknbp fznn0sub2
      cword eqid eleq2s oveq1 eleq1d syl5ibr syl com12 imp ancomd jca simpll wb
      oveq2 eleq2d eqcoms biimpa ex eqcomd cz elfzelz 2cshwid sylan9eqr syl2anc
      sylan2 impbida ) BKZLFUAMZNZHAKZWAOMZPZQZHGNZWDGNZQZQZIWDCKOMPCWBUBZIHDKO
      MPDWBUBZWKWLQWCWJQZWFWLQWMWKWNWLWGWCWJWCWFUDUERWKWFWLWGWFWJWCWFUFZRUECDEW
      AFGHWDIJUCUGWKWMQZWDUHUIZWAUJMZWBNZWIWHQZQWDHWROMZPZWMQWLWPWSWTWKWSWMWGWJ
      WSWCWJWSSWFWJWCWSWIWCWSSZWHWIWDEUKUIZUONZWQFPZQZXCXGWDFEULMGEFXDWDXDUPUMJ
      UQZXFXCXEWCWSXFFWAUJMZWBNWAFUNXFWRXIWBWQFWAUJURUSUTTVATVBRVCRWKWTWMWKWHWI
      WGWJUFVDRVEWKXBWMWKXAWDWKXEWALWQUAMZNZQZWEHPZXAWDPWGWJXLWCWJXLSWFWJWCXLWI
      WCXLSZWHWIXGXNXHXGWCXLXGWCQXEXKXEXFWCVFXGWCXKXFWCXKVGZXEXOFWQFWQPWBXJWAFW
      QLUAVHVIVJTVKVEVLVATVBRVCWGXMWJWGHWEWOVMRXMXLXAWEWROMZWDXAXPPHWEHWEWROURV
      JXKXEWAVNNXPWDPWALWQVOWAXDWDVPVSVQVRVMUEDCEWRFGWDHIJUCUGVT $.
  $}

  ${
    $d G n w x y $.  $d N n w x y $.  $d W n w x y $.
    $( The set of cyclical shifts of a word representing a closed walk is the
       set of closed walks represented by cyclical shifts of a word.
       (Contributed by Alexander van der Vekens, 15-Jun-2018.)  (Revised by AV,
       30-Apr-2021.) $)
    clwwlksnscsh $p |- ( ( N e. NN0 /\ W e. ( N ClWWalksN G ) )
                 -> { y e. ( N ClWWalksN G ) |
                      E. n e. ( 0 ... N ) y = ( W cyclShift n ) }
                  = { y e. Word ( Vtx ` G ) |
                      E. n e. ( 0 ... N ) y = ( W cyclShift n ) } ) $=
      ( vx vw cn0 wcel co wa cv wceq wrex crab eqeq1 rexbidv simprr jca elrab
      cclwwlksn ccsh cc0 cfz cvtx cfv cbvrabv eqid clwwlksnwrd ad2antrl simpllr
      cword wi clwwnisshclwwsn syl2an2r eleq1 adantl mpbird exp31 rexlimdva imp
      wb com23 impcom impbida 3bitr4g eqrdv syl5eq ) DHIZEDCUAJZIZKZALZEBLZUBJZ
      MZBUCDUDJZNZAVJOFLZVOMZBVQNZFVJOZVRACUEUFZULZOZVRWAAFVJVMVSMVPVTBVQVMVSVO
      PQUGVLGWBWEVLGLZVJIZWFVOMZBVQNZKZWFWDIZWIKZWFWBIWFWEIVLWJWLVLWJKWKWIWGWKV
      LWICDWCWFWCUHUIUJVLWGWIRSVLWLKWGWIWLVLWGWKWIVLWGUMZWKWHWMBVQWKVNVQIZKZVLW
      HWGWOVLWHWGWOVLKZWHKWGVOVJIZWPVKWHWNWQWOVIVKRWKWNVLWHUKCVNDEUNUOWHWGWQVBW
      PWFVOVJUPUQURUSVCUTVAVDVLWKWIRSVEWAWIFWFVJVSWFMVTWHBVQVSWFVOPQTVRWIAWFWDV
      MWFMVPWHBVQVMWFVOPQTVFVGVH $.
  $}

  ${
    $d G i $.  $d N i $.  $d W i $.
    $( If a word represents a closed walk of length at least 2 in a multigraph,
       the first two symbols of the word must be different.  (Contributed by
       Alexander van der Vekens, 17-Jun-2018.)  (Revised by AV,
       30-Apr-2021.) $)
    umgr2cwwk2dif $p |- ( ( G e. UMGraph /\ N e. ( ZZ>= ` 2 )
                            /\ W e. ( N ClWWalksN G ) )
                          -> ( W ` 1 ) =/= ( W ` 0 ) ) $=
      ( vi cclwwlksn co wcel c2 cuz cfv cumgr c1 cc0 wceq caddc cpr eqid adantl
      wa wi wne cvtx cword chash cv cedg cmin cfzo wral clsw w3a clwwlknp simpr
      uz2m1nn lbfzo0 sylibr fveq2 oveq1 0p1e1 syl6eq fveq2d eleq1d rspcdv com12
      cn preq12d 3ad2ant2 imp adantr umgredgne necomd syl2anc exp31 syl 3imp31
      ) CBAEFGZBHIJGZAKGZLCJZMCJZUAZVPCAUBJZUCGCUDJBNSZDUEZCJZWDLOFZCJZPZAUFJZG
      ZDMBLUGFZUHFZUIZCUJJVTPWIGZUKZVQVRWATTDWIABWBCWBQWIQZULWOVQVRWAWOVQSZVRSV
      RVTVSPZWIGZWAWQVRUMWQWSVRWOVQWSWMWCVQWSTWNVQWMWSVQWJWSDMWLVQWKVEGMWLGBUNW
      KUOUPVQWDMNZSZWHWRWIXAWEVTWGVSWTWEVTNVQWDMCUQRXAWFLCXAWFMLOFZLWTWFXBNVQWD
      MLOURRUSUTVAVFVBVCVDVGVHVIVRWSSVTVSWIAVTVSWPVJVKVLVMVNVO $.

    $( If a word represents a closed walk of length at least 2 in a undirected
       simple graph, the first two symbols of the word must be different.
       (Contributed by Alexander van der Vekens, 17-Jun-2018.)  (Revised by AV,
       30-Apr-2021.) $)
    umgr2cwwkdifex $p |- ( ( G e. UMGraph /\ N e. ( ZZ>= ` 2 )
                            /\ W e. ( N ClWWalksN G ) )
                          -> E. i e. ( 0 ..^ N ) ( W ` i ) =/= ( W ` 0 ) ) $=
      ( cumgr wcel c2 cuz cfv cclwwlksn co w3a cv cc0 wne c1 cfzo cn wa wceq
      clt wbr eluz2b2 cn0 a1i simpl simpr elfzo0 syl3anbrc sylbi 3ad2ant2 fveq2
      1nn0 adantl neeq1d umgr2cwwk2dif rspcedvd ) BEFZCGHIFZDCBJKFZLZAMZDIZNDIZ
      OPDIZVDOAPNCQKZUSURPVFFZUTUSCRFZPCUAUBZSZVGCUCVJPUDFZVHVIVGVKVJUMUEVHVIUF
      VHVIUGPCUHUIUJUKVAVBPTZSVCVEVDVLVCVETVAVBPDULUNUOBCDUPUQ $.
  $}

  ${
    erclwwlksn.w $e |- W = ( N ClWWalksN G ) $.
    erclwwlksn.r $e |- .~ = { <. t , u >. | ( t e. W /\ u e. W
                            /\ E. n e. ( 0 ... N ) t = ( u cyclShift n ) ) } $.
    $( ` .~ ` is a relation.  (Contributed by Alexander van der Vekens,
       25-Mar-2018.)  (Revised by AV, 30-Apr-2021.) $)
    erclwwlksnrel $p |- Rel .~ $=
      ( cv wcel ccsh co wceq cc0 cfz wrex w3a relopabi ) BJZGKAJZGKTUADJLMNDOFP
      MQRBACIS $.

    $d W t u $.
    ${
      $d N t u $.  $d T n t u $.  $d U n t u $.
      $( Two classes are equivalent regarding ` .~ ` if both are words of the
         same fixed length and one is the other cyclically shifted.
         (Contributed by Alexander van der Vekens, 25-Mar-2018.)  (Revised by
         AV, 30-Apr-2021.) $)
      erclwwlksneq $p |- ( ( T e. X /\ U e. Y )
                     -> ( T .~ U <-> ( T e. W /\ U e. W
                          /\ E. n e. ( 0 ... N ) T = ( U cyclShift n ) ) ) ) $=
        ( cv wcel ccsh co wceq wrex w3a cc0 cfz wa wb eleq1 adantr adantl simpl
        oveq1 eqeq12d rexbidv 3anbi123d brabga ) BNZIOZANZIOZUNUPFNZPQZRZFUAHUB
        QZSZTDIOZEIOZDEURPQZRZFVASZTBADECJKUNDRZUPERZUCZUOVCUQVDVBVGVHUOVCUDVIU
        NDIUEUFVIUQVDUDVHUPEIUEUGVJUTVFFVAVJUNDUSVEVHVIUHVIUSVERVHUPEURPUIUGUJU
        KULMUM $.

      $d W n $.  $d X n $.  $d Y n $.
      $( If two classes are equivalent regarding ` .~ ` , then they are words
         of the same length.  (Contributed by Alexander van der Vekens,
         8-Apr-2018.)  (Revised by AV, 30-Apr-2021.) $)
      erclwwlksneqlen $p |- ( ( T e. X /\ U e. Y )
                          -> ( T .~ U -> ( # ` T ) = ( # ` U ) ) ) $=
        ( wcel wa co wceq cc0 chash cfv wbr cv ccsh cfz wrex erclwwlksneq fveq2
        w3a cvtx cword cclwwlksn eqid clwwlksnwrd eleq2s adantl elfzelz cshwlen
        cz syl2an sylan9eqr ex rexlimdva 3impia syl6bi ) DJNEKNODECUADINZEINZDE
        FUBZUCPZQZFRHUDPZUEZUHDSTZESTZQZABCDEFGHIJKLMUFVEVFVKVNVEVFOZVIVNFVJVOV
        GVJNZOZVIVNVIVQVLVHSTZVMDVHSUGVOEGUITZUJNZVGURNVRVMQVPVFVTVEVTEHGUKPIGH
        VSEVSULUMLUNUOVGRHUPVGVSEUQUSUTVAVBVCVD $.
    $}

    $d N n u t x $.
    $( ` .~ ` is a reflexive relation over the set of closed walks (defined as
       words).  (Contributed by Alexander van der Vekens, 26-Mar-2018.)
       (Revised by AV, 30-Apr-2021.) $)
    erclwwlksnref $p |- ( x e. W <-> x .~ x ) $=
      ( cv wcel ccsh co wceq cc0 wa cvv cfv adantr cfz wrex df-3an anidm anbi1i
      w3a wbr bitri wb erclwwlksneq mp2an cclwwlksn cvtx cword chash clwwlknbp0
      vex cn eqid cshw0 adantl cn0 nnnn0 0elfz eqcom biimpi oveq2 eqeq2d rspcev
      syl syl2an mpdan eleq2s pm4.71i 3bitr4ri ) AKZHLZVQVPVPEKZMNZOZEPGUANZUBZ
      UFZVQWBQZVPVPDUGZVQWCVQVQQZWBQWDVQVQWBUCWFVQWBVQUDUEUHVPRLZWGWEWCUIAUQZWH
      BCDVPVPEFGHRRIJUJUKVQWBWBVPGFULNZHVPWILFRLZGURLZQZVPFUMSZUNLZVPUOSGOZQZQZ
      WBFGWMVPWMUSUPWQVPPMNZVPOZWBWPWSWLWNWSWOWMVPUTTVAWQPWALZVPWROZWBWSWLWTWPW
      KWTWJWKGVBLWTGVCGVDVJVATWSXAWRVPVEVFVTXAEPWAVRPOVSWRVPVRPVPMVGVHVIVKVLVJI
      VMVNVO $.

    $d n t u y $.  $d m n x y $.  $d N m n $.  $d W n $.
    $( ` .~ ` is a symmetric relation over the set of closed walks (defined as
       words).  (Contributed by Alexander van der Vekens, 10-Apr-2018.)
       (Revised by AV, 30-Apr-2021.) $)
    erclwwlksnsym $p |- ( x .~ y -> y .~ x ) $=
      ( vm cvv wcel wi wa wceq co cc0 cfz cv wbr vex chash erclwwlksneqlen ccsh
      wrex erclwwlksneq simpl2 simpl1 cclwwlksn cvtx cword eqid clwwlknbp eqcom
      cfv w3a biimpi simpl2im eleq2s adantr clwwlksnwrd adantl simprr cshwcshid
      oveq2 sylan9eq eleq2d anbi1d rexeqdv 3imtr4d mpancom expd rexlimdv 3impia
      ex com23 imp eqeq2d cbvrexv sylibr 3jca ancoms syl5ibr sylbid mpdd mp2an
      wb ) AUAZMNZBUAZMNZWJWLEUBZWLWJEUBZOAUCBUCWKWMPZWNWJUDUQZWLUDUQZQZWOCDEWJ
      WLFGHIMMJKUEWPWNWJINZWLINZWJWLFUAZUFRQZFSHTRZUGZURZWSWOOCDEWJWLFGHIMMJKUH
      WPXFWSWOXFWSPZWOWPXAWTWLWJXBUFRZQZFXDUGZURZXGXAWTXJWTXAXEWSUIWTXAXEWSUJXG
      WLWJLUAZUFRZQZLXDUGZXJXFWSXOWTXAXEWSXOOWTXAPZWSXEXOXPWSXEXOOXPWSPZXCXOFXD
      XQXBXDNZXCXOHWQQZXQXRXCPZXOOXPXSWSWTXSXAXSWJHGUKRZIWJYANWJGULUQZUMZNWQHQZ
      XSGHYBWJYBUNZUOYDXSWQHUPUSUTJVAVBVBXSXQPZXBSWRTRZNZXCPXNLSWQTRZUGXTXOYFAB
      FLYBXQWLYCNZXSXPYJWSXAYJWTYJWLYAIGHYBWLYEVCJVAVDVBVDXSXPWSVEVFYFXRYHXCYFX
      DYGXBXSXQXDYIYGHWQSTVGZWSYIYGQXPWQWRSTVGVDVHVIVJYFXNLXDYIXSXDYIQXQYKVBVKV
      LVMVNVOVQVRVPVSXIXNFLXDXBXLQXHXMWLXBXLWJUFVGVTWAWBWCWMWKWOXKWICDEWLWJFGHI
      MMJKUHWDWEVNWFWGWH $.

    $d n t u y z $.  $d k m n x y z $.  $d N k $.  $d W k m $.
    $( ` .~ ` is a transitive relation over the set of closed walks (defined as
       words).  (Contributed by Alexander van der Vekens, 10-Apr-2018.)
       (Revised by AV, 30-Apr-2021.) $)
    erclwwlksntr $p |- ( ( x .~ y /\ y .~ z ) -> x .~ z ) $=
      ( cv cvv wcel wa wi wceq ccsh co vm wbr vex w3a chash cfv erclwwlksneqlen
      vk 3adant3 3adant1 cc0 cfz wrex erclwwlksneq simpr1 simplr2 oveq2 cbvrexv
      eqeq2d cclwwlksn cvtx cword eqid clwwlknbp eqcom biimpi simpl2im ad2antlr
      wb eleq2s simpld adantl simprr cshwcsh2id eqcoms sylan9eq anbi12d rexeqdv
      adantr eleq2d anbi1d 3imtr4d exp5l imp41 rexlimdva ex syl7bi syl5bi exp31
      mpancom com15 impcom com13 3impia 3jca syl5ibrcom com24 com4t sylbid mpdd
      3adant2 com25 impd mp3an ) AMZNOZBMZNOZCMZNOZXEXGFUBZXGXIFUBZPXEXIFUBZQAU
      CBUCCUCXFXHXJUDZXKXLXMXNXKXEUEUFXGUEUFZRZXLXMQXFXHXKXPQXJDEFXEXGGHIJNNKLU
      GUIXNXLXPXKXMXNXLXOXIUEUFZRZXPXKXMQQZXHXJXLXRQXFDEFXGXIGHIJNNKLUGUJXNXLXG
      JOZXIJOZXGXIGMZSTZRZGUKIULTZUMZUDZXRXSQXHXJXLYGVIXFDEFXGXIGHIJNNKLUNUJXNX
      KXRXPYGXMXNXKXEJOZXTXEXGYBSTZRZGYEUMZUDZXRXPYGXMQZQQXFXHXKYLVIXJDEFXEXGGH
      IJNNKLUNUIXRXPXNYLYMXRXPXNYLYMQQXRXPPZYGYLXNXMYNYGYLXNXMQYNYGPZYLPZXMXNYH
      YAXEYCRZGYEUMZUDZYPYHYAYRYOYHXTYKUOXTYAYFYNYLUPYLYOYRYHXTYKYOYRQYOYKYHXTP
      ZYRYGYNYKYTYRQQZYAYFYNUUAQZXTYFYAUUBYTYAYNYKYFYRYTYAYNYKYFYRQZQYKXEXGUAMZ
      STZRZUAYEUMZYTYAPZYNPZUUCYJUUFGUAYEYBUUDRYIUUEXEYBUUDXGSUQUSURYFXGXIUHMZS
      TZRZUHYEUMZUUIUUGYRYDUULGUHYEYBUUJRYCUUKXGYBUUJXISUQUSURUUIUUFUUMYRQZUAYE
      UUIUUDYEOZPZUUFUUNUUPUUFPUULYRUHYEUUIUUOUUFUUJYEOZUULYRQUUIUUOUUFUUQUULYR
      IXQRZUUIUUOUUFPZUUQUULPZPZYRQYAUURYTYNUURXIIHUTTZJXIUVBOZXIHVAUFZVBOZXQIR
      ZUURHIUVDXIUVDVCVDZUVFUURXQIVEVFVGKVJVHUURUUIPZUUDUKXOULTZOZUUFPZUUJUKXQU
      LTZOZUULPZPYQGUVLUMZUVAYRUVHABCUHUAGUVDUUIUVEUURYAUVEYTYNUVEXIUVBJUVCUVEU
      VFUVGVKKVJVHVLUURUUHYNVMVNUVHUUSUVKUUTUVNUVHUUOUVJUUFUVHYEUVIUUDUURUUIYEU
      VLUVIIXQUKULUQZYNUVLUVIRZUUHXRUVQXPUVQXQXOXQXOUKULUQVOVSVLVPVTWAUURUUTUVN
      VIUUIUURUUQUVMUULUURYEUVLUUJUVPVTWAVSVQUURYRUVOVIUUIUURYQGYEUVLUVPVRVSWBW
      JWCWDWEWFWEWGWHWIWKWLUJWLWMWNWLWOXFXJXMYSVIXHDEFXEXIGHIJNNKLUNXAWPWIWQWFW
      RWSXBWSWTWQWTXCXD $.

    $d .~ x y z $.  $d W x $.
    $( ` .~ ` is an equivalence relation over the set of closed walks (defined
       as words) with a fixed length.  (Contributed by Alexander van der
       Vekens, 10-Apr-2018.)  (Revised by AV, 30-Apr-2021.) $)
    erclwwlksn $p |- .~ Er W $=
      ( vx vy vz erclwwlksnrel erclwwlksnsym erclwwlksntr erclwwlksnref iseri )
      JKLGCABCDEFGHIMJKABCDEFGHINJKLABCDEFGHIOJABCDEFGHIPQ $.

    $( The quotient set of the set of closed walks (defined as words) with a
       fixed length according to the equivalence relation ` .~ ` is finite.
       (Contributed by Alexander van der Vekens, 10-Apr-2018.)  (Revised by AV,
       30-Apr-2021.) $)
    qerclwwlksnfi $p |- ( ( Vtx ` G ) e. Fin -> ( W /. .~ ) e. Fin ) $=
      ( cvtx cfv cfn wcel cpw cqs cclwwlksn co clwwlksnfi syl5eqel pwfi wer a1i
      sylib erclwwlksn qsss ssfid ) EJKLMZGNZGCOUGGLMUHLMUGGFEPQLHEFRSGTUCUGGCG
      CUAUGABCDEFGHIUDUBUEUF $.

    $d G x $.  $d N x $.  $d X x $.
    $( The number of closed walks (defined as words) with a fixed length is the
       sum of the sizes of all equivalence classes according to ` .~ ` .
       (Contributed by Alexander van der Vekens, 10-Apr-2018.)  (Revised by AV,
       30-Apr-2021.) $)
    hashclwwlksn0 $p |- ( ( Vtx ` G ) e. Fin
                          -> ( # ` W ) = sum_ x e. ( W /. .~ ) ( # ` x ) ) $=
      ( cvtx cfv cfn wcel wer erclwwlksn a1i cclwwlksn co clwwlksnfi syl5eqel
      qshash ) FKLMNZAHDHDOUCBCDEFGHIJPQUCHGFRSMIFGTUAUB $.

    $d B x y $.  $d N y $.  $d W y $.  $d X y $.
    $( An equivalence class according to ` .~ ` .  (Contributed by Alexander
       van der Vekens, 12-Apr-2018.)  (Revised by AV, 30-Apr-2021.) $)
    eclclwwlksn1 $p |- ( B e. X -> ( B e. ( W /. .~ )
                        <-> E. x e. W B = { y e. W | E. n e. ( 0 ... N )
                                            y = ( x cyclShift n ) } ) ) $=
      ( wcel cv cab wceq wrex wa cvv cqs wbr ccsh co cc0 cfz crab erclwwlksnsym
      elqsecl w3a wb impbii a1i abbidv erclwwlksneq mp2an 3anan12 bicomd adantl
      vex ibar syl5bb df-rab syl6eqr 3eqtrd eqeq2d rexbidva bitrd ) EKNZEJFUANE
      AOZBOZFUBZBPZQZAJREVKVJGOUCUDQGUEIUFUDRZBJUGZQZAJRABEFJKUIVIVNVQAJVIVJJNZ
      SZVMVPEVSVMVKVJFUBZBPVKJNZVRVOUJZBPZVPVSVLVTBVLVTUKVSVLVTABCDFGHIJLMUHBAC
      DFGHIJLMUHULUMUNVSVTWBBVTWBUKZVSVKTNVJTNWDBUTAUTCDFVKVJGHIJTTLMUOUPUMUNVS
      WCWAVOSZBPVPVSWBWEBWBVRWESZVSWEWAVRVOUQVRWFWEUKVIVRWEWFVRWEVAURUSVBUNVOBJ
      VCVDVEVFVGVH $.

    $d G k n $.  $d X k m n $.  $d Y k m n x y $.
    $( A member of an equivalence class according to ` .~ ` .  (Contributed by
       Alexander van der Vekens, 11-May-2018.)  (Revised by AV, 1-May-2021.) $)
    eleclclwwlksn $p |- ( ( B e. ( W /. .~ ) /\ X e. B ) -> ( Y e. B
             <-> ( Y e. W /\ E. n e. ( 0 ... N ) Y = ( X cyclShift n ) ) ) ) $=
      ( vy vx vm wcel ccsh wceq wrex wa vk cqs cv co cc0 cfz wb wi eclclwwlksn1
      crab eqeq1 rexbidv elrab oveq2 eqeq2d cbvrexv eleclclwwlksnlem2 rexlimiva
      ex sylbi expd impcom com12 ad2antlr imp syl5bb anbi2d eleq2 bibi1d adantl
      imbi12d mpbird rexlimdva sylbid pm2.43i ) CHDUBZPZICPZJCPZJHPZJIEUCZQUDRE
      UEGUFUDZSZTZUGZVQVRWEUHZVQVQCMUCZNUCZWAQUDZRZEWBSZMHUJZRZNHSWFNMABCDEFGHV
      PKLUIVQWMWFNHVQWHHPZTZWMWFWOWMTZWFIWLPZJWLPZWDUGZUHZWPWQWSWRVTJWIRZEWBSZT
      WPWQTZWDWKXBMJHWGJRWJXAEWBWGJWIUKULUMXCXBWCVTXBJWHUAUCZQUDZRZUAWBSZXCWCXA
      XFEUAWBWAXDRWIXEJWAXDWHQUNUOUPWPWQXGWCUGZWNWQXHUHVQWMWQWNXHWQIHPZIWIRZEWB
      SZTWNXHUHZWKXKMIHWGIRWJXJEWBWGIWIUKULUMXKXIXLXKXIWNXHXKIWHOUCZQUDZRZOWBSX
      IWNTZXHUHZXJXOEOWBWAXMRWIXNIWAXMWHQUNUOUPXOXQOWBXMWBPXOTXPXHNOUAEFGHIJKUQ
      USURUTVAVBUTVCVDVEVFVGVFUSWMWFWTUGWOWMVRWQWEWSCWLIVHWMVSWRWDCWLJVHVIVKVJV
      LUSVMVNVOVE $.

    $d G m n u y $.  $d U m n u x y $.
    $( The size of every equivalence class of the equivalence relation over the
       set of closed walks (defined as words) with a fixed length which is a
       prime number is 1 or equals this length.  (Contributed by Alexander van
       der Vekens, 17-Jun-2018.)  (Revised by AV, 1-May-2021.) $)
    hashecclwwlksn1 $p |- ( ( N e. Prime /\ U e. ( W /. .~ ) )
                           -> ( ( # ` U ) = 1 \/ ( # ` U ) = N ) ) $=
      ( vy vm wcel wceq wi cv co cc0 wrex crab vx cqs cprime chash cfv ccsh cfz
      c1 wo eclclwwlksn1 wa cvtx cword cclwwlksn rabeq mp1i prmnn nnnn0d eleq2i
      cn0 biimpi clwwlksnscsh syl2an eqtrd eqeq2d cfzo c0 wne cn simpll elnnne0
      w3a wb eqcoms hasheq0 sylan9bbr necon3bid biimpcd simplbiim impcom simplr
      eqeq1 eqcomd 3jca ex eqid clwwlknbp syl11 syl5bi syl scshwfzeqfzo cbvrexv
      oveq2 eqcom syl6bb rexbidv syl5bb cbvrabv cshwshash adantr orcomd orbi12d
      imp fveq2 eqeq1d adantl mpbird eleq1 rexeqdv rabbidv eqeq2 orbi2d imbi12d
      eleq2s sylbid rexlimdva com12 syl6bi pm2.43i ) DHCUBZMZGUCMZDUDUEZUHNZYCG
      NZUIZYAYBYFOZYAYADKPZUAPZEPZUFQZNZERGUGQSZKHTZNZUAHSZYGUAKABDCEFGHXTIJUJY
      BYPYFYBYOYFUAHYBYIHMZUKZYODYMKFULUEZUMZTZNZYFYRYNUUADYRYNYMKGFUNQZTZUUAHU
      UCNYNUUDNYRIYMKHUUCUOUPYBGUTMZYIUUCMZUUDUUANYQYBGGUQZURYQUUFHUUCYIIUSZVAK
      EFGYIVBVCVDVEYRUUBDYLERGVFQZSZKYTTZNZYFYRUUAUUKDYRYIYTMZYIVGVHZGYIUDUEZNZ
      VLZUUAUUKNYBYQUUQYBGVIMZYQUUQOUUGYQUUFUURUUQUUHUUMUUOGNZUKZUURUUQUUFUUTUU
      RUUQUUTUURUKZUUMUUNUUPUUMUUSUURVJUURUUTUUNUURUUEGRVHZUUTUUNOGVKUUTUVBUUNU
      UTGRYIVGUUSGRNZUUORNZUUMYIVGNUVCUVDVMGUUOGUUORWBVNYIYTVOVPVQVRVSVTUVAUUOG
      UUMUUSUURWAWCWDWEFGYSYIYSWFWGZWHWIWJXCKEGYSYIWKWJVEYQYBUULYFOZYBUVFOZYIUU
      CHUUFUUTUVGUVEUUTUVGUUOUCMZDYLERUUOVFQZSZKYTTZNZYDYCUUONZUIZOZOZUUMUVPUUS
      UUMUVHUVOUUMUVHUKZUVLUVNUVQUVLUKZUVNUVKUDUEZUHNZUVSUUONZUIZUVRUWAUVTUVQUW
      AUVTUIUVLALUVKYSYIUVJYILPZUFQZAPZNZLUVISZKAYTUVJYHUWDNZLUVISYHUWENZUWGYLU
      WHELUVIYJUWCNYKUWDYHYJUWCYIUFWMVEWLUWIUWHUWFLUVIUWIUWHUWEUWDNUWFYHUWEUWDW
      BUWEUWDWNWOWPWQWRWSWTXAUVLUVNUWBVMUVQUVLYDUVTUVMUWAUVLYCUVSUHDUVKUDXDZXEU
      VLYCUVSUUOUWJXEXBXFXGWEWEWTUUSUVGUVPVMZUUMUWKGUUOUUPYBUVHUVFUVOGUUOUCXHUU
      PUULUVLYFUVNUUPUUKUVKDUUPUUJUVJKYTUUPYLEUUIUVIGUUORVFWMXIXJVEUUPYEUVMYDGU
      UOYCXKXLXMXMVNXFXGWJIXNVTXOXOXPXQXRXSVT $.

    $d G i m x $.  $d i u $.
    $( The size of every equivalence class of the equivalence relation over the
       set of closed walks (defined as words) with a fixed length which is a
       prime number equals this length (in an undirected simple graph).
       (Contributed by Alexander van der Vekens, 17-Jun-2018.)  (Revised by AV,
       1-May-2021.) $)
    umgrhashecclwwlk $p |- ( ( G e. UMGraph /\ N e. Prime )
                            -> ( U e. ( W /. .~ ) -> ( # ` U ) = N ) ) $=
      ( vy vm wcel wa cfv wceq wi co cc0 wrex vx vi cqs cumgr cprime chash ccsh
      cv cfz crab eclclwwlksn1 cvtx cword cclwwlksn rabeq mp1i cn0 prmnn nnnn0d
      adantl eleq2i biimpi clwwlksnscsh syl2an eqtrd eqeq2d cfzo wne w3a simpll
      c0 cn elnnne0 eqcoms hasheq0 sylan9bbr necon3bid biimpcd simplbiim impcom
      wb eqeq1 simplr eqcomd 3jca ex eqid clwwlknbp syl5bi syl imp scshwfzeqfzo
      syl11 fveq2 cuz simprl prmuz2 umgr2cwwkdifex syl3anc oveq2 cbvrexv syl6bb
      eqcom rexbidv syl5bb cbvrabv cshwshashnsame ad2ant2rl mpd sylan9eqr exp41
      c2 adantr oveq1 eleq2d eleq1 anbi2d rexeqdv rabbidv imbi12d mpbird eleq2s
      eqeq2 mpcom sylbid rexlimdva com12 syl6bi pm2.43i ) DHCUCZMZFUDMZGUEMZNZD
      UFOZGPZYKYNYPQZYKYKDKUHZUAUHZEUHZUGRZPZESGUIRTZKHUJZPZUAHTZYQUAKABDCEFGHY
      JIJUKYNUUFYPYNUUEYPUAHYNYSHMZNZUUEDUUCKFULOZUMZUJZPZYPUUHUUDUUKDUUHUUDUUC
      KGFUNRZUJZUUKHUUMPUUDUUNPUUHIUUCKHUUMUOUPYNGUQMZYSUUMMZUUNUUKPUUGYMUUOYLY
      MGGURZUSUTUUGUUPHUUMYSIVAZVBKEFGYSVCVDVEVFUUHUULDUUBESGVGRZTZKUUJUJZPZYPU
      UHUUKUVADUUHYSUUJMZYSVKVHZGYSUFOZPZVIZUUKUVAPYNUUGUVGYNGVLMZUUGUVGQYMUVHY
      LUUQUTUUGUUPUVHUVGUURUVCUVEGPZNZUVHUVGUUPUVJUVHUVGUVJUVHNZUVCUVDUVFUVCUVI
      UVHVJUVHUVJUVDUVHUUOGSVHZUVJUVDQGVMUVJUVLUVDUVJGSYSVKUVIGSPZUVESPZUVCYSVK
      PUVMUVNWAGUVEGUVESWBVNYSUUJVOVPVQVRVSVTUVKUVEGUVCUVIUVHWCWDWEWFFGUUIYSUUI
      WGWHZWMWIWJWKKEGUUIYSWLWJVFUUGYNUVBYPQZYNUVPQZYSUUMHUVJUUPUVQUVOUVJUUPUVQ
      QZYSUVEFUNRZMZYLUVEUEMZNZDUUBESUVEVGRZTZKUUJUJZPZYOUVEPZQZQZQZUVCUWJUVIUV
      CUVTUWBUWFUWGUWFUVCUVTNZUWBNZYOUWEUFOZUVEDUWEUFWNUWLUBUHYSOSYSOVHUBUWCTZU
      WMUVEPZUWLYLUVEXLWOOMZUVTUWNUWKYLUWAWPUWBUWPUWKUWAUWPYLUVEWQUTUTUVCUVTUWB
      WCUBFUVEYSWRWSUVCUWAUWNUWOQUVTYLAUBLUWEUUIYSUWDYSLUHZUGRZAUHZPZLUWCTZKAUU
      JUWDYRUWRPZLUWCTYRUWSPZUXAUUBUXBELUWCYTUWQPUUAUWRYRYTUWQYSUGWTVFXAUXCUXBU
      WTLUWCUXCUXBUWSUWRPUWTYRUWSUWRWBUWSUWRXCXBXDXEXFXGXHXIXJXKXMUVIUVRUWJWAZU
      VCUXDGUVEUVFUUPUVTUVQUWIUVFUUMUVSYSGUVEFUNXNXOUVFYNUWBUVPUWHUVFYMUWAYLGUV
      EUEXPXQUVFUVBUWFYPUWGUVFUVAUWEDUVFUUTUWDKUUJUVFUUBEUUSUWCGUVESVGWTXRXSVFG
      UVEYOYCXTXTXTVNUTYAYDIYBVTYEYEYFYGYHYIYG $.

    $( The size of the set of closed walks (defined as words) with a fixed
       length which is a prime number is the product of the number of
       equivalence classes for ` .~ ` over the set of closed walks and the
       fixed length.  (Contributed by Alexander van der Vekens, 17-Jun-2018.)
       (Revised by AV, 1-May-2021.) $)
    fusgrhashclwwlkn $p |- ( ( G e. FinUSGraph /\ N e. Prime )
                        -> ( # ` W ) = ( ( # ` ( W /. .~ ) ) x. N ) ) $=
      ( vx cfusgr wcel cprime wa chash cfv csu cfn wceq syl cqs cv cmul co cvtx
      fusgrvtxfi adantr hashclwwlksn0 cumgr wi cusgr fusgrusgr umgrhashecclwwlk
      usgrumgr sylan imp sumeq2dv cc qerclwwlksnfi prmnn nncnd adantl fsumconst
      eqid syl2anc 3eqtrd ) EKLZFMLZNZGOPZGCUAZJUBZOPZJQZVKFJQZVKOPFUCUDZVIEUEP
      ZRLZVJVNSVGVRVHEVQVQVDUFUGZJABCDEFGHIUHTVIVKVMFJVIVLVKLZVMFSZVGEUILZVHVTW
      AUJVGEUKLWBEULEUNTABCVLDEFGHIUMUOUPUQVIVKRLZFURLZVOVPSVIVRWCVSABCDEFGHIUS
      TVHWDVGVHFFUTVAVBVKFJVCVEVF $.
  $}

  ${
    $d G n t u $.  $d N n t u $.
    $( The size of the set of closed walks (defined as words) of length n is
       divisible by n.  (Contributed by Alexander van der Vekens, 17-Jun-2018.)
       (Revised by AV, 2-May-2021.) $)
    clwwlksndivn $p |- ( ( G e. FinUSGraph /\ N e. Prime )
                        -> N || ( # ` ( N ClWWalksN G ) ) ) $=
      ( vt vu vn cfusgr wcel cprime wa cclwwlksn co cv ccsh wceq chash cdvds cz
      cfv cfn eqid cc0 cfz wrex w3a copab cqs cmul wbr fusgrvtxfi qerclwwlksnfi
      cvtx cn0 adantr hashcl 3syl prmz adantl dvdsmul2 syl2anc fusgrhashclwwlkn
      nn0zd breqtrrd ) AFGZBHGZIZBBAJKZCLZVFGDLZVFGVGVHELMKNEUABUBKUCUDCDUEZUFZ
      ORZBUGKZVFORPVEVKQGBQGZBVLPUHVEVKVEAUKRZSGZVJSGVKULGVCVOVDAVNVNTUIUMDCVIE
      ABVFVFTZVITZUJVJUNUOVAVDVMVCBUPUQVKBURUSDCVIEABVFVPVQUTVB $.
  $}

  ${
    $d A i $.  $d B i $.  $d G c i $.
    clwlksfclwwlk.1 $e |- A = ( 1st ` c ) $.
    clwlksfclwwlk.2 $e |- B = ( 2nd ` c ) $.
    clwlksfclwwlk.c $e |- C = { c e. ( ClWalks ` G ) | ( # ` A ) = N } $.
    clwlksfclwwlk.f $e |- F = ( c e. C
                                |-> ( B substr <. 0 , ( # ` A ) >. ) ) $.
    $( The second component of a closed walk is a word over the "vertices".
       (Contributed by Alexander van der Vekens, 25-Jun-2018.)  (Revised by AV,
       2-May-2021.) $)
    clwlksfclwwlk2wrd $p |- ( c e. C -> B e. Word ( Vtx ` G ) ) $=
      ( vi cv wcel cfv wceq wa cc0 co syl cclwlks chash cword rabeq2i ciedg cdm
      cvtx cfz wf c1 caddc csn cpr wss wif cfzo wral eqid clwlkcompim cn0 lencl
      cz nn0z fzval3 feq2d biimpa iswrdi sylan adantr sylbi ) GMZCNVKEUAOZNZAUB
      OZFPZQBEUGOZUCNZVOGCVLJUDVMVQVOVMAEUEOZUFZUCNZRVNUHSZVPBUIZQZLMZBOZWDUJUK
      SBOZPWDAOVROZWEULPWEWFUMWGUNUOLRVNUPSUQRBOVNBOPQZQVQBLAEVRVPVKVPURVRURHIU
      SWCVQWHVTVNUTNZWBVQVSAVAWIWBQRVNUJUKSZUPSZVPBUIZVQWIWBWLWIWAWKVPBWIVNVBNW
      AWKPVNVCRVNVDTVEVFVPWJBVGTVHVITVIVJ $.

    $d N c $.  $d W c $.
    $( The size of the first component of a closed walk.  (Contributed by
       Alexander van der Vekens, 5-Jul-2018.)  (Revised by AV, 2-May-2021.) $)
    clwlksfclwwlk1hashn $p |- ( W e. C -> ( # ` ( 1st ` W ) ) = N ) $=
      ( wcel cclwlks cfv c1st chash wceq cv fveq2i eqeq1i fveq2d eqeq1d simprbi
      fveq2 syl5bb elrab2 ) GCMGENOZMGPOZQOZFRZAQOZFRZUKHGUHCUMHSZPOZQOZFRUNGRZ
      UKULUPFAUOQITUAUQUPUJFUQUOUIQUNGPUEUBUCUFKUGUD $.

    $( The size of the first component of a closed walk is an integer in the
       range between 0 and the size of the second component.  (Contributed by
       Alexander van der Vekens, 25-Jun-2018.)  (Revised by AV, 2-May-2021.) $)
    clwlksfclwwlk1hash $p |- ( c e. C -> ( # ` A ) e. ( 0 ... ( # ` B ) ) ) $=
      ( vi wcel cfv wceq wa cc0 cfz co adantr cclwlks chash rabeq2i ciedg cword
      cv cdm cvtx wf caddc csn cpr wss wif cfzo wral eqid clwlkcompim cn0 lencl
      c1 wfn ffn fnfz0hash nn0fz0 fzelp1 sylbi eleq2d syl5ibrcom mpd syl2an syl
      wi oveq2 ) GUFZCMVOEUANZMZAUBNZFOZPVRQBUBNZRSZMZVSGCVPJUCVQWBVSVQAEUDNZUG
      ZUEMZQVRRSZEUHNZBUIZPZLUFZBNZWJVAUJSBNZOWJANWCNZWKUKOWKWLULWMUMUNLQVRUOSU
      PQBNVRBNOPZPWBBLAEWCWGVOWGUQWCUQHIURWIWBWNWEVRUSMZBWFVBZWBWHWDAUTWFWGBVCW
      OWPPVTVRVAUJSZOZWBBVRVDWOWRWBVMWPWOWBWRVRQWQRSZMZWOVRWFMWTVRVEVRQVRVFVGWR
      WAWSVRVTWQQRVNVHVITVJVKTVLTVG $.

    $( The size of a subword of the second component of a closed walk with
       length of the size of the second component.  (Contributed by Alexander
       van der Vekens, 25-Jun-2018.)  (Revised by AV, 2-May-2021.) $)
    clwlksfclwwlk2sswd $p |- ( c e. C
                   -> ( # ` A ) = ( # ` ( B substr <. 0 , ( # ` A ) >. ) ) ) $=
      ( cv wcel cvtx cfv cword chash cc0 cfz co csubstr wceq clwlksfclwwlk1hash
      cop clwlksfclwwlk2wrd wa swrd0len eqcomd syl2anc ) GLCMBENOZPMZAQOZRBQOST
      MZULBRULUDUATQOZUBABCDEFGHIJKUEABCDEFGHIJKUCUKUMUFUNULUJBULUGUHUI $.

    $d C c i $.  $d G i x $.  $d N i $.
    $( There is a function between the set of closed walks (defined as words)
       of length n and the set of closed walks of length n.  (Contributed by
       Alexander van der Vekens, 25-Jun-2018.)  (Revised by AV, 2-May-2021.) $)
    clwlksfclwwlk $p |- ( ( G e. FinUSGraph /\ N e. Prime )
                          -> F : C --> ( N ClWWalksN G ) ) $=
      ( wcel wa cc0 cfv co wi wceq w3a adantr vi vx cfusgr cprime chash csubstr
      cop cclwwlksn cv cclwlks rabeq2i ciedg cdm cword cfz cvtx wf c1 caddc cpr
      cfzo wral cupgr cusgr fusgrusgr usgrupgr eqid upgrclwlkcompim sylan lencl
      syl cn0 cclwwlks wne cedg cmin clsw clwlksfclwwlk2wrd ad2antlr swrdcl cle
      c0 cn ffz0iswrd 3ad2ant1 prmnn adantl 3ad2ant3 oveq2 feq2d ffz0hash ex cr
      wbr nnnn0d nnred lep1d wb breq2 mpbird syldc syl6bi 3imp21 swrdn0 syl3anc
      opeq2 oveq2d neeq1d 3ad2ant2 3exp imp jca c2 simp-5r anim12ci cuz adantlr
      prmuz2 eluz2 2re a1i 3jca sylbi eleq1 eqcoms syl5com impcom eleq2i sylibr
      cz 3adant2 swrd0fv eqcomd preq12d sylc eleq1d nn0z expcom com23 com12 zre
      peano2re simpr letr syl12anc 3adant1 3imtr4d simp-4r crn cpw csn cdif wf1
      crab usgrf anim1i clwlkclwwlklem2 syl3an1 biid edgval 3anbi123i syl121anc
      ralbii clwlksfclwwlk1hash simp2 simp1 elfzelz peano2zm id lem1d syl3anbrc
      wss fzoss2 3syl sselda elfzom1elp1fzo ralbidva clwlksfclwwlk2sswd raleqdv
      oveq1d bitrd biimpd elfz2nn0 1zzd 3adant3 simp3 nnge1 swrd0fvlsw swrd0fv0
      sylanb elfz2 syl6 3anbi23d mpbid 3simpc 3anass sylanbrc isclwwlks biimpcd
      eqeq1d isclwwlksn exp31 exp41 mpancom 3impib com14 com24 pm2.43i fmptd
      mpd ) EUCLZFUDLZMZGCBNAUEOZUGZUFPZFEUHPZDGUIZCLZUXMUXPUXQLZUXSUXMUXTQZUXS
      UXREUJOZLZUXNFRZMUXSUYAQZUYDGCUYBJUKUYCUYDUYEUYCUXMUXSUYDUXTUXMUYCUXSUYDU
      XTQQZUXMUYCMAEULOZUMZUNLZNUXNUOPZEUPOZBUQZMZUAUIZAOUYGOUYNBOZUYNURUSPZBOZ
      UTZRUANUXNVAPZVBZNBOZUXNBORZSZUYFUXMEVCLZUYCVUCUXKVUDUXLUXKEVDLZVUDEVEZEV
      FVKTBUAAEUYGUYKUXRUYKVGZUYGVGZHIVHVIUXMVUCUYFQUYCUYDVUCUXSUXMUXTVUCUYDUYE
      UYMUYTVUBUYDUYEQZUYIUYLUYTVUBMZVUIQZUXNVLLZUYIUYLVUKQUYHAVJVULUYIMZUYLVUJ
      UYDUYEVUMUYLMZVUJMZUYDMZUXSUXMUXTVUPUXSMZUXMMZUXTUXPEVMOLZUXPUEOZFRZMZVUR
      VUSVVAVURUXPUYKUNZLZUXPWBVNZMZUYNUXPOZUYPUXPOZUTZEVOOZLZUANVUTURVPPZVAPZV
      BZUXPVQOZNUXPOZUTZVVJLZSZVUSVURVVFVVNVVRMZVVSVURVVDVVEVURBVVCLZVVDUXSVWAV
      UPUXMABCDEFGHIJKVRZVSUYKBNUXNVTVKVUQUXMVVEVUPUXMVVEQZUXSVUOUYDVWCUYLUYDVW
      CQVUMVUJUYLUYDUXMVVEUYLUYDUXMSZVVEBNFUGZUFPZWBVNZVWDVWAFWCLZFBUEOZWAWNZVW
      GUYLUYDVWAUXMUYKUXNBWDWEUXMUYLVWHUYDUXLVWHUXKFWFZWGZWHUYDUYLUXMVWJUYDUYLN
      FUOPZUYKBUQZUXMVWJQUYDUYJVWMUYKBUXNFNUOWIWJUXMVWNVWIFURUSPZRZVWJUXMVWNVWP
      UXMFVLLVWNVWPUXMFVWLWOUYKBFWKVIWLUXLVWPVWJQUXKUXLVWPVWJUXLVWPMZVWJFVWOWAW
      NZVWQFUXLFWMLVWPUXLFVWKWPTWQVWPVWJVWRWRUXLVWIVWOFWAWSWGWTWLWGXAXBXCFUYKBX
      DXEUYDUYLVVEVWGWRUXMUYDUXPVWFWBUYDUXOVWEBUFUXNFNXFXGXHXIWTXJVSXKTXKXLVURB
      VQOVUARZVVNVVRSZVVTVURVWSUYRVVJLZUANUXNURVPPZVAPZVBZVXBBOZVUAUTZVVJLZSZVW
      TVURVUEUYIMZUYLXMVWIWAWNZVUJVXHVUQUYIUXMVUEVULUYIUYLVUJUYDUXSXNUXKVUEUXLV
      UFTXOVUMUYLVUJUYDUXSUXMXNUXMVUQVXJUXLVUQVXJQUXKUXLFXMXPOZLZVUQVXJFXRVUPVX
      LVXJQZUXSVUOUYDVXMVUNUYDVXMQZVUJVUNVWIUXNURUSPZRZVXNVULUYLVXPUYIUYKBUXNWK
      XQVXPUYDVXMVXPUYDMZUXNVXKLZXMVXOWAWNZVXLVXJVXRVXSQVXQVXRXMYJLZUXNYJLZXMUX
      NWAWNZSVXSXMUXNXSVYAVYBVXSVXTVYAVYBMXMWMLZUXNWMLZVXOWMLZSZVYBUXNVXOWAWNZV
      XSVYAVYFVYBVYAVYCVYDVYEVYCVYAXTYAUXNUUAZVYAVYDVYEVYHUXNUUBVKYBTVYAVYBUUCV
      YAVYGVYBVYAUXNVYHWQTVYFVYBVYGMVXSXMUXNVXOUUDXKUUEUUFYCYAUYDVXLVXRWRZVXPVY
      IFUXNFUXNVXKYDYEWGVXPVXJVXSWRUYDVWIVXOXMWAWSTUUGWLVKTXKTYFWGYGVUNVUJUYDUX
      SUXMUUHVXIUYLVXJMZVUJSVWSUYRUYGUUIZLZUAVXCVBZVXFVYKLZSZVXHVXIUYHUBUIUEOXM
      RUBUYKUUJWBUUKUULUUNZUYGUUMZUYIMVYJVUJVYOVUEVYQUYIUBUYGEUYKVUGVUHUUOUUPBV
      YPUAUYGAUYKUUQUURVWSVWSVXDVYMVXGVYNVWSUUSVXAVYLUAVXCVVJVYKUYREUUTZYHUVCVV
      JVYKVXFVYRYHUVAYIUVBVURVXDVVNVXGVVRVWSVURVXDVVKUAVXCVBZVVNUXSVXDVYSWRVUPU
      XMUXSVXAVVKUAVXCUXSUYNVXCLZMUYRVVIVVJUXSVYTUYRVVIRZUXSUXNNVWIUOPLZVWAVYTW
      UAQABCDEFGHIJKUVDZVWBWUBVWAVYTWUAWUBVWAVYTSZUYOVVGUYQVVHWUDVVGUYOWUDVWAWU
      BUYNUYSLZVVGUYORWUBVWAVYTUVEZWUBVWAVYTUVFZWUBVYTWUEVWAWUBVXCUYSUYNWUBVYAU
      XNVXBXPOLZVXCUYSUVLUXNNVWIUVGZVYAVXBYJLVYAVXBUXNWAWNWUHUXNUVHVYAUVIVYAUXN
      VYHUVJVXBUXNXSUVKVXBNUXNUVMUVNUVOYKUYNUXNUYKBYLXEYMWUDVWAWUBUYPUYSLZUYQVV
      HRWUFWUGWUBVYTWUJVWAWUBVYAVYTWUJWUIUYNUXNUVPVIYKVWAWUBWUJSVVHUYQUYPUXNUYK
      BYLYMXEYNXJYOXKYPUVQVSVURVVKUAVXCVVMVURVXBVVLNVAUXSVXBVVLRVUPUXMUXSUXNVUT
      URVPABCDEFGHIJKUVRZUVTVSXGUVSUWAVURVXFVVQVVJUXMVUQVXFVVQRZUXLVUQWULQUXKVU
      QUXLWULVUPUXSUXLWULQZUYDUXSWUMQVUOUYDUXLUXSWULUYDUXLUXNUDLZUXSWULQUXLWUNQ
      FUXNFUXNRUXLWUNFUXNUDYDUWBYEWUNUXNWCLZUXSWULUXNWFUXSWUBVWAWUOWULQWUCVWBWU
      BWUOVWAWULWUBWUOVWAWULQZWUBWUOMZUXNURVWIUOPLZWUPWUQURYJLZVWIYJLZVYASZURUX
      NWAWNZUXNVWIWAWNZMZMZWURWUBVULVWIVLLZWVCSZWUOWVEUXNVWIUWCWVGWUOMWVAWVDWVG
      WVAWUOVULWVFWVAWVCVULWVFMZWUSWUTVYAWVHUWDWVFWUTVULVWIYQWGVULVYAWVFUXNYQTY
      BUWETWVGWVCWUOWVBVULWVFWVCUWFUXNUWGXOXLUWJUXNURVWIUWKYIVWAWURWULVWAWURMZV
      XEVVOVUAVVPWVIVVOVXEUXNUYKBUWHYMWVIVVPVUAUXNUYKBUWIYMYNYRVKWLYSYOYFUWLYSW
      GXKYTWGYGYPUWMUWNVWSVVNVVRUWOVKVVFVVNVVRUWPUWQUAVVJEUYKUXPVUGVVJVGUWRYIVU
      QVVAUXMVUPUXSVVAUYDUXSVVAQVUOUXSUYDVVAUXSUXNVUTFWUKUWTUWSWGXKTXLVURVWHUXT
      VVBWRUXMVWHVUQVWLWGEFUXPUXAVKWTUXBUXCUXDXKUXEYTUXFTUXJYRUXGXKYCUXHYGKUXI
      $.

    $d C f w $.  $d F c f w $.  $d G f w $.  $d N f w $.
    $( There is an onto function between the set of closed walks (defined as
       words) of length n and the set of closed walks of length n.
       (Contributed by Alexander van der Vekens, 30-Jun-2018.)  (Revised by AV,
       2-May-2021.) $)
    clwlksfoclwwlk $p |- ( ( G e. FinUSGraph /\ N e. Prime )
                    -> F : C -onto-> ( N ClWWalksN G ) ) $=
      ( wcel wa co cfv wceq chash adantl cc0 csubstr vw cfusgr cprime cclwwlksn
      vf wf cv wrex wral wfo clwlksfclwwlk cvtx cword clwwlknbp cconcat cclwlks
      eqid cs1 wbr wex cclwwlks cn wb prmnn ad2antlr isclwwlksn cuspgr c1 cusgr
      syl fusgrusgr usgruspgr adantr simprl wi eleq1 nnge1d syl6bir com12 ciedg
      cle clwlkclwwlk2 syl3anc bicomd anbi1d bitrd df-br c1st simpl cwlks breq2
      imp cop ad2antll mpbird jca clwlkwlk wlklenvclwlk syl2im impcom vex op1st
      ovex fveq2d eqcom biimpi 3eqtr4d fveq2i eqeq1i fveq2 eqeq1d syl5bb elrab2
      a1i sylanbrc opeq2d oveq2d simpr eqeq2 eqcoms imbi2d eqtrd opeq2i oveq12i
      c2nd oveq12d op2nd syl6eq syl5eq fvmptg sylancl wrdsymb1 s1cld swrdccatid
      cvv eqidd eqcomd 3eqtr4rd ex eqeq2d pm2.43b syl5bi exlimdv adantrd sylbid
      rspcimedv impancom mpd ralrimiva dffo3 ) EUBLZFUCLZMZCFEUDNZDUFUAUGZGUGZD
      OZPZGCUHZUAUUNUICUUNDUJABCDEFGHIJKUKUUMUUSUAUUNUUMUUOUUNLZMUUOEULOZUMZLZU
      UOQOZFPZMZUUSUUTUVFUUMEFUVAUUOUVAUQZUNRUUMUVFUUTUUSUUMUVFMZUUTUEUGZUUOSUU
      OOZURZUONZEUPOZUSZUEUTZUVEMZUUSUVHUUTUUOEVAOLZUVEMZUVPUVHFVBLZUUTUVRVCUUL
      UVSUUKUVFFVDZVEEFUUOVFVJUVHUVQUVOUVEUVHUVOUVQUVHEVGLZUVCVHUVDWAUSZUVOUVQV
      CUUMUWAUVFUUKUWAUULUUKEVILUWAEVKEVLVJVMVMUUMUVCUVEVNZUUMUVFUWBUULUVFUWBVO
      UUKUVFUULUWBUVEUULUWBVOUVCUVEUULUVDUCLZUWBUVDFUCVPUWDUVDUVDVDVQVRRVSRWLUU
      OUEEVTOZEUVAUVGUWEUQWBWCWDWEWFUVHUVOUUSUVEUVHUVNUUSUEUVNUVIUVLWMZUVMLZUVH
      UUSUVIUVLUVMWGUVHUWGUUSUWGUVHUWGUUSVOUWGUVHMZUURUWGGUWFCUWHUWGUWFWHOZQOZF
      PZUWFCLZUWGUVHWIUWHUVIQOZUVDUWJFUVHUWGUWMUVDPZUVHUVCUWBMZUWGUWFEWJOLUWNUV
      HUVCUWBUWCUVHUWBVHFWAUSZUULUWPUUKUVFUULFUVTVQVEUVEUWBUWPVCUUMUVCUVDFVHWAW
      KWNWOWPZEUWFWQUVIEUUOWRWSZWTZUVHUWJUWMPUWGUVHUWIUVIQUWIUVIPZUVHUVIUVLUEXA
      ZUUOUVKUOXCZXBZXNXDRUVHFUVDPZUWGUVEUXDUUMUVCUVEUXDUVDFXEXFWNRXGAQOZFPZUWK
      GUWFUVMCUXFUUPWHOZQOZFPZUUPUWFPZUWKUXEUXHFAUXGQHXHZXIZUXJUXHUWJFUXJUXGUWI
      QUUPUWFWHXJXDZXKXLJXMXOUWHUXJMUWGUURVOZUWGUUOUWFDOZPZVOZUWHUXQUXJUWHUWGUX
      PUWHUWGMZUVLSUWMWMZTNZUVLSUVDWMZTNZUXOUUOUXRUXSUYAUVLTUXRUWMUVDSUWHUWNUWG
      UWSVMXPXQUXRUWLUXTYOLUXOUXTPUXRUWGUWMFPZUWLUWHUWGXRUWHUWGUYCUWHUWGUYCVOZU
      WGUWNVOZUVHUYEUWGUWRRUVHUYDUYEVCZUWGUVEUYFUUMUVCUVEUYCUWNUWGUYCUWNVCFUVDF
      UVDUWMXSXTYAWNRWOWLUXFUYCGUWFUVMCUXFUXIUXJUYCUXLUXJUXHUWMFUXJUXHUWJUWMUXM
      UXJUWIUVIQUWTUXJUXCXNXDYBXKXLJXMXOUVLUXSTXCGUWFBSUXEWMZTNZUXTCYODUXJUYHUU
      PYEOZSUXHWMZTNZUXTBUYIUYGUYJTIUXEUXHSUXKYCYDUXJUYKUWFYEOZSUWJWMZTNUXTUXJU
      YIUYLUYJUYMTUUPUWFYEXJUXJUXHUWJSUXMXPYFUYLUVLUYMUXSTUVIUVLUXAUXBYGUWJUWMS
      UWIUVIQUXCXHYCYDYHYIKYJYKUXRUWOUUOUYBPUVHUWOUWGUWGUWQVEUWOUYBUUOUWOUVCUVK
      UVBLUVDUVDPUYBUUOPUVCUWBWIUWOUVJUVAUVAUUOYLYMUWOUVDYPUUOUVKUVDUVAYNWCYQVJ
      YRYSVMUXJUXNUXQVCUWHUXJUURUXPUWGUXJUUQUXOUUOUUPUWFDXJYTYARWOUUFYSUUAUUBUU
      CUUDUUEUUGUUHUUIGUACUUNDUUJXO $.

    $d W i $.
    $( Lemma 1 for ~ clwlksf1clwwlklem .  (Contributed by AV, 3-May-2021.) $)
    clwlksf1clwwlklem0 $p |- ( W e. C
        -> ( ( ( 1st ` W ) e. Word dom ( iEdg ` G )
               /\ ( 2nd ` W ) : ( 0 ... ( # ` ( 1st ` W ) ) ) --> ( Vtx ` G )
               /\ ( ( 2nd ` W ) ` 0 ) = ( ( 2nd ` W ) ` ( # ` ( 1st ` W ) ) ) )
             /\ ( # ` ( 1st ` W ) ) = N ) ) $=
      ( vi wcel cfv c1st chash wceq wa eqid cclwlks ciedg cdm cword cc0 co cvtx
      cfz c2nd wf w3a cv fveq2 syl5eq fveq2d eqeq1d elrab2 c1 caddc csn cpr wss
      wif cfzo wral clwlkcompim simpr anim2i df-3an sylibr syl anim1i sylbi ) G
      CNGEUAOZNZGPOZQOZFRZSVPEUBOZUCUDNZUEVQUHUFEUGOZGUIOZUJZUEWBOVQWBORZUKZVRS
      AQOZFRVRHGVNCHULZGRZWFVQFWHAVPQWHAWGPOVPIWGGPUMUNUOUPKUQVOWEVRVOVTWCSZMUL
      ZWBOZWJURUSUFWBOZRWJVPOVSOZWKUTRWKWLVAWMVBVCMUEVQVDUFVEZWDSZSZWEWBMVPEVSW
      AGWATVSTVPTWBTVFWPWIWDSWEWOWDWIWNWDVGVHVTWCWDVIVJVKVLVM $.

    $( Lemma 1 for ~ clwlksf1clwwlklem .  (Contributed by Alexander van der
       Vekens, 5-Jul-2018.)  (Revised by AV, 3-May-2021.) $)
    clwlksf1clwwlklem1 $p |- ( W e. C -> N <_ ( # ` ( 2nd ` W ) ) ) $=
      ( wcel cfv cc0 chash co wceq cle wbr c1st ciedg cdm cword cfz cvtx wf w3a
      wa clwlksf1clwwlklem0 wi cn0 wfn lencl ffn c1 caddc nn0re lep1d fnfz0hash
      c2nd adantr breqtrrd breq1 syl5ibcom syl2an 3adant3 imp syl ) GCMGUANZEUB
      NUCZUDMZOVJPNZUEQZEUFNZGVANZUGZOVPNVMVPNRZUHZVMFRZUIFVPPNZSTZABCDEFGHIJKL
      UJVSVTWBVLVQVTWBUKZVRVLVMULMZVPVNUMZWCVQVKVJUNVNVOVPUOWDWEUIZVMWASTVTWBWF
      VMVMUPUQQZWASWDVMWGSTWEWDVMVMURUSVBVPVMUTVCVMFWASVDVEVFVGVHVI $.

    $( Lemma 2 for ~ clwlksf1clwwlklem .  (Contributed by Alexander van der
       Vekens, 5-Jul-2018.)  (Revised by AV, 3-May-2021.) $)
    clwlksf1clwwlklem2 $p |- ( W e. C
                              -> ( ( 2nd ` W ) ` 0 ) = ( ( 2nd ` W ) ` N ) ) $=
      ( wcel c1st cfv ciedg cdm cword cc0 wceq chash cfz co cvtx c2nd wf w3a wa
      clwlksf1clwwlklem0 wi fveq2 eqeq2d biimpcd 3ad2ant3 imp syl ) GCMGNOZEPOQ
      RMZSUQUAOZUBUCEUDOGUEOZUFZSUTOZUSUTOZTZUGZUSFTZUHVBFUTOZTZABCDEFGHIJKLUIV
      EVFVHVDURVFVHUJVAVFVDVHVFVCVGVBUSFUTUKULUMUNUOUP $.

    $( Lemma 3 for ~ clwlksf1clwwlklem .  (Contributed by Alexander van der
       Vekens, 5-Jul-2018.)  (Revised by AV, 3-May-2021.) $)
    clwlksf1clwwlklem3 $p |- ( W e. C -> ( 2nd ` W ) e. Word ( Vtx ` G ) ) $=
      ( wcel cfv cword cc0 co wf wceq syl c1st ciedg cdm chash cfz cvtx c2nd wa
      w3a clwlksf1clwwlklem0 cn0 lencl c1 caddc cfzo fzval3 feq2d biimpa iswrdi
      cz nn0z sylan 3adant3 adantr ) GCMGUANZEUBNUCZOMZPVEUDNZUEQZEUFNZGUGNZRZP
      VKNVHVKNSZUIZVHFSZUHVKVJOMZABCDEFGHIJKLUJVNVPVOVGVLVPVMVGVHUKMZVLVPVFVEUL
      VQVLUHPVHUMUNQZUOQZVJVKRZVPVQVLVTVQVIVSVJVKVQVHUTMVIVSSVHVAPVHUPTUQURVJVR
      VKUSTVBVCVDT $.

    $d G y $.  $d N y $.  $d U c y $.  $d W y $.
    $( Lemma for ~ clwlksf1clwwlk .  (Contributed by Alexander van der Vekens,
       5-Jul-2018.)  (Revised by AV, 3-May-2021.) $)
    clwlksf1clwwlklem $p |- ( ( N e. NN /\ U e. C /\ W e. C )
                      -> ( ( ( 2nd ` U ) substr <. 0 , ( # ` ( 1st ` U ) ) >. )
                         = ( ( 2nd ` W ) substr <. 0 , ( # ` ( 1st ` W ) ) >. )
        -> A. y e. ( 0 ... N ) ( ( 2nd ` U ) ` y ) = ( ( 2nd ` W ) ` y ) ) ) $=
      ( wcel cfv cc0 wceq wa adantr cn w3a c2nd c1st chash cop csubstr cfz wral
      co cfzo cvtx cword cn0 cle clwlksf1clwwlklem3 anim12ci clwlksf1clwwlklem1
      cv wbr nnnn0 adantl 3jca exp31 3imp31 clwlksfclwwlk1hashn 3ad2ant2 opeq2d
      oveq2d 3ad2ant3 eqeq12d biimpa wb simpl id 3ad2ant1 3simpc swrdeq syl3anc
      simpr syl6bi sylc wi lbfzo0 biimpri fveq2 rspcv clwlksf1clwwlklem2 sylibd
      jca syl jcai csn cun cuz elnn0uz sylib fzisfzounsn raleqdv simpl1 ralunsn
      bitrd mpbird ex ) HUAOZEDOZIDOZUBZEUCPZQEUDPUEPZUFZUGUJZIUCPZQIUDPUEPZUFZ
      UGUJZRZAUSZXIPZXRXMPZRZAQHUHUJZUIZXHXQSZYCYAAQHUKUJZUIZHXIPZHXMPZRZSZYDYF
      YIYDXIGULPZUMZOZXMYLOZSZHUNOZHXIUEPUOUTZHXMUEPUOUTZUBZSZXIQHUFZUGUJZXMUUA
      UGUJZRZYFXHYTXQXGXFXEYTXGXFXEYTXGXFSZXESZYOYSUUEYOXEXGYNXFYMBCDFGHIJKLMNU
      PBCDFGHEJKLMNUPUQTUUFYPYQYRXEYPUUEHVAZVBUUEYQXEXFYQXGBCDFGHEJKLMNURVBTUUE
      YRXEXGYRXFBCDFGHIJKLMNURTTVCWJVDVETXHXQUUDXHXLUUBXPUUCXHXKUUAXIUGXHXJHQXF
      XEXJHRXGBCDFGHEJKLMNVFVGVHVIXHXOUUAXMUGXHXNHQXGXEXNHRXFBCDFGHIJKLMNVFVJVH
      VIVKVLYTUUDHHRZYFSZYFYTYOYPYPSZYQYRSZUUDUUIVMYOYSVNYSUUJYOYPYQUUJYRYPYPYP
      YPVOZUULWJVPVBYSUUKYOYPYQYRVQVBXMAHHYKXIVRVSUUHYFVTWAWBYDYFQXIPZQXMPZRZYI
      YDQYEOZYFUUOWCXHUUPXQXEXFUUPXGUUPXEHWDWEVPTYAUUOAQYEXRQRXSUUMXTUUNXRQXIWF
      XRQXMWFVKWGWKYDUUMYGUUNYHXHUUMYGRZXQXFXEUUQXGBCDFGHEJKLMNWHVGTXHUUNYHRZXQ
      XGXEUURXFBCDFGHIJKLMNWHVJTVKWIWLYDYCYAAYEHWMWNZUIZYJYDYAAYBUUSYDHQWOPOZYB
      UUSRXHUVAXQXEXFUVAXGXEYPUVAUUGHWPWQVPTQHWRWKWSYDXEUUTYJVMXEXFXGXQWTYAYIAY
      EHUAXRHRXSYGXTYHXRHXIWFXRHXMWFVKXAWKXBXCXD $.

    $d i u w $.  $d C u $.  $d F u $.  $d G c u $.  $d N u $.
    $( There is a one-to-one function between the set of closed walks (defined
       as words) of length n and the set of closed walks of length n (in an
       undirected simple graph).  (Contributed by Alexander van der Vekens,
       5-Jul-2018.)  (Revised by AV, 3-May-2021.) $)
    clwlksf1clwwlk $p |- ( ( G e. FinUSGraph /\ N e. Prime )
                           -> F : C -1-1-> ( N ClWWalksN G ) ) $=
      ( wcel wa co cfv wceq c2nd cc0 c1st csubstr vu vw cfusgr cprime cclwwlksn
      vi wf cv wi wral wf1 clwlksfclwwlk chash cop cvv simprl ovex fveq2 syl5eq
      fveq2d opeq2d oveq12d fvmptg sylancl simpr adantl syl clwlksfclwwlk1hashn
      jctir eqeq12d cfz eqcomd ad2antlr cn clwlksf1clwwlklem syl3anc imp cuspgr
      prmnn cwlks wb fusgrusgr usgruspgr ad3antrrr cclwlks crab elrabi clwlkwlk
      cusgr eleq2s anim12i adantr uspgr2wlkeq mpbir2and sylbid ralrimivva dff13
      ex sylanbrc ) EUCLZFUDLZMZCFEUENZDUGUAUHZDOZUBUHZDOZPZXDXFPZUIZUBCUJUACUJ
      CXCDUKABCDEFGHIJKULXBXJUAUBCCXBXDCLZXFCLZMZMZXHXDQOZRXDSOZUMOZUNZTNZXFQOZ
      RXFSOZUMOZUNZTNZPZXIXNXEXSXGYDXNXKXSUOLXEXSPXBXKXLUPZXOXRTUQGXDBRAUMOZUNZ
      TNZXSCUODGUHZXDPZBXOYHXRTYKBYJQOZXOIYJXDQURUSYKYGXQRYKAXPUMYKAYJSOZXPHYJX
      DSURUSUTVAVBKVCVDXNXLYDUOLZMZXGYDPXMYOXBXMXLYNXKXLVEZXTYCTUQVIVFGXFYIYDCU
      ODYJXFPZBXTYHYCTYQBYLXTIYJXFQURUSYQYGYBRYQAYAUMYQAYMYAHYJXFSURUSUTVAVBKVC
      VGVJXNYEXIXNYEMZXIFYBPZUFUHZXOOYTXTOPUFRFVKNUJZXMYSXBYEXLYSXKXLYBFABCDEFX
      FGHIJKVHVLVFVMXNYEUUAXNFVNLZXKXLYEUUAUIXAUUBWTXMFVSVMYFXMXLXBYPVFUFABCXDD
      EFXFGHIJKVOVPVQYREVRLZXDEVTOZLZXFUUDLZMZFXQPZXIYSUUAMWAWTUUCXAXMYEWTEWILU
      UCEWBEWCVGWDXMUUGXBYEXKUUEXLUUFUUEXDYGFPZGEWEOZWFZCXDUUKLXDUUJLUUEUUIGXDU
      UJWGEXDWHVGJWJUUFXFUUKCXFUUKLXFUUJLUUFUUIGXFUUJWGEXFWHVGJWJWKVMXMUUHXBYEX
      KUUHXLXKXQFABCDEFXDGHIJKVHVLWLVMUFXDXFEFWMVPWNWRWOWPUAUBCXCDWQWS $.

    $( There is a one-to-one onto function between the set of closed walks
       (defined as words) of length n and the set of closed walks of length n
       (in an undirected simple graph).  (Contributed by Alexander van der
       Vekens, 5-Jul-2018.)  (Revised by AV, 3-May-2021.) $)
    clwlksf1oclwwlk $p |- ( ( G e. FinUSGraph /\ N e. Prime )
                            -> F : C -1-1-onto-> ( N ClWWalksN G ) ) $=
      ( cfusgr wcel cprime wa cclwwlksn co wf1 wfo wf1o clwlksf1clwwlk sylanbrc
      clwlksfoclwwlk df-f1o ) ELMFNMOCFEPQZDRCUEDSCUEDTABCDEFGHIJKUAABCDEFGHIJK
      UCCUEDUDUB $.
  $}

  ${
    $d G c u w $.  $d N c u w $.
    $( The size of the set of closed walks (defined as words) of length n
       corresponds to the size of the set of closed walks of length n (in an
       undirected simple graph).  (Contributed by Alexander van der Vekens,
       6-Jul-2018.)  (Revised by AV, 4-May-2021.) $)
    clwlkssizeeq $p |- ( ( G e. FinUSGraph /\ N e. Prime )
             -> ( # ` ( N ClWWalksN G ) )
              = ( # ` { c e. ( ClWalks ` G ) | ( # ` ( 1st ` c ) ) = N } ) ) $=
      ( vu vw wcel cv c1st cfv chash wceq cclwlks cvv c2nd cc0 cop csubstr eqid
      co fveq2 cfusgr cprime wa crab cclwwlksn cmpt rabex a1i weq fveq2d eqeq1d
      fvex cbvrabv opeq2d oveq12d cbvmptv clwlksf1oclwwlk hasheqf1od eqcomd ) A
      UAFBUBFUCZCGZHIZJIZBKZCALIZUDZJIBAUESZJIUTVFVGMDVFDGZNIZOVHHIZJIZPZQSZUFZ
      VFMFUTVDCVEALULUGUHEGZHIZVONIZVFVNABEVPRVQRVDVPJIZBKCEVECEUIZVCVRBVSVBVPJ
      VAVOHTUJUKUMDEVFVMVQOVRPZQSDEUIZVIVQVLVTQVHVONTWAVKVROWAVJVPJVHVOHTUJUNUO
      UPUQURUS $.
  $}

  ${
    $d G c $.  $d N c $.
    $( The size of the set of closed walks of length n is divisible by n.  This
       corresponds to statement 9 in [Huneke] p. 2:  "It follows that, if p is
       a prime number, then the number of closed walks of length p is divisible
       by p".  (Contributed by Alexander van der Vekens, 6-Jul-2018.)  (Revised
       by AV, 4-May-2021.) $)
    clwlksndivn $p |- ( ( G e. FinUSGraph /\ N e. Prime )
                       -> N || ( # ` { c e. ( ClWalks ` G ) |
                                       ( # ` ( 1st ` c ) ) = N } ) ) $=
      ( cfusgr wcel cprime wa cclwwlksn co chash cfv cv c1st wceq cclwlks cdvds
      crab clwwlksndivn clwlkssizeeq breqtrd ) ADEBFEGBBAHIJKCLMKJKBNCAOKQJKPAB
      RABCST $.
  $}

  ${
    $d G x y $.  $d N x y $.  $d V x y $.  $d w x y $.
    $( The sets of closed walks starting at different vertices are disjunct.
       (Contributed by Alexander van der Vekens, 7-Oct-2018.)  (Revised by AV,
       28-May-2021.) $)
    clwwlksndisj $p |- Disj_ x e. V { w e. ( N ClWWalksN G ) |
                                      ( w ` 0 ) = x } $=
      ( vy cc0 cv cfv wceq cclwwlksn co crab wdisj weq cin c0 wo wral wn rabeq0
      inrab eqtr2 con3i ralrimivw sylibr syl5eq orri rgen2w eqeq2 rabbidv mpbir
      wa disjor ) AEGBHIZAHZJZBDCKLZMZNAFOZUSUOFHZJZBURMZPZQJZRZFESAESVFAFEEUTV
      EUTTZVDUQVBUMZBURMZQUQVBBURUBVGVHTZBURSVIQJVGVJBURVHUTUOUPVAUCUDUEVHBURUA
      UFUGUHUIEUSVCAFUTUQVBBURUPVAUOUJUKUNUL $.

    $d G w $.  $d G i x y $.  $d N i $.  $d N w $.
    clwwlksnun.v $e |- V = ( Vtx ` G ) $.
    $( The set of closed walks of fixed length in a simple graph is the union
       of the closed walks of the fixed length starting at each of the
       vertices.  (Contributed by Alexander van der Vekens, 7-Oct-2018.)
       (Revised by AV, 28-May-2021.) $)
    clwwlksnun $p |- ( ( G e. USGraph /\ N e. NN0 )
                    -> ( N ClWWalksN G ) = U_ x e. V { w e. ( N ClWWalksN G ) |
                                                       ( w ` 0 ) = x } ) $=
      ( vy vi wcel wa co cc0 cv cfv wceq wrex wi c1 cpr ex cusgr cclwwlksn crab
      cn0 eliun weq fveq1 eqeq1d elrab rexbii simpl rexlimdvw cword chash caddc
      ciun a1i cedg cmin cfzo wral clsw w3a eqid clwwlknp usgrpredgv simpr syl6
      anim2i adantr com12 3ad2ant3 impcom eqcomd biantrud rspcedv adantld mpcom
      bicomd impbid syl5bb syl5rbb eqrdv ) CUAIZDUDIZJZGDCUBKZAELBMZNZAMZOZBWGU
      CZUPZGMZWMIWNWLIZAEPZWFWNWGIZAWNEWLUEWPWQLWNNZWJOZJZAEPZWFWQWOWTAEWKWSBWN
      WGBGUFWIWRWJLWHWNUGUHUIUJWFXAWQWFWTWQAEWTWQQWFWQWSUKUQULWFWQXAWFWNEUMIWNU
      NNDOJZHMZWNNXCRUOKWNNSCURNZIHLDRUSKUTKVAZWNVBNZWRSXDIZVCZJZWFWQJXAWQXHWFH
      XDCDEWNFXDVDZVEVIXIWQXAWFXIWTWQAWREXHWFWREIZXGXBWFXKQXEWFXGXKWDXGXKQWEWDX
      GXFEIZXKJZXKWDXGXMXDCXFWREXJFVFTXLXKVGVHVJVKVLVMXIWJWROZJZWQWTXOWSWQXOWJW
      RXIXNVGVNVOVSVPVQVRTVTWAWBWC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Examples for walks, trails and paths
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d G k $.  $d S k $.
    $( The empty set (empty sequence of edges) is an s-walk of edges for all s.
       (Contributed by AV, 4-Jan-2021.) $)
    0ewlk $p |- ( ( G e. _V /\ S e. NN0* ) -> (/) e. ( G EdgWalks S ) ) $=
      ( vk cvv wcel cxnn0 wa c0 co cfv c1 chash cle wbr cfzo wral cc0 cz pm3.2i
      wb cewlks ciedg cdm cword cv cmin cin wrd0 ral0 hash0 oveq2i wceq 0le1 1z
      0z fzon ax-mp mpbi eqtri raleqi mpbir 0ex eqid isewlk mp3an3 mpbiri ) BDE
      ZAFEZGHBAUAIEZHBUBJZUCZUDEZACUEZKUFIHJVJJVMHJVJJUGLJMNZCKHLJZOIZPZGZVLVQV
      KUHVQVNCHPVNCUIVNCVPHVPKQOIZHVOQKOUJUKQKMNZVSHULZUMKREZQREZGVTWATWBWCUNUO
      SKQUPUQURUSUTVASVGVHHDEVIVRTVBADCHBVJDVJVCVDVEVF $.

    $d I k $.
    $( A sequence of 1 edge is an s-walk of edges for all s.  (Contributed by
       AV, 5-Jan-2021.) $)
    1ewlk $p |- ( ( G e. _V /\ S e. NN0* /\ I e. dom ( iEdg ` G ) )
                  -> <" I "> e. ( G EdgWalks S ) ) $=
      ( vk cvv wcel cxnn0 ciedg cfv cdm w3a co c1 chash cfzo 3ad2ant3 c0 mpbird
      wral a1i cs1 cewlks cword cv cmin cin cle wbr s1cl ral0 wceq s1len oveq2i
      wa fzo0 eqtri raleqdv jca wb 3anim3i eqid isewlk syl ) BEFZAGFZCBHIZJZFZK
      ZCUAZBAUBLFZVJVGUCZFZADUDZMUELVJIVFIVNVJIVFIUFNIUGUHZDMVJNIZOLZSZUNZVIVMV
      RVHVDVMVECVGUIZPVHVDVRVEVHVRVODQSZWAVHVODUJTVHVODVQQVQQUKVHVQMMOLQVPMMOCU
      LUMMUOUPTUQRPURVIVDVEVMKVKVSUSVHVMVDVEVTUTAVLDVJBVFEVFVAVBVCR $.
  $}

  ${
    $d G k $.  $d P k $.
    0wlk.v $e |- V = ( Vtx ` G ) $.
    $( A pair of an empty set (of edges) and a second set (of vertices) is a
       walk iff the second set contains exactly one vertex.  (Contributed by
       Alexander van der Vekens, 30-Oct-2017.)  (Revised by AV, 3-Jan-2021.)
       (Revised by AV, 30-Oct-2021.) $)
    0wlk $p |- ( G e. U
                  -> ( (/) ( Walks ` G ) P <-> P : ( 0 ... 0 ) --> V ) ) $=
      ( vk wcel c0 cwlks cfv cc0 cfz co wf wceq cfzo wral wa hash0 oveq2i ciedg
      wbr cdm cword chash cv c1 caddc csn cpr wss wif w3a eqid iswlkg ral0 fzo0
      eqtri raleqi mpbir biantru eqcomi feq2i wrd0 biantrur bitri df-3an syl6bb
      3bitr4ri ) CBGHACIJUBHCUAJZUCZUDGZKHUEJZLMZDANZFUFZAJZVPUGUHMAJZOVPHJVJJZ
      VQUIOVQVRUJVSUKULZFKVMPMZQZUMZKKLMZDANZAFHCVJDBEVJUNUOVLVORZWFWBRWEWCWBWF
      WBVTFHQVTFUPVTFWAHWAKKPMHVMKKPSTKUQURUSUTVAWEVOWFWDVNDAKVMKLVMKSVBTVCVLVO
      VKVDVEVFVLVOWBVGVIVH $.

    $( A pair of an empty set (of edges) and a sequence of one vertex is a walk
       (of length 0).  (Contributed by AV, 3-Jan-2021.)  (Revised by AV,
       23-Mar-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
    is0wlk $p |- ( ( P = { <. 0 , N >. } /\ N e. V )
                    -> (/) ( Walks ` G ) P ) $=
      ( cc0 cop csn wceq wcel wa c0 cwlks cfv wbr cfz co wf 1fv cvv ancoms 0wlk
      simpld wb 1vgrex adantl syl mpbird ) AFCGHIZCDJZKZLABMNOZFFPQDARZUKUMFANC
      IZUJUIUMUNKACDSUAUCUKBTJZULUMUDUJUOUIBCDEUEUFATBDEUBUGUH $.

    $( Lemma 1 for ~ 0wlkon and ~ 0trlon .  (Contributed by AV, 3-Jan-2021.)
       (Revised by AV, 23-Mar-2021.) $)
    0wlkonlem1 $p |- ( ( P : ( 0 ... 0 ) --> V /\ ( P ` 0 ) = N )
                       -> ( N e. V /\ N e. V ) ) $=
      ( cc0 cfz co wf cfv wceq wa wcel id cn0 0nn0 0elfz mp1i ffvelrnd adantr
      wb eleq1 eqcoms adantl mpbird jccir ) FFGHZDAIZFAJZCKZLZCDMZULUKULUIDMZUH
      UMUJUHUGDFAUHNFOMFUGMUHPFQRSTUJULUMUAZUHUNCUICUIDUBUCUDUEULNUF $.

    $( Lemma 2 for ~ 0wlkon and ~ 0trlon .  (Contributed by AV, 3-Jan-2021.)
       (Revised by AV, 23-Mar-2021.) $)
    0wlkonlem2 $p |- ( ( P : ( 0 ... 0 ) --> V /\ ( P ` 0 ) = N )
                       -> P e. ( V ^pm ( 0 ... 0 ) ) ) $=
      ( cc0 cfz co cvv wcel wf cfv wceq wa cpm ovex cvtx fvex eqeltri simpl
      fpmg mp3an12i ) FFGHZIJDIJUCDAKZFALCMZNUDADUCOHJFFGPDBQLIEBQRSUDUETUCDAII
      UAUB $.

    $( A walk of length 0 from a vertex to itself.  (Contributed by Alexander
       van der Vekens, 2-Dec-2017.)  (Revised by AV, 3-Jan-2021.)  (Revised by
       AV, 23-Mar-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
    0wlkon $p |- ( ( P : ( 0 ... 0 ) --> V /\ ( P ` 0 ) = N )
                   -> (/) ( N ( WalksOn ` G ) N ) P ) $=
      ( cc0 cfz co wf cfv wceq wa c0 cwlkson wbr cwlks chash wcel cvv wb 1vgrex
      simpl 0wlkonlem1 adantr 0wlk mpbird simpr hash0 fveq2i syl5eq cpm w3a 0ex
      3syl a1i 0wlkonlem2 iswlkon syl12anc mpbir3and ) FFGHZDAIZFAJZCKZLZMACCBN
      JHOZMABPJOZVCMQJZAJZCKZVDVFVAVAVCUBVDCDRZVJLZBSRZVFVATABCDEUCZVJVLVJBCDEU
      AUDASBDEUEUNUFVAVCUGZVDVHVBCVGFAUHUIVNUJVDVKMSRZADUTUKHZRVEVFVCVIULTVMVOV
      DUMUOABCDEUPCCASMBDVPEUQURUS $.

    $( A walk of length 0 from a vertex to itself.  (Contributed by AV,
       17-Apr-2021.) $)
    0wlkons1 $p |- ( N e. V -> (/) ( N ( WalksOn ` G ) N ) <" N "> ) $=
      ( wcel cc0 cfz co cs1 wf cfv wceq c0 cwlkson wbr cop csn s1val cz 0z jctl
      wa wf1 f1sng f1f 3syl fzsn mp1i feq12d syl5ibrcom mpd s1fv 0wlkon syl2anc
      id ) BCEZFFGHZCBIZJZFURKBLMURBBANKHOUPURFBPQZLZUSBCRUPUSVAFQZCUTJZUPFSEZU
      PUBVBCUTUCVCUPVDTUAFBSCUDVBCUTUEUFVAUQVBCURUTVAUOVDUQVBLVATFUGUHUIUJUKBCU
      LURABCDUMUN $.

    $( A pair of an empty set (of edges) and a second set (of vertices) is a
       trail iff the second set contains exactly one vertex.  (Contributed by
       Alexander van der Vekens, 30-Oct-2017.)  (Revised by AV, 7-Jan-2021.)
       (Revised by AV, 30-Oct-2021.) $)
    0trl $p |- ( G e. U
                 -> ( (/) ( Trails ` G ) P <-> P : ( 0 ... 0 ) --> V ) ) $=
      ( wcel c0 cwlks cfv wbr ccnv wfun wa cc0 cfz co wf ctrls 0wlk anbi1d
      istrl funcnv0 biantru 3bitr4g ) CBFZGACHIJZGKLZMNNOPDAQZUGMGACRIJUHUEUFUH
      UGABCDESTAGCUAUGUHUBUCUD $.

    $( A pair of an empty set (of edges) and a sequence of one vertex is a
       trail (of length 0).  (Contributed by AV, 7-Jan-2021.)  (Revised by AV,
       23-Mar-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
    is0trl $p |- ( ( P = { <. 0 , N >. } /\ N e. V )
                   -> (/) ( Trails ` G ) P ) $=
      ( cc0 cop csn wceq wcel wa c0 ctrls cfv wbr cfz co wf 1fv cvv ancoms 0trl
      simpld wb 1vgrex adantl syl mpbird ) AFCGHIZCDJZKZLABMNOZFFPQDARZUKUMFANC
      IZUJUIUMUNKACDSUAUCUKBTJZULUMUDUJUOUIBCDEUEUFATBDEUBUGUH $.

    $( A trail of length 0 from a vertex to itself.  (Contributed by Alexander
       van der Vekens, 2-Dec-2017.)  (Revised by AV, 8-Jan-2021.)  (Revised by
       AV, 23-Mar-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
    0trlon $p |- ( ( P : ( 0 ... 0 ) --> V /\ ( P ` 0 ) = N )
                   -> (/) ( N ( TrailsOn ` G ) N ) P ) $=
      ( cc0 cfz co wf cfv wceq wa c0 ctrlson wbr cwlkson ctrls wcel cvv wb 0trl
      0wlkon simpl 0wlkonlem1 1vgrex adantr 3syl mpbird cpm 0wlkonlem2 istrlson
      0ex a1i syl12anc mpbir2and ) FFGHZDAIZFAJCKZLZMACCBNJHOZMACCBPJHOZMABQJOZ
      ABCDEUBUSVBUQUQURUCUSCDRZVCLZBSRZVBUQTABCDEUDZVCVEVCBCDEUEUFASBDEUAUGUHUS
      VDMSRZADUPUIHZRUTVAVBLTVFVGUSULUMABCDEUJCCASMBDVHEUKUNUO $.
  $}

  ${
    0pth.v $e |- V = ( Vtx ` G ) $.
    $( A pair of an empty set (of edges) and a second set (of vertices) is a
       path iff the second set contains exactly one vertex.  (Contributed by
       Alexander van der Vekens, 30-Oct-2017.)  (Revised by AV, 19-Jan-2021.)
       (Revised by AV, 30-Oct-2021.) $)
    0pth $p |- ( G e. W
                    -> ( (/) ( Paths ` G ) P <-> P : ( 0 ... 0 ) --> V ) ) $=
      ( wcel c0 cfv wbr c1 co cres ccnv wfun cc0 cima cin wb cz eqtri cpths cpr
      ctrls chash cfzo w3a cfz wf ispth a1i wa 3anass funcnv0 cle hash0 eqbrtri
      wceq 0le1 1z 0z eqeltri fzon mp2an mpbi reseq2i res0 cnveqi mpbir imaeq2i
      funeqi ima0 ineq2i in0 pm3.2i biantru syl6bbr 0trl 3bitrd ) BDFZGABUAHIZG
      ABUCHIZAJGUDHZUEKZLZMZNZAOWBUBPZAWCPZQZGUQZUFZWAOOUGKCAUHVTWKRVSAGBUIUJVS
      WKWAWFWJUKZUKZWAWKWMRVSWAWFWJULUJWLWAWFWJWFGMZNUMWEWNWDGWDAGLGWCGAWBJUNIZ
      WCGUQZWBOJUNUOURUPJSFWBSFWOWPRUSWBOSUOUTVAJWBVBVCVDZVEAVFTVGVJVHWIWGGQGWH
      GWGWHAGPGWCGAWQVIAVKTVLWGVMTVNVOVPADBCEVQVR $.

    $( A pair of an empty set (of edges) and a second set (of vertices) is a
       simple path iff the second set contains exactly one vertex.
       (Contributed by Alexander van der Vekens, 30-Oct-2017.)  (Revised by AV,
       18-Jan-2021.)  (Revised by AV, 30-Oct-2021.) $)
    0spth $p |- ( G e. W
                     -> ( (/) ( SPaths ` G ) P <-> P : ( 0 ... 0 ) --> V ) ) $=
      ( wcel c0 ctrls cfv wbr ccnv wfun wa cc0 cfz co wf cspths 0trl csn anbi1d
      isspth fz0sn feq2i cop wceq c0ex fsn2 cnveq funeqd mpbiri simplbiim sylbi
      funcnvsn pm4.71i 3bitr4g ) BDFZGABHIJZAKZLZMNNOPZCAQZUTMGABRIJVBUQURVBUTA
      DBCESUAAGBUBVBUTVBNTZCAQZUTVAVCCAUCUDVDNAIZCFANVEUETZUFZUTNCAUGUHVGUTVFKZ
      LNVEUNVGUSVHAVFUIUJUKULUMUOUP $.
  $}

  ${
    0pthon.v $e |- V = ( Vtx ` G ) $.
    $( A path of length 0 from a vertex to itself.  (Contributed by Alexander
       van der Vekens, 3-Dec-2017.)  (Revised by AV, 20-Jan-2021.)  (Revised by
       AV, 30-Oct-2021.) $)
    0pthon $p |- ( ( P : ( 0 ... 0 ) --> V /\ ( P ` 0 ) = N )
                      -> (/) ( N ( PathsOn ` G ) N ) P ) $=
      ( cc0 cfz co wf cfv wceq wa c0 cpthson wbr ctrlson cpths wcel cvv wb mp1i
      0trlon simpl id cz 0z elfz3 ffvelrnd adantr eleq1 adantl 1vgrex 0pth 3syl
      mpbid mpbird cpm 0wlkonlem1 0wlkonlem2 jctil ispthson syl2anc mpbir2and
      0ex ) FFGHZDAIZFAJZCKZLZMACCBNJHOZMACCBPJHOZMABQJOZABCDEUBVIVLVFVFVHUCVIC
      DRZBSRVLVFTVIVGDRZVMVFVNVHVFVEDFAVFUDFUERFVERVFUFFUGUAUHUIVHVNVMTVFVGCDUJ
      UKUOBCDEULABDSEUMUNUPVIVMVMLMSRZADVEUQHZRZLVJVKVLLTABCDEURVIVQVOABCDEUSVD
      UTCCASMBDVPEVAVBVC $.

    $( A path of length 0 from a vertex to itself.  (Contributed by Alexander
       van der Vekens, 3-Dec-2017.)  (Revised by AV, 20-Jan-2021.) $)
    0pthon1 $p |- ( N e. V
                       -> (/) ( N ( PathsOn ` G ) N ) { <. 0 , N >. } ) $=
      ( wcel cc0 cfz co cop csn wf cfv wceq wa c0 cpthson wbr eqidd 1fv mpdan
      0pthon syl ) BCEZFFGHCFBIJZKFUDLBMNZOUDBBAPLHQUCUDUDMUEUCUDRUDBCSTUDABCDU
      AUB $.

    $d G f p $.  $d N f p $.
    $( For each vertex there is a path of length 0 from the vertex to itself.
       (Contributed by Alexander van der Vekens, 3-Dec-2017.)  (Revised by AV,
       21-Jan-2021.) $)
    0pthonv $p |- ( N e. V -> E. f E. p f ( N ( PathsOn ` G ) N ) p ) $=
      ( c0 cvv wcel cc0 cop csn wa cpthson cfv co wbr cv wex 0ex pm3.2i 0pthon1
      snex breq12 spc2egv mpsyl ) GHIZJCKZLZHIZMCDIGUICCBNOPZQZARZERZUKQZESASUG
      UJTUHUCUABCDFUBUOULAEGUIHHUMGUNUIUKUDUEUF $.
  $}

  ${
    0clwlk.v $e |- V = ( Vtx ` G ) $.
    $( A pair of an empty set (of edges) and a second set (of vertices) is a
       closed walk if and only if the second set contains exactly one vertex
       (in an undirected graph).  (Contributed by Alexander van der Vekens,
       15-Mar-2018.)  (Revised by AV, 17-Feb-2021.)  (Revised by AV,
       30-Oct-2021.) $)
    0clwlk $p |- ( G e. X
                   -> ( (/) ( ClWalks ` G ) P <-> P : ( 0 ... 0 ) --> V ) ) $=
      ( wcel cc0 cfv c0 chash wceq cwlks wbr wa cfz co wf cclwlks 0wlk anbi2d
      isclwlk ancom bitri hash0 eqcomi fveq2i biantrur 3bitr4g ) BDFZGAHIJHZAHK
      ZIABLHMZNZUKGGOPCAQZNIABRHMZUNUIULUNUKADBCESTUOULUKNUMAIBUAULUKUBUCUKUNGU
      JAUJGUDUEUFUGUH $.

    $( Any vertex (more precisely, a pair of an empty set (of edges) and a
       singleton function to this vertex) determines a closed walk of length 0.
       (Contributed by AV, 11-Feb-2022.) $)
    0clwlkv $p |- ( ( X e. V /\ F = (/) /\ P : { 0 } --> { X } )
                    -> F ( ClWalks ` G ) P ) $=
      ( wcel c0 wceq cc0 csn wf w3a cclwlks cfv wbr cfz 3ad2ant1 wb cvv co fssd
      fz0sn eqcomi feq2i biimpi 3ad2ant3 wss snssi breq1 3ad2ant2 1vgrex 0clwlk
      syl bitrd mpbird ) EDGZBHIZJKZEKZALZMZBACNOZPZJJQUAZDALZVBVEUTDAVAUQVEUTA
      LZURVAVGUSVEUTAVEUSUCUDUEUFUGUQURUTDUHVAEDUIRUBVBVDHAVCPZVFURUQVDVHSVABHA
      VCUJUKUQURVHVFSZVAUQCTGVICEDFULACDTFUMUNRUOUP $.
  $}

  $( There is no closed walk in the empty set (i.e. the null graph).
     (Contributed by Alexander van der Vekens, 2-Sep-2018.)  (Revised by AV,
     5-Mar-2021.) $)
  0clwlk0 $p |- ( ClWalks ` (/) ) = (/) $=
    ( c0 cclwlks cfv cwlks wss wceq clwlkswks 0wlk0 sseq0 mp2an ) ABCZADCZELAFK
    AFAGHKLIJ $.

  $( A pair of an empty set (of edges) and a second set (of vertices) is a
     circuit if and only if the second set contains exactly one vertex (in an
     undirected graph).  (Contributed by Alexander van der Vekens,
     30-Oct-2017.)  (Revised by AV, 31-Jan-2021.)  (Revised by AV,
     30-Oct-2021.) $)
  0crct $p |- ( G e. W -> ( (/) ( Circuits ` G ) P
                            <-> P : ( 0 ... 0 ) --> ( Vtx ` G ) ) ) $=
    ( wcel c0 ctrls cfv wbr cc0 chash wceq wa cfz co cvtx wf ccrcts eqid anbi1d
    0trl iscrct hash0 eqcomi a1i fveq2d pm4.71i 3bitr4g ) BCDZEABFGHZIAGEJGZAGK
    ZLIIMNBOGZAPZUKLEABQGHUMUHUIUMUKACBULULRTSAEBUAUMUKUMIUJAIUJKUMUJIUBUCUDUEU
    FUG $.

  $( A pair of an empty set (of edges) and a second set (of vertices) is a
     cycle if and only if the second set contains exactly one vertex (in an
     undirected graph).  (Contributed by Alexander van der Vekens,
     30-Oct-2017.)  (Revised by AV, 31-Jan-2021.)  (Revised by AV,
     30-Oct-2021.) $)
  0cycl $p |- ( G e. W -> ( (/) ( Cycles ` G ) P
                            <-> P : ( 0 ... 0 ) --> ( Vtx ` G ) ) ) $=
    ( wcel c0 cpths cfv wbr cc0 chash wceq wa cfz co cvtx wf ccycls eqid anbi1d
    0pth iscycl hash0 eqcomi fveq2i biantru 3bitr4g ) BCDZEABFGHZIAGEJGZAGKZLII
    MNBOGZAPZUJLEABQGHULUGUHULUJABUKCUKRTSAEBUAUJULIUIAUIIUBUCUDUEUF $.

  ${
    1wlkd.p $e |- P = <" X Y "> $.
    1wlkd.f $e |- F = <" J "> $.
    $( Lemma 1 for ~ 1pthd .  (Contributed by Alexander van der Vekens,
       4-Dec-2017.)  (Revised by AV, 22-Jan-2021.) $)
    1pthdlem1 $p |- Fun `' ( P |` ( 1 ..^ ( # ` F ) ) ) $=
      ( c1 chash cfv cfzo co cres ccnv wfun c0 fun0 cs1 fveq2i eqtri s1len fzo0
      oveq2i reseq2i res0 cnveqi cnv0 funeqi mpbir ) AHBIJZKLZMZNZOPOQUMPUMPNPU
      LPULAPMPUKPAUKHHKLPUJHHKUJCRZIJHBUNIGSCUATUCHUBTUDAUETUFUGTUHUI $.

    $( Lemma 2 for ~ 1pthd .  (Contributed by Alexander van der Vekens,
       4-Dec-2017.)  (Revised by AV, 22-Jan-2021.) $)
    1pthdlem2 $p |- ( ( P " { 0 , ( # ` F ) } )
                      i^i ( P " ( 1 ..^ ( # ` F ) ) ) ) = (/) $=
      ( cc0 chash cfv cpr cima c1 cfzo co cin c0 cs1 eqtri ineq2i fveq2i oveq2i
      s1len fzo0 imaeq2i ima0 in0 ) AHBIJZKLZAMUHNOZLZPUIAQLZPZQUKULUIUJQAUJMMN
      OQUHMMNUHCRZIJMBUNIGUACUCSUBMUDSUETUMUIQPQULQUIAUFTUIUGSS $.

    1wlkd.x $e |- ( ph -> X e. V ) $.
    1wlkd.y $e |- ( ph -> Y e. V ) $.
    $( Lemma 1 for ~ 1wlkd .  (Contributed by AV, 22-Jan-2021.) $)
    1wlkdlem1 $p |- ( ph -> P : ( 0 ... ( # ` F ) ) --> V ) $=
      ( cc0 chash cfv cfz co wf wcel cfzo c1 cs2 cword s2cld wrdf wceq caddc cz
      1z fzval3 ax-mp cs1 fveq2i s1len eqtri oveq2i c2 s2len df-2 3eqtr4i feq2d
      a1i mpbird syl feq1i sylibr ) ALCMNZOPZEFGUAZQZVGEBQAVHEUBRZVIAFGEJKUCVJV
      ILVHMNZSPZEVHQEVHUDVJVGVLEVHVGVLUEVJLTOPZLTTUFPZSPZVGVLTUGRVMVOUEUHLTUIUJ
      VFTLOVFDUKZMNTCVPMIULDUMUNUOVKVNLSVKUPVNFGUQURUNUOUSVAUTVBVCVGEBVHHVDVE
      $.

    1wlkd.l $e |- ( ( ph /\ X = Y ) -> ( I ` J ) = { X } ) $.
    1wlkd.j $e |- ( ( ph /\ X =/= Y ) -> { X , Y } C_ ( I ` J ) ) $.
    $( Lemma 2 for ~ 1wlkd .  (Contributed by AV, 22-Jan-2021.) $)
    1wlkdlem2 $p |- ( ph -> X e. ( I ` J ) ) $=
      ( cfv wcel wceq wa csn adantr snidg syl eleqtrrd wne cpr wss prssg mpbird
      wb syl2an2r simpld pm2.61dane ) AGEDOZPZGHAGHQZRGGSZUMAGUPPZUOAGFPZUQKGFU
      AUBTMUCAGHUDZRZUNHUMPZUTUNVARZGHUEUMUFZNAURUSHFPZVBVCUIKAVDUSLTGHUMFFUGUJ
      UHUKUL $.

    $( Lemma 3 for ~ 1wlkd .  (Contributed by AV, 22-Jan-2021.) $)
    1wlkdlem3 $p |- ( ph -> F e. Word dom I ) $=
      ( cfv wcel cdm cword 1wlkdlem2 elfvdm cs1 s1cl syl5eqel 3syl ) AGEDOPEDQZ
      PZCUERZPABCDEFGHIJKLMNSGEDTUFCEUAUGJEUEUBUCUD $.

    $d F k $.  $d I k $.  $d P k $.
    $( Lemma 4 for ~ 1wlkd .  (Contributed by AV, 22-Jan-2021.) $)
    1wlkdlem4 $p |- ( ph -> A. k e. ( 0 ..^ ( # ` F ) )
            if- ( ( P ` k ) = ( P ` ( k + 1 ) ) ,
                  ( I ` ( F ` k ) ) = { ( P ` k ) } ,
                  { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) $=
      ( cfv c1 co wceq cc0 caddc csn cpr wss wif chash cfzo wral cs1 fveq1i cvv
      cv wa wcel 1wlkdlem2 elfvexd s1fv syl syl5eq fveq2d adantr eqtrd wn df-ne
      wne sylan2br sseqtr4d ifpimpda wb s2fv0 s2fv1 eqeq12 eqeq2d preq12 sseq1d
      sneq ifpbi123d syl2anc mpbird c0ex oveq1 0p1e1 syl6eq wkslem2 mpdan ralsn
      cs2 sylibr fveq2i s1len eqtri oveq2i fzo01 a1i raleqdv ) ACULZBPZWPQUARZB
      PZSWPDPEPZWQUBSWQWSUCWTUDUEZCTDUFPZUGRZUHXACTUBZUHZATBPZQBPZSZTDPZEPZXFUB
      ZSZXFXGUCZXJUDZUEZXEAXOHISZXJHUBZSZHIUCZXJUDZUEZAXPXRXTAXPUMXJFEPZXQAXJYB
      SZXPAXIFEAXITFUIZPZFTDYDKUJAFUKUNYEFSAHEFABDEFGHIJKLMNOUOUPFUKUQURUSUTZVA
      NVBAXPVCZUMXSYBXJYGAHIVEXSYBUDHIVDOVFAYCYGYFVAVGVHAXFHSZXGISZXOYAVIAXFTHI
      WGZPZHTBYJJUJAHGUNYKHSLHIGVJURUSAXGQYJPZIQBYJJUJAIGUNYLISMHIGVKURUSYHYIUM
      ZXHXLXNXPXRXTXFHXGIVLYMXKXQXJYHXKXQSYIXFHVPVAVMYMXMXSXJXFXGHIVNVOVQVRVSXA
      XOCTVTWPTSZWRQSXAXOVIYNWRTQUARQWPTQUAWAWBWCWPTQBDEWDWEWFWHAXACXCXDXCXDSAX
      CTQUGRXDXBQTUGXBYDUFPQDYDUFKWIFWJWKWLWMWKWNWOVS $.

    $d G k $.
    1wlkd.v $e |- V = ( Vtx ` G ) $.
    1wlkd.i $e |- I = ( iEdg ` G ) $.
    $( In a graph with two vertices and an edge connecting these two vertices,
       to go from one vertex to the other vertex via this edge is a walk.  The
       two vertices need not be distinct (in the case of a loop).  (Contributed
       by AV, 22-Jan-2021.)  (Revised by AV, 23-Mar-2021.) $)
    1wlkd $p |- ( ph -> F ( Walks ` G ) P ) $=
      ( vk cfv wcel cwlks wbr cdm cword cc0 chash cfz co wf cv c1 caddc csn cpr
      wceq wss wif cfzo wral 1wlkdlem3 1wlkdlem1 1wlkdlem4 cvv wb 1vgrex iswlkg
      w3a 3syl mpbir3and ) ACBDUASUBZCEUCUDTZUECUFSZUGUHGBUIZRUJZBSZVNUKULUHBSZ
      UOVNCSESZVOUMUOVOVPUNVQUPUQRUEVLURUHUSZABCEFGHIJKLMNOUTABCFGHIJKLMVAABRCE
      FGHIJKLMNOVBAHGTDVCTVJVKVMVRVGVDLDHGPVEBRCDEGVCPQVFVHVI $.

    $( In a graph with two vertices and an edge connecting these two vertices,
       to go from one vertex to the other vertex via this edge is a trail.  The
       two vertices need not be distinct (in the case of a loop).  (Contributed
       by Alexander van der Vekens, 3-Dec-2017.)  (Revised by AV, 22-Jan-2021.)
       (Revised by AV, 23-Mar-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
    1trld $p |- ( ph -> F ( Trails ` G ) P ) $=
      ( cfv wbr ccnv cwlks wfun ctrls 1wlkd cs1 funcnvs1 cnveqi mpbir sylanblrc
      funeqi istrl ) ACBDUARSCTZUBZCBDUCRSABCDEFGHIJKLMNOPQUDUMFUEZTZUBFUFULUOC
      UNKUGUJUHBCDUKUI $.

    $( In a graph with two vertices and an edge connecting these two vertices,
       to go from one vertex to the other vertex via this edge is a path.  The
       two vertices need not be distinct (in the case of a loop) - in this
       case, however, the path is not a simple path.  (Contributed by Alexander
       van der Vekens, 3-Dec-2017.)  (Revised by AV, 22-Jan-2021.)  (Revised by
       AV, 23-Mar-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
    1pthd $p |- ( ph -> F ( Paths ` G ) P ) $=
      ( cfv wbr cima ctrls cpths 1trld wa chash cfzo cres ccnv wfun cc0 cpr cin
      c1 co c0 wceq simpr 1pthdlem1 a1i 1pthdlem2 ispth syl3anbrc mpdan ) ACBDU
      ARSZCBDUBRSZABCDEFGHIJKLMNOPQUCAVDUDZVDBUMCUERZUFUNZUGUHUIZBUJVGUKTBVHTUL
      UOUPZVEAVDUQVIVFBCFHIJKURUSVJVFBCFHIJKUTUSBCDVAVBVC $.

    $( In a graph with two vertices and an edge connecting these two vertices,
       to go from one vertex to the other vertex via this edge is a path from
       one of these vertices to the other vertex.  The two vertices need not be
       distinct (in the case of a loop) - in this case, however, the path is
       not a simple path.  (Contributed by Alexander van der Vekens,
       4-Dec-2017.)  (Revised by AV, 22-Jan-2021.)  (Revised by AV,
       23-Mar-2021.) $)
    1pthond $p |- ( ph -> F ( X ( PathsOn ` G ) Y ) P ) $=
      ( cfv wbr cvv cpthson co ctrlson cpths cwlkson ctrls cwlks cc0 wceq chash
      1wlkd cs2 fveq1i s2fv0 syl5eq syl c1 cs1 fveq2i s1len eqtri fveq12i s2fv1
      wcel wa w3a wb wlkv 3syl jca31 iswlkon mpbir3and 1trld istrlson mpbir2and
      3simpc 1pthd wi adantl simpl ex mpcom ispthson ) ACBHIDUARUBSZCBHIDUCRUBS
      ZCBDUDRSZAWECBHIDUERUBSZCBDUFRSZAWGCBDUGRSZUHBRZHUIZCUJRZBRZIUIZABCDEFGHI
      JKLMNOPQUKZAHGVDZWKLWPWJUHHIULZRHUHBWQJUMHIGUNUOUPAWMUQWQRZIWLUQBWQJWLFUR
      ZUJRUQCWSUJKUSFUTVAVBAIGVDZWRIUIMHIGVCUPUOAWPWTVECTVDZBTVDZVEZVEZWGWIWKWN
      VFVGAWPWTXCLMAWIDTVDZXAXBVFZXCWOBCDVHZXEXAXBVPZVIVJZHIBTCDGTPVKUPVLABCDEF
      GHIJKLMNOPQVMAXDWEWGWHVEVGXIHIBTCDGTPVNUPVOABCDEFGHIJKLMNOPQVQAXDWDWEWFVE
      VGWIAXDWOWIXFXCAXDVRXGXHXCAXDXCAVEWPWTXCAWPXCLVSAWTXCMVSXCAVTVJWAVIWBHIBT
      CDGTPWCUPVO $.
  $}

  ${
    upgr1wlkd.p $e |- P = <" X Y "> $.
    upgr1wlkd.f $e |- F = <" J "> $.
    upgr1wlkd.x $e |- ( ph -> X e. ( Vtx ` G ) ) $.
    upgr1wlkd.y $e |- ( ph -> Y e. ( Vtx ` G ) ) $.
    upgr1wlkd.j $e |- ( ph -> ( ( iEdg ` G ) ` J ) = { X , Y } ) $.
    $( Lemma 1 for ~ upgr1wlkd .  (Contributed by AV, 22-Jan-2021.) $)
    upgr1wlkdlem1 $p |- ( ( ph /\ X = Y ) -> ( ( iEdg ` G ) ` J ) = { X } ) $=
      ( wceq ciedg cfv csn cpr wi wb preq2 eqeq2d eqcoms wa simpl dfsn2 syl6eqr
      ex syl6bi com13 mpd imp ) AFGMZEDNOOZFPZMZAUMFGQZMZULUORLULUQAUOULUQUMFFQ
      ZMZAUORUQUSSGFGFMUPURUMGFFTUAUBUSAUOUSAUCUMURUNUSAUDFUEUFUGUHUIUJUK $.

    $( Lemma 2 for ~ upgr1wlkd .  (Contributed by AV, 22-Jan-2021.) $)
    upgr1wlkdlem2 $p |- ( ( ph /\ X =/= Y )
                           -> { X , Y } C_ ( ( iEdg ` G ) ` J ) ) $=
      ( wne ciedg cfv cpr wceq wss wa ssid wb sseq2 adantl mpbiri mpidan ) AFGM
      ZEDNOOZFGPZQZUHUGRZLAUFSZUISUJUHUHRZUHTUIUJULUAUKUGUHUHUBUCUDUE $.

    upgr1wlkd.g $e |- ( ph -> G e. UPGraph ) $.
    $( In a pseudograph with two vertices and an edge connecting these two
       vertices, to go from one vertex to the other vertex via this edge is a
       walk.  The two vertices need not be distinct (in the case of a loop).
       (Contributed by AV, 22-Jan-2021.) $)
    upgr1wlkd $p |- ( ph -> F ( Walks ` G ) P ) $=
      ( ciedg cfv cvtx upgr1wlkdlem1 upgr1wlkdlem2 eqid 1wlkd ) ABCDDNOZEDPOZFG
      HIJKABCDEFGHIJKLQABCDEFGHIJKLRUBSUAST $.

    $( In a pseudograph with two vertices and an edge connecting these two
       vertices, to go from one vertex to the other vertex via this edge is a
       trail.  The two vertices need not be distinct (in the case of a loop).
       (Contributed by AV, 22-Jan-2021.) $)
    upgr1trld $p |- ( ph -> F ( Trails ` G ) P ) $=
      ( ciedg cfv cvtx upgr1wlkdlem1 upgr1wlkdlem2 eqid 1trld ) ABCDDNOZEDPOZFG
      HIJKABCDEFGHIJKLQABCDEFGHIJKLRUBSUAST $.

    $( In a pseudograph with two vertices and an edge connecting these two
       vertices, to go from one vertex to the other vertex via this edge is a
       path.  The two vertices need not be distinct (in the case of a loop) -
       in this case, however, the path is not a simple path.  (Contributed by
       AV, 22-Jan-2021.) $)
    upgr1pthd $p |- ( ph -> F ( Paths ` G ) P ) $=
      ( ciedg cfv cvtx upgr1wlkdlem1 upgr1wlkdlem2 eqid 1pthd ) ABCDDNOZEDPOZFG
      HIJKABCDEFGHIJKLQABCDEFGHIJKLRUBSUAST $.

    $( In a pseudograph with two vertices and an edge connecting these two
       vertices, to go from one vertex to the other vertex via this edge is a
       path from one of these vertices to the other vertex.  The two vertices
       need not be distinct (in the case of a loop) - in this case, however,
       the path is not a simple path.  (Contributed by AV, 22-Jan-2021.) $)
    upgr1pthond $p |- ( ph -> F ( X ( PathsOn ` G ) Y ) P ) $=
      ( ciedg cfv cvtx upgr1wlkdlem1 upgr1wlkdlem2 eqid 1pthond ) ABCDDNOZEDPOZ
      FGHIJKABCDEFGHIJKLQABCDEFGHIJKLRUBSUAST $.
  $}

  ${
    lppthon.i $e |- I = ( iEdg ` G ) $.
    $( A loop (which is an edge at index ` J ` ) induces a path of length 1
       from a vertex to itself in a hypergraph.  (Contributed by AV,
       1-Feb-2021.) $)
    lppthon $p |- ( ( G e. UHGraph /\ J e. dom I /\ ( I ` J ) = { A } )
                    -> <" J "> ( A ( PathsOn ` G ) A ) <" A A "> ) $=
      ( cuhgr wcel cdm cfv csn wceq w3a cs2 cs1 cvtx eqid lpvtx simpl3 wne cpr
      wss wi eqneqall ax-mp adantl 1pthond ) BFGZDCHGZDCIZAJKZLZAAMZDNZBCDBOIZA
      AULPUMPABCDEQZUOUGUHUJAAKZRAASZAATUIUAZUKUPUQURUBAPURAAUCUDUEUNPEUF $.

    $( A loop (which is an edge at index ` J ` ) induces a cycle of length 1 in
       a hypergraph.  (Contributed by AV, 2-Feb-2021.)  (Proof shortened by AV,
       30-Oct-2021.) $)
    lp1cycl $p |- ( ( G e. UHGraph /\ J e. dom I /\ ( I ` J ) = { A } )
                    -> <" J "> ( Cycles ` G ) <" A A "> ) $=
      ( cuhgr wcel cdm cfv csn wceq w3a cs1 cs2 cpths wbr cc0 chash syl c1 cvtx
      ccycls cpthson lppthon pthonispth lpvtx s2fv1 s1len fveq2i s2fv0 3eqtr4rd
      co a1i iscycl sylanbrc ) BFGDCHGDCIAJKLZDMZAANZBOIPZQURIZUQRIZURIZKZUQURB
      UBIPUPUQURAABUCIULPUSABCDEUDAAURUQBUESUPABUAIZGZVCABCDEUFVETURIZAVBUTAAVD
      UGVBVFKVEVATURDUHUIUMAAVDUJUKSURUQBUNUO $.
  $}

  ${
    $d A e f i p $.  $d B e f i p $.  $d G e f i p $.  $d V e i $.
    1pthon2v.v $e |- V = ( Vtx ` G ) $.
    1pthon2v.e $e |- E = ( Edg ` G ) $.
    $( For each pair of adjacent vertices there is a path of length 1 from one
       vertex to the other in a hypergraph.  (Contributed by Alexander van der
       Vekens, 4-Dec-2017.)  (Revised by AV, 22-Jan-2021.) $)
    1pthon2v $p |- ( ( G e. UHGraph /\ ( A e. V /\ B e. V )
                          /\ E. e e. E { A , B } C_ e )
                        -> E. f E. p f ( A ( PathsOn ` G ) B ) p ) $=
      ( vi wcel wa cv cfv wbr wex wi wceq adantl cuhgr cpr wss wrex w3a cpthson
      co simpl anim2i 3adant3 0pthonv syl wb oveq2 eqcoms 2exbidv adantr mpbird
      breqd wne ciedg cdm cedg eleq2i eqid uhgredgiedgb syl5bb 3ad2ant1 cs1 cvv
      ex cword cs2 s1cli s2cli pm3.2i simpl2l simpl2r csn eqneqall 3ad2ant3 imp
      com12 sseq2 biimpa 1pthond breq12 spc2egv mpsyl exp44 rexlimdv 3exp com34
      sylbid 3imp pm2.61ine ) FUALZAGLZBGLZMZABUBZCNZUCZCEUDZUEZDNZHNZABFUFOZUG
      ZPZHQDQZRABABSZXEXKXLXEMZXKXFXGAAXHUGZPZHQDQZXMWQWRMZXPXEXQXLWQWTXQXDWTWR
      WQWRWSUHUIUJTWRXPWQDFAGHIUKTULXLXKXPUMXEXLXJXODHXLXIXNXFXGXIXNSBABAAXHUNU
      OUSUPUQURVKXEABUTZXKWQWTXDXRXKRWQWTXRXDXKWQWTXRXDXKRWQWTXRUEZXCXKCEXSXBEL
      ZXBKNZFVAOZOZSZKYBVBZUDZXCXKRZWQWTXTYFUMXRXTXBFVCOZLWQYFEYHXBJVDKXBFYBYBV
      EZVFVGVHXSYDYGKYEXSYAYELZYDXCXKYAVIZVJVLZLZABVMZYLLZMXSYJYDMZXCMZMZYKYNXI
      PZXKYMYOYAVNABVOVPYRYNYKFYBYAGABYNVEYKVEWRWSWQXRYQVQWRWSWQXRYQVRYRXLYCAVS
      SZXSXLYTRZYQXRWQUUAWTXLXRYTYTABVTWCWAUQWBYRXAYCUCZXRYQUUBXSYPXCUUBYDXCUUB
      UMYJXBYCXAWDTWETUQIYIWFXJYSDHYKYNYLYLXFYKXGYNXIWGWHWIWJWKWNWKWLWMWOWCWP
      $.

    $d E e $.
    $( For each pair of adjacent vertices there is a path of length 1 from one
       vertex to the other in a hypergraph.  (Contributed by Alexander van der
       Vekens, 4-Dec-2017.)  (Revised by AV, 22-Jan-2021.)  (Proof shortened by
       AV, 15-Feb-2021.) $)
    1pthon2ve $p |- ( ( G e. UHGraph /\ ( A e. V /\ B e. V )
                        /\ { A , B } e. E )
                      -> E. f E. p f ( A ( PathsOn ` G ) B ) p ) $=
      ( ve cuhgr wcel wa cpr w3a cv wss wrex cpthson wex cfv co wbr id wb sseq2
      wceq adantl ssid a1i rspcedvd 3anim3i 1pthon2v syl ) EKLZAFLBFLMZABNZDLZO
      UOUPUQJPZQZJDRZOCPGPABESUAUBUCGTCTURVAUOUPURUTUQUQQZJUQDURUDUSUQUGUTVBUEU
      RUSUQUQUFUHVBURUQUIUJUKULABJCDEFGHIUMUN $.
  $}

  ${
    wlk2v2e.i $e |- I = <" { X , Y } "> $.
    wlk2v2e.f $e |- F = <" 0 0 "> $.
    $( Lemma 1 for ~ wlk2v2e : ` F ` is a length 2 word of over ` { 0 } ` , the
       domain of the singleton word ` I ` .  (Contributed by Alexander van der
       Vekens, 22-Oct-2017.)  (Revised by AV, 9-Jan-2021.) $)
    wlk2v2elem1 $p |- F e. Word dom I $=
      ( cc0 cs2 csn cword cdm wcel c0ex snid id s2cld ax-mp cpr cs1 dmeqi eqtri
      s1dm wrdeqi 3eltr4i ) GGHZGIZJZABKZJGUFLZUEUGLGMNUIGGUFUIOZUJPQFUHUFUHCDR
      ZSZKUFBULETUKUBUAUCUD $.

    $d F k $.  $d I k $.  $d P k $.
    wlk2v2e.x $e |- X e. _V $.
    wlk2v2e.y $e |- Y e. _V $.
    wlk2v2e.p $e |- P = <" X Y X "> $.
    $( Lemma 2 for ~ wlk2v2e :  The values of ` I ` after ` F ` are edges
       between two vertices enumerated by ` P ` .  (Contributed by Alexander
       van der Vekens, 22-Oct-2017.)  (Revised by AV, 9-Jan-2021.) $)
    wlk2v2elem2 $p |- A. k e. ( 0 ..^ ( # ` F ) )
                       ( I ` ( F ` k ) ) = { ( P ` k ) , ( P ` ( k + 1 ) ) } $=
      ( cfv c1 cpr wceq cc0 fveq1i ax-mp eqtri cvv cv caddc chash cfzo wral cs2
      co c2 cz wcel 0z s2fv0 fveq2i cs1 prex s1fv cs3 s3fv0 s3fv1 eqcomi 3eqtri
      preq12i s2fv1 prcom s3fv2 2wlklem mpbir2an cword s2cli eqeltri wrddm s2dm
      cdm dmeqi raleqi mpbir ) BUAZCLDLVQALVQMUBUGALNOZBPCUCLUDUGZUEVRBPMNZUEZW
      APCLZDLZPALZMALZNZOMCLZDLZWEUHALZNZOWCPDLZEFNZWFWBPDWBPPPUFZLZPPCWMHQPUIU
      JZWNPOUKPPUIULRSUMWKPWLUNZLZWLPDWPGQWLTUJWQWLOEFUOWLTUPRSZWFWLWDEWEFWDPEF
      EUQZLZEPAWSKQETUJZWTEOIEFETURRSWEMWSLZFMAWSKQFTUJXBFOJEFETUSRSZVBUTVAWHWK
      WLWJWGPDWGMWMLZPMCWMHQWOXDPOUKPPUIVCRSUMWRWLFENZWJEFVDWJXEWEFWIEXCWIUHWSL
      ZEUHAWSKQXAXFEOIEFETVERSVBUTSVAABDCVFVGVRBVSVTVSCVMZWMVMVTXGVSCTVHZUJXGVS
      OCWMXHHPPVIVJTCVKRUTCWMHVNPPVLVAVOVP $.

    $d G k $.  $d X k $.  $d Y k $.
    wlk2v2e.g $e |- G = <. { X , Y } , I >. $.
    $( In a graph with two vertices and one edge connecting these two vertices,
       to go from one vertex to the other and back to the first vertex via the
       same/only edge is a walk.  Notice that ` G ` is a simple graph (without
       loops) only if ` X =/= Y ` .  (Contributed by Alexander van der Vekens,
       22-Oct-2017.)  (Revised by AV, 8-Jan-2021.) $)
    wlk2v2e $p |- F ( Walks ` G ) P $=
      ( wcel cfv cvv cc0 chash cfz co c3 vk cupgr wbr cuspgr cpr cs1 cop opeq2i
      cwlks eqtri uspgr2v1e2w mp2an eqeltri uspgrupgr ax-mp cword wf cv c1 wceq
      cdm caddc cfzo wral w3a wlk2v2elem1 cs3 prid1 prid2 s3cl mp3an wrdf s3len
      fveq2i eqtr2i oveq2i feq2i mpbir c2 cs2 s2len cz fzoval 3m1e2 wlk2v2elem2
      cmin 3z 3pm3.2i cvtx prex s1cli opvtxfv ciedg opiedgfv upgriswlk mpbiri )
      CUBMZBACUINUCZCUDMWQCEFUEZWSUFZUGZUDCWSDUGZXALDWTWSGUHUJEOMFOMXAUDMIJEFOO
      UKULUMCUNUOWQWRBDVAUPMZPBQNZRSZWSAUQZUAURZBNDNXGANXGUSVBSANUEUTUAPXDVCSVD
      ZVEXCXFXHBDEFGHVFXFPTVCSZWSAUQZXJPAQNZVCSZWSAUQZAWSUPZMXMAEFEVGZXNKEWSMZF
      WSMXPXOXNMEFIVHZEFJVIXQEFEWSVJVKUMWSAVLUOXIXLWSATXKPVCXKXOQNTAXOQKVNEFEVM
      VOVPVQVRXEXIWSAXEPVSRSZXIXDVSPRXDPPVTZQNVSBXSQHVNPPWAUJVPXIPTUSWFSZRSZXRT
      WBMXIYAUTWGPTWCUOXTVSPRWDVPVOUJVQVRAUABDEFGHIJKWEWHAUABCDWSCWINXBWINZWSCX
      BWILVNWSOMZDOUPZMZYBWSUTEFWJZDWTYDGWSWKUMZDWSOYDWLULVOCWMNXBWMNZDCXBWMLVN
      YCYEYHDUTYFYGDWSOYDWNULVOWOWPUO $.

    $( A walk which is not a trail:  In a graph with two vertices and one edge
       connecting these two vertices, to go from one vertex to the other and
       back to the first vertex via the same/only edge is a walk, see
       ~ wlk2v2e , but not a trail.  Notice that ` G ` is a simple graph
       (without loops) only if ` X =/= Y ` .  (Contributed by Alexander van der
       Vekens, 22-Oct-2017.)  (Revised by AV, 8-Jan-2021.)  (Proof shortened by
       AV, 30-Oct-2021.) $)
    ntrl2v2e $p |- -. F ( Trails ` G ) P $=
      ( cfv wbr wfun wa cc0 cz c1 0z ctrls cwlks ccnv wcel w3a wne 3pm3.2i 0ne1
      wn cs2 cop cpr wceq s2prop mp2an eqtri fpropnf1 simpri intnan istrl mtbir
      1z ) BACUAMNBACUBMNZBUCOZPVDVCBOZVDUIZQRUDZSRUDZVGUEQSUFVEVFPVGVHVGTVBTUG
      UHRBRRQSQBQQUJZQQUKSQUKULZHVGVGVIVJUMTTQQRUNUOUPUQUOURUSABCUTVA $.
  $}

  ${
    3wlkd.p $e |- P = <" A B C D "> $.
    3wlkd.f $e |- F = <" J K L "> $.
    $( Lemma 1 for ~ 3wlkd .  (Contributed by AV, 7-Feb-2021.) $)
    3wlkdlem1 $p |- ( # ` P ) = ( ( # ` F ) + 1 ) $=
      ( chash cfv cs4 c1 caddc co fveq2i c3 eqtri s4len cs3 s3len eqtr2i oveq1i
      c4 df-4 ) ELMABCDNZLMZFLMZOPQZEUHLJRUISOPQZUKUIUFULABCDUAUGTSUJOPUJGHIUBZ
      LMSFUMLKRGHIUCUDUETT $.

    $( Lemma 2 for ~ 3wlkd .  (Contributed by AV, 7-Feb-2021.) $)
    3wlkdlem2 $p |- ( 0 ..^ ( # ` F ) ) = { 0 , 1 , 2 } $=
      ( cc0 chash cfv cfzo co c3 c1 c2 eqtri ctp fveq2i s3len oveq2i fzo0to3tp
      cs3 ) LFMNZOPLQOPLRSUAUGQLOUGGHIUFZMNQFUHMKUBGHIUCTUDUET $.

    $d A k $.  $d B k $.  $d C k $.  $d D k $.  $d J k $.  $d K k $.  $d J k $.
    $d L k $.  $d V k $.
    3wlkd.s $e |- ( ph
                     -> ( ( A e. V /\ B e. V ) /\ ( C e. V /\ D e. V ) ) ) $.
    $( Lemma 3 for ~ 3wlkd .  (Contributed by Alexander van der Vekens,
       10-Nov-2017.)  (Revised by AV, 7-Feb-2021.) $)
    3wlkdlem3 $p |- ( ph -> ( ( ( P ` 0 ) = A /\ ( P ` 1 ) = B )
                            /\ ( ( P ` 2 ) = C /\ ( P ` 3 ) = D ) ) ) $=
      ( wcel wa cfv wceq fveq1i syl5eq cc0 c1 c2 c3 cs4 s4fv0 s4fv1 s4fv2 s4fv3
      anim12i syl ) ABKOZCKOZPZDKOZEKOZPZPUAFQZBRZUBFQZCRZPZUCFQZDRZUDFQZERZPZP
      NUNVBUQVGULUSUMVAULURUABCDEUEZQBUAFVHLSBCDEKUFTUMUTUBVHQCUBFVHLSBCDEKUGTU
      JUOVDUPVFUOVCUCVHQDUCFVHLSBCDEKUHTUPVEUDVHQEUDFVHLSBCDEKUITUJUJUK $.

    $d F k $.  $d P k $.
    $( Lemma 4 for ~ 3wlkd .  (Contributed by Alexander van der Vekens,
       11-Nov-2017.)  (Revised by AV, 7-Feb-2021.) $)
    3wlkdlem4 $p |- ( ph -> A. k e. ( 0 ... ( # ` F ) ) ( P ` k ) e. V ) $=
      ( wcel cc0 c3 wa wceq cv cfv c1 cpr wral c2 chash cfz co 3wlkdlem3 eleq1d
      simpl simpr anbi12d biimparc cvv c0ex 1ex pm3.2i fveq2 ralprg mp1i mpbird
      wb ex 2ex 3ex im2anan9 sylc cun cs3 fveq2i s3len eqtri oveq2i fz0to3un2pr
      raleqi ralunb bitri sylibr ) AGUAZFUBZLPZGQUCUDZUEZWCGUFRUDZUEZSZWCGQHUGU
      BZUHUIZUEZABLPZCLPZSZDLPZELPZSZSQFUBZBTZUCFUBZCTZSZUFFUBZDTZRFUBZETZSZSWH
      OABCDEFHIJKLMNOUJWNXBWEWQXGWGWNXBWEWNXBSZWEWRLPZWTLPZSZXBXKWNXBXIWLXJWMXB
      WRBLWSXAULUKXBWTCLWSXAUMUKUNUOQUPPZUCUPPZSWEXKVDXHXLXMUQURUSWCXIXJGQUCUPU
      PWAQTWBWRLWAQFUTUKWAUCTWBWTLWAUCFUTUKVAVBVCVEWQXGWGWQXGSZWGXCLPZXELPZSZXG
      XQWQXGXOWOXPWPXGXCDLXDXFULUKXGXEELXDXFUMUKUNUOUFUPPZRUPPZSWGXQVDXNXRXSVFV
      GUSWCXOXPGUFRUPUPWAUFTWBXCLWAUFFUTUKWARTWBXELWARFUTUKVAVBVCVEVHVIWKWCGWDW
      FVJZUEWHWCGWJXTWJQRUHUIXTWIRQUHWIIJKVKZUGUBRHYAUGNVLIJKVMVNVOVPVNVQWCGWDW
      FVRVSVT $.

    $d F k $.  $d P k $.
    3wlkd.n $e |- ( ph -> ( ( A =/= B /\ A =/= C )
                          /\ ( B =/= C /\ B =/= D ) /\ C =/= D ) ) $.
    $( Lemma 5 for ~ 3wlkd .  (Contributed by Alexander van der Vekens,
       11-Nov-2017.)  (Revised by AV, 7-Feb-2021.) $)
    3wlkdlem5 $p |- ( ph -> A. k e. ( 0 ..^ ( # ` F ) )
                             ( P ` k ) =/= ( P ` ( k + 1 ) ) ) $=
      ( cc0 c1 wne c2 cfv c3 w3a cv caddc co chash cfzo wral wa simpl 3anim123i
      id syl wceq wb 3wlkdlem3 simpr neeq12d adantr adantl 3anbi123d mpbird ctp
      3wlkdlem2 raleqi c0ex 1ex 2ex fveq2 oveq1 0p1e1 syl6eq fveq2d 1p1e2 2p1e3
      raltp bitri sylibr ) AQFUAZRFUAZSZWATFUAZSZWCUBFUAZSZUCZGUDZFUAZWHRUEUFZF
      UAZSZGQHUGUAUHUFZUIZAWGBCSZCDSZDESZUCZAWOBDSZUJZWPCESZUJZWQUCWRPWTWOXBWPW
      QWQWOWSUKWPXAUKWQUMULUNAVTBUOZWACUOZUJZWCDUOZWEEUOZUJZUJZWGWRUPABCDEFHIJK
      LMNOUQXIWBWOWDWPWFWQXEWBWOUPXHXEVTBWACXCXDUKXCXDURZUSUTXIWACWCDXEXDXHXJUT
      XHXFXEXFXGUKZVAUSXHWFWQUPXEXHWCDWEEXKXFXGURUSVAVBUNVCWNWLGQRTVDZUIWGWLGWM
      XLBCDEFHIJKMNVEVFWLWBWDWFGQRTVGVHVIWHQUOZWIVTWKWAWHQFVJXMWJRFXMWJQRUEUFRW
      HQRUEVKVLVMVNUSWHRUOZWIWAWKWCWHRFVJXNWJTFXNWJRRUEUFTWHRRUEVKVOVMVNUSWHTUO
      ZWIWCWKWEWHTFVJXOWJUBFXOWJTRUEUFUBWHTRUEVKVPVMVNUSVQVRVS $.

    $d F j k $.  $d P j $.
    $( Lemma 1 for ~ 3pthd .  (Contributed by AV, 9-Feb-2021.) $)
    3pthdlem1 $p |- ( ph -> A. k e. ( 0 ..^ ( # ` P ) )
                            A. j e. ( 1 ..^ ( # ` F ) )
                            ( k =/= j -> ( P ` k ) =/= ( P ` j ) ) ) $=
      ( c1 wne c2 cv cfv wi wa cc0 chash cfzo co wral c3 wceq 3wlkdlem3 simpr1l
      w3a wb simpl adantr simpr neeq12d mpbird a1d simpr1r adantl jca eqid 2a1i
      necon3d simpr2l necomd simpr2r simp3 ancoms syl2anc cpr cun c4 cs4 fveq2i
      jca31 s4len eqtri oveq2i fzo0to42pr raleqi ralunb c0ex neeq1 fveq2 neeq1d
      1ex imbi12d anbi12d ralpr 2ex 3ex anbi12i 3bitri sylibr cs3 s3len fzo13pr
      neeq2 neeq2d bitri ralbii ) AHUAZRSZXFFUBZRFUBZSZUCZXFTSZXHTFUBZSZUCZUDZH
      UEFUFUBZUGUHZUIZXFGUAZSZXHXTFUBZSZUCZGRIUFUBZUGUHZUIZHXRUIAUERSZUEFUBZXIS
      ZUCZUETSZYIXMSZUCZUDZRRSZXIXISZUCZRTSZXIXMSZUCZUDZUDZTRSZXMXISZUCZTTSZXMX
      MSZUCZUDZUJRSZUJFUBZXISZUCZUJTSZUULXMSZUCZUDZUDZUDZXSAYIBUKZXICUKZUDZXMDU
      KZUULEUKZUDZUDZBCSZBDSZUDZCDSZCESZUDZDESZUNZUUTABCDEFIJKLMNOPULQUVGUVOUDZ
      YOUUBUUSUVPYKYNUVPYJYHUVPYJUVHUVHUVIUVMUVNUVGUMUVGYJUVHUOUVOUVGYIBXICUVCU
      VAUVFUVAUVBUPUQZUVCUVBUVFUVAUVBURUQZUSUQUTVAUVPYMYLUVPYMUVIUVHUVIUVMUVNUV
      GVBUVGYMUVIUOUVOUVGYIBXMDUVQUVFUVDUVCUVDUVEUPVCZUSUQUTVAVDUVPYRUUAUVPXIXI
      RRRRUKUVPXIXIUKRVEVFVGUVPYTYSUVPYTUVKUVKUVLUVJUVNUVGVHUVGYTUVKUOUVOUVGXIC
      XMDUVRUVSUSUQUTZVAVDUVPUUFUUIUURUVPUUEUUDUVPXIXMUVTVIVAUVPXMXMTTTTUKUVPXM
      XMUKTVEVFVGUVPUUNUUQUVPUUMUUKUVPXIUULUVPXIUULSZUVLUVKUVLUVJUVNUVGVJUVGUWA
      UVLUOUVOUVGXICUULEUVRUVFUVEUVCUVDUVEURVCUSUQUTVIVAUVPUUPUUOUVPUUPEDSZUVOU
      WBUVGUVODEUVJUVMUVNVKVIVCUVGUUPUWBUOZUVOUVFUWCUVCUVEUVDUWCUVEUVDUDUULEXMD
      UVEUVDUPUVEUVDURUSVLVCUQUTVAVDVSVSVMXSXPHUERVNZTUJVNZVOZUIXPHUWDUIZXPHUWE
      UIZUDUUTXPHXRUWFXRUEVPUGUHUWFXQVPUEUGXQBCDEVQZUFUBVPFUWIUFNVRBCDEVTWAWBWC
      WAWDXPHUWDUWEWEUWGUUCUWHUUSXPYOUUBHUERWFWJXFUEUKZXKYKXOYNUWJXGYHXJYJXFUER
      WGUWJXHYIXIXFUEFWHZWIWKUWJXLYLXNYMXFUETWGUWJXHYIXMUWKWIWKWLXFRUKZXKYRXOUU
      AUWLXGYPXJYQXFRRWGUWLXHXIXIXFRFWHZWIWKUWLXLYSXNYTXFRTWGUWLXHXIXMUWMWIWKWL
      WMXPUUJUURHTUJWNWOXFTUKZXKUUFXOUUIUWNXGUUDXJUUEXFTRWGUWNXHXMXIXFTFWHZWIWK
      UWNXLUUGXNUUHXFTTWGUWNXHXMXMUWOWIWKWLXFUJUKZXKUUNXOUUQUWPXGUUKXJUUMXFUJRW
      GUWPXHUULXIXFUJFWHZWIWKUWPXLUUOXNUUPXFUJTWGUWPXHUULXMUWQWIWKWLWMWPWQWRYGX
      PHXRYGYDGRTVNZUIXPYDGYFUWRYFRUJUGUHUWRYEUJRUGYEJKLWSZUFUBUJIUWSUFOVRJKLWT
      WAWBXAWAWDYDXKXOGRTWJWNXTRUKZYAXGYCXJXTRXFXBUWTYBXIXHXTRFWHXCWKXTTUKZYAXL
      YCXNXTTXFXBUXAYBXMXHXTTFWHXCWKWMXDXEWR $.

    $d I k $.
    3wlkd.e $e |- ( ph -> ( { A , B } C_ ( I ` J )
                          /\ { B , C } C_ ( I ` K )
                          /\ { C , D } C_ ( I ` L ) ) ) $.
    $( Lemma 6 for ~ 3wlkd .  (Contributed by AV, 7-Feb-2021.) $)
    3wlkdlem6 $p |- ( ph
                 -> ( A e. ( I ` J ) /\ B e. ( I ` K ) /\ C e. ( I ` L ) ) ) $=
      ( cfv wcel cpr w3a cc0 c1 c2 c3 wceq wa 3wlkdlem3 wb preq12 sseq1d adantr
      wss ad2ant2lr adantl 3anbi123d syl5ibrcom mpd fvex simpl sylbir 3anim123i
      prss syl eleq1 bicomd mpbird ) ABIHRZSZCJHRZSZDKHRZSZUAZUBFRZVHSZUCFRZVJS
      ZUDFRZVLSZUAZAVOVQTZVHUMZVQVSTZVJUMZVSUEFRZTZVLUMZUAZWAAVOBUFZVQCUFZUGZVS
      DUFZWFEUFZUGZUGZWIABCDEFGIJKLMNOUHZAWIWPBCTZVHUMZCDTZVJUMZDETZVLUMZUAQWPW
      CWSWEXAWHXCWLWCWSUIWOWLWBWRVHVOVQBCUJUKULWPWDWTVJWKWMWDWTUFWJWNVQVSCDUJUN
      UKWOWHXCUIWLWOWGXBVLVSWFDEUJUKUOUPUQURWCVPWEVRWHVTWCVPVQVHSZUGVPVOVQVHUBF
      USUCFUSZVCVPXDUTVAWEVRVSVJSZUGVRVQVSVJXEUDFUSZVCVRXFUTVAWHVTWFVLSZUGVTVSW
      FVLXGUEFUSVCVTXHUTVAVBVDAWPVNWAUIWQWPWAVNWPVPVIVRVKVTVMWLVPVIUIZWOWJXIWKV
      OBVHVEULULWLVRVKUIZWOWKXJWJVQCVJVEUOULWOVTVMUIZWLWMXKWNVSDVLVEULUOUPVFVDV
      G $.

    $( Lemma 7 for ~ 3wlkd .  (Contributed by AV, 7-Feb-2021.) $)
    3wlkdlem7 $p |- ( ph -> ( J e. _V /\ K e. _V /\ L e. _V ) ) $=
      ( cfv wcel cvv w3a 3wlkdlem6 elfvex 3anim123i syl ) ABIHRSZCJHRSZDKHRSZUA
      ITSZJTSZKTSZUAABCDEFGHIJKLMNOPQUBUFUIUGUJUHUKBIHUCCJHUCDKHUCUDUE $.

    $( Lemma 8 for ~ 3wlkd .  (Contributed by Alexander van der Vekens,
       12-Nov-2017.)  (Revised by AV, 7-Feb-2021.) $)
    3wlkdlem8 $p |- ( ph
                    -> ( ( F ` 0 ) = J /\ ( F ` 1 ) = K /\ ( F ` 2 ) = L ) ) $=
      ( cfv wceq cvv cc0 cs3 c1 c2 w3a wcel 3wlkdlem7 s3fv0 s3fv1 3anim123i syl
      s3fv2 fveq1i eqeq1i 3anbi123i sylibr ) AUAIJKUBZRZISZUCUQRZJSZUDUQRZKSZUE
      ZUAGRZISZUCGRZJSZUDGRZKSZUEAITUFZJTUFZKTUFZUEVDABCDEFGHIJKLMNOPQUGVKUSVLV
      AVMVCIJKTUHIJKTUIIJKTULUJUKVFUSVHVAVJVCVEURIUAGUQNUMUNVGUTJUCGUQNUMUNVIVB
      KUDGUQNUMUNUOUP $.

    $( Lemma 9 for ~ 3wlkd .  (Contributed by AV, 7-Feb-2021.) $)
    3wlkdlem9 $p |- ( ph -> ( { A , B } C_ ( I ` ( F ` 0 ) )
                            /\ { B , C } C_ ( I ` ( F ` 1 ) )
                            /\ { C , D } C_ ( I ` ( F ` 2 ) ) ) ) $=
      ( cfv wss wb cpr cc0 c1 w3a wceq 3wlkdlem8 fveq2 sseq2d 3ad2ant1 3ad2ant2
      c2 3ad2ant3 3anbi123d syl mpbird ) ABCUAZUBGRZHRZSZCDUAZUCGRZHRZSZDEUAZUK
      GRZHRZSZUDZUPIHRZSZUTJHRZSZVDKHRZSZUDZQAUQIUEZVAJUEZVEKUEZUDZVHVOTABCDEFG
      HIJKLMNOPQUFVSUSVJVCVLVGVNVPVQUSVJTVRVPURVIUPUQIHUGUHUIVQVPVCVLTVRVQVBVKU
      TVAJHUGUHUJVRVPVGVNTVQVRVFVMVDVEKHUGUHULUMUNUO $.

    $( Lemma 10 for ~ 3wlkd .  (Contributed by Alexander van der Vekens,
       12-Nov-2017.)  (Revised by AV, 7-Feb-2021.) $)
    3wlkdlem10 $p |- ( ph -> A. k e. ( 0 ..^ ( # ` F ) )
                    { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) $=
      ( cfv c1 cc0 cpr wss c2 c3 w3a cv caddc co chash cfzo wral 3wlkdlem9 wceq
      3wlkdlem3 preq12 adantr sseq1d simplr simprl preq12d adantl 3anbi123d syl
      wa wb mpbird ctp 3wlkdlem2 raleqi 1ex 2ex fveq2 oveq1 0p1e1 syl6eq fveq2d
      c0ex sseq12d 1p1e2 2p1e3 raltp bitri sylibr ) AUAFSZTFSZUBZUAHSZISZUCZWFU
      DFSZUBZTHSZISZUCZWKUEFSZUBZUDHSZISZUCZUFZGUGZFSZXBTUHUIZFSZUBZXBHSZISZUCZ
      GUAHUJSUKUIZULZAXABCUBZWIUCZCDUBZWNUCZDEUBZWSUCZUFZABCDEFHIJKLMNOPQRUMAWE
      BUNZWFCUNZVEZWKDUNZWPEUNZVEZVEZXAXRVFABCDEFHJKLMNOPUOYEWJXMWOXOWTXQYEWGXL
      WIYAWGXLUNYDWEWFBCUPUQURYEWLXNWNYEWFCWKDXSXTYDUSYAYBYCUTVAURYEWQXPWSYDWQX
      PUNYAWKWPDEUPVBURVCVDVGXKXIGUATUDVHZULXAXIGXJYFBCDEFHJKLNOVIVJXIWJWOWTGUA
      TUDVRVKVLXBUAUNZXFWGXHWIYGXCWEXEWFXBUAFVMYGXDTFYGXDUATUHUITXBUATUHVNVOVPV
      QVAYGXGWHIXBUAHVMVQVSXBTUNZXFWLXHWNYHXCWFXEWKXBTFVMYHXDUDFYHXDTTUHUIUDXBT
      TUHVNVTVPVQVAYHXGWMIXBTHVMVQVSXBUDUNZXFWQXHWSYIXCWKXEWPXBUDFVMYIXDUEFYIXD
      UDTUHUIUEXBUDTUHVNWAVPVQVAYIXGWRIXBUDHVMVQVSWBWCWD $.

    $d G k $.  $d ph k $.
    3wlkd.v $e |- V = ( Vtx ` G ) $.
    3wlkd.i $e |- I = ( iEdg ` G ) $.
    $( Construction of a walk from two given edges in a graph.  (Contributed by
       AV, 7-Feb-2021.)  (Revised by AV, 24-Mar-2021.) $)
    3wlkd $p |- ( ph -> F ( Walks ` G ) P ) $=
      ( vk cvv cword wcel cs4 s4cli eqeltri a1i cs3 s3cli chash cfv c1 caddc co
      wceq 3wlkdlem1 3wlkdlem10 3wlkdlem5 wa 1vgrex ad2antrr syl 3wlkdlem4 wlkd
      ) AFUAGHIMUBFUBUCZUDAFBCDEUEVFNBCDEUFUGUHGVFUDAGJKLUIVFOJKLUJUGUHFUKULGUK
      ULUMUNUOUPABCDEFGJKLNOUQUHABCDEFUAGIJKLMNOPQRURABCDEFUAGJKLMNOPQUSABMUDZC
      MUDZUTDMUDEMUDUTZUTHUBUDZPVGVJVHVIHBMSVAVBVCSTABCDEFUAGJKLMNOPVDVE $.

    $( A walk of length 3 from one vertex to another, different vertex via a
       third vertex.  (Contributed by AV, 8-Feb-2021.)  (Revised by AV,
       24-Mar-2021.) $)
    3wlkond $p |- ( ph -> F ( A ( WalksOn ` G ) D ) P ) $=
      ( cwlkson cfv co wbr cc0 clsw 3wlkd wlkonwlk1l wceq c1 wa c2 c3 3wlkdlem3
      simpll eqcomd syl cs4 fveq2i wcel fvex eleq1 mpbii lsws4 syl5req ad2antll
      cvv oveq12d breqd mpbird ) AGFBEHUAUBZUCZUDGFUEFUBZFUFUBZVKUCZUDAFGHABCDE
      FGHIJKLMNOPQRSTUGUHAVLVOGFABVMEVNVKAVMBUIZUJFUBCUIZUKZULFUBDUIZUMFUBZEUIZ
      UKZUKZBVMUIABCDEFGJKLMNOPUNZWCVMBVPVQWBUOUPUQAWCEVNUIZWDWAWEVRVSWAVNBCDEU
      RZUFUBZEFWFUFNUSWAEVGUTZWGEUIWAVTVGUTWHUMFVAVTEVGVBVCBCDEVGVDUQVEVFUQVHVI
      VJ $.

    3trld.n $e |- ( ph -> ( J =/= K /\ J =/= L /\ K =/= L ) ) $.
    $( Construction of a trail from two given edges in a graph.  (Contributed
       by Alexander van der Vekens, 13-Nov-2017.)  (Revised by AV, 8-Feb-2021.)
       (Revised by AV, 24-Mar-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
    3trld $p |- ( ph -> F ( Trails ` G ) P ) $=
      ( cwlks cfv wbr ccnv wfun ctrls 3wlkd cs3 cvv wcel w3a 3wlkdlem7 funcnvs3
      wne syl2anc cnveqi funeqi sylibr istrl sylanbrc ) AGFHUBUCUDGUEZUFZGFHUGU
      CUDABCDEFGHIJKLMNOPQRSTUHAJKLUIZUEZUFZVCAJUJUKKUJUKLUJUKULJKUOJLUOKLUOULV
      FABCDEFGIJKLMNOPQRUMUAJKLUJUNUPVBVEGVDOUQURUSFGHUTVA $.

    $( A trail of length 3 from one vertex to another, different vertex via a
       third vertex.  (Contributed by AV, 8-Feb-2021.)  (Revised by AV,
       24-Mar-2021.) $)
    3trlond $p |- ( ph -> F ( A ( TrailsOn ` G ) D ) P ) $=
      ( ctrlson cfv co wbr cwlkson ctrls 3wlkond 3trld wcel cword wa wb simplld
      cvv simprrd cs3 s3cli eqeltri cs4 pm3.2i a1i istrlson syl21anc mpbir2and
      s4cli ) AGFBEHUBUCUDUEZGFBEHUFUCUDUEZGFHUGUCUEZABCDEFGHIJKLMNOPQRSTUHABCD
      EFGHIJKLMNOPQRSTUAUIABMUJZEMUJZGUOUKZUJZFVLUJZULZVGVHVIULUMAVJCMUJZDMUJZV
      KULPUNAVJVPULVQVKPUPVOAVMVNGJKLUQVLOJKLURUSFBCDEUTVLNBCDEVFUSVAVBBEFVLGHM
      VLSVCVDVE $.

    $d G j $.  $d ph j $.
    $( A path of length 3 from one vertex to another vertex via a third vertex.
       (Contributed by Alexander van der Vekens, 6-Dec-2017.)  (Revised by AV,
       10-Feb-2021.)  (Revised by AV, 24-Mar-2021.) $)
    3pthd $p |- ( ph -> F ( Paths ` G ) P ) $=
      ( vk vj chash cfv cvv cword wcel cs4 s4cli eqeltri a1i c3 c4 c1 co fveq2i
      cmin cs3 s3len eqtri 4m1e3 s4len eqtr2i 3eqtr2i 3pthdlem1 eqid 3trld pthd
      oveq1i ) AFGUDUEZUBUCGHFUFUGZUHAFBCDEUIZVLNBCDEUJUKULVKUMUNUOURUPFUDUEZUO
      URUPVKJKLUSZUDUEUMGVOUDOUQJKLUTVAVBUNVNUOURVNVMUDUEUNFVMUDNUQBCDEVCVDVJVE
      ABCDEFUCUBGJKLMNOPQVFVKVGABCDEFGHIJKLMNOPQRSTUAVHVI $.

    $( A path of length 3 from one vertex to another, different vertex via a
       third vertex.  (Contributed by AV, 10-Feb-2021.)  (Revised by AV,
       24-Mar-2021.) $)
    3pthond $p |- ( ph -> F ( A ( PathsOn ` G ) D ) P ) $=
      ( cpthson cfv co wbr ctrlson cpths 3trlond 3pthd wcel cword wa wb simplld
      cvv simprrd cs3 s3cli eqeltri cs4 pm3.2i a1i ispthson syl21anc mpbir2and
      s4cli ) AGFBEHUBUCUDUEZGFBEHUFUCUDUEZGFHUGUCUEZABCDEFGHIJKLMNOPQRSTUAUHAB
      CDEFGHIJKLMNOPQRSTUAUIABMUJZEMUJZGUOUKZUJZFVLUJZULZVGVHVIULUMAVJCMUJZDMUJ
      ZVKULPUNAVJVPULVQVKPUPVOAVMVNGJKLUQVLOJKLURUSFBCDEUTVLNBCDEVFUSVAVBBEFVLG
      HMVLSVCVDVE $.

    ${
      3spthd.n $e |- ( ph -> A =/= D ) $.
      $( A simple path of length 3 from one vertex to another, different vertex
         via a third vertex.  (Contributed by AV, 10-Feb-2021.)  (Revised by
         AV, 24-Mar-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
      3spthd $p |- ( ph -> F ( SPaths ` G ) P ) $=
        ( ctrls cfv wbr cspths 3trld wa ccnv wfun simpr cs4 wcel wne w3a df-3an
        wi simplbi2 3ad2ant1 mpan9 simpr2 simpr3 3jca mpdan syl2anc adantr wceq
        funcnvs4 a1i cnveqd funeqd mpbird isspth sylanbrc ) AGFHUCUDUEZGFHUFUDU
        EZABCDEFGHIJKLMNOPQRSTUAUGAVOUHZVOFUIZUJZVPAVOUKVQVSBCDEULZUIZUJZAWBVOA
        BMUMCMUMUHDMUMEMUMUHUHBCUNZBDUNZBEUNZUOZCDUNCEUNUHZDEUNZUOZWBPAWCWDUHZW
        GWHUOZWIQAWKUHWFWGWHAWEWKWFUBWJWGWEWFUQWHWFWJWEWCWDWEUPURUSUTAWJWGWHVAA
        WJWGWHVBVCVDBCDEMVHVEVFVQVRWAVQFVTFVTVGVQNVIVJVKVLFGHVMVNVD $.

      $( A simple path of length 3 from one vertex to another, different vertex
         via a third vertex.  (Contributed by AV, 10-Feb-2021.)  (Revised by
         AV, 24-Mar-2021.) $)
      3spthond $p |- ( ph -> F ( A ( SPathsOn ` G ) D ) P ) $=
        ( cspthson cfv wbr ctrlson cspths 3trlond 3spthd wcel cvv cword simplld
        co wa simprrd cs3 s3cli eqeltri cs4 s4cli pm3.2i a1i isspthson syl21anc
        wb mpbir2and ) AGFBEHUCUDUNUEZGFBEHUFUDUNUEZGFHUGUDUEZABCDEFGHIJKLMNOPQ
        RSTUAUHABCDEFGHIJKLMNOPQRSTUAUBUIABMUJZEMUJZGUKULZUJZFVMUJZUOZVHVIVJUOV
        FAVKCMUJZDMUJZVLUOPUMAVKVQUOVRVLPUPVPAVNVOGJKLUQVMOJKLURUSFBCDEUTVMNBCD
        EVAUSVBVCBEFVMGHMVMSVDVEVG $.
    $}

    3cycld.e $e |- ( ph -> A = D ) $.
    $( Construction of a 3-cycle from three given edges in a graph.
       (Contributed by Alexander van der Vekens, 13-Nov-2017.)  (Revised by AV,
       10-Feb-2021.)  (Revised by AV, 24-Mar-2021.)  (Proof shortened by AV,
       30-Oct-2021.) $)
    3cycld $p |- ( ph -> F ( Cycles ` G ) P ) $=
      ( cpths cfv wbr cc0 chash wceq ccycls 3pthd wa cs4 fveq1i s4fv0 ad3antrrr
      wcel syl5eq simpr c3 cs3 fveq2i s3len eqtri fveq12i s4fv3 adantl ad2antlr
      syl5req 3eqtrd syl2anc iscycl sylanbrc ) AGFHUCUDUEUFFUDZGUGUDZFUDZUHZGFH
      UIUDUEABCDEFGHIJKLMNOPQRSTUAUJABMUPZCMUPZUKZDMUPZEMUPZUKZUKZBEUHZVPPUBWCW
      DUKVMBEVOVQVMBUHVRWBWDVQVMUFBCDEULZUDBUFFWENUMBCDEMUNUQUOWCWDURWBEVOUHZVS
      WDWAWFVTWAVOUSWEUDEVNUSFWENVNJKLUTZUGUDUSGWGUGOVAJKLVBVCVDBCDEMVEVHVFVGVI
      VJFGHVKVL $.

    $( Construction of a 3-cycle from three given edges in a graph, containing
       an endpoint of one of these edges.  (Contributed by Alexander van der
       Vekens, 17-Nov-2017.)  (Revised by AV, 10-Feb-2021.)  (Revised by AV,
       24-Mar-2021.) $)
    3cyclpd $p |- ( ph -> ( F ( Cycles ` G ) P /\ ( # ` F ) = 3
                            /\ ( P ` 0 ) = A ) ) $=
      ( ccycls cfv wbr chash c3 wceq cc0 3cycld cs3 fveq2i s3len eqtri a1i wcel
      wa cs4 fveq1i s4fv0 syl5eq ad2antrr syl 3jca ) AGFHUCUDUEGUFUDZUGUHZUIFUD
      ZBUHZABCDEFGHIJKLMNOPQRSTUAUBUJVFAVEJKLUKZUFUDUGGVIUFOULJKLUMUNUOABMUPZCM
      UPZUQDMUPEMUPUQZUQVHPVJVHVKVLVJVGUIBCDEURZUDBUIFVMNUSBCDEMUTVAVBVCVD $.
  $}

  ${
    $d E a b c $.  $d E k $.  $d F k $.  $d G k $.  $d P a b c $.  $d P k $.
    $d V a b c $.
    upgr3v3e3cycl.e $e |- E = ( Edg ` G ) $.
    upgr3v3e3cycl.v $e |- V = ( Vtx ` G ) $.
    $( If there is a cycle of length 3 in a pseudograph, there are three
       distinct vertices in the graph which are mutually connected by edges.
       (Contributed by Alexander van der Vekens, 9-Nov-2017.) $)
    upgr3v3e3cycl $p |- ( ( G e. UPGraph /\ F ( Cycles ` G ) P
                            /\ ( # ` F ) = 3 )
                    -> E. a e. V E. b e. V E. c e. V
                       ( ( { a , b } e. E /\ { b , c } e. E /\ { c , a } e. E )
                         /\ ( a =/= b /\ b =/= c /\ c =/= a ) ) ) $=
      ( cfv wcel c3 cpr w3a wne wa cc0 c1 c2 vk ccycls cupgr chash wceq cv wrex
      wbr cpths wi cyclprop cwlks pthiswlk caddc cfzo wral upgrwlkvtxedg eqeq2d
      fveq2 anbi2d ctp oveq2 fzo0to3tp syl6eq raleqdv c0ex 1ex 2ex oveq1 fveq2d
      co 0p1e1 preq12d eleq1d 1p1e2 2p1e3 raltp syl6bb anbi12d wf wlkp feq2d id
      cfz cn0 3nn0 0elfz mp1i ffvelrnd 1nn0 1lt3 fvffz0 ex mp3an 2nn0 2lt3 3jca
      syl6bi com12 3syl adantr impcom preq2 eqcoms adantl 3anbi3d biimpa simpll
      clt breq2 mpbiri cn lbfzo0 mpbir syl5eleqr pthdadjvtx 1e0p1 fveq2i neeq2i
      3nn sylibr syl3anc elfzo0 mpbir3an df-2 neeq2 mpbird preq1 3anbi13d neeq1
      wb df-3 3anbi12d 3anbi23d rspc3ev syl12anc sylbid expd com13 syl expcom
      com23 mpcom imp 3imp21 ) CADUBKUHZDUCLZCUDKZMUEZFUFZGUFZNZBLZUUKHUFZNZBLZ
      UUNUUJNZBLZOZUUJUUKPZUUKUUNPZUUNUUJPZOZQZHEUGGEUGFEUGZUUFCADUIKUHZRAKZUUH
      AKZUEZQZUUGUUIUVEUJZUJZACDUKUVFUVIUVLCADULKUHZUVFUVIUVLUJACDUMZUVMUVFUVIU
      VLUVMUUGUVJUVKUUGUVMUVJUVKUJZUUGUVMQUAUFZAKZUVPSUNVKZAKZNZBLZUARUUHUOVKZU
      PZUVOAUABCDIUQUUIUVJUWCUVEUUIUVJUWCUVEUUIUVJUWCQUVFUVGMAKZUEZQZUVGSAKZNZB
      LZUWGTAKZNZBLZUWJUWDNZBLZOZQZUVEUUIUVJUWFUWCUWOUUIUVIUWEUVFUUIUVHUWDUVGUU
      HMAUSURUTUUIUWCUWAUARSTVAZUPUWOUUIUWAUAUWBUWQUUIUWBRMUOVKZUWQUUHMRUOVBZVC
      VDVEUWAUWIUWLUWNUARSTVFVGVHUVPRUEZUVTUWHBUWTUVQUVGUVSUWGUVPRAUSUWTUVRSAUW
      TUVRRSUNVKZSUVPRSUNVIVLVDVJVMVNUVPSUEZUVTUWKBUXBUVQUWGUVSUWJUVPSAUSUXBUVR
      TAUXBUVRSSUNVKZTUVPSSUNVIVOVDVJVMVNUVPTUEZUVTUWMBUXDUVQUWJUVSUWDUVPTAUSUX
      DUVRMAUXDUVRTSUNVKZMUVPTSUNVIVPVDVJVMVNVQVRVSUUIUWPUVEUUIUWPQUVGELZUWGELZ
      UWJELZOZUWIUWLUWJUVGNZBLZOZUVGUWGPZUWGUWJPZUWJUVGPZOZUVEUWPUUIUXIUWFUUIUX
      IUJZUWOUVFUXQUWEUVFUVMRUUHWDVKZEAVTZUXQUVNACDEJWAUUIUXSUXIUUIUXSRMWDVKZEA
      VTZUXIUUIUXRUXTEAUUHMRWDVBWBUYAUXFUXGUXHUYAUXTERAUYAWCMWELZRUXTLUYAWFMWGW
      HWIUYBSWELZSMXIUHZUYAUXGUJWFWJWKUYBUYCUYDOUYAUXGASMEWLWMWNUYBTWELZTMXIUHZ
      UYAUXHUJWFWOWPUYBUYEUYFOUYAUXHATMEWLWMWNWQWRWSWTXAXAXBUWPUXLUUIUWFUWOUXLU
      WFUWNUXKUWIUWLUWFUWMUXJBUWEUWMUXJUEZUVFUYGUWDUVGUWDUVGUWJXCXDXEVNXFXGXEUW
      PUUIUXPUWFUUIUXPUJUWOUWFUUIUXPUWFUUIQZUXMUXNUXOUYHUVFSUUHXIUHZRUWBLZUXMUV
      FUWEUUIXHZUUIUYIUWFUUIUYIUYDWKUUHMSXIXJXKXEZUUIUYJUWFUUIRUWRUWBRUWRLMXLLZ
      XTMXMXNUWSXOXEUVFUYIUYJOUVGUXAAKZPUXMACDRXPUWGUYNUVGSUXAAXQXRXSYAYBUYHUVF
      UYISUWBLZUXNUYKUYLUUIUYOUWFUUISUWRUWBSUWRLUYCUYMUYDWJXTWKSMYCYDUWSXOXEUVF
      UYIUYOOUWGUXCAKZPUXNACDSXPUWJUYPUWGTUXCAYEXRXSYAYBUYHUXOUWJUXEAKZPZUYHUVF
      UYITUWBLZUYRUYKUYLUUIUYSUWFUUITUWRUWBTUWRLUYEUYMUYFWOXTWPTMYCYDUWSXOXEACD
      TXPYBUWFUXOUYRYKZUUIUWEUYTUVFUWEUXOUWJUWDPUYRUVGUWDUWJYFUWDUYQUWJMUXEAYLX
      RXSVRXEXAYGWQWMXAXBUVDUXLUXPQUVGUUKNZBLZUUPUUNUVGNZBLZOZUVGUUKPZUVAUUNUVG
      PZOZQUWIUWGUUNNZBLZVUDOZUXMUWGUUNPZVUGOZQFGHUVGUWGUWJEEEUUJUVGUEZUUSVUEUV
      CVUHVUNUUMVUBUURVUDUUPVUNUULVUABUUJUVGUUKYHVNVUNUUQVUCBUUJUVGUUNXCVNYIVUN
      UUTVUFUVBVUGUVAUUJUVGUUKYJUUJUVGUUNYFYIVSUUKUWGUEZVUEVUKVUHVUMVUOVUBUWIUU
      PVUJVUDVUOVUAUWHBUUKUWGUVGXCVNVUOUUOVUIBUUKUWGUUNYHVNYMVUOVUFUXMUVAVULVUG
      UUKUWGUVGYFUUKUWGUUNYJYMVSUUNUWJUEZVUKUXLVUMUXPVUPVUJUWLVUDUXKUWIVUPVUIUW
      KBUUNUWJUWGXCVNVUPVUCUXJBUUNUWJUVGYHVNYNVUPVULUXNVUGUXOUXMUUNUWJUWGYFUUNU
      WJUVGYJYNVSYOYPWMYQYRYSYTUUAUUBYRUUCUUDYTUUE $.
  $}

  ${
    uhgr3cyclex.v $e |- V = ( Vtx ` G ) $.
    uhgr3cyclex.e $e |- E = ( Edg ` G ) $.
    ${
      uhgr3cyclex.i $e |- I = ( iEdg ` G ) $.
      $( Lemma for ~ uhgr3cyclex .  (Contributed by AV, 12-Feb-2021.) $)
      uhgr3cyclexlem $p |- ( ( ( ( A e. V /\ B e. V ) /\ A =/= B )
                               /\ ( ( J e. dom I /\ { B , C } = ( I ` J ) )
                               /\ ( K e. dom I /\ { C , A } = ( I ` K ) ) ) )
                             -> J =/= K ) $=
        ( wcel wa wne cpr cfv wceq wi eqcoms fveq2 eqeq2d wb eqeq2 prcom eqeq1i
        cdm simpl simpr preq1b biimpcd sylbi syl6bi com12 adantld com14 necon3d
        adantl imp32 impancom imp ) AIMZBIMZNZABOZNGFUGZMZBCPZGFQZRZNZHVFMZCAPZ
        HFQZRZNZNZGHOZVDVQVEVRVDVQNGHABVDVKVPGHRZABRZSVSVKVPVDVTVSVJVPVDVTSZSZV
        GVSVJVHVNRZWBVSVIVNVHGHFUAUBVPWCWAVOWCWASVLVOWCVHVMRZWAWCWDUCVNVMVNVMVH
        UDTWAVMVHVMVHRACPZVHRZWAVMWEVHCAUEUFVDWFVTVDABCIIVBVCUHVBVCUIUJUKULTUMU
        RUNUMUOUPUSUQUTVA $.
    $}

    $d A f i j k p $.  $d B f i j k p $.  $d C f i j k p $.  $d G f i j k p $.
    $d V i j k $.
    $( If there are three different vertices in a hypergraph which are mutually
       connected by edges, there is a 3-cycle in the graph containing one of
       these vertices.  (Contributed by Alexander van der Vekens, 17-Nov-2017.)
       (Revised by AV, 12-Feb-2021.) $)
    uhgr3cyclex $p |- ( ( G e. UHGraph /\ ( ( A e. V /\ B e. V /\ C e. V )
                                         /\ ( A =/= B /\ A =/= C /\ B =/= C ) )
                    /\ ( { A , B } e. E /\ { B , C } e. E /\ { C , A } e. E ) )
                        -> E. f E. p ( f ( Cycles ` G ) p
                                       /\ ( # ` f ) = 3 /\ ( p ` 0 ) = A ) ) $=
      ( vi wcel w3a wne wa cv cfv wceq wi adantl vj vk cuhgr cpr ccycls wbr cc0
      chash c3 wex ciedg wrex wb cedg eleq2i eqid uhgredgiedgb syl5bb 3anbi123d
      cdm adantr cs3 cs4 3simpa pm3.22 3adant2 jca ad2antlr necom biimpi anim1i
      ancomd 3ad2ant2 wss eqimss 3ad2ant3 3ad2ant1 simp3 anim12i uhgr3cyclexlem
      simp1 syl2an 3simpc necomd exp31 3adant3 com12 impcom eqidd 3cyclpd cword
      3jca cvv s3cli elexi s4cli breq12 fveq2 eqeq1d fveq1 spc2ev syl rexlimiva
      expcom 3exp com13 3imp sylbid 3impia ) FUCLZAGLZBGLZCGLZMZABNZACNZBCNZMZO
      ZABUDZELZBCUDZELZCAUDZELZMZDPZHPZFUEQZUFZYGUHQZUIRZUGYHQZARZMZHUJDUJZXJXS
      OZYFXTKPZFUKQZQZRZKYSUTZULZYBUAPZYSQZRZUAUUBULZYDUBPZYSQZRZUBUUBULZMZYPXJ
      YFUULUMXSXJYAUUCYCUUGYEUUKYAXTFUNQZLXJUUCEUUMXTJUOKXTFYSYSUPZUQURYCYBUUML
      XJUUGEUUMYBJUOUAYBFYSUUNUQURYEYDUUMLXJUUKEUUMYDJUOUBYDFYSUUNUQURUSVAUULYQ
      YPUUCUUGUUKYQYPSZUUAUUGUUKUUOSSKUUBUUKUUGYRUUBLZUUAOZUUOUUJUUGUUQUUOSZSUB
      UUBUUGUUHUUBLZUUJOZUURUUFUUTUURSUAUUBUUDUUBLZUUFOZUUTUUQUUOYQUVBUUTUUQMZY
      PYQUVCOZYRUUDUUHVBZABCAVCZYIUFZUVEUHQZUIRZUGUVFQZARZMZYPUVDABCAUVFUVEFYSY
      RUUDUUHGUVFUPUVEUPXSXKXLOZXMXKOZOZXJUVCXNUVOXRXNUVMUVNXKXLXMVDXKXMUVNXLXK
      XMVEVFVGVAVHXSXOXPOZXQBANZOZCANZMZXJUVCXRUVTXNXRUVPUVRUVSXOXPXQVDXOXQUVRX
      PXOXQOUVQXQXOUVQXQXOUVQABVIVJVKVLVFXPXOUVSXQXPUVSACVIVJVMZWLTVHUVCXTYTVNZ
      YBUUEVNZYDUUIVNZMYQUVCUWBUWCUWDUUQUVBUWBUUTUUAUWBUUPXTYTVOTVPUVBUUTUWCUUQ
      UUFUWCUVAYBUUEVOTVQUUTUVBUWDUUQUUJUWDUUSYDUUIVOTVMWLTIUUNUVDYRUUDNZYRUUHN
      ZUUDUUHNZYQUVNUVSOZUUQUVBOZUWEUVCXSUWHXJXNUVNXRUVSXNXMXKXKXLXMVRXKXLXMWAV
      GUWAVSTUVBUUQUWIUUTUVBUUQVEVFCABEFYSYRUUDGIJUUNVTWBYQXLXMOZXQOZUUTUUQOZUW
      FUVCXSUWKXJXNUWJXRXQXKXLXMWCXOXPXQVRVSTUVBUUTUUQWCUWKUWLOUUHYRBCAEFYSUUHY
      RGIJUUNVTWDWBUVCYQUWGUVBUUTYQUWGSUUQYQUVBUUTOZUWGXSUWMUWGSZXJXRXNUWNXOXPX
      NUWNSXQXNXOUWNXKXLXOUWNSXMUVMXOUWMUWGABCEFYSUUDUUHGIJUUNVTWEWFWGVQWHTWGWF
      WHWLUVDAWIWJYOUVLDHUVEUVFUVEWMWKZYRUUDUUHWNWOUVFUWOABCAWPWOYGUVERZYHUVFRZ
      OYJUVGYLUVIYNUVKYGUVEYHUVFYIWQUWPYLUVIUMUWQUWPYKUVHUIYGUVEUHWRWSVAUWQYNUV
      KUMUWPUWQYMUVJAUGYHUVFWTWSTUSXAXBXDXEXCWGXCXFXCXGWGXHXI $.

    $( If there are three (different) vertices in a multigraph which are
       mutually connected by edges, there is a 3-cycle in the graph containing
       one of these vertices.  (Contributed by Alexander van der Vekens,
       17-Nov-2017.)  (Revised by AV, 12-Feb-2021.) $)
    umgr3cyclex $p |- ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V )
                    /\ ( { A , B } e. E /\ { B , C } e. E /\ { C , A } e. E ) )
                        -> E. f E. p ( f ( Cycles ` G ) p
                                       /\ ( # ` f ) = 3 /\ ( p ` 0 ) = A ) ) $=
      ( wcel w3a cpr wne cv cfv wceq wex simp2 umgredgne cumgr cuhgr ccycls wbr
      chash c3 cc0 umgruhgr 3ad2ant1 wa 3ad2antr1 eleq1i biimpi 3ad2ant3 sylan2
      prcom 3jca 3adant2 simp3 uhgr3cyclex syl121anc ) FUAKZAGKBGKCGKLZABMEKZBC
      MEKZCAMZEKZLZLFUBKZVCABNZACNZBCNZLZVHDOZHOZFUCPUDVNUEPUFQUGVOPAQLHRDRVBVC
      VIVHFUHUIVBVCVHSVBVHVMVCVBVHUJVJVKVLVBVEVDVJVGEFABJTUKVHVBACMZEKZVKVGVDVQ
      VEVGVQVFVPECAUPULUMUNEFACJTUOVHVBVEVLVDVEVGSEFBCJTUOUQURVBVCVHUSABCDEFGHI
      JUTVA $.

    $d E a b c f p $.  $d G a b c $.  $d V a b c f p $.
    $( If and only if there is a 3-cycle in a multigraph, there are three
       (different) vertices in the graph which are mutually connected by edges.
       (Contributed by Alexander van der Vekens, 14-Nov-2017.)  (Revised by AV,
       12-Feb-2021.) $)
    umgr3v3e3cycl $p |- ( G e. UMGraph
                         -> ( E. f E. p ( f ( Cycles ` G ) p /\ ( # ` f ) = 3 )
                              <-> E. a e. V E. b e. V E. c e. V
                  ( { a , b } e. E /\ { b , c } e. E /\ { c , a } e. E ) ) ) $=
      ( wcel cv cfv wa wex cpr w3a wrex wne reximi cumgr ccycls wbr chash cupgr
      c3 wceq umgrupgr adantr simpl adantl simpr upgr3v3e3cycl syl3anc exlimdvv
      syl ex simplll df-3an biimpri cc0 umgr3cyclex 3simpa rexlimdva rexlimdvva
      ad4ant23 2eximi impbid ) CUAKZALZELZCUBMUCZVJUDMUFUGZNZEOAOZFLZGLZPBKVQHL
      ZPBKVRVPPBKQZHDRZGDRZFDRZVIVNWBAEVIVNWBVIVNNCUEKZVLVMWBVIWCVNCUHUIVNVLVIV
      LVMUJUKVNVMVIVLVMULUKWCVLVMQVSVPVQSVQVRSVRVPSQZNZHDRZGDRZFDRWBVKBVJCDFGHJ
      IUMWGWAFDWFVTGDWEVSHDVSWDUJTTTUPUNUQUOVIVTVOFGDDVIVPDKZVQDKZNZNZVSVOHDWKV
      RDKZNZVSVOWMVSNVIWHWIWLQZVSVOVIWJWLVSURWJWLWNVIVSWNWJWLNWHWIWLUSUTVFWMVSU
      LVIWNVSQVLVMVAVKMVPUGZQZEOAOVOVPVQVRABCDEIJVBWPVNAEVLVMWOVCVGUPUNUQVDVEVH
      $.
  $}

  ${
    $d E k $.  $d E a b c d $.  $d F k $.  $d G k $.  $d P k $.
    $d P a b c d $.  $d V a b c d $.
    upgr4cycl4dv4e.v $e |- V = ( Vtx ` G ) $.
    upgr4cycl4dv4e.e $e |- E = ( Edg ` G ) $.
    $( If there is a cycle of length 4 in a pseudograph, there are four
       (different) vertices in the graph which are mutually connected by edges.
       (Contributed by Alexander van der Vekens, 9-Nov-2017.)  (Revised by AV,
       13-Feb-2021.) $)
    upgr4cycl4dv4e $p |- ( ( G e. UPGraph
                             /\ F ( Cycles ` G ) P /\ ( # ` F ) = 4 )
                           -> E. a e. V E. b e. V E. c e. V E. d e. V
                              ( ( ( { a , b } e. E /\ { b , c } e. E )
                               /\ ( { c , d } e. E /\ { d , a } e. E ) )
                               /\ ( ( a =/= b /\ a =/= c /\ a =/= d )
                                 /\ ( b =/= c /\ b =/= d /\ c =/= d ) ) ) ) $=
      ( wcel c4 wa wne w3a cc0 c1 c2 c3 vk ccycls cfv wbr cupgr chash wceq wrex
      cv cpr cpths wi cyclprop cwlks pthiswlk caddc co cfzo upgrwlkvtxedg fveq2
      wral eqeq2d anbi2d cun oveq2 fzo0to42pr syl6eq raleqdv ralunb oveq1 0p1e1
      c0ex 1ex fveq2d preq12d eleq1d 1p1e2 ralpr 2ex 2p1e3 3p1e4 anbi12i syl6bb
      3ex bitri anbi12d wb preq2 eqcoms adantl cn0 cfz 4nn0 a1i wlkp feq2d 3jca
      wf clt fvffz0 sylan ad2antlr 1nn0 1lt4 2nn0 2lt4 3nn0 mpbiri ad2antrr 4nn
      3lt4 eleq2 pthdadjvtx syl3an3 fveq2i neeq2i sylibr elfzo0 2ne0 fzo1fzo0n0
      mpbir3an mpbir2an syl5eleqr adantr 3ad2ant3 syl2anc necomd 3ne0 syl112anc
      pthdivtx preq1 anbi1d neeq2 neeq1 rspc2ev exp31 sylbid 2rexbidv expd syl
      biimpcd 3syl impcom id 0nn0 4pos simpr simplr breq2 simpll cn mpbir 1e0p1
      lbfzo0 simp1 0elfz ax-mp df-2 ax-1ne0 cle 3re ltleii elfz2nn0 1lt3 ltneii
      4re 1re df-3 jca 3anbi2d 3anbi13d 3anbi3d 3anbi23d mp2and imp4c 3anbi123d
      3anbi1d 3anbi12d syl6 com13 expcom com23 mpcom imp 3imp21 ) CADUBUCUDZDUE
[encoded data, 4320 characters]
      WE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Connected graphs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ConnGraph $.

  $( Extend class notation with connected graphs. $)
  cconngr $a class ConnGraph $.

  ${
    $d g v k n f p $.
    $( Define the class of all connected graphs.  A graph is called _connected_
       if there is a path between every pair of (distinct) vertices.  The
       distinctness of the vertices is not necessary for the definition,
       because there is always a path (of length 0) from a vertex to itself,
       see ~ 0pthonv and ~ dfconngr1 .  (Contributed by Alexander van der
       Vekens, 2-Dec-2017.)  (Revised by AV, 15-Feb-2021.) $)
    df-conngr $a |- ConnGraph = { g | [. ( Vtx ` g ) / v ].
                 A. k e. v A. n e. v E. f E. p f ( k ( PathsOn ` g ) n ) p } $.

    $( Alternative definition of the class of all connected graphs, requiring
       paths between distinct vertices.  (Contributed by Alexander van der
       Vekens, 3-Dec-2017.)  (Revised by AV, 15-Feb-2021.) $)
    dfconngr1 $p |- ConnGraph = { g | [. ( Vtx ` g ) / v ].
                                  A. k e. v A. n e. ( v \ { k } )
                                  E. f E. p f ( k ( PathsOn ` g ) n ) p } $=
      ( cv cfv co wbr wex wral cvtx wsbc cab cdif wb raleqdv wceq raleqbi1dv wa
      cconngr cpthson csn df-conngr wcel cun difsnid eqcomd ralunb eqid 0pthonv
      syl6bb oveq2 breqd 2exbidv ralsng mpbird bitr4d ralbiia fvex raleq difeq1
      biantrud bibi12d sbcie mpbir sbcbi1 ax-mp abbii eqtri ) UBBGZFGZDGZEGZCGZ
      UCHZIZJZFKBKZEAGZLZDWALZAVPMHZNZCOVTEWAVNUDZPZLZDWALZAWDNZCOABCDEFUEWEWJC
      WCWIQZAWDNZWEWJQWLVTEWDLZDWDLZVTEWDWFPZLZDWDLZQZWMWPDWDVNWDUFZWMWPVTEWFLZ
      UAZWPWSWMVTEWOWFUGZLXAWSVTEWDXBWSXBWDWDVNUHUIRVTEWOWFUJUMWSWTWPWSWTVLVMVN
      VNVQIZJZFKBKZBVPVNWDFWDUKULVTXEEVNWDVOVNSZVSXDBFXFVRXCVLVMVOVNVNVQUNUOUPU
      QURVDUSUTWKWRAWDVPMVAWAWDSZWCWNWIWQWBWMDWAWDVTEWAWDVBTWHWPDWAWDXGVTEWGWOW
      AWDWFVCRTVEVFVGWCWIAWDVHVIVJVK $.
  $}

  ${
    $d f g h k n p v $.  $d G f h k n p $.  $d V h k n $.
    isconngr.v $e |- V = ( Vtx ` G ) $.
    $( The property of being a connected graph.  (Contributed by Alexander van
       der Vekens, 2-Dec-2017.)  (Revised by AV, 15-Feb-2021.) $)
    isconngr $p |- ( G e. W -> ( G e. ConnGraph
           <-> A. k e. V A. n e. V E. f E. p f ( k ( PathsOn ` G ) n ) p ) ) $=
      ( vg vv vh wcel cv cpthson cfv wex wral cvtx fveq2 raleqbidv cconngr wsbc
      co wbr cab df-conngr fvex raleq raleqbi1dv sbcie abbii wceq syl6eqr oveqd
      eleq2i breqd 2exbidv weq cbvabv elab2g syl5bb ) DUALDAMZGMZBMZCMZIMZNOZUC
      ZUDZGPAPZCJMZQZBVKQZJVFROZUBZIUEZLZDFLZVBVCVDVEDNOZUCZUDZGPAPZCEQZBEQZUAV
      PDJAIBCGUFUOVQDVJCVNQZBVNQZIUEZLVRWDVPWGDVOWFIVMWFJVNVFRUGVLWEBVKVNVJCVKV
      NUHUIUJUKUOVBVCVDVEKMZNOZUCZUDZGPAPZCWHROZQZBWMQZWDKDWGFWHDULZWNWCBWMEWPW
      MDROEWHDRSHUMZWPWLWBCWMEWQWPWKWAAGWPWJVTVBVCWPWIVSVDVEWHDNSUNUPUQTTWFWOIK
      IKURZWEWNBVNWMVFWHRSZWRVJWLCVNWMWSWRVIWKAGWRVHWJVBVCWRVGWIVDVEVFWHNSUNUPU
      QTTUSUTVAVA $.

    $( The property of being a connected graph.  (Contributed by Alexander van
       der Vekens, 2-Dec-2017.)  (Revised by AV, 15-Feb-2021.) $)
    isconngr1 $p |- ( G e. W -> ( G e. ConnGraph
                               <-> A. k e. V A. n e. ( V \ { k } )
                                   E. f E. p f ( k ( PathsOn ` G ) n ) p ) ) $=
      ( vg vv vh wcel cv cpthson cfv wex cdif wral cvtx raleqbidv wbr dfconngr1
      cconngr co csn wsbc cab eleq2i fvex wceq difeq1 raleqdv sbcie abbii fveq2
      id syl6eqr difeq1d oveqd breqd 2exbidv weq cbvabv elab2g syl5bb ) DUCLDAM
      ZGMZBMZCMZIMZNOZUDZUAZGPAPZCJMZVHUEZQZRZBVORZJVJSOZUFZIUGZLZDFLZVFVGVHVID
      NOZUDZUAZGPAPZCEVPQZRZBERZUCWBDJAIBCGUBUHWCDVNCVTVPQZRZBVTRZIUGZLWDWKWBWO
      DWAWNIVSWNJVTVJSUIVOVTUJZVRWMBVOVTWPUPWPVNCVQWLVOVTVPUKULTUMUNUHVFVGVHVIK
      MZNOZUDZUAZGPAPZCWQSOZVPQZRZBXBRZWKKDWOFWQDUJZXDWJBXBEXFXBDSOEWQDSUOHUQZX
      FXAWHCXCWIXFXBEVPXGURXFWTWGAGXFWSWFVFVGXFWRWEVHVIWQDNUOUSUTVATTWNXEIKIKVB
      ZWMXDBVTXBVJWQSUOZXHVNXACWLXCXHVTXBVPXIURXHVMWTAGXHVLWSVFVGXHVKWRVHVIVJWQ
      NUOUSUTVATTVCVDVEVE $.
  $}

  ${
    $d G c e f k n p $.
    $( A complete hypergraph is connected.  (Contributed by Alexander van der
       Vekens, 4-Dec-2017.)  (Revised by AV, 15-Feb-2021.) $)
    cusconngr $p |- ( ( G e. UHGraph /\ G e. ComplGraph )
                      -> G e. ConnGraph ) $=
      ( vf vp vk vn ve vc cuhgr wcel wa cv cfv wex wral wss wrex eqid adantr wb
      adantl ccplgr cconngr cpthson co wbr cvtx csn cdif cpr iscplgredg simp-4l
      cedg simpr eldifi anim12i wi id weq sseq2 rspcedv imp 1pthon2v syl3anc ex
      rexlimdva ralimdva sylbid isconngr1 mpbird ) AHIZAUAIZJAUBIZBKCKDKZEKZAUC
      LUDUECMBMZEAUFLZVMUGZUHZNZDVPNZVJVKVTVJVKVMVNUIZFKZOZFAULLZPZEVRNZDVPNVTD
      FEWDAVPHVPQZWDQZUJVJWFVSDVPVJVMVPIZJZWEVOEVRWJVNVRIZJZWCVOFWDWLWBWDIZJZWC
      VOWNWCJVJWIVNVPIZJZWAGKZOZGWDPZVOVJWIWKWMWCUKWNWPWCWLWPWMWJWIWKWOVJWIUMVN
      VPVQUNUORRWNWCWSWMWCWSUPWLWMWRWCGWBWDWMUQGFURWRWCSWMWQWBWAUSTUTTVAVMVNGBW
      DAVPCWGWHVBVCVDVEVFVFVGVAVJVLVTSVKBDEAVPHCWGVHRVI $.
  $}

  ${
    $d f k n p $.
    $( A graph without vertices is connected.  (Contributed by Alexander van
       der Vekens, 2-Dec-2017.)  (Revised by AV, 15-Feb-2021.) $)
    0conngr $p |- (/) e. ConnGraph $=
      ( vf vp vk vn c0 cconngr wcel cv cpthson cfv co wbr wex wral ral0 cvv 0ex
      wb cvtx vtxval0 eqcomi isconngr ax-mp mpbir ) EFGZAHBHCHDHEIJKLBMAMDENZCE
      NZUFCOEPGUEUGRQACDEEPBESJETUAUBUCUD $.

    $d G f k n p $.
    $( A graph without vertices is connected.  (Contributed by Alexander van
       der Vekens, 2-Dec-2017.)  (Revised by AV, 15-Feb-2021.) $)
    0vconngr $p |- ( ( G e. W /\ ( Vtx ` G ) = (/) ) -> G e. ConnGraph ) $=
      ( vf vp vk vn wcel cvtx cfv c0 wceq wa cconngr cv cpthson co wbr wex wral
      rzal adantl wb eqid isconngr adantr mpbird ) ABGZAHIZJKZLAMGZCNDNENFNAOIP
      QDRCRFUHSZEUHSZUIULUGUKEUHTUAUGUJULUBUICEFAUHBDUHUCUDUEUF $.

    $d N f k n p $.
    $( A graph with (at most) one vertex is connected.  (Contributed by
       Alexander van der Vekens, 2-Dec-2017.)  (Revised by AV, 15-Feb-2021.) $)
    1conngr $p |- ( ( G e. W /\ ( Vtx ` G ) = { N } ) -> G e. ConnGraph ) $=
      ( vf vp vk vn cvv wcel wceq wa cv co wbr wex wral adantr wb mpbird c0 cfv
      cvtx csn cconngr wi cpthson snidg eleq2 ad2antll eqid 0pthonv oveq2 breqd
      syl 2exbidv ralsng oveq1 id raleq raleqbidv isconngr ad2antrl ex wn snprc
      ralbidv eqeq2 anbi2d 0vconngr syl6bi sylbi pm2.61i ) BHIZACIZAUBUAZBUCZJZ
      KZAUDIZUEZVMVRVSVMVRKZVSDLZELZFLZGLZAUFUAZMZNZEODOZGVOPZFVOPZWAWKWIGVPPZF
      VPPZWAWMWBWCBWEWFMZNZEODOZGVPPZWAWQWBWCBBWFMZNZEODOZWABVOIZWTWAXABVPIZVMX
      BVRBHUGQVQXAXBRVMVNVOVPBUHUISDABVOEVOUJZUKUNVMWQWTRVRWPWTGBHWEBJZWOWSDEXD
      WNWRWBWCWEBBWFULUMUOUPQSVMWMWQRVRWLWQFBHWDBJZWIWPGVPXEWHWODEXEWGWNWBWCWDB
      WEWFUQUMUOVFUPQSVQWKWMRVMVNVQWJWLFVOVPVQURWIGVOVPUSUTUISVNVSWKRVMVQDFGAVO
      CEXCVAVBSVCVMVDVPTJZVTBVEXFVRVNVOTJZKVSXFVQXGVNVPTVOVGVHACVIVJVKVL $.
  $}

  ${
    $d G a b $.  $d G e f p v $.  $d G a b f p $.  $d I e f p v $.
    $d N a b v $.  $d N e f p v $.  $d V a b v $.  $d V f p $.
    conngrv2edg.v $e |- V = ( Vtx ` G ) $.
    conngrv2edg.i $e |- I = ( iEdg ` G ) $.
    $( A vertex in a connected graph with more than one vertex is incident with
       at least one edge.  Formerly part of proof for ~ vdgn0frgrv2 .
       (Contributed by Alexander van der Vekens, 9-Dec-2017.)  (Revised by AV,
       4-Apr-2021.) $)
    conngrv2edg $p |- ( ( G e. ConnGraph /\ N e. V /\ 1 < ( # ` V ) )
                        -> E. e e. ran I N e. e ) $=
      ( vv vf vp va vb wcel cfv wbr cv wa wi co wex cconngr c1 clt w3a wne wrex
      chash crn cvtx fvex eqeltri simp3 simp2 hashgt12el2 mp3an2i wral isconngr
      cvv cpthson oveq1 breqd 2exbidv weq oveq2 rspc2v ad2ant2r cwlkson ctrlson
      wceq cc0 pthontrlon trlsonwlkon simprr wlkon2n0 sylan2 jca ex wlkonl1iedg
      simpl 3syl syl6com exlimdvv syldc syl6bi pm2.43i expd 3impib rexlimdv mpd
      ) BUAMZDEMZUBEUGNUCOZUDZDHPZUEZHEUFZDAPMACUHUFZEURMWMWLWKWPEBUINURFBUIUJU
      KWJWKWLULWJWKWLUMDEURHUNUOWMWOWQHEWMWNEMZWOWQWJWKWLWRWOQZWQRWJWKWLQZWSWQW
      JWTWSQZWQRZWJWJIPZJPZKPZLPZBUSNZSZOZJTITZLEUPKEUPZXBIKLBEUAJFUQXAXKXCXDDW
      NXGSZOZJTITZWQWKWRXKXNRWLWOXJXNXCXDDXFXGSZOZJTITKLDWNEEXEDVIZXIXPIJXQXHXO
      XCXDXEDXFXGUTVAVBLHVCZXPXMIJXRXOXLXCXDXFWNDXGVDVAVBVEVFXAXMWQIJXMXAXCXDDW
      NBVGNSOZXCUGNVJUEZQZWQXMXCXDDWNBVHNSOXSXAYARDWNXDXCBVKDWNXDXCBVLXSXAYAXSX
      AQXSXTXSXAVSXAXSWOXTWTWRWOVMDWNXDXCBVNVOVPVQVTDWNXDAXCBCGVRWAWBWCWDWEWFWG
      WFWHWI $.
  $}

  ${
    $d G e x $.  $d N e x $.  $d V x $.
    vdn0conngrv2.v $e |- V = ( Vtx ` G ) $.
    $( A vertex in a connected multigraph with more than one vertex cannot have
       degree 0.  (Contributed by Alexander van der Vekens, 9-Dec-2017.)
       (Revised by AV, 4-Apr-2021.) $)
    vdn0conngrumgrv2 $p |- ( ( ( G e. ConnGraph /\ G e. UMGraph )
                                 /\ ( N e. V /\ 1 < ( # ` V ) ) )
                             -> ( ( VtxDeg ` G ) ` N ) =/= 0 ) $=
      ( vx ve wcel wa chash cfv cv ciedg cc0 wceq eqid wn wrex 3syl adantl cvv
      cconngr c1 clt wbr cvtxdg cdm crab vtxdumgrval ad2ant2lr wne wral wfn crn
      cumgr cuhgr umgruhgr uhgrfun funfn biimpi adantr simpl simprr conngrv2edg
      wfun syl3anc eleq2 rexrn biimpd sylc dfrex2 sylib c0 fvex dmex a1i rabexg
      wb hasheq0 rabeq0 syl6bb necon3abid mpbird eqnetrd ) AUAGZAUNGZHZBCGZUBCI
      JUCUDZHZHZBAUEJZJZBEKALJZJZGZEWMUFZUGZIJZMWEWGWLWRNWDWHEWPWKBAWMCDWMOZWPO
      WKOUHUIWJWRMUJWOPEWPUKZPZWJWOEWPQZXAWJWMWPULZBFKZGZFWMUMQZXBWFXCWIWEXCWDW
      EAUOGWMVDZXCAUPWMAWSUQXGXCWMURUSRSUTWJWDWGWHXFWFWDWIWDWEVAUTWIWGWFWGWHVAS
      WFWGWHVBFAWMBCDWSVCVEXCXFXBXEWOFEWPWMXDWNBVFVGVHVIWOEWPVJVKWJWTWRMWJWRMNZ
      WQVLNZWTWJWPTGZWQTGXHXIVQXJWJWMALVMVNVOWOEWPTVPWQTVRRWOEWPVSVTWAWBWC $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Eulerian paths and the Konigsberg Bridge problem
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Eulerian paths
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  According to Wikipedia ("Eulerian path",  9-Mar-2021,
  ~ https://en.wikipedia.org/wiki/Eulerian_path ): "In graph theory, an
   _Eulerian trail_ (or _Eulerian path_) is a trail in a finite graph that
   visits every edge exactly once (allowing for revisiting vertices).
   Similarly, an _Eulerian circuit_ or _Eulerian cycle_ is an Eulerian trail
   that starts and ends on the same vertex.  ... The term _Eulerian graph_ has
   two common meanings in graph theory.  One meaning is a graph with an
   Eulerian circuit, and the other is a graph with every vertex of even degree.
   These definitions coincide for connected graphs.  ... A graph that has an
   Eulerian trail but not an Eulerian circuit is called _semi-Eulerian_."

  Correspondingly, an _Eulerian path_ is defined as "a trail containing all
  edges" (see definition in [Bollobas] p. 16) in ~ df-eupth resp. ~ iseupth .
  ` ( EulerPaths `` G ) ` is the set of all Eulerian paths in graph ` G `, see
  ~ eupths .  An _Eulerian circuit_ (called _Euler tour_ in the definition in
  [Diestel] p. 22) is "a circuit in a graph containing all the edges" (see
  definition in [Bollobas] p. 16), or, with other words, a circuit which is an
  Eulerian path.  The function mapping a graph to the set of its Eulerian paths
  is defined as ` EulerPaths ` in ~ df-eupth , whereas there is no explicit
  definition for Eulerian circuits (yet): The statement "` <. F , P >. ` is an
  Eulerian circuit" is formally expressed by
  ` ( F ( EulerPaths `` G ) P /\ F ( Circuits `` G ) P ) `.

  Each Eulerian path can be made an Eulerian circuit by adding an edge which
  connects the endpoints of the Eulerian path (see ~ eupth2eucrct ).  Vice
  versa, removing one edge from a graph with an Eulerian circuit results in a
  graph with an Eulerian path, see ~ eucrct2eupth .

  An Eulerian path does not have to be a path in the meaning of definition
  ~ df-pths , because it may traverse some vertices more than once.  Therefore,
  "Eulerian trail" would be a more appropriate name.

  The main result of this section is (one direction of) _Euler's Theorem_: "A
  non-trivial connected graph has an Euler[[ian] circuit iff each vertex has
  even degree." (see part 1 of theorem 12 in [Bollobas] p. 16 and theorem 1.8.1
  in [Diestel] p. 22) or, expressed with Eulerian paths: "A connected graph has
  an Euler[[ian] trail from a vertex x to a vertex y (not equal with x) iff x
  and y are the only vertices of odd degree." (see part 2 of theorem 12 in
  [Bollobas] p. 17).  In ~ eulerpath , it is shown that a pseudograph with an
  Eulerian path has either zero or two vertices of odd degree, and ~ eulercrct
  shows that a pseudograph with an Eulerian circuit has only vertices of even
  degree.

$)

  $c EulerPaths $.

  $( Extend class notation with Eulerian paths. $)
  ceupth $a class EulerPaths $.

  ${
    $d f g p $.
    $( Define the set of all Eulerian paths on an arbitrary graph.
       (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by AV,
       18-Feb-2021.) $)
    df-eupth $a |- EulerPaths = ( g e. _V |-> { <. f , p >. |
                 ( f ( Trails ` g ) p
                   /\ f : ( 0 ..^ ( # ` f ) ) -onto-> dom ( iEdg ` g ) ) } ) $.

    $( The set ` ( EulerPaths `` G ) ` of all Eulerian paths on ` G ` is a set
       of pairs by our definition of an Eulerian path, and so is a relation.
       (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by AV,
       18-Feb-2021.) $)
    releupth $p |- Rel ( EulerPaths ` G ) $=
      ( vf vp vg cv ctrls cfv wbr cc0 chash cfzo co ciedg cdm wfo wa cvv ceupth
      df-eupth relmptopab ) BEZCEDEZFGHIUAJGKLUBMGNUAOPDBCQARBDCST $.
  $}

  ${
    $d G f g p $.  $d I g $.
    eupths.i $e |- I = ( iEdg ` G ) $.
    $( The Eulerian paths on the graph ` G ` .  (Contributed by AV,
       18-Feb-2021.)  (Revised by AV, 29-Oct-2021.) $)
    eupths $p |- ( EulerPaths ` G ) = { <. f , p >. | ( f ( Trails ` G ) p
                                /\ f : ( 0 ..^ ( # ` f ) ) -onto-> dom I ) } $=
      ( vg ceupth cfv cv ctrls wbr cc0 chash cfzo cdm wfo copab wceq wtru ciedg
      co wa wb fveq2 syl6eqr dmeqd foeq3 syl adantl cvv cwlks trliswlk ssopab2i
      wcel wksv ssexi a1i df-eupth fvmptopab trud ) BGHAIZDIZBJHKZLVAMHNUAZCOZV
      APZUBADQRSVFVDFIZTHZOZVAPZADFJGBVGBRZVJVFUCZSVKVIVERVLVKVHCVKVHBTHCVGBTUD
      EUEUFVIVEVDVAUGUHUIVCADQZUJUNSVMVAVBBUKHKZADQABDUOVCVNADVBVABULUMUPUQAFDU
      RUSUT $.

    $d F f p $.  $d I f p $.  $d P f p $.
    $( The property " ` <. F , P >. ` is an Eulerian path on the graph ` G ` ".
       An Eulerian path is defined as bijection ` F ` from the edges to a set
       ` 0 ... ( N - 1 ) ` and a function ` P : ( 0 ... N ) --> V ` into the
       vertices such that for each ` 0 <_ k < N ` , ` F ( k ) ` is an edge from
       ` P ( k ) ` to ` P ( k + 1 ) ` .  (Since the edges are undirected and
       there are possibly many edges between any two given vertices, we need to
       list both the edges and the vertices of the path separately.)
       (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by Mario
       Carneiro, 3-May-2015.)  (Revised by AV, 18-Feb-2021.)  (Revised by AV,
       30-Oct-2021.) $)
    iseupth $p |- ( F ( EulerPaths ` G ) P <-> ( F ( Trails ` G ) P
                                /\ F : ( 0 ..^ ( # ` F ) ) -onto-> dom I ) ) $=
      ( vf vp cc0 cv chash cfv cfzo co cdm wfo ceupth ctrls eupths wceq wa
      simpl fveq2 oveq2d adantr eqidd foeq123d reltrls brfvopabrbr ) HFIZJKZLMZ
      DNZUIOHBJKZLMZULBOFGPQBACFCDGERUIBSZGIASZTZUKUNULULUIBUOUPUAUOUKUNSUPUOUJ
      UMHLUIBJUBUCUDUQULUEUFCUGUH $.

    $( The property " ` <. F , P >. ` is an Eulerian path on the graph ` G ` ".
       An Eulerian path is defined as bijection ` F ` from the edges to a set
       ` 0 ... ( N - 1 ) ` and a function ` P : ( 0 ... N ) --> V ` into the
       vertices such that for each ` 0 <_ k < N ` , ` F ( k ) ` is an edge from
       ` P ( k ) ` to ` P ( k + 1 ) ` .  (Since the edges are undirected and
       there are possibly many edges between any two given vertices, we need to
       list both the edges and the vertices of the path separately.)
       (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by Mario
       Carneiro, 3-May-2015.)  (Revised by AV, 18-Feb-2021.)  (Revised by AV,
       30-Oct-2021.) $)
    iseupthf1o $p |- ( F ( EulerPaths ` G ) P <-> ( F ( Walks ` G ) P
                            /\ F : ( 0 ..^ ( # ` F ) ) -1-1-onto-> dom I ) ) $=
      ( ceupth cfv wbr ctrls cc0 chash cfzo co cdm wfo cwlks ccnv anbi2i 3bitri
      wa wfun wf1o iseupth istrl anbi1i anass ancom dff1o3 bicomi ) BACFGHBACIG
      HZJBKGLMZDNZBOZTZBACPGHZUMBQUAZTZTZUOUKULBUBZTABCDEUCUNUOUPTZUMTUOUPUMTZT
      URUJUTUMABCUDUEUOUPUMUFVAUQUOUPUMUGRSUQUSUOUSUQUKULBUHUIRS $.

    $( Properties of an Eulerian path.  (Contributed by Mario Carneiro,
       12-Mar-2015.)  (Revised by AV, 18-Feb-2021.)  (Proof shortened by AV,
       30-Oct-2021.) $)
    eupthi $p |- ( F ( EulerPaths ` G ) P -> ( F ( Walks ` G ) P
                            /\ F : ( 0 ..^ ( # ` F ) ) -1-1-onto-> dom I ) ) $=
      ( ceupth cfv wbr cwlks cc0 chash cfzo co cdm wf1o wa iseupthf1o biimpi )
      BACFGHBACIGHJBKGLMDNBOPABCDEQR $.

    $( The ` F ` function in an Eulerian path is a bijection from a half-open
       range of nonnegative integers to the set of edges.  (Contributed by
       Mario Carneiro, 12-Mar-2015.)  (Revised by AV, 18-Feb-2021.) $)
    eupthf1o $p |- ( F ( EulerPaths ` G ) P
                     -> F : ( 0 ..^ ( # ` F ) ) -1-1-onto-> dom I ) $=
      ( ceupth cfv wbr cwlks cc0 chash cfzo co cdm wf1o eupthi simprd ) BACFGHB
      ACIGHJBKGLMDNBOABCDEPQ $.

    $( Any graph with an Eulerian path is of finite size, i.e. with a finite
       number of edges.  (Contributed by Mario Carneiro, 7-Apr-2015.)  (Revised
       by AV, 18-Feb-2021.) $)
    eupthfi $p |- ( F ( EulerPaths ` G ) P -> dom I e. Fin ) $=
      ( ceupth cfv wbr cc0 chash cfzo cfn wcel cdm cen fzofi wf1o eupthf1o ovex
      co f1oen ensym 3syl enfii sylancr ) BACFGHZIBJGZKTZLMDNZUHOHZUILMIUGPUFUH
      UIBQUHUIOHUJABCDERUHUIBIUGKSUAUHUIUBUCUIUHUDUE $.

    $d F k $.  $d G k $.  $d I k $.  $d N k $.  $d P k $.
    $( The ` N ` -th edge in an eulerian path is the edge having ` P ( N ) `
       and ` P ( N + 1 ) ` as endpoints .  (Contributed by Mario Carneiro,
       12-Mar-2015.)  (Revised by AV, 18-Feb-2021.) $)
    eupthseg $p |- ( ( F ( EulerPaths ` G ) P /\ N e. ( 0 ..^ ( # ` F ) ) ) ->
      { ( P ` N ) , ( P ` ( N + 1 ) ) } C_ ( I ` ( F ` N ) ) ) $=
      ( vk ceupth cfv wbr cc0 chash cfzo co c1 caddc cpr wss fveq2 fveq2d cwlks
      wcel cv wral wi wf1o eupthi simpld wlkvtxeledg wceq oveq1 preq12d sseq12d
      cdm rspcva expcom 3syl imp ) BACHIJZEKBLIMNZUBZEAIZEOPNZAIZQZEBIZDIZRZUSB
      ACUAIJZGUCZAIZVJOPNZAIZQZVJBIZDIZRZGUTUDZVAVHUEUSVIUTDUNBUFABCDFUGUHAGBCD
      FUIVAVRVHVQVHGEUTVJEUJZVNVEVPVGVSVKVBVMVDVJEASVSVLVCAVJEOPUKTULVSVOVFDVJE
      BSTUMUOUPUQUR $.

    $d V k $.
    upgriseupth.v $e |- V = ( Vtx ` G ) $.
    $( The property " ` <. F , P >. ` is an Eulerian path on the pseudograph
       ` G ` ".  (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by
       Mario Carneiro, 3-May-2015.)  (Revised by AV, 18-Feb-2021.)  (Revised by
       AV, 30-Oct-2021.) $)
    upgriseupth $p |- ( G e. UPGraph -> ( F ( EulerPaths ` G ) P
            <-> ( F : ( 0 ..^ ( # ` F ) ) -1-1-onto-> dom I
                  /\ P : ( 0 ... ( # ` F ) ) --> V
                  /\ A. k e. ( 0 ..^ ( # ` F ) )
                 ( I ` ( F ` k ) ) = { ( P ` k ) , ( P ` ( k + 1 ) ) } ) ) ) $=
      ( cupgr wcel ceupth cfv wbr cc0 co wa wf w3a wb a1i cwlks chash cfzo wf1o
      cdm cword cfz cv c1 caddc cpr wceq wral iseupthf1o upgriswlk anbi1d simpr
      simpl2 simpl3 3jca f1of iswrdi syl 3anim1i simp1 jca impbii 3bitrd ) DIJZ
      CADKLMZCADUALMZNCUBLZUCOZEUEZCUDZPZCVNUFJZNVLUGOFAQZBUHZCLELVSALVSUIUJOAL
      UKULBVMUMZRZVOPZVOVRVTRZVJVPSVIACDEGUNTVIVKWAVOABCDEFHGUOUPWBWCSVIWBWCWBV
      OVRVTWAVOUQVQVRVTVOURVQVRVTVOUSUTWCWAVOVOVQVRVTVOVMVNCQVQVMVNCVAVNVLCVBVC
      VDVOVRVTVEVFVGTVH $.

    $( Properties of an Eulerian path in a pseudograph.  (Contributed by Mario
       Carneiro, 12-Mar-2015.)  (Revised by AV, 18-Feb-2021.)  (Proof shortened
       by AV, 30-Oct-2021.) $)
    upgreupthi $p |- ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P )
             -> ( F : ( 0 ..^ ( # ` F ) ) -1-1-onto-> dom I
                  /\ P : ( 0 ... ( # ` F ) ) --> V
                  /\ A. k e. ( 0 ..^ ( # ` F ) )
                   ( I ` ( F ` k ) ) = { ( P ` k ) , ( P ` ( k + 1 ) ) } ) ) $=
      ( cupgr wcel ceupth cfv wbr cc0 chash cfzo co cdm wf1o cfz wf cv c1 caddc
      cpr wceq wral w3a upgriseupth biimpa ) DIJCADKLMNCOLZPQZERCSNUKTQFAUABUBZ
      CLELUMALUMUCUDQALUEUFBULUGUHABCDEFGHUIUJ $.
  $}

  ${
    $d F n $.  $d G n $.  $d I n $.  $d N n $.  $d P n $.
    upgreupthseg.i $e |- I = ( iEdg ` G ) $.
    $( The ` N ` -th edge in an eulerian path is the edge from ` P ( N ) ` to
       ` P ( N + 1 ) ` .  (Contributed by Mario Carneiro, 12-Mar-2015.)
       (Revised by AV, 18-Feb-2021.) $)
    upgreupthseg $p |- ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P
                           /\ N e. ( 0 ..^ ( # ` F ) ) )
                  -> ( I ` ( F ` N ) ) = { ( P ` N ) , ( P ` ( N + 1 ) ) } ) $=
      ( vn cupgr wcel ceupth cfv wbr cc0 co c1 caddc cpr wceq fveq2 fveq2d cfzo
      chash wa cdm wf1o cfz cvtx wf cv wral w3a eqid upgreupthi preq12d eqeq12d
      wi oveq1 rspcva expcom 3ad2ant3 syl 3impia ) CHIZBACJKLZEMBUBKZUANZIZEBKZ
      DKZEAKZEOPNZAKZQZRZVCVDUCVFDUDBUEZMVEUFNCUGKZAUHZGUIZBKZDKZVRAKZVROPNZAKZ
      QZRZGVFUJZUKVGVNUPZAGBCDVPFVPULUMWFVOWGVQVGWFVNWEVNGEVFVRERZVTVIWDVMWHVSV
      HDVREBSTWHWAVJWCVLVREASWHWBVKAVREOPUQTUNUOURUSUTVAVB $.
  $}

  $( An Eulerian path has length ` # ( F ) ` , which is an integer.
     (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by AV,
     18-Feb-2021.) $)
  eupthcl $p |- ( F ( EulerPaths ` G ) P -> ( # ` F ) e. NN0 ) $=
    ( ceupth cfv wbr cwlks cc0 chash cfzo co ciedg cdm wf1o wa wcel eqid eupthi
    cn0 wlkcl adantr syl ) BACDEFBACGEFZHBIEZJKCLEZMBNZOUDSPZABCUEUEQRUCUGUFABC
    TUAUB $.

  $( An Eulerian path is a trail.  (Contributed by Alexander van der Vekens,
     24-Nov-2017.)  (Revised by AV, 18-Feb-2021.) $)
  eupthistrl $p |- ( F ( EulerPaths ` G ) P -> F ( Trails ` G ) P ) $=
    ( ceupth cfv wbr ctrls cc0 chash cfzo co ciedg cdm wfo eqid iseupth simplbi
    ) BACDEFBACGEFHBIEJKCLEZMBNABCRROPQ $.

  $( An Eulerian path is a walk.  (Contributed by AV, 6-Apr-2021.) $)
  eupthiswlk $p |- ( F ( EulerPaths ` G ) P -> F ( Walks ` G ) P ) $=
    ( ceupth cfv wbr ctrls cwlks eupthistrl trliswlk syl ) BACDEFBACGEFBACHEFAB
    CIABCJK $.

  $( The ` P ` function in an Eulerian path is a function from a finite
     sequence of nonnegative integers to the vertices.  (Contributed by Mario
     Carneiro, 12-Mar-2015.)  (Revised by AV, 18-Feb-2021.) $)
  eupthpf $p |- ( F ( EulerPaths ` G ) P
                  -> P : ( 0 ... ( # ` F ) ) --> ( Vtx ` G ) ) $=
    ( ceupth cfv wbr cwlks cc0 chash cfz co cvtx wf eupthiswlk eqid wlkp syl )
    BACDEFBACGEFHBIEJKCLEZAMABCNABCRROPQ $.

  ${
    eupth0.v $e |- V = ( Vtx ` G ) $.
    eupth0.i $e |- I = ( iEdg ` G ) $.
    $( There is an Eulerian path on an empty graph, i.e. a graph with at least
       one vertex, but without an edge.  (Contributed by Mario Carneiro,
       7-Apr-2015.)  (Revised by AV, 5-Mar-2021.)  (Proof shortened by AV,
       30-Oct-2021.) $)
    eupth0 $p |- ( ( A e. V /\ I = (/) )
                  -> (/) ( EulerPaths ` G ) { <. 0 , A >. } ) $=
      ( wcel c0 wceq wa cc0 cop csn cfv wbr cfzo co cdm wf1o eqidd cwlks ceupth
      chash is0wlk mpancom f1o0 hash0 oveq2i fzo0 a1i dmeq dm0 syl6eq f1oeq123d
      eqtri mpbiri anim12i iseupthf1o sylibr ) ADGZCHIZJHKALMZBUANOZKHUCNZPQZCR
      ZHSZJHVBBUBNOUTVCVAVGVBVBIUTVCUTVBTVBBADEUDUEVAVGHHHSUFVAVEHVFHHHVAHTVEHI
      VAVEKKPQHVDKKPUGUHKUIUOUJVAVFHRHCHUKULUMUNUPUQVBHBCFURUS $.

    eupthres.d $e |- ( ph -> F ( EulerPaths ` G ) P ) $.
    eupthres.n $e |- ( ph -> N e. ( 0 ..^ ( # ` F ) ) ) $.
    eupthres.e $e |- ( ph -> ( iEdg ` S ) = ( I |` ( F " ( 0 ..^ N ) ) ) ) $.
    eupthres.h $e |- H = ( F |` ( 0 ..^ N ) ) $.
    eupthres.q $e |- Q = ( P |` ( 0 ... N ) ) $.
    eupthres.s $e |- ( Vtx ` S ) = V $.
    $( The restriction ` <. H , Q >. ` of an Eulerian path ` <. F , P >. ` to
       an initial segment of the path (of length ` N ` ) forms an Eulerian path
       on the subgraph ` S ` consisting of the edges in the initial segment.
       (Contributed by Mario Carneiro, 12-Mar-2015.)  (Revised by Mario
       Carneiro, 3-May-2015.)  (Revised by AV, 6-Mar-2021.)  (Proof shortened
       by AV, 30-Oct-2021.) $)
    eupthres $p |- ( ph -> H ( EulerPaths ` S ) Q ) $=
      ( cfv wbr ceupth cwlks cc0 chash cfzo cima cres cdm wf1o ctrls eupthistrl
      co trliswlk 3syl cvtx wceq a1i wlkres syl trlreslem ciedg eqid iseupthf1o
      wa dmeqd f1oeq3d anbi2d syl5bb mpbir2and ) AGCDUASTZGCDUBSTZUCGUDSUEULZHE
      UCIUEULUFUGZUHZGUIZABCDEFGHIJKLAEBFUASTZEBFUJSTZEBFUBSTMBEFUKZBEFUMUNNDUO
      SJUPARUQOPQURABEFGHIJKLAVPVQMVRUSNPUTVJVKVLDVASZUHZGUIZVDAVKVOVDCGDVSVSVB
      VCAWAVOVKAVTVNVLGAVSVMOVEVFVGVHVI $.
  $}

  ${
    eupthp1.v $e |- V = ( Vtx ` G ) $.
    eupthp1.i $e |- I = ( iEdg ` G ) $.
    eupthp1.f $e |- ( ph -> Fun I ) $.
    eupthp1.a $e |- ( ph -> I e. Fin ) $.
    eupthp1.b $e |- ( ph -> B e. _V ) $.
    eupthp1.c $e |- ( ph -> C e. V ) $.
    eupthp1.d $e |- ( ph -> -. B e. dom I ) $.
    eupthp1.p $e |- ( ph -> F ( EulerPaths ` G ) P ) $.
    eupthp1.n $e |- N = ( # ` F ) $.
    eupthp1.e $e |- ( ph -> E e. ( Edg ` G ) ) $.
    eupthp1.x $e |- ( ph -> { ( P ` N ) , C } C_ E ) $.
    eupthp1.u $e |- ( iEdg ` S ) = ( I u. { <. B , E >. } ) $.
    eupthp1.h $e |- H = ( F u. { <. N , B >. } ) $.
    eupthp1.q $e |- Q = ( P u. { <. ( N + 1 ) , C >. } ) $.
    eupthp1.s $e |- ( Vtx ` S ) = V $.
    eupthp1.l $e |- ( ( ph /\ C = ( P ` N ) ) -> E = { C } ) $.
    $( Append one path segment to an Eulerian path ` <. F , P >. ` to become an
       Eulerian path ` <. H , Q >. ` of the supergraph ` S ` obtained by adding
       the new edge to the graph ` G ` .  (Contributed by Mario Carneiro,
       7-Apr-2015.)  (Revised by AV, 7-Mar-2021.)  (Proof shortened by AV,
       30-Oct-2021.) $)
    eupthp1 $p |- ( ph -> H ( EulerPaths ` S ) Q ) $=
      ( cwlks cfv wbr cc0 chash cfzo cop csn cun cdm wf1o ceupth eupthiswlk syl
      co ciedg wceq a1i cvtx wlkp1 cin c0 wa eupthi eqcomi oveq2i f1oeq2 biimpi
      wb ax-mp adantl 3syl cvv wcel fvex eqeltri f1osng sylancr dmsnopg f1oeq3d
      cedg mpbird fzodisjsn ineq2d disjsn sylibr eqtrd f1oun syl22anc wlkp1lem2
      wn c1 caddc oveq2d cuz cn0 wlkcl eleq1i elnn0uz fzosplitsn dmun f1oeq123d
      sylbb1 iseupthf1o sylanbrc ) AJEFUJUKULUMJUNUKZUOVDZKBGUPUQZURZUSZJUTZJEF
      VAUKULABCDEFGHIJKLMNOPQRSTAHDIVAUKULZHDIUJUKULZUADHIVBZVCZUBUCUDFVEUKZXRV
      FAUEVGZUFUGFVHUKMVFAUHVGUIVIAXTUMLUOVDZLUQZURZKUSZXQUSZURZHLBUPUQZURZUTZA
      YGYJHUTZYHYKYMUTZYGYHVJVKVFZYJYKVJZVKVFYOAYAYBUMHUNUKZUOVDZYJHUTZVLYPUADH
      IKOVMUUBYPYBUUBYPUUAYGVFUUBYPVRYTLUMUOLYTUBVNVOUUAYGYJHVPVSVQVTWAAYQYHBUQ
      ZYMUTZALWBWCBWBWCUUDLYTWBUBHUNWDWERLBWBWBWFWGAYKUUCYHYMAGIWJUKZWCYKUUCVFU
      CBGUUEWHVCZWIWKYRAUMLWLVGAYSYJUUCVJZVKAYKUUCYJUUFWMABYJWCWTUUGVKVFTYJBWNW
      OWPYGYJYHYKHYMWQWRAXPYIXSYLJYNJYNVFAUFVGAXPUMLXAXBVDZUOVDZYIAXOUUHUMUOABC
      DFGHIJKLMNOPQRSTYDUBUCUDYFUFWSXCALUMXDUKWCZUUIYIVFAYAYBUUJUAYCYBYTXEWCZUU
      JDHIXFLXEWCUUKUUJLYTXEUBXGLXHXLVCWAUMLXIVCWPXSYLVFAKXQXJVGXKWKEJFXRYEXRUE
      VNXMXN $.

    $d N k $.  $d P k $.  $d Q k $.  $d ph k $.
    eupth2eucrct.c $e |- ( ph -> C = ( P ` 0 ) ) $.
    $( Append one path segment to an Eulerian path ` <. F , P >. ` which may
       not be an (Eulerian) circuit to become an Eulerian circuit
       ` <. H , Q >. ` of the supergraph ` S ` obtained by adding the new edge
       to the graph ` G ` .  (Contributed by AV, 11-Mar-2021.)  (Proof
       shortened by AV, 30-Oct-2021.) $)
    eupth2eucrct $p |- ( ph -> ( H ( EulerPaths ` S ) Q
                              /\ H ( Circuits ` S ) Q ) ) $=
      ( vk ceupth cfv wbr ccrcts wa eupthp1 simpr ctrls chash eupthistrl adantl
      cc0 wceq cv cfz fveq2 eqeq12d cwlks eupthiswlk syl ciedg cop csn cun cvtx
      co a1i wlkp1lem5 cdm cword wcel wlkf cn0 lencl eleq1i sylbir 3syl rspcdva
      0elfz adantr eqcomd c1 caddc fveq2i cfn cin c0 wrdfin snfi wn cfzo fzonel
      wrddm sylnibr eleq2 notbid syl5ibrcom cvv fvex eqeltri opeldmd mpd disjsn
      nsyld sylibr hashun syl3anc eqcomi opex hashsng ax-mp oveq12i fveq12d w3a
      3eqtrd ovexd wlkp1lem1 3jca fsnunfv eqtr2d iscrct sylanbrc jca mpdan ) AJ
      EFULUMUNZYPJEFUOUMUNZUPABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUQAYPUPZYPYQ
      AYPURYRJEFUSUMUNZVCEUMZJUTUMZEUMZVDYQYPYSAEJFVAVBYRYTVCDUMZCUUBAYTUUCVDZY
      PAUKVEZEUMZUUEDUMZVDUUDUKVCLVFVQZVCUUEVCVDUUFYTUUGUUCUUEVCEVGUUEVCDVGVHAB
      CDEFUKGHIJKLMNOPQRSTAHDIULUMUNZHDIVIUMUNZUADHIVJZVKZUBUCUDFVLUMKBGVMVNVOV
      DAUEVRUFUGFVPUMMVDAUHVRVSAUUIHKVTZWAWBZVCUUHWBZUAUUIUUJUUNUUKDHIKOWCZVKZU
      UNHUTUMZWDWBZUUOUUMHWEUUSLWDWBUUOLUURWDUBWFLWJWGVKWHWIWKAUUCCVDYPACUUCUJW
      LWKYRUUBLWMWNVQZDUUTCVMVNVOZUMZCYRUUAUUTEUVAEUVAVDYRUGVRYRUUAHLBVMZVNZVOZ
      UTUMZUURUVDUTUMZWNVQZUUTUUAUVFVDYRJUVEUTUFWOVRYRHWPWBZUVDWPWBZHUVDWQWRVDZ
      UVFUVHVDAUVIYPAUUIUUJUVIUAUUKUUJUUNUVIUUPUUMHWSVKWHWKUVJYRUVCWTVRYRUVCHWB
      ZXAZUVKAUVMYPAHVTZVCUURXBVQZVDZUVMAUUIUUNUVPUAUUQUUMHXDWHAUVPLUVNWBZUVLAU
      VQXAUVPLUVOWBZXAAUURUVOWBZUVRUVSXAAVCUURXCVRLUURUVOUBWFXEUVPUVQUVRUVNUVOL
      XFXGXHALBHXIXILXIWBALUURXIUBHUTXJXKVRRXLXOXMWKHUVCXNXPHUVDXQXRUVHUUTVDYRU
      URLUVGWMWNLUURUBXSUVCXIWBUVGWMVDLBXTUVCXIYAYBYCVRYFYDYRUUTXIWBZCMWBZUUTDV
      TWBXAZYEZUVBCVDAUWCYPAUVTUWAUWBALWMWNYGSABCDHIKLMNOPQRSTUULUBYHYIWKDXIMUU
      TCYJVKYKYFEJFYLYMYNYO $.
  $}

  $( Lemma for ~ eupth2 .  (Contributed by Mario Carneiro, 8-Apr-2015.) $)
  eupth2lem1 $p |- ( U e. V -> ( U e. if ( A = B , (/) , { A , B } ) <->
      ( A =/= B /\ ( U = A \/ U = B ) ) ) ) $=
    ( wceq c0 wcel wne wo wa wb cpr cif eleq2 bibi1d wn noel a1i simpl neneqd
    simpr nsyl3 2falsed elprg df-ne ibar sylbir sylan9bb ifbothda ) ABEZCFGZABH
    ZCAECBEIZJZKCABLZGZUNKCUJFUOMZGZUNKCDGZFUOFUQEUKURUNFUQCNOUOUQEUPURUNUOUQCN
    OUSUJJZUKUNUKPUTCQRUNUJUTUNABULUMSTUSUJUAUBUCUSUPUMUJPZUNCABDUDVAULUMUNKABU
    EULUMUFUGUHUI $.

  ${
    eupth2lem2.1 $e |- B e. _V $.
    $( Lemma for ~ eupth2 .  (Contributed by Mario Carneiro, 8-Apr-2015.) $)
    eupth2lem2 $p |- ( ( B =/= C /\ B = U ) ->
     ( -. U e. if ( A = B , (/) , { A , B } ) <->
          U e. if ( A = C , (/) , { A , C } ) ) ) $=
      ( wne wceq wa c0 cpr cif wcel wn wo cvv eupth2lem1 ax-mp syl6bbr eleq1d
      wb eqidd olcd biantrud simpr bitrd necon1bbid simpl neeq1 syl5ibcom eqcom
      pm4.71rd ancom 3bitr4g neneqd biorf orcom syl6bb anbi1d syl5bbr 3bitrd
      syl ) BCFZBDGZHZDABGZIABJKZLZMVEACFZBAGZBCGZNZHZDACGIACJKZLZVDVGABVDABFZB
      VFLZVGVDVOVOVIBBGZNZHZVPVDVRVOVDVQVIVDBUAUBUCBOLZVPVSTEABBOPQRVDBDVFVBVCU
      DZSUEUFVDVEVKVHHZVLVDVEVIVHHZWBVDVIVHVIHVEWCVDVIVHVDVBVIVHVBVCUGZBACUHUIU
      KABUJVIVHULUMVDVIVKVHVDVIVJVINZVKVDVJMVIWETVDBCWDUNVJVIUOVAVJVIUPUQURUEVH
      VKULRVLBVMLZVDVNVTWFVLTEACBOPQVDBDVMWASUSUT $.
  $}

  ${
    trlsegvdeg.v $e |- V = ( Vtx ` G ) $.
    trlsegvdeg.i $e |- I = ( iEdg ` G ) $.
    trlsegvdeg.f $e |- ( ph -> Fun I ) $.
    trlsegvdeg.n $e |- ( ph -> N e. ( 0 ..^ ( # ` F ) ) ) $.
    trlsegvdeg.u $e |- ( ph -> U e. V ) $.
    trlsegvdeg.w $e |- ( ph -> F ( Trails ` G ) P ) $.
    $( Lemma for ~ trlsegvdeg .  (Contributed by AV, 20-Feb-2021.) $)
    trlsegvdeglem1 $p |- ( ph -> ( ( P ` N ) e. V
                                /\ ( P ` ( N + 1 ) ) e. V ) ) $=
      ( cc0 cfv co wcel wa wbr chash cfzo c1 caddc ctrls cwlks trliswlk wlkpvtx
      wi cfz elfzofz impel fzofzp1 jca ex 3syl mpd ) AGODUAPZUBQRZGBPHRZGUCUDQZ
      BPHRZSZLADBEUEPTDBEUFPTZUSVCUINBDEUGVDUSVCVDUSSUTVBVDGOURUJQZRUTUSBDEGHIU
      HGOURUKULVDVAVERVBUSBDEVAHIUHOURGUMULUNUOUPUQ $.

    trlsegvdeg.vx $e |- ( ph -> ( Vtx ` X ) = V ) $.
    trlsegvdeg.vy $e |- ( ph -> ( Vtx ` Y ) = V ) $.
    trlsegvdeg.vz $e |- ( ph -> ( Vtx ` Z ) = V ) $.
    trlsegvdeg.ix $e |- ( ph -> ( iEdg ` X )
                                = ( I |` ( F " ( 0 ..^ N ) ) ) ) $.
    trlsegvdeg.iy $e |- ( ph -> ( iEdg ` Y )
                                = { <. ( F ` N ) , ( I ` ( F ` N ) ) >. } ) $.
    trlsegvdeg.iz $e |- ( ph -> ( iEdg ` Z )
                                = ( I |` ( F " ( 0 ... N ) ) ) ) $.
    $( Lemma for ~ trlsegvdeg .  (Contributed by AV, 20-Feb-2021.) $)
    trlsegvdeglem2 $p |- ( ph -> Fun ( iEdg ` X ) ) $=
      ( ciedg cfv wfun cc0 cfzo co cima cres funres syl funeqd mpbird ) AIUDUEZ
      UFFDUGGUHUIUJZUKZUFZAFUFUSNUQFULUMAUPURUAUNUO $.

    $( Lemma for ~ trlsegvdeg .  (Contributed by AV, 20-Feb-2021.) $)
    trlsegvdeglem3 $p |- ( ph -> Fun ( iEdg ` Y ) ) $=
      ( ciedg cfv wfun cop csn cvv wcel fvex pm3.2i funsng mp1i funeqd mpbird
      wa ) AJUDUEZUFGDUEZUSFUEZUGUHZUFZUSUIUJZUTUIUJZUQVBAVCVDGDUKUSFUKULUSUTUI
      UIUMUNAURVAUBUOUP $.

    $( Lemma for ~ trlsegvdeg .  (Contributed by AV, 21-Feb-2021.) $)
    trlsegvdeglem4 $p |- ( ph -> dom ( iEdg ` X ) = ( ( F " ( 0 ..^ N ) )
                                                       i^i dom I ) ) $=
      ( ciedg cfv cdm cc0 cfzo co cima cres cin dmeqd dmres syl6eq ) AIUDUEZUFF
      DUGGUHUIUJZUKZUFUQFUFULAUPURUAUMFUQUNUO $.

    $( Lemma for ~ trlsegvdeg .  (Contributed by AV, 21-Feb-2021.) $)
    trlsegvdeglem5 $p |- ( ph -> dom ( iEdg ` Y ) = { ( F ` N ) } ) $=
      ( ciedg cfv cdm cop csn dmeqd cvv wcel wceq fvex dmsnopg mp1i eqtrd ) AJU
      DUEZUFGDUEZURFUEZUGUHZUFZURUHZAUQUTUBUIUSUJUKVAVBULAURFUMURUSUJUNUOUP $.

    $( Lemma for ~ trlsegvdeg .  (Contributed by AV, 21-Feb-2021.) $)
    trlsegvdeglem6 $p |- ( ph -> dom ( iEdg ` X ) e. Fin ) $=
      ( ciedg cfv cdm cc0 cfzo co cima cin trlsegvdeglem4 wcel wfun ctrls chash
      cfn wbr wf1 trlf1 f1fun 3syl fzofi imafi sylancl infi syl eqeltrd ) AIUDU
      EUFDUGGUHUIZUJZFUFZUKZUQABCDEFGHIJKLMNOPQRSTUAUBUCULAVJUQUMZVLUQUMADUNZVI
      UQUMVMADBEUOUEURUGDUPUEUHUIZVKDUSVNQBDEFMUTVOVKDVAVBUGGVCDVIVDVEVJVKVFVGV
      H $.

    $( Lemma for ~ trlsegvdeg .  (Contributed by AV, 21-Feb-2021.) $)
    trlsegvdeglem7 $p |- ( ph -> dom ( iEdg ` Y ) e. Fin ) $=
      ( ciedg cfv cdm csn cfn trlsegvdeglem5 snfi syl6eqel ) AJUDUEUFGDUEZUGUHA
      BCDEFGHIJKLMNOPQRSTUAUBUCUIULUJUK $.

    $( Formerly part of proof of ~ eupth2lem3 :  If a trail in a graph ` G `
       induces a subgraph ` Z ` with the vertices ` V ` of ` G ` and the edges
       being the edges of the walk, and a subgraph ` X ` with the vertices
       ` V ` of ` G ` and the edges being the edges of the walk except the last
       one, and a subgraph ` Y ` with the vertices ` V ` of ` G ` and one edges
       being the last edge of the walk, then the vertex degree of any vertex
       ` U ` of ` G ` within ` Z ` is the sum of the vertex degree of ` U `
       within ` X ` and the vertex degree of ` U ` within ` Y ` .  Note that
       this theorem would not hold for arbitrary walks (if the last edge was
       identical with a previous edge, the degree of the vertices incident with
       this edge would not be increased because of this edge).  (Contributed by
       Mario Carneiro, 8-Apr-2015.)  (Revised by AV, 20-Feb-2021.) $)
    trlsegvdeg $p |- ( ph -> ( ( VtxDeg ` Z ) ` U )
                     = ( ( ( VtxDeg ` X ) ` U ) + ( ( VtxDeg ` Y ) ` U ) ) ) $=
      ( ciedg cfv cvtx eqid eqtr4d cdm cin cc0 co trlsegvdeglem4 trlsegvdeglem5
      cfzo cima csn c0 ineq12d wcel wn wceq wo fzonel chash wf1 wss ctrls trlf1
      wb wbr syl elfzouz2 fzoss2 3syl f1elima syl3anc mtbiri orcd wa ianor elin
      cuz xchnxbir sylibr eqtrd trlsegvdeglem2 trlsegvdeglem3 eleqtrrd cfz cres
      disjsn cop cun wf f1f resunimafz0 uneq12d 3eqtr4d trlsegvdeglem6 vtxdfiun
      trlsegvdeglem7 ) AKIJIUDUEZJUDUEZCIUFUEZXCUGXDUGXEUGAJUFUEHXESRUHAKUFUEHX
      ETRUHAXCUIZXDUIZUJDUKGUOULZUPZFUIZUJZGDUEZUQZUJZURAXFXKXGXMABCDEFGHIJKLMN
      OPQRSTUAUBUCUMABCDEFGHIJKLMNOPQRSTUAUBUCUNUSAXLXKUTZVAZXNURVBAXLXIUTZVAZX
      LXJUTZVAZVCZXPAXRXTAXQGXHUTZUKGVDAUKDVEUEZUOULZXJDVFZGYDUTZXHYDVGZXQYBVJA
      DBEVHUEVKZYEQBDEFMVIZVLOAYFYCGWCUEUTYGOGUKYCVMGUKYCVNVOYDXJDGXHVPVQVRVSXQ
      XSVTYAXOXQXSWAXLXIXJWBWDWEXKXLWLWEWFABCDEFGHIJKLMNOPQRSTUAUBUCWGABCDEFGHI
      JKLMNOPQRSTUAUBUCWHACHXEPRWIAFDUKGWJULUPWKFXIWKZXLXLFUEWMUQZWNKUDUEXCXDWN
      ADFGNAYHYEYDXJDWOQYIYDXJDWPVOOWQUCAXCYJXDYKUAUBWRWSABCDEFGHIJKLMNOPQRSTUA
      UBUCWTABCDEFGHIJKLMNOPQRSTUAUBUCXBXA $.

    $( Lemma for ~ eupth2lem3 .  (Contributed by AV, 21-Feb-2021.) $)
    eupth2lem3lem1 $p |- ( ph -> ( ( VtxDeg ` X ) ` U ) e. NN0 ) $=
      ( cvtx cfv cn0 cvtxdg cvv wcel cdm cfn wf eleqtrrd elfvexd trlsegvdeglem6
      ciedg eqid vtxdgfisf syl2anc ffvelrnd ) AIUDUEZUFCIUGUEZAIUHUIIUPUEZUJZUK
      UIVAUFVBULACUDIACHVAPRUMZUNABCDEFGHIJKLMNOPQRSTUAUBUCUOVDIVCVAUHVAUQVCUQV
      DUQURUSVEUT $.

    $( Lemma for ~ eupth2lem3 .  (Contributed by AV, 21-Feb-2021.) $)
    eupth2lem3lem2 $p |- ( ph -> ( ( VtxDeg ` Y ) ` U ) e. NN0 ) $=
      ( cvtx cfv cn0 cvtxdg cvv wcel cdm cfn wf eleqtrrd elfvexd trlsegvdeglem7
      ciedg eqid vtxdgfisf syl2anc ffvelrnd ) AJUDUEZUFCJUGUEZAJUHUIJUPUEZUJZUK
      UIVAUFVBULACUDJACHVAPSUMZUNABCDEFGHIJKLMNOPQRSTUAUBUCUOVDJVCVAUHVAUQVCUQV
      DUQURUSVEUT $.

    $d U x $.  $d V x $.  $d X x $.
    eupth2lem3.o $e |- ( ph -> { x e. V | -. 2 || ( ( VtxDeg ` X ) ` x ) } =
        if ( ( P ` 0 ) = ( P ` N ) , (/) , { ( P ` 0 ) , ( P ` N ) } ) ) $.
    ${
      eupth2lem3lem3.e $e |- ( ph -> if- ( ( P ` N ) = ( P ` ( N + 1 ) ) ,
                                     ( I ` ( F ` N ) ) = { ( P ` N ) } ,
                                     { ( P ` N ) , ( P ` ( N + 1 ) ) }
                                     C_ ( I ` ( F ` N ) ) ) ) $.
      $( Lemma for ~ eupth2lem3 , formerly part of proof of ~ eupth2lem3 :  If
         a loop ` { ( P `` N ) , ( P `` ( N + 1 ) ) } ` is added to a trail,
         the degree of the vertices with odd degree remains odd (regarding the
         subgraphs induced by the involved trails).  (Contributed by Mario
         Carneiro, 8-Apr-2015.)  (Revised by AV, 21-Feb-2021.) $)
      eupth2lem3lem3 $p |- ( ( ph /\ ( P ` N ) = ( P ` ( N + 1 ) ) )
             -> ( -. 2 || ( ( ( VtxDeg ` X ) ` U ) + ( ( VtxDeg ` Y ) ` U ) )
                  <-> U e. if ( ( P ` 0 ) = ( P ` ( N + 1 ) ) , (/) ,
                                { ( P ` 0 ) , ( P ` ( N + 1 ) ) } ) ) ) $=
        ( cfv c1 caddc co wceq wa c2 cvtxdg cdvds wbr wn cc0 c0 cpr cif wcel wb
        crab fveq2 breq2d notbid elrab3 syl eleq2d bitr3d adantr eupth2lem3lem1
        cv cz 2z a1i nn0zd eupth2lem3lem2 iddvds ax-mp cvv ad2antrr fvexd ciedg
        cvtx cop csn wss wif ifptru adantl mpbid sneq eqcoms opeq2d sneqd eqtrd
        sylan9eq 1loopgrvd2 syl5breqr trlsegvdeglem1 simpld cdif anim1i eldifsn
        wne dvds0 sylibr 1loopgrvd0 pm2.61dane dvdsadd2b syl112anc nn0cnd bitrd
        addcomd simpr eqeq2d preq2d ifbieq2d 3bitr3d ) AHCUGZHUHUIUJCUGZUKZULZU
        MDJUNUGZUGZUOUPZUQZDURCUGZYBUKZUSYJYBUTZVAZVBZUMYGDKUNUGUGZUIUJZUOUPZUQ
        DYJYCUKZUSYJYCUTZVAZVBAYIYNVCYDADUMBVNZYFUGZUOUPZUQZBIVDZVBZYIYNADIVBZU
        UFYIVCQUUDYIBDIUUADUKZUUCYHUUHUUBYGUMUOUUADYFVEVFVGVHVIAUUEYMDUEVJVKVLY
        EYHYQYEYHUMYOYGUIUJZUOUPZYQYEUMVOVBZYGVOVBZYOVOVBZUMYOUOUPZYHUUJVCUUKYE
        VPVQAUULYDAYGACDEFGHIJKLMNOPQRSTUAUBUCUDVMZVRVLAUUMYDAYOACDEFGHIJKLMNOP
        QRSTUAUBUCUDVSZVRVLYEUUNDYBYEDYBUKZULZUMUMYOUOUUKUMUMUOUPVPUMVTWAUURHEU
        GZKDIWBAKWFUGIUKZYDUUQTWCUURHEWDAUUGYDUUQQWCUURKWEUGZUUSUUSGUGZWGZWHZUU
        SDWHZWGZWHAUVAUVDUKZYDUUQUCWCUURUVCUVFUURUVBUVEUUSYEUUQUVBYBWHZUVEYEYDU
        VBUVHUKZYBYCUTUVBWIZWJZUVIAUVKYDUFVLYDUVKUVIVCAYDUVIUVJWKWLWMZUVHUVEUKY
        BDYBDWNWOWSWPWQWRWTXAYEDYBXGZULZUMURYOUOUUKUMURUOUPVPUMXHWAUVNUUSKDYBIW
        BAUUTYDUVMTWCUVNHEWDAYBIVBZYDUVMAUVOYCIVBACDEFGHIMNOPQRXBXCWCYEUVAUUSUV
        HWGZWHZUKUVMYEUVAUVDUVQAUVGYDUCVLYEUVCUVPYEUVBUVHUUSUVLWPWQWRVLUVNUUGUV
        MULDIUVHXDVBYEUUGUVMAUUGYDQVLXEDIYBXFXIXJXAXKUMYGYOXLXMAUUJYQVCYDAUUIYP
        UMUOAYOYGAYOUUPXNAYGUUOXNXPVFVLXOVGYEYMYTDYEYKYRYLYSUSYEYBYCYJAYDXQZXRY
        EYBYCYJUVRXSXTVJYA $.

      eupth2lem3lem4.i $e |- ( ph -> ( I ` ( F ` N ) ) e. ~P V ) $.
      $( Lemma for ~ eupth2lem3 , formerly part of proof of ~ eupth2lem3 :  If
         an edge (not a loop) is added to a trail, the degree of the end
         vertices of this edge remains odd if it was odd before (regarding the
         subgraphs induced by the involved trails).  (Contributed by Mario
         Carneiro, 8-Apr-2015.)  (Revised by AV, 25-Feb-2021.) $)
      eupth2lem3lem4 $p |- ( ( ph /\ ( P ` N ) =/= ( P ` ( N + 1 ) )
                            /\ ( U = ( P ` N ) \/ U = ( P ` ( N + 1 ) ) ) )
             -> ( -. 2 || ( ( ( VtxDeg ` X ) ` U ) + ( ( VtxDeg ` Y ) ` U ) )
                  <-> U e. if ( ( P ` 0 ) = ( P ` ( N + 1 ) ) , (/) ,
                                { ( P ` 0 ) , ( P ` ( N + 1 ) ) } ) ) ) $=
        ( cfv c1 caddc co wne wceq wo c2 cvtxdg cdvds wbr wn cc0 c0 cpr wcel wb
        cif wa wi cvv fvexd ad2antrr trlsegvdeglem1 simprd neeq1 biimpcd adantl
        imp cpw ciedg cop csn wss adantr df-ne ifpfal sylbi preq1 sseq1d syl6bi
        wif mpd cvtx 1hegrvtxdg1 oveq2d breq2d notbid cv crab cz eupth2lem3lem1
        cn clt nn0zd 2nn a1i 1lt2 ndvdsp1 syl3anc con2d 1z n2dvds1 opoe mpanr12
        ex syl impbid fveq2 elrab3 eleq2d 3bitr2d fvex eupth2lem2 3bitrd expcom
        adantll eqcoms simpld neeq2 preq2 1hegrvtxdg1r necom con1bid jaoi com12
        sylanb 3impia ) AHCUHZHUIUJUKZCUHZULZDYPUMZDYRUMZUNZUODJUPUHZUHZDKUPUHU
        HZUJUKZUQURZUSZDUTCUHZYRUMVAUUIYRVBVEVCZVDZUUBAYSVFZUUKYTUULUUKVGZUUAUU
        MYPDUULYPDUMZUUKUULUUNVFZUUHUOUUDUIUJUKZUQURZUSZDUUIYPUMVAUUIYPVBVEZVCZ
        USZUUJUUOUUGUUQUUOUUFUUPUOUQUUOUUEUIUUDUJUUOHEUHZDYRUVBGUHZKIVHUUOHEVIA
        DIVCZYSUUNQVJAYRIVCZYSUUNAYPIVCZUVEACDEFGHIMNOPQRVKZVLVJUULUUNDYRULZYSU
        UNUVHVGAUUNYSUVHYPDYRVMVNVOVPAUVCIVQVCZYSUUNUGVJAKVRUHUVBUVCVSVTUMZYSUU
        NUCVJUULUUNDYRVBZUVCWAZUULYPYRUMZUVCYPVTUMZYPYRVBZUVCWAZWIZUUNUVLVGZAUV
        QYSUFWBZUULUVQUVPUVRYSUVQUVPVDZAYSUVMUSUVTYPYRWCUVMUVNUVPWDWEVOZUUNUVPU
        VLUUNUVOUVKUVCYPDYRWFWGVNWHWJVPAKWKUHIUMZYSUUNTVJWLWMWNWOAUURUVAVDZYSUU
        NAUUQUUTAUUQUOUUDUQURZUSZDUOBWPZUUCUHZUQURZUSZBIWQZVCZUUTAUUQUWEAUWDUUQ
        AUUDWRVCZUOWTVCZUIUOXAURZUWDUURVGAUUDACDEFGHIJKLMNOPQRSTUAUBUCUDWSXBZUW
        MAXCXDUWNAXEXDUOUUDXFXGXHAUWLUWEUUQVGUWOUWLUWEUUQUWLUWEVFUIWRVCUOUIUQUR
        USUUQXIXJUUDUIXKXLXMXNXOAUVDUWKUWEVDQUWIUWEBDIUWFDUMZUWHUWDUWPUWGUUDUOU
        QUWFDUUCXPWNWOXQXNAUWJUUSDUEXRXSWOZVJYSUUNUVAUUJVDZAUUIYPYRDHCXTYAYDYBY
        CYEUUMYRDUULYRDUMZUUKUULUWSVFZUUHUURUVAUUJUWTUUGUUQUWTUUFUUPUOUQUWTUUEU
        IUUDUJUWTUVBYPDUVCKIVHUWTHEVIAUVFYSUWSAUVFUVEUVGYFVJAUVDYSUWSQVJUULUWSY
        PDULZYSUWSUXAVGAUWSYSUXAYRDYPYGVNVOVPAUVIYSUWSUGVJAUVJYSUWSUCVJUULUWSYP
        DVBZUVCWAZUULUVQUWSUXCVGZUVSUULUVQUVPUXDUWAUWSUVPUXCUWSUVOUXBUVCYRDYPYH
        WGVNWHWJVPAUWBYSUWSTVJYIWMWNWOAUWCYSUWSUWQVJYSUWSUWRAYSUWSVFUUJUUTYSYRY
        PULUWSUUJUSUUTVDYPYRYJUUIYRYPDYQCXTYAYNYKYDYBYCYEYLYMYO $.
    $}

    eupth2lem3.e $e |- ( ph -> ( I ` ( F ` N ) )
                                = { ( P ` N ) , ( P ` ( N + 1 ) ) } ) $.
    $( Lemma for ~ eupth2 .  (Contributed by AV, 25-Feb-2021.) $)
    eupth2lem3lem5 $p |- ( ph -> ( I ` ( F ` N ) ) e. ~P V ) $=
      ( cfv c1 caddc co cpr cpw wcel wa trlsegvdeglem1 prelpwi syl eqeltrd ) AH
      EUGGUGHCUGZHUHUIUJCUGZUKZIULZUFAUSIUMUTIUMUNVAVBUMACDEFGHIMNOPQRUOUSUTIUP
      UQUR $.

    $( Formerly part of proof of ~ eupth2lem3 :  If an edge (not a loop) is
       added to a trail, the degree of vertices not being end vertices of this
       edge remains odd if it was odd before (regarding the subgraphs induced
       by the involved trails).  Remark:  This seems to be not valid for
       hyperedges joining more vertices than ` ( P `` 0 ) ` and
       ` ( P `` N ) ` : if there is a third vertex in the edge, and this vertex
       is already contained in the trail, then the degree of this vertex could
       be affected by this edge!  (Contributed by Mario Carneiro, 8-Apr-2015.)
       (Revised by AV, 25-Feb-2021.) $)
    eupth2lem3lem6 $p |- ( ( ph /\ ( P ` N ) =/= ( P ` ( N + 1 ) )
                          /\ ( U =/= ( P ` N ) /\ U =/= ( P ` ( N + 1 ) ) ) )
      -> ( -. 2 || ( ( ( VtxDeg ` X ) ` U ) + ( ( VtxDeg ` Y ) ` U ) ) <->
         U e. if ( ( P ` 0 ) = ( P ` ( N + 1 ) ) , (/) ,
                 { ( P ` 0 ) , ( P ` ( N + 1 ) ) } ) ) ) $=
      ( cfv c1 caddc co wne wa w3a c2 cvtxdg cdvds wbr wn cc0 wceq cpr cif wcel
      c0 cvv ciedg cop csn 3ad2ant1 cvtx fvexd simpl adantl simpr nelprd df-nel
      wnel wi sylibr neleq2 syl5ibr expd 1hevtxdg0 oveq2d eupth2lem3lem1 nn0cnd
      3imp addid1d eqtrd breq2d notbid wb cv crab fveq2 elrab3 eleq2d bitr3d wo
      3ad2ant3 2thd neeq1 bibi12d syl5ibcom pm5.32rd neneqd biorf syl6bb anbi2d
      syl orcom 3bitr3d eupth2lem1 3bitr4d 3bitrd ) AHCUGZHUHUIUJCUGZUKZDXPUKZD
      XQUKZULZUMZUNDJUOUGZUGZDKUOUGUGZUIUJZUPUQZURUNYDUPUQZURZDUSCUGZXPUTVDYJXP
      VAVBZVCZDYJXQUTVDYJXQVAVBVCZYBYGYHYBYFYDUNUPYBYFYDUSUIUJZYDYBYEUSYDUIYBHE
      UGZDYOGUGZKIVEVEAXRKVFUGYOYPVGVHUTYAUCVIAXRKVJUGIUTYATVIYBHEVKAXRDIVCZYAQ
      VIZYBYOGVKAXRYADYPVQZAYPXPXQVAZUTZXRYAYSVRVRUFUUAXRYAYSXRYAULZYSUUADYTVQZ
      UUBDYTVCURUUCUUBDXPXQYAXSXRXSXTVLZVMYAXTXRXSXTVNZVMVODYTVPVSYPYTDVTWAWBXJ
      WGWCWDAXRYNYDUTYAAYDAYDACDEFGHIJKLMNOPQRSTUAUBUCUDWEWFWHVIWIWJWKAXRYIYLWL
      YAADUNBWMZYCUGZUPUQZURZBIWNZVCZYIYLAYQUUKYIWLQUUIYIBDIUUFDUTZUUHYHUULUUGY
      DUNUPUUFDYCWOWJWKWPXJAUUJYKDUEWQWRVIYBYJXPUKZDYJUTZDXPUTZWSZULZYJXQUKZUUN
      DXQUTZWSZULZYLYMYBUUMUUNULUURUUNULUUQUVAYBUUNUUMUURYBXSXTWLUUNUUMUURWLYBX
      SXTYAAXSXRUUDWTZYAAXTXRUUEWTZXAUUNXSUUMXTUURDYJXPXBDYJXQXBXCXDXEYBUUNUUPU
      UMYBUUNUUOUUNWSZUUPYBUUOURUUNUVDWLYBDXPUVBXFUUOUUNXGXJUUOUUNXKXHXIYBUUNUU
      TUURYBUUNUUSUUNWSZUUTYBUUSURUUNUVEWLYBDXQUVCXFUUSUUNXGXJUUSUUNXKXHXIXLYBY
      QYLUUQWLYRYJXPDIXMXJYBYQYMUVAWLYRYJXQDIXMXJXNXO $.

    $( Lemma for ~ eupth2lem3 :  Combining ~ trlsegvdeg , ~ eupth2lem3lem3 ,
       ~ eupth2lem3lem4 and ~ eupth2lem3lem6 .  (Contributed by Mario Carneiro,
       8-Apr-2015.)  (Revised by AV, 27-Feb-2021.) $)
    eupth2lem3lem7 $p |- ( ph -> ( -. 2 || ( ( VtxDeg ` Z ) ` U )
                         <-> U e. if ( ( P ` 0 ) = ( P ` ( N + 1 ) ) , (/) ,
                                     { ( P ` 0 ) , ( P ` ( N + 1 ) ) } ) ) ) $=
      ( c2 cvtxdg cfv cdvds wbr wn caddc co cc0 c1 wceq cpr cif wcel trlsegvdeg
      c0 breq2d notbid wb csn wss wif ifpprsnss syl eupth2lem3lem3 wo wne wa wi
      eupth2lem3lem5 eupth2lem3lem4 3expa expcom neanior eupth2lem3lem6 pm2.61i
      sylbir pm2.61dane bitrd ) AUGDLUHUIUIZUJUKZULUGDJUHUIUIDKUHUIUIUMUNZUJUKZ
      ULZDUOCUIZHUPUMUNCUIZUQVBWKWLURUSUTZAWGWIAWFWHUGUJACDEFGHIJKLMNOPQRSTUAUB
      UCUDVAVCVDAWJWMVEZHCUIZWLABCDEFGHIJKLMNOPQRSTUAUBUCUDUEAHEUIGUIZWOWLURZUQ
      WOWLUQWPWOVFUQWQWPVGVHUFWOWLWPVIVJZVKDWOUQDWLUQVLZAWOWLVMZVNZWNVOZXAWSWNA
      WTWSWNABCDEFGHIJKLMNOPQRSTUAUBUCUDUEWRABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFVPV
      QVRVSWSULDWOVMDWLVMVNZXBDWODWLVTXAXCWNAWTXCWNABCDEFGHIJKLMNOPQRSTUAUBUCUD
      UEUFWAVRVSWCWBWDWE $.
  $}

  ${
    eupthvdres.v $e |- V = ( Vtx ` G ) $.
    eupthvdres.i $e |- I = ( iEdg ` G ) $.
    eupthvdres.g $e |- ( ph -> G e. W ) $.
    eupthvdres.f $e |- ( ph -> Fun I ) $.
    eupthvdres.p $e |- ( ph -> F ( EulerPaths ` G ) P ) $.
    eupthvdres.h $e |- H = <. V , ( I |` ( F " ( 0 ..^ ( # ` F ) ) ) ) >. $.
    $( Formerly part of proof of ~ eupth2 :  The vertex degree remains the same
       for all vertices if the edges are restricted to the edges of an Eulerian
       path.  (Contributed by Mario Carneiro, 8-Apr-2015.)  (Revised by AV,
       26-Feb-2021.) $)
    eupthvdres $p |- ( ph -> ( VtxDeg ` H ) = ( VtxDeg ` G ) ) $=
      ( cvv cfv cvtx wceq ciedg syl wcel cc0 cfzo co cima cres cop opex eqeltri
      chash a1i fveq2i wa fvex resex pm3.2i opvtxfv syl5eq syl6eq opiedgfv wf1o
      cdm wfo ceupth wbr eupthf1o f1ofo foima 3syl reseq2d wfn wfun funfn sylib
      fnresdm 3eqtrd vtxdeqd ) ADEHOKEOUAAEGFCUBCUJPUCUDZUEZUFZUGZONGVTUHUIUKAE
      QPZGDQPZAWBWAQPZGEWAQNULAGOUAZVTOUAZUMZWDGRWGAWEWFGWCOIDQUNUIFVSFDSPZOJDS
      UNUIUOUPUKZVTGOOUQTURIUSAESPZFWHAWJVTFFVBZUFZFAWJWASPZVTEWASNULAWGWMVTRWI
      VTGOOUTTURAVSWKFAVRWKCVAZVRWKCVCVSWKRACBDVDPVEWNMBCDFJVFTVRWKCVGVRWKCVHVI
      VJAFWKVKZWLFRAFVLWOLFVMVNWKFVOTVPJUSVQ $.
  $}

  ${
    eupth2.v $e |- V = ( Vtx ` G ) $.
    eupth2.i $e |- I = ( iEdg ` G ) $.
    eupth2.g $e |- ( ph -> G e. UPGraph ) $.
    eupth2.f $e |- ( ph -> Fun I ) $.
    eupth2.p $e |- ( ph -> F ( EulerPaths ` G ) P ) $.
    ${
      $d F k $.  $d G k $.  $d H x $.  $d I k $.  $d N k $.  $d P k $.
      $d U x $.  $d V x $.
      eupth2.h $e |- H = <. V , ( I |` ( F " ( 0 ..^ N ) ) ) >. $.
      eupth2.x $e |- X = <. V , ( I |` ( F " ( 0 ..^ ( N + 1 ) ) ) ) >. $.
      eupth2.n $e |- ( ph -> N e. NN0 ) $.
      eupth2.l $e |- ( ph -> ( N + 1 ) <_ ( # ` F ) ) $.
      eupth2.u $e |- ( ph -> U e. V ) $.
      eupth2.o $e |- ( ph -> { x e. V | -. 2 || ( ( VtxDeg ` H ) ` x ) } =
        if ( ( P ` 0 ) = ( P ` N ) , (/) , { ( P ` 0 ) , ( P ` N ) } ) ) $.
      $( Lemma for ~ eupth2 .  (Contributed by Mario Carneiro, 8-Apr-2015.)
         (Revised by AV, 26-Feb-2021.) $)
      eupth2lem3 $p |- ( ph -> ( -. 2 || ( ( VtxDeg ` X ) ` U )
                         <-> U e. if ( ( P ` 0 ) = ( P ` ( N + 1 ) ) , (/) ,
                                     { ( P ` 0 ) , ( P ` ( N + 1 ) ) } ) ) ) $=
        ( vk cfv cop csn cn0 wcel chash c1 caddc co cle wbr cc0 cfzo eupthiswlk
        cwlks wlkcl 3syl nn0p1elfzo syl3anc ctrls eupthistrl syl cvtx wceq cima
        ceupth cres fveq2i cvv fvex eqeltri ciedg resex opvtxfvi eqtri a1i snex
        opiedgfvi cfz cz nn0zd fzval3 eqcomd imaeq2d reseq2d syl5eq cv cpr wral
        cupgr upgrwlkedg syl2anc fveq2 fveq2d oveq1 preq12d sylc eupth2lem3lem7
        eqeq12d rspcv ) ABCDEFHIJGJIEUDZXDHUDZUEZUFZUEZKLMOAIUGUHEUIUDZUGUHZIUJ
        UKULZXIUMUNIUOXIUPULZUHZSAECFVIUDUNZECFURUDUNZXJPCEFUQZCEFUSUTTIXIVAVBZ
        UAAXNECFVCUDUNPCEFVDVEGVFUDZJVGAXRJHEUOIUPULVHZVJZUEZVFUDJGYAVFQVKXTJJF
        VFUDVLLFVFVMVNZHXSHFVOUDVLMFVOVMVNZVPZVQVRVSXHVFUDJVGAXGJYBXFVTZVQVSKVF
        UDZJVGAYFJHEUOXKUPULZVHZVJZUEZVFUDJKYJVFRVKYIJYBHYHYCVPZVQVRVSGVOUDZXTV
        GAYLYAVOUDXTGYAVOQVKXTJYBYDWAVRVSXHVOUDXGVGAXGJYBYEWAVSAKVOUDZYIHEUOIWB
        ULZVHZVJYMYJVOUDYIKYJVORVKYIJYBYKWAVRAYHYOHAYGYNEAIWCUHZYGYNVGAISWDYPYN
        YGUOIWEWFVEWGWHWIUBAXMUCWJZEUDZHUDZYQCUDZYQUJUKULZCUDZWKZVGZUCXLWLZXEIC
        UDZXKCUDZWKZVGZXQAFWMUHXOUUENAXNXOPXPVECUCEFHMWNWOUUDUUIUCIXLYQIVGZYSXE
        UUCUUHUUJYRXDHYQIEWPWQUUJYTUUFUUBUUGYQICWPUUJUUAXKCYQIUJUKWRWQWSXBXCWTX
        A $.
    $}

    $d ph x $.
    $( Lemma for ~ eupth2 (induction basis):  There are no vertices of odd
       degree in an Eulerian path of length 0, having no edge and identical
       endpoints (the single vertex of the Eulerian path).  Formerly part of
       proof for ~ eupth2 .  (Contributed by Mario Carneiro, 8-Apr-2015.)
       (Revised by AV, 26-Feb-2021.) $)
    eupth2lemb $p |- ( ph -> { x e. V | -. 2 || ( ( VtxDeg `
                    <. V , ( I |` ( F " ( 0 ..^ 0 ) ) ) >. ) ` x ) } = (/) ) $=
      ( c2 cc0 cfv cdvds c0 wceq wcel cvv cv cfzo cima cres cop cvtxdg wbr wral
      co wn crab wa cz dvds0 ax-mp cvtx ciedg fvex eqeltri resex pm3.2i opvtxfv
      mp1i eqcomd eleq2d biimpa opiedgfv fzo0 imaeq2i ima0 eqtri reseq2i syl6eq
      2z res0 adantr vtxdg0e syl2anc syl5breqr notnotd ralrimiva rabeq0 sylibr
      eqid ) AMBUAZGFDNNUBUIZUCZUDZUEZUFOOZPUGZUJZUJZBGUHWLBGUKQRAWMBGAWEGSZULZ
      WKWOMNWJPMUMSMNPUGVNMUNUOWOWEWIUPOZSZWIUQOZQRZWJNRAWNWQAGWPWEAWPGGTSZWHTS
      ZULZWPGRAWTXAGEUPOTHEUPURUSFWGFEUQOTIEUQURUSUTVAZWHGTTVBVCVDVEVFAWSWNAWRW
      HQXBWRWHRAXCWHGTTVGVCWHFQUDQWGQFWGDQUCQWFQDNVHVIDVJVKVLFVOVKVMVPWEWIWRWPW
      PWDWRWDVQVRVSVTWAWLBGWBWC $.

    $d F x y $.  $d I x y $.  $d P y $.  $d V x y $.  $d n x y $.  $d ph y $.
    $( Lemma for ~ eupth2 (induction step):  The only vertices of odd degree in
       a graph with an Eulerian path are the endpoints, and then only if the
       endpoints are distinct, if the Eulerian path shortened by one edge has
       this property.  Formerly part of proof for ~ eupth2 .  (Contributed by
       Mario Carneiro, 8-Apr-2015.)  (Revised by AV, 26-Feb-2021.) $)
    eupth2lems $p |- ( ( ph /\ n e. NN0 ) -> ( ( n <_ ( # ` F ) -> { x e. V |
          -. 2 || ( ( VtxDeg ` <. V , ( I |` ( F " ( 0 ..^ n ) ) ) >. ) ` x ) }
             = if ( ( P ` 0 ) = ( P ` n ) , (/) , { ( P ` 0 ) , ( P ` n ) } ) )
                       -> ( ( n + 1 ) <_ ( # ` F ) -> { x e. V | -. 2 ||
          ( ( VtxDeg ` <. V , ( I |` ( F " ( 0 ..^ ( n + 1 ) ) ) ) >. ) ` x ) }
                          = if ( ( P ` 0 ) = ( P ` ( n + 1 ) ) , (/) ,
                                 { ( P ` 0 ) , ( P ` ( n + 1 ) ) } ) ) ) ) $=
      ( cn0 wcel wa cfv wbr cc0 wceq vy cv chash cle c2 cfzo co cima cop cvtxdg
      cres cdvds wn crab c0 cpr cif wi c1 caddc nn0re adantl lep1d peano2re syl
      ceupth cwlks eupthiswlk wlkcl 3syl nn0red adantr letr syl3anc mpand fveq2
      cr imim1d breq2d notbid elrab cupgr ad3antrrr wfun simpr ad2antrr simplrr
      eqid simprl eupth2lem3 pm5.32da cpw 0elpw wss wlkepvtx simpld cfz wf wlkp
      cuz cz peano2nn0 nn0uz syl6eleq nn0zd elfz5 syl2anc mpbird ffvelrnd prssd
      wb prex elpw sylibr ifcl sylancr elpwid sseld pm4.71rd bitr4d eqrdv exp32
      syl5bb a2d syld ) ADUBZNOZPZYFEUCQZUDRZUEBUBZHGESYFUFUGUHUKUIZUJQQULRUMBH
      UNSCQZYFCQZTUOYMYNUPUQTZURYFUSUTUGZYIUDRZYOURYQUEYKHGESYPUFUGUHUKUIZUJQZQ
      ZULRZUMZBHUNZYMYPCQZTZUOYMUUDUPZUQZTZURYHYQYJYOYHYFYPUDRZYQYJYHYFYGYFVQOZ
      AYFVAVBZVCYHUUJYPVQOZYIVQOZUUIYQPYJURUUKYHUUJUULUUKYFVDVEAUUMYGAYIAECFVFQ
      RZECFVGQRZYINOZMCEFVHZCEFVIVJZVKVLYFYPYIVMVNVOVRYHYQYOUUHYHYQYOUUHYHYQYOP
      ZPZUAUUCUUGUAUBZUUCOUVAHOZUEUVAYSQZULRZUMZPZUUTUVAUUGOZUUBUVEBUVAHYKUVATZ
      UUAUVDUVHYTUVCUEULYKUVAYSVPVSVTWAUUTUVFUVBUVGPUVGUUTUVBUVEUVGUUTUVBPBCUVA
      EFYLGYFHYRIJAFWBOYGUUSUVBKWCAGWDYGUUSUVBLWCAUUNYGUUSUVBMWCYLWHYRWHYHYGUUS
      UVBAYGWEWFUUTYQUVBYHYQYOWIZVLUUTUVBWEYHYQYOUVBWGWJWKUUTUVGUVBUUTUUGHUVAUU
      TUUGHUUTUOHWLZOUUFUVJOZUUGUVJOHWMUUTUUFHWNUVKUUTYMUUDHAYMHOZYGUUSAUUNUUOU
      VLMUUQUUOUVLYICQHOCEFHIWOWPVJWFUUTSYIWQUGZHYPCAUVMHCWRZYGUUSAUUNUUOUVNMUU
      QCEFHIWSVJWFUUTYPUVMOZYQUVIUUTYPSWTQZOYIXAOUVOYQXKUUTYPNUVPYHYPNOZUUSYGUV
      QAYFXBVBVLXCXDUUTYIAUUPYGUUSUURWFXEYPSYIXFXGXHXIXJUUFHYMUUDXLXMXNUUEUOUUF
      UVJXOXPXQXRXSXTYCYAYBYDYE $.

    $d F m n x $.  $d I m n $.  $d P m n $.  $d V m n $.  $d m n x ph $.
    $( The only vertices of odd degree in a graph with an Eulerian path are the
       endpoints, and then only if the endpoints are distinct.  (Contributed by
       Mario Carneiro, 8-Apr-2015.)  (Revised by AV, 26-Feb-2021.) $)
    eupth2 $p |- ( ph -> { x e. V | -. 2 || ( ( VtxDeg ` G ) ` x ) }
                         = if ( ( P ` 0 ) = ( P ` ( # ` F ) ) , (/) ,
                                { ( P ` 0 ) , ( P ` ( # ` F ) ) } ) ) $=
      ( c2 cc0 cfv cdvds wbr wceq c0 wi vm vn cv chash cfzo co cima cres cvtxdg
      cop wn crab cpr cif eqid eupthvdres fveq1d breq2d notbid rabbidv cn0 wcel
      cupgr ceupth cwlks eupthiswlk wlkcl 3syl nn0re leidd c1 caddc breq1 oveq2
      imaeq2d reseq2d opeq2d fveq2d fveq2 eqeq2d preq2d ifbieq2d eqeq12d imbi2d
      cle imbi12d eupth2lemb iftruei syl6eqr a1d eupth2lems expcom nn0ind mpcom
      a2d mpid eqtr3d ) AMBUCZGFDNDUDOZUEUFZUGZUHZUJZUIOZOZPQZUKZBGULZMWREUIOZO
      ZPQZUKZBGULNCOZWSCOZRZSXMXNUMZUNZAXGXLBGAXFXKAXEXJMPAWRXDXIACDEXCFGVCHIJK
      LXCUOUPUQURUSUTWSVAVBZAXHXQRZADCEVDOQDCEVEOQXRLCDEVFCDEVGVHXRAWSWSWEQZXSX
      RWSWSVIVJAUAUCZWSWEQZMWRGFDNYAUEUFZUGZUHZUJZUIOZOZPQZUKZBGULZXMYACOZRZSXM
      YLUMZUNZRZTZTANWSWEQZMWRGFDNNUEUFZUGZUHZUJZUIOZOZPQZUKZBGULZXMXMRZSXMXMUM
      ZUNZRZTZTAUBUCZWSWEQZMWRGFDNUUMUEUFZUGZUHZUJZUIOZOZPQZUKZBGULZXMUUMCOZRZS
      XMUVDUMZUNZRZTZTAUUMVKVLUFZWSWEQZMWRGFDNUVJUEUFZUGZUHZUJZUIOZOZPQZUKZBGUL
      ZXMUVJCOZRZSXMUWAUMZUNZRZTZTAXTXSTZTUAUBWSYANRZYQUULAUWHYBYRYPUUKYANWSWEV
      MUWHYKUUGYOUUJUWHYJUUFBGUWHYIUUEUWHYHUUDMPUWHWRYGUUCUWHYFUUBUIUWHYEUUAGUW
      HYDYTFUWHYCYSDYANNUEVNVOVPVQVRUQURUSUTUWHYMUUHYNUUISUWHYLXMXMYANCVSZVTUWH
      YLXMXMUWIWAWBWCWFWDYAUUMRZYQUVIAUWJYBUUNYPUVHYAUUMWSWEVMUWJYKUVCYOUVGUWJY
      JUVBBGUWJYIUVAUWJYHUUTMPUWJWRYGUUSUWJYFUURUIUWJYEUUQGUWJYDUUPFUWJYCUUODYA
      UUMNUEVNVOVPVQVRUQURUSUTUWJYMUVEYNUVFSUWJYLUVDXMYAUUMCVSZVTUWJYLUVDXMUWKW
      AWBWCWFWDYAUVJRZYQUWFAUWLYBUVKYPUWEYAUVJWSWEVMUWLYKUVTYOUWDUWLYJUVSBGUWLY
      IUVRUWLYHUVQMPUWLWRYGUVPUWLYFUVOUIUWLYEUVNGUWLYDUVMFUWLYCUVLDYAUVJNUEVNVO
      VPVQVRUQURUSUTUWLYMUWBYNUWCSUWLYLUWAXMYAUVJCVSZVTUWLYLUWAXMUWMWAWBWCWFWDY
      AWSRZYQUWGAUWNYBXTYPXSYAWSWSWEVMUWNYKXHYOXQUWNYJXGBGUWNYIXFUWNYHXEMPUWNWR
      YGXDUWNYFXCUIUWNYEXBGUWNYDXAFUWNYCWTDYAWSNUEVNVOVPVQVRUQURUSUTUWNYMXOYNXP
      SUWNYLXNXMYAWSCVSZVTUWNYLXNXMUWOWAWBWCWFWDAUUKYRAUUGSUUJABCDEFGHIJKLWGUUH
      SUUIXMUOWHWIWJUUMVAVBZAUVIUWFAUWPUVIUWFTABCUBDEFGHIJKLWKWLWOWMWPWNWQ $.
  $}

  ${
    $d F x $.  $d G x $.  $d P x $.  $d V x $.
    eulerpathpr.v $e |- V = ( Vtx ` G ) $.
    $( A graph with an Eulerian path has either zero or two vertices of odd
       degree.  (Contributed by Mario Carneiro, 7-Apr-2015.)  (Revised by AV,
       26-Feb-2021.) $)
    eulerpathpr $p |- ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P ) ->
      ( # ` { x e. V | -. 2 || ( ( VtxDeg ` G ) ` x ) } ) e. { 0 , 2 } ) $=
      ( wcel cfv wbr wa c2 wn chash cc0 wceq c0 cpr simpr fveq2 cvv cupgr cdvds
      ceupth cv cvtxdg crab ciedg eqid simpl wfun cuhgr upgruhgr uhgrfun adantr
      cif syl eupth2 fveq2d eleq1d hash0 c0ex prid1 eqeltri a1i wne neqned fvex
      wb hashprg mp2an sylib 2ex prid2 syl6eqel ifbothda eqeltrd ) DUAGZCBDUCHI
      ZJZKAUDDUEHHUBILAEUFZMHNBHZCMHZBHZOZPWAWCQZUOZMHZNKQZVSVTWFMVSABCDDUGHZEF
      WIUHZVQVRUIVQWIUJZVRVQDUKGWKDULWIDWJUMUPUNVQVRRUQURWDPMHZWHGZWEMHZWHGWGWH
      GVSPWEPWFOWLWGWHPWFMSUSWEWFOWNWGWHWEWFMSUSWMVSWDJWLNWHUTNKVAVBVCVDVSWDLZJ
      ZWNKWHWPWAWCVEZWNKOZWPWAWCVSWORVFWATGWCTGWQWRVHNBVGWBBVGWAWCTTVIVJVKNKVLV
      MVNVOVP $.

    $d G f p $.  $d V f p $.  $d G f p x $.
    $( A pseudograph with an Eulerian path has either zero or two vertices of
       odd degree.  (Contributed by Mario Carneiro, 7-Apr-2015.)  (Revised by
       AV, 26-Feb-2021.) $)
    eulerpath $p |- ( ( G e. UPGraph /\ ( EulerPaths ` G ) =/= (/) ) ->
      ( # ` { x e. V | -. 2 || ( ( VtxDeg ` G ) ` x ) } ) e. { 0 , 2 } ) $=
      ( vf vp ceupth cfv c0 wne cupgr wcel c2 cvtxdg wbr wex wceq exlimiv sylbi
      cv cdvds wn crab chash cc0 cpr wi wrel wb releupth reldm0 ax-mp necon3bii
      cdm n0 bitri vex eldm eulerpathpr expcom impcom ) BGHZIJZBKLZMATBNHHUAOUB
      ACUCUDHUEMUFLZVCETZVBUNZLZEPZVDVEUGZVCVGIJVIVBIVGIVBUHVBIQVGIQUIBUJVBUKUL
      UMEVGUOUPVHVJEVHVFFTZVBOZFPVJFVFVBEUQURVLVJFVDVLVEAVKVFBCDUSUTRSRSVA $.

    $( A pseudograph with an Eulerian circuit ` <. F , P >. ` (an "Eulerian
       pseudograph") has only vertices of even degree.  (Contributed by AV,
       12-Mar-2021.) $)
    eulercrct $p |- ( ( G e. UPGraph /\ F ( EulerPaths ` G ) P
                                     /\ F ( Circuits ` G ) P )
                      -> A. x e. V 2 || ( ( VtxDeg ` G ) ` x ) ) $=
      ( cupgr wcel ceupth cfv wbr ccrcts w3a c2 cv cvtxdg wn wceq c0 wral cdvds
      crab cc0 chash cpr wa ciedg eqid simpl wfun cuhgr upgruhgr uhgrfun adantr
      cif syl simpr eupth2 3adant3 ctrls crctprop simprd 3ad2ant3 eqeq2d rabeq0
      iftrued notnotr ralimi sylbi syl6bi mpd ) DGHZCBDIJKZCBDLJKZMZNAODPJJUAKZ
      QZAEUBZUCBJZCUDJBJZRZSVSVTUEZUOZRZVPAETZVLVMWDVNVLVMUFABCDDUGJZEFWFUHZVLV
      MUIVLWFUJZVMVLDUKHWHDULWFDWGUMUPUNVLVMUQURUSVOWDVRSRZWEVOWCSVRVOWASWBVNVL
      WAVMVNCBDUTJKWABCDVAVBVCVFVDWIVQQZAETWEVQAEVEWJVPAEVPVGVHVIVJVK $.
  $}

  ${
    $d F i x y z $.  $d H i x y z $.  $d I i x y z $.  $d N x z $.  $d P x $.
    $d S x y z $.  $d V x $.  $d ph i x y z $.
    eucrctshift.v $e |- V = ( Vtx ` G ) $.
    eucrctshift.i $e |- I = ( iEdg ` G ) $.
    eucrctshift.c $e |- ( ph -> F ( Circuits ` G ) P ) $.
    eucrctshift.n $e |- N = ( # ` F ) $.
    eucrctshift.s $e |- ( ph -> S e. ( 0 ..^ N ) ) $.
    eucrctshift.h $e |- H = ( F cyclShift S ) $.
    eucrctshift.q $e |- Q = ( x e. ( 0 ... N ) |-> if ( x <_ ( N - S ) ,
                           ( P ` ( x + S ) ) , ( P ` ( ( x + S ) - N ) ) ) ) $.
    eucrctshift.e $e |- ( ph -> F ( EulerPaths ` G ) P ) $.
    $( Cyclically shifting the indices of an Eulerian circuit ` <. F , P >. `
       results in an Eulerian circuit ` <. H , Q >. ` .  (Contributed by AV,
       15-Mar-2021.)  (Proof shortened by AV, 30-Oct-2021.) $)
    eucrctshift $p |- ( ph -> ( H ( EulerPaths ` G ) Q
                             /\ H ( Circuits ` G ) Q ) ) $=
      ( wcel vi vy vz ceupth cfv wbr ccrcts ctrls cc0 chash cfzo cdm crctcshtrl
      co wfo wa simpr wf1o eupthf1o adantr wi wf cwlks cword trliswlk wlkf wrdf
      syl 3syl wf1 df-f1o cv wceq wrex wral dffo3 caddc cmo crctiswlk cn0 lencl
      ccsh oveq2i eleq2i cle cmin clt elfzonn0 adantl nn0sub syl2an biimpac w3a
      cn wb elfzo0 simp2 sylbi ad2antll cr nn0re ad2antrr nnre elfzoelz readdcl
      zred elfzole1 addge01 mpbid lelttrdi ex com23 3impia adantld imp 3ad2ant1
      3jca elfzoel2 ltsubaddd mpbird impcom syl3anbrc oveq1 oveq1d cc sylan9eqr
      eqtrd eqcomd rspcedeq2vd nn0cn 3ad2ant2 cz jca exp31 syl5bi sylibr biimpi
      zcnd ad3antrrr simplbiim anim12ci zmodidfzoimp nncn subadd23d simpll nn0z
      npcan wn nnz znnsub biimp3a nnnn0d nn0addcld eqeltrd simplr2 subcl addcom
      ltnle simpl sublt0d biimprd sylbird resubcl ltaddneg eqbrtrrd simp3 simp1
      3adant2 nppcand comraddd addmodid pm2.61ian rexeqi sylc reximi cshwidxmod
      syl2an3an eqeq2d rexbidva crctcshlem2 oveq2d fveq1i a1i eqeq12d rexeqbidv
      fveq2 rexlimdva ralimdva anim1i ancomd com13 mpd mpdan iseupth crctcsh )
      AHDGUDUEZUFZHDGUGUEZUFAHDGUHUEUFZUIHUJUEZUKUNZIULZHUOZUPZUWQAUWSUXDABCDEF
      GHIJKLMNOPQRUMAUWSUPZUWSUXCAUWSUQUXEUIFUJUEZUKUNZUXBFURZUXCAUXHUWSAFCUWPU
      FUXHSCFGIMUSVHUTUWSAUXHUXCVAZUWSUXAUXBHVBZAUXIVAUWSHDGVCUEZUFHUXBVDZTUXJD
      HGVEDHGIMVFUXBHVGVIUXHAUXJUXCUXHUXGUXBFVJUXGUXBFUOZAUXJUXCVAVAZUXGUXBFVKU
      XMUXGUXBFVBUAVLZUBVLZFUEZVMZUBUXGVNZUAUXBVOZUXNUBUAUXGUXBFVPUXTAUXJUXCUXT
      AUPZUXJUPZUXJUXOUCVLZHUEZVMZUCUXAVNZUAUXBVOZUPUXCUYBUYGUXJUYAUYGUXJAUXTUY
      GAUXSUYFUAUXBAUXOUXBTZUPZUXRUYFUBUXGUYIUXPUXGTZUPZUXRUYFUYKUXRUPZUYFUXQUY
      CFEWBUNZUEZVMZUCUIJUKUNZVNZUYLUYQUXQUYCEVQUNZUXFVRUNZFUEZVMZUCUYPVNZUYLUX
      PUYSVMZUCUYPVNZVUBUYKVUDUXRUYIUYJVUDAUYJVUDVAZUYHAFCUWRUFZEUYPTZVUENPVUFF
      CUXKUFZFUXLTZVUGVUEVAZCFGVSZCFGIMVFZVUIUXFVTTZVUJUXBFWAVUGEUXGTZVUMVUEUYP
      UXGEJUXFUIUKOWCZWDVUMVUNUYJVUDVUMVUNUPZUYJUPZVUCUCUXGVNZVUDEUXPWEUFZVUQVU
      RVUSVUQUPZUCUXPEWFUNZUXGUXPUYSVUTVVAVTTZUXFWNTZVVAUXFWGUFZVVAUXGTVUQVUSVV
      BVUPEVTTZUXPVTTZVUSVVBWOUYJVUNVVEVUMEUXFWHWIUXPUXFWHEUXPWJWKWLUYJVVCVUSVU
      PUYJVVFVVCUXPUXFWGUFZWMZVVCUXPUXFWPZVVFVVCVVGWQWRWSVUQVVDVUSUYJVUPVVDUYJV
      VHVUPVVDVAVVIVVHVUPVVDVVHVUPUPZVVDUXPUXFEVQUNZWGUFZVVHVUPVVLVVHVUNVVLVUMV
      VFVVCVVGVUNVVLVAVVFVVCUPZVUNVVGVVLVVMVUNVVGVVLVAVVMVUNUPZUXPUXFVVKVVNUXPW
      TTZUXFWTTZVVKWTTZVVFVVOVVCVUNUXPXAZXBVVMVVPVUNVVCVVPVVFUXFXCZWIZUTVVMVVPE
      WTTZVVQVUNVVTVUNEEUIUXFXDZXFZUXFEXEWKXQVVNUIEWEUFZUXFVVKWEUFZVUNVWDVVMEUI
      UXFXGWIVVMVVPVWAVWDVWEWOVUNVVTVWCUXFEXHWKXIXJXKXLXMXNXOVVJUXPEUXFVVHVVOVU
      PVVFVVCVVOVVGVVRXPUTVUNVWAVVHVUMVWCWSVUNVVPVVHVUMVUNUXFEUIUXFXRXFWSXSXTXK
      WRYAWIVVAUXFWPYBVUTUYCVVAVMZUPUYSUXPVWFVUTUYSVVAEVQUNZUXFVRUNZUXPVWFUYRVW
      GUXFVRUYCVVAEVQYCYDVUTVWHUXPUXFVRUNZUXPVUTVWGUXPUXFVRVUTUXPYETZEYETZUPZVW
      GUXPVMVUQVWLVUSVUPVWKUYJVWJVUNVWKVUMVUNEVWBYRWIZUYJUXPUXPUIUXFXDYRZUUAWIU
      XPEUUGVHYDUYJVWIUXPVMVUSVUPUXPUXFUUBWSYGYFYHYIVUSUUHZVUQUPZUCVVAUXFVQUNZU
      XGUXPUYSVWPVWQVTTZVVCVWQUXFWGUFZWMZVWQUXGTVUQVWOVWTUYJVUPVWOVWTVAZUYJVVHV
      UPVXAVAVVIVVHVUNVXAVUMVUNVVEVVCEUXFWGUFZWMZVVHVXAEUXFWPVVFVVGVXCVXAVAVVCV
      VFVVGUPZVXCVWOVWTVXDVXCUPZVWOUPZVWRVVCVWSVXEVWRVWOVXEVWQUXPUXFEWFUNZVQUNV
      TVXEUXPEUXFVVFVWJVVGVXCUXPYJZXBVXCVWKVXDVVEVVCVWKVXBEYJXPZWIVXCUXFYETZVXD
      VVCVVEVXJVXBUXFUUCYKWIZUUDVXEUXPVXGVVFVVGVXCUUEVXEVXGVXCVXGWNTZVXDVVEVVCV
      XBVXLVVEEYLTZUXFYLTVXBVXLWOVVCEUUFUXFUUIEUXFUUJWKUUKWIUULUUMUUNUTVVEVVCVX
      BVXDVWOUUOVXFUXFVVAVQUNZVWQUXFWGVXFVXJVVAYETZUPZVXNVWQVMVXEVXPVWOVXEVXJVX
      OVXKVXDVWJVWKVXOVXCVVFVWJVVGVXHUTVXIUXPEUUPWKYMUTUXFVVAUUQVHVXFVVAUIWGUFZ
      VXNUXFWGUFZVXEVWOVXQVXDVVOVWAVWOVXQVAVXCVVFVVOVVGVVRUTZVVEVVCVWAVXBEXAXPZ
      VVOVWAUPZVWOUXPEWGUFZVXQUXPEUURVYAVXQVYBVYAUXPEVVOVWAUUSVVOVWAUQUUTUVAUVB
      WKXOVXFVVAWTTZVVPUPZVXQVXRWOVXEVYDVWOVXEVYCVVPVXDVVOVWAVYCVXCVXSVXTUXPEUV
      CWKVXCVVPVXDVVCVVEVVPVXBVVSYKWIYMUTVVAUXFUVDVHXIUVEXQYNUVHYOXNWRYAYAVWQUX
      FWPYPVWPUYCVWQVMZUPUYSUXPVYEVWPUYSVWQEVQUNZUXFVRUNZUXPVYEUYRVYFUXFVRUYCVW
      QEVQYCYDVWPVYGUXFUXPVQUNZUXFVRUNZUXPVWPVYFVYHUXFVRVWPVWKVWJVXJWMZVYFVYHVM
      VUQVYJVWOVUQVWKVWJVXJVUPVWKUYJVWMUTUYJVWJVUPVWNWIVUMVXJVUNUYJUXFYJXBXQWIV
      YJVYFUXPUXFVWKVWJVXJWQZVWKVWJVXJUVFZVYJUXPEUXFVYKVWKVWJVXJUVGVYLUVIUVJVHY
      DVWPVVHVYIUXPVMUYJVVHVWOVUPUYJVVHVVIYQWSUXPUXFUVKVHYGYFYHYIUVLVUCUCUYPUXG
      VUOUVMYPYNYOVHVIUVNUTXOUTVUCVUAUCUYPUXPUYSFUWFUVOVHUYLUYOVUAUCUYPUYLUYCUY
      PTZUPUYNUYTUXQUYLVUIVXMVYMUYCUXGTZUYNUYTVMAVUIUYHUYJUXRAVUFVUHVUINVUKVULV
      IYSAVXMUYHUYJUXRAVUGVXMPEUIJXDVHYSVYMVYNUYPUXGUYCVUOWDYQUYCEUXBFUVPUVQUVR
      UVSXTUYLUYEUYOUCUXAUYPAUXAUYPVMUYHUYJUXRAUWTJUIUKACEFGHIJKLMNOPQUVTUWAYSU
      YLUXOUXQUYDUYNUYKUXRUQUYDUYNVMUYLUYCHUYMQUWBUWCUWDUWEXTXKUWGUWHYAUWIUWJUC
      UAUXAUXBHVPYPYNYTYTUWKVHYAUWLYMUWMDHGIMUWNYPABCDEFGHIJKLMNOPQRUWOYM $.
  $}

  ${
    eucrct2eupth1.v $e |- V = ( Vtx ` G ) $.
    eucrct2eupth1.i $e |- I = ( iEdg ` G ) $.
    eucrct2eupth1.d $e |- ( ph -> F ( EulerPaths ` G ) P ) $.
    eucrct2eupth1.c $e |- ( ph -> F ( Circuits ` G ) P ) $.
    eucrct2eupth1.s $e |- ( Vtx ` S ) = V $.
    ${
      eucrct2eupth1.g $e |- ( ph -> 0 < ( # ` F ) ) $.
      eucrct2eupth1.n $e |- ( ph -> N = ( ( # ` F ) - 1 ) ) $.
      eucrct2eupth1.e $e |- ( ph -> ( iEdg ` S )
                                    = ( I |` ( F " ( 0 ..^ N ) ) ) ) $.
      eucrct2eupth1.h $e |- H = ( F |` ( 0 ..^ N ) ) $.
      eucrct2eupth1.q $e |- Q = ( P |` ( 0 ... N ) ) $.
      $( Removing one edge ` ( I `` ( F `` N ) ) ` from a nonempty graph ` G `
         with an Eulerian circuit ` <. F , P >. ` results in a graph ` S ` with
         an Eulerian path ` <. H , Q >. ` .  This is the special case of
         ~ eucrct2eupth (with ` J = ( N - 1 ) ` ) where the last segment/edge
         of the circuit is removed.  (Contributed by AV, 11-Mar-2021.) $)
      eucrct2eupth1 $p |- ( ph -> H ( EulerPaths ` S ) Q ) $=
        ( chash cfv c1 cmin co cc0 cfzo cn wcel clt wbr ceupth cwlks eupthiswlk
        wi cn0 wlkcl wa cz nn0z anim1i elnnz sylibr ex syl 3syl fzo0end eqeltrd
        mpd eupthres ) ABCDEFGHIJKLMAIEUAUBZUCUDUEZUFVKUGUEZQAVKUHUIZVLVMUIAUFV
        KUJUKZVNPAEBFULUBUKEBFUMUBUKZVOVNUOZMBEFUNVPVKUPUIZVQBEFUQVRVOVNVRVOURV
        KUSUIZVOURVNVRVSVOVKUTVAVKVBVCVDVEVFVIVKVGVEVHRSTOVJ $.
    $}

    $d F x $.  $d I x $.  $d J x $.  $d K x $.  $d N x $.  $d P x $.  $d V x $.
    $d ph x $.
    eucrct2eupth.n $e |- ( ph -> N = ( # ` F ) ) $.
    eucrct2eupth.j $e |- ( ph -> J e. ( 0 ..^ N ) ) $.
    eucrct2eupth.e $e |- ( ph -> ( iEdg ` S )
                               = ( I |` ( F " ( ( 0 ..^ N ) \ { J } ) ) ) ) $.
    eucrct2eupth.k $e |- K = ( J + 1 ) $.
    eucrct2eupth.h $e |- H = ( ( F cyclShift K ) |` ( 0 ..^ ( N - 1 ) ) ) $.
    eucrct2eupth.q $e |- Q = ( x e. ( 0 ..^ N ) |-> if ( x <_ ( N - K ) ,
                           ( P ` ( x + K ) ) , ( P ` ( ( x + K ) - N ) ) ) ) $.
    $( Removing one edge ` ( I `` ( F `` J ) ) ` from a graph ` G ` with an
       Eulerian circuit ` <. F , P >. ` results in a graph ` S ` with an
       Eulerian path ` <. H , Q >. ` .  (Contributed by AV, 17-Mar-2021.) $)
    eucrct2eupth $p |- ( ph -> H ( EulerPaths ` S ) Q ) $=
      ( c1 cmin co wceq ceupth cfv wbr wa ccsh cc0 cfzo cres chash cfz cv caddc
      cle cif cmpt adantl eqcomi oveq2i oveq1 cc cn0 cn clt w3a elfzo0 3ad2ant2
      wcel nncn sylbi npcan1 3syl sylan9eq oveq2d cdm cword cwlks crctiswlk syl
      ccrcts wlkf cshwn eqtrd syl5eqr csn cun eqid crctcshlem1 fz0sn0fz1 eleq2d
      wo elun syl6bb elsni syl6eqbr iftrued fveq2d ctrls crctprop eqcomd adantr
      0le0 simpr addid2d sylan9eqr fveq2 3eqtr4d sylan2 ex wn sylbid imp syl5eq
      breq2d fveq2i oveq1d mpteq2dv 3brtr4d cima 3jca reseq2d eucrct2eupth1 a1i
      cz syl6eq syl5sseq resmptd wi 3ad2ant1 eqcom cr wb ad2antlr elfznn nnnle0
      iffalsed nncnd pncand jaod mpteq2dva subidd oveq1i ifbieq12d wfn wlkp ffn
      wf dffn5 elfzolt3 elfzoelz peano2zd syl5eqel cshwlen syl2anc breqtrd cdif
      sylib ciedg cshimadifsn0 imaeq1i fzossfz elfzoel2 fzoval eqtr3d peano2nn0
      simpl2 wne 1cnd nn0cn subadd2d 3bitr4g necon3bbid nn0red nnre nnz zltp1le
      syl2an biimp3a leltned biimprd syl6ibr impcom eucrctshift simprl ifbieq2d
      nn0z 3eltr4d simprr reseq12d syl6reqr mpdan pm2.61ian ) JLUEUFUGZUHZAHDEU
      IUJZUKZUXAAULZFKUMUGZUNUWTUOUGZUPZBUNFUQUJZURUGZBUSZLKUFUGZVAUKZUXJKUTUGZ
      CUJZUXMLUFUGZCUJZVBZVCZUNUWTURUGZUPZHDUXBUXDUXRUXTEUXEGUXGIUWTMNOUXDFCUXE
      UXRGUIUJZAFCUYAUKZUXAPVDUXDUXEFJUEUTUGZUMUGZFUYCKFUMKUYCUBVEVFZUXDUYDFLUM
      UGZFUXDUYCLFUMUXAAUYCUWTUEUTUGZLJUWTUEUTVGZAJUNLUOUGZVOZLVHVOZUYGLUHTUYJJ
      VIVOZLVJVOZJLVKUKZVLZUYKJLVMZUYMUYLUYKUYNLVPVNZVQZLVRVSZVTWAAUYFFUHUXAAUY
      FFUXHUMUGZFALUXHFUMSWAAFIWBZWCVOZUYTFUHAFCGWGUJZUKZVUBQVUDFCGWDUJUKZVUBCF
      GWEZCFGIOWHWFWFZVUAFWIWFWJVDWJWKZUXDBUXIUXJUNVAUKZUXJLUTUGZCUJZVUJLUFUGZC
      UJZVBZVCZBUXIUXJCUJZVCZUXRCAVUOVUQUHUXAABUXIVUNVUPAUXJUXIVOZVUNVUPUHZAVUR
      UXJUNWLZVOZUXJUEUXHURUGZVOZWRZVUSAVURUXJVUTVVBWMZVOVVDAUXIVVEUXJAUXHVIVOU
      XIVVEUHACFGIUXHMNOQUXHWNZWOUXHWPWFWQUXJVUTVVBWSWTAVVAVUSVVCAVVAVUSAVVAULZ
      VUNVUKVUPVVGVUIVUKVUMVVAVUIAVVAUXJUNUNVAUXJUNXAZXIXBVDXCVVAAUXJUNUHZVUKVU
      PUHVVHAVVIULZLCUJZUNCUJZVUKVUPAVVKVVLUHVVIAVVKUXHCUJZVVLALUXHCSXDAVUDFCGX
      EUJUKZVVLVVMUHZULZVVMVVLUHQCFGXFVVPVVLVVMVVNVVOXJXGVSWJXHVVJVUJLCVVIAVUJU
      NLUTUGLUXJUNLUTVGALAUYJUYKTUYRWFZXKXLXDVVIVUPVVLUHAUXJUNCXMVDXNXOWJXPAVVC
      VUSAVVCULZVUNVUMVUPVVRVUIVUKVUMVVCVUIXQZAVVCUXJVJVOVVSUXJUXHUUAZUXJUUBWFV
      DUUCVVRVULUXJCVVRUXJLVVCUXJVHVOAVVCUXJVVTUUDVDAUYKVVCVVQXHUUEXDWJXPUUFXRX
      SUUGVDUXDBUXIUXQVUNUXDUXLVUIUXNUXPVUKVUMUXDUXKUNUXJVAUXDUXKLUYCUFUGZUNKUY
      CLUFUBVFUXAAVWALUYGUFUGZUNUXAUYCUYGLUFUYHWAAVWBLLUFUGUNAUYGLLUFUYSWAALVVQ
      UUHWJVTXTYAUXDUXNUXJUYCUTUGZCUJVUKUXMVWCCKUYCUXJUTUBVFZYBUXDVWCVUJCUXAAVW
      CUXJUYGUTUGZVUJUXAUYCUYGUXJUTUYHWAZAUYGLUXJUTUYSWAZVTXDXTUXDUXPVWCLUFUGZC
      UJVUMUXOVWHCUXMVWCLUFVWDUUIYBUXDVWHVULCUXAAVWHVWELUFUGVULUXAVWCVWELUFVWFY
      CAVWEVUJLUFVWGYCVTXDXTUUJYDUXDCUXIUUKZCVUQUHAVWIUXAAVUEUXIMCUUNVWIAVUDVUE
      QVUFWFCFGMNUULUXIMCUUMVSVDBUXICUUOUVDXNZYEUXDFCUXEUXRVUCAVUDUXAQVDVUHVWJY
      ERAUNUXEUQUJZVKUKZUXAAUNLVWKVKAUYJUNLVKUKTJUNLUUPWFALUXHVWKSAVUBKYKVOZUXH
      VWKUHVUGAKUYCYKUBAJAUYJJYKVOZTJUNLUUQWFUURUUSVUBVWMULVWKUXHKVUAFUUTXGUVAW
      JZUVBZVDUXDLVWKUEUFALVWKUHUXAVWOVDYCUXDEUVEUJZIFUYIJWLUVCYFZUPZIUXEUXFYFZ
      UPZAVWQVWSUHZUXAUAVDUXDVWRVWTIUXDVWRUYDUXFYFZVWTUXDVUBLUXHUHZUYJVLZVWRVXC
      UHZAVXEUXAAVUBVXDUYJVUGSTYGZVDVUAFJLUVFZWFUYDUXEUXFUYEUVGZYLYHWJUXGWNZUXT
      WNYIHUXGUHZUXDUCYJADUXTUHUXAADBUYIUXQVCZUXTUDAUXRUYIUPZVXLUXTABUXIUYIUXQA
      UNLURUGZUYIUXIUNLUVHZALUXHUNURSWAYMYNAUYIUXSUXRAUYJLYKVOZUYIUXSUHTJUNLUVI
      UNLUVJVSZYHUVKXTVDYEUXAXQZAULZUXEBUXIUXJUXHKUFUGZVAUKZUXNUXMUXHUFUGZCUJZV
      BZVCZUYAUKZUXEVYEVUCUKZULZUXCVXSBCVYEKFGUXEIUXHMNOAVUDVXRQVDVVFVXSUYCUYIK
      UNUXHUOUGZAVXRUYCUYIVOZAUYJVXRVYJYOTUYJVXRUYCVIVOZUYMUYCLVKUKZVLZVYJUYJUY
      OVXRVYMYOUYPUYOVXRVYMUYOVXRULVYKUYMVYLUYOVYKVXRUYLUYMVYKUYNJUVLZYPXHUYLUY
      MUYNVXRUVMUYOVXRVYLUYOVXRLUYCUVNZVYLUYOUXALUYCUYOUWTJUHUYCLUHUXALUYCUHUYO
      LUEJUYQUYOUVOUYLUYMJVHVOUYNJUVPYPUVQJUWTYQLUYCYQUVRUVSUYOVYLVYOUYOUYCLUYL
      UYMUYCYRVOUYNUYLUYCVYNUVTYPUYMUYLLYRVOUYNLUWAVNUYLUYMUYNUYCLVAUKZUYLVWNVX
      PUYNVYPYSUYMJUWMLUWBJLUWCUWDUWEUWFUWGXRXSYGXPVQUYCLVMUWHWFUWIKUYCUHVXSUBY
      JAVYIUYIUHVXRAUXHLUNUOALUXHSXGZWAVDUWNUXEWNVYEWNAUYBVXRPVDUWJVXSVYHULZUXG
      VYEUXSUPZHDUXBVYRVYEVYSEUXEGUXGIUWTMNOVXSVYFVYGUWKVXSVYFVYGUWORAVWLVXRVYH
      VWPYTAUWTVWKUEUFUGUHVXRVYHALVWKUEUFVWOYCYTVXSVWQVXAUHVYHVXSVWQVWSVXAAVXBV
      XRUAVDVXSVWRVWTIVXSVWRVXCVWTVXSVXEVXFAVXEVXRVXGVDVXHWFVXIYLYHWJXHVXJVYSWN
      YIVXKVYRUCYJVXSDVYSUHVYHVXSVYSVXLDVXSVYSVXMVXLVXSVYEUXRUXSUYIVXSBUXIVYDUX
      QVXSVYAUXLVYCUXPUXNAVYAUXLYSVXRAVXTUXKUXJVAAUXHLKUFVYQYCYAVDAVYCUXPUHVXRA
      VYBUXOCAUXHLUXMUFVYQWAXDVDUWLYDAUXSUYIUHVXRAUYIUXSVXQXGVDUWPVXSBUXIUYIUXQ
      VXSVXNUYIUXIVXOVXSLUXHUNURAVXDVXRSVDWAYMYNWJUDUWQXHYEUWRUWS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The K&ouml;nigsberg Bridge problem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  According to Wikipedia ("Seven Bridges of K&ouml;nigsberg", 9-Mar-2021,
  ~ https://en.wikipedia.org/wiki/Seven_Bridges_of_Koenigsberg ): "The Seven
  Bridges of K&ouml;nigsberg is a historically notable problem in mathematics.
  Its negative resolution by Leonhard Euler in 1736 laid the foundations of
  graph theory and prefigured the idea of topology.  The city of
  K&ouml;nigsberg in [[East] Prussia (now Kaliningrad, Russia) was set on both
  sides of the Pregel River, and included two large islands - Kneiphof and
  Lomse - which were connected to each other, or to the two mainland portions
  of the city, by seven bridges.  The problem was to devise a walk through the
  city that would cross each of those bridges once and only once.".  Euler
  proved that the problem has no solution by applying Euler's theorem to the
  K&ouml;nigsberg graph, which is obtained by replacing each land mass with an
  abstract "vertex" or node, and each bridge with an abstract connection, an
  "edge", which connects two land masses/vertices. The K&ouml;nigsberg graph
  ` G ` is a multigraph consisting of 4 vertices and 7 edges, represented by
  the following ordered pair: ` G = <. ( 0 ... 3 ) , <" { 0 , 1 } { 0 , 2 } `
  ` { 0 , 3 } { 1 , 2 } { 1 , 2 } { 2 , 3 } { 2 , 3 } "> >. `, see
  ~ konigsbergumgr . ~ konigsberg shows that the K&ouml;nigsberg graph has no
  Eulerian path, thus the K&ouml;nigsberg Bridge problem has no solution.

$)

  ${
    konigsberg.v $e |- V = ( 0 ... 3 ) $.
    konigsberg.e $e |- E = <" { 0 , 1 } { 0 , 2 } { 0 , 3 }
                              { 1 , 2 } { 1 , 2 } { 2 , 3 } { 2 , 3 } "> $.
    konigsberg.g $e |- G = <. V , E >. $.
    $( The set of vertices of the K&ouml;nigsberg graph ` G ` .  (Contributed
       by AV, 28-Feb-2021.) $)
    konigsbergvtx $p |- ( Vtx ` G ) = ( 0 ... 3 ) $=
      ( cvtx cfv cc0 c3 cfz co c1 cpr c2 cs7 cop eqtri cvv wcel cword wceq ovex
      opeq12i fveq2i s7cli opvtxfv mp2an ) BGHIJKLZIMNZIONZIJNZMONZUMOJNZUNPZQZ
      GHZUIBUPGBCAQUPFCUIAUODEUDRUEUISTUOSUAZTUQUIUBIJKUCUJUKULUMUMUNUNUFUOUISU
      RUGUHR $.

    $( The indexed edges of the K&ouml;nigsberg graph ` G ` .  (Contributed by
       AV, 28-Feb-2021.) $)
    konigsbergiedg $p |- ( iEdg ` G ) = <" { 0 , 1 } { 0 , 2 } { 0 , 3 }
                                  { 1 , 2 } { 1 , 2 } { 2 , 3 } { 2 , 3 } "> $=
      ( ciedg cfv cc0 c3 cfz co c1 cpr c2 cs7 cop eqtri cvv wcel opeq12i fveq2i
      cword wceq ovex s7cli opiedgfv mp2an ) BGHIJKLZIMNZIONZIJNZMONZUMOJNZUNPZ
      QZGHZUOBUPGBCAQUPFCUIAUODEUARUBUISTUOSUCZTUQUOUDIJKUEUJUKULUMUMUNUNUFUOUI
      SURUGUHR $.

    $d V x $.
    $( The indexed edges of the K&ouml;nigsberg graph ` G ` is a word over the
       pairs of vertices.  (Contributed by AV, 28-Feb-2021.) $)
    konigsbergiedgw $p |- E e. Word { x e. ~P V | ( # ` x ) = 2 } $=
      ( cc0 c1 cpr c2 c3 wceq cpw wcel wtru cn0 3nn0 umgrbi a1i cs7 cv chash co
      cfv cfz crab cword 0elfz cle wbr 1nn0 1le3 elfz2nn0 mpbir3an 0ne1 2re 3re
      ax-mp 2nn0 2lt3 ltleii 0ne2 nn0fz0 mpbi 3ne0 necomi 1ne2 s7cld trud pweqi
      ltneii rabeq wrdeqi 3eltr4i ) HIJZHKJZHLJZIKJZVSKLJZVTUAZAUBUCUEKMZAHLUFU
      DZNZUGZUHZBWBADNZUGZUHWAWFOPVPVQVRVSVSVTVTWEVPWEOPAWCHILQOZHWCORLUIUSZIWC
      OIQOWIILUJUKULRUMILUNUOZUPSTVQWEOPAWCHKWJKWCOKQOWIKLUJUKUTRKLUQURVAVBKLUN
      UOZVCSTVRWEOPAWCHLWJWILWCORLVDVEZLHVFVGSTVSWEOPAWCIKWKWLVHSTZWNVTWEOPAWCK
      LWLWMKLUQVAVLSTZWOVIVJFWHWEWGWDMWHWEMDWCEVKWBAWGWDVMUSVNVO $.

    $( The indexed edges of the K&ouml;nigsberg graph ` G ` is a word over the
       pairs of vertices.  (Contributed by AV, 28-Feb-2021.)  Obsolete version
       of ~ konigsbergiedgw as of 9-Mar-2021.  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    konigsbergiedgwOLD $p |- E e. Word { x e. ( ~P V \ { (/) } ) |
                                    ( # ` x ) <_ 2 } $=
      ( cc0 c1 cpr c2 c3 cle wbr cn0 wcel 3nn0 ax-mp upgrbi a1i cs7 cv chash co
      cfv cfz cpw c0 csn cdif crab cword 0elfz 1nn0 1le3 elfz2nn0 mpbir3an 2nn0
      2re 2lt3 ltleii nn0fz0 mpbi s7cld wceq pweqi difeq1i rabeq wrdeq 3eltr4i
      3re ) HIJZHKJZHLJZIKJZVOKLJZVPUAZAUBUCUEKMNZAHLUFUDZUGZUHUIZUJZUKZULZBVRA
      DUGZWAUJZUKZULZLOPZVQWDPQWIVLVMVNVOVOVPVPWCVLWCPWIAVSHIWIHVSPQLUMRZIVSPIO
      PWIILMNUNQUOILUPUQZSTVMWCPWIAVSHKWJKVSPKOPWIKLMNURQKLUSVKUTVAKLUPUQZSTVNW
      CPWIAVSHLWJWILVSPQLVBVCZSTVOWCPWIAVSIKWKWLSTZWNVPWCPWIAVSKLWLWMSTZWOVDRFW
      GWCVEZWHWDVEWFWBVEWPWEVTWADVSEVFVGVRAWFWBVHRWGWCVIRVJ $.

    $( Each subset of the indexed edges of the K&ouml;nigsberg graph ` G ` is a
       word over the pairs of vertices.  (Contributed by AV, 28-Feb-2021.) $)
    konigsbergssiedgwpr $p |- ( ( A e. Word _V /\ B e. Word _V
                                  /\ E = ( A ++ B ) )
                                -> A e. Word { x e. ~P V | ( # ` x ) = 2 } ) $=
      ( cconcat co wceq cvv cword wcel cv chash cfv c2 cpw crab konigsbergiedgw
      wa jctr ccatrcl1 syl3an3 ) DBCJKLZBMNZOCUHOUGDAPQRSLAFTUAZNZOZUCBUJOUGUKA
      DEFGHIUBUDBCUIDMMUEUF $.

    $( Each subset of the indexed edges of the K&ouml;nigsberg graph ` G ` is a
       word over the pairs of vertices.  (Contributed by AV, 28-Feb-2021.) $)
    konigsbergssiedgw $p |- ( ( A e. Word _V /\ B e. Word _V
                                /\ E = ( A ++ B ) )
                            -> A e. Word { x e. ( ~P V \ { (/) } ) |
                                           ( # ` x ) <_ 2 } ) $=
      ( cvv cword wcel cconcat co wceq chash cfv c2 crab wf w3a cv cpw cc0 cfzo
      cle wbr c0 csn cdif konigsbergssiedgwpr wss prprrab wi 2re eqlei2 ss2rabi
      wrdf a1i eqsstr3i fss mpan2 iswrdb sylibr 3syl ) BJKZLCVFLDBCMNOUABAUBZPQ
      ZROZAFUCZSZKLUDBPQUENZVKBTZBVHRUFUGZAVJUHUIUJZSZKLZABCDEFGHIUKVKBURVMVLVP
      BTZVQVMVKVPULVRVKVIAVOSVPAFUMVIVNAVOVIVNUNVGVOLRVHUOUPUSUQUTVLVKVPBVAVBVP
      BVCVDVE $.

    $d G x $.
    $( The K&ouml;nigsberg graph ` G ` is a multigraph.  (Contributed by AV,
       28-Feb-2021.)  (Revised by AV, 9-Mar-2021.) $)
    konigsbergumgr $p |- G e. UMGraph $=
      ( vx cumgr wcel cv cfv c2 cword cvv eqeltri cc0 c1 cpr c3 eqtr4i wceq cpw
      chash crab konigsbergiedgw wb cop opex cs7 s7cli cvtx konigsbergvtx ciedg
      cfz co konigsbergiedg wrdumgr mp2an mpbir ) BHIZAGJUCKLUAGCUBUDMIZGABCDEF
      UEBNIANMZIUTVAUFBCAUGNFCAUHOAPQRZPLRZPSRZQLRZVFLSRZVGUIZVBEVCVDVEVFVFVGVG
      UJOGNABCNCPSUNUOBUKKDABCDEFULTAVHBUMKEABCDEFUPTUQURUS $.

    $( The K&ouml;nigsberg graph ` G ` is a pseudograph.  (Contributed by AV,
       28-Feb-2021.)  Obsolete version of ~ konigsbergumgr as of 9-Mar-2021.
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    konigsbergupgrOLD $p |- G e. UPGraph $=
      ( vx cupgr wcel cv cfv c2 cword cvv eqeltri cc0 c1 cpr c3 eqtr4i chash c0
      cle wbr cpw csn cdif crab konigsbergiedgwOLD wb cop opex cs7 s7cli cfz co
      cvtx konigsbergvtx ciedg konigsbergiedg wrdupgr mp2an mpbir ) BHIZAGJUAKL
      UCUDGCUEUBUFUGUHMIZGABCDEFUIBNIANMZIVDVEUJBCAUKNFCAULOAPQRZPLRZPSRZQLRZVJ
      LSRZVKUMZVFEVGVHVIVJVJVKVKUNOGNABCNCPSUOUPBUQKDABCDEFURTAVLBUSKEABCDEFUTT
      VAVBVC $.

    $( Lemma 1 for ~ konigsberg :  Vertex ` 0 ` has degree three.  (Contributed
       by Mario Carneiro, 11-Mar-2015.)  (Revised by Mario Carneiro,
       28-Feb-2016.)  (Revised by AV, 4-Mar-2021.) $)
    konigsberglem1 $p |- ( ( VtxDeg ` G ) ` 0 ) = 3 $=
      ( vx c3 cc0 co c1 c2 cop cfv eqcomi wcel ciedg cconcat c0 eqtri cvtx ovex
      cfz cpr cs6 cvv cword s6cli elexi opvtxfvi cn0 3nn0 0elfz ax-mp opiedgfvi
      cs1 cs7 wceq cv chash cle wbr cpw cdif crab s1cli df-s7 konigsbergssiedgw
      csn eqid mp3an cs5 s5cli cs2 s2cli s5s2 cs4 s4cli s3cli s4s3 cvtxdg caddc
      cs3 s3s4 s2s5 s1s6 wrd0 vtxdg0e mp2an 1nn0 1le3 elfz2nn0 mpbir3an ax-1ne0
      0ex s0s1 vdegp1bi 0p1e1 2nn0 2re 2lt3 ltleii 2ne0 df-s2 1p1e2 nn0fz0 mpbi
      3ne0 df-s3 2p1e3 df-s4 vdegp1ai df-s5 df-s6 konigsbergvtx konigsbergiedg
      3re ) GHIBIHUCJZIKUDZILUDZIHUDZKLUDZYBLHUDZUEZMZYDXRLHYEUANXRYDXRIHUCUBZY
      DUFUGZXSXTYAYBYBYCUHZUIZUJZOHUKPZIXRPZULHUMUNZYEQNZYDYDXRYFYIUOZOYDYGPYCU
      PZYGPXSXTYAYBYBYCYCUQZYDYPRJZURYDGUSUTNLVAVBGXRVCSVIVDVEZUGZPYHYCVFXSXTYA
      YBYBYCYCVGZGYDYPYQXRYQMZXRXRVJZYQVJZUUBVJZVHVKGHIYEXRXSXTYAYBYBVLZMZUUFXR
      LHUUGUANXRUUFXRYFUUFYGXSXTYAYBYBVMZUIZUJZOYMUUGQNZUUFUUFXRYFUUIUOZOUUFYGP
      YCYCVNZYGPYQUUFUUMRJURUUFYTPUUHYCYCVOXSXTYAYBYBYCYCVPGUUFUUMYQUUBXRUUCUUD
      UUEVHVKGHIUUGXRXSXTYAYBVQZMZUUNXRKLUUOUANXRUUNXRYFUUNYGXSXTYAYBVRZUIZUJZO
      YMUUOQNZUUNUUNXRYFUUQUOZOUUNYGPYBYCYCWCZYGPYQUUNUVARJURUUNYTPUUPYBYCYCVSX
      SXTYAYBYBYCYCVTGUUNUVAYQUUBXRUUCUUDUUEVHVKGHIUUOXRXSXTYAWCZMZUVBXRKLUVCUA
      NXRUVBXRYFUVBYGXSXTYAVSZUIZUJZOYMUVCQNZUVBUVBXRYFUVEUOZOUVBYGPYBYBYCYCVQZ
      YGPYQUVBUVIRJURUVBYTPUVDYBYBYCYCVRXSXTYAYBYBYCYCWDGUVBUVIYQUUBXRUUCUUDUUE
      VHVKIUVCWANNLKWBJHGLIUVCXRXSXTVNZMZUVJXRHUVKUANXRUVJXRYFUVJYGXSXTVOZUIZUJ
      ZOYMUVKQNZUVJUVJXRYFUVMUOZOUVJYGPYAYBYBYCYCVLZYGPYQUVJUVQRJURUVJYTPUVLYAY
      BYBYCYCVMXSXTYAYBYBYCYCWEGUVJUVQYQUUBXRUUCUUDUUEVHVKIUVKWANNKKWBJLGKIUVKX
      RXSUPZMZUVRXRLUVSUANXRUVRXRYFUVRYGXSVFZUIZUJZOYMUVSQNZUVRUVRXRYFUWAUOZOUV
      RYGPXTYAYBYBYCYCUEZYGPYQUVRUWERJURUVRYTPUVTXTYAYBYBYCYCUHXSXTYAYBYBYCYCWF
      GUVRUWEYQUUBXRUUCUUDUUEVHVKIUVSWANNIKWBJKGIIUVSXRSMZSXRKUWFUANXRSXRYFWOUJ
      OZYMUWFQNSSXRYFWOUOOZYSWGYLSSURIUWFWANNIURYMSVJIUWFSXRUWGUWHWHWIUWBKXRPKU
      KPYKKHVAVBWJULWKKHWLWMZWNUWCUVRSUVRRJUWDXSWPTWQWRTUVNLXRPLUKPYKLHVAVBWSUL
      LHWTXQXAXBLHWLWMZXCUVOUVJUVRXTUPRJUVPXSXTXDTWQXETUVFYKHXRPULHXFXGZXHUVGUV
      BUVJYAUPRJUVHXSXTYAXITWQXJTUURUWIWNUWJXCUUSUUNUVBYBUPZRJUUTXSXTYAYBXKTXLU
      UJUWIWNUWJXCUUKUUFUUNUWLRJUULXSXTYAYBYBXMTXLYJUWJXCUWKXHYNYDUUFYPRJYOXSXT
      YAYBYBYCXNTXLABCDEFXOUWJXCUWKXHBQNYQYRABCDEFXPUUATXL $.

    $( Lemma 2 for ~ konigsberg :  Vertex ` 1 ` has degree three.  (Contributed
       by Mario Carneiro, 11-Mar-2015.)  (Revised by Mario Carneiro,
       28-Feb-2016.)  (Revised by AV, 4-Mar-2021.) $)
    konigsberglem2 $p |- ( ( VtxDeg ` G ) ` 1 ) = 3 $=
      ( vx c3 c1 cc0 co c2 cop cfv eqcomi wcel ciedg cconcat c0 eqtri cvtx ovex
      cfz cpr cs6 cvv cword s6cli elexi opvtxfvi cn0 cle wbr 1nn0 3nn0 elfz2nn0
      1le3 mpbir3an opiedgfvi cs1 cs7 wceq chash cpw cdif crab s1cli df-s7 eqid
      cv csn konigsbergssiedgw mp3an cs5 s5cli cs2 s2cli cvtxdg caddc cs4 s4cli
      s5s2 cs3 s3cli s4s3 s3s4 s2s5 s1s6 0ex wrd0 vtxdg0e mp2an 0elfz 0ne1 s0s1
      ax-mp vdegp1ci 0p1e1 2nn0 2re 3re 2lt3 ltleii 1ne2 necomi vdegp1ai nn0fz0
      df-s2 mpbi 1re 1lt3 gtneii df-s3 df-s4 vdegp1bi 1p1e2 df-s5 konigsbergvtx
      2p1e3 df-s6 konigsbergiedg ) GHIBJHUCKZJIUDZJLUDZJHUDZILUDZYFLHUDZUEZMZYH
      YBLHYIUANYBYHYBJHUCUBZYHUFUGZYCYDYEYFYFYGUHZUIZUJZOIYBPZIUKPHUKPZIHULUMUN
      UOUQIHUPURZYIQNZYHYHYBYJYMUSZOYHYKPYGUTZYKPYCYDYEYFYFYGYGVAZYHYTRKZVBYHGV
      JVCNLULUMGYBVDSVKVEVFZUGZPYLYGVGYCYDYEYFYFYGYGVHZGYHYTUUAYBUUAMZYBYBVIZUU
      AVIZUUFVIZVLVMGHIYIYBYCYDYEYFYFVNZMZUUJYBLHUUKUANYBUUJYBYJUUJYKYCYDYEYFYF
      VOZUIZUJZOYQUUKQNZUUJUUJYBYJUUMUSZOUUJYKPYGYGVPZYKPUUAUUJUUQRKVBUUJUUDPUU
      LYGYGVQYCYDYEYFYFYGYGWBGUUJUUQUUAUUFYBUUGUUHUUIVLVMIUUKVRNNLIVSKHGLIUUKYB
      YCYDYEYFVTZMZUURYBLUUSUANYBUURYBYJUURYKYCYDYEYFWAZUIZUJZOYQUUSQNZUURUURYB
      YJUVAUSZOUURYKPYFYGYGWCZYKPUUAUURUVERKVBUURUUDPUUTYFYGYGWDYCYDYEYFYFYGYGW
      EGUURUVEUUAUUFYBUUGUUHUUIVLVMIUUSVRNNIIVSKLGIIUUSYBYCYDYEWCZMZUVFYBLUVGUA
      NYBUVFYBYJUVFYKYCYDYEWDZUIZUJZOYQUVGQNZUVFUVFYBYJUVIUSZOUVFYKPYFYFYGYGVTZ
      YKPUUAUVFUVMRKVBUVFUUDPUVHYFYFYGYGWAYCYDYEYFYFYGYGWFGUVFUVMUUAUUFYBUUGUUH
      UUIVLVMGIIUVGYBYCYDVPZMZUVNYBJHUVOUANYBUVNYBYJUVNYKYCYDVQZUIZUJZOYQUVOQNZ
      UVNUVNYBYJUVQUSZOUVNYKPYEYFYFYGYGVNZYKPUUAUVNUWARKVBUVNUUDPUVPYEYFYFYGYGV
      OYCYDYEYFYFYGYGWGGUVNUWAUUAUUFYBUUGUUHUUIVLVMGIIUVOYBYCUTZMZUWBYBJLUWCUAN
      YBUWBYBYJUWBYKYCVGZUIZUJZOYQUWCQNZUWBUWBYBYJUWEUSZOUWBYKPYDYEYFYFYGYGUEZY
      KPUUAUWBUWIRKVBUWBUUDPUWDYDYEYFYFYGYGUHYCYDYEYFYFYGYGWHGUWBUWIUUAUUFYBUUG
      UUHUUIVLVMIUWCVRNNJIVSKIGJIUWCYBSMZSYBJUWJUANYBSYBYJWIUJOZYQUWJQNSSYBYJWI
      USOZUUCWJYOSSVBIUWJVRNNJVBYQSVIIUWJSYBUWKUWLWKWLUWFYPJYBPUOHWMWPZWNUWGUWB
      SUWBRKUWHYCWOTWQWRTUVRUWMWNLYBPLUKPYPLHULUMWSUOLHWTXAXBXCLHUPURZILXDXEZUV
      SUVNUWBYDUTRKUVTYCYDXHTXFUVJUWMWNYPHYBPUOHXGXIZIHXJXKXLZUVKUVFUVNYEUTRKUV
      LYCYDYEXMTXFUVBUWNUWOUVCUURUVFYFUTZRKUVDYCYDYEYFXNTXOXPTUUNUWNUWOUUOUUJUU
      RUWRRKUUPYCYDYEYFYFXQTXOXSTYNUWNUWOUWPUWQYRYHUUJYTRKYSYCYDYEYFYFYGXTTXFAB
      CDEFXRUWNUWOUWPUWQBQNUUAUUBABCDEFYAUUETXF $.

    $( Lemma 3 for ~ konigsberg :  Vertex ` 3 ` has degree three.  (Contributed
       by Mario Carneiro, 11-Mar-2015.)  (Revised by Mario Carneiro,
       28-Feb-2016.)  (Revised by AV, 4-Mar-2021.) $)
    konigsberglem3 $p |- ( ( VtxDeg ` G ) ` 3 ) = 3 $=
      ( vx c3 cfv c2 c1 co cc0 cop eqcomi wcel ciedg cconcat c0 eqtri caddc cfz
      cvtxdg cpr cs6 cvtx ovex cword s6cli elexi opvtxfvi 3nn0 nn0fz0 opiedgfvi
      cvv cn0 mpbi cs1 cs7 wceq cv chash cle wbr cpw cdif crab s1cli df-s7 eqid
      csn konigsbergssiedgw mp3an cs5 s5cli cs2 s2cli s5s2 cs4 s4cli s3cli s4s3
      cs3 s3s4 s2s5 s1s6 0ex wrd0 vtxdg0e mp2an 0elfz 3ne0 necomi 1nn0 elfz2nn0
      ax-mp 1le3 mpbir3an 1re 1lt3 ltneii s0s1 vdegp1ai 2nn0 2re 3re 2lt3 df-s2
      df-s3 vdegp1ci 0p1e1 df-s4 df-s5 df-s6 1p1e2 konigsbergvtx konigsbergiedg
      ltleii 2p1e3 ) HBUCIIJKUALHGJHBMHUBLZMKUDZMJUDZMHUDZKJUDZYDJHUDZUEZNZYFXT
      JYGUFIXTYFXTMHUBUGZYFUOUHZYAYBYCYDYDYEUIZUJZUKZOHUPPZHXTPZULHUMUQZYGQIZYF
      YFXTYHYKUNZOYFYIPYEURZYIPYAYBYCYDYDYEYEUSZYFYRRLZUTYFGVAVBIJVCVDGXTVESVKV
      FVGZUHZPYJYEVHYAYBYCYDYDYEYEVIZGYFYRYSXTYSNZXTXTVJZYSVJZUUDVJZVLVMHYGUCII
      KKUALJGKHYGXTYAYBYCYDYDVNZNZUUHXTJUUIUFIXTUUHXTYHUUHYIYAYBYCYDYDVOZUJZUKZ
      OYOUUIQIZUUHUUHXTYHUUKUNZOUUHYIPYEYEVPZYIPYSUUHUUORLUTUUHUUBPUUJYEYEVQYAY
      BYCYDYDYEYEVRGUUHUUOYSUUDXTUUEUUFUUGVLVMGKHUUIXTYAYBYCYDVSZNZUUPXTKJUUQUF
      IXTUUPXTYHUUPYIYAYBYCYDVTZUJZUKZOYOUUQQIZUUPUUPXTYHUUSUNZOUUPYIPYDYEYEWCZ
      YIPYSUUPUVCRLUTUUPUUBPUURYDYEYEWAYAYBYCYDYDYEYEWBGUUPUVCYSUUDXTUUEUUFUUGV
      LVMGKHUUQXTYAYBYCWCZNZUVDXTKJUVEUFIXTUVDXTYHUVDYIYAYBYCWAZUJZUKZOYOUVEQIZ
      UVDUVDXTYHUVGUNZOUVDYIPYDYDYEYEVSZYIPYSUVDUVKRLUTUVDUUBPUVFYDYDYEYEVTYAYB
      YCYDYDYEYEWDGUVDUVKYSUUDXTUUEUUFUUGVLVMHUVEUCIIMKUALKGMHUVEXTYAYBVPZNZUVL
      XTMUVMUFIXTUVLXTYHUVLYIYAYBVQZUJZUKZOYOUVMQIZUVLUVLXTYHUVOUNZOUVLYIPYCYDY
      DYEYEVNZYIPYSUVLUVSRLUTUVLUUBPUVNYCYDYDYEYEVOYAYBYCYDYDYEYEWEGUVLUVSYSUUD
      XTUUEUUFUUGVLVMGMHUVMXTYAURZNZUVTXTMJUWAUFIXTUVTXTYHUVTYIYAVHZUJZUKZOYOUW
      AQIZUVTUVTXTYHUWCUNZOUVTYIPYBYCYDYDYEYEUEZYIPYSUVTUWGRLUTUVTUUBPUWBYBYCYD
      YDYEYEUIYAYBYCYDYDYEYEWFGUVTUWGYSUUDXTUUEUUFUUGVLVMGMHUWAXTSNZSXTMKUWHUFI
      XTSXTYHWGUKOZYOUWHQISSXTYHWGUNOZUUAWHYNSSUTHUWHUCIIMUTYOSVJHUWHSXTUWIUWJW
      IWJUWDYMMXTPULHWKWPZHMWLWMZKXTPKUPPYMKHVCVDWNULWQKHWOWRZKHWSWTXAZUWEUVTSU
      VTRLUWFYAXBTXCUVPUWKUWLJXTPJUPPYMJHVCVDXDULJHXEXFXGXRJHWOWRZJHXEXGXAZUVQU
      VLUVTYBURRLUVRYAYBXHTXCUVHUWKUWLUVIUVDUVLYCURRLUVJYAYBYCXITXJXKTUUTUWMUWN
      UWOUWPUVAUUPUVDYDURZRLUVBYAYBYCYDXLTXCUULUWMUWNUWOUWPUUMUUHUUPUWQRLUUNYAY
      BYCYDYDXMTXCYLUWOUWPYPYFUUHYRRLYQYAYBYCYDYDYEXNTXJXOTABCDEFXPUWOUWPBQIYSY
      TABCDEFXQUUCTXJXST $.

    $( Lemma 4 for ~ konigsberg :  Vertices ` 0 , 1 , 3 ` are vertices of odd
       degree.  (Contributed by Mario Carneiro, 11-Mar-2015.)  (Revised by AV,
       28-Feb-2021.) $)
    konigsberglem4 $p |- { 0 , 1 , 3 }
                         C_ { x e. V | -. 2 || ( ( VtxDeg ` G ) ` x ) } $=
      ( cc0 c2 cfv cdvds wbr wn wcel c1 c3 3nn0 eleqtrri n2dvds3 breq2i cv crab
      cvtxdg w3a ctp wss cfz co cn0 0elfz ax-mp konigsberglem1 mtbir wceq fveq2
      breq2d notbid mpbir2an cle 1nn0 1le3 elfz2nn0 mpbir3an konigsberglem2 3re
      elrab leidi konigsberglem3 3pm3.2i c0ex 1ex 3ex tpss mpbi ) HIAUAZCUCJZJZ
      KLZMZADUBZNZOVTNZPVTNZUDHOPUEVTUFWAWBWCWAHDNIHVPJZKLZMZHHPUGUHZDPUINZHWGN
      QPUJUKERWEIPKLZSWDPIKBCDEFGULTUMVSWFAHDVOHUNZVRWEWJVQWDIKVOHVPUOUPUQVFURW
      BODNIOVPJZKLZMZOWGDOWGNOUINWHOPUSLUTQVAOPVBVCERWLWISWKPIKBCDEFGVDTUMVSWMA
      ODVOOUNZVRWLWNVQWKIKVOOVPUOUPUQVFURWCPDNIPVPJZKLZMZPWGDPWGNWHWHPPUSLQQPVE
      VGPPVBVCERWPWISWOPIKBCDEFGVHTUMVSWQAPDVOPUNZVRWPWRVQWOIKVOPVPUOUPUQVFURVI
      HOPVTVJVKVLVMVN $.

    $( Lemma 5 for ~ konigsberg :  The set of vertices of odd degree is greater
       than 2.  (Contributed by Mario Carneiro, 11-Mar-2015.)  (Revised by AV,
       28-Feb-2021.) $)
    konigsberglem5 $p |- 2 < ( # ` { x e. V |
                                     -. 2 || ( ( VtxDeg ` G ) ` x ) } ) $=
      ( cc0 c1 c3 c2 cfv wbr chash cle cvv wcel cfz wne cfn ctp cv cvtxdg cdvds
      wn crab wss clt konigsberglem4 ovexi rabex hashss mpan w3a wceq 0ne1 1lt3
      1re ltneii 3ne0 3pm3.2i c0ex 1ex 3ex hashtpg mp3an mpbi breq1i caddc df-3
      wb co cz 2z cn0 fzfi eqeltri rabfi hashcl mp2b nn0zi zltp1le mp2an sylbb2
      sylbi ) HIJUAZKAUBCUCLLUDMUEZADUFZUGZWFNLZWHNLZOMZKWKUHMZABCDEFGUIWHPQWIW
      LWGADDHJREUJUKWHWFPULUMWLJWKOMZWMWJJWKOHISZIJSZJHSZUNZWJJUOZWOWPWQUPIJURU
      QUSUTVAHPQIPQJPQWRWSVKVBVCVDHIJPPPVEVFVGVHWNKIVIVLZWKOMZWMJWTWKOVJVHKVMQW
      KVMQWMXAVKVNWKDTQWHTQWKVOQDHJRVLTEHJVPVQWGADVRWHVSVTWAKWKWBWCWDWEVT $.

    $( The K&ouml;nigsberg Bridge problem.  If ` G ` is the K&ouml;nigsberg
       graph, i.e. a graph on four vertices ` 0 , 1 , 2 , 3 ` , with edges
       ` { 0 , 1 } , { 0 , 2 } , { 0 , 3 } , { 1 , 2 } , { 1 , 2 } , `
       ` { 2 , 3 } , { 2 , 3 } ` , then vertices ` 0 , 1 , 3 ` each have degree
       three, and ` 2 ` has degree five, so there are four vertices of odd
       degree and thus by ~ eulerpath the graph cannot have an Eulerian path.
       It is sufficient to show that there are 3 vertices of odd degree, since
       a graph having an Eulerian path can only have 0 or 2 vertices of odd
       degree.  This is Metamath 100 proof #54.  (Contributed by Mario
       Carneiro, 11-Mar-2015.)  (Revised by Mario Carneiro, 28-Feb-2016.)
       (Revised by AV, 9-Mar-2021.) $)
    konigsberg $p |- ( EulerPaths ` G ) = (/) $=
      ( vx c2 cfv wbr wn cc0 cpr wcel c0 wceq clt ax-mp cvv c3 cdvds crab chash
      cv cvtxdg ceupth konigsberglem5 wo elpri 2pos 0re 2re ltnsymi breq2 ltnri
      mtbiri jaoi syl mt2 cupgr cumgr konigsbergumgr umgrupgr cvtx fveq2i cword
      wne cop cfz co ovex eqeltri cs7 s7cli opvtxfv mp2an eqtr2i eulerpath mpan
      c1 necon1bi ) HGUDBUEIIUAJKGCUBUCIZLHMZNZKBUFIZOPWDHWBQJZGABCDEFUGWDWBLPZ
      WBHPZUHWFKZWBLHUIWGWIWHWGWFHLQJZLHQJWJKUJLHUKULUMRWBLHQUNUPWHWFHHQJHULUOW
      BHHQUNUPUQURUSWDWEOBUTNZWEOVGWDBVANWKABCDEFVBBVCRGBCBVDICAVHZVDIZCBWLVDFV
      ECSNASVFZNWMCPCLTVIVJSDLTVIVKVLALVTMZWCLTMZVTHMZWQHTMZWRVMWNEWOWCWPWQWQWR
      WRVNVLACSWNVOVPVQVRVSWAR $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  The Friendship Theorem
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Friendship graphs - basics
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c FriendGraph $.

  $( Extend class notation with friendship graphs. $)
  cfrgr $a class FriendGraph $.

  ${
    $d e g k l x v $.
    $( Define the class of all friendship graphs: a simple graph is called a
       _friendship graph_ if every pair of its vertices has exactly one common
       neighbor.  This condition is called the _friendship condition_ , see
       definition in [MertziosUnger] p. 152.  (Contributed by Alexander van der
       Vekens and Mario Carneiro, 2-Oct-2017.)  (Revised by AV,
       29-Mar-2021.) $)
    df-frgr $a |- FriendGraph = { g | ( g e. USGraph
                      /\ [. ( Vtx ` g ) / v ]. [. ( Edg ` g ) / e ].
                         A. k e. v A. l e. ( v \ { k } )
                            E! x e. v { { x , k } , { x , l } } C_ e ) } $.
  $}

  ${
    $d h e g k l x v $.  $d E h $.  $d G h k l x $.  $d V h k l x $.
    isfrgr.v $e |- V = ( Vtx ` G ) $.
    isfrgr.e $e |- E = ( Edg ` G ) $.
    $( The property of being a friendship graph.  (Contributed by Alexander van
       der Vekens, 4-Oct-2017.)  (Revised by AV, 29-Mar-2021.) $)
    isfrgr $p |- ( G e. U -> ( G e. FriendGraph <-> ( G e. USGraph
                           /\ A. k e. V A. l e. ( V \ { k } )
                              E! x e. V { { x , k } , { x , l } } C_ E ) ) ) $=
      ( vg wcel cv cusgr wreu wral cedg cfv cvtx wa wceq ve vv vh cfrgr cpr wss
      csn cdif wsbc df-frgr eleq2i eleq1 fveq2 syl6eqr difeq1d wb reueq1 sseq2d
      cab syl reubidv bitrd raleqbidv anbi12d weq cvv fvexd adantr simpr difeq1
      ad2antlr sbcied2 cbvabv elab2g syl5bb ) EUDKEJLZMKZALZCLZUEVRGLUEUEZUALZU
      FZAUBLZNZGWCVSUGZUHZOZCWCOZUAVPPQZUIZUBVPRQZUIZSZJUSZKEBKEMKZVTDUFZAFNZGF
      WEUHZOZCFOZSZUDWNEAUBUAJCGUJUKUCLZMKZVTXBPQZUFZAXBRQZNZGXFWEUHZOZCXFOZSZX
      AUCEWNBXBETZXCWOXJWTXBEMULXLXIWSCXFFXLXFERQFXBERUMHUNZXLXGWQGXHWRXLXFFWEX
      MUOXLXGXEAFNZWQXLXFFTXGXNUPXMXEAXFFUQUTXLXEWPAFXLXDDVTXLXDEPQDXBEPUMIUNUR
      VAVBVCVCVDWMXKJUCJUCVEZVQXCWLXJVPXBMULXOWJXJUBWKXFVFXOVPRVGVPXBRUMXOWCXFT
      ZSZWHXJUAWIXDVFXQVPPVGXOWIXDTXPVPXBPUMVHXQWAXDTZSZWGXICWCXFXQXPXRXOXPVIVH
      XSWDXGGWFXHXPWFXHTXOXRWCXFWEVJVKXSWDWBAXFNZXGXPWDXTUPXOXRWBAWCXFUQVKXSWBX
      EAXFXSWAXDVTXQXRVIURVAVBVCVCVLVLVDVMVNVO $.

    $( A friendship graph is a simple graph which fulfils the friendship
       condition.  (Contributed by Alexander van der Vekens, 4-Oct-2017.)
       (Revised by AV, 29-Mar-2021.) $)
    frgrusgrfrcond $p |- ( G e. FriendGraph <-> ( G e. USGraph
                             /\ A. k e. V A. l e. ( V \ { k } )
                                E! x e. V { { x , k } , { x , l } } C_ E ) ) $=
      ( cfrgr wcel cusgr cv cpr wss wreu csn cdif wral wa isfrgr syl6bi pm2.43i
      simpl pm5.21nii ) DIJZDKJZUFALZBLZMUGFLMMCNAEOFEUHPQRBERZSZUEUFUEUEUJUFAI
      BCDEFGHTUFUIUCZUAUBUKAKBCDEFGHTUD $.
  $}

  ${
    $d G k l x $.
    $( A friendship graph is a simple graph.  (Contributed by Alexander van der
       Vekens, 4-Oct-2017.)  (Revised by AV, 29-Mar-2021.) $)
    frgrusgr $p |- ( G e. FriendGraph -> G e. USGraph ) $=
      ( vx vk vl cfrgr wcel cusgr cpr cedg cfv wss cvtx wreu csn cdif wral eqid
      cv frgrusgrfrcond simplbi ) AEFAGFBRZCRZHUADRHHAIJZKBALJZMDUDUBNOPCUDPBCU
      CAUDDUDQUCQST $.
  $}

  ${
    $d G k l x $.
    $( Any null graph (set with no vertices) is a friendship graph iff its edge
       function is empty.  (Contributed by Alexander van der Vekens,
       4-Oct-2017.)  (Revised by AV, 29-Mar-2021.) $)
    frgr0v $p |- ( ( G e. W /\ ( Vtx ` G ) = (/) )
                   -> ( G e. FriendGraph <-> ( iEdg ` G ) = (/) ) ) $=
      ( vx vk vl cfrgr wcel cusgr cv cpr cedg cfv wss cvtx wral wa c0 wceq eqid
      adantr wreu csn ciedg frgrusgrfrcond cuhgr usgruhgr uhgr0vb syl5ib simpll
      cdif simpr usgr0e ral0 wb raleq adantl mpbiri jca ex impbid syl5bb ) AFGA
      HGZCIZDIZJVCEIJJAKLZMCANLZUAEVFVDUBUJOZDVFOZPZABGZVFQRZPZAUCLQRZCDVEAVFEV
      FSVESUDVLVIVMVIAUEGZVLVMVBVNVHAUFTABUGUHVLVMVIVLVMPZVBVHVOABVJVKVMUIVLVMU
      KULVLVHVMVLVHVGDQOZVGDUMVKVHVPUNVJVGDVFQUOUPUQTURUSUTVA $.

    $( Any null graph (without vertices and edges) is a friendship graph.
       (Contributed by Alexander van der Vekens, 30-Sep-2017.)  (Revised by AV,
       29-Mar-2021.) $)
    frgr0vb $p |- ( ( G e. W /\ ( Vtx ` G ) = (/) /\ ( iEdg ` G ) = (/) )
                    -> G e. FriendGraph ) $=
      ( wcel cvtx cfv c0 wceq cfrgr ciedg frgr0v biimp3ar ) ABCADEFGAHCAIEFGABJ
      K $.

    $( Any null graph (without vertices) represented as hypergraph is a
       friendship graph.  (Contributed by AV, 29-Mar-2021.) $)
    frgruhgr0v $p |- ( ( G e. UHGraph /\ ( Vtx ` G ) = (/) )
                       -> G e. FriendGraph ) $=
      ( cuhgr wcel cvtx cfv c0 wceq ciedg cfrgr uhgr0vb biimpcd anabsi5 frgr0vb
      wa mpd3an3 ) ABCZADEFGZAHEFGZAICPQRPQNPRABJKLABMO $.
  $}

  ${
    $d k l x $.
    $( The null graph (graph without vertices) is a friendship graph.
       (Contributed by AV, 29-Mar-2021.) $)
    frgr0 $p |- (/) e. FriendGraph $=
      ( vx vk vl c0 cfrgr wcel cusgr cpr cedg cfv wss wreu cdif wral usgr0 ral0
      cv csn cvtx vtxval0 eqcomi eqid frgrusgrfrcond mpbir2an ) DEFDGFAQZBQZHUE
      CQHHDIJZKADLCDUFRMNZBDNOUHBPABUGDDCDSJDTUAUGUBUCUD $.
  $}

  ${
    $d A x y $.  $d B y $.  $d C x $.  $d D y $.  $d E x $.  $d ph x $.
    $d ch x $.  $d ps y $.
    rspc2vd.a $e |- ( x = A -> ( th <-> ch ) ) $.
    rspc2vd.b $e |- ( y = B -> ( ch <-> ps ) ) $.
    rspc2vd.c $e |- ( ph -> A e. C ) $.
    rspc2vd.d $e |- ( ( ph /\ x = A ) -> D = E ) $.
    rspc2vd.e $e |- ( ph -> B e. E ) $.
    $( Deduction version of 2-variable restricted specialization, using
       implicit substitution.  Notice that the class ` D ` for the second set
       variable ` y ` may depend on the first set variable ` x ` .
       (Contributed by AV, 29-Mar-2021.) $)
    rspc2vd $p |- ( ph -> ( A. x e. C A. y e. D th -> ps ) ) $=
      ( csb wcel wral csbied eleqtrrd wi nfcsb1v nfv nfral cv csbeq1a raleqbidv
      wceq rspc syl rspcv sylsyld ) AHEGJQZRDFJSZEISZCFUNSZBAHKUNPAEGJKINOTUAAG
      IRUPUQUBNUOUQEGICEFUNEGJUCCEUDUEEUFGUIDCFJUNEGJUGLUHUJUKCBFHUNMULUM $.
  $}

  ${
    $d A b k l $.  $d C b k l $.  $d E k l $.  $d G b k l $.  $d V b k l $.
    frcond1.v $e |- V = ( Vtx ` G ) $.
    frcond1.e $e |- E = ( Edg ` G ) $.
    $( The friendship condition: any two (different) vertices in a friendship
       graph have a unique common neighbor.  (Contributed by Alexander van der
       Vekens, 19-Dec-2017.)  (Revised by AV, 29-Mar-2021.) $)
    frcond1 $p |- ( G e. FriendGraph -> ( ( A e. V /\ C e. V /\ A =/= C )
                      -> E! b e. V { { A , b } , { b , C } } C_ E ) ) $=
      ( vk vl wcel cv cpr wss wreu csn cdif wral wne wceq w3a wi frgrusgrfrcond
      cfrgr cusgr preq2 preq1d sseq1d reubidv preq2d simp1 difeq2d adantl necom
      sneq wa biimpi anim2i 3adant1 eldifsn sylibr rspc2vd preq1i sseq1i reubii
      prcom syl6com simplbiim ) DUDKDUEKFLZILZMZVIJLZMZMZCNZFEOZJEVJPZQZRIERZAE
      KZBEKZABSZUAZAVIMZVIBMZMZCNZFEOZUBFICDEJGHUCWCVSVIAMZWEMZCNZFEOZWHWCWLWIV
      MMZCNZFEOVPIJABEVREAPZQZVJATZVOWNFEWQVNWMCWQVKWIVMVJAVIUFUGUHUIVLBTZWNWKF
      EWRWMWJCWRVMWEWIVLBVIUFUJUHUIVTWAWBUKWQVRWPTWCWQVQWOEVJAUOULUMWCWABASZUPZ
      BWPKWAWBWTVTWBWSWAWBWSABUNUQURUSBEAUTVAVBWLWHWKWGFEWJWFCWIWDWEVIAVFVCVDVE
      UQVGVH $.

    $( The friendship condition: any two (different) vertices in a friendship
       graph have a unique common neighbor.  (Contributed by Alexander van der
       Vekens, 19-Dec-2017.)  (Revised by AV, 29-Mar-2021.) $)
    frcond2 $p |- ( G e. FriendGraph -> ( ( A e. V /\ C e. V /\ A =/= C )
                       -> E! b e. V ( { A , b } e. E /\ { b , C } e. E ) ) ) $=
      ( cfrgr wcel wne w3a cv cpr wss wreu wa frcond1 prex prss bicomi reubii
      syl6ib ) DIJAEJBEJABKLAFMZNZUDBNZNCOZFEPUECJUFCJQZFEPABCDEFGHRUGUHFEUHUGU
      EUFCAUDSUDBSTUAUBUC $.

    $( Variant of ~ frcond2 :  Any two (different) vertices in a friendship
       graph have a unique common neighbor.  (Contributed by Alexander van der
       Vekens, 18-Feb-2018.)  (Revised by AV, 12-May-2021.)  (Proof shortened
       by AV, 4-Jan-2022.) $)
    frgreu $p |- ( G e. FriendGraph -> ( ( A e. V /\ C e. V /\ A =/= C )
                            -> E! b ( { A , b } e. E /\ { b , C } e. E ) ) ) $=
      ( cfrgr wcel wne w3a cv cpr wa weu wreu frcond2 imp cusgr frgrusgr adantr
      simpl usgrpredgv simprd syl2an reueubd mpbid ex ) DIJZAEJZBEJABKLZAFMZNCJ
      ZUMBNCJZOZFPZUJULOZUPFEQZUQUJULUSABCDEFGHRSURUPFEURDTJZUNUMEJZUPUJUTULDUA
      UBUNUOUCUTUNOUKVACDAUMEHGUDUEUFUGUHUI $.

    $d A x $.  $d C x $.  $d E b x $.  $d G x $.  $d V x $.
    $( The friendship condition, expressed by neighborhoods: in a friendship
       graph, the neighborhood of a vertex and the neighborhood of a second,
       different vertex have exactly one vertex in common.  (Contributed by
       Alexander van der Vekens, 19-Dec-2017.)  (Revised by AV,
       30-Dec-2021.) $)
    frcond3 $p |- ( G e. FriendGraph -> ( ( A e. V /\ C e. V /\ A =/= C )
        -> E. x e. V ( ( G NeighbVtx A ) i^i ( G NeighbVtx C ) ) = { x } ) ) $=
      ( vb wcel cnbgr co cin cv wceq wa cpr wss crab adantr cfrgr wne wrex wreu
      w3a csn frcond1 imp wex ssrab2 sseq1 mpbii vex snss sylibr cusgr frgrusgr
      adantl nbusgr ineq12d inrab syl6eq wb prcom eleq1i anbi2i prex prss bitri
      syl a1i rabbidva simpr 3eqtrd jca ex eximdv reusn df-rex 3imtr4g mpd ) EU
      AJZBFJCFJBCUBUEZEBKLZECKLZMZANZUFZOZAFUCZWBWCPZBINZQZWLCQZQDRZIFUDZWJWBWC
      WPBCDEFIGHUGUHWKWOIFSZWHOZAUIWGFJZWIPZAUIWPWJWKWRWTAWKWRWTWKWRPZWSWIWRWSW
      KWRWHFRZWSWRWQFRXBWOIFUJWQWHFUKULWGFAUMUNUOURXAWFWMDJZCWLQZDJZPZIFSZWQWHX
      AWFXCIFSZXEIFSZMZXGWKWFXJOZWRWBXKWCWBEUPJZXKEUQXLWDXHWEXIIDEBFGHUSIDECFGH
      USUTVJTTXCXEIFVAVBWKXGWQOWRWKXFWOIFXFWOVCWKWLFJPXFXCWNDJZPWOXEXMXCXDWNDCW
      LVDVEVFWMWNDBWLVGWLCVGVHVIVKVLTWKWRVMVNVOVPVQWOIAFVRWIAFVSVTWAVP $.

    $d E k l n x $.  $d G n $.  $d V n $.
    $( The friendship condition, alternatively expressed by neighborhoods: in a
       friendship graph, the neighborhoods of two different vertices have
       exactly one vertex in common.  (Contributed by Alexander van der Vekens,
       19-Dec-2017.)  (Revised by AV, 29-Mar-2021.)  (Proof shortened by AV,
       30-Dec-2021.) $)
    frcond4 $p |- ( G e. FriendGraph
                    -> A. k e. V A. l e. ( V \ { k } ) E. x e. V
                       ( ( G NeighbVtx k ) i^i ( G NeighbVtx l ) ) = { x } ) $=
      ( cfrgr wcel cv cnbgr co cin csn wceq wrex wne wa anim2i cdif w3a frcond3
      eldifsn necom biimpi sylbi 3anass sylibr impel ralrimivva ) DIJZDBKZLMDFK
      ZLMNAKOPAEQZBFEEUMOUAZULUMEJZUNEJZUMUNRZUBZUOUQUNUPJZSZAUMUNCDEGHUCVBUQUR
      USSZSUTVAVCUQVAURUNUMRZSVCUNEUMUDVDUSURVDUSUNUMUEUFTUGTUQURUSUHUIUJUK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The friendship theorem for small graphs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d G k l x $.  $d N k l x $.
    $( Any graph with (at most) one vertex is a friendship graph.  (Contributed
       by Alexander van der Vekens, 4-Oct-2017.)  (Revised by AV,
       29-Mar-2021.) $)
    frgr1v $p |- ( ( G e. USGraph /\ ( Vtx ` G ) = { N } )
                   -> G e. FriendGraph ) $=
      ( vx vk vl wcel cfv csn wceq cv cpr wss wreu cdif cvv c0 raleqbidv mpbiri
      wral eqid cusgr cvtx wa cedg cfrgr simpl ral0 difeq2d difid syl6eq preq1d
      sneq preq2 sseq1d reubidv ralsng wn snprc rzal sylbi pm2.61i wb id difeq1
      reueq1 adantl frgrusgrfrcond sylanbrc ) AUAFZAUBGZBHZIZUCZVICJZDJZKZVNEJK
      ZKZAUDGZLZCVJMZEVJVOHZNZSZDVJSZAUEFVIVLUFVMWEVTCVKMZEVKWBNZSZDVKSZBOFZWIW
      JWIVNBKZVQKZVSLZCVKMZEPSZWNEUGWHWODBOVOBIZWFWNEWGPWPWGVKVKNPWPWBVKVKVOBUL
      UHVKUIUJWPVTWMCVKWPVRWLVSWPVPWKVQVOBVNUMUKUNUOQUPRWJUQVKPIWIBURWHDVKUSUTV
      AVLWEWIVBVIVLWDWHDVJVKVLVCVLWAWFEWCWGVJVKWBVDVTCVJVKVEQQVFRCDVSAVJEVJTVST
      VGVH $.
  $}

  ${
    $d A k l x $.  $d B k l x $.  $d G k l x $.
    $( Any graph with two (different) vertices is not a friendship graph.
       (Contributed by Alexander van der Vekens, 30-Sep-2017.)  (Proof
       shortened by Alexander van der Vekens, 13-Sep-2018.)  (Revised by AV,
       29-Mar-2021.) $)
    nfrgr2v $p |- ( ( ( A e. X /\ B e. Y /\ A =/= B )
                      /\ ( Vtx ` G ) = { A , B } ) -> G e/ FriendGraph ) $=
      ( vx vk vl wcel cpr wceq wa wss wreu wral wn wrex wb sseq1d adantr wne wi
      cusgr w3a cvtx cfv cfrgr wnel cv cedg csn cdif wo neirr eqid usgredgne ex
      mtoi adantl intnanrd prex prss sylnib intnand ioran sylanbrc preq1 rexprg
      preq12d 3adant3 mtbird reurex rexnal bicomi a1i difprsn1 3ad2ant3 rexeqdv
      nsyl preq2 preq2d reubidv notbid rexsng 3ad2ant2 3bitrd difprsn2 3ad2ant1
      orcd orbi12d mpbird sneq difeq2d preq1d raleqbidv sylib adantlr id difeq1
      reueq1 anbi2d df-nel frgrusgrfrcond xchbinx sylibr frgrusgr con3i pm2.61i
      expcom a1d ) CUCIZADIZBEIZABUAZUDZCUEUFZABJZKZLZCUGUHZUBXSXKXTXSXKLZXKFUI
      ZGUIZJZYBHUIZJZJZCUJUFZMZFXPNZHXPYCUKZULZOZGXPOZLZPZXTYAYPXKYIFXQNZHXQYKU
      LZOZGXQOZLZPZXOXKUUBXRXOXKLZYTXKUUCYSPZGXQQZYTPUUCUUEYBAJZYFJZYHMZFXQNZHX
      QAUKZULZOZPZYBBJZYFJZYHMZFXQNZHXQBUKZULZOZPZUMZUUCUVBUUFUUNJZYHMZFXQNZPZU
      UNUUFJZYHMZFXQNZPZUMUUCUVFUVJUUCUVDFXQQZUVEUUCUVKAAJZXQJZYHMZBAJZBBJZJZYH
      MZUMZUUCUVNPUVRPUVSPUUCUVLYHIZXQYHIZLUVNUUCUVTUWAXKUVTPXOXKUVTAAUAZAUNXKU
      VTUWBYHCAAYHUOZUPUQURUSUTUVLXQYHAAVAABVAVBVCUUCUVOYHIZUVPYHIZLUVRUUCUWEUW
      DXKUWEPXOXKUWEBBUAZBUNXKUWEUWFYHCBBUWCUPUQURUSVDUVOUVPYHBAVABBVAVBVCUVNUV
      RVEVFXOUVKUVSRZXKXLXMUWGXNUVDUVNUVRFABDEYBAKZUVCUVMYHUWHUUFUVLUUNXQYBAAVG
      YBABVGVISYBBKZUVCUVQYHUWIUUFUVOUUNUVPYBBAVGYBBBVGVISVHVJTVKUVDFXQVLVSWIUU
      CUUMUVFUVAUVJUUCUUMUUIPZHUUKQZUWJHUURQZUVFUUMUWKRUUCUWKUUMUUIHUUKVMVNVOUU
      CUWJHUUKUURXOUUKUURKZXKXNXLUWMXMABVPVQTVRXOUWLUVFRZXKXMXLUWNXNUWJUVFHBEYE
      BKZUUIUVEUWOUUHUVDFXQUWOUUGUVCYHUWOYFUUNUUFYEBYBVTWASWBWCWDWETWFUUCUVAUUQ
      PZHUUSQZUWPHUUJQZUVJUVAUWQRUUCUWQUVAUUQHUUSVMVNVOUUCUWPHUUSUUJXOUUSUUJKZX
      KXNXLUWSXMABWGVQTVRXOUWRUVJRZXKXLXMUWTXNUWPUVJHADYEAKZUUQUVIUXAUUPUVHFXQU
      XAUUOUVGYHUXAYFUUFUUNYEAYBVTWASWBWCWDWHTWFWJWKXOUUEUVBRZXKXLXMUXBXNUUDUUM
      UVAGABDEYCAKZYSUULUXCYQUUIHYRUUKUXCYKUUJXQYCAWLWMUXCYIUUHFXQUXCYGUUGYHUXC
      YDUUFYFYCAYBVTWNSWBWOWCYCBKZYSUUTUXDYQUUQHYRUUSUXDYKUURXQYCBWLWMUXDYIUUPF
      XQUXDYGUUOYHUXDYDUUNYFYCBYBVTWNSWBWOWCVHVJTWKYSGXQVMWPVDWQXSYPUUBRZXKXRUX
      EXOXRYOUUAXRYNYTXKXRYMYSGXPXQXRWRXRYJYQHYLYRXPXQYKWSYIFXPXQWTWOWOXAWCUSTW
      KXTCUGIZYOCUGXBZFGYHCXPHXPUOUWCXCXDXEXIXKPZXTXSUXHUXFPXTUXFXKCXFXGUXGXEXJ
      XH $.
  $}

  ${
    $d A k l x y $.  $d B k l x y $.  $d C k l x y $.  $d E k l x y $.
    $d G x y $.  $d V x y $.  $d X x y $.  $d Y x y $.  $d Z x y $.
    frgr3v.v $e |- V = ( Vtx ` G ) $.
    frgr3v.e $e |- E = ( Edg ` G ) $.
    $( Lemma 1 for ~ frgr3v .  (Contributed by Alexander van der Vekens,
       4-Oct-2017.)  (Revised by AV, 29-Mar-2021.) $)
    frgr3vlem1 $p |- ( ( ( A e. X /\ B e. Y /\ C e. Z )
              /\ ( A =/= B /\ A =/= C /\ B =/= C )
              /\ ( V = { A , B , C } /\ G e. USGraph ) ) -> A. x A. y
                 ( ( ( x e. { A , B , C } /\ { { x , A } , { x , B } } C_ E )
                  /\ ( y e. { A , B , C } /\ { { y , A } , { y , B } } C_ E ) )
              -> x = y ) ) $=
      ( wcel wceq cpr wi preq1 imbi2d com12 w3a wne ctp cusgr wa cv wss w3o vex
      eltp eqidd a1i13 preq12d sseq1d eqeq2 3imtr4d prex prss usgredgne adantll
      a1i df-ne eqid pm2.24i sylbi syl expcom adantr sylbir 3ad2ant3 2a1i 3jaoi
      eqeq1 imbi12d syl5ibr adantl pm2.21 mpisyl com13 a1d 3imp com3l imp imp31
      wn alrimivv ) CINDJNEKNUAZCDUBCEUBDEUBUAZHCDEUCZOZGUDNZUEZUAZAUFZWINZWNCP
      ZWNDPZPZFUGZUEBUFZWINZWTCPZWTDPZPZFUGZUEZUEZWNWTOZQABXGWMXHWOWSXFWMXHQZWO
      WNCOZWNDOZWNEOZUHZWSXFXIQQWNCDEAUIUJXFXMWSXIXAXEXMWSXIQZQZXAWTCOZWTDOZWTE
      OZUHZXEXOQWTCDEBUIUJXMXSXEXNXJXSXEXNQZQXKXLXSXTXJXECCPZCDPZPZFUGZWMCWTOZQ
      ZQZQZXPYHXQXRXPYDYDWMCCOZQZQXEYGXPYDYDYJYJYDWMCUKVAULXPXDYCFXPXBYAXCYBWTC
      CRWTCDRUMUNZXPYFYJYDXPYEYIWMWTCCUOSSUPXQDCPZDDPZPZFUGZYDWMCDOZQZQZXEYGYRX
      QYOWMYDYPWLWGYDYPQWHYDWLYPYDYAFNZYBFNZUEZWLYPQZYAYBFCCUQCDUQURZYSUUBYTWLY
      SYPWLYSUEZCCUBZYPWKYSUUEWJFGCCMUSUTZUUEYIWEZYPCCVBZYIYPCVCZVDVEVFVGVHVITV
      JTVKXQXDYNFXQXBYLXCYMWTDCRWTDDRUMUNZXQYFYQYDXQYEYPWMWTDCUOSSUPXRECPZEDPZP
      ZFUGZYDWMCEOZQZQZXEYGUUQXRUUNWMYDUUOWLWGYDUUOQWHYDWLUUOYDUUAWLUUOQZUUCYSU
      URYTWLYSUUOUUDUUEUUOUUFUUEUUGUUOUUHYIUUOUUIVDVEVFVGVHVITVJTVKXRXDUUMFXRXB
      UUKXCUULWTECRWTEDRUMUNZXRYFUUPYDXRYEUUOWMWTECUOSSUPVLXJXNYGXEXJWSYDXIYFXJ
      WRYCFXJWPYAWQYBWNCCRWNCDRUMUNXJXHYEWMWNCWTVMSVNSVOXSXTXKXEYOWMDWTOZQZQZQZ
      XPUVCXQXRXPYDYOWMDCOZQZQZXEUVBUVFXPYDWMYOUVDWLWGYOUVDQWHYOWLUVDYOYLFNZYMF
      NZUEZWLUVDQZYLYMFDCUQDDUQURZUVHUVJUVGWLUVHUVDWLUVHUEZDDUBZUVDWKUVHUVMWJFG
      DDMUSUTZUVMDDOZWEZUVDDDVBZUVOUVDDVCZVDVEVFVGVPVITVJTVKYKXPUVAUVEYOXPUUTUV
      DWMWTCDUOSSUPXQYOYOWMUVOQZQXEUVBXQYOYOUVSUVSYOWMDUKVAULUUJXQUVAUVSYOXQUUT
      UVOWMWTDDUOSSUPXRUUNYOWMDEOZQZQZXEUVBUWBXRUUNWMYOUVTWLWGYOUVTQWHYOWLUVTYO
      UVIWLUVTQZUVKUVHUWCUVGWLUVHUVTUVLUVMUVTUVNUVMUVPUVTUVQUVOUVTUVRVDVEVFVGVP
      VITVJTVKUUSXRUVAUWAYOXRUUTUVTWMWTEDUOSSUPVLXKXNUVBXEXKWSYOXIUVAXKWRYNFXKW
      PYLWQYMWNDCRWNDDRUMUNXKXHUUTWMWNDWTVMSVNSVOXSXTXLXEUUNWMEWTOZQZQZQZXPUWGX
      QXRXPYDUUNWMECOZQZQXEUWFXPYDUUNUWIWMYDUWHWLWGYDUWHQWHYDWLUWHYDUUAWLUWHQZU
      UCYSUWJYTWLYSUWHUUDUUEUWHUUFUUEUUGUWHUUHYIUWHUUIVDVEVFVGVHVITVJTULYKXPUWE
      UWIUUNXPUWDUWHWMWTCEUOSSUPXQYOUUNWMEDOZQZQXEUWFXQYOUUNUWLWMYOUWKWGWHWLYOU
      WKQZWGWLUWMQWHYOWLWGUWKYOUVIWLWGUWKQZQZUVKUVHUWOUVGWLUVHUWNUVLUVMUVOUWNUV
      NUVRUVMUVPUVOUWNQUVQUVOUWNVQVEVRVGVPVIVSVTWATULUUJXQUWEUWLUUNXQUWDUWKWMWT
      DEUOSSUPXRUUNUUNWMEEOZQZQXEUWFXRUUNUUNUWQUWQUUNWMEUKVAULUUSXRUWEUWQUUNXRU
      WDUWPWMWTEEUOSSUPVLXLXNUWFXEXLWSUUNXIUWEXLWRUUMFXLWPUUKWQUULWNECRWNEDRUMU
      NXLXHUWDWMWNEWTVMSVNSVOVLWBVEWCWBVEWDTWF $.

    $( Lemma 2 for ~ frgr3v .  (Contributed by Alexander van der Vekens,
       4-Oct-2017.)  (Revised by AV, 29-Mar-2021.) $)
    frgr3vlem2 $p |- ( ( ( A e. X /\ B e. Y /\ C e. Z )
                         /\ ( A =/= B /\ A =/= C /\ B =/= C ) )
                       -> ( ( V = { A , B , C } /\ G e. USGraph )
                      -> ( E! x e. { A , B , C } { { x , A } , { x , B } } C_ E
                           <-> ( { C , A } e. E /\ { C , B } e. E ) ) ) ) $=
      ( wcel wne wa wceq cpr wss preq1 prex vy w3a ctp cusgr cv wreu weu df-reu
      wb wex wal eleq1 preq12d sseq1d anbi12d eu4 frgr3vlem1 3expa biantrud w3o
      wi vex eltp prss usgredgne adantll wn df-ne eqid pm2.24i sylbi syl adantl
      ex com12 adantr sylbir syl6bi ax-1 3jaoi exlimdv wrex prssi 3mix3d rextpg
      imp ad3antrrr mpbird df-rex sylib impbid bitr3d syl5bb ) BHMCIMDJMUBZBCNB
      DNCDNUBZOZGBCDUCZPZFUDMZOZAUEZBQZXACQZQZERZAWQUFZDBQZEMDCQZEMOZUIXFXAWQMZ
      XEOZAUGZWPWTOZXIXEAWQUHXLXKAUJZXKUAUEZWQMZXOBQZXOCQZQZERZOZOXAXOPZVAUAUKA
      UKZOZXMXIXKYAAUAYBXJXPXEXTXAXOWQULYBXDXSEYBXBXQXCXRXAXOBSXAXOCSUMUNUOUPXM
      XNYDXIXMYCXNWNWOWTYCAUABCDEFGHIJKLUQURUSXMXNXIXMXKXIAXKXMXIXJXEXMXIVAZXJX
      ABPZXACPZXADPZUTXEYEVAZXABCDAVBVCYFYIYGYHYFXEBBQZBCQZQZERZYEYFXDYLEYFXBYJ
      XCYKXABBSXABCSUMUNZYMYJEMZYKEMZOYEYJYKEBBTBCTVDYOYEYPXMYOXIWTYOXIVAWPWTYO
      XIWTYOOBBNZXIWSYOYQWREFBBLVEVFYQBBPZVGXIBBVHYRXIBVIVJVKVLVNVMVOVPVQVRYGXE
      CBQZCCQZQZERZYEYGXDUUAEYGXBYSXCYTXACBSXACCSUMUNZUUBYSEMZYTEMZOYEYSYTECBTC
      CTVDUUEYEUUDXMUUEXIWTUUEXIVAWPWTUUEXIWTUUEOCCNZXIWSUUEUUFWREFCCLVEVFUUFCC
      PZVGXICCVHUUGXICVIVJVKVLVNVMVOVMVQVRYHXEXGXHQZERZYEYHXDUUHEYHXBXGXCXHXADB
      SXADCSUMUNZUUIXIYEXGXHEDBTDCTVDXIXMVSVQVRVTVKWFVOWAXMXIXNXMXIOZXEAWQWBZXN
      UUKUULYMUUBUUIUTZUUKUUIYMUUBXIUUIXMXGXHEWCVMWDWNUULUUMUIWOWTXIXEYMUUBUUIA
      BCDHIJYNUUCUUJWEWGWHXEAWQWIWJVNWKWLWMWMVN $.

    $d G k l $.  $d V k l $.
    $( Any graph with three vertices which are completely connected with each
       other is a friendship graph.  (Contributed by Alexander van der Vekens,
       5-Oct-2017.)  (Revised by AV, 29-Mar-2021.) $)
    frgr3v $p |- ( ( ( A e. X /\ B e. Y /\ C e. Z )
                     /\ ( A =/= B /\ A =/= C /\ B =/= C ) )
                   -> ( ( V = { A , B , C } /\ G e. USGraph )
                        -> ( G e. FriendGraph
                             <-> ( { A , B } e. E /\ { B , C } e. E
                                /\ { C , A } e. E ) ) ) ) $=
      ( vx vl wcel w3a wa wceq cpr wb wreu vk wne ctp cusgr cfrgr wss cdif wral
      cv csn frgrusgrfrcond id difeq1 reueq1 raleqbidv anbi2d baibd adantl sneq
      a1i bitrd difeq2d preq2 preq1d sseq1d reubidv raltpg ad2antrr tprot necom
      difeq1d biimpi anim12i 3adant3 diftpsn3 syl eqtrd raleqdv eqcomi anim12ci
      3adant2 3adant1 3anbi123d ad2antlr preq2d ralprg ancoms 3bitrd frgr3vlem2
      imp simpll1 simpll3 simpll2 3jca simplr2 simpld tpcomb syl6eq anim1i mp1i
      simplr1 syl21anc anbi12d simplr3 necomd eqeq2i tpcoma 3anrev 3com13 eqtri
      3anbi123i syl2an prcom eleq1i anbi2i anandir bitr4i 3anrot df-3an 3bitr3i
      biid bitr3i 3bitri anabs1 anidm syl6bb ex ) AGNZBHNZCINZOZABUBZACUBZBCUBZ
      OZPZFABCUCZQZEUDNZPZEUENZABRZDNZBCRZDNZCARZDNZOZSYPYTPZUUALUIZUAUIZRZUUJM
      UIZRZRZDUFZLYQTZMYQUUKUJZUGZUHZUAYQUHZUUJARZUUJBRZRZDUFZLYQTZUVBUUJCRZRZD
      UFZLYQTZPZUVCUVGRZDUFZLYQTZUVCUVBRZDUFZLYQTZPZUVGUVBRZDUFZLYQTZUVGUVCRZDU
      FZLYQTZPZOZUUHUUIUUAYSUUPLFTZMFUURUGZUHZUAFUHZPZUVAUUAUWKSUUILUADEFMJKUKU
      TYTUWKUVASYPYRUWKYSUVAYRUWJUVAYSYRUWIUUTUAFYQYRULZYRUWGUUQMUWHUUSFYQUURUM
      UUPLFYQUNUOUOUPUQURVAUUIUVAUVBUUNRZDUFZLYQTZMYQAUJZUGZUHZUVCUUNRZDUFZLYQT
      ZMYQBUJZUGZUHZUVGUUNRZDUFZLYQTZMYQCUJZUGZUHZOZUWOMUUDUHZUXAMUUFUHZUXGMUUB
      UHZOZUWFYKUVAUXKSYOYTUUTUWRUXDUXJUAABCGHIUUKAQZUUQUWOMUUSUWQUXPUURUWPYQUU
      KAUSVBUXPUUPUWNLYQUXPUUOUWMDUXPUULUVBUUNUUKAUUJVCVDVEVFUOUUKBQZUUQUXAMUUS
      UXCUXQUURUXBYQUUKBUSVBUXQUUPUWTLYQUXQUUOUWSDUXQUULUVCUUNUUKBUUJVCVDVEVFUO
      UUKCQZUUQUXGMUUSUXIUXRUURUXHYQUUKCUSVBUXRUUPUXFLYQUXRUUOUXEDUXRUULUVGUUNU
      UKCUUJVCVDVEVFUOVGVHYOUXKUXOSYKYTYOUWRUXLUXDUXMUXJUXNYOUWOMUWQUUDYOUWQBCA
      UCZUWPUGZUUDYOYQUXSUWPYQUXSQZYOABCVIZUTVKYOBAUBZCAUBZPZUXTUUDQYLYMUYEYNYL
      UYCYMUYDYLUYCABVJZVLYMUYDACVJZVLVMVNBCAVOVPVQVRYOUXAMUXCUUFYOUXCCABUCZUXB
      UGZUUFYOYQUYHUXBYQUYHQZYOUYHYQCABVIVSZUTVKYOCBUBZYLPZUYIUUFQYLYNUYMYMYLYL
      YNUYLYLULYNUYLBCVJZVLVTWAZCABVOVPVQVRYOUXGMUXIUUBYMYNUXIUUBQYLABCVOWBVRWC
      WDYKUXOUWFSYOYTYKUXLUVKUXMUVRUXNUWEYIYJUXLUVKSYHUWOUVFUVJMBCHIUUMBQZUWNUV
      ELYQUYPUWMUVDDUYPUUNUVCUVBUUMBUUJVCZWEVEVFUUMCQZUWNUVILYQUYRUWMUVHDUYRUUN
      UVGUVBUUMCUUJVCZWEVEVFWFWBYHYJUXMUVRSZYIYJYHUYTUXAUVNUVQMCAIGUYRUWTUVMLYQ
      UYRUWSUVLDUYRUUNUVGUVCUYSWEVEVFUUMAQZUWTUVPLYQVUAUWSUVODVUAUUNUVBUVCUUMAU
      UJVCZWEVEVFWFWGWAYHYIUXNUWESYJUXGUWAUWDMABGHVUAUXFUVTLYQVUAUXEUVSDVUAUUNU
      VBUVGVUBWEVEVFUYPUXFUWCLYQUYPUXEUWBDUYPUUNUVCUVGUYQWEVEVFWFVNWCVHWHUUIUWF
      UUGCBRZDNZPZBARZDNZUUEPZPZUUCACRZDNZPZVUDUUGPZPZUUEVUGPZVUKUUCPZPZOZUUHUU
      IUVKVUIUVRVUNUWEVUQUUIUVFVUEUVJVUHYPYTUVFVUESLABCDEFGHIJKWIWJUUIYHYJYIOZY
      MYLUYLOZFACBUCZQZYSPZUVJVUHSUUIYHYJYIYHYIYJYOYTWKZYHYIYJYOYTWLZYHYIYJYOYT
      WMZWNUUIYMYLUYLYLYMYNYKYTWOZYLYMYNYKYTXAZYOUYLYKYTYOUYLYLUYOWPWDZWNYTVVCY
      PYRVVBYSYRFYQVVAUWLABCWQZWRWSURVUSVUTPZVVCPZUVJUVILVVATZVUHYQVVAQUVJVVMSV
      VLVVJUVILYQVVAUNWTVVKVVCVVMVUHSLACBDEFGIHJKWIWJVAXBXCUUIUVNVULUVQVUMUUIYI
      YJYHOZYNUYCUYDOZFUXSQZYSPZUVNVULSUUIYIYJYHVVFVVEVVDWNUUIYNUYCUYDYLYMYNYKY
      TXDZUUIABVVHXEZUUIACVVGXEZWNYTVVQYPYRVVPYSYRVVPYQUXSFUYBXFVLWSURVVNVVOPZV
      VQPZUVNUVMLUXSTZVULUYAUVNVWCSVWBUYBUVMLYQUXSUNWTVWAVVQVWCVULSLBCADEFHIGJK
      WIWJVAXBUUIYIYHYJOZUYCYNYMOZFBACUCZQZYSPZUVQVUMSUUIYIYHYJVVFVVDVVEWNUUIUY
      CYNYMVVSVVRVVGWNYTVWHYPYRVWGYSYRVWGYQVWFFABCXGZXFVLWSURVWDVWEPZVWHPZUVQUV
      PLVWFTZVUMYQVWFQUVQVWLSVWKVWIUVPLYQVWFUNWTVWJVWHVWLVUMSLBACDEFHGIJKWIWJVA
      XBXCUUIUWAVUOUWDVUPUUIYJYHYIOZUYDUYLYLOZFUYHQZYSPZUWAVUOSUUIYJYHYIVVEVVDV
      VFWNUUIUYDUYLYLVVTVVIVVHWNYTVWPYPYRVWOYSYRVWOYQUYHFUYKXFVLWSURVWMVWNPZVWP
      PZUWAUVTLUYHTZVUOUYJUWAVWSSVWRUYKUVTLYQUYHUNWTVWQVWPVWSVUOSLCABDEFIGHJKWI
      WJVAXBYPYJYIYHOZUYLUYDUYCOZPZFCBAUCZQZYSPZUWDVUPSYTYKVWTYOVXAYKVWTYHYIYJX
      HVLYNYMYLVXAYNYMYLOVXAYNUYLYMUYDYLUYCUYNUYGUYFXKVLXIVMYRVXDYSYRVXDYQVXCFY
      QUXSVXCUYBBCAXGXJZXFVLWSVXBVXEPZUWDUWCLVXCTZVUPYQVXCQUWDVXHSVXGVXFUWCLYQV
      XCUNWTVXBVXEVXHVUPSLCBADEFIHGJKWIWJVAXLXCWCVURUUGVUGPVUDPZUUCVUDPVUKPZUUE
      VUKPVUGPZOUUHUUHUUHOZUUHVUIVXIVUNVXJVUQVXKVUIVUEVUGVUDPZPVXIVUHVXMVUEUUEV
      UDVUGUUDVUCDBCXMXNXOXOUUGVUGVUDXPXQVUNVULVUDVUKPZPVXJVUMVXNVULUUGVUKVUDUU
      FVUJDCAXMXNXOXOUUCVUDVUKXPXQVUQVUOVUKVUGPZPVXKVUPVXOVUOUUCVUGVUKUUBVUFDAB
      XMXNXOXOUUEVUKVUGXPXQXKVXIUUHVXJUUHVXKUUHUUGVUGVUDOVUGVUDUUGOVXIUUHUUGVUG
      VUDXRUUGVUGVUDXSVUGUUCVUDUUEUUGUUGVUFUUBDBAXMXNZVUCUUDDCBXMXNZUUGYAXKXTVX
      JUUCVUDVUKOUUHUUCVUDVUKXSUUCUUCVUDUUEVUKUUGUUCYAVXQVUJUUFDACXMXNZXKYBVXKU
      UEVUKVUGOZUUHUUEVUKVUGXSVXSVUKVUGUUEOVUGUUEVUKOUUHUUEVUKVUGXRVUKVUGUUEXRV
      UGUUCUUEUUEVUKUUGVXPUUEYAVXRXKYCYBXKVXLUUHUUHPZUUHPVXTUUHUUHUUHUUHXSUUHUU
      HYDUUHYEYCYCYFWHYG $.
  $}

  ${
    $d A h v w $.  $d E h $.  $d V h v w $.
    $( Every graph with one vertex (which may be connect with itself by
       (multiple) loops!) is a windmill graph.  (Contributed by Alexander van
       der Vekens, 5-Oct-2017.)  (Revised by AV, 31-Mar-2021.) $)
    1vwmgr $p |- ( ( A e. X /\ V = { A } )
                    -> E. h e. V A. v e. ( V \ { h } ) ( { v , h } e. E
                                /\ E! w e. ( V \ { h } ) { v , w } e. E ) ) $=
      ( wcel csn wceq wa cv cpr cdif wreu wral wrex c0 wb reueq1 difeq2d syl6eq
      ral0 difid preq2 eleq1d syl anbi12d raleqbidv rexsng mpbiri adantr difeq1
      sneq anbi2d rexeqbi1dv adantl mpbird ) CGHZFCIZJZKBLZDLZMZEHZVBALMEHZAFVC
      IZNZOZKZBVHPZDFQZVEVFAUTVGNZOZKZBVMPZDUTQZUSVQVAUSVQVBCMZEHZVFAUTUTNZOZKZ
      BRPZWBBUCVPWCDCGVCCJZVOWBBVMRWDVMVTRWDVGUTUTVCCUNUAZUTUDUBWDVEVSVNWAWDVDV
      REVCCVBUEUFWDVMVTJVNWASWEVFAVMVTTUGUHUIUJUKULVAVLVQSUSVKVPDFUTVAVJVOBVHVM
      FUTVGUMZVAVIVNVEVAVHVMJVIVNSWFVFAVHVMTUGUOUIUPUQUR $.
  $}

  ${
    $d A w y $.  $d B w y $.  $d C w y $.  $d E w y $.  $d G w y $.
    $d V w y $.  $d X w y $.  $d Y w y $.
    3vfriswmgr.v $e |- V = ( Vtx ` G ) $.
    3vfriswmgr.e $e |- E = ( Edg ` G ) $.
    $( Lemma for ~ 3vfriswmgr .  (Contributed by Alexander van der Vekens,
       6-Oct-2017.)  (Revised by AV, 31-Mar-2021.) $)
    3vfriswmgrlem $p |- ( ( ( A e. X /\ B e. Y /\ A =/= B )
                            /\ ( V = { A , B , C } /\ G e. USGraph ) )
                          -> ( { A , B } e. E
                               -> E! w e. { A , B } { A , w } e. E ) ) $=
      ( vy wcel wceq wa cpr wi preq2 eleq1d imbi2d wne w3a ctp cusgr cv weu wex
      wreu wal wrex wo animorr rexprg 3adant3 ad2antrr mpbird df-rex sylib elpr
      wb vex eqidd a1i a1i13 eqeq2 3imtr4d usgredgne adantll df-ne eqid pm2.24i
      wn sylbi syl ex ad2antlr com12 2a1i eqeq1 imbi12d syl5ibr com3l imp imp31
      jaoi alrimivv eleq1 anbi12d eu4 sylanbrc df-reu sylibr ) BHMZCIMZBCUAZUBZ
      GBCDUCNZFUDMZOZOZBCPZEMZBAUEZPZEMZAXAUHZWTXBOZXCXAMZXEOZAUFZXFXGXIAUGZXIL
      UEZXAMZBXLPZEMZOZOZXCXLNZQZLUIAUIXJXGXEAXAUJZXKXGXTBBPZEMZXBUKZWTXBYBULWP
      XTYCUTZWSXBWMWNYDWOXEYBXBABCHIXCBNZXDYAEXCBBRSZXCCNZXDXAEXCCBRSZUMUNUOUPX
      EAXAUQURXGXSALXQXGXRXHXEXPXGXRQZXHYEYGUKZXEXPYIQQXCBCAVAUSXPYJXEYIXMXOYJX
      EYIQZQZXMXLBNZXLCNZUKZXOYLQXLBCLVAUSYJYOXOYKYEYOXOYKQZQYGYOYPYEXOYBXGBXLN
      ZQZQZQZYMYTYNYMYBYBXGBBNZQZQXOYSYMYBYBUUBUUBYBXGBVBVCVDYMXNYAEXLBBRSZYMYR
      UUBYBYMYQUUAXGXLBBVETTVFYNXBYBXGBCNZQZQZXOYSUUFYNXBXGYBUUDWSYBUUDQWPXBWSY
      BUUDWSYBOZBBUAZUUDWRYBUUHWQEFBBKVGVHZUUHUUAVLZUUDBBVIZUUAUUDBVJZVKVMVNVOV
      PVQVRYNXNXAEXLCBRSZYNYRUUEYBYNYQUUDXGXLCBVETTVFWEYEYKYSXOYEXEYBYIYRYFYEXR
      YQXGXCBXLVSTVTTWAYOYPYGXOXBXGCXLNZQZQZQZYMUUQYNYMYBXBXGCBNZQZQXOUUPYMYBXB
      UUSXGYBUURWSYBUURQWPXBWSYBUURUUGUUHUURUUIUUHUUJUURUUKUUAUURUULVKVMVNVOVPV
      QVDUUCYMUUOUUSXBYMUUNUURXGXLBCVETTVFYNXBXBXGCCNZQZQXOUUPYNXBXBUVAUVAXBXGC
      VBVCVDUUMYNUUOUVAXBYNUUNUUTXGXLCCVETTVFWEYGYKUUPXOYGXEXBYIUUOYHYGXRUUNXGX
      CCXLVSTVTTWAWEWBVMWCWBVMWDVQWFXIXPALXRXHXMXEXOXCXLXAWGXRXDXNEXCXLBRSWHWIW
      JXEAXAWKWLVO $.

    $d A h v w $.  $d B h v $.  $d C h v $.  $d E h v $.  $d V h v $.
    $( Every friendship graph with three (different) vertices is a windmill
       graph.  (Contributed by Alexander van der Vekens, 6-Oct-2017.)  (Revised
       by AV, 31-Mar-2021.) $)
    3vfriswmgr $p |- ( ( ( A e. X /\ B e. Y /\ C e. Z )
                         /\ ( A =/= B /\ A =/= C /\ B =/= C )
                         /\ V = { A , B , C } ) -> ( G e. FriendGraph
                       -> E. h e. V A. v e. ( V \ { h } ) ( { v , h } e. E
                               /\ E! w e. ( V \ { h } ) { v , w } e. E ) ) ) $=
      ( wcel wceq cpr wreu wa wb w3a wne ctp cfrgr cv csn cdif wral wi frgrusgr
      wrex cusgr frgr3v exp4b 3imp1 prcom eleq1i biimpi 3ad2ant3 adantl simpl11
      w3o simpl12 simp1 3ad2ant2 adantr 3jca simp3 anim1i jca 3vfriswmgrlem imp
      syl2an simpr2 3ad2ant1 tpcoma syl6eq reueq1 sylibr eleq1d reubidv anbi12d
      necom ax-mp preq1 ralprg 3adant3 mpbird diftpsn3 3adant1 anbi2d raleqbidv
      syl 3mix3d difeq2d preq2 rextpg ex sylbid expcom com23 mpcom com12 difeq1
      sneq rexeqbi1dv imbi2d ) CJOZDKOZELOZUAZCDUBZCEUBZDEUBZUAZICDEUCZPZUAZHUD
      OZBUEZFUEZQZGOZXTAUEZQZGOZAIYAUFZUGZRZSZBYHUHZFIUKZUIZXSYCYFAXPYGUGZRZSZB
      YNUHZFXPUKZUIZXSXRYRHULOZXSXRYRUIHUJYTXRXSYRXRYTYSXRYTSZXSCDQZGOZDEQZGOZE
      CQZGOZUAZYRXKXOXQYTXSUUHTZXKXOXQYTUUICDEGHIJKLMNUMUNUOUUAUUHYRUUAUUHSZYRX
      TCQZGOZYFAXPCUFZUGZRZSZBUUNUHZXTDQZGOZYFAXPDUFZUGZRZSZBUVAUHZXTEQZGOZYFAX
      PEUFZUGZRZSZBUVHUHZVBZUUJUVKUUQUVDUUJUVKUVFYFAUUBRZSZBUUBUHZUUJUVOCEQZGOZ
      CYDQZGOZAUUBRZSZUUEDYDQZGOZAUUBRZSZSZUUJUWAUWEUUJUVQUVTUUHUVQUUAUUGUUCUVQ
      UUEUUGUVQUUFUVPGECUPUQURUSUTUUAXHXIXLUAZXQYTSZSZUUCUVTUUHUUAUWGUWHUUAXHXI
      XLXHXIXJXOXQYTVAZXHXIXJXOXQYTVCZXRXLYTXOXKXLXQXLXMXNVDVEVFVGXRXQYTXKXOXQV
      HZVIVJUUCUUEUUGVDUWIUUCUVTACDEGHIJKMNVKVLVMVJUUJUUEUWDUUAUUCUUEUUGVNUUAXI
      XHDCUBZUAZIDCEUCZPZYTSZSZDCQZGOZUWDUUHUUAUWNUWQUUAXIXHUWMUWKUWJXRUWMYTXOX
      KUWMXQXLXMUWMXNXLUWMCDWCURVOVEVFVGXRUWPYTXRIXPUWOUWLCDEVPVQVIVJUUCUUEUWTU
      UGUUCUWTUUBUWSGCDUPZUQURVOUWRUWTSUWCAUWSRZUWDUWRUWTUXBADCEGHIKJMNVKVLUUBU
      WSPUWDUXBTUXAUWCAUUBUWSVRWDVSVMVJVJUUAUVOUWFTZUUHXRUXCYTXKXOUXCXQXHXIUXCX
      JUVNUWAUWEBCDJKXTCPZUVFUVQUVMUVTUXDUVEUVPGXTCEWEVTUXDYFUVSAUUBUXDYEUVRGXT
      CYDWEVTWAWBXTDPZUVFUUEUVMUWDUXEUVEUUDGXTDEWEVTUXEYFUWCAUUBUXEYEUWBGXTDYDW
      EVTWAWBWFWGVOVFVFWHUUAUVKUVOTZUUHXRUXFYTXOXKUXFXQXOUVJUVNBUVHUUBXMXNUVHUU
      BPZXLCDEWIWJZXOUVIUVMUVFXOUXGUVIUVMTUXHYFAUVHUUBVRWMWKWLVEVFVFWHWNUUAYRUV
      LTZUUHXRUXIYTXKXOUXIXQYQUUQUVDUVKFCDEJKLYACPZYPUUPBYNUUNUXJYGUUMXPYACXEWO
      ZUXJYCUULYOUUOUXJYBUUKGYACXTWPVTUXJYNUUNPYOUUOTUXKYFAYNUUNVRWMWBWLYADPZYP
      UVCBYNUVAUXLYGUUTXPYADXEWOZUXLYCUUSYOUVBUXLYBUURGYADXTWPVTUXLYNUVAPYOUVBT
      UXMYFAYNUVAVRWMWBWLYAEPZYPUVJBYNUVHUXNYGUVGXPYAEXEWOZUXNYCUVFYOUVIUXNYBUV
      EGYAEXTWPVTUXNYNUVHPYOUVITUXOYFAYNUVHVRWMWBWLWQVOVFVFWHWRWSWTXAXBXCXQXKYM
      YSTXOXQYLYRXSYKYQFIXPXQYJYPBYHYNIXPYGXDZXQYIYOYCXQYHYNPYIYOTUXPYFAYHYNVRW
      MWKWLXFXGUSWH $.

    $( Every friendship graph with one or two vertices is a windmill graph.
       (Contributed by Alexander van der Vekens, 6-Oct-2017.)  (Revised by AV,
       31-Mar-2021.) $)
    1to2vfriswmgr $p |- ( ( A e. X /\ ( V = { A } \/ V = { A , B } ) )
                       -> ( G e. FriendGraph
                            -> E. h e. V A. v e. ( V \ { h } ) ( { v , h } e. E
                               /\ E! w e. ( V \ { h } ) { v , w } e. E ) ) ) $=
      ( csn wceq cpr wcel cfrgr cv wa wi wn wo cdif wreu wral 1vwmgr a1d expcom
      wrex cvv wne wnel w3a cvtx simpr simpll simplr 3jca eqeq1i biimpi nfrgr2v
      cfv syl2anr df-nel sylib pm2.21d ex com23 ianor prprc2 preq2 eqcoms dfsn2
      nne syl6eqr sylbi jaoi eqeq2d syl6bi pm2.61i impcom ) HCLZMZHCDNZMZUACIOZ
      GPOZBQZEQZNFOWGAQNFOAHWHLUBZUCRBWIUDEHUHZSZWBWEWKSZWDWEWBWKWEWBRWJWFABCEF
      HIUEUFUGZDUIOZCDUJZRZWDWLSWPWEWDWKWPWEWDWKSWDWPWERZWKWDWQRZWFWJWRGPUKZWFT
      WQWEWNWOULGUMVAZWCMZWSWDWQWEWNWOWPWEUNWNWOWEUOWNWOWEUPUQWDXAHWTWCJURUSCDG
      IUIUTVBGPVCVDVEUGVFVGWPTZWDWBWLXBWCWAHXBWNTZWOTZUAWCWAMZWNWOVHXCXEXDCDVIX
      DCDMZXECDVMXFWCCCNZWAWCXGMDCDCCVJVKCVLVNVOVPVOVQWMVRVSVPVT $.

    $( Every friendship graph with one, two or three vertices is a windmill
       graph.  (Contributed by Alexander van der Vekens, 6-Oct-2017.)  (Revised
       by AV, 31-Mar-2021.) $)
    1to3vfriswmgr $p |- ( ( A e. X /\ ( V = { A } \/ V = { A , B }
                           \/ V = { A , B , C } ) ) -> ( G e. FriendGraph
                          -> E. h e. V A. v e. ( V \ { h } ) ( { v , h } e. E
                               /\ E! w e. ( V \ { h } ) { v , w } e. E ) ) ) $=
      ( wceq cpr ctp wcel wa wi cvv wne csn w3o cfrgr cv cdif wreu wral wrex wo
      df-3or 1to2vfriswmgr expcom tppreq3 eqeq2d olc anim1i ancomd ex syl6bi wn
      syl tpprceq3 tprot eqeq1i biimpi prcom syl6eq sylan2 a1d tpcoma com23 w3a
      simpl anim12i 3anass sylibr simpr necomd df-3an simplr 3vfriswmgr syl3anc
      ad2antrr exp41 ecase pm2.61ine jaoi sylbi impcom ) ICUAMZICDNZMZICDEOZMZU
      BZCJPZHUCPBUDZFUDZNGPWQAUDNGPAIWRUAUEZUFQBWSUGFIUHRZWOWJWLUIZWNUIWPWTRZWJ
      WLWNUJXAXBWNWPXAWTABCDFGHIJKLUKZULWNXBRZDEDEMZWNWLXBXEWMWKICDEUMUNWLWPWTW
      LWPQZWPXAQWTXFXAWPWLXAWPWLWJUOZUPUQXCVAURUSDSPZDCTZQZESPZECTZQZDETZXDRXJU
      TZXDXNXOECDOZECNZMZXDECDVBXRWNICENZMZXBXRWMXSIXRWMXQXSXRWMXQMXPWMXQECDVCV
      DVEECVFVGUNWPXTWTXTWPWJXTUIWTXTWJUOABCEFGHIJKLUKVHULUSVAVIXMUTZWNXNXBYADC
      EOZDCNZMZWNXNXBRZRDCEVBYDWNWLYEYDWMWKIYDWMYCWKYDWMYCMYBWMYCDCEVJVDVEDCVFV
      GUNWLXBXNWPWLWTWLWPXAWTXGXCVHULVIUSVAVKXJXMQZXNWNWPWTYFXNQZWNQZWPQZWPXHXK
      VLZCDTZCETZXNVLZWNWTYIWPXHXKQZQYJYIYNWPYHYNWPYFYNXNWNXJXHXMXKXHXIVMXKXLVM
      VNWCUPUQWPXHXKVOVPYGYMWNWPYGYKYLQZXNQYMYFYOXNXJYKXMYLXJDCXHXIVQVRXMECXKXL
      VQVRVNUPYKYLXNVSVPWCYGWNWPVTABCDEFGHIJSSKLWAWBWDWEWFWGWHWI $.

    $d A v w x $.  $d B x $.  $d C x $.  $d E x $.  $d G x $.  $d V x $.
    $d X x $.
    $( The friendship theorem for small graphs:  In every friendship graph with
       one, two or three vertices, there is a vertex which is adjacent to all
       other vertices.  (Contributed by Alexander van der Vekens, 6-Oct-2017.)
       (Revised by AV, 31-Mar-2021.) $)
    1to3vfriendship $p |- ( ( A e. X /\ ( V = { A } \/ V = { A , B }
                                             \/ V = { A , B , C } ) )
                               -> ( G e. FriendGraph
                       -> E. v e. V A. w e. ( V \ { v } ) { v , w } e. E ) ) $=
      ( vx wcel csn wceq cpr wa cv wral wrex ctp cfrgr cdif 1to3vfriswmgr prcom
      w3o wreu eleq1i biimpi adantr ralimi reximi syl6 ) CIMHCNOHCDPOHCDEUAOUFQ
      GUBMARZBRZPZFMZUNLRPFMLHUONUCZUGZQZAURSZBHTUOUNPZFMZAURSZBHTLACDEBFGHIJKU
      DVAVDBHUTVCAURUQVCUSUQVCUPVBFUNUOUEUHUIUJUKULUM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Theorems according to Mertzios and Unger
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d G a b c $.  $d V a b c $.
    2pthfrgrrn.v $e |- V = ( Vtx ` G ) $.
    2pthfrgrrn.e $e |- E = ( Edg ` G ) $.
    $( Between any two (different) vertices in a friendship graph is a 2-path
       (path of length 2), see Proposition 1(b) of [MertziosUnger] p. 153 :  "A
       friendship graph G ..., as well as the distance between any two nodes in
       G is at most two".  (Contributed by Alexander van der Vekens,
       15-Nov-2017.)  (Revised by AV, 1-Apr-2021.) $)
    2pthfrgrrn $p |- ( G e. FriendGraph -> A. a e. V A. c e. ( V \ { a } )
                            E. b e. V ( { a , b } e. E /\ { b , c } e. E ) ) $=
      ( cfrgr wcel cusgr cv cpr wss wreu csn wral wa wrex zfpair2 cdif wi prcom
      frgrusgrfrcond reurex eleq1i anbi1i sylbbr reximi syl a1i ralimdvva sylbi
      prss imp ) BIJBKJZELZDLZMZUQFLZMZMANZECOZFCURPUAZQDCQZRURUQMZAJZVAAJZRZEC
      SZFVDQDCQZEDABCFGHUDUPVEVKUPVCVJDFCVDVCVJUBUPURCJUTVDJRRVCVBECSVJVBECUEVB
      VIECVIUSAJZVHRVBVGVLVHVFUSAURUQUCUFUGUSVAAEDTEFTUNUHUIUJUKULUOUM $.

    $( Between any two (different) vertices in a friendship graph is a 2-path
       (path of length 2), see Proposition 1(b) of [MertziosUnger] p. 153 :  "A
       friendship graph G ..., as well as the distance between any two nodes in
       G is at most two".  (Contributed by Alexander van der Vekens,
       16-Nov-2017.)  (Revised by AV, 1-Apr-2021.) $)
    2pthfrgrrn2 $p |- ( G e. FriendGraph -> A. a e. V A. c e. ( V \ { a } )
                               E. b e. V ( ( { a , b } e. E /\ { b , c } e. E )
                                           /\ ( a =/= b /\ b =/= c ) ) ) $=
      ( cfrgr wcel cv cpr wa wrex csn cdif wral wne usgredgne ex cusgr frgrusgr
      2pthfrgrrn wi anim12d syl ad2antrr ancld reximdva ralimdvva mpd ) BIJZDKZ
      EKZLAJZUNFKZLAJZMZECNZFCUMOPZQDCQURUMUNRZUNUPRZMZMZECNZFUTQDCQABCDEFGHUCU
      LUSVEDFCUTULUMCJUPUTJMZMZURVDECVGUNCJZMURVCULURVCUDZVFVHULBUAJZVIBUBVJUOV
      AUQVBVJUOVAABUMUNHSTVJUQVBABUNUPHSTUEUFUGUHUIUJUK $.
  $}

  ${
    $d G a b f m p $.  $d V a b m $.
    2pthfrgr.v $e |- V = ( Vtx ` G ) $.
    $( Between any two (different) vertices in a friendship graph, tere is a
       2-path (simple path of length 2), see Proposition 1(b) of
       [MertziosUnger] p. 153 :  "A friendship graph G ..., as well as the
       distance between any two nodes in G is at most two".  (Contributed by
       Alexander van der Vekens, 6-Dec-2017.)  (Revised by AV, 1-Apr-2021.) $)
    2pthfrgr $p |- ( G e. FriendGraph -> A. a e. V A. b e. ( V \ { a } )
               E. f E. p ( f ( a ( SPathsOn ` G ) b ) p /\ ( # ` f ) = 2 ) ) $=
      ( vm cfrgr wcel cv cpr cedg cfv wa wne wral wex adantr ralimdva wrex cdif
      csn cspthson co wbr chash c2 wceq 2pthfrgrrn2 cuhgr w3a frgrusgr usgruhgr
      eqid cusgr syl simpllr simpr eldifi ad2antlr simprrl eldifsn necom biimpi
      jca simplbiim ad3antlr simprrr simprl 2pthon3v syl131anc ex rexlimdva mpd
      3jca ) BIJZEKZHKZLBMNZJVSFKZLVTJOZVRVSPZVSWAPZOZOZHCUAZFCVRUCZUBZQZECQAKZ
      DKVRWABUDNUEUFWKUGNUHUIODRARZFWIQZECQVTBCEHFGVTUOZUJVQWJWMECVQVRCJZOZWGWL
      FWIWPWAWIJZOZWFWLHCWRVSCJZOZWFWLWTWFOBUKJZWOWSWACJZULZOZWCVRWAPZWDWBWLWTX
      DWFWTXAXCWRXAWSWPXAWQVQXAWOVQBUPJXABUMBUNUQSSSWTWOWSXBVQWOWQWSURWRWSUSWQX
      BWPWSWACWHUTVAVPVFSWTWBWCWDVBWQXEWPWSWFWQXBWAVRPZXEWACVRVCXFXEWAVRVDVEVGV
      HWTWBWCWDVIWTWBWEVJVRVSWAAVTBCDGWNVKVLVMVNTTVO $.
  $}

  ${
    $d A a x z $.  $d A b c x y $.  $d A u v y $.  $d C x y $.  $d C x z $.
    $d E a x z $.  $d E b c x y $.  $d E u v y $.  $d G a x z $.  $d G u v y $.
    $d V a x z $.  $d V b c x y $.  $d V u v y $.  $d v x y $.
    3cyclfrgrrn1.v $e |- V = ( Vtx ` G ) $.
    3cyclfrgrrn1.e $e |- E = ( Edg ` G ) $.
    $( Every vertex in a friendship graph (with more than 1 vertex) is part of
       a 3-cycle.  (Contributed by Alexander van der Vekens, 16-Nov-2017.)
       (Revised by AV, 2-Apr-2021.) $)
    3cyclfrgrrn1 $p |- ( ( G e. FriendGraph
                           /\ ( A e. V /\ C e. V ) /\ A =/= C )
                         -> E. b e. V E. c e. V ( { A , b } e. E
                                     /\ { b , c } e. E /\ { c , A } e. E ) ) $=
      ( vx vz vy wcel wa wne cv cpr wrex wi eleq1d va vu vv cfrgr w3a cdif wral
      csn 2pthfrgrrn2 necom eldifsn simplbi2com sylbi com12 adantl wceq difeq2d
      imp sneq preq1 anbi1d neeq1 anbi12d raleqbidv rspcv ad2antrr preq2 anbi2d
      rexbidv neeq2 sylsyld 2pthfrgrrn adantr eleq1i anbi12ci 3anbi123d rspc2ev
      prcom biidd 3expa expcom 3expib syl5bi com13 rexlimdva exp31 com24 impcom
      syl9 com15 pm2.43i com4t syl com14 rexlimiv syl6 pm2.43a ex mpcom 3imp )
      DUDMZAEMZBEMZNZABOZAFPZQZCMZXFGPZQZCMZXIAQZCMZUEZGERFERZUAPZJPZQZCMZXQKPZ
      QZCMZNZXPXQOZXQXTOZNZNZJERZKEXPUHZUFZUGZUAEUGZXAXDXEXOSSCDEUAJKHIUIXDXEYL
      XAXOXDXEYLXAXOSZSYLXDXENZYMYNYLAXQQZCMZXQBQZCMZNZAXQOZXQBOZNZNZJERZYNYMSZ
      YNBEAUHZUFZMZYLYPYBNZYTYENZNZJERZKUUGUGZUUDXDXEUUHXCXEUUHSXBXEXCUUHXEBAOZ
      XCUUHSABUJUUHXCUUNBEAUKULUMUNUOURXBYLUUMSXCXEYKUUMUAAEXPAUPZYHUULKYJUUGUU
      OYIUUFEXPAUSUQUUOYGUUKJEUUOYCUUIYFUUJUUOXSYPYBUUOXRYOCXPAXQUTTVAUUOYDYTYE
      XPAXQVBVAVCVIVDVEVFUULUUDKBUUGXTBUPZUUKUUCJEUUPUUIYSUUJUUBUUPYBYRYPUUPYAY
      QCXTBXQVGTVHUUPYEUUAYTXTBXQVJVHVCVIVEVKUUCUUEJEXAUUCYNXQEMZXOXAUBPZLPZQZC
      MZUUSUCPZQZCMZNZLERZUCEUURUHZUFZUGZUBEUGZUUCYNUUQXOSZSSCDEUBLUCHIVLYNUUQU
      VJUUCXOXBUUQUVJUUCXOSSZSXCXEUUQXBUVLUUQXBUVLSUUCUUQXBUVJUUQXOUUBYSUUQXBUV
      JUVKSZSSZYTYSUVNSUUAYTXBUUQYSUVMYTXBUUQYSUVMSYTXBNZUUQNZUVJAUUSQZCMZUUSXQ
      QZCMZNZLERZYSUVKUVPXQUUGMZUVJUVRUVDNZLERZUCUUGUGZUWBUVOUUQUWCYTUUQUWCSZXB
      YTXQAOZUWGAXQUJUWCUUQUWHXQEAUKULUMVMURUVOUVJUWFSZUUQXBUWIYTUVIUWFUBAEUURA
      UPZUVFUWEUCUVHUUGUWJUVGUUFEUURAUSUQUWJUVEUWDLEUWJUVAUVRUVDUWJUUTUVQCUURAU
      USUTTVAVIVDVEUOVMUWEUWBUCXQUUGUVBXQUPZUWDUWALEUWKUVDUVTUVRUWKUVCUVSCUVBXQ
      UUSVGTVHVIVEVKUUQUWBYSXOUUQUWAYSXOSLEYSUWAUUQUUSEMZNZXOYPUWAUWMXOSZSYRUWA
      XQUUSQZCMZUUSAQZCMZNYPUWNUVRUWRUVTUWPUVQUWQCAUUSVRVNUVSUWOCUUSXQVRVNVOYPU
      WPUWRUWNUWMYPUWPUWRUEZXOUUQUWLUWSXOXNUWSYPXQXIQZCMZXMUEFGXQUUSEEXFXQUPZXH
      YPXKUXAXMXMUXBXGYOCXFXQAVGTUXBXJUWTCXFXQXIUTTUXBXMVSVPXIUUSUPZYPYPUXAUWPX
      MUWRUXCYPVSUXCUWTUWOCXIUUSXQVGTUXCXLUWQCXIUUSAUTTVPVQVTWAWBWCVMWDWEWDWIWF
      WGVMWHWJWKUNVFWLWMWNWOWPWQWRWLWSWT $.

    $d G a b c $.
    $( Every vertex in a friendship graph (with more than 1 vertex) is part of
       a 3-cycle.  (Contributed by Alexander van der Vekens, 16-Nov-2017.)
       (Revised by AV, 2-Apr-2021.) $)
    3cyclfrgrrn $p |- ( ( G e. FriendGraph /\ 1 < ( # ` V ) )
                        -> A. a e. V E. b e. V E. c e. V ( { a , b } e. E
                                     /\ { b , c } e. E /\ { c , a } e. E ) ) $=
      ( vx cfrgr wcel cfv wa cv cpr w3a wrex wi cvv cvtx chash clt wbr wne fvex
      c1 eqeltri mp3an1 simpr pm3.22 3adant2 adantr simpl2 3cyclfrgrrn1 syl3anc
      hashgt12el2 3exp1 rexlimiv syl expcom pm2.43a com13 imp ralrimiv ) BJKZUF
      CUALUBUCZMDNZENZOAKVHFNZOAKVIVGOAKPFCQECQZDCVEVFVGCKZVJRVKVFVEVJVFVKVEVJR
      ZVFVKVKVLRZVFVKMVGINZUDZICQZVMCSKVFVKVPCBTLSGBTUEUGVGCSIUPUHVOVMICVNCKZVO
      VKVEVJVQVOVKPZVEMVEVKVQMZVOVJVRVEUIVRVSVEVQVKVSVOVQVKUJUKULVQVOVKVEUMVGVN
      ABCEFGHUNUOUQURUSUTVAVBVCVD $.

    $( Every vertex in a friendship graph (with more than 1 vertex) is part of
       a 3-cycle.  (Contributed by Alexander van der Vekens, 10-Dec-2017.)
       (Revised by AV, 2-Apr-2021.) $)
    3cyclfrgrrn2 $p |- ( ( G e. FriendGraph /\ 1 < ( # ` V ) )
                         -> A. a e. V E. b e. V E. c e. V ( b =/= c
               /\ ( { a , b } e. E /\ { b , c } e. E /\ { c , a } e. E ) ) ) $=
      ( cfrgr wcel c1 chash cfv wa cv cpr wrex wral wi reximdv clt wbr frgrusgr
      w3a wne 3cyclfrgrrn cusgr usgredgne expcom 3ad2ant2 syl5com ancrd ralimdv
      adantr mpd ) BIJZKCLMUAUBZNZDOZEOZPAJZUTFOZPAJZVBUSPAJZUDZFCQZECQZDCRUTVB
      UEZVENZFCQZECQZDCRABCDEFGHUFURVGVKDCURVFVJECURVEVIFCURVEVHUPVEVHSUQUPBUGJ
      ZVEVHBUCVCVAVLVHSVDVLVCVHABUTVBHUHUIUJUKUNULTTUMUO $.
  $}

  ${
    $d G b c f p v $.  $d V b c v $.
    3cyclfrgr.v $e |- V = ( Vtx ` G ) $.
    $( Every vertex in a friendship graph (with more than 1 vertex) is part of
       a 3-cycle.  (Contributed by Alexander van der Vekens, 19-Nov-2017.)
       (Revised by AV, 2-Apr-2021.) $)
    3cyclfrgr $p |- ( ( G e. FriendGraph /\ 1 < ( # ` V ) )
                      -> A. v e. V E. f E. p ( f ( Cycles ` G ) p
                                       /\ ( # ` f ) = 3 /\ ( p ` 0 ) = v ) ) $=
      ( vb vc wcel chash cfv wbr wa cv cpr w3a wrex wral wceq wex cfrgr c1 cedg
      clt ccycls cc0 eqid 3cyclfrgrrn cumgr cusgr frgrusgr usgrumgr syl ad4antr
      simpr anim1i 3anass sylibr adantr umgr3cyclex syl3anc rexlimdvva ralimdva
      c3 ex mpd ) CUAIZUBDJKUDLZMZANZGNZOCUCKZIVKHNZOVLIVMVJOVLIPZHDQGDQZADRBNZ
      ENZCUEKLVPJKVDSUFVQKVJSPETBTZADRVLCDAGHFVLUGZUHVIVOVRADVIVJDIZMZVNVRGHDDW
      AVKDIZVMDIZMZMZVNVRWEVNMCUIIZVTWBWCPZVNVRVGWFVHVTWDVNVGCUJIWFCUKCULUMUNWE
      WGVNWEVTWDMWGWAVTWDVIVTUOUPVTWBWCUQURUSWEVNUOVJVKVMBVLCDEFVSUTVAVEVBVCVF
      $.
  $}

  $( In a (maybe degenerated) 4-cycle, two vertice have two (maybe not
     different) common neighbors.  (Contributed by Alexander van der Vekens,
     19-Nov-2017.)  (Revised by AV, 2-Apr-2021.) $)
  4cycl2v2nb $p |- ( ( ( { A , B } e. E /\ { B , C } e. E )
                       /\ ( { C , D } e. E /\ { D , A } e. E ) )
                       -> ( { { A , B } , { B , C } } C_ E
                         /\ { { A , D } , { D , C } } C_ E ) ) $=
    ( cpr wcel wa wss prssi prcom eleq1i biimpi syl2anr anim12i ) ABFZEGBCFZEGH
    PQFEICDFZEGZDAFZEGZHADFZDCFZFEIZPQEJUAUBEGZUCEGZUDSUAUETUBEDAKLMSUFRUCECDKL
    MUBUCEJNO $.

  ${
    $d A x y $.  $d B x y $.  $d C x y $.  $d D y $.  $d E x y $.  $d V x y $.
    $( In a 4-cycle, two distinct vertices have not a unique common neighbor.
       (Contributed by Alexander van der Vekens, 19-Nov-2017.)  (Revised by AV,
       2-Apr-2021.) $)
    4cycl2vnunb $p |- ( ( ( { A , B } e. E /\ { B , C } e. E )
                          /\ ( { C , D } e. E /\ { D , A } e. E )
                          /\ ( B e. V /\ D e. V /\ B =/= D ) )
                           -> -. E! x e. V { { A , x } , { x , C } } C_ E ) $=
      ( vy cpr wcel wa wss wne wn wrex wceq wi preq2 preq1 preq12d cv wreu wral
      w3a 4cycl2v2nb sseq1d anbi1d neeq1 anbi12d anbi2d neeq2 rspc2ev expcom ex
      3expa com13 3impia impcom rexnal annim bicomi anbi2i bitr3i rexbii sylibr
      df-ne intnand reu4 sylnibr stoic3 ) BCIZFJCDIZFJKDEIFJEBIFJKVKVLIZFLZBEIZ
      EDIZIZFLZKZCGJZEGJZCEMZUDZBAUAZIZWDDIZIZFLZAGUBZNBCDEFUEVSWCKZWHAGOZWHBHU
      AZIZWLDIZIZFLZKZWDWLPZQZHGUCZAGUCZKWIWJXAWKWJWQWDWLMZKZHGOZAGOZXANZWCVSXE
      VTWAWBVSXEQVSWBVTWAKZXEVSWBXGXEQXGVSWBKZXEVTWAXHXEXCXHVNWPKZCWLMZKAHCEGGW
      DCPZWQXIXBXJXKWHVNWPXKWGVMFXKWEVKWFVLWDCBRWDCDSTUFUGWDCWLUHUIWLEPZXIVSXJW
      BXLWPVRVNXLWOVQFXLWMVOWNVPWLEBRWLEDSTUFUJWLECUKUIULUOUMUNUPUQURXFWTNZAGOX
      EWTAGUSXMXDAGXMWSNZHGOXDWSHGUSXNXCHGXNWQWRNZKXCWQWRUTXOXBWQXBXOWDWLVFVAVB
      VCVDVCVDVCVEVGWHWPAHGWRWGWOFWRWEWMWFWNWDWLBRWDWLDSTUFVHVIVJ $.
  $}

  ${
    $d F a b c d $.  $d G a b c d $.  $d G a k l x $.  $d P a b c d $.
    $d b c x $.  $d c l x $.
    $( There is no 4-cycle in a friendship graph, see Proposition 1(a) of
       [MertziosUnger] p. 153 :  "A friendship graph G contains no C4 as a
       subgraph ...".  (Contributed by Alexander van der Vekens, 19-Nov-2017.)
       (Revised by AV, 2-Apr-2021.) $)
    n4cyclfrgr $p |- ( ( G e. FriendGraph /\ F ( Cycles ` G ) P )
                       -> ( # ` F ) =/= 4 ) $=
      ( va vb vc vd vx vk vl wcel cfv wa wne wi cv cpr wrex wss wreu ccycls wbr
      cfrgr chash c4 wceq cupgr cusgr frgrusgr usgrupgr syl cedg upgr4cycl4dv4e
      w3a cvtx eqid csn cdif wral frgrusgrfrcond necom biimpi 3ad2ant2 ad2antrl
      simplrl adantl eldifsn sneq difeq2d preq2 preq1d sseq1d reubidv raleqbidv
      sylanbrc rspcv ad3antrrr preq2d prcom preq1i sseq1i reubii wn simpl simpr
      sylsyld simpllr simplrr simprr2 4cycl2vnunb syl113anc pm2.21d com12 sylbi
      syl6 pm2.43b expdcom rexlimdvva rexlimivv 3exp com34 com23 mpcom pm2.61d1
      imp neqne ) CUCKZBACUALUBZMBUDLZUEUFZXIUENZXGXHXJXKOZCUGKZXGXHXLOXGCUHKZX
      MCUICUJUKXMXHXGXLXMXHXJXGXKXMXHXJXGXKOZXMXHXJUNDPZEPZQCULLZKXQFPZQXRKMZXS
      GPZQXRKYAXPQXRKMZMZXPXQNZXPXSNZXPYANZUNZXQXSNZXQYANZXSYANZUNZMZMZGCUOLZRF
      YNRZEYNRDYNRXOAXRBCYNDEFGYNUPZXRUPZUMYOXODEYNYNXPYNKZXQYNKZMZYMXOFGYNYNXG
      YTXSYNKZYAYNKZMZMZYMXKXGXNHPZIPZQZUUEJPZQZQZXRSZHYNTZJYNUUFUQZURZUSZIYNUS
      ZMUUDYMMZXKOZHIXRCYNJYPYQUTUUPUURXNUUPUUQXKUUQUUPUUEXPQZUUEXSQZQZXRSZHYNT
      ZUURUUQXSYNXPUQZURZKZUUPUUSUUIQZXRSZHYNTZJUVEUSZUVCUUQUUAXSXPNZUVFYTUUAUU
      BYMVEYMUVKUUDYGUVKYCYKYEYDUVKYFYEUVKXPXSVAVBVCVDVFXSYNXPVGVOYRUUPUVJOYSUU
      CYMUUOUVJIXPYNUUFXPUFZUULUVIJUUNUVEUVLUUMUVDYNUUFXPVHVIUVLUUKUVHHYNUVLUUJ
      UVGXRUVLUUGUUSUUIUUFXPUUEVJVKVLVMVNVPVQUVIUVCJXSUVEUUHXSUFZUVHUVBHYNUVMUV
      GUVAXRUVMUUIUUTUUSUUHXSUUEVJVRVLVMVPWFUVCXPUUEQZUUTQZXRSZHYNTZUURUVBUVPHY
      NUVAUVOXRUUSUVNUUTUUEXPVSVTWAWBUUQUVQXKUUQUVQXKUUQXTYBYSUUBYIUVQWCYCXTUUD
      YLXTYBWDVDYCYBUUDYLXTYBWEVDYRYSUUCYMWGYTUUAUUBYMWHYMYIUUDYHYIYJYGYCWIVFHX
      PXQXSYAXRYNWJWKWLWMWNWOWPVFWNWQWRWSUKWTXAXBXCXEXIUEXFXD $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.  $d E x $.  $d G x $.  $d V x $.
    4cyclusnfrgr.v $e |- V = ( Vtx ` G ) $.
    4cyclusnfrgr.e $e |- E = ( Edg ` G ) $.
    $( A graph with a 4-cycle is not a friendhip graph.  (Contributed by
       Alexander van der Vekens, 19-Dec-2017.)  (Revised by AV, 2-Apr-2021.) $)
    4cyclusnfrgr $p |- ( ( G e. USGraph /\ ( A e. V /\ C e. V /\ A =/= C )
                                        /\ ( B e. V /\ D e. V /\ B =/= D ) )
                          -> ( ( ( { A , B } e. E /\ { B , C } e. E )
                              /\ ( { C , D } e. E /\ { D , A } e. E ) )
                               -> G e/ FriendGraph ) ) $=
      ( vx cusgr wcel wne w3a cpr wa cfrgr wnel wn wi cv wss wreu simprl simprr
      simpl3 4cycl2vnunb syl3anc frcond1 pm2.24 syl6com 3ad2ant2 adantr pm2.01d
      com23 mpd df-nel sylibr ex ) FKLZAGLCGLACMNZBGLDGLBDMNZNZABOELBCOELPZCDOE
      LDAOELPZPZFQRZVCVFPZFQLZSZVGVHVIVHAJUAZOVKCOOEUBJGUCZSZVIVJTZVHVDVEVBVMVC
      VDVEUDVCVDVEUEUTVAVBVFUFJABCDEGUGUHVCVMVNTVFVCVIVMVJVAUTVIVMVJTZTVBVIVAVL
      VOACEFGJHIUIVLVJUJUKULUOUMUPUNFQUQURUS $.
  $}

  ${
    frgrnbnb.e $e |- E = ( Edg ` G ) $.
    frgrnbnb.n $e |- D = ( G NeighbVtx X ) $.
    $( If two neighbors ` U ` and ` W ` of a vertex ` X ` have a common
       neighbor ` A ` in a friendship graph, then this common neighbor ` A `
       must be the vertex ` X ` .  (Contributed by Alexander van der Vekens,
       19-Dec-2017.)  (Revised by AV, 2-Apr-2021.)  (Proof shortened by AV,
       13-Feb-2022.) $)
    frgrnbnb $p |- ( ( G e. FriendGraph /\ ( U e. D /\ W e. D ) /\ U =/= W )
                     -> ( ( { U , A } e. E /\ { W , A } e. E ) -> A = X ) ) $=
      ( cfrgr wcel wa wne cpr wi eleq2s adantl adantr biimpi ex wceq cusgr cvtx
      frgrusgr cfv cnbgr eleq2i nbusgreledg biimpd syl5bi anim12d imp nbgrisvtx
      co eqid anim12i usgrpredgv ad2ant2r ax-1 2a1d wnel wn w3a simprrr simprrl
      simpll necom 3jca simprll simprlr prcom eleq1i anim1i ancomd 4cyclusnfrgr
      ad4ant14 anim2i sylc df-nel sylib com23 exp41 com25 mpcom com15 pm2.61ine
      pm2.21d com13 nbgrcl syl11 com34 impd com14 mp2d 3imp ) EJKZCBKZFBKZLZCFM
      ZCANDKZFANZDKZLZAGUAZOZEUBKZWPWSWTXFOZOEUDZXGWSWPXHXGWSWPXHOZXGWSLZCGNZDK
      ZFGNDKZLZCEUCUEZKZFXPKZLZXJXGWSXOXGWQXMWRXNWQCEGUFUNZKZXGXMBXTCIUGXGYAXMD
      EGCHUHUIUJWRFXTKZXGXNBXTFIUGXGYBXNDEGFHUHUIUJUKULWSXSXGWQXQWRXRXQCXTBEGCX
      PXPUOZUMIPXRFXTBEGFXPYCUMIPUPQWTXOXSWPXKXFWTXOXSWPXKXFOOOXKXSWPWTXOLZXFXK
      XDWPYDXSXEXKXDWPYDXSXEOOZOZXQAXPKZLZXKXDLZYFXGXAYHWSXCDECAXPHYCUQURYGYIYF
      OXQYGXKXDYFYGXKWPXDYEGXPKZYGWPXDYEOOZXKYJYGYKYJYGLZXSXDYDWPXEYLXSXDYDWPXE
      OZOOYDXDYLXSLZYMWTXOXDYNYMOOZWTXOYOOZOAGXEYOWTXOXEYMXDYNXEWPUSUTUTAGMZWTY
      PWPXOXDYNYQWTLZXEXGWPXOXDYNYRXEOZOOOXIXGYNXOXDWPYSXGYNXOXDWPYSOXGYNLZXOLZ
      XDLZYRWPXEUUBYRYMUUBYRLZWPXEUUCEJVAZWPVBUUCXGXRXQFCMZVCZYJYGGAMZVCZVCZXNG
      CNZDKZLZXAAFNZDKZLZLZUUDYTYRUUIXOXDYTYRLZXGUUFUUHXGYNYRVFUUQXRXQUUEYTXRYR
      XGYLXQXRVDRYTXQYRXGYLXQXRVERYRUUEYTWTUUEYQWTUUECFVGSQQVHUUQYJYGUUGYTYJYRX
      GYJYGXSVIRYTYGYRXGYJYGXSVJRYRUUGYTYQUUGWTYQUUGAGVGSRQVHVHVPUUBUUPYRUUAUUL
      XDUUOXOUULYTXOUUKXNXMUUKXNXMUUKXLUUJDCGVKVLSVMVNQXCUUNXAXCUUNXBUUMDFAVKVL
      SVQUPRFGCADEXPYCHVOVREJVSVTWGTWAWBWCWDWETWFULWHTWCTWSYJXGWQYJWRYJCXTBECXP
      GYCWIIPRQWJWKWLQWDTWCWMTWEWNTWAWDWO $.
  $}

  ${
    $d G f k n p $.
    $( A friendship graph is connected, see remark 1 in [MertziosUnger] p. 153
       (after Proposition 1):  "An arbitrary friendship graph has to be
       connected, ...  ".  (Contributed by Alexander van der Vekens,
       6-Dec-2017.)  (Revised by AV, 1-Apr-2021.) $)
    frgrconngr $p |- ( G e. FriendGraph -> G e. ConnGraph ) $=
      ( vf vp vk vn cfrgr wcel cconngr cv cpthson cfv co wbr wex cvtx cdif wral
      csn cspthson chash c2 wceq wa eqid 2pthfrgr spthonpthon adantr 2eximi syl
      2ralimi isconngr1 mpbird ) AFGZAHGBIZCIZDIZEIZAJKLMZCNBNZEAOKZUPRPZQDUTQZ
      UMUNUOUPUQASKLMZUNTKUAUBZUCZCNBNZEVAQDUTQVBBAUTCDEUTUDZUEVFUSDEUTVAVEURBC
      VCURVDUPUQUOUNAUFUGUHUJUIBDEAUTFCVGUKUL $.
  $}

  ${
    $d G a b c x $.  $d N a b c x $.  $d V a b c x $.
    vdn1frgrv2.v $e |- V = ( Vtx ` G ) $.
    $( A vertex in a friendship graph with more than one vertex cannot have
       degree 0.  (Contributed by Alexander van der Vekens, 9-Dec-2017.)
       (Revised by AV, 4-Apr-2021.) $)
    vdgn0frgrv2 $p |- ( ( G e. FriendGraph /\ N e. V )
                     -> ( 1 < ( # ` V ) -> ( ( VtxDeg ` G ) ` N ) =/= 0 ) ) $=
      ( cfrgr wcel c1 chash cfv clt wbr cvtxdg cc0 wne cconngr cumgr frgrconngr
      wa wi cusgr frgrusgr usgrumgr syl vdn0conngrumgrv2 ex syl2anc expdimp ) A
      EFZBCFZGCHIJKZBALIIMNZUHAOFZAPFZUIUJRZUKSAQUHATFUMAUAAUBUCULUMRUNUKABCDUD
      UEUFUG $.

    $d G i x $.  $d N i $.
    $( Any vertex in a friendship graph does not have degree 1, see remark 2 in
       [MertziosUnger] p. 153 (after Proposition 1):  "... no node v of it [a
       friendship graph] may have deg(v) = 1.".  (Contributed by Alexander van
       der Vekens, 10-Dec-2017.)  (Revised by AV, 4-Apr-2021.) $)
    vdgn1frgrv2 $p |- ( ( G e. FriendGraph /\ N e. V )
                      -> ( 1 < ( # ` V ) -> ( ( VtxDeg ` G ) ` N ) =/= 1 ) ) $=
      ( vx vb vc va vi wcel wa c1 cfv cv wceq eqid cpr wrex wi ex cfrgr clt wbr
      chash cvtxdg wne ciedg crab cusgr frgrusgr anim1i adantr vtxdusgrval wreu
      cdm syl wn cedg w3a wral 3cyclfrgrrn2 adantlr preq1 eleq1d preq2 3anbi13d
      anbi2d 2rexbidv rspcva adantl simplll ad3antlr usgr2edg1 syl21anc a1d a1i
      3simpb rexlimivv pm2.43a com24 com3r imp31 mpd csn wex cvv wb fvex rabexg
      dmex hash1snb 3syl reusn syl6bbr necon3abid mpbird eqnetrd ) AUAJZBCJZKZL
      CUDMUBUCZBAUEMZMZLUFWTXAKZXCBENAUGMZMJZEXEUOZUHZUDMZLXDAUIJZWSKZXCXIOWTXK
      XAWRXJWSAUJZUKULEXGXBBAXECDXEPZXGPXBPUMUPXDXILUFXFEXGUNZUQZXDFNZGNZUFZHNZ
      XPQZAURMZJZXPXQQYAJZXQXSQZYAJZUSZKZGCRFCRZHCUTZXOWRXAYIWSYAACHFGDYAPZVAVB
      WRWSXAYIXOSZWSXAWRYKWSYIWRXAXOYIWSWRXAXOSZSZWSYIWSYMSZWSYIKXRBXPQZYAJZYCX
      QBQZYAJZUSZKZGCRFCRZYNYHUUAHBCXSBOZYGYTFGCCUUBYFYSXRUUBYBYPYEYRYCUUBXTYOY
      AXSBXPVCVDUUBYDYQYAXSBXQVEVDVFVGVHVIYTYNFGCCYTYNSXPCJXQCJKYTWSYMYTWSKZWRY
      LUUCWRKZXOXAUUDXJXRYPYRKZXOWRXJUUCXLVJXRYSWSWRVKYSUUEXRWSWRYPYCYRVQVLEXPX
      QYAAXEBXMYJVMVNVOTTVPVRUPTVSVTWAWBWCXDXNXILXDXILOZXHINWDOIWEZXNXDXGWFJZXH
      WFJUUFUUGWGUUHXDXEAUGWHWJVPXFEXGWFWIXHWFIWKWLXFEIXGWMWNWOWPWQT $.

    $d G v $.  $d V v $.
    $( Any vertex in a friendship graph does not have degree 1, see remark 2 in
       [MertziosUnger] p. 153 (after Proposition 1):  "... no node v of it [a
       friendship graph] may have deg(v) = 1.".  (Contributed by Alexander van
       der Vekens, 4-Sep-2018.)  (Revised by AV, 4-Apr-2021.) $)
    vdgn1frgrv3 $p |- ( ( G e. FriendGraph /\ 1 < ( # ` V ) )
                         -> A. v e. V ( ( VtxDeg ` G ) ` v ) =/= 1 ) $=
      ( cfrgr wcel c1 chash cfv clt wbr wa cvtxdg vdgn1frgrv2 impancom ralrimiv
      cv wne ) BEFZGCHIJKZLAQZBMIIGRZACSUACFTUBBUACDNOP $.

    $( Any vertex in a friendship graph (with more than one vertex - then,
       actually, the graph must have at least three vertices, because
       otherwise, it would not be a friendship graph) has at least degree 2,
       see remark 3 in [MertziosUnger] p. 153 (after Proposition 1):  "It
       follows that deg(v) >= 2 for every node v of a friendship graph".
       (Contributed by Alexander van der Vekens, 21-Dec-2017.)  (Revised by AV,
       5-Apr-2021.) $)
    vdgfrgrgt2 $p |- ( ( G e. FriendGraph /\ N e. V )
                       -> ( 1 < ( # ` V ) -> 2 <_ ( ( VtxDeg ` G ) ` N ) ) ) $=
      ( cfrgr wa c1 chash cfv clt wbr c2 cvtxdg cle cc0 vdgn0frgrv2 vdgn1frgrv2
      wcel wne imp wb cxnn0 vtxdgelxnn0 xnn0n0n1ge2b syl ad2antlr mpbi2and ex )
      AERZBCRZFZGCHIJKZLBAMIIZNKZUKULFUMOSZUMGSZUNUKULUOABCDPTUKULUPABCDQTUJUOU
      PFUNUAZUIULUJUMUBRUQACBDUCUMUDUEUFUGUH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Huneke's Proof of the Friendship Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, the friendship theorem ~ friendship is proven by formalizing
  Huneke's proof, see [Huneke] pp. 1-2.  The three claims (see ~ frgrncvvdeq ,
  ~ frgrregorufr and ~ frrusgrord0 ) and additional statements (numbered in the
  order of their occurence in the paper) in Huneke's proof are cited in the
  corresponding theorems.

$)

  ${
    frgrncvvdeq.v1 $e |- V = ( Vtx ` G ) $.
    frgrncvvdeq.e $e |- E = ( Edg ` G ) $.
    frgrncvvdeq.nx $e |- D = ( G NeighbVtx X ) $.
    frgrncvvdeq.ny $e |- N = ( G NeighbVtx Y ) $.
    frgrncvvdeq.x $e |- ( ph -> X e. V ) $.
    frgrncvvdeq.y $e |- ( ph -> Y e. V ) $.
    frgrncvvdeq.ne $e |- ( ph -> X =/= Y ) $.
    frgrncvvdeq.xy $e |- ( ph -> Y e/ D ) $.
    frgrncvvdeq.f $e |- ( ph -> G e. FriendGraph ) $.
    $( The function A maps each neighbor x of X to a neighbor y of Y. In a
       friendship graph, there is a unique y, the common neighbor of x and Y.
       This corresponds to the map "alpha" of definition 2 in [Huneke] p. 1:
       "Define a map a : N(x) -> N(y) by sending a vertex z [in] N(x) to the
       common neighbor of z and y.". $)
    frgrncvvdeq.a $e |- A = ( x e. D |-> ( iota_ y e. N { x , y } e. E ) ) $.
    $( Lemma 1 for ~ frgrncvvdeq .  (Contributed by Alexander van der Vekens,
       23-Dec-2017.)  (Revised by AV, 8-May-2021.)  (Proof shortened by AV,
       12-Feb-2022.) $)
    frgrncvvdeqlem1 $p |- ( ph -> X e/ N ) $=
      ( cnbgr co wcel wn wnel df-nel eleq2i xchbinx nbgrsym sylnibr wceq neleq2
      sylib wb ax-mp bitri sylibr ) AJGKUBUCZUDZUEZJHUFZAKGJUBUCZUDZUTAKEUFZVDU
      ESVEKEUDVDKEUGEVCKNUHUIUNGKJUJUKVBJUSUFZVAHUSULVBVFUOOHUSJUMUPJUSUGUQUR
      $.

    $d D y $.  $d G y $.  $d V y $.  $d Y y $.  $d ph y $.  $d x y $.
    $( Lemma 2 for ~ frgrncvvdeq .  In a friendship graph, for each neighbor of
       a vertex there is exactly one neighbor of another vertex so that there
       is an edge between these two neighbors.  (Contributed by Alexander van
       der Vekens, 22-Dec-2017.)  (Revised by AV, 10-May-2021.)  (Proof
       shortened by AV, 12-Feb-2022.) $)
    frgrncvvdeqlem2 $p |- ( ( ph /\ x e. D ) -> E! y e. N { x , y } e. E ) $=
      ( cv wcel wa cpr wss wreu cfrgr wne w3a adantr cnbgr eleq2i nbgrisvtx a1i
      co wi syl5bi imp wnel elnelne2 expcom syl 3jca frcond1 cusgr frgrusgr weu
      sylc cumgr usgrumgr umgrpredgv simprd ex adantld pm4.71rd prex prss ancom
      bitr3i anbi2i syl6rbbr nbusgreledg anbi1d bitrd eubidv biimpd df-reu 3syl
      syl5rbb 3imtr4g mpd ) ABUBZEUCZUDZWMCUBZUEZWPKUEZUEFUFZCIUGZWQFUCZCHUGZWO
      GUHUCZWMIUCZKIUCZWMKUIZUJWTAXCWNTUKWOXDXEXFAWNXDWNWMGJULUPZUCZAXDEXGWMNUM
      XHXDUQAGJWMILUNUOURUSAXEWNQUKAWNXFAKEUTZWNXFUQSWNXIXFWMKEVAVBVCUSVDWMKFGI
      CLMVEVIAWTXBUQZWNAXCGVFUCZXJTGVGXKWPIUCZWSUDZCVHZWPHUCZXAUDZCVHZWTXBXKXNX
      QXKXMXPCXKXMWRFUCZXAUDZXPXKXSXLXSUDXMXKXSXLXKXAXLXRXKGVJUCZXAXLUQGVKXTXAX
      LXTXAUDXDXLFGWMWPILMVLVMVNVCVOVPWSXSXLWSXAXRUDXSWQWRFWMWPVQWPKVQVRXAXRVSV
      TWAWBXKXRXOXAXOWPGKULUPZUCXKXRHYAWPOUMFGKWPMWCWJWDWEWFWGWSCIWHXACHWHWKWIU
      KWL $.

    $d D n $.  $d E a b n $.  $d E n y $.  $d G a b n $.  $d N n y $.
    $d V a b n $.  $d Y b n $.  $d ph n $.  $d a b n x $.
    $( Lemma 3 for ~ frgrncvvdeq .  The unique neighbor of a vertex (expressed
       by a restricted iota) is the intersection of the corresponding
       neighborhoods.  (Contributed by Alexander van der Vekens, 18-Dec-2017.)
       (Revised by AV, 10-May-2021.)  (Proof shortened by AV, 12-Feb-2022.) $)
    frgrncvvdeqlem3 $p |- ( ( ph /\ x e. D )
                            -> { ( iota_ y e. N { x , y } e. E ) }
                               = ( ( G NeighbVtx x ) i^i N ) ) $=
      ( vn cv wcel wa cnbgr co cin cpr crio csn ineq2i wceq wrex wne w3a adantr
      cfrgr eleq2i wi nbgrisvtx a1i syl5bi imp wnel elnelne2 sylan2 ancoms 3jca
      frcond3 sylc cvv vex elinsn mpan cusgr frgrusgr nbusgreledg eleq1i syl6bb
      prcom biimpd 3syl com12 eqcomi biimpi adantl frgrncvvdeqlem2 preq2 eleq1d
      wb riota2 syl2an mpbid sylan eqcomd sneqd eqeq1 mpbird ex rexlimivw mpcom
      wreu syl5req ) ABUCZEUDZUEZGXEUFUGZHUHXHGKUFUGZUHZXECUCZUIZFUDZCHUJZUKZHX
      IXHOULXJUBUCZUKZUMZUBIUNZXGXJXOUMZXGGURUDZXEIUDZKIUDZXEKUOZUPXSAYAXFTUQXG
      YBYCYDAXFYBXFXEGJUFUGZUDZAYBEYEXENUSYFYBUTAGJXEILVAVBVCVDAYCXFQUQXFAYDAXF
      KEVEYDSXEKEVFVGVHVIUBXEKFGILMVJVKXRXGXTUTUBIXRXGXTXRXGUEZXTXQXOUMZYGXPXNY
      GXNXPXRXPXHUDZXPXIUDZUEZXGXNXPUMZXPVLUDXRYKUBVMXPXHXIVLVNVOYKXGUEXEXPUIZF
      UDZYLYKXGYNYIXGYNUTYJXGYIYNAYIYNUTZXFAYAGVPUDZYOTGVQYPYIYNYPYIXPXEUIZFUDY
      NFGXEXPMVRYQYMFXPXEWAVSVTWBWCUQWDUQVDYKXPHUDZXMCHXCYNYLWKXGYJYRYIYJYRXIHX
      PHXIOWEUSWFWGABCDEFGHIJKLMNOPQRSTUAWHXMYNCHXPXKXPUMXLYMFXKXPXEWIWJWLWMWNW
      OWPWQXRXTYHWKXGXJXQXOWRUQWSWTXAXBXD $.

    $d D x $.  $d N x y $.  $d ph x $.
    $( Lemma 4 for ~ frgrncvvdeq .  The mapping of neighbors to neighbors is a
       function.  (Contributed by Alexander van der Vekens, 22-Dec-2017.)
       (Revised by AV, 10-May-2021.) $)
    frgrncvvdeqlem4 $p |- ( ph -> A : D --> N ) $=
      ( cv cpr wcel crio wa wreu frgrncvvdeqlem2 riotacl syl fmptd ) ABEBUBZCUB
      UCFUDZCHUEZHDAULEUDUFUMCHUGUNHUDABCDEFGHIJKLMNOPQRSTUAUHUMCHUIUJUAUK $.

    $( Lemma 5 for ~ frgrncvvdeq .  The mapping of neighbors to neighbors
       applied on a vertex is the intersection of the corresponding
       neighborhoods.  (Contributed by Alexander van der Vekens, 23-Dec-2017.)
       (Revised by AV, 10-May-2021.) $)
    frgrncvvdeqlem5 $p |- ( ( ph /\ x e. D )
                            -> { ( A ` x ) } = ( ( G NeighbVtx x ) i^i N ) ) $=
      ( cv wcel wa cfv csn cpr crio cnbgr co cin cvv wceq simpr riotaex sylancl
      fvmpt2 sneqd frgrncvvdeqlem3 eqtrd ) ABUBZEUCZUDZVADUEZUFVACUBUGFUCZCHUHZ
      UFGVAUIUJHUKVCVDVFVCVBVFULUCVDVFUMAVBUNVECHUOBEVFULDUAUQUPURABCDEFGHIJKLM
      NOPQRSTUAUSUT $.

    $( Lemma 6 for ~ frgrncvvdeq .  (Contributed by Alexander van der Vekens,
       23-Dec-2017.)  (Revised by AV, 10-May-2021.)  (Proof shortened by AV,
       30-Dec-2021.) $)
    frgrncvvdeqlem6 $p |- ( ( ph /\ x e. D ) -> { x , ( A ` x ) } e. E ) $=
      ( cv cfv csn cnbgr co cin wceq wcel wa cpr frgrncvvdeqlem5 wi fvex elinsn
      cvv mpan cfrgr cusgr frgrusgr nbusgreledg prcom eleq1i syl6bb biimpd 3syl
      adantr com12 syl eqcoms mpcom ) BUBZDUCZUDZGVLUEUFZHUGZUHAVLEUIZUJZVLVMUK
      ZFUIZABCDEFGHIJKLMNOPQRSTUAULVRVTUMZVPVNVPVNUHZVMVOUIZVMHUIZUJZWAVMUPUIWB
      WEVLDUNVMVOHUPUOUQWCWAWDVRWCVTAWCVTUMZVQAGURUIGUSUIZWFTGUTWGWCVTWGWCVMVLU
      KZFUIVTFGVLVMMVAWHVSFVMVLVBVCVDVEVFVGVHVGVIVJVK $.

    $( Lemma 7 for ~ frgrncvvdeq .  This corresponds to statement 1 in [Huneke]
       p. 1:  "This common neighbor cannot be x, as x and y are not adjacent.".
       This is only an observation, which is not required to proof the
       friendship theorem.  (Contributed by Alexander van der Vekens,
       23-Dec-2017.)  (Revised by AV, 10-May-2021.) $)
    frgrncvvdeqlem7 $p |- ( ph -> A. x e. D ( A ` x ) =/= X ) $=
      ( cv cfv wne csn cnbgr co wceq wcel wa frgrncvvdeqlem5 wi fvex snid eleq2
      cin biimpa elin wnel frgrncvvdeqlem1 wn df-nel nelelne sylbi adantr com12
      syl simplbiim mpan2 mpcom ralrimiva ) ABUBZDUCZJUDZBEVMUEZGVLUFUGZHUPZUHZ
      AVLEUIZUJZVNABCDEFGHIJKLMNOPQRSTUAUKVRVMVOUIZVTVNULZVMVLDUMUNVRWAUJVMVQUI
      ZWBVRWAWCVOVQVMUOUQWCVMVPUIVMHUIZWBVMVPHURVTWDVNAWDVNULZVSAJHUSZWEABCDEFG
      HIJKLMNOPQRSTUAUTWFJHUIVAWEJHVBJHVMVCVDVGVEVFVHVGVIVJVK $.

    $d A u w $.  $d D u w y $.  $d E u w x $.  $d N u w x $.  $d ph u w $.
    $( Lemma 8 for ~ frgrncvvdeq .  This corresponds to statement 2 in [Huneke]
       p. 1:  "The map is one-to-one since z in N(x) is uniquely determined as
       the common neighbor of x and a(x)".  (Contributed by Alexander van der
       Vekens, 23-Dec-2017.)  (Revised by AV, 10-May-2021.)  (Revised by AV,
       30-Dec-2021.) $)
    frgrncvvdeqlem8 $p |- ( ph -> A : D -1-1-> N ) $=
      ( vu vw wf wf1 frgrncvvdeqlem4 wa cv wceq wi wral simpr wcel wn ad2ant2lr
      cfv ffvelrn adantr wnel frgrncvvdeqlem1 crio cmpt preq1 riotabidv cbvmptv
      cpr eleq1d eqtri frgrncvvdeqlem6 anim12dan preq2 anbi2d eqcoms biimpa wne
      df-ne cfrgr frgrnbnb syl3an1 3expa df-nel eleq1 pm2.24d com13 sylbi com12
      wb expcom syl6 com23 sylbir syl5com com24 mpcom ex com3r com15 expd imp42
      mpid pm2.18d ralrimivva dff13 sylanbrc mpdan ) AEHDUDZEHDUEZABCDEFGHIJKLM
      NOPQRSTUAUFAXFUGZXFUBUHZDUPZUCUHZDUPZUIZXIXKUIZUJZUCEUKUBEUKXGAXFULXHXOUB
      UCEEXHXIEUMZXKEUMZUGZUGZXMXNXSXMUGZXNXTXNUNZXJHUMZXNXSYBXMXFXPYBAXQEHXIDU
      QUOURXHXPXQXMYAYBXNUJZUJZAXPXQXMYDUJZUJUJXFAXPXQYEJHUSZAXRYEUJABCDEFGHIJK
      LMNOPQRSTUAUTYAAXRXMYFYCAXRYAXMYFYCUJZUJZAXRYAYHUJZXIXJVFFUMZXKXLVFZFUMZU
      GZAXRUGZYIAXPYJXQYLAUBCDEFGHIJKLMNOPQRSTDBEBUHZCUHZVFZFUMZCHVAZVBZUBEXIYP
      VFZFUMZCHVAZVBUABUBEYSUUCYOXIUIZYRUUBCHUUDYQUUAFYOXIYPVCVGVDVEVHVIAUCCDEF
      GHIJKLMNOPQRSTDYTUCEXKYPVFZFUMZCHVAZVBUABUCEYSUUGYOXKUIZYRUUFCHUUHYQUUEFY
      OXKYPVCVGVDVEVHVIVJYMXMYAYNYGXMYMYAYNYGUJZUJXMYMUGYJXKXJVFZFUMZUGZYAUUIXM
      YMUULYMUULWGXLXJXLXJUIZYLUUKYJUUMYKUUJFXLXJXKVKVGVLVMVNYAXIXKVOZUULUUIUJX
      IXKVPUUNYNUULYGYNUUNUULYGUJYNUUNUGUULXJJUIZYGAXRUUNUULUUOUJZAGVQUMXRUUNUU
      PTXJEXIFGXKJMNVRVSVTYFUUOYCYFJHUMZUNZUUOYCUJJHWAYBUUOUURXNUUOYBUURXNUJUUO
      YBUGUUQXNUUOYBUUQXJJHWBVNWCWHWDWEWFWIWHWJWKWLWHWMWNWOWPWQWNWRURWSWTXAWOXB
      UBUCEHDXCXDXE $.

    $d A m n $.  $d D m x $.  $d E m x $.  $d G m y $.  $d N m $.  $d V m $.
    $d X m n $.  $d ph m $.
    $( Lemma 9 for ~ frgrncvvdeq .  This corresponds to statement 3 in [Huneke]
       p. 1:  "By symmetry the map is onto".  (Contributed by Alexander van der
       Vekens, 24-Dec-2017.)  (Revised by AV, 10-May-2021.)  (Proof shortened
       by AV, 12-Feb-2022.) $)
    frgrncvvdeqlem9 $p |- ( ph -> A : D -onto-> N ) $=
      ( vn vm wf cv cfv wceq wrex wral wfo frgrncvvdeqlem4 wa wex cpr cfrgr wne
      wcel w3a wreu adantr cnbgr co eleq2i nbgrisvtx a1i syl5bi frgrncvvdeqlem1
      wi imp wnel df-nel nelelne sylbi syl 3jca jca frcond2 reurex df-rex sylib
      wn 3syl cusgr frgrusgr nbusgreledg bicomd biimpa sylibr ad2ant2rl biimpar
      wb a1d expimpd cin elin csn simpl crio cmpt preq1 riotabidv cbvmptv eqtri
      eleq1d frgrncvvdeqlem5 eleq2 eqcoms elsni syl6bi expcom sylbir ex adantld
      com3r com14 mpd eximdv ralrimiva dffo3 sylanbrc ) AEHDUDUBUEZUCUEZDUFZUGZ
      UCEUHZUBHUIEHDUJABCDEFGHIJKLMNOPQRSTUAUKAYEUBHAYAHUQZULZYBEUQZYDULZUCUMZY
      EYGYBIUQZYAYBUNFUQZYBJUNFUQZULZULZUCUMZYJYGGUOUQZYAIUQZJIUQZYAJUPZURZULYN
      UCIUSZYPYGYQUUAAYQYFTUTYGYRYSYTAYFYRYFYAGKVAVBZUQZAYRHUUCYAOVCUUDYRVHAGKY
      AILVDVEVFVIAYSYFPUTAYFYTAJHVJZYFYTVHZABCDEFGHIJKLMNOPQRSTUAVGUUEJHUQWAUUF
      JHVKJHYAVLVMVNVIVOVPYQUUAUUBYAJFGIUCLMVQVIUUBYNUCIUHYPYNUCIVRYNUCIVSVTWBY
      GYOYIUCYGYNYIYKYGYNYIYGYNULZYHYDAYMYHYFYLAYMULZYBGJVAVBZUQZYHAYMUUJAYQGWC
      UQZYMUUJWKTGWDZUUKUUJYMFGJYBMWEWFWBWGEUUIYBNVCWHZWIUUGYAGYBVAVBZUQZYDYGYN
      UUOAYNUUOVHZYFAYQUUKUUPTUULUUKYLYMUUOUUKYLULUUOYMUUKUUOYLFGYBYAMWEWJWLWMW
      BUTVIYGYNUUOYDVHZYGYMUUQYLAYFYMUUQVHUUOYFYMAYDUUOYFYMAYDVHVHZUUOYFULYAUUN
      HWNZUQZUURYAUUNHWOYMAUUTYDAYMUUTYDVHZUUHAYHULYCWPZUUSUGZUVAUUHAYHAYMWQUUM
      VPAUCCDEFGHIJKLMNOPQRSTDBEBUEZCUEZUNZFUQZCHWRZWSUCEYBUVEUNZFUQZCHWRZWSUAB
      UCEUVHUVKUVDYBUGZUVGUVJCHUVLUVFUVIFUVDYBUVEWTXDXAXBXCXEUVCUUTYAUVBUQZYDUU
      TUVMWKUUSUVBUUSUVBYAXFXGYAYCXHXIWBXJXNXKXLXOVIXMVIXPVPXLXMXQXPYDUCEVSWHXR
      UCUBEHDXSXT $.

    $( Lemma 10 for ~ frgrncvvdeq .  (Contributed by Alexander van der Vekens,
       24-Dec-2017.)  (Revised by AV, 10-May-2021.)  (Proof shortened by AV,
       30-Dec-2021.) $)
    frgrncvvdeqlem10 $p |- ( ph -> A : D -1-1-onto-> N ) $=
      ( wf1 wfo wf1o frgrncvvdeqlem8 frgrncvvdeqlem9 df-f1o sylanbrc ) AEHDUBEH
      DUCEHDUDABCDEFGHIJKLMNOPQRSTUAUEABCDEFGHIJKLMNOPQRSTUAUFEHDUGUH $.
  $}

  ${
    $d G a b x y $.  $d V a b x y $.
    frgrncvvdeq.v $e |- V = ( Vtx ` G ) $.
    frgrncvvdeq.d $e |- D = ( VtxDeg ` G ) $.
    $( In a friendship graph, two vertices which are not connected by an edge
       have the same degree.  This corresponds to claim 1 in [Huneke] p. 1:
       "If x,y are elements of (the friendship graph) G and are not adjacent,
       then they have the same degree (i.e., the same number of adjacent
       vertices).".  (Contributed by Alexander van der Vekens, 19-Dec-2017.)
       (Revised by AV, 10-May-2021.) $)
    frgrncvvdeq $p |- ( G e. FriendGraph -> A. x e. V A. y e. ( V \ { x } )
                       ( y e/ ( G NeighbVtx x ) -> ( D ` x ) = ( D ` y ) ) ) $=
      ( va vb wcel cv cnbgr co cfv wceq wa chash eqid ad2antlr adantr cfrgr csn
      wnel wi cdif cvtxdg cvv cpr cedg crio ovexd simpl eldifi adantl wne eldif
      cmpt velsn biimpri equcoms necon3bi simplbiim frgrncvvdeqlem10 hasheqf1od
      wn simpr cusgr anim12i hashnbusgrvd syl 3eqtr3d fveq1i 3eqtr4g ralrimivva
      frgrusgr ex ) DUAJZBKZDAKZLMZUCZVSCNZVRCNZOZUDABEEVSUBZUEZVQVSEJZVRWFJZPZ
      PZWAWDWJWAPZVSDUFNZNZVRWLNZWBWCWKVTQNZDVRLMZQNZWMWNWKVTWPUGHVTHKIKUHDUINZ
      JIWPUJUQZWKDVSLUKWKHIWSVTWRDWPEVSVRFWRRVTRWPRWIWGVQWAWGWHULZSWIVREJZVQWAW
      HXAWGVREWEUMUNZSWIVSVRUOZVQWAWHXCWGWHXAVRWEJZVEXCVREWEUPXDVSVRXDBAXDVRVSO
      BVSURUSUTVAVBUNSWJWAVFWJVQWAVQWIULTWSRVCVDWKDVGJZWGPZWOWMOWJXFWAVQXEWIWGD
      VOZWTVHTVSDEFVIVJWKXEXAPZWQWNOWJXHWAVQXEWIXAXGXBVHTVRDEFVIVJVKVSCWLGVLVRC
      WLGVLVMVPVN $.

    $d D x y $.  $d X x y $.  $d Y x y $.
    frgrwopreglem4a.e $e |- E = ( Edg ` G ) $.
    $( In a friendship graph any two vertices with different degrees are
       connected.  Alternate version of ~ frgrwopreglem4 without a fixed degree
       and without using the sets ` A ` and ` B ` .  (Contributed by Alexander
       van der Vekens, 30-Dec-2017.)  (Revised by AV, 4-Feb-2022.) $)
    frgrwopreglem4a $p |- ( ( G e. FriendGraph /\ ( X e. V /\ Y e. V )
                                               /\ ( D ` X ) =/= ( D ` Y ) )
                            -> { X , Y } e. E ) $=
      ( vy vx wcel wa cfv wne wceq wi fveq2 cnbgr co w3a cpr a1i necon3d imp cv
      cfrgr 3adant1 wnel csn cdif wral frgrncvvdeq wb neleq2 syl eqeq1d imbi12d
      oveq2 neleq1 eqeq2d simpll sneq difeq2d adantl simpr necom biimpi anim12i
      eldifsn sylibr rspc2vd wn nnel nbgrsym frgrusgr nbusgreledg biimpd syl5bi
      cusgr a1d expcom sylbi eqneqall 2a1d ja com12 syld com3l mpcom expd com34
      3imp mpd ) CUGLZEDLZFDLZMZEANZFANZOZUAEFOZEFUBBLZWRXAXBWOWRXAXBWREFWSWTEF
      PWSWTPZQWREFARUCUDUEUHWOWRXAXBXCQWOWRXBXAXCWOWRXBXAXCQZJUFZCKUFZSTZUIZXGA
      NZXFANZPZQZJDXGUJZUKZULKDULZWOWRXBMZXEQKJACDGHUMXQXPWOXEXQXPFCESTZUIZXDQZ
      WOXEQZXQXTXFXRUIZWSXKPZQXMKJEFDXODEUJZUKZXGEPZXIYBXLYCYFXHXRPXIYBUNXGECSU
      SXHXRXFUOUPYFXJWSXKXGEARUQURXFFPZYBXSYCXDXFFXRUTYGXKWTWSXFFARVAURWPWQXBVB
      YFXOYEPXQYFXNYDDXGEVCVDVEXQWQFEOZMFYELWRWQXBYHWPWQVFXBYHEFVGVHVIFDEVJVKVL
      XTXQYAXSXDXQYAQZXSVMFXRLZYIFXRVNYJYAXQWOYJXEWOYJMXCXAWOYJXCYJECFSTLZWOXCC
      EFVOWOYKXCWOCVTLYKXCUNCVPBCFEIVQUPVRVSUEWAWBWAWCXDXEXQWOXCWSWTWDWEWFWGWHW
      IWJWKWLWMWN $.

    $( If a friendship graph has two vertices with the same degree and two
       other vertices with different degrees, then there is a 4-cycle in the
       graph.  Alternate version of ~ frgrwopreglem5 without a fixed degree and
       without using the sets ` A ` and ` B ` .  (Contributed by Alexander van
       der Vekens, 31-Dec-2017.)  (Revised by AV, 4-Feb-2022.) $)
    frgrwopreglem5a $p |- ( ( G e. FriendGraph
                           /\ ( ( A e. V /\ X e. V ) /\ ( B e. V /\ Y e. V ) )
                           /\ ( ( D ` A ) = ( D ` X )
                             /\ ( D ` A ) =/= ( D ` B )
                             /\ ( D ` X ) =/= ( D ` Y ) ) )
                            -> ( ( { A , B } e. E /\ { B , X } e. E )
                              /\ ( { X , Y } e. E /\ { Y , A } e. E ) ) ) $=
      ( wcel wa cfv wne w3a cpr simpl frgrwopreglem4a syl3an cfrgr wceq anim12i
      id simp2 simpr anim12ci pm13.18 3adant3 necomd simp3 pm13.181 3adant2 jca
      jca31 ) EUALZAFLZGFLZMZBFLZHFLZMZMZACNZGCNZUBZVDBCNZOZVEHCNZOZPZPZABQDLZB
      GQDLZGHQDLZHAQDLZMUPUPVCUQUTMVKVHVMUPUDZUSUQVBUTUQURRZUTVARZUCVFVHVJUECDE
      FABIJKSTUPUPVCUTURMVKVGVEOVNVQUSURVBUTUQURUFZVSUGVKVEVGVFVHVEVGOVJVDVEVGU
      HUIUJCDEFBGIJKSTVLVOVPUPUPVCURVAMVKVJVOVQUSURVBVAVTUTVAUFZUCVFVHVJUKCDEFG
      HIJKSTUPUPVCVAUQMVKVIVDOVPVQUSUQVBVAVRWAUGVKVDVIVFVJVDVIOVHVDVEVIULUMUJCD
      EFHAIJKSTUNUO $.
  $}

  ${
    $d V x $.
    frgrwopreg.v $e |- V = ( Vtx ` G ) $.
    frgrwopreg.d $e |- D = ( VtxDeg ` G ) $.
    frgrwopreg.a $e |- A = { x e. V | ( D ` x ) = K } $.
    frgrwopreg.b $e |- B = ( V \ A ) $.
    $( Lemma 1 for ~ frgrwopreg : the classes ` A ` and ` B ` are sets.  The
       definition of ` A ` and ` B ` corresponds to definition 3 in [Huneke]
       p. 2:  "Let A be the set of all vertices of degree k, let B be the set
       of all vertices of degree different from k, ..."  (Contributed by
       Alexander van der Vekens, 31-Dec-2017.)  (Revised by AV,
       10-May-2021.) $)
    frgrwopreglem1 $p |- ( A e. _V /\ B e. _V ) $=
      ( cvv wcel wa cvtx cfv fvex eqeltri cv syl5eqel wceq crab rabexg cdif jca
      difexg ax-mp ) GLMZBLMZCLMZNGEOPLHEOQRUHUIUJUHBASDPFUAZAGUBLJUKAGLUCTUHCG
      BUDLKGBLUFTUEUG $.

    $d A x $.  $d G x $.  $d K x $.
    $( Lemma 2 for ~ frgrwopreg .  If the set ` A ` of vertices of degree ` K `
       is not empty in a friendship graph with at least two vertices, then
       ` K ` must be greater than 1 .  This is only an observation, which is
       not required for the proof the friendship theorem.  (Contributed by
       Alexander van der Vekens, 30-Dec-2017.)  (Revised by AV, 2-Jan-2022.) $)
    frgrwopreglem2 $p |- ( ( G e. FriendGraph /\ 1 < ( # ` V ) /\ A =/= (/) )
                            -> 2 <_ K ) $=
      ( cfv wbr wcel c2 cle wi wceq wa sylbi c0 wne chash clt cfrgr wex rabeq2i
      c1 cv n0 cvtxdg vdgfrgrgt2 imp wb breq2 fveq1i breq2i syl6bb eqcoms exp31
      syl5ibrcom com14 impcom exlimiv 3imp31 ) BUAUBZUHGUCLUDMZEUENZOFPMZVFAUIZ
      BNZAUFVGVHVIQQZABUJVKVLAVKVJGNZVJDLZFRZSVLVOABGJUGVOVMVLVHVMVGVOVIVHVMVGV
      OVIQVHVMSZVGSVIVOOVJEUKLZLZPMZVPVGVSEVJGHULUMVIVSUNFVNFVNRVIOVNPMVSFVNOPU
      OVNVROPVJDVQIUPUQURUSVAUTVBVCTVDTVE $.

    $d D x $.  $d X x $.  $d Y x $.
    $( Lemma 3 for ~ frgrwopreg .  The vertices in the sets ` A ` and ` B `
       have different degrees.  (Contributed by Alexander van der Vekens,
       30-Dec-2017.)  (Revised by AV, 10-May-2021.)  (Proof shortened by AV,
       2-Jan-2022.) $)
    frgrwopreglem3 $p |- ( ( X e. A /\ Y e. B ) -> ( D ` X ) =/= ( D ` Y ) ) $=
      ( wcel cfv wceq wn wi fveq2 eqeq1d wne cv notbid cdif crab difeq2i notrab
      3eqtri elrab2 eqeq2 neqne necomd syl6bir simplbiim com12 impcom ) ICNZHBN
      ZHDOZIDOZUAZUQIGNUTFPZQZURVARAUBZDOZFPZQZVCAIGCVDIPZVFVBVHVEUTFVDIDSTUCCG
      BUDGVFAGUEZUDVGAGUEMBVIGLUFVFAGUGUHUIURVCVAURHGNUSFPZVCVARVFVJAHGBVDHPVEU
      SFVDHDSTLUIVJVCUTUSPZQZVAVJVKVBUSFUTUJUCVLUTUSUTUSUKULUMUNUOUNUP $.

    ${
      $d A b $.  $d B x $.  $d D y $.  $d G a b x y $.  $d V y $.
      frgrwopreg.e $e |- E = ( Edg ` G ) $.
      $( Lemma 4 for ~ frgrwopreg .  In a friendship graph each vertex with
         degree ` K ` is connected with any vertex with degree other than
         ` K ` .  This corresponds to statement 4 in [Huneke] p. 2:  "By the
         first claim, every vertex in A is adjacent to every vertex in B.".
         (Contributed by Alexander van der Vekens, 30-Dec-2017.)  (Revised by
         AV, 10-May-2021.)  (Proof shortened by AV, 4-Feb-2022.) $)
      frgrwopreglem4 $p |- ( G e. FriendGraph
                             -> A. a e. A A. b e. B { a , b } e. E ) $=
        ( wcel cv wa cfv eleq2s cfrgr cpr simpl wceq crab elrabi eldifi anim12i
        wne cdif adantl frgrwopreglem3 frgrwopreglem4a syl3anc ralrimivva ) FUA
        PZIQZJQZUBEPZIJBCUPUQBPZURCPZRZRUPUQHPZURHPZRZUQDSURDSUIZUSUPVBUCVBVEUP
        UTVCVAVDVCUQAQDSGUDZAHUEBVGAUQHUFMTVDURHBUJCURHBUGNTUHUKVBVFUPABCDFGHUQ
        URKLMNULUKDEFHUQURKLOUMUNUO $.

      $d A v w $.  $d B v w $.  $d E v $.  $d G v w x $.  $d V w $.
      $d X v w $.
      $( According to statement 5 in [Huneke] p. 2:  "If A ... is a singleton,
         then that singleton is a universal friend".  This version of
         ~ frgrwopreg1 is stricter (claiming that the singleton itself is a
         universal friend instead of claiming the existence of a universal
         friend only) and therefore closer to Huneke's statement.  This strict
         variant, however, is not required for the proof of the friendship
         theorem.  (Contributed by Alexander van der Vekens, 1-Jan-2018.)
         (Revised by AV, 4-Feb-2022.) $)
      frgrwopregasn $p |- ( ( G e. FriendGraph /\ X e. V /\ A = { X } )
                            -> A. w e. ( V \ { X } ) { X , w } e. E ) $=
        ( vv wcel wceq cv wral cfrgr csn cdif wa frgrwopreglem4 wi snidg adantr
        cpr wb eleq2 adantl mpbird preq1 eleq1d ralbidv rspcv syl difeq2 syl5eq
        raleqdv sylibd syl5com 3impib ) GUAQZJIQZCJUBZRZJBSZUIZFQZBIVGUCZTZVEPS
        ZVIUIZFQZBDTZPCTZVFVHUDZVMACDEFGHIPBKLMNOUEVSVRVKBDTZVMVSJCQZVRVTUFVSWA
        JVGQZVFWBVHJIUGUHVHWAWBUJVFCVGJUKULUMVQVTPJCVNJRZVPVKBDWCVOVJFVNJVIUNUO
        UPUQURVSVKBDVLVHDVLRVFVHDICUCVLNCVGIUSUTULVAVBVCVD $.

      $( According to statement 5 in [Huneke] p. 2:  "If ...  B is a singleton,
         then that singleton is a universal friend".  This version of
         ~ frgrwopreg2 is stricter (claiming that the singleton itself is a
         universal friend instead of claiming the existence of a universal
         friend only) and therefore closer to Huneke's statement.  This strict
         variant, however, is not required for the proof of the friendship
         theorem.  (Contributed by AV, 4-Feb-2022.) $)
      frgrwopregbsn $p |- ( ( G e. FriendGraph /\ X e. V /\ B = { X } )
                            -> A. w e. ( V \ { X } ) { X , w } e. E ) $=
        ( vv wcel wceq cv wral cfrgr csn cdif wa frgrwopreglem4 ralcom wi snidg
        cpr adantr wb eleq2 adantl mpbird preq2 prcom syl6eq eleq1d ralbidv syl
        rspcv wss cfv ssrab3 ssdifim mp2an difeq2 syl5eq raleqdv sylibd syl5com
        syl5bi 3impib ) GUAQZJIQZDJUBZRZJBSZUIZFQZBIVPUCZTZVNVRPSZUIZFQZPDTBCTZ
        VOVQUDZWBACDEFGHIBPKLMNOUEWFWEBCTZPDTZWGWBWEBPCDUFWGWIVTBCTZWBWGJDQZWIW
        JUGWGWKJVPQZVOWLVQJIUHUJVQWKWLUKVODVPJULUMUNWHWJPJDWCJRZWEVTBCWMWDVSFWM
        WDVRJUIVSWCJVRUOVRJUPUQURUSVAUTWGVTBCWAWGCIDUCZWACIVBDICUCRCWNRASEVCHRA
        ICMVDNCDIVEVFVQWNWARVODVPIVGUMVHVIVJVLVKVM $.

      $d V v $.
      $( According to statement 5 in [Huneke] p. 2:  "If A ... is a singleton,
         then that singleton is a universal friend".  (Contributed by Alexander
         van der Vekens, 1-Jan-2018.)  (Proof shortened by AV, 4-Feb-2022.) $)
      frgrwopreg1 $p |- ( ( G e. FriendGraph /\ ( # ` A ) = 1 )
                        -> E. v e. V A. w e. ( V \ { v } ) { v , w } e. E ) $=
        ( wcel cfv wceq cv wrex cfrgr chash c1 cpr csn cdif wral wex cvtx fvexi
        cvv wb rabex2 hash1snb ax-mp wi exsnrex wss ssrab3 ssrexv frgrwopregasn
        3expia reximdva syl5com sylbi com12 syl5bi imp ) HUAPZDUBQUCRZCSZBSUDGP
        BJVKUEZUFUGZCJTZVJDVLRZCUHZVIVNDUKPVJVPULASFQIRZAJDMJHUIKUJUMDUKCUNUOVP
        VIVNVPVOCDTZVIVNUPCDUQVRVOCJTZVIVNDJURVRVSUPVQAJDMUSVOCDJUTUOVIVOVMCJVI
        VKJPVOVMABDEFGHIJVKKLMNOVAVBVCVDVEVFVGVH $.

      $( According to statement 5 in [Huneke] p. 2:  "If ...  B is a singleton,
         then that singleton is a universal friend".  (Contributed by Alexander
         van der Vekens, 1-Jan-2018.)  (Proof shortened by AV, 4-Feb-2022.) $)
      frgrwopreg2 $p |- ( ( G e. FriendGraph /\ ( # ` B ) = 1 )
                        -> E. v e. V A. w e. ( V \ { v } ) { v , w } e. E ) $=
        ( wcel wceq cv wrex cvv cfrgr chash cfv c1 cpr cdif wral frgrwopreglem1
        csn wex wb simpri hash1snb ax-mp wi exsnrex difss eqsstri frgrwopregbsn
        wss ssrexv 3expia reximdva syl5com sylbi com12 syl5bi imp ) HUAPZEUBUCU
        DQZCRZBRUEGPBJVKUIZUFUGZCJSZVJEVLQZCUJZVIVNETPZVJVPUKDTPVQADEFHIJKLMNUH
        ULETCUMUNVPVIVNVPVOCESZVIVNUOCEUPVRVOCJSZVIVNEJUTVRVSUOEJDUFJNJDUQURVOC
        EJVAUNVIVOVMCJVIVKJPVOVMABDEFGHIJVKKLMNOUSVBVCVDVEVFVGVH $.

      $d A x z $.  $d D z $.  $d G z $.  $d K z $.  $d V z $.  $d y z $.
      $( Lemma for ~ frgrwopreglem5 .  (Contributed by AV, 5-Feb-2022.) $)
      frgrwopreglem5lem $p |- ( ( ( a e. A /\ x e. A )
                               /\ ( b e. B /\ y e. B ) )
                              -> ( ( D ` a ) = ( D ` x )
                                /\ ( D ` a ) =/= ( D ` b )
                                /\ ( D ` x ) =/= ( D ` y ) ) ) $=
        ( cv wcel cfv wceq vz wa wne wi fveq2 eqeq1d elrab2 eqtr3 expcom adantl
        rabeq2i com12 simplbiim syl5bi imp frgrwopreglem3 ad2ant2r crab cbvrabv
        adantr eqtri ad2ant2l 3jca ) JQZCRZAQZCRZUBZKQZDRZBQZDRZUBZUBVDESZVFESZ
        TZVNVIESUCZVOVKESUCZVHVPVMVEVGVPVGVFIRZVOHTZUBZVEVPVTACINUKVEVDIRVNHTZW
        AVPUDVTWBAVDICVFVDTVOVNHVFVDEUEUFNUGWAWBVPVTWBVPUDVSWBVTVPVNVOHUHUIUJUL
        UMUNUOUTVEVJVQVGVLACDEGHIVDVILMNOUPUQVGVLVRVEVJUACDEGHIVFVKLMCVTAIURUAQ
        ZESZHTZUAIURNVTWEAUAIVFWCTVOWDHVFWCEUEUFUSVAOUPVBVC $.

      $d A a y $.  $d B a b y z $.  $d E x z $.
      $( Lemma 5 for ~ frgrwopreg .  If ` A ` as well as ` B ` contain at least
         two vertices, there is a 4-cycle in a friendship graph.  This
         corresponds to statement 6 in [Huneke] p. 2:  "... otherwise, there
         are two different vertices in A, and they have two common neighbors in
         B, ...".  (Contributed by Alexander van der Vekens, 31-Dec-2017.)
         (Proof shortened by AV, 5-Feb-2022.) $)
      frgrwopreglem5 $p |- ( ( G e. FriendGraph
                               /\ 1 < ( # ` A ) /\ 1 < ( # ` B ) )
                           -> E. a e. A E. x e. A E. b e. B E. y e. B
                              ( ( a =/= x /\ b =/= y )
                                /\ ( { a , b } e. E /\ { b , x } e. E )
                                /\ ( { x , y } e. E /\ { y , a } e. E ) ) ) $=
        ( wcel cfv wa wrex cfrgr c1 chash clt wbr cv wne cpr w3a simpllr anim1i
        wi wceq simplll fveq2 eqeq1d elrab2 simpl sylbi rabidim1 eleq2s anim12i
        crab adantl eldifi frgrwopreglem5lem adantll adantr frgrwopreglem5a syl
        cdif 3jca 3anass sylanbrc ex reximdvva exp31 com24 imp31 frgrwopreglem1
        com13 imp cvv hashgt12el im2anan9 ax-mp syl11 3impib ) GUAQZUBCUCRUDUEZ
        UBDUCRUDUEZJUFZAUFZUGZKUFZBUFZUGZSZWLWOUHFQWOWMUHFQSZWMWPUHFQWPWLUHFQSZ
        UIZBDTKDTZACTJCTZWNACTJCTZWQBDTKDTZSZWIXCWJWKSZXDXEWIXCULWIXEXDXCWIXEXD
        XCULWIXESWNXBJACCWIXEWLCQZWMCQZSZWNXBULWIWNXJXEXBWIWNXJXEXBULWIWNSZXJSZ
        WQXAKBDDXLWODQZWPDQZSZSZWQXAXPWQSZWRWSWTSZXAXPWNWQWIWNXJXOUJUKXQWIWLIQZ
        WMIQZSZWOIQZWPIQZSZSZWLERZWMERZUMYFWOERUGYGWPERUGUIZUIZXRXPYIWQXPWIYEYH
        WIWNXJXOUNXLYAXOYDXJYAXKXHXSXIXTXHXSYFHUMZSXSYGHUMZYJAWLICWMWLUMYGYFHWM
        WLEUOUPNUQXSYJURUSXTWMYKAIVCCYKAIUTNVAVBVDXMYBXNYCYBWOICVKZDWOICVEOVAYC
        WPYLDWPICVEOVAVBVBXJXOYHXKABCDEFGHIJKLMNOPVFVGVLVHWLWOEFGIWMWPLMPVIVJWR
        WSWTVMVNVOVPVQVRVSVPVOWAWBCWCQZDWCQZSXGXFULACDEGHILMNOVTYMWJXDYNWKXEYMW
        JXDCWCJAWDVOYNWKXEDWCKBWDVOWEWFWGWH $.

      $d E a b $.
      $( Alternate direct proof of ~ frgrwopreglem5 , not using
         ~ frgrwopreglem5a .  This proof would be even a little bit shorter
         than the proof of ~ frgrwopreglem5 without using ~ frgrwopreglem5lem .
         (Contributed by Alexander van der Vekens, 31-Dec-2017.)  (Revised by
         AV, 3-Jan-2022.)  (Proof shortened by AV, 5-Feb-2022.)
         (New usage is discouraged.)  (Proof modification is discouraged.) $)
      frgrwopreglem5ALT $p |- ( ( G e. FriendGraph
                                  /\ 1 < ( # ` A ) /\ 1 < ( # ` B ) )
                           -> E. a e. A E. x e. A E. b e. B E. y e. B
                              ( ( a =/= x /\ b =/= y )
                                /\ ( { a , b } e. E /\ { b , x } e. E )
                                /\ ( { x , y } e. E /\ { y , a } e. E ) ) ) $=
        ( wcel wa wrex wi vz cfrgr chash cfv clt wbr wne cpr w3a simpllr anim1i
        c1 wral frgrwopreglem4 wceq preq1 eleq1d ralbidv cbvralv com12 ad2ant2r
        cv rsp2 syl5bi imp prcom sylbi ad2ant2lr syl5eqel jca expcom syl adantr
        impl preq2 rspc2v ad2ant2l impcom ad2ant2rl reximdvva exp31 com24 imp31
        ex 3jca com13 cvv frgrwopreglem1 hashgt12el im2anan9 ax-mp syl11 3impib
        ) GUBQZULCUCUDUEUFZULDUCUDUEUFZJVBZAVBZUGZKVBZBVBZUGZRZWQWTUHZFQZWTWRUH
        ZFQZRZWRXAUHZFQZXAWQUHZFQZRZUIZBDSKDSZACSJCSZWSACSJCSZXBBDSKDSZRZWNXPWO
        WPRZXQXRWNXPTWNXRXQXPWNXRXQXPTWNXRRWSXOJACCWNXRWQCQZWRCQZRZWSXOTWNWSYCX
        RXOWNWSYCXRXOTWNWSRZYCRZXBXNKBDDYEWTDQZXADQZRZRZXBXNYIXBRXCXHXMYIWSXBWN
        WSYCYHUJUKYIXHXBYDYCYHXHWNYCYHRZXHTZWSWNUAVBZWTUHZFQZKDUMZUACUMZYKACDEF
        GHIUAKLMNOPUNZYJYPXHYJYPRZXEXGYJYPXEYPXEKDUMZJCUMZYJXEYOYSUAJCYLWQUOZYN
        XEKDUUAYMXDFYLWQWTUPUQZURUSYAYFYTXETYBYGYTYAYFRXEXEJKCDVCUTVAVDVEYRXFWR
        WTUHZFWTWRVFYJYPUUCFQZYBYFYPUUDTYAYGYPYBYFRZUUDYPUUDKDUMZACUMUUEUUDTYOU
        UFUAACYLWRUOZYNUUDKDUUGYMUUCFYLWRWTUPUQZURUSUUDAKCDVCVGUTVHVEVIVJVKVLVM
        VNVMYIXMXBYDYCYHXMWNYJXMTZWSWNYPUUIYQYPYJXMYPYJRZXJXLYJYPXJYBYGYPXJTYAY
        FYNXJUUDUAKWRXACDUUHWTXAUOZUUCXIFWTXAWRVOUQVPVQVRUUJXKWQXAUHZFXAWQVFYJY
        PUULFQZYAYGYPUUMTYBYFYNUUMXEUAKWQXACDUUBUUKXDUULFWTXAWQVOUQVPVSVRVIVJWD
        VLVMVNVMWEWDVTWAWBWCVTWDWFVECWGQZDWGQZRXTXSTACDEGHILMNOWHUUNWOXQUUOWPXR
        UUNWOXQCWGJAWIWDUUOWPXRDWGKBWIWDWJWKWLWM $.
    $}

    $d A a b y $.  $d B a b x y $.  $d D y $.  $d G a b y $.  $d V y $.
    $( In a friendship graph there are either no vertices ( ` A = (/) ` ) or
       exactly one vertex ( ` ( # `` A ) = 1 ` ) having degree ` K ` , or all
       ( ` B = (/) ` ) or all except one vertices ( ` ( # `` B ) = 1 ` ) have
       degree ` K ` .  (Contributed by Alexander van der Vekens, 31-Dec-2017.)
       (Revised by AV, 10-May-2021.)  (Proof shortened by AV, 3-Jan-2022.) $)
    frgrwopreg $p |- ( G e. FriendGraph -> ( ( ( # ` A ) = 1 \/ A = (/) )
                                         \/ ( ( # ` B ) = 1 \/ B = (/) ) ) ) $=
      ( va vb vy cvv wcel wa cfv wceq wi cfrgr chash frgrwopreglem1 cc0 clt wbr
      c1 c0 wo w3o hashv01gt1 hasheq0 biidd 3orbi123d olc olcd 2a1d orc orcd cv
      w3a wne cpr cedg wrex eqid frgrwopreglem5 cusgr frgrusgr wnel crab elrabi
      eleq2s adantr ad3antlr rabidim1 adantl simprl cdif eldifi ad2antlr simprr
      simplll 4cyclusnfrgr syl133anc exp4b 3impd df-nel pm2.21 sylbi rexlimdvva
      wn syl6 com23 mpcom 3ad2ant1 mpd 3exp com3l 3jaoi com12 syl6bi imp ax-mp
      ) BOPZCOPZQEUAPZBUBRZUGSZBUHSZUIZCUBRZUGSZCUHSZUIZUIZTZABCDEFGHIJKUCXEXFX
      QXEXHUDSZXIUGXHUEUFZUJZXFXQTZBOUKXEXTXJXIXSUJZYAXEXRXJXIXIXSXSBOULXEXIUMX
      EXSUMUNXFYBXQXFXLUDSZXMUGXLUEUFZUJZYBXQTZCOUKXFYEXNXMYDUJYFXFYCXNXMXMYDYD
      COULXFXMUMXFYDUMUNXNYFXMYDXNXPYBXGXNXOXKXNXMUOUPUQXMXPYBXGXMXOXKXMXNURUPU
      QYBYDXQXJYDXQTXIXSXJXPYDXGXJXKXOXJXIUOUSUQXIXPYDXGXIXKXOXIXJURUSUQXGXSYDX
      PXGXSYDXPXGXSYDVALUTZAUTZVBZMUTZNUTZVBZQZYGYJVCEVDRZPYJYHVCYNPQZYHYKVCYNP
      YKYGVCYNPQZVAZNCVEMCVEZABVELBVEZXPANBCDYNEFGLMHIJKYNVFZVGXGXSYSXPTZYDEVHP
      ZXGUUAEVIUUBYSXGXPUUBYRXQLABBUUBYGBPZYHBPZQZQZYQXQMNCCUUFYJCPZYKCPZQZQZYQ
      EUAVJZXQUUJYMYOYPUUKUUJYMYOYPUUKUUJYMQUUBYGGPZYHGPZYIYJGPZYKGPZYLYOYPQUUK
      TUUBUUEUUIYMWCUUEUULUUBUUIYMUUCUULUUDUULYGYHDRFSZAGVKZBUUPAYGGVLJVMVNVOUU
      EUUMUUBUUIYMUUDUUMUUCUUMYHUUQBUUPAGVPJVMVQVOUUJYIYLVRUUIUUNUUFYMUUGUUNUUH
      UUNYJGBVSZCYJGBVTKVMVNWAUUIUUOUUFYMUUHUUOUUGUUOYKUURCYKGBVTKVMVQWAUUJYIYL
      WBYGYJYHYKYNEGHYTWDWEWFWGUUKXGWLXQEUAWHXGXPWIWJWMWKWKWNWOWPWQWRWSWTXAWTXB
      WQXAXBWQXCXD $.
  $}

  ${
    $d D v w x y $.  $d E v y $.  $d G v w y $.  $d K v w x y $.
    $d V v w x y $.
    frgrregorufr0.v $e |- V = ( Vtx ` G ) $.
    frgrregorufr0.e $e |- E = ( Edg ` G ) $.
    frgrregorufr0.d $e |- D = ( VtxDeg ` G ) $.
    $( In a friendship graph there are either no vertices having degree ` K ` ,
       or all vertices have degree ` K ` for any (nonnegative integer) ` K ` ,
       unless there is a universal friend.  This corresponds to claim 2 in
       [Huneke] p. 2:  "... all vertices have degree k, unless there is a
       universal friend."  (Contributed by Alexander van der Vekens,
       1-Jan-2018.)  (Revised by AV, 11-May-2021.)  (Proof shortened by AV,
       3-Jan-2022.) $)
    frgrregorufr0 $p |- ( G e. FriendGraph
                  -> ( A. v e. V ( D ` v ) = K \/ A. v e. V ( D ` v ) =/= K
                       \/ E. v e. V A. w e. ( V \ { v } ) { v , w } e. E ) ) $=
      ( vx vy cv cfv wceq c0 wo wral sylbi jaoi crab chash c1 cdif wcel wne cpr
      cfrgr csn wrex w3o fveq2 eqeq1d cbvrabv eqid frgrwopreg wi wa frgrwopreg1
      weq 3mix3d expcom eqeq1i rabeq0 bitri neqne ralimi 3mix2d a1d frgrwopreg2
      wn difrab0eq eqeq2i rabid2 3mix1 mpcom ) KMZCNZFOZKGUAZUBNUCOZVTPOZQZGVTU
      DZUBNUCOZWDPOZQZQEUHUEZBMZCNZFOZBGRZWJFUFZBGRZWIAMUGDUEAGWIUIUDRBGUJZUKZL
      VTWDCEFGHJVSLMZCNZFOKLGKLUTVRWRFVQWQCULUMUNZWDUOZUPWCWHWPUQZWGWAXAWBWHWAW
      PWHWAURWOWLWNLABVTWDCDEFGHJWSWTIUSVAVBWBWKVKZBGRZXAWBWKBGUAZPOXCVTXDPVSWK
      KBGKBUTVRWJFVQWICULUMUNZVCWKBGVDVEXCWPWHXCWNWLWOXBWMBGWJFVFVGVHVISTWEXAWF
      WHWEWPWHWEURWOWLWNLABVTWDCDEFGHJWSWTIVJVAVBWFGVTOZXAVSKGVLXFWLXAXFGXDOWLV
      TXDGXEVMWKBGVNVEWLWPWHWLWNWOVOVISSTTVP $.

    $d D a v $.  $d E a $.  $d K a $.  $d V a $.  $d a w $.
    $( If there is a vertex having degree ` K ` for each (nonnegative integer)
       ` K ` in a friendship graph, then either all vertices have degree ` K `
       or there is a universal friend.  This corresponds to claim 2 in [Huneke]
       p. 2:  "Suppose there is a vertex of degree k > 1. ... all vertices have
       degree k, unless there is a universal friend. ...  It follows that G is
       k-regular, i.e., the degree of every vertex is k".  (Contributed by
       Alexander van der Vekens, 1-Jan-2018.) $)
    frgrregorufr $p |- ( G e. FriendGraph -> ( E. a e. V ( D ` a ) = K
                -> ( A. v e. V ( D ` v ) = K
                     \/ E. v e. V A. w e. ( V \ { v } ) { v , w } e. E ) ) ) $=
      ( wcel cv cfv wceq wral wne wrex wi a1d cpr csn cdif w3o wo frgrregorufr0
      cfrgr orc wa fveq2 neeq1d rspcva wn df-ne pm2.21 syl ancoms rexlimdva olc
      sylbi 3jaoi ) EUGLBMZCNZFOBGPZVCFQZBGPZVBAMUADLAGVBUBUCPBGRZUDHMZCNZFOZHG
      RZVDVGUEZSZABCDEFGIJKUFVDVMVFVGVDVLVKVDVGUHTVFVJVLHGVHGLZVFVJVLSZVNVFUIVI
      FQZVOVEVPBVHGVBVHOVCVIFVBVHCUJUKULVPVJUMVOVIFUNVJVLUOUTUPUQURVGVLVKVGVDUS
      TVAUP $.
  $}

  ${
    $d G a $.  $d G k $.  $d G v w $.  $d E a v $.  $d V a v w $.
    $d a k v w $.
    frgrregorufrg.v $e |- V = ( Vtx ` G ) $.
    frgrregorufrg.e $e |- E = ( Edg ` G ) $.
    $( If there is a vertex having degree ` k ` for each nonnegative integer
       ` k ` in a friendship graph, then there is a universal friend.  This
       corresponds to claim 2 in [Huneke] p. 2:  "Suppose there is a vertex of
       degree k > 1. ... all vertices have degree k, unless there is a
       universal friend. ...  It follows that G is k-regular, i.e., the degree
       of every vertex is k".  Variant of ~ frgrregorufr with generalization.
       (Contributed by Alexander van der Vekens, 6-Sep-2018.)  (Revised by AV,
       26-May-2021.)  (Proof shortened by AV, 12-Jan-2022.) $)
    frgrregorufrg $p |- ( G e. FriendGraph -> A. k e. NN0
                     ( E. a e. V ( ( VtxDeg ` G ) ` a ) = k -> ( G RegUSGraph k
                    \/ E. v e. V A. w e. ( V \ { v } ) { v , w } e. E ) ) ) $=
      ( cfrgr wcel cv cvtxdg cfv wceq wrex wral wo wi cn0 crusgr wbr cpr csn wa
      cdif frgrregorufr adantr cusgr cxnn0 frgrusgr nn0xnn0 usgreqdrusgr 3expia
      eqid syl2an orim1d syld ralrimiva ) EJKZGLEMNZNCLZOGFPZEVBUAUBZBLZALUCDKA
      FVEUDUFQBFPZRZSCTUTVBTKZUEZVCVEVANVBOBFQZVFRZVGUTVCVKSVHABVADEVBFGHIVAUOZ
      UGUHVIVJVDVFUTEUIKZVBUJKZVJVDSVHEUKVBULVMVNVJVDBVAEVBFHVLUMUNUPUQURUS $.
  $}

  ${
    $d A c $.  $d B c $.  $d G c $.  $d V c $.
    frgr2wwlkeu.v $e |- V = ( Vtx ` G ) $.
    $( For two different vertices in a friendship graph, there is exactly one
       third vertex being the middle vertex of a (simple) path/walk of length 2
       between the two vertices.  (Contributed by Alexander van der Vekens,
       18-Feb-2018.)  (Revised by AV, 12-May-2021.)  (Proof shortened by AV,
       4-Jan-2022.) $)
    frgr2wwlkeu $p |- ( ( G e. FriendGraph /\ ( A e. V /\ B e. V ) /\ A =/= B )
                     -> E! c e. V <" A c B "> e. ( A ( 2 WWalksNOn G ) B ) ) $=
      ( cfrgr wcel wa wne w3a cv cs3 c2 cwwlksnon co wreu cpr syl5bir wb df-3an
      cedg cfv eqid frcond2 3impib cusgr cumgr wi frgrusgr 3anan32 umgrwwlks2on
      usgrumgr ex 3syl impl reubidva 3adant3 mpbird ) CGHZADHZBDHZIZABJZKAELZBM
      ABNCOPPHZEDQZAVERCUBUCZHVEBRVHHIZEDQZUTVCVDVJVCVDIVAVBVDKUTVJVAVBVDUAABVH
      CDEFVHUDZUESUFUTVCVGVJTVDUTVCIVFVIEDUTVCVEDHZVFVITZUTCUGHCUHHZVCVLIZVMUIC
      UJCUMVOVAVLVBKZVNVMVAVLVBUKVNVPVMAVEBVHCDFVKULUNSUOUPUQURUS $.

    $( In a friendship graph, there is always a path/walk of length 2 between
       two different vertices.  (Contributed by Alexander van der Vekens,
       18-Feb-2018.)  (Revised by AV, 12-May-2021.) $)
    frgr2wwlkn0 $p |- ( ( G e. FriendGraph /\ ( A e. V /\ B e. V ) /\ A =/= B )
                        -> ( A ( 2 WWalksNOn G ) B ) =/= (/) ) $=
      ( vc cfrgr wcel wa wne w3a cv cs3 c2 cwwlksnon co wreu wrex frgr2wwlkeu
      c0 reurex ne0i rexlimivw 3syl ) CGHADHBDHIABJKAFLBMZABNCOPPZHZFDQUGFDRUFT
      JZABCDFESUGFDUAUGUHFDUFUEUBUCUD $.

    $d A c d t w x y $.  $d B d w t x y $.  $d G d t w x y $.
    $d V d t w x y $.
    $( In a friendship graph, there is exactly one walk of length 2 between two
       different vertices.  (Contributed by Alexander van der Vekens,
       19-Feb-2018.)  (Revised by AV, 13-May-2021.)  (Proof shortened by AV,
       4-Jan-2022.) $)
    frgr2wwlk1 $p |- ( ( G e. FriendGraph /\ ( A e. V /\ B e. V ) /\ A =/= B )
                     -> ( # ` ( A ( 2 WWalksNOn G ) B ) ) = 1 ) $=
      ( vw vt vd vc vx vy cfrgr wcel wa wceq cv wi cs3 wb s3eq2 c2 cwwlksnon co
      wne w3a chash cfv c1 weu c0 frgr2wwlkn0 wrex elwwlks2ons3 3adant3 anbi12d
      wal 3expb wreu frgr2wwlkeu wral eleq1d reu4 anbi1d equequ1 imbi12d anbi2d
      equequ2 rspc2va pm3.35 equcoms adantr eqeq12 adantl mpbird equcomd ex syl
      com23 exp4b com13 imp expcom simplbiim impl rexlimdva impd sylbid syl2anc
      alrimivv eqeuel cvv ovex euhash1 mp1i ) CLMZADMZBDMZNZABUDZUEZABUACUBUCZU
      CZUFUGUHOZFPZXBMZFUIZWTXBUJUDXEGPZXBMZNZXDXGOZQZGUPFUPXFABCDEUKWTXKFGWTXI
      XDAHPZBRZOZXMXBMZNZHDULZXGAIPZBRZOZXSXBMZNZIDULZNZXJWTXEXQXHYCWOWRXEXQSZW
      SWOWPWQYEABLCDXDHEUMUQUNWOWRXHYCSZWSWOWPWQYFABLCDXGIEUMUQUNUOWTAJPZBRZXBM
      ZJDURZYDXJQABCDJEUSYJXQYCXJYJXPYCXJQHDYJXLDMZNZYCXPXJYLYBXPXJQZIDYJYKXRDM
      ZYBYMQZYJYIJDULYIAKPZBRZXBMZNZYGYPOZQZKDUTJDUTZYKYNNZYOQYIYRJKDYTYHYQXBAY
      GBYPTVAVBUUCUUBYOUUCUUBNXOYANZXLXROZQZYOUUAUUFXOYRNZXLYPOZQJKXLXRDDYGXLOZ
      YSUUGYTUUHUUIYIXOYRUUIYHXMXBAYGBXLTVAVCJHKVDVEYPXROZUUGUUDUUHUUEUUJYRYAXO
      UUJYQXSXBAYPBXRTVAVFKIHVGVEVHXPYBUUFXJXNXOYBUUFXJQZQYBXOXNUUKXTYAXOXNUUKQ
      ZQXOYAXTUULXOYAXTXNUUKUUDUUFXTXNNZXJUUDUUFUUMXJQZUUDUUFNUUEUUNUUDUUEVIUUE
      UUMXJUUEUUMNZGFUUOXGXDOZXSXMOZUUEUUQUUMUUQIHAXRBXLTVJVKUUMUUPUUQSUUEXGXSX
      DXMVLVMVNVOVPVQVPVRVSVTWAVTWAVTVQWBWCWDWEVRWEWFVQWGWIFGXBWJWHXBWKMXCXFSWT
      ABXAWLXBWKFWMWNVN $.

    $( In a friendship graph, there is exactly one simple path of length 2
       between two different vertices.  (Contributed by Alexander van der
       Vekens, 3-Mar-2018.)  (Revised by AV, 13-May-2021.) $)
    frgr2wsp1 $p |- ( ( G e. FriendGraph /\ ( A e. V /\ B e. V ) /\ A =/= B )
                      -> ( # ` ( A ( 2 WSPathsNOn G ) B ) ) = 1 ) $=
      ( cfrgr wcel wa wne w3a c2 cwwspthsnon co chash cfv cwwlksnon c1 frgrusgr
      cusgr wceq wpthswwlks2on syl3an1 fveq2d frgr2wwlk1 eqtrd ) CFGZADGBDGHZAB
      IZJZABKCLMMZNOABKCPMMZNOQUIUJUKNUFCSGUGUHUJUKTCRABCDEUAUBUCABCDEUDUE $.
  $}

  ${
    $d A x $.  $d B x $.  $d G x $.  $d P x $.  $d Q x $.
    $( If there is a (simple) path of length 2 from one vertex to another
       vertex and a (simple) path of length 2 from the other vertex back to the
       first vertex in a friendship graph, then the middle vertex is the same.
       This is only an observation, which is not required to proof the
       friendship theorem.  (Contributed by Alexander van der Vekens,
       20-Feb-2018.)  (Revised by AV, 13-May-2021.)  (Proof shortened by AV,
       7-Jan-2022.) $)
    frgr2wwlkeqm $p |- ( ( G e. FriendGraph /\ A =/= B
                           /\ ( P e. X /\ Q e. Y ) )
              -> ( ( <" A P B "> e. ( A ( 2 WWalksNOn G ) B )
                  /\ <" B Q A "> e. ( B ( 2 WWalksNOn G ) A ) ) -> Q = P ) ) $=
      ( vx wcel wa w3a cs3 co wceq wi wwlks2onv sylan wb simpr1 s3eq2 cfrgr wne
      c2 cwwlksnon cvtx cfv simp3l eqid simp3r cumgr frgrusgr usgrumgr 3ad2ant1
      cusgr syl simpr3 simpl 3jca wwlks2onsym syl2anr cv 3simpb ad2antlr simpr2
      wreu frgr2wwlkeu syl3anc crio eleq1d riota2 ad4ant14 simplr2 eqtr2 expcom
      syl6bi com23 sylbid mpdan expimpd ex 3ad2ant2 mpcom com24 imp mpd ) EUAIZ
      ABUBZCFIZDGIZJZKZACBLZABUCEUDMZMZIZBDALBAWMMIZDCNZWKWOJAEUEUFZIZCWRIZBWRI
      ZKZWPWQOZWKWHWOXBWFWGWHWIUGACBFEWRWRUHZPQWKWOXBXCOWKWPXBWOWQWKWPXBWOWQOZO
      ZXADWRIZWSKZWKWPJZXFWKWIWPXHWFWGWHWIUIBDAGEWRXDPQXGXAXIXFOWSXGXBXIXEXGXBX
      IXEOXGXBJZWKWPXEXJWKJZWPADBLZWNIZXEWKEUJIZXHWPXMRXJWFWGXNWJWFEUNIXNEUKEUL
      UOUMXJXAXGWSXGWSWTXAUPXGXBUQXGWSWTXASURBDAEWRXDUSUTXKAHVAZBLZWNIZHWRVEZXM
      XEOXKWFWSXAJZWGXRXJWFWGWJSXBXSXGWKWSWTXAVBVCXJWFWGWJVDABEWRHXDVFVGXKXRJZX
      MXQHWRVHZDNZXEXGXRXMYBRXBWKXQXMHWRDXODNXPXLWNAXOBDTVIVJVKXTWOYBWQXTWOYACN
      ZYBWQOXKWTXRWOYCRWSWTXAXGWKVLXQWOHWRCXOCNXPWLWNAXOBCTVIVJQYBYCWQYADCVMVNV
      OVPVQVRVQVSVTVPWAWBVTWCWDWEVS $.
  $}

  ${
    $d G a b $.  $d V a b $.
    frgrhash2wsp.v $e |- V = ( Vtx ` G ) $.
    $( The number of simple paths of length 2 is n*(n-1) in a friendship graph
       with n vertices.  This corresponds to the proof of claim 3 in [Huneke]
       p. 2:  "... the paths of length two in G: by assumption there are ( n
       2 ) such paths.".  However, Huneke counts undirected paths, so obtains
       the result ( ` ( n _C 2 ) = ( ( n x. ( n - 1 ) ) / 2 ) ` ), whereas we
       count directed paths, obtaining twice that number.  (Contributed by
       Alexander van der Vekens, 6-Mar-2018.)  (Revised by AV, 10-Jan-2022.) $)
    frgrhash2wsp $p |- ( ( G e. FriendGraph /\ V e. Fin )
          -> ( # ` ( 2 WSPathsN G ) ) = ( ( # ` V ) x. ( ( # ` V ) - 1 ) ) ) $=
      ( va vb cfrgr wcel cfn wa c2 co chash cfv cv ciun wceq simpr adantl wdisj
      c1 cwwspthsn csn cdif cwwspthsnon cmin cmul 2nn wspniunwspnon mpan fveq2d
      cn adantr eqid cvtx eleq1i wspthnonfi sylbi 3ad2ant1 2wspiundisj 2wspdisj
      a1i simplll eldifi anim12i eldifsni frgr2wsp1 syl3anc 3impa hash2iun1dif1
      wne necomd eqtrd ) AFGZBHGZIZJAUAKZLMZDBEBDNZUBZUCZVRENZJAUDKKZOZOZLMZBLM
      ZWFTUEKUFKVMVQWEPVNVMVPWDLJUKGVMVPWDPUGDEFAJBCUHUIUJULVODEBVTWBVMVNQVTUMV
      OVRBGZWBHGZWAVTGZVNWHVMVNAUNMZHGWHBWJHCUOVRWAAJUPUQRURDBWCSVOABDEUSVAEVTW
      BSVOWGIZVRABEUTVAVOWGWIWBLMTPZWKWIIVMWGWABGZIVRWAVJZWLVMVNWGWIVBWKWGWIWMV
      OWGQWABVSVCVDWIWNWKWIWAVRWABVRVEVKRVRWAABCVFVGVHVIVL $.

    $d G w $.  $d N a w $.
    fusgreg2wsp.m $e |- M = ( a e. V |-> { w e. ( 2 WSPathsN G ) |
                                           ( w ` 1 ) = a } ) $.
    ${
      $d p w $.
      $( Lemma for ~ fusgreg2wsp and related theorems.  (Contributed by AV,
         8-Jan-2022.) $)
      fusgreg2wsplem $p |- ( N e. V -> ( p e. ( M ` N )
                          <-> ( p e. ( 2 WSPathsN G ) /\ ( p ` 1 ) = N ) ) ) $=
        ( wcel cv cfv c1 wceq c2 cwwspthsn co crab wa eqeq2 rabbidv rabex fvmpt
        ovex eleq2d weq fveq1 eqeq1d elrab syl6bb ) DEJZFKZDCLZJULMAKZLZDNZAOBP
        QZRZJULUQJMULLZDNZSUKUMURULGDUOGKZNZAUQRURECVADNVBUPAUQVADUOTUAIUPAUQOB
        PUDUBUCUEUPUTAULUQAFUFUOUSDMUNULUGUHUIUJ $.
    $}

    $d G m x y z $.  $d G p x y z $.  $d M z $.  $d N m x y z $.  $d N p $.
    $d V m x y z $.  $d w z $.
    $( The set of paths of length 2 with a given vertex in the middle for a
       finite simple graph is the union of all paths of length 2 from one
       neighbor to another neighbor of this vertex via this vertex.
       (Contributed by Alexander van der Vekens, 9-Mar-2018.)  (Revised by AV,
       17-May-2021.)  (Proof shortened by AV, 8-Jan-2022.) $)
    fusgr2wsp2nb $p |- ( ( G e. FinUSGraph /\ N e. V ) -> ( M ` N ) =
                     U_ x e. ( G NeighbVtx N )
                     U_ y e. ( ( G NeighbVtx N ) \ { x } ) { <" x N y "> } ) $=
      ( vp vz vm wcel wa wrex wceq wb adantr wex cfusgr cfv cv cs3 csn cnbgr co
      cdif cab ciun c2 cwwspthsn fusgreg2wsplem adantl wne cpr cedg cwwspthsnon
      c1 cn0 2nn0 wspthsnwspthsnon mpan cusgr fusgrusgr eqid usgr2wspthon sylan
      2rexbidva bitrd anbi1d 19.41vv velsn bicomi anbi2i a1i simplr anass ancom
      an12 nesym prcom eleq1i anbi12ci bitri anbi1i 3bitri preq2 eleq1d anbi12d
      wn s3eq2 eqeq2d syl5bb wi fveq1 s3fv1 ax-mp syl6eq eqeq1d biimpd ad2antll
      cvv vex com12 imp rspcebdv pm5.32da an32 cumgr usgrumgr umgrpredgv simpld
      expcom anim12d 3syl impcom sylan9eqr jca pm4.71rd 3bitr4d nbusgreledg syl
      ex eldif notbid 2exbidv syl5bbr r2ex 3bitr4g eleq1w 2rexbidv 3bitrd eqrdv
      elab dfiunv2 syl6eqr ) DUANZFGNZOZFEUBZKUCZAUCZFBUCZUDZUEZNZBDFUFUGZUUCUE
      ZUHZPAUUHPZKUIZAUUHBUUJUUFUJUJYTLUUAUULYTLUCZUUANZUUMUKDULUGNZUSUUMUBZFQZ
      OZUUMUULNZYSUUNUURRYRCDEFGLHIJUMUNYTUURUUMUUCMUCZUUDUDZQZUUCUUDUOZOZUUCUU
      TUPZDUQUBZNZUUTUUDUPZUVFNZOZOZMGPZBGPAGPZUUQOZUUMUUFNZBUUJPAUUHPZUUSYTUUO
      UVMUUQYTUUOUUMUUCUUDUKDURUGUGNZBGPAGPZUVMYRUUOUVRRZYSUKUTNYRUVSVAUADUKGUU
      MABIVBVCSYTUVQUVLABGGYTDVDNZUUCGNZUUDGNZOZUVQUVLRYRUVTYSDVEZSUUCUUDUUMUVF
      DGMIUVFVFZVGVHVIVJVKYTUWCUVLOZBTATZUUQOZUUCUUHNZUUDUUJNZOZUVOOZBTATZUVNUV
      PUWHUWFUUQOZBTATYTUWMUWFUUQABVLYTUWNUWLABYTUUCFUPZUVFNZUUDFUPZUVFNZUUDUUC
      QZWKZOZOZUUMUUEQZOZUXBUVOOZUWNUWLUXDUXERYTUXCUVOUXBUVOUXCLUUEVMVNVOVPYTUW
      CUUQOZUVLOZUXFUXDOUWNUXDYTUXFUVLUXDYTUXFOZUVKUXDMFGYRYSUXFVQUUTFQZUVKUXDR
      UXHUVKUVGUUDUUTUPZUVFNZUWTOZOZUVBOZUXIUXDUVKUVBUVCUVJOZOUXOUVBOUXNUVBUVCU
      VJVRUVBUXOVSUXOUXMUVBUXOUVGUVCUVIOZOUXMUVCUVGUVIVTUXPUXLUVGUVCUWTUVIUXKUU
      CUUDWAUVHUXJUVFUUTUUDWBWCWDVOWEWFWGUXIUXMUXBUVBUXCUXIUVGUWPUXLUXAUXIUVEUW
      OUVFUUTFUUCWHWIUXIUXKUWRUWTUXIUXJUWQUVFUUTFUUDWHWIVKWJUXIUVAUUEUUMUUCUUTU
      UDFWLWMWJWNUNUXHUVKUXIUUQUVKUXIWOYTUWCUVKUUQUXIUVDUUQUXIWOZUVJUVBUXQUVCUV
      BUUQUXIUVBUUPUUTFUVBUUPUSUVAUBZUUTUSUUMUVAWPUUTXCNUXRUUTQMXDUUCUUTUUDXCWQ
      WRWSWTXASSXEXBXFXGXHUWNUXGRYTUWCUVLUUQXIVPYTUXDUXFYTUXDUXFYTUXDOUWCUUQUXD
      YTUWCUXBYTUWCWOUXCYTUXBUWCYRUXBUWCWOZYSYRUVTDXJNZUXSUWDDXKUXTUWPUWAUXAUWB
      UXTUWPUWAUXTUWPOUWAYSUVFDUUCFGIUWEXLXMYDUXAUXTUWBUWRUXTUWBWOUWTUXTUWRUWBU
      XTUWROUWBYSUVFDUUDFGIUWEXLXMXNSXEXOXPSXESXQUXDYTUUPUSUUEUBZFUXCUUPUYAQUXB
      USUUMUUEWPUNYSUYAFQYRUUCFUUDGWQUNXRXSYDXTYAYTUWKUXBUVOYTUWIUWPUWJUXAYRUWI
      UWPRZYSYRUVTUYBUWDUVFDFUUCUWEYBYCSUWJUUDUUHNZUUDUUINZWKZOYTUXAUUDUUHUUIYE
      YTUYCUWRUYEUWTYRUYCUWRRZYSYRUVTUYFUWDUVFDFUUDUWEYBYCSYTUYDUWSUYDUWSRYTBUU
      CVMVPYFWJWNWJVKYAYGYHUVMUWGUUQUVLABGGYIWFUVOABUUHUUJYIYJUVPUUSRYTUUSUVPUU
      KUVPKUUMLXDUUBUUMQUUGUVOABUUHUUJKLUUFYKYLYOVNVPYMVJYNABKUUHUUJUUFYPYQ $.

    $d G c d v $.  $d K c d $.  $d V c d $.  $d a v $.  $d v w $.
    $( According to statement 7 in [Huneke] p. 2:  "For each vertex v, there
       are exactly ( k 2 ) paths with length two having v in the middle, ..."
       in a finite k-regular graph.  For directed simple paths of length 2
       represented by length 3 strings, we have again k*(k-1) such paths, see
       also comment of ~ frgrhash2wsp .  (Contributed by Alexander van der
       Vekens, 10-Mar-2018.)  (Revised by AV, 17-May-2021.)  (Proof shortened
       by AV, 12-Feb-2022.) $)
    fusgreghash2wspv $p |- ( G e. FinUSGraph
                             -> A. v e. V ( ( ( VtxDeg ` G ) ` v ) = K
                               -> ( # ` ( M ` v ) ) = ( K x. ( K - 1 ) ) ) ) $=
      ( vc vd wcel cfv wceq chash c1 cmin co cmul wa cfusgr cv cvtxdg cnbgr csn
      wi cdif cs3 ciun fusgr2wsp2nb fveq2d adantr cfn eleq2i nbfiusgrfi sylan2b
      cvtx eqid w3a snfi a1i wdisj wral nbgrssvtx ssdifd iunss1 ralrimiva simpr
      wss syl s3iunsndisj disjss2 sylc anim1i ancomd s3sndisj cvv cword hashsng
      s3cli mp1i hash2iun1dif1 cusgr fusgrusgr hashnbusgrvd sylan oveq1 oveq12d
      id sylan9eq 3eqtrd ex ) CUALZBUBZCUCMMZDNZWNEMZOMZDDPQRZSRZNZUFBFWMWNFLZT
      ZWPXAXCWPTZWRJCWNUDRZKXEJUBZUEZUGZXFWNKUBZUHZUEZUIZUIZOMZXEOMZXOPQRZSRZWT
      XCWRXNNWPXCWQXMOJKACEWNFGHIUJUKULXDJKXEXHXKXCXEUMLZWPXBWMWNCUQMZLXRFXSWNH
      UNCWNUOUPULXHURXKUMLXDXFXELZXIXHLUSZXJUTVAXCJXEXLVBZWPXCXLKFXGUGZXKUIZVIZ
      JXEVCJXEYDVBZYBXCYEJXEXCXTTZXHYCVIYEYGXEFXGXEFVIYGCWNFHVDVAVEKXHYCXKVFVJV
      GXCXBYFWMXBVHZWNFXEFJKVKVJJXEXLYDVLVMULXDXTTZXTXBTKXHXKVBYIXBXTXDXBXTXCXB
      WPYHULVNVOXFWNXEFXHKVPVJXJVQVRZLXKOMPNYAXFWNXIVTXJYJVSWAWBXCWPXQWOWOPQRZS
      RZWTXCXOWONZXQYLNWMCWCLXBYMCWDWNCFHWEWFYMXOWOXPYKSYMWIXOWOPQWGWHVJWPWODYK
      WSSWPWIWODPQWGWHWJWKWLVG $.

    $d a p w x $.  $d M p $.  $d V p $.
    $( In a finite simple graph, the set of all paths of length 2 is the union
       of all the paths of length 2 over the vertices which are in the middle
       of such a path.  (Contributed by Alexander van der Vekens, 10-Mar-2018.)
       (Revised by AV, 18-May-2021.)  (Proof shortened by AV, 10-Jan-2022.) $)
    fusgreg2wsp $p |- ( G e. FinUSGraph
                        -> ( 2 WSPathsN G ) = U_ x e. V ( M ` x ) ) $=
      ( vp cfusgr wcel c2 cwwspthsn co cv cfv wrex wa a1i wb ciun c1 wi cwwlksn
      wceq wspthsswwlkn sseli midwwlks2s3 pm4.71rd ancom r19.41v fusgreg2wsplem
      syl rexbii bitr2i bicomd adantl rexbidva 3bitrd eliun syl6bbr eqrdv ) CJK
      ZILCMNZAEAOZDPZUAZVCIOZVDKZVHVFKZAEQZVHVGKVCVIUBVHPVEUEZAEQZVIRZVIVLRZAEQ
      ZVKVCVIVMVIVMUCVCVIVHLCUDNZKVMVDVQVHCLUFUGCEVHAGUHUMSUIVNVPTVCVPVLVIRZAEQ
      VNVOVRAEVIVLUJUNVLVIAEUKUOSVCVOVJAEVEEKZVOVJTVCVSVJVOBCDVEEIFGHULUPUQURUS
      AVHEVFUTVAVB $.

    $d a w y $.  $d M t x y $.  $d V t x w $.
    $( The sets of paths of length 2 with a given vertex in the middle are
       distinct for different vertices in the middle.  (Contributed by
       Alexander van der Vekens, 11-Mar-2018.)  (Revised by AV, 18-May-2021.)
       (Proof shortened by AV, 10-Jan-2022.) $)
    2wspmdisj $p |- Disj_ x e. V ( M ` x ) $=
      ( vy vt cv cfv wceq wral wcel wa wi wn fusgreg2wsplem adantl wdisj weq c0
      cin wo orc a1d c2 cwwspthsn co c1 wb adantr eqtr2 expcom com12 syl6bi imp
      sylbid con3d impancom ralrimiv disj sylibr olcd rgen2a fveq2 disjor mpbir
      pm2.61i ) AEAKZDLZUAAIUBZVLIKZDLZUDUCMZUEZIENAENVQAIEVMVKEOZVNEOZPZVQQVMV
      QVTVMVPUFUGVTVMRZVQVTWAPZVPVMWBJKZVOOZRZJVLNVPWBWEJVLVTWCVLOZWAWEVTWFPZWD
      VMWGWDWCUHCUIUJOZUKWCLZVNMZPZVMVTWDWKULZWFVSWLVRBCDVNEJFGHSTUMVTWFWKVMQZV
      RWFWMQVSVRWFWHWIVKMZPWMBCDVKEJFGHSWNWMWHWKWNVMWJWNVMQWHWNWJVMWIVKVNUNUOTU
      PTUQUMURUSUTVAVBJVLVOVCVDVEUOVJVFEVLVOAIVKVNDVGVHVI $.
  $}

  ${
    $d G a s t v y $.  $d K v y $.  $d V a s t v y $.
    fusgreghash2wsp.v $e |- V = ( Vtx ` G ) $.
    $( In a finite k-regular graph with N vertices there are N times "k choose
       2" paths with length 2, according to statement 8 in [Huneke] p. 2:  "...
       giving n * ( k 2 ) total paths of length two.", if the direction of
       traversing the path is not respected.  For simple paths of length 2
       represented by length 3 strings, however, we have again n*k*(k-1) such
       paths.  (Contributed by Alexander van der Vekens, 11-Mar-2018.)
       (Revised by AV, 19-May-2021.)  (Proof shortened by AV, 12-Jan-2022.) $)
    fusgreghash2wsp $p |- ( ( G e. FinUSGraph /\ V =/= (/) )
                            -> ( A. v e. V ( ( VtxDeg ` G ) ` v ) = K
                                -> ( # ` ( 2 WSPathsN G ) )
                                   = ( ( # ` V ) x. ( K x. ( K - 1 ) ) ) ) ) $=
      ( vy va vs vt wcel wa cv cfv wceq wral c2 co chash c1 cfn cfusgr wne cmin
      cvtxdg cwwspthsn cmul crab cmpt ciun csu fveq1 eqeq1d cbvrabv fusgreg2wsp
      c0 mpteq2i ad2antrr fveq2d fusgrvtxfi eqeq2 rabbidv eqid ovex rabex fvmpt
      adantl cvtx wspthnfi rabfi 3syl adantr eqeltrd wdisj 2wspmdisj hashiun wi
      a1i fusgreghash2wspv ralim syl fveq2 rspccva sylan sumeq2dv fusgrregdegfi
      imp cc cn0 nn0cnd kcnktkm1cn fsumconst syl2an2r eqtrd 3eqtrd ex ) BUAJZDU
      OUBZKZALZBUDMZMCNZADOZPBUEQZRMZDRMCCSUCQUFQZUFQZNWRXBKZXDFDFLZGDSHLZMZGLZ
      NZHXCUGZUHZMZUIZRMZDXORMZFUJZXFXGXCXPRWPXCXPNWQXBFIBXNDGEGDXMSILZMZXKNZIX
      CUGXLYBHIXCXIXTNXJYAXKSXIXTUKULUMUPZUNUQURWPXQXSNWQXBWPFDXOBDEUSZWPXHDJZK
      XOXJXHNZHXCUGZTYEXOYGNWPGXHXMYGDXNXKXHNXLYFHXCXKXHXJUTVAXNVBYFHXCPBUEVCVD
      VEVFWPYGTJZYEWPBVGMZTJXCTJYHBYIYIVBUSBPVHYFHXCVIVJVKVLFDXOVMWPFIBXNDGEYCV
      NVQVOUQXGXSDXEFUJZXFXGDXRXEFXGWSXNMZRMZXENZADOZYEXRXENZWRXBYNWPXBYNVPZWQW
      PXAYMVPADOYPIABCXNDGEYCVRXAYMADVSVTVKWFYMYOAXHDWSXHNZYLXRXEYQYKXORWSXHXNW
      AURULWBWCWDWRDTJZXBXEWGJZYJXFNWPYRWQYDVKXGCWGJYSXGCWRXBCWHJAWTBCDEWTVBWEW
      FWICWJVTDXEFWKWLWMWNWO $.
  $}

  ${
    $d G v $.  $d K v $.  $d V v $.
    frrusgrord0.v $e |- V = ( Vtx ` G ) $.
    $( Lemma for ~ frrusgrord0 .  (Contributed by AV, 12-Jan-2022.) $)
    frrusgrord0lem $p |- ( ( ( G e. FriendGraph /\ V e. Fin /\ V =/= (/) )
                             /\ A. v e. V ( ( VtxDeg ` G ) ` v ) = K )
                      -> ( K e. CC /\ ( # ` V ) e. CC /\ ( # ` V ) =/= 0 ) ) $=
      ( cfrgr wcel cfn c0 wne w3a cv cfv wceq wa cc cc0 imp nn0cnd adantr chash
      cvtxdg wral cn0 cfusgr cusgr frgrusgr anim1i isfusgr sylibr fusgrregdegfi
      wi eqid stoic3 hashcl 3ad2ant2 hasheq0 biimpd necon3d 3adant1 3jca ) BFGZ
      DHGZDIJZKZALBUBMZMCNADUCZOZCPGDUAMZPGZVIQJZVHCVEVGCUDGZVBVCBUEGZVDVGVLULV
      BVCOBUFGZVCOVMVBVNVCBUGUHBDEUIUJAVFBCDEVFUMUKUNRSVEVJVGVCVBVJVDVCVIDUOSUP
      TVEVKVGVCVDVKVBVCVDVKVCVIQDIVCVIQNDINDHUQURUSRUTTVA $.

    $( If a nonempty finite friendship graph is k-regular, its order is
       k(k-1)+1.  This corresponds to claim 3 in [Huneke] p. 2:  "Next we claim
       that the number n of vertices in G is exactly k(k-1)+1.".  (Contributed
       by Alexander van der Vekens, 11-Mar-2018.)  (Revised by AV,
       26-May-2021.)  (Proof shortened by AV, 12-Jan-2022.) $)
    frrusgrord0 $p |- ( ( G e. FriendGraph /\ V e. Fin /\ V =/= (/) )
                        -> ( A. v e. V ( ( VtxDeg ` G ) ` v ) = K
                             -> ( # ` V ) = ( ( K x. ( K - 1 ) ) + 1 ) ) ) $=
      ( wcel wne w3a cfv wceq chash c1 cmin co cmul caddc wa wi cc 3ad2ant2 cfn
      cfrgr c0 cv cvtxdg wral c2 cwwspthsn cfusgr cusgr frgrusgr anim1i isfusgr
      sylibr fusgreghash2wsp stoic3 imp wb eqcomd eqeq1d 3adant3 frrusgrord0lem
      frgrhash2wsp adantr cc0 peano2cnm kcnktkm1cn 3ad2ant1 simp2 simp3 mulcand
      npcan1 oveq1 sylan9req ex sylbid syl sylbird mpd ) BUBFZDUAFZDUCGZHZAUDBU
      EIICJADUFZDKIZCCLMNONZLPNZJZWCWDQZUGBUHNKIZWEWFONZJZWHWCWDWLVTWABUIFZWBWD
      WLRVTWAQZBUJFZWAQWMVTWOWABUKULBDEUMUNABCDEUOUPUQWIWLWEWELMNZONZWKJZWHWCWR
      WLURZWDVTWAWSWBWNWQWJWKWNWJWQBDEVCUSUTVAVDWICSFZWESFZWEVEGZHZWRWHRABCDEVB
      XCWRWPWFJZWHXCWPWFWEXAWTWPSFXBWEVFTWTXAWFSFXBCVGVHWTXAXBVIWTXAXBVJVKXAWTX
      DWHRXBXAXDWHXAXDWEWPLPNWGWEVLWPWFLPVMVNVOTVPVQVRVSVO $.

    $( If a nonempty finite friendship graph is k-regular, its order is
       k(k-1)+1.  This corresponds to claim 3 in [Huneke] p. 2:  "Next we claim
       that the number n of vertices in G is exactly k(k-1)+1.".  Variant of
       ~ frrusgrord0 , using the definition ` RegUSGraph ` ( ~ df-rusgr ).
       (Contributed by Alexander van der Vekens, 25-Aug-2018.)  (Revised by AV,
       26-May-2021.)  (Proof shortened by AV, 12-Jan-2022.) $)
    frrusgrord $p |- ( ( V e. Fin /\ V =/= (/) )
                       -> ( ( G e. FriendGraph /\ G RegUSGraph K )
                            -> ( # ` V ) = ( ( K x. ( K - 1 ) ) + 1 ) ) ) $=
      ( vv cfn wcel c0 wne wa cfrgr crusgr wbr chash cfv c1 cmin co cmul wceq
      caddc wi cvtxdg wral w3a cxnn0 crgr rusgrrgr eqid rgrprop syl frrusgrord0
      cv simprd syl5 3expb expcom impd ) CFGZCHIZJZAKGZABLMZCNOBBPQRSRPUARTZVBV
      AVCVDUBZVBUSUTVEVCEUMAUCOZOBTECUDZVBUSUTUEVDVCBUFGZVGVCABUGMVHVGJABUHEVFA
      BCDVFUIUJUKUNEABCDULUOUPUQUR $.
  $}

  $( Lemma 3 for ~ numclwwlk3 .  (Contributed by Alexander van der Vekens,
     26-Aug-2018.)  (Proof shortened by AV, 23-Jan-2022.) $)
  numclwlk3lem3 $p |- ( ( K e. CC /\ Y e. CC /\ N e. ( ZZ>= ` 2 ) )
                        -> ( ( ( K ^ ( N - 2 ) ) - Y ) + ( K x. Y ) )
                           = ( ( ( K - 1 ) x. Y ) + ( K ^ ( N - 2 ) ) ) ) $=
    ( cc wcel c2 cuz cfv w3a cmin co cexp cmul caddc cn0 uznn0sub expcl 3adant2
    c1 sylan2 simp2 mulcl 3adant3 subcld addcomd simp1 mulsubfacd oveq1d 3eqtrd
    subadd23d ) ADEZCDEZBFGHEZIZABFJKZLKZCJKACMKZNKUPUQCJKZNKURUPNKASJKCMKZUPNK
    UNUPCUQUKUMUPDEZULUMUKUOOEUTFBPAUOQTRZUKULUMUAZUKULUQDEUMACUBUCZUJUNUPURVAU
    NUQCVCVBUDUEUNURUSUPNUNACUKULUMUFVBUGUHUI $.

  ${
    $d G i $.  $d N i $.  $d W i $.
    $( Obsolete version of ~ clwwlksnlbonbgr1 as of 17-Feb-2022.  (Contributed
       by Alexander van der Vekens, 15-Sep-2018.)  (Revised by AV,
       27-May-2021.)  (Proof shortened by AV, 29-Jan-2022.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    extwwlkfablem1OLD $p |- ( ( ( G e. USGraph /\ N e. ( ZZ>= ` 2 ) )
                   /\ W e. ( N ClWWalksN G ) /\ ( W ` ( N - 2 ) ) = ( W ` 0 ) )
                         -> ( W ` ( N - 1 ) ) e. ( G NeighbVtx ( W ` 0 ) ) ) $=
      ( vi cusgr wcel c2 cfv wa co cmin cc0 c1 cpr caddc fveq2d adantr eqeltrrd
      wceq eqid cuz cclwwlksn w3a cnbgr cedg preq1 3ad2ant3 prcom syl6eq oveq2i
      1e2m1 eluzelcn 2cnd 1cnd subsubd syl5req preq2d cfzo wral ige2m2fzo cword
      cvtx chash clsw clwwlknp simp2d fveq2 oveq1 preq12d eleq1d rspcva adantll
      cv syl2an 3adant3 wb nbusgreledg 3ad2ant1 mpbird ) AEFZBGUAHFZIZCBAUBJFZB
      GKJZCHZLCHZSZUCZBMKJZCHZAWFUDJFZWJWFNZAUEHZFZWHWEWJNZWLWMWHWOWFWJNZWLWGWB
      WOWPSWCWEWFWJUFUGWFWJUHUIWBWCWOWMFZWGWAWCWQVTWAWCIWEWDMOJZCHZNZWOWMWAWTWO
      SWCWAWSWJWEWAWRWICWAWIBGMKJZKJWRMXABKUKUJWABGMGBULWAUMWAUNUOUPPUQQWAWDLWI
      URJZFDVMZCHZXCMOJZCHZNZWMFZDXBUSZWTWMFZWCBUTWCCAVBHZVAFCVCHBSIXICVDHWFNWM
      FDWMABXKCXKTWMTZVEVFXHXJDWDXBXCWDSZXGWTWMXMXDWEXFWSXCWDCVGXMXEWRCXCWDMOVH
      PVIVJVKVNRVLVORWBWCWKWNVPZWGVTXNWAWMAWFWJXLVQQVRVS $.

    $( Lemma for ~ numclwwlk2lem1 .  (Contributed by Alexander van der Vekens,
       3-Oct-2018.)  (Revised by AV, 27-May-2021.) $)
    numclwwlk2lem1lem $p |- ( ( ( N e. NN0 /\ X e. ( Vtx ` G ) )
                   /\ ( W e. ( N WWalksN G ) /\ ( lastS ` W ) =/= ( W ` 0 ) ) )
                          -> ( ( ( W ++ <" X "> ) ` 0 ) = ( W ` 0 )
                               /\ ( ( W ++ <" X "> ) ` N ) =/= ( W ` 0 ) ) ) $=
      ( co wcel cfv cc0 wne wa wceq wi clt wbr simpll adantl adantr mpbird cmin
      c1 cwwlksn clsw cn0 cvtx cconcat cword chash caddc wwlknbp2 s1cl nn0p1gt0
      cs1 wb breq2 ccatfv0 syl3anc oveq1 cc nn0cn pncan1 eqtr2d fveq2d hashneq0
      syl c0 bicomd ccatval1lsw neeq1d biimpd com23 imp32 jca exp32 imp impcom
      ex ) CBAUAEFZCUBGZHCGZIZJBUCFZDAUDGZFZJZHCDULZUEEZGVSKZBWFGZVSIZJZVQVTWDW
      JLZVQCWBUFZFZCUGGZBTUHEZKZJZVTWKLABCUIWQVTWDWJWQVTWDJZJZWGWIWSWMWEWLFZHWN
      MNZWGWMWPWROWRWTWQWDWTVTWCWTWADWBUJPZPPWSXAHWOMNZWRXCWQWDXCVTWAXCWCBUKQZP
      PWQXAXCUMZWRWPXEWMWNWOHMUNPZQRCWEWBUOUPWQVTWDWIWQWDVTWIWQWDVTWILWQWDJZVTW
      IXGVRWHVSXGWHWNTSEZWFGZVRXGBXHWFXGXHWOTSEZBWQXHXJKZWDWPXKWMWNWOTSUQPQWDXJ
      BKZWQWAXLWCWABURFXLBUSBUTVDQPVAVBXGWMWTCVEIZXIVRKWMWPWDOWDWTWQXBPXGXMXAXG
      XAXCWDXCWQXDPWQXEWDXFQRWQXMXAUMZWDWMXNWPWMXAXMCWLVCVFQQRCWEWBVGUPVAVHVIVP
      VJVKVLVMVDVNVO $.
  $}

  $( Lemma 2 for ~ extwwlkfab .  (Contributed by Alexander van der Vekens,
     15-Sep-2018.)  (Revised by AV, 28-May-2021.)  (Revisedby AV,
     13-Feb-2022.) $)
  extwwlkfablem $p |- ( ( N e. ( ZZ>= ` 3 ) /\ w e. ( N ClWWalksN G )
                             /\ ( w ` ( N - 2 ) ) = ( w ` 0 ) )
          -> ( w substr <. 0 , ( N - 2 ) >. ) e. ( ( N - 2 ) ClWWalksN G ) ) $=
    ( c3 cuz cfv wcel cv cclwwlksn co c2 cmin cc0 wceq w3a cn c1 wa cz syl 1nn0
    cwwlksn cop csubstr uz3m2nn eluzelz cn0 eluzmn sylancl cc zcn sub1m1 eqcomd
    peano2zm fveq2d eleqtrrd jca 3ad2ant1 eluzge3nn anim1i clwwlksnwwlksn simp3
    3adant3 clwwlkinwwlk syl3anc ) CDEFGZAHZCBIJGZCKLJZVGFMVGFNZOZVIPGZCQLJZVIE
    FZGZRZVGVMBUBJGZVJVGMVIUCUDJVIBIJGVFVHVPVJVFVLVOCUEVFCSGZVODCUFVRVMVMQLJZEF
    ZVNVRVMSGQUGGVMVTGCUNUAVMQUHUIVRVIVSEVRVSVIVRCUJGVSVINCUKCULTUMUOUPTUQURVKC
    PGZVHRZVQVFVHWBVJVFWAVHCUSUTVCBCVGVATVFVHVJVBBVMVIVGVDVE $.

  $( Lemma 1 for ~ numclwwlkovf2ex :  Transformation of a special half-open
     integer range into a union of a smaller half-open integer range and an
     unordered pair.  (Contributed by AV, 22-Sep-2018.)  (Revised by AV,
     26-Jan-2022.) $)
  numclwwlkovf2exlem1 $p |- ( ( N e. ( ZZ>= ` 3 ) /\ ( # ` W ) = ( N - 2 ) )
                             -> ( 0 ..^ ( ( ( # ` W ) + 2 ) - 1 ) )
                                = ( ( 0 ..^ ( ( # ` W ) - 1 ) )
                                    u. { ( ( # ` W ) - 1 ) , ( # ` W ) } ) ) $=
    ( c3 cuz cfv wcel c2 cmin co wceq cc0 caddc c1 cfzo cpr cun 2cnd adantr cn0
    cc chash wa eluzelcn subcld eleq1 adantl mpbird 1cnd addsubd oveq1 uznn0sub
    oveq2d subsub4d 2p1e3 oveq2i syl6eq nn0uz eqcomi 3eltr4d eqeltrd fzosplitpr
    wb a1i syl npcand preq2d uneq2d 3eqtrd ) ACDEFZBUAEZAGHIZJZUBZKVJGLIMHIZNIK
    VJMHIZGLIZNIZKVONIZVOVOMLIZOZPZVRVOVJOZPVMVNVPKNVMVJGMVMVJTFZVKTFZVIWDVLVIA
    GCAUCZVIQZUDRVLWCWDVBVIVJVKTUEUFUGZVMQVMUHZUIULVMVOKDEZFVQWAJVMVOVKMHIZWIVL
    VOWJJVIVJVKMHUJUFVIWJWIFVLVIACHIZSWJWICAUKVIWJAGMLIZHIWKVIAGMWEWFVIUHUMWLCA
    HUNUOUPWISJVISWIUQURVCUSRUTKVOVAVDVMVTWBVRVMVSVJVOVMVJMWGWHVEVFVGVH $.

  ${
    $d E i $.  $d V i $.  $d W i $.  $d X i $.  $d Y i $.
    numclwwlkovf2exlem2.v $e |- V = ( Vtx ` G ) $.
    numclwwlkovf2exlem2.e $e |- E = ( Edg ` G ) $.
    $( Lemma 2 for ~ numclwwlkovf2ex :  Transformation of a walk and two edges
       into a walk extended by two vertices/edges.  (Contributed by AV,
       22-Sep-2018.)  (Revised by AV, 27-Jan-2022.) $)
    numclwwlkovf2exlem2 $p |- ( ( ( ( X e. V /\ Y e. V /\ N e. ( ZZ>= ` 3 ) )
                   /\ ( ( W e. Word V /\ A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) )
                                         { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E
                   /\ { ( lastS ` W ) , ( W ` 0 ) } e. E )
                   /\ ( # ` W ) = ( N - 2 ) /\ ( W ` 0 ) = X ) )
                   /\ { X , Y } e. E )
               -> A. i e. ( ( 0 ..^ ( ( # ` W ) - 1 ) )
                            u. { ( ( # ` W ) - 1 ) , ( # ` W ) } )
                  { ( ( ( W ++ <" X "> ) ++ <" Y "> ) ` i ) ,
                    ( ( ( W ++ <" X "> ) ++ <" Y "> ) ` ( i + 1 ) ) } e. E ) $=
      ( wcel cfv w3a c1 co cpr cmin wceq wa wi c3 cuz cword cv caddc chash cfzo
      cc0 wral clsw c2 cs1 cconcat cun cn0 clt wbr simpll elfzonn0 adantl lencl
      cn elfzo0 cr nn0re adantr peano2rem 3jca ltm1d lttr expcomd sylc impancom
      syl 3adant2 sylbi syl5com imp simplr ccat2s1fvw syl31anc eqcomd peano2nn0
      simpl 3ad2ant1 1red biimprd mpan9 adantlr syl2anc preq12d eleq1d ralbidva
      ltaddsubd 3adant3 com12 a1dd imp31 ax-1 oveq1 eluzelcn 2cnd 1cnd subsub4d
      biimpd 2p1e3 a1i oveq2d uznn0sub eqeltrd ancoms ex simpl2 cc nn0cn ax-1cn
      npcan sylancl fveq2d eqid 2a1i imdistani simp2l ccatw2s1p1 syl12anc eqtrd
      simp2r expcom com23 exp520 com14 3ad2ant3 syld com25 3imp impcom sylanbrc
      lsw mpanl2 fveq2 ccatw2s1p2 com13 simpr ovex fvex ralpr ralunb ) GEKZHEKZ
      DUAUBLKZMZFEUCZKZAUDZFLZUUNNUEOZFLZPZBKZAUHFUFLZNQOZUGOZUIZFUJLZUHFLZPZBK
      ZMZUUTDUKQOZRZUVEGRZMZSZGHPZBKZSZUUNFGULUMOHULUMOZLZUUPUVQLZPZBKZAUVBUIZU
      WAAUVAUUTPZUIZUWAAUVBUWCUNUIUUKUVLUVOUWBUUHUUIUVLUVOUWBTTUUJUUHUUISZUVLUW
      BUVOUVLUWEUWBUVHUVJUWEUWBTZUVKUUMUVCUWFUVGUUMUWEUVCUWBUUMUWESZUVCUWBUWGUU
      SUWAAUVBUWGUUNUVBKZSZUURUVTBUWIUUOUVRUUQUVSUWIUVRUUOUWIUUMUUNUOKZUUNUUTUP
      UQZUWEUVRUUORUUMUWEUWHURUWHUWJUWGUUNUVAUSUTUWGUWHUWKUUMUWHUWKTUWEUUMUUTUO
      KZUWHUWKEFVAZUWHUWJUVAVBKZUUNUVAUPUQZMZUWLUWKTZUUNUVAVCZUWJUWOUWQUWNUWJUW
      LUWOUWKUWJUWLSZUUNVDKZUVAVDKZUUTVDKZMZUVAUUTUPUQZUWOUWKTUWSUWTUXAUXBUWJUW
      TUWLUUNVEVFZUWLUXAUWJUWLUXBUXAUUTVEZUUTVGVNUTUWLUXBUWJUXFUTZVHUWLUXDUWJUW
      LUUTUXFVIUTUXCUWOUXDUWKUUNUVAUUTVJVKVLVMVOVPVQVFVRUUMUWEUWHVSZUUNEFGHVTWA
      WBUWIUVSUUQUWIUUMUUPUOKZUUPUUTUPUQZMZUWEUVSUUQRUUMUWHUXKUWEUUMUWHSUUMUXIU
      XJUUMUWHWDUWHUXIUUMUWHUWPUXIUWRUWJUWNUXIUWOUUNWCWEVPUTUUMUWLUWHUXJUWMUWHU
      WPUWLUXJTZUWRUWJUWOUXLUWNUWJUWLUWOUXJUWSUXJUWOUWSUUNNUUTUXEUWSWFUXGWNWGVM
      VOVPWHVHWIUXHUUPEFGHVTWJWBWKWLWMXEVMWOWEWPWQWOWRUVPUVAUVQLZUVANUEOZUVQLZP
      ZBKZUUTUVQLZUUTNUEOZUVQLZPZBKZUWDUVMUVOUXQUVLUUKUVOUXQTZUVHUVJUVKUUKUYCTZ
      UUMUVGUVJUVKUYDTTUVCUUKUVJUVKUUMUVGSZUYCUUKUVOUVKUYEUVJUXQUUKUVOUWEUVKUYE
      UVJUXQTZTTZUUHUUIUVOUWETUUJUWEUVOWSWOUUJUUHUWEUYGTUUIUYEUWEUVKUUJUYFUYEUW
      EUVKUUJUVJUXQUYEUWEUVKMZUUJUVJSZSZUXPUVAFLZGPZBUYJUXMUYKUXOGUYJUUMUVAUOKZ
      UXDMZUWEUXMUYKRUYHUYIUYNUYEUWEUYIUYNTZUVKUUMUYOUVGUUMUYIUYNUUMUYISZUUMUYM
      UXDUUMUYIWDUYIUYMUUMUVJUUJUYMUVJUUJSUVAUVINQOZUOUVJUVAUYQRUUJUUTUVINQWTVF
      UUJUYQUOKUVJUUJUYQDUKNUEOZQOZUOUUJDUKNUADXAUUJXBUUJXCXDUUJUYSDUAQOUOUUJUY
      RUADQUYRUARUUJXFXGXHUADXIXJXJUTXJXKUTUYPUUTUUMUXBUYIUUMUWLUXBUWMUXFVNVFVI
      VHXLVFWEVRUYEUWEUVKUYIXMUVAEFGHVTWJUYHUXOGRUYIUYHUXOUXRGUYHUXNUUTUVQUYEUW
      EUXNUUTRZUVKUUMUYTUVGUUMUWLUYTUWMUWLUUTXNKNXNKUYTUUTXOXPUUTNXQXRVNVFWEXSU
      YHUUMUUTUUTRZSZUUHUUIUXRGRZUYEUWEVUBUVKUUMUVGVUAVUAUUMUVGUUTXTZYAYBWEUYEU
      UHUUIUVKYCUYEUUHUUIUVKYGUUTEFGHYDZYEYFVFWKUYHUYLBKZUYIUYEUVKVUFUWEUUMUVGU
      VKVUFUUMUVKUVGVUFUVKUUMUVGVUFTUVKUUMSZUVGVUFVUGUVFUYLBVUGUVDUYKUVEGUUMUVD
      UYKRUVKFUULYRUTUVKUUMWDWKWLXEYHYIWRVOVFXJYJYKYLYMYNYKVOYOYPVRUVPUYAUVNBUU
      KUVLUVOUYAUVNRZUUHUUIUVLUVOVUHTZTUUJUVLUWEVUIUVHUVJUWEVUITZUVKUUMUVCVUJUV
      GUVOUWEUUMVUHUWEUUMVUHTTUVOUUMUWEVUHUWGUXRGUXTHUUMVUAUWEVUCVUDVUEYSUUMVUA
      UWEUXTHRVUDUUTEFGHUUAYSWKYHXGUUBWEWEWPWOWRUVMUVOUUCXJUWAUXQUYBAUVAUUTUUTN
      QUUDFUFUUEUUNUVARZUVTUXPBVUKUVRUXMUVSUXOUUNUVAUVQYTVUKUUPUXNUVQUUNUVANUEW
      TXSWKWLUUNUUTRZUVTUYABVULUVRUXRUVSUXTUUNUUTUVQYTVULUUPUXSUVQUUNUUTNUEWTXS
      WKWLUUFYQUWAAUVBUWCUUGYQ $.
  $}

  ${
    $d G n v w $.  $d N n v w $.  $d V n v $.  $d X n v w $.
    numclwwlkovf.f $e |- F = ( v e. V , n e. NN
                            |-> { w e. ( n ClWWalksN G ) | ( w ` 0 ) = v } ) $.
    $( Value of operation ` F ` , mapping a vertex ` v ` and a positive integer
       ` n ` to the closed walks from ` v ` to ` v ` of length ` n ` ,
       according to definition 5 in [Huneke] p. 2:  "For a fixed vertex v, let
       f(n) be the number of walks from v to v of length n".  Huneke's f(n),
       however, corresponds to ` ( # `` ( v F n ) ) ` by the definition of
       ` F ` .

       ` ( X F N ) ` is not defined for ` N = 0 ` , since closed walks of
       length 0 cannot be represented by a sequence (word) of vertices, see
       ~ clwwlksn0 . ` ( X F N ) = (/) ` could have been explicitly defined,
       but the operation value for operators for which the operation is not
       defined is already ` (/) ` by definition (see ~ numclwwlkovf0 ),
       therefore such an extension of the definition of ` F ` is not necessary.
       (Contributed by Alexander van der Vekens, 14-Sep-2018.)  (Revised by AV,
       28-May-2021.) $)
    numclwwlkovf $p |- ( ( X e. V /\ N e. NN )
                 -> ( X F N ) = { w e. ( N ClWWalksN G ) | ( w ` 0 ) = X } ) $=
      ( cn cc0 cv cfv wceq cclwwlksn co crab wa oveq1 adantl wb eqeq2 rabeqbidv
      adantr ovex rabex ovmpt2a ) BCHFGJKALMZBLZNZACLZEOPZQUHHNZAFEOPZQDUIHNZUK
      FNZRUJUMAULUNUPULUNNUOUKFEOSTUOUJUMUAUPUIHUHUBUDUCIUMAUNFEOUEUFUG $.

    $( Value of operation ` F ` for the second operand being 0: there is no
       closed walk of length zero starting from vertex ` X ` .  See also
       comment for ~ numclwwlkovf .  (Contributed by AV, 17-Feb-2022.) $)
    numclwwlkovf0 $p |- ( X F 0 ) = (/) $=
      ( wcel cc0 cn wa wn co c0 wceq 0nnn intnan cv cfv cclwwlksn crab mpt2ndm0
      ax-mp ) GFIZJKIZLMGJDNOPUFUEQRBCJASTBSPACSEUANUBDGJFKHUCUD $.

    numclwwlkffin.v $e |- V = ( Vtx ` G ) $.
    $( In a finite graph, the value of operation ` F ` is also finite.
       (Contributed by Alexander van der Vekens, 26-Sep-2018.)  (Revised by AV,
       28-May-2021.) $)
    numclwwlkffin $p |- ( ( V e. Fin /\ X e. V /\ N e. NN )
                          -> ( X F N ) e. Fin ) $=
      ( cfn wcel cn w3a co cc0 cv cfv wceq cclwwlksn numclwwlkovf eleq1i biimpi
      crab 3adant1 cvtx 3ad2ant1 clwwlksnfi rabfi 3syl eqeltrd ) GKLZHGLZFMLZNZ
      HFDOZPAQRHSZAFETOZUDZKUMUNUPUSSULABCDEFGHIUAUEUOEUFRZKLZURKLUSKLULUMVAUNU
      LVAGUTKJUBUCUGEFUHUQAURUIUJUK $.

    $( In a finite graph, the value of operation ` F ` is also finite.
       (Contributed by Alexander van der Vekens, 26-Sep-2018.)  (Revised by AV,
       2-Jun-2021.)  (Proof shortened by AV, 17-Feb-2022.) $)
    numclwwlkffin0 $p |- ( ( V e. Fin /\ X e. V /\ N e. NN0 )
                           -> ( X F N ) e. Fin ) $=
      ( cn0 wcel cfn co cn cc0 wceq wo wi c0 numclwwlkffin numclwwlkovf0 syl6eq
      elnn0 3exp com13 oveq2 0fin syl6eqel 2a1d jaoi sylbi 3imp31 ) FKLZHGLZGML
      ZHFDNZMLZUNFOLZFPQZRUOUPURSSZFUDUSVAUTUPUOUSURUPUOUSURABCDEFGHIJUAUEUFUTU
      RUOUPUTUQTMUTUQHPDNTFPHDUGABCDEGHIUBUCUHUIUJUKULUM $.

    $d W i $.  $d W w $.  $d G i $.
    numclwwlkovfel.e $e |- E = ( Edg ` G ) $.
    $( Characterization of an element of the value of operation ` F ` .
       (Contributed by Alexander van der Vekens, 20-Sep-2018.)  (Revised by AV,
       28-May-2021.)  (Revised by AV, 13-Feb-2022.) $)
    numclwwlkovfel $p |- ( ( N e. NN /\ X e. V ) -> ( W e. ( X F N )
                     <-> ( ( W e. Word V /\ A. i e. ( 0 ..^ ( ( # ` W ) - 1 ) )
                                     { ( W ` i ) , ( W ` ( i + 1 ) ) } e. E
                             /\ { ( lastS ` W ) , ( W ` 0 ) } e. E )
                           /\ ( # ` W ) = N /\ ( W ` 0 ) = X ) ) ) $=
      ( wcel wa co cc0 cfv wceq cn cv cclwwlksn crab cword caddc cpr chash cmin
      c1 cfzo wral clsw numclwwlkovf ancoms eleq2d wb isclwwlksnx adantr anbi1d
      w3a fveq1 eqeq1d elrab df-3an 3bitr4g bitrd ) HUAOZKIOZPZJKHFQZOJRAUBZSZK
      TZAHGUCQZUDZOZJIUEOCUBZJSVRUJUFQJSUGEOCRJUHSZUJUIQUKQULJUMSRJSZUGEOVAZVSH
      TZVTKTZVAZVJVKVPJVIVHVKVPTABDFGHIKLUNUOUPVJJVOOZWCPWAWBPZWCPVQWDVJWEWFWCV
      HWEWFUQVICEGHIJMNURUSUTVNWCAJVOVLJTVMVTKRVLJVBVCVDWAWBWCVEVFVG $.

    $d V w $.
    $( Value of operation ` F ` for the second operand being 1: this is the set
       of closed walks of length one starting from vertex ` X ` .  (Contributed
       by AV, 11-Feb-2022.) $)
    numclwwlkovf1 $p |- ( X e. V -> ( X F 1 )
                         = { w e. Word V | ( w = <" X "> /\ { X } e. E ) } ) $=
      ( wcel c1 cc0 cfv wceq wa chash ad2antrl wi co cv cclwwlksn cs1 csn cword
      crab cn 1nn numclwwlkovf mpan2 cvtx clwwlksn1 anbi1i eqcomi wrdeqi eleq2i
      cedg w3a biimpi 3ad2ant2 adantr simpl1 3jca adantl wb wrdl1s1 mpbird sneq
      simpr eleq12d biimpd com13 3ad2ant3 impcom jca32 fveq2 s1len syl6eq fveq1
      a1i imp s1fv sylan9eq eqcomd sneqd impancom ex jca syl5bb rabbidva2 eqtrd
      impbida ) HGLZHMEUAZNAUBZOZHPZAMFUCUAZUGZWPHUDZPZHUEZDLZQZAGUFZUGWNMUHLWO
      WTPUIABCEFMGHIUJUKWNWRXEAWSXFWPWSLZWRQWPROZMPZWPFULOZUFZLZWQUEZFUROZLZUSZ
      WRQZWNWPXFLZXEQZXGXPWRFWPUMUNWNXQXSWNXQQZXRXBXDXPXRWNWRXLXIXRXOXLXRXKXFWP
      XJGGXJJUOUPUQUTVAZSXTXBXRXIWRUSZXQYBWNXQXRXIWRXPXRWRYAVBXIXLXOWRVCXPWRVJV
      DVEWNXBYBVFXQHGWPVGVBVHXQWNXDXPWRWNXDTZXOXIWRYCTXLWNWRXOXDWRXOXDTTWNWRXOX
      DWRXMXCXNDWQHVIXNDPWRDXNKUOWAVKVLWAVMVNWBVOVPWNXSQZXPWRYDXIXLXOXSXIWNXBXI
      XRXDXBXHXAROMWPXARVQHVRVSSVEXRXLWNXEXRXLXFXKWPGXJJUPUQUTSXSWNXOXEWNXOTXRX
      BWNXDXOXBWNQZXDXOYEXCXMDXNYEHWQYEWQHXBWNWQNXAOHNWPXAVTHGWCWDZWEWFDXNPYEKW
      AVKVLWGVEVOVDXSWNWRXBWNWRTXRXDXBWNWRYFWHSVOWIWMWJWKWL $.

    $d E w $.
    $( If there is a loop at vertex ` X ` , the set of (closed) walks from
       vertex ` X ` to ` X ` of length 1 (represented by words) is a singleton
       containing the singleton word consisting of ` X ` .  (Contributed by AV,
       11-Feb-2022.) $)
    clwwlk1loop $p |- ( ( X e. V /\ { X } e. E )
                        -> ( X F 1 ) = { <" X "> } ) $=
      ( wcel csn wa wceq wb adantr mpbird cab a1i c1 co cs1 cv cword wal simprl
      s1cl eleq1 adantl anim1i ancomd jca ex impbid2 alrimiv crab numclwwlkovf1
      simpr eqeq1d df-rab df-sn eqeq12i abbi bicomi 3bitrd ) HGLZHMDLZNZHUAEUBZ
      HUCZMZOZAUDZGUEZLZVNVKOZVHNZNZVQPZAUFZVIVTAVIVSVQVPVQVHUGVIVQVSVIVQNZVPVR
      WBVPVKVOLZVIWCVQVGWCVHHGUHQQVQVPWCPVIVNVKVOUIUJRWBVHVQVIVHVQVGVHUSUKULUMU
      NUOUPVIVMVRAVOUQZVLOZVSASZVQASZOZWAVIVJWDVLVGVJWDOVHABCDEFGHIJKURQUTWEWHP
      VIWDWFVLWGVRAVOVAAVKVBVCTWHWAPVIWAWHVSVQAVDVETVFR $.

    $( If there is no loop at vertex ` X ` , the set of (closed) walks from
       vertex ` X ` to ` X ` of length 1 (represented by words) is empty.
       (Contributed by AV, 11-Feb-2022.) $)
    clwwlk1nloop $p |- ( ( X e. V /\ { X } e/ E ) -> ( X F 1 ) = (/) ) $=
      ( wcel csn wnel wa wceq c0 adantr wn sylibr c1 co cs1 cword numclwwlkovf1
      cv crab wral wo df-nel biimpi adantl olcd ianor ralrimiva rabeq0 eqtrd )
      HGLZHMZDNZOZHUAEUBZAUFZHUCPZUSDLZOZAGUDZUGZQURVBVHPUTABCDEFGHIJKUERVAVFSZ
      AVGUHVHQPVAVIAVGVAVCVGLZOVDSZVESZUIZVIVAVMVJVAVLVKUTVLURUTVLUSDUJUKULUMRV
      DVEUNTUOVFAVGUPTUQ $.

    $( The set of (closed) walks from vertex ` X ` to ` X ` of length 1
       (represented by words) is a singleton containing the singleton word
       consisting of ` X ` iff there is a loop at ` X ` .  (Contributed by AV,
       11-Feb-2022.) $)
    clwwlk1 $p |- ( X e. V -> ( ( X F 1 ) = { <" X "> } <-> { X } e. E ) ) $=
      ( wcel c1 co cs1 csn wceq wn c0 ex df-nel wa clwwlk1nloop cvv cword s1cli
      wnel elexi snnz nesymi eqeq1 mtbiri syl syl5bir con4d clwwlk1loop impbid
      ) HGLZHMENZHOZPZQZHPZDLZURVDVBVDRVCDUGZURVBRZVCDUAURVEVFURVEUBUSSQZVFABCD
      EFGHIJKUCVGVBSVAQVASUTUTUDUEHUFUHUIUJUSSVAUKULUMTUNUOURVDVBABCDEFGHIJKUPT
      UQ $.

    $( There is at most one (closed) walk from vertex ` X ` to ` X ` of length
       1 (represented by words).  (Contributed by AV, 11-Feb-2022.) $)
    numclwwlkle1 $p |- ( X e. V -> ( # ` ( X F 1 ) ) <_ 1 ) $=
      ( wcel c1 chash cfv cle csn wa wceq c0 co wbr cs1 clwwlk1loop fveq2 cword
      cvv s1cli hashsng ax-mp syl6eq 1le1 syl6eqbr wnel clwwlk1nloop hash0 0le1
      syl cc0 pm2.61danel ) HGLZHMEUAZNOZMPUBZHQZDVAVEDLRVBHUCZQZSZVDABCDEFGHIJ
      KUDVHVCMMPVHVCVGNOZMVBVGNUEVFUGUFZLVIMSHUHVFVJUIUJUKULUMURVAVEDUNRVBTSZVD
      ABCDEFGHIJKUOVKVCUSMPVKVCTNOUSVBTNUEUPUKUQUMURUT $.

    $( Value of operation ` F ` for the second operand being 2: this is the set
       of closed walks of length two starting from vertex ` X ` .  (Contributed
       by Alexander van der Vekens, 19-Sep-2018.)  (Revised by AV,
       12-Feb-2022.) $)
    numclwwlkovf2 $p |- ( X e. V -> ( X F 2 ) = { w e. Word V | ( ( # ` w ) = 2
                    /\ { ( w ` 0 ) , ( w ` 1 ) } e. E /\ ( w ` 0 ) = X ) } ) $=
      ( wcel c2 co cfv wceq crab wa anbi1i bitri cc0 cv cclwwlksn chash cpr w3a
      c1 cword cn 2nn numclwwlkovf mpan2 cvtx cedg wb clwwlksn2 a1i anass ancom
      df-3an eqcomi wrdeqi eleq2i anbi12i anbi2i 3bitr4i syl6bb rabbidva2 eqtrd
      ) HGLZHMENZUAAUBZOZHPZAMFUCNZQZVLUDOMPZVMUGVLOUEZDLZVNUFZAGUHZQVJMUILVKVP
      PUJABCEFMGHIUKULVJVNVTAVOWAVJVLVOLZVNRZVQVLFUMOZUHZLZVRFUNOZLZUFZVNRZVLWA
      LZVTRZWCWJUOVJWBWIVNFVLUPSUQWKVQVSRZRZVNRWKWMVNRZRWJWLWKWMVNURWIWNVNWIWKV
      QRZVSRZWNWIVQWFRZWHRWQVQWFWHUTWRWPWHVSWRWFVQRWPVQWFUSWFWKVQWEWAVLWDGGWDJV
      AVBVCSTWGDVRDWGKVAVCVDTWKVQVSURTSVTWOWKVQVSVNUTVEVFVGVHVI $.

    $( In a ` K `-regular graph, there are ` K ` closed walks of length 2
       starting at a fixed vertex.  (Contributed by Alexander van der Vekens,
       19-Sep-2018.)  (Revised by AV, 28-May-2021.) $)
    numclwwlkovf2num $p |- ( ( G RegUSGraph K /\ X e. V )
                             -> ( # ` ( X F 2 ) ) = K ) $=
      ( crusgr wcel c2 chash cfv wceq w3a crab wbr wa co cv cc0 cedg cword eqid
      cpr numclwwlkovf2 adantl fveq2d 3ancomb a1i rabbiia rusgrnumwrdl2 syl5eqr
      c1 wb fveq2i eqtrd ) FGMUAZIHNZUBZIOEUCZPQAUDZPQORZUEVFQZURVFQUIFUFQZNZVH
      IRZSZAHUGZTZPQZGVDVEVNPVCVEVNRVBABCVIEFHIJKVIUHUJUKULVDVOVGVKVJSZAVMTZPQG
      VQVNPVPVLAVMVPVLUSVFVMNVGVKVJUMUNUOUTAIFGHKUPUQVA $.

    $d E i $.  $d V i $.  $d X i $.  $d Y i $.
    $( Extending a closed walk starting at a fixed vertex by an additional edge
       (forth and back).  (Contributed by AV, 22-Sep-2018.)  (Revised by AV,
       18-Feb-2022.) $)
    numclwwlkovf2ex $p |- ( ( ( X e. V /\ Y e. V /\ N e. ( ZZ>= ` 3 ) )
                                 /\ { X , Y } e. E /\ W e. ( X F ( N - 2 ) ) )
                   -> ( ( W ++ <" X "> ) ++ <" Y "> ) e. ( N ClWWalksN G ) ) $=
      ( vi wcel cfv co cc0 wceq c3 cuz w3a cpr cmin cs1 cconcat cclwwlksn cword
      c2 cv c1 caddc chash cfzo wral clsw wa wi uz3m2nn 3ad2ant3 numclwwlkovfel
      cn wb simp1 syl2anc simpr11 adantr simpll1 simpll2 ccatw2s1cl syl3anc cun
      numclwwlkovf2exlem2 simp11 ad2antlr ccatw2s1len oveq1d oveq2d simp3 simp2
      anim12i numclwwlkovf2exlem1 syl raleqdv mpbird ccatws1cl lswccats1 stoic3
      eqtrd clt wbr nngt0d breq2 syl5ibr 3ad2ant2 com12 imp ccat2s1fst syl22anc
      preq12d prcom eleq1i biimpi adantl preq2 eleq1d eqeltrd oveq1 cc eluzelcn
      3jca 2cn npcan sylancl sylan9eq ex jca exp31 sylbid eluzge3nn isclwwlksnx
      com23 3imp 3ad2ant1 ) JHPZKHPZGUAUBQPZUCZJKUDZDPZIJGUJUERZERPZUCIJUFUGRZK
      UFUGRZGFUHRPZYOHUIZPZOUKZYOQYSULUMRZYOQUDDPZOSYOUNQZULUERZUORZUPZYOUQQZSY
      OQZUDZDPZUCZUUBGTZURZYIYKYMUULYIYMYKUULYIYMIYQPZYSIQYTIQUDDPOSIUNQZULUERZ
      UORZUPZIUQQSIQZUDDPZUCZUUNYLTZUURJTZUCZYKUULUSYIYLVCPZYFYMUVCVDYHYFUVDYGG
      UTZVAYFYGYHVEABOCDEFYLHIJLMNVBVFYIUVCYKUULYIUVCURZYKURZUUJUUKUVGYRUUEUUIU
      VGUUMYFYGYRUVFUUMYKUUMUUQUUSUVAUVBYIVGVHYFYGYHUVCYKVIZYFYGYHUVCYKVJZHIJKV
      KVLUVGUUEUUAOUUPUUOUUNUDVMZUPODFGHIJKMNVNUVGUUAOUUDUVJUVGUUDSUUNUJUMRZULU
      ERZUORZUVJUVGUUCUVLSUOUVGUUBUVKULUEUVGUUMYFYGUUBUVKTUVCUUMYIYKUUMUUQUUSUV
      AUVBVOVPZUVHUVIHIJKVQVLZVRVSUVGYHUVAURZUVMUVJTUVFUVPYKYIYHUVCUVAYFYGYHVTU
      UTUVAUVBWAWBVHGIWCWDWJWEWFUVGUUHKUURUDZDUVGUUFKUUGUURUVGUUMYFYGUUFKTZUVNU
      VHUVIUUMYFYNYQPYGUVRHIJWGKHYNWHWIVLUVGUUMSUUNWKWLZYFYGUUGUURTUVNUVFUVSYKY
      IUVCUVSYHYFUVCUVSUSYGUVCYHUVSUVAUUTYHUVSUSUVBYHUVSUVASYLWKWLYHYLUVEWMUUNY
      LSWKWNWOWPWQVAWRVHUVHUVIHIJKWSWTXAUVGUVQDPZKJUDZDPZYKUWBUVFYKUWBYJUWADJKX
      BXCXDXEUVCUVTUWBVDZYIYKUVBUUTUWCUVAUVBUVQUWADUURJKXFXGVAVPWFXHXLUVGUUBUVK
      GUVOUVFUVKGTZYKYIUVCUWDYHYFUVCUWDUSYGUVCYHUWDUVAUUTYHUWDUSUVBUVAYHUWDUVAY
      HUVKYLUJUMRZGUUNYLUJUMXIYHGXJPUJXJPUWEGTUAGXKXMGUJXNXOXPXQWPWQVAWRVHWJXRX
      SXTYCYDYIYKYPUULVDZYMYHYFUWFYGYHGVCPUWFGYAODFGHYOMNYBWDVAYEWF $.
  $}

  ${
    $d G n v w $.  $d N n v w $.  $d V n v $.  $d X n v w $.
    numclwwlkovg.c $e |- C = ( v e. V , n e. ( ZZ>= ` 2 )
                               |-> { w e. ( n ClWWalksN G ) | ( ( w ` 0 ) = v
                                      /\ ( w ` ( n - 2 ) ) = ( w ` 0 ) ) } ) $.
    $( Value of operation ` C ` , mapping a vertex v and an integer n greater
       than 1 to the "closed n-walks v(0) ... v(n-2) v(n-1) v(n) from v = v(0)
       = v(n) with v(n-2) = v" according to definition 6 in [Huneke] p. 2.
       (Contributed by Alexander van der Vekens, 14-Sep-2018.)  (Revised by AV,
       29-May-2021.) $)
    numclwwlkovg $p |- ( ( X e. V /\ N e. ( ZZ>= ` 2 ) )
                         -> ( X C N ) = { w e. ( N ClWWalksN G ) |
                      ( ( w ` 0 ) = X /\ ( w ` ( N - 2 ) ) = ( w ` 0 ) ) } ) $=
      ( c2 cuz cfv cv wceq cmin co wa cclwwlksn crab oveq1 adantl fveq2d eqeq1d
      cc0 eqeq2 bi2anan9 rabeqbidv ovex rabex ovmpt2a ) BDHFGJKLUDAMZLZBMZNZDMZ
      JOPZUKLZULNZQZAUOERPZSULHNZFJOPZUKLZULNZQZAFERPZSCUMHNZUOFNZQUSVEAUTVFVHU
      TVFNVGUOFERTUAVGUNVAVHURVDUMHULUEVHUQVCULVHUPVBUKUOFJOTUBUCUFUGIVEAVFFERU
      HUIUJ $.

    $d W w $.
    $( Characterization of an element of the value of operation ` C ` .
       (Contributed by Alexander van der Vekens, 24-Sep-2018.)  (Revised by AV,
       29-May-2021.) $)
    numclwwlkovgel $p |- ( ( X e. V /\ N e. ( ZZ>= ` 2 ) )
                           -> ( W e. ( X C N ) <-> ( W e. ( N ClWWalksN G )
                     /\ ( W ` 0 ) = X /\ ( W ` ( N - 2 ) ) = ( W ` 0 ) ) ) ) $=
      ( wcel c2 cuz cfv wa co cclwwlksn cc0 wceq fveq1 cmin w3a cv numclwwlkovg
      crab eleq2d eqeq1d eqeq12d anbi12d elrab syl6bb 3anass syl6bbr ) IGKFLMNK
      OZHIFCPZKZHFEQPZKZRHNZISZFLUAPZHNZUSSZOZOZURUTVCUBUNUPHRAUCZNZISZVAVFNZVG
      SZOZAUQUEZKVEUNUOVLHABCDEFGIJUDUFVKVDAHUQVFHSZVHUTVJVCVMVGUSIRVFHTZUGVMVI
      VBVGUSVAVFHTVNUHUIUJUKURUTVCULUM $.
  $}

  ${
    $( Lemma for ~ numclwlk1lem2foa .  (Contributed by AV, 29-May-2021.) $)
    numclwlk1lem2foalem $p |- ( ( ( W e. Word V /\ ( # ` W ) = ( N - 2 ) )
                                 /\ ( X e. V /\ Y e. V ) /\ N e. ( ZZ>= ` 3 ) )
        -> ( ( ( ( W ++ <" X "> ) ++ <" Y "> ) substr <. 0 , ( N - 2 ) >. ) = W
          /\ ( ( ( W ++ <" X "> ) ++ <" Y "> ) ` ( N - 1 ) ) = Y
          /\ ( ( ( W ++ <" X "> ) ++ <" Y "> ) ` ( N - 2 ) ) = X ) ) $=
      ( wcel cfv c2 cmin co wceq wa c3 w3a cs1 cconcat csubstr c1 s1cl 3adant3
      cword chash cuz cc0 simpl 3anim123i 3expb ccatass oveq1d adantr ccat2s1cl
      cop syl adantl simpr eqcomd swrdccatid syl3anc eqtrd caddc 1e2m1 eluzelcn
      oveq2i 2cnd 1cnd subsubd syl5eq 3ad2ant3 fveq2d ccatw2s1p2 ccatw2s1p1
      3jca ) CBUAZFZCUBGZAHIJZKZLZDBFZEBFZLZAMUCGFZNZCDOZPJEOZPJZUDVPULZQJZCKZA
      RIJZWFGZEKVPWFGDKZVRWAWIWBVRWALZWHCWDWEPJZPJZWGQJZCWMWFWOWGQWMVNWDVMFZWEV
      MFZNZWFWOKVRVSVTWSVRVNVSWQVTWRVNVQUEZDBSEBSUFUGBCWDWEUHUMUIWMVNWNVMFZVPVO
      KZWPCKVRVNWAWTUJWAXAVRBDEUKUNVRXBWAVRVOVPVNVQUOUPUJCWNVPBUQURUSTWCWKVPRUT
      JZWFGZEWCWJXCWFWBVRWJXCKWAWBWJAHRIJZIJXCRXEAIVAVCWBAHRMAVBWBVDWBVEVFVGVHV
      IVRWAXDEKWBVPBCDEVJTUSVRWAWLWBVPBCDEVKTVL $.
  $}

  ${
    $d G n u v w $.  $d N n u v w $.  $d V n v w $.  $d X n u v w $.
    extwwlkfab.v $e |- V = ( Vtx ` G ) $.
    extwwlkfab.f $e |- F = ( v e. V , n e. NN
                            |-> { w e. ( n ClWWalksN G ) | ( w ` 0 ) = v } ) $.
    extwwlkfab.c $e |- C = ( v e. V , n e. ( ZZ>= ` 2 )
                             |-> { w e. ( n ClWWalksN G ) | ( ( w ` 0 ) = v
                                   /\ ( w ` ( n - 2 ) ) = ( w ` 0 ) ) } ) $.
    $( The set ` ( X C N ) ` of closed walks (having a fixed length ` N `
       greater than one and starting at a fixed vertex ` X ` ) with the last
       but two vertex being identical with the first (and therefore last)
       vertex can be constructed from the set ` ( X F ( N - 2 ) ) ` of closed
       walks with length smaller by 2 than the fixed length by appending a
       neighbor of the last vertex and afterwards the last vertex (which is the
       first vertex) itself ("walking forth and back" from the last vertex).
       ` 3 <_ N ` is required since for ` N = 2 ` : ` ( X F ( N - 2 ) ) `
       ` = ( X F 0 ) = (/) ` , see ~ umgrclwwlksge2 stating that a closed walk
       of length 0 is not represented as word, at least not for an undirected
       simple graph.  (Contributed by Alexander van der Vekens, 18-Sep-2018.)
       (Revised by AV, 29-May-2021.)  (Proof shortened by AV, 17-Feb-2022.) $)
    extwwlkfab $p |- ( ( G e. USGraph /\ X e. V /\ N e. ( ZZ>= ` 3 ) )
                       -> ( X C N ) = { w e. ( N ClWWalksN G ) |
                        ( ( w substr <. 0 , ( N - 2 ) >. ) e. ( X F ( N - 2 ) )
                          /\ ( w ` ( N - 1 ) ) e. ( G NeighbVtx X )
                          /\ ( w ` ( N - 2 ) ) = X ) } ) $=
      ( vu wcel cfv co cc0 wceq wa adantl cusgr c3 cuz w3a cv c2 cmin cclwwlksn
      crab csubstr c1 cnbgr uzuzle23 numclwwlkovg sylan2 3adant1 simpll3 simplr
      cop simprr extwwlkfablem syl3anc simpl jca anim1i adantr clwwlksnlbonbgr1
      simp1 syl oveq2 eqcoms eleqtrrd simpr eqtrd 3jca ex wi eqcomd a1d impbid1
      3imp cword chash cfz ige3m2fz eleq2d syl5ibr clwwlknbp syl11 3ad2ant3 imp
      jctild swrd0fv0 eqeq1d anbi2d 3anbi1d wb cn anim2i numclwwlkovf fveq1 weq
      uz3m2nn cbvrabv elrab2 syl6bb bicomd 3bitrd rabbidva ) FUANZIHNZGUBUCONZU
      DZIGCPZQAUEZOZIRZGUFUGPZXOOZXPRZSZAGFUHPZUIZXOQXRUSUJPZIXREPZNZGUKUGPXOOZ
      FIULPZNZXSIRZUDZAYBUIXKXLXNYCRZXJXLXKGUFUCONYLGUMABCDFGHILUNUOUPXMYAYKAYB
      XMXOYBNZSZYAYDXRFUHPZNZXQSZYIYJUDZYPQYDOZIRZSZYIYJUDZYKYNYAYRYNYAYRYNYASZ
      YQYIYJUUCYPXQUUCXLYMXTYPXJXKXLYMYAUQXMYMYAURYNXQXTUTAFGVAVBYAXQYNXQXTVCZT
      VDUUCYGFXPULPZYHUUCXJYMSZYGUUENYNUUFYAXMXJYMXJXKXLVHVEVFFGXOVGVIYAYHUUERZ
      YNXQUUGXTUUGIXPIXPFULVJVKVFTVLYAYJYNYAXSXPIXQXTVMUUDVNTVOVPYQYIYJYAXQYIYJ
      YAVQZVQYPXQUUHYIXQYJYAXQYJSZXQXTXQYJVCZUUIXSIXPXQYJVMUUIXPIUUJVRVNVDVPVST
      WAVTYNYQUUAYIYJYNXQYTYPYNXPYSIYNYSXPYNXOHWBNZXRUKXOWCOZWDPZNZSZYSXPRXMYMU
      UOXLXJYMUUOVQXKUUKUULGRZSZXLUUOYMUUQXLUUNUUKUUPXLUUNVQUUKXLUUNUUPXRUKGWDP
      ZNGWEUUPUUMUURXRUULGUKWDVJWFWGTUUKUUPVCWLFGHXOJWHWIWJWKXRHXOWMVIVRWNWOWPX
      MUUBYKWQYMXMYKUUBXMYFUUAYIYJXMYFYDXQAYOUIZNZUUAXMXKXRWRNZSZYFUUTWQXKXLUVB
      XJXLUVAXKGXCWSUPUVBYEUUSYDABDEFXRHIKWTWFVIQMUEZOZIRZYTMYDYOUUSUVCYDRUVDYS
      IQUVCYDXAWNXQUVEAMYOAMXBXPUVDIQXOUVCXAWNXDXEXFWPXGVFXHXIVN $.

    $( The set ` ( X C 2 ) ` of closed walks having a fixed length 2 and
       starting at a fixed vertex ` X ` with the last but two vertex (which is
       the fixed vertex ` X ` ) being identical with the first (and therefore
       last) vertex is equal to the set ` ( X F 2 ) ` of closed walks with
       length 2 starting at the fixed vertex ` X ` .  (Contributed by AV,
       18-Feb-2022.) $)
    extwwlkfab2 $p |- ( X e. V -> ( X C 2 ) = ( X F 2 ) ) $=
      ( wcel c2 co cc0 cv cfv wceq cclwwlksn crab cuz cz 2z uzid ax-mp wa eqeq2
      cmin anbi1d oveq1 2cn subidi syl6eq fveq2d biantrud bicomd rabeqbidv ovex
      rabbidv rabex ovmpt2 mpan2 cn 2nn numclwwlkovf eqtr4d ) HGLZHMCNZOAPZQZHR
      ZAMFSNZTZHMENZVGMMUAQZLZVHVMRMUBLVPUCMUDUEBDHMGVOVJBPZRZDPZMUHNZVIQVJRZUF
      ZAVSFSNZTVMCVKWAUFZAWCTVQHRZWBWDAWCWEVRVKWAVQHVJUGUIUSVSMRZWDVKAWCVLVSMFS
      UJWFVKWDWFWAVKWFVTOVIWFVTMMUHNOVSMMUHUJMUKULUMUNUOUPUQKVKAVLMFSURUTVAVBVG
      MVCLVNVMRVDABDEFMGHJVEVBVF $.

    $d F w $.  $d W w $.
    $( Characterization of an element of the set ` ( X C N ) ` , i,e., a closed
       walk (having a fixed length ` N ` greater than one and starting at a
       fixed vertex ` X ` ) with the last but two vertex being identical with
       the first (and therefore last) vertex with a construction from the set
       ` ( X F ( N - 2 ) ) ` of closed walks with length smaller by 2 than the
       fixed length by appending a neighbor of the last vertex and afterwards
       the last vertex (which is the first vertex) itself ("walking forth and
       back" from the last vertex).  (Contributed by AV, 22-Feb-2022.) $)
    extwwlkfabel $p |- ( ( G e. USGraph /\ X e. V /\ N e. ( ZZ>= ` 3 ) )
                         -> ( W e. ( X C N ) <-> ( W e. ( N ClWWalksN G )
                     /\ ( ( W substr <. 0 , ( N - 2 ) >. ) e. ( X F ( N - 2 ) )
                          /\ ( W ` ( N - 1 ) ) e. ( G NeighbVtx X )
                          /\ ( W ` ( N - 2 ) ) = X ) ) ) ) $=
      ( wcel cfv w3a co cmin csubstr wceq cusgr c3 cuz cv c2 c1 cnbgr cclwwlksn
      cc0 cop crab extwwlkfab eleq2d oveq1 eleq1d fveq1 eqeq1d 3anbi123d syl6bb
      wa elrab ) FUANJHNGUBUCONPZIJGCQZNIAUDZUIGUERQZUJZSQZJVEEQZNZGUFRQZVDOZFJ
      UGQZNZVEVDOZJTZPZAGFUHQZUKZNIVQNIVFSQZVHNZVJIOZVLNZVEIOZJTZPZUTVBVCVRIABC
      DEFGHJKLMULUMVPWEAIVQVDITZVIVTVMWBVOWDWFVGVSVHVDIVFSUNUOWFVKWAVLVJVDIUPUO
      WFVNWCJVEVDIUPUQURVAUS $.

    $d G i $.  $d W i $.  $d Y w $.
    $( Going forth and back from the end of a (closed) walk: ` W ` represents
       the closed walk p_0, ..., p_(n-3), p_0 = p_(n-2).  With ` X ` = p_(n-2)
       = p_0 and ` Y ` = p_(n-1), ` ( ( W ++ <" X "> ) ++ <" Y "> ) `
       represents the closed walk p_0, ..., p_(n-3), p_(n-2), p_(n-1), p_n =
       p_0.  (Contributed by Alexander van der Vekens, 22-Sep-2018.)  (Revised
       by AV, 29-May-2021.)  (Proof shortened by AV, 23-Feb-2022.) $)
    numclwlk1lem2foa $p |- ( ( G e. USGraph /\ X e. V /\ N e. ( ZZ>= ` 3 ) )
                    -> ( ( W e. ( X F ( N - 2 ) ) /\ Y e. ( G NeighbVtx X ) )
                         -> ( ( W ++ <" X "> ) ++ <" Y "> ) e. ( X C N ) ) ) $=
      ( wcel cfv w3a co wa wi vi cusgr c3 cuz c2 cmin cs1 cconcat cclwwlksn cc0
      cnbgr cop csubstr c1 wceq cpr cedg simpl2 nbgrisvtx ad2antll nbgrsym eqid
      simpl3 nbusgreledg biimpd syl5bi adantld simprl numclwwlkovf2ex syl311anc
      3ad2ant1 cword chash cv caddc cfzo wral clsw cn wb uz3m2nn 3ad2ant3 simp2
      imp numclwwlkovfel syl2anc 3simpa adantr anim12i simpl33 3jca 3exp1 com12
      3adant3 sylbid numclwlk1lem2foalem syl eleq1a idd 3anim123d mpd mpbir2and
      imp32 extwwlkfabel ex ) FUBOZJHOZGUCUDPOZQZIJGUEUFRZERZOZKFJUKRZOZSZIJUGU
      HRKUGUHRZJGCROZXIXOSZXQXPGFUIROZXPUJXJULUMRZXKOZGUNUFRXPPZXMOZXJXPPJUOZQZ
      XRXGKHOZXHJKUPFUQPZOZXLXSXFXGXHXOURXNYFXIXLFJKHLUSZUTXFXGXHXOVCXIXOYHXFXG
      XOYHTXHXFXNYHXLXNJFKUKROZXFYHFJKVAXFYJYHYGFKJYGVBZVDVEVFVGVKWDXIXLXNVHZAB
      DYGEFGHIJKMLYKVIVJXRXTIUOZYBKUOZYDQZYEXRIHVLOZIVMPZXJUOZSZXGYFSZXHQZYOXIX
      LXNUUAXIXLYPUAVNZIPUUBUNVORIPUPYGOUAUJYQUNUFRVPRVQZIVRPUJIPZUPYGOZQZYRUUD
      JUOZQZXNUUATZXIXJVSOZXGXLUUHVTXHXFUUJXGGWAWBXFXGXHWCZABUADYGEFXJHIJMLYKWE
      WFUUHXIUUIUUFYRXIUUITZUUGUUFYRUULYPUUCYRUULTUUEYPYRXIXNUUAYPYRXIQZXNSYSYT
      XHUUMYSXNYPYRXIWGWHUUMXGXNYFXIYPXGYRUUKWBYIWIXFXGXHYPYRXNWJWKWLVKWDWNWMWO
      XCGHIJKWPWQXRYMYAYNYCYDYDXRXLYMYATYLIXKXTWRWQXNYNYCTXIXLKXMYBWRUTXRYDWSWT
      XAXIXQXSYESVTXOABCDEFGHXPJLMNXDWHXBXE $.

    ${
      $d C u $.  $d F u $.  $d V u $.
      numclwwlk.t $e |- T = ( u e. ( X C N )
            |-> <. ( u substr <. 0 , ( N - 2 ) >. ) , ( u ` ( N - 1 ) ) >. ) $.
      $( ` T ` is a function, mapping a closed walk ` u ` (having a fixed
         length ` N ` and starting at a fixed vertex ` X ` ) with the last but
         2 vertex being identical with the first (and therefore last) vertex to
         the pair of the shorter closed walk and its successor in the longer
         closed walk, which must be a neighbor of the first vertex.
         (Contributed by Alexander van der Vekens, 19-Sep-2018.)  (Revised by
         AV, 29-May-2021.)  (Proof shortened by AV, 23-Feb-2022.) $)
      numclwlk1lem2f $p |- ( ( G e. USGraph /\ X e. V /\ N e. ( ZZ>= ` 3 ) )
           -> T : ( X C N ) --> ( ( X F ( N - 2 ) ) X. ( G NeighbVtx X ) ) ) $=
        ( wcel cfv w3a co cmin cusgr c3 cuz cv cc0 c2 cop csubstr cxp cclwwlksn
        c1 cnbgr wceq wa extwwlkfabel simpr1 simpr2 opelxpd syl6bi imp fmptd )
        HUAPKJPIUBUCQPRZCKIDSZCUDZUEIUFTSZUGUHSZIUKTSVDQZUGZKVEGSZHKULSZUIZEVBV
        DVCPZVHVKPZVBVLVDIHUJSPZVFVIPZVGVJPZVEVDQKUMZRUNZVMABDFGHIJVDKLMNUOVRVF
        VGVIVJVNVOVPVQUPVNVOVPVQUQURUSUTOVA $.

      $d W u $.
      $( Value of the function ` T ` .  (Contributed by Alexander van der
         Vekens, 20-Sep-2018.)  (Revised by AV, 29-May-2021.) $)
      numclwlk1lem2fv $p |- ( W e. ( X C N ) -> ( T ` W ) =
                <. ( W substr <. 0 , ( N - 2 ) >. ) , ( W ` ( N - 1 ) ) >. ) $=
        ( cmin co cop csubstr cv cc0 c2 cfv wceq oveq1 fveq1 opeq12d opex fvmpt
        c1 ) CKCUAZUBIUCQRSZTRZIUKQRZULUDZSKUMTRZUOKUDZSLIDREULKUEUNUQUPURULKUM
        TUFUOULKUGUHPUQURUIUJ $.

      $d C a p u $.  $d G a p w $.  $d N a p $.  $d T a p u $.  $d V a p u $.
      $d X a p $.
      $( ` T ` is a 1-1 function.  (Contributed by AV, 26-Sep-2018.)  (Revised
         by AV, 29-May-2021.)  (Proof shortened by AV, 23-Feb-2022.) $)
      numclwlk1lem2f1 $p |- ( ( G e. USGraph /\ X e. V /\ N e. ( ZZ>= ` 3 ) )
                  -> T : ( X C N )
                         -1-1-> ( ( X F ( N - 2 ) ) X. ( G NeighbVtx X ) ) ) $=
        ( wcel cfv co wceq wa vp va cusgr c3 cuz w3a c2 cmin cnbgr cxp wf cv wi
        wf1 numclwlk1lem2f cc0 cop csubstr c1 numclwlk1lem2fv ad2antrl ad2antll
        wral eqeq12d ovex fvex cword chash cclwwlksn wb uzuzle23 numclwwlkovgel
        opth sylan2 clwwlknbp 3ad2ant1 3simpc jca syl6bi 3adant1 eqtr3 ad2antlr
        clsw expcom com12 imp oveq1 opeq2d oveq2d ad3antlr adantl adantr impcom
        biimprcd eqeq2 eqcoms fveq2d eqeq1d biimpcd eqeq1 sylan9eq ad4ant24 lsw
        biimpac eqtr4d eqeq2d mpbird eqeqan12d biimprd adantld 3jca clt simprll
        wbr simpll eluz2b1 breq2 simplbiim 3ad2ant3 2swrd2eqwrdeq exp31 syl2and
        cz syl syl5bi sylbid ralrimivva dff13 sylanbrc ) HUCPZKJPZIUDUEQPZUFZKI
        DRZKIUGUHRZGRHKUIRUJZEUKUAULZEQZUBULZEQZSZYQYSSZUMZUBYNVCUAYNVCYNYPEUNA
        BCDEFGHIJKLMNOUOYMUUCUAUBYNYNYMYQYNPZYSYNPZTZTZUUAYQUPYOUQZURRZIUSUHRZY
        QQZUQZYSUUHURRZUUJYSQZUQZSZUUBUUGYRUULYTUUOUUDYRUULSYMUUEABCDEFGHIJYQKL
        MNOUTVAUUEYTUUOSYMUUDABCDEFGHIJYSKLMNOUTVBVDUUPUUIUUMSZUUKUUNSZTZUUGUUB
        UUIUUKUUMUUNYQUUHURVEUUJYQVFVMYMUUFUUSUUBUMZYMUUDYQJVGZPZYQVHQZISZTZUPY
        QQZKSZYOYQQZUVFSZTZTZUUEYSUVAPZYSVHQZISZTZUPYSQZKSZYOYSQZUVPSZTZTZUUTYK
        YLUUDUVKUMYJYKYLTZUUDYQIHVIRZPZUVGUVIUFZUVKYLYKIUGUEQPZUUDUWEVJIVKZABDF
        HIJYQKNVLVNUWEUVEUVJUWDUVGUVEUVIHIJYQLVOVPUWDUVGUVIVQVRVSVTYKYLUUEUWAUM
        YJUWBUUEYSUWCPZUVQUVSUFZUWAYLYKUWFUUEUWIVJUWGABDFHIJYSKNVLVNUWIUVOUVTUW
        HUVQUVOUVSHIJYSLVOVPUWHUVQUVSVQVRVSVTYMUVKUWATZUUSUUBYMUWJTZUUSTZUUBUVC
        UVMSZYQUPUVCUGUHRZUQZURRZYSUWOURRZSZUWNYQQZUWNYSQZSZYQWCQZYSWCQZSZUFZTZ
        UWLUWMUXEUWJUWMYMUUSUVKUWAUWMUVDUWAUWMUMUVBUVJUWAUVDUWMUVNUVDUWMUMUVLUV
        TUVDUVNUWMUVCUVMIWAWDWBWEWBWFWBUWLUWRUXAUXDUUSUWKUWRUUQUWKUWRUMUURUWKUW
        RUUQUWJUWRUUQVJZYMUVDUXGUVBUVJUWAUVDUWPUUIUWQUUMUVDUWOUUHYQURUVDUWNYOUP
        UVCIUGUHWGZWHZWIUVDUWOUUHYSURUXIWIVDWJWKWNWLWMUWJUXAYMUUSUWJUWSKUWTUVKU
        WSKSZUWAUVEUVJUXJUVDUVJUXJUMUVBUVJUVDUXJUVGUVIUVDUXJUMZUVGUVIUVHKSZUXKU
        VFKUVHWOUVDUXLUXJUVDUVHUWSKUVDYOUWNYQYOUWNSIUVCIUVCUGUHWGWPWQWRWSVSWFWE
        WKWFWLUVDUWAUWTKSUVBUVJUVDUWAUWTUVRKUVDUWNYOYSUXHWQUVTUVRKSZUVOUVSUVQUX
        MUVQUXMVJUVPUVRUVPUVRKWTWPXDWKXAXBXEWBUWKUUSUXDUWKUURUXDUUQUWKUXDUURUWJ
        UXDUURVJYMUVKUWAUXBUUKUXCUUNUVEUXBUUKSUVJUVBUVDUXBUVCUSUHRZYQQUUKYQUVAX
        CUVDUXNUUJYQUVCIUSUHWGWQXAWLUVOUXCUUNSZUVTUVOUXOUXCUVMUSUHRZYSQZSZUVLUX
        RUVNYSUVAXCWLUVNUXOUXRVJUVLUVNUUNUXQUXCUVNUUJUXPYSUUJUXPSIUVMIUVMUSUHWG
        WPWQXFWKXGWLXHWKXIXJWFXKVRUWLUVBUVLUSUVCXLXNZUFZUUBUXFVJUWKUXTUUSUWKUVB
        UVLUXSUVKUVBYMUWAUVBUVDUVJXOVAUWJUVLYMUVKUVLUVNUVTXMWKUWJYMUXSUVDYMUXSU
        MUVBUVJUWAYMUVDUXSYLYJUVDUXSUMZYKYLUWFUYAUWGUWFIYCPUSIXLXNZUYAIXPUVDUYB
        UXSUYBUXSVJIUVCIUVCUSXLXQWPWSXRYDXSWEWJWMXKWLYSJYQXTYDXGYAYBWFYEYFYGUAU
        BYNYPEYHYI $.

      $d C a b p x $.  $d F a b p x $.  $d G a b p w x $.  $d N a b p x $.
      $d T a b p x $.  $d V a b p x $.  $d X a b p x $.  $d a i $.  $d b u $.
      $( ` T ` is an onto function.  (Contributed by Alexander van der Vekens,
         20-Sep-2018.)  (Revised by AV, 29-May-2021.)  (Proof shortened by AV,
         13-Feb-2022.) $)
      numclwlk1lem2fo $p |- ( ( G e. USGraph /\ X e. V /\ N e. ( ZZ>= ` 3 ) )
                 -> T : ( X C N )
                        -onto-> ( ( X F ( N - 2 ) ) X. ( G NeighbVtx X ) ) ) $=
        ( wcel cfv co wceq c1 vp vx va vb vi cusgr c3 cuz w3a c2 cmin cnbgr cxp
        wf cv wrex wral wfo numclwlk1lem2f cop wa wex elxp cs1 numclwlk1lem2foa
        cconcat com12 adantl imp cc0 csubstr simpl fveq2 eqeq2d numclwlk1lem2fv
        adantr sylan9bbr simprll nbgrisvtx cword caddc cpr cedg chash cfzo clsw
        wi cn uz3m2nn 3ad2ant3 simp2 eqid numclwwlkovfel syl2anc df-3an simplll
        wb syl6bb s1cl ccatass oveq1d syl3anc ccatcl syl2an simpr eqcomd eqtr2d
        swrdccatid cvv ovex lsw ax-mp lswccats1 sylan ccatlen anim12i syl s1len
        a1i oveq12d oveqan12d cc eluzelcn 2cnd subcld 1cnd addassd 1p1e2 oveq2d
        id eqtrd npcand 3eqtrd fveq2d 3eqtr3a opeq12d 3ad2antl1 3adant1 sylbid
        exp31 com23 syl5 com13 rspcedvd mpancom exlimivv sylbi impcom ralrimiva
        ex dffo3 sylanbrc ) HUFPZKJPZIUGUHQPZUIZKIDRZKIUJUKRZGRZHKULRZUMZEUNUAU
        OZUBUOZEQZSZUBUUQUPZUAUVAUQUUQUVAEURABCDEFGHIJKLMNOUSUUPUVFUAUVAUVBUVAP
        ZUUPUVFUVGUVBUCUOZUDUOZUTZSZUVHUUSPZUVIUUTPZVAZVAZUDVBUCVBUUPUVFWGZUCUD
        UVBUUSUUTVCUVOUVPUCUDUVOUUPUVFUVHKVDZVFRZUVIVDZVFRZUUQPZUVOUUPVAZUVFUVO
        UUPUWAUVNUUPUWAWGUVKUUPUVNUWAABDFGHIJUVHKUVILMNVEVGVHVIUWAUWBVAZUVEUVBU
        VTVJUURUTZVKRZITUKRZUVTQZUTZSZUBUVTUUQUWAUWBVLUVCUVTSZUVEUVBUVTEQZSUWCU
        WIUWJUVDUWKUVBUVCUVTEVMVNUWCUWKUWHUVBUWAUWKUWHSUWBABCDEFGHIJUVTKLMNOVOV
        PVNVQUWCUVBUVJUWHUWAUVKUVNUUPVRUWBUVJUWHSZUWAUVOUUPUWLUVNUUPUWLWGZUVKUV
        LUVMUWMUUPUVMUVLUWLUVMUVIJPZUUPUVLUWLWGHKUVIJLVSUUPUVLUWNUWLUUPUVLUVHJV
        TZPZUEUOZUVHQUWQTWARUVHQWBHWCQZPUEVJUVHWDQZTUKRWERUQZUVHWFQVJUVHQZWBUWR
        PZUIZUWSUURSZVAZUXAKSZVAZUWNUWLWGZUUPUVLUXCUXDUXFUIZUXGUUPUURWHPZUUNUVL
        UXIWQUUOUUMUXJUUNIWIWJUUMUUNUUOWKABUEFUWRGHUURJUVHKMLUWRWLWMWNUXCUXDUXF
        WOWRUUNUUOUXGUXHWGUUMUXGUUNUUOVAZUXHUXEUXKUXHWGZUXFUWPUWTUXDUXLUXBUWPUX
        DVAZUXKUWNUWLUXMUXKVAZUWNVAZUVHUWEUVIUWGUXOUWEUVHUVQUVSVFRZVFRZUWDVKRZU
        VHUXOUWPUVQUWOPZUVSUWOPZUWEUXRSUWPUXDUXKUWNWPZUXNUXSUWNUXKUXSUXMUUNUXSU
        UOKJWSVPZVHZVPUWNUXTUXNUVIJWSZVHUWPUXSUXTUIUVTUXQUWDVKJUVHUVQUVSWTXAXBU
        XOUWPUXPUWOPZUURUWSSZUXRUVHSUYAUXNUXSUXTUYEUWNUYCUYDJUVQUVSXCXDUXNUYFUW
        NUXMUYFUXKUXMUWSUURUWPUXDXEZXFVPVPUVHUXPUURJXHXBXGUXOUVTWFQZUVTWDQZTUKR
        ZUVTQZUVIUWGUVTXIPUYHUYKSUVRUVSVFXJUVTXIXKXLUXNUVRUWOPZUWNUYHUVISUXMUWP
        UXSUYLUXKUWPUXDVLZUYBJUVHUVQXCXDZUVIJUVRXMXNUXOUYJUWFUVTUXOUYIITUKUXOUY
        IUVRWDQZUVSWDQZWARZUWSUVQWDQZWARZTWARZIUXNUYLUXTUYIUYQSUWNUYNUYDJUVRUVS
        XOXDUXOUYOUYSUYPTWAUXOUWPUXSVAZUYOUYSSUXNVUAUWNUXMUWPUXKUXSUYMUYBXPVPJU
        VHUVQXOXQUYPTSUXOUVIXRXSXTUXNUYTISUWNUXNUYTUURTWARZTWARZIUXNUYSVUBTWAUX
        MUXKUWSUURUYRTWAUYGUYRTSUXKKXRXSYAXAUXKVUCISZUXMUUOVUDUUNUUOVUCUURUJWAR
        ZIUUOIYBPZVUCVUESUGIYCZVUFVUCUURTTWARZWARVUEVUFUURTTVUFIUJVUFYJVUFYDYEV
        UFYFZVUIYGVUFVUHUJUURWAVUHUJSVUFYHXSYIYKXQUUOIUJVUGUUOYDYLYKVHVHYKVPYMX
        AYNYOYPYTYQVPVGYRYSUUAUUBUUCVIVHVIVHYKUUDUUEUUJUUFUUGUUHUUIUBUAUUQUVAEU
        UKUUL $.

      $( ` T ` is a 1-1 onto function.  (Contributed by Alexander van der
         Vekens, 26-Sep-2018.)  (Revised by AV, 29-May-2021.) $)
      numclwlk1lem2f1o $p |- ( ( G e. USGraph /\ X e. V /\ N e. ( ZZ>= ` 3 ) )
                            -> T : ( X C N ) -1-1-onto->
                                ( ( X F ( N - 2 ) ) X. ( G NeighbVtx X ) ) ) $=
        ( cusgr wcel c3 cuz co cfv w3a c2 cmin cxp wf1 wfo wf1o numclwlk1lem2f1
        cnbgr numclwlk1lem2fo df-f1o sylanbrc ) HPQKJQIRSUAQUBKIDTZKIUCUDTGTHKU
        JTUEZEUFUNUOEUGUNUOEUHABCDEFGHIJKLMNOUIABCDEFGHIJKLMNOUKUNUOEULUM $.
    $}

    $d C f u $.  $d F f u $.  $d G f $.  $d N f $.  $d V u $.  $d X f $.
    $d f w $.
    $( There is a bijection between the set of closed walks (having a fixed
       length greater than 2 and starting at a fixed vertex) with the last but
       2 vertex identical with the first (and therefore last) vertex and the
       set of closed walks (having a fixed length less by 2 and starting at the
       same vertex) and the neighbors of this vertex.  (Contributed by
       Alexander van der Vekens, 6-Jul-2018.)  (Revised by AV, 29-May-2021.) $)
    numclwlk1lem2 $p |- ( ( G e. USGraph /\ X e. V /\ N e. ( ZZ>= ` 3 ) )
                          -> E. f f : ( X C N ) -1-1-onto->
                                ( ( X F ( N - 2 ) ) X. ( G NeighbVtx X ) ) ) $=
      ( vu co cv cfv cvv wcel nfcv cc0 c2 cmin cop csubstr c1 cmpt cusgr c3 cuz
      w3a cnbgr cxp wf1o wex ovex wceq cclwwlksn crab cmpt2 oveqi nfrab1 nfmpt2
      wa nfov nfcxfr mptexgf ax-mp oveq1 fveq1 opeq12d cbvmptf numclwlk1lem2f1o
      weq f1oeq1 spcegv mpsyl ) AJHCOZAPZUAHUBUCOZUDZUEOZHUFUCOZVSQZUDZUGZRSZGU
      HSJISHUIUJQSUKVRJVTFOGJULOUMZWFUNZVRWHDPZUNZDUOVRRSWGJHCUPAVRWERAVRJHBEIU
      BUJQZUAVSQZBPUQEPZUBUCOVSQWMUQVDZAWNGUROZUSZUTZOZCWRJHMVAZAJHWRAJTBEAIWLW
      QAITAWLTWOAWPVBVCAHTVEVFZVGVHABNCWFEFGHIJKLMANVRWENPZWAUEOZWCXBQZUDZXANVR
      WSWTNWSTVFNWETAXETANVNWBXCWDXDVSXBWAUEVIWCVSXBVJVKVLVMWKWIDWFRVRWHWJWFVOV
      PVQ $.

    $d G x $.  $d K x $.  $d V x $.  $d X x $.
    $( Statement 9 in [Huneke] p. 2:  "If n > 1, then the number of closed
       n-walks v(0) ... v(n-2) v(n-1) v(n) from v = v(0) = v(n) with v(n-2) = v
       is kf(n-2)".  Since ` G ` is k-regular, the vertex v(n-2) = v has k
       neighbors v(n-1), so there are k walks from v(n-2) = v to v(n) = v (via
       each of v's neighbors) completing each of the f(n-2) walks from v=v(0)
       to v(n-2)=v.  This theorem holds even for k=0, but only for finite
       graphs!  (Contributed by Alexander van der Vekens, 26-Sep-2018.)
       (Revised by AV, 29-May-2021.) $)
    numclwwlk1 $p |- ( ( ( V e. Fin /\ G RegUSGraph K )
                         /\ ( X e. V /\ N e. ( ZZ>= ` 3 ) ) )
                 -> ( # ` ( X C N ) ) = ( K x. ( # ` ( X F ( N - 2 ) ) ) ) ) $=
      ( vf vx wcel cfv co chash wceq cfn crusgr wbr wa c3 cuz c2 cmin cnbgr cxp
      cmul cvv cv wf1o wex cusgr rusgrusgr ad2antlr simprl simprr numclwlk1lem2
      ovex syl3anc hasheqf1oi mpsyl cn simpll uz3m2nn adantl numclwwlkffin cedg
      cfusgr finrusgrfusgr ancoms fusgrfis syl adantr eqid hashxp syl2anc cxnn0
      nbusgrfi w3a rusgrpropnb oveq2 fveq2d eqeq1d rspccv 3ad2ant3 com12 impcom
      wi wral oveq2d cn0 cc hashcl nn0cn 3syl wne simplr ne0i frusgrnn0 mulcomd
      c0 nn0cnd eqtrd 3eqtrd ) IUAPZFGUBUCZUDZJIPZHUEUFQPZUDZUDZJHCRZSQZJHUGUHR
      ZERZFJUIRZUJZSQZXSSQZXTSQZUKRZGYCUKRZXPULPXOXPYANUMUNNUOZXQYBTJHCVBXOFUPP
      ZXLXMYGXJYHXIXNFGUQURZXKXLXMUSZXKXLXMUTABCNDEFHIJKLMVAVCXPYANULVDVEXOXSUA
      PZXTUAPZYBYETXOXIXLXRVFPZYKXIXJXNVGYJXNYMXKXMYMXLHVHVIVIABDEFXRIJLKVJVCZX
      OYHFVKQZUAPZXLYLYIXKYPXNXKFVLPZYPXJXIYQFGIKVMVNZFVOVPVQYJJYOFIKYOVRWBVCXS
      XTVSVTXOYEYCGUKRYFXOYDGYCUKXNXKYDGTZXLXKYSWLXMXKXLYSXJXLYSWLZXIXJYHGWAPZF
      OUMZUIRZSQZGTZOIWMZWCYTOFGIKWDUUFYHYTUUAUUEYSOJIUUBJTZUUDYDGUUGUUCXTSUUBJ
      FUIWEWFWGWHWIVPVIWJVQWKWNXOYCGXOYKYCWOPYCWPPYNXSWQYCWRWSXOGXOYQXJIXEWTZGW
      OPXKYQXNYRVQXIXJXNXAXNUUHXKXLUUHXMIJXBVQVIFGIKXCVCXFXDXGXH $.
  $}

  ${
    $d G n v w $.  $d N n v w $.  $d V n v $.  $d X n v w $.
    numclwwlk.v $e |- V = ( Vtx ` G ) $.
    numclwwlk.q $e |- Q = ( v e. V , n e. NN |-> { w e. ( n WWalksN G ) |
                                ( ( w ` 0 ) = v /\ ( lastS ` w ) =/= v ) } ) $.
    $( Value of operation ` Q ` , mapping a vertex ` v ` and a positive integer
       ` n ` to the not closed walks v(0) ... v(n) of length ` n ` from a fixed
       vertex ` v ` = v(0).  "Not closed" means v(n) =/= v(0).  (Contributed by
       Alexander van der Vekens, 27-Sep-2018.)  (Revised by AV,
       30-May-2021.) $)
    numclwwlkovq $p |- ( ( X e. V /\ N e. NN )
                         -> ( X Q N ) = { w e. ( N WWalksN G ) |
                                ( ( w ` 0 ) = X /\ ( lastS ` w ) =/= X ) } ) $=
      ( cn cc0 cv cfv wceq wne wa cwwlksn co crab clsw oveq1 adantl eqeq2 neeq2
      wb anbi12d adantr rabeqbidv ovex rabex ovmpt2a ) BDHFGKLAMZNZBMZOZUMUANZU
      OPZQZADMZERSZTUNHOZUQHPZQZAFERSZTCUOHOZUTFOZQUSVDAVAVEVGVAVEOVFUTFERUBUCV
      FUSVDUFVGVFUPVBURVCUOHUNUDUOHUQUEUGUHUIJVDAVEFERUJUKUL $.

    $d G f w $.  $d K w $.  $d N f $.  $d V w $.  $d X f $.
    numclwwlk.f $e |- F = ( v e. V , n e. NN
                            |-> { w e. ( n ClWWalksN G ) | ( w ` 0 ) = v } ) $.
    $( In a ` K `-regular graph, the size of the set of walks of length ` n `
       starting with a fixed vertex ` v ` and ending not at this vertex is the
       difference between ` K ` to the power of ` n ` and the size of the set
       of closed walks of length ` n ` starting and ending at this vertex
       ` v ` .  (Contributed by Alexander van der Vekens, 30-Sep-2018.)
       (Revised by AV, 30-May-2021.) $)
    numclwwlkqhash $p |- ( ( ( G RegUSGraph K /\ V e. Fin )
                             /\ ( X e. V /\ N e. NN ) )
                  -> ( # ` ( X Q N ) ) = ( ( K ^ N ) - ( # ` ( X F N ) ) ) ) $=
      ( vf wcel wa co chash cfv wceq crusgr wbr cfn cn cc0 cv clsw cwwlksn crab
      wne cexp cmin numclwwlkovq adantl eqid clwwlknclwwlkdifnum cclwwlksn wf1o
      fveq2d cvv ovex rabex clwwlksvbij ad2antll hasheqf1oi numclwwlkovf eqcomd
      wex mpsyl eqtrd oveq2d 3eqtrd ) FGUAUBIUCOPZJIOZHUDOZPZPZJHCQZRSUEAUFZSZJ
      TZVSUGSZJUJPAHFUHQZUIZRSGHUKQZWBVTTWAPZAWCUIZRSZULQWEJHEQZRSZULQVQVRWDRVP
      VRWDTVMABCDFHIJKLUMUNUSAWDWGFGHIJWDUOWGUOKUPVQWHWJWEULVQWHWAAHFUQQUIZRSZW
      JWGUTOVQWGWKNUFURNVHZWHWLTWFAWCHFUHVAVBVOWMVMVNAJNFHVCVDWGWKNUTVEVIVQWKWI
      RVQWIWKVPWIWKTVMABDEFHIJMVFUNVGUSVJVKVL $.

    numclwwlk.h $e |- H = ( v e. V , n e. NN |-> { w e. ( n ClWWalksN G ) |
                    ( ( w ` 0 ) = v /\ ( w ` ( n - 2 ) ) =/= ( w ` 0 ) ) } ) $.
    $( Value of operation ` H ` , mapping a vertex ` v ` and a positive integer
       ` n ` to the "closed n-walks v(0) ... v(n-2) v(n-1) v(n) from v = v(0) =
       v(n) ... with v(n-2) =/= v" according to definition 7 in [Huneke] p. 2.
       (Contributed by Alexander van der Vekens, 26-Aug-2018.)  (Revised by AV,
       30-May-2021.) $)
    numclwwlkovh $p |- ( ( X e. V /\ N e. NN )
                         -> ( X H N ) = { w e. ( N ClWWalksN G ) |
                    ( ( w ` 0 ) = X /\ ( w ` ( N - 2 ) ) =/= ( w ` 0 ) ) } ) $=
      ( cv cfv wceq c2 co cclwwlksn cn cc0 cmin wne wa crab oveq1 adantl fveq2d
      eqeq2 neeq1d bi2anan9 rabeqbidv ovex rabex ovmpt2a ) BDJHIUAUBAOZPZBOZQZD
      OZRUCSZUQPZURUDZUEZAVAFTSZUFURJQZHRUCSZUQPZURUDZUEZAHFTSZUFGUSJQZVAHQZUEV
      EVKAVFVLVNVFVLQVMVAHFTUGUHVMUTVGVNVDVJUSJURUJVNVCVIURVNVBVHUQVAHRUCUGUIUK
      ULUMNVKAVLHFTUNUOUP $.

    $d G i $.  $d N i $.  $d W i $.  $d W v w $.
    $( In a friendship graph, for each walk of length ` n ` starting at a fixed
       vertex ` v ` and ending not at this vertex, there is a unique vertex so
       that the walk extended by an edge to this vertex and an edge from this
       vertex to the first vertex of the walk is a value of operation ` H ` .
       If the walk is represented as a word, it is sufficient to add one vertex
       to the word to obtain the closed walk contained in the value of
       operation ` H ` , since in a word representing a closed walk the
       starting vertex is not repeated at the end.  This theorem generally
       holds only for Friendship Graphs, because these guarantee that for the
       first and last vertex there is a (unique) third vertex "in between".
       (Contributed by Alexander van der Vekens, 3-Oct-2018.)  (Revised by AV,
       30-May-2021.) $)
    numclwwlk2lem1 $p |- ( ( G e. FriendGraph /\ X e. V /\ N e. NN )
                           -> ( W e. ( X Q N ) -> E! v e. V
                                ( W ++ <" v "> ) e. ( X H ( N + 2 ) ) ) ) $=
      ( wcel co cfv wceq wa vi cfrgr cn w3a cwwlksn cc0 clsw wne cv cs1 cconcat
      c2 caddc wreu crab numclwwlkovq 3adant1 eleq2d fveq1 eqeq1d fveq2 anbi12d
      neeq1d elrab syl6bb cedg simpl1 wi c1 cword chash cfzo wral eqid peano2nn
      cpr wwlknp adantl simpl jca ex 3adant3 syl lswlgt0cl syl6 adantr 3ad2ant3
      com12 eleq1 biimprd ad2antrl 3ad2ant2 wb neeq2 eqcoms biimpa 3jca frcond2
      imp sylc cclwwlksn cmin cn0 ad2antlr simpr nnnn0 ad2antrr wwlksext2clwwlk
      sylan cuz cvv wwlknbp simp3d cz nn0pzuz ad3antrrr clwwlksext2edg syl31anc
      2z sylancl impbida eleq2i biimpi anim12i anim2i numclwwlk2lem1lem syl2anc
      cvtx simpld neeq2d mpbird nncn 2cnd pncand fveq2d anbi2d biantrud nnaddcl
      eqeq2 2nn mpan2 numclwwlkovh neeq12d syl6rbb 3bitrd reubidva mpbid sylbid
      ) FUBPZKIPZHUCPZUDZJKHCQZPZJHFUEQZPZUFJRZKSZJUGRZKUHZTZTZJBUIZUJUKQZKHULU
      MQZGQZPZBIUNZUULUUNJUFAUIZRZKSZUVIUGRZKUHZTZAUUOUOZPUVBUULUUMUVOJUUJUUKUU
      MUVOSUUIABCDFHIKLMUPUQURUVNUVAAJUUOUVIJSZUVKUURUVMUUTUVPUVJUUQKUFUVIJUSUT
      UVPUVLUUSKUVIJUGVAVCVBVDVEUULUVBUVHUULUVBTZUUSUVCVPFVFRZPUVCUUQVPUVRPTZBI
      UNZUVHUVQUUIUUSIPZUUQIPZUUSUUQUHZUDUVTUUIUUJUUKUVBVGUVQUWAUWBUWCUULUVBUWA
      UUKUUIUVBUWAVHUUJUVBUUKUWAUUPUUKUWAVHUVAUUPUUKHVIUMQZUCPZJIVJPZJVKRUWDSZT
      ZTZUWAUUPUWFUWGUAUIZJRUWJVIUMQJRVPUVRPUAUFHVLQVMZUDUUKUWIVHZUAUVRFHIJLUVR
      VNZVQUWFUWGUWLUWKUWHUUKUWIUWHUUKTUWEUWHUUKUWEUWHHVOVRUWHUUKVSVTWAWBWCUWDI
      JWDWEWFWHWGWSUULUVBUWBUUJUUIUVBUWBVHUUKUVBUUJUWBUURUUJUWBVHUUPUUTUURUWBUU
      JUUQKIWIWJWKWHWLWSUVBUWCUULUVAUWCUUPUURUUTUWCUUTUWCWMKUUQKUUQUUSWNWOWPZVR
      VRWQUUSUUQUVRFIBLUWMWRWTUVQUVSUVGBIUVQUVCIPZTZUVSUVDUVEFXAQZPZUWRUFUVDRZK
      SZUVEULXBQZUVDRZUWSUHZTZTZUVGUWPUVSUWRUWPUUPUWOHXCPZUDZUVSUWRUWPUUPUWOUXF
      UVBUUPUULUWOUUPUVAVSXDUVQUWOXEZUULUXFUVBUWOUUKUUIUXFUUJHXFZWGZXGWQUXGUVSU
      WRUVRFHIJUVCLUWMXHWSXIUWPUWRTUWFUWOUVEULXJRPZUWRUVSUVQUWFUWOUWRUUPUWFUULU
      VAUUPFXKPUXFUWFFHIJLXLXMWKXGUWPUWOUWRUXHWFUULUXKUVBUWOUWRUUKUUIUXKUUJUUKU
      XFULXNPUXKUXIXSHULXOXTWGXPUWPUWRXEUVRFUVEIJUVCLUWMXQXRYAUWPUXDUWRUWPUXDUW
      THUVDRZUWSUHZTZUWPUXNUWSUUQSZUXLUUQUHZTZUWPUXFUVCFYHRZPZTUUPUWCTZUXQUVQUX
      FUWOUXSUULUXFUVBUXJWFUWOUXSIUXRUVCLYBYCYDUVBUXTUULUWOUVAUWCUUPUWNYEXDFHJU
      VCYFYGZUWPUWTUXOUXMUXPUVBUWTUXOWMZUULUWOUURUYBUUPUUTUYBKUUQKUUQUWSYSWOWKX
      DUWPUWSUUQUXLUWPUXOUXPUYAYIYJVBYKUWPUXCUXMUWTUWPUXBUXLUWSUWPUXAHUVDUULUXA
      HSZUVBUWOUUKUUIUYCUUJUUKHULHYLUUKYMYNWGXGYOVCYPYKYQUWPUVGUVDUVKUXAUVIRZUV
      JUHZTZAUWQUOZPUXEUWPUVFUYGUVDUWPUUJUVEUCPZTZUVFUYGSUULUYIUVBUWOUUJUUKUYIU
      UIUUKUYHUUJUUKULUCPUYHYTHULYRUUAYEUQXGABCDEFGUVEIKLMNOUUBWCURUYFUXDAUVDUW
      QUVIUVDSZUVKUWTUYEUXCUYJUVJUWSKUFUVIUVDUSZUTUYJUYDUXBUVJUWSUXAUVIUVDUSUYK
      UUCVBVDUUDUUEUUFUUGWAUUH $.

    ${
      $d G w x $.  $d H x $.  $d N x $.  $d Q x $.  $d V x $.  $d X x $.
      numclwwlk.r $e |- R = ( x e. ( X H ( N + 2 ) )
                              |-> ( x substr <. 0 , ( N + 1 ) >. ) ) $.
      $( ` R ` is a function mapping the "closed (n+2)-walks v(0) ... v(n-2)
         v(n-1) v(n) v(n+1) v(n+2) starting at ` X ` = v(0) = v(n+2) with v(n)
         =/= X" to the words representing the prefix v(0) ... v(n-2) v(n-1)
         v(n) of the walk.  (Contributed by Alexander van der Vekens,
         5-Oct-2018.)  (Revised by AV, 31-May-2021.) $)
      numclwlk2lem2f $p |- ( ( G e. FriendGraph /\ X e. V /\ N e. NN )
                             -> R : ( X H ( N + 2 ) ) --> ( X Q N ) ) $=
        ( wcel co wa cfrgr cn w3a c2 caddc cv cc0 cop csubstr cwwlksn wceq clsw
        c1 cfv wne cclwwlksn cmin crab wb 2nn a1i nnaddcld 3adant1 numclwwlkovh
        id anim2i eleq2d syl fveq1 eqeq1d neeq12d anbi12d elrab syl6bb peano2nn
        cuz cz nnz 2z zaddcld uzid nncn 1cnd 1p1e2 oveq2d eqtrd fveq2d eleqtrrd
        addassd jca 3ad2ant3 adantr simprl wwlksubclwwlks sylc cc pncan1 eqcomd
        oveq1d mpbird cvv cword chash clwwlknbp0 cfz simprr cn0 nnnn0 peano2nn0
        wi cle nnre lep1d elfz2nn0 syl3anbrc 2cnd addsubass 2m1e1 oveq2i syl6eq
        wbr syl3anc elfzp1b syl2anc mpbid oveq2 ad2antrl swrd0fv0 adantl impcom
        ex simpl swrd0fvlsw pncand eqtr4d eqtr2d neeq1d biimpcd neeq2 imp exp31
        eqcoms mpancom com23 ancoms simpl2im com12 sylbid 3simpc numclwwlkovq
        fveq2 fmptd ) HUARZLKRZJUBRZUCZALJUDUESZISZAUFZUGJUMUESZUHUISZLJDSZEUUP
        UUSUURRZTZUVAUVBRZUVAJHUJSZRZUGUVAUNZLUKZUVAULUNZLUOZTZTZUUPUVCUVMUUPUV
        CUUSUUQHUPSZRZUGUUSUNZLUKZUUQUDUQSZUUSUNZUVPUOZTZTZUVMUUPUVCUUSUGBUFZUN
        ZLUKZUVRUWCUNZUWDUOZTZBUVNURZRZUWBUUPUUNUUQUBRZTZUVCUWJUSUUNUUOUWLUUMUU
        OUWKUUNUUOJUDUUOVEUDUBRUUOUTVAVBVFVCUWLUURUWIUUSBCDFGHIUUQKLMNOPVDVGVHU
        WHUWABUUSUVNUWCUUSUKZUWEUVQUWGUVTUWMUWDUVPLUGUWCUUSVIZVJUWMUWFUVSUWDUVP
        UVRUWCUUSVIUWNVKVLVMVNUUPUWBUVMUUPUWBTZUVGUVLUWOUVGUVAUUTUMUQSZHUJSZRZU
        WOUUTUBRZUUQUUTUMUESZVPUNZRZTZUVOUWRUUPUXCUWBUUOUUMUXCUUNUUOUWSUXBJVOUU
        OUUQUUQVPUNZUXAUUOUUQVQRZUUQUXDRUUOJUDJVRZUDVQRUUOVSVAVTZUUQWAVHUUOUWTU
        UQVPUUOUWTJUMUMUESZUESUUQUUOJUMUMJWBZUUOWCZUXJWIUUOUXHUDJUEUXHUDUKUUOWD
        VAWEWFWGWHWJWKWLUUPUVOUWAWMHUUTUUQUUSWNWOUUPUVGUWRUSZUWBUUOUUMUXKUUNUUO
        UVFUWQUVAUUOJUWPHUJUUOJWPRZJUWPUKUXIUXLUWPJJWQZWRVHWSVGWKWLWTUUPUWBUVLU
        UNUUOUWBUVLXJUUMUWBUUNUUOTZUVLUVOUWAUXNUVLXJZUVOHXARUWKTUUSKXBRZUUSXCUN
        ZUUQUKZTUWAUXOXJZHUUQKUUSMXDUXRUXPUXSUXRUXPTZUXNUWAUVLUXTUXNUWAUVLUVQUX
        TUXNTZUWATZUVLUYAUVQUVTWMUVQUYBTZUVIUVKUYCUVHUVPLUYAUVHUVPUKZUVQUWAUXNU
        XTUYDUUOUXTUYDXJUUNUUOUXTUYDUUOUXTTZUXPUUTUMUXQXESZRZUYDUUOUXRUXPXFZUYE
        UYGUUTUMUUQXESZRZUUOUYJUXTUUOJUGUUQUMUQSZXESZRZUYJUUOJUGUUTXESZUYLUUOJX
        GRZUUTXGRZJUUTXKYAJUYNRJXHZUUOUYOUYPUYQJXIVHUUOJJXLXMJUUTXNXOUUOUYKUUTU
        GXEUUOUXLUDWPRZUMWPRZUYKUUTUKUXIUUOXPZUXJUXLUYRUYSUCUYKJUDUMUQSZUESUUTJ
        UDUMXQVUAUMJUEXRXSXTYBWEWHUUOJVQRUXEUYMUYJUSUXFUXGJUUQYCYDYEWLUXRUYGUYJ
        USUUOUXPUXRUYFUYIUUTUXQUUQUMXEYFVGYGWTZUUTKUUSYHYDYKYIYJYGUVQUYBYLWFUYC
        UVKUVJUVPUOZUYBVUCUVQUWAUYAVUCUVTUYAVUCXJUVQUYAUVTVUCUYAUVSUVJUVPUXNUXT
        UVSUVJUKZUUOUXTVUDXJUUNUUOUXTVUDUYEUVJUWPUUSUNZUVSUYEUXPUYGUVJVUEUKUYHV
        UBUUTKUUSYMYDUUOVUEUVSUKUXTUUOUWPUVRUUSUUOUWPJUVRUUOUXLUWPJUKUXIUXMVHUU
        OJUDUXIUYTYNYOWGWLYPYKYIYJYQYRYIYJYIUVQUVKVUCUSZUYBVUFLUVPLUVPUVJYSUUBW
        LWTWJUUCUUAUUDUUEUUFYTUUGVCYTWJYKUUHYTUVDUVEUVAUWEUWCULUNZLUOZTZBUVFURZ
        RUVMUVDUVBVUJUVAUVDUXNUVBVUJUKUUPUXNUVCUUMUUNUUOUUIWLBCDFHJKLMNUUJVHVGV
        UIUVLBUVAUVFUWCUVAUKZUWEUVIVUHUVKVUKUWDUVHLUGUWCUVAVIVJVUKVUGUVJLUWCUVA
        ULUUKYQVLVMVNWTQUUL $.

      $d W x $.
      $( Value of the function R. (Contributed by Alexander van der Vekens,
         6-Oct-2018.)  (Revised by AV, 31-May-2021.) $)
      numclwlk2lem2fv $p |- ( ( X e. V /\ N e. NN )
                    -> ( W e. ( X H ( N + 2 ) )
                         -> ( R ` W ) = ( W substr <. 0 , ( N + 1 ) >. ) ) ) $=
        ( co csubstr wcel cn wa c2 caddc cfv cc0 c1 cop wceq cvv cmpt a1i oveq1
        cv adantl simpr ovexd fvmptd ex ) MKUAJUBUAUCZLMJUDUESISZUAZLEUFLUGJUHU
        ESUIZTSZUJVAVCUCZALAUOZVDTSZVEVBEUKEAVBVHULUJVFRUMVGLUJVHVEUJVFVGLVDTUN
        UPVAVCUQVFLVDTURUSUT $.

      $d G v w x y $.  $d H y $.  $d N y $.  $d R y $.  $d V y $.  $d X y $.
      $d G u v w x $.  $d H u $.  $d N u $.  $d Q u $.  $d R u $.  $d V u $.
      $d X u $.
      $( R is a 1-1 onto function.  (Contributed by Alexander van der Vekens,
         6-Oct-2018.)  (Revised by AV, 21-Jan-2022.) $)
      numclwlk2lem2f1o $p |- ( ( G e. FriendGraph /\ X e. V /\ N e. NN )
                            -> R : ( X H ( N + 2 ) ) -1-1-onto-> ( X Q N ) ) $=
        ( wcel wceq wa vu vy cfrgr cn w3a cv cc0 c1 caddc cop csubstr wral wreu
        co c2 wf1o wi eleq1w fveq2 oveq1 eqeq12d imbi12d imbi2d numclwlk2lem2fv
        cfv 3adant1 imp numclwlk2lem2f ffvelrnda eqeltrrd ralrimiva cs1 cconcat
        chvarv numclwwlk2lem1 cwwlksn clsw wne numclwwlkovq eleq2d fveq1 eqeq1d
        crab wb neeq1d anbi12d elrab syl6bb chash wwlknbp2 wrdeqi eleq2i anbi1i
        cword cvtx sylibr simpll cclwwlksn cmin id nnaddcld numclwwlkovh sylan2
        2nn a1i neeq12d adantl clwwlknbp cn0 lencl simprr df-2 oveq2d nncn 1cnd
        addassd eqtr4d eqeq2d biimpcd adantr impcom ad3antlr jca exp31 3ad2ant3
        sylan com12 ancoms syl sylbid ralrimiv ex nfcv nfmpt21 nfcxfr reuccats1
        cmpt2 nfov simpr eqcomd ad4antr opeq2d reubidva mpbird f1ompt sylanbrc
        mpd ) HUCRZLKRZJUDRZUEZAUFZUGJUHUIUNZUJZUKUNZLJDUNZRZALJUOUIUNZIUNZULUA
        UFZUUOSZAUUSUMZUAUUPULUUSUUPEUPUUKUUQAUUSUUKUULUUSRZTUULEVEZUUOUUPUUKUV
        CUVDUUOSZUUIUUJUVCUVEUQZUUHUUIUUJTZUBUFZUUSRZUVHEVEZUVHUUNUKUNZSZUQZUQU
        VGUVFUQUBAUVHUULSZUVMUVFUVGUVNUVIUVCUVLUVEUBAUUSURUVNUVJUVDUVKUUOUVHUUL
        EUSUVHUULUUNUKUTVAVBVCABCDEFGHIJKUVHLMNOPQVDVNVFVGUUKUUSUUPUULEABCDEFGH
        IJKLMNOPQVHVIVJVKUUKUVBUAUUPUUKUUTUUPRZTUUTCUFZVLVMUNUUSRCKUMZUVBUUKUVO
        UVQBCDFGHIJKUUTLMNOPVOVGUUKUVOUVQUVBUQZUUKUVOUUTJHVPUNZRZUGUUTVEZLSZUUT
        VQVEZLVRZTZTZUVRUUKUVOUUTUGBUFZVEZLSZUWGVQVEZLVRZTZBUVSWCZRZUWFUUIUUJUV
        OUWNWDUUHUVGUUPUWMUUTBCDFHJKLMNVSVTVFUWLUWEBUUTUVSUWGUUTSZUWIUWBUWKUWDU
        WOUWHUWALUGUWGUUTWAWBUWOUWJUWCLUWGUUTVQUSWEWFWGWHUWFUUKUVRUWFUUKUVQUVBU
        WFUUKTZUVQTZUVBUUTUULUGUUTWIVEZUJZUKUNZSZAUUSUMZUWPUVQUXBUWPUUTKWNZRZUU
        LUXCRZUULWIVEZUWRUHUIUNZSZTZAUUSULZTZUVQUXBUQUWFUUKUXKUVTUUKUXKUQZUWEUV
        TUXDUWRUUMSZTZUXLUVTUUTHWOVEZWNZRZUXMTUXNHJUUTWJUXDUXQUXMUXCUXPUUTKUXOM
        WKWLWMWPZUXNUUKUXKUXNUUKTZUXDUXJUXDUXMUUKWQUXSUXIAUUSUXSUVCUULUURHWRUNZ
        RZUGUULVEZLSZUURUOWSUNZUULVEZUYBVRZTZTZUXIUUKUVCUYHWDZUXNUUIUUJUYIUUHUV
        GUVCUULUWIUYDUWGVEZUWHVRZTZBUXTWCZRUYHUVGUUSUYMUULUUJUUIUURUDRUUSUYMSUU
        JJUOUUJWTUOUDRUUJXDXEXABCDFGHIUURKLMNOPXBXCVTUYLUYGBUULUXTUWGUULSZUWIUY
        CUYKUYFUYNUWHUYBLUGUWGUULWAZWBUYNUYJUYEUWHUYBUYDUWGUULWAUYOXFWFWGWHVFXG
        UYHUXSUXIUYAUXSUXIUQZUYGUYAUXEUXFUURSZTUYPHUURKUULMXHUYQUXEUYPUXSUYQUXE
        TZUXIUUKUXNUYRUXIUQZUUJUUHUXNUYSUQUUIUXNUUJUYSUXDUWRXIRZUXMUUJUYSUQKUUT
        XJUYTUXMTZUUJUYRUXIVUAUUJTZUYRTZUXEUXHVUBUYQUXEXKVUCUXFUUMUHUIUNZUXGUYR
        VUBUXFVUDSZUYQVUBVUEUQUXEVUBUYQVUEVUBUURVUDUXFUUJUURVUDSVUAUUJUURJUHUHU
        IUNZUIUNVUDUUJUOVUFJUIUOVUFSUUJXLXEXMUUJJUHUHJXNUUJXOZVUGXPXQXGXRXSXTYA
        UXMUXGVUDSUYTUUJUYRUWRUUMUHUIUTYBXQYCYDYFYGYEYAYGYHYIXTYGYJYKYCYLYIXTVG
        ACKUUTUUSCLUURICLYMCICFKUDUWHUVPSFUFZUOWSUNUWGVEUWHVRTBVUHHWRUNWCZYQPCF
        KUDVUIYNYOCUURYMYRYPYIVGUWQUVAUXAAUUSUWQUVCTZUUOUWTUUTVUJUUNUWSUULUKVUJ
        UUMUWRUGUVTUUMUWRSZUWEUUKUVQUVCUVTUXNVUKUXRUXNUWRUUMUXDUXMYSYTYIUUAUUBX
        MXRUUCUUDYDYGYJVGUUGVKAUAUUSUUPUUOEQUUEUUF $.
    $}

    $d G h w $.  $d H h $.  $d N h $.  $d Q h $.  $d V v h $.  $d X h $.
    $( In a friendship graph, the size of the set of walks of length ` N `
       starting with a fixed vertex ` X ` and ending not at this vertex equals
       the size of the set of all closed walks of length ` ( N + 2 ) ` starting
       at this vertex ` X ` and not having this vertex as last but 2 vertex.
       (Contributed by Alexander van der Vekens, 6-Oct-2018.)  (Revised by AV,
       31-May-2021.) $)
    numclwwlk2lem3 $p |- ( ( G e. FriendGraph /\ X e. V /\ N e. NN )
                          -> ( # ` ( X Q N ) ) = ( # ` ( X H ( N + 2 ) ) ) ) $=
      ( vh wcel caddc co chash cfv cfrgr cn w3a c2 cvv cv cc0 cop csubstr ovexd
      c1 cmpt eqid numclwlk2lem2f1o hasheqf1od eqcomd ) FUAPJIPHUBPUCZJHUDQRZGR
      ZSTJHCRZSTUQUSUTUEOUSOUFUGHUKQRUHUIRULZUQJURGUJOABCVADEFGHIJKLMNVAUMUNUOU
      P $.

    $( Statement 10 in [Huneke] p. 2:  "If n > 1, then the number of closed
       n-walks v(0) ... v(n-2) v(n-1) v(n) from v = v(0) = v(n) ... with v(n-2)
       =/= v is k^(n-2) - f(n-2)."  According to ~ rusgrnumwlkg , we have
       k^(n-2) different walks of length (n-2): v(0) ... v(n-2).  From this
       number, the number of closed walks of length (n-2), which is f(n-2) per
       definition, must be subtracted, because for these walks v(n-2) =/= v(0)
       = v would hold.  Because of the friendship condition, there is exactly
       one vertex v(n-1) which is a neighbor of v(n-2) as well as of
       v(n)=v=v(0), because v(n-2) and v(n)=v are different, so the number of
       walks v(0) ... v(n-2) is identical with the number of walks v(0) ...
       v(n), that means each (not closed) walk v(0) ... v(n-2) can be extended
       by two edges to a closed walk v(0) ... v(n)=v=v(0) in exactly one way.
       (Contributed by Alexander van der Vekens, 6-Oct-2018.)  (Revised by AV,
       31-May-2021.) $)
    numclwwlk2 $p |- ( ( ( G RegUSGraph K /\ G e. FriendGraph )
                         /\ ( V e. Fin /\ X e. V /\ N e. ( ZZ>= ` 3 ) ) )
                    -> ( # ` ( X H N ) )
                       = ( ( K ^ ( N - 2 ) ) - ( # ` ( X F ( N - 2 ) ) ) ) ) $=
      ( wcel wa cfv co chash crusgr wbr cfrgr cfn c3 cuz w3a c2 cmin caddc cexp
      wceq eluzelcn 2cnd npcand eqcomd 3ad2ant3 adantl oveq2d fveq2d cn uz3m2nn
      simplr simpr2 numclwwlk2lem3 syl3anc simpl anim12i 3adant1 numclwwlkqhash
      simp1 anim2i syl2anc 3eqtr2d ) FHUAUBZFUCPZQZJUDPZKJPZIUEUFRPZUGZQZKIGSZT
      RKIUHUISZUHUJSZGSZTRZKWDCSTRZHWDUKSKWDESTRUISZWBWCWFTWBIWEKGWAIWEULZVQVTV
      RWJVSVTWEIVTIUHUEIUMVTUNUOUPUQURUSUTWBVPVSWDVAPZWHWGULVOVPWAVCVQVRVSVTVDW
      AWKVQVTVRWKVSIVBZUQURABCDEFGWDJKLMNOVEVFWBVOVRQVSWKQZWHWIULVQVOWAVRVOVPVG
      VRVSVTVKVHWAWMVQVSVTWMVRVTWKVSWLVLVIURABCDEFHWDJKLMNVJVMVN $.

    numclwwlk.c $e |- C = ( v e. V , n e. ( ZZ>= ` 2 )
                            |-> { w e. ( n ClWWalksN G ) | ( ( w ` 0 ) = v
                                      /\ ( w ` ( n - 2 ) ) = ( w ` 0 ) ) } ) $.
    $( Lemma for ~ numclwwlk3 .  (Contributed by Alexander van der Vekens,
       6-Oct-2018.)  (Revised by AV, 1-Jun-2021.) $)
    numclwwlk3lem $p |- ( ( ( G e. FinUSGraph /\ X e. V )
                            /\ N e. ( ZZ>= ` 2 ) ) -> ( # ` ( X F N ) )
                               = ( ( # ` ( X H N ) ) + ( # ` ( X C N ) ) ) ) $=
      ( wcel cfv chash wceq cfusgr wa c2 cuz co cc0 cv cmin wne cclwwlksn caddc
      crab cun cn simpr eluz2nn numclwwlkovf syl2an fveq2d wo pm4.42 nne anbi2i
      wb wn orbi2i bitri a1i rabbidv unrab syl6eqr cfn cvtx fusgrvtxfi ad2antrr
      cin c0 syl5eqelr clwwlksnfi syl rabfi inrab wral neneq adantl imori ianor
      intnand ralrimiva rabeq0 sylibr syl5eq hashun syl3anc 3eqtrd numclwwlkovh
      mpbir numclwwlkovg adantll oveq12d eqtr4d ) GUAQZKJQZUBZIUCUDRQZUBZKIFUEZ
      SRZUFAUGZRZKTZIUCUHUEXIRZXJUIZUBZAIGUJUEZULZSRZXKXLXJTZUBZAXOULZSRZUKUEZK
      IHUEZSRZKICUEZSRZUKUEXFXHXKAXOULZSRXPXTUMZSRZYBXFXGYGSXDXCIUNQZXGYGTXEXBX
      CUOZIUPZABEFGIJKNUQURUSXFYGYHSXFYGXNXSUTZAXOULYHXFXKYMAXOXKYMVDXFXKXNXKXM
      VEZUBZUTYMXKXMVAYOXSXNYNXRXKXLXJVBVCVFVGVHVIXNXSAXOVJVKUSXFXPVLQZXTVLQZXP
      XTVPZVQTYIYBTXFXOVLQZYPXFGVMRZVLQYSXFYTJVLLXBJVLQXCXEGJLVNVOVRGIVSVTZXNAX
      OWAVTXFYSYQUUAXSAXOWAVTXFYRXNXSUBZAXOULZVQXNXSAXOWBXFUUBVEZAXOWCUUCVQTXFU
      UDAXOUUDXFXIXOQUBUUDXNVEXSVEZUTXNUUEXNXRXKXMXRVEXKXLXJWDWEWHWFXNXSWGWQVHW
      IUUBAXOWJWKWLXPXTWMWNWOXFYDXQYFYAUKXFYCXPSXDXCYJYCXPTXEYKYLABDEFGHIJKLMNO
      WPURUSXFYEXTSXCXEYEXTTXBABCEGIJKPWRWSUSWTXA $.

    $d F w $.
    $( Obsolete version of ~ numclwwlk3 as of 21-Jan-2022.  (Contributed by
       Alexander van der Vekens, 26-Aug-2018.)  (Revised by AV, 1-Jun-2021.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    numclwwlk3OLD $p |- ( ( ( G RegUSGraph K /\ G e. FriendGraph )
                            /\ ( V e. Fin /\ X e. V /\ N e. ( ZZ>= ` 3 ) ) )
            -> ( # ` ( X F N ) ) = ( ( ( K - 1 ) x. ( # ` ( X F ( N - 2 ) ) ) )
                                     + ( K ^ ( N - 2 ) ) ) ) $=
      ( wcel cfv co crusgr wbr cfrgr wa cfn c3 cuz w3a chash caddc c2 cmin cexp
      cmul c1 cfusgr simpl finrusgrfusgr syl2an simpr2 uzuzle23 3ad2ant3 adantl
      wceq numclwwlk3lem syl21anc numclwwlk2 anim12ci 3simpc numclwwlk1 syl2anc
      simp1 oveq12d cc c0 wne cn0 simpll ne0i 3ad2ant2 frusgrnn0 syl3anc nn0cnd
      cn uz3m2nn 3anim3i numclwwlkffin hashcl 3syl numclwlk3lem3 3eqtrd ) GIUAU
      BZGUCRZUDZKUERZLKRZJUFUGSRZUHZUDZLJFTUISZLJHTUISZLJCTUISZUJTZIJUKULTZUMTZ
      LXDFTZUISZULTZIXGUNTZUJTZIUOULTXGUNTXEUJTZWSGUPRZWPJUKUGSRZWTXCVDWNWLWOXL
      WRWLWMUQZWOWPWQVLZGIKMURUSZWNWOWPWQUTWRXMWNWQWOXMWPJVAVBVCZABCDEFGHJKLMNO
      PQVEVFWSXAXHXBXIUJABDEFGHIJKLMNOPVGWSWOWLUDWPWQUDZXBXIVDWNWLWRWOXNXOVHWRX
      RWNWOWPWQVIVCABCEFGIJKLMOQVJVKVMWSIVNRXGVNRZXMXJXKVDWSIWSXLWLKVOVPZIVQRXP
      WLWMWRVRWRXTWNWPWOXTWQKLVSVTVCGIKMWAWBWCWSWOWPXDWDRZUHZXFUERZXSWRYBWNWQYA
      WOWPJWEWFVCABEFGXDKLOMWGYCXGXFWHWCWIXQIJXGWJWBWK $.
  $}

  ${
    $d G n v w $.  $d N n v w $.  $d V n v $.
    numclwwlk3.v $e |- V = ( Vtx ` G ) $.
    numclwwlk3.f $e |- F = ( v e. V , n e. NN
                            |-> { w e. ( n ClWWalksN G ) | ( w ` 0 ) = v } ) $.
    ${
      $d F w $.  $d G k m y $.  $d K w $.  $d V k m n v w y $.  $d X n v w $.
      $( Statement 12 in [Huneke] p. 2:  "Thus f(n) = (k - 1)f(n - 2) +
         k^(n-2)." - the number of the closed walks v(0) ... v(n-2) v(n-1) v(n)
         is the sum of the number of the closed walks v(0) ... v(n-2) v(n-1)
         v(n) with v(n-2) = v(n) (see ~ numclwwlk1 ) and with v(n-2) =/= v(n)
         (see ~ numclwwlk2 ): f(n) = kf(n-2) + k^(n-2) - f(n-2) = (k-1)f(n-2) +
         k^(n-2).  (Contributed by Alexander van der Vekens, 26-Aug-2018.)
         (Revised by AV, 21-Jan-2022.) $)
      numclwwlk3 $p |- ( ( ( G RegUSGraph K /\ G e. FriendGraph )
                           /\ ( V e. Fin /\ X e. V /\ N e. ( ZZ>= ` 3 ) ) )
            -> ( # ` ( X F N ) ) = ( ( ( K - 1 ) x. ( # ` ( X F ( N - 2 ) ) ) )
                                     + ( K ^ ( N - 2 ) ) ) ) $=
        ( wcel wa cfv co chash wceq cmin caddc adantl crusgr wbr cfn c3 cuz w3a
        cfrgr cn cc0 cv c2 cclwwlksn crab cmpt2 cexp cmul c1 cfusgr simpl simp1
        wne finrusgrfusgr syl2an simpr2 uzuzle23 3ad2ant3 cwwlksn numclwwlk3lem
        clsw eqid syl21anc numclwwlk2 anim12ci numclwwlk1 syl2anc oveq12d cc c0
        3simpc cn0 simpll ne0i 3ad2ant2 frusgrnn0 syl3anc uz3m2nn numclwwlkffin
        nn0cnd 3anim3i hashcl 3syl numclwlk3lem3 3eqtrd ) EFUAUBZEUGLZMZHUCLZIH
        LZGUDUENLZUFZMZIGDOPNZIGBCHUHUIAUJZNZBUJZQZCUJZUKROXCNZXDVAMAXGEULOZUMU
        NZOPNZIGBCHUKUENZXFXHXDQMAXIUMUNZOPNZSOZFGUKROZUOOZIXPDOZPNZROZFXSUPOZS
        OZFUQROXSUPOXQSOZXAEURLZWRGXLLZXBXOQWPWNWQYDWTWNWOUSZWQWRWSUTZEFHJVBVCZ
        WPWQWRWSVDWTYEWPWSWQYEWRGVEVFTZABXMBCHUHXFXCVINXEVAMAXGEVGOUMUNZCDEXJGH
        IJYJVJZKXJVJZXMVJZVHVKXAXKXTXNYASABYJCDEXJFGHIJYKKYLVLXAWQWNMWRWSMZXNYA
        QWPWNWTWQYFYGVMWTYNWPWQWRWSVSTABXMCDEFGHIJKYMVNVOVPXAFVQLXSVQLZYEYBYCQX
        AFXAYDWNHVRVAZFVTLYHWNWOWTWAWTYPWPWRWQYPWSHIWBWCTEFHJWDWEWHXAWQWRXPUHLZ
        UFZXRUCLZYOWTYRWPWSYQWQWRGWFWITABCDEXPHIKJWGYSXSXRWJWHWKYIFGXSWLWEWM $.
    $}

    $d G n v w x $.  $d N x $.  $d V x $.
    $( The total number of closed walks in a finite simple graph is the sum of
       the numbers of closed walks starting at each of its vertices.
       (Contributed by Alexander van der Vekens, 7-Oct-2018.)  (Revised by AV,
       2-Jun-2021.) $)
    numclwwlk4 $p |- ( ( G e. FinUSGraph /\ N e. NN )
              -> ( # ` ( N ClWWalksN G ) ) = sum_ x e. V ( # ` ( x F N ) ) ) $=
      ( wcel wa co chash cfv cv wceq cfn adantr syl cfusgr cn cclwwlksn cc0 csu
      crab cusgr fusgrusgr nnnn0 clwwlksnun syl2an fveq2d fusgrvtxfi clwwlksnfi
      ciun cn0 cvtx eqid rabfi wdisj clwwlksndisj a1i simpr anim1i numclwwlkovf
      hashiun ancomd eqcomd sumeq2dv 3eqtrd ) FUAKZGUBKZLZGFUCMZNOAHUDBPOAPZQZB
      VNUFZUOZNOHVQNOZAUEHVOGEMZNOZAUEVMVNVRNVKFUGKGUPKVNVRQVLFUHGUIABFGHIUJUKU
      LVMAHVQVKHRKVLFHIUMSVMVOHKZLZVNRKZVQRKVMWDWBVMFUQOZRKZWDVKWFVLFWEWEURUMSF
      GUNTSVPBVNUSTAHVQUTVMABFGHVAVBVFVMHVSWAAWCVQVTNWCVTVQWCWBVLLVTVQQWCVLWBVM
      VLWBVKVLVCVDVGBCDEFGHVOJVETVHULVIVJ $.

    $d X n v w $.  $d V w $.
    $( Lemma for ~ numclwwlk5 .  (Contributed by Alexander van der Vekens,
       7-Oct-2018.)  (Revised by AV, 2-Jun-2021.) $)
    numclwwlk5lem $p |- ( ( G RegUSGraph K /\ X e. V /\ K e. NN0 )
                  -> ( 2 || ( K - 1 ) -> ( ( # ` ( X F 2 ) ) mod 2 ) = 1 ) ) $=
      ( c2 co cfv wceq wbr wcel c1 cmo wi wa chash cn0 w3a cmin cdvds cedg eqid
      crusgr numclwwlkovf2num 3adant3 oveq1 ad2antrr cz wb 2prm nn0z modprm1div
      cprime sylancr biimprd 3ad2ant3 adantl imp eqtrd ex mpancom ) HKDLUAMZFNZ
      EFUHOZHGPZFUBPZUCZKFQUDLUEOZVGKRLZQNZSVIVJVHVKABCEUFMZDEFGHJIVPUGUIUJVHVL
      TZVMVOVQVMTVNFKRLZQVHVNVRNVLVMVGFKRUKULVQVMVRQNZVLVMVSSZVHVKVIVTVJVKVSVMV
      KKURPFUMPVSVMUNUOFUPFKUQUSUTVAVBVCVDVEVF $.

    $d F w $.  $d K w $.  $d P n v w $.
    $( Statement 13 in [Huneke] p. 2:  "Let p be a prime divisor of k-1; then
       f(p) = 1 (mod p) [for each vertex v]".  (Contributed by Alexander van
       der Vekens, 7-Oct-2018.)  (Revised by AV, 2-Jun-2021.) $)
    numclwwlk5 $p |- ( ( ( G RegUSGraph K /\ G e. FriendGraph /\ V e. Fin )
                         /\ ( X e. V /\ P e. Prime /\ P || ( K - 1 ) ) )
                       -> ( ( # ` ( X F P ) ) mod P ) = 1 ) $=
      ( wcel w3a c1 co wa cmo wceq c2 adantl crusgr wbr cfrgr cprime cmin cdvds
      cfn chash cfv wi cn0 simpl1 simpr1 cfusgr c0 finrusgrfusgr 3adant2 adantr
      wne ne0i frusgrnn0 syl3anc 3ad2ant1 impcom 3jca simpr3 numclwwlk5lem sylc
      ex a1i eleq1 breq1 3anbi23d anbi2d oveq2 fveq2d id oveq12d eqeq1d 3imtr4d
      cmul cexp c3 cuz 3simpa simprl3 simprr1 csn cdif eldifsn oddprmge3 sylbir
      caddc 3ad2ant2 numclwwlk3 syl13anc oveq1d cr crp cz nn0zd peano2zm simpl3
      zre 3syl prmm2nn0 numclwwlkffin0 hashcl remulcld reexpcld prmnn modaddabs
      nn0red nnrpd eqcomd syl cc0 nn0z mulmoddvds simpr2 jca powm2modprm oveq1i
      cn 0p1e1 clt nnred prmgt1 1mod syl2anc syl5eq eqtrd 3eqtrd pm2.61ine ) FG
      UAUBZFUCLZHUGLZMZIHLZCUDLZCGNUEOZUFUBZMZPZICEOZUHUIZCQOZNRZUJCSCSRZYRYSSU
      DLZSUUAUFUBZMZPZISEOZUHUIZSQOZNRZUUDUUHUUMUUQUJUUIUUMYOYSGUKLZMUUKUUQUUMY
      OYSUURYOYPYQUULULYRYSUUJUUKUMUULYRUURYSUUJYRUURUJZUUKYSYRUURYSYRPFUNLZYOH
      UOUSZUURYRUUTYSYOYQUUTYPFGHJUPUQTYSYOYPYQUMYSUVAYRHIUTURFGHJVAVBVIZVCVDVE
      YRYSUUJUUKVFABDEFGHIJKVGVHVJUUIUUCUULYRUUIYTUUJUUBUUKYSCSUDVKCSUUAUFVLVMV
      NUUIUUGUUPNUUIUUFUUOCSQUUIUUEUUNUHCSIEVOVPUUIVQVRVSVTCSUSZUUDUUHUVCUUDPZU
      UGUUAICSUEOZEOZUHUIZWAOZGUVEWBOZWMOZCQOZUVHCQOZUVICQOZWMOZCQOZNUVDUUFUVJC
      QUVDYOYPPZYQYSCWCWDUILZUUFUVJRUUDUVPUVCYRUVPUUCYOYPYQWEURTYOYPYQUUCUVCWFY
      SYTUUBYRUVCWGUUDUVCUVQUUCUVCUVQUJZYRYTYSUVRUUBYTUVCUVQYTUVCPCUDSWHWILUVQC
      UDSWJCWKWLVIWNTVDABDEFGCHIJKWOWPWQUVDUVHWRLZUVIWRLZCWSLZMZUVKUVORUUDUWBUV
      CUUDUVSUVTUWAUUDUUAUVGUUDGWTLZUUAWTLZUUAWRLUUDGUUCYRUURYSYTUUSUUBUVBVCVDZ
      XAZGXBZUUAXDXEUUDUVGUUDYQYSUVEUKLZMUVFUGLUVGUKLUUDYQYSUWHYOYPYQUUCXCYRYSY
      TUUBUMUUCUWHYRYTYSUWHUUBCXFWNTZVEABDEFUVEHIKJXGUVFXHXEZXMXIUUDGUVEUUDGUWE
      XMUWIXJUUCUWAYRYTYSUWAUUBYTCCXKZXNWNTVETUWBUVOUVKUVHUVICXLXOXPUUDUVONRUVC
      UUDUVOXQNWMOZCQOZNUUDUVNUWLCQUUDUVLXQUVMNWMUUDCYDLZUWDUVGWTLZMUUBUVLXQRUU
      DUWNUWDUWOUUCUWNYRYTYSUWNUUBUWKWNTUUDUURUWCUWDUWEGXRUWGXEUUDUVGUWJXAVEYRY
      SYTUUBVFZUUAUVGCXSVHUUDYTUWCPUUBUVMNRUUDYTUWCYRYSYTUUBXTUWFYAUWPGCYBVHVRW
      QUUCUWMNRZYRYTYSUWQUUBYTUWMNCQOZNUWLNCQYEYCYTCWRLNCYFUBUWRNRYTCUWKYGCYHCY
      IYJYKWNTYLTYMVIYN $.
  $}

  ${
    numclwwlk7lem.v $e |- V = ( Vtx ` G ) $.
    $( Lemma for ~ numclwwlk7 , ~ frgrreggt1 and ~ frgrreg :  If a finite,
       non-empty friendship graph is ` K `-regular, the ` K ` is a nonnegative
       integer.  (Contributed by AV, 3-Jun-2021.) $)
    numclwwlk7lem $p |- ( ( ( G RegUSGraph K /\ G e. FriendGraph )
                            /\ ( V =/= (/) /\ V e. Fin ) ) -> K e. NN0 ) $=
      ( crusgr wbr cfrgr wcel wne cfn cfusgr cn0 finrusgrfusgr ad2ant2rl simpll
      wa c0 simprl frusgrnn0 syl3anc ) ABEFZAGHZPZCQIZCJHZPZPAKHZUAUDBLHUAUEUGU
      BUDABCDMNUAUBUFOUCUDUERABCDST $.
  $}

  ${
    $d G n u v w x $.  $d K u w x $.  $d P n u v w x $.  $d V n u v w x $.
    numclwwlk6.v $e |- V = ( Vtx ` G ) $.
    $( For a prime divisor ` P ` of ` K - 1 ` , the total number of closed
       walks of length ` P ` in a ` K `-regular friendship graph is equal
       modulo ` P ` to the number of vertices.  (Contributed by Alexander van
       der Vekens, 7-Oct-2018.)  (Revised by AV, 3-Jun-2021.) $)
    numclwwlk6 $p |- ( ( ( G RegUSGraph K /\ G e. FriendGraph /\ V e. Fin )
                         /\ ( P e. Prime /\ P || ( K - 1 ) ) )
              -> ( ( # ` ( P ClWWalksN G ) ) mod P ) = ( ( # ` V ) mod P ) ) $=
      ( vx vv vn vw vu wcel c1 co wa cfv cmo cv cn wceq adantr crusgr wbr cfrgr
      cfn w3a cprime cmin cdvds cclwwlksn chash crab cmpt2 cfusgr finrusgrfusgr
      cc0 csu 3adant2 prmnn eqid numclwwlk4 syl2an oveq1d adantl simp3 cz simpr
      cn0 numclwwlkffin syl3anc hashcl nn0zd ralrimiva modfsummod anim1i ancomd
      syl simpl 3anass sylibr fveq1 eqeq1d cbvrabv numclwwlk5 syl2an2r sumeq2dv
      a1i mpt2eq3ia eqtrd cmul cc 1cnd fsumconst nn0red ax-1rid 3ad2ant3 3eqtrd
      cr ) BCUAUBZBUCKZDUDKZUEZAUFKZACLUGMUHUBZNZNZABUIMUJOZAPMDFQZAGHDRUOIQZOZ
      GQZSZIHQZBUIMZUKZULZMZUJOZFUPZAPMZDLFUPZAPMZDUJOZAPMXEXFXRAPXABUMKZARKZXF
      XRSXDWRWTYCWSBCDEUNUQXBYDXCAURTZFIGHXOBADEXOUSZUTVAVBXEXSDXQAPMZFUPZAPMYA
      XEDXQFAXDYDXAYEVCZXAWTXDWRWSWTVDZTZXEXQVEKFDXEXGDKZNZXQYMXPUDKZXQVGKYMWTY
      LYDYNXEWTYLYKTXEYLVFXEYDYLYITIGHXOBADXGYFEVHVIXPVJVPVKVLVMXEYHXTAPXEDYGLF
      XEXAYLYLXBXCUEZYGLSXAXDVQYMYLXDNYOYMXDYLXEXDYLXAXDVFVNVOYLXBXCVRVSJGAHXOB
      CDXGEGHDRXNUOJQZOZXJSZJXMUKZXNYSSXJDKXLRKNXKYRIJXMXHYPSXIYQXJUOXHYPVTWAWB
      WFWGWCWDWEVBWHXEXTYBAPXEXTYBLWIMZYBXAWTLWJKXTYTSXDYJXDWKDLFWLVAXAYTYBSZXD
      WTWRUUAWSWTYBWQKUUAWTYBDVJWMYBWNVPWOTWHVBWP $.

    $( Statement 14 in [Huneke] p. 2:  "The total number of closed walks of
       length p [in a friendship graph] is (k(k-1)+1)f(p)=1 (mod p)", since the
       number of vertices in a friendship graph is (k(k-1)+1), see
       ~ frrusgrord0 or ~ frrusgrord , and p divides (k-1), i.e.  (k-1) mod p =
       0 => k(k-1) mod p = 0 => k(k-1)+1 mod p = 1.  Since the null graph is a
       friendship graph, see ~ frgr0 , as well as k-regular (for any k), see
       ~ 0vtxrgr , but has no closed walk, see ~ 0clwlk0 , this theorem would
       be false for a null graph: ` ( ( # `` ( P ClWWalksN G ) ) mod P ) = 0 `
       ` =/= 1 ` , so this case must be excluded (by assuming ` V =/= (/) ` ).
       (Contributed by Alexander van der Vekens, 1-Sep-2018.)  (Revised by AV,
       3-Jun-2021.) $)
    numclwwlk7 $p |- ( ( ( G RegUSGraph K /\ G e. FriendGraph )
                         /\ ( V =/= (/) /\ V e. Fin )
                         /\ ( P e. Prime /\ P || ( K - 1 ) ) )
                       -> ( ( # ` ( P ClWWalksN G ) ) mod P ) = 1 ) $=
      ( wbr wcel wa c1 co w3a cmo wceq caddc oveq1d cc0 syl adantr ad2antrl cr
      crusgr cfrgr c0 wne cfn cprime cdvds cclwwlksn chash simpll simplr simprr
      cmin cfv 3jca numclwwlk6 stoic3 cmul simp2 simp1 frrusgrord numclwwlk7lem
      ancomd sylc cn0 nn0cn cc peano2cnm mulcomd cn cz nn0z peano2zm mulmoddvds
      prmnn eqtrd clt nnred prmgt1 jca 1mod oveq12d crp peano2rem remulcld 1red
      nn0re nnrpd modaddabs syl3anc 0p1e1 oveq1i syl2anc syl5eq 3eqtr3d ) BCUAF
      ZBUBGZHZDUCUDZDUEGZHZAUFGZACIUMJZUGFZHZKZABUHJUIUNALJZDUIUNZALJZIWRXAWPWQ
      WTKXEXGXIMWRXAHWPWQWTWPWQXAUJWPWQXAUKWRWSWTULUOABCDEUPUQXFXICXCURJZINJZAL
      JZIXFXHXKALXFWTWSHWQWPHXHXKMXFWSWTWRXAXEUSVCXFWPWQWRXAXEUTVCBCDEVAVDOWRXA
      CVEGZXEXLIMBCDEVBXMXEHZXJALJZIALJZNJZALJZPINJZALJZXLIXNXQXSALXNXOPXPINXNX
      OXCCURJZALJZPXMXOYBMXEXMXJYAALXMCXCCVFZXMCVGGXCVGGYCCVHQVIORXNAVJGZXCVKGZ
      CVKGZKXDYBPMXNYDYEYFXBYDXMXDAVOZSXMYEXEXMYFYECVLZCVMQRXMYFXEYHRUOXMXBXDUL
      XCCAVNVDVPXNATGZIAVQFZHZXPIMZXBYKXMXDXBYIYJXBAYGVRZAVSZVTSAWAZQWBOXNXJTGZ
      ITGAWCGZXRXLMXMYPXEXMCXCCWGZXMCTGXCTGYRCWDQWERXNWFXBYQXMXDXBAYGWHSXJIAWIW
      JXNXTXPIXSIALWKWLXBYLXMXDXBYIYJYLYMYNYOWMSWNWOUQVPVP $.
  $}

  $( The size of the set of closed walks of length ` P ` , ` P ` prime, is
     divisible by ` P ` .  This corresponds to statement 9 in [Huneke] p. 2:
     "It follows that, if p is a prime number, then the number of closed walks
     of length p is divisible by p", see also ~ clwlksndivn .  (Contributed by
     Alexander van der Vekens, 7-Oct-2018.)  (Revised by AV, 3-Jun-2021.) $)
  numclwwlk8 $p |- ( ( G e. FinUSGraph /\ P e. Prime )
                     -> ( ( # ` ( P ClWWalksN G ) ) mod P ) = 0 ) $=
    ( cclwwlksn co chash cfv cdvds wbr cfusgr wcel cprime cmo wceq clwwlksndivn
    wa cc0 cz wi dvdszrcl mpcom cn wb prmnn adantl simpr dvdsval3 syl2anr com23
    biimpd ex ) AABCDEFZGHZBIJZAKJZOZUKALDPMZBANAQJZUKQJZOZULUOUPRAUKSUSUOULUPU
    SUOULUPRUSUOOULUPUOAUAJZURULUPUBUSUNUTUMAUCUDUQURUEAUKUFUGUIUJUHTT $.

  ${
    $d G p $.  $d K p $.  $d V p $.
    frgrreggt1.v $e |- V = ( Vtx ` G ) $.
    $( If a finite nonempty friendship graph is ` K `-regular with ` K > 1 ` ,
       then ` K ` must be ` 2 ` .  (Contributed by Alexander van der Vekens,
       7-Oct-2018.)  (Revised by AV, 3-Jun-2021.) $)
    frgrreggt1 $p |- ( ( G e. FriendGraph /\ V e. Fin /\ V =/= (/) )
                       -> ( ( G RegUSGraph K /\ 1 < K ) -> K = 2 ) ) $=
      ( vp wcel wbr c1 clt c2 wceq wa wi adantr co cprime cz cle cc0 wn cfn wne
      cfrgr c0 w3a crusgr cn0 simp1 anim1i ancomd simp3 simp2 jca numclwwlk7lem
      syl2anc cv cmin cdvds wrex cuz cfv 2z a1i peano2zm syl wb zltlem1 sylancr
      nn0z biimpa eluz2 syl3anbrc exprmfct cclwwlksn chash cfusgr finrusgrfusgr
      3ad2ant3 simp1l numclwwlk8 pm3.22 3adant1 numclwwlk7 syl3anc eqeq1 nesymi
      cmo ax-1ne0 pm2.21i syl6bi sylc a1d 3exp rexlimiva mpcom com23 1red nn0re
      expcom ltnled 1e2m1 breq2d notbid sylancl bicomd 3bitrd cr lttri3 biimprd
      2re expd sylbid com3r pm2.61i mpd expimpd ) AUCFZCUAFZCUDUBZUEZABUFGZHBIG
      ZBJKZXTYALZBUGFZYBYCMZYDYAXQLZXSXRLZYEYDXQYAXTXQYAXQXRXSUHUIUJZXTYHYAXTXS
      XRXQXRXSUKXQXRXSULZUMNABCDUNUOJBIGZYDYEYFMZMYKYEYDYFYEYKYDYFMZEUPZBHUQOZU
      RGZEPUSZYEYKLZYMYRYOJUTVAFZYQYRJQFZYOQFZJYORGZYSYTYRVBVCYRBQFZUUAYEUUCYKB
      VIZNBVDVEYEYKUUBYEYTUUCYKUUBVFVBUUDJBVGVHVJJYOVKVLYOEVMVEYPYRYMMEPYNPFZYP
      LZYRYDYFUUFYRYDUEZYCYBUUGYNAVNOVOVAYNWGOZSKZUUHHKZYCUUGAVPFZUUEUUIYDUUFUU
      KYRYDYAXRLUUKYDXRYAXTXRYAYJUIUJABCDVQVEVRUUEYPYRYDVSYNAVTUOUUGYGYHUUFUUJY
      DUUFYGYRYIVRYDUUFYHYRXTYHYAXRXSYHXQXRXSWAWBNVRUUFYRYDUHYNABCDWCWDUUIUUJSH
      KZYCUUHSHWEUULYCHSWHWFWIWJWKWLWMWNWOWSWPYKTZYLYDYEYBUUMYCYEYBBJIGZTZUUMYC
      MYEYBBHRGZTBJHUQOZRGZTUUOYEHBYEWQBWRZWTYEUUPUURYEHUUQBRHUUQKYEXAVCXBXCYEU
      URUUNYEUUNUURYEUUCYTUUNUURVFUUDVBBJVGXDXEXCXFYEUUOUUMYCYEBXGFZJXGFZUUOUUM
      LZYCMUUSXJUUTUVALYCUVBBJXHXIXDXKXLXMWLXNXOXP $.

    $d G v $.  $d K v $.  $d V v $.
    $( If a finite nonempty friendship graph is ` K `-regular, then ` K ` must
       be ` 2 ` (or ` 0 ` ).  (Contributed by Alexander van der Vekens,
       9-Oct-2018.)  (Revised by AV, 3-Jun-2021.) $)
    frgrreg $p |- ( ( V e. Fin /\ V =/= (/) )
                    -> ( ( G e. FriendGraph /\ G RegUSGraph K )
                         -> ( K = 0 \/ K = 2 ) ) ) $=
      ( vv c1 wbr cc0 wceq c2 wcel wne wa wi wn syl adantl impcom chash cfv clt
      wo cfn cfrgr crusgr cn0 ancom anbi12i biimpi ancomd numclwwlk7lem neanior
      c0 cle wb cr nn0re 1re lenlt sylancl cn elnnne0 biimpd sylbir a1d expimpd
      nnle1eq1 sylbird cvtx fveq2i eqeq1i simpr rusgr1vtx syl2an ex cusgr cxnn0
      orcd cv cvtxdg wral eqid rusgrprop0 simp2 hashnncl df-ne nngt1ne1 biimprd
      w3a syl5bir syl6bir imp vdgn1frgrv3 3imp3i2an r19.26 wrex r19.2z eqneqall
      neeq1 com12 rexlimivw expd com34 3ad2ant3 mpd 3exp com15 com13 syl6 com23
      pm2.61i exp4b simprl simpl ad2antlr anim12ci frgrreggt1 syl31anc olcd 2a1
      exp31 pm2.61ii ) FBUAGZBHIZBJIZUBZCUCKZCUMLZMZAUDKZABUEGZMZYFNNYCOZYFOZYI
      YLYFYIYLMZYMYNMZYFYOBUFKZYPYFNYOYKYJMZYHYGMZMYQYOYSYRYOYSYRMYIYSYLYRYGYHU
      GYJYKUGUHUIUJABCDUKPYPYQYOYFYNYMYQYOYFNZNZYNBHLZBJLZMZYMUUANBHBJULUUDYQYM
      YTUUDYQYMYTNUUDYQMZYMBFIZYTUUEYMBFUNGZUUFYQUUGYMUOZUUDYQBUPKFUPKUUHBUQURB
      FUSUTQYQUUDUUGUUFNZYQUUBUUCUUIYQUUBMZUUIUUCUUJBVAKZUUIBVBUUKUUGUUFBVGVCVD
      VEVFRVHCSTZFIZUUFYTNUUMYTUUFUUMYOYFUUMYOMYDYEUUMAVITZSTZFIZYKYDYOUUMUUPUU
      LUUOFCUUNSDVJVKUIYLYKYIYJYKVLZQABVMVNVRVOVEYOUUFUUMOZYFYLYIUUFUURYFNNZYKY
      JYIUUSNZYKAVPKZBVQKZEVSAVTTZTZBIZECWAZWIYJUUTNZEUVCABCDUVCWBWCUVFUVAUVGUV
      BUURYJYIUUFUVFYFUURYJYIUUFUVFYFNNZUURYJYIWIUVDFLZECWAZUVHUURYJYIYJFUULUAG
      ZUVJUURYJYIWDYIUURUVKYGYHUURUVKNZYGYHUULVAKZUVLCWEUURUULFLZUVMUVKUULFWFUV
      MUVKUVNUULWGWHWJWKWLREACDWMWNYIUURUVJUVHNZYJYHUVOYGYHUVJUVFUUFYFYHUVJUVFU
      UFYFNZUVJUVFMUVIUVEMZECWAZYHUVPUVIUVEECWOYHUVRUVPYHUVRMUVQECWPUVPUVQECWQU
      VQUVPECUVQBFLZUVPUVEUVIUVSUVEUVIUVSUVDBFWSVCRUUFUVSYFYFBFWRWTPXAPVOWJXBXC
      QXDXEXFXGXDPRRXHXKXIVOXJVDRXHXEWTXLYCYIYLYFYCYIMZYLMZYEYDUWAYJYGYHYKYCMZY
      EUVTYJYKXMYIYGYCYLYGYHXNXOYIYHYCYLYGYHVLXOUVTYCYLYKYCYIXNUUQXPYJYGYHWIUWB
      YEABCDXQWLXRXSYAYFYIYLXTYB $.

    $d G a b $.  $d K a b $.  $d V a b $.
    $( If a finite friendship graph is ` K `-regular, then it must have order
       0, 1 or 3.  (Contributed by Alexander van der Vekens, 9-Oct-2018.)
       (Revised by AV, 4-Jun-2021.) $)
    frgrregord013 $p |- ( ( G e. FriendGraph /\ V e. Fin /\ G RegUSGraph K )
                    -> ( ( # ` V ) = 0 \/ ( # ` V ) = 1 \/ ( # ` V ) = 3 ) ) $=
      ( va vb vv wcel cfv cc0 wceq c1 wi w3a wa wn wne c2 ex co cfn cfrgr chash
      crusgr wbr c3 w3o hashcl ax-1 3ioran df-ne c0 hasheq0 necon3bid biimpa cn
      cn0 elnnne0 cuz eluz2b3 cv cpr wex hash2prde wnel cvv cvtx vex a1i eqeq1i
      3jca biimpi nfrgr2v syl2an df-nel sylib pm2.21d com23 exlimivv com14 3imp
      id syl com12 cusgr cvtxdg wral eqid rusgrprop0 clt eluz2gt1 anim2i ancoms
      cxnn0 vdgn0frgrv2 impancom ralrimiv ralbidv r19.26 wfal nne bicomi anbi1i
      eqeq2 ancom pm3.24 bifal 3bitri ralbii r19.3rzv falim adantl sylbi sylbir
      syl6bir syl6bi com4t 3syl com25 com15 3ad2ant3 cmin cmul caddc frrusgrord
      impcom oveq1 oveq12d oveq1d 2m1e1 oveq2i 2t1e2 eqtri oveq1i 2p1e3 pm2.61i
      imp com34 syl5bir mpcom syl6eq eqeq2d pm2.21 syl5com frgrreg mpjaod exp32
      ad2antrr wo exp4c com3r 3exp impd com24 3exp1 3imp21 ) CUAHZAUBHZABUDUEZC
      UCIZJKZUUTLKZUUTUFKZUGZUUTUQHZUUQUURUUSUVDMZMZCUHUVEUUQUURUUSUVDUVDUVEUUQ
      UURNZUUSOZUVDMZUVDUVIUIUVDPUVAPZUVBPZUVCPZNUVJUVAUVBUVCUJUVKUVLUVMUVJUVIU
      VLUVMUVKUVDUVHUUSUVLUVMUVKUVDMMMUVHUVKUVLUVMUUSUVDUVEUUQUURUVKUVLUVMUVFMZ
      MZMUVEUVKUURUUQUVOUVKUUTJQZUVEUURUUQUVOMMUUTJUKUUQUVPUURUVEUVOUUQUVPUURUV
      EUVOMMZCULQZUUQUVPOZUVQUUQUVPUVRUUQUUTJCULCUAUMUNUOUVEUVSUURUVRUVOUVEUUQU
      VPUURUVRUVOMMZUVEUVPUUQUVTUVEUVPUUQUVTMZUVEUVPOUUTUPHZUWAUUTURUWBUVLUURUV
      RUUQUVNUVLUUTLQZUWBUURUVRUUQUVNMZMMZUUTLUKUWBUWCUWEUWBUWCOUUTRUSIHZUWEUUT
      UTUWFUURUVRUWDUUTRKZUWFUURUVRNZUWDMUWHUWGUWDUWFUURUVRUWGUWDMZUURUVRUWIMMU
      WFUUQUVRUWGUURUVNUUQUWGUVRUURUVNMZUUQUWGUVRUWJMZUUQUWGOEVAZFVAZQZCUWLUWMV
      BZKZOZFVCEVCUWKCUAEFVDUWQUWKEFUWQUURUVRUVNUWQUURUVRUVNMUWQAUBVEZUURPUWNUW
      LVFHZUWMVFHZUWNNAVGIZUWOKZUWRUWPUWNUWSUWTUWNUWSUWNEVHVIUWTUWNFVHVIUWNWBVK
      UWPUXBCUXAUWODVJVLUWLUWMAVFVFVMVNAUBVOVPVQVRVSWCSVRVTVIWAWDUWHUUQUWGPZUVN
      UWFUURUVRUUQUXCUVNMZMUUQUURUVRUWFUXDUUQUVRUURUWFUXDMZUUQUVRUURUXEMUUQUVRO
      ZUVMUWFUXCUURUVFUXFUVMUXCUWFUVGUXFUVMUXCUWFUVGUXFUURUVMUXCOZUWFOZUVFUXFUU
      RUUSUXHUVDUXFUURUUSUXHUVDMZUXFUURUUSOZOZBJKZUXIBRKZUXJUXFUXLUXIMZUUSUURUX
      FUXNMZUUSAWEHZBWNHZGVAZAWFIZIZBKZGCWGZNUURUXOMZGUXSABCDUXSWHWIUYBUXPUYCUX
      QUURUYBUXOUXHUYBUXFUXLUURUVDUWFUYBUXFUXLUURUVDMMMMUXGUWFUURUXFUXLUYBUVDUW
      FUURUXFUXLUYBUVDMMMZUWFUUROUURLUUTWJUEZOZUXTJQZGCWGZUYDUURUWFUYFUWFUYEUUR
      UUTWKWLWMUYFUYGGCUURUXRCHUYEUYGAUXRCDWOWPWQUXLUYBUYHUXFUVDUXLUYBUXTJKZGCW
      GZUYHUXFUVDMZMUXLUYAUYIGCBJUXTXDWRUYJUYHUYKUYJUYHOUYIUYGOZGCWGZUYKUYIUYGG
      CWSUYMWTGCWGZUYKUYLWTGCUYLUYGPZUYGOUYGUYOOZWTUYIUYOUYGUYOUYIUXTJXAXBXCUYO
      UYGXEUYPUYGXFXGXHXIUXFUYNUVDUVRUYNUVDMUUQUVRUYNWTUVDWTGCXJUVDXKXOXLWDXMXN
      SXPXQXRSXSXLXTWDYAWCYFYFUXKUUTBBLYBTZYCTZLYDTZKZUXMUXIUXFUXJUYTABCDYEYQUX
      MUYTUVCUXIUXMUYSUFUUTUXMUYSRRLYBTZYCTZLYDTZUFUXMUYRVUBLYDUXMBRUYQVUAYCUXM
      WBBRLYBYGYHYIVUCRLYDTUFVUBRLYDVUBRLYCTRVUALRYCYJYKYLYMYNYOYMUUAUUBUXHUVCU
      VDUVMUVCUVDMUXCUWFUVCUVDUUCUUHWDXPUUDUXFUXJUXLUXMUUIABCDUUEYQUUFUUGYRVRUU
      JYRXSSVRVTWAUUKYPUULXNSYSXSXNSVRUUMVTYTSVTYSUUNWAXSYQVTWAXMYPUUOYTUUP $.

    $( If a nonempty finite friendship graph is ` K `-regular, then it must
       have order 1 or 3.  Special case of ~ frgrregord013 .  (Contributed by
       Alexander van der Vekens, 9-Oct-2018.)  (Revised by AV, 4-Jun-2021.) $)
    frgrregord13 $p |- ( ( ( G e. FriendGraph /\ V e. Fin /\ V =/= (/) )
                           /\ G RegUSGraph K )
                         -> ( ( # ` V ) = 1 \/ ( # ` V ) = 3 ) ) $=
      ( chash cfv cc0 wceq c1 c3 w3o cfrgr wcel cfn c0 wne w3a crusgr wi a1d wa
      wbr simpl1 simpl2 simpr frgrregord013 syl3anc hasheq0 eqneqall syl6bi a1i
      wo com23 3imp adantr com12 orc olc 3jaoi mpcom ) CEFZGHZVAIHZVAJHZKZALMZC
      NMZCOPZQZABRUBZUAZVCVDULZVKVFVGVJVEVFVGVHVJUCVFVGVHVJUDVIVJUEABCDUFUGVBVK
      VLSVCVDVKVBVLVIVBVLSZVJVFVGVHVMVGVHVMSSVFVGVBVHVLVGVBCOHVHVLSCNUHVLCOUIUJ
      UMUKUNUOUPVCVLVKVCVDUQTVDVLVKVDVCURTUSUT $.

    $d G k $.  $d V k $.
    $( If a finite friendship graph has an order greater than 3, it cannot be
       ` k `-regular for any ` k ` .  (Contributed by Alexander van der Vekens,
       9-Oct-2018.)  (Revised by AV, 4-Jun-2021.) $)
    frgrogt3nreg $p |- ( ( G e. FriendGraph /\ V e. Fin /\ 3 < ( # ` V ) )
                         -> A. k e. NN0 -. G RegUSGraph k ) $=
      ( wcel cfn c3 clt wbr w3a cn0 wa wi c1 wceq wne cc0 cr a1i ex cfrgr chash
      cfv cv crusgr wn wo c0 simp1 simp2 hashcl 0red 3re nn0re 3jca adantr 3pos
      simpr lttr imp syl12anc ltne syl6an hasheq0 necon3bid biimpcd com23 mpcom
      syl6 3imp ad2antrl simpl frgrregord13 syl2anc 1red lttrd eqneqall syl5com
      1lt3 gtned sylan jaod syl mpd ax-1 pm2.61i ralrimiva ) BUAEZCFEZGCUBUCZHI
      ZJZBAUDZUEIZUFZAKWNWLWMKEZLZWOMWNWQWOWNWQLZWJNOZWJGOZUGZWOWRWHWICUHPZJZWN
      XAWLXCWNWPWLWHWIXBWHWIWKUIWHWIWKUJWHWIWKXBWIWKXBMZMWHWJKEZWIXDCUKZXEWKWIX
      BXEWKWJQPZWIXBMXEQREZWKQWJHIZXGXEULZXEWKXIXEWKLZXHGREZWJREZJZQGHIZWKXIXEX
      NWKXEXHXLXMXJXLXEUMSZWJUNZUOUPXOXKUQSXEWKURZXNXOWKLXIQGWJUSUTVATQWJVBVCWI
      XGXBWIWJQCUHCFVDVEVFVIVGVHSVJUOVKWNWQVLBWMCDVMVNWLXAWOMZWNWPWHWIWKXSWIWKX
      SMZMWHWIXEXTXFXEWKXSXKWSWOWTXKWJNPWSWOXKNWJXKVOZXKNGWJYAXLXKUMSXEXMWKXQUP
      NGHIXKVSSXRVPVTWOWJNVQVRXKWJGPZWTWOXEXLWKYBXPGWJVBWAWOWJGVQVRWBTWCSVJVKWD
      TWOWQWEWFWG $.

    $d G k m t u v w $.  $d V k m t u v w $.
    $( The friendship theorem for big graphs:  In every finite friendship graph
       with order greater than 3 there is a vertex which is adjacent to all
       other vertices.  (Contributed by Alexander van der Vekens, 9-Oct-2018.)
       (Revised by AV, 4-Jun-2021.) $)
    friendshipgt3 $p |- ( ( G e. FriendGraph /\ V e. Fin /\ 3 < ( # ` V ) )
               -> E. v e. V A. w e. ( V \ { v } ) { v , w } e. ( Edg ` G ) ) $=
      ( vu vk vt vm wcel c3 cfv wbr cv wceq wrex wi cn0 wa cc0 cfrgr cfn cvtxdg
      chash clt w3a crusgr cpr cedg cdif wral wo wn eqid frgrregorufrg 3ad2ant1
      csn frgrogt3nreg cfusgr c0 wne cusgr frgrusgr anim1i isfusgr 3adant3 0red
      sylibr cr 3re a1i hashcl nn0red adantr 3pos simpr lttrd gt0ne0d necon3bid
      wb hasheq0 mpbid 3adant1 fusgrn0degnn0 syl2anc r19.26 fveq2 eqeq1d rspcev
      simpllr ad4ant13 ornld eqeq2 rexbidv orbi1d imbi12d notbid anbi12d imbi1d
      syl breq2 adantl mpbird rspcimdv com12 sylbir com13 exp31 rexlimivv mpcom
      expcom mp2d ) CUAJZDUBJZKDUDLZUEMZUFZFNZCUCLZLZGNZOZFDPZCYAUGMZBNZANUHCUI
      LZJADYEUQUJUKBDPZULZQZGRUKZYDUMZGRUKZYGXMXNYJXPABGYFCDFEYFUNUOUPGCDEURHNZ
      XSLZINZOZIRPHDPZXQYJYLYGQQZXQCUSJZDUTVAZYQXMXNYSXPXMXNSCVBJZXNSYSXMUUAXNC
      VCVDCDEVEVHVFXNXPYTXMXNXPSZXOTVAYTUUBXOUUBTKXOUUBVGKVIJUUBVJVKXNXOVIJXPXN
      XODVLVMVNTKUEMUUBVOVKXNXPVPVQVRUUBXOTDUTXNXOTODUTOVTXPDUBWAVNVSWBWCHICDEW
      DWEYPXQYRQHIDRYMDJZYORJZSZYPXQYRYLYJUUEYPSXQSZYGYJYLUUFYGQZYJYLSYIYKSZGRU
      KZUUGYIYKGRWFUUFUUIYGUUFUUHYGGYORUUCUUDYPXQWJUUFYAYOOZSUUHYGQZXTYOOZFDPZC
      YOUGMZYGULZQZUUNUMZSZYGQZUUFUUSUUJUUFUUMUUSUUCYPUUMUUDXQUULYPFYMDXRYMOXTY
      NYOXRYMXSWGWHWIWKUUMUUNYGWLWTVNUUJUUKUUSVTUUFUUJUUHUURYGUUJYIUUPYKUUQUUJY
      CUUMYHUUOUUJYBUULFDYAYOXTWMWNUUJYDUUNYGYAYOCUGXAZWOWPUUJYDUUNUUTWQWRWSXBX
      CXDXEXFXKXGXHXIXJXL $.
  $}

  ${
    $d G a b c v w $.  $d V a b c v w $.
    friendship.v $e |- V = ( Vtx ` G ) $.
    $( The friendship theorem:  In every finite (nonempty) friendship graph
       there is a vertex which is adjacent to all other vertices.  This is
       Metamath 100 proof #83.  (Contributed by Alexander van der Vekens,
       9-Oct-2018.) $)
    friendship $p |- ( ( G e. FriendGraph /\ V =/= (/) /\ V e. Fin )
               -> E. v e. V A. w e. ( V \ { v } ) { v , w } e. ( Edg ` G ) ) $=
      ( va vb vc c3 cfv wbr wcel cfn w3a cv cpr wi wa wceq wex chash clt c0 wne
      cfrgr cedg cdif wral wrex simpr1 simpr3 simpl friendshipgt3 syl3anc ex wn
      csn c1 cle ctp w3o cn0 hashcl simplr hashge1 ad2ant2l cr wb nn0re sylancl
      3re lenlt biimprd adantr com12 impcom 3jca exp31 hash1to3 1to3vfriendship
      mpcom cvv vex eqid mpan exlimiv exlimivv 3syl com14 3imp pm2.61i ) IDUAJZ
      UBKZCUELZDUCUDZDMLZNZBOZAOPCUFJZLADWRUQUGUHBDUIZQWMWQWTWMWQRWNWPWMWTWMWNW
      OWPUJWMWNWOWPUKWMWQULABCDEUMUNUOWQWMUPZWTWNWOWPXAWTQXAWOWPWNWTXAWOWPWNWTQ
      ZXAWORZWPRWPURWLUSKZWLIUSKZNZDFOZUQSDXGGOZPSDXGXHHOZUTSVAZHTZGTFTXBWPXCXF
      WLVBLZWPXCXFQDVCXLWPXCXFXLWPRZXCRWPXDXEXLWPXCVDWPWOXDXLXADMVEVFXCXMXEXAXM
      XEQWOXMXAXEXLXAXEQWPXLXEXAXLWLVGLIVGLXEXAVHWLVIVKWLIVLVJVMVNVOVNVPVQVRWAV
      PDFGHVSXKXBFGXJXBHXGWBLXJXBFWCABXGXHXIWSCDWBEWSWDVTWEWFWGWHVRWIWJVOWK $.
  $}
$( End $[ set-graphth.mm $] $)


$(
###############################################################################
  GUIDES AND MISCELLANEA
###############################################################################
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Guides (conventions, explanations, and examples)
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Conventions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This section describes the conventions we use.  These conventions often refer
  to existing mathematical practices, which are discussed in more detail in
  other references.

  For the general conventions see ~ conventions , for conventions related
  to labels see ~ conventions-label , and for conventions directed more
  specifically towards contributors see ~ conventions-contrib .

  Logic and set theory provide a foundation for all of mathematics.  To learn
  about them, you should study one or more of the references listed below.  We
  indicate references using square brackets.  The textbooks provide a
  motivation for what we are doing, whereas Metamath lets you see in detail all
  hidden and implicit steps.  Most standard theorems are accompanied by
  citations.  Some closely followed texts include the following:

  <HTML>
  <ul>
  <li>Axioms of propositional calculus - [Margaris].</li>
  <li>Axioms of predicate calculus - [Megill] (System S3' in the article
      referenced).</li>
  <li>Theorems of propositional calculus - [WhiteheadRussell].</li>
  <li>Theorems of pure predicate calculus - [Margaris].</li>
  <li>Theorems of equality and substitution - [Monk2], [Tarski], [Megill].</li>
  <li>Axioms of set theory - [BellMachover].</li>
  <li>Development of set theory - [TakeutiZaring].  (The first part of [Quine]
      has a good explanation of the powerful device of "virtual" or
      class abstractions, which is essential to our development.)</li>
  <li>Construction of real and complex numbers - [Gleason]</li>
  <li>Theorems about real numbers - [Apostol]</li>
  </ul>
  </HTML>

$)

  ${
    conventions.1 $e |- ph $.
    $(
       <HTML>
       <p>
       Here are some of the conventions we use in the Metamath Proof Explorer
       (aka "set.mm"), and how they correspond to typical textbook language
       (skipping the many cases where they are identical).
       For conventions related to labels, see ~ conventions-label .
       For additional conventions more specifically directed towards
       contributors see ~ conventions-contrib .
       </p>

       <ul>
       <li><b>Notation.</b>
       Where possible, the notation attempts to conform to modern
       conventions, with variations due to our choice of the axiom system
       or to make proofs shorter.  However, our notation is strictly
       sequential (left-to-right). For example, summation is written in the
       form ` sum_ k e. A B ` ( ~ df-sum ) which denotes that index
       variable ` k ` ranges over ` A ` when evaluating ` B ` .  Thus,
       ` sum_ k e. NN ` ` ( 1 / ( 2 ^ k ) ) = 1 ` means 1/2 + 1/4 + 1/8 + ...
       = 1 ( ~ geoihalfsum ).
       The notation is usually explained in more detail when first introduced.
       </li>

       <li><b>Axiomatic assertions ($a).</b>
       All axiomatic assertions ($a statements)
       starting with " ` |- ` " have labels starting
       with "ax-" (axioms) or "df-" (definitions).  A statement with a
       label starting with "ax-" corresponds to what is traditionally
       called an axiom.  A statement with a label starting with "df-"
       introduces new symbols or a new relationship among symbols
       that can be eliminated; they always extend the definition of
       a wff or class.  Metamath blindly treats $a statements as new
       given facts but does not try to justify them.  The mmj2 program
       will justify the definitions as sound as discussed below,
       except for 4 definitions ( ~ df-bi , ~ df-cleq , ~ df-clel , ~ df-clab )
       that require a more complex metalogical justification by hand.
       </li>

       <li><b>Proven axioms.</b>
       In some cases we wish to treat an expression as an axiom in
       later theorems, even though it can be proved.  For example,
       we derive the postulates or axioms of complex arithmetic as
       theorems of ZFC set theory.  For convenience, after deriving
       the postulates, we reintroduce them as new axioms on
       top of set theory.  This lets us easily identify which axioms
       are needed for a particular complex number proof, without the
       obfuscation of the set theory used to derive them.  For more, see
       ~ mmcomplex.html .  When we wish
       to use a previously-proven assertion as an axiom, our convention
       is that we use the
       regular "ax-NAME" label naming convention to define the axiom,
       but we precede it with a proof of the same statement with the label
       "axNAME" .  An example is complex arithmetic axiom ~ ax-1cn ,
       proven by the preceding theorem ~ ax1cn .
       The metamath.exe program will warn if an axiom does not match the
       preceding theorem that justifies it if the names match in this way.
       </li>

       <li><b>Definitions (df-...).</b>
       We encourage definitions to include hypertext links to proven examples.
       </li>

       <li><b>Statements with hypotheses.</b> Many theorems and some axioms,
       such as ~ ax-mp , have hypotheses that must be satisfied in order for
       the conclusion to hold, in this case min and maj.  When presented in
       summarized form such as in the Theorem List (click on "Nearby theorems"
       on the ~ ax-mp page), the hypotheses are connected with an ampersand and
       separated from the conclusion with a big arrow, such as in " ` |- ph `
       &amp; ` |- ( ph -> ps ) ` =&gt; ` |- ps ` ". These symbols are _not_
       part of the Metamath language but are just informal notation meaning
       "and" and "implies".
       </li>

       <li><b>Discouraged use and modification.</b>
       If something should only be used in limited ways, it is marked with
       "(New usage is discouraged.)". This is used, for example, when something
       can be constructed in more than one way, and we do not want later
       theorems to depend on that specific construction.
       This marking is also used if we want later proofs to use proven axioms.
       For example, we want later proofs to
       use ~ ax-1cn (not ~ ax1cn ) and ~ ax-1ne0 (not ~ ax1ne0 ), as these
       are proven axioms for complex arithmetic.  Thus, both
       ~ ax1cn and ~ ax1ne0 are marked as "(New usage is discouraged.)".
       In some cases a proof should not normally be changed, e.g., when it
       demonstrates some specific technique.
       These are marked with "(Proof modification is discouraged.)".
       </li>

       <li><b>New definitions infrequent.</b>
       Typically, we are minimalist when introducing new definitions; they are
       introduced only when a clear advantage becomes apparent for reducing
       the number of symbols, shortening proofs, etc.  We generally avoid
       the introduction of gratuitous definitions because each one requires
       associated theorems and additional elimination steps in proofs.
       For example, we use ` < ` and ` <_ ` for inequality expressions, and
       use ` ( ( sin `` ( _i x. A ) ) / _i ) ` instead of ` ( sinh `` A ) `
       for the hyperbolic sine.
       </li>

       <li><b>Minimizing axioms and the axiom of choice.</b>
       We prefer proofs that depend on fewer and/or weaker axioms,
       even if the proofs are longer. In particular, we prefer proofs that do
       not use the axiom of choice ( ~ df-ac ) where such proofs can be found.
       The axiom of choice is widely accepted, and ZFC is the most
       commonly-accepted fundamental set of axioms for mathematics.
       However, there have been and still are some lingering controversies
       about the Axiom of Choice.  Therefore, where a proof
       does not require the axiom of choice, we prefer that proof instead.
       E.g., our proof of the Schroeder-Bernstein Theorem ( ~ sbth )
       does not use the axiom of choice.
       In some cases, the weaker axiom of countable choice ( ~ ax-cc )
       or axiom of dependent choice ( ~ ax-dc ) can be used instead.
       Similarly, any theorem in first order logic (FOL) that
       contains only set variables that are all mutually distinct,
       and has no wff variables, can be proved *without* using
       ~ ax-10 through ~ ax-13 , by invoking ~ ax10w through ~ ax13w .
       We encourage proving theorems *without* ~ ax-10 through ~ ax-13
       and moving them up to the ~ ax-4 through ~ ax-9 section.
       </li>

       <li><b>Alternative (ALT) proofs.</b>
       If a different proof is significantly shorter or clearer but
       uses more or stronger axioms, we prefer to make that proof an
       "alternative" proof (marked with an ALT label suffix), even if
       this alternative proof was formalized first.
       We then make the proof that requires fewer axioms the main proof.
       This has the effect of reducing (over time)
       the number and strength of axioms used by any particular proof.
       There can be multiple alternatives if it makes sense to do so.
       Alternative (*ALT) theorems should have "(Proof modification is
       discouraged.)  (New usage is discouraged.)" in their comment and should
       follow the main statement, so that people reading the text in order will
       see the main statement first.  The alternative and main statement
       comments should use hyperlinks to refer to each other (so that a reader
       of one will become easily aware of the other).
       </li>

       <li><b>Alternative (ALTV) versions.</b>
       If a theorem or definition is an alternative/variant of an already
       existing theorem resp. definition, its label should have the same name
       with suffix ALTV. Such alternatives should be temporary only, until it
       is decided which alternative should be used in the future.  Alternative
       (*ALTV) theorems or definitions are usually contained in mathboxes.
       Their comments need not to contain "(Proof modification is discouraged.)
       (New usage is discouraged.)".  Alternative statements should follow the
       main statement, so that people reading the text in order will see the
       main statement first.
       </li>

       <li><b>Old (OLD) versions or proofs.</b>
       If a proof, definition, axiom, or theorem is going to be removed,
       we often stage that change by first renaming its
       label with an OLD suffix (to make it clear that it is going to
       be removed).  Old (*OLD) statements should have "(Proof modification is
       discouraged.) (New usage is discouraged.)" and "Obsolete version of
       ~~ xxx as of dd-mmm-yyyy." (not enclosed in parentheses) in the comment.
       An old statement should follow the main statement, so that people
       reading the text in order will see the main statement first.
       This typically happens when a shorter proof to an existing theorem is
       found: the existing theorem is kept as an *OLD statement for one year.
       When a proof is shortened automatically (using Metamath's minimize_with
       command), then it is not necessary to keep the old proof, nor to add
       credit for the shortening.
       </li>

       <li><b>Variables.</b>
       Propositional variables (variables for well-formed formulas or wffs) are
       represented with lowercase Greek letters and are normally used
       in this order:
       ` ph ` = phi, ` ps ` = psi, ` ch ` = chi, ` th ` = theta,
       ` ta ` = tau, ` et ` = eta, ` ze ` = zeta, and ` si ` = sigma.
       Individual setvar variables are represented with lowercase Latin letters
       and are normally used in this order:
       ` x ` , ` y ` , ` z ` , ` w ` , ` v ` , ` u ` , and ` t ` .
       Variables that represent classes are often represented by
       uppercase Latin letters:
       ` A ` , ` B ` , ` C ` , ` D ` , ` E ` , and so on.
       There are other symbols that also represent class variables and suggest
       specific purposes, e.g., ` .0. ` for poset zero (see ~ p0val ) and
       connective symbols such as ` .+ ` for some group addition operation.
       (See ~ prdsplusgval for an example of the use of ` .+ ` ).
       Class variables are selected in alphabetical order starting
       from ` A ` if there is no reason to do otherwise, but many
       assertions select different class variables or a different order
       to make their intended meaning clearer.
       </li>

       <li><b>Turnstile.</b>
       "` |- ` ", meaning "It is provable that," is the first token
       of all assertions
       and hypotheses that aren't syntax constructions.  This is a standard
       convention in logic.  For us, it also prevents any ambiguity with
       statements that are syntax constructions, such as "wff ` -. ph ` ".
       </li>

       <li><b>Biconditional ( ` <-> ` ).</b>
       There are basically two ways to maximize the effectiveness of
       biconditionals ( ` <-> ` ):
       you can either have one-directional simplifications of all theorems
       that <i>produce</i> biconditionals, or you can have one-directional
       simplifications of theorems that <i>consume</i> biconditionals.
       Some tools (like Lean) follow the first approach, but set.mm follows
       the second approach. Practically, this means that in set.mm, for
       every theorem that uses an implication in the hypothesis, like
       ~ ax-mp , there is a corresponding version with a biconditional or a
       reversed biconditional, like ~ mpbi or ~ mpbir .  We prefer this
       second approach because the number of duplications in the second
       approach is bounded by the size of the propositional calculus section,
       which is much smaller than the number of possible theorems in all later
       sections that produce biconditionals.  So although theorems like
       ~ biimpi are available, in most cases there is already a theorem that
       combines it with your theorem of choice, like ~ mpbir2an , ~ sylbir ,
       or ~ 3imtr4i .

       <li><b>Substitution.</b>
       "` [ y / x ] ph ` " should be read "the wff that results from the
       proper substitution of ` y ` for ` x ` in wff ` ph ` ." See ~ df-sb
       and the related ~ df-sbc and ~ df-csb .
       </li>

       <li><b>Is-a-set.</b>
       "` A e. _V ` " should be read "Class ` A ` is a set (i.e. exists)."
       This is a convention based on Definition 2.9 of [Quine] p. 19.
       See ~ df-v and ~ isset .
       However, instead of using ` I e. _V ` in the antecedent of a theorem for
       some variable ` I ` , we now prefer to use ` I e. V ` (or another
       variable if ` V ` is not available) to make it more general. That way we
       can often avoid needing extra uses of ~ elex and ~ syl in the common
       case where ` I ` is already a member of something.
       For hypotheses ($e statement) of theorems (mostly in inference form),
       however, ` |- A e. _V ` is used rather than ` |- A e. V ` (e.g.
       ~ difexi ). This is because ` A e. _V ` is almost always satisfied using
       an existence theorem stating "... ` e. _V `", and a hard-coded ` _V ` in
       the $e statement saves a couple of syntax building steps that substitute
       ` _V ` into ` V `. Notice that this does not hold for hypotheses of
       theorems in deduction form: Here still ` |- ( ph -> A e. V ) ` should be
       used rather than ` |- ( ph -> A e. _V ) `.
       </li>

       <li><b>Converse.</b>
       "` ``' R ` " should be read "converse of (relation) ` R ` "
       and is the same as the more standard notation R^{-1}
       (the standard notation is ambiguous). See ~ df-cnv .
       This can be used to define a subset, e.g., ~ df-tan notates
       "the set of values whose cosine is a nonzero complex number" as
       ` ( ``' cos " ( CC \ { 0 } ) ) ` .
       </li>

       <li><b>Function application.</b>
       "( ` F `` x ` )" should be read "the value
       of function ` F ` at ` x ` " and has the same meaning as the more
       familiar but ambiguous notation F(x).  For example,
       ` ( cos `` 0 ) = 1 ` (see ~ cos0 ).  The left apostrophe notation
       originated with Peano and was adopted in Definition *30.01 of
       [WhiteheadRussell] p. 235, Definition 10.11 of [Quine] p. 68, and
       Definition 6.11 of [TakeutiZaring] p. 26.  See ~ df-fv .
       In the ASCII (input) representation there are spaces around the grave
       accent; there is a single accent when it is used directly,
       and it is doubled within comments.
       </li>

       <li><b>Infix and parentheses.</b>
       When a function that takes two classes and produces a class
       is applied as part of an infix expression, the expression is always
       surrounded by parentheses (see ~ df-ov ).
       For example, the ` + ` in ` ( 2 + 2 ) ` ; see ~ 2p2e4 .
       Function application is itself an example of this.
       Similarly, predicate expressions
       in infix form that take two or three wffs and produce a wff
       are also always surrounded by parentheses, such as
       ` ( ph -> ps ) ` , ` ( ph \/ ps ) ` , ` ( ph /\ ps ) ` , and
       ` ( ph <-> ps ) `
       (see ~ wi , ~ df-or , ~ df-an , and ~ df-bi respectively).
       In contrast, a binary relation (which compares two _classes_ and
       produces a _wff_) applied in an infix expression is _not_
       surrounded by parentheses.
       This includes set membership ` A e. B ` (see ~ wel ),
       equality ` A = B ` (see ~ df-cleq ),
       subset ` A C_ B ` (see ~ df-ss ), and
       less-than ` A < B ` (see ~ df-lt ).  For the general definition
       of a binary relation in the form ` A R B ` , see ~ df-br .
       For example, ` 0 < 1 ` (see ~ 0lt1 ) does not use parentheses.
       </li>

       <li><b>Unary minus.</b>
       The symbol ` -u ` is used to indicate a unary minus, e.g., ` -u 1 ` .
       It is specially defined because it is so commonly used.
       See ~ cneg .
       </li>

       <li><b>Function definition.</b>
       Functions are typically defined by first defining the constant symbol
       (using $c) and declaring that its symbol is a class with the
       label cNAME (e.g., ~ ccos ).
       The function is then defined labeled df-NAME; definitions
       are typically given using the maps-to notation (e.g., ~ df-cos ).
       Typically, there are other proofs such as its
       closure labeled NAMEcl (e.g., ~ coscl ), its
       function application form labeled NAMEval (e.g., ~ cosval ),
       and at least one simple value (e.g., ~ cos0 ).
       </li>

       <li><b>Factorial.</b>
       The factorial function is traditionally a postfix operation,
       but we treat it as a normal function applied in prefix form, e.g.,
       ` ( ! `` 4 ) = ; 2 4 ` ( ~ df-fac and ~ fac4 ).
       </li>

       <li><b>Unambiguous symbols.</b>
       A given symbol has a single unambiguous meaning in general.
       Thus, where the literature might use the same symbol with different
       meanings, here we use different (variant) symbols for different
       meanings.  These variant symbols often have suffixes, subscripts,
       or underlines to distinguish them.  For example, here
       "` 0 ` " always means the value zero ( ~ df-0 ), while
       "` 0g ` " is the group identity element ( ~ df-0g ),
       "` 0. ` " is the poset zero ( ~ df-p0 ),
       "` 0p ` " is the zero polynomial ( ~ df-0p ),
       "` 0vec ` " is the zero vector in a normed subcomplex vector space
       ( ~ df-0v ), and
       "` .0. ` " is a class variable for use as a connective symbol
       (this is used, for example, in ~ p0val ).
       There are other class variables used as connective symbols
       where traditional notation would use ambiguous symbols, including
       "` .1. ` ", "` .+ ` ", "` .* ` ", and "` .|| ` ".
       These symbols are very similar to traditional notation, but because
       they are different symbols they eliminate ambiguity.
       </li>

       <li><b>ASCII representation of symbols.</b>
       We must have an ASCII representation for each symbol.
       We generally choose short sequences, ideally digraphs, and generally
       choose sequences that vaguely resemble the mathematical symbol.
       Here are some of the conventions we use when selecting an
       ASCII representation.
       <br>
       We generally do not include parentheses inside a symbol because
       that confuses text editors (such as emacs).
       Greek letters for wff variables always use the first two letters
       of their English names, making them easy to type and easy to remember.
       Symbols that almost look like letters, such as ` A. ` ,
       are often represented by that letter followed by a period.
       For example, "A." is used to represent ` A. ` ,
       "e." is used to represent ` e. ` , and
       "E." is used to represent ` E. ` .
       Single letters are now always variable names, so constants that are
       often shown as single letters are now typically preceded with "&#95;"
       in their ASCII representation, for example,
       "&#95;i" is the ASCII representation for the imaginary unit ` _i ` .
       A script font constant is often the letter
       preceded by "&#126;" meaning "curly", such as "&#126;P" to represent
       the power class ` ~P ` .
       <br>
       Originally, all setvar and class variables used only single letters
       a-z and A-Z, respectively. A big change in recent years was to
       allow the use of certain symbols as variable names to make formulas
       more readable, such as a variable representing an additive group
       operation. The convention is to take the original constant token
       (in this case "+" which means complex number addition) and put
       a period in front of it to result in the ASCII representation of the
       variable ".+", shown as ` .+ ` , that can
       be used instead of say the letter "P" that had to be used before.
       <br>
       Choosing tokens for more advanced concepts that have no standard
       symbols but are represented by words in books, is hard. A few are
       reasonably obvious, like "Grp" for group and "Top" for topology,
       but often they seem to end up being either too long or too
       cryptic. It would be nice if the math community came up with
       standardized short abbreviations for English math terminology,
       like they have more or less done with symbols, but that probably
       won't happen any time soon.
       <br>
       Another informal convention that we've somewhat followed, that is also
       not uncommon in the literature, is to start tokens with a
       capital letter for collection-like objects and lower case for
       function-like objects. For example, we have the collections On
       (ordinal numbers), Fin, Prime, Grp, and we have the functions sin,
       tan, log, sup. Predicates like Ord and Lim also tend to start
       with upper case, but in a sense they are really collection-like,
       e.g. Lim indirectly represents the collection of limit ordinals,
       but it can't be an actual class since not all limit ordinals
       are sets.
       This initial capital vs. lower case letter convention is sometimes
       ambiguous. In the past there's been a debate about whether
       domain and range are collection-like or function-like, thus whether
       we should use Dom, Ran or dom, ran. Both are used in the literature.
       In the end dom, ran won out for aesthetic reasons
       (Norm Megill simply just felt they looked nicer).
       </li>

       <li><b>Typography conventions.</b>
       Class symbols for functions (e.g., ` abs ` , ` sin ` )
       should usually not have leading or trailing blanks in their
       HTML/Latex representation.
       This is in contrast to class symbols for operations
       (e.g., ` gcd ` , ` sadd ` , ` eval ` ), which usually do
       include leading and trailing blanks in their representation.
       If a class symbol is used for a function as well as an operation
       (according to the definition ~ df-ov , each operation value can be
       written as function value of an ordered pair), the convention for its
       primary usage should be used, e.g. ` ( iEdg `` G ) ` versus
       ` ( V iEdg E ) ` for the edges of a graph ` G = <. V , E >. ` .
       </li>

       <li><b>Number construction independence.</b>
       There are many ways to model complex numbers.
       After deriving the complex number postulates we
       reintroduce them as new axioms on top of set theory.
       This lets us easily identify which axioms are needed
       for a particular complex number proof, without the obfuscation
       of the set theory used to derive them.
       This also lets us be independent of the specific construction,
       which we believe is valuable.
       See ~ mmcomplex.html for details.
       Thus, for example, we don't allow the use of ` (/) e/ CC ` ,
       as handy as that would be, because that would be
       construction-specific. We want proofs about ` CC ` to be independent
       of whether or not ` (/) e. CC ` .
       </li>

       <li><b>Minimize hypotheses
       (except for construction independence and number theorem domains).</b>
       In most cases we try to minimize hypotheses, that is,
       we eliminate or reduce what must be true to prove something, so that
       the proof is more general and easier to use.
       There are exceptions. For example, we intentionally add hypotheses
       if they help make proofs independent of a particular construction
       (e.g., the contruction of complex numbers ` CC ` ).
       We also intentionally add hypotheses for many real and complex
       number theorems to expressly state their domains even when they
       are not strictly needed.  For example, we could show that
       ` ( A < B -> B =/= A ) ` without any other hypotheses, but in
       practice we also require proving at least some domains
       (e.g., see ~ ltnei ). Here are the reasons as discussed in
       ~ https://groups.google.com/g/metamath/c/2AW7T3d2YiQ :
       <ol>
       <li>Having the hypotheses immediately shows the intended domain of
       applicability (is it ` RR ` , ` RR* ` , ` _om ` , or something else?),
       without having to trace back to definitions.</li>
       <li>Having the hypotheses forces its use in the intended
       domain, which generally is desirable.</li>
       <li>The behavior is dependent on accidental behavior of definitions
       outside of their domains, so the theorems are non-portable and
       "brittle".</li>
       <li>Only a few theorems can have their hypotheses removed
       in this fashion due to happy coincidences for our particular
       set-theoretical definitions.  The poor user (especially a
       novice learning real number arithmetic) is going to be
       confused not knowing when hypotheses are needed and when
       they are not.  For someone who hasn't traced back the
       set-theoretical foundations of the definitions, it is
       seemingly random and isn't intuitive at all.</li>
       <li>The consensus of opinion of people on this group seemed to be
       against doing this.</li>
       </ol>
       </li>

       <li><b>Natural numbers.</b>
       There are different definitions of "natural" numbers in the literature.
       We use ` NN ` ( ~ df-nn ) for the set of positive integers starting
       from 1, and ` NN0 ` ( ~ df-n0 ) for the set of nonnegative integers
       starting at zero.
       </li>

       <li><b>Decimal numbers.</b>
       Numbers larger than nine are often expressed in base 10 using the
       decimal constructor ~ df-dec , e.g., ` ; ; ; 4 0 0 1 ` (see ~ 4001prm
       for a proof that 4001 is prime).
       </li>

       <li><b>Theorem forms.</b>
       We will use the following descriptive terms to categorize theorems:
       <ul>
       <li>A theorem is in <b>"closed form"</b> if it has no $e hypotheses
       (e.g., ~ unss ).  The term "tautology" is also used, especially in
       propositional calculus.  This form was formerly called "theorem form"
       or "closed theorem form".</li>
       <li>A theorem is in <b>"deduction form"</b> (or is a "deduction") if it
       has zero or more $e hypotheses, and the hypotheses and the conclusion
       are implications that share the same antecedent.  More precisely, the
       conclusion is an implication with a wff variable as the antecedent
       (usually ` ph `), and every hypothesis ($e statement) is either:
       <ol>
       <li>an implication with the same antecedent as the conclusion, or</li>
       <li>a definition.  A definition can be for a class variable (this is a
       class variable followed by ` = `, e.g. the definition of ` D ` in
       ~ lhop ) or a wff variable (this is a wff variable followed by
       ` <-> `); class variable definitions are more common.</li>
       </ol>
       In practice, a proof of a theorem in deduction form will also contain
       many steps that are implications where the antecedent is either that
       wff variable (usually ` ph `) or is a conjunction ` ( ph i^i ... ) `
       including that wff variable (` ph `).  E.g. ~ a1d , ~ unssd .
       Although they are no real deductions, theorems without $e hypotheses,
       but in the form ` ( ph -> ... ) `, are also said to be in "deduction
       form".  Such theorems usually have a two step proof, applying ~ a1i to a
       given theorem, and are used as convenience theorems to shorten many
       proofs. E.g. ~ eqidd , which is used more than 1500 times. </li>
       <li> A theorem is in <b>"inference form"</b> (or is an "inference") if
       it has one or more $e hypotheses, but is not in deduction form,
       i.e. there is no common antecedent (e.g., ~ unssi ).</li>
       </ul>

       Any theorem whose conclusion is an implication has an <b>associated
       inference</b>, whose hypotheses are the hypotheses of that theorem
       together with the antecedent of its conclusion, and whose conclusion is
       the consequent of that conclusion.  When both theorems are in set.mm,
       then the associated inference is often labeled by adding the suffix "i"
       to the label of the original theorem (for instance, ~ con3i is the
       inference associated with ~ con3 ).  The inference associated with a
       theorem is easily derivable from that theorem by a simple use of
       ~ ax-mp .  The other direction is the subject of the Deduction Theorem
       discussed below.  We may also use the term "associated inference" when
       the above process is iterated.  For instance, ~ syl is <em>an</em>
       inference associated with ~ imim1 because it is <em>the</em> inference
       associated with ~ imim1i which is itself <em>the</em> inference
       associated with ~ imim1 .
       <br>

       "Deduction form" is the preferred form for theorems because this form
       allows us to easily use the theorem in places where (in traditional
       textbook formalizations) the standard Deduction Theorem (see below)
       would be used. We call this approach <b>"deduction style"</b>.
       In contrast, we usually avoid theorems in "inference form" when that
       would end up requiring us to use the deduction theorem.
       <br>

       Deductions have a label suffix of "d", especially if there are other
       forms of the same theorem (e.g., ~ pm2.43d ).  The labels for inferences
       usually have the suffix "i" (e.g., ~ pm2.43i ).  The labels of theorems
       in "closed form" would have no special suffix (e.g., ~ pm2.43 ).  When
       an inference is converted to a theorem by eliminating an "is a set"
       hypothesis, we sometimes suffix the closed form with "g" (for "more
       general") as in ~ uniex vs. ~ uniexg .
       </li>

       <li><b>Deduction theorem.</b>
       The Deduction Theorem is a metalogical theorem that provides an
       algorithm for constructing a proof of a theorem from the proof of its
       corresponding deduction (its associated inference).  See for instance
       Theorem 3 in [Margaris] p. 56.  In ordinary mathematics, no one actually
       carries out the algorithm, because (in its most basic form) it involves
       an exponential explosion of the number of proof steps as more hypotheses
       are eliminated.  Instead, in ordinary mathematics the Deduction Theorem
       is invoked simply to claim that something can be done in principle,
       without actually doing it.  For more details, see ~ mmdeduction.html .
       The Deduction Theorem is a metalogical theorem that cannot be applied
       directly in metamath, and the explosion of steps would be a problem
       anyway, so alternatives are used.  One alternative we use sometimes is
       the "weak deduction theorem" ~ dedth , which works in certain cases in
       set theory.  We also sometimes use ~ dedhb .  However, the primary
       mechanism we use today for emulating the deduction theorem is to write
       proofs in deduction form (aka "deduction style") as described earlier;
       the prefixed ` ph -> ` mimics the context in a deduction proof system.
       In practice this mechanism works very well.  This approach is described
       in the deduction form and natural deduction page ~ mmnatded.html ; a
       list of translations for common natural deduction rules is given in
       ~ natded .
       </li>

       <li><b>Recursion.</b>
       We define recursive functions using various "recursion constructors".
       These allow us to define, with compact direct definitions, functions
       that are usually defined in textbooks with indirect self-referencing
       recursive definitions.  This produces compact definition and much
       simpler proofs, and greatly reduces the risk of creating unsound
       definitions.  Examples of recursion constructors include
       ` recs ( F ) ` in ~ df-recs , ` rec ( F , I ) ` in ~ df-rdg ,
       ` seqom ( F , I ) ` in ~ df-seqom , and ` seq M ( .+ , F ) ` in
       ~ df-seq .  These have characteristic function ` F ` and initial value
       ` I ` .  ( ` gsum ` in ~ df-gsum isn't really designed for arbitrary
       recursion, but you could do it with the right magma.)  The logically
       primary one is ~ df-recs , but for the "average user" the most useful
       one is probably ~ df-seq - provided that a countable sequence is
       sufficient for the recursion.
       </li>

       <li><b>Extensible structures.</b>
       Mathematics includes many structures such as ring, group, poset, etc.
       We define an "extensible structure" which is then used to define group,
       ring, poset, etc.  This allows theorems from more general structures
       (groups) to be reused for more specialized structures (rings) without
       having to reprove them.  See ~ df-struct .
       </li>

       <li><b>Undefined results and "junk theorems".</b>
       Some expressions are only expected to be meaningful in certain contexts.
       For example, consider Russell's definition description binder iota,
       where ` ( iota x ph ) ` is meant to be "the ` x ` such that ` ph ` "
       (where ` ph ` typically depends on x).
       What should that expression produce when there is no such ` x ` ?
       In set.mm we primarily use one of two approaches.
       One approach is to make the expression evaluate to the empty set
       whenever the expression is being used outside of its expected context.
       While not perfect, it makes it a bit more clear when something
       is undefined, and it has the advantage that it makes more
       things equal outside their domain which can remove hypotheses when
       you feel like exploiting these so-called junk theorems.
       Note that Quine does this with iota (his definition of iota
       evaluates to the empty set when there is no unique value of ` x ` ).
       Quine has no problem with that and we don't see why we should,
       so we define iota exactly the same way that Quine does.
       The main place where you see this being systematically exploited is in
       "reverse closure" theorems like ` A e. ( F `` B ) -> B e. dom F ` ,
       which is useful when ` F ` is a family of sets. (by this we
       mean it's a set set even in a type theoretic interpretation.)
       The second approach uses "(New usage is discouraged.)" to prevent
       unintentional uses of certain properties.
       For example, you could define some construct df-NAME whose
       usage is discouraged, and prove only the specific properties
       you wish to use (and add those proofs to the list of permitted uses
       of "discouraged" information). From then on, you can only use
       those specific properties without a warning.
       Other approaches often have hidden problems.
       For example, you could try to "not define undefined terms"
       by creating definitions like ${ $d ` y x ` $.  $d ` y ph ` $.
       df-iota $a ` |- ( E! x ph -> ( iota x ph ) = U. { x | ph } ) ` $. $}.
       This will be rejected by the definition checker, but the bigger
       theoretical reason to reject this axiom is that it breaks equality -
       the metatheorem ` ( x = y -> ` P(x) ` = ` P(y) ` ) ` fails
       to hold if definitions don't unfold without some assumptions.
       (That is, ~ iotabidv is no longer provable and must be added
       as an axiom.) It is important for every syntax constructor to
       satisfy equality theorems *unconditionally*, e.g., expressions
       like ` ( 1 / 0 ) = ( 1 / 0 ) ` should not be rejected.
       This is forced on us by the context free term
       language, and anything else requires a lot more infrastructure
       (e.g., a type checker) to support without making everything else
       more painful to use.
       Another approach would be to try to make nonsensical
       statements syntactically invalid, but that can create its own
       complexities; in some cases that would make parsing itself undecidable.
       In practice this does not seem to be a serious issue.
       No one does these things deliberately in "real" situations,
       and some knowledgeable people (such as Mario Carneiro)
       have never seen this happen accidentally.
       Norman Megill doesn't agree that these "junk" consequences are
       necessarily bad anyway, and they can significantly shorten proofs
       in some cases. This database would be much larger if, for example,
       we had to condition ~ fvex on the argument being in the domain
       of the function. It is impossible to derive a contradiction
       from sound definitions (i.e. that pass the definition check),
       assuming ZFC is consistent, and he doesn't see the point of all the
       extra busy work and huge increase in set.mm size that would result
       from restricting *all* definitions.
       So instead of implementing a complex system to counter a
       problem that does not appear to occur in practice, we use
       a significantly simpler set of approaches.
       </li>

       <li><b>Organizing proofs.</b>
       Humans have trouble understanding long proofs.  It is often preferable
       to break longer proofs into smaller parts (just as with traditional
       proofs).  In Metamath this is done by creating separate proofs of the
       separate parts.

       A proof with the sole purpose of supporting a final proof is a lemma;
       the naming convention for a lemma is the final proof's name followed by
       "lem", and a number if there is more than one.  E.g., ~ sbthlem1 is the
       first lemma for ~ sbth .  The comment should begin with "Lemma for",
       followed by the final proof's name, so that it can be suppressed in
       theorem lists (see metamath command WRITE THEOREM_LIST).

       Also, consider proving reusable results separately, so that others will
       be able to easily reuse that part of your work.
       </li>

       <li><b>Limit proof size.</b>
       It is often preferable to break longer proofs into
       smaller parts, just as you would do with traditional proofs.
       One reason is that humans have trouble understanding long proofs.
       Another reason is that it's generally best to prove
       reusable results separately,
       so that others will be able to easily reuse them.
       Finally, the "minimize" routine can take much longer with
       very long proofs.
       We encourage proofs to be no more than 200 essential steps, and
       generally no more than 500 essential steps,
       though these are simply guidelines and not hard-and-fast rules.
       Much smaller proofs are fine!
       We also acknowledge that some proofs, especially autogenerated ones,
       should sometimes not be broken up (e.g., because
       breaking them up might be useless and inefficient due to many
       interconnections and reused terms within the proof).
       In Metamath, breaking up longer proofs is done by creating multiple
       separate proofs of separate parts.
       A proof with the sole purpose of supporting a final proof is a
       lemma; the naming convention for a lemma is the final proof's name
       followed by "lem", and a number if there is more than one. E.g.,
       ~ sbthlem1 is the first lemma for ~ sbth .
       </li>

       <li><b>Hypertext links.</b>
       We strongly encourage comments to have many links to related material,
       with accompanying text that explains the relationship.  These can help
       readers understand the context.  Links to other statements, or to
       HTTP/HTTPS URLs, can be inserted in ASCII source text by prepending a
       space-separated tilde (e.g., " ~~ df-prm " results in " ~ df-prm ").
       When metamath.exe is used to generate HTML it automatically inserts
       hypertext links for syntax used (e.g., every symbol used), every axiom
       and definition depended on, the justification for each step in a proof,
       and to both the next and previous assertion.
       </li>

       <li><b>Hypertext links to section headers.</b>
       Some section headers have text under them that describes or explains the
       section.  However, they are not part of the description of axioms or
       theorems, and there is no way to link to them directly.  To provide for
       this, section headers with accompanying text (indicated with "*"
       prefixed to ~ mmtheorems.html#mmdtoc entries) have an anchor in
       ~ mmtheorems.html whose name is the first $a or $p statement that
       follows the header.  For example there is a glossary under the section
       heading called GRAPH THEORY.  The first $a or $p statement that follows
       is ~ cedgf .  To reference it we link to the anchor using a
       space-separated tilde followed by the space-separated link
       mmtheorems.html#cedgf, which will become the hyperlink
       ~ mmtheorems.html#cedgf .  Note that no theorem in set.mm is allowed to
       begin with "mm" (enforced by "verify markup" in the metamath program).
       Whenever the software sees a tilde reference beginning with "http:",
       "https:", or "mm", the reference is assumed to be a link to something
       other than a statement label, and the tilde reference is used as is.
       This can also be useful for relative links to other pages such as
       ~ mmcomplex.html .
       </li>

       <li><b>Bibliography references.</b>
       Please include a bibliographic reference to any external material used.
       A name in square brackets in a comment indicates a
       bibliographic reference. The full reference must be of the form
       KEYWORD IDENTIFIER? NOISEWORD(S)* &#91;AUTHOR(S)&#93; p. NUMBER -
       note that this is a very specific form that requires a page number.
       There should be no comma between the author reference and the
       "p." (a constant indicator).
       Whitespace, comma, period, or semicolon should follow NUMBER.
       An example is Theorem 3.1 of [Monk1] p. 22,
       The KEYWORD, which is not case-sensitive,
       must be one of the following: Axiom, Chapter, Compare, Condition,
       Corollary, Definition, Equation, Example, Exercise, Figure, Item,
       Lemma, Lemmas, Line, Lines, Notation, Part, Postulate, Problem,
       Property, Proposition, Remark, Rule, Scheme, Section, or Theorem.
       The IDENTIFIER is optional, as in for example
       "Remark in [Monk1] p. 22".
       The NOISEWORDS(S) are zero or more from the list: from, in, of, on.
       The AUTHOR(S) must be present in the file identified with the
       htmlbibliography assignment (e.g., mmset.html) as a named anchor
       (NAME=).  If there is more than one document by the same author(s),
       add a numeric suffix (as shown here).
       The NUMBER is a page number, and may be any alphanumeric string such as
       an integer or Roman numeral.
       Note that we _require_ page numbers in comments for individual
       $a or $p statements.  We allow names in square brackets without
       page numbers (a reference to an entire document) in
       heading comments.
       If this is a new reference, please also add it to the
       "Bibliography" section of mmset.html.
       (The file mmbiblio.html is automatically rebuilt, e.g.,
       using the metamath.exe "write bibliography" command.)
       </li>

       <li><b>Acceptable shorter proofs</b>
       Shorter proofs are welcome, and any shorter proof we accept
       will be acknowledged in the theorem's description.  However,
       in some cases a proof may be "shorter" or not depending on
       how it is formatted.  This section provides general guidelines.

       <p>
       Usually we automatically accept shorter proofs that (1)
       shorten the set.mm file (with compressed proofs), (2) reduce
       the size of the HTML file generated with SHOW STATEMENT xx
       / HTML, (3) use only existing, unmodified theorems in the
       database (the order of theorems may be changed, though), and
       (4) use no additional axioms.
       Usually we will also automatically accept a _new_ theorem
       that is used to shorten multiple proofs, if the total size
       of set.mm (including the comment of the new theorem, not
       including the acknowledgment) decreases as a result.
       </p>

       <p>
       In borderline cases, we typically place more importance on
       the number of compressed proof steps and less on the length
       of the label section (since the names are in principle
       arbitrary).  If two proofs have the same number of compressed
       proof steps, we will typically give preference to the one
       with the smaller number of different labels, or if these
       numbers are the same, the proof with the fewest number of
       characters that the proofs happen to have by chance when
       label lengths are included.
       </p>

       <p>
       A few theorems have a longer proof than necessary in order
       to avoid the use of certain axioms, for pedagogical purposes,
       and for other reasons.  These theorems will (or should) have
       a "(Proof modification is discouraged.)" tag in their
       description.  For example, ~ idALT shows a proof directly from
       axioms.  Shorter proofs for such cases won't be accepted,
       of course, unless the criteria described continues to be
       satisfied.
       </p>

       <li><b>Information on syntax, axioms, and definitions.</b>
       For a hyperlinked list of syntax, axioms, and definitions, see
       ~ mmdefinitions.html .
       If you have questions about a specific symbol or axiom, it is best
       to go directly to its definition to learn more about it.
       The generated HTML for each theorem and axiom includes hypertext
       links to each symbol's definition.
       </li>

       <li><b>Reserved symbols: 'LETTER.</b>
       Some symbols are reserved for potential future use.
       Symbols with the pattern 'LETTER are reserved for possibly
       representing characters (this is somewhat similar to Lisp).
       We would expect '\n to represent newline, 'sp for space, and perhaps
       '\x24 for the dollar character.
       </li>

       <li><b>Language and spelling.</b>
       It is preferred to use American English for comments and symbols, e.g.
       we use "neighborhood" instead of the British English "neighbourhood".
       An exception is the word "analog", which can be either a noun or an
       adjective. Furthermore, "analog" has the confounding meaning "not
       digital", whereas "analogue" is often used in the sense something that
       bears analogy to something else also in American English.  Therefore,
       "analogue" is used for the noun and "analogous" for the adjective in
       set.mm.
       </li>
       </ul>

       <br><br>

       <b>The challenge of varying mathematical conventions</b>

       <br><br>

       We try to follow mathematical conventions, but in many cases
       different texts use different conventions.
       In those cases we pick some reasonably common convention and stick to
       it.
       We have already mentioned that the term "natural number" has
       varying definitions (some start from 0, others start from 1), but
       that is not the only such case.

       A useful example is the set of metavariables used to represent
       arbitrary well-formed formulas (wffs).
       We use an open phi, &#x3c6;, to represent the first arbitrary wff in an
       assertion with one or more wffs; this is a common convention and
       this symbol is easily distinguished from the empty set symbol.
       That said, it is impossible to please everyone or simply "follow
       the literature" because there are many different conventions for
       a variable that represents any arbitrary wff.
       To demonstrate the point,
       here are some conventions for variables that represent an arbitrary
       wff and some texts that use each convention:

       <ul>
       <li>open phi &#x3c6; (and so on): Tarski's papers,
       Rasiowa &amp; Sikorski's
       <i>The Mathematics of Metamathematics</i> (1963),
       Monk's <i>Introduction to Set Theory</i> (1969),
       Enderton's <i>Elements of Set Theory</i> (1977),
       Bell &amp; Machover's <i>A Course in Mathematical Logic</i> (1977),
       Jech's <i>Set Theory</i> (1978),
       Takeuti &amp; Zaring's
       <i>Introduction to Axiomatic Set Theory</i> (1982).
       <li>closed phi &#x3d5; (and so on):
       Levy's <i>Basic Set Theory</i> (1979),
       Kunen's <i>Set Theory</i> (1980),
       Paulson's <i>Isabelle: A Generic Theorem Prover</i> (1994),
       Huth and Ryan's <i>Logic in Computer Science</i> (2004/2006).
       <li>Greek &alpha;, &beta;, &gamma;:
       Duffy's <i>Principles of Automated Theorem Proving</i> (1991).
       <li>Roman A, B, C:
       Kleene's <i>Introduction to Metamathematics</i> (1974),
       Smullyan's <i>First-Order Logic</i> (1968/1995).
       <li>script A, B, C:
       Hamilton's <i>Logic for Mathematicians</i> (1988).
       <li>italic A, B, C:
       Mendelson's <i>Introduction to Mathematical Logic</i> (1997).
       <li>italic P, Q, R:
       Suppes's <i>Axiomatic Set Theory</i> (1972),
       Gries and Schneider's <i>A Logical Approach to Discrete Math</i>
       (1993/1994),
       Rosser's <i>Logic for Mathematicians</i> (2008).
       <li>italic p, q, r:
       Quine's <i>Set Theory and Its Logic</i> (1969),
       Kuratowski &amp; Mostowski's <i>Set Theory</i> (1976).
       <li>italic X, Y, Z:
       Dijkstra and Scholten's
       <i>Predicate Calculus and Program Semantics</i> (1990).
       <li>Fraktur letters:
       Fraenkel et. al's <i>Foundations of Set Theory</i> (1973).
       </ul>

       <br><br>

       <b>Distinctness or freeness</b>

       <br><br>

       Here are some conventions that address distinctness or freeness of a
       variable:

       <ul>
       <li> ` F/ x ph ` is read " ` x ` is not free in (wff) ` ph ` ";
       see ~ df-nf (whose description has some important technical
       details).  Similarly, ` F/_ x A ` is read ` x ` is not free in (class)
       ` A ` , see ~ df-nfc .</li>

       <li>"$d x y $." should be read "Assume x and y are distinct
       variables."</li>

       <li>"$d x ` ph ` $." should be read "Assume x does not occur in phi $."
       Sometimes a theorem is proved using
       ` F/ x ph `  ( ~ df-nf ) in place of
       "$d ` x ph ` $." when a more general result is desired;
       ~ ax-5 can be used to derive the $d version.  For an example of
       how to get from the $d version back to the $e version, see the
       proof of ~ euf from ~ df-eu .</li>

       <li>"$d x A $." should be read "Assume x is not a variable occurring in
       class A."</li>

       <li>"$d x A $.  $d x ps $.  $e |- ` ( x = A -> ( ph <-> ps ) ) ` $."
       is an idiom
       often used instead of explicit substitution, meaning "Assume psi results
       from the proper substitution of A for x in phi."</li>

       <li>" ` |- ( -. A. x x = y -> ... ` " occurs early in some cases, and
       should be read "If x and y are distinct
       variables, then..."  This antecedent provides us with a technical
       device (called a "distinctor" in Section 7 of [Megill] p. 444)
       to avoid the need for the
       $d statement early in our development of predicate calculus, permitting
       unrestricted substitutions as conceptually simple as those in
       propositional calculus.  However, the $d eventually becomes a
       requirement, and after that this device is rarely used.</li>
       </ul>

       <p>
       There is a general technique to replace a <tt>$d x A</tt> or
       <tt>$d x ph</tt> condition in a theorem with the corresponding
       ` F/_ x A ` or ` F/ x ph ` ; here it is.
       ` |- ` T[x, A] where $d ` x A `,
       and you wish to prove ` |- F/_ x A => |- ` T[x, A].
       You apply the theorem substituting ` y ` for ` x ` and ` A ` for ` A ` ,
       where ` y ` is a new dummy variable, so that
       <tt>$d y A</tt> is satisfied.
       You obtain ` |- ` T[y, A], and apply chvar to obtain ` |- `
       T[x, A] (or just use ~ mpbir if T[x, A] binds ` x `).
       The side goal is ` |- ( x = y -> ( ` T[y, A] ` <-> ` T[x, A] ` ) ) ` ,
       where you can use equality theorems, except
       that when you get to a bound variable you use a non-dv bound variable
       renamer theorem like ~ cbval . The section
       ~ mmtheorems32.html#mm3146s also describes the
       metatheorem that underlies this.
       </p>

       <p>
       Standard Metamath verifiers do not distinguish between axioms and
       definitions (both are $a statements).
       In practice, we require that definitions (1) be conservative
       (a definition should not allow an expression
       that previously qualified as a wff but was not provable
       to become provable) and be eliminable
       (there should exist an algorithmic method for converting any
       expression using the definition into
       a logically equivalent expression that previously qualified as a wff).
       To ensure this, we have additional rules on almost all definitions
       ($a statements with a label that does not begin with ax-).
       These additional rules are not applied in a few cases where they
       are too strict ( ~ df-bi , ~ df-clab , ~ df-cleq , and ~ df-clel );
       see those definitions for more information.
       These additional rules for definitions are checked by at least
       mmj2's definition check (see
       <A HREF="https://github.com/digama0/mmj2/blob/master/"
       >mmj2 master</a> file mmj2jar/macros/definitionCheck.js).
       This definition check relies on the database being very much like
       set.mm, down to the names of certain constants and types, so it
       cannot apply to all Metamath databases... but it is useful in set.mm.
       In this definition check, a $a-statement with a given label and
       typecode ` |- ` passes the test if and only if it
       respects the following rules (these rules require that we have
       an unambiguous tree parse, which is checked separately):
       </p>

       <ol>
       <li>The expression must be a biconditional or an equality (i.e. its
       root-symbol must be ` <-> ` or ` = `).
       If the proposed definition passes this first rule, we then
       define its definiendum as its left hand side (LHS) and
       its definiens as its right hand side (RHS).
       We define the *defined symbol* as the root-symbol of the LHS.
       We define a *dummy variable* as a variable occurring
       in the RHS but not in the LHS.
       Note that the "root-symbol" is the root of the considered tree;
       it need not correspond to a single token in the database
       (e.g., see ~ w3o or ~ wsb ).
       </li>
       <li>The defined expression must not appear in any statement
       between its syntax axiom ($a ` wff `) and its definition,
       and the defined expression must not be used in its definiens.
       See ~ df-3an for an example where the same symbol is used in
       different ways (this is allowed).
       </li>
       <li>No two variables occurring in the LHS may share a
       disjoint variable (DV) condition.
       </li>
       <li>All dummy variables are required to be disjoint from any
       other (dummy or not) variable occurring in this labeled expression.
       </li>
       <li>Either
       (a) there must be no non-setvar dummy variables, or
       (b) there must be a justification theorem.
       The justification theorem must be of form
       ` |- ( ` definiens root-symbol definiens' ` ) `
       where definiens' is definiens but the dummy variables are all
       replaced with other unused dummy variables of the same type.
       Note that root-symbol is ` <-> ` or ` = ` , and that setvar
       variables are simply variables with the ` setvar ` typecode.
       </li>
       <li>One of the following must be true:
       (a) there must be no setvar dummy variables,
       (b) there must be a justification theorem as described in rule 5, or
       (c) if there are setvar dummy variables, every one must not be free.
       That is, it must be true that
       ` ( ph -> A. x ph ) ` for each setvar dummy variable ` x `
       where ` ph ` is the definiens.
       We use two different tests for non-freeness; one must succeed
       for each setvar dummy variable ` x ` .
       The first test requires that the setvar dummy variable ` x `
       be syntactically bound
       (this is sometimes called the "fast" test, and this implies
       that we must track binding operators).
       The second test requires a successful
       search for the directly-stated proof of ` ( ph -> A. x ph ) `
       Part c of this rule is how most setvar dummy variables
       are handled.
       </li>
       </ol>

       <p>
       Rule 3 may seem unnecessary, but it is needed.
       Without this rule, you can define something like
       cbar $a wff Foo x y $.
       ${ $d x y $. df-foo $a |- ( Foo x y <-> x = y ) $. $}
       and now "Foo x x" is not eliminable;
       there is no way to prove that it means anything in particular,
       because the definitional theorem that is supposed to be
       responsible for connecting it to the original language wants
       nothing to do with this expression, even though it is well formed.
       </p>
       <p>
       A justification theorem for a definition (if used this way)
       must be proven before the definition that depends on it.
       One example of a justification theorem is ~ vjust .
       The definition ~ df-v ` |- _V = { x | x = x } ` is justified
       by the justification theorem ~ vjust
       ` |- { x | x = x } = { y | y = y }  ` .
       Another example of a justification theorem is ~ trujust ;
       the definition ~ df-tru ` |- ( T. <-> ( A. x x = x -> A. x x = x ) ) `
       is justified by ~ trujust ` |- ( ( A. x x = x -> A. x x = x ) <->
       ( A. y y = y -> A. y y = y ) ) ` .
       </p>

       <p>
       Here is more information about our processes for checking and
       contributing to this work:
       </p>

       <ul>
       <li><b>Multiple verifiers.</b>
       This entire file is verified by multiple independently-implemented
       verifiers when it is checked in, giving us extremely high
       confidence that all proofs follow from the assumptions.
       The checkers also check for various other problems such as
       overly long lines.
       </li>

       <li><b>Maximum text line length is 79 characters.</b>
       You can fix comment line length by running the commands scripts/rewrap
       or <tt>metamath 'read set.mm' 'save proof */c/f'
       'write source set.mm/rewrap' quit</tt> .
       As a general rule, a math string in a comment should be surrounded
       by backquotes on the same line, and if it is too long it should
       be broken into multiple adjacent mathstrings on multiple lines.
       Those commands don't modify the math content of statements.
       In statements we try to break before the outermost important connective
       (not including the typecode and perhaps not the antecedent).
       For examples, see ~ sqrtmulii and ~ absmax .
       </li>

       <li><b>Discouraged information.</b>
       A separate file named "discouraged" lists all
       discouraged statements and uses of them, and this file is checked.
       If you change the use of discouraged things, you will need to change
       this file.
       This makes it obvious when there is a change to anything discouraged
       (triggering further review).
       </li>

       <li><b>LRParser check.</b>
       Metamath verifiers ensure that $p statements follow from previous
       $a and $p statements.
       However, by itself the Metamath language permits certain kinds of
       syntactic ambiguity that we choose to avoid in this database.
       Thus, we require that this database unambiguously parse
       using the "LRParser" check (implemented by at least mmj2).
       (For details, see <A
       HREF="https://github.com/digama0/mmj2/blob/master/"
       >mmj2 master</A> file src/mmj/verify/LRParser.java).
       This check
       <A HREF="https://github.com/metamath/set.mm/pull/754"
       >counters, for example, a devious ambiguous construct
       developed by saueran at oregonstate dot edu</A>
       posted on Mon, 11 Feb 2019 17:32:32 -0800 (PST)
       based on creating definitions with mismatched parentheses.
       <!-- Devious Construct:
       ${
       wleftp $a wff ( ( ph ) $.
       wbothp $a wff ( ph ) $.
       df-leftp $a |- ( ( ( ph ) <-> -. ph ) $.
       df-bothp $a |- ( ( ph ) <-> ph ) $.
       anything $p |- ph $=
       ( wbothp wn wi wleftp df-leftp biimpi df-bothp mpbir mpbi simplim
       ax-mp) ABZAMACZDZCZMOEZOCQAEZNDZRNAFGSHIOFJMNKLAHJ $.
       $}
       -->

       <li><b>Proposing specific changes.</b>
       Please propose specific changes as pull requests (PRs) against the
       "develop" branch of set.mm, at:
       ~ https://github.com/metamath/set.mm/tree/develop
       </li>

       <li><b>Community.</b>
       We encourage anyone interested in Metamath to join our mailing list:
       ~ https://groups.google.com/forum/#!forum/metamath .
       </li>
       </ul>
       </HTML>

       (Contributed by DAW, 27-Dec-2016.)  (New usage is discouraged.) $)
    conventions $p |- ph $=
      (  ) B $.
  $}

  ${
    conventions-label.1 $e |- ph $.
    $(
       <HTML>
       <p>
       The following explains some of the label conventions in use
       in the Metamath Proof Explorer ("set.mm").
       For the general conventions, see ~ conventions .
       </p>

       <p>
       Every statement has a unique identifying label, which serves the
       same purpose as an equation number in a book.
       We use various label naming conventions to provide
       easy-to-remember hints about their contents.
       Labels are not a 1-to-1 mapping, because that would create
       long names that would be difficult to remember and tedious to type.
       Instead, label names are relatively short while
       suggesting their purpose.
       Names are occasionally changed to make them more consistent or
       as we find better ways to name them.
       Here are a few of the label naming conventions:
       </p>

       <ul>
       <li><b>Axioms, definitions, and wff syntax.</b>
       As noted earlier, axioms are named "ax-NAME",
       proofs of proven axioms are named "axNAME", and
       definitions are named "df-NAME".
       Wff syntax declarations have labels beginning with "w"
       followed by short fragment suggesting its purpose.
       </li>

       <li><b>Hypotheses.</b>
       Hypotheses have the name of the final axiom or theorem, followed by
       ".", followed by a unique id (these ids are usually consecutive integers
       starting with 1, e.g. for ~ rgen "rgen.1 $e |- ( x e. A -> ph ) $."
       or letters corresponding to the (main) class variable used in the
       hypothesis, e.g. for ~ mdet0 : "mdet0.d $e |- D = ( N maDet R ) $.").
       </li>

       <li><b>Common names.</b>
       If a theorem has a well-known name, that name (or a short version of it)
       is sometimes used directly. Examples include
       ~ barbara and ~ stirling .
       </li>

       <li><b>Principia Mathematica.</b>
       Proofs of theorems from Principia Mathematica often use a special
       naming convention: "pm" followed by its identifier.
       For example, Theorem *2.27 of [WhiteheadRussell] p. 104 is named
       ~ pm2.27 .
       </li>

       <li><b>19.x series of theorems.</b>
       Similar to the conventions for the theorems from Principia Mathematica,
       theorems from Section 19 of [Margaris] p. 90 often use a special naming
       convention: "19." resp. "r19." (for corresponding restricted quantifier
       versions) followed by its identifier.
       For example, Theorem 38 from Section 19 of [Margaris] p. 90 is labeled
       ~ 19.38 , and the restricted quantifier version of Theorem 21 from
       Section 19 of [Margaris] p. 90 is labeled ~ r19.21 .
       </li>

       <li><b>Characters to be used for labels</b>
       Although the specification of Metamath allows for dots/periods "." in
       any label, it is usually used only in labels for hypotheses (see above).
       Exceptions are the labels of theorems from Principia Mathematica and the
       19.x series of theorems from Section 19 of [Margaris] p. 90 (see above)
       and ~ 0.999... .  Furthermore, the underscore "_" should not be used.
       </li>

       <li><b>Syntax label fragments.</b>
       Most theorems are named using a concatenation of syntax label fragments
       (omitting variables) that represent the important part of the theorem's
       main conclusion.  Almost every syntactic construct has a definition
       labeled "df-NAME", and normally NAME is the syntax label fragment. For
       example, the class difference construct ` ( A \ B ) `  is defined in
       ~ df-dif , and thus its syntax label fragment is "dif".  Similarly, the
       subclass relation ` A C_ B ` has syntax label fragment "ss"
       because it is defined in ~ df-ss .  Most theorem names follow from
       these fragments, for example, the theorem proving ` ( A \ B ) C_ A `
       involves a class difference ("dif") of a subset ("ss"), and thus is
       labeled ~ difss .  There are many other syntax label fragments, e.g.,
       singleton construct ` { A } ` has syntax label fragment "sn" (because it
       is defined in ~ df-sn ), and the pair construct ` { A , B } ` has
       fragment "pr" ( from ~ df-pr ).  Digits are used to represent
       themselves.  Suffixes (e.g., with numbers) are sometimes used to
       distinguish multiple theorems that would otherwise produce the same
       label.
       </li>

       <li><b>Phantom definitions.</b>
       In some cases there are common label fragments for something that could
       be in a definition, but for technical reasons is not.  The is-element-of
       (is member of) construct ` A e. B ` does not have a df-NAME definition;
       in this case its syntax label fragment is "el".  Thus, because the
       theorem beginning with ` ( A e. ( B \ { C } ) ` uses is-element-of
       ("el") of a class difference ("dif") of a singleton ("sn"), it is
       labeled ~ eldifsn .  An "n" is often used for negation ( ` -. ` ), e.g.,
       ~ nan .
       </li>

       <li><b>Exceptions.</b>
       Sometimes there is a definition df-NAME but the label fragment is not
       the NAME part.  The definition should note this exception as part of its
       definition.  In addition, the table below attempts to list all such
       cases and marks them in bold.  For example, the label fragment "cn"
       represents complex numbers ` CC ` (even though its definition is in
       ~ df-c ) and "re" represents real numbers ` RR ` ( definition ~ df-r ).
       The empty set ` (/) ` often uses fragment 0, even though it is defined
       in ~ df-nul .  The syntax construct ` ( A + B ) ` usually uses the
       fragment "add" (which is consistent with ~ df-add ), but "p" is used as
       the fragment for constant theorems.  Equality ` ( A = B ) ` often uses
       "e" as the fragment.  As a result, "two plus two equals four" is labeled
       ~ 2p2e4 .
       </li>

       <li><b>Other markings.</b>
       In labels we sometimes use "com" for "commutative", "ass" for
       "associative", "rot" for "rotation", and "di" for "distributive".
       </li>

       <li><b>Focus on the important part of the conclusion.</b>
       Typically the conclusion is the part the user is most interested in.
       So, a rough guideline is that a label typically provides a hint
       about only the conclusion; a label rarely says anything about the
       hypotheses or antecedents.
       If there are multiple theorems with the same conclusion
       but different hypotheses/antecedents, then the labels will need
       to differ; those label differences should emphasize what is different.
       There is no need to always fully describe the conclusion; just
       identify the important part. For example,
       ~ cos0 is the theorem that provides the value for the cosine of 0;
       we would need to look at the theorem itself to see what that value is.
       The label "cos0" is concise and we use it instead of "cos0eq1".
       There is no need to add the "eq1", because there will never be a case
       where we have to disambiguate between different values produced by
       the cosine of zero, and we generally prefer shorter labels if
       they are unambiguous.
       </li>

       <li><b>Closures and values.</b>
       As noted above, if a function df-NAME is defined, there is typically a
       proof of its value labeled "NAMEval" and of its closure labeld "NAMEcl".
       E.g., for cosine ( ~ df-cos ) we have value ~ cosval and closure
       ~ coscl .
       </li>

       <li><b>Special cases.</b>
       Sometimes, syntax and related markings are insufficient to distinguish
       different theorems.  For example, there are over a hundred different
       implication-only theorems.  They are grouped in a more ad-hoc way that
       attempts to make their distinctions clearer.  These often use
       abbreviations such as "mp" for "modus ponens", "syl" for syllogism, and
       "id" for "identity".  It is especially hard to give good names in the
       propositional calculus section because there are so few primitives.
       However, in most cases this is not a serious problem.  There are a few
       very common theorems like ~ ax-mp and ~ syl that you will have no
       trouble remembering, a few theorem series like syl*anc and simp* that
       you can use parametrically, and a few other useful glue things for
       destructuring 'and's and 'or's (see ~ natded for a list), and that is
       about all you need for most things.  As for the rest, you can just
       assume that if it involves at most three connectives, then it is
       probably already proved in set.mm, and searching for it will give you
       the label.
       </li>

       <li><b>Suffixes.</b>
       Suffixes are used to indicate the form of a theorem (see above).
       Additionally, we sometimes suffix with "v" the label of a theorem
       eliminating a hypothesis such as ` F/ x ph ` in ~ 19.21 via the use of
       disjoint variable conditions combined with ~ nfv .  If two (or three)
       such hypotheses are eliminated, the suffix "vv" resp. "vvv" is used,
       e.g. ~ exlimivv .
       Conversely, we sometimes suffix with "f" the label of a theorem
       introducing such a hypothesis to eliminate the need for the disjoint
       variable condition; e.g. ~ euf derived from ~ df-eu .  The "f" stands
       for "not free in" which is less restrictive than "does not occur in."
       The suffix "b" often means "biconditional" ( ` <-> ` , "iff" , "if and
       only if"), e.g. ~ sspwb .
       We sometimes suffix with "s" the label of an inference that manipulates
       an antecedent, leaving the consequent unchanged.  The "s" means that the
       inference eliminates the need for a syllogism ( ~ syl ) -type inference
       in a proof.  A theorem label is suffixed with "ALT" if it provides an
       alternate less-preferred proof of a theorem (e.g., the proof is
       clearer but uses more axioms than the preferred version).
       The "ALT" may be further suffixed with a number if there is more
       than one alternate theorem.
       Furthermore, a theorem label is suffixed with "OLD" if there is a new
       version of it and the OLD version is obsolete (and will be removed
       within one year).

       Finally, it should be mentioned that suffixes can be combined, for
       example in ~ cbvaldva ( ~ cbval in deduction form "d" with a not free
       variable replaced by a disjoint variable condition "v" with a
       conjunction as antecedent "a").  As a general rule, the suffixes for
       the theorem forms ("i", "d" or "g") should be the first of multiple
       suffixes, as for example in ~ vtocldf or ~ rabeqif .

       Here is a non-exhaustive list of common suffixes:
       <ul>
       <li> a : theorem having a conjunction as antecedent</li>
       <li> b : theorem expressing a logical equivalence</li>
       <li> c : contraction (e.g., ~ sylc , ~ syl2anc ), commutes
       (e.g., ~ biimpac )</li>
       <li> d : theorem in deduction form</li>
       <li> f : theorem with a hypothesis such as ` F/ x ph `</li>
       <li> g : theorem in closed form having an "is a set" antecedent</li>
       <li> i : theorem in inference form</li>
       <li> l : theorem concerning something at the left</li>
       <li> r : theorem concerning something at the right</li>
       <li> r : theorem with something reversed (e.g., a biconditional)</li>
       <li> s : inference that manipulates an antecedent ("s" refers to an
       application of ~ syl that is eliminated)</li>
       <li> v : theorem with one (main) disjoint variable condition</li>
       <li> vv : theorem with two (main) disjoint variable conditions</li>
       <li> w : weak(er) form of a theorem</li>
       <li> ALT : alternate proof of a theorem</li>
       <li> ALTV : alternate version of a theorem or definition</li>
       <li> OLD : old/obsolete version of a theorem/definition/proof</li>
       </ul>
       </li>

       <li><b>Reuse.</b>
       When creating a new theorem or axiom, try to reuse abbreviations used
       elsewhere.  A comment should explain the first use of an abbreviation.
       </li>
       </ul>

       <br>

       The following table shows some commonly used abbreviations in labels, in
       alphabetical order.  For each abbreviation we provide a mnenomic, the
       source theorem or the assumption defining it, an expression showing what
       it looks like, whether or not it is a "syntax fragment" (an abbreviation
       that indicates a particular kind of syntax), and hyperlinks to label
       examples that use the abbreviation.  The abbreviation is bolded if there
       is a df-NAME definition but the label fragment is not NAME.  This is
       <i>not</i> a complete list of abbreviations, though we do want this to
       eventually be a complete list of exceptions.
       <table border="1" id="naming-abbreviation-table">
       <tr><th>Abbreviation</th><th>Mnenomic</th><th>Source</th>
       <th>Expression</th><th>Syntax?</th><th>Example(s)</th></tr>
       <tr><td>a</td><td>and (suffix)</td><td> </td>
       <td> </td><td>No</td><td> ~ biimpa , ~ rexlimiva </td></tr>
       <tr><td>abl</td><td>Abelian group</td><td> ~ df-abl </td>
       <td> ` Abel ` </td><td>Yes</td><td> ~ ablgrp , ~ zringabl </td></tr>
       <tr><td>abs</td><td>absorption</td><td> </td> <td> </td><td>No</td>
       <td> ~ ressabs </td></tr>
       <tr><td>abs</td><td>absolute value (of a complex number)</td>
       <td> ~ df-abs </td><td> ` ( abs `` A ) ` </td><td>Yes</td>
       <td> ~ absval , ~ absneg , ~ abs1 </td></tr>
       <tr><td>ad</td><td>adding</td><td> </td>
       <td> </td><td>No</td><td> ~ adantr , ~ ad2antlr </td></tr>
       <tr><td>add</td><td>add (see "p")</td><td> ~ df-add </td>
       <td> ` ( A + B ) ` </td><td>Yes</td>
       <td> ~ addcl , ~ addcom , ~ addass </td></tr>
       <tr><td>al</td><td>"for all"</td><td> </td>
       <td> ` A. x ph ` </td><td>No</td><td> ~ alim , ~ alex </td></tr>
       <tr><td>ALT</td><td>alternative/less preferred (suffix)</td><td> </td>
       <td> </td><td>No</td><td> ~ idALT </td></tr>
       <tr><td>an</td><td>and</td><td> ~ df-an </td>
       <td> ` ( ph /\ ps ) ` </td><td>Yes</td>
       <td> ~ anor , ~ iman , ~ imnan </td></tr>
       <tr><td>ant</td><td>antecedent</td><td> </td>
       <td> </td><td>No</td><td> ~ adantr </td></tr>
       <tr><td>ass</td><td>associative</td><td> </td>
       <td> </td><td>No</td><td> ~ biass , ~ orass , ~ mulass </td></tr>
       <tr><td>asym</td><td>asymmetric, antisymmetric</td><td> </td>
       <td> </td><td>No</td><td> ~ intasym , ~ asymref , ~ posasymb </td></tr>
       <tr><td>ax</td><td>axiom</td><td> </td>
       <td> </td><td>No</td><td> ~ ax6dgen , ~ ax1cn </td></tr>
       <tr><td><b>bas</b>, base </td>
       <td>base (set of an extensible structure)</td><td> ~ df-base </td>
       <td> ` ( Base `` S ) ` </td><td>Yes</td>
       <td> ~ baseval , ~ ressbas , ~ cnfldbas </td></tr>
       <tr><td><b>b</b>, bi</td><td>biconditional ("iff", "if and only if")
       </td><td> ~ df-bi </td><td> ` ( ph <-> ps ) ` </td><td>Yes</td>
       <td> ~ impbid , ~ sspwb </td></tr>
       <tr><td>br</td><td>binary relation</td><td> ~ df-br </td>
       <td> ` A R B ` </td><td>Yes</td><td> ~ brab1 , ~ brun </td></tr>
       <tr><td>cbv</td><td>change bound variable</td><td> </td><td> </td>
       <td>No</td><td> ~ cbvalivw , ~ cbvrex </td></tr>
       <tr><td>cl</td><td>closure</td><td> </td><td> </td><td>No</td>
       <td> ~ ifclda , ~ ovrcl , ~ zaddcl </td></tr>
       <tr><td><b>cn</b></td><td>complex numbers</td><td> ~ df-c </td>
       <td> ` CC ` </td><td>Yes</td><td> ~ nnsscn , ~ nncn </td></tr>
       <tr><td>cnfld</td><td>field of complex numbers</td><td> ~ df-cnfld </td>
       <td> ` CCfld ` </td><td>Yes</td><td> ~ cnfldbas , ~ cnfldinv </td></tr>
       <tr><td>cntz</td><td>centralizer</td><td> ~ df-cntz </td>
       <td> ` ( Cntz `` M ) ` </td><td>Yes</td>
       <td> ~ cntzfval , ~ dprdfcntz </td></tr>
       <tr><td>cnv</td><td>converse</td><td> ~ df-cnv </td>
       <td> ` ``' A ` </td><td>Yes</td><td> ~ opelcnvg , ~ f1ocnv </td></tr>
       <tr><td>co</td><td>composition</td><td> ~ df-co </td>
       <td> ` ( A o. B ) ` </td><td>Yes</td><td> ~ cnvco , ~ fmptco </td></tr>
       <tr><td>com</td><td>commutative</td><td> </td>
       <td> </td><td>No</td><td> ~ orcom , ~ bicomi , ~ eqcomi </td></tr>
       <tr><td>con</td><td>contradiction, contraposition</td><td> </td>
       <td> </td><td>No</td><td> ~ condan , ~ con2d </td></tr>
       <tr><td>csb</td><td>class substitution</td><td> ~ df-csb </td>
       <td> ` [_ A / x ]_ B ` </td><td>Yes</td>
       <td> ~ csbid , ~ csbie2g </td></tr>
       <tr><td>cyg</td><td>cyclic group</td><td> ~ df-cyg </td>
       <td> ` CycGrp ` </td><td>Yes</td>
       <td> ~ iscyg , ~ zringcyg </td></tr>
       <tr><td>d</td><td>deduction form (suffix)</td><td> </td>
       <td> </td><td>No</td><td> ~ idd , ~ impbid </td></tr>
       <tr><td>df</td><td>(alternate) definition (prefix)</td><td> </td>
       <td> </td><td>No</td><td> ~ dfrel2 , ~ dffn2 </td></tr>
       <tr><td>di, distr</td><td>distributive</td><td> </td>
       <td> </td><td>No</td>
       <td> ~ andi , ~ imdi , ~ ordi , ~ difindi , ~ ndmovdistr </td></tr>
       <tr><td>dif</td><td>class difference</td><td> ~ df-dif </td>
       <td> ` ( A \ B ) ` </td><td>Yes</td>
       <td> ~ difss , ~ difindi </td></tr>
       <tr><td>div</td><td>division</td><td> ~ df-div </td>
       <td> ` ( A / B ) ` </td><td>Yes</td>
       <td> ~ divcl , ~ divval , ~ divmul </td></tr>
       <tr><td>dm</td><td>domain</td><td> ~ df-dm </td>
       <td> ` dom A ` </td><td>Yes</td><td> ~ dmmpt , ~ iswrddm0 </td></tr>
       <tr><td><b>e, eq, equ</b></td><td>equals</td><td> ~ df-cleq </td>
       <td> ` A = B ` </td><td>Yes</td>
       <td> ~ 2p2e4 , ~ uneqri , ~ equtr </td></tr>
       <tr><td>edg</td><td>edge</td><td> ~ df-edg </td>
       <td> ` ( Edg `` G ) ` </td><td>Yes</td>
       <td> ~ edgopval , ~ usgredgppr </td></tr>
       <tr><td>el</td><td>element of</td><td> </td>
       <td> ` A e. B ` </td><td>Yes</td>
       <td> ~ eldif , ~ eldifsn , ~ elssuni </td></tr>
       <tr><td>eu</td><td>"there exists exactly one"</td><td> ~ df-eu </td>
       <td> ` E! x ph ` </td><td>Yes</td><td> ~ euex , ~ euabsn </td></tr>
       <tr><td>ex</td><td>exists (i.e. is a set)</td><td> </td>
       <td> </td><td>No</td><td> ~ brrelex , ~ 0ex </td></tr>
       <tr><td>ex</td><td>"there exists (at least one)"</td><td> ~ df-ex </td>
       <td> ` E. x ph ` </td><td>Yes</td><td> ~ exim , ~ alex </td></tr>
       <tr><td>exp</td><td>export</td><td> </td>
       <td> </td><td>No</td><td> ~ expt , ~ expcom </td></tr>
       <tr><td>f</td><td>"not free in" (suffix)</td><td> </td>
       <td> </td><td>No</td><td> ~ equs45f , ~ sbf </td></tr>
       <tr><td>f</td><td>function</td><td> ~ df-f </td>
       <td> ` F : A --> B ` </td><td>Yes</td><td> ~ fssxp , ~ opelf </td></tr>
       <tr><td>fal</td><td>false</td><td> ~ df-fal </td>
       <td> ` F. ` </td><td>Yes</td><td> ~ bifal , ~ falantru </td></tr>
       <tr><td>fi</td><td>finite intersection</td><td> ~ df-fi </td>
       <td> ` ( fi `` B ) ` </td><td>Yes</td><td> ~ fival , ~ inelfi </td></tr>
       <tr><td><b>fi</b>, fin</td><td>finite</td><td> ~ df-fin </td>
       <td> ` Fin ` </td><td>Yes</td>
       <td> ~ isfi , ~ snfi , ~ onfin </td></tr>
       <tr><td><b>fld</b></td><td>field (Note: there is an alternative
       definition ` Fld ` of a field, see ~ df-fld )</td><td> ~ df-field </td>
       <td> ` Field ` </td><td>Yes</td><td> ~ isfld , ~ fldidom </td></tr>
       <tr><td>fn</td><td>function with domain</td><td> ~ df-fn </td>
       <td> ` A Fn B ` </td><td>Yes</td><td> ~ ffn , ~ fndm </td></tr>
       <tr><td>frgp</td><td>free group</td><td> ~ df-frgp </td>
       <td> ` ( freeGrp `` I ) ` </td><td>Yes</td>
       <td> ~ frgpval , ~ frgpadd </td></tr>
       <tr><td>fsupp</td><td>finitely supported function</td>
       <td> ~ df-fsupp </td><td> ` R finSupp Z ` </td><td>Yes</td>
       <td> ~ isfsupp , ~ fdmfisuppfi , ~ fsuppco </td></tr>
       <tr><td>fun</td><td>function</td><td> ~ df-fun </td>
       <td> ` Fun F ` </td><td>Yes</td><td> ~ funrel , ~ ffun </td></tr>
       <tr><td>fv</td><td>function value</td><td> ~ df-fv </td>
       <td> ` ( F `` A ) ` </td><td>Yes</td><td> ~ fvres , ~ swrdfv </td></tr>
       <tr><td>fz</td><td>finite set of sequential integers</td>
       <td> ~ df-fz </td>
       <td> ` ( M ... N ) ` </td><td>Yes</td><td> ~ fzval , ~ eluzfz </td></tr>
       <tr><td>fz0</td><td>finite set of sequential nonnegative integers</td>
       <td>  </td>
       <td> ` ( 0 ... N ) ` </td><td>Yes</td><td> ~ nn0fz0 , ~ fz0tp </td></tr>
       <tr><td>fzo</td><td>half-open integer range</td><td> ~ df-fzo </td>
       <td> ` ( M ..^ N ) ` </td><td>Yes</td>
       <td> ~ elfzo , ~ elfzofz </td></tr>
       <tr><td>g</td><td>more general (suffix); eliminates "is a set"
       hypothsis</td><td> </td>
       <td> </td><td>No</td><td> ~ uniexg </td></tr>
       <tr><td>gr</td><td>graph</td><td> </td>
       <td> </td><td>No</td><td> ~ uhgrf , ~ isumgr , ~ usgrres1 </td></tr>
       <tr><td>grp</td><td>group</td><td> ~ df-grp </td>
       <td> ` Grp ` </td><td>Yes</td><td> ~ isgrp , ~ tgpgrp </td></tr>
       <tr><td>gsum</td><td>group sum</td><td> ~ df-gsum </td>
       <td> ` ( G gsum F ) ` </td><td>Yes</td>
       <td> ~ gsumval , ~ gsumwrev </td></tr>
       <tr><td>hash</td><td>size (of a set)</td><td> ~ df-hash </td>
       <td> ` ( # `` A ) ` </td><td>Yes</td>
       <td> ~ hashgval , ~ hashfz1 , ~ hashcl </td></tr>
       <tr><td>hb</td><td>hypothesis builder (prefix)</td><td> </td>
       <td> </td><td>No</td><td> ~ hbxfrbi , ~ hbald , ~ hbequid </td></tr>
       <tr><td>hm</td><td>(monoid, group, ring) homomorphism</td><td> </td>
       <td> </td><td>No</td><td> ~ ismhm , ~ isghm , ~ isrhm </td></tr>
       <tr><td>i</td><td>inference (suffix)</td><td> </td>
       <td> </td><td>No</td><td> ~ eleq1i , ~ tcsni </td></tr>
       <tr><td>i</td><td>implication (suffix)</td><td> </td>
       <td> </td><td>No</td><td> ~ brwdomi , ~ infeq5i  </td></tr>
       <tr><td>id</td><td>identity</td><td> </td>
       <td> </td><td>No</td><td> ~ biid </td></tr>
       <tr><td>iedg</td><td>indexed edge</td><td> ~ df-iedg </td>
       <td> ` ( iEdg `` G ) ` </td><td>Yes</td>
       <td> ~ iedgval0 , ~ edgiedgb </td></tr>
       <tr><td>idm</td><td>idempotent</td><td> </td>
       <td> </td><td>No</td><td> ~ anidm , ~ tpidm13 </td></tr>
       <tr><td>im, <b>imp</b></td><td>implication (label often omitted)</td>
       <td> ~ df-im </td><td> ` ( A -> B ) ` </td><td>Yes</td>
       <td> ~ iman , ~ imnan , ~ impbidd </td></tr>
       <tr><td>ima</td><td>image</td><td> ~ df-ima </td>
       <td> ` ( A " B ) ` </td><td>Yes</td><td> ~ resima , ~ imaundi </td></tr>
       <tr><td>imp</td><td>import</td><td> </td>
       <td> </td><td>No</td><td> ~ biimpa , ~ impcom </td></tr>
       <tr><td>in</td><td>intersection</td><td> ~ df-in </td>
       <td> ` ( A i^i B ) ` </td><td>Yes</td><td> ~ elin , ~ incom </td></tr>
       <tr><td>inf</td><td>infimum</td><td> ~ df-inf </td>
       <td> ` inf ( RR+ , RR* , < ) ` </td><td>Yes</td>
       <td> ~ fiinfcl , ~ infiso </td></tr>
       <tr><td>is...</td><td>is (something a) ...?</td><td> </td>
       <td> </td><td>No</td><td> ~ isring </td></tr>
       <tr><td>j</td><td>joining, disjoining</td><td> </td>
       <td> </td><td>No</td><td> ~ jc , ~ jaoi  </td></tr>
       <tr><td>l</td><td>left</td><td> </td>
       <td> </td><td>No</td><td> ~ olcd , ~ simpl  </td></tr>
       <tr><td>map</td><td>mapping operation or set exponentiation</td>
       <td> ~ df-map </td><td> ` ( A ^m B ) ` </td><td>Yes</td>
       <td> ~ mapvalg , ~ elmapex </td></tr>
       <tr><td>mat</td><td>matrix</td><td> ~ df-mat </td>
       <td> ` ( N Mat R ) ` </td><td>Yes</td>
       <td> ~ matval , ~ matring </td></tr>
       <tr><td>mdet</td><td>determinant (of a square matrix)</td>
       <td> ~ df-mdet </td><td> ` ( N maDet R ) ` </td><td>Yes</td>
       <td> ~ mdetleib , ~ mdetrlin </td></tr>
       <tr><td>mgm</td><td>magma</td><td> ~ df-mgm </td>
       <td> ` Magma ` </td><td>Yes</td>
       <td> ~ mgmidmo , ~ mgmlrid , ~ ismgm </td></tr>
       <tr><td>mgp</td><td>multiplicative group</td><td> ~ df-mgp </td>
       <td> ` ( mulGrp `` R ) ` </td><td>Yes</td>
       <td> ~ mgpress , ~ ringmgp </td></tr>
       <tr><td>mnd</td><td>monoid</td><td> ~ df-mnd </td>
       <td> ` Mnd ` </td><td>Yes</td><td> ~ mndass , ~ mndodcong </td></tr>
       <tr><td>mo</td><td>"there exists at most one"</td><td> ~ df-mo </td>
       <td> ` E* x ph ` </td><td>Yes</td><td> ~ eumo , ~ moim </td></tr>
       <tr><td>mp</td><td>modus ponens</td><td> ~ ax-mp </td>
       <td> </td><td>No</td><td> ~ mpd , ~ mpi </td></tr>
       <tr><td>mpt</td><td>modus ponendo tollens</td><td></td>
       <td> </td><td>No</td><td> ~ mptnan , ~ mptxor </td></tr>
       <tr><td>mpt</td><td>maps-to notation for a function</td>
       <td> ~ df-mpt </td><td> ` ( x e. A |-> B ) ` </td><td>Yes</td>
       <td> ~ fconstmpt , ~ resmpt </td></tr>
       <tr><td>mpt2</td><td>maps-to notation for an operation</td>
       <td> ~ df-mpt2 </td><td> ` ( x e. A , y e. B |-> C ) ` </td><td>Yes</td>
       <td> ~ mpt2mpt , ~ resmpt2 </td></tr>
       <tr><td>mul</td><td>multiplication (see "t")</td><td> ~ df-mul </td>
       <td> ` ( A x. B ) ` </td><td>Yes</td>
       <td> ~ mulcl , ~ divmul , ~ mulcom , ~ mulass </td></tr>
       <tr><td>n, not</td><td>not</td><td> </td>
       <td> ` -. ph ` </td><td>Yes</td>
       <td> ~ nan , ~ notnotr </td></tr>
       <tr><td>ne</td><td>not equal</td><td>df-ne</td><td> ` A =/= B ` </td>
       <td>Yes</td><td> ~ exmidne , ~ neeqtrd </td></tr>
       <tr><td>nel</td><td>not element of</td><td>df-nel</td><td> ` A e/ B `
       </td>
       <td>Yes</td><td> ~ neli , ~ nnel </td></tr>
       <tr><td>ne0</td><td>not equal to zero (see n0)</td><td></td>
       <td> ` =/= 0 ` </td><td>No</td>
       <td> ~ negne0d , ~ ine0 , ~ gt0ne0 </td></tr>
       <tr><td>nf</td><td> "not free in" (prefix)</td><td> </td>
       <td> </td><td>No</td><td> ~ nfnd </td></tr>
       <tr><td>ngp</td><td>normed group</td><td> ~ df-ngp </td>
       <td> ` NrmGrp ` </td><td>Yes</td><td>  ~ isngp , ~ ngptps </td></tr>
       <tr><td>nm</td><td>norm (on a group or ring)</td><td> ~ df-nm </td>
       <td> ` ( norm `` W ) ` </td><td>Yes</td>
       <td>  ~ nmval , ~ subgnm </td></tr>
       <tr><td>nn</td><td>positive integers</td><td> ~ df-nn </td>
       <td> ` NN ` </td><td>Yes</td><td>  ~ nnsscn , ~ nncn </td></tr>
       <tr><td><b>nn0</b></td><td>nonnegative integers</td><td> ~ df-n0 </td>
       <td> ` NN0 ` </td><td>Yes</td><td>  ~ nnnn0 , ~ nn0cn </td></tr>
       <tr><td>n0</td><td>not the empty set (see ne0)</td><td></td>
       <td> ` =/= (/) ` </td><td>No</td><td> ~ n0i , ~ vn0 , ~ ssn0 </td></tr>
       <tr><td>OLD</td><td>old, obsolete (to be removed soon)</td><td> </td>
       <td> </td><td>No</td><td> ~ 19.43OLD </td></tr>
       <tr><td>op</td><td>ordered pair</td><td> ~ df-op </td>
       <td> ` <. A , B >. ` </td><td>Yes</td><td>  ~ dfopif , ~ opth </td></tr>
       <tr><td>or</td><td>or</td><td> ~ df-or </td>
       <td> ` ( ph \/ ps ) ` </td><td>Yes</td>
       <td> ~ orcom , ~ anor </td></tr>
       <tr><td>ot</td><td>ordered triple</td><td> ~ df-ot </td>
       <td> ` <. A , B , C >. ` </td><td>Yes</td>
       <td>  ~ euotd , ~ fnotovb </td></tr>
       <tr><td>ov</td><td>operation value</td><td> ~ df-ov </td>
       <td> ` ( A F B ) ` </td><td>Yes
       </td><td>  ~ fnotovb , ~ fnovrn </td></tr>
       <tr><td><b>p</b></td><td>plus (see "add"), for all-constant
       theorems</td><td> ~ df-add </td>
       <td> ` ( 3 + 2 ) = 5 ` </td><td>Yes</td>
       <td> ~ 3p2e5 </td></tr>
       <tr><td>pfx</td><td>prefix</td><td> ~ df-pfx </td>
       <td> ` ( W prefix L ) ` </td><td>Yes</td>
       <td> ~ pfxlen , ~ ccatpfx </td></tr>
       <tr><td>pm</td><td>Principia Mathematica</td><td> </td>
       <td> </td><td>No</td><td> ~ pm2.27 </td></tr>
       <tr><td>pm</td><td>partial mapping (operation)</td><td> ~ df-pm </td>
       <td> ` ( A ^pm B ) ` </td><td>Yes</td><td> ~ elpmi , ~ pmsspw </td></tr>
       <tr><td>pr</td><td>pair</td><td> ~ df-pr </td>
       <td> ` { A , B } ` </td><td>Yes</td>
       <td> ~ elpr , ~ prcom , ~ prid1g , ~ prnz </td></tr>
       <tr><td>prm, <b>prime</b></td><td>prime (number)</td><td> ~ df-prm </td>
       <td> ` Prime ` </td><td>Yes</td><td> ~ 1nprm , ~ dvdsprime </td></tr>
       <tr><td>pss</td><td>proper subset</td><td> ~ df-pss </td>
       <td> ` A C. B ` </td><td>Yes</td><td> ~ pssss , ~ sspsstri </td></tr>
       <tr><td>q</td><td> rational numbers ("quotients")</td><td> ~ df-q </td>
       <td> ` QQ ` </td><td>Yes</td><td> ~ elq </td></tr>
       <tr><td>r</td><td>right</td><td> </td>
       <td> </td><td>No</td><td> ~ orcd , ~ simprl  </td></tr>
       <tr><td>rab</td><td>restricted class abstraction</td>
       <td> ~ df-rab </td><td> ` { x e. A | ph } ` </td><td>Yes</td>
       <td> ~ rabswap , ~ df-oprab </td></tr>
       <tr><td>ral</td><td>restricted universal quantification</td>
       <td> ~ df-ral </td><td> ` A. x e. A ph ` </td><td>Yes</td>
       <td> ~ ralnex , ~ ralrnmpt2 </td></tr>
       <tr><td>rcl</td><td>reverse closure</td><td> </td>
       <td> </td><td>No</td><td> ~ ndmfvrcl , ~ nnarcl </td></tr>
       <tr><td><b>re</b></td><td>real numbers</td><td> ~ df-r </td>
       <td> ` RR ` </td><td>Yes</td><td> ~ recn , ~ 0re </td></tr>
       <tr><td>rel</td><td>relation</td><td> ~ df-rel </td><td> ` Rel A ` </td>
       <td>Yes</td><td> ~ brrelex , ~ relmpt2opab </td></tr>
       <tr><td>res</td><td>restriction</td><td> ~ df-res </td>
       <td> ` ( A |`` B ) ` </td><td>Yes</td>
       <td> ~ opelres , ~ f1ores </td></tr>
       <tr><td>reu</td><td>restricted existential uniqueness</td>
       <td> ~ df-reu </td><td> ` E! x e. A ph ` </td><td>Yes</td>
       <td> ~ nfreud , ~ reurex </td></tr>
       <tr><td>rex</td><td>restricted existential quantification</td>
       <td> ~ df-rex </td><td> ` E. x e. A ph ` </td><td>Yes</td>
       <td> ~ rexnal , ~ rexrnmpt2 </td></tr>
       <tr><td>rmo</td><td>restricted "at most one"</td>
       <td> ~ df-rmo </td><td> ` E* x e. A ph ` </td><td>Yes</td>
       <td> ~ nfrmod , ~ nrexrmo </td></tr>
       <tr><td>rn</td><td>range</td><td> ~ df-rn </td><td> ` ran A ` </td>
       <td>Yes</td><td> ~ elrng , ~ rncnvcnv </td></tr>
       <tr><td>rng</td><td>(unital) ring</td><td> ~ df-ring </td>
       <td> ` Ring ` </td><td>Yes</td>
       <td> ~ ringidval , ~ isring , ~ ringgrp </td></tr>
       <tr><td>rot</td><td>rotation</td><td> </td>
       <td> </td><td>No</td><td> ~ 3anrot , ~ 3orrot </td></tr>
       <tr><td>s</td><td>eliminates need for syllogism (suffix)</td>
       <td> </td> <td> </td><td>No</td><td> ~ ancoms </td></tr>
       <tr><td>sb</td><td>(proper) substitution (of a set)</td>
       <td> ~ df-sb </td><td> ` [ y / x ] ph ` </td><td>Yes</td>
       <td> ~ spsbe , ~ sbimi </td></tr>
       <tr><td>sbc</td><td>(proper) substitution of a class</td>
       <td> ~ df-sbc </td><td> ` [. A / x ]. ph ` </td><td>Yes</td>
       <td> ~ sbc2or , ~ sbcth </td></tr>
       <tr><td>sca</td><td>scalar</td><td> ~ df-sca </td>
       <td> ` ( Scalar `` H ) ` </td><td>Yes</td>
       <td> ~ resssca , ~ mgpsca </td></tr>
       <tr><td>simp</td><td>simple, simplification</td><td> </td>
       <td> </td><td>No</td><td> ~ simpl , ~ simp3r3 </td></tr>
       <tr><td>sn</td><td>singleton</td><td> ~ df-sn </td>
       <td> ` { A } ` </td><td>Yes</td><td> ~ eldifsn </td></tr>
       <tr><td>sp</td><td>specialization</td><td> </td>
       <td> </td><td>No</td><td> ~ spsbe , ~ spei </td></tr>
       <tr><td>ss</td><td>subset</td><td> ~ df-ss </td>
       <td> ` A C_ B ` </td><td>Yes</td><td> ~ difss </td></tr>
       <tr><td>struct</td><td>structure</td><td> ~ df-struct </td>
       <td> ` Struct ` </td><td>Yes</td><td> ~ brstruct , ~ structfn </td></tr>
       <tr><td>sub</td><td>subtract</td><td> ~ df-sub </td>
       <td> ` ( A - B ) ` </td><td>Yes</td>
       <td> ~ subval , ~ subaddi </td></tr>
       <tr><td>sup</td><td>supremum</td><td> ~ df-sup </td>
       <td> ` sup ( A , B , < ) ` </td><td>Yes</td>
       <td> ~ fisupcl , ~ supmo </td></tr>
       <tr><td>supp</td><td>support (of a function)</td><td> ~ df-supp </td>
       <td> ` ( F supp Z ) ` </td><td>Yes</td>
       <td> ~ ressuppfi , ~ mptsuppd </td></tr>
       <tr><td>swap</td><td>swap (two parts within a theorem)</td>
       <td> </td><td> </td><td>No</td><td> ~ rabswap , ~ 2reuswap </td></tr>
       <tr><td>syl</td><td>syllogism</td><td> ~ syl </td>
       <td> </td><td>No</td><td> ~ 3syl </td></tr>
       <tr><td>sym</td><td>symmetric</td><td> </td>
       <td> </td><td>No</td><td> ~ df-symdif , ~ cnvsym </td></tr>
       <tr><td>symg</td><td>symmetric group</td><td> ~ df-symg </td>
       <td> ` ( SymGrp `` A ) ` </td><td>Yes</td>
       <td> ~ symghash , ~ pgrpsubgsymg </td></tr>
       <tr><td><b>t</b></td>
       <td>times (see "mul"), for all-constant theorems</td>
       <td> ~ df-mul </td>
       <td> ` ( 3 x. 2 ) = 6 ` </td><td>Yes</td>
       <td> ~ 3t2e6 </td></tr>
       <tr><td>th</td><td>theorem</td><td> </td>
       <td> </td><td>No</td><td> ~ nfth , ~ sbcth , ~ weth </td></tr>
       <tr><td>tp</td><td>triple</td><td> ~ df-tp </td>
       <td> ` { A , B , C } ` </td><td>Yes</td>
       <td> ~ eltpi , ~ tpeq1 </td></tr>
       <tr><td>tr</td><td>transitive</td><td> </td>
       <td> </td><td>No</td><td> ~ bitrd , ~ biantr </td></tr>
       <tr><td>tru</td><td>true</td><td> ~ df-tru </td>
       <td> ` T. ` </td><td>Yes</td><td> ~ bitru , ~ truanfal </td></tr>
       <tr><td>un</td><td>union</td><td> ~ df-un </td>
       <td> ` ( A u. B ) ` </td><td>Yes</td>
       <td> ~ uneqri , ~ uncom </td></tr>
       <tr><td>unit</td><td>unit (in a ring)</td>
       <td> ~ df-unit </td><td> ` ( Unit `` R ) ` </td><td>Yes</td>
       <td> ~ isunit , ~ nzrunit </td></tr>
       <tr><td>v</td><td>disjoint variable conditions used when
       a not-free hypothesis (suffix)</td>
       <td> </td> <td> </td><td>No</td><td> ~ spimv </td></tr>
       <tr><td>vtx</td><td>vertex</td><td> ~ df-vtx </td>
       <td> ` ( Vtx `` G ) ` </td><td>Yes</td>
       <td> ~ vtxval0 , ~ opvtxov </td></tr>
       <tr><td>vv</td><td>2 disjoint variables (in a not-free hypothesis)
       (suffix)</td><td> </td> <td> </td><td>No</td><td> ~ 19.23vv </td></tr>
       <tr><td>w</td><td>weak (version of a theorem) (suffix)</td><td> </td>
       <td> </td><td>No</td><td> ~ ax11w , ~ spnfw </td></tr>
       <tr><td><b>wrd</b></td><td>word</td>
       <td> ~ df-word </td><td> ` Word S ` </td><td>Yes</td>
       <td> ~ iswrdb , ~ wrdfn , ~ ffz0iswrd </td></tr>
       <tr><td>xp</td><td>cross product (Cartesian product)</td>
       <td> ~ df-xp </td><td> ` ( A X. B ) ` </td><td>Yes</td>
       <td> ~ elxp , ~ opelxpi , ~ xpundi </td></tr>
       <tr><td>xr</td><td>eXtended reals</td><td> ~ df-xr </td>
       <td> ` RR* ` </td><td>Yes</td><td> ~ ressxr , ~ rexr , ~ 0xr </td></tr>
       <tr><td>z</td><td> integers (from German "Zahlen")</td>
       <td> ~ df-z </td><td> ` ZZ ` </td><td>Yes</td>
       <td> ~ elz , ~ zcn </td></tr>
       <tr><td>zn</td><td> ring of integers ` mod n ` </td><td> ~ df-zn </td>
       <td> ` ( Z/nZ `` N ) ` </td><td>Yes</td>
       <td> ~ znval , ~ zncrng , ~ znhash </td></tr>
       <tr><td>zring</td><td>ring of integers</td><td> ~ df-zring </td>
       <td> ` ZZring ` </td><td>Yes</td><td> ~ zringbas , ~ zringcrng
       </td></tr>
       <tr><td><b>0, z</b></td>
       <td>slashed zero (empty set) (see n0)</td><td> ~ df-nul </td>
       <td> ` (/) ` </td><td>Yes</td>
       <td> ~ n0i , ~ vn0 ; ~ snnz , ~ prnz </td></tr>
       </table>

       </HTML>

       (Contributed by DAW, 27-Dec-2016.)  (New usage is discouraged.) $)
    conventions-label $p |- ph $=
      (  ) B $.
  $}


  ${
    conventions-contrib.1 $e |- ph $.
    $(
       <HTML>
       <p>
       These conventions are more specifically directed towards contributors.
       For general conventions, see ~ conventions , and for conentions related
       to labels, see ~ conventions-label .
       </p>

       <ul>
       <li><b>Input format.</b>
       The input is in ASCII with two-space indents.  Tab characters are not
       allowed.  Use embedded math comments or HTML entities for non-ASCII
       characters (e.g., "&amp;eacute;" for "&eacute;").
       </li>

       <li><b>Comments and layout.</b>
       As for formatting of the file set.mm, and in particular formatting and
       layout of the comments, the foremost rule is consistency.  The first
       sections of set.mm, in particular Part 1 "Classical first-order logic
       with equality" can serve as a model for contributors.  Some formatting
       rules are enforced when using the Metamath program's "WRITE SOURCE"
       command with the "REWRAP" option.  Here are a few other rules, which are
       not enforced, but that we try follow:
       <ul>
       <li>
       The file set.mm should have a double blank line before each section
       header, and at no other places.  In particular, there are no triple
       blank lines.  If there is a "@( Begin $[ ... $] @)" comment (where "@"
       is actually "$") before the section header, then the double blank line
       should go before that comment.
       </li>
       <li>
       The header comments should be spaced as those of Part 1, namely, with
       a blank line before and after the comment, and an indentation of two
       spaces.
       </li>
       <li>
       Header comments are not rewrapped by the Metamath program [as of
       24-Oct-2021], but similar spacing and wrapping should be used as for
       other comments: double spaces after a period ending a sentence, line
       wrapping with line width of 79, and no trailing spaces at the end of
       lines.
       </li>
       </ul>
       </li>

       <li><b>Format of section headers.</b>
       The database set.mm has a sectioning system with four levels of titles,
       indicated by "decoration lines" which are 79-character long repetitions
       of ####, #*#*, =-=-, and -.-. (in descending order of sectioning level).

       The format of section headers is as follows:
         two blanks lines;
         a line with '@(' (with the '@' replaced by '$');
         decoration line;
         section title indented with two spaces;
         decoration line;
         [blank line; header comment indented with two spaces; blank line;]
         a line with '@)' (with the '@' replaced by '$');
         one blank line.
       As everywhere else, lines are hard-wrapped to be 79-character long.
       It is expected that the "MM> write source set.mm/rewrap" command will
       reformat section headers to automatically conform with this format.
       </li>
       </ul>
       </HTML>

       (Contributed by BJ, 22-Feb-2022.)  (New usage is discouraged.) $)
    conventions-contrib $p |- ph $=
      (  ) B $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Natural deduction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
   $( Note:  validator.w3.org  rejects "&sacute;" so I changed it to
      "&#347;" - NM 22-Jun-2017 $)
   $( Dummy premise for "natded" $)
    natded.1 $e |- ph $.
    $(
       Here are typical natural deduction (ND) rules in the style of Gentzen
       and Ja&#347;kowski, along with MPE translations of them.  This also
       shows the recommended theorems when you find yourself needing these
       rules (the recommendations encourage a slightly different proof style
       that works more naturally with metamath).  A decent list of the standard
       rules of natural deduction can be found beginning with definition /\I in
       [Pfenning] p. 18.  For information about ND and Metamath, see the
       <A HREF="mmnatded.html">page on Deduction Form and Natural Deduction
       in Metamath Proof Explorer</A>.  Many more citations could be added.

       <HTML>
       <P>
       <TABLE ALIGN=CENTER BORDER CELLSPACING=0 WIDTH="95%">
       <TR><TH>Name</TH><TH>Natural Deduction Rule</TH><TH>Translation</TH>
       <TH>Recommendation</TH><TH>Comments</TH></TR>
       <TR><TD> IT </TD>
       <TD> ` _G |- ps ` => ` _G |- ps ` </TD>
       <TD> ~ idi </TD>
       <TD> nothing </TD><TD>Reiteration is always redundant in Metamath.
       Definition "new rule" in [Pfenning] p. 18,
       definition IT in [Clemente] p. 10. </TD>
       </TR>

       <TR><TD> ` /\ `I</TD>
       <TD> ` _G |- ps ` & ` _G |- ch ` => ` _G |- ps /\ ch ` </TD>
       <TD> ~ jca </TD>
       <TD> ~ jca , ~ pm3.2i </TD>
       <TD>Definition ` /\ `I in [Pfenning] p. 18,
       definition I` /\ `m,n in [Clemente] p. 10, and
       definition ` /\ `I in [Indrzejczak] p. 34
       (representing both Gentzen's system NK and Ja&#347;kowski)</TD>
       </TR>

       <TR><TD> ` /\ `E<SUB>L</SUB></TD>
       <TD> ` _G |- ps /\ ch ` => ` _G |- ps ` </TD>
       <TD> ~ simpld </TD>
       <TD> ~ simpld , ~ adantr </TD>
       <TD>Definition ` /\ `E<SUB>L</SUB> in [Pfenning] p. 18,
       definition E` /\ `(1) in [Clemente] p. 11, and
       definition ` /\ `E in [Indrzejczak] p. 34
       (representing both Gentzen's system NK and Ja&#347;kowski)</TD>
       </TR>

       <TR><TD> ` /\ `E<SUB>R</SUB></TD>
       <TD> ` _G |- ps /\ ch ` => ` _G |- ch ` </TD>
       <TD> ~ simprd </TD>
       <TD> ~ simpr , ~ adantl </TD>
       <TD>Definition ` /\ `E<SUB>R</SUB> in [Pfenning] p. 18,
       definition E` /\ `(2) in [Clemente] p. 11, and
       definition ` /\ `E in [Indrzejczak] p. 34
       (representing both Gentzen's system NK and Ja&#347;kowski)</TD>
       </TR>

       <TR><TD> ` -> `I </TD>
       <TD> ` _G , ps |- ch ` => ` _G |- ps -> ch ` </TD>
       <TD> ~ ex </TD><TD> ~ ex </TD>
       <TD>Definition ` -> `I in [Pfenning] p. 18,
       definition I=>m,n in [Clemente] p. 11, and
       definition ` -> `I in [Indrzejczak] p. 33. </TD>
       </TR>

       <TR><TD> ` -> `E </TD>
       <TD> ` _G |- ps -> ch ` & ` _G |- ps ` => ` _G |- ch ` </TD>
       <TD> ~ mpd </TD><TD> ~ ax-mp , ~ mpd , ~ mpdan , ~ imp </TD>
       <TD>Definition ` -> `E in [Pfenning] p. 18,
       definition E=>m,n in [Clemente] p. 11, and
       definition ` -> `E in [Indrzejczak] p. 33. </TD>
       </TR>

       <TR><TD> ` \/ `I<SUB>L</SUB> </TD><TD> ` _G |- ps ` =>
       ` _G |- ps \/ ch ` </TD>
       <TD> ~ olcd </TD>
       <TD> ~ olc , ~ olci , ~ olcd </TD>
       <TD>Definition ` \/ `I in [Pfenning] p. 18,
       definition I` \/ `n(1) in [Clemente] p. 12</TD>
       </TR>

       <TR><TD> ` \/ `I<SUB>R</SUB> </TD><TD> ` _G |- ch ` =>
       ` _G |- ps \/ ch ` </TD>
       <TD> ~ orcd </TD>
       <TD> ~ orc , ~ orci , ~ orcd </TD>
       <TD>Definition ` \/ `I<SUB>R</SUB> in [Pfenning] p. 18,
       definition I` \/ `n(2) in [Clemente] p. 12. </TD>
       </TR>

       <TR><TD> ` \/ `E </TD><TD> ` _G |- ps \/ ch ` & ` _G , ps |- th ` &
       ` _G , ch |- th ` => ` _G |- th ` </TD>
       <TD> ~ mpjaodan </TD>
       <TD> ~ mpjaodan , ~ jaodan , ~ jaod </TD>
       <TD>Definition ` \/ `E in [Pfenning] p. 18,
       definition E` \/ `m,n,p in [Clemente] p. 12. </TD>
       </TR>

       <!-- This is NOT quite the same as Pfenning page 22, because they do not
       use falsum.  (Instead, they use an arbitrary atomic propositional letter
       in place of F. -->
       <TR><TD> ` -. `I </TD><TD> ` _G , ps |- F. ` => ` _G |- -. ps ` </TD>
       <TD> ~ inegd </TD><TD> ~ pm2.01d </TD>
       <TD></TD>
       </TR>

       <TR><TD> ` -. `I </TD><TD> ` _G , ps |- th ` & ` _G |- -. th ` =>
       ` _G |- -. ps ` </TD>
       <TD> ~ mtand </TD><TD> ~ mtand </TD>
       <TD>definition I` -. `m,n,p in [Clemente] p. 13. </TD>
       </TR>

       <TR><TD> ` -. `I </TD><TD> ` _G , ps |- ch ` & ` _G , ps |- -. ch ` =>
       ` _G |- -. ps ` </TD>
       <TD> ~ pm2.65da </TD><TD> ~ pm2.65da </TD>
       <TD>Contradiction.</TD>
       </TR>

       <TR><TD> ` -. `I </TD>
       <TD> ` _G , ps |- -. ps ` => ` _G |- -. ps ` </TD>
       <TD> ~ pm2.01da </TD><TD> ~ pm2.01d , ~ pm2.65da , ~ pm2.65d </TD>
       <TD>For an alternative falsum-free natural deduction ruleset</TD>
       </TR>

       <TR><TD> ` -. `E </TD>
       <TD> ` _G |- ps ` & ` _G |- -. ps ` => ` _G |- F. ` </TD>
       <TD> ~ pm2.21fal </TD>
       <TD> ~ pm2.21dd </TD><TD></TD>
       </TR>

       <TR><TD> ` -. `E </TD>
       <TD> ` _G , -. ps |- F. ` => ` _G |- ps ` </TD>
       <TD> </TD>
       <TD> ~ pm2.21dd </TD>
       <TD>definition ` -> `E in [Indrzejczak] p. 33. </TD>
       </TR>

       <TR><TD> ` -. `E </TD>
       <TD> ` _G |- ps ` & ` _G |- -. ps ` => ` _G |- th ` </TD>
       <TD> ~ pm2.21dd </TD><TD> ~ pm2.21dd , ~ pm2.21d , ~ pm2.21 </TD>
       <TD>For an alternative falsum-free natural deduction ruleset.
       Definition ` -. `E in [Pfenning] p. 18. </TD>
       </TR>

       <TR><TD> ` T. `I </TD><TD> ` _G |- T. ` </TD>
       <TD> ~ a1tru </TD><TD> ~ tru , ~ a1tru , ~ trud </TD>
       <TD>Definition ` T. `I in [Pfenning] p. 18. </TD>
       </TR>

       <TR><TD> ` F. `E </TD><TD> ` _G , F. |- th ` </TD>
       <TD> ~ falimd </TD><TD> ~ falim </TD>
       <TD>Definition ` F. `E in [Pfenning] p. 18. </TD>
       </TR>

       <TR><TD> ` A. `I </TD>
       <TD> ` _G |- [ a / x ] ps ` => ` _G |- A. x ps ` </TD>
       <TD> ~ alrimiv </TD><TD> ~ alrimiv , ~ ralrimiva </TD>
       <TD>Definition ` A. `I<SUP>a</SUP> in [Pfenning] p. 18,
       definition I` A. `n in [Clemente] p. 32. </TD>
       </TR>

       <TR><TD> ` A. `E </TD>
       <TD> ` _G |- A. x ps ` => ` _G |- [ t / x ] ps ` </TD>
       <TD> ~ spsbcd </TD><TD> ~ spcv , ~ rspcv </TD>
       <TD>Definition ` A. `E in [Pfenning] p. 18,
       definition E` A. `n,t in [Clemente] p. 32. </TD>
       </TR>

       <TR><TD> ` E. `I </TD>
       <TD> ` _G |- [ t / x ] ps ` => ` _G |- E. x ps ` </TD>
       <TD> ~ spesbcd </TD><TD> ~ spcev , ~ rspcev </TD>
       <TD>Definition ` E. `I in [Pfenning] p. 18,
       definition I` E. `n,t in [Clemente] p. 32. </TD>
       </TR>

       <TR><TD> ` E. `E </TD>
       <TD> ` _G |- E. x ps ` & ` _G , [ a / x ] ps |- th ` =>
       ` _G |- th ` </TD>
       <TD> ~ exlimddv </TD><TD> ~ exlimddv , ~ exlimdd ,
       ~ exlimdv , ~ rexlimdva </TD>
       <TD>Definition ` E. `E<SUP>a,u</SUP> in [Pfenning] p. 18,
       definition E` E. `m,n,p,a in [Clemente] p. 32. </TD>
       </TR>

       <TR><TD> ` F. `C </TD>
       <TD> ` _G , -. ps |- F. ` => ` _G |- ps ` </TD>
       <TD> ~ efald </TD><TD> ~ efald </TD>
       <TD>Proof by contradiction (classical logic),
       definition ` F. `C in [Pfenning] p. 17. </TD>
       </TR>

       <TR><TD> ` F. `C </TD>
       <TD> ` _G , -. ps |- ps ` => ` _G |- ps ` </TD>
       <TD> ~ pm2.18da </TD><TD> ~ pm2.18da , ~ pm2.18d , ~ pm2.18 </TD>
       <TD>For an alternative falsum-free natural deduction ruleset</TD>
       </TR>

       <TR><TD> ` -. -. `C </TD>
       <TD> ` _G |- -. -. ps ` => ` _G |- ps ` </TD>
       <TD> ~ notnotrd </TD><TD> ~ notnotrd , ~ notnotr </TD>
       <TD>Double negation rule (classical logic),
       definition NNC in [Pfenning] p. 17,
       definition E` -. `n in [Clemente] p. 14. </TD>
       </TR>

       <TR><TD> EM </TD><TD> ` _G |- ps \/ -. ps ` </TD>
       <TD> ~ exmidd </TD><TD> ~ exmid </TD>
       <TD>Excluded middle (classical logic),
       definition XM in [Pfenning] p. 17,
       proof 5.11 in [Clemente] p. 14. </TD>
       </TR>

       <TR><TD> ` = `I </TD><TD> ` _G |- A = A ` </TD>
       <TD> ~ eqidd </TD><TD> ~ eqid , ~ eqidd </TD>
       <TD>Introduce equality,
       definition =I in [Pfenning] p. 127. </TD>
       </TR>

       <!-- In metamath, no need to introduce E1 and E2 separately. -->
       <TR><TD> ` = `E </TD><TD> ` _G |- A = B ` & ` _G [. A / x ]. ps ` =>
       ` _G |- [. B / x ]. ps ` </TD>
       <TD> ~ sbceq1dd </TD><TD> ~ sbceq1d , equality theorems </TD>
       <TD>Eliminate equality,
       definition =E in [Pfenning] p. 127. (Both E1 and E2.) </TD>
       </TR>
       </TABLE>
       </HTML>

       <p>
       Note that MPE uses classical logic, not intuitionist logic.  As is
       conventional, the "I" rules are introduction rules, "E" rules are
       elimination rules, the "C" rules are conversion rules, and ` _G `
       represents the set of (current) hypotheses.  We use wff variable names
       beginning with ` ps ` to provide a closer representation of the Metamath
       equivalents (which typically use the antedent ` ph ` to represent the
       context ` _G ` ).

       Most of this information was developed by Mario Carneiro and posted on
       3-Feb-2017.  For more information, see the
       <A HREF="mmnatded.html">page on Deduction Form and Natural Deduction
       in Metamath Proof Explorer</A>.

       For annotated examples where some traditional ND rules
       are directly applied in MPE, see ~ ex-natded5.2 , ~ ex-natded5.3 ,
       ~ ex-natded5.5 , ~ ex-natded5.7 , ~ ex-natded5.8 , ~ ex-natded5.13 ,
       ~ ex-natded9.20 , and ~ ex-natded9.26 .
       </p>

       (Contributed by DAW, 4-Feb-2017.)  (New usage is discouraged.) $)
    natded $p |- ph $=
      (  ) B $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Natural deduction examples
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  These are examples of how natural deduction rules can be applied in Metamath
  (both as line-for-line translations of ND rules, and as a way to apply
  deduction forms without being limited to applying ND rules).  For more
  information, see ~ natded and ~ mmnatded.html .  Since these examples should
  not be used within proofs of other theorems, especially in Mathboxes, they
  are marked with "(New usage is discouraged.)".

$)

  ${
    ex-natded5.2.1 $e |- ( ph -> ( ( ps /\ ch ) -> th ) ) $.
    ex-natded5.2.2 $e |- ( ph -> ( ch -> ps ) ) $.
    ex-natded5.2.3 $e |- ( ph -> ch ) $.
    $( Theorem 5.2 of [Clemente] p. 15, translated line by line using the
       interpretation of natural deduction in Metamath.
       For information about ND and Metamath, see the
       <A HREF="mmnatded.html">page on Deduction Form and Natural Deduction
       in Metamath Proof Explorer</A>.
       The original proof, which uses Fitch style, was written as follows:

       <HTML>
       <TABLE BORDER>
       <TR><TH NOWRAP>#</TH><TH>MPE#</TH><TH>ND Expression</TH>
       <TH NOWRAP>MPE Translation</TH><TH>ND Rationale</TH>
       <TH>MPE Rationale</TH></TR>
       <TR><TD>1</TD><TD>5</TD><TD NOWRAP> ` ( ( ps /\ ch ) -> th ) ` </TD>
       <TD NOWRAP> ` ( ph -> ( ( ps /\ ch ) -> th ) ) ` </TD>
       <TD>Given</TD>
       <TD>$e. </TD></TR>
       <TR><TD>2</TD><TD>2</TD><TD NOWRAP> ` ( ch -> ps ) ` </TD>
       <TD NOWRAP> ` ( ph -> ( ch -> ps ) ) ` </TD>
       <TD>Given</TD>
       <TD>$e. </TD></TR>
       <TR><TD>3</TD><TD>1</TD><TD> ` ch ` </TD>
       <TD> ` ( ph -> ch ) ` </TD>
       <TD>Given</TD>
       <TD>$e. </TD></TR>
       <TR><TD>4</TD><TD>3</TD><TD> ` ps ` </TD>
       <TD> ` ( ph -> ps ) ` </TD>
       <TD> ` -> `E 2,3</TD>
       <TD> ~ mpd , the MPE equivalent of ` -> `E, 1,2</TD></TR>
       <TR><TD>5</TD><TD>4</TD><TD> ` ( ps /\ ch ) ` </TD>
       <TD> ` ( ph -> ( ps /\ ch ) ) ` </TD>
       <TD> ` /\ `I 4,3</TD>
       <TD> ~ jca , the MPE equivalent of ` /\ `I, 3,1</TD></TR>
       </TR>
       <TR><TD>6</TD><TD>6</TD><TD> ` th ` </TD>
       <TD> ` ( ph -> th ) ` </TD>
       <TD> ` -> `E 1,5</TD>
       <TD> ~ mpd , the MPE equivalent of ` -> `E, 4,5</TD></TR>
       </TABLE>
       </HTML>

       The original used Latin letters for predicates;
       we have replaced them with
       Greek letters to follow Metamath naming conventions and so that
       it is easier to follow the Metamath translation.
       The Metamath line-for-line translation of this
       natural deduction approach precedes every line with an antecedent
       including ` ph ` and uses the Metamath equivalents
       of the natural deduction rules.
       Below is the final metamath proof (which reorders some steps).
       A much more efficient proof, using more of Metamath and MPE's
       capabilities, is shown in ~ ex-natded5.2-2 .
       A proof without context is shown in ~ ex-natded5.2i .
       (Contributed by Mario Carneiro, 9-Feb-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ex-natded5.2 $p |- ( ph -> th ) $=
      ( wa mpd jca ) ABCHDABCACBGFIGJEI $.

    $( A more efficient proof of Theorem 5.2 of [Clemente] p. 15.  Compare with
       ~ ex-natded5.2 and ~ ex-natded5.2i .  (Contributed by Mario Carneiro,
       9-Feb-2017.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ex-natded5.2-2 $p |- ( ph -> th ) $=
      ( mpd mp2and ) ABCDACBGFHGEI $.
  $}

  ${
    ex-natded5.2i.1 $e |- ( ( ps /\ ch ) -> th ) $.
    ex-natded5.2i.2 $e |- ( ch -> ps ) $.
    ex-natded5.2i.3 $e |- ch $.
    $( The same as ~ ex-natded5.2 and ~ ex-natded5.2-2 but with no context.
       (Contributed by Mario Carneiro, 9-Feb-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ex-natded5.2i $p |- th $=
      ( wa ax-mp pm3.2i ) ABGCABBAFEHFIDH $.
  $}

  ${
    ex-natded5.3.1 $e |- ( ph -> ( ps -> ch ) ) $.
    ex-natded5.3.2 $e |- ( ph -> ( ch -> th ) ) $.
    $( Theorem 5.3 of [Clemente] p. 16, translated line by line using an
       interpretation of natural deduction in Metamath.
       A much more efficient proof, using more of Metamath and MPE's
       capabilities, is shown in ~ ex-natded5.3-2 .
       A proof without context is shown in ~ ex-natded5.3i .
       For information about ND and Metamath, see the <HTML>
       <A HREF="mmnatded.html">page on Deduction Form and Natural Deduction
       in Metamath Proof Explorer</A></HTML>.
       The original proof, which uses Fitch style, was written as follows:

       <HTML>
       <TABLE BORDER>
       <TR><TH NOWRAP>#</TH><TH>MPE#</TH><TH>ND Expression</TH>
       <TH NOWRAP>MPE Translation</TH><TH>ND Rationale</TH>
       <TH>MPE Rationale</TH></TR>
       <TR><TD>1</TD><TD>2;3</TD><TD NOWRAP> ` ( ps -> ch ) ` </TD>
       <TD NOWRAP> ` ( ph -> ( ps -> ch ) ) ` </TD>
       <TD>Given</TD>
       <TD>$e; ~ adantr to move it into the ND hypothesis</TD></TR>
       <TR><TD>2</TD><TD>5;6</TD><TD NOWRAP> ` ( ch -> th ) ` </TD>
       <TD NOWRAP> ` ( ph -> ( ch -> th ) ) ` </TD>
       <TD>Given</TD>
       <TD>$e; ~ adantr to move it into the ND hypothesis</TD></TR>
       <TR><TD>3</TD><TD>1</TD><TD> ...| ` ps ` </TD>
       <TD> ` ( ( ph /\ ps ) -> ps ) ` </TD>
       <TD>ND hypothesis assumption</TD>
       <TD> ~ simpr , to access the new assumption </TD></TR>
       <TR><TD>4</TD><TD>4</TD><TD> ... ` ch ` </TD>
       <TD> ` ( ( ph /\ ps ) -> ch ) ` </TD>
       <TD> ` -> `E 1,3</TD>
       <TD> ~ mpd , the MPE equivalent of ` -> `E, 1.3.
       ~ adantr was used to transform its dependency
       (we could also use ~ imp to get this directly from 1)
       </TD></TR>
       <TR><TD>5</TD><TD>7</TD><TD> ... ` th ` </TD>
       <TD> ` ( ( ph /\ ps ) -> th ) ` </TD>
       <TD> ` -> `E 2,4</TD>
       <TD> ~ mpd , the MPE equivalent of ` -> `E, 4,6.
       ~ adantr was used to transform its dependency</TD></TR>
       <TR><TD>6</TD><TD>8</TD><TD> ... ` ( ch /\ th ) ` </TD>
       <TD> ` ( ( ph /\ ps ) -> ( ch /\ th ) ) ` </TD>
       <TD> ` /\ `I 4,5</TD>
       <TD> ~ jca , the MPE equivalent of ` /\ `I, 4,7</TD></TR>
       <TR><TD>7</TD><TD>9</TD><TD NOWRAP> ` ( ps -> ( ch /\ th ) ) ` </TD>
       <TD NOWRAP> ` ( ph -> ( ps -> ( ch /\ th ) ) ) ` </TD>
       <TD> ` -> `I 3,6</TD>
       <TD> ~ ex , the MPE equivalent of ` -> `I, 8</TD></TR>
       </TABLE>
       </HTML>

       The original used Latin letters for predicates;
       we have replaced them with
       Greek letters to follow Metamath naming conventions and so that
       it is easier to follow the Metamath translation.
       The Metamath line-for-line translation of this
       natural deduction approach precedes every line with an antecedent
       including ` ph ` and uses the Metamath equivalents
       of the natural deduction rules.
       (Contributed by Mario Carneiro, 9-Feb-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ex-natded5.3 $p |- ( ph -> ( ps -> ( ch /\ th ) ) ) $=
      ( wa simpr wi adantr mpd jca ex ) ABCDGABGZCDNBCABHABCIBEJKZNCDOACDIBFJKL
      M $.

    $( A more efficient proof of Theorem 5.3 of [Clemente] p. 16.  Compare with
       ~ ex-natded5.3 and ~ ex-natded5.3i .  (Contributed by Mario Carneiro,
       9-Feb-2017.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ex-natded5.3-2 $p |- ( ph -> ( ps -> ( ch /\ th ) ) ) $=
      ( syld jcad ) ABCDEABCDEFGH $.
  $}

  ${
    ex-natded5.3i.1 $e |- ( ps -> ch ) $.
    ex-natded5.3i.2 $e |- ( ch -> th ) $.
    $( The same as ~ ex-natded5.3 and ~ ex-natded5.3-2 but with no context.
       Identical to ~ jccir , which should be used instead.  (Contributed by
       Mario Carneiro, 9-Feb-2017.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ex-natded5.3i $p |- ( ps -> ( ch /\ th ) ) $=
      ( syl jca ) ABCDABCDEFG $.
  $}

  ${
    ex-natded5.5.1 $e |- ( ph -> ( ps -> ch ) ) $.
    ex-natded5.5.2 $e |- ( ph -> -. ch ) $.
    $( Theorem 5.5 of [Clemente] p. 18, translated line by line using the
       usual translation of natural deduction (ND) in the
       Metamath Proof Explorer (MPE) notation.
       For information about ND and Metamath, see the
       <A HREF="mmnatded.html">page on Deduction Form and Natural Deduction
       in Metamath Proof Explorer</A>.
       The original proof, which uses Fitch style, was written as follows
       (the leading "..." shows an embedded ND hypothesis, beginning with
       the initial assumption of the ND hypothesis):

       <HTML>
       <TABLE BORDER>
       <TR><TH NOWRAP>#</TH><TH>MPE#</TH><TH>ND Expression</TH>
       <TH NOWRAP>MPE Translation</TH><TH>ND Rationale</TH>
       <TH>MPE Rationale</TH></TR>
       <TR><TD>1</TD><TD>2;3</TD>
       <TD NOWRAP> ` ( ps -> ch ) ` </TD>
       <TD NOWRAP> ` ( ph -> ( ps -> ch ) ) ` </TD>
       <TD>Given</TD>
       <TD>$e; ~ adantr to move it into the ND hypothesis</TD></TR>
       <TR><TD>2</TD><TD>5</TD><TD NOWRAP> ` -. ch ` </TD>
       <TD NOWRAP> ` ( ph -> -. ch ) ` </TD><TD>Given</TD>
       <TD>$e; we'll use ~ adantr to move it into the ND hypothesis</TD></TR>
       <TR><TD>3</TD><TD>1</TD>
       <TD> ...| ` ps ` </TD><TD> ` ( ( ph /\ ps ) -> ps ) ` </TD>
       <TD>ND hypothesis assumption</TD>
       <TD> ~ simpr </TD></TR>
       <TR><TD>4</TD><TD>4</TD><TD> ... ` ch ` </TD>
       <TD> ` ( ( ph /\ ps ) -> ch ) ` </TD>
       <TD> ` -> `E 1,3</TD>
       <TD> ~ mpd 1,3</TD></TR>
       <TR><TD>5</TD><TD>6</TD><TD> ... ` -. ch ` </TD>
       <TD> ` ( ( ph /\ ps ) -> -. ch ) ` </TD>
       <TD>IT 2</TD>
       <TD> ~ adantr 5</TD></TR>
       <TR><TD>6</TD><TD>7</TD><TD> ` -. ps ` </TD>
       <TD> ` ( ph -> -. ps ) ` </TD>
       <TD> ` /\ `I 3,4,5</TD>
       <TD> ~ pm2.65da 4,6</TD></TR>
       </TABLE>
       </HTML>

       The original used Latin letters; we have replaced them with
       Greek letters to follow Metamath naming conventions and so that
       it is easier to follow the Metamath translation.
       The Metamath line-for-line translation of this
       natural deduction approach precedes every line with an antecedent
       including ` ph ` and uses the Metamath equivalents
       of the natural deduction rules.
       To add an assumption, the antecedent is modified to include it
       (typically by using ~ adantr ; ~ simpr is useful when you want to
       depend directly on the new assumption).
       Below is the final metamath proof (which reorders some steps).

       A much more efficient proof is ~ mtod ;
       a proof without context is shown in ~ mto .

       (Contributed by David A. Wheeler, 19-Feb-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ex-natded5.5 $p |- ( ph -> -. ps ) $=
      ( wa simpr wi adantr mpd wn pm2.65da ) ABCABFBCABGABCHBDIJACKBEIL $.
  $}

  ${
    ex-natded5.7.1 $e |- ( ph -> ( ps \/ ( ch /\ th ) ) ) $.
    $( Theorem 5.7 of [Clemente] p. 19, translated line by line using the
       interpretation of natural deduction in Metamath.
       A much more efficient proof, using more of Metamath and MPE's
       capabilities, is shown in ~ ex-natded5.7-2 .
       For information about ND and Metamath, see the <HTML>
       <A HREF="mmnatded.html">page on Deduction Form and Natural Deduction
       in Metamath Proof Explorer</A></HTML>.
       The original proof, which uses Fitch style, was written as follows:

       <HTML>
       <TABLE BORDER>
       <TR><TH NOWRAP>#</TH><TH>MPE#</TH><TH>ND Expression</TH>
       <TH NOWRAP>MPE Translation</TH><TH>ND Rationale</TH>
       <TH>MPE Rationale</TH></TR>
       <TR><TD>1</TD><TD>6</TD>
       <TD NOWRAP> ` ( ps \/ ( ch /\ th ) ) ` </TD>
       <TD NOWRAP> ` ( ph -> ( ps \/ ( ch /\ th ) ) ) ` </TD>
       <TD>Given</TD>
       <TD>$e. No need for ~ adantr because we do not move this
       into an ND hypothesis</TD></TR>
       <TR><TD>2</TD><TD>1</TD><TD NOWRAP> ...| ` ps ` </TD>
       <TD NOWRAP> ` ( ( ph /\ ps ) -> ps ) ` </TD>
       <TD>ND hypothesis assumption (new scope)</TD>
       <TD> ~ simpr </TD></TR>
       <TR><TD>3</TD><TD>2</TD><TD> ... ` ( ps \/ ch ) ` </TD>
       <TD> ` ( ( ph /\ ps ) -> ( ps \/ ch ) ) ` </TD>
       <TD> ` \/ `I<SUB>L</SUB> 2</TD>
       <TD> ~ orcd , the MPE equivalent of ` \/ `I<SUB>L</SUB>, 1</TD></TR>
       <TR><TD>4</TD><TD>3</TD><TD> ...| ` ( ch /\ th ) ` </TD>
       <TD> ` ( ( ph /\ ( ch /\ th ) ) -> ( ch /\ th ) ) ` </TD>
       <TD>ND hypothesis assumption (new scope)</TD>
       <TD> ~ simpr </TD></TR>
       <TR><TD>5</TD><TD>4</TD><TD> ... ` ch ` </TD>
       <TD> ` ( ( ph /\ ( ch /\ th ) ) -> ch ) `  </TD>
       <TD> ` /\ `E<SUB>L</SUB> 4</TD>
       <TD> ~ simpld , the MPE equivalent of ` /\ `E<SUB>L</SUB>, 3</TD></TR>
       <TR><TD>6</TD><TD>6</TD><TD> ... ` ( ps \/ ch ) ` </TD>
       <TD> ` ( ( ph /\ ( ch /\ th ) ) -> ( ps \/ ch ) ) `  </TD>
       <TD> ` \/ `I<SUB>R</SUB> 5</TD>
       <TD> ~ olcd , the MPE equivalent of ` \/ `I<SUB>R</SUB>, 4</TD></TR>
       <TR><TD>7</TD><TD>7</TD><TD NOWRAP> ` ( ps \/ ch ) ` </TD>
       <TD NOWRAP> ` ( ph -> ( ps \/ ch ) ) ` </TD>
       <TD> ` \/ `E 1,3,6</TD>
       <TD> ~ mpjaodan , the MPE equivalent of ` \/ `E, 2,5,6 </TD></TR>
       </TABLE>
       </HTML>

       The original used Latin letters for predicates;
       we have replaced them with
       Greek letters to follow Metamath naming conventions and so that
       it is easier to follow the Metamath translation.
       The Metamath line-for-line translation of this
       natural deduction approach precedes every line with an antecedent
       including ` ph ` and uses the Metamath equivalents
       of the natural deduction rules.
       (Contributed by Mario Carneiro, 9-Feb-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ex-natded5.7 $p |- ( ph -> ( ps \/ ch ) ) $=
      ( wo wa simpr orcd simpld olcd mpjaodan ) ABBCFCDGZABGBCABHIAMGZCBNCDAMHJ
      KEL $.

    $( A more efficient proof of Theorem 5.7 of [Clemente] p. 19.  Compare with
       ~ ex-natded5.7 .  (Contributed by Mario Carneiro, 9-Feb-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ex-natded5.7-2 $p |- ( ph -> ( ps \/ ch ) ) $=
      ( wa wo simpl orim2i syl ) ABCDFZGBCGEKCBCDHIJ $.
  $}

  ${
    ex-natded5.8.1 $e |- ( ph -> ( ( ps /\ ch ) -> -. th ) ) $.
    ex-natded5.8.2 $e |- ( ph -> ( ta -> th ) ) $.
    ex-natded5.8.3 $e |- ( ph -> ch ) $.
    ex-natded5.8.4 $e |- ( ph -> ta ) $.
    $( Theorem 5.8 of [Clemente] p. 20, translated line by line using the
       usual translation of natural deduction (ND) in the
       Metamath Proof Explorer (MPE) notation.
       For information about ND and Metamath, see the
       <A HREF="mmnatded.html">page on Deduction Form and Natural Deduction
       in Metamath Proof Explorer</A>.
       The original proof, which uses Fitch style, was written as follows
       (the leading "..." shows an embedded ND hypothesis, beginning with
       the initial assumption of the ND hypothesis):

       <HTML>
       <TABLE BORDER>
       <TR><TH NOWRAP>#</TH><TH>MPE#</TH><TH>ND Expression</TH>
       <TH NOWRAP>MPE Translation</TH><TH>ND Rationale</TH>
       <TH>MPE Rationale</TH></TR>
       <TR><TD>1</TD><TD>10;11</TD>
       <TD NOWRAP> ` ( ( ps /\ ch ) -> -. th ) ` </TD>
       <TD NOWRAP> ` ( ph -> ( ( ps /\ ch ) -> -. th ) ) ` </TD>
       <TD>Given</TD>
       <TD>$e; ~ adantr to move it into the ND hypothesis</TD></TR>
       <TR><TD>2</TD><TD>3;4</TD><TD NOWRAP> ` ( ta -> th ) ` </TD>
       <TD NOWRAP> ` ( ph -> ( ta -> th ) ) ` </TD><TD>Given</TD>
       <TD>$e; ~ adantr to move it into the ND hypothesis</TD></TR>
       <TR><TD>3</TD><TD>7;8</TD>
       <TD> ` ch ` </TD><TD> ` ( ph -> ch ) ` </TD>
       <TD>Given</TD>
       <TD>$e; ~ adantr to move it into the ND hypothesis</TD></TR>
       <TR><TD>4</TD><TD>1;2</TD><TD> ` ta ` </TD><TD> ` ( ph -> ta ) ` </TD>
       <TD>Given</TD>
       <TD>$e. ~ adantr to move it into the ND hypothesis</TD></TR>
       <TR><TD>5</TD><TD>6</TD><TD> ...| ` ps ` </TD>
       <TD> ` ( ( ph /\ ps ) -> ps ) ` </TD>
       <TD>ND Hypothesis/Assumption</TD>
       <TD> ~ simpr . New ND hypothesis scope, each reference outside
       the scope must change antecedent ` ph ` to ` ( ph /\ ps ) `.</TD></TR>
       <TR><TD>6</TD><TD>9</TD><TD> ... ` ( ps /\ ch ) ` </TD>
       <TD> ` ( ( ph /\ ps ) -> ( ps /\ ch ) ) ` </TD>
       <TD> ` /\ `I 5,3</TD>
       <TD> ~ jca ( ` /\ `I), 6,8 ( ~ adantr to bring in scope)</TD></TR>
       <TR><TD>7</TD><TD>5</TD><TD> ... ` -. th ` </TD>
       <TD> ` ( ( ph /\ ps ) -> -. th ) ` </TD>
       <TD> ` -> `E 1,6</TD>
       <TD> ~ mpd ( ` -> `E), 2,4</TD></TR>
       <TR><TD>8</TD><TD>12</TD><TD> ... ` th ` </TD>
       <TD> ` ( ( ph /\ ps ) -> th ) ` </TD>
       <TD> ` -> `E 2,4</TD>
       <TD> ~ mpd ( ` -> `E), 9,11;
       note the contradiction with ND line 7 (MPE line 5)</TD></TR>
       <TR><TD>9</TD><TD>13</TD><TD> ` -. ps ` </TD>
       <TD> ` ( ph -> -. ps ) ` </TD>
       <TD> ` -. `I 5,7,8</TD>
       <TD> ~ pm2.65da ( ` -. `I), 5,12; proof by contradiction.
       MPE step 6 (ND#5) does not need a reference here, because
       the assumption is embedded in the antecedents</TD></TR>
       </TABLE>
       </HTML>

       The original used Latin letters; we have replaced them with
       Greek letters to follow Metamath naming conventions and so that
       it is easier to follow the Metamath translation.
       The Metamath line-for-line translation of this
       natural deduction approach precedes every line with an antecedent
       including ` ph ` and uses the Metamath equivalents
       of the natural deduction rules.
       To add an assumption, the antecedent is modified to include it
       (typically by using ~ adantr ; ~ simpr is useful when you want to
       depend directly on the new assumption).
       Below is the final metamath proof (which reorders some steps).

       A much more efficient proof, using more of Metamath and MPE's
       capabilities, is shown in ~ ex-natded5.8-2 .

       (Contributed by Mario Carneiro, 9-Feb-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ex-natded5.8 $p |- ( ph -> -. ps ) $=
      ( wa adantr wi mpd wn simpr jca pm2.65da ) ABDABJZEDAEBIKAEDLBGKMRBCJZDNZ
      RBCABOACBHKPASTLBFKMQ $.

    $( A more efficient proof of Theorem 5.8 of [Clemente] p. 20.  For a longer
       line-by-line translation, see ~ ex-natded5.8 .  (Contributed by Mario
       Carneiro, 9-Feb-2017.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ex-natded5.8-2 $p |- ( ph -> -. ps ) $=
      ( mpd wn mpan2d mt2d ) ABDAEDIGJABCDKHFLM $.
  $}

  ${
    ex-natded5.13.1 $e |- ( ph -> ( ps \/ ch ) ) $.
    ex-natded5.13.2 $e |- ( ph -> ( ps -> th ) ) $.
    ex-natded5.13.3 $e |- ( ph -> ( -. ta -> -. ch ) ) $.
    $( Theorem 5.13 of [Clemente] p. 20, translated line by line using the
       interpretation of natural deduction in Metamath.
       For information about ND and Metamath, see the
       <A HREF="mmnatded.html">page on Deduction Form and Natural Deduction
       in Metamath Proof Explorer</A>.
       A much more efficient proof, using more of Metamath and MPE's
       capabilities, is shown in ~ ex-natded5.13-2 .
       The original proof, which uses Fitch style, was written as follows
       (the leading "..." shows an embedded ND hypothesis, beginning with
       the initial assumption of the ND hypothesis):

       <HTML>
       <TABLE BORDER>
       <TR><TH NOWRAP>#</TH><TH>MPE#</TH><TH>ND Expression</TH>
       <TH NOWRAP>MPE Translation</TH><TH>ND Rationale</TH>
       <TH>MPE Rationale</TH></TR>
       <TR><TD>1</TD><TD>15</TD><TD NOWRAP> ` ( ps \/ ch ) ` </TD>
       <TD NOWRAP> ` ( ph -> ( ps \/ ch ) ) ` </TD>
       <TD>Given</TD>
       <TD>$e. </TD></TR>
       <TR><TD>2;3</TD><TD>2</TD><TD NOWRAP> ` ( ps -> th ) ` </TD>
       <TD NOWRAP> ` ( ph -> ( ps -> th ) ) ` </TD><TD>Given</TD>
       <TD>$e. ~ adantr to move it into the ND hypothesis</TD></TR>
       <TR><TD>3</TD><TD>9</TD><TD> ` ( -. ta -> -. ch ) ` </TD>
       <TD> ` ( ph -> ( -. ta -> -. ch ) ) ` </TD>
       <TD>Given</TD>
       <TD>$e. ~ ad2antrr to move it into the ND sub-hypothesis</TD></TR>
       <TR><TD>4</TD><TD>1</TD><TD> ...| ` ps ` </TD>
       <TD> ` ( ( ph /\ ps ) -> ps ) ` </TD>
       <TD>ND hypothesis assumption</TD>
       <TD> ~ simpr </TD></TR>
       <TR><TD>5</TD><TD>4</TD><TD> ... ` th ` </TD>
       <TD> ` ( ( ph /\ ps ) -> th ) ` </TD>
       <TD> ` -> `E 2,4</TD>
       <TD> ~ mpd 1,3</TD></TR>
       <TR><TD>6</TD><TD>5</TD><TD> ... ` ( th \/ ta ) ` </TD>
       <TD> ` ( ( ph /\ ps ) -> ( th \/ ta ) ) ` </TD>
       <TD> ` \/ `I 5</TD>
       <TD> ~ orcd 4</TD></TR>
       <TR><TD>7</TD><TD>6</TD><TD> ...| ` ch ` </TD>
       <TD> ` ( ( ph /\ ch ) -> ch ) ` </TD>
       <TD>ND hypothesis assumption</TD>
       <TD> ~ simpr </TD></TR>
       <TR><TD>8</TD><TD>8</TD><TD> ... ...| ` -. ta ` </TD>
       <TD> ` ( ( ( ph /\ ch ) /\ -. ta ) -> -. ta ) ` </TD>
       <TD>(sub) ND hypothesis assumption</TD>
       <TD> ~ simpr </TD></TR>
       <TR><TD>9</TD><TD>11</TD><TD> ... ... ` -. ch ` </TD>
       <TD> ` ( ( ( ph /\ ch ) /\ -. ta ) -> -. ch ) ` </TD>
       <TD> ` -> `E 3,8</TD>
       <TD> ~ mpd 8,10</TD></TR>
       <TR><TD>10</TD><TD>7</TD><TD> ... ... ` ch ` </TD>
       <TD> ` ( ( ( ph /\ ch ) /\ -. ta ) -> ch ) ` </TD>
       <TD> IT 7</TD>
       <TD> ~ adantr 6</TD></TR>
       <TR><TD>11</TD><TD>12</TD><TD> ... ` -. -. ta ` </TD>
       <TD> ` ( ( ph /\ ch ) -> -. -. ta ) ` </TD>
       <TD> ` -. `I 8,9,10</TD>
       <TD> ~ pm2.65da 7,11</TD></TR>
       <TR><TD>12</TD><TD>13</TD><TD> ... ` ta ` </TD>
       <TD> ` ( ( ph /\ ch ) -> ta ) ` </TD>
       <TD> ` -. `E 11</TD>
       <TD> ~ notnotrd 12</TD></TR>
       <TR><TD>13</TD><TD>14</TD><TD> ... ` ( th \/ ta ) ` </TD>
       <TD> ` ( ( ph /\ ch ) -> ( th \/ ta ) ) ` </TD>
       <TD> ` \/ `I 12</TD>
       <TD> ~ olcd 13</TD></TR>
       <TR><TD>14</TD><TD>16</TD><TD> ` ( th \/ ta ) ` </TD>
       <TD> ` ( ph -> ( th \/ ta ) ) ` </TD>
       <TD> ` \/ `E 1,6,13</TD>
       <TD> ~ mpjaodan 5,14,15</TD></TR>
       </TABLE>
       </HTML>

       The original used Latin letters; we have replaced them with
       Greek letters to follow Metamath naming conventions and so that
       it is easier to follow the Metamath translation.
       The Metamath line-for-line translation of this
       natural deduction approach precedes every line with an antecedent
       including ` ph ` and uses the Metamath equivalents
       of the natural deduction rules.
       To add an assumption, the antecedent is modified to include it
       (typically by using ~ adantr ; ~ simpr is useful when you want to
       depend directly on the new assumption).
       (Contributed by Mario Carneiro, 9-Feb-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ex-natded5.13 $p |- ( ph -> ( th \/ ta ) ) $=
      ( wo wa simpr wi adantr mpd orcd wn ad2antrr pm2.65da notnotrd olcd
      mpjaodan ) ABDEICABJZDEUBBDABKABDLBGMNOACJZEDUCEUCEPZCUCCUDACKMUCUDJUDCPZ
      UCUDKAUDUELCUDHQNRSTFUA $.

    $( A more efficient proof of Theorem 5.13 of [Clemente] p. 20.  Compare
       with ~ ex-natded5.13 .  (Contributed by Mario Carneiro, 9-Feb-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ex-natded5.13-2 $p |- ( ph -> ( th \/ ta ) ) $=
      ( wo con4d orim12d mpd ) ABCIDEIFABDCEGAECHJKL $.
  $}

  ${
    ex-natded9.20.1 $e |- ( ph -> ( ps /\ ( ch \/ th ) ) ) $.
    $( Theorem 9.20 of [Clemente] p. 43, translated line by line using the
       usual translation of natural deduction (ND) in the
       Metamath Proof Explorer (MPE) notation.
       For information about ND and Metamath, see the
       <A HREF="mmnatded.html">page on Deduction Form and Natural Deduction
       in Metamath Proof Explorer</A>.
       The original proof, which uses Fitch style, was written as follows
       (the leading "..." shows an embedded ND hypothesis, beginning with
       the initial assumption of the ND hypothesis):

       <HTML>
       <TABLE BORDER>
       <TR><TH NOWRAP>#</TH><TH>MPE#</TH><TH>ND Expression</TH>
       <TH NOWRAP>MPE Translation</TH><TH>ND Rationale</TH>
       <TH>MPE Rationale</TH></TR>
       <TR><TD>1</TD><TD>1</TD>
       <TD NOWRAP> ` ( ps /\ ( ch \/ th ) ) ` </TD>
       <TD NOWRAP> ` ( ph ->  ( ps /\ ( ch \/ th ) ) ) ` </TD>
       <TD>Given</TD>
       <TD>$e</TD></TR>
       <TR><TD>2</TD><TD>2</TD><TD NOWRAP> ` ps ` </TD>
       <TD NOWRAP> ` ( ph -> ps ) ` </TD>
       <TD>` /\ `E<SUB>L</SUB> 1</TD>
       <TD> ~ simpld 1</TD></TR>
       <TR><TD>3</TD><TD>11</TD>
       <TD> ` ( ch \/ th ) ` </TD>
       <TD> ` ( ph -> ( ch \/ th ) ) ` </TD>
       <TD> ` /\ `E<SUB>R</SUB> 1</TD>
       <TD>  ~ simprd 1</TD></TR>
       <TR><TD>4</TD><TD>4</TD>
       <TD> ...| ` ch ` </TD>
       <TD> ` ( ( ph /\ ch ) -> ch ) ` </TD>
       <TD>ND hypothesis assumption</TD>
       <TD> ~ simpr </TD></TR>
       <TR><TD>5</TD><TD>5</TD>
       <TD> ... ` ( ps /\ ch ) ` </TD>
       <TD> ` ( ( ph /\ ch ) -> ( ps /\ ch ) ) ` </TD>
       <TD> ` /\ `I 2,4</TD>
       <TD> ~ jca 3,4</TD></TR>
       <TR><TD>6</TD><TD>6</TD>
       <TD> ... ` ( ( ps /\ ch ) \/ ( ps /\ th ) ) ` </TD>
       <TD> ` ( ( ph /\ ch ) -> ( ( ps /\ ch ) \/ ( ps /\ th ) ) ) ` </TD>
       <TD> ` \/ `I<SUB>R</SUB> 5</TD>
       <TD> ~ orcd 5</TD></TR>
       <TR><TD>7</TD><TD>8</TD>
       <TD> ...| ` th ` </TD>
       <TD> ` ( ( ph /\ th ) -> th ) ` </TD>
       <TD>ND hypothesis assumption</TD>
       <TD> ~ simpr </TD></TR>
       <TR><TD>8</TD><TD>9</TD>
       <TD> ... ` ( ps /\ th ) ` </TD>
       <TD> ` ( ( ph /\ th ) -> ( ps /\ th ) ) ` </TD>
       <TD> ` /\ `I 2,7</TD>
       <TD> ~ jca 7,8</TD></TR>
       <TR><TD>9</TD><TD>10</TD>
       <TD> ... ` ( ( ps /\ ch ) \/ ( ps /\ th ) ) ` </TD>
       <TD> ` ( ( ph /\ th ) -> ( ( ps /\ ch ) \/ ( ps /\ th ) ) ) ` </TD>
       <TD> ` \/ `I<SUB>L</SUB> 8</TD>
       <TD> ~ olcd 9</TD></TR>
       <TR><TD>10</TD><TD>12</TD>
       <TD> ` ( ( ps /\ ch ) \/ ( ps /\ th ) ) ` </TD>
       <TD> ` ( ph -> ( ( ps /\ ch ) \/ ( ps /\ th ) ) ) ` </TD>
       <TD> ` \/ `E 3,6,9</TD>
       <TD> ~ mpjaodan 6,10,11</TD></TR>
       </TABLE>
       </HTML>

       The original used Latin letters; we have replaced them with
       Greek letters to follow Metamath naming conventions and so that
       it is easier to follow the Metamath translation.
       The Metamath line-for-line translation of this
       natural deduction approach precedes every line with an antecedent
       including ` ph ` and uses the Metamath equivalents
       of the natural deduction rules.
       To add an assumption, the antecedent is modified to include it
       (typically by using ~ adantr ; ~ simpr is useful when you want to
       depend directly on the new assumption).
       Below is the final metamath proof (which reorders some steps).

       A much more efficient proof is ~ ex-natded9.20-2 .
       (Contributed by David A. Wheeler, 19-Feb-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ex-natded9.20 $p |- ( ph -> ( ( ps /\ ch ) \/ ( ps /\ th ) ) ) $=
      ( wa wo simpld adantr simpr jca orcd olcd simprd mpjaodan ) ACBCFZBDFZGDA
      CFZPQRBCABCABCDGZEHZIACJKLADFZQPUABDABDTIADJKMABSENO $.

    $( A more efficient proof of Theorem 9.20 of [Clemente] p. 45.  Compare
       with ~ ex-natded9.20 .  (Contributed by David A. Wheeler, 19-Feb-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ex-natded9.20-2 $p |- ( ph -> ( ( ps /\ ch ) \/ ( ps /\ th ) ) ) $=
      ( wa wo simpld anim1i orcd olcd simprd mpjaodan ) ACBCFZBDFZGDACFNOABCABC
      DGZEHZIJADFONABDQIKABPELM $.
  $}

  ${
    $d x y ph $.
    ex-natded9.26.1 $e |- ( ph -> E. x A. y ps ) $.
    $( Theorem 9.26 of [Clemente] p. 45, translated line by line using an
       interpretation of natural deduction in Metamath.  This proof has some
       additional complications due to the fact that Metamath's existential
       elimination rule does not change bound variables, so we need to verify
       that ` x ` is bound in the conclusion.
       For information about ND and Metamath, see the
       <A HREF="mmnatded.html">page on Deduction Form and Natural Deduction
       in Metamath Proof Explorer</A>.
       The original proof, which uses Fitch style, was written as follows
       (the leading "..." shows an embedded ND hypothesis, beginning with
       the initial assumption of the ND hypothesis):

       <HTML>
       <TABLE BORDER>
       <TR><TH NOWRAP>#</TH><TH>MPE#</TH><TH>ND Expression</TH>
       <TH NOWRAP>MPE Translation</TH><TH>ND Rationale</TH>
       <TH>MPE Rationale</TH></TR>
       <TR><TD>1</TD><TD>3</TD><TD NOWRAP> ` E. x A. y ps ( x , y ) ` </TD>
       <TD NOWRAP> ` ( ph -> E. x A. y ps ) ` </TD>
       <TD>Given</TD>
       <TD>$e. </TD></TR>
       <TR><TD>2</TD><TD>6</TD><TD NOWRAP> ...| ` A. y ps ( x , y ) ` </TD>
       <TD NOWRAP> ` ( ( ph /\ A. y ps ) -> A. y ps ) ` </TD>
       <TD>ND hypothesis assumption</TD>
       <TD> ~ simpr . Later statements will have this scope.</TD></TR>
       <TR><TD>3</TD><TD>7;5,4</TD><TD> ... ` ps ( x , y ) ` </TD>
       <TD> ` ( ( ph /\ A. y ps ) -> ps ) ` </TD>
       <TD> ` A. `E 2,y </TD>
       <TD> ~ spsbcd (` A. `E), 5,6. To use it we need ~ a1i and ~ vex .
       This could be immediately done with ~ 19.21bi , but we want to show
       the general approach for substitution.
       </TD></TR>
       <TR><TD>4</TD><TD>12;8,9,10,11</TD><TD> ... ` E. x ps ( x , y ) ` </TD>
       <TD> ` ( ( ph /\ A. y ps ) -> E. x ps ) ` </TD>
       <TD> ` E. `I 3,a</TD>
       <TD> ~ spesbcd (` E. `I), 11.
       To use it we need ~ sylibr , which in turn requires ~ sylib and
       two uses of ~ sbcid .
       This could be more immediately done using ~ 19.8a , but we want to show
       the general approach for substitution.
       </TD></TR>
       <TR><TD>5</TD><TD>13;1,2</TD><TD> ` E. x ps ( x , y ) ` </TD>
       <TD> ` ( ph -> E. x ps ) ` </TD><TD> ` E. `E 1,2,4,a</TD>
       <TD> ~ exlimdd (` E. `E), 1,2,3,12.
       We'll need supporting
       assertions that the variable is free (not bound),
       as provided in ~ nfv and ~ nfe1 (MPE# 1,2)</TD></TR>
       </TR>
       <TR><TD>6</TD><TD>14</TD><TD> ` A. y E. x ps ( x , y ) ` </TD>
       <TD> ` ( ph -> A. y E. x ps ) ` </TD>
       <TD> ` A. `I 5</TD>
       <TD> ~ alrimiv (` A. `I), 13</TD></TR>
       </TABLE>
       </HTML>

       The original used Latin letters for predicates;
       we have replaced them with
       Greek letters to follow Metamath naming conventions and so that
       it is easier to follow the Metamath translation.
       The Metamath line-for-line translation of this
       natural deduction approach precedes every line with an antecedent
       including ` ph ` and uses the Metamath equivalents
       of the natural deduction rules.
       Below is the final metamath proof (which reorders some steps).

       Note that in the original proof, ` ps ( x , y ) ` has explicit
       parameters.  In Metamath, these parameters are always implicit, and the
       parameters upon which a wff variable can depend are recorded in the
       "allowed substitution hints" below.

       A much more efficient proof, using more of Metamath and MPE's
       capabilities, is shown in ~ ex-natded9.26-2 .

       (Contributed by Mario Carneiro, 9-Feb-2017.)
       (Revised by David A. Wheeler, 18-Feb-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ex-natded9.26 $p |- ( ph -> A. y E. x ps ) $=
      ( wex wal nfv nfe1 wa cv wsbc cvv wcel vex a1i simpr spsbcd sbcid sylib
      sylibr spesbcd exlimdd alrimiv ) ABCFZDABDGZUECACHBCIEAUFJZBCCKZUGBBCUHLU
      GBDDKZLBUGBDUIMUIMNUGDOPAUFQRBDSTBCSUAUBUCUD $.

    $( A more efficient proof of Theorem 9.26 of [Clemente] p. 45.  Compare
       with ~ ex-natded9.26 .  (Contributed by Mario Carneiro, 9-Feb-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ex-natded9.26-2 $p |- ( ph -> A. y E. x ps ) $=
      ( wex wal sp eximi syl alrimiv ) ABCFZDABDGZCFLEMBCBDHIJK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definitional examples
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Example for ~ df-or .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 9-May-2015.) $)
  ex-or $p |- ( 2 = 3 \/ 4 = 4 ) $=
    ( c4 wceq c2 c3 eqid olci ) AABCDBAEF $.

  $( Example for ~ df-an .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 9-May-2015.) $)
  ex-an $p |- ( 2 = 2 /\ 3 = 3 ) $=
    ( c2 wceq c3 eqid pm3.2i ) AABCCBADCDE $.

  $( Example for ~ df-dif .  Example by David A. Wheeler.  (Contributed by
     Mario Carneiro, 6-May-2015.) $)
  ex-dif $p |- ( { 1 , 3 } \ { 1 , 8 } ) = { 3 } $=
    ( c1 c3 cpr c8 cdif csn cun df-pr difeq1i difundir c0 wss wceq snsspr1 mpbi
    ssdif0 cin incom wcel 3eqtri 1re 1lt3 gtneii 3re ltneii nelpri disjsn mpbir
    wn 3lt8 eqtri disj3 eqcomi uneq12i uncom un0 ) ABCZADCZEAFZBFZGZUREUSUREZUT
    UREZGZUTUQVAURABHIUSUTURJVDKUTGUTKGUTVBKVCUTUSURLVBKMADNUSURPOUTVCUTURQZKMU
    TVCMVEURUTQZKUTURRVFKMBURSUIBADABUAUBUCBDUDUJUEUFURBUGUHUKUTURULOUMUNKUTUOU
    TUPTT $.

  $( Example for ~ df-un .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 6-May-2015.) $)
  ex-un $p |- ( { 1 , 3 } u. { 1 , 8 } ) = { 1 , 3 , 8 } $=
    ( c1 c3 cpr csn c8 cun ctp unass wss wceq snsspr1 ssequn2 mpbi uneq1i df-pr
    eqtr3i uneq2i df-tp 3eqtr4i ) ABCZADZEDZFZFZTUBFZTAECZFABEGTUAFZUBFUDUETUAU
    BHUGTUBUATIUGTJABKUATLMNPUFUCTAEOQABERS $.

  $( Example for ~ df-in .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 6-May-2015.) $)
  ex-in $p |- ( { 1 , 3 } i^i { 1 , 8 } ) = { 1 } $=
    ( c1 c3 cpr c8 cin csn cun df-pr ineq2i indi wceq snsspr1 sseqin2 mpbi wcel
    c0 wss wn gtneii eqtri 1re 1lt8 3re 3lt8 nelpri disjsn mpbir uneq12i un0 )
    ABCZADCZEUJAFZDFZGZEZULUKUNUJADHIUOUJULEZUJUMEZGZULUJULUMJURULPGULUPULUQPUL
    UJQUPULKABLULUJMNUQPKDUJORDABADUAUBSBDUCUDSUEUJDUFUGUHULUITTT $.

  $( Example for ~ df-uni .  Example by David A. Wheeler.  (Contributed by
     Mario Carneiro, 2-Jul-2016.) $)
  ex-uni $p |- U. { { 1 , 3 } , { 1 , 8 } } = { 1 , 3 , 8 } $=
    ( c1 c3 cpr c8 cuni cun ctp prex unipr ex-un eqtri ) ABCZADCZCELMFABDGLMABH
    ADHIJK $.

  $( Example for ~ df-ss .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 6-May-2015.) $)
  ex-ss $p |- { 1 , 2 } C_ { 1 , 2 , 3 } $=
    ( c1 c2 cpr c3 csn cun ctp ssun1 df-tp sseqtr4i ) ABCZKDEZFABDGKLHABDIJ $.

  $( Example for ~ df-pss .  Example by David A. Wheeler.  (Contributed by
     Mario Carneiro, 6-May-2015.) $)
  ex-pss $p |- { 1 , 2 } C. { 1 , 2 , 3 } $=
    ( c1 c2 cpr c3 ctp wpss wss wne ex-ss wcel wn 3ex tpid3 1re 1lt3 gtneii 2re
    2lt3 nelpri nelne1 mp2an necomi df-pss mpbir2an ) ABCZABDEZFUEUFGUEUFHIUFUE
    DUFJDUEJKUFUEHABDLMDABADNOPBDQRPSDUFUETUAUBUEUFUCUD $.

  $( Example for ~ df-pw .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 2-Jul-2016.) $)
  ex-pw $p |- ( A = { 3 , 5 , 7 } -> ~P A =
    ( ( { (/) } u. { { 3 } , { 5 } , { 7 } } ) u.
      ( { { 3 , 5 } , { 3 , 7 } , { 5 , 7 } } u. { { 3 , 5 , 7 } } ) ) ) $=
    ( c3 c5 c7 ctp wceq cpw c0 csn cun cpr pweq df-tp uneq2i unass eqtr4i tpass
    uneq12i uneq1i 3eqtr4i qdass qdassr pwtp un4 syl6eq ) ABCDEZFAGUFGZHIZBIZCI
    ZDIZEZJZBCKZBDKZCDKZEZUFIZJZJZAUFLHUIKUJUNKJZUKUOKUPUFKJZJHUIUJEZUNIZJZUKIZ
    UOUPUFEZJZJZUGUTVAVEVBVHHUIUJUNUAUKUOUPUFUBRBCDUCUTVCVFJZVDVGJZJVIUMVJUSVKU
    MUHUIUJKZJZVFJZVJUMUHVLVFJZJVNULVOUHUIUJUKMNUHVLVFOPVCVMVFHUIUJQSPVDUOUPKZJ
    ZURJVDVPURJZJUSVKVDVPUROUQVQURUNUOUPQSVGVRVDUOUPUFMNTRVCVDVFVGUDPTUE $.

  $( Example for ~ df-pr .  (Contributed by Mario Carneiro, 7-May-2015.) $)
  ex-pr $p |- ( A e. { 1 , -u 1 } -> ( A ^ 2 ) = 1 ) $=
    ( c1 cneg cpr wcel wceq wo c2 cexp elpri oveq1 sq1 syl6eq neg1sqe1 jaoi syl
    co ) ABBCZDEABFZARFZGAHIQZBFZABRJSUBTSUABHIQBABHIKLMTUARHIQBARHIKNMOP $.

  $( Example for ~ df-br .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 6-May-2015.) $)
  ex-br $p |- ( R = { <. 2 , 6 >. , <. 3 , 9 >. } -> 3 R 9 ) $=
    ( c2 c6 cop c3 c9 cpr wceq wcel wbr opex prid2 id syl5eleqr df-br sylibr )
    ABCDZEFDZGZHZRAIEFAJTRSAQREFKLTMNEFAOP $.

  ${
    $d x y $.
    $( Example for ~ df-opab .  Example by David A. Wheeler.  (Contributed by
       Mario Carneiro, 18-Jun-2015.) $)
    ex-opab $p |- ( R = { <. x , y >. |
        ( x e. CC /\ y e. CC /\ ( x + 1 ) = y ) } -> 3 R 4 ) $=
      ( cv cc wcel c1 caddc co wceq w3a copab c3 wbr 3cn 4cn 3p1e4 elexi eleq1
      c4 oveq1 eqeq1d 3anbi13d eqeq2 3anbi23d eqid brab mpbir3an breq mpbiri )
      CADZEFZBDZEFZUKGHIZUMJZKZABLZJMTCNMTURNZUSMEFZTEFZMGHIZTJZOPQUQUTUNVBUMJZ
      KUTVAVCKABMTURMEORTEPRUKMJZULUTUPVDUNUKMESVEUOVBUMUKMGHUAUBUCUMTJUNVAVDVC
      UTUMTESUMTVBUDUEURUFUGUHMTCURUIUJ $.
  $}

  $( Example for ~ df-eprel .  Example by David A. Wheeler.  (Contributed by
     Mario Carneiro, 18-Jun-2015.) $)
  ex-eprel $p |- 5 _E { 1 , 5 } $=
    ( c5 c1 cpr cep wbr wcel cn 5nn elexi prid2 prex epelc mpbir ) ABACZDEANFBA
    AGHIJANBAKLM $.

  $( Example for ~ df-id .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 18-Jun-2015.) $)
  ex-id $p |- ( 5 _I 5 /\ -. 4 _I 5 ) $=
    ( c5 cid wbr c4 wn wceq eqid cr 5re elexi ideq mpbir 4re 4lt5 ltneii pm3.2i
    nemtbir ) AABCZDABCZERAAFAGAAAHIJZKLSDADAMNODATKQP $.

  $( Example for ~ df-po .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 18-Jun-2015.) $)
  ex-po $p |- ( < Po RR /\ -. <_ Po RR ) $=
    ( cr clt wpo cle wn wor ltso sopo ax-mp cc0 wbr 0le0 0re poirr mpan2 pm3.2i
    wcel mt2 ) ABCZADCZEABFSGABHITJJDKZLTJAQUAEMAJDNORP $.

  $( Example for ~ df-xp .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 7-May-2015.) $)
  ex-xp $p |- ( { 1 , 5 } X. { 2 , 7 } ) =
      ( { <. 1 , 2 >. , <. 1 , 7 >. } u. { <. 5 , 2 >. , <. 5 , 7 >. } ) $=
    ( c1 c5 cpr c2 c7 cxp csn cun cop df-pr xpeq12i xpun 1ex 2nn elexi xpsn 7nn
    cn uneq12i eqtr4i 5nn 3eqtri ) ABCZDECZFAGZBGZHZDGZEGZHZFUEUHFZUEUIFZHZUFUH
    FZUFUIFZHZHADIZAEIZCZBDIZBEIZCZHUCUGUDUJABJDEJKUEUFUHUILUMUSUPVBUMUQGZURGZH
    USUKVCULVDADMDRNOZPAEMERQOZPSUQURJTUPUTGZVAGZHVBUNVGUOVHBDBRUAOZVEPBEVIVFPS
    UTVAJTSUB $.

  $( Example for ~ df-cnv .  Example by David A. Wheeler.  (Contributed by
     Mario Carneiro, 6-May-2015.) $)
  ex-cnv $p |- `' { <. 2 , 6 >. , <. 3 , 9 >. }
      = { <. 6 , 2 >. , <. 9 , 3 >. } $=
    ( c2 c6 cop csn c3 c9 cun ccnv cpr cnvun cn 2nn elexi 6nn cnvsn 3nn uneq12i
    9nn eqtri df-pr cnveqi 3eqtr4i ) ABCZDZEFCZDZGZHZBACZDZFECZDZGZUCUEIZHUIUKI
    UHUDHZUFHZGUMUDUFJUOUJUPULABAKLMBKNMOEFEKPMFKRMOQSUNUGUCUETUAUIUKTUB $.

  $( Example for ~ df-co .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 7-May-2015.) $)
  ex-co $p |- ( ( exp o. cos ) ` 0 ) = _e $=
    ( cc0 ccos cfv ce c1 ccom ceu cos0 fveq2i cc wcel wceq cosf 0cn fvco3 mp2an
    wf df-e 3eqtr4i ) ABCZDCZEDCADBFCZGTEDHIJJBQAJKUBUALMNJJADBOPRS $.

  $( Example for ~ df-dm .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 7-May-2015.) $)
  ex-dm $p |- ( F = { <. 2 , 6 >. , <. 3 , 9 >. } -> dom F = { 2 , 3 } ) $=
    ( c2 c6 cop c3 c9 cpr wceq cdm dmeq cn 6nn elexi 9nn dmprop syl6eq ) ABCDEF
    DGZHAIQIBEGAQJBCEFCKLMFKNMOP $.

  $( Example for ~ df-rn .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 7-May-2015.) $)
  ex-rn $p |- ( F = { <. 2 , 6 >. , <. 3 , 9 >. } -> ran F = { 6 , 9 } ) $=
    ( c2 c6 cop c3 c9 cpr wceq crn rneq csn cun df-pr rneqi cn 2nn elexi rnsnop
    rnun 3nn uneq12i eqtr4i 3eqtri syl6eq ) ABCDZEFDZGZHAIUGIZCFGZAUGJUHUEKZUFK
    ZLZIUJIZUKIZLZUIUGULUEUFMNUJUKSUOCKZFKZLUIUMUPUNUQBCBOPQREFEOTQRUACFMUBUCUD
    $.

  $( Example for ~ df-res .  Example by David A. Wheeler.  (Contributed by
     Mario Carneiro, 7-May-2015.) $)
  ex-res $p |- ( ( F = { <. 2 , 6 >. , <. 3 , 9 >. } /\ B = { 1 , 2 } ) ->
         ( F |` B ) = { <. 2 , 6 >. } ) $=
    ( c2 c6 cop c3 c9 cpr wceq c1 cres csn cun syl6eq c0 2re elexi wcel gtneii
    cr simpl df-pr reseq1d resundir wrel cdm wss relsnop dmsnopss snsspr2 simpr
    wa 6re syl5sseqr syl5ss relssres sylancr 1re 1lt3 2lt3 nelpri eleq2d mtbiri
    wn ressnop0 syl uneq12d un0 eqtrd ) BCDEZFGEZHZIZAJCHZIZULZBAKZVJLZAKZVKLZA
    KZMZVRVPVQVRVTMZAKWBVPBWCAVPBVLWCVMVOUAVJVKUBNUCVRVTAUDNVPWBVROMVRVPVSVRWAO
    VPVRUEVRUFZAUGVSVRICDCTPQDTUMQUHVPWDCLZACDUIVPVNWEAJCUJVMVOUKZUNUOVRAUPUQVP
    FARZVDWAOIVPWGFVNRFJCJFURUSSCFPUTSVAVPAVNFWFVBVCFGAVEVFVGVRVHNVI $.

  $( Example for ~ df-ima .  Example by David A. Wheeler.  (Contributed by
     Mario Carneiro, 7-May-2015.) $)
  ex-ima $p |- ( ( F = { <. 2 , 6 >. , <. 3 , 9 >. } /\ B = { 1 , 2 } ) ->
         ( F " B ) = { 6 } ) $=
    ( c2 c6 cop c3 c9 cpr wceq c1 wa cima csn crn cres df-ima ex-res syl5eq 2ex
    rneqd rnsnop syl6eq ) BCDEZFGEHIAJCHIKZBALZUCMZNZDMUDUEBAOZNUGBAPUDUHUFABQT
    RCDSUAUB $.

  $( Example for ~ df-fv .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 7-May-2015.) $)
  ex-fv $p |- ( F = { <. 2 , 6 >. , <. 3 , 9 >. } -> ( F ` 3 ) = 9 ) $=
    ( c2 c6 cop c3 c9 cpr wceq cfv fveq1 wne 2re 2lt3 ltneii 3ex cr elexi fvpr2
    9re ax-mp syl6eq ) ABCDEFDGZHEAIEUBIZFEAUBJBEKUCFHBELMNBECFOFPSQRTUA $.

  $( Example for ~ df-1st .  Example by David A. Wheeler.  (Contributed by
     Mario Carneiro, 18-Jun-2015.) $)
  ex-1st $p |- ( 1st ` <. 3 , 4 >. ) = 3 $=
    ( c3 c4 cr 3re elexi 4re op1st ) ABACDEBCFEG $.

  $( Example for ~ df-2nd .  Example by David A. Wheeler.  (Contributed by
     Mario Carneiro, 18-Jun-2015.) $)
  ex-2nd $p |- ( 2nd ` <. 3 , 4 >. ) = 4 $=
    ( c3 c4 cr 3re elexi 4re op2nd ) ABACDEBCFEG $.

  $( Example for ~ df-dec , 1000 + 2000 = 3000.

     This proof disproves (by counterexample) the assertion of Hao Wang, who
     stated, "There is a theorem in the primitive notation of set theory that
     corresponds to the arithmetic theorem 1000 + 2000 = 3000.  The formula
     would be forbiddingly long... even if (one) knows the definitions and is
     asked to simplify the long formula according to them, chances are he will
     make errors and arrive at some incorrect result."  (Hao Wang, "Theory and
     practice in mathematics" , In Thomas Tymoczko, editor, _New Directions in
     the Philosophy of Mathematics_, pp 129-152, Birkauser Boston, Inc.,
     Boston, 1986.  (QA8.6.N48).  The quote itself is on page 140.)

     This is noted in _Metamath:  A Computer Language for Pure Mathematics_ by
     Norman Megill (2007) section 1.1.3.  Megill then states, "A number of
     writers have conveyed the impression that the kind of absolute rigor
     provided by Metamath is an impossible dream, suggesting that a complete,
     formal verification of a typical theorem would take millions of steps in
     untold volumes of books...  These writers assume, however, that in order
     to achieve the kind of complete formal verification they desire one must
     break down a proof into individual primitive steps that make direct
     reference to the axioms.  This is not necessary.  There is no reason not
     to make use of previously proved theorems rather than proving them over
     and over...  A hierarchy of theorems and definitions permits an
     exponential growth in the formula sizes and primitive proof steps to be
     described with only a linear growth in the number of symbols used.  Of
     course, this is how ordinary informal mathematics is normally done anyway,
     but with Metamath it can be done with absolute rigor and precision."

     The proof here starts with ` ( 2 + 1 ) = 3 ` , commutes it, and repeatedly
     multiplies both sides by ten.  This is certainly longer than traditional
     mathematical proofs, e.g., there are a number of steps explicitly shown
     here to show that we're allowed to do operations such as multiplication.
     However, while longer, the proof is clearly a manageable size - even
     though every step is rigorously derived all the way back to the primitive
     notions of set theory and logic.  And while there's a risk of making
     errors, the many independent verifiers make it much less likely that an
     incorrect result will be accepted.

     This proof heavily relies on the decimal constructor ~ df-dec developed by
     Mario Carneiro in 2015.  The underlying Metamath language has an
     intentionally very small set of primitives; it doesn't even have a
     built-in construct for numbers.  Instead, the digits are defined using
     these primitives, and the decimal constructor is used to make it easy to
     express larger numbers as combinations of digits.

     (Contributed by David A. Wheeler, 29-Jun-2016.)  (Shortened by Mario
     Carneiro using the arithmetic algorithm in mmj2, 30-Jun-2016.) $)
  1kp2ke3k $p |- ( ; ; ; 1 0 0 0 + ; ; ; 2 0 0 0 ) = ; ; ; 3 0 0 0 $=
    ( c1 cc0 cdc c2 c3 1nn0 0nn0 deccl 2nn0 eqid 1p2e3 00id decadd ) ABCZBCZBDB
    CZBCZBEBCZBCBOBCZQBCZNBABFGHZGHGPBDBIGHZGHGSJTJNBPBRBOQUAGUBGOJQJABDBEBNPFG
    IGNJPJKLMLMLM $.

  $( Example for ~ df-fl .  Example by David A. Wheeler.  (Contributed by Mario
     Carneiro, 18-Jun-2015.) $)
  ex-fl $p |- ( ( |_ ` ( 3 / 2 ) ) = 1 /\ ( |_ ` -u ( 3 / 2 ) ) = -u 2 ) $=
    ( c3 c2 co c1 wceq cneg wbr clt 1re 3re 2cn eqbrtri wb 2re mpbi cr wa mp2an
    wcel cz cdiv cfl cfv caddc rehalfcli cmul mulid2i 2lt3 2pos ltmuldivi ax-mp
    cle cc0 ltleii 3lt4 2t2e4 breqtrri pm3.2i ltdivmul mp3an mpbir df-2 breqtri
    c4 1z flbi mpbir2an renegcli ltnegi cmin negcli ax-1cn negdi2 negnegi eqtri
    cc oveq1i 2m1e1 readdcli ltnegcon1i 2z znegcl ) ABUACZUBUCDEZWCFZUBUCBFZEZW
    DDWCULGZWCDDUDCZHGZDWCIAJUEZDBUFCZAHGZDWCHGZWLBAHBKUGUHLUMBHGZWMWNMUIDABIJN
    UJUKOZUNWCBWIHWCBHGZABBUFCZHGZAVDWRHUOUPUQAPSBPSZWTWOQWQWSMJNWTWONUIURABBUS
    UTVAZVBVCWCPSDTSWDWHWJQMWKVEWCDVFRVGWGWFWEULGZWEWFDUDCZHGZWFWEBNVHZWCWKVHZW
    QWFWEHGXAWCBWKNVIOUNXCFZWCHGXDXGBDVJCZWCHXGWFFZDVJCZXHWFVPSDVPSXGXJEBKVKVLW
    FDVMRXIBDVJBKVNVQVOXHDWCHVRWPLLXCWCWFDXEIVSWKVTOWEPSWFTSZWGXBXDQMXFBTSXKWAB
    WBUKWEWFVFRVGUR $.

  $( Example for ~ df-ceil .  (Contributed by AV, 4-Sep-2021.) $)
  ex-ceil $p |- ( ( |^ ` ( 3 / 2 ) ) = 2 /\ ( |^ ` -u ( 3 / 2 ) ) = -u 1 ) $=
    ( c3 c2 cdiv co cfl cfv c1 wceq cneg cceil ex-fl wcel 3re rehalfcli ceilval
    wa cr ax-mp negnegi syl5eq renegcli recni eqcomi fveq2i eqeq1i biimpi negeq
    negeqd 2cn syl6eq anim12ci ) ABCDZEFZGHZULIZEFZBIZHZPULJFZBHZUOJFZGIZHZPKUN
    VCURUTUNVAUOIZEFZIZVBUOQLVAVFHULAMNZUAUOORUNVEGUNVEGHUMVEGULVDEVDULULULVGUB
    SUCUDUEUFUHTURUSUPIZBULQLUSVHHVGULORURVHUQIBUPUQUGBUISUJTUKR $.

  $( Example for ~ df-mod .  (Contributed by AV, 3-Sep-2021.) $)
  ex-mod $p |- ( ( 5 mod 3 ) = 2 /\ ( -u 7 mod 2 ) = 1 ) $=
    ( c5 c3 cmo co c2 wceq c7 cneg c1 caddc cn clt wbr cdvds pm3.2i mpbir mp2an
    wcel wb cz 3p2e5 eqcomi oveq1i cn0 2nn0 3nn 2lt3 addmodid mp3an wn 2re 2lt7
    eqtri ltneii cuz cfv cprime wa 2nn 1lt2 eluz2b2 7prm dvdsprm nemtbir 2z 7nn
    nnzi dvdsnegb mtbi znegcl mod2eq1n2dvds mp2b ) ABCDZEFGHZECDIFZVMBEJDZBCDZE
    AVPBCVPAUAUBUCEUDRBKREBLMVQEFUEUFUGEBUHUIUMVOEVNNMZUJZEGNMZVRVTEGEGUKULUNEE
    UOUPRZGUQRVTEGFSWAEKRZIELMZURWBWCUSUTOEVAPVBGEVCQVDETRGTRZVTVRSVEGVFVGZEGVH
    QVIWDVNTRVOVSSWEGVJVNVKVLPO $.

  $( Example for ~ df-exp .  (Contributed by AV, 4-Sep-2021.) $)
  ex-exp $p |- ( ( 5 ^ 2 ) = ; 2 5 /\ ( -u 3 ^ -u 2 ) = ( 1 / 9 ) ) $=
    ( c5 c2 cexp co cdc wceq c3 cneg c1 c9 cdiv c4 caddc cmul cc ax-mp c6 eqtri
    wcel c8 df-5 oveq1i 4cn binom21 sq4e2t8 2cn 8cn mulcomi 8t2e16 oveq12i 1nn0
    4t2e8 6nn0 8nn0 eqid 1p1e2 4nn0 6cn addcomi decaddci 2nn0 4p1e5 decaddi cn0
    8p6e14 wa 3cn negcl pm3.2i expneg sqneg sq3 oveq2i ) ABCDZBAEZFGHZBHCDZIJKD
    ZFVNLIMDZBCDZVOAVSBCUAUBVTLBCDZBLNDZMDZIMDZVOLOSVTWDFUCLUDPWDBLEZIMDVOWCWEI
    MWCIQEZTMDWEWAWFWBTMWABTNDZWFUEWGTBNDWFBTUFUGUHUIRRWBLBNDTBLUFUCUHULRUJIQLB
    WFTUKUMUNWFUOUPUQQTMDTQMDILEQTURUGUSVERUTRUBBLAWEIVAUQUKWEUOVBVCRRRVQIVPBCD
    ZKDZVRVPOSZBVDSZVFVQWIFWJWKGOSZWJVGGVHPVAVIVPBVJPWHJIKWHGBCDZJWLWHWMFVGGVKP
    VLRVMRVI $.

  $( Example for ~ df-fac .  (Contributed by AV, 4-Sep-2021.) $)
  ex-fac $p |- ( ! ` 5 ) = ; ; 1 2 0 $=
    ( c5 cfa cfv c4 c1 caddc co cmul c2 cdc cc0 df-5 fveq2i 4nn0 eqtri 2nn0 5cn
    0nn0 2cn mulcomli wcel wceq facp1 ax-mp fac4 4p1e5 oveq12i 5nn0 eqid 5t2e10
    cn0 1nn0 addid2i decaddi 4cn 5t4e20 decmul1c ) ABCZDBCZDEFGZHGZEIJZKJZURUTB
    CZVAAUTBLMDUKUAVDVAUBNDUCUDOVAIDJZAHGVCUSVEUTAHUEUFUGIDVBKAIVEUHPNVEUIRPEKI
    IAHGIULRPAIEKJQSUJTISUMUNADIKJQUOUPTUQOO $.

  $( Example for ~ df-bc .  (Contributed by AV, 4-Sep-2021.) $)
  ex-bc $p |- ( 5 _C 3 ) = ; 1 0 $=
    ( c5 c3 cbc co c4 c1 caddc cc0 cdc df-5 oveq1i cmin c6 4bc3eq4 3m1e2 oveq2i
    c2 4bc2eq6 eqtri wcel oveq12i cn0 cz wceq 4nn0 3z bcpasc mp2an 6cn addcomli
    4cn 6p4e10 3eqtr3i ) ABCDEFGDZBCDZFHIZAUNBCJKEBCDZEBFLDZCDZGDZEMGDUOUPUQEUS
    MGNUSEQCDMURQECOPRSUAEUBTBUCTUTUOUDUEUFBEUGUHMEUPUIUKULUJUMS $.

  $( Example for ~ df-hash .  (Contributed by AV, 4-Sep-2021.) $)
  ex-hash $p |- ( # ` { 0 , 1 , 2 } ) = 3 $=
    ( cc0 c1 c2 ctp chash cfv cpr csn caddc co c3 cun df-tp fveq2i cfn wcel cin
    wceq eqtri cz c0 prfi snfi 2ne0 necomi nelpri disjsn mpbir hashun prhash2ex
    wn 1ne2 mp3an 2z hashsng ax-mp oveq12i 2p1e3 ) ABCDZEFZABGZEFZCHZEFZIJZKUTV
    AVCLZEFZVEUSVFEABCMNVAOPVCOPVAVCQUARZVGVERABUBCUCVHCVAPUKCABUDBCULUEUFVACUG
    UHVAVCUIUMSVECBIJKVBCVDBIUJCTPVDBRUNCTUOUPUQURSS $.

  $( Example for ~ df-sqrt .  (Contributed by AV, 4-Sep-2021.) $)
  ex-sqrt $p |- ( sqrt ` ; 2 5 ) = 5 $=
    ( c5 c2 cexp co csqrt cfv wceq c3 cneg c1 c9 cdiv ex-exp simpli fveq2i wcel
    cdc cr cc0 5re cle wbr 0re 5pos ltleii sqrtsq mp2an eqtr3i ) ABCDZEFZBAQZEF
    AUIUKEUIUKGHIBICDJKLDGMNOARPSAUAUBUJAGTSAUCTUDUEAUFUGUH $.

  $( Example for ~ df-abs .  (Contributed by AV, 4-Sep-2021.) $)
  ex-abs $p |- ( abs ` -u 2 ) = 2 $=
    ( c2 cneg cabs cfv 2cn absnegi wcel cc0 cle wbr wceq 0le2 absid mp2an eqtri
    cr 2re ) ABCDACDZAAEFAPGHAIJRAKQLAMNO $.

  $( Example for ~ df-dvds : 3 divides into 6.  (Contributed by David A.
     Wheeler, 19-May-2015.) $)
  ex-dvds $p |- 3 || 6 $=
    ( c2 cz wcel c3 c6 w3a cmul co wceq cdvds wbr 2z 6nn nnzi 3pm3.2i caddc 3cn
    3z 2timesi 3p3e6 eqtri dvds0lem mp2an ) ABCZDBCZEBCZFADGHZEIDEJKUDUEUFLREMN
    OUGDDPHEDQSTUAADEUBUC $.

  $( Example for ~ df-gcd .  (Contributed by AV, 5-Sep-2021.) $)
  ex-gcd $p |- ( -u 6 gcd 9 ) = 3 $=
    ( c6 cneg c9 cgcd co c3 cz wcel wceq mp2an caddc eqcomi oveq2i eqtri gcdadd
    nnzi 3z cc0 3re 3eqtr3i 6nn 9nn neggcd 6cn 6p3e9 addcomli gcdcom 3p3e6 cabs
    3cn cfv gcdid ax-mp cr cle wbr 0re 3pos ltleii absid ) ABCDEZACDEZFAGHZCGHV
    AVBIAUAPZCUBPACUCJVBAFAKEZDEZFCVEADVECAFCUDUJUEUFLMAFDEZFFFKEZDEZVFFVGFADEZ
    VIVCFGHZVGVJIVDQAFUGJAVHFDVHAUHLMNVCVKVGVFIVDQAFOJFFDEZFUIUKZVIFVKVLVMIQFUL
    UMVKVKVLVIIQQFFOJFUNHRFUOUPVMFISRFUQSURUSFUTJTTNN $.

  $( Example for ~ df-lcm .  (Contributed by AV, 5-Sep-2021.) $)
  ex-lcm $p |- ( 6 lcm 9 ) = ; 1 8 $=
    ( c6 c9 co cmul cgcd cdiv c3 cc wcel cc0 wa wceq 6nn 9nn cz nnzi pm3.2i 3cn
    ax-mp 3ne0 clcm c1 cdc wne nnmulcli nncni lcmcl nn0cnd neggcd eqcomi ex-gcd
    c8 cneg eqtri eqeltri eqnetri w3a lcmgcdnn mp1i eqcomd divmul3 mpbird mp3an
    cn oveq2i 6cn 9cn divassi 3t3e9 oveq1i divcan3i 6t3e18 3eqtri ) ABUACZABDCZ
    ABECZFCZVOGFCZUBULUCZVOHIZVNHIZVPHIZVPJUDZKZVNVQLVOABMNUEUFAOIZBOIZKZWAWEWF
    AMPBNPQZWGVNABUGUHSWBWCVPGHVPAUMBECZGWIVPWGWIVPLWHABUISUJUKUNZRUOVPGJWJTUPQ
    VTWAWDUQZVQVNWKVQVNLVOVNVPDCZLWKWLVOAVDIZBVDIZKWLVOLWKWMWNMNQABURUSUTVOVNVP
    VAVBUTVCVPGVOFWJVEVRABGFCZDCAGDCVSABGVFVGRTVHWOGADWOGGDCZGFCGBWPGFWPBVIUJVJ
    GGRRTVKUNVEVLVMVM $.

  $( Example for ~ df-prmo : ` ( #p `` 1 0 ) = 2 x. 3 x. 5 x. 7 ` .
     (Contributed by AV, 6-Sep-2021.) $)
  ex-prmo $p |- ( #p ` ; 1 0 ) = ; ; 2 1 0 $=
    ( c1 cc0 cdc cprmo cfv cmin co c9 cprime wcel cmul wceq prmonn2 ax-mp eqtri
    cif cn fveq2i c8 c7 10nn 10nprm iffalsei 10m1e9 9nn 9nprm 9m1e8 8nprm 8m1e7
    c2 8nn 7nn 7prm iftruei c3 7nn0 3nn0 c6 7m1e6 prmo6 7cn 3cn 7t3e21 mulcomli
    0nn0 mul02i decmul1 3eqtri ) ABCZDEZVIAFGZDEZHDEZUJACZBCZVJVIIJZVLVIKGZVLPZ
    VLVIQJVJVRLUAVIMNVPVQVLUBUCOVKHDUDRVMHAFGZDEZSDEZVOVMHIJZVTHKGZVTPZVTHQJVMW
    DLUEHMNWBWCVTUFUCOVSSDUGRWASAFGZDEZTDEZVOWASIJZWFSKGZWFPZWFSQJWAWJLUKSMNWHW
    IWFUHUCOWETDUIRWGTIJZTAFGZDEZTKGZWMPZWNVOTQJWGWOLULTMNWKWNWMUMUNUOBVNBTWMUP
    UQVEWMURDEUOBCWLURDUSRUTOVETUOVNVAVBVCVDTVAVFVGVHVHVHVH $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Other examples
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.  $d h m n $.
    $( Proof illustrating the comment of ~ aev2 .  (Contributed by BJ,
       30-Mar-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    aevdemo $p |- ( A. x x = y ->
          ( ( E. a A. b c = d \/ E. e f = g ) /\ A. h ( i = j -> k = l ) ) ) $=
      ( vm vn weq wal wex aev wo wi 19.2d olcd aeveq a1d alrimiv syl jca ) ABQA
      RZLMQKRJSZDEQZCSZUAGHQZINQZUBZFRZUJUMUKUJULCABCEDTUCUDUJOPQORZUQABOPOTURU
      PFURUOUNOPINUEUFUGUHUI $.
  $}

  ${
    $d N k $.  $d k n $.
    $( Example of a proof by induction (divisibility result).  (Contributed by
       Stanislas Polu, 9-Mar-2020.)  (Revised by BJ, 24-Mar-2020.) $)
    ex-ind-dvds $p |- ( N e. NN0 -> 3 || ( ( 4 ^ N ) + 2 ) ) $=
      ( c3 c4 cexp co c2 caddc cdvds c1 wceq oveq2 oveq1d breq2d wcel cmul cmin
      wbr cz a1i 3cn vk vn cv cc0 3z iddvds ax-mp numexp0 oveq1i 1p2e3 breqtrri
      eqtri cn0 wa id nn0expcld nn0zd adantr 2z zaddcld 4z dvdsmultr1d dvdsmul1
      4nn0 simpr mp2an zmulcld dvds2subd nn0cnd 2cnd cc 4cn adddird 2cn mulcomi
      simpl oveq2d expp1d ax-1cn 3p1e4 addcomli eqcomi pncan3oi oveq2i 3eqtr3ri
      subdii 2t1e2 oveq12d mulcld addsubassd eqtr4d 3eqtr4rd breqtrrd ex nn0ind
      ) BCUAUCZDEZFGEZHQBCUDDEZFGEZHQBCUBUCZDEZFGEZHQZBCXAIGEZDEZFGEZHQZBCADEZF
      GEZHQUAUBAWPUDJZWRWTBHXKWQWSFGWPUDCDKLMWPXAJZWRXCBHXLWQXBFGWPXACDKLMWPXEJ
      ZWRXGBHXMWQXFFGWPXECDKLMWPAJZWRXJBHXNWQXIFGWPACDKLMBBWTHBRNZBBHQUEBUFUGWT
      IFGEBWSIFGCVDUHUIUJULUKXAUMNZXDXHXPXDUNZBXCCOEZBFOEZPEZXGHXQBXRXSXOXQUESZ
      XQBXCCYAXQXBFXPXBRNXDXPXBXPCXACUMNZXPVDSXPUOZUPZUQURFRNZXQUSSZUTCRNXQVASZ
      XPXDVEVBBXSHQZXQXOYEYHUEUSBFVCVFSXQXCCXQXBFXQXBXQCXAYBXQVDSXPXDVPUPUQYFUT
      YGVGXQBFYAYFVGVHXPXGXTJXDXPXRFBOEZPEXBCOEZFCOEZGEZYIPEZXTXGXPXRYLYIPXPXBF
      CXPXBYDVIZXPVJZCVKNXPVLSZVMLXPXSYIXRPXSYIJXPBFTVNVOSVQXPXGYJYKYIPEZGEYMXP
      XFYJFYQGXPCXAYPYCVRFYQJXPFCBPEZOEFIOEYQFYRIFOYRIBGEZBPEICYSBPYSCBICTVSVTW
      AWBUIIBVSTWCULWDFCBVNVLTWFWGWESWHXPYJYKYIXPXBCYNYPWIXPFCYOYPWIXPFBYOBVKNX
      PTSWIWJWKWLURWMWNWO $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Humor
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  April Fool's theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x F $.
    $( Poisson d'Avril's Theorem.  This theorem is noted for its
       _Selbstdokumentieren_ property, which means, literally,
       "self-documenting" and recalls the principle of _quidquid german dictum
       sit, altum viditur_, often used in set theory.  Starting with the
       seemingly simple yet profound fact that any object ` x ` equals itself
       (proved by Tarski in 1965; see Lemma 6 of [Tarski] p. 68), we
       demonstrate that the power set of the real numbers, as a relation on the
       value of the imaginary unit, does not conjoin with an empty relation on
       the product of the additive and multiplicative identity elements,
       leading to this startling conclusion that has left even seasoned
       professional mathematicians scratching their heads.  (Contributed by
       Prof.  Loof Lirpa, 1-Apr-2005.)  (Proof modification is discouraged.)
       (New usage is discouraged.)

       _A reply to skeptics can be found at ~ mmnotes.txt , under the
       1-Apr-2006 entry_. $)
    avril1 $p |- -. ( A ~P RR ( _i ` 1 ) /\ F (/) ( 0 x. 1 ) ) $=
      ( vy vx vz c1 ci cfv cr cpw wbr cc0 c0 wa wn cv c0r cop wcel wceq cmul co
      c1r cio cnr csn cxp cvv weq equid dfnul2 con2bii mpbi eleq1 mtbii vtocleg
      abeq2i elex con3i pm2.61i df-br 0cn opeq2i eleq1i bitri mtbir intnan df-i
      mulid1i fveq1i df-fv eqtri breq2i df-r wss cab sseq2 abbidv df-pw 3eqtr4g
      ax-mp breqi anbi1i notbii mpbir ) AFGHZIJZKZBLFUAUBZMKZNZOAFCPQUCRZKCUDZU
      EQUFUGZJZKZWJNZOWJWPWJBLRZMSZWRUHSZWSOZXADWRUHDPZWRTXBMSZWSDDUIZXCODUJXCX
      DXDODMDUKUQULUMXBWRMUNUOUPWSWTWRMURUSUTWJBWIRZMSWSBWIMVAXEWRMWILBLVBVIVCV
      DVEVFVGWKWQWHWPWJWHAWMWGKWPWFWMAWGWFFWLHWMFGWLVHVJCFWLVKVLVMAWMWGWOIWNTZW
      GWOTVNXFEPZIVOZEVPXGWNVOZEVPWGWOXFXHXIEIWNXGVQVREIVSEWNVSVTWAWBVEWCWDWE
      $.
  $}

  $( The law of excluded middle.  Act III, Theorem 1 of Shakespeare, _Hamlet,
     Prince of Denmark_ (1602).  Its author leaves its proof as an exercise for
     the reader - "To be, or not to be: that is the question" - starting a
     trend that has become standard in modern-day textbooks, serving to make
     the frustrated reader feel inferior, or in some cases to mask the fact
     that the author does not know its solution.  (Contributed by Prof.  Loof
     Lirpa, 1-Apr-2006.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  2bornot2b $p |- ( 2 x. B \/ -. 2 x. B ) $=
    ( c2 cmul wbr wn wo wi ax-1 mpd df-or mpbir ) BACDZLEZFMMGMLMGZMMLHMNHILMJK
    $.

  $( The classic "Hello world" benchmark has been translated into 314 computer
     programming languages - see ~ http://www.roesler-ac.de/wolfram/hello.htm .
     However, for many years it eluded a proof that it is more than just a
     conjecture, even though a wily mathematician once claimed, "I have
     discovered a truly marvelous proof of this, which this margin is too
     narrow to contain."  Using an IBM 709 mainframe, a team of mathematicians
     led by Prof.  Loof Lirpa, at the New College of Tahiti, were finally able
     put it rest with a remarkably short proof only 4 lines long.  (Contributed
     by Prof.  Loof Lirpa, 1-Apr-2007.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  helloworld $p |- -. ( h e. ( L L 0 ) /\ W (/) ( R. 1 d ) ) $=
    ( cnr cv c1 co c0 wbr cc0 wcel cop noel df-br mtbir intnan ) CEDFGHZIJZAFBK
    BHLSCRMZILTNCRIOPQ $.

  $( One plus one equals two.  Using proof-shortening techniques pioneered by
     Mr.  Mel L. O'Cat, along with the latest supercomputer technology, Prof.
     Loof Lirpa and colleagues were able to shorten Whitehead and Russell's
     360-page proof that 1+1=2 in _Principia Mathematica_ to this remarkable
     proof only two steps long, thus establishing a new world's record for this
     famous theorem.  (Contributed by Prof.  Loof Lirpa, 1-Apr-2008.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  1p1e2apr1 $p |- ( 1 + 1 ) = 2 $=
    ( c2 c1 caddc co df-2 eqcomi ) ABBCDEF $.

  ${
    $d x A $.
    $( Law of identity (reflexivity of class equality).  Theorem 6.4 of [Quine]
       p. 41.

       This law is thought to have originated with Aristotle (_Metaphysics_,
       Book VII, Part 17).  It is one of the three axioms of Ayn Rand's
       philosophy (_Atlas Shrugged_, Part Three, Chapter VII).  While some have
       proposed extending Rand's axiomatization to include Compassion and
       Kindness, others fear that such an extension may flirt with logical
       inconsistency.  (Contributed by Stefan Allan, 1-Apr-2009.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    eqid1 $p |- A = A $=
      ( vx cv wcel biid eqriv ) BAABCADEF $.
  $}

  ${
    $d x y z $.
    $( Division by zero is forbidden!  If we try, we encounter the DO NOT ENTER
       sign, which in mathematics means it is foolhardy to venture any further,
       possibly putting the underlying fabric of reality at risk.  Based on a
       dare by David A. Wheeler.  (Contributed by Mario Carneiro, 1-Apr-2014.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    1div0apr $p |- ( 1 / 0 ) = (/) $=
      ( vx vy vz cdiv cdm cc cc0 csn cdif wceq c1 wcel wa wn co c0 cv cmul crio
      cxp df-div riotaex dmmpt2 wne eldifsni adantl necon2bi ax-mp ndmovg mp2an
      eqid ) DEFFGHIZTJKFLZGULLZMZNZKGDOPJABFULBQCQROAQJZCFSDABCUAUQCFUBUCGGJUP
      GUKUOGGUNGGUDUMGFGUEUFUGUHKGFULDUIUJ $.
  $}

  $( Nothing seems to be impossible to Prof.  Lirpa.  After years of intensive
     research, he managed to find a proof that when given a chance to reach
     infinity, one could indeed go beyond, thus giving formal soundness to Buzz
     Lightyear's motto "To infinity... and beyond!"  (Contributed by Prof.
     Loof Lirpa, 1-Apr-2020.)  (Modified by Thierry Arnoux, 2-Aug-2020.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  topnfbey $p |- ( B e. ( 0 ... +oo ) -> +oo < B ) $=
    ( cc0 cpnf cfz co wcel clt wbr c0 noel cz wa wn wceq cxr pnfxr xrltnr ax-mp
    cr zre ltpnf syl mto intnan cxp cpw fzf fdmi ndmov eleq2i mtbir pm2.21i ) A
    BCDEZFZCAGHUNAIFAJUMIABKFZCKFZLMUMINUPUOUPCCGHZCOFUQMPCQRUPCSFUQCTCUAUBUCUD
    BCKDKKUEKUFDUGUHUIRUJUKUL $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  (Future - to be reviewed and classified)
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Planar incidence geometry
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Token for the class of planar incidence geometries. $)
  $c Plig $.

  $( Extend class notation with the class of all planar incidence
     geometries. $)
  cplig $a class Plig $.

  ${
    $d x a b c l $.
    $( Define the class of planar incidence geometries.  We use Hilbert's
       axioms and adapt them to planar geometry.  We use ` e. ` for the
       incidence relation.  We could have used a generic binary relation, but
       using ` e. ` allows us to reuse previous results.  Much of what follows
       is directly borrowed from Aitken, _Incidence-Betweenness Geometry_,
       2008, ~ http://public.csusm.edu/aitken_html/m410/betweenness.08.pdf .

       The class ` Plig ` is the class of planar incidence geometries, where a
       planar incidence geometry is defined as a set of lines satisfying three
       axioms.  In the definition below, ` x ` denotes a planar incidence
       geometry, so ` U. x ` denotes the union of its lines, that is, the set
       of points in the plane, ` l ` denotes a line, and ` a , b , c ` denote
       points.  Therefore, the axioms are: 1) for all pairs of (distinct)
       points, there exists a unique line containing them; 2) all lines contain
       at least two points; 3) there exist three non-collinear points.
       (Contributed by FL, 2-Aug-2009.) $)
    df-plig $a |- Plig = { x | (
     A. a e. U. x A. b e. U. x ( a =/= b -> E! l e. x ( a e. l /\ b e. l ) ) /\
     A. l e. x E. a e. U. x E. b e. U. x ( a =/= b /\ a e. l /\ b e. l ) /\
     E. a e. U. x E. b e. U. x E. c e. U. x A. l e. x
                                       -. ( a e. l /\ b e. l /\ c e. l ) ) } $.
  $}

  ${
    $d a b c l x G $.  $d a b c x P $.
    isplig.1 $e |- P = U. G $.
    $( The predicate "is a planar incidence geometry" for sets.  (Contributed
       by FL, 2-Aug-2009.) $)
    isplig $p |- ( G e. A -> ( G e. Plig <->
         ( A. a e. P A. b e. P ( a =/= b -> E! l e. G ( a e. l /\ b e. l ) ) /\
           A. l e. G E. a e. P E. b e. P ( a =/= b /\ a e. l /\ b e. l ) /\
           E. a e. P E. b e. P E. c e. P A. l e. G
                                     -. ( a e. l /\ b e. l /\ c e. l ) ) ) ) $=
      ( vx cv wne wel wreu wi cuni wral w3a wrex raleqbidv rexeqbidv wa wn wceq
      cplig unieq syl6eqr reueq1 imbi2d rexeqdv raleqbi1dv raleq df-plig elab2g
      3anbi123d ) DJEJKZDGLZEGLZUAZGIJZMZNZEUSOZPZDVBPZUOUPUQQZEVBRZDVBRZGUSPZU
      PUQFGLQUBZGUSPZFVBRZEVBRZDVBRZQUOURGCMZNZEBPZDBPZVEEBRZDBRZGCPZVIGCPZFBRZ
      EBRZDBRZQICUDAUSCUCZVDVQVHVTVMWDWEVCVPDVBBWEVBCOBUSCUEHUFZWEVAVOEVBBWFWEU
      TVNUOURGUSCUGUHSSVGVSGUSCWEVFVRDVBBWFWEVEEVBBWFUITUJWEVLWCDVBBWFWEVKWBEVB
      BWFWEVJWAFVBBWFVIGUSCUKTTTUNIDEFGULUM $.

    $( The predicate "is a planar incidence geometry".  (Contributed by BJ,
       2-Dec-2021.) $)
    ispligb $p |- ( G e. Plig <-> ( G e. _V /\
         ( A. a e. P A. b e. P ( a =/= b -> E! l e. G ( a e. l /\ b e. l ) ) /\
           A. l e. G E. a e. P E. b e. P ( a =/= b /\ a e. l /\ b e. l ) /\
           E. a e. P E. b e. P E. c e. P A. l e. G
                                     -. ( a e. l /\ b e. l /\ c e. l ) ) ) ) $=
      ( cplig wcel cvv cv wne wel wa wreu wi wral w3a wrex wn isplig biadan2
      elex ) BHIBJICKDKLZCFMZDFMZNFBOPDAQCAQUDUEUFRDASCASFBQUEUFEFMRTFBQEASDASC
      ASRBHUCJABCDEFGUAUB $.
  $}

  ${
    $d a b c l G $.  $d a b c P $.
    tncp.1 $e |- P = U. G $.
    $( In any planar incidence geometry, there exist three non-collinear
       points.  (Contributed by FL, 3-Aug-2009.) $)
    tncp $p |- ( G e. Plig -> E. a e. P E. b e. P E. c e. P A. l e. G
                                         -. ( a e. l /\ b e. l /\ c e. l ) ) $=
      ( cplig wcel cv wne wel wa wreu wi wral w3a wrex wn isplig ibi simp3d ) B
      HIZCJDJKZCFLZDFLZMFBNODAPCAPZUDUEUFQDARCARFBPZUEUFEFLQSFBPEARDARCARZUCUGU
      HUIQHABCDEFGTUAUB $.
  $}

  ${
    $d a b c l G $.  $d a b l L $.  $d a b c l P $.
    l2p.1 $e |- P = U. G $.
    $( For any line in a planar incidence geometry, there exist two different
       points on the line.  (Contributed by AV, 28-Nov-2021.) $)
    l2p $p |- ( ( G e. Plig /\ L e. G )
                -> E. a e. P E. b e. P ( a =/= b /\ a e. L /\ b e. L ) ) $=
      ( vl vc cplig wcel cv wne w3a wrex wi wel wa wreu wral eleq2 wceq pm2.43i
      wn isplig 3anbi23d 2rexbidv rspccv 3ad2ant2 syl6bi imp ) BIJZCBJZDKZEKZLZ
      UMCJZUNCJZMZEANDANZUKULUSOZUKUKUODGPZEGPZQGBROEASDASZUOVAVBMZEANDANZGBSZV
      AVBHGPMUCGBSHANEANDANZMUTIABDEHGFUDVFVCUTVGVEUSGCBGKZCUAZVDURDEAAVIVAUPVB
      UQUOVHCUMTVHCUNTUEUFUGUHUIUBUJ $.

    $d d G $.  $d a b c d l L $.  $d d P $.
    $( For any line in a planar incidence geometry, there exists a point not on
       the line.  (Contributed by Jeff Hankins, 15-Aug-2009.) $)
    lpni $p |- ( ( G e. Plig /\ L e. G ) -> E. a e. P a e/ L ) $=
      ( vb vl vc vd wcel cv wrex w3a wn eleq2 notbid weq eleq1 rspcev ex rspccv
      cplig wnel wral wi tncp wa wceq 3anbi123d w3o 3jaao 3ianor df-nel 3imtr4g
      rexbii syl9r 3expia rexlimdv rexlimivv syl imp ) BUBJZCBJZDKZCUCZDALZVBFK
      ZGKZJZHKZVHJZIKZVHJZMZNZGBUDZIALZHALFALVCVFUEZABFHIGEUFVQVRFHAAVGAJZVJAJZ
      UGVPVRIAVSVTVLAJZVPVRUEVPVCVGCJZVJCJZVLCJZMZNZVSVTWAMZVFVOWFGCBVHCUHZVNWE
      WHVIWBVKWCVMWDVHCVGOVHCVJOVHCVLOUIPUAWGWBNZWCNZWDNZUJVDCJZNZDALZWFVFVSWIW
      NVTWJWAWKVSWIWNWMWIDVGADFQWLWBVDVGCRPSTVTWJWNWMWJDVJADHQWLWCVDVJCRPSTWAWK
      WNWMWKDVLADIQWLWDVDVLCRPSTUKWBWCWDULVEWMDAVDCUMUOUNUPUQURUSUTVA $.
  $}

  ${
    $d a b G $.  $d a b A $.
    $( There is no "one-point line" in a planar incidence geometry.
       (Contributed by BJ, 2-Dec-2021.)  (Proof shortened by AV,
       5-Dec-2021.) $)
    nsnlplig $p |- ( G e. Plig -> -. { A } e. G ) $=
      ( va vb cplig wcel csn wa cv wne w3a cuni wrex wn eqid l2p wceq elsni syl
      wi weq eqtr3 eqneqall syl2an impcom 3impb a1i rexlimivv pm2.01da ) BEFZAG
      ZBFZUJULHCIZDIZJZUMUKFZUNUKFZKZDBLZMCUSMULNZUSBUKCDUSOPURUTCDUSUSURUTTUMU
      SFUNUSFHUOUPUQUTUPUQHUOUTUPUMAQZUNAQZUOUTTZUQUMARUNARVAVBHCDUAVCUMUNAUBUT
      UMUNUCSUDUEUFUGUHSUI $.
  $}

  ${
    $d a b G $.  $d a b A $.
    $( Alternate version of ~ nsnlplig using the predicate ` e/ ` instead of
       ` -. e. ` and whose proof is shorter.  (Contributed by AV, 5-Dec-2021.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nsnlpligALT $p |- ( G e. Plig -> { A } e/ G ) $=
      ( va vb cplig wcel csn wnel wa cv wne w3a cuni wrex eqid l2p wi elsni syl
      wceq weq eqtr3 eqneqall syl2an impcom 3impb rexlimivv simpr pm2.61danel
      a1i ) BEFZAGZBHZULBUKULBFICJZDJZKZUNULFZUOULFZLZDBMZNCUTNUMUTBULCDUTOPUSU
      MCDUTUTUSUMQUNUTFUOUTFIUPUQURUMUQURIUPUMUQUNATZUOATZUPUMQZURUNARUOARVAVBI
      CDUAVCUNUOAUBUMUNUOUCSUDUEUFUJUGSUKUMUHUI $.
  $}

  $( There is no "empty line" in a planar incidence geometry.  (Contributed by
     AV, 28-Nov-2021.)  (Proof shortened by BJ, 2-Dec-2021.) $)
  n0lplig $p |- ( G e. Plig -> -. (/) e. G ) $=
    ( cplig wcel cvv c0 nsnlplig wn wceq elirr snprc mpbi eqcomi eleq1i sylnibr
    csn ) ABCDOZACEACDAFEPAPEDDCGPEHDIDJKLMN $.

  ${
    $d a b G $.
    $( Alternate version of ~ n0lplig using the predicate ` e/ ` instead of
       ` -. e. ` and whose proof bypasses ~ nsnlplig .  (Contributed by AV,
       28-Nov-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    n0lpligALT $p |- ( G e. Plig -> (/) e/ G ) $=
      ( va vb cplig wcel c0 wnel wa cv wne w3a cuni wrex eqid l2p noel 3ad2ant2
      wi pm2.21i a1i rexlimivv syl simpr pm2.61danel ) ADEZFAGZFAUEFAEHBIZCIZJZ
      UGFEZUHFEZKZCALZMBUMMUFUMAFBCUMNOULUFBCUMUMULUFRUGUMEUHUMEHUJUIUFUKUJUFUG
      PSQTUAUBUEUFUCUD $.
  $}

  ${
    $d a b c l G $.  $d a b c x P $.  $d a b l A $.  $d a b l B $.
    eulplig.1 $e |- P = U. G $.
    $( Through two distinct points of a planar incidence geometry, there is a
       unique line.  (Contributed by BJ, 2-Dec-2021.) $)
    eulplig $p |- ( ( G e. Plig /\ ( ( A e. P /\ B e. P ) /\ A =/= B ) ) ->
                                            E! l e. G ( A e. l /\ B e. l ) ) $=
      ( va vb vc cplig wcel wa wne cv wreu wel wi wral w3a wrex wn isplig simp1
      ibi wceq simpl simpr neeq12d eleq1 bi2anan9 reubidv imbi12d rspc2gv com23
      imp com12 3syl ) DJKZACKBCKLZABMZLZAENZKZBVBKZLZEDOZURGNZHNZMZGEPZHEPZLZE
      DOZQZHCRGCRZVIVJVKSHCTGCTEDRZVJVKIEPSUAEDRICTHCTGCTZSZVOVAVFQURVRJCDGHIEF
      UBUDVOVPVQUCVAVOVFUSUTVOVFQUSVOUTVFVNUTVFQGHABCCVGAUEZVHBUEZLZVIUTVMVFWAV
      GAVHBVSVTUFVSVTUGUHWAVLVEEDVSVJVCVTVKVDVGAVBUIVHBVBUIUJUKULUMUNUOUPUQUO
      $.
  $}

  ${
    $( Any planar incidence geometry can be regarded as a hypergraph with its
       points as vertices and its lines as edges.  See ~ incistruhgr for a
       generalization of this case for arbitrary incidence structures (planar
       incidence geometries are such incidence structures).  (Proposed by
       Gerard Lang, 24-Nov-2021.)  (Contributed by AV, 28-Nov-2021.) $)
    pliguhgr $p |- ( G e. Plig -> <. U. G , ( _I |` G ) >. e. UHGraph ) $=
      ( cplig wcel cuni cid cres cop cuhgr cdm cpw c0 csn cdif wf wf1o f1oi wss
      wi wb cvv f1of pwuni cin wceq n0lplig adantr disjsn sylibr reldisj adantl
      wa wn mpbid mpan2 fss sylan2 ex mp2b ffdmd uniexg resiexg isuhgrop mpbird
      syl2anc ) ABCZADZEAFZGHCZVGIVFJZKLZMZVGNZVEAVKVGAAVGOAAVGNZVEAVKVGNZRAPAA
      VGUAVMVEVNVEVMAVKQZVNVEAVIQZVOAUBVEVPUKZAVJUCKUDZVOVQKACULZVRVEVSVPAUEUFA
      KUGUHVPVRVOSVEAVJVIUIUJUMUNAAVKVGUOUPUQURUSVEVFTCVGTCVHVLSABUTABVAVGVFTTV
      BVDVC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Aliases kept to prevent broken links
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This section contains a few aliases that we temporarily keep to prevent
  broken links.  If you land on any of these, please let the originating site
  and/or us know that the link that made you land here should be changed.

$)

  ${
    dummylink.1 $e |- ph $.
    dummylink.2 $e |- ps $.
    $( Alias for ~ a1ii that may be referenced in some older works, and kept
       here to prevent broken links.

       If you landed here, please let the originating site and/or us know that
       the link that made you land here should be changed to a link to ~ a1ii .

       (Contributed by NM, 7-Feb-2006.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    dummylink $p |- ph $=
      (  ) C $.
  $}

  $( Alias for ~ idALT that may be referenced in some older works, and kept
     here to prevent broken links.

     If you landed here, please let the originating site and/or us know that
     the link that made you land here should be changed to a link to ~ idALT .

     (Contributed by NM, 30-Sep-1992.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  id1 $p |- ( ph -> ph ) $=
    ( idALT ) AB $.

$( End $[ set-main.mm $] $)


$( Begin $[ set-deprec.mm $] $)
$(
###############################################################################
  COMPLEX TOPOLOGICAL VECTOR SPACES (DEPRECATED)
###############################################################################

  The intent is for this deprecated section to be deleted once its theorems
  have extensible structure versions (or are not useful).  You can make a list
  of "terminal" theorems (i.e., theorems not referenced by anything else) and
  for each theorem see if there exists an extensible structure version (or
  decide it is not useful), and if so, delete it. Then repeat this recursively.
  One way to search for terminal theorems is to log the output ("open log
  x.txt") of "show usage <label-match>" in metamath.exe and search for
  "(None)".

$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Additional material on group theory (deprecated)
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  This section contains an earlier development of groups that was defined
  before extensible structures were introduced.

  The intent is for this deprecated section to be deleted once the
  corresponding definitions and theorems for complex topological vector spaces,
  which are using them, are revised accordingly.

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definitions and basic properties for groups
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c GrpOp $.
  $c GId $.
  $c inv $.
  $c /g $.

  $( Extend class notation with the class of all group operations. $)
  cgr $a class GrpOp $.

  $( Extend class notation with a function mapping a group operation to the
     group's identity element. $)
  cgi $a class GId $.

  $( Extend class notation with a function mapping a group operation to the
     inverse function for the group. $)
  cgn $a class inv $.

  $( Extend class notation with a function mapping a group operation to the
     division (or subtraction) operation for the group. $)
  cgs $a class /g $.

  ${
    $d g t u x y z $.
    $( Define the class of all group operations.  The base set for a group can
       be determined from its group operation.  Based on the definition in
       Exercise 28 of [Herstein] p. 54.  (Contributed by NM, 10-Oct-2006.)
       (New usage is discouraged.) $)
    df-grpo $a |- GrpOp = { g | E. t ( g : ( t X. t ) --> t
       /\ A. x e. t A. y e. t A. z e. t ( ( x g y ) g z ) = ( x g ( y g z ) )
   /\ E. u e. t A. x e. t ( ( u g x ) = x /\ E. y e. t ( y g x ) = u ) ) } $.

    $( Define a function that maps a group operation to the group's identity
       element.  (Contributed by FL, 5-Feb-2010.)  (Revised by Mario Carneiro,
       15-Dec-2013.)  (New usage is discouraged.) $)
    df-gid $a |- GId = ( g e. _V |-> ( iota_ u e. ran g A. x e. ran g
                        ( ( u g x ) = x /\ ( x g u ) = x ) ) ) $.

    $( Define a function that maps a group operation to the group's inverse
       function.  (Contributed by NM, 26-Oct-2006.)
       (New usage is discouraged.) $)
    df-ginv $a |- inv = ( g e. GrpOp |-> ( x e. ran g |->
                    ( iota_ z e. ran g ( z g x ) = ( GId ` g ) ) ) ) $.

    $( Define a function that maps a group operation to the group's division
       (or subtraction) operation.  (Contributed by NM, 15-Feb-2008.)
       (New usage is discouraged.) $)
    df-gdiv $a |- /g = ( g e. GrpOp |-> ( x e. ran g , y e. ran g |->
                         ( x g ( ( inv ` g ) ` y ) ) ) ) $.
  $}

  ${
    $d g t u x y z G $.  $d g t u x y z X $.
    isgrp.1 $e |- X = ran G $.
    $( The predicate "is a group operation."  Note that ` X ` is the base set
       of the group.  (Contributed by NM, 10-Oct-2006.)
       (New usage is discouraged.) $)
    isgrpo $p |- ( G e. A -> ( G e. GrpOp <-> ( G : ( X X. X ) --> X /\
       A. x e. X A. y e. X A. z e. X ( ( x G y ) G z ) = ( x G ( y G z ) )
   /\ E. u e. X A. x e. X ( ( u G x ) = x /\ E. y e. X ( y G x ) = u ) ) ) ) $=
      ( vt vg wcel cv wceq cxp wf co wral wrex wa oveq cgr crn w3a oveq1d eqtrd
      wex feq1 oveq2d eqeq12d ralbidv 2ralbidv eqeq1d rexbidv anbi12d 3anbi123d
      rexralbidv exbidv df-grpo elab2g simpl ralimi oveq2 id eqcom syl6bb rspcv
      wfo eqeq2d rspcev syld syl5 reximdv impcom ralrimiva anim2i sylibr eqcomd
      ex foov forn syl 3adant2 pm4.71ri exbii wb rnexg eqeq2i xpeq1 xpeq2 feq2d
      cvv feq3 bitrd raleq raleqbi1dv rexeq anbi2d rexeqbi1dv sylbir ceqsexgv )
      FEKZFUAKZILZFUBZMZXCXCNZXCFOZALZBLZFPZCLZFPZXHXIXKFPZFPZMZCXCQZBXCQZAXCQZ
      DLZXHFPZXHMZXIXHFPZXSMZBXCRZSZAXCQZDXCRZUCZSZIUFZGGNZGFOZXOCGQZBGQZAGQZYA
      YCBGRZSZAGQZDGRZUCZXAXBYHIUFZYJXFXCJLZOZXHXIUUBPZXKUUBPZXHXIXKUUBPZUUBPZM
      ZCXCQZBXCQAXCQZXSXHUUBPZXHMZXIXHUUBPZXSMZBXCRZSZAXCQDXCRZUCZIUFUUAJFUAEUU
      BFMZUURYHIUUSUUCXGUUJXRUUQYGXFXCUUBFUGUUSUUIXPABXCXCUUSUUHXOCXCUUSUUEXLUU
      GXNUUSUUEUUDXKFPXLUUDXKUUBFTUUSUUDXJXKFXHXIUUBFTUDUEUUSUUGXHUUFFPXNXHUUFU
      UBFTUUSUUFXMXHFXIXKUUBFTUHUEUIUJUKUUSUUPYEDAXCXCUUSUULYAUUOYDUUSUUKXTXHXS
      XHUUBFTULUUSUUNYCBXCUUSUUMYBXSXIXHUUBFTULUMUNUPUOUQABCDIJURUSYHYIIYHXEXGY
      GXEXRXGYGSZXFXCFVGZXEUUTXGXKXSXIFPZMZBXCRZDXCRZCXCQZSUVAYGUVFXGYGUVECXCXK
      XCKZYGUVEUVGYFUVDDXCYFYAAXCQZUVGUVDYEYAAXCYAYDUTVAUVGUVHXKXSXKFPZMZUVDYAU
      VJAXKXCXHXKMZYAUVIXKMUVJUVKXTUVIXHXKXHXKXSFVBUVKVCUIUVIXKVDVEVFUVGUVJUVDU
      VCUVJBXKXCXIXKMUVBUVIXKXIXKXSFVBVHVIVRVJVKVLVMVNVODBCXCXCXCFVSVPUVAXDXCXF
      XCFVTVQWAWBWCWDVEXAXDWKKYJYTWEFEWFYHYTIXDWKXEXCGMZYHYTWEGXDXCHWGUVLXGYLXR
      YOYGYSUVLXGYKXCFOYLUVLXFYKXCFUVLXFGXCNYKXCGXCWHXCGGWIUEWJXCGYKFWLWMXQYNAX
      CGXPYMBXCGXOCXCGWNWOWOYFYRDXCGYEYQAXCGUVLYDYPYAYCBXCGWPWQWOWRUOWSWTWAWM
      $.
  $}

  ${
    $d u x y z G $.  $d u x y z U $.  $d u x y z X $.  $d y N $.
    isgrpoi.1 $e |- X e. _V $.
    isgrpoi.2 $e |- G : ( X X. X ) --> X $.
    isgrpoi.3 $e |- ( ( x e. X /\ y e. X /\ z e. X ) ->
                   ( ( x G y ) G z ) = ( x G ( y G z ) ) ) $.
    isgrpoi.4 $e |- U e. X $.
    isgrpoi.5 $e |- ( x e. X -> ( U G x ) = x ) $.
    isgrpoi.6 $e |- ( x e. X -> N e. X ) $.
    isgrpoi.7 $e |- ( x e. X -> ( N G x ) = U ) $.
    $( Properties that determine a group operation.  Read ` N ` as
       ` N ( x ) ` .  (Contributed by NM, 4-Nov-2006.)
       (New usage is discouraged.) $)
    isgrpoi $p |- G e. GrpOp $=
      ( vu wcel co wceq wral wrex cgr cxp wf cv rgen3 eqeq1d rspcev syl2anc jca
      wa oveq1 rgen eqeq2 rexbidv anbi12d ralbidv mp2an cvv w3a wb xpex fex crn
      wfo eqcomd rspceov mp3an1 mpdan foov mpbir2an forn eqcomi isgrpo mpbir3an
      ax-mp ) EUAPZGGUBZGEUCZAUDZBUDZEQCUDZEQVSVTWAEQZEQRZCGSBGSAGSZOUDZVSEQZVS
      RZVTVSEQZWERZBGTZUJZAGSZOGTZIWCABCGGGJUEDGPZDVSEQZVSRZWHDRZBGTZUJZAGSZWMK
      WSAGVSGPZWPWRLXAFGPFVSEQZDRZWRMNWQXCBFGVTFRWHXBDVTFVSEUKUFUGUHUIULWLWTODG
      WEDRZWKWSAGXDWGWPWJWRXDWFWOVSWEDVSEUKUFXDWIWQBGWEDWHUMUNUOUPUGUQEURPZVPVR
      WDWMUSUTVRVQURPXEIGGHHVAVQGUREVBUQABCOUREGEVCZGVQGEVDZXFGRXGVRVSWBRCGTBGT
      ZAGSIXHAGXAVSWORZXHXAWOVSLVEWNXAXIXHKBCGGDVSVSEVFVGVHULBCAGGGEVIVJVQGEVKV
      OVLVMVOVN $.
  $}

  ${
    $d w x y z A $.  $d x y z B $.  $d z C $.  $d u w x y z G $.
    $d u w x y z X $.  $d y U $.
    grpfo.1 $e |- X = ran G $.
    $( A group operation maps onto the group's underlying set.  (Contributed by
       NM, 30-Oct-2006.)  (New usage is discouraged.) $)
    grpofo $p |- ( G e. GrpOp -> G : ( X X. X ) -onto-> X ) $=
      ( vx vy vz vu cgr wcel cxp wf crn wceq wa wfo cv co wral wrex w3a isgrpo
      ibi simp1d eqcomi jctir dffo2 sylibr ) AHIZBBJZBAKZALZBMZNUIBAOUHUJULUHUJ
      DPZEPZAQFPZAQUMUNUOAQAQMFBREBRDBRZGPZUMAQUMMUNUMAQUQMEBSNDBRGBSZUHUJUPURT
      DEFGHABCUAUBUCBUKCUDUEUIBAUFUG $.

    $( Closure law for a group operation.  (Contributed by NM, 10-Oct-2006.)
       (New usage is discouraged.) $)
    grpocl $p |- ( ( G e. GrpOp /\ A e. X /\ B e. X ) -> ( A G B ) e. X ) $=
      ( cgr wcel cxp wf co wfo grpofo fof syl fovrn syl3an1 ) CFGZDDHZDCIZADGBD
      GABCJDGQRDCKSCDELRDCMNABDDDCOP $.

    $( A group has a left identity element, and every member has a left
       inverse.  (Contributed by NM, 2-Nov-2006.)
       (New usage is discouraged.) $)
    grpolidinv $p |- ( G e. GrpOp ->
         E. u e. X A. x e. X ( ( u G x ) = x /\ E. y e. X ( y G x ) = u ) ) $=
      ( vz cgr wcel cxp wf cv co wceq wral wrex wa w3a isgrpo ibi simp3d ) DHIZ
      EEJEDKZALZBLZDMGLZDMUDUEUFDMDMNGEOBEOAEOZCLZUDDMUDNUEUDDMUHNBEPQAEOCEPZUB
      UCUGUIRABGCHDEFSTUA $.

    $( The base set of a group is not empty.  (Contributed by Szymon
       Jaroszewicz, 3-Apr-2007.)  (New usage is discouraged.) $)
    grpon0 $p |- ( G e. GrpOp -> X =/= (/) ) $=
      ( vu vx vy cgr wcel cv co wceq wrex wa wral c0 wne grpolidinv rexn0 syl )
      AGHDIZEIZAJUAKFIUAAJTKFBLMEBNZDBLBOPEFDABCQUBDBRS $.

    $( A group operation is associative.  (Contributed by NM, 10-Oct-2006.)
       (New usage is discouraged.) $)
    grpoass $p |- ( ( G e. GrpOp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
              ( ( A G B ) G C ) = ( A G ( B G C ) ) ) $=
      ( vx vy vz vu cgr wcel cv co wceq wral w3a oveq1 eqeq12d oveq2 wf wrex wa
      cxp isgrpo ibi simp2d oveq1d oveq2d rspc3v mpan9 ) DKLZGMZHMZDNZIMZDNZUMU
      NUPDNZDNZOZIEPHEPGEPZAELBELCELQABDNZCDNZABCDNZDNZOZULEEUDEDUAZVAJMZUMDNUM
      OUNUMDNVHOHEUBUCGEPJEUBZULVGVAVIQGHIJKDEFUEUFUGUTVFAUNDNZUPDNZAURDNZOVBUP
      DNZABUPDNZDNZOGHIABCEEEUMAOZUQVKUSVLVPUOVJUPDUMAUNDRUHUMAURDRSUNBOZVKVMVL
      VOVQVJVBUPDUNBADTUHVQURVNADUNBUPDRUISUPCOZVMVCVOVEUPCVBDTVRVNVDADUPCBDTUI
      SUJUK $.

    $( Lemma for ~ grpoidinv .  (Contributed by NM, 10-Oct-2006.)
       (New usage is discouraged.) $)
    grpoidinvlem1 $p |- ( ( ( G e. GrpOp /\ ( Y e. X /\ A e. X ) ) /\
                  ( ( Y G A ) = U /\ ( A G A ) = A ) ) -> ( U G A ) = U ) $=
      ( cgr wcel wa co wceq w3a id 3anidm23 grpoass sylan2 oveq1 ad2antrl oveq2
      adantr ad2antll simprl eqtrd 3eqtr3d ) CGHZEDHZADHZIZIZEACJZBKZAACJZAKZIZ
      IZUJACJZEULCJZBACJZBUIUPUQKZUNUHUEUFUGUGLZUSUFUGUTUTMNEAACDFOPTUKUPURKUIU
      MUJBACQRUOUQUJBUMUQUJKUIUKULAECSUAUIUKUMUBUCUD $.

    $( Lemma for ~ grpoidinv .  (Contributed by NM, 10-Oct-2006.)
       (New usage is discouraged.) $)
    grpoidinvlem2 $p |- ( ( ( G e. GrpOp /\ ( Y e. X /\ A e. X ) )
     /\ ( ( U G Y ) = Y /\ ( Y G A ) = U ) )
            -> ( ( A G Y ) G ( A G Y ) ) = ( A G Y ) ) $=
      ( cgr wcel wa co wceq w3a simprr simprl grpocl 3com23 3jca grpoass syldan
      3expb adantr oveq1 adantl simpl eqtr2d id 3anidm13 sylan2 sylan9eqr eqtrd
      eqcomd oveq2d ) CGHZEDHZADHZIZIZBECJZEKZEACJZBKZIZIZAECJZVDCJZAEVDCJZCJZV
      DUQVEVGKZVBUMUPUOUNVDDHZLVHUQUOUNVIUMUNUOMUMUNUONUMUNUOVIUMUOUNVIAECDFOPT
      QAEVDCDFRSUAVCVFEACVCEVFVBUQEUTECJZVFVBVJUREVAVJURKUSUTBECUBUCUSVAUDUEUPU
      MUNUOUNLZVJVFKUNUOVKVKUFUGEAECDFRUHUIUKULUJ $.

    ${
      $d w x y z U $.  $d w y ph $.  $d y ps $.
      grpidinvlem3.2 $e |- ( ph <-> A. x e. X ( U G x ) = x ) $.
      grpidinvlem3.3 $e |- ( ps <-> A. x e. X E. z e. X ( z G x ) = U ) $.
      $( Lemma for ~ grpoidinv .  (Contributed by NM, 11-Oct-2006.)
         (New usage is discouraged.) $)
      grpoidinvlem3 $p |- ( ( ( ( G e. GrpOp /\ U e. X ) /\ ( ph /\ ps ) ) /\
                  A e. X ) -> E. y e. X ( ( y G A ) = U /\ ( A G y ) = U ) ) $=
        ( vw wcel wa cv co wceq wrex wral cgr oveq1 eqeq1d cbvrexv ralbii bitri
        rexbidv rspccva sylanb adantll grpocl adantllr biimpi ad2antrl ad2antrr
        oveq2 3expa eqeq12d rspcva syl2anc adantr pm3.22 an31s adantlr adantlll
        id anim1i grpoidinvlem2 wi 3expb ad2ant2rl anass an32s ex grpoidinvlem1
        sylan2b syldan imp sylan exp43 rexlimdv syl5 mpand exp32 com34 impl mpd
        imp32 eqtr3d ancld reximdva ) HUANZGINZOZABOZOZFINZOZDPZFHQZGRZDISZXAFW
        SHQZGRZOZDISWOWQXBWNBWQXBABWSCPZHQZGRZDISZCITZWQXBBEPZXFHQZGRZEISZCITZX
        JLXNXICIXMXHEDIXKWSRXLXGGXKWSXFHUBUCUDUEUFXIXBCFIXFFRZXHXADIXPXGWTGXFFW
        SHUPUCUGUHUIUJUJWRXAXEDIWRWSINZOZXAXDXRXAXDXRXAOZGXCHQZXCGXRXTXCRZXAXRX
        CINZGXFHQZXFRZCITZYAWNWQXQYBWOWLWQXQYBWMWLWQXQYBFWSHIJUKZUQULULWPYEWQXQ
        AYEWNBAYEKUMUNUOYDYACXCIXFXCRZYCXTXFXCXFXCGHUPYGVFURUSUTVAXSXCXCHQXCRZX
        TGRZXSWLXQWQOZOZGWSHQZWSRZXAOYHXRYKXAWNWQXQYKWOWLWQXQYKWMXQWQWLYKYJWLVB
        VCULULVAXRYMXAWOWQXQYMWNWOXQYMWQAXQYMBAYEXQYMKYDYMCWSIXFWSRZYCYLXFWSXFW
        SGHUPYNVFURUHUIVDVDVEVGFGHIWSJVHUTXRYHYIVIZXAWPWQXQYOWNABWQXQOZYOVIWNAY
        PBYOWNAYPBYOVIWNAYPOOZYBBYOWLYPYBWMAWLWQXQYBYFVJZVKYBBOMPZXCHQZGRZMISZY
        QYOBYBYSXFHQZGRZMISZCITZUUBBXOUUFLXNUUECIXMUUDEMIXKYSRXLUUCGXKYSXFHUBUC
        UDUEUFUUEUUBCXCIYGUUDUUAMIYGUUCYTGXFXCYSHUPUCUGUSVPYQUUAYOMIYQYSINZUUAY
        HYIYQUUGOWLUUGYBOOZUUAYHOYIYQUUGUUHWLYPUUGUUHVIZWMAWLYPYBUUIYRWLYBOUUGU
        UHWLUUGYBUUHWLUUGOYBOUUHWLUUGYBVLUMVMVNVQVKVRXCGHIYSJVOVSVTWAWBWCWDWEWH
        WFVAWGWIVNWJWKWG $.
    $}

    $( Lemma for ~ grpoidinv .  (Contributed by NM, 14-Oct-2006.)
       (New usage is discouraged.) $)
    grpoidinvlem4 $p |- ( ( ( G e. GrpOp /\ A e. X ) /\ E. y e. X
             ( ( y G A ) = U /\ ( A G y ) = U ) ) -> ( A G U ) = ( U G A ) ) $=
      ( cgr wcel wa cv wceq simpll simplr simpr grpoass syl13anc oveq2 sylan9eq
      co oveq1 sylan9req anasss r19.29an ) DGHZBEHZIZAJZBDSZCKZBUGDSZCKZIBCDSZC
      BDSZKZAEUFUGEHZIZUIUKUNUPUIIUKULUJBDSZUMUPUIUQBUHDSZULUPUDUEUOUEUQURKUDUE
      UOLUDUEUOMZUFUONUSBUGBDEFOPUHCBDQRUJCBDTUAUBUC $.

    $( A group has a left and right identity element, and every member has a
       left and right inverse.  (Contributed by NM, 14-Oct-2006.)
       (New usage is discouraged.) $)
    grpoidinv $p |- ( G e. GrpOp -> E. u e. X A. x e. X ( ( ( u G x ) = x /\
         ( x G u ) = x ) /\ E. y e. X ( ( y G x ) = u /\ ( x G y ) = u ) ) ) $=
      ( vz vw wcel cv co wceq wrex wa wral simpl ralimi id adantll adantl oveq2
      cgr eqeq12d rspccva sylan anim1i adantrr adantr ad2antlr simpr jca32 biid
      grpoidinvlem3 sylancom grpoidinvlem4 eqtrd ralrimiva grpolidinv reximddv
      syl2anc jca31 ) DUBIZCJZGJZDKZVDLZHJVDDKVCLHEMZNZGEOZVCAJZDKZVJLZVJVCDKZV
      JLZNBJZVJDKVCLVJVODKVCLNBEMZNZAEOCEVBVCEIZVINZNZVQAEVTVJEIZNZVLVNVPVSWAVL
      VBVIWAVLVRVIVFGEOZWAVLVHVFGEVFVGPQZVFVLGVJEVDVJLZVEVKVDVJVDVJVCDUAWERUCUD
      UESSZWBVMVKVJWBVBWANVPVMVKLVTVBWAVBVSPUFVTWAVBVRNZWCVGGEOZNNVPWBWGWCWHVTW
      GWAVBVRWGVIWGRUGUHVSWCVBWAVIWCVRWDTUIVSWHVBWAVIWHVRVHVGGEVFVGUJQTUIUKWCWH
      GBHVJVCDEFWCULWHULUMUNZBVJVCDEFUOUTWFUPWIVAUQGHCDEFURUS $.

    $( The left identity element of a group is unique.  Lemma 2.2.1(a) of
       [Herstein] p. 55.  (Contributed by NM, 14-Oct-2006.)
       (New usage is discouraged.) $)
    grpoideu $p |- ( G e. GrpOp -> E! u e. X A. x e. X ( u G x ) = x ) $=
      ( vw vz vy wcel cv co wceq wral weq wa wrex oveq2 id eqeq12d eqeq1d sylib
      cgr wi wreu grpoidinv simpll ralimi cbvralv adantl ad2antlr simpr anbi12d
      oveq1 rexbidv rspcva sylan2 grpoidinvlem4 syldan an32s adantllr ad2ant2rl
      adantll adantr ad2ant2lr 3eqtr3d mpand ralrimiva jca reximdva mpd ralbidv
      ex reu8 sylibr ) CUBIZBJZAJZCKZVQLZADMZFJZVQCKZVQLZADMZBFNZUCZFDMZOZBDPZV
      TBDUDVOVPGJZCKZWJLZWJVPCKWJLZOZHJZWJCKZVPLZWJWOCKZVPLZOZHDPZOZGDMZBDPWIGH
      BCDEUEVOXCWHBDVOVPDIZOZXCWHXEXCOZVTWGXCVTXEXCWLGDMVTXBWLGDWLWMXAUFUGWLVSG
      ADGANZWKVRWJVQWJVQVPCQXGRSUHUAZUIXFWFFDXFWADIZOZVTWDWEXCVTXEXIXHUJXJVTWDO
      ZWEXJXKOWAVPCKZVPWACKZVPWAXJXLXMLZXKVOXCXIXNXDVOXIXCXNVOXIOZXCWOWACKZVPLZ
      WAWOCKZVPLZOZHDPZXNXCXOXAGDMZYAXBXAGDWNXAUKUGXIYBYAVOXAYAGWADGFNZWTXTHDYC
      WQXQWSXSYCWPXPVPWJWAWOCQTYCWRXRVPWJWAWOCUMTULUNUOVBUPHWAVPCDEUQURUSUTVCXE
      XIXKXLVPLZXCXEWDYDXIVTXDWDYDVOWCYDAVPDABNZWBXLVQVPVQVPWACQYERSUOVBVAUTXIV
      TXMWALZXFWDVSYFAWADAFNZVRXMVQWAVQWAVPCQYGRSUOVDVEVLVFVGVHVLVIVJVTWDBFDWEV
      SWCADWEVRWBVQVPWAVQCUMTVKVMVN $.
  $}

  $( A group's range in terms of its domain.  (Contributed by NM, 6-Apr-2008.)
     (New usage is discouraged.) $)
  grporndm $p |- ( G e. GrpOp -> ran G = dom dom G ) $=
    ( cgr wcel crn cxp wfo cdm wceq eqid grpofo wf fof fdm dmeqd dmxpid syl6req
    syl ) ABCADZREZRAFZRAGZGZHARRIJTUBSGRTUASTSRAKUASHSRALSRAMQNROPQ $.

  $( The empty set is not a group.  (Contributed by NM, 25-Apr-2007.)
     (New usage is discouraged.) $)
  0ngrp $p |- -. (/) e. GrpOp $=
    ( c0 cgr wcel wne neirr crn rn0 eqcomi grpon0 mto ) ABCAADAEAAAFAGHIJ $.

  ${
    $d g u x G $.  $d g u x X $.
    gidval.1 $e |- X = ran G $.
    $( The value of the identity element of a group.  (Contributed by Mario
       Carneiro, 15-Dec-2013.)  (New usage is discouraged.) $)
    gidval $p |- ( G e. V -> ( GId ` G ) =
             ( iota_ u e. X A. x e. X ( ( u G x ) = x /\ ( x G u ) = x ) ) ) $=
      ( vg wcel cvv cgi cfv cv co wceq wa wral crio crn oveq eqeq1d riotaeqbidv
      elex rneq syl6eqr anbi12d raleqbidv df-gid riotaex fvmpt syl ) CDHCIHCJKB
      LZALZCMZULNZULUKCMZULNZOZAEPZBEQZNCDUBGCUKULGLZMZULNZULUKUTMZULNZOZAUTRZP
      ZBVFQUSIJUTCNZVGURBVFEVHVFCREUTCUCFUDZVHVEUQAVFEVIVHVBUNVDUPVHVAUMULUKULU
      TCSTVHVCUOULULUKUTCSTUEUFUAABGUGURBEUHUIUJ $.
  $}

  ${
    $d x y A $.  $d u x y G $.  $d u x y U $.  $d u x y X $.
    grpoidval.1 $e |- X = ran G $.
    grpoidval.2 $e |- U = ( GId ` G ) $.
    $( Lemma for ~ grpoidcl and others.  (Contributed by NM, 5-Feb-2010.)
       (Proof shortened by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    grpoidval $p |- ( G e. GrpOp -> U =
                     ( iota_ u e. X A. x e. X ( u G x ) = x ) ) $=
      ( vy cgr wcel cgi cv co wceq wral crio wa wrex simpl ralimi cfv gidval wi
      wreu w3a rgenw a1i grpoidinv reximi syl grpoideu 3jca reupick2 riotabidva
      wb sylan eqtr4d syl5eq ) DIJZCDKUAZBLZALZDMVBNZAEOZBEPZGUSUTVCVBVADMVBNZQ
      ZAEOZBEPVEABDIEFUBUSVDVHBEUSVHVDUCZBEOZVHBERZVDBEUDZUEVAEJVDVHUOUSVJVKVLV
      JUSVIBEVGVCAEVCVFSTUFUGUSVGHLZVBDMVANVBVMDMVANQHERZQZAEOZBERVKAHBDEFUHVPV
      HBEVOVGAEVGVNSTUIUJABDEFUKULVDVHBEUMUPUNUQUR $.

    $( The identity element of a group belongs to the group.  (Contributed by
       NM, 24-Oct-2006.)  (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    grpoidcl $p |- ( G e. GrpOp -> U e. X ) $=
      ( vu vx cgr wcel cv co wceq wral crio grpoidval wreu grpoideu riotacl syl
      eqeltrd ) BHIZAFJGJZBKUBLGCMZFCNZCGFABCDEOUAUCFCPUDCIGFBCDQUCFCRST $.

    $( A group's properties using the explicit identity element.  (Contributed
       by NM, 5-Feb-2010.)  (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    grpoidinv2 $p |- ( ( G e. GrpOp /\ A e. X ) -> ( ( ( U G A ) = A /\
         ( A G U ) = A ) /\ E. y e. X ( ( y G A ) = U /\ ( A G y ) = U ) ) ) $=
      ( vx vu wcel cv co wceq wa wrex wral oveq1 eqeq1d oveq2 anbi12d crab crio
      cgr grpoidval grpoideu riotacl2 syl eqeltrd wi w3a wb simpll ralimi rgenw
      wreu grpoidinv 3jca reupick2 sylan rabbidva eleqtrd eqeq2 rexbidv ralbidv
      a1i elrab sylib simprd id eqeq12d rspccva ) DUCJZCHKZDLZVMMZVMCDLZVMMZNZA
      KZVMDLZCMZVMVSDLZCMZNZAEOZNZHEPZBEJCBDLZBMZBCDLZBMZNZVSBDLZCMZBVSDLZCMZNZ
      AEOZNZVLCEJZWGVLCIKZVMDLZVMMZVMXADLZVMMZNZVTXAMZWBXAMZNZAEOZNZHEPZIEUAZJW
      TWGNVLCXCHEPZIEUAZXMVLCXNIEUBZXOHICDEFGUDVLXNIEUOZXPXOJHIDEFUEZXNIEUFUGUH
      VLXNXLIEVLXLXNUIZIEPZXLIEOZXQUJXAEJXNXLUKVLXTYAXQXTVLXSIEXKXCHEXCXEXJULUM
      UNVEHAIDEFUPXRUQXNXLIEURUSUTVAXLWGICEXACMZXKWFHEYBXFVRXJWEYBXCVOXEVQYBXBV
      NVMXACVMDQRYBXDVPVMXACVMDSRTYBXIWDAEYBXGWAXHWCXACVTVBXACWBVBTVCTVDVFVGVHW
      FWSHBEVMBMZVRWLWEWRYCVOWIVQWKYCVNWHVMBVMBCDSYCVIZVJYCVPWJVMBVMBCDQYDVJTYC
      WDWQAEYCWAWNWCWPYCVTWMCVMBVSDSRYCWBWOCVMBVSDQRTVCTVKUS $.

    $( The identity element of a group is a left identity.  (Contributed by NM,
       24-Oct-2006.)  (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    grpolid $p |- ( ( G e. GrpOp /\ A e. X ) -> ( U G A ) = A ) $=
      ( vy cgr wcel wa co wceq cv wrex grpoidinv2 simplld ) CHIADIJBACKALABCKAL
      GMZACKBLAQCKBLJGDNGABCDEFOP $.

    $( The identity element of a group is a right identity.  (Contributed by
       NM, 24-Oct-2006.)  (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    grporid $p |- ( ( G e. GrpOp /\ A e. X ) -> ( A G U ) = A ) $=
      ( vx cgr wcel wa co wceq cv wrex grpoidinv2 simplr syl ) CHIADIJBACKALZAB
      CKALZJGMZACKBLATCKBLJGDNZJSGABCDEFORSUAPQ $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y G $.  $d y X $.
    grprcan.1 $e |- X = ran G $.
    $( Right cancellation law for groups.  (Contributed by NM, 26-Oct-2006.)
       (New usage is discouraged.) $)
    grporcan $p |- ( ( G e. GrpOp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                  ( ( A G C ) = ( B G C ) <-> A = B ) ) $=
      ( vy wcel co wceq wrex adantl oveq1 grpoass adantrr 3eqtr3d oveq2 grporid
      wa ad2antrl cgr wb cv cgi cfv wi eqid grpoidinv2 simpr ad2ant2rl ad2antll
      reximi 3anassrs adantlrl 3exp2 adantllr adantrrl ad2antrr ad2ant2r adantr
      syl imp42 exp45 rexlimdv mpd impbid1 exp43 3imp2 ) DUAHZAEHZBEHZCEHZACDIZ
      BCDIZJZABJZUBZVIVJVKVLVQVIVJSZVKVLSZSZVOVPVTCGUCZDIZDUDUEZJZGEKZVOVPUFZVI
      VLWEVJVKVIVLSWCCDICJCWCDICJSZWACDIWCJZWDSZGEKZSWEGCWCDEFWCUGZUHWJWEWGWIWD
      GEWHWDUIULLVAUJVTWDWFGEVTWAEHZWDVOVPVTWLWDVOSSZSZAWCDIZBWCDIZABWNAWBDIZBW
      BDIZWOWPVTWLVOWQWRJWDVTWLVOSSVMWADIZVNWADIZWQWRVOWSWTJVTWLVMVNWADMUKVTWLW
      SWQJZVOVRVLWLXAVKVIVJVLWLXAACWADEFNUMUNOVTWLWTWRJZVOVIVSWLXBVJVIVKVLWLXBV
      IVKVLWLXBBCWADEFNUOVBUPOPUQWMWQWOJZVTWDXCWLVOWBWCADQTLWMWRWPJZVTWDXDWLVOW
      BWCBDQTLPVRWOAJVSWMAWCDEFWKRURVTWPBJZWMVIVKXEVJVLBWCDEFWKRUSUTPVCVDVEABCD
      MVFVGVH $.
  $}

  ${
    $d y z A $.  $d y z G $.  $d y z U $.  $d y z X $.
    grpinveu.1 $e |- X = ran G $.
    grpinveu.2 $e |- U = ( GId ` G ) $.
    $( The left inverse element of a group is unique.  Lemma 2.2.1(b) of
       [Herstein] p. 55.  (Contributed by NM, 27-Oct-2006.)
       (New usage is discouraged.) $)
    grpoinveu $p |- ( ( G e. GrpOp /\ A e. X ) -> E! y e. X ( y G A ) = U ) $=
      ( vz cgr wcel wa cv co wceq wi wral wrex wreu grpoidinv2 simpl reximi syl
      adantl eqtr3 grporcan syl5ib 3exp2 com24 imp41 an32s expd ralrimdva ancld
      w3a reximdva mpd oveq1 eqeq1d reu8 sylibr ) DIJZBEJZKZALZBDMZCNZHLZBDMZCN
      ZVDVGNZOZHEPZKZAEQZVFAERVCVFAEQZVNVCCBDMBNBCDMBNKZVFBVDDMCNZKZAEQZKVOABCD
      EFGSVSVOVPVRVFAEVFVQTUAUCUBVCVFVMAEVCVDEJZKZVFVLWAVFVKHEWAVGEJZKVFVIVJVCW
      BVTVFVIKZVJOZVAVBWBVTWDVAVTWBVBWDVAVTWBVBWDWCVEVHNVAVTWBVBUNKVJVEVHCUDVDV
      GBDEFUEUFUGUHUIUJUKULUMUOUPVFVIAHEVJVEVHCVDVGBDUQURUSUT $.

    $( Two ways of saying that an element of a group is the identity element.
       (Contributed by Paul Chapman, 25-Feb-2008.)
       (New usage is discouraged.) $)
    grpoid $p |- ( ( G e. GrpOp /\ A e. X ) ->
                  ( A = U <-> ( A G A ) = A ) ) $=
      ( cgr wcel wa co wceq wb grpoidcl grporcan 3exp2 mpid pm2.43d imp grpolid
      wi eqeq2d bitr3d ) CGHZADHZIZAACJZBACJZKZABKZUFAKUCUDUHUILZUCUDUJUCUDBDHZ
      UDUJTBCDEFMUCUDUKUDUJABACDENOPQRUEUGAUFABCDEFSUAUB $.
  $}

  ${
    grprn.1 $e |- G e. GrpOp $.
    grprn.2 $e |- dom G = ( X X. X ) $.
    $( The range of a group operation.  Useful for satisfying group base set
       hypotheses of the form ` X = ran G ` .  (Contributed by NM, 5-Nov-2006.)
       (New usage is discouraged.) $)
    grporn $p |- X = ran G $=
      ( cxp wfn crn wceq wfun cdm cgr wcel wfo eqid grpofo fofun df-fn mpbir2an
      mp2b fofn wa fndmu xpid11 sylib mp2an ) ABBEZFZAAGZUHEZFZBUHHZUGAIZAJUFHA
      KLZUIUHAMZULCAUHUHNOZUIUHAPSDAUFQRUMUNUJCUOUIUHATSUGUJUAUFUIHUKUFUIAUBBUH
      UCUDUE $.
  $}

  ${
    $d x y A $.  $d g x y G $.  $d g x y X $.  $d g x U $.
    grpinvfval.1 $e |- X = ran G $.
    grpinvfval.2 $e |- U = ( GId ` G ) $.
    grpinvfval.3 $e |- N = ( inv ` G ) $.
    $( The inverse function of a group.  (Contributed by NM, 26-Oct-2006.)
       (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    grpoinvfval $p |- ( G e. GrpOp -> N = ( x e. X |->
                     ( iota_ y e. X ( y G x ) = U ) ) ) $=
      ( vg cgr wcel cgn cfv cv co wceq crio cvv cgi cmpt crn rnexg syl5eqel syl
      mptexg rneq syl6eqr oveq fveq2 eqeq12d riotaeqbidv mpteq12dv fvmptg mpdan
      df-ginv syl5eq ) DKLZEDMNZAFBOZAOZDPZCQZBFRZUAZIURVESLZUSVEQURFSLVFURFDUB
      ZSGDKUCUDAFVDSUFUEJDAJOZUBZUTVAVHPZVHTNZQZBVIRZUAVEKSMVHDQZAVIVMFVDVNVIVG
      FVHDUGGUHZVNVLVCBVIFVOVNVJVBVKCUTVAVHDUIVNVKDTNCVHDTUJHUHUKULUMABJUPUNUOU
      Q $.

    $( The inverse of a group element.  (Contributed by NM, 26-Oct-2006.)
       (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    grpoinvval $p |- ( ( G e. GrpOp /\ A e. X ) ->
                    ( N ` A ) = ( iota_ y e. X ( y G A ) = U ) ) $=
      ( vx cgr wcel cfv cv co wceq crio cmpt grpoinvfval fveq1d oveq2 riotabidv
      eqeq1d eqid riotaex fvmpt sylan9eq ) DKLZBFLBEMBJFANZJNZDOZCPZAFQZRZMUIBD
      OZCPZAFQZUHBEUNJACDEFGHISTJBUMUQFUNUJBPZULUPAFURUKUOCUJBUIDUAUCUBUNUDUPAF
      UEUFUG $.
  $}

  ${
    $d y A $.  $d y G $.  $d y X $.
    grpinvcl.1 $e |- X = ran G $.
    grpinvcl.2 $e |- N = ( inv ` G ) $.
    $( A group element's inverse is a group element.  (Contributed by NM,
       27-Oct-2006.)  (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    grpoinvcl $p |- ( ( G e. GrpOp /\ A e. X ) -> ( N ` A ) e. X ) $=
      ( vy cgr wcel wa cfv cv co cgi wceq crio eqid grpoinvval wreu grpoinveu
      riotacl syl eqeltrd ) BHIADIJZACKGLABMBNKZOZGDPZDGAUEBCDEUEQZFRUDUFGDSUGD
      IGAUEBDEUHTUFGDUAUBUC $.
  $}

  ${
    $d y A $.  $d y G $.  $d y N $.  $d y U $.  $d y X $.
    grpinv.1 $e |- X = ran G $.
    grpinv.2 $e |- U = ( GId ` G ) $.
    grpinv.3 $e |- N = ( inv ` G ) $.
    $( The properties of a group element's inverse.  (Contributed by NM,
       27-Oct-2006.)  (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    grpoinv $p |- ( ( G e. GrpOp /\ A e. X ) ->
                 ( ( ( N ` A ) G A ) = U /\ ( A G ( N ` A ) ) = U ) ) $=
      ( vy cgr wcel wa cfv co wceq cv crab crio simprd eqeq1d wreu riotacl2 syl
      grpoinvval grpoinveu eqeltrd wi wral wrex w3a simpl rgenw grpoidinv2 3jca
      wb a1i reupick2 sylan rabbidva eleqtrd oveq1 oveq2 anbi12d elrab sylib )
      CJKAEKLZADMZEKZVGACNZBOZAVGCNZBOZLZVFVGIPZACNZBOZAVNCNZBOZLZIEQZKVHVMLVFV
      GVPIEQZVTVFVGVPIERZWAIABCDEFGHUDVFVPIEUAZWBWAKIABCEFGUEZVPIEUBUCUFVFVPVSI
      EVFVSVPUGZIEUHZVSIEUIZWCUJVNEKVPVSUOVFWFWGWCWFVFWEIEVPVRUKULUPVFBACNAOABC
      NAOLWGIABCEFGUMSWDUNVPVSIEUQURUSUTVSVMIVGEVNVGOZVPVJVRVLWHVOVIBVNVGACVATW
      HVQVKBVNVGACVBTVCVDVES $.

    $( The left inverse of a group element.  (Contributed by NM, 27-Oct-2006.)
       (New usage is discouraged.) $)
    grpolinv $p |- ( ( G e. GrpOp /\ A e. X ) -> ( ( N ` A ) G A ) = U ) $=
      ( cgr wcel wa cfv co wceq grpoinv simpld ) CIJAEJKADLZACMBNAQCMBNABCDEFGH
      OP $.

    $( The right inverse of a group element.  (Contributed by NM, 27-Oct-2006.)
       (New usage is discouraged.) $)
    grporinv $p |- ( ( G e. GrpOp /\ A e. X ) -> ( A G ( N ` A ) ) = U ) $=
      ( cgr wcel wa cfv co wceq grpoinv simprd ) CIJAEJKADLZACMBNAQCMBNABCDEFGH
      OP $.

    $( The inverse of a group element expressed in terms of the identity
       element.  (Contributed by NM, 27-Oct-2006.)
       (New usage is discouraged.) $)
    grpoinvid1 $p |- ( ( G e. GrpOp /\ A e. X /\ B e. X ) ->
                    ( ( N ` A ) = B <-> ( A G B ) = U ) ) $=
      ( wcel w3a wceq co wa oveq2 adantl 3adant3 adantr eqtr3d syldan grpoinvcl
      cgr cfv grporinv grpolinv oveq1d adantrr simprl simprr 3jca grpoass 3impb
      grpolid 3adant2 grporid 3eqtr3rd impbida ) DUBJZAFJZBFJZKZAEUCZBLZABDMZCL
      ZVAVCNAVBDMZVDCVCVFVDLVAVBBADOPVAVFCLZVCURUSVGUTACDEFGHIUDQRSVAVENVBVDDMZ
      VBCDMZBVBVEVHVILVAVDCVBDOPVAVHBLVEVACBDMZVHBVAVBADMZBDMZVJVHURUSVLVJLUTUR
      USNVKCBDACDEFGHIUEUFQURUSUTVLVHLZURUSUTNZVBFJZUSUTKVMURVNNVOUSUTURUSVOUTA
      DEFGIUAZUGURUSUTUHURUSUTUIUJVBABDFGUKTULSURUTVJBLUSBCDFGHUMUNSRVAVIVBLZVE
      URUSVQUTURUSVOVQVPVBCDFGHUOTQRUPUQ $.

    $( The inverse of a group element expressed in terms of the identity
       element.  (Contributed by NM, 27-Oct-2006.)
       (New usage is discouraged.) $)
    grpoinvid2 $p |- ( ( G e. GrpOp /\ A e. X /\ B e. X ) ->
                    ( ( N ` A ) = B <-> ( B G A ) = U ) ) $=
      ( cgr wcel w3a wceq co wa oveq1 adantl 3adant3 adantr syldan cfv grpolinv
      eqtr3d grpoinvcl grpolid eqcomd simprr simprl adantrr 3jca 3impb grporinv
      grpoass oveq2d grporid 3adant2 3eqtrd 3eqtr2d impbida ) DJKZAFKZBFKZLZAEU
      AZBMZBADNZCMZVCVEOVDADNZVFCVEVHVFMVCVDBADPQVCVHCMZVEUTVAVIVBACDEFGHIUBRSU
      CVCVGOVDCVDDNZVFVDDNZBVCVDVJMVGVCVJVDUTVAVJVDMZVBUTVAVDFKZVLADEFGIUDZVDCD
      FGHUETRUFSVGVKVJMVCVFCVDDPQVCVKBMVGVCVKBAVDDNZDNZBCDNZBUTVAVBVKVPMZUTVAVB
      OZVBVAVMLVRUTVSOVBVAVMUTVAVBUGUTVAVBUHUTVAVMVBVNUIUJBAVDDFGUMTUKUTVAVPVQM
      VBUTVAOVOCBDACDEFGHIULUNRUTVBVQBMVABCDFGHUOUPUQSURUS $.
  $}

  ${
    grplcan.1 $e |- X = ran G $.
    $( Left cancellation law for groups.  (Contributed by NM, 27-Oct-2006.)
       (New usage is discouraged.) $)
    grpolcan $p |- ( ( G e. GrpOp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                  ( ( C G A ) = ( C G B ) <-> A = B ) ) $=
      ( wcel w3a wa co wceq cfv oveq2 eqid adantlr oveq1d adantrl simprr adantr
      3eqtr3d cgr cgn adantl cgi grpolinv grpoinvcl simprl 3jca grpoass anassrs
      wi syldan grpolid adantrr exp53 3imp2 impbid1 ) DUAGZAEGZBEGZCEGZHICADJZC
      BDJZKZABKZURUSUTVAVDVEUKURUSUTVAVDVEURUSIZUTVAIZIZVDICDUBLZLZVBDJZVJVCDJZ
      ABVDVKVLKVHVBVCVJDMUCVHVKAKZVDVFVAVMUTVFVAIZVJCDJZADJZDUDLZADJZVKAVNVOVQA
      DURVAVOVQKZUSCVQDVIEFVQNZVINZUEZOPURUSVAVPVKKZURUSVAIZVJEGZVAUSHWCURWDIWE
      VAUSURVAWEUSCDVIEFWAUFZQURUSVARURUSVAUGUHVJCADEFUIULUJVFVRAKVAAVQDEFVTUMS
      TQSVHVLBKZVDURVGWGUSURVGIZVOBDJZVQBDJZVLBWHVOVQBDURVAVSUTWBQPURVGWEVAUTHW
      IVLKWHWEVAUTURVAWEUTWFQURUTVARURUTVAUGUHVJCBDEFUIULURUTWJBKVABVQDEFVTUMUN
      TOSTUOUPABCDMUQ $.
  $}

  ${
    $d x y G $.  $d x y N $.  $d x y X $.
    grpasscan1.1 $e |- X = ran G $.
    grpasscan1.2 $e |- N = ( inv ` G ) $.
    $( Double inverse law for groups.  Lemma 2.2.1(c) of [Herstein] p. 55.
       (Contributed by NM, 27-Oct-2006.)  (New usage is discouraged.) $)
    grpo2inv $p |- ( ( G e. GrpOp /\ A e. X ) -> ( N ` ( N ` A ) ) = A ) $=
      ( cgr wcel wa cfv wceq cgi grpoinvcl eqid grporinv syldan grpolinv eqtr4d
      co w3a wb simpr 3jca grpolcan mpbid ) BGHZADHZIZACJZUICJZBSZUIABSZKZUJAKZ
      UHUKBLJZULUFUGUIDHZUKUOKABCDEFMZUIUOBCDEUONZFOPAUOBCDEURFQRUFUGUJDHZUGUPT
      UMUNUAUHUSUGUPUFUGUPUSUQUIBCDEFMPUFUGUBUQUCUJAUIBDEUDPUE $.

    $( Mapping of the inverse function of a group.  (Contributed by NM,
       29-Mar-2008.)  (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    grpoinvf $p |- ( G e. GrpOp -> N : X -1-1-onto-> X ) $=
      ( vx vy cgr wcel wfn crn wceq cv cfv wral eqid grpoinvcl grpo2inv fveq2
      wa wi wf1o co cgi crio cmpt riotaex fnmpti grpoinvfval fneq1d mpbiri wrex
      cab fnrnfv syl eqcomd eqeq2d rspcev syl2anc ex simpr adantr eqeltrd exp31
      rexlimdv impbid abbi2dv eqtr4d eqeqan12d anandis syl5ib ralrimivva dff1o6
      wb syl3anbrc ) AHIZBCJZBKZCLFMZBNZGMZBNZLZVSWALZUAZGCOFCOCCBUBVPVQFCWAVSA
      UCAUDNZLZGCUEZUFZCJFCWHWIWGGCUGWIPUHVPCBWIFGWFABCDWFPEUIUJUKZVPVRWAVTLZFC
      ULZGUMZCVPVQVRWMLWJFGCBUNUOVPWLGCVPWACIZWLVPWNWLVPWNTZWBCIWAWBBNZLZWLWAAB
      CDEQWOWPWAWAABCDERZUPWKWQFWBCVSWBLVTWPWAVSWBBSUQURUSUTVPWKWNFCVPVSCIZWKWN
      VPWSTZWKTWAVTCWTWKVAWTVTCIWKVSABCDEQVBVCVDVEVFVGVHVPWEFGCCWCVTBNZWPLZVPWS
      WNTTWDVTWBBSVPWSWNXBWDVNWTWOXAVSWPWAVSABCDERWRVIVJVKVLFGCCBVMVO $.

    $( The inverse of the group operation reverses the arguments.  Lemma
       2.2.1(d) of [Herstein] p. 55.  (Contributed by NM, 27-Oct-2006.)
       (New usage is discouraged.) $)
    grpoinvop $p |- ( ( G e. GrpOp /\ A e. X /\ B e. X ) ->
                   ( N ` ( A G B ) ) = ( ( N ` B ) G ( N ` A ) ) ) $=
      ( cgr wcel co cfv wceq grpoinvcl 3adant2 3adant3 syl3anc grpoass syl13anc
      grpocl grporinv w3a simp1 simp2 eqid oveq1d grpolid syldan 3eqtr3d oveq2d
      cgi simp3 3eqtrd wb grpoinvid1 mpbird ) CHIZAEIZBEIZUAZABCJZDKBDKZADKZCJZ
      LZUTVCCJZCUJKZLZUSVEABVCCJZCJZAVBCJZVFUSUPUQURVCEIZVEVILUPUQURUBZUPUQURUC
      UPUQURUKZUSUPVAEIZVBEIZVKVLUPURVNUQBCDEFGMNZUPUQVOURACDEFGMZOZVAVBCEFSPZA
      BVCCEFQRUSVHVBACUSBVACJZVBCJZVFVBCJZVHVBUSVTVFVBCUPURVTVFLUQBVFCDEFVFUDZG
      TNUEUSUPURVNVOWAVHLVLVMVPVRBVAVBCEFQRUPUQWBVBLZURUPUQVOWDVQVBVFCEFWCUFUGO
      UHUIUPUQVJVFLURAVFCDEFWCGTOULUSUPUTEIVKVDVGUMVLABCEFSVSUTVCVFCDEFWCGUNPUO
      $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d g x y G $.  $d g x y N $.  $d g x y X $.
    grpdiv.1 $e |- X = ran G $.
    grpdiv.2 $e |- N = ( inv ` G ) $.
    grpdiv.3 $e |- D = ( /g ` G ) $.
    $( Group division (or subtraction) operation.  (Contributed by NM,
       15-Feb-2008.)  (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    grpodivfval $p |- ( G e. GrpOp -> D = ( x e. X , y e. X |->
                       ( x G ( N ` y ) ) ) ) $=
      ( vg cgr wcel cgs cfv cv co cmpt2 cvv wceq cgn crn rnexg syl5eqel syl2anc
      mpt2exga rneq syl6eqr id eqidd fveq1d oveq123d mpt2eq123dv df-gdiv fvmptg
      fveq2 mpdan syl5eq ) DKLZCDMNZABFFAOZBOZENZDPZQZIURVDRLZUSVDSURFRLZVFVEUR
      FDUAZRGDKUBUCZVHABFFVCRRUEUDJDABJOZUAZVJUTVAVITNZNZVIPZQVDKRMVIDSZABVJVJV
      MFFVCVNVJVGFVIDUFGUGZVOVNUTUTVLVBVIDVNUHVNUTUIVNVAVKEVNVKDTNEVIDTUOHUGUJU
      KULABJUMUNUPUQ $.

    $( Group division (or subtraction) operation value.  (Contributed by NM,
       15-Feb-2008.)  (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    grpodivval $p |- ( ( G e. GrpOp /\ A e. X /\ B e. X ) ->
                   ( A D B ) = ( A G ( N ` B ) ) ) $=
      ( vx vy cgr wcel co cfv wceq wa cv cmpt2 grpodivfval oveqd oveq1 sylan9eq
      fveq2 oveq2d eqid ovex ovmpt2 3impb ) DLMZAFMZBFMZABCNZABEOZDNZPUJUKULQUM
      ABJKFFJRZKRZEOZDNZSZNUOUJCUTABJKCDEFGHITUAJKABFFUSUOUTAURDNUPAURDUBUQBPUR
      UNADUQBEUDUEUTUFAUNDUGUHUCUI $.

    $( Group division by an inverse.  (Contributed by NM, 15-Feb-2008.)
       (New usage is discouraged.) $)
    grpodivinv $p |- ( ( G e. GrpOp /\ A e. X /\ B e. X ) ->
                   ( A D ( N ` B ) ) = ( A G B ) ) $=
      ( cgr wcel w3a cfv co wceq grpoinvcl 3adant2 grpodivval syld3an3 grpo2inv
      oveq2d eqtrd ) DJKZAFKZBFKZLZABEMZCNZAUGEMZDNZABDNUCUDUEUGFKZUHUJOUCUEUKU
      DBDEFGHPQAUGCDEFGHIRSUFUIBADUCUEUIBOUDBDEFGHTQUAUB $.

    $( Inverse of a group division.  (Contributed by NM, 24-Feb-2008.)
       (New usage is discouraged.) $)
    grpoinvdiv $p |- ( ( G e. GrpOp /\ A e. X /\ B e. X ) ->
                   ( N ` ( A D B ) ) = ( B D A ) ) $=
      ( cgr wcel w3a co cfv grpodivval fveq2d wceq grpoinvcl 3adant2 grpoinvop
      syld3an3 grpo2inv oveq1d 3com23 eqtr4d 3eqtrd ) DJKZAFKZBFKZLZABCMZENABEN
      ZDMZENZULENZAENZDMZBACMZUJUKUMEABCDEFGHIOPUGUHUIULFKZUNUQQUGUIUSUHBDEFGHR
      SAULDEFGHTUAUJUQBUPDMZURUJUOBUPDUGUIUOBQUHBDEFGHUBSUCUGUIUHURUTQBACDEFGHI
      OUDUEUF $.
  $}

  ${
    $d x y G $.  $d x y X $.
    grpdivf.1 $e |- X = ran G $.
    grpdivf.3 $e |- D = ( /g ` G ) $.
    $( Mapping for group division.  (Contributed by NM, 10-Apr-2008.)  (Revised
       by Mario Carneiro, 15-Dec-2013.)  (New usage is discouraged.) $)
    grpodivf $p |- ( G e. GrpOp -> D : ( X X. X ) --> X ) $=
      ( vx vy cgr wcel cxp wf cv cgn cfv co cmpt2 wral eqid grpoinvcl 3adant2
      grpocl syld3an3 3expib ralrimivv fmpt2 sylib grpodivfval feq1d mpbird ) B
      HIZCCJZCAKUKCFGCCFLZGLZBMNZNZBOZPZKZUJUPCIZGCQFCQURUJUSFGCCUJULCIZUMCIZUS
      UJUTVAUOCIZUSUJVAVBUTUMBUNCDUNRZSTULUOBCDUAUBUCUDFGCCUPCUQUQRUEUFUJUKCAUQ
      FGABUNCDVCEUGUHUI $.

    $( Closure of group division (or subtraction) operation.  (Contributed by
       NM, 15-Feb-2008.)  (New usage is discouraged.) $)
    grpodivcl $p |- ( ( G e. GrpOp /\ A e. X /\ B e. X ) -> ( A D B ) e. X ) $=
      ( cgr wcel cxp wf co grpodivf fovrn syl3an1 ) DHIEEJECKAEIBEIABCLEICDEFGM
      ABEEECNO $.

    $( Double group division.  (Contributed by NM, 24-Feb-2008.)
       (New usage is discouraged.) $)
    grpodivdiv $p |- ( ( G e. GrpOp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
         ( A D ( B D C ) ) = ( A G ( C D B ) ) ) $=
      ( cgr wcel w3a wa co cgn cfv wceq simpl simpr1 grpodivcl 3adant3r1 oveq2d
      eqid grpodivval syl3anc grpoinvdiv eqtrd ) EIJZAFJZBFJZCFJZKZLZABCDMZDMZA
      UMENOZOZEMZACBDMZEMULUGUHUMFJZUNUQPUGUKQUGUHUIUJRUGUIUJUSUHBCDEFGHSTAUMDE
      UOFGUOUBZHUCUDULUPURAEUGUIUJUPURPUHBCDEUOFGUTHUETUAUF $.

    $( Associative-type law for multiplication and division.  (Contributed by
       NM, 15-Feb-2008.)  (New usage is discouraged.) $)
    grpomuldivass $p |- ( ( G e. GrpOp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
         ( ( A G B ) D C ) = ( A G ( B D C ) ) ) $=
      ( cgr wcel w3a wa co cgn cfv wceq simpr1 simpr2 eqid grpodivval grpoinvcl
      3ad2antr3 grpoass syldan grpocl 3adant3r3 simpr3 syl3anc 3adant3r1 oveq2d
      3jca simpl 3eqtr4d ) EIJZAFJZBFJZCFJZKZLZABEMZCENOZOZEMZABVBEMZEMZUTCDMZA
      BCDMZEMUNURUOUPVBFJZKVCVEPUSUOUPVHUNUOUPUQQUNUOUPUQRUNUOUQVHUPCEVAFGVASZU
      AUBUKABVBEFGUCUDUSUNUTFJZUQVFVCPUNURULUNUOUPVJUQABEFGUEUFUNUOUPUQUGUTCDEV
      AFGVIHTUHUSVGVDAEUNUPUQVGVDPUOBCDEVAFGVIHTUIUJUM $.

    ${
      grpdivid.3 $e |- U = ( GId ` G ) $.
      $( Division of a group member by itself.  (Contributed by NM,
         15-Feb-2008.)  (New usage is discouraged.) $)
      grpodivid $p |- ( ( G e. GrpOp /\ A e. X ) -> ( A D A ) = U ) $=
        ( cgr wcel wa co cgn cfv wceq eqid grpodivval 3anidm23 grporinv eqtrd )
        DIJZAEJZKAABLZAADMNZNDLZCUAUBUCUEOAABDUDEFUDPZGQRACDUDEFHUFST $.
    $}

    $( Cancellation law for group division.  ( ~ npcan analog.)  (Contributed
       by NM, 15-Feb-2008.)  (New usage is discouraged.) $)
    grponpcan $p |- ( ( G e. GrpOp /\ A e. X /\ B e. X ) ->
        ( ( A D B ) G B ) = A ) $=
      ( cgr wcel w3a co cgn cfv eqid grpodivval oveq1d wceq simp1 3adant2 eqtrd
      simp2 grpoinvcl simp3 grpoass syl13anc wa grpolinv oveq2d grporid 3adant3
      cgi ) DHIZAEIZBEIZJZABCKZBDKABDLMZMZDKZBDKZAUOUPUSBDABCDUQEFUQNZGOPUOUTAU
      RBDKZDKZAUOULUMUREIZUNUTVCQULUMUNRULUMUNUAULUNVDUMBDUQEFVAUBSULUMUNUCAURB
      DEFUDUEUOVCADUKMZDKZAULUNVCVFQUMULUNUFVBVEADBVEDUQEFVENZVAUGUHSULUMVFAQUN
      AVEDEFVGUIUJTTT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Abelian groups
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c AbelOp $.

  $( Extend class notation with the class of all Abelian group operations. $)
  cablo $a class AbelOp $.

  ${
    $d g x y $.
    $( Define the class of all Abelian group operations.  (Contributed by NM,
       2-Nov-2006.)  (New usage is discouraged.) $)
    df-ablo $a |- AbelOp
     = { g e. GrpOp | A. x e. ran g A. y e. ran g ( x g y ) = ( y g x ) } $.
  $}

  ${
    $d g x y G $.  $d g x y X $.
    isabl.1 $e |- X = ran G $.
    $( The predicate "is an Abelian (commutative) group operation."
       (Contributed by NM, 2-Nov-2006.)  (New usage is discouraged.) $)
    isablo $p |- ( G e. AbelOp <-> ( G e. GrpOp /\
             A. x e. X A. y e. X ( x G y ) = ( y G x ) ) ) $=
      ( vg cv co wceq crn wral cgr cablo rneq syl6eqr raleq raleqbi1dv syl oveq
      wb eqeq12d 2ralbidv bitrd df-ablo elrab2 ) AGZBGZFGZHZUGUFUHHZIZBUHJZKZAU
      LKZUFUGCHZUGUFCHZIZBDKADKZFCLMUHCIZUNUKBDKZADKZURUSULDIUNVATUSULCJDUHCNEO
      UMUTAULDUKBULDPQRUSUKUQABDDUSUIUOUJUPUFUGUHCSUGUFUHCSUAUBUCABFUDUE $.
  $}

  ${
    $d x y G $.
    $( An Abelian group operation is a group operation.  (Contributed by NM,
       2-Nov-2006.)  (New usage is discouraged.) $)
    ablogrpo $p |- ( G e. AbelOp -> G e. GrpOp ) $=
      ( vx vy cablo wcel cgr cv co wceq crn wral eqid isablo simplbi ) ADEAFEBG
      ZCGZAHPOAHICAJZKBQKBCAQQLMN $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y G $.  $d x y X $.
    ablcom.1 $e |- X = ran G $.
    $( An Abelian group operation is commutative.  (Contributed by NM,
       2-Nov-2006.)  (New usage is discouraged.) $)
    ablocom $p |- ( ( G e. AbelOp /\ A e. X /\ B e. X ) ->
                 ( A G B ) = ( B G A ) ) $=
      ( vx vy cablo wcel co wceq cv wral cgr isablo simprbi oveq1 oveq2 eqeq12d
      wa rspc2v syl5com 3impib ) CHIZADIZBDIZABCJZBACJZKZUDFLZGLZCJZUKUJCJZKZGD
      MFDMZUEUFTUIUDCNIUOFGCDEOPUNUIAUKCJZUKACJZKFGABDDUJAKULUPUMUQUJAUKCQUJAUK
      CRSUKBKUPUGUQUHUKBACRUKBACQSUAUBUC $.

    $( Commutative/associative law for Abelian groups.  (Contributed by NM,
       26-Apr-2007.)  (New usage is discouraged.) $)
    ablo32 $p |- ( ( G e. AbelOp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                 ( ( A G B ) G C ) = ( ( A G C ) G B ) ) $=
      ( cablo wcel w3a wa co wceq ablocom 3adant3r1 oveq2d cgr ablogrpo grpoass
      sylan 3ancomb sylan2b 3eqtr4d ) DGHZAEHZBEHZCEHZIZJZABCDKZDKZACBDKZDKZABD
      KCDKZACDKBDKZUHUIUKADUCUEUFUIUKLUDBCDEFMNOUCDPHZUGUMUJLDQZABCDEFRSUCUOUGU
      NULLZUPUGUOUDUFUEIUQUDUEUFTACBDEFRUASUB $.

    $( Commutative/associative law for Abelian groups.  (Contributed by NM,
       26-Apr-2007.)  (New usage is discouraged.) $)
    ablo4 $p |- ( ( G e. AbelOp /\ ( A e. X /\ B e. X ) /\ ( C e. X /\
   D e. X ) ) -> ( ( A G B ) G ( C G D ) ) = ( ( A G C ) G ( B G D ) ) ) $=
      ( wcel wa wceq w3a simprlr simprrl 3jca syldan grpocl 3expb grpoass sylan
      co cablo simprll ablo32 oveq1d ablogrpo adantrr simprrr adantrlr adantrrr
      cgr 3eqtr3d 3impb ) EUAHZAFHZBFHZIZCFHZDFHZIZABETZCDETETZACETZBDETETZJUMU
      PUSIZIZUTCETZDETZVBBETZDETZVAVCVEVFVHDEUMVDUNUOUQKVFVHJVEUNUOUQUMUNUOUSUB
      UMUNUOUSLUMUPUQURMNABCEFGUCOUDUMEUJHZVDVGVAJZEUEZVJVDUTFHZUQURKVKVJVDIZVM
      UQURVJUPVMUSVJUNUOVMABEFGPQUFVJUPUQURMVJUPUQURUGZNUTCDEFGROSUMVJVDVIVCJZV
      LVJVDVBFHZUOURKVPVNVQUOURVJUPUQVQURVJUNUQVQUOVJUNUQVQACEFGPQUHUIVJUNUOUSL
      VONVBBDEFGROSUKUL $.
  $}

  ${
    $d x y G $.  $d x y X $.
    isabli.1 $e |- G e. GrpOp $.
    isabli.2 $e |- dom G = ( X X. X ) $.
    isabli.3 $e |- ( ( x e. X /\ y e. X ) -> ( x G y ) = ( y G x ) ) $.
    $( Properties that determine an Abelian group operation.  (Contributed by
       NM, 5-Nov-2006.)  (New usage is discouraged.) $)
    isabloi $p |- G e. AbelOp $=
      ( cablo wcel cgr cv co wceq wral rgen2a grporn isablo mpbir2an ) CHICJIAK
      ZBKZCLTSCLMZBDNADNEUAABDGOABCDCDEFPQR $.
  $}

  ${
    abldiv.1 $e |- X = ran G $.
    abldiv.3 $e |- D = ( /g ` G ) $.
    $( Law for group multiplication and division.  (Contributed by NM,
       15-Feb-2008.)  (New usage is discouraged.) $)
    ablomuldiv $p |- ( ( G e. AbelOp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
     ( ( A G B ) D C ) = ( ( A D C ) G B ) ) $=
      ( cablo wcel w3a wa co wceq ablocom 3adant3r3 oveq1d 3ancoma cgr ablogrpo
      grpomuldivass sylan sylan2b simpr2 grpodivcl syl3an1 3adant3r2 jca syldan
      3expb 3eqtrd ) EIJZAFJZBFJZCFJZKZLZABEMZCDMBAEMZCDMZBACDMZEMZVABEMZUQURUS
      CDULUMUNURUSNUOABEFGOPQUPULUNUMUOKZUTVBNZUMUNUORULESJZVDVEETZBACDEFGHUAUB
      UCULUPUNVAFJZLVBVCNZUQUNVHULUMUNUOUDULUMUOVHUNULVFUMUOVHVGACDEFGHUEUFUGUH
      ULUNVHVIBVAEFGOUJUIUK $.

    $( Law for double group division.  (Contributed by NM, 29-Feb-2008.)
       (New usage is discouraged.) $)
    ablodivdiv $p |- ( ( G e. AbelOp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
    ( A D ( B D C ) ) = ( ( A D B ) G C ) ) $=
      ( cablo wcel w3a wa co cgr wceq ablogrpo grpodivdiv 3ancomb grpomuldivass
      sylan ablomuldiv eqtr3d sylan2b eqtrd ) EIJZAFJZBFJZCFJZKZLABCDMDMZACBDME
      MZABDMCEMZUEENJZUIUJUKOEPZABCDEFGHQTUIUEUFUHUGKZUKULOUFUGUHRUEUOLACEMBDMZ
      UKULUEUMUOUPUKOUNACBDEFGHSTACBDEFGHUAUBUCUD $.

    $( Law for double group division.  (Contributed by NM, 29-Feb-2008.)
       (New usage is discouraged.) $)
    ablodivdiv4 $p |- ( ( G e. AbelOp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
    ( ( A D B ) D C ) = ( A D ( B G C ) ) ) $=
      ( cablo wcel w3a wa co cgn cfv cgr wceq ablogrpo simpl grpodivcl syl3anc
      3adant3r3 simpr3 eqid grpodivval sylan simpr1 simpr2 simp3 grpoinvcl 3jca
      syl2an ablodivdiv syldan grpodivinv syl3an1 3adant3r1 oveq2d 3eqtr2d ) EI
      JZAFJZBFJZCFJZKZLZABDMZCDMZVFCENOZOZEMZABVIDMZDMZABCEMZDMUTEPJZVDVGVJQZER
      ZVNVDLVNVFFJZVCVOVNVDSVNVAVBVQVCABDEFGHTUBVNVAVBVCUCVFCDEVHFGVHUDZHUEUAUF
      UTVDVAVBVIFJZKVLVJQVEVAVBVSUTVAVBVCUGUTVAVBVCUHUTVNVCVSVDVPVAVBVCUICEVHFG
      VRUJULUKABVIDEFGHUMUNVEVKVMADUTVBVCVKVMQZVAUTVNVBVCVTVPBCDEVHFGVRHUOUPUQU
      RUS $.

    $( Swap the second and third terms in a double division.  (Contributed by
       NM, 29-Feb-2008.)  (New usage is discouraged.) $)
    ablodiv32 $p |- ( ( G e. AbelOp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
   ( ( A D B ) D C ) = ( ( A D C ) D B ) ) $=
      ( cablo wcel w3a wa co wceq ablocom 3adant3r1 ablodivdiv4 3ancomb sylan2b
      oveq2d 3eqtr4d ) EIJZAFJZBFJZCFJZKZLZABCEMZDMACBEMZDMZABDMCDMACDMBDMZUGUH
      UIADUBUDUEUHUINUCBCEFGOPTABCDEFGHQUFUBUCUEUDKUKUJNUCUDUERACBDEFGHQSUA $.

    $( Cancellation law for group division.  ( ~ nnncan analog.)  (Contributed
       by NM, 29-Feb-2008.)  (New usage is discouraged.) $)
    ablonnncan $p |- ( ( G e. AbelOp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
      ( ( A D ( B D C ) ) D C ) = ( A D B ) ) $=
      ( cablo wcel w3a wa wceq simpr1 cgr ablogrpo grpodivcl syl3an1 3adant3r1
      co simpr3 3jca ablodivdiv4 syldan grponpcan oveq2d eqtrd ) EIJZAFJZBFJZCF
      JZKZLZABCDTZDTCDTZAUNCETZDTZABDTUHULUIUNFJZUKKUOUQMUMUIURUKUHUIUJUKNUHUJU
      KURUIUHEOJZUJUKUREPZBCDEFGHQRSUHUIUJUKUAUBAUNCDEFGHUCUDUMUPBADUHUJUKUPBMZ
      UIUHUSUJUKVAUTBCDEFGHUERSUFUG $.

    $( Cancellation law for group division.  ( ~ nncan analog.)  (Contributed
       by NM, 7-Mar-2008.)  (New usage is discouraged.) $)
    ablonncan $p |- ( ( G e. AbelOp /\ A e. X /\ B e. X ) ->
             ( A D ( A D B ) ) = B ) $=
      ( cablo wcel w3a co cgi cfv wceq wa id 3anidm12 ablodivdiv sylan2 sylan
      3impb cgr ablogrpo eqid grpodivid 3adant3 oveq1d grpolid 3adant2 3eqtrd )
      DHIZAEIZBEIZJZAABCKCKZAACKZBDKZDLMZBDKZBUKULUMUOUQNZULUMOUKULULUMJZUTULUM
      VAVAPQAABCDEFGRSUAUNUPURBDUKULUPURNZUMUKDUBIZULVBDUCZACURDEFGURUDZUETUFUG
      UKUMUSBNZULUKVCUMVFVDBURDEFVEUHTUIUJ $.

    $( Cancellation law for group division.  ( ~ nnncan1 analog.)  (Contributed
       by NM, 7-Mar-2008.)  (New usage is discouraged.) $)
    ablonnncan1 $p |- ( ( G e. AbelOp /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
         ( ( A D B ) D ( A D C ) ) = ( C D B ) ) $=
      ( cablo wcel w3a wa wceq simpr1 simpr2 cgr ablogrpo grpodivcl 3adant3r2
      co syl3an1 3jca ablodiv32 syldan ablonncan oveq1d eqtrd ) EIJZAFJZBFJZCFJ
      ZKZLZABDTACDTZDTZAUNDTZBDTZCBDTUHULUIUJUNFJZKUOUQMUMUIUJURUHUIUJUKNUHUIUJ
      UKOUHUIUKURUJUHEPJUIUKUREQACDEFGHRUASUBABUNDEFGHUCUDUMUPCBDUHUIUKUPCMUJAC
      DEFGHUESUFUG $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Complex vector spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CVecOLD $.

  $( Extend class notation with the class of all complex vector spaces. $)
  cvc $a class CVecOLD $.

  ${
    $d g s x y z $.
    $( Define the class of all complex vector spaces.  (Contributed by NM,
       3-Nov-2006.)  (New usage is discouraged.) $)
    df-vc $a |- CVecOLD = { <. g , s >. | ( g e. AbelOp /\
     s : ( CC X. ran g ) --> ran g /\ A. x e. ran g ( ( 1 s x ) = x /\
       A. y e. CC ( A. z e. ran g ( y s ( x g z ) ) = ( ( y s x ) g ( y s z ) )
         /\ A. z e. CC ( ( ( y + z ) s x ) = ( ( y s x ) g ( z s x ) ) /\
           ( ( y x. z ) s x ) = ( y s ( z s x ) ) ) ) ) ) } $.

    $( The class of all complex vector spaces is a relation.  (Contributed by
       NM, 17-Mar-2007.)  (New usage is discouraged.) $)
    vcrel $p |- Rel CVecOLD $=
      ( vg vs vx vy vz cv cablo wcel cc crn cxp wf c1 co wceq wral caddc wa w3a
      cmul cvc df-vc relopabi ) AFZGHIUDJZKUEBFZLMCFZUFNUGODFZUGEFZUDNUFNUHUGUF
      NZUHUIUFNUDNOEUEPUHUIQNUGUFNUJUIUGUFNZUDNOUHUITNUGUFNUHUKUFNOREIPRDIPRCUE
      PSABUACDEABUBUC $.
  $}

  ${
    $d g s x y z G $.  $d g s x y z S $.  $d g s W $.  $d g s x y z X $.
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    vciOLD.1 $e |- G = ( 1st ` W ) $.
    vciOLD.2 $e |- S = ( 2nd ` W ) $.
    vciOLD.3 $e |- X = ran G $.
    $( Obsolete version of ~ cvsi as of 21-Sep-2021.  The properties of a
       complex vector space, which is an Abelian group (i.e. the vectors, with
       the operation of vector addition) accompanied by a scalar multiplication
       operation on the field of complex numbers.  The variable ` W ` was
       chosen because ` _V ` is already used for the universal class.
       (Contributed by NM, 3-Nov-2006.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    vciOLD $p |- ( W e. CVecOLD ->
              ( G e. AbelOp /\
         S : ( CC X. X ) --> X /\ A. x e. X ( ( 1 S x ) = x /\
       A. y e. CC ( A. z e. X ( y S ( x G z ) ) = ( ( y S x ) G ( y S z ) )
         /\ A. z e. CC ( ( ( y + z ) S x ) = ( ( y S x ) G ( z S x ) ) /\
           ( ( y x. z ) S x ) = ( y S ( z S x ) ) ) ) ) ) ) $=
      ( vg vs cc cv co wceq wral wa oveq ralbidv cablo wcel cxp wf c1 caddc w3a
      cmul crn copab cvc c1st cfv wb eqeq2i eleq1 rneq syl6eqr xpeq2 feq2d feq3
      bitrd syl oveq2d eqeq12d raleqbidv eqeq2d anbi1d anbi12d anbi2d 3anbi123d
      sylbir c2nd feq1 eqeq1d oveq12d eqtrd 3anbi23d elopabi df-vc eleq2s ) EUA
      UBZMGUCZGDUDZUEANZDOZWEPZBNZWECNZEOZDOZWHWEDOZWHWIDOZEOZPZCGQZWHWIUFOZWED
      OZWLWIWEDOZEOZPZWHWIUHOZWEDOZWHWSDOZPZRZCMQZRZBMQZRZAGQZUGZFKNZUAUBZMXMUI
      ZUCZXOLNZUDZUEWEXQOZWEPZWHWEWIXMOZXQOZWHWEXQOZWHWIXQOZXMOZPZCXOQZWQWEXQOZ
      YCWIWEXQOZXMOZPZXBWEXQOZWHYIXQOZPZRZCMQZRZBMQZRZAXOQZUGZKLUJUKUUAWBWCGXQU
      DZXTWHWJXQOZYCYDEOZPZCGQZYHYCYIEOZPZYNRZCMQZRZBMQZRZAGQZUGZXLKLFXMFULUMZP
      XMEPZUUAUUOUNEUUPXMHUOUUQXNWBXRUUBYTUUNXMEUAUPUUQXOGPZXRUUBUNUUQXOEUIGXME
      UQJURZUURXRWCXOXQUDUUBUURXPWCXOXQXOGMUSUTXOGWCXQVAVBVCUUQYSUUMAXOGUUSUUQY
      RUULXTUUQYQUUKBMUUQYGUUFYPUUJUUQYFUUECXOGUUSUUQYBUUCYEUUDUUQYAWJWHXQWEWIX
      MESVDYCYDXMESVEVFUUQYOUUICMUUQYKUUHYNUUQYJUUGYHYCYIXMESVGVHTVITVJVFVKVLXQ
      FVMUMZPXQDPZUUOXLUNDUUTXQIUOUVAUUBWDUUNXKWBWCGXQDVNUVAUUMXJAGUVAXTWGUULXI
      UVAXSWFWEUEWEXQDSVOUVAUUKXHBMUVAUUFWPUUJXGUVAUUEWOCGUVAUUCWKUUDWNWHWJXQDS
      UVAYCWLYDWMEWHWEXQDSZWHWIXQDSVPVETUVAUUIXFCMUVAUUHXAYNXEUVAYHWRUUGWTWQWEX
      QDSUVAYCWLYIWSEUVBWIWEXQDSZVPVEUVAYLXCYMXDXBWEXQDSUVAYMWHWSXQOXDUVAYIWSWH
      XQUVCVDWHWSXQDSVQVEVITVITVITVRVLVSABCKLVTWA $.

    $( Functionality of th scalar product of a complex vector space.
       (Contributed by NM, 3-Nov-2006.)  (New usage is discouraged.) $)
    vcsm $p |- ( W e. CVecOLD -> S : ( CC X. X ) --> X ) $=
      ( vx vy vz cvc wcel cablo cc cxp cv co wceq wral wa wf cmul vciOLD simp2d
      c1 caddc ) CKLBMLNDODAUAUEHPZAQUGRIPZUGJPZBQAQUHUGAQZUHUIAQBQRJDSUHUIUFQU
      GAQUJUIUGAQZBQRUHUIUBQUGAQUHUKAQRTJNSTINSTHDSHIJABCDEFGUCUD $.

    $( Closure of the scalar product of a complex vector space.  (Contributed
       by NM, 3-Nov-2006.)  (New usage is discouraged.) $)
    vccl $p |- ( ( W e. CVecOLD /\ A e. CC /\ B e. X ) -> ( A S B ) e. X ) $=
      ( cvc wcel cc cxp wf co vcsm fovrn syl3an1 ) EJKLFMFCNALKBFKABCOFKCDEFGHI
      PABFLFCQR $.

    $( Identity element for the scalar product of a complex vector space.
       (Contributed by NM, 3-Nov-2006.)  Obsolete as of 21-Sep-2021.  Use
       ~ clmvs1 together with ~ cvsclm instead.  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    vcidOLD $p |- ( ( W e. CVecOLD /\ A e. X ) -> ( 1 S A ) = A ) $=
      ( vx vy vz cvc wcel c1 cv co wceq wral cc wa cablo cxp wf cmul w3a vciOLD
      caddc simpl ralimi 3ad2ant3 syl oveq2 id eqeq12d rspccva sylan ) DLMZNIOZ
      BPZURQZIERZAEMNABPZAQZUQCUAMZSEUBEBUCZUTJOZURKOZCPBPVFURBPZVFVGBPCPQKERVF
      VGUGPURBPVHVGURBPZCPQVFVGUDPURBPVFVIBPQTKSRTJSRZTZIERZUEVAIJKBCDEFGHUFVLV
      DVAVEVKUTIEUTVJUHUIUJUKUTVCIAEURAQZUSVBURAURANBULVMUMUNUOUP $.

    $( Distributive law for the scalar product of a complex vector space.
       (Contributed by NM, 3-Nov-2006.)  (New usage is discouraged.) $)
    vcdi $p |- ( ( W e. CVecOLD /\ ( A e. CC /\ B e. X /\ C e. X ) ) ->
       ( A S ( B G C ) ) = ( ( A S B ) G ( A S C ) ) ) $=
      ( vy vx vz cc wcel w3a co wceq wral oveq1 cvc wi cv cablo cxp wf c1 caddc
      cmul vciOLD simpl ralimi adantl 3ad2ant3 syl oveq2d oveq2 eqeq12d oveq12d
      wa oveq1d rspc3v syl5 3com12 impcom ) ANOZBGOZCGOZPFUAOZABCEQZDQZABDQZACD
      QZEQZRZVGVFVHVIVOUBVIKUCZLUCZMUCZEQZDQZVPVQDQZVPVRDQZEQZRZMGSZKNSZLGSZVGV
      FVHPVOVIEUDOZNGUEGDUFZUGVQDQVQRZWEVPVRUHQVQDQWAVRVQDQZEQRVPVRUIQVQDQVPWKD
      QRUTMNSZUTZKNSZUTZLGSZPWGLKMDEFGHIJUJWPWHWGWIWOWFLGWNWFWJWMWEKNWEWLUKULUM
      ULUNUOWDVOVPBVREQZDQZVPBDQZWBEQZRAWQDQZVLAVRDQZEQZRLKMBACGNGVQBRZVTWRWCWT
      XDVSWQVPDVQBVRETUPXDWAWSWBEVQBVPDUQVAURVPARZWRXAWTXCVPAWQDTXEWSVLWBXBEVPA
      BDTVPAVRDTUSURVRCRZXAVKXCVNXFWQVJADVRCBEUQUPXFXBVMVLEVRCADUQUPURVBVCVDVE
      $.

    $( Distributive law for the scalar product of a complex vector space.
       (Contributed by NM, 3-Nov-2006.)  (New usage is discouraged.) $)
    vcdir $p |- ( ( W e. CVecOLD /\ ( A e. CC /\ B e. CC /\ C e. X ) ) ->
      ( ( A + B ) S C ) = ( ( A S C ) G ( B S C ) ) ) $=
      ( vy vz vx cc wcel caddc co wceq wral oveq2 w3a cvc wi cv cablo cxp wf c1
      cmul vciOLD simpl ralimi adantl 3ad2ant3 syl oveq12d eqeq12d oveq1 oveq1d
      wa oveq2d rspc3v syl5 3coml impcom ) ANOZBNOZCGOZUAFUBOZABPQZCDQZACDQZBCD
      QZEQZRZVHVFVGVIVOUCVIKUDZLUDZPQZMUDZDQZVPVSDQZVQVSDQZEQZRZLNSZKNSZMGSZVHV
      FVGUAVOVIEUEOZNGUFGDUGZUHVSDQVSRZVPVSVQEQDQWAVPVQDQEQRLGSZWDVPVQUIQVSDQVP
      WBDQRZUTZLNSZUTZKNSZUTZMGSZUAWGMKLDEFGHIJUJWRWHWGWIWQWFMGWPWFWJWOWEKNWNWE
      WKWMWDLNWDWLUKULUMULUMULUNUOWDVOVRCDQZVPCDQZVQCDQZEQZRAVQPQZCDQZVLXAEQZRM
      KLCABGNNVSCRZVTWSWCXBVSCVRDTXFWAWTWBXAEVSCVPDTVSCVQDTUPUQVPARZWSXDXBXEXGV
      RXCCDVPAVQPURUSXGWTVLXAEVPACDURUSUQVQBRZXDVKXEVNXHXCVJCDVQBAPTUSXHXAVMVLE
      VQBCDURVAUQVBVCVDVE $.

    $( Associative law for the scalar product of a complex vector space.
       (Contributed by NM, 3-Nov-2006.)  (New usage is discouraged.) $)
    vcass $p |- ( ( W e. CVecOLD /\ ( A e. CC /\ B e. CC /\ C e. X ) ) ->
      ( ( A x. B ) S C ) = ( A S ( B S C ) ) ) $=
      ( vy vz vx cc wcel w3a cmul co wceq wral cvc wi cv cablo cxp wf c1 vciOLD
      caddc simpr ralimi adantl 3ad2ant3 syl oveq2 oveq2d eqeq12d oveq1d rspc3v
      wa oveq1 syl5 3coml impcom ) ANOZBNOZCGOZPFUAOZABQRZCDRZABCDRZDRZSZVGVEVF
      VHVMUBVHKUCZLUCZQRZMUCZDRZVNVOVQDRZDRZSZLNTZKNTZMGTZVGVEVFPVMVHEUDOZNGUEG
      DUFZUGVQDRVQSZVNVQVOERDRVNVQDRZVNVODRERSLGTZVNVOUIRVQDRWHVSERSZWAUTZLNTZU
      TZKNTZUTZMGTZPWDMKLDEFGHIJUHWPWEWDWFWOWCMGWNWCWGWMWBKNWLWBWIWKWALNWJWAUJU
      KULUKULUKUMUNWAVMVPCDRZVNVOCDRZDRZSAVOQRZCDRZAWRDRZSMKLCABGNNVQCSZVRWQVTW
      SVQCVPDUOXCVSWRVNDVQCVODUOUPUQVNASZWQXAWSXBXDVPWTCDVNAVOQVAURVNAWRDVAUQVO
      BSZXAVJXBVLXEWTVICDVOBAQUOURXEWRVKADVOBCDVAUPUQUSVBVCVD $.

    $( A vector plus itself is two times the vector.  (Contributed by NM,
       1-Feb-2007.)  Obsolete as of 21-Sep-2021.  Use ~ clmvs2 together with
       ~ cvsclm instead.  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    vc2OLD $p |- ( ( W e. CVecOLD /\ A e. X ) -> ( A G A ) = ( 2 S A ) ) $=
      ( cvc wcel wa c1 co c2 vcidOLD oveq12d caddc df-2 oveq1i ax-1cn cc mpanr1
      wceq vcdir mp3anr1 syl5req eqtr3d ) DIJZAEJZKZLABMZUKCMZAACMNABMZUJUKAUKA
      CABCDEFGHOZUNPUJUMLLQMZABMZULNUOABRSUHLUAJZUIUPULUCZTUHUQUQUIURTLLABCDEFG
      HUDUEUBUFUG $.
  $}

  ${
    $d x y z G $.  $d x y z W $.
    vcabl.1 $e |- G = ( 1st ` W ) $.
    $( Vector addition is an Abelian group operation.  (Contributed by NM,
       3-Nov-2006.)  (New usage is discouraged.) $)
    vcablo $p |- ( W e. CVecOLD -> G e. AbelOp ) $=
      ( vx vy vz cvc wcel cablo cc crn cxp c2nd cfv cv co wceq wral wa eqid wf
      c1 caddc cmul vciOLD simp1d ) BGHAIHJAKZLUGBMNZUAUBDOZUHPUIQEOZUIFOZAPUHP
      UJUIUHPZUJUKUHPAPQFUGRUJUKUCPUIUHPULUKUIUHPZAPQUJUKUDPUIUHPUJUMUHPQSFJRSE
      JRSDUGRDEFUHABUGCUHTUGTUEUF $.

    $( Vector addition is a group operation.  (Contributed by NM, 4-Nov-2006.)
       (New usage is discouraged.) $)
    vcgrp $p |- ( W e. CVecOLD -> G e. GrpOp ) $=
      ( cvc wcel cablo cgr vcablo ablogrpo syl ) BDEAFEAGEABCHAIJ $.
  $}

  ${
    vclcan.1 $e |- G = ( 1st ` W ) $.
    vclcan.2 $e |- X = ran G $.
    $( Left cancellation law for vector addition.  (Contributed by NM,
       4-Nov-2006.)  (New usage is discouraged.) $)
    vclcan $p |- ( ( W e. CVecOLD /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                  ( ( C G A ) = ( C G B ) <-> A = B ) ) $=
      ( cvc wcel cgr w3a co wceq wb vcgrp grpolcan sylan ) EIJDKJAFJBFJCFJLCADM
      CBDMNABNODEGPABCDFHQR $.
  $}

  ${
    vczcl.1 $e |- G = ( 1st ` W ) $.
    vczcl.2 $e |- X = ran G $.
    vczcl.3 $e |- Z = ( GId ` G ) $.
    $( The zero vector is a vector.  (Contributed by NM, 4-Nov-2006.)
       (New usage is discouraged.) $)
    vczcl $p |- ( W e. CVecOLD -> Z e. X ) $=
      ( cvc wcel cgr vcgrp grpoidcl syl ) BHIAJIDCIABEKDACFGLM $.

    $( The zero vector is a right identity element.  (Contributed by NM,
       4-Nov-2006.)  (New usage is discouraged.) $)
    vc0rid $p |- ( ( W e. CVecOLD /\ A e. X ) -> ( A G Z ) = A ) $=
      ( cvc wcel cgr co wceq vcgrp grporid sylan ) CIJBKJADJAEBLAMBCFNAEBDGHOP
      $.
  $}

  ${
    vc0.1 $e |- G = ( 1st ` W ) $.
    vc0.2 $e |- S = ( 2nd ` W ) $.
    vc0.3 $e |- X = ran G $.
    vc0.4 $e |- Z = ( GId ` G ) $.
    $( Zero times a vector is the zero vector.  Equation 1a of [Kreyszig]
       p. 51.  (Contributed by NM, 4-Nov-2006.)  (New usage is discouraged.) $)
    vc0 $p |- ( ( W e. CVecOLD /\ A e. X ) -> ( 0 S A ) = Z ) $=
      ( cvc wcel wa cc0 co wceq c1 vc0rid cc 0cn oveq1i mp3anr1 vcidOLD 3eqtr3a
      caddc 1p0e1 ax-1cn vcdir mpanr1 oveq1d 3eqtr2rd w3a wb vccl mp3an2 adantr
      vczcl simpr 3jca vclcan syldan mpbid ) DKLZAELZMZANABOZCOZAFCOZPZVFFPZVEV
      HAQABOZVFCOZVGACDEFGIJRVEQNUEOZABOZVKVLAVMQABUFUAVCNSLZVDVNVLPZTVCQSLVOVD
      VPUGQNABCDEGHIUHUBUIABCDEGHIUCZUDVEVKAVFCVQUJUKVCVDVFELZFELZVDULVIVJUMVEV
      RVSVDVCVOVDVRTNABCDEGHIUNUOVCVSVDCDEFGIJUQUPVCVDURUSVFFACDEGIUTVAVB $.

    $( Anything times the zero vector is the zero vector.  Equation 1b of
       [Kreyszig] p. 51.  (Contributed by NM, 24-Nov-2006.)
       (New usage is discouraged.) $)
    vcz $p |- ( ( W e. CVecOLD /\ A e. CC ) -> ( A S Z ) = Z ) $=
      ( cvc wcel cc wa cc0 cmul co wceq vczcl anim2i ancoms vcass mp3anr2 mul01
      0cn syldan oveq1d vc0 mpdan sylan9eqr oveq2d adantr 3eqtr3rd ) DKLZAMLZNA
      OPQZFBQZAOFBQZBQZFAFBQZUNUOUOFELZNZUQUSRZUOUNVBUNVAUOCDEFGIJSZTUAUNUOOMLV
      AVCUEAOFBCDEGHIUBUCUFUOUNUQURFUOUPOFBAUDUGUNVAURFRVDFBCDEFGHIJUHUIZUJUNUS
      UTRUOUNURFABVEUKULUM $.
  $}

  ${
    vcm.1 $e |- G = ( 1st ` W ) $.
    vcm.2 $e |- S = ( 2nd ` W ) $.
    vcm.3 $e |- X = ran G $.
    vcm.4 $e |- M = ( inv ` G ) $.
    $( Minus 1 times a vector is the underlying group's inverse element.
       Equation 2 of [Kreyszig] p. 51.  (Contributed by NM, 25-Nov-2006.)
       (New usage is discouraged.) $)
    vcm $p |- ( ( W e. CVecOLD /\ A e. X ) -> ( -u 1 S A ) = ( M ` A ) ) $=
      ( wcel c1 co cfv wceq cc neg1cn syl2anc cc0 eqtr3d cvc cneg cgi cgr vcgrp
      wa adantr vccl mp3an2 eqid grporid simpr grpoinvcl sylan grpoass syl13anc
      vcidOLD oveq2d caddc ax-1cn 1pneg1e0 addcomli oveq1i vcdir mp3anr1 mpanr1
      vc0 3eqtr3a oveq1d grporinv grpolid ) EUAKZAFKZUFZLUBZABMZCUCNZCMZVPADNZV
      NCUDKZVPFKZVRVPOVLVTVMCEGUEZUGZVLVOPKZVMWAQVOABCEFGHIUHUIZVPVQCFIVQUJZUKR
      VNVQVSCMZVRVSVNVPAVSCMZCMZWGVRVNVPACMZVSCMZWIWGVNVTWAVMVSFKZWKWIOWCWEVLVM
      ULVLVTVMWLWBACDFIJUMUNZVPAVSCFIUOUPVNWJVQVSCVNVPLABMZCMZWJVQVNWNAVPCABCEF
      GHIUQURVNVOLUSMZABMZSABMWOVQWPSABLVOSUTQVAVBVCVLLPKZVMWQWOOZUTVLWDWRVMWSQ
      VOLABCEFGHIVDVEVFABCEFVQGHIWFVGVHTVITVNWHVQVPCVLVTVMWHVQOWBAVQCDFIWFJVJUN
      URTVNVTWLWGVSOWCWMVSVQCFIWFVKRTT $.
  $}

  ${
    $d g s x y z G $.  $d g s x y z S $.  $d g s x z X $.
    isvclem.1 $e |- X = ran G $.
    $( Lemma for ~ isvcOLD .  (Contributed by NM, 31-May-2008.)
       (New usage is discouraged.) $)
    isvclem $p |- ( ( G e. _V /\ S e. _V ) -> ( <. G , S >. e. CVecOLD
     <-> ( G e. AbelOp /\ S : ( CC X. X ) --> X /\ A. x e. X ( ( 1 S x ) = x /\
       A. y e. CC ( A. z e. X ( y S ( x G z ) ) = ( ( y S x ) G ( y S z ) )
         /\ A. z e. CC ( ( ( y + z ) S x ) = ( ( y S x ) G ( z S x ) ) /\
           ( ( y x. z ) S x ) = ( y S ( z S x ) ) ) ) ) ) ) ) $=
      ( vg vs wcel cv cc wf co wceq wral wa cvv oveq ralbidv cop cvc crn cxp c1
      cablo caddc cmul w3a copab df-vc eleq2i eleq1 wb rneq syl6eqr xpeq2 feq2d
      bitrd syl oveq2d eqeq12d raleqbidv eqeq2d anbi1d anbi12d anbi2d 3anbi123d
      feq3 feq1 eqeq1d oveq12d eqtrd 3anbi23d opelopabg syl5bb ) EDUAZUBJVQHKZU
      FJZLVRUCZUDZVTIKZMZUEAKZWBNZWDOZBKZWDCKZVRNZWBNZWGWDWBNZWGWHWBNZVRNZOZCVT
      PZWGWHUGNZWDWBNZWKWHWDWBNZVRNZOZWGWHUHNZWDWBNZWGWRWBNZOZQZCLPZQZBLPZQZAVT
      PZUIZHIUJZJERJDRJQEUFJZLFUDZFDMZUEWDDNZWDOZWGWDWHENZDNZWGWDDNZWGWHDNZENZO
      ZCFPZWPWDDNZXTWHWDDNZENZOZXAWDDNZWGYFDNZOZQZCLPZQZBLPZQZAFPZUIZUBXLVQABCH
      IUKULXKXMXNFWBMZWFWGXRWBNZWKWLENZOZCFPZWQWKWRENZOZXDQZCLPZQZBLPZQZAFPZUIY
      RHIEDRRVREOZVSXMWCYSXJUUKVREUFUMUULVTFOZWCYSUNUULVTEUCFVREUOGUPZUUMWCXNVT
      WBMYSUUMWAXNVTWBVTFLUQURVTFXNWBVIUSUTUULXIUUJAVTFUUNUULXHUUIWFUULXGUUHBLU
      ULWOUUCXFUUGUULWNUUBCVTFUUNUULWJYTWMUUAUULWIXRWGWBWDWHVRESVAWKWLVRESVBVCU
      ULXEUUFCLUULWTUUEXDUULWSUUDWQWKWRVRESVDVETVFTVGVCVHWBDOZYSXOUUKYQXMXNFWBD
      VJUUOUUJYPAFUUOWFXQUUIYOUUOWEXPWDUEWDWBDSVKUUOUUHYNBLUUOUUCYDUUGYMUUOUUBY
      CCFUUOYTXSUUAYBWGXRWBDSUUOWKXTWLYAEWGWDWBDSZWGWHWBDSVLVBTUUOUUFYLCLUUOUUE
      YHXDYKUUOWQYEUUDYGWPWDWBDSUUOWKXTWRYFEUUPWHWDWBDSZVLVBUUOXBYIXCYJXAWDWBDS
      UUOXCWGWRDNYJWGWRWBDSUUOWRYFWGDUUQVAVMVBVFTVFTVFTVNVOVP $.
  $}

  $( The components of a complex vector space are sets.  (Contributed by NM,
     31-May-2008.)  (New usage is discouraged.) $)
  vcex $p |- ( <. G , S >. e. CVecOLD -> ( G e. _V /\ S e. _V ) ) $=
    ( cop cvc wcel wbr cvv wa df-br wrel cxp wss vcrel df-rel mpbi brel sylbir
    ) BACDEBADFBGEAGEHBADIBAGGDDJDGGKLMDNOPQ $.

  ${
    $d x y z G $.  $d x y z S $.  $d x z X $.
    isvcOLD.1 $e |- X = ran G $.
    $( The predicate "is a complex vector space."  (Contributed by NM,
       31-May-2008.)  Obsolete as of 4-Oct-2021.  Use ~ iscvsp instead.
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    isvcOLD $p |- ( <. G , S >. e. CVecOLD <-> ( G e. AbelOp /\
         S : ( CC X. X ) --> X /\ A. x e. X ( ( 1 S x ) = x /\
       A. y e. CC ( A. z e. X ( y S ( x G z ) ) = ( ( y S x ) G ( y S z ) )
         /\ A. z e. CC ( ( ( y + z ) S x ) = ( ( y S x ) G ( z S x ) ) /\
           ( ( y x. z ) S x ) = ( y S ( z S x ) ) ) ) ) ) ) $=
      ( cop cvc wcel cvv wa cablo cc cxp cv co wceq wral cgr wf caddc cmul vcex
      c1 w3a elex adantr cnex ablogrpo crn rnexg syl5eqel syl xpexg sylancr fex
      sylan2 ancoms jca 3adant3 isvclem pm5.21nii ) EDHIJEKJZDKJZLZEMJZNFOZFDUA
      ZUEAPZDQVJRBPZVJCPZEQDQVKVJDQZVKVLDQEQRCFSVKVLUBQVJDQVMVLVJDQZEQRVKVLUCQV
      JDQVKVNDQRLCNSLBNSLAFSZUFDEUDVGVIVFVOVGVILVDVEVGVDVIEMUGUHVIVGVEVGVIVHKJZ
      VEVGNKJFKJZVPUIVGETJZVQEUJVRFEUKKGETULUMUNNFKKUOUPVHFKDUQURUSUTVAABCDEFGV
      BVC $.
  $}

  ${
    $d x y z G $.  $d x y z S $.  $d x y z X $.
    isvciOLD.1 $e |- G e. AbelOp $.
    isvciOLD.2 $e |- dom G = ( X X. X ) $.
    isvciOLD.3 $e |- S : ( CC X. X ) --> X $.
    isvciOLD.4 $e |- ( x e. X -> ( 1 S x ) = x ) $.
    isvciOLD.5 $e |- ( ( y e. CC /\ x e. X /\ z e. X ) ->
                  ( y S ( x G z ) ) = ( ( y S x ) G ( y S z ) ) ) $.
    isvciOLD.6 $e |- ( ( y e. CC /\ z e. CC /\ x e. X ) ->
                  ( ( y + z ) S x ) = ( ( y S x ) G ( z S x ) ) ) $.
    isvciOLD.7 $e |- ( ( y e. CC /\ z e. CC /\ x e. X ) ->
                  ( ( y x. z ) S x ) = ( y S ( z S x ) ) ) $.
    isvciOLD.8 $e |- W = <. G , S >. $.
    $( Properties that determine a complex vector space.  (Contributed by NM,
       5-Nov-2006.)  Obsolete as of 4-Oct-2021.  Use ~ iscvsi instead.
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    isvciOLD $p |- W e. CVecOLD $=
      ( wcel cc co wceq wral cop cvc cablo cxp wf c1 cv caddc cmul 3com12 3expa
      wa ralrimiva w3a jca 3comr rgen cgr ablogrpo ax-mp grporn isvcOLD eqeltri
      mpbir3an ) FEDUAZUBOVEUBPEUCPZQGUDGDUEUFAUGZDRVGSZBUGZVGCUGZERDRVIVGDRZVI
      VJDRERSZCGTZVIVJUHRVGDRVKVJVGDRZERSZVIVJUIRVGDRVIVNDRSZULZCQTZULZBQTZULZA
      GTHJWAAGVGGPZVHVTKWBVSBQWBVIQPZULZVMVRWDVLCGWBWCVJGPZVLWCWBWEVLLUJUKUMWDV
      QCQWBWCVJQPZVQWCWFWBVQWCWFWBUNVOVPMNUOUPUKUMUOUMUOUQABCDEGEGVFEURPHEUSUTI
      VAVBVDVC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Examples of complex vector spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( Obsolete as of 23-Jan-2020.  Use ~ cnaddabl instead.  Complex number
       addition is an Abelian group operation.  (Contributed by NM,
       5-Nov-2006.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    cnaddabloOLD $p |- + e. AbelOp $=
      ( vx vy vz caddc cc cc0 cv cneg cnex ax-addf addass 0cn addid2 negcl wcel
      co wceq addcom mpdan negid eqtr3d isgrpoi cxp fdmi isabloi ) ABDEABCFDAGZ
      HZEIJUFBGZCGKLUFMUFNZUFEOZUFUGDPZUGUFDPZFUJUGEOUKULQUIUFUGRSUFTUAUBEEUCED
      JUDUFUHRUE $.

    $( Obsolete as of 23-Jan-2020.  Use ~ cnaddid instead.  The group identity
       element of complex number addition is zero.  (Contributed by Steve
       Rodriguez, 3-Dec-2006.)  (Revised by Mario Carneiro, 21-Dec-2013.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    cnidOLD $p |- 0 = ( GId ` + ) $=
      ( vy vx caddc cgi cfv cv co wceq cc wral crio cc0 wcel cablo cnaddabloOLD
      cgr ablogrpo ax-mp cxp ax-addf fdmi grporn eqid grpoidval addid2 rgen 0cn
      wreu wb grpoideu oveq1 eqeq1d ralbidv riota2 mp2an mpbi eqtr2i ) CDEZAFZB
      FZCGZUTHZBIJZAIKZLCPMZURVDHCNMVEOCQRZBAURCICIVFIISICTUAUBZURUCUDRLUTCGZUT
      HZBIJZVDLHZVIBIUTUEUFLIMVCAIUHZVJVKUIUGVEVLVFBACIVGUJRVCVJAILUSLHZVBVIBIV
      MVAVHUTUSLUTCUKULUMUNUOUPUQ $.

    $( Obsolete version of ~ cncvs as of 20-Sep-2021.  The set of complex
       numbers is a complex vector space.  The vector operation is ` + ` , and
       the scalar product is ` x. ` .  (Contributed by NM, 5-Nov-2006.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    cncvcOLD $p |- <. + , x. >. e. CVecOLD $=
      ( vx vy vz cmul caddc cop cc cnaddabloOLD cxp ax-addf fdmi ax-mulf mulid2
      cv adddi adddir mulass eqid isvciOLD ) ABCDEEDFZGHGGIGEJKLANZMBNZUACNZOUB
      UCUAPUBUCUAQTRS $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Normed complex vector spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c NrmCVec $.

  $c +v $.
  $c BaseSet $.
  $c .sOLD $.
  $c 0vec $.
  $c -v $.
  $c normCV $.

  $c IndMet $.

  $( Extend class notation with the class of all normed complex vector
     spaces. $)
  cnv $a class NrmCVec $.

  $( Extend class notation with vector addition in a normed complex vector
     space.  In the literature, the subscript "v" is omitted, but we need it to
     avoid ambiguity with complex number addition ` + ` ~ caddc . $)
  cpv $a class +v $.

  $( Extend class notation with the base set of a normed complex vector space.
     (Note that ` BaseSet ` is capitalized because, once it is fixed for a
     particular vector space ` U ` , it is not a function, unlike e.g.
     ` normCV ` .  This is our typical convention.)
     (New usage is discouraged.) $)
  cba $a class BaseSet $.

  $( Extend class notation with scalar multiplication in a normed complex
     vector space.  In the literature scalar multiplication is usually
     indicated by juxtaposition, but we need an explicit symbol to prevent
     ambiguity. $)
  cns $a class .sOLD $.

  $( Extend class notation with zero vector in a normed complex vector
     space. $)
  cn0v $a class 0vec $.

  $( Extend class notation with vector subtraction in a normed complex vector
     space. $)
  cnsb $a class -v $.

  $( Extend class notation with the norm function in a normed complex vector
     space.  In the literature, the norm of ` A ` is usually written "|| ` A `
     ||", but we use function notation to take advantage of our existing
     theorems about functions. $)
  cnmcv $a class normCV $.

  $( Extend class notation with the class of the induced metrics on normed
     complex vector spaces. $)
  cims $a class IndMet $.

  ${
    $d g s n u w x y $.  $d y N $.
    $( Define the class of all normed complex vector spaces.  (Contributed by
       NM, 11-Nov-2006.)  (New usage is discouraged.) $)
    df-nv $a |- NrmCVec = { <. <. g , s >. , n >. |
      ( <. g , s >. e. CVecOLD /\ n : ran g --> RR /\ A. x e. ran g
        ( ( ( n ` x ) = 0 -> x = ( GId ` g ) ) /\
          A. y e. CC ( n ` ( y s x ) ) = ( ( abs ` y ) x. ( n ` x ) ) /\
          A. y e. ran g ( n ` ( x g y ) ) <_ ( ( n ` x ) + ( n ` y ) ) ) ) } $.

    $( Structure of the class of all normed complex vectors spaces.
       (Contributed by NM, 28-Nov-2006.)  (Revised by Mario Carneiro,
       1-May-2015.)  (New usage is discouraged.) $)
    nvss $p |- NrmCVec C_ ( CVecOLD X. _V ) $=
      ( vw vg vs vn vx vy cv cop wceq cvc wcel cfv co wral w3a wa wex copab cvv
      cnv crn cr wf cc0 cgi wi cabs cmul cc caddc cle wbr cxp biimpar 3ad2antr1
      eleq1 exlimivv jctir ssopab2i coprab df-nv dfoprab2 eqtri df-xp 3sstr4i
      vex ) AGZBGZCGZHZIZVJJKZVHUAZUBDGZUCZEGZVNLZUDIVPVHUELIUFFGZVPVIMVNLVRUGL
      VQUHMIFUINVPVRVHMVNLVQVRVNLUJMUKULFVMNOEVMNZOZPZCQBQZADRZVGJKZVNSKZPZADRT
      JSUMWBWFADWBWDWEWAWDBCVKVOVLWDVSVKWDVLVGVJJUPUNUOUQDVFURUSTVTBCDUTWCEFBDC
      VAVTBCDAVBVCADJSVDVE $.

    $( A normed complex vector space is a vector space.  (Contributed by NM,
       5-Jun-2008.)  (Revised by Mario Carneiro, 1-May-2015.)
       (New usage is discouraged.) $)
    nvvcop $p |- ( <. W , N >. e. NrmCVec -> W e. CVecOLD ) $=
      ( cop cnv wcel cvc cvv cxp nvss sseli opelxp1 syl ) BACZDEMFGHZEBFEDNMIJB
      AFGKL $.

    $( Define vector addition on a normed complex vector space.  (Contributed
       by NM, 23-Apr-2007.)  (New usage is discouraged.) $)
    df-va $a |- +v = ( 1st o. 1st ) $.

    $( Define the base set of a normed complex vector space.  (Contributed by
       NM, 23-Apr-2007.)  (New usage is discouraged.) $)
    df-ba $a |- BaseSet = ( x e. _V |-> ran ( +v ` x ) ) $.

    $( Define scalar multiplication on a normed complex vector space.
       (Contributed by NM, 24-Apr-2007.)  (New usage is discouraged.) $)
    df-sm $a |- .sOLD = ( 2nd o. 1st ) $.

    $( Define the zero vector in a normed complex vector space.  (Contributed
       by NM, 24-Apr-2007.)  (New usage is discouraged.) $)
    df-0v $a |- 0vec = ( GId o. +v ) $.

    $( Define vector subtraction on a normed complex vector space.
       (Contributed by NM, 15-Feb-2008.)  (New usage is discouraged.) $)
    df-vs $a |- -v = ( /g o. +v ) $.

    $( Define the norm function in a normed complex vector space.  (Contributed
       by NM, 25-Apr-2007.)  (New usage is discouraged.) $)
    df-nmcv $a |- normCV = 2nd $.

    $( Define the induced metric on a normed complex vector space.
       (Contributed by NM, 11-Sep-2007.)  (New usage is discouraged.) $)
    df-ims $a |- IndMet = ( u e. NrmCVec |->
                            ( ( normCV ` u ) o. ( -v ` u ) ) ) $.
  $}

  $( The class of all normed complex vectors spaces is a relation.
     (Contributed by NM, 14-Nov-2006.)  (New usage is discouraged.) $)
  nvrel $p |- Rel NrmCVec $=
    ( cnv cvc cvv cxp wss wrel nvss relxp relss mp2 ) ABCDZEKFAFGBCHAKIJ $.

  ${
    vafval.2 $e |- G = ( +v ` U ) $.
    $( Value of the function for the vector addition (group) operation on a
       normed complex vector space.  (Contributed by NM, 23-Apr-2007.)
       (New usage is discouraged.) $)
    vafval $p |- G = ( 1st ` ( 1st ` U ) ) $=
      ( cpv cfv c1st cvv wcel wceq df-va fveq1i wf wfo fo1st fof ax-mp fvco3 c0
      ccom fvprc mpan syl5eq wn fveq2d 1st0 syl6req eqtrd pm2.61i eqtri ) BADEZ
      AFEZFEZCAGHZUJULIUMUJAFFSZEZULADUNJKGGFLZUMUOULIGGFMUPNGGFOPGGAFFQUAUBUMU
      CZUJRULADTUQULRFERUQUKRFAFTUDUEUFUGUHUI $.
  $}

  ${
    $d u U $.
    bafval.1 $e |- X = ( BaseSet ` U ) $.
    bafval.2 $e |- G = ( +v ` U ) $.
    $( Value of the function for the base set of a normed complex vector space.
       (Contributed by NM, 23-Apr-2007.)  (Revised by Mario Carneiro,
       16-Nov-2013.)  (New usage is discouraged.) $)
    bafval $p |- X = ran G $=
      ( vu cba cfv cpv crn cvv wcel wceq cv fveq2 rneqd df-ba fvex c0 fvprc rn0
      rnex fvmpt wn eqcomi 3eqtr4a pm2.61i rneqi 3eqtr4i ) AGHZAIHZJZCBJAKLZUJU
      LMFAFNZIHZJULKGUNAMUOUKUNAIOPFQUKAIRUBUCUMUDZSSJZUJULUQSUAUEAGTUPUKSAITPU
      FUGDBUKEUHUI $.
  $}

  ${
    smfval.4 $e |- S = ( .sOLD ` U ) $.
    $( Value of the function for the scalar multiplication operation on a
       normed complex vector space.  (Contributed by NM, 24-Apr-2007.)
       (New usage is discouraged.) $)
    smfval $p |- S = ( 2nd ` ( 1st ` U ) ) $=
      ( cns cfv c1st c2nd cvv wcel wceq ccom df-sm fveq1i wf wfo fo1st ax-mp c0
      fof fvprc fvco3 mpan syl5eq wn fveq2d 2nd0 syl6req eqtrd pm2.61i eqtri )
      ABDEZBFEZGEZCBHIZUKUMJUNUKBGFKZEZUMBDUOLMHHFNZUNUPUMJHHFOUQPHHFSQHHBGFUAU
      BUCUNUDZUKRUMBDTURUMRGERURULRGBFTUEUFUGUHUIUJ $.
  $}

  ${
    0vfval.2 $e |- G = ( +v ` U ) $.
    0vfval.5 $e |- Z = ( 0vec ` U ) $.
    $( Value of the function for the zero vector on a normed complex vector
       space.  (Contributed by NM, 24-Apr-2007.)  (Revised by Mario Carneiro,
       21-Dec-2013.)  (New usage is discouraged.) $)
    0vfval $p |- ( U e. V -> Z = ( GId ` G ) ) $=
      ( wcel cvv cgi cfv wceq elex cpv ccom wfn c1st crn wss wfo cn0v fo1st ssv
      fofn ax-mp fnco mp3an df-va fneq1i mpbir fvco2 df-0v fveq1i eqtri 3eqtr4g
      mpan fveq2i syl ) ACGAHGZDBIJZKACLURAIMNZJZAMJZIJZDUSMHOZURVAVCKVDPPNZHOZ
      PHOZVGPQZHRVFHHPSVGUAHHPUCUDZVIVHUBHHPPUEUFHMVEUGUHUIHIMAUJUODATJVAFATUTU
      KULUMBVBIEUPUNUQ $.
  $}

  ${
    nmfval.6 $e |- N = ( normCV ` U ) $.
    $( Value of the norm function in a normed complex vector space.
       (Contributed by NM, 25-Apr-2007.)  (New usage is discouraged.) $)
    nmcvfval $p |- N = ( 2nd ` U ) $=
      ( cnmcv cfv c2nd df-nmcv fveq1i eqtri ) BADEAFECADFGHI $.
  $}

  ${
    nvop2.1 $e |- W = ( 1st ` U ) $.
    nvop2.6 $e |- N = ( normCV ` U ) $.
    $( A normed complex vector space is an ordered pair of a vector space and a
       norm operation.  (Contributed by NM, 28-Nov-2006.)
       (New usage is discouraged.) $)
    nvop2 $p |- ( U e. NrmCVec -> U = <. W , N >. ) $=
      ( cnv wcel c1st cfv c2nd cop wrel wceq nvrel 1st2nd mpan nmcvfval opeq12i
      syl6eqr ) AFGZAAHIZAJIZKZCBKFLTAUCMNAFOPCUABUBDABEQRS $.
  $}

  ${
    nvvop.1 $e |- W = ( 1st ` U ) $.
    nvvop.2 $e |- G = ( +v ` U ) $.
    nvvop.4 $e |- S = ( .sOLD ` U ) $.
    $( The vector space component of a normed complex vector space is an
       ordered pair of the underlying group and a scalar product.  (Contributed
       by NM, 28-Nov-2006.)  (New usage is discouraged.) $)
    nvvop $p |- ( U e. NrmCVec -> W = <. G , S >. ) $=
      ( cnv wcel c1st cfv c2nd cop cvc wrel wceq vcrel cvv fveq2i eqtr4i eleq1d
      cnmcv cxp nvss eqid nvop2 ibi sseldi opelxp1 1st2nd sylancr vafval smfval
      syl opeq12i syl6eqr ) BHIZDDJKZDLKZMZCAMUQNODNIZDUTPQUQDBUBKZMZNRUCZIVAUQ
      HVDVCUDUQVCHIUQBVCHBVBDEVBUEUFUAUGUHDVBNRUIUNDNUJUKCURAUSCBJKZJKURBCFULDV
      EJESTAVELKUSABGUMDVELESTUOUP $.
  $}

  ${
    $d g n s x y G $.  $d g n s x y N $.  $d g n s x y S $.  $d g n s x y X $.
    $d g n s Z $.
    isnvlem.1 $e |- X = ran G $.
    isnvlem.2 $e |- Z = ( GId ` G ) $.
    $( Lemma for ~ isnv .  (Contributed by NM, 11-Nov-2006.)
       (New usage is discouraged.) $)
    isnvlem $p |- ( ( G e. _V /\ S e. _V /\ N e. _V ) ->
                 ( <. <. G , S >. , N >. e. NrmCVec <-> ( <. G , S >. e.
        CVecOLD
        /\ N : X --> RR /\ A. x e. X ( ( ( N ` x ) = 0 -> x = Z )
           /\ A. y e. CC ( N ` ( y S x ) ) = ( ( abs ` y ) x. ( N ` x ) ) /\
           A. y e. X ( N ` ( x G y ) ) <_ ( ( N ` x ) + ( N ` y ) ) ) ) ) ) $=
      ( wcel cv cvc cr cfv wceq co cc wral w3a cvv vg vs vn cop cnv crn cc0 cgi
      wf wi cabs cmul caddc cle wbr coprab df-nv eleq2i opeq1 eleq1d rneq feq2d
      fveq2 eqeq2d imbi2d oveq fveq2d breq1d raleqbidv 3anbi13d 3anbi123d opeq2
      syl6eqr eqeq1d ralbidv 3anbi2d feq1 imbi1d oveq2d eqeq12d oveq12d breq12d
      fveq1 3anbi23d eloprabg syl5bb ) DCUDZEUDZUEJWHUAKZUBKZUDZLJZWIUFZMUCKZUI
      ZAKZWNNZUGOZWPWIUHNZOZUJZBKZWPWJPZWNNZXBUKNZWQULPZOZBQRZWPXBWIPZWNNZWQXBW
      NNZUMPZUNUOZBWMRZSZAWMRZSZUAUBUCUPZJDTJCTJETJSWGLJZFMEUIZWPENZUGOZWPGOZUJ
      ZXBWPCPZENZXEYAULPZOZBQRZWPXBDPZENZYAXBENZUMPZUNUOZBFRZSZAFRZSZUEXRWHABUA
      UCUBUQURXQDWJUDZLJZFMWNUIZWRYCUJZXHYJWNNZXLUNUOZBFRZSZAFRZSXSUUAUUBYEWNNZ
      XFOZBQRZUUESZAFRZSYRUAUBUCDCETTTWIDOZWLYTWOUUAXPUUGUUMWKYSLWIDWJUSUTUUMWM
      FMWNUUMWMDUFFWIDVAHVMZVBUUMXOUUFAWMFUUNUUMXAUUBXNUUEXHUUMWTYCWRUUMWSGWPUU
      MWSDUHNGWIDUHVCIVMVDVEUUMXMUUDBWMFUUNUUMXJUUCXLUNUUMXIYJWNWPXBWIDVFVGVHVI
      VJVIVKWJCOZYTXSUUGUULUUAUUOYSWGLWJCDVLUTUUOUUFUUKAFUUOXHUUJUUBUUEUUOXGUUI
      BQUUOXDUUHXFUUOXCYEWNXBWPWJCVFVGVNVOVPVOVJWNEOZUUAXTUULYQXSFMWNEVQUUPUUKY
      PAFUUPUUBYDUUJYIUUEYOUUPWRYBYCUUPWQYAUGWPWNEWCZVNVRUUPUUIYHBQUUPUUHYFXFYG
      YEWNEWCUUPWQYAXEULUUQVSVTVOUUPUUDYNBFUUPUUCYKXLYMUNYJWNEWCUUPWQYAXKYLUMUU
      QXBWNEWCWAWBVOVKVOWDWEWF $.
  $}

  $( The components of a normed complex vector space are sets.  (Contributed by
     NM, 5-Jun-2008.)  (Revised by Mario Carneiro, 1-May-2015.)
     (New usage is discouraged.) $)
  nvex $p |- ( <. <. G , S >. , N >. e. NrmCVec
          -> ( G e. _V /\ S e. _V /\ N e. _V ) ) $=
    ( cop cnv wcel cvv wa w3a cvc nvvcop vcex syl cxp nvss sseli opelxp2 df-3an
    sylanbrc ) BADZCDZEFZBGFZAGFZHZCGFZUCUDUFIUBTJFUECTKABLMUBUAJGNZFUFEUGUAOPT
    CJGQMUCUDUFRS $.

  ${
    $d x y G $.  $d x y N $.  $d x y S $.  $d x y X $.
    isnv.1 $e |- X = ran G $.
    isnv.2 $e |- Z = ( GId ` G ) $.
    $( The predicate "is a normed complex vector space."  (Contributed by NM,
       5-Jun-2008.)  (New usage is discouraged.) $)
    isnv $p |- ( <. <. G , S >. , N >. e. NrmCVec <-> ( <. G , S >. e. CVecOLD
        /\ N : X --> RR /\ A. x e. X ( ( ( N ` x ) = 0 -> x = Z )
           /\ A. y e. CC ( N ` ( y S x ) ) = ( ( abs ` y ) x. ( N ` x ) ) /\
           A. y e. X ( N ` ( x G y ) ) <_ ( ( N ` x ) + ( N ` y ) ) ) ) ) $=
      ( cop wcel cvv w3a cr cv cfv wceq co wral wa cnv cvc wf cc0 wi cabs caddc
      cmul cc cle wbr nvex vcex adantr crn simpld rnexg syl syl5eqel fex sylan2
      ancoms df-3an sylanbrc 3adant3 isnvlem pm5.21nii ) DCJZEJUAKDLKZCLKZELKZM
      ZVHUBKZFNEUCZAOZEPZUDQVOGQUEBOZVOCREPVQUFPVPUHRQBUISVOVQDREPVPVQEPUGRUJUK
      BFSMAFSZMCDEULVMVNVLVRVMVNTVIVJTZVKVLVMVSVNCDUMZUNVNVMVKVMVNFLKVKVMFDUOZL
      HVMVIWALKVMVIVJVTUPDLUQURUSFNLEUTVAVBVIVJVKVCVDVEABCDEFGHIVFVG $.
  $}

  ${
    $d x y G $.  $d x y N $.  $d x y S $.  $d x y X $.
    isnvi.5 $e |- X = ran G $.
    isnvi.6 $e |- Z = ( GId ` G ) $.
    isnvi.7 $e |- <. G , S >. e. CVecOLD $.
    isnvi.8 $e |- N : X --> RR $.
    isnvi.9 $e |- ( ( x e. X /\ ( N ` x ) = 0 ) -> x = Z ) $.
    isnvi.10 $e |- ( ( y e. CC /\ x e. X ) ->
                    ( N ` ( y S x ) ) = ( ( abs ` y ) x. ( N ` x ) ) ) $.
    isnvi.11 $e |- ( ( x e. X /\ y e. X ) ->
                    ( N ` ( x G y ) ) <_ ( ( N ` x ) + ( N ` y ) ) ) $.
    isnvi.12 $e |- U = <. <. G , S >. , N >. $.
    $( Properties that determine a normed complex vector space.  (Contributed
       by NM, 15-Apr-2007.)  (New usage is discouraged.) $)
    isnvi $p |- U e. NrmCVec $=
      ( wcel cfv wceq co cop cnv cvc cr wf cv cc0 wi cabs cmul cc caddc cle wbr
      wral w3a ex ancoms ralrimiva 3jca rgen isnv mpbir3an eqeltri ) DECUAZFUAZ
      UBPVFUBQVEUCQGUDFUEAUFZFRZUGSZVGHSZUHZBUFZVGCTFRVLUIRVHUJTSZBUKUOZVGVLETF
      RVHVLFRULTUMUNZBGUOZUPZAGUOKLVQAGVGGQZVKVNVPVRVIVJMUQVRVMBUKVLUKQVRVMNURU
      SVRVOBGOUSUTVAABCEFGHIJVBVCVD $.
  $}

  ${
    $d x y G $.  $d x y N $.  $d x U $.  $d x y S $.  $d x y X $.
    nvi.1 $e |- X = ( BaseSet ` U ) $.
    nvi.2 $e |- G = ( +v ` U ) $.
    nvi.4 $e |- S = ( .sOLD ` U ) $.
    nvi.5 $e |- Z = ( 0vec ` U ) $.
    nvi.6 $e |- N = ( normCV ` U ) $.
    $( The properties of a normed complex vector space, which is a vector space
       accompanied by a norm.  (Contributed by NM, 11-Nov-2006.)  (Revised by
       Mario Carneiro, 21-Dec-2013.)  (New usage is discouraged.) $)
    nvi $p |- ( U e. NrmCVec -> ( <. G , S >. e. CVecOLD /\ N : X --> RR /\
       A. x e. X ( ( ( N ` x ) = 0 -> x = Z )
           /\ A. y e. CC ( N ` ( y S x ) ) = ( ( abs ` y ) x. ( N ` x ) ) /\
              A. y e. X ( N ` ( x G y ) ) <_ ( ( N ` x ) + ( N ` y ) ) ) ) ) $=
      ( cnv wcel cfv wceq co wral w3a cop cvc cr wf cv cc0 wi cabs cc caddc cle
      cmul wbr c1st eqid nvop2 nvvop opeq1d eqtrd id eqeltrrd bafval isnv sylib
      cgi 0vfval eqeq2d imbi2d 3anbi1d ralbidv 3anbi3d mpbird ) DNOZECUAZUBOZGU
      CFUDZAUEZFPZUFQZVQHQZUGZBUEZVQCRFPWBUHPVRULRQBUISZVQWBERFPVRWBFPUJRUKUMBG
      SZTZAGSZTVOVPVSVQEVEPZQZUGZWCWDTZAGSZTZVMVNFUAZNOWLVMDWMNVMDDUNPZFUAWMDFW
      NWNUOZMUPVMWNVNFCDEWNWOJKUQURUSVMUTVAABCEFGWGDEGIJVBWGUOVCVDVMWFWKVOVPVMW
      EWJAGVMWAWIWCWDVMVTWHVSVMHWGVQDENHJLVFVGVHVIVJVKVL $.
  $}

  ${
    $d x y U $.  $d x y W $.
    nvvc.1 $e |- W = ( 1st ` U ) $.
    $( The vector space component of a normed complex vector space.
       (Contributed by NM, 28-Nov-2006.)  (Revised by Mario Carneiro,
       21-Dec-2013.)  (New usage is discouraged.) $)
    nvvc $p |- ( U e. NrmCVec -> W e. CVecOLD ) $=
      ( vx vy cnv wcel cpv cfv cns cop cvc eqid nvvop cba cr cv wceq co wral wf
      cnmcv cc0 cn0v wi cabs cmul cc caddc cle wbr w3a nvi simp1d eqeltrd ) AFG
      ZBAHIZAJIZKZLURAUQBCUQMZURMZNUPUSLGAOIZPAUBIZUADQZVCIZUCRVDAUDIZRUEEQZVDU
      RSVCIVGUFIVEUGSREUHTVDVGUQSVCIVEVGVCIUISUJUKEVBTULDVBTDEURAUQVCVBVFVBMUTV
      AVFMVCMUMUNUO $.
  $}

  ${
    nvabl.1 $e |- G = ( +v ` U ) $.
    $( The vector addition operation of a normed complex vector space is an
       Abelian group.  (Contributed by NM, 15-Feb-2008.)
       (New usage is discouraged.) $)
    nvablo $p |- ( U e. NrmCVec -> G e. AbelOp ) $=
      ( cnv wcel c1st cfv cvc cablo eqid nvvc vafval vcablo syl ) ADEAFGZHEBIEA
      OOJKBOABCLMN $.

    $( The vector addition operation of a normed complex vector space is a
       group.  (Contributed by NM, 15-Feb-2008.)
       (New usage is discouraged.) $)
    nvgrp $p |- ( U e. NrmCVec -> G e. GrpOp ) $=
      ( cnv wcel cablo cgr nvablo ablogrpo syl ) ADEBFEBGEABCHBIJ $.
  $}

  ${
    nvgf.1 $e |- X = ( BaseSet ` U ) $.
    nvgf.2 $e |- G = ( +v ` U ) $.
    $( Mapping for the vector addition operation.  (Contributed by NM,
       28-Jan-2008.)  (New usage is discouraged.) $)
    nvgf $p |- ( U e. NrmCVec -> G : ( X X. X ) --> X ) $=
      ( cnv wcel cgr cxp wfo wf nvgrp bafval grpofo fof 3syl ) AFGBHGCCIZCBJQCB
      KABELBCABCDEMNQCBOP $.
  $}

  ${
    nvsf.1 $e |- X = ( BaseSet ` U ) $.
    nvsf.4 $e |- S = ( .sOLD ` U ) $.
    $( Mapping for the scalar multiplication operation.  (Contributed by NM,
       28-Jan-2008.)  (New usage is discouraged.) $)
    nvsf $p |- ( U e. NrmCVec -> S : ( CC X. X ) --> X ) $=
      ( cnv wcel c1st cfv cvc cc cxp wf eqid nvvc cpv vafval smfval bafval vcsm
      syl ) BFGBHIZJGKCLCAMBUBUBNOABPIZUBCBUCUCNZQABERBUCCDUDSTUA $.
  $}

  ${
    nvgcl.1 $e |- X = ( BaseSet ` U ) $.
    nvgcl.2 $e |- G = ( +v ` U ) $.
    $( Closure law for the vector addition (group) operation of a normed
       complex vector space.  (Contributed by NM, 23-Apr-2007.)
       (New usage is discouraged.) $)
    nvgcl $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
                    ( A G B ) e. X ) $=
      ( cnv wcel cgr co nvgrp bafval grpocl syl3an1 ) CHIDJIAEIBEIABDKEICDGLABD
      ECDEFGMNO $.

    $( The vector addition (group) operation is commutative.  (Contributed by
       NM, 4-Dec-2007.)  (New usage is discouraged.) $)
    nvcom $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
                ( A G B ) = ( B G A ) ) $=
      ( cnv wcel cablo co wceq nvablo bafval ablocom syl3an1 ) CHIDJIAEIBEIABDK
      BADKLCDGMABDECDEFGNOP $.

    $( The vector addition (group) operation is associative.  (Contributed by
       NM, 4-Dec-2007.)  (New usage is discouraged.) $)
    nvass $p |- ( ( U e. NrmCVec /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
              ( ( A G B ) G C ) = ( A G ( B G C ) ) ) $=
      ( cnv wcel cgr w3a co wceq nvgrp bafval grpoass sylan ) DIJEKJAFJBFJCFJLA
      BEMCEMABCEMEMNDEHOABCEFDEFGHPQR $.

    $( Commutative/associative law for vector addition.  (Contributed by NM,
       27-Dec-2007.)  (New usage is discouraged.) $)
    nvadd32 $p |- ( ( U e. NrmCVec /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                 ( ( A G B ) G C ) = ( ( A G C ) G B ) ) $=
      ( cnv wcel cablo w3a co wceq nvablo bafval ablo32 sylan ) DIJEKJAFJBFJCFJ
      LABEMCEMACEMBEMNDEHOABCEFDEFGHPQR $.

    $( Right cancellation law for vector addition.  (Contributed by NM,
       4-Dec-2007.)  (New usage is discouraged.) $)
    nvrcan $p |- ( ( U e. NrmCVec /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                  ( ( A G C ) = ( B G C ) <-> A = B ) ) $=
      ( cnv wcel cgr w3a co wceq wb nvgrp bafval grporcan sylan ) DIJEKJAFJBFJC
      FJLACEMBCEMNABNODEHPABCEFDEFGHQRS $.

    $( Rearrangement of 4 terms in a vector sum.  (Contributed by NM,
       8-Feb-2008.)  (New usage is discouraged.) $)
    nvadd4 $p |- ( ( U e. NrmCVec /\ ( A e. X /\ B e. X ) /\ ( C e. X /\
       D e. X ) ) -> ( ( A G B ) G ( C G D ) ) = ( ( A G C ) G ( B G D ) ) ) $=
      ( cnv wcel cablo wa co wceq nvablo bafval ablo4 syl3an1 ) EJKFLKAGKBGKMCG
      KDGKMABFNCDFNFNACFNBDFNFNOEFIPABCDFGEFGHIQRS $.
  $}

  ${
    nvscl.1 $e |- X = ( BaseSet ` U ) $.
    nvscl.4 $e |- S = ( .sOLD ` U ) $.
    $( Closure law for the scalar product operation of a normed complex vector
       space.  (Contributed by NM, 1-Feb-2007.)  (New usage is discouraged.) $)
    nvscl $p |- ( ( U e. NrmCVec /\ A e. CC /\ B e. X ) ->
                       ( A S B ) e. X ) $=
      ( cnv wcel c1st cfv cvc cc co eqid nvvc cpv vafval smfval bafval syl3an1
      vccl ) DHIDJKZLIAMIBEIABCNEIDUCUCOPABCDQKZUCEDUDUDOZRCDGSDUDEFUETUBUA $.

    $( Identity element for the scalar product of a normed complex vector
       space.  (Contributed by NM, 4-Dec-2007.)  (New usage is discouraged.) $)
    nvsid $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( 1 S A ) = A ) $=
      ( cnv wcel c1st cfv cvc c1 co wceq eqid nvvc cpv vafval smfval bafval
      vcidOLD sylan ) CGHCIJZKHADHLABMANCUCUCOPABCQJZUCDCUDUDOZRBCFSCUDDEUETUAU
      B $.

    $( Associative law for the scalar product of a normed complex vector space.
       (Contributed by NM, 17-Nov-2007.)  (New usage is discouraged.) $)
    nvsass $p |- ( ( U e. NrmCVec /\ ( A e. CC /\ B e. CC /\ C e. X ) ) ->
      ( ( A x. B ) S C ) = ( A S ( B S C ) ) ) $=
      ( cnv wcel c1st cfv cvc cc w3a cmul co wceq eqid nvvc vafval smfval vcass
      cpv bafval sylan ) EIJEKLZMJANJBNJCFJOABPQCDQABCDQDQREUGUGSTABCDEUDLZUGFE
      UHUHSZUADEHUBEUHFGUIUEUCUF $.

    $( Commutative law for the scalar product of a normed complex vector space.
       (Contributed by NM, 14-Feb-2008.)  (New usage is discouraged.) $)
    nvscom $p |- ( ( U e. NrmCVec /\ ( A e. CC /\ B e. CC /\ C e. X ) ) ->
      ( A S ( B S C ) ) = ( B S ( A S C ) ) ) $=
      ( cnv wcel cc w3a wa cmul co wceq mulcom oveq1d 3adant3 nvsass 3ancoma
      adantl sylan2b 3eqtr3d ) EIJZAKJZBKJZCFJZLZMABNOZCDOZBANOZCDOZABCDODOBACD
      ODOZUIUKUMPZUEUFUGUOUHUFUGMUJULCDABQRSUBABCDEFGHTUIUEUGUFUHLUMUNPUFUGUHUA
      BACDEFGHTUCUD $.
  $}

  ${
    nvdi.1 $e |- X = ( BaseSet ` U ) $.
    nvdi.2 $e |- G = ( +v ` U ) $.
    nvdi.4 $e |- S = ( .sOLD ` U ) $.
    $( Distributive law for the scalar product of a complex vector space.
       (Contributed by NM, 4-Dec-2007.)  (New usage is discouraged.) $)
    nvdi $p |- ( ( U e. NrmCVec /\ ( A e. CC /\ B e. X /\ C e. X ) ) ->
       ( A S ( B G C ) ) = ( ( A S B ) G ( A S C ) ) ) $=
      ( cnv wcel c1st cfv cvc cc w3a co wceq eqid nvvc vafval smfval vcdi sylan
      bafval ) EKLEMNZOLAPLBGLCGLQABCFRDRABDRACDRFRSEUGUGTUAABCDFUGGEFIUBDEJUCE
      FGHIUFUDUE $.

    $( Distributive law for the scalar product of a complex vector space.
       (Contributed by NM, 4-Dec-2007.)  (New usage is discouraged.) $)
    nvdir $p |- ( ( U e. NrmCVec /\ ( A e. CC /\ B e. CC /\ C e. X ) ) ->
      ( ( A + B ) S C ) = ( ( A S C ) G ( B S C ) ) ) $=
      ( cnv wcel c1st cfv cvc cc w3a caddc co wceq eqid nvvc vafval vcdir sylan
      smfval bafval ) EKLEMNZOLAPLBPLCGLQABRSCDSACDSBCDSFSTEUHUHUAUBABCDFUHGEFI
      UCDEJUFEFGHIUGUDUE $.

    $( A vector plus itself is two times the vector.  (Contributed by NM,
       9-Feb-2008.)  (New usage is discouraged.) $)
    nv2 $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( A G A ) = ( 2 S A ) ) $=
      ( cnv wcel c1st cfv cvc co c2 wceq eqid nvvc vafval smfval bafval vc2OLD
      sylan ) CIJCKLZMJAEJAADNOABNPCUDUDQRABDUDECDGSBCHTCDEFGUAUBUC $.
  $}

  ${
    $d g x y $.
    vsfval.2 $e |- G = ( +v ` U ) $.
    vsfval.3 $e |- M = ( -v ` U ) $.
    $( Value of the function for the vector subtraction operation on a normed
       complex vector space.  (Contributed by NM, 15-Feb-2008.)  (Revised by
       Mario Carneiro, 27-Dec-2014.)  (New usage is discouraged.) $)
    vsfval $p |- M = ( /g ` G ) $=
      ( vg vx vy cnsb cfv cpv cgs cvv wcel wceq wf c1st c0 cgr cv df-vs wfo fof
      ccom fveq1i fo1st ax-mp fco mp2an df-va feq1i mpbir fvco3 mpan syl5eq cdm
      wn 0ngrp crn cgn co cmpt2 vex rnex mpt2ex df-gdiv dmmpti mtbir ndmfv mp1i
      eleq2i fvprc fveq2d 3eqtr4rd pm2.61i fveq2i 3eqtr4i ) AIJZAKJZLJZCBLJAMNZ
      VRVTOWAVRALKUDZJZVTAIWBUAUEMMKPZWAWCVTOWDMMQQUDZPZMMQPZWGWFMMQUBWGUFMMQUC
      UGZWHMMMQQUHUIMMKWEUJUKULMMALKUMUNUOWAUQZRLJZRVTVRRLUPZNZUQWJROWIWLRSNURW
      KSRFSGHFTZUSZWNGTHTWMUTJJWMVAZVBLGHWNWNWOWMFVCVDZWPVEGHFVFVGVKVHRLVIVJWIV
      SRLAKVLVMAIVLVNVOEBVSLDVPVQ $.
  $}

  ${
    nvzcl.1 $e |- X = ( BaseSet ` U ) $.
    nvzcl.6 $e |- Z = ( 0vec ` U ) $.
    $( Closure law for the zero vector of a normed complex vector space.
       (Contributed by NM, 27-Nov-2007.)  (Revised by Mario Carneiro,
       21-Dec-2013.)  (New usage is discouraged.) $)
    nvzcl $p |- ( U e. NrmCVec -> Z e. X ) $=
      ( cnv wcel cpv cfv cgi eqid 0vfval cgr nvgrp bafval grpoidcl syl eqeltrd
      ) AFGZCAHIZJIZBATFCTKZELSTMGUABGATUBNUATBATBDUBOUAKPQR $.
  $}

  ${
    nv0id.1 $e |- X = ( BaseSet ` U ) $.
    nv0id.2 $e |- G = ( +v ` U ) $.
    nv0id.6 $e |- Z = ( 0vec ` U ) $.
    $( The zero vector is a right identity element.  (Contributed by NM,
       28-Nov-2007.)  (Revised by Mario Carneiro, 21-Dec-2013.)
       (New usage is discouraged.) $)
    nv0rid $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( A G Z ) = A ) $=
      ( cnv wcel wa co cgi cfv wceq 0vfval oveq2d adantr cgr nvgrp eqid grporid
      bafval sylan eqtrd ) BIJZADJZKAECLZACMNZCLZAUFUHUJOUGUFEUIACBCIEGHPQRUFCS
      JUGUJAOBCGTAUICDBCDFGUCUIUAUBUDUE $.

    $( The zero vector is a left identity element.  (Contributed by NM,
       28-Nov-2007.)  (Revised by Mario Carneiro, 21-Dec-2013.)
       (New usage is discouraged.) $)
    nv0lid $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( Z G A ) = A ) $=
      ( cnv wcel wa co cgi cfv wceq 0vfval oveq1d adantr cgr nvgrp eqid grpolid
      bafval sylan eqtrd ) BIJZADJZKEACLZCMNZACLZAUFUHUJOUGUFEUIACBCIEGHPQRUFCS
      JUGUJAOBCGTAUICDBCDFGUCUIUAUBUDUE $.
  $}

  ${
    nv0.1 $e |- X = ( BaseSet ` U ) $.
    nv0.4 $e |- S = ( .sOLD ` U ) $.
    nv0.6 $e |- Z = ( 0vec ` U ) $.
    $( Zero times a vector is the zero vector.  (Contributed by NM,
       27-Nov-2007.)  (Revised by Mario Carneiro, 21-Dec-2013.)
       (New usage is discouraged.) $)
    nv0 $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( 0 S A ) = Z ) $=
      ( cnv wcel wa cc0 co cpv cfv cgi c1st cvc wceq eqid nvvc vafval vc0 sylan
      smfval bafval 0vfval adantr eqtr4d ) CIJZADJZKLABMZCNOZPOZEUJCQOZRJUKULUN
      SCUOUOTUAABUMUODUNCUMUMTZUBBCGUECUMDFUPUFUNTUCUDUJEUNSUKCUMIEUPHUGUHUI $.
  $}

  ${
    nvsz.4 $e |- S = ( .sOLD ` U ) $.
    nvsz.6 $e |- Z = ( 0vec ` U ) $.
    $( Anything times the zero vector is the zero vector.  (Contributed by NM,
       28-Nov-2007.)  (Revised by Mario Carneiro, 21-Dec-2013.)
       (New usage is discouraged.) $)
    nvsz $p |- ( ( U e. NrmCVec /\ A e. CC ) -> ( A S Z ) = Z ) $=
      ( cnv wcel cc wa cpv cfv cgi co c1st cvc wceq eqid nvvc cba vafval smfval
      bafval vcz sylan 0vfval adantr oveq2d 3eqtr4d ) CGHZAIHZJZACKLZMLZBNZUNAD
      BNDUJCOLZPHUKUOUNQCUPUPRSABUMUPCTLZUNCUMUMRZUABCEUBCUMUQUQRURUCUNRUDUEULD
      UNABUJDUNQUKCUMGDURFUFUGZUHUSUI $.
  $}

  ${
    nvinv.1 $e |- X = ( BaseSet ` U ) $.
    nvinv.2 $e |- G = ( +v ` U ) $.
    nvinv.4 $e |- S = ( .sOLD ` U ) $.
    nvinv.5 $e |- M = ( inv ` G ) $.
    $( Minus 1 times a vector is the underlying group's inverse element.
       Equation 2 of [Kreyszig] p. 51.  (Contributed by NM, 15-Feb-2008.)
       (New usage is discouraged.) $)
    nvinv $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( -u 1 S A ) = ( M ` A ) ) $=
      ( cnv wcel c1st cfv cvc c1 cneg co wceq eqid nvvc vafval smfval vcm sylan
      bafval ) CKLCMNZOLAFLPQABRAENSCUGUGTUAABDEUGFCDHUBBCIUCCDFGHUFJUDUE $.
  $}

  ${
    $d x G $.  $d x N $.  $d x U $.
    nvinvfval.2 $e |- G = ( +v ` U ) $.
    nvinvfval.4 $e |- S = ( .sOLD ` U ) $.
    nvinvfval.3 $e |- N = ( S o. `' ( 2nd |` ( { -u 1 } X. _V ) ) ) $.
    $( Function for the negative of a vector on a normed complex vector space,
       in terms of the underlying addition group inverse.  (We currently do not
       have a separate notation for the negative of a vector.)  (Contributed by
       NM, 27-Mar-2008.)  (New usage is discouraged.) $)
    nvinvfval $p |- ( U e. NrmCVec -> N = ( inv ` G ) ) $=
      ( vx cnv wcel cba cfv wf wfn cc eqid neg1cn sylancl ffn syl cgn cneg nvsf
      cxp c1 curry1f wf1o nvgrp bafval grpoinvf f1ofn 3syl cv wa co wceq adantr
      cgr curry1val nvinv eqtrd eqfnfvd ) BIJZHBKLZDCUALZVCVDVDDMZDVDNVCOVDUDZV
      DAMZUEUBZOJZVFABVDVDPZFUCZQOVDVIVDADGUFRVDVDDSTVCCURJVDVDVEUGVEVDNBCEUHCV
      EVDBCVDVKEUIVEPZUJVDVDVEUKULVCHUMZVDJZUNZVNDLZVIVNAUOZVNVELVPAVGNZVJVQVRU
      PVCVSVOVCVHVSVLVGVDASTUQQOVDVIVNADGUSRVNABCVEVDVKEFVMUTVAVB $.
  $}

  ${
    nvm.1 $e |- X = ( BaseSet ` U ) $.
    nvm.2 $e |- G = ( +v ` U ) $.
    nvm.3 $e |- M = ( -v ` U ) $.
    nvm.6 $e |- N = ( /g ` G ) $.
    $( Vector subtraction in terms of group division operation.  (Contributed
       by NM, 15-Feb-2008.)  (New usage is discouraged.) $)
    nvm $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
          ( A M B ) = ( A N B ) ) $=
      ( co wceq cnv wcel w3a cgs cfv vsfval eqtr4i oveqi a1i ) ABELABFLMCNOAGOB
      GOPEFABEDQRFCDEIJSKTUAUB $.
  $}

  ${
    $d x y G $.  $d x y U $.  $d x y X $.
    nvmval.1 $e |- X = ( BaseSet ` U ) $.
    nvmval.2 $e |- G = ( +v ` U ) $.
    nvmval.4 $e |- S = ( .sOLD ` U ) $.
    nvmval.3 $e |- M = ( -v ` U ) $.
    $( Value of vector subtraction on a normed complex vector space.
       (Contributed by NM, 11-Sep-2007.)  (New usage is discouraged.) $)
    nvmval $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
                ( A M B ) = ( A G ( -u 1 S B ) ) ) $=
      ( cnv wcel w3a cgs cfv co cgn wceq eqid cneg cgr nvgrp grpodivval syl3an1
      c1 bafval nvm nvinv 3adant2 oveq2d 3eqtr4d ) DLMZAGMZBGMZNZABEOPZQZABERPZ
      PZEQZABFQAUFUABCQZEQUMEUBMUNUOURVASDEIUCABUQEUSGDEGHIUGUSTZUQTZUDUEABDEFU
      QGHIKVDUHUPVBUTAEUMUOVBUTSUNBCDEUSGHIJVCUIUJUKUL $.

    $( Value of vector subtraction on a normed complex vector space.
       (Contributed by Mario Carneiro, 19-Nov-2013.)
       (New usage is discouraged.) $)
    nvmval2 $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
                ( A M B ) = ( ( -u 1 S B ) G A ) ) $=
      ( cnv wcel w3a co c1 cneg nvmval wceq cc neg1cn nvscl 3adant2 nvcom eqtrd
      mp3an2 syld3an3 ) DLMZAGMZBGMZNABFOAPQZBCOZEOZULAEOZABCDEFGHIJKRUHUIUJULG
      MZUMUNSUHUJUOUIUHUKTMUJUOUAUKBCDGHJUBUFUCAULDEGHIUDUGUE $.

    $( Value of the function for the vector subtraction operation on a normed
       complex vector space.  (Contributed by NM, 11-Sep-2007.)  (Revised by
       Mario Carneiro, 23-Dec-2013.)  (New usage is discouraged.) $)
    nvmfval $p |- ( U e. NrmCVec -> M = ( x e. X , y e. X |->
                    ( x G ( -u 1 S y ) ) ) ) $=
      ( cnv wcel cv cgn cfv co cmpt2 c1 wceq cneg nvgrp bafval eqid grpodivfval
      cgr vsfval syl w3a nvinv 3adant2 oveq2d mpt2eq3dva eqtr4d ) DLMZFABGGANZB
      NZEOPZPZEQZRZABGGUPSUAUQCQZEQZRUOEUFMFVATDEIUBABFEURGDEGHIUCURUDZDEFIKUGU
      EUHUOABGGVCUTUOUPGMZUQGMZUIVBUSUPEUOVFVBUSTVEUQCDEURGHIJVDUJUKULUMUN $.
  $}

  ${
    $d x y U $.  $d x y X $.
    nvmf.1 $e |- X = ( BaseSet ` U ) $.
    nvmf.3 $e |- M = ( -v ` U ) $.
    $( Mapping for the vector subtraction operation.  (Contributed by NM,
       11-Sep-2007.)  (Revised by Mario Carneiro, 23-Dec-2013.)
       (New usage is discouraged.) $)
    nvmf $p |- ( U e. NrmCVec -> M : ( X X. X ) --> X ) $=
      ( vx vy cnv wcel cxp wf cv c1 cneg cns cfv co wral wa eqid cmpt2 simpl cc
      simprl neg1cn nvscl mp3an2 adantrl nvgcl syl3anc ralrimivva fmpt2 nvmfval
      cpv sylib feq1d mpbird ) AHIZCCJZCBKUSCFGCCFLZMNZGLZAOPZQZAUNPZQZUAZKZURV
      FCIZGCRFCRVHURVIFGCCURUTCIZVBCIZSZSURVJVDCIZVIURVLUBURVJVKUDURVKVMVJURVAU
      CIVKVMUEVAVBVCACDVCTZUFUGUHUTVDAVECDVETZUIUJUKFGCCVFCVGVGTULUOURUSCBVGFGV
      CAVEBCDVOVNEUMUPUQ $.

    $( Closure law for the vector subtraction operation of a normed complex
       vector space.  (Contributed by NM, 11-Sep-2007.)
       (New usage is discouraged.) $)
    nvmcl $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) -> ( A M B ) e. X ) $=
      ( cnv wcel cxp wf co nvmf fovrn syl3an1 ) CHIEEJEDKAEIBEIABDLEICDEFGMABEE
      EDNO $.

    $( Cancellation law for vector subtraction.  ( ~ nnncan1 analog.)
       (Contributed by NM, 7-Mar-2008.)  (New usage is discouraged.) $)
    nvnnncan1 $p |- ( ( U e. NrmCVec /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
         ( ( A M B ) M ( A M C ) ) = ( C M B ) ) $=
      ( cnv wcel cpv cfv cablo w3a co wceq eqid nvablo bafval vsfval sylan
      ablonnncan1 ) DIJDKLZMJAFJBFJCFJNABEOACEOEOCBEOPDUCUCQZRABCEUCFDUCFGUDSDU
      CEUDHTUBUA $.
  $}

  ${
    nvmdi.1 $e |- X = ( BaseSet ` U ) $.
    nvmdi.3 $e |- M = ( -v ` U ) $.
    nvmdi.4 $e |- S = ( .sOLD ` U ) $.
    $( Distributive law for scalar product over subtraction.  (Contributed by
       NM, 14-Feb-2008.)  (New usage is discouraged.) $)
    nvmdi $p |- ( ( U e. NrmCVec /\ ( A e. CC /\ B e. X /\ C e. X ) ) ->
       ( A S ( B M C ) ) = ( ( A S B ) M ( A S C ) ) ) $=
      ( cnv wcel cc w3a co wceq neg1cn nvscl oveq2d nvmval wa c1 cpv cfv simpr1
      cneg simpr2 mp3an2 3ad2antr3 3jca eqid nvdi syldan mp3anr2 3adantr2 eqtrd
      nvscom 3adant3r1 simpl 3adant3r3 3adant3r2 syl3anc 3eqtr4d ) EKLZAMLZBGLZ
      CGLZNZUAZABUBUFZCDOZEUCUDZOZDOZABDOZVJACDOZDOZVLOZABCFOZDOVOVPFOZVIVNVOAV
      KDOZVLOZVRVDVHVEVFVKGLZNVNWBPVIVEVFWCVDVEVFVGUEVDVEVFVGUGVDVEVGWCVFVDVJML
      ZVGWCQVJCDEGHJRUHUIUJABVKDEVLGHVLUKZJULUMVIWAVQVOVLVDVEVGWAVQPZVFVDVEWDVG
      WFQAVJCDEGHJUQUNUOSUPVIVSVMADVDVFVGVSVMPVEBCDEVLFGHWEJITURSVIVDVOGLZVPGLZ
      VTVRPVDVHUSVDVEVFWGVGABDEGHJRUTVDVEVGWHVFACDEGHJRVAVOVPDEVLFGHWEJITVBVC
      $.
  $}

  ${
    nvnegneg.1 $e |- X = ( BaseSet ` U ) $.
    nvnegneg.4 $e |- S = ( .sOLD ` U ) $.
    $( Double negative of a vector.  (Contributed by NM, 4-Dec-2007.)
       (New usage is discouraged.) $)
    nvnegneg $p |- ( ( U e. NrmCVec /\ A e. X ) ->
                  ( -u 1 S ( -u 1 S A ) ) = A ) $=
      ( cnv wcel wa c1 cneg co cpv cfv cgn wceq cc neg1cn eqid nvinv mp3an2 cgr
      nvscl syldan fveq2d nvgrp bafval grpo2inv sylan 3eqtrd ) CGHZADHZIZJKZUNA
      BLZBLZUOCMNZONZNZAURNZURNZAUKULUODHZUPUSPUKUNQHULVBRUNABCDEFUCUAUOBCUQURD
      EUQSZFURSZTUDUMUOUTURABCUQURDEVCFVDTUEUKUQUBHULVAAPCUQVCUFAUQURDCUQDEVCUG
      VDUHUIUJ $.
  $}

  ${
    nvmul0or.1 $e |- X = ( BaseSet ` U ) $.
    nvmul0or.4 $e |- S = ( .sOLD ` U ) $.
    nvmul0or.6 $e |- Z = ( 0vec ` U ) $.
    $( If a scalar product is zero, one of its factors must be zero.
       (Contributed by NM, 6-Dec-2007.)  (New usage is discouraged.) $)
    nvmul0or $p |- ( ( U e. NrmCVec /\ A e. CC /\ B e. X ) ->
                    ( ( A S B ) = Z <-> ( A = 0 \/ B = Z ) ) ) $=
      ( wcel cc co wceq cc0 wa c1 oveq2 3ad2antl2 3adant2 3eqtr3d cnv w3a wo wn
      wne df-ne cdiv ad2antlr recid2 oveq1d simpl1 reccl simpl2 simpl3 syl13anc
      cmul nvsass nvsid adantr adantlr nvsz anassrs 3adantl3 ex syl5bir orrd wi
      sylan2 nv0 oveq1 eqeq1d syl5ibrcom 3adant3 jaod impbid ) DUAJZAKJZBEJZUBZ
      ABCLZFMZANMZBFMZUCZVSWAWDVSWAOZWBWCWBUDANUEZWEWCANUFWEWFWCWEWFOPAUGLZVTCL
      ZWGFCLZBFWAWHWIMVSWFVTFWGCQUHVSWFWHBMWAVSWFOZWGAUPLZBCLZPBCLZWHBVQVPWFWLW
      MMVRVQWFOZWKPBCAUIUJRWJVPWGKJZVQVRWLWHMVPVQVRWFUKVQVPWFWOVRAULZRVPVQVRWFU
      MVPVQVRWFUNWGABCDEGHUQUOVSWMBMZWFVPVRWQVQBCDEGHURSUSTUTVSWFWIFMZWAVPVQWFW
      RVRVPVQWFWRWNVPWOWRWPWGCDFHIVAVHVBVCUTTVDVEVFVDVSWBWAWCVPVRWBWAVGVQVPVROW
      AWBNBCLZFMBCDEFGHIVIWBVTWSFANBCVJVKVLSVPVQWCWAVGVRVPVQOWAWCAFCLZFMACDFHIV
      AWCVTWTFBFACQVKVLVMVNVO $.
  $}

  ${
    nvrinv.1 $e |- X = ( BaseSet ` U ) $.
    nvrinv.2 $e |- G = ( +v ` U ) $.
    nvrinv.4 $e |- S = ( .sOLD ` U ) $.
    nvrinv.6 $e |- Z = ( 0vec ` U ) $.
    $( A vector minus itself.  (Contributed by NM, 4-Dec-2007.)  (Revised by
       Mario Carneiro, 21-Dec-2013.)  (New usage is discouraged.) $)
    nvrinv $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( A G ( -u 1 S A ) ) = Z ) $=
      ( cnv wcel wa cgn cfv co cgi c1 wceq eqid cgr nvgrp bafval grporinv sylan
      cneg nvinv oveq2d 0vfval adantr 3eqtr4d ) CKLZAELZMZAADNOZOZDPZDQOZARUFAB
      PZDPFULDUALUMUQURSCDHUBAURDUOECDEGHUCURTUOTZUDUEUNUSUPADABCDUOEGHIUTUGUHU
      LFURSUMCDKFHJUIUJUK $.

    $( Minus a vector plus itself.  (Contributed by NM, 4-Dec-2007.)  (Revised
       by Mario Carneiro, 21-Dec-2013.)  (New usage is discouraged.) $)
    nvlinv $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( ( -u 1 S A ) G A ) = Z ) $=
      ( cnv wcel wa cgn cfv co cgi c1 wceq eqid cgr nvgrp bafval grpolinv sylan
      cneg nvinv oveq1d 0vfval adantr 3eqtr4d ) CKLZAELZMZADNOZOZADPZDQOZRUFABP
      ZADPFULDUALUMUQURSCDHUBAURDUOECDEGHUCURTUOTZUDUEUNUSUPADABCDUOEGHIUTUGUHU
      LFURSUMCDKFHJUIUJUK $.
  $}

  ${
    nvpncan2.1 $e |- X = ( BaseSet ` U ) $.
    nvpncan2.2 $e |- G = ( +v ` U ) $.
    nvpncan2.3 $e |- M = ( -v ` U ) $.
    $( Cancellation law for vector subtraction.  (Contributed by NM,
       27-Dec-2007.)  (New usage is discouraged.) $)
    nvpncan2 $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
                 ( ( A G B ) M A ) = B ) $=
      ( cnv wcel w3a co c1 cneg cfv wceq eqid 3adant3 eqtrd simp1 nvgcl syl3anc
      cns simp2 nvmval simp3 neg1cn nvscl mp3an2 nvadd32 syl13anc nvrinv oveq1d
      cc cn0v nv0lid 3adant2 ) CJKZAFKZBFKZLZABDMZAEMZVCNOZACUDPZMZDMZBVBUSVCFK
      UTVDVHQUSUTVAUAZABCDFGHUBUSUTVAUEZVCAVFCDEFGHVFRZIUFUCVBVHAVGDMZBDMZBVBUS
      UTVAVGFKZVHVMQVIVJUSUTVAUGUSUTVNVAUSVEUOKUTVNUHVEAVFCFGVKUIUJSABVGCDFGHUK
      ULVBVMCUPPZBDMZBVBVLVOBDUSUTVLVOQVAAVFCDFVOGHVKVORZUMSUNUSVAVPBQUTBCDFVOG
      HVQUQURTTT $.

    $( Cancellation law for vector subtraction.  (Contributed by NM,
       24-Jan-2008.)  (New usage is discouraged.) $)
    nvpncan $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
                 ( ( A G B ) M B ) = A ) $=
      ( cnv wcel co wceq w3a nvcom oveq1d nvpncan2 eqtr3d 3com23 ) CJKZBFKZAFKZ
      ABDLZBELZAMTUAUBNZBADLZBELUDAUEUFUCBEBACDFGHOPBACDEFGHIQRS $.

    $( Commutative/associative law for vector addition and subtraction.
       (Contributed by NM, 24-Jan-2008.)  (New usage is discouraged.) $)
    nvaddsub $p |- ( ( U e. NrmCVec /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
      ( ( A G B ) M C ) = ( ( A M C ) G B ) ) $=
      ( cnv wcel cablo w3a co wceq nvablo bafval vsfval ablomuldiv sylan ) DKLE
      MLAGLBGLCGLNABEOCFOACFOBEOPDEIQABCFEGDEGHIRDEFIJSTUA $.

    $( Cancellation law for a normed complex vector space.  (Contributed by NM,
       24-Jan-2008.)  (New usage is discouraged.) $)
    nvnpcan $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
         ( ( A M B ) G B ) = A ) $=
      ( cnv wcel w3a co wceq wa simprl simprr 3jca nvaddsub syldan 3impb eqtr3d
      nvpncan ) CJKZAFKZBFKZLABDMBEMZABEMBDMZAUDUEUFUGUHNZUDUEUFOZUEUFUFLUIUDUJ
      OUEUFUFUDUEUFPUDUEUFQZUKRABBCDEFGHISTUAABCDEFGHIUCUB $.

    $( Rearrangement of 4 terms in a mixed vector addition and subtraction.
       (Contributed by NM, 8-Feb-2008.)  (New usage is discouraged.) $)
    nvaddsub4 $p |- ( ( U e. NrmCVec /\ ( A e. X /\ B e. X ) /\ ( C e. X /\
       D e. X ) ) -> ( ( A G B ) M ( C G D ) ) = ( ( A M C ) G ( B M D ) ) ) $=
      ( wcel wa co wceq neg1cn 3adant2 nvscl mp3an2 nvmval cnv w3a cneg cns cfv
      c1 cc eqid nvdi mp3anr1 oveq2d anim12dan syld3an3 eqtrd simp1 nvgcl 3expb
      3adant3 syl3anc 3adant3r 3adant2r 3adant3l 3adant2l oveq12d 3eqtr4d
      nvadd4 ) EUALZAHLZBHLZMZCHLZDHLZMZUBZABFNZUFUCZCDFNZEUDUEZNZFNZAVPCVRNZFN
      ZBVPDVRNZFNZFNZVOVQGNZACGNZBDGNZFNVNVTVOWAWCFNZFNZWEVNVSWIVOFVGVMVSWIOZVJ
      VGVPUGLZVKVLWKPVPCDVREFHIJVRUHZUIUJQUKVGVJVMWAHLZWCHLZMZWJWEOVGVMWPVJVGVK
      WNVLWOVGWLVKWNPVPCVREHIWMRSVGWLVLWOPVPDVREHIWMRSULQABWAWCEFHIJVFUMUNVNVGV
      OHLZVQHLZWFVTOVGVJVMUOVGVJWQVMVGVHVIWQABEFHIJUPUQURVGVMWRVJVGVKVLWRCDEFHI
      JUPUQQVOVQVREFGHIJWMKTUSVNWGWBWHWDFVGVHVMWGWBOZVIVGVHVKWSVLACVREFGHIJWMKT
      UTVAVGVIVMWHWDOZVHVGVIVLWTVKBDVREFGHIJWMKTVBVCVDVE $.
  $}

  ${
    nvmeq0.1 $e |- X = ( BaseSet ` U ) $.
    nvmeq0.3 $e |- M = ( -v ` U ) $.
    nvmeq0.5 $e |- Z = ( 0vec ` U ) $.
    $( The difference between two vectors is zero iff they are equal.
       (Contributed by NM, 24-Jan-2008.)  (New usage is discouraged.) $)
    nvmeq0 $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
            ( ( A M B ) = Z <-> A = B ) ) $=
      ( cnv wcel w3a co cpv cfv wceq wb wa nvmcl 3expb nvzcl adantr simprr 3jca
      eqid nvrcan syldan 3impb nvnpcan nv0lid 3adant2 eqeq12d bitr3d ) CJKZAEKZ
      BEKZLZABDMZBCNOZMZFBUSMZPZURFPZABPUNUOUPVBVCQZUNUOUPRZUREKZFEKZUPLVDUNVER
      VFVGUPUNUOUPVFABCDEGHSTUNVGVECEFGIUAUBUNUOUPUCUDURFBCUSEGUSUEZUFUGUHUQUTA
      VABABCUSDEGVHHUIUNUPVABPUOBCUSEFGVHIUJUKULUM $.

    $( A vector minus itself is the zero vector.  (Contributed by NM,
       28-Jan-2008.)  (New usage is discouraged.) $)
    nvmid $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( A M A ) = Z ) $=
      ( cnv wcel wa co wceq eqid wb nvmeq0 3anidm23 mpbiri ) BIJZADJZKAACLEMZAA
      MZANSTUAUBOAABCDEFGHPQR $.
  $}

  ${
    $d x y N $.  $d x y U $.  $d x y X $.
    nvf.1 $e |- X = ( BaseSet ` U ) $.
    nvf.6 $e |- N = ( normCV ` U ) $.
    $( Mapping for the norm function.  (Contributed by NM, 11-Nov-2006.)
       (New usage is discouraged.) $)
    nvf $p |- ( U e. NrmCVec -> N : X --> RR ) $=
      ( vx vy cnv wcel cpv cfv cns cop cvc cr cv wceq co wral eqid wf cn0v cabs
      cc0 wi cmul cc caddc cle wbr w3a nvi simp2d ) AHIAJKZALKZMNICOBUAFPZBKZUD
      QUPAUBKZQUEGPZUPUORBKUSUCKUQUFRQGUGSUPUSUNRBKUQUSBKUHRUIUJGCSUKFCSFGUOAUN
      BCURDUNTUOTURTEULUM $.

    $( The norm of a normed complex vector space is a real number.
       (Contributed by NM, 24-Nov-2006.)  (New usage is discouraged.) $)
    nvcl $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( N ` A ) e. RR ) $=
      ( cnv wcel cr nvf ffvelrnda ) BGHDIACBCDEFJK $.

    ${
      nvcli.9 $e |- U e. NrmCVec $.
      nvcli.7 $e |- A e. X $.
      $( The norm of a normed complex vector space is a real number.
         (Contributed by NM, 20-Apr-2007.)  (New usage is discouraged.) $)
      nvcli $p |- ( N ` A ) e. RR $=
        ( cnv wcel cfv cr nvcl mp2an ) BIJADJACKLJGHABCDEFMN $.
    $}
  $}

  ${
    $d y A $.  $d x y B $.  $d x y N $.  $d x y S $.  $d x y U $.  $d x y X $.
    nvs.1 $e |- X = ( BaseSet ` U ) $.
    nvs.4 $e |- S = ( .sOLD ` U ) $.
    nvs.6 $e |- N = ( normCV ` U ) $.
    $( Proportionality property of the norm of a scalar product in a normed
       complex vector space.  (Contributed by NM, 11-Nov-2006.)
       (New usage is discouraged.) $)
    nvs $p |- ( ( U e. NrmCVec /\ A e. CC /\ B e. X ) ->
               ( N ` ( A S B ) ) = ( ( abs ` A ) x. ( N ` B ) ) ) $=
      ( vy vx wcel cc co cfv cabs cmul wceq cv wral cnv wa cc0 wi cpv caddc cle
      cn0v wbr w3a cop cvc cr wf nvi simp3d simp2 ralimi syl oveq2 fveq2d fveq2
      eqid oveq2d eqeq12d oveq1 oveq1d rspc2v syl5 3impia 3com13 ) BFLZAMLZDUAL
      ZABCNZEOZAPOZBEOZQNZRZVLVMVNVTVNJSZKSZCNZEOZWAPOZWBEOZQNZRZJMTZKFTZVLVMUB
      VTVNWFUCRWBDUHOZRUDZWIWBWADUEOZNEOWFWAEOUFNUGUIJFTZUJZKFTZWJVNWMCUKULLFUM
      EUNWPKJCDWMEFWKGWMVCHWKVCIUOUPWOWIKFWLWIWNUQURUSWHVTWABCNZEOZWEVRQNZRKJBA
      FMWBBRZWDWRWGWSWTWCWQEWBBWACUTVAWTWFVRWEQWBBEVBVDVEWAARZWRVPWSVSXAWQVOEWA
      ABCVFVAXAWEVQVRQWAAPVBVGVEVHVIVJVK $.

    $( The norm of a scalar product with a nonnegative real.  (Contributed by
       NM, 1-Jan-2008.)  (New usage is discouraged.) $)
    nvsge0 $p |- ( ( U e. NrmCVec /\ ( A e. RR /\ 0 <_ A ) /\ B e. X ) ->
               ( N ` ( A S B ) ) = ( A x. ( N ` B ) ) ) $=
      ( cnv wcel cr cc0 cle wbr wa co cfv cmul wceq w3a cabs cc recn adantr nvs
      syl3an2 absid 3ad2ant2 oveq1d eqtrd ) DJKZALKZMANOZPZBFKZUAZABCQERZAUBRZB
      ERZSQZAUTSQUOULAUCKZUPURVATUMVBUNAUDUEABCDEFGHIUFUGUQUSAUTSUOULUSATUPAUHU
      IUJUK $.

    $( The norm of the negative of a vector.  (Contributed by NM, 28-Nov-2006.)
       (New usage is discouraged.) $)
    nvm1 $p |- ( ( U e. NrmCVec /\ A e. X ) ->
               ( N ` ( -u 1 S A ) ) = ( N ` A ) ) $=
      ( cnv wcel wa c1 cneg co cfv cabs cmul cc wceq neg1cn mp3an2 absnegi abs1
      nvs ax-1cn eqtri oveq1i nvcl recnd mulid2d syl5eq eqtrd ) CIJZAEJZKZLMZAB
      NDOZUPPOZADOZQNZUSUMUPRJUNUQUTSTUPABCDEFGHUDUAUOUTLUSQNUSURLUSQURLPOLLUEU
      BUCUFUGUOUSUOUSACDEFHUHUIUJUKUL $.
  $}

  ${
    nvdif.1 $e |- X = ( BaseSet ` U ) $.
    nvdif.2 $e |- G = ( +v ` U ) $.
    nvdif.4 $e |- S = ( .sOLD ` U ) $.
    nvdif.6 $e |- N = ( normCV ` U ) $.
    $( The norm of the difference between two vectors.  (Contributed by NM,
       1-Dec-2006.)  (New usage is discouraged.) $)
    nvdif $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
               ( N ` ( A G ( -u 1 S B ) ) ) = ( N ` ( B G ( -u 1 S A ) ) ) ) $=
      ( wcel co cfv wceq neg1cn nvscl mp3an2 3adant3 syl3anc cnv w3a c1 cneg cc
      simp1 a1i simp3 nvdi syl13anc nvnegneg oveq2d 3adant2 simp2 3eqtrd fveq2d
      nvcom nvgcl nvm1 syl2anc eqtr3d ) DUALZAGLZBGLZUBZUCUDZBVFACMZEMZCMZFNZAV
      FBCMZEMZFNVHFNZVEVIVLFVEVIVKVFVGCMZEMZVKAEMZVLVEVBVFUELZVDVGGLZVIVOOVBVCV
      DUFZVQVEPUGVBVCVDUHZVBVCVRVDVBVQVCVRPVFACDGHJQRSZVFBVGCDEGHIJUIUJVEVNAVKE
      VBVCVNAOVDACDGHJUKSULVEVBVKGLZVCVPVLOVSVBVDWBVCVBVQVDWBPVFBCDGHJQRUMVBVCV
      DUNVKADEGHIUQTUOUPVEVBVHGLZVJVMOVSVEVBVDVRWCVSVTWABVGDEGHIURTVHCDFGHJKUSU
      TVA $.

    $( The norm of a vector plus the imaginary scalar product of another.
       (Contributed by NM, 2-Feb-2007.)  (New usage is discouraged.) $)
    nvpi $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
               ( N ` ( A G ( _i S B ) ) ) = ( N ` ( B G ( -u _i S A ) ) ) ) $=
      ( wcel c1 ci co cfv cmul cneg ax-icn wceq cnv w3a cr simp1 mp3an2 3adant2
      nvscl nvgcl syld3an3 nvcl syl2anc recnd mulid2d cabs absnegi eqtri oveq1i
      absi negicn nvs simp2 nvdi mp3anr1 syl12anc mulneg1i ixi negeqi negneg1e1
      cc nvsass mpanr1 nvsid 3eqtr3a oveq2d nvcom syld3an2 3eqtrd fveq2d eqtr3d
      wa 3adant3 syl5eqr ) DUALZAGLZBGLZUBZMANBCOZEOZFPZQOZWIBNRZACOZEOZFPZWFWI
      WFWIWFWCWHGLZWIUCLWCWDWEUDZWCWDWEWGGLZWOWCWEWQWDWCNVILZWEWQSNBCDGHJUGUEUF
      ZAWGDEGHIUHUIZWHDFGHKUJUKULUMWFWJWKUNPZWIQOZWNXAMWIQXANUNPMNSUOURUPUQWFWK
      WHCOZFPZXBWNWFWCWOXDXBTZWPWTWCWKVILZWOXEUSWKWHCDFGHJKUTUEUKWFXCWMFWFXCWLW
      KWGCOZEOZWLBEOZWMWFWCWDWQXCXHTZWPWCWDWEVAWSWCXFWDWQXJUSWKAWGCDEGHIJVBVCVD
      WFXGBWLEWCWEXGBTWDWCWEVTWKNQOZBCOZMBCOXGBXKMBCXKNNQOZRZMNNSSVEXNMRZRMXMXO
      VFVGVHUPUPUQWCWRWEXLXGTZSWCXFWRWEXPUSWKNBCDGHJVJVCVKBCDGHJVLVMUFVNWCWLGLZ
      WDWEXIWMTWCWDXQWEWCXFWDXQUSWKACDGHJUGUEWAWLBDEGHIVOVPVQVRVSWBVS $.
  $}

  ${
    nvz0.5 $e |- Z = ( 0vec ` U ) $.
    nvz0.6 $e |- N = ( normCV ` U ) $.
    $( The norm of a zero vector is zero.  (Contributed by NM, 24-Nov-2006.)
       (New usage is discouraged.) $)
    nvz0 $p |- ( U e. NrmCVec -> ( N ` Z ) = 0 ) $=
      ( cnv wcel cc0 cns cfv co cmul cba wceq eqid nvzcl cr cle wa mpdan pm3.2i
      wbr 0re 0le0 nvsge0 mp3an2 nv0 fveq2d cc nvcl recnd mul02d 3eqtr3d ) AFGZ
      HCAIJZKZBJZHCBJZLKZURHUNCAMJZGZUQUSNZAUTCUTOZDPZUNHQGZHHRUBZSVAVBVEVFUCUD
      UAHCUOABUTVCUOOZEUEUFTUNUPCBUNVAUPCNVDCUOAUTCVCVGDUGTUHUNURUNVAURUIGVDUNV
      ASURCABUTVCEUJUKTULUM $.
  $}

  ${
    $d x A $.  $d x y N $.  $d x y U $.  $d x y X $.  $d x Z $.
    nvz.1 $e |- X = ( BaseSet ` U ) $.
    nvz.5 $e |- Z = ( 0vec ` U ) $.
    nvz.6 $e |- N = ( normCV ` U ) $.
    $( The norm of a vector is zero iff the vector is zero.  First part of
       Problem 2 of [Kreyszig] p. 64.  (Contributed by NM, 24-Nov-2006.)
       (New usage is discouraged.) $)
    nvz $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( ( N ` A ) = 0 <-> A = Z ) ) $=
      ( vx vy wcel cfv cc0 wceq wi cv co wral eqid fveq2 cnv wa cns cabs cc cpv
      cmul caddc cle wbr w3a cop cvc cr wf nvi simp3d simp1 ralimi eqeq1d eqeq1
      imbi12d rspccv 3syl imp nvz0 sylan9eqr ex adantr impbid ) BUAKZADKZUBACLZ
      MNZAENZVKVLVNVOOZVKIPZCLZMNZVQENZOZJPZVQBUCLZQCLWBUDLVRUGQNJUERZVQWBBUFLZ
      QCLVRWBCLUHQUIUJJDRZUKZIDRZWAIDRVLVPOVKWEWCULUMKDUNCUOWHIJWCBWECDEFWESWCS
      GHUPUQWGWAIDWAWDWFURUSWAVPIADVQANZVSVNVTVOWIVRVMMVQACTUTVQAEVAVBVCVDVEVKV
      OVNOVLVKVOVNVOVKVMECLMAECTBCEGHVFVGVHVIVJ $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y G $.  $d x y N $.  $d x y U $.  $d x y X $.
    nvtri.1 $e |- X = ( BaseSet ` U ) $.
    nvtri.2 $e |- G = ( +v ` U ) $.
    nvtri.6 $e |- N = ( normCV ` U ) $.
    $( Triangle inequality for the norm of a normed complex vector space.
       (Contributed by NM, 11-Nov-2006.)  (Revised by Mario Carneiro,
       21-Dec-2013.)  (New usage is discouraged.) $)
    nvtri $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
          ( N ` ( A G B ) ) <_ ( ( N ` A ) + ( N ` B ) ) ) $=
      ( vx vy wcel co cfv caddc cle wbr cv wral wceq cnv wa cn0v c1st c2nd cabs
      cc0 wi cmul cc w3a cop cvc cr wf cns eqid smfval eqcomi nvi simp3d ralimi
      simp3 syl oveq1 fveq2d fveq2 oveq1d oveq2 oveq2d rspc2v syl5 3impia 3comr
      breq12d ) AFLZBFLZCUALZABDMZENZAENZBENZOMZPQZVPVQVRWDVRJRZKRZDMZENZWEENZW
      FENZOMZPQZKFSZJFSZVPVQUBWDVRWIUGTWECUCNZTUHZWFWECUDNUENZMENWFUFNWIUIMTKUJ
      SZWMUKZJFSZWNVRDWQULUMLFUNEUOWTJKWQCDEFWOGHCUPNZWQXACXAUQURUSWOUQIUTVAWSW
      MJFWPWRWMVCVBVDWLWDAWFDMZENZWAWJOMZPQJKABFFWEATZWHXCWKXDPXEWGXBEWEAWFDVEV
      FXEWIWAWJOWEAEVGVHVOWFBTZXCVTXDWCPXFXBVSEWFBADVIVFXFWJWBWAOWFBEVGVJVOVKVL
      VMVN $.
  $}

  ${
    nvmtri.1 $e |- X = ( BaseSet ` U ) $.
    nvmtri.3 $e |- M = ( -v ` U ) $.
    nvmtri.6 $e |- N = ( normCV ` U ) $.
    $( Triangle inequality for the norm of a vector difference.  (Contributed
       by NM, 27-Dec-2007.)  (New usage is discouraged.) $)
    nvmtri $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
          ( N ` ( A M B ) ) <_ ( ( N ` A ) + ( N ` B ) ) ) $=
      ( wcel c1 cfv co caddc cle neg1cn eqid mp3an2 3adant2 cmul cnv w3a cns cc
      cneg cpv wbr nvscl syld3an3 nvmval fveq2d wceq wa cabs nvs ax-1cn absnegi
      nvtri abs1 eqtri oveq1i nvcl recnd mulid2d syl5eq eqtr2d oveq2d 3brtr4d )
      CUAJZAFJZBFJZUBZAKUEZBCUCLZMZCUFLZMZELZAELZVOELZNMZABDMZELVSBELZNMOVIVJVK
      VOFJZVRWAOUGVIVKWDVJVIVMUDJZVKWDPVMBVNCFGVNQZUHRSAVOCVPEFGVPQZIURUIVLWBVQ
      EABVNCVPDFGWGWFHUJUKVLWCVTVSNVIVKWCVTULVJVIVKUMZVTVMUNLZWCTMZWCVIWEVKVTWJ
      ULPVMBVNCEFGWFIUORWHWJKWCTMWCWIKWCTWIKUNLKKUPUQUSUTVAWHWCWHWCBCEFGIVBVCVD
      VEVFSVGVH $.
  $}

  ${
    nvabs.1 $e |- X = ( BaseSet ` U ) $.
    nvabs.2 $e |- G = ( +v ` U ) $.
    nvabs.4 $e |- S = ( .sOLD ` U ) $.
    nvabs.6 $e |- N = ( normCV ` U ) $.
    $( Norm difference property of a normed complex vector space.  Problem 3 of
       [Kreyszig] p. 64.  (Contributed by NM, 4-Dec-2006.)
       (New usage is discouraged.) $)
    nvabs $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
       ( abs ` ( ( N ` A ) - ( N ` B ) ) ) <_ ( N ` ( A G ( -u 1 S B ) ) ) ) $=
      ( wcel cfv co cle wbr cr nvcl 3adant2 wceq cnv w3a cmin cabs nvdif negeqd
      c1 cneg 3adant3 simp1 neg1cn nvscl mp3an2 nvgcl syld3an3 syl2anc renegcld
      cc 3com23 caddc nvcom cn0v wa simprr adantrr simprl 3jca nvass 3impb eqid
      syldan nvlinv oveq2d nv0rid 3eqtrd eqtrd fveq2d eqbrtrrd subnegd breqtrrd
      nvtri recnd lesubd eqbrtrd simp2 simp3 syl13anc syld3an2 lesubaddd mpbird
      resubcld absled mpbir2and ) DUALZAGLZBGLZUBZAFMZBFMZUCNZUDMAUGUHZBCNZENZF
      MZOPXDUHZWTOPWTXDOPZWQXEBXAACNZENZFMZUHZWTOWQXDXIABCDEFGHIJKUEUFWQWSWRXJW
      NWPWSQLWOBDFGHKRSZWNWOWRQLWPADFGHKRUIZWQXIWQWNXHGLZXIQLWNWOWPUJZWNWPWOXMW
      NWPWOXGGLZXMWNWOXOWPWNXAURLZWOXOUKXAACDGHJULUMZSBXGDEGHIUNUOUSZXHDFGHKRUP
      ZUQWQWSWRXIUTNZWRXJUCNOWQAXHENZFMZWSXTOWQYABFWQYAXHAENZBWNWOWPXMYAYCTXRAX
      HDEGHIVAUOWQYCBXGAENZENZBDVBMZENZBWNWOWPYCYETZWNWOWPVCZWPXOWOUBYHWNYIVCWP
      XOWOWNWOWPVDWNWOXOWPXQVEWNWOWPVFVGBXGADEGHIVHVKVIWQYDYFBEWNWOYDYFTWPACDEG
      YFHIJYFVJZVLUIVMWNWPYGBTWOBDEGYFHIYJVNSVOVPVQWNWOWPXMYBXTOPXRAXHDEFGHIKWA
      UOVRWQWRXIWQWRXLWBWQXIXSWBVSVTWCWDWQXFWRXDWSUTNZOPWQXCBENZFMZWRYKOWQYLAFW
      QYLAXBBENZENZAYFENZAWQWNWOXBGLZWPYLYOTXNWNWOWPWEWNWPYQWOWNXPWPYQUKXABCDGH
      JULUMSZWNWOWPWFAXBBDEGHIVHWGWQYNYFAEWNWPYNYFTWOBCDEGYFHIJYJVLSVMWNWOYPATW
      PADEGYFHIYJVNUIVOVQWNXCGLZWOWPYMYKOPWNWOWPYQYSYRAXBDEGHIUNUOZXCBDEFGHIKWA
      WHVRWQWRWSXDXLXKWQWNYSXDQLXNYTXCDFGHKRUPZWIWJWQWTXDWQWRWSXLXKWKUUAWLWM $.
  $}

  ${
    nvge0.1 $e |- X = ( BaseSet ` U ) $.
    nvge0.6 $e |- N = ( normCV ` U ) $.
    $( The norm of a normed complex vector space is nonnegative.  Second part
       of Problem 2 of [Kreyszig] p. 64.  (Contributed by NM, 28-Nov-2006.)
       (New usage is discouraged.) $)
    nvge0 $p |- ( ( U e. NrmCVec /\ A e. X ) -> 0 <_ ( N ` A ) ) $=
      ( wcel wa c2 cr cfv cc0 wbr co cle jctil c1 caddc wceq eqid cnv cmul nvcl
      clt 2re cneg cns cpv cn0v adantr 1pneg1e0 oveq1i syl5req cc neg1cn ax-1cn
      nvdir mp3anr1 mpanr1 nvsid oveq1d 3eqtrd fveq2d eqtr3d nvscl mp3an2 nvtri
      nvz0 nv0 mpd3an3 eqbrtrd nvm1 oveq2d recnd 2timesd eqtr4d breqtrd prodge0
      2pos syl2anc ) BUAGZADGZHZIJGZACKZJGZHLIUDMZLIWEUBNZOMZHLWEOMWCWFWDABCDEF
      UCZUEPWCWIWGWCLWEQUFZABUGKZNZCKZRNZWHOWCLAWMBUHKZNZCKZWOOWCBUIKZCKZLWRWAW
      TLSWBBCWSWSTZFVHUJWCWSWQCWCWSQWKRNZAWLNZQAWLNZWMWPNZWQWCXCLAWLNWSXBLAWLUK
      ULAWLBDWSEWLTZXAVIUMWAWKUNGZWBXCXESZUOWAQUNGXGWBXHUPQWKAWLBWPDEWPTZXFUQUR
      USWCXDAWMWPAWLBDEXFUTVAVBVCVDWAWBWMDGZWRWOOMWAXGWBXJUOWKAWLBDEXFVEVFAWMBW
      PCDEXIFVGVJVKWCWOWEWERNWHWCWNWEWERAWLBCDEXFFVLVMWCWEWCWEWJVNVOVPVQVSPIWEV
      RVT $.
  $}

  ${
    nvgt0.1 $e |- X = ( BaseSet ` U ) $.
    nvgt0.5 $e |- Z = ( 0vec ` U ) $.
    nvgt0.6 $e |- N = ( normCV ` U ) $.
    $( A nonzero norm is positive.  (Contributed by NM, 20-Nov-2007.)
       (New usage is discouraged.) $)
    nvgt0 $p |- ( ( U e. NrmCVec /\ A e. X ) ->
                   ( A =/= Z <-> 0 < ( N ` A ) ) ) $=
      ( cnv wcel wa cfv cc0 wne clt wbr nvz necon3bid cr cle nvcl nvge0 syl2anc
      wb ne0gt0 bitr3d ) BIJADJKZACLZMNZAENMUHOPZUGUHMAEABCDEFGHQRUGUHSJMUHTPUI
      UJUDABCDFHUAABCDFHUBUHUEUCUF $.
  $}

  ${
    nv1.1 $e |- X = ( BaseSet ` U ) $.
    nv1.4 $e |- S = ( .sOLD ` U ) $.
    nv1.5 $e |- Z = ( 0vec ` U ) $.
    nv1.6 $e |- N = ( normCV ` U ) $.
    $( From any nonzero vector, construct a vector whose norm is one.
       (Contributed by NM, 6-Dec-2007.)  (New usage is discouraged.) $)
    nv1 $p |- ( ( U e. NrmCVec /\ A e. X /\ A =/= Z ) ->
               ( N ` ( ( 1 / ( N ` A ) ) S A ) ) = 1 ) $=
      ( wcel wne c1 cfv co cr cc0 cle wbr 3adant3 cnv cdiv cmul wceq simp1 nvcl
      w3a wa nvz necon3bid biimp3ar rereccld clt nvgt0 biimp3a 1re 0le1 mpanl12
      divge0 syl2anc simp2 nvsge0 syl121anc cc recnd recid2d eqtrd ) CUAKZAEKZA
      FLZUGZMADNZUBOZABODNZVMVLUCOZMVKVHVMPKQVMRSZVIVNVOUDVHVIVJUEVKVLVHVIVLPKZ
      VJACDEGJUFZTZVHVIVLQLVJVHVIUHZVLQAFACDEFGIJUIUJUKZULVKVQQVLUMSZVPVSVHVIVJ
      WBACDEFGIJUNUOMPKQMRSVQWBUHVPUPUQMVLUSURUTVHVIVJVAVMABCDEGHJVBVCVKVLVHVIV
      LVDKVJVTVLVRVETWAVFVG $.
  $}

  ${
    nvop.2 $e |- G = ( +v ` U ) $.
    nvop.4 $e |- S = ( .sOLD ` U ) $.
    nvop.6 $e |- N = ( normCV ` U ) $.
    $( A complex inner product space in terms of ordered pair components.
       (Contributed by NM, 11-Sep-2007.)  (New usage is discouraged.) $)
    nvop $p |- ( U e. NrmCVec -> U = <. <. G , S >. , N >. ) $=
      ( cnv wcel c1st cfv c2nd cop wrel wceq nvrel 1st2nd mpan nmcvfval opeq2i
      eqid nvvop opeq1d syl5eqr eqtrd ) BHIZBBJKZBLKZMZCAMZDMZHNUFBUIOPBHQRUFUI
      UGDMUKDUHUGBDGSTUFUGUJDABCUGUGUAEFUBUCUDUE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Examples of normed complex vector spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    cnnv.6 $e |- U = <. <. + , x. >. , abs >. $.
    $( The set of complex numbers is a normed complex vector space.  The vector
       operation is ` + ` , the scalar product is ` x. ` , and the norm
       function is ` abs ` .  (Contributed by Steve Rodriguez, 3-Dec-2006.)
       (New usage is discouraged.) $)
    cnnv $p |- U e. NrmCVec $=
      ( vx vy cmul caddc cabs cc cc0 cablo wcel cgr cnaddabloOLD ablogrpo ax-mp
      cxp ax-addf fdmi cv wceq grporn cnidOLD cncvcOLD absf abs00 biimpa absmul
      cfv abstri isnvi ) CDEAFGHIFHFJKFLKMFNOHHPHFQRUAUBUCUDCSZHKUKGUHITUKITUKU
      EUFDSZUKUGUKULUIBUJ $.
  $}

  ${
    cnnvg.6 $e |- U = <. <. + , x. >. , abs >. $.
    $( The vector addition (group) operation of the normed complex vector space
       of complex numbers.  (Contributed by NM, 12-Jan-2008.)
       (New usage is discouraged.) $)
    cnnvg $p |- + = ( +v ` U ) $=
      ( cpv cfv c1st caddc cmul cop eqid vafval cabs fveq2i opex cc cr cvv wcel
      wf absf op1st cnex fex mp2an eqtri addex mulex 3eqtrri ) ACDZAEDZEDFGHZED
      FAUHUHIJUIUJEUIUJKHZEDUJAUKEBLUJKFGMNOKRNPQKPQSUANOPKUBUCTUDLFGUEUFTUG $.
  $}

  ${
    cnnvba.6 $e |- U = <. <. + , x. >. , abs >. $.
    $( The base set of the normed complex vector space of complex numbers.
       (Contributed by NM, 7-Nov-2007.)  (New usage is discouraged.) $)
    cnnvba $p |- CC = ( BaseSet ` U ) $=
      ( caddc crn cpv cfv cc cnnvg rneqi cablo wcel cnaddabloOLD ablogrpo ax-mp
      cba cgr cxp ax-addf fdmi eqid grporn bafval 3eqtr4i ) CDAEFZDGAOFZCUDABHI
      CGCJKCPKLCMNGGQGCRSUAAUDUEUETUDTUBUC $.
  $}

  ${
    cnnvs.6 $e |- U = <. <. + , x. >. , abs >. $.
    $( The scalar product operation of the normed complex vector space of
       complex numbers.  (Contributed by NM, 12-Jan-2008.)
       (New usage is discouraged.) $)
    cnnvs $p |- x. = ( .sOLD ` U ) $=
      ( cns cfv c1st c2nd caddc cmul cop eqid smfval cabs fveq2i opex cc cr cvv
      wf wcel absf cnex fex mp2an op1st eqtri addex mulex op2nd 3eqtrri ) ACDZA
      EDZFDGHIZFDHUJAUJJKUKULFUKULLIZEDULAUMEBMULLGHNOPLROQSLQSTUAOPQLUBUCUDUEM
      GHUFUGUHUI $.
  $}

  ${
    cnnvnm.6 $e |- U = <. <. + , x. >. , abs >. $.
    $( The norm operation of the normed complex vector space of complex
       numbers.  (Contributed by NM, 12-Jan-2008.)
       (New usage is discouraged.) $)
    cnnvnm $p |- abs = ( normCV ` U ) $=
      ( cnmcv cfv c2nd caddc cmul cop cabs eqid nmcvfval fveq2i opex cc cr wcel
      wf cvv absf cnex fex mp2an op2nd 3eqtrri ) ACDZAEDFGHZIHZEDIAUEUEJKAUGEBL
      UFIFGMNOIQNRPIRPSTNORIUAUBUCUD $.
  $}

  ${
    $d x y U $.
    cnnvm.6 $e |- U = <. <. + , x. >. , abs >. $.
    $( The vector subtraction operation of the normed complex vector space of
       complex numbers.  (Contributed by NM, 12-Jan-2008.)  (Revised by Mario
       Carneiro, 23-Dec-2013.)  (New usage is discouraged.) $)
    cnnvm $p |- - = ( -v ` U ) $=
      ( vx vy cc cv cmin co cmpt2 c1 cneg cmul caddc cnsb wcel wceq mulm1 ax-mp
      cfv wa adantl oveq2d negsub eqtr2d mpt2eq3ia cxp wfn wf subf ffn fnov cnv
      mpbi cnnv cnnvba cnnvg cnnvs eqid nvmfval 3eqtr4i ) CDEECFZDFZGHZIZCDEEVA
      JKVBLHZMHZIZGANSZCDEEVCVFVAEOZVBEOZTZVFVAVBKZMHVCVKVEVLVAMVJVEVLPVIVBQUAU
      BVAVBUCUDUEGEEUFZUGZGVDPVMEGUHVNUIVMEGUJRCDEEGUKUMAULOVHVGPABUNCDLAMVHEAB
      UOABUPABUQVHURUSRUT $.
  $}

  ${
    elimnv.1 $e |- X = ( BaseSet ` U ) $.
    elimnv.5 $e |- Z = ( 0vec ` U ) $.
    elimnv.9 $e |- U e. NrmCVec $.
    $( Hypothesis elimination lemma for normed complex vector spaces to assist
       weak deduction theorem.  (Contributed by NM, 16-May-2007.)
       (New usage is discouraged.) $)
    elimnv $p |- if ( A e. X , A , Z ) e. X $=
      ( cnv wcel nvzcl ax-mp elimel ) ADCBHIDCIGBCDEFJKL $.
  $}

  $( Hypothesis elimination lemma for normed complex vector spaces to assist
     weak deduction theorem.  (Contributed by NM, 16-May-2007.)
     (New usage is discouraged.) $)
  elimnvu $p |- if ( U e. NrmCVec , U , <. <. + , x. >. , abs >. )
                 e. NrmCVec $=
    ( caddc cmul cop cabs cnv eqid cnnv elimel ) ABCDEDZFJJGHI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Induced metric of a normed complex vector space
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d u U $.
    imsval.3 $e |- M = ( -v ` U ) $.
    imsval.6 $e |- N = ( normCV ` U ) $.
    imsval.8 $e |- D = ( IndMet ` U ) $.
    $( Value of the induced metric of a normed complex vector space.
       (Contributed by NM, 11-Sep-2007.)  (Revised by Mario Carneiro,
       16-Nov-2013.)  (New usage is discouraged.) $)
    imsval $p |- ( U e. NrmCVec -> D = ( N o. M ) ) $=
      ( vu cnv wcel cims cfv cnmcv cnsb ccom cv wceq fveq2 coeq12d fvex coeq12i
      df-ims coex fvmpt 3eqtr4g ) BIJBKLBMLZBNLZOZADCOHBHPZMLZUINLZOUHIKUIBQUJU
      FUKUGUIBMRUIBNRSHUBUFUGBMTBNTUCUDGDUFCUGFEUAUE $.
  $}

  ${
    imsdval.1 $e |- X = ( BaseSet ` U ) $.
    imsdval.3 $e |- M = ( -v ` U ) $.
    imsdval.6 $e |- N = ( normCV ` U ) $.
    imsdval.8 $e |- D = ( IndMet ` U ) $.
    $( Value of the induced metric (distance function) of a normed complex
       vector space.  Equation 1 of [Kreyszig] p. 59.  (Contributed by NM,
       11-Sep-2007.)  (Revised by Mario Carneiro, 27-Dec-2014.)
       (New usage is discouraged.) $)
    imsdval $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
                  ( A D B ) = ( N ` ( A M B ) ) ) $=
      ( cnv wcel w3a cop cfv co ccom wceq df-ov imsval 3ad2ant1 fveq1d cxp nvmf
      wf wa opelxpi fvco3 syl2an 3impb eqtrd fveq2i 3eqtr4g ) DLMZAGMZBGMZNZABO
      ZCPZUSEPZFPZABCQABEQZFPURUTUSFERZPZVBURUSCVDUOUPCVDSUQCDEFIJKUAUBUCUOUPUQ
      VEVBSZUOGGUDZGEUFUSVGMVFUPUQUGDEGHIUEABGGUHVGGUSFEUIUJUKULABCTVCVAFABETUM
      UN $.
  $}

  ${
    imsdval2.1 $e |- X = ( BaseSet ` U ) $.
    imsdval2.2 $e |- G = ( +v ` U ) $.
    imsdval2.4 $e |- S = ( .sOLD ` U ) $.
    imsdval2.6 $e |- N = ( normCV ` U ) $.
    imsdval2.8 $e |- D = ( IndMet ` U ) $.
    $( TODO $)
    $( Value of the distance function of the induced metric of a normed complex
       vector space.  Equation 1 of [Kreyszig] p. 59.  (Contributed by NM,
       28-Nov-2006.)  (New usage is discouraged.) $)
    imsdval2 $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
                  ( A D B ) = ( N ` ( A G ( -u 1 S B ) ) ) ) $=
      ( cnv wcel w3a co cnsb cfv c1 cneg eqid imsdval nvmval fveq2d eqtrd ) ENO
      AHOBHOPZABCQABERSZQZGSATUABDQFQZGSABCEUHGHIUHUBZLMUCUGUIUJGABDEFUHHIJKUKU
      DUEUF $.
  $}

  ${
    nvnd.1 $e |- X = ( BaseSet ` U ) $.
    nvnd.5 $e |- Z = ( 0vec ` U ) $.
    nvnd.6 $e |- N = ( normCV ` U ) $.
    nvnd.8 $e |- D = ( IndMet ` U ) $.
    $( The norm of a normed complex vector space expressed in terms of the
       distance function of its induced metric.  Problem 1 of [Kreyszig] p. 63.
       (Contributed by NM, 4-Dec-2006.)  (New usage is discouraged.) $)
    nvnd $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( N ` A ) = ( A D Z ) ) $=
      ( cnv wcel wa co cnsb cfv wceq adantr eqid mpd3an3 nvzcl imsdval cneg cns
      c1 cpv nvmval cc neg1cn nvsz mpan2 oveq2d nv0rid 3eqtrd fveq2d eqtr2d ) C
      KLZAELZMZAFBNZAFCOPZNZDPZADPUQURFELZUTVCQUQVDURCEFGHUARZAFBCVADEGVASZIJUB
      TUSVBADUSVBAUEUCZFCUDPZNZCUFPZNZAFVJNZAUQURVDVBVKQVEAFVHCVJVAEGVJSZVHSZVF
      UGTUQVKVLQURUQVIFAVJUQVGUHLVIFQUIVGVHCFVNHUJUKULRACVJEFGVMHUMUNUOUP $.
  $}

  ${
    imsdfn.1 $e |- X = ( BaseSet ` U ) $.
    imsdfn.8 $e |- D = ( IndMet ` U ) $.
    $( Mapping for the induced metric distance function of a normed complex
       vector space.  (Contributed by NM, 29-Nov-2006.)
       (New usage is discouraged.) $)
    imsdf $p |- ( U e. NrmCVec -> D : ( X X. X ) --> RR ) $=
      ( cnv wcel cxp cr wf cnmcv cfv cnsb ccom eqid nvf nvmf fco syl2anc imsval
      feq1d mpbird ) BFGZCCHZIAJUDIBKLZBMLZNZJZUCCIUEJUDCUFJUHBUECDUEOZPBUFCDUF
      OZQUDCIUEUFRSUCUDIAUGABUFUEUJUIETUAUB $.
  $}

  ${
    $d x y z D $.  $d x y z X $.
    imsmetlem.1 $e |- X = ( BaseSet ` U ) $.
    imsmetlem.2 $e |- G = ( +v ` U ) $.
    imsmetlem.7 $e |- M = ( inv ` G ) $.
    imsmetlem.4 $e |- S = ( .sOLD ` U ) $.
    imsmetlem.5 $e |- Z = ( 0vec ` U ) $.
    imsmetlem.6 $e |- N = ( normCV ` U ) $.
    imsmetlem.8 $e |- D = ( IndMet ` U ) $.
    imsmetlem.9 $e |- U e. NrmCVec $.
    $( Lemma for ~ imsmet .  (Contributed by NM, 29-Nov-2006.)
       (New usage is discouraged.) $)
    imsmetlem $p |- D e. ( Met ` X ) $=
      ( wcel co wceq mp3an1 vx vy vz cba cfv cvv eqeltri cnv cxp cr imsdf ax-mp
      fvex wf cv wa cc0 c1 cneg imsdval2 eqeq1d wb cc neg1cn nvscl nvgcl sylan2
      mp3an12 nvz sylancr nvzcl w3a nvrcan mpan mp3an2 simpl adantl simpr nvass
      sylancom syl3anc nvlinv oveq2d nv0rid adantr 3eqtrd nv0lid eqeq12d bitr3d
      3bitrd caddc cle wbr syl2anc 3adant3 3adant2 nvtri 3adant1 simp1 3ad2ant3
      oveq1d eqtr3d fveq2d eqtr4d nvdif eqtrd oveq12d 3brtr4d 3coml ismeti ) UA
      UBUCAGGCUDUEUFICUDUMUGCUHQZGGUIUJAUNPACGIOUKULUAUOZGQZUBUOZGQZUPZXLXNARZU
      QSXLURUSZXNBRZDRZFUEZUQSZXTHSZXLXNSZXPXQYAUQXKXMXOXQYASZPXLXNABCDFGIJLNOU
      TTZVAXPXKXTGQZYBYCVBPXOXMXSGQZYGXKXRVCQZXOYHPVDXRXNBCGILVEVHZXKXMYHYGPXLX
      SCDGIJVFTVGZXTCFGHIMNVIVJXPXTXNDRZHXNDRZSZYCYDXMXOYGYNYCVBZYKYGHGQZXOYOXK
      YPPCGHIMVKULXKYGYPXOVLYOPXTHXNCDGIJVMVNVOVTXPYLXLYMXNXPYLXLXSXNDRZDRZXLHD
      RZXLXPXMYHXOYLYRSZXMXOVPXOYHXMYJVQXMXOVRXKXMYHXOVLYTPXLXSXNCDGIJVSVNWAXPY
      QHXLDXOYQHSZXMXKXOUUAPXNBCDGHIJLMWBVNVQWCXMYSXLSZXOXKXMUUBPXLCDGHIJMWDVNZ
      WEWFXOYMXNSZXMXKXOUUDPXNCDGHIJMWGVNVQWHWIWJUCUOZGQZXMXOXQUUEXLARZUUEXNARZ
      WKRZWLWMUUFXMXOVLZXLXRUUEBRZDRZUUEXSDRZDRZFUEZUULFUEZUUMFUEZWKRZXQUUIWLUU
      JUULGQZUUMGQZUUOUURWLWMZUUFXMUUSXOUUFXMUPZXMUUKGQZUUSUUFXMVRZUUFUVCXMXKYI
      UUFUVCPVDXRUUEBCGILVEVHWEZXKXMUVCUUSPXLUUKCDGIJVFTWNWOZUUFXOUUTXMXOUUFYHU
      UTYJXKUUFYHUUTPUUEXSCDGIJVFTVGWPXKUUSUUTUVAPUULUUMCDFGIJNWQTWNUUJXQYAUUOX
      MXOYEUUFYFWRUUJUUNXTFUUJUULUUEDRZXSDRZUUNXTUUJUUSUUFYHUVHUUNSZUVFUUFXMXOW
      SXOUUFYHXMYJWTXKUUSUUFYHVLUVIPUULUUEXSCDGIJVSVNWAUUJUVGXLXSDUUFXMUVGXLSXO
      UVBUVGXLUUKUUEDRZDRZYSXLUVBXMUVCUUFUVGUVKSZUVDUVEUUFXMVPXKXMUVCUUFVLUVLPX
      LUUKUUECDGIJVSVNWAUVBUVJHXLDUUFUVJHSZXMXKUUFUVMPUUEBCDGHIJLMWBVNWEWCXMUUB
      UUFUUCVQWFWOXAXBXCXDUUJUUGUUPUUHUUQWKUUFXMUUGUUPSXOUVBUUGUUEXRXLBRDRFUEZU
      UPXKUUFXMUUGUVNSPUUEXLABCDFGIJLNOUTTXKUUFXMUVNUUPSPUUEXLBCDFGIJLNXETXFWOU
      UFXOUUHUUQSZXMXKUUFXOUVOPUUEXNABCDFGIJLNOUTTWPXGXHXIXJ $.
  $}

  ${
    imsmet.1 $e |- X = ( BaseSet ` U ) $.
    imsmet.8 $e |- D = ( IndMet ` U ) $.
    $( The induced metric of a normed complex vector space is a metric space.
       Part of Definition 2.2-1 of [Kreyszig] p. 58.  (Contributed by NM,
       4-Dec-2006.)  (Revised by Mario Carneiro, 10-Sep-2015.)
       (New usage is discouraged.) $)
    imsmet $p |- ( U e. NrmCVec -> D e. ( Met ` X ) ) $=
      ( cnv wcel cims cfv cme caddc cmul cop cabs cif wceq fveq2 syl5eq eqid
      cba fveq2d eleq12d cns cpv cnmcv cn0v elimnvu imsmetlem dedth syl5eqel
      cgn ) BFGZABHIZCJIZEULUMUNGULBKLMNMZOZHIZUPTIZJIZGBUOBUPPZUMUQUNUSBUPHQUT
      CURJUTCBTIURDBUPTQRUAUBUQUPUCIZUPUPUDIZVBUKIZUPUEIZURUPUFIZURSVBSVCSVASVE
      SVDSUQSBUGUHUIUJ $.

    $( The induced metric of a normed complex vector space is an extended
       metric space.  (Contributed by Mario Carneiro, 10-Sep-2015.)
       (New usage is discouraged.) $)
    imsxmet $p |- ( U e. NrmCVec -> D e. ( *Met ` X ) ) $=
      ( cnv wcel cme cfv cxmt imsmet metxmet syl ) BFGACHIGACJIGABCDEKACLM $.
  $}

  ${
    cnims.6 $e |- U = <. <. + , x. >. , abs >. $.
    cnims.7 $e |- D = ( abs o. - ) $.
    $( The metric induced on the complex numbers. ~ cnmet proves that it is a
       metric.  (Contributed by Steve Rodriguez, 5-Dec-2006.)  (Revised by NM,
       15-Jan-2008.)  (New usage is discouraged.) $)
    cnims $p |- D = ( IndMet ` U ) $=
      ( cabs cmin ccom cims cfv wcel wceq cnnv cnnvm cnnvnm imsval ax-mp eqtr4i
      cnv eqid ) AEFGZBHIZDBRJUATKBCLUABFEBCMBCNUASOPQ $.
  $}

  ${
    $d r s w x y z C $.  $d r s w x y z G $.  $d r s w x y z J $.
    $d r s w x y z U $.
    vacn.c $e |- C = ( IndMet ` U ) $.
    vacn.j $e |- J = ( MetOpen ` C ) $.
    vacn.g $e |- G = ( +v ` U ) $.
    $( Vector addition is jointly continuous in both arguments.  (Contributed
       by Jeff Hankins, 16-Jun-2009.)  (Revised by Mario Carneiro,
       10-Sep-2015.)  (New usage is discouraged.) $)
    vacn $p |- ( U e. NrmCVec -> G e. ( ( J tX J ) Cn J ) ) $=
      ( vz vw wcel co cfv cv clt wbr wa wral crp cr syl3anc vx vs vy vr cnv ctx
      ccn cba cxp wf wi wrex eqid nvgf c2 cdiv rphalfcl adantl caddc cme imsmet
      simplll syl simplrl adantr simprl metcl simplrr simprr ad2antlr lt2halves
      rpre cnsb cnmcv nvmcl nvtri wceq nvgcl imsdval nvaddsub4 syl122anc fveq2d
      eqtrd oveq12d 3brtr4d readdcld lelttr mpand syld ralrimivva breq2 anbi12d
      cle imbi1d 2ralbidv rspcev syl2anc ralrimiva wb imsxmet txmetcn mpbir2and
      cxmt ) BUEJZCDDUFKDUGKJZBUHLZXFUIXFCUJZUAMZHMZAKZUBMZNOZUCMZIMZAKZXKNOZPZ
      XHXMCKZXIXNCKZAKZUDMZNOZUKZIXFQHXFQZUBRULZUDRQZUCXFQUAXFQZBCXFXFUMZGUNXDY
      FUAUCXFXFXDXHXFJZXMXFJZPZPZYEUDRYLYARJZPZYAUOUPKZRJZXJYONOZXOYONOZPZYBUKZ
      IXFQHXFQZYEYMYPYLYAUQURYNYTHIXFXFYNXIXFJZXNXFJZPZPZYSXJXOUSKZYANOZYBUUEXJ
      SJZXOSJZYASJZYSUUGUKUUEAXFUTLJZYIUUBUUHUUEXDUUKXDYKYMUUDVBZABXFYHEVAVCZYN
      YIUUDXDYIYJYMVDVEZYNUUBUUCVFZXHXIAXFVGTZUUEUUKYJUUCUUIUUMYNYJUUDXDYIYJYMV
      HVEZYNUUBUUCVIZXMXNAXFVGTZYMUUJYLUUDYAVLVJZXJXOYAVKTUUEXTUUFWMOZUUGYBUUEX
      HXIBVMLZKZXMXNUVBKZCKZBVNLZLZUVCUVFLZUVDUVFLZUSKZXTUUFWMUUEXDUVCXFJZUVDXF
      JZUVGUVJWMOUULUUEXDYIUUBUVKUULUUNUUOXHXIBUVBXFYHUVBUMZVOTUUEXDYJUUCUVLUUL
      UUQUURXMXNBUVBXFYHUVMVOTUVCUVDBCUVFXFYHGUVFUMZVPTUUEXTXRXSUVBKZUVFLZUVGUU
      EXDXRXFJZXSXFJZXTUVPVQUULUUEXDYIYJUVQUULUUNUUQXHXMBCXFYHGVRTZUUEXDUUBUUCU
      VRUULUUOUURXIXNBCXFYHGVRTZXRXSABUVBUVFXFYHUVMUVNEVSTUUEUVOUVEUVFUUEXDYIYJ
      UUBUUCUVOUVEVQUULUUNUUQUUOUURXHXMXIXNBCUVBXFYHGUVMVTWAWBWCUUEXJUVHXOUVIUS
      UUEXDYIUUBXJUVHVQUULUUNUUOXHXIABUVBUVFXFYHUVMUVNEVSTUUEXDYJUUCXOUVIVQUULU
      UQUURXMXNABUVBUVFXFYHUVMUVNEVSTWDWEUUEXTSJZUUFSJUUJUVAUUGPYBUKUUEUUKUVQUV
      RUWAUUMUVSUVTXRXSAXFVGTUUEXJXOUUPUUSWFUUTXTUUFYAWGTWHWIWJYDUUAUBYORXKYOVQ
      ZYCYTHIXFXFUWBXQYSYBUWBXLYQXPYRXKYOXJNWKXKYOXONWKWLWNWOWPWQWRWJXDAXFXCLJZ
      UWCUWCXEXGYGPWSABXFYHEWTZUWDUWDUAUCUDUBIHAAACDDDXFXFXFFFFXATXB $.
  $}

  ${
    $d d e x y C $.  $d d e x y J $.  $d d e x y K $.  $d d e x y N $.
    $d d e x y U $.
    nmcvcn.1 $e |- N = ( normCV ` U ) $.
    nmcvcn.2 $e |- C = ( IndMet ` U ) $.
    nmcvcn.j $e |- J = ( MetOpen ` C ) $.
    nmcvcn.k $e |- K = ( topGen ` ran (,) ) $.
    $( The norm of a normed complex vector space is a continuous function.
       (Contributed by NM, 16-May-2007.)  (Proof shortened by Mario Carneiro,
       10-Jan-2014.)  (New usage is discouraged.) $)
    nmcvcn $p |- ( U e. NrmCVec -> N e. ( J Cn K ) ) $=
      ( vx vy vd ve wcel co cfv cr crp eqid wa cnv ccn cba wf clt wbr cabs cmin
      cv ccom cxp cres wi wral wrex nvf simprr cle w3a nvcl anim12d remet metcl
      ex cme mp3an1 syl6 3impib imsmet syl3an1 c1 cneg cns nvabs wceq remetdval
      cpv syl imsdval2 3brtr4d jca31 3expa rpre lelttr expdimp syl2an ralrimdva
      an32s impr breq2 imbi1d ralbidv rspcev syl2anc ralrimivva cxmt wb imsxmet
      rexmet cioo crn ctg cmopn tgioo eqtri metcn sylancl mpbir2and ) BUANZECDU
      BONZBUCPZQEUDZJUIZKUIZAOZLUIZUEUFZXMEPZXNEPZUGUHUJQQUKULZOZMUIZUEUFZUMZKX
      KUNZLRUOZMRUNJXKUNZBEXKXKSZFUPXIYFJMXKRXIXMXKNZYBRNZTTYJXOYBUEUFZYCUMZKXK
      UNZYFXIYIYJUQXIYIYJYMXIYITZYJYLKXKYNXNXKNZTZYJYLYPYAQNZXOQNZTZYAXOURUFZTZ
      YBQNZYLYJXIYIYOUUAXIYIYOUSZYQYRYTXIYIYOYQXIYIYOTXRQNZXSQNZTZYQXIYIUUDYOUU
      EXIYIUUDXMBEXKYHFUTVDXIYOUUEXNBEXKYHFUTVDVAZXTQVEPNUUDUUEYQXTXTSZVBXRXSXT
      QVCVFVGVHXIAXKVEPNYIYOYRABXKYHGVIXMXNAXKVCVJUUCXRXSUHOUGPZXMVKVLXNBVMPZOB
      VQPZOEPYAXOURXMXNUUJBUUKEXKYHUUKSZUUJSZFVNUUCUUFYAUUIVOXIYIYOUUFUUGVHXRXS
      XTUUHVPVRXMXNAUUJBUUKEXKYHUULUUMFGVSVTWAWBYBWCYSUUBYTYLYSUUBTYTYKYCYQYRUU
      BYTYKTYCUMYAXOYBWDWBWEWHWFVDWGWIYEYMLYBRXPYBVOZYDYLKXKUUNXQYKYCXPYBXOUEWJ
      WKWLWMWNWOXIAXKWPPNXTQWPPNXJXLYGTWQABXKYHGWRXTUUHWSJMLKAXTECDXKQHDWTXAXBP
      XTXCPZIXTUUOUUHUUOSXDXEXFXGXH $.
  $}

  ${
    nmcnc.1 $e |- N = ( normCV ` U ) $.
    nmcnc.2 $e |- C = ( IndMet ` U ) $.
    nmcnc.j $e |- J = ( MetOpen ` C ) $.
    nmcnc.k $e |- K = ( TopOpen ` CCfld ) $.
    $( The norm of a normed complex vector space is a continuous function to
       ` CC ` .  (For ` RR ` , see ~ nmcvcn .)  (Contributed by NM,
       12-Aug-2007.)  (New usage is discouraged.) $)
    nmcnc $p |- ( U e. NrmCVec -> N e. ( J Cn K ) ) $=
      ( cnv wcel cr crest co ccn ctop wss cnfldtop cnrest2r ax-mp tgioo2 eqcomi
      cioo crn ctg cfv nmcvcn sseldi ) BJKCDLMNZONZCDONZEDPKUJUKQDIRLCDSTABCUIE
      FGHUCUDUEUFUIDIUAUBUGUH $.
  $}

  ${
    $d r s w x y z C $.  $d r s w x y z J $.  $d s w z T $.  $d r x y U $.
    $d r s w x y z K $.  $d r s w x y z S $.  $d r s w x y z X $.
    smcn.c $e |- C = ( IndMet ` U ) $.
    smcn.j $e |- J = ( MetOpen ` C ) $.
    smcn.s $e |- S = ( .sOLD ` U ) $.
    smcn.k $e |- K = ( TopOpen ` CCfld ) $.
    ${
      smcn.x $e |- X = ( BaseSet ` U ) $.
      smcn.n $e |- N = ( normCV ` U ) $.
      smcn.u $e |- U e. NrmCVec $.
      smcn.t $e |- T = ( 1 / ( 1 + ( ( ( ( N ` y ) +
                         ( abs ` x ) ) + 1 ) / r ) ) ) $.
      $( Lemma for ~ smcn .  (Contributed by Mario Carneiro, 5-May-2014.)
         (Revised by Mario Carneiro, 10-Sep-2015.)
         (New usage is discouraged.) $)
      smcnlem $p |- S e. ( ( K tX J ) Cn J ) $=
        ( co vz vs vw ctx ccn wcel cc cxp wf cv cabs cmin ccom clt wbr wral crp
        wa wi wrex cnv nvsf ax-mp c1 cfv caddc cdiv cr simpr nvcl sylancr abscl
        1rp adantr readdcld cc0 cle nvge0 absge0 addge0d ge0p1rpd rpdivcl sylan
        rpaddcl rpreccld syl5eqel cme a1i simplll simpllr nvscl syl3anc simprll
        imsmet simprlr metcl rpre ad2antlr mettri syl13anc cmul abscld peano2re
        syl rpred remulcld cnsb eqid nvmcl abssubd wceq cnmetdval syl2anc eqtrd
        simprrl eqbrtrrd ltled eqbrtrd lemul1ad mulcomd breqtrd absge0d pncan3d
        subcld rpcnd recnd fveq2d abstrid 1red letrd imsdval cneg neg1cn oveq2d
        oveq1d nvs 3eqtr2d lelttrd breq2 cxmt ltaddrp recgt1d syl5eqbr leadd2dd
        1re mpbid simprrr lemul12ad le2addd imsdval2 mulcl nvdir mulm1d negsubd
        cpv nvsass 3eqtr3d nvmdi oveq12d addassd adddird 3brtr4d rpne0d divrecd
        oveq2i syl6reqr simplr ltp1d addcomd ltdiv23d ralrimivva anbi12d imbi1d
        1cnd expr 2ralbidv rspcev ralrimiva wb cnxmet imsxmet cnfldtopn txmetcn
        rgen2 mp3an mpbir2an ) DHGUDTGUETUFZUGJUHJDUIZAUJZUAUJZUKULUMZTZUBUJZUN
        UOZBUJZUCUJZCTZUWMUNUOZURZUWIUWODTZUWJUWPDTZCTZKUJZUNUOZUSZUCJUPUAUGUPZ
        UBUQUTZKUQUPZBJUPAUGUPZFVAUFZUWHRDFJPNVBVCUXHABUGJUWIUGUFZUWOJUFZURZUXG
        KUQUXMUXCUQUFZURZEUQUFZUWLEUNUOZUWQEUNUOZURZUXDUSZUCJUPUAUGUPZUXGUXOEVD
        VDUWOIVEZUWIUKVEZVFTZVDVFTZUXCVGTZVFTZVGTZUQSUXOUYGUXOVDUQUFUYFUQUFZUYG
        UQUFZVMUXMUYEUQUFUXNUYIUXMUYDUXMUYBUYCUXMUXJUXLUYBVHUFZRUXKUXLVIZUWOFIJ
        PQVJZVKZUXKUYCVHUFZUXLUWIVLVNZVOUXMUYBUYCUYNUYPUXMUXJUXLVPUYBVQUOZRUYLU
        WOFIJPQVRZVKUXKVPUYCVQUOUXLUWIVSVNVTWAUYEUXCWBWCZVDUYFWDVKZWEWFZUXOUXTU
        AUCUGJUXOUWJUGUFZUWPJUFZURZUXSUXDUXOVUDUXSURZURZUXBUWTUWJUWODTZCTZVUGUX
        ACTZVFTZUXCVUFCJWGVEUFZUWTJUFZUXAJUFZUXBVHUFVUKVUFUXJVUKRCFJPLWNVCWHZVU
        FUXJUXKUXLVULUXJVUFRWHZUXKUXLUXNVUEWIZUXKUXLUXNVUEWJZUWIUWODFJPNWKWLZVU
        FUXJVUBVUCVUMVUOUXOVUBVUCUXSWMZUXOVUBVUCUXSWOZUWJUWPDFJPNWKWLZUWTUXACJW
        PWLVUFVUHVUIVUFVUKVULVUGJUFZVUHVHUFVUNVURVUFUXJVUBUXLVVBVUOVUSVUQUWJUWO
        DFJPNWKWLZUWTVUGCJWPWLVUFVUKVVBVUMVUIVHUFVUNVVCVVAVUGUXACJWPWLVOZUXNUXC
        VHUFUXMVUEUXCWQWRZVUFVUKVULVUMVVBUXBVUJVQUOVUNVURVVAVVCUWTUXAVUGCJWSWTV
        UFVUJUYEEXATZUXCVVDVUFUYEEVUFUYDVHUFUYEVHUFVUFUYBUYCVUFUXJUXLUYKRVUQUYM
        VKZVUFUWIVUPXBZVOUYDXCXDZVUFEUXOUXPVUEVUAVNZXEZXFVVEVUFUWIUWJULTZUKVEZU
        YBXATZUWJUKVEZUWOUWPFXGVEZTZIVEZXATZVFTUYBEXATZUYCVDVFTZEXATZVFTZVUJVVF
        VQVUFVVNVVSVVTVWBVUFVVMUYBVUFVVLVUFUWIUWJVUPVUSYDZXBZVVGXFVUFVVOVVRVUFU
        WJVUSXBZVUFUXJVVQJUFZVVRVHUFRVUFUXJUXLVUCVWGVUOVUQVUTUWOUWPFVVPJPVVPXHZ
        XIWLZVVQFIJPQVJVKZXFVUFUYBEVVGVVKXFVUFVWAEVUFUYOVWAVHUFVVHUYCXCXDZVVKXF
        VUFVVNEUYBXATVVTVQVUFVVMEUYBVWEVVKVVGVUFUXJUXLUYQRVUQUYRVKVUFVVMUWJUWIU
        LTZUKVEZEVQVUFUWIUWJVUPVUSXJZVUFVWMEVUFVWLVUFUWJUWIVUSVUPYDZXBZVVKVUFUW
        LVWMEUNVUFUWLVVMVWMVUFUXKVUBUWLVVMXKVUPVUSUWIUWJUWKUWKXHXLXMVWNXNUXOVUD
        UXQUXRXOXPXQZXRXSVUFEUYBVUFEVVJYEZVUFUYBVVGYFZXTYAVUFVVOVWAVVREVWFVWKVW
        JVVKVUFUWJVUSYBVUFUXJVWGVPVVRVQUORVWIVVQFIJPQVRVKVUFVVOUYCVWMVFTZVWAVWF
        VUFUYCVWMVVHVWPVOVWKVUFUWIVWLVFTZUKVEVVOVWTVQVUFVXAUWJUKVUFUWIUWJVUPVUS
        YCYGVUFUWIVWLVUPVWOYHXPVUFVWMVDUYCVWPVUFYIZVVHVUFVWMEVDVWPVVKVXBVWQVUFE
        VDVVKVXBVUFEUYHVDUNSVUFVDUYGUNUOZUYHVDUNUOVUFVDVHUFUYIVXCUUEUXOUYIVUEUY
        SVNZVDUYFUUAVKVUFUYGUXOUYJVUEUYTVNZUUBUUFUUCXQYJUUDYJVUFVVREVWJVVKVUFUW
        QVVREUNVUFUXJUXLVUCUWQVVRXKVUOVUQVUTUWOUWPCFVVPIJPVWHQLYKWLUXOVUDUXQUXR
        UUGXPXQUUHUUIVUFVUHVVNVUIVVSVFVUFVUHUWTVDYLZVUGDTZFUUOVEZTZIVEZVVLUWODT
        ZIVEZVVNVUFUXJVULVVBVUHVXJXKVUOVURVVCUWTVUGCDFVXHIJPVXHXHZNQLUUJWLVUFVX
        KVXIIVUFUWIVXFUWJXATZVFTZUWODTZUWTVXNUWODTZVXHTZVXKVXIVUFUXJUXKVXNUGUFZ
        UXLVXPVXRXKVUOVUPVUFVXFUGUFZVUBVXSYMVUSVXFUWJUUKVKVUQUWIVXNUWODFVXHJPVX
        MNUULWTVUFVXOVVLUWODVUFVXOUWIUWJYLZVFTVVLVUFVXNVYAUWIVFVUFUWJVUSUUMYNVU
        FUWIUWJVUPVUSUUNXNYOVUFVXQVXGUWTVXHVUFUXJVXTVUBUXLVXQVXGXKVUOVXTVUFYMWH
        VUSVUQVXFUWJUWODFJPNUUPWTYNUUQYGVUFUXJVVLUGUFUXLVXLVVNXKVUOVWDVUQVVLUWO
        DFIJPNQYPWLYQVUFVUIVUGUXAVVPTZIVEZUWJVVQDTZIVEZVVSVUFUXJVVBVUMVUIVYCXKV
        UOVVCVVAVUGUXACFVVPIJPVWHQLYKWLVUFVYDVYBIVUFUXJVUBUXLVUCVYDVYBXKVUOVUSV
        UQVUTUWJUWOUWPDFVVPJPVWHNUURWTYGVUFUXJVUBVWGVYEVVSXKVUOVUSVWIUWJVVQDFIJ
        PNQYPWLYQUUSVUFVVFUYBVWAVFTZEXATVWCVUFUYEVYFEXAVUFUYBUYCVDVWSVUFUYCVVHY
        FVUFUVNZUUTYOVUFUYBVWAEVWSVUFVWAVWKYFVWRUVAXNUVBVUFVVFUYEUYGVGTZUXCUNVU
        FVYHUYEUYHXATVVFVUFUYEUYGVUFUYEVVIYFVUFUYGVXEYEVUFUYGVXEUVCUVDEUYHUYEXA
        SUVEUVFVUFUYEUXCUYGVVIUXMUXNVUEUVGVXEVUFUYFUYFVDVFTUYGUNVUFUYFVUFUYFVXD
        XEUVHVUFUYFVDVUFUYFVXDYEVYGUVIYAUVJXRYRYRUVOUVKUXFUYAUBEUQUWMEXKZUXEUXT
        UAUCUGJVYIUWSUXSUXDVYIUWNUXQUWRUXRUWMEUWLUNYSUWMEUWQUNYSUVLUVMUVPUVQXMU
        VRUWDUWKUGYTVEUFCJYTVEUFZVYJUWGUWHUXIURUVSUVTUXJVYJRCFJPLUWAVCZVYKABKUB
        UCUAUWKCCDHGGUGJJHOUWBMMUWCUWEUWF $.
    $}

    $( Scalar multiplication is jointly continuous in both arguments.
       (Contributed by NM, 16-Jun-2009.)  (Revised by Mario Carneiro,
       5-May-2014.)  (New usage is discouraged.) $)
    smcn $p |- ( U e. NrmCVec -> S e. ( ( K tX J ) Cn J ) ) $=
      ( wcel ctx co ccn caddc cns cfv cims cmopn syl5eq eqid vx vy cnv cmul cop
      vr cabs cif wceq fveq2 fveq2d oveq2d oveq12d eleq12d c1 cv cnmcv cdiv cba
      elimnvu smcnlem dedth ) CUCJZBEDKLZDMLZJVCCNUDUEUGUEZUHZOPZEVGQPZRPZKLZVJ
      MLZJCVFCVGUIZBVHVEVLVMBCOPVHHCVGOUJSVMVDVKDVJMVMDVJEKVMDARPVJGVMAVIRVMACQ
      PVIFCVGQUJSUKSZULVNUMUNUAUBVIVHUOUOUBUPVGUQPZPUAUPUGPNLUONLUFUPURLNLURLZV
      GVJEVOVGUSPZUFVITVJTVHTIVQTVOTCUTVPTVAVB $.
  $}

  ${
    $d x y J $.  $d x y M $.  $d x y U $.
    vmcn.c $e |- C = ( IndMet ` U ) $.
    vmcn.j $e |- J = ( MetOpen ` C ) $.
    vmcn.m $e |- M = ( -v ` U ) $.
    $( Vector subtraction is jointly continuous in both arguments.
       (Contributed by Mario Carneiro, 6-May-2014.)
       (New usage is discouraged.) $)
    vmcn $p |- ( U e. NrmCVec -> M e. ( ( J tX J ) Cn J ) ) $=
      ( vx vy cnv wcel cba cfv cv co eqid ctopon cc a1i cnmpt22f cneg cns cmpt2
      cpv ctx ccn nvmfval cxmt imsxmet mopntopon syl cnmpt1st ccnfld cnfldtopon
      c1 ctopn neg1cn cnmpt2c cnmpt2nd smcn vacn eqeltrd ) BJKZDHIBLMZVDHNZUOUA
      ZINZBUBMZOZBUDMZOUCCCUEOCUFOHIVHBVJDVDVDPZVJPZVHPZGUGVCHIVEVIVJCCCCCVDVDV
      CAVDUHMKCVDQMKABVDVKEUIACVDFUJUKZVNVCHICCVDVDVNVNULVCHIVFVGVHCCUMUPMZCCVD
      VDVNVNVCHIVFCCVOVDVDRVNVNVORQMKVCVOVOPZUNSVFRKVCUQSURVCHICCVDVDVNVNUSAVHB
      CVOEFVMVPUTTABVJCEFVLVATVB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Inner product
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c .iOLD $.

  $( Extend class notation with the class inner product functions. $)
  cdip $a class .iOLD $.

  ${
    $d k u x y $.
    $( Define a function that maps a normed complex vector space to its inner
       product operation in case its norm satisfies the parallelogram identity
       (otherwise the operation is still defined, but not meaningful).  Based
       on Exercise 4(a) of [ReedSimon] p. 63 and Theorem 6.44 of [Ponnusamy]
       p. 361.  Vector addition is ` ( 1st `` w ) ` , the scalar product is
       ` ( 2nd `` w ) ` , and the norm is ` n ` .  (Contributed by NM,
       10-Apr-2007.)  (New usage is discouraged.) $)
    df-dip $a |- .iOLD = ( u e. NrmCVec |->
      ( x e. ( BaseSet ` u ) , y e. ( BaseSet ` u ) |->
    ( sum_ k e. ( 1 ... 4 ) ( ( _i ^ k ) x. ( ( ( normCV ` u ) ` ( x ( +v ` u )
        ( ( _i ^ k ) ( .sOLD ` u ) y ) ) ) ^ 2 ) ) / 4 ) ) ) $.

$(
    df-dip $a |- .iOLD = { <. x , y >. | ( x e. NrmCVec /\ E. g E. s E. n
            ( x = <. <. g , s >. , n >. /\ y = { <. <. a , b >. , c >. |
            ( ( a e. dom n /\ b e. dom n ) /\ c = ( sum_ k e. ( 1 ... 4 )
             ( ( _i ^ k ) x. ( ( n ` ( a g ( ( _i ^ k ) s b ) ) ) ^ 2 ) )
              / 4 ) ) } ) ) } $.

    df-dip $a |- .iOLD = { <. x , y >. | ( x e. NrmCVec /\ E. g E. s E. n
            ( x = <. <. g , s >. , n >. /\ y = { <. <. a , b >. , c >. |
            ( ( a e. dom n /\ b e. dom n ) /\ c =
                ( ( ( ( ( n ` ( a g b ) ) ^ 2 ) +
                ( ( n ` ( a g ( -u 1 s b ) ) ) ^ 2 ) ) +
                ( _i x. ( ( ( n ` ( a g ( _i s b ) ) ) ^ 2 ) +
                ( ( n ` ( a g ( -u _i s b ) ) ) ^ 2 ) ) ) ) / 4 ) ) } ) ) } $.
$)
  $}

  ${
    $d k u x y G $.  $d k u x y N $.  $d k u x y S $.  $d k u x y U $.
    $d k x y A $.  $d k x y B $.  $d k u x y X $.
    dipfval.1 $e |- X = ( BaseSet ` U ) $.
    dipfval.2 $e |- G = ( +v ` U ) $.
    dipfval.4 $e |- S = ( .sOLD ` U ) $.
    dipfval.6 $e |- N = ( normCV ` U ) $.
    dipfval.7 $e |- P = ( .iOLD ` U ) $.
    $( The inner product function on a normed complex vector space.  The
       definition is meaningful for vector spaces that are also inner product
       spaces, i.e. satisfy the parallelogram law.  (Contributed by NM,
       10-Apr-2007.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    dipfval $p |- ( U e. NrmCVec -> P = ( x e. X , y e. X |->
      ( sum_ k e. ( 1 ... 4 ) ( ( _i ^ k ) x.
        ( ( N ` ( x G ( ( _i ^ k ) S y ) ) ) ^ 2 ) ) / 4 ) ) ) $=
      ( cfv c4 co cv cexp cba vu cnv wcel cdip c1 cfz ci c2 cmul csu cdiv cmpt2
      cns cpv cnmcv fveq2 syl6eqr eqidd oveqd oveq123d fveq12d oveq1d sumeq2sdv
      wceq oveq2d mpt2eq123dv df-dip cvv fvex eqeltri mpt2ex fvmpt syl5eq ) EUB
      UCCEUDOABIIUEPUFQZUGFRSQZARZVOBRZDQZGQZHOZUHSQZUIQZFUJZPUKQZULZNUAEABUARZ
      TOZWGVNVOVPVOVQWFUMOZQZWFUNOZQZWFUOOZOZUHSQZUIQZFUJZPUKQZULWEUBUDWFEVDZAB
      WGWGWQIIWDWRWGETOZIWFETUPJUQZWTWRWPWCPUKWRVNWOWBFWRWNWAVOUIWRWMVTUHSWRWKV
      SWLHWRWLEUOOHWFEUOUPMUQWRVPVPWIVRWJGWRWJEUNOGWFEUNUPKUQWRVPURWRWHDVOVQWRW
      HEUMODWFEUMUPLUQUSUTVAVBVEVCVBVFABUAFVGABIIWDIWSVHJETVIVJZXAVKVLVM $.

    $( Value of the inner product.  The definition is meaningful for normed
       complex vector spaces that are also inner product spaces, i.e. satisfy
       the parallelogram law, although for convenience we define it for any
       normed complex vector space.  The vector (group) addition operation is
       ` G ` , the scalar product is ` S ` , the norm is ` N ` , and the set of
       vectors is ` X ` .  Equation 6.45 of [Ponnusamy] p. 361.  (Contributed
       by NM, 31-Jan-2007.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    ipval $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) -> ( A P B ) =
                ( sum_ k e. ( 1 ... 4 ) ( ( _i ^ k ) x. ( ( N ` ( A G
                    ( ( _i ^ k ) S B ) ) ) ^ 2 ) ) / 4 ) ) $=
      ( co c4 cexp c2 cmul cdiv vx vy cnv wcel c1 cfz ci cv cfv wceq wa dipfval
      cmpt2 oveqd oveq1 fveq2d oveq1d oveq2d sumeq2sdv oveq2 eqid ovex sylan9eq
      csu ovmpt2 3impb ) EUCUDZAIUDZBIUDZABCOZUEPUFOZUGFUHQOZAVLBDOZGOZHUIZRQOZ
      SOZFVDZPTOZUJVGVHVIUKVJABUAUBIIVKVLUAUHZVLUBUHZDOZGOZHUIZRQOZSOZFVDZPTOZU
      MZOVSVGCWIABUAUBCDEFGHIJKLMNULUNUAUBABIIWHVSWIVKVLAWBGOZHUIZRQOZSOZFVDZPT
      OVTAUJZWGWNPTWOVKWFWMFWOWEWLVLSWOWDWKRQWOWCWJHVTAWBGUOUPUQURUSUQWABUJZWNV
      RPTWPVKWMVQFWPWLVPVLSWPWKVORQWPWJVNHWPWBVMAGWABVLDUTURUPUQURUSUQWIVAVRPTV
      BVEVCVF $.

    $( Lemma for ~ ipval3 .  (Contributed by NM, 1-Feb-2007.)
       (New usage is discouraged.) $)
    ipval2lem2 $p |- ( ( ( U e. NrmCVec /\ A e. X /\ B e. X ) /\ C e. CC ) ->
               ( ( N ` ( A G ( C S B ) ) ) ^ 2 ) e. RR ) $=
      ( cnv wcel w3a cc wa co cfv cr simpl1 simpl2 nvscl 3expa 3adantl2 syl3anc
      3com23 nvgcl nvcl syl2anc resqcld ) FOPZAIPZBIPZQCRPZSZACBETZGTZHUAZURUNU
      TIPZVAUBPUNUOUPUQUCZURUNUOUSIPZVBVCUNUOUPUQUDUNUPUQVDUOUNUPUQVDUNUQUPVDCB
      EFIJLUEUIUFUGAUSFGIJKUJUHUTFHIJMUKULUM $.

    $( Lemma for ~ ipval3 .  (Contributed by NM, 1-Feb-2007.)
       (New usage is discouraged.) $)
    ipval2lem3 $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
               ( ( N ` ( A G B ) ) ^ 2 ) e. RR ) $=
      ( wcel c1 co cfv c2 cexp cr cnv w3a wa nvsid oveq2d fveq2d oveq1d 3adant2
      wceq cc ax-1cn ipval2lem2 mpan2 eqeltrrd ) EUANZAHNZBHNZUBZAOBDPZFPZGQZRS
      PZABFPZGQZRSPZTUOUQVBVEUIUPUOUQUCZVAVDRSVFUTVCGVFUSBAFBDEHIKUDUEUFUGUHURO
      UJNVBTNUKABOCDEFGHIJKLMULUMUN $.

    $( Lemma for ~ ipval3 .  (Contributed by NM, 1-Feb-2007.)
       (New usage is discouraged.) $)
    ipval2lem4 $p |- ( ( ( U e. NrmCVec /\ A e. X /\ B e. X ) /\ C e. CC ) ->
               ( ( N ` ( A G ( C S B ) ) ) ^ 2 ) e. CC ) $=
      ( cnv wcel w3a cc wa co cfv c2 cexp ipval2lem2 recnd ) FOPAIPBIPQCRPSACBE
      TGTHUAUBUCTABCDEFGHIJKLMNUDUE $.

    $( Expansion of the inner product value ~ ipval .  (Contributed by NM,
       31-Jan-2007.)  (Revised by Mario Carneiro, 5-May-2014.)
       (New usage is discouraged.) $)
    ipval2 $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) -> ( A P B )
               = ( ( ( ( ( N ` ( A G B ) ) ^ 2 ) -
               ( ( N ` ( A G ( -u 1 S B ) ) ) ^ 2 ) ) +
               ( _i x. ( ( ( N ` ( A G ( _i S B ) ) ) ^ 2 ) -
               ( ( N ` ( A G ( -u _i S B ) ) ) ^ 2 ) ) ) ) / 4 ) ) $=
      ( wcel co c1 ci cexp c2 cmul vk cnv w3a c4 cfz cv cfv csu cdiv cneg caddc
      cmin ipval cc ax-icn ipval2lem4 mpan2 mulcl sylancr neg1cn subcld negsubd
      negicn mulm1d oveq2d mulneg1 oveq12d mp3an1 syl2anc oveq1d sub32d 3eqtr4d
      eqtrd wceq subdi wa nvsid fveq2d 3adant2 ipval2lem3 recnd mulid2d cn nnuz
      c3 df-4 oveq2 i4 syl6eq cn0 nnnn0 expcl adantl sylan2 mulcld df-3 i3 df-2
      i2 cz 1z exp1 ax-mp fsum1 1nn jctil eqidd fsump1i simprd subadd23d eqtr4d
      addcomd ) EUBNZAHNZBHNZUCZABCOPUDUEOQUAUFZROZAXRBDOZFOZGUGZSROZTOZUAUHZUD
      UIOABFOZGUGZSROZAPUJZBDOZFOZGUGZSROZULOZQAQBDOZFOZGUGZSROZAQUJZBDOZFOZGUG
      ZSROZULOZTOZUKOZUDUIOABCDEUAFGHIJKLMUMXPYDUUEUDUIXPQYQTOZYHYLTOZUKOZYRUUB
      TOZUKOZPAPBDOZFOZGUGZSROZTOZUKOZUUDYLULOZYGUKOZYDUUEXPUUJUUQUUOYGUKXPUUFY
      LULOZQUUBTOZUJZUKOUUSUUTULOZUUJUUQXPUUSUUTXPUUFYLXPQUNNZYQUNNZUUFUNNZUOXP
      UVCUVDUOABQCDEFGHIJKLMUPUQZQYQURUSZXPYHUNNYLUNNUTABYHCDEFGHIJKLMUPUQZVAXP
      UVCUUBUNNZUUTUNNUOXPYRUNNUVIVCABYRCDEFGHIJKLMUPUQZQUUBURUSZVBXPUUHUUSUUIU
      VAUKXPUUHUUFYLUJZUKOUUSXPUUGUVLUUFUKXPYLUVHVDVEXPUUFYLUVGUVHVBVMXPUVCUVIU
      UIUVAVNUOUVJQUUBVFUSVGXPUUQUUFUUTULOZYLULOUVBXPUUDUVMYLULXPUVDUVIUUDUVMVN
      ZUVFUVJUVCUVDUVIUVNUOQYQUUBVOVHVIVJXPUUFUUTYLUVGUVKUVHVKVMVLXPUUOPYGTOYGX
      PUUNYGPTXMXOUUNYGVNXNXMXOVPZUUMYFSRUVOUULYEGUVOUUKBAFBDEHIKVQVEVRVJVSVEXP
      YGXPYGABCDEFGHIJKLMVTWAZWBVMVGXPUDWCNYDUUPVNXPYCUUOUUJUUPUAWEPUDWCWDWFXQU
      DVNZXRPYBUUNTUVQXRQUDROPXQUDQRWGWHWIZUVQYAUUMSRUVQXTUULGUVQXSUUKAFUVQXRPB
      DUVRVJVEVRVJVGXPXQWCNZVPXRYBUVSXRUNNZXPUVSUVCXQWJNUVTUOXQWKQXQWLUSZWMUVSX
      PUVTYBUNNUWAABXRCDEFGHIJKLMUPWNWOZXPYCUUIUUHUUJUASPWEWCWDWPXQWEVNZXRYRYBU
      UBTUWCXRQWEROYRXQWEQRWGWQWIZUWCYAUUASRUWCXTYTGUWCXSYSAFUWCXRYRBDUWDVJVEVR
      VJVGUWBXPYCUUGUUFUUHUAPPSWCWDWRXQSVNZXRYHYBYLTUWEXRQSROYHXQSQRWGWSWIZUWEY
      AYKSRUWEXTYJGUWEXSYIAFUWEXRYHBDUWFVJVEVRVJVGUWBXPPPUEOYCUAUHUUFVNZPWCNXPP
      WTNUVEUWGXAUVGYCUUFUAPXQPVNZXRQYBYQTUWHXRQPROZQXQPQRWGUVCUWIQVNUOQXBXCWIZ
      UWHYAYPSRUWHXTYOGUWHXSYNAFUWHXRQBDUWJVJVEVRVJVGXDUSXEXFXPUUHXGXHXPUUJXGXH
      XPUUPXGXHXIXPUUEUUDYMUKOUURXPYMUUDXPYGYLUVPUVHVAXPUVCUUCUNNUUDUNNUOXPYQUU
      BUVFUVJVAQUUCURUSZXLXPUUDYLYGUWKUVHUVPXJXKVLVJVM $.

    $( Four times the inner product value ~ ipval3 , useful for simplifying
       certain proofs.  (Contributed by NM, 10-Apr-2007.)
       (New usage is discouraged.) $)
    4ipval2 $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
        ( 4 x. ( A P B ) ) = ( ( ( ( N ` ( A G B ) ) ^ 2 ) -
               ( ( N ` ( A G ( -u 1 S B ) ) ) ^ 2 ) ) +
               ( _i x. ( ( ( N ` ( A G ( _i S B ) ) ) ^ 2 ) -
               ( ( N ` ( A G ( -u _i S B ) ) ) ^ 2 ) ) ) ) ) $=
      ( wcel c4 co cmul cfv ci cc cnv w3a c2 cexp cneg cmin caddc ipval2 oveq2d
      c1 cdiv wceq cr simp1 nvgcl nvcl syl2anc recnd sqcld neg1cn nvscl 3adant2
      mp3an2 syld3an3 subcld ax-icn negicn mulcl sylancr addcld cc0 wne divcan2
      4cn 4ne0 mp3an23 syl eqtrd ) EUANZAHNZBHNZUBZOABCPZQPOABFPZGRZUCUDPZAUJUE
      ZBDPZFPZGRZUCUDPZUFPZSASBDPZFPZGRZUCUDPZASUEZBDPZFPZGRZUCUDPZUFPZQPZUGPZO
      UKPZQPZXDWBWCXEOQABCDEFGHIJKLMUHUIWBXDTNZXFXDULZWBWLXCWBWFWKWBWEWBWEWBVSW
      DHNWEUMNVSVTWAUNZABEFHIJUOWDEGHILUPUQURUSWBWJWBWJWBVSWIHNZWJUMNXIVSVTWAWH
      HNZXJVSWAXKVTVSWGTNWAXKUTWGBDEHIKVAVCVBAWHEFHIJUOVDWIEGHILUPUQURUSVEWBSTN
      ZXBTNXCTNVFWBWPXAWBWOWBWOWBVSWNHNZWOUMNXIVSVTWAWMHNZXMVSWAXNVTVSXLWAXNVFS
      BDEHIKVAVCVBAWMEFHIJUOVDWNEGHILUPUQURUSWBWTWBWTWBVSWSHNZWTUMNXIVSVTWAWRHN
      ZXOVSWAXPVTVSWQTNWAXPVGWQBDEHIKVAVCVBAWREFHIJUOVDWSEGHILUPUQURUSVESXBVHVI
      VJXGOTNOVKVLXHVNVOXDOVMVPVQVR $.

    ${
      ipval3.3 $e |- M = ( -v ` U ) $.
      $( Expansion of the inner product value ~ ipval .  (Contributed by NM,
         17-Nov-2007.)  (New usage is discouraged.) $)
      ipval3 $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) -> ( A P B )
               = ( ( ( ( ( N ` ( A G B ) ) ^ 2 ) -
               ( ( N ` ( A M B ) ) ^ 2 ) ) +
               ( _i x. ( ( ( N ` ( A G ( _i S B ) ) ) ^ 2 ) -
               ( ( N ` ( A M ( _i S B ) ) ) ^ 2 ) ) ) ) / 4 ) ) $=
        ( wcel co c2 cexp ci cnv w3a cfv c1 cneg cmin cmul caddc c4 cdiv ipval2
        nvmval fveq2d oveq1d oveq2d wceq cc ax-icn nvscl mp3an2 syld3an3 mulm1i
        3adant2 wa oveq1i neg1cn nvsass mp3anr1 mpanr1 syl5reqr oveq12d eqtr4d
        eqtrd ) EUAPZAIPZBIPZUBZABCQABFQHUCRSQZAUDUEZBDQFQZHUCZRSQZUFQZTATBDQZF
        QHUCRSQZATUEZBDQZFQZHUCZRSQZUFQZUGQZUHQZUIUJQVRABGQZHUCZRSQZUFQZTWEAWDG
        QZHUCZRSQZUFQZUGQZUHQZUIUJQABCDEFHIJKLMNUKVQXCWMUIUJVQWQWCXBWLUHVQWPWBV
        RUFVQWOWARSVQWNVTHABDEFGIJKLOULUMUNUOVQXAWKTUGVQWTWJWEUFVQWSWIRSVQWRWHH
        VQWRAVSWDDQZFQZWHVNVOVPWDIPZWRXEUPVNVPXFVOVNTUQPZVPXFURTBDEIJLUSUTVCAWD
        DEFGIJKLOULVAVQXDWGAFVNVPXDWGUPVOVNVPVDWGVSTUGQZBDQZXDXHWFBDTURVBVEVNXG
        VPXIXDUPZURVNVSUQPXGVPXJVFVSTBDEIJLVGVHVIVJVCUOVMUMUNUOUOVKUNVL $.
    $}
  $}

  ${
    ipid.1 $e |- X = ( BaseSet ` U ) $.
    ipid.6 $e |- N = ( normCV ` U ) $.
    ipid.7 $e |- P = ( .iOLD ` U ) $.
    $( The inner product of a vector with itself is the square of the vector's
       norm.  Equation I4 of [Ponnusamy] p. 362.  (Contributed by NM,
       1-Feb-2007.)  (New usage is discouraged.) $)
    ipidsq $p |- ( ( U e. NrmCVec /\ A e. X ) ->
                ( A P A ) = ( ( N ` A ) ^ 2 ) ) $=
      ( wcel co cfv c2 cexp c1 ci cmul caddc wceq cc0 cc cnv wa cpv cneg cns c4
      cmin cdiv eqid ipval2 3anidm23 nv2 fveq2d cr cle wbr pm3.2i nvsge0 mp3an2
      2re 0le2 eqtrd oveq1d nvcl recnd cn0 2cn mulexp mp3an13 syl oveq1i syl6eq
      2nn0 sq2 cn0v nvrinv adantr sq0id oveq12d 4cn sqcld mulcl sylancr subid1d
      nvz0 csqrt 1re neg1rr absreim mp2an ax-icn ax-1cn mulneg2i mulid1i negeqi
      eqtri oveq2i fveq2i sqneg ax-mp 3eqtr3i 3eqtr2i negicn addcli nvs 3eqtr4a
      cabs nvdir mp3anr1 mpanr1 nvsid 3eqtr3d oveq2d w3a ipval2lem4 mpan2 it0e0
      subidd addid1d eqtr2d wne 4ne0 divcan3 mp3an23 3eqtr2d ) CUAIZAEIZUBZAABJ
      ZAACUCKZJZDKZLMJZANUDZACUEKZJYJJZDKZLMJZUGJZOAOAYOJZYJJZDKZLMJZAOUDZAYOJZ
      YJJZDKZLMJZUGJZPJZQJZUFUHJZUFADKZLMJZPJZUFUHJZUUNYFYGYIUULRAABYOCYJDEFYJU
      IZYOUIZGHUJUKYHUUOUUKUFUHYHUUKUUOSQJUUOYHYSUUOUUJSQYHYSUUOSUGJUUOYHYMUUOY
      RSUGYHYMLUUMPJZLMJZUUOYHYLUUSLMYHYLLAYOJZDKZUUSYHYKUVADAYOCYJEFUUQUURULUM
      YFLUNIZSLUOUPZUBYGUVBUUSRUVCUVDUTVAUQLAYOCDEFUURGURUSVBVCYHUUTLLMJZUUNPJZ
      UUOYHUUMTIZUUTUVFRZYHUUMACDEFGVDVEZLTIUVGLVFIUVHVGVMLUUMLVHVIVJUVEUFUUNPV
      NVKVLVBYHYQYHYQCVOKZDKZSYHYPUVJDAYOCYJEUVJFUUQUURUVJUIZVPUMYFUVKSRYGCDUVJ
      UVLGWEVQVBVRVSYHUUOYHUFTIZUUNTIZUUOTIVTYHUUMUVIWAZUFUUNWBWCZWDVBYHUUJOSPJ
      SYHUUISOPYHUUIUUCUUCUGJSYHUUHUUCUUCUGYHUUGUUBLMYHNUUDQJZAYOJZDKZNOQJZAYOJ
      ZDKZUUGUUBYHUVQXGKZUUMPJZUVTXGKZUUMPJZUVSUWBUWCUWEUUMPUWCNLMJZUWGQJZWFKZN
      ONPJZQJZXGKZUWENOYNPJZQJZXGKZUWGYNLMJZQJZWFKZUWCUWINUNIZYNUNIUWOUWRRWGWHN
      YNWIWJUWNUVQXGUWMUUDNQUWMUWJUDUUDONWKWLWMUWJOOWKWNZWOWPWQWRUWQUWHWFUWPUWG
      UWGQNTIZUWPUWGRWLNWSWTWQWRXAUWSUWSUWLUWIRWGWGNNWIWJUWKUVTXGUWJONQUWTWQWRX
      BVKYFUVQTIYGUVSUWDRNUUDWLXCXDUVQAYOCDEFUURGXEUSYFUVTTIYGUWBUWFRNOWLWKXDUV
      TAYOCDEFUURGXEUSXFYHUVRUUFDYHUVRNAYOJZUUEYJJZUUFYFUUDTIZYGUVRUXCRZXCYFUXA
      UXDYGUXEWLNUUDAYOCYJEFUUQUURXHXIXJYHUXBAUUEYJAYOCEFUURXKZVCVBUMYHUWAUUADY
      HUWAUXBYTYJJZUUAYFOTIZYGUWAUXGRZWKYFUXAUXHYGUXIWLNOAYOCYJEFUUQUURXHXIXJYH
      UXBAYTYJUXFVCVBUMXLVCXMYHUUCYFYGUUCTIZYFYGYGXNUXHUXJWKAAOBYOCYJDEFUUQUURG
      HXOXPUKXRVBXMXQVLVSYHUUOUVPXSXTVCYHUVNUUPUUNRZUVOUVNUVMUFSYAUXKVTYBUUNUFY
      CYDVJYE $.

    $( Norm expressed in terms of inner product.  (Contributed by NM,
       11-Sep-2007.)  (New usage is discouraged.) $)
    ipnm $p |- ( ( U e. NrmCVec /\ A e. X ) ->
                ( N ` A ) = ( sqrt ` ( A P A ) ) ) $=
      ( cnv wcel wa co csqrt cfv c2 cexp ipidsq fveq2d nvcl nvge0 sqrtsqd
      eqtr2d ) CIJAEJKZAABLZMNADNZOPLZMNUEUCUDUFMABCDEFGHQRUCUEACDEFGSACDEFGTUA
      UB $.
  $}

  ${
    $d k A $.  $d k B $.  $d k x y U $.  $d k x y X $.
    ipcl.1 $e |- X = ( BaseSet ` U ) $.
    ipcl.7 $e |- P = ( .iOLD ` U ) $.
    $( An inner product is a complex number.  (Contributed by NM, 1-Feb-2007.)
       (Revised by Mario Carneiro, 5-May-2014.)  (New usage is discouraged.) $)
    dipcl $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
                ( A P B ) e. CC ) $=
      ( vk cnv wcel w3a co c1 c4 cfz ci cexp cfv cc eqid cns cpv cnmcv cmul csu
      cv c2 cdiv ipval fzfid cn0 ax-icn elfznn nnnn0d sylancr adantl ipval2lem4
      wa expcl sylan2 mulcld fsumcl cc0 wne 4cn 4ne0 divcl mp3an23 syl eqeltrd
      ) DIJAEJBEJKZABCLMNOLZPHUFZQLZAVNBDUARZLDUBRZLDUCRZRUGQLZUDLZHUEZNUHLZSAB
      CVODHVPVQEFVPTZVOTZVQTZGUIVKVTSJZWASJZVKVLVSHVKMNUJVKVMVLJZURVNVRWGVNSJZV
      KWGPSJVMUKJWHULWGVMVMNUMUNPVMUSUOZUPWGVKWHVRSJWIABVNCVODVPVQEFWBWCWDGUQUT
      VAVBWENSJNVCVDWFVEVFVTNVGVHVIVJ $.

    $( Mapping for the inner product operation.  (Contributed by NM,
       28-Jan-2008.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    ipf $p |- ( U e. NrmCVec -> P : ( X X. X ) --> CC ) $=
      ( vx vy vk cnv wcel cxp cc wf c4 co cv cexp cfv wral eqid c1 cfz ci cnmcv
      cns cpv c2 cmul csu cmpt2 w3a ipval dipcl eqeltrrd 3expib ralrimivv fmpt2
      cdiv sylib dipfval feq1d mpbird ) BIJZCCKZLAMVDLFGCCUANUBOUCHPQOZFPZVEGPZ
      BUERZOBUFRZOBUDRZRUGQOUHOHUINUROZUJZMZVCVKLJZGCSFCSVMVCVNFGCCVCVFCJZVGCJZ
      VNVCVOVPUKVFVGAOVKLVFVGAVHBHVIVJCDVITZVHTZVJTZEULVFVGABCDEUMUNUOUPFGCCVKL
      VLVLTUQUSVCVDLAVLFGAVHBHVIVJCDVQVRVSEUTVAVB $.

    $( The complex conjugate of an inner product reverses its arguments.
       Equation I1 of [Ponnusamy] p. 362.  (Contributed by NM, 1-Feb-2007.)
       (New usage is discouraged.) $)
    dipcj $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
               ( * ` ( A P B ) ) = ( B P A ) ) $=
      ( wcel co cfv c2 cexp cmin ci c4 cdiv wceq cc mpan2 cr cnv w3a ccj cpv c1
      cnmcv cneg cns cmul caddc eqid ipval2 fveq2d 3com23 ipval2lem3 ipval2lem4
      recnd neg1cn subcld ax-icn negicn mulcl sylancr addcld cc0 wne 4ne0 cjdiv
      4cn mp3an23 syl 4re cjre ax-mp oveq2i ipval2lem2 resubcld syl2anc submul2
      cjreim mp3an2 nvcom oveq1d oveq12d negsubdi2d eqcomd oveq2d 3eqtrd syl5eq
      nvdif nvpi eqtrd eqtr4d ) DUAHZAEHZBEHZUBZABCIZUCJABDUDJZIZDUFJZJZKLIZAUE
      UGZBDUHJZIWSIXAJZKLIZMIZNANBXEIWSIXAJZKLIZANUGZBXEIWSIXAJZKLIZMIZUIIZUJIZ
      OPIZUCJZBACIZWQWRXQUCABCXEDWSXAEFWSUKZXEUKZXAUKZGULUMWQXSBAWSIZXAJZKLIZBX
      DAXEIWSIXAJZKLIZMIZNBNAXEIWSIXAJZKLIZBXKAXEIWSIXAJZKLIZMIZUIIZUJIZOPIZXRW
      NWPWOXSYPQBACXEDWSXAEFXTYAYBGULUNWQXRXPUCJZOUCJZPIZYPWQXPRHZXRYSQZWQXHXOW
      QXCXGWQXCABCXEDWSXAEFXTYAYBGUOZUQWQXDRHZXGRHURABXDCXEDWSXAEFXTYAYBGUPSUSZ
      WQNRHZXNRHZXORHUTWQXJXMWQUUEXJRHUTABNCXEDWSXAEFXTYAYBGUPSZWQXKRHZXMRHVAAB
      XKCXEDWSXAEFXTYAYBGUPSZUSZNXNVBVCVDYTORHOVEVFUUAVIVGXPOVHVJVKWQYSYQOPIYPY
      ROYQPOTHYROQVLOVMVNVOWQYQYOOPWQYQXHXOMIZXHNXNUGZUIIZUJIZYOWQXHTHXNTHYQUUK
      QWQXCXGUUBWQUUCXGTHURABXDCXEDWSXAEFXTYAYBGVPSVQWQXJXMWQUUEXJTHUTABNCXEDWS
      XAEFXTYAYBGVPSWQUUHXMTHVAABXKCXEDWSXAEFXTYAYBGVPSVQXHXNVTVRWQXHRHZUUFUUKU
      UNQZUUDUUJUUOUUEUUFUUPUTXHNXNVSWAVRWQXHYHUUMYNUJWQXCYEXGYGMWQXBYDKLWQWTYC
      XAABDWSEFXTWBUMWCWQXFYFKLABXEDWSXAEFXTYAYBWJWCWDWQUULYMNUIWQUULXMXJMIYMWQ
      XJXMUUGUUIWEWQXMYJXJYLMWQXLYIKLWQYIXLWNWPWOYIXLQBAXEDWSXAEFXTYAYBWKUNWFWC
      WQXIYKKLABXEDWSXAEFXTYAYBWKWCWDWLWGWDWHWCWIWLWMWM $.

    $( An inner product times its conjugate.  (Contributed by NM, 23-Nov-2007.)
       (New usage is discouraged.) $)
    ipipcj $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X ) ->
                ( ( A P B ) x. ( B P A ) ) = ( ( abs ` ( A P B ) ) ^ 2 ) ) $=
      ( cnv wcel w3a co cabs cfv c2 cexp ccj cmul dipcl absvalsqd dipcj oveq2d
      eqtr2d ) DHIAEIBEIJZABCKZLMNOKUDUDPMZQKUDBACKZQKUCUDABCDEFGRSUCUEUFUDQABC
      DEFGTUAUB $.

    $( Orthogonality (meaning inner product is 0) is commutative.  (Contributed
       by NM, 17-Apr-2008.)  (New usage is discouraged.) $)
    diporthcom $p |- ( ( U e. NrmCVec /\ A e. X /\ B e. X )
              -> ( ( A P B ) = 0 <-> ( B P A ) = 0 ) ) $=
      ( cnv wcel co cc0 wceq ccj cfv fveq2 cj0 syl6eq dipcj eqeq1d syl5ib w3a
      3com23 impbid ) DHIZAEIZBEIZUAZABCJZKLZBACJZKLZUIUHMNZKLUGUKUIULKMNZKUHKM
      OPQUGULUJKABCDEFGRSTUKUJMNZKLUGUIUKUNUMKUJKMOPQUGUNUHKUDUFUEUNUHLBACDEFGR
      UBSTUC $.
  $}

  ${
    dip0r.1 $e |- X = ( BaseSet ` U ) $.
    dip0r.5 $e |- Z = ( 0vec ` U ) $.
    dip0r.7 $e |- P = ( .iOLD ` U ) $.
    $( Inner product with a zero second argument.  (Contributed by NM,
       5-Feb-2007.)  (New usage is discouraged.) $)
    dip0r $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( A P Z ) = 0 ) $=
      ( wcel co cfv c2 cexp cmin ci caddc c4 cc0 wceq oveq2d cnv cpv cnmcv cneg
      wa c1 cns cmul cdiv nvzcl adantr eqid ipval2 mpd3an3 cc neg1cn nvsz mpan2
      fveq2d oveq1d ipval2lem3 recnd subidd negicn ax-icn eqtr4d w3a ipval2lem4
      cr eqtrd oveq12d it0e0 oveq2i 00id eqtri syl6eq 4cn 4ne0 div0i ) CUAIZADI
      ZUEZAEBJZAECUBKZJZCUCKZKZLMJZAUFUDZECUGKZJZWDJZWFKZLMJZNJZOAOEWJJZWDJZWFK
      ZLMJZAOUDZEWJJZWDJZWFKZLMJZNJZUHJZPJZQUIJZRVTWAEDIZWCXHSVTXIWACDEFGUJUKZA
      EBWJCWDWFDFWDULZWJULZWFULZHUMUNWBXHRQUIJRWBXGRQUIWBXGRORUHJZPJZRWBWORXFXN
      PWBWOWHWHNJRWBWNWHWHNWBWMWGLMWBWLWEWFWBWKEAWDVTWKESZWAVTWIUOIXPUPWIWJCEXL
      GUQURUKTUSUTTWBWHWBWHVTWAXIWHVIIXJAEBWJCWDWFDFXKXLXMHVAUNVBVCVJWBXEROUHWB
      XEWSWSNJRWBXDWSWSNWBXCWRLMWBXBWQWFWBXAWPAWDVTXAWPSWAVTXAEWPVTWTUOIXAESVDW
      TWJCEXLGUQURVTOUOIZWPESVEOWJCEXLGUQURVFUKTUSUTTWBWSVTWAXIWSUOIZXJVTWAXIVG
      XQXRVEAEOBWJCWDWFDFXKXLXMHVHURUNVCVJTVKXORRPJRXNRRPVLVMVNVOVPUTQVQVRVSVPV
      J $.

    $( Inner product with a zero first argument.  Part of proof of Theorem 6.44
       of [Ponnusamy] p. 361.  (Contributed by NM, 5-Feb-2007.)
       (New usage is discouraged.) $)
    dip0l $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( Z P A ) = 0 ) $=
      ( cnv wcel wa co ccj cfv cc0 wceq nvzcl adantr dipcj mpd3an3 dip0r fveq2d
      cj0 syl6eq eqtr3d ) CIJZADJZKZAEBLZMNZEABLZOUFUGEDJZUJUKPUFULUGCDEFGQRAEB
      CDFHSTUHUJOMNOUHUIOMABCDEFGHUAUBUCUDUE $.

    $( The inner product of a vector with itself is zero iff the vector is
       zero.  Part of Definition 3.1-1 of [Kreyszig] p. 129.  (Contributed by
       NM, 24-Jan-2008.)  (New usage is discouraged.) $)
    ipz $p |- ( ( U e. NrmCVec /\ A e. X ) -> ( ( A P A ) = 0 <-> A = Z ) ) $=
      ( cnv wcel wa co cc0 wceq cnmcv cfv c2 cexp eqid ipidsq eqeq1d cc wb nvcl
      recnd sqeq0 syl nvz 3bitrd ) CIJADJKZAABLZMNACOPZPZQRLZMNZUMMNZAENUJUKUNM
      ABCULDFULSZHTUAUJUMUBJUOUPUCUJUMACULDFUQUDUEUMUFUGACULDEFGUQUHUI $.
  $}

  ${
    $d k x y z J $.  $d k x y z K $.  $d k x y z U $.
    dipcn.p $e |- P = ( .iOLD ` U ) $.
    dipcn.c $e |- C = ( IndMet ` U ) $.
    dipcn.j $e |- J = ( MetOpen ` C ) $.
    dipcn.k $e |- K = ( TopOpen ` CCfld ) $.
    $( Inner product is jointly continuous in both arguments.  (Contributed by
       NM, 21-Aug-2007.)  (Revised by Mario Carneiro, 10-Sep-2015.)
       (New usage is discouraged.) $)
    dipcn $p |- ( U e. NrmCVec -> P e. ( ( J tX J ) Cn K ) ) $=
      ( vx vy vk vz wcel cfv c4 co ccn cc a1i cnv cba c1 cfz ci cv cexp cns cpv
      cnmcv c2 cmul csu cdiv ctx eqid dipfval cxmt ctopon imsxmet mopntopon syl
      cmpt2 fzfid wa adantr cnfldtopon cn0 ax-icn cn elfznn adantl nnnn0d expcl
      sylancr cnmpt2c cnmpt1st cnmpt2nd smcn cnmpt22f vacn nmcnc cnmpt21f oveq1
      cmpt sqcn cnmpt21 mulcn fsum2cn cc0 wne 4cn 4ne0 divccn mp2an eqeltrd ) C
      UANZBJKCUBOZWRUCPUDQZUELUFZUGQZJUFZXAKUFZCUHOZQZCUIOZQZCUJOZOZUKUGQZULQZL
      UMZPUNQZVCDDUOQZERQJKBXDCLXFXHWRWRUPZXFUPZXDUPZXHUPZFUQWQJKMXLMUFZPUNQZXM
      DDEEWRWRSWQAWRURONDWRUSONZACWRXOGUTADWRHVAVBZYBWQJKWSXKLDEDWRWRIYBWQUCPVD
      YBWQWTWSNZVEZJKXAXJULDDEEEWRWRWQYAYCYBVFZYEYDJKXADDEWRWRSYEYEESUSONZYDEIV
      GZTZYDUESNWTVHNXASNVIYDWTYCWTVJNWQWTPVKVLVMUEWTVNVOVPZYDJKMXIXSUKUGQZXJDD
      EEWRWRSYEYEYDJKXGXHDDDEWRWRYEYEYDJKXBXEXFDDDDDWRWRYEYEYDJKDDWRWRYEYEVQYDJ
      KXAXCXDDDEDDWRWRYEYEYIYDJKDDWRWRYEYEVRWQXDEDUOQDRQNYCAXDCDEGHXQIVSVFVTWQX
      FXNDRQNYCACXFDGHXPWAVFVTWQXHDERQNYCACDEXHXRGHIWBVFWCYHMSYJWEEERQZNYDMEIWF
      TXSXIUKUGWDWGULEEUOQERQNYDEIWHTVTWIYFWQYGTMSXTWEYKNZWQPSNPWJWKYLWLWMMPEIW
      NWOTXSXLPUNWDWGWP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subspaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c SubSp $.

  $( Extend class notation with the class of all subspaces of normed complex
     vector spaces. $)
  css $a class SubSp $.

  ${
    $d u w $.
    $( Define the class of all subspaces of normed complex vector spaces.
       (Contributed by NM, 26-Jan-2008.)  (New usage is discouraged.) $)
    df-ssp $a |- SubSp = ( u e. NrmCVec |->
     { w e. NrmCVec | ( ( +v ` w ) C_ ( +v ` u ) /\ ( .sOLD ` w ) C_ ( .sOLD `
        u )
         /\ ( normCV ` w ) C_ ( normCV ` u ) ) } ) $.
  $}

  ${
    $d u w G $.  $d u w N $.  $d u w S $.  $d u w U $.
    sspval.g $e |- G = ( +v ` U ) $.
    sspval.s $e |- S = ( .sOLD ` U ) $.
    sspval.n $e |- N = ( normCV ` U ) $.
    sspval.h $e |- H = ( SubSp ` U ) $.
    $( The set of all subspaces of a normed complex vector space.  (Contributed
       by NM, 26-Jan-2008.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    sspval $p |- ( U e. NrmCVec -> H = { w e. NrmCVec | (
         ( +v ` w ) C_ G /\ ( .sOLD ` w ) C_ S /\ ( normCV ` w ) C_ N ) } ) $=
      ( vu cnv wcel cfv cpv wss cns cnmcv fveq2 fvex css cv crab syl6eqr sseq2d
      w3a wceq 3anbi123d rabbidv df-ssp cpw cxp cvv eqeltri pwex xpex rabss cop
      wi wa elpw opelxpi syl2anbr biimpri syl2an 3impa eqid nvop eleq1d syl5ibr
      mprgbir ssexi fvmpt syl5eq ) CLMECUANAUBZONZDPZVOQNZBPZVORNZFPZUFZALUCZJK
      CVPKUBZONZPZVRWDQNZPZVTWDRNZPZUFZALUCWCLUAWDCUGZWKWBALWLWFVQWHVSWJWAWLWED
      VPWLWECONZDWDCOSGUDUEWLWGBVRWLWGCQNZBWDCQSHUDUEWLWIFVTWLWICRNZFWDCRSIUDUE
      UHUIAKUJWCDUKZBUKZULZFUKZULZWRWSWPWQDDWMUMGCOTUNUOBBWNUMHCQTUNUOUPFFWOUMI
      CRTUNUOUPWCWTPWBVOWTMZUSALWBALWTUQWBXAVOLMZVPVRURZVTURZWTMZVQVSWAXEVQVSUT
      XCWRMZVTWSMZXEWAVQVPWPMVRWQMXFVSVPDVOOTVAVRBVOQTVAVPVRWPWQVBVCXGWAVTFVORT
      VAVDXCVTWRWSVBVEVFXBVOXDWTVRVOVPVTVPVGVRVGVTVGVHVIVJVKVLVMVN $.
  $}

  ${
    $d w F $.  $d w G $.  $d w M $.  $d w N $.  $d w R $.  $d w S $.  $d w U $.
    $d w W $.
    isssp.g $e |- G = ( +v ` U ) $.
    isssp.f $e |- F = ( +v ` W ) $.
    isssp.s $e |- S = ( .sOLD ` U ) $.
    isssp.r $e |- R = ( .sOLD ` W ) $.
    isssp.n $e |- N = ( normCV ` U ) $.
    isssp.m $e |- M = ( normCV ` W ) $.
    isssp.h $e |- H = ( SubSp ` U ) $.
    $( The predicate "is a subspace."  (Contributed by NM, 26-Jan-2008.)
       (New usage is discouraged.) $)
    isssp $p |- ( U e. NrmCVec -> ( W e. H <-> ( W e. NrmCVec /\ (
               F C_ G /\ R C_ S /\ M C_ N ) ) ) ) $=
      ( vw cnv cfv wss wcel cv cpv cns cnmcv crab wa sspval eleq2d wceq syl6eqr
      w3a fveq2 sseq1d 3anbi123d elrab syl6bb ) CRUAZIFUAIQUBZUCSZETZUSUDSZBTZU
      SUESZHTZULZQRUFZUAIRUADETZABTZGHTZULZUGURFVGIQBCEFHJLNPUHUIVFVKQIRUSIUJZV
      AVHVCVIVEVJVLUTDEVLUTIUCSDUSIUCUMKUKUNVLVBABVLVBIUDSAUSIUDUMMUKUNVLVDGHVL
      VDIUESGUSIUEUMOUKUNUOUPUQ $.
  $}

  ${
    sspid.h $e |- H = ( SubSp ` U ) $.
    $( A normed complex vector space is a subspace of itself.  (Contributed by
       NM, 8-Apr-2008.)  (New usage is discouraged.) $)
    sspid $p |- ( U e. NrmCVec -> U e. H ) $=
      ( cnv wcel cpv cfv wss cns cnmcv w3a ssid 3pm3.2i jctr eqid isssp mpbird
      wa ) ADEZABESAFGZTHZAIGZUBHZAJGZUDHZKZRSUFUAUCUETLUBLUDLMNUBUBATTBUDUDATO
      ZUGUBOZUHUDOZUICPQ $.
  $}

  ${
    sspnv.h $e |- H = ( SubSp ` U ) $.
    $( A subspace is a normed complex vector space.  (Contributed by NM,
       27-Jan-2008.)  (New usage is discouraged.) $)
    sspnv $p |- ( ( U e. NrmCVec /\ W e. H ) -> W e. NrmCVec ) $=
      ( cnv wcel cpv cfv wss cns cnmcv w3a eqid isssp simprbda ) AEFCBFCEFCGHZA
      GHZICJHZAJHZICKHZAKHZILRSAPQBTUACQMPMSMRMUAMTMDNO $.
  $}

  ${
    sspba.x $e |- X = ( BaseSet ` U ) $.
    sspba.y $e |- Y = ( BaseSet ` W ) $.
    sspba.h $e |- H = ( SubSp ` U ) $.
    $( The base set of a subspace is included in the parent base set.
       (Contributed by NM, 27-Jan-2008.)  (New usage is discouraged.) $)
    sspba $p |- ( ( U e. NrmCVec /\ W e. H ) -> Y C_ X ) $=
      ( cnv wcel wa cpv cfv crn wss cns cnmcv w3a eqid bafval isssp simp1d rnss
      simplbda syl 3sstr4g ) AIJZCBJZKZCLMZNZALMZNZEDUIUJULOZUKUMOUIUNCPMZAPMZO
      ZCQMZAQMZOZUGUHCIJUNUQUTRUOUPAUJULBURUSCULSZUJSZUPSUOSUSSURSHUAUDUBUJULUC
      UECUJEGVBTAULDFVATUF $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x y H $.  $d x y U $.  $d x y W $.
    $d x y Y $.
    sspg.y $e |- Y = ( BaseSet ` W ) $.
    sspg.g $e |- G = ( +v ` U ) $.
    sspg.f $e |- F = ( +v ` W ) $.
    sspg.h $e |- H = ( SubSp ` U ) $.
    $( Vector addition on a subspace is a restriction of vector addition on the
       parent space.  (Contributed by NM, 28-Jan-2008.)
       (New usage is discouraged.) $)
    sspg $p |- ( ( U e. NrmCVec /\ W e. H ) -> F = ( G |` ( Y X. Y ) ) ) $=
      ( vx vy wcel wa wceq wfn wss cfv eqid syl cnv cxp cres cv co wral w3a cba
      wfun wf nvgf ffun funres adantr sspnv fnresdm cnmcv isssp simplbda simp1d
      ffn cns ssres eqsstr3d oprssov sylan eqcomd ralrimivva jctil sspba xpss12
      3jca wb syl2anc fnssres eqfnov mpbird ) AUAMZEDMZNZBCFFUBZUCZOZWAWAOZKUDZ
      LUDZBUEZWEWFWBUEZOZLFUFKFUFZNZVTWJWDVTWIKLFFVTWEFMWFFMNZNWHWGVTWBUIZBWAPZ
      BWBQZUGWLWHWGOVTWMWNWOVRWMVSVRCUIZWMVRAUHRZWQUBZWQCUJZWPACWQWQSZHUKZWRWQC
      ULTWACUMTUNVTWAFBUJZWNVTEUAMZXBADEJUOEBFGIUKTWAFBVATZVTBBWAUCZWBVTWNXEBOX
      DWABUPTVTBCQZXEWBQVTXFEVBRZAVBRZQZEUQRZAUQRZQZVRVSXCXFXIXLUGXGXHABCDXJXKE
      HIXHSXGSXKSXJSJURUSUTBCWAVCTVDVLWEWFFFWBBVEVFVGVHWASVIVTWNWBWAPZWCWKVMXDV
      TCWRPZWAWRQZXMVRXNVSVRWSXNXAWRWQCVATUNVTFWQQZXPXOADEWQFWTGJVJZXQFWQFWQVKV
      NWRWACVOVNKLFFFFBWBVPVNVQ $.

    $( Vector addition on a subspace in terms of vector addition on the parent
       space.  (Contributed by NM, 28-Jan-2008.)
       (New usage is discouraged.) $)
    sspgval $p |- ( ( ( U e. NrmCVec /\ W e. H ) /\ ( A e. Y /\ B e. Y ) ) ->
                    ( A F B ) = ( A G B ) ) $=
      ( cnv wcel wa co cxp cres sspg oveqd ovres sylan9eq ) CMNGFNOZAHNBHNOABDP
      ABEHHQRZPABEPUCDUDABCDEFGHIJKLSTABHHEUAUB $.
  $}

  ${
    $d x y R $.  $d x y S $.  $d x y H $.  $d x y U $.  $d x y W $.
    $d x y Y $.
    ssps.y $e |- Y = ( BaseSet ` W ) $.
    ssps.s $e |- S = ( .sOLD ` U ) $.
    ssps.r $e |- R = ( .sOLD ` W ) $.
    ssps.h $e |- H = ( SubSp ` U ) $.
    $( Scalar multiplication on a subspace is a restriction of scalar
       multiplication on the parent space.  (Contributed by NM, 28-Jan-2008.)
       (New usage is discouraged.) $)
    ssps $p |- ( ( U e. NrmCVec /\ W e. H ) -> R = ( S |` ( CC X. Y ) ) ) $=
      ( vx vy wcel wa cc wceq wss cfv eqid syl cnv cxp cres cv co wral wfun wfn
      w3a cba wf nvsf ffun funres adantr sspnv ffn fnresdm cnmcv isssp simplbda
      cpv simp2d ssres eqsstr3d 3jca oprssov sylan eqcomd ralrimivva jctil ssid
      wb sspba xpss12 sylancr fnssres syl2anc eqfnov mpbird ) CUAMZEDMZNZABOFUB
      ZUCZPZWDWDPZKUDZLUDZAUEZWHWIWEUEZPZLFUFKOUFZNZWCWMWGWCWLKLOFWCWHOMWIFMNZN
      WKWJWCWEUGZAWDUHZAWEQZUIWOWKWJPWCWPWQWRWAWPWBWABUGZWPWAOCUJRZUBZWTBUKZWSB
      CWTWTSZHULZXAWTBUMTWDBUNTUOWCWDFAUKZWQWCEUAMZXECDEJUPAEFGIULTWDFAUQTZWCAA
      WDUCZWEWCWQXHAPXGWDAURTWCABQZXHWEQWCEVBRZCVBRZQZXIEUSRZCUSRZQZWAWBXFXLXIX
      OUIABCXJXKDXMXNEXKSXJSHIXNSXMSJUTVAVCABWDVDTVEVFWHWIOFWEAVGVHVIVJWDSVKWCW
      QWEWDUHZWFWNVMXGWCBXAUHZWDXAQZXPWAXQWBWAXBXQXDXAWTBUQTUOWCOOQFWTQXROVLCDE
      WTFXCGJVNOOFWTVOVPXAWDBVQVRKLOFOFAWEVSVRVT $.

    $( Scalar multiplication on a subspace in terms of scalar multiplication on
       the parent space.  (Contributed by NM, 28-Jan-2008.)
       (New usage is discouraged.) $)
    sspsval $p |- ( ( ( U e. NrmCVec /\ W e. H ) /\ ( A e. CC /\ B e. Y ) ) ->
                    ( A R B ) = ( A S B ) ) $=
      ( cnv wcel wa cc co cxp cres ssps oveqd ovres sylan9eq ) EMNGFNOZAPNBHNOA
      BCQABDPHRSZQABDQUDCUEABCDEFGHIJKLTUAABPHDUBUC $.
  $}

  $( TODO - sspvallem doesn't save space yet, but might if another
     operation is added. $)
  $(
  @{
    @d x y F @.  @d x y G @.  @d x y H @.  @d x y U @.  @d x y W @.
    @d x y Y @.
    sspvallem.y @e |- Y = ( BaseSet ` W ) @.
    sspvallem.h @e |- H = ( SubSp ` U ) @.
    @{
      sspvallem.1 @e |- ( ( ( U e. NrmCVec /\ W e. H ) /\ ( A e. Y /\ B e. Y )
         ) -> R = S ) @.
      sspvallem.2 @e |- ( ( W e. NrmCVec /\ A e. Y /\ B e. Y ) -> P = R ) @.
      sspvallem.3 @e |- ( ( U e. NrmCVec /\ A e. ( BaseSet ` U ) /\
          B e. ( BaseSet ` U ) ) -> Q = S ) @.
      @( Lemma for ~ sspmval and others. @)
      sspvallem @p |- ( ( ( U e. NrmCVec /\ W e. H ) /\ ( A e. Y /\ B e. Y ) )
          -> P = Q ) @=
       ( cnv wcel wa wceq 3expb sspnv sylanOLD cba cfv eqid sspba sseld anim12d
        imp adantlr syldan 3eqtr4d ) GPQZIHQZRZAJQZBJQZRZREFCDMIPQZURCESZUOUSUP
        UQUTNTGHILUAUBUOURAGUCUDZQZBVAQZRZDFSZUOURVDUOUPVBUQVCUOJVAAGHIVAJVAUEK
        LUFZUGUOJVABVFUGUHUIUMVDVEUNUMVBVCVEOTUJUKUL @.
        @( [ ?] @) @( [1-Feb-2008] @)
    @}

    @{
      sspmlem.1  @e |- ( ( ( U e. NrmCVec /\ W e. H ) /\ (
       x e. Y /\ y e. Y ) ) -> ( x F y ) = ( x G y ) ) @.
      sspmlem.2 @e |- ( W e. NrmCVec -> F : ( Y X. Y ) --> R ) @.
      sspmlem.3 @e |- ( U e. NrmCVec -> G : ( ( BaseSet ` U ) X.
               ( BaseSet ` U ) ) --> S ) @.
      @( Lemma for ~ sspm and others. @)
      sspmlem @p |- ( ( U e. NrmCVec /\ W e. H ) ->
            F = ( G |` ( Y X. Y ) ) ) @=
        ( cnv wcel wa cxp cres wceq cv co wral ovres adantl eqtr4d ex
        ralrimivv eqid jctil wfn wb eqfnov wf sspnv ffn 3syl cba cfv wss
   fnssres syl adantr sspba xpss12 anidms sylancOLD mpbird ) EPQZIHQZRZFGJJSZTZ
        UAZVMVMUAZAUBZBUBZFUCZVQVRVNUCZUAZBJUDAJUDZRZVLWBVPVLWAABJJVLVQJQVRJQRZ
        WAVLWDRVSVQVRGUCZVTMWDVTWEUAVLVQVRJJGUEUFUGUHUIVMUJUKFVMULZVNVMULZVOWCU
        MVLABJJJJFVNUNVLIPQVMCFUOWFEHILUPNVMCFUQURGEUSUTZWHSZULZVMWIVAZWGVLWIVM
        GVBVJWJVKVJWIDGUOWJOWIDGUQVCVDVLJWHVAZWKEHIWHJWHUJKLVEWLWKJWHJWHVFVGVCV
        HVHVI @.
        @( [ ?] @) @( [1-Feb-2008] @)
    @}
  @}
  $)

  ${
    $d x y F $.  $d x y G $.  $d x y H $.  $d x y U $.  $d x y W $.
    $d x y Y $.
    sspmlem.y $e |- Y = ( BaseSet ` W ) $.
    sspmlem.h $e |- H = ( SubSp ` U ) $.
    sspmlem.1 $e |- ( ( ( U e. NrmCVec /\ W e. H ) /\ (
             x e. Y /\ y e. Y ) ) -> ( x F y ) = ( x G y ) ) $.
    sspmlem.2 $e |- ( W e. NrmCVec -> F : ( Y X. Y ) --> R ) $.
    sspmlem.3 $e |- ( U e. NrmCVec -> G : ( ( BaseSet ` U ) X.
             ( BaseSet ` U ) ) --> S ) $.
    $( Lemma for ~ sspm and others.  (Contributed by NM, 1-Feb-2008.)
       (New usage is discouraged.) $)
    sspmlem $p |- ( ( U e. NrmCVec /\ W e. H ) -> F = ( G |` ( Y X. Y ) ) ) $=
      ( wcel wa wceq co wfn cnv cxp cres cv wral ovres adantl eqtr4d ralrimivva
      eqid jctil wb sspnv ffn 3syl cba cfv wss syl adantr sspba syl2anc fnssres
      wf xpss12 eqfnov mpbird ) EUAPZIHPZQZFGJJUBZUCZRZVKVKRZAUDZBUDZFSZVOVPVLS
      ZRZBJUEAJUEZQZVJVTVNVJVSABJJVJVOJPVPJPQZQVQVOVPGSZVRMWBVRWCRVJVOVPJJGUFUG
      UHUIVKUJUKVJFVKTZVLVKTZVMWAULVJIUAPVKCFVDWDEHILUMNVKCFUNUOVJGEUPUQZWFUBZT
      ZVKWGURZWEVHWHVIVHWGDGVDWHOWGDGUNUSUTVJJWFURZWJWIEHIWFJWFUJKLVAZWKJWFJWFV
      EVBWGVKGVCVBABJJJJFVLVFVBVG $.
  $}

  ${
    $d x y L $.  $d x y M $.  $d x y H $.  $d x y U $.  $d x y W $.
    $d x y Y $.
    sspm.y $e |- Y = ( BaseSet ` W ) $.
    sspm.m $e |- M = ( -v ` U ) $.
    sspm.l $e |- L = ( -v ` W ) $.
    sspm.h $e |- H = ( SubSp ` U ) $.
    $( Vector addition on a subspace in terms of vector addition on the parent
       space.  (Contributed by NM, 28-Jan-2008.)
       (New usage is discouraged.) $)
    sspmval $p |- ( ( ( U e. NrmCVec /\ W e. H ) /\ ( A e. Y /\ B e. Y ) ) ->
                    ( A L B ) = ( A M B ) ) $=
      ( cnv wcel wa cns cfv co wceq eqid c1 cpv wi sspnv cc neg1cn nvscl mp3an2
      cneg ex syl anim2d imp sspgval syldan sspsval mpanr1 adantrl oveq2d eqtrd
      nvmval 3expb sylan cba sspba sseld anim12d adantlr 3eqtr4d ) CMNZGDNZOZAH
      NZBHNZOZOZAUAUIZBGPQZRZGUBQZRZAVQBCPQZRZCUBQZRZABERZABFRZVPWAAVSWDRZWEVLV
      OVMVSHNZOZWAWHSVLVOWJVLVNWIVMVLGMNZVNWIUCCDGLUDZWKVNWIWKVQUENZVNWIUFVQBVR
      GHIVRTZUGUHUJUKULUMAVSCVTWDDGHIWDTZVTTZLUNUOVPVSWCAWDVLVNVSWCSZVMVLWMVNWQ
      UFVQBVRWBCDGHIWBTZWNLUPUQURUSUTVLWKVOWFWASZWLWKVMVNWSABVRGVTEHIWPWNKVAVBV
      CVLVOACVDQZNZBWTNZOZWGWESZVLVOXCVLVMXAVNXBVLHWTACDGWTHWTTZILVEZVFVLHWTBXF
      VFVGUMVJXCXDVKVJXAXBXDABWBCWDFWTXEWOWRJVAVBVHUOVI $.

    $( Vector subtraction on a subspace is a restriction of vector subtraction
       on the parent space.  (Contributed by NM, 28-Jan-2008.)
       (New usage is discouraged.) $)
    sspm $p |- ( ( U e. NrmCVec /\ W e. H ) -> L = ( M |` ( Y X. Y ) ) ) $=
      ( vx vy cba cfv cv sspmval nvmf eqid sspmlem ) KLFAMNZACDBEFGJKOLOABCDEFG
      HIJPECFGIQADTTRHQS $.
  $}

  ${
    sspz.z $e |- Z = ( 0vec ` U ) $.
    sspz.q $e |- Q = ( 0vec ` W ) $.
    sspz.h $e |- H = ( SubSp ` U ) $.
    $( The zero vector of a subspace is the same as the parent's.  (Contributed
       by NM, 28-Jan-2008.)  (New usage is discouraged.) $)
    sspz $p |- ( ( U e. NrmCVec /\ W e. H ) -> Q = Z ) $=
      ( cnv wcel wa cnsb cfv co cba wceq sspnv eqid syl nvmid nvzcl jca sspmval
      mpdan syl2anc sspba sseldd syldan 3eqtr3d ) BIJZDCJZKZAADLMZNZAABLMZNZAEU
      LADOMZJZURKZUNUPPULDIJZUSBCDHQZUTURURDUQAUQRZGUAZVCUBSAABCUMUODUQVBUORZUM
      RZHUCUDULUTURUNAPVAULUTURVAVCSZADUMUQAVBVEGTUEUJUKABOMZJUPEPULUQVGABCDVGU
      QVGRZVBHUFVFUGABUOVGEVHVDFTUHUI $.
  $}

  ${
    $d x H $.  $d x M $.  $d x N $.  $d x U $.  $d x W $.  $d x Y $.
    sspn.y $e |- Y = ( BaseSet ` W ) $.
    sspn.n $e |- N = ( normCV ` U ) $.
    sspn.m $e |- M = ( normCV ` W ) $.
    sspn.h $e |- H = ( SubSp ` U ) $.
    $( The norm on a subspace is a restriction of the norm on the parent space.
       (Contributed by NM, 28-Jan-2008.)  (New usage is discouraged.) $)
    sspn $p |- ( ( U e. NrmCVec /\ W e. H ) -> M = ( N |` Y ) ) $=
      ( vx cnv wcel cr wfn syl cfv wss eqid wceq wa wf sspnv nvf ffn cba adantr
      cres fnssres syl2anc cv wfun cdm ffun funres ad2antrr fnresdm cpv cns w3a
      sspba isssp simplbda simp3d ssres eqsstr3d eleq2d biimpar funssfv syl3anc
      fdm sylan eqcomd eqfnfvd ) ALMZEBMZUAZKFCDFUHZVQFNCUBZCFOZVQELMZVSABEJUCZ
      ECFGIUDZPFNCUEPZVQDAUFQZOZFWERVRFOVOWFVPVOWENDUBZWFADWEWESZHUDZWENDUEPUGA
      BEWEFWHGJVAWEFDUIUJVQKUKZFMZUAZWJVRQZWJCQZWLVRULZCVRRZWJCUMZMZWMWNTVOWOVP
      WKVODULZWOVOWGWSWIWENDUNPFDUOPUPVQWPWKVQCCFUHZVRVQVTWTCTWDFCUQPVQCDRZWTVR
      RVQEURQZAURQZRZEUSQZAUSQZRZXAVOVPWAXDXGXAUTXEXFAXBXCBCDEXCSXBSXFSXESHIJVB
      VCVDCDFVEPVFUGVQWAWKWRWBWAWRWKWAWQFWJWAVSWQFTWCFNCVKPVGVHVLWJVRCVIVJVMVN
      $.

    $( The norm on a subspace in terms of the norm on the parent space.
       (Contributed by NM, 28-Jan-2008.)  (New usage is discouraged.) $)
    sspnval $p |- ( ( U e. NrmCVec /\ W e. H /\ A e. Y ) ->
                    ( M ` A ) = ( N ` A ) ) $=
      ( cnv wcel cfv wceq wa cres sspn fveq1d fvres sylan9eq 3impa ) BLMZFCMZAG
      MZADNZAENZOUCUDPZUEUFAEGQZNUGUHADUIBCDEFGHIJKRSAGETUAUB $.
  $}

  ${
    sspims.y $e |- Y = ( BaseSet ` W ) $.
    sspims.d $e |- D = ( IndMet ` U ) $.
    sspims.c $e |- C = ( IndMet ` W ) $.
    sspims.h $e |- H = ( SubSp ` U ) $.
    $d x y C $.  $d x y D $.  $d x y H $.  $d x y U $.  $d x y W $.
    $d x y Y $.
    $( The induced metric on a subspace in terms of the induced metric on the
       parent space.  (Contributed by NM, 1-Feb-2008.)
       (New usage is discouraged.) $)
    sspimsval $p |- ( ( ( U e. NrmCVec /\ W e. H ) /\ ( A e. Y /\ B e. Y ) ) ->
                    ( A C B ) = ( A D B ) ) $=
      ( cnv wcel wa cfv co wceq eqid 3expb cnsb cnmcv sspnv nvmcl sylan sspnval
      3expa syldan sspmval fveq2d eqtrd imsdval cba sspba sseld anim12d adantlr
      imp 3eqtr4d ) EMNZGFNZOZAHNZBHNZOZOZABGUAPZQZGUBPZPZABEUAPZQZEUBPZPZABCQZ
      ABDQZVFVJVHVMPZVNVBVEVHHNZVJVQRZVBGMNZVEVREFGLUCZVTVCVDVRABGVGHIVGSZUDTUE
      UTVAVRVSVHEFVIVMGHIVMSZVISZLUFUGUHVFVHVLVMABEFVGVKGHIVKSZWBLUIUJUKVBVTVEV
      OVJRZWAVTVCVDWFABCGVGVIHIWBWDKULTUEVBVEAEUMPZNZBWGNZOZVPVNRZVBVEWJVBVCWHV
      DWIVBHWGAEFGWGHWGSZILUNZUOVBHWGBWMUOUPURUTWJWKVAUTWHWIWKABDEVKVMWGWLWEWCJ
      ULTUQUHUS $.

    $( The induced metric on a subspace is a restriction of the induced metric
       on the parent space.  (Contributed by NM, 1-Feb-2008.)
       (New usage is discouraged.) $)
    sspims $p |- ( ( U e. NrmCVec /\ W e. H ) -> C = ( D |` ( Y X. Y ) ) ) $=
      ( vx vy cr cv sspimsval imsdf cba cfv eqid sspmlem ) KLMMCABDEFGJKNLNABCD
      EFGHIJOAEFGIPBCCQRZUASHPT $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Operators on complex vector spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definitions and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c LnOp $.
  $c normOpOLD $.
  $c BLnOp $.
  $c 0op $.

  $( Extend class notation with the class of linear operators on normed complex
     vector spaces. $)
  clno $a class LnOp $.

  $( Extend class notation with the class of operator norms on normed complex
     vector spaces. $)
  cnmoo $a class normOpOLD $.

  $( Extend class notation with the class of bounded linear operators on normed
     complex vector spaces. $)
  cblo $a class BLnOp $.

  $( Extend class notation with the class of zero operators on normed complex
     vector spaces. $)
  c0o $a class 0op $.

  ${
    $d t u w x y z $.
    $( Define the class of linear operators between two normed complex vector
       spaces.  In the literature, an operator may be a partial function, i.e.
       the domain of an operator is not necessarily the entire vector space.
       However, since the domain of a linear operator is a vector subspace, we
       define it with a complete function for convenience and will use subset
       relations to specify the partial function case.  (Contributed by NM,
       6-Nov-2007.)  (New usage is discouraged.) $)
    df-lno $a |- LnOp = ( u e. NrmCVec , w e. NrmCVec |->
    { t e. ( ( BaseSet ` w ) ^m ( BaseSet ` u ) ) |
       A. x e. CC A. y e. ( BaseSet ` u ) A. z e. ( BaseSet ` u )
      ( t ` ( ( x ( .sOLD ` u ) y ) ( +v ` u ) z ) ) =
         ( ( x ( .sOLD ` w ) ( t ` y ) ) ( +v ` w ) ( t ` z ) ) } ) $.

    $( Define the norm of an operator between two normed complex vector spaces.
       This definition produces an operator norm function for each pair of
       vector spaces ` <. u , w >. ` .  Based on definition of linear operator
       norm in [AkhiezerGlazman] p. 39, although we define it for all operators
       for convenience.  It isn't necessarily meaningful for nonlinear
       operators, since it doesn't take into account operator values at vectors
       with norm greater than 1.  See Equation 2 of [Kreyszig] p. 92 for a
       definition that does (although it ignores the value at the zero vector).
       However, operator norms are rarely if ever used for nonlinear operators.
       (Contributed by NM, 6-Nov-2007.)  (New usage is discouraged.) $)
    df-nmoo $a |- normOpOLD = ( u e. NrmCVec , w e. NrmCVec |->
                ( t e. ( ( BaseSet ` w ) ^m ( BaseSet ` u ) ) |->
        sup ( { x | E. z e. ( BaseSet ` u ) ( ( ( normCV ` u ) ` z ) <_ 1 /\
            x = ( ( normCV ` w ) ` ( t ` z ) ) ) } , RR* , < ) ) ) $.

    $( Define the class of bounded linear operators between two normed complex
       vector spaces.  (Contributed by NM, 6-Nov-2007.)
       (New usage is discouraged.) $)
    df-blo $a |- BLnOp = ( u e. NrmCVec , w e. NrmCVec |->
      { t e. ( u LnOp w ) | ( ( u normOpOLD w ) ` t ) < +oo } ) $.

    $( Define the zero operator between two normed complex vector spaces.
       (Contributed by NM, 28-Nov-2007.)  (New usage is discouraged.) $)
    df-0o $a |- 0op = ( u e. NrmCVec , w e. NrmCVec |->
                        ( ( BaseSet ` u ) X. { ( 0vec ` w ) } ) ) $.
  $}

  $c adj $.
  $( Adjoint of an operator. $)
  caj $a class adj $.

  $c HmOp $.
  $( Set of Hermitional (self-adjoint) operators. $)
  chmo $a class HmOp $.

  ${
    $d s t u w x y $.
    $( Define the adjoint of an operator (if it exists).  The domain of
       ` U adj W ` is the set of all operators from ` U ` to ` W ` that have an
       adjoint.  Definition 3.9-1 of [Kreyszig] p. 196, although we don't
       require that ` U ` and ` W ` be Hilbert spaces nor that the operators be
       linear.  Although we define it for any normed vector space for
       convenience, the definition is meaningful only for inner product spaces.
       (Contributed by NM, 25-Jan-2008.)  (New usage is discouraged.) $)
    df-aj $a |- adj = ( u e. NrmCVec , w e. NrmCVec |->
        { <. t , s >. | ( t : ( BaseSet ` u ) --> ( BaseSet ` w ) /\
                          s : ( BaseSet ` w ) --> ( BaseSet ` u ) /\
        A. x e. ( BaseSet ` u ) A. y e. ( BaseSet ` w )
          ( ( t ` x ) ( .iOLD ` w ) y ) = ( x ( .iOLD ` u ) ( s ` y ) ) ) } )
        $.

    $( Define the set of Hermitian (self-adjoint) operators on a normed complex
       vector space (normally a Hilbert space).  Although we define it for any
       normed vector space for convenience, the definition is meaningful only
       for inner product spaces.  (Contributed by NM, 26-Jan-2008.)
       (New usage is discouraged.) $)
    df-hmo $a |- HmOp = ( u e. NrmCVec |->
                { t e. dom ( u adj u ) | ( ( u adj u ) ` t ) = t } ) $.

$(
    @( Alternate definition of the set of Hermitian (self-adjoint) operators on
       a normed complex vector space (normally a Hilbert space). @)
    dfhm2 @p |- HmOp = { <. u , o >. | ( u e. NrmCVec /\ o = { t | ( t :
  ( BaseSet ` u ) --> ( BaseSet ` u ) /\ A. x e. ( BaseSet ` u ) A. y e.
  ( BaseSet ` u ) ( x ( .iOLD ` u ) ( t ` y ) ) = ( ( t ` x ) ( .iOLD ` u ) y )
       ) } ) } @=
      (  ) ? @.
      @( [ ?] @) @( [8-Feb-2008] @)
$)
  $}

  ${
    $d t u w x y z U $.  $d t u w x y z W $.  $d t u w y z X $.  $d t u w Y $.
    $d t u w G $.  $d t u w R $.  $d t u w H $.  $d t u w S $.
    $d t u w x y z T $.
    lnoval.1 $e |- X = ( BaseSet ` U ) $.
    lnoval.2 $e |- Y = ( BaseSet ` W ) $.
    lnoval.3 $e |- G = ( +v ` U ) $.
    lnoval.4 $e |- H = ( +v ` W ) $.
    lnoval.5 $e |- R = ( .sOLD ` U ) $.
    lnoval.6 $e |- S = ( .sOLD ` W ) $.
    lnoval.7 $e |- L = ( U LnOp W ) $.
    $( The set of linear operators between two normed complex vector spaces.
       (Contributed by NM, 6-Nov-2007.)  (Revised by Mario Carneiro,
       16-Nov-2013.)  (New usage is discouraged.) $)
    lnoval $p |- ( ( U e. NrmCVec /\ W e. NrmCVec ) -> L =
      { t e. ( Y ^m X ) | A. x e. CC A. y e. X A. z e. X
        ( t ` ( ( x R y ) G z ) ) = ( ( x S ( t ` y ) ) H ( t ` z ) ) } ) $=
      ( vu vw cnv wcel wa clno co cv cfv wceq wral cc cmap crab cns cpv syl6eqr
      cba fveq2 oveq2d oveqd oveq123d fveq2d eqeq1d raleqbidv ralbidv rabeqbidv
      eqidd oveq1d eqeq2d 2ralbidv df-lno ovex rabex ovmpt2 syl5eq ) GUCUDKUCUD
      UEJGKUFUGAUHZBUHZEUGZCUHZHUGZDUHZUIZVQVRWBUIZFUGZVTWBUIZIUGZUJZCLUKBLUKZA
      ULUKZDMLUMUGZUNZTUAUBGKUCUCVQVRUAUHZUOUIZUGZVTWMUPUIZUGZWBUIZVQWDUBUHZUOU
      IZUGZWFWSUPUIZUGZUJZCWMURUIZUKZBXEUKZAULUKZDWSURUIZXEUMUGZUNWLUFWCXCUJZCL
      UKZBLUKZAULUKZDXILUMUGZUNWMGUJZXHXNDXJXOXPXELXIUMXPXEGURUILWMGURUSNUQZUTX
      PXGXMAULXPXFXLBXELXQXPXDXKCXELXQXPWRWCXCXPWQWAWBXPWOVSVTVTWPHXPWPGUPUIHWM
      GUPUSPUQXPWNEVQVRXPWNGUOUIEWMGUOUSRUQVAXPVTVHVBVCVDVEVEVFVGWSKUJZXNWJDXOW
      KXRXIMLUMXRXIKURUIMWSKURUSOUQVIXRXMWIAULXRXKWHBCLLXRXCWGWCXRXAWEWFWFXBIXR
      XBKUPUIIWSKUPUSQUQXRWTFVQWDXRWTKUOUIFWSKUOUSSUQVAXRWFVHVBVJVKVFVGABCUBUAD
      VLWJDWKMLUMVMVNVOVP $.

    $( The predicate "is a linear operator."  (Contributed by NM, 4-Dec-2007.)
       (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    islno $p |- ( ( U e. NrmCVec /\ W e. NrmCVec ) -> ( T e. L <->
      ( T : X --> Y /\ A. x e. CC A. y e. X A. z e. X
      ( T ` ( ( x R y ) G z ) ) = ( ( x S ( T ` y ) ) H ( T ` z ) ) ) ) ) $=
      ( vw cnv wcel wa cv co cfv wceq wral cc cmap crab wf lnoval eleq2d oveq2d
      fveq1 oveq12d eqeq12d 2ralbidv ralbidv elrab cba cvv eqeltri elmap anbi1i
      fvex bitri syl6bb ) GUBUCKUBUCUDZFJUCFAUEZBUEZDUFCUEZHUFZUAUEZUGZVLVMVPUG
      ZEUFZVNVPUGZIUFZUHZCLUIBLUIZAUJUIZUAMLUKUFZULZUCZLMFUMZVOFUGZVLVMFUGZEUFZ
      VNFUGZIUFZUHZCLUIBLUIZAUJUIZUDZVKJWFFABCUADEGHIJKLMNOPQRSTUNUOWGFWEUCZWPU
      DWQWDWPUAFWEVPFUHZWCWOAUJWSWBWNBCLLWSVQWIWAWMVOVPFUQWSVSWKVTWLIWSVRWJVLEV
      MVPFUQUPVNVPFUQURUSUTVAVBWRWHWPMLFMKVCUGVDOKVCVHVELGVCUGVDNGVCVHVEVFVGVIV
      J $.

    $d t u w A $.  $d t w B $.  $d t C $.
    $( Basic linearity property of a linear operator.  (Contributed by NM,
       4-Dec-2007.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    lnolin $p |- ( ( ( U e. NrmCVec /\ W e. NrmCVec /\ T e. L ) /\
       ( A e. CC /\ B e. X /\ C e. X ) ) ->
      ( T ` ( ( A R B ) G C ) ) = ( ( A S ( T ` B ) ) H ( T ` C ) ) ) $=
      ( vu vw vt cnv wcel w3a cv co cfv wceq wral cc wf wa islno biimp3a simprd
      oveq1 oveq1d fveq2d eqeq12d oveq2 fveq2 oveq2d rspc3v mpan9 ) GUDUEZKUDUE
      ZFJUEZUFZUAUGZUBUGZDUHZUCUGZHUHZFUIZVKVLFUIZEUHZVNFUIZIUHZUJZUCLUKUBLUKUA
      ULUKZAULUEBLUECLUEUFABDUHZCHUHZFUIZABFUIZEUHZCFUIZIUHZUJZVJLMFUMZWBVGVHVI
      WKWBUNUAUBUCDEFGHIJKLMNOPQRSTUOUPUQWAWJAVLDUHZVNHUHZFUIZAVQEUHZVSIUHZUJWC
      VNHUHZFUIZWGVSIUHZUJUAUBUCABCULLLVKAUJZVPWNVTWPWTVOWMFWTVMWLVNHVKAVLDURUS
      UTWTVRWOVSIVKAVQEURUSVAVLBUJZWNWRWPWSXAWMWQFXAWLWCVNHVLBADVBUSUTXAWOWGVSI
      XAVQWFAEVLBFVCVDUSVAVNCUJZWRWEWSWIXBWQWDFVNCWCHVBUTXBVSWHWGIVNCFVCVDVAVEV
      F $.
  $}

  ${
    $d x y z T $.  $d x y z U $.  $d x y z W $.  $d x y z X $.
    lnof.1 $e |- X = ( BaseSet ` U ) $.
    lnof.2 $e |- Y = ( BaseSet ` W ) $.
    lnof.7 $e |- L = ( U LnOp W ) $.
    $( A linear operator is a mapping.  (Contributed by NM, 4-Dec-2007.)
       (Revised by Mario Carneiro, 18-Nov-2013.)
       (New usage is discouraged.) $)
    lnof $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ T e. L ) -> T : X --> Y ) $=
      ( vx vy vz cnv wcel cv cns cfv co wral eqid wf wa cpv wceq islno simprbda
      cc 3impa ) BMNZDMNZACNZEFAUAZUIUJUBUKULJOZKOZBPQZRLOZBUCQZRAQUMUNAQDPQZRU
      PAQDUCQZRUDLESKESJUGSJKLUOURABUQUSCDEFGHUQTUSTUOTURTIUEUFUH $.
  $}

  ${
    lno0.1 $e |- X = ( BaseSet ` U ) $.
    lno0.2 $e |- Y = ( BaseSet ` W ) $.
    lno0.5 $e |- Q = ( 0vec ` U ) $.
    lno0.z $e |- Z = ( 0vec ` W ) $.
    lno0.7 $e |- L = ( U LnOp W ) $.
    $( The value of a linear operator at zero is zero.  (Contributed by NM,
       4-Dec-2007.)  (Revised by Mario Carneiro, 18-Nov-2013.)
       (New usage is discouraged.) $)
    lno0 $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ T e. L )
         -> ( T ` Q ) = Z ) $=
      ( cnv wcel w3a cfv co wceq eqid c1 cneg cns cpv neg1cn a1i nvzcl 3ad2ant1
      cc 3jca lnolin mpdan nvlinv fveq2d simp2 lnof ffvelrnd syl2anc 3eqtr3d )
      CNOZENOZBDOZPZUAUBZACUCQZRACUDQZRZBQZVDABQZEUCQZRVIEUDQZRZVIHVCVDUIOZAFOZ
      VNPVHVLSVCVMVNVNVMVCUEUFUTVAVNVBCFAIKUGZUHZVPUJVDAAVEVJBCVFVKDEFGIJVFTZVK
      TZVETZVJTZMUKULUTVAVHVISVBUTVGABUTVNVGASVOAVECVFFAIVQVSKUMULUNUHVCVAVIGOV
      LHSUTVAVBUOVCFGABBCDEFGIJMUPVPUQVIVJEVKGHJVRVTLUMURUS $.
  $}

  ${
    $d x y z S $.  $d x y z T $.  $d x y z U $.  $d x y z X $.
    lnocoi.l $e |- L = ( U LnOp W ) $.
    lnocoi.m $e |- M = ( W LnOp X ) $.
    lnocoi.n $e |- N = ( U LnOp X ) $.
    lnocoi.u $e |- U e. NrmCVec $.
    lnocoi.w $e |- W e. NrmCVec $.
    lnocoi.x $e |- X e. NrmCVec $.
    lnocoi.s $e |- S e. L $.
    lnocoi.t $e |- T e. M $.
    $( The composition of two linear operators is linear.  (Contributed by NM,
       12-Jan-2008.)  (Revised by Mario Carneiro, 19-Nov-2013.)
       (New usage is discouraged.) $)
    lnocoi $p |- ( T o. S ) e. N $=
      ( wcel cfv co eqid vx vy vz ccom cba wf cv cns cpv wceq wral cc cnv mp3an
      fco mp2an w3a nvscl mp3an1 nvgcl stoic3 fvco3 sylancr id ffvelrni 3pm3.2i
      lnof lnolin mpan syl3an fveq2d simp2 oveq2d simp3 oveq12d 3eqtr4rd eqtr4d
      rgen3 wa wb islno mpbir2an ) BAUDZFQZCUERZHUERZWCUFZUAUGZUBUGZCUHRZSZUCUG
      ZCUIRZSZWCRZWHWIWCRZHUHRZSZWLWCRZHUIRZSZUJZUCWEUKUBWEUKUAULUKZGUERZWFBUFZ
      WEXDAUFZWGGUMQZHUMQZBEQZXEMNPBGEHXDWFXDTZWFTZJVGUNCUMQZXGADQZXFLMOACDGWEX
      DWETZXJIVGUNZWEXDWFBAUOUPXBUAUBUCULWEWEWHULQZWIWEQZWLWEQZUQZWOWNARZBRZXAX
      SXFWNWEQZWOYAUJXOXPXQWKWEQZXRYBXLXPXQYCLWHWIWJCWEXNWJTZURUSXLYCXRYBLWKWLC
      WMWEXNWMTZUTUSVAWEXDWNBAVBVCXSWHWIARZGUHRZSWLARZGUIRZSZBRZWHYFBRZWQSZYHBR
      ZWTSZYAXAXPXPXQYFXDQZXRYHXDQZYKYOUJZXPVDWEXDWIAXOVEWEXDWLAXOVEXGXHXIUQXPY
      PYQUQYRXGXHXIMNPVFWHYFYHYGWQBGYIWTEHXDWFXJXKYITZWTTZYGTZWQTZJVHVIVJXSXTYJ
      BXLXGXMUQXSXTYJUJXLXGXMLMOVFWHWIWLWJYGACWMYIDGWEXDXNXJYEYSYDUUAIVHVIVKXSW
      RYMWSYNWTXSWPYLWHWQXSXFXQWPYLUJXOXPXQXRVLWEXDWIBAVBVCVMXSXFXRWSYNUJXOXPXQ
      XRVNWEXDWLBAVBVCVOVPVQVRXLXHWDWGXCVSVTLNUAUBUCWJWQWCCWMWTFHWEWFXNXKYEYTYD
      UUBKWAUPWB $.
  $}

  ${
    lnoadd.1 $e |- X = ( BaseSet ` U ) $.
    lnoadd.5 $e |- G = ( +v ` U ) $.
    lnoadd.6 $e |- H = ( +v ` W ) $.
    lnoadd.7 $e |- L = ( U LnOp W ) $.
    $( Addition property of a linear operator.  (Contributed by NM,
       7-Dec-2007.)  (Revised by Mario Carneiro, 19-Nov-2013.)
       (New usage is discouraged.) $)
    lnoadd $p |- ( ( ( U e. NrmCVec /\ W e. NrmCVec /\ T e. L ) /\
  ( A e. X /\ B e. X ) ) -> ( T ` ( A G B ) ) = ( ( T ` A ) H ( T ` B ) ) ) $=
      ( cnv wcel c1 cfv co wceq eqid w3a wa cns ax-1cn cba lnolin mp3anr1 simp1
      cc simpl nvsid syl2an oveq1d fveq2d simpl2 lnof ffvelrn syl2anc 3eqtr3d
      wf ) DNOZHNOZCGOZUAZAIOZBIOZUBZUBZPADUCQZRZBERZCQZPACQZHUCQZRZBCQZFRZABER
      ZCQVMVPFRVDPUIOVEVFVLVQSUDPABVIVNCDEFGHIHUEQZJVSTZKLVITZVNTZMUFUGVHVKVRCV
      HVJABEVDVAVEVJASVGVAVBVCUHVEVFUJZAVIDIJWAUKULUMUNVHVOVMVPFVHVBVMVSOZVOVMS
      VAVBVCVGUOVDIVSCUTVEWDVGCDGHIVSJVTMUPWCIVSACUQULVMVNHVSVTWBUKURUMUS $.
  $}

  ${
    lnosub.1 $e |- X = ( BaseSet ` U ) $.
    lnosub.5 $e |- M = ( -v ` U ) $.
    lnosub.6 $e |- N = ( -v ` W ) $.
    lnosub.7 $e |- L = ( U LnOp W ) $.
    $( Subtraction property of a linear operator.  (Contributed by NM,
       7-Dec-2007.)  (Revised by Mario Carneiro, 19-Nov-2013.)
       (New usage is discouraged.) $)
    lnosub $p |- ( ( ( U e. NrmCVec /\ W e. NrmCVec /\ T e. L ) /\
  ( A e. X /\ B e. X ) ) -> ( T ` ( A M B ) ) = ( ( T ` A ) N ( T ` B ) ) ) $=
      ( cnv wcel wa cfv co wceq eqid w3a cneg cns cpv neg1cn cba lnolin mp3anr1
      c1 cc ancom2s nvmval2 3expb 3ad2antl1 fveq2d simpl2 wf lnof simpl ffvelrn
      syl2an simpr syl3anc 3eqtr4d ) DNOZHNOZCEOZUAZAIOZBIOZPZPZUIUBZBDUCQZRADU
      DQZRZCQZVMBCQZHUCQZRACQZHUDQZRZABFRZCQVTVRGRZVHVJVIVQWBSZVHVMUJOVJVIWEUEV
      MBAVNVSCDVOWAEHIHUFQZJWFTZVOTZWATZVNTZVSTZMUGUHUKVLWCVPCVEVFVKWCVPSZVGVEV
      IVJWLABVNDVOFIJWHWJKULUMUNUOVLVFVTWFOZVRWFOZWDWBSVEVFVGVKUPVHIWFCUQZVIWMV
      KCDEHIWFJWGMURZVIVJUSIWFACUTVAVHWOVJWNVKWPVIVJVBIWFBCUTVAVTVRVSHWAGWFWGWI
      WKLULVCVD $.
  $}

  ${
    lnomul.1 $e |- X = ( BaseSet ` U ) $.
    lnomul.5 $e |- R = ( .sOLD ` U ) $.
    lnomul.6 $e |- S = ( .sOLD ` W ) $.
    lnomul.7 $e |- L = ( U LnOp W ) $.
    $( Scalar multiplication property of a linear operator.  (Contributed by
       NM, 5-Dec-2007.)  (Revised by Mario Carneiro, 19-Nov-2013.)
       (New usage is discouraged.) $)
    lnomul $p |- ( ( ( U e. NrmCVec /\ W e. NrmCVec /\ T e. L ) /\
       ( A e. CC /\ B e. X ) ) -> ( T ` ( A R B ) ) = ( A S ( T ` B ) ) ) $=
      ( cnv wcel wa co cfv wceq eqid w3a cc cn0v cpv simpl simprl simprr simpl1
      nvzcl syl lnolin syl13anc nvscl syl3anc nv0rid syl2anc fveq2d lno0 oveq2d
      cba adantr simpl2 wf lnof ffvelrnd eqtrd 3eqtr3d ) FNOZHNOZEGOZUAZAUBOZBI
      OZPZPZABCQZFUCRZFUDRZQZERZABERZDQZVQERZHUDRZQZVPERWBVOVKVLVMVQIOZVTWESVKV
      NUEVKVLVMUFZVKVLVMUGZVOVHWFVHVIVJVNUHZFIVQJVQTZUIUJABVQCDEFVRWDGHIHUTRZJW
      KTZVRTZWDTZKLMUKULVOVSVPEVOVHVPIOZVSVPSWIVOVHVLVMWOWIWGWHABCFIJKUMUNVPFVR
      IVQJWMWJUOUPUQVOWEWBHUCRZWDQZWBVKWEWQSVNVKWCWPWBWDVQEFGHIWKWPJWLWJWPTZMUR
      USVAVOVIWBWKOZWQWBSVHVIVJVNVBZVOVIVLWAWKOWSWTWGVOIWKBEVKIWKEVCVNEFGHIWKJW
      LMVDVAWHVEAWADHWKWLLUMUNWBHWDWKWPWLWNWRUOUPVFVG $.
  $}

  ${
    nvo00.1 $e |- X = ( BaseSet ` U ) $.
    $( Two ways to express a zero operator.  (Contributed by NM, 27-Nov-2007.)
       (New usage is discouraged.) $)
    nvo00 $p |- ( ( U e. NrmCVec /\ T : X --> Y ) ->
                  ( T = ( X X. { Z } ) <-> ran T = { Z } ) ) $=
      ( wf wfn c0 wne csn cxp wceq crn wb cnv wcel ffn cn0v cfv eqid nvzcl ne0i
      syl fconst5 syl2anr ) CDAGACHCIJZACEKZLMANUHMOBPQZCDARUIBSTZCQUGBCUJFUJUA
      UBCUJUCUDCEAUEUF $.
  $}

  ${
    $d t u w x z U $.  $d t u w x z W $.  $d t u w z X $.  $d t u w x Y $.
    $d t u w L $.  $d t u w M $.  $d t x z T $.
    nmoofval.1 $e |- X = ( BaseSet ` U ) $.
    nmoofval.2 $e |- Y = ( BaseSet ` W ) $.
    nmoofval.3 $e |- L = ( normCV ` U ) $.
    nmoofval.4 $e |- M = ( normCV ` W ) $.
    nmoofval.6 $e |- N = ( U normOpOLD W ) $.
    $( The operator norm function.  (Contributed by NM, 6-Nov-2007.)  (Revised
       by Mario Carneiro, 16-Nov-2013.)  (New usage is discouraged.) $)
    nmoofval $p |- ( ( U e. NrmCVec /\ W e. NrmCVec ) -> N =
       ( t e. ( Y ^m X ) |-> sup ( { x | E. z e. X
         ( ( L ` z ) <_ 1 /\ x = ( M ` ( t ` z ) ) ) } , RR* , < ) ) ) $=
      ( cmap cv cfv cba cnmcv vu vw cnv wcel wa cnmoo cle wbr wceq wrex cab cxr
      co c1 clt csup fveq2 syl6eqr oveq2d fveq1d breq1d anbi1d rexeqbidv abbidv
      cmpt supeq1d mpteq12dv oveq1d eqeq2d anbi2d rexbidv df-nmoo ovmpt2 syl5eq
      ovex mptex ) DUCUDHUCUDUEGDHUFUMCJIPUMZBQZERZUNUGUHZAQZVRCQRZFRZUIZUEZBIU
      JZAUKZULUOUPZVEZOUAUBDHUCUCCUBQZSRZUAQZSRZPUMZVRWLTRZRZUNUGUHZWAWBWJTRZRZ
      UIZUEZBWMUJZAUKZULUOUPZVEWIUFCWKIPUMZVTWTUEZBIUJZAUKZULUOUPZVEWLDUIZCWNXD
      XEXIXJWMIWKPXJWMDSRIWLDSUQKURZUSXJULXCXHUOXJXBXGAXJXAXFBWMIXKXJWQVTWTXJWP
      VSUNUGXJVRWOEXJWODTREWLDTUQMURUTVAVBVCVDVFVGWJHUIZCXEXIVQWHXLWKJIPXLWKHSR
      JWJHSUQLURVHXLULXHWGUOXLXGWFAXLXFWEBIXLWTWDVTXLWSWCWAXLWBWRFXLWRHTRFWJHTU
      QNURUTVIVJVKVDVFVGABUBUACVLCVQWHJIPVOVPVMVN $.

    $( The operator norm function.  (Contributed by NM, 27-Nov-2007.)  (Revised
       by Mario Carneiro, 16-Nov-2013.)  (New usage is discouraged.) $)
    nmooval $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ T : X --> Y ) ->
      ( N ` T ) = sup ( { x | E. z e. X
        ( ( L ` z ) <_ 1 /\ x = ( M ` ( T ` z ) ) ) } , RR* , < ) ) $=
      ( vt cfv wceq cxr clt cnv wcel wf cv c1 cle wbr wa wrex cab csup cmap cba
      co cvv fvex eqeltri elmap cmpt nmoofval fveq1d fveq1 fveq2d eqeq2d anbi2d
      rexbidv abbidv supeq1d eqid xrltso supex fvmpt sylan9eq sylan2br 3impa )
      DUAUBZHUAUBZIJCUCZCGQZBUDZEQUEUFUGZAUDZVTCQZFQZRZUHZBIUIZAUJZSTUKZRZVRVPV
      QUHZCJIULUNZUBZWJJICJHUMQUOLHUMUPUQIDUMQUOKDUMUPUQURWKWMVSCPWLWAWBVTPUDZQ
      ZFQZRZUHZBIUIZAUJZSTUKZUSZQWIWKCGXBABPDEFGHIJKLMNOUTVAPCXAWIWLXBWNCRZSWTW
      HTXCWSWGAXCWRWFBIXCWQWEWAXCWPWDWBXCWOWCFVTWNCVBVCVDVEVFVGVHXBVISWHTVJVKVL
      VMVNVO $.
  $}

  ${
    $d x z T $.  $d x z W $.  $d x z X $.  $d x z Y $.
    nmosetre.2 $e |- Y = ( BaseSet ` W ) $.
    nmosetre.4 $e |- N = ( normCV ` W ) $.
    $( The set in the supremum of the operator norm definition ~ df-nmoo is a
       set of reals.  (Contributed by NM, 13-Nov-2007.)
       (New usage is discouraged.) $)
    nmosetre $p |- ( ( W e. NrmCVec /\ T : X --> Y ) -> {
     x | E. z e. X ( ( M ` z ) <_ 1 /\ x = ( N ` ( T ` z ) ) ) } C_ RR ) $=
      ( cnv wcel wf wa cv cfv c1 cle wbr cr wceq wrex ffvelrn nvcl sylan2 eleq1
      anassrs syl5ibr impcom adantrl exp31 rexlimdv abssdv ) FKLZGHCMZNZBOZDPQR
      SZAOZUQCPZEPZUAZNZBGUBATUPVCUSTLZBGUPUQGLZVCVDUPVENZVBVDURVBVFVDVFVDVBVAT
      LZUNUOVEVGUOVENUNUTHLVGGHUQCUCUTFEHIJUDUEUGUSVATUFUHUIUJUKULUM $.
  $}

  ${
    $d x y M $.  $d x y N $.  $d x y T $.  $d x y X $.  $d x y Z $.
    nmosetn0.1 $e |- X = ( BaseSet ` U ) $.
    nmosetn0.5 $e |- Z = ( 0vec ` U ) $.
    nmosetn0.4 $e |- M = ( normCV ` U ) $.
    $( The set in the supremum of the operator norm definition ~ df-nmoo is
       nonempty.  (Contributed by NM, 8-Dec-2007.)
       (New usage is discouraged.) $)
    nmosetn0 $p |- ( U e. NrmCVec -> ( N ` ( T ` Z ) ) e. { x | E. y e. X (
       ( M ` y ) <_ 1 /\ x = ( N ` ( T ` y ) ) ) } ) $=
      ( wcel cv cfv c1 cle wbr wceq wa wrex cnv cab cc0 nvz0 0le1 syl6eqbr eqid
      nvzcl jctir fveq2 breq1d fveq2d eqeq2d anbi12d rspcev syl2anc fvex anbi2d
      eqeq1 rexbidv elab sylibr ) DUALZBMZENZOPQZHCNZFNZVDCNZFNZRZSZBGTZVHVFAMZ
      VJRZSZBGTZAUBLVCHGLHENZOPQZVHVHRZSZVMDGHIJUHVCVSVTVCVRUCOPDEHJKUDUEUFVHUG
      UIVLWABHGVDHRZVFVSVKVTWBVEVROPVDHEUJUKWBVJVHVHWBVIVGFVDHCUJULUMUNUOUPVQVM
      AVHVGFUQVNVHRZVPVLBGWCVOVKVFVNVHVJUSURUTVAVB $.
  $}

  ${
    $d x z T $.  $d x z U $.  $d x z W $.  $d x z X $.  $d x z Y $.
    nmoxr.1 $e |- X = ( BaseSet ` U ) $.
    nmoxr.2 $e |- Y = ( BaseSet ` W ) $.
    nmoxr.3 $e |- N = ( U normOpOLD W ) $.
    $( The norm of an operator is an extended real.  (Contributed by NM,
       27-Nov-2007.)  (New usage is discouraged.) $)
    nmoxr $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ T : X --> Y ) ->
              ( N ` T ) e. RR* ) $=
      ( vz vx cnv wcel wf cfv cv cnmcv wa cxr eqid w3a c1 cle wbr wceq wrex cab
      clt csup nmooval wss nmosetre ressxr syl6ss supxrcl syl 3adant1 eqeltrd
      cr ) BLMZDLMZEFANZUAACOJPZBQOZOUBUCUDKPVCAODQOZOUERJEUFKUGZSUHUIZSKJABVDV
      ECDEFGHVDTVETZIUJVAVBVGSMZUTVAVBRZVFSUKVIVJVFUSSKJAVDVEDEFHVHULUMUNVFUOUP
      UQUR $.

    $( The norm of an operator is nonnegative.  (Contributed by NM,
       8-Dec-2007.)  (New usage is discouraged.) $)
    nmooge0 $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ T : X --> Y ) ->
                  0 <_ ( N ` T ) ) $=
      ( vz vx cnv wcel cc0 cfv cnmcv cxr eqid cle wbr wf w3a cn0v 0xr a1i simp2
      cr nvzcl ffvelrn sylan2 3adant2 nvcl syl2anc rexrd nmoxr nvge0 cv c1 wceq
      ancoms wa wrex cab clt wss nmosetre ressxr syl6ss nmosetn0 supxrub syl2an
      csup 3impa 3comr nmooval breqtrrd xrletrd ) BLMZDLMZEFAUAZUBZNBUCOZAOZDPO
      ZOZACOZNQMWAUDUEWAWEWAVSWCFMZWEUGMVRVSVTUFZVRVTWGVSVTVRWGVRVTWBEMWGBEWBGW
      BRZUHEFWBAUIUJUTUKZWCDWDFHWDRZULUMUNABCDEFGHIUOWAVSWGNWESTWHWJWCDWDFHWKUP
      UMWAWEJUQZBPOZOURSTKUQWLAOWDOUSVAJEVBKVCZQVDVLZWFSVSVTVRWEWOSTZVSVTVRWPVS
      VTVAZWNQVEWEWNMWPVRWQWNUGQKJAWMWDDEFHWKVFVGVHKJABWMWDEWBGWIWMRZVIWNWEVJVK
      VMVNKJABWMWDCDEFGHWRWKIVOVPVQ $.

    $( The norm of an operator is either real or plus infinity.  (Contributed
       by NM, 8-Dec-2007.)  (New usage is discouraged.) $)
    nmorepnf $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ T : X --> Y ) ->
                   ( ( N ` T ) e. RR <-> ( N ` T ) =/= +oo ) ) $=
      ( vz vx cnv wcel cv cnmcv cfv cr cpnf wne eqid wf w3a c1 cle wceq wa wrex
      wbr cab cxr clt csup wss nmosetre cn0v nmosetn0 ne0i syl supxrre2 syl2anr
      wb c0 3impb nmooval eleq1d neeq1d 3bitr4d ) BLMZDLMZEFAUAZUBZJNZBOPZPUCUD
      UHKNVLAPDOPZPUEUFJEUGKUIZUJUKULZQMZVPRSZACPZQMVSRSVHVIVJVQVRVAZVIVJUFVOQU
      MVOVBSZVTVHKJAVMVNDEFHVNTZUNVHBUOPZAPVNPZVOMWAKJABVMVNEWCGWCTVMTZUPVOWDUQ
      URVOUSUTVCVKVSVPQKJABVMVNCDEFGHWEWBIVDZVEVKVSVPRWFVFVG $.

    $( The norm of any operator is real iff it is less than plus infinity.
       (Contributed by NM, 8-Dec-2007.)  (New usage is discouraged.) $)
    nmoreltpnf $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ T : X --> Y ) ->
                   ( ( N ` T ) e. RR <-> ( N ` T ) < +oo ) ) $=
      ( cnv wcel wf w3a cfv cr cpnf wne clt wbr nmorepnf cxr wceq wn wb nltpnft
      nmoxr syl necon2abid bitr4d ) BJKDJKEFALMZACNZOKUKPQUKPRSZABCDEFGHITUJULU
      KPUJUKUAKUKPUBULUCUDABCDEFGHIUFUKUEUGUHUI $.

    $( The norm of an operator is greater than minus infinity.  (Contributed by
       NM, 8-Dec-2007.)  (New usage is discouraged.) $)
    nmogtmnf $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ T : X --> Y ) ->
                  -oo < ( N ` T ) ) $=
      ( cnv wcel wf w3a cfv cr cpnf wceq wn wb wo cmnf clt wbr wne df-ne syl6bb
      nmorepnf xor3 nbior sylbir mnfltxr 3syl ) BJKDJKEFALMZACNZOKZUNPQZRZSZUOU
      PTZUAUNUBUCUMUOUNPUDUQABCDEFGHIUGUNPUEUFURUOUPSRUSUOUPUHUOUPUIUJUNUKUL $.
  $}

  ${
    $d x y A $.  $d x y L $.  $d x y M $.  $d x y T $.  $d x y U $.
    $d x y W $.  $d x y X $.  $d x y Y $.
    nmoolb.1 $e |- X = ( BaseSet ` U ) $.
    nmoolb.2 $e |- Y = ( BaseSet ` W ) $.
    nmoolb.l $e |- L = ( normCV ` U ) $.
    nmoolb.m $e |- M = ( normCV ` W ) $.
    nmoolb.3 $e |- N = ( U normOpOLD W ) $.
    $( A lower bound for an operator norm.  (Contributed by NM, 8-Dec-2007.)
       (New usage is discouraged.) $)
    nmoolb $p |- ( ( ( U e. NrmCVec /\ W e. NrmCVec /\ T : X --> Y ) /\
         ( A e. X /\ ( L ` A ) <_ 1 ) ) -> ( M ` ( T ` A ) ) <_ ( N ` T ) ) $=
      ( vy vx cfv cle wa wceq cnv wcel wf w3a c1 wbr cv wrex cab cxr clt wss cr
      nmosetre ressxr syl6ss 3adant1 fveq2 breq1d fveq2d eqeq2d anbi12d biantru
      csup eqid syl6bbr rspcev fvex eqeq1 anbi2d rexbidv sylibr supxrub nmooval
      elab syl2an adantr breqtrrd ) CUAUBZGUAUBZHIBUCZUDZAHUBADQZUERUFZSZSABQZE
      QZOUGZDQZUERUFZPUGZWHBQZEQZTZSZOHUHZPUIZUJUKVDZBFQZRWBWQUJULZWGWQUBZWGWRR
      UFWEVTWAWTVSVTWASWQUMUJPOBDEGHIKMUNUOUPUQWEWJWGWMTZSZOHUHZXAXCWDOAHWHATZX
      CWDWGWGTZSWDXEWJWDXBXFXEWIWCUERWHADURUSXEWMWGWGXEWLWFEWHABURUTVAVBXFWDWGV
      EVCVFVGWPXDPWGWFEVHWKWGTZWOXCOHXGWNXBWJWKWGWMVIVJVKVOVLWQWGVMVPWBWSWRTWEP
      OBCDEFGHIJKLMNVNVQVR $.
  $}

  ${
    $d x z A $.  $d f k r x y z L $.  $d x y U $.  $d x y W $.  $d k r x y Y $.
    $d f k r x y z M $.  $d f k r x y z T $.  $d f k r x y z X $.
    $d k r y N $.
    nmoubi.1 $e |- X = ( BaseSet ` U ) $.
    nmoubi.y $e |- Y = ( BaseSet ` W ) $.
    nmoubi.l $e |- L = ( normCV ` U ) $.
    nmoubi.m $e |- M = ( normCV ` W ) $.
    nmoubi.3 $e |- N = ( U normOpOLD W ) $.
    nmoubi.u $e |- U e. NrmCVec $.
    nmoubi.w $e |- W e. NrmCVec $.
    $( An upper bound for an operator norm.  (Contributed by NM, 11-Dec-2007.)
       (New usage is discouraged.) $)
    nmoubi $p |- ( ( T : X --> Y /\ A e. RR* ) -> ( ( N ` T ) <_ A <->
      A. x e. X ( ( L ` x ) <_ 1 -> ( M ` ( T ` x ) ) <_ A ) ) ) $=
      ( vz cle wi vy wf cxr wcel wa cfv wbr cv c1 wceq wrex cab wral clt wb cnv
      csup nmooval mp3an12 breq1d adantr wss cr nmosetre ressxr supxrleub sylan
      mpan syl6ss bitrd eqeq1 anbi2d rexbidv ralab ralcom4 ancomst impexp bitri
      wal albii fvex breq1 imbi2d ceqsalv ralbii r19.23v 3bitr3i bitr4i syl6bb
      ) IJCUBZBUCUDZUEZCGUFZBSUGZRUHZBSUGZRAUHZEUFUISUGZUAUHZWQCUFZFUFZUJZUEZAI
      UKZUAULZUMZWRXABSUGZTZAIUMZWLWNXEUCUNUQZBSUGZXFWJWNXKUOWKWJWMXJBSDUPUDHUP
      UDZWJWMXJUJPQUAACDEFGHIJKLMNOURUSUTVAWJXEUCVBWKXKXFUOWJXEVCUCXLWJXEVCVBQU
      AACEFHIJLNVDVHVEVIRXEBVFVGVJXFWRWOXAUJZUEZAIUKZWPTZRVSZXIXDXOWPRUAWSWOUJZ
      XCXNAIXRXBXMWRWSWOXAVKVLVMVNXNWPTZRVSZAIUMXSAIUMZRVSXIXQXSARIVOXTXHAIXTXM
      WRWPTZTZRVSXHXSYCRXSXMWRUEWPTYCWRXMWPVPXMWRWPVQVRVTYBXHRXAWTFWAXMWPXGWRWO
      XABSWBWCWDVRWEYAXPRXNWPAIWFVTWGWHWI $.

    $( An upper bound for an operator norm.  (Contributed by NM, 12-Dec-2007.)
       (New usage is discouraged.) $)
    nmoub3i $p |- ( ( T : X --> Y /\ A e. RR /\ A. x e. X
  ( M ` ( T ` x ) ) <_ ( A x. ( L ` x ) ) ) -> ( N ` T ) <_ ( abs ` A ) ) $=
      ( wcel cle wbr wf cr cv cfv cmul co wral cabs wa c1 cnv nvcl mpan remulcl
      wi sylan2 adantr recn abscld syl2an ad2antrr cc0 simpl nvge0 adantl leabs
      jca lemul1a syl31anc 1red absge0d 3jca lemul2a sylan wceq mulid1d breqtrd
      w3a recnd letrd adantlll ffvelrn sylancr adantlr adantll ad2antlr syl3anc
      letr mpan2d ex com23 ralimdva imp cxr rexrd nmoubi biimpar syldan 3impa
      wb ) IJCUAZBUBRZAUCZCUDZFUDZBXCEUDZUEUFZSTZAIUGZCGUDBUHUDZSTZXAXBUIZXIXFU
      JSTZXEXJSTZUOZAIUGZXKXLXIXPXLXHXOAIXLXCIRZUIZXMXHXNXRXMXHXNUOXRXMUIXHXGXJ
      STZXNXBXQXMXSXAXBXQUIZXMUIZXGXJXFUEUFZXJXTXGUBRZXMXQXBXFUBRZYCDUKRZXQYDPX
      CDEIKMULUMZBXFUNUPZUQXTYBUBRZXMXBXJUBRZYDYHXQXBBBURZUSZYFXJXFUNUTUQXBYIXQ
      XMYKVAXTXGYBSTZXMXTXBYIYDVBXFSTZUIZBXJSTZYLXBXQVCXBYIXQYKUQZXQYNXBXQYDYMY
      FYEXQYMPXCDEIKMVDUMVGVEXBYOXQBVFUQBXJXFVHVIUQYAYBXJUJUEUFZXJSXTYDUJUBRZYI
      VBXJSTZUIZVRXMYBYQSTXTYDYRYTXQYDXBYFVEXTVJXTYIYSYPXBYSXQXBBYJVKUQVGVLXFUJ
      XJVMVNXBYQXJVOXQXMXBXJXBXJYKVSVPVAVQVTWAXRXHXSUIXNUOZXMXRXEUBRZYCYIUUAXAX
      QUUBXBXAXQUIHUKRXDJRUUBQIJXCCWBXDHFJLNULWCWDXBXQYCXAYGWEXBYIXAXQYKWFXEXGX
      JWHWGUQWIWJWKWLWMXLXKXPXBXAXJWNRXKXPWTXBXJYKWOAXJCDEFGHIJKLMNOPQWPUPWQWRW
      S $.

    $( An upper bound for an operator norm.  (Contributed by NM, 11-Dec-2007.)
       (New usage is discouraged.) $)
    nmoub2i $p |- ( ( T : X --> Y /\ ( A e. RR /\ 0 <_ A ) /\ A. x e. X
  ( M ` ( T ` x ) ) <_ ( A x. ( L ` x ) ) ) -> ( N ` T ) <_ A ) $=
      ( cle wbr cfv wf cr wcel cc0 wa cv cmul co wral w3a cabs nmoub3i 3adant2r
      wceq absid 3ad2ant2 breqtrd ) IJCUAZBUBUCZUDBRSZUEZAUFZCTFTBVBETUGUHRSAIU
      IZUJCGTZBUKTZBRURUSVCVDVERSUTABCDEFGHIJKLMNOPQULUMVAURVEBUNVCBUOUPUQ $.

    $( Two ways to express that an operator is bounded.  (Contributed by NM,
       11-Jan-2008.)  (New usage is discouraged.) $)
    nmobndi $p |- ( T : X --> Y -> ( ( N ` T ) e. RR <->
     E. r e. RR A. y e. X ( ( L ` y ) <_ 1 -> ( M ` ( T ` y ) ) <_ r ) ) ) $=
      ( cr wcel cle wf cfv cv wbr wrex c1 wral leid breq2 rspcev mpdan cxr cmnf
      wi wa clt cnv nmoxr mp3an12 adantr simprl nmogtmnf simprr xrre rexlimdvaa
      syl22anc impbid2 wb rexr nmoubi sylan2 rexbidva bitrd ) HIBUAZBFUBZRSZVOJ
      UCZTUDZJRUEZAUCZDUBUFTUDVTBUBEUBVQTUDUNAHUGZJRUEVNVPVSVPVOVOTUDZVSVOUHVRW
      BJVORVQVOVOTUIUJUKVNVRVPJRVNVQRSZVRUOZUOVOULSZWCUMVOUPUDZVRVPVNWEWDCUQSZG
      UQSZVNWEPQBCFGHIKLOURUSUTVNWCVRVAVNWFWDWGWHVNWFPQBCFGHIKLOVBUSUTVNWCVRVCV
      OVQVDVFVEVGVNVRWAJRWCVNVQULSVRWAVHVQVIAVQBCDEFGHIKLMNOPQVJVKVLVM $.

    $( Two ways two express that an operator is unbounded.  (Contributed by NM,
       11-Jan-2008.)  (New usage is discouraged.) $)
    nmounbi $p |- ( T : X --> Y -> ( ( N ` T ) = +oo <->
      A. r e. RR E. y e. X ( ( L ` y ) <_ 1 /\ r < ( M ` ( T ` y ) ) ) ) ) $=
      ( cfv cr wcel wf cv c1 cle wbr clt wa wrex wral cpnf wi wne wn nmobndi wb
      cnv nmorepnf mp3an12 ffvelrn nvcl sylancr lenlt sylan an32s imbi2d syl6bb
      imnan ralbidva ralnex rexbidva rexnal 3bitr3d necon4abid ) HIBUAZAUBZDRUC
      UDUEZJUBZVOBRZERZUFUEZUGZAHUHZJSUIZBFRZUJVNWDSTZVPVSVQUDUEZUKZAHUIZJSUHZW
      DUJULZWCUMZABCDEFGHIJKLMNOPQUNCUPTGUPTZVNWEWJUOPQBCFGHIKLOUQURVNWIWBUMZJS
      UHWKVNWHWMJSVNVQSTZUGZWHWAUMZAHUIWMWOWGWPAHWOVOHTZUGZWGVPVTUMZUKWPWRWFWSV
      PVNWQWNWFWSUOZVNWQUGZVSSTZWNWTXAWLVRITXBQHIVOBUSVRGEILNUTVAVSVQVBVCVDVEVP
      VTVGVFVHWAAHVIVFVJWBJSVKVFVLVM $.

    $( An unbounded operator determines an unbounded sequence.  (Contributed by
       NM, 11-Jan-2008.)  (Revised by Mario Carneiro, 7-Apr-2013.)
       (New usage is discouraged.) $)
    nmounbseqi $p |- ( ( T : X --> Y /\ ( N ` T ) = +oo ) ->
         E. f ( f : NN --> X /\ A. k e. NN ( ( L ` ( f ` k ) ) <_ 1 /\
          k < ( M ` ( T ` ( f ` k ) ) ) ) ) ) $=
      ( vy cfv cn wf cpnf wceq wa cv c1 cle wbr clt wrex cr wral nmounbi biimpa
      wex wcel nnre imim1i ralimi2 cba fvex eqeltri nnenom breq1d fveq2d breq2d
      cvv fveq2 anbi12d axcc4 3syl ) IJAUAZAGSUBUCZUDRUEZESZUFUGUHZDUEZVNASZFSZ
      UIUHZUDZRIUJZDUKULZWBDTULTICUEZUAVQWDSZESZUFUGUHZVQWEASZFSZUIUHZUDZDTULUD
      CUOVLVMWCRABEFGHIJDKLMNOPQUMUNWBWBDUKTVQTUPVQUKUPWBVQUQURUSWAWKRICDTIBUTS
      VGKBUTVAVBVCVNWEUCZVPWGVTWJWLVOWFUFUGVNWEEVHVDWLVSWIVQUIWLVRWHFVNWEAVHVEV
      FVIVJVK $.

    $( Alternate shorter proof of ~ nmounbseqi based on axioms ~ ax-reg and
       ~ ax-ac2 instead of ~ ax-cc .  (Contributed by NM, 11-Jan-2008.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    nmounbseqiALT $p |- ( ( T : X --> Y /\ ( N ` T ) = +oo ) ->
         E. f ( f : NN --> X /\ A. k e. NN ( ( L ` ( f ` k ) ) <_ 1 /\
          k < ( M ` ( T ` ( f ` k ) ) ) ) ) ) $=
      ( vy cfv cn wf cpnf wceq wa cv c1 cle wbr clt wrex cr wral nmounbi biimpa
      wex wcel nnre imim1i ralimi2 nnex fveq2 breq1d fveq2d breq2d anbi12d ac6s
      3syl ) IJAUAZAGSUBUCZUDRUEZESZUFUGUHZDUEZVJASZFSZUIUHZUDZRIUJZDUKULZVRDTU
      LTICUEZUAVMVTSZESZUFUGUHZVMWAASZFSZUIUHZUDZDTULUDCUOVHVIVSRABEFGHIJDKLMNO
      PQUMUNVRVRDUKTVMTUPVMUKUPVRVMUQURUSVQWGDRTICUTVJWAUCZVLWCVPWFWHVKWBUFUGVJ
      WAEVAVBWHVOWEVMUIWHVNWDFVJWAAVAVCVDVEVFVG $.

    $( A bounded sequence determines a bounded operator.  (Contributed by NM,
       18-Jan-2008.)  (Revised by Mario Carneiro, 7-Apr-2013.)
       (New usage is discouraged.) $)
    nmobndseqi $p |- ( ( T : X --> Y /\
         A. f ( ( f : NN --> X /\ A. k e. NN ( L ` ( f ` k ) ) <_ 1 ) ->
        E. k e. NN ( M ` ( T ` ( f ` k ) ) ) <_ k ) ) -> ( N ` T ) e. RR ) $=
      ( cn cfv wi vy wf cv c1 cle wbr wral wa wrex cr wcel impexp r19.35 imbi2i
      wal bitr4i albii wex cba cvv fvex eqeltri nnenom wceq fveq2 breq1d fveq2d
      wn imbi12d notbid axcc4 con3i dfrex2 alinexa dfral2 rexbii rexnal 3imtr4i
      bitri nnre anim1i reximi2 syl sylbi nmobndi syl5ibr imp ) IJAUBZRICUCZUBZ
      DUCZWISZESZUDUEUFZDRUGZUHWLASZFSZWKUEUFZDRUIZTZCUOZAGSUJUKZXAXBWHUAUCZESZ
      UDUEUFZXCASZFSZWKUEUFZTZUAIUGZDUJUIZXAWJWNWRTZDRUIZTZCUOZXKWTXNCWTWJWOWST
      ZTXNWJWOWSULXMXPWJWNWRDRUMUNUPUQXOXJDRUIZXKWJXLVHZDRUGZUHCURZVHZXIVHZUAIU
      IZDRUGZVHZXOXQYDXTYBXRUAICDRIBUSSUTKBUSVAVBVCXCWLVDZXIXLYFXEWNXHWRYFXDWMU
      DUEXCWLEVEVFYFXGWQWKUEYFXFWPFXCWLAVEVGVFVIVJVKVLXOWJXSVHZTZCUOYAXNYHCXMYG
      WJXLDRVMUNUQWJXSCVNVSXQYCVHZDRUIYEXJYIDRXIUAIVOVPYCDRVQVSVRXJXJDRUJWKRUKW
      KUJUKXJWKVTWAWBWCWDUAABEFGHIJDKLMNOPQWEWFWG $.

    $( Alternate shorter proof of ~ nmobndseqi based on axioms ~ ax-reg and
       ~ ax-ac2 instead of ~ ax-cc .  (Contributed by NM, 18-Jan-2008.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    nmobndseqiALT $p |- ( ( T : X --> Y /\
         A. f ( ( f : NN --> X /\ A. k e. NN ( L ` ( f ` k ) ) <_ 1 ) ->
        E. k e. NN ( M ` ( T ` ( f ` k ) ) ) <_ k ) ) -> ( N ` T ) e. RR ) $=
      ( cn cfv cle vy wf cv c1 wbr wral wa wrex wi cr wcel impexp r19.35 imbi2i
      wal bitr4i albii nnex wceq breq1d fveq2d imbi12d ac6n nnre anim1i reximi2
      fveq2 syl sylbi nmobndi syl5ibr imp ) IJAUBZRICUCZUBZDUCZVNSZESZUDTUEZDRU
      FZUGVQASZFSZVPTUEZDRUHZUIZCUOZAGSUJUKZWFWGVMUAUCZESZUDTUEZWHASZFSZVPTUEZU
      IZUAIUFZDUJUHZWFVOVSWCUIZDRUHZUIZCUOZWPWEWSCWEVOVTWDUIZUIWSVOVTWDULWRXAVO
      VSWCDRUMUNUPUQWTWODRUHWPWNWQDUARICURWHVQUSZWJVSWMWCXBWIVRUDTWHVQEVGUTXBWL
      WBVPTXBWKWAFWHVQAVGVAUTVBVCWOWODRUJVPRUKVPUJUKWOVPVDVEVFVHVIUAABEFGHIJDKL
      MNOPQVJVKVL $.
  $}

  ${
    $d t u w L $.  $d t u w N $.  $d t T $.  $d t u w U $.  $d t u w W $.
    bloval.3 $e |- N = ( U normOpOLD W ) $.
    bloval.4 $e |- L = ( U LnOp W ) $.
    bloval.5 $e |- B = ( U BLnOp W ) $.
    $( The class of bounded linear operators between two normed complex vector
       spaces.  (Contributed by NM, 6-Nov-2007.)  (Revised by Mario Carneiro,
       16-Nov-2013.)  (New usage is discouraged.) $)
    bloval $p |- ( ( U e. NrmCVec /\ W e. NrmCVec ) ->
                   B = { t e. L | ( N ` t ) < +oo } ) $=
      ( vu vw cnv co cv cfv cpnf clt wbr cnmoo clno wcel cblo crab oveq1 fveq1d
      wceq breq1d rabeqbidv oveq2 syl6eqr df-blo cvv ovex eqeltri ovmpt2 syl5eq
      wa rabex ) CLUAFLUAUQBCFUBMANZEOZPQRZADUCZIJKCFLLUSJNZKNZSMZOZPQRZAVCVDTM
      ZUCVBUBUSCVDSMZOZPQRZACVDTMZUCVCCUFZVGVKAVHVLVCCVDTUDVMVFVJPQVMUSVEVIVCCV
      DSUDUEUGUHVDFUFZVKVAAVLDVNVLCFTMZDVDFCTUIHUJVNVJUTPQVNUSVIEVNVICFSMEVDFCS
      UIGUJUEUGUHKJAUKVAADDVOULHCFTUMUNURUOUP $.

    $( The predicate "is a bounded linear operator."  (Contributed by NM,
       6-Nov-2007.)  (New usage is discouraged.) $)
    isblo $p |- ( ( U e. NrmCVec /\ W e. NrmCVec ) -> ( T e. B <->
      ( T e. L /\ ( N ` T ) < +oo ) ) ) $=
      ( vt cnv wcel wa cv cfv cpnf clt wbr crab bloval eleq2d wceq fveq2 breq1d
      elrab syl6bb ) CKLFKLMZBALBJNZEOZPQRZJDSZLBDLBEOZPQRZMUGAUKBJACDEFGHITUAU
      JUMJBDUHBUBUIULPQUHBEUCUDUEUF $.

    $( The predicate "is a bounded linear operator."  (Contributed by NM,
       8-Dec-2007.)  (New usage is discouraged.) $)
    isblo2 $p |- ( ( U e. NrmCVec /\ W e. NrmCVec ) -> ( T e. B <->
      ( T e. L /\ ( N ` T ) e. RR ) ) ) $=
      ( cnv wcel wa cfv cpnf clt wbr cr isblo cba eqid lnof nmoreltpnf syld3an3
      wb wf 3expa pm5.32da bitr4d ) CJKZFJKZLZBAKBDKZBEMZNOPZLULUMQKZLABCDEFGHI
      RUKULUOUNUIUJULUOUNUDZUIUJULCSMZFSMZBUEUPBCDFUQURUQTZURTZHUABCEFUQURUSUTG
      UBUCUFUGUH $.
  $}

  ${
    bloln.4 $e |- L = ( U LnOp W ) $.
    bloln.5 $e |- B = ( U BLnOp W ) $.
    $( A bounded operator is a linear operator.  (Contributed by NM,
       8-Dec-2007.)  (New usage is discouraged.) $)
    bloln $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ T e. B ) -> T e. L ) $=
      ( cnv wcel wa cnmoo co cfv cpnf clt wbr eqid isblo simprbda 3impa ) CHIZE
      HIZBAIZBDIZUAUBJUCUDBCEKLZMNOPABCDUEEUEQFGRST $.
  $}

  ${
    blof.1 $e |- X = ( BaseSet ` U ) $.
    blof.2 $e |- Y = ( BaseSet ` W ) $.
    blof.5 $e |- B = ( U BLnOp W ) $.
    $( A bounded operator is an operator.  (Contributed by NM, 8-Dec-2007.)
       (New usage is discouraged.) $)
    blof $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ T e. B ) -> T : X --> Y ) $=
      ( cnv wcel clno co wf eqid bloln lnof syld3an3 ) CJKDJKBAKBCDLMZKEFBNABCS
      DSOZIPBCSDEFGHTQR $.
  $}

  ${
    nmblore.1 $e |- X = ( BaseSet ` U ) $.
    nmblore.2 $e |- Y = ( BaseSet ` W ) $.
    nmblore.3 $e |- N = ( U normOpOLD W ) $.
    nmblore.5 $e |- B = ( U BLnOp W ) $.
    $( The norm of a bounded operator is a real number.  (Contributed by NM,
       8-Dec-2007.)  (New usage is discouraged.) $)
    nmblore $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ T e. B ) ->
                ( N ` T ) e. RR ) $=
      ( cnv wcel w3a cfv cr clt wbr syld3an3 wa cmnf cpnf wf blof nmogtmnf clno
      co eqid isblo simplbda 3impa cxr wb nmoxr xrrebnd syl mpbir2and ) CLMZELM
      ZBAMZNZBDOZPMZUAVBQRZVBUBQRZURUSUTFGBUCZVDABCEFGHIKUDZBCDEFGHIJUESURUSUTV
      EURUSTUTBCEUFUGZMVEABCVHDEJVHUHKUIUJUKVAVBULMZVCVDVETUMURUSUTVFVIVGBCDEFG
      HIJUNSVBUOUPUQ $.
  $}

  ${
    $d u w U $.  $d u w W $.  $d u w X $.  $d u w Z $.
    0oval.1 $e |- X = ( BaseSet ` U ) $.
    0oval.6 $e |- Z = ( 0vec ` W ) $.
    0oval.0 $e |- O = ( U 0op W ) $.
    $( The zero operator between two normed complex vector spaces.
       (Contributed by NM, 28-Nov-2007.)  (Revised by Mario Carneiro,
       16-Nov-2013.)  (New usage is discouraged.) $)
    0ofval $p |- ( ( U e. NrmCVec /\ W e. NrmCVec ) -> O = ( X X. { Z } ) ) $=
      ( vu vw cnv wcel c0o csn cxp cv cba cfv cn0v wceq wa fveq2 syl6eqr xpeq1d
      co sneqd xpeq2d df-0o cvv fvex eqeltri snex xpex ovmpt2 syl5eq ) AKLCKLUA
      BACMUEDENZOZHIJACKKIPZQRZJPZSRZNZOUQMDVBOURATZUSDVBVCUSAQRZDURAQUBFUCUDUT
      CTZVBUPDVEVAEVEVACSREUTCSUBGUCUFUGJIUHDUPDVDUIFAQUJUKEULUMUNUO $.

    $( Value of the zero operator.  (Contributed by NM, 28-Nov-2007.)
       (New usage is discouraged.) $)
    0oval $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ A e. X ) ->
            ( O ` A ) = Z ) $=
      ( cnv wcel w3a cfv csn cxp wceq wa 0ofval fveq1d cn0v 3adant3 cvv eqeltri
      fvex fvconst2 3ad2ant3 eqtrd ) BJKZDJKZAEKZLACMZAEFNOZMZFUHUIUKUMPUJUHUIQ
      ACULBCDEFGHIRSUAUJUHUMFPUIEFAFDTMUBHDTUDUCUEUFUG $.
  $}

  ${
    0oo.1 $e |- X = ( BaseSet ` U ) $.
    0oo.2 $e |- Y = ( BaseSet ` W ) $.
    0oo.0 $e |- Z = ( U 0op W ) $.
    $( The zero operator is an operator.  (Contributed by NM, 28-Nov-2007.)
       (New usage is discouraged.) $)
    0oo $p |- ( ( U e. NrmCVec /\ W e. NrmCVec ) -> Z : X --> Y ) $=
      ( cnv wcel wa wf cn0v cfv csn cxp wss fvex fconst eqid nvzcl snssd adantl
      fss sylancr 0ofval feq1d mpbird ) AIJZBIJZKZCDELCDCBMNZOZPZLZUJUOUIUJCUMU
      NLUMDQUOCULBMRSUJULDBDULGULTZUAUBCUMDUNUDUEUCUKCDEUNAEBCULFUPHUFUGUH $.
  $}

  ${
    $d x y z U $.  $d x y z W $.  $d x y z Z $.
    0lno.0 $e |- Z = ( U 0op W ) $.
    0lno.7 $e |- L = ( U LnOp W ) $.
    $( The zero operator is linear.  (Contributed by NM, 28-Nov-2007.)
       (Revised by Mario Carneiro, 19-Nov-2013.)
       (New usage is discouraged.) $)
    0lno $p |- ( ( U e. NrmCVec /\ W e. NrmCVec ) -> Z e. L ) $=
      ( vx vy vz wcel wa cfv cv co wceq wral cc eqid syl3anc 0oval cnv cba cn0v
      cns cpv 0oo simplll simpllr simplr simprl nvscl simprr nvgcl oveq12d nvsz
      oveq2d syl2anc oveq1d nvzcl syl nv0rid 3eqtrd eqtr4d ralrimivva ralrimiva
      wf islno mpbir2and ) AUAJZCUAJZKZDBJAUBLZCUBLZDVFGMZHMZAUDLZNZIMZAUELZNZD
      LZVNVODLZCUDLZNZVRDLZCUELZNZOZIVLPHVLPZGQPACVLVMDVLRZVMRZEUFVKWIGQVKVNQJZ
      KZWHHIVLVLWMVOVLJZVRVLJZKZKZWACUCLZWGWQVIVJVTVLJZWAWROVIVJWLWPUGZVIVJWLWP
      UHZWQVIVQVLJZWOWSWTWQVIWLWNXBWTVKWLWPUIZWMWNWOUJZVNVOVPAVLWJVPRZUKSWMWNWO
      ULZVQVRAVSVLWJVSRZUMSVTADCVLWRWJWRRZETSWQWGVNWRWCNZWRWFNWRWRWFNZWRWQWDXIW
      EWRWFWQWBWRVNWCWQVIVJWNWBWROWTXAXDVOADCVLWRWJXHETSUPWQVIVJWOWEWROWTXAXFVR
      ADCVLWRWJXHETSUNWQXIWRWRWFWQVJWLXIWROXAXCVNWCCWRWCRZXHUOUQURWQVJWRVMJZXJW
      ROXAWQVJXLXACVMWRWKXHUSUTWRCWFVMWRWKWFRZXHVAUQVBVCVDVEGHIVPWCDAVSWFBCVLVM
      WJWKXGXMXEXKFVGVH $.
  $}

  ${
    $d x z U $.  $d x z W $.  $d x z Z $.
    nmoo0.3 $e |- N = ( U normOpOLD W ) $.
    nmoo0.0 $e |- Z = ( U 0op W ) $.
    $( The operator norm of the zero operator.  (Contributed by NM,
       27-Nov-2007.)  (New usage is discouraged.) $)
    nmoo0 $p |- ( ( U e. NrmCVec /\ W e. NrmCVec ) ->
         ( N ` Z ) = 0 ) $=
      ( vz vx cnv wcel wa cfv cc0 cxr clt c1 cle wceq wrex eqid csn csup cv wbr
      cnmcv cba cab wf 0oo nmooval mpd3an3 df-sn cn0v nvzcl nvz0 syl6eqbr fveq2
      wb 0le1 breq1d rspcev syl2anc biantrurd adantr 0oval 3expa ad2antlr eqtrd
      fveq2d eqeq2d anbi2d rexbidva r19.41v syl6rbb bitrd abbidv syl5req xrltso
      supeq1d wor 0xr supsn mp2an syl6eq ) AIJZCIJZKZDBLZMUAZNOUBZMWGWHGUCZAUEL
      ZLZPQUDZHUCZWKDLZCUELZLZRZKZGAUFLZSZHUGZNOUBZWJWEWFXACUFLZDUHWHXDRACXAXED
      XATZXETZFUIHGDAWLWQBCXAXEXFXGWLTZWQTZEUJUKWGNXCWIOWGWIWOMRZHUGXCHMULWGXJX
      BHWGXJWNGXASZXJKZXBWEXJXLURWFWEXKXJWEAUMLZXAJXMWLLZPQUDZXKAXAXMXFXMTZUNWE
      XNMPQAWLXMXPXHUOUSUPWNXOGXMXAWKXMRWMXNPQWKXMWLUQUTVAVBVCVDWGXBWNXJKZGXASX
      LWGWTXQGXAWGWKXAJZKZWSXJWNXSWRMWOXSWRCUMLZWQLZMXSWPXTWQWEWFXRWPXTRWKADCXA
      XTXFXTTZFVEVFVIWFYAMRWEXRCWQXTYBXIUOVGVHVJVKVLWNXJGXAVMVNVOVPVQVSVHNOVTMN
      JWJMRVRWANMOWBWCWD $.
  $}

  ${
    0blo.0 $e |- Z = ( U 0op W ) $.
    0blo.7 $e |- B = ( U BLnOp W ) $.
    $( The zero operator is a bounded linear operator.  (Contributed by NM,
       8-Dec-2007.)  (New usage is discouraged.) $)
    0blo $p |- ( ( U e. NrmCVec /\ W e. NrmCVec ) -> Z e. B ) $=
      ( cnv wcel wa clno co cnmoo cfv cr eqid 0lno cc0 nmoo0 0re syl6eqel
      isblo2 mpbir2and ) BGHCGHIZDAHDBCJKZHDBCLKZMZNHBUDCDEUDOZPUCUFQNBUECDUEOZ
      ERSTADBUDUECUHUGFUAUB $.
  $}

  ${
    $d y z K $.  $d y z M $.  $d x N $.  $d z R $.  $d y z S $.  $d x y z T $.
    $d y z U $.  $d y z W $.  $d x y z X $.  $d y z Y $.  $d x Z $.
    nmlno0.3 $e |- N = ( U normOpOLD W ) $.
    nmlno0.0 $e |- Z = ( U 0op W ) $.
    nmlno0.7 $e |- L = ( U LnOp W ) $.
    ${
      nmlno0lem.u $e |- U e. NrmCVec $.
      nmlno0lem.w $e |- W e. NrmCVec $.
      nmlno0lem.l $e |- T e. L $.
      nmlno0lem.1 $e |- X = ( BaseSet ` U ) $.
      nmlno0lem.2 $e |- Y = ( BaseSet ` W ) $.
      nmlno0lem.r $e |- R = ( .sOLD ` U ) $.
      nmlno0lem.s $e |- S = ( .sOLD ` W ) $.
      nmlno0lem.p $e |- P = ( 0vec ` U ) $.
      nmlno0lem.q $e |- Q = ( 0vec ` W ) $.
      nmlno0lem.k $e |- K = ( normCV ` U ) $.
      nmlno0lem.m $e |- M = ( normCV ` W ) $.
      $( Lemma for ~ nmlno0i .  (Contributed by NM, 28-Nov-2007.)
         (New usage is discouraged.) $)
      nmlno0lem $p |- ( ( N ` T ) = 0 <-> T = Z ) $=
        ( vx vz vy cfv cc0 wceq cv wral wcel wa wne wn c1 cdiv co clt wbr wi cc
        cnv cr nvcl mpan recnd adantr wb fveq2 lno0 mp3an syl6eq syl6bi necon3d
        nvz recne0d simpr wo reccld wf lnof ffvelrni nvmul0or mp3an1 necon3abid
        imp syl2anc neanior syl6bbr mpbir2and nvscl nvgt0 sylancr ex adantl cle
        mpbid wrex cab cxr wss nmosetre mp2an ressxr sstri simpl necon3i sylan2
        nv1 1re syl6eqel w3a 3pm3.2i lnomul eqcomd fveq2d breq1d eqeq2d anbi12d
        csup eqle rspcev syl12anc fvex eqeq1 anbi2d rexbidv elab sylibr supxrub
        adantll wfn ffn ax-mp nmooval eqeq1i ad2antrr breqtrd 0re lenlt sylancl
        biimpi pm2.65d sylib 0oval mp3an12 eqtr4d ralrimiva eqfnfv nmoo0 impbii
        nne 0oo ) EJULZUMUNZENUNZUVAUIUOZEULZUVCNULZUNZUILUPZUVBUVAUVFUILUVAUVC
        LUQZURZUVDBUVEUVIUVDBUSZUTUVDBUNZUVIUVJUMVAUVCGULZVBVCZUVDDVCZIULZVDVEZ
        UVHUVJUVPVFUVAUVHUVJUVPUVHUVJURZUVNBUSZUVPUVQUVRUVMUMUSZUVJUVQUVLUVHUVL
        VGUQUVJUVHUVLFVHUQZUVHUVLVIUQRUVCFGLUAUGVJVKVLVMZUVHUVJUVLUMUSUVHUVLUMU
        VDBUVHUVLUMUNZUVCAUNZUVKUVTUVHUWBUWCVNRUVCFGLAUAUEUGWAVKUWCUVDAEULZBUVC
        AEVOUVTKVHUQZEHUQZUWDBUNRSTAEFHKLMBUAUBUEUFQVPVQVRZVSVTWLZWBUVHUVJWCUVQ
        UVRUVMUMUNUVKWDZUTUVSUVJURUVQUWIUVNBUVQUVMVGUQZUVDMUQZUVNBUNUWIVNZUVQUV
        LUWAUWHWEZUVHUWKUVJLMUVCEUVTUWEUWFLMEWFZRSTEFHKLMUAUBQWGVQZWHVMZUWEUWJU
        WKUWLSUVMUVDDKMBUBUDUFWIWJWMWKUVMUMUVDBWNWOWPUVQUWEUVNMUQZUVRUVPVNSUVQU
        WJUWKUWQUWMUWPUWEUWJUWKUWQSUVMUVDDKMUBUDWQWJWMZUVNKIMBUBUFUHWRWSXCWTXAU
        VIUVJUVPUTZUVIUVJURZUVOUMXBVEZUWSUWTUVOUJUOZGULZVAXBVEZUKUOZUXBEULZIULZ
        UNZURZUJLXDZUKXEZXFVDYFZUMXBUVHUVJUVOUXLXBVEZUVAUVQUXKXFXGUVOUXKUQZUXMU
        XKVIXFUWEUWNUXKVIXGSUWOUKUJEGIKLMUBUHXHXIXJXKUVQUXDUVOUXGUNZURZUJLXDZUX
        NUVQUVMUVCCVCZLUQZUXRGULZVAXBVEZUVOUXREULZIULZUNZUXQUVQUWJUVHUXSUWMUVHU
        VJXLZUVTUWJUVHUXSRUVMUVCCFLUAUCWQWJWMUVQUXTVIUQUXTVAUNZUYAUVQUXTVAVIUVJ
        UVHUVCAUSZUYFUVCAUVDBUWGXMUVTUVHUYGUYFRUVCCFGLAUAUCUEUGXOWJXNZXPXQUYHUX
        TVAYGWMUVQUVNUYBIUVQUYBUVNUVQUWJUVHUYBUVNUNZUWMUYEUVTUWEUWFXRUWJUVHURUY
        IUVTUWEUWFRSTXSUVMUVCCDEFHKLUAUCUDQXTVKWMYAYBUXPUYAUYDURUJUXRLUXBUXRUNZ
        UXDUYAUXOUYDUYJUXCUXTVAXBUXBUXRGVOYCUYJUXGUYCUVOUYJUXFUYBIUXBUXREVOYBYD
        YEYHYIUXJUXQUKUVOUVNIYJUXEUVOUNZUXIUXPUJLUYKUXHUXOUXDUXEUVOUXGYKYLYMYNY
        OUXKUVOYPWSYQUVAUXLUMUNZUVHUVJUVAUYLUUTUXLUMUVTUWEUWNUUTUXLUNRSUWOUKUJE
        FGIJKLMUAUBUGUHOUUAVQUUBUUHUUCUUDUVHUVJUXAUWSVNZUVAUVQUVOVIUQZUMVIUQUYM
        UVQUWEUWQUYNSUWRUVNKIMUBUHVJWSUUEUVOUMUUFUUGYQXCWTUUIUVDBUURUUJUVHUVEBU
        NZUVAUVTUWEUVHUYORSUVCFNKLBUAUFPUUKUULXAUUMUUNELYRZNLYRZUVBUVGVNUWNUYPU
        WOLMEYSYTLMNWFZUYQUVTUWEUYRRSFKLMNUAUBPUUSXILMNYSYTUILENUUOXIYOUVBUUTNJ
        ULZUMENJVOUVTUWEUYSUMUNRSFJKNOPUUPXIVRUUQ $.
    $}

    ${
      nmlno0i.u $e |- U e. NrmCVec $.
      nmlno0i.w $e |- W e. NrmCVec $.
      $( The norm of a linear operator is zero iff the operator is zero.
         (Contributed by NM, 6-Dec-2007.)  (New usage is discouraged.) $)
      nmlno0i $p |- ( T e. L -> ( ( N ` T ) = 0 <-> T = Z ) ) $=
        ( wcel cfv cc0 wceq wb cn0v cns cnmcv eqid cif fveq2 eqeq1d bibi12d cba
        eqeq1 cnv 0lno mp2an elimel nmlno0lem dedth ) ACLZADMZNOZAFOZPUMAFUAZDM
        ZNOZUQFOZPAFAUQOZUOUSUPUTVAUNURNAUQDUBUCAUQFUFUDBQMZEQMZBRMZERMZUQBBSMZ
        CESMZDEBUEMZEUEMZFGHIJKAFCBUGLEUGLFCLJKBCEFHIUHUIUJVHTVITVDTVETVBTVCTVF
        TVGTUKUL $.
    $}

    $( The norm of a linear operator is zero iff the operator is zero.
       (Contributed by NM, 24-Nov-2007.)  (New usage is discouraged.) $)
    nmlno0 $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ T e. L ) ->
       ( ( N ` T ) = 0 <-> T = Z ) ) $=
      ( wcel cfv cc0 wceq wb wi clno co cnmoo c0o oveq1 cnv caddc cmul cop cabs
      cif syl5eq eleq2d fveq1d eqeq1d eqeq2d bibi12d imbi12d oveq2 eqid elimnvu
      nmlno0i dedth2h 3impia ) BUAJZEUAJZACJZADKZLMZAFMZNZUTVAVBVFOAUTBUBUCUDUE
      UDZUFZEPQZJZAVHERQZKZLMZAVHESQZMZNZOAVHVAEVGUFZPQZJZAVHVQRQZKZLMZAVHVQSQZ
      MZNZOBEVGVGBVHMZVBVJVFVPWFCVIAWFCBEPQVIIBVHEPTUGUHWFVDVMVEVOWFVCVLLWFADVK
      WFDBERQVKGBVHERTUGUIUJWFFVNAWFFBESQVNHBVHESTUGUKULUMEVQMZVJVSVPWEWGVIVRAE
      VQVHPUNUHWGVMWBVOWDWGVLWALWGAVKVTEVQVHRUNUIUJWGVNWCAEVQVHSUNUKULUMAVHVRVT
      VQWCVTUOWCUOVRUOBUPEUPUQURUS $.
  $}

  ${
    $d x A $.  $d x K $.  $d x L $.  $d x M $.  $d x T $.  $d x U $.  $d x W $.
    $d x X $.
    nmlnoubi.1 $e |- X = ( BaseSet ` U ) $.
    nmlnoubi.z $e |- Z = ( 0vec ` U ) $.
    nmlnoubi.k $e |- K = ( normCV ` U ) $.
    nmlnoubi.m $e |- M = ( normCV ` W ) $.
    nmlnoubi.3 $e |- N = ( U normOpOLD W ) $.
    nmlnoubi.7 $e |- L = ( U LnOp W ) $.
    nmlnoubi.u $e |- U e. NrmCVec $.
    nmlnoubi.w $e |- W e. NrmCVec $.
    $( An upper bound for the operator norm of a linear operator, using only
       the properties of nonzero arguments.  (Contributed by NM, 1-Jan-2008.)
       (New usage is discouraged.) $)
    nmlnoubi $p |- ( ( T e. L /\ ( A e. RR /\ 0 <_ A ) /\ A. x e. X ( x =/= Z
     -> ( M ` ( T ` x ) ) <_ ( A x. ( K ` x ) ) ) ) -> ( N ` T ) <_ A ) $=
      ( cc0 wcel cr cle wbr wa cv wne cfv cmul co wral wceq fveq2 fveq2d oveq2d
      wi breq12d id imp adantll 0le0 cn0v cnv cba eqid lno0 mp3an12 nvz0 syl6eq
      ax-mp adantr oveq2i recn mul01d syl5eq ad2antrl mpbiri pm2.61ne ex 3impia
      ralimdv wf lnof nmoub2i syl3an1 syld3an3 ) CFUAZBUBUAZTBUCUDZUEZAUFZKUGZW
      KCUHZGUHZBWKEUHZUIUJZUCUDZUPZAJUKZWQAJUKZCHUHBUCUDZWGWJWSWTWGWJUEZWRWQAJX
      BWRWQXBWRUEWQKCUHZGUHZBKEUHZUIUJZUCUDZWKKWKKULZWNXDWPXFUCXHWMXCGWKKCUMUNX
      HWOXEBUIWKKEUMUOUQWRWLWQXBWRWLWQWRURUSUTXBXGWRXBXGTTUCUDVAXBXDTXFTUCWGXDT
      ULWJWGXDIVBUHZGUHZTWGXCXIGDVCUAZIVCUAZWGXCXIULRSKCDFIJIVDUHZXILXMVEZMXIVE
      ZQVFVGUNXLXJTULSIGXIXOOVHVJVIVKWHXFTULWGWIWHXFBTUIUJTXETBUIXKXETULRDEKMNV
      HVJVLWHBBVMVNVOVPUQVQVKVRVSWAVTWGJXMCWBZWJWTXAXKXLWGXPRSCDFIJXMLXNQWCVGAB
      CDEGHIJXMLXNNOPRSWDWEWF $.
  $}

  ${
    nmlnogt0.3 $e |- N = ( U normOpOLD W ) $.
    nmlnogt0.0 $e |- Z = ( U 0op W ) $.
    nmlnogt0.7 $e |- L = ( U LnOp W ) $.
    $( The norm of a nonzero linear operator is positive.  (Contributed by NM,
       10-Dec-2007.)  (New usage is discouraged.) $)
    nmlnogt0 $p |- ( ( U e. NrmCVec /\ W e. NrmCVec /\ T e. L ) ->
                   ( T =/= Z <-> 0 < ( N ` T ) ) ) $=
      ( cnv wcel w3a cfv cc0 wne clt wbr cba wb eqid nmlno0 necon3bid cxr nmoxr
      wf lnof cle nmooge0 wa wo 0xr xrlttri2 mpan2 adantr wn xrlenlt mpan biorf
      biimpa syl bitr4d syl2anc syld3an3 bitr3d ) BJKZEJKZACKZLZADMZNOZAFONVIPQ
      ZVHVINAFABCDEFGHIUAUBVEVFVGBRMZERMZAUEZVJVKSZABCEVLVMVLTZVMTZIUFVEVFVNLVI
      UCKZNVIUGQZVOABDEVLVMVPVQGUDABDEVLVMVPVQGUHVRVSUIZVJVINPQZVKUJZVKVRVJWBSZ
      VSVRNUCKZWCUKVINULUMUNVTWAUOZVKWBSVRVSWEWDVRVSWESUKNVIUPUQUSWAVKURUTVAVBV
      CVD $.
  $}

  ${
    $d x L $.  $d x T $.  $d x U $.  $d x W $.  $d x X $.
    lnon0.1 $e |- X = ( BaseSet ` U ) $.
    lnon0.6 $e |- Z = ( 0vec ` U ) $.
    lnon0.0 $e |- O = ( U 0op W ) $.
    lnon0.7 $e |- L = ( U LnOp W ) $.
    $( The domain of a nonzero linear operator contains a nonzero vector.
       (Contributed by NM, 15-Dec-2007.)  (New usage is discouraged.) $)
    lnon0 $p |- ( ( ( U e. NrmCVec /\ W e. NrmCVec /\ T e. L ) /\ T =/= O )
                   -> E. x e. X x =/= Z ) $=
      ( cnv wcel wne wn wceq wral bitr3i cfv w3a cv wrex ralnex nne ralbii cn0v
      csn cxp wfn wa fveq2 cba eqid lno0 sylan9eqr ex ralimdv wf ffn syl jctild
      fconstfv fconst2 syl6ib 0ofval 3adant3 eqeq2d sylibrd syl5bi necon1ad imp
      lnof fvex ) CMNZFMNZBDNZUAZBEOAUBZHOZAGUCZVRWABEWAPZVSHQZAGRZVRBEQZWBVTPZ
      AGRWDVTAGUDWFWCAGVSHUEUFSVRWDBGFUGTZUHZUIZQZWEVRWDBGUJZVSBTZWGQZAGRZUKZWJ
      VRWDWNWKVRWCWMAGVRWCWMWCVRWLHBTWGVSHBULHBCDFGFUMTZWGIWPUNZJWGUNZLUOUPUQUR
      VRGWPBUSWKBCDFGWPIWQLVMGWPBUTVAVBWOGWHBUSWJAGWGBVCGWGBFUGVNVDSVEVREWIBVOV
      PEWIQVQCEFGWGIWRKVFVGVHVIVJVKVL $.
  $}

  ${
    nmblolbi.1 $e |- X = ( BaseSet ` U ) $.
    nmblolbi.4 $e |- L = ( normCV ` U ) $.
    nmblolbi.5 $e |- M = ( normCV ` W ) $.
    nmblolbi.6 $e |- N = ( U normOpOLD W ) $.
    nmblolbi.7 $e |- B = ( U BLnOp W ) $.
    nmblolbi.u $e |- U e. NrmCVec $.
    nmblolbi.w $e |- W e. NrmCVec $.
    ${
      nmblolbii.b $e |- T e. B $.
      $( A lower bound for the norm of a bounded linear operator.  (Contributed
         by NM, 7-Dec-2007.)  (New usage is discouraged.) $)
      nmblolbii $p |- ( A e. X ->
                ( M ` ( T ` A ) ) <_ ( ( N ` T ) x. ( L ` A ) ) ) $=
        ( wcel cfv cc0 cmul co cle wbr cn0v wceq fveq2 fveq2d oveq2d breq12d wa
        wne cdiv c1 cns cr cba cnv nvcl mpan adantr eqid nvz necon3bid rereccld
        wb biimpar clt nvgt0 biimpa recgt0d wi 0re ltle sylancr mpd wf ffvelrni
        blof mp3an nvsge0 mp3an1 syl21anc cc recnd simpl clno w3a bloln 3pm3.2i
        lnomul syl2anc divrec2d 3eqtr4rd nvscl ancoms syldan nv1 nmoolb eqbrtrd
        eqle nmblore a1i ledivmul2 syl112anc mpbid 0le0 lno0 fveq2i ax-mp eqtri
        nvz0 oveq2i recni mul01i 3brtr4i pm2.61ne ) AIRZACSZFSZCGSZAESZUAUBZUCU
        DZDUESZCSZFSZYAYEESZUAUBZUCUDZAYEAYEUFZXTYGYCYIUCYKXSYFFAYECUGUHYKYBYHY
        AUAAYEEUGUIUJXRAYEULZUKZXTYBUMUBZYAUCUDZYDYMYNUNYBUMUBZADUOSZUBZCSZFSZY
        AUCYMYPXSHUOSZUBZFSZYPXTUAUBZYTYNYMYPUPRZTYPUCUDZXSHUQSZRZUUCUUDUFZYMYB
        XRYBUPRZYLDURRZXRUUJOADEIJKUSUTVAZXRYBTULYLXRYBTAYEUUKXRYBTUFYKVFOADEIY
        EJYEVBZKVCUTVDVGZVEZYMTYPVHUDZUUFYMYBUULXRYLTYBVHUDZUUKXRYLUUQVFOADEIYE
        JUUMKVIUTVJZVKYMTUPRUUEUUPUUFVLVMUUOTYPVNVOVPXRUUHYLIUUGACUUKHURRZCBRZI
        UUGCVQZOPQBCDHIUUGJUUGVBZNVSVTZVRZVAUUSUUEUUFUKUUHUUIPYPXSUUAHFUUGUVBUU
        AVBZLWAWBWCYMYSUUBFYMYPWDRZXRYSUUBUFZYMYPUUOWEZXRYLWFUUKUUSCDHWGUBZRZWH
        UVFXRUKUVGUUKUUSUVJOPUUKUUSUUTUVJOPQBCDUVIHUVIVBZNWIVTZWJYPAYQUUACDUVIH
        IJYQVBZUVEUVKWKUTWLUHYMXTYBYMXTXRXTUPRZYLXRUUSUUHUVNPUVDXSHFUUGUVBLUSVO
        VAZWEYMYBUULWEUUNWMWNYMYRIRZYRESZUNUCUDZYTYAUCUDZXRYLUVFUVPUVHUVFXRUVPU
        UKUVFXRUVPOYPAYQDIJUVMWOWBWPWQZYMUVQUPRZUVQUNUFZUVRYMUUKUVPUWAOUVTYRDEI
        JKUSVOUUKXRYLUWBOAYQDEIYEJUVMUUMKWRWBUVQUNXAWLUUKUUSUVAWHUVPUVRUKUVSUUK
        UUSUVAOPUVCWJYRCDEFGHIUUGJUVBKLMWSUTWLWTYMUVNYAUPRZUUJUUQYOYDVFUVOUWCYM
        UUKUUSUUTUWCOPQBCDGHIUUGJUVBMNXBVTZXCUULUURXTYAYBXDXEXFYJXRTTYGYIUCXGYG
        HUESZFSZTYFUWEFUUKUUSUVJYFUWEUFOPUVLYECDUVIHIUUGUWEJUVBUUMUWEVBZUVKXHVT
        XIUUSUWFTUFPHFUWEUWGLXLXJXKYIYATUAUBTYHTYAUAUUKYHTUFODEYEUUMKXLXJXMYAYA
        UWDXNXOXKXPXCXQ $.
    $}

    $( A lower bound for the norm of a bounded linear operator.  (Contributed
       by NM, 10-Dec-2007.)  (New usage is discouraged.) $)
    nmblolbi $p |- ( ( T e. B /\ A e. X ) ->
              ( M ` ( T ` A ) ) <_ ( ( N ` T ) x. ( L ` A ) ) ) $=
      ( wcel cfv cmul co cle wbr c0o cif wceq fveq1 fveq2d fveq2 oveq1d breq12d
      wi imbi2d cnv eqid 0blo mp2an elimel nmblolbii dedth imp ) CBQZAIQZACRZFR
      ZCGRZAERZSTZUAUBZVAVBVHUKVBAVACDHUCTZUDZRZFRZVJGRZVFSTZUAUBZUKCVICVJUEZVH
      VOVBVPVDVLVGVNUAVPVCVKFACVJUFUGVPVEVMVFSCVJGUHUIUJULABVJDEFGHIJKLMNOPCVIB
      DUMQHUMQVIBQOPBDHVIVIUNNUOUPUQURUSUT $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x L $.  $d x y M $.  $d x y N $.  $d x y T $.
    $d x y U $.  $d x y W $.  $d x y X $.
    isblo3i.1 $e |- X = ( BaseSet ` U ) $.
    isblo3i.m $e |- M = ( normCV ` U ) $.
    isblo3i.n $e |- N = ( normCV ` W ) $.
    isblo3i.4 $e |- L = ( U LnOp W ) $.
    isblo3i.5 $e |- B = ( U BLnOp W ) $.
    isblo3i.u $e |- U e. NrmCVec $.
    isblo3i.w $e |- W e. NrmCVec $.
    $( The predicate "is a bounded linear operator."  Definition 2.7-1 of
       [Kreyszig] p. 91.  (Contributed by NM, 11-Dec-2007.)
       (New usage is discouraged.) $)
    isblo3i $p |- ( T e. B <-> ( T e. L /\
          E. x e. RR A. y e. X ( N ` ( T ` y ) ) <_ ( x x. ( M ` y ) ) ) ) $=
      ( wcel cfv cr cv cmul co cle wbr wral wrex wa cnv bloln mp3an12 cnmoo cba
      eqid nmblore nmblolbi ralrimiva wceq oveq1 breq2d ralbidv syl2anc jca w3a
      rspcev cpnf clt simp1 wf lnof cabs cxr nmoxr 3ad2ant1 recn rexrd 3ad2ant2
      abscld pnfxr a1i nmoub3i ltpnf syl xrlelttrd syl3an1 isblo mp2an sylanbrc
      wb rexlimdv3a imp impbii ) DCRZDFRZBUAZDSHSZAUAZWOGSZUBUCZUDUEZBJUFZATUGZ
      UHWMWNXBEUIRZIUIRZWMWNPQCDEFINOUJUKWMDEIULUCZSZTRZWPXFWRUBUCZUDUEZBJUFZXB
      XCXDWMXGPQCDEXEIJIUMSZKXKUNZXEUNZOUOUKWMXIBJWOCDEGHXEIJKLMXMOPQUPUQXAXJAX
      FTWQXFURZWTXIBJXNWSXHWPUDWQXFWRUBUSUTVAVEVBVCWNXBWMWNXAWMATWNWQTRZXAVDWNX
      FVFVGUEZWMWNXOXAVHWNJXKDVIZXOXAXPXCXDWNXQPQDEFIJXKKXLNVJUKXQXOXAVDZXFWQVK
      SZVFXQXOXFVLRZXAXCXDXQXTPQDEXEIJXKKXLXMVMUKVNXOXQXSVLRXAXOXSXOWQWQVOVRZVP
      VQVFVLRXRVSVTBWQDEGHXEIJXKKXLLMXMPQWAXOXQXSVFVGUEZXAXOXSTRYBYAXSWBWCVQWDW
      EXCXDWMWNXPUHWIPQCDEFXEIXMNOWFWGWHWJWKWL $.

    $( Properties that determine a bounded linear operator.  (Contributed by
       NM, 13-Jan-2008.)  (New usage is discouraged.) $)
    blo3i $p |- ( ( T e. L /\ A e. RR /\ A. y e. X ( N ` ( T ` y ) ) <_
               ( A x. ( M ` y ) ) ) -> T e. B ) $=
      ( vx wcel cr cv cfv cmul co cle wbr wral wa wrex wceq oveq1 breq2d rspcev
      ralbidv isblo3i biimpri sylan2 3impb ) DFSZBTSZAUAZDUBHUBZBVAGUBZUCUDZUEU
      FZAJUGZDCSZUTVFUHUSVBRUAZVCUCUDZUEUFZAJUGZRTUIZVGVKVFRBTVHBUJZVJVEAJVMVIV
      DVBUEVHBVCUCUKULUNUMVGUSVLUHRACDEFGHIJKLMNOPQUOUPUQUR $.
  $}

  ${
    blometi.1 $e |- X = ( BaseSet ` U ) $.
    blometi.2 $e |- Y = ( BaseSet ` W ) $.
    blometi.8 $e |- C = ( IndMet ` U ) $.
    blometi.d $e |- D = ( IndMet ` W ) $.
    blometi.6 $e |- N = ( U normOpOLD W ) $.
    blometi.7 $e |- B = ( U BLnOp W ) $.
    blometi.u $e |- U e. NrmCVec $.
    blometi.w $e |- W e. NrmCVec $.
    $( Upper bound for the distance between the values of a bounded linear
       operator.  (Contributed by NM, 11-Dec-2007.)
       (New usage is discouraged.) $)
    blometi $p |- ( ( T e. B /\ P e. X /\ Q e. X ) ->
         ( ( T ` P ) D ( T ` Q ) ) <_ ( ( N ` T ) x. ( P C Q ) ) ) $=
      ( cfv wcel w3a cnsb co cnmcv cmul cle wbr wa cnv eqid nvmcl mp3an1 sylan2
      nmblolbi wceq blof mp3an12 ffvelrnda 3adant3 3adant2 imsdval syl2anc clno
      3impb wf bloln lnosub mp3anl1 mpanl1 syl3an1 fveq2d eqtr4d 3adant1 oveq2d
      3brtr4d ) FAUAZDJUAZEJUAZUBZDEGUCTZUDZFTZIUETZTZFHTZWBGUETZTZUFUDZDFTZEFT
      ZCUDZWFDEBUDZUFUDUGVQVRVSWEWIUGUHZVRVSUIZVQWBJUAZWNGUJUAZVRVSWPRDEGWAJLWA
      UKZULUMWBAFGWGWDHIJLWGUKZWDUKZPQRSUOUNVEVTWLWJWKIUCTZUDZWDTZWEVTWJKUAZWKK
      UAZWLXCUPZVQVRXDVSVQJKDFWQIUJUAZVQJKFVFRSAFGIJKLMQUQURZUSUTVQVSXEVRVQJKEF
      XHUSVAXGXDXEXFSWJWKCIXAWDKMXAUKZWTOVBUMVCVTWCXBWDVQFGIVDUDZUAZVRVSWCXBUPZ
      WQXGVQXKRSAFGXJIXJUKZQVGURXKVRVSXLXGXKWOXLSWQXGXKWOXLRDEFGXJWAXAIJLWRXIXM
      VHVIVJVEVKVLVMVTWMWHWFUFVRVSWMWHUPZVQWQVRVSXNRDEBGWAWGJLWRWSNVBUMVNVOVP
      $.
  $}

  ${
    $d w x y z B $.  $d w x y z C $.  $d w x y z D $.  $d x L $.  $d x y z P $.
    $d w x y z J $.  $d w x y z K $.  $d w x y z T $.  $d w x y z U $.
    $d w x y z W $.  $d x y z X $.
    blocni.8 $e |- C = ( IndMet ` U ) $.
    blocni.d $e |- D = ( IndMet ` W ) $.
    blocni.j $e |- J = ( MetOpen ` C ) $.
    blocni.k $e |- K = ( MetOpen ` D ) $.
    blocni.4 $e |- L = ( U LnOp W ) $.
    blocni.5 $e |- B = ( U BLnOp W ) $.
    blocni.u $e |- U e. NrmCVec $.
    blocni.w $e |- W e. NrmCVec $.
    blocni.l $e |- T e. L $.
    ${
      blocnilem.1 $e |- X = ( BaseSet ` U ) $.
      $( TODO - this needs to be broken up or shortened! $)
      $( Lemma for ~ blocni and ~ lnocni .  If a linear operator is continuous
         at any point, it is bounded.  (Contributed by NM, 17-Dec-2007.)
         (Revised by Mario Carneiro, 10-Jan-2014.)
         (New usage is discouraged.) $)
      blocnilem $p |- ( ( P e. X /\ T e. ( ( J CnP K ) ` P ) ) -> T e. B ) $=
        ( vz vx vy wcel ccnp co cfv wa cv cnmcv cmul cle wbr wral cr wrex c1 wi
        crp cxmt cba cnv imsxmet ax-mp eqid 1rp metcnpi3 mpanr2 mpanl12 rpreccl
        cdiv rpred ad2antlr cnsb wb wceq imsdval mp3an1 breq1d wf lnof ffvelrni
        mp3an syl2an 3pm3.2i lnosub mpan fveq2d eqtr4d imbi12d adantlr ralbidva
        w3a ancoms cn0v fveq2 oveq2d breq12d wne cns cpv simpll cc simpr adantr
        a1i nvcl cc0 clt nvgt0 biimpa elrpd rpdivcl rpcnd simprl nvscl nvpncan2
        syl3anc rprege0d nvsge0 rpcn ad2antrl recnd nvz biimpar adantl divcan1d
        necon3bid 3eqtrd rpre oveq1 syl syl2anc eqtrd rpcnne0 breq2d imp nvz0
        ex leidd eqbrtrd nvgcl rspcv mpid sylancr 1red lemuldiv2d lnomul recdiv
        rpne0 divrec2d eqtr2d 3bitr4d sylibd anassrs an32s fveq2i eqtri eqbrtri
        lno0 oveq2i syl5eq syl5breqr ad3antlr pm2.61ne ralrimdva sylbid ralbidv
        0le0 mul01 rspcev rexlimdva syl5 isblo3i mpbiran sylibr ) DKUEZEDGHUFUG
        UHUEZUIUBUJZEUHZJUKUHZUHZUCUJZUVTFUKUHZUHZULUGZUMUNZUBKUOZUCUPUQZEAUEZU
        VRUVSUWJUVSUWDDBUGZUDUJZUMUNZUWDEUHZDEUHZCUGZURUMUNZUSZUCKUOZUDUTUQZUVR
        UWJBKVAUHUEZCJVBUHZVAUHUEZUVSUXAFVCUEZUXBRBFKUALVDVEJVCUEZUXDSCJUXCUXCV
        FZMVDVEUXBUXDUIUVSURUTUEUXAVGUDUCURBCDEGHKUXCNOVHVIVJUVRUWTUWJUDUTUVRUW
        MUTUEZUIZUWTUWJUXIUWTUIURUWMVLUGZUPUEZUWCUXJUWFULUGZUMUNZUBKUOZUWJUXHUX
        KUVRUWTUXHUXJUWMVKZVMVNUXIUWTUXNUXIUWTUWDDFVOUHZUGZUWEUHZUWMUMUNZUXQEUH
        ZUWBUHZURUMUNZUSZUCKUOZUXNUXIUWSUYCUCKUVRUWDKUEZUWSUYCVPZUXHUYEUVRUYFUY
        EUVRUIZUWNUXSUWRUYBUYGUWLUXRUWMUMUXEUYEUVRUWLUXRVQRUWDDBFUXPUWEKUAUXPVF
        ZUWEVFZLVRVSVTUYGUWQUYAURUMUYGUWQUWOUWPJVOUHZUGZUWBUHZUYAUYEUWOUXCUEZUW
        PUXCUEZUWQUYLVQZUVRKUXCUWDEUXEUXFEIUEZKUXCEWARSTEFIJKUXCUAUXGPWBWDZWCKU
        XCDEUYQWCUXFUYMUYNUYOSUWOUWPCJUYJUWBUXCUXGUYJVFZUWBVFZMVRVSWEUYGUXTUYKU
        WBUXEUXFUYPWNZUYGUXTUYKVQUXEUXFUYPRSTWFZUWDDEFIUXPUYJJKUAUYHUYRPWGWHWIW
        JVTWKWOWLWMUXIUYDUXMUBKUXIUVTKUEZUIZUYDUXMVUCUYDUIUXMFWPUHZEUHZUWBUHZUX
        JVUDUWEUHZULUGZUMUNZUVTVUDUVTVUDVQZUWCVUFUXLVUHUMVUJUWAVUEUWBUVTVUDEWQW
        IVUJUWFVUGUXJULUVTVUDUWEWQWRWSVUCUVTVUDWTZUYDUXMVUCVUKUIUYDUXMUXIVUBVUK
        UYDUXMUSUXIVUBVUKUIZUIZUYDDUWMUWFVLUGZUVTFXAUHZUGZFXBUHZUGZDUXPUGZEUHZU
        WBUHZURUMUNZUXMVUMUYDVUSUWEUHZUWMUMUNZVVBVUMVVCUWMUWMUMVUMVVCVUPUWEUHZV
        UNUWFULUGZUWMVUMVUSVUPUWEVUMUXEUVRVUPKUEZVUSVUPVQUXEVUMRXGZUVRUXHVULXCZ
        VUMUXEVUNXDUEZVUBVVGVVHVUMVUNUXIUXHUWFUTUEZVUNUTUEVULUVRUXHXEZVULUWFVUB
        UWFUPUEZVUKUXEVUBVVMRUVTFUWEKUAUYIXHWHZXFVUBVUKXIUWFXJUNZUXEVUBVUKVVOVP
        RUVTFUWEKVUDUAVUDVFZUYIXKWHXLXMZUWMUWFXNWEZXOZUXIVUBVUKXPZVUNUVTVUOFKUA
        VUOVFZXQXSZDVUPFVUQUXPKUAVUQVFZUYHXRXSZWIVUMUXEVUNUPUEXIVUNUMUNUIZVUBVV
        EVVFVQVVHVUMVUNVVRXTZVVTVUNUVTVUOFUWEKUAVWAUYIYAXSVUMUWMUWFUXHUWMXDUEZU
        VRVULUWMYBVNZVUMUWFVUBVVMUXIVUKVVNYCYDZVULUWFXIWTZUXIVUBVWJVUKVUBUWFXIU
        VTVUDUXEVUBUWFXIVQVUJVPRUVTFUWEKVUDUAVVPUYIYEWHYIYFYGYHYJUXHUWMUWMUMUNU
        VRVULUXHUWMUWMYKUUAVNUUBVUMVURKUEZUYDVVDVVBUSZUSVUMUXEUVRVVGVWKVVHVVIVW
        BDVUPFVUQKUAVWCUUCXSUYCVWLUCVURKUWDVURVQZUXSVVDUYBVVBVWMUXRVVCUWMUMVWMU
        XQVUSUWEUWDVURDUXPYLZWIVTVWMUYAVVAURUMVWMUXTVUTUWBVWMUXQVUSEVWNWIWIVTWK
        UUDYMUUEVUMVUNUWCULUGZURUMUNUWCURVUNVLUGZUMUNVVBUXMVUMUWCURVUNVUBUWCUPU
        EZUXIVUKVUBUXFUWAUXCUEZVWQSKUXCUVTEUYQWCZUWAJUWBUXCUXGUYSXHUUFYCVUMUUGV
        VRUUHVUMVVAVWOURUMVUMVVAVUNUWAJXAUHZUGZUWBUHZVWOVUMVUTVXAUWBVUMVUTVUPEU
        HZVXAVUMVUSVUPEVWDWIVUMVVJVUBVXCVXAVQZVVSVVTUYTVVJVUBUIVXDVUAVUNUVTVUOV
        WTEFIJKUAVWAVWTVFZPUUIWHYNYOWIVUMUXFVWEVWRVXBVWOVQUXFVUMSXGVWFVUBVWRUXI
        VUKVWSYCVUNUWAVWTJUWBUXCUXGVXEUYSYAXSYOVTVUMUXLVWPUWCUMVUMVWPUWFUWMVLUG
        ZUXLUXIUXHVVKVWPVXFVQZVULVVLVVQUXHVWGUWMXIWTZUIUWFXDUEVWJUIVXGVVKUWMYPU
        WFYPUWMUWFUUJWEWEVUMUWFUWMVWIVWHUXHVXHUVRVULUWMUUKVNUULUUMYQUUNUUOUUPYR
        UUQUXHVUIUVRVUBUYDUXHVUFXIVUHUMVUFXIXIUMVUFJWPUHZUWBUHZXIVUEVXIUWBUXEUX
        FUYPVUEVXIVQRSTVUDEFIJKUXCVXIUAUXGVVPVXIVFZPUVAWDUURUXFVXJXIVQSJUWBVXIV
        XKUYSYSVEUUSUVJUUTUXHUXJXDUEZVUHXIVQUXHUXJUXOXOVXLVUHUXJXIULUGXIVUGXIUX
        JULUXEVUGXIVQRFUWEVUDVVPUYIYSVEUVBUXJUVKUVCYMUVDUVEUVFYTUVGUVHYRUWIUXNU
        CUXJUPUWDUXJVQZUWHUXMUBKVXMUWGUXLUWCUMUWDUXJUWFULYLYQUVIUVLYNYTUVMUVNYR
        UWKUYPUWJTUCUBAEFIUWEUWBJKUAUYIUYSPQRSUVOUVPUVQ $.
    $}

    $( A linear operator is continuous iff it is bounded.  Theorem 2.7-9(a) of
       [Kreyszig] p. 97.  (Contributed by NM, 18-Dec-2007.)  (Revised by Mario
       Carneiro, 10-Jan-2014.)  (New usage is discouraged.) $)
    blocni $p |- ( T e. ( J Cn K ) <-> T e. B ) $=
      ( wcel cfv vx vw vz vy ccn cn0v cba ccnp cnv eqid nvzcl ax-mp cxmt ctopon
      cme imsmet metxmet mopntopon toponunii cncnpi mpan2 blocnilem sylancr c0o
      co eleq1 wne wa wf cv clt wbr wral crp wrex cnmoo cdiv simprr cc0 nmblore
      wi cr mp3an12 wb nmlnogt0 biimpi anim12i elrp sylibr adantr rpdivcld cmul
      mp3an simprl metcl mp3an1 sylan simplrr ad2antrr ltmuldiv2 syl3anc cle id
      rpred ad2ant2r blometi 3expa lnof ffvelrni syl2an remulcl adantllr lelttr
      anassrs adantlrr mpand sylbird ralrimiva wceq breq2 imbi1d ralbidv rspcev
      syl2anc ralrimivva jctil metcn mp2an csn 0ofval cnconst2 eqeltri pm2.61ne
      cxp a1i impbii ) DFGUEVEZSZDASZYREUFTZEUGTZSZDYTFGUHVETSZYSEUISZUUBPEUUAY
      TUUAUJZYTUJUKULZYRUUBUUCUUFYTDFGUUAUUAFBUUAUMTSZFUUAUNTSZBUUAUOTSZUUGUUDU
      UIPBEUUAUUEJUPULZBUUAUQULZBFUUALURULZUSUTVAABCYTDEFGHIUUAJKLMNOPQRUUEVBVC
      YSYREIVDVEZYQSZDUUMDUUMYQVFYSDUUMVGZVHZUUAIUGTZDVIZUAVJZUBVJZBVEZUCVJZVKV
      LZUUSDTZUUTDTZCVEZUDVJZVKVLZWAZUBUUAVMZUCVNVOZUDVNVMUAUUAVMZVHZYRUUPUVLUU
      RUUPUVKUAUDUUAVNUUPUUSUUASZUVGVNSZVHZVHZUVGDEIVPVEZTZVQVEZVNSUVAUVTVKVLZU
      VHWAZUBUUAVMZUVKUVQUVGUVSUUPUVNUVOVRUUPUVSVNSZUVPUUPUVSWBSZVSUVSVKVLZVHZU
      WDYSUWEUUOUWFUUDIUISZYSUWEPQADEUVRIUUAUUQUUEUUQUJZUVRUJZOVTWCZUUOUWFUUDUW
      HDHSZUUOUWFWDPQRDEHUVRIUUMUWJUUMUJZNWEWMWFWGZUVSWHWIWJWKUVQUWBUBUUAUVQUUT
      UUASZVHZUWAUVSUVAWLVEZUVGVKVLZUVHUWPUVAWBSZUVGWBSZUWGUWRUWAWDUVQUVNUWOUWS
      UUPUVNUVOWNZUUIUVNUWOUWSUUJUUSUUTBUUAWOWPZWQUWPUVGUUPUVNUVOUWOWRXDZUUPUWG
      UVPUWOUWNWSUVAUVGUVSWTXAUWPUVFUWQXBVLZUWRUVHUVQYSUVNVHZUWOUXDYSUVNUXEUUOU
      VOUXEXCXEYSUVNUWOUXDABCUUSUUTDEUVRIUUAUUQUUEUWIJKUWJOPQXFXGWQUWPUVFWBSZUW
      QWBSZUWTUXDUWRVHUVHWAUVQUVNUWOUXFUXAUVNUVDUUQSZUVEUUQSZUXFUWOUUAUUQUUSDUU
      DUWHUWLUURPQRDEHIUUAUUQUUEUWINXHWMZXIUUAUUQUUTDUXJXICUUQUOTSZUXHUXIUXFUWH
      UXKQCIUUQUWIKUPULZUVDUVECUUQWOWPXJWQUUPUVNUWOUXGUVOYSUVNUWOUXGUUOYSUVNUWO
      UXGYSUWEUWSUXGUVNUWOVHUWKUXBUVSUVAXKXJXNXLXOUXCUVFUWQUVGXMXAXPXQXRUVJUWCU
      CUVTVNUVBUVTXSZUVIUWBUBUUAUXMUVCUWAUVHUVBUVTUVAVKXTYAYBYCYDYEUXJYFUUGCUUQ
      UMTSZYRUVMWDUUKUXKUXNUXLCUUQUQULZUAUDUCUBBCDFGUUAUUQLMYGYHWIUUNYSUUMUUAIU
      FTZYIYNZYQUUDUWHUUMUXQXSPQEUUMIUUAUXPUUEUXPUJZUWMYJYHUUHGUUQUNTSZUXPUUQSZ
      UXQYQSUULUXNUXSUXOCGUUQMURULUWHUXTQIUUQUXPUWIUXRUKULUXPFGUUAUUQYKWMYLYOYM
      YP $.

    ${
      lnocni.1 $e |- X = ( BaseSet ` U ) $.
      $( If a linear operator is continuous at any point, it is continuous
         everywhere.  Theorem 2.7-9(b) of [Kreyszig] p. 97.  (Contributed by
         NM, 18-Dec-2007.)  (New usage is discouraged.) $)
      lnocni $p |- ( ( P e. X /\ T e. ( ( J CnP K ) ` P ) ) ->
                T e. ( J Cn K ) ) $=
        ( wcel ccnp co cfv wa ccn blocnilem blocni sylibr ) DKUBEDGHUCUDUEUBUFE
        AUBEGHUGUDUBABCDEFGHIJKLMNOPQRSTUAUHABCEFGHIJLMNOPQRSTUIUJ $.
    $}
  $}

  ${
    blocn.8 $e |- C = ( IndMet ` U ) $.
    blocn.d $e |- D = ( IndMet ` W ) $.
    blocn.j $e |- J = ( MetOpen ` C ) $.
    blocn.k $e |- K = ( MetOpen ` D ) $.
    blocn.5 $e |- B = ( U BLnOp W ) $.
    blocn.u $e |- U e. NrmCVec $.
    blocn.w $e |- W e. NrmCVec $.
    ${
      blocn.4 $e |- L = ( U LnOp W ) $.
      $( A linear operator is continuous iff it is bounded.  Theorem 2.7-9(a)
         of [Kreyszig] p. 97.  (Contributed by NM, 25-Dec-2007.)
         (New usage is discouraged.) $)
      blocn $p |- ( T e. L -> ( T e. ( J Cn K ) <-> T e. B ) ) $=
        ( wcel co wb ccn c0o cif wceq eleq1 bibi12d cnv eqid 0lno elimel blocni
        mp2an dedth ) DHRZDFGUASZRZDARZTUNDEIUBSZUCZUORZUSARZTDURDUSUDUPUTUQVAD
        USUOUEDUSAUEUFABCUSEFGHIJKLMQNOPDURHEUGRIUGRURHROPEHIURURUHQUIULUJUKUM
        $.
    $}

    $( A bounded linear operator is continuous.  (Contributed by NM,
       25-Dec-2007.)  (New usage is discouraged.) $)
    blocn2 $p |- ( T e. B -> T e. ( J Cn K ) ) $=
      ( clno co wcel ccn cnv eqid bloln mp3an12 blocn biimprd mpcom ) DEHPQZRZD
      ARZDFGSQRZETRHTRUIUHNOADEUGHUGUAZMUBUCUHUJUIABCDEFGUGHIJKLMNOUKUDUEUF $.
  $}

  ${
    $d u w P $.  $d s t u w x y U $.  $d s t u w x y W $.  $d s t u w x X $.
    $d u w Q $.  $d s t u w y Y $.
    ajfval.1 $e |- X = ( BaseSet ` U ) $.
    ajfval.2 $e |- Y = ( BaseSet ` W ) $.
    ajfval.3 $e |- P = ( .iOLD ` U ) $.
    ajfval.4 $e |- Q = ( .iOLD ` W ) $.
    ajfval.5 $e |- A = ( U adj W ) $.
    $( The adjoint function.  (Contributed by NM, 25-Jan-2008.)  (Revised by
       Mario Carneiro, 16-Nov-2013.)  (New usage is discouraged.) $)
    ajfval $p |- ( ( U e. NrmCVec /\ W e. NrmCVec ) -> A =
     { <. t , s >. | ( t : X --> Y /\ s : Y --> X /\ A. x e. X A. y e. Y
    ( ( t ` x ) Q y ) = ( x P ( s ` y ) ) ) } ) $=
      ( co cv cfv cba vu vw cnv wcel wa caj wf wceq wral w3a copab cdip syl6eqr
      fveq2 feq2d feq3d oveqd eqeq2d ralbidv raleqbidv 3anbi123d opabbidv df-aj
      eqeq1d cmap cxp ovex xpex cvv fvex eqeltri elmap anbi12i biimpri ssopab2i
      3adant3 df-xp sseqtr4i ssexi ovmpt2 syl5eq ) GUCUDHUCUDUEDGHUFQIJCRZUGZJI
      KRZUGZARZWBSZBRZFQZWFWHWDSZEQZUHZBJUIZAIUIZUJZCKUKZPUAUBGHUCUCUARZTSZUBRZ
      TSZWBUGZWTWRWDUGZWGWHWSULSZQZWFWJWQULSZQZUHZBWTUIZAWRUIZUJZCKUKWPUFIWTWBU
      GZWTIWDUGZXDWKUHZBWTUIZAIUIZUJZCKUKWQGUHZXJXPCKXQXAXKXBXLXIXOXQWRIWTWBXQW
      RGTSZIWQGTUNLUMZUOXQWRIWDWTXSUPXQXHXNAWRIXSXQXGXMBWTXQXFWKXDXQXEEWFWJXQXE
      GULSEWQGULUNNUMUQURUSUTVAVBWSHUHZXPWOCKXTXKWCXLWEXOWNXTWTJWBIXTWTHTSZJWSH
      TUNMUMZUPXTWTJIWDYBUOXTXNWMAIXTXMWLBWTJYBXTXDWIWKXTXCFWGWHXTXCHULSFWSHULU
      NOUMUQVDUTUSVAVBABUBUACKVCWPJIVEQZIJVEQZVFZYCYDJIVEVGIJVEVGVHWPWBYCUDZWDY
      DUDZUEZCKUKYEWOYHCKWCWEYHWNYHWCWEUEYFWCYGWEJIWBJYAVIMHTVJVKZIXRVILGTVJVKZ
      VLIJWDYJYIVLVMVNVPVOCKYCYDVQVRVSVTWA $.
  $}

  ${
    $d t u A $.  $d t T $.  $d t u U $.
    hmoval.8 $e |- H = ( HmOp ` U ) $.
    hmoval.9 $e |- A = ( U adj U ) $.
    $( The set of Hermitian (self-adjoint) operators on a normed complex vector
       space.  (Contributed by NM, 26-Jan-2008.)  (Revised by Mario Carneiro,
       16-Nov-2013.)  (New usage is discouraged.) $)
    hmoval $p |- ( U e. NrmCVec -> H = { t e. dom A | ( A ` t ) = t } ) $=
      ( vu cnv wcel chmo cfv cv wceq cdm crab caj co oveq12 anidms syl6eqr ovex
      dmeqd fveq1d eqeq1d rabeqbidv df-hmo cvv eqeltri dmex rabex fvmpt syl5eq
      ) CHIDCJKALZBKZUMMZABNZOZEGCUMGLZURPQZKZUMMZAUSNZOUQHJURCMZVAUOAVBUPVCUSB
      VCUSCCPQZBVCUSVDMURCURCPRSFTZUBVCUTUNUMVCUMUSBVEUCUDUEGAUFUOAUPBBVDUGFCCP
      UAUHUIUJUKUL $.

    $( The predicate "is a hermitian operator."  (Contributed by NM,
       26-Jan-2008.)  (New usage is discouraged.) $)
    ishmo $p |- ( U e. NrmCVec ->
      ( T e. H <-> ( T e. dom A /\ ( A ` T ) = T ) ) ) $=
      ( vt cnv wcel cv cfv wceq cdm crab wa hmoval eleq2d fveq2 id eqeq12d
      elrab syl6bb ) CHIZBDIBGJZAKZUDLZGAMZNZIBUGIBAKZBLZOUCDUHBGACDEFPQUFUJGBU
      GUDBLZUEUIUDBUDBARUKSTUAUB $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Inner product (pre-Hilbert) spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CPreHilOLD $.

  $( Extend class notation with the class of all complex inner product spaces
     (also called pre-Hilbert spaces). $)
  ccphlo $a class CPreHilOLD $.

  ${
    $d g n s x y $.
    $( Define the class of all complex inner product spaces.  An inner product
       space is a normed vector space whose norm satisfies the parallelogram
       law (a property that induces an inner product).  Based on Exercise 4(b)
       of [ReedSimon] p. 63.  The vector operation is ` g ` , the scalar
       product is ` s ` , and the norm is ` n ` .  An inner product space is
       also called a pre-Hilbert space.  (Contributed by NM, 2-Apr-2007.)
       (New usage is discouraged.) $)
    df-ph $a |- CPreHilOLD = ( NrmCVec i^i { <. <. g , s >. , n >. |
          A. x e. ran g A. y e. ran g
       ( ( ( n ` ( x g y ) ) ^ 2 ) + ( ( n ` ( x g ( -u 1 s y ) ) ) ^ 2 ) ) =
        ( 2 x. ( ( ( n ` x ) ^ 2 ) + ( ( n ` y ) ^ 2 ) ) ) } ) $.

    $( Every complex inner product space is a normed complex vector space.
       (Contributed by NM, 2-Apr-2007.)  (New usage is discouraged.) $)
    phnv $p |- ( U e. CPreHilOLD -> U e. NrmCVec ) $=
      ( vx vy vg vn vs ccphlo cnv cv co cfv c2 cexp c1 cneg caddc cmul wceq crn
      wral coprab cin df-ph inss1 eqsstri sseli ) GHAGHBIZCIZDIZJEIZKLMJUGNOUHF
      IJUIJUJKLMJPJLUGUJKLMJUHUJKLMJPJQJRCUISZTBUKTDFEUAZUBHBCDEFUCHULUDUEUF $.

    $( The class of all complex inner product spaces is a relation.
       (Contributed by NM, 2-Apr-2007.)  (New usage is discouraged.) $)
    phrel $p |- Rel CPreHilOLD $=
      ( vx ccphlo cnv wss wrel cv phnv ssriv nvrel relss mp2 ) BCDCEBEABCAFGHIB
      CJK $.
  $}

  ${
    phnvi.1 $e |- U e. CPreHilOLD $.
    $( Every complex inner product space is a normed complex vector space.
       (Contributed by NM, 20-Nov-2007.)  (New usage is discouraged.) $)
    phnvi $p |- U e. NrmCVec $=
      ( ccphlo wcel cnv phnv ax-mp ) ACDAEDBAFG $.
  $}

  ${
    $d g n s x y G $.  $d g n s x y N $.  $d g n s x y S $.  $d g n s x y X $.
    isphg.1 $e |- X = ran G $.
    $( The predicate "is a complex inner product space."  An inner product
       space is a normed vector space whose norm satisfies the parallelogram
       law.  The vector (group) addition operation is ` G ` , the scalar
       product is ` S ` , and the norm is ` N ` .  An inner product space is
       also called a pre-Hilbert space.  (Contributed by NM, 2-Apr-2007.)
       (New usage is discouraged.) $)
    isphg $p |- ( ( G e. A /\ S e. B /\ N e. C ) ->
  ( <. <. G , S >. , N >. e. CPreHilOLD <-> ( <. <. G , S >. , N >. e. NrmCVec
        /\
          A. x e. X A. y e. X
      ( ( ( N ` ( x G y ) ) ^ 2 ) + ( ( N ` ( x G ( -u 1 S y ) ) ) ^ 2 ) ) =
        ( 2 x. ( ( ( N ` x ) ^ 2 ) + ( ( N ` y ) ^ 2 ) ) ) ) ) ) $=
      ( wcel cv co cfv c2 cexp caddc wceq wral oveq1d vg vn cop ccphlo cnv cneg
      vs c1 cmul crn coprab wa w3a df-ph elin2 rneq syl6eqr oveq fveq2d oveq12d
      eqeq1d raleqbidv oveq2d 2ralbidv fveq1 eqeq12d eloprabg anbi2d syl5bb ) G
      FUCHUCZUDKVJUEKZVJALZBLZUALZMZUBLZNZOPMZVLUHUFZVMUGLZMZVNMZVPNZOPMZQMZOVL
      VPNZOPMZVMVPNZOPMZQMZUIMZRZBVNUJZSZAWMSZUAUGUBUKZKZULGCKFDKHEKUMZVKVLVMGM
      ZHNZOPMZVLVSVMFMZGMZHNZOPMZQMZOVLHNZOPMZVMHNZOPMZQMZUIMZRZBISAISZULVJUEWP
      UDABUAUBUGUNUOWRWQXNVKWOWSVPNZOPMZVLWAGMZVPNZOPMZQMZWKRZBISZAISXPXCVPNZOP
      MZQMZWKRZBISAISXNUAUGUBGFHCDEVNGRZWNYBAWMIYGWMGUJIVNGUPJUQZYGWLYABWMIYHYG
      WEXTWKYGVRXPWDXSQYGVQXOOPYGVOWSVPVLVMVNGURUSTYGWCXROPYGWBXQVPVLWAVNGURUST
      UTVAVBVBVTFRZYAYFABIIYIXTYEWKYIXSYDXPQYIXRYCOPYIXQXCVPYIWAXBVLGVSVMVTFURV
      CUSTVCVAVDVPHRZYFXMABIIYJYEXFWKXLYJXPXAYDXEQYJXOWTOPWSVPHVETYJYCXDOPXCVPH
      VETUTYJWJXKOUIYJWGXHWIXJQYJWFXGOPVLVPHVETYJWHXIOPVMVPHVETUTVCVFVDVGVHVI
      $.
  $}

  ${
    phop.2 $e |- G = ( +v ` U ) $.
    phop.4 $e |- S = ( .sOLD ` U ) $.
    phop.6 $e |- N = ( normCV ` U ) $.
    $( A complex inner product space in terms of ordered pair components.
       (Contributed by NM, 2-Apr-2007.)  (New usage is discouraged.) $)
    phop $p |- ( U e. CPreHilOLD -> U = <. <. G , S >. , N >. ) $=
      ( ccphlo wcel c1st cfv c2nd cop wrel wceq phrel 1st2nd mpan nmcvfval cvc
      opeq2i cnv phnv eqid nvvc vcrel vafval smfval opeq12i syl6eqr 3syl opeq1d
      syl5eqr eqtrd ) BHIZBBJKZBLKZMZCAMZDMZHNUOBUROPBHQRUOURUPDMUTDUQUPBDGSUAU
      OUPUSDUOBUBIUPTIZUPUSOBUCBUPUPUDUEVAUPUPJKZUPLKZMZUSTNVAUPVDOUFUPTQRCVBAV
      CBCEUGABFUHUIUJUKULUMUN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Examples of pre-Hilbert spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    cncph.6 $e |- U = <. <. + , x. >. , abs >. $.
    $( The set of complex numbers is an inner product (pre-Hilbert) space.
       (Contributed by Steve Rodriguez, 28-Apr-2007.)  (Revised by Mario
       Carneiro, 7-Nov-2013.)  (New usage is discouraged.) $)
    cncph $p |- U e. CPreHilOLD $=
      ( vx vy caddc cmul cop cabs ccphlo wcel cv co c2 cexp wceq cc eqtrd recnd
      cfv cvv cnv c1 cneg wral eqid cnnv cmin mulm1 adantl oveq2d negsub fveq2d
      wa oveq1d ccj cre sqabsadd sqabssub oveq12d abscl sqcld addcl syl2an cjcl
      2cn mulcl sylan2 recl sylancr ppncand 2times eqcomd rgen2a wb addex mulex
      syl cr wf absf cnex fex mp2an cablo cgr cnaddabloOLD ablogrpo cxp ax-addf
      ax-mp fdmi grporn isphg mp3an mpbir2an eqeltri ) AEFGHGZIBWQIJZWQUAJZCKZD
      KZELHSMNLZWTUBUCXAFLZELZHSZMNLZELZMWTHSZMNLZXAHSZMNLZELZFLZOZDPUDCPUDZWQW
      QUEUFXNCDPWTPJZXAPJZUMZXGXBWTXAUGLZHSZMNLZELZXMXRXFYAXBEXRXEXTMNXRXDXSHXR
      XDWTXAUCZELXSXRXCYCWTEXQXCYCOXPXAUHUIUJWTXAUKQULUNUJXRYBXLXLELZXMXRYBXLMW
      TXAUOSZFLZUPSZFLZELZXLYHUGLZELYDXRXBYIYAYJEWTXAUQWTXAURUSXRXLYHXLXPXIPJXK
      PJXLPJZXQXPXHXPXHWTUTRVAXQXJXQXJXAUTRVAXIXKVBVCZXRMPJYGPJZYHPJVEXRYFPJZYM
      XQXPYEPJYNXAVDWTYEVFVGYNYGYFVHRVQMYGVFVIYLVJQXRYKYDXMOYLYKXMYDXLVKVLVQQQV
      METJFTJHTJZWRWSXOUMVNVOVPPVRHVSPTJYOVTWAPVRTHWBWCCDTTTFEHPEPEWDJEWEJWFEWG
      WJPPWHPEWIWKWLWMWNWOWP $.
  $}

  ${
    elimph.1 $e |- X = ( BaseSet ` U ) $.
    elimph.5 $e |- Z = ( 0vec ` U ) $.
    elimph.6 $e |- U e. CPreHilOLD $.
    $( TODO - use elimnvOLD ? $)
    $( Hypothesis elimination lemma for complex inner product spaces to assist
       weak deduction theorem.  (Contributed by NM, 27-Apr-2007.)
       (New usage is discouraged.) $)
    elimph $p |- if ( A e. X , A , Z ) e. X $=
      ( phnvi elimnv ) ABCDEFBGHI $.
  $}

  $( TODO - use elimnvu ? $)
  $( Hypothesis elimination lemma for complex inner product spaces to assist
     weak deduction theorem.  (Contributed by NM, 6-May-2007.)
     (New usage is discouraged.) $)
  elimphu $p |- if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. )
                 e. CPreHilOLD $=
    ( caddc cmul cop cabs ccphlo eqid cncph elimel ) ABCDEDZFJJGHI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Properties of pre-Hilbert spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y A $.  $d y B $.  $d x y G $.  $d x y M $.  $d x y N $.  $d x y U $.
    $d x y X $.
    isph.1 $e |- X = ( BaseSet ` U ) $.
    isph.2 $e |- G = ( +v ` U ) $.
    isph.3 $e |- M = ( -v ` U ) $.
    isph.6 $e |- N = ( normCV ` U ) $.
    $( The predicate "is an inner product space."  (Contributed by NM,
       1-Feb-2008.)  (New usage is discouraged.) $)
    isph $p |- ( U e. CPreHilOLD <-> ( U e. NrmCVec /\ A. x e. X A. y e. X
      ( ( ( N ` ( x G y ) ) ^ 2 ) + ( ( N ` ( x M y ) ) ^ 2 ) ) = (
      2 x. ( ( ( N ` x ) ^ 2 ) + ( ( N ` y ) ^ 2 ) ) ) ) ) $=
      ( wcel co cfv c2 cexp caddc wceq wa cvv ccphlo cnv cmul wral phnv cns cop
      cv wb eqid nvop eleq1 c1 cneg cpv eqeltri cnmcv bafval isphg mp3an nvmval
      fvex 3expa fveq2d oveq1d oveq2d eqeq1d ralbidva pm5.32i anbi1d syl5bb syl
      syl5rbb bitrd bianabs biadan2 ) CUALZCUBLZAUHZBUHZDMFNOPMZVSVTEMZFNZOPMZQ
      MZOVSFNOPMVTFNOPMQMUCMZRZBGUDZAGUDZCUEVRVQWIVRCDCUFNZUGFUGZRZVQVRWISZUIWJ
      CDFIWJUJZKUKWLVQWKUALZWMCWKUAULWOWKUBLZWAVSUMUNVTWJMDMZFNZOPMZQMZWFRZBGUD
      ZAGUDZSZWLWMDTLWJTLFTLWOXDUIDCUONTICUOVBUPCUFVBFCUQNTKCUQVBUPABTTTWJDFGCD
      GHIURUSUTWMVRXCSWLXDVRWIXCVRWHXBAGVRVSGLZSZWGXABGXFVTGLZSZWEWTWFXHWDWSWAQ
      XHWCWROPXHWBWQFVRXEXGWBWQRVSVTWJCDEGHIWNJVAVCVDVEVFVGVHVHVIWLVRWPXCCWKUBU
      LVJVMVKVNVLVOVP $.

    $( The parallelogram law for an inner product space.  (Contributed by NM,
       2-Apr-2007.)  (New usage is discouraged.) $)
    phpar2 $p |- ( ( U e. CPreHilOLD /\ A e. X /\ B e. X ) ->
      ( ( ( N ` ( A G B ) ) ^ 2 ) + ( ( N ` ( A M B ) ) ^ 2 ) ) =
        ( 2 x. ( ( ( N ` A ) ^ 2 ) + ( ( N ` B ) ^ 2 ) ) ) ) $=
      ( vx co cfv c2 cexp caddc cmul wceq oveq1d vy ccphlo wcel w3a cv wral cnv
      isph simprbi 3ad2ant1 wi oveq1 fveq2d oveq12d fveq2 oveq2d eqeq12d rspc2v
      oveq2 3adant1 mpd ) CUBUCZAGUCZBGUCZUDLUEZUAUEZDMZFNZOPMZVEVFEMZFNZOPMZQM
      ZOVEFNZOPMZVFFNZOPMZQMZRMZSZUAGUFLGUFZABDMZFNZOPMZABEMZFNZOPMZQMZOAFNZOPM
      ZBFNZOPMZQMZRMZSZVBVCWAVDVBCUGUCWALUACDEFGHIJKUHUIUJVCVDWAWOUKVBVTWOAVFDM
      ZFNZOPMZAVFEMZFNZOPMZQMZOWJVQQMZRMZSLUAABGGVEASZVMXBVSXDXEVIWRVLXAQXEVHWQ
      OPXEVGWPFVEAVFDULUMTXEVKWTOPXEVJWSFVEAVFEULUMTUNXEVRXCORXEVOWJVQQXEVNWIOP
      VEAFUOTTUPUQVFBSZXBWHXDWNXFWRWDXAWGQXFWQWCOPXFWPWBFVFBADUSUMTXFWTWFOPXFWS
      WEFVFBAEUSUMTUNXFXCWMORXFVQWLWJQXFVPWKOPVFBFUOTUPUPUQURUTVA $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y G $.  $d x y N $.  $d x y S $.  $d x y X $.
    phpar.1 $e |- X = ( BaseSet ` U ) $.
    phpar.2 $e |- G = ( +v ` U ) $.
    phpar.4 $e |- S = ( .sOLD ` U ) $.
    phpar.6 $e |- N = ( normCV ` U ) $.
    $( The parallelogram law for an inner product space.  (Contributed by NM,
       2-Apr-2007.)  (New usage is discouraged.) $)
    phpar $p |- ( ( U e. CPreHilOLD /\ A e. X /\ B e. X ) ->
      ( ( ( N ` ( A G B ) ) ^ 2 ) + ( ( N ` ( A G ( -u 1 S B ) ) ) ^ 2 ) ) =
        ( 2 x. ( ( ( N ` A ) ^ 2 ) + ( ( N ` B ) ^ 2 ) ) ) ) $=
      ( wcel co cfv c2 cexp caddc cmul cvv oveq1d vx vy ccphlo w3a cv cneg wceq
      c1 wral c1st vafval fvex eqeltri c2nd smfval nmcvfval 3pm3.2i phop eleq1d
      cop ibi cnv bafval isphg simplbda sylancr 3ad2ant1 wi oveq1 oveq12d fveq2
      fveq2d oveq2d eqeq12d oveq2 rspc2v 3adant1 mpd ) DUCLZAGLZBGLZUDUAUEZUBUE
      ZEMZFNZOPMZWBUHUFZWCCMZEMZFNZOPMZQMZOWBFNZOPMZWCFNZOPMZQMZRMZUGZUBGUIUAGU
      IZABEMZFNZOPMZAWGBCMZEMZFNZOPMZQMZOAFNZOPMZBFNZOPMZQMZRMZUGZVSVTWTWAVSESL
      ZCSLZFSLZUDZECUTFUTZUCLZWTXPXQXREDUJNZUJNSDEIUKYBUJULUMCYBUNNSCDJUOYBUNUL
      UMFDUNNSDFKUPDUNULUMUQVSYAVSDXTUCCDEFIJKURUSVAXSYAXTVBLWTUAUBSSSCEFGDEGHI
      VCVDVEVFVGVTWAWTXOVHVSWSXOAWCEMZFNZOPMZAWHEMZFNZOPMZQMZOXJWPQMZRMZUGUAUBA
      BGGWBAUGZWLYIWRYKYLWFYEWKYHQYLWEYDOPYLWDYCFWBAWCEVIVLTYLWJYGOPYLWIYFFWBAW
      HEVIVLTVJYLWQYJORYLWNXJWPQYLWMXIOPWBAFVKTTVMVNWCBUGZYIXHYKXNYMYEXCYHXGQYM
      YDXBOPYMYCXAFWCBAEVOVLTYMYGXFOPYMYFXEFYMWHXDAEWCBWGCVOVMVLTVJYMYJXMORYMWP
      XLXJQYMWOXKOPWCBFVKTVMVMVNVPVQVR $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y G $.  $d x y N $.  $d x y S $.  $d x y X $.
    ip1i.1 $e |- X = ( BaseSet ` U ) $.
    ip1i.2 $e |- G = ( +v ` U ) $.
    ip1i.4 $e |- S = ( .sOLD ` U ) $.
    ip1i.7 $e |- P = ( .iOLD ` U ) $.
    ip1i.9 $e |- U e. CPreHilOLD $.
    ${
      ip1i.a $e |- A e. X $.
      ip1i.b $e |- B e. X $.
      ip1i.c $e |- C e. X $.
      ${
        ip1i.6 $e |- N = ( normCV ` U ) $.
        ip0i.j $e |- J e. CC $.
        $( A slight variant of Equation 6.46 of [Ponnusamy] p. 362, where ` J `
           is either 1 or -1 to represent +-1.  (Contributed by NM,
           23-Apr-2007.)  (New usage is discouraged.) $)
        ip0i $p |- ( ( ( ( N ` ( ( A G B ) G ( J S C ) ) ) ^ 2 ) -
             ( ( N ` ( ( A G B ) G ( -u J S C ) ) ) ^ 2 ) ) +
             ( ( ( N ` ( ( A G ( -u 1 S B ) ) G ( J S C ) ) ) ^ 2 ) -
           ( ( N ` ( ( A G ( -u 1 S B ) ) G ( -u J S C ) ) ) ^ 2 ) ) ) =
                ( 2 x. ( ( ( N ` ( A G ( J S C ) ) ) ^ 2 ) -
                ( ( N ` ( A G ( -u J S C ) ) ) ^ 2 ) ) ) $=
          ( c2 co cfv cexp cneg cmin cmul caddc c1 2cn phnvi cnv cc nvscl mp3an
          wcel nvgcl nvcli recni sqcli negcli subdii wceq mulcli pnpcan2 eqtr4i
          cablo w3a c1st cvc eqid nvvc vafval vcablo mp2b 3pm3.2i bafval ablo32
          fveq2i oveq1i neg1cn oveq12i ccphlo adddii 3eqtri addsub4i 3eqtr2ri
          mp2an phpar ) UAAHCEUBZGUBZIUCZUAUDUBZAHUEZCEUBZGUBZIUCZUAUDUBZUFUBUG
          UBZUAWMUGUBZUABIUCZUAUDUBZUGUBZUHUBZUAWRUGUBZXCUHUBZUFUBZABGUBZWJGUBZ
          IUCZUAUDUBZAUIUEZBEUBZGUBZWJGUBZIUCZUAUDUBZUHUBZXHWOGUBZIUCZUAUDUBZXN
          WOGUBZIUCZUAUDUBZUHUBZUFUBXKYAUFUBXQYDUFUBUHUBWSWTXEUFUBZXGUAWMWRUJWL
          WLWKFIJKSFOUKZFULUPZAJUPZWJJUPZWKJUPZYGPYHHUMUPCJUPZYJYGTRHCEFJKMUNUO
          ZAWJFGJKLUQUOZURUSUTZWQWQWPFIJKSYGYHYIWOJUPZWPJUPZYGPYHWNUMUPYLYPYGHT
          VARWNCEFJKMUNUOZAWOFGJKLUQUOZURUSUTZVBWTUMUPXEUMUPXCUMUPXGYFVCUAWMUJY
          OVDUAWRUJYTVDUAXBUJXAXABFIJKSYGQURUSUTZVDWTXEXCVEUOVFXRXDYEXFUFXRWKBG
          UBZIUCZUAUDUBZWKXMGUBZIUCZUAUDUBZUHUBZUAWMXBUHUBUGUBZXDXKUUDXQUUGUHXJ
          UUCUAUDXIUUBIGVGUPZYIBJUPZYJVHXIUUBVCYHFVIUCZVJUPUUJYGFUULUULVKVLGUUL
          FGLVMVNVOZYIUUKYJPQYMVPABWJGJFGJKLVQZVRWHVSVTXPUUFUAUDXOUUEIUUJYIXMJU
          PZYJVHXOUUEVCUUMYIUUOYJPYHXLUMUPUUKUUOYGWAQXLBEFJKMUNUOZYMVPAXMWJGJUU
          NVRWHVSVTWBFWCUPZYKUUKUUHUUIVCOYNQWKBEFGIJKLMSWIUOUAWMXBUJYOUUAWDWEYE
          WPBGUBZIUCZUAUDUBZWPXMGUBZIUCZUAUDUBZUHUBZUAWRXBUHUBUGUBZXFYAUUTYDUVC
          UHXTUUSUAUDXSUURIUUJYIUUKYPVHXSUURVCUUMYIUUKYPPQYRVPABWOGJUUNVRWHVSVT
          YCUVBUAUDYBUVAIUUJYIUUOYPVHYBUVAVCUUMYIUUOYPPUUPYRVPAXMWOGJUUNVRWHVSV
          TWBUUQYQUUKUVDUVEVCOYSQWPBEFGIJKLMSWIUOUAWRXBUJYTUUAWDWEWBXKXQYAYDXJX
          JXIFIJKSYGYHXHJUPZYJXIJUPYGYHYIUUKUVFYGPQABFGJKLUQUOZYMXHWJFGJKLUQUOU
          RUSUTXPXPXOFIJKSYGYHXNJUPZYJXOJUPYGYHYIUUOUVHYGPUUPAXMFGJKLUQUOZYMXNW
          JFGJKLUQUOURUSUTXTXTXSFIJKSYGYHUVFYPXSJUPYGUVGYRXHWOFGJKLUQUOURUSUTYC
          YCYBFIJKSYGYHUVHYPYBJUPYGUVIYRXNWOFGJKLUQUOURUSUTWFWG $.

        $( Lemma for ~ ip1i .  (Contributed by NM, 21-Apr-2007.)
           (New usage is discouraged.) $)
        ip1ilem $p |- ( ( ( A G B ) P C ) +
                         ( ( A G ( -u 1 S B ) ) P C ) ) = ( 2 x. ( A P C ) ) $=
          ( c4 co c1 cneg caddc cmul cdiv c2 cfv cexp cmin ci wcel wceq 4ipval2
          cnv phnvi mp3an oveq2i 2cn 4cn dipcl mul12i nvgcl nvcli resqcli recni
          cc ax-1cn negcli nvscl subcli ax-icn mulcli adddii nvsid mp2an fveq2i
          ip0i oveq1i oveq12i 3eqtr3i eqtr4i eqtr2i 3eqtri 3eqtr3ri addcli 4ne0
          add4i divcan3i ) UAABGUBZCDUBZAUCUDZBEUBZGUBZCDUBZUEUBZUFUBZUAUGUBUAU
          HACDUBZUFUBZUFUBZUAUGUBWQWTWRXAUAUGUHUAWSUFUBZUFUBUHACGUBZIUIZUHUJUBZ
          AWMCEUBZGUBZIUIZUHUJUBZUKUBZULAULCEUBZGUBZIUIZUHUJUBZAULUDZCEUBZGUBZI
          UIZUHUJUBZUKUBZUFUBZUEUBZUFUBZXAWRXBYBUHUFFUPUMZAJUMZCJUMZXBYBUNFOUQZ
          PRACDEFGIJKLMSNUOURUSUHUAWSUTVAYDYEYFWSVHUMYGPRACDFJKNVBURZVCYCWKCGUB
          ZIUIZUHUJUBZWKXFGUBZIUIZUHUJUBZUKUBZWOCGUBZIUIZUHUJUBZWOXFGUBZIUIZUHU
          JUBZUKUBZUEUBZULWKXKGUBZIUIZUHUJUBZWKXPGUBZIUIZUHUJUBZUKUBZUFUBZULWOX
          KGUBZIUIZUHUJUBZWOXPGUBZIUIZUHUJUBZUKUBZUFUBZUEUBZUEUBZYOUUKUEUBZUUBU
          USUEUBZUEUBZWRYCUHXJUFUBZUHYAUFUBZUEUBUVAUHXJYAUTXEXIXEXDXCFIJKSYGYDY
          EYFXCJUMYGPRACFGJKLVDURVEVFVGXIXHXGFIJKSYGYDYEXFJUMZXGJUMYGPYDWMVHUMZ
          YFUVGYGUCVIVJZRWMCEFJKMVKURZAXFFGJKLVDURVEVFVGVLULXTVMXNXSXNXMXLFIJKS
          YGYDYEXKJUMZXLJUMYGPYDULVHUMYFUVKYGVMRULCEFJKMVKURZAXKFGJKLVDURVEVFVG
          XSXRXQFIJKSYGYDYEXPJUMZXQJUMYGPYDXOVHUMYFUVMYGULVMVJRXOCEFJKMVKURZAXP
          FGJKLVDURVEVFVGVLZVNVOUUCUVEUUTUVFUEWKUCCEUBZGUBZIUIZUHUJUBZYNUKUBZWO
          UVPGUBZIUIZUHUJUBZUUAUKUBZUEUBUHAUVPGUBZIUIZUHUJUBZXIUKUBZUFUBUUCUVEA
          BCDEFGUCIJKLMNOPQRSVIVSUVTYOUWDUUBUEUVSYKYNUKUVRYJUHUJUVQYIIUVPCWKGYD
          YFUVPCUNYGRCEFJKMVPVQZUSVRVTVTUWCYRUUAUKUWBYQUHUJUWAYPIUVPCWOGUWIUSVR
          VTVTWAUWHXJUHUFUWGXEXIUKUWFXDUHUJUWEXCIUVPCAGUWIUSVRVTVTUSWBULUUJUURU
          EUBZUFUBULUHXTUFUBZUFUBUUTUVFUWJUWKULUFABCDEFGULIJKLMNOPQRSVMVSUSULUU
          JUURVMUUFUUIUUFUUEUUDFIJKSYGYDWKJUMZUVKUUDJUMYGYDYEBJUMZUWLYGPQABFGJK
          LVDURZUVLWKXKFGJKLVDURVEVFVGUUIUUHUUGFIJKSYGYDUWLUVMUUGJUMYGUWNUVNWKX
          PFGJKLVDURVEVFVGVLZUUNUUQUUNUUMUULFIJKSYGYDWOJUMZUVKUULJUMYGYDYEWNJUM
          ZUWPYGPYDUVHUWMUWQYGUVIQWMBEFJKMVKURAWNFGJKLVDURZUVLWOXKFGJKLVDURVEVF
          VGUUQUUPUUOFIJKSYGYDUWPUVMUUOJUMYGUWRUVNWOXPFGJKLVDURVEVFVGVLZVOULUHX
          TVMUTUVOVCWBWAWCYOUUBUUKUUSYKYNYKYJYIFIJKSYGYDUWLYFYIJUMYGUWNRWKCFGJK
          LVDURVEVFVGYNYMYLFIJKSYGYDUWLUVGYLJUMYGUWNUVJWKXFFGJKLVDURVEVFVGVLYRU
          UAYRYQYPFIJKSYGYDUWPYFYPJUMYGUWRRWOCFGJKLVDURVEVFVGUUAYTYSFIJKSYGYDUW
          PUVGYSJUMYGUWRUVJWOXFFGJKLVDURVEVFVGVLULUUJVMUWOVNULUURVMUWSVNWIWRUAW
          LUFUBZUAWPUFUBZUEUBUVDUAWLWPVAYDUWLYFWLVHUMYGUWNRWKCDFJKNVBURZYDUWPYF
          WPVHUMYGUWRRWOCDFJKNVBURZVOUWTUVBUXAUVCUEYDUWLYFUWTUVBUNYGUWNRWKCDEFG
          IJKLMSNUOURYDUWPYFUXAUVCUNYGUWRRWOCDEFGIJKLMSNUOURWAWDWEWFVTWQUAWLWPU
          XBUXCWGVAWHWJWTUAUHWSUTYHVNVAWHWJWB $.
      $}

      $( Equation 6.47 of [Ponnusamy] p. 362.  (Contributed by NM,
         27-Apr-2007.)  (New usage is discouraged.) $)
      ip1i $p |- ( ( ( A G B ) P C ) +
                       ( ( A G ( -u 1 S B ) ) P C ) ) = ( 2 x. ( A P C ) ) $=
        ( c1 cnmcv cfv eqid ax-1cn ip1ilem ) ABCDEFGQFRSZHIJKLMNOPUCTUAUB $.
    $}

    ${
      ip2i.8 $e |- A e. X $.
      ip2i.9 $e |- B e. X $.
      $( Equation 6.48 of [Ponnusamy] p. 362.  (Contributed by NM,
         26-Apr-2007.)  (New usage is discouraged.) $)
      ip2i $p |- ( ( 2 S A ) P B ) = ( 2 x. ( A P B ) ) $=
        ( co c1 caddc cc0 wcel wceq c2 cneg cmul cnv cc phnvi nvgcl mp3an dipcl
        addid1i cn0v cfv eqid nvrinv mp2an oveq1i dip0l eqtri oveq2i w3a ax-1cn
        df-2 3pm3.2i nvdir nvsid oveq12i 3eqtr4ri ip1i ) UAADOZBCOZAAFOZBCOZAPU
        BADOFOZBCOZQOZUAABCOUCOVLRQOVLVOVJVLEUDSZVKGSZBGSZVLUESELUFZVPAGSZVTVQV
        SMMAAEFGHIUGUHNVKBCEGHKUIUHUJVNRVLQVNEUKULZBCOZRVMWABCVPVTVMWATVSMADEFG
        WAHIJWAUMZUNUOUPVPVRWBRTVSNBCEGWAHWCKUQUOURUSVIVKBCVIPPQOZADOZVKUAWDADV
        BUPWEPADOZWFFOZVKVPPUESZWHVTUTWEWGTVSWHWHVTVAVAMVCPPADEFGHIJVDUOWFAWFAF
        VPVTWFATVSMADEGHJVEUOZWIVFURURUPVGAABCDEFGHIJKLMMNVHUR $.
    $}

    ${
      ipdiri.8 $e |- A e. X $.
      ipdiri.9 $e |- B e. X $.
      ipdiri.10 $e |- C e. X $.
      $( Lemma for ~ ipdiri .  (Contributed by NM, 26-Apr-2007.)
         (New usage is discouraged.) $)
      ipdirilem $p |- ( ( A G B ) P C ) = ( ( A P C ) + ( B P C ) ) $=
        ( co wcel wceq mp2an c2 cdiv cmul cneg caddc 2cn 2ne0 recidi oveq1i cnv
        c1 w3a phnvi halfcn nvgcl mp3an 3pm3.2i nvsass nvsid 3eqtr3i nvscl ip2i
        cc eqtr3i neg1cn ip1i cn0v cfv cablo wa c1st cvc eqid nvvc ax-mp vafval
        vcablo pm3.2i bafval ablo4 smfval vc2OLD nvrinv oveq12i nv0rid divcan1i
        3eqtri oveq2i eqtr4i ax-1cn eqtri mulcomi neg1mulneg1e1 nv0lid 3eqtr2i
        nvdi ) ABGQZCDQZUAUKUAUBQZWQEQZCDQUCQZWTWSAUKUDZBEQZGQZEQZGQZCDQZWTXBXE
        EQZGQZCDQZUEQACDQZBCDQZUEQUAWTEQZCDQWRXAXMWQCDUAWSUCQZWQEQZUKWQEQZXMWQX
        NUKWQEUAUFUGUHUIFUJRZUAVCRZWSVCRZWQHRZULXOXMSFMUMZXRXSXTUFUNXQAHRZBHRZX
        TYANOABFGHIJUOUPZUQUAWSWQEFHIKURTXQXTXPWQSYAYDWQEFHIKUSTUTUIWTCDEFGHIJK
        LMXQXSXTWTHRYAUNYDWSWQEFHIKVAUPZPVBVDWTXECDEFGHIJKLMYEXQXSXDHRZXEHRYAUN
        XQYBXCHRZYFYANXQXBVCRZYCYGYAVEOXBBEFHIKVAUPZAXCFGHIJUOUPZWSXDEFHIKVAUPP
        VFXGXKXJXLUEXFACDWSWQXDGQZEQZWSUAUCQZAEQZXFAYLWSUAAEQZEQZYNYKYOWSEYKAAG
        QZBXCGQZGQZYOFVGVHZGQZYOGVIRZYBYCVJZYBYGVJYKYSSFVKVHZVLRZUUBXQUUEYAFUUD
        UUDVMVNVOZGUUDFGJVPZVQVOZYBYCNOVRZYBYGNYIVRABAXCGHFGHIJVSZVTUPYQYOYRYTG
        UUEYBYQYOSUUFNAEGUUDHUUGEFKWAZUUJWBTXQYCYRYTSYAOBEFGHYTIJKYTVMZWCTWDXQY
        OHRZUUAYOSYAXQXRYBUUMYAUFNUAAEFHIKVAUPYOFGHYTIJUULWETWGWHXQXSXRYBULYNYP
        SYAXSXRYBUNUFNUQWSUAAEFHIKURTWIXQXSXTYFULYLXFSYAXSXTYFUNYDYJUQWSWQXDEFG
        HIJKWPTYNUKAEQZAYMUKAEUKUAWJUFUGWFZUIXQYBUUNASYANAEFHIKUSTWKUTUIXIBCDXI
        WSWQXBAEQZBGQZGQZEQZUKBEQZBXIWTWSUUQEQZGQZUUSXHUVAWTGXBWSUCQZXDEQZWSXBU
        CQZXDEQZXHUVAUVCUVEXDEXBWSVEUNWLUIXQYHXSYFULUVDXHSYAYHXSYFVEUNYJUQXBWSX
        DEFHIKURTUVFWSXBXDEQZEQZUVAXQXSYHYFULUVFUVHSYAXSYHYFUNVEYJUQWSXBXDEFHIK
        URTUVGUUQWSEUVGUUPXBXCEQZGQZUUQXQYHYBYGULUVGUVJSYAYHYBYGVENYIUQXBAXCEFG
        HIJKWPTUVIBUUPGXBXBUCQZBEQZUUTUVIBUVKUKBEWMUIXQYHYHYCULUVLUVISYAYHYHYCV
        EVEOUQXBXBBEFHIKURTXQYCUUTBSYAOBEFHIKUSTZUTWHWKWHWKUTWHXQXSXTUUQHRZULUU
        SUVBSYAXSXTUVNUNYDXQUUPHRZYCUVNYAXQYHYBUVOYAVENXBAEFHIKVAUPZOUUPBFGHIJU
        OUPUQWSWQUUQEFGHIJKWPTWIUUSWSUABEQZEQZYMBEQZUUTUURUVQWSEUURAUUPGQZBBGQZ
        GQZUWAUVQUUBUUCUVOYCVJUURUWBSUUHUUIUVOYCUVPOVRABUUPBGHUUJVTUPUWBYTUWAGQ
        ZUWAUVTYTUWAGXQYBUVTYTSYANAEFGHYTIJKUULWCTUIXQUWAHRZUWCUWASYAXQYCYCUWDY
        AOOBBFGHIJUOUPUWAFGHYTIJUULWNTWKUUEYCUWAUVQSUUFOBEGUUDHUUGUUKUUJWBTWGWH
        XQXSXRYCULUVSUVRSYAXSXRYCUNUFOUQWSUABEFHIKURTYMUKBEUUOUIWOUVMWGUIWDWO
        $.
    $}

    $( Distributive law for inner product.  Equation I3 of [Ponnusamy] p. 362.
       (Contributed by NM, 27-Apr-2007.)  (New usage is discouraged.) $)
    ipdiri $p |- ( ( A e. X /\ B e. X /\ C e. X ) ->
                 ( ( A G B ) P C ) = ( ( A P C ) + ( B P C ) ) ) $=
      ( wcel co caddc wceq cif oveq1 oveq2 cn0v cfv oveq1d eqeq12d oveq12d eqid
      oveq2d elimph ipdirilem dedth3h ) AHNZBHNZCHNZABGOZCDOZACDOZBCDOZPOZQUKAF
      UAUBZRZBGOZCDOZUTCDOZUQPOZQUTULBUSRZGOZCDOZVCVECDOZPOZQVFUMCUSRZDOZUTVJDO
      ZVEVJDOZPOZQABCUSUSUSAUTQZUOVBURVDVOUNVACDAUTBGSUCVOUPVCUQPAUTCDSUCUDBVEQ
      ZVBVGVDVIVPVAVFCDBVEUTGTUCVPUQVHVCPBVECDSUGUDCVJQZVGVKVIVNCVJVFDTVQVCVLVH
      VMPCVJUTDTCVJVEDTUEUDUTVEVJDEFGHIJKLMAFHUSIUSUFZMUHBFHUSIVRMUHCFHUSIVRMUH
      UIUJ $.

    ${
      $d j k A $.  $d j k B $.  $d j k C $.  $d j N $.  $d j k P $.
      $d j k S $.  $d j k X $.
      ipasslem1.b $e |- B e. X $.
      $( Lemma for ~ ipassi .  Show the inner product associative law for
         nonnegative integers.  (Contributed by NM, 27-Apr-2007.)
         (New usage is discouraged.) $)
      ipasslem1 $p |- ( ( N e. NN0 /\ A e. X ) ->
                      ( ( N S A ) P B ) = ( N x. ( A P B ) ) ) $=
        ( wcel co cmul wceq cc0 oveq1 vj vk cn0 cv wi c1 caddc wa cc ax-1cn cnv
        nn0cn w3a phnvi nvdir mpan mp3an2 sylan nvsid adantl oveq2d eqtrd dipcl
        oveq1d mp3an13 nvscl mp3an1 ipdiri mp3an3 sylancom eqtr4d adddir syl2an
        mulid2d sylan9eq adantr exp31 a2d cn0v cfv eqid dip0l mp2an nv0 3eqtr4a
        mul02d eqeq12d imbi2d nn0indALT imp ) GUCOAHOZGADPZBCPZGABCPZQPZRZWKUAU
        DZADPZBCPZWQWNQPZRZUEWKSADPZBCPZSWNQPZRZUEWKUBUDZADPZBCPZXFWNQPZRZUEWKX
        FUFUGPZADPZBCPZXKWNQPZRZUEWKWPUEUAUBGXFUCOZWKXJXOXPWKXJXOXPWKUHZXJUHXMX
        IUFWNQPZUGPZXNXQXJXMXHXRUGPZXSXQXMXGAFPZBCPZXTXQXLYABCXQXLXGUFADPZFPZYA
        XPXFUIOZWKXLYDRZXFULZYEUFUIOZWKYFUJEUKOZYEYHWKUMYFEMUNZXFUFADEFHIJKUOUP
        UQURXQYCAXGFWKYCARZXPYIWKYKYJADEHIKUSUPUTVAVBVDXQXTXHWNUGPZYBXQXRWNXHUG
        WKXRWNRXPWKWNYIWKBHOZWNUIOZYJNABCEHILVCVEZVNUTVAXPWKXGHOZYBYLRZXPYEWKYP
        YGYIYEWKYPYJXFADEHIKVFVGURYPWKYMYQNXGABCDEFHIJKLMVHVIVJVKVKXHXIXRUGTVOX
        QXNXSRZXJXPYEYNYRWKYGYOYEYHYNYRUJXFUFWNVLUQVMVPVKVQVRWKEVSVTZBCPZSXCXDY
        IYMYTSRYJNBCEHYSIYSWAZLWBWCWKXBYSBCYIWKXBYSRYJADEHYSIKUUAWDUPVDWKWNYOWF
        WEWQSRZXAXEWKUUBWSXCWTXDUUBWRXBBCWQSADTVDWQSWNQTWGWHWQXFRZXAXJWKUUCWSXH
        WTXIUUCWRXGBCWQXFADTVDWQXFWNQTWGWHWQXKRZXAXOWKUUDWSXMWTXNUUDWRXLBCWQXKA
        DTVDWQXKWNQTWGWHWQGRZXAWPWKUUEWSWMWTWOUUEWRWLBCWQGADTVDWQGWNQTWGWHWIWJ
        $.

      $( Lemma for ~ ipassi .  Show the inner product associative law for
         nonpositive integers.  (Contributed by NM, 27-Apr-2007.)
         (New usage is discouraged.) $)
      ipasslem2 $p |- ( ( N e. NN0 /\ A e. X ) ->
              ( ( -u N S A ) P B ) = ( -u N x. ( A P B ) ) ) $=
        ( wcel co cmul cc cc0 wceq cn0 wa cneg nn0cn negcld phnvi dipcl mp3an13
        cnv mulcl syl2an nvscl mp3an1 sylan syl cmin caddc ax-1cn mulneg2 mpan2
        c1 mulid1 negeqd eqtr2d adantr oveq1d neg1cn nvsass mpan mp3an2 mp3an12
        w3a ipasslem1 sylan2 oveq2d negsubd mulneg1 adantl adddid ipdiri mp3an3
        eqtrd mpdan cn0v eqid nvrinv dip0l mp2an syl6eq eqtr3d mul01d sylan9eqr
        cfv 3eqtr2d subeq0d eqcomd ) GUAOZAHOZUBZGUCZABCPZQPZWTADPZBCPZWSXBXDWQ
        WTROZXAROZXBROWRWQGGUDZUEZEUIOZWRBHOZXFEMUFZNABCEHILUGUHZWTXAUJUKZWSXCH
        OZXDROZWQXEWRXNXHXIXEWRXNXKWTADEHIKULUMUNXIXNXJXOXKNXCBCEHILUGUHUOWSXBX
        DUPPXBGVAUCZADPZBCPZQPZUPPXBXSUCZUQPZSWSXDXSXBUPWSXDGXQDPZBCPZXSWSXCYBB
        CWQGROZWRXCYBTXGYDWRUBZXCGXPQPZADPZYBYEWTYFADYDWTYFTWRYDYFGVAQPZUCZWTYD
        VAROYFYITURGVAUSUTYDYHGGVBVCVDVEVFYDXPROZWRYGYBTZVGXIYDYJWRVLYKXKGXPADE
        HIKVHVIVJWBUNVFWRWQXQHOZYCXSTXIYJWRYLXKVGXPADEHIKULVKZXQBCDEFGHIJKLMNVM
        VNWBVOWSXBXSXMWQYDXRROZXSROWRXGWRYLYNYMXIYLXJYNXKNXQBCEHILUGUHUOZGXRUJU
        KVPWSXBWTXRQPZUQPZYASWSYPXTXBUQWQYDYNYPXTTWRXGYOGXRVQUKVOWSWTXAXRUQPZQP
        ZYQSWSWTXAXRWQXEWRXHVEWRXFWQXLVRWRYNWQYOVRVSWRWQYSWTSQPSWRYRSWTQWRAXQFP
        ZBCPZYRSWRYLUUAYRTZYMWRYLXJUUBNAXQBCDEFHIJKLMVTWAWCWRUUAEWDWMZBCPZSWRYT
        UUCBCXIWRYTUUCTXKADEFHUUCIJKUUCWEZWFVIVFXIXJUUDSTXKNBCEHUUCIUUELWGWHWIW
        JVOWQWTXHWKWLWJWJWNWOWP $.

      $( Lemma for ~ ipassi .  Show the inner product associative law for all
         integers.  (Contributed by NM, 27-Apr-2007.)
         (New usage is discouraged.) $)
      ipasslem3 $p |- ( ( N e. ZZ /\ A e. X ) ->
              ( ( N S A ) P B ) = ( N x. ( A P B ) ) ) $=
        ( wcel cn0 co cmul wceq oveq1d cz cr cn wa elznn0nn ipasslem1 ipasslem2
        cneg wo nnnn0 sylan adantll recn negnegd ad2antrr 3eqtr3d jaoian sylanb
        ) GUAOGPOZGUBOZGUHZUCOZUDZUIAHOZGADQZBCQZGABCQZRQZSZGUEUSVDVIVCABCDEFGH
        IJKLMNUFVCVDUDVAUHZADQZBCQZVJVGRQZVFVHVBVDVLVMSZUTVBVAPOVDVNVAUJABCDEFV
        AHIJKLMNUGUKULUTVLVFSVBVDUTVKVEBCUTVJGADUTGGUMUNZTTUOUTVMVHSVBVDUTVJGVG
        RVOTUOUPUQUR $.

      $( Lemma for ~ ipassi .  Show the inner product associative law for
         positive integer reciprocals.  (Contributed by NM, 27-Apr-2007.)
         (New usage is discouraged.) $)
      ipasslem4 $p |- ( ( N e. NN /\ A e. X ) ->
                  ( ( ( 1 / N ) S A ) P B ) = ( ( 1 / N ) x. ( A P B ) ) ) $=
        ( wcel c1 co cmul cc adantr cn wa cdiv nnrecre recnd phnvi nvscl mp3an1
        cnv sylan dipcl mp3an13 syl mulcl syl2an nncn cc0 recidd oveq1d mulid2d
        wne nnne0 sylan9eq wceq nvsid simpr w3a nvsass syl3anc eqtr3d cn0 nnnn0
        mpan ipasslem1 syl2anc 3eqtrd adantl mulassd mulcanad ) GUAOZAHOZUBZPGU
        CQZADQZBCQZWCABCQZRQZGWBWDHOZWESOZVTWCSOZWAWHVTWCGUDUEZEUIOZWJWAWHEMUFZ
        WCADEHIKUGUHUJZWLWHBHOZWIWMNWDBCEHILUKULUMVTWJWFSOZWGSOWAWKWLWAWOWPWMNA
        BCEHILUKULZWCWFUNUOVTGSOZWAGUPZTZVTGUQVAWAGVBZTWBGWCRQZWFRQZGWERQZGWGRQ
        WBXCWFGWDDQZBCQZXDVTWAXCPWFRQWFVTXBPWFRVTGWSXAURZUSWAWFWQUTVCWBAXEBCWBX
        BADQZAXEVTWAXHPADQZAVTXBPADXGUSWLWAXIAVDWMADEHIKVEVMVCWBWRWJWAXHXEVDZWT
        VTWJWAWKTZVTWAVFWLWRWJWAVGXJWMGWCADEHIKVHVMVIVJUSWBGVKOZWHXFXDVDVTXLWAG
        VLTWNWDBCDEFGHIJKLMNVNVOVPWBGWCWFWTXKWAWPVTWQVQVRVJVS $.

      $( Lemma for ~ ipassi .  Show the inner product associative law for
         rational numbers.  (Contributed by NM, 27-Apr-2007.)
         (New usage is discouraged.) $)
      ipasslem5 $p |- ( ( C e. QQ /\ A e. X ) ->
                  ( ( C S A ) P B ) = ( C x. ( A P B ) ) ) $=
        ( vj vk wcel co cmul wceq cq cv cdiv cn wrex cz wi elq wa w3a c1 cc zcn
        nnrecre recnd cnv phnvi dipcl mp3an13 mulass syl3an adantr nncn cc0 wne
        adantl nnne0 divrecd 3adant3 oveq1d nvsass eqtrd nvscl mp3an1 ipasslem3
        mpan sylan sylan2 3impb ipasslem4 3adant1 oveq2d 3eqtr4rd oveq1 eqeq12d
        id 3eqtrd syl5ibrcom 3expia com23 rexlimivv sylbi imp ) CUAQZAHQZCAERZB
        DRZCABDRZSRZTZWNCOUBZPUBZUCRZTZPUDUEOUFUEWOWTUGZOPCUHXDXEOPUFUDXAUFQZXB
        UDQZUIZWOXDWTXFXGWOXDWTUGXFXGWOUJZWTXDXCAERZBDRZXCWRSRZTXIXAUKXBUCRZSRZ
        WRSRZXAXMWRSRZSRZXLXKXFXAULQZXGXMULQZWOWRULQZXOXQTXAUMZXGXMXBUNUOZFUPQZ
        WOBHQXTFMUQZNABDFHILURUSXAXMWRUTVAXIXCXNWRSXFXGXCXNTWOXHXAXBXFXRXGYAVBX
        GXBULQXFXBVCVFXGXBVDVEXFXBVGVFVHVIZVJXIXKXAXMAERZERZBDRZXAYFBDRZSRZXQXI
        XJYGBDXIXJXNAERZYGXIXCXNAEYEVJXFXRXGXSWOWOYKYGTZYAYBWOWFYCXRXSWOUJYLYDX
        AXMAEFHIKVKVPVAVLVJXFXGWOYHYJTZXGWOUIXFYFHQZYMXGXSWOYNYBYCXSWOYNYDXMAEF
        HIKVMVNVQYFBDEFGXAHIJKLMNVOVRVSXIYIXPXASXGWOYIXPTXFABDEFGXBHIJKLMNVTWAW
        BWGWCXDWQXKWSXLXDWPXJBDCXCAEWDVJCXCWRSWDWEWHWIWJWKWLWM $.
    $}

    ${
      $d w B $.  $d x F $.  $d w K $.  $d w P $.  $d w S $.  $d w U $.
      $d w X $.  $d w x A $.
      ipasslem7.a $e |- A e. X $.
      ipasslem7.b $e |- B e. X $.
      ipasslem7.f $e |- F = ( w e. RR |->
                              ( ( ( w S A ) P B ) - ( w x. ( A P B ) ) ) ) $.
      ${
        ipasslem7.j $e |- J = ( topGen ` ran (,) ) $.
        ipasslem7.k $e |- K = ( TopOpen ` CCfld ) $.
        $( Lemma for ~ ipassi .  Show that
           ` ( ( w S A ) P B ) - ( w x. ( A P B ) ) ` is continuous on ` RR ` .
           (Contributed by NM, 23-Aug-2007.)  (Revised by Mario Carneiro,
           6-May-2014.)  (New usage is discouraged.) $)
        ipasslem7 $p |- F e. ( J Cn K ) $=
          ( cr cv co cmul cmin cmpt ccn wcel wtru cioo crn ctg cfv crest tgioo2
          eqtri ctopon cnfldtopon a1i wss ax-resscn cims cmopn cnmptid cxmt cnv
          cc phnvi eqid imsxmet ax-mp mopntopon mp1i cnmptc smcn cnmpt12f dipcn
          ctx dipcl mp3an mulcn subcn cnmpt1res trud eqeltri ) GAUBAUCZBEUDZCDU
          DZWGBCDUDZUEUDZUFUDZUGZIJUHUDZSWMWNUIUJAWLJIJVHUBIUKULUMUNJUBUOUDTJUA
          UPUQJVHURUNUIUJJUAUSUTZUBVHVAUJVBUTUJAWIWKUFJJJJVHWOUJAWHCDJFVCUNZVDU
          NZWQJVHWOUJAWGBEJJWQWQVHWOUJAJVHWOVEZUJABJWQVHKWOWPKVFUNUIZWQKURUNUIU
          JFVGUIZWSFPVIZWPFKLWPVJZVKVLWPWQKWQVJZVMVNZBKUIZUJQUTVOWTEJWQVSUDWQUH
          UDUIUJXAWPEFWQJXBXCNUAVPVNVQUJACJWQVHKWOXDCKUIZUJRUTVOWTDWQWQVSUDJUHU
          DUIUJXAWPDFWQJOXBXCUAVRVNVQUJAWGWJUEJJJJVHWOWRUJAWJJJVHVHWOWOWJVHUIZU
          JWTXEXFXGXAQRBCDFKLOVTWAUTVOUEJJVSUDJUHUDZUIUJJUAWBUTVQUFXHUIUJJUAWCU
          TVQWDWEWF $.
      $}

      $( Lemma for ~ ipassi .  By ~ ipasslem5 , ` F ` is 0 for all ` QQ ` ;
         since it is continuous and ` QQ ` is dense in ` RR ` by ~ qdensere2 ,
         we conclude ` F ` is 0 for all ` RR ` .  (Contributed by NM,
         24-Aug-2007.)  (Revised by Mario Carneiro, 6-May-2014.)
         (New usage is discouraged.) $)
      ipasslem8 $p |- F : RR --> { 0 } $=
        ( wcel cq co vx cc0 cc ccnv csn cima wss cioo crn ctg cfv ccl cr wf 0cn
        wceq cv wral cmul cmin qre oveq1 oveq1d oveq12d ovex fvmpt syl wa phnvi
        qcn cnv nvscl mp3an1 sylan dipcl mp3an13 ipasslem5 subeq0bd mpan2 eqtrd
        rgen wfun cdm wb funmpt2 qssre dmmpti sseqtr4i funconstss mpbi qdensere
        mp2an ccnfld ctopn ct1 ccn w3a cha eqid cnfldhaus haust1 ax-mp uniretop
        ipasslem7 cnfldtopon toponunii dnsconst mpanl12 mp3an ) UBUCRZSGUDUBUEZ
        UFUGZSUHUIUJUKZULUKUKUMUPZUMXKGUNZUOUAUQZGUKZUBUPZUASURZXLXRUASXPSRZXQX
        PBETZCDTZXPBCDTZUSTZUTTZUBXTXPUMRXQYEUPXPVAAXPAUQZBETZCDTZYFYCUSTZUTTZY
        EUMGYFXPUPZYHYBYIYDUTYKYGYACDYFXPBEVBVCYFXPYCUSVBVDQYBYDUTVEVFVGXTBIRZY
        EUBUPOXTYLVHZYBYDYMYAIRZYBUCRZXTXPUCRZYLYNXPVJFVKRZYPYLYNFNVIZXPBEFIJLV
        LVMVNYQYNCIRYOYRPYACDFIJMVOVPVGBCXPDEFHIJKLMNPVQVRVSVTWAGWBSGWCZUGXSXLW
        DAUMYJGQWESUMYSWFAUMYJGYHYIUTVEQWGWHUASUBGWIWLWJWKWMWNUKZWORZGXMYTWPTRX
        JXLXNWQXOYTWRRUUAYTYTWSZWTYTXAXBABCDEFGHXMYTIJKLMNOPQXMWSUUBXDSUBGXMYTU
        MUCXCUCYTYTUUBXEXFXGXHXI $.
    $}

    ${
      $d w A $.  $d w B $.  $d w C $.  $d w P $.  $d w S $.  $d w U $.
      $d w X $.
      ipasslem9.a $e |- A e. X $.
      ipasslem9.b $e |- B e. X $.
      $( Lemma for ~ ipassi .  Conclude from ~ ipasslem8 the inner product
         associative law for real numbers.  (Contributed by NM, 24-Aug-2007.)
         (New usage is discouraged.) $)
      ipasslem9 $p |- ( C e. RR ->
                  ( ( C S A ) P B ) = ( C x. ( A P B ) ) ) $=
        ( vw cr wcel co cc0 cmul cmin wceq cv cmpt cfv oveq1d oveq12d eqid ovex
        oveq1 fvmpt csn wf ipasslem8 fvconst mpan eqtr3d cc wb recn phnvi nvscl
        cnv mp3an13 dipcl syl mp3an mulcl mpan2 subeq0ad mpbid ) CQRZCAESZBDSZC
        ABDSZUASZUBSZTUCZVOVQUCZVMCPQPUDZAESZBDSZWAVPUASZUBSZUEZUFZVRTPCWEVRQWF
        WACUCZWCVOWDVQUBWHWBVNBDWACAEUKUGWACVPUAUKUHWFUIZVOVQUBUJULQTUMWFUNVMWG
        TUCPABDEFWFGHIJKLMNOWIUOQTCWFUPUQURVMCUSRZVSVTUTCVAWJVOVQWJVNHRZVOUSRZF
        VDRZWJAHRZWKFMVBZNCAEFHIKVCVEWMWKBHRZWLWOOVNBDFHILVFVEVGWJVPUSRZVQUSRWM
        WNWPWQWONOABDFHILVFVHCVPVIVJVKVGVL $.
    $}

    ${
      ipasslem10.a $e |- A e. X $.
      ipasslem10.b $e |- B e. X $.
      ipasslem10.6 $e |- N = ( normCV ` U ) $.
      $( Lemma for ~ ipassi .  Show the inner product associative law for the
         imaginary number ` _i ` .  (Contributed by NM, 24-Aug-2007.)
         (New usage is discouraged.) $)
      ipasslem10 $p |- ( ( _i S A ) P B ) = ( _i x. ( A P B ) ) $=
        ( ci co cmul wcel ccj cfv cneg c4 wceq c2 cexp c1 cmin caddc cnv ax-icn
        phnvi cc nvscl mp3an 4ipval2 4cn negicn dipcl mul12i nvgcl nvcli neg1cn
        recni sqcli subcli mulcli addcomi adddii w3a nvsass mp2an oveq1i eqtr3i
        3pm3.2i ixi oveq2i fveq2i negeqi negneg1e1 3eqtri nvsid 3eqtr3i oveq12i
        mulneg1i mulm1i negsubdi2i eqtr2i mulassi eqtr4i mulcomli mulid2i eqtri
        4ne0 mulcani mpbi dipcj cjmuli cr neg1rr cjrebi cji ax-1cn mul2negi ) B
        QADRZCRZUAUBZQUCZBACRZSRZUAUBZXFBCRZQABCRZSRZXGXKUAUDXGSRZUDXKSRZUEXGXK
        UEXPBXFFRZGUBZUFUGRZBUHUCZXFDRZFRZGUBZUFUGRZUIRZQBQXFDRZFRZGUBZUFUGRZBX
        IXFDRZFRZGUBZUFUGRZUIRZSRZUJRZXQEUKTZBHTZXFHTZXPYQUEEMUMZOYRQUNTZAHTZYT
        UUAULNQADEHIKUOUPZBXFCDEFGHIJKPLUQUPXQXIUDXJSRZSRZYQUDXIXJURUSYRYSUUCXJ
        UNTUUAONBACEHILUTUPZVAYQXIBAFRZGUBZUFUGRZBYAADRZFRZGUBZUFUGRZUIRZQXTBXI
        ADRZFRZGUBZUFUGRZUIRZSRZUJRZSRZUUFYQYPYFUJRZUVCYFYPXTYEXSXSXREGHIPUUAYR
        YSYTXRHTUUAOUUDBXFEFHIJVBUPVCVEVFZYDYDYCEGHIPUUAYRYSYBHTZYCHTUUAOYRYAUN
        TZYTUVFUUAVDUUDYAXFDEHIKUOUPBYBEFHIJVBUPVCVEVFVGQYOULYJYNYIYIYHEGHIPUUA
        YRYSYGHTZYHHTUUAOYRUUBYTUVHUUAULUUDQXFDEHIKUOUPBYGEFHIJVBUPVCVEVFYMYMYL
        EGHIPUUAYRYSYKHTZYLHTUUAOYRXIUNTZYTUVIUUAUSUUDXIXFDEHIKUOUPBYKEFHIJVBUP
        VCVEVFVGVHVIUVCXIUUOSRZXIUVASRZUJRUVDXIUUOUVAUSUUJUUNUUIUUIUUHEGHIPUUAY
        RYSUUCUUHHTUUAONBAEFHIJVBUPVCVEVFZUUMUUMUULEGHIPUUAYRYSUUKHTZUULHTUUAOY
        RUVGUUCUVNUUAVDNYAADEHIKUOUPBUUKEFHIJVBUPVCVEVFZVGZQUUTULXTUUSUVEUURUUR
        UUQEGHIPUUAYRYSUUPHTZUUQHTUUAOYRUVJUUCUVQUUAUSNXIADEHIKUOUPBUUPEFHIJVBU
        PVCVEVFVGZVHVJYPUVKYFUVLUJYPQUUNUUJUIRZSRZQYASRZUUOSRZUVKYOUVSQSYJUUNYN
        UUJUIYIUUMUFUGYHUULGYGUUKBFQQSRZADRZYGUUKYRUUBUUBUUCVKUWDYGUEUUAUUBUUBU
        UCULULNVPQQADEHIKVLVMUWCYAADVQVNVOVRVSVNYMUUIUFUGYLUUHGYKABFXIQSRZADRZU
        HADRZYKAUWEUHADUWEUWCUCYAUCUHQQULULWFUWCYAVQVTWAWBZVNYRUVJUUBUUCVKUWFYK
        UEUUAUVJUUBUUCUSULNVPXIQADEHIKVLVMYRUUCUWGAUEUUANADEHIKWCVMWDVRVSVNWEVR
        UVTQYAUUOSRZSRUWBUVSUWIQSUWIUUOUCUVSUUOUVPWGUUJUUNUVMUVOWHWIVRQYAUUOULV
        DUVPWJWKUWAXIUUOSYAQXIVDULQULWGZWLVNWBYFUWEUUTSRZUVLYFUHUUTSRZUWKYFUUTU
        WLYEUUSXTUIYDUURUFUGYCUUQGYBUUPBFYAQSRZADRZYBUUPYRUVGUUBUUCVKUWNYBUEUUA
        UVGUUBUUCVDULNVPYAQADEHIKVLVMUWMXIADUWJVNVOVRVSVNVRUUTUVRWMWKUWEUHUUTSU
        WHVNWKXIQUUTUSULUVRWJWNWEWKWKUUEUVBXISYRYSUUCUUEUVBUEUUAONBACDEFGHIJKPL
        UQUPVRWKWKWKXGXKUDYRYSYTXGUNTUUAOUUDBXFCEHILUTUPXIXJUSUUGVHURWOWPWQVSYR
        YSYTXHXMUEUUAOUUDBXFCEHILWRUPXLXIUAUBZXJUAUBZSRXOXIXJUSUUGWSUWOQUWPXNSU
        WMUAUBYAUAUBZQUAUBZSRZUWOQYAQVDULWSUWMXIUAUWJVSUWSYAXISRUHQSRQUWQYAUWRX
        ISYAWTTUWQYAUEXAYAVDXBWQXCWEUHQXDULXEQULWMWBWDYRYSUUCUWPXNUEUUAONBACEHI
        LWRUPWEWNWD $.
    $}

    ${
      $d x B $.  $d x y C $.  $d x y P $.
      ipasslem11.a $e |- A e. X $.
      ipasslem11.b $e |- B e. X $.
      $( TODO - proof got longer with axcnreOLD -> cnre because
         of mulcl - is it possible to rewrite it to shorten it? $)
      $( Lemma for ~ ipassi .  Show the inner product associative law for all
         complex numbers.  (Contributed by NM, 25-Aug-2007.)
         (New usage is discouraged.) $)
      ipasslem11 $p |- ( C e. CC ->
                  ( ( C S A ) P B ) = ( C x. ( A P B ) ) ) $=
        ( wcel ci cmul co wceq vx vy cc cv caddc cr wrex cnre wa ax-icn sylancr
        recn mulcom adantl oveq2d eqeq2d cnv phnvi nvscl mp3an13 sylancl ipdiri
        syl mulcl mp3an3 syl2an ipasslem9 mp3an w3a nvsass mp3an23 oveq1d dipcl
        mpan mulass cnmcv cfv ipasslem10 oveq2i syl6eqr 3eqtr4d oveqan12d eqtrd
        eqid nvdir adddir oveq1 eqeq12d syl5ibrcom sylbid rexlimivv ) CUCPCUAUD
        ZQUBUDZRSZUESZTZUBUFUGUAUFUGCAESZBDSZCABDSZRSZTZUAUBCUHWPXAUAUBUFUFWLUF
        PZWMUFPZUIZWPCWLWMQRSZUESZTZXAXDWOXFCXDWNXEWLUEXCWNXETZXBXCQUCPZWMUCPZX
        HUJWMULZQWMUMUKUNUOUPXDXAXGXFAESZBDSZXFWSRSZTXDWLAESZXEAESZGSZBDSZWLWSR
        SZXEWSRSZUESZXMXNXDXRXOBDSZXPBDSZUESZYAXBXOHPZXPHPZXRYDTZXCXBWLUCPZYEWL
        ULZFUQPZYHAHPZYEFMURZNWLAEFHIKUSUTVCXCXEUCPZYFXCXJXIYMXKUJWMQVDVAZYJYMY
        KYFYLNXEAEFHIKUSUTVCYEYFBHPZYGOXOXPBDEFGHIJKLMVBVEVFXBXCYBXSYCXTUEABWLD
        EFGHIJKLMNOVGXCWMQAESZESZBDSWMYPBDSZRSZYCXTYPBWMDEFGHIJKLMYJXIYKYPHPYLU
        JNQAEFHIKUSVHOVGXCXPYQBDXCXJXPYQTZXKXJXIYKYTUJNYJXJXIYKVIYTYLWMQAEFHIKV
        JVNVKVCVLXCXTWMQWSRSZRSZYSXCXJXTUUBTZXKXJXIWSUCPZUUCUJYJYKYOUUDYLNOABDF
        HILVMVHZWMQWSVOVKVCYRUUAWMRABDEFGFVPVQZHIJKLMNOUUFWDVRVSVTWAWBWCXDXLXQB
        DXBYHYMXLXQTZXCYIYNYHYMYKUUGNYJYHYMYKVIUUGYLWLXEAEFGHIJKWEVNVEVFVLXBYHY
        MXNYATZXCYIYNYHYMUUDUUHUUEWLXEWSWFVEVFWAXGWRXMWTXNXGWQXLBDCXFAEWGVLCXFW
        SRWGWHWIWJWKVC $.
    $}

    $( Associative law for inner product.  Equation I2 of [Ponnusamy] p. 363.
       (Contributed by NM, 25-Aug-2007.)  (New usage is discouraged.) $)
    ipassi $p |- ( ( A e. CC /\ B e. X /\ C e. X ) ->
                  ( ( A S B ) P C ) = ( A x. ( B P C ) ) ) $=
      ( wcel co cmul wceq wi cif oveq2 cc cn0v cfv oveq1d oveq2d eqeq12d imbi2d
      wa oveq1 eqid elimph ipasslem11 dedth2h com12 3impib ) AUANZBHNZCHNZABEOZ
      CDOZABCDOZPOZQZUQURUHUPVCUQURUPVCRUPAUQBFUBUCZSZEOZCDOZAVECDOZPOZQZRUPVFU
      RCVDSZDOZAVEVKDOZPOZQZRBCVDVDBVEQZVCVJUPVPUTVGVBVIVPUSVFCDBVEAETUDVPVAVHA
      PBVECDUIUEUFUGCVKQZVJVOUPVQVGVLVIVNCVKVFDTVQVHVMAPCVKVEDTUEUFUGVEVKADEFGH
      IJKLMBFHVDIVDUJZMUKCFHVDIVRMUKULUMUNUO $.
  $}

  ${
    dipdir.1 $e |- X = ( BaseSet ` U ) $.
    dipdir.2 $e |- G = ( +v ` U ) $.
    dipdir.7 $e |- P = ( .iOLD ` U ) $.
    $( Distributive law for inner product.  Equation I3 of [Ponnusamy] p. 362.
       (Contributed by NM, 25-Aug-2007.)  (New usage is discouraged.) $)
    dipdir $p |- ( ( U e. CPreHilOLD /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                 ( ( A G B ) P C ) = ( ( A P C ) + ( B P C ) ) ) $=
      ( wcel co caddc wceq cba cfv cpv cdip oveqd eqid ccphlo w3a cmul cop cabs
      wi cif fveq2 syl5eq eleq2d 3anbi123d oveq1d eqtrd oveq12d eqeq12d imbi12d
      cns elimphu ipdiri dedth imp ) EUAKZAGKZBGKZCGKZUBZABFLZCDLZACDLZBCDLZMLZ
      NZVBVFVLUFAVBEMUCUDUEUDZUGZOPZKZBVOKZCVOKZUBZABVNQPZLZCVNRPZLZACWBLZBCWBL
      ZMLZNZUFEVMEVNNZVFVSVLWGWHVCVPVDVQVEVRWHGVOAWHGEOPVOHEVNOUHUIZUJWHGVOBWIU
      JWHGVOCWIUJUKWHVHWCVKWFWHVHWACDLWCWHVGWACDWHFVTABWHFEQPVTIEVNQUHUISULWHDW
      BWACWHDERPWBJEVNRUHUIZSUMWHVIWDVJWEMWHDWBACWJSWHDWBBCWJSUNUOUPABCWBVNUQPZ
      VNVTVOVOTVTTWKTWBTEURUSUTVA $.

    $( Distributive law for inner product.  (Contributed by NM, 20-Nov-2007.)
       (New usage is discouraged.) $)
    dipdi $p |- ( ( U e. CPreHilOLD /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                 ( A P ( B G C ) ) = ( ( A P B ) + ( A P C ) ) ) $=
      ( wcel w3a co caddc wceq id wa ccj cfv dipcj ccphlo 3com13 cnv phnv simpl
      3com12 dipdir sylan2 fveq2d nvgcl 3com23 3adant3r3 syl3anc sylan cc dipcl
      simpr3 3adant3r1 3adant3r2 cjaddd oveq12d eqtrd 3eqtr3d ) AGKZBGKZCGKZLEU
      AKZVFVEVDLZABCFMZDMZABDMZACDMZNMZOVFVEVDVHVHPUBVGVHQZVIADMZRSZBADMZCADMZN
      MZRSZVJVMVNVOVSRVHVGVEVFVDLZVOVSOVEVFVDWAWAPUFBCADEFGHIJUGUHUIVGEUCKZVHVP
      VJOZEUDZWBVHQZWBVIGKZVDWCWBVHUEWBVFVEWFVDWBVEVFWFBCEFGHIUJUKULWBVFVEVDUQV
      IADEGHJTUMUNVGWBVHVTVMOWDWEVTVQRSZVRRSZNMVMWEVQVRWBVEVDVQUOKVFBADEGHJUPUR
      WBVFVDVRUOKVECADEGHJUPUSUTWEWGVKWHVLNWBVEVDWGVKOVFBADEGHJTURWBVFVDWHVLOVE
      CADEGHJTUSVAVBUNVCUH $.
  $}

  ${
    ip2dii.1 $e |- X = ( BaseSet ` U ) $.
    ip2dii.2 $e |- G = ( +v ` U ) $.
    ip2dii.7 $e |- P = ( .iOLD ` U ) $.
    ip2dii.u $e |- U e. CPreHilOLD $.
    ip2dii.a $e |- A e. X $.
    ip2dii.b $e |- B e. X $.
    ip2dii.c $e |- C e. X $.
    ip2dii.d $e |- D e. X $.
    $( Inner product of two sums.  (Contributed by NM, 17-Apr-2008.)
       (New usage is discouraged.) $)
    ip2dii $p |- ( ( A G B ) P ( C G D ) )
                = ( ( ( A P C ) + ( B P D ) ) + ( ( A P D ) + ( B P C ) ) ) $=
      ( co caddc wcel mp3an ccphlo wceq 3pm3.2i dipdi mp2an oveq12i phnvi nvgcl
      w3a cnv dipdir cc dipcl add42i 3eqtr4i ) ACDGQZEQZBUPEQZRQZACEQZADEQZRQZB
      CEQZBDEQZRQZRQABGQUPEQZUTVDRQVAVCRQRQUQVBURVERFUASZAHSZCHSZDHSZUIUQVBUBLV
      HVIVJMOPUCACDEFGHIJKUDUEVGBHSZVIVJUIURVEUBLVKVIVJNOPUCBCDEFGHIJKUDUEUFVGV
      HVKUPHSZUIVFUSUBLVHVKVLMNFUJSZVIVJVLFLUGZOPCDFGHIJUHTUCABUPEFGHIJKUKUEUTV
      DVAVCVMVHVIUTULSVNMOACEFHIKUMTVMVKVJVDULSVNNPBDEFHIKUMTVMVHVJVAULSVNMPADE
      FHIKUMTVMVKVIVCULSVNNOBCEFHIKUMTUNUO $.
  $}

  ${
    ipass.1 $e |- X = ( BaseSet ` U ) $.
    ipass.4 $e |- S = ( .sOLD ` U ) $.
    ipass.7 $e |- P = ( .iOLD ` U ) $.
    $( Associative law for inner product.  Equation I2 of [Ponnusamy] p. 363.
       (Contributed by NM, 25-Aug-2007.)  (New usage is discouraged.) $)
    dipass $p |- ( ( U e. CPreHilOLD /\ ( A e. CC /\ B e. X /\ C e. X ) ) ->
                 ( ( A S B ) P C ) = ( A x. ( B P C ) ) ) $=
      ( wcel co cmul wceq cba cfv cns cdip fveq2 eqid ccphlo cc w3a wi cop cabs
      caddc cif syl5eq eleq2d oveqd oveq1d eqtrd oveq2d eqeq12d imbi12d elimphu
      3anbi23d cpv ipassi dedth imp ) FUAKZAUBKZBGKZCGKZUCZABELZCDLZABCDLZMLZNZ
      VCVGVLUDVDBVCFUGMUEUFUEZUHZOPZKZCVOKZUCZABVNQPZLZCVNRPZLZABCWALZMLZNZUDFV
      MFVNNZVGVRVLWEWFVEVPVFVQVDWFGVOBWFGFOPVOHFVNOSUIZUJWFGVOCWGUJURWFVIWBVKWD
      WFVIVTCDLWBWFVHVTCDWFEVSABWFEFQPVSIFVNQSUIUKULWFDWAVTCWFDFRPWAJFVNRSUIZUK
      UMWFVJWCAMWFDWABCWHUKUNUOUPABCWAVSVNVNUSPZVOVOTWITVSTWATFUQUTVAVB $.

    $( "Associative" law for second argument of inner product (compare
       ~ dipass ).  (Contributed by NM, 22-Nov-2007.)
       (New usage is discouraged.) $)
    dipassr $p |- ( ( U e. CPreHilOLD /\ ( A e. X /\ B e. CC /\ C e. X ) ) ->
                 ( A P ( B S C ) ) = ( ( * ` B ) x. ( A P C ) ) ) $=
      ( wcel cc w3a wa co ccj cfv cmul wceq dipcj ccphlo 3anrot dipass cnv phnv
      sylan2b fveq2d simpl nvscl 3adant3r1 simpr1 syl3anc sylan dipcl 3adant3r2
      simpr2 3com23 cjmuld oveq2d eqtrd 3eqtr3d ) FUAKZAGKZBLKZCGKZMZNZBCEOZADO
      ZPQZBCADOZROZPQZAVHDOZBPQZACDOZROZVGVIVLPVFVBVDVEVCMVIVLSVCVDVEUBBCADEFGH
      IJUCUFUGVBFUDKZVFVJVNSZFUEZVRVFNZVRVHGKZVCVSVRVFUHVRVDVEWBVCBCEFGHIUIUJVR
      VCVDVEUKVHADFGHJTULUMVBVRVFVMVQSVTWAVMVOVKPQZROVQWABVKVRVCVDVEUPVRVCVEVKL
      KZVDVRVEVCWDCADFGHJUNUQUOURWAWCVPVORVRVCVEWCVPSZVDVRVEVCWECADFGHJTUQUOUSU
      TUMVA $.

    $( "Associative" law for inner product.  Conjugate version of ~ dipassr .
       (Contributed by NM, 23-Nov-2007.)  (New usage is discouraged.) $)
    dipassr2 $p |- ( ( U e. CPreHilOLD /\ ( A e. X /\ B e. CC /\ C e. X ) ) ->
                 ( A P ( ( * ` B ) S C ) ) = ( B x. ( A P C ) ) ) $=
      ( ccphlo wcel cc w3a wa ccj cfv co cmul wceq cjcl dipassr syl3anr2 adantl
      cjcj 3ad2ant2 oveq1d eqtrd ) FKLZAGLZBMLZCGLZNZOZABPQZCERDRZUOPQZACDRZSRZ
      BURSRUKUJUIUOMLULUPUSTBUAAUOCDEFGHIJUBUCUNUQBURSUMUQBTZUIUKUJUTULBUEUFUDU
      GUH $.
  $}

  ${
    ipsubdir.1 $e |- X = ( BaseSet ` U ) $.
    ipsubdir.3 $e |- M = ( -v ` U ) $.
    ipsubdir.7 $e |- P = ( .iOLD ` U ) $.
    $( Distributive law for inner product subtraction.  (Contributed by NM,
       20-Nov-2007.)  (New usage is discouraged.) $)
    dipsubdir $p |- ( ( U e. CPreHilOLD /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                 ( ( A M B ) P C ) = ( ( A P C ) - ( B P C ) ) ) $=
      ( wcel w3a wa cneg cfv co caddc wceq cc sylan ccphlo cns cpv cmin idd cnv
      c1 phnv neg1cn nvscl mp3an2 ex 3anim123d imp dipdir syldan nvmval syl3an1
      eqid 3adant3r3 oveq1d cmul dipass mp3anr1 dipcl 3expb mulm1d eqtrd oveq2d
      3adantr1 3adant3r2 3adant3r1 negsubd eqtr2d 3eqtr4d ) EUAKZAGKZBGKZCGKZLZ
      MZAUGNZBEUBOZPZEUCOZPZCDPZACDPZWDCDPZQPZABFPZCDPWHBCDPZUDPZVPVTVQWDGKZVSL
      ZWGWJRVPVTWOVPVQVQVRWNVSVSVPVQUEVPVRWNVPEUFKZVRWNEUHZWPWBSKZVRWNUIWBBWCEG
      HWCUSZUJUKTULVPVSUEUMUNAWDCDEWEGHWEUSZJUOUPWAWKWFCDVPVQVRWKWFRZVSVPWPVQVR
      XAWQABWCEWEFGHWTWSIUQURUTVAWAWJWHWLNZQPZWMWAWIXBWHQVPVRVSWIXBRVQVPVRVSMZM
      ZWIWBWLVBPZXBVPWRVRVSWIXFRUIWBBCDWCEGHWSJVCVDXEWLVPWPXDWLSKZWQWPVRVSXGBCD
      EGHJVEZVFTVGVHVJVIVPWPVTXCWMRWQWPVTMWHWLWPVQVSWHSKVRACDEGHJVEVKWPVRVSXGVQ
      XHVLVMTVNVO $.

    $( Distributive law for inner product subtraction.  (Contributed by NM,
       20-Nov-2007.)  (New usage is discouraged.) $)
    dipsubdi $p |- ( ( U e. CPreHilOLD /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                 ( A P ( B M C ) ) = ( ( A P B ) - ( A P C ) ) ) $=
      ( wcel w3a co cmin wceq id wa ccj cfv dipcj ccphlo 3com13 3com12 cnv phnv
      dipsubdir sylan2 fveq2d simpl nvmcl 3com23 3adant3r3 simpr3 syl3anc sylan
      cc dipcl 3adant3r1 3adant3r2 cjsub syl2anc oveq12d eqtrd 3eqtr3d ) AGKZBG
      KZCGKZLEUAKZVGVFVELZABCFMZDMZABDMZACDMZNMZOVGVFVEVIVIPUBVHVIQZVJADMZRSZBA
      DMZCADMZNMZRSZVKVNVOVPVTRVIVHVFVGVELZVPVTOVFVGVEWBWBPUCBCADEFGHIJUFUGUHVH
      EUDKZVIVQVKOZEUEZWCVIQZWCVJGKZVEWDWCVIUIWCVGVFWGVEWCVFVGWGBCEFGHIUJUKULWC
      VGVFVEUMVJADEGHJTUNUOVHWCVIWAVNOWEWFWAVRRSZVSRSZNMZVNWFVRUPKZVSUPKZWAWJOW
      CVFVEWKVGBADEGHJUQURWCVGVEWLVFCADEGHJUQUSVRVSUTVAWFWHVLWIVMNWCVFVEWHVLOVG
      BADEGHJTURWCVGVEWIVMOVFCADEGHJTUSVBVCUOVDUG $.
  $}

  ${
    pyth.1 $e |- X = ( BaseSet ` U ) $.
    pyth.2 $e |- G = ( +v ` U ) $.
    pyth.6 $e |- N = ( normCV ` U ) $.
    pyth.7 $e |- P = ( .iOLD ` U ) $.
    pythi.u $e |- U e. CPreHilOLD $.
    pythi.a $e |- A e. X $.
    pythi.b $e |- B e. X $.
    $( The Pythagorean theorem for an arbitrary complex inner product
       (pre-Hilbert) space ` U ` .  The square of the norm of the sum of two
       orthogonal vectors (i.e. whose inner product is 0) is the sum of the
       squares of their norms.  Problem 2 in [Kreyszig] p. 135.  This is
       Metamath 100 proof #4.  (Contributed by NM, 17-Apr-2008.)
       (New usage is discouraged.) $)
    pythi $p |- ( ( A P B ) = 0 -> ( ( N ` ( A G B ) ) ^ 2 )
        = ( ( ( N ` A ) ^ 2 ) + ( ( N ` B ) ^ 2 ) ) ) $=
      ( co cc0 wceq caddc wcel mp3an cfv c2 cexp ip2dii id cnv phnvi diporthcom
      wb biimpi oveq12d 00id syl6eq oveq2d cc dipcl addcli addid1i syl5eq nvgcl
      ipidsq mp2an oveq12i 3eqtr3g ) ABCOZPQZABEOZVGCOZAACOZBBCOZROZVGFUAUBUCOZ
      AFUAUBUCOZBFUAUBUCOZROVFVHVKVEBACOZROZROZVKABABCDEGHIKLMNMNUDVFVQVKPROVKV
      FVPPVKRVFVPPPROPVFVEPVOPRVFUEVFVOPQZDUFSZAGSZBGSZVFVRUIDLUGZMNABCDGHKUHTU
      JUKULUMUNVKVIVJVSVTVTVIUOSWBMMAACDGHKUPTVSWAWAVJUOSWBNNBBCDGHKUPTUQURUMUS
      VSVGGSZVHVLQWBVSVTWAWCWBMNABDEGHIUTTVGCDFGHJKVAVBVIVMVJVNRVSVTVIVMQWBMACD
      FGHJKVAVBVSWAVJVNQWBNBCDFGHJKVAVBVCVD $.
  $}

  ${
    siii.1 $e |- X = ( BaseSet ` U ) $.
    siii.6 $e |- N = ( normCV ` U ) $.
    siii.7 $e |- P = ( .iOLD ` U ) $.
    siii.9 $e |- U e. CPreHilOLD $.
    siii.a $e |- A e. X $.
    siii.b $e |- B e. X $.
    ${
      sii1.3 $e |- M = ( -v ` U ) $.
      sii1.4 $e |- S = ( .sOLD ` U ) $.
      sii1.c $e |- C e. CC $.
      sii1.r $e |- ( C x. ( A P B ) ) e. RR $.
      sii1.z $e |- 0 <_ ( C x. ( A P B ) ) $.
      $( Lemma for ~ sii .  (Contributed by NM, 23-Nov-2007.)
         (New usage is discouraged.) $)
      siilem1 $p |- ( ( B P A ) = ( C x. ( ( N ` B ) ^ 2 ) ) ->
                ( sqrt ` ( ( A P B ) x. ( C x. ( ( N ` B ) ^ 2 ) ) ) ) <_
                       ( ( N ` A ) x. ( N ` B ) ) ) $=
        ( co cfv c2 cexp cmul wceq csqrt cle wbr cc0 cmin ccj phnvi cnv wcel cc
        cjcli nvscl mp3an nvmcl nvcli sqge0i ccphlo w3a 3pm3.2i dipsubdi ipidsq
        mp2an dipass oveq2i eqtri recni sqcli dipcl mulcli sub4 mp4an dipsubdir
        oveq12i oveq1i subdii 3eqtr4i 3eqtr3i oveq2 mul01i syl6eq sylbir oveq2d
        dipassr2 breqtri subeq0i resqcli subcli subid1i syl5breq subge0i pm3.2i
        sylib cr wa lemul1a mpan syl syl6breqr mulge0i remulcli sqrtlei mulcomi
        sqmuli wb mulassi fveq2i nvge0 sqrtsqi ax-mp 3brtr3g ) BADUAZCBHUBZUCUD
        UAZUEUAZUFZCABDUAZUEUAZXSUEUAZUGUBZAHUBZXRUEUAZUCUDUAZUGUBZYBXTUEUAZUGU
        BYGUHYAYDYHUHUIZYEYIUHUIZYAYDYFUCUDUAZXSUEUAZYHUHYAYCYMUHUIZYDYNUHUIZYA
        UJYMYCUKUAZUHUIYOYAUJYQCULUBZXQXTUKUAZUEUAZUKUAZYQUHUJAYRBEUAZGUAZHUBZU
        CUDUAZUUAUHUUDUUCFHIJKFMUMZFUNUOZAIUOZUUBIUOZUUCIUOZUUFNUUGYRUPUOZBIUOZ
        UUIUUFCRUQZOYRBEFIJQURUSZAUUBFGIJPUTUSZVAVBUUCUUCDUAZUUCADUAZUUCUUBDUAZ
        UKUAZUUEUUAFVCUOZUUJUUHUUIVDUUPUUSUFMUUJUUHUUIUUONUUNVEUUCAUUBDFGIJPLVF
        VHUUGUUJUUPUUEUFUUFUUOUUCDFHIJKLVGVHYMYRXQUEUAZUKUAZYCUUBUUBDUAZUKUAZUK
        UAZYQUVAYRXTUEUAZUKUAZUKUAZUUSUUAUVEUVBYCUVFUKUAZUKUAZUVHUVDUVIUVBUKUVC
        UVFYCUKUVCYRBUUBDUAZUEUAZUVFUUTUUKUULUUIVDUVCUVLUFMUUKUULUUIUUMOUUNVEYR
        BUUBDEFIJQLVIVHUVKXTYRUEUVKCBBDUAZUEUAZXTUUTUULCUPUOZUULVDUVKUVNUFMUULU
        VOUULOROVEBCBDEFIJQLWIVHUVMXSCUEUUGUULUVMXSUFUUFOBDFHIJKLVGVHVJVKVJVKVJ
        VJYMUPUOUVAUPUOYCUPUOUVFUPUOUVJUVHUFYFYFAFHIJKUUFNVAZVLZVMYRXQUUMUUGUUL
        UUHXQUPUOUUFONBADFIJLVNUSZVOYCSVLZYRXTUUMCXSRXRXRBFHIJKUUFOVAZVLZVMVOZV
        OYMUVAYCUVFVPVQVKUUQUVBUURUVDUKUUQAADUAZUUBADUAZUKUAZUVBUUTUUHUUIUUHVDU
        UQUWEUFMUUHUUIUUHNUUNNVEAUUBADFGIJPLVRVHUWCYMUWDUVAUKUUGUUHUWCYMUFUUFNA
        DFHIJKLVGVHUUTUUKUULUUHVDUWDUVAUFMUUKUULUUHUUMONVEYRBADEFIJQLVIVHVSVKUU
        RAUUBDUAZUVCUKUAZUVDUUTUUHUUIUUIVDUURUWGUFMUUHUUIUUINUUNUUNVEAUUBUUBDFG
        IJPLVRVHUWFYCUVCUKUUTUUHUVOUULVDUWFYCUFMUUHUVOUULNROVEACBDEFIJQLWIVHVTV
        KVSYTUVGYQUKYRXQXTUUMUVRUWBWAVJWBWCWJYAUUAYQUJUKUAYQYAYTUJYQUKYAYSUJUFZ
        YTUJUFXQXTUVRUWBWKUWHYTYRUJUEUAUJYSUJYRUEWDYRUUMWEWFWGWHYQYMYCYMYFUVPWL
        ZVLUVSWMWNWFWOYMYCUWISWPWRYCWSUOZYMWSUOZXSWSUOZUJXSUHUIZWTZVDYOYPUWJUWK
        UWNSUWIUWLUWMXRUVTWLZXRUVTVBZWQVEYCYMXSXAXBXCYFXRUVQUWAXIXDUJYDUHUIZUJY
        HUHUIYKYLXJUJYCUHUIUWMUWQTUWPYCXSSUWOXEVHYGYFXRUVPUVTXFZVBYDYHYCXSSUWOX
        FYGUWRWLXGVHWRYDYJUGYDYBCUEUAZXSUEUAYJYCUWSXSUECYBRUUGUUHUULYBUPUOUUFNO
        ABDFIJLVNUSZXHVTYBCXSUWTRXSUWOVLXKVKXLUJYGUHUIZYIYGUFUJYFUHUIZUJXRUHUIZ
        UXAUUGUUHUXBUUFNAFHIJKXMVHUUGUULUXCUUFOBFHIJKXMVHYFXRUVPUVTXEVHYGUWRXNX
        OXP $.
    $}

    ${
      siii2.3 $e |- M = ( -v ` U ) $.
      siii2.4 $e |- S = ( .sOLD ` U ) $.
      $( Lemma for ~ sii .  (Contributed by NM, 24-Nov-2007.)
         (New usage is discouraged.) $)
      siilem2 $p |- ( ( C e. CC /\ ( C x. ( A P B ) ) e. RR /\
                           0 <_ ( C x. ( A P B ) ) ) ->
                ( ( B P A ) = ( C x. ( ( N ` B ) ^ 2 ) ) ->
                  ( sqrt ` ( ( A P B ) x. ( C x. ( ( N ` B ) ^ 2 ) ) ) ) <_
                         ( ( N ` A ) x. ( N ` B ) ) ) ) $=
        ( co cmul cc0 cc wcel cr cle wbr w3a c2 cexp wceq csqrt wi oveq1 eqeq2d
        cfv cif oveq2d fveq2d breq1d imbi12d eleq1 eleq1d 3anbi123d phnvi dipcl
        breq2d 0cn cnv mp3an mul02i 0re eqeltri breqtrri 3pm3.2i elimhyp simp1i
        0le0 simp2i simp3i siilem1 dedth ) CUAUBZCABDRZSRZUCUBZTWCUDUEZUFZBADRZ
        CBHUNZUGUHRZSRZUIZWBWJSRZUJUNZAHUNWHSRZUDUEZUKWGWFCTUOZWISRZUIZWBWQSRZU
        JUNZWNUDUEZUKCTCWPUIZWKWRWOXAXBWJWQWGCWPWISULZUMXBWMWTWNUDXBWLWSUJXBWJW
        QWBSXCUPUQURUSABWPDEFGHIJKLMNOPQWPUAUBZWPWBSRZUCUBZTXEUDUEZWFXDXFXGUFTU
        AUBZTWBSRZUCUBZTXIUDUEZUFCTXBWAXDWDXFWEXGCWPUAUTXBWCXEUCCWPWBSULZVAXBWC
        XETUDXLVEVBTWPUIZXHXDXJXFXKXGTWPUAUTXMXIXEUCTWPWBSULZVAXMXIXETUDXNVEVBX
        HXJXKVFXITUCWBFVGUBAIUBBIUBWBUAUBFMVCNOABDFIJLVDVHVIZVJVKTTXIUDVPXOVLVM
        VNZVOXDXFXGXPVQXDXFXGXPVRVSVT $.
    $}

    $( Inference from ~ sii .  (Contributed by NM, 20-Nov-2007.)
       (New usage is discouraged.) $)
    siii $p |- ( abs ` ( A P B ) ) <_ ( ( N ` A ) x. ( N ` B ) ) $=
      ( co cfv cmul cle wbr wceq cc0 wcel cabs cn0v oveq2 cnv phnvi dip0r mp2an
      eqid syl6eq abs00bd nvge0 nvcli mulge0i syl6eqbr c2 cexp cdiv csqrt recni
      wne ccj sqeq0i wb bitri necon3bii cc dipcl mp3an resqcli divcan1zi sylbir
      nvz dipcj syl6eqr oveq2d fveq2d absval ax-mp syl6reqr eqcomd cr wi ipipcj
      divclzi mulcomli oveq1i wa mp3an12 mpan syl5reqr abscli redivclzi eqeltrd
      div23 clt sqgt0i sqge0i mpanl12 sylancr breqtrrd cns cnsb siilem2 syl3anc
      divge0 mpd eqbrtrd pm2.61ine ) ABCMZUANZAENZBENZOMZPQBDUBNZBXNRZXJSXMPXOX
      IXOXIAXNCMZSBXNACUCDUDTZAFTZXPSRDJUEZKACDFXNGXNUHZIUFUGUIUJSXKPQZSXLPQZSX
      MPQXQXRYAXSKADEFGHUKUGXQBFTZYBXSLBDEFGHUKUGXKXLADEFGHXSKULBDEFGHXSLULZUMU
      GUNBXNUTZXJXIBACMZXLUOUPMZUQMZYGOMZOMZURNZXMPYEYKXIXIVANZOMZURNZXJYEYJYMU
      RYEYIYLXIOYEYIYFYLYEYGSUTZYIYFRYGSBXNYGSRXLSRZXOXLXLYDUSVBXQYCYPXOVCXSLBD
      EFXNGXTHVLUGZVDVEZYFYGXQYCXRYFVFTZXSLKBACDFGIVGVHZYGXLYDVIZUSZVJVKZXQXRYC
      YLYFRXSKLABCDFGIVMVHVNVOVPXIVFTZXJYNRXQXRYCUUDXSKLABCDFGIVGVHZXIVQVRVSYEY
      FYIRZYKXMPQZYEYIYFUUCVTYEYHVFTZYHXIOMZWATSUUIPQUUFUUGWBYEYOUUHYRYFYGYTUUB
      WDVKYEUUIXJUOUPMZYGUQMZWAYEUUKYFXIOMZYGUQMZUUIUULUUJYGUQXIYFUUJUUEYTXQXRY
      CXIYFOMUUJRXSKLABCDFGIWCVHWEWFYEYOUUMUUIRZYRYGVFTZYOUUNUUBYSUUDUUOYOWGUUN
      YTUUEYFXIYGWNWHWIVKWJZYEYOUUKWATYRUUJYGXJXIUUEWKZVIZUUAWLVKWMYESUUKUUIPYE
      YGWATZSYGWOQZSUUKPQZUUAYEXLSUTUUTXLSBXNYQVEXLYDWPVKUUJWATSUUJPQUUSUUTWGUV
      AUURXJUUQWQUUJYGXEWRWSUUPWTABYHCDXANZDDXBNZEFGHIJKLUVCUHUVBUHXCXDXFXGXH
      $.
  $}

  ${
    sii.1 $e |- X = ( BaseSet ` U ) $.
    sii.6 $e |- N = ( normCV ` U ) $.
    sii.7 $e |- P = ( .iOLD ` U ) $.
    sii.9 $e |- U e. CPreHilOLD $.
    $( Schwarz inequality.  Part of Lemma 3-2.1(a) of [Kreyszig] p. 137.  This
       is also called the Cauchy-Schwarz inequality by some authors and
       Bunjakovaskij-Cauchy-Schwarz inequality by others.  See also theorems
       ~ bcseqi , ~ bcsiALT , ~ bcsiHIL , ~ csbren .  This is Metamath 100
       proof #78.  (Contributed by NM, 12-Jan-2008.)
       (New usage is discouraged.) $)
    sii $p |- ( ( A e. X /\ B e. X ) ->
               ( abs ` ( A P B ) ) <_ ( ( N ` A ) x. ( N ` B ) ) ) $=
      ( wcel co cabs cfv cmul cle wbr cif wceq fveq2d cn0v oveq1 oveq1d breq12d
      fveq2 oveq2 oveq2d eqid elimph siii dedth2h ) AFKZBFKZABCLZMNZAENZBENZOLZ
      PQULADUANZRZBCLZMNZUTENZUQOLZPQUTUMBUSRZCLZMNZVCVEENZOLZPQABUSUSAUTSZUOVB
      URVDPVJUNVAMAUTBCUBTVJUPVCUQOAUTEUEUCUDBVESZVBVGVDVIPVKVAVFMBVEUTCUFTVKUQ
      VHVCOBVEEUEUGUDUTVECDEFGHIJADFUSGUSUHZJUIBDFUSGVLJUIUJUK $.
  $}

  ${
    $d x y H $.  $d x y U $.  $d x y W $.
    sspph.h $e |- H = ( SubSp ` U ) $.
    $( A subspace of an inner product space is an inner product space.
       (Contributed by NM, 1-Feb-2008.)  (New usage is discouraged.) $)
    sspph $p |- ( ( U e. CPreHilOLD /\ W e. H ) -> W e. CPreHilOLD ) $=
      ( vx vy wcel wa cfv co c2 cexp caddc cmul wceq sylan sspnval 3expa oveq1d
      eqid ccphlo cnv cv cpv cnmcv cnsb cba wral phnv sspnv sspba sseld anim12d
      wi phpar2 3expb adantlr syldan nvgcl sspgval fveq2d eqtrd sspmval oveq12d
      imp nvmcl sylanl1 adantrr adantrl oveq2d 3eqtr4d ralrimivva isph sylanbrc
      ) AUAGZCBGZHZCUBGZEUCZFUCZCUDIZJZCUEIZIZKLJZVSVTCUFIZJZWCIZKLJZMJZKVSWCIZ
      KLJZVTWCIZKLJZMJZNJZOZFCUGIZUHEWRUHCUAGVOAUBGZVPVRAUIZABCDUJZPVQWQEFWRWRV
      QVSWRGZVTWRGZHZHZVSVTAUDIZJZAUEIZIZKLJZVSVTAUFIZJZXHIZKLJZMJZKVSXHIZKLJZV
      TXHIZKLJZMJZNJZWJWPVQXDVSAUGIZGZVTYBGZHZXOYAOZVQXDYEVOWSVPXDYEUNWTWSVPHZX
      BYCXCYDYGWRYBVSABCYBWRYBTZWRTZDUKZULYGWRYBVTYJULUMPVEVOYEYFVPVOYCYDYFVSVT
      AXFXKXHYBYHXFTZXKTZXHTZUOUPUQURVOWSVPXDWJXOOWTYGXDHZWEXJWIXNMYNWEWBXHIZKL
      JXJYNWDYOKLYGXDWBWRGZWDYOOZYGVRXDYPXAVRXBXCYPVSVTCWAWRYIWATZUSUPPWSVPYPYQ
      WBABWCXHCWRYIYMWCTZDQRURSYNYOXIKLYNWBXGXHVSVTAWAXFBCWRYIYKYRDUTVASVBYNWHX
      MKLYNWHWGXHIZXMYGXDWGWRGZWHYTOZYGVRXDUUAXAVRXBXCUUAVSVTCWFWRYIWFTZVFUPPWS
      VPUUAUUBWGABWCXHCWRYIYMYSDQRURYNWGXLXHVSVTABWFXKCWRYIYLUUCDVCVAVBSVDVGXEW
      OXTKNVOWSVPXDWOXTOWTYNWLXQWNXSMYNWKXPKLYGXBWKXPOZXCWSVPXBUUDVSABWCXHCWRYI
      YMYSDQRVHSYNWMXRKLYGXCWMXROZXBWSVPXCUUEVTABWCXHCWRYIYMYSDQRVISVDVGVJVKVLE
      FCWAWFWCWRYIYRUUCYSVMVN $.
  $}

  ${
    $d w x y z A $.  $d w y z C $.  $d w y z F $.  $d w x y z U $.
    $d w x y z X $.  $d x P $.  $d z B $.
    ipblnfi.1 $e |- X = ( BaseSet ` U ) $.
    ipblnfi.7 $e |- P = ( .iOLD ` U ) $.
    ipblnfi.9 $e |- U e. CPreHilOLD $.
    ipblnfi.c $e |- C = <. <. + , x. >. , abs >. $.
    ipblnfi.l $e |- B = ( U BLnOp C ) $.
    ipblnfi.f $e |- F = ( x e. X |-> ( x P A ) ) $.
    $( A function ` F ` generated by varying the first argument of an inner
       product (with its second argument a fixed vector ` A ` ) is a bounded
       linear functional, i.e. a bounded linear operator from the vector space
       to ` CC ` .  (Contributed by NM, 12-Jan-2008.)  (Revised by Mario
       Carneiro, 19-Nov-2013.)  (New usage is discouraged.) $)
    ipblnfi $p |- ( A e. X -> F e. B ) $=
      ( vz wcel co cfv cc wceq vy vw clno cnmcv cr cv cabs cmul cle wbr wral wf
      cns cpv caddc cnv phnvi dipcl mp3an1 ancoms fmptd wa eqid nvscl ad2ant2lr
      simprr simpll ccphlo w3a dipdir syl3anc simplr simprl ipassi oveq1d eqtrd
      mpan adantll nvgcl sylan anasss oveq1 ovex fvmpt ad2antrl oveq2d ad2antll
      syl oveq12d 3eqtr4d ralrimivva ralrimiva wb cnnv cnnvba cnnvg cnnvs islno
      mp2an sylanbrc sii adantl fveq2d recnd mulcom syl2an 3brtr4d cnnvnm blo3i
      nvcl ) BHPZGFDUCQZPZBFUDRZRZUEPZOUFZGRZUGRZXOXQXNRZUHQZUIUJZOHUKGCPXKHSGU
      LZUAUFZXQFUMRZQZUBUFZFUNRZQZGRZYDXRUHQZYGGRZUOQZTZUBHUKOHUKZUASUKZXMXKAHA
      UFZBEQZSGYQHPZXKYRSPZFUPPZYSXKYTFKUQZYQBEFHIJURUSUTNVAXKYOUASXKYDSPZVBZYN
      OUBHHUUDXQHPZYGHPZVBZVBZYIBEQZYDXQBEQZUHQZYGBEQZUOQZYJYMUUHUUIYFBEQZUULUO
      QZUUMUUHYFHPZUUFXKUUIUUOTZUUCUUEUUPXKUUFUUAUUCUUEUUPUUBYDXQYEFHIYEVCZVDUS
      ZVEUUDUUEUUFVFXKUUCUUGVGZFVHPUUPUUFXKVIUUQKYFYGBEFYHHIYHVCZJVJVQVKUUHUUNU
      UKUULUOUUHUUCUUEXKUUNUUKTXKUUCUUGVLUUDUUEUUFVMUUTYDXQBEYEFYHHIUVAUURJKVNV
      KVOVPUUHYIHPZYJUUITUUDUUEUUFUVBUUDUUEVBUUPUUFUVBUUCUUEUUPXKUUSVRUUAUUPUUF
      UVBUUBYFYGFYHHIUVAVSUSVTWAAYIYRUUIHGYQYIBEWBNYIBEWCWDWHUUHYKUUKYLUULUOUUH
      XRUUJYDUHUUEXRUUJTZUUDUUFAXQYRUUJHGYQXQBEWBNXQBEWCWDZWEWFUUFYLUULTUUDUUEA
      YGYRUULHGYQYGBEWBNYGBEWCWDWGWIWJWKWLUUADUPPXMYCYPVBWMUUBDLWNZUAOUBYEUHGFY
      HUOXLDHSIDLWOUVADLWPUURDLWQXLVCZWRWSWTUUAXKXPUUBBFXNHIXNVCZXJVQZXKYBOHXKU
      UEVBZUUJUGRZXTXOUHQZXSYAUIUUEXKUVJUVKUIUJXQBEFXNHIUVGJKXAUTUVIXRUUJUGUUEU
      VCXKUVDXBXCXKXOSPXTSPYAUVKTUUEXKXOUVHXDUUEXTUUAUUEXTUEPUUBXQFXNHIUVGXJVQX
      DXOXTXEXFXGWLOXOCGFXLXNUGDHIUVGDLXHUVFMUUBUVEXIVK $.
  $}

  ${
    $d x A $.  $d x B $.  $d s t x P $.  $d s t Q $.  $d x y S $.
    $d s t x y T $.  $d x U $.  $d s t x y X $.  $d s t x y Y $.
    ip2eqi.1 $e |- X = ( BaseSet ` U ) $.
    ip2eqi.7 $e |- P = ( .iOLD ` U ) $.
    ip2eqi.u $e |- U e. CPreHilOLD $.
    $( Two vectors are equal iff their inner products with all other vectors
       are equal.  (Contributed by NM, 24-Jan-2008.)
       (New usage is discouraged.) $)
    ip2eqi $p |- ( ( A e. X /\ B e. X ) -> ( A. x e. X ( x P A
                                               ) = ( x P B ) <-> A = B ) ) $=
      ( wcel co wceq cfv eqid mp3an1 oveq1 syl cc0 mpan wb wa cv wral cnv phnvi
      cnsb wi nvmcl eqeq12d rspcv cmin cn0v simpl simpr ccphlo dipsubdi syl3anc
      w3a eqeq1d bitr3d cc dipcl syl2anc sylancom subeq0ad nvmeq0 3bitr3d oveq2
      ipz sylibd ralrimivw impbid1 ) BFJZCFJZUAZAUBZBDKZVPCDKZLZAFUCZBCLZVOVTBC
      EUFMZKZBDKZWCCDKZLZWAVOWCFJZVTWFUGEUDJZVMVNWGEIUEZBCEWBFGWBNZUHOZVSWFAWCF
      VPWCLVQWDVRWEVPWCBDPVPWCCDPUIUJQVOWDWEUKKZRLZWCEULMZLZWFWAVOWCWCDKZRLZWMW
      OVOWPWLRVOWGVMVNWPWLLZWKVMVNUMZVMVNUNEUOJWGVMVNURWRIWCBCDEWBFGWJHUPSUQUSV
      OWGWQWOTZWKWHWGWTWIWCDEFWNGWNNZHVISQUTVOWDWEVOWGVMWDVAJZWKWSWHWGVMXBWIWCB
      DEFGHVBOVCVMVNWGWEVAJZWKWHWGVNXCWIWCCDEFGHVBOVDVEWHVMVNWOWATWIBCEWBFWNGWJ
      XAVFOVGVJWAVSAFBCVPDVHVKVL $.

    $( A condition implying that two operators are equal.  (Contributed by NM,
       25-Jan-2008.)  (New usage is discouraged.) $)
    phoeqi $p |- ( ( S : Y --> X /\ T : Y --> X ) -> ( A. x e. X A. y e.
      Y ( x P ( S ` y ) ) = ( x P ( T ` y ) ) <-> S = T ) ) $=
      ( cv cfv co wceq wral wf wa wcel wb ralcom ffvelrn ip2eqi syl2an anandirs
      ralbidva wfn ffn eqfnfv bitr4d syl5bb ) ALZBLZDMZCNULUMEMZCNOZBHPAGPUPAGP
      ZBHPZHGDQZHGEQZRZDEOZUPABGHUAVAURUNUOOZBHPZVBVAUQVCBHUSUTUMHSZUQVCTZUSVER
      UNGSUOGSVFUTVERHGUMDUBHGUMEUBAUNUOCFGIJKUCUDUEUFUSDHUGEHUGVBVDTUTHGDUHHGE
      UHBHDEUIUDUJUK $.

    $( Every operator has at most one adjoint.  (Contributed by NM,
       25-Jan-2008.)  (New usage is discouraged.) $)
    ajmoi $p |- E* s ( s : Y --> X /\
           A. x e. X A. y e. Y ( ( T ` x ) Q y ) = ( x P ( s ` y ) ) ) $=
      ( vt cv wf cfv co wceq wral wa wmo wi r19.26-2 eqtr2 sylbir phoeqi biimpa
      wal 2ralimi sylan2 an4s gen2 feq1 fveq1 oveq2d 2ralbidv anbi12d mo4 mpbir
      eqeq2d ) HGINZOZANZEPBNZDQZVCVDVAPZCQZRZBHSAGSZTZIUAVJHGMNZOZVEVCVDVKPZCQ
      ZRZBHSAGSZTZTVAVKRZUBZMUHIUHVSIMVBVLVIVPVRVIVPTZVBVLTZVGVNRZBHSAGSZVRVTVH
      VOTZBHSAGSWCVHVOABGHUCWDWBABGHVEVGVNUDUIUEWAWCVRABCVAVKFGHJKLUFUGUJUKULVJ
      VQIMVRVBVLVIVPHGVAVKUMVRVHVOABGHVRVGVNVEVRVFVMVCCVDVAVKUNUOUTUPUQURUS $.
  $}

  ${
    $d s t x y U $.  $d s t x y W $.
    ajfuni.5 $e |- A = ( U adj W ) $.
    ajfuni.u $e |- U e. CPreHilOLD $.
    ajfuni.w $e |- W e. NrmCVec $.
    $( The adjoint function is a function.  (Contributed by NM, 25-Jan-2008.)
       (New usage is discouraged.) $)
    ajfuni $p |- Fun A $=
      ( vt vs vx vy wfun cba cfv cv wf cdip co wceq wral eqid w3a copab funopab
      wmo wa ajmoi 3simpc moimi ax-mp mpgbir cnv wcel phnvi ajfval mp2an funeqi
      mpbir ) AKBLMZCLMZGNZOZUSURHNZOZINZUTMJNZCPMZQVDVEVBMBPMZQRJUSSIURSZUAZGH
      UBZKZVKVIHUDZGVIGHUCVCVHUEZHUDVLIJVGVFUTBURUSHURTZVGTZEUFVIVMHVAVCVHUGUHU
      IUJAVJBUKULCUKULAVJRBEUMFIJGAVGVFBCURUSHVNUSTVOVFTDUNUOUPUQ $.
  $}

  ${
    ajfun.5 $e |- A = ( U adj W ) $.
    $( The adjoint function is a function.  This is not immediately apparent
       from ~ df-aj but results from the uniqueness shown by ~ ajmoi .
       (Contributed by NM, 26-Jan-2008.)  (New usage is discouraged.) $)
    ajfun $p |- ( ( U e. CPreHilOLD /\ W e. NrmCVec ) -> Fun A ) $=
      ( ccphlo wcel cnv wfun caddc cmul cop cabs cif caj co oveq1 syl5eq funeqd
      wceq oveq2 eqid elimphu elimnvu ajfuni dedth2h ) BEFZCGFZAHUFBIJKLKZMZCNO
      ZHUIUGCUHMZNOZHBCUHUHBUISZAUJUMABCNOUJDBUICNPQRCUKSUJULCUKUINTRULUIUKULUA
      BUBCUCUDUE $.
  $}

  ${
    $d t P $.  $d t Q $.  $d s t x y T $.  $d s t x y U $.  $d s t x y W $.
    $d s t x y X $.  $d s t y Y $.
    ajval.1 $e |- X = ( BaseSet ` U ) $.
    ajval.2 $e |- Y = ( BaseSet ` W ) $.
    ajval.3 $e |- P = ( .iOLD ` U ) $.
    ajval.4 $e |- Q = ( .iOLD ` W ) $.
    ajval.5 $e |- A = ( U adj W ) $.
    $( Value of the adjoint function.  (Contributed by NM, 25-Jan-2008.)
       (New usage is discouraged.) $)
    ajval $p |- ( ( U e. CPreHilOLD /\ W e. NrmCVec /\ T : X --> Y ) ->
       ( A ` T ) = ( iota s ( s : Y --> X /\
          A. x e. X A. y e. Y ( ( T ` x ) Q y ) = ( x P ( s ` y ) ) ) ) ) $=
      ( wcel cfv wceq cvv vt ccphlo cnv wf w3a cv co wral copab cio phnv ajfval
      wa sylan fveq1d 3adant3 cba fvex eqeltri fex mpan2 eqid feq1 fveq1 oveq1d
      eqeq1d 2ralbidv 3anbi13d fvopab5 syl 3anass baib iotabidv eqtrd 3ad2ant3
      ) GUBQZHUCQZIJFUDZUEFCRZFIJUAUFZUDZJIKUFZUDZAUFZVTRZBUFZEUGZWDWFWBRDUGZSZ
      BJUHAIUHZUEZUAKUIZRZWCWDFRZWFEUGZWHSZBJUHAIUHZUMZKUJZVPVQVSWMSVRVPVQUMFCW
      LVPGUCQVQCWLSGUKABUACDEGHIJKLMNOPULUNUOUPVRVPWMWSSVQVRWMVRWCWQUEZKUJZWSVR
      FTQZWMXASVRITQXBIGUQRTLGUQURUSIJTFUTVAWKWTUAKFWLTWLVBVTFSZWAVRWJWQWCIJVTF
      VCXCWIWPABIJXCWGWOWHXCWEWNWFEWDVTFVDVEVFVGVHVIVJVRWTWRKWTVRWRVRWCWQVKVLVM
      VNVOVN $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Complex Banach spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CBan $.

  $( Extend class notation with the class of all complex Banach spaces. $)
  ccbn $a class CBan $.

  $( Define the class of all complex Banach spaces.  (Contributed by NM,
     5-Dec-2006.)  (New usage is discouraged.) $)
  df-cbn $a |- CBan = { u e. NrmCVec |
    ( IndMet ` u ) e. ( CMet ` ( BaseSet ` u ) ) } $.

  ${
    $d u D $.  $d u U $.  $d u X $.
    iscbn.x $e |- X = ( BaseSet ` U ) $.
    iscbn.8 $e |- D = ( IndMet ` U ) $.
    $( A complex Banach space is a normed complex vector space with a complete
       induced metric.  (Contributed by NM, 5-Dec-2006.)
       (New usage is discouraged.) $)
    iscbn $p |- ( U e. CBan <-> ( U e. NrmCVec /\ D e. ( CMet ` X ) ) ) $=
      ( vu cv cims cfv cba cms wcel cnv ccbn wceq syl6eqr fveq2d eleq12d df-cbn
      fveq2 elrab2 ) FGZHIZUBJIZKIZLACKIZLFBMNUBBOZUCAUEUFUGUCBHIAUBBHTEPUGUDCK
      UGUDBJICUBBJTDPQRFSUA $.

    $( The induced metric on complex Banach space is complete.  (Contributed by
       NM, 8-Sep-2007.)  (New usage is discouraged.) $)
    cbncms $p |- ( U e. CBan -> D e. ( CMet ` X ) ) $=
      ( ccbn wcel cnv cms cfv iscbn simprbi ) BFGBHGACIJGABCDEKL $.
  $}

  $( Every complex Banach space is a normed complex vector space.  (Contributed
     by NM, 17-Mar-2007.)  (New usage is discouraged.) $)
  bnnv $p |- ( U e. CBan -> U e. NrmCVec ) $=
    ( ccbn wcel cnv cims cfv cba cms eqid iscbn simplbi ) ABCADCAEFZAGFZHFCLAMM
    ILIJK $.

  $( The class of all complex Banach spaces is a relation.  (Contributed by NM,
     17-Mar-2007.)  (New usage is discouraged.) $)
  bnrel $p |- Rel CBan $=
    ( vx ccbn cnv wss wrel cv bnnv ssriv nvrel relss mp2 ) BCDCEBEABCAFGHIBCJK
    $.

  ${
    bnsscmcl.x $e |- X = ( BaseSet ` U ) $.
    bnsscmcl.d $e |- D = ( IndMet ` U ) $.
    bnsscmcl.j $e |- J = ( MetOpen ` D ) $.
    bnsscmcl.h $e |- H = ( SubSp ` U ) $.
    bnsscmcl.y $e |- Y = ( BaseSet ` W ) $.
    $( A subspace of a Banach space is a Banach space iff it is closed in the
       norm-induced metric of the parent space.  (Contributed by NM,
       1-Feb-2008.)  (New usage is discouraged.) $)
    bnsscmcl $p |- ( ( U e. CBan /\ W e. H ) -> ( W e. CBan <->
                Y e. ( Clsd ` J ) ) ) $=
      ( ccbn wcel cfv cms cnv wb sylan syl cims cres ccld bnnv sspnv eqid iscbn
      wa cxp baib wceq sspims eleq1d cbncms adantr cmetss 3bitrd ) BMNZECNZUHZE
      MNZEUAOZGPOZNZAGGUIUBZVCNZGDUCONZUTEQNZVAVDRURBQNZUSVHBUDZBCEKUESVAVHVDVB
      EGLVBUFZUGUJTUTVBVEVCURVIUSVBVEUKVJVBABCEGLIVKKULSUMUTAFPONZVFVGRURVLUSAB
      FHIUNUOADFGJUPTUQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Examples of complex Banach spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    cnbn.6 $e |- U = <. <. + , x. >. , abs >. $.
    $( The set of complex numbers is a complex Banach space.  (Contributed by
       Steve Rodriguez, 4-Jan-2007.)  (New usage is discouraged.) $)
    cnbn $p |- U e. CBan $=
      ( ccbn wcel cnv caddc cmul cop cabs cims cfv cc cnnv cmin ccom eqid cnims
      cms eqcomi cncmet cnnvba fveq2i iscbn mpbir2an ) ACDAEDFGHIHZJKZLRKDABMUF
      INOZUFUGUEUEPUGPQSTUFALABUAAJKUFAUEJBUBSUCUD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Uniform Boundedness Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d c k n r x y z A $.  $d c k n r t x z D $.  $d k n t x y J $.
    $d d k t x z K $.  $d c d k m n r t u x y z N $.  $d t z P $.
    $d c k n r t x y ph $.  $d d t x z R $.  $d c d k m n r t u x y z T $.
    $d c d n r t x y z U $.  $d c d n r t x y W $.  $d c d k m n r t x y z X $.
    ubth.1 $e |- X = ( BaseSet ` U ) $.
    ubth.2 $e |- N = ( normCV ` W ) $.
    ${
      ubthlem.3 $e |- D = ( IndMet ` U ) $.
      ubthlem.4 $e |- J = ( MetOpen ` D ) $.
      ubthlem.5 $e |- U e. CBan $.
      ubthlem.6 $e |- W e. NrmCVec $.
      ubthlem.7 $e |- ( ph -> T C_ ( U BLnOp W ) ) $.
      ${
        ubthlem.8 $e |- ( ph -> A. x e. X E. c e. RR A. t e. T
                                ( N ` ( t ` x ) ) <_ c ) $.
        ubthlem.9 $e |- A = ( k e. NN |-> { z e. X |
                              A. t e. T ( N ` ( t ` z ) ) <_ k } ) $.
        $( Lemma for ~ ubth .  The function ` A ` exhibits a countable
           collection of sets that are closed, being the inverse image under
           ` t ` of the closed ball of radius ` k ` , and by assumption they
           cover ` X ` .  Thus, by the Baire Category theorem ~ bcth2 , for
           some ` n ` the set ` A `` n ` has an interior, meaning that there is
           a closed ball ` { z e. X | ( y D z ) <_ r } ` in the set.
           (Contributed by Mario Carneiro, 11-Jan-2014.)
           (New usage is discouraged.) $)
        ubthlem1 $p |- ( ph -> E. n e. NN E. y e. X E. r e. RR+
                        { z e. X | ( y D z ) <_ r } C_ ( A ` n ) ) $=
          ( cv cfv cnt c0 wne cn wrex co cle wbr crab wss crp ccld wf cuni wceq
          wral wcel wa rzal ralrimivw rabid2 sylibr eqcomd eleq1d iinrab adantl
          crn ciin ccnv cba cima cims cmopn cblo sselda ccn eqid ccbn cnv ax-mp
          bnnv blocn2 ctopon cxmt cms cme cbncms cmetmet metxmet mp2b mopntopon
          id wb imsxmet iscncl mp2an sylib syl simpld ffvelrnda biantrurd fveq2
          adantlr breq1d elrab syl6bbr pm5.32da fveq2d a1i wfn ffn cxr cr nvzcl
          mp3an12 clt wi simpr syl2an adantr sylancr ralimdva cvv elssuni sseld
          cn0v sylan rexlimdva mpd wex sstr2 ex elpreima 3bitr4d eqrdv ad2antlr
          3syl nnre rexrd nvnd xmetsym eqtr4d rabbiia blcld simprd imaeq2 rspcv
          mpan sylc eqeltrd ralrimiva iincld syl2anr eqeltrrd mopntop toponunii
          ctop topcld pm2.61ne fmptd cpw frn cldss2 syl6ss arch ltle impr an32s
          sspwuni nvcl simpllr simplrl letr syl3anc mpan2d eqeltri rabex fvmpt2
          expr fvex mpan2 eleq2d ralbidv syl6bb bicomd sylan9bbr fnfvelrn syl6d
          sylbird dfss3 eqssd ne0i mpanl12 syl2anc ffvelrn sseldi elpwid ntrss3
          bcth2 cbl ntropn mopni2 mp3an1 syl6sseqr cdiv ntrss2 syl5com ad2antrr
          c2 w3a jctil rphalfcl rpxrd rpxr rphalflt 3jca blsscls2 breq2 rabbidv
          sseq1d rspcev 3syld syldan jcad eximdv n0 df-rex 3imtr4g reximdva ) A
          KUGZFUHZLUIUHUHZUJUKZKULUMZCUGZDUGZGUNZPUGZUOUPZDOUQZUYSURZPUSUMZCOUM
          ZKULUMAULLUTUHZFVAZFVOZVBZOVCZVUBAJULVUDEUGZUHZMUHZJUGZUOUPZEHVDZDOUQ
          ZVULFAVUTULVEZVFZVVCVULVEOVULVEZHUJHUJVCZVVCOVULVVGOVVCVVGVVBDOVDOVVC
          VCVVGVVBDOVVAEHVGVHVVBDOVIVJVKVLVVEHUJUKZVFEHVVADOUQZVPZVVCVULVVHVVJV
          VCVCVVEVVAEDHOVMVNVVHVVHVVIVULVEZEHVDVVJVULVEVVEVVHWTVVEVVKEHVVEVUQHV
          EZVFZVVIVUQVQZVUCMUHZVUTUOUPZCNVRUHZUQZVSZVULVVMBVVIVVSVVMBUGZOVEZVVT
          VUQUHZMUHZVUTUOUPZVFZVWAVWBVVRVEZVFZVVTVVIVEZVVTVVSVEZVVMVWAVWDVWFVVM
          VWAVFZVWDVWBVVQVEZVWDVFVWFVWJVWKVWDVVMOVVQVVTVUQAVVLOVVQVUQVAZVVDAVVL
          VFZVWLVVNVVTVSZVULVEZBNVTUHZWAUHZUTUHZVDZVWMVUQINWBUNZVEZVWLVWSVFZAHV
          WTVUQUDWCVXAVUQLVWQWDUNVEZVXBVWTGVWPVUQILVWQNTVWPWEZUAVWQWEZVWTWEIWFV
          EZIWGVEZUBIWIWHZUCWJLOWKUHVEZVWQVVQWKUHVEZVXCVXBXAGOWLUHVEZVXIGOWMUHV
          EZGOWNUHVEVXKVXFVXLUBGIORTWOWHZGOWPGOWQWRZGLOUAWSWHZVWPVVQWLUHVEZVXJN
          WGVEZVXPUCVWPNVVQVVQWEZVXDXBWHZVWPVWQVVQVXEWSWHBVUQLVWQOVVQXCXDXEXFZX
          GZXKZXHXIVVPVWDCVWBVVQVUCVWBVCVVOVWCVUTUOVUCVWBMXJXLXMXNXOVWHVWEXAVVM
          VVAVWDDVVTOVUDVVTVCZVUSVWCVUTUOVYCVURVWBMVUDVVTVUQXJXPXLZXMXQVVMVWLVU
          QOXRVWIVWGXAVYBOVVQVUQXSOVVTVVRVUQUUAUUEUUBUUCVVMVVRVWRVEZVWSVVSVULVE
          ZVVMVUTXTVEZVYEVVMVUTVVDVUTYAVEZAVVLVUTUUFZUUDUUGVXPNYNUHZVVQVEZVYGVY
          EVXSVXQVYKUCNVVQVYJVXRVYJWEZYBWHZCVWPVYJVUTVVRVWQVVQVXEVVPVYJVUCVWPUN
          ZVUTUOUPCVVQVUCVVQVEZVVOVYNVUTUOVYOVVOVUCVYJVWPUNZVYNVXQVYOVVOVYPVCUC
          VUCVWPNMVVQVYJVXRVYLSVXDUUHUUPVXPVYKVYOVYNVYPVCVXSVYMVYJVUCVWPVVQUUIY
          CUUJXLUUKUULYCXFAVVLVWSVVDVWMVWLVWSVXTUUMXKVWOVYFBVVRVWRVVTVVRVCVWNVV
          SVULVVTVVRVVNUUNVLUUOUUQUURUUSEHVVILUUTUVAUVBVVFVVELUVEVEZVVFVXKVYQVX
          NGLOUAUVCWHZLOOLVXOUVDZUVFWHXQUVGUFUVHZAVUOOAVUNOUVIZURVUOOURAVUNVULW
          UAAVUMVUNVULURVYTULVULFUVJXFLOVYSUVKZUVLVUNOUVQXEAVVTVUOVEZBOVDZOVUOU
          RAVWCQUGZUOUPZEHVDZQYAUMZBOVDWUDUEAWUHWUCBOAVWAVFZWUGWUCQYAWUIWUEYAVE
          ZVFZWUEVUTYDUPZJULUMZWUGWUCYEZWUJWUMWUIWUEJUVMVNWUKWULWUNJULWUKVVDVFW
          ULWUGVWDEHVDZWUCWUKVVDWULWUGWUOYEWUKVVDWULVFZVFZWUFVWDEHWUQVVLVFZWUFW
          UEVUTUOUPZVWDWUQWUSVVLWUKVVDWULWUSWUKWUJVYHWULWUSYEVVDWUIWUJYFVYIWUEV
          UTUVNYGUVOYHWURVWCYAVEZWUJVYHWUFWUSVFVWDYEWUKVVLWUTWUPWUIVVLWUTWUJWUI
          VVLVFVXQVWKWUTUCAVVLVWAVWKVWMOVVQVVTVUQVYAXHUVPVWBNMVVQVXRSUVRYIXKXKW
          UIWUJWUPVVLUVSWURVVDVYHWUKVVDWULVVLUVTVYIXFVWCWUEVUTUWAUWBUWCYJUWGWUI
          VVDWUOWUCYEWUJWUIVVDVFWUOVVTVUTFUHZVEZWUCVVDWVBVWAWUOVFZWUIWUOVVDWVBV
          VTVVCVEWVCVVDWVAVVCVVTVVDVVCYKVEWVAVVCVCVVBDOOIVRUHYKRIVRUWHUWDUWEJUL
          VVCYKFUFUWFUWIUWJVVBWUODVVTOVYCVVAVWDEHVYDUWKXMUWLWUIWUOWVCWUIVWAWUOA
          VWAYFXIUWMUWNWUIFULXRZVVDWVBWUCYEAWVDVWAAVUMWVDVYTULVULFXSXFYHWVDVVDV
          FZWVAVUOVVTWVEWVAVUNVEWVAVUOURULVUTFUWOWVAVUNYLXFYMYOUWQXKUWPYPYQYPYJ
          YQBOVUOUWRVJUWSVXLOUJUKZVUMVUPVFVUBVXMVXGIYNUHZOVEWVFVXHIOWVGRWVGWEYB
          OWVGUWTWRGKLFOUAUXGUXAUXBAVUAVUKKULAUYRULVEZVFZVUCUYTVEZCYRVUCOVEZVUJ
          VFZCYRVUAVUKWVIWVJWVLCWVIWVJWVKVUJWVIUYTOVUCWVIVYQUYSOURZUYTOURZVYRAV
          UMWVHWVMVYTVUMWVHVFZUYSOWVOVULWUAUYSWUBULVULUYRFUXCUXDUXEYOZUYSLOVYSU
          XFYIYMWVIWVJVUJWVIWVJVFVUCVVTGUXHUHUNZUYTURZBUSUMZVUJWVIUYTLVEZWVJWVS
          WVIVYQWVMWVTVYRWVPUYSLOVYSUXIYIZVXKWVTWVJWVSVXNBUYTGVUCLOUAUXJUXKYOWV
          IWVJWVKWVSVUJYEWVIUYTOVUCWVIWVTWVNWWAWVTUYTLVBOUYTLYLVYSUXLXFWCWVIWVK
          VFZWVRVUJBUSWWBVVTUSVEZVFZWVRWVQUYSURZVUEVVTUXQUXMUNZUOUPZDOUQZUYSURZ
          VUJWVIWVRWWEYEWVKWWCWVIUYTUYSURZWVRWWEWVIVYQWVMWWJVYRWVPUYSLOVYSUXNYI
          WVQUYTUYSYSUXOUXPWWDWWHWVQURZWWEWWIYEWWBVXKWVKVFWWFXTVEZVVTXTVEZWWFVV
          TYDUPZUXRWWKWWCWWBWVKVXKWVIWVKYFVXNUXSWWCWWLWWMWWNWWCWWFVVTUXTZUYAVVT
          UYBVVTUYCUYDDGVUCWWFWWHVVTLOUAWWHWEUYEYGWWHWVQUYSYSXFWWDWWFUSVEZWWIVU
          JYEWWCWWPWWBWWOVNWWPWWIVUJVUIWWIPWWFUSVUFWWFVCZVUHWWHUYSWWQVUGWWGDOVU
          FWWFVUEUOUYFUYGUYHUYIYTXFUYJYPUYKYQYTUYLUYMCUYTUYNVUJCOUYOUYPUYQYQ $.

        ubthlem.10 $e |- ( ph -> K e. NN ) $.
        ubthlem.11 $e |- ( ph -> P e. X ) $.
        ubthlem.12 $e |- ( ph -> R e. RR+ ) $.
        ubthlem.13 $e |- ( ph -> { z e. X | ( P D z ) <_ R } C_ ( A ` K ) ) $.
        $( Lemma for ~ ubth .  Given that there is a closed ball
           ` B ( P , R ) ` in ` A `` K ` , for any ` x e. B ( 0 , 1 ) ` , we
           have ` P + R x. x e. B ( P , R ) ` and ` P e. B ( P , R ) ` , so
           both of these have ` norm ( t ( z ) ) <_ K ` and so ` norm ( t ( x `
           ` ) ) <_ ( norm ( t ( P ) ) + norm ( t ( P + R x. x ) ) ) / R <_ ( `
           ` K + K ) / R ` , which is our desired uniform bound.  (Contributed
           by Mario Carneiro, 11-Jan-2014.)  (New usage is discouraged.) $)
        ubthlem2 $p |- ( ph -> E. d e. RR A. t e. T
                         ( ( U normOpOLD W ) ` t ) <_ d ) $=
          ( caddc co cdiv cr wcel cv cnmoo cfv cle wbr wral wrex nnrpd rpaddcld
          rpdivcld rpred wa cnmcv c1 cns cpv crab wss rabss sylib ad2antrr ccbn
          wi cnv bnnv ax-mp a1i rpcnd simpr eqid nvscl syl3anc nvgcl wceq oveq2
          cc crp breq1d eleq1 imbi12d rspccv sylc cmul cnsb cxmt cms cme cbncms
          cmetmet metxmet mp2b xmetsym imsdval nvpncan2 fveq2d 3eqtrd cc0 eqtrd
          rprege0d nvsge0 mulid1d eqcomd breq12d nvcl mpan adantl wb cn ralbidv
          breq2 cba fveq2 elrab sylancr adantr ccld mopntopon ffvelrnd syl32anc
          syl ctopon syld ralrimiva syl2anc 1red lemul2d bitr4d rabbidv eqeltri
          cvv rabex fvmpt eleq2d syl6bb 3imtr3d rsp com12 ad2antlr xmet0 rpge0d
          fvex eqbrtrd sylanbrc sseldd eleqtrd r19.21bi wf ccnv cima cims cmopn
          simprd cblo sselda blocn2 imsxmet iscncl mp2an simpld le2add syl22anc
          ccn nnred mpan2d bloln mp3an12 lnosub lnomul 3eqtr3d ffvelrnda nvmtri
          clno eqbrtrrd remulcld readdcld mpand lemuldiv2d sylibd adantld rpxrd
          letr cxr nmoubi mpbird rspcev ) AMMULUMZHUNUMZUOUPDUQZJOURUMZUSZUXCUT
          VAZDIVBZUXFRUQZUTVAZDIVBZRUOVCAUXCAUXBHAMMAMUHVDZUXLVEZUJVFZVGAUXGDIA
          UXDIUPZVHZUXGBUQZJVIUSZUSZVJUTVAZUXQUXDUSZNUSZUXCUTVAZVSZBPVBZUXPUYDB
          PUXPUXQPUPZVHZUXTGHUXQJVKUSZUMZJVLUSZUMZPUPZUYKUXDUSZNUSZMUTVAZDIVBZV
          HZUYCUYGGUYKFUMZHUTVAZUYKMEUSZUPZUXTUYQUYGGCUQZFUMZHUTVAZVUBUYTUPZVSZ
          CPVBZUYLUYSVUAVSZAVUGUXOUYFAVUDCPVMZUYTVNVUGUKVUDCPUYTVOVPVQUYGJVTUPZ
          GPUPZUYIPUPZUYLVUJUYGJVRUPZVUJUCJWAWBZWCZAVUKUXOUYFUIVQZUYGVUJHWLUPZU
          YFVULVUOUYGHAHWMUPUXOUYFUJVQZWDZUXPUYFWEZHUXQUYHJPSUYHWFZWGWHZGUYIJUY
          JPSUYJWFZWIWHZVUFVUHCUYKPVUBUYKWJZVUDUYSVUEVUAVVEVUCUYRHUTVUBUYKGFWKW
          NVUBUYKUYTWOWPWQWRUYGUYSHUXSWSUMZHVJWSUMZUTVAUXTUYGUYRVVFHVVGUTUYGUYR
          UYIUXRUSZVVFUYGUYRUYKGFUMZUYKGJWTUSZUMZUXRUSZVVHUYGFPXAUSUPZVUKUYLUYR
          VVIWJVVMUYGFPXBUSUPZFPXCUSUPVVMVUMVVNUCFJPSUAXDWBFPXEFPXFXGZWCVUPVVDG
          UYKFPXHWHUYGVUJUYLVUKVVIVVLWJVUOVVDVUPUYKGFJVVJUXRPSVVJWFZUXRWFZUAXIW
          HUYGVVKUYIUXRUYGVUJVUKVULVVKUYIWJVUOVUPVVBGUYIJUYJVVJPSVVCVVPXJWHZXKX
          LUYGVUJHUOUPXMHUTVAVHZUYFVVHVVFWJVUOUYGHVURXOZVUTHUXQUYHJUXRPSVVAVVQX
          PWHXNUYGVVGHUYGHVUSXQXRXSUYGUXSVJHUYFUXSUOUPZUXPVUJUYFVWAVUNUXQJUXRPS
          VVQXTYAYBUYGUUAVURUUBUUCAVUAUYQYCUXOUYFAVUAUYKVUBUXDUSZNUSZMUTVAZDIVB
          ZCPVMZUPUYQAUYTVWFUYKAMYDUPUYTVWFWJUHKMVWCKUQZUTVAZDIVBZCPVMVWFYDEVWG
          MWJZVWIVWECPVWJVWHVWDDIVWGMVWCUTYFYEUUDUGVWECPPJYGUSUUFSJYGUUQUUEUUGU
          UHYPZUUIVWEUYPCUYKPVVEVWDUYODIVVEVWCUYNMUTVVEVWBUYMNVUBUYKUXDYHXKWNYE
          YIUUJVQUUKUYGUYPUYCUYLUYGUYPUYOUYCUXOUYPUYOVSAUYFUYPUXOUYOUYODIUULUUM
          UUNUYGUYOHUYBWSUMZUXBUTVAZUYCUYGUYOUYNGUXDUSZNUSZULUMZUXBUTVAZVWMUYGU
          YOVWOMUTVAZVWQUXPVWRUYFAVWRDIAVUKVWRDIVBZAGVWFUPVUKVWSVHAGUYTVWFAVUIU
          YTGUKAVUKGGFUMZHUTVAZGVUIUPUIAVWTXMHUTAVVMVUKVWTXMWJVVOUIGFPUUOYJAHUJ
          UUPUURVUDVXACGPVUBGWJZVUCVWTHUTVUBGGFWKWNYIUUSUUTVWKUVAVWEVWSCGPVXBVW
          DVWRDIVXBVWCVWOMUTVXBVWBVWNNVUBGUXDYHXKWNYEYIVPUVHUVBYKUYGUYNUOUPZVWO
          UOUPZMUOUPZVXEUYOVWRVHVWQVSUYGOVTUPZUYMOYGUSZUPZVXCUDUYGPVXGUYKUXDUXP
          PVXGUXDUVCZUYFUXPVXIUXDUVDUXQUVELYLUSUPBOUVFUSZUVGUSZYLUSVBZUXPUXDJOU
          VIUMZUPZVXIVXLVHZAIVXMUXDUEUVJZVXNUXDLVXKUVRUMUPZVXOVXMFVXJUXDJLVXKOU
          AVXJWFZUBVXKWFZVXMWFZVUNUDUVKLPYQUSUPZVXKVXGYQUSUPZVXQVXOYCVVMVYAVVOF
          LPUBYMWBVXFVXJVXGXAUSUPVYBUDVXJOVXGVXGWFZVXRUVLVXJVXKVXGVXSYMXGBUXDLV
          XKPVXGUVMUVNVPYPUVOZYKZVVDYNZUYMONVXGVYCTXTYJZUYGVXFVWNVXGUPZVXDUDUYG
          PVXGGUXDVYEVUPYNZVWNONVXGVYCTXTYJZAVXEUXOUYFAMUHUVSVQZVYKUYNVWOMMUVPU
          VQUVTUYGVWLVWPUTVAZVWQVWMUYGUYMVWNOWTUSZUMZNUSZVWLVWPUTUYGVYOHUYAOVKU
          SZUMZNUSZVWLUYGVYNVYQNUYGVVKUXDUSZUYIUXDUSZVYNVYQUYGVVKUYIUXDVVRXKUYG
          VUJVXFUXDJOUWHUMZUPZUYLVUKVYSVYNWJVUOVXFUYGUDWCZUXPWUBUYFUXPVXNWUBVXP
          VUJVXFVXNWUBVUNUDVXMUXDJWUAOWUAWFZVXTUWAUWBYPYKZVVDVUPUYKGUXDJWUAVVJV
          YMOPSVVPVYMWFZWUDUWCYOUYGVUJVXFWUBVUQUYFVYTVYQWJVUOWUCWUEVUSVUTHUXQUY
          HVYPUXDJWUAOPSVVAVYPWFZWUDUWDYOUWEXKUYGVXFVVSUYAVXGUPZVYRVWLWJWUCVVTU
          XPPVXGUXQUXDVYDUWFZHUYAVYPONVXGVYCWUGTXPWHXNUYGVXFVXHVYHVYOVWPUTVAWUC
          VYFVYIUYMVWNOVYMNVXGVYCWUFTUWGWHUWIUYGVWLUOUPVWPUOUPUXBUOUPZVYLVWQVHV
          WMVSUYGHUYBUYGHVURVGUYGVXFWUHUYBUOUPUDWUIUYAONVXGVYCTXTYJZUWJUYGUYNVW
          OVYGVYJUWKAWUJUXOUYFAUXBUXMVGVQZVWLVWPUXBUWQWHUWLYRUYGUYBUXBHWUKWULVU
          RUWMUWNYRUWOYRYSUXPVXIUXCUWRUPZUXGUYEYCVYDAWUMUXOAUXCUXNUWPYKBUXCUXDJ
          UXRNUXEOPVXGSVYCVVQTUXEWFVUNUDUWSYTUWTYSUXKUXHRUXCUOUXIUXCWJUXJUXGDIU
          XIUXCUXFUTYFYEUXAYT $.
      $}

      $d d ph $.
      $( Lemma for ~ ubth .  Prove the reverse implication, using ~ nmblolbi .
         (Contributed by Mario Carneiro, 11-Jan-2014.)
         (New usage is discouraged.) $)
      ubthlem3 $p |- ( ph ->
                ( A. x e. X E. c e. RR A. t e. T ( N ` ( t ` x ) ) <_ c <->
                  E. d e. RR A. t e. T ( ( U normOpOLD W ) ` t ) <_ d ) ) $=
        ( cle vz vu vy vr vn vm vk cv cfv wbr wral cr wrex cnmoo co wceq fveq2d
        fveq1 breq1d cbvralv breq2 ralbidv syl5bb cbvrexv fveq2 rexralbidv crab
        wa cmpt wss crp cblo adantr simpr sylib cbvrabv rabbidv syl5eq ubthlem1
        cn cbvmptv wcel ad3antrrr ad2antrr simplrl simplrr simprl ubthlem2 expr
        simprr rexlimdva rexlimdvva mpd syl5bir cnmcv cmul ccbn bnnv ax-mp eqid
        ex cnv nvcl mpan remulcl syl2an wf sselda adantlr ad2ant2r blof mp3an12
        cba syl simplr ffvelrnd cxr cmnf clt simpllr nmogtmnf syl22anc ad2antlr
        nmoxr xrre syl2anc nmblolbi cc0 nvge0 jca lemul1a syl31anc letrd rspcev
        ralimdva syl6an ralrimdva impbid ) ABUHZCUHZUIZHUIZKUHZTUJZCEUKZKULUMZB
        JUKZYTFIUNUOZUIZLUHZTUJZCEUKZLULUMZUUGUAUHZUBUHZUIZHUIZUUJTUJZUBEUKZLUL
        UMZUAJUKZAUUMUUTUUFUABJUUTUUNYTUIZHUIZUUCTUJZCEUKZKULUMUUNYSUPZUUFUUSUV
        ELKULUUSUVCUUJTUJZCEUKUUJUUCUPZUVEUURUVGUBCEUUOYTUPZUUQUVCUUJTUVIUUPUVB
        HUUNUUOYTURUQUSUTUVHUVGUVDCEUUJUUCUVCTVAVBVCVDUVFUVDUUDKCULEUVFUVCUUBUU
        CTUVFUVBUUAHUUNYSYTVEUQUSVFVCUTZAUVAUUMAUVAVHZUCUHZUUNDUOUDUHZTUJUAJVGU
        EUHZUFVTUUJUUOUIZHUIZUFUHZTUJZUBEUKZLJVGZVIZUIVJZUDVKUMZUCJUMUEVTUMUUMU
        VKBUCUACUWADEFUGUEGHIJUDKMNOPQRAEFIVLUOZVJZUVASVMUVKUVAUUGAUVAVNUVJVOZU
        FUGVTUVTUVCUGUHZTUJZCEUKZUAJVGZUVQUWGUPZUVTUVCUVQTUJZCEUKZUAJVGUWJUVSUW
        MLUAJUVSUUJYTUIZHUIZUVQTUJZCEUKUUJUUNUPZUWMUVRUWPUBCEUVIUVPUWOUVQTUVIUV
        OUWNHUUJUUOYTURUQUSUTUWQUWPUWLCEUWQUWOUVCUVQTUWQUWNUVBHUUJUUNYTVEUQUSVB
        VCVPUWKUWMUWIUAJUWKUWLUWHCEUVQUWGUVCTVAVBVQVRWAZVSUVKUWCUUMUEUCVTJUVKUV
        NVTWBZUVLJWBZVHZVHZUWBUUMUDVKUXBUVMVKWBZUWBUUMUXBUXCUWBVHZVHBUACUWADUVL
        UVMEFUGGUVNHIJKLMNOPQRAUWEUVAUXAUXDSWCUVKUUGUXAUXDUWFWDUWRUVKUWSUWTUXDW
        EUVKUWSUWTUXDWFUXBUXCUWBWGUXBUXCUWBWJWHWIWKWLWMXAWNAUULUUGLULAUUJULWBZV
        HZUULUUFBJUXFYSJWBZVHZUUJYSFWOUIZUIZWPUOZULWBZUULUUBUXKTUJZCEUKZUUFUXFU
        XEUXJULWBZUXLUXGAUXEVNFXBWBZUXGUXOFWQWBUXPQFWRWSZYSFUXIJMUXIWTZXCXDZUUJ
        UXJXEXFZUXHUUKUXMCEUXHYTEWBZUUKUXMUXHUYAUUKVHZVHZUUBUUIUXJWPUOZUXKUYCUU
        AIXMUIZWBZUUBULWBZUYCJUYEYSYTUYCYTUWDWBZJUYEYTXGZUXFUYAUYHUXGUUKAUYAUYH
        UXEAEUWDYTSXHXIXJZUXPIXBWBZUYHUYIUXQRUWDYTFIJUYEMUYEWTZUWDWTZXKXLXNZUXF
        UXGUYBXOZXPUYKUYFUYGRUUAIHUYEUYLNXCXDXNUYCUUIULWBZUXOUYDULWBUYCUUIXQWBZ
        UXEXRUUIXSUJZUUKUYPUYCUYIUYQUYNUXPUYKUYIUYQUXQRYTFUUHIJUYEMUYLUUHWTZYDX
        LXNAUXEUXGUYBXTZUYCUYIUYRUYNUXPUYKUYIUYRUXQRYTFUUHIJUYEMUYLUYSYAXLXNUXH
        UYAUUKWJZUUIUUJYEYBZUXGUXOUXFUYBUXSYCUUIUXJXEYFUXHUXLUYBUXTVMUYCUYHUXGU
        UBUYDTUJUYJUYOYSUWDYTFUXIHUUHIJMUXRNUYSUYMUXQRYGYFUYCUYPUXEUXOYHUXJTUJZ
        VHZUUKUYDUXKTUJVUBUYTUXGVUDUXFUYBUXGUXOVUCUXSUXPUXGVUCUXQYSFUXIJMUXRYIX
        DYJYCVUAUUIUUJUXJYKYLYMWIYOUUEUXNKUXKULUUCUXKUPUUDUXMCEUUCUXKUUBTVAVBYN
        YPYQWKYR $.
    $}

    ubth.3 $e |- M = ( U normOpOLD W ) $.
    $( Uniform Boundedness Theorem, also called the Banach-Steinhaus Theorem.
       Let ` T ` be a collection of bounded linear operators on a Banach space.
       If, for every vector ` x ` , the norms of the operators' values are
       bounded, then the operators' norms are also bounded.  Theorem 4.7-3 of
       [Kreyszig] p. 249.  See also
       ~ http://en.wikipedia.org/wiki/Uniform_boundedness_principle .
       (Contributed by NM, 7-Nov-2007.)  (Proof shortened by Mario Carneiro,
       11-Jan-2014.)  (New usage is discouraged.) $)
    ubth $p |- ( ( U e. CBan /\ W e. NrmCVec /\ T C_ ( U BLnOp W ) ) ->
                 ( A. x e. X E. c e. RR A. t e. T ( N ` ( t ` x ) ) <_ c <->
                   E. d e. RR A. t e. T ( M ` t ) <_ d ) ) $=
      ( cblo co cfv cle wbr wral cr ccbn wcel cnv wss cv wrex wb caddc cmul cop
      wi cabs cif cba cnmoo cnmcv wceq oveq1 sseq2d fveq2 syl5eq raleqdv fveq1d
      breq1d rexralbidv bibi12d imbi12d oveq2 ralbidv cims cmopn elimel elimnvu
      eqid cnbn id ubthlem3 dedth2h 3impia ) DUAUBZGUCUBZCDGNOZUDZAUEBUEZPZFPZI
      UEZQRZBCSITUFZAHSZWDEPZJUEZQRZBCSJTUFZUGZVTWAWCWOUKCVTDUHUIUJULUJZUMZGNOZ
      UDZWIAWQUNPZSZWDWQGUOOZPZWLQRZBCSJTUFZUGZUKCWQWAGWPUMZNOZUDZWEXGUPPZPZWGQ
      RZBCSITUFZAWTSZWDWQXGUOOZPZWLQRZBCSJTUFZUGZUKDGWPWPDWQUQZWCWSWOXFXTWBWRCD
      WQGNURUSXTWJXAWNXEXTWIAHWTXTHDUNPWTKDWQUNUTVAVBXTWMXDJBTCXTWKXCWLQXTWDEXB
      XTEDGUOOXBMDWQGUOURVAVCVDVEVFVGGXGUQZWSXIXFXSYAWRXHCGXGWQNVHUSYAXAXNXEXRY
      AWIXMAWTYAWHXLIBTCYAWFXKWGQYAWEFXJYAFGUPPXJLGXGUPUTVAVCVDVEVIYAXDXQJBTCYA
      XCXPWLQYAWDXBXOGXGWQUOVHVCVDVEVFVGXIABWQVJPZCWQYBVKPZXJXGWTIJWTVNXJVNYBVN
      YCVNDWPUAWPWPVNVOVLGVMXIVPVQVRVS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Minimizing Vector Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d j n x y F $.  $d k n w x y J $.  $d y K $.  $d y L $.  $d f j w x y M $.
    $d f j w x y N $.  $d f j k n w x y ph $.  $d w x R $.  $d f k n w x y S $.
    $d f j k n w x y A $.  $d f j k n w x y D $.  $d w x y U $.  $d w x y W $.
    $d n T $.  $d j k n w x X $.  $d f j k n w x y Y $.
    minveco.x $e |- X = ( BaseSet ` U ) $.
    minveco.m $e |- M = ( -v ` U ) $.
    minveco.n $e |- N = ( normCV ` U ) $.
    minveco.y $e |- Y = ( BaseSet ` W ) $.
    minveco.u $e |- ( ph -> U e. CPreHilOLD ) $.
    minveco.w $e |- ( ph -> W e. ( ( SubSp ` U ) i^i CBan ) ) $.
    minveco.a $e |- ( ph -> A e. X ) $.
    ${
      minveco.d $e |- D = ( IndMet ` U ) $.
      minveco.j $e |- J = ( MetOpen ` D ) $.
      minveco.r $e |- R = ran ( y e. Y |-> ( N ` ( A M y ) ) ) $.
      $( Lemma for ~ minveco .  The set of all distances from points of ` Y `
         to ` A ` are a nonempty set of nonnegative reals.  (Contributed by
         Mario Carneiro, 8-May-2014.)  (New usage is discouraged.) $)
      minvecolem1 $p |- ( ph ->
                         ( R C_ RR /\ R =/= (/) /\ A. w e. R 0 <_ w ) ) $=
        ( cr wss c0 wne cc0 cv cle wbr wral co cfv cmpt crn wf wcel wa cnv phnv
        ccphlo syl adantr css ccbn elin sylib simpld sspba syl2anc sselda nvmcl
        cin eqid syl3anc nvcl fmptd frn syl5eqss cdm cn0v simprd bnnv 3syl fvex
        dmmpti syl6eleqr ne0i wceq dm0rn0 eqeq1i bitr4i necon3bii ralrimiva cvv
        nvzcl nvge0 wb rgenw breq2 ralrnmpt ax-mp sylibr raleqi 3jca ) AFUDUEFU
        FUGZUHCUIZUJUKZCFULZAFBMDBUIZIUMZJUNZUOZUPZUDUCAMUDXNUQXOUDUEABMXMUDXNA
        XKMURZUSZGUTURZXLLURZXMUDURAXRXPAGVBURXRRGVAVCZVDZXQXRDLURZXKLURXSYAAYB
        XPTVDAMLXKAXRKGVEUNZURZMLUEXTAYDKVFURZAKYCVFVNURYDYEUSSKYCVFVGVHZVIGYCK
        LMNQYCVOVJVKVLDXKGILNOVMVPZXLGJLNPVQVKXNVOZVRMUDXNVSVCVTAXNWAZUFUGZXGAK
        WBUNZYIURYJAYKMYIAYEKUTURYKMURAYDYEYFWCKWDKMYKQYKVOWQWEBMXMXNXLJWFZYHWG
        WHYIYKWIVCYIUFFUFYIUFWJXOUFWJFUFWJXNWKFXOUFUCWLWMWNVHAXICXOULZXJAUHXMUJ
        UKZBMULZYMAYNBMXQXRXSYNYAYGXLGJLNPWRVKWOXMWPURZBMULYMYOWSYPBMYLWTXIYNBC
        MXMXNWPYHXHXMUHUJXAXBXCXDXICFXOUCXEXDXF $.

      minveco.s $e |- S = inf ( R , RR , < ) $.
      ${
        minvecolem2.1 $e |- ( ph -> B e. RR ) $.
        minvecolem2.2 $e |- ( ph -> 0 <_ B ) $.
        minvecolem2.3 $e |- ( ph -> K e. Y ) $.
        minvecolem2.4 $e |- ( ph -> L e. Y ) $.
        minvecolem2.5 $e |- ( ph -> ( ( A D K ) ^ 2 ) <_ ( ( S ^ 2 ) + B ) ) $.
        minvecolem2.6 $e |- ( ph -> ( ( A D L ) ^ 2 ) <_ ( ( S ^ 2 ) + B ) ) $.
        $( Lemma for ~ minveco .  Any two points ` K ` and ` L ` in ` Y ` are
           close to each other if they are close to the infimum of distance to
           ` A ` .  (Contributed by Mario Carneiro, 9-May-2014.)  (Revised by
           AV, 4-Oct-2020.)  (New usage is discouraged.) $)
        minvecolem2 $p |- ( ph -> ( ( K D L ) ^ 2 ) <_ ( 4 x. B ) ) $=
          ( vx vw co c2 cexp c4 cmul cle wbr caddc c1 cdiv cpv cfv cns wcel 4re
          cr clt cinf wss c0 wne cv wral wrex cc0 minvecolem1 simp1d simp2d 0re
          simp3d breq1 ralbidv sylancr infrecl syl3anc syl5eqel resqcld remulcl
          wceq rspcev cme cnv ccphlo phnv syl imsmet css ccbn inss1 sseldi eqid
          cin sspba syl2anc sseldd metcl readdcld cc ax-1cn mp1i syl22anc nvgcl
          halfcl eqeltrrd nvmcl wb a1i mpbird fveq2d pm3.2i lemul2 mp3an3 mpbid
          wa recnd 2re 2cn oveq1i syl6eq syl13anc eqtr3d oveq12d oveq1d imsdval
          3eqtr4d sspgval sspnv sspsval nvscl nvcl infregelb syl31anc syl6breqr
          cmpt crn oveq2 eqeq2d sylancl fvex elrnmpti sylibr syl6eleqr syl5eqbr
          infrelb le2sq2 4pos leadd1dd le2addd 2timesd breqtrrd 2pos phpar2 sq2
          sqmul cabs nvs 0le2 absid mp2an nvmdi 2ne0 recidi nvsid syl5eq nvsass
          nv2 nvaddsub4 syl122anc 3eqtr2d metsym nvnnncan1 oveq2d 2t2e4 mulassd
          syl5eqr 3brtr4d letrd 4cn adddid breqtrd leadd2d ) AJKEUPZUQURUPZUSDU
          TUPZVAVBUSGUQURUPZUTUPZUWRVCUPZUXAUWSVCUPZVAVBAUXBUSUWTDVCUPZUTUPZUXC
          VAAUXBUSCVDUQVEUPZJKHVFVGZUPZHVHVGZUPZLUPZMVGZUQURUPZUTUPZUWRVCUPZUXE
          AUXAUWRAUSVKVIZUWTVKVIZUXAVKVIVJAGAGFVKVLVMZVKUGAFVKVNZFVOVPZUNVQZUOV
          QZVAVBZUOFVRZUNVKVSZUXRVKVIAUXSUXTVTUYBVAVBZUOFVRZABUOCEFHILMNOPQRSTU
          AUBUCUDUEUFWAZWBZAUXSUXTUYGUYHWCZAVTVKVIZUYGUYEWDAUXSUXTUYGUYHWEZUYDU
          YGUNVTVKUYAVTWNUYCUYFUOFUYAVTUYBVAWFWGWOWHZUNUOFWIWJWKZWLZUSUWTWMWHZA
          UWQAEOWPVGVIZJOVIZKOVIZUWQVKVIAHWQVIZUYQAHWRVIZUYTUAHWSWTZEHOQUDXAWTZ
          APOJAUYTNHXBVGZVIZPOVNVUBAVUDXCXGVUDNVUDXCXDUBXEZHVUDNOPQTVUDXFZXHXIZ
          UJXJZAPOKVUHUKXJZJKEOXKWJWLZXLAUXNUWRAUXPUXMVKVIZUXNVKVIVJAUXLAUYTUXK
          OVIZUXLVKVIZVUBAUYTCOVIZUXJOVIZVUMVUBUCAPOUXJVUHAUXFUXHNVHVGZUPZUXJPA
          UYTVUEUXFXMVIZUXHPVIZVURUXJWNVUBVUFVDXMVIVUSAXNVDXRXOZAJKNVFVGZUPZUXH
          PAUYTVUEJPVIZKPVIZVVCUXHWNVUBVUFUJUKJKHVVBUXGVUDNPTUXGXFZVVBXFZVUGUUA
          XPANWQVIZVVDVVEVVCPVIAUYTVUEVVHVUBVUFHVUDNVUGUUBXIZUJUKJKNVVBPTVVGXQW
          JXSZUXFUXHVUQUXIHVUDNPTUXIXFZVUQXFZVUGUUCXPAVVHVUSVUTVURPVIVVIVVAVVJU
          XFUXHVUQNPTVVLUUDWJXSZXJZCUXJHLOQRXTWJZUXKHMOQSUUEXIZWLZUSUXMWMWHZVUK
          XLAUXPUXDVKVIZUXEVKVIVJAUWTDUYOUHXLZUSUXDWMWHAUXAUXNUWRUYPVVRVUKAUWTU
          XMVAVBZUXAUXNVAVBZAGVKVIVTGVAVBVUNGUXLVAVBVWAUYNAVTUXRGVAAVTUXRVAVBZU
          YGUYLAUXSUXTUYEUYKVWCUYGYAUYIUYJUYMUYKAWDYBUNUOUOFVTUUFUUGYCUGUUHVVPA
          GUXRUXLVAUGAUXSUYEUXLFVIUXRUXLVAVBUYIUYMAUXLBPCBVQZLUPZMVGZUUIZUUJZFA
          UXLVWFWNZBPVSZUXLVWHVIAUXJPVIUXLUXLWNZVWJVVMUXLXFVWIVWKBUXJPVWDUXJWNZ
          VWFUXLUXLVWLVWEUXKMVWDUXJCLUUKYDUULWOUUMBPVWFUXLVWGVWGXFVWEMUUNUUOUUP
          UFUUQUNUOUXLFUUSWJUURGUXLUUTXPAUXQVULVWAVWBYAZUYOVVQUXQVULUXPVTUSVLVB
          ZYIVWMUXPVWNVJUVAYEUWTUXMUSYFYGXIYHUVBAUQCJEUPZUQURUPZCKEUPZUQURUPZVC
          UPZUTUPZUQUQUXDUTUPZUTUPZUXOUXEVAAVWSVXAVAVBZVWTVXBVAVBZAVWSUXDUXDVCU
          PVXAVAAVWPVWRUXDUXDAVWOAUYQVUOUYRVWOVKVIVUCUCVUICJEOXKWJWLZAVWQAUYQVU
          OUYSVWQVKVIVUCUCVUJCKEOXKWJWLZVVTVVTULUMUVCAUXDAUXDVVTYJZUVDUVEAVWSVK
          VIZVXAVKVIZVXCVXDYAZAVWPVWRVXEVXFXLAUQVKVIZVVSVXIYKVVTUQUXDWMWHVXHVXI
          VXKVTUQVLVBZYIVXJVXKVXLYKUVFYEVWSVXAUQYFYGXIYHACJLUPZCKLUPZUXGUPZMVGZ
          UQURUPZVXMVXNLUPZMVGZUQURUPZVCUPZUQVXMMVGZUQURUPZVXNMVGZUQURUPZVCUPZU
          TUPZUXOVWTAVUAVXMOVIZVXNOVIZVYAVYGWNUAAUYTVUOUYRVYHVUBUCVUICJHLOQRXTW
          JAUYTVUOUYSVYIVUBUCVUJCKHLOQRXTWJVXMVXNHUXGLMOQVVFRSUVGWJAUXNVXQUWRVX
          TVCAUQUXLUTUPZUQURUPZUXNVXQAVYKUQUQURUPZUXMUTUPZUXNAUQXMVIZUXLXMVIVYK
          VYMWNYLAUXLVVPYJUQUXLUVIWHVYLUSUXMUTUVHYMYNAVYJVXPUQURAUQUXKUXIUPZMVG
          ZVYJVXPAVYPUQUVJVGZUXLUTUPZVYJAUYTVYNVUMVYPVYRWNVUBVYNAYLYBZVVOUQUXKU
          XIHMOQVVKSUVKWJVYQUQUXLUTVXKVTUQVAVBVYQUQWNYKUVLUQUVMUVNYMYNAVYOVXOMA
          VYOUQCUXIUPZUQUXJUXIUPZLUPZCCUXGUPZUXHLUPZVXOAUYTVYNVUOVUPVYOWUBWNVUB
          VYSUCVVNUQCUXJUXIHLOQRVVKUVOYOAWUCVYTUXHWUALAUYTVUOWUCVYTWNVUBUCCUXIH
          UXGOQVVFVVKUWAXIAUQUXFUTUPZUXHUXIUPZUXHWUAAWUFVDUXHUXIUPZUXHWUEVDUXHU
          XIUQYLUVPUVQYMAUYTUXHOVIZWUGUXHWNVUBAUYTUYRUYSWUHVUBVUIVUJJKHUXGOQVVF
          XQWJZUXHUXIHOQVVKUVRXIUVSAUYTVYNVUSWUHWUFWUAWNVUBVYSVVAWUIUQUXFUXHUXI
          HOQVVKUVTYOYPYQAUYTVUOVUOUYRUYSWUDVXOWNVUBUCUCVUIVUJCCJKHUXGLOQVVFRUW
          BUWCUWDYDYPYRYPAUWQVXSUQURAKJEUPZKJLUPZMVGZUWQVXSAUYTUYSUYRWUJWULWNVU
          BVUJVUIKJEHLMOQRSUDYSWJAUYQUYRUYSUWQWUJWNVUCVUIVUJJKEOUWEWJAVXRWUKMAU
          YTVUOUYRUYSVXRWUKWNVUBUCVUIVUJCJKHLOQRUWFYOYDYTYRYQAVWSVYFUQUTAVWPVYC
          VWRVYEVCAVWOVYBUQURAUYTVUOUYRVWOVYBWNVUBUCVUICJEHLMOQRSUDYSWJYRAVWQVY
          DUQURAUYTVUOUYSVWQVYDWNVUBUCVUJCKEHLMOQRSUDYSWJYRYQUWGYTAUXEUQUQUTUPZ
          UXDUTUPVXBWUMUSUXDUTUWHYMAUQUQUXDVYSVYSVXGUWIUWJUWKUWLAUSUWTDUSXMVIAU
          WMYBAUWTUYOYJADUHYJUWNUWOAUWRUWSUXAVUKAUXPDVKVIUWSVKVIVJUHUSDWMWHUYPU
          WPYC $.
      $}

      ${
        minveco.f $e |- ( ph -> F : NN --> Y ) $.
        minveco.1 $e |- ( ( ph /\ n e. NN ) ->
            ( ( A D ( F ` n ) ) ^ 2 ) <_ ( ( S ^ 2 ) + ( 1 / n ) ) ) $.
        $( Lemma for ~ minveco .  The sequence formed by taking elements
           successively closer to the infimum is Cauchy.  (Contributed by Mario
           Carneiro, 8-May-2014.)  (Revised by AV, 4-Oct-2020.)
           (New usage is discouraged.) $)
        minvecolem3 $p |- ( ph -> F e. ( Cau ` D ) ) $=
          ( vj vx vw cca cfv wcel cv co clt wbr cuz wral cn wrex crp wa c4 cexp
          c2 cdiv cfl c1 caddc cr cc0 cle cn0 4pos elrpii simpr rpexpcl sylancl
          4re rpdivcl sylancr rprege0 flge0nn0 nn0p1nn 4syl cmul cme ccphlo cnv
          cz 2z phnv imsmet 3syl ad2antrr wss css syl ccbn cin inss1 eqid sspba
          sseldi syl2anc wf adantr ffvelrnd sseldd eluznn sylan syl3anc resqcld
          metcl nnrpd rpreccld rpmulcl rpred rpge0d ffvelrnda syldan wceq fveq2
          ralrimiva oveq2d oveq1d oveq2 breq12d rspcv wne rspcev readdcld wb cc
          w3a rpcnne0 mpbird eqidd sylc cinf minvecolem1 0re breq1 ralbidv mpan
          3anim3i infrecl syl5eqel nnrecred adantlr eluzle adantl rpregt0d nnre
          nngt0 jca lerec mpbid leadd2dd letrd minvecolem2 ax-mp recdiv eqbrtrd
          flltp1 ltrec1d pm3.2i ltmuldiv2 mp3an3 metge0 ad2antlr lt2sq syl21anc
          c0 lelttrd breq1d raleqbidv nnuz cxmt imsxmet 1zzd fssd iscauf ) AIDU
          LUMUNUIUOZIUMZHUOZIUMZDUPZUJUOZUQURZHUWFUSUMZUTZUIVAVBZUJVCUTAUWOUJVC
          AUWKVCUNZVDZVEUWKVGVFUPZVHUPZVIUMZVJVKUPZVAUNZUXAIUMZUWIDUPZUWKUQURZH
          UXAUSUMZUTZUWOUWQUWSVCUNZUWSVLUNZVMUWSVNURVDUWTVOUNUXBUWQVEVCUNZUWRVC
          UNZUXHVEWAVPVQZUWQUWPVGWLUNUXKAUWPVRWMUWKVGVSVTZVEUWRWBWCZUWSWDUWSWEU
          WTWFWGZUWQUXEHUXFUWQUWHUXFUNZVDZUXEUXDVGVFUPZUWRUQURZUXQUXRVEVJUXAVHU
          PZWHUPZUWRUXQUXDUXQDNWIUMUNZUXCNUNZUWINUNZUXDVLUNZAUYBUWPUXPAGWJUNZGW
          KUNZUYBTGWNZDGNPUCWOWPWQZUXQONUXCAONWRZUWPUXPAUYGMGWSUMZUNUYJAUYFUYGT
          UYHWTAUYKXAXBZUYKMUYKXAXCUAXFGUYKMNOPSUYKXDXEXGZWQZUXQVAOUXAIAVAOIXHZ
          UWPUXPUGWQZUWQUXBUXPUXOXIZXJZXKZUXQONUWIUYNUXQVAOUWHIUYPUWQUXBUXPUWHV
          AUNZUXOUWHUXAXLXMZXJXKZUXCUWIDNXPXNZXOUXQUYAUXQUXJUXTVCUNZUYAVCUNUXLU
          XQUXAUXQUXAUYQXQZXRVEUXTXSWCXTUXQUWRUWQUXKUXPUXMXIZXTZUXQBCUXTDEFGJUX
          CUWIKLMNOPQRSAUYFUWPUXPTWQAMUYLUNUWPUXPUAWQACNUNZUWPUXPUBWQZUCUDUEUFU
          XQUXTUWQVUDUXPUWQUXAUWQUXAUXOXQXRXIZXTZUXQUXTVUJYAUYRUWQUXPUYTUWIOUNV
          UAUWQVAOUWHIAUYOUWPUGXIYBYCZUXQUXBCUWIDUPZVGVFUPZFVGVFUPZVJUWHVHUPZVK
          UPZVNURZHVAUTZCUXCDUPZVGVFUPZVUOUXTVKUPZVNURZUYQAVUSUWPUXPAVURHVAUHYF
          WQVURVVCHUXAVAUWHUXAYDZVUNVVAVUQVVBVNVVDVUMVUTVGVFVVDUWIUXCCDUWHUXAIY
          EYGYHVVDVUPUXTVUOVKUWHUXAVJVHYIYGYJYKUUAUXQVUNVUQVVBUXQVUMUXQUYBVUHUY
          DVUMVLUNUYIVUIUXQONUWIUYNVULXKCUWIDNXPXNXOUXQVUOVUPAVUOVLUNUWPUXPAFAF
          EVLUQUUBZVLUFAEVLWRZEUVPYLZVMUKUOZVNURZUKEUTZYQVVFVVGUWKVVHVNURZUKEUT
          ZUJVLVBZYQVVEVLUNABUKCDEGJKLMNOPQRSTUAUBUCUDUEUUCVVJVVMVVFVVGVMVLUNVV
          JVVMUUDVVLVVJUJVMVLUWKVMYDVVKVVIUKEUWKVMVVHVNUUEUUFYMUUGUUHUJUKEUUIWP
          UUJXOWQZUXQUWHVUAUUKZYNUXQVUOUXTVVNVUKYNUWQUXPUYTVURVUAAUYTVURUWPUHUU
          LYCUXQVUPUXTVUOVVOVUKVVNUXQUXAUWHVNURZVUPUXTVNURZUXPVVPUWQUXAUWHUUMUU
          NUXQUXAVLUNVMUXAUQURVDUWHVLUNZVMUWHUQURZVDZVVPVVQYOUXQUXAVUEUUOUXQUYT
          VVTVUAUYTVVRVVSUWHUUPUWHUUQUURWTUXAUWHUUSXGUUTUVAUVBUVCUXQUYAUWRUQURZ
          UXTUWRVEVHUPZUQURZUXQVWBUXAUXQUXKUXJVWBVCUNVUFUXLUWRVEWBVTVUEUXQVJVWB
          VHUPZUWSUXAUQUXQUWRYPUNUWRVMYLVDZVEYPUNVEVMYLVDZVWDUWSYDUXQUXKVWEVUFU
          WRYRWTUXJVWFUXLVEYRUVDUWRVEUVEVTUXQUXIUWSUXAUQURUXQUWSUWQUXHUXPUXNXIX
          TUWSUVGWTUVFUVHUXQUXTVLUNZUWRVLUNZVWAVWCYOZVUKVUGVWGVWHVEVLUNZVMVEUQU
          RZVDVWIVWJVWKWAVPUVIUXTUWRVEUVJUVKXGYSUVQUXQUYEVMUXDVNURZUWKVLUNVMUWK
          VNURVDZUXEUXSYOVUCUXQUYBUYCUYDVWLUYIUYSVUBUXCUWIDNUVLXNUWPVWMAUXPUWKW
          DUVMUXDUWKUVNUVOYSYFUWNUXGUIUXAVAUWFUXAYDZUWLUXEHUWMUXFUWFUXAUSYEVWNU
          WJUXDUWKUQVWNUWGUXCUWIDUWFUXAIYEYHUVRUVSYMXGYFAUJUWIUWGDUIHIVJNVAUVTA
          UYFUYGDNUWAUMUNTUYHDGNPUCUWBWPAUWCAUYTVDUWIYTAUWFVAUNVDUWGYTAVAONIUGU
          YMUWDUWEYS $.

        $( Lemma for ~ minveco . ` F ` is convergent in the subspace topology
           on ` Y ` .  (Contributed by Mario Carneiro, 7-May-2014.)
           (New usage is discouraged.) $)
        minvecolem4a $p |- ( ph -> F
                      ( ~~>t ` ( MetOpen ` ( D |` ( Y X. Y ) ) ) )
                      ( ( ~~>t ` ( MetOpen ` ( D |` ( Y X. Y ) ) ) ) ` F ) ) $=
          ( cxp cres cmopn cfv clm cdm wcel wbr cba cms cca cims cnv css ccphlo
          wceq phnv syl ccbn cin wa elin sylib simpld eqid sspims simprd cbncms
          syl2anc eqeltrrd minvecolem3 cxmt cn wf cme imsmet 3syl metxmet causs
          wb mpbid cmetcau cha wfun xmetres methaus lmfun funfvbrb ) AIDOOUIUJZ
          UKULZUMULZUNUOZIIWSULWSUPZAWQMUQULZURULZUOIWQUSULUOZWTAMUTULZWQXCAGVA
          UOZMGVBULZUOZXEWQVDAGVCUOZXFTGVEZVFAXHMVGUOZAMXGVGVHUOXHXKVIUAMXGVGVJ
          VKZVLXEDGXGMOSUCXEVMZXGVMVNVQAXKXEXCUOAXHXKXLVOXEMXBXBVMXMVPVFVRAIDUS
          ULUOZXDABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHVSADNVTULUOZWAOIWBXNXDWHAD
          NWCULUOZXOAXIXFXPTXJDGNPUCWDWEDNWFVFZUGDINOWGVQWIWQIWRXBWRVMZWJVQAWRW
          KUOZWSWLWTXAWHAXOWQNOVHZVTULUOXSXQDONWMWQWRXTXRWNWEWRWOIWSWPWEWI $.

        $( Lemma for ~ minveco .  The convergent point of the cauchy sequence
           ` F ` is a member of the base space.  (Contributed by Mario
           Carneiro, 16-Jun-2014.)  (New usage is discouraged.) $)
        minvecolem4b $p |- ( ph -> ( ( ~~>t ` J ) ` F ) e. X ) $=
          ( clm cfv cnv wcel css wss ccphlo phnv syl ccbn cin elin sylib simpld
          wa eqid sspba syl2anc cxp cres wfun wbr wceq cha cxmt imsxmet methaus
          cmopn lmfun minvecolem4a crest co c1 cvv cn nnuz cba fvex eqeltri a1i
          ctop mopntop ctopon xmetres2 mopntopon lmcl 1zzd metrest fveq2d breqd
          lmss bitrd mpbird funbrfv sylc eqeltrd sseldd ) AONIJUIUJZUJZAGUKULZM
          GUMUJZULZONUNZAGUOULXHTGUPUQZAXJMURULZAMXIURUSULXJXMVCUAMXIURUTVAVBGX
          IMNOPSXIVDVEVFZAXGIDOOVGVHZVPUJZUIUJZUJZOAXFVIZIXRXFVJZXGXRVKAJVLULZX
          SADNVMUJULZYAAXHYBXLDGNPUCVNUQZDJNUDVOUQJVQUQAXTIXRXQVJZABCDEFGHIJKLM
          NOPQRSTUAUBUCUDUEUFUGUHVRZAXTIXRJOVSVTZUIUJZVJYDAXRIJYFWAWBOWCYFVDWDO
          WBULAOMWEUJWBSMWEWFWGWHAYBJWIULYCDJNUDWJUQAXPOWKUJULZYDXROULAXOOVMUJU
          LZYHAYBXKYIYCXNDONWLVFXOXPOXPVDZWMUQYEXRIXPOWNVFZAWOUGWSAYGXQIXRAYFXP
          UIAYBXKYFXPVKYCXNDXOJXPNOXOVDUDYJWPVFWQWRWTXAIXRXFXBXCYKXDXE $.

        $( Lemma for ~ minveco .  The infimum of the distances to ` A ` is a
           real number.  (Contributed by Mario Carneiro, 16-Jun-2014.)
           (Revised by AV, 4-Oct-2020.)  (New usage is discouraged.) $)
        minvecolem4c $p |- ( ph -> S e. RR ) $=
          ( vx vw cr clt cinf wss c0 wne cle wbr wral wrex wcel cc0 minvecolem1
          cv simp1d simp2d 0re simp3d wceq breq1 ralbidv rspcev sylancr infrecl
          syl3anc syl5eqel ) AFEUKULUMZUKUFAEUKUNZEUOUPZUIVDZUJVDZUQURZUJEUSZUI
          UKUTZVQUKVAAVRVSVBWAUQURZUJEUSZABUJCDEGJKLMNOPQRSTUAUBUCUDUEVCZVEAVRV
          SWFWGVFAVBUKVAWFWDVGAVRVSWFWGVHWCWFUIVBUKVTVBVIWBWEUJEVTVBWAUQVJVKVLV
          MUIUJEVNVOVP $.

        minveco.t $e |- T = ( 1 /
      ( ( ( ( ( A D ( ( ~~>t ` J ) ` F ) ) + S ) / 2 ) ^ 2 ) - ( S ^ 2 ) ) ) $.
        $( Lemma for ~ minveco .  The convergent point of the cauchy sequence
           ` F ` attains the minimum distance, and so is closer to ` A ` than
           any other point in ` Y ` .  (Contributed by Mario Carneiro,
           7-May-2014.)  (Revised by AV, 4-Oct-2020.)
           (New usage is discouraged.) $)
        minvecolem4 $p |- ( ph -> E. x e. Y A. y e. Y
                          ( N ` ( A M x ) ) <_ ( N ` ( A M y ) ) ) $=
          ( vw clm cfv wcel co cv cle wbr wral wrex cxp cres wfun wceq cxmt cha
          cmopn ccphlo cnv phnv imsxmet methaus lmfun minvecolem4a crest c1 cvv
          3syl cn eqid nnuz cba fvex eqeltri a1i syl mopntop ctopon wss css cin
          ctop ccbn wa elin sylib simpld sspba syl2anc mopntopon lmcl 1zzd lmss
          xmetres2 metrest fveq2d breqd bitrd funbrfv sylc eqeltrd minvecolem4b
          mpbird imsdval syl3anc adantr cr metcl clt caddc c2 cdiv cc0 cexp crp
          readdcld resqcld cmul recnd 2timesd breq1d 3bitr2d 0re ralbidv rspcev
          wb metge0 ad2antrr letrd cme imsmet minvecolem4c sselda nvmcl nvcl wn
          ltnled cfl cuz cn0 cmin rehalfcld resubcld ltadd1d 2re 2pos ltmuldiv2
          pm3.2i cinf c0 wne minvecolem1 simp3d simp1d simp2d sylancr infregelb
          breq1 syl31anc syl6breqr addge0d divge0 syl21anc lt2sqd 3bitrd biimpa
          posdifd elrpd rpreccld syl5eqel rprege0d flge0nn0 nnzd breqtrrd rexrd
          nn0p1nn simpll eluznn sylan fssd nnrecred rpred reflcl peano2re nnred
          ffvelrnda fllep1 eluzle adantl syl5eqbrr 1red lediv23 syl122anc mpbid
          nngt0d leaddsub2d le2sqd lmle leadd2d lemuldiv2 mp3an3 biimpar syldan
          ex sylbird pm2.18d cmpt crn simpr elrnmpt1 sylancl syl6eleqr syl5eqbr
          infrelb eqbrtrrd ralrimiva oveq2 ) AKLUMUNZUNZQUODUYJMUPZNUNZDCUQZMUP
          ZNUNZURUSZCQUTZDBUQZMUPZNUNZUYOURUSZCQUTZBQVAAUYJKEQQVBVCZVHUNZUMUNZU
          NZQAUYIVDZKVUFUYIUSZUYJVUFVEAEPVFUNUOZLVGUOVUGAIVIUOZIVJUOZVUIUBIVKZE
          IPRUEVLZVSZELPUFVMLVNVSAVUHKVUFVUEUSZACDEFGIJKLMNOPQRSTUAUBUCUDUEUFUG
          UHUIUJVOZAVUHKVUFLQVPUPZUMUNZUSVUOAVUFKLVUQVQVRQVTVUQWAWBQVRUOAQOWCUN
          VRUAOWCWDWEWFAVUKVUILWMUOAVUJVUKUBVULWGZVUMELPUFWHVSAVUDQWIUNUOZVUOVU
          FQUOAVUCQVFUNUOZVUTAVUIQPWJZVVAVUNAVUKOIWKUNZUOZVVBVUSAVVDOWNUOZAOVVC
          WNWLUOVVDVVEWOUCOVVCWNWPWQWRIVVCOPQRUAVVCWAWSWTZEQPXEWTVUCVUDQVUDWAZX
          AWGVUPVUFKVUDQXBWTZAXCUIXDAVURVUEKVUFAVUQVUDUMAVUIVVBVUQVUDVEVUNVVFEV
          UCLVUDPQVUCWAUFVVGXFWTXGXHXIXNZKVUFUYIXJXKZVVHXLAUYPCQAUYMQUOZWOZDUYJ
          EUPZUYLUYOURAVVMUYLVEZVVKAVUKDPUOZUYJPUOZVVNVUSUDACDEFGIJKLMNOPQRSTUA
          UBUCUDUEUFUGUHUIUJXMZDUYJEIMNPRSTUEXOXPXQVVLVVMGUYOAVVMXRUOZVVKAEPUUA
          UNUOZVVOVVPVVRAVUJVUKVVSUBVULEIPRUEUUBVSZUDVVQDUYJEPXSXPZXQAGXRUOZVVK
          ACDEFGIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUUCZXQVVLVUKUYNPUOZUYOXRUOAVUKV
          VKVUSXQZVVLVUKVVOUYMPUOVWDVWEAVVOVVKUDXQAQPUYMVVFUUDDUYMIMPRSUUEXPUYN
          INPRTUUFWTAVVMGURUSZVVKAVWFAVWFUUGGVVMXTUSZVWFAGVVMVWCVWAUUHAVWGVWFAV
          WGVVMVVMGYAUPZYBYCUPZURUSZVWFAVWGWOZEUYJDVWIJKLHUUIUNZVQYAUPZPVWMUUJU
          NZVWNWAUFAVUIVWGVUNXQVWKVWMVWKHXRUOZYDHURUSWOVWLUUKUOVWMVTUOZVWKHVWKH
          VQVWIYBYEUPZGYBYEUPZUULUPZYCUPZYFUKVWKVWSVWKVWSAVWSXRUOZVWGAVWQVWRAVW
          IAVWHAVVMGVWAVWCYGZUUMZYHZAGVWCYHZUUNZXQAVWGYDVWSXTUSZAVWGGVWIXTUSZVW
          RVWQXTUSVXGAVWGGGYAUPZVWHXTUSYBGYIUPZVWHXTUSZVXHAGVVMGVWCVWAVWCUUOAVX
          JVXIVWHXTAGAGVWCYJYKYLAVWBVWHXRUOZYBXRUOZYDYBXTUSZWOZVXKVXHYQVWCVXBVX
          OAVXMVXNUUPUUQUUSZWFZGVWHYBUURXPYMAGVWIVWCVXCAYDFXRXTUUTZGURAYDVXRURU
          SZYDULUQZURUSZULFUTZAFXRWJZFUVAUVBZVYBACULDEFILMNOPQRSTUAUBUCUDUEUFUG
          UVCZUVDZAVYCVYDUYRVXTURUSZULFUTZBXRVAZYDXRUOZVXSVYBYQAVYCVYDVYBVYEUVE
          ZAVYCVYDVYBVYEUVFAVYJVYBVYIYNVYFVYHVYBBYDXRUYRYDVEVYGVYAULFUYRYDVXTUR
          UVIYOYPUVGZVYJAYNWFBULULFYDUVHUVJXNUHUVKZAVXLYDVWHURUSVXOYDVWIURUSZVX
          BAVVMGVWAVWCAVVSVVOVVPYDVVMURUSVVTUDVVQDUYJEPYRXPVYMUVLVXQVWHYBUVMUVN
          ZUVOAVWRVWQVXEVXDUVRUVPUVQZUVSUVTUWAZUWBHUWCVWLUWGVSZUWDAKUYJUYIUSVWG
          AKVUFUYJUYIVVIVVJUWEXQAVVOVWGUDXQVWKVWIAVWIXRUOZVWGVXCXQUWFVWKJUQZVWN
          UOZWOZDVYTKUNZEUPZVWIURUSWUDYBYEUPZVWQURUSWUBWUEVWRVQVYTYCUPZYAUPZVWQ
          WUBWUDWUBAVYTVTUOZWUDXRUOZAVWGWUAUWHZVWKVWPWUAWUHVYRVYTVWMUWIUWJZAWUH
          WOZVVSVVOWUCPUOZWUIAVVSWUHVVTXQZAVVOWUHUDXQZAVTPVYTKAVTQPKUIVVFUWKUWQ
          ZDWUCEPXSXPWTZYHWUBVWRWUFWUBGAVWBVWGWUAVWCYSYHZWUBVYTWUKUWLZYGAVWQXRU
          OVWGWUAVXDYSZWUBAWUHWUEWUGURUSWUJWUKUJWTWUBWUGVWQURUSWUFVWSURUSZWUBVW
          TVYTURUSZWVAWUBVWTHVYTURUKWUBHVWMVYTWUBHVWKHYFUOWUAVYQXQUWMZWUBVWOVWL
          XRUOVWMXRUOWVCHUWNVWLUWOVSWUBVYTWUKUWPZWUBVWOHVWMURUSWVCHUWRWGWUAVWMV
          YTURUSVWKVWMVYTUWSUWTYTUXAWUBVQXRUOVXAVXGVYTXRUOYDVYTXTUSWVBWVAYQWUBU
          XBAVXAVWGWUAVXFYSVWKVXGWUAVYPXQWVDWUBVYTWUKUXFVQVWSVYTUXCUXDUXEWUBVWR
          WUFVWQWURWUSWUTUXGXNYTWUBWUDVWIWUQAVYSVWGWUAVXCYSWUBAWUHYDWUDURUSZWUJ
          WUKWULVVSVVOWUMWVEWUNWUOWUPDWUCEPYRXPWTAVYNVWGWUAVYOYSUXHXNUXIAVWFVWJ
          AVWFVVMVVMYAUPZVWHURUSYBVVMYIUPZVWHURUSZVWJAVVMGVVMVWAVWCVWAUXJAWVGWV
          FVWHURAVVMAVVMVWAYJYKYLAVVRVXLWVHVWJYQZVWAVXBVVRVXLVXOWVIVXPVVMVWHYBU
          XKUXLWTYMUXMUXNUXOUXPUXQXQVVLGVXRUYOURUHVVLVYCVYIUYOFUOVXRUYOURUSAVYC
          VVKVYKXQAVYIVVKVYLXQVVLUYOCQUYOUXRZUXSZFVVLVVKUYOVRUOUYOWVKUOAVVKUXTU
          YNNWDCQUYOWVJVRWVJWAUYAUYBUGUYCBULUYOFUYEXPUYDYTUYFUYGVUBUYQBUYJQUYRU
          YJVEZVUAUYPCQWVLUYTUYLUYOURWVLUYSUYKNUYRUYJDMUYHXGYLYOYPWT $.
      $}

      $( Lemma for ~ minveco .  Discharge the assumption about the sequence
         ` F ` by applying countable choice ~ ax-cc .  (Contributed by Mario
         Carneiro, 9-May-2014.)  (Revised by AV, 4-Oct-2020.)
         (New usage is discouraged.) $)
      minvecolem5 $p |- ( ph -> E. x e. Y A. y e. Y
                        ( N ` ( A M x ) ) <_ ( N ` ( A M y ) ) ) $=
        ( vf vn vw vk cn cv wf cfv co c2 cexp c1 cdiv caddc cle wbr wral wa wex
        wrex wcel csqrt wn clt cc0 nnrecgt0 adantl nnrecre cinf wss minvecolem1
        cr c0 wne w3a adantr simp1d simp2d 0re simp3d wceq breq1 ralbidv rspcev
        sylancr infrecl syl3anc syl5eqel resqcld ltaddposd mpbid readdcld elrpd
        sqge0d addgegt0d resqrtth syl2anc breqtrrd rpsqrtcld rpred wb infregelb
        rpge0d 0red syl31anc mpbird syl6breqr sqrtge0d lt2sqd ltnled breq2i crn
        syl5bb cmpt raleqi cvv fvex rgenw eqid breq2 ralrnmpt ax-mp bitri mtbid
        syl6bb rexnal sylibr syl ad2antrr ccbn breq1d oveq1d cba oveq2 oveq2d
        cnv ccphlo phnv css cin inss1 sseldi sspba sselda nvmcl nvcl letrid ord
        nvge0 le2sqd bitrd notbid imsdval 3imtr4d reximdva mpd ralrimiva nnenom
        eqeltri axcc4 clm simprl simprr fveq2 breq12d rspccva sylan minvecolem4
        cmin exlimddv ) AUJNUFUKZULZDUGUKZUVPUMZEUNZUOUPUNZGUOUPUNZUQUVRURUNZUS
        UNZUTVAZUGUJVBZVCZDBUKZJUNKUMDCUKZJUNZKUMZUTVACNVBBNVEUFADUWIEUNZUOUPUN
        ZUWDUTVAZCNVEZUGUJVBUWGUFVDAUWOUGUJAUVRUJVFZVCZUWDVGUMZUWKUTVAZVHZCNVEZ
        UWOUWQUWSCNVBZVHUXAUWQUWRGUTVAZUXBUWQGUWRVIVAZUXCVHUWQUXDUWBUWRUOUPUNZV
        IVAUWQUWBUWDUXEVIUWQVJUWCVIVAZUWBUWDVIVAUWPUXFAUVRVKVLZUWQUWCUWBUWPUWCV
        QVFAUVRVMVLZUWQGUWQGFVQVIVNZVQUEUWQFVQVOZFVRVSZUWHUHUKZUTVAZUHFVBZBVQVE
        ZUXIVQVFUWQUXJUXKVJUXLUTVAZUHFVBZAUXJUXKUXQVTUWPACUHDEFHIJKLMNOPQRSTUAU
        BUCUDVPWAZWBZUWQUXJUXKUXQUXRWCZUWQVJVQVFZUXQUXOWDUWQUXJUXKUXQUXRWEZUXNU
        XQBVJVQUWHVJWFUXMUXPUHFUWHVJUXLUTWGWHWIWJZBUHFWKWLWMZWNZWOWPUWQUWDVQVFZ
        VJUWDUTVAUXEUWDWFZUWQUWBUWCUYEUXHWQZUWQUWDUWQUWDUYHUWQUWBUWCUYEUXHUWQGU
        YDWSUXGWTWRZXHZUWDXAXBZXCUWQGUWRUYDUWQUWRUWQUWDUYIXDXEZUWQVJUXIGUTUWQVJ
        UXIUTVAZUXQUYBUWQUXJUXKUXOUYAUYMUXQXFUXSUXTUYCUWQXIBUHUHFVJXGXJXKUEXLUW
        QUWDUYHUYJXMZXNXKUWQGUWRUYDUYLXOWPUWQUXCUWRUXLUTVAZUHFVBZUXBUXCUWRUXIUT
        VAZUWQUYPGUXIUWRUTUEXPUWQUXJUXKUXOUWRVQVFZUYQUYPXFUXSUXTUYCUYLBUHUHFUWR
        XGXJXRUYPUYOUHCNUWKXSZXQZVBZUXBUYOUHFUYTUDXTUWKYAVFZCNVBVUAUXBXFVUBCNUW
        JKYBYCUYOUWSCUHNUWKUYSYAUYSYDUXLUWKUWRUTYEYFYGYHYJYIUWSCNYKYLUWQUWTUWNC
        NUWQUWINVFZVCZUWDUWKUOUPUNZUTVAZVHVUEUWDUTVAZUWTUWNVUDVUFVUGVUDUWDVUEUW
        QUYFVUCUYHWAVUDUWKVUDHUUAVFZUWJMVFZUWKVQVFAVUHUWPVUCAHUUBVFZVUHSHUUCYMZ
        YNZVUDVUHDMVFZUWIMVFZVUIVULAVUMUWPVUCUAYNZUWQNMUWIANMVOZUWPAVUHLHUUDUMZ
        VFVUPVUKAVUQYOUUEZVUQLVUQYOUUFTUUGHVUQLMNORVUQYDUUHXBWAUUIZDUWIHJMOPUUJ
        WLZUWJHKMOQUUKXBZWNUULUUMVUDUWSVUFVUDUWSUXEVUEUTVAVUFVUDUWRUWKUWQUYRVUC
        UYLWAVVAUWQVJUWRUTVAVUCUYNWAVUDVUHVUIVJUWKUTVAVULVUTUWJHKMOQUUNXBUUOVUD
        UXEUWDVUEUTUWQUYGVUCUYKWAYPUUPUUQVUDUWMVUEUWDUTVUDUWLUWKUOUPVUDVUHVUMVU
        NUWLUWKWFVULVUOVUSDUWIEHJKMOPQUBUURWLYQYPUUSUUTUVAUVBUWNUWECNUFUGUJNLYR
        UMYARLYRYBUVDUVCUWIUVSWFZUWMUWAUWDUTVVBUWLUVTUOUPUWIUVSDEYSYQYPUVEYMAUW
        GVCZBCDEFGUQDUVPIUVFUMUMEUNGUSUNUOURUNUOUPUNUWBUVNUNURUNZHUIUVPIJKLMNOP
        QRAVUJUWGSWAALVURVFUWGTWAAVUMUWGUAWAUBUCUDUEAUVQUWFUVGVVCUWFUIUKZUJVFDV
        VEUVPUMZEUNZUOUPUNZUWBUQVVEURUNZUSUNZUTVAZAUVQUWFUVHUWEVVKUGVVEUJUVRVVE
        WFZUWAVVHUWDVVJUTVVLUVTVVGUOUPVVLUVSVVFDEUVRVVEUVPUVIYTYQVVLUWCVVIUWBUS
        UVRVVEUQURYSYTUVJUVKUVLVVDYDUVMUVO $.

      $( Lemma for ~ minveco .  Any minimal point is less than ` S ` away from
         ` A ` .  (Contributed by Mario Carneiro, 9-May-2014.)  (Revised by AV,
         4-Oct-2020.)  (New usage is discouraged.) $)
      minvecolem6 $p |- ( ( ph /\ x e. Y ) ->
        ( ( ( A D x ) ^ 2 ) <_ ( ( S ^ 2 ) + 0 ) <->
          A. y e. Y ( N ` ( A M x ) ) <_ ( N ` ( A M y ) ) ) ) $=
        ( vw cv wcel wa co cexp cc0 caddc cle wbr cfv wral cnv wceq ccphlo phnv
        c2 syl adantr css wss ccbn cin inss1 sseldi eqid syl2anc sselda imsdval
        sspba syl3anc oveq1d cr clt cinf wne wrex w3a minvecolem1 simp1d simp2d
        0red simp3d breq1 ralbidv rspcev infrecl syl5eqel resqcld recnd addid1d
        c0 breq12d nvmcl nvcl nvge0 wb infregelb mpbird syl6breqr le2sqd breq2i
        syl31anc syl5bb 3bitr2d cmpt crn raleqi fvex rgenw breq2 ralrnmpt ax-mp
        cvv bitri syl6bb ) ABUGZNUHZUIZDYBEUJZVBUKUJZGVBUKUJZULUMUJZUNUOZDYBJUJ
        ZKUPZUFUGZUNUOZUFFUQZYKDCUGJUJZKUPZUNUOZCNUQZYDYIYKVBUKUJZYGUNUOYKGUNUO
        ZYNYDYFYSYHYGUNYDYEYKVBUKYDHURUHZDMUHZYBMUHZYEYKUSAUUAYCAHUTUHUUASHVAVC
        ZVDZAUUBYCUAVDZANMYBAUUALHVEUPZUHNMVFUUDAUUGVGVHUUGLUUGVGVITVJHUUGLMNOR
        UUGVKVOVLVMZDYBEHJKMOPQUBVNVPVQYDYGYDYGYDGYDGFVRVSVTZVRUEYDFVRVFZFWQWAZ
        YBYLUNUOZUFFUQZBVRWBZUUIVRUHYDUUJUUKULYLUNUOZUFFUQZAUUJUUKUUPWCYCACUFDE
        FHIJKLMNOPQRSTUAUBUCUDWDVDZWEZYDUUJUUKUUPUUQWFZYDULVRUHZUUPUUNYDWGZYDUU
        JUUKUUPUUQWHZUUMUUPBULVRYBULUSUULUUOUFFYBULYLUNWIWJWKVLZBUFFWLVPWMZWNWO
        WPWRYDYKGYDUUAYJMUHZYKVRUHZUUEYDUUAUUBUUCUVEUUEUUFUUHDYBHJMOPWSVPZYJHKM
        OQWTVLZUVDYDUUAUVEULYKUNUOUUEUVGYJHKMOQXAVLYDULUUIGUNYDULUUIUNUOZUUPUVB
        YDUUJUUKUUNUUTUVIUUPXBUURUUSUVCUVABUFUFFULXCXHXDUEXEXFYTYKUUIUNUOZYDYNG
        UUIYKUNUEXGYDUUJUUKUUNUVFUVJYNXBUURUUSUVCUVHBUFUFFYKXCXHXIXJYNYMUFCNYPX
        KZXLZUQZYRYMUFFUVLUDXMYPXSUHZCNUQUVMYRXBUVNCNYOKXNXOYMYQCUFNYPUVKXSUVKV
        KYLYPYKUNXPXQXRXTYA $.

      $( Lemma for ~ minveco .  Since any two minimal points are distance zero
         away from each other, the minimal point is unique.  (Contributed by
         Mario Carneiro, 9-May-2014.)  (New usage is discouraged.) $)
      minvecolem7 $p |- ( ph -> E! x e. Y A. y e. Y
                        ( N ` ( A M x ) ) <_ ( N ` ( A M y ) ) ) $=
        ( vw cv co cfv cle wbr wral wrex wa wceq wreu minvecolem5 wcel cexp cc0
        wi c2 caddc c4 cmul ccphlo ad2antrr css ccbn cin cr 0re simplrl simplrr
        a1i simprl simprr minvecolem2 ex wb minvecolem6 adantrr adantrl anbi12d
        0le0 4cn mul01i breq2i cme cnv phnv syl adantr imsmet inss1 sseldi eqid
        wss sspba syl2anc sseldd syl3anc sqge0d biantrud resqcld letri3 sylancl
        metcl recnd sqeq0 meteq0 bitrd 3bitr2d syl5bb 3imtr3d ralrimivva fveq2d
        cc oveq2 breq1d ralbidv reu4 sylanbrc ) ADBUGZJUHZKUIZDCUGJUHKUIZUJUKZC
        NULZBNUMYIDUFUGZJUHZKUIZYGUJUKZCNULZUNZYDYJUOZVAZUFNULBNULYIBNUPABCDEFG
        HIJKLMNOPQRSTUAUBUCUDUEUQAYQBUFNNAYDNURZYJNURZUNZUNZDYDEUHVBUSUHGVBUSUH
        UTVCUHZUJUKZDYJEUHVBUSUHUUBUJUKZUNZYDYJEUHZVBUSUHZVDUTVEUHZUJUKZYOYPUUA
        UUEUUIUUAUUEUNZCDUTEFGHIYDYJJKLMNOPQRAHVFURZYTUUESVGALHVHUIZVIVJZURYTUU
        ETVGADMURYTUUEUAVGUBUCUDUEUTVKURZUUJVLVOUTUTUJUKUUJWEVOAYRYSUUEVMAYRYSU
        UEVNUUAUUCUUDVPUUAUUCUUDVQVRVSUUAUUCYIUUDYNAYRUUCYIVTYSABCDEFGHIJKLMNOP
        QRSTUAUBUCUDUEWAWBAYSUUDYNVTYRAUFCDEFGHIJKLMNOPQRSTUAUBUCUDUEWAWCWDUUIU
        UGUTUJUKZUUAYPUUHUTUUGUJVDWFWGWHUUAUUOUUOUTUUGUJUKZUNZUUGUTUOZYPUUAUUPU
        UOUUAUUFUUAEMWIUIURZYDMURZYJMURZUUFVKURUUAHWJURZUUSAUVBYTAUUKUVBSHWKWLZ
        WMEHMOUBWNWLZUUANMYDANMWRZYTAUVBLUULURUVEUVCAUUMUULLUULVIWOTWPHUULLMNOR
        UULWQWSWTWMZAYRYSVPXAZUUANMYJUVFAYRYSVQXAZYDYJEMXHXBZXCXDUUAUUGVKURUUNU
        URUUQVTUUAUUFUVIXEVLUUGUTXFXGUUAUURUUFUTUOZYPUUAUUFXRURUURUVJVTUUAUUFUV
        IXIUUFXJWLUUAUUSUUTUVAUVJYPVTUVDUVGUVHYDYJEMXKXBXLXMXNXOXPYIYNBUFNYPYHY
        MCNYPYFYLYGUJYPYEYKKYDYJDJXSXQXTYAYBYC $.
    $}

    $( Minimizing vector theorem, or the Hilbert projection theorem.  There is
       exactly one vector in a complete subspace ` W ` that minimizes the
       distance to an arbitrary vector ` A ` in a parent inner product space.
       Theorem 3.3-1 of [Kreyszig] p. 144, specialized to subspaces instead of
       convex subsets.  (Contributed by NM, 11-Apr-2008.)  (Proof shortened by
       Mario Carneiro, 9-May-2014.)  (New usage is discouraged.) $)
    minveco $p |- ( ph -> E! x e. Y A. y e. Y
                   ( N ` ( A M x ) ) <_ ( N ` ( A M y ) ) ) $=
      ( vj cfv eqid cims cv co cmpt crn cr cinf cmopn wceq oveq2 fveq2d cbvmptv
      clt rneqi minvecolem7 ) ABCDEUASZRJDRUBZFUCZGSZUDZUEZVAUFUMUGZEUPUHSZFGHI
      JKLMNOPQUPTVCTUTCJDCUBZFUCZGSZUDRCJUSVFUQVDUIURVEGUQVDDFUJUKULUNVBTUO $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Complex Hilbert spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definition and basic properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CHilOLD $.

  $( Extend class notation with the class of all complex Hilbert spaces. $)
  chlo $a class CHilOLD $.

  $( Define the class of all complex Hilbert spaces.  A Hilbert space is a
     Banach space which is also an inner product space.  (Contributed by Steve
     Rodriguez, 28-Apr-2007.)  (New usage is discouraged.) $)
  df-hlo $a |- CHilOLD = ( CBan i^i CPreHilOLD ) $.

  $( The predicate "is a complex Hilbert space."  A Hilbert space is a Banach
     space which is also an inner product space, i.e. whose norm satisfies the
     parallelogram law.  (Contributed by Steve Rodriguez, 28-Apr-2007.)
     (New usage is discouraged.) $)
  ishlo $p |- ( U e. CHilOLD <-> ( U e. CBan /\ U e. CPreHilOLD ) ) $=
    ( ccbn ccphlo chlo df-hlo elin2 ) ABCDEF $.

  $( Every complex Hilbert space is a complex Banach space.  (Contributed by
     Steve Rodriguez, 28-Apr-2007.)  (New usage is discouraged.) $)
  hlobn $p |- ( U e. CHilOLD -> U e. CBan ) $=
    ( chlo wcel ccbn ccphlo ishlo simplbi ) ABCADCAECAFG $.

  $( Every complex Hilbert space is an inner product space (also called a
     pre-Hilbert space).  (Contributed by NM, 28-Apr-2007.)
     (New usage is discouraged.) $)
  hlph $p |- ( U e. CHilOLD -> U e. CPreHilOLD ) $=
    ( chlo wcel ccbn ccphlo ishlo simprbi ) ABCADCAECAFG $.

  $( The class of all complex Hilbert spaces is a relation.  (Contributed by
     NM, 17-Mar-2007.)  (New usage is discouraged.) $)
  hlrel $p |- Rel CHilOLD $=
    ( vx chlo ccbn wss wrel cv hlobn ssriv bnrel relss mp2 ) BCDCEBEABCAFGHIBCJ
    K $.

  $( Every complex Hilbert space is a normed complex vector space.
     (Contributed by NM, 17-Mar-2007.)  (New usage is discouraged.) $)
  hlnv $p |- ( U e. CHilOLD -> U e. NrmCVec ) $=
    ( chlo wcel ccbn cnv hlobn bnnv syl ) ABCADCAECAFAGH $.

  ${
    hlnvi.1 $e |- U e. CHilOLD $.
    $( Every complex Hilbert space is a normed complex vector space.
       (Contributed by NM, 6-Jun-2008.)  (New usage is discouraged.) $)
    hlnvi $p |- U e. NrmCVec $=
      ( chlo wcel cnv hlnv ax-mp ) ACDAEDBAFG $.
  $}

  ${
    hlvc.1 $e |- W = ( 1st ` U ) $.
    $( Every complex Hilbert space is a complex vector space.  (Contributed by
       NM, 7-Sep-2007.)  (New usage is discouraged.) $)
    hlvc $p |- ( U e. CHilOLD -> W e. CVecOLD ) $=
      ( chlo wcel cnv cvc hlnv nvvc syl ) ADEAFEBGEAHABCIJ $.
  $}

  ${
    hlcmet.x $e |- X = ( BaseSet ` U ) $.
    hlcmet.8 $e |- D = ( IndMet ` U ) $.
    $( The induced metric on a complex Hilbert space is complete.  (Contributed
       by NM, 8-Sep-2007.)  (New usage is discouraged.) $)
    hlcmet $p |- ( U e. CHilOLD -> D e. ( CMet ` X ) ) $=
      ( chlo wcel ccbn cms cfv hlobn cbncms syl ) BFGBHGACIJGBKABCDELM $.

    $( The induced metric on a complex Hilbert space.  (Contributed by NM,
       7-Sep-2007.)  (New usage is discouraged.) $)
    hlmet $p |- ( U e. CHilOLD -> D e. ( Met ` X ) ) $=
      ( chlo wcel cms cfv cme hlcmet cmetmet syl ) BFGACHIGACJIGABCDEKACLM $.
  $}

  ${
    hlpar2.1 $e |- X = ( BaseSet ` U ) $.
    hlpar2.2 $e |- G = ( +v ` U ) $.
    hlpar2.3 $e |- M = ( -v ` U ) $.
    hlpar2.6 $e |- N = ( normCV ` U ) $.
    $( The parallelogram law satified by Hilbert space vectors.  (Contributed
       by Steve Rodriguez, 28-Apr-2007.)  (New usage is discouraged.) $)
    hlpar2 $p |- ( ( U e. CHilOLD /\ A e. X /\ B e. X ) ->
      ( ( ( N ` ( A G B ) ) ^ 2 ) + ( ( N ` ( A M B ) ) ^ 2 ) ) =
        ( 2 x. ( ( ( N ` A ) ^ 2 ) + ( ( N ` B ) ^ 2 ) ) ) ) $=
      ( chlo wcel ccphlo co cfv c2 cexp caddc cmul wceq hlph phpar2 syl3an1 ) C
      LMCNMAGMBGMABDOFPQROABEOFPQROSOQAFPQROBFPQROSOTOUACUBABCDEFGHIJKUCUD $.
  $}

  ${
    hlpar.1 $e |- X = ( BaseSet ` U ) $.
    hlpar.2 $e |- G = ( +v ` U ) $.
    hlpar.4 $e |- S = ( .sOLD ` U ) $.
    hlpar.6 $e |- N = ( normCV ` U ) $.
    $( The parallelogram law satified by Hilbert space vectors.  (Contributed
       by Steve Rodriguez, 28-Apr-2007.)  (New usage is discouraged.) $)
    hlpar $p |- ( ( U e. CHilOLD /\ A e. X /\ B e. X ) ->
      ( ( ( N ` ( A G B ) ) ^ 2 ) + ( ( N ` ( A G ( -u 1 S B ) ) ) ^ 2 ) ) =
        ( 2 x. ( ( ( N ` A ) ^ 2 ) + ( ( N ` B ) ^ 2 ) ) ) ) $=
      ( chlo wcel ccphlo co cfv c2 cexp c1 caddc cneg cmul wceq phpar syl3an1
      hlph ) DLMDNMAGMBGMABEOFPQROASUABCOEOFPQROTOQAFPQROBFPQROTOUBOUCDUFABCDEF
      GHIJKUDUE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Standard axioms for a complex Hilbert space
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    hlex.1 $e |- X = ( BaseSet ` U ) $.
    $( The base set of a Hilbert space is a set.  (Contributed by NM,
       7-Sep-2007.)  (New usage is discouraged.) $)
    hlex $p |- X e. _V $=
      ( cba cfv cvv fvex eqeltri ) BADEFCADGH $.
  $}

  ${
    hladdf.1 $e |- X = ( BaseSet ` U ) $.
    hladdf.2 $e |- G = ( +v ` U ) $.
    $( Mapping for Hilbert space vector addition.  (Contributed by NM,
       7-Sep-2007.)  (New usage is discouraged.) $)
    hladdf $p |- ( U e. CHilOLD -> G : ( X X. X ) --> X ) $=
      ( chlo wcel cnv cxp wf hlnv nvgf syl ) AFGAHGCCICBJAKABCDELM $.

    $( Hilbert space vector addition is commutative.  (Contributed by NM,
       7-Sep-2007.)  (New usage is discouraged.) $)
    hlcom $p |- ( ( U e. CHilOLD /\ A e. X /\ B e. X ) ->
                ( A G B ) = ( B G A ) ) $=
      ( chlo wcel cnv co wceq hlnv nvcom syl3an1 ) CHICJIAEIBEIABDKBADKLCMABCDE
      FGNO $.

    $( Hilbert space vector addition is associative.  (Contributed by NM,
       7-Sep-2007.)  (New usage is discouraged.) $)
    hlass $p |- ( ( U e. CHilOLD /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                   ( ( A G B ) G C ) = ( A G ( B G C ) ) ) $=
      ( chlo wcel cnv w3a co wceq hlnv nvass sylan ) DIJDKJAFJBFJCFJLABEMCEMABC
      EMEMNDOABCDEFGHPQ $.
  $}

  ${
    hl0cl.1 $e |- X = ( BaseSet ` U ) $.
    hl0cl.5 $e |- Z = ( 0vec ` U ) $.
    $( The Hilbert space zero vector.  (Contributed by NM, 7-Sep-2007.)
       (New usage is discouraged.) $)
    hl0cl $p |- ( U e. CHilOLD -> Z e. X ) $=
      ( chlo wcel cnv hlnv nvzcl syl ) AFGAHGCBGAIABCDEJK $.
  $}

  ${
    hladdid.1 $e |- X = ( BaseSet ` U ) $.
    hladdid.2 $e |- G = ( +v ` U ) $.
    hladdid.5 $e |- Z = ( 0vec ` U ) $.
    $( Hilbert space addition with the zero vector.  (Contributed by NM,
       7-Sep-2007.)  (New usage is discouraged.) $)
    hladdid $p |- ( ( U e. CHilOLD /\ A e. X ) -> ( A G Z ) = A ) $=
      ( chlo wcel cnv co wceq hlnv nv0rid sylan ) BIJBKJADJAECLAMBNABCDEFGHOP
      $.
  $}

  ${
    hlmulf.1 $e |- X = ( BaseSet ` U ) $.
    hlmulf.4 $e |- S = ( .sOLD ` U ) $.
    $( Mapping for Hilbert space scalar multiplication.  (Contributed by NM,
       7-Sep-2007.)  (New usage is discouraged.) $)
    hlmulf $p |- ( U e. CHilOLD -> S : ( CC X. X ) --> X ) $=
      ( chlo wcel cnv cc cxp wf hlnv nvsf syl ) BFGBHGICJCAKBLABCDEMN $.

    $( Hilbert space scalar multiplication by one.  (Contributed by NM,
       7-Sep-2007.)  (New usage is discouraged.) $)
    hlmulid $p |- ( ( U e. CHilOLD /\ A e. X ) -> ( 1 S A ) = A ) $=
      ( chlo wcel cnv c1 co wceq hlnv nvsid sylan ) CGHCIHADHJABKALCMABCDEFNO
      $.

    $( Hilbert space scalar multiplication associative law.  (Contributed by
       NM, 7-Sep-2007.)  (New usage is discouraged.) $)
    hlmulass $p |- ( ( U e. CHilOLD /\ ( A e. CC /\ B e. CC /\ C e. X ) ) ->
                   ( ( A x. B ) S C ) = ( A S ( B S C ) ) ) $=
      ( chlo wcel cnv cc w3a cmul co wceq hlnv nvsass sylan ) EIJEKJALJBLJCFJMA
      BNOCDOABCDODOPEQABCDEFGHRS $.
  $}

  ${
    hldi.1 $e |- X = ( BaseSet ` U ) $.
    hldi.2 $e |- G = ( +v ` U ) $.
    hldi.4 $e |- S = ( .sOLD ` U ) $.
    $( Hilbert space scalar multiplication distributive law.  (Contributed by
       NM, 7-Sep-2007.)  (New usage is discouraged.) $)
    hldi $p |- ( ( U e. CHilOLD /\ ( A e. CC /\ B e. X /\ C e. X ) ) ->
                  ( A S ( B G C ) ) = ( ( A S B ) G ( A S C ) ) ) $=
      ( chlo wcel cnv cc w3a co wceq hlnv nvdi sylan ) EKLEMLANLBGLCGLOABCFPDPA
      BDPACDPFPQERABCDEFGHIJST $.

    $( Hilbert space scalar multiplication distributive law.  (Contributed by
       NM, 7-Sep-2007.)  (New usage is discouraged.) $)
    hldir $p |- ( ( U e. CHilOLD /\ ( A e. CC /\ B e. CC /\ C e. X ) ) ->
                  ( ( A + B ) S C ) = ( ( A S C ) G ( B S C ) ) ) $=
      ( chlo wcel cnv cc w3a caddc co wceq hlnv nvdir sylan ) EKLEMLANLBNLCGLOA
      BPQCDQACDQBCDQFQRESABCDEFGHIJTUA $.
  $}

  ${
    hlmul0.1 $e |- X = ( BaseSet ` U ) $.
    hlmul0.4 $e |- S = ( .sOLD ` U ) $.
    hlmul0.5 $e |- Z = ( 0vec ` U ) $.
    $( Hilbert space scalar multiplication by zero.  (Contributed by NM,
       7-Sep-2007.)  (New usage is discouraged.) $)
    hlmul0 $p |- ( ( U e. CHilOLD /\ A e. X ) -> ( 0 S A ) = Z ) $=
      ( chlo wcel cnv cc0 co wceq hlnv nv0 sylan ) CIJCKJADJLABMENCOABCDEFGHPQ
      $.
  $}

  ${
    hlipf.1 $e |- X = ( BaseSet ` U ) $.
    hlipf.7 $e |- P = ( .iOLD ` U ) $.
    $( Mapping for Hilbert space inner product.  (Contributed by NM,
       19-Nov-2007.)  (New usage is discouraged.) $)
    hlipf $p |- ( U e. CHilOLD -> P : ( X X. X ) --> CC ) $=
      ( chlo wcel cnv cxp cc wf hlnv ipf syl ) BFGBHGCCIJAKBLABCDEMN $.

    $( Conjugate law for Hilbert space inner product.  (Contributed by NM,
       8-Sep-2007.)  (New usage is discouraged.) $)
    hlipcj $p |- ( ( U e. CHilOLD /\ A e. X /\ B e. X ) ->
                  ( A P B ) = ( * ` ( B P A ) ) ) $=
      ( chlo wcel w3a co ccj cfv wceq cnv hlnv dipcj syl3an1 3com23 eqcomd ) DH
      IZAEIZBEIZJBACKLMZABCKZUAUCUBUDUENZUADOIUCUBUFDPBACDEFGQRST $.
  $}

  ${
    hlipdir.1 $e |- X = ( BaseSet ` U ) $.
    hlipdir.2 $e |- G = ( +v ` U ) $.
    hlipdir.7 $e |- P = ( .iOLD ` U ) $.
    $( Distributive law for Hilbert space inner product.  (Contributed by NM,
       8-Sep-2007.)  (New usage is discouraged.) $)
    hlipdir $p |- ( ( U e. CHilOLD /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                  ( ( A G B ) P C ) = ( ( A P C ) + ( B P C ) ) ) $=
      ( chlo wcel ccphlo w3a co caddc wceq hlph dipdir sylan ) EKLEMLAGLBGLCGLN
      ABFOCDOACDOBCDOPOQERABCDEFGHIJST $.
  $}

  ${
    hlipass.1 $e |- X = ( BaseSet ` U ) $.
    hlipass.4 $e |- S = ( .sOLD ` U ) $.
    hlipass.7 $e |- P = ( .iOLD ` U ) $.
    $( Associative law for Hilbert space inner product.  (Contributed by NM,
       8-Sep-2007.)  (New usage is discouraged.) $)
    hlipass $p |- ( ( U e. CHilOLD /\ ( A e. CC /\ B e. X /\ C e. X ) ) ->
                  ( ( A S B ) P C ) = ( A x. ( B P C ) ) ) $=
      ( chlo wcel ccphlo cc w3a co cmul wceq hlph dipass sylan ) FKLFMLANLBGLCG
      LOABEPCDPABCDPQPRFSABCDEFGHIJTUA $.
  $}

  ${
    hlipgt0.1 $e |- X = ( BaseSet ` U ) $.
    hlipgt0.5 $e |- Z = ( 0vec ` U ) $.
    hlipgt0.7 $e |- P = ( .iOLD ` U ) $.
    $( The inner product of a Hilbert space vector by itself is positive.
       (Contributed by NM, 8-Sep-2007.)  (New usage is discouraged.) $)
    hlipgt0 $p |- ( ( U e. CHilOLD /\ A e. X /\ A =/= Z ) -> 0 < ( A P A ) ) $=
      ( chlo wcel cnv wne cc0 co clt wbr hlnv cfv 3adant3 wceq cnmcv c2 cexp cr
      w3a eqid nvcl wa nvz biimpd necon3d 3impia sqgt0d ipidsq breqtrrd syl3an1
      ) CIJCKJZADJZAELZMAABNZOPCQUQURUSUEZMACUARZRZUBUCNZUTOVAVCUQURVCUDJUSACVB
      DFVBUFZUGSUQURUSVCMLUQURUHZVCMAEVFVCMTAETACVBDEFGVEUIUJUKULUMUQURUTVDTUSA
      BCVBDFVEHUNSUOUP $.
  $}

  ${
    hlcompl.1 $e |- D = ( IndMet ` U ) $.
    hlcompl.2 $e |- J = ( MetOpen ` D ) $.
    $( Completeness of a Hilbert space.  (Contributed by NM, 8-Sep-2007.)
       (Revised by Mario Carneiro, 9-May-2014.)  (New usage is discouraged.) $)
    hlcompl $p |- ( ( U e. CHilOLD /\ F e. ( Cau ` D ) ) ->
                    F e. dom ( ~~>t ` J ) ) $=
      ( chlo wcel cba cfv cms cca clm cdm eqid hlcmet cmetcau sylan ) BGHABIJZK
      JHCALJHCDMJNHABSSOEPACDSFQR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Examples of complex Hilbert spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    cnhl.6 $e |- U = <. <. + , x. >. , abs >. $.
    $( The set of complex numbers is a complex Hilbert space.  (Contributed by
       Steve Rodriguez, 28-Apr-2007.)  (New usage is discouraged.) $)
    cnchl $p |- U e. CHilOLD $=
      ( chlo wcel ccbn ccphlo cnbn cncph ishlo mpbir2an ) ACDAEDAFDABGABHAIJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subspaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)
  ${
    ssphl.h $e |- H = ( SubSp ` U ) $.
    $( A Banach subspace of an inner product space is a Hilbert space.
       (Contributed by NM, 11-Apr-2008.)  (New usage is discouraged.) $)
    ssphl $p |- ( ( U e. CPreHilOLD /\ W e. H /\ W e. CBan )
        -> W e. CHilOLD ) $=
      ( ccphlo wcel ccbn w3a chlo simp3 sspph 3adant3 ishlo sylanbrc ) AEFZCBFZ
      CGFZHQCEFZCIFOPQJOPRQABCDKLCMN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Self-adjoint operators
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Hellinger-Toeplitz Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d w y F $.  $d w x y z K $.  $d w x y z N $.  $d w z P $.  $d w x y z W $.
    $d w x y z ph $.  $d u v w x y z T $.  $d u v w x y z U $.  $d w x y z X $.
    htth.1 $e |- X = ( BaseSet ` U ) $.
    htth.2 $e |- P = ( .iOLD ` U ) $.
    htth.3 $e |- L = ( U LnOp U ) $.
    htth.4 $e |- B = ( U BLnOp U ) $.
    ${
      htthlem.5 $e |- N = ( normCV ` U ) $.
      htthlem.6 $e |- U e. CHilOLD $.
      htthlem.7 $e |- W = <. <. + , x. >. , abs >. $.
      htthlem.8 $e |- ( ph -> T e. L ) $.
      htthlem.9 $e |- ( ph -> A. x e. X A. y e. X
                        ( x P ( T ` y ) ) = ( ( T ` x ) P y ) ) $.
      htthlem.10 $e |- F = ( z e. X |-> ( w e. X |-> ( w P ( T ` z ) ) ) ) $.
      htthlem.11 $e |- K = ( F " { z e. X | ( N ` z ) <_ 1 } ) $.
      $( Lemma for ~ htth .  The collection ` K ` , which consists of functions
         ` F ( z ) ( w ) = <. w | T ( z ) >. = <. T ( w ) | z >. ` for each
         ` z ` in the unit ball, is a collection of bounded linear functions by
         ~ ipblnfi , so by the Uniform Boundedness theorem ~ ubth , there is a
         uniform bound ` y ` on ` || F ( x ) || ` for all ` x ` in the unit
         ball.  Then ` | T ( x ) | ^ 2 = <. T ( x ) | T ( x ) >. = F ( x ) ( `
         ` T ( x ) ) <_ y | T ( x ) | ` , so ` | T ( x ) | <_ y ` and ` T ` is
         bounded.  (Contributed by NM, 11-Jan-2008.)  (Revised by Mario
         Carneiro, 23-Aug-2014.)  (New usage is discouraged.) $)
      htthlem $p |- ( ph -> T e. B ) $=
        ( wcel cnmoo co cfv cpnf clt wbr cr cv c1 cle wi wral wrex wa cnv hlnvi
        cabs lnof mp3an12 syl ffvelrnda nvcl wceq crab wfun cima cblo cmpt chlo
        wf sylancr ccphlo hlph ax-mp eqid ipblnfi fmptd ffun adantr id syl6eleq
        fvelima syl2an weq fveq2 breq1d elrab oveq2d mpteq2dv hlex mptex fveq1d
        ex fvmpt oveq1 ovex sylan9eqr ad2ant2lr rsp2 impl adantrr eqtrd cmul cc
        fveq2d simpl dipcl mp3an1 mpan ad2antrl remulcld sii cc0 1red nvge0 jca
        abscld simprr lemul2a syl31anc recnd mulid1d breqtrd letrd syld syl2anc
        syl5ibcom wss wb mpbid ad2ant2r mpd expr eqbrtrd sylan2b fveq1 ralrimiv
        rexlimdva breq2 ralbidv rspcev ralrimiva crn imassrn eqsstri frn syl5ss
        ccbn hlobn cnnv cnnvnm ubth simpr sylibr dmmptd eleq2d biimpar funfvima
        cdm sylan syldan syl6eleqr rspcv cnnvba nmblore simplr c2 adantl ipidsq
        resqcl sqge0 absidd sqvald 3eqtrd nmblolbi eqbrtrrd lemul1ad w3a lemul1
        cexp biimprd 3expia expdimp syl21anc mpid 0red blof nmooge0 breq1 leloe
        wo 0re mpjaod com23 ralrimdva reximdva nmobndi mpbird ltpnf isblo mp2an
        sylanbrc ) AHLUGZHIIUHUIZUJZUKULUMZHFUGZUCAUXLUNUGZUXMAUXOBUOZMUJZUPUQU
        MZUXPHUJZMUJZCUOZUQUMZURZBOUSZCUNUTZAEUOZINUHUIZUJZUYAUQUMZEKUSZCUNUTZU
        YEAUXPUYFUJZVDUJZDUOZUQUMZEKUSZDUNUTZBOUSZUYKAUYQBOAUXPOUGZVAZUXTUNUGZU
        YMUXTUQUMZEKUSZUYQUYTIVBUGZUXSOUGZVUAIUAVCZAOOUXPHAUXJOOHVQZUCVUDVUDUXJ
        VUGVUFVUFHILIOOPPRVEVFVGZVHZUXSIMOPTVIVRZUYTVUBEKUYTUYFKUGZUYAJUJZUYFVJ
        ZCUYNMUJZUPUQUMZDOVKZUTZVUBUYTVUKVUQUYTJVLZUYFJVUPVMZUGVUQVUKAVURUYSAOI
        NVNUIZJVQZVURADOEOUYFUYNHUJZGUIZVOZVUTJAUYNOUGVAVVBOUGVVDVUTUGAOOUYNHVU
        HVHEVVBVUTNGIVVDOPQIVPUGZIVSUGUAIVTWAZUBVUTWBZVVDWBWCVGZUEWDZOVUTJWEVGZ
        WFVUKUYFKVUSVUKWGUFWHCUYFVUPJWIWJWTUYTVUMVUBCVUPUYTUYAVUPUGZVAUXPVULUJZ
        VDUJZUXTUQUMZVUMVUBVVKUYTUYAOUGZUYAMUJZUPUQUMZVAZVVNVUOVVQDUYAODCWKZVUN
        VVPUPUQUYNUYAMWLWMWNUYTVVRVAZVVMUXSUYAGUIZVDUJZUXTUQVVTVVLVWAVDVVTVVLUX
        PUYAHUJZGUIZVWAUYSVVOVVLVWDVJAVVQVVOUYSVVLUXPEOUYFVWCGUIZVOZUJVWDVVOUXP
        VULVWFDUYAVVDVWFOJVVSEOVVCVWEVVSVVBVWCUYFGUYNUYAHWLWOWPUEEOVWEIOPWQZWRX
        AWSEUXPVWEVWDOVWFUYFUXPVWCGXBVWFWBUXPVWCGXCXAXDXEUYTVVOVWDVWAVJZVVQAUYS
        VVOVWHAVWHCOUSBOUSUYSVVOVAVWHURUDVWHBCOOXFVGXGXHXIXLVVTVWBUXTVVPXJUIZUX
        TVVTVWAUYTVUEVVOVWAXKUGZVVRVUIVVOVVQXMZVUDVUEVVOVWJVUFUXSUYAGIOPQXNXOWJ
        YDVVTUXTVVPUYTVUAVVRVUJWFZVVOVVPUNUGZUYTVVQVUDVVOVWMVUFUYAIMOPTVIXPXQZX
        RVWLUYTVUEVVOVWBVWIUQUMVVRVUIVWKUXSUYAGIMOPTQVVFXSWJVVTVWIUXTUPXJUIZUXT
        UQVVTVWMUPUNUGVUAXTUXTUQUMZVAZVVQVWIVWOUQUMVWNVVTYAUYTVWQVVRUYTVUAVWPVU
        JUYTVUDVUEVWPVUFVUIUXSIMOPTYBZVRYCWFUYTVVOVVQYEVVPUPUXTYFYGVVTUXTVVTUXT
        VWLYHYIYJYKUUAUUBVUMVVMUYMUXTUQVUMVVLUYLVDUXPVULUYFUUCXLWMYNUUEYLUUDUYP
        VUCDUXTUNUYNUXTVJUYOVUBEKUYNUXTUYMUQUUFUUGUUHYMUUIAKVUTYOZUYRUYKYPZAKJU
        UJZVUTKVUSVXAUFJVUPUUKUULAVVAVXAVUTYOVVIOVUTJUUMVGUUNIUUOUGZNVBUGZVWSVW
        TVVEVXBUAIUUPWANUBUUQZBEKIUYGVDNODCPNUBUURZUYGWBZUUSVFVGYQAUYJUYDCUNAUY
        AUNUGZVAZUYJUYCBOVXHUYSVAUXRUYJUYBVXHUYSUXRUYJUYBURVXHUYSUXRVAZVAZUYJUX
        PJUJZUYGUJZUYAUQUMZUYBVXJVXKKUGUYJVXMURVXJVXKVUSKVXJUXPVUPUGZVXKVUSUGZV
        XJVXIVXNVXHVXIUUTVUOUXRDUXPODBWKZVUNUXQUPUQUYNUXPMWLWMWNUVAAUYSVXNVXOUR
        ZVXGUXRAUYSUXPJUVFZUGZVXQAVXSUYSAVXROUXPADJOVVDVUTUEVVHUVBUVCUVDAVURVXS
        VXQVVJVUPUXPJUVEUVGUVHYRYSUFUVIUYIVXMEVXKKUYFVXKVJUYHVXLUYAUQUYFVXKUYGW
        LWMUVJVGVXHUYSVXMUYBURUXRVXHUYSVXMUYBVXHUYSVXMVAZVAZXTUXTULUMZUYBXTUXTV
        JZVYAVYBUXTUXTXJUIZUYAUXTXJUIZUQUMZUYBVYAVYDVXLUXTXJUIZVYEVYAUXTUXTAUYS
        VUAVXGVXMVUJYRZVYHXRVYAVXLUXTAUYSVXLUNUGZVXGVXMUYTVXKVUTUGZVYIAOVUTUXPJ
        VVIVHZVUDVXCVYJVYIVUFVXDVUTVXKIUYGNOXKPNUBUVKZVXFVVGUVLVFVGYRZVYHXRVYAU
        YAUXTAVXGVXTUVMZVYHXRVYAUXSVXKUJZVDUJZVYDVYGUQVYAVYPUXTUVNUWGUIZVDUJZVY
        QVYDVYAVYOVYQVDVYAVYOUXSUXSGUIZVYQAUYSVYOVYSVJVXGVXMUYTVYOUXSEOUYFUXSGU
        IZVOZUJZVYSUYTUXSVXKWUAUYSVXKWUAVJADUXPVVDWUAOJVXPEOVVCVYTVXPVVBUXSUYFG
        UYNUXPHWLWOWPUEEOVYTVWGWRXAUVOWSUYTVUEWUBVYSVJVUIEUXSVYTVYSOWUAUYFUXSUX
        SGXBWUAWBUXSUXSGXCXAVGXIYRVYAVUDVUEVYSVYQVJVUFAUYSVUEVXGVXMVUIYRZUXSGIM
        OPTQUVPVRXIXLVYAVUAVYRVYQVJVYHVUAVYQUXTUVQUXTUVRUVSVGVYAUXTVYAUXTVYHYHU
        VTUWAVYAVYJVUEVYPVYGUQUMAUYSVYJVXGVXMVYKYRWUCUXSVUTVXKIMVDUYGNOPTVXEVXF
        VVGVUFVXDUWBYMUWCVYAVXLUYAUXTVYMVYNVYHVYAVUDVUEVWPVUFWUCVWRVRZVXHUYSVXM
        YEZUWDYKVYAVUAVXGVUAVYBVYFUYBURZURVYHVYNVYHVUAVXGVAVUAVYBWUFVUAVXGVUAVY
        BVAZWUFVUAVXGWUGUWEUYBVYFUXTUYAUXTUWFUWHUWIUWJUWKUWLVYAXTUYAUQUMVYCUYBV
        YAXTVXLUYAVYAUWMVYMVYNVYAOXKVXKVQZXTVXLUQUMZAUYSWUHVXGVXMUYTVYJWUHVYKVU
        DVXCVYJWUHVUFVXDVUTVXKINOXKPVYLVVGUWNVFVGYRVUDVXCWUHWUIVUFVXDVXKIUYGNOX
        KPVYLVXFUWOVFVGWUEYKXTUXTUYAUQUWPYNVYAVWPVYBVYCUWRZWUDVYAXTUNUGVUAVWPWU
        JYPUWSVYHXTUXTUWQVRYQUWTYTXHYLYTUXAUXBUXCYSAVUGUXOUYEYPVUHBHIMMUXKIOOCP
        PTTUXKWBZVUFVUFUXDVGUXEUXLUXFVGVUDVUDUXNUXJUXMVAYPVUFVUFFHILUXKIWUKRSUX
        GUXHUXI $.
    $}

    $( Hellinger-Toeplitz Theorem: any self-adjoint linear operator defined on
       all of Hilbert space is bounded.  Theorem 10.1-1 of [Kreyszig] p. 525.
       Discovered by E. Hellinger and O. Toeplitz in 1910, "it aroused both
       admiration and puzzlement since the theorem establishes a relation
       between properties of two different kinds, namely, the properties of
       being defined everywhere and being bounded."  (Contributed by NM,
       11-Jan-2008.)  (Revised by Mario Carneiro, 23-Aug-2014.)
       (New usage is discouraged.) $)
    htth $p |- ( ( U e. CHilOLD /\ T e. L /\
        A. x e. X A. y e. X ( x P ( T ` y ) ) = ( ( T ` x ) P y ) ) ->
      T e. B ) $=
      ( vw cv cfv co wceq wral fveq2 eqid vu vv vz chlo wcel wa caddc cmul cabs
      wi cop cif clno cdip cba cblo oveq12 anidms syl5eq eleq2d oveqd raleqbidv
      eqeq12d anbi12d imbi12d cmpt cnmcv c1 cle wbr crab cima cnchl simpl simpr
      elimel oveq1 oveq1d oveq2d oveq2 cbvral2v cbvmptv mpteq2dv breq1d cbvrabv
      sylib imaeq2i htthlem dedth 3impib ) FUDUEZEGUEZANZBNZEOZDPZWMEOZWNDPZQZB
      HRZAHRZECUEZWKWLXAUFZXBUJEWKFUGUHUKUIUKZULZXEUMPZUEZWMWOXEUNOZPZWQWNXHPZQ
      ZBXEUOOZRZAXLRZUFZEXEXEUPPZUEZUJFXDFXEQZXCXOXBXQXRWLXGXAXNXRGXFEXRGFFUMPZ
      XFKXRXSXFQFXEFXEUMUQURUSUTXRWTXMAHXLXRHFUOOXLIFXEUOSUSZXRWSXKBHXLXTXRWPXI
      WRXJXRDXHWMWOXRDFUNOXHJFXEUNSUSZVAXRDXHWQWNYAVAVCVBVBVDXRCXPEXRCFFUPPZXPL
      XRYBXPQFXEFXEUPUQURUSUTVEXOUAUBUCMXPXHEXEAXLBXLWNWQXHPZVFZVFZYEWMXEVGOZOZ
      VHVIVJZAXLVKZVLXFYFXDXLXLTXHTXFTXPTYFTFXDUDXDXDTZVMVPYJXGXNVNXOXNUANZUBNZ
      EOZXHPZYKEOZYLXHPZQZUBXLRUAXLRXGXNVOXKYQYKWOXHPZYOWNXHPZQABUAUBXLXLWMYKQZ
      XIYRXJYSWMYKWOXHVQYTWQYOWNXHWMYKESVRVCWNYLQZYRYNYSYPUUAWOYMYKXHWNYLESVSWN
      YLYOXHVTVCWAWFAUCXLYDMXLMNZUCNZEOZXHPZVFZWMUUCQZYDMXLUUBWQXHPZVFUUFBMXLYC
      UUHWNUUBWQXHVQWBUUGMXLUUHUUEUUGWQUUDUUBXHWMUUCESVSWCUSWBYIUUCYFOZVHVIVJZU
      CXLVKYEYHUUJAUCXLUUGYGUUIVHVIWMUUCYFSWDWEWGWHWIWJ $.
  $}
$( End $[ set-deprec.mm $] $)


$( Begin $[ set-typeset.mm $] $)
$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Appendix:  Typesetting definitions for the tokens in this file
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

$( $t

/* The '$ t' (no space between '$' and 't') token indicates the beginning
    of the typesetting definition section, embedded in a Metamath
    comment.  There may only be one per source file, and the typesetting
    section ends with the end of the Metamath comment.  The typesetting
    section uses C-style comment delimiters.  TODO:  Allow multiple
    typesetting comments */

/* These are the LaTeX and HTML definitions in the order the tokens are
    introduced in $c or $v statements.  See HELP TEX or HELP HTML in the
    Metamath program. */

/* Note that the ALT= fields in htmldefs should be preceded by a space.  This
   ensures that a screen copy from the web page will have a space between
   symbols. */
/* Math font table with XITS and LaTeX defs:
   http://meeting.contextgarden.net/2011/talks/day3_05_ulrik_opentype/Samples/
           unimath-symbols.pdf */


/******* Web page format settings *******/

/* Custom CSS for Unicode fonts */
/* The woff font file was obtained from
   http://fred-wang.github.io/MathFonts/XITS/xits-math.woff 28-Aug-2015 */
htmlcss '<STYLE TYPE="text/css">\n' +
    '<!--\n' +
    '  .setvar { color: red; }\n' +
    '  .wff { color: blue; }\n' +
    '  .class { color: #C3C; }\n' +
    '  .symvar { border-bottom:1px dotted;color:#C3C}\n' +
    '  .typecode { color: gray }\n' +
    '  .hidden { color: gray }\n' +
    '  @font-face {\n' +
    '    font-family: XITSMath-Regular;\n' +
    '    src: url(xits-math.woff);\n' +
    '  }\n' +
    '  .math { font-family: XITSMath-Regular }\n' +
    '-->\n' +
    '</STYLE>\n' +
    '<LINK href="mmset.css" title="mmset"\n' +
    '    rel="stylesheet" type="text/css">\n' +
    '<LINK href="mmsetalt.css" title="mmsetalt"\n' +
    '    rel="alternate stylesheet" type="text/css">';

/* Tag(s) for the main SPAN surrounding all Unicode math */
htmlfont 'CLASS=math';

/* Page title, home page link */
htmltitle "Metamath Proof Explorer";
htmlhome '<A HREF="mmset.html"><FONT SIZE=-2 FACE=sans-serif>' +
    '<IMG SRC="mm.gif" BORDER=0 ALT='  +
    '"Home" HEIGHT=32 WIDTH=32 ALIGN=MIDDLE STYLE="margin-bottom:0px">' +
    'Home</FONT></A>';
/* Optional file where bibliographic references are kept */
/* If specified, e.g. "mmset.html", Metamath will hyperlink all strings of the
   form "[rrr]" (where "rrr" has no whitespace) to "mmset.html#rrr" */
/* A warning will be given if the file "mmset.html" with the bibliographical
   references is not present.  It is read in order to check existence of
   the references. */
htmlbibliography "mmset.html";

/* Page title, home page link */
/* These are the variables used for the Hilbert Space extension to
   set.mm. */
exthtmltitle "Hilbert Space Explorer";
exthtmlhome '<A HREF="mmhil.html"><FONT SIZE=-2 FACE=sans-serif>' +
    '<IMG SRC="atomic.gif" BORDER=0 ALT='  +
    '"Home" HEIGHT=32 WIDTH=32 ALIGN=MIDDLE STYLE="margin-bottom:0px">' +
    'Home</FONT></A>';
/* The variable "exthtmllabel" means that all states including
   and after this label should use the "ext..." variables. */
exthtmllabel "chil";
/* A warning will be given if the file with the bibliographical references
   is not present. */
exthtmlbibliography "mmhil.html";

/* Variable color key at the bottom of each proof table */
htmlvarcolor '<SPAN CLASS=wff STYLE="color:blue;font-style:normal">wff</SPAN> '
    + '<SPAN CLASS=setvar STYLE="color:red;font-style:normal">setvar</SPAN> '
    + '<SPAN CLASS=class STYLE="color:#C3C;font-style:normal">class</SPAN>';

/* GIF and Unicode HTML directories - these are used for the GIF version to
   crosslink to the Unicode version and vice-versa */
htmldir "../mpegif/";
althtmldir "../mpeuni/";

/* Optional link(s) to other versions of the theorem page.  A "*" is replaced
   with the label of the current theorem.  If you need a literal "*" as part
   of the URL, use the alternate URL encoding "%2A". */
htmlexturl '<A HREF="http://metamath.tirix.org/*.html">'
    + 'Structured version</A>&nbsp;&nbsp; '
    + '<A HREF="https://expln.github.io/metamath/asrt/*.html">'
    + 'Visualization version</A>&nbsp;&nbsp; ';


/******* Symbol definitions *******/

htmldef "(" as "<IMG SRC='lp.gif' WIDTH=5 HEIGHT=19 ALT=' (' TITLE='('>";
  althtmldef "(" as "(";
  latexdef "(" as "(";
htmldef ")" as "<IMG SRC='rp.gif' WIDTH=5 HEIGHT=19 ALT=' )' TITLE=')'>";
  althtmldef ")" as ")";
  latexdef ")" as ")";
htmldef "->" as
    " <IMG SRC='to.gif' WIDTH=15 HEIGHT=19 ALT=' -&gt;' TITLE='-&gt;'> ";
  althtmldef "->" as " &rarr; ";
  latexdef "->" as " \rightarrow ";
htmldef "&" as
    " <IMG SRC='amp.gif' WIDTH=12 HEIGHT=19 ALT='&amp;'> ";
  althtmldef "&" as " &amp; ";
  latexdef "&" as " & ";
htmldef "=>" as
  " <IMG SRC='bigto.gif' WIDTH=15 HEIGHT=19 ALT='=&gt;'> ";
  althtmldef "=>" as " &rArr; ";
  latexdef "=>" as " \Rightarrow ";
htmldef "-." as
    "<IMG SRC='lnot.gif' WIDTH=10 HEIGHT=19 ALT=' -.' TITLE='-.'> ";
  althtmldef "-." as '&not; ';
  latexdef "-." as "\lnot";
htmldef "wff" as
    "<IMG SRC='_wff.gif' WIDTH=24 HEIGHT=19 ALT=' wff' TITLE='wff'> ";
  althtmldef "wff" as
    '<SPAN CLASS=typecode STYLE="color:gray">wff </SPAN>'; /* was #00CC00 */
  latexdef "wff" as "{\rm wff}";
htmldef "|-" as
    "<IMG SRC='_vdash.gif' WIDTH=10 HEIGHT=19 ALT=' |-' TITLE='|-'> ";
  althtmldef "|-" as
    '<SPAN CLASS=hidden STYLE="color:gray">&#8866; </SPAN>'; /* &vdash; */
    /* Without sans-serif, way too big in FF3 */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "|-" as "\vdash";
htmldef "ph" as
    "<IMG SRC='_varphi.gif' WIDTH=11 HEIGHT=19 ALT=' ph' TITLE='ph'>";
  /* althtmldef "ph" as '<FONT COLOR="#0000FF">&#x1D711;</SPAN>'; */
  althtmldef "ph" as '<SPAN CLASS=wff STYLE="color:blue">&#x1D711;</SPAN>';
  latexdef "ph" as "\varphi";
htmldef "ps" as "<IMG SRC='_psi.gif' WIDTH=12 HEIGHT=19 ALT=' ps' TITLE='ps'>";
  althtmldef "ps" as '<SPAN CLASS=wff STYLE="color:blue">&#x1D713;</SPAN>';
  latexdef "ps" as "\psi";
htmldef "ch" as "<IMG SRC='_chi.gif' WIDTH=12 HEIGHT=19 ALT=' ch' TITLE='ch'>";
  althtmldef "ch" as '<SPAN CLASS=wff STYLE="color:blue">&#x1D712;</SPAN>';
  latexdef "ch" as "\chi";
htmldef "th" as
    "<IMG SRC='_theta.gif' WIDTH=8 HEIGHT=19 ALT=' th' TITLE='th'>";
  althtmldef "th" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D703;</SPAN>';
  latexdef "th" as "\theta";
htmldef "ta" as "<IMG SRC='_tau.gif' WIDTH=10 HEIGHT=19 ALT=' ta' TITLE='ta'>";
  althtmldef "ta" as '<SPAN CLASS=wff STYLE="color:blue">&#x1D70F;</SPAN>';
  latexdef "ta" as "\tau";
htmldef "et" as "<IMG SRC='_eta.gif' WIDTH=9 HEIGHT=19 ALT=' et' TITLE='et'>";
  althtmldef "et" as '<SPAN CLASS=wff STYLE="color:blue">&#x1D702;</SPAN>';
  latexdef "et" as "\eta";
htmldef "ze" as "<IMG SRC='_zeta.gif' WIDTH=9 HEIGHT=19 ALT=' ze' TITLE='ze'>";
  althtmldef "ze" as '<SPAN CLASS=wff STYLE="color:blue">&#x1D701;</SPAN>';
  latexdef "ze" as "\zeta";
htmldef "si" as
    "<IMG SRC='_sigma.gif' WIDTH=10 HEIGHT=19 ALT=' si' TITLE='si'>";
  althtmldef "si" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D70E;</SPAN>';
  latexdef "si" as "\sigma";
htmldef "rh" as "<IMG SRC='_rho.gif' WIDTH=9 HEIGHT=19 ALT=' rh' TITLE='rh'>";
  althtmldef "rh" as '<SPAN CLASS=wff STYLE="color:blue">&#x1D70C;</SPAN>';
  latexdef "rh" as "\rho";
htmldef "mu" as "<IMG SRC='_mu.gif' WIDTH=10 HEIGHT=19 ALT=' mu' TITLE='mu'>";
  althtmldef "mu" as '<SPAN CLASS=wff STYLE="color:blue">&#x1D707;</SPAN>';
  latexdef "mu" as "\mu";
htmldef "la" as
    "<IMG SRC='_lambda.gif' WIDTH=9 HEIGHT=19 ALT=' la' TITLE='la'>";
  althtmldef "la" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D706;</SPAN>';
  latexdef "la" as "\lambda";
htmldef "ka" as
    "<IMG SRC='_kappa.gif' WIDTH=9 HEIGHT=19 ALT=' ka' TITLE='ka'>";
  althtmldef "ka" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D705;</SPAN>';
  latexdef "ka" as "\kappa";
htmldef "<->" as " <IMG SRC='leftrightarrow.gif' WIDTH=15 HEIGHT=19 " +
    "ALT=' &lt;-&gt;' TITLE='&lt;-&gt;'> ";
  althtmldef "<->" as ' &harr; ';
  latexdef "<->" as "\leftrightarrow";
htmldef "\/" as
     " <IMG SRC='vee.gif' WIDTH=11 HEIGHT=19 ALT=' \/' TITLE='\/'> ";
  althtmldef "\/" as ' &or; ' ;
    /* althtmldef "\/" as ' <FONT FACE=sans-serif>&#8897;</FONT> ' ; */
    /* was &or; - changed to match font of &and; replacement */
    /* Changed back 6-Mar-2012 NM */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "\/" as "\vee";
htmldef "/\" as
    " <IMG SRC='wedge.gif' WIDTH=11 HEIGHT=19 ALT=' /\' TITLE='/\'> ";
  althtmldef "/\" as ' &and; ';
    /* althtmldef "/\" as ' <FONT FACE=sans-serif>&#8896;</FONT> '; */
    /* was &and; which is circle in Mozilla on WinXP Pro (but not Home) */
    /* Changed back 6-Mar-2012 NM */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "/\" as "\wedge";
htmldef "-/\" as
    " <IMG SRC='barwedge.gif' WIDTH=9 HEIGHT=19 ALT=' -/\' TITLE='-/\'> ";
  althtmldef "-/\" as ' &#8892; ';
    /*althtmldef "-/\" as " &#8892; "; */ /* too-high font bug in FF */
    /* barwedge, U022BC, alias ISOAMSB barwed, ['nand'] */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "-/\" as "\barwedge";
htmldef "\/_" as
    " <IMG SRC='veebar.gif' WIDTH=9 HEIGHT=19 ALT=' \/_' TITLE='\/_'> ";
  althtmldef "\/_" as " &#8891; ";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "\/_" as "\veebar";
htmldef "T." as
    " <IMG SRC='top.gif' WIDTH=11 HEIGHT=19 ALT='T.' TITLE='T.'> ";
  althtmldef "T." as '&#x22A4;';
  latexdef "T." as "\top";
htmldef "F." as
    " <IMG SRC='perp.gif' WIDTH=11 HEIGHT=19 ALT='F.' TITLE='F.'> ";
  althtmldef "F." as '&perp;';
  latexdef "F." as "\bot";
htmldef "hadd" as "hadd";
  althtmldef "hadd" as "hadd";
  latexdef "hadd" as "\mbox{hadd}";
htmldef "cadd" as "cadd";
  althtmldef "cadd" as "cadd";
  latexdef "cadd" as "\mbox{cadd}";
htmldef "A." as
    "<IMG SRC='forall.gif' WIDTH=10 HEIGHT=19 ALT=' A.' TITLE='A.'>";
  althtmldef "A." as '&forall;'; /* &#8704; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "A." as "\forall";
htmldef "setvar" as
    "<IMG SRC='_setvar.gif' WIDTH=40 HEIGHT=19 ALT=' setvar' TITLE='setvar'> ";
  althtmldef
    "setvar" as '<SPAN CLASS=typecode STYLE="color:gray">setvar </SPAN>';
  latexdef "setvar" as "{\rm setvar}";
htmldef "x" as "<IMG SRC='_x.gif' WIDTH=10 HEIGHT=19 ALT=' x' TITLE='x'>";
  /* http://www.unicode.org/charts/PDF/U1D400.pdf has math italic Unicode */
  althtmldef "x" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D465;</SPAN>';
  latexdef "x" as "x";
htmldef "y" as "<IMG SRC='_y.gif' WIDTH=9 HEIGHT=19 ALT=' y' TITLE='y'>";
  althtmldef "y" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D466;</SPAN>';
  latexdef "y" as "y";
htmldef "z" as "<IMG SRC='_z.gif' WIDTH=9 HEIGHT=19 ALT=' z' TITLE='z'>";
  althtmldef "z" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D467;</SPAN>';
  latexdef "z" as "z";
htmldef "w" as "<IMG SRC='_w.gif' WIDTH=12 HEIGHT=19 ALT=' w' TITLE='w'>";
  althtmldef "w" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D464;</SPAN>';
  latexdef "w" as "w";
htmldef "v" as "<IMG SRC='_v.gif' WIDTH=9 HEIGHT=19 ALT=' v' TITLE='v'>";
  althtmldef "v" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D463;</SPAN>';
  latexdef "v" as "v";
htmldef "u" as "<IMG SRC='_u.gif' WIDTH=10 HEIGHT=19 ALT=' u' TITLE='u'>";
  althtmldef "u" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D462;</SPAN>';
  latexdef "u" as "u";
htmldef "t" as "<IMG SRC='_t.gif' WIDTH=7 HEIGHT=19 ALT=' t' TITLE='t'>";
  althtmldef "t" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D461;</SPAN>';
  latexdef "t" as "t";
htmldef "E." as
    "<IMG SRC='exists.gif' WIDTH=9 HEIGHT=19 ALT=' E.' TITLE='E.'>";
  althtmldef "E." as '&exist;'; /* &#8707; */
    /* Without sans-serif, bad in Opera and way too big in FF3 */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "E." as "\exists";
htmldef "F/" as
    "<IMG SRC='finv.gif' WIDTH=9 HEIGHT=19 ALT=' F/' TITLE='F/'>";
  althtmldef "F/" as "&#8498;";
  latexdef "F/" as "\Finv";
htmldef "nfOLD" as
    "<IMG SRC='finv.gif' WIDTH=9 HEIGHT=19 ALT=' F/' TITLE='F/'>";
  althtmldef "nfOLD" as "&#8498;";
  latexdef "nfOLD" as "\Finv";
htmldef "class" as
    "<IMG SRC='_class.gif' WIDTH=32 HEIGHT=19 ALT=' class' TITLE='class'> ";
  althtmldef "class" as
    '<SPAN CLASS=typecode STYLE="color:gray">class </SPAN>';
  latexdef "class" as "{\rm class}";
htmldef "=" as " <IMG SRC='eq.gif' WIDTH=12 HEIGHT=19 ALT=' =' TITLE='='> ";
  althtmldef "=" as ' = '; /* &equals; */
  latexdef "=" as "=";
htmldef "e." as " <IMG SRC='in.gif' WIDTH=10 HEIGHT=19 ALT=' e.' TITLE='e.'> ";
  althtmldef "e." as ' &isin; ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "e." as "\in";
htmldef "wl-el" as
    " <IMG SRC='in.gif' WIDTH=10 HEIGHT=19 ALT=' e.' TITLE='e.'> ";
  althtmldef "wl-el" as ' &isin; ';
  latexdef "wl-el" as "\in";
htmldef "wl-el2" as
    " <IMG SRC='in.gif' WIDTH=10 HEIGHT=19 ALT=' e.' TITLE='e.'> ";
  althtmldef "wl-el2" as ' &isin; ';
  latexdef "wl-el2" as "\in";
htmldef "[" as "<IMG SRC='lbrack.gif' WIDTH=5 HEIGHT=19 ALT=' [' TITLE='['>";
  althtmldef "[" as '['; /* &lsqb; */
  latexdef "[" as "[";
htmldef "/" as
    " <IMG SRC='solidus.gif' WIDTH=6 HEIGHT=19 ALT=' /' TITLE='/'> ";
  althtmldef "/" as ' / '; /* &sol; */
  latexdef "/" as "/";
htmldef "]" as "<IMG SRC='rbrack.gif' WIDTH=5 HEIGHT=19 ALT=' ]' TITLE=']'>";
  althtmldef "]" as ']'; /* &rsqb; */
  latexdef "]" as "]";
htmldef "E!" as "<IMG SRC='_e1.gif' WIDTH=12 HEIGHT=19 ALT=' E!' TITLE='E!'>";
  althtmldef "E!" as '&exist;!';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "E!" as "\exists{!}";
htmldef "E*" as "<IMG SRC='_em1.gif' WIDTH=15 HEIGHT=19 ALT=' E*' TITLE='E*'>";
  althtmldef "E*" as '&exist;*';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "E*" as "\exists^\ast";
htmldef "{" as "<IMG SRC='lbrace.gif' WIDTH=6 HEIGHT=19 ALT=' {' TITLE='{'>";
  althtmldef "{" as '{'; /* &lcub; */
  latexdef "{" as "\{";
htmldef "|" as " <IMG SRC='vert.gif' WIDTH=3 HEIGHT=19 ALT=' |' TITLE='|'> ";
  althtmldef "|" as ' &#8739; '; /* &vertbar; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "|" as "|";
htmldef "}" as "<IMG SRC='rbrace.gif' WIDTH=6 HEIGHT=19 ALT=' }' TITLE='}'>";
  althtmldef "}" as '}'; /* &rcub; */
  latexdef "}" as "\}";
htmldef "F/_" as
    "<IMG SRC='_finvbar.gif' WIDTH=9 HEIGHT=19 ALT=' F/_' TITLE='F/_'>";
  althtmldef "F/_" as "<U>&#8498;</U>";
  latexdef "F/_" as "\underline{\Finv}";
htmldef "CondEq" as "CondEq";
  althtmldef "CondEq" as "CondEq";
  latexdef "CondEq" as "\mbox{CondEq}";
htmldef "./\" as
    " <IMG SRC='_.wedge.gif' WIDTH=11 HEIGHT=19 ALT=' ./\' TITLE='./\'> ";
  althtmldef "./\" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&and;</SPAN> ';
  latexdef "./\" as "\wedge";
htmldef ".\/" as
    " <IMG SRC='_.vee.gif' WIDTH=11 HEIGHT=19 ALT=' .\/' TITLE='.\/'> ";
  althtmldef ".\/" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&or;</SPAN> ';
  latexdef ".\/" as "\vee";
htmldef ".<_" as
    " <IMG SRC='_.le.gif' WIDTH=11 HEIGHT=19 ALT=' .&lt;_' TITLE='.&lt;_'> ";
  althtmldef ".<_" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&le;</SPAN> ';
  latexdef ".<_" as "\le";
htmldef ".<" as     /* Symbol as variable */
    " <IMG SRC='_.lt.gif' WIDTH=11 HEIGHT=19 ALT=' .&lt;' TITLE='.&lt;'> ";
  althtmldef ".<" as
    /* This is how to put a dotted box around the symbol: */
    /* border means box around symbol; border-bottom underlines symbol */
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&lt;</SPAN> ';
    /* TODO: can this STYLE sequence be done with a CLASS? */
    /* Move the underline down 3px so it isn't too close to symbol */
    /*
    ' <SPAN STYLE="vertical-align:-3px">' +
    '<SPAN CLASS=symvar STYLE="text-decoration:underline dotted;color:#C3C">' +
    '<SPAN STYLE="vertical-align:3px">&lt;</SPAN></SPAN></SPAN> ';
    */
  latexdef ".<" as "<";
htmldef ".+" as
    " <IMG SRC='_.plus.gif' WIDTH=13 HEIGHT=19 ALT=' .+' TITLE='.+'> ";
  althtmldef ".+" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '+</SPAN> ';
  latexdef ".+" as "+";
htmldef ".-" as
    " <IMG SRC='_.minus.gif' WIDTH=11 HEIGHT=19 ALT=' .-' TITLE='.-'> ";
  althtmldef ".-" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&minus;</SPAN> ';
  latexdef ".-" as "-";
htmldef ".X." as
    " <IMG SRC='_.times.gif' WIDTH=9 HEIGHT=19 ALT=' .X.' TITLE='.X.'> ";
  althtmldef ".X." as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&times;</SPAN> ';
  latexdef ".X." as "\times";
htmldef "./" as
    " <IMG SRC='_.solidus.gif' WIDTH=8 HEIGHT=19 ALT=' ./' TITLE='./'> ";
  althtmldef "./" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '/</SPAN> ';
  latexdef "./" as "/";
htmldef ".^" as
    " <IMG SRC='_.uparrow.gif' WIDTH=7 HEIGHT=19 ALT=' .^' TITLE='.^'> ";
  althtmldef ".^" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&uarr;</SPAN> ';
  latexdef ".^" as "\uparrow";
htmldef ".0." as
    " <IMG SRC='_.0.gif' WIDTH=8 HEIGHT=19 ALT=' .0.' TITLE='.0.'> ";
  althtmldef ".0." as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '0</SPAN> ';
  latexdef ".0." as "0";
htmldef ".1." as
    " <IMG SRC='_.1.gif' WIDTH=7 HEIGHT=19 ALT=' .1.' TITLE='.1.'> ";
  althtmldef ".1." as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '1</SPAN> ';
  latexdef ".1." as "1";
htmldef ".||" as
    " <IMG SRC='_.parallel.gif' WIDTH=5 HEIGHT=19 ALT=' .||' TITLE='.||'> ";
  althtmldef ".||" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#8741;</SPAN> ';
  latexdef ".||" as "\parallel";
htmldef ".~" as
    " <IMG SRC='_.sim.gif' WIDTH=13 HEIGHT=19 ALT=' .~' TITLE='.~'> ";
  althtmldef ".~" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x223C;</SPAN> ';
  latexdef ".~" as "\sim";
htmldef "._|_" as
    " <IMG SRC='_.perp.gif' WIDTH=11 HEIGHT=19 ALT=' ._|_' TITLE='._|_'> ";
  althtmldef "._|_" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#8869;</SPAN> ';
  latexdef "._|_" as "\perp";
htmldef ".+^" as
    " <IMG SRC='_.plushat.gif' WIDTH=11 HEIGHT=19 ALT=' .+^' TITLE='.+^'> ";
  althtmldef ".+^" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x2A23;</SPAN> ';       /* &plusacir; */
  latexdef ".+^" as "\hat{+}";
htmldef ".+b" as
    " <IMG SRC='_.plusb.gif' WIDTH=14 HEIGHT=19 ALT=' .+b' TITLE='.+b'> ";
  althtmldef ".+b" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x271A;</SPAN> ';
  latexdef ".+b" as "\boldsymbol{+}";
htmldef ".(+)" as
    " <IMG SRC='_.oplus.gif' WIDTH=13 HEIGHT=19 ALT=' .(+)' TITLE='.(+)'> ";
  althtmldef ".(+)" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x2295;</SPAN> ';
  latexdef ".(+)" as "\oplus";
htmldef ".*" as
    " <IMG SRC='_.ast.gif' WIDTH=7 HEIGHT=19 ALT=' .*' TITLE='.*'> ";
  althtmldef ".*" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&lowast;</SPAN> ';
  latexdef ".*" as "\ast";
/* TODO-AV (provide another gif?) */
htmldef ".o." as
    " <IMG SRC='circ.gif' WIDTH=4 HEIGHT=19 ALT=' .o.' TITLE='.o.'> ";
  althtmldef ".o." as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x26AC;</SPAN> ';
  latexdef ".o." as "\circ";
htmldef ".x." as
    " <IMG SRC='_.cdot.gif' WIDTH=4 HEIGHT=19 ALT=' .x.' TITLE='.x.'> ";
  althtmldef ".x." as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&middot;</SPAN> ';
  latexdef ".x." as "\cdot";
htmldef ".xb" as
    " <IMG SRC='_.bullet.gif' WIDTH=8 HEIGHT=19 ALT=' .xb' TITLE='.xb'> ";
  althtmldef ".xb" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x2219;</SPAN> ';
  latexdef ".xb" as "\bullet";
htmldef ".," as
    " <IMG SRC='_.comma.gif' WIDTH=4 HEIGHT=19 ALT=' .,' TITLE='.,'> ";
  althtmldef ".," as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    ',</SPAN> ';
  latexdef ".," as ",";
htmldef ".(x)" as
    " <IMG SRC='_.otimes.gif' WIDTH=13 HEIGHT=19 ALT=' .(x)' TITLE='.(x)'> ";
  althtmldef ".(x)" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x2297;</SPAN> ';
  latexdef ".(x)" as "\otimes";
htmldef ".0b" as
    " <IMG SRC='_.bf0.gif' WIDTH=9 HEIGHT=19 ALT=' .0b' TITLE='.0b'> ";
  althtmldef ".0b" as
    ' <SPAN CLASS=symvar STYLE="border-bottom:1px dotted;color:#C3C">' +
    '&#x1D7CE</SPAN> ';
  latexdef ".0b" as "\mbox{\boldmath$0$}";
htmldef "A" as "<IMG SRC='_ca.gif' WIDTH=11 HEIGHT=19 ALT=' A' TITLE='A'>";
  althtmldef "A" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D434;</SPAN>';
  latexdef "A" as "A";
htmldef "B" as "<IMG SRC='_cb.gif' WIDTH=12 HEIGHT=19 ALT=' B' TITLE='B'>";
  althtmldef "B" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D435;</SPAN>';
  latexdef "B" as "B";
htmldef "C" as "<IMG SRC='_cc.gif' WIDTH=12 HEIGHT=19 ALT=' C' TITLE='C'>";
  althtmldef "C" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D436;</SPAN>';
  latexdef "C" as "C";
htmldef "D" as "<IMG SRC='_cd.gif' WIDTH=12 HEIGHT=19 ALT=' D' TITLE='D'>";
  althtmldef "D" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D437;</SPAN>';
  latexdef "D" as "D";
htmldef "P" as "<IMG SRC='_cp.gif' WIDTH=12 HEIGHT=19 ALT=' P' TITLE='P'>";
  althtmldef "P" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D443;</SPAN>';
  latexdef "P" as "P";
htmldef "Q" as "<IMG SRC='_cq.gif' WIDTH=12 HEIGHT=19 ALT=' Q' TITLE='Q'>";
  althtmldef "Q" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D444;</SPAN>';
  latexdef "Q" as "Q";
htmldef "R" as "<IMG SRC='_cr.gif' WIDTH=12 HEIGHT=19 ALT=' R' TITLE='R'>";
  althtmldef "R" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D445;</SPAN>';
  latexdef "R" as "R";
htmldef "S" as "<IMG SRC='_cs.gif' WIDTH=11 HEIGHT=19 ALT=' S' TITLE='S'>";
  althtmldef "S" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D446;</SPAN>';
  latexdef "S" as "S";
htmldef "T" as "<IMG SRC='_ct.gif' WIDTH=12 HEIGHT=19 ALT=' T' TITLE='T'>";
  althtmldef "T" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D447;</SPAN>';
  latexdef "T" as "T";
htmldef "U" as "<IMG SRC='_cu.gif' WIDTH=12 HEIGHT=19 ALT=' U' TITLE='U'>";
  althtmldef "U" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D448;</SPAN>';
  latexdef "U" as "U";
htmldef "e" as "<IMG SRC='_e.gif' WIDTH=8 HEIGHT=19 ALT=' e' TITLE='e'>";
  althtmldef "e" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D452;</SPAN>';
  latexdef "e" as "e";
htmldef "f" as "<IMG SRC='_f.gif' WIDTH=9 HEIGHT=19 ALT=' f' TITLE='f'>";
  althtmldef "f" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D453;</SPAN>';
  latexdef "f" as "f";
htmldef "g" as "<IMG SRC='_g.gif' WIDTH=9 HEIGHT=19 ALT=' g' TITLE='g'>";
  althtmldef "g" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D454;</SPAN>';
  latexdef "g" as "g";
htmldef "h" as "<IMG SRC='_h.gif' WIDTH=10 HEIGHT=19 ALT=' h' TITLE='h'>";
  althtmldef "h" as '<SPAN CLASS=setvar STYLE="color:red">&#x210E;</SPAN>';
  latexdef "h" as "h";
htmldef "i" as "<IMG SRC='_i.gif' WIDTH=6 HEIGHT=19 ALT=' i' TITLE='i'>";
  althtmldef "i" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D456;</SPAN>';
  latexdef "i" as "i";
htmldef "j" as "<IMG SRC='_j.gif' WIDTH=7 HEIGHT=19 ALT=' j' TITLE='j'>";
  althtmldef "j" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D457;</SPAN>';
  latexdef "j" as "j";
htmldef "k" as "<IMG SRC='_k.gif' WIDTH=9 HEIGHT=19 ALT=' k' TITLE='k'>";
  althtmldef "k" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D458;</SPAN>';
  latexdef "k" as "k";
htmldef "m" as "<IMG SRC='_m.gif' WIDTH=14 HEIGHT=19 ALT=' m' TITLE='m'>";
  althtmldef "m" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D45A;</SPAN>';
  latexdef "m" as "m";
htmldef "n" as "<IMG SRC='_n.gif' WIDTH=10 HEIGHT=19 ALT=' n' TITLE='n'>";
  althtmldef "n" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D45B;</SPAN>';
  latexdef "n" as "n";
htmldef "o" as "<IMG SRC='_o.gif' WIDTH=8 HEIGHT=19 ALT=' o' TITLE='o'>";
  althtmldef "o" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D45C;</SPAN>';
  latexdef "o" as "o";
htmldef "E" as "<IMG SRC='_ce.gif' WIDTH=13 HEIGHT=19 ALT=' E' TITLE='E'>";
  althtmldef "E" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D438;</SPAN>';
  latexdef "E" as "E";
htmldef "F" as "<IMG SRC='_cf.gif' WIDTH=13 HEIGHT=19 ALT=' F' TITLE='F'>";
  althtmldef "F" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D439;</SPAN>';
  latexdef "F" as "F";
htmldef "G" as "<IMG SRC='_cg.gif' WIDTH=12 HEIGHT=19 ALT=' G' TITLE='G'>";
  althtmldef "G" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43A;</SPAN>';
  latexdef "G" as "G";
htmldef "H" as "<IMG SRC='_ch.gif' WIDTH=14 HEIGHT=19 ALT=' H' TITLE='H'>";
  althtmldef "H" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43B;</SPAN>';
  latexdef "H" as "H";
htmldef "I" as "<IMG SRC='_ci.gif' WIDTH=8 HEIGHT=19 ALT=' I' TITLE='I'>";
  althtmldef "I" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43C;</SPAN>';
  latexdef "I" as "I";
htmldef "J" as "<IMG SRC='_cj.gif' WIDTH=10 HEIGHT=19 ALT=' J' TITLE='J'>";
  althtmldef "J" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43D;</SPAN>';
  latexdef "J" as "J";
htmldef "K" as "<IMG SRC='_ck.gif' WIDTH=14 HEIGHT=19 ALT=' K' TITLE='K'>";
  althtmldef "K" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43E;</SPAN>';
  latexdef "K" as "K";
htmldef "L" as "<IMG SRC='_cl.gif' WIDTH=10 HEIGHT=19 ALT=' L' TITLE='L'>";
  althtmldef "L" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43F;</SPAN>';
  latexdef "L" as "L";
htmldef "M" as "<IMG SRC='_cm.gif' WIDTH=15 HEIGHT=19 ALT=' M' TITLE='M'>";
  althtmldef "M" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D440;</SPAN>';
  latexdef "M" as "M";
htmldef "N" as "<IMG SRC='_cn.gif' WIDTH=14 HEIGHT=19 ALT=' N' TITLE='N'>";
  althtmldef "N" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D441;</SPAN>';
  latexdef "N" as "N";
htmldef "V" as "<IMG SRC='_cv.gif' WIDTH=12 HEIGHT=19 ALT=' V' TITLE='V'>";
  althtmldef "V" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D449;</SPAN>';
  latexdef "V" as "V";
htmldef "W" as "<IMG SRC='_cw.gif' WIDTH=16 HEIGHT=19 ALT=' W' TITLE='W'>";
  althtmldef "W" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44A;</SPAN>';
  latexdef "W" as "W";
htmldef "X" as "<IMG SRC='_cx.gif' WIDTH=13 HEIGHT=19 ALT=' X' TITLE='X'>";
  althtmldef "X" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44B;</SPAN>';
  latexdef "X" as "X";
htmldef "Y" as "<IMG SRC='_cy.gif' WIDTH=12 HEIGHT=19 ALT=' Y' TITLE='Y'>";
  althtmldef "Y" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44C;</SPAN>';
  latexdef "Y" as "Y";
htmldef "Z" as "<IMG SRC='_cz.gif' WIDTH=11 HEIGHT=19 ALT=' Z' TITLE='Z'>";
  althtmldef "Z" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44D;</SPAN>';
  latexdef "Z" as "Z";
htmldef "O" as "<IMG SRC='_co.gif' WIDTH=12 HEIGHT=19 ALT=' O' TITLE='O'>";
  althtmldef "O" as '<SPAN CLASS=class STYLE="color:#C3C">&#x1D442;</SPAN>';
  latexdef "O" as "O";
htmldef "s" as "<IMG SRC='_s.gif' WIDTH=7 HEIGHT=19 ALT=' s' TITLE='s'>";
  althtmldef "s" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D460;</SPAN>';
  latexdef "s" as "s";
htmldef "r" as "<IMG SRC='_r.gif' WIDTH=8 HEIGHT=19 ALT=' r' TITLE='r'>";
  althtmldef "r" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D45F;</SPAN>';
  latexdef "r" as "r";
htmldef "q" as "<IMG SRC='_q.gif' WIDTH=8 HEIGHT=19 ALT=' q' TITLE='q'>";
  althtmldef "q" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D45E;</SPAN>';
  latexdef "q" as "q";
htmldef "p" as "<IMG SRC='_p.gif' WIDTH=10 HEIGHT=19 ALT=' p' TITLE='p'>";
  althtmldef "p" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D45D;</SPAN>';
  latexdef "p" as "p";
htmldef "a" as "<IMG SRC='_a.gif' WIDTH=9 HEIGHT=19 ALT=' a' TITLE='a'>";
  althtmldef "a" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D44E;</SPAN>';
  latexdef "a" as "a";
htmldef "b" as "<IMG SRC='_b.gif' WIDTH=8 HEIGHT=19 ALT=' b' TITLE='b'>";
  althtmldef "b" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D44F;</SPAN>';
  latexdef "b" as "b";
htmldef "c" as "<IMG SRC='_c.gif' WIDTH=7 HEIGHT=19 ALT=' c' TITLE='c'>";
  althtmldef "c" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D450;</SPAN>';
  latexdef "c" as "c";
htmldef "d" as "<IMG SRC='_d.gif' WIDTH=9 HEIGHT=19 ALT=' d' TITLE='d'>";
  althtmldef "d" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D451;</SPAN>';
  latexdef "d" as "d";
htmldef "l" as "<IMG SRC='_l.gif' WIDTH=6 HEIGHT=19 ALT=' l' TITLE='l'>";
  althtmldef "l" as '<SPAN CLASS=setvar STYLE="color:red">&#x1D459;</SPAN>';
  latexdef "l" as "l";
htmldef "=/=" as
    " <IMG SRC='ne.gif' WIDTH=12 HEIGHT=19 ALT=' =/=' TITLE='=/='> ";
  althtmldef "=/=" as ' &ne; ';
  latexdef "=/=" as "\ne";
htmldef "e/" as
    " <IMG SRC='notin.gif' WIDTH=10 HEIGHT=19 ALT=' e/' TITLE='e/'> ";
  althtmldef "e/" as ' &notin; ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "e/" as "\notin";
htmldef "_V" as "<IMG SRC='rmcv.gif' WIDTH=10 HEIGHT=19 ALT=' _V' TITLE='_V'>";
  althtmldef "_V" as 'V';
  latexdef "_V" as "{\rm V}";
htmldef "[." as
    "<IMG SRC='_dlbrack.gif' WIDTH=7 HEIGHT=19 ALT=' [.' TITLE='[.'>";
  /* althtmldef "[." as '&#x298F;'; */   /* corner tick */
  /* althtmldef "[." as '[&#803;'; */  /* combining dot below */
  althtmldef "[." as '<B>[</B>'; /* 6-Aug-2018 nm */
  /* \underaccent is in accents package */
  latexdef "[." as "\underaccent{\dot}{[}";
htmldef "]." as
    "<IMG SRC='_drbrack.gif' WIDTH=6 HEIGHT=19 ALT=' ].' TITLE='].'>";
  /* althtmldef "]." as '&#x298E;'; */   /* corner tick */
  /* althtmldef "]." as ']&#803;'; */  /* combining dot below */
  althtmldef "]." as '<B>]</B>'; /* 6-Aug-2018 nm */
  latexdef "]." as "\underaccent{\dot}{]}";
htmldef "[_" as
    "<IMG SRC='_ulbrack.gif' WIDTH=7 HEIGHT=19 ALT=' [_' TITLE='[_'>";
  althtmldef "[_" as '<B>&#x298B;</B>'; /* left sq brack w underbar */
  latexdef "[_" as "\underline{[}";
htmldef "]_" as
    "<IMG SRC='_urbrack.gif' WIDTH=6 HEIGHT=19 ALT=' ]_' TITLE=']_'>";
  althtmldef "]_" as '<B>&#x298C;</B>'; /* right sq brack w underbar */
  latexdef "]_" as "\underline{]}";
htmldef "\" as
    " <IMG SRC='setminus.gif' WIDTH=8 HEIGHT=19 ALT=' \' TITLE='\'> ";
  althtmldef "\" as ' &#8726; '; /* &setmn; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "\" as "\setminus";
htmldef "u." as
    " <IMG SRC='cup.gif' WIDTH=10 HEIGHT=19 ALT=' u.' TITLE='u.'> ";
  althtmldef "u." as ' &cup; ';
  latexdef "u." as "\cup";
htmldef "i^i" as
    " <IMG SRC='cap.gif' WIDTH=10 HEIGHT=19 ALT=' i^i' TITLE='i^i'> ";
  althtmldef "i^i" as ' &cap; ';
  latexdef "i^i" as "\cap";
htmldef "C_" as
    " <IMG SRC='subseteq.gif' WIDTH=12 HEIGHT=19 ALT=' C_' TITLE='C_'> ";
  althtmldef "C_" as ' &#8838; '; /* &subE; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "C_" as "\subseteq";
    /* 7-Jun-2019 changed gif, unicode and latex def of "C." from subset to
    subsetneq (BJ) */
htmldef "C." as
    " <IMG SRC='subsetneq.gif' WIDTH=12 HEIGHT=19 ALT=' C.' TITLE='C.'> ";
    /* subset.gif */
  althtmldef "C." as ' &#x228a; '; /* &sub; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "C." as "\subsetneq"; /* \subset */
htmldef "(/)" as
    "<IMG SRC='varnothing.gif' WIDTH=11 HEIGHT=19 ALT=' (/)' TITLE='(/)'>";
  althtmldef "(/)" as '&empty;';
    /*althtmldef "(/)" as '&empty;';*/ /* =&#8709 */ /* bad in Opera */
    /*althtmldef "(/)" as '&#8960;';*/
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "(/)" as "\varnothing";
htmldef "if" as "<IMG SRC='_if.gif' WIDTH=11 HEIGHT=19 ALT=' if' TITLE='if'>";
  althtmldef "if" as 'if';
  latexdef "if" as "{\rm if}";
htmldef "," as "<IMG SRC='comma.gif' WIDTH=4 HEIGHT=19 ALT=' ,' TITLE=','> ";
  althtmldef "," as ', ';
  latexdef "," as ",";
htmldef "~P" as "<IMG SRC='scrp.gif' WIDTH=16 HEIGHT=19 ALT=' ~P' TITLE='~P'>";
  /* althtmldef "~P" as '<FONT FACE=sans-serif>&weierp;</FONT>'; */
  /* althtmldef "~P" as '&weierp;'; */ /* 2-Jan-2016 reverted sans-serif */
  /* 14-Jan-2016 script P is now available in upper Unicode */
  /* 4-Aug-2016 NM Put space after ~P, needed for e.g. ncanth where it
     overlapped the _V */
  althtmldef "~P" as '&#119979; ';
  latexdef "~P" as "{\cal P}";
htmldef "<." as
    "<IMG SRC='langle.gif' WIDTH=4 HEIGHT=19 ALT=' &lt;.' TITLE='&lt;.'>";
    /* The Unicode below doesn't always work on Firefox and Chrome on Windows,
       so revert to the image above */
  althtmldef "<." as '&lang;'; /* &#9001; */
    /* 2-Jan-2016 restored Unicode; reverted sans-serif */
  latexdef "<." as "\langle";
htmldef ">." as
    "<IMG SRC='rangle.gif' WIDTH=4 HEIGHT=19 ALT=' &gt;.' TITLE='&gt;.'>";
    /* The Unicode below doesn't always work on Firefox and Chrome on Windows,
       so revert to the image above */
  althtmldef ">." as '&rang;'; /* &#9002; */
    /* 2-Jan-2016 restored Unicode; reverted sans-serif */
  latexdef ">." as "\rangle";
htmldef "U." as
    "<IMG SRC='bigcup.gif' WIDTH=13 HEIGHT=19 ALT=' U.' TITLE='U.'>";
  /* 20-Sep-2017 nm Add space after U. in althtmldef to improve "U. ran" */
  althtmldef "U." as '<FONT SIZE="+1">&cup;</FONT> '; /* &xcup; */
    /* xcup does not render, and #8899 renders as a small bold cup, on
       Mozilla 1.7.3 on Windows XP */
    /*althtmldef "U." as '&#8899;';*/ /* &xcup; */
  latexdef "U." as "\bigcup";
htmldef "|^|" as
    "<IMG SRC='bigcap.gif' WIDTH=13 HEIGHT=19 ALT=' |^|' TITLE='|^|'>";
  /* 20-Sep-2017 nm Add space after |^| in althtmldef to improve "|^| ran" */
  althtmldef "|^|" as '<FONT SIZE="+1">&cap;</FONT> '; /* &xcap; */
    /*althtmldef "|^|" as '&#8898;';*/ /* &xcap; */
  latexdef "|^|" as "\bigcap";
htmldef "U_" as
    "<IMG SRC='_cupbar.gif' WIDTH=13 HEIGHT=19 ALT=' U_' TITLE='U_'>";
  /* 20-Sep-2017 nm Add space after U_ in althtmldef to improve "U_ ran" */
  althtmldef "U_" as '<U><FONT SIZE="+1">&cup;</FONT></U> '; /* &xcup; */
  latexdef "U_" as "\underline{\bigcup}";
htmldef "|^|_" as
    "<IMG SRC='_capbar.gif' WIDTH=13 HEIGHT=19 ALT=' |^|_' TITLE='|^|_'>";
  /* 20-Sep-2017 nm Add space after |^|_ in althtmldef to improve "|^|_ ran" */
  althtmldef "|^|_" as '<U><FONT SIZE="+1">&cap;</FONT></U> '; /* &xcap; */
  latexdef "|^|_" as "\underline{\bigcap}";
htmldef "Disj_" as "<u>Disj</u> ";
  althtmldef "Disj_" as "<u>Disj</u> ";
  latexdef "Disj_" as "\operatorname{\underline{Disj}}";
htmldef "|->" as " <IMG SRC='mapsto.gif' WIDTH=15 HEIGHT=19 ALT=' |-&gt;'" +
    " TITLE='|-&gt;'> ";
  althtmldef "|->" as ' &#8614; ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "|->" as "\mapsto";
htmldef "Tr" as
    "<IMG SRC='_ctr.gif' WIDTH=16 HEIGHT=19 ALT=' Tr' TITLE='Tr'> ";
  althtmldef "Tr" as 'Tr ';
  latexdef "Tr" as "{\rm Tr}";
htmldef "_E" as
    " <IMG SRC='rmce.gif' WIDTH=9 HEIGHT=19 ALT=' _E' TITLE='_E'> ";
  althtmldef "_E" as ' E ';
  latexdef "_E" as "{\rm E}";
htmldef "_I" as
    " <IMG SRC='rmci.gif' WIDTH=4 HEIGHT=19 ALT=' _I' TITLE='_I'> ";
  althtmldef "_I" as ' I ';
  latexdef "_I" as "{\rm I}";
htmldef "Po" as
    " <IMG SRC='_po.gif' WIDTH=16 HEIGHT=19 ALT=' Po' TITLE='Po'> ";
  althtmldef "Po" as ' Po ';
  latexdef "Po" as "{\rm Po}";
htmldef "Or" as
    " <IMG SRC='_or.gif' WIDTH=18 HEIGHT=19 ALT=' Or' TITLE='Or'> ";
  althtmldef "Or" as ' Or ';
  latexdef "Or" as "{\rm Or}";
htmldef "Fr" as
    " <IMG SRC='_fr.gif' WIDTH=15 HEIGHT=19 ALT=' Fr' TITLE='Fr'> ";
  althtmldef "Fr" as ' Fr ';
  latexdef "Fr" as "{\rm Fr}";
htmldef "Se" as ' Se ';
  althtmldef "Se" as ' Se ';
  latexdef "Se" as "{\rm Se}";
htmldef "We" as
    " <IMG SRC='_we.gif' WIDTH=21 HEIGHT=19 ALT=' We' TITLE='We'> ";
  althtmldef "We" as ' We ';
  latexdef "We" as "{\rm We}";
htmldef "Ord" as
    "<IMG SRC='_ord.gif' WIDTH=26 HEIGHT=19 ALT=' Ord' TITLE='Ord'> ";
  althtmldef "Ord" as 'Ord ';
  latexdef "Ord" as "{\rm Ord}";
htmldef "On" as "<IMG SRC='_on.gif' WIDTH=20 HEIGHT=19 ALT=' On' TITLE='On'>";
  althtmldef "On" as 'On';
  latexdef "On" as "{\rm On}";
htmldef "Lim" as
    "<IMG SRC='_lim.gif' WIDTH=26 HEIGHT=19 ALT=' Lim' TITLE='Lim'> ";
  althtmldef "Lim" as 'Lim ';
  latexdef "Lim" as "{\rm Lim}";
htmldef "suc" as
    "<IMG SRC='_suc.gif' WIDTH=22 HEIGHT=19 ALT=' suc' TITLE='suc'> ";
  althtmldef "suc" as 'suc ';
  latexdef "suc" as "{\rm suc}";
htmldef "_om" as
    "<IMG SRC='omega.gif' WIDTH=11 HEIGHT=19 ALT=' om' TITLE='om'>";
  /*althtmldef "_om" as '&omega;';*/
  althtmldef "_om" as '&#x3C9;';  /* upright lowercase Greek omega */
  latexdef "_om" as "{\rm \omega}";
htmldef "X." as
    " <IMG SRC='times.gif' WIDTH=9 HEIGHT=19 ALT=' X.' TITLE='X.'> ";
  althtmldef "X." as ' &times; ';
  latexdef "X." as "\times";
htmldef "`'" as "<IMG SRC='_cnv.gif' WIDTH=10 HEIGHT=19 ALT=" + '"' + " `'" +
    '"' + "TITLE=" + '"' + "`'" + '"' + ">";
  althtmldef "`'" as '<FONT SIZE="-1"><SUP>&#9697;</SUP></FONT>'; /* or 8995 */
  latexdef "`'" as "{}^{\smallsmile}";
htmldef "dom" as
    "<IMG SRC='_dom.gif' WIDTH=26 HEIGHT=19 ALT=' dom' TITLE='dom'> ";
  althtmldef "dom" as 'dom ';
  latexdef "dom" as "{\rm dom}";
htmldef "ran" as
    "<IMG SRC='_ran.gif' WIDTH=22 HEIGHT=19 ALT=' ran' TITLE='ran'> ";
  althtmldef "ran" as 'ran ';
  latexdef "ran" as "{\rm ran}";
htmldef "|`" as " <IMG SRC='restriction.gif' WIDTH=5 HEIGHT=19 ALT=' |`'" +
    " TITLE='|`'> ";
  althtmldef "|`" as ' &#8638; '; /* &uharr; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "|`" as "\restriction";
htmldef '"' as "<IMG SRC='backquote.gif' WIDTH=7 HEIGHT=19 ALT=' " + '"' +
    "' TITLE='" + '"' + "'>";
  althtmldef '"' as ' &ldquo; '; /* &#8220; */
  latexdef '"' as "``";
htmldef "o." as
    " <IMG SRC='circ.gif' WIDTH=8 HEIGHT=19 ALT=' o.' TITLE='o.'> ";
  althtmldef "o." as ' &#8728; ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "o." as "\circ";
htmldef "Rel" as
    "<IMG SRC='_rel.gif' WIDTH=22 HEIGHT=19 ALT=' Rel' TITLE='Rel'> ";
  althtmldef "Rel" as 'Rel ';
  latexdef "Rel" as "{\rm Rel}";
htmldef "Fun" as
    "<IMG SRC='_fun.gif' WIDTH=25 HEIGHT=19 ALT=' Fun' TITLE='Fun'> ";
  althtmldef "Fun" as 'Fun ';
  latexdef "Fun" as "{\rm Fun}";
htmldef "Fn" as
    " <IMG SRC='_fn.gif' WIDTH=17 HEIGHT=19 ALT=' Fn' TITLE='Fn'> ";
  althtmldef "Fn" as ' Fn ';
  latexdef "Fn" as "{\rm Fn}";
htmldef ":" as "<IMG SRC='colon.gif' WIDTH=4 HEIGHT=19 ALT=' :' TITLE=':'>";
  althtmldef ":" as ':';
  latexdef ":" as ":";
htmldef "-->" as
  "<IMG SRC='longrightarrow.gif' WIDTH=23 HEIGHT=19 " +
    "ALT=' --&gt;' TITLE='--&gt;'>";
  /* althtmldef "-->" as '&ndash;&rarr;'; */
  althtmldef "-->" as '&#x27F6;';
    /* &#xAD;&#x2010;&ndash;&mdash;&minus; (possible symbols test) */
  latexdef "-->" as "\longrightarrow";
htmldef "-1-1->" as "<IMG SRC='onetoone.gif' WIDTH=23 HEIGHT=19 " +
    "ALT=' -1-1-&gt;' TITLE='-1-1-&gt;'>";
  althtmldef "-1-1->" as
    '&ndash;<FONT SIZE=-2 FACE=sans-serif>1-1</FONT>&rarr;';
  latexdef "-1-1->" as
    "\raisebox{.5ex}{${\textstyle{\:}_{\mbox{\footnotesize\rm 1" +
    "\tt -\rm 1}}}\atop{\textstyle{" +
    "\longrightarrow}\atop{\textstyle{}^{\mbox{\footnotesize\rm {\ }}}}}$}";
htmldef "-onto->" as
    "<IMG SRC='onto.gif' WIDTH=23 HEIGHT=19 " +
    "ALT=' -onto-&gt;' TITLE='-onto-&gt;'>";
  althtmldef "-onto->" as
    '&ndash;<FONT SIZE=-2 FACE=sans-serif>onto</FONT>&rarr;';
  latexdef "-onto->" as
    "\raisebox{.5ex}{${\textstyle{\:}_{\mbox{\footnotesize\rm {\ }}}}" +
    "\atop{\textstyle{" +
    "\longrightarrow}\atop{\textstyle{}^{\mbox{\footnotesize\rm onto}}}}$}";
htmldef "-1-1-onto->" as "<IMG SRC='onetooneonto.gif' WIDTH=23 HEIGHT=19 " +
    "ALT=' -1-1-onto-&gt;' TITLE='-1-1-onto-&gt;'>";
  althtmldef "-1-1-onto->" as '&ndash;<FONT SIZE=-2 '
    + 'FACE=sans-serif>1-1</FONT>-<FONT SIZE=-2 '
    + 'FACE=sans-serif>onto</FONT>&rarr;';
  latexdef "-1-1-onto->" as
    "\raisebox{.5ex}{${\textstyle{\:}_{\mbox{\footnotesize\rm 1" +
    "\tt -\rm 1}}}\atop{\textstyle{" +
    "\longrightarrow}\atop{\textstyle{}^{\mbox{\footnotesize\rm onto}}}}$}";
htmldef "`" as
    "<IMG SRC='backtick.gif' WIDTH=4 HEIGHT=19 ALT=' ` ' TITLE='` '>";
    /* Above, IE7 _printing_ is corrupted by '`'; use '` ' which works */
  /*althtmldef "`" as ' &lsquo;';*/
  /* I took out the leading space to make e.g. ( log ` A ) look better.
     I added the leading space a long time ago because the quote overlapped
     the character to its left, making it sometimes hidden, but that seems
     to be no longer a problem with the XITS font. - 29-Aug-2017 nm */
  althtmldef "`" as '&lsquo;';
  latexdef "`" as "`";
htmldef "Isom" as
    " <IMG SRC='_isom.gif' WIDTH=30 HEIGHT=19 ALT=' Isom' TITLE='Isom'> ";
  althtmldef "Isom" as ' Isom ';
  latexdef "Isom" as "{\rm Isom}";
htmldef "oF" as
    " <IMG SRC='circ.gif' WIDTH=8 HEIGHT=19 ALT=' o' TITLE='o'>" +
    "<IMG SRC='subf.gif' WIDTH=6 HEIGHT=19 ALT='F' TITLE='F'>";
  althtmldef "oF" as " &#8728;<SUB>&#x1D453;</SUB> ";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "oF" as "\circ_f";
htmldef "oR" as
    " <IMG SRC='circ.gif' WIDTH=8 HEIGHT=19 ALT=' o' TITLE='o'>" +
    "<IMG SRC='subr.gif' WIDTH=5 HEIGHT=19 ALT='R' TITLE='R'>";
  althtmldef "oR" as " &#8728;<SUB>&#x1D45F;</SUB> ";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "oR" as "\circ_r";
htmldef "1st" as
    "<IMG SRC='_1st.gif' WIDTH=15 HEIGHT=19 ALT=' 1st' TITLE='1st'>";
  althtmldef "1st" as '1<SUP>st</SUP> ';
  latexdef "1st" as "1^{\rm st}";
htmldef "2nd" as
    "<IMG SRC='_2nd.gif' WIDTH=21 HEIGHT=19 ALT=' 2nd' TITLE='2nd'>";
  althtmldef "2nd" as '2<SUP>nd</SUP> ';
  latexdef "2nd" as "2^{\rm nd}";
htmldef "supp" as ' supp ';
  althtmldef "supp" as ' supp ';
  latexdef "supp" as "{\rm supp}";
htmldef "tpos" as "tpos ";
  althtmldef "tpos" as 'tpos ';
  latexdef "tpos" as "{\rm tpos}";
htmldef "curry" as "curry ";
  althtmldef "curry" as 'curry ';
  latexdef "curry" as "{\rm curry}";
htmldef "uncurry" as "uncurry ";
  althtmldef "uncurry" as 'uncurry ';
  latexdef "uncurry" as "{\rm uncurry}";
htmldef "[C.]" as
    " [<IMG SRC='subsetneq.gif' WIDTH=12 HEIGHT=19 ALT=' C.' TITLE='C.'>] ";
  althtmldef "[C.]" as " [<B>&#x228a;</B>] ";
  latexdef "[C.]" as "{\rm [C.]}";
/*
htmldef "iota" as
    "<IMG SRC='iota.gif' WIDTH=6 HEIGHT=19 ALT=' iota' TITLE='iota'>";
  althtmldef "iota" as '<FONT SIZE="+1">&iota;</FONT>';
  latexdef "iota" as "\iota";
*/
/* 30-Nov-2013 changed to rotated iota */
htmldef "iota" as
    "<IMG SRC='riota.gif' WIDTH=6 HEIGHT=19 ALT=' iota' TITLE='iota'>";
  althtmldef "iota" as '&#8489;';
  latexdef "iota" as "\mathrm{\rotatebox[origin=C]{180}{$\iota$}}";
htmldef "Smo" as
    "<IMG SRC='_smo.gif' WIDTH=27 HEIGHT=19 ALT=' Smo' TITLE='Smo'> ";
  althtmldef "Smo" as "Smo ";
  latexdef "Smo" as "{\rm Smo}";
htmldef "recs" as "recs";
  althtmldef "recs" as "recs";
  latexdef "recs" as "\mathrm{recs}";
htmldef "rec" as
    "<IMG SRC='_rec.gif' WIDTH=21 HEIGHT=19 ALT=' rec' TITLE='rec'>";
  althtmldef "rec" as 'rec';
  latexdef "rec" as "{\rm rec}";
htmldef "seqom" as "seq<SUB>&#x1D714;</SUB>";
  althtmldef "seqom" as "seq<SUB>&#x1D714;</SUB>";
  latexdef "seqom" as "{\rm seqom}";
htmldef "1o" as "<IMG SRC='_1o.gif' WIDTH=13 HEIGHT=19 ALT=' 1o' TITLE='1o'>";
  althtmldef "1o" as '1<SUB>&#x1D45C;</SUB>';
  latexdef "1o" as "1_o";
htmldef "2o" as "<IMG SRC='_2o.gif' WIDTH=14 HEIGHT=19 ALT=' 2o' TITLE='2o'>";
  althtmldef "2o" as '2<SUB>&#x1D45C;</SUB>';
  latexdef "2o" as "2_o";
htmldef "3o" as "<IMG SRC='_3o.gif' WIDTH=14 HEIGHT=19 ALT=' 3o' TITLE='3o'>";
  althtmldef "3o" as "3<SUB>&#x1D45C;</SUB>"; latexdef "3o" as "3_o";
htmldef "4o" as "<IMG SRC='_4o.gif' WIDTH=15 HEIGHT=19 ALT=' 4o' TITLE='4o'>";
  althtmldef "4o" as "4<SUB>&#x1D45C;</SUB>"; latexdef "4o" as "4_o";
htmldef "+o" as
    " <IMG SRC='_plo.gif' WIDTH=18 HEIGHT=19 ALT=' +o' TITLE='+o'> ";
  althtmldef "+o" as ' +<SUB>&#x1D45C;</SUB> ';
  latexdef "+o" as "+_o";
htmldef ".o" as
    " <IMG SRC='_cdo.gif' WIDTH=10 HEIGHT=19 ALT=' .o' TITLE='.o'> ";
  althtmldef ".o" as ' &middot;<SUB>&#x1D45C;</SUB> ';
  latexdef ".o" as "\cdot_o";
htmldef "^o" as
    " <IMG SRC='_hato.gif' WIDTH=11 HEIGHT=19 ALT=' ^o' TITLE='^o'> ";
  althtmldef "^o" as ' &uarr;<SUB>&#x1D45C;</SUB> ';
  latexdef "^o" as "\uparrow_o"; /*
  latexdef "^o" as "\hat{\ }_o"; */
htmldef "Er" as
    " <IMG SRC='_er.gif' WIDTH=16 HEIGHT=19 ALT=' Er' TITLE='Er'> ";
  althtmldef "Er" as ' Er ';
  latexdef "Er" as "{\rm Er}";
htmldef "/." as
    "<IMG SRC='diagup.gif' WIDTH=14 HEIGHT=19 ALT=' /.' TITLE='/.'>";
  althtmldef "/." as ' <B>/</B> ';
  latexdef "/." as "\diagup";
htmldef "^m" as
    " <IMG SRC='_hatm.gif' WIDTH=15 HEIGHT=19 ALT=' ^m' TITLE='^m'> ";
  althtmldef "^m" as ' &uarr;<SUB>&#x1D45A;</SUB> ';
  latexdef "^m" as "\uparrow_m";
htmldef "^pm" as
    " <IMG SRC='_hatpm.gif' WIDTH=21 HEIGHT=19 ALT=' ^pm' TITLE='^pm'> ";
  althtmldef "^pm" as ' &uarr;<SUB><I>pm</I></SUB> ';
  latexdef "^pm" as "\uparrow_{pm}";
htmldef "X_" as
    "<IMG SRC='_bigtimes.gif' WIDTH=11 HEIGHT=19 ALT=' X_' TITLE='X_'>";
  althtmldef "X_" as '<FONT SIZE="+1">X</FONT>';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "X_" as "\mbox{\large\boldmath$\times$}";
htmldef "~~" as
    " <IMG SRC='approx.gif' WIDTH=13 HEIGHT=19 ALT=' ~~' TITLE='~~'> ";
  althtmldef "~~" as ' &#8776; '; /* &ap; */
  latexdef "~~" as "\approx";
htmldef "~<_" as
   " <IMG SRC='preccurlyeq.gif' WIDTH=11 HEIGHT=19 " +
    "ALT=' ~&lt;_' TITLE='~&lt;_'> ";
  althtmldef "~<_" as ' &#8828; '; /* &prcue; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "~<_" as "\preccurlyeq";
htmldef "~<" as
    " <IMG SRC='prec.gif' WIDTH=11 HEIGHT=19 ALT=' ~&lt;' TITLE='~&lt;'> ";
  althtmldef "~<" as ' &#8826; '; /* &pr; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "~<" as "\prec";
htmldef "Fin" as
    "<IMG SRC='_fin.gif' WIDTH=21 HEIGHT=19 ALT=' Fin' TITLE='Fin'>";
  althtmldef "Fin" as 'Fin';
  latexdef "Fin" as "{\rm Fin}";
htmldef "finSupp" as ' finSupp ';
  althtmldef "finSupp" as ' finSupp ';
  latexdef "finSupp" as "{\rm finSupp}";
htmldef "Undef" as
    "<IMG SRC='_undef.gif' WIDTH=39 HEIGHT=19 ALT=' Undef' TITLE='Undef'>";
  althtmldef "Undef" as "Undef";
  latexdef "Undef" as "{\rm Undef}";
htmldef "iota_" as
    "<IMG SRC='_riotabar.gif' WIDTH=6 HEIGHT=19 ALT=' iota_' TITLE='iota_'>";
  althtmldef "iota_" as '<U>&#8489;</U>';
  latexdef "iota_" as
      "\underline{\mathrm{\rotatebox[origin=C]{180}{$\iota$}}}";
htmldef "fi" as
    "<IMG SRC='_fi.gif' WIDTH=10 HEIGHT=19 ALT=' fi' TITLE='fi'>";
  althtmldef "fi" as "fi";
  latexdef "fi" as "{\rm fi}";
htmldef "sup" as
    "<IMG SRC='_sup.gif' WIDTH=22 HEIGHT=19 ALT=' sup' TITLE='sup'>";
  althtmldef "sup" as 'sup';
  latexdef "sup" as "{\rm sup}";
htmldef "inf" as 'inf';
  althtmldef "inf" as 'inf';
  latexdef "inf" as "{\rm inf}";
htmldef "OrdIso" as "OrdIso";
  althtmldef "OrdIso" as 'OrdIso';
  latexdef "OrdIso" as "{\rm OrdIso}";
/* the standard symbol for this is \aleph, but that collides */
htmldef "har" as "har";
  althtmldef "har" as "har";
  latexdef "har" as "{\rm har}";
htmldef "~<_*" as " <IMG SRC='preccurlyeq.gif' WIDTH=11 HEIGHT=19 " +
   "ALT=' ~&lt;_' TITLE='~&lt;_'><SUP>*</SUP> ";
  althtmldef "~<_*" as ' &#8828;<SUP>*</SUP> ';
  /* &prcue; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "~<_*" as "\preccurlyeq^*";
htmldef "CNF" as " CNF ";
  /* surrounding spaces since it is often infixed */
  althtmldef "CNF" as " CNF ";
  latexdef "CNF" as " {\rm CNF} ";
htmldef "TC" as
    "<IMG SRC='_tc.gif' WIDTH=20 HEIGHT=19 ALT=' TC' TITLE='TC'>";
  althtmldef "TC" as "TC";
  latexdef "TC" as "{\rm TC}";
htmldef "R1" as "<IMG SRC='_r1.gif' WIDTH=15 HEIGHT=19 ALT=' R1' TITLE='R1'>";
  althtmldef "R1" as '&#x1D445;<SUB>1</SUB>';
  latexdef "R1" as "R_1";
htmldef "rank" as
    "<IMG SRC='_rank.gif' WIDTH=30 HEIGHT=19 ALT=' rank' TITLE='rank'>";
  althtmldef "rank" as 'rank';
  latexdef "rank" as "{\rm rank}";
htmldef "card" as
    "<IMG SRC='_card.gif' WIDTH=30 HEIGHT=19 ALT=' card' TITLE='card'>";
  althtmldef "card" as 'card';
  latexdef "card" as "{\rm card}";
htmldef "aleph" as
    "<IMG SRC='varaleph.gif' WIDTH=12 HEIGHT=19 ALT=' aleph' TITLE='aleph'>";
  althtmldef "aleph" as '&#8501;'; /* &aleph; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "aleph" as "\aleph";
htmldef "cf" as
    "<IMG SRC='_cofin.gif' WIDTH=14 HEIGHT=19 ALT=' cf' TITLE='cf'>";
  althtmldef "cf" as 'cf';
  latexdef "cf" as "{\rm cf}";
htmldef "AC_" as '<U>AC</U> ';
  althtmldef "AC_" as '<U>AC</U> ';
  latexdef "AC_" as "\underline{\rm AC}";
htmldef "CHOICE" as "<SMALL>CHOICE</SMALL>";
  althtmldef "CHOICE" as "<SMALL>CHOICE</SMALL>";
  latexdef "CHOICE" as "\mathrm{CHOICE}";
htmldef "+c" as
    " <IMG SRC='_plc.gif' WIDTH=17 HEIGHT=19 ALT=' +c' TITLE='+c'> ";
  althtmldef "+c" as ' +<SUB>&#x1D450;</SUB> ';
  latexdef "+c" as "+_c";
htmldef "Fin1a" as "Fin<SUP>Ia</SUP>";
  althtmldef "Fin1a" as "Fin<SUP>Ia</SUP>";
  latexdef "Fin1a" as "{\rm Fin1a}";
htmldef "Fin2" as "Fin<SUP>II</SUP>";
  althtmldef "Fin2" as "Fin<SUP>II</SUP>";
  latexdef "Fin2" as "{\rm Fin2}";
htmldef "Fin3" as "Fin<SUP>III</SUP>";
  althtmldef "Fin3" as "Fin<SUP>III</SUP>";
  latexdef "Fin3" as "{\rm Fin3}";
htmldef "Fin4" as "Fin<SUP>IV</SUP>";
  althtmldef "Fin4" as "Fin<SUP>IV</SUP>";
  latexdef "Fin4" as "{\rm Fin4}";
htmldef "Fin5" as "Fin<SUP>V</SUP>";
  althtmldef "Fin5" as "Fin<SUP>V</SUP>";
  latexdef "Fin5" as "{\rm Fin5}";
htmldef "Fin6" as "Fin<SUP>VI</SUP>";
  althtmldef "Fin6" as "Fin<SUP>VI</SUP>";
  latexdef "Fin6" as "{\rm Fin6}";
htmldef "Fin7" as "Fin<SUP>VII</SUP>";
  althtmldef "Fin7" as "Fin<SUP>VII</SUP>";
  latexdef "Fin7" as "{\rm Fin7}";
htmldef "GCH" as "GCH";
  althtmldef "GCH" as "GCH";
  latexdef "GCH" as "{\rm GCH}";
htmldef "WUni" as "WUni";
  althtmldef "WUni" as "WUni";
  latexdef "WUni" as "{\rm WUni}";
htmldef "wUniCl" as "wUniCl";
  althtmldef "wUniCl" as "wUniCl";
  latexdef "wUniCl" as "{\rm wUniCl}";
htmldef "InaccW" as
    "<IMG SRC='_inacc.gif' WIDTH=34 HEIGHT=19 ALT=' Inacc' TITLE='Inacc'>" +
    "<IMG SRC='subw.gif' WIDTH=7 HEIGHT=19 ALT='W' TITLE='W'>";
  althtmldef "InaccW" as "Inacc<SUB>w</SUB>";
  latexdef "InaccW" as "{\rm Inacc}_w";
htmldef "Inacc" as
    "<IMG SRC='_inacc.gif' WIDTH=34 HEIGHT=19 ALT=' Inacc' TITLE='Inacc'>";
  althtmldef "Inacc" as "Inacc";
  latexdef "Inacc" as "{\rm Inacc}";
htmldef "Tarski" as
    "<IMG SRC='_tarski.gif' WIDTH=40 HEIGHT=19 ALT=' Tarski' TITLE='Tarski'>";
  althtmldef "Tarski" as "Tarski";
  latexdef "Tarski" as "{\rm Tarski}";
htmldef "Univ" as
    "<IMG SRC='_univ.gif' WIDTH=30 HEIGHT=19 ALT=' Univ' TITLE='Univ'>";
  althtmldef "Univ" as "Univ";
  latexdef "Univ" as "{\rm Univ}";
htmldef "tarskiMap" as "<IMG SRC='_tarskimap.gif' WIDTH=66 HEIGHT=19 " +
    "ALT=' tarskiMap' TITLE='tarskiMap'>";
  althtmldef "tarskiMap" as "tarskiMap";
  latexdef "tarskiMap" as "{\rm tarskiMap}";
htmldef "N." as "<IMG SRC='caln.gif' WIDTH=17 HEIGHT=19 ALT=' N.' TITLE='N.'>";
  althtmldef "N." as '<I><B>N</B></I>';
  latexdef "N." as "{\cal N}";
htmldef "+N" as
    " <IMG SRC='_pln.gif' WIDTH=22 HEIGHT=19 ALT=' +N' TITLE='+N'> ";
  althtmldef "+N" as ' +<I><SUB><B>N</B></SUB></I> ';
  latexdef "+N" as "+_{\cal N}";
htmldef ".N" as
    " <IMG SRC='_cdn.gif' WIDTH=14 HEIGHT=19 ALT=' .N' TITLE='.N'> ";
  althtmldef ".N" as ' &middot;<I><SUB><B>N</B></SUB></I> ';
  latexdef ".N" as "\cdot_{\cal N}";
htmldef "<N" as
    " <IMG SRC='_ltn.gif' WIDTH=21 HEIGHT=19 ALT=' &lt;N' TITLE='&lt;N'> ";
  althtmldef "<N" as ' &lt;<I><SUB><B>N</B></SUB></I> ';
  latexdef "<N" as "<_{\cal N}";
htmldef "+pQ" as
    " <IMG SRC='_plpq.gif' WIDTH=28 HEIGHT=19 ALT=' +pQ' TITLE='+pQ'> ";
  althtmldef "+pQ" as ' +<I><SUB>p<B>Q</B></SUB></I> ';
  latexdef "+pQ" as "+_{p{\cal Q}}";
htmldef ".pQ" as
    " <IMG SRC='_cdpq.gif' WIDTH=19 HEIGHT=19 ALT=' .pQ' TITLE='.pQ'> ";
  althtmldef ".pQ" as ' &middot;<I><SUB>p<B>Q</B></SUB></I> ';
  latexdef ".pQ" as "\cdot_{p{\cal Q}}";
htmldef "<pQ" as
    " <IMG SRC='_ltpq.gif' WIDTH=27 HEIGHT=19 ALT=' &lt;pQ' TITLE='&lt;pQ'> ";
  althtmldef "<pQ" as ' &lt;<I><SUB>p<B>Q</B></SUB></I> ';
  latexdef "<pQ" as "<_{p{\cal Q}}";
htmldef "~Q" as
    " <IMG SRC='_simq.gif' WIDTH=21 HEIGHT=19 ALT=' ~Q' TITLE='~Q'> ";
  althtmldef "~Q" as ' ~<I><SUB><B>Q</B></SUB></I> ';
  latexdef "~Q" as "\sim_{\cal Q}";
htmldef "Q." as "<IMG SRC='calq.gif' WIDTH=12 HEIGHT=19 ALT=' Q.' TITLE='Q.'>";
  althtmldef "Q." as '<I><B>Q</B></I>';
  latexdef "Q." as "{\cal Q}";
htmldef "1Q" as "<IMG SRC='_1q.gif' WIDTH=16 HEIGHT=19 ALT=' 1Q' TITLE='1Q'>";
  althtmldef "1Q" as '1<I><SUB><B>Q</B></SUB></I>';
  latexdef "1Q" as "1_{\cal Q}";
htmldef "/Q" as "<IMG SRC='_erq.gif' WIDTH=17 HEIGHT=19 ALT=' /Q' TITLE='/Q'>";
  althtmldef "/Q" as '[<I><B>Q</B></I>]';
  latexdef "/Q" as "[{\cal Q}]";
htmldef "+Q" as
    " <IMG SRC='_plq.gif' WIDTH=21 HEIGHT=19 ALT=' +Q' TITLE='+Q'> ";
  althtmldef "+Q" as ' +<I><SUB><B>Q</B></SUB></I> ';
  latexdef "+Q" as "+_{\cal Q}";
htmldef ".Q" as
    " <IMG SRC='_cdq.gif' WIDTH=13 HEIGHT=19 ALT=' .Q' TITLE='.Q'> ";
  althtmldef ".Q" as ' &middot;<I><SUB><B>Q</B></SUB></I> ';
  latexdef ".Q" as "\cdot_{\cal Q}";
htmldef "*Q" as
    "<IMG SRC='_astq.gif' WIDTH=16 HEIGHT=19 ALT=' *Q' TITLE='*Q'>";
  althtmldef "*Q" as '*<I><SUB><B>Q</B></SUB></I>';
  latexdef "*Q" as "\ast_{\cal Q}";
htmldef "<Q" as
    " <IMG SRC='_ltq.gif' WIDTH=20 HEIGHT=19 ALT=' &lt;Q' TITLE='&lt;Q'> ";
  althtmldef "<Q" as ' &lt;<I><SUB><B>Q</B></SUB></I> ';
  latexdef "<Q" as "<_{\cal Q}";
htmldef "P." as "<IMG SRC='calp.gif' WIDTH=13 HEIGHT=19 ALT=' P.' TITLE='P.'>";
  althtmldef "P." as '<I><B>P</B></I>';
  latexdef "P." as "{\cal P}";
htmldef "1P" as "<IMG SRC='_1p.gif' WIDTH=15 HEIGHT=19 ALT=' 1P' TITLE='1P'>";
  althtmldef "1P" as '1<I><SUB><B>P</B></SUB></I>';
  latexdef "1P" as "1_{\cal P}";
htmldef "+P." as
    " <IMG SRC='_plp.gif' WIDTH=22 HEIGHT=19 ALT=' +P.' TITLE='+P.'> ";
  althtmldef "+P." as ' +<I><SUB><B>P</B></SUB></I> ';
  latexdef "+P." as "+_{\cal P}";
htmldef ".P." as
    " <IMG SRC='_cdp.gif' WIDTH=13 HEIGHT=19 ALT=' .P.' TITLE='.P.'> ";
  althtmldef ".P." as ' &middot;<I><SUB><B>P</B></SUB></I> ';
  latexdef ".P." as "\cdot_{\cal P}";
htmldef "<P" as
    " <IMG SRC='_ltp.gif' WIDTH=19 HEIGHT=19 ALT=' &lt;P' TITLE='&lt;P'> ";
  althtmldef "<P" as '&lt;<I><SUB><B>P</B></SUB></I> ';
  latexdef "<P" as "<_{\cal P}";
htmldef "~R" as
    " <IMG SRC='_simr.gif' WIDTH=23 HEIGHT=19 ALT=' ~R' TITLE='~R'> ";
  althtmldef "~R" as ' ~<I><SUB><B>R</B></SUB></I> ';
  latexdef "~R" as "\sim_{\cal R}";
htmldef "R." as "<IMG SRC='calr.gif' WIDTH=15 HEIGHT=19 ALT=' R.' TITLE='R.'>";
  althtmldef "R." as '<I><B>R</B></I>';
  latexdef "R." as "{\cal R}";
htmldef "0R" as "<IMG SRC='_0r.gif' WIDTH=18 HEIGHT=19 ALT=' 0R' TITLE='0R'>";
  althtmldef "0R" as '0<I><SUB><B>R</B></SUB></I>';
  latexdef "0R" as "0_{\cal R}";
htmldef "1R" as "<IMG SRC='_1cr.gif' WIDTH=16 HEIGHT=19 ALT=' 1R' TITLE='1R'>";
  althtmldef "1R" as '1<I><SUB><B>R</B></SUB></I>';
  latexdef "1R" as "1_{\cal R}";
htmldef "-1R" as
    "<IMG SRC='_m1r.gif' WIDTH=22 HEIGHT=19 ALT=' -1R' TITLE='-1R'>";
  althtmldef "-1R" as '-1<I><SUB><B>R</B></SUB></I>';
  latexdef "-1R" as "-1_{\cal R}";
htmldef "+R" as
    " <IMG SRC='_plr.gif' WIDTH=23 HEIGHT=19 ALT=' +R' TITLE='+R'> ";
  althtmldef "+R" as ' +<I><SUB><B>R</B></SUB></I> ';
  latexdef "+R" as "+_{\cal R}";
htmldef ".R" as
    " <IMG SRC='_cdcr.gif' WIDTH=14 HEIGHT=19 ALT=' .R' TITLE='.R'> ";
  althtmldef ".R" as ' &middot;<I><SUB><B>R</B></SUB></I> ';
  latexdef ".R" as "\cdot_{\cal R}";
htmldef "<R" as
    " <IMG SRC='_ltr.gif' WIDTH=20 HEIGHT=19 ALT=' &lt;R' TITLE='&lt;R'> ";
  althtmldef "<R" as ' &lt;<I><SUB><B>R</B></SUB></I> ';
  latexdef "<R" as "<_{\cal R}";
htmldef "<RR" as
    " <IMG SRC='_ltbbr.gif' WIDTH=20 HEIGHT=19 ALT=' &lt;RR' TITLE='&lt;RR'> ";
  althtmldef "<RR" as ' &lt;<SUB>&#8477;</SUB> ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "<RR" as "<_\mathbb{R}";
htmldef "CC" as "<IMG SRC='bbc.gif' WIDTH=12 HEIGHT=19 ALT=' CC' TITLE='CC'>";
  althtmldef "CC" as '&#8450;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "CC" as "\mathbb{C}";
htmldef "RR" as "<IMG SRC='bbr.gif' WIDTH=13 HEIGHT=19 ALT=' RR' TITLE='RR'>";
  althtmldef "RR" as '&#8477;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "RR" as "\mathbb{R}";
    /*latexdef "" as "_{10}";*/
    /*latexdef "" as "";*/
    /* suppress base 10 suffix */
htmldef "0" as "<IMG SRC='0.gif' WIDTH=8 HEIGHT=19 ALT=' 0' TITLE='0'>";
  althtmldef "0" as '0';
  latexdef "0" as "0";
htmldef "1" as "<IMG SRC='1.gif' WIDTH=7 HEIGHT=19 ALT=' 1' TITLE='1'>";
  althtmldef "1" as '1';
  latexdef "1" as "1";
htmldef "_i" as "<IMG SRC='rmi.gif' WIDTH=4 HEIGHT=19 ALT=' _i' TITLE='_i'>";
  althtmldef "_i" as 'i';
  latexdef "_i" as "{\rm i}";
htmldef "+" as " <IMG SRC='plus.gif' WIDTH=13 HEIGHT=19 ALT=' +' TITLE='+'> ";
  althtmldef "+" as ' + ';
  latexdef "+" as "+";
htmldef "x." as
    " <IMG SRC='cdot.gif' WIDTH=4 HEIGHT=19 ALT=' x.' TITLE='x.'> ";
  althtmldef "x." as ' &middot; '; /* unicode: &#xb7; */
  latexdef "x." as "\cdot";
htmldef "<_" as
    " <IMG SRC='le.gif' WIDTH=11 HEIGHT=19 ALT=' &lt;_' TITLE='&lt;_'> ";
  althtmldef "<_" as ' &le; ';
  latexdef "<_" as "\le";
htmldef "+oo" as " <IMG SRC='_pinf.gif' WIDTH=29 HEIGHT=19 ALT='+oo' " +
    "TITLE='+oo'>";
  althtmldef "+oo" as '+&infin;';
  latexdef "+oo" as "+\infty";
htmldef "-oo" as " <IMG SRC='_minf.gif' WIDTH=24 HEIGHT=19 ALT='-oo' " +
    "TITLE='-oo'>";
  althtmldef "-oo" as '-&infin;';
  latexdef "-oo" as "-\infty";
htmldef "RR*" as "<IMG SRC='_bbrast.gif' WIDTH=18 HEIGHT=19 ALT=' RR*' " +
    "TITLE='RR*'>";
  althtmldef "RR*" as '&#8477;<SUP>*</SUP>';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "RR*" as "\mathbb{R}^*";
htmldef "<" as
    " <IMG SRC='lt.gif' WIDTH=11 HEIGHT=19 ALT=' &lt;' TITLE='&lt;'> ";
  althtmldef "<" as ' &lt; ';
  latexdef "<" as "<";
htmldef "-" as
    " <IMG SRC='minus.gif' WIDTH=11 HEIGHT=19 ALT=' -' TITLE='-'> ";
  althtmldef "-" as ' &minus; ';
  latexdef "-" as "-";
htmldef "-u" as
    "<IMG SRC='shortminus.gif' WIDTH=8 HEIGHT=19 ALT=' -u' TITLE='-u'>";
    /* use standard minus sign */
  althtmldef "-u" as '-';
  latexdef "-u" as "\textrm{-}"; /* short minus */
    /*latexdef "-u" as "-_u";*/
htmldef "NN" as "<IMG SRC='bbn.gif' WIDTH=12 HEIGHT=19 ALT=' NN' TITLE='NN'>";
  althtmldef "NN" as '&#8469;'; /* &Nopf; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "NN" as "\mathbb{N}";
htmldef "NN0" as
    "<IMG SRC='_bbn0.gif' WIDTH=19 HEIGHT=19 ALT=' NN0' TITLE='NN0'>";
  althtmldef "NN0" as '&#8469;<SUB>0</SUB>';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "NN0" as "\mathbb{N}_0";
htmldef "NN0*" as 'NN0*';
  althtmldef "NN0*" as '&#8469;<SUB>0</SUB><SUP>*</SUP>';
  latexdef "NN0*" as "\mathbb{N}_0^*";
htmldef "ZZ" as "<IMG SRC='bbz.gif' WIDTH=11 HEIGHT=19 ALT=' ZZ' TITLE='ZZ'>";
  althtmldef "ZZ" as '&#8484;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "ZZ" as "\mathbb{Z}";
htmldef "QQ" as "<IMG SRC='bbq.gif' WIDTH=13 HEIGHT=19 ALT=' QQ' TITLE='QQ'>";
  althtmldef "QQ" as '&#8474;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "QQ" as "\mathbb{Q}";
htmldef "RR+" as "<IMG SRC='_bbrplus.gif' WIDTH=20 HEIGHT=19 ALT=' RR+' " +
    "TITLE='RR+'>";
  althtmldef "RR+" as '&#8477;<SUP>+</SUP>';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "RR+" as "\mathbb{R}^+";
htmldef "2" as "<IMG SRC='2.gif' WIDTH=8 HEIGHT=19 ALT=' 2' TITLE='2'>";
  althtmldef "2" as '2';
  latexdef "2" as "2";
htmldef "3" as "<IMG SRC='3.gif' WIDTH=8 HEIGHT=19 ALT=' 3' TITLE='3'>";
  althtmldef "3" as '3';
  latexdef "3" as "3";
htmldef "4" as "<IMG SRC='4.gif' WIDTH=9 HEIGHT=19 ALT=' 4' TITLE='4'>";
  althtmldef "4" as '4';
  latexdef "4" as "4";
htmldef "5" as "<IMG SRC='5.gif' WIDTH=8 HEIGHT=19 ALT=' 5' TITLE='5'>";
  althtmldef "5" as '5';
  latexdef "5" as "5";
htmldef "6" as "<IMG SRC='6.gif' WIDTH=8 HEIGHT=19 ALT=' 6' TITLE='6'>";
  althtmldef "6" as '6';
  latexdef "6" as "6";
htmldef "7" as "<IMG SRC='7.gif' WIDTH=9 HEIGHT=19 ALT=' 7' TITLE='7'>";
  althtmldef "7" as '7';
  latexdef "7" as "7";
htmldef "8" as "<IMG SRC='8.gif' WIDTH=8 HEIGHT=19 ALT=' 8' TITLE='8'>";
  althtmldef "8" as '8';
  latexdef "8" as "8";
htmldef "9" as "<IMG SRC='9.gif' WIDTH=8 HEIGHT=19 ALT=' 9' TITLE='9'>";
  althtmldef "9" as '9';
  latexdef "9" as "9";
htmldef "10" as "<IMG SRC='_10.gif' WIDTH=14 HEIGHT=19 ALT=' 10' TITLE='10'>";
  althtmldef "10" as '10';
  latexdef "10" as "10";
htmldef ";" as '<FONT COLOR="#808080">;</FONT>';
  althtmldef ";" as '<SPAN CLASS=hidden STYLE="color:gray">;</SPAN>';
  latexdef ";" as "{\rm;}";
htmldef "ZZ>=" as "<IMG SRC='_bbzge.gif' WIDTH=20 HEIGHT=19 " +
    "ALT=' ZZ&gt;=' TITLE='ZZ&gt;='>";
  althtmldef "ZZ>=" as "&#8484;<SUB>&ge;</SUB>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "ZZ>=" as "\mathbb{Z}_\ge";
htmldef "-e" as " <IMG SRC='shortminus.gif' WIDTH=8 HEIGHT=19 ALT=' -' " +
    "TITLE='-'><IMG SRC='sube.gif' WIDTH=6 HEIGHT=19 ALT='e' TITLE='e'>";
  althtmldef "-e" as "-<SUB>&#x1D452;</SUB>";
  latexdef "-e" as "\textrm{-}_e";
htmldef "+e" as "<IMG SRC='plus.gif' WIDTH=13 HEIGHT=19 ALT=' +' TITLE='+'>" +
    "<IMG SRC='sube.gif' WIDTH=6 HEIGHT=19 ALT='e' TITLE='e'>";
  althtmldef "+e" as " +<SUB>&#x1D452;</SUB> ";
  latexdef "+e" as "+_e";
htmldef "*e" as "<IMG SRC='cdot.gif' WIDTH=4 HEIGHT=19 ALT=' x' TITLE='x'>" +
    "<IMG SRC='sube.gif' WIDTH=6 HEIGHT=19 ALT='e' TITLE='e'>";
  althtmldef "*e" as  " &middot;<SUB>e</SUB> ";
  latexdef "*e" as "\cdot_e";
htmldef "(,)" as
    "<IMG SRC='_ioo.gif' WIDTH=13 HEIGHT=19 ALT=' (,)' TITLE='(,)'>";
  althtmldef "(,)" as "(,)";
  latexdef "(,)" as "(,)";
htmldef "(,]" as
    "<IMG SRC='_ioc.gif' WIDTH=12 HEIGHT=19 ALT=' (,]' TITLE='(,]'>";
  althtmldef "(,]" as "(,]";
  latexdef "(,]" as "(,]";
htmldef "[,)" as
    "<IMG SRC='_ico.gif' WIDTH=13 HEIGHT=19 ALT=' [,)' TITLE='[,)'>";
  althtmldef "[,)" as "[,)";
  latexdef "[,)" as "[,)";
htmldef "[,]" as
    "<IMG SRC='_icc.gif' WIDTH=12 HEIGHT=19 ALT=' [,]' TITLE='[,]'>";
  althtmldef "[,]" as "[,]";
  latexdef "[,]" as "[,]";
htmldef "..." as "<IMG SRC='ldots.gif' WIDTH=18 HEIGHT=19 " +
    "ALT=' ...' TITLE='...'>";
  althtmldef "..." as "...";
  latexdef "..." as "\ldots";
htmldef "..^" as "..^";
  althtmldef "..^" as "..^";
  latexdef "..^" as "..\^";
/*
htmldef "sgn" as
    "<IMG SRC='sgn.gif' WIDTH=20 HEIGHT=19 ALT=' sgn' TITLE='sgn'>";
*/
htmldef "sgn" as "sgn";
  althtmldef "sgn" as "sgn";
  latexdef "sgn" as "{\rm sgn}";
htmldef "|_" as "<IMG SRC='lfloor.gif' WIDTH=6 HEIGHT=19 ALT=' |_' " +
    "TITLE='|_'>";
  althtmldef "|_" as '&#8970;';
  latexdef "|_" as "\lfloor";
/*
htmldef "|^" as
   "<IMG SRC='ceiling.gif' WIDTH=20 HEIGHT=19 ALT=' ceiling' TITLE='ceiling'>";
*/
htmldef "|^" as "&#8968;";
  althtmldef "|^" as "&#8968;";
  latexdef "|^" as "\lceil";
htmldef "mod" as " <IMG SRC='_mod.gif' WIDTH=29 HEIGHT=19 ALT=' mod' " +
    "TITLE='mod'> ";
  althtmldef "mod" as ' mod ';
  latexdef "mod" as "{\rm mod}";
htmldef "==" as " <IMG SRC='equiv.gif' WIDTH=12 HEIGHT=19 ALT=' ==' " +
    "TITLE='=='> ";
  althtmldef "==" as "&equiv;"; /* 2263 */
  latexdef "==" as "\equiv";
htmldef "seq" as " <IMG SRC='_seq.gif' WIDTH=22 HEIGHT=19 ALT=' seq' " +
    "TITLE='seq'>";
  althtmldef "seq" as 'seq';
  latexdef "seq" as "{\rm seq}";
/*
htmldef "seq1" as " <IMG SRC='_seq1.gif' WIDTH=26 HEIGHT=19 ALT=' seq1' " +
    "TITLE='seq1'> ";
  althtmldef "seq1" as 'seq<SUB>1</SUB>';
  latexdef "seq1" as "{\rm seq}_1";
htmldef "seqz" as
    " <IMG SRC='_seq.gif' WIDTH=22 HEIGHT=19 ALT=' seq' TITLE='seq'>" +
    "<IMG SRC='__subbbz.gif' WIDTH=8 HEIGHT=19 ALT='z' TITLE='z'> ";
  althtmldef "seqz" as 'seq<SUB><FONT FACE=sans-serif>&#8484;</FONT></SUB>';
  latexdef "seqz" as "{\rm seq}_\mathbb{Z}";
htmldef "seq0" as " <IMG SRC='_seq0.gif' WIDTH=27 HEIGHT=19 ALT=' seq0' " +
    "TITLE='seq0'> ";
  althtmldef "seq0" as 'seq<SUB>0</SUB>';
  latexdef "seq0" as "{\rm seq}_0";
*/
htmldef "^" as "<IMG SRC='uparrow.gif' WIDTH=7 HEIGHT=19 ALT=' ^' TITLE='^'>";
  althtmldef "^" as '&uarr;';
  latexdef "^" as "\uparrow"; /*
  latexdef "^" as "\widehat{\ }"; */
htmldef "!" as "<IMG SRC='bang.gif' WIDTH=3 HEIGHT=19 ALT=' !' TITLE='!'>";
  althtmldef "!" as '!';
  latexdef "!" as "{!}";
htmldef "_C" as
    " <IMG SRC='rmcc.gif' WIDTH=10 HEIGHT=19 ALT=' _C' TITLE='_C'> ";
  althtmldef "_C" as 'C';
  latexdef "_C" as "{\rm C}";
htmldef "#" as
    "<IMG SRC='octothorpe.gif' WIDTH=13 HEIGHT=19 ALT=' #' TITLE='#'>";
  althtmldef "#" as "#";
  latexdef "#" as "#";
htmldef "shift" as " <IMG SRC='_shift.gif' WIDTH=30 HEIGHT=19 ALT=' shift' " +
    "TITLE='shift'> ";
  althtmldef "shift" as ' shift ';
  latexdef "shift" as "{\rm shift}";
htmldef "Re" as "<IMG SRC='re.gif' WIDTH=12 HEIGHT=19 ALT=' Re' TITLE='Re'>";
  althtmldef "Re" as '&real;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "Re" as "\Re";
htmldef "Im" as "<IMG SRC='im.gif' WIDTH=12 HEIGHT=19 ALT=' Im' TITLE='Im'>";
  althtmldef "Im" as '&image;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "Im" as "\Im";
htmldef "*" as "<IMG SRC='ast.gif' WIDTH=7 HEIGHT=19 ALT=' *' TITLE='*'>";
  althtmldef "*" as '&lowast;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "*" as "*";
htmldef "sqrt" as
    "<IMG SRC='surd.gif' WIDTH=14 HEIGHT=19 ALT=' sqr' TITLE='sqr'>";
  althtmldef "sqrt" as '&radic;';
  latexdef "sqrt" as "\surd";
htmldef "abs" as
    "<IMG SRC='_abs.gif' WIDTH=22 HEIGHT=19 ALT=' abs' TITLE='abs'>";
  althtmldef "abs" as 'abs';
  latexdef "abs" as "{\rm abs}";
htmldef "+-" as
    "<IMG SRC='pm.gif' WIDTH=14 HEIGHT=19 ALT=' pm' TITLE='pm'>";
  althtmldef "+-" as '&plusmn;';
  latexdef "+-" as "\pm";
htmldef "limsup" as
    "<IMG SRC='_limsup.gif' WIDTH=44 HEIGHT=19 ALT=' limsup' TITLE='limsup'>";
  althtmldef "limsup" as 'lim sup';
  latexdef "limsup" as "\limsup";
htmldef "~~>" as " <IMG SRC='rightsquigarrow.gif' WIDTH=15 HEIGHT=19 " +
    "ALT=' ~~&gt;' TITLE='~~&gt;'> ";
  althtmldef "~~>" as ' &#8669; ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "~~>" as '\rightsquigarrow';
htmldef "~~>r" as " <IMG SRC='rightsquigarrow.gif' WIDTH=15 HEIGHT=19 " +
    "ALT=' ~~&gt;' TITLE='~~&gt;'><IMG SRC='subr.gif' WIDTH=5 HEIGHT=19 " +
    "ALT=' r' TITLE='r'> ";
  althtmldef "~~>r" as
    ' &#8669;<SUB>&#x1D45F;</SUB> ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "~~>r" as '\rightsquigarrow_r';
htmldef "O(1)" as "<IMG SRC='co.gif' WIDTH=12 HEIGHT=19 ALT=' O' TITLE='O'>" +
    "<IMG SRC='lp.gif' WIDTH=5 HEIGHT=19 ALT='(' TITLE='('>" +
    "<IMG SRC='1.gif' WIDTH=7 HEIGHT=19 ALT='1' TITLE='1'>" +
    "<IMG SRC='rp.gif' WIDTH=5 HEIGHT=19 ALT=')' TITLE=')'>";
  althtmldef "O(1)" as '&#x1D442;(1)';
  latexdef "O(1)" as "O(1)";
htmldef "<_O(1)" as
    "<IMG SRC='le.gif' WIDTH=11 HEIGHT=19 ALT=' &lt;_' TITLE='&lt;_'>" +
    "<IMG SRC='co.gif' WIDTH=12 HEIGHT=19 ALT='O' TITLE='O'>" +
    "<IMG SRC='lp.gif' WIDTH=5 HEIGHT=19 ALT='(' TITLE='('>" +
    "<IMG SRC='1.gif' WIDTH=7 HEIGHT=19 ALT='1' TITLE='1'>" +
    "<IMG SRC='rp.gif' WIDTH=5 HEIGHT=19 ALT=')' TITLE=')'>";
  althtmldef "<_O(1)" as '&le;&#x1D442;(1)';
  latexdef "<_O(1)" as "\le O(1)";
htmldef "sum_" as "<IMG SRC='csigma.gif' WIDTH=11 HEIGHT=19 " +
    "ALT=' sum_' TITLE='sum_'>";
  althtmldef "sum_" as "&Sigma;";
  latexdef "sum_" as "\Sigma";
htmldef "exp" as
    "<IMG SRC='_exp.gif' WIDTH=24 HEIGHT=19 ALT=' exp' TITLE='exp'>";
  althtmldef "exp" as "exp";
  latexdef "exp" as "\exp";
htmldef "_e" as "<IMG SRC='rme.gif' WIDTH=7 HEIGHT=19 ALT=' _e' TITLE='_e'>";
  althtmldef "_e" as "e";
  latexdef "_e" as "{\rm e}";
htmldef "sin" as
    "<IMG SRC='_sin.gif' WIDTH=19 HEIGHT=19 ALT=' sin' TITLE='sin'>";
  althtmldef "sin" as "sin";
  latexdef "sin" as "\sin";
htmldef "cos" as
    "<IMG SRC='_cos.gif' WIDTH=21 HEIGHT=19 ALT=' cos' TITLE='cos'>";
  althtmldef "cos" as "cos";
  latexdef "cos" as "\cos";
htmldef "tan" as
    "<IMG SRC='_tan.gif' WIDTH=22 HEIGHT=19 ALT=' tan' TITLE='tan'>";
  althtmldef "tan" as "tan";
  latexdef "tan" as "\tan";
htmldef "_pi" as "<IMG SRC='pi.gif' WIDTH=10 HEIGHT=19 ALT=' pi' TITLE='pi'>";
  althtmldef "_pi" as "&pi;";  /* was: "&#x1D70B;"; math italic pi */
  latexdef "_pi" as "{\rm \pi}";
htmldef "_tau" as
    "<IMG SRC='tau.gif' WIDTH=10 HEIGHT=19 ALT=' tau' TITLE='tau'>";
  althtmldef "_tau" as '&#x3c4;';  /* upright lowercase Greek tau */
  latexdef "_tau" as "{\rm \tau}";
htmldef "||" as
    " <IMG SRC='parallel.gif' WIDTH=5 HEIGHT=19 " + "ALT=' ||' TITLE='||'> ";
  althtmldef "||" as ' &#8741; ';
  latexdef "||" as " \parallel ";
htmldef "bits" as "bits";
  althtmldef "bits" as "bits";
  latexdef "bits" as "\mbox{bits}";
htmldef "sadd" as " sadd ";
  althtmldef "sadd" as " sadd ";
  latexdef "sadd" as "\mbox{sadd}";
htmldef "smul" as " smul ";
  althtmldef "smul" as " smul ";
  latexdef "smul" as "\mbox{smul}";
htmldef "gcd" as
    " <IMG SRC='_gcd.gif' WIDTH=23 HEIGHT=19 ALT=' gcd' TITLE='gcd'> ";
  althtmldef "gcd" as " gcd ";
  latexdef "gcd" as "\,{\rm gcd}\,";
htmldef "lcm" as " lcm ";
  althtmldef "lcm" as " lcm ";
  latexdef "lcm" as "\,{\rm lcm}\,";
htmldef "_lcm" as "<U>lcm</U>";
  althtmldef "_lcm" as "<U>lcm</U>";
  latexdef "_lcm" as "\underline{\rm lcm}";
htmldef "Prime" as
    "<IMG SRC='bbp.gif' WIDTH=11 HEIGHT=19 ALT=' Prime' TITLE='Prime'>";
  althtmldef "Prime" as "&#8473;";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "Prime" as "\mathbb{P}";
htmldef "#p" as "#<SUB>p</SUB>";
  althtmldef "#p" as "#<SUB>p</SUB>";
  latexdef "#p" as "\#";
htmldef "odZ" as
    "<IMG SRC='_od.gif' WIDTH=15 HEIGHT=19 ALT=' od' TITLE='od'>" +
    "<IMG SRC='__subbbz.gif' WIDTH=8 HEIGHT=19 ALT='Z' TITLE='Z'>";
  althtmldef "odZ" as "od<SUB>&#8484;</SUB>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "odZ" as "{\rm od}_{\Bbb Z}";
htmldef "phi" as
    "<IMG SRC='phi.gif' WIDTH=10 HEIGHT=19 ALT=' phi' TITLE='phi'>";
  althtmldef "phi" as '&#981;';
  latexdef "phi" as "\phi";
htmldef "pCnt" as
    " <IMG SRC='_pcnt.gif' WIDTH=32 HEIGHT=19 ALT=' pCnt' TITLE='pCnt'> ";
  althtmldef "pCnt" as " pCnt ";
  latexdef "pCnt" as "\,{\rm pCnt}\,";
htmldef "Z[i]" as
    "<IMG SRC='bbz.gif' WIDTH=11 HEIGHT=19 ALT=' ZZ' TITLE='ZZ'>" +
    "<IMG SRC='lbrack.gif' WIDTH=5 HEIGHT=19 ALT='[' TITLE='['>" +
    "<IMG SRC='rmi.gif' WIDTH=4 HEIGHT=19 ALT='_i' TITLE='_i'>" +
    "<IMG SRC='rbrack.gif' WIDTH=5 HEIGHT=19 ALT=']' TITLE=']'>";
  althtmldef "Z[i]" as '&#8484;[i]';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "Z[i]" as "\mathbb{Z}[{\rm i}]";
htmldef "AP" as "AP";
  althtmldef "AP" as "AP";
  latexdef "AP" as "{\rm AP}";
htmldef "MonoAP" as " MonoAP ";
  althtmldef "MonoAP" as " MonoAP ";
  latexdef "MonoAP" as " {\rm MonoAP} ";
htmldef "PolyAP" as " PolyAP ";
  althtmldef "PolyAP" as " PolyAP ";
  latexdef "PolyAP" as " {\rm PolyAP} ";
htmldef "Ramsey" as " Ramsey ";
  althtmldef "Ramsey" as " Ramsey ";
  latexdef "Ramsey" as " {\rm Ramsey} ";
htmldef "Struct" as " Struct ";
  althtmldef "Struct" as " Struct ";
  latexdef "Struct" as " {\rm Struct} ";
htmldef "ndx" as
    "<IMG SRC='_ndx.gif' WIDTH=24 HEIGHT=19 ALT=' ndx' TITLE='ndx'>";
  althtmldef "ndx" as "ndx";
  latexdef "ndx" as "{\rm ndx}";
htmldef "sSet" as " sSet "; althtmldef "sSet" as " sSet ";
  latexdef "sSet" as "{\rm sSet}";
htmldef "Slot" as "Slot ";
  althtmldef "Slot" as "Slot ";
  latexdef "Slot" as "{\rm Slot} ";
htmldef "Base" as
    "<IMG SRC='_base.gif' WIDTH=30 HEIGHT=19 ALT=' Base' TITLE='Base'>";
  althtmldef "Base" as "Base";
  latexdef "Base" as "{\rm Base}";
htmldef "|`s" as " &#8638;<SUB>s</SUB> ";
    /* 2-Jan-2016 reverted sans-serif */
  althtmldef "|`s" as " &#8638;<SUB>s</SUB> ";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "|`s" as "\restriction_s";
htmldef "+g" as
    "<IMG SRC='_plusg.gif' WIDTH=19 HEIGHT=19 ALT=' +g' TITLE='+g'> ";
  althtmldef "+g" as "+<SUB>g</SUB>";
  latexdef "+g" as "+_{\rm g}";
htmldef ".r" as "<IMG SRC='_cdr.gif' WIDTH=10 HEIGHT=19 ALT=' .r' TITLE='.r'>";
  althtmldef ".r" as ".<SUB>r</SUB>";
  latexdef ".r" as "._{\rm r}";
htmldef "*r" as "<IMG SRC='ast.gif' WIDTH=7 HEIGHT=19 ALT=' *' TITLE='*'>" +
    "<IMG SRC='subr.gif' WIDTH=5 HEIGHT=19 ALT='r' TITLE='r'>";
  althtmldef "*r" as "*<SUB>&#x1D45F;</SUB>";
  latexdef "*r" as "\ast_r";
htmldef "Scalar" as "Scalar";
  althtmldef "Scalar" as "Scalar";
  latexdef "Scalar" as "{\rm Scalar}";
htmldef ".s" as "<IMG SRC='_cds.gif' WIDTH=9 HEIGHT=19 ALT=' .s' TITLE='.s'>";
  althtmldef ".s" as ' <B>&middot;</B><SUB>&#x1D460;</SUB> ';
  latexdef ".s" as '\cdot_s';
htmldef ".i" as "<IMG SRC='_cdi.gif' WIDTH=7 HEIGHT=19 ALT=' .i' TITLE='.i'>";
  althtmldef ".i" as '<B>&middot;</B><SUB>&#x1D456;</SUB>';
  latexdef ".i" as '\cdot_i';
htmldef "TopSet" as "TopSet";
  althtmldef "TopSet" as "TopSet";
  latexdef "TopSet" as "{\rm TopSet}";
htmldef "le" as
    "<IMG SRC='_rmle.gif' WIDTH=11 HEIGHT=19 ALT=' le' TITLE='le'>";
  althtmldef "le" as "le";
  latexdef "le" as "{\rm le}";
htmldef "oc" as "<IMG SRC='_oc.gif' WIDTH=14 HEIGHT=19 ALT=' oc' TITLE='oc'>";
  althtmldef "oc" as "oc";
  latexdef "oc" as "{\rm oc}";
htmldef "dist" as
    "<IMG SRC='_dist.gif' WIDTH=24 HEIGHT=19 ALT=' dist' TITLE='dist'>";
  althtmldef "dist" as "dist";
  latexdef "dist" as "{\rm dist}";
htmldef "UnifSet" as
    "<IMG SRC='_unif.gif' WIDTH=28 HEIGHT=19 ALT=' UnifSet' TITLE='UnifSet'>";
  althtmldef "UnifSet" as "UnifSet";
  latexdef "UnifSet" as "{\rm UnifSet}";
htmldef "Hom" as
    "<IMG SRC='_hom.gif' WIDTH=27 HEIGHT=19 ALT=' Hom' TITLE='Hom'> ";
  althtmldef "Hom" as "Hom ";
  latexdef "Hom" as "{\rm Hom} ";
htmldef "comp" as "comp";
  althtmldef "comp" as "comp";
  latexdef "comp" as "{\rm comp}";
htmldef "|`t" as " &#8638;<SUB>t</SUB> ";
    /* 2-Jan-2016 reverted sans-serif */
  althtmldef "|`t" as " &#8638;<SUB>t</SUB> ";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "|`t" as "\restriction_t";
htmldef "TopOpen" as
  "<IMG SRC='_topopen.gif' WIDTH=57 HEIGHT=19 ALT=' TopOpen' TITLE='TopOpen'>";
  althtmldef "TopOpen" as "TopOpen";
  latexdef "TopOpen" as "{\rm TopOpen}";
htmldef "topGen" as
    "<IMG SRC='_topgen.gif' WIDTH=47 HEIGHT=19 ALT=' topGen' TITLE='topGen'>";
  althtmldef "topGen" as "topGen";
  latexdef "topGen" as "{\rm topGen}";
htmldef "Xt_" as
    "<IMG SRC='_prodt.gif' WIDTH=17 HEIGHT=19 ALT=' Xt_' TITLE='Xt_'>";
  althtmldef "Xt_" as "&prod;<SUB>t</SUB>";
  latexdef "Xt_" as "\prod_t";
htmldef "Xs_" as "<IMG SRC='_bigtimes.gif' WIDTH=11 HEIGHT=19 ALT=' X_' " +
    "TITLE='X_'><sub><i>s</i></sub>";
  althtmldef "Xs_" as
    "<FONT SIZE='+1' FACE=sans-serif>X</FONT><sub><i>s</i></sub>";
  latexdef "Xs_" as "\mbox{\large\boldmath$\times$}_s";
htmldef "^s" as " <IMG SRC='uparrow.gif' WIDTH=7 HEIGHT=19 ALT=' ^' " +
    "TITLE='^'><sub><i>s</i></sub> ";
  althtmldef "^s" as ' &uarr;<sub><i>s</i></sub> ';
  latexdef "^s" as " \uparrow_s ";
htmldef "ordTop" as "ordTop";
  althtmldef "ordTop" as "ordTop";
  latexdef "ordTop" as "{\rm ordTop}";
htmldef "RR*s" as
    "<IMG SRC='_bbrast.gif' WIDTH=18 HEIGHT=19 ALT=' RR*' TITLE='RR*'>" +
    "<IMG SRC='subs.gif' WIDTH=6 HEIGHT=19 ALT='s' TITLE='s'>";
  althtmldef "RR*s" as
    '&#8477;<SUP>*</SUP><SUB>&#x1D460;</SUB>';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "RR*s" as "\mathbb{R}^*_s";
htmldef "0g" as "<IMG SRC='_0g.gif' WIDTH=14 HEIGHT=19 ALT=' 0g' TITLE='0g'>";
  althtmldef "0g" as "0<SUB>g</SUB>";
  latexdef "0g" as "0_{\rm g}";
htmldef "gsum" as " <IMG SRC='csigma.gif' WIDTH=11 HEIGHT=19 " +
    "ALT=' gsum' TITLE='gsum'><sub><i>g</i></sub> ";
  althtmldef "gsum" as " &Sigma;<sub><i>g</i></sub> ";
  latexdef "gsum" as " \Sigma_g ";
htmldef '"s' as " <IMG SRC='backquote.gif' WIDTH=7 HEIGHT=19 ALT=' " + '"' +
    "' TITLE='" + '"' + "'><sub><i>s</i></sub> ";
  althtmldef '"s' as ' &ldquo;<sub><i>s</i></sub> ';
  latexdef '"s' as "``_s";
htmldef "/s" as " <IMG SRC='diagup.gif' WIDTH=14 HEIGHT=19 ALT=' /.' " +
    "TITLE='/.'><sub><i>s</i></sub> ";
  althtmldef "/s" as " /<sub><i>s</i></sub> ";
  latexdef "/s" as " \diagup_s ";
htmldef "qTop" as " qTop "; althtmldef "qTop" as " qTop ";
  latexdef "qTop" as "{\rm qTop}";
htmldef "Xs." as " <IMG SRC='times.gif' WIDTH=9 HEIGHT=19 ALT=' X.' " +
    "TITLE='X.'><sub><i>s</i></sub> ";
  althtmldef "Xs." as ' &times;<sub><i>s</i></sub> ';
  latexdef "Xs." as "\times_s";
htmldef "Cat" as
    "<IMG SRC='_cat.gif' WIDTH=24 HEIGHT=19 ALT=' Cat' TITLE='Cat'>";
  althtmldef "Cat" as "Cat";
  latexdef "Cat" as "{\rm Cat}";
htmldef "Id" as "<IMG SRC='_id.gif' WIDTH=12 HEIGHT=19 ALT=' Id' TITLE='Id'>";
  althtmldef "Id" as "Id";
  latexdef "Id" as "{\rm Id}";
htmldef "Homf" as
    "<IMG SRC='_hom.gif' WIDTH=27 HEIGHT=19 ALT=' Hom' TITLE='Hom'> " +
    "<sub><i>f</i></sub> ";
  althtmldef "Homf" as "Hom<sub><i>f</i></sub> ";
  latexdef "Homf" as "{\rm Hom}_f ";
htmldef "comf" as "comp<sub><i>f</i></sub>";
  althtmldef "comf" as "comp<sub><i>f</i></sub>";
  latexdef "comf" as "{\rm comp}_f";
htmldef "oppCat" as "oppCat";
  althtmldef "oppCat" as "oppCat";
  latexdef "oppCat" as "{\rm oppCat}";
htmldef "Mono" as "Mono"; althtmldef "Mono" as "Mono";
  latexdef "Mono" as "{\rm Mono}";
htmldef "Epi" as "Epi"; althtmldef "Epi" as "Epi";
  latexdef "Epi" as "{\rm Epi}";
htmldef "Sect" as "Sect"; althtmldef "Sect" as "Sect";
  latexdef "Sect" as "{\rm Sect}";
htmldef "Inv" as "Inv"; althtmldef "Inv" as "Inv";
  latexdef "Inv" as "{\rm Inv}";
htmldef "Iso" as
    " <IMG SRC='_iso.gif' WIDTH=17 HEIGHT=19 ALT=' Iso' TITLE='Iso'> ";
  althtmldef "Iso" as "Iso";
  latexdef "Iso" as "{\rm Iso}";
htmldef "~=c" as " <IMG SRC='simeq.gif' WIDTH=26 HEIGHT=19 " +
    "ALT=' ~=c' TITLE='~=c'><SUB>&#x1D450;</SUB> ";
  althtmldef "~=c" as " &#8771;<SUB>&#x1D450;</SUB> ";
  latexdef "~=c" as "\simeq_{c}";
htmldef "C_cat" as
    " <IMG SRC='subseteq.gif' WIDTH=12 HEIGHT=19 ALT=' C_' TITLE='C_'>" +
    "<SUB>cat</SUB> ";
  althtmldef "C_cat" as ' &#8838;<SUB>cat</SUB> '; /* &subE; */
  latexdef "C_cat" as "\subseteq_{cat}";
htmldef "|`cat" as " <IMG SRC='restriction.gif' WIDTH=5 HEIGHT=19 ALT=' |`'" +
    " TITLE='|`'><SUB>cat</SUB> ";
  althtmldef "|`cat" as " &#8638;<SUB>cat</SUB> ";
  latexdef "|`cat" as "\restriction_{cat}";
htmldef "Subcat" as "Subcat"; althtmldef "Subcat" as "Subcat";
  latexdef "Subcat" as "{\rm Subcat}";
htmldef "Func" as
    " <IMG SRC='_func.gif' WIDTH=32 HEIGHT=19 ALT=' Func' TITLE='Func'> ";
  althtmldef "Func" as " Func ";
  latexdef "Func" as " {\rm Func} ";
htmldef "idFunc" as "id<sub><i>func</i></sub>";
  althtmldef "idFunc" as "id<sub><i>func</i></sub>";
  latexdef "idFunc" as "{\rm id}_{func}";
htmldef "o.func" as
    " <IMG SRC='circ.gif' WIDTH=8 HEIGHT=19 ALT=' o.' TITLE='o.'>" +
    "<sub><i>func</i></sub> ";
  althtmldef "o.func" as ' &#8728;<sub><i>func</i></sub> ';
  latexdef "o.func" as "\circ_{func}";
htmldef "|`f" as " <IMG SRC='restriction.gif' WIDTH=5 HEIGHT=19 ALT=' |`'" +
    " TITLE='|`'><SUB><i>f</i></SUB> ";
  althtmldef "|`f" as " &#8638;<SUB><i>f</i></SUB> ";
  latexdef "|`f" as "\restriction_f";
htmldef "Full" as " Full "; althtmldef "Full" as " Full ";
  latexdef "Full" as "{\rm Full}";
htmldef "Faith" as " Faith "; althtmldef "Faith" as " Faith ";
  latexdef "Faith" as "{\rm Faith}";
htmldef "Nat" as " Nat "; althtmldef "Nat" as " Nat ";
  latexdef "Nat" as "{\rm Nat}";
htmldef "FuncCat" as " FuncCat "; althtmldef "FuncCat" as " FuncCat ";
  latexdef "FuncCat" as " {\rm FuncCat} ";
htmldef "InitO" as 'InitO';
  althtmldef "InitO" as 'InitO';
  latexdef "InitO" as "{\rm InitO}";
htmldef "TermO" as 'TermO';
  althtmldef "TermO" as 'TermO';
  latexdef "TermO" as "{\rm TermO}";
htmldef "ZeroO" as 'ZeroO';
  althtmldef "ZeroO" as 'ZeroO';
  latexdef "ZeroO" as "{\rm ZeroO}";
htmldef "domA" as
    "<IMG SRC='_dom.gif' WIDTH=26 HEIGHT=19 ALT='dom' TITLE='dom'>" +
    "<IMG SRC='suba.gif' WIDTH=7 HEIGHT=19 ALT='A' TITLE='A'>";
  althtmldef "domA" as 'dom<sub><i>a</i></sub>';
  latexdef "domA" as "{\rm dom}_a";
htmldef "codA" as 'cod<sub><i>a</i></sub>';
  althtmldef "codA" as 'cod<sub><i>a</i></sub>';
  latexdef "codA" as "{\rm cod}_a";
htmldef "Arrow" as "Nat"; althtmldef "Arrow" as "Arrow";
  latexdef "Arrow" as "{\rm Arrow}";
htmldef "HomA" as 'Hom<sub><i>a</i></sub>';
  althtmldef "HomA" as 'Hom<sub><i>a</i></sub>';
  latexdef "HomA" as "{\rm Hom}_a";
htmldef "IdA" as 'Id<sub><i>a</i></sub>';
  althtmldef "IdA" as 'Id<sub><i>a</i></sub>';
  latexdef "IdA" as "{\rm Id}_a";
htmldef "compA" as 'comp<sub><i>a</i></sub>';
  althtmldef "compA" as 'comp<sub><i>a</i></sub>';
  latexdef "compA" as "{\rm comp}_a";
htmldef "SetCat" as
    "<IMG SRC='_setcat.gif' WIDTH=45 HEIGHT=19 ALT=' SetCat' TITLE='SetCat'>";
  althtmldef "SetCat" as "SetCat";
  latexdef "SetCat" as "{\rm SetCat}";
htmldef "CatCat" as "CatCat";
  althtmldef "CatCat" as "CatCat";
  latexdef "CatCat" as "{\rm CatCat}";
htmldef "ExtStrCat" as 'ExtStrCat';
  althtmldef "ExtStrCat" as 'ExtStrCat';
  latexdef "ExtStrCat" as "{\rm ExtStrCat}";
htmldef "Xc." as " <IMG SRC='times.gif' WIDTH=9 HEIGHT=19 ALT=' X.' " +
    "TITLE='X.'><sub><i>c</i></sub> ";
  althtmldef "Xc." as ' &times;<sub><i>c</i></sub> ';
  latexdef "Xc." as "\times_c";
htmldef "1stF" as
    " <IMG SRC='_1st.gif' WIDTH=15 HEIGHT=19 ALT=' 1st' TITLE='1st'>" +
    "<sub><i>F</i></sub> ";
  althtmldef "1stF" as ' 1<SUP>st</SUP><sub><i>F</i></sub> ';
  latexdef "1stF" as " 1^{\rm st}{}_F ";
htmldef "2ndF" as
    " <IMG SRC='_2nd.gif' WIDTH=21 HEIGHT=19 ALT=' 2nd' TITLE='2nd'>" +
    "<sub><i>F</i></sub> ";
  althtmldef "2ndF" as ' 2<SUP>nd</SUP><sub><i>F</i></sub> ';
  latexdef "2ndF" as " 2^{\rm nd}{}_F ";
htmldef "pairF" as ' &lang;,&rang;<sub><i>F</i></sub> ';
  althtmldef "pairF" as ' &lang;,&rang;<sub><i>F</i></sub> ';
  latexdef "pairF" as " \langle,\rangle_F ";
htmldef "evalF" as ' eval<sub><i>F</i></sub> ';
  althtmldef "evalF" as ' eval<sub><i>F</i></sub> ';
  latexdef "evalF" as " {\rm eval}_F ";
htmldef "curryF" as ' curry<sub><i>F</i></sub> ';
  althtmldef "curryF" as ' curry<sub><i>F</i></sub> ';
  latexdef "curryF" as " {\rm curry}_F ";
htmldef "uncurryF" as ' uncurry<sub><i>F</i></sub> ';
  althtmldef "uncurryF" as ' uncurry<sub><i>F</i></sub> ';
  latexdef "uncurryF" as " {\rm uncurry}_F ";
htmldef "DiagFunc" as "&Delta;<sub>func</sub>";
  althtmldef "DiagFunc" as "&Delta;<sub>func</sub>";
  latexdef "DiagFunc" as "\Delta_{func}";
htmldef "HomF" as 'Hom<sub><i>F</i></sub>';
  althtmldef "HomF" as 'Hom<sub><i>F</i></sub>';
  latexdef "HomF" as "{\rm Hom}_F";
htmldef "Yon" as "Yon"; althtmldef "Yon" as "Yon";
  latexdef "Yon" as "{\rm Yon}";
htmldef "Preset" as
   " <IMG SRC='_preset.gif' WIDTH=41 HEIGHT=19 ALT=' Preset' TITLE='Preset'> ";
  althtmldef "Preset" as " Preset ";
  latexdef "Preset" as "{\rm Preset}";
htmldef "Dirset" as "Dirset";
  althtmldef "Dirset" as "Dirset";
  latexdef "Dirset" as "\mathrm{Dirset}";
htmldef "Poset" as
    "<IMG SRC='_poset.gif' WIDTH=35 HEIGHT=19 ALT=' Poset' TITLE='Poset'>";
  althtmldef "Poset" as "Poset";
  latexdef "Poset" as "{\rm Poset}";
htmldef "lt" as
    "<IMG SRC='_rmlt.gif' WIDTH=10 HEIGHT=19 ALT=' lt' TITLE='lt'>";
  althtmldef "lt" as "lt";
  latexdef "lt" as "{\rm lt}";
htmldef "lub" as
    "<IMG SRC='_lub.gif' WIDTH=20 HEIGHT=19 ALT=' lub' TITLE='lub'>";
  althtmldef "lub" as "lub";
  latexdef "lub" as "{\rm lub}";
htmldef "glb" as
    "<IMG SRC='_glb.gif' WIDTH=20 HEIGHT=19 ALT=' glb' TITLE='glb'>";
  althtmldef "glb" as "glb";
  latexdef "glb" as "{\rm glb}";
htmldef "join" as
    "<IMG SRC='_join.gif' WIDTH=25 HEIGHT=19 ALT=' join' TITLE='join'>";
  althtmldef "join" as "join";
  latexdef "join" as "{\rm join}";
htmldef "meet" as
    "<IMG SRC='_meet.gif' WIDTH=32 HEIGHT=19 ALT=' meet' TITLE='meet'>";
  althtmldef "meet" as "meet";
  latexdef "meet" as "{\rm meet}";
htmldef "Toset" as "Toset";
  althtmldef "Toset" as "Toset";
  latexdef "Toset" as "{\rm Toset}";
htmldef "1." as
    "<IMG SRC='_1dot.gif' WIDTH=10 HEIGHT=19 ALT=' 1.' TITLE='1.'>";
  althtmldef "1." as "1.";
  latexdef "1." as "1.";
htmldef "0." as
    "<IMG SRC='_0dot.gif' WIDTH=11 HEIGHT=19 ALT=' 0.' TITLE='0.'>";
  althtmldef "0." as "0.";
  latexdef "0." as "0.";
htmldef "Lat" as
    "<IMG SRC='_lat.gif' WIDTH=23 HEIGHT=19 ALT=' Lat' TITLE='Lat'>";
  althtmldef "Lat" as "Lat";
  latexdef "Lat" as "{\rm Lat}";
htmldef "CLat" as
    "<IMG SRC='_clat.gif' WIDTH=33 HEIGHT=19 ALT=' CLat' TITLE='CLat'>";
  althtmldef "CLat" as "CLat";
  latexdef "CLat" as "{\rm CLat}";
htmldef "ODual" as "ODual";
  althtmldef "ODual" as "ODual";
  latexdef "ODual" as "\mathrm{ODual}";
htmldef "toInc" as "toInc";
  althtmldef "toInc" as "toInc";
  latexdef "toInc" as "\mathrm{toInc}";
htmldef "DLat" as "DLat";
  althtmldef "DLat" as "DLat";
  latexdef "DLat" as "\mathrm{DLat}";
htmldef "PosetRel" as
    "<IMG SRC='_posetrel.gif' WIDTH=56 HEIGHT=19 " +
    "ALT=' PosetRel' TITLE='PosetRel'>";
  althtmldef "PosetRel" as "PosetRel";
  latexdef "PosetRel" as "{\rm PosetRel}";
htmldef "TosetRel" as " <IMG SRC='_tosetrel.gif' WIDTH=55 HEIGHT=19 " +
    "ALT=' TosetRel' TITLE='TosetRel'> ";
  althtmldef "TosetRel" as " TosetRel ";
  latexdef "TosetRel" as "{\rm TosetRel}";
/* obsolete as of 28-Aug-2018.  -NM
htmldef "supw" as
    " <IMG SRC='_sup.gif' WIDTH=22 HEIGHT=19 ALT=' sup' TITLE='sup'>" +
    "<IMG SRC='subrmw.gif' WIDTH=10 HEIGHT=19 ALT='w' TITLE='w'> ";
  althtmldef "supw" as " sup<SUB>w</SUB> ";
  latexdef "supw" as "{\rm sup}_{\rm w}";
htmldef "infw" as
    " <IMG SRC='_inf.gif' WIDTH=18 HEIGHT=19 ALT=' inf' TITLE='inf'>" +
    "<IMG SRC='subrmw.gif' WIDTH=10 HEIGHT=19 ALT='w' TITLE='w'> ";
  althtmldef "infw" as " inf<SUB>w</SUB> ";
  latexdef "infw" as "{\rm inf}_{\rm w}";
htmldef "LatRel" as
    "<IMG SRC='_latrel.gif' WIDTH=44 HEIGHT=19 ALT=' LatRel' TITLE='LatRel'>";
  althtmldef "LatRel" as "LatRel";
  latexdef "LatRel" as "{\rm LatRel}";
*/
htmldef "DirRel" as
    "<IMG SRC='_dirrel.gif' WIDTH=41 HEIGHT=19 ALT=' DirRel' TITLE='DirRel'>";
  althtmldef "DirRel" as "DirRel";
  latexdef "DirRel" as "{\rm DirRel}";
htmldef "tail" as
    "<IMG SRC='_tail.gif' WIDTH=22 HEIGHT=19 ALT=' tail' TITLE='tail'>";
  althtmldef "tail" as "tail";
  latexdef "tail" as "{\rm tail}";
htmldef "Mgm" as 'Mgm';
  althtmldef "Mgm" as 'Mgm';
  latexdef "Mgm" as "{\rm Mgm}";
htmldef "SGrp" as 'SGrp';
  althtmldef "SGrp" as 'SGrp';
  latexdef "SGrp" as "{\rm SGrp}";
htmldef "Mnd" as
    "<IMG SRC='_mnd.gif' WIDTH=28 HEIGHT=19 ALT=' Mnd' TITLE='Mnd'>";
  althtmldef "Mnd" as "Mnd";
  latexdef "Mnd" as "{\rm Mnd}";
htmldef "Grp" as
    "<IMG SRC='_grp.gif' WIDTH=25 HEIGHT=19 ALT=' Grp' TITLE='Grp'>";
  althtmldef "Grp" as "Grp";
  latexdef "Grp" as "{\rm Grp}";
htmldef "invg" as "<IMG SRC='_inv.gif' WIDTH=19 HEIGHT=19 ALT=' inv' " +
    "TITLE='inv'><IMG SRC='subg.gif' WIDTH=7 HEIGHT=19 ALT='g' TITLE='g'>";
  althtmldef "invg" as "inv<SUB>g</SUB>";
  latexdef "invg" as "{\rm inv}_{\rm g}";
htmldef "+f" as "<IMG SRC='plus.gif' WIDTH=13 HEIGHT=19 ALT=' +' TITLE='+'>" +
    "<IMG SRC='subf.gif' WIDTH=6 HEIGHT=19 ALT='f' TITLE='f'>";
  althtmldef "+f" as '+<SUB>&#x1D453;</SUB>';
  latexdef "+f" as "+_f";
htmldef "-g" as
    "<IMG SRC='_minusg.gif' WIDTH=17 HEIGHT=19 ALT=' -g' TITLE='-g'>";
  althtmldef "-g" as "-<SUB>g</SUB>";
  latexdef "-g" as "-_{\rm g}";
htmldef ".g" as ".<SUB>g</SUB>";
  althtmldef ".g" as ".<SUB>g</SUB>";
  latexdef ".g" as "\cdot_{\rm g}";
htmldef "MndHom" as " MndHom ";
  althtmldef "MndHom" as " MndHom ";
  latexdef "MndHom" as " {\rm MndHom} ";
htmldef "SubMnd" as "SubMnd";
  althtmldef "SubMnd" as "SubMnd";
  latexdef "SubMnd" as "{\rm SubMnd}";
htmldef "Word" as "Word ";
  althtmldef "Word" as "Word ";
  latexdef "Word" as "\mathrm{Word }";
htmldef "lastS" as ' lastS ';
  althtmldef "lastS" as ' lastS ';
  latexdef "lastS" as "{\rm lastS}";
htmldef "++" as " ++ ";
  althtmldef "++" as " ++ ";
  latexdef "++" as "\mathrm{ ++ }";
htmldef '<"' as
    "<IMG SRC='langle.gif' WIDTH=4 HEIGHT=19 ALT=' &lt;' TITLE='&lt;'>" +
    "<IMG SRC='backquote.gif' WIDTH=7 HEIGHT=19 ALT='" + '"' +
      "' TITLE='" + '"' + "'>";
  althtmldef '<"' as '&lang;&ldquo;'; /* &#9001;&#8220; */
  latexdef '<"' as "\langle``";
htmldef '">' as
    "<IMG SRC='quote.gif' WIDTH=7 HEIGHT=19 ALT=' " + '"' +
      "' TITLE='" + '"' + "'>" +
    "<IMG SRC='rangle.gif' WIDTH=4 HEIGHT=19 ALT='&gt;' TITLE='&gt;'>";
  althtmldef '">' as '&rdquo;&rang;'; /* &#8221;&#9002; */
  latexdef '">' as "''\rangle";
htmldef "substr" as " substr ";
  althtmldef "substr" as " substr ";
  latexdef "substr" as "\mathrm{ substr }";
htmldef "splice" as " splice ";
  althtmldef "splice" as " splice ";
  latexdef "splice" as "\mathrm{ splice }";
htmldef "reverse" as "reverse";
  althtmldef "reverse" as "reverse";
  latexdef "reverse" as "\mathrm{reverse}";
htmldef "repeatS" as ' repeatS ';
  althtmldef "repeatS" as ' repeatS ';
  latexdef "repeatS" as "{\rm repeatS}";
htmldef "cyclShift" as ' cyclShift ';
  althtmldef "cyclShift" as ' cyclShift ';
  latexdef "cyclShift" as "{\rm cyclShift}";
htmldef "freeMnd" as "freeMnd"; althtmldef "freeMnd" as "freeMnd";
  latexdef "freeMnd" as "{\rm freeMnd}";
htmldef "varFMnd" as "var<SUB><I>FMnd</I></SUB>";
  althtmldef "varFMnd" as "var<SUB><I>FMnd</I></SUB>";
  latexdef "varFMnd" as "{\rm var}_{FMnd}";
htmldef "~QG" as " ~<sub><i>QG</i></sub> ";
  althtmldef "~QG" as " ~<sub><i>QG</i></sub> ";
  latexdef "~QG" as " \sim_{QG} ";
htmldef "SubGrp" as "SubGrp"; althtmldef "SubGrp" as "SubGrp";
  latexdef "SubGrp" as "{\rm SubGrp}";
htmldef "NrmSGrp" as "NrmSGrp"; althtmldef "NrmSGrp" as "NrmSGrp";
  latexdef "NrmSGrp" as "{\rm NrmSGrp}";
htmldef "GrpHom" as
   " <IMG SRC='_grphom.gif' WIDTH=54 HEIGHT=19 ALT=' GrpHom' TITLE='GrpHom'> ";
  althtmldef "GrpHom" as " GrpHom ";
  latexdef "GrpHom" as "{\rm GrpHom}";
htmldef "GrpIso" as " GrpIso ";
  althtmldef "GrpIso" as " GrpIso ";
  latexdef "GrpIso" as "{\rm GrpIso}";
htmldef "~=g" as " <IMG SRC='simeq.gif' WIDTH=26 HEIGHT=19 " +
    "ALT=' ~=g' TITLE='~=g'><SUB>&#x1D454;</SUB> ";
  althtmldef "~=g" as " &#8771;<SUB>&#x1D454;</SUB> ";
  latexdef "~=g" as "\simeq_{g}";
htmldef "GrpAct" as
   " <IMG SRC='_grpact.gif' WIDTH=48 HEIGHT=19 ALT=' GrpAct' TITLE='GrpAct'> ";
  althtmldef "GrpAct" as " GrpAct ";
  latexdef "GrpAct" as "{\rm GrpAct}";
htmldef "od" as "<IMG SRC='_od.gif' WIDTH=15 HEIGHT=19 ALT=' od' TITLE='od'>";
  althtmldef "od" as "od";
  latexdef "od" as "\rm{od}";
htmldef "gEx" as "gEx";
  althtmldef "gEx" as "gEx";
  latexdef "gEx" as "{\rm gEx}";
htmldef "pGrp" as " pGrp ";
  althtmldef "pGrp" as " pGrp ";
  latexdef "pGrp" as "{\rm pGrp}";
htmldef "pSyl" as " pSyl ";
  althtmldef "pSyl" as " pSyl ";
  latexdef "pSyl" as "{\rm pSyl}";
htmldef "~FG" as " ~<sub><i>FG</i></sub> ";
  althtmldef "~FG" as " ~<sub><i>FG</i></sub> ";
  latexdef "~FG" as " \sim_{FG} ";
htmldef "freeGrp" as "freeGrp"; althtmldef "freeGrp" as "freeGrp";
  latexdef "freeGrp" as "{\rm freeGrp}";
htmldef "varFGrp" as "var<SUB><I>FGrp</I></SUB>";
  althtmldef "varFGrp" as "var<SUB><I>FGrp</I></SUB>";
  latexdef "varFGrp" as "{\rm var}_{FGrp}";
htmldef "CMnd" as "CMnd";
  althtmldef "CMnd" as "CMnd";
  latexdef "CMnd" as "{\rm CMnd}";
htmldef "CycGrp" as "CycGrp";
  althtmldef "CycGrp" as "CycGrp";
  latexdef "CycGrp" as "{\rm CycGrp}";
htmldef "DProd" as " DProd ";
  althtmldef "DProd" as " DProd ";
  latexdef "DProd" as "{\rm DProd }";
htmldef "dProj" as "dProj";
  althtmldef "dProj" as "dProj";
  latexdef "dProj" as "{\rm dProj}";
htmldef "Abel" as
    "<IMG SRC='_abel.gif' WIDTH=28 HEIGHT=19 ALT=' Abel' TITLE='Abel'>";
  althtmldef "Abel" as "Abel";
  latexdef "Abel" as "{\rm Abel}";
htmldef "oppG" as "opp<sub><i>g</i></sub>";
  althtmldef "oppG" as "opp<sub><i>g</i></sub>";
  latexdef "oppG" as "{\rm opp}_g";
htmldef "SymGrp" as
    "<IMG SRC='_symgrp.gif' WIDTH=53 HEIGHT=19 ALT=' SymGrp' TITLE='SymGrp'>";
  althtmldef "SymGrp" as "SymGrp";
  latexdef "SymGrp" as "{\rm SymGrp}";
htmldef "pmTrsp" as "pmTrsp";
  althtmldef "pmTrsp" as "pmTrsp";
  latexdef "pmTrsp" as "\mathrm{pmTrsp}";
htmldef "pmSgn" as "pmSgn";
  althtmldef "pmSgn" as "pmSgn";
  latexdef "pmSgn" as "\mathrm{pmSgn}";
htmldef "pmEven" as "pmEven";
  althtmldef "pmEven" as "pmEven";
  latexdef "pmEven" as "\mathrm{pmEven}";
htmldef "mulGrp" as "mulGrp";
  althtmldef "mulGrp" as "mulGrp";
  latexdef "mulGrp" as "{\rm mulGrp}";
htmldef "SRing" as "SRing";
  althtmldef "SRing" as "SRing";
  latexdef "SRing" as "{\rm SRing}";
htmldef "Ring" as
    "<IMG SRC='_ring.gif' WIDTH=30 HEIGHT=19 ALT=' Ring' TITLE='Ring'>";
  althtmldef "Ring" as "Ring";
  latexdef "Ring" as "{\rm Ring}";
htmldef "CRing" as
    "<IMG SRC='_cring.gif' WIDTH=40 HEIGHT=19 ALT=' CRing' TITLE='CRing'>";
  althtmldef "CRing" as "CRing";
  latexdef "CRing" as "{\rm CRing}";
htmldef "1r" as "<IMG SRC='_1r.gif' WIDTH=13 HEIGHT=19 ALT=' 1r' TITLE='1r'>";
  althtmldef "1r" as "1<SUB>r</SUB>";
  latexdef "1r" as "1_{\rm r}{\rm }";
htmldef "oppR" as "opp<sub><i>r</i></sub>";
  althtmldef "oppR" as "opp<sub><i>r</i></sub>";
  latexdef "oppR" as "{\rm opp}_r";
htmldef "||r" as "<IMG SRC='parallel.gif' WIDTH=5 HEIGHT=19 ALT=' ||' " +
    "TITLE='||'><sub><i>r</i></sub>";
  althtmldef "||r" as "&#8741;<sub><i>r</i></sub>";
  latexdef "||r" as "\parallel_r";
htmldef "Unit" as "Unit"; althtmldef "Unit" as "Unit";
  latexdef "Unit" as "{\rm Unit}";
htmldef "Irred" as "Irred"; althtmldef "Irred" as "Irred";
  latexdef "Irred" as "{\rm Irred}";
htmldef "invr" as
    "<IMG SRC='_invr.gif' WIDTH=23 HEIGHT=19 ALT=' invr' TITLE='invr'>";
  althtmldef "invr" as "inv<SUB>r</SUB>";
  latexdef "invr" as "{\rm inv}_r";
htmldef "/r" as "/<SUB>r</SUB>";
  althtmldef "/r" as "/<SUB>r</SUB>";
  latexdef "/r" as "/_r";
htmldef "RPrime" as "RPrime";
  althtmldef "RPrime" as "RPrime";
  latexdef "RPrime" as "\mathsc{RPrime}";
htmldef "RingHom" as " RingHom "; althtmldef "RingHom" as " RingHom ";
  latexdef "RingHom" as " {\rm RingHom} ";
htmldef "RingIso" as " RingIso "; althtmldef "RingIso" as " RingIso ";
  latexdef "RingIso" as " {\rm RingIso} ";
htmldef "~=r" as
    " <IMG SRC='_simeqr.gif' WIDTH=18 HEIGHT=19 ALT=' ~=r' TITLE='~=r'> ";
  althtmldef "~=r" as " &#8771;<SUB>&#x1D45F;</SUB> ";
  latexdef "~=r" as "\simeq_r";
htmldef "DivRing" as
  "<IMG SRC='_divring.gif' WIDTH=52 HEIGHT=19 ALT=' DivRing' TITLE='DivRing'>";
  althtmldef "DivRing" as "DivRing";
  latexdef "DivRing" as "{\rm DivRing}";
htmldef "Field" as "Field";
  althtmldef "Field" as "Field";
  latexdef "Field" as "\mathrm{Field}";
htmldef "SubRing" as "SubRing"; althtmldef "SubRing" as "SubRing";
  latexdef "SubRing" as "{\rm SubRing}";
htmldef "RingSpan" as "RingSpan";
  althtmldef "RingSpan" as "RingSpan";
  latexdef "RingSpan" as "{\rm RingSpan}";
htmldef "AbsVal" as "AbsVal";
  althtmldef "AbsVal" as "AbsVal";
  latexdef "AbsVal" as "{\rm AbsVal}";
htmldef "*Ring" as "<IMG SRC='_astring.gif' " +
    "WIDTH=41 HEIGHT=19 ALT=' *Ring' TITLE='*Ring'>";
  althtmldef "*Ring" as "*-Ring";
  latexdef "*Ring" as "\ast{\rm -Ring}";
htmldef "*rf" as "<IMG SRC='ast.gif' WIDTH=7 HEIGHT=19 ALT=' *' TITLE='*'>" +
    "<IMG SRC='subr.gif' WIDTH=5 HEIGHT=19 ALT='r' TITLE='r'>" +
    "<IMG SRC='subf.gif' WIDTH=6 HEIGHT=19 ALT='f' TITLE='f'>";
  althtmldef "*rf" as "*<SUB><I>rf</I></SUB>";
  latexdef "*rf" as "\ast_{rf}";
htmldef "LMod" as
    "<IMG SRC='_lmod.gif' WIDTH=36 HEIGHT=19 ALT=' LMod' TITLE='LMod'>";
  althtmldef "LMod" as "LMod";
  latexdef "LMod" as "{\rm LMod}";
htmldef ".sf" as
    "<IMG SRC='_cds.gif' WIDTH=9 HEIGHT=19 ALT=' .s' TITLE='.s'>" +
    "<IMG SRC='subf.gif' WIDTH=6 HEIGHT=19 ALT='f' TITLE='f'>";
  althtmldef ".sf" as ' <B>&middot;</B><SUB><I>sf</I></SUB> ';
  latexdef ".sf" as '\cdot_{sf}';
htmldef "LSubSp" as
    "<IMG SRC='_lsubsp.gif' WIDTH=49 HEIGHT=19 ALT=' LSubSp' TITLE='LSubSp'>";
  althtmldef "LSubSp" as "LSubSp";
  latexdef "LSubSp" as "{\rm LSubSp}";
htmldef "LSpan" as
    "<IMG SRC='_lspan.gif' WIDTH=41 HEIGHT=19 ALT=' LSpan' TITLE='LSpan'>";
  althtmldef "LSpan" as "LSpan";
  latexdef "LSpan" as "{\rm LSpan}";
htmldef "LMHom" as " LMHom ";
  althtmldef "LMHom" as " LMHom ";
  latexdef "LMHom" as "{\rm LMHom}";
htmldef "LMIso" as " LMIso ";
  althtmldef "LMIso" as " LMIso ";
  latexdef "LMIso" as "{\rm LMIso}";
htmldef "~=m" as " <IMG SRC='simeq.gif' WIDTH=26 HEIGHT=19 " +
    "ALT=' ~=ph' TITLE='~=ph'><SUB>&#x1D45A;</SUB> ";
  althtmldef "~=m" as " &#8771;<SUB>&#x1D45A;</SUB> ";
  latexdef "~=m" as "\simeq_{m}";
htmldef "LBasis" as "LBasis";
  althtmldef "LBasis" as "LBasis";
  latexdef "LBasis" as "{\rm LBasis}";
htmldef "LSSum" as
    "<IMG SRC='_lssum.gif' WIDTH=45 HEIGHT=19 ALT=' LSSum' TITLE='LSSum'>";
  althtmldef "LSSum" as "LSSum";
  latexdef "LSSum" as "{\rm LSSum}";
htmldef "proj1" as
    "<IMG SRC='_proj.gif' WIDTH=24 HEIGHT=19 ALT=' proj' TITLE='proj'>" +
    "<IMG SRC='sub1.gif' WIDTH=4 HEIGHT=19 ALT='1' TITLE='1'>";
  althtmldef "proj1" as 'proj<SUB>1</SUB>';
  latexdef "proj1" as '{\rm proj}_1';
htmldef "LVec" as
    "<IMG SRC='_lvec.gif' WIDTH=33 HEIGHT=19 ALT=' LVec' TITLE='LVec'>";
  althtmldef "LVec" as "LVec";
  latexdef "LVec" as "{\rm LVec}";
htmldef "subringAlg" as "subringAlg ";
  althtmldef "subringAlg" as "subringAlg ";
  latexdef "subringAlg" as "{\rm subringAlg}";
htmldef "ringLMod" as "ringLMod";
  althtmldef "ringLMod" as "ringLMod";
  latexdef "ringLMod" as "{\rm ringLMod}";
htmldef "RSpan" as "RSpan"; althtmldef "RSpan" as "RSpan";
  latexdef "RSpan" as "{\rm RSpan}";
htmldef "LIdeal" as "LIdeal";
  althtmldef "LIdeal" as "LIdeal";
  latexdef "LIdeal" as "{\rm LIdeal}";
htmldef "2Ideal" as "2Ideal";
  althtmldef "2Ideal" as "2Ideal";
  latexdef "2Ideal" as "{\rm 2Ideal}";
htmldef "LPIdeal" as "LPIdeal";
  althtmldef "LPIdeal" as "LPIdeal";
  latexdef "LPIdeal" as "{\rm LPIdeal}";
/*
htmldef "Top1c" as "Top1c";
  althtmldef "Top1c" as "Top1c";
  latexdef "Top1c" as "{\rm Top1c}";
htmldef "Top2c" as "Top2c";
  althtmldef "Top2c" as "Top2c";
  latexdef "Top2c" as "{\rm Top2c}";
*/
htmldef "LPIR" as "LPIR";
  althtmldef "LPIR" as "LPIR";
  latexdef "LPIR" as "{\rm LPIR}";
htmldef "NzRing" as "NzRing";
  althtmldef "NzRing" as "NzRing";
  latexdef "NzRing" as "{\rm NzRing}";
htmldef "RLReg" as "RLReg";
  althtmldef "RLReg" as "RLReg";
  latexdef "RLReg" as "\mathrm{RLReg}";
htmldef "Domn" as "Domn";
  althtmldef "Domn" as "Domn";
  latexdef "Domn" as "\mathrm{Domn}";
htmldef "IDomn" as "IDomn";
  althtmldef "IDomn" as "IDomn";
  latexdef "IDomn" as "\mathrm{IDomn}";
htmldef "PID" as "PID";
  althtmldef "PID" as "PID";
  latexdef "PID" as "\mathrm{PID}";
/*
htmldef "UFD" as "UFD";
  althtmldef "UFD" as "UFD";
  latexdef "UFD" as "\mathsc{UFD}";
*/
htmldef "AssAlg" as "AssAlg"; althtmldef "AssAlg" as "AssAlg";
  latexdef "AssAlg" as "{\rm AssAlg}";
htmldef "AlgSpan" as "AlgSpan"; althtmldef "AlgSpan" as "AlgSpan";
  latexdef "AlgSpan" as "{\rm AlgSpan}";
htmldef "algSc" as "algSc";
  althtmldef "algSc" as "algSc";
  latexdef "algSc" as "{\rm algSc}";
htmldef "mPwSer" as " mPwSer "; althtmldef "mPwSer" as " mPwSer ";
  latexdef "mPwSer" as " {\rm mPwSer} ";
htmldef "mVar" as " mVar "; althtmldef "mVar" as " mVar ";
  latexdef "mVar" as " {\rm mVar} ";
htmldef "mPoly" as " mPoly "; althtmldef "mPoly" as " mPoly ";
  latexdef "mPoly" as " {\rm mPoly} ";
htmldef "evalSub" as " evalSub "; althtmldef "evalSub" as " evalSub ";
  latexdef "evalSub" as " {\rm evalSub} ";
htmldef "eval" as " eval "; althtmldef "eval" as " eval ";
  latexdef "eval" as " {\rm eval} ";
htmldef "mHomP" as " mHomP "; althtmldef "mHomP" as " mHomP ";
  latexdef "mHomP" as " {\rm mHomP} ";
htmldef "mPSDer" as " mPSDer "; althtmldef "mPSDer" as " mPSDer ";
  latexdef "mPSDer" as " {\rm mPSDer} ";
htmldef "<bag" as " <IMG SRC='lt.gif' WIDTH=11 HEIGHT=19 ALT=' &lt;' " +
    "TITLE='&lt;'><sub>bag</sub> ";
  althtmldef "<bag" as " &lt;<sub>bag</sub> ";
  latexdef "<bag" as "<_{\rm bag}";
htmldef "ordPwSer" as " ordPwSer "; althtmldef "ordPwSer" as " ordPwSer ";
  latexdef "ordPwSer" as "{\rm ordPwSer}";
htmldef "selectVars" as " selectVars ";
  althtmldef "selectVars" as " selectVars ";
  latexdef "selectVars" as " {\rm selectVars} ";
htmldef "mDeg" as " mDeg "; althtmldef "mDeg" as " mDeg ";
  latexdef "mDeg" as " {\rm mDeg} ";
htmldef "AlgInd" as " AlgInd "; althtmldef "AlgInd" as " AlgInd ";
  latexdef "AlgInd" as " {\rm AlgInd} ";
htmldef "PwSer1" as "PwSer<sub>1</sub>";
  althtmldef "PwSer1" as "PwSer<sub>1</sub>";
  latexdef "PwSer1" as "{\rm PwSer}_1";
htmldef "var1" as "var<sub>1</sub>"; althtmldef "var1" as "var<sub>1</sub>";
  latexdef "var1" as "{\rm var}_1";
htmldef "Poly1" as "Poly<sub>1</sub>";
  althtmldef "Poly1" as "Poly<sub>1</sub>";
  latexdef "Poly1" as "{\rm Poly}_1";
htmldef "evalSub1" as " evalSub<sub>1</sub> ";
  althtmldef "evalSub1" as " evalSub<sub>1</sub> ";
  latexdef "evalSub1" as " {\rm evalSub}_1 ";
htmldef "eval1" as "eval<sub>1</sub>";
  althtmldef "eval1" as "eval<sub>1</sub>";
  latexdef "eval1" as "{\rm eval}_1";
htmldef "deg1" as " deg<sub>1</sub> ";
  althtmldef "deg1" as " deg<sub>1</sub> ";
  latexdef "deg1" as " {\rm deg}_1 ";
htmldef "coe1" as "coe<sub>1</sub>"; althtmldef "coe1" as "coe<sub>1</sub>";
  latexdef "coe1" as "{\rm coe}_1";
htmldef "toPoly1" as "toPoly<sub>1</sub>";
  althtmldef "toPoly1" as "toPoly<sub>1</sub>";
  latexdef "toPoly1" as "{\rm toPoly}_1";
htmldef "*Met" as
    "<IMG SRC='infty.gif' WIDTH=17 HEIGHT=19 ALT=' *' TITLE='*'>" +
    "<IMG SRC='_met.gif' WIDTH=25 HEIGHT=19 ALT='Met' TITLE='Met'>";
  althtmldef "*Met" as "&infin;Met";
  latexdef "*Met" as "\infty{\rm Met}";
htmldef "Met" as
    "<IMG SRC='_met.gif' WIDTH=25 HEIGHT=19 ALT=' Met' TITLE='Met'>";
  althtmldef "Met" as "Met";
  latexdef "Met" as "{\rm Met}";
htmldef "ball" as
    "<IMG SRC='_ball.gif' WIDTH=24 HEIGHT=19 ALT=' ball' TITLE='ball'>";
  althtmldef "ball" as "ball";
  latexdef "ball" as "{\rm ball}";
htmldef "MetOpen" as
  "<IMG SRC='_metopen.gif' WIDTH=59 HEIGHT=19 ALT=' MetOpen' TITLE='MetOpen'>";
  althtmldef "MetOpen" as "MetOpen";
  latexdef "MetOpen" as "{\rm MetOpen}";
htmldef "CCfld" as "&#8450;<SUB>fld</SUB>";
    /* 2-Jan-2016 reverted sans-serif */
  althtmldef "CCfld" as "&#8450;<SUB>fld</SUB>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "CCfld" as "{\rm CCfld}";
htmldef "ZZring" as "&#8484;<SUB>ring</SUB>";
  althtmldef "ZZring" as "&#8484;<SUB>ring</SUB>";
  latexdef "ZZring" as "{\rm ZZring}";
htmldef "RR^" as "&#8477;^";
  althtmldef "RR^" as "&#8477;^";
  latexdef "RR^" as "{\rm RR^}";
htmldef "EEhil" as "&#x1D53C;<SUB>hil</SUB>";
  althtmldef "EEhil" as "&#x1D53C;<SUB>hil</SUB>";
  latexdef "EEhil" as "{\rm EEhil}";
htmldef "ZRHom" as
    "<IMG SRC='bbz.gif' WIDTH=13 HEIGHT=19 ALT=' Z' TITLE='Z'>RHom";
  althtmldef "ZRHom" as "&#8484;RHom";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "ZRHom" as "{\rm ZRHom}";
htmldef "ZMod" as
    "<IMG SRC='bbz.gif' WIDTH=13 HEIGHT=19 ALT=' Z' TITLE='Z'>Mod";
  althtmldef "ZMod" as "&#8484;Mod";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "ZMod" as "{\rm ZMod}";
htmldef "chr" as "chr";
  althtmldef "chr" as "chr";
  latexdef "chr" as "\mathrm{chr}";
htmldef "Z/nZ" as "&#8484;/<i>n</i>&#8484;";
    /* 2-Jan-2016 reverted sans-serif */
  althtmldef "Z/nZ" as "&#8484;/<i>n</i>&#8484;";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "Z/nZ" as "{\rm Z/nZ}";
htmldef "RRfld" as "RRfld";
  althtmldef "RRfld" as "&#8477;<SUB>fld</SUB>";
  latexdef "RRfld" as "{\mathbb{R}_{\mathrm{fld}}}";
htmldef "PreHil" as
    "<IMG SRC='_prehil.gif' WIDTH=40 HEIGHT=19 ALT=' PreHil' TITLE='PreHil'>";
  althtmldef "PreHil" as "PreHil";
  latexdef "PreHil" as "{\rm PreHil}";
htmldef ".if" as
    "<IMG SRC='_cdi.gif' WIDTH=7 HEIGHT=19 ALT=' .i' TITLE='.i'>" +
    "<IMG SRC='subf.gif' WIDTH=6 HEIGHT=19 ALT='f' TITLE='f'>";
  althtmldef ".if" as '<B>&middot;</B><SUB><I>if</I></SUB>';
  latexdef ".if" as '\cdot_{if}';
htmldef "ocv" as
    "<IMG SRC='_ocv.gif' WIDTH=22 HEIGHT=19 ALT=' ocv' TITLE='ocv'>";
  althtmldef "ocv" as "ocv";
  latexdef "ocv" as "{\rm ocv}";
htmldef "CSubSp" as
    "<IMG SRC='_csubsp.gif' WIDTH=50 HEIGHT=19 ALT=' CSubSp' TITLE='CSubSp'>";
  althtmldef "CSubSp" as "CSubSp";
  latexdef "CSubSp" as "{\rm CSubSp}";
htmldef "toHL" as "toHL"; althtmldef "toHL" as "toHL";
  latexdef "toHL" as "{\rm toHL}";
htmldef "proj" as
    "<IMG SRC='_proj.gif' WIDTH=24 HEIGHT=19 ALT=' proj' TITLE='proj'>";
  althtmldef "proj" as 'proj';
  latexdef "proj" as '{\rm proj}';
htmldef "Hil" as
    "<IMG SRC='_hil.gif' WIDTH=18 HEIGHT=19 ALT=' Hil' TITLE='Hil'>";
  althtmldef "Hil" as "Hil";
  latexdef "Hil" as "{\rm Hil}";
htmldef "OBasis" as "OBasis"; althtmldef "OBasis" as "OBasis";
  latexdef "OBasis" as "{\rm OBasis}";
htmldef "Moore" as "Moore";
  althtmldef "Moore" as "Moore";
  latexdef "Moore" as "\mathrm{Moore}";
htmldef "mrCls" as "mrCls";
  althtmldef "mrCls" as "mrCls";
  latexdef "mrCls" as "\mathrm{mrCls}";
htmldef "mrInd" as "mrInd";
  althtmldef "mrInd" as "mrInd";
  latexdef "mrInd" as "\mathrm{mrInd}";
htmldef "ACS" as "ACS";
  althtmldef "ACS" as "ACS";
  latexdef "ACS" as "\mathrm{ACS}";

/* Basic linear algebra */
htmldef "(+)m" as " <IMG SRC='oplus.gif' WIDTH=13 HEIGHT=19 " +
    "ALT=' (+)' TITLE='(+)'><SUB>m</SUB> ";
  althtmldef "(+)m" as " &#x2295;<SUB>m</SUB> ";
  latexdef "(+)m" as "\oplus_{m}";
htmldef "freeLMod" as " freeLMod ";
  althtmldef "freeLMod" as " freeLMod ";
  latexdef "freeLMod" as "{\rm freeLMod}";
htmldef "unitVec" as " unitVec ";
  althtmldef "unitVec" as " unitVec ";
  latexdef "unitVec" as "{\rm unitVec}";
htmldef "maMul" as " maMul ";
  althtmldef "maMul" as " maMul ";
  latexdef "maMul" as " \mathrm{maMul} ";
htmldef "Mat" as " Mat ";
  althtmldef "Mat" as " Mat ";
  latexdef "Mat" as " \mathrm{Mat} ";
htmldef "DMat" as ' DMat ';
  althtmldef "DMat" as ' DMat ';
  latexdef "DMat" as "{\rm DMat}";
htmldef "ScMat" as ' ScMat ';
  althtmldef "ScMat" as ' ScMat ';
  latexdef "ScMat" as "{\rm ScMat}";
htmldef "maVecMul" as " maVecMul ";
  althtmldef "maVecMul" as " maVecMul ";
  latexdef "maVecMul" as " \mathrm{maVecMul} ";
htmldef "matRRep" as " matRRep ";
  althtmldef "matRRep" as " matRRep ";
  latexdef "matRRep" as " \mathrm{matRRep} ";
htmldef "matRepV" as " matRepV ";
  althtmldef "matRepV" as " matRepV ";
  latexdef "matRepV" as " \mathrm{matRepV} ";
htmldef "maDet" as " maDet ";
  althtmldef "maDet" as " maDet ";
  latexdef "maDet" as " \mathrm{maDet} ";
htmldef "maAdju" as " maAdju ";
  althtmldef "maAdju" as " maAdju ";
  latexdef "maAdju" as " \mathrm{maAdju} ";
htmldef "subMat" as " subMat ";
  althtmldef "subMat" as " subMat ";
  latexdef "subMat" as " \mathrm{subMat} ";
htmldef "minMatR1" as " minMatR1 ";
  althtmldef "minMatR1" as " minMatR1 ";
  latexdef "minMatR1" as " \mathrm{minMatR1} ";
htmldef "ConstPolyMat" as ' ConstPolyMat ';
  althtmldef "ConstPolyMat" as ' ConstPolyMat ';
  latexdef "ConstPolyMat" as "{\rm ConstPolyMat}";
htmldef "matToPolyMat" as ' matToPolyMat ';
  althtmldef "matToPolyMat" as ' matToPolyMat ';
  latexdef "matToPolyMat" as "{\rm matToPolyMat}";
htmldef "cPolyMatToMat" as ' cPolyMatToMat ';
  althtmldef "cPolyMatToMat" as ' cPolyMatToMat ';
  latexdef "cPolyMatToMat" as "{\rm cPolyMatToMat}";
htmldef "decompPMat" as ' decompPMat ';
  althtmldef "decompPMat" as ' decompPMat ';
  latexdef "decompPMat" as "{\rm decompPMat}";
htmldef "pMatToMatPoly" as ' pMatToMatPoly ';
  althtmldef "pMatToMatPoly" as ' pMatToMatPoly ';
  latexdef "pMatToMatPoly" as "{\rm pMatToMatPoly}";
htmldef "CharPlyMat" as ' CharPlyMat ';
  althtmldef "CharPlyMat" as ' CharPlyMat ';
  latexdef "CharPlyMat" as "{\rm CharPlyMat}";

/* Topology */
htmldef "Top" as
    "<IMG SRC='_top.gif' WIDTH=23 HEIGHT=19 ALT=' Top' TITLE='Top'>";
  althtmldef "Top" as "Top";
  latexdef "Top" as "{\rm Top}";
htmldef "TopOn" as "TopOn";
  althtmldef "TopOn" as "TopOn";
  latexdef "TopOn" as "\mathrm{TopOn}";
htmldef "TopSp" as
    "<IMG SRC='_topsp.gif' WIDTH=41 HEIGHT=19 ALT=' TopSp' TITLE='TopSp'>";
  althtmldef "TopSp" as "TopSp";
  latexdef "TopSp" as "{\rm TopSp}";
htmldef "TopBases" as
    "<IMG SRC='_topbases.gif' WIDTH=59 HEIGHT=19 " +
    "ALT=' TopBases' TITLE='TopBases'>";
  althtmldef "TopBases" as "TopBases";
  latexdef "TopBases" as "{\rm TopBases}";
htmldef "int" as
    "<IMG SRC='_int.gif' WIDTH=18 HEIGHT=19 ALT=' int' TITLE='int'>";
  althtmldef "int" as "int";
  latexdef "int" as "{\rm int}";
htmldef "cls" as
    "<IMG SRC='_cls.gif' WIDTH=17 HEIGHT=19 ALT=' cls' TITLE='cls'>";
  althtmldef "cls" as "cls";
  latexdef "cls" as "{\rm cls}";
htmldef "Clsd" as
    "<IMG SRC='_clsd.gif' WIDTH=28 HEIGHT=19 ALT=' Clsd' TITLE='Clsd'>";
  althtmldef "Clsd" as "Clsd";
  latexdef "Clsd" as "{\rm Clsd}";
htmldef "nei" as
    "<IMG SRC='_nei.gif' WIDTH=19 HEIGHT=19 ALT=' nei' TITLE='nei'>";
  althtmldef "nei" as "nei";
  latexdef "nei" as "{\rm nei}";
htmldef "limPt" as
    "<IMG SRC='_limpt.gif' WIDTH=35 HEIGHT=19 ALT=' limPt' TITLE='limPt'>";
  althtmldef "limPt" as "limPt";
  latexdef "limPt" as "{\rm limPt}";
htmldef "Perf" as "Perf";
  althtmldef "Perf" as "Perf";
  latexdef "Perf" as "{\rm Perf}";
htmldef "Cn" as
    " <IMG SRC='_cnf.gif' WIDTH=18 HEIGHT=19 ALT=' Cn' TITLE='Cn'> ";
  althtmldef "Cn" as " Cn ";
  latexdef "Cn" as "{\rm Cn}";
htmldef "CnP" as
    " <IMG SRC='_cnp.gif' WIDTH=27 HEIGHT=19 ALT=' CnP' TITLE='CnP'> ";
  althtmldef "CnP" as " CnP ";
  latexdef "CnP" as "{\rm CnP}";
htmldef "~~>t" as "<IMG SRC='rightsquigarrow.gif' WIDTH=15 HEIGHT=19 " +
    "ALT=' ~~&gt;' TITLE='~~&gt;'>" +
    "<IMG SRC='subt.gif' WIDTH=5 HEIGHT=19 ALT=' t' TITLE='t'>";
  althtmldef "~~>t" as
    "&#8669;<SUB>&#x1D461;</SUB>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "~~>t" as "\rightsquigarrow_t";
htmldef "Kol2" as
    "<IMG SRC='_kol2.gif' WIDTH=27 HEIGHT=19 ALT=' Kol2' TITLE='Kol2'>";
  althtmldef "Kol2" as "Kol2";
  latexdef "Kol2" as "{\rm Kol2}";
htmldef "Fre" as
    "<IMG SRC='_fre.gif' WIDTH=22 HEIGHT=19 ALT=' Fre' TITLE='Fre'>";
  althtmldef "Fre" as "Fre";
  latexdef "Fre" as "{\rm Fre}";
htmldef "Haus" as
    "<IMG SRC='_haus.gif' WIDTH=32 HEIGHT=19 ALT=' Haus' TITLE='Haus'>";
  althtmldef "Haus" as "Haus";
  latexdef "Haus" as "{\rm Haus}";
htmldef "Reg" as
    "<IMG SRC='_reg.gif' WIDTH=25 HEIGHT=19 ALT=' Reg' TITLE='Reg'>";
  althtmldef "Reg" as "Reg";
  latexdef "Reg" as "{\rm Reg}";
htmldef "Nrm" as
    "<IMG SRC='_nrm.gif' WIDTH=28 HEIGHT=19 ALT=' Nrm' TITLE='Nrm'>";
  althtmldef "Nrm" as "Nrm";
  latexdef "Nrm" as "{\rm Nrm}";
htmldef "CNrm" as "CNrm"; althtmldef "CNrm" as "CNrm";
  latexdef "CNrm" as "{\rm CNrm}";
htmldef "PNrm" as "PNrm"; althtmldef "PNrm" as "PNrm";
  latexdef "PNrm" as "{\rm PNrm}";
htmldef "Comp" as
    "<IMG SRC='_comp.gif' WIDTH=37 HEIGHT=19 ALT=' Comp' TITLE='Comp'>";
  althtmldef "Comp" as "Comp";
  latexdef "Comp" as "{\rm Comp}";
htmldef "Conn" as "Conn";
  althtmldef "Conn" as "Conn";
  latexdef "Conn" as "{\rm Conn}";
htmldef "1stc" as "<IMG SRC='_1stc.gif' WIDTH=25 HEIGHT=19 ALT=' 1stc'" +
    " TITLE='1stc'>";
  althtmldef "1stc" as "1<SUP>st</SUP>&#x1D714;"; /* math italic omega */
  latexdef "1stc" as "1^{\rm st}\omega";
htmldef "2ndc" as "<IMG SRC='_2ndc.gif' WIDTH=31 HEIGHT=19 ALT=' 2ndc'" +
    " TITLE='2ndc'>";
  althtmldef "2ndc" as "2<SUP>nd</SUP>&#x1D714;";
  latexdef "2ndc" as "2^{\rm nd}\omega";
htmldef "Locally" as "Locally "; althtmldef "Locally" as "Locally ";
  latexdef "Locally" as "{\rm Locally}";
htmldef "N-Locally" as "&#x1D45B;Locally ";
  althtmldef "N-Locally" as "&#x1D45B;-Locally ";
  latexdef "N-Locally" as "n\mbox{-Locally}";
htmldef "kGen" as "&#x1D458;Gen"; althtmldef "kGen" as "&#x1D458;Gen";
  latexdef "kGen" as "k{\rm Gen}";
htmldef "tX" as
    " <IMG SRC='_timest.gif' WIDTH=14 HEIGHT=19 ALT=' tX' TITLE='tX'> ";
  althtmldef "tX" as " &times;<SUB>t</SUB> ";
  latexdef "tX" as "\times_t";
htmldef "^ko" as
    " <IMG SRC='uparrow.gif' WIDTH=7 HEIGHT=19 ALT=' ^' TITLE='^'>" +
    "<IMG SRC='subk.gif' WIDTH=7 HEIGHT=19 ALT='k' TITLE='k'>" +
    "<IMG SRC='subo.gif' WIDTH=6 HEIGHT=19 ALT='o' TITLE='o'> ";
  althtmldef "^ko" as " ^<SUB><I>ko</I></SUB> ";
  latexdef "^ko" as "\uparrow_{ko}";
htmldef "KQ" as "KQ"; althtmldef "KQ" as "KQ";
  latexdef "KQ" as "{\rm KQ}";
htmldef "Homeo" as
    "<IMG SRC='_homeo.gif' WIDTH=43 HEIGHT=19 ALT=' Homeo' TITLE='Homeo'>";
  althtmldef "Homeo" as "Homeo";
  latexdef "Homeo" as "{\rm Homeo}";
htmldef "~=" as
    " <IMG SRC='simeq.gif' WIDTH=13 HEIGHT=19 ALT=' ~=' TITLE='~='> ";
  althtmldef "~=" as " &#8771; ";
  latexdef "~=" as "\simeq";
htmldef "fBas" as
    "<IMG SRC='_fbas.gif' WIDTH=29 HEIGHT=19 ALT=' fBas' TITLE='fBas'>";
  althtmldef "fBas" as "fBas";
  latexdef "fBas" as "{\rm fBas}";
htmldef "filGen" as
    "<IMG SRC='_filgen.gif' WIDTH=40 HEIGHT=19 ALT=' filGen' TITLE='filGen'>";
  althtmldef "filGen" as "filGen";
  latexdef "filGen" as "{\rm filGen}";
htmldef "Fil" as
    "<IMG SRC='_fil.gif' WIDTH=17 HEIGHT=19 ALT=' Fil' TITLE='Fil'>";
  althtmldef "Fil" as "Fil";
  latexdef "Fil" as "{\rm Fil}";
htmldef "UFil" as
    "<IMG SRC='_ufil.gif' WIDTH=27 HEIGHT=19 ALT=' UFil' TITLE='UFil'>";
  althtmldef "UFil" as "UFil";
  latexdef "UFil" as "{\rm UFil}";
htmldef "UFL" as "UFL";
  althtmldef "UFL" as "UFL";
  latexdef "UFL" as "{\rm UFL}";
htmldef "FilMap" as
   " <IMG SRC='_filmap.gif' WIDTH=45 HEIGHT=19 ALT=' FilMap' TITLE='FilMap'> ";
  althtmldef "FilMap" as " FilMap ";
  latexdef "FilMap" as "{\rm FilMap}";
htmldef "fLimf" as
    " <IMG SRC='_flimf.gif' WIDTH=37 HEIGHT=19 ALT=' fLimf' TITLE='fLimf'> ";
  althtmldef "fLimf" as " fLimf ";
  latexdef "fLimf" as "{\rm fLimf}";
htmldef "fLim" as
    " <IMG SRC='_flim.gif' WIDTH=31 HEIGHT=19 ALT=' fLim' TITLE='fLim'> ";
  althtmldef "fLim" as " fLim ";
  latexdef "fLim" as "{\rm fLim}";
htmldef "fClus" as
    " <IMG SRC='_fclus.gif' WIDTH=34 HEIGHT=19 ALT=' fClus' TITLE='fClus'> ";
  althtmldef "fClus" as " fClus ";
  latexdef "fClus" as "{\rm fClus}";
htmldef "fClusf" as
   " <IMG SRC='_fclusf.gif' WIDTH=40 HEIGHT=19 ALT=' fClusf' TITLE='fClusf'> ";
  althtmldef "fClusf" as " fClusf ";
  latexdef "fClusf" as "{\rm fClusf}";
htmldef "TopMnd" as "TopMnd"; althtmldef "TopMnd" as "TopMnd";
  latexdef "TopMnd" as "{\rm TopMnd}";
htmldef "TopGrp" as
    "<IMG SRC='_topgrp.gif' WIDTH=48 HEIGHT=19 ALT=' TopGrp' TITLE='TopGrp'>";
  althtmldef "TopGrp" as "TopGrp";
  latexdef "TopGrp" as "{\rm TopGrp}";
htmldef "tsums" as " tsums ";
  althtmldef "tsums" as " tsums ";
  latexdef "tsums" as "{\rm tsums}";
htmldef "TopRing" as
    "<IMG SRC='_topring.gif' WIDTH=53 HEIGHT=19 " +
    "ALT=' TopRing' TITLE='TopRing'>";
  althtmldef "TopRing" as "TopRing";
  latexdef "TopRing" as "{\rm TopRing}";
htmldef "TopDRing" as "TopDRing"; althtmldef "TopDRing" as "TopDRing";
  latexdef "TopDRing" as "{\rm TopDRing}";
htmldef "TopMod" as "TopMod"; althtmldef "TopMod" as "TopMod";
  latexdef "TopMod" as "{\rm TopMod}";
htmldef "TopVec" as
    "<IMG SRC='_topvec.gif' WIDTH=43 HEIGHT=19 ALT=' TopVec' TITLE='TopVec'>";
  althtmldef "TopVec" as "TopVec";
  latexdef "TopVec" as "{\rm TopVec}";
htmldef "*MetSp" as
    "<IMG SRC='infty.gif' WIDTH=17 HEIGHT=19 ALT=' *' TITLE='*'>" +
    "<IMG SRC='_metsp.gif' WIDTH=41 HEIGHT=19 ALT='MetSp' TITLE='MetSp'>";
  althtmldef "*MetSp" as "&infin;MetSp";
  latexdef "*MetSp" as "\infty{\rm MetSp}";
htmldef "MetSp" as
    "<IMG SRC='_metsp.gif' WIDTH=41 HEIGHT=19 ALT=' MetSp' TITLE='MetSp'>";
  althtmldef "MetSp" as "MetSp";
  latexdef "MetSp" as "{\rm MetSp}";
htmldef "toMetSp" as "toMetSp"; althtmldef "toMetSp" as "toMetSp";
  latexdef "toMetSp" as "{\rm toMetSp}";
htmldef "norm" as "<IMG SRC='_norm.gif' WIDTH=32 HEIGHT=19 ALT=' norm' " +
    "TITLE='norm'>";
  althtmldef "norm" as 'norm';
  latexdef "norm" as '{\rm norm}';
htmldef "NrmGrp" as "NrmGrp"; althtmldef "NrmGrp" as "NrmGrp";
  latexdef "NrmGrp" as "{\rm NrmGrp}";
htmldef "toNrmGrp" as " toNrmGrp "; althtmldef "toNrmGrp" as " toNrmGrp ";
  latexdef "toNrmGrp" as " {\rm toNrmGrp} ";
htmldef "NrmRing" as "NrmRing"; althtmldef "NrmRing" as "NrmRing";
  latexdef "NrmRing" as "{\rm NrmRing}";
htmldef "NrmMod" as "NrmMod"; althtmldef "NrmMod" as "NrmMod";
  latexdef "NrmMod" as "{\rm NrmMod}";
htmldef "NrmVec" as "NrmVec"; althtmldef "NrmVec" as "NrmVec";
  latexdef "NrmVec" as "{\rm NrmVec}";
htmldef "normOp" as
    "<IMG SRC='_normop.gif' WIDTH=52 HEIGHT=19 ALT=' normOp' TITLE='normOp'>";
  althtmldef "normOp" as " normOp ";
  latexdef "normOp" as "{\rm normOp}";
htmldef "NGHom" as " NGHom ";
  althtmldef "NGHom" as " NGHom ";
  latexdef "NGHom" as "{\rm NGHom}";
htmldef "NMHom" as " NMHom ";
  althtmldef "NMHom" as " NMHom ";
  latexdef "NMHom" as "{\rm NMHom}";
htmldef "II" as "<IMG SRC='bbi.gif' WIDTH=7 HEIGHT=19 ALT=' II' TITLE='II'>";
  althtmldef "II" as "II";
  latexdef "II" as "{\rm II}";
htmldef "-cn->" as "<IMG SRC='_cnmap.gif' WIDTH=23 HEIGHT=19 " +
    "ALT=' -cn-&gt;' TITLE='-cn-&gt;'>";
  althtmldef "-cn->" as '&ndash;<FONT SIZE=-1 FACE=sans-serif>cn</FONT>&rarr;';
  latexdef "-cn->" as
    "\raisebox{.5ex}{${\textstyle{\:}_{\mbox{\footnotesize\rm cn" +
    "}}}\atop{\textstyle{" +
    "\longrightarrow}\atop{\textstyle{}^{\mbox{\footnotesize\rm {\ }}}}}$}";
htmldef "Htpy" as " Htpy ";
  althtmldef "Htpy" as " Htpy ";
  latexdef "Htpy" as "{\rm Htpy}";
htmldef "PHtpy" as
    "<IMG SRC='_phtpy.gif' WIDTH=41 HEIGHT=19 ALT=' PHtpy' TITLE='PHtpy'>";
  althtmldef "PHtpy" as "PHtpy";
  latexdef "PHtpy" as "{\rm PHtpy}";
htmldef "~=ph" as
    " <IMG SRC='_simeqph.gif' WIDTH=26 HEIGHT=19 ALT=' ~=ph' TITLE='~=ph'> ";
  althtmldef "~=ph" as " &#8771;<SUB><I>ph</I></SUB>";
  latexdef "~=ph" as "\simeq_{ph}";
/*
htmldef "pi1b" as
    "<IMG SRC='pi.gif' WIDTH=10 HEIGHT=19 ALT=' pi' TITLE='pi'>" +
    "<IMG SRC='sub1.gif' WIDTH=4 HEIGHT=19 ALT='1' TITLE='1'>" +
    "<IMG SRC='subb.gif' WIDTH=6 HEIGHT=19 ALT='b' TITLE='b'>";
  althtmldef "pi1b" as "<I>&pi;<SUB>1b</SUB></I>";
  latexdef "pi1b" as "\pi_{1b}";
*/
htmldef "*p" as
    "<IMG SRC='_astp.gif' WIDTH=14 HEIGHT=19 ALT=' *p' TITLE='*p'>";
  althtmldef "*p" as "*<SUB>&#x1D45D;</SUB>";
  latexdef "*p" as "*_p";
htmldef "Om1" as
    " <IMG SRC='comega.gif' WIDTH=11 HEIGHT=19 ALT=' Om' TITLE='Om'>" +
    "<IMG SRC='sub1.gif' WIDTH=4 HEIGHT=19 ALT='1' TITLE='1'> ";
  althtmldef "Om1" as " &Omega;<SUB>1</SUB> ";
  latexdef "Om1" as "\Omega_1";
htmldef "OmN" as
    " <IMG SRC='comega.gif' WIDTH=11 HEIGHT=19 ALT=' Om' TITLE='Om'>" +
    "<IMG SRC='subn.gif' WIDTH=6 HEIGHT=19 ALT='N' TITLE='N'> ";
  althtmldef "OmN" as " &Omega;<SUB>&#x1D45B;</SUB> ";
  latexdef "OmN" as "\Omega_n";
htmldef "pi1" as
    " <IMG SRC='pi.gif' WIDTH=10 HEIGHT=19 ALT=' pi' TITLE='pi'>" +
    "<IMG SRC='sub1.gif' WIDTH=4 HEIGHT=19 ALT='1' TITLE='1'> ";
  althtmldef "pi1" as " <I>&pi;</I><SUB>1</SUB> ";
  latexdef "pi1" as "\pi_1";
htmldef "piN" as
    " <IMG SRC='pi.gif' WIDTH=10 HEIGHT=19 ALT=' pi' TITLE='pi'>" +
    "<IMG SRC='subn.gif' WIDTH=6 HEIGHT=19 ALT='N' TITLE='N'> ";
  althtmldef "piN" as " <I>&pi;<SUB>n</SUB></I> ";
  latexdef "piN" as "\pi_n";
/*
htmldef "~~>m" as "<IMG SRC='_squigm.gif' WIDTH=25 HEIGHT=19 " +
    "ALT=' ~~&gt;m' TITLE='~~&gt;m'>";
  althtmldef "~~>m" as '<FONT FACE=sans-serif>&#8669;<SUB>m</SUB></FONT>';
  latexdef "~~>m" as "\rightsquigarrow_{\rm m}";
*/
htmldef "CMod" as "CMod";
  althtmldef "CMod" as "&#8450;Mod";
  latexdef "CMod" as "{\mathbb{C}\mathrm{Mod}}";
htmldef "CVec" as "CVec";
  althtmldef "CVec" as "&#8450;Vec";
  latexdef "CVec" as "{\mathbb{C}\mathrm{Vec}}";
htmldef "CPreHil" as
  "<IMG SRC='_cprehil.gif' WIDTH=50 HEIGHT=19 ALT=' CPreHil' TITLE='CPreHil'>";
  althtmldef "CPreHil" as "&#8450;PreHil";
  latexdef "CPreHil" as "{\mathbb{C}\mathrm{PreHil}}";
htmldef "toCHil" as "toCHil";
  althtmldef "toCHil" as "to&#8450;Hil";
  latexdef "toCHil" as "{\mathrm{to}\mathbb{C}\mathrm{Hil}}";
htmldef "CauFil" as "CauFil";
  althtmldef "CauFil" as "CauFil";
  latexdef "CauFil" as "{\rm CauFil}";
htmldef "Cau" as
    "<IMG SRC='_cau.gif' WIDTH=26 HEIGHT=19 ALT=' Cau' TITLE='Cau'>";
  althtmldef "Cau" as "Cau";
  latexdef "Cau" as "{\rm Cau}";
htmldef "CMet" as
    "<IMG SRC='_cmet.gif' WIDTH=35 HEIGHT=19 ALT=' CMet' TITLE='CMet'>";
  althtmldef "CMet" as "CMet";
  latexdef "CMet" as "{\rm CMet}";
htmldef "CMetSp" as "CMetSp";
  althtmldef "CMetSp" as "CMetSp";
  latexdef "CMetSp" as "{\rm CMetSp}";
htmldef "Ban" as "Ban";
  althtmldef "Ban" as "Ban";
  latexdef "Ban" as "{\rm Ban}";
htmldef "CHil" as
    "<IMG SRC='_chil.gif' WIDTH=28 HEIGHT=19 ALT=' CHil' TITLE='CHil'>";
  althtmldef "CHil" as "&#8450;Hil";
  latexdef "CHil" as "{\mathbb{C}\mathrm{Hil}}";
htmldef "vol*" as
    "<IMG SRC='_vol.gif' WIDTH=19 HEIGHT=19 ALT=' vol' TITLE='vol'>" +
    "<IMG SRC='supast.gif' WIDTH=6 HEIGHT=19 ALT='*' TITLE='*'>";
  althtmldef "vol*" as "vol*";
  latexdef "vol*" as "{\rm vol*}";
htmldef "vol" as
    "<IMG SRC='_vol.gif' WIDTH=19 HEIGHT=19 ALT=' vol' TITLE='vol'>";
  althtmldef "vol" as "vol";
  latexdef "vol" as "{\rm vol}";
htmldef "MblFn" as "MblFn";
  althtmldef "MblFn" as "MblFn";
  latexdef "MblFn" as "{\rm MblFn}";
htmldef "L^1" as
    "<IMG SRC='cl.gif' WIDTH=10 HEIGHT=19 ALT=' L' TITLE='L'>" +
    "<IMG SRC='sup1.gif' WIDTH=4 HEIGHT=19 ALT='^1' TITLE='^1'>";
  althtmldef "L^1" as "&#x1D43F;<SUP>1</SUP>";
  latexdef "L^1" as "L^1";
htmldef "S.1" as
    "<IMG SRC='_int1.gif' WIDTH=11 HEIGHT=19 ALT=' S.1' TITLE='S.1'>";
  althtmldef "S.1" as "&int;<SUB>1</SUB>";
  latexdef "S.1" as "\int_2";
htmldef "S.2" as
    "<IMG SRC='_int2.gif' WIDTH=13 HEIGHT=19 ALT=' S.2' TITLE='S.2'>";
  althtmldef "S.2" as "&int;<SUB>2</SUB>";
  latexdef "S.2" as "\int_2";
htmldef "S." as "<IMG SRC='int.gif' WIDTH=10 HEIGHT=19 ALT=' S.' TITLE='S.'>";
  althtmldef "S." as "&int;";
  latexdef "S." as "\int";
htmldef "S_" as "<IMG SRC='int.gif' WIDTH=10 HEIGHT=19 ALT=' S_' TITLE='S_'>_";
  althtmldef "S_" as "&#x2A1C;";
  latexdef "S_" as "\int";
htmldef "_d" as " <IMG SRC='rmd.gif' WIDTH=8 HEIGHT=19 ALT=' _d' TITLE='_d'>";
  althtmldef "_d" as " d";
  latexdef "_d" as "\,{\rm d}";
htmldef "0p" as "<IMG SRC='0.gif' WIDTH=8 HEIGHT=19 ALT=' 0' TITLE='0'>" +
    "<IMG SRC='subp.gif' WIDTH=7 HEIGHT=19 ALT='p' TITLE='p'>";
  althtmldef "0p" as "0<SUB>&#x1D45D;</SUB>";
  latexdef "0p" as "0_p";
htmldef "_D" as
    " <IMG SRC='rmcd.gif' WIDTH=10 HEIGHT=19 ALT=' _D' TITLE='_D'> ";
  althtmldef "_D" as " D ";
  latexdef "_D" as "{\rm D}";
htmldef "limCC" as
    " lim<IMG SRC='bbc.gif' WIDTH=12 HEIGHT=19 ALT=' CC' TITLE='CC'> ";
  althtmldef "limCC" as " lim<sub>&#8450;</sub> ";
  latexdef "limCC" as "{\rm lim}_\mathbb{C}";
htmldef "Dn" as
    " <IMG SRC='rmcd.gif' WIDTH=10 HEIGHT=19 ALT=' D' TITLE='D'>" +
    "<IMG SRC='supn.gif' WIDTH=6 HEIGHT=19 ALT='n' TITLE='n'>";
  althtmldef "Dn" as " D<SUP>&#x1D45B;</SUP> ";
  latexdef "Dn" as "{\rm D}^n";
htmldef "C^n" as "<IMG SRC='cc.gif' WIDTH=12 HEIGHT=19 ALT=' C' TITLE='C'>" +
    "<IMG SRC='supn.gif' WIDTH=6 HEIGHT=19 ALT='^n' TITLE='^n'>";
  althtmldef "C^n" as "<I>C<SUP>n</SUP></I>";
  latexdef "C^n" as "C^n";
htmldef "Monic1p" as "Monic<sub>1p</sub>";
  althtmldef "Monic1p" as "Monic<sub>1p</sub>";
  latexdef "Monic1p" as "{\rm Monic}_{1p}";
htmldef "Unic1p" as "Unic<sub>1p</sub>";
  althtmldef "Unic1p" as "Unic<sub>1p</sub>";
  latexdef "Unic1p" as "{\rm Unic}_{1p}";
htmldef "quot1p" as "quot<sub>1p</sub>";
  althtmldef "quot1p" as "quot<sub>1p</sub>";
  latexdef "quot1p" as "{\rm quot}_{1p}";
htmldef "rem1p" as "rem<sub>1p</sub>";
  althtmldef "rem1p" as "rem<sub>1p</sub>";
  latexdef "rem1p" as "{\rm rem}_{1p}";
htmldef "idlGen1p" as "idlGen<sub>1p</sub>";
  althtmldef "idlGen1p" as "idlGen<sub>1p</sub>";
  latexdef "idlGen1p" as "{\rm idlGen}_{1p}";
htmldef "Poly" as "Poly";
  althtmldef "Poly" as "Poly";
  latexdef "Poly" as "\rm{Poly}";
htmldef "Xp" as "<IMG SRC='cx.gif' WIDTH=13 HEIGHT=19 ALT=' X' TITLE='X'>" +
    "<IMG SRC='subp.gif' WIDTH=7 HEIGHT=19 ALT='p' TITLE='p'>";
  althtmldef "Xp" as "<I>X<SUB>p</SUB></I>";
  latexdef "Xp" as "X_p";
htmldef "coeff" as "coeff";
  althtmldef "coeff" as "coeff";
  latexdef "coeff" as "\rm{coeff}";
htmldef "deg" as "deg";
  althtmldef "deg" as "deg";
  latexdef "deg" as "\rm{deg}";
htmldef "quot" as " quot ";
  althtmldef "quot" as " quot ";
  latexdef "quot" as "\rm{quot}";
htmldef "AA" as "<IMG SRC='bba.gif' WIDTH=13 HEIGHT=19 ALT=' AA' TITLE='AA'>";
  althtmldef "AA" as '&#120120;';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "AA" as "\mathbb{A}";
htmldef "Tayl" as " Tayl ";
  althtmldef "Tayl" as " Tayl ";
  latexdef "Tayl" as "\rm{Tayl}";
htmldef "Ana" as "Ana";
  althtmldef "Ana" as "Ana";
  latexdef "Ana" as "\rm{Ana}";
htmldef "~~>u" as "<IMG SRC='rightsquigarrow.gif' WIDTH=15 HEIGHT=19 " +
    "ALT=' ~~&gt;' TITLE='~~&gt;'>" +
    "<IMG SRC='subu.gif' WIDTH=6 HEIGHT=19 ALT=' u' TITLE='u'>";
  althtmldef "~~>u" as
    "&#8669;<SUB>&#x1D462;</SUB>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "~~>u" as "\rightsquigarrow_u";
htmldef "log" as
    "<IMG SRC='_log.gif' WIDTH=20 HEIGHT=19 ALT=' log' TITLE='log'>";
  althtmldef "log" as "log";
  latexdef "log" as "\log";
htmldef "logb" as " log<sub>b</sub> ";
  althtmldef "logb" as " log<sub>b</sub> ";
  latexdef "logb" as "{\rm log}_b";
htmldef "^c" as
    " <IMG SRC='uparrow.gif' WIDTH=7 HEIGHT=19 ALT=' ^' TITLE='^'>" +
    "<IMG SRC='subc.gif' WIDTH=6 HEIGHT=19 ALT='c' TITLE='c'> ";
  althtmldef "^c" as "&uarr;<SUB>&#x1D450;</SUB>";
  latexdef "^c" as "\uparrow_c";
htmldef "arcsin" as "arcsin";
  althtmldef "arcsin" as "arcsin";
  latexdef "arcsin" as "\arcsin";
htmldef "arccos" as "arccos";
  althtmldef "arccos" as "arccos";
  latexdef "arccos" as "\arccos";
htmldef "arctan" as "arctan";
  althtmldef "arctan" as "arctan";
  latexdef "arctan" as "\arctan";
htmldef "area" as "area";
  althtmldef "area" as "area";
  latexdef "area" as "{\rm area}";
htmldef "gamma" as
    "<IMG SRC='gamma.gif' WIDTH=11 HEIGHT=19 ALT=' gamma' TITLE='gamma'>";
  althtmldef "gamma" as "&gamma;";
  latexdef "gamma" as "\gamma";
htmldef "theta" as
    "<IMG SRC='theta.gif' WIDTH=8 HEIGHT=19 ALT=' theta' TITLE='theta'>";
  althtmldef "theta" as "&theta;";
  latexdef "theta" as "\theta";
htmldef "Lam" as "&Lambda;";
  althtmldef "Lam" as "&Lambda;";
  latexdef "Lam" as "\Lambda";
htmldef "psi" as "&psi;";
  althtmldef "psi" as "&psi;";
  latexdef "psi" as "\psi";
htmldef "ppi" as "<U>&pi;</U>";
  althtmldef "ppi" as "<U>&pi;</U>";
  latexdef "ppi" as "\pi";
htmldef "mmu" as
    "<IMG SRC='mu.gif' WIDTH=10 HEIGHT=19 ALT=' mmu' TITLE='mmu'>";
  althtmldef "mmu" as "&mu;";
  latexdef "mmu" as "\mu";
htmldef "sigma" as
    " <IMG SRC='sigma.gif' WIDTH=10 HEIGHT=19 ALT=' sigma' TITLE='sigma'> ";
  althtmldef "sigma" as " &sigma; ";
  latexdef "sigma" as " \sigma ";
htmldef "DChr" as "DChr";
  althtmldef "DChr" as "DChr";
  latexdef "DChr" as "{\rm DChr}";
htmldef "/L" as
    " <IMG SRC='solidus.gif' WIDTH=6 HEIGHT=19 ALT=' /' TITLE='/'>" +
    "<IMG SRC='subcl.gif' WIDTH=8 HEIGHT=19 ALT='L' TITLE='L'>";
  althtmldef "/L" as " /<sub><i>L</i></sub> ";
  latexdef "/L" as " /_L ";

/* Graph theory */
htmldef ".ef" as '.ef';
  althtmldef ".ef" as ".ef";
  latexdef ".ef" as "{\rm ef}";
htmldef "Vtx" as 'Vtx';
  althtmldef "Vtx" as 'Vtx';
  latexdef "Vtx" as "{\rm Vtx}";
htmldef "iEdg" as 'iEdg';
  althtmldef "iEdg" as 'iEdg';
  latexdef "iEdg" as "{\rm iEdg}";
htmldef "UHGraph" as 'UHGraph';
  althtmldef "UHGraph" as 'UHGraph';
  latexdef "UHGraph" as "{\rm UHGraph}";
htmldef "USHGraph" as 'USHGraph';
  althtmldef "USHGraph" as 'USHGraph';
  latexdef "USHGraph" as "{\rm USHGraph}";
htmldef "UPGraph" as 'UPGraph';
  althtmldef "UPGraph" as 'UPGraph';
  latexdef "UPGraph" as "{\rm UPGraph}";
htmldef "UMGraph" as 'UMGraph';
  althtmldef "UMGraph" as 'UMGraph';
  latexdef "UMGraph" as "{\rm UMGraph}";
htmldef "Edg" as 'Edg';
  althtmldef "Edg" as 'Edg';
  latexdef "Edg" as "{\rm Edg}";
htmldef "USPGraph" as 'USPGraph';
  althtmldef "USPGraph" as 'USPGraph';
  latexdef "USPGraph" as "{\rm USPGraph}";
htmldef "USGraph" as 'USGraph';
  althtmldef "USGraph" as 'USGraph';
  latexdef "USGraph" as "{\rm USGraph}";
htmldef "SubGraph" as ' SubGraph ';
  althtmldef "SubGraph" as ' SubGraph ';
  latexdef "SubGraph" as "{\rm SubGraph}";
htmldef "FinUSGraph" as 'FinUSGraph';
  althtmldef "FinUSGraph" as 'FinUSGraph';
  latexdef "FinUSGraph" as "{\rm FinUSGraph}";
htmldef "NeighbVtx" as ' NeighbVtx ';
  althtmldef "NeighbVtx" as ' NeighbVtx ';
  latexdef "NeighbVtx" as "{\rm NeighbVtx}";
htmldef "ComplGraph" as 'ComplGraph';
  althtmldef "ComplGraph" as 'ComplGraph';
  latexdef "ComplGraph" as "{\rm ComplGraph}";
htmldef "ComplUSGraph" as 'ComplUSGraph';
  althtmldef "ComplUSGraph" as 'ComplUSGraph';
  latexdef "ComplUSGraph" as "{\rm ComplUSGraph}";
htmldef "UnivVtx" as 'UnivVtx';
  althtmldef "UnivVtx" as 'UnivVtx';
  latexdef "UnivVtx" as "{\rm UnivVtx}";
htmldef "VtxDeg" as 'VtxDeg';
  althtmldef "VtxDeg" as 'VtxDeg';
  latexdef "VtxDeg" as "{\rm VtxDeg}";
htmldef "RegGraph" as 'RegGraph';
  althtmldef "RegGraph" as 'RegGraph';
  latexdef "RegGraph" as "{\rm RegGraph}";
htmldef "RegUSGraph" as 'RegUSGraph';
  althtmldef "RegUSGraph" as 'RegUSGraph';
  latexdef "RegUSGraph" as "{\rm RegUSGraph}";
htmldef "EdgWalks" as ' EdgWalks ';
  althtmldef "EdgWalks" as ' EdgWalks ';
  latexdef "EdgWalks" as "{\rm EdgWalks}";
htmldef "Walks" as "Walks";
  althtmldef "Walks" as "Walks";
  latexdef "Walks" as "{\rm Walks}";
htmldef "WalksOn" as "WalksOn";
  althtmldef "WalksOn" as "WalksOn";
  latexdef "WalksOn" as " {\rm WalksOn} ";
htmldef "Trails" as "Trails";
  althtmldef "Trails" as "Trails";
  latexdef "Trails" as " {\rm Trails} ";
htmldef "TrailsOn" as "TrailsOn";
  althtmldef "TrailsOn" as "TrailsOn";
  latexdef "TrailsOn" as " {\rm TrailsOn} ";
htmldef "Paths" as "Paths";
  althtmldef "Paths" as "Paths";
  latexdef "Paths" as " {\rm Paths} ";
htmldef "SPaths" as "SPaths";
  althtmldef "SPaths" as "SPaths";
  latexdef "SPaths" as " {\rm SPaths} ";
htmldef "PathsOn" as "PathsOn";
  althtmldef "PathsOn" as "PathsOn";
  latexdef "PathsOn" as " {\rm PathsOn} ";
htmldef "SPathsOn" as "SPathsOn";
  althtmldef "SPathsOn" as "SPathsOn";
  latexdef "SPathsOn" as "{\rm SPathsOn}";
htmldef "ClWalks" as "ClWalks";
  althtmldef "ClWalks" as "ClWalks";
  latexdef "ClWalks" as "{\rm ClWalks}";
htmldef "Circuits" as "Circuits";
  althtmldef "Circuits" as "Circuits";
  latexdef "Circuits" as " {\rm Circuits} ";
htmldef "Cycles" as "Cycles";
  althtmldef "Cycles" as "Cycles";
  latexdef "Cycles" as " {\rm Cycles} ";
htmldef "WWalks" as 'WWalks';
  althtmldef "WWalks" as 'WWalks';
  latexdef "WWalks" as "{\rm WWalks}";
htmldef "WWalksN" as ' WWalksN ';
  althtmldef "WWalksN" as ' WWalksN ';
  latexdef "WWalksN" as " {\rm WWalksN} ";
htmldef "WWalksNOn" as ' WWalksNOn ';
  althtmldef "WWalksNOn" as ' WWalksNOn ';
  latexdef "WWalksNOn" as "{\rm WWalksNOn}";
htmldef "WSPathsN" as ' WSPathsN ';
  althtmldef "WSPathsN" as ' WSPathsN ';
  latexdef "WSPathsN" as "{\rm WSPathsN}";
htmldef "WSPathsNOn" as ' WSPathsNOn ';
  althtmldef "WSPathsNOn" as ' WSPathsNOn ';
  latexdef "WSPathsNOn" as "{\rm WSPathsNOn}";
htmldef "ClWWalks" as 'ClWWalks';
  althtmldef "ClWWalks" as 'ClWWalks';
  latexdef "ClWWalks" as "{\rm ClWWalks}";
htmldef "ClWWalksN" as ' ClWWalksN ';
  althtmldef "ClWWalksN" as ' ClWWalksN ';
  latexdef "ClWWalksN" as " {\rm ClWWalksN} ";
htmldef "ConnGraph" as "ConnGraph";
  althtmldef "ConnGraph" as "ConnGraph";
  latexdef "ConnGraph" as "{\rm ConnGraph}";
htmldef "EulerPaths" as "EulerPaths";
  althtmldef "EulerPaths" as "EulerPaths";
  latexdef "EulerPaths" as " {\rm EulerPaths} ";
htmldef "FriendGraph" as ' FriendGraph ';
  althtmldef "FriendGraph" as ' FriendGraph ';
  latexdef "FriendGraph" as "{\rm FriendGraph}";

/* Guides and miscellanea */
htmldef "Plig" as
    "<IMG SRC='_plig.gif' WIDTH=25 HEIGHT=19 ALT=' Plig' TITLE='Plig'>";
  althtmldef "Plig" as "Plig";
  latexdef "Plig" as "{\rm Plig}";
htmldef "t+" as "<IMG SRC='t.gif' WIDTH=7 HEIGHT=19 ALT=' t' TITLE='t'>" +
    "<IMG SRC='plus.gif' WIDTH=13 HEIGHT=19 ALT='+' TITLE='+'>";
  althtmldef "t+" as "t+";
  latexdef "t+" as "{\rm t}+";
htmldef "t*" as "<IMG SRC='t.gif' WIDTH=7 HEIGHT=19 ALT=' t' TITLE='t'>" +
    "<IMG SRC='ast.gif' WIDTH=7 HEIGHT=19 ALT='*' TITLE='*'>";
  althtmldef "t*" as "t*";
  latexdef "t*" as "{\rm t}*";
htmldef "GrpOp" as
    "<IMG SRC='_grpop.gif' WIDTH=44 HEIGHT=19 ALT=' GrpOp' TITLE='GrpOp'>";
  althtmldef "GrpOp" as "GrpOp";
  latexdef "GrpOp" as "{\rm GrpOp}";
htmldef "GId" as "GId";
  althtmldef "GId" as "GId";
  latexdef "GId" as "{\rm GId}";
htmldef "inv" as
    "<IMG SRC='_inv.gif' WIDTH=19 HEIGHT=19 ALT=' inv' TITLE='inv'>";
  althtmldef "inv" as "inv";
  latexdef "inv" as "{\rm inv}";
htmldef "/g" as " <IMG SRC='_divg.gif' WIDTH=11 HEIGHT=19 ALT=' /g' " +
    "TITLE='/g'> ";
  althtmldef "/g" as " /<SUB>&#x1D454;</SUB> ";
  latexdef "/g" as "/_g";
htmldef "AbelOp" as
    "<IMG SRC='_abelop.gif' WIDTH=47 HEIGHT=19 ALT=' AbelOp' TITLE='AbelOp'>";
  althtmldef "AbelOp" as "AbelOp";
  latexdef "AbelOp" as "{\rm AbelOp}";
htmldef "Ass" as
    "<IMG SRC='_ass.gif' WIDTH=22 HEIGHT=19 ALT=' Ass' TITLE='Ass'>";
  althtmldef "Ass" as "Ass";
  latexdef "Ass" as "{\rm Ass}";
htmldef "ExId" as
    " <IMG SRC='_exid.gif' WIDTH=29 HEIGHT=19 ALT=' ExId' TITLE='ExId'> ";
  althtmldef "ExId" as " ExId ";
  latexdef "ExId" as "{\rm ExId}";
htmldef "Magma" as
    "<IMG SRC='_magma.gif' WIDTH=48 HEIGHT=19 ALT=' Magma' TITLE='Magma'>";
  althtmldef "Magma" as "Magma";
  latexdef "Magma" as "{\rm Magma}";
htmldef "SemiGrp" as
  "<IMG SRC='_semigrp.gif' WIDTH=56 HEIGHT=19 ALT=' SemiGrp' TITLE='SemiGrp'>";
  althtmldef "SemiGrp" as "SemiGrp";
  latexdef "SemiGrp" as "{\rm SemiGrp}";
htmldef "MndOp" as "MndOp";
  althtmldef "MndOp" as "MndOp";
  latexdef "MndOp" as "{\rm MndOp}";
htmldef "GrpOpHom" as " GrpOpHom ";
  althtmldef "GrpOpHom" as " GrpOpHom ";
  latexdef "GrpOpHom" as "{\rm GrpOpHom}";
htmldef "RingOps" as
  "<IMG SRC='_ringops.gif' WIDTH=55 HEIGHT=19 ALT=' RingOps' TITLE='RingOps'>";
  althtmldef "RingOps" as "RingOps";
  latexdef "RingOps" as "{\rm RingOps}";
htmldef "DivRingOps" as "<IMG SRC='_divringops.gif' WIDTH=77 HEIGHT=19" +
      " ALT=' DivRingOps' TITLE='DivRingOps'>";
  althtmldef "DivRingOps" as "DivRingOps";
  latexdef "DivRingOps" as "{\rm DivRingOps}";
htmldef "Com2" as
    "<IMG SRC='_com2.gif' WIDTH=35 HEIGHT=19 ALT=' Com2' TITLE='Com2'>";
  althtmldef "Com2" as "Com2";
  latexdef "Com2" as "{\rm Com2}";
htmldef "Fld" as
    "<IMG SRC='_fld.gif' WIDTH=21 HEIGHT=19 ALT=' Fld' TITLE='Fld'>";
  althtmldef "Fld" as "Fld";
  latexdef "Fld" as "{\rm Fld}";
htmldef "CVecOLD" as
    "<IMG SRC='_cvec.gif' WIDTH=34 HEIGHT=19 ALT=' CVec' TITLE='CVec'>" +
    "<IMG SRC='_old.gif' WIDTH=23 HEIGHT=19 ALT='OLD' TITLE='OLD'>";
  althtmldef "CVecOLD" as "CVec<SUB>OLD</SUB>";
  latexdef "CVecOLD" as "{\rm CVec_{OLD}}";
htmldef "NrmCVec" as
  "<IMG SRC='_nrmcvec.gif' WIDTH=62 HEIGHT=19 ALT=' NrmCVec' TITLE='NrmCVec'>";
  althtmldef "NrmCVec" as "NrmCVec";
  latexdef "NrmCVec" as "{\rm NrmCVec}";
htmldef "+v" as "<IMG SRC='_plv.gif' WIDTH=19 HEIGHT=19 ALT=' +v' TITLE='+v'>";
  althtmldef "+v" as ' +<SUB>&#x1D463;</SUB> ';
  latexdef "+v" as '+_v';
htmldef "BaseSet" as
  "<IMG SRC='_baseset.gif' WIDTH=51 HEIGHT=19 ALT=' BaseSet' TITLE='BaseSet'>";
  althtmldef "BaseSet" as "BaseSet";
  latexdef "BaseSet" as "{\rm BaseSet}";
htmldef ".sOLD" as
    "<IMG SRC='_cds.gif' WIDTH=9 HEIGHT=19 ALT=' .s' TITLE='.s'>" +
    "<IMG SRC='_old.gif' WIDTH=23 HEIGHT=19 ALT='OLD' TITLE='OLD'>";
  althtmldef ".sOLD" as ' <B>&middot;</B><SUB>&#x1D460;OLD</SUB> ';
  latexdef ".sOLD" as '\cdot_{s{\rm OLD}}';
htmldef "0vec" as
    "<IMG SRC='_0vec.gif' WIDTH=25 HEIGHT=19 ALT=' 0vec' TITLE='0vec'>";
  althtmldef "0vec" as '0<SUB>vec</SUB>';
  latexdef "0vec" as '0_{\rm vec}';
htmldef "-v" as "<IMG SRC='_mv.gif' WIDTH=17 HEIGHT=19 ALT=' -v' TITLE='-v'>";
  althtmldef "-v" as ' &minus;<SUB>&#x1D463;</SUB> ';
  latexdef "-v" as '-_v';
htmldef "normCV" as "<IMG SRC='_norm.gif' WIDTH=32 HEIGHT=19 ALT=' norm' " +
    "TITLE='norm'><SUB>CV</SUB>";
  althtmldef "normCV" as 'norm<SUB>CV</SUB>';
  latexdef "normCV" as '{\rm norm_{CV}}';
    /* 24-Apr-2007 nm These need images. */
htmldef "IndMet" as
    "<IMG SRC='_indmet.gif' WIDTH=45 HEIGHT=19 ALT=' IndMet' TITLE='IndMet'>";
  althtmldef "IndMet" as "IndMet";
  latexdef "IndMet" as "{\rm IndMet}";
htmldef ".iOLD" as
    "<IMG SRC='_cdi.gif' WIDTH=7 HEIGHT=19 ALT=' .i' TITLE='.i'>" +
    "<IMG SRC='_old.gif' WIDTH=23 HEIGHT=19 ALT='OLD' TITLE='OLD'>";
  althtmldef ".iOLD" as '<B>&middot;</B><SUB>&#x1D456;OLD</SUB>';
  latexdef ".iOLD" as '\cdot_{i{\rm OLD}}';
htmldef "SubSp" as
    "<IMG SRC='_subsp.gif' WIDTH=40 HEIGHT=19 ALT=' SubSp' TITLE='SubSp'>";
  althtmldef "SubSp" as "SubSp";
  latexdef "SubSp" as "{\rm SubSp}";
htmldef "LnOp" as
    " <IMG SRC='_lnop.gif' WIDTH=36 HEIGHT=19 ALT=' LnOp' TITLE='LnOp'> ";
  althtmldef "LnOp" as " LnOp ";
  latexdef "LnOp" as "{\rm LnOp}";
htmldef "normOpOLD" as
    "<IMG SRC='_normop.gif' WIDTH=52 HEIGHT=19 ALT=' normOp' TITLE='normOp'>" +
    "<IMG SRC='_old.gif' WIDTH=23 HEIGHT=19 ALT='OLD' TITLE='OLD'>";
  althtmldef "normOpOLD" as " normOp<SUB>OLD</SUB> ";
  latexdef "normOpOLD" as "{\rm normOp_{OLD}}";
htmldef "BLnOp" as
    " <IMG SRC='_blnop.gif' WIDTH=45 HEIGHT=19 ALT=' BLnOp' TITLE='BLnOp'> ";
  althtmldef "BLnOp" as " BLnOp ";
  latexdef "BLnOp" as "{\rm BLnOp}";
htmldef "0op" as
    " <IMG SRC='_0op.gif' WIDTH=21 HEIGHT=19 ALT=' 0op' TITLE='0op'> ";
  althtmldef "0op" as " 0<SUB>op</SUB> ";
  latexdef "0op" as "0_\mathrm{op}";
htmldef "adj" as
    "<IMG SRC='_adj.gif' WIDTH=20 HEIGHT=19 ALT=' adj' TITLE='adj'>";
  althtmldef "adj" as "adj";
  latexdef "adj" as "{\rm adj}";
htmldef "HmOp" as
    "<IMG SRC='_hmop.gif' WIDTH=41 HEIGHT=19 ALT=' HmOp' TITLE='HmOp'>";
  althtmldef "HmOp" as "HmOp";
  latexdef "HmOp" as "{\rm HmOp}";
htmldef "CPreHilOLD" as
    "<IMG SRC='_cprehil.gif' WIDTH=50 HEIGHT=19 " +
    "ALT=' CPreHil' TITLE='CPreHil'>" +
    "<IMG SRC='_old.gif' WIDTH=23 HEIGHT=19 ALT=' OLD' TITLE='OLD'>";
  althtmldef "CPreHilOLD" as "CPreHil<SUB>OLD</SUB>";
  latexdef "CPreHilOLD" as "{\rm CPreHil_{OLD}}";
htmldef "CBan" as
    "<IMG SRC='_cban.gif' WIDTH=35 HEIGHT=19 ALT=' CBan' TITLE='CBan'>";
  althtmldef "CBan" as "CBan";
  latexdef "CBan" as "{\rm CBan}";
htmldef "CHilOLD" as
    "<IMG SRC='_chil.gif' WIDTH=28 HEIGHT=19 ALT=' CHil' TITLE='CHil'>" +
    "<IMG SRC='_old.gif' WIDTH=23 HEIGHT=19 ALT='OLD' TITLE='OLD'>";
  althtmldef "CHilOLD" as "CHil<SUB>OLD</SUB>";
  latexdef "CHilOLD" as "{\rm CHil_{OLD}}";
    /* Hilbert space */
htmldef "~H" as "<IMG SRC='scrh.gif' WIDTH=19 HEIGHT=19 ALT=' ~H' TITLE='~H'>";
  althtmldef "~H" as ' &#8459;';
    /* 8459 is script H; 8460 is fraktur H */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "~H" as '\mathscr{H}';
htmldef "+h" as
    " <IMG SRC='_pvh.gif' WIDTH=18 HEIGHT=19 ALT=' +h' TITLE='+h'> ";
  althtmldef "+h" as ' +<SUB>&#x210E;</SUB> ';
  latexdef "+h" as '+_h';
htmldef ".h" as
    " <IMG SRC='_cdh.gif' WIDTH=9 HEIGHT=19 ALT=' .h' TITLE='.h'> ";
  althtmldef ".h" as ' <B>&middot;</B><SUB>&#x210E;</SUB> ';
  latexdef ".h" as '\cdot_h';
htmldef "0h" as "<IMG SRC='_0vh.gif' WIDTH=14 HEIGHT=19 ALT=' 0h' TITLE='0h'>";
  althtmldef "0h" as '0<SUB>&#x210E;</SUB>';
  latexdef "0h" as '0_h';
htmldef "-h" as
    " <IMG SRC='_mvh.gif' WIDTH=16 HEIGHT=19 ALT=' -h' TITLE='-h'> ";
  althtmldef "-h" as ' &minus;<SUB>&#x210E;</SUB> ';
  latexdef "-h" as '-_h';
htmldef ".ih" as " <IMG SRC='_cdih.gif' WIDTH=13 HEIGHT=19 ALT=' .ih' " +
    "TITLE='.ih'> ";
  althtmldef ".ih" as ' <B>&middot;</B><SUB><I>ih</I></SUB> ';
  latexdef ".ih" as '\cdot_{ih}';
htmldef "normh" as "<IMG SRC='_normh.gif' WIDTH=38 HEIGHT=19 ALT=' normh' " +
    "TITLE='normh'>";
  althtmldef "normh" as 'norm<SUB>&#x210E;</SUB>';
  latexdef "normh" as '{\rm norm}_h';
htmldef "Cauchy" as "<IMG SRC='_cauchy.gif' WIDTH=47 HEIGHT=19 " +
    "ALT=' Cauchy' TITLE='Cauchy'>";
  althtmldef "Cauchy" as 'Cauchy';
  latexdef "Cauchy" as '{\rm Cauchy}';
htmldef "~~>v" as " <IMG SRC='_squigv.gif' WIDTH=21 HEIGHT=19 " +
    "ALT=' ~~&gt;v' TITLE='~~&gt;v'> ";
  althtmldef "~~>v" as
    ' &#8669;<SUB>&#x1D463;</SUB> ';
    /* 24-Sep-2017 reverted sans-serif */
  latexdef "~~>v" as '\rightsquigarrow_v';
htmldef "SH" as "<IMG SRC='_sh.gif' WIDTH=24 HEIGHT=19 ALT=' SH' TITLE='SH'>";
  althtmldef "SH" as
    ' <I><B>S</B></I><SUB>&#8459;</SUB> ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "SH" as '\mathscr{S}_\mathscr{H}';
htmldef "CH" as
    "<IMG SRC='_scrch.gif' WIDTH=22 HEIGHT=19 ALT=' CH' TITLE='CH'>";
  althtmldef "CH" as
    ' <I><B>C</B></I><SUB>&#8459;</SUB> ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "CH" as '\mathscr{C}_\mathscr{H}';
htmldef "_|_" as
    "<IMG SRC='perp.gif' WIDTH=11 HEIGHT=19 ALT=' _|_' TITLE='_|_'>";
  althtmldef "_|_" as '&#8869;'; /* &bottom; */
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "_|_" as '\perp';
htmldef "+H" as
    " <IMG SRC='_plh.gif' WIDTH=24 HEIGHT=19 ALT=' +H' TITLE='+H'> ";
  althtmldef "+H" as ' +<SUB>&#8459;</SUB> ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "+H" as '+_\mathscr{H}';
htmldef "span" as
    "<IMG SRC='_span.gif' WIDTH=31 HEIGHT=19 ALT=' span' TITLE='span'>";
  althtmldef "span" as 'span';
  latexdef "span" as '{\rm span}';
htmldef "vH" as
    " <IMG SRC='_veeh.gif' WIDTH=21 HEIGHT=19 ALT=' vH' TITLE='vH'> ";
  althtmldef "vH" as ' &or;<SUB>&#8459;</SUB> ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "vH" as '\vee_\mathscr{H}';
htmldef "\/H" as
    " <IMG SRC='_bigveeh.gif' WIDTH=23 HEIGHT=19 ALT=' \/H' TITLE='\/H'> ";
  althtmldef "\/H" as ' <FONT SIZE="+1">&or;' +
    '</FONT><SUB>&#8459;</SUB> ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "\/H" as '\bigvee_\mathscr{H}';
htmldef "0H" as "<IMG SRC='_0h.gif' WIDTH=20 HEIGHT=19 ALT=' 0H' TITLE='0H'>";
  althtmldef "0H" as '0<SUB>&#8459;</SUB>';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "0H" as '0_\mathscr{H}';
htmldef "C_H" as
    " <IMG SRC='_cch.gif' WIDTH=23 HEIGHT=19 ALT=' C_H' TITLE='C_H'> ";
  althtmldef "C_H" as
    ' &#x1D436;<SUB>&#8459;</SUB> ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "C_H" as 'C_\mathscr{H}';
htmldef "projh" as
    "<IMG SRC='_proj.gif' WIDTH=24 HEIGHT=19 ALT=' proj' TITLE='proj'>" +
    " <IMG SRC='subh.gif' WIDTH=6 HEIGHT=19 ALT='h' TITLE='h'>";
  althtmldef "projh" as 'proj<SUB>&#x210E;</SUB>';
  latexdef "projh" as '{\rm proj}_h';
htmldef "0hop" as
    "<IMG SRC='_0hop.gif' WIDTH=28 HEIGHT=19 ALT=' 0hop' TITLE='0hop'>";
  althtmldef "0hop" as ' 0<SUB>hop</SUB> ';
  latexdef "0hop" as "0_\mathrm{hop}";
htmldef "Iop" as
    " <IMG SRC='_iop.gif' WIDTH=18 HEIGHT=19 ALT=' Iop' TITLE='Iop'> ";
  althtmldef "Iop" as ' I<SUB>op</SUB> ';
  latexdef "Iop" as "I_\mathrm{op}";
htmldef "+op" as
    " <IMG SRC='_plop.gif' WIDTH=25 HEIGHT=19 ALT=' +op' TITLE='+op'> ";
  althtmldef "+op" as ' +<SUB>op</SUB> ';
  latexdef "+op" as '+_\mathrm{op}';
htmldef ".op" as
    " <IMG SRC='_cdop.gif' WIDTH=16 HEIGHT=19 ALT=' .op' TITLE='.op'> ";
  althtmldef ".op" as ' <B>&middot;</B><SUB>op</SUB> ';
  latexdef ".op" as '\cdot_\mathrm{op}';
htmldef "-op" as
    " <IMG SRC='_mop.gif' WIDTH=23 HEIGHT=19 ALT=' -op' TITLE='-op'> ";
  althtmldef "-op" as ' &minus;<SUB>op</SUB> ';
  latexdef "-op" as '-_\mathrm{op}';
htmldef "+fn" as
    " <IMG SRC='_plfn.gif' WIDTH=24 HEIGHT=19 ALT=' +fn' TITLE='+fn'> ";
  althtmldef "+fn" as ' +<SUB>fn</SUB> ';
  latexdef "+fn" as '+_\mathrm{fn}';
htmldef ".fn" as
    " <IMG SRC='_cdfn.gif' WIDTH=15 HEIGHT=19 ALT=' .fn' TITLE='.fn'> ";
  althtmldef ".fn" as ' <B>&middot;</B><SUB>fn</SUB> ';
  latexdef ".fn" as '\cdot_\mathrm{fn}';
htmldef "normop" as
  "<IMG SRC='_normsubop.gif' WIDTH=45 HEIGHT=19 ALT=' normop' TITLE='normop'>";
  althtmldef "normop" as 'norm<SUB>op</SUB>';
  latexdef "normop" as '{\rm norm}_{\rm op}';
htmldef "ContOp" as
    "<IMG SRC='_conop.gif' WIDTH=44 HEIGHT=19 ALT=' ContOp' TITLE='ContOp'>";
  althtmldef "ContOp" as 'ContOp';
  latexdef "ContOp" as '{\rm ContOp}';
htmldef "LinOp" as
    "<IMG SRC='_linop.gif' WIDTH=40 HEIGHT=19 ALT=' LinOp' TITLE='LinOp'>";
  althtmldef "LinOp" as 'LinOp';
  latexdef "LinOp" as '{\rm LinOp}';
htmldef "BndLinOp" as
    "<IMG SRC='_bndlinop.gif' WIDTH=65 HEIGHT=19 " +
    "ALT=' BndLinOp' TITLE='BndLinOp'>";
  althtmldef "BndLinOp" as 'BndLinOp';
  latexdef "BndLinOp" as '{\rm BndLinOp}';
htmldef "UniOp" as
    "<IMG SRC='_uniop.gif' WIDTH=41 HEIGHT=19 ALT=' UniOp' TITLE='UniOp'>";
  althtmldef "UniOp" as 'UniOp';
  latexdef "UniOp" as '{\rm UniOp}';
htmldef "HrmOp" as
    "<IMG SRC='_hrmop.gif' WIDTH=47 HEIGHT=19 ALT=' HrmOp' TITLE='HrmOp'>";
  althtmldef "HrmOp" as 'HrmOp';
  latexdef "HrmOp" as '{\rm HrmOp}';
htmldef "normfn" as
    "<IMG SRC='_normfn.gif' WIDTH=43 HEIGHT=19 ALT=' normfn' TITLE='normfn'>";
  althtmldef "normfn" as 'norm<SUB>fn</SUB>';
  latexdef "normfn" as '{\rm norm}_{\rm fn}';
htmldef "null" as
    "<IMG SRC='_null.gif' WIDTH=24 HEIGHT=19 ALT=' null' TITLE='null'>";
  althtmldef "null" as 'null';
  latexdef "null" as '{\rm null}';
htmldef "ContFn" as
    "<IMG SRC='_confn.gif' WIDTH=42 HEIGHT=19 ALT=' ContFn' TITLE='ContFn'>";
  althtmldef "ContFn" as 'ContFn';
  latexdef "ContFn" as '{\rm ContFn}';
htmldef "LinFn" as
    "<IMG SRC='_linfn.gif' WIDTH=38 HEIGHT=19 ALT=' LinFn' TITLE='LinFn'>";
  althtmldef "LinFn" as 'LinFn';
  latexdef "LinFn" as '{\rm LinFn}';
htmldef "adjh" as
    "<IMG SRC='_adjh.gif' WIDTH=26 HEIGHT=19 ALT=' adjh' TITLE='adjh'>";
  althtmldef "adjh" as 'adj<SUB>&#x210E;</SUB>';
  latexdef "adjh" as '{\rm adj}_h';
htmldef "bra" as
    "<IMG SRC='_bra.gif' WIDTH=22 HEIGHT=19 ALT=' bra' TITLE='bra'>";
  althtmldef "bra" as 'bra';
  latexdef "bra" as '{\rm bra}';
htmldef "ketbra" as
   " <IMG SRC='_ketbra.gif' WIDTH=43 HEIGHT=19 ALT=' ketbra' TITLE='ketbra'> ";
  althtmldef "ketbra" as ' ketbra ';
  latexdef "ketbra" as '{\rm ketbra}';
htmldef "<_op" as
   " <IMG SRC='_leop.gif' WIDTH=24 HEIGHT=19 ALT=' <_op' TITLE='<_op'> ";
  althtmldef "<_op" as " &le;<SUB>op</SUB> ";
  latexdef "<_op" as '\le_{\rm op}';
htmldef "eigvec" as
    "<IMG SRC='_eigvec.gif' WIDTH=41 HEIGHT=19 ALT=' eigvec' TITLE='eigvec'>";
  althtmldef "eigvec" as 'eigvec';
  latexdef "eigvec" as '{\rm eigvec}';
htmldef "eigval" as
    "<IMG SRC='_eigval.gif' WIDTH=39 HEIGHT=19 ALT=' eigval' TITLE='eigval'>";
  althtmldef "eigval" as 'eigval';
  latexdef "eigval" as '{\rm eigval}';
htmldef "Lambda" as
    "<IMG SRC='clambda.gif' WIDTH=11 HEIGHT=19 ALT=' Lambda' TITLE='Lambda'>";
  althtmldef "Lambda" as 'Lambda';
  latexdef "Lambda" as '\Lambda';
htmldef "States" as
    "<IMG SRC='_states.gif' WIDTH=40 HEIGHT=19 ALT=' States' TITLE='States'>";
  althtmldef "States" as 'States';
  latexdef "States" as '{\rm States}';
    /* These don't have images. */
htmldef "CHStates" as
    "<IMG SRC='_chstates.gif' WIDTH=61 HEIGHT=19 " +
    "ALT=' CHStates' TITLE='CHStates'>";
  althtmldef "CHStates" as 'CHStates';
  latexdef "CHStates" as '{\rm CHStates}';
htmldef "HAtoms" as 'HAtoms';
  althtmldef "HAtoms" as 'HAtoms';
  latexdef "HAtoms" as '{\rm HAtoms}';
htmldef "<oH" as
    " <IMG SRC='_ldh.gif' WIDTH=25 HEIGHT=19 ALT=' &lt;oH' TITLE='&lt;oH'> ";
  althtmldef "<oH" as
    ' &#8918;<SUB>&#8459;</SUB> ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "<oH" as '\lessdot_\mathscr{H}';
htmldef "MH" as
    " <IMG SRC='_mh.gif' WIDTH=27 HEIGHT=19 ALT=' MH' TITLE='MH'> ";
  althtmldef "MH" as ' &#x1D440;<SUB>&#8459;</SUB> ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "MH" as 'M_\mathscr{H}';
htmldef "MH*" as
    " <IMG SRC='_mhast.gif' WIDTH=27 HEIGHT=19 ALT=' MH*' TITLE='MH*'> ";
  althtmldef "MH*" as ' &#x1D440;<SUB>&#8459;</SUB><SUP>*</SUP> ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "MH*" as 'M_\mathscr{H}^*';

/* stuff to be sorted into the right places above: */

/* htmldef, althtmldef, latexdef for mathboxes */
/* Note the "Mathbox of" instead of "Mathbox for" to make searching easier. */

/* Mathbox of Thierry Arnoux */
htmldef "class-o" as "class-o";
  althtmldef "class-o" as "class-o";
  latexdef "class-o" as "class-o";
htmldef "class-n" as "class-n";
  althtmldef "class-n" as "class-n";
  latexdef "class-n" as "class-n";
htmldef "<<<" as "&lt;&lt;&lt;";
  althtmldef "<<<" as "&#x22D8;";
  latexdef "<<<" as "{\rm <<<}";
htmldef "Archi" as "Archi";
  althtmldef "Archi" as "Archi";
  latexdef "Archi" as "{\rm Archi}";
htmldef "oMnd" as "oMnd";
  althtmldef "oMnd" as "oMnd";
  latexdef "oMnd" as "{\rm oMnd}";
htmldef "oGrp" as "oGrp";
  althtmldef "oGrp" as "oGrp";
  latexdef "oGrp" as "{\rm oGrp}";
htmldef "oRing" as "oRing";
  althtmldef "oRing" as "oRing";
  latexdef "oRing" as "{\rm oRing}";
htmldef "oField" as "oField";
  althtmldef "oField" as "oField";
  latexdef "oField" as "{\rm oField}";
htmldef "SLMod" as "SLMod";
  althtmldef "SLMod" as "SLMod";
  latexdef "SLMod" as "{\rm SLMod}";
htmldef "|`v" as " &#8638;<SUB>v</SUB> ";
  althtmldef "|`v" as " &#8638;<SUB>v</SUB> ";
  latexdef "|`v" as "\restriction_v";
htmldef "subMat1" as "subMat1";
  althtmldef "subMat1" as "subMat1";
  latexdef "subMat1" as "{\rm subMat1}";
htmldef "litMat" as "litMat";
  althtmldef "litMat" as "litMat";
  latexdef "litMat" as "{\rm litMat}";
htmldef "RRExt" as " &#8477;Ext ";
  althtmldef "RRExt" as " &#8477;Ext ";
  latexdef "RRExt" as "\mathbb{R}{\rm Ext}";
htmldef "PsMet" as "PsMet";
  althtmldef "PsMet" as "PsMet";
  latexdef "PsMet" as "{\rm PsMet}";
htmldef "~Met" as "~Met";
  althtmldef "~Met" as "~<SUB>Met</SUB>";
  latexdef "~Met" as "~_{\rm Met}";
htmldef "pstoMet" as "pstoMet";
  althtmldef "pstoMet" as "pstoMet";
  latexdef "pstoMet" as "{\rm pstoMet}";
htmldef "HCmp" as "HCmp";
  althtmldef "HCmp" as "HCmp";
  latexdef "HCmp" as "{\rm HCmp}";
htmldef "CnExt" as "CnExt";
  althtmldef "CnExt" as "CnExt";
  latexdef "CnExt" as "{\rm CnExt}";
htmldef "UnifOn" as "UnifOn";
  althtmldef "UnifOn" as "UnifOn";
  latexdef "UnifOn" as "{\rm UnifOn}";
htmldef "UnifSt" as "UnifSt";
  althtmldef "UnifSt" as "UnifSt";
  latexdef "UnifSt" as "{\rm UnifSt}";
htmldef "UnifSp" as "UnifSp";
  althtmldef "UnifSp" as "UnifSp";
  latexdef "UnifSp" as "{\rm UnifSp}";
htmldef "toUnifSp" as "toUnifSp";
  althtmldef "toUnifSp" as "toUnifSp";
  latexdef "toUnifSp" as "{\rm toUnifSp}";
htmldef "unifTop" as "unifTop";
  althtmldef "unifTop" as "unifTop";
  latexdef "unifTop" as "{\rm unifTop}";
htmldef "uCn" as " Cn<SUB>u</SUB>";
  althtmldef "uCn" as " Cn<SUB>u</SUB>";
  latexdef "uCn" as "{\rm Cn_u}";
htmldef "CauFilU" as "CauFil<SUB>u</SUB>";
  althtmldef "CauFilU" as "CauFil<SUB>u</SUB>";
  latexdef "CauFilU" as "{\rm CauFil_u}";
htmldef "CUnifSp" as "CUnifSp";
  althtmldef "CUnifSp" as "CUnifSp";
  latexdef "CUnifSp" as "{\rm CUnifSp}";
htmldef "metUnif" as "metUnif";
  althtmldef "metUnif" as "metUnif";
  latexdef "metUnif" as "{\rm metUnif}";
htmldef "CovHasRef" as "CovHasRef";
  althtmldef "CovHasRef" as "CovHasRef";
  latexdef "CovHasRef" as "{\rm CovHasRef}";
htmldef "Ldlf" as "Ldlf";
  althtmldef "Ldlf" as "Ldlf";
  latexdef "Ldlf" as "{\rm Ldlf}";
htmldef "Paracomp" as "Paracomp";
  althtmldef "Paracomp" as "Paracomp";
  latexdef "Paracomp" as "{\rm Paracomp}";
htmldef "ManTop" as "ManTop";
  althtmldef "ManTop" as "ManTop";
  latexdef "ManTop" as "{\rm ManTop}";
htmldef "/e" as " /<SUB>&#x1D452;</SUB> ";
  althtmldef "/e" as " /<SUB>&#x1D452;</SUB> ";
  latexdef "/e" as '/_e';
htmldef "sum*" as "&Sigma;<SUP>*</SUP>";
  althtmldef "sum*" as "&Sigma;<SUP>*</SUP>";
  latexdef "sum*" as "\Sigma^*";
htmldef "sgns" as "sgn<SUB>s</SUB>";
  althtmldef "sgns" as "sgn<SUB>s</SUB>";
  latexdef "sgns" as "\rm{sgn}_s";
htmldef "oFC" as "&#8728;<SUB>&#x1D453;/&#x1D450;</SUB>";
  althtmldef "oFC" as "&#8728;<SUB>&#x1D453;/&#x1D450;</SUB>";
  latexdef "oFC" as "\circ_f/c";
htmldef "seqstr" as "seq<SUB>str</SUB>";
  althtmldef "seqstr" as "seq<SUB>str</SUB>";
  latexdef "seqstr" as "\rm{sgn}_str";
htmldef "Fibci" as "Fibci";
  althtmldef "Fibci" as "Fibci";
  latexdef "Fibci" as "{\rm Fibci}";
htmldef "sigAlgebra" as "sigAlgebra";
  althtmldef "sigAlgebra" as "sigAlgebra";
  latexdef "sigAlgebra" as "{\rm sigAlgebra}";
htmldef "sigaGen" as "sigaGen";
  althtmldef "sigaGen" as "sigaGen";
  latexdef "sigaGen" as "{\rm sigaGen}";
htmldef "BrSiga" as "&#x1D505;<SUB>&#8477;</SUB>";
  althtmldef "BrSiga" as "&#x1D505;<SUB>&#8477;</SUB>";
  latexdef "BrSiga" as "\mathfrak{B}_\mathbb{R}";
htmldef "sX" as " &times;<SUB>s</SUB> ";
  althtmldef "sX" as " &times;<SUB>s</SUB> ";
  latexdef "sX" as "\times_s";
htmldef "measures" as "measures";
  althtmldef "measures" as "measures";
  latexdef "measures" as "{\rm measures}";
htmldef "Ddelta" as "&delta;";
  althtmldef "Ddelta" as "&delta;";
  latexdef "Ddelta" as "{\rm \delta}";
htmldef "toOMeas" as "toOMeas";
  althtmldef "toOMeas" as "toOMeas";
  latexdef "toOMeas" as "{\rm toOMeas}";
htmldef "toCaraSiga" as "toCaraSiga";
  althtmldef "toCaraSiga" as "toCaraSiga";
  latexdef "toCaraSiga" as "{\rm toCaraSiga}";
htmldef "MblFnM" as "MblFnM";
  althtmldef "MblFnM" as "MblFnM";
  latexdef "MblFnM" as "{\rm MblFnM}";
htmldef "ae" as "a.e.";
  althtmldef "ae" as "a.e.";
  latexdef "ae" as "{\rm a.e.}";
htmldef "~ae" as "~ a.e.";
  althtmldef "~ae" as "~ a.e.";
  latexdef "~ae" as "{\rm ~ a.e.}";
htmldef "QQHom" as "QQHom";
  althtmldef "QQHom" as "&#8474;Hom";
  latexdef "QQHom" as "\mathbb{Q}{\rm Hom}";
htmldef "RRHom" as "RRHom";
  althtmldef "RRHom" as "&#8477;Hom";
  latexdef "RRHom" as "\mathbb{R}{\rm Hom}";
htmldef "RR*Hom" as "RR<SUP>*</SUP>Hom";
  althtmldef "RR*Hom" as "&#8477;<SUP>*</SUP>Hom";
  latexdef "RR*Hom" as "\mathbb{R}^*{\rm Hom}";
htmldef "itgm" as "itgm";
  althtmldef "itgm" as "itgm";
  latexdef "itgm" as "{\rm itgm}";
htmldef "sitg" as "sitg";
  althtmldef "sitg" as "sitg";
  latexdef "sitg" as "{\rm sitg}";
htmldef "sitm" as "sitm";
  althtmldef "sitm" as "sitm";
  latexdef "sitm" as "{\rm sitm}";
htmldef "Prob" as "Prob";
  althtmldef "Prob" as "Prob";
  latexdef "Prob" as "{\rm Prob}";
htmldef "cprob" as "cprob";
  althtmldef "cprob" as "cprob";
  latexdef "cprob" as "{\rm cprob}";
htmldef "rRndVar" as "rRndVar";
  althtmldef "rRndVar" as "rRndVar";
  latexdef "rRndVar" as "{\rm rRndVar}";
htmldef "_Ind" as "&#x1D7ED;";
  althtmldef "_Ind" as "&#x1D7ED;";
  latexdef "_Ind" as "\mathsfbf{1}";
htmldef "oRVC" as "&#8728;<SUB>RV/&#x1D450;</SUB>";
  althtmldef "oRVC" as "&#8728;<SUB>RV/&#x1D450;</SUB>";
  latexdef "oRVC" as "\circ_RV/c";

htmldef "repr" as "repr";
  althtmldef "repr" as "repr";
  latexdef "repr" as "{\rm repr}";
htmldef "vts" as "vts";
  althtmldef "vts" as "vts";
  latexdef "vts" as "{\rm vts}";

htmldef "Itv" as "Itv";
  althtmldef "Itv" as "Itv";
  latexdef "Itv" as "{\rm Itv}";
htmldef "LineG" as "LineG";
  althtmldef "LineG" as "LineG";
  latexdef "LineG" as "{\rm LineG}";
htmldef "midG" as "midG";
  althtmldef "midG" as "midG";
  latexdef "midG" as "{\rm midG}";
htmldef "pInvG" as "pInvG";
  althtmldef "pInvG" as "pInvG";
  latexdef "pInvG" as "{\rm pInvG}";
htmldef "lInvG" as "lInvG";
  althtmldef "lInvG" as "lInvG";
  latexdef "lInvG" as "{\rm lInvG}";
htmldef "Ismt" as "Ismt";
  althtmldef "Ismt" as "Ismt";
  latexdef "Ismt" as "{\rm Ismt}";
htmldef "TarskiG" as "TarskiG";
  althtmldef "TarskiG" as "TarskiG";
  latexdef "TarskiG" as "{\rm TarskiG}";
htmldef "TarskiGC" as "TarskiG<SUB>C</SUB>";
  althtmldef "TarskiGC" as "TarskiG<SUB>C</SUB>";
  latexdef "TarskiGC" as "{\rm TarskiG_C}";
htmldef "TarskiGB" as "TarskiG<SUB>B</SUB>";
  althtmldef "TarskiGB" as "TarskiG<SUB>B</SUB>";
  latexdef "TarskiGB" as "{\rm TarskiG_B}";
htmldef "TarskiGCB" as "TarskiG<SUB>CB</SUB>";
  althtmldef "TarskiGCB" as "TarskiG<SUB>CB</SUB>";
  latexdef "TarskiGCB" as "{\rm TarskiG_CB}";
htmldef "TarskiGE" as "TarskiG<SUB>E</SUB>";
  althtmldef "TarskiGE" as "TarskiG<SUB>E</SUB>";
  latexdef "TarskiGE" as "{\rm TarskiG_E}";
htmldef "TarskiGDim>=" as "Dim<SUB>TarskiG</SUB>&ge;";
  althtmldef "TarskiGDim>=" as "Dim<SUB>TarskiG</SUB>&ge;";
  latexdef "TarskiGDim>=" as "{\rm Dim_TarskiG}\ge";
htmldef "TarskiG2D" as "TarskiG<SUB>2D</SUB>";
  althtmldef "TarskiG2D" as "TarskiG<SUB>2D</SUB>";
  latexdef "TarskiG2D" as "{\rm TarskiG_2D}";
htmldef "AFS" as "AFS";
  althtmldef "AFS" as "AFS";
  latexdef "AFS" as "{\rm AFS}";
htmldef "cgrG" as "cgrG";
  althtmldef "cgrG" as "cgrG";
  latexdef "cgrG" as "{\rm cgrG}";
htmldef "leG" as "&le;G";
  althtmldef "leG" as "&le;G";
  latexdef "leG" as "\le{\rm G}";
htmldef "raG" as "&#8735;G"; /* &angrt; fails validator so use its code */
  althtmldef "raG" as "&#8735;G"; /* &angrt; fails validator so use its code */
  latexdef "raG" as "\L{\rm G}";
htmldef "perpG" as "&#x27C2;G";
  althtmldef "perpG" as "&#x27C2;G";
  latexdef "perpG" as "\bot{\rm G}";
htmldef "hpG" as "hpG";
  althtmldef "hpG" as "hpG";
  latexdef "hpG" as "{\rm hpG}";
htmldef "hlG" as "hlG";
  althtmldef "hlG" as "hlG";
  latexdef "hlG" as "{\rm hlG}";
htmldef "inA" as "inA";
  althtmldef "inA" as "inA";
  latexdef "inA" as "{\rm inA}";
htmldef "leA" as "&le;<SUB>&angle;</SUB>";
  althtmldef "leA" as "&le;<SUB>&angle;</SUB>";
  latexdef "leA" as "\le_\angle";
htmldef "cgrA" as "cgrA";
  althtmldef "cgrA" as "cgrA";
  latexdef "cgrA" as "{\rm cgrA}";
htmldef "eqltrG" as "eqltrG";
  althtmldef "eqltrG" as "eqltrG";
  latexdef "eqltrG" as "{\rm eqltrG}";
htmldef "EEG" as "EEG";
  althtmldef "EEG" as "EEG";
  latexdef "EEG" as "{\rm EEG}";
htmldef "toTG" as "toTG";
  althtmldef "toTG" as "toTG";
  latexdef "toTG" as "{\rm toTG}";
/* End of Thierry Arnoux's mathbox */

/* Mathbox of Mario Carneiro */
htmldef "zeta" as
    "<IMG SRC='zeta.gif' WIDTH=9 HEIGHT=19 ALT=' zeta' TITLE='zeta'>";
  althtmldef "zeta" as "&zeta;";
  latexdef "zeta" as "\zeta";
htmldef "_G" as
    "<IMG SRC='cgamma.gif' WIDTH=10 HEIGHT=19 ALT=' _G' TITLE='_G'>";
  althtmldef "_G" as "&Gamma;";
  latexdef "_G" as "\Gamma";
htmldef "log_G" as
    "<IMG SRC='_log.gif' WIDTH=20 HEIGHT=19 ALT=' log' TITLE='log'> " +
    "<IMG SRC='cgamma.gif' WIDTH=10 HEIGHT=19 ALT='_G' TITLE='_G'>";
  althtmldef "log_G" as "log &Gamma;";
  latexdef "log_G" as "\log\Gamma";
htmldef "1/_G" as
    "1/<IMG SRC='cgamma.gif' WIDTH=10 HEIGHT=19 ALT=' _G' TITLE='_G'>";
  althtmldef "1/_G" as "1/&Gamma;";
  latexdef "1/_G" as "1/\Gamma";
htmldef "Retr" as " Retr "; althtmldef "Retr" as " Retr ";
  latexdef "Retr" as "{\rm Retr}";
htmldef "PConn" as "PConn"; althtmldef "PConn" as "PConn";
  latexdef "PConn" as " {\rm PConn} ";
htmldef "SConn" as "SConn"; althtmldef "SConn" as "SConn";
  latexdef "SConn" as "{\rm SConn}";
htmldef "CovMap" as " CovMap "; althtmldef "CovMap" as " CovMap ";
  latexdef "CovMap" as " {\rm CovMap} ";
htmldef "e.g" as
    " <IMG SRC='_ing.gif' WIDTH=17 HEIGHT=19 ALT=' e.g' TITLE='e.g'> ";
  althtmldef "e.g" as "&isin;<SUB>&#x1D454;</SUB>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "e.g" as "\in_g";
htmldef "|g" as
    " <IMG SRC='barwedge.gif' WIDTH=9 HEIGHT=19 ALT=' |' TITLE='|'>" +
    "<IMG SRC='subg.gif' WIDTH=7 HEIGHT=19 ALT='g' TITLE='g'> ";
  althtmldef "|g" as "&#8892;<SUB>&#x1D454;</SUB>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "|g" as "\barwedge_g";
htmldef "A.g" as
    "<IMG SRC='_forallg.gif' WIDTH=14 HEIGHT=19 ALT=' A.g' TITLE='A.g'>";
  althtmldef "A.g" as
    "&forall;<SUB>&#x1D454;</SUB>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "A.g" as "\forall_g";
htmldef "=g" as
    " <IMG SRC='_eqg.gif' WIDTH=19 HEIGHT=19 ALT=' =g' TITLE='=g'> ";
  althtmldef "=g" as "=<SUB>&#x1D454;</SUB>"; latexdef "=g" as "=_g";
htmldef "/\g" as
    " <IMG SRC='_wedgeg.gif' WIDTH=18 HEIGHT=19 ALT=' /\g' TITLE='/\g'> ";
  althtmldef "/\g" as "&and;<SUB>&#x1D454;</SUB>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "/\g" as "\wedge_g";
htmldef "-.g" as
    "<IMG SRC='_lnotg.gif' WIDTH=17 HEIGHT=19 ALT=' -.g' TITLE='-.g'>";
  althtmldef "-.g" as "&not;<SUB>&#x1D454;</SUB>"; latexdef "-.g" as "\lnot_g";
htmldef "->g" as
    " <IMG SRC='_tog.gif' WIDTH=20 HEIGHT=19 ALT=' -&gt;g' TITLE='-&gt;g'> ";
  althtmldef "->g" as
    " &rarr;<SUB>&#x1D454;</SUB> "; latexdef "->g" as "\to_g";
htmldef "<->g" as " <IMG SRC='_lrarrg.gif' WIDTH=20 HEIGHT=19 " +
    "ALT=' &lt;-&gt;g' TITLE='&lt;-&gt;g'> ";
  althtmldef "<->g" as " &harr;<SUB>&#x1D454;</SUB> ";
  latexdef "<->g" as "\leftrightarrow_g";
htmldef "\/g" as
    " <IMG SRC='_veeg.gif' WIDTH=15 HEIGHT=19 ALT=' \/g' TITLE='\/g'> ";
  althtmldef "\/g" as " &or;<SUB>&#x1D454;</SUB> ";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "\/g" as "\vee_g";
htmldef "E.g" as
    "<IMG SRC='_existsg.gif' WIDTH=16 HEIGHT=19 ALT=' E.g' TITLE='E.g'>";
  althtmldef "E.g" as
    "&exist;<SUB>&#x1D454;</SUB>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "E.g" as "\exists_g";
htmldef "Fmla" as
    "<IMG SRC='_fmla.gif' WIDTH=33 HEIGHT=19 ALT=' Fmla' TITLE='Fmla'>";
  althtmldef "Fmla" as "Fmla"; latexdef "Fmla" as "{\rm Fmla}";
htmldef "Sat" as
    " <IMG SRC='_sat.gif' WIDTH=22 HEIGHT=19 ALT=' Sat' TITLE='Sat'> ";
  althtmldef "Sat" as " Sat "; latexdef "Sat" as "{\rm Sat}";
htmldef "SatE" as
    " <IMG SRC='_sat.gif' WIDTH=22 HEIGHT=19 ALT=' Sat' TITLE='Sat'>" +
    "<IMG SRC='subin.gif' WIDTH=7 HEIGHT=19 ALT='E' TITLE='E'> ";
  althtmldef "SatE" as " Sat<SUB>&isin;</SUB> ";
  latexdef "SatE" as "{\rm Sat}_\in";
htmldef "|=" as
    " <IMG SRC='models.gif' WIDTH=12 HEIGHT=19 ALT=' |=' TITLE='|='> ";
  althtmldef "|=" as "&#8871;"; latexdef "|=" as "\models";
htmldef "AxExt" as
    "<IMG SRC='_axext.gif' WIDTH=41 HEIGHT=19 ALT=' AxExt' TITLE='AxExt'>";
  althtmldef "AxExt" as "AxExt"; latexdef "AxExt" as "{\rm AxExt}";
htmldef "AxRep" as
    "<IMG SRC='_axrep.gif' WIDTH=43 HEIGHT=19 ALT=' AxRep' TITLE='AxRep'>";
  althtmldef "AxRep" as "AxRep"; latexdef "AxRep" as "{\rm AxRep}";
htmldef "AxPow" as
    "<IMG SRC='_axpow.gif' WIDTH=46 HEIGHT=19 ALT=' AxPow' TITLE='AxPow'>";
  althtmldef "AxPow" as "AxPow"; latexdef "AxPow" as "{\rm AxPow}";
htmldef "AxUn" as
    "<IMG SRC='_axun.gif' WIDTH=36 HEIGHT=19 ALT=' AxUn' TITLE='AxUn'>";
  althtmldef "AxUn" as "AxUn"; latexdef "AxUn" as "{\rm AxUn}";
htmldef "AxReg" as
    "<IMG SRC='_axreg.gif' WIDTH=43 HEIGHT=19 ALT=' AxReg' TITLE='AxReg'>";
  althtmldef "AxReg" as "AxReg"; latexdef "AxReg" as "{\rm AxReg}";
htmldef "AxInf" as
    "<IMG SRC='_axinf.gif' WIDTH=36 HEIGHT=19 ALT=' AxInf' TITLE='AxInf'>";
  althtmldef "AxInf" as "AxInf"; latexdef "AxInf" as "{\rm AxInf}";
htmldef "ZF" as
    "<IMG SRC='_zf.gif' WIDTH=19 HEIGHT=19 ALT=' ZF' TITLE='ZF'>";
  althtmldef "ZF" as "<FONT FACE=sans-serif><B>ZF</B></FONT>";
  latexdef "ZF" as "{\sf ZF}";
htmldef "mCN" as "mCN"; althtmldef "mCN" as "mCN";
  latexdef "mCN" as "{\rm mCN}";
htmldef "mVR" as "mVR"; althtmldef "mVR" as "mVR";
  latexdef "mVR" as "{rm mVR}";
htmldef "mType" as "mType"; althtmldef "mType" as "mType";
  latexdef "mType" as "{rm mType}";
htmldef "mVT" as "mVT"; althtmldef "mVT" as "mVT";
  latexdef "mVT" as "{rm mVT}";
htmldef "mTC" as "mTC"; althtmldef "mTC" as "mTC";
  latexdef "mTC" as "{rm mTC}";
htmldef "mAx" as "mAx"; althtmldef "mAx" as "mAx";
  latexdef "mAx" as "{rm mAx}";
htmldef "mREx" as "mREx"; althtmldef "mREx" as "mREx";
  latexdef "mREx" as "{rm mREx}";
htmldef "mEx" as "mEx"; althtmldef "mEx" as "mEx";
  latexdef "mEx" as "{rm mEx}";
htmldef "mDV" as "mDV"; althtmldef "mDV" as "mDV";
  latexdef "mDV" as "{rm mDV}";
htmldef "mVars" as "mVars"; althtmldef "mVars" as "mVars";
  latexdef "mVars" as "{rm mVars}";
htmldef "mRSubst" as "mRSubst"; althtmldef "mRSubst" as "mRSubst";
  latexdef "mRSubst" as "{rm mRSubst}";
htmldef "mSubst" as "mSubst"; althtmldef "mSubst" as "mSubst";
  latexdef "mSubst" as "{rm mSubst}";
htmldef "mVH" as "mVH"; althtmldef "mVH" as "mVH";
  latexdef "mVH" as "{rm mVH}";
htmldef "mPreSt" as "mPreSt"; althtmldef "mPreSt" as "mPreSt";
  latexdef "mPreSt" as "{rm mPreSt}";
htmldef "mStRed" as "mStRed"; althtmldef "mStRed" as "mStRed";
  latexdef "mStRed" as "{rm mStRed}";
htmldef "mStat" as "mStat"; althtmldef "mStat" as "mStat";
  latexdef "mStat" as "{rm mStat}";
htmldef "mFS" as "mFS"; althtmldef "mFS" as "mFS";
  latexdef "mFS" as "{rm mFS}";
htmldef "mCls" as "mCls"; althtmldef "mCls" as "mCls";
  latexdef "mCls" as "{rm mCls}";
htmldef "mPPSt" as "mPPSt"; althtmldef "mPPSt" as "mPPSt";
  latexdef "mPPSt" as "{rm mPPSt}";
htmldef "mThm" as "mThm"; althtmldef "mThm" as "mThm";
  latexdef "mThm" as "{rm mThm}";
htmldef "m0St" as "m0St"; althtmldef "m0St" as "m0St";
  latexdef "m0St" as "{rm m0St}";
htmldef "mSA" as "mSA"; althtmldef "mSA" as "mSA";
  latexdef "mSA" as "{rm mSA}";
htmldef "mWGFS" as "mWGFS"; althtmldef "mWGFS" as "mWGFS";
  latexdef "mWGFS" as "{rm mWGFS}";
htmldef "mSyn" as "mSyn"; althtmldef "mSyn" as "mSyn";
  latexdef "mSyn" as "{rm mSyn}";
htmldef "mESyn" as "mESyn"; althtmldef "mESyn" as "mESyn";
  latexdef "mESyn" as "{rm mESyn}";
htmldef "mGFS" as "mGFS"; althtmldef "mGFS" as "mGFS";
  latexdef "mGFS" as "{rm mGFS}";
htmldef "mTree" as "mTree"; althtmldef "mTree" as "mTree";
  latexdef "mTree" as "{rm mTree}";
htmldef "mST" as "mST"; althtmldef "mST" as "mST";
  latexdef "mST" as "{rm mST}";
htmldef "mSAX" as "mSAX"; althtmldef "mSAX" as "mSAX";
  latexdef "mSAX" as "{rm mSAX}";
htmldef "mUFS" as "mUFS"; althtmldef "mUFS" as "mUFS";
  latexdef "mUFS" as "{rm mUFS}";
htmldef "mUV" as "mUV"; althtmldef "mUV" as "mUV";
  latexdef "mUV" as "{rm mUV}";
htmldef "mVL" as "mVL"; althtmldef "mVL" as "mVL";
  latexdef "mVL" as "{rm mVL}";
htmldef "mVSubst" as "mVSubst"; althtmldef "mVSubst" as "mVSubst";
  latexdef "mVSubst" as "{rm mVSubst}";
htmldef "mFresh" as "mFresh"; althtmldef "mFresh" as "mFresh";
  latexdef "mFresh" as "{rm mFresh}";
htmldef "mFRel" as "mFRel"; althtmldef "mFRel" as "mFRel";
  latexdef "mFRel" as "{rm mFRel}";
htmldef "mEval" as "mEval"; althtmldef "mEval" as "mEval";
  latexdef "mEval" as "{rm mEval}";
htmldef "mMdl" as "mMdl"; althtmldef "mMdl" as "mMdl";
  latexdef "mMdl" as "{rm mMdl}";
htmldef "mUSyn" as "mUSyn"; althtmldef "mUSyn" as "mUSyn";
  latexdef "mUSyn" as "{rm mUSyn}";
htmldef "mGMdl" as "mGMdl"; althtmldef "mGMdl" as "mGMdl";
  latexdef "mGMdl" as "{rm mGMdl}";
htmldef "mItp" as "mItp"; althtmldef "mItp" as "mItp";
  latexdef "mItp" as "{rm mItp}";
htmldef "mFromItp" as "mFromItp"; althtmldef "mFromItp" as "mFromItp";
  latexdef "mFromItp" as "{rm mFromItp}";
htmldef "IntgRing" as " IntgRing "; althtmldef "IntgRing" as " IntgRing ";
  latexdef "IntgRing" as " {\rm IntgRing} ";
htmldef "cplMetSp" as " cplMetSp "; althtmldef "cplMetSp" as " cplMetSp ";
  latexdef "cplMetSp" as " {\rm cplMetSp} ";
htmldef "HomLimB" as " HomLimB "; althtmldef "HomLimB" as " HomLimB ";
  latexdef "HomLimB" as " {\rm HomLimB} ";
htmldef "HomLim" as " HomLim "; althtmldef "HomLim" as " HomLim ";
  latexdef "HomLim" as " {\rm HomLim} ";
htmldef "polyFld" as " polyFld "; althtmldef "polyFld" as " polyFld ";
  latexdef "polyFld" as " {\rm polyFld} ";
htmldef "splitFld1" as " splitFld<sub>1</sub> ";
  althtmldef "splitFld1" as " splitFld<sub>1</sub> ";
  latexdef "splitFld1" as " {\rm splitFld}_1 ";
htmldef "splitFld" as " splitFld "; althtmldef "splitFld" as " splitFld ";
  latexdef "splitFld" as " {\rm splitFld} ";
htmldef "polySplitLim" as " polySplitLim ";
  althtmldef "polySplitLim" as " polySplitLim ";
  latexdef "polySplitLim" as " {\rm polySplitLim} ";
htmldef "ZRing" as "ZRing";
  althtmldef "ZRing" as "ZRing";
  latexdef "ZRing" as "{\rm ZRing}";
htmldef "GF" as " GF "; althtmldef "GF" as " GF ";
  latexdef "GF" as " {\rm GF} ";
htmldef "GF_oo" as "GF<sub>&infin;</sub>";
  althtmldef "GF_oo" as "GF<sub>&infin;</sub>";
  latexdef "GF_oo" as "{\rm GF}_\infty";
htmldef "~Qp" as "~Qp"; althtmldef "~Qp" as "~Qp";
  latexdef "~Qp" as "\sim_{\Bbb Qp}";
htmldef "/Qp" as "/Qp"; althtmldef "/Qp" as "/Qp";
  latexdef "/Qp" as "/_{\Bbb Qp}";
htmldef "Qp" as "Qp"; althtmldef "Qp" as "Qp";
  latexdef "Qp" as "\Bbb Q_p";
htmldef "QpOLD" as "QpOLD"; althtmldef "QpOLD" as "QpOLD";
  latexdef "QpOLD" as "\Bbb Q_p";
htmldef "Zp" as "Zp"; althtmldef "Zp" as "Zp";
  latexdef "Zp" as "\Bbb Z_p";
htmldef "_Qp" as "_Qp"; althtmldef "_Qp" as "_Qp";
  latexdef "_Qp" as "\overline{\Bbb Q_p}";
htmldef "Cp" as "Cp"; althtmldef "Cp" as "Cp";
  latexdef "Cp" as "\Bbb C_p";
/* End of Mario Carneiro's mathbox */

/* Mathbox of Paul Chapman */
/* End of Paul Chapman's mathbox */

/* Mathbox of Drahflow */
htmldef "^r" as
    " <IMG SRC='uparrow.gif' WIDTH=7 HEIGHT=19 ALT='^' TITLE='^'>" +
    "<IMG SRC='subr.gif' WIDTH=5 HEIGHT=19 ALT='r' TITLE='r'> " ;
  althtmldef "^r" as '&uarr;<sub>&#x1D45F;</sub>';
  latexdef "^r" as "\uparrow_r";
htmldef "t*rec" as "<IMG SRC='t.gif' WIDTH=7 HEIGHT=19 ALT=' t' TITLE='t'>" +
    "<IMG SRC='ast.gif' WIDTH=7 HEIGHT=19 ALT='*' TITLE='*'>" + "rec";
  althtmldef "t*rec" as "t*rec";
  latexdef "t*rec" as "{{\rm t}*}_{\rm rec}";
/* End of Drahflow's mathbox */

/* Mathbox of Scott Fenton */
htmldef "Pred" as
    "<IMG SRC='_pred.gif' WIDTH=30 HEIGHT=19 ALT=' Pred' TITLE='Pred'>";
  althtmldef "Pred" as "Pred";
  latexdef "Pred" as "{\rm Pred}";
htmldef "TrPred" as
    "<IMG SRC='_trpred.gif' WIDTH=44 HEIGHT=19 ALT=' TrPred' TITLE='TrPred'>";
  althtmldef "TrPred" as "TrPred";
  latexdef "TrPred" as "{\rm TrPred}";
htmldef "wrecs" as "wrecs";
  althtmldef "wrecs" as "wrecs";
  latexdef "wrecs" as "{\rm wrecs}";
htmldef "wsuc" as "wsuc";
  althtmldef "wsuc" as "wsuc";
  latexdef "wsuc" as "{\rm wsuc}";
htmldef "WLim" as "WLim";
  althtmldef "WLim" as "WLim";
  latexdef "WLim" as "{\rm WLim}";
htmldef "frecs" as "frecs";
  althtmldef "frecs" as "frecs";
  latexdef "frecs" as "{\rm frecs}";
htmldef "No" as "<IMG SRC='_no.gif' WIDTH=17 HEIGHT=19 ALT=' No' TITLE='No'>";
  althtmldef "No" as '<FONT FACE=sans-serif> No </FONT>';
  latexdef "No" as "{\rm No}";
htmldef "<s" as
    "<IMG SRC='lt.gif' WIDTH=11 HEIGHT=19 ALT=' &lt;' TITLE='&lt;'>" +
    "<IMG SRC='subs.gif' WIDTH=6 HEIGHT=19 ALT='s' TITLE='s'>";
  althtmldef "<s" as " &lt;s ";
  latexdef "<s" as "{<_s}";
htmldef "bday" as
    "<IMG SRC='_bday.gif' WIDTH=32 HEIGHT=19 ALT=' bday' TITLE='bday'>";
  althtmldef "bday" as '<FONT FACE=sans-serif> bday </FONT>';
  latexdef "bday" as "{\rm bday}";
htmldef "<<s" as
    "<IMG SRC='lt.gif' WIDTH=11 HEIGHT=19 ALT=' &lt;' TITLE='&lt;'>" +
    "<IMG SRC='lt.gif' WIDTH=11 HEIGHT=19 ALT=' &lt;' TITLE='&lt;'>" +
    "<IMG SRC='subs.gif' WIDTH=6 HEIGHT=19 ALT='s' TITLE='s'>";
  althtmldef "<<s" as " &lt;&lt;s ";
  latexdef "<<s" as "{<<_s}";
htmldef "<_s" as
    "<IMG SRC='le.gif' WIDTH=11 HEIGHT=19 ALT=' &le;' TITLE='&le;'>" +
    "<IMG SRC='subs.gif' WIDTH=6 HEIGHT=19 ALT='s' TITLE='s'>";
  althtmldef "<_s" as " &le;s ";
  latexdef "<_s" as "{\le_s}";
htmldef "|s" as
    "<IMG SRC='vert.gif' WIDTH=3 HEIGHT=19 ALT=' |' TITLE='|'>" +
    "<IMG SRC='subs.gif' WIDTH=6 HEIGHT=19 ALT='s' TITLE='s'>";
  althtmldef "|s" as " |s ";
  latexdef "|s" as "{|_s}";
htmldef "_M" as " M ";
  althtmldef "_M" as " M ";
  latexdef "_M" as " {\mathrm M} ";
htmldef "_Old" as " O ";
  althtmldef "_Old" as " O ";
  latexdef "_Old" as " {\mathrm O} ";
htmldef "_N" as " N ";
  althtmldef "_N" as " N ";
  latexdef "_N" as " {\mathrm N} ";
htmldef "_L" as " L ";
  althtmldef "_L" as " L ";
  latexdef "_L" as " {\mathrm L} ";
htmldef "_R" as " R ";
  althtmldef "_R" as " R ";
  latexdef "_R" as " {\mathrm R} ";
htmldef "/_\" as
    " <IMG SRC='bigtriangleup.gif' WIDTH=13 HEIGHT=19" +
    " ALT=' /_\' TITLE='/_\'> ";
  althtmldef "/_\" as " &#x25b3; ";
  latexdef "/_\" as "\triangle";
htmldef "(x)" as
    " <IMG SRC='otimes.gif' WIDTH=13 HEIGHT=19 ALT=' (x)' TITLE='(x)'> ";
  althtmldef "(x)" as " &#x2297; ";
  latexdef "(x)" as "\otimes";
/*
htmldef "(+)" as
    " <IMG SRC='oplus.gif' WIDTH=13 HEIGHT=19 ALT=' (+)' TITLE='(+)'> ";
  althtmldef "(+)" as " &#x2295; ";
  latexdef "(+)" as "\oplus";
*/
htmldef "Bigcup" as
    "<IMG SRC='_bigcup.gif' WIDTH=44 HEIGHT=19 ALT=' Bigcup' TITLE='Bigcup'>";
  althtmldef "Bigcup" as '<FONT FACE=sans-serif> Bigcup </FONT>';
  latexdef "Bigcup" as "{\rm Bigcup}";
htmldef "SSet" as
    "<IMG SRC='_sset.gif' WIDTH=29 HEIGHT=19 ALT=' SSet' TITLE='SSet'>";
  althtmldef "SSet" as '<FONT FACE=sans-serif> SSet </FONT>';
  latexdef "SSet" as "{\rm SSet}";
htmldef "Trans" as
    "<IMG SRC='_trans.gif' WIDTH=38 HEIGHT=19 ALT=' Trans' TITLE='Trans'>";
  althtmldef "Trans" as '<FONT FACE=sans-serif> Trans </FONT>';
  latexdef "Trans" as "{\rm Trans}";
htmldef "Limits" as
    "<IMG SRC='_limits.gif' WIDTH=41 HEIGHT=19 ALT=' Limits' TITLE='Limits'>";
  althtmldef "Limits" as '<FONT FACE=sans-serif> Limits </FONT>';
  latexdef "Limits" as "{\rm Limits}";
htmldef "Fix" as
    "<IMG SRC='_fix.gif' WIDTH=21 HEIGHT=19 ALT=' Fix' TITLE='Fix'>";
  althtmldef "Fix" as '<FONT FACE=sans-serif> Fix </FONT>';
  latexdef "Fix" as "{\rm Fix}";
htmldef "Funs" as
    "<IMG SRC='_funs.gif' WIDTH=31 HEIGHT=19 ALT=' Funs' TITLE='Funs'>";
  althtmldef "Funs" as '<FONT FACE=sans-serif> Funs </FONT>';
  latexdef "Funs" as "{\rm Funs}";
htmldef "Singleton" as "Singleton";
  althtmldef "Singleton" as "Singleton";
  latexdef "Singleton" as "Singleton";
htmldef "Singletons" as "<IMG SRC='_singletons.gif' WIDTH=66 HEIGHT=19 " +
    "ALT=' Singletons' TITLE='Singletons'>";
  althtmldef "Singletons" as '<FONT FACE=sans-serif> Singletons </FONT>';
  latexdef "Singletons" as "{\rm Singletons}";
htmldef "Image" as "Image";
  althtmldef "Image" as "Image";
  latexdef "Image" as "{\rm Image}";
htmldef "Cart" as "Cart";
  althtmldef "Cart" as "Cart";
  latexdef "Cart" as "{\rm Cart}";
htmldef "Img" as "Img";
  althtmldef "Img" as "Img";
  latexdef "Img" as "{\rm Img}";
htmldef "Domain" as "Domain";
  althtmldef "Domain" as "Domain";
  latexdef "Domain" as "{\rm Domain}";
htmldef "Range" as "Range";
  althtmldef "Range" as "Range";
  latexdef "Range" as "{\rm Range}";
htmldef "pprod" as "pprod";
  althtmldef "pprod" as "pprod";
  latexdef "pprod" as "{\rm pprod}";
htmldef "Apply" as "Apply";
  althtmldef "Apply" as "Apply";
  latexdef "Apply" as "{\rm Apply}";
htmldef "Cup" as "Cup";
  althtmldef "Cup" as "Cup";
  latexdef "Cup" as "{\rm Cup}";
htmldef "Cap" as "Cap";
  althtmldef "Cap" as "Cap";
  latexdef "Cap" as "{\rm Cap}";
htmldef "Succ" as "Succ";
  althtmldef "Succ" as "Succ";
  latexdef "Succ" as "{\rm Succ}";
htmldef "Funpart" as "Funpart";
  althtmldef "Funpart" as "Funpart";
  latexdef "Funpart" as "{\rm Funpart}";
htmldef "FullFun" as "FullFun";
  althtmldef "FullFun" as "FullFun";
  latexdef "FullFun" as "{\rm FullFun}";
htmldef "Restrict" as "Restrict";
  althtmldef "Restrict" as "Restrict";
  latexdef "Restrict" as "{\rm Restrict}";
htmldef "LB" as "LB";
  althtmldef "LB" as "LB";
  latexdef "LB" as "{\rm LB}";
htmldef "UB" as "UB";
  althtmldef "UB" as "UB";
  latexdef "UB" as "{\rm UB}";
htmldef "<<" as
  "<IMG SRC='llangle.gif' WIDTH=6 HEIGHT=19 ALT=' &lt;&lt;' TITLE='&lt;&lt;'>";
  althtmldef "<<" as "&#10218;";
  latexdef "<<" as "\langle\langle";
htmldef ">>" as
  "<IMG SRC='rrangle.gif' WIDTH=6 HEIGHT=19 ALT=' &gt;&gt;' TITLE='&gt;&gt;'>";
  althtmldef ">>" as "&#10219;";
  latexdef ">>" as "\rangle\rangle";
htmldef "XX." as
    " <IMG SRC='_ttimes.gif' WIDTH=18 HEIGHT=19 ALT=' XX.' TITLE='XX.'> ";
  althtmldef "XX." as ' &times;&times; ';
  latexdef "XX." as "\times\times";
htmldef "EE" as "<IMG SRC='bbe.gif' WIDTH=11 HEIGHT=19 ALT=' EE' TITLE='EE'>";
  althtmldef "EE" as "&#x1D53C";
/*
htmldef "EE" as "<FONT FACE=sans-serif>&Eopf;</FONT>";
  althtmldef "EE" as "<FONT FACE=sans-serif>&#x1D53C</FONT>";
*/
  latexdef "EE" as "\mathbb{E}";
htmldef "Btwn" as
    " <IMG SRC='_btwn.gif' WIDTH=35 HEIGHT=19 ALT=' Btwn' TITLE='Btwn'> ";
  althtmldef "Btwn" as " Btwn ";
  latexdef "Btwn" as "{\rm Btwn}";
htmldef "Cgr" as "Cgr";
  althtmldef "Cgr" as "Cgr";
  latexdef "Cgr" as "{\rm Cgr}";
htmldef "OuterFiveSeg" as " <IMG SRC='_outerfiveseg.gif' WIDTH=89 HEIGHT=19 " +
    "ALT=' OuterFiveSeg' TITLE='OuterFiveSeg'> ";
  althtmldef "OuterFiveSeg" as " OuterFiveSeg ";
  latexdef "OuterFiveSeg" as "{\bb OuterFiveSeg}";
htmldef "TransportTo" as "TransportTo";
  althtmldef "TransportTo" as "TransportTo";
  latexdef "TransportTo" as "{\rm TransportTo}";
htmldef "InnerFiveSeg" as " <IMG SRC='_innerfiveseg.gif' WIDTH=84 HEIGHT=19 " +
    "ALT=' InnerFiveSeg' TITLE='InnerFiveSeg'> ";
  althtmldef "InnerFiveSeg" as " InnerFiveSeg ";
  latexdef "InnerFiveSeg" as "{\bb InnerFiveSeg}";
htmldef "Cgr3" as "Cgr3";
  althtmldef "Cgr3" as "Cgr3";
  latexdef "Cgr3" as "{\rm Cgr3}";
htmldef "Colinear" as " <IMG SRC='_colinear.gif' WIDTH=54 HEIGHT=19 " +
    "ALT=' Colinear' TITLE='Colinear'> ";
  althtmldef "Colinear" as " Colinear ";
  latexdef "Colinear" as "{\bb Colinear}";
htmldef "FiveSeg" as " <IMG SRC='_fiveseg.gif' WIDTH=51 HEIGHT=19 " +
    "ALT=' FiveSeg' TITLE='FiveSeg'> ";
  althtmldef "FiveSeg" as " FiveSeg ";
  latexdef "FiveSeg" as "{\bb FiveSeg}";
/*
htmldef "==3" as
    " <IMG SRC='equiv.gif' WIDTH=12 HEIGHT=19 ALT=' ==' TITLE='=='>" +
    "<IMG SRC='sub3.gif' WIDTH=6 HEIGHT=19 ALT='3' TITLE='3'> ";
  althtmldef "==3" as " &#x2261;&#x2083; ";
  latexdef "==3" as "\equiv_3";
*/
htmldef "Seg<_" as " <IMG SRC='_segle.gif' WIDTH=30 HEIGHT=19 " +
    "ALT=' Seg&lt;_' TITLE='Seg&lt;_'> ";
  althtmldef "Seg<_" as " Seg<SUB>&le;</SUB> ";
  latexdef "Seg<_" as "{\bb Seg}_\le";
htmldef "OutsideOf" as "OutsideOf";
  althtmldef "OutsideOf" as "OutsideOf";
  latexdef "OutsideOf" as "{\rm OutsideOf}";
htmldef "Line" as "Line";
  althtmldef "Line" as "Line";
  latexdef "Line" as "{\rm Line}";
htmldef "LinesEE" as "LinesEE";
  althtmldef "LinesEE" as "LinesEE";
  latexdef "LinesEE" as "{\rm LinesEE}";
htmldef "Ray" as "Ray";
  althtmldef "Ray" as "Ray";
  latexdef "Ray" as "{\rm Ray}";
htmldef "BernPoly" as " BernPoly ";
  althtmldef "BernPoly" as " BernPoly ";
  latexdef "BernPoly" as "{\rm BernPoly}";

htmldef "Hf" as " Hf ";
  althtmldef "Hf" as " Hf ";
  latexdef "Hf" as "{\rm Hf}";

htmldef "prod_" as "<IMG SRC='prod.gif' WIDTH=12 HEIGHT=19 " +
    "ALT=' prod_' TITLE='prod_'>";
  althtmldef "prod_" as "&#x220F";
  latexdef "prod_" as "\prod";

htmldef "FallFac" as " FallFac ";
  althtmldef "FallFac" as " FallFac ";
  latexdef "FallFac" as "{\rm FallFac}";

htmldef "RiseFac" as " RiseFac ";
  althtmldef "RiseFac" as " RiseFac ";
  latexdef "RiseFac" as "{\rm RiseFac}";

htmldef "_/_\" as
    " <IMG SRC='bigtriangleup.gif' WIDTH=13 HEIGHT=19" +
    " ALT=' _/_\' TITLE='_/_\'> ";
  althtmldef "_/_\" as " &#x25b3; ";
  latexdef "_/_\" as "\triangle";

htmldef "_/_\^n" as
    " <IMG SRC='bigtriangleup.gif' WIDTH=13 HEIGHT=19" +
    " ALT=' _/_\^n' TITLE='_/_\^n'><SUPER>n</SUPER> ";
  althtmldef "_/_\^n" as " &#x25b3;<SUPER>n</SUPER> ";
  latexdef "_/_\^n" as "\triangle^\mathrm{n}";
/* End of Scott Fenton's mathbox */

/* Mathbox of Jeff Hankins */
/* End of Jeff Madsen's mathbox */

/* Mathbox of Anthony Hart */
/* End of Anthony Hart's mathbox */

/* Mathbox of Jeff Hoffman */
htmldef "gcdOLD" as
    "<IMG SRC='_gcd.gif' WIDTH=23 HEIGHT=19 ALT=' gcd' TITLE='gcd'>" +
    "<IMG SRC='_old.gif' WIDTH=23 HEIGHT=19 ALT='OLD' TITLE='OLD'>";
  althtmldef "gcdOLD" as " gcd<SUB>OLD</SUB> ";
  latexdef "gcdOLD" as "{\rm gcd_{OLD}}";
/* End of Jeff Hoffman's mathbox */

/* Mathbox of Jeff Madsen */
htmldef "Fne" as
    "<IMG SRC='_fne.gif' WIDTH=24 HEIGHT=19 ALT=' Fne' TITLE='Fne'>";
  althtmldef "Fne" as "Fne";
  latexdef "Fne" as "{\rm Fne}";
htmldef "Ref" as
    "<IMG SRC='_ref.gif' WIDTH=23 HEIGHT=19 ALT=' Ref' TITLE='Ref'>";
  althtmldef "Ref" as "Ref";
  latexdef "Ref" as "{\rm Ref}";
htmldef "PtFin" as
    "<IMG SRC='_ptfin.gif' WIDTH=36 HEIGHT=19 ALT=' PtFin' TITLE='PtFin'>";
  althtmldef "PtFin" as "PtFin";
  latexdef "PtFin" as "{\rm PtFin}";
htmldef "LocFin" as
    "<IMG SRC='_locfin.gif' WIDTH=44 HEIGHT=19 ALT=' LocFin' TITLE='LocFin'>";
  althtmldef "LocFin" as "LocFin";
  latexdef "LocFin" as "{\rm LocFin}";
htmldef "TotBnd" as
    "<IMG SRC='_totbnd.gif' WIDTH=46 HEIGHT=19 ALT=' TotBnd' TITLE='TotBnd'>";
  althtmldef "TotBnd" as "TotBnd";
  latexdef "TotBnd" as "{\rm TotBnd}";
htmldef "Bnd" as
    "<IMG SRC='_bnd.gif' WIDTH=25 HEIGHT=19 ALT=' Bnd' TITLE='Bnd'>";
  althtmldef "Bnd" as "Bnd";
  latexdef "Bnd" as "{\rm Bnd}";
htmldef "Ismty" as
    " <IMG SRC='_ismty.gif' WIDTH=36 HEIGHT=19 ALT=' Ismty' TITLE='Ismty'> ";
  althtmldef "Ismty" as " Ismty ";
  latexdef "Ismty" as "{\rm Ismty}";
htmldef "Rn" as
    "<IMG SRC='_bbrn.gif' WIDTH=19 HEIGHT=19 ALT=' Rn' TITLE='Rn'>";
  althtmldef "Rn" as "&#8477;<I><SUP>n</SUP></I>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "Rn" as "\mathbb{R}^n";
htmldef "RngHom" as
   " <IMG SRC='_rnghom.gif' WIDTH=55 HEIGHT=19 ALT=' RngHom' TITLE='RngHom'> ";
  althtmldef "RngHom" as " RngHom ";
  latexdef "RngHom" as "{\rm RngHom}";
htmldef "RngIso" as
   " <IMG SRC='_rngiso.gif' WIDTH=43 HEIGHT=19 ALT=' RngIso' TITLE='RngIso'> ";
  althtmldef "RngIso" as " RngIso ";
  latexdef "RngIso" as "{\rm RngIso}";
htmldef "~=R" as
    " <IMG SRC='_simeqr.gif' WIDTH=18 HEIGHT=19 ALT=' ~=R' TITLE='~=R'> ";
  althtmldef "~=R" as " &#8771;<SUB>&#x1D45F;</SUB> ";
  latexdef "~=R" as "\simeq_r";
htmldef "CRingOps" as "CRingOps";
  althtmldef "CRingOps" as "CRingOps";
  latexdef "CRingOps" as "{\rm CRingOps}";
htmldef "Idl" as
    "<IMG SRC='_idl.gif' WIDTH=16 HEIGHT=19 ALT=' Idl' TITLE='Idl'>";
  althtmldef "Idl" as "Idl";
  latexdef "Idl" as "{\rm Idl}";
htmldef "PrIdl" as
    "<IMG SRC='_pridl.gif' WIDTH=31 HEIGHT=19 ALT=' PrIdl' TITLE='PrIdl'>";
  althtmldef "PrIdl" as "PrIdl";
  latexdef "PrIdl" as "{\rm PrIdl}";
htmldef "MaxIdl" as
    "<IMG SRC='_maxidl.gif' WIDTH=44 HEIGHT=19 ALT=' MaxIdl' TITLE='MaxIdl'>";
  althtmldef "MaxIdl" as "MaxIdl";
  latexdef "MaxIdl" as "{\rm MaxIdl}";
htmldef "PrRing" as
    "<IMG SRC='_prring.gif' WIDTH=45 HEIGHT=19 ALT=' PrRing' TITLE='PrRing'>";
  althtmldef "PrRing" as "PrRing";
  latexdef "PrRing" as "{\rm PrRing}";
htmldef "Dmn" as
    "<IMG SRC='_dmn.gif' WIDTH=30 HEIGHT=19 ALT=' Dmn' TITLE='Dmn'>";
  althtmldef "Dmn" as "Dmn";
  latexdef "Dmn" as "{\rm Dmn}";
htmldef "IdlGen" as
   " <IMG SRC='_idlgen.gif' WIDTH=42 HEIGHT=19 ALT=' IdlGen' TITLE='IdlGen'> ";
  althtmldef "IdlGen" as " IdlGen ";
  latexdef "IdlGen" as "{\rm IdlGen}";
/* End of Jeff Madsen's mathbox */

/* Mathbox of Peter Mazsa */
htmldef "|X." as
    " <IMG SRC='ltimes.gif' WIDTH=10 HEIGHT=19 ALT=' |X.' TITLE='|X.'> ";
  althtmldef "|X." as " &#x22C9; ";
  latexdef "|X." as "\ltimes";
htmldef ",~" as
    " <IMG SRC='wr.gif' WIDTH=5 HEIGHT=19 ALT=' ,~' TITLE=',~'> ";
  althtmldef ",~" as ' &#8768; ';
  latexdef ",~" as "\wr";
htmldef "~" as
    " <IMG SRC='sim.gif' WIDTH=13 HEIGHT=19 ALT=' ~' TITLE='~'> ";
  althtmldef "~" as ' &#8764; ';
  latexdef "~" as "\sim";
htmldef "Rels" as ' Rels ';
  althtmldef "Rels" as ' Rels ';
  latexdef "Rels" as "{\rm Rels}";
htmldef "_S" as
    " <IMG SRC='rmcs.gif' WIDTH=4 HEIGHT=19 ALT=' _S' TITLE='_S'> ";
  althtmldef "_S" as ' S ';
  latexdef "_S" as "{\rm S}";
/* End of Peter Mazsa's mathbox */

/* Mathbox of Rodolfo Medina */
htmldef "Prt" as
    "<IMG SRC='_prt.gif' WIDTH=21 HEIGHT=19 ALT=' Prt' TITLE='Prt'> ";
  althtmldef "Prt" as "Prt ";
  latexdef "Prt" as "{\rm Prt}";
/* End of Rodolfo Medina's mathbox */

/* Mathbox of Stefan O'Rear */
htmldef "NoeACS" as "NoeACS";
  althtmldef "NoeACS" as "NoeACS";
  latexdef "NoeACS" as "\mathrm{NoeACS}";
htmldef "mzPolyCld" as "mzPolyCld";
  althtmldef "mzPolyCld" as "mzPolyCld";
  latexdef "mzPolyCld" as "{\rm mzPolyCld}";
htmldef "mzPoly" as "mzPoly";
  althtmldef "mzPoly" as "mzPoly";
  latexdef "mzPoly" as "{\rm mzPoly}";
htmldef "Dioph" as "Dioph";
  althtmldef "Dioph" as "Dioph";
  latexdef "Dioph" as "{\rm Dioph}";
htmldef "numer" as "numer";
  althtmldef "numer" as "numer";
  latexdef "numer" as "{\rm numer}";
htmldef "denom" as "denom";
  althtmldef "denom" as "denom";
  latexdef "denom" as "{\rm denom}";
htmldef "Pell1QR" as "Pell1QR";
  althtmldef "Pell1QR" as "Pell1QR";
  latexdef "Pell1QR" as "{\rm Pell1QR}";
htmldef "Pell14QR" as "Pell14QR";
  althtmldef "Pell14QR" as "Pell14QR";
  latexdef "Pell14QR" as "{\rm Pell14QR}";
htmldef "Pell1234QR" as "Pell1234QR";
  althtmldef "Pell1234QR" as "Pell1234QR";
  latexdef "Pell1234QR" as "{\rm Pell1234QR}";
htmldef "PellFund" as "PellFund";
  althtmldef "PellFund" as "PellFund";
  latexdef "PellFund" as "{\rm PellFund}";
htmldef "[]NN" as "&#x25FB;<SUB><I>NN</I></SUB>";
  althtmldef "[]NN" as "&#x25FB;<SUB><I>NN</I></SUB>";
  latexdef "[]NN" as "{\rm []NN}";
htmldef "rmX" as " X<SUB>rm</SUB> ";
  althtmldef "rmX" as " X<SUB>rm</SUB> ";
  latexdef "rmX" as "{\rm rmX}";
htmldef "rmY" as " Y<SUB>rm</SUB> ";
  althtmldef "rmY" as " Y<SUB>rm</SUB> ";
  latexdef "rmY" as "{\rm rmY}";
htmldef "LFinGen" as "LFinGen";
  althtmldef "LFinGen" as "LFinGen";
  latexdef "LFinGen" as "{\rm LFinGen}";
htmldef "LNoeM" as "LNoeM";
  althtmldef "LNoeM" as "LNoeM";
  latexdef "LNoeM" as "{\rm LNoeM}";
htmldef "LIndF" as " LIndF ";
  althtmldef "LIndF" as " LIndF ";
  latexdef "LIndF" as " {\rm LIndF} ";
htmldef "LIndS" as "LIndS";
  althtmldef "LIndS" as "LIndS";
  latexdef "LIndS" as "{\rm LIndS}";
htmldef "LNoeR" as "LNoeR";
  althtmldef "LNoeR" as "LNoeR";
  latexdef "LNoeR" as "{\rm LNoeR}";
htmldef "ldgIdlSeq" as "ldgIdlSeq";
  althtmldef "ldgIdlSeq" as "ldgIdlSeq";
  latexdef "ldgIdlSeq" as "\mathrm{ldgIdlSeq}";
htmldef "Monic" as
    " <IMG SRC='_monic.gif' WIDTH=38 HEIGHT=19 ALT=' Monic' TITLE='Monic'> ";
  althtmldef "Monic" as " Monic ";
  latexdef "Monic" as "{\rm Monic}";
htmldef "Poly<" as " Poly<sub>&lt;</sub> ";
  althtmldef "Poly<" as " Poly<sub>&lt;</sub> ";
  latexdef "Poly<" as "{\rm Poly<}";
htmldef "degAA" as "deg<SUB>AA</SUB>";
  althtmldef "degAA" as "deg<SUB>AA</SUB>";
  latexdef "degAA" as "{\rm degAA}";
htmldef "minPolyAA" as "minPolyAA";
  althtmldef "minPolyAA" as "minPolyAA";
  latexdef "minPolyAA" as "{\rm minPolyAA}";
htmldef "_ZZ" as "<SPAN STYLE='text-decoration: overline;'>&#8484;</SPAN>";
    /* 2-Jan-2016 reverted sans-serif */
  althtmldef "_ZZ" as
                 "<SPAN STYLE='text-decoration: overline;'>&#8484;</SPAN>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "_ZZ" as "{\rm _ZZ}";
htmldef "IntgOver" as "IntgOver";
  althtmldef "IntgOver" as "IntgOver";
  latexdef "IntgOver" as "{\rm IntgOver}";
htmldef "MEndo" as "MEndo";
  althtmldef "MEndo" as "MEndo";
  latexdef "MEndo" as "\mathrm{MEndo}";
htmldef "SubDRing" as "SubDRing";
  althtmldef "SubDRing" as "SubDRing";
  latexdef "SubDRing" as "\mathrm{SubDRing}";
htmldef "Cntr" as "Cntr";
  althtmldef "Cntr" as "Cntr";
  latexdef "Cntr" as "\mathrm{Cntr}";
htmldef "Cntz" as "Cntz";
  althtmldef "Cntz" as "Cntz";
  latexdef "Cntz" as "\mathrm{Cntz}";
htmldef "CytP" as "CytP";
  althtmldef "CytP" as "CytP";
  latexdef "CytP" as "\mathrm{CytP}";
htmldef "TopSep" as "TopSep";
  althtmldef "TopSep" as "TopSep";
  latexdef "TopSep" as "{\rm TopSep}";
htmldef "TopLnd" as "TopLnd";
  althtmldef "TopLnd" as "TopLnd";
  latexdef "TopLnd" as "{\rm TopLnd}";
/* End of Stefan O'Rear's mathbox */

/* Mathbox of Steve Rodriguez */
htmldef "_Cc" as "C<SUB>&#x1D450;</SUB>";
  althtmldef "_Cc" as "C<SUB>&#x1D450;</SUB>";
  latexdef "_Cc" as "{\rm C}_c";
/* End of Steve Rodriguez's mathbox */

/* Mathbox of Andrew Salmon */
/* geometry proposal */
htmldef "+r" as "<IMG SRC='plus.gif' WIDTH=13 HEIGHT=19 ALT=' +' TITLE='+'>" +
    "<IMG SRC='subr.gif' WIDTH=5 HEIGHT=19 ALT='r' TITLE='r'>";
  althtmldef "+r" as "+<SUB>&#x1D45F;</SUB>";
  latexdef "+r" as "+_r";
htmldef "-r" as
    "<IMG SRC='minus.gif' WIDTH=11 HEIGHT=19 ALT=' -' TITLE='-'>" +
    "<IMG SRC='subr.gif' WIDTH=5 HEIGHT=19 ALT='r' TITLE='r'>";
  althtmldef "-r" as "-<SUB>&#x1D45F;</SUB>";
  latexdef "-r" as "-_r";
htmldef ".v" as "<IMG SRC='cdot.gif' WIDTH=4 HEIGHT=19 ALT=' .' TITLE='.'>" +
    "<IMG SRC='subv.gif' WIDTH=6 HEIGHT=19 ALT='v' TITLE='v'>";
  althtmldef ".v" as ".<SUB>&#x1D463;</SUB>";
  latexdef ".v" as "._v";
htmldef "PtDf" as
    "<IMG SRC='_ptdf.gif' WIDTH=31 HEIGHT=19 ALT=' PtDf' TITLE='PtDf'>";
  althtmldef "PtDf" as "PtDf";
  latexdef "PtDf" as "PtDf";
htmldef "RR3" as
    "<IMG SRC='bbr.gif' WIDTH=13 HEIGHT=19 ALT=' RR' TITLE='RR'>" +
    "<IMG SRC='sup3.gif' WIDTH=6 HEIGHT=19 ALT='3' TITLE='3'>";
  althtmldef "RR3" as "RR3";
  latexdef "RR3" as "RR3";
/*
htmldef "plane3" as
    "<IMG SRC='_plane.gif' WIDTH=35 HEIGHT=19 ALT=' plane' TITLE='plane'>" +
    "<IMG SRC='sup3.gif' WIDTH=6 HEIGHT=19 ALT='3' TITLE='3'>";
  althtmldef "plane3" as "plane3";
  latexdef "plane3" as "plane3";
*/
htmldef "line3" as
    "<IMG SRC='_line.gif' WIDTH=23 HEIGHT=19 ALT=' line' TITLE='line'>" +
    "<IMG SRC='sup3.gif' WIDTH=6 HEIGHT=19 ALT='3' TITLE='3'>";
  althtmldef "line3" as "line3";
  latexdef "line3" as "line3";
/* End of Andrew Salmon's mathbox */

/* Mathbox of Jarvin Udandy */
htmldef "jph" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jph</I></SPAN>';
  althtmldef "jph" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jph</I></SPAN>';
  latexdef "jph" as "\rm{jph}";
htmldef "jps" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jps</I></SPAN>';
  althtmldef "jps" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jps</I></SPAN>';
  latexdef "jps" as "\rm{jps}";
htmldef "jch" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jch</I></SPAN>';
  althtmldef "jch" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jch</I></SPAN>';
  latexdef "jch" as "\rm{jch}";
htmldef "jth" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jth</I></SPAN>';
  althtmldef "jth" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jth</I></SPAN>';
  latexdef "jth" as "\rm{jth}";
htmldef "jta" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jta</I></SPAN>';
  althtmldef "jta" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jta</I></SPAN>';
  latexdef "jta" as "\rm{jta}";
htmldef "jet" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jet</I></SPAN>';
  althtmldef "jet" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jet</I></SPAN>';
  latexdef "jet" as "\rm{jet}";
htmldef "jze" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jze</I></SPAN>';
  althtmldef "jze" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jze</I></SPAN>';
  latexdef "jze" as "\rm{jze}";
htmldef "jsi" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jps</I></SPAN>';
  althtmldef "jsi" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jps</I></SPAN>';
  latexdef "jsi" as "\rm{jsi}";
htmldef "jrh" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jrh</I></SPAN>';
  althtmldef "jrh" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jrh</I></SPAN>';
  latexdef "jrh" as "\rm{jrh}";
htmldef "jmu" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jmu</I></SPAN>';
  althtmldef "jmu" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jmu</I></SPAN>';
  latexdef "jmu" as "\rm{jmu}";
htmldef "jla" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jla</I></SPAN>';
  althtmldef "jla" as
    '<SPAN CLASS=wff STYLE="color:blue"><I>jla</I></SPAN>';
  latexdef "jla" as "\rm{jla}";
/* End of Jarvin Udandy's mathbox */

/* Mathbox of Alexander van der Vekens */
htmldef "defAt" as ' defAt ';
 althtmldef "defAt" as ' defAt ';
 latexdef "defAt" as "{\rm defAt}";
htmldef "'''" as '&#39&#39&#39';
 althtmldef "'''" as '&#39&#39&#39';
 latexdef "'''" as "\textquoteright\textquoteright\textquoteright";
htmldef "((" as ' ((';
 althtmldef "((" as ' ((';
 latexdef "((" as " ((";
htmldef "))" as ')) ';
 althtmldef "))" as ')) ';
 latexdef "))" as ")) ";
htmldef "e//" as
    " _<IMG SRC='notin.gif' WIDTH=10 HEIGHT=19 ALT=' e//' TITLE='e//'> ";
  althtmldef "e//" as ' _&notin; ';
  latexdef "e//" as "\notin";
htmldef "RePart" as 'RePart';
 althtmldef "RePart" as 'RePart';
 latexdef "RePart" as "{\rm RePart}";
htmldef "FermatNo" as 'FermatNo';
 althtmldef "FermatNo" as 'FermatNo';
 latexdef "FermatNo" as "{\rm FermatNo}";
htmldef "Even" as ' Even ';
 althtmldef "Even" as ' Even ';
 latexdef "Even" as "{\rm Even}";
htmldef "Odd" as ' Odd ';
 althtmldef "Odd" as ' Odd ';
 latexdef "Odd" as "{\rm Odd}";
htmldef "GoldbachEven" as ' GoldbachEven ';
 althtmldef "GoldbachEven" as ' GoldbachEven ';
 latexdef "GoldbachEven" as "{\rm GoldbachEven}";
htmldef "GoldbachOddW" as ' GoldbachOddW ';
 althtmldef "GoldbachOddW" as ' GoldbachOddW ';
 latexdef "GoldbachOddW" as "{\rm GoldbachOddW}";
htmldef "GoldbachOdd" as ' GoldbachOdd ';
 althtmldef "GoldbachOdd" as ' GoldbachOdd ';
 latexdef "GoldbachOdd" as "{\rm GoldbachOdd}";
htmldef "prefix" as ' prefix ';
 althtmldef "prefix" as ' prefix ';
 latexdef "prefix" as "{\rm prefix}";
/* Graph theory (revised) */
htmldef "UPWalks" as "UPWalks";
 althtmldef "UPWalks" as "UPWalks";
 latexdef "UPWalks" as "{\rm UPWalks}";
/* Set of unordered pairs */
htmldef "Pairs" as 'Pairs';
 althtmldef "Pairs" as 'Pairs';
 latexdef "Pairs" as "{\rm Pairs}";
/* Monoids (extension)  */
htmldef "MgmHom" as ' MgmHom ';
 althtmldef "MgmHom" as ' MgmHom ';
 latexdef "MgmHom" as "{\rm MgmHom}";
htmldef "SubMgm" as 'SubMgm';
 althtmldef "SubMgm" as 'SubMgm';
 latexdef "SubMgm" as "{\rm SubMgm}";
htmldef "clLaw" as ' clLaw ';
 althtmldef "clLaw" as ' clLaw ';
 latexdef "clLaw" as "{\rm clLaw}";
htmldef "assLaw" as ' assLaw ';
 althtmldef "assLaw" as ' assLaw ';
 latexdef "assLaw" as "{\rm assLaw}";
htmldef "comLaw" as ' comLaw ';
 althtmldef "comLaw" as ' comLaw ';
 latexdef "comLaw" as "{\rm comLaw}";
htmldef "intOp" as ' intOp ';
 althtmldef "intOp" as ' intOp ';
 latexdef "intOp" as "{\rm intOp}";
htmldef "clIntOp" as ' clIntOp ';
 althtmldef "clIntOp" as ' clIntOp ';
 latexdef "clIntOp" as "{\rm clIntOp}";
htmldef "assIntOp" as ' assIntOp ';
 althtmldef "assIntOp" as ' assIntOp ';
 latexdef "assIntOp" as "{\rm assIntOp}";
htmldef "MgmALT" as 'MgmALT';
 althtmldef "MgmALT" as 'MgmALT';
 latexdef "MgmALT" as "{\rm MgmALT}";
htmldef "CMgmALT" as 'CMgmALT';
 althtmldef "CMgmALT" as 'CMgmALT';
 latexdef "CMgmALT" as "{\rm CMgmALT}";
htmldef "SGrpALT" as 'SGrpALT';
 althtmldef "SGrpALT" as 'SGrpALT';
 latexdef "SGrpALT" as "{\rm SGrpALT}";
htmldef "CSGrpALT" as 'CSGrpALT';
 althtmldef "CSGrpALT" as 'CSGrpALT';
 latexdef "CSGrpALT" as "{\rm CSGrpALT}";
htmldef "Rng" as 'Rng';
 althtmldef "Rng" as 'Rng';
 latexdef "Rng" as "{\rm Rng}";
htmldef "RngHomo" as ' RngHomo ';
 althtmldef "RngHomo" as ' RngHomo ';
 latexdef "RngHomo" as "{\rm RngHomo}";
htmldef "RngIsom" as ' RngIsom ';
 althtmldef "RngIsom" as ' RngIsom ';
 latexdef "RngIsom" as "{\rm RngIsom}";
htmldef "RngCat" as 'RngCat';
 althtmldef "RngCat" as 'RngCat';
 latexdef "RngCat" as "{\rm RngCat}";
htmldef "RingCat" as 'RingCat';
 althtmldef "RingCat" as 'RingCat';
 latexdef "RingCat" as "{\rm RingCat}";
htmldef "RngCatALTV" as 'RngCatALTV';
 althtmldef "RngCatALTV" as 'RngCatALTV';
 latexdef "RngCatALTV" as "{\rm RngCatALTV}";
htmldef "RingCatALTV" as 'RingCatALTV';
 althtmldef "RingCatALTV" as 'RingCatALTV';
 latexdef "RingCatALTV" as "{\rm RingCatALTV}";
htmldef "DMatALT" as ' DMatALT ';
 althtmldef "DMatALT" as ' DMatALT ';
 latexdef "DMatALT" as "{\rm DMatALT}";
htmldef "ScMatALT" as ' ScMatALT ';
 althtmldef "ScMatALT" as ' ScMatALT ';
 latexdef "ScMatALT" as "{\rm ScMatALT}";
htmldef "linC" as ' linC ';
 althtmldef "linC" as ' linC ';
 latexdef "linC" as "{\rm linC}";
htmldef "LinCo" as ' LinCo ';
 althtmldef "LinCo" as ' LinCo ';
 latexdef "LinCo" as "{\rm LinCo}";
htmldef "linIndS" as ' linIndS ';
 althtmldef "linIndS" as ' linIndS ';
 latexdef "linIndS" as "{\rm linIndS}";
htmldef "linDepS" as ' linDepS ';
 althtmldef "linDepS" as ' linDepS ';
 latexdef "linDepS" as "{\rm linDepS}";
htmldef "/_f" as ' /_f ';
 althtmldef "/_f" as ' /<sub>f</sub> ';
 latexdef "/_f" as "{\rm /}_f";
htmldef "_O" as '_O';
 althtmldef "_O" as "&#x39F;";
 latexdef "_O" as "\Omicron";
htmldef "#b" as '#b';
 althtmldef "#b" as '#<sub>b</sub>';
 latexdef "#b" as "{\rm #}_b";
htmldef "digit" as 'digit';
 althtmldef "digit" as 'digit';
 latexdef "digit" as "{\rm digit}";
/* End of Alexander van der Vekens's mathbox */

/* Mathbox of Emmett Weisz */
htmldef "setrecs" as "setrecs"; althtmldef "setrecs" as "setrecs";
  latexdef "setrecs" as "{\rm setrecs}";
htmldef "Pg" as "Pg"; althtmldef "Pg" as "Pg";
  latexdef "Pg" as "{\rm Pg}";
/* End of Emmett Weisz's mathbox */

/* Mathbox of David A. Wheeler */
htmldef ">_" as
    " <IMG SRC='ge.gif' WIDTH=11 HEIGHT=19 ALT=' &gt;_' TITLE='&gt;_'> ";
  althtmldef ">_" as ' &ge; ';
  latexdef ">_" as "\ge";
htmldef ">" as
    " <IMG SRC='gt.gif' WIDTH=11 HEIGHT=19 ALT=' &gt;' TITLE='&gt;'> ";
  althtmldef ">" as ' &gt; ';
  latexdef ">" as ">";
/*
htmldef "sinh" as
    "<IMG SRC='_sinh.gif' WIDTH=20 HEIGHT=19 ALT=' sinh' TITLE='sinh'>";
*/
htmldef "sinh" as "sinh";
  althtmldef "sinh" as "sinh";
  latexdef "sinh" as "\sinh";
/*
htmldef "cosh" as
    "<IMG SRC='_cosh.gif' WIDTH=20 HEIGHT=19 ALT=' cosh' TITLE='cosh'>";
*/
htmldef "cosh" as "cosh";
  althtmldef "cosh" as "cosh";
  latexdef "cosh" as "\cosh";
/*
htmldef "tanh" as
    "<IMG SRC='_tanh.gif' WIDTH=20 HEIGHT=19 ALT=' tanh' TITLE='tanh'>";
*/
htmldef "tanh" as "tanh";
  althtmldef "tanh" as "tanh";
  latexdef "tanh" as "\tanh";
htmldef "sec" as
    "<IMG SRC='_sec.gif' WIDTH=20 HEIGHT=19 ALT=' sec' TITLE='sec'>";
  althtmldef "sec" as "sec";
  latexdef "sec" as "\sec";
htmldef "csc" as
    "<IMG SRC='_csc.gif' WIDTH=20 HEIGHT=19 ALT=' csc' TITLE='csc'>";
  althtmldef "csc" as "csc";
  latexdef "csc" as "\csc";
htmldef "cot" as
    "<IMG SRC='_cot.gif' WIDTH=20 HEIGHT=19 ALT=' cot' TITLE='cot'>";
  althtmldef "cot" as "cot";
  latexdef "cot" as "\cot";
/*
htmldef "_" as
    "<IMG SRC='underscore.gif' WIDTH=20 HEIGHT=19 ALT=' _' TITLE='_'>";
*/
htmldef "_" as '<FONT COLOR="#808080">_</FONT>';
  althtmldef "_" as '<SPAN CLASS=hidden STYLE="color:gray">_</SPAN>';
  latexdef "_" as "\_";
htmldef "." as
    "<IMG SRC='period.gif' WIDTH=20 HEIGHT=19 ALT=' period' TITLE='period'>";
  althtmldef "." as ".";
  latexdef "." as "\.";
htmldef "log_" as "log_";
  althtmldef "log_" as "log_";
  latexdef "log_" as "log_";
htmldef "A!" as
  "<IMG SRC='forall.gif' WIDTH=10 HEIGHT=19 ALT=' A.' TITLE='A.'>!";
  althtmldef "A!" as '&forall;!'; /* &#8704; */
  latexdef "A!" as "\forall !";
htmldef "Reflexive" as "Reflexive";
  althtmldef "Reflexive" as "Reflexive";
  latexdef "Reflexive" as "Reflexive";
htmldef "Irreflexive" as "Irreflexive";
  althtmldef "Irreflexive" as "Irreflexive";
  latexdef "Irreflexive" as "Irreflexive";
/* End of David A. Wheeler's mathbox */

/* Mathbox of Alan Sare */
htmldef "(." as
    "<IMG SRC='period.gif' WIDTH=4 HEIGHT=19 ALT=' (.' TITLE='(.'>";
althtmldef "(." as
'<SPAN STYLE="color:#00CD00">&#40;&#160;&#160;&#160;</SPAN>';
/* This puts 0 white spaces before the left parenthesis(&#40) and 3 white
   spaces after. Here the parenthesis shall be colored bright green, the same
   color as the arrow. Here we are trying to use green parentheses instead of
   green periods. The reasoning is that parenthesis are better because its more
   consistent
   with a) conventional metamath notation so the User understands it better;
   b) Because these parentheses are now bright green, that sufficiently
   distinguishes these parentheses from the parentheses used to parse the
   wffs. The green parentheses are notation of the Virtual Deduction "mediator"
   notation. */
latexdef "(." as ".";
htmldef ")." as
    "<IMG SRC='period.gif' WIDTH=4 HEIGHT=19 ALT=' ).' TITLE=').'>";
althtmldef ")." as
'<SPAN STYLE="color:#00CD00">&#160;&#160;&#160;&#41;</SPAN>';
/* This puts 3 white spaces before the right parenthesis(&#41) and 0 white
   spaces after. Here the parenthesis shall be colored bright green, the same
   color as the arrow. Here we are trying to use green parentheses instead of
   green periods. The reasoning is that parenthesis are better because its more
   consistent
   with a) conventional metamath notation so the User understands it better;
   b) Because these parentheses are now bright green, that sufficiently
   distinguishes these parentheses from the parentheses used to parse the
   wffs. The green parentheses are notation of the Virtual Deduction "mediator"
   notation. */
latexdef ")." as ".";
htmldef "->." as " <IMG SRC='blacktriangleright.gif' " +
    "WIDTH=11 HEIGHT=19 ALT=' -&gt;.' TITLE='-&gt;.'> ";
althtmldef "->." as
  '<SPAN STYLE="color:#00CD00"><FONT FACE=veranda>' +
  '&#160;&#160;&#160;&#9654;&#160;&#160;&#160;</FONT></SPAN>';
/* This should work better than the one above because we put white spaces
   around the arrow. It is better with an equal number of white spaces on each
   side of the arrow. The bright green for the virtual deduction notation
   works well. */
latexdef "->." as "\blacktriangleright";
htmldef "->.." as " <IMG SRC='__tobold.gif' " +
    "WIDTH=15 HEIGHT=19 ALT=' -&gt;..' TITLE='-&gt;..'> ";
  althtmldef "->.." as " <B>&rarr;</B> ";
  latexdef "->.." as "\mbox{\boldmath $\rightarrow$}}";
htmldef ",." as
    "<IMG SRC='comma.gif' WIDTH=4 HEIGHT=19 ALT=' ,.' TITLE=',.'>";
althtmldef ",." as
    '<SPAN STYLE="color:#00CD00"><FONT SIZE=4>' +
    '&#160;&#160;&#160;&#44;&#160;&#160;&#160;</FONT></SPAN>';
/* This color is green3. It is brighter and lighter than Irish flag. It is
   bright enough to stand out and it is not too light
   to be seen. It is clearly distinguishable from black. */
latexdef ",." as " , ";
/* End of Alan Sare's mathbox */

/* Mathbox of ML */
htmldef "^^" as "<IMG SRC='uparrow.gif' WIDTH=7 HEIGHT=19 " +
                "ALT=' ^^' TITLE='^^'>" +
                "<IMG SRC='uparrow.gif' WIDTH=7 HEIGHT=19 " +
                "ALT=' ^^' TITLE='^^'>";
  althtmldef "^^" as '&uarr;&uarr;';
  latexdef "^^" as "\uparrow\uparrow";
/* End of ML's mathbox */

/* Mathbox of Jonathan Ben-Naim */
htmldef "ph'" as "<IMG SRC='_bnj_phiPrime.gif'   WIDTH=15 HEIGHT=19" +
       " ALT=" + '"' + " ph'" + '"' + " TITLE=" + '"' + "ph'" + '"' + ">";
htmldef "ps'" as "<IMG SRC='_bnj_psiPrime.gif'   WIDTH=16 HEIGHT=19" +
       " ALT=" + '"' + " ps'" + '"' + " TITLE=" + '"' + "ps'" + '"' + ">";
htmldef "ch'" as "<IMG SRC='_bnj_chiPrime.gif'   WIDTH=16 HEIGHT=19" +
       " ALT=" + '"' + " ch'" + '"' + " TITLE=" + '"' + "ch'" + '"' + ">";
htmldef "th'" as "<IMG SRC='_bnj_thetaPrime.gif' WIDTH=12 HEIGHT=19" +
       " ALT=" + '"' + " th'" + '"' + " TITLE=" + '"' + "th'" + '"' + ">";
htmldef "ta'" as "<IMG SRC='_bnj_tauPrime.gif'   WIDTH=14 HEIGHT=19" +
       " ALT=" + '"' + " ta'" + '"' + " TITLE=" + '"' + "ta'" + '"' + ">";
htmldef "et'" as "<IMG SRC='_bnj_etaPrime.gif'   WIDTH=13 HEIGHT=19" +
       " ALT=" + '"' + " et'" + '"' + " TITLE=" + '"' + "et'" + '"' + ">";
htmldef "ze'" as "<IMG SRC='_bnj_zetaPrime.gif'  WIDTH=13 HEIGHT=19" +
       " ALT=" + '"' + " ze'" + '"' + " TITLE=" + '"' + "ze'" + '"' + ">";
htmldef "si'" as "<IMG SRC='_bnj_sigmaPrime.gif' WIDTH=14 HEIGHT=19" +
       " ALT=" + '"' + " si'" + '"' + " TITLE=" + '"' + "si'" + '"' + ">";
htmldef "rh'" as "<IMG SRC='_bnj_rhoPrime.gif'   WIDTH=13 HEIGHT=19" +
       " ALT=" + '"' + " rh'" + '"' + " TITLE=" + '"' + "rh'" + '"' + ">";
althtmldef "ph'" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D711;&prime;</SPAN>';
althtmldef "ps'" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D713;&prime;</SPAN>';
althtmldef "ch'" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D712;&prime;</SPAN>';
althtmldef "th'" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D703;&prime;</SPAN>';
althtmldef "ta'" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D70F;&prime;</SPAN>';
althtmldef "et'" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D702;&prime;</SPAN>';
althtmldef "ze'" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D701;&prime;</SPAN>';
althtmldef "si'" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D70E;&prime;</SPAN>';
althtmldef "rh'" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D70C;&prime;</SPAN>';
latexdef "ph'" as "\varphi'";
latexdef "ps'" as "\psi'";
latexdef "ch'" as "\chi'";
latexdef "th'" as "\theta'";
latexdef "ta'" as "\tau'";
latexdef "et'" as "\eta'";
latexdef "ze'" as "\zeta'";
latexdef "si'" as "\sigma'";
latexdef "rh'" as "\rho'";
htmldef 'ph"' as "<IMG SRC='_bnj_phiPrimePrime.gif'   WIDTH=18 HEIGHT=19" +
      " ALT=' ph" + '"' + "' TITLE='ph" + '"' + "'>";
htmldef 'ps"' as "<IMG SRC='_bnj_psiPrimePrime.gif'   WIDTH=19 HEIGHT=19" +
      " ALT=' ps" + '"' + "' TITLE='ps" + '"' + "'>";
htmldef 'ch"' as "<IMG SRC='_bnj_chiPrimePrime.gif'   WIDTH=19 HEIGHT=19" +
      " ALT=' ch" + '"' + "' TITLE='ch" + '"' + "'>";
htmldef 'th"' as "<IMG SRC='_bnj_thetaPrimePrime.gif' WIDTH=15 HEIGHT=19" +
      " ALT=' th" + '"' + "' TITLE='th" + '"' + "'>";
htmldef 'ta"' as "<IMG SRC='_bnj_tauPrimePrime.gif'   WIDTH=17 HEIGHT=19" +
      " ALT=' ta" + '"' + "' TITLE='ta" + '"' + "'>";
htmldef 'et"' as "<IMG SRC='_bnj_etaPrimePrime.gif'   WIDTH=16 HEIGHT=19" +
      " ALT=' et" + '"' + "' TITLE='et" + '"' + "'>";
htmldef 'ze"' as "<IMG SRC='_bnj_zetaPrimePrime.gif'  WIDTH=16 HEIGHT=19" +
      " ALT=' ze" + '"' + "' TITLE='ze" + '"' + "'>";
htmldef 'si"' as "<IMG SRC='_bnj_sigmaPrimePrime.gif' WIDTH=17 HEIGHT=19" +
      " ALT=' si" + '"' + "' TITLE='si" + '"' + "'>";
htmldef 'rh"' as "<IMG SRC='_bnj_rhoPrimePrime.gif'   WIDTH=16 HEIGHT=19" +
      " ALT=' rh" + '"' + "' TITLE='rh" + '"' + "'>";
althtmldef 'ph"' as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D711;&Prime;</SPAN>';
althtmldef 'ps"' as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D713;&Prime;</SPAN>';
althtmldef 'ch"' as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D712;&Prime;</SPAN>';
althtmldef 'th"' as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D703;&Prime;</SPAN>';
althtmldef 'ta"' as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D70F;&Prime;</SPAN>';
althtmldef 'et"' as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D702;&Prime;</SPAN>';
althtmldef 'ze"' as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D701;&Prime;</SPAN>';
althtmldef 'si"' as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D70E;&Prime;</SPAN>';
althtmldef 'rh"' as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D70C;&Prime;</SPAN>';
latexdef 'ph"' as "\varphi''";
latexdef 'ps"' as "\psi''";
latexdef 'ch"' as "\chi''";
latexdef 'th"' as "\theta''";
latexdef 'ta"' as "\tau''";
latexdef 'et"' as "\eta''";
latexdef 'ze"' as "\zeta''";
latexdef 'si"' as "\sigma''";
latexdef 'rh"' as "\rho''";
htmldef "ph0"  as "<IMG SRC='_bnj_phi0.gif'   WIDTH=18 HEIGHT=19" +
    " ALT=' ph0' TITLE='ph0'>";
htmldef "ps0"  as "<IMG SRC='_bnj_psi0.gif'   WIDTH=19 HEIGHT=19" +
    " ALT=' ps0' TITLE='ps0'>";
htmldef "ch0_" as "<IMG SRC='_bnj_chi0.gif'   WIDTH=19 HEIGHT=19" +
    " ALT=' ch0_' TITLE='ch0_'>";
htmldef "th0"  as "<IMG SRC='_bnj_theta0.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' th0' TITLE='th0'>";
htmldef "ta0"  as "<IMG SRC='_bnj_tau0.gif'   WIDTH=17 HEIGHT=19" +
    " ALT=' ta0' TITLE='ta0'>";
htmldef "et0"  as "<IMG SRC='_bnj_eta0.gif'   WIDTH=16 HEIGHT=19" +
    " ALT=' et0' TITLE='et0'>";
htmldef "ze0"  as "<IMG SRC='_bnj_zeta0.gif'  WIDTH=16 HEIGHT=19" +
    " ALT=' ze0' TITLE='ze0'>";
htmldef "si0"  as "<IMG SRC='_bnj_sigma0.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' si0' TITLE='si0'>";
htmldef "rh0"  as "<IMG SRC='_bnj_rho0.gif'   WIDTH=16 HEIGHT=19" +
    " ALT=' rh0' TITLE='rh0'>";
althtmldef "ph0"  as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D711;<SUB>0</SUB></SPAN>';
althtmldef "ps0"  as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D713;<SUB>0</SUB></SPAN>';
althtmldef "ch0_" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D712;<SUB>0</SUB></SPAN>';
althtmldef "th0"  as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D703;<SUB>0</SUB></SPAN>';
althtmldef "ta0"  as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D70F;<SUB>0</SUB></SPAN>';
althtmldef "et0"  as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D702;<SUB>0</SUB></SPAN>';
althtmldef "ze0"  as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D701;<SUB>0</SUB></SPAN>';
althtmldef "si0"  as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D70E;<SUB>0</SUB></SPAN>';
althtmldef "rh0"  as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D70C;<SUB>0</SUB></SPAN>';
latexdef "ph0"  as "\varphi_0";
latexdef "ps0"  as "\psi_0";
latexdef "ch0_" as "\chi_0";
latexdef "th0"  as "\theta_0";
latexdef "ta0"  as "\tau_0";
latexdef "et0"  as "\eta_0";
latexdef "ze0"  as "\zeta_0";
latexdef "si0"  as "\sigma_0";
latexdef "rh0"  as "\rho_0";
htmldef "ph1" as "<IMG SRC='_bnj_phi1.gif'   WIDTH=16 HEIGHT=19" +
    " ALT=' ph1' TITLE='ph1'>";
htmldef "ps1" as "<IMG SRC='_bnj_psi1.gif'   WIDTH=17 HEIGHT=19" +
    " ALT=' ps1' TITLE='ps1'>";
htmldef "ch1" as "<IMG SRC='_bnj_chi1.gif'   WIDTH=17 HEIGHT=19" +
    " ALT=' ch1' TITLE='ch1'>";
htmldef "th1" as "<IMG SRC='_bnj_theta1.gif' WIDTH=13 HEIGHT=19" +
    " ALT=' th1' TITLE='th1'>";
htmldef "ta1" as "<IMG SRC='_bnj_tau1.gif'   WIDTH=15 HEIGHT=19" +
    " ALT=' ta1' TITLE='ta1'>";
htmldef "et1" as "<IMG SRC='_bnj_eta1.gif'   WIDTH=14 HEIGHT=19" +
    " ALT=' et1' TITLE='et1'>";
htmldef "ze1" as "<IMG SRC='_bnj_zeta1.gif'  WIDTH=14 HEIGHT=19" +
    " ALT=' ze1' TITLE='ze1'>";
htmldef "si1" as "<IMG SRC='_bnj_sigma1.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' si1' TITLE='si1'>";
htmldef "rh1" as "<IMG SRC='_bnj_rho1.gif'   WIDTH=14 HEIGHT=19" +
    " ALT=' rh1' TITLE='rh1'>";
althtmldef "ph1" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D711;<SUB>1</SUB></SPAN>';
althtmldef "ps1" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D713;<SUB>1</SUB></SPAN>';
althtmldef "ch1" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D712;<SUB>1</SUB></SPAN>';
althtmldef "th1" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D703;<SUB>1</SUB></SPAN>';
althtmldef "ta1" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D70F;<SUB>1</SUB></SPAN>';
althtmldef "et1" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D702;<SUB>1</SUB></SPAN>';
althtmldef "ze1" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D701;<SUB>1</SUB></SPAN>';
althtmldef "si1" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D70E;<SUB>1</SUB></SPAN>';
althtmldef "rh1" as
    '<SPAN CLASS=wff STYLE="color:blue">&#x1D70C;<SUB>1</SUB></SPAN>';
latexdef "ph1" as "\varphi_1";
latexdef "ps1" as "\psi_1";
latexdef "ch1" as "\chi_1";
latexdef "th1" as "\theta_1";
latexdef "ta1" as "\tau_1";
latexdef "et1" as "\eta_1";
latexdef "ze1" as "\zeta_1";
latexdef "si1" as "\sigma_1";
latexdef "rh1" as "\rho_1";
htmldef "a'" as "<IMG SRC='_bnj_aPrime.gif' WIDTH=13 HEIGHT=19" +
    " ALT=" + '"' + " a'" + '"' + " TITLE=" + '"' + "a'" + '"' + ">";
htmldef "b'" as "<IMG SRC='_bnj_bPrime.gif' WIDTH=12 HEIGHT=19" +
    " ALT=" + '"' + " b'" + '"' + " TITLE=" + '"' + "b'" + '"' + ">";
htmldef "c'" as "<IMG SRC='_bnj_cPrime.gif' WIDTH=11 HEIGHT=19" +
    " ALT=" + '"' + " c'" + '"' + " TITLE=" + '"' + "c'" + '"' + ">";
htmldef "d'" as "<IMG SRC='_bnj_dPrime.gif' WIDTH=13 HEIGHT=19" +
    " ALT=" + '"' + " d'" + '"' + " TITLE=" + '"' + "d'" + '"' + ">";
htmldef "e'" as "<IMG SRC='_bnj_ePrime.gif' WIDTH=12 HEIGHT=19" +
    " ALT=" + '"' + " e'" + '"' + " TITLE=" + '"' + "e'" + '"' + ">";
htmldef "f'" as "<IMG SRC='_bnj_fPrime.gif' WIDTH=13 HEIGHT=19" +
    " ALT=" + '"' + " f'" + '"' + " TITLE=" + '"' + "f'" + '"' + ">";
htmldef "g'" as "<IMG SRC='_bnj_gPrime.gif' WIDTH=13 HEIGHT=19" +
    " ALT=" + '"' + " g'" + '"' + " TITLE=" + '"' + "g'" + '"' + ">";
htmldef "h'" as "<IMG SRC='_bnj_hPrime.gif' WIDTH=14 HEIGHT=19" +
    " ALT=" + '"' + " h'" + '"' + " TITLE=" + '"' + "h'" + '"' + ">";
htmldef "i'" as "<IMG SRC='_bnj_iPrime.gif' WIDTH=10 HEIGHT=19" +
    " ALT=" + '"' + " i'" + '"' + " TITLE=" + '"' + "i'" + '"' + ">";
htmldef "j'" as "<IMG SRC='_bnj_jPrime.gif' WIDTH=11 HEIGHT=19" +
    " ALT=" + '"' + " j'" + '"' + " TITLE=" + '"' + "j'" + '"' + ">";
htmldef "k'" as "<IMG SRC='_bnj_kPrime.gif' WIDTH=13 HEIGHT=19" +
    " ALT=" + '"' + " k'" + '"' + " TITLE=" + '"' + "k'" + '"' + ">";
htmldef "l'" as "<IMG SRC='_bnj_lPrime.gif' WIDTH=9  HEIGHT=19" +
    " ALT=" + '"' + " l'" + '"' + " TITLE=" + '"' + "l'" + '"' + ">";
htmldef "m'" as "<IMG SRC='_bnj_mPrime.gif' WIDTH=18 HEIGHT=19" +
    " ALT=" + '"' + " m'" + '"' + " TITLE=" + '"' + "m'" + '"' + ">";
htmldef "n'" as "<IMG SRC='_bnj_nPrime.gif' WIDTH=14 HEIGHT=19" +
    " ALT=" + '"' + " n'" + '"' + " TITLE=" + '"' + "n'" + '"' + ">";
htmldef "o'_" as "<IMG SRC='_bnj_oPrime.gif' WIDTH=12 HEIGHT=19" +
    " ALT=" + '"' + " o'_" + '"' + " TITLE=" + '"' + "o'_" + '"' + ">";
htmldef "p'" as "<IMG SRC='_bnj_pPrime.gif' WIDTH=14 HEIGHT=19" +
    " ALT=" + '"' + " p'" + '"' + " TITLE=" + '"' + "p'" + '"' + ">";
htmldef "q'" as "<IMG SRC='_bnj_qPrime.gif' WIDTH=12 HEIGHT=19" +
    " ALT=" + '"' + " q'" + '"' + " TITLE=" + '"' + "q'" + '"' + ">";
htmldef "r'" as "<IMG SRC='_bnj_rPrime.gif' WIDTH=12 HEIGHT=19" +
    " ALT=" + '"' + " r'" + '"' + " TITLE=" + '"' + "r'" + '"' + ">";
htmldef "s'_" as "<IMG SRC='_bnj_sPrime.gif' WIDTH=11 HEIGHT=19" +
    " ALT=" + '"' + " s'" + '"' + " TITLE=" + '"' + "s'" + '"' + ">";
htmldef "t'" as "<IMG SRC='_bnj_tPrime.gif' WIDTH=11 HEIGHT=19" +
    " ALT=" + '"' + " t'" + '"' + " TITLE=" + '"' + "t'" + '"' + ">";
htmldef "u'" as "<IMG SRC='_bnj_uPrime.gif' WIDTH=14 HEIGHT=19" +
    " ALT=" + '"' + " u'" + '"' + " TITLE=" + '"' + "u'" + '"' + ">";
htmldef "v'_" as "<IMG SRC='_bnj_vPrime.gif' WIDTH=13 HEIGHT=19" +
    " ALT=" + '"' + " v'" + '"' + " TITLE=" + '"' + "v'" + '"' + ">";
htmldef "w'" as "<IMG SRC='_bnj_wPrime.gif' WIDTH=16 HEIGHT=19" +
    " ALT=" + '"' + " w'" + '"' + " TITLE=" + '"' + "w'" + '"' + ">";
htmldef "x'" as "<IMG SRC='_bnj_xPrime.gif' WIDTH=14 HEIGHT=19" +
    " ALT=" + '"' + " x'" + '"' + " TITLE=" + '"' + "x'" + '"' + ">";
htmldef "y'" as "<IMG SRC='_bnj_yPrime.gif' WIDTH=13 HEIGHT=19" +
    " ALT=" + '"' + " y'" + '"' + " TITLE=" + '"' + "y'" + '"' + ">";
htmldef "z'" as "<IMG SRC='_bnj_zPrime.gif' WIDTH=13 HEIGHT=19" +
    " ALT=" + '"' + " z'" + '"' + " TITLE=" + '"' + "z'" + '"' + ">";
althtmldef "a'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D44E;&prime;</SPAN>';
althtmldef "b'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D44F;&prime;</SPAN>';
althtmldef "c'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D450;&prime;</SPAN>';
althtmldef "d'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D451;&prime;</SPAN>';
althtmldef "e'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D452;&prime;</SPAN>';
althtmldef "f'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D453;&prime;</SPAN>';
althtmldef "g'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D454;&prime;</SPAN>';
althtmldef "h'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x210E;&prime;</SPAN>';
althtmldef "i'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D456;&prime;</SPAN>';
althtmldef "j'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D457;&prime;</SPAN>';
althtmldef "k'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D458;&prime;</SPAN>';
althtmldef "l'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D459;&prime;</SPAN>';
althtmldef "m'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45A;&prime;</SPAN>';
althtmldef "n'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45B;&prime;</SPAN>';
althtmldef "o'_" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45C;&prime;</SPAN>';
althtmldef "p'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45D;&prime;</SPAN>';
althtmldef "q'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45E;&prime;</SPAN>';
althtmldef "r'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45F;&prime;</SPAN>';
althtmldef "s'_" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D460;&prime;</SPAN>';
althtmldef "t'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D461;&prime;</SPAN>';
althtmldef "u'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D462;&prime;</SPAN>';
althtmldef "v'_" as
     '<SPAN CLASS=setvar STYLE="color:red">&#x1D463;&prime;</SPAN>';
althtmldef "w'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D464;&prime;</SPAN>';
althtmldef "x'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D465;&prime;</SPAN>';
althtmldef "y'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D466;&prime;</SPAN>';
althtmldef "z'" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D467;&prime;</SPAN>';
latexdef "a'" as "a'";
latexdef "b'" as "b'";
latexdef "c'" as "c'";
latexdef "d'" as "d'";
latexdef "e'" as "e'";
latexdef "f'" as "f'";
latexdef "g'" as "g'";
latexdef "h'" as "h'";
latexdef "i'" as "i'";
latexdef "j'" as "j'";
latexdef "k'" as "k'";
latexdef "l'" as "l'";
latexdef "m'" as "m'";
latexdef "n'" as "n'";
latexdef "o'_" as "o'";
latexdef "p'" as "p'";
latexdef "q'" as "q'";
latexdef "r'" as "r'";
latexdef "s'_" as "s'";
latexdef "t'" as "t'";
latexdef "u'" as "u'";
latexdef "v'_" as "v'";
latexdef "w'" as "w'";
latexdef "x'" as "x'";
latexdef "y'" as "y'";
latexdef "z'" as "z'";
htmldef 'a"' as "<IMG SRC='_bnj_aPrimePrime.gif' WIDTH=16 HEIGHT=19 " +
      " ALT=' a" + '"' + "' TITLE='a" + '"' + "'>";
htmldef 'b"' as "<IMG SRC='_bnj_bPrimePrime.gif' WIDTH=15 HEIGHT=19 " +
      " ALT=' b" + '"' + "' TITLE='b" + '"' + "'>";
htmldef 'c"' as "<IMG SRC='_bnj_cPrimePrime.gif' WIDTH=14 HEIGHT=19 " +
      " ALT=' c" + '"' + "' TITLE='c" + '"' + "'>";
htmldef 'd"' as "<IMG SRC='_bnj_dPrimePrime.gif' WIDTH=16 HEIGHT=19 " +
      " ALT=' d" + '"' + "' TITLE='d" + '"' + "'>";
htmldef 'e"' as "<IMG SRC='_bnj_ePrimePrime.gif' WIDTH=15 HEIGHT=19 " +
      " ALT=' e" + '"' + "' TITLE='e" + '"' + "'>";
htmldef 'f"' as "<IMG SRC='_bnj_fPrimePrime.gif' WIDTH=16 HEIGHT=19 " +
      " ALT=' f" + '"' + "' TITLE='f" + '"' + "'>";
htmldef 'g"' as "<IMG SRC='_bnj_gPrimePrime.gif' WIDTH=16 HEIGHT=19 " +
      " ALT=' g" + '"' + "' TITLE='g" + '"' + "'>";
htmldef 'h"' as "<IMG SRC='_bnj_hPrimePrime.gif' WIDTH=17 HEIGHT=19 " +
      " ALT=' h" + '"' + "'TITLE='h" + '"' + "'>";
htmldef 'i"' as "<IMG SRC='_bnj_iPrimePrime.gif' WIDTH=13 HEIGHT=19 " +
      " ALT=' i" + '"' + "' TITLE='i" + '"' + "'>";
htmldef 'j"' as "<IMG SRC='_bnj_jPrimePrime.gif' WIDTH=14 HEIGHT=19 " +
      " ALT=' j" + '"' + "' TITLE='j" + '"' + "'>";
htmldef 'k"' as "<IMG SRC='_bnj_kPrimePrime.gif' WIDTH=16 HEIGHT=19 " +
      " ALT=' k" + '"' + "' TITLE='k" + '"' + "'>";
htmldef 'l"' as "<IMG SRC='_bnj_lPrimePrime.gif' WIDTH=12 HEIGHT=19 " +
      " ALT=' l" + '"' + "'TITLE='l" + '"' + "'>";
htmldef 'm"' as "<IMG SRC='_bnj_mPrimePrime.gif' WIDTH=21 HEIGHT=19 " +
      " ALT=' m" + '"' + "' TITLE='m" + '"' + "'>";
htmldef 'n"' as "<IMG SRC='_bnj_nPrimePrime.gif' WIDTH=17 HEIGHT=19 " +
      " ALT=' n" + '"' + "' TITLE='n" + '"' + "'>";
htmldef 'o"_' as "<IMG SRC='_bnj_oPrimePrime.gif' WIDTH=15 HEIGHT=19 " +
      " ALT=' o" + '"' + "'TITLE='o" + '"' + "'>";
htmldef 'p"' as "<IMG SRC='_bnj_pPrimePrime.gif' WIDTH=17 HEIGHT=19 " +
      " ALT=' p" + '"' + "'TITLE='p" + '"' + "'>";
htmldef 'q"' as "<IMG SRC='_bnj_qPrimePrime.gif' WIDTH=15 HEIGHT=19 " +
      " ALT=' q" + '"' + "'TITLE='q" + '"' + "'>";
htmldef 'r"' as "<IMG SRC='_bnj_rPrimePrime.gif' WIDTH=15 HEIGHT=19 " +
      " ALT=' r" + '"' + "'TITLE='r" + '"' + "'>";
htmldef 's"_' as "<IMG SRC='_bnj_sPrimePrime.gif' WIDTH=14 HEIGHT=19 " +
      " ALT=' s" + '"' + "'TITLE='s" + '"' + "'>";
htmldef 't"' as "<IMG SRC='_bnj_tPrimePrime.gif' WIDTH=14 HEIGHT=19 " +
      " ALT=' t" + '"' + "'TITLE='t" + '"' + "'>";
htmldef 'u"' as "<IMG SRC='_bnj_uPrimePrime.gif' WIDTH=17 HEIGHT=19 " +
      " ALT=' u" + '"' + "'TITLE='u" + '"' + "'>";
htmldef 'v"_' as "<IMG SRC='_bnj_vPrimePrime.gif' WIDTH=16 HEIGHT=19 " +
      " ALT=' v" + '"' + "'TITLE='v" + '"' + "'>";
htmldef 'w"' as "<IMG SRC='_bnj_wPrimePrime.gif' WIDTH=19 HEIGHT=19 " +
      " ALT=' w" + '"' + "'TITLE='w" + '"' + "'>";
htmldef 'x"' as "<IMG SRC='_bnj_xPrimePrime.gif' WIDTH=17 HEIGHT=19 " +
      " ALT=' x" + '"' + "'TITLE='x" + '"' + "'>";
htmldef 'y"' as "<IMG SRC='_bnj_yPrimePrime.gif' WIDTH=16 HEIGHT=19 " +
      " ALT=' y" + '"' + "'TITLE='y" + '"' + "'>";
htmldef 'z"' as "<IMG SRC='_bnj_zPrimePrime.gif' WIDTH=16 HEIGHT=19 " +
      " ALT=' z" + '"' + "'TITLE='z" + '"' + "'>";
althtmldef 'a"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D44E;&Prime;</SPAN>';
althtmldef 'b"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D44F;&Prime;</SPAN>';
althtmldef 'c"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D450;&Prime;</SPAN>';
althtmldef 'd"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D451;&Prime;</SPAN>';
althtmldef 'e"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D452;&Prime;</SPAN>';
althtmldef 'f"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D453;&Prime;</SPAN>';
althtmldef 'g"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D454;&Prime;</SPAN>';
althtmldef 'h"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x210E;&Prime;</SPAN>';
althtmldef 'i"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D456;&Prime;</SPAN>';
althtmldef 'j"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D457;&Prime;</SPAN>';
althtmldef 'k"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D458;&Prime;</SPAN>';
althtmldef 'l"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D459;&Prime;</SPAN>';
althtmldef 'm"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45A;&Prime;</SPAN>';
althtmldef 'n"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45B;&Prime;</SPAN>';
althtmldef 'o"_' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45C;&Prime;</SPAN>';
althtmldef 'p"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45D;&Prime;</SPAN>';
althtmldef 'q"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45E;&Prime;</SPAN>';
althtmldef 'r"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45F;&Prime;</SPAN>';
althtmldef 's"_' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D460;&Prime;</SPAN>';
althtmldef 't"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D461;&Prime;</SPAN>';
althtmldef 'u"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D462;&Prime;</SPAN>';
althtmldef 'v"_' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D463;&Prime;</SPAN>';
althtmldef 'w"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D464;&Prime;</SPAN>';
althtmldef 'x"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D465;&Prime;</SPAN>';
althtmldef 'y"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D466;&Prime;</SPAN>';
althtmldef 'z"' as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D467;&Prime;</SPAN>';
latexdef 'a"' as "a''";
latexdef 'b"' as "b''";
latexdef 'c"' as "c''";
latexdef 'd"' as "d''";
latexdef 'e"' as "e''";
latexdef 'f"' as "f''";
latexdef 'g"' as "g''";
latexdef 'h"' as "h''";
latexdef 'i"' as "i''";
latexdef 'j"' as "j''";
latexdef 'k"' as "k''";
latexdef 'l"' as "l''";
latexdef 'm"' as "m''";
latexdef 'n"' as "n''";
latexdef 'o"_' as "o''";
latexdef 'p"' as "p''";
latexdef 'q"' as "q''";
latexdef 'r"' as "r''";
latexdef 's"_' as "s''";
latexdef 't"' as "t''";
latexdef 'u"' as "u''";
latexdef 'v"_' as "v''";
latexdef 'w"' as "w''";
latexdef 'x"' as "x''";
latexdef 'y"' as "y''";
latexdef 'z"' as "z''";
htmldef "a0_"  as "<IMG SRC='_bnj_a0.gif' WIDTH=16 HEIGHT=19" +
    " ALT=' a0' TITLE='a0'>";
htmldef "b0_"  as "<IMG SRC='_bnj_b0.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' b0' TITLE='b0'>";
htmldef "c0_" as "<IMG SRC='_bnj_c0.gif' WIDTH=14 HEIGHT=19" +
    " ALT=' c0' TITLE='c0'>";
htmldef "d0"  as "<IMG SRC='_bnj_d0.gif' WIDTH=16 HEIGHT=19" +
    " ALT=' d0' TITLE='d0'>";
htmldef "e0"  as "<IMG SRC='_bnj_e0.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' e0' TITLE='e0'>";
htmldef "f0_" as "<IMG SRC='_bnj_f0.gif' WIDTH=16 HEIGHT=19" +
    " ALT=' f0_' TITLE='f0_'>";
htmldef "g0"  as "<IMG SRC='_bnj_g0.gif' WIDTH=16 HEIGHT=19" +
    " ALT=' g0' TITLE='g0'>";
htmldef "h0"  as "<IMG SRC='_bnj_h0.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' h0' TITLE='h0'>";
htmldef "i0"  as "<IMG SRC='_bnj_i0.gif' WIDTH=13 HEIGHT=19" +
    " ALT=' i0' TITLE='i0'>";
htmldef "j0"  as "<IMG SRC='_bnj_j0.gif' WIDTH=14 HEIGHT=19" +
    " ALT=' j0' TITLE='j0'>";
htmldef "k0"  as "<IMG SRC='_bnj_k0.gif' WIDTH=16 HEIGHT=19" +
    " ALT=' k0' TITLE='k0'>";
htmldef "l0"  as "<IMG SRC='_bnj_l0.gif' WIDTH=12 HEIGHT=19" +
    " ALT=' l0' TITLE='l0'>";
htmldef "m0"  as "<IMG SRC='_bnj_m0.gif' WIDTH=21 HEIGHT=19" +
    " ALT=' m0' TITLE='m0'>";
htmldef "n0_" as "<IMG SRC='_bnj_n0.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' n0_' TITLE='n0_'>";
htmldef "o0_"  as "<IMG SRC='_bnj_o0.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' o0_' TITLE='o0_'>";
htmldef "p0"  as "<IMG SRC='_bnj_p0.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' p0' TITLE='p0'>";
htmldef "q0"  as "<IMG SRC='_bnj_q0.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' q0' TITLE='q0'>";
htmldef "r0"  as "<IMG SRC='_bnj_r0.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' r0' TITLE='r0'>";
htmldef "s0"  as "<IMG SRC='_bnj_s0.gif' WIDTH=14 HEIGHT=19" +
    " ALT=' s0' TITLE='s0'>";
htmldef "t0"  as "<IMG SRC='_bnj_t0.gif' WIDTH=14 HEIGHT=19" +
    " ALT=' t0' TITLE='t0'>";
htmldef "u0"  as "<IMG SRC='_bnj_u0.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' u0' TITLE='u0'>";
htmldef "v0"  as "<IMG SRC='_bnj_v0.gif' WIDTH=16 HEIGHT=19" +
    " ALT=' v0' TITLE='v0'>";
htmldef "w0"  as "<IMG SRC='_bnj_w0.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' w0' TITLE='w0'>";
htmldef "x0"  as "<IMG SRC='_bnj_x0.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' x0' TITLE='x0'>";
htmldef "y0"  as "<IMG SRC='_bnj_y0.gif' WIDTH=16 HEIGHT=19" +
    " ALT=' y0' TITLE='y0'>";
htmldef "z0"  as "<IMG SRC='_bnj_z0.gif' WIDTH=16 HEIGHT=19" +
    " ALT=' z0' TITLE='z0'>";
althtmldef "a0_"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D44E;<SUB>0</SUB></SPAN>';
althtmldef "b0_"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D44F;<SUB>0</SUB></SPAN>';
althtmldef "c0_" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D450;<SUB>0</SUB></SPAN>';
althtmldef "d0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D451;<SUB>0</SUB></SPAN>';
althtmldef "e0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D452;<SUB>0</SUB></SPAN>';
althtmldef "f0_" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D453;<SUB>0</SUB></SPAN>';
althtmldef "g0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D454;<SUB>0</SUB></SPAN>';
althtmldef "h0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x210E;<SUB>0</SUB></SPAN>';
althtmldef "i0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D456;<SUB>0</SUB></SPAN>';
althtmldef "j0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D457;<SUB>0</SUB></SPAN>';
althtmldef "k0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D458;<SUB>0</SUB></SPAN>';
althtmldef "l0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D459;<SUB>0</SUB></SPAN>';
althtmldef "m0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45A;<SUB>0</SUB></SPAN>';
althtmldef "n0_" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45B;<SUB>0</SUB></SPAN>';
althtmldef "o0_"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45C;<SUB>0</SUB></SPAN>';
althtmldef "p0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45D;<SUB>0</SUB></SPAN>';
althtmldef "q0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45E;<SUB>0</SUB></SPAN>';
althtmldef "r0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45F;<SUB>0</SUB></SPAN>';
althtmldef "s0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D460;<SUB>0</SUB></SPAN>';
althtmldef "t0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D461;<SUB>0</SUB></SPAN>';
althtmldef "u0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D462;<SUB>0</SUB></SPAN>';
althtmldef "v0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D463;<SUB>0</SUB></SPAN>';
althtmldef "w0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D464;<SUB>0</SUB></SPAN>';
althtmldef "x0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D465;<SUB>0</SUB></SPAN>';
althtmldef "y0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D466;<SUB>0</SUB></SPAN>';
althtmldef "z0"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D467;<SUB>0</SUB></SPAN>';
latexdef "a0_"  as "a_0";
latexdef "b0_"  as "b_0";
latexdef "c0_" as "c_0";
latexdef "d0"  as "d_0";
latexdef "e0"  as "e_0";
latexdef "f0_" as "f_0";
latexdef "g0"  as "g_0";
latexdef "h0"  as "h_0";
latexdef "i0"  as "i_0";
latexdef "j0"  as "j_0";
latexdef "k0"  as "k_0";
latexdef "l0"  as "l_0";
latexdef "m0"  as "m_0";
latexdef "n0_" as "n_0";
latexdef "o0_"  as "o_0";
latexdef "p0"  as "p_0";
latexdef "q0"  as "q_0";
latexdef "r0"  as "r_0";
latexdef "s0"  as "s_0";
latexdef "t0"  as "t_0";
latexdef "u0"  as "u_0";
latexdef "v0"  as "v_0";
latexdef "w0"  as "w_0";
latexdef "x0"  as "x_0";
latexdef "y0"  as "y_0";
latexdef "z0"  as "z_0";
htmldef "a1_"  as "<IMG SRC='_bnj_a1.gif' WIDTH=14 HEIGHT=19" +
    " ALT=' a1' TITLE='a1'>";
htmldef "b1_"  as "<IMG SRC='_bnj_b1.gif' WIDTH=13 HEIGHT=19" +
    " ALT=' b1' TITLE='b1'>";
htmldef "c1_" as "<IMG SRC='_bnj_c1.gif' WIDTH=12 HEIGHT=19" +
    " ALT=' c1_' TITLE='c1_'>";
htmldef "d1"  as "<IMG SRC='_bnj_d1.gif' WIDTH=14 HEIGHT=19" +
    " ALT=' d1' TITLE='d1'>";
htmldef "e1"  as "<IMG SRC='_bnj_e1.gif' WIDTH=13 HEIGHT=19" +
    " ALT=' e1' TITLE='e1'>";
htmldef "f1"  as "<IMG SRC='_bnj_f1.gif' WIDTH=14 HEIGHT=19" +
    " ALT=' f1' TITLE='f1'>";
htmldef "g1"  as "<IMG SRC='_bnj_g1.gif' WIDTH=14 HEIGHT=19" +
    " ALT=' g1' TITLE='g1'>";
htmldef "h1"  as "<IMG SRC='_bnj_h1.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' h1' TITLE='h1'>";
htmldef "i1"  as "<IMG SRC='_bnj_i1.gif' WIDTH=11 HEIGHT=19" +
    " ALT=' i1' TITLE='i1'>";
htmldef "j1"  as "<IMG SRC='_bnj_j1.gif' WIDTH=12 HEIGHT=19" +
    " ALT=' j1' TITLE='j1'>";
htmldef "k1"  as "<IMG SRC='_bnj_k1.gif' WIDTH=14 HEIGHT=19" +
    " ALT=' k1' TITLE='k1'>";
htmldef "l1"  as "<IMG SRC='_bnj_l1.gif' WIDTH=10 HEIGHT=19" +
    " ALT=' l1' TITLE='l1'>";
htmldef "m1"  as "<IMG SRC='_bnj_m1.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' m1' TITLE='m1'>";
htmldef "n1"  as "<IMG SRC='_bnj_n1.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' n1' TITLE='n1'>";
htmldef "o1_"  as "<IMG SRC='_bnj_o1.gif' WIDTH=13 HEIGHT=19" +
    " ALT=' o1_' TITLE='o1_'>";
htmldef "p1"  as "<IMG SRC='_bnj_p1.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' p1' TITLE='p1'>";
htmldef "q1"  as "<IMG SRC='_bnj_q1.gif' WIDTH=13 HEIGHT=19" +
    " ALT=' q1' TITLE='q1'>";
htmldef "r1"  as "<IMG SRC='_bnj_r1.gif' WIDTH=13 HEIGHT=19" +
    " ALT=' r1' TITLE='r1'>";
htmldef "s1"  as "<IMG SRC='_bnj_s1.gif' WIDTH=12 HEIGHT=19" +
    " ALT=' s1' TITLE='s1'>";
htmldef "t1"  as "<IMG SRC='_bnj_t1.gif' WIDTH=12 HEIGHT=19" +
    " ALT=' t1' TITLE='t1'>";
htmldef "u1"  as "<IMG SRC='_bnj_u1.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' u1' TITLE='u1'>";
htmldef "v1"  as "<IMG SRC='_bnj_v1.gif' WIDTH=14 HEIGHT=19" +
    " ALT=' v1' TITLE='v1'>";
htmldef "w1"  as "<IMG SRC='_bnj_w1.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' w1' TITLE='w1'>";
htmldef "x1"  as "<IMG SRC='_bnj_x1.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' x1' TITLE='x1'>";
htmldef "y1"  as "<IMG SRC='_bnj_y1.gif' WIDTH=14 HEIGHT=19" +
    " ALT=' y1' TITLE='y1'>";
htmldef "z1"  as "<IMG SRC='_bnj_z1.gif' WIDTH=14 HEIGHT=19" +
    " ALT=' z1' TITLE='z1'>";
althtmldef "a1_"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D44E;<SUB>1</SUB></SPAN>';
althtmldef "b1_"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D44F;<SUB>1</SUB></SPAN>';
althtmldef "c1_" as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D450;<SUB>1</SUB></SPAN>';
althtmldef "d1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D451;<SUB>1</SUB></SPAN>';
althtmldef "e1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D452;<SUB>1</SUB></SPAN>';
althtmldef "f1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D453;<SUB>1</SUB></SPAN>';
althtmldef "g1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D454;<SUB>1</SUB></SPAN>';
althtmldef "h1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x210E;<SUB>1</SUB></SPAN>';
althtmldef "i1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D456;<SUB>1</SUB></SPAN>';
althtmldef "j1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D457;<SUB>1</SUB></SPAN>';
althtmldef "k1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D458;<SUB>1</SUB></SPAN>';
althtmldef "l1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D459;<SUB>1</SUB></SPAN>';
althtmldef "m1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45A;<SUB>1</SUB></SPAN>';
althtmldef "n1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45B;<SUB>1</SUB></SPAN>';
althtmldef "o1_"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45C;<SUB>1</SUB></SPAN>';
althtmldef "p1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45D;<SUB>1</SUB></SPAN>';
althtmldef "q1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45E;<SUB>1</SUB></SPAN>';
althtmldef "r1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D45F;<SUB>1</SUB></SPAN>';
althtmldef "s1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D460;<SUB>1</SUB></SPAN>';
althtmldef "t1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D461;<SUB>1</SUB></SPAN>';
althtmldef "u1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D462;<SUB>1</SUB></SPAN>';
althtmldef "v1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D463;<SUB>1</SUB></SPAN>';
althtmldef "w1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D464;<SUB>1</SUB></SPAN>';
althtmldef "x1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D465;<SUB>1</SUB></SPAN>';
althtmldef "y1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D466;<SUB>1</SUB></SPAN>';
althtmldef "z1"  as
    '<SPAN CLASS=setvar STYLE="color:red">&#x1D467;<SUB>1</SUB></SPAN>';
latexdef "a1_"  as "a_1";
latexdef "b1_"  as "b_1";
latexdef "c1_" as "c_1";
latexdef "d1"  as "d_1";
latexdef "e1"  as "e_1";
latexdef "f1"  as "f_1";
latexdef "g1"  as "g_1";
latexdef "h1"  as "h_1";
latexdef "i1"  as "i_1";
latexdef "j1"  as "j_1";
latexdef "k1"  as "k_1";
latexdef "l1"  as "l_1";
latexdef "m1"  as "m_1";
latexdef "n1"  as "n_1";
latexdef "o1_"  as "o_1";
latexdef "p1"  as "p_1";
latexdef "q1"  as "q_1";
latexdef "r1"  as "r_1";
latexdef "s1"  as "s_1";
latexdef "t1"  as "t_1";
latexdef "u1"  as "u_1";
latexdef "v1"  as "v_1";
latexdef "w1"  as "w_1";
latexdef "x1"  as "x_1";
latexdef "y1"  as "y_1";
latexdef "z1"  as "z_1";
htmldef "A'" as "<IMG SRC='_bnj_caPrime.gif' WIDTH=15 HEIGHT=19" +
    " ALT=" + '"' + " A'" + '"' + " TITLE=" + '"' + "A'" + '"' + ">";
htmldef "B'" as "<IMG SRC='_bnj_cbPrime.gif' WIDTH=16 HEIGHT=19" +
    " ALT=" + '"' + " B'" + '"' + " TITLE=" + '"' + "B'" + '"' + ">";
htmldef "C'" as "<IMG SRC='_bnj_ccPrime.gif' WIDTH=16 HEIGHT=19" +
    " ALT=" + '"' + " C'" + '"' + " TITLE=" + '"' + "C'" + '"' + ">";
htmldef "D'" as "<IMG SRC='_bnj_cdPrime.gif' WIDTH=16 HEIGHT=19" +
    " ALT=" + '"' + " D'" + '"' + " TITLE=" + '"' + "D'" + '"' + ">";
htmldef "E'" as "<IMG SRC='_bnj_cePrime.gif' WIDTH=17 HEIGHT=19" +
    " ALT=" + '"' + " E'" + '"' + " TITLE=" + '"' + "E'" + '"' + ">";
htmldef "F'" as "<IMG SRC='_bnj_cfPrime.gif' WIDTH=17 HEIGHT=19" +
    " ALT=" + '"' + " F'" + '"' + " TITLE=" + '"' + "F'" + '"' + ">";
htmldef "G'" as "<IMG SRC='_bnj_cgPrime.gif' WIDTH=16 HEIGHT=19" +
    " ALT=" + '"' + " G'" + '"' + " TITLE=" + '"' + "G'" + '"' + ">";
htmldef "H'" as "<IMG SRC='_bnj_chPrime.gif' WIDTH=18 HEIGHT=19" +
    " ALT=" + '"' + " H'" + '"' + " TITLE=" + '"' + "H'" + '"' + ">";
htmldef "I'" as "<IMG SRC='_bnj_ciPrime.gif' WIDTH=12 HEIGHT=19" +
    " ALT=" + '"' + " I'" + '"' + " TITLE=" + '"' + "I'" + '"' + ">";
htmldef "J'" as "<IMG SRC='_bnj_cjPrime.gif' WIDTH=14 HEIGHT=19" +
    " ALT=" + '"' + " J'" + '"' + " TITLE=" + '"' + "J'" + '"' + ">";
htmldef "K'" as "<IMG SRC='_bnj_ckPrime.gif' WIDTH=18 HEIGHT=19" +
    " ALT=" + '"' + " K'" + '"' + " TITLE=" + '"' + "K'" + '"' + ">";
htmldef "L'" as "<IMG SRC='_bnj_clPrime.gif' WIDTH=14 HEIGHT=19" +
    " ALT=" + '"' + " L'" + '"' + " TITLE=" + '"' + "L'" + '"' + ">";
htmldef "M'" as "<IMG SRC='_bnj_cmPrime.gif' WIDTH=19 HEIGHT=19" +
    " ALT=" + '"' + " M'" + '"' + " TITLE=" + '"' + "M'" + '"' + ">";
htmldef "N'" as "<IMG SRC='_bnj_cnPrime.gif' WIDTH=18 HEIGHT=19" +
    " ALT=" + '"' + " N'" + '"' + " TITLE=" + '"' + "N'" + '"' + ">";
htmldef "O'" as "<IMG SRC='_bnj_coPrime.gif' WIDTH=16 HEIGHT=19" +
    " ALT=" + '"' + " O'" + '"' + " TITLE=" + '"' + "O'" + '"' + ">";
htmldef "P'" as "<IMG SRC='_bnj_cpPrime.gif' WIDTH=16 HEIGHT=19" +
    " ALT=" + '"' + " P'" + '"' + " TITLE=" + '"' + "P'" + '"' + ">";
htmldef "Q'" as "<IMG SRC='_bnj_cqPrime.gif' WIDTH=16 HEIGHT=19" +
    " ALT=" + '"' + " Q'" + '"' + " TITLE=" + '"' + "Q'" + '"' + ">";
htmldef "R'" as "<IMG SRC='_bnj_crPrime.gif' WIDTH=16 HEIGHT=19" +
    " ALT=" + '"' + " R'" + '"' + " TITLE=" + '"' + "R'" + '"' + ">";
htmldef "S'" as "<IMG SRC='_bnj_csPrime.gif' WIDTH=15 HEIGHT=19" +
    " ALT=" + '"' + " S'" + '"' + " TITLE=" + '"' + "S'" + '"' + ">";
htmldef "T'" as "<IMG SRC='_bnj_ctPrime.gif' WIDTH=16 HEIGHT=19" +
    " ALT=" + '"' + " T'" + '"' + " TITLE=" + '"' + "T'" + '"' + ">";
htmldef "U'" as "<IMG SRC='_bnj_cuPrime.gif' WIDTH=16 HEIGHT=19" +
    " ALT=" + '"' + " U'" + '"' + " TITLE=" + '"' + "U'" + '"' + ">";
htmldef "V'" as "<IMG SRC='_bnj_cvPrime.gif' WIDTH=16 HEIGHT=19" +
    " ALT=" + '"' + " V'" + '"' + " TITLE=" + '"' + "V'" + '"' + ">";
htmldef "W'" as "<IMG SRC='_bnj_cwPrime.gif' WIDTH=20 HEIGHT=19" +
    " ALT=" + '"' + " W'" + '"' + " TITLE=" + '"' + "W'" + '"' + ">";
htmldef "X'" as "<IMG SRC='_bnj_cxPrime.gif' WIDTH=17 HEIGHT=19" +
    " ALT=" + '"' + " X'" + '"' + " TITLE=" + '"' + "X'" + '"' + ">";
htmldef "Y'" as "<IMG SRC='_bnj_cyPrime.gif' WIDTH=16 HEIGHT=19" +
    " ALT=" + '"' + " Y'" + '"' + " TITLE=" + '"' + "Y'" + '"' + ">";
htmldef "Z'" as "<IMG SRC='_bnj_czPrime.gif' WIDTH=15 HEIGHT=19" +
    " ALT=" + '"' + " Z'" + '"' + " TITLE=" + '"' + "Z'" + '"' + ">";
althtmldef "A'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D434;&prime;</SPAN>';
althtmldef "B'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D435;&prime;</SPAN>';
althtmldef "C'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D436;&prime;</SPAN>';
althtmldef "D'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D437;&prime;</SPAN>';
althtmldef "E'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D438;&prime;</SPAN>';
althtmldef "F'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D439;&prime;</SPAN>';
althtmldef "G'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43A;&prime;</SPAN>';
althtmldef "H'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43B;&prime;</SPAN>';
althtmldef "I'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43C;&prime;</SPAN>';
althtmldef "J'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43D;&prime;</SPAN>';
althtmldef "K'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43E;&prime;</SPAN>';
althtmldef "L'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43F;&prime;</SPAN>';
althtmldef "M'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D440;&prime;</SPAN>';
althtmldef "N'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D441;&prime;</SPAN>';
althtmldef "O'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D442;&prime;</SPAN>';
althtmldef "P'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D443;&prime;</SPAN>';
althtmldef "Q'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D444;&prime;</SPAN>';
althtmldef "R'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D445;&prime;</SPAN>';
althtmldef "S'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D446;&prime;</SPAN>';
althtmldef "T'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D447;&prime;</SPAN>';
althtmldef "U'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D448;&prime;</SPAN>';
althtmldef "V'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D449;&prime;</SPAN>';
althtmldef "W'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44A;&prime;</SPAN>';
althtmldef "X'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44B;&prime;</SPAN>';
althtmldef "Y'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44C;&prime;</SPAN>';
althtmldef "Z'" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44D;&prime;</SPAN>';
latexdef "A'" as "A'";
latexdef "B'" as "B'";
latexdef "C'" as "C'";
latexdef "D'" as "D'";
latexdef "E'" as "E'";
latexdef "F'" as "F'";
latexdef "G'" as "G'";
latexdef "H'" as "H'";
latexdef "I'" as "I'";
latexdef "J'" as "J'";
latexdef "K'" as "K'";
latexdef "L'" as "L'";
latexdef "M'" as "M'";
latexdef "N'" as "N'";
latexdef "O'" as "O'";
latexdef "P'" as "P'";
latexdef "Q'" as "Q'";
latexdef "R'" as "R'";
latexdef "S'" as "S'";
latexdef "T'" as "T'";
latexdef "U'" as "U'";
latexdef "V'" as "V'";
latexdef "W'" as "W'";
latexdef "X'" as "X'";
latexdef "Y'" as "Y'";
latexdef "Z'" as "Z'";
htmldef 'A"' as "<IMG SRC='_bnj_caPrimePrime.gif' WIDTH=18 HEIGHT=19 " +
      " ALT=' A" + '"' + "'TITLE='A" + '"' + "'>";
htmldef 'B"' as "<IMG SRC='_bnj_cbPrimePrime.gif' WIDTH=19 HEIGHT=19 " +
      " ALT=' B" + '"' + "'TITLE='B" + '"' + "'>";
htmldef 'C"' as "<IMG SRC='_bnj_ccPrimePrime.gif' WIDTH=19 HEIGHT=19 " +
      " ALT=' C" + '"' + "'TITLE='C" + '"' + "'>";
htmldef 'D"' as "<IMG SRC='_bnj_cdPrimePrime.gif' WIDTH=19 HEIGHT=19 " +
      " ALT=' D" + '"' + "'TITLE='D" + '"' + "'>";
htmldef 'E"' as "<IMG SRC='_bnj_cePrimePrime.gif' WIDTH=20 HEIGHT=19 " +
      " ALT=' E" + '"' + "'TITLE='E" + '"' + "'>";
htmldef 'F"' as "<IMG SRC='_bnj_cfPrimePrime.gif' WIDTH=20 HEIGHT=19 " +
      " ALT=' F" + '"' + "'TITLE='F" + '"' + "'>";
htmldef 'G"' as "<IMG SRC='_bnj_cgPrimePrime.gif' WIDTH=19 HEIGHT=19 " +
      " ALT=' G" + '"' + "'TITLE='G" + '"' + "'>";
htmldef 'H"' as "<IMG SRC='_bnj_chPrimePrime.gif' WIDTH=21 HEIGHT=19 " +
      " ALT=' H" + '"' + "'TITLE='H" + '"' + "'>";
htmldef 'I"' as "<IMG SRC='_bnj_ciPrimePrime.gif' WIDTH=15 HEIGHT=19 " +
      " ALT=' I" + '"' + "'TITLE='I" + '"' + "'>";
htmldef 'J"' as "<IMG SRC='_bnj_cjPrimePrime.gif' WIDTH=17 HEIGHT=19 " +
      " ALT=' J" + '"' + "'TITLE='J" + '"' + "'>";
htmldef 'K"' as "<IMG SRC='_bnj_ckPrimePrime.gif' WIDTH=21 HEIGHT=19 " +
      " ALT=' K" + '"' + "'TITLE='K" + '"' + "'>";
htmldef 'L"' as "<IMG SRC='_bnj_clPrimePrime.gif' WIDTH=17 HEIGHT=19 " +
      " ALT=' L" + '"' + "'TITLE='L" + '"' + "'>";
htmldef 'M"' as "<IMG SRC='_bnj_cmPrimePrime.gif' WIDTH=22 HEIGHT=19 " +
      " ALT=' M" + '"' + "'TITLE='M" + '"' + "'>";
htmldef 'N"' as "<IMG SRC='_bnj_cnPrimePrime.gif' WIDTH=21 HEIGHT=19 " +
      " ALT=' N" + '"' + "'TITLE='N" + '"' + "'>";
htmldef 'O"' as "<IMG SRC='_bnj_coPrimePrime.gif' WIDTH=19 HEIGHT=19 " +
      " ALT=' O" + '"' + "'TITLE='O" + '"' + "'>";
htmldef 'P"' as "<IMG SRC='_bnj_cpPrimePrime.gif' WIDTH=19 HEIGHT=19 " +
      " ALT=' P" + '"' + "'TITLE='P" + '"' + "'>";
htmldef 'Q"' as "<IMG SRC='_bnj_cqPrimePrime.gif' WIDTH=19 HEIGHT=19 " +
      " ALT=' Q" + '"' + "'TITLE='Q" + '"' + "'>";
htmldef 'R"' as "<IMG SRC='_bnj_crPrimePrime.gif' WIDTH=19 HEIGHT=19 " +
      " ALT=' R" + '"' + "'TITLE='R" + '"' + "'>";
htmldef 'S"' as "<IMG SRC='_bnj_csPrimePrime.gif' WIDTH=18 HEIGHT=19 " +
      " ALT=' S" + '"' + "'TITLE='S" + '"' + "'>";
htmldef 'T"' as "<IMG SRC='_bnj_ctPrimePrime.gif' WIDTH=19 HEIGHT=19 " +
      " ALT=' T" + '"' + "'TITLE='T" + '"' + "'>";
htmldef 'U"' as "<IMG SRC='_bnj_cuPrimePrime.gif' WIDTH=19 HEIGHT=19 " +
      " ALT=' U" + '"' + "'TITLE='U" + '"' + "'>";
htmldef 'V"' as "<IMG SRC='_bnj_cvPrimePrime.gif' WIDTH=19 HEIGHT=19 " +
      " ALT=' V" + '"' + "'TITLE='V" + '"' + "'>";
htmldef 'W"' as "<IMG SRC='_bnj_cwPrimePrime.gif' WIDTH=23 HEIGHT=19 " +
      " ALT=' W" + '"' + "'TITLE='W" + '"' + "'>";
htmldef 'X"' as "<IMG SRC='_bnj_cxPrimePrime.gif' WIDTH=20 HEIGHT=19 " +
      " ALT=' X" + '"' + "'TITLE='X" + '"' + "'>";
htmldef 'Y"' as "<IMG SRC='_bnj_cyPrimePrime.gif' WIDTH=19 HEIGHT=19 " +
      " ALT=' Y" + '"' + "'TITLE='Y" + '"' + "'>";
htmldef 'Z"' as "<IMG SRC='_bnj_czPrimePrime.gif' WIDTH=18 HEIGHT=19 " +
      " ALT=' Z" + '"' + "'TITLE='Z" + '"' + "'>";
althtmldef 'A"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D434;&Prime;</SPAN>';
althtmldef 'B"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D435;&Prime;</SPAN>';
althtmldef 'C"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D436;&Prime;</SPAN>';
althtmldef 'D"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D437;&Prime;</SPAN>';
althtmldef 'E"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D438;&Prime;</SPAN>';
althtmldef 'F"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D439;&Prime;</SPAN>';
althtmldef 'G"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43A;&Prime;</SPAN>';
althtmldef 'H"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43B;&Prime;</SPAN>';
althtmldef 'I"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43C;&Prime;</SPAN>';
althtmldef 'J"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43D;&Prime;</SPAN>';
althtmldef 'K"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43E;&Prime;</SPAN>';
althtmldef 'L"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43F;&Prime;</SPAN>';
althtmldef 'M"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D440;&Prime;</SPAN>';
althtmldef 'N"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D441;&Prime;</SPAN>';
althtmldef 'O"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D442;&Prime;</SPAN>';
althtmldef 'P"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D443;&Prime;</SPAN>';
althtmldef 'Q"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D444;&Prime;</SPAN>';
althtmldef 'R"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D445;&Prime;</SPAN>';
althtmldef 'S"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D446;&Prime;</SPAN>';
althtmldef 'T"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D447;&Prime;</SPAN>';
althtmldef 'U"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D448;&Prime;</SPAN>';
althtmldef 'V"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D449;&Prime;</SPAN>';
althtmldef 'W"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44A;&Prime;</SPAN>';
althtmldef 'X"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44B;&Prime;</SPAN>';
althtmldef 'Y"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44C;&Prime;</SPAN>';
althtmldef 'Z"' as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44D;&Prime;</SPAN>';
latexdef 'A"' as "A''";
latexdef 'B"' as "B''";
latexdef 'C"' as "C''";
latexdef 'D"' as "D''";
latexdef 'E"' as "E''";
latexdef 'F"' as "F''";
latexdef 'G"' as "G''";
latexdef 'H"' as "H''";
latexdef 'I"' as "I''";
latexdef 'J"' as "J''";
latexdef 'K"' as "K''";
latexdef 'L"' as "L''";
latexdef 'M"' as "M''";
latexdef 'N"' as "N''";
latexdef 'O"' as "O''";
latexdef 'P"' as "P''";
latexdef 'Q"' as "Q''";
latexdef 'R"' as "R''";
latexdef 'S"' as "S''";
latexdef 'T"' as "T''";
latexdef 'U"' as "U''";
latexdef 'V"' as "V''";
latexdef 'W"' as "W''";
latexdef 'X"' as "X''";
latexdef 'Y"' as "Y''";
latexdef 'Z"' as "Z''";
htmldef "A0" as "<IMG SRC='_bnj_ca0.gif' WIDTH=18 HEIGHT=19" +
    " ALT=' A0' TITLE='A0'>";
htmldef "B0" as "<IMG SRC='_bnj_cb0.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' B0' TITLE='B0'>";
htmldef "C0" as "<IMG SRC='_bnj_cc0.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' C0' TITLE='C0'>";
htmldef "D0" as "<IMG SRC='_bnj_cd0.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' D0' TITLE='D0'>";
htmldef "E0" as "<IMG SRC='_bnj_ce0.gif' WIDTH=20 HEIGHT=19" +
    " ALT=' E0' TITLE='E0'>";
htmldef "F0" as "<IMG SRC='_bnj_cf0.gif' WIDTH=20 HEIGHT=19" +
    " ALT=' F0' TITLE='F0'>";
htmldef "G0" as "<IMG SRC='_bnj_cg0.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' G0' TITLE='G0'>";
htmldef "H0" as "<IMG SRC='_bnj_ch0.gif' WIDTH=21 HEIGHT=19" +
    " ALT=' H0' TITLE='H0'>";
htmldef "I0" as "<IMG SRC='_bnj_ci0.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' I0' TITLE='I0'>";
htmldef "J0" as "<IMG SRC='_bnj_cj0.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' J0' TITLE='J0'>";
htmldef "K0" as "<IMG SRC='_bnj_ck0.gif' WIDTH=21 HEIGHT=19" +
    " ALT=' K0' TITLE='K0'>";
htmldef "L0" as "<IMG SRC='_bnj_cl0.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' L0' TITLE='L0'>";
htmldef "M0" as "<IMG SRC='_bnj_cm0.gif' WIDTH=22 HEIGHT=19" +
    " ALT=' M0' TITLE='M0'>";
htmldef "N0" as "<IMG SRC='_bnj_cn0.gif' WIDTH=21 HEIGHT=19" +
    " ALT=' N0' TITLE='N0'>";
htmldef "O0" as "<IMG SRC='_bnj_co0.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' O0' TITLE='O0'>";
htmldef "P0" as "<IMG SRC='_bnj_cp0.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' P0' TITLE='P0'>";
htmldef "Q0" as "<IMG SRC='_bnj_cq0.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' Q0' TITLE='Q0'>";
htmldef "R0" as "<IMG SRC='_bnj_cr0.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' R0' TITLE='R0'>";
htmldef "S0" as "<IMG SRC='_bnj_cs0.gif' WIDTH=18 HEIGHT=19" +
    " ALT=' S0' TITLE='S0'>";
htmldef "T0" as "<IMG SRC='_bnj_ct0.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' T0' TITLE='T0'>";
htmldef "U0" as "<IMG SRC='_bnj_cu0.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' U0' TITLE='U0'>";
htmldef "V0" as "<IMG SRC='_bnj_cv0.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' V0' TITLE='V0'>";
htmldef "W0" as "<IMG SRC='_bnj_cw0.gif' WIDTH=23 HEIGHT=19" +
    " ALT=' W0' TITLE='W0'>";
htmldef "X0" as "<IMG SRC='_bnj_cx0.gif' WIDTH=20 HEIGHT=19" +
    " ALT=' X0' TITLE='X0'>";
htmldef "Y0" as "<IMG SRC='_bnj_cy0.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' Y0' TITLE='Y0'>";
htmldef "Z0" as "<IMG SRC='_bnj_cz0.gif' WIDTH=18 HEIGHT=19" +
    " ALT=' Z0' TITLE='Z0'>";
althtmldef "A0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D434;<SUB>0</SUB></SPAN>';
althtmldef "B0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D435;<SUB>0</SUB></SPAN>';
althtmldef "C0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D436;<SUB>0</SUB></SPAN>';
althtmldef "D0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D437;<SUB>0</SUB></SPAN>';
althtmldef "E0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D438;<SUB>0</SUB></SPAN>';
althtmldef "F0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D439;<SUB>0</SUB></SPAN>';
althtmldef "G0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43A;<SUB>0</SUB></SPAN>';
althtmldef "H0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43B;<SUB>0</SUB></SPAN>';
althtmldef "I0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43C;<SUB>0</SUB></SPAN>';
althtmldef "J0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43D;<SUB>0</SUB></SPAN>';
althtmldef "K0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43E;<SUB>0</SUB></SPAN>';
althtmldef "L0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43F;<SUB>0</SUB></SPAN>';
althtmldef "M0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D440;<SUB>0</SUB></SPAN>';
althtmldef "N0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D441;<SUB>0</SUB></SPAN>';
althtmldef "O0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D442;<SUB>0</SUB></SPAN>';
althtmldef "P0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D443;<SUB>0</SUB></SPAN>';
althtmldef "Q0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D444;<SUB>0</SUB></SPAN>';
althtmldef "R0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D445;<SUB>0</SUB></SPAN>';
althtmldef "S0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D446;<SUB>0</SUB></SPAN>';
althtmldef "T0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D447;<SUB>0</SUB></SPAN>';
althtmldef "U0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D448;<SUB>0</SUB></SPAN>';
althtmldef "V0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D449;<SUB>0</SUB></SPAN>';
althtmldef "W0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44A;<SUB>0</SUB></SPAN>';
althtmldef "X0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44B;<SUB>0</SUB></SPAN>';
althtmldef "Y0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44C;<SUB>0</SUB></SPAN>';
althtmldef "Z0" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44D;<SUB>0</SUB></SPAN>';
latexdef "A0" as "A_0";
latexdef "B0" as "B_0";
latexdef "C0" as "C_0";
latexdef "D0" as "D_0";
latexdef "E0" as "E_0";
latexdef "F0" as "F_0";
latexdef "G0" as "G_0";
latexdef "H0" as "H_0";
latexdef "I0" as "I_0";
latexdef "J0" as "J_0";
latexdef "K0" as "K_0";
latexdef "L0" as "L_0";
latexdef "M0" as "M_0";
latexdef "N0" as "N_0";
latexdef "O0" as "O_0";
latexdef "P0" as "P_0";
latexdef "Q0" as "Q_0";
latexdef "R0" as "R_0";
latexdef "S0" as "S_0";
latexdef "T0" as "T_0";
latexdef "U0" as "U_0";
latexdef "V0" as "V_0";
latexdef "W0" as "W_0";
latexdef "X0" as "X_0";
latexdef "Y0" as "Y_0";
latexdef "Z0" as "Z_0";
htmldef "A1_"  as "<IMG SRC='_bnj_ca1.gif' WIDTH=16 HEIGHT=19" +
    " ALT=' A1' TITLE='A1'>";
htmldef "B1_"  as "<IMG SRC='_bnj_cb1.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' B1' TITLE='B1'>";
htmldef "C1_"  as "<IMG SRC='_bnj_cc1.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' C1' TITLE='C1'>";
htmldef "D1_"  as "<IMG SRC='_bnj_cd1.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' D1' TITLE='D1'>";
htmldef "E1"  as "<IMG SRC='_bnj_ce1.gif' WIDTH=18 HEIGHT=19" +
    " ALT=' E1' TITLE='E1'>";
htmldef "F1_"  as "<IMG SRC='_bnj_cf1.gif' WIDTH=18 HEIGHT=19" +
    " ALT=' F1' TITLE='F1'>";
htmldef "G1_"  as "<IMG SRC='_bnj_cg1.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' G1' TITLE='G1'>";
htmldef "H1_"  as "<IMG SRC='_bnj_ch1.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' H1' TITLE='H1'>";
htmldef "I1_"  as "<IMG SRC='_bnj_ci1.gif' WIDTH=13 HEIGHT=19" +
    " ALT=' I1' TITLE='I1'>";
htmldef "J1"  as "<IMG SRC='_bnj_cj1.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' J1' TITLE='J1'>";
htmldef "K1"  as "<IMG SRC='_bnj_ck1.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' K1' TITLE='K1'>";
htmldef "L1_"  as "<IMG SRC='_bnj_cl1.gif' WIDTH=15 HEIGHT=19" +
    " ALT=' L1' TITLE='L1'>";
htmldef "M1_"  as "<IMG SRC='_bnj_cm1.gif' WIDTH=20 HEIGHT=19" +
    " ALT=' M1' TITLE='M1'>";
htmldef "N1"  as "<IMG SRC='_bnj_cn1.gif' WIDTH=19 HEIGHT=19" +
    " ALT=' N1' TITLE='N1'>";
htmldef "O1_"  as "<IMG SRC='_bnj_co1.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' O1_' TITLE='O1_'>";
htmldef "P1"  as "<IMG SRC='_bnj_cp1.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' P1' TITLE='P1'>";
htmldef "Q1"  as "<IMG SRC='_bnj_cq1.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' Q1' TITLE='Q1'>";
htmldef "R1_" as "<IMG SRC='_bnj_cr1.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' R1_' TITLE='R1_'>";
htmldef "S1_"  as "<IMG SRC='_bnj_cs1.gif' WIDTH=16 HEIGHT=19" +
    " ALT=' S1' TITLE='S1'>";
htmldef "T1"  as "<IMG SRC='_bnj_ct1.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' T1' TITLE='T1'>";
htmldef "U1"  as "<IMG SRC='_bnj_cu1.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' U1' TITLE='U1'>";
htmldef "V1_"  as "<IMG SRC='_bnj_cv1.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' V1' TITLE='V1'>";
htmldef "W1"  as "<IMG SRC='_bnj_cw1.gif' WIDTH=21 HEIGHT=19" +
    " ALT=' W1' TITLE='W1'>";
htmldef "X1"  as "<IMG SRC='_bnj_cx1.gif' WIDTH=18 HEIGHT=19" +
    " ALT=' X1' TITLE='X1'>";
htmldef "Y1"  as "<IMG SRC='_bnj_cy1.gif' WIDTH=17 HEIGHT=19" +
    " ALT=' Y1' TITLE='Y1'>";
htmldef "Z1"  as "<IMG SRC='_bnj_cz1.gif' WIDTH=16 HEIGHT=19" +
    " ALT=' Z1' TITLE='Z1'>";
althtmldef "A1_"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D434;<SUB>1</SUB></SPAN>';
althtmldef "B1_"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D435;<SUB>1</SUB></SPAN>';
althtmldef "C1_"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D436;<SUB>1</SUB></SPAN>';
althtmldef "D1_"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D437;<SUB>1</SUB></SPAN>';
althtmldef "E1"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D438;<SUB>1</SUB></SPAN>';
althtmldef "F1_"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D439;<SUB>1</SUB></SPAN>';
althtmldef "G1_"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43A;<SUB>1</SUB></SPAN>';
althtmldef "H1_"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43B;<SUB>1</SUB></SPAN>';
althtmldef "I1_"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43C;<SUB>1</SUB></SPAN>';
althtmldef "J1"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43D;<SUB>1</SUB></SPAN>';
althtmldef "K1"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43E;<SUB>1</SUB></SPAN>';
althtmldef "L1_"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D43F;<SUB>1</SUB></SPAN>';
althtmldef "M1_"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D440;<SUB>1</SUB></SPAN>';
althtmldef "N1"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D441;<SUB>1</SUB></SPAN>';
althtmldef "O1_"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D442;<SUB>1</SUB></SPAN>';
althtmldef "P1"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D443;<SUB>1</SUB></SPAN>';
althtmldef "Q1"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D444;<SUB>1</SUB></SPAN>';
althtmldef "R1_" as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D445;<SUB>1</SUB></SPAN>';
althtmldef "S1_"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D446;<SUB>1</SUB></SPAN>';
althtmldef "T1"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D447;<SUB>1</SUB></SPAN>';
althtmldef "U1"  as
   '<SPAN CLASS=class STYLE="color:#C3C">&#x1D448;<SUB>1</SUB></SPAN>';
althtmldef "V1_"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D449;<SUB>1</SUB></SPAN>';
althtmldef "W1"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44A;<SUB>1</SUB></SPAN>';
althtmldef "X1"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44B;<SUB>1</SUB></SPAN>';
althtmldef "Y1"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44C;<SUB>1</SUB></SPAN>';
althtmldef "Z1"  as
    '<SPAN CLASS=class STYLE="color:#C3C">&#x1D44D;<SUB>1</SUB></SPAN>';
latexdef "A1_"  as "A_1";
latexdef "B1_"  as "B_1";
latexdef "C1_"  as "C_1";
latexdef "D1_"  as "D_1";
latexdef "E1"  as "E_1";
latexdef "F1_"  as "F_1";
latexdef "G1_"  as "G_1";
latexdef "H1_"  as "H_1";
latexdef "I1_"  as "I_1";
latexdef "J1"  as "J_1";
latexdef "K1"  as "K_1";
latexdef "L1_"  as "L_1";
latexdef "M1_"  as "M_1";
latexdef "N1"  as "N_1";
latexdef "O1_"  as "O_1";
latexdef "P1"  as "P_1";
latexdef "Q1"  as "Q_1";
latexdef "R1_" as "R_1";
latexdef "S1_"  as "S_1";
latexdef "T1"  as "T_1";
latexdef "U1"  as "U_1";
latexdef "V1_"  as "V_1";
latexdef "W1"  as "W_1";
latexdef "X1"  as "X_1";
latexdef "Y1"  as "Y_1";
latexdef "Z1"  as "Z_1";
/*
htmldef "_fns" as
    " <IMG SRC='_fns.gif' WIDTH=19 HEIGHT=19 ALT=' fns' TITLE='fns'> ";
  althtmldef "_fns" as " fns ";
  latexdef "_fns" as "{\rm fns\;}";
*/
htmldef "_pred" as
    " <IMG SRC='_pred.gif' WIDTH=30 HEIGHT=19 ALT=' pred' TITLE='pred'>";
  althtmldef "_pred" as " pred";
  latexdef "_pred" as "{\rm pred}";
htmldef "_Se" as
    " <IMG SRC='_cse.gif' WIDTH=15 HEIGHT=19 ALT=' Se' TITLE='Se'> ";
  althtmldef "_Se" as " Se ";
  latexdef "_Se" as "{\rm \;Se\;}";
htmldef "_FrSe" as
    " <IMG SRC='_frse.gif' WIDTH=30 HEIGHT=19 ALT=' FrSe' TITLE='FrSe'> ";
  althtmldef "_FrSe" as " FrSe ";
  latexdef "_FrSe" as "{\rm \;FrSe\;}";
htmldef "_trCl" as
    " <IMG SRC='_trcl.gif' WIDTH=26 HEIGHT=19 ALT=' trCl' TITLE='trCl'>";
  althtmldef "_trCl" as " trCl";
  latexdef "_trCl" as "{\rm trCl}";
htmldef "_TrFo" as
    " <IMG SRC='_trfo.gif' WIDTH=32 HEIGHT=19 ALT=' TrFo' TITLE='TrFo'>";
  althtmldef "_TrFo" as " TrFo";
  latexdef "_TrFo" as "{\rm TrFo}";
/* End of Jonathan Ben-Naim's mathbox */

/* Mathbox of BJ */
htmldef "Prv" as "Prv ";
  althtmldef "Prv" as "Prv ";
  latexdef "Prv" as "{\rm Prv}";
htmldef "[b" as "[";
  althtmldef "[b" as "[";
  latexdef "[b" as "[";
htmldef "/b" as "/";
  althtmldef "/b" as "/";
  latexdef "/b" as "/";
htmldef "]b" as "]b";
  althtmldef "]b" as "]<sub>b</sub>";
  latexdef "]b" as "\]_b";
htmldef "sngl" as "sngl ";
  althtmldef "sngl" as "sngl ";
  latexdef "sngl" as "{\rm sngl}";
htmldef "tag" as "tag ";
  althtmldef "tag" as "tag ";
  latexdef "tag" as "{\rm tag}";
htmldef "(|" as "(|";
  althtmldef "(|" as "&#x2985;";
  latexdef "(|" as "\lParen";
htmldef "|)" as "|)";
  althtmldef "|)" as "&#x2986";
  latexdef "|)" as "\rParen";
htmldef ",," as ", ";
  althtmldef ",," as ", ";
  latexdef ",," as ", ";
htmldef "Proj" as " Proj ";
  althtmldef "Proj" as " Proj ";
  latexdef "Proj" as " {\rm Proj} ";
htmldef "pr1" as "pr<sub>1</sub> ";
  althtmldef "pr1" as "pr<sub>1</sub> ";
  latexdef "pr1" as "{\rm pr_1} ";
htmldef "pr2" as "pr<sub>2</sub> ";
  althtmldef "pr2" as "pr<sub>2</sub> ";
  latexdef "pr2" as "{\rm pr_2} ";
htmldef "if-" as "if-";
  althtmldef "if-" as "if-";
  latexdef "if-" as "\mathrm{if-}";
htmldef "elwise" as "elwise";
  althtmldef "elwise" as "elwise";
  latexdef "elwise" as "\mathrm{elwise}";
htmldef "Moore_" as "Moore_";
  althtmldef "Moore_" as "<u>Moore</u>";
  latexdef "Moore_" as "\underline{\mathrm{Moore}}";
htmldef "-Set->" as " -Set-> ";
  althtmldef "-Set->" as ' <span style = " ' +
    ' overflow: visible; width: 0px; height: 0px; display: inline-block; ' +
    ' font-size: 65%; position: relative; top: -1.4ex; ' +
    ' left: 0.4ex">Set</span>&#x27f6; ';
  latexdef "-Set->" as "\overset{\text{Set}}{\longrightarrow}";
htmldef "-Top->" as " -Top-> ";
  althtmldef "-Top->" as ' <span style = " ' +
    ' overflow: visible; width: 0px; height: 0px; display: inline-block; ' +
    ' font-size: 65%; position: relative; top: -1.4ex; ' +
    ' left: 0.4ex">Top</span>&#x27f6; ';
  latexdef "-Top->" as "\overset{\text{Top}}{\longrightarrow}";
htmldef "-Mgm->" as " -Mgm-> ";
  althtmldef "-Mgm->" as ' <span style = " ' +
    ' overflow: visible; width: 0px; height: 0px; display: inline-block; ' +
    ' font-size: 65%; position: relative; top: -1.4ex; ' +
    ' left: 0.4ex">Mgm</span>&#x27f6; ';
  latexdef "-Mgm->" as "\overset{\text{Mgm}}{\longrightarrow}";
htmldef "-TopMgm->" as " -TopMgm-> ";
  althtmldef "-TopMgm->" as ' <span style = " ' +
    ' overflow: visible; width: 0px; height: 0px; display: inline-block; ' +
    ' font-size: 65%; position: relative; top: -1.4ex; ' +
    ' left: 0.0ex">TopMgm</span>&#x27f6; ';
  latexdef "-TopMgm->" as "\overset{\text{TopMgm}}{\longrightarrow}";
htmldef "curry_" as "curry_";
  althtmldef "curry_" as "curry_";
  latexdef "curry_" as "\mathrm{curry}";
htmldef "uncurry_" as "uncurry_";
  althtmldef "uncurry_" as "uncurry_";
  latexdef "uncurry_" as "\mathrm{uncurry}";
htmldef "[s" as "[";
  althtmldef "[s" as "[";
  latexdef "[s" as "[";
htmldef "]s" as "]s";
  althtmldef "]s" as "]<SUB>struct</SUB>";
  latexdef "]s" as "]_\mathrm{struct}";
htmldef "Diag" as "Diag";
  althtmldef "Diag" as "Diag";
  latexdef "Diag" as "\mathrm{Diag}";
htmldef "CCinfty" as "CCinfty";
  althtmldef "CCinfty" as "&#8450;<SUB>&infin;</SUB>";
  latexdef "CCinfty" as "{\mathbb{C}_\infty}";
htmldef "CCbar" as "CCbar";
  althtmldef "CCbar" as "&#8450;&#x305;";
  latexdef "CCbar" as "\overline{\mathbb{C}}";
htmldef "RRbar" as "RRbar";
    althtmldef "RRbar" as "&#8477;&#x305;";
    latexdef "RRbar" as "\overline{\mathbb{R}}";
htmldef "+cc" as " +cc ";
  althtmldef "+cc" as " +<SUB>&#8450;&#x305;</SUB> ";
  latexdef "+cc" as " +_{\overline{\mathbb{C}}} ";
htmldef "-cc" as "-cc";
  althtmldef "-cc" as "-<SUB>&#8450;&#x305;</SUB>";
  latexdef "-cc" as "-_{\overline{\mathbb{C}}}";
htmldef ".cc" as " .cc ";
  althtmldef ".cc" as " &#183;<SUB>&#8450;&#x305;</SUB> ";
  latexdef ".cc" as " \cdot_{\overline{\mathbb{C}}} ";
htmldef "invc" as "invc";
  althtmldef "invc" as "<SUP>-1</SUP><SUB>&#8450;&#x305;</SUB>";
  latexdef "invc" as "{\cdot^{-1}}";
htmldef "prcpal" as "prcpal";
  althtmldef "prcpal" as "prcpal";
  latexdef "prcpal" as "\mathrm{prcpal}";
htmldef "Arg" as "Arg";
  althtmldef "Arg" as "Arg";
  latexdef "Arg" as "\mathrm{Arg}";
htmldef "RR>=0" as "RR>=0";
  althtmldef "RR>=0" as "&#8477;<SUB>&ge;0</SUB>";
  latexdef "RR>=0" as "{\mathbb{R}_{\geq 0}}";
htmldef "RR>0" as "RR>0";
  althtmldef "RR>0" as "&#8477;<SUB>>0</SUB>";
  latexdef "RR>0" as "{\mathbb{R}_{>0}}";
htmldef "inftyexpi" as "inftyexpi ";
  althtmldef "inftyexpi" as "inftyexpi ";
  latexdef "inftyexpi" as "\mathrm{inftyexpi} ";
htmldef "minfty" as "minfty";
  althtmldef "minfty" as "-&infin;";
  latexdef "minfty" as "-\infty";
htmldef "pinfty" as "pinfty";
  althtmldef "pinfty" as "+&infin;";
  latexdef "pinfty" as "+\infty";
htmldef "infty" as "infty";
  althtmldef "infty" as "&infin;";
  latexdef "infty" as "\infty";
htmldef "CChat" as "CChat";
  althtmldef "CChat" as "&#8450;&#x302;";
  latexdef "CChat" as "\hat{\mathbb{C}}";
htmldef "RRhat" as "RRhat";
  althtmldef "RRhat" as "&#8477;&#x302;";
  latexdef "RRhat" as "\hat{\mathbb{R}}";
htmldef "FinSum" as " FinSum ";
  althtmldef "FinSum" as " FinSum ";
  latexdef "FinSum" as " \mathrm{FinSum} ";
htmldef "RRVec" as "RR-Vec";
  althtmldef "RRVec" as "&#8477;-Vec";
  latexdef "RRVec" as "{\mathbb{R}-\mathrm{Vec}}";
/* End of BJ's mathbox */

/* Mathbox of Norm Megill */
htmldef "LSAtoms" as "LSAtoms";
  althtmldef "LSAtoms" as "LSAtoms";
  latexdef "LSAtoms" as "{\rm LSAtoms}";
htmldef "LSHyp" as "LSHyp";
  althtmldef "LSHyp" as "LSHyp";
  latexdef "LSHyp" as "{\rm LSHyp}";
htmldef "<oL" as
    " <IMG SRC='lessdot.gif' WIDTH=11 HEIGHT=19 "
    + "ALT=' &lt;oL' TITLE='&lt;oL'><SUB>L</SUB> ";
  althtmldef "<oL" as ' &#8918;<SUB>L</SUB> ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "<oL" as "\lessdot_{\rm L}";
htmldef "LFnl" as "LFnl";
  althtmldef "LFnl" as "LFnl";
  latexdef "LFnl" as "{\rm LFnl}";
htmldef "LKer" as "LKer";
  althtmldef "LKer" as "LKer";
  latexdef "LKer" as "{\rm LKer}";
htmldef "LDual" as "LDual";
  althtmldef "LDual" as "LDual";
  latexdef "LDual" as "{\rm LDual}";
htmldef "OP" as "<IMG SRC='_op.gif' WIDTH=20 HEIGHT=19 ALT=' OP' TITLE='OP'>";
  althtmldef "OP" as "OP";
  latexdef "OP" as "{\rm OP}";
htmldef "cm" as
    "<IMG SRC='_rmcm.gif' WIDTH=19 HEIGHT=19 ALT=' cm' TITLE='cm'>";
  althtmldef "cm" as "cm";
  latexdef "cm" as "{\rm cm}";
htmldef "OL" as "<IMG SRC='_ol.gif' WIDTH=20 HEIGHT=19 ALT=' OL' TITLE='OL'>";
  althtmldef "OL" as "OL";
  latexdef "OL" as "{\rm OL}";
htmldef "OML" as
    "<IMG SRC='_oml.gif' WIDTH=32 HEIGHT=19 ALT=' OML' TITLE='OML'>";
  althtmldef "OML" as "OML";
  latexdef "OML" as "{\rm OML}";
htmldef "<o" as
    " <IMG SRC='lessdot.gif' WIDTH=11 HEIGHT=19 "
    + "ALT=' &lt;o' TITLE='&lt;o'> ";
  althtmldef "<o" as ' &#8918; ';
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "<o" as '\lessdot';
htmldef "Atoms" as
    "<IMG SRC='_atoms.gif' WIDTH=41 HEIGHT=19 ALT=' Atoms' TITLE='Atoms'>";
  althtmldef "Atoms" as "Atoms";
  latexdef "Atoms" as "{\rm Atoms}";
htmldef "AtLat" as
    "<IMG SRC='_atlat.gif' WIDTH=39 HEIGHT=19 ALT=' AtLat' TITLE='AtLat'>";
  althtmldef "AtLat" as "AtLat";
  latexdef "AtLat" as "{\rm AtLat}";
/*
htmldef "AtsLat" as "AtsLat"; althtmldef "AtsLat" as "AtsLat";
*/
htmldef "CvLat" as
    "<IMG SRC='_cvlat.gif' WIDTH=41 HEIGHT=19 ALT=' CvLat' TITLE='CvLat'>";
  althtmldef "CvLat" as "CvLat";
  latexdef "CvLat" as "{\rm CvLat}";
htmldef "HL" as "<IMG SRC='_hl.gif' WIDTH=19 HEIGHT=19 ALT=' HL' TITLE='HL'>";
  althtmldef "HL" as "HL";
  latexdef "HL" as "{\rm HL}";
/*
htmldef "ser" as "ser";
  althtmldef "ser" as "ser";
  latexdef "ser" as "{\rm ser}";
htmldef "fcard" as "fcard"; althtmldef "fcard" as "fcard";
htmldef "idsumf" as "idsumf"; althtmldef "idsumf" as "idsumf";
htmldef "idsum" as "idsum"; althtmldef "idsum" as "idsum";
htmldef "C_rng" as "C_rng"; althtmldef "C_rng" as "C_rng";
htmldef "-vNEW" as "-vNEW"; althtmldef "-vNEW" as "-vNEW";
htmldef "RVecNEW" as "RVecNEW"; althtmldef "RVecNEW" as "RVecNEW";
htmldef "+ss" as
    "<IMG SRC='plus.gif' WIDTH=13 HEIGHT=19 ALT=' +' TITLE='+'>" +
    "<IMG SRC='_subss.gif' WIDTH=10 HEIGHT=19 ALT='ss' TITLE='ss'>";
  althtmldef "+ss" as "+<SUB>ss</SUB>";
  latexdef "+ss" as "+_{\rm ss}";
htmldef "SubSpNEW" as "SubSpNEW"; althtmldef "SubSpNEW" as "SubSpNEW";
htmldef "spanNEW" as "spanNEW"; althtmldef "spanNEW" as "spanNEW";
htmldef "o+" as "o+"; althtmldef "o+" as "o+";
htmldef "Ev" as "Ev"; althtmldef "Ev" as "Ev";
htmldef "/v" as "/v"; althtmldef "/v" as "/v";
htmldef "normv" as "normv"; althtmldef "normv" as "normv";
*/
htmldef "LLines" as
    "<IMG SRC='_llines.gif' WIDTH=43 HEIGHT=19 ALT=' LLines' TITLE='LLines'>";
  althtmldef "LLines" as "LLines";
  latexdef "LLines" as "{\rm LLines}";
htmldef "LPlanes" as
  "<IMG SRC='_lplanes.gif' WIDTH=51 HEIGHT=19 ALT=' LPlanes' TITLE='LPlanes'>";
  althtmldef "LPlanes" as "LPlanes";
  latexdef "LPlanes" as "{\rm LPlanes}";
htmldef "LVols" as
    "<IMG SRC='_lvols.gif' WIDTH=36 HEIGHT=19 ALT=' LVols' TITLE='LVols'>";
  althtmldef "LVols" as "LVols";
  latexdef "LVols" as "{\rm LVols}";
htmldef "Lines" as
    "<IMG SRC='_lines.gif' WIDTH=34 HEIGHT=19 ALT=' Lines' TITLE='Lines'>";
  althtmldef "Lines" as "Lines";
  latexdef "Lines" as "{\rm Lines}";
htmldef "Points" as
    "<IMG SRC='_points.gif' WIDTH=40 HEIGHT=19 ALT=' Points' TITLE='Points'>";
  althtmldef "Points" as "Points";
  latexdef "Points" as "{\rm Points}";
htmldef "PSubSp" as
    "<IMG SRC='_psubsp.gif' WIDTH=49 HEIGHT=19 ALT=' PSubSp' TITLE='PSubSp'>";
  althtmldef "PSubSp" as "PSubSp";
  latexdef "PSubSp" as "{\rm PSubSp}";
htmldef "pmap" as
    "<IMG SRC='_pmap.gif' WIDTH=36 HEIGHT=19 ALT=' pmap' TITLE='pmap'>";
  althtmldef "pmap" as "pmap";
  latexdef "pmap" as "{\rm pmap}";
htmldef "+P" as
    "<IMG SRC='plus.gif' WIDTH=13 HEIGHT=19 ALT=' +' TITLE='+'>" +
    "<IMG SRC='subcp.gif' WIDTH=8 HEIGHT=19 ALT='P' TITLE='P'>";
  althtmldef "+P" as "+<SUB>&#x1D443;</SUB>";
  latexdef "+P" as "+_P";
htmldef "PCl" as
    "<IMG SRC='_pcl.gif' WIDTH=23 HEIGHT=19 ALT=' PCl' TITLE='PCl'>";
  althtmldef "PCl" as "PCl";
  latexdef "PCl" as "{\rm PCl}";
htmldef "_|_P" as
    "<IMG SRC='perp.gif' WIDTH=11 HEIGHT=19 ALT=' _|_' TITLE='_|_'>" +
    "<IMG SRC='subcp.gif' WIDTH=8 HEIGHT=19 ALT='P' TITLE='P'>";
  althtmldef "_|_P" as "&#8869;<SUB>&#x1D443;</SUB>";
    /* 2-Jan-2016 reverted sans-serif */
  latexdef "_|_P" as "\perp_P";
htmldef "PSubCl" as
    "<IMG SRC='_psubcl.gif' WIDTH=47 HEIGHT=19 ALT=' PSubCl' TITLE='PSubCl'>";
  althtmldef "PSubCl" as "PSubCl";
  latexdef "PSubCl" as "{\rm PSubCl}";
/*
htmldef "sumP" as "sumP"; althtmldef "sumP" as "sumP";
htmldef "Indep" as "Indep"; althtmldef "Indep" as "Indep";
htmldef "BasesP" as "BasesP"; althtmldef "BasesP" as "BasesP";
htmldef "rankP" as "rankP"; althtmldef "rankP" as "rankP";
htmldef "PHyp" as "PHyp"; althtmldef "PHyp" as "PHyp";
htmldef "ww" as "ww"; althtmldef "ww" as "ww";
*/
htmldef "LHyp" as
    "<IMG SRC='_lhyp.gif' WIDTH=35 HEIGHT=19 ALT=' LHyp' TITLE='LHyp'>";
  althtmldef "LHyp" as "LHyp";
  latexdef "LHyp" as "{\rm LHyp}";
htmldef "LAut" as
    "<IMG SRC='_laut.gif' WIDTH=33 HEIGHT=19 ALT=' LAut' TITLE='LAut'>";
  althtmldef "LAut" as "LAut";
  latexdef "LAut" as "{\rm LAut}";
htmldef "WAtoms" as
    "<IMG SRC='_watoms.gif' WIDTH=53 HEIGHT=19 ALT=' WAtoms' TITLE='WAtoms'>";
  althtmldef "WAtoms" as "WAtoms";
  latexdef "WAtoms" as "{\rm WAtoms}";
htmldef "PAut" as
    "<IMG SRC='_paut.gif' WIDTH=30 HEIGHT=19 ALT=' PAut' TITLE='PAut'>";
  althtmldef "PAut" as "PAut";
  latexdef "PAut" as "{\rm PAut}";
htmldef "LDil" as
    "<IMG SRC='_ldil.gif' WIDTH=27 HEIGHT=19 ALT=' LDil' TITLE='LDil'>";
  althtmldef "LDil" as "LDil";
  latexdef "LDil" as "{\rm LDil}";
htmldef "LTrn" as
    "<IMG SRC='_ltrn.gif' WIDTH=33 HEIGHT=19 ALT=' LTrn' TITLE='LTrn'>";
  althtmldef "LTrn" as "LTrn";
  latexdef "LTrn" as "{\rm LTrn}";
htmldef "Dil" as
    "<IMG SRC='_dil.gif' WIDTH=18 HEIGHT=19 ALT=' Dil' TITLE='Dil'>";
  althtmldef "Dil" as "Dil";
  latexdef "Dil" as "{\rm Dil}";
htmldef "Trn" as
    "<IMG SRC='_trn.gif' WIDTH=23 HEIGHT=19 ALT=' Trn' TITLE='Trn'>";
  althtmldef "Trn" as "Trn";
  latexdef "Trn" as "{\rm Trn}";
/*
htmldef "trP" as "trP"; althtmldef "trP" as "trP";
*/
htmldef "trL" as
    "<IMG SRC='_trl.gif' WIDTH=21 HEIGHT=19 ALT=' trL' TITLE='trL'>";
  althtmldef "trL" as "trL";
  latexdef "trL" as "{\rm trL}";
htmldef "TGrp" as
    "<IMG SRC='_tgrp.gif' WIDTH=35 HEIGHT=19 ALT=' TGrp' TITLE='TGrp'>";
  althtmldef "TGrp" as "TGrp";
  latexdef "TGrp" as "{\rm TGrp}";
htmldef "TEndo" as
    "<IMG SRC='_tendo.gif' WIDTH=42 HEIGHT=19 ALT=' TEndo' TITLE='TEndo'>";
  althtmldef "TEndo" as "TEndo";
  latexdef "TEndo" as "{\rm TEndo}";
htmldef "EDRing" as
    "<IMG SRC='_edring.gif' WIDTH=49 HEIGHT=19 ALT=' EDRing' TITLE='EDRing'>";
  althtmldef "EDRing" as "EDRing";
  latexdef "EDRing" as "{\rm EDRing}";
htmldef "EDRingR" as
    "<IMG SRC='_edring.gif' WIDTH=49 HEIGHT=19 ALT=' EDRing' TITLE='EDRing'>" +
    "<IMG SRC='subcr.gif' WIDTH=9 HEIGHT=19 ALT='R' TITLE='R'>";
  althtmldef "EDRingR" as "EDRing<SUB>R</SUB>";
  latexdef "EDRingR" as "{\rm EDRing}_R";
htmldef "DVecA" as
    "<IMG SRC='_dveca.gif' WIDTH=44 HEIGHT=19 ALT=' DVecA' TITLE='DVecA'>";
  althtmldef "DVecA" as "DVecA";
  latexdef "DVecA" as "{\rm DVecA}";
htmldef "DIsoA" as
    "<IMG SRC='_disoa.gif' WIDTH=37 HEIGHT=19 ALT=' DIsoA' TITLE='DIsoA'>";
  althtmldef "DIsoA" as "DIsoA";
  latexdef "DIsoA" as "{\rm DIsoA}";
htmldef "DVecH" as
    "<IMG SRC='_dvech.gif' WIDTH=44 HEIGHT=19 ALT=' DVecH' TITLE='DVecH'>";
  althtmldef "DVecH" as "DVecH";
  latexdef "DVecH" as "{\rm DVecH}";
htmldef "ocA" as
    "<IMG SRC='_oca.gif' WIDTH=24 HEIGHT=19 ALT=' ocA' TITLE='ocA'>";
  althtmldef "ocA" as "ocA";
  latexdef "ocA" as "{\rm ocA}";
htmldef "vA" as "<IMG SRC='_va.gif' WIDTH=16 HEIGHT=19 ALT=' vA' TITLE='vA'>";
  althtmldef "vA" as "vA";
  latexdef "vA" as "{\rm vA}";
htmldef "DIsoB" as
    "<IMG SRC='_disob.gif' WIDTH=36 HEIGHT=19 ALT=' DIsoB' TITLE='DIsoB'>";
  althtmldef "DIsoB" as "DIsoB";
  latexdef "DIsoB" as "{\rm DIsoB}";
htmldef "DIsoC" as
    "<IMG SRC='_disoc.gif' WIDTH=37 HEIGHT=19 ALT=' DIsoC' TITLE='DIsoC'>";
  althtmldef "DIsoC" as "DIsoC";
  latexdef "DIsoC" as "{\rm DIsoC}";
htmldef "DIsoH" as
    "<IMG SRC='_disoh.gif' WIDTH=37 HEIGHT=19 ALT=' DIsoH' TITLE='DIsoH'>";
  althtmldef "DIsoH" as "DIsoH";
  latexdef "DIsoH" as "{\rm DIsoH}";
htmldef "ocH" as
    "<IMG SRC='_och.gif' WIDTH=24 HEIGHT=19 ALT=' ocH' TITLE='ocH'>";
  althtmldef "ocH" as "ocH";
  latexdef "ocH" as "{\rm ocH}";
htmldef "joinH" as "joinH";
  althtmldef "joinH" as "joinH";
  latexdef "joinH" as "{\rm joinH}";
htmldef "LPol" as "LPol";
  althtmldef "LPol" as "LPol";
  latexdef "LPol" as "{\rm LPol}";
htmldef "LCDual" as "LCDual";
  althtmldef "LCDual" as "LCDual";
  latexdef "LCDual" as "{\rm LCDual}";
htmldef "mapd" as "mapd";
  althtmldef "mapd" as "mapd";
  latexdef "mapd" as "{\rm mapd}";
htmldef "HVMap" as "HVMap";
  althtmldef "HVMap" as "HVMap";
  latexdef "HVMap" as "{\rm HVMap}";
/*
htmldef "eImage" as "eImage";
  althtmldef "eImage" as "eImage";
  latexdef "eImage" as "{\rm eImage}";
*/
htmldef "HDMap1" as "HDMap1";
  althtmldef "HDMap1" as "HDMap1";
  latexdef "HDMap1" as "{\rm HDMap1}";
htmldef "HDMap" as "HDMap";
  althtmldef "HDMap" as "HDMap";
  latexdef "HDMap" as "{\rm HDMap}";
htmldef "HGMap" as "HGMap";
  althtmldef "HGMap" as "HGMap";
  latexdef "HGMap" as "{\rm HGMap}";
htmldef "HLHil" as "HLHil";
  althtmldef "HLHil" as "HLHil";
  latexdef "HLHil" as "{\rm HLHil}";
/*
htmldef "*HRing" as "*HRing";
  althtmldef "*HRing" as "*HRing";
  latexdef "*HRing" as "\ast{\rm HRing}";
htmldef "hmap" as "hmap";
  althtmldef "hmap" as "hmap";
  latexdef "hmap" as "{\rm hmap}";
htmldef "gmap" as "gmap";
  althtmldef "gmap" as "gmap";
  latexdef "gmap" as "{\rm gmap}";
htmldef "mapd" as "mapd";
  althtmldef "mapd" as "mapd";
  latexdef "mapd" as "{\rm mapd}";
htmldef "GrpEndo" as "GrpEndo"; althtmldef "GrpEndo" as "GrpEndo";
htmldef "DVecAEndo" as "DVecAEndo"; althtmldef "DVecAEndo" as "DVecAEndo";
htmldef "ERing" as "ERing"; althtmldef "ERing" as "ERing";
htmldef "TPEndo" as "TPEndo"; althtmldef "TPEndo" as "TPEndo";
htmldef "DRing" as "DRing"; althtmldef "DRing" as "DRing";
htmldef "DVecA" as "DVecA"; althtmldef "DVecA" as "DVecA";
htmldef "DVIsoPre" as "DVIsoPre"; althtmldef "DVIsoPre" as "DVIsoPre";
htmldef "DVecB" as "DVecB"; althtmldef "DVecB" as "DVecB";
htmldef "DVecH" as "DVecH"; althtmldef "DVecH" as "DVecH";
htmldef "ee" as "ee"; althtmldef "ee" as "ee";
htmldef "DVIsoA" as "DVIsoA"; althtmldef "DVIsoA" as "DVIsoA";
htmldef "qtr" as "qtr"; althtmldef "qtr" as "qtr";
htmldef "DVIsoB" as "DVIsoB"; althtmldef "DVIsoB" as "DVIsoB";
htmldef "DVIsoC" as "DVIsoC"; althtmldef "DVIsoC" as "DVIsoC";
htmldef "DVIsoH" as "DVIsoH"; althtmldef "DVIsoH" as "DVIsoH";
htmldef "S_|_" as "S_|_"; althtmldef "S_|_" as "S_|_";
htmldef "Ropp" as "Ropp"; althtmldef "Ropp" as "Ropp";
htmldef "Vldual" as "Vldual"; althtmldef "Vldual" as "Vldual";
htmldef "vecdom" as "vecdom"; althtmldef "vecdom" as "vecdom";
htmldef "ker" as "ker"; althtmldef "ker" as "ker";
htmldef "mapd" as "mapd"; althtmldef "mapd" as "mapd";
htmldef "eimage" as "eimage"; althtmldef "eimage" as "eimage";
htmldef "hmap" as "hmap"; althtmldef "hmap" as "hmap";
htmldef "gmap" as "gmap"; althtmldef "gmap" as "gmap";
htmldef "HLtoHil" as "HLtoHil"; althtmldef "HLtoHil" as "HLtoHil";
*/
/* End of Norm Megill's mathbox */

/* Mathbox of Richard Penner */
htmldef "r*" as "<IMG SRC='r.gif' WIDTH=7 HEIGHT=19 ALT=' r' TITLE='r'>" +
    "<IMG SRC='ast.gif' WIDTH=7 HEIGHT=19 ALT='*' TITLE='*'>";
  althtmldef "r*" as "r*";
  latexdef "r*" as "{\rm r}*";
htmldef "hereditary" as " hereditary ";
  althtmldef "hereditary" as " hereditary ";
  latexdef "hereditary" as "{\rm hereditary}";
/* End of Richard Penner's mathbox */

/* Mathbox of Glauco Siliprandi */
htmldef "SAlg" as "SAlg"; althtmldef "SAlg" as "SAlg";
  latexdef "SAlg" as "{\rm SAlg}";
htmldef "SalOn" as "SalOn"; althtmldef "SalOn" as "SalOn";
  latexdef "SalOn" as "{\rm SalOn}";
htmldef "SalGen" as "SalGen"; althtmldef "SalGen" as "SalGen";
  latexdef "SalGen" as "{\rm SalGen}";
htmldef "sum^" as "&Sigma;<SUP><small>^</small></SUP>";
  althtmldef "sum^" as "&Sigma;<SUP><small>^</small></SUP>";
  latexdef "sum^" as "\Sigma^\string^";
htmldef "Meas" as "Meas"; althtmldef "Meas" as "Meas";
  latexdef "Meas" as "{\rm Meas}";
htmldef "OutMeas" as "OutMeas"; althtmldef "OutMeas" as "OutMeas";
  latexdef "OutMeas" as "{\rm OutMeas}";
htmldef "CaraGen" as "CaraGen"; althtmldef "CaraGen" as "CaraGen";
  latexdef "CaraGen" as "{\rm CaraGen}";
htmldef "voln*" as "voln<SUP><small>*</small></SUP>";
  althtmldef "voln*" as "voln*";
  latexdef "voln*" as "{\rm voln*}";
htmldef "voln" as "voln"; althtmldef "voln" as "voln";
  latexdef "voln" as "{\rm voln}";
htmldef "SMblFn" as "SMblFn"; althtmldef "SMblFn" as "SMblFn";
  latexdef "SMblFn" as "{\rm SMblFn}";
htmldef "liminf" as "liminf";
  althtmldef "liminf" as 'lim inf';
  latexdef "liminf" as "\liminf";
htmldef "~~>*" as "~~&gt;*";
  althtmldef "~~>*" as "~~>*";
  latexdef "~~>*" as "\rightsquigarrow *";
/* End of Glauco Siliprandi's mathbox */

/* End of typesetting definition section */
$)
$( End $[ set-typeset.mm $] $)


$( Begin $[ set-hilsp.mm $] $)
$(
###############################################################################
  COMPLEX HILBERT SPACE EXPLORER (DEPRECATED)
###############################################################################

  This part contains the definitions and theorems used by the Hilbert Space
  Explorer (HSE), ~ mmhil.html .  Because it axiomatizes a single complex
  Hilbert space whose existence is assumed, its usefulness is limited.  For
  example, it cannot work with real or quaternion Hilbert spaces and it cannot
  study relationships between two Hilbert spaces.  More information can be
  found on the Hilbert Space Explorer page.

  Future development should instead work with general Hilbert spaces as defined
  by ~ df-hil ; note that ~ df-hil uses extensible structures.

  The intent is for this deprecated section to be deleted once all its theorems
  have been translated into extensible structure versions (or are not useful).
  Many of the theorems in this section have already been translated to
  extensible structure versions, but there is still a lot in this section that
  might be useful for future reference.  It is much easier to translate these
  by hand from this section than to start from scratch from textbook proofs,
  since the HSE omits no details.

$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Axiomatization of complex pre-Hilbert spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Basic Hilbert space definitions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axioms for a Hilbert space $)
  $( We assume we've constructed a fixed constant class ` ~H ` and
     associated operations, and we postulate their properties. $)

  $c ~H $.
  $c +h $.
  $c .h $.
  $c 0h $.
  $c -h $.
  $c .ih $.
  $c normh $.

  $c Cauchy $.
  $c ~~>v $.
  $c SH $.
  $c CH $.
  $c _|_ $.
  $c +H $.
  $c span $.
  $c vH $.
  $c \/H $.
  $c 0H $.
  $c C_H $.
  $c projh $.
  $c 0hop $.
  $c Iop $.
  $c +op $.
  $c .op $.
  $c -op $.
  $c +fn $.
  $c .fn $.
  $c normop $.
  $c ContOp $.
  $c LinOp $.
  $c BndLinOp $.
  $c UniOp $.
  $c HrmOp $.
  $c normfn $.
  $c null $.
  $c ContFn $.
  $c LinFn $.
  $c adjh $.
  $c bra $.
  $c ketbra $.
  $c <_op $.
  $c eigvec $.
  $c eigval $.
  $c Lambda $.
  $c States $.
  $c CHStates $.
  $c HAtoms $.
  $c <oH $.
  $c MH $.
  $c MH* $.
  $( Extend class notation with Hilbert vector space. $)
  chil $a class ~H $.

  $( Extend class notation with vector addition in Hilbert space.  In the
     literature, the subscript "v" is omitted, but we need it to avoid
     ambiguity with complex number addition ` + ` ~ caddc . $)
  cva $a class +h $.
  $( Extend class notation with scalar multiplication in Hilbert space.  In the
     literature scalar multiplication is usually indicated by juxtaposition,
     but we need an explicit symbol to prevent ambiguity. $)
  csm $a class .h $.
  $( Extend class notation with inner (scalar) product in Hilbert space.  In
     the literature, the inner product of ` A ` and ` B ` is usually written
     ` <. A , B >. ` but our operation notation allows us to use existing
     theorems about operations and also eliminates ambiguity with the
     definition of an ordered pair ~ df-op . $)
  csp $a class .ih $.

  $( $j primitive 'cva' 'csm' 'csp'; $)

  $( Extend class notation with the norm function in Hilbert space.  In the
     literature, the norm of ` A ` is usually written "|| ` A ` ||", but we use
     function notation to take advantage of our existing theorems about
     functions. $)
  cno $a class normh $.
  $( Extend class notation with zero vector in Hilbert space. $)
  c0v $a class 0h $.
  $( Extend class notation with vector subtraction in Hilbert space. $)
  cmv $a class -h $.
  $( Extend class notation with set of Cauchy sequences in Hilbert space. $)
  ccau $a class Cauchy $.
  $( Extend class notation with convergence relation in Hilbert space. $)
  chli $a class ~~>v $.
  $( Extend class notation with set of subspaces of a Hilbert space. $)
  csh $a class SH $.
  $( Extend class notation with set of closed subspaces of a Hilbert space. $)
  cch $a class CH $.
  $( Extend class notation with orthogonal complement in ` CH ` . $)
  cort $a class _|_ $.
  $( Extend class notation with subspace sum in ` CH ` . $)
  cph $a class +H $.
  $( Extend class notation with subspace span in ` CH ` . $)
  cspn $a class span $.
  $( Extend class notation with join in ` CH ` . $)
  chj $a class vH $.
  $( Extend class notation with supremum of a collection in ` CH ` . $)
  chsup $a class \/H $.
  $( Extend class notation with zero of ` CH ` . $)
  c0h $a class 0H $.
  $( Extend class notation with the commutes relation on a Hilbert lattice. $)
  ccm $a class C_H $.
  $( Extend class notation with set of projections on a Hilbert space. $)
  cpjh $a class projh $.
  $( Extend class notation with sum of Hilbert space operators. $)
  chos $a class +op $.
  $( Extend class notation with scalar product of a Hilbert space operator. $)
  chot $a class .op $.
  $( Extend class notation with difference of Hilbert space operators. $)
  chod $a class -op $.
  $( Extend class notation with sum of Hilbert space functionals. $)
  chfs $a class +fn $.
  $( Extend class notation with scalar product of Hilbert space functional. $)
  chft $a class .fn $.
  $( Extend class notation with the Hilbert space zero operator. $)
  ch0o $a class 0hop $.
  $( Extend class notation with Hilbert space identity operator. $)
  chio $a class Iop $.
  $( Extend class notation with the operator norm function. $)
  cnop $a class normop $.
  $( Extend class notation with set of continuous Hilbert space operators. $)
  ccop $a class ContOp $.
  $( Extend class notation with set of linear Hilbert space operators. $)
  clo $a class LinOp $.
  $( Extend class notation with set of bounded linear operators. $)
  cbo $a class BndLinOp $.
  $( Extend class notation with set of unitary Hilbert space operators. $)
  cuo $a class UniOp $.
  $( Extend class notation with set of Hermitian Hilbert space operators. $)
  cho $a class HrmOp $.
  $( Extend class notation with the functional norm function. $)
  cnmf $a class normfn $.
  $( Extend class notation with the functional nullspace function. $)
  cnl $a class null $.
  $( Extend class notation with set of continuous Hilbert space functionals. $)
  ccnfn $a class ContFn $.
  $( Extend class notation with set of linear Hilbert space functionals. $)
  clf $a class LinFn $.
  $( Extend class notation with Hilbert space adjoint function. $)
  cado $a class adjh $.
  $( Extend class notation with the bra of a vector in Dirac bra-ket
     notation. $)
  cbr $a class bra $.
  $( Extend class notation with the outer product of two vectors in Dirac
     bra-ket notation. $)
  ck $a class ketbra $.
  $( Extend class notation with positive operator ordering. $)
  cleo $a class <_op $.
  $( Extend class notation with Hilbert space eigenvector function. $)
  cei $a class eigvec $.
  $( Extend class notation with Hilbert space eigenvalue function. $)
  cel $a class eigval $.
  $( Extend class notation with the spectrum of an operator. $)
  cspc $a class Lambda $.
  $( Extend class notation with set of states on a Hilbert lattice. $)
  cst $a class States $.
  $( Extend class notation with set of Hilbert-space-valued states on a Hilbert
     lattice. $)
  chst $a class CHStates $.
  $( Extend class notation with the covers relation on a Hilbert lattice. $)
  ccv $a class <oH $.
  $( Extend class notation with set of atoms on a Hilbert lattice. $)
  cat $a class HAtoms $.
  $( Extend class notation with the modular pair relation on a Hilbert
     lattice. $)
  cmd $a class MH $.
  $( Extend class notation with the dual modular pair relation on a Hilbert
     lattice. $)
  cdmd $a class MH* $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Preliminary ZFC lemmas
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( To convert to pure ZFC, put the definitions of ` +h ` , ` .h ` ,
     and ` .ih ` here. $)

  $( Define the function for the norm of a vector of Hilbert space.  See
     ~ normval for its value and ~ normcl for its closure.  Theorems
     ~ norm-i-i , ~ norm-ii-i , and ~ norm-iii-i show it has the expected
     properties of a norm.  In the literature, the norm of ` A ` is usually
     written "|| ` A ` ||", but we use function notation to take advantage of
     our existing theorems about functions.  Definition of norm in [Beran]
     p. 96.  (Contributed by NM, 6-Jun-2008.)  (New usage is discouraged.) $)
  df-hnorm $a |- normh = ( x e. dom dom .ih |-> ( sqrt ` ( x .ih x ) ) ) $.

  $( Define base set of Hilbert space, for use if we want to develop Hilbert
     space independently from the axioms (see comments in ~ ax-hilex ).  Note
     that ` ~H ` is considered a primitive in the Hilbert space axioms below,
     and we don't use this definition outside of this section.  This definition
     can be proved independently from those axioms as theorem ~ hhba .
     (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
  df-hba $a |- ~H = ( BaseSet ` <. <. +h , .h >. , normh >. ) $.

  $( Define the zero vector of Hilbert space.  Note that ` 0vec ` is considered
     a primitive in the Hilbert space axioms below, and we don't use this
     definition outside of this section.  It is proved from the axioms as
     theorem ~ hh0v .  (Contributed by NM, 31-May-2008.)
     (New usage is discouraged.) $)
  df-h0v $a |- 0h = ( 0vec ` <. <. +h , .h >. , normh >. ) $.

  ${
    $d x y $.
    $( Define vector subtraction.  See ~ hvsubvali for its value and ~ hvsubcli
       for its closure.  (Contributed by NM, 6-Jun-2008.)
       (New usage is discouraged.) $)
    df-hvsub $a |- -h = ( x e. ~H , y e. ~H |-> ( x +h ( -u 1 .h y ) ) ) $.
  $}

  ${
    $d x y z f w $.
    $( Define the limit relation for Hilbert space.  See ~ hlimi for its
       relational expression.  Note that ` f : NN --> ~H ` is an infinite
       sequence of vectors, i.e. a mapping from integers to vectors.
       Definition of converge in [Beran] p. 96.  (Contributed by NM,
       6-Jun-2008.)  (New usage is discouraged.) $)
    df-hlim $a |- ~~>v = { <. f , w >. | ( ( f : NN --> ~H /\ w e. ~H ) /\
          A. x e. RR+ E. y e. NN A. z e. ( ZZ>= ` y )
                ( normh ` ( ( f ` z ) -h w ) ) < x ) } $.
  $}

  ${
    $d x y z f $.
    $( Define the set of Cauchy sequences on a Hilbert space.  See ~ hcau for
       its membership relation.  Note that ` f : NN --> ~H ` is an infinite
       sequence of vectors, i.e. a mapping from integers to vectors.
       Definition of Cauchy sequence in [Beran] p. 96.  (Contributed by NM,
       6-Jun-2008.)  (New usage is discouraged.) $)
    df-hcau $a |- Cauchy = { f e. ( ~H ^m NN ) |
          A. x e. RR+ E. y e. NN A. z e. ( ZZ>= ` y )
             ( normh ` ( ( f ` y ) -h ( f ` z ) ) ) < x } $.
  $}

  ${
    h2h.1 $e |- U = <. <. +h , .h >. , normh >. $.
    h2h.2 $e |- U e. NrmCVec $.
    $( The group (addition) operation of Hilbert space.  (Contributed by NM,
       31-May-2008.)  (New usage is discouraged.) $)
    h2hva $p |- +h = ( +v ` U ) $=
      ( cva csm cop cno cpv cfv c1st eqid vafval opex cvv wcel cnv w3a eqeltrri
      op1st fveq2i nvex ax-mp simp3i simp1i simp2i 3eqtrri eqtr4i ) DDEFZGFZHIZ
      AHIUJUIJIZJIUHJIDUIUJUJKLUKUHJUHGDEMDNOZENOZGNOZUIPOULUMUNQAUIPBCREDGUAUB
      ZUCSTDEULUMUNUOUDULUMUNUOUESUFAUIHBTUG $.

    $( The scalar product operation of Hilbert space.  (Contributed by NM,
       31-May-2008.)  (New usage is discouraged.) $)
    h2hsm $p |- .h = ( .sOLD ` U ) $=
      ( csm cva cop cno cns cfv c1st c2nd eqid smfval opex cvv cnv w3a eqeltrri
      wcel fveq2i nvex ax-mp simp3i op1st simp1i simp2i op2nd 3eqtrri eqtr4i )
      DEDFZGFZHIZAHIULUKJIZKIUJKIDULUKULLMUMUJKUJGEDNEOSZDOSZGOSZUKPSUNUOUPQAUK
      PBCRDEGUAUBZUCUDTEDUNUOUPUQUEUNUOUPUQUFUGUHAUKHBTUI $.

    $( The norm function of Hilbert space.  (Contributed by NM, 5-Jun-2008.)
       (New usage is discouraged.) $)
    h2hnm $p |- normh = ( normCV ` U ) $=
      ( cnmcv cfv cva csm cop cno c2nd eqid nmcvfval opex cvv wcel cnv eqeltrri
      fveq2i w3a nvex ax-mp simp3i op2nd 3eqtrri ) ADEFGHZIHZDEZUFJEIAUFDBRUFUG
      UGKLUEIFGMFNOZGNOZINOZUFPOUHUIUJSAUFPBCQGFITUAUBUCUD $.

    ${
      $d x y U $.
      h2h.4 $e |- ~H = ( BaseSet ` U ) $.
      $( The vector subtraction operation of Hilbert space.  (Contributed by
         NM, 6-Jun-2008.)  (Revised by Mario Carneiro, 23-Dec-2013.)
         (New usage is discouraged.) $)
      h2hvs $p |- -h = ( -v ` U ) $=
        ( vx vy cmv chil cv c1 cneg csm co cva cmpt2 cnsb cfv df-hvsub cnv wcel
        wceq h2hva h2hsm eqid nvmfval ax-mp eqtr4i ) GEFHHEIJKFILMNMOZAPQZEFRAS
        TUIUHUACEFLANUIHDABCUBABCUCUIUDUEUFUG $.
    $}

    ${
      h2hm.4 $e |- ~H = ( BaseSet ` U ) $.
      h2hm.5 $e |- D = ( IndMet ` U ) $.
      $( Value of the distance function of the metric space of Hilbert space.
         (Contributed by NM, 6-Jun-2008.)  (New usage is discouraged.) $)
      h2hmetdval $p |- ( ( A e. ~H /\ B e. ~H )
                  -> ( A D B ) = ( normh ` ( A -h B ) ) ) $=
        ( cnv wcel chil co cmv cno cfv wceq h2hvs h2hnm imsdval mp3an1 ) DIJAKJ
        BKJABCLABMLNOPFABCDMNKGDEFGQDEFRHST $.
    $}
  $}

  ${
    $d f j k x D $.
    h2hc.1 $e |- U = <. <. +h , .h >. , normh >. $.
    h2hc.2 $e |- U e. NrmCVec $.
    h2hc.3 $e |- ~H = ( BaseSet ` U ) $.
    h2hc.4 $e |- D = ( IndMet ` U ) $.
    $( The Cauchy sequences of Hilbert space.  (Contributed by NM, 6-Jun-2008.)
       (Revised by Mario Carneiro, 13-May-2014.)
       (New usage is discouraged.) $)
    h2hcau $p |- Cauchy = ( ( Cau ` D ) i^i ( ~H ^m NN ) ) $=
      ( vj vf vk vx cv cfv co clt wral cn crp chil wcel wa cmv cno wbr cuz wrex
      cmap crab cab ccau cca df-rab df-hcau elin ancom wf wb hlex nnex elmap c1
      cin nnuz cnv cxmt imsxmet mp1i 1zzd eqidd id iscauf ffvelrn adantr eluznn
      sylan2 anassrs h2hmetdval syl2anc ralbidva rexbidva ralbidv bitrd pm5.32i
      wceq breq1d sylbi 3bitri abbi2i 3eqtr4i ) GKZHKZLZIKZWJLZUAMUBLZJKZNUCZIW
      IUDLZOZGPUEZJQOZHRPUFMZUGWJXASZWTTZHUHUIAUJLZXAVAZWTHXAUKJGIHULXCHXEWJXES
      WJXDSZXBTXBXFTXCWJXDXAUMXFXBUNXBXFWTXBPRWJUOZXFWTUPRPWJBREUQURUSXGXFWKWMA
      MZWONUCZIWQOZGPUEZJQOWTXGJWMWKAGIWJUTRPVBBVCSARVDLSXGDABREFVEVFXGVGXGWLPS
      ZTWMVHXGWIPSZTZWKVHXGVIVJXGXKWSJQXGXJWRGPXNXIWPIWQXNWLWQSZTZXHWNWONXPWKRS
      ZWMRSZXHWNWCXNXQXOPRWIWJVKVLXGXMXOXRXMXOTXGXLXRWLWIVMPRWLWJVKVNVOWKWMABCD
      EFVPVQWDVRVSVTWAWEWBWFWGWH $.
  $}

  ${
    $d f x y J $.  $d f j k x y D $.
    h2hl.1 $e |- U = <. <. +h , .h >. , normh >. $.
    h2hl.2 $e |- U e. NrmCVec $.
    h2hl.3 $e |- ~H = ( BaseSet ` U ) $.
    h2hl.4 $e |- D = ( IndMet ` U ) $.
    h2hl.5 $e |- J = ( MetOpen ` D ) $.
    $( The limit sequences of Hilbert space.  (Contributed by NM, 6-Jun-2008.)
       (Revised by Mario Carneiro, 13-May-2014.)
       (New usage is discouraged.) $)
    h2hlm $p |- ~~>v = ( ( ~~>t ` J ) |` ( ~H ^m NN ) ) $=
      ( vf vx vk vy vj chli cfv chil cn cv wcel wa clm cmap co cres cmv cno clt
      wf wbr cuz wral crp df-hlim relopabi relres cop copab eleq2i opabid ancom
      wrex hlex nnex elmap anbi1i df-br c1 cxmt imsxmet mp1i nnuz 1zzd eqidd id
      cnv lmmbrf wb eluznn ffvelrn h2hmetdval sylan breq1d an32s sylan2 anassrs
      wceq ralbidva rexbidva ralbidv pm5.32da bitrd syl5bbr pm5.32i 3bitrri vex
      anass opelres 3bitr4i 3bitri eqrelriiv ) IJNCUAOZPQUBUCZUDZQPIRZUHZJRZPSZ
      TZKRZXDOZXFUEUCUFOZLRZUGUIZKMRZUJOZUKZMQVAZLULUKZTZIJNLMKJIUMZUNXAXBUOXDX
      FUPZNSYAXSIJUQZSXSYAXCSZNYBYAXTURXSIJUSXEXGXRTZTZYAXASZXDXBSZTZXSYCYHYGYF
      TXEYFTYEYFYGUTYGXEYFPQXDBPFVBVCVDVEXEYFYDYFXDXFXAUIZXEYDXDXFXAVFXEYIXGXJX
      FAUCZXLUGUIZKXOUKZMQVAZLULUKZTYDXELXJAXFMKXDCVGPQHBVOSAPVHOSXEEABPFGVIVJV
      KXEVLXEXIQSZTZXJVMXEVNVPXEXGYNXRXHYMXQLULXHYLXPMQXHXNQSZTYKXMKXOXHYQXIXOS
      ZYKXMVQZYQYRTXHYOYSXIXNVRXEYOXGYSYPXGTYJXKXLUGYPXJPSXGYJXKWFQPXIXDVSXJXFA
      BDEFGVTWAWBWCWDWEWGWHWIWJWKWLWMWNXEXGXRWPXDXFXAXBJWOWQWRWSWT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the Hilbert space axioms from ZFC set theory
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Before introducing the 18 axioms for Hilbert space, we first prove them
  as the conclusions of theorems ~ axhilex-zf through ~ axhcompl-zf , using ZFC
  set theory only.  These show that if we are given a known, fixed Hilbert
  space ` U = <. <. +h , .h >. , normh >. ` that satisfies their
  hypotheses, then we can derive the Hilbert space axioms as theorems of
  ZFC set theory.  In practice, in order to use these theorems to convert
  the Hilbert Space explorer to a ZFC-only subtheory, we would also have
  to provide definitions for the 3 (otherwise primitive) class constants
  ` +h ` , ` .h ` , and ` .ih ` before ~ df-hnorm above.  See also the
  comment in ~ ax-hilex .

$)

  ${
    $d x F $.  $d x U $.
    axhil.1 $e |- U = <. <. +h , .h >. , normh >. $.
    axhil.2 $e |- U e. CHilOLD $.
    $( Derive axiom ~ ax-hilex from Hilbert space under ZF set theory.
       (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
    axhilex-zf $p |- ~H e. _V $=
      ( cva csm cop cno chil df-hba hlex ) DEFGFHIJ $.

    $( Derive axiom ~ ax-hfvadd from Hilbert space under ZF set theory.
       (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
    axhfvadd-zf $p |- +h : ( ~H X. ~H ) --> ~H $=
      ( chlo wcel chil cxp cva wf csm cop cno cba cfv df-hba fveq2i hlnvi h2hva
      eqtr4i hladdf ax-mp ) ADEFFGFHICAHFFHJKLKZMNAMNOAUBMBPSABACQRTUA $.

    $( Derive axiom ~ ax-hvcom from Hilbert space under ZF set theory.
       (Contributed by NM, 27-May-2008.)  (New usage is discouraged.) $)
    axhvcom-zf $p |- ( ( A e. ~H /\ B e. ~H ) -> ( A +h B ) = ( B +h A ) ) $=
      ( chlo wcel chil cva wceq csm cop cno cba cfv df-hba fveq2i eqtr4i hlnvi
      co h2hva hlcom mp3an1 ) CFGAHGBHGABITBAITJEABCIHHIKLMLZNOCNOPCUDNDQRCDCES
      UAUBUC $.

    $( Derive axiom ~ ax-hvass from Hilbert space under ZF set theory.
       (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
    axhvass-zf $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) -> ( ( A +h B ) +h C )
      = ( A +h ( B +h C ) ) ) $=
      ( chlo wcel chil w3a cva co wceq csm cop cno cba cfv df-hba fveq2i eqtr4i
      hlnvi h2hva hlass mpan ) DGHAIHBIHCIHJABKLCKLABCKLKLMFABCDKIIKNOPOZQRDQRS
      DUFQETUADEDFUBUCUDUE $.

    $( Derive axiom ~ ax-hv0cl from Hilbert space under ZF set theory.
       (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
    axhv0cl-zf $p |- 0h e. ~H $=
      ( chlo wcel c0v chil cva csm cop cno cba df-hba fveq2i eqtr4i cn0v df-h0v
      cfv hl0cl ax-mp ) ADEFGECAGFGHIJKJZLRALRMAUALBNOFUAPRAPRQAUAPBNOST $.

    $( Derive axiom ~ ax-hvaddid from Hilbert space under ZF set theory.
       (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
    axhvaddid-zf $p |- ( A e. ~H -> ( A +h 0h ) = A ) $=
      ( chlo wcel chil c0v cva co wceq csm cop cno cba cfv df-hba fveq2i eqtr4i
      cn0v hlnvi h2hva df-h0v hladdid mpan ) BEFAGFAHIJAKDABIGHGILMNMZOPBOPQBUF
      OCRSBCBDUAUBHUFTPBTPUCBUFTCRSUDUE $.

    $( Derive axiom ~ ax-hfvmul from Hilbert space under ZF set theory.
       (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
    axhfvmul-zf $p |- .h : ( CC X. ~H ) --> ~H $=
      ( chlo wcel cc chil cxp csm wf cva cop cno cba df-hba fveq2i eqtr4i hlnvi
      cfv h2hsm hlmulf ax-mp ) ADEFGHGIJCIAGGKILMLZNSANSOAUCNBPQABACRTUAUB $.

    $( Derive axiom ~ ax-hvmulid from Hilbert space under ZF set theory.
       (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
    axhvmulid-zf $p |- ( A e. ~H -> ( 1 .h A ) = A ) $=
      ( chlo wcel chil c1 csm co cva cop cno cba cfv df-hba fveq2i eqtr4i hlnvi
      wceq h2hsm hlmulid mpan ) BEFAGFHAIJATDAIBGGKILMLZNOBNOPBUDNCQRBCBDSUAUBU
      C $.

    $( Derive axiom ~ ax-hvmulass from Hilbert space under ZF set theory.
       (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
    axhvmulass-zf $p |- ( ( A e. CC /\ B e. CC /\ C e. ~H )
      -> ( ( A x. B ) .h C ) = ( A .h ( B .h C ) ) ) $=
      ( chlo wcel cc chil w3a cmul co csm wceq cva cop cno cba cfv df-hba hlnvi
      fveq2i eqtr4i h2hsm hlmulass mpan ) DGHAIHBIHCJHKABLMCNMABCNMNMOFABCNDJJP
      NQRQZSTDSTUADUHSEUCUDDEDFUBUEUFUG $.

    $( Derive axiom ~ ax-hvdistr1 from Hilbert space under ZF set theory.
       (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
    axhvdistr1-zf $p |- ( ( A e. CC /\ B e. ~H /\ C e. ~H )
      -> ( A .h ( B +h C ) ) = ( ( A .h B ) +h ( A .h C ) ) ) $=
      ( chlo wcel cc chil w3a cva co csm wceq cop cno cba cfv df-hba hlnvi hldi
      fveq2i eqtr4i h2hva h2hsm mpan ) DGHAIHBJHCJHKABCLMNMABNMACNMLMOFABCNDLJJ
      LNPQPZRSDRSTDUHREUCUDDEDFUAZUEDEUIUFUBUG $.

    $( Derive axiom ~ ax-hvdistr2 from Hilbert space under ZF set theory.
       (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
    axhvdistr2-zf $p |- ( ( A e. CC /\ B e. CC /\ C e. ~H )
      -> ( ( A + B ) .h C ) = ( ( A .h C ) +h ( B .h C ) ) ) $=
      ( chlo wcel cc chil w3a caddc co csm cva wceq cop cno cba cfv hlnvi h2hva
      df-hba fveq2i eqtr4i h2hsm hldir mpan ) DGHAIHBIHCJHKABLMCNMACNMBCNMOMPFA
      BCNDOJJONQRQZSTDSTUCDUISEUDUEDEDFUAZUBDEUJUFUGUH $.

    $( Derive axiom ~ ax-hvmul0 from Hilbert space under ZF set theory.
       (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
    axhvmul0-zf $p |- ( A e. ~H -> ( 0 .h A ) = 0h ) $=
      ( chlo wcel chil cc0 csm c0v wceq cva cop cno cba cfv fveq2i eqtr4i cn0v
      co df-hba hlnvi h2hsm df-h0v hlmul0 mpan ) BEFAGFHAITJKDAIBGJGLIMNMZOPBOP
      UABUGOCQRBCBDUBUCJUGSPBSPUDBUGSCQRUEUF $.

    ${
      axhfi.1 $e |- .ih = ( .iOLD ` U ) $.
      $( Derive axiom ~ ax-hfi from Hilbert space under ZF set theory.
         (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
      axhfi-zf $p |- .ih : ( ~H X. ~H ) --> CC $=
        ( chlo wcel chil cxp cc csp wf cva csm cop cno cba df-hba fveq2i eqtr4i
        cfv hlipf ax-mp ) AEFGGHIJKCJAGGLMNONZPTAPTQAUCPBRSDUAUB $.

      $( Derive axiom ~ ax-his1 from Hilbert space under ZF set theory.
         (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
      axhis1-zf $p |- ( ( A e. ~H /\ B e. ~H )
        -> ( A .ih B ) = ( * ` ( B .ih A ) ) ) $=
        ( chlo wcel chil csp co ccj cfv wceq cva csm cop cno cba df-hba fveq2i
        eqtr4i hlipcj mp3an1 ) CGHAIHBIHABJKBAJKLMNEABJCIIOPQRQZSMCSMTCUESDUAUB
        FUCUD $.

      $( Derive axiom ~ ax-his2 from Hilbert space under ZF set theory.
         (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
      axhis2-zf $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H )
        -> ( ( A +h B ) .ih C ) = ( ( A .ih C ) + ( B .ih C ) ) ) $=
        ( chlo wcel chil w3a cva co csp caddc wceq csm cop cba cfv df-hba hlnvi
        cno fveq2i eqtr4i h2hva hlipdir mpan ) DHIAJIBJICJIKABLMCNMACNMBCNMOMPF
        ABCNDLJJLQRUCRZSTDSTUADUISEUDUEDEDFUBUFGUGUH $.

      $( Derive axiom ~ ax-his3 from Hilbert space under ZF set theory.
         (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
      axhis3-zf $p |- ( ( A e. CC /\ B e. ~H /\ C e. ~H )
        -> ( ( A .h B ) .ih C ) = ( A x. ( B .ih C ) ) ) $=
        ( chlo wcel cc chil w3a csm co csp cmul wceq cop cba cfv cva cno df-hba
        fveq2i eqtr4i hlnvi h2hsm hlipass mpan ) DHIAJIBKICKILABMNCONABCONPNQFA
        BCOMDKKUAMRUBRZSTDSTUCDUJSEUDUEDEDFUFUGGUHUI $.

      $( Derive axiom ~ ax-his4 from Hilbert space under ZF set theory.
         (Contributed by NM, 31-May-2008.)  (New usage is discouraged.) $)
      axhis4-zf $p |- ( ( A e. ~H /\ A =/= 0h ) -> 0 < ( A .ih A ) ) $=
        ( chlo wcel chil c0v wne cc0 csp co clt cop cba cfv fveq2i eqtr4i cn0v
        wbr cva csm cno df-hba df-h0v hlipgt0 mp3an1 ) BFGAHGAIJKAALMNUADALBHIH
        UBUCOUDOZPQBPQUEBUIPCRSIUITQBTQUFBUITCRSEUGUH $.
    $}

    $( Derive axiom ~ ax-hcompl from Hilbert space under ZF set theory.
       (Contributed by NM, 6-Jun-2008.)  (Revised by Mario Carneiro,
       13-May-2014.)  (New usage is discouraged.) $)
    axhcompl-zf $p |- ( F e. Cauchy -> E. x e. ~H F ~~>v x ) $=
      ( cv chli wbr chil wrex cims cfv cca wcel wa wex cop eqid wb cba cmap cin
      cn co ccau cmopn clm chlo simpl hlcompl sylancr eldm2g adantr mpbid df-br
      cdm wi ctopon cnv cxmt cva csm cno df-hba fveq2i eqtr4i imsxmet mopntopon
      hlnvi mp2b lmcl mpan a1i cres h2hlm breqi brres ancom 3bitri baib biimprd
      vex adantl jcad syl5bir eximdv mpd elin df-rex 3imtr4i h2hcau eleq2s ) CA
      FZGHZAIJZCBKLZMLZIUCUAUDZUBZUECWQNZCWRNZOZWMINZWNOZAPZCWSNWOXBCWMQWPUFLZU
      GLZNZAPZXEXBCXGUPNZXIXBBUHNWTXJEWTXAUIWPBCXFWPRZXFRZUJUKWTXJXISXAACXGWQUL
      UMUNXBXHXDAXHCWMXGHZXBXDCWMXGUOXBXMXCWNXMXCUQXBXFIURLNZXMXCBUSNWPIUTLNXNB
      EVIZWPBIIVAVBQVCQZTLBTLVDBXPTDVEVFZXKVGWPXFIXLVHVJWMCXFIVKVLVMXBWNXMXAWNX
      MSWTWNXAXMWNCWMXGWRVNZHXMXAOXAXMOCWMGXRWPBXFDXOXQXKXLVOVPCWMXGWRAWBVQXMXA
      VRVSVTWCWAWDWEWFWGCWQWRWHWNAIWIWJWPBDXOXQXKWKWL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the vector space axioms for a Hilbert space
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Here we introduce the axioms a complex Hilbert space, which is the foundation
  for quantum mechanics and quantum field theory.  The 18 axioms for a complex
  Hilbert space consist of ~ ax-hilex , ~ ax-hfvadd , ~ ax-hvcom , ~ ax-hvass ,
  ~ ax-hv0cl , ~ ax-hvaddid , ~ ax-hfvmul , ~ ax-hvmulid , ~ ax-hvmulass ,
  ~ ax-hvdistr1 , ~ ax-hvdistr2 , ~ ax-hvmul0 , ~ ax-hfi , ~ ax-his1 ,
  ~ ax-his2 , ~ ax-his3 , ~ ax-his4 , and ~ ax-hcompl .

  The axioms specify the properties of 5 primitive symbols, ` ~H ` , ` +h ` ,
  ` .h ` , ` 0h ` , and ` .ih ` .

  If we can prove in ZFC set theory that a class
  ` U = <. <. +h , .h >. , normh >. ` is a complex Hilbert space, i.e. that
  ` U e. CHilOLD ` , then these axioms can be proved as theorems ~ axhilex-zf ,
  ~ axhfvadd-zf , ~ axhvcom-zf , ~ axhvass-zf , ~ axhv0cl-zf , ~ axhvaddid-zf ,
  ~ axhfvmul-zf , ~ axhvmulid-zf , ~ axhvmulass-zf , ~ axhvdistr1-zf ,
  ~ axhvdistr2-zf , ~ axhvmul0-zf , ~ axhfi-zf , ~ axhis1-zf , ~ axhis2-zf ,
  ~ axhis3-zf , ~ axhis4-zf , and ~ axhcompl-zf respectively.  In that case,
  the theorems of the Hilbert Space Explorer will become theorems of ZFC set
  theory.  See also the comments in ~ axhilex-zf .

$)

  $( This is our first axiom for a complex Hilbert space, which is the
     foundation for quantum mechanics and quantum field theory.  We assume that
     there exists a primitive class, ` ~H ` , which contains objects called
     vectors.  (Contributed by NM, 16-Aug-1999.)
     (New usage is discouraged.) $)
  ax-hilex $a |- ~H e. _V $.

  $( Vector addition is an operation on ` ~H ` .  (Contributed by NM,
     16-Aug-1999.)  (New usage is discouraged.) $)
  ax-hfvadd $a |- +h : ( ~H X. ~H ) --> ~H $.

  $( Vector addition is commutative.  (Contributed by NM, 3-Sep-1999.)
     (New usage is discouraged.) $)
  ax-hvcom $a |- ( ( A e. ~H /\ B e. ~H ) -> ( A +h B ) = ( B +h A ) ) $.

  $( Vector addition is associative.  (Contributed by NM, 3-Sep-1999.)
     (New usage is discouraged.) $)
  ax-hvass $a |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                 ( ( A +h B ) +h C ) = ( A +h ( B +h C ) ) ) $.

  $( The zero vector is in the vector space.  (Contributed by NM, 29-May-1999.)
     (New usage is discouraged.) $)
  ax-hv0cl $a |- 0h e. ~H $.

  $( Addition with the zero vector.  (Contributed by NM, 16-Aug-1999.)
     (New usage is discouraged.) $)
  ax-hvaddid $a |- ( A e. ~H -> ( A +h 0h ) = A ) $.

  $( Scalar multiplication is an operation on ` CC ` and ` ~H ` .  (Contributed
     by NM, 16-Aug-1999.)  (New usage is discouraged.) $)
  ax-hfvmul $a |- .h : ( CC X. ~H ) --> ~H $.

  $( Scalar multiplication by one.  (Contributed by NM, 30-May-1999.)
     (New usage is discouraged.) $)
  ax-hvmulid $a |- ( A e. ~H -> ( 1 .h A ) = A ) $.

  $( Scalar multiplication associative law.  (Contributed by NM, 30-May-1999.)
     (New usage is discouraged.) $)
  ax-hvmulass $a |- ( ( A e. CC /\ B e. CC /\ C e. ~H ) ->
                 ( ( A x. B ) .h C ) = ( A .h ( B .h C ) ) ) $.

  $( Scalar multiplication distributive law.  (Contributed by NM, 3-Sep-1999.)
     (New usage is discouraged.) $)
  ax-hvdistr1 $a |- ( ( A e. CC /\ B e. ~H /\ C e. ~H ) ->
                ( A .h ( B +h C ) ) = ( ( A .h B ) +h ( A .h C ) ) ) $.

  $( Scalar multiplication distributive law.  (Contributed by NM, 30-May-1999.)
     (New usage is discouraged.) $)
  ax-hvdistr2 $a |- ( ( A e. CC /\ B e. CC /\ C e. ~H ) ->
                ( ( A + B ) .h C ) = ( ( A .h C ) +h ( B .h C ) ) ) $.

  $( Scalar multiplication by zero.  We can derive the existence of the
     negative of a vector from this axiom (see ~ hvsubid and ~ hvsubval ).
     (Contributed by NM, 29-May-1999.)  (New usage is discouraged.) $)
  ax-hvmul0 $a |- ( A e. ~H -> ( 0 .h A ) = 0h ) $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Vector operations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The Hilbert space scalar product operation is a set.  (Contributed by NM,
     17-Apr-2007.)  (New usage is discouraged.) $)
  hvmulex $p |- .h e. _V $=
    ( cc chil cxp csm wf cvv wcel ax-hfvmul cnex ax-hilex xpex fex mp2an ) ABCZ
    BDENFGDFGHABIJKNBFDLM $.

  $( Closure of vector addition.  (Contributed by NM, 18-Apr-2007.)
     (New usage is discouraged.) $)
  hvaddcl $p |- ( ( A e. ~H /\ B e. ~H ) -> ( A +h B ) e. ~H ) $=
    ( chil cva ax-hfvadd fovcl ) ABCCCDEF $.

  $( Closure of scalar multiplication.  (Contributed by NM, 19-Apr-2007.)
     (New usage is discouraged.) $)
  hvmulcl $p |- ( ( A e. CC /\ B e. ~H ) -> ( A .h B ) e. ~H ) $=
    ( chil cc csm ax-hfvmul fovcl ) ABCDCEFG $.

  ${
    hvmulcl.1 $e |- A e. CC $.
    hvmulcl.2 $e |- B e. ~H $.
    $( Closure inference for scalar multiplication.  (Contributed by NM,
       1-Aug-1999.)  (New usage is discouraged.) $)
    hvmulcli $p |- ( A .h B ) e. ~H $=
      ( cc wcel chil csm co hvmulcl mp2an ) AEFBGFABHIGFCDABJK $.
  $}

  ${
    $d x y $.
    $( Mapping domain and codomain of vector subtraction.  (Contributed by NM,
       6-Sep-2007.)  (New usage is discouraged.) $)
    hvsubf $p |- -h : ( ~H X. ~H ) --> ~H $=
      ( vx vy cv c1 cneg csm co cva chil wcel wral cxp cmv wf cc neg1cn hvmulcl
      mpan hvaddcl sylan2 rgen2a df-hvsub fmpt2 mpbi ) ACZDEZBCZFGZHGZIJZBIKAIK
      IILIMNUJABIUGIJZUEIJUHIJZUJUFOJUKULPUFUGQRUEUHSTUAABIIUIIMABUBUCUD $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Value of vector subtraction.  (Contributed by NM, 5-Sep-1999.)  (Revised
       by Mario Carneiro, 23-Dec-2013.)  (New usage is discouraged.) $)
    hvsubval $p |- ( ( A e. ~H /\ B e. ~H ) ->
                    ( A -h B ) = ( A +h ( -u 1 .h B ) ) ) $=
      ( vx vy chil cv c1 cneg csm cva cmv oveq1 wceq oveq2 oveq2d df-hvsub ovex
      co ovmpt2 ) CDABEECFZGHZDFZIRZJRAUABIRZJRKAUCJRTAUCJLUBBMUCUDAJUBBUAINOCD
      PAUDJQS $.
  $}

  $( Closure of vector subtraction.  (Contributed by NM, 17-Aug-1999.)
     (New usage is discouraged.) $)
  hvsubcl $p |- ( ( A e. ~H /\ B e. ~H ) -> ( A -h B ) e. ~H ) $=
    ( chil wcel wa cmv co c1 cneg csm hvsubval cc neg1cn hvmulcl hvaddcl sylan2
    cva mpan eqeltrd ) ACDZBCDZEABFGAHIZBJGZQGZCABKUATUCCDZUDCDUBLDUAUEMUBBNRAU
    COPS $.

  ${
    hvaddcl.1 $e |- A e. ~H $.
    hvaddcl.2 $e |- B e. ~H $.
    $( Closure of vector addition.  (Contributed by NM, 1-Aug-1999.)
       (New usage is discouraged.) $)
    hvaddcli $p |- ( A +h B ) e. ~H $=
      ( chil wcel cva co hvaddcl mp2an ) AEFBEFABGHEFCDABIJ $.

    $( Commutation of vector addition.  (Contributed by NM, 3-Sep-1999.)
       (New usage is discouraged.) $)
    hvcomi $p |- ( A +h B ) = ( B +h A ) $=
      ( chil wcel cva co wceq ax-hvcom mp2an ) AEFBEFABGHBAGHICDABJK $.

    $( Value of vector subtraction definition.  (Contributed by NM,
       3-Sep-1999.)  (New usage is discouraged.) $)
    hvsubvali $p |- ( A -h B ) = ( A +h ( -u 1 .h B ) ) $=
      ( chil wcel cmv co c1 cneg csm cva wceq hvsubval mp2an ) AEFBEFABGHAIJBKH
      LHMCDABNO $.

    $( Closure of vector subtraction.  (Contributed by NM, 2-Aug-1999.)
       (New usage is discouraged.) $)
    hvsubcli $p |- ( A -h B ) e. ~H $=
      ( chil wcel cmv co hvsubcl mp2an ) AEFBEFABGHEFCDABIJ $.
  $}

  $( Prove ` if ( A e. ~H , A , 0h ) e. ~H ` (common case).  (Contributed by
     David A. Wheeler, 7-Dec-2018.)  (New usage is discouraged.) $)
  ifhvhv0 $p |- if ( A e. ~H , A , 0h ) e. ~H $=
    ( c0v chil ax-hv0cl elimel ) ABCDE $.

  $( Addition with the zero vector.  (Contributed by NM, 18-Oct-1999.)
     (New usage is discouraged.) $)
  hvaddid2 $p |- ( A e. ~H -> ( 0h +h A ) = A ) $=
    ( chil wcel c0v cva co wceq ax-hv0cl ax-hvcom mpan2 ax-hvaddid eqtr3d ) ABC
    ZADEFZDAEFZAMDBCNOGHADIJAKL $.

  $( Scalar multiplication with the zero vector.  (Contributed by NM,
     30-May-1999.)  (New usage is discouraged.) $)
  hvmul0 $p |- ( A e. CC -> ( A .h 0h ) = 0h ) $=
    ( cc wcel c0v cc0 csm cmul mul01 oveq1d chil wceq ax-hv0cl ax-hvmul0 syl6eq
    co ax-mp 0cn ax-hvmulass mp3an23 eqtr3d oveq2i syl6req ) ABCZDAEDFOZFOZADFO
    UCAEGOZDFOZDUEUCUGUDDUCUFEDFAHIDJCZUDDKLDMPZNUCEBCUHUGUEKQLAEDRSTUDDAFUIUAU
    B $.

  $( If a scalar product is zero, one of its factors must be zero.
     (Contributed by NM, 19-May-2005.)  (New usage is discouraged.) $)
  hvmul0or $p |- ( ( A e. CC /\ B e. ~H ) ->
                  ( ( A .h B ) = 0h <-> ( A = 0 \/ B = 0h ) ) ) $=
    ( cc wcel wa csm co c0v wceq c1 oveq2 ad2antlr adantlr 3eqtr3d hvmul0 ex wi
    cc0 eqeq1d syl5ibrcom chil wo wn df-ne cdiv cmul recid2 oveq1d reccl simpll
    wne simplr ax-hvmulass syl3anc ax-hvmulid syl syl5bir orrd ax-hvmul0 adantl
    oveq1 adantr jaod impbid ) ACDZBUADZEZABFGZHIZARIZBHIZUBZVGVIVLVGVIEZVJVKVJ
    UCARUKZVMVKARUDVMVNVKVMVNEJAUEGZVHFGZVOHFGZBHVIVPVQIVGVNVHHVOFKLVGVNVPBIVIV
    GVNEZVOAUFGZBFGZJBFGZVPBVEVNVTWAIVFVEVNEZVSJBFAUGUHMVRVOCDZVEVFVTVPIVEVNWCV
    FAUIZMVEVFVNUJVEVFVNULVOABUMUNVFWABIVEVNBUOLNMVGVNVQHIZVIVEVNWEVFWBWCWEWDVO
    OUPMMNPUQURPVGVJVIVKVFVJVIQVEVFVIVJRBFGZHIBUSVJVHWFHARBFVASTUTVEVKVIQVFVEVI
    VKAHFGZHIAOVKVHWGHBHAFKSTVBVCVD $.

  $( Subtraction of a vector from itself.  (Contributed by NM, 30-May-1999.)
     (New usage is discouraged.) $)
  hvsubid $p |- ( A e. ~H -> ( A -h A ) = 0h ) $=
    ( chil wcel cmv co cc0 csm c0v cneg caddc cva ax-hvmulid oveq1d wceq ax-1cn
    c1 cc neg1cn ax-hvdistr2 mp3an12 hvsubval 3eqtr4rd 1pneg1e0 ax-hvmul0 eqtrd
    anidms oveq1i syl6eq ) ABCZAADEZFAGEZHUIUJPPIZJEZAGEZUKUIPAGEZULAGEZKEZAUPK
    EZUNUJUIUOAUPKALMPQCULQCUIUNUQNORPULASTUIUJURNAAUAUFUBUMFAGUCUGUHAUDUE $.

  $( Addition of negative of a vector to itself.  (Contributed by NM,
     4-Jun-2004.)  (New usage is discouraged.) $)
  hvnegid $p |- ( A e. ~H -> ( A +h ( -u 1 .h A ) ) = 0h ) $=
    ( chil wcel cmv co c1 cneg csm cva c0v wceq hvsubval anidms hvsubid eqtr3d
    ) ABCZAADEZAFGAHEIEZJPQRKAALMANO $.

  $( Two ways to express the negative of a vector.  (Contributed by NM,
     23-May-2005.)  (New usage is discouraged.) $)
  hv2neg $p |- ( A e. ~H -> ( 0h -h A ) = ( -u 1 .h A ) ) $=
    ( chil wcel c0v cmv cneg csm cva wceq ax-hv0cl hvsubval mpan neg1cn hvmulcl
    co c1 cc hvaddid2 syl eqtrd ) ABCZDAEOZDPFZAGOZHOZUDDBCUAUBUEIJDAKLUAUDBCZU
    EUDIUCQCUAUFMUCANLUDRST $.

  ${
    hvaddid2.1 $e |- A e. ~H $.
    $( Addition with the zero vector.  (Contributed by NM, 18-Aug-1999.)
       (New usage is discouraged.) $)
    hvaddid2i $p |- ( 0h +h A ) = A $=
      ( chil wcel c0v cva co wceq hvaddid2 ax-mp ) ACDEAFGAHBAIJ $.

    $( Addition of negative of a vector to itself.  (Contributed by NM,
       18-Aug-1999.)  (New usage is discouraged.) $)
    hvnegidi $p |- ( A +h ( -u 1 .h A ) ) = 0h $=
      ( chil wcel c1 cneg csm co cva c0v wceq hvnegid ax-mp ) ACDAEFAGHIHJKBALM
      $.

    $( Two ways to express the negative of a vector.  (Contributed by NM,
       31-Oct-1999.)  (New usage is discouraged.) $)
    hv2negi $p |- ( 0h -h A ) = ( -u 1 .h A ) $=
      ( chil wcel c0v cmv co c1 cneg csm wceq hv2neg ax-mp ) ACDEAFGHIAJGKBALM
      $.
  $}

  $( Convert minus one times a scalar product to the negative of the scalar.
     (Contributed by NM, 4-Jun-2004.)  (New usage is discouraged.) $)
  hvm1neg $p |- ( ( A e. CC /\ B e. ~H ) ->
                 ( -u 1 .h ( A .h B ) ) = ( -u A .h B ) ) $=
    ( cc wcel chil wa c1 cneg cmul co csm wceq neg1cn ax-hvmulass mp3an1 adantr
    mulm1 oveq1d eqtr3d ) ACDZBEDZFZGHZAIJZBKJZUCABKJKJZAHZBKJUCCDTUAUEUFLMUCAB
    NOUBUDUGBKTUDUGLUAAQPRS $.

  $( Value of vector addition in terms of vector subtraction.  (Contributed by
     NM, 10-Jun-2006.)  (New usage is discouraged.) $)
  hvaddsubval $p |- ( ( A e. ~H /\ B e. ~H ) ->
                  ( A +h B ) = ( A -h ( -u 1 .h B ) ) ) $=
    ( chil wcel wa c1 cneg csm cmv cva wceq neg1cn hvmulcl mpan hvsubval sylan2
    co cc hvm1neg negneg1e1 oveq1i syl6eq ax-hvmulid eqtrd adantl oveq2d eqtr2d
    ) ACDZBCDZEZAFGZBHQZIQZAUKULHQZJQZABJQUIUHULCDZUMUOKUKRDZUIUPLUKBMNAULOPUJU
    NBAJUIUNBKUHUIUNFBHQZBUIUNUKGZBHQZURUQUIUNUTKLUKBSNUSFBHTUAUBBUCUDUEUFUG $.

  $( Commutative/associative law.  (Contributed by NM, 16-Oct-1999.)
     (New usage is discouraged.) $)
  hvadd32 $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
               ( ( A +h B ) +h C ) = ( ( A +h C ) +h B ) ) $=
    ( chil wcel w3a cva co wceq ax-hvcom oveq2d 3adant1 ax-hvass 3com23 3eqtr4d
    wa ) ADEZBDEZCDEZFABCGHZGHZACBGHZGHZABGHCGHACGHBGHZRSUAUCIQRSPTUBAGBCJKLABC
    MQSRUDUCIACBMNO $.

  $( Commutative/associative law.  (Contributed by NM, 19-Oct-1999.)
     (New usage is discouraged.) $)
  hvadd12 $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
               ( A +h ( B +h C ) ) = ( B +h ( A +h C ) ) ) $=
    ( chil wcel w3a cva co wceq ax-hvcom oveq1d 3adant3 ax-hvass 3com12 3eqtr3d
    wa ) ADEZBDEZCDEZFABGHZCGHZBAGHZCGHZABCGHGHBACGHGHZQRUAUCISQRPTUBCGABJKLABC
    MRQSUCUDIBACMNO $.

  $( Hilbert vector space addition law.  (Contributed by NM, 16-Oct-1999.)
     (New usage is discouraged.) $)
  hvadd4 $p |- ( ( ( A e. ~H /\ B e. ~H ) /\ ( C e. ~H /\ D e. ~H ) ) ->
               ( ( A +h B ) +h ( C +h D ) ) = ( ( A +h C ) +h ( B +h D ) ) ) $=
    ( chil wcel wa cva co wceq w3a hvadd32 3expa adantrr hvaddcl ax-hvass 3expb
    oveq1d sylan an4s 3eqtr3d ) AEFZBEFZGZCEFZDEFZGZGABHIZCHIZDHIZACHIZBHIZDHIZ
    UHCDHIHIZUKBDHIHIZUDUEUJUMJZUFUBUCUEUPUBUCUEKUIULDHABCLRMNUDUHEFZUGUJUNJZAB
    OUQUEUFURUHCDPQSUBUEUCUFUMUOJZUBUEGUKEFZUCUFGUSACOUTUCUFUSUKBDPQSTUA $.

  $( Hilbert vector space addition/subtraction law.  (Contributed by NM,
     17-Oct-1999.)  (New usage is discouraged.) $)
  hvsub4 $p |- ( ( ( A e. ~H /\ B e. ~H ) /\ ( C e. ~H /\ D e. ~H ) ) ->
               ( ( A +h B ) -h ( C +h D ) ) = ( ( A -h C ) +h ( B -h D ) ) ) $=
    ( chil wcel wa cva cmv csm wceq hvaddcl hvsubval neg1cn hvmulcl mpan anim2i
    co c1 eqtr4d cneg syl2an ad2ant2r ad2ant2l ax-hvdistr1 mp3an1 adantl oveq2d
    oveq12d cc anim12i an4s hvadd4 syl ) AEFZBEFZGZCEFZDEFZGZGZABHRZCDHRZIRZVBS
    UAZVCJRZHRZACIRZBDIRZHRZUQVBEFVCEFVDVGKUTABLCDLVBVCMUBVAVJAVECJRZHRZBVEDJRZ
    HRZHRZVGVAVHVLVIVNHUOURVHVLKUPUSACMUCUPUSVIVNKUOURBDMUDUIVAVGVBVKVMHRZHRZVO
    VAVFVPVBHUTVFVPKZUQVEUJFZURUSVRNVECDUEUFUGUHVAUOVKEFZGZUPVMEFZGZGZVOVQKUOUR
    UPUSWDUOURGWAUPUSGWCURVTUOVSURVTNVECOPQUSWBUPVSUSWBNVEDOPQUKULAVKBVMUMUNTTT
    $.

  $( Commutative/associative law.  (Contributed by NM, 19-Oct-1999.)
     (New usage is discouraged.) $)
  hvaddsub12 $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
               ( A +h ( B -h C ) ) = ( B +h ( A -h C ) ) ) $=
    ( chil wcel w3a c1 cneg csm co cva cmv wceq cc neg1cn hvmulcl mpan hvsubval
    wa oveq2d hvadd12 syl3an3 3adant1 3adant2 3eqtr4d ) ADEZBDEZCDEZFABGHZCIJZK
    JZKJZBAUJKJZKJZABCLJZKJZBACLJZKJZUHUFUGUJDEZULUNMUINEUHUSOUICPQABUJUAUBUGUH
    UPULMUFUGUHSUOUKAKBCRTUCUFUHURUNMUGUFUHSUQUMBKACRTUDUE $.

  $( Addition/subtraction cancellation law for vectors in Hilbert space.
     (Contributed by NM, 7-Jun-2004.)  (New usage is discouraged.) $)
  hvpncan $p |- ( ( A e. ~H /\ B e. ~H ) -> ( ( A +h B ) -h B ) = A ) $=
    ( chil wcel wa cva co cmv c1 cneg csm wceq hvaddcl hvsubval sylancom neg1cn
    cc hvmulcl mpan c0v ancli ax-hvass 3expb sylan2 oveq2d ax-hvaddid sylan9eqr
    hvnegid 3eqtrd ) ACDZBCDZEABFGZBHGZULIJZBKGZFGZABUOFGZFGZAUJUKULCDUMUPLABMU
    LBNOUKUJUKUOCDZEUPURLZUKUSUNQDUKUSPUNBRSUAUJUKUSUTABUOUBUCUDUKUJURATFGAUKUQ
    TAFBUHUEAUFUGUI $.

  $( Addition/subtraction cancellation law for vectors in Hilbert space.
     (Contributed by NM, 7-Jun-2004.)  (New usage is discouraged.) $)
  hvpncan2 $p |- ( ( A e. ~H /\ B e. ~H ) -> ( ( A +h B ) -h A ) = B ) $=
    ( chil wcel cva co cmv wceq wa ax-hvcom oveq1d hvpncan eqtr3d ancoms ) BCDZ
    ACDZABEFZAGFZBHOPIZBAEFZAGFRBSTQAGBAJKBALMN $.

  $( Associativity of sum and difference of Hilbert space vectors.
     (Contributed by NM, 27-Aug-2004.)  (New usage is discouraged.) $)
  hvaddsubass $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) -> ( ( A +h B ) -h C )
                     = ( A +h ( B -h C ) ) ) $=
    ( chil wcel w3a cva co c1 cneg csm cmv wceq cc neg1cn hvmulcl mpan ax-hvass
    syl3an3 hvsubval hvaddcl stoic3 3adant1 oveq2d 3eqtr4d ) ADEZBDEZCDEZFZABGH
    ZIJZCKHZGHZABULGHZGHZUJCLHZABCLHZGHUHUFUGULDEZUMUOMUKNEUHUROUKCPQABULRSUFUG
    UJDEUHUPUMMABUAUJCTUBUIUQUNAGUGUHUQUNMUFBCTUCUDUE $.

  $( Subtraction and addition of equal Hilbert space vectors.  (Contributed by
     NM, 27-Aug-2004.)  (New usage is discouraged.) $)
  hvpncan3 $p |- ( ( A e. ~H /\ B e. ~H ) -> ( A +h ( B -h A ) ) = B ) $=
    ( chil wcel wa cva co cmv wceq hvaddsubass 3anidm13 hvpncan2 eqtr3d ) ACDZB
    CDZEABFGAHGZABAHGFGZBNOPQIABAJKABLM $.

  $( Scalar multiplication commutative law.  (Contributed by NM, 19-May-2005.)
     (New usage is discouraged.) $)
  hvmulcom $p |- ( ( A e. CC /\ B e. CC /\ C e. ~H ) ->
                 ( A .h ( B .h C ) ) = ( B .h ( A .h C ) ) ) $=
    ( cc wcel chil w3a cmul co wceq wa mulcom oveq1d 3adant3 ax-hvmulass 3com12
    csm 3eqtr3d ) ADEZBDEZCFEZGABHIZCQIZBAHIZCQIZABCQIQIBACQIQIZSTUCUEJUASTKUBU
    DCQABLMNABCOTSUAUEUFJBACOPR $.

  $( Hilbert vector space associative law for subtraction.  (Contributed by
     Mario Carneiro, 15-May-2014.)  (New usage is discouraged.) $)
  hvsubass $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                   ( ( A -h B ) -h C ) = ( A -h ( B +h C ) ) ) $=
    ( chil wcel w3a c1 cneg csm co cva cmv wceq cc neg1cn hvmulcl mpan hvsubval
    3adant1 eqtr4d hvaddsubass syl3an2 3adant3 oveq1d simp1 hvaddcl ax-hvdistr1
    syl2anc sylan mp3an1 oveq2d 3eqtr4d ) ADEZBDEZCDEZFZAGHZBIJZKJZCLJZAURCLJZK
    JZABLJZCLJABCKJZLJZUNUMURDEZUOUTVBMUQNEZUNVFOUQBPQZAURCUAUBUPVCUSCLUMUNVCUS
    MUOABRUCUDUPVEAUQVDIJZKJZVBUPUMVDDEZVEVJMUMUNUOUEUNUOVKUMBCUFSAVDRUHUPVAVIA
    KUPVAURUQCIJKJZVIUNUOVAVLMZUMUNVFUOVMVHURCRUISUNUOVIVLMZUMVGUNUOVNOUQBCUGUJ
    STUKTUL $.

  $( Hilbert vector space commutative/associative law.  (Contributed by Mario
     Carneiro, 15-May-2014.)  (New usage is discouraged.) $)
  hvsub32 $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                  ( ( A -h B ) -h C ) = ( ( A -h C ) -h B ) ) $=
    ( chil wcel w3a cva co wceq ax-hvcom 3adant1 oveq2d hvsubass 3com23 3eqtr4d
    cmv ) ADEZBDEZCDEZFZABCGHZPHACBGHZPHZABPHCPHACPHBPHZTUAUBAPRSUAUBIQBCJKLABC
    MQSRUDUCIACBMNO $.

  ${
    hvmulcom.1 $e |- A e. CC $.
    hvmulcom.2 $e |- B e. CC $.
    hvmulcom.3 $e |- C e. ~H $.
    $( Scalar multiplication associative law.  (Contributed by NM, 3-Sep-1999.)
       (New usage is discouraged.) $)
    hvmulassi $p |- ( ( A x. B ) .h C ) = ( A .h ( B .h C ) ) $=
      ( cc wcel chil cmul co csm wceq ax-hvmulass mp3an ) AGHBGHCIHABJKCLKABCLK
      LKMDEFABCNO $.

    $( Scalar multiplication commutative law.  (Contributed by NM, 3-Sep-1999.)
       (New usage is discouraged.) $)
    hvmulcomi $p |- ( A .h ( B .h C ) ) = ( B .h ( A .h C ) ) $=
      ( cc wcel chil csm co wceq hvmulcom mp3an ) AGHBGHCIHABCJKJKBACJKJKLDEFAB
      CMN $.

    $( Double negative in scalar multiplication.  (Contributed by NM,
       3-Sep-1999.)  (New usage is discouraged.) $)
    hvmul2negi $p |- ( -u A .h ( -u B .h C ) ) = ( A .h ( B .h C ) ) $=
      ( cneg cmul co csm mul2negi oveq1i negcli hvmulassi 3eqtr3i ) AGZBGZHIZCJ
      IABHIZCJIPQCJIJIABCJIJIRSCJABDEKLPQCADMBEMFNABCDEFNO $.
  $}

  $( Scalar multiplication distributive law for subtraction.  (Contributed by
     NM, 19-May-2005.)  (New usage is discouraged.) $)
  hvsubdistr1 $p |- ( ( A e. CC /\ B e. ~H /\ C e. ~H ) ->
                    ( A .h ( B -h C ) ) = ( ( A .h B ) -h ( A .h C ) ) ) $=
    ( cc wcel chil w3a cneg csm cva cmv wceq neg1cn hvmulcl mpan oveq2d 3adant2
    c1 co hvsubval ax-hvdistr1 syl3an3 wa hvmulcom mp3an2 eqtrd 3adant1 3adant3
    syl2anc 3eqtr4d ) ADEZBFEZCFEZGZABRHZCISZJSZISZABISZUOACISZISZJSZABCKSZISUS
    UTKSZUNURUSAUPISZJSZVBUMUKULUPFEZURVFLUODEZUMVGMUOCNOABUPUAUBUKUMVFVBLULUKU
    MUCVEVAUSJUKVHUMVEVALMAUOCUDUEPQUFUNVCUQAIULUMVCUQLUKBCTUGPUNUSFEZUTFEZVDVB
    LUKULVIUMABNUHUKUMVJULACNQUSUTTUIUJ $.

  $( Scalar multiplication distributive law for subtraction.  (Contributed by
     NM, 19-May-2005.)  (New usage is discouraged.) $)
  hvsubdistr2 $p |- ( ( A e. CC /\ B e. CC /\ C e. ~H ) -> ( ( A - B ) .h C
      ) = ( ( A .h C ) -h ( B .h C ) ) ) $=
    ( cc wcel chil w3a csm co cmv c1 cneg cva cmin wceq hvmulcl 3adant2 3adant1
    oveq1d eqtr3d hvsubval syl2anc cmul adantr neg1cn ax-hvmulass mp3an1 oveq2d
    wa mulm1 caddc negcl ax-hvdistr2 syl3an2 negsub 3adant3 3eqtr2rd ) ADEZBDEZ
    CFEZGZACHIZBCHIZJIZVBKLZVCHIZMIZVBBLZCHIZMIZABNIZCHIZVAVBFEZVCFEZVDVGOURUTV
    MUSACPQUSUTVNURBCPRVBVCUAUBVAVIVFVBMUSUTVIVFOURUSUTUIVEBUCIZCHIZVIVFUSVPVIO
    UTUSVOVHCHBUJSUDVEDEUSUTVPVFOUEVEBCUFUGTRUHVAAVHUKIZCHIZVJVLUSURVHDEUTVRVJO
    BULAVHCUMUNVAVQVKCHURUSVQVKOUTABUOUPSTUQ $.

  ${
    hvdistr1.1 $e |- A e. CC $.
    hvdistr1.2 $e |- B e. ~H $.
    hvdistr1.3 $e |- C e. ~H $.
    $( Scalar multiplication distributive law.  (Contributed by NM,
       3-Sep-1999.)  (New usage is discouraged.) $)
    hvdistr1i $p |- ( A .h ( B +h C ) ) = ( ( A .h B ) +h ( A .h C ) ) $=
      ( cc wcel chil cva co csm wceq ax-hvdistr1 mp3an ) AGHBIHCIHABCJKLKABLKAC
      LKJKMDEFABCNO $.

    $( Scalar multiplication distributive law.  (Contributed by NM,
       3-Sep-1999.)  (New usage is discouraged.) $)
    hvsubdistr1i $p |- ( A .h ( B -h C ) ) = ( ( A .h B ) -h ( A .h C ) ) $=
      ( cc wcel chil cmv co csm wceq hvsubdistr1 mp3an ) AGHBIHCIHABCJKLKABLKAC
      LKJKMDEFABCNO $.
  $}

  ${
    hvass.1 $e |- A e. ~H $.
    hvass.2 $e |- B e. ~H $.
    hvass.3 $e |- C e. ~H $.
    $( Hilbert vector space associative law.  (Contributed by NM, 3-Sep-1999.)
       (New usage is discouraged.) $)
    hvassi $p |- ( ( A +h B ) +h C ) = ( A +h ( B +h C ) ) $=
      ( chil wcel cva co wceq ax-hvass mp3an ) AGHBGHCGHABIJCIJABCIJIJKDEFABCLM
      $.

    $( Hilbert vector space commutative/associative law.  (Contributed by NM,
       18-Aug-1999.)  (New usage is discouraged.) $)
    hvadd32i $p |- ( ( A +h B ) +h C ) = ( ( A +h C ) +h B ) $=
      ( chil wcel cva co wceq hvadd32 mp3an ) AGHBGHCGHABIJCIJACIJBIJKDEFABCLM
      $.

    $( Hilbert vector space associative law for subtraction.  (Contributed by
       NM, 7-Oct-1999.)  (Revised by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    hvsubassi $p |- ( ( A -h B ) -h C ) = ( A -h ( B +h C ) ) $=
      ( chil wcel cmv co cva wceq hvsubass mp3an ) AGHBGHCGHABIJCIJABCKJIJLDEFA
      BCMN $.

    $( Hilbert vector space commutative/associative law.  (Contributed by NM,
       7-Oct-1999.)  (Revised by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    hvsub32i $p |- ( ( A -h B ) -h C ) = ( ( A -h C ) -h B ) $=
      ( chil wcel cmv co wceq hvsub32 mp3an ) AGHBGHCGHABIJCIJACIJBIJKDEFABCLM
      $.

    $( Hilbert vector space commutative/associative law.  (Contributed by NM,
       11-Sep-1999.)  (New usage is discouraged.) $)
    hvadd12i $p |- ( A +h ( B +h C ) ) = ( B +h ( A +h C ) ) $=
      ( cva co hvcomi oveq1i hvassi 3eqtr3i ) ABGHZCGHBAGHZCGHABCGHGHBACGHGHMNC
      GABDEIJABCDEFKBACEDFKL $.

    ${
      hvadd4.4 $e |- D e. ~H $.
      $( Hilbert vector space addition law.  (Contributed by NM, 3-Sep-1999.)
         (New usage is discouraged.) $)
      hvadd4i $p |- ( ( A +h B ) +h ( C +h D ) ) =
                   ( ( A +h C ) +h ( B +h D ) ) $=
        ( chil wcel cva co wceq hvadd4 mp4an ) AIJBIJCIJDIJABKLCDKLKLACKLBDKLKL
        MEFGHABCDNO $.

      $( Hilbert vector space addition law.  (Contributed by NM, 31-Oct-1999.)
         (New usage is discouraged.) $)
      hvsubsub4i $p |- ( ( A -h B ) -h ( C -h D ) ) =
                      ( ( A -h C ) -h ( B -h D ) ) $=
        ( csm cva cmv neg1cn hvmulcli hvdistr1i oveq2i 3eqtr4i hvaddcli oveq12i
        co hvsubvali c1 cneg hvadd4i ) AUAUBZBISZJSZCUDDISZJSZKSZAUDCISZJSZBUGJ
        SZKSZABKSZCDKSZKSACKSZBDKSZKSUFUDUHISZJSZUKUDULISZJSZUIUMUFUJUDUGISZJSZ
        JSUKUEVBJSZJSUSVAAUEUJVBEUDBLFMZUDCLGMZUDUGLUDDLHMZMUCURVCUFJUDCUGLGVGN
        OUTVDUKJUDBUGLFVGNOPUFUHAUEEVEQCUGGVGQTUKULAUJEVFQBUGFVGQTPUNUFUOUHKABE
        FTCDGHTRUPUKUQULKACEGTBDFHTRP $.
    $}
  $}

  $( Hilbert vector space addition/subtraction law.  (Contributed by NM,
     2-Apr-2000.)  (New usage is discouraged.) $)
  hvsubsub4 $p |- ( ( ( A e. ~H /\ B e. ~H ) /\ ( C e. ~H /\ D e. ~H ) )
            -> ( ( A -h B ) -h ( C -h D ) ) = ( ( A -h C ) -h ( B -h D ) ) ) $=
    ( chil wcel cmv wceq c0v cif oveq1 oveq1d eqeq12d oveq2d ifhvhv0 hvsubsub4i
    co oveq2 dedth4h ) AEFZBEFZCEFZDEFZABGQZCDGQZGQZACGQZBDGQZGQZHTAIJZBGQZUEGQ
    ZUJCGQZUHGQZHUJUABIJZGQZUEGQZUMUODGQZGQZHUPUBCIJZDGQZGQZUJUTGQZURGQZHUPUTUC
    DIJZGQZGQZVCUOVEGQZGQZHABCDIIIIAUJHZUFULUIUNVJUDUKUEGAUJBGKLVJUGUMUHGAUJCGK
    LMBUOHZULUQUNUSVKUKUPUEGBUOUJGRLVKUHURUMGBUODGKNMCUTHZUQVBUSVDVLUEVAUPGCUTD
    GKNVLUMVCURGCUTUJGRLMDVEHZVBVGVDVIVMVAVFUPGDVEUTGRNVMURVHVCGDVEUOGRNMUJUOUT
    VEAOBOCODOPS $.

  $( Two times a vector.  (Contributed by NM, 22-Jun-2006.)
     (New usage is discouraged.) $)
  hv2times $p |- ( A e. ~H -> ( 2 .h A ) = ( A +h A ) ) $=
    ( chil wcel c2 csm co cva caddc df-2 oveq1i wceq ax-1cn ax-hvdistr2 mp3an12
    c1 cc syl5eq ax-hvdistr1 mp3an1 anidms hvaddcl ax-hvmulid syl 3eqtr2d ) ABC
    ZDAEFZOAEFZUGGFZOAAGFZEFZUIUEUFOOHFZAEFZUHDUKAEIJOPCZUMUEULUHKLLOOAMNQUEUJU
    HKZUMUEUEUNLOAARSTUEUIBCZUJUIKUEUOAAUATUIUBUCUD $.

  ${
    hvnegdi.1 $e |- A e. ~H $.
    hvnegdi.2 $e |- B e. ~H $.
    $( Distribution of negative over subtraction.  (Contributed by NM,
       31-Oct-1999.)  (New usage is discouraged.) $)
    hvnegdii $p |- ( -u 1 .h ( A -h B ) ) = ( B -h A ) $=
      ( c1 cneg cmv co hvsubvali oveq2i neg1cn hvmulcli hvdistr1i neg1mulneg1e1
      csm cva cmul oveq1i hvmulassi chil wcel ax-hvmulid 3eqtr3i hvcomi 3eqtr4i
      wceq ax-mp 3eqtri ) EFZABGHZOHUIAUIBOHZPHZOHUIAOHZUIUKOHZPHZBAGHZUJULUIOA
      BCDIJUIAUKKCUIBKDLZMUNUMPHBUMPHUOUPUNBUMPUIUIQHZBOHEBOHZUNBUREBONRUIUIBKK
      DSBTUAUSBUFDBUBUGUCRUMUNUIAKCLUIUKKUQLUDBADCIUEUH $.

    $( If the difference between two vectors is zero, they are equal.
       (Contributed by NM, 18-Aug-1999.)  (New usage is discouraged.) $)
    hvsubeq0i $p |- ( ( A -h B ) = 0h <-> A = B ) $=
      ( cmv co c0v wceq c1 cneg csm cva hvsubvali eqeq1i oveq1 sylbi chil ax-mp
      wcel eqtri neg1cn hvmulcli hvadd32i hvnegidi ax-hvaddid hvaddid2i 3eqtr3g
      hvassi oveq2i hvsubid syl6eq impbii ) ABEFZGHZABHZUNAIJZBKFZLFZBLFZGBLFZA
      BUNURGHUSUTHUMURGABCDMNURGBLOPUSABLFUQLFZAAUQBCUPBUADUBZDUCVAABUQLFZLFZAA
      BUQCDVBUHVDAGLFZAVCGALBDUDUIAQSVEAHCAUERTTTBDUFUGUOUMBBEFZGABBEOBQSVFGHDB
      UJRUKUL $.

    $( Vector cancellation law.  (Contributed by NM, 3-Sep-1999.)
       (New usage is discouraged.) $)
    hvsubcan2i $p |- ( ( A +h B ) +h ( A -h B ) ) = ( 2 .h A ) $=
      ( cva co cmv c1 cneg csm c2 hvsubvali oveq2i c0v hvmulcli chil wcel ax-mp
      wceq eqtri neg1cn hvadd4i hv2times eqcomi hvnegidi oveq12i 2cn ax-hvaddid
      ) ABEFZABGFZEFUIAHIZBJFZEFZEFZKAJFZUJUMUIEABCDLMUNUONEFZUOUNAAEFZBULEFZEF
      UPABAULCDCUKBUADOUBUQUOURNEUOUQAPQUOUQSCAUCRUDBDUEUFTUOPQUPUOSKAUGCOUOUHR
      TT $.

    ${
      hvaddcan.3 $e |- C e. ~H $.
      $( Cancellation law for vector addition.  (Contributed by NM,
         11-Sep-1999.)  (New usage is discouraged.) $)
      hvaddcani $p |- ( ( A +h B ) = ( A +h C ) <-> B = C ) $=
        ( cva co wceq c1 cneg csm c0v neg1cn hvmulcli hvadd32i oveq1i hvaddid2i
        oveq1 3eqtri hvnegidi 3eqtr3g oveq2 impbii ) ABGHZACGHZIZBCIUGUEJKZALHZ
        GHZUFUIGHZBCUEUFUIGSUJAUIGHZBGHMBGHBABUIDEUHANDOZPULMBGADUAZQBERTUKULCG
        HMCGHCACUIDFUMPULMCGUNQCFRTUBBCAGUCUD $.

      $( Relationship between vector subtraction and addition.  (Contributed by
         NM, 11-Sep-1999.)  (New usage is discouraged.) $)
      hvsubaddi $p |- ( ( A -h B ) = C <-> ( B +h C ) = A ) $=
        ( cmv co wceq c1 cneg csm cva hvsubvali eqeq1i neg1cn hvmulcli hvadd12i
        c0v hvnegidi oveq2i chil wcel ax-hvaddid ax-mp hvaddcli hvaddcani eqcom
        3eqtri 3bitr3i bitri ) ABGHZCIAJKZBLHZMHZCIZBCMHZAIZULUOCABDENOBUOMHZUQ
        IAUQIUPURUSAUQUSABUNMHZMHASMHZABAUNEDUMBPEQZRUTSAMBETUAAUBUCVAAIDAUDUEU
        IOBUOCEAUNDVBUFFUGAUQUHUJUK $.
    $}
  $}

  $( Distribution of negative over subtraction.  (Contributed by NM,
     2-Apr-2000.)  (New usage is discouraged.) $)
  hvnegdi $p |- ( ( A e. ~H /\ B e. ~H ) ->
                ( -u 1 .h ( A -h B ) ) = ( B -h A ) ) $=
    ( chil wcel c1 cneg cmv csm wceq c0v cif oveq1 oveq2d oveq2 eqeq12d ifhvhv0
    co hvnegdii dedth2h ) ACDZBCDZEFZABGQZHQZBAGQZIUBTAJKZBGQZHQZBUFGQZIUBUFUAB
    JKZGQZHQZUJUFGQZIABJJAUFIZUDUHUEUIUNUCUGUBHAUFBGLMAUFBGNOBUJIZUHULUIUMUOUGU
    KUBHBUJUFGNMBUJUFGLOUFUJAPBPRS $.

  $( If the difference between two vectors is zero, they are equal.
     (Contributed by NM, 23-Oct-1999.)  (New usage is discouraged.) $)
  hvsubeq0 $p |- ( ( A e. ~H /\ B e. ~H ) ->
                  ( ( A -h B ) = 0h <-> A = B ) ) $=
    ( chil wcel cmv co c0v wceq wb cif oveq1 eqeq1d eqeq1 bibi12d oveq2 ifhvhv0
    eqeq2 hvsubeq0i dedth2h ) ACDZBCDZABEFZGHZABHZITAGJZBEFZGHZUEBHZIUEUABGJZEF
    ZGHZUEUIHZIABGGAUEHZUCUGUDUHUMUBUFGAUEBEKLAUEBMNBUIHZUGUKUHULUNUFUJGBUIUEEO
    LBUIUEQNUEUIAPBPRS $.

  $( If the sum of two vectors is zero, one is the negative of the other.
     (Contributed by NM, 10-Jun-2006.)  (New usage is discouraged.) $)
  hvaddeq0 $p |- ( ( A e. ~H /\ B e. ~H ) ->
                  ( ( A +h B ) = 0h <-> A = ( -u 1 .h B ) ) ) $=
    ( chil wcel wa cva co c0v wceq c1 cneg csm cmv hvaddsubval eqeq1d wb neg1cn
    cc hvmulcl mpan hvsubeq0 sylan2 bitrd ) ACDZBCDZEZABFGZHIAJKZBLGZMGZHIZAUII
    ZUFUGUJHABNOUEUDUICDZUKULPUHRDUEUMQUHBSTAUIUAUBUC $.

  $( Cancellation law for vector addition.  (Contributed by NM, 18-May-2005.)
     (New usage is discouraged.) $)
  hvaddcan $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                  ( ( A +h B ) = ( A +h C ) <-> B = C ) ) $=
    ( chil wcel cva co wceq wb c0v cif oveq1 eqeq12d bibi1d oveq2 eqeq1 bibi12d
    eqeq1d eqeq2d ifhvhv0 eqeq2 hvaddcani dedth3h ) ADEZBDEZCDEZABFGZACFGZHZBCH
    ZIUDAJKZBFGZUKCFGZHZUJIUKUEBJKZFGZUMHZUOCHZIUPUKUFCJKZFGZHZUOUSHZIABCJJJAUK
    HZUIUNUJVCUGULUHUMAUKBFLAUKCFLMNBUOHZUNUQUJURVDULUPUMBUOUKFORBUOCPQCUSHZUQV
    AURVBVEUMUTUPCUSUKFOSCUSUOUAQUKUOUSATBTCTUBUC $.

  $( Cancellation law for vector addition.  (Contributed by NM, 18-May-2005.)
     (New usage is discouraged.) $)
  hvaddcan2 $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                  ( ( A +h C ) = ( B +h C ) <-> A = B ) ) $=
    ( chil wcel cva co wceq wb ax-hvcom 3adant3 3adant2 eqeq12d hvaddcan bitr3d
    w3a 3coml ) CDEZADEZBDEZACFGZBCFGZHZABHZIRSTPZCAFGZCBFGZHUCUDUEUFUAUGUBRSUF
    UAHTCAJKRTUGUBHSCBJLMCABNOQ $.

  $( Cancellation law for scalar multiplication.  (Contributed by NM,
     19-May-2005.)  (New usage is discouraged.) $)
  hvmulcan $p |- ( ( ( A e. CC /\ A =/= 0 ) /\ B e. ~H /\ C e. ~H )
               -> ( ( A .h B ) = ( A .h C ) <-> B = C ) ) $=
    ( cc wcel cc0 wne wa chil w3a cmv co c0v wo csm wb 3adant3 hvsubeq0 hvmulcl
    wceq df-ne biorf sylbi ad2antlr 3adant1 hvsubdistr1 eqeq1d hvsubcl hvmul0or
    wn sylan2 3impb 3adant2 syl2anc 3bitr3d 3adant1r 3bitr3rd ) ADEZAFGZHZBIEZC
    IEZJBCKLZMTZAFTZVDNZBCTZABOLZACOLZTZUTVAVDVFPZVBUSVKURVAUSVEUJVKAFUAVEVDUBU
    CUDQVAVBVDVGPUTBCRUEURVAVBVFVJPUSURVAVBJZAVCOLZMTZVHVIKLZMTZVFVJVLVMVOMABCU
    FUGURVAVBVNVFPZVAVBHURVCIEVQBCUHAVCUIUKULVLVHIEZVIIEZVPVJPURVAVRVBABSQURVBV
    SVAACSUMVHVIRUNUOUPUQ $.

  $( Cancellation law for scalar multiplication.  (Contributed by NM,
     19-May-2005.)  (New usage is discouraged.) $)
  hvmulcan2 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. ~H /\ C =/= 0h ) ) ->
                  ( ( A .h C ) = ( B .h C ) <-> A = B ) ) $=
    ( cc wcel chil c0v wne wa w3a csm co cmv wb hvmulcl 3adant1 3adant3r bitr3d
    wceq wo 3adant2 hvsubeq0 syl2anc cmin cc0 hvsubdistr2 eqeq1d subcl hvmul0or
    stoic3 wn df-ne biorf orcom syl6bb sylbi ad2antll subeq0 3adant3 3bitr2d )
    ADEZBDEZCFEZCGHZIZJZACKLZBCKLZMLZGSZVGVHSZABSZVAVBVCVJVKNZVDVAVBVCJZVGFEZVH
    FEZVMVAVCVOVBACOUAVBVCVPVABCOPVGVHUBUCQVFVJABUDLZUESZCGSZTZVRVLVAVBVCVJVTNV
    DVNVQCKLZGSZVJVTVNWAVIGABCUFUGVAVBVQDEVCWBVTNABUHVQCUIUJRQVBVEVRVTNZVAVDWCV
    BVCVDVSUKZWCCGULWDVRVSVRTVTVSVRUMVSVRUNUOUPUQPVAVBVRVLNVEABURUSUTR $.

  $( Cancellation law for vector addition.  (Contributed by NM, 18-May-2005.)
     (New usage is discouraged.) $)
  hvsubcan $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                  ( ( A -h B ) = ( A -h C ) <-> B = C ) ) $=
    ( chil wcel w3a cmv co wceq c1 cneg csm cva hvsubval 3adant3 3adant2 neg1cn
    wb hvmulcl mpan eqeq12d cc hvaddcan syl3an3 syl3an2 cc0 wa neg1ne0 hvmulcan
    wne pm3.2i mp3an1 3adant1 3bitrd ) ADEZBDEZCDEZFZABGHZACGHZIAJKZBLHZMHZAVAC
    LHZMHZIZVBVDIZBCIZURUSVCUTVEUOUPUSVCIUQABNOUOUQUTVEIUPACNPUAUPUOVBDEZUQVFVG
    RZVAUBEZUPVIQVABSTUQUOVIVDDEZVJVKUQVLQVACSTAVBVDUCUDUEUPUQVGVHRZUOVKVAUFUJZ
    UGUPUQVMVKVNQUHUKVABCUIULUMUN $.

  $( Cancellation law for vector addition.  (Contributed by NM, 18-May-2005.)
     (New usage is discouraged.) $)
  hvsubcan2 $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                  ( ( A -h C ) = ( B -h C ) <-> A = B ) ) $=
    ( chil wcel cmv co wceq wb w3a cneg csm hvsubcl 3adant3 3adant2 cc0 hvnegdi
    c1 cc wne wa neg1cn neg1ne0 pm3.2i hvmulcan mp3an1 syl2anc eqeq12d hvsubcan
    3bitr3d 3coml ) CDEZADEZBDEZACFGZBCFGZHZABHZIULUMUNJZRKZCAFGZLGZUTCBFGZLGZH
    ZVAVCHZUQURUSVADEZVCDEZVEVFIZULUMVGUNCAMNULUNVHUMCBMOUTSEZUTPTZUAVGVHVIVJVK
    UBUCUDUTVAVCUEUFUGUSVBUOVDUPULUMVBUOHUNCAQNULUNVDUPHUMCBQOUHCABUIUJUK $.

  $( Subtraction of a zero vector.  (Contributed by NM, 2-Apr-2000.)
     (New usage is discouraged.) $)
  hvsub0 $p |- ( A e. ~H -> ( A -h 0h ) = A ) $=
    ( chil wcel c0v cmv co cva c1 cneg csm wceq ax-hv0cl hvsubval neg1cn hvmul0
    mpan2 cc ax-mp oveq2i syl6eq ax-hvaddid eqtrd ) ABCZADEFZADGFZAUCUDAHIZDJFZ
    GFZUEUCDBCUDUHKLADMPUGDAGUFQCUGDKNUFORSTAUAUB $.

  $( Relationship between vector subtraction and addition.  (Contributed by NM,
     30-Oct-1999.)  (New usage is discouraged.) $)
  hvsubadd $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                  ( ( A -h B ) = C <-> ( B +h C ) = A ) ) $=
    ( chil wcel cmv co wceq cva wb c0v oveq1 eqeq1d eqeq2 bibi12d oveq2 ifhvhv0
    cif hvsubaddi dedth3h ) ADEZBDEZCDEZABFGZCHZBCIGZAHZJUAAKRZBFGZCHZUFUHHZJUH
    UBBKRZFGZCHZULCIGZUHHZJUMUCCKRZHZULUQIGZUHHZJABCKKKAUHHZUEUJUGUKVAUDUICAUHB
    FLMAUHUFNOBULHZUJUNUKUPVBUIUMCBULUHFPMVBUFUOUHBULCILMOCUQHZUNURUPUTCUQUMNVC
    UOUSUHCUQULIPMOUHULUQAQBQCQST $.

  $( Hilbert vector space addition/subtraction law.  (Contributed by NM,
     18-May-2005.)  (New usage is discouraged.) $)
  hvaddsub4 $p |- ( ( ( A e. ~H /\ B e. ~H ) /\ ( C e. ~H /\ D e. ~H ) ) ->
          ( ( A +h B ) = ( C +h D ) <-> ( A -h C ) = ( D -h B ) ) ) $=
    ( chil wcel wa cva co cmv wceq hvaddcl ancoms hvsub4 syldan hvsubid hvsubcl
    c0v syl 3eqtrd wb adantr adantl ad2ant2lr hvsubcan2 syl3anc anim2i ad2antlr
    simpr oveq2d ax-hvaddid adantlr adantrr simpl anim1i oveq1d adantll eqeq12d
    ad2antrr hvaddid2 bitr3d ) AEFZBEFZGZCEFZDEFZGZGZABHIZCBHIZJIZCDHIZVJJIZKZV
    IVLKZACJIZDBJIZKVHVIEFZVLEFZVJEFZVNVOUAVDVRVGABLUBVGVSVDCDLUCVCVEVTVBVFVEVC
    VTCBLMUDVIVLVJUEUFVHVKVPVMVQVDVEVKVPKVFVDVEGZVKVPBBJIZHIZVPRHIZVPVDVEVEVCGZ
    VKWCKVEVDWEVDVCVEVBVCUIUGMABCBNOWAWBRVPHVCWBRKVBVEBPUHUJVBVEWDVPKZVCVBVEGVP
    EFWFACQVPUKSULTUMVCVGVMVQKZVBVGVCWGVGVCGZVMCCJIZVQHIZRVQHIZVQVGVCWEVMWJKVGV
    EVCVEVFUNUOCDCBNOWHWIRVQHVEWIRKVFVCCPUSUPVFVCWKVQKZVEVFVCGVQEFWLDBQVQUTSUQT
    MUQURVA $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Inner product postulates for a Hilbert space
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Inner product maps pairs from ` ~H ` to ` CC ` .  (Contributed by NM,
     17-Nov-2007.)  (New usage is discouraged.) $)
  ax-hfi $a |- .ih : ( ~H X. ~H ) --> CC $.

  $( Closure of inner product.  (Contributed by NM, 17-Nov-2007.)
     (New usage is discouraged.) $)
  hicl $p |- ( ( A e. ~H /\ B e. ~H ) -> ( A .ih B ) e. CC ) $=
    ( cc chil csp ax-hfi fovcl ) ABCDDEFG $.

  ${
    hicl.1 $e |- A e. ~H $.
    hicl.2 $e |- B e. ~H $.
    $( Closure inference for inner product.  (Contributed by NM, 1-Aug-1999.)
       (New usage is discouraged.) $)
    hicli $p |- ( A .ih B ) e. CC $=
      ( chil wcel csp co cc hicl mp2an ) AEFBEFABGHIFCDABJK $.
  $}

  $( Conjugate law for inner product.  Postulate (S1) of [Beran] p. 95.  Note
     that ` * `` x ` is the complex conjugate ~ cjval of ` x ` .  In the
     literature, the inner product of ` A ` and ` B ` is usually written
     ` <. A , B >. ` , but our operation notation ~ co allows us to use
     existing theorems about operations and also avoids a clash with the
     definition of an ordered pair ~ df-op .  Physicists use ` <. B | A >. ` ,
     called Dirac bra-ket notation, to represent this operation; see comments
     in ~ df-bra .  (Contributed by NM, 29-Jul-1999.)
     (New usage is discouraged.) $)
  ax-his1 $a |- ( ( A e. ~H /\ B e. ~H ) ->
                ( A .ih B ) = ( * ` ( B .ih A ) ) ) $.

  $( Distributive law for inner product.  Postulate (S2) of [Beran] p. 95.
     (Contributed by NM, 31-Jul-1999.)  (New usage is discouraged.) $)
  ax-his2 $a |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                ( ( A +h B ) .ih C ) = ( ( A .ih C ) + ( B .ih C ) ) ) $.

  $( Associative law for inner product.  Postulate (S3) of [Beran] p. 95.
     Warning:  Mathematics textbooks usually use our version of the axiom.
     Physics textbooks, on the other hand, usually replace the left-hand side
     with ` ( B .ih ( A .h C ) ) ` (e.g., Equation 1.21b of [Hughes] p. 44;
     Definition (iii) of [ReedSimon] p. 36).  See the comments in ~ df-bra for
     why the physics definition is swapped.  (Contributed by NM, 29-May-1999.)
     (New usage is discouraged.) $)
  ax-his3 $a |- ( ( A e. CC /\ B e. ~H /\ C e. ~H ) ->
                ( ( A .h B ) .ih C ) = ( A x. ( B .ih C ) ) ) $.

  $( Identity law for inner product.  Postulate (S4) of [Beran] p. 95.
     (Contributed by NM, 29-May-1999.)  (New usage is discouraged.) $)
  ax-his4 $a |- ( ( A e. ~H /\ A =/= 0h ) -> 0 < ( A .ih A ) ) $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Inner product and norms
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Inner product
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Associative law for inner product.  Lemma 3.1(S5) of [Beran] p. 95.
     (Contributed by NM, 29-Jul-1999.)  (New usage is discouraged.) $)
  his5 $p |- ( ( A e. CC /\ B e. ~H /\ C e. ~H ) ->
                ( B .ih ( A .h C ) ) = ( ( * ` A ) x. ( B .ih C ) ) ) $=
    ( cc wcel chil w3a csm co csp ccj cmul wceq wa hvmulcl ax-his1 sylan2 3impb
    cfv 3com23 3com12 ax-his3 fveq2d hicl cjmul 3adant1 oveq2d eqtr4d 3eqtrd )
    ADEZBFEZCFEZGZBACHIZJIZUNBJIZKSZACBJIZLIZKSZAKSZBCJIZLIZUKUJULUOUQMZUKUJULV
    DUJULNUKUNFEVDACOBUNPQRUAUMUPUSKUJULUKUPUSMACBUBTUCUMUTVAURKSZLIZVCUJULUKUT
    VFMZUJULUKVGULUKNUJURDEVGCBUDAURUEQRTUMVBVEVALUKULVBVEMUJBCPUFUGUHUI $.

  $( Associative law for inner product.  (Contributed by NM, 13-Feb-2006.)
     (New usage is discouraged.) $)
  his52 $p |- ( ( A e. CC /\ B e. ~H /\ C e. ~H ) ->
                ( B .ih ( ( * ` A ) .h C ) ) = ( A x. ( B .ih C ) ) ) $=
    ( cc wcel chil w3a ccj cfv csm co cmul wceq cjcl his5 syl3an1 cjcj 3ad2ant1
    csp oveq1d eqtrd ) ADEZBFEZCFEZGBAHIZCJKSKZUEHIZBCSKZLKZAUHLKZUBUEDEUCUDUFU
    IMANUEBCOPUBUCUIUJMUDUBUGAUHLAQTRUA $.

  $( Move scalar multiplication to outside of inner product.  (Contributed by
     Mario Carneiro, 15-May-2014.)  (New usage is discouraged.) $)
  his35 $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. ~H /\ D e. ~H ) ) ->
                ( ( A .h C ) .ih ( B .h D ) ) =
                  ( ( A x. ( * ` B ) ) x. ( C .ih D ) ) ) $=
    ( cc wcel wa chil csm co csp cmul ccj wceq his5 3expb adantll oveq2d simpll
    cfv simprl hvmulcl ad2ant2l ax-his3 syl3anc ad2antlr adantl mulassd 3eqtr4d
    cjcl hicl ) AEFZBEFZGZCHFZDHFZGZGZACBDIJZKJZLJZABMTZCDKJZLJZLJACIJUSKJZAVBL
    JVCLJURUTVDALUMUQUTVDNZULUMUOUPVFBCDOPQRURULUOUSHFZVEVANULUMUQSZUNUOUPUAUMU
    PVGULUOBDUBUCACUSUDUEURAVBVCVHUMVBEFULUQBUJUFUQVCEFUNCDUKUGUHUI $.

  ${
    his35.1 $e |- A e. CC $.
    his35.2 $e |- B e. CC $.
    his35.3 $e |- C e. ~H $.
    his35.4 $e |- D e. ~H $.
    $( Move scalar multiplication to outside of inner product.  (Contributed by
       NM, 1-Jul-2005.)  (Revised by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    his35i $p |- ( ( A .h C ) .ih ( B .h D ) ) =
              ( ( A x. ( * ` B ) ) x. ( C .ih D ) ) $=
      ( cc wcel chil csm co csp ccj cfv cmul wceq his35 mp4an ) AIJBIJCKJDKJACL
      MBDLMNMABOPQMCDNMQMREFGHABCDST $.
  $}

  $( Distributive law for inner product.  Lemma 3.1(S7) of [Beran] p. 95.
     (Contributed by NM, 31-Jul-1999.)  (New usage is discouraged.) $)
  his7 $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                ( A .ih ( B +h C ) ) = ( ( A .ih B ) + ( A .ih C ) ) ) $=
    ( chil wcel w3a cva co csp ccj caddc wceq ax-his2 fveq2d wa cc hicl ax-his1
    cfv cjadd syl2an 3impdir eqtrd 3comr hvaddcl sylan2 3adant3 3adant2 oveq12d
    3impb 3eqtr4d ) ADEZBDEZCDEZFZBCGHZAIHZJSZBAIHZJSZCAIHZJSZKHZAUPIHZABIHZACI
    HZKHUMUNULURVCLUMUNULFZURUSVAKHZJSZVCVGUQVHJBCAMNUMULUNVIVCLZUMULOUSPEVAPEV
    JUNULOBAQCAQUSVATUAUBUCUDULUMUNVDURLZUMUNOULUPDEVKBCUEAUPRUFUJUOVEUTVFVBKUL
    UMVEUTLUNABRUGULUNVFVBLUMACRUHUIUK $.

  $( Distributive/associative law for inner product, useful for linearity
     proofs.  (Contributed by NM, 10-May-2005.)  (New usage is discouraged.) $)
  hiassdi $p |- ( ( ( A e. CC /\ B e. ~H ) /\ ( C e. ~H /\ D e. ~H ) ) ->
    ( ( ( A .h B ) +h C ) .ih D ) = ( ( A x. ( B .ih D ) ) + ( C .ih D ) ) ) $=
    ( cc wcel chil wa csm cva csp caddc cmul wceq hvmulcl ax-his2 3expb ax-his3
    co sylan 3expa adantrl oveq1d eqtrd ) AEFZBGFZHZCGFZDGFZHZHZABISZCJSDKSZULD
    KSZCDKSZLSZABDKSMSZUOLSUGULGFZUJUMUPNZABOURUHUIUSULCDPQTUKUNUQUOLUGUIUNUQNZ
    UHUEUFUIUTABDRUAUBUCUD $.

  $( Distributive law for inner product of vector subtraction.  (Contributed by
     NM, 16-Nov-1999.)  (New usage is discouraged.) $)
  his2sub $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                ( ( A -h B ) .ih C ) = ( ( A .ih C ) - ( B .ih C ) ) ) $=
    ( chil wcel w3a cmv co csp c1 cneg csm caddc wceq wa cc neg1cn hicl 3adant1
    eqtrd cva cmin hvsubval oveq1d 3adant3 hvmulcl mpan ax-his2 syl3an2 ax-his3
    cmul mp3an1 mulm1d oveq2d 3adant2 negsubd 3eqtrd ) ADEZBDEZCDEZFZABGHZCIHZA
    JKZBLHZUAHZCIHZACIHZBCIHZKZMHZVHVIUBHURUSVCVGNUTURUSOVBVFCIABUCUDUEVAVGVHVE
    CIHZMHZVKUSURVEDEZUTVGVMNVDPEZUSVNQVDBUFUGAVECUHUIUSUTVMVKNURUSUTOZVLVJVHMV
    PVLVDVIUKHZVJVOUSUTVLVQNQVDBCUJULVPVIBCRZUMTUNSTVAVHVIURUTVHPEUSACRUOUSUTVI
    PEURVRSUPUQ $.

  $( Distributive law for inner product of vector subtraction.  (Contributed by
     NM, 13-Feb-2006.)  (New usage is discouraged.) $)
  his2sub2 $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                ( A .ih ( B -h C ) ) = ( ( A .ih B ) - ( A .ih C ) ) ) $=
    ( chil wcel w3a cmv co csp ccj cfv cmin wceq his2sub fveq2d wa hicl ax-his1
    cc cjsub syl2an 3impdir eqtrd 3comr hvsubcl 3adant3 3adant2 oveq12d 3eqtr4d
    sylan2 3impb ) ADEZBDEZCDEZFZBCGHZAIHZJKZBAIHZJKZCAIHZJKZLHZAUPIHZABIHZACIH
    ZLHUMUNULURVCMUMUNULFZURUSVALHZJKZVCVGUQVHJBCANOUMULUNVIVCMZUMULPUSSEVASEVJ
    UNULPBAQCAQUSVATUAUBUCUDULUMUNVDURMZUMUNPULUPDEVKBCUEAUPRUJUKUOVEUTVFVBLULU
    MVEUTMUNABRUFULUNVFVBMUMACRUGUHUI $.

  $( A necessary and sufficient condition for an inner product to be real.
     (Contributed by NM, 2-Jul-2005.)  (New usage is discouraged.) $)
  hire $p |- ( ( A e. ~H /\ B e. ~H ) ->
              ( ( A .ih B ) e. RR <-> ( A .ih B ) = ( B .ih A ) ) ) $=
    ( chil wcel wa csp co cr ccj cfv wceq cc wb hicl cjreb eqcom syl6bb ax-his1
    syl ancoms eqeq2d bitr4d ) ACDZBCDZEZABFGZHDZUFUFIJZKZUFBAFGZKUEUGUHUFKZUIU
    EUFLDUGUKMABNUFOSUHUFPQUEUJUHUFUDUCUJUHKBARTUAUB $.

  $( Real closure of inner product with self.  (Contributed by NM,
     29-May-1999.)  (New usage is discouraged.) $)
  hiidrcl $p |- ( A e. ~H -> ( A .ih A ) e. RR ) $=
    ( chil wcel csp co cr wa wceq eqid hire mpbiri anidms ) ABCZAADEZFCZMMGONNH
    NIAAJKL $.

  $( Inner product with the 0 vector.  (Contributed by NM, 29-May-1999.)
     (New usage is discouraged.) $)
  hi01 $p |- ( A e. ~H -> ( 0h .ih A ) = 0 ) $=
    ( chil wcel c0v csp co cc0 cmul csm wceq ax-hv0cl ax-hvmul0 ax-mp oveq1i cc
    0cn ax-his3 mp3an12 syl5eqr hicl mpan mul02d eqtrd ) ABCZDAEFZGUEHFZGUDUEGD
    IFZAEFZUFUGDAEDBCZUGDJKDLMNGOCUIUDUHUFJPKGDAQRSUDUEUIUDUEOCKDATUAUBUC $.

  $( Inner product with the 0 vector.  (Contributed by NM, 13-Oct-1999.)
     (New usage is discouraged.) $)
  hi02 $p |- ( A e. ~H -> ( A .ih 0h ) = 0 ) $=
    ( chil wcel c0v csp ccj cfv cc0 wceq ax-hv0cl ax-his1 mpan2 hi01 fveq2d cj0
    co syl6eq eqtrd ) ABCZADEPZDAEPZFGZHSDBCTUBIJADKLSUBHFGHSUAHFAMNOQR $.

  $( Inner product with self is not negative.  (Contributed by NM,
     29-May-1999.)  (New usage is discouraged.) $)
  hiidge0 $p |- ( A e. ~H -> 0 <_ ( A .ih A ) ) $=
    ( chil wcel cc0 csp co cle wbr clt wceq wo c0v pm2.1 df-ne ax-his4 sylan2br
    wn wne ex cr wa oveq1 hi01 sylan9eqr eqcomd orim12d mpi 0re hiidrcl sylancr
    wb leloe mpbird ) ABCZDAAEFZGHZDUOIHZDUOJZKZUNALJZQZUTKUSUTMUNVAUQUTURUNVAU
    QVAUNALRUQALNAOPSUNUTURUNUTUAUODUTUNUOLAEFDALAEUBAUCUDUESUFUGUNDTCUOTCUPUSU
    KUHAUIDUOULUJUM $.

  $( Zero inner product with self means vector is zero.  Lemma 3.1(S6) of
     [Beran] p. 95.  (Contributed by NM, 27-Jul-1999.)
     (New usage is discouraged.) $)
  his6 $p |- ( A e. ~H -> ( ( A .ih A ) = 0 <-> A = 0h ) ) $=
    ( chil wcel csp co cc0 wceq c0v wne wa ax-his4 gt0ne0d necon4d oveq1 eqeq1d
    ex hi01 syl5ibrcom impbid ) ABCZAADEZFGZAHGZTAHUAFTAHIZUAFITUDJUAAKLPMTUBUC
    HADEZFGAQUCUAUEFAHADNORS $.

  ${
    his1.1 $e |- A e. ~H $.
    his1.2 $e |- B e. ~H $.
    $( Conjugate law for inner product.  Postulate (S1) of [Beran] p. 95.
       (Contributed by NM, 15-May-2005.)  (New usage is discouraged.) $)
    his1i $p |- ( A .ih B ) = ( * ` ( B .ih A ) ) $=
      ( chil wcel csp co ccj cfv wceq ax-his1 mp2an ) AEFBEFABGHBAGHIJKCDABLM
      $.
  $}

  $( Commuted inner products have the same absolute values.  (Contributed by
     NM, 26-May-2006.)  (New usage is discouraged.) $)
  abshicom $p |- ( ( A e. ~H /\ B e. ~H ) ->
                  ( abs ` ( A .ih B ) ) = ( abs ` ( B .ih A ) ) ) $=
    ( chil wcel wa csp co cabs cfv ccj ax-his1 fveq2d hicl ancoms abscjd eqtrd
    cc ) ACDZBCDZEZABFGZHIBAFGZJIZHIUBHITUAUCHABKLTUBSRUBQDBAMNOP $.

  ${
    $d x A $.
    $( A vector whose inner product is always zero is zero.  (Contributed by
       NM, 24-Oct-1999.)  (New usage is discouraged.) $)
    hial0 $p |- ( A e. ~H -> ( A. x e. ~H ( A .ih x ) = 0 <-> A = 0h ) ) $=
      ( chil wcel cv csp co cc0 wceq wral c0v oveq2 eqeq1d rspcv his6 sylibd wi
      oveq1 hi01 sylan9eq ex a1i ralrimdv impbid ) BCDZBAEZFGZHIZACJZBKIZUEUIBB
      FGZHIZUJUHULABCUFBIUGUKHUFBBFLMNBOPUEUJUHACUJUFCDZUHQQUEUJUMUHUJUMUGKUFFG
      HBKUFFRUFSTUAUBUCUD $.

    $( A vector whose inner product is always zero is zero.  (Contributed by
       NM, 28-Jan-2006.)  (New usage is discouraged.) $)
    hial02 $p |- ( A e. ~H -> ( A. x e. ~H ( x .ih A ) = 0 <-> A = 0h ) ) $=
      ( chil wcel cv csp co cc0 wceq wral c0v oveq1 eqeq1d rspcv his6 sylibd wi
      oveq2 hi02 sylan9eq ex a1i ralrimdv impbid ) BCDZAEZBFGZHIZACJZBKIZUEUIBB
      FGZHIZUJUHULABCUFBIUGUKHUFBBFLMNBOPUEUJUHACUJUFCDZUHQQUEUJUMUHUJUMUGUFKFG
      HBKUFFRUFSTUAUBUCUD $.
  $}

  ${
    hisubcom.1 $e |- A e. ~H $.
    hisubcom.2 $e |- B e. ~H $.
    hisubcom.3 $e |- C e. ~H $.
    hisubcom.4 $e |- D e. ~H $.
    $( Two vector subtractions simultaneously commute in an inner product.
       (Contributed by NM, 1-Jul-2005.)  (New usage is discouraged.) $)
    hisubcomi $p |- ( ( A -h B ) .ih ( C -h D ) ) =
                   ( ( B -h A ) .ih ( D -h C ) ) $=
      ( c1 cneg cmv co csm csp hvnegdii cmul neg1cn hvsubcli ax-1cn 3eqtri wcel
      oveq12i ccj his35i cr wceq neg1rr cjre ax-mp oveq2i mul2negi 1t1e1 oveq1i
      cfv hicli mulid2i eqtr3i ) IJZBAKLZMLZURDCKLZMLZNLZABKLZCDKLZNLUSVANLZUTV
      DVBVENBAFEODCHGOUBVCURURUCUNZPLZVFPLIVFPLVFURURUSVAQQBAFERZDCHGRZUDVHIVFP
      VHURURPLIIPLIVGURURPURUEUAVGURUFUGURUHUIUJIISSUKULTUMVFUSVAVIVJUOUPTUQ $.
  $}

  $( Lemma used to prove equality of vectors.  (Contributed by NM,
     16-Nov-1999.)  (New usage is discouraged.) $)
  hi2eq $p |- ( ( A e. ~H /\ B e. ~H ) ->
               ( ( A .ih ( A -h B ) ) = ( B .ih ( A -h B ) ) <-> A = B ) ) $=
    ( chil wcel wa cmv co csp cmin cc0 wceq hvsubcl his2sub mpd3an3 eqeq1d his6
    c0v wb cc hicl syl bitr3d syldan simpr syl2anc subeq0ad hvsubeq0 3bitr3d )
    ACDZBCDZEZAABFGZHGZBULHGZIGZJKZULQKZUMUNKABKUKULULHGZJKZUPUQUKURUOJUIUJULCD
    ZURUOKABLZABULMNOUKUTUSUQRVAULPUAUBUKUMUNUIUJUTUMSDVAAULTUCUKUJUTUNSDUIUJUD
    VABULTUEUFABUGUH $.

  ${
    $d x A $.  $d x B $.
    $( Two vectors whose inner product is always equal are equal.  (Contributed
       by NM, 16-Nov-1999.)  (New usage is discouraged.) $)
    hial2eq $p |- ( ( A e. ~H /\ B e. ~H ) ->
                   ( A. x e. ~H ( A .ih x ) = ( B .ih x ) <-> A = B ) ) $=
      ( chil wcel wa cv csp co wceq wral cmv wi hvsubcl oveq2 eqeq12d rspcv syl
      hi2eq sylibd oveq1 ralrimivw impbid1 ) BDECDEFZBAGZHIZCUEHIZJZADKZBCJZUDU
      IBBCLIZHIZCUKHIZJZUJUDUKDEUIUNMBCNUHUNAUKDUEUKJUFULUGUMUEUKBHOUEUKCHOPQRB
      CSTUJUHADBCUEHUAUBUC $.

    $( Two vectors whose inner product is always equal are equal.  (Contributed
       by NM, 28-Jan-2006.)  (New usage is discouraged.) $)
    hial2eq2 $p |- ( ( A e. ~H /\ B e. ~H ) ->
                   ( A. x e. ~H ( x .ih A ) = ( x .ih B ) <-> A = B ) ) $=
      ( chil wcel wa cv csp co wceq wral wb ccj cfv ax-his1 eqeqan12d cc ancoms
      hicl cj11 syl2an bitr2d anandirs ralbidva hial2eq bitrd ) BDEZCDEZFZAGZBH
      IZUJCHIZJZADKBUJHIZCUJHIZJZADKBCJUIUMUPADUGUHUJDEZUMUPLUGUQFZUHUQFZFUPUKM
      NZULMNZJZUMURUSUNUTUOVABUJOCUJOPURUKQEZULQEZVBUMLUSUQUGVCUJBSRUQUHVDUJCSR
      UKULTUAUBUCUDABCUEUF $.
  $}

  $( Orthogonality commutes.  (Contributed by NM, 10-Oct-1999.)
     (New usage is discouraged.) $)
  orthcom $p |- ( ( A e. ~H /\ B e. ~H ) ->
                ( ( A .ih B ) = 0 <-> ( B .ih A ) = 0 ) ) $=
    ( chil wcel wa csp cc0 wceq ccj cfv fveq2 cj0 syl6eq ax-his1 ancoms syl5ibr
    co eqeq1d impbid ) ACDZBCDZEZABFQZGHZBAFQZGHZUDUFUBUCIJZGHUDUGGIJZGUCGIKLMU
    BUEUGGUATUEUGHBANORPUFUDUBUEIJZGHUFUIUHGUEGIKLMUBUCUIGABNRPS $.

  ${
    normlem1.1 $e |- S e. CC $.
    normlem1.2 $e |- F e. ~H $.
    normlem1.3 $e |- G e. ~H $.
    $( Lemma used to derive properties of norm.  Part of Theorem 3.3(ii) of
       [Beran] p. 97.  (Contributed by NM, 7-Oct-1999.)
       (New usage is discouraged.) $)
    normlem0 $p |- ( ( F -h ( S .h G ) ) .ih
                         ( F -h ( S .h G ) ) ) =
                ( ( ( F .ih F ) + ( -u ( * ` S ) x. ( F .ih G ) ) ) +
  ( ( -u S x. ( G .ih F ) ) + ( ( S x. ( * ` S ) ) x. ( G .ih G ) ) ) ) $=
      ( csm co csp cneg cva caddc cmul oveq1i oveq2i chil wcel wceq mp3an eqtri
      cmv ccj cfv hvmulcli hvsubvali mulm1i neg1cn eqtr3i eqtr4i oveq12i negcli
      c1 hvmulassi hvaddcli ax-his2 his7 his5 cjnegi ax-his3 hicli cjcli mulcli
      cc adddii mulassi mul2negi 3eqtri ) BACGHZUAHZVIIHBAJZCGHZKHZVLIHZBVLIHZV
      KVLIHZLHZBBIHZAUBUCZJZBCIHZMHZLHZVJCBIHZMHZAVRMHZCCIHZMHZLHZLHVIVLVIVLIVI
      BULJZVHGHZKHVLBVHEACDFUDUEVKWJBKWIAMHZCGHVKWJWKVJCGADUFNWIACUGDFUMUHOUIZW
      LUJBPQZVKPQZVLPQZVMVPREVJCADUKZFUDZBVKEWQUNZBVKVLUOSVNWBVOWHLVNVQBVKIHZLH
      ZWBWMWMWNVNWTREEWQBBVKUPSWSWAVQLWSVJUBUCZVTMHZWAVJVCQZWMCPQZWSXBRWPEFVJBC
      UQSXAVSVTMADURZNTOTVOVJCVLIHZMHZVJWCXAWFMHZLHZMHZWHXCXDWOVOXGRWPFWRVJCVLU
      SSXFXIVJMXFWCCVKIHZLHZXIXDWMWNXFXLRFEWQCBVKUPSXKXHWCLXCXDXDXKXHRWPFFVJCCU
      QSOTOXJWDVJXHMHZLHWHVJWCXHWPCBFEUTXAWFVJWPVAZCCFFUTZVBVDXMWGWDLVJXAMHZWFM
      HXMWGVJXAWFWPXNXOVEXPWEWFMXPVJVSMHWEXAVSVJMXEOAVRDADVAVFTNUHOTVGUJVG $.

    ${
      normlem1.4 $e |- R e. RR $.
      normlem1.5 $e |- ( abs ` S ) = 1 $.
      $( Lemma used to derive properties of norm.  Part of Theorem 3.3(ii) of
         [Beran] p. 97.  (Contributed by NM, 22-Aug-1999.)
         (New usage is discouraged.) $)
      normlem1 $p |- ( ( F -h ( ( S x. R ) .h G ) ) .ih
                         ( F -h ( ( S x. R ) .h G ) ) ) =
                ( ( ( F .ih F ) + ( ( ( * ` S ) x. -u R ) x. ( F .ih G ) ) ) +
  ( ( ( S x. -u R ) x. ( G .ih F ) ) + ( ( R ^ 2 ) x. ( G .ih G ) ) ) ) $=
        ( cmul co csp cfv cneg caddc c2 cexp oveq2i eqtri c1 csm cmv ccj mulcli
        recni normlem0 cjmuli cr wcel wceq cjrebi negeqi mulneg2i eqtr4i oveq1i
        mpbi cjcli eqcomi mul4i cabs absvalsqi 3eqtr3i oveq12i mulid2i sqvali
        sq1 ) CBAJKZDUAKUBKZVHLKCCLKZVGUCMZNZCDLKZJKZOKZVGNZDCLKZJKZVGVJJKZDDLK
        ZJKZOKZOKVIBUCMZANZJKZVLJKZOKZBWCJKZVPJKZAPQKZVSJKZOKZOKVGCDBAEAHUEZUDF
        GUFVNWFWAWKOVMWEVIOVKWDVLJVKWBAJKZNWDVJWMVJWBAUCMZJKZWMBAEWLUGZWNAWBJAU
        HUIWNAUJHAWLUKUPZRSULWBABEUQZWLUMUNUORVQWHVTWJOVOWGVPJWGVOBAEWLUMURUOVR
        WIVSJVRAAJKZWIVRVGWOJKZWSVJWOVGJWPRWTBWBJKZAWNJKZJKZWSBAWBWNEWLWRAWLUQU
        SXCTWSJKWSXATXBWSJBUTMZPQKTPQKXATXDTPQIUOBEVAVFVBWNAAJWQRVCWSAAWLWLUDVD
        SSSAWLVEUNUOVCVCS $.
    $}

    ${
      normlem2.4 $e |- B = -u ( ( ( * ` S ) x. ( F .ih G ) ) +
                    ( S x. ( G .ih F ) ) ) $.
      $( Lemma used to derive properties of norm.  Part of Theorem 3.3(ii) of
         [Beran] p. 97.  (Contributed by NM, 27-Jul-1999.)
         (New usage is discouraged.) $)
      normlem2 $p |- B e. RR $=
        ( ccj cfv csp co cmul caddc cr hicli mulcli his1i oveq12i eqtr4i cjaddi
        cneg wcel wceq cjcli cjcji eqcomi cjmuli oveq2i addcomi addcli renegcli
        cjrebi mpbir eqeltri ) ABIJZCDKLZMLZBDCKLZMLZNLZUBOHVAVAOUCVAIJZVAUDVBU
        TURNLZVAVBURIJZUTIJZNLVCURUTUPUQBEUEZCDFGPZQZBUSEDCGFPZQZUAUTVDURVENUTU
        PIJZUQIJZMLVDBVKUSVLMVKBBEUFUGDCGFRSUPUQVFVGUHTURUPUSIJZMLVEUQVMUPMCDFG
        RUIBUSEVIUHTSTURUTVHVJUJTVAURUTVHVJUKUMUNULUO $.

      normlem3.5 $e |- A = ( G .ih G ) $.
      normlem3.6 $e |- C = ( F .ih F ) $.
      ${
        normlem3.7 $e |- R e. RR $.
        $( Lemma used to derive properties of norm.  Part of Theorem 3.3(ii) of
           [Beran] p. 97.  (Contributed by NM, 21-Aug-1999.)
           (New usage is discouraged.) $)
        normlem3 $p |- ( ( ( A x. ( R ^ 2 ) ) + ( B x. R ) ) + C ) =
                ( ( ( F .ih F ) + ( ( ( * ` S ) x. -u R ) x. ( F .ih G ) ) ) +
  ( ( ( S x. -u R ) x. ( G .ih F ) ) + ( ( R ^ 2 ) x. ( G .ih G ) ) ) ) $=
          ( co cmul caddc csp hicli mulcli c2 cexp ccj cneg eqeltri recni sqcli
          cfv cc normlem2 addcomi cjcli addcli mulneg1i oveq1i mulneg2i 3eqtr4i
          negcli adddiri mul32i oveq12i 3eqtri oveq2i mulcomli addassi ) CADUAU
          BOZPOZBDPOZQOZQOFFROZEUCUHZDUDZPOZFGROZPOZEVLPOZGFROZPOZVFGGROZPOZQOZ
          QOZQOVICQOVJVOQOWAQOCVJVIWBQMVIVHVGQOVOVRQOZVTQOWBVGVHAVFAVSUILGGJJSZ
          UEZDDNUFZUGZTZBDBBEFGHIJKUJUFWFTZUKVHWCVGVTQVHVKVNPOZEVQPOZQOZVLPOZWJ
          VLPOZWKVLPOZQOWCWLUDZDPOWLDPOUDVHWMWLDWJWKVKVNEHULZFGIJSZTZEVQHGFJISZ
          TZUMZWFUNBWPDPKUOWLDXBWFUPUQWJWKVLWSXADWFURZUSWNVOWOVRQVKVNVLWQWRXCUT
          EVQVLHWTXCUTVAVBVFAVTWGWEAVSVFPLVCVDVAVOVRVTVMVNVKVLWQXCTWRTZVPVQEVLH
          XCTWTTZVFVSWGWDTZVEVBVAVICVGVHWHWIUMCVJUIMFFIISZUEUKVJVOWAXGXDVRVTXEX
          FUMVEUQ $.
      $}

      ${
        normlem4.7 $e |- R e. RR $.
        normlem4.8 $e |- ( abs ` S ) = 1 $.
        $( Lemma used to derive properties of norm.  Part of Theorem 3.3(ii) of
           [Beran] p. 97.  (Contributed by NM, 29-Jul-1999.)
           (New usage is discouraged.) $)
        normlem4 $p |- ( ( F -h ( ( S x. R ) .h G ) ) .ih
                       ( F -h ( ( S x. R ) .h G ) ) ) =
                       ( ( ( A x. ( R ^ 2 ) ) + ( B x. R ) ) + C ) $=
          ( cmul co csm csp caddc cmv ccj cneg c2 cexp normlem1 normlem3 eqtr4i
          cfv ) FEDPQGRQUAQZUJSQFFSQEUBUIDUCZPQFGSQPQTQEUKPQGFSQPQDUDUEQZGGSQPQ
          TQTQAULPQBDPQTQCTQDEFGHIJNOUFABCDEFGHIJKLMNUGUH $.

        $( Lemma used to derive properties of norm.  Part of Theorem 3.3(ii) of
           [Beran] p. 97.  (Contributed by NM, 10-Aug-1999.)
           (New usage is discouraged.) $)
        normlem5 $p |- 0 <_
                       ( ( ( A x. ( R ^ 2 ) ) + ( B x. R ) ) + C ) $=
          ( cc0 cmul co caddc cle csm cmv csp cexp chil wcel wbr recni hvmulcli
          c2 mulcli hvsubcli hiidge0 ax-mp normlem4 breqtri ) PFEDQRZGUARZUBRZU
          SUCRZADUJUDRQRBDQRSRCSRTUSUEUFPUTTUGFURIUQGEDHDNUHUKJUIULUSUMUNABCDEF
          GHIJKLMNOUOUP $.
      $}

      $d x A $.  $d x B $.  $d x C $.
      normlem6.7 $e |- ( abs ` S ) = 1 $.
      $( Lemma used to derive properties of norm.  Part of Theorem 3.3(ii) of
         [Beran] p. 97.  (Contributed by NM, 2-Aug-1999.)  (Revised by Mario
         Carneiro, 4-Jun-2014.)  (New usage is discouraged.) $)
      normlem6 $p |- ( abs ` B ) <_
                       ( 2 x. ( ( sqrt ` A ) x. ( sqrt ` C ) ) ) $=
        ( co cmul cle wbr cc0 cr wcel vx c2 cexp csqrt cfv cabs caddc cmin wtru
        c4 csp chil hiidrcl ax-mp eqeltri a1i normlem2 cv cif wceq oveq1 oveq2d
        oveq2 oveq12d oveq1d breq2d 0re elimel normlem5 dedth adantl discr trud
        resqcli remulcli lesubadd2i mpbi recni addid1i breqtri wb sqge0i ltleii
        4re 4pos hiidge0 breqtrri mulge0i mp2an sqrtlei sqrtmulii sqrt4 oveq12i
        absrei eqtr2i 3brtr4i ) BUBUCNZUDUEZUJACONZONZUDUEZBUFUEUBAUDUECUDUEONZ
        ONZPWQWTPQZWRXAPQZWQWTRUGNZWTPWQWTUHNRPQZWQXFPQXGUIUAABCASTUIAFFUKNZSKF
        ULTZXHSTIFUMUNUOZUPBSTUIBDEFGHIJUQZUPCSTUICEEUKNZSLEULTZXLSTHEUMUNUOZUP
        UAURZSTZRAXOUBUCNZONZBXOONZUGNZCUGNZPQZUIXPYBRAXPXORUSZUBUCNZONZBYCONZU
        GNZCUGNZPQXORXOYCUTZYAYHRPYIXTYGCUGYIXRYEXSYFUGYIXQYDAOXOYCUBUCVAVBXOYC
        BOVCVDVEVFABCYCDEFGHIJKLXORSVGVHMVIVJVKVLVMWQWTRBXKVNZUJWSWDACXJXNVOZVO
        ZVGVPVQWTWTYLVRVSVTRWQPQRWTPQZXDXEWABXKWBRUJPQRWSPQZYMRUJVGWDWEWCZRAPQR
        CPQYNRXHAPXIRXHPQIFWFUNKWGZRXLCPXMRXLPQHEWFUNLWGZACXJXNWHWIZUJWSWDYKWHW
        IWQWTYJYLWJWIVQBXKWNXAUJUDUEZWSUDUEZONXCUJWSWDYKYOYRWKYSUBYTXBOWLACXJXN
        YPYQWKWMWOWP $.
    $}
    normlem7.4 $e |- ( abs ` S ) = 1 $.
    $( Lemma used to derive properties of norm.  Part of Theorem 3.3(ii) of
       [Beran] p. 97.  (Contributed by NM, 11-Aug-1999.)
       (New usage is discouraged.) $)
    normlem7 $p |- ( ( ( * ` S ) x. ( F .ih G ) ) + ( S x. ( G .ih F ) ) )
          <_ ( 2 x. ( ( sqrt ` ( G .ih G ) ) x. ( sqrt ` ( F .ih F ) ) ) ) $=
      ( cfv csp co cmul cabs cle wbr c2 csqrt cr wcel eqid hicli ccj caddc cneg
      normlem2 cjcli mulcli addcli negrebi mpbi leabsi breqtrri normlem6 negcli
      absnegi abscli 2re chil hiidge0 hiidrcl ax-mp sqrtcli mp2b remulcli letri
      cc0 mp2an ) AUAHZBCIJZKJZACBIJZKJZUBJZVLUCZLHZMNVNOCCIJZPHZBBIJZPHZKJZKJZ
      MNVLVTMNVLVLLHVNMVLVMQRVLQRVMABCDEFVMSZUDVLVIVKVGVHADUEBCEFTUFAVJDCBFETUF
      UGZUHUIZUJVLWBUNUKVOVMVQABCDEFWAVOSVQSGULVLVNVTWCVMVLWBUMUOOVSUPVPVRCUQRZ
      VEVOMNVPQRFCURVOWDVOQRFCUSUTVAVBBUQRZVEVQMNVRQREBURVQWEVQQREBUSUTVAVBVCVC
      VDVF $.
  $}

  ${
    normlem8.1 $e |- A e. ~H $.
    normlem8.2 $e |- B e. ~H $.
    normlem8.3 $e |- C e. ~H $.
    normlem8.4 $e |- D e. ~H $.
    $( Lemma used to derive properties of norm.  (Contributed by NM,
       30-Jun-2005.)  (New usage is discouraged.) $)
    normlem8 $p |- ( ( A +h B ) .ih ( C +h D ) ) =
        ( ( ( A .ih C ) + ( B .ih D ) ) + ( ( A .ih D ) + ( B .ih C ) ) ) $=
      ( cva co csp caddc chil wcel wceq his7 mp3an oveq12i hvaddcli hicli
      ax-his2 add42i 3eqtr4i ) ACDIJZKJZBUDKJZLJZACKJZADKJZLJZBCKJZBDKJZLJZLJAB
      IJUDKJZUHULLJUIUKLJLJUEUJUFUMLAMNZCMNZDMNZUEUJOEGHACDPQBMNZUPUQUFUMOFGHBC
      DPQRUOURUDMNUNUGOEFCDGHSABUDUAQUHULUIUKACEGTBDFHTADEHTBCFGTUBUC $.

    $( Lemma used to derive properties of norm.  (Contributed by NM,
       30-Jun-2005.)  (New usage is discouraged.) $)
    normlem9 $p |- ( ( A -h B ) .ih ( C -h D ) ) =
        ( ( ( A .ih C ) + ( B .ih D ) ) - ( ( A .ih D ) + ( B .ih C ) ) ) $=
      ( co csp c1 cneg caddc neg1cn cmul wcel chil wceq mp3an 3eqtri cmv csm cc
      cva cmin hvsubvali oveq12i hvmulcli normlem8 ccj ax-his3 oveq2i cr neg1rr
      cfv his5 ax-mp ax-1cn mul2negi mulid2i oveq1i cjcli hicli mulassi 3eqtr3i
      cjre mulm1i eqtri negdii eqtr4i addcli negsubi ) ABUAIZCDUAIZJIAKLZBUBIZU
      DIZCVODUBIZUDIZJIACJIZVPVRJIZMIZAVRJIZVPCJIZMIZMIZVTBDJIZMIZADJIZBCJIZMIZ
      UEIZVMVQVNVSJABEFUFCDGHUFUGAVPCVREVOBNFUHGVODNHUHZUIWFWHWKLZMIWLWBWHWEWNM
      WAWGVTMWAVOBVRJIZOIZVOVOUJUOZWGOIZOIZWGVOUCPZBQPZVRQPWAWPRNFWMVOBVRUKSWOW
      RVOOWTXADQPZWOWRRNFHVOBDUPSULVOWQOIZWGOIKWGOIWSWGXCKWGOXCVOVOOIKKOIKWQVOV
      OOVOUMPWQVORUNVOVFUQZULKKURURUSKURUTTVAVOWQWGNVONVBBDFHVCZVDWGXEUTVETULWE
      WILZWJLZMIWNWCXFWDXGMWCWQWIOIZVOWIOIXFWTAQPXBWCXHRNEHVOADUPSWQVOWIOXDVAWI
      ADEHVCZVGTWDVOWJOIZXGWTXACQPWDXJRNFGVOBCUKSWJBCFGVCZVGVHUGWIWJXIXKVIVJUGW
      HWKVTWGACEGVCXEVKWIWJXIXKVKVLVHT $.
  $}

  ${
    normlem7t.1 $e |- A e. ~H $.
    normlem7t.2 $e |- B e. ~H $.
    $( Lemma used to derive properties of norm.  Part of Theorem 3.3(ii) of
       [Beran] p. 97.  (Contributed by NM, 11-Oct-1999.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    normlem7tALT $p |- ( ( S e. CC /\ ( abs ` S ) = 1 ) ->
              ( ( ( * ` S ) x. ( A .ih B ) ) + ( S x. ( B .ih A ) ) )
          <_ ( 2 x. ( ( sqrt ` ( B .ih B ) ) x. ( sqrt ` ( A .ih A ) ) ) ) ) $=
      ( cc wcel cabs cfv c1 wceq wa ccj csp co cmul caddc csqrt cle fveq2 oveq1
      c2 wbr cif oveq1d oveq12d breq1d eleq1 eqeq1d anbi12d ax-1cn abs1 elimhyp
      pm3.2i simpli simpri normlem7 dedth ) CFGZCHIZJKZLZCMIZABNOZPOZCBANOZPOZQ
      OZUBBBNORIAANORIPOPOZSUCVBCJUDZMIZVDPOZVJVFPOZQOZVISUCCJCVJKZVHVNVISVOVEV
      LVGVMQVOVCVKVDPCVJMTUECVJVFPUAUFUGVJABVJFGZVJHIZJKZVBVPVRLJFGZJHIZJKZLCJV
      OUSVPVAVRCVJFUHVOUTVQJCVJHTUIUJJVJKZVSVPWAVRJVJFUHWBVTVQJJVJHTUIUJVSWAUKU
      LUNUMZUODEVPVRWCUPUQUR $.

    $( Equality case of Bunjakovaskij-Cauchy-Schwarz inequality.  Specifically,
       in the equality case the two vectors are collinear.  Compare ~ bcsiHIL .
       (Contributed by NM, 16-Jul-2001.)  (New usage is discouraged.) $)
    bcseqi $p |- ( ( ( A .ih B ) x. ( B .ih A ) ) = ( ( A .ih A ) x.
             ( B .ih B ) ) <-> ( ( B .ih B ) .h A ) = ( ( A .ih B ) .h B ) ) $=
      ( csp co cmul wceq cc0 caddc hicli wcel chil mp3an ax-his3 oveq12i mulcli
      his5 mulcomi 3eqtri csm cmv c0v hvmulcli normlem9 oveq1 eqcomd ccj cfv cc
      cmin hiidrcl cjre mp2b oveq1i eqtr4i his1i eqcomi mulassi mul32i 3eqtr4ri
      cr 3eqtr4g oveq12d oveq1d addcli subidi syl6eq syl5eq hvsubcli his6 ax-mp
      a1i wb sylib hvsubeq0i impbii ) ABEFZBAEFZGFZAAEFZBBEFZGFZHZWBAUAFZVRBUAF
      ZHZWDWEWFUBFZUCHZWGWDWHWHEFZIHZWIWDWJWEWEEFZWFWFEFZJFZWEWFEFZWFWEEFZJFZUK
      FZIWEWFWEWFWBABBDDKZCUDZVRBABCDKZDUDZWTXBUEWDWRWQWQUKFIWDWNWQWQUKWDWLWOWM
      WPJWDWCWBGFZVTWBGFZWLWOWDXDXCVTWCWBGUFUGWLWBUHUIZWEAEFZGFZWBWBWAGFZGFZXCW
      BUJLZWEMLZAMLZWLXGHWSWTCWBWEARNXEWBXFXHGBMLZWBVBLXEWBHDBULWBUMUNZXJXLXLXF
      XHHWSCCWBAAONZPXIXHWBGFXCWBXHWSWBWAWSAACCKZQSWCXHWBGWAWBXPWSSZUOUPTWOVRUH
      UIZWEBEFZGFZVSWBVRGFZGFZXDVRUJLZXKXMWOXTHXAWTDVRWEBRNXRVSXSYAGVSXRBADCUQU
      RZXJXLXMXSYAHWSCDWBABONPYBYAVSGFWBVTGFZXDVSYABADCKZWBVRWSXAQSWBVRVSWSXAYF
      USWBVTWSVRVSXAYFQZSTTVCWMWPHWDXEWFAEFZGFZYEWPWMXEWBYHVTGXNYCXMXLYHVTHXADC
      VRBAONZPXJWFMLZXLWPYIHWSXBCWBWFARNWMXRWFBEFZGFZVSVRWBGFZGFZYEYCYKXMWMYMHX
      AXBDVRWFBRNXRVSYLYNGYDYCXMXMYLYNHXADDVRBBONPYOYNVSGFXDYEVSYNYFVRWBXAWSQSV
      RWBVSXAWSYFUTVTWBYGWSSTTVAVMVDVEWQWOWPWEWFWTXBKWFWEXBWTKVFVGVHVIWHMLWKWIV
      NWEWFWTXBVJWHVKVLVOWEWFWTXBVPVOWGWCVTWGXFYHWCVTWEWFAEUFWCXHXFXQXOUPYHVTYJ
      URVCUGVQ $.
  $}

  $( Lemma used to derive properties of norm.  Part of Remark 3.4(B) of [Beran]
     p. 98.  (Contributed by NM, 10-May-2005.)  (New usage is discouraged.) $)
  normlem9at $p |- ( ( A e. ~H /\ B e. ~H ) -> ( ( A -h B ) .ih ( A -h B ) ) =
      ( ( ( A .ih A ) + ( B .ih B ) ) - ( ( A .ih B ) + ( B .ih A ) ) ) ) $=
    ( chil wcel cmv co csp caddc cmin wceq c0v cif oveq1 oveq12d oveq1d eqeq12d
    id oveq2 oveq2d ifhvhv0 normlem9 dedth2h ) ACDZBCDZABEFZUEGFZAAGFZBBGFZHFZA
    BGFZBAGFZHFZIFZJUCAKLZBEFZUOGFZUNUNGFZUHHFZUNBGFZBUNGFZHFZIFZJUNUDBKLZEFZVD
    GFZUQVCVCGFZHFZUNVCGFZVCUNGFZHFZIFZJABKKAUNJZUFUPUMVBVLUEUOUEUOGAUNBEMZVMNV
    LUIURULVAIVLUGUQUHHVLAUNAUNGVLQZVNNOVLUJUSUKUTHAUNBGMAUNBGRNNPBVCJZUPVEVBVK
    VOUOVDUOVDGBVCUNERZVPNVOURVGVAVJIVOUHVFUQHVOBVCBVCGVOQZVQNSVOUSVHUTVIHBVCUN
    GRBVCUNGMNNPUNVCUNVCATZBTZVRVSUAUB $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Norms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Alternate definition of the norm of a vector of Hilbert space.  Definition
     of norm in [Beran] p. 96.  (Contributed by NM, 6-Jun-2008.)  (Revised by
     Mario Carneiro, 15-Dec-2013.)  (New usage is discouraged.) $)
  dfhnorm2 $p |- normh = ( x e. ~H |-> ( sqrt ` ( x .ih x ) ) ) $=
    ( cno csp cdm cv co csqrt cfv cmpt chil df-hnorm cxp cc ax-hfi dmeqi dmxpid
    fdmi eqtr2i eqid mpteq12i eqtr4i ) BACDZDZAEZUDCFGHZIAJUEIAKAJUEUCUEUCJJLZD
    JUBUFUFMCNQOJPRUESTUA $.

  $( The norm function maps from Hilbert space to reals.  (Contributed by NM,
     6-Sep-2007.)  (Revised by Mario Carneiro, 15-Dec-2013.)
     (New usage is discouraged.) $)
  normf $p |- normh : ~H --> RR $=
    ( vx chil cr cv csp csqrt cfv dfhnorm2 wcel hiidrcl hiidge0 resqrtcld fmpti
    co cno ) ABCADZPENZFGOAHPBIQPJPKLM $.

  ${
    $d x A $.
    $( The value of the norm of a vector in Hilbert space.  Definition of norm
       in [Beran] p. 96.  In the literature, the norm of ` A ` is usually
       written as "|| ` A ` ||", but we use function value notation to take
       advantage of our existing theorems about functions.  (Contributed by NM,
       29-May-1999.)  (Revised by Mario Carneiro, 23-Dec-2013.)
       (New usage is discouraged.) $)
    normval $p |- ( A e. ~H -> ( normh ` A ) = ( sqrt ` ( A .ih A ) ) ) $=
      ( vx cv csp co csqrt cfv chil cno wceq oveq12 anidms fveq2d dfhnorm2 fvex
      fvmpt ) BABCZQDEZFGAADEZFGHIQAJZRSFTRSJQAQADKLMBNSFOP $.
  $}

  $( Real closure of the norm of a vector.  (Contributed by NM, 29-May-1999.)
     (New usage is discouraged.) $)
  normcl $p |- ( A e. ~H -> ( normh ` A ) e. RR ) $=
    ( chil cr cno normf ffvelrni ) BCADEF $.

  $( The norm of a vector is nonnegative.  (Contributed by NM, 29-May-1999.)
     (New usage is discouraged.) $)
  normge0 $p |- ( A e. ~H -> 0 <_ ( normh ` A ) ) $=
    ( chil wcel cc0 csp csqrt cfv cno hiidrcl hiidge0 sqrtge0d normval breqtrrd
    co cle ) ABCZDAAENZFGAHGOPQAIAJKALM $.

  $( The norm of nonzero vector is positive.  (Contributed by NM, 10-Apr-2006.)
     (New usage is discouraged.) $)
  normgt0 $p |- ( A e. ~H -> ( A =/= 0h <-> 0 < ( normh ` A ) ) ) $=
    ( chil wcel c0v wne cc0 csp co csqrt cfv clt wbr cno wa hiidrcl adantr wceq
    cr ex wn ax-his4 sqrtgt0 syl2anc oveq1 hi01 sylan9eqr fveq2d syl6eq hiidge0
    sqrt0 wb resqrtcld lttri3 sylancl simpr syl6bi syld necon2ad impbid normval
    0re breq2d bitr4d ) ABCZADEZFAAGHZIJZKLZFAMJZKLVDVEVHVDVEVHVDVENVFRCZFVFKLV
    HVDVJVEAOZPAUAVFUBUCSVDVHADVDADQZVGFQZVHTZVDVLVMVDVLNZVGFIJFVOVFFIVLVDVFDAG
    HFADAGUDAUEUFUGUJUHSVDVMVGFKLTZVNNZVNVDVGRCFRCVMVQUKVDVFVKAUIULVAVGFUMUNVPV
    NUOUPUQURUSVDVIVGFKAUTVBVC $.

  $( The norm of a zero vector.  (Contributed by NM, 30-May-1999.)
     (New usage is discouraged.) $)
  norm0 $p |- ( normh ` 0h ) = 0 $=
    ( c0v cno cfv csp co csqrt cc0 chil wcel wceq ax-hv0cl normval ax-mp fveq2d
    hi01 sqrt0 3eqtri ) ABCZAADEZFCZGFCZGAHIZRTJKALMUBTUAJKUBSGFAONMPQ $.

  $( Theorem 3.3(i) of [Beran] p. 97.  (Contributed by NM, 29-Jul-1999.)
     (New usage is discouraged.) $)
  norm-i $p |- ( A e. ~H -> ( ( normh ` A ) = 0 <-> A = 0h ) ) $=
    ( chil wcel c0v wceq cno cfv cc0 wne clt wbr normgt0 cle normcl normge0 0re
    cr wb leltne mp3an1 syl2anc bitrd necon4bid bicomd ) ABCZADEAFGZHEUEADUFHUE
    ADIHUFJKZUFHIZALUEUFQCZHUFMKZUGUHRZANAOHQCUIUJUKPHUFSTUAUBUCUD $.

  $( A norm is nonzero iff its argument is a nonzero vector.  (Contributed by
     NM, 11-Mar-2006.)  (New usage is discouraged.) $)
  normne0 $p |- ( A e. ~H -> ( ( normh ` A ) =/= 0 <-> A =/= 0h ) ) $=
    ( chil wcel cno cfv cc0 c0v norm-i necon3bid ) ABCADEFAGAHI $.

  ${
    normcl.1 $e |- A e. ~H $.
    $( Real closure of the norm of a vector.  (Contributed by NM, 30-Sep-1999.)
       (New usage is discouraged.) $)
    normcli $p |- ( normh ` A ) e. RR $=
      ( chil wcel cno cfv cr normcl ax-mp ) ACDAEFGDBAHI $.

    $( The square of a norm.  (Contributed by NM, 21-Aug-1999.)
       (New usage is discouraged.) $)
    normsqi $p |- ( ( normh ` A ) ^ 2 ) = ( A .ih A ) $=
      ( cno cfv c2 cexp co csp csqrt chil wcel normval ax-mp oveq1i cc0 cle wbr
      wceq hiidge0 cr hiidrcl sqsqrti eqtri ) ACDZEFGAAHGZIDZEFGZUEUDUFEFAJKZUD
      UFRBALMNOUEPQZUGUERUHUIBASMUEUHUETKBAUAMUBMUC $.

    $( Theorem 3.3(i) of [Beran] p. 97.  (Contributed by NM, 5-Sep-1999.)
       (New usage is discouraged.) $)
    norm-i-i $p |- ( ( normh ` A ) = 0 <-> A = 0h ) $=
      ( chil wcel cno cfv cc0 wceq c0v wb norm-i ax-mp ) ACDAEFGHAIHJBAKL $.
  $}

  $( The square of a norm.  (Contributed by NM, 12-May-2005.)
     (New usage is discouraged.) $)
  normsq $p |- ( A e. ~H -> ( ( normh ` A ) ^ 2 ) = ( A .ih A ) ) $=
    ( chil wcel cno cfv c2 cexp co csp wceq c0v fveq2 oveq1d id oveq12d eqeq12d
    cif ifhvhv0 normsqi dedth ) ABCZADEZFGHZAAIHZJUAAKQZDEZFGHZUEUEIHZJAKAUEJZU
    CUGUDUHUIUBUFFGAUEDLMUIAUEAUEIUINZUJOPUEARST $.

  ${
    normsub0.1 $e |- A e. ~H $.
    normsub0.2 $e |- B e. ~H $.
    $( Two vectors are equal iff the norm of their difference is zero.
       (Contributed by NM, 18-Aug-1999.)  (New usage is discouraged.) $)
    normsub0i $p |- ( ( normh ` ( A -h B ) ) = 0 <-> A = B ) $=
      ( cmv co cno cfv cc0 wceq c0v hvsubcli norm-i-i hvsubeq0i bitri ) ABEFZGH
      IJPKJABJPABCDLMABCDNO $.
  $}

  $( Two vectors are equal iff the norm of their difference is zero.
     (Contributed by NM, 18-Aug-1999.)  (New usage is discouraged.) $)
  normsub0 $p |- ( ( A e. ~H /\ B e. ~H ) ->
                  ( ( normh ` ( A -h B ) ) = 0 <-> A = B ) ) $=
    ( chil wcel cmv co cno cfv cc0 wb c0v cif oveq1 fveq2d eqeq1d eqeq1 bibi12d
    wceq oveq2 ifhvhv0 eqeq2 normsub0i dedth2h ) ACDZBCDZABEFZGHZIRZABRZJUDAKLZ
    BEFZGHZIRZUJBRZJUJUEBKLZEFZGHZIRZUJUORZJABKKAUJRZUHUMUIUNUTUGULIUTUFUKGAUJB
    EMNOAUJBPQBUORZUMURUNUSVAULUQIVAUKUPGBUOUJESNOBUOUJUAQUJUOATBTUBUC $.

  ${
    norm-ii.1 $e |- A e. ~H $.
    norm-ii.2 $e |- B e. ~H $.
    $( Triangle inequality for norms.  Theorem 3.3(ii) of [Beran] p. 97.
       (Contributed by NM, 11-Aug-1999.)  (New usage is discouraged.) $)
    norm-ii-i $p |- ( normh ` ( A +h B ) ) <_
                  ( ( normh ` A ) + ( normh ` B ) ) $=
      ( co csp csqrt cfv caddc cle c2 wbr cmul c1 cr wcel wceq ax-1cn cc0 ax-mp
      cva cno cexp ccj 1re cjrebi mpbi oveq1i hicli mulid2i eqtri abs1 normlem7
      oveq12i eqbrtrri cneg eqid normlem2 cjcli mulcli addcli eqeltrri 2re chil
      negrebi hiidge0 hiidrcl sqrtcli remulcli readdcli leadd2i normlem8 oveq2i
      addcomi recni binom2i sqcli 2cn add32i sqsqrti 3eqtri 3brtr4i wb hvaddcli
      sqge0i resqcli sqrtlei mp2an sqrtge0i addge0i sqrtsqi breqtri normval ) A
      BUAEZWNFEZGHZAAFEZGHZBBFEZGHZIEZWNUBHZAUBHZBUBHZIEJWPXAKUCEZGHZXAJWOXEJLZ
      WPXFJLZWQWSIEZBAFEZABFEZIEZIEZXIKWRWTMEZMEZIEZWOXEJXLXOJLXMXPJLNUDHZXJMEZ
      NXKMEZIEZXLXOJXRXJXSXKIXRNXJMEXJXQNXJMNOPXQNQUENRUFUGUHXJBADCUIZUJUKXKABC
      DUIZUJUNZNBARDCULUMUOXLXOXIXTXLOYCXTUPZOPXTOPYDNBARDCYDUQURXTXRXSXQXJNRUS
      YAUTNXKRYBUTVAVEUGVBKXNVCWRWTSWQJLZWROPAVDPZYECAVFTZWQYFWQOPCAVGTZVHTZSWS
      JLZWTOPBVDPZYJDBVFTZWSYKWSOPDBVGTZVHTZVIVIWQWSYHYMVJVKUGWOXIXKXJIEZIEXMAB
      ABCDCDVLYOXLXIIXKXJYBYAVNVMUKXEWRKUCEZXOIEWTKUCEZIEYPYQIEZXOIEXPWRWTWRYIV
      OZWTYNVOZVPYPXOYQWRYSVQKXNVRWRWTYSYTUTUTWTYTVQVSYRXIXOIYPWQYQWSIYEYPWQQYG
      WQYHVTTYJYQWSQYLWSYMVTTUNUHWAWBSWOJLZSXEJLXGXHWCWNVDPZUUAABCDWDZWNVFTXAWR
      WTYIYNVJZWEWOXEUUBWOOPUUCWNVGTXAUUDWFWGWHUGSXAJLZXFXAQSWRJLZSWTJLZUUEYEUU
      FYGWQYHWITYJUUGYLWSYMWITWRWTYIYNWJWHXAUUDWKTWLUUBXBWPQUUCWNWMTXCWRXDWTIYF
      XCWRQCAWMTYKXDWTQDBWMTUNWB $.
  $}

  $( Triangle inequality for norms.  Theorem 3.3(ii) of [Beran] p. 97.
     (Contributed by NM, 10-Mar-2006.)  (New usage is discouraged.) $)
  norm-ii $p |- ( ( A e. ~H /\ B e. ~H ) ->
               ( normh ` ( A +h B ) ) <_ ( ( normh ` A ) + ( normh ` B ) ) ) $=
    ( chil wcel cva co cno cfv caddc cle wbr c0v wceq oveq1 fveq2d fveq2 oveq1d
    cif breq12d ifhvhv0 oveq2 oveq2d norm-ii-i dedth2h ) ACDZBCDZABEFZGHZAGHZBG
    HZIFZJKUEALRZBEFZGHZULGHZUJIFZJKULUFBLRZEFZGHZUOUQGHZIFZJKABLLAULMZUHUNUKUP
    JVBUGUMGAULBENOVBUIUOUJIAULGPQSBUQMZUNUSUPVAJVCUMURGBUQULEUAOVCUJUTUOIBUQGP
    UBSULUQATBTUCUD $.

  ${
    norm-iii.1 $e |- A e. CC $.
    norm-iii.2 $e |- B e. ~H $.
    $( Theorem 3.3(iii) of [Beran] p. 97.  (Contributed by NM, 29-Jul-1999.)
       (New usage is discouraged.) $)
    norm-iii-i $p |- ( normh ` ( A .h B ) )
         = ( ( abs ` A ) x. ( normh ` B ) ) $=
      ( csm co csp csqrt cfv ccj cmul cno cabs his35i fveq2i chil ax-mp normval
      wcel wceq cjmulrcli hiidrcl cjmulge0i cc0 cle wbr hiidge0 sqrtmulii eqtri
      cr hvmulcli cc absval oveq12i 3eqtr4i ) ABEFZUPGFZHIZAAJIKFZHIZBBGFZHIZKF
      ZUPLIZAMIZBLIZKFURUSVAKFZHIVCUQVGHAABBCCDDNOUSVAACUABPSZVAUJSDBUBQACUCVHU
      DVAUEUFDBUGQUHUIUPPSVDURTABCDUKUPRQVEUTVFVBKAULSVEUTTCAUMQVHVFVBTDBRQUNUO
      $.
  $}

  $( Theorem 3.3(iii) of [Beran] p. 97.  (Contributed by NM, 25-Oct-1999.)
     (New usage is discouraged.) $)
  norm-iii $p |- ( ( A e. CC /\ B e. ~H )
             -> ( normh ` ( A .h B ) ) = ( ( abs ` A ) x. ( normh ` B ) ) ) $=
    ( cc wcel chil csm co cno cfv cabs cmul wceq cc0 cif c0v oveq1 fveq2d fveq2
    oveq1d eqeq12d oveq2 oveq2d 0cn elimel ifhvhv0 norm-iii-i dedth2h ) ACDZBED
    ZABFGZHIZAJIZBHIZKGZLUHAMNZBFGZHIZUOJIZUMKGZLUOUIBONZFGZHIZURUTHIZKGZLABMOA
    UOLZUKUQUNUSVEUJUPHAUOBFPQVEULURUMKAUOJRSTBUTLZUQVBUSVDVFUPVAHBUTUOFUAQVFUM
    VCURKBUTHRUBTUOUTAMCUCUDBUEUFUG $.

  ${
    normsub.1 $e |- A e. ~H $.
    normsub.2 $e |- B e. ~H $.
    $( Negative doesn't change the norm of a Hilbert space vector.
       (Contributed by NM, 11-Aug-1999.)  (New usage is discouraged.) $)
    normsubi $p |- ( normh ` ( A -h B ) ) = ( normh ` ( B -h A ) ) $=
      ( c1 cneg cmv csm cno cfv cabs neg1cn hvsubcli norm-iii-i hvnegdii fveq2i
      co cmul ax-1cn eqtri absnegi abs1 oveq1i normcli recni mulid2i 3eqtr3i )
      EFZBAGQZHQZIJUHKJZUIIJZRQZABGQZIJULUHUILBADCMZNUJUNIBADCOPUMEULRQULUKEULR
      UKEKJEESUAUBTUCULULUIUOUDUEUFTUG $.

    $( Analogy to Pythagorean theorem for orthogonal vectors.  Remark 3.4(C) of
       [Beran] p. 98.  (Contributed by NM, 17-Oct-1999.)
       (New usage is discouraged.) $)
    normpythi $p |- ( ( A .ih B ) = 0 -> ( ( normh ` ( A +h B ) ) ^ 2 ) =
                   ( ( ( normh ` A ) ^ 2 ) + ( ( normh ` B ) ^ 2 ) ) ) $=
      ( csp co cc0 wceq cva caddc cno c2 cexp normlem8 chil wcel syl6eq normsqi
      cfv hicli id wb orthcom mp2an biimpi oveq12d oveq2d addcli addid1i syl5eq
      00id hvaddcli oveq12i 3eqtr4g ) ABEFZGHZABIFZUQEFZAAEFZBBEFZJFZUQKSLMFAKS
      LMFZBKSLMFZJFUPURVAUOBAEFZJFZJFZVAABABCDCDNUPVFVAGJFVAUPVEGVAJUPVEGGJFGUP
      UOGVDGJUPUAUPVDGHZAOPBOPUPVGUBCDABUCUDUEUFUKQUGVAUSUTAACCTBBDDTUHUIQUJUQA
      BCDULRVBUSVCUTJACRBDRUMUN $.
  $}

  $( Swapping order of subtraction doesn't change the norm of a vector.
     (Contributed by NM, 14-Aug-1999.)  (New usage is discouraged.) $)
  normsub $p |- ( ( A e. ~H /\ B e. ~H ) ->
                 ( normh ` ( A -h B ) ) = ( normh ` ( B -h A ) ) ) $=
    ( chil wcel cmv co cno cfv wceq c0v cif oveq1 fveq2d oveq2 eqeq12d normsubi
    ifhvhv0 dedth2h ) ACDZBCDZABEFZGHZBAEFZGHZISAJKZBEFZGHZBUEEFZGHZIUETBJKZEFZ
    GHZUJUEEFZGHZIABJJAUEIZUBUGUDUIUOUAUFGAUEBELMUOUCUHGAUEBENMOBUJIZUGULUIUNUP
    UFUKGBUJUEENMUPUHUMGBUJUEELMOUEUJAQBQPR $.

  $( The norm of a vector equals the norm of its negative.  (Contributed by NM,
     23-May-2005.)  (New usage is discouraged.) $)
  normneg $p |- ( A e. ~H ->
                 ( normh ` ( -u 1 .h A ) ) = ( normh ` A ) ) $=
    ( chil wcel c0v cmv co cno cfv cneg csm wceq ax-hv0cl normsub hv2neg fveq2d
    c1 mpan hvsub0 3eqtr3d ) ABCZDAEFZGHZADEFZGHZPIAJFZGHAGHDBCTUBUDKLDAMQTUAUE
    GANOTUCAGAROS $.

  $( Analogy to Pythagorean theorem for orthogonal vectors.  Remark 3.4(C) of
     [Beran] p. 98.  (Contributed by NM, 17-Oct-1999.)
     (New usage is discouraged.) $)
  normpyth $p |- ( ( A e. ~H /\ B e. ~H ) ->
                 ( ( A .ih B ) = 0 -> ( ( normh ` ( A +h B ) ) ^ 2 ) =
                 ( ( ( normh ` A ) ^ 2 ) + ( ( normh ` B ) ^ 2 ) ) ) ) $=
    ( chil wcel csp co cc0 wceq cva cno cfv c2 cexp caddc c0v cif eqeq1d oveq1d
    wi oveq1 fveq2d fveq2 eqeq12d imbi12d oveq2d ifhvhv0 normpythi dedth2h
    oveq2 ) ACDZBCDZABEFZGHZABIFZJKZLMFZAJKZLMFZBJKZLMFZNFZHZSUJAOPZBEFZGHZVCBI
    FZJKZLMFZVCJKZLMFZUTNFZHZSVCUKBOPZEFZGHZVCVMIFZJKZLMFZVJVMJKZLMFZNFZHZSABOO
    AVCHZUMVEVBVLWCULVDGAVCBETQWCUPVHVAVKWCUOVGLMWCUNVFJAVCBITUARWCURVJUTNWCUQV
    ILMAVCJUBRRUCUDBVMHZVEVOVLWBWDVDVNGBVMVCEUIQWDVHVRVKWAWDVGVQLMWDVFVPJBVMVCI
    UIUARWDUTVTVJNWDUSVSLMBVMJUBRUEUCUDVCVMAUFBUFUGUH $.

  $( Corollary to Pythagorean theorem for orthogonal vectors.  Remark 3.4(C) of
     [Beran] p. 98.  (Contributed by NM, 26-Oct-1999.)
     (New usage is discouraged.) $)
  normpyc $p |- ( ( A e. ~H /\ B e. ~H ) ->
            ( ( A .ih B ) = 0 -> ( normh ` A ) <_ ( normh ` ( A +h B ) ) ) ) $=
    ( chil wcel wa co cc0 wceq cno cfv cexp cle wbr caddc normcl resqcld adantr
    c2 cr syl csp cva recnd addid1d sqge0d adantl wb 0re leadd2 mp3an1 eqbrtrrd
    syl2anr mpbid normpyth imp breqtrrd ex hvaddcl normge0 le2sqd sylibrd ) ACD
    ZBCDZEZABUAFGHZAIJZRKFZABUBFZIJZRKFZLMZVFVILMVDVEVKVDVEEVGVGBIJZRKFZNFZVJLV
    DVGVNLMVEVDVGGNFZVGVNLVBVOVGHVCVBVGVBVGVBVFAOZPZUCUDQVDGVMLMZVOVNLMZVCVRVBV
    CVLBOZUEUFVCVMSDZVGSDZVRVSUGZVBVCVLVTPVQGSDWAWBWCUHGVMVGUIUJULUMUKQVDVEVJVN
    HABUNUOUPUQVDVFVIVBVFSDVCVPQVDVHCDZVISDABURZVHOTVBGVFLMVCAUSQVDWDGVILMWEVHU
    STUTVA $.

  ${
    norm3dif.1 $e |- A e. ~H $.
    norm3dif.2 $e |- B e. ~H $.
    norm3dif.3 $e |- C e. ~H $.
    $( Norm of differences around common element.  Part of Lemma 3.6 of [Beran]
       p. 101.  (Contributed by NM, 16-Aug-1999.)
       (New usage is discouraged.) $)
    norm3difi $p |- ( normh ` ( A -h B ) ) <_ ( ( normh ` ( A -h C ) ) +
                   ( normh ` ( C -h B ) ) ) $=
      ( cmv co cno cfv cva csm hvsubvali neg1cn hvmulcli hvassi c0v hvcomi chil
      wcel caddc cle c1 cneg oveq12i hvaddcli wceq hvsubid ax-mp 3eqtr2i oveq1i
      ax-hv0cl ax-hvaddid 3eqtri eqtr3i oveq2i eqtr4i fveq2i hvsubcli norm-ii-i
      eqbrtri ) ABGHZIJACGHZCBGHZKHZIJVCIJVDIJUAHUBVBVEIVBAUCUDZBLHZKHZVEABDEMV
      EAVFCLHZKHZCVGKHZKHAVIVKKHZKHVHVCVJVDVKKACDFMCBFEMUEAVIVKDVFCNFOZCVGFVFBN
      EOZUFPVLVGAKVICKHZVGKHZVLVGVICVGVMFVNPVPQVGKHVGQKHZVGVOQVGKVOCVIKHCCGHZQV
      ICVMFRCCFFMCSTVRQUGFCUHUIUJUKQVGULVNRVGSTVQVGUGVNVGUMUIUNUOUPUNUQURVCVDAC
      DFUSCBFEUSUTVA $.

    $( Norm of differences around common element.  Part of Lemma 3.6 of [Beran]
       p. 101.  (Contributed by NM, 30-Sep-1999.)
       (New usage is discouraged.) $)
    norm3adifii $p |- ( abs ` ( ( normh ` ( A -h C ) ) -
         ( normh ` ( B -h C ) ) ) ) <_ ( normh ` ( A -h B ) ) $=
      ( cmv co cno cfv cmin cle wbr cneg hvsubcli normcli recni caddc norm3difi
      lesubaddi cabs negsubdi2i normsubi oveq1i breqtri eqbrtri lenegcon1i mpbi
      mpbir resubcli abslei mpbir2an ) ACGHZIJZBCGHZIJZKHZUAJABGHZIJZLMUSNUQLMZ
      UQUSLMZUQNZUSLMUTVBUPUNKHZUSLUNUPUNUMACDFOPZQUPUOBCEFOPZQUBVCUSLMUPUSUNRH
      ZLMUPBAGHIJZUNRHVFLBCAEFDSVGUSUNRBAEDUCUDUEUPUNUSVEVDURABDEOPZTUIUFUQUSUN
      UPVDVEUJZVHUGUHVAUNUSUPRHLMACBDFESUNUPUSVDVEVHTUIUQUSVIVHUKUL $.

    ${
      norm3lem.4 $e |- D e. RR $.
      $( Lemma involving norm of differences in Hilbert space.  (Contributed by
         NM, 18-Aug-1999.)  (New usage is discouraged.) $)
      norm3lem $p |- ( ( ( normh ` ( A -h C ) ) < ( D / 2 ) /\
                         ( normh ` ( C -h B ) ) < ( D / 2 ) ) ->
                         ( normh ` ( A -h B ) ) < D ) $=
        ( cmv co cno cfv c2 clt wbr caddc hvsubcli normcli readdcli recni cdiv
        wa cle norm3difi rehalfcli lt2addi lelttri sylancr 2timesi 2cn divcan2i
        cmul 2ne0 eqtr3i syl6breq ) ACIJZKLZDMUAJZNOCBIJZKLZURNOUBZABIJZKLZURUR
        PJZDNVAVCUQUTPJZUCOVEVDNOVCVDNOABCEFGUDUQUTURURUPACEGQRZUSCBGFQRZDHUEZV
        HUFVCVEVDVBABEFQRUQUTVFVGSURURVHVHSUGUHMURULJVDDURURVHTUIDMDHTUJUMUKUNU
        O $.
    $}
  $}

  $( Norm of differences around common element.  Part of Lemma 3.6 of [Beran]
     p. 101.  (Contributed by NM, 20-Apr-2006.)  (New usage is discouraged.) $)
  norm3dif $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) -> ( normh ` ( A -h B ) )
                  <_ ( ( normh ` ( A -h C ) ) + ( normh ` ( C -h B ) ) ) ) $=
    ( chil wcel cmv co cno cfv caddc cle wbr c0v cif oveq1 fveq2d breq12d oveq2
    wceq ifhvhv0 oveq1d oveq2d oveq12d breq2d norm3difi dedth3h ) ADEZBDEZCDEZA
    BFGZHIZACFGZHIZCBFGZHIZJGZKLUGAMNZBFGZHIZUQCFGZHIZUOJGZKLUQUHBMNZFGZHIZVACV
    CFGZHIZJGZKLVEUQUICMNZFGZHIZVIVCFGZHIZJGZKLABCMMMAUQSZUKUSUPVBKVOUJURHAUQBF
    OPVOUMVAUOJVOULUTHAUQCFOPUAQBVCSZUSVEVBVHKVPURVDHBVCUQFRPVPUOVGVAJVPUNVFHBV
    CCFRPUBQCVISZVHVNVEKVQVAVKVGVMJVQUTVJHCVIUQFRPVQVFVLHCVIVCFOPUCUDUQVCVIATBT
    CTUEUF $.

  $( Norm of differences around common element.  (Contributed by NM,
     18-Apr-2007.)  (New usage is discouraged.) $)
  norm3dif2 $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) -> ( normh ` ( A -h B )
                  ) <_ ( ( normh ` ( C -h A ) ) + ( normh ` ( C -h B ) ) ) ) $=
    ( chil wcel w3a cmv cno cfv caddc cle norm3dif wceq normsub 3adant2 breqtrd
    co oveq1d ) ADEZBDEZCDEZFZABGQHIACGQHIZCBGQHIZJQCAGQHIZUDJQKABCLUBUCUEUDJSU
    AUCUEMTACNORP $.

  $( Lemma involving norm of differences in Hilbert space.  (Contributed by NM,
     18-Aug-1999.)  (New usage is discouraged.) $)
  norm3lemt $p |- ( ( ( A e. ~H /\ B e. ~H ) /\ ( C e. ~H /\
                   D e. RR ) ) -> (
          ( ( normh ` ( A -h C ) ) < ( D / 2 ) /\
            ( normh ` ( C -h B ) ) < ( D / 2 ) ) ->
            ( normh ` ( A -h B ) ) < D ) ) $=
    ( wcel cmv co cno cfv c2 clt wbr wa wi c0v cif wceq oveq1 fveq2d breq1d 2re
    chil cr cdiv anbi1d imbi12d oveq2 anbi2d anbi12d imbi1d breq2d breq2 elimel
    ifhvhv0 norm3lem dedth4h ) AUBEZBUBEZCUBEZDUCEZACFGZHIZDJUDGZKLZCBFGZHIZVCK
    LZMZABFGZHIZDKLZNUQAOPZCFGZHIZVCKLZVGMZVLBFGZHIZDKLZNVOCURBOPZFGZHIZVCKLZMZ
    VLVTFGZHIZDKLZNVLUSCOPZFGZHIZVCKLZWHVTFGZHIZVCKLZMZWGNWJUTDJPZJUDGZKLZWMWQK
    LZMZWFWPKLZNABCDOOOJAVLQZVHVPVKVSXBVDVOVGXBVBVNVCKXBVAVMHAVLCFRSTUEXBVJVRDK
    XBVIVQHAVLBFRSTUFBVTQZVPWDVSWGXCVGWCVOXCVFWBVCKXCVEWAHBVTCFUGSTUHXCVRWFDKXC
    VQWEHBVTVLFUGSTUFCWHQZWDWOWGXDVOWKWCWNXDVNWJVCKXDVMWIHCWHVLFUGSTXDWBWMVCKXD
    WAWLHCWHVTFRSTUIUJDWPQZWOWTWGXAXEWKWRWNWSXEVCWQWJKDWPJUDRZUKXEVCWQWMKXFUKUI
    DWPWFKULUFVLVTWHWPAUNBUNCUNDJUCUAUMUOUP $.

  ${
    norm3adift.1 $e |- C e. ~H $.
    $( Norm of differences around common element.  Part of Lemma 3.6 of [Beran]
       p. 101.  (Contributed by NM, 3-Oct-1999.)
       (New usage is discouraged.) $)
    norm3adifi $p |- ( ( A e. ~H /\ B e. ~H ) ->
         ( abs ` ( ( normh ` ( A -h C ) ) -
         ( normh ` ( B -h C ) ) ) ) <_ ( normh ` ( A -h B ) ) ) $=
      ( chil wcel cmv co cno cfv cmin cabs cle wbr c0v cif oveq1 fveq2d breq12d
      wceq oveq1d oveq2d oveq2 ifhvhv0 norm3adifii dedth2h ) AEFZBEFZACGHZIJZBC
      GHZIJZKHZLJZABGHZIJZMNUGAOPZCGHZIJZULKHZLJZUQBGHZIJZMNUSUHBOPZCGHZIJZKHZL
      JZUQVDGHZIJZMNABOOAUQTZUNVAUPVCMVKUMUTLVKUJUSULKVKUIURIAUQCGQRUARVKUOVBIA
      UQBGQRSBVDTZVAVHVCVJMVLUTVGLVLULVFUSKVLUKVEIBVDCGQRUBRVLVBVIIBVDUQGUCRSUQ
      VDCAUDBUDDUEUF $.
  $}

  ${
    normpar.1 $e |- A e. ~H $.
    normpar.2 $e |- B e. ~H $.
    $( Parallelogram law for norms.  Remark 3.4(B) of [Beran] p. 98.
       (Contributed by NM, 21-Aug-1999.)  (New usage is discouraged.) $)
    normpari $p |- ( ( ( normh ` ( A -h B ) ) ^ 2 ) +
                    ( ( normh ` ( A +h B ) ) ^ 2 ) ) =
                  ( ( 2 x. ( ( normh ` A ) ^ 2 ) ) +
                    ( 2 x. ( ( normh ` B ) ^ 2 ) ) ) $=
      ( co cno cfv c2 cexp caddc csp normsqi oveq12i oveq2i hicli 2timesi eqtri
      cmul addcli eqtr4i cmv cva hvsubcli hvaddcli cneg normlem9 negsubi negcli
      cmin normlem8 add42i cc0 negidi addid1i add4i 3eqtri ) ABUAEZFGHIEZABUBEZ
      FGHIEZJEUQUQKEZUSUSKEZJEZHAFGHIEZREZHBFGHIEZREZJEZURVAUTVBJUQABCDUCLUSABC
      DUDLMVHAAKEZVIJEZBBKEZVKJEZJEZVCVEVJVGVLJVEHVIREVJVDVIHRACLNVIAACCOZPQVGH
      VKREVLVFVKHRBDLNVKBBDDOZPQMVCVIVKJEZABKEZBAKEZJEZUEZJEZVPVSJEZJEVPVPJEZVS
      VTJEZJEZVMVAWAVBWBJVAVPVSUIEWAABABCDCDUFVPVSVIVKVNVOSZVQVRABCDOBADCOSZUGT
      ABABCDCDUJMVPVTVPVSWFVSWGUHWFWGUKWEWCULJEWCVMWDULWCJVSWGUMNWCVPVPWFWFSUNV
      IVKVIVKVNVOVNVOUOUPUPTT $.
  $}

  $( Parallelogram law for norms.  Remark 3.4(B) of [Beran] p. 98.
     (Contributed by NM, 15-Apr-2007.)  (New usage is discouraged.) $)
  normpar $p |- ( ( A e. ~H /\ B e. ~H ) ->
          ( ( ( normh ` ( A -h B ) ) ^ 2 ) + ( ( normh ` ( A +h B ) ) ^ 2 ) ) =
       ( ( 2 x. ( ( normh ` A ) ^ 2 ) ) + ( 2 x. ( ( normh ` B ) ^ 2 ) ) ) ) $=
    ( chil wcel cmv co cno cfv c2 cexp cva caddc cmul wceq c0v cif oveq1 fveq2d
    oveq1d oveq2d oveq12d fveq2 eqeq12d oveq2 ifhvhv0 normpari dedth2h ) ACDZBC
    DZABEFZGHZIJFZABKFZGHZIJFZLFZIAGHZIJFZMFZIBGHZIJFZMFZLFZNUHAOPZBEFZGHZIJFZV
    DBKFZGHZIJFZLFZIVDGHZIJFZMFZVBLFZNVDUIBOPZEFZGHZIJFZVDVPKFZGHZIJFZLFZVNIVPG
    HZIJFZMFZLFZNABOOAVDNZUPVKVCVOWHULVGUOVJLWHUKVFIJWHUJVEGAVDBEQRSWHUNVIIJWHU
    MVHGAVDBKQRSUAWHUSVNVBLWHURVMIMWHUQVLIJAVDGUBSTSUCBVPNZVKWCVOWGWIVGVSVJWBLW
    IVFVRIJWIVEVQGBVPVDEUDRSWIVIWAIJWIVHVTGBVPVDKUDRSUAWIVBWFVNLWIVAWEIMWIUTWDI
    JBVPGUBSTTUCVDVPAUEBUEUFUG $.

  ${
    normpar2.1 $e |- A e. ~H $.
    normpar2.2 $e |- B e. ~H $.
    normpar2.3 $e |- C e. ~H $.
    $( Corollary of parallelogram law for norms.  Part of Lemma 3.6 of [Beran]
       p. 100.  (Contributed by NM, 5-Oct-1999.)
       (New usage is discouraged.) $)
    normpar2i $p |- ( ( normh ` ( A -h B ) ) ^ 2 ) =
                   ( ( ( 2 x. ( ( normh ` ( A -h C ) ) ^ 2 ) ) +
                       ( 2 x. ( ( normh ` ( B -h C ) ) ^ 2 ) ) )
          - ( ( normh ` ( ( A +h B ) -h ( 2 .h C ) ) ) ^ 2 ) ) $=
      ( cva co c2 csm cmv cno cfv cexp cmul caddc 2cn c4 cdiv oveq1i 4cn mulcli
      hvaddcli hvmulcli hvsubcli normcli resqcli 2ne0 divdiri addcomi cabs cneg
      recni neg1cn hvadd32i hvsubvali hvcomi hvnegdii oveq12i hvsubcan2i eqtr4i
      c1 eqtri 3eqtr4i hvsubdistr1i fveq2i norm-iii-i cc0 cle wbr wceq 0le2 2re
      absidi ax-mp 3eqtri sqmuli sq2 normpari divcan3i div23i 3eqtr3i mvlladdi
      4d2e2 ) ABGHZICJHZKHZLMZINHZABKHZLMZINHZIACKHZLMZINHZOHZIBCKHZLMZINHZOHZP
      HZWIWHWGWEWFABDEUCZICQFUDZUEZUFUGUMZWLWKWJABDEUEZUFUGUMZRWOOHZRWSOHZPHZIS
      HZXHISHZXIISHZPHWIWLPHZXAXHXIIRWOUAWOWNWMACDFUEZUFZUGUMZUBZRWSUAWSWRWQBCE
      FUEZUFZUGUMZUBZQUHUIXKIWIOHZIWLOHZPHZISHYCISHZYDISHZPHXNXJYEISXJWGWJKHZLM
      ZINHZWGWJGHZLMZINHZPHZYEXJXIXHPHYNXHXIXRYBUJYJXIYMXHPYJIWROHZINHIINHZWSOH
      XIYIYOINYIIWQJHZLMIUKMZWROHYOYHYQLWGVBULZWJJHZGHZIBJHZWFKHZYHYQWEYSWFJHZG
      HZYTGHWEYTGHZUUDGHZUUAUUCWEUUDYTXBYSWFUNXCUDZYSWJUNXFUDUOWGUUEYTGWEWFXBXC
      UPZTUUCUUBUUDGHUUGUUBWFIBQEUDXCUPUUFUUBUUDGUUFBAGHZBAKHZGHUUBWEUUJYTUUKGA
      BDEUQABDEURUSBAEDUTVCTVAVDWGWJXDXFUPIBCQEFVEVDVFIWQQXSVGYRIWROVHIVIVJYRIV
      KVLIVMVNVOZTVPTIWRQWRXTUMVQYPRWSOVRTVPYMIWNOHZINHYPWOOHXHYLUUMINYLIWMJHZL
      MYRWNOHUUMYKUUNLUUEWJGHZIAJHZWFKHZYKUUNWEWJGHZUUDGHUUPUUDGHUUOUUQUURUUPUU
      DGABDEUTTWEUUDWJXBUUHXFUOUUPWFIAQDUDXCUPVDWGUUEWJGUUITIACQDFVEVDVFIWMQXOV
      GYRIWNOUULTVPTIWNQWNXPUMVQYPRWOOVRTVPUSVAWGWJXDXFVSVCTYCYDIIWIQXEUBIWLQXG
      UBQUHUIYFWIYGWLPWIIXEQUHVTWLIXGQUHVTUSVPXLWPXMWTPXLRISHZWOOHWPRWOIUAXQQUH
      WAUUSIWOOWDTVCXMUUSWSOHWTRWSIUAYAQUHWAUUSIWSOWDTVCUSWBWC $.
  $}

  ${
    polid2.1 $e |- A e. ~H $.
    polid2.2 $e |- B e. ~H $.
    polid2.3 $e |- C e. ~H $.
    polid2.4 $e |- D e. ~H $.
    $( Generalized polarization identity.  Generalization of Exercise 4(a) of
       [ReedSimon] p. 63.  (Contributed by NM, 30-Jun-2005.)
       (New usage is discouraged.) $)
    polid2i $p |- ( A .ih B ) = ( ( ( ( ( A +h C ) .ih ( D +h B ) ) -
                ( ( A -h C ) .ih ( D -h B ) ) ) +
       ( _i x. ( ( ( A +h ( _i .h C ) ) .ih ( D +h ( _i .h B ) ) ) -
               ( ( A -h ( _i .h C ) ) .ih ( D -h ( _i .h B ) ) ) ) ) ) / 4 ) $=
      ( csp co cmin ci cmul caddc hicli c2 addcli wcel oveq12i ax-icn c4 subcli
      cva cmv csm 4cn 4ne0 2cn adddii wceq ppncan 2timesi eqtr4i oveq2i mulassi
      cc mp3an 2t2e4 oveq1i 3eqtr2ri pnncani normlem8 normlem9 3eqtr4i hvmulcli
      cneg ccj cfv chil cji eqtri ax-his3 eqtr3i 3eqtri negicn mulcli mul12i c1
      his5 mulneg2i ixi negeqi negneg1e1 mulid2i 3eqtr3i mulm1i negsubi 3eqtr2i
      mvllmuli ) UAABIJZACUCJDBUCJIJZACUDJDBUDJIJZKJZLALCUEJZUCJDLBUEJZUCJIJZAW
      NUDJDWOUDJIJZKJZMJZNJZUFABEFOZUGPWJCDIJZNJZWJXBKJZNJZMJZPXCMJZPXDMJZNJUAW
      JMJZWTPXCXDUHWJXBXACDGHOZQZWJXBXAXJUBUIXFPPWJMJZMJPPMJZWJMJXIXEXLPMXEWJWJ
      NJZXLWJUPRZXBUPRXOXEXNUJXAXJXAWJXBWJUKUQWJXAULUMUNPPWJUHUHXAUOXMUAWJMURUS
      UTWMXGWSXHNADIJZCBIJZNJZXCNJZXRXCKJZKJXCXCNJWMXGXRXCXCXPXQADEHOZCBGFOQXKX
      KVAWKXSWLXTKACDBEGHFVBACDBEGHFVCSXCXKULVDWSLPLVFZWJMJZLXBMJZNJZMJZMJPLYEM
      JZMJXHWRYFLMWRXPWNWOIJZNJZAWOIJZWNDIJZNJZNJZYIYLKJZKJYLYLNJZYFWPYMWQYNKAW
      NDWOELCTGVEZHLBTFVEZVBAWNDWOEYPHYQVCSYIYLYLXPYHYAWNWOYPYQOQYJYKAWOEYQOWND
      YPHOQZYRVAPYLMJYOYFYLYRULYLYEPMYJYCYKYDNYJLVGVHZWJMJZYCLUPRZAVIRBVIRYJYTU
      JTEFLABVSUQYSYBWJMVJUSVKUUACVIRDVIRYKYDUJTGHLCDVLUQSUNVMVNUNPLYEUHTYCYDYB
      WJVOXAVPZLXBTXJVPZQVQYGXDPMYGLYCMJZLYDMJZNJWJXBVFZNJXDLYCYDTUUBUUCUIUUDWJ
      UUEUUFNLYBMJZWJMJVRWJMJUUDWJUUGVRWJMUUGLLMJZVFVRVFZVFVRLLTTVTUUHUUIWAWBWC
      VNUSLYBWJTVOXAUOWJXAWDWEUUHXBMJUUIXBMJUUEUUFUUHUUIXBMWAUSLLXBTTXJUOXBXJWF
      WESWJXBXAXJWGVNUNWHSVDWI $.
  $}

  ${
    polid.1 $e |- A e. ~H $.
    polid.2 $e |- B e. ~H $.
    $( Polarization identity.  Recovers inner product from norm.  Exercise 4(a)
       of [ReedSimon] p. 63.  The outermost operation is + instead of - due to
       our mathematicians' (rather than physicists') version of axiom
       ~ ax-his3 .  (Contributed by NM, 30-Jun-2005.)
       (New usage is discouraged.) $)
    polidi $p |- ( A .ih B ) = ( ( ( ( ( normh ` ( A +h B ) ) ^ 2 ) -
                ( ( normh ` ( A -h B ) ) ^ 2 ) ) +
       ( _i x. ( ( ( normh ` ( A +h ( _i .h B ) ) ) ^ 2 ) -
                ( ( normh ` ( A -h ( _i .h B ) ) ) ^ 2 ) ) ) ) / 4 ) $=
      ( csp co cva cmv cmin ci cmul caddc c4 cdiv cno cfv cexp normsqi oveq12i
      c2 csm polid2i hvaddcli hvsubcli ax-icn hvmulcli oveq2i oveq1i eqtr4i ) A
      BEFABGFZUJEFZABHFZULEFZIFZJAJBUAFZGFZUPEFZAUOHFZUREFZIFZKFZLFZMNFUJOPTQFZ
      ULOPTQFZIFZJUPOPTQFZUROPTQFZIFZKFZLFZMNFABBACDDCUBVJVBMNVEUNVIVALVCUKVDUM
      IUJABCDUCRULABCDUDRSVHUTJKVFUQVGUSIUPAUOCJBUEDUFZUCRURAUOCVKUDRSUGSUHUI
      $.
  $}

  $( Polarization identity.  Recovers inner product from norm.  Exercise 4(a)
     of [ReedSimon] p. 63.  The outermost operation is + instead of - due to
     our mathematicians' (rather than physicists') version of axiom ~ ax-his3 .
     (Contributed by NM, 17-Nov-2007.)  (New usage is discouraged.) $)
  polid $p |- ( ( A e. ~H /\ B e. ~H ) ->
           ( A .ih B ) = ( ( ( ( ( normh ` ( A +h B ) ) ^ 2 ) -
              ( ( normh ` ( A -h B ) ) ^ 2 ) ) +
       ( _i x. ( ( ( normh ` ( A +h ( _i .h B ) ) ) ^ 2 ) -
                ( ( normh ` ( A -h ( _i .h B ) ) ) ^ 2 ) ) ) ) / 4 ) ) $=
    ( csp co cva cno cfv c2 cexp cmv cmin ci cmul caddc cdiv wceq fveq2d oveq1d
    c4 oveq12d chil wcel csm c0v cif oveq1 oveq2d eqeq12d oveq2 ifhvhv0 dedth2h
    polidi ) AUAUBZBUAUBZABCDZABEDZFGZHIDZABJDZFGZHIDZKDZLALBUCDZEDZFGZHIDZAVCJ
    DZFGZHIDZKDZMDZNDZSODZPUMAUDUEZBCDZVNBEDZFGZHIDZVNBJDZFGZHIDZKDZLVNVCEDZFGZ
    HIDZVNVCJDZFGZHIDZKDZMDZNDZSODZPVNUNBUDUEZCDZVNWMEDZFGZHIDZVNWMJDZFGZHIDZKD
    ZLVNLWMUCDZEDZFGZHIDZVNXBJDZFGZHIDZKDZMDZNDZSODZPABUDUDAVNPZUOVOVMWLAVNBCUF
    XMVLWKSOXMVBWBVKWJNXMURVRVAWAKXMUQVQHIXMUPVPFAVNBEUFQRXMUTVTHIXMUSVSFAVNBJU
    FQRTXMVJWILMXMVFWEVIWHKXMVEWDHIXMVDWCFAVNVCEUFQRXMVHWGHIXMVGWFFAVNVCJUFQRTU
    GTRUHBWMPZVOWNWLXLBWMVNCUIXNWKXKSOXNWBXAWJXJNXNVRWQWAWTKXNVQWPHIXNVPWOFBWMV
    NEUIQRXNVTWSHIXNVSWRFBWMVNJUIQRTXNWIXILMXNWEXEWHXHKXNWDXDHIXNWCXCFXNVCXBVNE
    BWMLUCUIZUGQRXNWGXGHIXNWFXFFXNVCXBVNJXOUGQRTUGTRUHVNWMAUJBUJULUK $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Relate Hilbert space to normed complex vector spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( Hilbert space vector addition is an Abelian group operation.
       (Contributed by NM, 15-Apr-2007.)  (New usage is discouraged.) $)
    hilablo $p |- +h e. AbelOp $=
      ( vx vy vz cva chil c0v c1 cv csm co ax-hilex ax-hfvadd ax-hvass ax-hv0cl
      cneg hvaddid2 cc wcel neg1cn ax-hvcom hvmulcl mpan wceq mpancom eqtrd cxp
      hvnegid isgrpoi fdmi isabloi ) ABDEABCFDGOZAHZIJZEKLULBHZCHMNULPUKQRULERZ
      UMERZSUKULUAUBZUOUMULDJZULUMDJZFUPUOURUSUCUQUMULTUDULUGUEUHEEUFEDLUIULUNT
      UJ $.

    $( The group identity element of Hilbert space vector addition is the zero
       vector.  (Contributed by NM, 16-Apr-2007.)
       (New usage is discouraged.) $)
    hilid $p |- ( GId ` +h ) = 0h $=
      ( vy vx cva cgi cfv cv co wceq chil wral crio c0v cgr wcel cablo ablogrpo
      hilablo ax-mp cxp ax-hfvadd fdmi grporn eqid grpoidval hvaddid2 rgen wreu
      wb ax-hv0cl grpoideu oveq1 eqeq1d ralbidv riota2 mp2an mpbi eqtri ) CDEZA
      FZBFZCGZUTHZBIJZAIKZLCMNZURVDHCONVEQCPRZBAURCICIVFIISICTUAUBZURUCUDRLUTCG
      ZUTHZBIJZVDLHZVIBIUTUEUFLINVCAIUGZVJVKUHUIVEVLVFBACIVGUJRVCVJAILUSLHZVBVI
      BIVMVAVHUTUSLUTCUKULUMUNUOUPUQ $.

    $( Hilbert space is a complex vector space.  Vector addition is ` +h ` ,
       and scalar product is ` .h ` .  (Contributed by NM, 15-Apr-2007.)
       (New usage is discouraged.) $)
    hilvc $p |- <. +h , .h >. e. CVecOLD $=
      ( vx vy vz csm cva cop chil hilablo cxp ax-hfvadd ax-hfvmul cv ax-hvmulid
      fdmi ax-hvdistr1 ax-hvdistr2 ax-hvmulass eqid isvciOLD ) ABCDEEDFZGHGGIGE
      JNKALZMBLZUACLZOUBUCUAPUBUCUAQTRS $.
  $}

  ${
    $d x U $.
    hilnorm.5 $e |- ~H = ( BaseSet ` U ) $.
    hilnorm.2 $e |- .ih = ( .iOLD ` U ) $.
    hilnorm.9 $e |- U e. NrmCVec $.
    $( Hilbert space norm in terms of vector space norm.  (Contributed by NM,
       11-Sep-2007.)  (Revised by Mario Carneiro, 23-Dec-2013.)
       (New usage is discouraged.) $)
    hilnormi $p |- normh = ( normCV ` U ) $=
      ( vx chil cv cnmcv cfv cmpt csp co csqrt cno cnv wcel wceq eqid ipnm mpan
      mpteq2ia cr nvf feqmptd ax-mp dfhnorm2 3eqtr4ri ) EFEGZAHIZIZJZEFUHUHKLMI
      ZJUINEFUJULAOPZUHFPUJULQDUHKAUIFBUIRZCSTUAUMUIUKQDUMEFUBUIAUIFBUNUCUDUEEU
      FUG $.
  $}

  ${
    hilhh.1 $e |- ~H = ( BaseSet ` U ) $.
    hilhh.2 $e |- +h = ( +v ` U ) $.
    hilhh.3 $e |- .h = ( .sOLD ` U ) $.
    hilhh.5 $e |- .ih = ( .iOLD ` U ) $.
    hilhh.9 $e |- U e. NrmCVec $.
    $( Deduce the structure of Hilbert space from its components.  (Contributed
       by NM, 10-Apr-2008.)  (New usage is discouraged.) $)
    hilhhi $p |- U = <. <. +h , .h >. , normh >. $=
      ( cnv wcel cva csm cop cno wceq hilnormi nvop ax-mp ) AGHAIJKLKMFJAILCDAB
      EFNOP $.
  $}

  ${
    $d x y U $.
    hhnv.1 $e |- U = <. <. +h , .h >. , normh >. $.
    $( Hilbert space is a normed complex vector space.  (Contributed by NM,
       17-Nov-2007.)  (New usage is discouraged.) $)
    hhnv $p |- U e. NrmCVec $=
      ( vx csm cva cno chil c0v cablo wcel cgr hilablo ablogrpo ax-mp ax-hfvadd
      vy cxp cfv cv wceq fdmi grporn cgi hilid eqcomi hilvc normf norm-i biimpa
      cc0 norm-iii norm-ii isnvi ) CPDAEFGHEGEIJEKJLEMNGGQGEOUAUBEUCRHUDUEUFUGC
      SZGJUNFRUJTUNHTUNUHUIPSZUNUKUNUOULBUM $.

    $( The group (addition) operation of Hilbert space.  (Contributed by NM,
       17-Nov-2007.)  (New usage is discouraged.) $)
    hhva $p |- +h = ( +v ` U ) $=
      ( hhnv h2hva ) ABABCD $.

    $( The base set of Hilbert space.  This theorem provides an independent
       proof of ~ df-hba (see comments in that definition).  (Contributed by
       NM, 17-Nov-2007.)  (New usage is discouraged.) $)
    hhba $p |- ~H = ( BaseSet ` U ) $=
      ( chil cva crn cba cfv cablo wcel cgr hilablo ablogrpo cxp ax-hfvadd fdmi
      ax-mp grporn eqid hhva bafval eqtr4i ) CDEAFGZDCDHIDJIKDLPCCMCDNOQADUBUBR
      ABSTUA $.

    $( The zero vector of Hilbert space.  (Contributed by NM, 17-Nov-2007.)
       (Revised by Mario Carneiro, 23-Dec-2013.)
       (New usage is discouraged.) $)
    hh0v $p |- 0h = ( 0vec ` U ) $=
      ( cn0v cfv cpv cgi cva wcel wceq hhnv eqid 0vfval ax-mp hhva fveq2i hilid
      c0v cnv 3eqtr2ri ) ACDZAEDZFDZGFDQARHTUBIABJAUARTUAKTKLMGUAFABNOPS $.

    $( The scalar product operation of Hilbert space.  (Contributed by NM,
       17-Nov-2007.)  (New usage is discouraged.) $)
    hhsm $p |- .h = ( .sOLD ` U ) $=
      ( hhnv h2hsm ) ABABCD $.

    $( The vector subtraction operation of Hilbert space.  (Contributed by NM,
       13-Dec-2007.)  (New usage is discouraged.) $)
    hhvs $p |- -h = ( -v ` U ) $=
      ( hhnv hhba h2hvs ) ABABCABDE $.

    $( The norm function of Hilbert space.  (Contributed by NM, 17-Nov-2007.)
       (New usage is discouraged.) $)
    hhnm $p |- normh = ( normCV ` U ) $=
      ( hhnv h2hnm ) ABABCD $.

    ${
      hhims.2 $e |- D = ( normh o. -h ) $.
      $( The induced metric of Hilbert space.  (Contributed by NM,
         17-Nov-2007.)  (New usage is discouraged.) $)
      hhims $p |- D = ( IndMet ` U ) $=
        ( cno cmv ccom cims cfv cnv wcel wceq hhnv hhvs hhnm eqid imsval eqtr4i
        ax-mp ) AEFGZBHIZDBJKUATLBCMUABFEBCNBCOUAPQSR $.
    $}

    ${
      hhims2.2 $e |- D = ( IndMet ` U ) $.
      $( Hilbert space distance metric.  (Contributed by NM, 10-Apr-2008.)
         (New usage is discouraged.) $)
      hhims2 $p |- D = ( normh o. -h ) $=
        ( cims cfv cno cmv ccom eqid hhims eqtr4i ) ABEFGHIZDMBCMJKL $.

      $( The induced metric of Hilbert space.  (Contributed by NM,
         10-Apr-2008.)  (New usage is discouraged.) $)
      hhmet $p |- D e. ( Met ` ~H ) $=
        ( cnv wcel chil cme cfv hhnv hhba imsmet ax-mp ) BEFAGHIFBCJABGBCKDLM
        $.

      $( The induced metric of Hilbert space.  (Contributed by Mario Carneiro,
         10-Sep-2015.)  (New usage is discouraged.) $)
      hhxmet $p |- D e. ( *Met ` ~H ) $=
        ( chil cme cfv wcel cxmt hhmet metxmet ax-mp ) AEFGHAEIGHABCDJAEKL $.

      $( Value of the distance function of the metric space of Hilbert space.
         (Contributed by NM, 10-Apr-2008.)  (New usage is discouraged.) $)
      hhmetdval $p |- ( ( A e. ~H /\ B e. ~H ) ->
                  ( A D B ) = ( normh ` ( A -h B ) ) ) $=
        ( hhnv hhba h2hmetdval ) ABCDEDEGDEHFI $.
    $}

    $( The inner product operation of Hilbert space.  (Contributed by NM,
       17-Nov-2007.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    hhip $p |- .ih = ( .iOLD ` U ) $=
      ( vx vy csp cfv wceq cv co chil wral wcel cva cno c2 cexp cmv cmin ci cc
      cdip wa csm cmul caddc c4 cdiv polid hhnv hhba hhva hhsm hhnm eqid ipval3
      cnv hhvs mp3an1 eqtr4d rgen2a cxp wf wb ax-hfi ipf wfn ffn eqfnov2 syl2an
      ax-mp mp2an mpbir ) EAUAFZGZCHZDHZEIZVOVPVMIZGZDJKCJKZVSCDJVOJLZVPJLZUBVQ
      VOVPMINFOPIVOVPQINFOPIRISVOSVPUCIZMINFOPIVOWCQINFOPIRIUDIUEIUFUGIZVRVOVPU
      HAUPLZWAWBVRWDGABUIZVOVPVMUCAMQNJABUJZABUKABULABUMVMUNZABUQUOURUSUTJJVAZT
      EVBZWITVMVBZVNVTVCZVDWEWKWFVMAJWGWHVEVJWJEWIVFVMWIVFWLWKWITEVGWITVMVGCDJJ
      EVMVHVIVKVL $.

    $( The Hilbert space of the Hilbert Space Explorer is an inner product
       space.  (Contributed by NM, 24-Nov-2007.)
       (New usage is discouraged.) $)
    hhph $p |- U e. CPreHilOLD $=
      ( vx vy ccphlo wcel cva csm cno co cfv cexp caddc chil normcl recnd sqcld
      c2 cc cvv cop cnv cv c1 cneg cmul wceq wral eqid hhnv wa normpar hvsubval
      cmv fveq2d oveq1d oveq2d cr hvaddcl syl hvsubcl addcomd eqtr3d 2cn mp3an1
      adddi syl2an 3eqtr4d rgen2a wb cablo hilablo elexi hvmulex normf ax-hilex
      fex mp2an w3a eleq1i cgr ablogrpo ax-mp cxp ax-hfvadd grporn isphg syl5bb
      wf fdmi mp3an mpbir2an ) AEFZGHUAIUAZUBFZCUCZDUCZGJZIKZRLJZWPUDUEWQHJGJZI
      KZRLJZMJZRWPIKZRLJZWQIKZRLJZMJUFJZUGZDNUHCNUHZWNWNUIUJXJCDNWPNFZWQNFZUKZW
      PWQUNJZIKZRLJZWTMJZRXFUFJRXHUFJMJZXDXIWPWQULXNWTXQMJXDXRXNXQXCWTMXNXPXBRL
      XNXOXAIWPWQUMUOUPUQXNWTXQXNWSXNWSXNWRNFWSURFWPWQUSWROUTPQXNXPXNXONFZXPSFW
      PWQVAXTXPXOOPUTQVBVCXLXFSFZXHSFZXIXSUGZXMXLXEXLXEWPOPQXMXGXMXGWQOPQRSFYAY
      BYCVDRXFXHVFVEVGVHVIGTFZHTFZITFZWMWOXKUKZVJGVKVLVMVNNURIWINTFYFVOVPNURTIV
      QVRWMWNEFYDYEYFVSYGAWNEBVTCDTTTHGINGNGVKFGWAFVLGWBWCNNWDNGWEWJWFWGWHWKWL
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Bunjakovaskij-Cauchy-Schwarz inequality
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    bcs.1 $e |- A e. ~H $.
    bcs.2 $e |- B e. ~H $.
    $( Bunjakovaskij-Cauchy-Schwarz inequality.  Remark 3.4 of [Beran] p. 98.
       (Contributed by NM, 11-Oct-1999.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    bcsiALT $p |- ( abs ` ( A .ih B ) )
          <_ ( ( normh ` A ) x. ( normh ` B ) ) $=
      ( csp co cc0 wceq cabs cfv cmul cle wbr wcel ax-mp c2 caddc cc c1 cr abs0
      cno fveq2 chil normge0 normcli mulge0i mp2an eqbrtri syl6eqbr csqrt df-ne
      wn wne cdiv ccj his1i oveq2i abslem2 mpan syl5req abs00i necon3bii abscli
      hicli wa divclzi divreczi fveq2d recclzi absmul sylancr rerecclzi clt 0re
      recni jctil absgt0i bitri recgt0i sylbi ltle absidd oveq2d recidzi 3eqtrd
      eqtrd jca sylbir normlem7tALT syl eqbrtrd normval oveq12i mulcomli breq2i
      sylc wb 2pos hiidge0 hiidrcl sqrtcli mp2b remulcli lemul2i sylibr pm2.61i
      2re ) ABEFZGHZXIIJZAUBJZBUBJZKFZLMZXJXKGIJZXNLXIGIUCXPGXNLUAGXLLMZGXMLMZG
      XNLMAUDNZXQCAUEOBUDNZXRDBUEOXLXMACUFZBDUFZUGUHUIUJXJUMZPXKKFZPBBEFZUKJZAA
      EFZUKJZKFZKFZLMZXOYCXIGUNZYKXIGULYLYDXIXKUOFZUPJXIKFZYMBAEFZKFZQFZYJLYLYQ
      YNYMXIUPJZKFZQFZYDYPYSYNQYOYRYMKBADCUQURURXIRNZYLYTYDHABCDVEZXIUSUTVAYLYM
      RNZYMIJZSHZVFZYQYJLMYLXKGUNZUUFXKGXIGXIUUBVBVCZUUGUUCUUEXIXKUUBXKXIUUBVDZ
      VPZVGUUGUUDXISXKUOFZKFZIJZXKUUKKFZSUUGYMUULIXIXKUUBUUJVHVIUUGUUMXKUUKIJZK
      FZUUNUUGUUAUUKRNUUMUUPHUUBXKUUJVJXIUUKVKVLUUGUUOUUKXKKUUGUUKXKUUIVMZUUGGT
      NZUUKTNZVFGUUKVNMZGUUKLMUUGUUSUURUUQVOVQUUGGXKVNMZUUTUUGYLUVAUUHXIUUBVRVS
      XKUUIVTWAGUUKWBWQWCWDWGXKUUJWEWFWHWIABYMCDWJWKWLWIXOXKYILMZYKXNYIXKLXMXLY
      IXMYBVPXLYAVPXMYFXLYHKXTXMYFHDBWMOXSXLYHHCAWMOWNWOWPGPVNMUVBYKWRWSXKYIPUU
      IYFYHXTGYELMYFTNDBWTYEXTYETNDBXAOXBXCXSGYGLMYHTNCAWTYGXSYGTNCAXAOXBXCXDXH
      XEOVSXFXG $.

    $( Bunjakovaskij-Cauchy-Schwarz inequality.  Remark 3.4 of [Beran] p. 98.
       (Proved from ZFC version.)  (Contributed by NM, 24-Nov-2007.)
       (New usage is discouraged.) $)
    bcsiHIL $p |- ( abs ` ( A .ih B ) )
         <_ ( ( normh ` A ) x. ( normh ` B ) ) $=
      ( csp cva csm cop cno chil df-hba eqid hhnm hhip hhph siii ) ABEFGHIHZIJK
      QQLZMQRNQROCDP $.
  $}

  $( Bunjakovaskij-Cauchy-Schwarz inequality.  Remark 3.4 of [Beran] p. 98.
     (Contributed by NM, 16-Feb-2006.)  (New usage is discouraged.) $)
  bcs $p |- ( ( A e. ~H /\ B e. ~H ) ->
             ( abs ` ( A .ih B ) ) <_ ( ( normh ` A ) x. ( normh ` B ) ) ) $=
    ( chil wcel csp cabs cfv cno cmul cle wbr c0v cif wceq oveq1 fveq2d breq12d
    co fveq2 ifhvhv0 oveq1d oveq2 oveq2d bcsiHIL dedth2h ) ACDZBCDZABERZFGZAHGZ
    BHGZIRZJKUFALMZBERZFGZUMHGZUKIRZJKUMUGBLMZERZFGZUPURHGZIRZJKABLLAUMNZUIUOUL
    UQJVCUHUNFAUMBEOPVCUJUPUKIAUMHSUAQBURNZUOUTUQVBJVDUNUSFBURUMEUBPVDUKVAUPIBU
    RHSUCQUMURATBTUDUE $.

  $( Corollary of the Bunjakovaskij-Cauchy-Schwarz inequality ~ bcsiHIL .
     (Contributed by NM, 24-May-2006.)  (New usage is discouraged.) $)
  bcs2 $p |- ( ( A e. ~H /\ B e. ~H /\ ( normh ` A ) <_ 1 ) ->
             ( abs ` ( A .ih B ) ) <_ ( normh ` B ) ) $=
    ( chil wcel cno cfv c1 cle wbr w3a co cabs cmul cr wa hicl 3adant3 3ad2ant2
    csp normcl abscld remulcl syl2an bcs cc0 3ad2ant1 normge0 jca simp3 lemul1a
    1re mp3anl2 syl21anc wceq recnd mulid2d breqtrd letrd ) ACDZBCDZAEFZGHIZJZA
    BSKZLFZVABEFZMKZVFUSUTVENDVBUSUTOVDABPUAQUSUTVGNDZVBUSVANDZVFNDZVHUTATZBTZV
    AVFUBUCQUTUSVJVBVLRZUSUTVEVGHIVBABUDQVCVGGVFMKZVFHVCVIVJUEVFHIZOZVBVGVNHIZU
    SUTVIVBVKUFVCVJVOVMUTUSVOVBBUGRUHUSUTVBUIVIGNDVPVBVQUKVAGVFUJULUMUTUSVNVFUN
    VBUTVFUTVFVLUOUPRUQUR $.

  $( Corollary of the Bunjakovaskij-Cauchy-Schwarz inequality ~ bcsiHIL .
     (Contributed by NM, 26-May-2006.)  (New usage is discouraged.) $)
  bcs3 $p |- ( ( A e. ~H /\ B e. ~H /\ ( normh ` B ) <_ 1 ) ->
             ( abs ` ( A .ih B ) ) <_ ( normh ` A ) ) $=
    ( chil wcel cno cfv c1 cle wbr w3a csp co cabs wceq abshicom 3adant3 3com12
    bcs2 eqbrtrd ) ACDZBCDZBEFGHIZJABKLMFZBAKLMFZAEFZHTUAUCUDNUBABOPUATUBUDUEHI
    BARQS $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Cauchy sequences and completeness axiom
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cauchy sequences and limits
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z f F $.  $d x y z A $.
    $( Member of the set of Cauchy sequences on a Hilbert space.  Definition
       for Cauchy sequence in [Beran] p. 96.  (Contributed by NM, 16-Aug-1999.)
       (Revised by Mario Carneiro, 14-May-2014.)
       (New usage is discouraged.) $)
    hcau $p |- ( F e. Cauchy <-> ( F : NN --> ~H /\
          A. x e. RR+ E. y e. NN A. z e. ( ZZ>= ` y )
             ( normh ` ( ( F ` y ) -h ( F ` z ) ) ) < x ) ) $=
      ( vf ccau wcel chil cn co cv cfv cmv cno clt wbr wral wrex crp wa cmap wf
      cuz wceq oveq12d fveq2d breq1d rexralbidv ralbidv df-hcau elrab2 ax-hilex
      fveq1 nnex elmap anbi1i bitri ) DFGDHIUAJZGZBKZDLZCKZDLZMJZNLZAKZOPZCUTUC
      LZQBIRZASQZTIHDUBZVJTUTEKZLZVBVLLZMJZNLZVFOPZCVHQBIRZASQVJEDURFVLDUDZVRVI
      ASVSVQVGBCIVHVSVPVEVFOVSVOVDNVSVMVAVNVCMUTVLDUMVBVLDUMUEUFUGUHUIABCEUJUKU
      SVKVJHIDULUNUOUPUQ $.

    $( A Cauchy sequences on a Hilbert space is a sequence.  (Contributed by
       NM, 16-Aug-1999.)  (Revised by Mario Carneiro, 14-May-2014.)
       (New usage is discouraged.) $)
    hcauseq $p |- ( F e. Cauchy -> F : NN --> ~H ) $=
      ( vy vz vx ccau wcel cn chil wf cv cfv cmv cno clt wbr cuz wral wrex crp
      co hcau simplbi ) AEFGHAIBJZAKCJAKLTMKDJNOCUCPKQBGRDSQDBCAUAUB $.

    $( A Cauchy sequence on a Hilbert space converges.  (Contributed by NM,
       16-Aug-1999.)  (Revised by Mario Carneiro, 14-May-2014.)
       (New usage is discouraged.) $)
    hcaucvg $p |- ( ( F e. Cauchy /\ A e. RR+ ) -> E. y e. NN
           A. z e. ( ZZ>= ` y ) ( normh ` ( ( F ` y ) -h ( F ` z ) ) ) < A ) $=
      ( vx ccau wcel cv cfv cmv co cno clt wbr cuz wral cn wrex crp chil breq2
      wf hcau simprbi wceq rexralbidv rspccva sylan ) DFGZAHZDIBHDIJKLIZEHZMNZB
      UJOIZPAQRZESPZCSGUKCMNZBUNPAQRZUIQTDUBUPEABDUCUDUOURECSULCUEUMUQABQUNULCU
      KMUAUFUGUH $.

    $( A sequence on a Hilbert space is a Cauchy sequence if it converges.
       (Contributed by NM, 16-Aug-1999.)  (Revised by Mario Carneiro,
       14-May-2014.)  (New usage is discouraged.) $)
    seq1hcau $p |- ( F : NN --> ~H -> ( F e. Cauchy <->
          A. x e. RR+ E. y e. NN A. z e. ( ZZ>= ` y )
             ( normh ` ( ( F ` y ) -h ( F ` z ) ) ) < x ) ) $=
      ( ccau wcel cn chil wf cv cfv cmv co cno clt wbr cuz wral wrex crp hcau
      baib ) DEFGHDIBJZDKCJDKLMNKAJOPCUCQKRBGSATRABCDUAUB $.
  $}

  ${
    $d x y z w f F $.  $d x y z w f A $.  $d x y z B $.
    hlim.1 $e |- A e. _V $.
    $( Express the predicate:  The limit of vector sequence ` F ` in a Hilbert
       space is ` A ` , i.e. ` F ` converges to ` A ` .  This means that for
       any real ` x ` , no matter how small, there always exists an integer
       ` y ` such that the norm of any later vector in the sequence minus the
       limit is less than ` x ` .  Definition of converge in [Beran] p. 96.
       (Contributed by NM, 16-Aug-1999.)  (Revised by Mario Carneiro,
       14-May-2014.)  (New usage is discouraged.) $)
    hlimi $p |- ( F ~~>v A <-> ( ( F : NN --> ~H /\ A e. ~H ) /\
          A. x e. RR+ E. y e. NN A. z e. ( ZZ>= ` y )
                ( normh ` ( ( F ` z ) -h A ) ) < x ) ) $=
      ( vf vw chli wbr cvv wcel cn chil wa cv cfv cmv wral wceq wf cno clt wrex
      co cuz crp df-hlim relopabi brrelexi nnex mpan2 ad2antrr wb feq1 bi2anan9
      fex eleq1 fveq1 oveq12 fveq2d breq1d rexralbidv ralbidv anbi12d pm5.21nii
      sylan brabga ) EDIJZEKLZMNEUAZDNLZOZCPZEQZDRUEZUBQZAPZUCJZCBPUFQZSBMUDZAU
      GSZOZEDIMNGPZUAZHPZNLZOZVNWDQZWFRUEZUBQZVRUCJZCVTSBMUDZAUGSZOZGHIABCHGUHZ
      UIUJVKVJVLWBVKMKLVJUKMNKEUQULUMVJDKLVIWCUNFWOWCGHEDIKKWDETZWFDTZOZWHVMWNW
      BWQWEVKWRWGVLMNWDEUOWFDNURUPWSWMWAAUGWSWLVSBCMVTWSWKVQVRUCWSWJVPUBWQWIVOT
      WRWJVPTVNWDEUSWIVOWFDRUTVGVAVBVCVDVEWPVHULVF $.

    $( A sequence with a limit on a Hilbert space is a sequence.  (Contributed
       by NM, 16-Aug-1999.)  (New usage is discouraged.) $)
    hlimseqi $p |- ( F ~~>v A -> F : NN --> ~H ) $=
      ( vz vx vy chli wbr cn chil wf wcel wa cv cfv cmv co cno clt wral cuz crp
      wrex hlimi simplbi simpld ) BAGHZIJBKZAJLZUGUHUIMDNBOAPQROENSHDFNUAOTFIUC
      EUBTEFDABCUDUEUF $.

    $( Closure of the limit of a sequence on Hilbert space.  (Contributed by
       NM, 16-Aug-1999.)  (New usage is discouraged.) $)
    hlimveci $p |- ( F ~~>v A -> A e. ~H ) $=
      ( vz vx vy chli wbr cn chil wf wcel wa cv cfv cmv co cno clt wral cuz crp
      wrex hlimi simplbi simprd ) BAGHZIJBKZAJLZUGUHUIMDNBOAPQROENSHDFNUAOTFIUC
      EUBTEFDABCUDUEUF $.

    $( Convergence of a sequence on a Hilbert space.  (Contributed by NM,
       16-Aug-1999.)  (Revised by Mario Carneiro, 14-May-2014.)
       (New usage is discouraged.) $)
    hlimconvi $p |- ( ( F ~~>v A /\ B e. RR+ ) ->
      E. y e. NN A. z e. ( ZZ>= ` y ) ( normh ` ( ( F ` z ) -h A ) ) < B ) $=
      ( vx chli wbr cv cfv cmv co clt wral cn wrex crp wcel chil cno wf simprbi
      cuz wa hlimi wceq breq2 rexralbidv rspccva sylan ) ECHIZBJEKCLMUAKZGJZNIZ
      BAJUDKZOAPQZGROZDRSUMDNIZBUPOAPQZULPTEUBCTSUEURGABCEFUFUCUQUTGDRUNDUGUOUS
      ABPUPUNDUMNUHUIUJUK $.
  $}

  ${
    $d x y z w F $.  $d x y z w A $.
    $( The limit of a sequence on a Hilbert space.  (Contributed by NM,
       16-Aug-1999.)  (Revised by Mario Carneiro, 14-May-2014.)
       (New usage is discouraged.) $)
    hlim2 $p |- ( ( F : NN --> ~H /\ A e. ~H ) -> ( F ~~>v A <->
          A. x e. RR+ E. y e. NN A. z e. ( ZZ>= ` y )
                ( normh ` ( ( F ` z ) -h A ) ) < x ) ) $=
      ( vw chil wcel cn chli wbr cv cfv cmv co cno clt wral wrex crp wf wb wceq
      cuz wi breq2 oveq2 fveq2d breq1d rexralbidv ralbidv bibi12d imbi2d wa vex
      hlimi baib expcom vtoclga impcom ) DGHIGEUAZEDJKZCLEMZDNOZPMZALZQKZCBLUDM
      ZRBISZATRZUBZVAEFLZJKZVCVLNOZPMZVFQKZCVHRBISZATRZUBZUEVAVKUEFDGVLDUCZVSVK
      VAVTVMVBVRVJVLDEJUFVTVQVIATVTVPVGBCIVHVTVOVEVFQVTVNVDPVLDVCNUGUHUIUJUKULU
      MVAVLGHZVSVMVAWAUNVRABCVLEFUOUPUQURUSUT $.
  $}

  ${
    $d n F $.  $d n G $.  $d n ph $.
    hlimadd.3 $e |- ( ph -> F : NN --> ~H ) $.
    hlimadd.4 $e |- ( ph -> G : NN --> ~H ) $.
    hlimadd.5 $e |- ( ph -> F ~~>v A ) $.
    hlimadd.6 $e |- ( ph -> G ~~>v B ) $.
    hlimadd.7 $e |- H = ( n e. NN |-> ( ( F ` n ) +h ( G ` n ) ) ) $.
    $( Limit of the sum of two sequences in a Hilbert vector space.
       (Contributed by Mario Carneiro, 19-May-2014.)
       (New usage is discouraged.) $)
    hlimadd $p |- ( ph -> H ~~>v ( A +h B ) ) $=
      ( cva co cfv wbr chil cn wcel chli cno cmv ccom cmopn cmap nnuz 1zzd cxmt
      clm c1 ctopon csm eqid hhims hhxmet mopntopon mp1i cres hhnv df-hba h2hlm
      cop resss eqsstri ssbri syl cnv ctx ccn hhva vacn lmcn2 ffvelrnda hvaddcl
      wf cv syl2anc fmptd ax-hilex nnex elmap sylibr breqi brres bitri sylanbrc
      wa ovex ) AGBCMNZUAUBUCZUDOZUIOZPZGQRUENZSZGWITPZABCDEFGWKWKUJWKMQQRUFAUG
      WJQUHOSWKQUKOSAWJMULVBUAVBZWQUMZWJWQWRWJUMUNZUOWJWKQWKUMZUPUQZXAHIAEBTPEB
      WLPJTWLEBTWLWNURZWLWJWQWKWRWQWRUSZUTWSWTVAZWLWNVCVDZVEVFAFCTPFCWLPKTWLFCX
      EVEVFWQVGSMWKWKVHNWKVINSAXCWJWQMWKWSWTWQWRVJVKUQLVLARQGVOWOADRDVPZEOZXFFO
      ZMNZQGAXFRSWGXGQSXHQSXIQSARQXFEHVMARQXFFIVMXGXHVNVQLVRQRGVSVTWAWBWPGWIXBP
      WMWOWGGWITXBXDWCGWIWLWNBCMWHWDWEWF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derivation of the completeness axiom from ZF set theory
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    hilmet.1 $e |- D = ( normh o. -h ) $.
    $( The Hilbert space norm determines a metric space.  (Contributed by NM,
       17-Apr-2007.)  (New usage is discouraged.) $)
    hilmet $p |- D e. ( Met ` ~H ) $=
      ( cva csm cop cno eqid hhims hhmet ) ACDEFEZJGZAJKBHI $.

    $( The Hilbert space norm determines a metric space.  (Contributed by Mario
       Carneiro, 10-Sep-2015.)  (New usage is discouraged.) $)
    hilxmet $p |- D e. ( *Met ` ~H ) $=
      ( chil cme cfv wcel cxmt hilmet metxmet ax-mp ) ACDEFACGEFABHACIJ $.

    $( Value of the distance function of the metric space of Hilbert space.
       (Contributed by NM, 17-Apr-2007.)  (New usage is discouraged.) $)
    hilmetdval $p |- ( ( A e. ~H /\ B e. ~H ) ->
                  ( A D B ) = ( normh ` ( A -h B ) ) ) $=
      ( cva csm cop cno eqid hhims hhmetdval ) ABCEFGHGZLIZCLMDJK $.
  $}

  ${
    hilims.1 $e |- ~H = ( BaseSet ` U ) $.
    hilims.2 $e |- +h = ( +v ` U ) $.
    hilims.3 $e |- .h = ( .sOLD ` U ) $.
    hilims.5 $e |- .ih = ( .iOLD ` U ) $.
    hilims.8 $e |- D = ( IndMet ` U ) $.
    hilims.9 $e |- U e. NrmCVec $.
    $( Hilbert space distance metric.  (Contributed by NM, 13-Sep-2007.)
       (New usage is discouraged.) $)
    hilims $p |- D = ( normh o. -h ) $=
      ( hilhhi hhims2 ) ABBCDEFHIGJ $.
  $}

  ${
    hhlm.1 $e |- U = <. <. +h , .h >. , normh >. $.
    hhlm.2 $e |- D = ( IndMet ` U ) $.
    $( The Cauchy sequences of Hilbert space.  (Contributed by NM,
       19-Nov-2007.)  (New usage is discouraged.) $)
    hhcau $p |- Cauchy = ( ( Cau ` D ) i^i ( ~H ^m NN ) ) $=
      ( hhnv hhba h2hcau ) ABCBCEBCFDG $.

    hhlm.3 $e |- J = ( MetOpen ` D ) $.
    $( The limit sequences of Hilbert space.  (Contributed by NM, 19-Nov-2007.)
       (New usage is discouraged.) $)
    hhlm $p |- ~~>v = ( ( ~~>t ` J ) |` ( ~H ^m NN ) ) $=
      ( hhnv hhba h2hlm ) ABCDBDGBDHEFI $.

    $d x F $.
    hhcmpl.c $e |- ( F e. ( Cau ` D ) -> E. x e. ~H F ( ~~>t ` J ) x ) $.
    $( Lemma used for derivation of the completeness axiom ~ ax-hcompl from ZFC
       Hilbert space theory.  (Contributed by NM, 9-Apr-2008.)
       (New usage is discouraged.) $)
    hhcmpl $p |- ( F e. Cauchy -> E. x e. ~H F ~~>v x ) $=
      ( cca cfv chil cn wcel wbr wa wrex ccau chli 3imtr4i co cin cv clm anim1i
      cmap elin r19.41v hhcau eleq2i cres hhlm breqi vex brres bitri rexbii ) D
      BJKZLMUFUAZUBZNZDAUCZEUDKZOZDUSNZPZALQZDRNDVBSOZALQDURNZVEPVDALQZVEPVAVGV
      IVJVEIUEDURUSUGVDVEALUHTRUTDBCFGUIUJVHVFALVHDVBVCUSUKZOVFDVBSVKBCEFGHULUM
      DVBVCUSAUNUOUPUQT $.
  $}

  ${
    $d x F $.
    hilcompl.1 $e |- ~H = ( BaseSet ` U ) $.
    hilcompl.2 $e |- +h = ( +v ` U ) $.
    hilcompl.3 $e |- .h = ( .sOLD ` U ) $.
    hilcompl.4 $e |- .ih = ( .iOLD ` U ) $.
    hilcompl.5 $e |- D = ( IndMet ` U ) $.
    hilcompl.6 $e |- J = ( MetOpen ` D ) $.
    hilcompl.7 $e |- U e. CHilOLD $.
    hilcompl.8 $e |- ( F e. ( Cau ` D ) -> E. x e. ~H F ( ~~>t ` J ) x ) $.
    $( Lemma used for derivation of the completeness axiom ~ ax-hcompl from ZFC
       Hilbert space theory.  The first five hypotheses would be satisfied by
       the definitions described in ~ ax-hilex ; the 6th would be satisfied by
       ~ eqid ; the 7th by a given fixed Hilbert space; and the last by theorem
       ~ hlcompl .  (Contributed by NM, 13-Sep-2007.)  (Revised by Mario
       Carneiro, 14-May-2014.)  (New usage is discouraged.) $)
    hilcompl $p |- ( F e. Cauchy -> E. x e. ~H F ~~>v x ) $=
      ( hlnvi hilhhi hhcmpl ) ABCDECFGHICLNOJKMP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Completeness postulate for a Hilbert space
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d F x $.
    $( Completeness of a Hilbert space.  (Contributed by NM, 7-Aug-2000.)
       (New usage is discouraged.) $)
    ax-hcompl $a |- ( F e. Cauchy -> E. x e. ~H F ~~>v x ) $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Relate Hilbert space to ZFC pre-Hilbert and Hilbert spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d f x D $.
    hhcms.1 $e |- U = <. <. +h , .h >. , normh >. $.
    hhcms.2 $e |- D = ( IndMet ` U ) $.
    $( The Hilbert space induced metric determines a complete metric space.
       (Contributed by NM, 10-Apr-2008.)  (Proof shortened by Mario Carneiro,
       14-May-2014.)  (New usage is discouraged.) $)
    hhcms $p |- D e. ( CMet ` ~H ) $=
      ( vf vx cmopn cfv chil eqid hhmet cv wcel cn wa chli wbr ccau bitri vex
      cca wf wrex clm cdm cmap cin hhcau eleq2i elin ax-hilex nnex elmap anbi2i
      co ax-hcompl sylbir cres hhlm breqi brres breldm sylbi rexlimivw iscmet3i
      adantr syl ) AEAGHZIVHJZABCDKELZAUAHZMZNIVJUBZOZVJFLZPQZFIUCZVJVHUDHZUEMZ
      VNVJRMZVQVTVJVKINUFUOZUGZMZVNRWBVJABCDUHUIWCVLVJWAMZOVNVJVKWAUJWDVMVLINVJ
      UKULUMUNSSFVJUPUQVPVSFIVPVJVOVRQZWDOZVSVPVJVOVRWAURZQWFVJVOPWGABVHCDVIUSU
      TVJVOVRWAFTZVASWEVSWDVJVOVRETWHVBVFVCVDVGVE $.
  $}

  ${
    hhhl.1 $e |- U = <. <. +h , .h >. , normh >. $.
    $( The Hilbert space structure is a complex Hilbert space.  (Contributed by
       NM, 10-Apr-2008.)  (New usage is discouraged.) $)
    hhhl $p |- U e. CHilOLD $=
      ( chlo wcel ccbn ccphlo cnv cims chil hhnv eqid hhcms hhba iscbn mpbir2an
      cfv cms hhph ishlo ) ACDAEDZAFDTAGDAHPZIQPDABJUAABUAKZLUAAIABMUBNOABRASO
      $.
  $}

  ${
    hilcms.1 $e |- D = ( normh o. -h ) $.
    $( The Hilbert space norm determines a complete metric space.  (Contributed
       by NM, 17-Apr-2007.)  (New usage is discouraged.) $)
    hilcms $p |- D e. ( CMet ` ~H ) $=
      ( cva csm cop cno eqid hhims hhcms ) ACDEFEZJGZAJKBHI $.
  $}

  $( The Hilbert space of the Hilbert Space Explorer is a complex Hilbert
     space.  (Contributed by Steve Rodriguez, 29-Apr-2007.)
     (New usage is discouraged.) $)
  hilhl $p |- <. <. +h , .h >. , normh >. e. CHilOLD $=
    ( cva csm cop cno eqid hhhl ) ABCDCZGEF $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Subspaces and projections
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subspaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Define the set of subspaces of a Hilbert space.  See ~ issh for its
     membership relation.  Basically, a subspace is a subset of a Hilbert space
     that acts like a vector space.  From Definition of [Beran] p. 95.
     (Contributed by Mario Carneiro, 23-Dec-2013.)
     (New usage is discouraged.) $)
  df-sh $a |- SH = { h e. ~P ~H | ( 0h e. h /\
              ( +h " ( h X. h ) ) C_ h /\ ( .h " ( CC X. h ) ) C_ h ) } $.

  ${
    $d h x y H $.
    $( Subspace ` H ` of a Hilbert space.  A subspace is a subset of Hilbert
       space which contains the zero vector and is closed under vector addition
       and scalar multiplication.  (Contributed by Mario Carneiro,
       23-Dec-2013.)  (New usage is discouraged.) $)
    issh $p |- ( H e. SH <-> ( ( H C_ ~H /\ 0h e. H ) /\
               ( ( +h " ( H X. H ) ) C_ H /\ ( .h " ( CC X. H ) ) C_ H ) ) ) $=
      ( vh chil cpw wcel c0v cva cxp cima wss csm cc w3a wa csh ax-hilex 3anass
      elpw2 imaeq2d sseq12d anbi12i cv wceq eleq2 sqxpeqd xpeq2 3anbi123d df-sh
      id elrab2 anass 3bitr4i ) ACDZEZFAEZGAAHZIZAJZKLAHZIZAJZMZNACJZUOURVANZNZ
      NAOEVCUONVDNUNVCVBVEACPRUOURVAQUAFBUBZEZGVFVFHZIZVFJZKLVFHZIZVFJZMVBBAUMO
      VFAUCZVGUOVJURVMVAVFAFUDVNVIUQVFAVNVHUPGVNVFAVNUIZUESVOTVNVLUTVFAVNVKUSKV
      FALUFSVOTUGBUHUJVCUOVDUKUL $.

    $( Subspace ` H ` of a Hilbert space.  A subspace is a subset of Hilbert
       space which contains the zero vector and is closed under vector addition
       and scalar multiplication.  Definition of [Beran] p. 95.  (Contributed
       by NM, 16-Aug-1999.)  (Revised by Mario Carneiro, 23-Dec-2013.)
       (New usage is discouraged.) $)
    issh2 $p |- ( H e. SH <-> ( ( H C_ ~H /\ 0h e. H ) /\
                  ( A. x e. H A. y e. H ( x +h y ) e. H /\
                    A. x e. CC A. y e. H ( x .h y ) e. H ) ) ) $=
      ( wcel chil wss wa cva cxp cima csm cc cv co wral wb wfun cdm ax-hfvadd
      wf csh c0v issh ffun ax-mp xpss12 anidms fdmi syl6sseqr sylancr ax-hfvmul
      funimassov xpss2 anbi12d adantr pm5.32i bitri ) CUADCEFZUBCDZGZHCCIZJCFZK
      LCIZJCFZGZGUTAMZBMZHNCDBCOACOZVFVGKNCDBCOALOZGZGCUCUTVEVJURVEVJPUSURVBVHV
      DVIURHQZVAHRZFVBVHPEEIZEHTVKSVMEHUDUEURVAVMVLURVAVMFCECEUFUGVMEHSUHUIABCC
      CHULUJURKQZVCKRZFVDVIPLEIZEKTVNUKVPEKUDUEURVCVPVOCELUMVPEKUKUHUIABLCCKULU
      JUNUOUPUQ $.
  $}

  $( A subspace is a subset of Hilbert space.  (Contributed by NM, 9-Oct-1999.)
     (Revised by Mario Carneiro, 23-Dec-2013.)  (New usage is discouraged.) $)
  shss $p |- ( H e. SH -> H C_ ~H ) $=
    ( csh wcel chil wss c0v wa cva cxp cima csm cc issh simplbi simpld ) ABCZAD
    EZFACZPQRGHAAIJAEKLAIJAEGAMNO $.

  $( A member of a subspace of a Hilbert space is a vector.  (Contributed by
     NM, 14-Dec-2004.)  (New usage is discouraged.) $)
  shel $p |- ( ( H e. SH /\ A e. H ) -> A e. ~H ) $=
    ( csh wcel chil shss sselda ) BCDBEABFG $.

  $( The set of subspaces of a Hilbert space exists (is a set).  (Contributed
     by NM, 23-Oct-1999.)  (New usage is discouraged.) $)
  shex $p |- SH e. _V $=
    ( vx csh chil cpw ax-hilex pwex cv wcel wss shss selpw sylibr ssriv ssexi )
    BCDZCEFABOAGZBHPCIPOHPJACKLMN $.

  ${
    shssi.1 $e |- H e. SH $.
    $( A closed subspace of a Hilbert space is a subset of Hilbert space.
       (Contributed by NM, 6-Oct-1999.)  (New usage is discouraged.) $)
    shssii $p |- H C_ ~H $=
      ( csh wcel chil wss shss ax-mp ) ACDAEFBAGH $.

    $( A member of a subspace of a Hilbert space is a vector.  (Contributed by
       NM, 6-Oct-1999.)  (New usage is discouraged.) $)
    sheli $p |- ( A e. H -> A e. ~H ) $=
      ( chil shssii sseli ) BDABCEF $.

    ${
      sheli.1 $e |- A e. H $.
      $( A member of a subspace of a Hilbert space is a vector.  (Contributed
         by NM, 6-Oct-1999.)  (New usage is discouraged.) $)
      shelii $p |- A e. ~H $=
        ( chil shssii sselii ) BEABCFDG $.
    $}
  $}

  $( The zero vector belongs to any subspace of a Hilbert space.  (Contributed
     by NM, 11-Oct-1999.)  (Revised by Mario Carneiro, 23-Dec-2013.)
     (New usage is discouraged.) $)
  sh0 $p |- ( H e. SH -> 0h e. H ) $=
    ( csh wcel chil wss c0v wa cva cxp cima csm cc issh simplbi simprd ) ABCZAD
    EZFACZPQRGHAAIJAEKLAIJAEGAMNO $.

  ${
    $d x y A $.  $d x y H $.  $d y B $.
    $( Closure of vector addition in a subspace of a Hilbert space.
       (Contributed by NM, 13-Sep-1999.)  (New usage is discouraged.) $)
    shaddcl $p |- ( ( H e. SH /\ A e. H /\ B e. H ) -> ( A +h B ) e. H ) $=
      ( vx vy csh wcel cva co cv wral wa csm cc chil wss c0v issh2 wceq eleq1d
      simprbi simpld oveq1 oveq2 rspc2v syl5com 3impib ) CFGZACGZBCGZABHIZCGZUH
      DJZEJZHIZCGZECKDCKZUIUJLULUHUQUMUNMICGECKDNKZUHCOPQCGLUQURLDECRUAUBUPULAU
      NHIZCGDEABCCUMASUOUSCUMAUNHUCTUNBSUSUKCUNBAHUDTUEUFUG $.

    $( Closure of vector scalar multiplication in a subspace of a Hilbert
       space.  (Contributed by NM, 13-Sep-1999.)
       (New usage is discouraged.) $)
    shmulcl $p |- ( ( H e. SH /\ A e. CC /\ B e. H ) -> ( A .h B ) e. H ) $=
      ( vx vy csh wcel cc csm co cv wral wa cva chil wss c0v issh2 wceq eleq1d
      simprbi simprd oveq1 oveq2 rspc2v syl5com 3impib ) CFGZAHGZBCGZABIJZCGZUH
      DKZEKZIJZCGZECLDHLZUIUJMULUHUMUNNJCGECLDCLZUQUHCOPQCGMURUQMDECRUAUBUPULAU
      NIJZCGDEABHCUMASUOUSCUMAUNIUCTUNBSUSUKCUNBAIUDTUEUFUG $.

    $(
    @( Reversal of subtraction remains a member of a subspace of a Hilbert
       space. @)
    shsubrclt @p |- ( H e. SH -> ( ( A e. ~H /\ B e. ~H ) ->
                    ( ( A -h B ) e. H <-> ( B -h A ) e. H ) ) ) @=
?@.
    $)

    $( Subspace ` H ` of a Hilbert space.  (Contributed by NM, 16-Aug-1999.)
       (New usage is discouraged.) $)
    issh3 $p |- ( H C_ ~H -> ( H e. SH <-> ( 0h e. H /\
                  ( A. x e. H A. y e. H ( x +h y ) e. H /\
                    A. x e. CC A. y e. H ( x .h y ) e. H ) ) ) ) $=
      ( csh wcel chil wss c0v wa cv cva co wral csm cc issh2 anass baib syl5bb
      ) CDECFGZHCEZIAJZBJZKLCEBCMACMUBUCNLCEBCMAOMIZIZTUAUDIZABCPUETUFTUAUDQRS
      $.
  $}

  $( Closure of vector subtraction in a subspace of a Hilbert space.
     (Contributed by NM, 18-Oct-1999.)  (New usage is discouraged.) $)
  shsubcl $p |- ( ( H e. SH /\ A e. H /\ B e. H ) -> ( A -h B ) e. H ) $=
    ( csh wcel w3a cmv co c1 cneg csm cva chil wceq shss sseld anim12d hvsubval
    wa 3impib syl cc neg1cn shmulcl mp3an2 3adant2 shaddcl syld3an3 eqeltrd ) C
    DEZACEZBCEZFZABGHZAIJZBKHZLHZCUMAMEZBMEZSZUNUQNUJUKULUTUJUKURULUSUJCMACOZPU
    JCMBVAPQTABRUAUJUKULUPCEZUQCEUJULVBUKUJUOUBEULVBUCUOBCUDUEUFAUPCUGUHUI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Closed subspaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Define the set of closed subspaces of a Hilbert space.  A closed subspace
     is one in which the limit of every convergent sequence in the subspace
     belongs to the subspace.  For its membership relation, see ~ isch .  From
     Definition of [Beran] p. 107.  Alternate definitions are given by ~ isch2
     and ~ isch3 .  (Contributed by NM, 17-Aug-1999.)
     (New usage is discouraged.) $)
  df-ch $a |- CH = { h e. SH | ( ~~>v " ( h ^m NN ) ) C_ h } $.

  ${
    $d h H $.
    $( Closed subspace ` H ` of a Hilbert space.  (Contributed by NM,
       17-Aug-1999.)  (Revised by Mario Carneiro, 23-Dec-2013.)
       (New usage is discouraged.) $)
    isch $p |- ( H e. CH <-> ( H e. SH /\ ( ~~>v " ( H ^m NN ) ) C_ H ) ) $=
      ( vh chli cv cn cmap co cima wss csh cch wceq oveq1 imaeq2d sseq12d df-ch
      id elrab2 ) CBDZEFGZHZSICAEFGZHZAIBAJKSALZUAUCSAUDTUBCSAEFMNUDQOBPR $.
  $}

  ${
    $d x f H $.
    $( Closed subspace ` H ` of a Hilbert space.  Definition of [Beran] p. 107.
       (Contributed by NM, 17-Aug-1999.)  (Revised by Mario Carneiro,
       23-Dec-2013.)  (New usage is discouraged.) $)
    isch2 $p |- ( H e. CH <-> ( H e. SH /\ A. f A. x ( ( f : NN --> H /\
        f ~~>v x ) -> x e. H ) ) ) $=
      ( cch wcel csh chli cn cmap co cima wss wa cv wf wi wal bitr4i bitri cvv
      wbr isch alcom wex 19.23v vex elima2 imbi1i albii dfss2 nnex elmapg mpan2
      wb anbi1d imbi1d 2albidv syl5bbr pm5.32i ) CDECFEZGCHIJZKZCLZMUTHCBNZOZVD
      ANZGUAZMZVFCEZPZAQBQZMCUBUTVCVKVCVDVAEZVGMZVIPZAQBQZUTVKVOVNBQZAQZVCVNBAU
      CVQVFVBEZVIPZAQVCVPVSAVPVMBUDZVIPVSVMVIBUEVRVTVIBVFGVAAUFUGUHRUIAVBCUJRSU
      TVNVJBAUTVMVHVIUTVLVEVGUTHTEVLVEUNUKCHVDFTULUMUOUPUQURUSS $.
  $}

  $( A closed subspace is a subspace.  (Contributed by NM, 19-Oct-1999.)
     (Revised by Mario Carneiro, 23-Dec-2013.)  (New usage is discouraged.) $)
  chsh $p |- ( H e. CH -> H e. SH ) $=
    ( cch wcel csh chli cn cmap co cima wss isch simplbi ) ABCADCEAFGHIAJAKL $.

  $( Closed subspaces are subspaces in a Hilbert space.  (Contributed by NM,
     29-May-1999.)  (Revised by Mario Carneiro, 23-Dec-2013.)
     (New usage is discouraged.) $)
  chsssh $p |- CH C_ SH $=
    ( vx cch csh cv chsh ssriv ) ABCADEF $.

  $( The set of closed subspaces of a Hilbert space exists (is a set).
     (Contributed by NM, 23-Oct-1999.)  (New usage is discouraged.) $)
  chex $p |- CH e. _V $=
    ( cch csh shex chsssh ssexi ) ABCDE $.

  ${
    chshi.1 $e |- H e. CH $.
    $( A closed subspace is a subspace.  (Contributed by NM, 19-Oct-1999.)
       (New usage is discouraged.) $)
    chshii $p |- H e. SH $=
      ( cch wcel csh chsh ax-mp ) ACDAEDBAFG $.
  $}

  $( The zero vector belongs to any closed subspace of a Hilbert space.
     (Contributed by NM, 24-Aug-1999.)  (New usage is discouraged.) $)
  ch0 $p |- ( H e. CH -> 0h e. H ) $=
    ( cch wcel csh c0v chsh sh0 syl ) ABCADCEACAFAGH $.

  $( A closed subspace of a Hilbert space is a subset of Hilbert space.
     (Contributed by NM, 24-Aug-1999.)  (New usage is discouraged.) $)
  chss $p |- ( H e. CH -> H C_ ~H ) $=
    ( cch wcel csh chil wss chsh shss syl ) ABCADCAEFAGAHI $.

  $( A member of a closed subspace of a Hilbert space is a vector.
     (Contributed by NM, 15-Dec-2004.)  (New usage is discouraged.) $)
  chel $p |- ( ( H e. CH /\ A e. H ) -> A e. ~H ) $=
    ( cch wcel chil chss sselda ) BCDBEABFG $.

  ${
    chssi.1 $e |- H e. CH $.
    $( A closed subspace of a Hilbert space is a subset of Hilbert space.
       (Contributed by NM, 6-Oct-1999.)  (New usage is discouraged.) $)
    chssii $p |- H C_ ~H $=
      ( chshii shssii ) AABCD $.

    $( A member of a closed subspace of a Hilbert space is a vector.
       (Contributed by NM, 6-Oct-1999.)  (New usage is discouraged.) $)
    cheli $p |- ( A e. H -> A e. ~H ) $=
      ( chil chssii sseli ) BDABCEF $.

    ${
      cheli.1 $e |- A e. H $.
      $( A member of a closed subspace of a Hilbert space is a vector.
         (Contributed by NM, 6-Oct-1999.)  (New usage is discouraged.) $)
      chelii $p |- A e. ~H $=
        ( chil chssii sselii ) BEABCFDG $.
    $}
  $}

  ${
    $d x f F $.  $d x f H $.  $d x A $.
    chlim.1 $e |- A e. _V $.
    $( The limit property of a closed subspace of a Hilbert space.
       (Contributed by NM, 14-Sep-1999.)  (New usage is discouraged.) $)
    chlimi $p |- ( ( H e. CH /\ F : NN --> H /\ F ~~>v A ) -> A e. H ) $=
      ( vf vx cch wcel cn wf chli wbr cv wa wi wal csh cvv wceq syl simprbi fex
      isch2 nnex mpan2 adantr feq1 breq1 imbi1d albidv spcgv breq2 anbi2d eleq1
      anbi12d imbi12d spcv syl6 pm2.43b 3impib ) CGHZICBJZBAKLZACHZVAICEMZJZVEF
      MZKLZNZVGCHZOZFPZEPZVBVCNZVDOZVACQHVMFECUCUAVMVNVDVNBRHZVMVOOVBVPVCVBIRHV
      PUDICRBUBUEUFVPVMVBBVGKLZNZVJOZFPZVOVLVTEBRVEBSZVKVSFWAVIVRVJWAVFVBVHVQIC
      VEBUGVEBVGKUHUOUIUJUKVSVOFADVGASZVRVNVJVDWBVQVCVBVGABKULUMVGACUNUPUQURTUS
      TUT $.
  $}

  $( The zero sequence in Hilbert space converges to the zero vector.
     (Contributed by NM, 17-Aug-1999.)  (Proof shortened by Mario Carneiro,
     14-May-2014.)  (New usage is discouraged.) $)
  hlim0 $p |- ( NN X. { 0h } ) ~~>v 0h $=
    ( cn c0v csn cxp chli wbr cva csm cop cno cims cfv cmopn clm chil cmap wcel
    c1 eqid ax-hv0cl co ctopon cz cxmt mopntopon ax-mp 1z nnuz lmconst mp3an wf
    hhxmet fconst6 ax-hilex nnex elmap mpbir cres wa breqi elexi brres mpbir2an
    hhlm bitri ) ABCDZBEFZVFBGHIJIZKLZMLZNLZFZVFOAPUAZQZVJOUBLQZBOQRUCQVLVIOUDL
    QVOVIVHVHSZVISZULVIVJOVJSZUEUFTUGBVJROAUHUIUJVNAOVFUKABOTUMOAVFUNUOUPUQVGVF
    BVKVMURZFVLVNUSVFBEVSVIVHVJVPVQVRVDUTVFBVKVMBOTVAVBVEVC $.

  $( If a sequence in Hilbert space subset converges to a limit, it is a Cauchy
     sequence.  (Contributed by NM, 17-Aug-1999.)  (Proof shortened by Mario
     Carneiro, 14-May-2014.)  (New usage is discouraged.) $)
  hlimcaui $p |- ( F ~~>v A -> F e. Cauchy ) $=
    ( chli wbr cdm ccau cva csm cop cno cims cfv cca chil cin wss eqsstri ax-mp
    eqid wrel cn cmap co cmopn clm cres hhlm resss dmss cxmt hhxmet lmcau sstri
    dmeqi dmres eqtri inss1 ssini hhcau sseqtr4i relres releqi releldmi sseldi
    wcel mpbir ) BACDCEZFBVGGHIJIZKLZMLZNUAUBUCZOFVGVJVKVGVIUDLZUELZEZVJCVMPVGV
    NPCVMVKUFZVMVIVHVLVHSZVISZVLSZUGZVMVKUHQCVMUIRVINUJLVEVNVJPVIVHVPVQUKVIVLNV
    RULRUMVGVKVNOZVKVGVOEVTCVOVSUNVMVKUOUPVKVNUQQURVIVHVPVQUSUTBACCTVOTVMVKVACV
    OVSVBVFVCVD $.

  $( Function-like behavior of the convergence relation.  (Contributed by Mario
     Carneiro, 14-May-2014.)  (New usage is discouraged.) $)
  hlimf $p |- ~~>v : dom ~~>v --> ~H $=
    ( vx chli cdm chil wf wfn cfv wcel wral wfun cva csm cop cno cims cmopn clm
    cv eqid ax-mp cn cmap cres cxmt cha hhxmet methaus lmfun mp2b funres funeqi
    co hhlm mpbir funfn mpbi wbr wb funfvbrb fvex hlimveci sylbi ffnfv mpbir2an
    rgen ) BCZDBEBVFFZARZBGZDHZAVFIBJZVGVKKLMNMZOGZPGZQGZDUAUBULZUCZJZVOJZVRVMD
    UDGHVNUEHVSVMVLVLSZVMSZUFVMVNDVNSZUGVNUHUIVPVOUJTBVQVMVLVNVTWAWBUMUKUNZBUOU
    PVJAVFVHVFHZVHVIBUQZVJVKWDWEURWCVHBUSTVIVHVHBUTVAVBVEAVFDBVCVD $.

  $( A Hilbert space sequence converges to at most one limit.  (Contributed by
     NM, 19-Aug-1999.)  (Revised by Mario Carneiro, 2-May-2015.)
     (New usage is discouraged.) $)
  hlimuni $p |- ( ( F ~~>v A /\ F ~~>v B ) -> A = B ) $=
    ( chli wbr cfv cdm chil wf wfun wceq wi hlimf ffun funbrfv mp2b sylan9req )
    CADEZCBDEZACDFZBDGZHDIZDJZRTAKLMUAHDNZCADOPUBUCSTBKLMUDCBDOPQ $.

  ${
    $d x y F $.  $d x y H $.
    $( The limit of a Hilbert space sequence is unique.  (Contributed by NM,
       19-Aug-1999.)  (Revised by Mario Carneiro, 14-May-2014.)
       (New usage is discouraged.) $)
    hlimreui $p |- ( E. x e. H F ~~>v x <-> E! x e. H F ~~>v x ) $=
      ( vy cv chli wbr wrex wa wi wral wreu hlimuni rgen2w biantru breq2 bitr4i
      weq reu4 ) BAEZFGZACHZUBUABDEZFGZIADRJZDCKACKZIUAACLUFUBUEADCCTUCBMNOUAUD
      ADCTUCBFPSQ $.

    $( The limit of a Hilbert space sequence is unique.  (Contributed by NM,
       19-Aug-1999.)  (Proof shortened by Mario Carneiro, 14-May-2014.)
       (New usage is discouraged.) $)
    hlimeui $p |- ( E. x F ~~>v x <-> E! x F ~~>v x ) $=
      ( cv chli wbr cvv wrex wreu wex weu hlimreui rexv reuv 3bitr3i ) BACDEZAF
      GOAFHOAIOAJABFKOALOAMN $.
  $}

  ${
    $d x f H $.
    $( A Hilbert subspace is closed iff it is complete.  A complete subspace is
       one in which every Cauchy sequence of vectors in the subspace converges
       to a member of the subspace (Definition of complete subspace in [Beran]
       p. 96).  Remark 3.12 of [Beran] p. 107.  (Contributed by NM,
       24-Dec-2001.)  (Revised by Mario Carneiro, 14-May-2014.)
       (New usage is discouraged.) $)
    isch3 $p |- ( H e. CH <-> ( H e. SH /\ A. f e. Cauchy
                  ( f : NN --> H -> E. x e. H f ~~>v x ) ) ) $=
      ( cch wcel csh cn cv wa wi wal wrex ccau wex chil rexex syl ex nfv nfim
      wf chli wbr wral isch2 ax-hcompl 19.29 sylan2 imp an12s simprr jca eximdv
      com12 df-rex syl6ibr nfre1 bi2.04 hlimcaui imim1i weu hlimeui sylib sylbb
      exancom eupick syl2anc syli imim2i sylbi impd alrimi impbii df-ral bitr4i
      id albii anbi2i bitri ) CDECFEZGCBHZUAZWAAHZUBUCZIZWCCEZJZAKZBKZIVTWBWDAC
      LZJZBMUDZIABCUEWIWLVTWIWAMEZWKJZBKWLWHWNBWHWNWHWMWKWHWMIWGWDIZANZWKWMWHWD
      ANZWPWMWDAOLWQAWAUFWDAOPQWGWDAUGUHWPWBWFWDIZANZWJWBWPWSWBWOWRAWBWOWRWBWOI
      WFWDWGWBWDWFWGWEWFWGVPUIUJWBWGWDUKULRUMUNWDACUOZUPQRWNWGAWMWKAWMASWBWJAWB
      ASWDACUQTTWNWBWDWFWNWBWMWJJZJWBWDWFJZJWMWBWJURXAXBWBWDXAWJWFWDWMWJWCWAUSU
      TWJWDAVAZWDWFIANZXBWJWQXCWDACPAWAVBVCWJWSXDWTWFWDAVEVDWDWFAVFVGVHVIVJVKVL
      VMVQWKBMVNVOVRVS $.
  $}

  ${
    $d x f H $.  $d x f F $.
    $( Completeness of a closed subspace of Hilbert space.  (Contributed by NM,
       4-Oct-1999.)  (New usage is discouraged.) $)
    chcompl $p |- ( ( H e. CH /\ F e. Cauchy /\ F : NN --> H ) ->
                      E. x e. H F ~~>v x ) $=
      ( vf cch wcel ccau cn wf cv chli wbr wrex wi wral isch3 simprbi wceq feq1
      csh breq1 rexbidv imbi12d rspccv syl 3imp ) CEFZBGFZHCBIZBAJZKLZACMZUGHCD
      JZIZUMUJKLZACMZNZDGOZUHUIULNZNUGCTFURADCPQUQUSDBGUMBRZUNUIUPULHCUMBSUTUOU
      KACUMBUJKUAUBUCUDUEUF $.
  $}

  ${
    $d x y f $.
    $( The unit Hilbert lattice element (which is all of Hilbert space) belongs
       to the Hilbert lattice.  Part of Proposition 1 of [Kalmbach] p. 65.
       (Contributed by NM, 6-Sep-1999.)  (New usage is discouraged.) $)
    helch $p |- ~H e. CH $=
      ( vf vx vy chil cch wcel csh cn cv wf chli wbr wa wi wal co wral mpbir2an
      cc pm3.2i wss c0v cva csm ax-hv0cl hvaddcl rgen2a hvmulcl rgen2 issh2 vex
      ssid hlimveci adantl gen2 isch2 ) DEFDGFZHDAIZJZURBIZKLZMUTDFZNZBOAOUQDDU
      AZUBDFZMUTCIZUCPDFZCDQBDQZUTVFUDPDFZCDQBSQZMVDVEDULUETVHVJVGBCDUTVFUFUGVI
      BCSDUTVFUHUITBCDUJRVCABVAVBUSUTURBUKUMUNUOBADUPR $.
  $}

  $( Prove ` if ( A e. CH , A , ~H ) e. CH ` (common case).  (Contributed by
     David A. Wheeler, 8-Dec-2018.)  (New usage is discouraged.) $)
  ifchhv $p |- if ( A e. CH , A , ~H ) e. CH $=
    ( chil cch helch elimel ) ABCDE $.

  $( Hilbert space is a subspace of Hilbert space.  (Contributed by NM,
     2-Jun-2004.)  (New usage is discouraged.) $)
  helsh $p |- ~H e. SH $=
    ( chil helch chshii ) ABC $.

  $( Subspaces are subsets of Hilbert space.  (Contributed by NM, 24-Nov-2004.)
     (New usage is discouraged.) $)
  shsspwh $p |- SH C_ ~P ~H $=
    ( vx csh cuni cpw chil pwuni wcel cv wss wral wceq helsh shss ssunieq mp2an
    rgen pweqi sseqtr4i ) BBCZDEDBFESEBGAHZEIZABJESKLUAABTMPAEBNOQR $.

  $( Closed subspaces are subsets of Hilbert space.  (Contributed by NM,
     24-Nov-2004.)  (New usage is discouraged.) $)
  chsspwh $p |- CH C_ ~P ~H $=
    ( cch csh chil cpw chsssh shsspwh sstri ) ABCDEFG $.

  ${
    $d x y f $.
    $( The zero subspace belongs to the set of closed subspaces of Hilbert
       space.  (Contributed by NM, 14-Oct-1999.)
       (New usage is discouraged.) $)
    hsn0elch $p |- { 0h } e. CH $=
      ( vf vx vy c0v wcel cn cv chli wbr wa wal chil cva co csm ax-hv0cl pm3.2i
      wral cc wceq csn cch csh wf wi wss snssi ax-mp elexi snid velsn hvaddid2i
      oveq12 syl6eq ovex elsn sylibr syl2anb rgen2a oveq2 sylan9eqr rgen2 issh2
      hvmul0 sylan2b mpbir2an wb fconst2 hlim0 breq1 mpbiri sylbi hlimuni sylan
      cxp eleq1d mpbii gen2 isch2 ) DUAZUBEVTUCEZFVTAGZUDZWBBGZHIZJZWDVTEZUEZBK
      AKWAVTLUFZDVTEZJWDCGZMNZVTEZCVTRBVTRZWDWKONZVTEZCVTRBSRZJWIWJDLEWIPDLUGUH
      DDLPUIZUJZQWNWQWMBCVTWGWDDTZWKDTZWMWKVTEZBDUKCDUKZWTXAJZWLDTWMXDWLDDMNDWD
      DWKDMUMDPULUNWLDWDWKMUOUPUQURUSWPBCSVTXBWDSEZXAWPXCXEXAJWODTWPXAXEWOWDDON
      DWKDWDOUTWDVDVAWODWDWKOUOUPUQVEVBQBCVTVCVFWHABWFWJWGWSWCWBDHIZWEWJWGVGWCW
      BFVTVOZTZXFFDWBWRVHXHXFXGDHIVIWBXGDHVJVKVLXFWEJDWDVTDWDWBVMVPVNVQVRBAVTVS
      VF $.
  $}

  $( From any nonzero Hilbert space vector, construct a vector whose norm is 1.
     (Contributed by NM, 7-Feb-2006.)  (New usage is discouraged.) $)
  norm1 $p |- ( ( A e. ~H /\ A =/= 0h ) ->
               ( normh ` ( ( 1 / ( normh ` A ) ) .h A ) ) = 1 ) $=
    ( chil wcel c0v wne wa c1 cno cfv cdiv co cmul cc cr adantr cc0 syl2anc wbr
    recnd cle csm cabs wceq normne0 biimpar rereccld simpl norm-iii clt normgt0
    normcl biimpa 1re 0le1 divge0 mpanl12 absidd oveq1d recid2d 3eqtrd ) ABCZAD
    EZFZGAHIZJKZAUAKHIZVEUBIZVDLKZVEVDLKGVCVEMCVAVFVHUCVCVEVCVDVAVDNCZVBAUKZOZV
    AVDPEVBAUDUEZUFZSVAVBUGVEAUHQVCVGVEVDLVCVEVMVCVIPVDUIRZPVETRZVKVAVBVNAUJULG
    NCPGTRVIVNFVOUMUNGVDUOUPQUQURVCVDVAVDMCVBVAVDVJSOVLUSUT $.

  ${
    $d x z H $.  $d y z H $.
    norm1ex.1 $e |- H e. SH $.
    $( A normalized vector exists in a subspace iff the subspace has a nonzero
       vector.  (Contributed by NM, 9-Apr-2006.)
       (New usage is discouraged.) $)
    norm1exi $p |- ( E. x e. H x =/= 0h <-> E. y e. H ( normh ` y ) = 1 ) $=
      ( vz cv c0v wne wrex cno cfv c1 wceq neeq1 cbvrexv wcel co chil syl cc0
      wa cdiv cc cr sheli normcl adantr wb normne0 biimpar rereccld recnd simpl
      csm csh shmulcl mp3an1 syl2anc norm1 sylan fveq2 eqeq1d rexlimiva ax-1ne0
      rspcev wn neii eqeq1 mtbiri norm-i necon3bbid syl5ib reximia sylib impbii
      bitri ) AFZGHZACIEFZGHZECIZBFZJKZLMZBCIZVRVTAECVQVSGNOWAWEVTWEECVSCPZVTUA
      ZLVSJKZUBQZVSUNQZCPZWJJKZLMZWEWGWIUCPZWFWKWGWIWGWHWFWHUDPZVTWFVSRPZWOVSCD
      UEZVSUFSUGWFWHTHZVTWFWPWRVTUHWQVSUISUJUKULWFVTUMCUOPWNWFWKDWIVSCUPUQURWFW
      PVTWMWQVSUSUTWDWMBWJCWBWJMWCWLLWBWJJVAVBVEURVCWEWBGHZBCIWAWDWSBCWDWCTMZVF
      WBCPZWSWDWTLTMLTVDVGWCLTVHVIXAWTWBGXAWBRPWTWBGMUHWBCDUEWBVJSVKVLVMWSVTBEC
      WBVSGNOVNVOVP $.
  $}

  $( A normalized vector can exist only iff the Hilbert space has a nonzero
     vector.  (Contributed by NM, 21-Jan-2006.)  (New usage is discouraged.) $)
  norm1hex $p |- ( E. x e. ~H x =/= 0h <-> E. y e. ~H ( normh ` y ) = 1 ) $=
    ( chil helsh norm1exi ) ABCDE $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Orthocomplements
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( Define orthogonal complement of a subset (usually a subspace) of Hilbert
       space.  The orthogonal complement is the set of all vectors orthogonal
       to all vectors in the subset.  See ~ ocval and ~ chocvali for its value.
       Textbooks usually denote this unary operation with the symbol ` _|_ ` as
       a small superscript, although Mittelstaedt uses the symbol as a prefix
       operation.  Here we define a function (prefix operation) ` _|_ ` rather
       than introducing a new syntactic form.  This lets us take advantage of
       the theorems about functions that we already have proved under set
       theory.  Definition of [Mittelstaedt] p. 9.  (Contributed by NM,
       7-Aug-2000.)  (New usage is discouraged.) $)
    df-oc $a |- _|_ = ( x e. ~P ~H |->
                        { y e. ~H | A. z e. x ( y .ih z ) = 0 } ) $.
  $}

  $( Define the zero for closed subspaces of Hilbert space.  See ~ h0elch for
     closure law.  (Contributed by NM, 30-May-1999.)
     (New usage is discouraged.) $)
  df-ch0 $a |- 0H = { 0h } $.

  $( Membership in zero for closed subspaces of Hilbert space.  (Contributed by
     NM, 6-Apr-2001.)  (New usage is discouraged.) $)
  elch0 $p |- ( A e. 0H <-> A = 0h ) $=
    ( c0h wcel c0v csn wceq df-ch0 eleq2i chil ax-hv0cl elexi elsn2 bitri ) ABC
    ADEZCADFBNAGHADDIJKLM $.

  $( The zero subspace is a closed subspace.  Part of Proposition 1 of
     [Kalmbach] p. 65.  (Contributed by NM, 30-May-1999.)
     (New usage is discouraged.) $)
  h0elch $p |- 0H e. CH $=
    ( c0h c0v csn cch df-ch0 hsn0elch eqeltri ) ABCDEFG $.

  $( The zero subspace is a subspace of Hilbert space.  (Contributed by NM,
     2-Jun-2004.)  (New usage is discouraged.) $)
  h0elsh $p |- 0H e. SH $=
    ( c0h h0elch chshii ) ABC $.

  ${
    hhss.1 $e |- W = <. <. ( +h |` ( H X. H ) ) , ( .h |` ( CC X. H ) ) >. ,
               ( normh |` H ) >. $.
    $( The vector addition operation on a subspace.  (Contributed by NM,
       8-Apr-2008.)  (New usage is discouraged.) $)
    hhssva $p |- ( +h |` ( H X. H ) ) = ( +v ` W ) $=
      ( cpv cfv c1st cva cxp cres csm cop cno fveq2i chil cvv resex op1st cablo
      cr wcel cc eqid vafval opex normf ax-hilex fex mp2an eqtri hilablo resexg
      wf ax-mp hvmulex 3eqtrri ) BDEZBFEZFEGAAHZIZJUAAHZIZKZFEUSBUPUPUBUCUQVBFU
      QVBLAIZKZFEVBBVDFCMVBVCUSVAUDLANSLULNOTLOTUEUFNSOLUGUHPQUIMUSVAGRTUSOTUJG
      URRUKUMJUTUNPQUO $.

    $( The scalar multiplication operation on a subspace.  (Contributed by NM,
       8-Apr-2008.)  (New usage is discouraged.) $)
    hhsssm $p |- ( .h |` ( CC X. H ) ) = ( .sOLD ` W ) $=
      ( cns cfv c1st c2nd cva cxp cres csm cop cno fveq2i chil wcel resex cablo
      cr cvv cc eqid smfval opex wf normf ax-hilex fex mp2an op1st eqtri resexg
      hilablo ax-mp hvmulex op2nd 3eqtrri ) BDEZBFEZGEHAAIZJZKUAAIZJZLZGEVCURBU
      RUBUCUSVDGUSVDMAJZLZFEVDBVFFCNVDVEVAVCUDMAOSMUEOTPMTPUFUGOSTMUHUIQUJUKNVA
      VCHRPVATPUMHUTRULUNKVBUOQUPUQ $.

    $( The norm operation on a subspace.  (Contributed by NM, 8-Apr-2008.)
       (New usage is discouraged.) $)
    hhssnm $p |- ( normh |` H ) = ( normCV ` W ) $=
      ( cnmcv cfv c2nd cva cxp cres csm cc cop cno eqid nmcvfval fveq2i chil cr
      cvv wcel opex wf normf ax-hilex fex mp2an resex op2nd 3eqtrri ) BDEZBFEGA
      AHIZJKAHIZLZMAIZLZFEUNBUJUJNOBUOFCPUMUNUKULUAMAQRMUBQSTMSTUCUDQRSMUEUFUGU
      HUI $.
  $}

  ${
    $d A x y $.  $d B y $.  $d G x y $.  $d H x y $.  $d Y x y $.
    issubgoilem.1 $e |- ( ( x e. Y /\ y e. Y ) -> ( x H y ) = ( x G y ) ) $.
    $( Lemma for ~ hhssabloilem .  (Contributed by Paul Chapman, 25-Feb-2008.)
       (New usage is discouraged.) $)
    issubgoilem $p |- ( ( A e. Y /\ B e. Y ) -> ( A H B ) = ( A G B ) ) $=
      ( cv co wceq oveq1 eqeq12d oveq2 vtocl2ga ) AIZBIZFJZPQEJZKCQFJZCQEJZKCDF
      JZCDEJZKABCDGGPCKRTSUAPCQFLPCQELMQDKTUBUAUCQDCFNQDCENMHO $.
  $}

  ${
    $d x y H $.  $d x y z H $.
    hhssabl.1 $e |- H e. SH $.
    $( Lemma for ~ hhssabloi .  Formerly part of proof for ~ hhssabloi which
       was based on the deprecated definition "SubGrpOp" for subgroups.
       (Contributed by NM, 9-Apr-2008.)  (Revised by Mario Carneiro,
       23-Dec-2013.)  (Revised by AV, 27-Aug-2021.)
       (New usage is discouraged.) $)
    hhssabloilem $p |- ( +h e. GrpOp /\ ( +h |` ( H X. H ) ) e. GrpOp
                                     /\ ( +h |` ( H X. H ) ) C_ +h ) $=
      ( vx vy cva wcel cxp wss ax-mp cfv cv wf eqid chil mp2an ovres wceq sseli
      co csm cgr cres cablo hilablo ablogrpo cgi cgn csh elexi wfn wral crn wfo
      vz grpofo fof mp2b shssii cop cno df-hba bafval sseqtri xpss12 fssres ffn
      wa shaddcl mp3an1 eqeltrd rgen2a ffnov mpbir2an w3a oveq1d 3adant3 stoic3
      hhva oveq2d 3adant1 fovcl sylan2 3impb grpoass mpan 3eqtr4d c0v hilid sh0
      syl3an eqeltri grpolid sylancr eqtrd c2nd cneg csn cvv ccnv ccom cnv hhnv
      c1 nvinvfval eqcomi fveq1i cc ax-hfvmul neg1cn curry1val shmulcl syl5eqel
      hhsm mp3an12 mpancom grpolinv isgrpoi resss 3pm3.2i ) EUAFZEAAGZUBZUAFYBE
      HEUCFXTUDEUEIZCDUNEUFJZYBCKZEUGJZJZAAUHBUIYAAYBLYBYAUJZYEDKZYBSZAFZDAUKCA
      UKYAEULZYBLZYHYLYLGZYLELZYAYNHZYMXTYNYLEUMYOYCEYLYLMZUOYNYLEUPUQAYLHZYRYP
      ANYLABURETUSUTUSZENVAYSYSMZVRZVBVCZUUBAYLAYLVDOYNYLYAEVEOYAYLYBVFIYKCDAYE
      AFZYIAFZVGZYJYEYIESZAYEYIAAEPZAUHFZUUCUUDUUFAFBYEYIAVHVIVJZVKCDAAAYBVLVMZ
      UUCUUDUNKZAFZVNZYJUUKESZUUFUUKESZYJUUKYBSZYEYIUUKYBSZYBSZUUCUUDUUNUUOQUUL
      UUEYJUUFUUKEUUGVOVPUUCUUDYKUULUUPUUNQUUIYJUUKAAEPVQUUMYEUUQESZYEYIUUKESZE
      SZUURUUOUUDUULUUSUVAQUUCUUDUULVGZUUQUUTYEEYIUUKAAEPVSVTUUCUUDUULUURUUSQZU
      VBUUCUUQAFUVCYIUUKAAAYBUUJWAYEUUQAAEPWBWCUUCYEYLFZUUDYIYLFZUULUUKYLFZUUOU
      VAQZAYLYEUUBRZAYLYIUUBRAYLUUKUUBRXTUVDUVEUVFVNUVGYCYEYIUUKEYLYQWDWEWJWFWF
      YDWGAWHUUHWGAFBAWIIWKZUUCYDYEYBSZYDYEESZYEYDAFUUCUVJUVKQUVIYDYEAAEPWEUUCX
      TUVDUVKYEQYCUVHYEYDEYLYQYDMZWLWMWNUUCYGYETWOXCWPZWQWRGUBWSWTZJZAYEYFUVNUV
      NYFYSXAFUVNYFQYSYTXBTYSEUVNUUAYSYTXMUVNMZXDIXEXFUUCUVOUVMYETSZATXGNGZUJZU
      VMXGFZUVOUVQQUVRNTLUVSXHUVRNTVFIXIXGNUVMYETUVNUVPXJOUUHUVTUUCUVQAFBXIUVMY
      EAXKXNXLXLZUUCYGYEYBSZYGYEESZYDYGAFUUCUWBUWCQUWAYGYEAAEPXOUUCXTUVDUWCYDQY
      CUVHYEYDEYFYLYQUVLYFMXPWMWNXQEYAXRXS $.

    $( Abelian group property of subspace addition.  (Contributed by NM,
       9-Apr-2008.)  (Revised by Mario Carneiro, 23-Dec-2013.)  (Proof
       shortened by AV, 27-Aug-2021.)  (New usage is discouraged.) $)
    hhssabloi $p |- ( +h |` ( H X. H ) ) e. AbelOp $=
      ( vx vy cva cxp cres cgr wcel wss hhssabloilem simp2i wceq chil shssii cv
      cdm co sheli ovres mp2an ax-hfvadd fdmi sseqtr4i ssdmres mpbi wa ax-hvcom
      xpss12 syl2an ancoms 3eqtr4d isabloi ) CDEAAFZGZAEHIUOHIUOEJABKLUNEQZJUOQ
      UNMUNNNFZUPANJZURUNUQJABOZUSANANUIUAUQNEUBUCUDUNEUEUFCPZAIZDPZAIZUGUTVBER
      ZVBUTERZUTVBUORVBUTUORZVAUTNIVBNIVDVEMVCUTABSVBABSUTVBUHUJUTVBAAETVCVAVFV
      EMVBUTAAETUKULUM $.
  $}

  $( Abelian group property of subspace addition.  (Contributed by NM,
     9-Apr-2008.)  (New usage is discouraged.) $)
  hhssablo $p |- ( H e. SH -> ( +h |` ( H X. H ) ) e. AbelOp ) $=
    ( csh wcel cva cxp cres cablo chil cif wceq xpeq1 xpeq2 eqtrd reseq2d helsh
    eleq1d elimel hhssabloi dedth ) ABCZDAAEZFZGCDTAHIZUCEZFZGCAHAUCJZUBUEGUFUA
    UDDUFUAUCAEUDAUCAKAUCUCLMNPUCAHBOQRS $.

  ${
    $d x y z H $.
    hhssnvt.1 $e |- W = <. <. ( +h |` ( H X. H ) ) , ( .h |` ( CC X. H ) ) >. ,
               ( normh |` H ) >. $.
    ${
      hhssnv.2 $e |- H e. SH $.
      $( Normed complex vector space property of a subspace.  (Contributed by
         NM, 26-Mar-2008.)  (New usage is discouraged.) $)
      hhssnv $p |- W e. NrmCVec $=
        ( vx vy csm cc cva cno c0v wcel wss wceq chil mp2an cfv co ovres eqtrd
        cxp cres cablo cgr hhssabloi ablogrpo ax-mp cdm shssii xpss12 ax-hfvadd
        vz fdmi sseqtr4i ssdmres grporn cgi csh sh0 ax-hv0cl hvaddid2i eqtri wb
        mpbi eqid grpoid mpbir cop wf wfn crn ax-hfvmul ffn ssid fnssres ovelrn
        cv wrex wa shmulcl mp3an1 eqeltrd eleq1 syl5ibrcom rexlimivv sylbi df-f
        ssriv mpbir2an c1 ax-1cn sheli ax-hvmulid syl w3a id ax-hvdistr1 syl3an
        mpan 3adant1 oveq2d shaddcl sylan2 3impb 3adant3 3adant2 oveq12d ovresd
        3eqtr4d caddc ax-hvdistr2 syl3an3 addcl cmul ax-hvmulass mulcl isvciOLD
        stoic3 cr normf fssres cc0 fvres eqeq1d norm-i bitrd biimpa cabs fveq2d
        norm-iii adantl cle wbr norm-ii syl2an oveqan12d 3brtr4d isnvi ) EFGHAU
        AZUBZBIAAUAZUBZJAUBZAKUUBAUUBUCLUUBUDLZADUEZUUBUFUGZUUAIUHZMUUBUHUUANUU
        AOOUAZUUGAOMZUUIUUAUUHMADUIZUUJAOAOUJPUUHOIUKUMUNUUAIUOVDZUPZKUUBUQQZNZ
        KKUUBRZKNZUUOKKIRZKKALZUURUUOUUQNAURLZUURDAUSUGZUUTKKAAISPKUTVAVBUUDUUR
        UUNUUPVCUUFUUTKUUMUUBAUULUUMVEVFPVGEFULYTUUBUUBYTVHZAUUEUUKYSAYTVIYTYSV
        JZYTVKZAMGHOUAZVJZYSUVDMZUVBUVDOGVIUVEVLUVDOGVMUGHHMUUIUVFHVNUUJHHAOUJP
        UVDYSGVOPZULUVCAULVQZUVCLZUVHEVQZFVQZYTRZNZFAVREHVRZUVHALZUVBUVIUVNVCUV
        GEFHAUVHYTVPUGUVMUVOEFHAUVJHLZUVKALZVSZUVOUVMUVLALUVRUVLUVJUVKGRZAUVJUV
        KHAGSUUSUVPUVQUVSALDUVJUVKAVTWAWBUVHUVLAWCWDWEWFWHYSAYTWGWIUVJALZWJUVJY
        TRZWJUVJGRZUVJWJHLUVTUWAUWBNWKWJUVJHAGSWSUVTUVJOLZUWBUVJNUVJADWLZUVJWMW
        NTUVKHLZUVTUVOWOZUVKUVJUVHIRZGRZUVKUVJGRZUVKUVHGRZIRZUVKUVJUVHUUBRZYTRZ
        UVKUVJYTRZUVKUVHYTRZUUBRZUWEUWEUVTUWCUVOUVHOLUWHUWKNUWEWPUWDUVHADWLUVKU
        VJUVHWQWRUWFUWMUVKUWGYTRZUWHUWFUWLUWGUVKYTUVTUVOUWLUWGNUWEUVJUVHAAISWTX
        AUWEUVTUVOUWQUWHNZUVTUVOVSUWEUWGALZUWRUUSUVTUVOUWSDUVJUVHAXBWAUVKUWGHAG
        SXCXDTUWFUWPUWIUWJUUBRUWKUWFUWNUWIUWOUWJUUBUWEUVTUWNUWINZUVOUVKUVJHAGSZ
        XEUWEUVOUWOUWJNUVTUVKUVHHAGSXFXGUWFUWIUWJIAUWEUVTUWIALZUVOUUSUWEUVTUXBD
        UVKUVJAVTWAZXEUWEUVOUWJALZUVTUUSUWEUVOUXDDUVKUVHAVTWAXFXHTXIUWEUVHHLZUV
        TWOZUVKUVHXJRZUVJGRZUWIUVHUVJGRZIRZUXGUVJYTRZUWNUVHUVJYTRZUUBRZUVTUWEUX
        EUWCUXHUXJNUWDUVKUVHUVJXKXLUWEUXEUXGHLUVTUXKUXHNUVKUVHXMUXGUVJHAGSXRUXF
        UXMUWIUXIUUBRUXJUXFUWNUWIUXLUXIUUBUWEUVTUWTUXEUXAXFUXEUVTUXLUXINUWEUVHU
        VJHAGSWTZXGUXFUWIUXIIAUWEUVTUXBUXEUXCXFUXEUVTUXIALZUWEUUSUXEUVTUXODUVHU
        VJAVTWAZWTXHTXIUXFUVKUVHXNRZUVJGRZUVKUXIGRZUXQUVJYTRZUVKUXLYTRZUVTUWEUX
        EUWCUXRUXSNUWDUVKUVHUVJXOXLUWEUXEUXQHLUVTUXTUXRNUVKUVHXPUXQUVJHAGSXRUXF
        UYAUVKUXIYTRZUXSUXFUXLUXIUVKYTUXNXAUWEUXEUVTUYBUXSNZUXEUVTVSUWEUXOUYCUX
        PUVKUXIHAGSXCXDTXIUVAVEXQOXSJVIUUIAXSUUCVIXTUUJOXSAJYAPUVTUVJUUCQZYBNZU
        VJKNZUVTUYEUVJJQZYBNZUYFUVTUYDUYGYBUVJAJYCZYDUVTUWCUYHUYFVCUWDUVJYEWNYF
        YGUWEUVTVSZUWIJQZUVKYHQZUYGXNRZUWNUUCQZUYLUYDXNRUVTUWEUWCUYKUYMNUWDUVKU
        VJYJXCUYJUYNUWIUUCQZUYKUYJUWNUWIUUCUXAYIUYJUXBUYOUYKNUXCUWIAJYCWNTUYJUY
        DUYGUYLXNUVTUYDUYGNUWEUYIYKXAXIUVTUVQVSZUVJUVKIRZJQZUYGUVKJQZXJRZUVJUVK
        UUBRZUUCQZUYDUVKUUCQZXJRYLUVTUWCUVKOLUYRUYTYLYMUVQUWDUVKADWLUVJUVKYNYOU
        YPVUBUYQUUCQZUYRUYPVUAUYQUUCUVJUVKAAISYIUYPUYQALZVUDUYRNUUSUVTUVQVUEDUV
        JUVKAXBWAUYQAJYCWNTUVTUVQUYDUYGVUCUYSXJUYIUVKAJYCYPYQCYR $.
    $}

    $( Normed complex vector space property of a subspace.  (Contributed by NM,
       9-Apr-2008.)  (New usage is discouraged.) $)
    hhssnvt $p |- ( H e. SH -> W e. NrmCVec ) $=
      ( csh wcel cnv cva c0h cif cxp cres csm cc cop wceq xpeq1 reseq2d opeq12d
      cno xpeq2 eqtrd reseq2 syl5eq eleq1d eqid h0elsh elimel hhssnv dedth ) AD
      EZBFEGUJAHIZUKJZKZLMUKJZKZNZSUKKZNZFEAHAUKOZBURFUSBGAAJZKZLMAJZKZNZSAKZNU
      RCUSVDUPVEUQUSVAUMVCUOUSUTULGUSUTUKAJULAUKAPAUKUKTUAQUSVBUNLAUKMTQRAUKSUB
      RUCUDUKURURUEAHDUFUGUHUI $.
  $}

  ${
    $d x y H $.
    hhsst.1 $e |- U = <. <. +h , .h >. , normh >. $.
    hhsst.2 $e |- W = <. <. ( +h |` ( H X. H ) ) , ( .h |` ( CC X. H ) ) >. ,
               ( normh |` H ) >. $.
    $( A member of ` SH ` is a subspace.  (Contributed by NM, 6-Apr-2008.)
       (New usage is discouraged.) $)
    hhsst $p |- ( H e. SH -> W e. ( SubSp ` U ) ) $=
      ( csh wcel cnv cva cxp cres wss csm cc cno w3a wa css cfv resss hhnv hhva
      hhssnvt 3pm3.2i jctir wb hhssva hhsm hhsssm hhnm hhssnm eqid isssp sylibr
      ax-mp ) BFGZCHGZIBBJZKZILZMNBJZKZMLZOBKZOLZPZQZCARSZGZUPUQVFBCEUCUTVCVEIU
      RTMVATOBTUDUEAHGVIVGUFADUAVBMAUSIVHVDOCADUBBCEUGADUHBCEUIADUJBCEUKVHULUMU
      OUN $.

    ${
      hhssp3.3 $e |- W e. ( SubSp ` U ) $.
      hhssp3.4 $e |- H C_ ~H $.
      $( Lemma for ~ hhsssh .  (Contributed by NM, 10-Apr-2008.)
         (New usage is discouraged.) $)
      hhshsslem1 $p |- H = ( BaseSet ` W ) $=
        ( cfv cpv eqid cdm wcel mp2an cxp cva cno c1st chil cvv eqtri wceq hhnv
        cba crn bafval cnv cgr css sspnv nvgrp grporndm mp2b cres csm cc fveq2i
        cop vafval opex cr wf normf ax-hilex fex resex op1st cablo resexg ax-mp
        hilablo hvmulex dmeqi wss xpss12 ax-hfvadd fdmi sseqtr4i ssdmres dmxpid
        mpbi eqcomi ) CUCHZBWBCIHZUDZBCWCWBWBJWCJZUEWDWCKZKZBCUFLZWCUGLWDWGUAAU
        FLCAUHHZLWHADUBFAWICWIJUIMCWCWEUJWCUKULWGBBNZKBWFWJWFOWJUMZKZWJWCWKWCWK
        UNUOBNZUMZUQZPBUMZUQZIHZWKCWQIEUPWRWQQHZQHZWKWQWRWRJURWTWOQHWKWSWOQWOWP
        WKWNUSPBRUTPVARSLPSLVBVCRUTSPVDMVEVFUPWKWNOVGLWKSLVJOWJVGVHVIUNWMVKVEVF
        TTTVLWJOKZVMWLWJUAWJRRNZXABRVMZXCWJXBVMGGBRBRVNMXBROVOVPVQWJOVRVTTVLBVS
        TTTWA $.

      $( Lemma for ~ hhsssh .  (Contributed by NM, 6-Apr-2008.)
         (New usage is discouraged.) $)
      hhshsslem2 $p |- H e. SH $=
        ( vx vy wcel c0v wa cv cva co wral cc cfv wceq eqid csh wss csm cnv css
        chil cn0v hhnv hh0v sspz mp2an sspnv nvzcl hhshsslem1 eleqtrri eqeltrri
        cba ax-mp pm3.2i hhva sspgval mpanl12 nvgcl mp3an1 eqeltrrd rgen2a hhsm
        cpv cns sspsval nvscl rgen2 issh2 mpbir2an ) BUAJBUFUBZKBJZLHMZIMZNOZBJ
        ZIBPHBPZVQVRUCOZBJZIBPHQPZLVOVPGCUGRZKBAUDJZCAUERZJZWEKSADUHZFWEAWGCKAD
        UIWETZWGTZUJUKWECUQRZBCUDJZWEWLJWFWHWMWIFAWGCWKULUKZCWLWEWLTWJUMURABCDE
        FGUNZUOUPUSWAWDVTHIBVQBJZVRBJZLZVQVRCVHRZOZVSBWFWHWRWTVSSWIFVQVRAWSNWGC
        BWOADUTWSTZWKVAVBWMWPWQWTBJWNVQVRCWSBWOXAVCVDVEVFWCHIQBVQQJZWQLZVQVRCVI
        RZOZWBBWFWHXCXEWBSWIFVQVRXDUCAWGCBWOADVGXDTZWKVJVBWMXBWQXEBJWNVQVRXDCBW
        OXFVKVDVEVLUSHIBVMVN $.
    $}

    $( The predicate " ` H ` is a subspace of Hilbert space."  (Contributed by
       NM, 25-Mar-2008.)  (New usage is discouraged.) $)
    hhsssh $p |- ( H e. SH <-> ( W e. ( SubSp ` U ) /\ H C_ ~H ) ) $=
      ( csh wcel chil wss cva cxp cres csm cop cno wceq xpeq2 reseq2d opeq12d
      cc css cfv hhsst shss jca cif eleq1 eqid xpeq1 eqtrd reseq2 syl5eq eleq1d
      wa sseq1 anbi12d wf wfn ax-hfvadd fnresdm mp2b ax-hfvmul opeq12i cr normf
      ffn eqtr4i cnv hhnv sspid ax-mp eqeltri ssid pm3.2i elimhyp simpli simpri
      hhshsslem2 dedth impbii ) BFGZCAUAUBZGZBHIZUNZWAWCWDABCDEUCBUDUEWEWAWEBHU
      FZFGBHBWFFUGAWFJWFWFKZLZMTWFKZLZNZOWFLZNZDWMUHWMWBGZWFHIZWEWNWOUNJHHKZLZM
      THKZLZNZOHLZNZWBGZHHIZUNBHBWFPZWCWNWDWOXECWMWBXECJBBKZLZMTBKZLZNZOBLZNWME
      XEXJWKXKWLXEXGWHXIWJXEXFWGJXEXFWFBKWGBWFBUIBWFWFQUJRXEXHWIMBWFTQRSBWFOUKS
      ULUMBWFHUOUPHWFPZXCWNXDWOXLXBWMWBXLWTWKXAWLXLWQWHWSWJXLWPWGJXLWPWFHKWGHWF
      HUIHWFWFQUJRXLWRWIMHWFTQRSHWFOUKSUMHWFHUOUPXCXDXBAWBXBJMNZONAWTXMXAOWQJWS
      MWPHJUQJWPURWQJPUSWPHJVFWPJUTVAWRHMUQMWRURWSMPVBWRHMVFWRMUTVAVCHVDOUQOHUR
      XAOPVEHVDOVFHOUTVAVCDVGAVHGAWBGADVIAWBWBUHVJVKVLHVMVNVOZVPWNWOXNVQVRVSVT
      $.
  $}

  ${
    hhsssh2.1 $e |- W = <. <. ( +h |` ( H X. H ) ) , ( .h |` ( CC X. H ) ) >. ,
               ( normh |` H ) >. $.
    $( The predicate " ` H ` is a subspace of Hilbert space."  (Contributed by
       NM, 8-Apr-2008.)  (New usage is discouraged.) $)
    hhsssh2 $p |- ( H e. SH <-> ( W e. NrmCVec /\ H C_ ~H ) ) $=
      ( csh wcel cva csm cop cno css cfv chil wss wa cnv eqid hhsssh cres resss
      cxp cc 3pm3.2i wb hhnv hhva hhssva hhsm hhsssm hhnm hhssnm isssp mpbiran2
      w3a ax-mp anbi1i bitri ) ADEBFGHIHZJKZEZALMZNBOEZUTNUQABUQPZCQUSVAUTUSVAF
      AATZRZFMZGUAATZRZGMZIARZIMZUMZVEVHVJFVCSGVFSIASUBUQOEUSVAVKNUCUQVBUDVGGUQ
      VDFURVIIBUQVBUEABCUFUQVBUGABCUHUQVBUIABCUJURPUKUNULUOUP $.

    ${
      hhssba.2 $e |- H e. SH $.
      $( The base set of a subspace.  (Contributed by NM, 10-Apr-2008.)
         (New usage is discouraged.) $)
      hhssba $p |- H = ( BaseSet ` W ) $=
        ( cva csm cop cno eqid csh wcel css cfv hhsst ax-mp shssii hhshsslem1 )
        EFGHGZABRIZCAJKBRLMKDRABSCNOADPQ $.

      $( The vector subtraction operation on a subspace.  (Contributed by NM,
         10-Apr-2008.)  (New usage is discouraged.) $)
      hhssvs $p |- ( -h |` ( H X. H ) ) = ( -v ` W ) $=
        ( cnsb cfv cmv cxp cres cva csm cop cno cnv wcel css wceq eqid hhnv csh
        hhsst ax-mp hhssba hhvs sspm mp2an eqcomi ) BEFZGAAHIZJKLMLZNOBUJPFZOZU
        HUIQUJUJRZSATOULDUJABUMCUAUBUJUKUHGBAABCDUCUJUMUDUHRUKRUEUFUG $.

      $( Mapping of the vector subtraction operation on a subspace.
         (Contributed by NM, 10-Apr-2008.)  (New usage is discouraged.) $)
      hhssvsf $p |- ( -h |` ( H X. H ) ) : ( H X. H ) --> H $=
        ( cnv wcel cxp cmv cres wf hhssnv hhssba hhssvs nvmf ax-mp ) BEFAAGZAHP
        IZJABCDKBQAABCDLABCDMNO $.

      $( Inner product space property of a subspace.  (Contributed by NM,
         10-Apr-2008.)  (New usage is discouraged.) $)
      hhssph $p |- W e. CPreHilOLD $=
        ( cva csm cop cno ccphlo wcel css cfv eqid hhph hhsst ax-mp sspph mp2an
        csh ) EFGHGZIJBTKLZJZBIJTTMZNASJUBDTABUCCOPTUABUAMQR $.
    $}

    ${
      hhssims.2 $e |- H e. SH $.
      hhssims.3 $e |- D = ( ( normh o. -h ) |` ( H X. H ) ) $.
      $( Induced metric of a subspace.  (Contributed by NM, 10-Apr-2008.)
         (New usage is discouraged.) $)
      hhssims $p |- D = ( IndMet ` W ) $=
        ( cno cmv ccom cxp cres cims cfv wcel wceq hhssnv hhssvs ax-mp eqtr4i
        cnv hhssnm eqid imsval resco crn wss wf hhssvsf frn cores ) AGHIBBJZKZC
        LMZFUMGBKZHUKKZIZULCTNUMUPOBCDEPUMCUOUNBCDEQBCDUAUMUBUCRULGUOIZUPGHUKUD
        UOUEBUFZUPUQOUKBUOUGURBCDEUHUKBUOUIRGUOBUJRSSS $.
    $}
  $}

  ${
    hhssims2.1 $e |- W =
   <. <. ( +h |` ( H X. H ) ) , ( .h |` ( CC X. H ) ) >. , ( normh |` H ) >. $.
    hhssims2.3 $e |- D = ( IndMet ` W ) $.
    ${
      hhssims2.2 $e |- H e. SH $.
      $( Induced metric of a subspace.  (Contributed by NM, 10-Apr-2008.)
         (New usage is discouraged.) $)
      hhssims2 $p |- D = ( ( normh o. -h ) |` ( H X. H ) ) $=
        ( cims cfv cno cmv ccom cxp cres eqid hhssims eqtr4i ) ACGHIJKBBLMZEQBC
        DFQNOP $.

      $( Induced metric of a subspace.  (Contributed by NM, 10-Apr-2008.)
         (New usage is discouraged.) $)
      hhssmet $p |- D e. ( Met ` H ) $=
        ( cnv wcel cme cfv hhssnv hhssba imsmet ax-mp ) CGHABIJHBCDFKACBBCDFLEM
        N $.

      $( Value of the distance function of the metric space of a subspace.
         (Contributed by NM, 10-Apr-2008.)  (New usage is discouraged.) $)
      hhssmetdval $p |- ( ( A e. H /\ B e. H )
         -> ( A D B ) = ( normh ` ( A -h B ) ) ) $=
        ( wcel wa co cmv cxp cres cno cfv cnv wceq hhssnv mp3an1 hhssba imsdval
        hhssvs hhssnm ovres fveq2d csh shsubcl fvres syl 3eqtrd ) ADIZBDIZJZABC
        KZABLDDMNZKZODNZPZABLKZURPZUTOPZEQIULUMUOUSRDEFHSABCEUPURDDEFHUADEFHUCD
        EFUDGUBTUNUQUTURABDDLUEUFUNUTDIZVAVBRDUGIULUMVCHABDUHTUTDOUIUJUK $.
    $}

    ${
      $d f x D $.  $d f x H $.
      hhsscms.3 $e |- H e. CH $.
      $( The induced metric of a closed subspace is complete.  (Contributed by
         NM, 10-Apr-2008.)  (Revised by Mario Carneiro, 14-May-2014.)
         (New usage is discouraged.) $)
      hhsscms $p |- D e. ( CMet ` H ) $=
        ( vf vx cmopn cfv eqid cv cca wcel cn wf chli clm wbr chil hhssmet ccom
        chshii wa cdm cno cmv ccau wrex cmap cxp simpl hhssims2 fveq2i syl6eleq
        co cres cxmt hilxmet simpr causs sylancr mpbird wss chssii fss ax-hilex
        wb sylancl nnex elmap sylibr cva csm cop hhims hhcau sylanbrc ax-hcompl
        elin2 vex rexlimivw 3syl wfun hlimf ffun funfvbrb mp2b sylib hhlm resss
        breldm eqsstri ssbri syl c1 cch crest wceq metrest eqcomi nnuz a1i ctop
        mp2an mopntop mp1i fvex chlimi syl3anc 1zzd lmss mpbid iscmet3i ) AGAIJ
        ZBXOKZABCDEBFUCZUAGLZAMJZNZOBXRPZUDZXRXRQJZXORJZSZXRYDUENYBXRYCUFUGUBZI
        JZRJZSZYEYBXRYCQSZYIYBXRQUEZNZYJYBXRUHNZXRHLZQSZHTUIYLYBXRYFMJZNZXRTOUJ
        UPZNZYMYBYQXRYFBBUKUQZMJZNZYBXRXSUUAXTYAULAYTMABCDEXQUMZUNUOYBYFTURJNZY
        AYQUUBVHYFYFKZUSZXTYAUTZYFXRTBVAVBVCYBOTXRPZYSYBYABTVDZUUHUUGBFVEZOBTXR
        VFVITOXRVGVJVKVLXRYPYRUHYFVMVNVOUFVOZUUKKZYFUUKUULUUEVPZVQVTVRHXRVSYOYL
        HTXRYNQGWAZHWAWLWBWCYKTQPQWDYLYJVHWEYKTQWFXRQWGWHWIZQYHXRYCQYHYRUQYHYFU
        UKYGUULUUMYGKZWJYHYRWKWMWNWOYBYCXRYGXOWPWQBOYGBWRUPZXOUUDUUIUUQXOWSUUFU
        UJYFAYGXOTBUUCUUPXPWTXEXAXBBWQNZYBFXCZUUDYGXDNYBUUFYFYGTUUPXFXGYBUURYAY
        JYCBNUUSUUGUUOYCXRBXRQXHZXIXJYBXKUUGXLXMXRYCYDUUNUUTWLWOXN $.
    $}
  $}

  ${
    hhssbn.1 $e |- W = <. <. ( +h |` ( H X. H ) ) , ( .h |` ( CC X. H ) ) >. ,
               ( normh |` H ) >. $.
    hhssbn.2 $e |- H e. CH $.
    $( Banach space property of a closed subspace.  (Contributed by NM,
       10-Apr-2008.)  (New usage is discouraged.) $)
    hhssbn $p |- W e. CBan $=
      ( ccbn wcel cnv cims cfv chshii hhssnv eqid hhsscms hhssba iscbn mpbir2an
      cms ) BEFBGFBHIZAQIFABCADJZKRABCRLZDMRBAABCSNTOP $.

    $( Hilbert space property of a closed subspace.  (Contributed by NM,
       10-Apr-2008.)  (New usage is discouraged.) $)
    hhsshl $p |- W e. CHilOLD $=
      ( chlo wcel ccbn ccphlo hhssbn chshii hhssph ishlo mpbir2an ) BEFBGFBHFAB
      CDIABCADJKBLM $.
  $}

  ${
    $d x y z H $.  $d x y z A $.  $d x y B $.
    $( Value of orthogonal complement of a subset of Hilbert space.
       (Contributed by NM, 7-Aug-2000.)  (Revised by Mario Carneiro,
       23-Dec-2013.)  (New usage is discouraged.) $)
    ocval $p |- ( H C_ ~H -> ( _|_ ` H ) =
        { x e. ~H | A. y e. H ( x .ih y ) = 0 } ) $=
      ( vz chil wss cpw wcel cort cfv cv csp cc0 wceq wral ax-hilex elpw2 raleq
      co crab rabbidv df-oc rabex fvmpt sylbir ) CEFCEGZHCIJAKBKLSMNZBCOZAETZNC
      EPQDCUGBDKZOZAETUIUFIUJCNUKUHAEUGBUJCRUADABUBUHAEPUCUDUE $.

    $( Membership in orthogonal complement of H subset.  (Contributed by NM,
       7-Aug-2000.)  (New usage is discouraged.) $)
    ocel $p |- ( H C_ ~H -> ( A e. ( _|_ ` H ) <-> ( A e. ~H /\
                  A. x e. H ( A .ih x ) = 0 ) ) ) $=
      ( vy chil wss cort cfv wcel cv csp co cc0 wceq wral wa ocval eleq2d oveq1
      crab eqeq1d ralbidv elrab syl6bb ) CEFZBCGHZIBDJZAJZKLZMNZACOZDETZIBEIBUH
      KLZMNZACOZPUEUFULBDACQRUKUODBEUGBNZUJUNACUPUIUMMUGBUHKSUAUBUCUD $.

    $( Membership in orthogonal complement of H subspace.  (Contributed by NM,
       9-Oct-1999.)  (New usage is discouraged.) $)
    shocel $p |- ( H e. SH -> ( A e. ( _|_ ` H ) <-> ( A e. ~H /\
                  A. x e. H ( A .ih x ) = 0 ) ) ) $=
      ( csh wcel chil wss cort cfv cv csp co cc0 wceq wral wa wb shss ocel syl
      ) CDECFGBCHIEBFEBAJKLMNACOPQCRABCST $.

    $( The orthogonal complement of a subspace is a subspace.  Part of Remark
       3.12 of [Beran] p. 107.  (Contributed by NM, 7-Aug-2000.)
       (New usage is discouraged.) $)
    ocsh $p |- ( A C_ ~H -> ( _|_ ` A ) e. SH ) $=
      ( vx vy vz chil c0v wcel wa cv co wral cc csp cc0 wceq syl6 ocel wi caddc
      cmul wss cort cfv cva csm csh crab ssrab2 syl6eqss ssel ralrimiv ax-hv0cl
      ocval hi01 jctil mpbird jca ssel2 ax-his2 3expa oveq12 syl6eq sylan9eq ex
      00id ancoms sylan an32s ralimdva imdistanda hvaddcl anim1i anbi12d r19.26
      an4 anbi2i bitr4i syl6bb ralrimivv mul01 oveq2 eqeq1d syl5ibrcom ad2antrl
      3imtr4d w3a ax-his3 sylibrd hvmulcl anbi2d anass syl6bbr issh2 sylanbrc
      wb ) AEUAZAUBUCZEUAZFWQGZHBIZCIZUDJZWQGZCWQKBWQKZWTXAUEJZWQGZCWQKBLKZHWQU
      FGWPWRWSWPWQWTXAMJNOCAKZBEUGEBCAUMXHBEUHUIWPWSFEGZFXAMJNOZCAKZHWPXKXIWPXJ
      CAWPXAAGXAEGZXJAEXAUJXAUNPUKULUOCFAQUPUQWPXDXGWPXCBCWQWQWPWTEGZXLHZWTDIZM
      JZNOZXAXOMJZNOZHZDAKZHZXBEGZXBXOMJZNOZDAKZHZWTWQGZXAWQGZHZXCWPYBXNYFHYGWP
      XNYAYFWPXNHXTYEDAWPXOAGZXNXTYERZWPYKHZXOEGZXNYLAEXOURZXNYNYLXNYNHZXTYEYPX
      TYDXPXRSJZNXMXLYNYDYQOWTXAXOUSUTXTYQNNSJNXPNXRNSVAVEVBVCVDVFVGVHVIVJXNYCY
      FWTXAVKVLPWPYJXMXQDAKZHZXLXSDAKZHZHZYBWPYHYSYIUUADWTAQDXAAQZVMUUBXNYRYTHZ
      HYBXMYRXLYTVOYAUUDXNXQXSDAVNVPVQVRDXBAQWEVSWPXFBCLWQWPWTLGZXLHZYTHZXEEGZX
      EXOMJZNOZDAKZHZUUEYIHZXFWPUUGUUFUUKHUULWPUUFYTUUKWPUUFHXSUUJDAWPYKUUFXSUU
      JRZYMYNUUFUUNYOYNUUFHXSWTXRTJZNOZUUJUUEXSUUPRYNXLUUEUUPXSWTNTJZNOWTVTXSUU
      OUUQNXRNWTTWAWBWCWDUUFYNUUJUUPWOZUUEXLYNUURUUEXLYNWFUUIUUONWTXAXOWGWBUTVF
      WHVGVHVIVJUUFUUHUUKWTXAWIVLPWPUUMUUEUUAHUUGWPYIUUAUUEUUCWJUUEXLYTWKWLDXEA
      QWEVSUQBCWQWMWN $.

    $( The orthogonal complement of a subspace is a subspace.  Part of Remark
       3.12 of [Beran] p. 107.  (Contributed by NM, 10-Oct-1999.)
       (New usage is discouraged.) $)
    shocsh $p |- ( A e. SH -> ( _|_ ` A ) e. SH ) $=
      ( csh wcel chil wss cort cfv shss ocsh syl ) ABCADEAFGBCAHAIJ $.

    $( An orthogonal complement is a subset of Hilbert space.  (Contributed by
       NM, 9-Aug-2000.)  (New usage is discouraged.) $)
    ocss $p |- ( A C_ ~H -> ( _|_ ` A ) C_ ~H ) $=
      ( chil wss cort cfv csh wcel ocsh shss syl ) ABCADEZFGKBCAHKIJ $.

    $( An orthogonal complement is a subset of Hilbert space.  (Contributed by
       NM, 11-Oct-1999.)  (New usage is discouraged.) $)
    shocss $p |- ( A e. SH -> ( _|_ ` A ) C_ ~H ) $=
      ( csh wcel chil wss cort cfv shss ocss syl ) ABCADEAFGDEAHAIJ $.

    $( Contraposition law for orthogonal complement.  (Contributed by NM,
       8-Aug-2000.)  (New usage is discouraged.) $)
    occon $p |- ( ( A C_ ~H /\ B C_ ~H ) ->
                 ( A C_ B -> ( _|_ ` B ) C_ ( _|_ ` A ) ) ) $=
      ( vx vy chil wss wa cort cfv cv csp co wceq wral crab wi ssralv ralrimivw
      cc0 ocval ss2rab sylibr adantl ad2antlr ad2antrr 3sstr4d ex ) AEFZBEFZGZA
      BFZBHIZAHIZFUJUKGCJDJKLSMZDBNZCEOZUNDANZCEOZULUMUKUPURFZUJUKUOUQPZCENUSUK
      UTCEUNDABQRUOUQCEUAUBUCUIULUPMUHUKCDBTUDUHUMURMUIUKCDATUEUFUG $.

    $( Double contraposition for orthogonal complement.  (Contributed by NM,
       22-Jul-2001.)  (New usage is discouraged.) $)
    occon2 $p |- ( ( A C_ ~H /\ B C_ ~H ) ->
              ( A C_ B -> ( _|_ ` ( _|_ ` A ) ) C_ ( _|_ ` ( _|_ ` B ) ) ) ) $=
      ( chil wss wa cort cfv ocss anim12ci occon sylsyld ) ACDZBCDZEBFGZCDZAFGZ
      CDZEABDNPDPFGNFGDLQMOAHBHIABJNPJK $.

    ${
      occon2.1 $e |- A C_ ~H $.
      occon2.2 $e |- B C_ ~H $.
      $( Double contraposition for orthogonal complement.  (Contributed by NM,
         9-Aug-2000.)  (New usage is discouraged.) $)
      occon2i $p |- ( A C_ B ->
                   ( _|_ ` ( _|_ ` A ) ) C_ ( _|_ ` ( _|_ ` B ) ) ) $=
        ( chil wss cort cfv wi occon2 mp2an ) AEFBEFABFAGHGHBGHGHFICDABJK $.
    $}

    $( The zero vector belongs to an orthogonal complement of a Hilbert
       subspace.  (Contributed by NM, 11-Oct-1999.)
       (New usage is discouraged.) $)
    oc0 $p |- ( H e. SH -> 0h e. ( _|_ ` H ) ) $=
      ( csh wcel cort cfv c0v shocsh sh0 syl ) ABCADEZBCFJCAGJHI $.

    $( Members of a subset and its complement are orthogonal.  (Contributed by
       NM, 9-Aug-2000.)  (New usage is discouraged.) $)
    ocorth $p |- ( H C_ ~H -> ( ( A e. H /\ B e. ( _|_ ` H ) ) ->
                 ( A .ih B ) = 0 ) ) $=
      ( vx chil wss wcel cort cfv wa csp co cc0 wceq cv wral simplbda adantl wi
      ocel oveq2 eqeq1d rspcv ad2antlr ssel2 ocss sselda orthcom syl2an sylibrd
      wb mpd anandis ex ) CEFZACGZBCHIZGZJABKLMNZUOUPURUSUOUPJZUOURJZJZBDOZKLZM
      NZDCPZUSVAVFUTUOURBEGZVFDBCTQRVBVFBAKLZMNZUSUPVFVISUOVAVEVIDACVCANVDVHMVC
      ABKUAUBUCUDUTAEGVGUSVIUKVACEAUEUOUQEBCUFUGABUHUIUJULUMUN $.

    $( Members of a subspace and its complement are orthogonal.  (Contributed
       by NM, 10-Oct-1999.)  (New usage is discouraged.) $)
    shocorth $p |- ( H e. SH -> ( ( A e. H /\ B e. ( _|_ ` H ) ) ->
                 ( A .ih B ) = 0 ) ) $=
      ( csh wcel chil wss cort cfv wa csp co cc0 wceq wi shss ocorth syl ) CDEC
      FGACEBCHIEJABKLMNOCPABCQR $.

    $( Inclusion in complement of complement.  Part of Proposition 1 of
       [Kalmbach] p. 65.  (Contributed by NM, 9-Aug-2000.)
       (New usage is discouraged.) $)
    ococss $p |- ( A C_ ~H -> A C_ ( _|_ ` ( _|_ ` A ) ) ) $=
      ( vy vx chil wss cort cfv cv wcel csp co cc0 wceq wral wa ocorth ralrimdv
      ssel expd jcad wb ocss ocel syl sylibrd ssrdv ) ADEZBAAFGZFGZUGBHZAIZUJDI
      ZUJCHZJKLMZCUHNZOZUJUIIZUGUKULUOADUJRUGUKUNCUHUGUKUMUHIUNUJUMAPSQTUGUHDEU
      QUPUAAUBCUJUHUCUDUEUF $.

    $( Inclusion in complement of complement.  Part of Proposition 1 of
       [Kalmbach] p. 65.  (Contributed by NM, 10-Oct-1999.)
       (New usage is discouraged.) $)
    shococss $p |- ( A e. SH -> A C_ ( _|_ ` ( _|_ ` A ) ) ) $=
      ( csh wcel chil wss cort cfv shss ococss syl ) ABCADEAAFGFGEAHAIJ $.

    $( Members of orthogonal subspaces are orthogonal.  (Contributed by NM,
       17-Oct-1999.)  (New usage is discouraged.) $)
    shorth $p |- ( H e. SH -> ( G C_ ( _|_ ` H ) ->
        ( ( A e. G /\ B e. H ) -> ( A .ih B ) = 0 ) ) ) $=
      ( csh wcel cort cfv wss wa csp cc0 wceq ssel anim1d imp ancomd chil sseld
      co shocorth wb shss shocss anim12d orthcom syl mpbid sylan2 exp32 ) DEFZC
      DGHZIZACFZBDFZJZABKTLMZUMUPJZUKUOAULFZJZUQURUSUOUMUPUSUOJUMUNUSUOCULANOPQ
      UKUTJZBAKTLMZUQUKUTVBBADUAPVABRFZARFZJZVBUQUBUKUTVEUKUOVCUSVDUKDRBDUCSUKU
      LRADUDSUEPBAUFUGUHUIUJ $.

    $( Intersection of a Hilbert subspace and its complement.  Part of
       Proposition 1 of [Kalmbach] p. 65.  (Contributed by NM, 11-Oct-1999.)
       (New usage is discouraged.) $)
    ocin $p |- ( A e. SH -> ( A i^i ( _|_ ` A ) ) = 0H ) $=
      ( vx vy csh wcel cort cfv cin c0h cv wa c0v wceq chil csp co cc0 wi eleq1
      wral shocel oveq2 eqeq1d rspccv his6 biimpd sylan9r syl6bi com23 impd sh0
      oc0 jca anbi12d syl5ibrcom impbid elin elch0 3bitr4g eqrdv ) ADEZBAAFGZHZ
      IVABJZAEZVDVBEZKZVDLMZVDVCEVDIEVAVGVHVAVEVFVHVAVFVEVHVAVFVDNEZVDCJZOPZQMZ
      CATZKVEVHRCVDAUAVMVEVDVDOPZQMZVIVHVLVOCVDAVJVDMVKVNQVJVDVDOUBUCUDVIVOVHVD
      UEUFUGUHUIUJVAVGVHLAEZLVBEZKVAVPVQAUKAULUMVHVEVPVFVQVDLASVDLVBSUNUOUPVDAV
      BUQVDURUSUT $.

    $( Hilbert lattice contraposition law.  (Contributed by Mario Carneiro,
       18-May-2014.)  (New usage is discouraged.) $)
    occon3 $p |- ( ( A C_ ~H /\ B C_ ~H ) ->
                     ( A C_ ( _|_ ` B ) <-> B C_ ( _|_ ` A ) ) ) $=
      ( chil wss wa cort cfv ococss adantl wi occon sylan2 sstr2 sylsyld adantr
      ocss id syl2anr impbid ) ACDZBCDZEZABFGZDZBAFGZDZUBBUCFGZDZUDUGUEDZUFUAUH
      TBHIUATUCCDUDUIJBPAUCKLBUGUEMNUBAUEFGZDZUFUJUCDZUDTUKUAAHOUAUAUECDUFULJTU
      AQAPBUEKRAUJUCMNS $.
  $}

  $( A nonzero vector in the complement of a subspace does not belong to the
     subspace.  (Contributed by NM, 10-Apr-2006.)
     (New usage is discouraged.) $)
  ocnel $p |- ( ( H e. SH /\ A e. ( _|_ ` H ) /\ A =/= 0h ) -> -. A e. H ) $=
    ( csh wcel cort cfv c0v wne wn c0h wceq cin elin ocin eleq2d biimpd syl5bir
    wa wi expcomd imp elch0 syl6ib necon3ad 3impia ) BCDZABEFZDZAGHABDZIUFUHRZU
    IAGUJUIAJDZAGKUFUHUIUKSUFUIUHUKUIUHRABUGLZDZUFUKABUGMUFUMUKUFULJABNOPQTUAAU
    BUCUDUE $.

  ${
    $d x y A $.
    chocval.1 $e |- A e. CH $.
    $( Value of the orthogonal complement of a Hilbert lattice element.  The
       orthogonal complement of ` A ` is the set of vectors that are orthogonal
       to all vectors in ` A ` .  (Contributed by NM, 8-Aug-2004.)
       (New usage is discouraged.) $)
    chocvali $p |- ( _|_ ` A ) = { x e. ~H | A. y e. A ( x .ih y ) = 0 } $=
      ( chil wss cort cfv cv csp co cc0 wceq wral crab chssii ocval ax-mp ) CEF
      CGHAIBIJKLMBCNAEOMCDPABCQR $.
  $}

  ${
    shuni.1 $e |- ( ph -> H e. SH ) $.
    shuni.2 $e |- ( ph -> K e. SH ) $.
    shuni.3 $e |- ( ph -> ( H i^i K ) = 0H ) $.
    shuni.4 $e |- ( ph -> A e. H ) $.
    shuni.5 $e |- ( ph -> B e. K ) $.
    shuni.6 $e |- ( ph -> C e. H ) $.
    shuni.7 $e |- ( ph -> D e. K ) $.
    shuni.8 $e |- ( ph -> ( A +h B ) = ( C +h D ) ) $.
    $( Two subspaces with trivial intersection have a unique decomposition of
       the elements of the subspace sum.  (Contributed by Mario Carneiro,
       15-May-2014.)  (New usage is discouraged.) $)
    shuni $p |- ( ph -> ( A = C /\ B = D ) ) $=
      ( wceq co wcel chil syl2anc cmv c0v c0h cin csh shsubcl syl3anc hvaddsub4
      cva shel syl22anc mpbid eqeltrd elind eleqtrd elch0 sylib hvsubeq0 eqtr3d
      wb eqcomd jca ) ABDPZCEPABDUAQZUBPZVCAVDUCRVEAVDFGUDUCAFGVDAFUERZBFRZDFRZ
      VDFRHKMBDFUFUGAVDECUAQZGABCUIQDEUIQPZVDVIPZOABSRZCSRZDSRZESRZVJVKUTAVFVGV
      LHKBFUJTZAGUERZCGRZVMILCGUJTZAVFVHVNHMDFUJTZAVQEGRZVOINEGUJTZBCDEUHUKULZA
      VQWAVRVIGRINLECGUFUGUMUNJUOVDUPUQZAVLVNVEVCUTVPVTBDURTULAECAVIUBPZECPZAVD
      VIUBWCWDUSAVOVMWEWFUTWBVSECURTULVAVB $.
  $}

  ${
    chocuni.1 $e |- H e. CH $.
    $( Lemma for uniqueness part of Projection Theorem.  Theorem 3.7(i) of
       [Beran] p. 102 (uniqueness part).  (Contributed by NM, 23-Oct-1999.)
       (Proof shortened by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    chocunii $p |- ( ( ( A e. H /\ B e. ( _|_ ` H ) ) /\
                    ( C e. H /\ D e. ( _|_ ` H ) ) ) ->
            ( ( R = ( A +h B ) /\ R = ( C +h D ) ) -> ( A = C /\ B = D ) ) ) $=
      ( wcel cort cfv wa cva co wceq csh chshii a1i shocsh mp1i cin c0h simplll
      ocin simpllr simplrl simplrr eqtr2 adantl shuni ex ) AFHZBFIJZHZKZCFHZDUL
      HZKZKZEABLMZNECDLMZNKZACNBDNKURVAKZABCDFULFOHZVBFGPZQVCULOHVBVDFRSVCFULTU
      ANVBVDFUCSUKUMUQVAUBUKUMUQVAUDUNUOUPVAUEUNUOUPVAUFVAUSUTNUREUSUTUGUHUIUJ
      $.
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z C $.
    $( Projection Theorem, uniqueness part.  Any two disjoint subspaces yield a
       unique decomposition of vectors into each subspace.  (Contributed by
       Mario Carneiro, 15-May-2014.)  (New usage is discouraged.) $)
    pjhthmo $p |- ( ( A e. SH /\ B e. SH /\ ( A i^i B ) = 0H ) ->
                   E* x ( x e. A /\ E. y e. B C = ( x +h y ) ) ) $=
      ( vz vw csh wcel cin c0h wceq cv cva co wrex wa wal syl5bir eqeq2d w3a wi
      wmo reeanv simpll1 simpll2 simpll3 simplrl simprll simplrr simprlr eqtr3d
      simprrl simprrr shuni simpld exp32 rexlimdvv expimpd alrimivv eleq1 oveq1
      an4 rexbidv oveq2 cbvrexv syl6bb anbi12d mo4 sylibr ) CHIZDHIZCDJKLZUAZAM
      ZCIZEVOBMZNOZLZBDPZQZFMZCIZEWBGMZNOZLZGDPZQZQZVOWBLZUBZFRARWAAUCVNWKAFWIV
      PWCQZVTWGQZQVNWJVPWCVTWGVCVNWLWMWJWMVSWFQZGDPBDPVNWLQZWJVSWFBGDDUDWOWNWJB
      GDDWOVQDIZWDDIZQZWNWJWOWRWNQZQZWJVQWDLZWTVOVQWBWDCDVKVLVMWLWSUEVKVLVMWLWS
      UFVKVLVMWLWSUGVNVPWCWSUHWOWPWQWNUIVNVPWCWSUJWOWPWQWNUKWTEVRWEWOWRVSWFUMWO
      WRVSWFUNULUOUPUQURSUSSUTWAWHAFWJVPWCVTWGVOWBCVAWJVTEWBVQNOZLZBDPWGWJVSXCB
      DWJVRXBEVOWBVQNVBTVDXCWFBGDXAXBWEEVQWDWBNVETVFVGVHVIVJ $.
  $}

  ${
    $d k x B $.  $d k x F $.  $d k x ph $.  $d x A $.
    occl.1 $e |- ( ph -> A C_ ~H ) $.
    occl.2 $e |- ( ph -> F e. Cauchy ) $.
    occl.3 $e |- ( ph -> F : NN --> ( _|_ ` A ) ) $.
    occl.4 $e |- ( ph -> B e. A ) $.
    $( Lemma for ~ occl .  (Contributed by NM, 7-Aug-2000.)  (Revised by Mario
       Carneiro, 14-May-2014.)  (New usage is discouraged.) $)
    occllem $p |- ( ph -> ( ( ~~>v ` F ) .ih B ) = 0 ) $=
      ( vx vk chli cfv csp co cc0 cn wcel eqid chil wceq ccnfld ctopn cnfldhaus
      csn cxp cha a1i cv cmpt ccom clm cno cmv cmopn wbr cdm ccau ax-hcompl wfn
      wrex wf hlimf ffn ax-mp fnbr mpan rexlimivw 3syl wfun ffun funfvbrb sylib
      mp2b cmap cres cva csm cop hhims hhlm resss eqsstri ssbri syl cxmt ctopon
      wb hilxmet mopntopon mp1i cnmptid sseldd cnmptc cnv ctx ccn hhnv cnmpt12f
      hhip dipcn lmcn wral wa cort ffvelrnda wss ocel adantr mpbid simpld oveq1
      ovex fvmpt simprd oveq2 eqeq1d rspcv sylc eqtrd ocss fvco3 sylan fvconst2
      fssd adantl 3eqtr4d ralrimiva fnmpti sylancr fconst eqfnfv sylancl mpbird
      c0ex fnfco fvex hlimveci 3brtr3d cc c1 cz cnfldtopon 0cnd lmconst syl3anc
      1zzd nnuz lmmo ) ADKLZCMNZOPOUDZUEZUAUBLZUUMUFQAUUMUUMRZUCUGAISIUHZCMNZUI
      ZDUJZUUIUUQLZUULUUJUUMUKLZAUUIDUUQULUMUJZUNLZUUMADUUIKUOZDUUIUVBUKLZUOADK
      UPZQZUVCADUQQDUUOKUOZISUTUVFFIDURUVGUVFISKUVEUSZUVGUVFUVESKVAZUVHVBUVESKV
      CVDUVEDUUOKVEVFVGVHUVIKVIUVFUVCWGVBUVESKVJDKVKVMVLZKUVDDUUIKUVDSPVNNZVOUV
      DUVAVPVQVRULVRZUVBUVLRZUVAUVLUVMUVARZVSZUVBRZVTUVDUVKWAWBWCWDAIUUOCMUVBUV
      BUVBUUMSUVASWELQUVBSWFLQAUVAUVNWHUVAUVBSUVPWIWJZAIUVBSUVQWKAICUVBUVBSSUVQ
      UVQABSCEHWLWMUVLWNQMUVBUVBWONUUMWPNQAUVLUVMWQUVAMUVLUVBUUMUVLUVMWSUVOUVPU
      UNWTWJWRXAAUURUULTZJUHZUURLZUVSUULLZTZJPXBZAUWBJPAUVSPQZXCZUVSDLZUUQLZOUV
      TUWAUWEUWGUWFCMNZOUWEUWFSQZUWGUWHTUWEUWIUWFUUOMNZOTZIBXBZUWEUWFBXDLZQZUWI
      UWLXCZAPUWMUVSDGXEAUWNUWOWGZUWDABSXFZUWPEIUWFBXGWDXHXIZXJIUWFUUPUWHSUUQUU
      OUWFCMXKUUQRZUWFCMXLXMWDUWECBQZUWLUWHOTZAUWTUWDHXHUWEUWIUWLUWRXNUWKUXAICB
      UUOCTUWJUWHOUUOCUWFMXOXPXQXRXSAPSDVAZUWDUVTUWGTAPUWMSDGAUWQUWMSXFEBXTWDYD
      ZPSUVSUUQDYAYBUWDUWAOTAPOUVSYNYCYEYFYGAUURPUSZUULPUSZUVRUWCWGAUUQSUSUXBUX
      DISUUPUUQUUOCMXLUWSYHUXCSPUUQDYOYIPUUKUULVAUXEPOYNYJPUUKUULVCVDJPUURUULYK
      YLYMAUVCUUISQUUSUUJTUVJUUIDDKYPYQIUUIUUPUUJSUUQUUOUUICMXKUWSUUICMXLXMVHYR
      AUUMYSWFLQZOYSQYTUUAQUULOUUTUOUXFAUUMUUNUUBUGAUUCAUUFOUUMYTYSPUUGUUDUUEUU
      H $.
  $}

  ${
    $d f x A $.
    $( Closure of complement of Hilbert subset.  Part of Remark 3.12 of [Beran]
       p. 107.  (Contributed by NM, 8-Aug-2000.)  (Proof shortened by Mario
       Carneiro, 14-May-2014.)  (New usage is discouraged.) $)
    occl $p |- ( A C_ ~H -> ( _|_ ` A ) e. CH ) $=
      ( vf vx chil wss cfv wcel cv wf chli wbr wrex ccau wral vex syl ralrimiva
      wa hlimf wb cort csh cn wi cch ocsh csp co cc0 ax-hcompl breldm rexlimivw
      wceq ad2antlr ffvelrni simplll simpllr simplr simpr occllem ocel ad2antrr
      cdm mpbir2and wfun ffun funfvbrb mp2b sylib breq2 rspcev syl2anc ex isch3
      sylanbrc ) ADEZAUAFZUBGUCVQBHZIZVRCHZJKZCVQLZUDZBMNVQUEGAUFVPWCBMVPVRMGZR
      ZVSWBWEVSRZVRJFZVQGZVRWGJKZWBWFWHWGDGZWGVTUGUHUIUMZCANZWFVRJVCZGZWJWDWNVP
      VSWDWACDLWNCVRUJWAWNCDVRVTJBOCOUKULPUNZWMDVRJSUOPWFWKCAWFVTAGZRAVTVRVPWDV
      SWPUPVPWDVSWPUQWEVSWPURWFWPUSUTQVPWHWJWLRTWDVSCWGAVAVBVDWFWNWIWOWMDJIJVEW
      NWITSWMDJVFVRJVGVHVIWAWICWGVQVTWGVRJVJVKVLVMQCBVQVNVO $.
  $}

  $( Closure of complement of Hilbert subspace.  Part of Remark 3.12 of [Beran]
     p. 107.  (Contributed by NM, 13-Oct-1999.)  (New usage is discouraged.) $)
  shoccl $p |- ( A e. SH -> ( _|_ ` A ) e. CH ) $=
    ( csh wcel chil wss cort cfv cch shss occl syl ) ABCADEAFGHCAIAJK $.

  $( Closure of complement of Hilbert subspace.  Part of Remark 3.12 of [Beran]
     p. 107.  (Contributed by NM, 22-Jul-2001.)  (New usage is discouraged.) $)
  choccl $p |- ( A e. CH -> ( _|_ ` A ) e. CH ) $=
    ( cch wcel csh cort cfv chsh shoccl syl ) ABCADCAEFBCAGAHI $.

  ${
    choccl.1 $e |- A e. CH $.
    $( Closure of ` CH ` orthocomplement.  (Contributed by NM, 29-Jul-1999.)
       (New usage is discouraged.) $)
    choccli $p |- ( _|_ ` A ) e. CH $=
      ( cch wcel cort cfv choccl ax-mp ) ACDAEFCDBAGH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Subspace sum, span, lattice join, lattice supremum
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    $( Define subspace sum in ` SH ` .  See ~ shsval , ~ shsval2i , and
       ~ shsval3i for its value.  (Contributed by NM, 16-Oct-1999.)
       (New usage is discouraged.) $)
    df-shs $a |- +H = ( x e. SH , y e. SH |-> ( +h " ( x X. y ) ) ) $.

    $( Define the linear span of a subset of Hilbert space.  Definition of span
       in [Schechter] p. 276.  See ~ spanval for its value.  (Contributed by
       NM, 2-Jun-2004.)  (New usage is discouraged.) $)
    df-span $a |- span = ( x e. ~P ~H |-> |^| { y e. SH | x C_ y } ) $.

    $( Define Hilbert lattice join.  See ~ chjval for its value and ~ chjcl for
       its closure law.  Note that we define it over all Hilbert space subsets
       to allow proving more general theorems.  Even for general subsets the
       join belongs to ` CH ` ; see ~ sshjcl .  (Contributed by NM,
       1-Nov-2000.)  (New usage is discouraged.) $)
    df-chj $a |- vH = ( x e. ~P ~H , y e. ~P ~H |->
                        ( _|_ ` ( _|_ ` ( x u. y ) ) ) ) $.
  $}

  $( Define the supremum of a set of Hilbert lattice elements.  See ~ chsupval2
     for its value.  We actually define the supremum for an arbitrary
     collection of Hilbert space subsets, not just elements of the Hilbert
     lattice ` CH ` , to allow more general theorems.  Even for general subsets
     the supremum still a Hilbert lattice element; see ~ hsupcl .  (Contributed
     by NM, 9-Dec-2003.)  (New usage is discouraged.) $)
  df-chsup $a |- \/H = ( x e. ~P ~P ~H |-> ( _|_ ` ( _|_ ` U. x ) ) ) $.

  ${
    $d f x y z A $.  $d x y z B $.  $d x y z C $.  $d x y D $.
    $( Value of subspace sum of two Hilbert space subspaces.  Definition of
       subspace sum in [Kalmbach] p. 65.  (Contributed by NM, 16-Oct-1999.)
       (Revised by Mario Carneiro, 23-Dec-2013.)
       (New usage is discouraged.) $)
    shsval $p |- ( ( A e. SH /\ B e. SH ) -> ( A +H B ) =
                     ( +h " ( A X. B ) ) ) $=
      ( vx vy csh cva cv cxp cima cph wceq xpeq12 imaeq2d df-shs cablo wcel cvv
      wa hilablo imaexg ax-mp ovmpt2a ) CDABEEFCGZDGZHZIFABHZIZJUCAKUDBKRUEUFFU
      CAUDBLMCDNFOPUGQPSFUFOTUAUB $.

    $( The subspace sum is a subset of Hilbert space.  (Contributed by Mario
       Carneiro, 23-Dec-2013.)  (New usage is discouraged.) $)
    shsss $p |- ( ( A e. SH /\ B e. SH ) -> ( A +H B ) C_ ~H ) $=
      ( csh wcel wa cph co cva cxp cima shsval crn imassrn wf wss ax-hfvadd frn
      chil ax-mp sstri syl6eqss ) ACDBCDEABFGHABIZJZRABKUCHLZRHUBMRRIZRHNUDROPU
      ERHQSTUA $.

    $( Membership in the subspace sum of two Hilbert subspaces.  (Contributed
       by NM, 14-Dec-2004.)  (Revised by Mario Carneiro, 29-Jan-2014.)
       (New usage is discouraged.) $)
    shsel $p |- ( ( A e. SH /\ B e. SH ) -> ( C e. ( A +H B ) <->
                 E. x e. A E. y e. B C = ( x +h y ) ) ) $=
      ( csh wcel wa cph co cva cxp cima cv wceq wrex shsval chil wss shss wb wf
      eleq2d wfn ax-hfvadd ffn ax-mp xpss12 syl2an ovelimab sylancr bitrd ) CFG
      ZDFGZHZECDIJZGEKCDLZMZGZEANBNKJOBDPACPZUOUPURECDQUCUOKRRLZUDZUQVASZUSUTUA
      VARKUBVBUEVARKUFUGUMCRSDRSVCUNCTDTCRDRUHUIABVACDEKUJUKUL $.

    $( Membership in the subspace sum of two Hilbert subspaces, using vector
       subtraction.  (Contributed by NM, 20-Jan-2007.)
       (New usage is discouraged.) $)
    shsel3 $p |- ( ( A e. SH /\ B e. SH ) -> ( C e. ( A +H B ) <->
                 E. x e. A E. y e. B C = ( x -h y ) ) ) $=
      ( vz csh wcel wa co cv cva wceq wrex cmv csm id chil shel syl2an shsel c1
      cph cneg hvaddsubval an4s anassrs sylan9eqr neg1cn shmulcl mp3an2 adantll
      cc oveq2 eqeq2d rspcev sylan syldan ex rexlimdva hvsubval impbid rexbidva
      adantlr bitrd ) CGHZDGHZIZECDUCJHEAKZFKZLJZMZFDNZACNEVIBKZOJZMZBDNZACNAFC
      DEUAVHVMVQACVHVICHZIZVMVQVSVLVQFDVSVJDHZIZVLVQWAVLEVIUBUDZVJPJZOJZMZVQVLW
      AEVKWDVLQVHVRVTVKWDMZVFVRVGVTWFVFVRIZVIRHZVJRHWFVGVTIVICSZVJDSVIVJUETUFUG
      UHWAWCDHZWEVQVHVTWJVRVGVTWJVFVGWBUMHZVTWJUIWBVJDUJUKULVDVPWEBWCDVNWCMVOWD
      EVNWCVIOUNUOUPUQURUSUTVSVPVMBDVSVNDHZIZVPVMWMVPEVIWBVNPJZLJZMZVMVPWMEVOWO
      VPQVHVRWLVOWOMZVFVRVGWLWQWGWHVNRHWQVGWLIWIVNDSVIVNVATUFUGUHWMWNDHZWPVMVHW
      LWRVRVGWLWRVFVGWKWLWRUIWBVNDUJUKULVDVLWPFWNDVJWNMVKWOEVJWNVILUNUOUPUQURUS
      UTVBVCVE $.

    ${
      shscl.1 $e |- A e. SH $.
      shscl.2 $e |- B e. SH $.
      $( Membership in subspace sum.  (Contributed by NM, 4-May-2000.)
         (New usage is discouraged.) $)
      shseli $p |- ( C e. ( A +H B )
                 <-> E. x e. A E. y e. B C = ( x +h y ) ) $=
        ( csh wcel cph co cv cva wceq wrex wb shsel mp2an ) CHIDHIECDJKIEALBLMK
        NBDOACOPFGABCDEQR $.

      $d x y z w f g v u A $.  $d x y z w f g v u B $.
      $( Closure of subspace sum.  (Contributed by NM, 15-Oct-1999.)  (Revised
         by Mario Carneiro, 23-Dec-2013.)  (New usage is discouraged.) $)
      shscli $p |- ( A +H B ) e. SH $=
        ( vx vy vf vg vv vu co wcel chil c0v wa cv cva csm wceq wrex vz cph csh
        vw wss cc shsss mp2an sh0 ax-mp ax-hv0cl hvaddid2i eqcomi rspceov mp3an
        wral shseli mpbir pm3.2i shaddcl mp3an1 ad2ant2r ad2ant2l sheli anim12i
        wi oveq12 hvadd4 syl2an eqtr4d syl3anc ancoms exp43 rexlimivv com3l imp
        an4s syl2anb sylibr rgen2a shmulcl adantrr adantrl ad2antll ax-hvdistr1
        oveq2 adantl id syl3an 3expb adantrrr eqtrd exp42 impcom rgen2 mpbir2an
        sylan2b issh2 ) ABUBKZUCLWSMUEZNWSLZOEPZFPZQKZWSLZFWSUPEWSUPZXBXCRKZWSL
        ZFWSUPEUFUPZOWTXAAUCLZBUCLZWTCDABUGUHXANXDSFBTEATZNALZNBLZNNNQKZSXLXJXM
        CAUIUJXKXNDBUIUJXONNUKULUMEFABNNNQUNUOEFABNCDUQURUSXFXIXEEFWSXBWSLZXCWS
        LZOXDGPHPQKZSHBTGATZXEXPXBUAPZUDPZQKZSZUDBTUAATZXCIPZJPZQKZSZJBTIATZXSX
        QUAUDABXBCDUQIJABXCCDUQZYDYIXSYCYIXSVFUAUDABYIXTALZYABLZOZYCXSYHYMYCXSV
        FVFIJABYEALZYFBLZOZYHYMYCXSYMYCOZYPYHOZXSYQYROZXTYEQKZALZYAYFQKZBLZXDYT
        UUBQKZSXSYMYPUUAYCYHYKYNUUAYLYOXJYKYNUUACXTYEAUTVAVBVBYMYPUUCYCYHYLYOUU
        CYKYNXKYLYOUUCDYAYFBUTVAVCVBYSXDYBYGQKZUUDYCYHXDUUESYMYPXBYBXCYGQVGVCYM
        YPUUDUUESZYCYHYKYNYLYOUUFYKYNOXTMLZYEMLZOYAMLZYFMLZOUUFYLYOOYKUUGYNUUHX
        TACVDYEACVDZVEYLUUIYOUUJYABDVDYFBDVDZVEXTYEYAYFVHVIVQVBVJGHABYTUUBXDQUN
        VKVLVMVNVOVNVPVRGHABXDCDUQVSVTXHEFUFWSXBUFLZXQOXGXRSHBTGATZXHXQUUMYIUUN
        YJYIUUMUUNYHUUMUUNVFZIJABYNYOYHUUOVFYNYOYHUUMUUNUUMYNYOYHOZOZUUNUUMUUQO
        ZXBYERKZALZXBYFRKZBLZXGUUSUVAQKZSUUNUUMYNUUTUUPXJUUMYNUUTCXBYEAWAVAWBUU
        MUUPUVBYNUUMYOUVBYHXKUUMYOUVBDXBYFBWAVAWBWCUURXGXBYGRKZUVCUUPXGUVDSZUUM
        YNYHUVEYOXCYGXBRWFWGWDUUMYNYOUVDUVCSZYHUUMYNYOUVFUUMUUMYNUUHYOUUJUVFUUM
        WHUUKUULXBYEYFWEWIWJWKWLGHABUUSUVAXGQUNVKVLWMVPVNWNWQGHABXGCDUQVSWOUSEF
        WSWRWP $.
    $}

    $( Closure of subspace sum.  (Contributed by NM, 15-Dec-2004.)
       (New usage is discouraged.) $)
    shscl $p |- ( ( A e. SH /\ B e. SH ) -> ( A +H B ) e. SH ) $=
      ( csh wcel cph co chil cif oveq1 eleq1d oveq2 helsh elimel shscli dedth2h
      wceq ) ACDZBCDZABEFZCDQAGHZBEFZCDTRBGHZEFZCDABGGATPSUACATBEIJBUBPUAUCCBUB
      TEKJTUBAGCLMBGCLMNO $.

    $( Commutative law for subspace sum.  (Contributed by NM, 15-Dec-2004.)
       (New usage is discouraged.) $)
    shscom $p |- ( ( A e. SH /\ B e. SH ) -> ( A +H B ) = ( B +H A ) ) $=
      ( vx vy vz csh wcel wa cph co cv cva wceq wrex chil shel anim12i ax-hvcom
      an4s shsel syl eqeq2d 2rexbidva rexcom syl6bb wb ancoms 3bitr4d eqrdv ) A
      FGZBFGZHZCABIJZBAIJZULCKZDKZEKZLJZMZEBNDANZUOUQUPLJZMZDANEBNZUOUMGUOUNGZU
      LUTVBEBNDANVCULUSVBDEABULUPAGZUQBGZHHZURVAUOVGUPOGZUQOGZHZURVAMUJVEUKVFVJ
      UJVEHVHUKVFHVIUPAPUQBPQSUPUQRUAUBUCVBDEABUDUEDEABUOTUKUJVDVCUFEDBAUOTUGUH
      UI $.

    $( Vector sum belongs to subspace sum.  (Contributed by NM, 15-Dec-2004.)
       (New usage is discouraged.) $)
    shsva $p |- ( ( A e. SH /\ B e. SH ) -> ( ( C e. A /\ D e. B ) ->
                 ( C +h D ) e. ( A +H B ) ) ) $=
      ( vx vy wcel wa cva co cph cv wceq wrex eqid rspceov mp3an3 shsel syl5ibr
      csh ) CAGZDBGZHCDIJZABKJGATGBTGHUCELFLIJMFBNEANZUAUBUCUCMUDUCOEFABCDUCIPQ
      EFABUCRS $.

    $( A subspace sum contains a member of one of its subspaces.  (Contributed
       by NM, 15-Dec-2004.)  (New usage is discouraged.) $)
    shsel1 $p |- ( ( A e. SH /\ B e. SH ) ->
                  ( C e. A -> C e. ( A +H B ) ) ) $=
      ( csh wcel wa cph co c0v cva wceq chil shel ax-hvaddid syl adantlr adantl
      sh0 shsva mpan2d imp eqeltrrd ex ) ADEZBDEZFZCAEZCABGHZEUFUGFCIJHZCUHUDUG
      UICKZUEUDUGFCLEUJCAMCNOPUFUGUIUHEZUFUGIBEZUKUEULUDBRQABCISTUAUBUC $.

    $( A subspace sum contains a member of one of its subspaces.  (Contributed
       by NM, 15-Dec-2004.)  (New usage is discouraged.) $)
    shsel2 $p |- ( ( A e. SH /\ B e. SH ) ->
                 ( C e. B -> C e. ( A +H B ) ) ) $=
      ( csh wcel wa cph co wi shsel1 ancoms shscom eleq2d sylibrd ) ADEZBDEZFZC
      BEZCBAGHZEZCABGHZEPORTIBACJKQUASCABLMN $.

    $( Vector subtraction belongs to subspace sum.  (Contributed by NM,
       15-Dec-2004.)  (New usage is discouraged.) $)
    shsvs $p |- ( ( A e. SH /\ B e. SH ) ->
                ( ( C e. A /\ D e. B ) -> ( C -h D ) e. ( A +H B ) ) ) $=
      ( csh wcel wa cph w3a cmv shscl a1d shsel1 adantrd shsel2 adantld shsubcl
      co 3jcad syl6 ) AEFBEFGZCAFZDBFZGZABHRZEFZCUEFZDUEFZICDJRUEFUAUDUFUGUHUAU
      FUDABKLUAUBUGUCABCMNUAUCUHUBABDOPSCDUEQT $.

    $( Subspace sum is an upper bound of its arguments.  (Contributed by NM,
       14-Dec-2004.)  (New usage is discouraged.) $)
    shsub1 $p |- ( ( A e. SH /\ B e. SH ) -> A C_ ( A +H B ) ) $=
      ( vx csh wcel wa cph co cv shsel1 ssrdv ) ADEBDEFCAABGHABCIJK $.

    $( Subspace sum is an upper bound of its arguments.  (Contributed by NM,
       17-Dec-2004.)  (New usage is discouraged.) $)
    shsub2 $p |- ( ( A e. SH /\ B e. SH ) -> A C_ ( B +H A ) ) $=
      ( csh wcel wa cph co shsub1 shscom sseqtrd ) ACDBCDEAABFGBAFGABHABIJ $.

    $( The orthocomplement of the zero subspace is the unit subspace.
       (Contributed by NM, 15-Oct-1999.)  (New usage is discouraged.) $)
    choc0 $p |- ( _|_ ` 0H ) = ~H $=
      ( vx vy c0h cort cfv chil cv wcel csp co cc0 wceq wral wa csh wb wi bitri
      c0v wal h0elsh shocel ax-mp hi02 df-ral elch0 imbi1i albii ax-hv0cl elexi
      oveq2 eqeq1d ceqsalv sylibr abai mpbiran2 eqriv ) ACDEZFAGZURHZUSFHZUSBGZ
      IJZKLZBCMZNZVACOHUTVFPUABUSCUBUCVFVAVAVEQVAUSSIJZKLZVEUSUDVEVBCHZVDQZBTZV
      HVDBCUEVKVBSLZVDQZBTVHVJVMBVIVLVDVBUFUGUHVDVHBSSFUIUJVLVCVGKVBSUSIUKULUMR
      RUNVAVEUOUPRUQ $.

    $( The orthocomplement of the unit subspace is the zero subspace.  Does not
       require Axiom of Choice.  (Contributed by NM, 24-Oct-1999.)
       (New usage is discouraged.) $)
    choc1 $p |- ( _|_ ` ~H ) = 0H $=
      ( vx vy chil cort cfv c0h cv wcel c0v wceq csp co cc0 wral wa helsh ax-mp
      csh wb wss shocel simprbi shocss sseli hial0 syl mpbid elch0 sylibr ssriv
      h0elsh shococss choc0 fveq2i sseqtri eqssi ) CDEZFAUQFAGZUQHZURIJZURFHUSU
      RBGKLMJBCNZUTUSURCHZVACRHZUSVBVAOSPBURCUAQUBUSVBVAUTSUQCURVCUQCTPCUCQUDBU
      RUEUFUGURUHUIUJFFDEZDEZUQFRHFVETUKFULQVDCDUMUNUOUP $.

    ${
      $d x y $.
      $( Orthogonal complement of the empty set.  (Contributed by NM,
         31-Oct-2000.)  (New usage is discouraged.) $)
      chocnul $p |- ( _|_ ` (/) ) = ~H $=
        ( vx vy c0 cort cfv chil cv wcel csp co cc0 wceq wral ral0 wss 0ss ocel
        wa wb ax-mp mpbiran2 eqriv ) ACDEZFAGZUCHZUDFHZUDBGIJKLZBCMZUGBNCFOUEUF
        UHRSFPBUDCQTUAUB $.
    $}

    ${
      shintcl.1 $e |- ( A C_ SH /\ A =/= (/) ) $.
      $( Closure of intersection of a nonempty subset of ` SH ` .  (Contributed
         by NM, 14-Oct-1999.)  (New usage is discouraged.) $)
      shintcli $p |- |^| A e. SH $=
        ( vx vy vz csh wcel chil wss c0v wa cv cva co wral csm syl elint2 com12
        cc cint c0 wne simpri wex n0 intss1 simpli sseli shss sstrd sylbi ax-mp
        exlimiv ax-hv0cl elexi sh0 mprgbir pm3.2i elinti shaddcl syl3an1 3expib
        syl2and ralrimiv sylibr rgen2a shmulcl sylan2d rgen2 issh2 mpbir2an
        ovex ) AUAZFGVNHIZJVNGZKCLZDLZMNZVNGZDVNOCVNOZVQVRPNZVNGZDVNOCTOZKVOVPA
        UBUCZVOAFIZWEBUDWEELZAGZEUEVOEAUFWHVOEWHVNWGHWGAUGWHWGFGZWGHIAFWGWFWEBU
        HUIZWGUJQUKUNULUMVPJWGGZEAEJAJHUOUPRWHWIWKWJWGUQQURUSWAWDVTCDVNVQVNGZVR
        VNGZKZVSWGGZEAOVTWNWOEAWHWNWOWHWLVQWGGZWMVRWGGZWOWLWHWPVQAWGUTSWMWHWQVR
        AWGUTSZWHWPWQWOWHWIWPWQWOWJVQVRWGVAVBVCVDSVEEVSAVQVRMVMRVFVGWCCDTVNVQTG
        ZWMKZWBWGGZEAOWCWTXAEAWHWTXAWHWMWQWSXAWRWHWSWQXAWHWIWSWQXAWJVQVRWGVHVBV
        CVISVEEWBAVQVRPVMRVFVJUSCDVNVKVL $.
    $}

    $( The intersection of a nonempty set of subspaces is a subspace.
       (Contributed by NM, 2-Jun-2004.)  (New usage is discouraged.) $)
    shintcl $p |- ( ( A C_ SH /\ A =/= (/) ) -> |^| A e. SH ) $=
      ( csh wss c0 wne cint wcel cif wceq inteq eleq1d sseq1 neeq1 anbi12d ssid
      wa c0h h0elsh ne0ii pm3.2i elimhyp shintcli dedth ) ABCZADEZPZAFZBGUFABHZ
      FZBGABAUHIZUGUIBAUHJKUHUFUHBCZUHDEZPBBCZBDEZPABUJUDUKUEULAUHBLAUHDMNBUHIU
      MUKUNULBUHBLBUHDMNUMUNBOQBRSTUAUBUC $.

    ${
      chintcl.1 $e |- ( A C_ CH /\ A =/= (/) ) $.
      $( The intersection of a nonempty set of closed subspaces is a closed
         subspace.  (Contributed by NM, 14-Oct-1999.)
         (New usage is discouraged.) $)
      chintcli $p |- |^| A e. CH $=
        ( vf vx vy cint cch wcel csh cn cv wf chli wbr wa wi wal wss c0 wral
        simpli chsssh sstri simpri pm3.2i shintcli sseli chlimi 3exp com3r syl5
        wne vex imp ralimdva fint elint2 3imtr4g impcom gen2 isch2 mpbir2an ) A
        FZGHVCIHJVCCKZLZVDDKZMNZOVFVCHZPZDQCQAAIRASULZAGIAGRZVJBUAZUBUCVKVJBUDZ
        UEUFVICDVGVEVHVGJEKZVDLZEATVFVNHZEATVEVHVGVOVPEAVGVNAHZVOVPPZVQVNGHZVGV
        RAGVNVLUGVSVOVGVPVSVOVGVPVFVDVNDUMZUHUIUJUKUNUOEJAVDVMUPEVFAVTUQURUSUTD
        CVCVAVB $.
    $}

    $( The intersection (infimum) of a nonempty subset of ` CH ` belongs to
       ` CH ` .  Part of Theorem 3.13 of [Beran] p. 108.  Also part of
       Definition 3.4-1 in [MegPav2000] p. 2345 (PDF p. 8).  (Contributed by
       NM, 14-Oct-1999.)  (New usage is discouraged.) $)
    chintcl $p |- ( ( A C_ CH /\ A =/= (/) ) -> |^| A e. CH ) $=
      ( cch wss c0 wne cint wcel cif wceq inteq eleq1d sseq1 neeq1 anbi12d ssid
      wa c0h h0elch ne0ii pm3.2i elimhyp chintcli dedth ) ABCZADEZPZAFZBGUFABHZ
      FZBGABAUHIZUGUIBAUHJKUHUFUHBCZUHDEZPBBCZBDEZPABUJUDUKUEULAUHBLAUHDMNBUHIU
      MUKUNULBUHBLBUHDMNUMUNBOQBRSTUAUBUC $.

    $( Value of the linear span of a subset of Hilbert space.  The span is the
       intersection of all subspaces constraining the subset.  Definition of
       span in [Schechter] p. 276.  (Contributed by NM, 2-Jun-2004.)  (Revised
       by Mario Carneiro, 23-Dec-2013.)  (New usage is discouraged.) $)
    spanval $p |- ( A C_ ~H -> ( span ` A ) = |^| { x e. SH | A C_ x } ) $=
      ( vy chil wss cpw wcel csh crab cint cvv cspn wceq ax-hilex elpw2 biimpri
      cv cfv wrex helsh sseq2 rspcev mpan intexrab sylib rabbidv inteqd df-span
      sseq1 fvmptg syl2anc ) BDEZBDFZGZBAQZEZAHIZJZKGZBLRURMUNULBDNOPULUPAHSZUS
      DHGULUTTUPULADHUODBUAUBUCUPAHUDUECBCQZUOEZAHIZJURUMKLVABMZVCUQVDVBUPAHVAB
      UOUIUFUGCAUHUJUK $.

    $( Value of supremum of set of subsets of Hilbert space.  For an alternate
       version of the value, see ~ hsupval2 .  (Contributed by NM, 9-Dec-2003.)
       (Revised by Mario Carneiro, 23-Dec-2013.)
       (New usage is discouraged.) $)
    hsupval $p |- ( A C_ ~P ~H -> ( \/H ` A ) = ( _|_ ` ( _|_ ` U. A ) ) ) $=
      ( vx chil cpw wss wcel chsup cfv cuni cort wceq ax-hilex pwex elpw2 unieq
      cv fveq2d df-chsup fvex fvmpt sylbir ) ACDZEAUBDZFAGHAIZJHZJHZKAUBCLMNBAB
      PZIZJHZJHUFUCGUGAKZUIUEJUJUHUDJUGAOQQBRUEJSTUA $.

    $( The value of the supremum of a set of closed subspaces of Hilbert space.
       For an alternate version of the value, see ~ chsupval2 .  (Contributed
       by NM, 13-Aug-2002.)  (New usage is discouraged.) $)
    chsupval $p |- ( A C_ CH -> ( \/H ` A ) = ( _|_ ` ( _|_ ` U. A ) ) ) $=
      ( cch wss chil cpw chsup cfv cuni cort wceq chsspwh sstr2 mpi hsupval syl
      ) ABCZADEZCZAFGAHIGIGJPBQCRKABQLMANO $.

    $( The span of a subset of Hilbert space is a subspace.  (Contributed by
       NM, 2-Jun-2004.)  (New usage is discouraged.) $)
    spancl $p |- ( A C_ ~H -> ( span ` A ) e. SH ) $=
      ( vx chil wss cspn cfv cv csh crab cint spanval c0 wcel ssrab2 wrex helsh
      wne sseq2 rspcev mpan rabn0 sylibr shintcl sylancr eqeltrd ) ACDZAEFABGZD
      ZBHIZJZHBAKUFUIHDUILQZUJHMUHBHNUFUHBHOZUKCHMUFULPUHUFBCHUGCARSTUHBHUAUBUI
      UCUDUE $.

    $( A member of a span is a vector.  (Contributed by NM, 17-Dec-2004.)
       (New usage is discouraged.) $)
    elspancl $p |- ( ( A C_ ~H /\ B e. ( span ` A ) ) -> B e. ~H ) $=
      ( chil wss cspn cfv csh wcel spancl shel sylan ) ACDAEFZGHBLHBCHAIBLJK $.

    $( Closure of the subspace supremum of set of subsets of Hilbert space.
       (Contributed by NM, 26-Nov-2004.)  (New usage is discouraged.) $)
    shsupcl $p |- ( A C_ ~P ~H -> ( span ` U. A ) e. SH ) $=
      ( chil cpw wss cuni cspn cfv csh wcel uniss unipw syl6sseq spancl syl ) A
      BCZDZAEZBDQFGHIPQOEBAOJBKLQMN $.

    $( Closure of supremum of set of subsets of Hilbert space.  Note that the
       supremum belongs to ` CH ` even if the subsets do not.  (Contributed by
       NM, 10-Nov-1999.)  (Revised by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    hsupcl $p |- ( A C_ ~P ~H -> ( \/H ` A ) e. CH ) $=
      ( chil cpw wss chsup cfv cuni cort cch hsupval wcel sspwuni ocss occl syl
      sylbi eqeltrd ) ABCDZAEFAGZHFZHFZIAJRSBDZUAIKZABLUBTBDUCSMTNOPQ $.

    $( Closure of supremum of subset of ` CH ` .  Definition of supremum in
       Proposition 1 of [Kalmbach] p. 65.  Shows that ` CH ` is a complete
       lattice.  Also part of Definition 3.4-1 in [MegPav2000] p. 2345 (PDF
       p. 8).  (Contributed by NM, 10-Nov-1999.)
       (New usage is discouraged.) $)
    chsupcl $p |- ( A C_ CH -> ( \/H ` A ) e. CH ) $=
      ( cch wss chil cpw chsup cfv wcel chsspwh sstr2 mpi hsupcl syl ) ABCZADEZ
      CZAFGBHNBOCPIABOJKALM $.

    $( Subset relation for supremum of Hilbert space subsets.  (Contributed by
       NM, 24-Nov-2004.)  (Revised by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    hsupss $p |- ( ( A C_ ~P ~H /\ B C_ ~P ~H ) ->
                  ( A C_ B -> ( \/H ` A ) C_ ( \/H ` B ) ) ) $=
      ( chil cpw wss cuni cort cfv chsup uniss sspwuni occon2 syl2anb syl5 wceq
      wa wi hsupval adantr adantl sseq12d sylibrd ) ACDZEZBUCEZPZABEZAFZGHGHZBF
      ZGHGHZEZAIHZBIHZEUGUHUJEZUFULABJUDUHCEUJCEUOULQUEACKBCKUHUJLMNUFUMUIUNUKU
      DUMUIOUEARSUEUNUKOUDBRTUAUB $.

    $( Subset relation for supremum of subset of ` CH ` .  (Contributed by NM,
       13-Aug-2002.)  (New usage is discouraged.) $)
    chsupss $p |- ( ( A C_ CH /\ B C_ CH ) ->
                  ( A C_ B -> ( \/H ` A ) C_ ( \/H ` B ) ) ) $=
      ( cch wss chil cpw chsup cfv wi chsspwh sstr2 mpi hsupss syl2an ) ACDZAEF
      ZDZBPDZABDAGHBGHDIBCDZOCPDZQJACPKLSTRJBCPKLABMN $.

    $( The union of a set of Hilbert space subsets is smaller than its
       supremum.  (Contributed by NM, 24-Nov-2004.)  (Revised by Mario
       Carneiro, 15-May-2014.)  (New usage is discouraged.) $)
    hsupunss $p |- ( A C_ ~P ~H -> U. A C_ ( \/H ` A ) ) $=
      ( chil cpw wss cuni cort cfv chsup sspwuni ococss sylbi hsupval sseqtr4d
      ) ABCDZAEZOFGFGZAHGNOBDOPDABIOJKALM $.

    $( The union of a set of closed subspaces is smaller than its supremum.
       (Contributed by NM, 14-Aug-2002.)  (New usage is discouraged.) $)
    chsupunss $p |- ( A C_ CH -> U. A C_ ( \/H ` A ) ) $=
      ( cch wss chil cpw cuni chsup cfv chsspwh sstr mpan2 hsupunss syl ) ABCZA
      DEZCZAFAGHCNBOCPIABOJKALM $.

    $( A subset of Hilbert space is included in its span.  (Contributed by NM,
       2-Jun-2004.)  (New usage is discouraged.) $)
    spanss2 $p |- ( A C_ ~H -> A C_ ( span ` A ) ) $=
      ( vx chil wss cv csh crab cint cspn cfv ssintub spanval syl5sseqr ) ACDAB
      EDBFGHAAIJBAFKBALM $.

    $( The union of a set of subspaces is smaller than its supremum.
       (Contributed by NM, 26-Nov-2004.)  (New usage is discouraged.) $)
    shsupunss $p |- ( A C_ SH -> U. A C_ ( span ` U. A ) ) $=
      ( csh wss cuni chil cspn cfv cpw shsspwh sstr mpan2 unissd unipw syl6sseq
      spanss2 syl ) ABCZADZECRRFGCQREHZDEQASQBSCASCIABSJKLEMNROP $.

    $( A subspace of Hilbert space is its own span.  (Contributed by NM,
       2-Jun-2004.)  (New usage is discouraged.) $)
    spanid $p |- ( A e. SH -> ( span ` A ) = A ) $=
      ( vx csh wcel cspn cfv cv wss crab cint chil wceq shss spanval syl intmin
      eqtrd ) ACDZAEFZABGHBCIJZARAKHSTLAMBANOBACPQ $.

    $( Ordering relationship for the spans of subsets of Hilbert space.
       (Contributed by NM, 2-Jun-2004.)  (New usage is discouraged.) $)
    spanss $p |- ( ( B C_ ~H /\ A C_ B ) -> ( span ` A ) C_ ( span ` B ) ) $=
      ( vx chil wss wa cv csh crab cint cspn cfv wi wral sstr2 ralrimivw ss2rab
      syl wceq spanval sylibr intss adantl sstr ancoms adantr 3sstr4d ) BDEZABE
      ZFZACGZEZCHIZJZBUKEZCHIZJZAKLZBKLZUIUNUQEZUHUIUPUMEZUTUIUOULMZCHNVAUIVBCH
      ABUKOPUOULCHQUAUPUMUBRUCUJADEZURUNSUIUHVCABDUDUECATRUHUSUQSUICBTUFUG $.

    $( The span of a subset of Hilbert space is less than or equal to its
       closure (double orthogonal complement).  (Contributed by NM,
       3-Jun-2004.)  (New usage is discouraged.) $)
    spanssoc $p |- ( A C_ ~H -> ( span ` A ) C_ ( _|_ ` ( _|_ ` A ) ) ) $=
      ( chil wss cspn cfv cort ocss ococss spanss syl2anc wcel wceq ocsh spanid
      syl csh 3syl sseqtrd ) ABCZADEZAFEZFEZDEZUBSUBBCZAUBCTUCCSUABCZUDAGZUAGOA
      HAUBIJSUEUBPKUCUBLUFUAMUBNQR $.

    $( Value of join for subsets of Hilbert space.  (Contributed by NM,
       1-Nov-2000.)  (Revised by Mario Carneiro, 23-Dec-2013.)
       (New usage is discouraged.) $)
    sshjval $p |- ( ( A C_ ~H /\ B C_ ~H ) -> ( A vH B ) =
        ( _|_ ` ( _|_ ` ( A u. B ) ) ) ) $=
      ( vx vy chil wss cpw wcel chj co cun cort cfv ax-hilex elpw2 cv wa uneq12
      wceq fveq2d df-chj fvex ovmpt2a syl2anbr ) AEFAEGZHBUEHABIJABKZLMZLMZSBEF
      AENOBENOCDABUEUECPZDPZKZLMZLMUHIUIASUJBSQZULUGLUMUKUFLUIAUJBRTTCDUAUGLUBU
      CUD $.

    $( Value of join in ` SH ` .  (Contributed by NM, 9-Aug-2000.)
       (New usage is discouraged.) $)
    shjval $p |- ( ( A e. SH /\ B e. SH ) -> ( A vH B ) =
        ( _|_ ` ( _|_ ` ( A u. B ) ) ) ) $=
      ( csh wcel chil wss chj co cun cort cfv wceq shss sshjval syl2an ) ACDAEF
      BEFABGHABIJKJKLBCDAMBMABNO $.

    $( Value of join in ` CH ` .  (Contributed by NM, 9-Aug-2000.)
       (New usage is discouraged.) $)
    chjval $p |- ( ( A e. CH /\ B e. CH ) -> ( A vH B ) =
        ( _|_ ` ( _|_ ` ( A u. B ) ) ) ) $=
      ( cch wcel csh chj co cun cort cfv wceq chsh shjval syl2an ) ACDAEDBEDABF
      GABHIJIJKBCDALBLABMN $.

    ${
      chjval.1 $e |- A e. CH $.
      chjval.2 $e |- B e. CH $.
      $( Value of join in ` CH ` .  (Contributed by NM, 9-Aug-2000.)
         (New usage is discouraged.) $)
      chjvali $p |- ( A vH B ) = ( _|_ ` ( _|_ ` ( A u. B ) ) ) $=
        ( cch wcel chj co cun cort cfv wceq chjval mp2an ) AEFBEFABGHABIJKJKLCD
        ABMN $.
    $}

    $( Value of join for subsets of Hilbert space in terms of supremum: the
       join is the supremum of its two arguments.  Based on the definition of
       join in [Beran] p. 3.  For later convenience we prove a general version
       that works for any subset of Hilbert space, not just the elements of the
       lattice ` CH ` .  (Contributed by NM, 2-Mar-2004.)  (Revised by Mario
       Carneiro, 23-Dec-2013.)  (New usage is discouraged.) $)
    sshjval3 $p |- ( ( A C_ ~H /\ B C_ ~H ) -> ( A vH B ) =
                          ( \/H ` { A , B } ) ) $=
      ( chil wss wa cpr cuni cort cfv cun chsup chj co wcel wceq ax-hilex elpw2
      cpw syl2anbr fveq2d uniprg prssi hsupval syl sshjval 3eqtr4rd ) ACDZBCDZE
      ZABFZGZHIZHIZABJZHIZHIUJKIZABLMUIULUOHUIUKUNHUGACRZNZBUQNZUKUNOUHACPQZBCP
      QZABUQUQUASTTUIUJUQDZUPUMOUGURUSVBUHUTVAABUQUBSUJUCUDABUEUF $.

    $( Closure of join for subsets of Hilbert space.  (Contributed by NM,
       1-Nov-2000.)  (New usage is discouraged.) $)
    sshjcl $p |- ( ( A C_ ~H /\ B C_ ~H ) -> ( A vH B ) e. CH ) $=
      ( chil wss wa chj co cun cort cfv cch sshjval wcel unss ocss occl eqeltrd
      syl sylbi ) ACDBCDEZABFGABHZIJZIJZKABLTUACDZUCKMZABCNUDUBCDUEUAOUBPRSQ $.

    $( Closure of join in ` SH ` .  (Contributed by NM, 2-Nov-1999.)
       (New usage is discouraged.) $)
    shjcl $p |- ( ( A e. SH /\ B e. SH ) -> ( A vH B ) e. CH ) $=
      ( csh wcel chil wss chj co cch shss sshjcl syl2an ) ACDAEFBEFABGHIDBCDAJB
      JABKL $.

    $( Closure of join in ` CH ` .  (Contributed by NM, 2-Nov-1999.)
       (New usage is discouraged.) $)
    chjcl $p |- ( ( A e. CH /\ B e. CH ) -> ( A vH B ) e. CH ) $=
      ( cch wcel csh chj co chsh shjcl syl2an ) ACDAEDBEDABFGCDBCDAHBHABIJ $.

    $( Commutative law for Hilbert lattice join of subspaces.  (Contributed by
       NM, 22-Jun-2004.)  (New usage is discouraged.) $)
    shjcom $p |- ( ( A e. SH /\ B e. SH ) -> ( A vH B ) = ( B vH A ) ) $=
      ( csh wcel wa chj co cun cort cfv shjval wceq ancoms fveq2i syl6eq eqtr4d
      uncom ) ACDZBCDZEZABFGABHZIJZIJZBAFGZABKTUDBAHZIJZIJZUCSRUDUGLBAKMUFUBIUE
      UAIBAQNNOP $.

    $( Subset implies subset of subspace sum.  (Contributed by Mario Carneiro,
       15-May-2014.)  (New usage is discouraged.) $)
    shless $p |- ( ( ( A e. SH /\ B e. SH /\ C e. SH ) /\ A C_ B ) ->
                   ( A +H C ) C_ ( B +H C ) ) $=
      ( vx vy vz csh wcel w3a wss wa cph co cv cva wceq wrex wb shsel syl2anc
      wi ssrexv adantl simpl1 simpl3 simpl2 3imtr4d ssrdv ) AGHZBGHZCGHZIZABJZK
      ZDACLMZBCLMZUNDNZENFNOMPFCQZEAQZUREBQZUQUOHZUQUPHZUMUSUTUAULUREABUBUCUNUI
      UKVAUSRUIUJUKUMUDUIUJUKUMUEZEFACUQSTUNUJUKVBUTRUIUJUKUMUFVCEFBCUQSTUGUH
      $.

    $( Add disjunct to both sides of Hilbert subspace ordering.  (Contributed
       by NM, 22-Jun-2004.)  (Revised by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    shlej1 $p |- ( ( ( A e. SH /\ B e. SH /\ C e. SH ) /\
                 A C_ B ) -> ( A vH C ) C_ ( B vH C ) ) $=
      ( csh wcel w3a wss wa cun cort cfv chj chil shss syl unssd syl2anc shjval
      co wceq simpr unss1 wi simpl1 simpl3 simpl2 occon2 syl5 mpd 3sstr4d ) ADE
      ZBDEZCDEZFZABGZHZACIZJKJKZBCIZJKJKZACLSZBCLSZUPUOURUTGZUNUOUAUOUQUSGZUPVC
      ABCUBUPUQMGUSMGVDVCUCUPACMUPUKAMGUKULUMUOUDZANOUPUMCMGUKULUMUOUEZCNOZPUPB
      CMUPULBMGUKULUMUOUFZBNOVGPUQUSUGQUHUIUPUKUMVAURTVEVFACRQUPULUMVBUTTVHVFBC
      RQUJ $.

    $( Add disjunct to both sides of Hilbert subspace ordering.  (Contributed
       by NM, 22-Jun-2004.)  (New usage is discouraged.) $)
    shlej2 $p |- ( ( ( A e. SH /\ B e. SH /\ C e. SH ) /\
                 A C_ B ) -> ( C vH A ) C_ ( C vH B ) ) $=
      ( csh wcel w3a wss wa chj co shlej1 shjcom 3adant2 adantr 3adant1 3sstr3d
      wceq ) ADEZBDEZCDEZFZABGZHACIJZBCIJZCAIJZCBIJZABCKUAUCUEQZUBRTUGSACLMNUAU
      DUFQZUBSTUHRBCLONP $.

    shincl.1 $e |- A e. SH $.
    shincl.2 $e |- B e. SH $.
    $( Closure of intersection of two subspaces.  (Contributed by NM,
       19-Oct-1999.)  (New usage is discouraged.) $)
    shincli $p |- ( A i^i B ) e. SH $=
      ( cpr cint cin csh elexi intpr wss c0 wne wcel wa prss mpbi prnz shintcli
      pm3.2i eqeltrri ) ABEZFABGHABAHCIZBHDIZJUBUBHKZUBLMAHNZBHNZOUEUFUGCDTABHU
      CUDPQABUCRTSUA $.

    $( Commutative law for subspace sum.  (Contributed by NM, 17-Oct-1999.)
       (New usage is discouraged.) $)
    shscomi $p |- ( A +H B ) = ( B +H A ) $=
      ( csh wcel cph co wceq shscom mp2an ) AEFBEFABGHBAGHICDABJK $.

    $( Vector sum belongs to subspace sum.  (Contributed by NM, 17-Oct-1999.)
       (New usage is discouraged.) $)
    shsvai $p |- ( ( C e. A /\ D e. B ) -> ( C +h D ) e. ( A +H B ) ) $=
      ( csh wcel wa cva co cph wi shsva mp2an ) AGHBGHCAHDBHICDJKABLKHMEFABCDNO
      $.

    $( A subspace sum contains a member of one of its subspaces.  (Contributed
       by NM, 19-Oct-1999.)  (New usage is discouraged.) $)
    shsel1i $p |- ( C e. A -> C e. ( A +H B ) ) $=
      ( csh wcel cph co wi shsel1 mp2an ) AFGBFGCAGCABHIGJDEABCKL $.

    $( A subspace sum contains a member of one of its subspaces.  (Contributed
       by NM, 19-Oct-1999.)  (New usage is discouraged.) $)
    shsel2i $p |- ( C e. B -> C e. ( A +H B ) ) $=
      ( csh wcel cph co wi shsel2 mp2an ) AFGBFGCBGCABHIGJDEABCKL $.

    $( Vector subtraction belongs to subspace sum.  (Contributed by NM,
       19-Oct-1999.)  (New usage is discouraged.) $)
    shsvsi $p |- ( ( C e. A /\ D e. B ) -> ( C -h D ) e. ( A +H B ) ) $=
      ( csh wcel wa cmv co cph wi shsvs mp2an ) AGHBGHCAHDBHICDJKABLKHMEFABCDNO
      $.

    $( Union is smaller than subspace sum.  (Contributed by NM, 18-Oct-1999.)
       (New usage is discouraged.) $)
    shunssi $p |- ( A u. B ) C_ ( A +H B ) $=
      ( vx vy vz co cv wcel cva wceq wrex c0v sheli eqcomd syl csh sh0 ax-mp wo
      cun chil ax-hvaddid rspceov mp3an2 mpdan hvaddid2 mp3an1 jaoi elun shseli
      cph 3imtr4i ssriv ) EABUBZABUMHZEIZAJZURBJZUAURFIGIKHLGBMFAMZURUPJURUQJUS
      VAUTUSURURNKHZLZVAUSURUCJZVCURACOVDVBURURUDPQUSNBJZVCVABRJVEDBSTFGABURNUR
      KUEUFUGUTURNURKHZLZVAUTVDVGURBDOVDVFURURUHPQNAJZUTVGVAARJVHCASTFGABNURURK
      UEUIUGUJURABUKFGABURCDULUNUO $.

    $( Union is smaller than Hilbert lattice join.  (Contributed by NM,
       11-Jun-2004.)  (Revised by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    shunssji $p |- ( A u. B ) C_ ( A vH B ) $=
      ( cun cort cfv chj co chil wss shssii unssi ococss ax-mp wcel wceq shjval
      csh mp2an sseqtr4i ) ABEZUBFGFGZABHIZUBJKUBUCKABJACLBDLMUBNOASPBSPUDUCQCD
      ABRTUA $.

    $( Subspace sum is smaller than Hilbert lattice join.  Remark in [Kalmbach]
       p. 65.  (Contributed by NM, 19-Oct-1999.)  (Revised by Mario Carneiro,
       15-May-2014.)  (New usage is discouraged.) $)
    shsleji $p |- ( A +H B ) C_ ( A vH B ) $=
      ( vx vy vz cph co chj cv wcel cva wceq wrex shseli wa sstri sseli csh cun
      wi ssun1 shunssji ssun2 cch shjcl chshii shaddcl mp3an1 syl2an eleq1a syl
      mp2an rexlimivv sylbi ssriv ) EABHIZABJIZEKZURLUTFKZGKZMIZNZGBOFAOUTUSLZF
      GABUTCDPVDVEFGABVAALZVBBLZQVCUSLZVDVEUBVFVAUSLZVBUSLZVHVGAUSVAAABUAZUSABU
      CABCDUDZRSBUSVBBVKUSBAUEVLRSUSTLVIVJVHUSATLBTLUSUFLCDABUGUNUHVAVBUSUIUJUK
      VCUSUTULUMUOUPUQ $.

    $( Commutative law for join in ` SH ` .  (Contributed by NM, 19-Oct-1999.)
       (New usage is discouraged.) $)
    shjcomi $p |- ( A vH B ) = ( B vH A ) $=
      ( csh wcel chj co wceq shjcom mp2an ) AEFBEFABGHBAGHICDABJK $.

    $( Subspace sum is an upper bound of its arguments.  (Contributed by NM,
       19-Oct-1999.)  (New usage is discouraged.) $)
    shsub1i $p |- A C_ ( A +H B ) $=
      ( vx cph co cv shsel1i ssriv ) EAABFGABEHCDIJ $.

    $( Subspace sum is an upper bound of its arguments.  (Contributed by NM,
       17-Dec-2004.)  (New usage is discouraged.) $)
    shsub2i $p |- A C_ ( B +H A ) $=
      ( vx cph co cv shsel2i ssriv ) EABAFGBAEHDCIJ $.

    $( Hilbert lattice join is an upper bound of two subspaces.  (Contributed
       by NM, 19-Oct-1999.)  (New usage is discouraged.) $)
    shub1i $p |- A C_ ( A vH B ) $=
      ( cph co chj shsub1i shsleji sstri ) AABEFABGFABCDHABCDIJ $.

    $( Closure of ` CH ` join.  (Contributed by NM, 19-Oct-1999.)
       (New usage is discouraged.) $)
    shjcli $p |- ( A vH B ) e. CH $=
      ( csh wcel chj co cch shjcl mp2an ) AEFBEFABGHIFCDABJK $.

    $( ` SH ` closure of join.  (Contributed by NM, 5-May-2000.)
       (New usage is discouraged.) $)
    shjshcli $p |- ( A vH B ) e. SH $=
      ( chj co shjcli chshii ) ABEFABCDGH $.

    shless.1 $e |- C e. SH $.
    $( Subset implies subset of subspace sum.  (Contributed by NM,
       18-Nov-2000.)  (New usage is discouraged.) $)
    shlessi $p |- ( A C_ B -> ( A +H C ) C_ ( B +H C ) ) $=
      ( csh wcel wss cph co wi w3a shless ex mp3an ) AGHZBGHZCGHZABIZACJKBCJKIZ
      LDEFQRSMTUAABCNOP $.

    $( Add disjunct to both sides of Hilbert subspace ordering.  (Contributed
       by NM, 19-Oct-1999.)  (Revised by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    shlej1i $p |- ( A C_ B -> ( A vH C ) C_ ( B vH C ) ) $=
      ( csh wcel wss chj co wi w3a shlej1 ex mp3an ) AGHZBGHZCGHZABIZACJKBCJKIZ
      LDEFQRSMTUAABCNOP $.

    $( Add disjunct to both sides of Hilbert subspace ordering.  (Contributed
       by NM, 19-Oct-1999.)  (New usage is discouraged.) $)
    shlej2i $p |- ( A C_ B -> ( C vH A ) C_ ( C vH B ) ) $=
      ( wss chj co shlej1i shjcomi 3sstr4g ) ABGACHIBCHICAHICBHIABCDEFJCAFDKCBF
      EKL $.
  $}

  $( Subspace sum is smaller than subspace join.  Remark in [Kalmbach] p. 65.
     (Contributed by NM, 12-Jul-2004.)  (New usage is discouraged.) $)
  shslej $p |- ( ( A e. SH /\ B e. SH ) -> ( A +H B ) C_ ( A vH B ) ) $=
    ( csh wcel cph co chj wss chil cif oveq1 sseq12d oveq2 helsh elimel shsleji
    wceq dedth2h ) ACDZBCDZABEFZABGFZHSAIJZBEFZUCBGFZHUCTBIJZEFZUCUFGFZHABIIAUC
    QUAUDUBUEAUCBEKAUCBGKLBUFQUDUGUEUHBUFUCEMBUFUCGMLUCUFAICNOBICNOPR $.

  $( Closure of intersection of two subspaces.  (Contributed by NM,
     24-Jun-2004.)  (New usage is discouraged.) $)
  shincl $p |- ( ( A e. SH /\ B e. SH ) -> ( A i^i B ) e. SH ) $=
    ( csh wcel cin chil wceq ineq1 eleq1d ineq2 helsh elimel shincli dedth2h
    cif ) ACDZBCDZABEZCDPAFOZBEZCDSQBFOZEZCDABFFASGRTCASBHIBUAGTUBCBUASJISUAAFC
    KLBFCKLMN $.

  $( Hilbert lattice join is an upper bound of two subspaces.  (Contributed by
     NM, 22-Jun-2004.)  (New usage is discouraged.) $)
  shub1 $p |- ( ( A e. SH /\ B e. SH ) -> A C_ ( A vH B ) ) $=
    ( csh wcel wa cph co chj shsub1 shslej sstrd ) ACDBCDEAABFGABHGABIABJK $.

  $( A subspace is a subset of its Hilbert lattice join with another.
     (Contributed by NM, 22-Jun-2004.)  (New usage is discouraged.) $)
  shub2 $p |- ( ( A e. SH /\ B e. SH ) -> A C_ ( B vH A ) ) $=
    ( csh wcel wa chj co shub1 shjcom sseqtrd ) ACDBCDEAABFGBAFGABHABIJ $.

  ${
    $d x y z A $.
    shsidm.1 $e |- A e. SH $.
    $( Idempotent law for Hilbert subspace sum.  (Contributed by NM,
       6-Jun-2004.)  (New usage is discouraged.) $)
    shsidmi $p |- ( A +H A ) = A $=
      ( vx vy vz cph co wcel cva wceq wrex shseli csh shaddcl mp3an1 syl5ibrcom
      cv wa eleq1 rexlimivv sylbi ssriv shsub1i eqssi ) AAFGZACUEACQZUEHUFDQZEQ
      ZIGZJZEAKDAKUFAHZDEAAUFBBLUJUKDEAAUGAHZUHAHZRUKUJUIAHZAMHULUMUNBUGUHANOUF
      UIASPTUAUBAABBUCUD $.
  $}

  ${
    shslub.1 $e |- A e. SH $.
    shslub.2 $e |- B e. SH $.
    shslub.3 $e |- C e. SH $.
    $( The least upper bound law for Hilbert subspace sum.  (Contributed by NM,
       15-Jun-2004.)  (New usage is discouraged.) $)
    shslubi $p |- ( ( A C_ C /\ B C_ C ) <-> ( A +H B ) C_ C ) $=
      ( wss wa cph co shlessi shscomi syl6sseq shsidmi sylan9ss shsub1i shsub2i
      sstr mpan jca impbii ) ACGZBCGZHABIJZCGZUBUCUDBCIJZCUBUDCBIJUFACBDFEKCBFE
      LMUCUFCCIJCBCCEFFKCFNMOUEUBUCAUDGUEUBABDEPAUDCRSBUDGUEUCBAEDQBUDCRSTUA $.
  $}

  ${
    $d x A $.  $d x B $.
    shlesb1.1 $e |- A e. SH $.
    shlesb1.2 $e |- B e. SH $.
    $( Hilbert lattice ordering in terms of subspace sum.  (Contributed by NM,
       23-Nov-2004.)  (New usage is discouraged.) $)
    shlesb1i $p |- ( A C_ B <-> ( A +H B ) = B ) $=
      ( wss cph wceq ssid biantrur shslubi shsub2i eqss mpbiran2 shscomi sseq1i
      wa co bitr2i 3bitri ) ABEZBBEZTPBAFQZBEZABFQZBGZUATBHIBABDCDJUEUDBEZUCUEU
      FBUDEBADCKUDBLMUDUBBABCDNORS $.

    $( An alternate way to express subspace sum.  (Contributed by NM,
       25-Nov-2004.)  (New usage is discouraged.) $)
    shsval2i $p |- ( A +H B ) = |^| { x e. SH | ( A u. B ) C_ x } $=
      ( cph co cun cv wss csh crab cint wa ssun1 ssintub sstri ssun2 wcel mp2an
      pm3.2i c0 wne ssrab2 wrex shscli shunssi sseq2 rspcev rabn0 mpbir shintcl
      shslubi mpbi elrab mpbir2an intss1 ax-mp eqssi ) BCFGZBCHZAIZJZAKLZMZBVEJ
      ZCVEJZNUTVEJVFVGBVAVEBCOAVAKPZQCVAVECBRVHQUABCVEDEVDKJVDUBUCZVEKSVCAKUDVI
      VCAKUEZUTKSZVAUTJZVJBCDEUFZBCDEUGZVCVLAUTKVBUTVAUHZUITVCAKUJUKVDULTUMUNUT
      VDSZVEUTJVPVKVLVMVNVCVLAUTKVOUOUPUTVDUQURUS $.

    $( An alternate way to express subspace sum.  (Contributed by NM,
       25-Nov-2004.)  (New usage is discouraged.) $)
    shsval3i $p |- ( A +H B ) = ( span ` ( A u. B ) ) $=
      ( vx cph co cun cv wss csh crab cint cspn shsval2i chil wceq shssii unssi
      cfv spanval ax-mp eqtr4i ) ABFGABHZEIJEKLMZUDNTZEABCDOUDPJUFUEQABPACRBDRS
      EUDUAUBUC $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    shmod.1 $e |- A e. SH $.
    shmod.2 $e |- B e. SH $.
    shmod.3 $e |- C e. SH $.
    $( The modular law holds for subspace sum.  Similar to part of Theorem 16.9
       of [MaedaMaeda] p. 70.  (Contributed by NM, 23-Nov-2004.)
       (New usage is discouraged.) $)
    shmodsi $p |- ( A C_ C -> ( ( A +H B ) i^i C ) C_ ( A +H ( B i^i C ) ) ) $=
      ( vz vx vy cph co cin cv wcel wa elin wceq wi chil sheli wss cva wrex cmv
      shseli wb w3a hvsubadd syl3an eqcom syl6bb 3expb shsvsi syl6eleq shlesb1i
      shscomi biimpi eleq2d syl5ib eleq1 biimpd sylan9 anim2d syl6ibr ex ancoms
      com13 anasss sylbird imp shincli shsvai syl5ibr expd com12 ad2antrl exp31
      syld rexlimdvv syl5bi impd ssrdv ) ACUAZGABJKZCLZABCLZJKZGMZWENWHWDNZWHCN
      ZOWCWHWGNZWHWDCPWCWIWJWKWJWIWCWKWIWHHMZIMZUBKZQZIBUCHAUCWJWCWKRZHIABWHDEU
      EWJWOWPHIABWJWLANZWMBNZOZWOWPWJWSOZWOOWCWMWFNZWKWTWOWCXARZWTWOWHWLUDKZWMQ
      ZXBWJWQWRXDWOUFWJWQWRUGXDWNWHQZWOWJWHSNWQWLSNWRWMSNXDXEUFWHCFTWLADTWMBETW
      HWLWMUHUIWNWHUJUKULWJWQWRXDXBRZWRWJWQOZXFWCXDWRXGOZXAWCXDXHXARWCXDOZXHWRW
      MCNZOXAXIXGXJWRWCXGXCCNZXDXJXGXCACJKZNWCXKXGXCCAJKXLCAWHWLFDUMCAFDUPUNWCX
      LCXCWCXLCQACDFUOUQURUSXDXKXJXCWMCUTVAVBVCWMBCPVDVEVGVFVHVIVJWTWOXAWKRZWQW
      OXMRWJWRWOWQXMWOWQXAWKWQXAOWKWOWNWGNAWFWLWMDBCEFVKVLWHWNWGUTVMVNVOVPVJVRV
      QVSVTVGWAVTWB $.

    $( The modular law is implied by the closure of subspace sum.  Part of
       proof of Theorem 16.9 of [MaedaMaeda] p. 70.  (Contributed by NM,
       23-Nov-2004.)  (New usage is discouraged.) $)
    shmodi $p |- ( ( ( A +H B ) = ( A vH B ) /\ A C_ C ) ->
                ( ( A vH B ) i^i C ) C_ ( A vH ( B i^i C ) ) ) $=
      ( cph co chj wceq wss cin shmodsi ineq1 sseq1d syl5ib imp shincli shsleji
      wa syl6ss ) ABGHZABIHZJZACKZTUCCLZABCLZGHZAUGIHUDUEUFUHKZUEUBCLZUHKUDUIAB
      CDEFMUDUJUFUHUBUCCNOPQAUGDBCEFRSUA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Projection theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z A $.  $d x B $.  $d x C $.  $d x y z H $.  $d x T $.
    pjhth.1 $e |- H e. CH $.
    pjhth.2 $e |- ( ph -> A e. ~H ) $.
    ${
      pjhth.3 $e |- ( ph -> B e. H ) $.
      pjhth.4 $e |- ( ph -> C e. H ) $.
      pjhth.5 $e |- ( ph -> A. x e. H ( normh ` ( A -h B ) ) <_
                     ( normh ` ( A -h x ) ) ) $.
      pjhth.6 $e |- T = ( ( ( A -h B ) .ih C ) / ( ( C .ih C ) + 1 ) ) $.
      $( Lemma for ~ pjhth .  (Contributed by NM, 10-Oct-1999.)  (Revised by
         Mario Carneiro, 15-May-2014.)  (New usage is discouraged.) $)
      pjhthlem1 $p |- ( ph -> ( ( A -h B ) .ih C ) = 0 ) $=
        ( co wcel cc0 wceq cle cmul cdiv cmv csp chil cheli syl hvsubcl syl2anc
        cc hicl cabs cfv abscld recnd c2 cexp wbr cr caddc clt resqcld renegcld
        cneg hiidrcl 2re readdcl sylancl c1 0red peano2re hiidge0 ltp1d lelttrd
        ax-1cn addass mp3an23 df-2 oveq2i syl6reqr breqtrrd csm cno cmin cva cv
        wral csh chshii ge0p1rpd rpne0d divcld syl5eqel shmulcl syl3anc shaddcl
        lttrd a1i oveq2 fveq2d breq2d rspcv sylc hvsubass normcl normge0 le2sqd
        letrd mpbid subge0d mpbird crp cz 2z rpexpcl rerpdivcld remulcld negcld
        pncand normsq his2sub his2sub2 oveq1d subcld subsub4d adddid oveq2d ccj
        eqeltrd cjcld mulcomd absvalsqd fveq2i eqtrd syl5eq 3eqtr4rd oveq12d wb
        3eqtrd div23d eqtr3d syl22anc his5 divassd cjdivd cjred sqvald divcan5d
        eqtr2d his35 absdivd rpge0d absidd sqdivd 3eqtr3d pncan2 subdid 3eqtr4d
        hire negsubd addcomd 3eqtr2d mulneg2d mulneg12 prodge02 le0neg1d sqge0d
        ge0divd wa 0re letri3 mpbir2and sqeq0d abs00d ) ACDUANZEUBNZAUVMUCOZEUC
        OZUVNUHOACUCOZDUCOZUVOIADGOZUVRJDGHUDUEZCDUFUGZAEGOZUVPKEGHUDUEZUVMEUIU
        GZAUVNUJUKZAUWEAUVNUWDULZUMZAUWEUNUONZPQZUWHPRUPZPUWHRUPZAUWJPUWHVBZRUP
        ZAUWLUQOEEUBNZUNURNZUQOZPUWOUSUPPUWLUWOSNZRUPUWMAUWHAUWEUWFUTZVAAUWNUQO
        ZUNUQOUWPAUVPUWSUWCEVCUEZVDUWNUNVEVFZAPUWNVGURNZUWOAVHZAUWSUXBUQOUWTUWN
        VIUEZUXAAPUWNUXBUXCUWTUXDAUVPPUWNRUPUWCEVJUEZAUWNUWTVKVLAUXBUXBVGURNZUW
        OUSAUXBUXDVKAUXFUWNVGVGURNZURNZUWOAUWNUHOZUXFUXHQZAUWNUWTUMZUXIVGUHOZUX
        LUXJVMVMUWNVGVGVNVOUEUNUXGUWNURVPVQVRZVSWOAPUWHUWOVBZSNZUWQRAPUXORUPPUX
        OUXBUNUONZTNZRUPAPUVMFEVTNZUANZWAUKZUNUONZUVMWAUKZUNUONZWBNZUXQRAPUYDRU
        PUYCUYARUPZAUYBUXTRUPUYEAUYBCDUXRWCNZUANZWAUKZUXTRAUYFGOZUYBCBWDZUANZWA
        UKZRUPZBGWEUYBUYHRUPZAGWFOZUVSUXRGOZUYIUYOAGHWGWPZJAUYOFUHOZUWBUYPUYQAF
        UVNUXBTNZUHMAUVNUXBUWDAUXBUXDUMZAUXBAUWNUWTUXEWHZWIZWJWKZKFEGWLWMZDUXRG
        WNWMLUYMUYNBUYFGUYJUYFQZUYLUYHUYBRVUEUYKUYGWAUYJUYFCUAWQWRWSWTXAAUXSUYG
        WAAUVQUVRUXRUCOZUXSUYGQIUVTAUYPVUFVUDUXRGHUDUEZCDUXRXBWMWRVSZAUYBUXTAUV
        OUYBUQOUWAUVMXCUEZAUXSUCOZUXTUQOAUVOVUFVUJUWAVUGUVMUXRUFUGZUXSXCUEZAUVO
        PUYBRUPUWAUVMXDUEZAPUYBUXTUXCVUIVULVUMVUHXFXEXGAUYAUYCAUXTVULUTAUYBVUIU
        TXHXIAUWHUXPTNZUWOSNZVBZUVMUVMUBNZURNZVUQWBNVUPUYDUXQAVUPVUQAVUOAVUOAVU
        NUWOAUWHUXPUWRAUXBXJOUNXKOUXPXJOVUAXLUXBUNXMVFZXNZUXAXOUMZXPZAUVOUVOVUQ
        UHOUWAUWAUVMUVMUIUGZXQAUYAVURUYCVUQWBAUYAVUQVUOWBNZVUQVUPURNVURAUYAUXSU
        XSUBNZUVMUXSUBNZUXRUXSUBNZWBNZVVDAVUJUYAVVEQVUKUXSXRUEAUVOVUFVUJVVEVVHQ
        UWAVUGVUKUVMUXRUXSXSWMAVVHVUQUVMUXRUBNZWBNZVVGWBNVUQVVIVVGURNZWBNVVDAVV
        FVVJVVGWBAUVOUVOVUFVVFVVJQUWAUWAVUGUVMUVMUXRXTWMYAAVUQVVIVVGVVCAUVOVUFV
        VIUHOUWAVUGUVMUXRUIUGAVVGUXRUVMUBNZUXRUXRUBNZWBNZUHAVUFUVOVUFVVGVVNQVUG
        UWAVUGUXRUVMUXRXTWMZAVVLVVMAVUFUVOVVLUHOVUGUWAUXRUVMUIUGAVUFVUFVVMUHOVU
        GVUGUXRUXRUIUGYBYGYCAVVKVUOVUQWBAVUNUXFSNVUNUXBSNZVUNVGSNZURNVUOVVKAVUN
        UXBVGAVUNVUTUMZUYTUXLAVMWPYDAUWOUXFVUNSUXMYEAVVIVVPVVGVVQURAVVIUWHUXBTN
        ZUWHUXBSNZUXPTNZVVPAVVIFYFUKZUVNSNZUVNVWBSNZVVSAUYRUVOUVPVVIVWCQVUCUWAU
        WCFUVMEUUAWMAVWBUVNAFVUCYHUWDYIAUVNUVNYFUKZSNZUXBTNUVNVWEUXBTNZSNVVSVWD
        AUVNVWEUXBUWDAUVNUWDYHUYTVUBUUBAUWHVWFUXBTAUVNUWDYJYAAVWBVWGUVNSAVWBUYS
        YFUKZVWGFUYSYFMYKAVWHVWEUXBYFUKZTNVWGAUVNUXBUWDUYTVUBUUCAVWIUXBVWETAUXB
        UXDUUDYEYLYMYEYNYQAVWAUXBUWHSNZUXBUXBSNZTNVVSAVVTVWJUXPVWKTAUWHUXBAUWHU
        WRUMZUYTYIAUXBUYTUUEYOAUWHUXBUXBVWLUYTUYTVUBVUBUUFUUGAUWHUXBUXPVWLUYTAU
        XPAUXBUXDUTUMZAUXPVUSWIZYRYQZAVVNVVPVUNUWNSNZWBNZVVGVVQAVVLVVPVVMVWPWBA
        VVIVVLVVPAVVIUQOZVVIVVLQZAVVIVVPUQVWOAVUNUXBVUTUXDXOYGAUVOVUFVWRVWSYPUW
        AVUGUVMUXRUUQUGXGVWOYSAVVMFVWBSNZUWNSNZVWPAUYRUYRUVPUVPVVMVXAQVUCVUCUWC
        UWCFFEEUUHYTAVWTVUNUWNSAFUJUKZUNUONUWEUXBTNZUNUONVWTVUNAVXBVXCUNUOAVXBU
        YSUJUKZVXCFUYSUJMYKAVXDUWEUXBUJUKZTNVXCAUVNUXBUWDUYTVUBUUIAVXEUXBUWETAU
        XBUXDAUXBVUAUUJUUKYEYLYMYAAFVUCYJAUWEUXBUWGUYTVUBUULUUMYAYLYOVVOAVUNUXB
        UWNWBNZSNVVQVWQAVXFVGVUNSAUXIUXLVXFVGQUXKVMUWNVGUUNVFYEAVUNUXBUWNVVRUYT
        UXKUUOYSUUPYOYNYEYQYQAVUQVUOVVCVVAUURAVUQVUPVVCVVBUUSUUTAUVOUYCVUQQUWAU
        VMXRUEYOAUXQVUNUXNSNVUPAUWHUXNUXPVWLAUXNAUWOUXAVAZUMVWMVWNYRAVUNUWOVVRA
        UWOUXAUMZUVAYLYNVSAUXOUXPAUWHUXNUWRVXGXOVUSUVFXIAUWHUHOUWOUHOUWQUXOQVWL
        VXHUWHUWOUVBUGVSUWLUWOUVCYTAUWHUWRUVDXIAUWEUWFUVEAUWHUQOPUQOUWIUWJUWKUV
        GYPUWRUVHUWHPUVIVFUVJUVKUVL $.
    $}

    $d x y z ph $.
    $( Lemma for ~ pjhth .  (Contributed by NM, 10-Oct-1999.)  (Revised by
       Mario Carneiro, 15-May-2014.)  (New usage is discouraged.) $)
    pjhthlem2 $p |- ( ph -> E. x e. H E. y e. ( _|_ ` H ) A = ( x +h y ) ) $=
      ( vz cv cmv co cno cfv cva wceq wcel wa chil syl2anc cop cle wbr wral csp
      cort wrex cc0 adantr cheli ad2antrl hvsubcl c1 caddc cdiv simplrl simplrr
      simpr eqid pjhthlem1 ralrimiva csh wb chshii shocel ax-mp sylanbrc eqcomd
      hvpncan3 oveq2 eqeq2d rspcev wreu csm cxp cres cc df-hba hhvs hhnm hhssba
      ccphlo hhph a1i css ccbn cin hhssbn elin mpbir2an minveco reurex reximddv
      hhsst syl ) ADBIZJKZLMDHIJKLMUAUBHEUCZDWOCIZNKZOZCEUEMZUFZBEAWOEPZWQQZQZW
      PXAPZDWOWPNKZOZXBXEWPRPZWPWRUDKZUGOZCEUCZXFXEDRPZWORPZXIAXMXDGUHZXCXNAWQW
      OEFUIUJZDWOUKSXEXKCEXEWREPZQHDWOWRXJWRWRUDKULUMKUNKZEFXEXMXQXOUHAXCWQXQUO
      XEXQUQAXCWQXQUPXRURUSUTEVAPZXFXIXLQVBEFVCZCWPEVDVEVFXEXGDXEXNXMXGDOXPXOWO
      DVHSVGWTXHCWPXAWRWPOWSXGDWRWPWONVIVJVKSAWQBEVLWQBEUFABHDNVMTLTZJLNEEVNVOV
      MVPEVNVOTLEVOTZREVQYAYAURZVRYAYCVSEYBYBURZXTVTYAWAPAYAYCWBWCYBYAWDMZWEWFP
      ZAYFYBYEPZYBWEPXSYGXTYAEYBYCYDWMVEEYBYDFWGYBYEWEWHWIWCGWJWQBEWKWNWL $.
  $}

  ${
    $d x y z H $.
    $( Projection Theorem:  Any Hilbert space vector ` A ` can be decomposed
       uniquely into a member ` x ` of a closed subspace ` H ` and a member
       ` y ` of the complement of the subspace.  Theorem 3.7(i) of [Beran]
       p. 102 (existence part).  (Contributed by NM, 23-Oct-1999.)  (Revised by
       Mario Carneiro, 14-May-2014.)  (New usage is discouraged.) $)
    pjhth $p |- ( H e. CH -> ( H +H ( _|_ ` H ) ) = ~H ) $=
      ( vx vy vz cch wcel cort cfv cph co chil csh wss chsh shocsh syl2anc wceq
      cv wrex wi syl shsss cva fveq2 rexeqdv rexeqbi1dv imbi2d ifchhv pjhthlem2
      cif id dedth wb shsel sylibrd ssrdv eqssd ) AEFZAAGHZIJZKURALFZUSLFZUTKMA
      NZURVAVBVCAOUAZAUSUBPURBKUTURBRZKFZVECRDRUCJQZDUSSZCASZVEUTFZURVFVITVFVGD
      URAKUJZGHZSZCVKSZTAKAVKQZVIVNVFVHVMCAVKVOVGDUSVLAVKGUDUEUFUGVFCDVEVKAUHVF
      UKUIULURVAVBVJVIUMVCVDCDAUSVEUNPUOUPUQ $.
  $}

  ${
    $d x y A $.  $d x y H $.
    $( Projection Theorem:  Any Hilbert space vector ` A ` can be decomposed
       uniquely into a member ` x ` of a closed subspace ` H ` and a member
       ` y ` of the complement of the subspace.  Theorem 3.7(i) of [Beran]
       p. 102.  See ~ pjhtheu2 for the uniqueness of ` y ` .  (Contributed by
       NM, 23-Oct-1999.)  (Revised by Mario Carneiro, 14-May-2014.)
       (New usage is discouraged.) $)
    pjhtheu $p |- ( ( H e. CH /\ A e. ~H ) ->
                   E! x e. H E. y e. ( _|_ ` H ) A = ( x +h y ) ) $=
      ( cch wcel chil wa cv cva co wceq cort cfv wrex wmo wreu cph csh syl chsh
      pjhth eleq2d wb shocsh syl2anc bitr3d biimpa cin c0h ocin pjhthmo syl3anc
      shsel adantr wrmo reu5 df-rmo anbi2i bitri sylanbrc ) DEFZCGFZHCAIZBIJKLB
      DMNZOZADOZVDDFVFHAPZVFADQZVBVCVGVBCDVERKZFZVCVGVBVJGCDUBUCVBDSFZVESFZVKVG
      UDDUAZVBVLVMVNDUETZABDVECUNUFUGUHVBVHVCVBVLVMDVEUIUJLZVHVNVOVBVLVPVNDUKTA
      BDVECULUMUOVIVGVFADUPZHVGVHHVFADUQVQVHVGVFADURUSUTVA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Projectors
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d h x y z $.
    $( Define the projection function on a Hilbert space, as a mapping from the
       Hilbert lattice to a function on Hilbert space.  Every closed subspace
       is associated with a unique projection function.  Remark in [Kalmbach]
       p. 66, adopted as a definition. ` ( projh `` H ) `` A ` is the
       projection of vector ` A ` onto closed subspace ` H ` .  Note that the
       range of ` projh ` is the set of all projection operators, so
       ` T e. ran projh ` means that ` T ` is a projection operator.
       (Contributed by NM, 23-Oct-1999.)  (New usage is discouraged.) $)
    df-pjh $a |- projh = ( h e. CH |-> ( x e. ~H |->
           ( iota_ z e. h E. y e. ( _|_ ` h ) x = ( z +h y ) ) ) ) $.
  $}

  ${
    $d h x y z H $.  $d x y z A $.  $d x y z B $.
    $( The value of the projection map.  (Contributed by NM, 23-Oct-1999.)
       (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    pjhfval $p |- ( H e. CH -> ( projh ` H ) = ( x e. ~H |->
           ( iota_ z e. H E. y e. ( _|_ ` H ) x = ( z +h y ) ) ) ) $=
      ( vh chil cv cva co wceq cort cfv wrex crio cmpt cch cpjh fveq2 rexeqdv
      id riotaeqbidv mpteq2dv df-pjh ax-hilex mptex fvmpt ) EDAFAGCGBGHIJZBEGZK
      LZMZCUHNZOAFUGBDKLZMZCDNZOPQUHDJZAFUKUNUOUJUMCUHDUOTUOUGBUIULUHDKRSUAUBAB
      CEUCAFUNUDUEUF $.

    $( Value of a projection.  (Contributed by NM, 23-Oct-1999.)  (Revised by
       Mario Carneiro, 15-Dec-2013.)  (New usage is discouraged.) $)
    pjhval $p |- ( ( H e. CH /\ A e. ~H ) -> ( ( projh ` H ) ` A ) =
             ( iota_ x e. H E. y e. ( _|_ ` H ) A = ( x +h y ) ) ) $=
      ( vz cch wcel chil cpjh cfv cv co wceq cort wrex crio cmpt pjhfval fveq1d
      cva eqeq1 rexbidv riotabidv eqid riotaex fvmpt sylan9eq ) DFGZCHGCDIJZJCE
      HEKZAKBKTLZMZBDNJZOZADPZQZJCUKMZBUMOZADPZUHCUIUPEBADRSECUOUSHUPUJCMZUNURA
      DUTULUQBUMUJCUKUAUBUCUPUDURADUEUFUG $.

    $( Equality with a projection.  This version of ~ pjeq does not assume the
       Axiom of Choice via ~ pjhth .  (Contributed by Mario Carneiro,
       15-May-2014.)  (New usage is discouraged.) $)
    pjpreeq $p |- ( ( H e. CH /\ A e. ( H +H ( _|_ ` H ) ) ) ->
                    ( ( ( projh ` H ) ` A ) = B <->
                      ( B e. H /\ E. x e. ( _|_ ` H ) A = ( B +h x ) ) ) ) $=
      ( vy cch wcel cort cfv co wa cv cva wceq wrex csh wb syl syl2anc chil cph
      crio cpjh wreu wmo chsh shocsh biimpa cin c0h ocin pjhthmo syl3anc adantr
      shsel wrmo reu5 df-rmo anbi2i bitri sylanbrc eleq1 syl5ibcom pm4.71rd wss
      riotacl shsss sselda pjhval syldan eqeq1d id oveq1 eqeq2d rexbidv syl2anr
      riota2 pm5.32da 3bitr4d ) DFGZBDDHIZUAJZGZKZBELZALZMJZNZAWAOZEDUBZCNZCDGZ
      WKKBDUCIIZCNWLBCWFMJZNZAWAOZKWDWKWLWDWJDGZWKWLWDWIEDUDZWQWDWIEDOZWEDGWIKE
      UEZWRVTWCWSVTDPGZWAPGZWCWSQDUFZVTXAXBXCDUGRZEADWABUOSUHVTWTWCVTXAXBDWAUIU
      JNZWTXCXDVTXAXEXCDUKREADWABULUMUNWRWSWIEDUPZKWSWTKWIEDUQXFWTWSWIEDURUSUTV
      AZWIEDVFRWJCDVBVCVDWDWMWJCVTWCBTGWMWJNVTWBTBVTXAXBWBTVEXCXDDWAVGSVHEABDVI
      VJVKWDWLWPWKWLWLWRWPWKQWDWLVLXGWIWPEDCWECNZWHWOAWAXHWGWNBWECWFMVMVNVOVQVP
      VRVS $.

    $( Equality with a projection.  (Contributed by NM, 20-Jan-2007.)  (Revised
       by Mario Carneiro, 15-May-2014.)  (New usage is discouraged.) $)
    pjeq $p |- ( ( H e. CH /\ A e. ~H ) -> ( ( ( projh ` H ) ` A ) = B <->
                ( B e. H /\ E. x e. ( _|_ ` H ) A = ( B +h x ) ) ) ) $=
      ( cch wcel chil cort cfv cph co cpjh wceq cv cva wrex wa wb pjhth eleq2d
      biimpar pjpreeq syldan ) DEFZBGFZBDDHIZJKZFZBDLIICMCDFBCANOKMAUFPQRUDUHUE
      UDUGGBDSTUAABCDUBUC $.

    $( Closure of a projection in its subspace.  If we consider this together
       with ~ axpjpj to be axioms, the need for the ~ ax-hcompl can often be
       avoided for the kinds of theorems we are interested in here.  An
       interesting project is to see how far we can go by using them in place
       of it.  In particular, we can prove the orthomodular law ~ pjomli .)
       (Contributed by NM, 23-Oct-1999.)  (Revised by Mario Carneiro,
       15-May-2014.)  (New usage is discouraged.) $)
    axpjcl $p |- ( ( H e. CH /\ A e. ~H ) -> ( ( projh ` H ) ` A ) e. H ) $=
      ( vx cch wcel chil wa cpjh cfv cv cva co wceq cort wrex eqid mpbii simpld
      pjeq ) BDEAFEGZABHIIZBEZAUACJKLMCBNIOZTUAUAMUBUCGUAPCAUABSQR $.

$(
    @( Closure of projection, as an axiom.  Can be used to replace ~ axpjcl
       for studies of the Hilbert space completeness axiom. @)
    ax-pjcl @a |- ( ( H e. CH /\ A e. ~H ) -> ( ( projh ` H ) ` A ) e. H ) @.
$)
  $}

  $( Closure of a projection in Hilbert space.  (Contributed by NM,
     30-Oct-1999.)  (New usage is discouraged.) $)
  pjhcl $p |- ( ( H e. CH /\ A e. ~H ) -> ( ( projh ` H ) ` A ) e. ~H ) $=
    ( cch wcel chil wa cpjh cfv wss chss adantr axpjcl sseldd ) BCDZAEDZFBEABGH
    HNBEIOBJKABLM $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Properties of Hilbert subspaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Orthomodular law
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    omlsilem.1 $e |- G e. SH $.
    omlsilem.2 $e |- H e. SH $.
    omlsilem.3 $e |- G C_ H $.
    omlsilem.4 $e |- ( H i^i ( _|_ ` G ) ) = 0H $.
    omlsilem.5 $e |- A e. H $.
    omlsilem.6 $e |- B e. G $.
    omlsilem.7 $e |- C e. ( _|_ ` G ) $.
    $( Lemma for orthomodular law in the Hilbert lattice.  (Contributed by NM,
       14-Oct-1999.)  (New usage is discouraged.) $)
    omlsilem $p |- ( A = ( B +h C ) -> A e. G ) $=
      ( cva co wceq wcel c0v shelii chil csh cfv cmv wss shocss ax-mp hvsubaddi
      cort sselii eqcom bitri shsubcl mp3an eleq1 sylbir cin c0h wa eleq2i elin
      mpbii elch0 3bitr3i sylanblc oveq2d ax-hvaddid syl6eq syl6eqel mpbird ) A
      BCMNZOZADPVIDPVJVIBDVJVIBQMNZBVJCQBMVJCEPZCDUGUAZPZCQOZVJABUBNZCOZVLVQVIA
      OVJABCAEGJRBDFKRZVMSCDTPVMSUCFDUDUELUHUFVIAUIUJVQVPEPZVLETPAEPBEPVSGJDEBH
      KUHABEUKULVPCEUMUTUNLCEVMUOZPCUPPVLVNUQVOVTUPCIURCEVMUSCVAVBVCVDBSPVKBOVR
      BVEUEVFKVGAVIDUMVH $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    omlsi.1 $e |- A e. CH $.
    omlsi.2 $e |- B e. SH $.
    omlsi.3 $e |- A C_ B $.
    omlsi.4 $e |- ( B i^i ( _|_ ` A ) ) = 0H $.
    $( Subspace inference form of orthomodular law in the Hilbert lattice.
       (Contributed by NM, 14-Oct-1999.)  (Revised by Mario Carneiro,
       15-May-2014.)  (New usage is discouraged.) $)
    omlsii $p |- A = B $=
      ( vx vy vz cv wcel cva co wceq wi c0v cif csh ax-mp elimel cort cfv sheli
      pjhthlem2 wa eqeq1 eleq1 imbi12d oveq1 eqeq2d imbi1d oveq2 chshii sh0 cch
      wrex ch0 shocsh omlsilem dedth3h 3expia rexlimdv rexlimdva ssriv eqssi
      mpd ) ABEGBAGJZBKZVGHJZIJZLMZNZIAUAUBZUPZHAUPVGAKZVHHIVGACVGBDUCUDVHVNVOH
      AVHVIAKZUEVLVOIVMVHVPVJVMKZVLVOOZVHVPVQVRVHVGPQZVKNZVSAKZOVSVPVIPQZVJLMZN
      ZWAOVSWBVQVJPQZLMZNZWAOVGVIVJPPPVGVSNVLVTVOWAVGVSVKUFVGVSAUGUHVIWBNZVTWDW
      AWHVKWCVSVIWBVJLUIUJUKVJWENZWDWGWAWIWCWFVSVJWEWBLULUJUKVSWBWEABACUMZDEFVG
      PBBRKPBKDBUNSTVIPAAUOKPAKCAUQSTVJPVMVMRKZPVMKARKWKWJAURSVMUNSTUSUTVAVBVCV
      FVDVE $.
  $}

  ${
    omls.1 $e |- A e. CH $.
    omls.2 $e |- B e. SH $.
    $( Subspace form of orthomodular law in the Hilbert lattice.  Compare the
       orthomodular law in Theorem 2(ii) of [Kalmbach] p. 22.  (Contributed by
       NM, 14-Oct-1999.)  (New usage is discouraged.) $)
    omlsi $p |- ( ( A C_ B /\ ( B i^i ( _|_ ` A ) ) = 0H ) -> A = B ) $=
      ( wss cort cfv cin c0h wa cif keepel csh h0elsh sseq1 fveq2 ineq2d eqeq1d
      wceq anbi12d eqeq1 eqeq2 cch h0elch sseq2 ineq1 ssid wcel ax-mp elimhyp2v
      ocin pm3.2i simpli simpri omlsii dedth2v ) ABEZBAFGZHZISZJZABSVAAIKZBSVBV
      ABIKZSABIIAVBBUABVCVBUBVBVCVAAIUCCUDLVABIMDNLVBVCEZVCVBFGZHZISZVAVBBEZBVE
      HZISZJVDVGJIIEZIIFGZHZISZJVBIEZIVEHZISZJABIIAVBSZUQVHUTVJAVBBOVRUSVIIVRUR
      VEBAVBFPQRTBVCSZVHVDVJVGBVCVBUEVSVIVFIBVCVEUFRTIVBSZVKVOVNVQIVBIOVTVMVPIV
      TVLVEIIVBFPQRTIVCSZVOVDVQVGIVCVBUEWAVPVFIIVCVEUFRTVKVNIUGIMUHVNNIUKUIULUJ
      ZUMVDVGWBUNUOUP $.
  $}

  ${
    ococ.1 $e |- A e. CH $.
    $( Complement of complement of a closed subspace of Hilbert space.  Theorem
       3.7(ii) of [Beran] p. 102.  (Contributed by NM, 11-Oct-1999.)
       (New usage is discouraged.) $)
    ococi $p |- ( _|_ ` ( _|_ ` A ) ) = A $=
      ( cort cfv csh wcel chshii shocsh ax-mp wss shococss cin incom wceq eqtri
      c0h ocin omlsii eqcomi ) AACDZCDZAUABTEFZUAEFAEFZUBABGZAHIZTHIUCAUAJUDAKI
      UATLTUALZPUATMUBUFPNUETQIORS $.
  $}

  $( Complement of complement of a closed subspace of Hilbert space.  Theorem
     3.7(ii) of [Beran] p. 102.  (Contributed by NM, 11-Oct-1999.)
     (New usage is discouraged.) $)
  ococ $p |- ( A e. CH -> ( _|_ ` ( _|_ ` A ) ) = A ) $=
    ( cch wcel cort cfv wceq chil cif fveq2 fveq2d eqeq12d ifchhv ococi dedth
    id ) ABCZADEZDEZAFPAGHZDEZDEZSFAGASFZRUAASUBQTDASDIJUBOKSALMN $.

  $( Alternate definition of the Hilbert lattice.  (Contributed by NM,
     8-Aug-2000.)  (Revised by Mario Carneiro, 23-Dec-2013.)
     (New usage is discouraged.) $)
  dfch2 $p |- CH = { x e. ~P ~H | ( _|_ ` ( _|_ ` x ) ) = x } $=
    ( cch cv chil cpw wcel cort cfv wceq cab crab wss chss ococ occl 3syl eleq1
    wa jca syl5ib impcom impbii selpw anbi1i bitr4i abbi2i df-rab eqtr4i ) BACZ
    DEZFZUIGHZGHZUIIZRZAJUNAUJKUOABUIBFZUIDLZUNRZUOUPURUPUQUNUIMUINSUNUQUPUQUMB
    FZUNUPUQULBFULDLUSUIOULMULOPUMUIBQTUAUBUKUQUNADUCUDUEUFUNAUJUGUH $.

  ${
    $d x y A $.  $d x B $.
    $( The double complement is the smallest closed subspace containing a
       subset of Hilbert space.  Remark 3.12(B) of [Beran] p. 107.
       (Contributed by NM, 8-Aug-2000.)  (New usage is discouraged.) $)
    ococin $p |- ( A C_ ~H ->
                  ( _|_ ` ( _|_ ` A ) ) = |^| { x e. CH | A C_ x } ) $=
      ( chil wss cort cfv cv cch crab cint wcel helch sseq2 elrab sylibr intss1
      wa syl ocss occon jctl jca ssintub wi mpdan mpi sylc wceq wne ssrab2 wrex
      rspcev mpan rabn0 chintcl sylancr ococ sseqtrd occl ococss sylanbrc eqssd
      c0 ) BCDZBEFZEFZBAGZDZAHIZJZVDVFVJEFZEFZVJVDVKCDZVECDZQVKVEDZVFVLDVDVMVNV
      DVJCDZVMVDCVIKZVPVDCHKZVDQVQVDVRLUAVHVDACHVGCBMZNOCVIPRZVJSRBSZUBVDBVJDZV
      OABHUCVDVPWBVOUDVTBVJTUEUFVKVETUGVDVJHKZVLVJUHVDVIHDVIVCUIZWCVHAHUJVDVHAH
      UKZWDVRVDWELVHVDACHVSULUMVHAHUNOVIUOUPVJUQRURVDVFVIKZVJVFDVDVFHKZBVFDZWFV
      DVNWGWAVEUSRBUTVHWHAVFHVGVFBMNVAVFVIPRVB $.

    $( Alternate definition of supremum of a subset of the Hilbert lattice.
       Definition of supremum in Proposition 1 of [Kalmbach] p. 65.  We
       actually define it on any collection of Hilbert space subsets, not just
       the Hilbert lattice ` CH ` , to allow more general theorems.
       (Contributed by NM, 13-Aug-2002.)  (New usage is discouraged.) $)
    hsupval2 $p |- ( A C_ ~P ~H ->
                    ( \/H ` A ) = |^| { x e. CH | U. A C_ x } ) $=
      ( chil cpw wss cfv cuni cort cv cch crab cint hsupval wceq sspwuni ococin
      chsup sylbi eqtrd ) BCDEZBQFBGZHFHFZUAAIEAJKLZBMTUACEUBUCNBCOAUAPRS $.

    $( The value of the supremum of a set of closed subspaces of Hilbert space.
       Definition of supremum in Proposition 1 of [Kalmbach] p. 65.
       (Contributed by NM, 13-Aug-2002.)  (New usage is discouraged.) $)
    chsupval2 $p |- ( A C_ CH ->
                    ( \/H ` A ) = |^| { x e. CH | U. A C_ x } ) $=
      ( cch wss chil cpw chsup cfv cuni cv crab cint chsspwh sstr2 mpi hsupval2
      wceq syl ) BCDZBEFZDZBGHBIAJDACKLQSCTDUAMBCTNOABPR $.

    $( Value of join in the set of closed subspaces of Hilbert space ` CH ` .
       (Contributed by NM, 1-Nov-2000.)  (Revised by Mario Carneiro,
       23-Dec-2013.)  (New usage is discouraged.) $)
    sshjval2 $p |- ( ( A C_ ~H /\ B C_ ~H ) -> ( A vH B ) =
                     |^| { x e. CH | ( A u. B ) C_ x } ) $=
      ( chil wss wa chj co cun cort cfv cch crab cint sshjval wceq ococin sylbi
      cv unss eqtrd ) BDECDEFZBCGHBCIZJKJKZUCASEALMNZBCOUBUCDEUDUEPBCDTAUCQRUA
      $.

    $( A subspace is the supremum of all smaller subspaces.  (Contributed by
       NM, 13-Aug-2002.)  (New usage is discouraged.) $)
    chsupid $p |- ( A e. CH -> ( \/H ` { x e. CH | x C_ A } ) = A ) $=
      ( vy cch wcel cv wss crab chsup cfv cuni cint wceq ssrab2 chsupval2 ax-mp
      unimax sseq1d rabbidv inteqd intmin eqtrd syl5eq ) BDEZAFBGZADHZIJZUFKZCF
      ZGZCDHZLZBUFDGUGULMUEADNCUFOPUDULBUIGZCDHZLBUDUKUNUDUJUMCDUDUHBUIABDQRSTC
      BDUAUBUC $.

    $( Value of supremum of subset of ` CH ` on a singleton.  (Contributed by
       NM, 13-Aug-2002.)  (New usage is discouraged.) $)
    chsupsn $p |- ( A e. CH -> ( \/H ` { A } ) = A ) $=
      ( vx cch wcel csn chsup cfv cuni cv wss crab cint wceq snssi chsupval2 wa
      syl unisng eqimss ancli sseq2 elrab sylibr intss1 ssintub syl6eqssr eqssd
      eqtrd ) ACDZAEZFGZUJHZBIZJZBCKZLZAUIUJCJUKUPMACNBUJOQUIUPAUIAUODZUPAJUIUI
      ULAJZPUQUIURUIULAMURACRZULASQTUNURBACUMAULUAUBUCAUOUDQUIAULUPUSBULCUEUFUG
      UH $.
  $}

  $( Hilbert lattice join is the least upper bound (among Hilbert lattice
     elements) of two subspaces.  (Contributed by NM, 15-Jun-2004.)
     (New usage is discouraged.) $)
  shlub $p |- ( ( A e. SH /\ B e. SH /\ C e. CH ) ->
               ( ( A C_ C /\ B C_ C ) <-> ( A vH B ) C_ C ) ) $=
    ( csh wcel cch w3a wss wa chj cort cfv chil shss 3ad2ant3 syl2anc wceq sstr
    syl sylan co cun unss wi simp1 simp2 unssd chss occon2 syl5bi shjval eqcomd
    ococ sseq12d sylibrd shub1 shub2 jca ex impbid ) ADEZBDEZCFEZGZACHZBCHZIZAB
    JUAZCHZVDVGABUBZKLKLZCKLKLZHZVIVGVJCHZVDVMABCUCVDVJMHCMHZVNVMUDVDABMVDVAAMH
    VAVBVCUEZANSVDVBBMHVAVBVCUFZBNSUGVCVAVOVBCUHOVJCUIPUJVDVHVKCVLVDVAVBVHVKQVP
    VQABUKPVDVLCVCVAVLCQVBCUMOULUNUOVDVIVGVDVIIVEVFVDAVHHZVIVEVDVAVBVRVPVQABUPP
    AVHCRTVDBVHHZVIVFVDVBVAVSVQVPBAUQPBVHCRTURUSUT $.

  ${
    shlub.1 $e |- A e. SH $.
    shlub.2 $e |- B e. SH $.
    shlub.3 $e |- C e. CH $.
    $( Hilbert lattice join is the least upper bound (among Hilbert lattice
       elements) of two subspaces.  (Contributed by NM, 11-Jun-2004.)
       (New usage is discouraged.) $)
    shlubi $p |- ( ( A C_ C /\ B C_ C ) <-> ( A vH B ) C_ C ) $=
      ( csh wcel cch wss wa chj co wb shlub mp3an ) AGHBGHCIHACJBCJKABLMCJNDEFA
      BCOP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Projectors (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y A $.  $d x y H $.
    $( Uniqueness of ` y ` for the projection theorem.  (Contributed by NM,
       6-Nov-1999.)  (Revised by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    pjhtheu2 $p |- ( ( H e. CH /\ A e. ~H ) ->
                   E! y e. ( _|_ ` H ) E. x e. H A = ( x +h y ) ) $=
      ( cch wcel chil wa cv cva co wceq cort wrex wreu choccl sylan adantr chel
      cfv pjhtheu simpll ococ rexeqdv ax-hvcom syl2anc eqeq2d rexbidva reubidva
      syl bitrd mpbid ) DEFZCGFZHZCBIZAIZJKZLZADMTZMTZNZBUTOZCUQUPJKZLZADNZBUTO
      UMUTEFZUNVCDPZBACUTUAQUOVBVFBUTUOUPUTFZHZVBUSADNVFVJUSAVADVJUMVADLUMUNVIU
      BZDUCUJUDVJUSVEADVJUQDFZHZURVDCVMUPGFZUQGFZURVDLVJVNVLUOVGVIVNUMVGUNVHRUP
      UTSQRVJUMVLVOVKUQDSQUPUQUEUFUGUHUKUIUL $.
  $}

  ${
    pjcl.1 $e |- H e. CH $.
    $( Closure of a projection in its subspace.  (Contributed by NM,
       7-Oct-2000.)  (New usage is discouraged.) $)
    pjcli $p |- ( A e. ~H -> ( ( projh ` H ) ` A ) e. H ) $=
      ( cch wcel chil cpjh cfv axpjcl mpan ) BDEAFEABGHHBECABIJ $.

    $( Closure of a projection in Hilbert space.  (Contributed by NM,
       7-Oct-2000.)  (New usage is discouraged.) $)
    pjhcli $p |- ( A e. ~H -> ( ( projh ` H ) ` A ) e. ~H ) $=
      ( cch wcel chil cpjh cfv pjhcl mpan ) BDEAFEABGHHFECABIJ $.
  $}

  ${
    $d x y A $.  $d x y H $.  $d x y ph $.
    pjpjpre.1 $e |- ( ph -> H e. CH ) $.
    pjpjpre.2 $e |- ( ph -> A e. ( H +H ( _|_ ` H ) ) ) $.
    $( Decomposition of a vector into projections.  This formulation of
       ~ axpjpj avoids ~ pjhth .  (Contributed by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    pjpjpre $p |- ( ph ->
          A = ( ( ( projh ` H ) ` A ) +h ( ( projh ` ( _|_ ` H ) ) ` A ) ) ) $=
      ( vx vy cva co wceq cfv wrex cph wcel csh wb syl syl2anc wa adantr cv cch
      cort cpjh chsh shocsh shsel simprr simprll simprlr rspe pjpreeq mpbir2and
      mpbid wss shococss sseldd chil shel ax-hvcom eqtrd choccl shless syl31anc
      shscom sseqtr4d oveq12d eqtr4d exp32 rexlimdvv mpd ) ABFUAZGUAZHIZJZGCUCK
      ZLZFCLZBBCUDKKZBVPUDKKZHIZJZABCVPMIZNZVREACONZVPONZWDVRPACUBNZWEDCUEZQZAW
      EWFWICUFZQZFGCVPBUGRUNAVOWBFGCVPAVLCNZVMVPNZSZVOWBAWNVOSZSZBVNWAAWNVOUHZW
      PVSVLVTVMHWPVSVLJZWLVQAWLWMVOUIZWPWMVOVQAWLWMVOUJZWQVOGVPUKRAWRWLVQSPZWOA
      WGWDXADEGBVLCULRTUMWPVTVMJZWMBVMVLHIZJZFVPUCKZLZWTWPVLXENXDXFWPCXEVLACXEU
      OZWOAWEXGWICUPQZTWSUQWPBVNXCWQWPVLURNZVMURNZVNXCJWPWEWLXIWPWGWEAWGWODTWHQ
      ZWSVLCUSRWPWFWMXJWPWEWFXKWJQWTVMVPUSRVLVMUTRVAXDFXEUKRAXBWMXFSPZWOAVPUBNZ
      BVPXEMIZNXLAWGXMDCVBQAWCXNBAWCXEVPMIZXNAWEXEONZWFXGWCXOUOWIAWFXPWKVPUFQZW
      KXHCXEVPVCVDAWFXPXNXOJWKXQVPXEVERVFEUQFBVMVPULRTUMVGVHVIVJVK $.
  $}

  $( Decomposition of a vector into projections.  See comment in ~ axpjcl .
     (Contributed by NM, 26-Oct-1999.)  (Revised by Mario Carneiro,
     15-May-2014.)  (New usage is discouraged.) $)
  axpjpj $p |- ( ( H e. CH /\ A e. ~H ) ->
          A = ( ( ( projh ` H ) ` A ) +h ( ( projh ` ( _|_ ` H ) ) ` A ) ) ) $=
    ( cch wcel chil wa simpl cort cfv cph co pjhth eleq2d biimpar pjpjpre ) BCD
    ZAEDZFABPQGPABBHIJKZDQPREABLMNO $.

  ${
    pjcli.1 $e |- H e. CH $.
    pjcli.2 $e |- A e. ~H $.
    $( Closure of a projection in its subspace.  (Contributed by NM,
       30-Oct-1999.)  (New usage is discouraged.) $)
    pjclii $p |- ( ( projh ` H ) ` A ) e. H $=
      ( chil wcel cpjh cfv pjcli ax-mp ) AEFABGHHBFDABCIJ $.

    $( Closure of a projection in Hilbert space.  (Contributed by NM,
       30-Oct-1999.)  (New usage is discouraged.) $)
    pjhclii $p |- ( ( projh ` H ) ` A ) e. ~H $=
      ( chil wcel cpjh cfv pjhcli ax-mp ) AEFABGHHEFDABCIJ $.

    $( Decomposition of a vector into projections.  (Contributed by NM,
       26-Oct-1999.)  (Revised by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    pjpj0i $p |- A = ( ( ( projh ` H ) ` A ) +h
                ( ( projh ` ( _|_ ` H ) ) ` A ) ) $=
      ( cch wcel chil cpjh cfv cort cva co wceq axpjpj mp2an ) BEFAGFAABHIIABJI
      HIIKLMCDABNO $.
  $}

$(
  @( Decomposition of a vector into projections, as an axiom.  Can be used to
     replace ~ axpjpj in studies of the Hilbert space completeness axiom. @)
  ax-pjpj @a |- ( ( H e. CH /\ A e. ~H ) ->
         A = ( ( ( projh ` H ) ` A ) +h ( ( projh ` ( _|_ ` H ) ) ` A ) ) ) @.
$)

  ${
    pjpj.1 $e |- H e. CH $.
    pjpj.2 $e |- A e. ~H $.
    $( Decomposition of a vector into projections.  (Contributed by NM,
       6-Nov-1999.)  (New usage is discouraged.) $)
    pjpji $p |- A = ( ( ( projh ` H ) ` A ) +h
               ( ( projh ` ( _|_ ` H ) ) ` A ) ) $=
      ( pjpj0i ) ABCDE $.
  $}

  ${
    $d x y A $.  $d x y H $.
    $( Projection Theorem:  Any Hilbert space vector ` A ` can be decomposed
       into a member ` x ` of a closed subspace ` H ` and a member ` y ` of the
       complement of the subspace.  Theorem 3.7(i) of [Beran] p. 102 (existence
       part).  (Contributed by NM, 6-Nov-1999.)  (New usage is discouraged.) $)
    pjpjhth $p |- ( ( H e. CH /\ A e. ~H ) ->
                E. x e. H E. y e. ( _|_ ` H ) A = ( x +h y ) ) $=
      ( cch wcel chil wa cpjh cfv cort cva co wceq cv wrex axpjcl choccl axpjpj
      sylan rspceov syl3anc ) DEFZCGFZHCDIJJZDFCDKJZIJJZUFFZCUEUGLMNCAOBOLMNBUF
      PADPCDQUCUFEFUDUHDRCUFQTCDSABDUFUEUGCLUAUB $.
  $}

  ${
    $d x y A $.  $d x y H $.
    pjpjhth.1 $e |- A e. ~H $.
    pjpjhth.2 $e |- H e. CH $.
    $( Projection Theorem:  Any Hilbert space vector ` A ` can be decomposed
       into a member ` x ` of a closed subspace ` H ` and a member ` y ` of the
       complement of the subspace.  Theorem 3.7(i) of [Beran] p. 102 (existence
       part).  (Contributed by NM, 6-Nov-1999.)  (New usage is discouraged.) $)
    pjpjhthi $p |- E. x e. H E. y e. ( _|_ ` H ) A = ( x +h y ) $=
      ( cch wcel chil cv cva co wceq cort cfv wrex pjpjhth mp2an ) DGHCIHCAJBJK
      LMBDNOPADPFEABCDQR $.
  $}

  $( Orthocomplement projection in terms of projection.  (Contributed by NM,
     5-Nov-1999.)  (New usage is discouraged.) $)
  pjop $p |- ( ( H e. CH /\ A e. ~H )
     -> ( ( projh ` ( _|_ ` H ) ) ` A ) = ( A -h ( ( projh ` H ) ` A ) ) ) $=
    ( cch wcel chil wa cpjh cfv cmv co cort wceq cva axpjpj eqcomd simpr choccl
    wb pjhcl sylan hvsubadd syl3anc mpbird ) BCDZAEDZFZAABGHHZIJZABKHZGHHZUFUHU
    JLZUGUJMJZALZUFAULABNOUFUEUGEDUJEDZUKUMRUDUEPABSUDUICDUEUNBQAUISTAUGUJUAUBU
    CO $.

  $( Projection in terms of orthocomplement projection.  (Contributed by NM,
     5-Nov-1999.)  (New usage is discouraged.) $)
  pjpo $p |- ( ( H e. CH /\ A e. ~H )
      -> ( ( projh ` H ) ` A ) = ( A -h ( ( projh ` ( _|_ ` H ) ) ` A ) ) ) $=
    ( cch wcel chil wa cort cfv cpjh cmv co wceq cva choccl pjhcl sylan syl2anc
    ax-hvcom axpjpj eqtr4d wb simpr hvsubadd syl3anc mpbird eqcomd ) BCDZAEDZFZ
    AABGHZIHHZJKZABIHHZUIULUMLZUKUMMKZALZUIUOUMUKMKZAUIUKEDZUMEDZUOUQLUGUJCDUHU
    RBNAUJOPZABOZUKUMRQABSTUIUHURUSUNUPUAUGUHUBUTVAAUKUMUCUDUEUF $.

  ${
    pjop.1 $e |- H e. CH $.
    pjop.2 $e |- A e. ~H $.
    $( Orthocomplement projection in terms of projection.  (Contributed by NM,
       31-Oct-1999.)  (New usage is discouraged.) $)
    pjopi $p |- ( ( projh ` ( _|_ ` H ) ) ` A ) =
               ( A -h ( ( projh ` H ) ` A ) ) $=
      ( cch wcel chil cort cfv cpjh cmv co wceq pjop mp2an ) BEFAGFABHIJIIAABJI
      IKLMCDABNO $.

    $( Projection in terms of orthocomplement projection.  (Contributed by NM,
       31-Oct-1999.)  (New usage is discouraged.) $)
    pjpoi $p |- ( ( projh ` H ) ` A ) =
               ( A -h ( ( projh ` ( _|_ ` H ) ) ` A ) ) $=
      ( cch wcel chil cpjh cfv cort cmv co wceq pjpo mp2an ) BEFAGFABHIIAABJIHI
      IKLMCDABNO $.

    $( Projection of a vector in the orthocomplement of the projection
       subspace.  (Contributed by NM, 27-Oct-1999.)
       (New usage is discouraged.) $)
    pjoc1i $p |- ( A e. H <-> ( ( projh ` ( _|_ ` H ) ) ` A ) = 0h ) $=
      ( wcel cort cfv cpjh c0v wceq c0h cin wa cmv pjopi csh pjclii ax-mp cva
      co chshii shsubcl mp3an13 syl5eqel choccli jctir elin ocin syl6eleq elch0
      sylibr sylib pjpji oveq2 syl5eq pjhclii ax-hvaddid syl6eq syl6eqel impbii
      chil ) ABEZABFGZHGGZIJZVBVDKEVEVBVDBVCLZKVBVDBEZVDVCEZMVDVFEVBVGVHVBVDAAB
      HGGZNTZBABCDOBPEZVBVIBEVJBEBCUAZABCDQZAVIBUBUCUDAVCBCUEDQUFVDBVCUGUKVKVFK
      JVLBUHRUIVDUJULVEAVIBVEAVIISTZVIVEAVIVDSTVNABCDUMVDIVISUNUOVIVAEVNVIJABCD
      UPVIUQRURVMUSUT $.

    $( Projection of a vector in the projection subspace.  Lemma 4.4(ii) of
       [Beran] p. 111.  (Contributed by NM, 27-Oct-1999.)
       (New usage is discouraged.) $)
    pjchi $p |- ( A e. H <-> ( ( projh ` H ) ` A ) = A ) $=
      ( wcel cpjh cfv wceq c0v cva co chil pjhclii ax-hvaddid ax-mp cort pjoc1i
      pjpji biimpi oveq2d syl5req syl5eqr pjclii eleq1 mpbii impbii ) ABEZABFGG
      ZAHZUGUHUHIJKZAUHLEUJUHHABCDMUHNOUGAUHABPGFGGZJKUJABCDRUGUKIUHJUGUKIHABCD
      QSTUAUBUIUHBEUGABCDUCUHABUDUEUF $.
  $}

  $( The part of a vector that belongs to the orthocomplemented space.
     (Contributed by NM, 11-Apr-2006.)  (New usage is discouraged.) $)
  pjoccl $p |- ( ( H e. CH /\ A e. ~H ) ->
          ( A -h ( ( projh ` H ) ` A ) ) e. ( _|_ ` H ) ) $=
    ( cch wcel chil wa cort cfv cpjh cmv co pjop choccl axpjcl sylan eqeltrrd )
    BCDZAEDZFABGHZIHHZAABIHHJKSABLQSCDRTSDBMASNOP $.

  $( Projection of a vector in the orthocomplement of the projection subspace.
     (Contributed by NM, 6-Nov-1999.)  (New usage is discouraged.) $)
  pjoc1 $p |- ( ( H e. CH /\ A e. ~H ) ->
               ( A e. H <-> ( ( projh ` ( _|_ ` H ) ) ` A ) = 0h ) ) $=
    ( cch wcel chil cort cfv cpjh c0v wceq cif eleq2 fveq2 fveq2d fveq1d eqeq1d
    wb bibi12d eleq1 ifchhv ifhvhv0 pjoc1i dedth2h ) BCDZAEDZABDZABFGZHGZGZIJZQ
    AUDBEKZDZAUKFGZHGZGZIJZQUEAIKZUKDZUQUNGZIJZQBAEIBUKJZUFULUJUPBUKALVAUIUOIVA
    AUHUNVAUGUMHBUKFMNOPRAUQJZULURUPUTAUQUKSVBUOUSIAUQUNMPRUQUKBTAUAUBUC $.

  ${
    pjoml.1 $e |- A e. CH $.
    pjoml.2 $e |- B e. SH $.
    $( Subspace form of orthomodular law in the Hilbert lattice.  Compare the
       orthomodular law in Theorem 2(ii) of [Kalmbach] p. 22.  Derived using
       projections; compare ~ omlsi .  (Contributed by NM, 6-Nov-1999.)
       (New usage is discouraged.) $)
    pjomli $p |- ( ( A C_ B /\ ( B i^i ( _|_ ` A ) ) = 0H ) -> A = B ) $=
      ( omlsi ) ABCDE $.
  $}

  $( Subspace form of orthomodular law in the Hilbert lattice.  Compare the
     orthomodular law in Theorem 2(ii) of [Kalmbach] p. 22.  Derived using
     projections; compare ~ omlsi .  (Contributed by NM, 14-Jun-2006.)
     (New usage is discouraged.) $)
  pjoml $p |- ( ( ( A e. CH /\ B e. SH ) /\
               ( A C_ B /\ ( B i^i ( _|_ ` A ) ) = 0H ) ) -> A = B ) $=
    ( cch wcel csh wa wss cort cfv cin c0h wceq cif sseq1 fveq2 anbi12d imbi12d
    wi eqeq1d elimel ineq2d eqeq1 sseq2 ineq1 h0elch h0elsh pjomli dedth2h imp
    eqeq2 ) ACDZBEDZFABGZBAHIZJZKLZFZABLZUKULUQURRUKAKMZBGZBUSHIZJZKLZFZUSBLZRU
    SULBKMZGZVFVAJZKLZFZUSVFLZRABKKAUSLZUQVDURVEVLUMUTUPVCAUSBNVLUOVBKVLUNVABAU
    SHOUASPAUSBUBQBVFLZVDVJVEVKVMUTVGVCVIBVFUSUCVMVBVHKBVFVAUDSPBVFUSUJQUSVFAKC
    UETBKEUFTUGUHUI $.

  ${
    pjococ.1 $e |- H e. CH $.
    $( Proof of orthocomplement theorem using projections.  Compare ~ ococ .
       (Contributed by NM, 5-Nov-1999.)  (New usage is discouraged.) $)
    pjococi $p |- ( _|_ ` ( _|_ ` H ) ) = H $=
      ( ococi ) ABC $.
  $}

  ${
    pjoc2.1 $e |- H e. CH $.
    pjoc2.2 $e |- A e. ~H $.
    $( Projection of a vector in the orthocomplement of the projection
       subspace.  Lemma 4.4(iii) of [Beran] p. 111.  (Contributed by NM,
       27-Oct-1999.)  (New usage is discouraged.) $)
    pjoc2i $p |- ( A e. ( _|_ ` H ) <-> ( ( projh ` H ) ` A ) = 0h ) $=
      ( cort cfv wcel cpjh c0v wceq choccli pjoc1i pjococi fveq2i fveq1i eqeq1i
      bitri ) ABEFZGAREFZHFZFZIJABHFZFZIJARBCKDLUAUCIATUBSBHBCMNOPQ $.
  $}

  $( Projection of a vector in the orthocomplement of the projection subspace.
     Lemma 4.4(iii) of [Beran] p. 111.  (Contributed by NM, 24-Apr-2006.)
     (New usage is discouraged.) $)
  pjoc2 $p |- ( ( H e. CH /\ A e. ~H ) ->
               ( A e. ( _|_ ` H ) <-> ( ( projh ` H ) ` A ) = 0h ) ) $=
    ( cch wcel chil cort cfv cpjh c0v wceq c0h cif eleq2d fveq1d eqeq1d bibi12d
    wb fveq2 eleq1 h0elch elimel ifhvhv0 pjoc2i dedth2h ) BCDZAEDZABFGZDZABHGZG
    ZIJZQAUEBKLZFGZDZAULHGZGZIJZQUFAILZUMDZURUOGZIJZQBAKIBULJZUHUNUKUQVBUGUMABU
    LFRMVBUJUPIVBAUIUOBULHRNOPAURJZUNUSUQVAAURUMSVCUPUTIAURUOROPURULBKCTUAAUBUC
    UD $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Hilbert lattice operations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The zero subspace is the smallest subspace.  (Contributed by NM,
     3-Jun-2004.)  (New usage is discouraged.) $)
  sh0le $p |- ( A e. SH -> 0H C_ A ) $=
    ( csh wcel c0h c0v csn df-ch0 sh0 snssd syl5eqss ) ABCZDEFAGKEAAHIJ $.

  $( The zero subspace is the smallest member of ` CH ` .  (Contributed by NM,
     14-Aug-2002.)  (New usage is discouraged.) $)
  ch0le $p |- ( A e. CH -> 0H C_ A ) $=
    ( cch wcel csh c0h wss chsh sh0le syl ) ABCADCEAFAGAHI $.

  $( No subspace is smaller than the zero subspace.  (Contributed by NM,
     24-Nov-2004.)  (New usage is discouraged.) $)
  shle0 $p |- ( A e. SH -> ( A C_ 0H <-> A = 0H ) ) $=
    ( csh wcel c0h wss wa wceq sh0le biantrud eqss syl6bbr ) ABCZADEZMDAEZFADGL
    NMAHIADJK $.

  $( No Hilbert lattice element is smaller than zero.  (Contributed by NM,
     14-Aug-2002.)  (New usage is discouraged.) $)
  chle0 $p |- ( A e. CH -> ( A C_ 0H <-> A = 0H ) ) $=
    ( cch wcel csh c0h wss wceq wb chsh shle0 syl ) ABCADCAEFAEGHAIAJK $.

  $( A Hilbert lattice element that is not a subset of another is nonzero.
     (Contributed by NM, 30-Jun-2004.)  (New usage is discouraged.) $)
  chnlen0 $p |- ( B e. CH -> ( -. A C_ B -> -. A = 0H ) ) $=
    ( cch wcel c0h wceq wss ch0le sseq1 syl5ibrcom con3d ) BCDZAEFZABGZLNMEBGBH
    AEBIJK $.

  $( The zero subspace is a proper subset of nonzero Hilbert lattice elements.
     (Contributed by NM, 9-Jun-2004.)  (New usage is discouraged.) $)
  ch0pss $p |- ( A e. CH -> ( 0H C. A <-> A =/= 0H ) ) $=
    ( cch wcel c0h wne wss wpss necom ch0le biantrurd syl5bbr df-pss syl6rbbr
    wa ) ABCZADEZDAFZDAEZNZDAGPROSDAHOQRAIJKDALM $.

  $( The intersection of orthogonal subspaces is the zero subspace.
     (Contributed by NM, 24-Jun-2004.)  (New usage is discouraged.) $)
  orthin $p |- ( ( A e. SH /\ B e. SH ) ->
               ( A C_ ( _|_ ` B ) -> ( A i^i B ) = 0H ) ) $=
    ( csh wcel wa cort cfv wss cin c0h wceq wi ssrin incom syl6sseq ocin sseq2d
    syl5ib adantl shincl sh0le syl jctird eqss syl6ibr ) ACDZBCDZEZABFGZHZABIZJ
    HZJUKHZEUKJKUHUJULUMUGUJULLUFUJUKBUIIZHUGULUJUKUIBIUNAUIBMUIBNOUGUNJUKBPQRS
    UHUKCDUMABTUKUAUBUCUKJUDUE $.

  $( The lattice join of a subset with its orthocomplement is the whole space.
     (Contributed by Mario Carneiro, 15-May-2014.)
     (New usage is discouraged.) $)
  ssjo $p |- ( A C_ ~H -> ( A vH ( _|_ ` A ) ) = ~H ) $=
    ( chil wss cort cfv chj co cun wceq ocss sshjval mpdan c0h cin wi occon mpi
    csh wcel ocsh ssun1 ancli unss sylib ssun2 syl2anc ssind ocin sseqtrd sh0le
    wa syl 3syl eqssd fveq2d choc0 syl6eq eqtrd ) ABCZAADEZFGZAUTHZDEZDEZBUSUTB
    CZVAVDIAJZAUTKLUSVDMDEBUSVCMDUSVCMUSVCUTUTDEZNZMUSVCUTVGUSAVBCZVCUTCZAUTUAU
    SVBBCZVIVJOUSUSVEUKVKUSVEVFUBAUTBUCUDZAVBPLQUSUTVBCZVCVGCZUTAUEUSVEVKVMVNOV
    FVLUTVBPUFQUGUSUTRSVHMIATUTUHULUIUSVKVCRSMVCCVLVBTVCUJUMUNUOUPUQUR $.

  ${
    $d x A $.
    shne0.1 $e |- A e. SH $.
    $( A nonzero subspace has a nonzero vector.  (Contributed by NM,
       25-Feb-2006.)  (New usage is discouraged.) $)
    shne0i $p |- ( A =/= 0H <-> E. x e. A x =/= 0h ) $=
      ( c0h wne wceq wn cv wcel wrex c0v df-ne wa wex wss df-rex nss csh shle0
      wb ax-mp notbii 3bitr2ri elch0 necon3bbii rexbii 3bitri ) BDEBDFZGZAHZDIZ
      GZABJZUJKEZABJBDLUMUJBIULMANBDOZGUIULABPABDQUOUHBRIUOUHTCBSUAUBUCULUNABUK
      UJKUJUDUEUFUG $.

    $( Hilbert subspace sum with the zero subspace.  (Contributed by NM,
       14-Jan-2005.)  (New usage is discouraged.) $)
    shs0i $p |- ( A +H 0H ) = A $=
      ( c0h cph co cun cspn cfv h0elsh shsval3i wss wceq csh wcel sh0le ssequn2
      ax-mp mpbi fveq2i spanid 3eqtri ) ACDEACFZGHAGHZAACBIJUBAGCAKZUBALAMNZUDB
      AOQCAPRSUEUCALBATQUA $.

    ${
      shs00.2 $e |- B e. SH $.
      $( Two subspaces are zero iff their join is zero.  (Contributed by NM,
         7-Aug-2004.)  (New usage is discouraged.) $)
      shs00i $p |- ( ( A = 0H /\ B = 0H ) <-> ( A +H B ) = 0H ) $=
        ( c0h wceq wa cph co oveq12 h0elsh wss sseq2 mpbii csh wcel shle0 ax-mp
        wb sylib shs0i syl6eq shsub1i shsub2i jca impbii ) AEFZBEFZGZABHIZEFZUI
        UJEEHIEAEBEHJEKUAUBUKUGUHUKAELZUGUKAUJLULABCDUCUJEAMNAOPULUGSCAQRTUKBEL
        ZUHUKBUJLUMBADCUDUJEBMNBOPUMUHSDBQRTUEUF $.
    $}
  $}

  ${
    $d x y A $.
    ch0le.1 $e |- A e. CH $.
    $( The closed subspace zero is the smallest member of ` CH ` .
       (Contributed by NM, 15-Oct-1999.)  (New usage is discouraged.) $)
    ch0lei $p |- 0H C_ A $=
      ( cch wcel c0h wss ch0le ax-mp ) ACDEAFBAGH $.

    $( No Hilbert closed subspace is smaller than zero.  (Contributed by NM,
       7-Apr-2001.)  (New usage is discouraged.) $)
    chle0i $p |- ( A C_ 0H <-> A = 0H ) $=
      ( cch wcel c0h wss wceq wb chle0 ax-mp ) ACDAEFAEGHBAIJ $.

    $( A nonzero closed subspace has a nonzero vector.  (Contributed by NM,
       25-Feb-2006.)  (New usage is discouraged.) $)
    chne0i $p |- ( A =/= 0H <-> E. x e. A x =/= 0h ) $=
      ( chshii shne0i ) ABBCDE $.

    $( Intersection of a closed subspace and its orthocomplement.  Part of
       Proposition 1 of [Kalmbach] p. 65.  (Contributed by NM, 11-Oct-1999.)
       (New usage is discouraged.) $)
    chocini $p |- ( A i^i ( _|_ ` A ) ) = 0H $=
      ( csh wcel cort cfv cin c0h wceq chshii ocin ax-mp ) ACDAAEFGHIABJAKL $.

    $( Join with lattice zero in ` CH ` .  (Contributed by NM, 15-Oct-1999.)
       (New usage is discouraged.) $)
    chj0i $p |- ( A vH 0H ) = A $=
      ( c0h chj cun cort cfv h0elch chjvali wss wceq ch0lei ssequn2 mpbi fveq2i
      co pjococi 3eqtri ) ACDPACEZFGZFGAFGZFGAACBHITUAFSAFCAJSAKABLCAMNOOABQR
      $.

    $( Meet with lattice one in ` CH ` .  (Contributed by NM, 24-Oct-1999.)
       (New usage is discouraged.) $)
    chm1i $p |- ( A i^i ~H ) = A $=
      ( chil wss cin wceq chssii df-ss mpbi ) ACDACEAFABGACHI $.

    ${
      $d x y B $.  $d x y C $.
      chjcl.2 $e |- B e. CH $.
      $( Closure of ` CH ` join.  (Contributed by NM, 29-Jul-1999.)
         (New usage is discouraged.) $)
      chjcli $p |- ( A vH B ) e. CH $=
        ( chshii shjcli ) ABACEBDEF $.

      $( Subspace sum is smaller than subspace join.  Remark in [Kalmbach]
         p. 65.  (Contributed by NM, 17-Oct-1999.)
         (New usage is discouraged.) $)
      chsleji $p |- ( A +H B ) C_ ( A vH B ) $=
        ( chshii shsleji ) ABACEBDEF $.

      $( Membership in subspace sum.  (Contributed by NM, 19-Oct-1999.)
         (New usage is discouraged.) $)
      chseli $p |- ( C e. ( A +H B )
           <-> E. x e. A E. y e. B C = ( x +h y ) ) $=
        ( chshii shseli ) ABCDECFHDGHI $.

      $( Closure of Hilbert lattice intersection.  (Contributed by NM,
         15-Oct-1999.)  (New usage is discouraged.) $)
      chincli $p |- ( A i^i B ) e. CH $=
        ( cpr cint cin cch elexi intpr wss c0 wne wcel wa pm3.2i prss mpbi prnz
        chintcli eqeltrri ) ABEZFABGHABAHCIZBHDIZJUBUBHKZUBLMAHNZBHNZOUEUFUGCDP
        ABHUCUDQRABUCSPTUA $.

      $( Hilbert lattice contraposition law.  (Contributed by NM, 15-Oct-1999.)
         (New usage is discouraged.) $)
      chsscon3i $p |- ( A C_ B <-> ( _|_ ` B ) C_ ( _|_ ` A ) ) $=
        ( wss cort cfv chil chssii occon mp2an choccli pjococi 3sstr3g impbii
        wi ) ABEZBFGZAFGZEZAHEBHEQTPACIBDIABJKTSFGZRFGZABRHESHETUAUBEPRBDLISACL
        IRSJKACMBDMNO $.

      $( Hilbert lattice contraposition law.  (Contributed by NM, 15-Oct-1999.)
         (New usage is discouraged.) $)
      chsscon1i $p |- ( ( _|_ ` A ) C_ B <-> ( _|_ ` B ) C_ A ) $=
        ( cort cfv wss choccli chsscon3i pjococi sseq2i bitri ) AEFZBGBEFZMEFZG
        NAGMBACHDIOANACJKL $.

      $( Hilbert lattice contraposition law.  (Contributed by NM, 15-Oct-1999.)
         (New usage is discouraged.) $)
      chsscon2i $p |- ( A C_ ( _|_ ` B ) <-> B C_ ( _|_ ` A ) ) $=
        ( chil wss cort cfv wb chssii occon3 mp2an ) AEFBEFABGHFBAGHFIACJBDJABK
        L $.

      $( Hilbert lattice contraposition law.  (Contributed by NM, 24-Jun-2004.)
         (New usage is discouraged.) $)
      chcon2i $p |- ( A = ( _|_ ` B ) <-> B = ( _|_ ` A ) ) $=
        ( cort cfv wss wa wceq chsscon2i chsscon1i anbi12i eqss 3bitr4i ) ABEFZ
        GZOAGZHBAEFZGZRBGZHAOIBRIPSQTABCDJBADCKLAOMBRMN $.

      $( Hilbert lattice contraposition law.  (Contributed by NM, 15-Jun-2006.)
         (New usage is discouraged.) $)
      chcon1i $p |- ( ( _|_ ` A ) = B <-> ( _|_ ` B ) = A ) $=
        ( cort cfv wceq chcon2i eqcom 3bitr4i ) BAEFZGABEFZGKBGLAGBADCHKBILAIJ
        $.

      $( Hilbert lattice contraposition law.  (Contributed by NM, 24-Jun-2004.)
         (New usage is discouraged.) $)
      chcon3i $p |- ( A = B <-> ( _|_ ` B ) = ( _|_ ` A ) ) $=
        ( wss wa cort cfv wceq chsscon3i anbi12i eqss 3bitr4i ) ABEZBAEZFBGHZAG
        HZEZQPEZFABIPQINROSABCDJBADCJKABLPQLM $.

      $( Union is smaller than ` CH ` join.  (Contributed by NM, 15-Oct-1999.)
         (New usage is discouraged.) $)
      chunssji $p |- ( A u. B ) C_ ( A vH B ) $=
        ( chshii shunssji ) ABACEBDEF $.

      $( Commutative law for join in ` CH ` .  (Contributed by NM,
         14-Oct-1999.)  (New usage is discouraged.) $)
      chjcomi $p |- ( A vH B ) = ( B vH A ) $=
        ( chshii shjcomi ) ABACEBDEF $.

      $( ` CH ` join is an upper bound of two elements.  (Contributed by NM,
         15-Oct-1999.)  (New usage is discouraged.) $)
      chub1i $p |- A C_ ( A vH B ) $=
        ( chshii shub1i ) ABACEBDEF $.

      $( ` CH ` join is an upper bound of two elements.  (Contributed by NM,
         5-Nov-2000.)  (New usage is discouraged.) $)
      chub2i $p |- A C_ ( B vH A ) $=
        ( chj co chub1i chjcomi sseqtri ) AABEFBAEFABCDGABCDHI $.

      ${
        chlub.1 $e |- C e. CH $.
        $( Hilbert lattice join is the least upper bound of two elements.
           (Contributed by NM, 11-Jun-2004.)  (New usage is discouraged.) $)
        chlubi $p |- ( ( A C_ C /\ B C_ C ) <-> ( A vH B ) C_ C ) $=
          ( chshii shlubi ) ABCADGBEGFH $.

        $( Hilbert lattice join is the least upper bound of two elements (one
           direction of ~ chlubi ).  (Contributed by NM, 15-Oct-1999.)
           (New usage is discouraged.) $)
        chlubii $p |- ( ( A C_ C /\ B C_ C ) -> ( A vH B ) C_ C ) $=
          ( wss wa chj co chlubi biimpi ) ACGBCGHABIJCGABCDEFKL $.

        $( Add join to both sides of a Hilbert lattice ordering.  (Contributed
           by NM, 19-Oct-1999.)  (New usage is discouraged.) $)
        chlej1i $p |- ( A C_ B -> ( A vH C ) C_ ( B vH C ) ) $=
          ( chshii shlej1i ) ABCADGBEGCFGH $.

        $( Add join to both sides of a Hilbert lattice ordering.  (Contributed
           by NM, 19-Oct-1999.)  (New usage is discouraged.) $)
        chlej2i $p |- ( A C_ B -> ( C vH A ) C_ ( C vH B ) ) $=
          ( chshii shlej2i ) ABCADGBEGCFGH $.

        ${
          chlej12.4 $e |- D e. CH $.
          $( Add join to both sides of a Hilbert lattice ordering.
             (Contributed by NM, 19-Oct-1999.)  (New usage is discouraged.) $)
          chlej12i $p |- ( ( A C_ B /\ C C_ D ) ->
                       ( A vH C ) C_ ( B vH D ) ) $=
            ( wss chj co chlej1i chlej2i sylan9ss ) ABICDIACJKBCJKBDJKABCEFGLCD
            BGHFMN $.
        $}
      $}

      $( Hilbert lattice ordering in terms of join.  (Contributed by NM,
         15-Oct-1999.)  (New usage is discouraged.) $)
      chlejb1i $p |- ( A C_ B <-> ( A vH B ) = B ) $=
        ( wss chj co wceq wa ssid chlubii mpan2 chub2i jctir eqss sylibr chub1i
        eqimss syl5ss impbii ) ABEZABFGZBHZUAUBBEZBUBEZIUCUAUDUEUABBEUDBJABBCDD
        KLBADCMNUBBOPUCAUBBABCDQUBBRST $.

      $( De Morgan's law for meet in a Hilbert lattice.  (Contributed by NM,
         21-Jun-2004.)  (New usage is discouraged.) $)
      chdmm1i $p |- ( _|_ ` ( A i^i B ) ) = ( ( _|_ ` A ) vH ( _|_ ` B ) ) $=
        ( cin cort cfv chj co choccli chub1i chjcli chsscon1i mpbi chub2i ssini
        wss chincli inss1 chsscon3i inss2 chlubii mp2an eqssi ) ABEZFGZAFGZBFGZ
        HIZUIFGZUEQUFUIQUJABUGUIQUJAQUGUHACJZBDJZKAUICUGUHUKULLZMNUHUIQUJBQUHUG
        ULUKOBUIDUMMNPUIUEUMABCDRZMNUGUFQZUHUFQZUIUFQUEAQUOABSUEAUNCTNUEBQUPABU
        AUEBUNDTNUGUHUFUKULUEUNJUBUCUD $.

      $( De Morgan's law for meet in a Hilbert lattice.  (Contributed by NM,
         21-Jun-2004.)  (New usage is discouraged.) $)
      chdmm2i $p |- ( _|_ ` ( ( _|_ ` A ) i^i B ) ) = ( A vH ( _|_ ` B ) ) $=
        ( cort cfv cin chj co choccli chdmm1i pjococi oveq1i eqtri ) AEFZBGEFOE
        FZBEFZHIAQHIOBACJDKPAQHACLMN $.

      $( De Morgan's law for meet in a Hilbert lattice.  (Contributed by NM,
         21-Jun-2004.)  (New usage is discouraged.) $)
      chdmm3i $p |- ( _|_ ` ( A i^i ( _|_ ` B ) ) ) = ( ( _|_ ` A ) vH B ) $=
        ( cort cfv cin chj co choccli chdmm1i pjococi oveq2i eqtri ) ABEFZGEFAE
        FZOEFZHIPBHIAOCBDJKQBPHBDLMN $.

      $( De Morgan's law for meet in a Hilbert lattice.  (Contributed by NM,
         21-Jun-2004.)  (New usage is discouraged.) $)
      chdmm4i $p |- ( _|_ ` ( ( _|_ ` A ) i^i ( _|_ ` B ) ) ) = ( A vH B ) $=
        ( cort cfv cin chj co choccli chdmm2i pjococi oveq2i eqtri ) AEFBEFZGEF
        AOEFZHIABHIAOCBDJKPBAHBDLMN $.

      $( De Morgan's law for join in a Hilbert lattice.  (Contributed by NM,
         21-Jun-2004.)  (New usage is discouraged.) $)
      chdmj1i $p |- ( _|_ ` ( A vH B ) ) = ( ( _|_ ` A ) i^i ( _|_ ` B ) ) $=
        ( cort cfv cin chj co chdmm4i fveq2i choccli chincli pjococi eqtr3i ) A
        EFZBEFZGZEFZEFABHIZEFRSTEABCDJKRPQACLBDLMNO $.

      $( De Morgan's law for join in a Hilbert lattice.  (Contributed by NM,
         21-Jun-2004.)  (New usage is discouraged.) $)
      chdmj2i $p |- ( _|_ ` ( ( _|_ ` A ) vH B ) ) = ( A i^i ( _|_ ` B ) ) $=
        ( cort cfv chj co cin choccli chdmj1i pjococi ineq1i eqtri ) AEFZBGHEFO
        EFZBEFZIAQIOBACJDKPAQACLMN $.

      $( De Morgan's law for join in a Hilbert lattice.  (Contributed by NM,
         21-Jun-2004.)  (New usage is discouraged.) $)
      chdmj3i $p |- ( _|_ ` ( A vH ( _|_ ` B ) ) ) = ( ( _|_ ` A ) i^i B ) $=
        ( cort cfv chj co cin choccli chdmj1i pjococi ineq2i eqtri ) ABEFZGHEFA
        EFZOEFZIPBIAOCBDJKQBPBDLMN $.

      $( De Morgan's law for join in a Hilbert lattice.  (Contributed by NM,
         21-Jun-2004.)  (New usage is discouraged.) $)
      chdmj4i $p |- ( _|_ ` ( ( _|_ ` A ) vH ( _|_ ` B ) ) ) = ( A i^i B ) $=
        ( cort cfv chj co cin choccli chdmj2i pjococi ineq2i eqtri ) AEFBEFZGHE
        FAOEFZIABIAOCBDJKPBABDLMN $.

      $( Equivalent expressions for "not less than" in the Hilbert lattice.
         (Contributed by NM, 5-Jun-2004.)  (New usage is discouraged.) $)
      chnlei $p |- ( -. B C_ A <-> A C. ( A vH B ) ) $=
        ( chj co wceq wn wss wpss chub1i biantrur chlejb1i eqcom chjcomi eqeq2i
        wa 3bitri notbii dfpss2 3bitr4i ) AABEFZGZHZAUBIZUDQBAIZHAUBJUEUDABCDKL
        UFUCUFBAEFZAGAUGGUCBADCMUGANUGUBABADCOPRSAUBTUA $.

      ${
        chjass.3 $e |- C e. CH $.
        $( Associative law for Hilbert lattice join.  From definition of
           lattice in [Kalmbach] p. 14.  (Contributed by NM, 10-Jun-2004.)
           (New usage is discouraged.) $)
        chjassi $p |- ( ( A vH B ) vH C ) = ( A vH ( B vH C ) ) $=
          ( chj cort cfv cin inass chdmj1i ineq1i ineq2i 3eqtr4i fveq2i chdmm4i
          co chjcli 3eqtr3i ) ABGRZHIZCHIZJZHIAHIZBCGRZHIZJZHIUACGRAUFGRUDUHHUE
          BHIZJZUCJUEUIUCJZJUDUHUEUIUCKUBUJUCABDELMUGUKUEBCEFLNOPUACABDESFQAUFD
          BCEFSQT $.
      $}

      $( Two Hilbert lattice elements are zero iff their join is zero.
         (Contributed by NM, 7-Aug-2004.)  (New usage is discouraged.) $)
      chj00i $p |- ( ( A = 0H /\ B = 0H ) <-> ( A vH B ) = 0H ) $=
        ( c0h wceq wa chj co oveq12 h0elch chj0i syl6eq wss chub1i sseq2 chle0i
        mpbii sylib chub2i jca impbii ) AEFZBEFZGZABHIZEFZUEUFEEHIEAEBEHJEKLMUG
        UCUDUGAENZUCUGAUFNUHABCDOUFEAPRACQSUGBENZUDUGBUFNUIBADCTUFEBPRBDQSUAUB
        $.
    $}

    $( The join of a closed subspace and its orthocomplement.  (Contributed by
       NM, 24-Oct-1999.)  (New usage is discouraged.) $)
    chjoi $p |- ( A vH ( _|_ ` A ) ) = ~H $=
      ( chil wss cort cfv chj co wceq chssii ssjo ax-mp ) ACDAAEFGHCIABJAKL $.

    $( Join with Hilbert lattice unit.  (Contributed by NM, 6-Aug-2004.)
       (New usage is discouraged.) $)
    chj1i $p |- ( A vH ~H ) = ~H $=
      ( chil chj co helch chjcli chssii chub2i eqssi ) ACDEZCKACBFGHCAFBIJ $.

    $( Meet with Hilbert lattice zero.  (Contributed by NM, 6-Aug-2004.)
       (New usage is discouraged.) $)
    chm0i $p |- ( A i^i 0H ) = 0H $=
      ( c0h cin inss2 ch0lei ssid ssini eqssi ) ACDCACECACABFCGHI $.
  $}

  $( Meet with Hilbert lattice zero.  (Contributed by NM, 14-Jun-2006.)
     (New usage is discouraged.) $)
  chm0 $p |- ( A e. CH -> ( A i^i 0H ) = 0H ) $=
    ( cch wcel c0h cin wceq cif ineq1 eqeq1d h0elch elimel chm0i dedth ) ABCZAD
    EZDFNADGZDEZDFADAPFOQDAPDHIPADBJKLM $.

  ${
    shjshs.1 $e |- A e. SH $.
    shjshs.2 $e |- B e. SH $.
    $( Hilbert lattice join equals the double orthocomplement of subspace sum.
       (Contributed by NM, 27-Nov-2004.)  (New usage is discouraged.) $)
    shjshsi $p |- ( A vH B ) = ( _|_ ` ( _|_ ` ( A +H B ) ) ) $=
      ( chj cph cort cfv cun csh wcel wceq shjval mp2an wss shunssi chil shssii
      co ax-mp unssi shscli occon2i eqsstri shsleji wi shjcli chssii occon occl
      cch chsscon1i mpbi eqssi ) ABESZABFSZGHZGHZUOABIZGHGHZURAJKBJKUOUTLCDABMN
      USUPOUTUROABCDPUSUPABQACRBDRUAUPABCDUBRZUCTUDUOGHUQOZURUOOUPUOOZVBABCDUEU
      PQOZUOQOVCVBUFVAUOABCDUGZUHUPUOUINTUOUQVEVDUQUKKVAUPUJTULUMUN $.

    $( A closed subspace sum equals Hilbert lattice join.  Part of Lemma 31.1.5
       of [MaedaMaeda] p. 136.  (Contributed by NM, 30-Nov-2004.)
       (New usage is discouraged.) $)
    shjshseli $p |- ( ( A +H B ) e. CH <-> ( A +H B ) = ( A vH B ) ) $=
      ( cph cch wcel chj wceq cort cfv shjshsi ococ syl5req shjcli eleq1 mpbiri
      co impbii ) ABERZFGZTABHRZIZUAUBTJKJKTABCDLTMNUCUAUBFGABCDOTUBFPQS $.
  $}

  ${
    $d x A $.
    $( A nonzero closed subspace has a nonzero vector.  (Contributed by NM,
       25-Feb-2006.)  (New usage is discouraged.) $)
    chne0 $p |- ( A e. CH -> ( A =/= 0H <-> E. x e. A x =/= 0h ) ) $=
      ( cch wcel c0h wne cv c0v wrex cif wceq neeq1 rexeq bibi12d h0elch elimel
      wb chne0i dedth ) BCDZBEFZAGHFZABIZQTBEJZEFZUBAUDIZQBEBUDKUAUEUCUFBUDELUB
      ABUDMNAUDBECOPRS $.
  $}

  $( Intersection of a closed subspace and its orthocomplement.  Part of
     Proposition 1 of [Kalmbach] p. 65.  (Contributed by NM, 13-Jun-2006.)
     (New usage is discouraged.) $)
  chocin $p |- ( A e. CH -> ( A i^i ( _|_ ` A ) ) = 0H ) $=
    ( cch wcel cort cfv cin c0h wceq cif id fveq2 ineq12d eqeq1d h0elch chocini
    elimel dedth ) ABCZAADEZFZGHRAGIZUADEZFZGHAGAUAHZTUCGUDAUASUBUDJAUADKLMUAAG
    BNPOQ $.

  $( A closed subspace less than its orthocomplement is zero.  (Contributed by
     NM, 14-Jun-2006.)  (New usage is discouraged.) $)
  chssoc $p |- ( A e. CH -> ( A C_ ( _|_ ` A ) <-> A = 0H ) ) $=
    ( cch wcel cort cfv wss c0h inidm sslin syl5eqssr chocin sseq2d chle0 bitrd
    wceq cin syl5ib wa simpr choccl ch0le syl adantr eqsstrd ex impbid ) ABCZAA
    DEZFZAGOZUIAAUHPZFZUGUJUIAAAPUKAHAUHAIJUGULAGFUJUGUKGAAKLAMNQUGUJUIUGUJRAGU
    HUGUJSUGGUHFZUJUGUHBCUMATUHUAUBUCUDUEUF $.

  $( Join with Hilbert lattice zero.  (Contributed by NM, 22-Jun-2004.)
     (New usage is discouraged.) $)
  chj0 $p |- ( A e. CH -> ( A vH 0H ) = A ) $=
    ( cch wcel c0h chj co wceq cif oveq1 id eqeq12d h0elch elimel chj0i dedth )
    ABCZADEFZAGPADHZDEFZRGADARGZQSARARDEITJKRADBLMNO $.

  $( Subspace sum is smaller than subspace join.  Remark in [Kalmbach] p. 65.
     (Contributed by NM, 12-Jul-2004.)  (New usage is discouraged.) $)
  chslej $p |- ( ( A e. CH /\ B e. CH ) -> ( A +H B ) C_ ( A vH B ) ) $=
    ( cch wcel csh cph co chj wss chsh shslej syl2an ) ACDAEDBEDABFGABHGIBCDAJB
    JABKL $.

  $( Closure of Hilbert lattice intersection.  (Contributed by NM,
     15-Jun-2004.)  (New usage is discouraged.) $)
  chincl $p |- ( ( A e. CH /\ B e. CH ) -> ( A i^i B ) e. CH ) $=
    ( cch wcel cin chil cif wceq ineq1 eleq1d ineq2 ifchhv chincli dedth2h ) AC
    DZBCDZABEZCDOAFGZBEZCDRPBFGZEZCDABFFARHQSCARBIJBTHSUACBTRKJRTALBLMN $.

  $( Hilbert lattice contraposition law.  (Contributed by NM, 12-Jun-2004.)
     (New usage is discouraged.) $)
  chsscon3 $p |- ( ( A e. CH /\ B e. CH ) ->
                  ( A C_ B <-> ( _|_ ` B ) C_ ( _|_ ` A ) ) ) $=
    ( cch wcel wss cort cfv wb chil cif sseq1 fveq2 sseq2d bibi12d sseq2 sseq1d
    wceq ifchhv chsscon3i dedth2h ) ACDZBCDZABEZBFGZAFGZEZHUAAIJZBEZUDUGFGZEZHU
    GUBBIJZEZUKFGZUIEZHABIIAUGQZUCUHUFUJAUGBKUOUEUIUDAUGFLMNBUKQZUHULUJUNBUKUGO
    UPUDUMUIBUKFLPNUGUKARBRST $.

  $( Hilbert lattice contraposition law.  (Contributed by NM, 21-Jun-2004.)
     (New usage is discouraged.) $)
  chsscon1 $p |- ( ( A e. CH /\ B e. CH ) ->
                  ( ( _|_ ` A ) C_ B <-> ( _|_ ` B ) C_ A ) ) $=
    ( cch wcel wa cort cfv wss wb choccl chsscon3 sylan wceq ococ adantr sseq2d
    bitrd ) ACDZBCDZEZAFGZBHZBFGZUAFGZHZUCAHRUACDSUBUEIAJUABKLTUDAUCRUDAMSANOPQ
    $.

  $( Hilbert lattice contraposition law.  (Contributed by NM, 21-Jun-2004.)
     (New usage is discouraged.) $)
  chsscon2 $p |- ( ( A e. CH /\ B e. CH ) ->
                  ( A C_ ( _|_ ` B ) <-> B C_ ( _|_ ` A ) ) ) $=
    ( cch wcel chil wss cort cfv wb chss occon3 syl2an ) ACDAEFBEFABGHFBAGHFIBC
    DAJBJABKL $.

  $( Hilbert lattice contraposition law for strict ordering.  (Contributed by
     NM, 12-Jun-2004.)  (New usage is discouraged.) $)
  chpsscon3 $p |- ( ( A e. CH /\ B e. CH ) ->
                  ( A C. B <-> ( _|_ ` B ) C. ( _|_ ` A ) ) ) $=
    ( cch wcel wa wss wn cort cfv wpss chsscon3 wb ancoms notbid anbi12d dfpss3
    3bitr4g ) ACDZBCDZEZABFZBAFZGZEBHIZAHIZFZUEUDFZGZEABJUDUEJTUAUFUCUHABKTUBUG
    SRUBUGLBAKMNOABPUDUEPQ $.

  $( Hilbert lattice contraposition law for strict ordering.  (Contributed by
     NM, 12-Jun-2004.)  (New usage is discouraged.) $)
  chpsscon1 $p |- ( ( A e. CH /\ B e. CH ) ->
                  ( ( _|_ ` A ) C. B <-> ( _|_ ` B ) C. A ) ) $=
    ( cch wcel wa cort cfv wpss choccl chpsscon3 sylan wceq ococ adantr psseq2d
    wb bitrd ) ACDZBCDZEZAFGZBHZBFGZUAFGZHZUCAHRUACDSUBUEPAIUABJKTUDAUCRUDALSAM
    NOQ $.

  $( Hilbert lattice contraposition law for strict ordering.  (Contributed by
     NM, 12-Jun-2004.)  (New usage is discouraged.) $)
  chpsscon2 $p |- ( ( A e. CH /\ B e. CH ) ->
                  ( A C. ( _|_ ` B ) <-> B C. ( _|_ ` A ) ) ) $=
    ( cch wcel wa cort wpss wb choccl chpsscon3 sylan2 wceq ococ adantl psseq1d
    cfv bitrd ) ACDZBCDZEZABFPZGZUAFPZAFPZGZBUDGSRUACDUBUEHBIAUAJKTUCBUDSUCBLRB
    MNOQ $.

  $( Commutative law for Hilbert lattice join.  (Contributed by NM,
     12-Jun-2004.)  (New usage is discouraged.) $)
  chjcom $p |- ( ( A e. CH /\ B e. CH ) -> ( A vH B ) = ( B vH A ) ) $=
    ( cch wcel csh chj co wceq chsh shjcom syl2an ) ACDAEDBEDABFGBAFGHBCDAIBIAB
    JK $.

  $( Hilbert lattice join is greater than or equal to its first argument.
     (Contributed by NM, 12-Jun-2004.)  (New usage is discouraged.) $)
  chub1 $p |- ( ( A e. CH /\ B e. CH ) -> A C_ ( A vH B ) ) $=
    ( cch wcel csh chj co wss chsh shub1 syl2an ) ACDAEDBEDAABFGHBCDAIBIABJK $.

  $( Hilbert lattice join is greater than or equal to its second argument.
     (Contributed by NM, 12-Jun-2004.)  (New usage is discouraged.) $)
  chub2 $p |- ( ( A e. CH /\ B e. CH ) -> A C_ ( B vH A ) ) $=
    ( cch wcel wa chj co chub1 chjcom sseqtrd ) ACDBCDEAABFGBAFGABHABIJ $.

  $( Hilbert lattice join is the least upper bound of two elements.
     (Contributed by NM, 12-Jun-2004.)  (New usage is discouraged.) $)
  chlub $p |- ( ( A e. CH /\ B e. CH /\ C e. CH ) ->
               ( ( A C_ C /\ B C_ C ) <-> ( A vH B ) C_ C ) ) $=
    ( cch wcel csh wss wa chj co wb chsh shlub syl3an2 syl3an1 ) ADEAFEZBDEZCDE
    ZACGBCGHABIJCGKZALQPBFERSBLABCMNO $.

  $( Add join to both sides of Hilbert lattice ordering.  (Contributed by NM,
     22-Jun-2004.)  (New usage is discouraged.) $)
  chlej1 $p |- ( ( ( A e. CH /\ B e. CH /\ C e. CH ) /\
                A C_ B ) -> ( A vH C ) C_ ( B vH C ) ) $=
    ( cch wcel csh wss chj co chsh shlej1 syl3anl ) ADEAFEBDEBFECDECFEABGACHIBC
    HIGAJBJCJABCKL $.

  $( Add join to both sides of Hilbert lattice ordering.  (Contributed by NM,
     22-Jun-2004.)  (New usage is discouraged.) $)
  chlej2 $p |- ( ( ( A e. CH /\ B e. CH /\ C e. CH ) /\
                A C_ B ) -> ( C vH A ) C_ ( C vH B ) ) $=
    ( cch wcel csh wss chj co chsh shlej2 syl3anl ) ADEAFEBDEBFECDECFEABGCAHICB
    HIGAJBJCJABCKL $.

  $( Hilbert lattice ordering in terms of join.  (Contributed by NM,
     30-Jun-2004.)  (New usage is discouraged.) $)
  chlejb1 $p |- ( ( A e. CH /\ B e. CH ) -> ( A C_ B <-> ( A vH B ) = B ) ) $=
    ( cch wcel wss chj co wceq wb c0h sseq1 oveq1 eqeq1d bibi12d sseq2 oveq2 id
    cif h0elch elimel eqeq12d chlejb1i dedth2h ) ACDZBCDZABEZABFGZBHZIUDAJRZBEZ
    UIBFGZBHZIUIUEBJRZEZUIUMFGZUMHZIABJJAUIHZUFUJUHULAUIBKUQUGUKBAUIBFLMNBUMHZU
    JUNULUPBUMUIOURUKUOBUMBUMUIFPURQUANUIUMAJCSTBJCSTUBUC $.

  $( Hilbert lattice ordering in terms of join.  (Contributed by NM,
     2-Jul-2004.)  (New usage is discouraged.) $)
  chlejb2 $p |- ( ( A e. CH /\ B e. CH ) -> ( A C_ B <-> ( B vH A ) = B ) ) $=
    ( cch wcel wa wss chj co wceq chlejb1 chjcom eqeq1d bitrd ) ACDBCDEZABFABGH
    ZBIBAGHZBIABJNOPBABKLM $.

  $( Equivalent expressions for "not less than" in the Hilbert lattice.
     (Contributed by NM, 9-Jun-2004.)  (New usage is discouraged.) $)
  chnle $p |- ( ( A e. CH /\ B e. CH ) ->
               ( -. B C_ A <-> A C. ( A vH B ) ) ) $=
    ( cch wcel wss wn chj co wpss wb c0h cif wceq sseq2 notbid id oveq1 bibi12d
    h0elch elimel psseq12d sseq1 oveq2 psseq2d chnlei dedth2h ) ACDZBCDZBAEZFZA
    ABGHZIZJBUGAKLZEZFZUMUMBGHZIZJUHBKLZUMEZFZUMUMURGHZIZJABKKAUMMZUJUOULUQVCUI
    UNAUMBNOVCAUMUKUPVCPAUMBGQUARBURMZUOUTUQVBVDUNUSBURUMUBOVDUPVAUMBURUMGUCUDR
    UMURAKCSTBKCSTUEUF $.

  $( The join of a closed subspace and its orthocomplement is all of Hilbert
     space.  (Contributed by NM, 31-Oct-2005.)  (New usage is discouraged.) $)
  chjo $p |- ( A e. CH -> ( A vH ( _|_ ` A ) ) = ~H ) $=
    ( cch wcel cort cfv chj co chil wceq cif id fveq2 eqeq1d ifchhv chjoi dedth
    oveq12d ) ABCZAADEZFGZHIRAHJZUADEZFGZHIAHAUAIZTUCHUDAUASUBFUDKAUADLQMUAANOP
    $.

  $( Hilbert lattice absorption law.  From definition of lattice in [Kalmbach]
     p. 14.  (Contributed by NM, 15-Jun-2004.)  (New usage is discouraged.) $)
  chabs1 $p |- ( ( A e. CH /\ B e. CH ) -> ( A vH ( A i^i B ) ) = A ) $=
    ( cch wcel wa cin chj co wss ssid inss1 pm3.2i wb simpl chlub syl3anc mpbii
    chincl chub1 syldan eqssd ) ACDZBCDZEZAABFZGHZAUDAAIZUEAIZEZUFAIZUGUHAJABKL
    UDUBUECDZUBUIUJMUBUCNZABRZULAUEAOPQUBUCUKAUFIUMAUESTUA $.

  $( Hilbert lattice absorption law.  From definition of lattice in [Kalmbach]
     p. 14.  (Contributed by NM, 16-Jun-2004.)  (New usage is discouraged.) $)
  chabs2 $p |- ( ( A e. CH /\ B e. CH ) -> ( A i^i ( A vH B ) ) = A ) $=
    ( cch wcel wa chj co cin wceq chub1 ssid jctil ssin sylib inss1 eqss sylibr
    wss ) ACDBCDEZAABFGZHZARZAUARZEUAAISUCUBSAARZATRZEUCSUEUDABJAKLAATMNATOLUAA
    PQ $.

  ${
    chabs.1 $e |- A e. CH $.
    chabs.2 $e |- B e. CH $.
    $( Hilbert lattice absorption law.  From definition of lattice in
       [Kalmbach] p. 14.  (Contributed by NM, 10-Jun-2004.)
       (New usage is discouraged.) $)
    chabs1i $p |- ( A vH ( A i^i B ) ) = A $=
      ( cch wcel cin chj co wceq chabs1 mp2an ) AEFBEFAABGHIAJCDABKL $.

    $( Hilbert lattice absorption law.  From definition of lattice in
       [Kalmbach] p. 14.  (Contributed by NM, 16-Jun-2004.)
       (New usage is discouraged.) $)
    chabs2i $p |- ( A i^i ( A vH B ) ) = A $=
      ( cch wcel chj co cin wceq chabs2 mp2an ) AEFBEFAABGHIAJCDABKL $.
  $}

  $( Idempotent law for Hilbert lattice join.  (Contributed by NM,
     26-Jun-2004.)  (New usage is discouraged.) $)
  chjidm $p |- ( A e. CH -> ( A vH A ) = A ) $=
    ( cch wcel chj co cin inidm oveq2i wceq chabs1 anidms syl5eqr ) ABCZAADEAAA
    FZDEZANAADAGHMOAIAAJKL $.

  ${
    chjidm.1 $e |- A e. CH $.
    $( Idempotent law for Hilbert lattice join.  (Contributed by NM,
       15-Jun-2004.)  (New usage is discouraged.) $)
    chjidmi $p |- ( A vH A ) = A $=
      ( cch wcel chj co wceq chjidm ax-mp ) ACDAAEFAGBAHI $.
  $}

  ${
    chj12.1 $e |- A e. CH $.
    chj12.2 $e |- B e. CH $.
    chj12.3 $e |- C e. CH $.
    $( A rearrangement of Hilbert lattice join.  (Contributed by NM,
       29-Apr-2006.)  (New usage is discouraged.) $)
    chj12i $p |- ( A vH ( B vH C ) ) = ( B vH ( A vH C ) ) $=
      ( chj co chjcomi oveq1i chjassi 3eqtr3i ) ABGHZCGHBAGHZCGHABCGHGHBACGHGHM
      NCGABDEIJABCDEFKBACEDFKL $.

    ${
      chj4.4 $e |- D e. CH $.
      $( Rearrangement of the join of 4 Hilbert lattice elements.  (Contributed
         by NM, 29-Apr-2006.)  (New usage is discouraged.) $)
      chj4i $p |- ( ( A vH B ) vH ( C vH D ) ) =
                 ( ( A vH C ) vH ( B vH D ) ) $=
        ( chj co chj12i oveq2i chjcli chjassi 3eqtr4i ) ABCDIJZIJZIJACBDIJZIJZI
        JABIJPIJACIJRIJQSAIBCDFGHKLABPEFCDGHMNACREGBDFHMNO $.
    $}

    $( Hilbert lattice join distributes over itself.  (Contributed by NM,
       29-Apr-2006.)  (New usage is discouraged.) $)
    chjjdiri $p |- ( ( A vH B ) vH C ) = ( ( A vH C ) vH ( B vH C ) ) $=
      ( chj co chjidmi oveq2i chj4i eqtr3i ) ABGHZCCGHZGHMCGHACGHBCGHGHNCMGCFIJ
      ABCCDEFFKL $.
  $}

  $( De Morgan's law for meet in a Hilbert lattice.  (Contributed by NM,
     21-Jun-2004.)  (New usage is discouraged.) $)
  chdmm1 $p |- ( ( A e. CH /\ B e. CH ) ->
                ( _|_ ` ( A i^i B ) ) = ( ( _|_ ` A ) vH ( _|_ ` B ) ) ) $=
    ( cch wcel cin cort cfv chj wceq chil cif ineq1 fveq2d fveq2 oveq1d eqeq12d
    co ineq2 oveq2d ifchhv chdmm1i dedth2h ) ACDZBCDZABEZFGZAFGZBFGZHQZIUCAJKZB
    EZFGZUJFGZUHHQZIUJUDBJKZEZFGZUMUOFGZHQZIABJJAUJIZUFULUIUNUTUEUKFAUJBLMUTUGU
    MUHHAUJFNOPBUOIZULUQUNUSVAUKUPFBUOUJRMVAUHURUMHBUOFNSPUJUOATBTUAUB $.

  $( De Morgan's law for meet in a Hilbert lattice.  (Contributed by NM,
     21-Jun-2004.)  (New usage is discouraged.) $)
  chdmm2 $p |- ( ( A e. CH /\ B e. CH ) ->
                ( _|_ ` ( ( _|_ ` A ) i^i B ) ) = ( A vH ( _|_ ` B ) ) ) $=
    ( cch wcel wa cort cfv cin chj wceq choccl chdmm1 sylan adantr oveq1d eqtrd
    co ococ ) ACDZBCDZEZAFGZBHFGZUBFGZBFGZIQZAUEIQSUBCDTUCUFJAKUBBLMUAUDAUEISUD
    AJTARNOP $.

  $( De Morgan's law for meet in a Hilbert lattice.  (Contributed by NM,
     21-Jun-2004.)  (New usage is discouraged.) $)
  chdmm3 $p |- ( ( A e. CH /\ B e. CH ) ->
                ( _|_ ` ( A i^i ( _|_ ` B ) ) ) = ( ( _|_ ` A ) vH B ) ) $=
    ( cch wcel wa cort cfv cin chj wceq choccl chdmm1 sylan2 ococ adantl oveq2d
    co eqtrd ) ACDZBCDZEZABFGZHFGZAFGZUBFGZIQZUDBIQTSUBCDUCUFJBKAUBLMUAUEBUDITU
    EBJSBNOPR $.

  $( De Morgan's law for meet in a Hilbert lattice.  (Contributed by NM,
     21-Jun-2004.)  (New usage is discouraged.) $)
  chdmm4 $p |- ( ( A e. CH /\ B e. CH ) ->
                ( _|_ ` ( ( _|_ ` A ) i^i ( _|_ ` B ) ) ) = ( A vH B ) ) $=
    ( cch wcel wa cort cfv cin chj wceq choccl chdmm2 sylan2 ococ adantl oveq2d
    co eqtrd ) ACDZBCDZEZAFGBFGZHFGZAUBFGZIQZABIQTSUBCDUCUEJBKAUBLMUAUDBAITUDBJ
    SBNOPR $.

  $( De Morgan's law for join in a Hilbert lattice.  (Contributed by NM,
     21-Jun-2004.)  (New usage is discouraged.) $)
  chdmj1 $p |- ( ( A e. CH /\ B e. CH ) ->
                ( _|_ ` ( A vH B ) ) = ( ( _|_ ` A ) i^i ( _|_ ` B ) ) ) $=
    ( cch wcel wa cort cfv cin chj chdmm4 fveq2d wceq choccl chincl syl2an ococ
    co syl eqtr3d ) ACDZBCDZEZAFGZBFGZHZFGZFGZABIQZFGUEUBUFUHFABJKUBUECDZUGUELT
    UCCDUDCDUIUAAMBMUCUDNOUEPRS $.

  $( De Morgan's law for join in a Hilbert lattice.  (Contributed by NM,
     21-Jun-2004.)  (New usage is discouraged.) $)
  chdmj2 $p |- ( ( A e. CH /\ B e. CH ) ->
                ( _|_ ` ( ( _|_ ` A ) vH B ) ) = ( A i^i ( _|_ ` B ) ) ) $=
    ( cch wcel wa cort cfv chj cin wceq choccl chdmj1 sylan ineq1d adantr eqtrd
    co ococ ) ACDZBCDZEAFGZBHQFGZUAFGZBFGZIZAUDIZSUACDTUBUEJAKUABLMSUEUFJTSUCAU
    DARNOP $.

  $( De Morgan's law for join in a Hilbert lattice.  (Contributed by NM,
     21-Jun-2004.)  (New usage is discouraged.) $)
  chdmj3 $p |- ( ( A e. CH /\ B e. CH ) ->
                ( _|_ ` ( A vH ( _|_ ` B ) ) ) = ( ( _|_ ` A ) i^i B ) ) $=
    ( cch wcel wa cort cfv chj cin wceq choccl chdmj1 sylan2 ococ adantl ineq2d
    co eqtrd ) ACDZBCDZEZABFGZHQFGZAFGZUBFGZIZUDBITSUBCDUCUFJBKAUBLMUAUEBUDTUEB
    JSBNOPR $.

  $( De Morgan's law for join in a Hilbert lattice.  (Contributed by NM,
     21-Jun-2004.)  (New usage is discouraged.) $)
  chdmj4 $p |- ( ( A e. CH /\ B e. CH ) ->
                ( _|_ ` ( ( _|_ ` A ) vH ( _|_ ` B ) ) ) = ( A i^i B ) ) $=
    ( cch wcel wa cort cfv chj cin wceq choccl chdmj2 sylan2 ococ adantl ineq2d
    co eqtrd ) ACDZBCDZEZAFGBFGZHQFGZAUBFGZIZABITSUBCDUCUEJBKAUBLMUAUDBATUDBJSB
    NOPR $.

  $( Associative law for Hilbert lattice join.  From definition of lattice in
     [Kalmbach] p. 14.  (Contributed by NM, 10-Jun-2004.)
     (New usage is discouraged.) $)
  chjass $p |- ( ( A e. CH /\ B e. CH /\ C e. CH ) ->
                ( ( A vH B ) vH C ) = ( A vH ( B vH C ) ) ) $=
    ( cch wcel chj co wceq cif oveq1 oveq1d eqeq12d oveq2 oveq2d ifchhv chjassi
    chil dedth3h ) ADEZBDEZCDEZABFGZCFGZABCFGZFGZHSAQIZBFGZCFGZUFUDFGZHUFTBQIZF
    GZCFGZUFUJCFGZFGZHUKUACQIZFGZUFUJUOFGZFGZHABCQQQAUFHZUCUHUEUIUSUBUGCFAUFBFJ
    KAUFUDFJLBUJHZUHULUIUNUTUGUKCFBUJUFFMKUTUDUMUFFBUJCFJNLCUOHZULUPUNURCUOUKFM
    VAUMUQUFFCUOUJFMNLUFUJUOAOBOCOPR $.

  $( A rearrangement of Hilbert lattice join.  (Contributed by NM,
     15-Jun-2006.)  (New usage is discouraged.) $)
  chj12 $p |- ( ( A e. CH /\ B e. CH /\ C e. CH ) ->
              ( A vH ( B vH C ) ) = ( B vH ( A vH C ) ) ) $=
    ( cch wcel w3a chj co wceq chjcom 3adant3 oveq1d chjass 3com12 3eqtr3d ) AD
    EZBDEZCDEZFZABGHZCGHBAGHZCGHZABCGHGHBACGHGHZSTUACGPQTUAIRABJKLABCMQPRUBUCIB
    ACMNO $.

  $( Rearrangement of the join of 4 Hilbert lattice elements.  (Contributed by
     NM, 15-Jun-2006.)  (New usage is discouraged.) $)
  chj4 $p |- ( ( ( A e. CH /\ B e. CH ) /\ ( C e. CH /\ D e. CH ) ) ->
              ( ( A vH B ) vH ( C vH D ) ) = ( ( A vH C ) vH ( B vH D ) ) ) $=
    ( cch wcel wa chj wceq chj12 3expb adantll oveq2d chjcl chjass 3expa sylan2
    co an4s 3eqtr4d ) AEFZBEFZGZCEFZDEFZGZGZABCDHRZHRZHRZACBDHRZHRZHRZABHRUHHRZ
    ACHRUKHRZUGUIULAHUBUFUIULIZUAUBUDUEUPBCDJKLMUFUCUHEFZUNUJIZCDNUAUBUQURABUHO
    PQUAUDUBUEUOUMIZUBUEGUAUDGUKEFZUSBDNUAUDUTUSACUKOPQST $.

  ${
    ledi.1 $e |- A e. CH $.
    ledi.2 $e |- B e. CH $.
    ledi.3 $e |- C e. CH $.
    $( An ortholattice is distributive in one ordering direction.  (Contributed
       by NM, 6-Aug-2004.)  (New usage is discouraged.) $)
    ledii $p |- ( ( A i^i B ) vH ( A i^i C ) ) C_ ( A i^i ( B vH C ) ) $=
      ( cin chj co wss inss1 chincli chlubii mp2an inss2 chlej12i ssini ) ABGZA
      CGZHIZABCHIZRAJSAJTAJABKACKRSAABDELZACDFLZDMNRBJSCJTUAJABOACORBSCUBEUCFPN
      Q $.

    $( An ortholattice is distributive in one ordering direction.  (Contributed
       by NM, 27-Apr-2006.)  (New usage is discouraged.) $)
    lediri $p |- ( ( A i^i C ) vH ( B i^i C ) ) C_ ( ( A vH B ) i^i C ) $=
      ( cin chj co ledii incom oveq12i 3sstr4i ) CAGZCBGZHICABHIZGACGZBCGZHIPCG
      CABFDEJQNROHACKBCKLPCKM $.

    $( An ortholattice is distributive in one ordering direction (join
       version).  (Contributed by NM, 27-Apr-2006.)
       (New usage is discouraged.) $)
    lejdii $p |- ( A vH ( B i^i C ) ) C_ ( ( A vH B ) i^i ( A vH C ) ) $=
      ( cin chj wss chub1i ssini inss1 chub2i sstri inss2 chincli chjcli chlubi
      co wa bicomi mpbir2an ) ABCGZHSABHSZACHSZGZIZAUFIZUCUFIZAUDUEABDEJACDFJKU
      CUDUEUCBUDBCLBAEDMNUCCUEBCOCAFDMNKUHUITUGAUCUFDBCEFPUDUEABDEQACDFQPRUAUB
      $.

    $( An ortholattice is distributive in one ordering direction (join
       version).  (Contributed by NM, 27-Apr-2006.)
       (New usage is discouraged.) $)
    lejdiri $p |- ( ( A i^i B ) vH C ) C_ ( ( A vH C ) i^i ( B vH C ) ) $=
      ( cin chj co lejdii chincli chjcomi ineq12i 3sstr4i ) CABGZHICAHIZCBHIZGO
      CHIACHIZBCHIZGCABFDEJOCABDEKFLRPSQACDFLBCEFLMN $.
  $}

  $( An ortholattice is distributive in one ordering direction.  (Contributed
     by NM, 14-Jun-2006.)  (New usage is discouraged.) $)
  ledi $p |- ( ( A e. CH /\ B e. CH /\ C e. CH ) ->
              ( ( A i^i B ) vH ( A i^i C ) ) C_ ( A i^i ( B vH C ) ) ) $=
    ( cch wcel cin chj co wss c0h cif ineq1 oveq12d sseq12d ineq2 oveq1d ineq2d
    wceq h0elch elimel oveq1 oveq2d oveq2 ledii dedth3h ) ADEZBDEZCDEZABFZACFZG
    HZABCGHZFZIUFAJKZBFZUNCFZGHZUNULFZIUNUGBJKZFZUPGHZUNUSCGHZFZIUTUNUHCJKZFZGH
    ZUNUSVDGHZFZIABCJJJAUNRZUKUQUMURVIUIUOUJUPGAUNBLAUNCLMAUNULLNBUSRZUQVAURVCV
    JUOUTUPGBUSUNOPVJULVBUNBUSCGUAQNCVDRZVAVFVCVHVKUPVEUTGCVDUNOUBVKVBVGUNCVDUS
    GUCQNUNUSVDAJDSTBJDSTCJDSTUDUE $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Span (cont.) and one-dimensional subspaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The span of the singleton of the zero vector is the zero subspace.
     (Contributed by NM, 14-Jan-2005.)  (New usage is discouraged.) $)
  spansn0 $p |- ( span ` { 0h } ) = 0H $=
    ( c0h cspn cfv c0v csn df-ch0 fveq2i wcel wceq h0elsh spanid ax-mp eqtr3i
    csh ) ABCZDEZBCAAPBFGANHOAIJAKLM $.

  $( The span of the empty set is the zero subspace.  Remark 11.6.e of
     [Schechter] p. 276.  (Contributed by NM, 3-Jun-2004.)
     (New usage is discouraged.) $)
  span0 $p |- ( span ` (/) ) = 0H $=
    ( cspn cfv c0h chil wss h0elsh shssii 0ss spanss mp2an csh wcel wceq spanid
    c0 ax-mp sseqtri spancl sh0le eqssi ) OABZCUACABZCCDEOCEUAUBECFGCHOCIJCKLUB
    CMFCNPQUAKLZCUAEODEUCDHORPUASPT $.

  ${
    $d x A $.  $d x B $.
    elspan.1 $e |- B e. _V $.
    $( Membership in the span of a subset of Hilbert space.  (Contributed by
       NM, 2-Jun-2004.)  (New usage is discouraged.) $)
    elspani $p |- ( A C_ ~H ->
                ( B e. ( span ` A ) <-> A. x e. SH ( A C_ x -> B e. x ) ) ) $=
      ( chil wss cspn cfv wcel cv csh crab cint wi wral spanval eleq2d elintrab
      syl6bb ) BEFZCBGHZICBAJZFZAKLMZIUCCUBINAKOTUAUDCABPQUCACKDRS $.
  $}

  ${
    spanun.1 $e |- A C_ ~H $.
    spanun.2 $e |- B C_ ~H $.
    $d x y z w A $.  $d x y z w B $.
    $( The span of a union is the subspace sum of spans.  (Contributed by NM,
       2-Jun-2004.)  (New usage is discouraged.) $)
    spanuni $p |- ( span ` ( A u. B ) ) = ( ( span ` A ) +H ( span ` B ) ) $=
      ( vx vz vw vy cspn cfv chil wss csh wcel ax-mp cv wa wel wi wral co mp2an
      cun spancl shscli shssii spanss2 unss12 shunssi sstri spanss wceq sseqtri
      cph spanid cva wex wrex shseli bitri wb vex elspani anbi12i r19.26 bitr4i
      r2ex r19.27v sylanb unss prth syl5bir shaddcl 3expib sylan9r eleq1 sylan9
      biimprd expl ralimia unssi sylibr syl exlimivv sylbi ssriv eqssi ) ABUCZI
      JZAIJZBIJZUNUAZWIWLIJZWLWLKLWHWLLWIWMLWLWJWKAKLZWJMNCAUDOZBKLZWKMNDBUDOZU
      EZUFWHWJWKUCZWLAWJLZBWKLZWHWSLWNWTCAUGOWPXADBUGOAWJBWKUHUBWJWKWOWQUIUJWHW
      LUKUBWLMNWMWLULWRWLUOOUMEWLWIEPZWLNZFPZWJNZGPZWKNZQZXBXDXFUPUAZULZQZGUQFU
      QZXBWINZXCXJGWKURFWJURXLFGWJWKXBWOWQUSXJFGWJWKVGUTXKXMFGXKAHPZLZFHRZSZBXN
      LZGHRZSZQZXJQZHMTZXMXHYAHMTZXJYCXHXQHMTZXTHMTZQYDXEYEXGYFWNXEYEVACHAXDFVB
      VCOWPXGYFVADHBXFGVBVCOVDXQXTHMVEVFYAXJHMVHVIYCWHXNLZEHRZSZHMTZXMYBYIHMXNM
      NZYAXJYIYKYAQYGXIXNNZXJYHYAYGXPXSQZYKYLYGXOXRQYAYMABXNVJXOXPXRXSVKVLYKXPX
      SYLXDXFXNVMVNVOXJYHYLXBXIXNVPVRVQVSVTWHKLXMYJVAABKCDWAHWHXBEVBVCOWBWCWDWE
      WFWG $.
  $}

  $( The span of a union is the subspace sum of spans.  (Contributed by NM,
     9-Jun-2006.)  (New usage is discouraged.) $)
  spanun $p |- ( ( A C_ ~H /\ B C_ ~H ) ->
                ( span ` ( A u. B ) ) = ( ( span ` A ) +H ( span ` B ) ) ) $=
    ( chil wss cun cspn cfv cph co wceq uneq1 fveq2d fveq2 oveq1d eqeq12d uneq2
    cif oveq2d sseq1 elimhyp ssid spanuni dedth2h ) ACDZBCDZABEZFGZAFGZBFGZHIZJ
    UDACQZBEZFGZUKFGZUIHIZJUKUEBCQZEZFGZUNUPFGZHIZJABCCAUKJZUGUMUJUOVAUFULFAUKB
    KLVAUHUNUIHAUKFMNOBUPJZUMURUOUTVBULUQFBUPUKPLVBUIUSUNHBUPFMROUKUPUDUKCDCCDZ
    ACAUKCSCUKCSCUAZTUEUPCDVCBCBUPCSCUPCSVDTUBUC $.

  ${
    sshjococ.1 $e |- A C_ ~H $.
    sshjococ.2 $e |- B C_ ~H $.
    $( The join of two Hilbert space subsets (not necessarily closed subspaces)
       equals the join of their closures (double orthocomplements).
       (Contributed by NM, 1-Jun-2004.)  (Revised by Mario Carneiro,
       15-May-2014.)  (New usage is discouraged.) $)
    sshhococi $p |- ( A vH B ) =
                 ( ( _|_ ` ( _|_ ` A ) ) vH ( _|_ ` ( _|_ ` B ) ) ) $=
      ( chj co cort cfv cun wss chil ococss ax-mp mp2an cch wcel choccli chssii
      unssi occon2i unss12 occl wceq sshjval chjvali 3sstr4i ssun1 sstri sshjcl
      sseqtr4i ssun2 chlubii ococi sseqtri eqssi ) ABEFZAGHZGHZBGHZGHZEFZABIZGH
      GHZURUTIZGHGHZUPVAVBVDJZVCVEJAURJZBUTJZVFAKJZVGCALMBKJZVHDBLMAURBUTUANVBV
      DABKCDSZURUTKURUQVIUQOPCAUBMQZRUTUSVJUSOPDBUBMQZRSTMVIVJUPVCUCCDABUDNZURU
      TVLVMUEUFVAUPGHZGHZUPURVPJZUTVPJZVAVPJAUPJVQAVCUPAVBVCABUGVBKJVBVCJVKVBLM
      ZUHVNUJAUPCUPVIVJUPOPCDABUINZRZTMBUPJVRBVCUPBVBVCBAUKVSUHVNUJBUPDWATMURUT
      VPVLVMVOUPVTQQULNUPVTUMUNUO $.
  $}

  $( Hilbert space has a nonzero vector iff it is not trivial.  (Contributed by
     NM, 24-Feb-2006.)  (New usage is discouraged.) $)
  hne0 $p |- ( ~H =/= 0H <-> E. x e. ~H x =/= 0h ) $=
    ( chil helch chne0i ) ABCD $.

  $( The supremum of the empty set.  (Contributed by NM, 13-Aug-2002.)
     (New usage is discouraged.) $)
  chsup0 $p |- ( \/H ` (/) ) = 0H $=
    ( c0 chsup cfv c0h wss wceq csn 0ss cch wi h0elch snssi ax-mp chsupss mp2an
    wcel chsupsn sseqtri chsupcl chle0i mpbi ) ABCZDEUBDFUBDGZBCZDAUCEZUBUDEZUC
    HAIEZUCIEZUEUFJIHZDIPZUHKDILMAUCNOMUJUDDFKDQMRUBUGUBIPUIASMTUA $.

  ${
    $d x A $.  $d x B $.
    h1deot.1 $e |- B e. ~H $.
    $( Membership in orthocomplement of 1-dimensional subspace.  (Contributed
       by NM, 7-Jul-2001.)  (New usage is discouraged.) $)
    h1deoi $p |- ( A e. ( _|_ ` { B } ) <->
                 ( A e. ~H /\ ( A .ih B ) = 0 ) ) $=
      ( vx csn cort cfv wcel chil cv csp co cc0 wceq wral wa wss wb snssi ocel
      mp2b elexi oveq2 eqeq1d ralsn anbi2i bitri ) ABEZFGHZAIHZADJZKLZMNZDUHOZP
      ZUJABKLZMNZPBIHUHIQUIUORCBISDAUHTUAUNUQUJUMUQDBBICUBUKBNULUPMUKBAKUCUDUEU
      FUG $.

    $( Membership in 1-dimensional subspace.  (Contributed by NM, 7-Jul-2001.)
       (Revised by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    h1dei $p |- ( A e. ( _|_ ` ( _|_ ` { B } ) ) <->
    ( A e. ~H /\ A. x e. ~H ( ( B .ih x ) = 0 -> ( A .ih x ) = 0 ) ) ) $=
      ( csn cort cfv wcel chil cv csp co cc0 wceq wral wa wi wss wb bitri snssi
      occl mp2b chssii ax-mp h1deoi orthcom mpan2 pm5.32i imbi1i impexp ralbii2
      cch ocel anbi2i ) BCEZFGZFGHZBIHZBAJZKLMNZAUQOZPZUSCUTKLMNZVAQZAIOZPUQIRU
      RVCSUQCIHZUPIRUQUMHDCIUAUPUBUCUDABUQUNUEVBVFUSVAVEAUQIUTUQHZVAQUTIHZVDPZV
      AQVIVEQVHVJVAVHVIUTCKLMNZPVJUTCDUFVIVKVDVIVGVKVDSDUTCUGUHUITUJVIVDVAUKTUL
      UOT $.
  $}

  $( A generating vector belongs to the 1-dimensional subspace it generates.
     (Contributed by NM, 22-Jul-2001.)  (New usage is discouraged.) $)
  h1did $p |- ( A e. ~H -> A e. ( _|_ ` ( _|_ ` { A } ) ) ) $=
    ( chil wcel csn cort cfv wss snssi ococss syl snssg mpbird ) ABCZAADZEFEFZC
    NOGZMNBGPABHNIJAOBKL $.

  $( A nonzero vector generates a (nonzero) 1-dimensional subspace.
     (Contributed by NM, 22-Jul-2001.)  (New usage is discouraged.) $)
  h1dn0 $p |- ( ( A e. ~H /\ A =/= 0h ) ->
              ( _|_ ` ( _|_ ` { A } ) ) =/= 0H ) $=
    ( chil wcel c0v wne csn cort cfv h1did eleq2 syl5ibcom elch0 syl6ib necon3d
    c0h wceq imp ) ABCZADEAFGHGHZOERSOADRSOPZAOCZADPRASCTUAAISOAJKALMNQ $.

  ${
    $d x A $.  $d x B $.
    h1de2.1 $e |- A e. ~H $.
    h1de2.2 $e |- B e. ~H $.
    $( Membership in 1-dimensional subspace.  All members are collinear with
       the generating vector.  (Contributed by NM, 17-Jul-2001.)
       (New usage is discouraged.) $)
    h1de2i $p |- ( A e. ( _|_ ` ( _|_ ` { B } ) ) ->
                ( ( B .ih B ) .h A ) = ( ( A .ih B ) .h B ) ) $=
      ( vx cort cfv wcel csp co cmul wceq csm cmin cc0 chil hicli mp3an ax-his3
      wi csn cmv hvmulcli his2sub cc mulcomi eqtri oveq12i eqtr2i 3eqtr4i mpbir
      subeq0i cv wral h1dei mpbiran hvsubcli oveq2 imbi12d rspcv ax-mp sylbi wb
      eqeq1d orthcom mp2an 3imtr4g mpi syl5eq mulcli sylib eqcomd bcseqi ) ABUA
      FGFGHZABIJZBAIJZKJZAAIJZBBIJZKJZLVSAMJZVOBMJZLVNVTVQVNVTVQNJZOLVTVQLVNWCW
      AWBUBJZAIJZOWEWAAIJZWBAIJZNJZWCWAPHZWBPHZAPHZWEWHLVSABBDDQZCUCZVOBABCDQZD
      UCZCWAWBAUDRWFVTWGVQNWFVSVRKJZVTVSUEHZWKWKWFWPLWLCCVSAASRVSVRWLAACCQZUFUG
      VOUEHZBPHZWKWGVQLWNDCVOBASRUHUIVNWDBIJZOLZWEOLZXAWABIJZWBBIJZNJZOWIWJWTXA
      XFLWMWODWAWBBUDRXFOLXDXELVSVOKJZVOVSKJZXDXEVSVOWLWNUFWQWKWTXDXGLWLCDVSABS
      RWSWTWTXEXHLWNDDVOBBSRUJXDXEWABWMDQWBBWODQULUKUGVNBWDIJZOLZAWDIJZOLZXBXCV
      NBEUMZIJZOLZAXMIJZOLZTZEPUNZXJXLTZVNWKXSCEABDUOUPWDPHZXSXTTWAWBWMWOUQZXRX
      TEWDPXMWDLZXOXJXQXLYCXNXIOXMWDBIURVDYCXPXKOXMWDAIURVDUSUTVAVBYAWTXBXJVCYB
      DWDBVEVFYAWKXCXLVCYBCWDAVEVFVGVHVIVTVQVRVSWRWLVJVOVPWNBADCQVJULVKVLABCDVM
      VK $.

    $( Membership in 1-dimensional subspace.  All members are collinear with
       the generating vector.  (Contributed by NM, 19-Jul-2001.)  (Revised by
       Mario Carneiro, 15-May-2014.)  (New usage is discouraged.) $)
    h1de2bi $p |- ( B =/= 0h -> ( A e. ( _|_ ` ( _|_ ` { B } ) ) <->
                A = ( ( ( A .ih B ) / ( B .ih B ) ) .h B ) ) ) $=
      ( c0v wne csp co cc0 cort wcel csm wceq chil ax-mp c1 cmul cc syl eqtr3d
      csn cfv cdiv wb his6 necon3bii wa h1de2i adantl hicli recclzi ax-hvmulass
      oveq2d mp3an23 ax-1cn divcan1zi oveq1d ax-hvmulid syl6eq sylancl divreczi
      adantr mulcom eqtr4d ex divclzi csh wss cch snss mpbi occl choccli chshii
      elexi h1did shmulcl mp3an13 eleq1 syl5ibrcom impbid sylbir ) BEFBBGHZIFZA
      BUAZJUBZJUBZKZAABGHZWCUCHZBLHZMZUDWCIBEBNKZWCIMBEMUDDBUEOUFWDWHWLWDWHWLWD
      WHUGZPWCUCHZWIBLHZLHZAWKWNWOWCALHZLHZWQAWNWRWPWOLWHWRWPMWDABCDUHUIUMWDWSA
      MWHWDWSPALHZAWDWOWCQHZALHZWSWTWDWORKZXBWSMZWCBBDDUJZUKZXCWCRKANKZXDXECWOW
      CAULUNSWDXAPALPWCUOXEUPUQTXGWTAMCAUROUSVBTWDWQWKMWHWDWOWIQHZBLHZWQWKWDXCX
      IWQMZXFXCWIRKZWMXJABCDUJZDWOWIBULUNSWDXHWJBLWDXHWIWOQHZWJWDXCXKXHXMMXFXLW
      OWIVCUTWIWCXLXEVAVDUQTVBTVEWDWHWLWKWGKZWDWJRKZXNWIWCXLXEVFWGVGKXOBWGKZXNW
      GWFWENVHZWFVIKWMXQDBNBNDVOVJVKWEVLOVMVNWMXPDBVPOWJBWGVQVRSAWKWGVSVTWAWB
      $.

    $( Lemma for ~ h1de2ci .  (Contributed by NM, 19-Jul-2001.)  (Revised by
       Mario Carneiro, 15-May-2014.)  (New usage is discouraged.) $)
    h1de2ctlem $p |- ( A e. ( _|_ ` ( _|_ ` { B } ) ) <->
                 E. x e. CC A = ( x .h B ) ) $=
      ( csn cort cfv wcel csm co wceq cc c0v cc0 fveq2d chil ax-mp oveq1 eqeq2d
      cv wrex sneq eleq2d elexi hsn0elch ococi eleq2i ax-hvmul0 eqeq2i 3bitr4ri
      elsn syl6rbbr 0cn rspcev mpan syl6bir wne csp cdiv h1de2bi his6 necon3bii
      wi wb hicli divclzi sylbir sylan sylbid pm2.61ine csh wss snssi occl mp2b
      cch choccli chshii h1did shmulcl mp3an13 eleq1 syl5ibrcom rexlimiv impbii
      ex ) BCFZGHZGHZIZBAUAZCJKZLZAMUBZWKWOVDCNCNLZWKBOCJKZLZWOWPWKBNFZGHZGHZIZ
      WRWPWJXABWPWIWTGWPWHWSGCNUCPPUDBWSIBNLXBWRBNBQDUEULXAWSBWSUFUGUHWQNBCQIZW
      QNLECUIRUJUKUMOMIWRWOUNWNWRAOMWLOLWMWQBWLOCJSTUOUPUQCNURZWKBBCUSKZCCUSKZU
      TKZCJKZLZWOBCDEVAXDXIWOXDXGMIZXIWOXDXFOURXJXFOCNXCXFOLWPVEECVBRVCXEXFBCDE
      VFCCEEVFVGVHWNXIAXGMWLXGLWMXHBWLXGCJSTUOVIWGVJVKWNWKAMWLMIZWKWNWMWJIZWJVL
      IXKCWJIZXLWJWIXCWHQVMWIVQIECQVNWHVOVPVRVSXCXMECVTRWLCWJWAWBBWMWJWCWDWEWF
      $.
  $}

  ${
    $d x A $.  $d x B $.
    h1de2ct.1 $e |- B e. ~H $.
    $( Membership in 1-dimensional subspace.  All members are collinear with
       the generating vector.  (Contributed by NM, 21-Jul-2001.)  (Revised by
       Mario Carneiro, 15-May-2014.)  (New usage is discouraged.) $)
    h1de2ci $p |- ( A e. ( _|_ ` ( _|_ ` { B } ) ) <->
                 E. x e. CC A = ( x .h B ) ) $=
      ( csn cort cfv wcel chil cv csm co wceq cc wrex wss cch eleq1 wb c0v occl
      snssi choccli cheli hvmulcl mpan2 syl5ibrcom rexlimiv cif rexbidv bibi12d
      mp2b eqeq1 ifhvhv0 h1de2ctlem dedth pm5.21nii ) BCEZFGZFGZHZBIHZBAJZCKLZM
      ZANOZBUTUSCIHZURIPUSQHDCIUBURUAULUCUDVEVBANVCNHZVBVEVDIHZVHVGVIDVCCUEUFBV
      DIRUGUHVBVAVFSVBBTUIZUTHZVJVDMZANOZSBTBVJMZVAVKVFVMBVJUTRVNVEVLANBVJVDUMU
      JUKAVJCBUNDUOUPUQ $.
  $}

  ${
    $d x y z A $.  $d x B $.
    spansn.1 $e |- A e. ~H $.
    $( The span of a singleton in Hilbert space equals its closure.
       (Contributed by NM, 3-Jun-2004.)  (New usage is discouraged.) $)
    spansni $p |- ( span ` { A } ) = ( _|_ ` ( _|_ ` { A } ) ) $=
      ( vx vz vy csn cspn cfv cort chil wcel wss snssi spanssoc mp2b cv csm csh
      cc wi co wceq wrex wral wa elexi snss shmulcl 3expia ancoms syl5bir eleq1
      imbi2d syl5ibrcom ralrimdva rexlimiv h1de2ci wb vex elspani 3imtr4i ssriv
      eqssi ) AFZGHZVDIHIHZAJKZVDJLZVEVFLBAJMZVDNOCVFVECPZDPZAQUAZUBZDSUCVDEPZL
      ZVJVNKZTZERUDZVJVFKVJVEKZVMVRDSVKSKZVMVQERVTVNRKZUEZVQVMVOVLVNKZTVOAVNKZW
      BWCAVNAJBUFUGWAVTWDWCTWAVTWDWCVKAVNUHUIUJUKVMVPWCVOVJVLVNULUMUNUOUPDVJABU
      QVGVHVSVRURBVIEVDVJCUSUTOVAVBVC $.

    $( Membership in the span of a singleton.  (Contributed by NM, 3-Jun-2004.)
       (New usage is discouraged.) $)
    elspansni $p |- ( B e. ( span ` { A } ) <-> E. x e. CC B = ( x .h A ) ) $=
      ( csn cspn cfv wcel cort cv csm co wceq wrex spansni eleq2i h1de2ci bitri
      cc ) CBEZFGZHCTIGIGZHCAJBKLMASNUAUBCBDOPACBDQR $.
  $}

  $( The span of a singleton in Hilbert space equals its closure.  (Contributed
     by NM, 4-Jun-2004.)  (New usage is discouraged.) $)
  spansn $p |- ( A e. ~H -> ( span ` { A } ) = ( _|_ ` ( _|_ ` { A } ) ) ) $=
    ( chil wcel csn cspn cfv cort wceq c0v fveq2d eqeq12d ifhvhv0 spansni dedth
    cif sneq ) ABCZADZEFZRGFZGFZHQAIOZDZEFZUCGFZGFZHAIAUBHZSUDUAUFUGRUCEAUBPZJU
    GTUEGUGRUCGUHJJKUBALMN $.

  $( The span of a Hilbert space singleton belongs to the Hilbert lattice.
     (Contributed by NM, 9-Jun-2004.)  (New usage is discouraged.) $)
  spansnch $p |- ( A e. ~H -> ( span ` { A } ) e. CH ) $=
    ( chil wcel csn cspn cfv cort cch spansn wss snssi occl choccl 3syl eqeltrd
    ) ABCZADZEFQGFZGFZHAIPQBJRHCSHCABKQLRMNO $.

  $( The span of a Hilbert space singleton is a subspace.  (Contributed by NM,
     17-Dec-2004.)  (New usage is discouraged.) $)
  spansnsh $p |- ( A e. ~H -> ( span ` { A } ) e. SH ) $=
    ( chil wcel csn cspn cfv cch csh spansnch chsh syl ) ABCADEFZGCLHCAILJK $.

  ${
    spansnch.1 $e |- A e. ~H $.
    $( The span of a singleton in Hilbert space is a closed subspace.
       (Contributed by NM, 3-Jun-2004.)  (New usage is discouraged.) $)
    spansnchi $p |- ( span ` { A } ) e. CH $=
      ( chil wcel csn cspn cfv cch spansnch ax-mp ) ACDAEFGHDBAIJ $.
  $}

  $( A vector belongs to the span of its singleton.  (Contributed by NM,
     3-Jun-2004.)  (New usage is discouraged.) $)
  spansnid $p |- ( A e. ~H -> A e. ( span ` { A } ) ) $=
    ( chil wcel csn cort cfv cspn h1did spansn eleqtrrd ) ABCAADZEFEFKGFAHAIJ
    $.

  $( A scalar product with a vector belongs to the span of its singleton.
     (Contributed by NM, 3-Jun-2004.)  (New usage is discouraged.) $)
  spansnmul $p |- ( ( A e. ~H /\ B e. CC ) ->
                  ( B .h A ) e. ( span ` { A } ) ) $=
    ( cc wcel chil csm co csn cspn cfv csh spansnsh spansnid jca shmulcl 3com12
    wa 3expb sylan2 ancoms ) BCDZAEDZBAFGAHIJZDZUBUAUCKDZAUCDZQUDUBUEUFALAMNUAU
    EUFUDUEUAUFUDBAUCOPRST $.

  $( A member of a span of a singleton is a vector.  (Contributed by NM,
     17-Dec-2004.)  (New usage is discouraged.) $)
  elspansncl $p |- ( ( A e. ~H /\ B e. ( span ` { A } ) ) -> B e. ~H ) $=
    ( chil wcel csn wss cspn cfv snssi elspancl sylan ) ACDAEZCFBLGHDBCDACILBJK
    $.

  ${
    $d x A $.  $d x B $.
    $( Membership in the span of a singleton.  (Contributed by NM, 5-Jun-2004.)
       (New usage is discouraged.) $)
    elspansn $p |- ( A e. ~H ->
                   ( B e. ( span ` { A } ) <-> E. x e. CC B = ( x .h A ) ) ) $=
      ( chil wcel csn cspn cfv cv csm co wceq cc wrex wb c0v sneq fveq2d eleq2d
      cif oveq2 eqeq2d rexbidv bibi12d ifhvhv0 elspansni dedth ) BDEZCBFZGHZEZC
      AIZBJKZLZAMNZOCUHBPTZFZGHZEZCULUPJKZLZAMNZOBPBUPLZUKUSUOVBVCUJURCVCUIUQGB
      UPQRSVCUNVAAMVCUMUTCBUPULJUAUBUCUDAUPCBUEUFUG $.
  $}

  $( Membership in the span of a singleton.  All members are collinear with the
     generating vector.  (Contributed by NM, 5-Jun-2004.)
     (New usage is discouraged.) $)
  elspansn2 $p |- ( ( A e. ~H /\ B e. ~H /\ B =/= 0h ) ->
  ( A e. ( span ` { B } ) <-> A = ( ( ( A .ih B ) / ( B .ih B ) ) .h B ) ) ) $=
    ( chil wcel c0v wne csn cfv cort csp co cdiv csm wceq wb eleq2d wi id oveq1
    cif w3a cspn spansn 3ad2ant2 eleq1 oveq1d eqeq12d bibi12d imbi2d neeq1 sneq
    fveq2d oveq2 eqtrd oveq12d eqeq2d imbi12d ifhvhv0 h1de2bi dedth2h 3impia
    bitrd ) ACDZBCDZBEFZUAABGZUBHZDZAVFIHZIHZDZAABJKZBBJKZLKZBMKZNZVDVCVHVKOVEV
    DVGVJABUCPUDVCVDVEVKVPOZVCVDVEVQQVEVCAETZVJDZVRVRBJKZVMLKZBMKZNZOZQVDBETZEF
    ZVRWEGZIHZIHZDZVRVRWEJKZWEWEJKZLKZWEMKZNZOZQABEEAVRNZVQWDVEWQVKVSVPWCAVRVJU
    EWQAVRVOWBWQRWQVNWABMWQVLVTVMLAVRBJSUFUFUGUHUIBWENZVEWFWDWPBWEEUJWRVSWJWCWO
    WRVJWIVRWRVIWHIWRVFWGIBWEUKULULPWRWBWNVRWRWAWMBWEMWRVTWKVMWLLBWEVRJUMWRVMWE
    BJKWLBWEBJSBWEWEJUMUNUOWRRUOUPUHUQVRWEAURBURUSUTVAVB $.

  ${
    $d x y z A $.  $d x y z B $.
    $( The singletons of collinear vectors have the same span.  (Contributed by
       NM, 6-Jun-2004.)  (New usage is discouraged.) $)
    spansncol $p |- ( ( A e. ~H /\ B e. CC /\ B =/= 0 ) ->
                    ( span ` { ( B .h A ) } ) = ( span ` { A } ) ) $=
      ( vx vy vz chil wcel cc csm co csn cspn cfv cv wceq wrex wi cmul eqeq2d
      wa cc0 wne w3a mulcl ancoms adantll ax-hvmulass 3com13 3expa oveq1 rspcev
      biimprd syl6an rexlimdva 3adant3 cdiv divcl adantlr simprl simplr syl3anc
      3expb divcan1 oveq1d eqtr3d exp43 com4l 3imp rexlimdv wb hvmulcl elspansn
      impbid syl 3ad2ant1 3bitr4d eqrdv ) AFGZBHGZBUAUBZUCZCBAIJZKLMZAKLMZWACNZ
      DNZWBIJZOZDHPZWEENZAIJZOZEHPZWEWCGZWEWDGZWAWIWMVRVSWIWMQVTVRVSTZWHWMDHWPW
      FHGZTZWFBRJZHGZWHWEWSAIJZOZWMVSWQWTVRWQVSWTWFBUDUEUFWRXBWHWRXAWGWEVRVSWQX
      AWGOZWQVSVRXCWFBAUGUHUISULWLXBEWSHWJWSOWKXAWEWJWSAIUJSUKUMUNUOWAWLWIEHVRV
      SVTWJHGZWLWIQZQXDVRVSVTXEXDVRVSVTXEXDVRTZVSVTTZTZWJBUPJZHGZWLWEXIWBIJZOZW
      IXDXGXJVRXDVSVTXJWJBUQVBURZXHXLWLXHXKWKWEXHXIBRJZAIJZXKWKXHXJVSVRXOXKOXMX
      FVSVTUSXDVRXGUTXIBAUGVAXHXNWJAIXDXGXNWJOZVRXDVSVTXPWJBVCVBURVDVESULWHXLDX
      IHWFXIOWGXKWEWFXIWBIUJSUKUMVFVGVHVIVMVRVSWNWIVJZVTWPWBFGZXQVSVRXRBAVKUEDW
      BWEVLVNUOVRVSWOWMVJVTEAWEVLVOVPVQ $.
  $}

  $( Membership relation implied by equality of spans.  (Contributed by NM,
     6-Jun-2004.)  (New usage is discouraged.) $)
  spansneleqi $p |- ( A e. ~H ->
        ( ( span ` { A } ) = ( span ` { B } ) -> A e. ( span ` { B } ) ) ) $=
    ( chil wcel csn cspn cfv wceq spansnid eleq2 syl5ibcom ) ACDAAEFGZDLBEFGZHA
    MDAILMAJK $.

  ${
    $d x A $.  $d x B $.
    $( Membership relation that implies equality of spans.  (Contributed by NM,
       6-Jun-2004.)  (New usage is discouraged.) $)
    spansneleq $p |- ( ( B e. ~H /\ A =/= 0h ) ->
         ( A e. ( span ` { B } ) -> ( span ` { A } ) = ( span ` { B } ) ) ) $=
      ( vx chil wcel c0v wne wa csn cspn cfv csm co wceq cc adantr wi cc0 com23
      ex cv wrex wb elspansn sneq fveq2d ad2antll oveq1 ax-hvmul0 eqeq1 biimprd
      sylan9eqr sylan9 necon3d impd spansncol syld exp4b imp43 eqtrd rexlimdvaa
      3expia sylbid ) BDEZAFGZHZABIJKZEZACUAZBLMZNZCOUBZAIZJKZVGNZVDVHVLUCVECBA
      UDPVFVKVOCOVFVIOEZVKHHVNVJIZJKZVGVKVNVRNVFVPVKVMVQJAVJUEUFUGVDVEVPVKVRVGN
      ZVDVPVEVKVSQVDVPVEVKVSVDVPHVEVKHZVIRGZVSVDVTWAQVPVDVEVKWAVDVKVEWAVDVKVEWA
      QVDVKHVIRAFVDVIRNZVJFNZVKAFNZVDWBWCWBVDVJRBLMFVIRBLUHBUIULTVKWDWCAVJFUJUK
      UMUNTSUOPVDVPWAVSBVIUPVBUQURSUSUTVAVC $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The span of the singleton of an element of a subspace is included in the
       subspace.  (Contributed by NM, 5-Jun-2004.)
       (New usage is discouraged.) $)
    spansnss $p |- ( ( A e. SH /\ B e. A ) -> ( span ` { B } ) C_ A ) $=
      ( vx vy csh wcel wa csn cspn cfv cv csm co wceq cc wrex chil wb syl wi
      shel elspansn w3a shmulcl eleq1a 3exp com23 imp rexlimdv sylbid ssrdv ) A
      EFZBAFZGZCBHIJZAUNCKZUOFZUPDKZBLMZNZDOPZUPAFZUNBQFUQVARBAUADBUPUBSUNUTVBD
      OULUMUROFZUTVBTZTULVCUMVDULVCUMVDULVCUMUCUSAFVDURBAUDUSAUPUESUFUGUHUIUJUK
      $.
  $}

  $( A member of the span of the singleton of a vector is a member of a
     subspace containing the vector.  (Contributed by NM, 16-Dec-2004.)
     (New usage is discouraged.) $)
  elspansn3 $p |- ( ( A e. SH /\ B e. A /\ C e. ( span ` { B } ) ) ->
                   C e. A ) $=
    ( csh wcel csn cspn cfv wa spansnss sseld 3impia ) ADEZBAEZCBFGHZECAEMNIOAC
    ABJKL $.

  $( A span membership condition implying two vectors belong to the same
     subspace.  (Contributed by NM, 17-Dec-2004.)
     (New usage is discouraged.) $)
  elspansn4 $p |- ( ( ( A e. SH /\ B e. ~H ) /\
         ( C e. ( span ` { B } ) /\ C =/= 0h ) ) -> ( B e. A <-> C e. A ) ) $=
    ( csh wcel chil wa csn cspn cfv c0v wne wi elspansn3 3exp ad2ant2r spansnid
    com23 imp ad2antrr wceq spansneleq eleqtrrd 3expia exp4b com24 exp4a impbid
    syl5 imp43 ) ADEZBFEZGCBHIJZEZCKLZGGBAEZCAEZUKUNUPUQMZULUOUKUNURUKUPUNUQUKU
    PUNUQABCNORSPUKULUNUOUQUPMZUKUNULUOUSMUKUNULUOUSUKUQULUOGZUNUPUKUQUTUNUPUTU
    NGZBCHIJZEZUKUQGUPVABUMVBULBUMEUOUNBQTUTUNVBUMUACBUBSUCUKUQVCUPACBNUDUIUEUF
    UGRUJUH $.

  $( A vector belonging to both a subspace and the span of the singleton of a
     vector not in it must be zero.  (Contributed by NM, 17-Dec-2004.)
     (New usage is discouraged.) $)
  elspansn5 $p |- ( A e. SH -> ( ( ( B e. ~H /\ -. B e. A ) /\
         ( C e. ( span ` { B } ) /\ C e. A ) ) -> C = 0h ) ) $=
    ( csh wcel chil wn csn cspn cfv wa c0v wi wne elspansn4 biimprd exp32 com34
    wceq imp32 necon1bd exp31 imp4c ) ADEZBFEZBAEZGZCBHIJEZCAEZKZCLSZUDUEUJUGUK
    UDUEUJUGUKMUDUEKZUJKUFCLULUHUICLNZUFMULUHUMUIUFULUHUMUIUFMULUHUMKKUFUIABCOP
    QRTUAUBRUC $.

  $( The span of the singleton of an element of a subspace is included in the
     subspace.  (Contributed by NM, 16-Dec-2004.)
     (New usage is discouraged.) $)
  spansnss2 $p |- ( ( A e. SH /\ B e. ~H ) ->
                   ( B e. A <-> ( span ` { B } ) C_ A ) ) $=
    ( csh wcel chil wa csn cspn cfv wi spansnss ex adantr spansnid ssel syl5com
    wss adantl impbid ) ACDZBEDZFBADZBGHIZAQZTUBUDJUATUBUDABKLMUAUDUBJTUABUCDUD
    UBBNUCABOPRS $.

  ${
    $d x A $.  $d x B $.
    $( Cancellation-type law that "extracts" a vector ` A ` from its inner
       product with a proportional vector ` B ` .  (Contributed by NM,
       18-Mar-2006.)  (New usage is discouraged.) $)
    normcan $p |- ( ( B e. ~H /\ B =/= 0h /\ A e. ( span ` { B } ) ) ->
            ( ( ( A .ih B ) / ( ( normh ` B ) ^ 2 ) ) .h B ) = A ) $=
      ( vx chil wcel c0v wne csn cfv csp co cdiv csm wceq wa cc adantr ad2antrr
      simpr cc0 cspn cno c2 cexp cv wrex wb elspansn cmul oveq1 ax-his3 syl3anc
      simpl sylan9eqr normsq oveq12d adantllr hicl anidms his6 biimpar divcan4d
      necon3bid eqtrd oveq1d eqtr4d exp31 rexlimdv sylbid 3impia ) BDEZBFGZABHU
      AIEZABJKZBUBIUCUDKZLKZBMKZANZVKVLOZVMACUEZBMKZNZCPUFZVRVKVMWCUGVLCBAUHQVS
      WBVRCPVSVTPEZWBVRVSWDOZWBOZVQWAAWFVPVTBMWFVPVTBBJKZUIKZWGLKZVTVKWDWBVPWIN
      VLVKWDOZWBOVNWHVOWGLWBWJVNWABJKZWHAWABJUJWJWDVKVKWKWHNVKWDSVKWDUMZWLVTBBU
      KULUNVKVOWGNWDWBBUORUPUQWEWIVTNWBWEVTWGVSWDSVKWGPEZVLWDVKWMBBURUSRVSWGTGZ
      WDVKWNVLVKWGTBFBUTVCVAQVBQVDVEWEWBSVFVGVHVIVJ $.
  $}

  ${
    $d y A $.  $d y B $.
    $( A projection on the span of a singleton.  (The proof ws shortened by
       Mario Carneiro, 15-Dec-2013.)  (Contributed by NM, 28-May-2006.)
       (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    pjspansn $p |- ( ( A e. ~H /\ B e. ~H /\ A =/= 0h ) -> ( ( projh ` ( span `
        { A } ) ) ` B ) = ( ( ( B .ih A ) / ( ( normh ` A ) ^ 2 ) ) .h A ) ) $=
      ( vy chil wcel cfv co wceq csp cdiv csm cch 3ad2ant1 wa syl2anc caddc cc0
      adantr sylan syl3anc c0v wne w3a csn cspn cpjh cva cno cexp cort spansnch
      cv wrex simp2 eqid pjeq mpbii simprd oveq1 ad2antll pjhcl choccl syl chel
      simpl1 ax-his2 csh spansnsh spansnid simpr shocorth 3impib orthcom syldan
      c2 wb mpbid 3ad2antl1 oveq2d cc hicl addid1d 3eqtrd adantrr oveq1d simpl3
      eqtrd axpjcl normcan eqtr2d rexlimddv ) ADEZBDEZAUAUBZUCZBBAUDUEFZUFFFZCU
      LZUGGZHZWQBAIGZAUHFVOUIGZJGZAKGZHCWPUJFZWOWPLEZWMWTCXEUMZWLWMXFWNAUKZMZWL
      WMWNUNZXFWMNZWQWPEZXGXKWQWQHXLXGNWQUOCBWQWPUPUQUROWOWRXEEZWTNZNZXDWQAIGZX
      BJGZAKGZWQXOXCXQAKXOXAXPXBJXOXAWSAIGZXPWTXAXSHWOXMBWSAIUSUTWOXMXSXPHWTWOX
      MNZXSXPWRAIGZPGZXPQPGXPXTWQDEZWRDEZWLXSYBHWOYCXMWOXFWMYCXIXJBWPVAORZWOXEL
      EZXMYDWLWMYFWNWLXFYFXHWPVBVCZMWRXEVDZSWLWMWNXMVEZWQWRAVFTXTYAQXPPWLWMXMYA
      QHZWNWLXMNZAWRIGQHZYJYKWPVGEZAWPEZXMYLWLYMXMAVHRWLYNXMAVIRWLXMVJYMYNXMYLA
      WRWPVKVLTWLXMYDYLYJVPWLYFXMYDYGYHSAWRVMVNVQVRVSXTXPXTYCWLXPVTEYEYIWQAWAOW
      BWCWDWGWEWEXOWLWNXLXRWQHWLWMWNXNVEWLWMWNXNWFWOXLXNWOXFWMXLXIXJBWPWHORWQAW
      ITWJWK $.
  $}

  ${
    spansnpj.1 $e |- A C_ ~H $.
    spansnpj.2 $e |- B e. ~H $.
    $( A subset of Hilbert space is orthogonal to the span of the singleton of
       a projection onto its orthocomplement.  (Contributed by NM, 4-Jun-2004.)
       (Revised by Mario Carneiro, 15-May-2014.)
       (New usage is discouraged.) $)
    spansnpji $p |- A C_
                 ( _|_ ` ( span ` { ( ( projh ` ( _|_ ` A ) ) ` B ) } ) ) $=
      ( cort cfv cpjh csn cspn chil wss ococss ax-mp cch wcel occl chssii snssi
      pjclii spanss mp2an csh chshii spanid sseqtri pjhclii spansnchi chsscon3i
      wceq mpbi sstri ) AAEFZEFZBULGFFZHZIFZEFZAJKZAUMKCALMUPULKUMUQKUPULIFZULU
      LJKUOULKZUPUSKULURULNOCAPMZQUNULOUTBULVADSUNULRMUOULTUAULUBOUSULUIULVAUCU
      LUDMUEUPULUNBULVADUFUGVAUHUJUK $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.
    spanunsn.1 $e |- A e. CH $.
    spanunsn.2 $e |- B e. ~H $.
    $( The span of the union of a closed subspace with a singleton equals the
       span of its union with an orthogonal singleton.  (Contributed by NM,
       3-Jun-2004.)  (New usage is discouraged.) $)
    spanunsni $p |- ( span ` ( A u. { B } ) ) =
             ( span ` ( A u. { ( ( projh ` ( _|_ ` A ) ) ` B ) } ) ) $=
      ( vy vz vw vv vu cfv cph co cv wcel cva wceq wrex chil csm cc vx csn cspn
      cort cpjh cun chshii wss csh snssi spancl mp2b shseli wi elspansni pjclii
      wa shmulcl mp3an13 shaddcl syl3an3 mp3an1 choccli pjhclii spansnmul pjpji
      mpan adantl oveq2i ax-hvdistr1 mp3an23 syl5eq oveq2d cheli mpan2 ax-hvass
      hvmulcl jca 3expb syl2an eqtr4d rspceov syl3anc sylibr oveq2 eqeq2d eleq1
      biimpa biimparc exp43 rexlimdv syl5bi rexlimiv sylbi negcl syl3an2 ancoms
      cneg syl c0v c1 hvm1neg hvnegid sylancl ax-hvcom syl2anc 3eqtr3d hvaddid2
      oveq1d hvaddcl anim12i hvadd4 impbii chssii spanuni spanid oveq1i 3eqtr4i
      eqriv ax-mp eqtri ) ABUBZUCJZKLZABAUDJZUEJJZUBZUCJZKLZAYBUFUCJZAYGUFUCJZU
      AYDYIUAMZYDNZYLYINZYMYLEMZFMZOLZPZFYCQZEAQYNEFAYCYLACUGZBRNZYBRUHZYCUINDB
      RUJZYBUKULZUMYSYNEAYOANZYRYNFYCYPYCNYPGMZBSLZPZGTQUUEYRYNUNZGBYPDUOUUEUUH
      UUIGTUUEUUFTNZUUHYRYNUUEUUJUQZYOUUGOLZYINZYLUULPZYNUUHYRUQUUKUULHMIMOLZPI
      YHQHAQZUUMUUKYOUUFBAUEJJZSLZOLZANZUUFYFSLZYHNZUULUUSUVAOLZPUUPAUINZUUEUUJ
      UUTYTUUJUVDUUEUURANZUUTUVDUUJUUQANZUVEYTBACDUPZUUFUUQAURUSYOUURAUTVAVBUUJ
      UVBUUEYFRNZUUJUVBBYEACVCDVDZYFUUFVEVGVHUUKUULYOUURUVAOLZOLZUVCUUKUUGUVJYO
      OUUJUUGUVJPUUEUUJUUGUUFUUQYFOLZSLZUVJBUVLUUFSBACDVFVIUUJUUQRNZUVHUVMUVJPB
      ACDVDZUVIUUFUUQYFVJVKVLVHZVMUUEYORNZUURRNZUVARNZUQUVCUVKPZUUJYOACVNZUUJUV
      RUVSUUJUVNUVRUVOUUFUUQVQVOZUUJUVHUVSUVIUUFYFVQVOZVRUVQUVRUVSUVTYOUURUVAVP
      VSVTWAHIAYHUUSUVAUULOWBWCHIAYHUULYTUVHYGRUHZYHUINUVIYFRUJZYGUKULZUMWDUUHY
      RUUNUUHYQUULYLYPUUGYOOWEWFWHUUNYNUUMYLUULYIWGWIVTWJWKWLWKWMWNYNYRFYHQZEAQ
      YMEFAYHYLYTUWFUMUWGYMEAUUEYRYMFYHYPYHNYPUVAPZGTQUUEYRYMUNZGYFYPUVIUOUUEUW
      HUWIGTUUEUUJUWHYRYMUUKYOUVAOLZYDNZYLUWJPZYMUWHYRUQUUKUWJUUOPIYCQHAQZUWKUU
      KUUFWRZUUQSLZYOOLZANZUUGYCNZUWJUWPUUGOLZPUWMUUJUUEUWQUVDUUJUUEUWQYTUUJUVD
      UWOANZUUEUWQUUJUWNTNZUWTUUFWOZUVDUXAUVFUWTYTUVGUWNUUQAURUSWSUWOYOAUTWPVBW
      QUUJUWRUUEUUAUUJUWRDBUUFVEVGVHUUKUWJUWPUVJOLZUWSUUKWTUWJOLZUWOUUROLZUWJOL
      ZUWJUXCUUKWTUXEUWJOUUJWTUXEPUUEUUJUURXAWRUURSLZOLZUURUWOOLZWTUXEUUJUXGUWO
      UUROUUJUVNUXGUWOPUVOUUFUUQXBVOVMUUJUVRUXHWTPUWBUURXCWSUUJUVRUWORNZUXIUXEP
      UWBUUJUXAUVNUXJUXBUVOUWNUUQVQXDZUURUWOXEXFXGVHXIUUKUWJRNZUXDUWJPUUEUVQUVS
      UXLUUJUWAUWCYOUVAXJVTUWJXHWSUUKUXJUVRUQZUVQUVSUQUXFUXCPUUJUXMUUEUUJUXJUVR
      UXKUWBVRVHUUEUVQUUJUVSUWAUWCXKUWOUURYOUVAXLXFXGUUKUUGUVJUWPOUVPVMWAHIAYCU
      WPUUGUWJOWBWCHIAYCUWJYTUUDUMWDUWHYRUWLUWHYQUWJYLYPUVAYOOWEWFWHUWLYMUWKYLU
      WJYDWGWIVTWJWKWLWKWMWNXMXSYJAUCJZYCKLYDAYBACXNZUUAUUBDUUCXTXOUXNAYCKUVDUX
      NAPYTAXPXTZXQYAYKUXNYHKLYIAYGUXOUVHUWDUVIUWEXTXOUXNAYHKUXPXQYAXR $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The span of a pair of vectors.  (Contributed by NM, 9-Jun-2006.)
       (New usage is discouraged.) $)
    spanpr $p |- ( ( A e. ~H /\ B e. ~H ) ->
                 ( span ` { ( A +h B ) } ) C_ ( span ` { A , B } ) ) $=
      ( vx chil wcel wa cva csn cspn cfv cph csh spansnsh syl2an adantr anim12i
      co spansnid wss snssi cpr cv shscl shsva simpr elspansn3 syl3anc ex ssrdv
      sylc cun df-pr fveq2i wceq spanun syl5req sseqtrd ) ADEZBDEZFZABGQZHIJZAH
      ZIJZBHZIJZKQZABUAZIJZUTCVBVGUTCUBZVBEZVJVGEZUTVKFVGLEZVAVGEZVKVLUTVMVKURV
      DLEZVFLEZVMUSAMZBMZVDVFUCNOUTVNVKUTVOVPFAVDEZBVFEZFVNURVOUSVPVQVRPURVSUSV
      TARBRPVDVFABUDUJOUTVKUEVGVAVJUFUGUHUIUTVIVCVEUKZIJZVGVHWAIABULUMURVCDSVED
      SWBVGUNUSADTBDTVCVEUONUPUQ $.
  $}

  ${
    $d x y A $.  $d x y B $.
    h1datom.1 $e |- A e. CH $.
    h1datom.2 $e |- B e. ~H $.
    $( A 1-dimensional subspace is an atom.  (Contributed by NM, 20-Jul-2001.)
       (New usage is discouraged.) $)
    h1datomi $p |- ( A C_ ( _|_ ` ( _|_ ` { B } ) ) ->
                  ( A = ( _|_ ` ( _|_ ` { B } ) ) \/ A = 0H ) ) $=
      ( vx vy cort cfv wss wne c0h wceq wi wa wcel c0v csm co cc cc0 wo cv wrex
      csn chne0i ssel h1de2ci oveq1 chil ax-hvmul0 ax-mp syl6eq syl5ibr necon3d
      eqeq1 adantl c1 cdiv reccl csh chshii shmulcl mp3an1 ex adantr oveq2 cmul
      simpl ax-hvmulass mp3an3 recid2 oveq1d eqtr3d ax-hvmulid sylan9eqr eleq1d
      syl syl2anc sylibd exp31 com23 imp syld com3r expd rexlimdv syl5bi sylcom
      snssi chssii occon2i ococi syl6sseq syl6 anc2li eqss syl6ibr necon1d neor
      sylibr ) ABUDZGHGHZIZAXBJAKLZMAXBLZXDUAXCAKAXBXCAKJZXCXBAIZNXEXCXFXGXCXFB
      AOZXGXFEUBZPJZEAUCXCXHEACUEXCXJXHEAXCXIAOZXIXBOZXJXHMZAXBXIUFXLXIFUBZBQRZ
      LZFSUCXKXMFXIBDUGXKXPXMFSXKXNSOZXPXMXQXPNZXJXKXHXRXJXNTJZXKXHMZXPXJXSMXQX
      PXNTXIPXNTLZXIPLXPXOPLYAXOTBQRZPXNTBQUHBUIOZYBPLDBUJUKULXIXOPUOUMUNUPXQXP
      XSXTMXQXSXPXTXQXSXPXTXQXSNZXPNZXKUQXNURRZXIQRZAOZXHYDXKYHMZXPYDYFSOZYIXNU
      SZYJXKYHAUTOYJXKYHACVAYFXIAVBVCVDVQVEYEYGBAXPYDYGYFXOQRZBXIXOYFQVFYDYLUQB
      QRZBYDYFXNVGRZBQRZYLYMYDYJXQYOYLLZYKXQXSVHYJXQYCYPDYFXNBVIVJVRYDYNUQBQXNV
      KVLVMYCYMBLDBVNUKULVOVPVSVTWAWBWCWDWEWFWGWHWFWGXHXBAGHGHZAXHXAAIXBYQIBAWI
      XAAYCXAUIIDBUIWIUKACWJWKVQACWLWMWNWOAXBWPWQWRXDAXBWSWT $.
  $}

  $( A 1-dimensional subspace is an atom.  (Contributed by NM, 22-Jul-2001.)
     (New usage is discouraged.) $)
  h1datom $p |- ( ( A e. CH /\ B e. ~H ) ->
                ( A C_ ( _|_ ` ( _|_ ` { B } ) ) ->
                ( A = ( _|_ ` ( _|_ ` { B } ) ) \/ A = 0H ) ) ) $=
    ( cch wcel chil csn cort cfv wss wceq c0h wo wi cif c0v sseq1 eqeq1 orbi12d
    imbi12d fveq2d sseq2d eqeq2d orbi1d h0elch elimel ifhvhv0 h1datomi dedth2h
    sneq ) ACDZBEDZABFZGHZGHZIZAUNJZAKJZLZMUJAKNZUNIZUSUNJZUSKJZLZMUSUKBONZFZGH
    ZGHZIZUSVGJZVBLZMABKOAUSJZUOUTURVCAUSUNPVKUPVAUQVBAUSUNQAUSKQRSBVDJZUTVHVCV
    JVLUNVGUSVLUMVFGVLULVEGBVDUITTZUAVLVAVIVBVLUNVGUSVMUBUCSUSVDAKCUDUEBUFUGUH
    $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Commutes relation for Hilbert lattice elements
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    $( Define the commutes relation (on the Hilbert lattice).  Definition of
       commutes in [Kalmbach] p. 20, who uses the notation xCy for "x commutes
       with y."  See ~ cmbri for membership relation.  (Contributed by NM,
       14-Jun-2004.)  (New usage is discouraged.) $)
    df-cm $a |- C_H = { <. x , y >. | ( ( x e. CH /\ y e. CH ) /\
                x = ( ( x i^i y ) vH ( x i^i ( _|_ ` y ) ) ) ) } $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Binary relation expressing ` A ` commutes with ` B ` .  Definition of
       commutes in [Kalmbach] p. 20.  (Contributed by NM, 14-Jun-2004.)
       (New usage is discouraged.) $)
    cmbr $p |- ( ( A e. CH /\ B e. CH ) -> ( A C_H B <->
               A = ( ( A i^i B ) vH ( A i^i ( _|_ ` B ) ) ) ) ) $=
      ( vx vy cch wcel wa ccm wbr cin cort cfv co wceq cv eleq1 oveq12d anbi12d
      chj ineq1 anbi1d id eqeq12d anbi2d ineq2 fveq2 ineq2d df-cm brabg bianabs
      eqeq2d ) AEFZBEFZGZABHIAABJZABKLZJZSMZNZCOZEFZDOZEFZGZUTUTVBJZUTVBKLZJZSM
      ZNZGULVCGZAAVBJZAVFJZSMZNZGUNUSGCDABEEHUTANZVDVJVIVNVOVAULVCUTAEPUAVOUTAV
      HVMVOUBVOVEVKVGVLSUTAVBTUTAVFTQUCRVBBNZVJUNVNUSVPVCUMULVBBEPUDVPVMURAVPVK
      UOVLUQSVBBAUEVPVFUPAVBBKUFUGQUKRCDUHUIUJ $.
  $}

  ${
    $d x A $.  $d x B $.
    pjoml2.1 $e |- A e. CH $.
    pjoml2.2 $e |- B e. CH $.
    $( Variation of orthomodular law.  Definition in [Kalmbach] p. 22.
       (Contributed by NM, 31-Oct-2000.)  (New usage is discouraged.) $)
    pjoml2i $p |- ( A C_ B -> ( A vH ( ( _|_ ` A ) i^i B ) ) = B ) $=
      ( wss cort cfv cin chj co c0h inss2 choccli chincli chlubii mpan2 chdmj1i
      wceq ineq2i incom ineq1i inass chocini 3eqtr3i eqtri chjcli chshii pjomli
      sylancl ) ABEZAAFGZBHZIJZBEZBUMFGZHZKRUMBRUJULBEUNUKBLAULBCUKBACMDNZDOPUP
      BUKULFGZHZHZKUOUSBAULCUQQSBUKHZURHULURHUTKVAULURBUKTUABUKURUBULUQUCUDUEUM
      BAULCUQUFBDUGUHUI $.

    $( Variation of orthomodular law.  (Contributed by NM, 24-Jun-2004.)
       (New usage is discouraged.) $)
    pjoml3i $p |- ( B C_ A -> ( A i^i ( ( _|_ ` A ) vH B ) ) = B ) $=
      ( cort cfv wss cin chj co choccli pjoml2i chsscon3i eqcom chincli chdmj2i
      wceq chdmm4i ineq2i eqtri eqeq1i chjcli chcon2i 3bitr3i 3imtr4i ) AEFZBEF
      ZGUFUFEFZUGHZIJZUGQZBAGAUFBIJZHZBQZUFUGACKZBDKZLBADCMUJEFZBQBUQQUNUKUQBNU
      QUMBUQAUIEFZHUMAUICUHUGUFUOKUPOZPURULAUFBUODRSTUABUJDUFUIUOUSUBUCUDUE $.

    $( Variation of orthomodular law.  (Contributed by NM, 6-Dec-2000.)
       (New usage is discouraged.) $)
    pjoml4i $p |- ( A vH ( B i^i ( ( _|_ ` A ) vH ( _|_ ` B ) ) ) ) =
                 ( A vH B ) $=
      ( cort cfv chj cin wss inss1 choccli chjcli chincli chlej2i ax-mp chdmm1i
      co chub1i ineq1i incom eqtri oveq2i inss2 pjoml2i eqtr3i chlej1i eqsstr3i
      wceq chlubii mp2an eqssi ) ABAEFZBEFZGQZHZGQZABGQZUOBIUPUQIBUNJUOBABUNDUL
      UMACKBDKLMZDCNOAUPIBUPIUQUPIAUOCURRBABHZUOGQZUPUSUSEFZBHZGQZUTBVBUOUSGVBU
      NBHUOVAUNBABCDPSUNBTUAUBUSBIVCBUHABUCUSBABCDMZDUDOUEUSAIUTUPIABJUSAUOVDCU
      RUFOUGABUPCDAUOCURLUIUJUK $.

    $( The orthomodular law.  Remark in [Kalmbach] p. 22.  (Contributed by NM,
       12-Jun-2006.)  (New usage is discouraged.) $)
    pjoml5i $p |- ( A vH ( ( _|_ ` A ) i^i ( A vH B ) ) ) = ( A vH B ) $=
      ( chj co wss cort cfv cin wceq chub1i chjcli pjoml2i ax-mp ) AABEFZGAAHIP
      JEFPKABCDLAPCABCDMNO $.

    $( An equivalent of the orthomodular law.  Theorem 29.13(e) of [MaedaMaeda]
       p. 132.  (Contributed by NM, 30-May-2004.)
       (New usage is discouraged.) $)
    pjoml6i $p |- ( A C_ B ->
                  E. x e. CH ( A C_ ( _|_ ` x ) /\ ( A vH x ) = B ) ) $=
      ( wss cort cfv cin cch wcel chj co wceq wa wrex choccli chincli pjoml2i
      cv chub1i chdmm2i sseqtr4i jctil fveq2 sseq2d oveq2 eqeq1d anbi12d rspcev
      sylancr ) BCFZBGHZCIZJKBUNGHZFZBUNLMZCNZOZBATZGHZFZBUTLMZCNZOZAJPUMCBDQER
      ULURUPBCDESBBCGHZLMUOBVFDCEQUABCDEUBUCUDVEUSAUNJUTUNNZVBUPVDURVGVAUOBUTUN
      GUEUFVGVCUQCUTUNBLUGUHUIUJUK $.

    $( Binary relation expressing the commutes relation.  Definition of
       commutes in [Kalmbach] p. 20.  (Contributed by NM, 6-Aug-2004.)
       (New usage is discouraged.) $)
    cmbri $p |- ( A C_H B <-> A = ( ( A i^i B ) vH ( A i^i ( _|_ ` B ) ) ) ) $=
      ( cch wcel ccm wbr cin cort cfv chj co wceq wb cmbr mp2an ) AEFBEFABGHAAB
      IABJKILMNOCDABPQ $.

    $( Commutation is symmetric.  Theorem 3.4 of [Beran] p. 45.  (Contributed
       by NM, 3-Nov-2000.)  (New usage is discouraged.) $)
    cmcmlem $p |- ( A C_H B -> B C_H A ) $=
      ( cin cort cfv chj wceq ccm wbr wss choccli chub2i chdmj4i oveq12i chjcli
      co incom cmbri sseqin2 mpbi ineq2i chdmm1i ineq1i 3eqtr4ri chdmj2i eqeq2i
      inass biimpri fveq2d syl6req ineq1d syl5eq oveq2d chincli pjoml2i 3eqtr3g
      inss2 ax-mp 3imtr4i ) AABEZABFGZEZHRZIZBBAEZBAFGZEZHRZIABJKBAJKVFVBVBFGZB
      EZHRZVBVHBEZHRBVJVFVLVNVBHVFVLVHVCHRZVHBHRZEZBEZVNVOVPBEZEVOBEVRVLVSBVOBV
      PLVSBIBVHDACMZNBVPUAUBUCVOVPBUIVKVOBABCDUDUEUFVFVQVHBVFVHVOFGZVPFGZHRZFGV
      QVFAWCFAWCIVFWCVEAWAVBWBVDHABCDOABCDUGPUHUJUKVOVPVHVCVTBDMQVHBVTDQOULUMUN
      UOVBBLVMBIABUSVBBABCDUPDUQUTVBVGVNVIHABSVHBSPURABCDTBADCTVA $.

    $( Commutation is symmetric.  Theorem 2(v) of [Kalmbach] p. 22.
       (Contributed by NM, 4-Nov-2000.)  (New usage is discouraged.) $)
    cmcmi $p |- ( A C_H B <-> B C_H A ) $=
      ( ccm wbr cmcmlem impbii ) ABEFBAEFABCDGBADCGH $.

    $( Commutation with orthocomplement.  Theorem 2.3(i) of [Beran] p. 39.
       (Contributed by NM, 4-Nov-2000.)  (New usage is discouraged.) $)
    cmcm2i $p |- ( A C_H B <-> A C_H ( _|_ ` B ) ) $=
      ( cin cort cfv chj co wceq ccm wbr chincli choccli chjcomi pjococi ineq2i
      oveq2i eqtr4i cmbri eqeq2i 3bitr4i ) AABEZABFGZEZHIZJAUEAUDFGZEZHIZJABKLA
      UDKLUFUIAUFUEUCHIUIUCUEABCDMAUDCBDNZMOUHUCUEHUGBABDPQRSUAABCDTAUDCUJTUB
      $.

    $( Commutation with orthocomplement.  Remark in [Kalmbach] p. 23.
       (Contributed by NM, 4-Nov-2000.)  (New usage is discouraged.) $)
    cmcm3i $p |- ( A C_H B <-> ( _|_ ` A ) C_H B ) $=
      ( ccm wbr cort cfv cmcm2i cmcmi choccli 3bitr4i ) BAEFBAGHZEFABEFMBEFBADC
      IABCDJMBACKDJL $.

    $( Commutation with orthocomplement.  Remark in [Kalmbach] p. 23.
       (Contributed by NM, 7-Aug-2004.)  (New usage is discouraged.) $)
    cmcm4i $p |- ( A C_H B <-> ( _|_ ` A ) C_H ( _|_ ` B ) ) $=
      ( ccm wbr cort cfv cmcm2i choccli cmcm3i bitri ) ABEFABGHZEFAGHMEFABCDIAM
      CBDJKL $.

    $( Alternate definition of the commutes relation.  Remark in [Kalmbach]
       p. 23.  (Contributed by NM, 7-Aug-2004.)  (New usage is discouraged.) $)
    cmbr2i $p |- ( A C_H B <-> A = ( ( A vH B ) i^i ( A vH ( _|_ ` B ) ) ) ) $=
      ( ccm wbr cort cfv cin chj wceq cmcm4i choccli cmbri eqcom chjcli chincli
      co chcon3i chdmj1i chdmm1i oveq12i eqtri eqeq2i 3bitrri 3bitri ) ABEFAGHZ
      BGHZEFUGUGUHIZUGUHGHIZJRZKZAABJRZAUHJRZIZKZABCDLUGUHACMBDMZNUPUOAKUGUOGHZ
      KULAUOOUOAUMUNABCDPZAUHCUQPZQCSURUKUGURUMGHZUNGHZJRUKUMUNUSUTUAVAUIVBUJJA
      BCDTAUHCUQTUBUCUDUEUF $.

    ${
      cmcmi.1 $e |- A C_H B $.
      $( Commutation is symmetric.  Theorem 2(v) of [Kalmbach] p. 22.
         (Contributed by NM, 7-Aug-2004.)  (New usage is discouraged.) $)
      cmcmii $p |- B C_H A $=
        ( ccm wbr cmcmi mpbi ) ABFGBAFGEABCDHI $.

      $( Commutation with orthocomplement.  Theorem 2.3(i) of [Beran] p. 39.
         (Contributed by NM, 7-Aug-2004.)  (New usage is discouraged.) $)
      cmcm2ii $p |- A C_H ( _|_ ` B ) $=
        ( ccm wbr cort cfv cmcm2i mpbi ) ABFGABHIFGEABCDJK $.

      $( Commutation with orthocomplement.  Remark in [Kalmbach] p. 23.
         (Contributed by NM, 7-Aug-2004.)  (New usage is discouraged.) $)
      cmcm3ii $p |- ( _|_ ` A ) C_H B $=
        ( ccm wbr cort cfv cmcm3i mpbi ) ABFGAHIBFGEABCDJK $.
    $}

    $( Alternate definition for the commutes relation.  Lemma 3 of [Kalmbach]
       p. 23.  (Contributed by NM, 6-Dec-2000.)  (New usage is discouraged.) $)
    cmbr3i $p |- ( A C_H B
             <-> ( A i^i ( ( _|_ ` A ) vH B ) ) = ( A i^i B ) ) $=
      ( ccm wbr cort cfv chj co wceq cmcmi cmbr2i chjcomi ineq2i choccli eqtr3i
      cin sylbi chincli bitri ineq2 inass chabs2i eqtri ineq12i syl6req pjoml2i
      wss inss1 ax-mp chdmm3i incom eqeq1i oveq1 syl5eq cmbri sylibr impbii ) A
      BEFZAAGHZBIJZRZABRZKZUTBBAIJZBVAIJZRZKZVEUTBAEFVIABCDLBADCMUAVIVDAVHRZVCB
      VHAUBAVFRZVGRVJVCAVFVGUCVKAVGVBVKAABIJZRAVFVLABADCNOABCDUDUEBVADACPNUFQUG
      SVEAVDABGHZRZIJZKUTVEAVNGHZARZVNIJZVOVNVQIJZAVRVNAUIVSAKAVMUJVNAAVMCBDPTZ
      CUHUKVNVQVTVPAVNVTPCTNQVEVQVDKVRVOKVCVQVDAVPRVCVQVPVBAABCDULOAVPUMQUNVQVD
      VNIUOSUPABCDUQURUS $.

    $( Alternate definition for the commutes relation.  (Contributed by NM,
       6-Dec-2000.)  (New usage is discouraged.) $)
    cmbr4i $p |- ( A C_H B <-> ( A i^i ( ( _|_ ` A ) vH B ) ) C_ B ) $=
      ( ccm wbr cort cfv chj co cin wceq wss cmbr3i inss2 sseq1 mpbiri wa inss1
      jctl ssin sylib choccli chub2i sslin ax-mp jctir eqss sylibr impbii bitri
      ) ABEFAAGHZBIJZKZABKZLZUNBMZABCDNUPUQUPUQUOBMABOUNUOBPQUQUNUOMZUOUNMZRUPU
      QURUSUQUNAMZUQRURUQUTAUMSTUNABUAUBBUMMUSBULDACUCUDBUMAUEUFUGUNUOUHUIUJUK
      $.

    $( Comparable Hilbert lattice elements commute.  Theorem 2.3(iii) of
       [Beran] p. 40.  (Contributed by NM, 16-Jan-2005.)
       (New usage is discouraged.) $)
    lecmi $p |- ( A C_ B -> A C_H B ) $=
      ( wss cort cfv chj co cin ccm wbr ssinss1 cmbr4i sylibr ) ABEAAFGBHIZJBEA
      BKLAPBMABCDNO $.

    ${
      lecmi.1 $e |- A C_ B $.
      $( Comparable Hilbert lattice elements commute.  Theorem 2.3(iii) of
         [Beran] p. 40.  (Contributed by NM, 7-Aug-2004.)
         (New usage is discouraged.) $)
      lecmii $p |- A C_H B $=
        ( wss ccm wbr lecmi ax-mp ) ABFABGHEABCDIJ $.
    $}

    $( A Hilbert lattice element commutes with its join.  (Contributed by NM,
       7-Aug-2004.)  (New usage is discouraged.) $)
    cmj1i $p |- A C_H ( A vH B ) $=
      ( chj co chjcli chub1i lecmii ) AABEFCABCDGABCDHI $.

    $( A Hilbert lattice element commutes with its join.  (Contributed by NM,
       7-Aug-2004.)  (New usage is discouraged.) $)
    cmj2i $p |- B C_H ( A vH B ) $=
      ( chj co chjcli chub2i lecmii ) BABEFDABCDGBADCHI $.

    $( A Hilbert lattice element commutes with its meet.  (Contributed by NM,
       7-Aug-2004.)  (New usage is discouraged.) $)
    cmm1i $p |- A C_H ( A i^i B ) $=
      ( cin chincli inss1 lecmii cmcmii ) ABEZAABCDFZCJAKCABGHI $.

    $( A Hilbert lattice element commutes with its meet.  (Contributed by NM,
       7-Aug-2004.)  (New usage is discouraged.) $)
    cmm2i $p |- B C_H ( A i^i B ) $=
      ( cin ccm cmm1i incom breqtri ) BBAEABEFBADCGBAHI $.
  $}

  $( Alternate definition for the commutes relation.  Lemma 3 of [Kalmbach]
     p. 23.  (Contributed by NM, 14-Jun-2006.)  (New usage is discouraged.) $)
  cmbr3 $p |- ( ( A e. CH /\ B e. CH ) ->
              ( A C_H B <-> ( A i^i ( ( _|_ ` A ) vH B ) ) = ( A i^i B ) ) ) $=
    ( cch wcel ccm wbr cort cfv chj co cin wceq wb c0h cif breq1 eqeq12d h0elch
    bibi12d elimel fveq2 oveq1d ineq12d ineq1 breq2 oveq2 ineq2d cmbr3i dedth2h
    id ineq2 ) ACDZBCDZABEFZAAGHZBIJZKZABKZLZMULANOZBEFZUTUTGHZBIJZKZUTBKZLZMUT
    UMBNOZEFZUTVBVGIJZKZUTVGKZLZMABNNAUTLZUNVAUSVFAUTBEPVMUQVDURVEVMAUTUPVCVMUJ
    VMUOVBBIAUTGUAUBUCAUTBUDQSBVGLZVAVHVFVLBVGUTEUEVNVDVJVEVKVNVCVIUTBVGVBIUFUG
    BVGUTUKQSUTVGANCRTBNCRTUHUI $.

  $( The zero Hilbert lattice element commutes with every element.
     (Contributed by NM, 16-Jun-2006.)  (New usage is discouraged.) $)
  cm0 $p |- ( A e. CH -> 0H C_H A ) $=
    ( cch wcel c0h ccm wbr cort cfv chj cin wceq h0elch choccli chjcl mpan chm0
    co syl eqtr4d incom 3eqtr4g wb cmbr3 mpbird ) ABCZDAEFZDDGHZAIQZJZDAJZKZUEU
    HDJZADJZUIUJUEULDUMUEUHBCZULDKUGBCUEUNDLMUGANOUHPRAPSDUHTDATUADBCUEUFUKUBLD
    AUCOUD $.

  ${
    cmid.1 $e |- A e. CH $.
    $( The commutes relation is reflexive.  (Contributed by NM, 7-Aug-2004.)
       (New usage is discouraged.) $)
    cmidi $p |- A C_H A $=
      ( ssid lecmii ) AABBACD $.
  $}

  $( Variation of orthomodular law.  Definition in [Kalmbach] p. 22.
     (Contributed by NM, 13-Jun-2006.)  (New usage is discouraged.) $)
  pjoml2 $p |- ( ( A e. CH /\ B e. CH /\ A C_ B ) ->
                ( A vH ( ( _|_ ` A ) i^i B ) ) = B ) $=
    ( cch wcel wss cort cfv cin chj co wi c0h cif sseq1 id fveq2 imbi12d h0elch
    wceq elimel ineq1d oveq12d eqeq1d sseq2 ineq2 oveq2d eqeq12d pjoml2i 3impia
    dedth2h ) ACDZBCDZABEZAAFGZBHZIJZBSZUKULUMUQKUKALMZBEZURURFGZBHZIJZBSZKURUL
    BLMZEZURUTVDHZIJZVDSZKABLLAURSZUMUSUQVCAURBNVIUPVBBVIAURUOVAIVIOVIUNUTBAURF
    PUAUBUCQBVDSZUSVEVCVHBVDURUDVJVBVGBVDVJVAVFURIBVDUTUEUFVJOUGQURVDALCRTBLCRT
    UHUJUI $.

  $( Variation of orthomodular law.  (Contributed by NM, 24-Jun-2004.)
     (New usage is discouraged.) $)
  pjoml3 $p |- ( ( A e. CH /\ B e. CH ) ->
                ( B C_ A -> ( A i^i ( ( _|_ ` A ) vH B ) ) = B ) ) $=
    ( cch wcel wss cort cfv chj co cin wceq wi chil cif sseq2 id oveq1d imbi12d
    fveq2 ifchhv ineq12d eqeq1d sseq1 oveq2 ineq2d eqeq12d pjoml3i dedth2h ) AC
    DZBCDZBAEZAAFGZBHIZJZBKZLBUIAMNZEZUPUPFGZBHIZJZBKZLUJBMNZUPEZUPURVBHIZJZVBK
    ZLABMMAUPKZUKUQUOVAAUPBOVGUNUTBVGAUPUMUSVGPVGULURBHAUPFSQUAUBRBVBKZUQVCVAVF
    BVBUPUCVHUTVEBVBVHUSVDUPBVBURHUDUEVHPUFRUPVBATBTUGUH $.

  $( The orthomodular law.  Remark in [Kalmbach] p. 22.  (Contributed by NM,
     12-Jun-2006.)  (New usage is discouraged.) $)
  pjoml5 $p |- ( ( A e. CH /\ B e. CH ) ->
             ( A vH ( ( _|_ ` A ) i^i ( A vH B ) ) ) = ( A vH B ) ) $=
    ( cch wcel wa chj co wss cort cfv cin wceq simpl chjcl chub1 pjoml2 syl3anc
    ) ACDZBCDZERABFGZCDATHAAIJTKFGTLRSMABNABOATPQ $.

  $( Commutation is symmetric.  Theorem 2(v) of [Kalmbach] p. 22.  (Contributed
     by NM, 13-Jun-2006.)  (New usage is discouraged.) $)
  cmcm $p |- ( ( A e. CH /\ B e. CH ) -> ( A C_H B <-> B C_H A ) ) $=
    ( cch wcel ccm wbr wb c0h cif wceq breq1 breq2 bibi12d h0elch cmcmi dedth2h
    elimel ) ACDZBCDZABEFZBAEFZGRAHIZBEFZBUBEFZGUBSBHIZEFZUEUBEFZGABHHAUBJTUCUA
    UDAUBBEKAUBBELMBUEJUCUFUDUGBUEUBELBUEUBEKMUBUEAHCNQBHCNQOP $.

  $( Commutation with orthocomplement.  Remark in [Kalmbach] p. 23.
     (Contributed by NM, 13-Jun-2006.)  (New usage is discouraged.) $)
  cmcm3 $p |- ( ( A e. CH /\ B e. CH ) ->
               ( A C_H B <-> ( _|_ ` A ) C_H B ) ) $=
    ( cch wcel ccm wbr cort cfv wb c0h cif wceq breq1 fveq2 breq1d breq2 h0elch
    bibi12d elimel cmcm3i dedth2h ) ACDZBCDZABEFZAGHZBEFZIUBAJKZBEFZUGGHZBEFZIU
    GUCBJKZEFZUIUKEFZIABJJAUGLZUDUHUFUJAUGBEMUNUEUIBEAUGGNORBUKLUHULUJUMBUKUGEP
    BUKUIEPRUGUKAJCQSBJCQSTUA $.

  $( Commutation with orthocomplement.  Theorem 2.3(i) of [Beran] p. 39.
     (Contributed by NM, 14-Jun-2006.)  (New usage is discouraged.) $)
  cmcm2 $p |- ( ( A e. CH /\ B e. CH ) ->
               ( A C_H B <-> A C_H ( _|_ ` B ) ) ) $=
    ( cch wcel wa ccm wbr cort cfv wb cmcm3 ancoms cmcm choccl sylan2 3bitr4d )
    ACDZBCDZEBAFGZBHIZAFGZABFGATFGZRQSUAJBAKLABMRQTCDUBUAJBNATMOP $.

  $( Comparable Hilbert lattice elements commute.  Theorem 2.3(iii) of [Beran]
     p. 40.  (Contributed by NM, 13-Jun-2006.)  (New usage is discouraged.) $)
  lecm $p |- ( ( A e. CH /\ B e. CH /\ A C_ B ) -> A C_H B ) $=
    ( cch wcel wss ccm wbr c0h cif wceq sseq1 breq1 imbi12d sseq2 h0elch elimel
    wi breq2 lecmi dedth2h 3impia ) ACDZBCDZABEZABFGZUBUCUDUEQUBAHIZBEZUFBFGZQU
    FUCBHIZEZUFUIFGZQABHHAUFJUDUGUEUHAUFBKAUFBFLMBUIJUGUJUHUKBUIUFNBUIUFFRMUFUI
    AHCOPBHCOPSTUA $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Foulis-Holland theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Foulis-Holland Theorem.  If any 2 pairs in a triple of orthomodular
     lattice elements commute, the triple is distributive.  First of two parts.
     Theorem 5 of [Kalmbach] p. 25.  (Contributed by NM, 14-Jun-2006.)
     (New usage is discouraged.) $)
  fh1 $p |- ( ( ( A e. CH /\ B e. CH /\ C e. CH ) /\ ( A C_H B /\ A C_H C ) )
             -> ( A i^i ( B vH C ) ) = ( ( A i^i B ) vH ( A i^i C ) ) ) $=
    ( cch wcel ccm wbr wa cin chj cort cfv c0h wceq chincl sylan2 adantr ineq2d
    co eqtrd w3a csh wss chjcl syl2an anandis chsh syl jca 3impb ledi incom a1i
    chdmj1 chdmm1 ineqan12d ineq12d 3impdi inass cmcm2 wb choccl cmbr3 3adantl3
    bitrd biimpa adantrr 3adantl2 adantrl inindi syl5eq in12 syl6eq chocin chm0
    3eqtr4g eqtr3d sylan9eqr pjoml syl12anc eqcomd ) ADEZBDEZCDEZUAZABFGZACFGZH
    ZHZABIZACIZJSZABCJSZIZWIWLDEZWNUBEZHZWLWNUCZWNWLKLZIZMNWLWNNWEWQWHWBWCWDWQW
    BWCWDHZHZWOWPWBWCWDWOWBWCHZWJDEZWKDEZWOWBWDHZABOZACOZWJWKUDUEUFXBWNDEZWPXAW
    BWMDEZXIBCUDZAWMOPWNUGUHUIUJQWEWRWHABCUKQWIWTWMAIZAKLZBKLZJSZXMCKLZJSZIZIZM
    WEWTXSNZWHWBWCWDXTXCXFHZWNXLWSXRWNXLNYAAWMULUMYAWSWJKLZWKKLZIZXRXCXDXEWSYDN
    XFXGXHWJWKUNUEXCXFYBXOYCXQABUOACUOUPTUQURQWIXSAWMXNXPIZIZIZMWIXSWMAYEIZIZYG
    WIXSWMAXRIZIYIWMAXRUSWIYJYHWMWIAXOIZAXQIZIAXNIZAXPIZIYJYHWIYKYMYLYNWEWFYKYM
    NZWGWBWCWFYOWDXCWFYOXCWFAXNFGZYOABUTWCWBXNDEYPYOVABVBAXNVCPVEVFVDVGWEWGYLYN
    NZWFWBWDWGYQWCXFWGYQXFWGAXPFGZYQACUTWDWBXPDEYRYQVACVBAXPVCPVEVFVHVIUQAXOXQV
    JAXNXPVJVPRVKWMAYEVLVMWEYGMNZWHWBWCWDYSXAWBYGAMIMXAYFMAXAWMWMKLZIZYFMXAYTYE
    WMBCUNRXAXJUUAMNXKWMVNUHVQRAVOVRUJQTTWLWNVSVTWA $.

  $( Foulis-Holland Theorem.  If any 2 pairs in a triple of orthomodular
     lattice elements commute, the triple is distributive.  Second of two
     parts.  Theorem 5 of [Kalmbach] p. 25.  (Contributed by NM, 14-Jun-2006.)
     (New usage is discouraged.) $)
  fh2 $p |- ( ( ( A e. CH /\ B e. CH /\ C e. CH ) /\ ( B C_H A /\ B C_H C ) )
             -> ( A i^i ( B vH C ) ) = ( ( A i^i B ) vH ( A i^i C ) ) ) $=
    ( cch wcel ccm wbr wa cin chj co cort cfv c0h wceq chincl syl adantr ineq1d
    eqtrd w3a csh wss chjcl syl2an anandis sylan2 chsh 3impb ledi chdmj1 chdmm1
    jca 3impdi ineq2d in4 cmcm2 cmcm choccl cmbr3 3bitr3d biimpa incom 3adantl3
    wb syl6eq adantrr syl5eq oveq1d 3ad2ant2 cmcm3 sylan bitrd 3adantl1 adantrl
    ococ eqtr3d inass in12 eqtr4i chocin 3adant2 chm0 pjoml syl12anc eqcomd ) A
    DEZBDEZCDEZUAZBAFGZBCFGZHZHZABIZACIZJKZABCJKZIZWNWQDEZWSUBEZHZWQWSUCZWSWQLM
    ZIZNOWQWSOWJXBWMWGWHWIXBWGWHWIHZHZWTXAWGWHWIWTWGWHHZWODEZWPDEZWTWGWIHZABPZA
    CPZWOWPUDUEUFXGWSDEZXAXFWGWRDEXNBCUDAWRPUGWSUHQUMUIRWJXCWMABCUJRWNXEBLMZWRI
    ZAWPLMZIZIZNWNXEXOAIZWRXQIZIZXSWNXEWSALMXOJKZXQIZIZYBWJXEYEOWMWJXDYDWSWGWHW
    IXDYDOXHXKHZXDWOLMZXQIZYDXHXIXJXDYHOXKXLXMWOWPUKUEYFYGYCXQXHYGYCOXKABULRSTU
    NUORWNYEAYCIZYAIYBAWRYCXQUPWNYIXTYAWJWKYIXTOZWLWGWHWKYJWIXHWKHYIAXOIZXTXHWK
    YIYKOZXHABFGAXOFGZWKYLABUQABURWHWGXODEZYMYLVEBUSZAXOUTUGVAVBAXOVCVFVDVGSVHT
    XOAWRXQUPVFWNXSXOCIZXRIZNWNXPYPXRWNXOXOLMZCJKZIZXPYPWJYTXPOZWMWHWGUUAWIWHYS
    WRXOWHYRBCJBVPVIUOVJRWJWLYTYPOZWKWHWIWLUUBWGXFWLUUBXFWLXOCFGZUUBBCVKWHYNWIU
    UCUUBVEYOXOCUTVLVMVBVNVOVQSWJYQNOWMWJYQXONIZNWGWIYQUUDOWHXKYQXOCXRIZIUUDXOC
    XRVRXKUUENXOXKUUEWPXQIZNUUEACXQIIUUFCAXQVSACXQVRVTXKXJUUFNOXMWPWAQVHUOVHWBW
    HWGUUDNOZWIWHYNUUGYOXOWCQVJTRTTWQWSWDWEWF $.

  $( A lattice element that commutes with two others also commutes with their
     join.  Theorem 4.2 of [Beran] p. 49.  (Contributed by NM, 15-Jun-2006.)
     (New usage is discouraged.) $)
  cm2j $p |- ( ( ( A e. CH /\ B e. CH /\ C e. CH ) /\ ( A C_H B /\ A C_H C ) )
             -> A C_H ( B vH C ) ) $=
    ( cch wcel ccm wbr wa chj co cin wceq cmcm ancoms bitrd biimpa incom chincl
    wb cmbr w3a cort cfv oveq12i syl6eq 3adantl3 adantrr adantrl oveq12d choccl
    3adantl2 sylan jca chj4 syl2an 3impdi adantr syl5reqr 3anim1i cmcm3 3adant3
    fh1 3adant2 anbi12d syl2anc 3eqtrd ex chjcl sylan2 3impb sylibrd imp ) ADEZ
    BDEZCDEZUAZABFGZACFGZHZABCIJZFGZVPVSVTVTAKZVTAUBUCZKZIJZLZWAVPVSWFVPVSHZVTA
    BKZWCBKZIJZACKZWCCKZIJZIJZWHWKIJZWIWLIJZIJZWEWGBWJCWMIVPVQBWJLZVRVMVNVQWRVO
    VMVNHZVQHBBAKZBWCKZIJZWJWSVQBXBLZWSVQBAFGZXCABMVNVMXDXCSBATNOPWTWHXAWIIBAQB
    WCQUDUEUFUGVPVRCWMLZVQVMVOVRXEVNVMVOHZVRHCCAKZCWCKZIJZWMXFVRCXILZXFVRCAFGZX
    JACMVOVMXKXJSCATNOPXGWKXHWLICAQCWCQUDUEUKUHUIVPWNWQLZVSVMVNVOXLWSWHDEZWIDEZ
    HWKDEZWLDEZHXLXFWSXMXNABRVMWCDEZVNXNAUJZWCBRULUMXFXOXPACRVMXQVOXPXRWCCRULUM
    WHWIWKWLUNUOUPUQWGWOWBWPWDIWGWBAVTKWOAVTQABCVBURWGWDWCVTKZWPWCVTQWGXQVNVOUA
    ZWCBFGZWCCFGZHZXSWPLVPXTVSVMXQVNVOXRUSUQVPVSYCVPVQYAVRYBVMVNVQYASVOABUTVAVM
    VOVRYBSVNACUTVCVDPWCBCVBVEURUIVFVGVMVNVOWAWFSZVNVOHVMVTDEZYDBCVHVMYEHWAVTAF
    GZWFAVTMYEVMYFWFSVTATNOVIVJVKVL $.

  ${
    fh1.1 $e |- A e. CH $.
    fh1.2 $e |- B e. CH $.
    fh1.3 $e |- C e. CH $.
    fh1.4 $e |- A C_H B $.
    fh1.5 $e |- A C_H C $.
    $( Foulis-Holland Theorem.  If any 2 pairs in a triple of orthomodular
       lattice elements commute, the triple is distributive.  First of two
       parts.  Theorem 5 of [Kalmbach] p. 25.  (Contributed by NM, 7-Aug-2004.)
       (New usage is discouraged.) $)
    fh1i $p |- ( A i^i ( B vH C ) ) = ( ( A i^i B ) vH ( A i^i C ) ) $=
      ( cch wcel w3a ccm wbr wa chj co cin wceq 3pm3.2i pm3.2i fh1 mp2an ) AIJZ
      BIJZCIJZKABLMZACLMZNABCOPQABQACQOPRUCUDUEDEFSUFUGGHTABCUAUB $.

    $( Foulis-Holland Theorem.  If any 2 pairs in a triple of orthomodular
       lattice elements commute, the triple is distributive.  Second of two
       parts.  Theorem 5 of [Kalmbach] p. 25.  (Contributed by NM, 7-Aug-2004.)
       (New usage is discouraged.) $)
    fh2i $p |- ( B i^i ( A vH C ) ) = ( ( B i^i A ) vH ( B i^i C ) ) $=
      ( cch wcel w3a ccm wbr wa chj co cin wceq 3pm3.2i pm3.2i fh2 mp2an ) BIJZ
      AIJZCIJZKABLMZACLMZNBACOPQBAQBCQOPRUCUDUEEDFSUFUGGHTBACUAUB $.

    $( Variation of the Foulis-Holland Theorem.  (Contributed by NM,
       16-Jan-2005.)  (New usage is discouraged.) $)
    fh3i $p |- ( A vH ( B i^i C ) ) = ( ( A vH B ) i^i ( A vH C ) ) $=
      ( cin chj co wceq cort cfv choccli cmcm3ii cmcm2ii chdmm1i chdmj1i chjcli
      fh1i ineq2i oveq12i 3eqtr4ri chincli 3eqtr4i chcon3i mpbir ) ABCIZJKZABJK
      ZACJKZIZLUMMNZUJMNZLUKMNZULMNZJKZAMNZUIMNZIZUNUOUSBMNZCMNZJKZIUSVBIZUSVCI
      ZJKVAURUSVBVCADOZBEOCFOUSBVGEABDEGPQUSCVGFACDFHPQUAUTVDUSBCEFRUBUPVEUQVFJ
      ABDESACDFSUCUDUKULABDETZACDFTZRAUIDBCEFUEZSUFUJUMAUIDVJTUKULVHVIUEUGUH $.

    $( Variation of the Foulis-Holland Theorem.  (Contributed by NM,
       16-Jan-2005.)  (New usage is discouraged.) $)
    fh4i $p |- ( B vH ( A i^i C ) ) = ( ( B vH A ) i^i ( B vH C ) ) $=
      ( cin chj co wceq cort cfv choccli cmcm3ii cmcm2ii chdmm1i chdmj1i chjcli
      fh2i ineq2i oveq12i 3eqtr4ri chincli 3eqtr4i chcon3i mpbir ) BACIZJKZBAJK
      ZBCJKZIZLUMMNZUJMNZLUKMNZULMNZJKZBMNZUIMNZIZUNUOUSAMNZCMNZJKZIUSVBIZUSVCI
      ZJKVAURVBUSVCADOZBEOCFOVBBVGEABDEGPQVBCVGFACDFHPQUAUTVDUSACDFRUBUPVEUQVFJ
      BAEDSBCEFSUCUDUKULBAEDTZBCEFTZRBUIEACDFUEZSUFUJUMBUIEVJTUKULVHVIUEUGUH $.

    $( A lattice element that commutes with two others also commutes with their
       join.  Theorem 4.2 of [Beran] p. 49.  (Contributed by NM, 11-May-2009.)
       (New usage is discouraged.) $)
    cm2ji $p |- A C_H ( B vH C ) $=
      ( cch wcel w3a ccm wbr wa chj co 3pm3.2i pm3.2i cm2j mp2an ) AIJZBIJZCIJZ
      KABLMZACLMZNABCOPLMUAUBUCDEFQUDUEGHRABCST $.

    $( A lattice element that commutes with two others also commutes with their
       meet.  Theorem 4.2 of [Beran] p. 49.  (Contributed by NM, 11-May-2009.)
       (New usage is discouraged.) $)
    cm2mi $p |- A C_H ( B i^i C ) $=
      ( cin ccm wbr cort cfv chj co choccli cmcm2ii cm2ji chdmm1i breqtrri
      chincli cmcm2i mpbir ) ABCIZJKAUDLMZJKABLMZCLMZNOUEJAUFUGDBEPCFPABDEGQACD
      FHQRBCEFSTAUDDBCEFUAUBUC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Quantum Logic Explorer axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    qlax1.1 $e |- A e. CH $.
    $( One of the equations showing ` CH ` is an ortholattice.  (This
       corresponds to axiom "ax-1" in the Quantum Logic Explorer.)
       (Contributed by NM, 4-Aug-2004.)  (New usage is discouraged.) $)
    qlax1i $p |- A = ( _|_ ` ( _|_ ` A ) ) $=
      ( cort cfv ococi eqcomi ) ACDCDAABEF $.
  $}

  ${
    qlax.1 $e |- A e. CH $.
    qlax.2 $e |- B e. CH $.
    $( One of the equations showing ` CH ` is an ortholattice.  (This
       corresponds to axiom "ax-2" in the Quantum Logic Explorer.)
       (Contributed by NM, 4-Aug-2004.)  (New usage is discouraged.) $)
    qlax2i $p |- ( A vH B ) = ( B vH A ) $=
      ( chjcomi ) ABCDE $.

    ${
      qlax.3 $e |- C e. CH $.
      $( One of the equations showing ` CH ` is an ortholattice.  (This
         corresponds to axiom "ax-3" in the Quantum Logic Explorer.)
         (Contributed by NM, 4-Aug-2004.)  (New usage is discouraged.) $)
      qlax3i $p |- ( ( A vH B ) vH C ) = ( A vH ( B vH C ) ) $=
        ( chjassi ) ABCDEFG $.
    $}

    $( One of the equations showing ` CH ` is an ortholattice.  (This
       corresponds to axiom "ax-4" in the Quantum Logic Explorer.)
       (Contributed by NM, 4-Aug-2004.)  (New usage is discouraged.) $)
    qlax4i $p |- ( A vH ( B vH ( _|_ ` B ) ) ) = ( B vH ( _|_ ` B ) ) $=
      ( chil chj co cort cfv chj1i chjoi oveq2i 3eqtr4i ) AEFGEABBHIFGZFGNACJNE
      AFBDKZLOM $.

    $( One of the equations showing ` CH ` is an ortholattice.  (This
       corresponds to axiom "ax-5" in the Quantum Logic Explorer.)
       (Contributed by NM, 4-Aug-2004.)  (New usage is discouraged.) $)
    qlax5i $p |- ( A vH ( _|_ ` ( ( _|_ ` A ) vH B ) ) ) = A $=
      ( cort cfv chj co cin chdmj2i oveq2i choccli chabs1i eqtri ) AAEFBGHEFZGH
      AABEFZIZGHAOQAGABCDJKAPCBDLMN $.
  $}

  ${
    qlaxr1.1 $e |- A e. CH $.
    qlaxr1.2 $e |- B e. CH $.
    qlaxr1.3 $e |- A = B $.
    $( One of the conditions showing ` CH ` is an ortholattice.  (This
       corresponds to axiom "ax-r1" in the Quantum Logic Explorer.)
       (Contributed by NM, 4-Aug-2004.)  (New usage is discouraged.) $)
    qlaxr1i $p |- B = A $=
      ( eqcomi ) ABEF $.
  $}

  ${
    qlaxr2.1 $e |- A e. CH $.
    qlaxr2.2 $e |- B e. CH $.
    qlaxr2.3 $e |- C e. CH $.
    qlaxr2.4 $e |- A = B $.
    qlaxr2.5 $e |- B = C $.
    $( One of the conditions showing ` CH ` is an ortholattice.  (This
       corresponds to axiom "ax-r2" in the Quantum Logic Explorer.)
       (Contributed by NM, 4-Aug-2004.)  (New usage is discouraged.) $)
    qlaxr2i $p |- A = C $=
      ( eqtri ) ABCGHI $.
  $}

  ${
    qlaxr4.1 $e |- A e. CH $.
    qlaxr4.2 $e |- B e. CH $.
    qlaxr4.3 $e |- A = B $.
    $( One of the conditions showing ` CH ` is an ortholattice.  (This
       corresponds to axiom "ax-r4" in the Quantum Logic Explorer.)
       (Contributed by NM, 4-Aug-2004.)  (New usage is discouraged.) $)
    qlaxr4i $p |- ( _|_ ` A ) = ( _|_ ` B ) $=
      ( cort fveq2i ) ABFEG $.
  $}

  ${
    qlaxr5.1 $e |- A e. CH $.
    qlaxr5.2 $e |- B e. CH $.
    qlaxr5.3 $e |- C e. CH $.
    qlaxr5.4 $e |- A = B $.
    $( One of the conditions showing ` CH ` is an ortholattice.  (This
       corresponds to axiom "ax-r5" in the Quantum Logic Explorer.)
       (Contributed by NM, 4-Aug-2004.)  (New usage is discouraged.) $)
    qlaxr5i $p |- ( A vH C ) = ( B vH C ) $=
      ( chj oveq1i ) ABCHGI $.
  $}

  ${
    qlaxr3.1 $e |- A e. CH $.
    qlaxr3.2 $e |- B e. CH $.
    qlaxr3.3 $e |- C e. CH $.
    qlaxr3.4 $e |- ( C vH ( _|_ ` C ) ) =
        ( ( _|_ ` ( ( _|_ ` A ) vH ( _|_ ` B ) ) ) vH ( _|_ ` ( A vH B ) ) ) $.
    $( A variation of the orthomodular law, showing ` CH ` is an orthomodular
       lattice.  (This corresponds to axiom "ax-r3" in the Quantum Logic
       Explorer.)  (Contributed by NM, 7-Aug-2004.)
       (New usage is discouraged.) $)
    qlaxr3i $p |- A = B $=
      ( chj chjcli cort cfv cin c0h wceq choccli cmcmii cmcm2ii eqtr3i chincli
      co chshii chub1i incom cmj1i cmj2i fh1i chil chjoi chdmm1i 3eqtr4i h0elch
      wa choc0 chcon3i mpbir chj00i simpli omlsii chub2i simpri eqtr4i ) AABHTZ
      BAVBDVBABDEIZUAZABDEUBVBAJKZLZMNZVBBJKZLZMNZVGVJULVFVIHTZMNVEVHHTZVBLZVKM
      VBVLLVMVKVBVLUCVBVEVHVCADOZBEOZVBAVCDAVBDVCABDEUDPQVBBVCEBVBEVCABDEUEPQUF
      RVMMNMJKZVMJKZNUGVLJKVBJKHTZVPVQCCJKHTUGVRCFUHGRUMVLVBVEVHVNVOIZVCUIUJVMM
      VLVBVSVCSUKUNUORVFVIVBVEVCVNSVBVHVCVOSUPUOZUQURBVBEVDBAEDUSVGVJVTUTURVA
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Orthogonal subspaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d f j n u x y z A $.  $d z C $.  $d j k x y z F $.  $d f j k n x y z ph $.
    $d f n u x y z B $.  $d k x y G $.  $d j k n u x y z H $.  $d n z N $.
    chscl.1 $e |- ( ph -> A e. CH ) $.
    chscl.2 $e |- ( ph -> B e. CH ) $.
    chscl.3 $e |- ( ph -> B C_ ( _|_ ` A ) ) $.
    ${
      chscl.4 $e |- ( ph -> H : NN --> ( A +H B ) ) $.
      chscl.5 $e |- ( ph -> H ~~>v u ) $.
      chscl.6 $e |- F = ( n e. NN |-> ( ( projh ` A ) ` ( H ` n ) ) ) $.
      $( Lemma for ~ chscl .  (Contributed by Mario Carneiro, 19-May-2014.)
         (New usage is discouraged.) $)
      chscllem1 $p |- ( ph -> F : NN --> A ) $=
        ( vx cn cfv wcel co wceq cph cv cpjh wa cva cort wrex eqid wb ffvelrnda
        cch adantr csh wss chsh syl shocsh shless shscom syl2anc 3sstr4d sselda
        syl31anc syldan pjpreeq mpbii simpld fmptd ) AEOEUAZGPZCUBPPZCFAVHOQZUC
        ZVJCQZVIVJNUAUDRSNCUEPZUFZVLVJVJSZVMVOUCZVJUGVLCUJQZVICVNTRZQZVPVQUHAVR
        VKHUKAVKVICDTRZQVTAOWAVHGKUIAWAVSVIADCTRZVNCTRZWAVSADULQZVNULQZCULQZDVN
        UMWBWCUMADUJQWDIDUNUOZAWFWEAVRWFHCUNUOZCUPUOZWHJDVNCUQVBAWFWDWAWBSWHWGC
        DURUSAWFWEVSWCSWHWICVNURUSUTVAVCNVIVJCVDUSVEVFMVG $.

      $( Lemma for ~ chscl .  (Contributed by Mario Carneiro, 19-May-2014.)
         (New usage is discouraged.) $)
      chscllem2 $p |- ( ph -> F e. dom ~~>v ) $=
        ( wcel chil cn cfv co syl wceq vx vj vk ccau cv chli wbr cdm wf cmv cno
        wrex clt cuz wral crp chscllem1 cch chss fssd wa hlimcaui hcaucvg sylan
        wss wi eluznn adantll cle c2 cexp caddc cc0 cph chsh shscl syl2anc shss
        cr adantr ffvelrnda sseldd adantrr simprr hvsubcl normcl sqge0d resqcld
        csh ffvelrnd addge01d mpbid cva cort shsubcl syl3anc hvsubsub4 syl22anc
        csp ocsh cpjh fveq2 fveq2d fvex eqcomd adantl wb shless syl31anc shscom
        fvmpt 3sstr4d pjpreeq simprd sselda hvsubadd eqcom mpbird risset sylibr
        3bitr4g rexbidva anbi2d oveq12d eleq1d imbi12d adantrl eqeltrd shocorth
        eleq1 chvarv mp2and normpyth mpd hvpncan3 oveq1d eqtr3d breqtrd normge0
        adantlr le2sqd rpre ad2antlr lelttr anassrs ralimdva reximdva ralrimiva
        mpand syldan hcau sylanbrc ax-hcompl wfn hlimf ffn ax-mp fnbr rexlimivw
        mpan 3syl ) AFUDNZFUAUEZUFUGZUAOULFUFUHZNZAPOFUIUBUEZFQZUCUEZFQZUJRZUKQ
        ZUVCUMUGZUCUVGUNQZUOZUBPULZUAUPUOUVBAPCOFABCDEFGHIJKLMUQZACURNZCOVEZHCU
        SSZUTAUVPUAUPAUVCUPNZVAZUVGGQZUVIGQZUJRZUKQZUVCUMUGZUCUVNUOZUBPULZUVPAG
        UDNZUWAUWIAGBUEZUFUGUWJLUWKGVBSUBUCUVCGVCVDUWBUWHUVOUBPUWBUVGPNZVAZUWGU
        VMUCUVNUWMUVIUVNNZUVIPNZUWGUVMVFZUWLUWNUWOUWBUVIUVGVGVHUWBUWLUWOUWPUWBU
        WLUWOVAZVAZUVLUWFVIUGZUWGUVMAUWQUWSUWAAUWQVAZUWSUVLVJVKRZUWFVJVKRZVIUGU
        WTUXAUXAUWEUVKUJRZUKQZVJVKRZVLRZUXBVIUWTVMUXEVIUGUXAUXFVIUGUWTUXDUWTUXC
        ONZUXDVSNUWTUWEONZUVKONZUXGUWTUWCONZUWDONZUXHAUWLUXJUWOAUWLVAZCDVNRZOUW
        CAUXMOVEZUWLAUXMWINZUXNACWINZDWINZUXOAUVRUXPHCVOSZADURNUXQIDVOSZCDVPVQU
        XMVRSZVTAPUXMUVGGKWAZWBZWCZUWTPOUVIGAPOGUIUWQAPUXMOGKUXTUTVTAUWLUWOWDZW
        JZUWCUWDWEVQZUWTUVHONZUVJONZUXIAUWLUYGUWOUXLCOUVHAUVSUWLUVTVTAPCUVGFUVQ
        WAZWBZWCZUWTCOUVJAUVSUWQUVTVTZUWTPCUVIFAPCFUIUWQUVQVTUYDWJZWBZUVHUVJWEV
        QZUWEUVKWEVQZUXCWFSZWGUWTUXAUXEUWTUVLUWTUXIUVLVSNZUYOUVKWFSZWHUWTUXDUYQ
        WHWKWLUWTUVKUXCWMRZUKQZVJVKRZUXFUXBUWTUVKUXCWSRVMTZVUBUXFTZUWTUVKCNZUXC
        CWNQZNZVUCUWTUXPUVHCNZUVJCNVUEAUXPUWQUXRVTZAUWLVUHUWOUYIWCUYMUVHUVJCWOW
        PUWTUXCUWCUVHUJRZUWDUVJUJRZUJRZVUFUWTUXJUXKUYGUYHUXCVULTUYCUYEUYKUYNUWC
        UWDUVHUVJWQWRUWTVUFWINZVUJVUFNZVUKVUFNZVULVUFNUWTUVSVUMUYLCWTZSAUWLVUNU
        WOUXLUVCVUJTZUAVUFULZVUNUXLVURUWCUVHUVCWMRZTZUAVUFULZUXLVUHVVAUXLUWCCXA
        QZQZUVHTZVUHVVAVAZUWLVVDAUWLUVHVVCEUVGEUEZGQZVVBQVVCPFVVFUVGTVVGUWCVVBV
        VFUVGGXBXCMUWCVVBXDXKXEXFUXLUVRUWCCVUFVNRZNVVDVVEXGAUVRUWLHVTUXLUXMVVHU
        WCAUXMVVHVEUWLADCVNRZVUFCVNRZUXMVVHAUXQVUMUXPDVUFVEVVIVVJVEUXSAUVSVUMUV
        TVUPSZUXRJDVUFCXHXIAUXPUXQUXMVVITUXRUXSCDXJVQAUXPVUMVVHVVJTUXRVVKCVUFXJ
        VQXLVTUYAWBUAUWCUVHCXMVQWLXNUXLVUQVUTUAVUFUXLUVCVUFNZVAZVUJUVCTZVUSUWCT
        ZVUQVUTVVMUXJUYGUVCONVVNVVOXGUXLUXJVVLUYBVTUXLUYGVVLUYJVTUXLVUFOUVCAVUF
        OVEZUWLAVUMVVPVVKVUFVRSVTXOUWCUVHUVCXPWPUVCVUJXQUWCVUSXQYAYBXRUAVUJVUFX
        SXTZWCAUWOVUOUWLUXLVUNVFAUWOVAZVUOVFUBUCUVGUVITZUXLVVRVUNVUOVVSUWLUWOAU
        VGUVIPYJYCVVSVUJVUKVUFVVSUWCUWDUVHUVJUJUVGUVIGXBUVGUVIFXBYDYEYFVVQYKYGV
        UJVUKVUFWOWPYHUWTUXPVUEVUGVAVUCVFVUIUVKUXCCYISYLUWTUXIUXGVUCVUDVFUYOUYP
        UVKUXCYMVQYNUWTVUAUWFVJVKUWTUYTUWEUKUWTUXIUXHUYTUWETUYOUYFUVKUWEYOVQXCY
        PYQYRUWTUVLUWFUYSUWTUXHUWFVSNZUYFUWEWFSZUWTUXIVMUVLVIUGUYOUVKYSSUWTUXHV
        MUWFVIUGUYFUWEYSSUUAXRYTUWRUYRVVTUVCVSNZUWSUWGVAUVMVFAUWQUYRUWAUYSYTAUW
        QVVTUWAVWAYTUWAVWBAUWQUVCUUBUUCUVLUWFUVCUUDWPUUIUUEUUJUUFUUGYNUUHUAUBUC
        FUUKUULUAFUUMUVDUVFUAOUFUVEUUNZUVDUVFUVEOUFUIVWCUUOUVEOUFUUPUUQUVEFUVCU
        FUURUUTUUSUVA $.

      ${
        chscllem3.7 $e |- ( ph -> N e. NN ) $.
        chscllem3.8 $e |- ( ph -> C e. A ) $.
        chscllem3.9 $e |- ( ph -> D e. B ) $.
        chscllem3.10 $e |- ( ph -> ( H ` N ) = ( C +h D ) ) $.
        $( Lemma for ~ chscl .  (Contributed by Mario Carneiro, 19-May-2014.)
           (New usage is discouraged.) $)
        chscllem3 $p |- ( ph -> C = ( F ` N ) ) $=
          ( vz cfv cv co wceq cort wcel wrex cpjh wa cn fveq2 fveq2d fvex fvmpt
          cva syl eqcomd cch cph wb csh wss chsh shocsh shless syl31anc syl2anc
          shscom 3sstr4d ffvelrnd sseldd pjpreeq mpbid simprd cin c0h chscllem1
          adantr ocin simprl simprr eqtr3d shuni simpld rexlimddv ) AJIUBZJHUBZ
          UAUCZUPUDZUEZEWHUEZUACUFUBZAWHCUGZWKUAWMUHZAWGCUIUBZUBZWHUEZWNWOUJZAW
          HWQAJUKUGWHWQUEQGJGUCZIUBZWPUBWQUKHWTJUEXAWGWPWTJIULUMPWGWPUNUOUQURAC
          USUGZWGCWMUTUDZUGWRWSVAKACDUTUDZXCWGADCUTUDZWMCUTUDZXDXCADVBUGZWMVBUG
          ZCVBUGZDWMVCZXEXFVCADUSUGXGLDVDUQZAXIXHAXBXIKCVDUQZCVEUQZXLMDWMCVFVGA
          XIXGXDXEUEXLXKCDVIVHAXIXHXCXFUEXLXMCWMVIVHVJAUKXDJINQVKVLUAWGWHCVMVHV
          NVOAWIWMUGZWKUJZUJZWLFWIUEXPEFWHWICWMAXIXOXLVSAXHXOXMVSACWMVPVQUEZXOA
          XIXQXLCVTUQVSAECUGXORVSXPDWMFAXJXOMVSAFDUGXOSVSVLAWNXOAUKCJHABCDGHIKL
          MNOPVRQVKVSAXNWKWAXPWGEFUPUDZWJAWGXRUEXOTVSAXNWKWBWCWDWEWF $.
      $}

      chscl.7 $e |- G = ( n e. NN |-> ( ( projh ` B ) ` ( H ` n ) ) ) $.
      $( Lemma for ~ chscl .  (Contributed by Mario Carneiro, 19-May-2014.)
         (New usage is discouraged.) $)
      chscllem4 $p |- ( ph -> u e. ( A +H B ) ) $=
        ( chli chil cn wcel syl vk vx vy cv cfv cva co cph wfun wbr wceq cdm wf
        hlimf ffun ax-mp funbrfv mpsyl cmpt feqmptd wrex ffvelrnda csh cch chsh
        wa wb shsel syl2anc biimpa syldan w3a simp3 simp1l simp1r simp2l simp2r
        cort chscllem3 chsscon2 mpbid shscom feq3d shss sseldd ax-hvcom oveq12d
        wss 3exp rexlimdvv mpd mpteq2dva chscllem1 fssd chscllem2 funfvbrb eqid
        eqtrd sylib hlimadd eqbrtrd eqtr3d fvex chlimi syl3anc wi shsva eqeltrd
        mp2and ) ABUDZFPUEZGPUEZUFUGZCDUHUGZAHPUEZXJXMPUIZAHXJPUJZXOXJUKPULZQPU
        MXPUNXRQPUOUPZMHXJPUQURXPAHXMPUJXOXMUKXSAHUARUAUDZFUEZXTGUEZUFUGZUSZXMP
        AHUARXTHUEZUSYDAUARXNHLUTAUARYEYCAXTRSZVFZYEUBUDZUCUDZUFUGZUKZUCDVAUBCV
        AZYEYCUKZAYFYEXNSZYLARXNXTHLVBAYNYLACVCSZDVCSZYNYLVGACVDSZYOICVETZADVDS
        ZYPJDVETZUBUCCDYEVHVIVJVKYGYKYMUBUCCDYGYHCSZYIDSZVFZYKYMYGUUCYKVLZYEYJY
        CYGUUCYKVMZUUDYHYAYIYBUFUUDBCDYHYIEFHXTUUDAYQAYFUUCYKVNZITZUUDAYSUUFJTZ
        UUDADCVRUEWHZUUFKTUUDARXNHUMZUUFLTUUDAXQUUFMTZNAYFUUCYKVOZYGUUAUUBYKVPZ
        YGUUAUUBYKVQZUUEVSUUDBDCYIYHEGHXTUUHUUGUUDACDVRUEWHZUUFAUUIUUOKAYSYQUUI
        UUOVGJIDCVTVIWAZTUUDARDCUHUGZHUMZUUFAUUJUURLAXNUUQHRAYOYPXNUUQUKYRYTCDW
        BVIWCWAZTUUKOUULUUNUUMUUDYEYJYIYHUFUGZUUEUUDYHQSYIQSYJUUTUKUUDCQYHUUDAC
        QWHZUUFAYOUVAYRCWDTZTUUMWEUUDDQYIUUDADQWHZUUFAYPUVCYTDWDTZTUUNWEYHYIWFV
        IWRVSWGWRWIWJWKWLWRAXKXLUAFGYDARCQFABCDEFHIJKLMNWMZUVBWNARDQGABDCEGHJIU
        UPUUSMOWMZUVDWNAFXRSZFXKPUJZABCDEFHIJKLMNWOXPUVGUVHVGXSFPWPUPWSZAGXRSZG
        XLPUJZABDCEGHJIUUPUUSMOWOXPUVJUVKVGXSGPWPUPWSZYDWQWTXAHXMPUQURXBAXKCSZX
        LDSZXMXNSZAYQRCFUMUVHUVMIUVEUVIXKFCFPXCXDXEAYSRDGUMUVKUVNJUVFUVLXLGDGPX
        CXDXEAYOYPUVMUVNVFUVOXFYRYTCDXKXLXGVIXIXH $.
    $}

    $( The subspace sum of two closed orthogonal spaces is closed.
       (Contributed by NM, 19-Oct-1999.)  (Proof shortened by Mario Carneiro,
       19-May-2014.)  (New usage is discouraged.) $)
    chscl $p |- ( ph -> ( A +H B ) e. CH ) $=
      ( vf vz vx csh wcel cn cv wa wal cch chsh syl cfv adantr cph co wf wbr wi
      chli shscl syl2anc cpjh cmpt cort wss simprl simprr chscllem4 ex alrimivv
      eqid isch2 sylanbrc ) ABCUAUBZJKZLVAGMZUCZVCHMZUFUDZNZVEVAKZUEZHOGOVAPKAB
      JKZCJKZVBABPKZVJDBQRACPKZVKECQRBCUGUHAVIGHAVGVHAVGNHBCIILIMVCSZBUISSUJZIL
      VNCUISSUJZVCAVLVGDTAVMVGETACBUKSULVGFTAVDVFUMAVDVFUNVOURVPURUOUPUQHGVAUSU
      T $.
  $}

  ${
    osum.1 $e |- A e. CH $.
    osum.2 $e |- B e. CH $.
    $( If two closed subspaces of a Hilbert space are orthogonal, their
       subspace sum equals their subspace join.  Lemma 3 of [Kalmbach] p. 67.
       Note that the (countable) Axiom of Choice is used for this proof via
       ~ pjhth , although "the hard part" of this proof, ~ chscl , requires no
       choice.  (Contributed by NM, 28-Oct-1999.)  (Revised by Mario Carneiro,
       19-May-2014.)  (New usage is discouraged.) $)
    osumi $p |- ( A C_ ( _|_ ` B ) -> ( A +H B ) = ( A vH B ) ) $=
      ( cort cfv wss cph co cch wcel chj wceq a1i chsscon2i biimpi chscl chshii
      shjshseli sylib ) ABEFGZABHIZJKUBABLIMUAABAJKUACNBJKUADNUABAEFGABCDOPQABA
      CRBDRST $.

    $( Corollary of ~ osumi .  (Contributed by NM, 5-Nov-2000.)
       (New usage is discouraged.) $)
    osumcori $p |- ( ( A i^i B ) +H ( A i^i ( _|_ ` B ) ) ) =
                  ( ( A i^i B ) vH ( A i^i ( _|_ ` B ) ) ) $=
      ( cin cort cfv wss cph co chj inss2 choccli chub2i sstri chdmm3i sseqtr4i
      wceq chincli osumi ax-mp ) ABEZABFGZEZFGZHUBUDIJUBUDKJRUBAFGZBKJZUEUBBUGA
      BLBUFDACMNOABCDPQUBUDABCDSAUCCBDMSTUA $.

    $( Corollary of ~ osumi , showing it holds under the weaker hypothesis that
       ` A ` and ` B ` commute.  (Contributed by NM, 6-Dec-2000.)
       (New usage is discouraged.) $)
    osumcor2i $p |- ( A C_H B ->
                   ( A +H B ) = ( A vH B ) ) $=
      ( ccm wbr cph co chj wss wceq cort cfv cin choccli chjcli chincli chjcomi
      eqtri chshii cmcm2i cmbr4i bitri osumi ineq2i oveq1i pjoml4i eqeq2i inss1
      wa shlessi ax-mp sseq1 mpbii sylbi syl chsleji jctil eqss sylibr ) ABEFZA
      BGHZABIHZJZVCVBJZUJVBVCKVAVEVDVAAALMZBLMZIHZNZVGJZVEVAAVGEFVJABCDUAAVGCBD
      OZUBUCVJVIBGHZVIBIHZKZVEVIBAVHCVFVGACOZVKPQZDUDVNVLVCKZVEVMVCVLVMBAVGVFIH
      ZNZIHZVCVMVSBIHVTVIVSBIVHVRAVFVGVOVKRUEUFVSBAVRCVGVFVKVOPQDRSVTBAIHVCBADC
      UGBADCRSSUHVQVLVBJZVEVIAJWAAVHUIVIABVIVPTACTBDTUKULVLVCVBUMUNUOUPUOABCDUQ
      URVBVCUSUT $.
  $}

  $( If two closed subspaces of a Hilbert space are orthogonal, their subspace
     sum equals their subspace join.  Lemma 3 of [Kalmbach] p. 67.
     (Contributed by NM, 31-Oct-2005.)  (New usage is discouraged.) $)
  osum $p |- ( ( A e. CH /\ B e. CH /\ A C_ ( _|_ ` B ) ) ->
             ( A +H B ) = ( A vH B ) ) $=
    ( cch wcel cort cfv wss cph co chj wceq wi chil sseq1 oveq1 eqeq12d imbi12d
    cif oveq2 ifchhv fveq2 sseq2d osumi dedth2h 3impia ) ACDZBCDZABEFZGZABHIZAB
    JIZKZUFUGUIULLUFAMRZUHGZUMBHIZUMBJIZKZLUMUGBMRZEFZGZUMURHIZUMURJIZKZLABMMAU
    MKZUIUNULUQAUMUHNVDUJUOUKUPAUMBHOAUMBJOPQBURKZUNUTUQVCVEUHUSUMBUREUAUBVEUOV
    AUPVBBURUMHSBURUMJSPQUMURATBTUCUDUE $.

  ${
    spansnj.1 $e |- A e. CH $.
    spansnj.2 $e |- B e. ~H $.
    $( The subspace sum of a closed subspace and a one-dimensional subspace
       equals their join.  (Proof suggested by Eric Schechter 1-Jun-2004.)
       (Contributed by NM, 1-Jun-2004.)  (New usage is discouraged.) $)
    spansnji $p |- ( A +H ( span ` { B } ) ) = ( A vH ( span ` { B } ) ) $=
      ( csn cspn cfv chj co cph cort chshii spansnchi cun chil wcel snssi ax-mp
      wss spanuni shjshsi cpjh cch chssii choccli pjhclii wceq spanid spansnpji
      csh oveq1i osumi 3eqtrri spanunsni eqtr4i chjcli eqeltri ococi eqtr2i ) A
      BEZFGZHIAVAJIZKGKGVBAVAACLZVABDMLUAVBVBABAKGZUBGGZEZFGZHIZUCVHAUTNFGZAFGZ
      VAJIVBVHAVFNFGZVIVKVJVGJIAVGJIZVHAVFACUDZVEOPVFOSBVDACUEDUFZVEOQRTVJAVGJA
      UJPVJAUGVCAUHRZUKAVGKGSVLVHUGABVMDUIAVGCVEVNMZULRUMABCDUNUOAUTVMBOPUTOSDB
      OQRTVJAVAJVOUKUMAVGCVPUPUQURUS $.
  $}

  $( The subspace sum of a closed subspace and a one-dimensional subspace
     equals their join.  (Contributed by NM, 4-Jun-2004.)
     (New usage is discouraged.) $)
  spansnj $p |- ( ( A e. CH /\ B e. ~H ) ->
              ( A +H ( span ` { B } ) ) = ( A vH ( span ` { B } ) ) ) $=
    ( cch wcel chil csn cspn cfv cph chj wceq cif c0v oveq1 eqeq12d sneq fveq2d
    co oveq2d ifchhv ifhvhv0 spansnji dedth2h ) ACDZBEDZABFZGHZIRZAUGJRZKUDAELZ
    UGIRZUJUGJRZKUJUEBMLZFZGHZIRZUJUOJRZKABEMAUJKUHUKUIULAUJUGINAUJUGJNOBUMKZUK
    UPULUQURUGUOUJIURUFUNGBUMPQZSURUGUOUJJUSSOUJUMATBUAUBUC $.

  $( The subspace sum of a closed subspace and a one-dimensional subspace is
     closed.  (Contributed by NM, 17-Dec-2004.)  (New usage is discouraged.) $)
  spansnscl $p |- ( ( A e. CH /\ B e. ~H ) ->
              ( A +H ( span ` { B } ) ) e. CH ) $=
    ( cch wcel chil wa csn cfv cph co chj spansnj spansnch chjcl sylan2 eqeltrd
    cspn ) ACDZBEDZFABGQHZIJATKJZCABLSRTCDUACDBMATNOP $.

  $( The sum of two vectors belong to the span of one of them iff the other
     vector also belongs.  (Contributed by NM, 1-Nov-2005.)
     (New usage is discouraged.) $)
  sumspansn $p |- ( ( A e. ~H /\ B e. ~H ) ->
           ( ( A +h B ) e. ( span ` { A } ) <-> B e. ( span ` { A } ) ) ) $=
    ( chil wcel wa cva co csn cspn cfv cmv wi csh spansnsh adantr simpr shsubcl
    spansnid syl3anc ex hvpncan2 eleq1d sylibd shaddcl 3expia syl2anc impbid )
    ACDZBCDZEZABFGZAHIJZDZBULDZUJUMUKAKGZULDZUNUHUMUPLUIUHUMUPUHUMEULMDZUMAULDZ
    UPUHUQUMANZOUHUMPUHURUMARZOUKAULQSTOUJUOBULABUAUBUCUHUNUMLZUIUHUQURVAUSUTUQ
    URUNUMABULUDUEUFOUG $.

  ${
    $d x A $.  $d x B $.
    spansnm0.1 $e |- A e. ~H $.
    spansnm0.2 $e |- B e. ~H $.
    $( The meet of different one-dimensional subspaces is the zero subspace.
       (Contributed by NM, 1-Nov-2005.)  (New usage is discouraged.) $)
    spansnm0i $p |- ( -. A e. ( span ` { B } ) ->
                   ( ( span ` { A } ) i^i ( span ` { B } ) ) = 0H ) $=
      ( vx csn cspn cfv wcel wn cin c0h wss wceq cv wa c0v chil csh spansnchi
      wi chshii elspansn5 ax-mp mpanl1 ex elin elch0 3imtr4g ssrdv chle0i sylib
      chincli ) ABFGHZIJZAFGHZUNKZLMUQLNUOEUQLUOEOZUPIURUNIPZURQNZURUQIURLIUOUS
      UTARIZUOUSUTCUNSIVAUOPUSPUTUAUNBDTZUBUNAURUCUDUEUFURUPUNUGURUHUIUJUQUPUNA
      CTVBUMUKUL $.
  $}

  ${
    nonbool.1 $e |- A e. ~H $.
    nonbool.2 $e |- B e. ~H $.
    nonbool.3 $e |- F = ( span ` { A } ) $.
    nonbool.4 $e |- G = ( span ` { B } ) $.
    nonbool.5 $e |- H = ( span ` { ( A +h B ) } ) $.
    $( A Hilbert lattice with two or more dimensions fails the distributive law
       and therefore cannot be a Boolean algebra.  This counterexample
       demonstrates a condition where ` ( ( H i^i F ) vH ( H i^i G ) ) = 0H `
       but ` ( H i^i ( F vH G ) ) =/= 0H ` .  The antecedent specifies that the
       vectors ` A ` and ` B ` are nonzero and non-colinear.  The last three
       hypotheses assign one-dimensional subspaces to ` F ` , ` G ` , and
       ` H ` .  (Contributed by NM, 1-Nov-2005.)
       (New usage is discouraged.) $)
    nonbooli $p |- ( -. ( A e. G \/ B e. F ) ->
                  ( H i^i ( F vH G ) ) =/= ( ( H i^i F ) vH ( H i^i G ) ) ) $=
      ( wcel wn chj co cin wceq c0h csn cspn ax-mp wa wne cva cfv chil hvaddcli
      wo c0v spansnid eleqtrri cph spansnchi chshii eqeltri shsvai mp2an sselii
      csh shsleji elin mpbir2an eleq2 mpbii elch0 sylib cch ch0 syl6eqel eleq2i
      wb sumspansn bitr4i sylibr con3i adantl ineq12i spansnm0i sylnbi 3bitr4ri
      syl5eq hvcomi eleq1i oveqan12rd h0elch chj0i syl6eq eqeq2 notbid biimparc
      syl2anc ioran df-ne 3imtr4i ) ADKZLZBCKZLZUAZECDMNZOZECOZEDOZMNZPZLZWNWPU
      GLWTXCUBWRWTQPZLZXCQPZXEWQXGWOXFWPXFABUCNZARSUDZKZWPXFXIUHXJXFXIQKZXIUHPX
      FXIWTKZXLXMXIEKXIWSKXIXIRSUDZEXIUEKXIXNKABFGUFZXIUITJUJCDUKNZWSXICDCXJURH
      XJAFULZUMUNZDBRSUDZURIXSBGULUMUNZUSACKBDKXIXPKAXJCAUEKZAXJKFAUITHUJBXSDBU
      EKZBXSKGBUITIUJCDABXRXTUOUPUQXIEWSUTVAWTQXIVBVCXIVDVEXJVFKUHXJKXQXJVGTVHW
      PBXJKZXKCXJBHVIYAYBXKYCVJFGABVKUPVLZVMVNVOWRXCQQMNQWQWOXAQXBQMWQXAXNXJOZQ
      EXNCXJJHVPWPXKYEQPYDXIAXOFVQVRVTWOXBXNXSOZQEXNDXSJIVPWNXIXSKZYFQPBAUCNZXS
      KZAXSKZYGWNYBYAYIYJVJGFBAVKUPXIYHXSABFGWAWBDXSAIVIVSXIBXOGVQVRVTWCQWDWEWF
      XHXEXGXHXDXFXCQWTWGWHWIWJWNWPWKWTXCWLWM $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    spansncv.1 $e |- A e. CH $.
    spansncv.2 $e |- B e. CH $.
    spansncv.3 $e |- C e. ~H $.
    $( Hilbert space has the covering property (using spans of singletons to
       represent atoms).  Exercise 5 of [Kalmbach] p. 153.  (Contributed by NM,
       7-Jun-2004.)  (New usage is discouraged.) $)
    spansncvi $p |- ( ( A C. B /\ B C_ ( A vH ( span ` { C } ) ) ) ->
                   B = ( A vH ( span ` { C } ) ) ) $=
      ( vx vy vz co wss wa wi cv wcel cva wceq chil imp c0v wpss csn cspn simpr
      cfv chj pssss adantr wn wex pssnel ssel2 wrex cph eleq2i spansnchi chseli
      spansnji bitr3i cmv eleq1 biimpac sselda csh chshii shsubcl mp3an1 syl2an
      exp43 com14 imp45 cheli hvpncan2 eleq1d anandis exp45 imp41 adantrr oveq2
      syl5ib wne ax-hvaddid syl eqeq2d eleq1a sylbid impancom necon3bd spansnss
      sylan9eqr mpan spansneleq sseq1d ancoms exp44 com12 adantrl mpd rexlimivv
      sylan2 sylbi anandirs expimpd exlimdv syl5 pm2.43d impcom chlubii syl2anc
      ex eqssd ) ABUAZBACUBUCUEZUFJZKZLZBXNXLXOUDXPABKZXMBKZXNBKXLXQXOABUGZUHXO
      XLXRXOXLXRXOXLXLXRMXLGNZBOZXTAOZUIZLZGUJXOXLLZXRGABUKYEYDXRGYEYAYCXRXOXLY
      AYCXRMZXOYALZXLYALZYFYGXTXNOZYHYFMZBXNXTULYIXTHNZINZPJZQZIXMUMHAUMZYJYIXT
      AXMUNJZOYOYPXNXTACDFURUOHIAXMXTDCFUPZUQUSYNYJHIAXMYKAOZYLXMOZLZYNYHYCXRYT
      YNLZYHYCLLYLBOZXRUUAYHUUBYCYRYSYNYHUUBYRYSYNYHUUBYRYSYNYHLZUUBYTYRUUCLZUU
      BUUDYMYKUTJZBOZYTUUBYRYNXLYAUUFYAYNXLYRUUFYAYNXLYRUUFYAYNLYMBOZYKBOZUUFXL
      YRLYNYAUUGXTYMBVAVBXLABYKXSVCBVDOZUUGUUHUUFBEVEZYMYKBVFVGVHVIVJVKYTUUEYLB
      YRYKROZYLROUUEYLQYSYKADVLZYLXMYQVLYKYLVMVHVNVTSVOVPVQVRUUAYCUUBXRMZYHYRYS
      YNYCUUMYSYRYNYCUUMMMYSYRYNYCUUMYRYNLZYCLYSYLTWAZUUMUUNYCUUOUUNYBYLTYRYLTQ
      ZYNYBYRUUPLZYNXTYKQZYBUUQYMYKXTUUPYRYMYKTPJZYKYLTYKPVSYRUUKUUSYKQUULYKWBW
      CWJWDYRUURYBMUUPYKAXTWEUHWFWGWHSUUOYSUUMUUBYLUBUCUEZBKZUUOYSLZXRUUIUUBUVA
      UUJBYLWIWKUVBUUTXMBUUOYSUUTXMQZCROUUOYSUVCMFYLCWLWKSWMVTWNWTWOWPVQWQWRVIW
      SXAWCSXBXCXDXEXJXFXGAXMBDYQEXHXIXK $.
  $}

  $( Hilbert space has the covering property (using spans of singletons to
     represent atoms).  Exercise 5 of [Kalmbach] p. 153.  (Contributed by NM,
     9-Jun-2004.)  (New usage is discouraged.) $)
  spansncv $p |- ( ( A e. CH /\ B e. CH /\ C e. ~H ) ->
                  ( ( A C. B /\ B C_ ( A vH ( span ` { C } ) ) )
                 -> B = ( A vH ( span ` { C } ) ) ) ) $=
    ( cch wcel chil wpss csn cspn cfv chj co wss wa wceq cif c0v sseq2d imbi12d
    wi psseq1 oveq1 anbi12d eqeq2d psseq2 sseq1 eqeq1 sneq fveq2d oveq2d anbi2d
    ifchhv ifhvhv0 spansncvi dedth3h ) ADEZBDEZCFEZABGZBACHZIJZKLZMZNZBVBOZTUPA
    FPZBGZBVFVAKLZMZNZBVHOZTVFUQBFPZGZVLVHMZNZVLVHOZTVMVLVFURCQPZHZIJZKLZMZNZVL
    VTOZTABCFFQAVFOZVDVJVEVKWDUSVGVCVIAVFBUAWDVBVHBAVFVAKUBZRUCWDVBVHBWEUDSBVLO
    ZVJVOVKVPWFVGVMVIVNBVLVFUEBVLVHUFUCBVLVHUGSCVQOZVOWBVPWCWGVNWAVMWGVHVTVLWGV
    AVSVFKWGUTVRICVQUHUIUJZRUKWGVHVTVLWHUDSVFVLVQAULBULCUMUNUO $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Orthoarguesian laws 5OA and 3OA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    5oalem1.1 $e |- A e. SH $.
    5oalem1.2 $e |- B e. SH $.
    5oalem1.3 $e |- C e. SH $.
    5oalem1.4 $e |- R e. SH $.
    $( Lemma for orthoarguesian law 5OA. (Contributed by NM, 1-Apr-2000.)
       (New usage is discouraged.) $)
    5oalem1 $p |- ( ( ( ( x e. A /\ y e. B ) /\ v = ( x +h y ) ) /\
                  ( z e. C /\ ( x -h z ) e. R ) ) ->
                  v e. ( B +H ( A i^i ( C +H R ) ) ) ) $=
      ( cv wcel wa cva co wceq cmv cph cin simplll chil sheli adantr hvaddsub12
      ad2antrr 3anidm23 oveq2d ax-hvaddid sylan9eqr eqtr3d syl2an shsvai adantl
      hvsubid eqeltrrd elind simpllr shscli shincli shscomi syl6eleq syl2anc wb
      c0v eleq1 ad2antlr mpbird ) AMZENZBMZFNZOZDMZVJVLPQZRZOZCMZGNZVJVSSQZHNZO
      ZOZVOFEGHTQZUAZTQZNZVPWGNZWDVJWFNZVMWIWDEWEVJVKVMVQWCUBWDVSWAPQZVJWEVRVJU
      CNZVSUCNZWKVJRWCVKWLVMVQVJEIUDUGVTWMWBVSGKUDUEWLWMOVJVSVSSQZPQZWKVJWLWMWO
      WKRVJVSVSUFUHWMWLWOVJVFPQVJWMWNVFVJPVSUPUIVJUJUKULUMWCWKWENVRGHVSWAKLUNUO
      UQURVKVMVQWCUSWJVMOVPWFFTQWGWFFVJVLEWEIGHKLUTVAZJUNWFFWPJVBVCVDVQWHWIVEVN
      WCVOVPWGVGVHVI $.
  $}

  ${
    5oalem2.1 $e |- A e. SH $.
    5oalem2.2 $e |- B e. SH $.
    5oalem2.3 $e |- C e. SH $.
    5oalem2.4 $e |- D e. SH $.
    $( Lemma for orthoarguesian law 5OA. (Contributed by NM, 2-Apr-2000.)
       (New usage is discouraged.) $)
    5oalem2 $p |- ( ( ( ( x e. A /\ y e. B ) /\ ( z e. C /\ w e. D ) ) /\
                  ( x +h y ) = ( z +h w ) ) ->
                  ( x -h z ) e. ( ( A +H C ) i^i ( B +H D ) ) ) $=
      ( cv wcel wa cva co wceq cmv chil shsvsi ad2ant2r adantr ancoms syl6eleqr
      shscomi ad2ant2l wb sheli anim12i oveq1 adantl simpr anim2i hvsub4 syldan
      cph c0v hvsubid oveq2d ad2antlr hvsubcl ax-hvaddid adantlr 3eqtrd adantrr
      syl simpl anim1i syl2anc oveq1d ad2antrl hvaddid2 adantrl adantll 3eqtr3d
      eleq1d sylan mpbird elind ) AMZENZBMZFNZOZCMZGNZDMZHNZOZOZWAWCPQZWFWHPQZR
      ZOZEGUQQZFHUQQZWAWFSQZWKWRWPNZWNWBWGWSWDWIEGWAWFIKUAUBUCWOWRWQNZWHWCSQZWQ
      NZWKXBWNWDWIXBWBWGWDWIOXAHFUQQZWQWIWDXAXCNHFWHWCLJUAUDFHJLUFUEUGUCWKWATNZ
      WCTNZOZWFTNZWHTNZOZOZWNWTXBUHWEXFWJXIWBXDWDXEWAEIUIWCFJUIUJWGXGWIXHWFGKUI
      WHHLUIUJUJXJWNOZWRXAWQXKWLWFWCPQZSQZWMXLSQZWRXAWNXMXNRXJWLWMXLSUKULXJXMWR
      RZWNXFXGXOXHXFXGOXMWRWCWCSQZPQZWRURPQZWRXFXGXGXEOZXMXQRXGXFXSXFXEXGXDXEUM
      UNUDWAWCWFWCUOUPXEXQXRRXDXGXEXPURWRPWCUSUTVAXDXGXRWRRZXEXDXGOWRTNXTWAWFVB
      WRVCVGVDVEVFUCXJXNXARZWNXEXIYAXDXEXIOZXNWFWFSQZXAPQZURXAPQZXAYBXIXSXNYDRX
      EXIUMXIXEXSXIXGXEXGXHVHVIUDWFWHWFWCUOVJXGYDYERXEXHXGYCURXAPWFUSVKVLXEXHYE
      XARZXGXHXEYFXHXEOXATNYFWHWCVBXAVMVGUDVNVEVOUCVPVQVRVSVT $.
  $}

  ${
    5oalem3.1 $e |- A e. SH $.
    5oalem3.2 $e |- B e. SH $.
    5oalem3.3 $e |- C e. SH $.
    5oalem3.4 $e |- D e. SH $.
    5oalem3.5 $e |- F e. SH $.
    5oalem3.6 $e |- G e. SH $.
    $( Lemma for orthoarguesian law 5OA. (Contributed by NM, 2-Apr-2000.)
       (New usage is discouraged.) $)
    5oalem3 $p |- ( ( ( ( ( x e. A /\ y e. B ) /\ ( z e. C /\ w e. D ) )
                    /\ ( f e. F /\ g e. G ) ) /\
                  ( ( x +h y ) = ( f +h g ) /\ ( z +h w ) = ( f +h g ) ) ) ->
                  ( x -h z ) e. ( ( ( A +H F ) i^i ( B +H G ) ) +H
                    ( ( C +H F ) i^i ( D +H G ) ) ) ) $=
      ( wa co cv wcel cva wceq cmv cph cin anandir 5oalem2 anim12i an4s shincli
      sylanb shscli shsvsi syl chil sheli adantr hvsubsub4 anandirs c0v hvsubid
      wb oveq2d hvsubcl hvsub0 sylan9eqr eqtrd syl2an eleq1d mpbid ) AUAZEUBZBU
      AZFUBZSZCUAZGUBZDUAZHUBZSZSZIUAZKUBZJUAZLUBZSZSZVMVOUCTWDWFUCTZUDZVRVTUCT
      WJUDZSZSZVMWDUETZVRWDUETZUETZEKUFTZFLUFTZUGZGKUFTZHLUFTZUGZUFTZUBZVMVRUET
      ZXDUBZWNWOWTUBZWPXCUBZSZXEWIVQWHSZWBWHSZSWMXJVQWBWHUHXKWKXLWLXJXKWKSXHXLW
      LSXIABIJEFKLMNQRUICDIJGHKLOPQRUIUJUKUMWTXCWOWPWRWSEKMQUNFLNRUNULXAXBGKOQU
      NHLPRUNULUOUPWIXEXGVDWMWIWQXFXDWCVMUQUBZVRUQUBZSZWDUQUBZWQXFUDWHVQXMWBXNV
      NXMVPVMEMURUSVSXNWAVRGOURUSUJWEXPWGWDKQURUSXOXPSWQXFWDWDUETZUETZXFXMXNXPW
      QXRUDVMWDVRWDUTVAXPXOXRXFVBUETZXFXPXQVBXFUEWDVCVEXOXFUQUBXSXFUDVMVRVFXFVG
      UPVHVIVJVKUSVL $.

    $( Lemma for orthoarguesian law 5OA. (Contributed by NM, 2-Apr-2000.)
       (New usage is discouraged.) $)
    5oalem4 $p |- ( ( ( ( ( x e. A /\ y e. B ) /\ ( z e. C /\ w e. D ) )
                    /\ ( f e. F /\ g e. G ) ) /\
                  ( ( x +h y ) = ( f +h g ) /\ ( z +h w ) = ( f +h g ) ) ) ->
                  ( x -h z ) e. ( ( ( A +H C ) i^i ( B +H D ) ) i^i
                    ( ( ( A +H F ) i^i ( B +H G ) ) +H
                      ( ( C +H F ) i^i ( D +H G ) ) ) ) ) $=
      ( wcel co cv wa cva wceq cph cin cmv eqtr3 5oalem2 sylan2 adantlr 5oalem3
      elind ) AUAZESBUAZFSUBCUAZGSDUAZHSUBUBZIUAZKSJUAZLSUBZUBUNUOUCTZUSUTUCTZU
      DUPUQUCTZVCUDUBZUBEGUETFHUETUFZEKUETFLUETUFGKUETHLUETUFUETUNUPUGTZURVEVGV
      FSZVAVEURVBVDUDVHVBVDVCUHABCDEFGHMNOPUIUJUKABCDEFGHIJKLMNOPQRULUM $.
  $}

  ${
    5oalem5.1 $e |- A e. SH $.
    5oalem5.2 $e |- B e. SH $.
    5oalem5.3 $e |- C e. SH $.
    5oalem5.4 $e |- D e. SH $.
    5oalem5.5 $e |- F e. SH $.
    5oalem5.6 $e |- G e. SH $.
    5oalem5.7 $e |- R e. SH $.
    5oalem5.8 $e |- S e. SH $.
    $( Lemma for orthoarguesian law 5OA. (Contributed by NM, 2-May-2000.)
       (New usage is discouraged.) $)
    5oalem5 $p |- ( ( ( ( ( x e. A /\ y e. B ) /\ ( z e. C /\ w e. D ) )
                    /\ ( ( f e. F /\ g e. G ) /\ ( v e. R /\ u e. S ) ) ) /\
             ( ( ( x +h y ) = ( v +h u ) /\ ( z +h w ) = ( v +h u ) ) /\
                 ( f +h g ) = ( v +h u ) ) ) ->
                  ( x -h z ) e.
                 ( ( ( ( A +H C ) i^i ( B +H D ) ) i^i
                     ( ( ( A +H R ) i^i ( B +H S ) ) +H
                       ( ( C +H R ) i^i ( D +H S ) ) ) )
                i^i ( ( ( ( A +H F ) i^i ( B +H G ) ) i^i
                        ( ( ( A +H R ) i^i ( B +H S ) ) +H
                          ( ( F +H R ) i^i ( G +H S ) ) ) )
                   +H ( ( ( C +H F ) i^i ( D +H G ) ) i^i
                        ( ( ( C +H R ) i^i ( D +H S ) ) +H
                          ( ( F +H R ) i^i ( G +H S ) ) ) ) ) ) ) $=
      ( cv wcel wa cva wceq cph cin cmv simpr anim2i simpl 5oalem4 syl2an sheli
      co adantr anim12i hvsubsub4 anandirs c0v hvsubid oveq2d hvsubcl sylan9eqr
      chil hvsub0 syl eqtrd adantrr anandir sylib simprr jca anim1i an4s sylanb
      shscli shincli shsvsi eqeltrrd elind ) AUEZGUFZBUEZHUFZUGZCUEZIUFZDUEZJUF
      ZUGZUGZMUEZOUFZNUEZPUFZUGZEUEZKUFFUEZLUFUGZUGZUGZWFWHUHUSXBXCUHUSZUIZWKWM
      UHUSXGUIZUGZWQWSUHUSXGUIZUGZUGZGIUJUSHJUJUSUKGKUJUSZHLUJUSZUKZIKUJUSZJLUJ
      USZUKZUJUSUKZGOUJUSZHPUJUSZUKZXPOKUJUSZPLUJUSZUKZUJUSZUKZIOUJUSZJPUJUSZUK
      ZXSYFUJUSZUKZUJUSZWFWKULUSZXFWPXDUGXJYOXTUFXLXEXDWPXAXDUMUNXJXKUOABCDGHIJ
      EFKLQRSTUCUDUPUQXMWFWQULUSZWKWQULUSZULUSZYOYNXFYRYOUIZXLWPXAYSXDWPWFVIUFZ
      WKVIUFZUGZWQVIUFZYSXAWJYTWOUUAWGYTWIWFGQURUTWLUUAWNWKISURUTVAWRUUCWTWQOUA
      URUTUUBUUCUGYRYOWQWQULUSZULUSZYOYTUUAUUCYRUUEUIWFWQWKWQVBVCUUCUUBUUEYOVDU
      LUSZYOUUCUUDVDYOULWQVEVFUUBYOVIUFUUFYOUIWFWKVGYOVJVKVHVLUQVMUTXMYPYHUFZYQ
      YMUFZUGZYRYNUFXFWJXAUGZWOXAUGZUGZXDUGZXHXKUGZXIXKUGZUGZUUIXLXFUULXDXFWPXA
      UGUULXEXAWPXAXDUOUNWJWOXAVNVOWPXAXDVPVQXLUUNUUOXJXHXKXHXIUOVRXJXIXKXHXIUM
      VRVQUUMUUJXDUGZUUKXDUGZUGUUPUUIUUJUUKXDVNUUQUUNUURUUOUUIUUQUUNUGUUGUURUUO
      UGUUHABMNGHOPEFKLQRUAUBUCUDUPCDMNIJOPEFKLSTUAUBUCUDUPVAVSVTUQYHYMYPYQYCYG
      YAYBGOQUAWAHPRUBWAWBXPYFXNXOGKQUCWAHLRUDWAWBYDYEOKUAUCWAPLUBUDWAWBZWAWBYK
      YLYIYJIOSUAWAJPTUBWAWBXSYFXQXRIKSUCWAJLTUDWAWBUUSWAWBWCVKWDWE $.

    $( Lemma for orthoarguesian law 5OA. (Contributed by NM, 4-May-2000.)
       (New usage is discouraged.) $)
    5oalem6 $p |- ( ( ( ( ( x e. A /\ y e. B ) /\ h = ( x +h y ) ) /\
                        ( ( z e. C /\ w e. D ) /\ h = ( z +h w ) ) ) /\
                      ( ( ( f e. F /\ g e. G ) /\ h = ( f +h g ) ) /\
                        ( ( v e. R /\ u e. S ) /\ h = ( v +h u ) ) ) ) ->
           h e. ( B +H ( A i^i ( C +H
                 ( ( ( ( A +H C ) i^i ( B +H D ) ) i^i
                     ( ( ( A +H R ) i^i ( B +H S ) ) +H
                       ( ( C +H R ) i^i ( D +H S ) ) ) )
                i^i ( ( ( ( A +H F ) i^i ( B +H G ) ) i^i
                        ( ( ( A +H R ) i^i ( B +H S ) ) +H
                          ( ( F +H R ) i^i ( G +H S ) ) ) )
                   +H ( ( ( C +H F ) i^i ( D +H G ) ) i^i
                        ( ( ( C +H R ) i^i ( D +H S ) ) +H
                          ( ( F +H R ) i^i ( G +H S ) ) ) ) ) ) ) ) ) ) $=
      ( cv wcel wa cva wceq cmv cph cin an4 eqeq1 biimpcd anim12d expdcom imp32
      co anim2i an4s syl2anb 5oalem5 syl wi shscli shincli 5oalem1 expr adantrr
      adantr mpd ) AUFZGUGBUFZHUGUHZOUFZVNVOUIUTZUJZUHZCUFZIUGZDUFZJUGZUHZVQWAW
      CUIUTZUJZUHUHZMUFZPUGNUFZQUGUHZVQWIWJUIUTZUJZUHEUFZKUGFUFZLUGUHZVQWNWOUIU
      TZUJZUHUHZUHZVNWAUKUTGIULUTZHJULUTZUMZGKULUTZHLULUTZUMZIKULUTZJLULUTZUMZU
      LUTZUMZGPULUTZHQULUTZUMZXFPKULUTZQLULUTZUMZULUTZUMZIPULUTZJQULUTZUMZXIXQU
      LUTZUMZULUTZUMZUGZVQHGIYFULUTUMULUTUGZWTVPWEUHZWKWPUHZUHZVRWQUJZWFWQUJZUH
      ZWLWQUJZUHZUHZYGWHYIVSWGUHZUHYJWMWRUHZUHYQWSVPVSWEWGUNWKWMWPWRUNYIYJYRYSY
      QYRYSUHYPYKYRWMWRYPWRYRWMYPWRYRYNWMYOWRVSYLWGYMVSWRYLVQVRWQUOUPWGWRYMVQWF
      WQUOUPUQWMWRYOVQWLWQUOUPUQURUSVAVBVCABCDEFGHIJKLMNPQRSTUAUBUCUDUEVDVEWHYG
      YHVFZWSVTWEYTWGVTWBYTWDVTWBYGYHABCOGHIYFRSTXKYEXCXJXAXBGIRTVGHJSUAVGVHXFX
      IXDXEGKRUDVGHLSUEVGVHZXGXHIKTUDVGJLUAUEVGVHZVGVHXSYDXNXRXLXMGPRUBVGHQSUCV
      GVHXFXQUUAXOXPPKUBUDVGQLUCUEVGVHZVGVHYBYCXTYAIPTUBVGJQUAUCVGVHXIXQUUBUUCV
      GVHVGVHVIVJVKVKVLVM $.

    ${
      $d A h f g u v w x y z $.  $d B h f g u v w x y z $.
      $d C h f g u v w x y z $.  $d D h f g u v w x y z $.
      $d F h f g u v w x y z $.  $d G h f g u v w x y z $.
      $d R h f g u v w x y z $.  $d S h f g u v w x y z $.
      $( Lemma for orthoarguesian law 5OA. (Contributed by NM, 4-May-2000.)
         (New usage is discouraged.) $)
      5oalem7 $p |- ( ( ( A +H B ) i^i ( C +H D ) ) i^i
              ( ( F +H G ) i^i ( R +H S ) ) ) C_ ( B +H ( A i^i ( C +H
                 ( ( ( ( A +H C ) i^i ( B +H D ) ) i^i
                     ( ( ( A +H R ) i^i ( B +H S ) ) +H
                       ( ( C +H R ) i^i ( D +H S ) ) ) )
                i^i ( ( ( ( A +H F ) i^i ( B +H G ) ) i^i
                        ( ( ( A +H R ) i^i ( B +H S ) ) +H
                          ( ( F +H R ) i^i ( G +H S ) ) ) )
                   +H ( ( ( C +H F ) i^i ( D +H G ) ) i^i
                        ( ( ( C +H R ) i^i ( D +H S ) ) +H
                          ( ( F +H R ) i^i ( G +H S ) ) ) ) ) ) ) ) ) $=
        ( cph co wa wex vh vx vy vz vw vf vg vv cin wcel cva wceq ee4anv exrot4
        vu 2exbii bitri elin wrex shseli r2ex anbi12i 3bitr4ri 5oalem6 exlimivv
        cv bitr4i sylbi ssriv ) UAABQRZCDQRZUIZGHQRZEFQRZUIZUIZBACACQRBDQRUIAEQ
        RBFQRUIZCEQRDFQRUIZQRUIAGQRBHQRUIVQGEQRHFQRUIZQRUICGQRDHQRUIVRVSQRUIQRU
        IQRUIQRZUAVFZVPUJZUBVFZAUJUCVFZBUJSWAWCWDUKRULZSZUDVFZCUJUEVFZDUJSWAWGW
        HUKRULZSZSZUFVFZGUJUGVFZHUJSWAWLWMUKRULZSZUHVFZEUJUOVFZFUJSWAWPWQUKRULZ
        SZSZSZUOTUHTZUGTUFTZUETUDTZUCTUBTZWAVTUJZWKUETUDTZWTUOTUHTZSZUGTUFTZUCT
        UBTXGUCTUBTZXHUGTUFTZSZXEWBXGXHUBUCUFUGUMXDXJUBUCXDXBUETUDTZUGTUFTXJXBU
        DUEUFUGUNXNXIUFUGWKWTUDUEUHUOUMUPUQUPWBWAVLUJZWAVOUJZSXMWAVLVOURXKXOXLX
        PWAVJUJZWAVKUJZSWFUCTUBTZWJUETUDTZSXOXKXQXSXRXTXQWEUCBUSUBAUSXSUBUCABWA
        IJUTWEUBUCABVAUQXRWIUEDUSUDCUSXTUDUECDWAKLUTWIUDUECDVAUQVBWAVJVKURWFWJU
        BUCUDUEUMVCWAVMUJZWAVNUJZSWOUGTUFTZWSUOTUHTZSXPXLYAYCYBYDYAWNUGHUSUFGUS
        YCUFUGGHWAMNUTWNUFUGGHVAUQYBWRUOFUSUHEUSYDUHUOEFWAOPUTWRUHUOEFVAUQVBWAV
        MVNURWOWSUFUGUHUOUMVCVBVGVCXDXFUBUCXCXFUDUEXBXFUFUGXAXFUHUOUBUCUDUEUHUO
        ABCDEFUFUGUAGHIJKLMNOPVDVEVEVEVEVHVI $.
    $}
  $}

  ${
    5oa.1 $e |- A e. CH $.
    5oa.2 $e |- B e. CH $.
    5oa.3 $e |- C e. CH $.
    5oa.4 $e |- D e. CH $.
    5oa.5 $e |- F e. CH $.
    5oa.6 $e |- G e. CH $.
    5oa.7 $e |- R e. CH $.
    5oa.8 $e |- S e. CH $.
    5oa.9 $e |- A C_ ( _|_ ` B ) $.
    5oa.10 $e |- C C_ ( _|_ ` D ) $.
    5oa.11 $e |- F C_ ( _|_ ` G ) $.
    5oa.12 $e |- R C_ ( _|_ ` S ) $.
    $( Orthoarguesian law 5OA. This 8-variable inference is called 5OA because
       it can be converted to a 5-variable equation (see Quantum Logic
       Explorer).  (Contributed by NM, 5-May-2000.)
       (New usage is discouraged.) $)
    5oai $p |- ( ( ( A vH B ) i^i ( C vH D ) ) i^i
            ( ( F vH G ) i^i ( R vH S ) ) ) C_ ( B vH ( A i^i ( C vH
               ( ( ( ( A vH C ) i^i ( B vH D ) ) i^i
                   ( ( ( A vH R ) i^i ( B vH S ) ) vH
                     ( ( C vH R ) i^i ( D vH S ) ) ) )
              i^i ( ( ( ( A vH F ) i^i ( B vH G ) ) i^i
                      ( ( ( A vH R ) i^i ( B vH S ) ) vH
                        ( ( F vH R ) i^i ( G vH S ) ) ) )
                 vH ( ( ( C vH F ) i^i ( D vH G ) ) i^i
                      ( ( ( C vH R ) i^i ( D vH S ) ) vH
                        ( ( F vH R ) i^i ( G vH S ) ) ) ) ) ) ) ) ) $=
      ( chj co cin cph cort cfv wss osumi ax-mp ineq12i chshii 5oalem7 eqsstr3i
      shscli shincli shsleji chsleji ss2in mp2an shjshcli shlej2i shlej1i sstri
      wceq chjcli chincli shjcli sslin ) ABUAUBZCDUAUBZUCZGHUAUBZEFUAUBZUCZUCZB
      ACACUDUBZBDUDUBZUCZAEUDUBZBFUDUBZUCZCEUDUBZDFUDUBZUCZUDUBZUCZAGUDUBZBHUDU
      BZUCZWAGEUDUBZHFUDUBZUCZUDUBZUCZCGUDUBZDHUDUBZUCZWDWLUDUBZUCZUDUBZUCZUDUB
      ZUCZUDUBZBACACUAUBZBDUAUBZUCZAEUAUBZBFUAUBZUCZCEUAUBZDFUAUBZUCZUAUBZUCZAG
      UAUBZBHUAUBZUCZXJGEUAUBZHFUAUBZUCZUAUBZUCZCGUAUBZDHUAUBZUCZXMYAUAUBZUCZUA
      UBZUCZUAUBZUCZUAUBZVOABUDUBZCDUDUBZUCZGHUDUBZEFUDUBZUCZUCXDYPVKYSVNYNVIYO
      VJABUEUFUGYNVIVDQABIJUHUICDUEUFUGYOVJVDRCDKLUHUIUJYQVLYRVMGHUEUFUGYQVLVDS
      GHMNUHUIEFUEUFUGYRVMVDTEFOPUHUIUJUJABCDEFGHAIUKZBJUKZCKUKZDLUKZGMUKZHNUKZ
      EOUKZFPUKZULUMXDBXCUAUBZYMBXCUUAAXBYTCXAUUBWFWTVRWEVPVQACYTUUBUNBDUUAUUCU
      NUOWAWDVSVTAEYTUUFUNBFUUAUUGUNUOZWBWCCEUUBUUFUNDFUUCUUGUNUOZUNUOWNWSWIWMW
      GWHAGYTUUDUNBHUUAUUEUNUOWAWLUUIWJWKGEUUDUUFUNHFUUEUUGUNUOZUNUOZWQWRWOWPCG
      UUBUUDUNDHUUCUUEUNUOWDWLUUJUUKUNUOZUNUOZUNUOZUPXCYLUGZUUHYMUGXBYKUGUUPXBC
      XAUAUBZYKCXAUUBUUNUPXAYJUGZUUQYKUGWFXOUGZWTYIUGUURVRXGUGZWEXNUGUUSVPXEUGV
      QXFUGUUTACIKUQBDJLUQVPXEVQXFURUSWEWAWDUAUBZXNWAWDUUIUUJUPUVAWAXMUAUBZXNWD
      XMUGZUVAUVBUGWBXKUGWCXLUGUVCCEKOUQDFLPUQWBXKWCXLURUSZWDXMWAUUJXKXLCEUUBUU
      FUTDFUUCUUGUTUOZUUIVAUIWAXJUGZUVBXNUGVSXHUGVTXIUGUVFAEIOUQBFJPUQVSXHVTXIU
      RUSZWAXJXMUUIXHXIAEYTUUFUTBFUUAUUGUTUOZUVEVBUIVCVCVRXGWEXNURUSWTWNWSUAUBZ
      YIWNWSUULUUMUPUVIWNYHUAUBZYIWSYHUGZUVIUVJUGWQYFUGZWRYGUGUVKWOYDUGWPYEUGUV
      LCGKMUQDHLNUQWOYDWPYEURUSWRWDWLUAUBZYGWDWLUUJUUKUPUVMWDYAUAUBZYGWLYAUGZUV
      MUVNUGWJXSUGWKXTUGUVOGEMOUQHFNPUQWJXSWKXTURUSZWLYAWDUUKXSXTGEUUDUUFUTHFUU
      EUUGUTUOZUUJVAUIUVCUVNYGUGUVDWDXMYAUUJUVEUVQVBUIVCVCWQYFWRYGURUSWSYHWNUUM
      YFYGYFYDYECGKMVEDHLNVEVFUKXMYAUVEUVQUTUOZUULVAUIWNYCUGZUVJYIUGWIXRUGZWMYB
      UGUVSWGXPUGWHXQUGUVTAGIMUQBHJNUQWGXPWHXQURUSWMWAWLUAUBZYBWAWLUUIUUKUPUWAW
      AYAUAUBZYBUVOUWAUWBUGUVPWLYAWAUUKUVQUUIVAUIUVFUWBYBUGUVGWAXJYAUUIUVHUVQVB
      UIVCVCWIXRWMYBURUSWNYCYHUULXRYBXRXPXQAGIMVEBHJNVEVFUKXJYAUVHUVQUTUOZUVRVB
      UIVCVCWFXOWTYIURUSXAYJCUUNXOYIXOXGXNXEXFACIKVEBDJLVEVFXJXMUVHUVEVGVFUKYCY
      HUWCUVRUTUOZUUBVAUIVCXBYKAVHUIXCYLBUUOAYKYTCYJUUBUWDUTUOUUAVAUIVCVC $.
  $}

  ${
    $d x y z w v B $.  $d x y z w v C $.  $d x y z w v R $.  $d x y z w v S $.
    3oalem1.1 $e |- B e. CH $.
    3oalem1.2 $e |- C e. CH $.
    3oalem1.3 $e |- R e. CH $.
    3oalem1.4 $e |- S e. CH $.
    $( Lemma for 3OA (weak) orthoarguesian law.  (Contributed by NM,
       19-Oct-1999.)  (New usage is discouraged.) $)
    3oalem1 $p |- ( ( ( ( x e. B /\ y e. R ) /\ v = ( x +h y ) ) /\
                  ( ( z e. C /\ w e. S ) /\ v = ( z +h w ) ) ) ->
                 ( ( ( x e. ~H /\ y e. ~H ) /\ v e. ~H ) /\
                  ( z e. ~H /\ w e. ~H ) ) ) $=
      ( cv wcel wa cva chil cheli anim12i co hvaddcl eleq1 syl5ibrcom imdistani
      wceq sylan adantr ) ANZFOZBNZHOZPZENZUIUKQUAZUFZPUIROZUKROZPZUNROZPZCNZGO
      ZDNZIOZPZUNVBVDQUAUFZPVBROZVDROZPZUMUSUPVAUJUQULURUIFJSUKHLSTUSUPUTUSUTUP
      UOROUIUKUBUNUORUCUDUEUGVFVJVGVCVHVEVIVBGKSVDIMSTUHT $.

    $( Lemma for 3OA (weak) orthoarguesian law.  (Contributed by NM,
       19-Oct-1999.)  (New usage is discouraged.) $)
    3oalem2 $p |- ( ( ( ( x e. B /\ y e. R ) /\ v = ( x +h y ) ) /\
                  ( ( z e. C /\ w e. S ) /\ v = ( z +h w ) ) ) ->
            v e. ( B +H ( R i^i ( S +H ( ( B +H C ) i^i ( R +H S ) ) ) ) ) ) $=
      ( wcel wa cva co wceq cmv c0v cph simplll simpllr chil 3oalem1 hvaddsub12
      cin 3anidm23 hvsubid oveq2d ax-hvaddid sylan9eqr ad2ant2l adantlr simprlr
      cv eqtr3d syl eqtr2 oveq1d anim1i hvsub4 syldan ad2antrr hvsubcl hvaddid2
      simpl adantll 3eqtrd simpr anim2i syl2anc ad2antll ancoms adantrr 3eqtr3d
      ad2ant2rl simpll chshii shsvsi shscomi syl2an eqeltrd simplr elind shscli
      syl6eleqr shincli shsvai eqeltrrd wb eleq1 ad2antlr mpbird ) AUPZFNZBUPZH
      NZOZEUPZWOWQPQZRZOZCUPZGNZDUPZINZOZWTXDXFPQZRZOZOZWTFHIFGUAQZHIUAQZUGZUAQ
      ZUGZUAQZNZXAXRNZXLWPWQXQNXTWPWRXBXKUBXLHXPWQWPWRXBXKUCXLXFWQXFSQZPQZWQXPX
      LWOUDNZWQUDNZOZWTUDNZOXDUDNZXFUDNZOZOZYBWQRZABCDEFGHIJKLMUEZYEYIYKYFYDYHY
      KYCYGYDYHOZWQXFXFSQZPQZYBWQYDYHYOYBRWQXFXFUFUHYHYDYOWQTPQWQYHYNTWQPXFUIZU
      JWQUKULUQUMUNURXLXGYAXONYBXPNXCXEXGXJUOXLXMXNYAXLYAXDWOSQZXMXLXAWOXFPQZSQ
      ZXIYRSQZYAYQXBXJYSYTRWSXHXBXJOXAXIYRSWTXAXIUSUTUMXLYJYSYARZYLYEYHUUAYFYGY
      EYHOZYSWOWOSQZYAPQZTYAPQZYAYEYHYCYHOZYSUUDRYEYCYHYCYDVGVAWOWQWOXFVBVCUUBU
      UCTYAPYCUUCTRYDYHWOUIVDUTYDYHUUEYARZYCYMYAUDNUUGWQXFVEYAVFURVHVIVQURXLYJY
      TYQRZYLYEYIUUHYFYCYIUUHYDYCYIOZYTYQYNPQZYQTPQZYQUUIYIUUFYTUUJRYCYIVJYIYHY
      CYGYHVJVKXDXFWOXFVBVLUUIYNTYQPYHYNTRYCYGYPVMUJYCYGUUKYQRZYHYGYCUULYGYCOYQ
      UDNUULXDWOVEYQUKURVNVOVIUNUNURVPXCWPXEYQXMNXKWPWRXBVRXEXGXJVRWPXEOYQGFUAQ
      ZXMXEWPYQUUMNGFXDWOGKVSZFJVSZVTVNFGUUOUUNWAWGWBWCXCWRXGYAXNNXKWPWRXBWDXEX
      GXJWDHIWQXFHLVSZIMVSZVTWBWEIXOXFYAUUQXMXNFGUUOUUNWFHIUUPUUQWFWHZWIVLWJWEF
      XQWOWQUUOHXPUUPIXOUUQUURWFWHWIVLXBXSXTWKWSXKWTXAXRWLWMWN $.

    $( Lemma for 3OA (weak) orthoarguesian law.  (Contributed by NM,
       19-Oct-1999.)  (New usage is discouraged.) $)
    3oalem3 $p |- ( ( B +H R ) i^i ( C +H S ) ) C_
                   ( B +H ( R i^i ( S +H ( ( B +H C ) i^i ( R +H S ) ) ) ) ) $=
      ( vv vx vy vz vw cph co cv wcel wa wex wrex cin wceq chseli bitri anbi12i
      cva r2ex elin ee4anv 3bitr4i 3oalem2 exlimivv sylbi ssriv ) IACNOZBDNOZUA
      ZACDABNOCDNOUANOUANOZIPZUQQZJPZAQKPZCQRUSVAVBUFOUBZRZLPZBQMPZDQRUSVEVFUFO
      UBZRZRZMSLSZKSJSZUSURQZUSUOQZUSUPQZRVDKSJSZVHMSLSZRUTVKVMVOVNVPVMVCKCTJAT
      VOJKACUSEGUCVCJKACUGUDVNVGMDTLBTVPLMBDUSFHUCVGLMBDUGUDUEUSUOUPUHVDVHJKLMU
      IUJVJVLJKVIVLLMJKLMIABCDEFGHUKULULUMUN $.
  $}

  ${
    3oalem4.3 $e |- R = ( ( _|_ ` B ) i^i ( B vH A ) ) $.
    $( Lemma for 3OA (weak) orthoarguesian law.  (Contributed by NM,
       19-Oct-1999.)  (New usage is discouraged.) $)
    3oalem4 $p |- R C_ ( _|_ ` B ) $=
      ( cort cfv chj co cin inss1 eqsstri ) CBEFZBAGHZILDLMJK $.
  $}

  ${
    3oa.1 $e |- A e. CH $.
    3oa.2 $e |- B e. CH $.
    3oa.3 $e |- C e. CH $.
    3oa.4 $e |- R = ( ( _|_ ` B ) i^i ( B vH A ) ) $.
    3oa.5 $e |- S = ( ( _|_ ` C ) i^i ( C vH A ) ) $.
    $( Lemma for 3OA (weak) orthoarguesian law.  (Contributed by NM,
       19-Oct-1999.)  (New usage is discouraged.) $)
    3oalem5 $p |- ( ( B +H R ) i^i ( C +H S ) ) =
                  ( ( B vH R ) i^i ( C vH S ) ) $=
      ( cph co chj cort cfv wss wceq 3oalem4 cin chshii choccli chincli eqeltri
      cch chjcli osumi ax-mp shscomi chjcomi 3eqtr4i ineq12i ) BDKLZBDMLZCEKLZC
      EMLZDBKLZDBMLZULUMDBNOZPUPUQQABDIRDBDURBAMLZSUDIURUSBGUABAGFUEUBUCZGUFUGB
      DBGTDUTTUHBDGUTUIUJECKLZECMLZUNUOECNOZPVAVBQACEJRECEVCCAMLZSUDJVCVDCHUACA
      HFUEUBUCZHUFUGCECHTEVETUHCEHVEUIUJUK $.

    $( Lemma for 3OA (weak) orthoarguesian law.  (Contributed by NM,
       19-Oct-1999.)  (New usage is discouraged.) $)
    3oalem6 $p |- ( B +H ( R i^i ( S +H ( ( B +H C ) i^i ( R +H S ) ) ) ) ) C_
                  ( B vH ( R i^i ( S vH ( ( B vH C ) i^i ( R vH S ) ) ) ) ) $=
      ( cph co cin chj chshii chjcli chincli shscli wss ax-mp cfv choccli ssrin
      cort cch eqeltri shincli shsleji chsleji sslin sstri shlej2i ) BDEBCKLZDE
      KLZMZKLZMZKLBUQNLZBDEBCNLZDENLZMZNLZMZNLZBUQBGOZDUPDDBUDUAZBANLZMUEIVFVGB
      GUBBAGFPQUFZOZEUOEECUDUAZCANLZMUEJVJVKCHUBCAHFPQUFZOZUMUNBCVECHORDEVIVMRU
      GZRUGZUHUQVCSZURVDSUPVBSVPUPEUONLZVBEUOVMVNUHUOVASVQVBSUOUSUNMZVAUMUSSUOV
      RSBCGHUIUMUSUNUCTUNUTSVRVASDEVHVLUIUNUTUSUJTUKUOVAEVNVAUSUTBCGHPDEVHVLPQZ
      OVMULTUKUPVBDUJTUQVCBVOVCDVBVHEVAVLVSPQOVEULTUK $.

    $( 3OA (weak) orthoarguesian law.  Equation IV of [GodowskiGreechie]
       p. 249.  (Contributed by NM, 19-Oct-1999.)
       (New usage is discouraged.) $)
    3oai $p |- ( ( B vH R ) i^i ( C vH S ) ) C_
                  ( B vH ( R i^i ( S vH ( ( B vH C ) i^i ( R vH S ) ) ) ) ) $=
      ( chj co cin cph cort cfv cch choccli chjcli chincli 3oalem5 eqsstr3i
      eqeltri 3oalem3 3oalem6 sstri ) BDKLCEKLMBDNLCENLMZBDEBCKLDEKLMKLMKLZABCD
      EFGHIJUAUGBDEBCNLDENLMNLMNLUHBCDEGHDBOPZBAKLZMQIUIUJBGRBAGFSTUCECOPZCAKLZ
      MQJUKULCHRCAHFSTUCUDABCDEFGHIJUEUFUB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Projectors (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    pjorth.1 $e |- A e. ~H $.
    pjorth.2 $e |- B e. ~H $.
    $( Projection components on orthocomplemented subspaces are orthogonal.
       (Contributed by NM, 26-Oct-1999.)  (New usage is discouraged.) $)
    pjorthi $p |- ( H e. CH
      -> ( ( ( projh ` H ) ` A ) .ih ( ( projh ` ( _|_ ` H ) ) ` B ) ) = 0 ) $=
      ( cch wcel csh cpjh cfv cort wa csp co cc0 wceq chsh chil axpjcl mpan2
      choccl sylancl jca shocorth sylc ) CFGZCHGACIJJZCGZBCKJZIJJZUIGZLUGUJMNOP
      CQUFUHUKUFARGUHDACSTUFUIFGBRGUKCUAEBUISUBUCUGUJCUDUE $.
  $}

  $( Property of identity projection.  Remark in [Beran] p. 111.  (Contributed
     by NM, 28-Oct-1999.)  (New usage is discouraged.) $)
  pjch1 $p |- ( A e. ~H -> ( ( projh ` ~H ) ` A ) = A ) $=
    ( chil wcel cpjh cfv wceq wb c0v cif eleq1 fveq2 id eqeq12d bibi12d ifhvhv0
    helch pjchi dedth ibi ) ABCZABDEZEZAFZTTUCGTAHIZBCZUDUAEZUDFZGAHAUDFZTUEUCU
    GAUDBJUHUBUFAUDAUDUAKUHLMNUDBPAOQRS $.

  $( The orthogonal projection.  Lemma 4.4(i) of [Beran] p. 111.  (Contributed
     by NM, 30-Oct-1999.)  (New usage is discouraged.) $)
  pjo $p |- ( ( H e. CH /\ A e. ~H ) -> ( ( projh ` ( _|_ ` H ) ) ` A ) =
             ( ( ( projh ` ~H ) ` A ) -h ( ( projh ` H ) ` A ) ) ) $=
    ( cch wcel chil wa cpjh cfv cmv co cort wceq cva pjch1 adantl axpjpj eqtr2d
    wb helch pjhcl pjcli choccl sylan hvsubadd syl3anc mpbird eqcomd ) BCDZAEDZ
    FZAEGHHZABGHHZIJZABKHZGHHZUJUMUOLZULUOMJZUKLZUJUKAUQUIUKALUHANOABPQUJUKEDZU
    LEDUOEDZUPURRUIUSUHAESUAOABTUHUNCDUIUTBUBAUNTUCUKULUOUDUEUFUG $.

  ${
    pjidm.1 $e |- H e. CH $.
    $( Component of a projection.  (Contributed by NM, 31-Oct-1999.)  (Revised
       by Mario Carneiro, 19-May-2014.)  (New usage is discouraged.) $)
    pjcompi $p |- ( ( A e. H /\ B e. ( _|_ ` H ) ) ->
                 ( ( projh ` H ) ` ( A +h B ) ) = A ) $=
      ( wcel cort cfv wa cva co cpjh wceq cch chil cheli choccli hvaddcl syl2an
      sylancr axpjcl axpjpj eqid wi simpl simpr chocunii syl22anc mpan2i simpld
      mpd ) ACEZBCFGZEZHZABIJZCKGGZALZUOULKGGZBLZUNUOUPURIJLZUQUSHZUNCMEZUONEZU
      TDUKANEBNEVCUMACDOBULCDPZOABQRZUOCUASUNUTUOUOLZVAUOUBUNUPCEZURULEZUKUMUTV
      FHVAUCUNVBVCVGDVEUOCTSUNULMEVCVHVDVEUOULTSUKUMUDUKUMUEUPURABUOCDUFUGUHUJU
      I $.

    pjidm.2 $e |- A e. ~H $.
    $( A projection is idempotent.  Property (ii) of [Beran] p. 109.
       (Contributed by NM, 28-Oct-1999.)  (New usage is discouraged.) $)
    pjidmi $p |- ( ( projh ` H ) ` ( ( projh ` H ) ` A ) ) =
               ( ( projh ` H ) ` A ) $=
      ( cpjh cfv wcel wceq pjclii pjhclii pjchi mpbi ) ABEFZFZBGNMFNHABCDINBCAB
      CDJKL $.

    ${
      pjadj.3 $e |- B e. ~H $.
      $( A projection is self-adjoint.  Property (i) of [Beran] p. 109.
         (Contributed by NM, 30-Oct-1999.)  (New usage is discouraged.) $)
      pjadjii $p |- ( ( ( projh ` H ) ` A ) .ih B ) =
                  ( A .ih ( ( projh ` H ) ` B ) ) $=
        ( cpjh cfv cva csp caddc ccj cc0 wcel wceq pjorthi ax-mp pjhclii chil
        co cort cch fveq2i cj0 eqtri choccli his1i 3eqtr4ri oveq2i his7 ax-his2
        mp3an 3eqtr4i pjpji oveq1i ) ACGHZHZBUPHZBCUAHZGHZHZITZJTZUQAUTHZITZURJ
        TZUQBJTAURJTUQURJTZUQVAJTZKTZVGVDURJTZKTZVCVFVHVJVGKURVDJTZLHZMVJVHVMML
        HMVLMLCUBNZVLMODBACFEPQUCUDUEVDURAUSCDUFZERZBCDFRZUGVNVHMODABCEFPQUHUIU
        QSNZURSNZVASNVCVIOACDERZVQBUSVOFRUQURVAUJULVRVDSNVSVFVKOVTVPVQUQVDURUKU
        LUMBVBUQJBCDFUNUIAVEURJACDEUNUOUM $.

      $( Projection of vector sum is sum of projections.  (Contributed by NM,
         31-Oct-1999.)  (New usage is discouraged.) $)
      pjaddii $p |- ( ( projh ` H ) ` ( A +h B ) ) =
                  ( ( ( projh ` H ) ` A ) +h ( ( projh ` H ) ` B ) ) $=
        ( cva co cpjh cfv cort pjpji pjhclii eqtri wcel csh chshii pjclii mp3an
        shaddcl oveq12i choccli hvadd4i fveq2i wceq pjcompi mp2an ) ABGHZCIJZJA
        UIJZBUIJZGHZACKJZIJZJZBUNJZGHZGHZUIJZULUHURUIUHUJUOGHZUKUPGHZGHURAUTBVA
        GACDELBCDFLUAUJUOUKUPACDEMAUMCDUBZEMBCDFMBUMVBFMUCNUDULCOZUQUMOZUSULUEC
        POUJCOUKCOVCCDQACDERBCDFRUJUKCTSUMPOUOUMOUPUMOVDUMVBQAUMVBERBUMVBFRUOUP
        UMTSULUQCDUFUGN $.
    $}

    $( The inner product of a projection and its argument is the square of the
       norm of the projection.  Remark in [Halmos] p. 44.  (Contributed by NM,
       13-Aug-2000.)  (New usage is discouraged.) $)
    pjinormii $p |- ( ( ( projh ` H ) ` A ) .ih A ) =
                 ( ( normh ` ( ( projh ` H ) ` A ) ) ^ 2 ) $=
      ( cpjh cfv cno c2 cexp csp pjhclii normsqi pjadjii pjidmi oveq1i 3eqtr2ri
      co ) ABEFZFZGFHIQSSJQSRFZAJQSAJQSABCDKZLSABCUADMTSAJABCDNOP $.

    ${
      pjmul.3 $e |- C e. CC $.
      $( Projection of (scalar) product is product of projection.  (Contributed
         by NM, 31-Oct-1999.)  (New usage is discouraged.) $)
      pjmulii $p |- ( ( projh ` H ) ` ( C .h A ) ) =
                  ( C .h ( ( projh ` H ) ` A ) ) $=
        ( csm co cpjh cfv cort cva pjhclii eqtri wcel csh chshii pjclii shmulcl
        mp3an pjpji oveq2i choccli hvdistr1i fveq2i wceq cc pjcompi mp2an ) BAG
        HZCIJZJBAUKJZGHZBACKJZIJJZGHZLHZUKJZUMUJUQUKUJBULUOLHZGHUQAUSBGACDEUAUB
        BULUOFACDEMAUNCDUCZEMUDNUEUMCOZUPUNOZURUMUFCPOBUGOZULCOVACDQFACDERBULCS
        TUNPOVCUOUNOVBUNUTQFAUNUTERBUOUNSTUMUPCDUHUIN $.
    $}

    ${
      pjsub.3 $e |- B e. ~H $.
      $( Projection of vector difference is difference of projections.
         (Contributed by NM, 31-Oct-1999.)  (New usage is discouraged.) $)
      pjsubii $p |- ( ( projh ` H ) ` ( A -h B ) ) =
                  ( ( ( projh ` H ) ` A ) -h ( ( projh ` H ) ` B ) ) $=
        ( c1 cneg csm co cva cpjh cfv neg1cn hvmulcli pjaddii pjmulii hvsubvali
        cmv pjhclii oveq2i eqtri fveq2i 3eqtr4i ) AGHZBIJZKJZCLMZMZAUHMZUEBUHMZ
        IJZKJZABSJZUHMUJUKSJUIUJUFUHMZKJUMAUFCDEUEBNFOPUOULUJKBUECDFNQUAUBUNUGU
        HABEFRUCUJUKACDETBCDFTRUD $.
    $}

    ${
      pjsslem.1 $e |- G e. CH $.
      $( Lemma for subset relationships of projections.  (Contributed by NM,
         31-Oct-1999.)  (New usage is discouraged.) $)
      pjsslem $p |- ( ( ( projh ` ( _|_ ` H ) ) ` A ) -h
                      ( ( projh ` ( _|_ ` G ) ) ` A ) ) =
                    ( ( ( projh ` G ) ` A ) -h ( ( projh ` H ) ` A ) ) $=
        ( cort cfv cpjh cmv co c0v chil cch wcel wceq pjo mp2an pjhclii 3eqtri
        cneg csm oveq12i helch pjclii hvsubsub4i hvsubid ax-mp hvsubcli hv2negi
        c1 oveq1i hvnegdii ) ACGHIHHZABGHIHHZJKZLACIHHZABIHHZJKZJKZUKUAUSUBKURU
        QJKUPAMIHHZUQJKZVAURJKZJKVAVAJKZUSJKUTUNVBUOVCJCNOAMOZUNVBPDEACQRBNOVEU
        OVCPFEABQRUCVAUQVAURAMUDEUEZACDESZVFABFESZUFVDLUSJVAMOVDLPVFVAUGUHULTUS
        UQURVGVHUIUJUQURVGVHUMT $.

      $( Subset relationship for projections.  Theorem 4.5(i)->(ii) of [Beran]
         p. 112.  (Contributed by NM, 31-Oct-1999.)
         (New usage is discouraged.) $)
      pjss2i $p |- ( H C_ G -> ( ( projh ` H ) ` ( ( projh ` G ) ` A ) ) =
                 ( ( projh ` H ) ` A ) ) $=
        ( wss cort cfv cpjh cmv co wcel wceq choccli pjclii chsscon3i c0v bitri
        pjhclii ssel mpi sylbi csh chshii shsubcl mp3an1 sylancr pjsslem eleq1i
        hvsubcli pjoc2i pjsubii eqeq1i hvsubeq0i pjidmi eqeq2i 3bitrri sylibr )
        CBGZACHIZJIIZABHIZJIIZKLZVAMZABJIIZCJIZIZAVHIZNZUTVBVAMZVDVAMZVFAVACDOZ
        EPUTVCVAGZVMCBDFQVOVDVCMVMAVCBFOEPVCVAVDUAUBUCVAUDMVLVMVFVAVNUEVBVDVAUF
        UGUHVFVGVJKLZVHIZRNZVIVJVHIZNZVKVFVPVAMVRVEVPVAABCDEFUIUJVPCDVGVJABFETZ
        ACDETZUKULSVRVIVSKLZRNVTVQWCRVGVJCDWAWBUMUNVIVSVGCDWATVJCDWBTUOSVSVJVIA
        CDEUPUQURUS $.

      $( Projection meet property.  Remark in [Kalmbach] p. 66.  Also Theorem
         4.5(i)->(iv) of [Beran] p. 112.  (Contributed by NM, 31-Oct-1999.)
         (New usage is discouraged.) $)
      pjssmii $p |- ( H C_ G -> ( ( ( projh ` G ) ` A )
    -h ( ( projh ` H ) ` A ) ) = ( ( projh ` ( G i^i ( _|_ ` H ) ) ) ` A ) ) $=
        ( wss cort cfv cpjh cmv co pjhclii csm c0v wceq ax-mp wcel pjclii eqtri
        cin choccli chincli pjsubii c1 cneg cva hvsubvali inss1 pjss2i shococss
        chshii inss2 chsscon3i mpbi sstri sselii pjoc2i oveq2i cc neg1cn hvmul0
        csh oveq12i chil ax-hvaddid wa mpi shsubcl mp3an1 sylancr pjsslem sylbi
        ssel syl5eqelr jca elin hvsubcli pjchi bitr3i sylib syl5reqr ) CBGZABCH
        IZUAZJIZIZABJIIZACJIIZKLZWFIZWJWKWHWFIZWIWFIZKLZWGWHWIWEBWDFCDUBZUCZABF
        EMZACDEMZUDWNWLUEUFZWMNLZUGLZWGWLWMWHWEWPWQMWIWEWPWRMUHXAWGOUGLZWGWLWGW
        TOUGWEBGWLWGPBWDUIABWEWPEFUJQWTWSONLZOWMOWSNWIWEHIZRWMOPCXDWICWDHIZXDCV
        CRCXEGCDULCUKQWEWDGXEXDGBWDUMWEWDWPWOUNUOUPACDESZUQWIWEWPWRURUOUSWSUTRX
        COPVAWSVBQTVDWGVERXBWGPAWEWPEMWGVFQTTTWCWJBRZWJWDRZVGZWKWJPZWCXGXHWCWHB
        RZWIBRZXGABFESWCWICRXLXFCBWIVNVHBVCRXKXLXGBFULWHWIBVIVJVKWCWJAWDJIIZABH
        IZJIIZKLZWDABCDEFVLWCXNWDGZXPWDRZCBDFUNXQXMWDRZXOWDRZXRAWDWOESXQXOXNRXT
        AXNBFUBESXNWDXOVNVHWDVCRXSXTXRWDWOULXMXOWDVIVJVKVMVOVPXIWJWERXJWJBWDVQW
        JWEWPWHWIWQWRVRVSVTWAWB $.

      $( Theorem 4.5(iv)->(v) of [Beran] p. 112.  (Contributed by NM,
         13-Aug-2000.)  (New usage is discouraged.) $)
      pjssge0ii $p |- ( ( ( ( projh ` G ) ` A ) -h ( ( projh ` H ) ` A ) )
                    = ( ( projh ` ( G i^i ( _|_ ` H ) ) ) ` A ) ->
   0 <_ ( ( ( ( projh ` G ) ` A ) -h ( ( projh ` H ) ` A ) ) .ih A ) ) $=
        ( cpjh cfv cmv co cort cin wceq cc0 cno c2 cexp csp cle choccli chincli
        pjhclii normcli sqge0i oveq1 pjinormii syl6eq syl5breqr ) ABGHHACGHHIJZ
        ABCKHZLZGHHZMZNULOHZPQJZUIARJZSUNULAUKBUJFCDTUAZEUBUCUDUMUPULARJUOUIULA
        RUEAUKUQEUFUGUH $.

      $( Theorem 4.5(v)<->(vi) of [Beran] p. 112.  (Contributed by NM,
         13-Aug-2000.)  (New usage is discouraged.) $)
      pjdifnormii $p |- ( 0 <_
            ( ( ( ( projh ` G ) ` A ) -h ( ( projh ` H ) ` A ) ) .ih A )
          <->
    ( normh ` ( ( projh ` H ) ` A ) ) <_ ( normh ` ( ( projh ` G ) ` A ) ) ) $=
        ( cc0 cpjh cfv cno c2 cexp co cmin cle wbr csp pjhclii chil wcel breq2i
        normcli resqcli subge0i wceq his2sub mp3an pjinormii oveq12i wb normge0
        cmv eqtri ax-mp le2sqi mp2an 3bitr4i ) GABHIIZJIZKLMZACHIIZJIZKLMZNMZOP
        VCUTOPZGURVAULMAQMZOPVBUSOPZUTVCUSURABFERZUBZUCVBVAACDERZUBZUCUDVFVDGOV
        FURAQMZVAAQMZNMZVDURSTZVASTZASTVFVNUEVHVJEURVAAUFUGVLUTVMVCNABFEUHACDEU
        HUIUMUAGVBOPZGUSOPZVGVEUJVPVQVJVAUKUNVOVRVHURUKUNVBUSVKVIUOUPUQ $.

      $( The projection on a subspace join is the sum of the projections.
         (Contributed by NM, 1-Nov-1999.)  (New usage is discouraged.) $)
      pjcji $p |- ( H C_ ( _|_ ` G ) -> ( ( projh ` ( H vH G ) ) ` A ) =
                ( ( ( projh ` H ) ` A ) +h ( ( projh ` G ) ` A ) ) ) $=
        ( cort cfv wss cpjh cva chj cmv choccli oveq2i pjhclii chil wcel eqtr4i
        co cin pjssmii oveq2d cneg csm pjpoi hvnegdii hvaddsub12 mp3an hvsubcli
        wceq hvsubvali chjcomi chdmm4i fveq2i fveq1i chincli pjopi eqtri eqcomd
        c1 3eqtr4g ) CBGHZIZACJHHZABJHHZKTZACBLTZJHZHZVDAAVCJHHZVEMTZMTZAAVCCGH
        ZUAZJHHZMTZVGVJVDVLVPAMAVCCDEBFNZUBUCVGAVAUDVLUETZKTZVMVGVEAVKMTZKTZVTV
        FWAVEKABFEUFOVTAVEVKMTZKTZWBVSWCAKVKVEAVCVREPZACDEPZUGOVEQRAQRVKQRWBWDU
        KWFEWEVEAVKUHUISSAVLEVKVEWEWFUJULSVJAVOGHZJHZHVQAVIWHVHWGJVHBCLTWGCBDFU
        MBCFDUNSUOUPAVOVCVNVRCDNUQEURUSVBUT $.
    $}
  $}

  ${
    pjadjt.1 $e |- H e. CH $.
    $( A projection is self-adjoint.  Property (i) of [Beran] p. 109.
       (Contributed by NM, 6-Oct-2000.)  (New usage is discouraged.) $)
    pjadji $p |- ( ( A e. ~H /\ B e. ~H ) -> ( ( ( projh ` H ) ` A ) .ih B ) =
                  ( A .ih ( ( projh ` H ) ` B ) ) ) $=
      ( chil wcel cpjh cfv csp co wceq c0v cif fveq2 oveq1d oveq1 eqeq12d oveq2
      oveq2d ifhvhv0 pjadjii dedth2h ) AEFZBEFZACGHZHZBIJZABUEHZIJZKUCALMZUEHZB
      IJZUJUHIJZKUKUDBLMZIJZUJUNUEHZIJZKABLLAUJKZUGULUIUMURUFUKBIAUJUENOAUJUHIP
      QBUNKZULUOUMUQBUNUKIRUSUHUPUJIBUNUENSQUJUNCDATBTUAUB $.

    $( Projection of vector sum is sum of projections.  (Contributed by NM,
       14-Nov-2000.)  (New usage is discouraged.) $)
    pjaddi $p |- ( ( A e. ~H /\ B e. ~H ) -> ( ( projh ` H ) ` ( A +h B ) ) =
                ( ( ( projh ` H ) ` A ) +h ( ( projh ` H ) ` B ) ) ) $=
      ( chil wcel cva co cpjh cfv wceq c0v cif oveq1 fveq2d fveq2 eqeq12d oveq2
      oveq1d ifhvhv0 oveq2d pjaddii dedth2h ) AEFZBEFZABGHZCIJZJZAUGJZBUGJZGHZK
      UDALMZBGHZUGJZULUGJZUJGHZKULUEBLMZGHZUGJZUOUQUGJZGHZKABLLAULKZUHUNUKUPVBU
      FUMUGAULBGNOVBUIUOUJGAULUGPSQBUQKZUNUSUPVAVCUMURUGBUQULGROVCUJUTUOGBUQUGP
      UAQULUQCDATBTUBUC $.

    $( The inner product of a projection and its argument is the square of the
       norm of the projection.  Remark in [Halmos] p. 44.  (Contributed by NM,
       2-Jun-2006.)  (New usage is discouraged.) $)
    pjinormi $p |- ( A e. ~H -> ( ( ( projh ` H ) ` A ) .ih A ) =
                 ( ( normh ` ( ( projh ` H ) ` A ) ) ^ 2 ) ) $=
      ( chil wcel cpjh cfv csp co cno c2 cexp wceq c0v cif fveq2 oveq12d fveq2d
      id oveq1d eqeq12d ifhvhv0 pjinormii dedth ) ADEZABFGZGZAHIZUGJGZKLIZMUEAN
      OZUFGZUKHIZULJGZKLIZMANAUKMZUHUMUJUOUPUGULAUKHAUKUFPZUPSQUPUIUNKLUPUGULJU
      QRTUAUKBCAUBUCUD $.

    $( Projection of vector difference is difference of projections.
       (Contributed by NM, 14-Nov-2000.)  (New usage is discouraged.) $)
    pjsubi $p |- ( ( A e. ~H /\ B e. ~H ) -> ( ( projh ` H ) ` ( A -h B ) ) =
                ( ( ( projh ` H ) ` A ) -h ( ( projh ` H ) ` B ) ) ) $=
      ( chil wcel cmv co cpjh cfv wceq c0v cif oveq1 fveq2d fveq2 eqeq12d oveq2
      oveq1d ifhvhv0 oveq2d pjsubii dedth2h ) AEFZBEFZABGHZCIJZJZAUGJZBUGJZGHZK
      UDALMZBGHZUGJZULUGJZUJGHZKULUEBLMZGHZUGJZUOUQUGJZGHZKABLLAULKZUHUNUKUPVBU
      FUMUGAULBGNOVBUIUOUJGAULUGPSQBUQKZUNUSUPVAVCUMURUGBUQULGROVCUJUTUOGBUQUGP
      UAQULUQCDATBTUBUC $.

    $( Projection of scalar product is scalar product of projection.
       (Contributed by NM, 26-Nov-2000.)  (New usage is discouraged.) $)
    pjmuli $p |- ( ( A e. CC /\ B e. ~H ) -> ( ( projh ` H ) ` ( A .h B ) ) =
                ( A .h ( ( projh ` H ) ` B ) ) ) $=
      ( cc wcel chil csm co cpjh cfv wceq cc0 cif c0v oveq1 eqeq12d oveq2 fveq2
      fveq2d oveq2d ifhvhv0 0cn elimel pjmulii dedth2h ) AEFZBGFZABHIZCJKZKZABU
      JKZHIZLUGAMNZBHIZUJKZUNULHIZLUNUHBONZHIZUJKZUNURUJKZHIZLABMOAUNLZUKUPUMUQ
      VCUIUOUJAUNBHPTAUNULHPQBURLZUPUTUQVBVDUOUSUJBURUNHRTVDULVAUNHBURUJSUAQURU
      NCDBUBAMEUCUDUEUF $.

    $( The inner product of a projection and its argument is nonnegative.
       (Contributed by NM, 2-Jun-2006.)  (New usage is discouraged.) $)
    pjige0i $p |- ( A e. ~H -> 0 <_ ( ( ( projh ` H ) ` A ) .ih A ) ) $=
      ( chil wcel cc0 cpjh cfv cno c2 cexp co csp cle cr pjhcli normcl pjinormi
      syl sqge0d breqtrrd ) ADEZFABGHHZIHZJKLUCAMLNUBUDUBUCDEUDOEABCPUCQSTABCRU
      A $.
  $}

  $( The inner product of a projection and its argument is nonnegative.
     (Contributed by NM, 2-Jun-2006.)  (New usage is discouraged.) $)
  pjige0 $p |- ( ( H e. CH /\ A e. ~H ) ->
                0 <_ ( ( ( projh ` H ) ` A ) .ih A ) ) $=
    ( cch wcel chil cc0 cpjh cfv csp co cle wbr wi c0h wceq fveq2 fveq1d oveq1d
    cif breq2d imbi2d h0elch elimel pjige0i dedth imp ) BCDZAEDZFABGHZHZAIJZKLZ
    UGUHULMUHFAUGBNSZGHZHZAIJZKLZMBNBUMOZULUQUHURUKUPFKURUJUOAIURAUIUNBUMGPQRTU
    AAUMBNCUBUCUDUEUF $.

  $( The projection on a subspace join is the sum of the projections.
     (Contributed by NM, 1-Nov-1999.)  (New usage is discouraged.) $)
  pjcjt2 $p |- ( ( H e. CH /\ G e. CH /\ A e. ~H ) ->
            ( H C_ ( _|_ ` G ) -> ( ( projh ` ( H vH G ) ) ` A ) =
            ( ( ( projh ` H ) ` A ) +h ( ( projh ` G ) ` A ) ) ) ) $=
    ( cch wcel chil cort cfv wss chj co cpjh cva wceq wi cif c0v fveq1d eqeq12d
    fveq2 sseq1 oveq1 fveq2d oveq1d imbi12d sseq2d oveq2d oveq12d imbi2d ifchhv
    oveq2 ifhvhv0 pjcji dedth3h ) CDEZBDEZAFEZCBGHZIZACBJKZLHZHZACLHZHZABLHZHZM
    KZNZOUOCFPZURIZAVIBJKZLHZHZAVILHZHZVFMKZNZOVIUPBFPZGHZIZAVIVRJKZLHZHZVOAVRL
    HZHZMKZNZOVTUQAQPZWBHZWHVNHZWHWDHZMKZNZOCBAFFQCVINZUSVJVHVQCVIURUAWNVBVMVGV
    PWNAVAVLWNUTVKLCVIBJUBUCRWNVDVOVFMWNAVCVNCVILTRUDSUEBVRNZVJVTVQWGWOURVSVIBV
    RGTUFWOVMWCVPWFWOAVLWBWOVKWALBVRVIJUKUCRWOVFWEVOMWOAVEWDBVRLTRUGSUEAWHNZWGW
    MVTWPWCWIWFWLAWHWBTWPVOWJWEWKMAWHVNTAWHWDTUHSUIWHVRVICUJAULBUJUMUN $.

  ${
    pj0.1 $e |- H e. CH $.
    $( The projection of the zero vector.  (Contributed by NM, 31-Oct-1999.)
       (New usage is discouraged.) $)
    pj0i $p |- ( ( projh ` H ) ` 0h ) = 0h $=
      ( c0v cort cfv wcel cpjh wceq csh chshii oc0 ax-mp ax-hv0cl pjoc2i mpbi )
      CADEFZCAGEECHAIFPABJAKLCABMNO $.
  $}

  $( Projection of a vector in the projection subspace.  Lemma 4.4(ii) of
     [Beran] p. 111.  (Contributed by NM, 30-Oct-1999.)
     (New usage is discouraged.) $)
  pjch $p |- ( ( H e. CH /\ A e. ~H ) ->
              ( A e. H <-> ( ( projh ` H ) ` A ) = A ) ) $=
    ( cch wcel chil cpjh cfv wb cif c0v eleq2 fveq2 fveq1d eqeq1d bibi12d eleq1
    wceq id eqeq12d ifchhv ifhvhv0 pjchi dedth2h ) BCDZAEDZABDZABFGZGZAQZHAUDBE
    IZDZAUJFGZGZAQZHUEAJIZUJDZUOULGZUOQZHBAEJBUJQZUFUKUIUNBUJAKUSUHUMAUSAUGULBU
    JFLMNOAUOQZUKUPUNURAUOUJPUTUMUQAUOAUOULLUTRSOUOUJBTAUAUBUC $.

  $( The projection of a vector in the projection subspace is itself.
     (Contributed by NM, 9-Apr-2006.)  (New usage is discouraged.) $)
  pjid $p |- ( ( H e. CH /\ A e. H ) -> ( ( projh ` H ) ` A ) = A ) $=
    ( cch wcel chil wa cpjh cfv wceq simpl chel jca pjch biimpa sylancom ) BCDZ
    ABDZPAEDZFZABGHHAIZPQFPRPQJABKLSQTABMNO $.

  ${
    $d x H $.
    $( The set of vectors belonging to the subspace of a projection.  Part of
       Theorem 26.2 of [Halmos] p. 44.  (Contributed by NM, 11-Apr-2006.)
       (New usage is discouraged.) $)
    pjvec $p |- ( H e. CH -> H = { x e. ~H | ( ( projh ` H ) ` x ) = x } ) $=
      ( cch wcel chil cin cv cpjh cfv wceq crab wss chss sseqin2 pjch rabbi2dva
      sylib eqtr3d ) BCDZEBFZBAGZBHIIUAJZAEKSBELTBJBMBENQSUBAEBUABOPR $.

    $( The set of vectors belonging to the orthocomplemented subspace of a
       projection.  Second part of Theorem 27.3 of [Halmos] p. 45.
       (Contributed by NM, 24-Apr-2006.)  (New usage is discouraged.) $)
    pjocvec $p |- ( H e. CH -> ( _|_ ` H ) =
                   { x e. ~H | ( ( projh ` H ) ` x ) = 0h } ) $=
      ( cch wcel chil cort cfv cin cv cpjh c0v wceq crab wss choccl syl sseqin2
      chss sylib pjoc2 rabbi2dva eqtr3d ) BCDZEBFGZHZUDAIZBJGGKLZAEMUCUDENZUEUD
      LUCUDCDUHBOUDRPUDEQSUCUGAEUDUFBTUAUB $.
  $}

  ${
    pjocin.1 $e |- G e. CH $.
    pjocin.2 $e |- H e. CH $.
    $( Membership of projection in orthocomplement of intersection.
       (Contributed by NM, 21-Apr-2001.)  (New usage is discouraged.) $)
    pjocini $p |- ( A e. ( _|_ ` ( G i^i H ) ) ->
                 ( ( projh ` G ) ` A ) e. ( _|_ ` ( G i^i H ) ) ) $=
      ( cin cort cfv wcel cpjh cmv cch chil wceq chincli choccli cheli pjpo wss
      co sylancr inss1 chsscon3i mpbi pjcli syl sseldi csh chshii shsubcl mpdan
      mp3an1 eqeltrd ) ABCFZGHZIZABJHHZAABGHZJHHZKTZUOUPBLIAMIZUQUTNDAUOUNBCDEO
      ZPZQZABRUAUPUSUOIZUTUOIZUPURUOUSUNBSURUOSBCUBUNBVBDUCUDUPVAUSURIVDAURBDPU
      EUFUGUOUHIUPVEVFUOVCUIAUSUOUJULUKUM $.

    $( Membership of projection in an intersection.  (Contributed by NM,
       22-Apr-2001.)  (New usage is discouraged.) $)
    pjini $p |- ( A e. ( G i^i H ) ->
                 ( ( projh ` G ) ` A ) e. ( G i^i H ) ) $=
      ( cin wcel cpjh cfv cch wceq inss1 sseli pjid sylancr eleq1d ibir ) ABCFZ
      GZABHIIZRGSTARSBJGABGTAKDRBABCLMABNOPQ $.
  $}

  ${
    $d x y z w G $.  $d x y z w H $.
    pjjs.1 $e |- G e. CH $.
    pjjs.2 $e |- H e. SH $.
    $( A sufficient condition for subspace join to be equal to subspace sum.
       (Contributed by NM, 29-May-2004.)  (New usage is discouraged.) $)
    pjjsi $p |- ( A. x e. ( G vH H ) ( ( projh ` ( _|_ ` G ) ) ` x ) e. H ->
               ( G vH H ) = ( G +H H ) ) $=
      ( vw vy vz cv cort cfv cpjh wcel co wss wa wceq cva wrex sylibr chj fveq2
      wral cph eleq1d rspcv chil chshii shjcli cheli pjcli anim1i axpjpj adantr
      cch mpan jca sylan rspceov 3expa shseli ex syldc ssrdv shsleji jctir eqss
      syl ) AIZBJKLKZKZCMZABCUANZUCZVMBCUDNZOZVOVMOZPVMVOQVNVPVQVNFVMVOFIZVMMZV
      NVRVJKZCMZVRVOMZVLWAAVRVMVIVRQVKVTCVIVRVJUBUEUFVSWAWBVSWAPZVRGIHIRNQHCSGB
      SZWBWCVRBLKKZBMZWAPZVRWEVTRNQZPZWDVSVRUGMZWAWIVRVMBCBDUHZEUIUJWJWAPWGWHWJ
      WFWAVRBDUKULWJWHWABUOMWJWHDVRBUMUPUNUQURWFWAWHWDGHBCWEVTVRRUSUTVHGHBCVRWK
      EVATVBVCVDBCWKEVEVFVMVOVGT $.
  $}

  ${
    $d x y z H $.
    pjfn.1 $e |- H e. CH $.
    $( Functionality of a projection.  (Contributed by NM, 30-Oct-1999.)
       (Revised by Mario Carneiro, 23-Dec-2013.)
       (New usage is discouraged.) $)
    pjfni $p |- ( projh ` H ) Fn ~H $=
      ( vx vy vz chil cv cva wceq cort cfv wrex crio cpjh riotaex cch wcel cmpt
      co pjhfval ax-mp fnmpti ) CFCGDGEGHSIEAJKLZDAMZANKZUCDAOAPQUECFUDRIBCEDAT
      UAUB $.

    $( The range of a projection.  Part of Theorem 26.2 of [Halmos] p. 44.
       (Contributed by NM, 30-Oct-1999.)  (Revised by Mario Carneiro,
       10-Sep-2015.)  (New usage is discouraged.) $)
    pjrni $p |- ran ( projh ` H ) = H $=
      ( vx vy cpjh cfv crn chil wf wss wfn wcel wral pjfni pjcli ffnfv mpbir2an
      cv rgen frn ax-mp cch wceq pjid mpan cheli fnfvelrn eqeltrrd ssriv eqssi
      sylancr ) AEFZGZAHAULIZUMAJUNULHKZCRZULFALZCHMABNZUQCHUPABOSCHAULPQHAULTU
      ADAUMDRZALZUSULFZUSUMAUBLUTVAUSUCBUSAUDUEUTUOUSHLVAUMLURUSABUFHUSULUGUKUH
      UIUJ $.

    $( A projection maps onto its subspace.  (Contributed by NM, 24-Apr-2006.)
       (New usage is discouraged.) $)
    pjfoi $p |- ( projh ` H ) : ~H -onto-> H $=
      ( chil cpjh cfv wfo wfn crn wceq pjfni pjrni df-fo mpbir2an ) CAADEZFNCGN
      HAIABJABKCANLM $.

    $( The mapping of a projection.  (Contributed by NM, 11-Nov-2000.)
       (New usage is discouraged.) $)
    pjfi $p |- ( projh ` H ) : ~H --> ~H $=
      ( chil cpjh cfv wf wfn crn wss pjfni pjrni chssii eqsstri df-f mpbir2an )
      CCADEZFPCGPHZCIABJQACABKABLMCCPNO $.

    $( The value of a projection in terms of components.  (Contributed by NM,
       28-Nov-2000.)  (New usage is discouraged.) $)
    pjvi $p |- ( ( A e. H /\ B e. ( _|_ ` H ) ) ->
               ( ( projh ` H ) ` ( A +h B ) ) = A ) $=
      ( pjcompi ) ABCDE $.
  $}

  $( A projection maps onto its subspace.  (Contributed by NM, 24-Apr-2006.)
     (New usage is discouraged.) $)
  pjhfo $p |- ( H e. CH -> ( projh ` H ) : ~H -onto-> H ) $=
    ( cch wcel chil cpjh cfv wfo c0h cif wb fveq2 foeq1 syl foeq3 h0elch elimel
    wceq pjfoi dedth2v ) ABCZDAAEFZGZDATAHIZEFZGZDUCUDGAAHHAUCQUAUDQUBUEJAUCEKD
    AUAUDLMAUCDUDNUCAHBOPRS $.

  $( The range of a projection.  Part of Theorem 26.2 of [Halmos] p. 44.
     (Contributed by NM, 24-Apr-2006.)  (New usage is discouraged.) $)
  pjrn $p |- ( H e. CH -> ran ( projh ` H ) = H ) $=
    ( cch wcel chil cpjh cfv wfo crn wceq pjhfo forn syl ) ABCDAAEFZGMHAIAJDAMK
    L $.

  $( The mapping of a projection.  (Contributed by NM, 24-Apr-2006.)
     (New usage is discouraged.) $)
  pjhf $p |- ( H e. CH -> ( projh ` H ) : ~H --> ~H ) $=
    ( cch wcel chil cpjh cfv wfo wf pjhfo fof syl chss fssd ) ABCZDADAEFZNDAOGD
    AOHAIDAOJKALM $.

  $( Functionality of a projection.  (Contributed by NM, 30-May-2006.)
     (New usage is discouraged.) $)
  pjfn $p |- ( H e. CH -> ( projh ` H ) Fn ~H ) $=
    ( cch wcel chil cpjh cfv wf wfn pjhf ffn syl ) ABCDDAEFZGLDHAIDDLJK $.

  ${
    pjsumt.1 $e |- G e. CH $.
    pjsumt.2 $e |- H e. CH $.
    $( The projection on a subspace sum is the sum of the projections.
       (Contributed by NM, 11-Nov-2000.)  (New usage is discouraged.) $)
    pjsumi $p |- ( A e. ~H ->
            ( G C_ ( _|_ ` H ) -> ( ( projh ` ( G +H H ) ) ` A ) =
            ( ( ( projh ` G ) ` A ) +h ( ( projh ` H ) ` A ) ) ) ) $=
      ( chil wcel cort cfv wss cph co cpjh cva wceq wa chj osumi fveq2d cch imp
      fveq1d adantl wi pjcjt2 mp3an12 eqtrd ex ) AFGZBCHIJZABCKLZMIZIZABMIIACMI
      INLZOUIUJPUMABCQLZMIZIZUNUJUMUQOUIUJAULUPUJUKUOMBCDERSUBUCUIUJUQUNOZBTGCT
      GUIUJURUDDEACBUEUFUAUGUH $.

    $( One-to-one correspondence of projection and subspace.  (Contributed by
       NM, 26-Nov-2000.)  (New usage is discouraged.) $)
    pj11i $p |- ( ( projh ` G ) = ( projh ` H ) <-> G = H ) $=
      ( cpjh cfv wceq crn rneq pjrni 3eqtr3g fveq2 impbii ) AEFZBEFZGZABGPNHOHA
      BNOIACJBDJKABELM $.

    $( Vector decomposition into sum of projections on orthogonal subspaces.
       (Contributed by NM, 21-Jun-2006.)  (New usage is discouraged.) $)
    pjdsi $p |- ( ( A e. ( G vH H ) /\ G C_ ( _|_ ` H ) ) ->
               A = ( ( ( projh ` G ) ` A ) +h ( ( projh ` H ) ` A ) ) ) $=
      ( chj co wcel cort cfv wss wa cph cpjh cva osumi fveq2d fveq1d cch wceq
      chjcli pjid mpan sylan9eqr chil cheli pjsumi imp sylan eqtr3d ) ABCFGZHZB
      CIJKZLABCMGZNJZJZAABNJJACNJJOGZUMULUPAUKNJZJZAUMAUOURUMUNUKNBCDEPQRUKSHUL
      USATBCDEUAZAUKUBUCUDULAUEHZUMUPUQTZAUKUTUFVAUMVBABCDEUGUHUIUJ $.
  $}

  ${
    pjds3.1 $e |- F e. CH $.
    pjds3.2 $e |- G e. CH $.
    pjds3.3 $e |- H e. CH $.
    $( Vector decomposition into sum of projections on orthogonal subspaces.
       (Contributed by NM, 22-Jun-2006.)  (New usage is discouraged.) $)
    pjds3i $p |- ( ( ( A e. ( ( F vH G ) vH H ) /\ F C_ ( _|_ ` G ) ) /\
     ( F C_ ( _|_ ` H ) /\ G C_ ( _|_ ` H ) ) ) -> A = ( ( ( ( projh ` F ) ` A
        )
                +h ( ( projh ` G ) ` A ) ) +h ( ( projh ` H ) ` A ) ) ) $=
      ( chj co wcel cort cfv wss wa cpjh cva cph wceq chjcli oveq1d simpl pjdsi
      choccli chlubii syl2an osumi fveq2d fveq1d ad2antlr chil cheli pjsumi imp
      sylan adantr 3eqtr2d ) ABCHIZDHIZJZBCKLMZNZBDKLZMCVBMNZNAAUQOLZLZADOLLZPI
      ZABCQIZOLZLZVFPIZABOLLACOLLPIZVFPIZVAUSUQVBMAVGRVCUSUTUABCVBEFDGUCUDAUQDB
      CEFSZGUBUEUTVKVGRUSVCUTVJVEVFPUTAVIVDUTVHUQOBCEFUFUGUHTUIVAVKVMRVCVAVJVLV
      FPUSAUJJZUTVJVLRZAURUQDVNGSUKVOUTVPABCEFULUMUNTUOUP $.
  $}

  $( One-to-one correspondence of projection and subspace.  (Contributed by NM,
     24-Apr-2006.)  (New usage is discouraged.) $)
  pj11 $p |- ( ( G e. CH /\ H e. CH ) ->
              ( ( projh ` G ) = ( projh ` H ) <-> G = H ) ) $=
    ( cch wcel cpjh cfv wceq wb c0h cif fveq2 eqeq1d eqeq1 bibi12d eqeq2d eqeq2
    h0elch elimel pj11i dedth2h ) ACDZBCDZAEFZBEFZGZABGZHUAAIJZEFZUDGZUGBGZHUHU
    BBIJZEFZGZUGUKGZHABIIAUGGZUEUIUFUJUOUCUHUDAUGEKLAUGBMNBUKGZUIUMUJUNUPUDULUH
    BUKEKOBUKUGPNUGUKAICQRBICQRST $.

  ${
    $d h x y z $.
    $( Functionality of the projection function.  (Contributed by NM,
       24-Apr-2006.)  (New usage is discouraged.) $)
    pjmfn $p |- projh Fn CH $=
      ( vh vx vz vy cch chil cv cva wceq cort cfv wrex crio cmpt ax-hilex mptex
      co cpjh df-pjh fnmpti ) AEBFBGCGDGHQIDAGZJKLCUAMZNRBFUBOPBDCAST $.

    $( The projector function maps one-to-one into the set of Hilbert space
       operators.  (Contributed by NM, 24-Apr-2006.)
       (New usage is discouraged.) $)
    pjmf1 $p |- projh : CH -1-1-> ( ~H ^m ~H ) $=
      ( vx vy cch chil cmap co cpjh wf1 wf cv cfv wceq wral wfn wcel pjmfn pjhf
      wi ax-hilex mpbir2an elmap sylibr rgen ffnfv wa pj11 biimpd rgen2a dff13
      ) CDDEFZGHCUJGIZAJZGKZBJZGKLZULUNLZRZBCMACMUKGCNUMUJOZACMPURACULCOZDDUMIU
      RULQDDUMSSUAUBUCACUJGUDTUQABCUSUNCOUEUOUPULUNUFUGUHABCUJGUIT $.
  $}

  $( The inner product of projections on orthogonal subspaces vanishes.
     (Contributed by NM, 30-Jun-2006.)  (New usage is discouraged.) $)
  pjoi0 $p |- ( ( ( G e. CH /\ H e. CH /\ A e. ~H ) /\ G C_ ( _|_ ` H ) ) ->
               ( ( ( projh ` G ) ` A ) .ih ( ( projh ` H ) ` A ) ) = 0 ) $=
    ( cch wcel chil w3a cort cfv wss cpjh crn wceq wa pjrn adantr pjfn fnfvelrn
    wfn sylan csp co cc0 fveq2d adantl sseq12d biimpar 3adantl3 id eqeltrd chsh
    csh syl 3ad2ant2 simpr 3adant2 3adant1 jca shorth syl3c syldan ) BDEZCDEZAF
    EZGZBCHIZJZBKIZLZCKIZLZHIZJZAVHIZAVJIZUAUBUCMZVBVCVGVMVDVBVCNZVMVGVQVIBVLVF
    VBVIBMVCBOPVCVLVFMVBVCVKCHCOZUDUEUFUGUHVEVMNVKULEZVMVNVIEZVOVKEZNZVPVEVSVMV
    CVBVSVDVCVKDEVSVCVKCDVRVCUIUJVKUKUMUNPVEVMUOVEWBVMVEVTWAVBVDVTVCVBVHFSVDVTB
    QFAVHRTUPVCVDWAVBVCVJFSVDWACQFAVJRTUQURPVNVOVIVKUSUTVA $.

  ${
    pjoi0.1 $e |- G e. CH $.
    pjoi0.2 $e |- H e. CH $.
    pjoi0.3 $e |- A e. ~H $.
    $( The inner product of projections on orthogonal subspaces vanishes.
       (Contributed by NM, 1-Nov-1999.)  (New usage is discouraged.) $)
    pjoi0i $p |- ( G C_ ( _|_ ` H ) ->
                ( ( ( projh ` G ) ` A ) .ih ( ( projh ` H ) ` A ) ) = 0 ) $=
      ( cch wcel chil w3a cort cfv wss cpjh csp co cc0 wceq 3pm3.2i pjoi0 mpan
      ) BGHZCGHZAIHZJBCKLMABNLLACNLLOPQRUBUCUDDEFSABCTUA $.

    $( Pythagorean theorem for projections on orthogonal subspaces.
       (Contributed by NM, 1-Nov-1999.)  (New usage is discouraged.) $)
    pjopythi $p |- ( G C_ ( _|_ ` H ) ->
       ( ( normh ` ( ( ( projh ` G ) ` A ) +h ( ( projh ` H ) ` A ) ) ) ^ 2 ) =
                 ( ( ( normh ` ( ( projh ` G ) ` A ) ) ^ 2 ) +
                   ( ( normh ` ( ( projh ` H ) ` A ) ) ^ 2 ) ) ) $=
      ( cort cfv wss cpjh csp co cc0 wceq cva cno c2 cexp caddc pjhclii pjoi0i
      normpythi syl ) BCGHIABJHHZACJHHZKLMNUDUEOLPHQRLUDPHQRLUEPHQRLSLNABCDEFUA
      UDUEABDFTACEFTUBUC $.
  $}

  $( Pythagorean theorem for projections on orthogonal subspaces.  (Contributed
     by NM, 2-Nov-1999.)  (New usage is discouraged.) $)
  pjopyth $p |- ( ( H e. CH /\ G e. CH /\ A e. ~H ) -> ( H C_ ( _|_ ` G ) ->
       ( ( normh ` ( ( ( projh ` H ) ` A ) +h ( ( projh ` G ) ` A ) ) ) ^ 2 ) =
                 ( ( ( normh ` ( ( projh ` H ) ` A ) ) ^ 2 ) +
                   ( ( normh ` ( ( projh ` G ) ` A ) ) ^ 2 ) ) ) ) $=
    ( wcel chil cort cfv wss cpjh cva co cno c2 cexp caddc wceq wi fveq2 oveq1d
    fveq2d cch cif c0v sseq1 fveq1d eqeq12d imbi12d sseq2d oveq2d imbi2d ifchhv
    oveq12d ifhvhv0 pjopythi dedth3h ) CUADZBUADZAEDZCBFGZHZACIGZGZABIGZGZJKZLG
    ZMNKZVBLGZMNKZVDLGZMNKZOKZPZQUPCEUBZUSHZAVNIGZGZVDJKZLGZMNKZVQLGZMNKZVKOKZP
    ZQVNUQBEUBZFGZHZVQAWEIGZGZJKZLGZMNKZWBWILGZMNKZOKZPZQWGURAUCUBZVPGZWQWHGZJK
    ZLGZMNKZWRLGZMNKZWSLGZMNKZOKZPZQCBAEEUCCVNPZUTVOVMWDCVNUSUDXIVGVTVLWCXIVFVS
    MNXIVEVRLXIVBVQVDJXIAVAVPCVNIRUEZSTSXIVIWBVKOXIVHWAMNXIVBVQLXJTSSUFUGBWEPZV
    OWGWDWPXKUSWFVNBWEFRUHXKVTWLWCWOXKVSWKMNXKVRWJLXKVDWIVQJXKAVCWHBWEIRUEZUITS
    XKVKWNWBOXKVJWMMNXKVDWILXLTSUIUFUGAWQPZWPXHWGXMWLXBWOXGXMWKXAMNXMWJWTLXMVQW
    RWIWSJAWQVPRZAWQWHRZULTSXMWBXDWNXFOXMWAXCMNXMVQWRLXNTSXMWMXEMNXMWIWSLXOTSUL
    UFUJWQVNWECUKBUKAUMUNUO $.

  ${
    pjnorm.1 $e |- H e. CH $.
    pjnorm.2 $e |- A e. ~H $.
    $( The norm of the projection is less than or equal to the norm.
       (Contributed by NM, 27-Oct-1999.)  (New usage is discouraged.) $)
    pjnormi $p |- ( normh ` ( ( projh ` H ) ` A ) ) <_ ( normh ` A ) $=
      ( cpjh cfv cno cort cva co cle chil wcel csp cc0 wceq wbr pjhclii choccli
      wa pm3.2i cch pjorthi ax-mp normpyc mp2 pjpji fveq2i breqtrri ) ABEFFZGFZ
      UJABHFZEFFZIJZGFZAGFKUJLMZUMLMZTUJUMNJOPZUKUOKQUPUQABCDRAULBCSDRUABUBMURC
      AABDDUCUDUJUMUEUFAUNGABCDUGUHUI $.

    $( Pythagorean theorem for projections.  (Contributed by NM, 27-Oct-1999.)
       (New usage is discouraged.) $)
    pjpythi $p |- ( ( normh ` A ) ^ 2 ) =
                 ( ( ( normh ` ( ( projh ` H ) ` A ) ) ^ 2 ) +
                   ( ( normh ` ( ( projh ` ( _|_ ` H ) ) ` A ) ) ^ 2 ) ) $=
      ( cno cfv c2 cexp co cpjh cort cva caddc pjpji fveq2i oveq1i csh wcel wss
      wceq chshii shococss choccli pjopythi mp2b eqtri ) AEFZGHIABJFFZABKFZJFFZ
      LIZEFZGHIZUHEFGHIUJEFGHIMIZUGULGHAUKEABCDNOPBQRBUIKFSUMUNTBCUABUBABUICBCU
      CDUDUEUF $.

    $( If a vector does not belong to subspace, the norm of its projection is
       less than its norm.  (Contributed by NM, 27-Oct-1999.)
       (New usage is discouraged.) $)
    pjneli $p |- ( -. A e. H <->
                ( normh ` ( ( projh ` H ) ` A ) ) < ( normh ` A ) ) $=
      ( cno cfv cpjh cle wbr wcel wceq c2 cexp caddc normcli chil normge0 ax-mp
      co cc0 wne wa wn clt pjnormi biantrur cort c0v pjoc1i pjpythi sq0 pjhclii
      oveq2i resqcli recni addid1i eqtr2i eqeq12i choccli sqcli addcani wb 0le0
      0cn 0re sq11i mp2an norm-i-i 3bitri bitr2i necon3bbii ltleni 3bitr4i ) AE
      FZABGFFZEFZUAZVPVNHIZVQUBABJZUCVPVNUDIVRVQABCDUEUFVSVNVPVSABUGFZGFFZUHKZV
      NLMSZVPLMSZKZVNVPKZABCDUIWEWDWAEFZLMSZNSZWDTLMSZNSZKZWBWCWIWDWKABCDUJWKWD
      TNSWDWJTWDNUKUMWDWDVPVOABCDULZOZUNUOZUPUQURWLWHWJKZWGTKZWBWDWHWJWOWHWGWAA
      VTBCUSDULZOZUNUOTVDUTVATWGHIZTTHIWPWQVBWAPJWTWRWAQRVCWGTWSVEVFVGWAWRVHVIV
      JTVNHIZTVPHIZWEWFVBAPJXADAQRVOPJXBWMVOQRVNVPADOZWNVFVGVIVKVPVNWNXCVLVM $.
  $}

  $( The norm of the projection is less than or equal to the norm.
     (Contributed by NM, 28-Oct-1999.)  (New usage is discouraged.) $)
  pjnorm $p |- ( ( H e. CH /\ A e. ~H ) ->
                ( normh ` ( ( projh ` H ) ` A ) ) <_ ( normh ` A ) ) $=
    ( cch wcel chil cpjh cfv cno cle wbr cif fveq2 fveq1d fveq2d breq1d breq12d
    c0v wceq ifchhv ifhvhv0 pjnormi dedth2h ) BCDZAEDZABFGZGZHGZAHGZIJAUCBEKZFG
    ZGZHGZUHIJUDAQKZUJGZHGZUMHGZIJBAEQBUIRZUGULUHIUQUFUKHUQAUEUJBUIFLMNOAUMRZUL
    UOUHUPIURUKUNHAUMUJLNAUMHLPUMUIBSATUAUB $.

  $( Pythagorean theorem for projectors.  (Contributed by NM, 11-Apr-2006.)
     (New usage is discouraged.) $)
  pjpyth $p |- ( ( H e. CH /\ A e. ~H ) -> ( ( normh ` A ) ^ 2 ) =
               ( ( ( normh ` ( ( projh ` H ) ` A ) ) ^ 2 ) +
                 ( ( normh ` ( ( projh ` ( _|_ ` H ) ) ` A ) ) ^ 2 ) ) ) $=
    ( wcel chil cno cfv c2 cexp co cpjh cort caddc wceq cif fveq2 fveq1d fveq2d
    c0v oveq1d oveq12d cch eqeq2d eqeq12d ifchhv ifhvhv0 pjpythi dedth2h ) BUAC
    ZADCZAEFZGHIZABJFZFZEFZGHIZABKFZJFZFZEFZGHIZLIZMUKAUHBDNZJFZFZEFZGHIZAVBKFZ
    JFZFZEFZGHIZLIZMUIARNZEFZGHIZVMVCFZEFZGHIZVMVHFZEFZGHIZLIZMBADRBVBMZVAVLUKW
    CUOVFUTVKLWCUNVEGHWCUMVDEWCAULVCBVBJOPQSWCUSVJGHWCURVIEWCAUQVHWCUPVGJBVBKOQ
    PQSTUBAVMMZUKVOVLWBWDUJVNGHAVMEOSWDVFVRVKWALWDVEVQGHWDVDVPEAVMVCOQSWDVJVTGH
    WDVIVSEAVMVHOQSTUCVMVBBUDAUEUFUG $.

  $( If a vector does not belong to subspace, the norm of its projection is
     less than its norm.  (Contributed by NM, 2-Nov-1999.)
     (New usage is discouraged.) $)
  pjnel $p |- ( ( H e. CH /\ A e. ~H ) -> ( -. A e. H <->
              ( normh ` ( ( projh ` H ) ` A ) ) < ( normh ` A ) ) ) $=
    ( cch wcel chil wn cpjh cfv cno clt wbr wb cif c0v wceq eleq2 notbid fveq2d
    fveq2 bibi12d fveq1d breq1d eleq1 breq12d ifchhv ifhvhv0 pjneli dedth2h ) B
    CDZAEDZABDZFZABGHZHZIHZAIHZJKZLAUIBEMZDZFZAURGHZHZIHZUPJKZLUJANMZURDZFZVEVA
    HZIHZVEIHZJKZLBAENBUROZULUTUQVDVLUKUSBURAPQVLUOVCUPJVLUNVBIVLAUMVABURGSUARU
    BTAVEOZUTVGVDVKVMUSVFAVEURUCQVMVCVIUPVJJVMVBVHIAVEVASRAVEISUDTVEURBUEAUFUGU
    H $.

  $( A vector belongs to the subspace of a projection iff the norm of its
     projection equals its norm.  This and ~ pjch yield Theorem 26.3 of
     [Halmos] p. 44.  (Contributed by NM, 7-Apr-2001.)
     (New usage is discouraged.) $)
  pjnorm2 $p |- ( ( H e. CH /\ A e. ~H ) -> ( A e. H <->
              ( normh ` ( ( projh ` H ) ` A ) ) = ( normh ` A ) ) ) $=
    ( cch wcel chil wa cpjh cfv cno wceq cle wbr clt wn pjhcl normcl syl adantl
    cr eqleltd pjnorm biantrurd pjnel con1bid 3bitr2rd ) BCDZAEDZFZABGHHZIHZAIH
    ZJUJUKKLZUJUKMLZNZFUNABDZUHUJUKUHUIEDUJSDABOUIPQUGUKSDUFAPRTUHULUNABUAUBUHU
    OUMABUCUDUE $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Mayet's equation E_3
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x B $.  $d x D $.  $d x G $.  $d x X $.  $d x Y $.
    mayete3.a $e |- A e. CH $.
    mayete3.b $e |- B e. CH $.
    mayete3.c $e |- C e. CH $.
    mayete3.d $e |- D e. CH $.
    mayete3.f $e |- F e. CH $.
    mayete3.g $e |- G e. CH $.
    mayete3.ac $e |- A C_ ( _|_ ` C ) $.
    mayete3.af $e |- A C_ ( _|_ ` F ) $.
    mayete3.cf $e |- C C_ ( _|_ ` F ) $.
    mayete3.ab $e |- A C_ ( _|_ ` B ) $.
    mayete3.cd $e |- C C_ ( _|_ ` D ) $.
    mayete3.fg $e |- F C_ ( _|_ ` G ) $.
    mayete3.x $e |- X = ( ( A vH C ) vH F ) $.
    mayete3.y $e |- Y = ( ( ( A vH B ) i^i ( C vH D ) ) i^i ( F vH G ) ) $.
    mayete3.z $e |- Z = ( ( B vH D ) vH G ) $.
    $( Mayet's equation E_3.  Part of Theorem 4.1 of [Mayet3] p. 1223.
       (Contributed by NM, 22-Jun-2006.)  (New usage is discouraged.) $)
    mayete3i $p |- ( X i^i Y ) C_ Z $=
      ( vx cin chj co cph cv wcel c1 c2 cdiv csm chil wceq wa elin chjcli cheli
      eleq2s adantr sylbi ax-hvmulid cmul cc0 wne 2cn 2ne0 recid2 oveq1i halfcn
      cc mp2an ax-hvmulass mp3an12 syl5eqr eqtr3d syl cpjh cfv cva cmv hv2times
      oveq1d inss2 sseli elin2 cort pjdsi mpan2 oveqan12d inss1 pjhcli syl22anc
      hvadd4 3syl eqtrd hvaddcl syl2anc 3eqtrd syl6eleq mpanr12 sylancl oveq12d
      pjds3i hvmulcl mpan hvpncan mpancom hvpncan2 chshii shsvai shscli eqeltrd
      wss pjcli csh shmulcl ssriv chsleji shlessi ax-mp sstri sseqtr4i ) GHUFZB
      DUGUHZFUGUHZIYGYHFUIUHZYIYGBDUIUHZFUIUHZYJUEYGYLUEUJZYGUKZYMULUMUNUHZUMYM
      UOUHZUOUHZYLYNYMUPUKZYMYQUQYNYMGUKZYMHUKZURYRYMGHUSYSYRYTYRYMACUGUHZEUGUH
      ZGYMUUBUUAEACJLUTNUTVAUBVBVCVDZYRULYMUOUHZYMYQYMVEYRUUDYOUMVFUHZYMUOUHZYQ
      UUEULYMUOUMVNUKZUMVGVHUUEULUQVIVJUMVKVOVLYOVNUKZUUGYRUUFYQUQVMVIYOUMYMVPV
      QVRVSVTYNYPYLUKZYQYLUKZYNYPYMBWAWBWBZYMDWAWBWBZWCUHZYMFWAWBWBZWCUHZYLYNYM
      AWAWBWBZYMCWAWBWBZWCUHZYMEWAWBWBZWCUHZUUOWCUHZUUTWDUHZYPUUOYNYPYMWCUHZYMW
      DUHZUVBYPYNUVCUVAYMUUTWDYNUVCYMYMWCUHZYMWCUHZUURUUMWCUHZUUSUUNWCUHZWCUHZU
      VAYNYRUVCUVFUQUUCYRYPUVEYMWCYMWEWFVTYNYTUVFUVIUQZYGHYMGHWGWHYTYMABUGUHZCD
      UGUHZUFZUKZYMEFUGUHZUKZURUVJYMUVMUVOHUCWIUVNUVPUVEUVGYMUVHWCUVNUVEUUPUUKW
      CUHZUUQUULWCUHZWCUHZUVGUVNYMUVKUKZYMUVLUKZURUVEUVSUQYMUVKUVLUSUVTUWAYMUVQ
      YMUVRWCUVTABWJWBXQYMUVQUQSYMABJKWKWLUWACDWJWBXQYMUVRUQTYMCDLMWKWLWMVDUVNU
      VTYRUVSUVGUQZUVMUVKYMUVKUVLWNWHYMUVKABJKUTVAYRUUPUPUKZUUKUPUKZUUQUPUKZUUL
      UPUKZUWBYMAJWOZYMBKWOZYMCLWOZYMDMWOZUUPUUKUUQUULWQWPWRWSUVPEFWJWBXQYMUVHU
      QUAYMEFNOWKWLWMVDVTYNYRUVIUVAUQZUUCYRUURUPUKZUUMUPUKZUUSUPUKZUUNUPUKZUWKY
      RUWCUWEUWLUWGUWIUUPUUQWTXAZYRUWDUWFUWMUWHUWJUUKUULWTXAZYMENWOZYMFOWOZUURU
      UMUUSUUNWQWPVTXBYNYMUUBUKZACWJWBXQZYMUUTUQZYNYMGUUBYGGYMGHWNWHUBXCPUWTUXA
      URAEWJWBZXQCUXCXQUXBQRYMACEJLNXGXDXEXFYNYRUVDYPUQZUUCYPUPUKZYRUXDUUGYRUXE
      VIUMYMXHXIYPYMXJXKVTVSYNYRUVBUUOUQZUUCYRUUTUPUKZUUOUPUKZUXFYRUWLUWNUXGUWP
      UWRUURUUSWTXAYRUWMUWOUXHUWQUWSUUMUUNWTXAUUTUUOXLXAVTVSYNYRUUOYLUKZUUCYRUU
      MYKUKZUUNFUKUXIYRUUKBUKUULDUKUXJYMBKXRYMDMXRBDUUKUULBKXMZDMXMZXNXAYMFOXRY
      KFUUMUUNBDUXKUXLXOZFOXMZXNXAVTXPYLXSUKUUHUUIUUJYKFUXMUXNXOVMYOYPYLXTVQVTX
      PYAYKYHXQYLYJXQBDKMYBYKYHFUXMYHBDKMUTZXMUXNYCYDYEYHFUXOOYBYEUDYF $.
  $}

  ${
    mayetes3.a $e |- A e. CH $.
    mayetes3.b $e |- B e. CH $.
    mayetes3.c $e |- C e. CH $.
    mayetes3.d $e |- D e. CH $.
    mayetes3.f $e |- F e. CH $.
    mayetes3.g $e |- G e. CH $.
    mayetes3.r $e |- R e. CH $.
    mayetes3.ac $e |- A C_ ( _|_ ` C ) $.
    mayetes3.af $e |- A C_ ( _|_ ` F ) $.
    mayetes3.cf $e |- C C_ ( _|_ ` F ) $.
    mayetes3.ab $e |- A C_ ( _|_ ` B ) $.
    mayetes3.cd $e |- C C_ ( _|_ ` D ) $.
    mayetes3.fg $e |- F C_ ( _|_ ` G ) $.
    mayetes3.rx $e |- R C_ ( _|_ ` X ) $.
    mayetes3.x $e |- X = ( ( A vH C ) vH F ) $.
    mayetes3.y $e |- Y = ( ( ( A vH B ) i^i ( C vH D ) ) i^i ( F vH G ) ) $.
    mayetes3.z $e |- Z = ( ( B vH D ) vH G ) $.
    $( Mayet's equation E^*_3, derived from E_3.  Solution, for n = 3, to open
       problem in Remark (b) after Theorem 7.1 of [Mayet3] p. 1240.
       (Contributed by NM, 10-May-2009.)  (New usage is discouraged.) $)
    mayetes3i $p |- ( ( X vH R ) i^i Y ) C_ ( Z vH R ) $=
      ( chj co cin wss chjcli chjcomi eqimssi chub1i chjassi chub2i sstri ss2in
      sseqtri mp2an chincli ccm wbr cfv cch eqeltri choccli lecmii cmcm2i mpbir
      cort breqtri cm2mi fh3i ineq1i ineq2i eqtr2i sseqtr4i chsscon3i chsscon2i
      eqtri mpbi ssini chdmj1i chjjdiri oveq1i mayete3i chlubii ineq12i 3sstr4i
      eqid ) ACUHUIZFUHUIZEUHUIZABUHUIZCDUHUIZUJZFGUHUIZUJZUJZBDUHUIZGUHUIZEUHU
      IZHEUHUIZIUJJEUHUIXAEWNABEUHUIZUHUIZCDEUHUIZUHUIZUJZFGEUHUIZUHUIZUJZUJZUH
      UIZXDXAEWNUHUIZEXGUHUIZEXIUHUIZUJZEXLUHUIZUJZUJZXOWOXPUKWTYAUKZXAYBUKWOXP
      WNEWMFACKMULZOULZQUMUNWRXSUKZWSXTUKYCWPXQUKWQXRUKYFWPXGXQWPWPEUHUIXGWPEAB
      KLULQUOABEKLQUPUTXGEAXFKBELQULZULZQUQURWQXIXRWQWQEUHUIXIWQECDMNULQUOCDEMN
      QUPUTXIECXHMDENQULZULZQUQURWPXQWQXRUSVAWSXLXTWSWSEUHUIXLWSEFGOPULQUOFGEOP
      QUPUTXLEFXKOGEPQULZULZQUQURWRXSWSXTUSVAWOXPWTYAUSVAXOXPEXMUHUIZUJYBEWNXMQ
      YEXJXLXGXIYHYJVBZYLVBZEHWNVCEHVCVDEHVLVEZVCVDEYPQHHWNVFUEYEVGZVHUDVIEHQYQ
      VJVKUEVMEXJXLQYNYLEXGXIQYHYJEXGQYHEXFXGEBQLUQXFAYGKUQURVIZEXIQYJEXHXIEDQN
      UQXHCYIMUQURVIZVNZEXLQYLEXKXLEGQPUQXKFYKOUQURVIZVNVOYMYAXPYMEXJUHUIZXTUJY
      AEXJXLQYNYLYTUUAVOUUBXSXTEXGXIQYHYJYRYSVOVPWBVQVRUTEXDUKXNXDUKXOXDUKEXCQX
      BGBDLNULZPULZUQAXFCXHFXKWNXMXDKYGMYIOYKRSTABVLVEZEVLVEZUJXFVLVEAUUEUUFUAE
      AVLVEZUKAUUFUKEYPUUGUDAHUKYPUUGUKAWMHACKMUOWMWNHWMFYDOUOUEVSZURAHKYQVTWCU
      REAQKWAWCWDBELQWEVSCDVLVEZUUFUJXHVLVECUUIUUFUBECVLVEZUKCUUFUKEYPUUJUDCHUK
      YPUUJUKCWMHCAMKUQUUHURCHMYQVTWCURECQMWAWCWDDENQWEVSFGVLVEZUUFUJXKVLVEFUUK
      UUFUCEFVLVEZUKFUUFUKEYPUULUDFHUKYPUULUKFWNHFWMOYDUQUEVSFHOYQVTWCUREFQOWAW
      CWDGEPQWEVSWNWLXMWLXDXBEUHUIZXKUHUIXFXHUHUIZXKUHUIXBGEUUCPQWFUUMUUNXKUHBD
      ELNQWFWGWBWHEXNXDQWNXMYEYOVBXCEUUDQULWIVAURXEWOIWTHWNEUHUEWGUFWJJXCEUHUGW
      GWK $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Operators on Hilbert spaces
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Operator sum, difference, and scalar multiplication
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  _Note on operators_.  Unlike some authors, we use the term "operator" to
  mean any function from ` ~H ` to ` ~H ` .  This is the definition of
  operator in [Hughes] p. 14, the definition of operator in
  [AkhiezerGlazman] p. 30, and the definition of operator in [Goldberg]
  p. 10.  For Reed and Simon, an operator is linear (definition of
  operator in [ReedSimon] p. 2).  For Halmos, an operator is bounded and
  linear (definition of operator in [Halmos] p. 35).  For Kalmbach and
  Beran, an operator is continuous and linear (definition of operator in
  [Kalmbach] p. 353; definition of operator in [Beran] p. 99).  Note that
  "bounded and linear" and "continuous and linear" are equivalent by
  ~ lncnbd .

$)

  ${
    $d f g x $.
    $( Define the sum of two Hilbert space operators.  Definition of [Beran]
       p. 111.  (Contributed by NM, 9-Nov-2000.)
       (New usage is discouraged.) $)
    df-hosum $a |- +op = ( f e. ( ~H ^m ~H ) , g e. ( ~H ^m ~H ) |->
          ( x e. ~H |-> ( ( f ` x ) +h ( g ` x ) ) ) ) $.

    $( Define the scalar product with a Hilbert space operator.  Definition of
       [Beran] p. 111.  (Contributed by NM, 20-Feb-2006.)
       (New usage is discouraged.) $)
    df-homul $a |- .op = ( f e. CC , g e. ( ~H ^m ~H ) |->
          ( x e. ~H |-> ( f .h ( g ` x ) ) ) ) $.

$(
    @( Define the difference of two Hilbert space operators.  Definition of
       [Beran] p. 111. @)
    df-hodif @a |- -op = { <. <. f , g >. , h >. | ( ( f : ~H --> ~H /\
          g : ~H --> ~H ) /\ h = ( f +op ( -u 1 .op g ) ) ) } @.
$)

    $( Define the difference of two Hilbert space operators.  Definition of
       [Beran] p. 111.  (Contributed by NM, 9-Nov-2000.)
       (New usage is discouraged.) $)
    df-hodif $a |- -op = ( f e. ( ~H ^m ~H ) , g e. ( ~H ^m ~H ) |->
          ( x e. ~H |-> ( ( f ` x ) -h ( g ` x ) ) ) ) $.

    $( Define the sum of two Hilbert space functionals.  Definition of [Beran]
       p. 111.  Note that unlike some authors, we define a functional as any
       function from ` ~H ` to ` CC ` , not just linear (or bounded linear)
       ones.  (Contributed by NM, 23-May-2006.)  (New usage is discouraged.) $)
    df-hfsum $a |- +fn = ( f e. ( CC ^m ~H ) , g e. ( CC ^m ~H ) |->
          ( x e. ~H |-> ( ( f ` x ) + ( g ` x ) ) ) ) $.

    $( Define the scalar product with a Hilbert space functional.  Definition
       of [Beran] p. 111.  (Contributed by NM, 23-May-2006.)
       (New usage is discouraged.) $)
    df-hfmul $a |- .fn = ( f e. CC , g e. ( CC ^m ~H ) |->
          ( x e. ~H |-> ( f x. ( g ` x ) ) ) ) $.
  $}

  ${
    $d f g x A $.  $d f g x S $.  $d f g x T $.
    $( Value of the sum of two Hilbert space operators.  (Contributed by NM,
       9-Nov-2000.)  (Revised by Mario Carneiro, 23-Aug-2014.)
       (New usage is discouraged.) $)
    hosmval $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H ) -> ( S +op T ) =
                    ( x e. ~H |-> ( ( S ` x ) +h ( T ` x ) ) ) ) $=
      ( vf vg chil wf cmap co wcel chos cv cfv cva cmpt ax-hilex elmap mpteq2dv
      wceq fveq1 oveq1d oveq2d df-hosum mptex ovmpt2 syl2anbr ) FFBGBFFHIZJCUGJ
      BCKIAFALZBMZUHCMZNIZOZSFFCGFFBPPQFFCPPQDEBCUGUGAFUHDLZMZUHELZMZNIZOULKAFU
      IUPNIZOUMBSZAFUQURUSUNUIUPNUHUMBTUARUOCSZAFURUKUTUPUJUINUHUOCTUBRADEUCAFU
      KPUDUEUF $.

    $( Value of the scalar product with a Hilbert space operator.  (Contributed
       by NM, 20-Feb-2006.)  (Revised by Mario Carneiro, 23-Aug-2014.)
       (New usage is discouraged.) $)
    hommval $p |- ( ( A e. CC /\ T : ~H --> ~H ) -> ( A .op T ) =
                    ( x e. ~H |-> ( A .h ( T ` x ) ) ) ) $=
      ( vf vg chil wf cc wcel cmap co chot cfv csm cmpt ax-hilex elmap mpteq2dv
      cv wceq oveq1 fveq1 oveq2d df-homul mptex ovmpt2 sylan2br ) FFCGBHICFFJKZ
      IBCLKAFBASZCMZNKZOZTFFCPPQDEBCHUHAFDSZUIESZMZNKZOULLAFBUONKZOUMBTAFUPUQUM
      BUONUARUNCTZAFUQUKURUOUJBNUIUNCUBUCRADEUDAFUKPUEUFUG $.

    $( Value of the difference of two Hilbert space operators.  (Contributed by
       NM, 9-Nov-2000.)  (Revised by Mario Carneiro, 23-Aug-2014.)
       (New usage is discouraged.) $)
    hodmval $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H ) -> ( S -op T ) =
                    ( x e. ~H |-> ( ( S ` x ) -h ( T ` x ) ) ) ) $=
      ( vf vg chil wf cmap co wcel chod cv cfv cmv cmpt ax-hilex elmap mpteq2dv
      wceq fveq1 oveq1d oveq2d df-hodif mptex ovmpt2 syl2anbr ) FFBGBFFHIZJCUGJ
      BCKIAFALZBMZUHCMZNIZOZSFFCGFFBPPQFFCPPQDEBCUGUGAFUHDLZMZUHELZMZNIZOULKAFU
      IUPNIZOUMBSZAFUQURUSUNUIUPNUHUMBTUARUOCSZAFURUKUTUPUJUINUHUOCTUBRADEUCAFU
      KPUDUEUF $.

    $( Value of the sum of two Hilbert space functionals.  (Contributed by NM,
       23-May-2006.)  (Revised by Mario Carneiro, 23-Aug-2014.)
       (New usage is discouraged.) $)
    hfsmval $p |- ( ( S : ~H --> CC /\ T : ~H --> CC ) -> ( S +fn T ) =
                    ( x e. ~H |-> ( ( S ` x ) + ( T ` x ) ) ) ) $=
      ( vf vg chil cc wf co wcel chfs caddc cmpt wceq cnex ax-hilex elmap fveq1
      cv cfv cmap oveq1d mpteq2dv oveq2d df-hfsum mptex ovmpt2 syl2anbr ) FGBHB
      GFUAIZJCUIJBCKIAFASZBTZUJCTZLIZMZNFGCHGFBOPQGFCOPQDEBCUIUIAFUJDSZTZUJESZT
      ZLIZMUNKAFUKURLIZMUOBNZAFUSUTVAUPUKURLUJUOBRUBUCUQCNZAFUTUMVBURULUKLUJUQC
      RUDUCADEUEAFUMPUFUGUH $.

    $( Value of the scalar product with a Hilbert space functional.
       (Contributed by NM, 23-May-2006.)  (Revised by Mario Carneiro,
       23-Aug-2014.)  (New usage is discouraged.) $)
    hfmmval $p |- ( ( A e. CC /\ T : ~H --> CC ) -> ( A .fn T ) =
                    ( x e. ~H |-> ( A x. ( T ` x ) ) ) ) $=
      ( vf vg chil cc wf wcel cmap co chft cfv cmul cmpt wceq ax-hilex mpteq2dv
      cv cnex elmap oveq1 fveq1 oveq2d df-hfmul mptex ovmpt2 sylan2br ) FGCHBGI
      CGFJKZIBCLKAFBASZCMZNKZOZPGFCTQUADEBCGUIAFDSZUJESZMZNKZOUMLAFBUPNKZOUNBPA
      FUQURUNBUPNUBRUOCPZAFURULUSUPUKBNUJUOCUCUDRADEUEAFULQUFUGUH $.
  $}

  ${
    $d x A $.  $d x B $.  $d x S $.  $d x T $.
    $( Value of the sum of two Hilbert space operators.  (Contributed by NM,
       10-Nov-2000.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    hosval $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H /\ A e. ~H ) ->
        ( ( S +op T ) ` A ) = ( ( S ` A ) +h ( T ` A ) ) ) $=
      ( vx chil wf wcel chos co cfv cva wceq wa cv hosmval fveq1d fveq2 oveq12d
      cmpt eqid ovex fvmpt sylan9eq 3impa ) EEBFZEECFZAEGZABCHIZJZABJZACJZKIZLU
      EUFMZUGUIADEDNZBJZUNCJZKIZSZJULUMAUHURDBCOPDAUQULEURUNALUOUJUPUKKUNABQUNA
      CQRURTUJUKKUAUBUCUD $.

    $( Value of the scalar product with a Hilbert space operator.  (Contributed
       by NM, 20-Feb-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    homval $p |- ( ( A e. CC /\ T : ~H --> ~H /\ B e. ~H ) ->
        ( ( A .op T ) ` B ) = ( A .h ( T ` B ) ) ) $=
      ( vx cc wcel chil wf chot co cfv csm wceq wa cv cmpt hommval fveq1d fveq2
      oveq2d eqid ovex fvmpt sylan9eq 3impa ) AEFZGGCHZBGFZBACIJZKZABCKZLJZMUFU
      GNZUHUJBDGADOZCKZLJZPZKULUMBUIUQDACQRDBUPULGUQUNBMUOUKALUNBCSTUQUAAUKLUBU
      CUDUE $.

    $( Value of the difference of two Hilbert space operators.  (Contributed by
       NM, 10-Nov-2000.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    hodval $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H /\ A e. ~H ) ->
        ( ( S -op T ) ` A ) = ( ( S ` A ) -h ( T ` A ) ) ) $=
      ( vx chil wf wcel chod co cfv cmv wceq wa cv hodmval fveq1d fveq2 oveq12d
      cmpt eqid ovex fvmpt sylan9eq 3impa ) EEBFZEECFZAEGZABCHIZJZABJZACJZKIZLU
      EUFMZUGUIADEDNZBJZUNCJZKIZSZJULUMAUHURDBCOPDAUQULEURUNALUOUJUPUKKUNABQUNA
      CQRURTUJUKKUAUBUCUD $.

    $( Value of the sum of two Hilbert space functionals.  (Contributed by NM,
       23-May-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    hfsval $p |- ( ( S : ~H --> CC /\ T : ~H --> CC /\ A e. ~H ) ->
        ( ( S +fn T ) ` A ) = ( ( S ` A ) + ( T ` A ) ) ) $=
      ( vx chil cc wf wcel chfs co caddc wceq wa cv cmpt hfsmval fveq1d oveq12d
      cfv fveq2 eqid ovex fvmpt sylan9eq 3impa ) EFBGZEFCGZAEHZABCIJZSZABSZACSZ
      KJZLUFUGMZUHUJADEDNZBSZUOCSZKJZOZSUMUNAUIUSDBCPQDAURUMEUSUOALUPUKUQULKUOA
      BTUOACTRUSUAUKULKUBUCUDUE $.

    $( Value of the scalar product with a Hilbert space functional.
       (Contributed by NM, 23-May-2006.)  (Revised by Mario Carneiro,
       16-Nov-2013.)  (New usage is discouraged.) $)
    hfmval $p |- ( ( A e. CC /\ T : ~H --> CC /\ B e. ~H ) ->
        ( ( A .fn T ) ` B ) = ( A x. ( T ` B ) ) ) $=
      ( vx cc wcel chil wf chft co cfv cmul wceq wa cv cmpt fveq1d fveq2 oveq2d
      hfmmval eqid ovex fvmpt sylan9eq 3impa ) AEFZGECHZBGFZBACIJZKZABCKZLJZMUF
      UGNZUHUJBDGADOZCKZLJZPZKULUMBUIUQDACTQDBUPULGUQUNBMUOUKALUNBCRSUQUAAUKLUB
      UCUDUE $.
  $}

  $( Closure of the sum of two Hilbert space operators.  (Contributed by NM,
     12-Nov-2000.)  (New usage is discouraged.) $)
  hoscl $p |- ( ( ( S : ~H --> ~H /\ T : ~H --> ~H ) /\ A e. ~H ) ->
      ( ( S +op T ) ` A ) e. ~H ) $=
    ( chil wf wa wcel chos co cfv cva wceq hosval 3expa ffvelrn anim12i hvaddcl
    anandirs syl eqeltrd ) DDBEZDDCEZFADGZFZABCHIJZABJZACJZKIZDUAUBUCUEUHLABCMN
    UDUFDGZUGDGZFZUHDGUAUBUCUKUAUCFUIUBUCFUJDDABODDACOPRUFUGQST $.

  $( Closure of the scalar product of a Hilbert space operator.  (Contributed
     by NM, 20-Feb-2006.)  (New usage is discouraged.) $)
  homcl $p |- ( ( A e. CC /\ T : ~H --> ~H /\ B e. ~H ) ->
      ( ( A .op T ) ` B ) e. ~H ) $=
    ( cc wcel chil wf w3a co cfv csm homval wa ffvelrn anim2i 3impb hvmulcl syl
    chot eqeltrd ) ADEZFFCGZBFEZHZBACSIJABCJZKIZFABCLUDUAUEFEZMZUFFEUAUBUCUHUBU
    CMUGUAFFBCNOPAUEQRT $.

  $( Closure of the difference of two Hilbert space operators.  (Contributed by
     NM, 15-Nov-2002.)  (New usage is discouraged.) $)
  hodcl $p |- ( ( ( S : ~H --> ~H /\ T : ~H --> ~H ) /\ A e. ~H ) ->
      ( ( S -op T ) ` A ) e. ~H ) $=
    ( chil wcel chod cfv w3a cmv hodval ffvelrn 3adant2 3adant1 hvsubcl syl2anc
    wf co eqeltrd 3expa ) DDBPZDDCPZADEZABCFQGZDETUAUBHZUCABGZACGZIQZDABCJUDUED
    EZUFDEZUGDETUBUHUADDABKLUAUBUITDDACKMUEUFNORS $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Zero and identity operators
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Define the Hilbert space zero operator.  See ~ df0op2 for alternate
     definition.  (Contributed by NM, 7-Feb-2006.)
     (New usage is discouraged.) $)
  df-h0op $a |- 0hop = ( projh ` 0H ) $.

  $( Define the Hilbert space identity operator.  See ~ dfiop2 for alternate
     definition.  (Contributed by NM, 15-Nov-2000.)
     (New usage is discouraged.) $)
  df-iop $a |- Iop = ( projh ` ~H ) $.

  $( Value of the zero Hilbert space operator (null projector).  Remark in
     [Beran] p. 111.  (Contributed by NM, 7-Feb-2006.)
     (New usage is discouraged.) $)
  ho0val $p |- ( A e. ~H -> ( 0hop ` A ) = 0h ) $=
    ( chil wcel ch0o cfv cpjh cmv co c0v c0h choc1 fveq2i df-h0op eqtr4i fveq1i
    cort cch wceq helch pjo mpan syl5eqr pjhcli hvsubid syl eqtrd ) ABCZADEZABF
    EEZUIGHZIUGUHABPEZFEZEZUJAULDULJFEDUKJFKLMNOBQCUGUMUJRSABTUAUBUGUIBCUJIRABS
    UCUIUDUEUF $.

  $( Functionality of the zero Hilbert space operator.  (Contributed by NM,
     10-Mar-2006.)  (New usage is discouraged.) $)
  ho0f $p |- 0hop : ~H --> ~H $=
    ( chil ch0o wf c0h cpjh cfv h0elch pjfi df-h0op feq1i mpbir ) AABCAADEFZCDG
    HAABLIJK $.

  $( Alternate definition of Hilbert space zero operator.  (Contributed by NM,
     7-Aug-2006.)  (New usage is discouraged.) $)
  df0op2 $p |- 0hop = ( ~H X. 0H ) $=
    ( vx ch0o chil c0v csn cxp c0h wf wceq wfn cv cfv wral ho0f ffn ho0val rgen
    ax-mp fconstfv mpbir2an ax-hv0cl elexi fconst2 mpbi df-ch0 xpeq2i eqtr4i )
    BCDEZFZCGFCUHBHZBUIIUJBCJZAKZBLDIZACMCCBHUKNCCBORUMACULPQACDBSTCDBDCUAUBUCU
    DGUHCUEUFUG $.

  $( Alternate definition of Hilbert space identity operator.  (Contributed by
     NM, 7-Aug-2006.)  (New usage is discouraged.) $)
  dfiop2 $p |- Iop = ( _I |` ~H ) $=
    ( vx chio chil cpjh cfv cid cres df-iop wfn wceq helch pjfni fnresi wa wral
    cv wcel pjch1 fvresi eqtr4d rgen eqfnfv mpbiri mp2an eqtri ) BCDEZFCGZHUFCI
    ZUGCIZUFUGJZCKLCMUHUINUJAPZUFEZUKUGEZJZACOUNACUKCQULUKUMUKRCUKSTUAACUFUGUBU
    CUDUE $.

  $( Functionality of the Hilbert space identity operator.  (Contributed by NM,
     8-Aug-2006.)  (New usage is discouraged.) $)
  hoif $p |- Iop : ~H -1-1-onto-> ~H $=
    ( chil chio wf1o cid cres f1oi wceq wb dfiop2 f1oeq1 ax-mp mpbir ) AABCZAAD
    AEZCZAFBNGMOHIAABNJKL $.

  $( The value of the Hilbert space identity operator.  (Contributed by NM,
     8-Aug-2006.)  (New usage is discouraged.) $)
  hoival $p |- ( A e. ~H -> ( Iop ` A ) = A ) $=
    ( chil wcel chio cfv cpjh df-iop fveq1i pjch1 syl5eq ) ABCADEABFEZEAADKGHAI
    J $.

  $( Composition with the Hilbert space identity operator.  (Contributed by NM,
     24-Aug-2006.)  (New usage is discouraged.) $)
  hoico1 $p |- ( T : ~H --> ~H -> ( T o. Iop ) = T ) $=
    ( chil wf chio ccom cid cres dfiop2 coeq2i fcoi1 syl5eq ) BBACADEAFBGZEADLA
    HIBBAJK $.

  $( Composition with the Hilbert space identity operator.  (Contributed by NM,
     24-Aug-2006.)  (New usage is discouraged.) $)
  hoico2 $p |- ( T : ~H --> ~H -> ( Iop o. T ) = T ) $=
    ( chil wf chio ccom cid cres dfiop2 coeq1i fcoi2 syl5eq ) BBACDAEFBGZAEADLA
    HIBBAJK $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Operations on Hilbert space operators
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.  $d x S $.  $d x T $.
    $( The sum of Hilbert space operators is an operator.  (Contributed by NM,
       21-Feb-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    hoaddcl $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H ) ->
                ( S +op T ) : ~H --> ~H ) $=
      ( vx chil wf wa chos co cfv cva cmpt wcel ffvelrn adantlr adantll hvaddcl
      cv syl2anc eqid fmptd hosmval feq1d mpbird ) DDAEZDDBEZFZDDABGHZEDDCDCQZA
      IZUHBIZJHZKZEUFCDUKDULUFUHDLZFUIDLZUJDLZUKDLUDUMUNUEDDUHAMNUEUMUOUDDDUHBM
      OUIUJPRULSTUFDDUGULCABUAUBUC $.

    $( The scalar product of a Hilbert space operator is an operator.
       (Contributed by NM, 21-Feb-2006.)  (Revised by Mario Carneiro,
       16-Nov-2013.)  (New usage is discouraged.) $)
    homulcl $p |- ( ( A e. CC /\ T : ~H --> ~H ) ->
                   ( A .op T ) : ~H --> ~H ) $=
      ( vx cc wcel chil wf wa chot co cv cfv csm ffvelrn hvmulcl sylan2 anassrs
      cmpt eqid fmptd hommval feq1d mpbird ) ADEZFFBGZHZFFABIJZGFFCFACKZBLZMJZR
      ZGUFCFUJFUKUDUEUHFEZUJFEZUEULHUDUIFEUMFFUHBNAUIOPQUKSTUFFFUGUKCABUAUBUC
      $.
  $}

  ${
    $d x T $.  $d x U $.
    $( Equality of Hilbert space operators.  (Contributed by NM, 12-Aug-2006.)
       (New usage is discouraged.) $)
    hoeq $p |- ( ( T : ~H --> ~H /\ U : ~H --> ~H ) ->
                ( A. x e. ~H ( T ` x ) = ( U ` x ) <-> T = U ) ) $=
      ( chil wf wfn cv cfv wceq wral wb ffn wa eqfnfv bicomd syl2an ) DDBEBDFZC
      DFZAGZBHSCHIADJZBCIZKDDCEDDBLDDCLQRMUATADBCNOP $.
  $}

  ${
    $d x S $.  $d x T $.
    hoeq.1 $e |- S : ~H --> ~H $.
    hoeq.2 $e |- T : ~H --> ~H $.
    $( Equality of Hilbert space operators.  (Contributed by NM, 14-Nov-2000.)
       (New usage is discouraged.) $)
    hoeqi $p |- ( A. x e. ~H ( S ` x ) = ( T ` x ) <-> S = T ) $=
      ( chil wf cv cfv wceq wral wb hoeq mp2an ) FFBGFFCGAHZBIOCIJAFKBCJLDEABCM
      N $.

    $( Closure of Hilbert space operator sum.  (Contributed by NM,
       12-Nov-2000.)  (New usage is discouraged.) $)
    hoscli $p |- ( A e. ~H -> ( ( S +op T ) ` A ) e. ~H ) $=
      ( chil wf wcel chos co cfv hoscl mpanl12 ) FFBGFFCGAFHABCIJKFHDEABCLM $.

    $( Closure of Hilbert space operator difference.  (Contributed by NM,
       12-Nov-2000.)  (New usage is discouraged.) $)
    hodcli $p |- ( A e. ~H -> ( ( S -op T ) ` A ) e. ~H ) $=
      ( chil wf wcel chod co cfv hodcl mpanl12 ) FFBGFFCGAFHABCIJKFHDEABCLM $.

    $( Composition of Hilbert space operators.  (Contributed by NM,
       12-Nov-2000.)  (New usage is discouraged.) $)
    hocoi $p |- ( A e. ~H -> ( ( S o. T ) ` A ) = ( S ` ( T ` A ) ) ) $=
      ( chil wf wcel ccom cfv wceq fvco3 mpan ) FFCGAFHABCIJACJBJKEFFABCLM $.

    $( Closure of composition of Hilbert space operators.  (Contributed by NM,
       12-Nov-2000.)  (New usage is discouraged.) $)
    hococli $p |- ( A e. ~H -> ( ( S o. T ) ` A ) e. ~H ) $=
      ( chil wcel ccom cfv hocoi ffvelrni syl eqeltrd ) AFGZABCHIACIZBIZFABCDEJ
      NOFGPFGFFACEKFFOBDKLM $.

    $( Mapping of composition of Hilbert space operators.  (Contributed by NM,
       14-Nov-2000.)  (New usage is discouraged.) $)
    hocofi $p |- ( S o. T ) : ~H --> ~H $=
      ( chil wf ccom fco mp2an ) EEAFEEBFEEABGFCDEEEABHI $.

    $( Functionality of composition of Hilbert space operators.  (Contributed
       by NM, 12-Nov-2000.)  (New usage is discouraged.) $)
    hocofni $p |- ( S o. T ) Fn ~H $=
      ( chil ccom wf wfn hocofi ffn ax-mp ) EEABFZGLEHABCDIEELJK $.

    $( Mapping of sum of Hilbert space operators.  (Contributed by NM,
       14-Nov-2000.)  (New usage is discouraged.) $)
    hoaddcli $p |- ( S +op T ) : ~H --> ~H $=
      ( chil wf chos co hoaddcl mp2an ) EEAFEEBFEEABGHFCDABIJ $.

    $( Mapping of difference of Hilbert space operators.  (Contributed by NM,
       14-Nov-2000.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    hosubcli $p |- ( S -op T ) : ~H --> ~H $=
      ( vx chil cv cfv co chod wf cmpt wceq hodmval mp2an wcel ffvelrni hvsubcl
      cmv syl2anc fmpti ) EFFEGZAHZUBBHZSIZABJIZFFAKFFBKUFEFUELMCDEABNOUBFPUCFP
      UDFPUEFPFFUBACQFFUBBDQUCUDRTUA $.

    $( Functionality of sum of Hilbert space operators.  (Contributed by NM,
       14-Nov-2000.)  (New usage is discouraged.) $)
    hoaddfni $p |- ( S +op T ) Fn ~H $=
      ( chil chos co wf wfn hoaddcli ffn ax-mp ) EEABFGZHMEIABCDJEEMKL $.

    $( Functionality of difference of Hilbert space operators.  (Contributed by
       NM, 2-Jun-2006.)  (New usage is discouraged.) $)
    hosubfni $p |- ( S -op T ) Fn ~H $=
      ( chil chod co wf wfn hosubcli ffn ax-mp ) EEABFGZHMEIABCDJEEMKL $.

    $( Commutativity of sum of Hilbert space operators.  (Contributed by NM,
       15-Nov-2000.)  (New usage is discouraged.) $)
    hoaddcomi $p |- ( S +op T ) = ( T +op S ) $=
      ( vx cv chos cfv wceq chil wral wcel cva ffvelrni ax-hvcom hosval mp3an12
      co wf hoaddcli syl2anc 3eqtr4d rgen hoeqi mpbi ) EFZABGRZHZUFBAGRZHZIZEJK
      UGUIIUKEJUFJLZUFAHZUFBHZMRZUNUMMRZUHUJULUMJLUNJLUOUPIJJUFACNJJUFBDNUMUNOU
      AJJASZJJBSZULUHUOICDUFABPQURUQULUJUPIDCUFBAPQUBUCEUGUIABCDTBADCTUDUE $.
  $}

  $( Mapping of difference of Hilbert space operators.  (Contributed by NM,
     23-Aug-2006.)  (New usage is discouraged.) $)
  hosubcl $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H ) ->
              ( S -op T ) : ~H --> ~H ) $=
    ( chil wf chod ch0o cif wceq oveq1 feq1d oveq2 ho0f elimf hosubcli dedth2h
    co ) CCADZCCBDZCCABEPZDCCQAFGZBEPZDCCTRBFGZEPZDABFFATHCCSUAATBEIJBUBHCCUAUC
    BUBTEKJTUBCCAFLMCCBFLMNO $.

  $( Commutativity of sum of Hilbert space operators.  (Contributed by NM,
     24-Aug-2006.)  (New usage is discouraged.) $)
  hoaddcom $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H ) ->
                ( S +op T ) = ( T +op S ) ) $=
    ( chil wf chos co wceq ch0o cif oveq1 oveq2 eqeq12d elimf hoaddcomi dedth2h
    ho0f ) CCADZCCBDZABEFZBAEFZGQAHIZBEFZBUAEFZGUARBHIZEFZUDUAEFZGABHHAUAGSUBTU
    CAUABEJAUABEKLBUDGUBUEUCUFBUDUAEKBUDUAEJLUAUDCCAHPMCCBHPMNO $.

  ${
    $d x R $.  $d x S $.  $d x T $.
    hods.1 $e |- R : ~H --> ~H $.
    hods.2 $e |- S : ~H --> ~H $.
    hods.3 $e |- T : ~H --> ~H $.
    $( Relationship between Hilbert space operator difference and sum.
       (Contributed by NM, 17-Nov-2000.)  (New usage is discouraged.) $)
    hodsi $p |- ( ( R -op S ) = T <-> ( S +op T ) = R ) $=
      ( vx cv chod co cfv wceq chil wral wcel ffvelrni wf mp3an12 eqeq1d hoeqi
      chos cmv cva wb hvsubadd syl3anc hodval 3bitr4d ralbiia hosubcli hoaddcli
      hosval 3bitr3i ) GHZABIJZKZUNCKZLZGMNUNBCUAJZKZUNAKZLZGMNUOCLUSALURVBGMUN
      MOZVAUNBKZUBJZUQLZVDUQUCJZVALZURVBVCVAMOVDMOUQMOVFVHUDMMUNADPMMUNBEPMMUNC
      FPVAVDUQUEUFVCUPVEUQMMAQMMBQZVCUPVELDEUNABUGRSVCUTVGVAVIMMCQVCUTVGLEFUNBC
      ULRSUHUIGUOCABDEUJFTGUSABCEFUKDTUM $.

    $( Associativity of sum of Hilbert space operators.  (Contributed by NM,
       26-Nov-2000.)  (New usage is discouraged.) $)
    hoaddassi $p |- ( ( R +op S ) +op T ) = ( R +op ( S +op T ) ) $=
      ( vx chos cfv wceq chil wcel cva hosval mp3an12 hoaddcli ffvelrni 3eqtr4d
      co wf cv wral oveq1d oveq2d ax-hvass syl3anc rgen hoeqi mpbi ) GUAZABHSZC
      HSZIZUJABCHSZHSZIZJZGKUBULUOJUQGKUJKLZUJUKIZUJCIZMSZUJAIZUJBIZMSZUTMSZUMU
      PURUSVDUTMKKATZKKBTZURUSVDJDEUJABNOUCKKUKTKKCTZURUMVAJABDEPZFUJUKCNOURVBU
      JUNIZMSZVBVCUTMSZMSZUPVEURVJVLVBMVGVHURVJVLJEFUJBCNOUDVFKKUNTURUPVKJDBCEF
      PZUJAUNNOURVBKLVCKLUTKLVEVMJKKUJADQKKUJBEQKKUJCFQVBVCUTUEUFRRUGGULUOUKCVI
      FPAUNDVNPUHUI $.

    $( Commutative/associative law for Hilbert space operator sum that swaps
       the first two terms.  (Contributed by NM, 27-Aug-2004.)
       (New usage is discouraged.) $)
    hoadd12i $p |- ( R +op ( S +op T ) ) = ( S +op ( R +op T ) ) $=
      ( chos co hoaddcomi oveq1i hoaddassi 3eqtr3i ) ABGHZCGHBAGHZCGHABCGHGHBAC
      GHGHMNCGABDEIJABCDEFKBACEDFKL $.

    $( Commutative/associative law for Hilbert space operator sum that swaps
       the second and third terms.  (Contributed by NM, 27-Jul-2006.)
       (New usage is discouraged.) $)
    hoadd32i $p |- ( ( R +op S ) +op T ) = ( ( R +op T ) +op S ) $=
      ( chos co hoaddcomi oveq2i hoaddassi 3eqtr4i ) ABCGHZGHACBGHZGHABGHCGHACG
      HBGHMNAGBCEFIJABCDEFKACBDFEKL $.

    $( Distributive law for Hilbert space operator sum.  (Contributed by NM,
       26-Nov-2000.)  (New usage is discouraged.) $)
    hocadddiri $p |- ( ( R +op S ) o. T ) = ( ( R o. T ) +op ( S o. T ) ) $=
      ( vx chos co ccom cfv wceq chil wcel hoaddcli hocoi cva wf hocofi eqtr4d
      cv wral hosval mp3an12 ffvelrni syl oveq12d rgen hoeqi mpbi ) GUAZABHIZCJ
      ZKZUKACJZBCJZHIZKZLZGMUBUMUQLUSGMUKMNZUNUKCKZULKZURUKULCABDEOZFPUTURUKUOK
      ZUKUPKZQIZVBMMUORMMUPRUTURVFLACDFSZBCEFSZUKUOUPUCUDUTVBVAAKZVABKZQIZVFUTV
      AMNZVBVKLZMMUKCFUEMMARMMBRVLVMDEVAABUCUDUFUTVDVIVEVJQUKACDFPUKBCEFPUGTTTU
      HGUMUQULCVCFSUOUPVGVHOUIUJ $.

    $( Distributive law for Hilbert space operator difference.  (Contributed by
       NM, 26-Nov-2000.)  (New usage is discouraged.) $)
    hocsubdiri $p |- ( ( R -op S ) o. T ) = ( ( R o. T ) -op ( S o. T ) ) $=
      ( vx chod co ccom cfv wceq chil wcel hosubcli hocoi cmv wf hocofi eqtr4d
      cv wral hodval mp3an12 ffvelrni syl oveq12d rgen hoeqi mpbi ) GUAZABHIZCJ
      ZKZUKACJZBCJZHIZKZLZGMUBUMUQLUSGMUKMNZUNUKCKZULKZURUKULCABDEOZFPUTURUKUOK
      ZUKUPKZQIZVBMMUORMMUPRUTURVFLACDFSZBCEFSZUKUOUPUCUDUTVBVAAKZVABKZQIZVFUTV
      AMNZVBVKLZMMUKCFUEMMARMMBRVLVMDEVAABUCUDUFUTVDVIVEVJQUKACDFPUKBCEFPUGTTTU
      HGUMUQULCVCFSUOUPVGVHOUIUJ $.

    $( Double composition of Hilbert space operators.  (Contributed by NM,
       1-Dec-2000.)  (New usage is discouraged.) $)
    ho2coi $p |- ( A e. ~H -> ( ( ( R o. S ) o. T ) ` A ) =
                 ( R ` ( S ` ( T ` A ) ) ) ) $=
      ( chil wcel ccom cfv hocofi hocoi wceq ffvelrni syl eqtrd ) AHIZABCJZDJKA
      DKZSKZTCKBKZASDBCEFLGMRTHIUAUBNHHADGOTBCEFMPQ $.
  $}

  $( Associativity of sum of Hilbert space operators.  (Contributed by NM,
     24-Aug-2006.)  (New usage is discouraged.) $)
  hoaddass $p |- ( ( R : ~H --> ~H /\ S : ~H --> ~H /\ T : ~H --> ~H ) ->
                ( ( R +op S ) +op T ) = ( R +op ( S +op T ) ) ) $=
    ( chil wf chos co wceq ch0o cif oveq1 oveq1d eqeq12d oveq2 oveq2d hoaddassi
    ho0f elimf dedth3h ) DDAEZDDBEZDDCEZABFGZCFGZABCFGZFGZHTAIJZBFGZCFGZUGUEFGZ
    HUGUABIJZFGZCFGZUGUKCFGZFGZHULUBCIJZFGZUGUKUPFGZFGZHABCIIIAUGHZUDUIUFUJUTUC
    UHCFAUGBFKLAUGUEFKMBUKHZUIUMUJUOVAUHULCFBUKUGFNLVAUEUNUGFBUKCFKOMCUPHZUMUQU
    OUSCUPULFNVBUNURUGFCUPUKFNOMUGUKUPDDAIQRDDBIQRDDCIQRPS $.

  $( Commutative/associative law for Hilbert space operator sum that swaps the
     second and third terms.  (Contributed by NM, 24-Aug-2006.)
     (New usage is discouraged.) $)
  hoadd32 $p |- ( ( R : ~H --> ~H /\ S : ~H --> ~H /\ T : ~H --> ~H ) ->
                ( ( R +op S ) +op T ) = ( ( R +op T ) +op S ) ) $=
    ( chil wf w3a chos co wceq hoaddcom 3adant1 oveq2d hoaddass 3com23 3eqtr4d
    ) DDAEZDDBEZDDCEZFZABCGHZGHACBGHZGHZABGHCGHACGHBGHZSTUAAGQRTUAIPBCJKLABCMPR
    QUCUBIACBMNO $.

  $( Rearrangement of 4 terms in a sum of Hilbert space operators.
     (Contributed by NM, 24-Aug-2006.)  (New usage is discouraged.) $)
  hoadd4 $p |- ( ( ( R : ~H --> ~H /\ S : ~H --> ~H ) /\
      ( T : ~H --> ~H /\ U : ~H --> ~H ) ) -> ( ( R +op S ) +op ( T +op U ) ) =
                ( ( R +op T ) +op ( S +op U ) ) ) $=
    ( chil wf wa chos co wceq w3a hoadd32 oveq1d 3expa adantrr hoaddcl hoaddass
    3expb sylan an4s 3eqtr3d ) EEAFZEEBFZGZEECFZEEDFZGZGABHIZCHIZDHIZACHIZBHIZD
    HIZUHCDHIHIZUKBDHIHIZUDUEUJUMJZUFUBUCUEUPUBUCUEKUIULDHABCLMNOUDEEUHFZUGUJUN
    JZABPUQUEUFURUHCDQRSUBUEUCUFUMUOJZUBUEGEEUKFZUCUFGUSACPUTUCUFUSUKBDQRSTUA
    $.

  $( Distributive law for Hilbert space operator difference.  (Contributed by
     NM, 23-Aug-2006.)  (New usage is discouraged.) $)
  hocsubdir $p |- ( ( R : ~H --> ~H /\ S : ~H --> ~H /\ T : ~H --> ~H ) ->
                ( ( R -op S ) o. T ) = ( ( R o. T ) -op ( S o. T ) ) ) $=
    ( chil wf chod co ccom wceq ch0o cif oveq1 coeq1d coeq1 eqeq12d oveq2 coeq2
    oveq1d ho0f elimf oveq2d oveq12d hocsubdiri dedth3h ) DDAEZDDBEZDDCEZABFGZC
    HZACHZBCHZFGZIUEAJKZBFGZCHZUMCHZUKFGZIUMUFBJKZFGZCHZUPURCHZFGZIUSUGCJKZHZUM
    VCHZURVCHZFGZIABCJJJAUMIZUIUOULUQVHUHUNCAUMBFLMVHUJUPUKFAUMCNROBURIZUOUTUQV
    BVIUNUSCBURUMFPMVIUKVAUPFBURCNUAOCVCIZUTVDVBVGCVCUSQVJUPVEVAVFFCVCUMQCVCURQ
    UBOUMURVCDDAJSTDDBJSTDDCJSTUCUD $.

  ${
    $d x T $.
    hoaddid1.1 $e |- T : ~H --> ~H $.
    $( Sum of a Hilbert space operator with the zero operator.  (Contributed by
       NM, 15-Nov-2000.)  (New usage is discouraged.) $)
    hoaddid1i $p |- ( T +op 0hop ) = T $=
      ( vx cv ch0o chos co cfv wceq chil wral wcel cva wf hosval mp3an12 ho0val
      c0v ho0f oveq2d ffvelrni ax-hvaddid syl 3eqtrd rgen hoaddcli hoeqi mpbi )
      CDZAEFGZHZUIAHZIZCJKUJAIUMCJUIJLZUKULUIEHZMGZULRMGZULJJANJJENUNUKUPIBSUIA
      EOPUNUORULMUIQTUNULJLUQULIJJUIABUAULUBUCUDUECUJAAEBSUFBUGUH $.

    $( Difference of a Hilbert space operator from itself.  (Contributed by NM,
       10-Mar-2006.)  (New usage is discouraged.) $)
    hodidi $p |- ( T -op T ) = 0hop $=
      ( chod co ch0o wceq chos hoaddid1i ho0f hodsi mpbir ) AACDEFAEGDAFABHAAEB
      BIJK $.

    $( Composition of the zero operator and a Hilbert space operator.
       (Contributed by NM, 9-Aug-2006.)  (New usage is discouraged.) $)
    ho0coi $p |- ( 0hop o. T ) = 0hop $=
      ( vx ch0o ccom cfv wceq chil wral wcel c0v ffvelrni ho0val syl ho0f hocoi
      cv 3eqtr4d rgen hocofi hoeqi mpbi ) CQZDAEZFZUCDFZGZCHIUDDGUGCHUCHJZUCAFZ
      DFZKUEUFUHUIHJUJKGHHUCABLUIMNUCDAOBPUCMRSCUDDDAOBTOUAUB $.

    $( Composition of Hilbert space operator with unit identity.  (Contributed
       by NM, 15-Nov-2000.)  (New usage is discouraged.) $)
    hoid1i $p |- ( T o. Iop ) = T $=
      ( vx chio ccom chil cpjh df-iop coeq2i cv wceq wral wcel helch pjfi hocoi
      cfv pjch1 fveq2d eqtrd rgen hocofi hoeqi mpbi eqtri ) ADEAFGQZEZADUFAHICJ
      ZUGQZUHAQZKZCFLUGAKUKCFUHFMZUIUHUFQZAQUJUHAUFBFNOZPULUMUHAUHRSTUACUGAAUFB
      UNUBBUCUDUE $.

    $( Composition of Hilbert space operator with unit identity.  (Contributed
       by NM, 15-Nov-2000.)  (New usage is discouraged.) $)
    hoid1ri $p |- ( Iop o. T ) = T $=
      ( vx chio ccom chil cpjh df-iop coeq1i cv wceq wral wcel helch pjfi hocoi
      cfv ffvelrni pjch1 syl eqtrd rgen hocofi hoeqi mpbi eqtri ) DAEFGQZAEZADU
      GAHICJZUHQZUIAQZKZCFLUHAKULCFUIFMZUJUKUGQZUKUIUGAFNOZBPUMUKFMUNUKKFFUIABR
      UKSTUAUBCUHAUGAUOBUCBUDUEUF $.
  $}

  $( Sum of a Hilbert space operator with the zero operator.  (Contributed by
     NM, 25-Jul-2006.)  (New usage is discouraged.) $)
  hoaddid1 $p |- ( T : ~H --> ~H -> ( T +op 0hop ) = T ) $=
    ( chil wf ch0o chos co wceq cif oveq1 id eqeq12d ho0f elimf hoaddid1i dedth
    ) BBACZADEFZAGPADHZDEFZRGADARGZQSARARDEITJKRBBADLMNO $.

  $( Difference of a Hilbert space operator from itself.  (Contributed by NM,
     23-Jul-2006.)  (New usage is discouraged.) $)
  hodid $p |- ( T : ~H --> ~H -> ( T -op T ) = 0hop ) $=
    ( chil wf chod co ch0o wceq cif id oveq12d eqeq1d ho0f elimf hodidi dedth )
    BBACZAADEZFGPAFHZRDEZFGAFARGZQSFTARARDTIZUAJKRBBAFLMNO $.

  $( A Hilbert space operator is not empty.  (Contributed by NM, 24-Mar-2006.)
     (New usage is discouraged.) $)
  hon0 $p |- ( T : ~H --> ~H -> -. T = (/) ) $=
    ( chil wf c0 wceq c0v ax-hv0cl n0ii wfn fn0 wi ffn fndmu syl syl5bir mtoi
    ex ) BBACZADEZBDEZFBGHSADIZRTAJRABIZUATKBBALUBUATBDAMQNOP $.

  ${
    $d x S $.  $d x T $.
    hodseq.2 $e |- S : ~H --> ~H $.
    hodseq.3 $e |- T : ~H --> ~H $.
    $( Subtraction and addition of equal Hilbert space operators.  (Contributed
       by NM, 27-Aug-2004.)  (New usage is discouraged.) $)
    hodseqi $p |- ( S +op ( T -op S ) ) = T $=
      ( chod co wceq chos eqid hosubcli hodsi mpbi ) BAEFZMGAMHFBGMIBAMDCBADCJK
      L $.

    $( Subtraction of Hilbert space operators expressed in terms of difference
       from zero.  (Contributed by NM, 10-Mar-2006.)
       (New usage is discouraged.) $)
    ho0subi $p |- ( S -op T ) = ( S +op ( 0hop -op T ) ) $=
      ( chod co ch0o chos wceq ho0f hosubcli hoadd12i oveq2i hoaddid1i hoaddcli
      hodseqi 3eqtri hodsi mpbir ) ABEFAGBEFZHFZIBUAHFZAIUBABTHFZHFAGHFABATDCGB
      JDKZLUCGAHBGDJPMACNQABUACDATCUDORS $.

    $( Relationship between Hilbert operator addition and subtraction.
       (Contributed by NM, 24-Aug-2006.)  (New usage is discouraged.) $)
    honegsubi $p |- ( S +op ( -u 1 .op T ) ) = ( S -op T ) $=
      ( vx cv c1 cneg chot co cfv wceq chil wcel cva wf neg1cn mp3an12 ffvelrni
      eqtr4d chos chod wral cmv cc homulcl mp2an hosval hvsubval syl2anc homval
      csm oveq2d hodval rgen hoaddcli hosubcli hoeqi mpbi ) EFZAGHZBIJZUAJZKZUT
      ABUBJZKZLZEMUCVCVELVGEMUTMNZVDUTAKZUTBKZUDJZVFVHVDVIUTVBKZOJZVKMMAPZMMVBP
      ZVHVDVMLCVAUENZMMBPZVOQDVABUFUGZUTAVBUHRVHVKVIVAVJULJZOJZVMVHVIMNVJMNVKVT
      LMMUTACSMMUTBDSVIVJUIUJVHVLVSVIOVPVQVHVLVSLQDVAUTBUKRUMTTVNVQVHVFVKLCDUTA
      BUNRTUOEVCVEAVBCVRUPABCDUQURUS $.

$(
    @( Distributive law for Hilbert space operators. @)
    hosdi @p |- ( A e. CC ->
                 ( A .op ( S +op T ) ) = ( ( A .op S ) +op ( A .op T ) ) ) @=
?@.

    @( Distributive law for Hilbert space operators. @)
    hoddii @p |- ( A e. CC ->
                 ( A .op ( S -op T ) ) = ( ( A .op S ) -op ( A .op T ) ) ) @=
?@.
$)
  $}

  $( Subtraction of Hilbert space operators expressed in terms of difference
     from zero.  (Contributed by NM, 25-Jul-2006.)
     (New usage is discouraged.) $)
  ho0sub $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H ) ->
                ( S -op T ) = ( S +op ( 0hop -op T ) ) ) $=
    ( chil wf chod co ch0o chos wceq cif oveq1 eqeq12d oveq2 ho0f elimf ho0subi
    oveq2d dedth2h ) CCADZCCBDZABEFZAGBEFZHFZISAGJZBEFZUDUBHFZIUDTBGJZEFZUDGUGE
    FZHFZIABGGAUDIUAUEUCUFAUDBEKAUDUBHKLBUGIZUEUHUFUJBUGUDEMUKUBUIUDHBUGGEMQLUD
    UGCCAGNOCCBGNOPR $.

  $( The zero operator subtracted from a Hilbert space operator.  (Contributed
     by NM, 25-Jul-2006.)  (New usage is discouraged.) $)
  hosubid1 $p |- ( T : ~H --> ~H -> ( T -op 0hop ) = T ) $=
    ( chil wf ch0o chod co chos wceq ho0sub mpan2 hodidi oveq2i hoaddid1 syl5eq
    ho0f eqtrd ) BBACZADEFZADDEFZGFZAQBBDCRTHOADIJQTADGFASDAGDOKLAMNP $.

  $( Relationship between Hilbert space operator addition and subtraction.
     (Contributed by NM, 24-Aug-2006.)  (New usage is discouraged.) $)
  honegsub $p |- ( ( T : ~H --> ~H /\ U : ~H --> ~H ) ->
                ( T +op ( -u 1 .op U ) ) = ( T -op U ) ) $=
    ( chil wf c1 cneg chot co chos chod wceq ch0o cif oveq1 eqeq12d oveq2d ho0f
    oveq2 elimf honegsubi dedth2h ) CCADZCCBDZAEFZBGHZIHZABJHZKUBALMZUEIHZUHBJH
    ZKUHUDUCBLMZGHZIHZUHUKJHZKABLLAUHKUFUIUGUJAUHUEINAUHBJNOBUKKZUIUMUJUNUOUEUL
    UHIBUKUDGRPBUKUHJROUHUKCCALQSCCBLQSTUA $.

  ${
    $d x A $.  $d x B $.  $d x T $.  $d x U $.
    $( An operator equals its scalar product with one.  (Contributed by NM,
       12-Aug-2006.)  (New usage is discouraged.) $)
    homulid2 $p |- ( T : ~H --> ~H -> ( 1 .op T ) = T ) $=
      ( vx chil wf cv c1 chot co cfv wceq wral wcel wa csm ax-1cn homval mp3an1
      cc ffvelrn ax-hvmulid syl eqtrd ralrimiva homulcl mpan hoeq mpancom mpbid
      wb ) CCADZBEZFAGHZIZUKAIZJZBCKZULAJZUJUOBCUJUKCLZMZUMFUNNHZUNFRLZUJURUMUT
      JOFUKAPQUSUNCLUTUNJCCUKASUNTUAUBUCCCULDZUJUPUQUIVAUJVBOFAUDUEBULAUFUGUH
      $.

    $( Associative law for scalar product and composition of operators.
       (Contributed by NM, 13-Aug-2006.)  (New usage is discouraged.) $)
    homco1 $p |- ( ( A e. CC /\ T : ~H --> ~H /\ U : ~H --> ~H ) ->
                  ( ( A .op T ) o. U ) = ( A .op ( T o. U ) ) ) $=
      ( vx wcel chil wf chot co ccom cfv wceq csm fvco3 3ad2antl3 homval eqtr4d
      wa fco 3impb cc w3a wral oveq2d ffvelrn syl3an3 3expa exp43 3imp1 syl3an2
      cv wi 3expia imp ralrimiva wb homulcl stoic3 sylan2 hoeq syl2anc mpbid )
      AUAEZFFBGZFFCGZUBZDUKZABHIZCJZKZVGABCJZHIZKZLZDFUCZVIVLLZVFVNDFVFVGFEZRZV
      JAVGVKKZMIZVMVRVJVGCKZVHKZVTVEVCVQVJWBLVDFFVGVHCNOVRVTAWABKZMIZWBVRVSWCAM
      VEVCVQVSWCLVDFFVGBCNOUDVCVDVEVQWBWDLZVCVDVEVQWEVCVDVEVQRZWEWFVCVDWAFEWEFF
      VGCUEAWABPUFUGUHUIQQVFVQVMVTLZVCVDVEVQWGULVCVDVERZVQWGWHVCFFVKGZVQWGFFFBC
      SZAVGVKPUJUMTUNQUOVFFFVIGZFFVLGZVOVPUPVCVDFFVHGVEWKABUQFFFVHCSURVCVDVEWLW
      HVCWIWLWJAVKUQUSTDVIVLUTVAVB $.

    $( Scalar product associative law for Hilbert space operators.
       (Contributed by NM, 12-Aug-2006.)  (New usage is discouraged.) $)
    homulass $p |- ( ( A e. CC /\ B e. CC /\ T : ~H --> ~H ) ->
                  ( ( A x. B ) .op T ) = ( A .op ( B .op T ) ) ) $=
      ( vx cc wcel chil wf w3a co chot cfv wceq wa csm wi homval 3expia homulcl
      eqtr4d cv cmul wral mulcl syl3an1 3impa imp oveq2d 3expa 3adantl1 ffvelrn
      ax-hvmulass syl3an3 exp43 3imp1 syl3an2 3impb ralrimiva wb stoic3 syl2anc
      sylan2 hoeq mpbid ) AEFZBEFZGGCHZIZDUAZABUBJZCKJZLZVIABCKJZKJZLZMZDGUCZVK
      VNMZVHVPDGVHVIGFZNZVLAVIVMLZOJZVOVTVLVJVICLZOJZWBVHVSVLWDMZVEVFVGVSWEPVEV
      FNZVGVSWEWFVJEFZVGVSWEABUDZVJVICQUERUFUGVTWBABWCOJZOJZWDVFVGVSWBWJMZVEVFV
      GVSWKVFVGVSIWAWIAOBVICQUHUIUJVEVFVGVSWDWJMZVEVFVGVSWLVEVFVGVSNZWLWMVEVFWC
      GFWLGGVICUKABWCULUMUIUNUOTTVHVSVOWBMZVEVFVGVSWNPVEVFVGNZVSWNWOVEGGVMHZVSW
      NBCSZAVIVMQUPRUQUGTURVHGGVKHZGGVNHZVQVRUSVEVFWGVGWRWHVJCSUTVEVFVGWSWOVEWP
      WSWQAVMSVBUQDVKVNVCVAVD $.

    $( Scalar product distributive law for Hilbert space operators.
       (Contributed by NM, 12-Aug-2006.)  (New usage is discouraged.) $)
    hoadddi $p |- ( ( A e. CC /\ T : ~H --> ~H /\ U : ~H --> ~H ) ->
                 ( A .op ( T +op U ) ) = ( ( A .op T ) +op ( A .op U ) ) ) $=
      ( vx wcel chil wf w3a chos co chot cfv wceq csm cva ffvelrn 3expa homulcl
      wa homval cc cv wral simpl1 3ad2antl2 3ad2antl3 ax-hvdistr1 hosval oveq2d
      syl3anc 3adantl1 3adantl3 3adantl2 oveq12d 3eqtr4d hoaddcl anim2i anim12i
      3impb sylan 3impdi ralrimiva wb sylan2 syl2an hoeq syl2anc mpbid ) AUAEZF
      FBGZFFCGZHZDUBZABCIJZKJZLZVMABKJZACKJZIJZLZMZDFUCZVOVSMZVLWADFVLVMFEZSZAV
      MVNLZNJZVMVQLZVMVRLZOJZVPVTWEAVMBLZVMCLZOJZNJZAWKNJZAWLNJZOJZWGWJWEVIWKFE
      ZWLFEZWNWQMVIVJVKWDUDVJVIWDWRVKFFVMBPUEVKVIWDWSVJFFVMCPUFAWKWLUGUJVJVKWDW
      GWNMZVIVJVKWDWTVJVKWDHWFWMANVMBCUHUIQUKWEWHWOWIWPOVIVJWDWHWOMZVKVIVJWDXAA
      VMBTQULVIVKWDWIWPMZVJVIVKWDXBAVMCTQUMUNUOVLVIFFVNGZSZWDVPWGMZVIVJVKXDVJVK
      SZXCVIBCUPZUQUSVIXCWDXEAVMVNTQUTVLFFVQGZFFVRGZSZWDVTWJMZVIVJVKXJVIVJSZXHV
      IVKSZXIABRZACRZURVAXHXIWDXKVMVQVRUHQUTUOVBVLFFVOGZFFVSGZWBWCVCVIVJVKXPXFV
      IXCXPXGAVNRVDUSVIVJVKXQXLXHXIXQXMXNXOVQVRUPVEVADVOVSVFVGVH $.

    $( Scalar product reverse distributive law for Hilbert space operators.
       (Contributed by NM, 25-Aug-2006.)  (New usage is discouraged.) $)
    hoadddir $p |- ( ( A e. CC /\ B e. CC /\ T : ~H --> ~H ) ->
                 ( ( A + B ) .op T ) = ( ( A .op T ) +op ( B .op T ) ) ) $=
      ( vx cc wcel chil wf co chot cfv wceq cva csm homval 3expa eqtr4d homulcl
      wa sylan w3a caddc chos wral addcl anim1i 3impa 3adantl2 3adantl1 oveq12d
      cv ffvelrn ax-hvdistr2 syl3an3 3exp exp4a 3imp1 anim12i 3impdir ralrimiva
      hosval wb stoic3 hoaddcl syl2an hoeq syl2anc mpbid ) AEFZBEFZGGCHZUAZDUKZ
      ABUBIZCJIZKZVMACJIZBCJIZUCIZKZLZDGUDZVOVSLZVLWADGVLVMGFZSZVPVMVQKZVMVRKZM
      IZVTWEVPVNVMCKZNIZWHVLVNEFZVKSZWDVPWJLZVIVJVKWLVIVJSWKVKABUEZUFUGWKVKWDWM
      VNVMCOPTWEWHAWINIZBWINIZMIZWJWEWFWOWGWPMVIVKWDWFWOLZVJVIVKWDWRAVMCOPUHVJV
      KWDWGWPLZVIVJVKWDWSBVMCOPUIUJVIVJVKWDWJWQLZVIVJVKWDWTVIVJVKWDSZWTXAVIVJWI
      GFWTGGVMCULABWIUMUNUOUPUQQQVLGGVQHZGGVRHZSZWDVTWHLZVIVKVJXDVIVKSZXBVJVKSZ
      XCACRZBCRZURUSXBXCWDXEVMVQVRVAPTQUTVLGGVOHZGGVSHZWBWCVBVIVJWKVKXJWNVNCRVC
      VIVKVJXKXFXBXCXKXGXHXIVQVRVDVEUSDVOVSVFVGVH $.
  $}

  $( Swap first and second factors in a nested operator scalar product.
     (Contributed by NM, 12-Aug-2006.)  (New usage is discouraged.) $)
  homul12 $p |- ( ( A e. CC /\ B e. CC /\ T : ~H --> ~H ) ->
                ( A .op ( B .op T ) ) = ( B .op ( A .op T ) ) ) $=
    ( cc wcel chil wf w3a cmul co chot wa mulcom oveq1d 3adant3 homulass 3com12
    wceq 3eqtr3d ) ADEZBDEZFFCGZHABIJZCKJZBAIJZCKJZABCKJKJBACKJKJZTUAUDUFRUBTUA
    LUCUECKABMNOABCPUATUBUFUGRBACPQS $.

  $( Double negative of a Hilbert space operator.  (Contributed by NM,
     24-Aug-2006.)  (New usage is discouraged.) $)
  honegneg $p |- ( T : ~H --> ~H -> ( -u 1 .op ( -u 1 .op T ) ) = T ) $=
    ( chil wf c1 cneg cmul co chot neg1mulneg1e1 oveq1i cc wcel neg1cn homulass
    wceq mp3an12 homulid2 3eqtr3a ) BBACZDEZTFGZAHGZDAHGTTAHGHGZAUADAHIJTKLZUDS
    UBUCOMMTTANPAQR $.

  $( Relationship between operator subtraction and negative.  (Contributed by
     NM, 25-Aug-2006.)  (New usage is discouraged.) $)
  hosubneg $p |- ( ( T : ~H --> ~H /\ U : ~H --> ~H ) ->
                  ( T -op ( -u 1 .op U ) ) = ( T +op U ) ) $=
    ( chil wf wa c1 cneg chot co chos chod wceq cc wcel neg1cn homulcl honegsub
    mpan sylan2 honegneg oveq2d adantl eqtr3d ) CCADZCCBDZEAFGZUFBHIZHIZJIZAUGK
    IZABJIZUEUDCCUGDZUIUJLUFMNUEULOUFBPRAUGQSUEUIUKLUDUEUHBAJBTUAUBUC $.

  $( Scalar product distributive law for operator difference.  (Contributed by
     NM, 12-Aug-2006.)  (New usage is discouraged.) $)
  hosubdi $p |- ( ( A e. CC /\ T : ~H --> ~H /\ U : ~H --> ~H ) ->
               ( A .op ( T -op U ) ) = ( ( A .op T ) -op ( A .op U ) ) ) $=
    ( cc wcel chil wf w3a c1 cneg chot co chos chod wceq neg1cn oveq2d honegsub
    homulcl wa mpan hoadddi syl3an3 homul12 mp3an2 3adant2 eqtrd 3adant1 syl2an
    3impdi 3eqtr3d ) ADEZFFBGZFFCGZHZABIJZCKLZMLZKLZABKLZUPACKLZKLZMLZABCNLZKLZ
    UTVANLZUOUSUTAUQKLZMLZVCUNULUMFFUQGZUSVHOUPDEZUNVIPUPCSUAABUQUBUCUOVGVBUTMU
    LUNVGVBOZUMULVJUNVKPAUPCUDUEUFQUGUMUNUSVEOULUMUNTURVDAKBCRQUHULUMUNVCVFOZUL
    UMTFFUTGFFVAGVLULUNTABSACSUTVARUIUJUK $.

  $( Distribution of negative over addition.  (Contributed by NM, 24-Aug-2006.)
     (New usage is discouraged.) $)
  honegdi $p |- ( ( T : ~H --> ~H /\ U : ~H --> ~H ) ->
          ( -u 1 .op ( T +op U ) ) = ( ( -u 1 .op T ) +op ( -u 1 .op U ) ) ) $=
    ( c1 cneg cc wcel chil wf chos co chot wceq neg1cn hoadddi mp3an1 ) CDZEFGG
    AHGGBHPABIJKJPAKJPBKJIJLMPABNO $.

  $( Distribution of negative over subtraction.  (Contributed by NM,
     24-Aug-2006.)  (New usage is discouraged.) $)
  honegsubdi $p |- ( ( T : ~H --> ~H /\ U : ~H --> ~H ) ->
                    ( -u 1 .op ( T -op U ) ) = ( ( -u 1 .op T ) +op U ) ) $=
    ( chil wf wa c1 cneg chot co chos chod wceq wcel neg1cn homulcl mpan sylan2
    cc honegdi oveq2d honegsub honegneg adantl 3eqtr3d ) CCADZCCBDZEZFGZAUHBHIZ
    JIZHIZUHAHIZUHUIHIZJIZUHABKIZHIULBJIUFUECCUIDZUKUNLUHRMUFUPNUHBOPAUISQUGUJU
    OUHHABUATUGUMBULJUFUMBLUEBUBUCTUD $.

  $( Distribution of negative over subtraction.  (Contributed by NM,
     24-Aug-2006.)  (New usage is discouraged.) $)
  honegsubdi2 $p |- ( ( T : ~H --> ~H /\ U : ~H --> ~H ) ->
                     ( -u 1 .op ( T -op U ) ) = ( U -op T ) ) $=
    ( chil wf wa c1 cneg chod co chot chos honegsubdi wceq cc wcel homulcl mpan
    neg1cn hoaddcom sylan honegsub ancoms 3eqtrd ) CCADZCCBDZEFGZABHIJIUFAJIZBK
    IZBUGKIZBAHIZABLUDCCUGDZUEUHUIMUFNOUDUKRUFAPQUGBSTUEUDUIUJMBAUAUBUC $.

  $( Law for double subtraction of Hilbert space operators.  (Contributed by
     NM, 24-Aug-2006.)  (New usage is discouraged.) $)
  hosubsub2 $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H /\ U : ~H --> ~H ) ->
                  ( S -op ( T -op U ) ) = ( S +op ( U -op T ) ) ) $=
    ( chil wf w3a c1 cneg chod co chot chos wceq wa honegsub sylan2 honegsubdi2
    hosubcl 3impb oveq2d 3adant1 eqtr3d ) DDAEZDDBEZDDCEZFAGHBCIJZKJZLJZAUFIJZA
    CBIJZLJZUCUDUEUHUIMZUDUENZUCDDUFEULBCRAUFOPSUDUEUHUKMUCUMUGUJALBCQTUAUB $.

  $( Rearrangement of 4 terms in a mixed addition and subtraction of Hilbert
     space operators.  (Contributed by NM, 24-Aug-2006.)
     (New usage is discouraged.) $)
  hosub4 $p |- ( ( ( R : ~H --> ~H /\ S : ~H --> ~H ) /\
      ( T : ~H --> ~H /\ U : ~H --> ~H ) ) -> ( ( R +op S ) -op ( T +op U ) ) =
                ( ( R -op T ) +op ( S -op U ) ) ) $=
    ( chil wf wa chos co c1 cneg chot chod wceq honegdi neg1cn homulcl honegsub
    mpan hoaddcl adantl oveq2d wcel anim12i hoadd4 sylan2 eqtrd syl2an ad2ant2r
    cc ad2ant2l oveq12d 3eqtr3d ) EEAFZEEBFZGZEECFZEEDFZGZGZABHIZJKZCDHIZLIZHIZ
    AVBCLIZHIZBVBDLIZHIZHIZVAVCMIZACMIZBDMIZHIUTVEVAVFVHHIZHIZVJUTVDVNVAHUSVDVN
    NUPCDOUAUBUSUPEEVFFZEEVHFZGVOVJNUQVPURVQVBUJUCZUQVPPVBCQSVRURVQPVBDQSUDABVF
    VHUEUFUGUPEEVAFEEVCFVEVKNUSABTCDTVAVCRUHUTVGVLVIVMHUNUQVGVLNUOURACRUIUOURVI
    VMNUNUQBDRUKULUM $.

  $( Rearrangement of 4 terms in a mixed addition and subtraction of Hilbert
     space operators.  (Contributed by NM, 24-Aug-2006.)
     (New usage is discouraged.) $)
  hosubadd4 $p |- ( ( ( R : ~H --> ~H /\ S : ~H --> ~H ) /\
      ( T : ~H --> ~H /\ U : ~H --> ~H ) ) -> ( ( R -op S ) -op ( T -op U ) ) =
                ( ( R +op U ) -op ( S +op T ) ) ) $=
    ( chil wf wa chod co chos hosubcl hosubsub2 3expb sylan hosub4 an42s eqtr4d
    wceq ) EEAFZEEBFZGZEECFZEEDFZGZGABHIZCDHIHIZUEDCHIJIZADJIBCJIHIZUAEEUEFZUDU
    FUGRZABKUIUBUCUJUECDLMNSUCTUBUHUGRADBCOPQ $.

  $( Associative-type law for addition and subtraction of Hilbert space
     operators.  (Contributed by NM, 25-Aug-2006.)
     (New usage is discouraged.) $)
  hoaddsubass $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H /\ U : ~H --> ~H ) ->
                  ( ( S +op T ) -op U ) = ( S +op ( T -op U ) ) ) $=
    ( chil wf chos co ch0o chod wceq ho0f hosubcl mpan hoaddass syl3an3 hoaddcl
    w3a ho0sub stoic3 3adant1 oveq2d 3eqtr4d ) DDAEZDDBEZDDCEZQZABFGZHCIGZFGZAB
    UHFGZFGZUGCIGZABCIGZFGUEUCUDDDUHEZUIUKJDDHEUEUNKHCLMABUHNOUCUDDDUGEUEULUIJA
    BPUGCRSUFUMUJAFUDUEUMUJJUCBCRTUAUB $.

  $( Law for operator addition and subtraction of Hilbert space operators.
     (Contributed by NM, 25-Aug-2006.)  (New usage is discouraged.) $)
  hoaddsub $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H /\ U : ~H --> ~H ) ->
                  ( ( S +op T ) -op U ) = ( ( S -op U ) +op T ) ) $=
    ( chil wf w3a chos co chod wa hoaddcom oveq1d 3adant3 hoaddsubass 3com12 wi
    wceq hosubcl ex syl5 expd com12 3imp 3eqtrd ) DDAEZDDBEZDDCEZFABGHZCIHZBAGH
    ZCIHZBACIHZGHZULBGHZUEUFUIUKQUGUEUFJUHUJCIABKLMUFUEUGUKUMQBACNOUEUFUGUMUNQZ
    UFUEUGUOPUFUEUGUOUEUGJDDULEZUFUOACRUFUPUOBULKSTUAUBUCUD $.

  $( Law for double subtraction of Hilbert space operators.  (Contributed by
     NM, 25-Aug-2006.)  (New usage is discouraged.) $)
  hosubsub $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H /\ U : ~H --> ~H ) ->
                  ( S -op ( T -op U ) ) = ( ( S -op T ) +op U ) ) $=
    ( chil wf w3a chod co chos hosubsub2 wceq hoaddsubass hoaddsub eqtr3d eqtrd
    3com23 ) DDAEZDDBEZDDCEZFABCGHGHACBGHIHZABGHCIHZABCJQSRTUAKQSRFACIHBGHTUAAC
    BLACBMNPO $.

  $( Law for double subtraction of Hilbert space operators.  (Contributed by
     NM, 25-Aug-2006.)  (New usage is discouraged.) $)
  hosubsub4 $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H /\ U : ~H --> ~H ) ->
                  ( ( S -op T ) -op U ) = ( S -op ( T +op U ) ) ) $=
    ( chil wf w3a c1 cneg chot chod chos wceq wcel neg1cn homulcl mpan hosubsub
    co cc syl3an3 hosubneg 3adant1 oveq2d hosubcl honegsub stoic3 3eqtr3rd ) DD
    AEZDDBEZDDCEZFZABGHZCIRZJRZJRZABJRZUMKRZABCKRZJRUPCJRZUJUHUIDDUMEZUOUQLULSM
    UJUTNULCOPABUMQTUKUNURAJUIUJUNURLUHBCUAUBUCUHUIDDUPEUJUQUSLABUDUPCUEUFUG $.

  $( Two times a Hilbert space operator.  (Contributed by NM, 26-Aug-2006.)
     (New usage is discouraged.) $)
  ho2times $p |- ( T : ~H --> ~H -> ( 2 .op T ) = ( T +op T ) ) $=
    ( chil wf c2 chot co c1 chos caddc df-2 oveq1i cc wcel wceq ax-1cn hoadddir
    mp3an12 syl5eq hoadddi anidms mp3an1 hoaddcl homulid2 syl 3eqtr2d ) BBACZDA
    EFZGAEFZUHHFZGAAHFZEFZUJUFUGGGIFZAEFZUIDULAEJKGLMZUNUFUMUINOOGGAPQRUFUKUINZ
    UNUFUFUOOGAASUATUFBBUJCZUKUJNUFUPAAUBTUJUCUDUE $.

  ${
    hoaddsubass.1 $e |- R : ~H --> ~H $.
    hoaddsubass.2 $e |- S : ~H --> ~H $.
    hoaddsubass.3 $e |- T : ~H --> ~H $.
    $( Associativity of sum and difference of Hilbert space operators.
       (Contributed by NM, 27-Aug-2004.)  (New usage is discouraged.) $)
    hoaddsubassi $p |- ( ( R +op S ) -op T ) = ( R +op ( S -op T ) ) $=
      ( chil wf chos co chod wceq hoaddsubass mp3an ) GGAHGGBHGGCHABIJCKJABCKJI
      JLDEFABCMN $.

    $( Law for sum and difference of Hilbert space operators.  (Contributed by
       NM, 27-Aug-2004.)  (New usage is discouraged.) $)
    hoaddsubi $p |- ( ( R +op S ) -op T ) = ( ( R -op T ) +op S ) $=
      ( chos co chod hoaddcomi oveq1i hoaddsubassi hosubcli 3eqtri ) ABGHZCIHBA
      GHZCIHBACIHZGHQBGHOPCIABDEJKBACEDFLBQEACDFMJN $.
  $}

  ${
    hosd1.2 $e |- T : ~H --> ~H $.
    hosd1.3 $e |- U : ~H --> ~H $.
    $( Hilbert space operator sum expressed in terms of difference.
       (Contributed by NM, 27-Aug-2004.)  (New usage is discouraged.) $)
    hosd1i $p |- ( T +op U ) = ( T -op ( 0hop -op U ) ) $=
      ( ch0o chod co chos wceq hosubcli hoaddcomi hoaddsubassi eqtr4i hoaddid1i
      ho0f hoaddcli oveq1i hoaddsubi hodseqi 3eqtri hodsi mpbir eqcomi ) AEBFGZ
      FGZABHGZUEUFIUDUFHGZAIUGUFEHGZBFGZUFBFGZAUGUFUDHGUIUDUFEBODJZABCDPZKUFEBU
      LODLMUHUFBFUFULNQUJABFGZBHGBUMHGAABBCDDRUMBABCDJDKBADCSTTAUDUFCUKULUAUBUC
      $.

    $( Hilbert space operator sum expressed in terms of difference.
       (Contributed by NM, 27-Aug-2004.)  (New usage is discouraged.) $)
    hosd2i $p |- ( T +op U ) = ( T -op ( ( U -op U ) -op U ) ) $=
      ( chos co ch0o chod hosd1i hodidi oveq1i oveq2i eqtr4i ) ABEFAGBHFZHFABBH
      FZBHFZHFABCDIPNAHOGBHBDJKLM $.

    $( Hilbert space operator cancellation law.  (Contributed by NM,
       10-Mar-2006.)  (New usage is discouraged.) $)
    hopncani $p |- ( ( T +op U ) -op U ) = T $=
      ( chos co chod ch0o hoaddsubassi hodidi oveq2i hoaddid1i 3eqtri ) ABEFBGF
      ABBGFZEFAHEFAABBCDDINHAEBDJKACLM $.

    $( Hilbert space operator cancellation law.  (Contributed by NM,
       11-Mar-2006.)  (New usage is discouraged.) $)
    honpcani $p |- ( ( T -op U ) +op U ) = T $=
      ( chos co chod hoaddsubi hopncani eqtr3i ) ABEFBGFABGFBEFAABBCDDHABCDIJ
      $.

    $( If the difference between two operators is zero, they are equal.
       (Contributed by NM, 27-Jul-2006.)  (New usage is discouraged.) $)
    hosubeq0i $p |- ( ( T -op U ) = 0hop <-> T = U ) $=
      ( chod co ch0o wceq c1 cneg chot chos honegsubi eqeq1i oveq1 sylbir eqtri
      chil wf hoaddid1i cc wcel neg1cn homulcl hoadd32i hoaddassi hodidi oveq2i
      mp2an ho0f hoaddcomi 3eqtr3g syl6eq impbii ) ABEFZGHZABHZUPAIJZBKFZLFZBLF
      ZGBLFZABUPUTGHVAVBHUTUOGABCDMNUTGBLOPVAABLFUSLFZAAUSBCURUAUBRRBSRRUSSUCDU
      RBUDUIZDUEVCABUSLFZLFZAABUSCDVDUFVFAGLFAVEGALVEBBEFZGBBDDMBDUGZQUHACTQQQV
      BBGLFBGBUJDUKBDTQULUQUOVGGABBEOVHUMUN $.
  $}

  ${
    honpncan.1 $e |- R : ~H --> ~H $.
    honpncan.2 $e |- S : ~H --> ~H $.
    honpncan.3 $e |- T : ~H --> ~H $.
    $( Hilbert space operator cancellation law.  (Contributed by NM,
       11-Mar-2006.)  (New usage is discouraged.) $)
    honpncani $p |- ( ( R -op S ) +op ( S -op T ) ) = ( R -op T ) $=
      ( chod co chos hosubcli hoaddsubassi honpcani oveq1i eqtr3i ) ABGHZBIHZCG
      HOBCGHIHACGHOBCABDEJEFKPACGABDELMN $.
  $}

  ${
    $d x y T $.
    ho0.1 $e |- T : ~H --> ~H $.
    $( A condition implying that a Hilbert space operator is identically zero.
       Lemma 3.2(S8) of [Beran] p. 95.  (Contributed by NM, 28-Jan-2006.)
       (New usage is discouraged.) $)
    ho01i $p |- ( A. x e. ~H A. y e. ~H ( ( T ` x ) .ih y ) = 0 <->
               T = 0hop ) $=
      ( chil c0v csn cxp wceq cv cfv wral ch0o wfn wb wf ffn ax-mp c0h wcel csp
      co ax-hv0cl elexi fconst eqfnfv mp2an df0op2 df-ch0 xpeq2i eqtri ffvelrni
      cc0 eqeq2i hial0 syl fvconst2 eqeq2d bitr4d ralbiia 3bitr4ri ) CEFGZHZIZA
      JZCKZVEVCKZIZAELZCMIVFBJUAUBUMIBELZAELCENZVCENZVDVIOEECPVKDEECQREVBVCPVLE
      FFEUCUDZUEEVBVCQRAECVCUFUGMVCCMESHVCUHSVBEUIUJUKUNVJVHAEVEETZVJVFFIZVHVNV
      FETVJVOOEEVECDULBVFUOUPVNVGFVFEFVEVMUQURUSUTVA $.

    $( A condition implying that a Hilbert space operator is identically zero.
       Lemma 3.2(S10) of [Beran] p. 95.  (Contributed by NM, 28-Jan-2006.)
       (New usage is discouraged.) $)
    ho02i $p |- ( A. x e. ~H A. y e. ~H ( x .ih ( T ` y ) ) = 0 <->
               T = 0hop ) $=
      ( cv cfv csp co cc0 wceq chil wral ch0o ralcom wcel wb ffvelrni c0v hial0
      hial02 bitr4d syl ralbiia ho01i 3bitri ) AEZBEZCFZGHIJZBKLAKLUIAKLZBKLUHU
      FGHIJAKLZBKLCMJUIABKKNUJUKBKUGKOUHKOZUJUKPKKUGCDQULUJUHRJUKAUHTAUHSUAUBUC
      BACDUDUE $.
  $}

  ${
    $d x y z S $.  $d u v x y z T $.
    $( A condition implying that two Hilbert space operators are equal.  Lemma
       3.2(S9) of [Beran] p. 95.  (Contributed by NM, 15-Feb-2006.)
       (New usage is discouraged.) $)
    hoeq1 $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H ) -> ( A. x e. ~H
          A. y e. ~H ( ( S ` x ) .ih y ) = ( ( T ` x ) .ih y ) <-> S = T ) ) $=
      ( chil wf wa cv cfv csp co wceq wral wcel ffvelrn hial2eq syl2an wfn ffn
      wb anandirs ralbidva eqfnfv bitr4d ) EECFZEEDFZGZAHZCIZBHZJKUHDIZUJJKLBEM
      ZAEMUIUKLZAEMZCDLZUGULUMAEUEUFUHENZULUMTZUEUPGUIENUKENUQUFUPGEEUHCOEEUHDO
      BUIUKPQUAUBUECERDERUOUNTUFEECSEEDSAECDUCQUD $.

    $( A condition implying that two Hilbert space operators are equal.  Lemma
       3.2(S11) of [Beran] p. 95.  (Contributed by NM, 15-Feb-2006.)
       (New usage is discouraged.) $)
    hoeq2 $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H ) -> ( A. x e. ~H
          A. y e. ~H ( x .ih ( S ` y ) ) = ( x .ih ( T ` y ) ) <-> S = T ) ) $=
      ( chil wf wa cv cfv csp co wceq wral ralcom wcel ffvelrn hial2eq2 hial2eq
      wb a1i bitr4d syl2an anandirs ralbidva hoeq1 3bitrd ) EECFZEEDFZGZAHZBHZC
      IZJKUJUKDIZJKLZBEMAEMZUNAEMZBEMZULUJJKUMUJJKLAEMZBEMCDLUOUQSUIUNABEENTUIU
      PURBEUGUHUKEOZUPURSZUGUSGULEOZUMEOZUTUHUSGEEUKCPEEUKDPVAVBGUPULUMLURAULUM
      QAULUMRUAUBUCUDBACDUEUF $.

    $( Every Hilbert space operator has at most one adjoint.  (Contributed by
       NM, 18-Feb-2006.)  (New usage is discouraged.) $)
    adjmo $p |- E* u ( u : ~H --> ~H /\
           A. x e. ~H A. y e. ~H ( x .ih ( T ` y ) ) = ( ( u ` x ) .ih y ) ) $=
      ( vv chil cv wf cfv csp co wceq wral wa wmo wi wal r19.26-2 eqtr2 2ralimi
      sylbir hoeq1 biimpa sylan2 an4s gen2 fveq1 oveq1d eqeq2d 2ralbidv anbi12d
      feq1 mo4 mpbir ) FFCGZHZAGZBGZDIJKZUQUOIZURJKZLZBFMAFMZNZCOVDFFEGZHZUSUQV
      EIZURJKZLZBFMAFMZNZNUOVELZPZEQCQVMCEUPVFVCVJVLVCVJNZUPVFNZVAVHLZBFMAFMZVL
      VNVBVINZBFMAFMVQVBVIABFFRVRVPABFFUSVAVHSTUAVOVQVLABUOVEUBUCUDUEUFVDVKCEVL
      UPVFVCVJFFUOVEULVLVBVIABFFVLVAVHUSVLUTVGURJUQUOVEUGUHUIUJUKUMUN $.

    $( Symmetry property of an adjoint.  (Contributed by NM, 18-Feb-2006.)
       (New usage is discouraged.) $)
    adjsym $p |- ( ( S : ~H --> ~H /\ T : ~H --> ~H ) ->
          ( A. x e. ~H A. y e. ~H ( x .ih ( S ` y ) ) = ( ( T ` x ) .ih y ) <->
         A. x e. ~H A. y e. ~H ( x .ih ( T ` y ) ) = ( ( S ` x ) .ih y ) ) ) $=
      ( vz chil wf wa cv cfv csp co wceq wral wcel wb eqeq12d weq fveq2 cbvralv
      ccj ffvelrn ax-his1 sylan adantrl sylan2 adantll ancoms hicl cj11 syl2anc
      cc bitr2d an4s anassrs eqcom syl6bb ralbidva ralcom oveq2d ralbidv bitr4i
      oveq2 oveq1 oveq1d ralbii 3bitri syl6rbbr ) FFCGZFFDGZHZAIZBIZDJZKLZVLCJZ
      VMKLZMZBFNZAFNVMVPKLZVNVLKLZMZBFNZAFNZVLVMCJZKLZVLDJZVMKLZMZBFNAFNZVKVSWC
      AFVKVLFOZHZVRWBBFWLVMFOZHVRWAVTMZWBVKWKWMVRWNPZVIWKVJWMWOVIWKHZVJWMHZHZWN
      VOUAJZVQUAJZMZVRWQWPWNXAPWQWPHWAWSVTWTWQWKWAWSMZVIWQVNFOZWKXBFFVMDUBZVNVL
      UCUDUEWMWPVTWTMZVJWPWMVPFOZXEFFVLCUBZVMVPUCUFUGQUHWRVOULOZVQULOZXAVRPWKWQ
      XHVIWQWKXCXHXDVLVNUIUFUGWPWMXIVJWPXFWMXIXGVPVMUIUDUEVOVQUJUKUMUNUOWAVTUPU
      QURURWJVLEIZCJZKLZWGXJKLZMZAFNZEFNZVMXKKLZVNXJKLZMZBFNZEFNWDWJWIAFNZBFNXP
      WIABFFUSXOYAEBFEBRZXNWIAFYBXLWFXMWHYBXKWEVLKXJVMCSUTXJVMWGKVCQVATVBXOXTEF
      XNXSABFABRZXLXQXMXRVLVMXKKVDYCWGVNXJKVLVMDSVEQTVFXTWCEAFEARZXSWBBFYDXQVTX
      RWAYDXKVPVMKXJVLCSUTXJVLVNKVCQVATVGVH $.
  $}

  ${
    eigre.1 $e |- A e. ~H $.
    eigre.2 $e |- B e. CC $.
    $( A necessary and sufficient condition (that holds when ` T ` is a
       Hermitian operator) for an eigenvalue ` B ` to be real.  Generalization
       of Equation 1.30 of [Hughes] p. 49.  (Contributed by NM, 21-Jan-2005.)
       (New usage is discouraged.) $)
    eigrei $p |- ( ( ( T ` A ) = ( B .h A ) /\ A =/= 0h ) ->
                 ( ( A .ih ( T ` A ) ) = ( ( T ` A ) .ih A ) <-> B e. RR ) ) $=
      ( cfv csm co wceq c0v wne wa csp ccj wcel cmul cc mp3an syl6eq cc0 cr clt
      oveq2 chil his5 oveq1 ax-his3 eqeq12d wb hicli ax-his4 mpan gt0ne0d cjcli
      wbr mulcan2 mp3an12 sylancr sylan9bb cjrebi syl6bbr ) ACFZBAGHZIZAJKZLAVB
      MHZVBAMHZIZBNFZBIZBUAOVDVHVIAAMHZPHZBVKPHZIZVEVJVDVFVLVGVMVDVFAVCMHZVLVBV
      CAMUCBQOZAUDOZVQVOVLIEDDBAAUERSVDVGVCAMHZVMVBVCAMUFVPVQVQVRVMIEDDBAAUGRSU
      HVEVKQOZVKTKZVNVJUIZAADDUJVEVKVQVETVKUBUODAUKULUMVIQOVPVSVTLWABEUNEVIBVKU
      PUQURUSBEUTVA $.
  $}

  $( A necessary and sufficient condition (that holds when ` T ` is a Hermitian
     operator) for an eigenvalue ` B ` to be real.  Generalization of Equation
     1.30 of [Hughes] p. 49.  (Contributed by NM, 19-Mar-2006.)
     (New usage is discouraged.) $)
  eigre $p |- ( ( ( A e. ~H /\ B e. CC ) /\ ( ( T ` A ) = ( B .h A ) /\ A =/=
       0h ) ) -> ( ( A .ih ( T ` A ) ) = ( ( T ` A ) .ih A ) <-> B e. RR ) ) $=
    ( wcel cc wa cfv csm co wceq c0v wne csp cr wb wi cif cc0 eqeq12d oveq12d
    chil fveq2 oveq2 neeq1 anbi12d id bibi1d imbi12d oveq1 eqeq2d anbi1d bibi2d
    eleq1 ifhvhv0 0cn elimel eigrei dedth2h imp ) AUADZBEDZFACGZBAHIZJZAKLZFZAV
    BMIZVBAMIZJZBNDZOZUTVAVFVKPUTAKQZCGZBVLHIZJZVLKLZFZVLVMMIZVMVLMIZJZVJOZPVMV
    ABRQZVLHIZJZVPFZVTWBNDZOZPABKRAVLJZVFVQVKWAWHVDVOVEVPWHVBVMVCVNAVLCUBZAVLBH
    UCSAVLKUDUEWHVIVTVJWHVGVRVHVSWHAVLVBVMMWHUFZWITWHVBVMAVLMWIWJTSUGUHBWBJZVQW
    EWAWGWKVOWDVPWKVNWCVMBWBVLHUIUJUKWKVJWFVTBWBNUMULUHVLWBCAUNBREUOUPUQURUS $.

  ${
    eigpos.1 $e |- A e. ~H $.
    eigpos.2 $e |- B e. CC $.
    $( A sufficient condition (first conjunct pair, that holds when ` T ` is a
       positive operator) for an eigenvalue ` B ` (second conjunct pair) to be
       nonnegative.  Remark (ii) in [Hughes] p. 137.  (Contributed by NM,
       2-Jul-2005.)  (New usage is discouraged.) $)
    eigposi $p |- ( ( ( ( A .ih ( T ` A ) ) e. RR /\ 0 <_ ( A .ih ( T ` A ) ) )
      /\ ( ( T ` A ) = ( B .h A ) /\ A =/= 0h ) ) -> ( B e. RR /\ 0 <_ B ) ) $=
      ( cfv csp co cr wcel cc0 cle wbr wa csm wceq wb chil bitrd cmul c0v oveq2
      eleq1d oveq1 eqeq12d hvmulcli hire syl6rbbr adantr eigrei biimpac adantlr
      wne mp2an clt ax-his4 mpan ad2antll simplr ad2antrl ccj his5 mp3an oveq1d
      cc cjred syl5eq eqtrd breqtrd hiidrcl ax-mp prodge02 mpanl2 syl12anc jca
      ) AACFZGHZIJZKVQLMZNZVPBAOHZPZAUAUMZNZNZBIJZKBLMZVRWDWFVSWDVRWFWDVRVQVPAG
      HZPZWFWBVRWIQWCWBVRAWAGHZIJZWIWBVQWJIVPWAAGUBZUCWBWIWJWAAGHZPZWKWBVQWJWHW
      MWLVPWAAGUDUEARJZWARJWKWNQDBAEDUFAWAUGUNUHSUIABCDEUJSUKULZWEWFKAAGHZUOMZK
      BWQTHZLMZWGWPWCWRVTWBWOWCWRDAUPUQURWEKVQWSLVRVSWDUSWEVQWJWSWBVQWJPVTWCWLU
      TWEWJBVAFZWQTHZWSBVEJWOWOWJXBPEDDBAAVBVCWEXABWQTWEBWPVFVDVGVHVIWFWQIJZWRW
      TNWGWOXCDAVJVKBWQVLVMVNVO $.
  $}

  ${
    eigorthi.1 $e |- A e. ~H $.
    eigorthi.2 $e |- B e. ~H $.
    eigorthi.3 $e |- C e. CC $.
    eigorthi.4 $e |- D e. CC $.
    $( A necessary and sufficient condition (that holds when ` T ` is a
       Hermitian operator) for two eigenvectors ` A ` and ` B ` to be
       orthogonal.  Generalization of Equation 1.31 of [Hughes] p. 49.
       (Contributed by NM, 23-Jan-2005.)  (New usage is discouraged.) $)
    eigorthi $p |- ( ( ( ( T ` A ) = ( C .h A ) /\ ( T ` B ) = ( D .h B ) )
                     /\ C =/= ( * ` D ) ) ->
         ( ( A .ih ( T ` B ) ) = ( ( T ` A ) .ih B ) <-> ( A .ih B ) = 0 ) ) $=
      ( cfv csm co wceq csp cmul cc0 oveq2 cc wcel syl6eq wa ccj wne chil mp3an
      his5 oveq1 ax-his3 eqeqan12rd wb hicli cjcli mulcan2 mp3an12 eqcom syl6bb
      mpan biimpcd necon1d com12 mul01i eqtr4i eqtr4d impbid1 sylan9bb ) AEJZCA
      KLZMZBEJZDBKLZMZUAAVINLZVFBNLZMDUBJZABNLZOLZCVOOLZMZCVNUCZVOPMZVKVHVLVPVM
      VQVKVLAVJNLZVPVIVJANQDRSAUDSZBUDSZWAVPMIFGDABUFUETVHVMVGBNLZVQVFVGBNUGCRS
      ZWBWCWDVQMHFGCABUHUETUIVSVRVTVRVSVTVRVOPCVNVOPUCZVRCVNMZWFVRVNCMZWGVORSZW
      FVRWHUJZABFGUKVNRSWEWIWFUAWJDIULZHVNCVOUMUNUQVNCUOUPURUSUTVTVPVNPOLZVQVOP
      VNOQVTVQCPOLZWLVOPCOQWMPWLCHVAVNWKVAVBTVCVDVE $.
  $}

  $( A necessary and sufficient condition (that holds when ` T ` is a Hermitian
     operator) for two eigenvectors ` A ` and ` B ` to be orthogonal.
     Generalization of Equation 1.31 of [Hughes] p. 49.  (Contributed by NM,
     23-Mar-2006.)  (New usage is discouraged.) $)
  eigorth $p |- ( ( ( ( A e. ~H /\ B e. ~H ) /\ ( C e. CC /\ D e. CC ) ) /\
                 ( ( ( T ` A ) = ( C .h A ) /\ ( T ` B ) = ( D .h B ) )
                   /\ C =/= ( * ` D ) ) ) ->
         ( ( A .ih ( T ` B ) ) = ( ( T ` A ) .ih B ) <-> ( A .ih B ) = 0 ) ) $=
    ( wcel wa cc cfv csm co wceq csp cc0 wi c0v cif oveq2 eqeq12d anbi1d ccj wb
    chil fveq2 oveq1 oveq1d eqeq1d bibi12d imbi12d anbi2d oveq2d eqeq2d anbi12d
    wne neeq1 imbi1d neeq2d ifhvhv0 0cn elimel eigorthi dedth4h imp ) AUCFZBUCF
    ZGCHFZDHFZGGAEIZCAJKZLZBEIZDBJKZLZGZCDUAIZUNZGZAVKMKZVHBMKZLZABMKZNLZUBZVDV
    EVFVGVQWCOVDAPQZEIZCWDJKZLZVMGZVPGZWDVKMKZWEBMKZLZWDBMKZNLZUBZOWGVEBPQZEIZD
    WPJKZLZGZVPGZWDWQMKZWEWPMKZLZWDWPMKZNLZUBZOWEVFCNQZWDJKZLZWSGZXHVOUNZGZXGOX
    JWQVGDNQZWPJKZLZGZXHXNUAIZUNZGZXGOABCDPPNNAWDLZVQWIWCWOYAVNWHVPYAVJWGVMYAVH
    WEVIWFAWDEUDZAWDCJRSTTYAVTWLWBWNYAVRWJVSWKAWDVKMUEYAVHWEBMYBUFSYAWAWMNAWDBM
    UEUGUHUIBWPLZWIXAWOXGYCWHWTVPYCVMWSWGYCVKWQVLWRBWPEUDZBWPDJRSUJTYCWLXDWNXFY
    CWJXBWKXCYCVKWQWDMYDUKBWPWEMRSYCWMXENBWPWDMRUGUHUICXHLZXAXMXGYEWTXKVPXLYEWG
    XJWSYEWFXIWECXHWDJUEULTCXHVOUOUMUPDXNLZXMXTXGYFXKXQXLXSYFWSXPXJYFWRXOWQDXNW
    PJUEULUJYFVOXRXHDXNUAUDUQUMUPWDWPXHXNEAURBURCNHUSUTDNHUSUTVAVBVC $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Linear, continuous, bounded, Hermitian, unitary operators and norms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d t u w x y z $.
    $( Define the norm of a Hilbert space operator.  (Contributed by NM,
       18-Jan-2006.)  (New usage is discouraged.) $)
    df-nmop $a |- normop = ( t e. ( ~H ^m ~H ) |-> sup (
       { x | E. z e. ~H ( ( normh ` z ) <_ 1 /\ x = ( normh ` ( t ` z ) ) ) } ,
              RR* , < ) ) $.

    $( Define the set of continuous operators on Hilbert space.  For every
       "epsilon" ( ` y ` ) there is a "delta" ( ` z ` ) such that...
       (Contributed by NM, 28-Jan-2006.)  (New usage is discouraged.) $)
    df-cnop $a |- ContOp = { t e. ( ~H ^m ~H ) | A. x e. ~H A. y e. RR+
                E. z e. RR+ A. w e. ~H ( ( normh ` ( w -h x ) ) < z ->
                ( normh ` ( ( t ` w ) -h ( t ` x ) ) ) < y ) } $.

    $( Define the set of linear operators on Hilbert space.  (See ~ df-hosum
       for definition of operator.)  (Contributed by NM, 18-Jan-2006.)
       (New usage is discouraged.) $)
    df-lnop $a |- LinOp = { t e. ( ~H ^m ~H ) |
           A. x e. CC A. y e. ~H A. z e. ~H
       ( t ` ( ( x .h y ) +h z ) ) = ( ( x .h ( t ` y ) ) +h ( t ` z ) ) } $.

    $( Define the set of bounded linear Hilbert space operators.  (See
       ~ df-hosum for definition of operator.)  (Contributed by NM,
       18-Jan-2006.)  (New usage is discouraged.) $)
    df-bdop $a |- BndLinOp = { t e. LinOp | ( normop ` t ) < +oo } $.

    $( Define the set of unitary operators on Hilbert space.  (Contributed by
       NM, 18-Jan-2006.)  (New usage is discouraged.) $)
    df-unop $a |- UniOp = { t | ( t : ~H -onto-> ~H /\
         A. x e. ~H A. y e. ~H ( ( t ` x ) .ih ( t ` y ) ) = ( x .ih y ) ) } $.

    $( Define the set of Hermitian operators on Hilbert space.  Some books call
       these "symmetric operators" and others call them "self-adjoint
       operators," sometimes with slightly different technical meanings.
       (Contributed by NM, 18-Jan-2006.)  (New usage is discouraged.) $)
    df-hmop $a |- HrmOp = { t e. ( ~H ^m ~H ) | A. x e. ~H A. y e. ~H
                   ( x .ih ( t ` y ) ) = ( ( t ` x ) .ih y ) } $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Linear and continuous functionals and norms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

    $( Define the norm of a Hilbert space functional.  (Contributed by NM,
       11-Feb-2006.)  (New usage is discouraged.) $)
    df-nmfn $a |- normfn = ( t e. ( CC ^m ~H ) |-> sup (
         { x | E. z e. ~H ( ( normh ` z ) <_ 1 /\ x = ( abs ` ( t ` z ) ) ) } ,
              RR* , < ) ) $.

    $( Define the null space of a Hilbert space functional.  (Contributed by
       NM, 11-Feb-2006.)  (New usage is discouraged.) $)
    df-nlfn $a |- null = ( t e. ( CC ^m ~H ) |-> ( `' t " { 0 } ) ) $.

    $( Define the set of continuous functionals on Hilbert space.  For every
       "epsilon" ( ` y ` ) there is a "delta" ( ` z ` ) such that...
       (Contributed by NM, 11-Feb-2006.)  (New usage is discouraged.) $)
    df-cnfn $a |- ContFn = { t e. ( CC ^m ~H ) | A. x e. ~H A. y e. RR+
      E. z e. RR+ A. w e. ~H ( ( normh ` ( w -h x ) ) < z ->
      ( abs ` ( ( t ` w ) - ( t ` x ) ) ) < y ) } $.

    $( Define the set of linear functionals on Hilbert space.  (Contributed by
       NM, 11-Feb-2006.)  (New usage is discouraged.) $)
    df-lnfn $a |- LinFn = { t e. ( CC ^m ~H ) |
           A. x e. CC A. y e. ~H A. z e. ~H
       ( t ` ( ( x .h y ) +h z ) ) = ( ( x x. ( t ` y ) ) + ( t ` z ) ) } $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Adjoint
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

    $( Define the adjoint of a Hilbert space operator (if it exists).  The
       domain of ` adjh ` is the set of all adjoint operators.  Definition of
       adjoint in [Kalmbach2] p. 8.  Unlike Kalmbach (and most authors), we do
       not demand that the operator be linear, but instead show (in ~ adjbdln )
       that the adjoint exists for a bounded linear operator.  (Contributed by
       NM, 20-Feb-2006.)  (New usage is discouraged.) $)
    df-adjh $a |- adjh = { <. t , u >. | ( t : ~H --> ~H /\ u : ~H --> ~H /\
         A. x e. ~H A. y e. ~H ( ( t ` x ) .ih y ) = ( x .ih ( u ` y ) ) ) } $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Dirac bra-ket notation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

    $( Define the bra of a vector used by Dirac notation.  Based on definition
       of bra in [Prugovecki] p. 186 (p. 180 in 1971 edition).  In Dirac
       bra-ket notation, ` <. A | B >. ` is a complex number equal to the inner
       product ` ( B .ih A ) ` .  But physicists like to talk about the
       individual components ` <. A | ` and ` | B >. ` , called bra and ket
       respectively.  In order for their properties to make sense formally, we
       define the ket ` | B >. ` as the vector ` B ` itself, and the bra
       ` <. A | ` as a functional from ` ~H ` to ` CC ` .  We represent the
       Dirac notation ` <. A | B >. ` by ` ( ( bra `` A ) `` B ) ` ; see
       ~ braval .  The reversal of the inner product arguments not only makes
       the bra-ket behavior consistent with physics literature (see comments
       under ~ ax-his3 ) but is also required in order for the associative law
       ~ kbass2 to work.

       Our definition of bra and the associated outer product ~ df-kb differs
       from, but is equivalent to, a common approach in the literature that
       makes use of mappings to a dual space.  Our approach eliminates the need
       to have a parallel development of this dual space and instead keeps
       everything in Hilbert space.

       _For an extensive discussion about how our notation maps to the bra-ket
       notation in physics textbooks, see ~ mmnotes.txt , under the 17-May-2006
       entry_.  (Contributed by NM, 15-May-2006.)
       (New usage is discouraged.) $)
    df-bra $a |- bra = ( x e. ~H |-> ( y e. ~H |-> ( y .ih x ) ) ) $.

    $( Define a commuted bra and ket juxtaposition used by Dirac notation.  In
       Dirac notation, ` | A >. ` ` <. B | ` is an operator known as the outer
       product of ` A ` and ` B ` , which we represent by ` ( A ketbra B ) ` .
       Based on Equation 8.1 of [Prugovecki] p. 376.  This definition, combined
       with definition ~ df-bra , allows any legal juxtaposition of bras and
       kets to make sense formally and also to obey the associative law when
       mapped back to Dirac notation.  (Contributed by NM, 15-May-2006.)
       (New usage is discouraged.) $)
    df-kb $a |- ketbra = ( x e. ~H , y e. ~H |->
                          ( z e. ~H |-> ( ( z .ih y ) .h x ) ) ) $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Positive operators
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

    $( Define positive operator ordering.  Definition VI.1 of [Retherford]
       p. 49.  Note that ` ( ~H X. 0H ) <_op T ` means that ` T ` is a positive
       operator.  (Contributed by NM, 23-Jul-2006.)
       (New usage is discouraged.) $)
    df-leop $a |- <_op = { <. t , u >. | ( ( u -op t ) e. HrmOp /\
               A. x e. ~H 0 <_ ( ( ( u -op t ) ` x ) .ih x ) ) } $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Eigenvectors, eigenvalues, spectrum
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

    $( Define the eigenvector function.  Theorem ~ eleigveccl shows that
       ` eigvec `` T ` , the set of eigenvectors of Hilbert space operator
       ` T ` , are Hilbert space vectors.  (Contributed by NM, 11-Mar-2006.)
       (New usage is discouraged.) $)
    df-eigvec $a |- eigvec = ( t e. ( ~H ^m ~H ) |->
         { x e. ( ~H \ 0H ) | E. z e. CC ( t ` x ) = ( z .h x ) } ) $.

    $( Define the eigenvalue function.  The range of ` eigval `` T ` is the set
       of eigenvalues of Hilbert space operator ` T ` .  Theorem ~ eigvalcl
       shows that ` ( eigval `` T ) `` A ` , the eigenvalue associated with
       eigenvector ` A ` , is a complex number.  (Contributed by NM,
       11-Mar-2006.)  (New usage is discouraged.) $)
    df-eigval $a |- eigval = ( t e. ( ~H ^m ~H ) |->
                     ( x e. ( eigvec ` t ) |->
                   ( ( ( t ` x ) .ih x ) / ( ( normh ` x ) ^ 2 ) ) ) ) $.

    $( Define the spectrum of an operator.  Definition of spectrum in [Halmos]
       p. 50.  (Contributed by NM, 11-Apr-2006.)
       (New usage is discouraged.) $)
    df-spec $a |- Lambda = ( t e. ( ~H ^m ~H ) |->
        { x e. CC | -. ( t -op ( x .op ( _I |` ~H ) ) ) : ~H -1-1-> ~H } ) $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Theorems about operators and functionals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d t u w x y z T $.
    $( Value of the norm of a Hilbert space operator.  (Contributed by NM,
       18-Jan-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    nmopval $p |- ( T : ~H --> ~H -> ( normop ` T ) = sup ( { x | E. y e. ~H
         ( ( normh ` y ) <_ 1 /\ x = ( normh ` ( T ` y ) ) ) } , RR* , < ) ) $=
      ( vt cv cno cfv c1 cle wbr wceq chil wrex cab cxr clt csup cnop ax-hilex
      wa xrltso supex fveq1 fveq2d eqeq2d anbi2d rexbidv abbidv supeq1d df-nmop
      fvmptmap ) DCBEZFGHIJZAEZULDEZGZFGZKZTZBLMZANZOPQUMUNULCGZFGZKZTZBLMZANZO
      PQLLROVGPUAUBSSUOCKZOVAVGPVHUTVFAVHUSVEBLVHURVDUMVHUQVCUNVHUPVBFULUOCUCUD
      UEUFUGUHUIABDUJUK $.

    $( Property defining a continuous Hilbert space operator.  (Contributed by
       NM, 28-Jan-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    elcnop $p |- ( T e. ContOp <-> ( T : ~H --> ~H /\ A. x e. ~H A. y e. RR+
                   E. z e. RR+ A. w e. ~H ( ( normh ` ( w -h x ) ) < z ->
                     ( normh ` ( ( T ` w ) -h ( T ` x ) ) ) < y ) ) ) $=
      ( vt ccop wcel chil co cv cmv cno cfv clt wbr wi wral crp wrex cmap wa wf
      wceq fveq1 oveq12d fveq2d breq1d imbi2d rexralbidv 2ralbidv df-cnop elmap
      elrab2 ax-hilex anbi1i bitri ) EGHEIIUAJZHZDKZAKZLJMNCKOPZUTENZVAENZLJZMN
      ZBKZOPZQZDIRCSTZBSRAIRZUBIIEUCZVKUBVBUTFKZNZVAVMNZLJZMNZVGOPZQZDIRCSTZBSR
      AIRVKFEURGVMEUDZVTVJABISWAVSVICDSIWAVRVHVBWAVQVFVGOWAVPVEMWAVNVCVOVDLUTVM
      EUEVAVMEUEUFUGUHUIUJUKABCDFULUNUSVLVKIIEUOUOUMUPUQ $.

    $( Property defining a linear Hilbert space operator.  (Contributed by NM,
       18-Jan-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    ellnop $p |- ( T e. LinOp <-> ( T : ~H --> ~H /\
        A. x e. CC A. y e. ~H A. z e. ~H
       ( T ` ( ( x .h y ) +h z ) ) = ( ( x .h ( T ` y ) ) +h ( T ` z ) ) ) ) $=
      ( vt clo wcel chil cmap co cv csm cva cfv wceq wral cc wa fveq1 ax-hilex
      oveq2d oveq12d eqeq12d ralbidv 2ralbidv df-lnop elrab2 elmap anbi1i bitri
      wf ) DFGDHHIJZGZAKZBKZLJCKZMJZDNZUNUODNZLJZUPDNZMJZOZCHPZBHPAQPZRHHDUKZVE
      RUQEKZNZUNUOVGNZLJZUPVGNZMJZOZCHPZBHPAQPVEEDULFVGDOZVNVDABQHVOVMVCCHVOVHU
      RVLVBUQVGDSVOVJUTVKVAMVOVIUSUNLUOVGDSUAUPVGDSUBUCUDUEABCEUFUGUMVFVEHHDTTU
      HUIUJ $.

    $( A linear Hilbert space operator is a Hilbert space operator.
       (Contributed by NM, 18-Jan-2006.)  (New usage is discouraged.) $)
    lnopf $p |- ( T e. LinOp -> T : ~H --> ~H ) $=
      ( vx vy vz clo wcel chil wf cv csm co cva cfv wceq wral cc ellnop simplbi
      ) AEFGGAHBIZCIZJKDIZLKAMSTAMJKUAAMLKNDGOCGOBPOBCDAQR $.

    $( Property defining a bounded linear Hilbert space operator.  (Contributed
       by NM, 18-Jan-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    elbdop $p |- ( T e. BndLinOp <->
                  ( T e. LinOp /\ ( normop ` T ) < +oo ) ) $=
      ( vt cv cnop cfv cpnf clt wbr clo cbo wceq fveq2 breq1d df-bdop elrab2 )
      BCZDEZFGHADEZFGHBAIJPAKQRFGPADLMBNO $.

    $( A bounded linear Hilbert space operator is a linear operator.
       (Contributed by NM, 18-Feb-2006.)  (New usage is discouraged.) $)
    bdopln $p |- ( T e. BndLinOp -> T e. LinOp ) $=
      ( cbo wcel clo cnop cfv cpnf clt wbr elbdop simplbi ) ABCADCAEFGHIAJK $.

    $( A bounded linear Hilbert space operator is a Hilbert space operator.
       (Contributed by NM, 2-Feb-2006.)  (New usage is discouraged.) $)
    bdopf $p |- ( T e. BndLinOp -> T : ~H --> ~H ) $=
      ( cbo wcel clo chil wf bdopln lnopf syl ) ABCADCEEAFAGAHI $.

    $( The set in the supremum of the operator norm definition ~ df-nmop is a
       set of reals.  (Contributed by NM, 2-Feb-2006.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    nmopsetretALT $p |- ( T : ~H --> ~H -> { x | E. y e. ~H
           ( ( normh ` y ) <_ 1 /\ x = ( normh ` ( T ` y ) ) ) } C_ RR ) $=
      ( chil wf cv cno cfv c1 cle wbr wceq wa wrex cr wcel ffvelrn normcl eleq1
      syl syl5ibr impcom adantrl exp31 rexlimdv abssdv ) DDCEZBFZGHIJKZAFZUHCHZ
      GHZLZMZBDNAOUGUNUJOPZBDUGUHDPZUNUOUGUPMZUMUOUIUMUQUOUQUOUMULOPZUQUKDPURDD
      UHCQUKRTUJULOSUAUBUCUDUEUF $.

    $( The set in the supremum of the operator norm definition ~ df-nmop is a
       set of reals.  (Contributed by NM, 2-Feb-2006.)
       (New usage is discouraged.) $)
    nmopsetretHIL $p |- ( T : ~H --> ~H -> { x | E. y e. ~H
           ( ( normh ` y ) <_ 1 /\ x = ( normh ` ( T ` y ) ) ) } C_ RR ) $=
      ( cva csm cop cno cnv wcel chil wf cv cfv c1 cle wbr wceq wa wrex cab wss
      cr eqid hhnv df-hba hhnm nmosetre mpan ) DEFGFZHIJJCKBLZGMNOPALUJCMGMQRBJ
      SATUBUAUIUIUCZUDABCGGUIJJUEUIUKUFUGUH $.

    $( The set in the supremum of the operator norm definition ~ df-nmop is
       nonempty.  (Contributed by NM, 9-Feb-2006.)
       (New usage is discouraged.) $)
    nmopsetn0 $p |- ( normh ` ( T ` 0h ) ) e.
      { x | E. y e. ~H ( ( normh ` y ) <_ 1 /\ x = ( normh ` ( T ` y ) ) ) } $=
      ( c0v cfv cno cv c1 cle wbr wceq wa chil wrex cab wcel ax-hv0cl cc0 norm0
      fveq2 0le1 eqbrtri pm3.2i breq1d fveq2d eqeq2d anbi12d rspcev mp2an eqeq1
      eqid fvex anbi2d rexbidv elab mpbir ) DCEZFEZBGZFEZHIJZAGZUSCEZFEZKZLZBMN
      ZAOPVAURVDKZLZBMNZDMPDFEZHIJZURURKZLZVJQVLVMVKRHISUAUBURUKUCVIVNBDMUSDKZV
      AVLVHVMVOUTVKHIUSDFTUDVOVDURURVOVCUQFUSDCTUEUFUGUHUIVGVJAURUQFULVBURKZVFV
      IBMVPVEVHVAVBURVDUJUMUNUOUP $.

    $( The norm of a Hilbert space operator is an extended real.  (Contributed
       by NM, 9-Feb-2006.)  (New usage is discouraged.) $)
    nmopxr $p |- ( T : ~H --> ~H -> ( normop ` T ) e. RR* ) $=
      ( vy vx chil wf cnop cfv cv cno c1 cle wbr wceq wrex cab cxr csup nmopval
      wa clt wss wcel cr nmopsetretHIL ressxr syl6ss supxrcl syl eqeltrd ) DDAE
      ZAFGBHZIGJKLCHUKAGIGMSBDNCOZPTQZPCBARUJULPUAUMPUBUJULUCPCBAUDUEUFULUGUHUI
      $.

    $( The norm of a Hilbert space operator is either real or plus infinity.
       (Contributed by NM, 5-Feb-2006.)  (New usage is discouraged.) $)
    nmoprepnf $p |- ( T : ~H --> ~H ->
                   ( ( normop ` T ) e. RR <-> ( normop ` T ) =/= +oo ) ) $=
      ( vy vx chil wf cv cno cfv c1 cle wbr wceq wa wrex cab cxr wcel cpnf wne
      cr clt csup cnop wss c0 wb nmopsetretHIL nmopsetn0 ne0ii supxrre2 sylancl
      c0v nmopval eleq1d neeq1d 3bitr4d ) DDAEZBFZGHIJKCFURAHGHLMBDNCOZPUAUBZTQ
      ZUTRSZAUCHZTQVCRSUQUSTUDUSUESVAVBUFCBAUGULAHGHUSCBAUHUIUSUJUKUQVCUTTCBAUM
      ZUNUQVCUTRVDUOUP $.

    $( The norm of a Hilbert space operator is not minus infinity.
       (Contributed by NM, 2-Feb-2006.)  (New usage is discouraged.) $)
    nmopgtmnf $p |- ( T : ~H --> ~H -> -oo < ( normop ` T ) ) $=
      ( chil wf cnop cfv cr wcel cpnf wceq wn wb wo clt wbr wne nmoprepnf df-ne
      cmnf syl6bb xor3 nbior sylbir mnfltxr 3syl ) BBACZADEZFGZUFHIZJZKZUGUHLZR
      UFMNUEUGUFHOUIAPUFHQSUJUGUHKJUKUGUHTUGUHUAUBUFUCUD $.

    $( The norm of a Hilbert space operator is real iff it is less than
       infinity.  (Contributed by NM, 14-Feb-2006.)
       (New usage is discouraged.) $)
    nmopreltpnf $p |- ( T : ~H --> ~H ->
                   ( ( normop ` T ) e. RR <-> ( normop ` T ) < +oo ) ) $=
      ( chil wf cnop cfv cr wcel cpnf wne clt wbr nmoprepnf cxr wceq wn nltpnft
      wb nmopxr syl necon2abid bitr4d ) BBACZADEZFGUCHIUCHJKZALUBUDUCHUBUCMGUCH
      NUDOQARUCPSTUA $.

    $( The norm of a bounded operator is a real number.  (Contributed by NM,
       29-Jan-2006.)  (New usage is discouraged.) $)
    nmopre $p |- ( T e. BndLinOp -> ( normop ` T ) e. RR ) $=
      ( cbo wcel cnop cfv cr cmnf clt wbr cpnf chil wf nmopgtmnf syl clo elbdop
      bdopf simprbi cxr wa wb nmopxr xrrebnd 3syl mpbir2and ) ABCZADEZFCZGUGHIZ
      UGJHIZUFKKALZUIAQZAMNUFAOCUJAPRUFUKUGSCUHUIUJTUAULAUBUGUCUDUE $.

    $( Property defining a bounded linear Hilbert space operator.  (Contributed
       by NM, 14-Feb-2006.)  (New usage is discouraged.) $)
    elbdop2 $p |- ( T e. BndLinOp <->
                   ( T e. LinOp /\ ( normop ` T ) e. RR ) ) $=
      ( cbo wcel clo cnop cfv cpnf clt wbr wa cr elbdop wf wb lnopf nmopreltpnf
      chil syl pm5.32i bitr4i ) ABCADCZAEFZGHIZJUAUBKCZJALUAUDUCUAQQAMUDUCNAOAP
      RST $.

    $( Property defining a unitary Hilbert space operator.  (Contributed by NM,
       18-Jan-2006.)  (New usage is discouraged.) $)
    elunop $p |- ( T e. UniOp <-> ( T : ~H -onto-> ~H /\
        A. x e. ~H A. y e. ~H ( ( T ` x ) .ih ( T ` y ) ) = ( x .ih y ) ) ) $=
      ( vt cuo wcel cvv chil wfo cv cfv csp co wceq wral wa elex wf fof fveq1
      ax-hilex fex sylancl adantr foeq1 oveq12d eqeq1d 2ralbidv anbi12d df-unop
      elab2g pm5.21nii ) CEFCGFZHHCIZAJZCKZBJZCKZLMZUOUQLMZNZBHOAHOZPZCEQUNUMVB
      UNHHCRHGFUMHHCSUAHHGCUBUCUDHHDJZIZUOVDKZUQVDKZLMZUTNZBHOAHOZPVCDCEGVDCNZV
      EUNVJVBHHVDCUEVKVIVAABHHVKVHUSUTVKVFUPVGURLUOVDCTUQVDCTUFUGUHUIABDUJUKUL
      $.

    $( Property defining a Hermitian Hilbert space operator.  (Contributed by
       NM, 18-Jan-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    elhmop $p |- ( T e. HrmOp <-> ( T : ~H --> ~H /\ A. x e. ~H A. y e. ~H
                   ( x .ih ( T ` y ) ) = ( ( T ` x ) .ih y ) ) ) $=
      ( vt cho wcel chil cmap co cv cfv csp wceq wral wa wf fveq1 oveq2d oveq1d
      ax-hilex eqeq12d 2ralbidv df-hmop elrab2 elmap anbi1i bitri ) CEFCGGHIZFZ
      AJZBJZCKZLIZUJCKZUKLIZMZBGNAGNZOGGCPZUQOUJUKDJZKZLIZUJUSKZUKLIZMZBGNAGNUQ
      DCUHEUSCMZVDUPABGGVEVAUMVCUOVEUTULUJLUKUSCQRVEVBUNUKLUJUSCQSUAUBABDUCUDUI
      URUQGGCTTUEUFUG $.

    $( A Hermitian operator is a Hilbert space operator (mapping).
       (Contributed by NM, 19-Mar-2006.)  (New usage is discouraged.) $)
    hmopf $p |- ( T e. HrmOp -> T : ~H --> ~H ) $=
      ( vx vy cho wcel chil wf cv cfv csp co wceq wral elhmop simplbi ) ADEFFAG
      BHZCHZAIJKPAIQJKLCFMBFMBCANO $.

    $( The class of Hermitian operators is a set.  (Contributed by NM,
       17-Aug-2006.)  (New usage is discouraged.) $)
    hmopex $p |- HrmOp e. _V $=
      ( vt chil cmap co ovex cv wcel wf hmopf ax-hilex elmap sylibr ssriv ssexi
      cho ) OBBCDZBBCEAOPAFZOGBBQHQPGQIBBQJJKLMN $.

    $( Value of the norm of a Hilbert space functional.  (Contributed by NM,
       11-Feb-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    nmfnval $p |- ( T : ~H --> CC -> ( normfn ` T ) = sup ( { x | E. y e. ~H
           ( ( normh ` y ) <_ 1 /\ x = ( abs ` ( T ` y ) ) ) } , RR* , < ) ) $=
      ( vt cv cno cfv c1 cle wbr cabs wceq wa chil wrex cab cxr clt csup cc
      cnmf xrltso supex ax-hilex cnex fveq1 fveq2d eqeq2d anbi2d rexbidv abbidv
      supeq1d df-nmfn fvmptmap ) DCBEZFGHIJZAEZUODEZGZKGZLZMZBNOZAPZQRSUPUQUOCG
      ZKGZLZMZBNOZAPZQRSNTUAQVJRUBUCUDUEURCLZQVDVJRVKVCVIAVKVBVHBNVKVAVGUPVKUTV
      FUQVKUSVEKUOURCUFUGUHUIUJUKULABDUMUN $.

    $( The set in the supremum of the functional norm definition ~ df-nmfn is a
       set of reals.  (Contributed by NM, 14-Feb-2006.)
       (New usage is discouraged.) $)
    nmfnsetre $p |- ( T : ~H --> CC -> { x | E. y e. ~H
           ( ( normh ` y ) <_ 1 /\ x = ( abs ` ( T ` y ) ) ) } C_ RR ) $=
      ( chil cc wf cv cno cfv c1 cle wbr cabs wceq wa wrex wcel ffvelrn abscld
      cr eleq1 syl5ibr impcom adantrl exp31 rexlimdv abssdv ) DECFZBGZHIJKLZAGZ
      UICIZMIZNZOZBDPATUHUOUKTQZBDUHUIDQZUOUPUHUQOZUNUPUJUNURUPURUPUNUMTQURULDE
      UICRSUKUMTUAUBUCUDUEUFUG $.

    $( The set in the supremum of the functional norm definition ~ df-nmfn is
       nonempty.  (Contributed by NM, 14-Feb-2006.)
       (New usage is discouraged.) $)
    nmfnsetn0 $p |- ( abs ` ( T ` 0h ) ) e.
      { x | E. y e. ~H ( ( normh ` y ) <_ 1 /\ x = ( abs ` ( T ` y ) ) ) } $=
      ( c0v cfv cabs cv cno c1 cle wbr wceq wa chil wrex cab ax-hv0cl cc0 fveq2
      wcel norm0 eqbrtri pm3.2i breq1d fveq2d eqeq2d anbi12d rspcev mp2an eqeq1
      0le1 eqid fvex anbi2d rexbidv elab mpbir ) DCEZFEZBGZHEZIJKZAGZUTCEZFEZLZ
      MZBNOZAPTVBUSVELZMZBNOZDNTDHEZIJKZUSUSLZMZVKQVMVNVLRIJUAUKUBUSULUCVJVOBDN
      UTDLZVBVMVIVNVPVAVLIJUTDHSUDVPVEUSUSVPVDURFUTDCSUEUFUGUHUIVHVKAUSURFUMVCU
      SLZVGVJBNVQVFVIVBVCUSVEUJUNUOUPUQ $.

    $( The norm of any Hilbert space functional is an extended real.
       (Contributed by NM, 9-Feb-2006.)  (New usage is discouraged.) $)
    nmfnxr $p |- ( T : ~H --> CC -> ( normfn ` T ) e. RR* ) $=
      ( vy vx chil cc wf cnmf cfv cv cno c1 cle wbr cabs wceq wrex cab cxr clt
      wa csup nmfnval wss wcel cr nmfnsetre ressxr syl6ss supxrcl syl eqeltrd )
      DEAFZAGHBIZJHKLMCIUMAHNHOTBDPCQZRSUAZRCBAUBULUNRUCUORUDULUNUERCBAUFUGUHUN
      UIUJUK $.

    $( The norm of a Hilbert space functional is either real or plus infinity.
       (Contributed by NM, 8-Dec-2007.)  (New usage is discouraged.) $)
    nmfnrepnf $p |- ( T : ~H --> CC ->
                   ( ( normfn ` T ) e. RR <-> ( normfn ` T ) =/= +oo ) ) $=
      ( vy vx chil cc wf cv cno cfv c1 cle wbr cabs wceq wa wrex wcel cpnf wne
      cr cab cxr clt csup cnmf wss c0 wb nmfnsetre c0v nmfnsetn0 ne0ii supxrre2
      sylancl nmfnval eleq1d neeq1d 3bitr4d ) DEAFZBGZHIJKLCGUTAIMINOBDPCUAZUBU
      CUDZTQZVBRSZAUEIZTQVERSUSVATUFVAUGSVCVDUHCBAUIUJAIMIVACBAUKULVAUMUNUSVEVB
      TCBAUOZUPUSVEVBRVFUQUR $.

    $( Value of the null space of a Hilbert space functional.  (Contributed by
       NM, 11-Feb-2006.)  (New usage is discouraged.) $)
    nlfnval $p |- ( T : ~H --> CC -> ( null ` T ) = ( `' T " { 0 } ) ) $=
      ( vt chil cc wf cmap co wcel cnl cfv ccnv cc0 csn cima wceq cnex ax-hilex
      elmap cvv cnvexg imaexg syl cv cnveq imaeq1d df-nlfn fvmptg mpdan sylbir
      ) CDAEADCFGZHZAIJAKZLMZNZOZDCAPQRUKUNSHZUOUKULSHUPAUJTULUMSUAUBBABUCZKZUM
      NUNUJSIUQAOURULUMUQAUDUEBUFUGUHUI $.

    $( Property defining a continuous functional.  (Contributed by NM,
       11-Feb-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    elcnfn $p |- ( T e. ContFn <-> ( T : ~H --> CC /\ A. x e. ~H A. y e. RR+
                   E. z e. RR+ A. w e. ~H ( ( normh ` ( w -h x ) ) < z ->
                     ( abs ` ( ( T ` w ) - ( T ` x ) ) ) < y ) ) ) $=
      ( vt ccnfn wcel cc chil co cv cfv clt wbr cmin cabs wi wral crp cmap wrex
      cmv cno wa wf wceq fveq1 oveq12d fveq2d breq1d imbi2d rexralbidv 2ralbidv
      df-cnfn elrab2 cnex ax-hilex elmap anbi1i bitri ) EGHEIJUAKZHZDLZALZUCKUD
      MCLNOZVDEMZVEEMZPKZQMZBLZNOZRZDJSCTUBZBTSAJSZUEJIEUFZVOUEVFVDFLZMZVEVQMZP
      KZQMZVKNOZRZDJSCTUBZBTSAJSVOFEVBGVQEUGZWDVNABJTWEWCVMCDTJWEWBVLVFWEWAVJVK
      NWEVTVIQWEVRVGVSVHPVDVQEUHVEVQEUHUIUJUKULUMUNABCDFUOUPVCVPVOIJEUQURUSUTVA
      $.

    $( Property defining a linear functional.  (Contributed by NM,
       11-Feb-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    ellnfn $p |- ( T e. LinFn <-> ( T : ~H --> CC /\
        A. x e. CC A. y e. ~H A. z e. ~H
       ( T ` ( ( x .h y ) +h z ) ) = ( ( x x. ( T ` y ) ) + ( T ` z ) ) ) ) $=
      ( vt clf wcel cc chil cmap co cv csm cfv cmul caddc wceq wral wa fveq1 wf
      cva oveq2d oveq12d eqeq12d ralbidv 2ralbidv df-lnfn elrab2 ax-hilex elmap
      cnex anbi1i bitri ) DFGDHIJKZGZALZBLZMKCLZUBKZDNZUQURDNZOKZUSDNZPKZQZCIRZ
      BIRAHRZSIHDUAZVHSUTELZNZUQURVJNZOKZUSVJNZPKZQZCIRZBIRAHRVHEDUOFVJDQZVQVGA
      BHIVRVPVFCIVRVKVAVOVEUTVJDTVRVMVCVNVDPVRVLVBUQOURVJDTUCUSVJDTUDUEUFUGABCE
      UHUIUPVIVHHIDULUJUKUMUN $.

    $( A linear Hilbert space functional is a functional.  (Contributed by NM,
       25-Apr-2006.)  (New usage is discouraged.) $)
    lnfnf $p |- ( T e. LinFn -> T : ~H --> CC ) $=
      ( vx vy vz clf wcel chil cc wf cv csm cva cfv cmul caddc wceq wral ellnfn
      co simplbi ) AEFGHAIBJZCJZKSDJZLSAMUAUBAMNSUCAMOSPDGQCGQBHQBCDART $.

    $( Alternate definition of the adjoint of a Hilbert space operator.
       (Contributed by NM, 20-Feb-2006.)  (New usage is discouraged.) $)
    dfadj2 $p |- adjh = { <. t , u >. | ( t : ~H --> ~H /\ u : ~H --> ~H /\
         A. x e. ~H A. y e. ~H ( x .ih ( t ` y ) ) = ( ( u ` x ) .ih y ) ) } $=
      ( cado chil cv wf cfv csp co wceq wral w3a copab df-adjh wa adjsym df-3an
      eqcom 2ralbii syl6rbbr pm5.32i 3bitr4i opabbii eqtri ) EFFDGZHZFFCGZHZAGZ
      UGIBGZJKZUKULUIIJKZLZBFMAFMZNZDCOUHUJUKULUGIJKUKUIIULJKLBFMAFMZNZDCOABCDP
      UQUSDCUHUJQZUPQUTURQUQUSUTUPURUTURUNUMLZBFMAFMUPABUGUIRUOVAABFFUMUNTUAUBU
      CUHUJUPSUHUJURSUDUEUF $.

    $( Functionality of the adjoint function.  (Contributed by NM,
       15-Feb-2006.)  (New usage is discouraged.) $)
    funadj $p |- Fun adjh $=
      ( vt vu vx vy cado wfun chil cv wf cfv csp co wceq wral w3a copab funopab
      wmo wa adjmo 3simpc moimi ax-mp mpgbir dfadj2 funeqi mpbir ) EFGGAHZIZGGB
      HZIZCHZDHZUHJKLULUJJUMKLMDGNCGNZOZABPZFZUQUOBRZAUOABQUKUNSZBRURCDBUHTUOUS
      BUIUKUNUAUBUCUDEUPCDBAUEUFUG $.

    $( The domain of the adjoint function is a subset of the maps from ` ~H `
       to ` ~H ` .  (Contributed by NM, 15-Feb-2006.)
       (New usage is discouraged.) $)
    dmadjss $p |- dom adjh C_ ( ~H ^m ~H ) $=
      ( vt vu vx vy cado cdm cv chil cmap co wcel wf cfv csp wceq wral wa copab
      w3a ax-hilex dfadj2 3anass elmap anbi1i bitr4i opabbii dmopabss eqsstri
      eqtri dmeqi ) EFAGZHHIJZKZHHBGZLZCGZDGZUKMNJUPUNMUQNJODHPCHPZQZQZABRZFULE
      VAEHHUKLZUOURSZABRVACDBAUAVCUTABVCVBUSQUTVBUOURUBUMVBUSHHUKTTUCUDUEUFUIUJ
      USABULUGUH $.

    $( A member of the domain of the adjoint function is a Hilbert space
       operator.  (Contributed by NM, 15-Feb-2006.)
       (New usage is discouraged.) $)
    dmadjop $p |- ( T e. dom adjh -> T : ~H --> ~H ) $=
      ( cado cdm wcel chil cmap co wf dmadjss sseli ax-hilex elmap sylib ) ABCZ
      DAEEFGZDEEAHNOAIJEEAKKLM $.

    $( Elementhood in the domain of the adjoint function.  (Contributed by
       Mario Carneiro, 11-Sep-2015.)  (Revised by Mario Carneiro, 24-Dec-2016.)
       (New usage is discouraged.) $)
    adjeu $p |- ( T : ~H --> ~H -> ( T e. dom adjh <-> E! u e. ( ~H ^m ~H )
       A. x e. ~H A. y e. ~H ( x .ih ( T ` y ) ) = ( ( u ` x ) .ih y ) ) ) $=
      ( vt chil wf cado cdm wcel cv cfv csp co wceq wral wa wex cvv ax-hilex wb
      cmap wreu fex2 mp3an23 feq1 oveq2d eqeq1d 2ralbidv 3anbi13d 3anass syl6bb
      w3a fveq1 exbidv 19.42v copab cab dfadj2 dmeqi dmopab eqtri baibd mpancom
      elab2g weu df-reu elmap anbi1i eubii wmo adjmo mpbiran2 3bitri syl6bbr
      eu5 ) FFDGZDHIZJZFFCKZGZAKZBKZDLZMNZWBVTLWCMNZOZBFPAFPZQZCRZWHCFFUBNZUCZD
      SJZVQVSWJUAVQFSJZWNWMTTFFDSSUDUEWMVSVQWJFFEKZGZWAWBWCWOLZMNZWFOZBFPAFPZUM
      ZCRZVQWJQZEDVRSWODOZXBVQWIQZCRXCXDXAXECXDXAVQWAWHUMXEXDWPVQWTWHWAFFWODUFX
      DWSWGABFFXDWRWEWFXDWQWDWBMWCWODUNUGUHUIUJVQWAWHUKULUOVQWICUPULVRXAECUQZIX
      BEURHXFABCEUSUTXAECVAVBVEVCVDWLVTWKJZWHQZCVFWICVFZWJWHCWKVGXHWICXGWAWHFFV
      TTTVHVIVJXIWJWICVKABCDVLWICVPVMVNVO $.

    $( Value of the adjoint function for ` T ` in the domain of ` adjh ` .
       (Contributed by NM, 19-Feb-2006.)  (Revised by Mario Carneiro,
       24-Dec-2016.)  (New usage is discouraged.) $)
    adjval $p |- ( T e. dom adjh -> ( adjh ` T ) = ( iota_ u e. ( ~H ^m ~H )
       A. x e. ~H A. y e. ~H ( x .ih ( T ` y ) ) = ( ( u ` x ) .ih y ) ) ) $=
      ( vt cado cdm wcel cv chil co cfv csp wceq wral wa cio wf w3a ax-hilex
      cmap crio dmadjop biantrurd elmap anbi1i 3anass 3bitr4g iotabidv df-riota
      a1i dfadj2 feq1 fveq1 oveq2d eqeq1d 2ralbidv 3anbi13d fvopab5 3eqtr4rd )
      DFGZHZCIZJJUAKZHZAIZBIZDLZMKZVFVCLVGMKZNZBJOAJOZPZCQZJJDRZJJVCRZVLSZCQVLC
      VDUBZDFLVBVMVQCVBVPVLPZVOVSPVMVQVBVOVSDUCUDVEVPVLJJVCTTUEUFVOVPVLUGUHUIVR
      VNNVBVLCVDUJUKJJEIZRZVPVFVGVTLZMKZVJNZBJOAJOZSVQECDFVAABCEULVTDNZWAVOWEVL
      VPJJVTDUMWFWDVKABJJWFWCVIVJWFWBVHVFMVGVTDUNUOUPUQURUSUT $.

    $( Value of the adjoint function.  (Contributed by NM, 19-Feb-2006.)
       (New usage is discouraged.) $)
    adjval2 $p |- ( T e. dom adjh -> ( adjh ` T ) = ( iota_ u e. ( ~H ^m ~H )
      A. x e. ~H A. y e. ~H ( ( T ` x ) .ih y ) = ( x .ih ( u ` y ) ) ) ) $=
      ( cado cdm wcel cfv cv csp co wceq chil wral cmap crio adjval wf dmadjop
      wb elmapi wa adjsym eqcom 2ralbii syl6bb syl2an riotabidva eqtrd ) DEFGZD
      EHAIZBIZDHJKUKCIZHULJKLBMNAMNZCMMOKZPUKDHULJKZUKULUMHJKZLZBMNAMNZCUOPABCD
      QUJUNUSCUOUJMMDRZMMUMRZUNUSTUMUOGDSUMMMUAUTVAUBUNUQUPLZBMNAMNUSABDUMUCVBU
      RABMMUQUPUDUEUFUGUHUI $.

    $( The adjoint function equals its converse.  (Contributed by NM,
       15-Feb-2006.)  (New usage is discouraged.) $)
    cnvadj $p |- `' adjh = adjh $=
      ( vu vt vx vy chil cv wf cfv csp co wceq wral w3a copab ccnv cado wa wcel
      wb ccj cnvopab 3ancoma ffvelrn ax-his1 sylan adantrl adantll eqeq12d hicl
      sylan2 ancoms cc cj11 syl2anc bitr2d anassrs eqcom syl6bb ralbidva ralcom
      an4s pm5.32i df-3an 3bitr4i bitri opabbii eqtri dfadj2 cnveqi 3eqtr4i ) E
      EAFZGZEEBFZGZCFZDFZVKHZIJZVOVMHZVPIJZKZDELZCELZMZABNZOZVNVLVPVSIJZVQVOIJZ
      KZCELDELZMZBANZPOPWFWDBANWLWDABUAWDWKBAWDVNVLWCMZWKVLVNWCUBVNVLQZWCQWNWJQ
      WMWKWNWCWJWNWCWIDELZCELWJWNWBWOCEWNVOERZQZWAWIDEWQVPERZQWAWHWGKZWIWNWPWRW
      AWSSZVNWPVLWRWTVNWPQZVLWRQZQZWSVRTHZVTTHZKZWAXBXAWSXFSXBXAQWHXDWGXEXBWPWH
      XDKZVNXBVQERZWPXGEEVPVKUCZVQVOUDUEUFWRXAWGXEKZVLXAWRVSERZXJEEVOVMUCZVPVSU
      DUJUGUHUKXCVRULRZVTULRZXFWASWPXBXMVNXBWPXHXMXIVOVQUIUJUGXAWRXNVLXAXKWRXNX
      LVSVPUIUEUFVRVTUMUNUOVAUPWHWGUQURUSUSWICDEEUTURVBVNVLWCVCVNVLWJVCVDVEVFVG
      PWECDBAVHVIDCABVHVJ $.

    $( The converse of the adjoint function is a function.  (Contributed by NM,
       25-Jan-2006.)  (New usage is discouraged.) $)
    funcnvadj $p |- Fun `' adjh $=
      ( cado ccnv wfun funadj cnvadj funeqi mpbir ) ABZCACDHAEFG $.

    $( The adjoint function maps one-to-one onto its domain.  (Contributed by
       NM, 15-Feb-2006.)  (New usage is discouraged.) $)
    adj1o $p |- adjh : dom adjh -1-1-onto-> dom adjh $=
      ( cado cdm wf1o wfn ccnv wfun crn wceq funadj funfn mpbi funcnvadj cnvadj
      df-rn dmeqi eqtri dff1o2 mpbir3an ) ABZSACASDZAEZFAGZSHAFTIAJKLUBUABSANUA
      AMOPSSAQR $.

    $( The adjoint of an operator belongs to the adjoint function's domain.
       (Contributed by NM, 15-Feb-2006.)  (New usage is discouraged.) $)
    dmadjrn $p |- ( T e. dom adjh -> ( adjh ` T ) e. dom adjh ) $=
      ( cado cdm wf1o wf adj1o f1of ax-mp ffvelrni ) BCZJABJJBDJJBEFJJBGHI $.

    $( The set of eigenvectors of a Hilbert space operator.  (Contributed by
       NM, 11-Mar-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    eigvecval $p |- ( T : ~H --> ~H -> ( eigvec ` T ) =
           { x e. ( ~H \ 0H ) | E. y e. CC ( T ` x ) = ( y .h x ) } ) $=
      ( vt cv cfv csm wceq wrex chil c0h cdif crab cei cvv wcel ax-hilex difexg
      co cc ax-mp rabex fveq1 eqeq1d rexbidv rabbidv df-eigvec fvmptmap ) DCAEZ
      DEZFZBEUIGSZHZBTIZAJKLZMUICFZULHZBTIZAUOMJJNURAUOJOPUOOPQJKORUAUBQQUJCHZU
      NURAUOUSUMUQBTUSUKUPULUIUJCUCUDUEUFABDUGUH $.

    $( The eigenvalues of eigenvectors of a Hilbert space operator.
       (Contributed by NM, 11-Mar-2006.)  (New usage is discouraged.) $)
    eigvalfval $p |- ( T : ~H --> ~H -> ( eigval ` T ) = ( x e. ( eigvec ` T )
                    |-> ( ( ( T ` x ) .ih x ) / ( ( normh ` x ) ^ 2 ) ) ) ) $=
      ( vt cv cei cfv csp co cno c2 cexp cdiv cmpt chil cel fvex mptex ax-hilex
      wceq oveq1d fveq2 fveq1 mpteq12dv df-eigval fvmptmap ) CBACDZEFZADZUFFZUH
      GHZUHIFJKHZLHZMABEFZUHBFZUHGHZUKLHZMNNOAUMUPBEPQRRUFBSZAUGULUMUPUFBEUAUQU
      JUOUKLUQUIUNUHGUHUFBUBTTUCACUDUE $.

    $( The value of the spectrum of an operator.  (Contributed by NM,
       11-Apr-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    specval $p |- ( T : ~H --> ~H -> ( Lambda ` T ) = { x e. CC |
                   -. ( T -op ( x .op ( _I |` ~H ) ) ) : ~H -1-1-> ~H } ) $=
      ( vt chil cv cid cres chot co chod wf1 wn cc crab cspc cnex ax-hilex wceq
      rabex wb oveq1 f1eq1 syl notbid rabbidv df-spec fvmptmap ) CBDDCEZAEFDGHI
      ZJIZKZLZAMNDDBUIJIZKZLZAMNDDOUOAMPSQQUHBRZULUOAMUPUKUNUPUJUMRUKUNTUHBUIJU
      ADDUJUMUBUCUDUEACUFUG $.

    $( The spectrum of an operator is a set of complex numbers.  (Contributed
       by NM, 11-Apr-2006.)  (New usage is discouraged.) $)
    speccl $p |- ( T : ~H --> ~H -> ( Lambda ` T ) C_ CC ) $=
      ( vx chil wf cspc cfv cv cid cres chot co chod wf1 wn crab specval ssrab2
      cc syl6eqss ) CCADAEFCCABGHCIJKLKMNZBRORBAPTBRQS $.
  $}

  ${
    $d t x y z U $.
    hhlno.1 $e |- U = <. <. +h , .h >. , normh >. $.
    hhlno.2 $e |- L = ( U LnOp U ) $.
    $( The linear operators of Hilbert space.  (Contributed by NM,
       19-Nov-2007.)  (Revised by Mario Carneiro, 19-Nov-2013.)
       (New usage is discouraged.) $)
    hhlnoi $p |- LinOp = L $=
      ( vx vy vz vt clo cv csm co cva cfv wceq chil wral cc cmap crab wcel hhnv
      df-lnop cnv hhba hhva hhsm lnoval mp2an eqtr4i ) IEJZFJZKLGJZMLHJZNUKULUN
      NKLUMUNNMLOGPQFPQERQHPPSLTZBEFGHUCAUDUAZUPBUOOACUBZUQEFGHKKAMMBAPPACUEZUR
      ACUFZUSACUGZUTDUHUIUJ $.
  $}

  ${
    $d t x y U $.
    hhnmo.1 $e |- U = <. <. +h , .h >. , normh >. $.
    ${
      hhnmo.2 $e |- N = ( U normOpOLD U ) $.
      $( The norm of an operator in Hilbert space.  (Contributed by NM,
         19-Nov-2007.)  (Revised by Mario Carneiro, 17-Nov-2013.)
         (New usage is discouraged.) $)
      hhnmoi $p |- normop = N $=
        ( vt vy vx cnop chil cmap co cv cno cfv c1 cle wbr wceq wa wrex cab cxr
        clt csup cmpt df-nmop cnv wcel hhnv hhba hhnm nmoofval mp2an eqtr4i ) H
        EIIJKFLZMNOPQGLUOELNMNRSFITGUAUBUCUDUEZBGFEUFAUGUHZUQBUPRACUIZURGFEAMMB
        AIIACUJZUSACUKZUTDULUMUN $.
    $}

    ${
      hhblo.2 $e |- B = ( U BLnOp U ) $.
      $( A bounded linear operator in Hilbert space.  (Contributed by NM,
         19-Nov-2007.)  (Revised by Mario Carneiro, 19-Nov-2013.)
         (New usage is discouraged.) $)
      hhbloi $p |- BndLinOp = B $=
        ( vx cbo cv cnop cfv cpnf clt wbr clo crab df-bdop cnv wcel wceq eqid
        co hhnv cnmoo hhnmoi clno hhlnoi bloval mp2an eqtr4i ) FEGHIJKLEMNZAEOB
        PQZUJAUIRBCUAZUKEABMHBBBBUBTZCULSUCBBBUDTZCUMSUEDUFUGUH $.
    $}

    ${
      hh0o.2 $e |- Z = ( U 0op U ) $.
      $( The zero operator in Hilbert space.  (Contributed by NM, 7-Dec-2007.)
         (New usage is discouraged.) $)
      hh0oi $p |- 0hop = Z $=
        ( chil c0h cxp cba cfv cn0v csn ch0o hhba c0v df-ch0 hh0v sneqi xpeq12i
        eqtri eqid df0op2 cnv wcel wceq hhnv 0ofval mp2an 3eqtr4i ) EFGAHIZAJIZ
        KZGZLBEUIFUKACMFNKUKONUJACPQSRUAAUBUCZUMBULUDACUEZUNABAUIUJUITUJTDUFUGU
        H $.
    $}
  $}

  ${
    $d w x y z D $.  $d t w x y z J $.  $d t w x y z K $.
    hhcn.1 $e |- D = ( normh o. -h ) $.
    hhcn.2 $e |- J = ( MetOpen ` D ) $.
    $( The continuous operators of Hilbert space.  (Contributed by Mario
       Carneiro, 19-May-2014.)  (New usage is discouraged.) $)
    hhcno $p |- ContOp = ( J Cn J ) $=
      ( vw vx vz vt vy cv cmv co cno cfv clt chil wral crp wcel wa wi wrex cmap
      wbr crab cab ccop df-rab df-cnop wf wceq hilmetdval normsub eqtrd adantll
      ccn breq1d ffvelrn anim12dan syl anassrs imbi12d ralbidva rexbidv ralbidv
      pm5.32i cxmt wb hilxmet metcn mp2an ax-hilex elmap anbi1i 3bitr4i 3eqtr4i
      abbi2i ) EJZFJZKLMNZGJZOUDZVRHJZNZVSWCNZKLMNZIJZOUDZUAZEPQZGRUBZIRQZFPQZH
      PPUCLZUEWCWNSZWMTZHUFUGBBUPLZWMHWNUHFIGEHUIWPHWQPPWCUJZVSVRALZWAOUDZWEWDA
      LZWGOUDZUAZEPQZGRUBZIRQZFPQZTZWRWMTWCWQSZWPWRXGWMWRXFWLFPWRVSPSZTZXEWKIRX
      KXDWJGRXKXCWIEPXKVRPSZTZWTWBXBWHXMWSVTWAOXJXLWSVTUKWRXJXLTZWSVSVRKLMNVTVS
      VRACULVSVRUMUNUOUQXMXAWFWGOWRXJXLXAWFUKZWRXNTWEPSZWDPSZTZXOWRXJXPXLXQPPVS
      WCURPPVRWCURUSXRXAWEWDKLMNWFWEWDACULWEWDUMUNUTVAUQVBVCVDVEVCVFAPVGNSZXSXI
      XHVHACVIZXTFIGEAAWCBBPPDDVJVKWOWRWMPPWCVLVLVMVNVOVQVP $.

    hhcn.4 $e |- K = ( TopOpen ` CCfld ) $.
    $( The continuous functionals of Hilbert space.  (Contributed by Mario
       Carneiro, 19-May-2014.)  (New usage is discouraged.) $)
    hhcnf $p |- ContFn = ( J Cn K ) $=
      ( vw vx vz vt vy co cfv clt chil wral crp cc wcel wa cv cmv cno cmin cabs
      wbr wi wrex cmap crab cab ccnfn df-rab df-cnfn wf ccom hilmetdval normsub
      ccn wceq eqtrd adantll breq1d ffvelrn anim12dan eqid cnmetdval abssub syl
      anassrs imbi12d ralbidva rexbidv ralbidv pm5.32i cxmt wb cnxmet cnfldtopn
      hilxmet metcn mp2an cnex ax-hilex elmap anbi1i 3bitr4i abbi2i 3eqtr4i ) G
      UAZHUAZUBLUCMZIUAZNUFZWJJUAZMZWKWOMZUDLUEMZKUAZNUFZUGZGOPZIQUHZKQPZHOPZJR
      OUILZUJWOXFSZXETZJUKULBCUSLZXEJXFUMHKIGJUNXHJXIORWOUOZWKWJALZWMNUFZWQWPUE
      UDUPZLZWSNUFZUGZGOPZIQUHZKQPZHOPZTZXJXETWOXISZXHXJXTXEXJXSXDHOXJWKOSZTZXR
      XCKQYDXQXBIQYDXPXAGOYDWJOSZTZXLWNXOWTYFXKWLWMNYCYEXKWLUTXJYCYETZXKWKWJUBL
      UCMWLWKWJADUQWKWJURVAVBVCYFXNWRWSNXJYCYEXNWRUTZXJYGTWQRSZWPRSZTZYHXJYCYIY
      EYJORWKWOVDORWJWOVDVEYKXNWQWPUDLUEMWRWQWPXMXMVFVGWQWPVHVAVIVJVCVKVLVMVNVL
      VOAOVPMSXMRVPMSYBYAVQADVTVRHKIGAXMWOBCORECFVSWAWBXGXJXEROWOWCWDWEWFWGWHWI
      $.
  $}

  $( The adjoint of an operator belongs to the adjoint function's domain.
     (Note: the converse is dependent on our definition of function value,
     since it uses ~ ndmfv .)  (Contributed by NM, 19-Feb-2006.)
     (New usage is discouraged.) $)
  dmadjrnb $p |- ( T e. dom adjh <-> ( adjh ` T ) e. dom adjh ) $=
    ( cado cdm wcel cfv dmadjrn wn c0 chil wf wceq c0v ax-hv0cl eqcom mtbir dm0
    n0ii eqeq1i fdm mto dmadjop ndmfv eleq1d mtbiri con4i impbii ) ABCZDZABEZUG
    DZAFUHUJUHGZUJHUGDZULIIHJZUMHCZIKZUOHIKZUPIHKLIMQHINOUNHIPROIIHSTHUATUKUIHU
    GABUBUCUDUEUF $.

  ${
    $d w x y z A $.  $d w x y z B $.  $d x y z C $.  $d w x y z S $.
    $d x y z w T $.
    $( A lower bound for an operator norm.  (Contributed by NM, 7-Feb-2006.)
       (New usage is discouraged.) $)
    nmoplb $p |- ( ( T : ~H --> ~H /\ A e. ~H /\ ( normh ` A ) <_ 1 ) ->
                  ( normh ` ( T ` A ) ) <_ ( normop ` T ) ) $=
      ( vy vx chil wf wcel cno cfv c1 cle wbr w3a cv wceq wa cxr 3ad2ant1 fveq2
      wrex cab clt csup wss cr nmopsetretHIL ressxr syl6ss breq1d fveq2d eqeq2d
      cnop anbi12d eqid biantru syl6bbr rspcev fvex eqeq1 anbi2d rexbidv sylibr
      elab 3adant1 supxrub syl2anc nmopval breqtrrd ) EEBFZAEGZAHIZJKLZMZABIZHI
      ZCNZHIZJKLZDNZVPBIZHIZOZPZCETZDUAZQUBUCZBULIZKVMWEQUDZVOWEGZVOWFKLVIVJWHV
      LVIWEUEQDCBUFUGUHRVJVLWIVIVJVLPVRVOWAOZPZCETZWIWKVLCAEVPAOZWKVLVOVOOZPVLW
      MVRVLWJWNWMVQVKJKVPAHSUIWMWAVOVOWMVTVNHVPABSUJUKUMWNVLVOUNUOUPUQWDWLDVOVN
      HURVSVOOZWCWKCEWOWBWJVRVSVOWAUSUTVAVCVBVDWEVOVEVFVIVJWGWFOVLDCBVGRVH $.

    $( An upper bound for an operator norm.  (Contributed by NM, 7-Mar-2006.)
       (New usage is discouraged.) $)
    nmopub $p |- ( ( T : ~H --> ~H /\ A e. RR* ) -> ( ( normop ` T ) <_ A <->
      A. x e. ~H ( ( normh ` x ) <_ 1 -> ( normh ` ( T ` x ) ) <_ A ) ) ) $=
      ( vy vz chil wf cxr wa cfv cle wbr cv cno wceq wrex wi wral wal albii cab
      wcel cnop c1 clt nmopval adantr breq1d wss wb nmopsetretALT ressxr syl6ss
      cr supxrleub sylan ancom eqeq1 anbi1d syl5bb rexbidv ralab ralcom4 impexp
      csup fvex breq1 imbi2d ceqsalv bitri ralbii r19.23v 3bitr3i bitr4i syl6bb
      bitrd ) FFCGZBHUBZIZCUCJZBKLAMZNJUDKLZDMZWACJZNJZOZIZAFPZDUAZHUEVEZBKLZWB
      WEBKLZQZAFRZVSVTWJBKVQVTWJOVRDACUFUGUHVSWKEMZBKLZEWIRZWNVQWIHUIVRWKWQUJVQ
      WIUNHDACUKULUMEWIBUOUPWQWOWEOZWBIZAFPZWPQZESZWNWHWTWPEDWCWOOZWGWSAFWGWFWB
      IXCWSWBWFUQXCWFWRWBWCWOWEURUSUTVAVBWSWPQZESZAFRXDAFRZESWNXBXDAEFVCXEWMAFX
      EWRWBWPQZQZESWMXDXHEWRWBWPVDTXGWMEWEWDNVFWRWPWLWBWOWEBKVGVHVIVJVKXFXAEWSW
      PAFVLTVMVNVOVP $.

    $( An upper bound for an operator norm.  (Contributed by NM, 12-Apr-2006.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    nmopub2tALT $p |- ( ( T : ~H --> ~H /\ ( A e. RR /\ 0 <_ A ) /\ A. x e. ~H
  ( normh ` ( T ` x ) ) <_ ( A x. ( normh ` x ) ) ) -> ( normop ` T ) <_ A ) $=
      ( chil cr wcel cle wbr wa cfv cno cmul co wral c1 wi normcl sylan2 adantr
      adantlr wf cc0 cv cnop ad2antlr simpllr 1re lemul2a mp3anl2 syl21anc wceq
      ax-1rid ad2antrl ad2antrr breqtrd ffvelrn remulcl adantll simplrl syl3anc
      simpr syl letr mpan2d ex com23 ralimdva imp wb rexr nmopub biimpar syldan
      cxr 3impa ) DDCUAZBEFZUBBGHZIZAUCZCJZKJZBVTKJZLMZGHZADNZCUDJBGHZVPVSIZWFW
      COGHZWBBGHZPZADNZWGWHWFWLWHWEWKADWHVTDFZIZWIWEWJWNWIWEWJPWNWIIZWEWDBGHZWJ
      WOWDBOLMZBGWOWCEFZVSWIWDWQGHZWMWRWHWIVTQZUEVPVSWMWIUFWNWIVAWROEFVSWIWSUGW
      COBUHUIUJWHWQBUKZWMWIVQXAVPVRBULUMUNUOWNWEWPIWJPZWIWNWBEFZWDEFZVQXBVPWMXC
      VSVPWMIWADFXCDDVTCUPWAQVBTVSWMXDVPVQWMXDVRWMVQWRXDWTBWCUQRTURVPVQVRWMUSWB
      WDBVCUTSVDVEVFVGVHWHWGWLVSVPBVNFZWGWLVIVQXEVRBVJSABCVKRVLVMVO $.

    $( An upper bound for an operator norm.  (Contributed by NM, 13-Dec-2007.)
       (New usage is discouraged.) $)
    nmopub2tHIL $p |- ( ( T : ~H --> ~H /\ ( A e. RR /\ 0 <_ A ) /\ A. x e. ~H
  ( normh ` ( T ` x ) ) <_ ( A x. ( normh ` x ) ) ) -> ( normop ` T ) <_ A ) $=
      ( cva csm cop cno cnop chil df-hba eqid hhnm cnmoo co hhnmoi hhnv nmoub2i
      ) ABCDEFGFZGGHRIIJJRRKZLZTRRRMNZSUAKORSPZUBQ $.

    $( The norm of any Hilbert space operator is nonnegative.  (Contributed by
       NM, 9-Feb-2006.)  (New usage is discouraged.) $)
    nmopge0 $p |- ( T : ~H --> ~H -> 0 <_ ( normop ` T ) ) $=
      ( chil wf cc0 c0v cfv cno cle wbr cnop ax-hv0cl ffvelrn mpan2 normge0 syl
      wcel c1 norm0 0le1 cxr eqbrtri nmoplb wa wi cr normcl rexrd nmopxr xrletr
      mp3an23 0xr mp3an1 syl2anc mp2and ) BBACZDEAFZGFZHIZUQAJFZHIZDUSHIZUOUPBP
      ZURUOEBPZVBKBBEALMZUPNOUOVCEGFZQHIUTKVEDQHRSUAEAUBUJUOUQTPZUSTPZURUTUCVAU
      DZUOUQUOVBUQUEPVDUPUFOUGAUHDTPVFVGVHUKDUQUSUIULUMUN $.

    $( A linear Hilbert space operator that is not identically zero has a
       positive norm.  (Contributed by NM, 9-Feb-2006.)
       (New usage is discouraged.) $)
    nmopgt0 $p |- ( T : ~H --> ~H ->
                  ( ( normop ` T ) =/= 0 <-> 0 < ( normop ` T ) ) ) $=
      ( chil wf cc0 cnop cfv clt wbr wne cxr cle wb nmopxr nmopge0 0xr xrleltne
      wcel mp3an1 syl2anc bicomd ) BBACZDAEFZGHZUBDIZUAUBJQZDUBKHZUCUDLZAMANDJQ
      UEUFUGODUBPRST $.

    $( Basic continuity property of a continuous Hilbert space operator.
       (Contributed by NM, 2-Feb-2006.)  (Revised by Mario Carneiro,
       16-Nov-2013.)  (New usage is discouraged.) $)
    cnopc $p |- ( ( T e. ContOp /\ A e. ~H /\ B e. RR+ ) ->
               E. x e. RR+ A. y e. ~H ( ( normh ` ( y -h A ) ) < x ->
               ( normh ` ( ( T ` y ) -h ( T ` A ) ) ) < B ) ) $=
      ( vz vw wcel chil crp cv cmv co cno cfv clt wbr wi wral wrex wa wf elcnop
      simprbi oveq2 fveq2d breq1d fveq2 oveq2d imbi12d rexralbidv imbi2d rspc2v
      ccop wceq breq2 syl5com 3impib ) EUNHZCIHZDJHZBKZCLMZNOZAKZPQZVBEOZCEOZLM
      ZNOZDPQZRZBISAJTZUSVBFKZLMZNOZVEPQZVGVNEOZLMZNOZGKZPQZRZBISAJTZGJSFISZUTV
      AUAVMUSIIEUBWEFGABEUCUDWDVMVFVJWAPQZRZBISAJTFGCDIJVNCUOZWCWGABJIWHVQVFWBW
      FWHVPVDVEPWHVOVCNVNCVBLUEUFUGWHVTVJWAPWHVSVINWHVRVHVGLVNCEUHUIUFUGUJUKWAD
      UOZWGVLABJIWIWFVKVFWADVJPUPULUKUMUQUR $.

    $( Basic linearity property of a linear Hilbert space operator.
       (Contributed by NM, 22-Jan-2006.)  (New usage is discouraged.) $)
    lnopl $p |- ( ( ( T e. LinOp /\ A e. CC ) /\ ( B e. ~H /\ C e. ~H ) ) ->
         ( T ` ( ( A .h B ) +h C ) ) = ( ( A .h ( T ` B ) ) +h ( T ` C ) ) ) $=
      ( vx vy vz wcel cc chil csm co cva cfv wceq cv wral oveq1d fveq2d eqeq12d
      clo wa wi w3a ellnop simprbi oveq1 oveq2 fveq2 oveq2d rspc3v 3expb impcom
      wf syl5 anassrs ) DUAHZAIHZBJHZCJHZUBZABKLZCMLZDNZABDNZKLZCDNZMLZOZURVAUB
      UQVIURUSUTUQVIUCUQEPZFPZKLZGPZMLZDNZVJVKDNZKLZVMDNZMLZOZGJQFJQEIQZURUSUTU
      DVIUQJJDUNWAEFGDUEUFVTVIAVKKLZVMMLZDNZAVPKLZVRMLZOVBVMMLZDNZVFVRMLZOEFGAB
      CIJJVJAOZVOWDVSWFWJVNWCDWJVLWBVMMVJAVKKUGRSWJVQWEVRMVJAVPKUGRTVKBOZWDWHWF
      WIWKWCWGDWKWBVBVMMVKBAKUHRSWKWEVFVRMWKVPVEAKVKBDUIUJRTVMCOZWHVDWIVHWLWGVC
      DVMCVBMUHSWLVRVGVFMVMCDUIUJTUKUOULUMUP $.

    $( Basic inner product property of a unitary operator.  (Contributed by NM,
       22-Jan-2006.)  (New usage is discouraged.) $)
    unop $p |- ( ( T e. UniOp /\ A e. ~H /\ B e. ~H ) ->
                ( ( T ` A ) .ih ( T ` B ) ) = ( A .ih B ) ) $=
      ( vx vy cuo wcel chil w3a cv cfv csp wceq wral wfo elunop simprbi eqeq12d
      co fveq2 3ad2ant1 wi oveq1d oveq1 oveq2d oveq2 rspc2v 3adant1 mpd ) CFGZA
      HGZBHGZIDJZCKZEJZCKZLSZUMUOLSZMZEHNDHNZACKZBCKZLSZABLSZMZUJUKUTULUJHHCOUT
      DECPQUAUKULUTVEUBUJUSVEVAUPLSZAUOLSZMDEABHHUMAMZUQVFURVGVHUNVAUPLUMACTUCU
      MAUOLUDRUOBMZVFVCVGVDVIUPVBVALUOBCTUEUOBALUFRUGUHUI $.

    $( A unitary operator in Hilbert space is one-to-one and onto.
       (Contributed by NM, 22-Jan-2006.)  (New usage is discouraged.) $)
    unopf1o $p |- ( T e. UniOp -> T : ~H -1-1-onto-> ~H ) $=
      ( vx vy wcel chil cv cfv wceq wral csp co syl cmv caddc cmin unop oveq12d
      wa cc0 wb cuo wf1 wfo wf1o wf elunop simplbi fof 3anidm23 3adant3 3adant2
      wi 3com23 3expb ffvelrn anim12dan sylan normlem9at adantl 3eqtr4rd eqeq1d
      w3a hvsubcl his6 hvsubeq0 bitrd 3bitr3rd biimpd ralrimivva dff13 sylanbrc
      c0v df-f1o ) AUADZEEAUBZEEAUCZEEAUDVNEEAUEZBFZAGZCFZAGZHZVRVTHZULZCEIBEIV
      OVNVPVQVNVPVSWAJKZVRVTJKZHCEIBEIBCAUFUGZEEAUHLZVNWDBCEEVNVREDZVTEDZRZRZWB
      WCWLVRVTMKZWMJKZSHZVSWAMKZWPJKZSHZWCWBWLWNWQSWLVSVSJKZWAWAJKZNKZWEWAVSJKZ
      NKZOKZVRVRJKZVTVTJKZNKZWFVTVRJKZNKZOKZWQWNVNWIWJXDXJHVNWIWJVBZXAXGXCXIOXK
      WSXEWTXFNVNWIWSXEHZWJVNWIXLVRVRAPUIUJVNWJWTXFHZWIVNWJXMVTVTAPUIUKQXKWEWFX
      BXHNVRVTAPVNWJWIXBXHHVTVRAPUMQQUNWLVSEDZWAEDZRZWQXDHVNVQWKXPWHVQWIXNWJXOE
      EVRAUOEEVTAUOUPUQZVSWAURLWKWNXJHVNVRVTURUSUTVAWKWOWCTVNWKWOWMVLHZWCWKWMED
      WOXRTVRVTVCWMVDLVRVTVEVFUSWLXPWRWBTXQXPWRWPVLHZWBXPWPEDWRXSTVSWAVCWPVDLVS
      WAVEVFLVGVHVIBCEEAVJVKWGEEAVMVK $.

    $( A unitary operator is idempotent in the norm.  (Contributed by NM,
       25-Feb-2006.)  (New usage is discouraged.) $)
    unopnorm $p |- ( ( T e. UniOp /\ A e. ~H ) ->
                ( normh ` ( T ` A ) ) = ( normh ` A ) ) $=
      ( wcel chil cfv cno cr syl normcl adantl cc0 cle wbr normge0 co cexp wceq
      csp c2 normsq cuo wa wf1o wf unopf1o f1of ffvelrnda unop 3anidm23 3eqtr4d
      sq11d ) BUACZADCZUBZABEZFEZAFEZUNUODCZUPGCULDDABULDDBUCDDBUDBUEDDBUFHUGZU
      OIHUMUQGCULAIJUNURKUPLMUSUONHUMKUQLMULANJUNUOUOROZAAROZUPSPOZUQSPOZULUMUT
      VAQAABUHUIUNURVBUTQUSUOTHUMVCVAQULATJUJUK $.

    $( The inverse (converse) of a unitary operator in Hilbert space is
       unitary.  Theorem in [AkhiezerGlazman] p. 72.  (Contributed by NM,
       22-Jan-2006.)  (New usage is discouraged.) $)
    cnvunop $p |- ( T e. UniOp -> `' T e. UniOp ) $=
      ( vx vy cuo wcel chil ccnv cv cfv csp co wceq wral wf1o ffvelrnda adantrr
      syl wa adantrl f1ocnvfv2 wfo unopf1o f1ocnv f1ofo wf unop syl3anc oveq12d
      simpl fof sylan eqtr3d ralrimivva elunop sylanbrc ) ADEZFFAGZUAZBHZUQIZCH
      ZUQIZJKZUSVAJKZLZCFMBFMUQDEUPFFANZURAUBZVFFFUQNURFFAUCFFUQUDQQZUPVEBCFFUP
      USFEZVAFEZRZRZUTAIZVBAIZJKZVCVDVLUPUTFEZVBFEZVOVCLUPVKUIUPVIVPVJUPFFUSUQU
      PURFFUQUEVHFFUQUJQZOPUPVJVQVIUPFFVAUQVROSUTVBAUFUGUPVFVKVOVDLVGVFVKRVMUSV
      NVAJVFVIVMUSLVJFFUSATPVFVJVNVALVIFFVAATSUHUKULUMBCUQUNUO $.

    $( The inverse (converse) of a unitary operator is its adjoint.  Equation 2
       of [AkhiezerGlazman] p. 72.  (Contributed by NM, 22-Jan-2006.)
       (New usage is discouraged.) $)
    unopadj $p |- ( ( T e. UniOp /\ A e. ~H /\ B e. ~H ) ->
                  ( ( T ` A ) .ih B ) = ( A .ih ( `' T ` B ) ) ) $=
      ( cuo wcel chil w3a cfv ccnv co wceq wf1o unopf1o f1ocnvfv2 sylan 3adant2
      csp oveq2d wf f1ocnv f1of 3syl ffvelrnda unop syld3an3 eqtr3d ) CDEZAFEZB
      FEZGZACHZBCIZHZCHZQJZUKBQJAUMQJZUJUNBUKQUGUIUNBKZUHUGFFCLZUIUQCMZFFBCNOPR
      UGUHUIUMFEZUOUPKUGUIUTUHUGFFBULUGURFFULLFFULSUSFFCTFFULUAUBUCPAUMCUDUEUF
      $.

    $( A unitary operator is linear.  Theorem in [AkhiezerGlazman] p. 72.
       (Contributed by NM, 22-Jan-2006.)  (New usage is discouraged.) $)
    unoplin $p |- ( T e. UniOp -> T e. LinOp ) $=
      ( vx vy vz vw wcel chil cv co cfv wceq wral cc wa csp cmul adantr unopadj
      caddc ad2antrr cuo csm cva clo wf1o unopf1o f1of syl ccnv simplll hvmulcl
      hvaddcl sylan adantll syl3anc simprl simprr simplr cnvunop 3syl ffvelrnda
      wf simpr adantlr adantllr hiassdi syl22anc adantrl 3expa adantlrl oveq12d
      oveq2d eqtr2d 3eqtrd ralrimiva wb ffvelrn anassrs syl2anc hial2eq sylanl1
      sylan2 an12s mpbid ralrimivva ellnop sylanbrc ) AUAFZGGAVBZBHZCHZUBIZDHZU
      CIZAJZWJWKAJZUBIZWMAJZUCIZKZDGLZCGLBMLAUDFWHGGAUEWIAUFGGAUGUHZWHXABCMGWHW
      JMFZWKGFZNZNZWTDGXFWMGFZNZWOEHZOIZWSXIOIZKZEGLZWTXHXLEGXHXIGFZNZXJWNXIAUI
      ZJZOIZWJWKXQOIZPIZWMXQOIZSIZXKXOWHWNGFZXNXJXRKWHXEXGXNUJXHYCXNXEXGYCWHXEW
      LGFXGYCWJWKUKWLWMULUMZUNQXHXNVCZWNXIARUOXOXCXDXGXQGFZXRYBKXFXCXGXNWHXCXDU
      PTZXFXDXGXNWHXCXDUQTXFXGXNURWHXGXNYFXEWHXNYFXGWHGGXIXPWHXPUAFGGXPUEGGXPVB
      AUSXPUFGGXPUGUTVAVDVEWJWKWMXQVFVGXOXKWJWPXIOIZPIZWRXIOIZSIZYBXOXCWPGFZWRG
      FZXNXKYKKYGXFYLXGXNWHXDYLXCWHGGWKAXBVAVHTWHXGXNYMXEWHXGNYMXNWHGGWMAXBVAQV
      EYEWJWPWRXIVFVGXOYIXTYJYASXFXNYIXTKZXGWHXDXNYNXCWHXDNXNNYHXSWJPWHXDXNYHXS
      KWKXIARVIVLVJVDWHXGXNYJYAKZXEWHXGXNYOWMXIARVIVEVKVMVNVOWHWIXEXGXMWTVPZXBW
      IXENZXGNZWOGFZWSGFZYPWIXEXGYSXEXGNWIYCYSYDGGWNAVQWBVRYRWQGFZYMYTYQUUAXGXC
      WIXDUUAWIXDNXCYLUUAGGWKAVQWJWPUKWBWCQWIXGYMXEGGWMAVQVDWQWRULVSEWOWSVTVSWA
      WDVOWEBCDAWFWG $.

    $( The composition of two unitary operators is unitary.  (Contributed by
       NM, 22-Jan-2006.)  (New usage is discouraged.) $)
    counop $p |- ( ( S e. UniOp /\ T e. UniOp ) -> ( S o. T ) e. UniOp ) $=
      ( vx vy cuo wcel wa chil cv cfv csp co wceq wral unopf1o syl2an syl fvco3
      wf1o ffvelrn ccom wfo f1oco f1ofo wf adantl simpl simpr oveq12d anim12dan
      f1of sylan 3expb sylan2 anassrs adantll 3eqtrd ralrimivva elunop sylanbrc
      unop ) AEFZBEFZGZHHABUAZUBZCIZVEJZDIZVEJZKLZVGVIKLZMZDHNCHNVEEFVDHHVESZVF
      VBHHASHHBSZVNVCAOBOZHHHABUCPHHVEUDQVDVMCDHHVDVGHFZVIHFZGZGZVKVGBJZAJZVIBJ
      ZAJZKLZWAWCKLZVLVTVHWBVJWDKVDHHBUEZVQVHWBMVSVCWGVBVCVOWGVPHHBUKQZUFZVQVRU
      GHHVGABRPVDWGVRVJWDMVSWIVQVRUHHHVIABRPUIVBVCVSWEWFMZVCVSGVBWAHFZWCHFZGZWJ
      VCWGVSWMWHWGVQWKVRWLHHVGBTHHVIBTUJULVBWKWLWJWAWCAVAUMUNUOVCVSWFVLMZVBVCVQ
      VRWNVGVIBVAUMUPUQURCDVEUSUT $.

    $( Basic inner product property of a Hermitian operator.  (Contributed by
       NM, 19-Mar-2006.)  (New usage is discouraged.) $)
    hmop $p |- ( ( T e. HrmOp /\ A e. ~H /\ B e. ~H ) ->
                ( A .ih ( T ` B ) ) = ( ( T ` A ) .ih B ) ) $=
      ( vx vy cho wcel chil w3a cv cfv csp co wceq wral wf elhmop simprbi fveq2
      eqeq12d 3ad2ant1 wi oveq1 oveq1d oveq2d oveq2 rspc2v 3adant1 mpd ) CFGZAH
      GZBHGZIDJZEJZCKZLMZUMCKZUNLMZNZEHODHOZABCKZLMZACKZBLMZNZUJUKUTULUJHHCPUTD
      ECQRUAUKULUTVEUBUJUSVEAUOLMZVCUNLMZNDEABHHUMANZUPVFURVGUMAUOLUCVHUQVCUNLU
      MACSUDTUNBNZVFVBVGVDVIUOVAALUNBCSUEUNBVCLUFTUGUHUI $.

    $( The inner product of the value and argument of a Hermitian operator is
       real.  (Contributed by NM, 23-Jul-2006.)  (New usage is discouraged.) $)
    hmopre $p |- ( ( T e. HrmOp /\ A e. ~H ) -> ( ( T ` A ) .ih A ) e. RR ) $=
      ( cho wcel chil wa cfv co cr wceq hmop 3anidm23 eqcomd wb hmopf ffvelrnda
      csp hire sylancom mpbird ) BCDZAEDZFZABGZAQHZIDZUEAUDQHZJZUCUGUEUAUBUGUEJ
      AABKLMUAUBUDEDUFUHNUAEEABBOPUDARST $.

    $( A lower bound for a functional norm.  (Contributed by NM, 14-Feb-2006.)
       (New usage is discouraged.) $)
    nmfnlb $p |- ( ( T : ~H --> CC /\ A e. ~H /\ ( normh ` A ) <_ 1 ) ->
                  ( abs ` ( T ` A ) ) <_ ( normfn ` T ) ) $=
      ( vy vx chil cc wcel cno cfv c1 cle wbr cabs cv wceq wa wrex cxr 3ad2ant1
      fveq2 wf w3a cab clt csup cr nmfnsetre ressxr syl6ss breq1d fveq2d eqeq2d
      cnmf anbi12d eqid biantru syl6bbr rspcev fvex eqeq1 anbi2d rexbidv sylibr
      wss elab 3adant1 supxrub syl2anc nmfnval breqtrrd ) EFBUAZAEGZAHIZJKLZUBZ
      ABIZMIZCNZHIZJKLZDNZVRBIZMIZOZPZCEQZDUCZRUDUEZBUMIZKVOWGRVDZVQWGGZVQWHKLV
      KVLWJVNVKWGUFRDCBUGUHUISVLVNWKVKVLVNPVTVQWCOZPZCEQZWKWMVNCAEVRAOZWMVNVQVQ
      OZPVNWOVTVNWLWPWOVSVMJKVRAHTUJWOWCVQVQWOWBVPMVRABTUKULUNWPVNVQUOUPUQURWFW
      NDVQVPMUSWAVQOZWEWMCEWQWDWLVTWAVQWCUTVAVBVEVCVFWGVQVGVHVKVLWIWHOVNDCBVISV
      J $.

    $( An upper bound for the norm of a functional.  (Contributed by NM,
       24-May-2006.)  (Revised by Mario Carneiro, 7-Sep-2014.)
       (New usage is discouraged.) $)
    nmfnleub $p |- ( ( T : ~H --> CC /\ A e. RR* ) -> ( ( normfn ` T ) <_ A <->
      A. x e. ~H ( ( normh ` x ) <_ 1 -> ( abs ` ( T ` x ) ) <_ A ) ) ) $=
      ( vy vz chil cc cxr wa cfv cle wbr cv cabs wceq wrex wi wral wal albii wf
      wcel cnmf cno c1 cab clt nmfnval adantr breq1d wss wb cr nmfnsetre ressxr
      csup syl6ss supxrleub sylan ancom eqeq1 anbi1d rexbidv ralab ralcom4 fvex
      syl5bb impexp breq1 imbi2d ceqsalv ralbii r19.23v 3bitr3i bitr4i syl6bb
      bitri bitrd ) FGCUAZBHUBZIZCUCJZBKLAMZUDJUEKLZDMZWCCJZNJZOZIZAFPZDUFZHUGU
      PZBKLZWDWGBKLZQZAFRZWAWBWLBKVSWBWLOVTDACUHUIUJWAWMEMZBKLZEWKRZWPVSWKHUKVT
      WMWSULVSWKUMHDACUNUOUQEWKBURUSWSWQWGOZWDIZAFPZWRQZESZWPWJXBWREDWEWQOZWIXA
      AFWIWHWDIXEXAWDWHUTXEWHWTWDWEWQWGVAVBVGVCVDXAWRQZESZAFRXFAFRZESWPXDXFAEFV
      EXGWOAFXGWTWDWRQZQZESWOXFXJEWTWDWRVHTXIWOEWGWFNVFWTWRWNWDWQWGBKVIVJVKVQVL
      XHXCEXAWRAFVMTVNVOVPVR $.

    $( An upper bound for the norm of a functional.  (Contributed by NM,
       24-May-2006.)  (New usage is discouraged.) $)
    nmfnleub2 $p |- ( ( T : ~H --> CC /\ ( A e. RR /\ 0 <_ A ) /\ A. x e. ~H
    ( abs ` ( T ` x ) ) <_ ( A x. ( normh ` x ) ) ) -> ( normfn ` T ) <_ A ) $=
      ( chil cc wf cr wcel cle wbr wa cfv cmul co wral c1 adantlr sylan2 adantr
      wi cc0 cv cabs cno cnmf normcl ad2antlr simpllr simpr 1re lemul2a mp3anl2
      syl21anc ax-1rid ad2antrl ad2antrr breqtrd ffvelrn abscld remulcl adantll
      wceq simplrl syl3anc mpan2d ex com23 ralimdva imp cxr wb nmfnleub biimpar
      letr rexr syldan 3impa ) DECFZBGHZUABIJZKZAUBZCLZUCLZBWBUDLZMNZIJZADOZCUE
      LBIJZVRWAKZWHWEPIJZWDBIJZTZADOZWIWJWHWNWJWGWMADWJWBDHZKZWKWGWLWPWKWGWLTWP
      WKKZWGWFBIJZWLWQWFBPMNZBIWQWEGHZWAWKWFWSIJZWOWTWJWKWBUFZUGVRWAWOWKUHWPWKU
      IWTPGHWAWKXAUJWEPBUKULUMWJWSBVBZWOWKVSXCVRVTBUNUOUPUQWPWGWRKWLTZWKWPWDGHZ
      WFGHZVSXDVRWOXEWAVRWOKWCDEWBCURUSQWAWOXFVRVSWOXFVTWOVSWTXFXBBWEUTRQVAVRVS
      VTWOVCWDWFBVNVDSVEVFVGVHVIWJWIWNWAVRBVJHZWIWNVKVSXGVTBVOSABCVLRVMVPVQ $.

    $( The norm of any Hilbert space functional is nonnegative.  (Contributed
       by NM, 24-May-2006.)  (New usage is discouraged.) $)
    nmfnge0 $p |- ( T : ~H --> CC -> 0 <_ ( normfn ` T ) ) $=
      ( chil cc wf cc0 c0v cfv cabs cle wbr cnmf ax-hv0cl ffvelrn mpan2 absge0d
      wcel cno c1 norm0 cxr 0le1 eqbrtri nmfnlb mp3an23 wa wi abscld nmfnxr 0xr
      rexrd xrletr mp3an1 syl2anc mp2and ) BCADZEFAGZHGZIJZUQAKGZIJZEUSIJZUOUPU
      OFBPZUPCPLBCFAMNZOUOVBFQGZRIJUTLVDERISUAUBFAUCUDUOUQTPZUSTPZURUTUEVAUFZUO
      UQUOUPVCUGUJAUHETPVEVFVGUIEUQUSUKULUMUN $.

    $( Membership in the null space of a Hilbert space functional.
       (Contributed by NM, 11-Feb-2006.)  (Revised by Mario Carneiro,
       17-Nov-2013.)  (New usage is discouraged.) $)
    elnlfn $p |- ( T : ~H --> CC ->
                   ( A e. ( null ` T ) <-> ( A e. ~H /\ ( T ` A ) = 0 ) ) ) $=
      ( vx chil cc wf cnl cfv wcel wa cc0 wceq cdm ccnv csn nlfnval wb wi bitrd
      cima cnvimass syl6eqss fdm sseqtrd sseld pm4.71rd eleq2d adantr wfn eleq1
      ffn fveq2 eqeq1d bibi12d imbi2d wbr fnbrfvb 0cn vex eliniseg ax-mp expcom
      cv syl6rbbr vtoclga mpan9 pm5.32da ) DEBFZABGHZIZADIZVJJVKABHZKLZJVHVJVKV
      HVIDAVHVIBMZDVHVIBNKOZTZVNBPZBVOUAUBDEBUCUDUEUFVHVKVJVMVHVKJVJAVPIZVMVHVJ
      VRQVKVHVIVPAVQUGUHVHBDUIZVKVRVMQZDEBUKVSCVCZVPIZWABHZKLZQZRVSVTRCADWAALZW
      EVTVSWFWBVRWDVMWAAVPUJWFWCVLKWAABULUMUNUOVSWADIZWEVSWGJWDWAKBUPZWBDWAKBUQ
      KEIWBWHQURBKWAECUSUTVAVDVBVEVFSVGS $.

    $( Membership in the null space of a Hilbert space functional.
       (Contributed by NM, 11-Feb-2006.)  (Revised by Mario Carneiro,
       17-Nov-2013.)  (New usage is discouraged.) $)
    elnlfn2 $p |- ( ( T : ~H --> CC /\ A e. ( null ` T ) ) ->
                   ( T ` A ) = 0 ) $=
      ( chil cc wf cnl cfv wcel cc0 wceq elnlfn simplbda ) CDBEABFGHACHABGIJABK
      L $.

    $( Basic continuity property of a continuous functional.  (Contributed by
       NM, 11-Feb-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    cnfnc $p |- ( ( T e. ContFn /\ A e. ~H /\ B e. RR+ ) ->
                  E. x e. RR+ A. y e. ~H ( ( normh ` ( y -h A ) ) < x ->
                    ( abs ` ( ( T ` y ) - ( T ` A ) ) ) < B ) ) $=
      ( vz vw wcel chil crp cv cmv co cno cfv clt wbr cmin cabs wral ccnfn wrex
      wi wa cc elcnfn simprbi wceq oveq2 fveq2d breq1d fveq2 imbi12d rexralbidv
      wf oveq2d breq2 imbi2d rspc2v syl5com 3impib ) EUAHZCIHZDJHZBKZCLMZNOZAKZ
      PQZVEEOZCEOZRMZSOZDPQZUCZBITAJUBZVBVEFKZLMZNOZVHPQZVJVQEOZRMZSOZGKZPQZUCZ
      BITAJUBZGJTFITZVCVDUDVPVBIUEEUOWHFGABEUFUGWGVPVIVMWDPQZUCZBITAJUBFGCDIJVQ
      CUHZWFWJABJIWKVTVIWEWIWKVSVGVHPWKVRVFNVQCVELUIUJUKWKWCVMWDPWKWBVLSWKWAVKV
      JRVQCEULUPUJUKUMUNWDDUHZWJVOABJIWLWIVNVIWDDVMPUQURUNUSUTVA $.

    $( Basic linearity property of a linear functional.  (Contributed by NM,
       11-Feb-2006.)  (New usage is discouraged.) $)
    lnfnl $p |- ( ( ( T e. LinFn /\ A e. CC ) /\ ( B e. ~H /\ C e. ~H ) ) ->
         ( T ` ( ( A .h B ) +h C ) ) = ( ( A x. ( T ` B ) ) + ( T ` C ) ) ) $=
      ( vx vy vz wcel cc chil csm co cva cfv cmul caddc wceq cv wral oveq1d clf
      wa wi w3a wf ellnfn simprbi oveq1 fveq2d eqeq12d oveq2 oveq2d rspc3v syl5
      fveq2 3expb impcom anassrs ) DUAHZAIHZBJHZCJHZUBZABKLZCMLZDNZABDNZOLZCDNZ
      PLZQZUTVCUBUSVKUTVAVBUSVKUCUSERZFRZKLZGRZMLZDNZVLVMDNZOLZVODNZPLZQZGJSFJS
      EISZUTVAVBUDVKUSJIDUEWCEFGDUFUGWBVKAVMKLZVOMLZDNZAVROLZVTPLZQVDVOMLZDNZVH
      VTPLZQEFGABCIJJVLAQZVQWFWAWHWLVPWEDWLVNWDVOMVLAVMKUHTUIWLVSWGVTPVLAVROUHT
      UJVMBQZWFWJWHWKWMWEWIDWMWDVDVOMVMBAKUKTUIWMWGVHVTPWMVRVGAOVMBDUOULTUJVOCQ
      ZWJVFWKVJWNWIVEDVOCVDMUKUIWNVTVIVHPVOCDUOULUJUMUNUPUQUR $.

    $( Closure of the adjoint of a Hilbert space operator.  (Contributed by NM,
       17-Jun-2006.)  (New usage is discouraged.) $)
    adjcl $p |- ( ( T e. dom adjh /\ A e. ~H ) ->
                 ( ( adjh ` T ) ` A ) e. ~H ) $=
      ( cado cdm wcel chil cfv wf dmadjrn dmadjop syl ffvelrnda ) BCDZEZFFABCGZ
      NOMEFFOHBIOJKL $.

    $( Property of an adjoint Hilbert space operator.  (Contributed by NM,
       15-Feb-2006.)  (New usage is discouraged.) $)
    adj1 $p |- ( ( T e. dom adjh /\ A e. ~H /\ B e. ~H ) ->
               ( A .ih ( T ` B ) ) = ( ( ( adjh ` T ) ` A ) .ih B ) ) $=
      ( vx vy vz vw cado wcel chil cfv csp co wceq cv wral wf w3a cvv feq1 wfun
      cdm wa cop copab funadj funfvop mpan dfadj2 syl6eleq wb fvex fveq1 oveq2d
      eqeq1d 2ralbidv 3anbi13d oveq1d eqeq2d opelopabg mpan2 mpbid simp3d oveq1
      3anbi23d fveq2 eqeq12d oveq2 rspc2v syl5com 3impib ) CHUBZIZAJIZBJIZABCKZ
      LMZACHKZKZBLMZNZVMDOZEOZCKZLMZWBVRKZWCLMZNZEJPDJPZVNVOUCWAVMJJCQZJJVRQZWI
      VMCVRUDZJJFOZQZJJGOZQZWBWCWMKZLMZWBWOKZWCLMZNZEJPDJPZRZFGUEZIZWJWKWIRZVMW
      LHXDHUAVMWLHIUFCHUGUHDEGFUIUJVMVRSIXEXFUKCHULXCWJWPWEWTNZEJPDJPZRXFFGCVRV
      LSWMCNZWNWJXBXHWPJJWMCTXIXAXGDEJJXIWRWEWTXIWQWDWBLWCWMCUMUNUOUPUQWOVRNZWP
      WKXHWIWJJJWOVRTXJXGWHDEJJXJWTWGWEXJWSWFWCLWBWOVRUMURUSUPVEUTVAVBVCWHWAAWD
      LMZVSWCLMZNDEABJJWBANZWEXKWGXLWBAWDLVDXMWFVSWCLWBAVRVFURVGWCBNZXKVQXLVTXN
      WDVPALWCBCVFUNWCBVSLVHVGVIVJVK $.

    $( Property of an adjoint Hilbert space operator.  (Contributed by NM,
       15-Feb-2006.)  (New usage is discouraged.) $)
    adj2 $p |- ( ( T e. dom adjh /\ A e. ~H /\ B e. ~H ) ->
                ( ( T ` A ) .ih B ) = ( A .ih ( ( adjh ` T ) ` B ) ) ) $=
      ( cado cdm wcel chil cfv csp co wceq w3a ccj adj1 dmadjop ax-his1 syl2anc
      simp2 cc hicl ffvelrnda 3adant2 adjcl 3adant3 simp3 3eqtr3d wb cj11 mpbid
      3com23 ) CDEFZBGFZAGFZACHZBIJZABCDHHZIJZKZUKULUMLZUOMHZUQMHZKZURUSBUNIJZU
      PAIJZUTVABACNUSULUNGFZVCUTKUKULUMRZUKUMVEULUKGGACCOUAUBZBUNPQUSUPGFZUMVDV
      AKUKULVHUMBCUCUDZUKULUMUEZUPAPQUFUSUOSFZUQSFZVBURUGUSVEULVKVGVFUNBTQUSUMV
      HVLVJVIAUPTQUOUQUHQUIUJ $.

    $( A property that determines the adjoint of a Hilbert space operator.
       (Contributed by NM, 20-Feb-2006.)  (New usage is discouraged.) $)
    adjeq $p |- ( ( T : ~H --> ~H /\ S : ~H --> ~H /\ A. x e. ~H A. y e. ~H
           ( ( T ` x ) .ih y ) = ( x .ih ( S ` y ) ) ) -> ( adjh ` T ) = S ) $=
      ( vz vw cado chil wf cv cfv csp co wceq wral w3a wcel cvv ax-hilex fex wa
      wfun cop funadj copab df-adjh eleq2i wb mpan2 feq1 oveq1d eqeq1d 2ralbidv
      fveq1 3anbi13d oveq2d eqeq2d 3anbi23d syl2an syl5bb df-3an baibr biimp3ar
      opelopabg bitr4d funopfv mpsyl ) GUBHHDIZHHCIZAJZDKZBJZLMZVJVLCKZLMZNZBHO
      AHOZPZDCUCZGQZDGKCNUDVHVIVTVQVHVIUAZVTVRVQVTVSHHEJZIZHHFJZIZVJWBKZVLLMZVJ
      VLWDKZLMZNZBHOAHOZPZEFUEZQZWAVRGWMVSABFEUFUGVHDRQZCRQZWNVRUHVIVHHRQZWOSHH
      RDTUIVIWQWPSHHRCTUIWLVHWEVMWINZBHOAHOZPVREFDCRRWBDNZWCVHWKWSWEHHWBDUJWTWJ
      WRABHHWTWGVMWIWTWFVKVLLVJWBDUNUKULUMUOWDCNZWEVIWSVQVHHHWDCUJXAWRVPABHHXAW
      IVOVMXAWHVNVJLVLWDCUNUPUQUMURVDUSUTVRWAVQVHVIVQVAVBVEVCDCGVFVG $.

    $( Double adjoint.  Theorem 3.11(iv) of [Beran] p. 106.  (Contributed by
       NM, 15-Feb-2006.)  (New usage is discouraged.) $)
    adjadj $p |- ( T e. dom adjh -> ( adjh ` ( adjh ` T ) ) = T ) $=
      ( vx vy cado cdm wcel cv cfv csp wceq chil wral adj2 dmadjrn adj1 syl3an1
      co w3a wf dmadjop eqtr2d 3expib ralrimivv wb 3syl hoeq1 syl2anc mpbid ) A
      DEZFZBGZADHZDHZHCGZIQZUKAHUNIQZJZCKLBKLZUMAJZUJUQBCKKUJUKKFZUNKFZUQUJUTVA
      RUPUKUNULHIQZUOUKUNAMUJULUIFZUTVAVBUOJANZUKUNULOPUAUBUCUJKKUMSZKKASURUSUD
      UJVCUMUIFVEVDULNUMTUEATBCUMAUFUGUH $.

    $( Value of the value of the adjoint function.  (Contributed by NM,
       22-Feb-2006.)  (Proof shortened by Mario Carneiro, 10-Sep-2015.)
       (New usage is discouraged.) $)
    adjvalval $p |- ( ( T e. dom adjh /\ A e. ~H ) -> ( ( adjh ` T ) ` A ) =
            ( iota_ w e. ~H A. x e. ~H ( ( T ` x ) .ih A ) = ( x .ih w ) ) ) $=
      ( cado cdm wcel chil wa cv cfv csp co wceq wral crio adjcl eqcom adantr
      wb adj2 3com23 3expa eqeq2d syl5bb ralbidva simpr hial2eq2 syl2anc riota5
      bitrd eqcomd ) DEFGZCHGZIZAJZDKCLMZUPBJZLMZNZAHOZBHPCDEKKZUOVABHVBCDQZUOU
      RHGZIZVAUSUPVBLMZNZAHOZURVBNZUOVAVHTVDUOUTVGAHUTUSUQNUOUPHGZIZVGUQUSRVKUQ
      VFUSUMUNVJUQVFNZUMVJUNVLUPCDUAUBUCUDUEUFSVEVDVBHGZVHVITUOVDUGUOVMVDVCSAUR
      VBUHUIUKUJUL $.

    $( The adjoint of a unitary operator is its inverse (converse).  Equation 2
       of [AkhiezerGlazman] p. 72.  (Contributed by NM, 23-Feb-2006.)
       (New usage is discouraged.) $)
    unopadj2 $p |- ( T e. UniOp -> ( adjh ` T ) = `' T ) $=
      ( vx vy cuo wcel chil wf ccnv cv cfv csp wceq wral cado clo unoplin lnopf
      co syl cnvunop 3syl unopadj 3expib ralrimivv adjeq syl3anc ) ADEZFFAGZFFA
      HZGZBIZAJCIZKRUKULUIJKRLZCFMBFMANJUILUGAOEUHAPAQSUGUIDEUIOEUJATUIPUIQUAUG
      UMBCFFUGUKFEULFEUMUKULAUBUCUDBCUIAUEUF $.

    $( A Hermitian operator is self-adjoint.  (Contributed by NM, 24-Mar-2006.)
       (New usage is discouraged.) $)
    hmopadj $p |- ( T e. HrmOp -> ( adjh ` T ) = T ) $=
      ( vx vy cho wcel chil wf cv cfv csp co wceq wral cado hmopf eqcomd 3expib
      w3a hmop ralrimivv adjeq syl3anc ) ADEZFFAGZUDBHZAICHZJKZUEUFAIJKZLZCFMBF
      MANIALAOZUJUCUIBCFFUCUEFEZUFFEZUIUCUKULRUHUGUEUFASPQTBCAAUAUB $.

    $( Every Hermitian operator has an adjoint.  (Contributed by NM,
       24-Mar-2006.)  (New usage is discouraged.) $)
    hmdmadj $p |- ( T e. HrmOp -> T e. dom adjh ) $=
      ( cho wcel cado cfv c0 wceq cdm chil wf wn hon0 syl hmopadj eqeq1d mtbird
      hmopf ndmfv nsyl2 ) ABCZADEZFGZADHCTUBAFGZTIIAJUCKAQALMTUAAFANOPADRS $.

    $( An operator is Hermitian iff it is self-adjoint.  Definition of
       Hermitian in [Halmos] p. 41.  (Contributed by NM, 9-Apr-2006.)
       (New usage is discouraged.) $)
    hmopadj2 $p |- ( T e. dom adjh -> ( T e. HrmOp <-> ( adjh ` T ) = T ) ) $=
      ( vx vy cado cdm wcel cho cfv wceq hmopadj wa chil wf cv csp wral dmadjop
      co adantr adj1 3expb adantlr fveq1 oveq1d ad2antlr ralrimivva sylanbrc ex
      eqtrd elhmop impbid2 ) ADEFZAGFZADHZAIZAJULUOUMULUOKZLLAMZBNZCNZAHORZURAH
      ZUSORZIZCLPBLPUMULUQUOAQSUPVCBCLLUPURLFZUSLFZKZKUTURUNHZUSORZVBULVFUTVHIZ
      UOULVDVEVIURUSATUAUBUOVHVBIULVFUOVGVAUSOURUNAUCUDUEUIUFBCAUJUGUHUK $.

    $( A Hermitian operator is linear.  (Contributed by NM, 24-Mar-2006.)
       (New usage is discouraged.) $)
    hmoplin $p |- ( T e. HrmOp -> T e. LinOp ) $=
      ( vx vy vz vw wcel chil cv co cfv wceq wral cc csp cmul caddc adantr hmop
      wa w3a cho csm cva clo hmopf simplll hvmulcl hvaddcl sylan adantll eqcomd
      wf simpr syl3anc simprl ad2antrr simprr simplr ffvelrnda adantlr adantllr
      hiassdi syl22anc adantrl 3expa oveq2d adantlrl eqtr2d 3eqtrd ralrimiva wb
      oveq12d ffvelrn sylan2 anassrs an12s syl2anc hial2eq sylanl1 mpbid ellnop
      ralrimivva sylanbrc ) AUAFZGGAULZBHZCHZUBIZDHZUCIZAJZWFWGAJZUBIZWIAJZUCIZ
      KZDGLZCGLBMLAUDFAUEZWDWQBCMGWDWFMFZWGGFZSZSZWPDGXBWIGFZSZWKEHZNIZWOXENIZK
      ZEGLZWPXDXHEGXDXEGFZSZXFWJXEAJZNIZWFWGXLNIZOIZWIXLNIZPIZXGXKWDWJGFZXJXFXM
      KWDXAXCXJUFXDXRXJXAXCXRWDXAWHGFXCXRWFWGUGWHWIUHUIZUJQXDXJUMZWDXRXJTXMXFWJ
      XEARUKUNXKWSWTXCXLGFZXMXQKXBWSXCXJWDWSWTUOUPZXBWTXCXJWDWSWTUQUPXBXCXJURWD
      XCXJYAXAWDXJYAXCWDGGXEAWRUSUTVAWFWGWIXLVBVCXKXGWFWLXENIZOIZWNXENIZPIZXQXK
      WSWLGFZWNGFZXJXGYFKYBXBYGXCXJWDWTYGWSWDGGWGAWRUSVDUPWDXCXJYHXAWDXCSYHXJWD
      GGWIAWRUSQVAXTWFWLWNXEVBVCXKYDXOYEXPPXBXJYDXOKZXCWDWTXJYIWSWDWTSXJSYCXNWF
      OWDWTXJYCXNKWDWTXJTXNYCWGXEARUKVEVFVGUTWDXCXJYEXPKZXAWDXCXJYJWDXCXJTXPYEW
      IXEARUKVEVAVLVHVIVJWDWEXAXCXIWPVKZWRWEXASZXCSZWKGFZWOGFZYKWEXAXCYNXAXCSWE
      XRYNXSGGWJAVMVNVOYMWMGFZYHYOYLYPXCWSWEWTYPWEWTSWSYGYPGGWGAVMWFWLUGVNVPQWE
      XCYHXAGGWIAVMUTWMWNUHVQEWKWOVRVQVSVTVJWBBCDAWAWC $.

    $( The bra of a vector, expressed as ` <. A | ` in Dirac notation.  See
       ~ df-bra .  (Contributed by NM, 15-May-2006.)  (Revised by Mario
       Carneiro, 23-Aug-2014.)  (New usage is discouraged.) $)
    brafval $p |- ( A e. ~H ->
            ( bra ` A ) = ( x e. ~H |-> ( x .ih A ) ) ) $=
      ( vy chil cv csp cmpt cbr wceq oveq2 mpteq2dv df-bra ax-hilex mptex fvmpt
      co ) CBADAEZCEZFPZGADQBFPZGDHRBIADSTRBQFJKCALADTMNO $.

    $( A bra-ket juxtaposition, expressed as ` <. A | B >. ` in Dirac notation,
       equals the inner product of the vectors.  Based on definition of bra in
       [Prugovecki] p. 186.  (Contributed by NM, 15-May-2006.)  (Revised by
       Mario Carneiro, 17-Nov-2013.)  (New usage is discouraged.) $)
    braval $p |- ( ( A e. ~H /\ B e. ~H ) ->
                  ( ( bra ` A ) ` B ) = ( B .ih A ) ) $=
      ( vx chil wcel cbr cfv cv co cmpt brafval fveq1d oveq1 eqid ovex sylan9eq
      csp fvmpt ) ADEZBDEBAFGZGBCDCHZAQIZJZGBAQIZSBTUCCAKLCBUBUDDUCUABAQMUCNBAQ
      ORP $.

    $( Linearity property of bra for addition.  (Contributed by NM,
       23-May-2006.)  (New usage is discouraged.) $)
    braadd $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) -> ( ( bra ` A ) `
              ( B +h C ) ) = ( ( ( bra ` A ) ` B ) + ( ( bra ` A ) ` C ) ) ) $=
      ( chil wcel w3a cva co csp caddc cbr wceq ax-his2 3comr wa hvaddcl braval
      cfv sylan2 3impb 3adant3 3adant2 oveq12d 3eqtr4d ) ADEZBDEZCDEZFZBCGHZAIH
      ZBAIHZCAIHZJHZUIAKRZRZBUNRZCUNRZJHUFUGUEUJUMLBCAMNUEUFUGUOUJLZUFUGOUEUIDE
      URBCPAUIQSTUHUPUKUQULJUEUFUPUKLUGABQUAUEUGUQULLUFACQUBUCUD $.

    $( Linearity property of bra for multiplication.  (Contributed by NM,
       23-May-2006.)  (New usage is discouraged.) $)
    bramul $p |- ( ( A e. ~H /\ B e. CC /\ C e. ~H ) -> ( ( bra ` A ) `
              ( B .h C ) ) = ( B x. ( ( bra ` A ) ` C ) ) ) $=
      ( chil wcel cc w3a csm csp cmul cbr cfv wceq ax-his3 3comr hvmulcl braval
      co wa sylan2 3impb 3adant2 oveq2d 3eqtr4d ) ADEZBFEZCDEZGZBCHRZAIRZBCAIRZ
      JRZUIAKLZLZBCUMLZJRUFUGUEUJULMBCANOUEUFUGUNUJMZUFUGSUEUIDEUPBCPAUIQTUAUHU
      OUKBJUEUGUOUKMUFACQUBUCUD $.

    $( The bra function is a functional.  (Contributed by NM, 23-May-2006.)
       (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    brafn $p |- ( A e. ~H -> ( bra ` A ) : ~H --> CC ) $=
      ( vx chil wcel cc cbr cfv wf cv csp co cmpt hicl eqid fmptd brafval feq1d
      ancoms mpbird ) ACDZCEAFGZHCEBCBIZAJKZLZHTBCUCEUDUBCDTUCEDUBAMRUDNOTCEUAU
      DBAPQS $.

    $( The Dirac bra function is a linear functional.  (Contributed by NM,
       23-May-2006.)  (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    bralnfn $p |- ( A e. ~H -> ( bra ` A ) e. LinFn ) $=
      ( vx vy vz chil wcel cc cbr cfv wf cv csm co cva cmul caddc wceq wral clf
      wa brafn simpll hvmulcl simprr braadd syl3anc bramul 3expa adantrr oveq1d
      ad2ant2lr eqtrd ralrimivva ralrimiva ellnfn sylanbrc ) AEFZEGAHIZJBKZCKZL
      MZDKZNMURIZUSUTURIOMZVBURIZPMZQZDERCERZBGRURSFAUAUQVHBGUQUSGFZTZVGCDEEVJU
      TEFZVBEFZTZTZVCVAURIZVEPMZVFVNUQVAEFZVLVCVPQUQVIVMUBVIVKVQUQVLUSUTUCUKVJV
      KVLUDAVAVBUEUFVNVOVDVEPVJVKVOVDQZVLUQVIVKVRAUSUTUGUHUIUJULUMUNBCDURUOUP
      $.

    $( Closure of the bra function.  (Contributed by NM, 23-May-2006.)
       (New usage is discouraged.) $)
    bracl $p |- ( ( A e. ~H /\ B e. ~H ) -> ( ( bra ` A ) ` B ) e. CC ) $=
      ( chil wcel cc cbr cfv brafn ffvelrnda ) ACDCEBAFGAHI $.

    $( The Dirac bra of the zero vector.  (Contributed by NM, 25-May-2006.)
       (Revised by Mario Carneiro, 23-Aug-2014.)
       (New usage is discouraged.) $)
    bra0 $p |- ( bra ` 0h ) = ( ~H X. { 0 } ) $=
      ( vx c0v cbr cfv chil cc0 cmpt csn cxp wcel wceq ax-hv0cl cv brafval hi02
      csp co mpteq2ia syl6eq ax-mp fconstmpt eqtr4i ) BCDZAEFGZEFHIBEJZUCUDKLUE
      UCAEAMZBPQZGUDABNAEUGFUFORSTAEFUAUB $.

    $( Anti-linearity property of bra functional for multiplication.
       (Contributed by NM, 31-May-2006.)  (Revised by Mario Carneiro,
       16-Nov-2013.)  (New usage is discouraged.) $)
    brafnmul $p |- ( ( A e. CC /\ B e. ~H ) ->
                    ( bra ` ( A .h B ) ) = ( ( * ` A ) .fn ( bra ` B ) ) ) $=
      ( vx cc wcel chil wa csm co cbr cfv csp cmpt ccj chft wceq hvmulcl eqtr4d
      cv cmul brafval syl wf cjcl brafn hfmmval syl2an his5 3expa an32s adantll
      braval oveq2d mpteq2dva ) ADEZBFEZGZABHIZJKZCFCSZURLIZMZANKZBJKZOIZUQURFE
      USVBPABQCURUAUBUQVECFVCUTVDKZTIZMZVBUOVCDEFDVDUCVEVHPUPAUDBUECVCVDUFUGUQC
      FVAVGUQUTFEZGZVAVCUTBLIZTIZVGUOVIUPVAVLPZUOVIUPVMAUTBUHUIUJVJVFVKVCTUPVIV
      FVKPUOBUTULUKUMRUNRR $.

    $( The outer product of two vectors, expressed as ` | A >. ` ` <. B | ` in
       Dirac notation.  See ~ df-kb .  (Contributed by NM, 15-May-2006.)
       (Revised by Mario Carneiro, 23-Aug-2014.)
       (New usage is discouraged.) $)
    kbfval $p |- ( ( A e. ~H /\ B e. ~H ) -> ( A ketbra B ) =
                ( x e. ~H |-> ( ( x .ih B ) .h A ) ) ) $=
      ( vy vz chil cv csp co csm cmpt wceq oveq2 mpteq2dv oveq1d df-kb ax-hilex
      ck mptex ovmpt2 ) DEBCFFAFAGZEGZHIZDGZJIZKAFUACHIZBJIZKRAFUCBJIZKUDBLAFUE
      UHUDBUCJMNUBCLZAFUHUGUIUCUFBJUBCUAHMONDEAPAFUGQST $.

    $( The outer product of two vectors, expressed as ` | A >. ` ` <. B | ` in
       Dirac notation, is an operator.  (Contributed by NM, 30-May-2006.)
       (Revised by Mario Carneiro, 16-Nov-2013.)
       (New usage is discouraged.) $)
    kbop $p |- ( ( A e. ~H /\ B e. ~H ) -> ( A ketbra B ) : ~H --> ~H ) $=
      ( vx chil wcel wa ck co wf cv csp csm cmpt hicl hvmulcl sylan an31s fmptd
      cc eqid kbfval feq1d mpbird ) ADEZBDEZFZDDABGHZIDDCDCJZBKHZALHZMZIUFCDUJD
      UKUHDEZUEUDUJDEZULUEFUISEUDUMUHBNUIAOPQUKTRUFDDUGUKCABUAUBUC $.

    $( The value of the operator resulting from the outer product ` | A >. `
       ` <. B | ` of two vectors.  Equation 8.1 of [Prugovecki] p. 376.
       (Contributed by NM, 15-May-2006.)  (Revised by Mario Carneiro,
       16-Nov-2013.)  (New usage is discouraged.) $)
    kbval $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                 ( ( A ketbra B ) ` C ) = ( ( C .ih B ) .h A ) ) $=
      ( vx chil wcel ck co cfv csp csm wceq wa cv cmpt kbfval fveq1d oveq1 eqid
      oveq1d ovex fvmpt sylan9eq 3impa ) AEFZBEFZCEFZCABGHZIZCBJHZAKHZLUEUFMZUG
      UICDEDNZBJHZAKHZOZIUKULCUHUPDABPQDCUOUKEUPUMCLUNUJAKUMCBJRTUPSUJAKUAUBUCU
      D $.

    $( Multiplication property of outer product.  (Contributed by NM,
       31-May-2006.)  (New usage is discouraged.) $)
    kbmul $p |- ( ( A e. CC /\ B e. ~H /\ C e. ~H ) ->
                ( ( A .h B ) ketbra C ) = ( B ketbra ( ( * ` A ) .h C ) ) ) $=
      ( vx cc wcel chil w3a csm co ck csp cmpt wceq hvmulcl kbfval syl2anc cmul
      syl3anc eqtr4d cv ccj cfv stoic3 simp2 cjcl 3ad2ant1 simp3 wa simpl3 hicl
      simpr simpl1 simpl2 ax-hvmulass mulcomd his52 oveq1d eqtr3d mpteq2dva ) A
      EFZBGFZCGFZHZABIJZCKJZDGDUAZCLJZVEIJZMZBAUBUCZCIJZKJZVAVBVEGFVCVFVJNABODV
      ECPUDVDVMDGVGVLLJZBIJZMZVJVDVBVLGFZVMVPNVAVBVCUEVDVKEFZVCVQVAVBVRVCAUFUGV
      AVBVCUHVKCOQDBVLPQVDDGVIVOVDVGGFZUIZVHARJZBIJZVIVOVTVHEFZVAVBWBVINVTVSVCW
      CVDVSULZVAVBVCVSUJZVGCUKQZVAVBVCVSUMZVAVBVCVSUNVHABUOSVTWAVNBIVTWAAVHRJZV
      NVTVHAWFWGUPVTVAVSVCVNWHNWGWDWEAVGCUQSTURUSUTTT $.

    $( If a vector ` A ` has norm 1, the outer product ` | A >. ` ` <. A | ` is
       the projector onto the subspace spanned by ` A ` .
       ~ http://en.wikipedia.org/wiki/Bra-ket#Linear%5Foperators .
       (Contributed by NM, 30-May-2006.)  (New usage is discouraged.) $)
    kbpj $p |- ( ( A e. ~H /\ ( normh ` A ) = 1 ) -> ( A ketbra A ) =
                ( projh ` ( span ` { A } ) ) ) $=
      ( vx chil wcel cno cfv c1 wceq wa ck cexp cdiv csm wne cc0 adantr wfn syl
      co c2 csn cspn cpjh cv wral csp oveq1 sq1 syl6eq oveq2d hicl ancoms div1d
      sylan9eqr an32s oveq1d c0v simpll simpr ax-1ne0 mpbiri normne0 syl5ib imp
      cc neeq1 pjspansn syl3anc kbval 3anidm12 adantlr 3eqtr4rd ralrimiva wb wf
      kbop anidms ffn cch spansnch pjfn eqfnfv syl2anc mpbird ) ACDZAEFZGHZIZAA
      JSZAUAUBFZUCFZHZBUDZWIFZWMWKFZHZBCUEZWHWPBCWHWMCDZIZWMAUFSZWFTKSZLSZAMSZW
      TAMSZWOWNWSXBWTAMWEWRWGXBWTHWGWEWRIZXBWTGLSWTWGXAGWTLWGXAGTKSGWFGTKUGUHUI
      UJXEWTWRWEWTVEDWMAUKULUMUNUOUPWSWEWRAUQNZWOXCHWEWGWRURWHWRUSWHXFWRWEWGXFW
      GWFONZWEXFWGXGGONUTWFGOVFVAAVBVCVDPAWMVGVHWEWRWNXDHZWGWEWRXHAAWMVIVJVKVLV
      MWEWLWQVNZWGWEWICQZWKCQZXIWECCWIVOZXJWEXLAAVPVQCCWIVRRWEWJVSDXKAVTWJWARBC
      WIWKWBWCPWD $.

    $( Membership in the set of eigenvectors of a Hilbert space operator.
       (Contributed by NM, 11-Mar-2006.)  (Revised by Mario Carneiro,
       16-Nov-2013.)  (New usage is discouraged.) $)
    eleigvec $p |- ( T : ~H --> ~H -> ( A e. ( eigvec ` T ) <->
            ( A e. ~H /\ A =/= 0h /\ E. x e. CC ( T ` A ) = ( x .h A ) ) ) ) $=
      ( vy chil wf cei cfv wcel cv csm co wceq cc wrex c0h cdif crab c0v wa wne
      w3a eigvecval eleq2d wn eldif elch0 necon3bbii anbi2i bitri fveq2 eqeq12d
      anbi1i oveq2 rexbidv elrab df-3an 3bitr4i syl6bb ) EECFZBCGHZIBDJZCHZAJZV
      BKLZMZANOZDEPQZRZIZBEIZBSUAZBCHZVDBKLZMZANOZUBZUTVAVIBDACUCUDBVHIZVPTVKVL
      TZVPTVJVQVRVSVPVRVKBPIZUEZTVSBEPUFWAVLVKVTBSBUGUHUIUJUMVGVPDBVHVBBMZVFVOA
      NWBVCVMVEVNVBBCUKVBBVDKUNULUOUPVKVLVPUQURUS $.

    $( Membership in the set of eigenvectors of a Hilbert space operator.
       (Contributed by NM, 18-Mar-2006.)  (New usage is discouraged.) $)
    eleigvec2 $p |- ( T : ~H --> ~H -> ( A e. ( eigvec ` T ) <->
            ( A e. ~H /\ A =/= 0h /\ ( T ` A ) e. ( span ` { A } ) ) ) ) $=
      ( vx chil wf cei cfv wcel c0v wne cv csm co wceq cc wrex w3a csn df-3an
      wa cspn eleigvec wb elspansn adantr pm5.32i 3bitr4i syl6bbr ) DDBEABFGHAD
      HZAIJZABGZCKALMNCOPZQZUIUJUKARUAGHZQZCABUBUIUJTZUNTUPULTUOUMUPUNULUIUNULU
      CUJCAUKUDUEUFUIUJUNSUIUJULSUGUH $.

    $( Closure of an eigenvector of a Hilbert space operator.  (Contributed by
       NM, 23-Mar-2006.)  (New usage is discouraged.) $)
    eleigveccl $p |- ( ( T : ~H --> ~H /\ A e. ( eigvec ` T ) ) ->
                      A e. ~H ) $=
      ( chil wf cei cfv wcel wa c0v wne csn cspn w3a eleigvec2 biimpa simp1d )
      CCBDZABEFGZHACGZAIJZABFAKLFGZQRSTUAMABNOP $.

    $( The eigenvalue of an eigenvector of a Hilbert space operator.
       (Contributed by NM, 11-Mar-2006.)  (New usage is discouraged.) $)
    eigvalval $p |- ( ( T : ~H --> ~H /\ A e. ( eigvec ` T ) ) ->
  ( ( eigval ` T ) ` A ) = ( ( ( T ` A ) .ih A ) / ( ( normh ` A ) ^ 2 ) ) ) $=
      ( vx chil wf cei cfv wcel cel cv csp co cno c2 cexp cdiv eigvalfval fveq2
      cmpt oveq12d fveq1d wceq id oveq1d eqid ovex fvmpt sylan9eq ) DDBEZABFGZH
      ABIGZGACUJCJZBGZULKLZULMGZNOLZPLZSZGABGZAKLZAMGZNOLZPLZUIAUKURCBQUACAUQVC
      UJURULAUBZUNUTUPVBPVDUMUSULAKULABRVDUCTVDUOVANOULAMRUDTURUEUTVBPUFUGUH $.

    $( An eigenvalue is a complex number.  (Contributed by NM, 11-Mar-2006.)
       (New usage is discouraged.) $)
    eigvalcl $p |- ( ( T : ~H --> ~H /\ A e. ( eigvec ` T ) )
     -> ( ( eigval ` T ) ` A ) e. CC ) $=
      ( vx chil wf cei cfv wcel wa cel csp co cno c2 cexp cc syl wne cc0 biimpa
      cdiv eigvalval eleigveccl ffvelrn hicl sylancom syldan normcl recnd sqcld
      c0v cv csm wceq wrex w3a eleigvec wb sqne0 normne0 bitr2d 3adant3 eqeltrd
      divcld ) DDBEZABFGHZIZABJGGABGZAKLZAMGZNOLZUALPABUBVGVIVKVEVFADHZVIPHZABU
      CZVEVLVHDHVMDDABUDVHAUEUFUGVGVJVGVLVJPHZVNVLVJAUHUIZQUJVGVLAUKRZVHCULAUML
      UNCPUOZUPZVKSRZVEVFVSCABUQTVLVQVTVRVLVQVTVLVTVJSRZVQVLVOVTWAURVPVJUSQAUTV
      ATVBQVDVC $.

    $( Property of an eigenvector.  (Contributed by NM, 12-Mar-2006.)
       (New usage is discouraged.) $)
    eigvec1 $p |- ( ( T : ~H --> ~H /\ A e. ( eigvec ` T ) ) ->
            ( ( T ` A ) = ( ( ( eigval ` T ) ` A ) .h A ) /\ A =/= 0h ) ) $=
      ( chil wf cei cfv wcel wa cel csm co wceq c0v wne csp cexp cdiv eigvalval
      cno c2 oveq1d csn cspn w3a eleigvec2 biimpa normcan syl eqtr2d simp2d jca
      ) CCBDZABEFGZHZABFZABIFFZAJKZLAMNZUNUQUOAOKASFTPKQKZAJKZUOUNUPUSAJABRUAUN
      ACGZURUOAUBUCFGZUDZUTUOLULUMVCABUEUFZUOAUGUHUIUNVAURVBVDUJUK $.

    $( The eigenvalues of a Hermitian operator are real.  Equation 1.30 of
       [Hughes] p. 49.  (Contributed by NM, 19-Mar-2006.)
       (New usage is discouraged.) $)
    eighmre $p |- ( ( T e. HrmOp /\ A e. ( eigvec ` T ) ) ->
                    ( ( eigval ` T ) ` A ) e. RR ) $=
      ( cho wcel cei cfv wa chil cel cc csm co wceq c0v wne csp cr wf jca sylan
      hmopf eleigveccl eigvalcl eigvec1 hmop 3expb syldan eigre biimpa syl2anc
      ) BCDZABEFDZGAHDZABIFFZJDZGZABFZUNAKLMANOGZGZAUQPLUQAPLMZUNQDZUKHHBRZULUS
      BUAZVBULGZUPURVDUMUOABUBZABUCSABUDSTUKULUMUMGZUTUKVBULVFVCVDUMUMVEVESTUKU
      MUMUTAABUEUFUGUSUTVAAUNBUHUIUJ $.

    $( Eigenvectors of a Hermitian operator with distinct eigenvalues are
       orthogonal.  Equation 1.31 of [Hughes] p. 49.  (Contributed by NM,
       23-Mar-2006.)  (New usage is discouraged.) $)
    eighmorth $p |- ( ( ( T e. HrmOp /\ A e. ( eigvec ` T ) ) /\
                     ( B e. ( eigvec ` T ) /\
                  ( ( eigval ` T ) ` A ) =/= ( ( eigval ` T ) ` B ) ) ) ->
                     ( A .ih B ) = 0 ) $=
      ( wcel cfv wa wne chil cc csm co wceq csp eleigveccl sylan adantr adantlr
      jca eighmre adantrr cho cei cel ccj cc0 wf hmopf recnd c0v eigvec1 simpld
      cjred neeq2d biimpar anasss simpll hmop syl3anc eigorth biimpa syl21anc )
      CUADZACUBEZDZFZBVCDZACUCEZEZBVGEZGZFZFZAHDZBHDZFZVHIDZVIIDZFZFZACEZVHAJKL
      ZBCEZVIBJKLZFZVHVIUDEZGZFZAWBMKVTBMKLZABMKUELZVEVFVSVJVEVFFZVOVRWJVMVNVEV
      MVFVBHHCUFZVDVMCUGZACNOPZVBVFVNVDVBWKVFVNWLBCNOQZRWJVPVQVEVPVFVEVHACSUHPV
      BVFVQVDVBVFFZVIBCSZUHQRRTVLWDWFVEVFWDVJWJWAWCVEWAVFVBWKVDWAWLWKVDFWAAUIGA
      CUJUKOPVBVFWCVDVBWKVFWCWLWKVFFWCBUIGBCUJUKOQRTVBVKWFVDVBVFVJWFWOWFVJWOWEV
      IVHWOVIWPULUMUNUOQRVEVFWHVJWJVBVMVNWHVBVDVFUPWMWNABCUQURTVSWGFWHWIABVHVIC
      USUTVA $.
  $}

  ${
    $d x y T $.
    nmopneg.1 $e |- T : ~H --> ~H $.
    $( Value of the norm of the negative of a Hilbert space operator.  Unlike
       ~ nmophmi , the operator does not have to be bounded.  (Contributed by
       NM, 10-Mar-2006.)  (New usage is discouraged.) $)
    nmopnegi $p |- ( normop ` ( -u 1 .op T ) ) = ( normop ` T ) $=
      ( vy vx cv cno cfv c1 co wceq wa chil wrex cab cxr clt csup cnop wcel wf
      cle wbr cneg chot csm neg1cn homval mp3an12 fveq2d ffvelrni normneg eqtrd
      cc syl eqeq2d anbi2d rexbiia abbii supeq1i homulcl mp2an nmopval 3eqtr4i
      ax-mp ) CEZFGHUAUBZDEZVEHUCZAUDIZGZFGZJZKZCLMZDNZOPQZVFVGVEAGZFGZJZKZCLMZ
      DNZOPQZVIRGZARGZOVOWBPVNWADVMVTCLVELSZVLVSVFWFVKVRVGWFVKVHVQUEIZFGZVRWFVJ
      WGFVHUMSZLLATZWFVJWGJUFBVHVEAUGUHUIWFVQLSWHVRJLLVEABUJVQUKUNULUOUPUQURUSL
      LVITZWDVPJWIWJWKUFBVHAUTVADCVIVBVDWJWEWCJBDCAVBVDVC $.
  $}

  $( The value of a linear Hilbert space operator at zero is zero.  Remark in
     [Beran] p. 99.  (Contributed by NM, 13-Aug-2006.)
     (New usage is discouraged.) $)
  lnop0 $p |- ( T e. LinOp -> ( T ` 0h ) = 0h ) $=
    ( clo wcel c0v cfv cmv co cva c1 csm chil wceq ax-hv0cl hvmulcli ax-hvmulid
    ax-1cn ax-mp mpan2 syl oveq1d ax-hvaddid eqtri fveq2i cc wa mpanr12 syl5eqr
    lnopl wf lnopf ffvelrn eqtrd hvsubid hvpncan anidms 3eqtr3rd ) ABCZDAEZURFG
    ZURURHGZURFGZDURUQURUTURFUQURIURJGZURHGZUTUQURIDJGZDHGZAEZVCVEDAVEVDDVDKCVE
    VDLIDPMNVDUAQDKCZVDDLMDOQUBUCUQIUDCZVFVCLZPUQVHUEVGVGVIMMIDDAUHUFRUGUQVBURU
    RHUQURKCZVBURLUQKKAUIZVJAUJVKVGVJMKKDAUKRSZUROSTULTUQVJUSDLVLURUMSUQVJVAURL
    ZVLVJVMURURUNUOSUP $.

  $( Multiplicative property of a linear Hilbert space operator.  (Contributed
     by NM, 13-Aug-2006.)  (New usage is discouraged.) $)
  lnopmul $p |- ( ( T e. LinOp /\ A e. CC /\ B e. ~H ) ->
       ( T ` ( A .h B ) ) = ( A .h ( T ` B ) ) ) $=
    ( clo wcel cc chil w3a csm co c0v cva cfv wceq wa ax-hv0cl lnopl ax-hvaddid
    hvmulcl syl mpanr2 3impa 3adant1 fveq2d lnop0 oveq2d lnopf ffvelrnda sylan2
    3ad2ant1 3impb 3com12 eqtrd 3eqtr3d ) CDEZAFEZBGEZHZABIJZKLJZCMZABCMZIJZKCM
    ZLJZUSCMVCUOUPUQVAVENZUOUPOUQKGEVFPABKCQUAUBURUTUSCUPUQUTUSNZUOUPUQOUSGEVGA
    BSUSRTUCUDURVEVCKLJZVCUOUPVEVHNUQUOVDKVCLCUEUFUJURVCGEZVHVCNUPUOUQVIUPUOUQV
    IUOUQOUPVBGEVIUOGGBCCUGUHAVBSUIUKULVCRTUMUN $.

  ${
    lnopl.1 $e |- T e. LinOp $.
    $( Basic scalar product property of a linear Hilbert space operator.
       (Contributed by NM, 23-Jan-2006.)  (New usage is discouraged.) $)
    lnopli $p |- ( ( A e. CC /\ B e. ~H /\ C e. ~H ) ->
         ( T ` ( ( A .h B ) +h C ) ) = ( ( A .h ( T ` B ) ) +h ( T ` C ) ) ) $=
      ( cc wcel chil csm co cva cfv wceq clo wa lnopl mpanl1 3impb ) AFGZBHGZCH
      GZABIJCKJDLABDLIJCDLKJMZDNGSTUAOUBEABCDPQR $.

    $( A linear Hilbert space operator is a Hilbert space operator.
       (Contributed by NM, 23-Jan-2006.)  (New usage is discouraged.) $)
    lnopfi $p |- T : ~H --> ~H $=
      ( clo wcel chil wf lnopf ax-mp ) ACDEEAFBAGH $.

    $( The value of a linear Hilbert space operator at zero is zero.  Remark in
       [Beran] p. 99.  (Contributed by NM, 11-May-2005.)
       (New usage is discouraged.) $)
    lnop0i $p |- ( T ` 0h ) = 0h $=
      ( clo wcel c0v cfv wceq lnop0 ax-mp ) ACDEAFEGBAHI $.

    $( Additive property of a linear Hilbert space operator.  (Contributed by
       NM, 11-May-2005.)  (New usage is discouraged.) $)
    lnopaddi $p |- ( ( A e. ~H /\ B e. ~H ) ->
         ( T ` ( A +h B ) ) = ( ( T ` A ) +h ( T ` B ) ) ) $=
      ( chil wcel wa c1 csm cva cfv wceq ax-1cn lnopli mp3an1 ax-hvmulid oveq1d
      co cc adantr fveq2d lnopfi ffvelrni syl 3eqtr3d ) AEFZBEFZGZHAIRZBJRZCKZH
      ACKZIRZBCKZJRZABJRZCKZULUNJRHSFUFUGUKUOLMHABCDNOUFUKUQLUGUFUJUPCUFUIABJAP
      QUATUHUMULUNJUFUMULLZUGUFULEFUREEACCDUBUCULPUDTQUE $.

    $( Multiplicative property of a linear Hilbert space operator.
       (Contributed by NM, 11-May-2005.)  (New usage is discouraged.) $)
    lnopmuli $p |- ( ( A e. CC /\ B e. ~H ) ->
         ( T ` ( A .h B ) ) = ( A .h ( T ` B ) ) ) $=
      ( clo wcel cc chil csm co cfv wceq lnopmul mp3an1 ) CEFAGFBHFABIJCKABCKIJ
      LDABCMN $.

    $( Sum/product property of a linear Hilbert space operator.  (Contributed
       by NM, 1-Jul-2005.)  (New usage is discouraged.) $)
    lnopaddmuli $p |- ( ( A e. CC /\ B e. ~H /\ C e. ~H ) ->
         ( T ` ( B +h ( A .h C ) ) ) = ( ( T ` B ) +h ( A .h ( T ` C ) ) ) ) $=
      ( cc wcel chil w3a csm co cva cfv wa hvmulcl lnopaddi sylan2 3impb 3com12
      wceq lnopmuli 3adant2 oveq2d eqtrd ) AFGZBHGZCHGZIZBACJKZLKDMZBDMZUIDMZLK
      ZUKACDMJKZLKUFUEUGUJUMTZUFUEUGUOUEUGNUFUIHGUOACOBUIDEPQRSUHULUNUKLUEUGULU
      NTUFACDEUAUBUCUD $.

    $( Subtraction property for a linear Hilbert space operator.  (Contributed
       by NM, 1-Jul-2005.)  (New usage is discouraged.) $)
    lnopsubi $p |- ( ( A e. ~H /\ B e. ~H ) ->
         ( T ` ( A -h B ) ) = ( ( T ` A ) -h ( T ` B ) ) ) $=
      ( chil wcel wa c1 cneg csm co cva cfv cc wceq neg1cn lnopaddmuli hvsubval
      cmv ffvelrni mp3an1 fveq2d lnopfi syl2an 3eqtr4d ) AEFZBEFZGZAHIZBJKLKZCM
      ZACMZUIBCMZJKLKZABSKZCMULUMSKZUINFUFUGUKUNOPUIABCDQUAUHUOUJCABRUBUFULEFUM
      EFUPUNOUGEEACCDUCZTEEBCUQTULUMRUDUE $.

    $( Subtraction/product property of a linear Hilbert space operator.
       (Contributed by NM, 2-Jul-2005.)  (New usage is discouraged.) $)
    lnopsubmuli $p |- ( ( A e. CC /\ B e. ~H /\ C e. ~H ) ->
         ( T ` ( B -h ( A .h C ) ) ) = ( ( T ` B ) -h ( A .h ( T ` C ) ) ) ) $=
      ( cc wcel chil w3a csm co cmv cfv wa hvmulcl lnopsubi sylan2 3impb 3com12
      wceq lnopmuli oveq2d 3adant2 eqtrd ) AFGZBHGZCHGZIBACJKZLKDMZBDMZUHDMZLKZ
      UJACDMJKZLKZUFUEUGUIULTZUFUEUGUOUEUGNZUFUHHGUOACOBUHDEPQRSUEUGULUNTUFUPUK
      UMUJLACDEUAUBUCUD $.

    $( Product/subtraction property of a linear Hilbert space operator.
       (Contributed by NM, 2-Jul-2005.)  (New usage is discouraged.) $)
    lnopmulsubi $p |- ( ( A e. CC /\ B e. ~H /\ C e. ~H ) ->
         ( T ` ( ( A .h B ) -h C ) ) = ( ( A .h ( T ` B ) ) -h ( T ` C ) ) ) $=
      ( wcel chil w3a csm cmv cfv wceq hvmulcl lnopsubi stoic3 lnopmuli 3adant3
      cc co oveq1d eqtrd ) ARFZBGFZCGFZHZABISZCJSDKZUFDKZCDKZJSZABDKISZUIJSUBUC
      UFGFUDUGUJLABMUFCDENOUEUHUKUIJUBUCUHUKLUDABDEPQTUA $.
  $}

  ${
    $d x A $.  $d x T $.  $d x U $.
    $( Move a scalar product out of a composition of operators.  The operator
       ` T ` must be linear, unlike ~ homco1 that works for any operators.
       (Contributed by NM, 13-Aug-2006.)  (New usage is discouraged.) $)
    homco2 $p |- ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) ->
                  ( T o. ( A .op U ) ) = ( A .op ( T o. U ) ) ) $=
      ( vx wcel chil wf chot co ccom cfv wceq csm syl3anc homulcl fvco3 syl2anc
      homval fco 3eqtr4d cc clo w3a cv wral wa simpl1 simpl3 simpr fveq2d sylan
      3adant2 oveq2d lnopf 3ad2ant2 simp3 adantr ffvelrnda lnopmul ralrimiva wb
      simpl2 simp1 hoeq mpbid ) AUAEZBUBEZFFCGZUCZDUDZBACHIZJZKZVJABCJZHIZKZLZD
      FUEZVLVOLZVIVQDFVIVJFEZUFZVJVKKZBKZAVJCKZMIZBKZVMVPWAWBWEBWAVFVHVTWBWELVF
      VGVHVTUGZVFVGVHVTUHZVIVTUIZAVJCRNUJVIFFVKGZVTVMWCLVFVHWJVGACOULZFFVJBVKPU
      KWAAVJVNKZMIZAWDBKZMIZVPWFWAWLWNAMWAVHVTWLWNLWHWIFFVJBCPQUMWAVFFFVNGZVTVP
      WMLWGVIWPVTVIFFBGZVHWPVGVFWQVHBUNUOZVFVGVHUPZFFFBCSQZUQWIAVJVNRNWAVGVFWDF
      EWFWOLVFVGVHVTVBWGVIFFVJCWSURAWDBUSNTTUTVIFFVLGZFFVOGZVRVSVAVIWQWJXAWRWKF
      FFBVKSQVIVFWPXBVFVGVHVCWTAVNOQDVLVOVDQVE $.
  $}

  ${
    $d x y z w $.
    $( The identity function (restricted to Hilbert space) is a unitary
       operator.  (Contributed by NM, 21-Jan-2006.)
       (New usage is discouraged.) $)
    idunop $p |- ( _I |` ~H ) e. UniOp $=
      ( vx vy cid chil cres cuo wcel wfo cv cfv wceq wral wf1o f1oi f1ofo ax-mp
      csp co fvresi oveqan12d rgen2a elunop mpbir2an ) CDEZFGDDUDHZAIZUDJZBIZUD
      JZQRUFUHQRKZBDLADLDDUDMUEDNDDUDOPUJABDUFDGUHDGUGUFUIUHQDUFSDUHSTUAABUDUBU
      C $.

    $( The identically zero function is a continuous Hilbert space operator.
       (Contributed by NM, 7-Feb-2006.)  (New usage is discouraged.) $)
    0cnop $p |- 0hop e. ContOp $=
      ( vw vx vz vy ch0o wcel chil cv cmv cno cfv clt wbr wral crp cc0 c0v wceq
      co c1 ccop wf wi wrex ho0f 1rp ho0val oveqan12rd adantlr ax-hv0cl hvsubid
      wa ax-mp syl6eq fveq2d norm0 rpgt0 ad2antlr eqbrtrd a1d ralrimiva ralbidv
      breq2 imbi1d rspcev sylancr rgen2 elcnop mpbir2an ) EUAFGGEUBAHZBHZISJKZC
      HZLMZVJEKZVKEKZISZJKZDHZLMZUCZAGNZCOUDZDONBGNUEWCBDGOVKGFZVSOFZULZTOFVLTL
      MZVTUCZAGNZWCUFWFWHAGWFVJGFZULZVTWGWKVRPVSLWKVRQJKPWKVQQJWKVQQQISZQWDWJVQ
      WLRWEWJWDVOQVPQIVJUGVKUGUHUIQGFWLQRUJQUKUMUNUOUPUNWEPVSLMWDWJVSUQURUSUTVA
      WBWICTOVMTRZWAWHAGWMVNWGVTVMTVLLVCVDVBVEVFVGBDCAEVHVI $.

    $( The identically zero function is a continuous Hilbert space functional.
       (Contributed by NM, 7-Feb-2006.)  (New usage is discouraged.) $)
    0cnfn $p |- ( ~H X. { 0 } ) e. ContFn $=
      ( vw vx vz vy chil cc0 wcel cc cv co cfv clt wbr cmin cabs wi wral crp wa
      c1 csn cxp ccnfn wf cmv cno wrex 0cn fconst6 1rp wceq fvconst2 oveqan12rd
      c0ex adantlr 0m0e0 syl6eq abs0 rpgt0 ad2antlr eqbrtrd a1d ralrimiva breq2
      fveq2d imbi1d ralbidv rspcev sylancr rgen2 elcnfn mpbir2an ) EFUAUBZUCGEH
      VMUDAIZBIZUEJUFKZCIZLMZVNVMKZVOVMKZNJZOKZDIZLMZPZAEQZCRUGZDRQBEQEFHUHUIWG
      BDERVOEGZWCRGZSZTRGVPTLMZWDPZAEQZWGUJWJWLAEWJVNEGZSZWDWKWOWBFWCLWOWBFOKFW
      OWAFOWOWAFFNJZFWHWNWAWPUKWIWNWHVSFVTFNEFVNUNULEFVOUNULUMUOUPUQVEURUQWIFWC
      LMWHWNWCUSUTVAVBVCWFWMCTRVQTUKZWEWLAEWQVRWKWDVQTVPLVDVFVGVHVIVJBDCAVMVKVL
      $.

    $( The identity function (restricted to Hilbert space) is a continuous
       operator.  (Contributed by NM, 7-Feb-2006.)
       (New usage is discouraged.) $)
    idcnop $p |- ( _I |` ~H ) e. ContOp $=
      ( vw vx vz vy cid chil cres ccop wcel cv cmv co cno cfv clt wbr wi fvresi
      wral crp wf wrex wf1o f1oi f1of ax-mp id oveqan12rd fveq2d breq1d biimprd
      ralrimiva weq breq2 imbi1d ralbidv rspcev syl2anr rgen2 elcnop mpbir2an
      wa ) EFGZHIFFVCUAZAJZBJZKLZMNZCJZOPZVEVCNZVFVCNZKLZMNZDJZOPZQZAFSZCTUBZDT
      SBFSFFVCUCVDFUDFFVCUEUFVSBDFTVOTIZVTVHVOOPZVPQZAFSZVSVFFIZVTUGWDWBAFWDVEF
      IZVBZVPWAWFVNVHVOOWFVMVGMWEWDVKVEVLVFKFVERFVFRUHUIUJUKULVRWCCVOTCDUMZVQWB
      AFWGVJWAVPVIVOVHOUNUOUPUQURUSBDCAVCUTVA $.

    $( The Hilbert space identity operator is a Hermitian operator.
       (Contributed by NM, 22-Apr-2006.)  (New usage is discouraged.) $)
    idhmop $p |- Iop e. HrmOp $=
      ( vx vy chio cho wcel chil wf cv cfv csp wceq wral wf1o hoif ax-mp hoival
      co f1of eqcomd oveqan12d rgen2a elhmop mpbir2an ) CDEFFCGZAHZBHZCIZJQUECI
      ZUFJQKZBFLAFLFFCMUDNFFCROUIABFUEFEZUFFEUEUHUGUFJUJUHUEUEPSUFPTUAABCUBUC
      $.

    $( The identically zero function is a Hermitian operator.  (Contributed by
       NM, 8-Aug-2006.)  (New usage is discouraged.) $)
    0hmop $p |- 0hop e. HrmOp $=
      ( vx vy ch0o cho wcel chil wf cv cfv csp co wceq wral ho0f cc0 c0v ho0val
      wa oveq2d hi02 sylan9eqr oveq1d sylan9eq eqtr4d rgen2a elhmop mpbir2an
      hi01 ) CDEFFCGAHZBHZCIZJKZUICIZUJJKZLZBFMAFMNUOABFUIFEZUJFEZRULOUNUQUPULU
      IPJKOUQUKPUIJUJQSUITUAUPUQUNPUJJKOUPUMPUJJUIQUBUJUHUCUDUEABCUFUG $.

    $( The identically zero function is a linear Hilbert space operator.
       (Contributed by NM, 7-Feb-2006.)  (New usage is discouraged.) $)
    0lnop $p |- 0hop e. LinOp $=
      ( ch0o cho wcel clo 0hmop hmoplin ax-mp ) ABCADCEAFG $.

    $( The identically zero function is a linear Hilbert space functional.
       (Contributed by NM, 14-Feb-2006.)  (New usage is discouraged.) $)
    0lnfn $p |- ( ~H X. { 0 } ) e. LinFn $=
      ( vx vy vz chil cc0 csn cxp clf wcel cc cv co cfv cmul caddc wceq wral wa
      c0ex fvconst2 wf csm cva 0cn fconst6 hvmulcl hvaddcl syl oveq2d sylan9eqr
      sylan mul01 oveqan12d 00id syl6eq eqtr4d 3impa rgen3 ellnfn mpbir2an ) DE
      FGZHIDJVAUAAKZBKZUBLZCKZUCLZVAMZVBVCVAMZNLZVEVAMZOLZPZCDQBDQAJQDEJUDUEVLA
      BCJDDVBJIZVCDIZVEDIZVLVMVNRZVORZVGEVKVQVFDIZVGEPVPVDDIVOVRVBVCUFVDVEUGUKD
      EVFSTUHVQVKEEOLEVPVOVIEVJEOVNVMVIVBENLEVNVHEVBNDEVCSTUIVBULUJDEVESTUMUNUO
      UPUQURABCVAUSUT $.

    $( The norm of the zero operator is zero.  (Contributed by NM, 8-Feb-2006.)
       (New usage is discouraged.) $)
    nmop0 $p |- ( normop ` 0hop ) = 0 $=
      ( vy vx ch0o cfv cv cno c1 cle wbr wceq wa chil wrex cab cxr clt csup cc0
      wcel c0v cnop csn wf ho0f nmopval ax-mp ho0val fveq2d norm0 syl6eq eqeq2d
      anbi2d rexbiia 0le1 fveq2 breq1d rspcev mp2an r19.41v mpbiran bitri abbii
      ax-hv0cl df-sn eqtr4i supeq1i wor xrltso 0xr supsn 3eqtri ) CUADZAEZFDZGH
      IZBEZVMCDZFDZJZKZALMZBNZOPQZRUBZOPQZRLLCUCVLWCJUDBACUEUFOWBWDPWBVPRJZBNWD
      WAWFBWAVOWFKZALMZWFVTWGALVMLSZVSWFVOWIVRRVPWIVRTFDZRWIVQTFVMUGUHUIUJUKULU
      MWHVOALMZWFTLSRGHIZWKVCUNVOWLATLVMTJZVNRGHWMVNWJRVMTFUOUIUJUPUQURVOWFALUS
      UTVAVBBRVDVEVFOPVGROSWERJVHVIORPVJURVK $.

    $( The norm of the identically zero functional is zero.  (Contributed by
       NM, 25-Apr-2006.)  (New usage is discouraged.) $)
    nmfn0 $p |- ( normfn ` ( ~H X. { 0 } ) ) = 0 $=
      ( vy vx chil cc0 cfv cv cno c1 cle wbr cabs wceq wa wrex cab cxr clt csup
      wcel c0v csn cxp cnmf cc wf 0lnfn lnfnf nmfnval mp2b c0ex fvconst2 fveq2d
      abs0 syl6eq eqeq2d anbi2d rexbiia ax-hv0cl 0le1 fveq2 norm0 breq1d rspcev
      clf mp2an r19.41v mpbiran bitri abbii df-sn eqtr4i supeq1i wor xrltso 0xr
      supsn 3eqtri ) CDUAZUBZUCEZAFZGEZHIJZBFZWAVSEZKEZLZMZACNZBOZPQRZVRPQRZDVS
      VDSCUDVSUEVTWKLUFVSUGBAVSUHUIPWJVRQWJWDDLZBOVRWIWMBWIWCWMMZACNZWMWHWNACWA
      CSZWGWMWCWPWFDWDWPWFDKEDWPWEDKCDWAUJUKULUMUNUOUPUQWOWCACNZWMTCSDHIJZWQURU
      SWCWRATCWATLZWBDHIWSWBTGEDWATGUTVAUNVBVCVEWCWMACVFVGVHVIBDVJVKVLPQVMDPSWL
      DLVNVOPDQVPVEVQ $.
  $}

  ${
    $d x y T $.
    $( A Hermitian operator is a bounded linear operator (Hellinger-Toeplitz
       Theorem).  (Contributed by NM, 18-Jan-2008.)
       (New usage is discouraged.) $)
    hmopbdoptHIL $p |- ( T e. HrmOp -> T e. BndLinOp ) $=
      ( vx vy cho wcel clo cv cfv csp co wceq chil wral cbo hmoplin hmop 3expib
      ralrimivv cop eqid cva csm chlo hilhl df-hba hhip clno hhlnoi cblo hhbloi
      cno htth mp3an1 syl2anc ) ADEZAFEZBGZCGZAHIJUQAHURIJKZCLMBLMZANEZAOUOUSBC
      LLUOUQLEURLEUSUQURAPQRUAUBSUKSZUCEUPUTVAUDBCNIAVBFLUEVBVBTZUFVBVBVBUGJZVC
      VDTUHVBVBUIJZVBVCVETUJULUMUN $.
  $}

  ${
    $d x R $.  $d x S $.  $d x T $.
    hoddi.1 $e |- R e. LinOp $.
    hoddi.2 $e |- S : ~H --> ~H $.
    hoddi.3 $e |- T : ~H --> ~H $.
    $( Distributive law for Hilbert space operator difference.  (Interestingly,
       the reverse distributive law ~ hocsubdiri does not require linearity.)
       (Contributed by NM, 11-Mar-2006.)  (New usage is discouraged.) $)
    hoddii $p |- ( R o. ( S -op T ) ) = ( ( R o. S ) -op ( R o. T ) ) $=
      ( vx chod co ccom cfv wceq chil wcel cmv ffvelrni wf hodval hocoi hocofi
      wral lnopsubi syl2anc mp3an12 fveq2d lnopfi oveq12d 3eqtr4d hosubcli rgen
      cv hoeqi mpbi ) GUKZABCHIZJZKZUNABJZACJZHIZKZLZGMUAUPUTLVBGMUNMNZUNUOKZAK
      ZUNURKZUNUSKZOIZUQVAVCUNBKZUNCKZOIZAKZVIAKZVJAKZOIZVEVHVCVIMNVJMNVLVOLMMU
      NBEPMMUNCFPVIVJADUBUCVCVDVKAMMBQMMCQVCVDVKLEFUNBCRUDUEVCVFVMVGVNOUNABADUF
      ZESUNACVPFSUGUHUNAUOVPBCEFUIZSMMURQMMUSQVCVAVHLABVPETZACVPFTZUNURUSRUDUHU
      JGUPUTAUOVPVQTURUSVRVSUIULUM $.
  $}

  $( Distributive law for Hilbert space operator difference.  (Interestingly,
     the reverse distributive law ~ hocsubdiri does not require linearity.)
     (Contributed by NM, 23-Aug-2006.)  (New usage is discouraged.) $)
  hoddi $p |- ( ( R e. LinOp /\ S : ~H --> ~H /\ T : ~H --> ~H ) ->
              ( R o. ( S -op T ) ) = ( ( R o. S ) -op ( R o. T ) ) ) $=
    ( clo wcel chil wf chod co ccom wceq cif coeq1 oveq12d eqeq12d coeq2d coeq2
    ch0o ho0f elimf oveq1 oveq1d oveq2 oveq2d 0lnop elimel hoddii dedth3h ) ADE
    ZFFBGZFFCGZABCHIZJZABJZACJZHIZKUIARLZULJZUQBJZUQCJZHIZKUQUJBRLZCHIZJZUQVBJZ
    UTHIZKUQVBUKCRLZHIZJZVEUQVGJZHIZKABCRRRAUQKZUMURUPVAAUQULMVLUNUSUOUTHAUQBMA
    UQCMNOBVBKZURVDVAVFVMULVCUQBVBCHUAPVMUSVEUTHBVBUQQUBOCVGKZVDVIVFVKVNVCVHUQC
    VGVBHUCPVNUTVJVEHCVGUQQUDOUQVBVGARDUEUFFFBRSTFFCRSTUGUH $.

  $( The norm of any operator on the trivial Hilbert space is zero.  (This is
     the reason we need ` ~H =/= 0H ` in ~ nmopun .)  (Contributed by NM,
     24-Feb-2006.)  (New usage is discouraged.) $)
  nmop0h $p |- ( ( ~H = 0H /\ T : ~H --> ~H ) -> ( normop ` T ) = 0 ) $=
    ( chil c0h wceq wf wa cnop cfv ch0o cc0 c0v csn wb df-ch0 eqeq2i feq3 sylbi
    cxp ax-hv0cl elexi fconst2 df0op2 xpeq2i bitr4i syl6bb biimpa fveq2d syl6eq
    eqtri nmop0 ) BCDZBBAEZFZAGHIGHJUMAIGUKULAIDZUKULBKLZAEZUNUKBUODULUPMCUOBNO
    BUOBAPQUPABUORZDUNBKAKBSTUAIUQAIBCRUQUBCUOBNUCUIOUDUEUFUGUJUH $.

  $( The identity function (restricted to Hilbert space) is a linear operator.
     (Contributed by NM, 24-Jan-2006.)  (New usage is discouraged.) $)
  idlnop $p |- ( _I |` ~H ) e. LinOp $=
    ( cid chil cres cuo wcel clo idunop unoplin ax-mp ) ABCZDEJFEGJHI $.

  $( The identically zero operator is bounded.  (Contributed by NM,
     14-Feb-2006.)  (New usage is discouraged.) $)
  0bdop $p |- 0hop e. BndLinOp $=
    ( ch0o cbo wcel clo cnop cfv cpnf clt wbr 0lnop nmop0 0ltpnf eqbrtri elbdop
    cc0 mpbir2an ) ABCADCAEFZGHIJQOGHKLMANP $.

  ${
    $d x y $.
    $( Adjoint of the zero operator.  (Contributed by NM, 20-Feb-2006.)
       (New usage is discouraged.) $)
    adj0 $p |- ( adjh ` 0hop ) = 0hop $=
      ( vx vy chil ch0o wf cv cfv csp co wceq wral cado ho0f wcel wa cc0 ho0val
      c0v oveq1d hi01 sylan9eq oveq2d hi02 sylan9eqr eqtr4d rgen2a adjeq mp3an
      ) CCDEZUIAFZDGZBFZHIZUJULDGZHIZJZBCKACKDLGDJMMUPABCUJCNZULCNZOUMPUOUQURUM
      RULHIPUQUKRULHUJQSULTUAURUQUOUJRHIPURUNRUJHULQUBUJUCUDUEUFABDDUGUH $.
  $}

  ${
    $d x y z T $.
    nmlnop0.1 $e |- T e. LinOp $.
    $( A linear operator with a zero norm is identically zero.  (Contributed by
       NM, 8-Feb-2006.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    nmlnop0iALT $p |- ( ( normop ` T ) = 0 <-> T = 0hop ) $=
      ( vx vz vy cfv cc0 wceq ch0o chil wcel wa c0v wne c1 cno wbr syl2anc cle
      cr cnop cv wral wn cdiv co csm clt wi cc normcl recnd adantr norm-i fveq2
      lnop0i syl6eq syl6bi necon3d recne0d simpr wo wb reccld ffvelrni hvmul0or
      imp lnopfi necon3abid neanior syl6bbr mpbir2and hvmulcl normgt0 syl mpbid
      ex adantl wrex cab cxr csup wss wf nmopsetretHIL ax-mp ressxr sstri simpl
      necon3i sylan2 syl6eqel eqle lnopmuli eqcomd fveq2d breq1d eqeq2d anbi12d
      norm1 1re rspcev syl12anc fvex anbi2d rexbidv elab sylibr supxrub sylancr
      eqeq1 adantll nmopval eqeq1i biimpi breqtrd 0re lenlt sylancl pm2.65d nne
      ad2antrr sylib ho0val eqtr4d ralrimiva wfn ho0f eqfnfv mp2an nmop0 impbii
      ffn ) AUAFZGHZAIHZYOCUBZAFZYQIFZHZCJUCZYPYOYTCJYOYQJKZLZYRMYSUUCYRMNZUDYR
      MHZUUCUUDGOYQPFZUEUFZYRUGUFZPFZUHQZUUBUUDUUJUIYOUUBUUDUUJUUBUUDLZUUHMNZUU
      JUUKUULUUGGNZUUDUUKUUFUUBUUFUJKUUDUUBUUFYQUKULUMZUUBUUDUUFGNUUBUUFGYRMUUB
      UUFGHYQMHZUUEYQUNUUOYRMAFMYQMAUOABUPUQZURUSVGZUTUUBUUDVAUUKUULUUGGHUUEVBZ
      UDUUMUUDLUUKUURUUHMUUKUUGUJKZYRJKZUUHMHUURVCUUKUUFUUNUUQVDZUUBUUTUUDJJYQA
      ABVHZVEUMZUUGYRVFRVIUUGGYRMVJVKVLUUKUUHJKZUULUUJVCUUKUUSUUTUVDUVAUVCUUGYR
      VMRZUUHVNVOVPVQVRUUCUUDUUJUDZUUCUUDLZUUIGSQZUVFUVGUUIDUBZPFZOSQZEUBZUVIAF
      ZPFZHZLZDJVSZEVTZWAUHWBZGSUUBUUDUUIUVSSQZYOUUKUVRWAWCUUIUVRKZUVTUVRTWAJJA
      WDZUVRTWCUVBEDAWEWFWGWHUUKUVKUUIUVNHZLZDJVSZUWAUUKUUGYQUGUFZJKZUWFPFZOSQZ
      UUIUWFAFZPFZHZUWEUUKUUSUUBUWGUVAUUBUUDWIZUUGYQVMRUUKUWHTKUWHOHZUWIUUKUWHO
      TUUDUUBYQMNUWNYQMYRMUUPWJYQWTWKZXAWLUWOUWHOWMRUUKUUHUWJPUUKUWJUUHUUKUUSUU
      BUWJUUHHUVAUWMUUGYQABWNRWOWPUWDUWIUWLLDUWFJUVIUWFHZUVKUWIUWCUWLUWPUVJUWHO
      SUVIUWFPUOWQUWPUVNUWKUUIUWPUVMUWJPUVIUWFAUOWPWRWSXBXCUVQUWEEUUIUUHPXDUVLU
      UIHZUVPUWDDJUWQUVOUWCUVKUVLUUIUVNXKXEXFXGXHUVRUUIXIXJXLYOUVSGHZUUBUUDYOUW
      RYNUVSGUWBYNUVSHUVBEDAXMWFXNXOYBXPUUBUUDUVHUVFVCZYOUUKUUITKZGTKUWSUUKUVDU
      WTUVEUUHUKVOXQUUIGXRXSXLVPVQXTYRMYAYCUUBYSMHYOYQYDVRYEYFAJYGZIJYGZYPUUAVC
      UWBUXAUVBJJAYMWFJJIWDUXBYHJJIYMWFCJAIYIYJXHYPYNIUAFGAIUAUOYKUQYL $.

    $( A linear operator with a zero norm is identically zero.  (Contributed by
       NM, 18-Jan-2008.)  (New usage is discouraged.) $)
    nmlnop0iHIL $p |- ( ( normop ` T ) = 0 <-> T = 0hop ) $=
      ( clo wcel cnop cfv cc0 wceq ch0o wb cva csm cop cno cnmoo co eqid hhnmoi
      c0o hh0oi clno hhlnoi hhnv nmlno0i ax-mp ) ACDAEFGHAIHJBAKLMNMZCEUFIUFUFU
      FOPZUFQZUGQRUFUFUFSPZUHUIQTUFUFUFUAPZUHUJQUBUFUHUCZUKUDUE $.

    $( A linear Hilbert space operator that is not identically zero has a
       positive norm.  (Contributed by NM, 9-Feb-2006.)
       (New usage is discouraged.) $)
    nmlnopgt0i $p |- ( T =/= 0hop <-> 0 < ( normop ` T ) ) $=
      ( ch0o wne cnop cfv cc0 clt wbr nmlnop0iHIL necon3bii chil lnopfi nmopgt0
      wf wb ax-mp bitr3i ) ACDAEFZGDZGSHIZSGACABJKLLAOTUAPABMANQR $.
  $}

  $( A linear operator with a zero norm is identically zero.  (Contributed by
     NM, 12-Aug-2006.)  (New usage is discouraged.) $)
  nmlnop0 $p |- ( T e. LinOp -> ( ( normop ` T ) = 0 <-> T = 0hop ) ) $=
    ( clo wcel cnop cfv cc0 wceq wb cif fveq2 eqeq1d eqeq1 bibi12d 0lnop elimel
    ch0o nmlnop0iHIL dedth ) ABCZADEZFGZAPGZHSAPIZDEZFGZUCPGZHAPAUCGZUAUEUBUFUG
    TUDFAUCDJKAUCPLMUCAPBNOQR $.

  $( A linear operator with a nonzero norm is nonzero.  (Contributed by NM,
     12-Aug-2006.)  (New usage is discouraged.) $)
  nmlnopne0 $p |- ( T e. LinOp -> ( ( normop ` T ) =/= 0 <-> T =/= 0hop ) ) $=
    ( clo wcel cnop cfv cc0 ch0o nmlnop0 necon3bid ) ABCADEFAGAHI $.

  ${
    $d x y z A $.  $d x y z T $.
    lnopm.1 $e |- T e. LinOp $.
    $( The scalar product of a linear operator is a linear operator.
       (Contributed by NM, 10-Mar-2006.)  (New usage is discouraged.) $)
    lnopmi $p |- ( A e. CC -> ( A .op T ) e. LinOp ) $=
      ( vx vy vz cc wcel chil co wf cv csm cva cfv wceq wral wa homval mp3an2
      chot clo lnopfi homulcl mpan2 hvmulcl hvaddcl sylan sylan2 id ax-hvdistr1
      ffvelrni syl3an 3expb lnopli 3expa oveq2d adantl adantrl hvmulcom syl3an3
      eqtr4d oveqan12d anandis 3eqtr4rd ralrimdv ralrimivv ellnop sylanbrc
      exp32 ) AGHZIIABUAJZKZDLZELZMJZFLZNJZVLOZVNVOVLOZMJZVQVLOZNJZPZFIQZEIQDGQ
      VLUBHVKIIBKZVMBCUCZABUDUEVKWEDEGIVKVNGHZVOIHZRZWDFIVKWJVQIHZWDVKWJWKRZRZV
      SAVRBOZMJZWCWLVKVRIHZVSWOPZWJVPIHWKWPVNVOUFVPVQUGUHVKWFWPWQWGAVRBSTUIWMAV
      NVOBOZMJZVQBOZNJZMJZAWSMJZAWTMJZNJZWOWCVKWJWKXBXEPZVKVKWJWSIHZWKWTIHXFVKU
      JWIWHWRIHZXGIIVOBWGULZVNWRUFUIIIVQBWGULAWSWTUKUMUNWLWOXBPVKWLWNXAAMWHWIWK
      WNXAPVNVOVQBCUOUPUQURVKWJWKWCXEPVKWJRZVKWKRWAXCWBXDNXJWAVNAWRMJZMJZXCXJVT
      XKVNMVKWIVTXKPZWHVKWFWIXMWGAVOBSTUSUQVKWHWIXCXLPZWIVKWHXHXNXIAVNWRUTVAUNV
      BVKWFWKWBXDPWGAVQBSTVCVDVEVBVJVFVGDEFVLVHVI $.
  $}

  ${
    $d x y z S $.  $d x y z T $.
    lnopco.1 $e |- S e. LinOp $.
    lnopco.2 $e |- T e. LinOp $.
    $( The sum of two linear operators is linear.  (Contributed by NM,
       10-Mar-2006.)  (New usage is discouraged.) $)
    lnophsi $p |- ( S +op T ) e. LinOp $=
      ( vx vy vz co wcel chil wf cv csm cva cfv wceq wral cc wa ffvelrni lnopfi
      chos clo hoaddcli hvmulcl lnopaddi oveq12d sylan syl anim12i hvadd4 eqtrd
      syl2anc hvaddcl hosval mp3an12 jca ax-hvdistr1 3expb sylan2 oveq2d adantl
      lnopmuli 3eqtr4d oveqan12d ralrimiva rgen2 ellnop mpbir2an ) ABUBHZUCIJJV
      JKELZFLZMHZGLZNHZVJOZVKVLVJOZMHZVNVJOZNHZPZGJQZFJQERQABACUAZBDUAZUDWBEFRJ
      VKRIZVLJIZSZWAGJWGVNJIZSZVOAOZVOBOZNHZVMAOZVMBOZNHZVNAOZVNBOZNHZNHZVPVTWI
      WLWMWPNHZWNWQNHZNHZWSWGVMJIZWHWLXBPVKVLUEZXCWHSWJWTWKXANVMVNACUFVMVNBDUFU
      GUHWIWMJIZWPJIZSWNJIZWQJIZSXBWSPWGXEWHXFWGXCXEXDJJVMAWCTUIJJVNAWCTUJWGXGW
      HXHWGXCXGXDJJVMBWDTUIJJVNBWDTUJWMWPWNWQUKUMULWIVOJIZVPWLPZWGXCWHXIXDVMVNU
      NUHJJAKZJJBKZXIXJWCWDVOABUOUPUIWGWHVRWOVSWRNWGVKVLAOZVLBOZNHZMHZVKXMMHZVK
      XNMHZNHZVRWOWFWEXMJIZXNJIZSXPXSPZWFXTYAJJVLAWCTJJVLBWDTUQWEXTYAYBVKXMXNUR
      USUTWFVRXPPWEWFVQXOVKMXKXLWFVQXOPWCWDVLABUOUPVAVBWGWMXQWNXRNVKVLACVCVKVLB
      DVCUGVDXKXLWHVSWRPWCWDVNABUOUPVEVDVFVGEFGVJVHVI $.

    $( The difference of two linear operators is linear.  (Contributed by NM,
       27-Jul-2006.)  (New usage is discouraged.) $)
    lnophdi $p |- ( S -op T ) e. LinOp $=
      ( c1 cneg chot co chos chod clo lnopfi honegsubi wcel neg1cn lnopmi ax-mp
      cc lnophsi eqeltrri ) AEFZBGHZIHABJHKABACLBDLMAUBCUARNUBKNOUABDPQST $.

    $( The composition of two linear operators is linear.  (Contributed by NM,
       8-Mar-2006.)  (New usage is discouraged.) $)
    lnopcoi $p |- ( S o. T ) e. LinOp $=
      ( vx vy vz wcel chil cv csm co cva cfv wceq wral cc lnopfi wa hocoi wf id
      ccom clo hocofi lnopli fveq2d ffvelrni syl3an eqtrd 3expa hvmulcl hvaddcl
      w3a sylan syl oveq2d adantl oveqan12d 3eqtr4d 3impa rgen3 ellnop mpbir2an
      ) ABUCZUDHIIVEUAEJZFJZKLZGJZMLZVENZVFVGVENZKLZVIVENZMLZOZGIPFIPEQPABACRZB
      DRZUEVPEFGQIIVFQHZVGIHZVIIHZVPVSVTSZWASZVJBNZANZVFVGBNZANZKLZVIBNZANZMLZV
      KVOVSVTWAWEWKOVSVTWAUNZWEVFWFKLWIMLZANZWKWLWDWMAVFVGVIBDUFUGVSVSVTWFIHWAW
      IIHWNWKOVSUBIIVGBVRUHIIVIBVRUHVFWFWIACUFUIUJUKWCVJIHZVKWEOWBVHIHWAWOVFVGU
      LVHVIUMUOVJABVQVRTUPWBWAVMWHVNWJMVTVMWHOVSVTVLWGVFKVGABVQVRTUQURVIABVQVRT
      USUTVAVBEFGVEVCVD $.

    $( The composition of a linear operator with one whose norm is zero.
       (Contributed by NM, 10-Mar-2006.)  (New usage is discouraged.) $)
    lnopco0i $p |- ( ( normop ` T ) = 0 -> ( normop ` ( S o. T ) ) = 0 ) $=
      ( vx ch0o wceq ccom cnop cfv cc0 chil wfn wf lnopcoi lnopfi ffn ax-mp c0v
      ho0f coeq2 cv wral wb 0lnop eqfnfv mp2an wcel ho0val fveq2d lnop0i syl6eq
      hocoi 3eqtr4d mprgbir nmlnop0iHIL 3imtr4i ) BFGZABHZFGBIJKGUSIJKGURUSAFHZ
      FBFAUAUTFGZEUBZUTJZVBFJZGZELUTLMZFLMZVAVEELUCUDLLUTNVFUTAFCUEOPLLUTQRLLFN
      VGTLLFQRELUTFUFUGVBLUHZVDAJZSVCVDVHVISAJSVHVDSAVBUIZUJACUKULVBAFACPTUMVJU
      NUOULBDUPUSABCDOUPUQ $.
  $}

  ${
    $d x y z T $.
    lnopeq0.1 $e |- T e. LinOp $.
    ${
      lnopeq0lem1.2 $e |- A e. ~H $.
      lnopeq0lem1.3 $e |- B e. ~H $.
      $( Lemma for ~ lnopeq0i .  Apply the generalized polarization identity
         ~ polid2i to the quadratic form ` ( ( T `` x ) , x ) ` .  (Contributed
         by NM, 26-Jul-2006.)  (New usage is discouraged.) $)
      lnopeq0lem1 $p |- ( ( T ` A ) .ih B ) =
             ( ( ( ( ( T ` ( A +h B ) ) .ih ( A +h B ) ) -
                   ( ( T ` ( A -h B ) ) .ih ( A -h B ) ) ) + ( _i x.
        ( ( ( T ` ( A +h ( _i .h B ) ) ) .ih ( A +h ( _i .h B ) ) ) -
      ( ( T ` ( A -h ( _i .h B ) ) ) .ih ( A -h ( _i .h B ) ) ) ) ) ) / 4 ) $=
        ( cfv csp co cva cmv cmin ci cmul caddc c4 chil wcel wceq oveq1i lnopfi
        cdiv ffvelrni ax-mp polid2i lnopaddi mp2an lnopsubi oveq12i lnopaddmuli
        csm cc ax-icn mp3an lnopsubmuli oveq2i eqtr4i ) ACGZBHIURBCGZJIZABJIZHI
        ZURUSKIZABKIZHIZLIZMURMUSUKIZJIZAMBUKIZJIZHIZURVGKIZAVIKIZHIZLIZNIZOIZP
        UBIVACGZVAHIZVDCGZVDHIZLIZMVJCGZVJHIZVMCGZVMHIZLIZNIZOIZPUBIURBUSAAQRZU
        RQREQQACCDUAZUCUDFBQRZUSQRFQQBCWKUCUDEUEWIVQPUBWBVFWHVPOVSVBWAVELVRUTVA
        HWJWLVRUTSEFABCDUFUGTVTVCVDHWJWLVTVCSEFABCDUHUGTUIWGVOMNWDVKWFVNLWCVHVJ
        HMULRZWJWLWCVHSUMEFMABCDUJUNTWEVLVMHWMWJWLWEVLSUMEFMABCDUOUNTUIUPUITUQ
        $.
    $}

    $( Lemma for ~ lnopeq0i .  (Contributed by NM, 26-Jul-2006.)
       (New usage is discouraged.) $)
    lnopeq0lem2 $p |- ( ( A e. ~H /\ B e. ~H ) -> ( ( T ` A ) .ih B ) =
           ( ( ( ( ( T ` ( A +h B ) ) .ih ( A +h B ) ) -
                 ( ( T ` ( A -h B ) ) .ih ( A -h B ) ) ) + ( _i x.
      ( ( ( T ` ( A +h ( _i .h B ) ) ) .ih ( A +h ( _i .h B ) ) ) -
     ( ( T ` ( A -h ( _i .h B ) ) ) .ih ( A -h ( _i .h B ) ) ) ) ) ) / 4 ) ) $=
      ( cfv csp co cva cmv cmin ci cmul caddc c4 cdiv wceq oveq1 fveq2d oveq12d
      c0v chil wcel csm fveq2 oveq1d oveq2d eqeq12d ifhvhv0 lnopeq0lem1 dedth2h
      cif oveq2 ) AUAUBZBUAUBZACEZBFGZABHGZCEZUQFGZABIGZCEZUTFGZJGZKAKBUCGZHGZC
      EZVEFGZAVDIGZCEZVHFGZJGZLGZMGZNOGZPUMATUKZCEZBFGZVOBHGZCEZVRFGZVOBIGZCEZW
      AFGZJGZKVOVDHGZCEZWEFGZVOVDIGZCEZWHFGZJGZLGZMGZNOGZPVPUNBTUKZFGZVOWOHGZCE
      ZWQFGZVOWOIGZCEZWTFGZJGZKVOKWOUCGZHGZCEZXEFGZVOXDIGZCEZXHFGZJGZLGZMGZNOGZ
      PABTTAVOPZUPVQVNWNXOUOVPBFAVOCUDUEXOVMWMNOXOVCWDVLWLMXOUSVTVBWCJXOURVSUQV
      RFXOUQVRCAVOBHQZRXPSXOVAWBUTWAFXOUTWACAVOBIQZRXQSSXOVKWKKLXOVGWGVJWJJXOVF
      WFVEWEFXOVEWECAVOVDHQZRXRSXOVIWIVHWHFXOVHWHCAVOVDIQZRXSSSUFSUEUGBWOPZVQWP
      WNXNBWOVPFULXTWMXMNOXTWDXCWLXLMXTVTWSWCXBJXTVSWRVRWQFXTVRWQCBWOVOHULZRYAS
      XTWBXAWAWTFXTWAWTCBWOVOIULZRYBSSXTWKXKKLXTWGXGWJXJJXTWFXFWEXEFXTWEXECXTVD
      XDVOHBWOKUCULZUFZRYDSXTWIXIWHXHFXTWHXHCXTVDXDVOIYCUFZRYESSUFSUEUGVOWOCDAU
      HBUHUIUJ $.

    $( A condition implying that a linear Hilbert space operator is identically
       zero.  Unlike ~ ho01i for arbitrary operators, when the operator is
       linear we need to consider only the values of the quadratic form
       ` ( T `` x ) .ih x ) ` .  (Contributed by NM, 26-Jul-2006.)
       (New usage is discouraged.) $)
    lnopeq0i $p |- ( A. x e. ~H ( ( T ` x ) .ih x ) = 0 <-> T = 0hop ) $=
      ( vy vz cfv csp co cc0 wceq chil wcel cmin ci fveq2 oveq12d sylan2 syl6eq
      c4 id cv wral ch0o cva cmv csm cmul caddc cdiv lnopeq0lem2 adantl hvaddcl
      wa eqeq1d rspccva hvsubcl 0m0e0 cc ax-icn hvmulcl mpan oveq2d 00id oveq1d
      it0e0 4cn 4ne0 div0i eqtrd ralrimivva lnopfi ho01i sylib c0v fveq1 ho0val
      sylan9eq hi01 ralrimiva impbii ) AUAZBFZWAGHZIJZAKUBZBUCJZWEDUAZBFEUAZGHZ
      IJZEKUBDKUBWFWEWJDEKKWEWGKLZWHKLZUMZUMZWIWGWHUDHZBFZWOGHZWGWHUEHZBFZWRGHZ
      MHZNWGNWHUFHZUDHZBFZXCGHZWGXBUEHZBFZXFGHZMHZUGHZUHHZSUIHZIWMWIXLJWEWGWHBC
      UJUKWNXLISUIHIWNXKISUIWNXKIIUHHIWNXAIXJIUHWNXAIIMHZIWNWQIWTIMWMWEWOKLWQIJ
      ZWGWHULWDXNAWOKWAWOJZWCWQIXOWBWPWAWOGWAWOBOXOTPUNUOQWMWEWRKLWTIJZWGWHUPWD
      XPAWRKWAWRJZWCWTIXQWBWSWAWRGWAWRBOXQTPUNUOQPUQRWNXJNIUGHIWNXIINUGWNXIXMIW
      NXEIXHIMWMWEXCKLZXEIJZWLWKXBKLZXRNURLWLXTUSNWHUTVAZWGXBULQWDXSAXCKWAXCJZW
      CXEIYBWBXDWAXCGWAXCBOYBTPUNUOQWMWEXFKLZXHIJZWLWKXTYCYAWGXBUPQWDYDAXFKWAXF
      JZWCXHIYEWBXGWAXFGWAXFBOYETPUNUOQPUQRVBVERPVCRVDSVFVGVHRVIVJDEBBCVKVLVMWF
      WDAKWFWAKLZUMZWCVNWAGHZIYGWBVNWAGWFYFWBWAUCFVNWABUCVOWAVPVQVDYFYHIJWFWAVR
      UKVIVSVT $.
  $}

  ${
    $d x T $.  $d x U $.
    lnopeq.1 $e |- T e. LinOp $.
    lnopeq.2 $e |- U e. LinOp $.
    $( Two linear Hilbert space operators are equal iff their quadratic forms
       are equal.  (Contributed by NM, 27-Jul-2006.)
       (New usage is discouraged.) $)
    lnopeqi $p |- ( A. x e. ~H ( ( T ` x ) .ih x ) = ( ( U ` x ) .ih x ) <->
                  T = U ) $=
      ( cv cfv csp co wceq chil wral cc0 wcel cc lnopfi ffvelrni hicl mpancom
      wf chod ch0o subeq0ad cmv hodval mp3an12 oveq1d id his2sub syl3anc eqtr2d
      cmin eqeq1d bitr3d ralbiia lnophdi lnopeq0i hosubeq0i 3bitri ) AFZBGZUTHI
      ZUTCGZUTHIZJZAKLUTBCUAIZGZUTHIZMJZAKLVFUBJBCJVEVIAKUTKNZVBVDULIZMJVEVIVJV
      BVDVAKNZVJVBONKKUTBBDPZQZVAUTRSVCKNZVJVDONKKUTCCEPZQZVCUTRSUCVJVKVHMVJVHV
      AVCUDIZUTHIZVKVJVGVRUTHKKBTKKCTVJVGVRJVMVPUTBCUEUFUGVJVLVOVJVSVKJVNVQVJUH
      VAVCUTUIUJUKUMUNUOAVFBCDEUPUQBCVMVPURUS $.
  $}

  ${
    $d x T $.  $d x U $.
    $( Two linear Hilbert space operators are equal iff their quadratic forms
       are equal.  (Contributed by NM, 27-Jul-2006.)
       (New usage is discouraged.) $)
    lnopeq $p |- ( ( T e. LinOp /\ U e. LinOp ) ->
        ( A. x e. ~H ( ( T ` x ) .ih x ) = ( ( U ` x ) .ih x ) <-> T = U ) ) $=
      ( clo wcel cfv csp co wceq chil wral wb ch0o fveq1 oveq1d ralbidv bibi12d
      cif 0lnop elimel cv eqeq1d eqeq1 eqeq2d eqeq2 lnopeqi dedth2h ) BDEZCDEZA
      UAZBFZUJGHZUJCFZUJGHZIZAJKZBCIZLUJUHBMRZFZUJGHZUNIZAJKZURCIZLUTUJUICMRZFZ
      UJGHZIZAJKZURVDIZLBCMMBURIZUPVBUQVCVJUOVAAJVJULUTUNVJUKUSUJGUJBURNOUBPBUR
      CUCQCVDIZVBVHVCVIVKVAVGAJVKUNVFUTVKUMVEUJGUJCVDNOUDPCVDURUEQAURVDBMDSTCMD
      STUFUG $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d x y T $.
    lnopunilem.1 $e |- T e. LinOp $.
    lnopunilem.2 $e |- A. x e. ~H ( normh ` ( T ` x ) ) = ( normh ` x ) $.
    lnopunilem.3 $e |- A e. ~H $.
    lnopunilem.4 $e |- B e. ~H $.
    ${
      lnopunilem1.5 $e |- C e. CC $.
      $( Lemma for ~ lnopunii .  (Contributed by NM, 14-May-2005.)
         (New usage is discouraged.) $)
      lnopunilem1 $p |- ( Re ` ( C x. ( ( T ` A ) .ih ( T ` B ) ) ) ) =
                      ( Re ` ( C x. ( A .ih B ) ) ) $=
        ( vy cfv csp co cmul caddc wcel wceq chil mp3an cre c2 cdiv cc ffvelrni
        ccj lnopfi ax-mp hicli mulcli reval cv cno fveq2 fveq2d eqeq12d cbvralv
        wral mpbi cexp oveq1 normsq syl syl5ib ralimia oveq12d rspcv mp2 oveq2i
        id oveq12i oveq1i add42i csm cva hvmulcli hvaddcli ax-his2 ax-his3 his7
        cjcli his5 eqtri adddii 3eqtri cjmuli his1i eqtr4i lnopli eqtr3i addcli
        3eqtrri addcani ) DBELZCELZMNZONZUALZWQWQUFLZPNZUBUCNZDBCMNZONZUALZWQUD
        QWRXARDWPJWNWOBSQZWNSQZHSSBEEFUGZUEUHZCSQZWOSQZISSCEXGUEUHZUIZUJZWQUKUH
        XDXCXCUFLZPNZUBUCNZXAXCUDQXDXPRDXBJBCHIUIZUJZXCUKUHWTXOUBUCDDUFLZBBMNZO
        NZONZCCMNZPNZWTPNZYDXOPNZRWTXORDXSWNWNMNZONZONZWOWOMNZPNZWTPNZYEYFYKYDW
        TPYIYBYJYCPYHYADOYGXTXSOXEKULZELZYNMNZYMYMMNZRZKSURZYGXTRZHYNUMLZYMUMLZ
        RZKSURZYRAULZELZUMLZUUDUMLZRZASURUUCGUUHUUBAKSUUDYMRZUUFYTUUGUUAUUIUUEY
        NUMUUDYMEUNUOUUDYMUMUNUPUQUSUUBYQKSUUBYTUBUTNZUUAUBUTNZRYMSQZYQYTUUAUBU
        TVAUULUUJYOUUKYPUULYNSQUUJYORSSYMEXGUEYNVBVCYMVBUPVDVEUHZYQYSKBSYMBRZYO
        YGYPXTUUNYNWNYNWNMYMBEUNZUUOVFUUNYMBYMBMUUNVJZUUPVFUPVGVHVIVIXIYRYJYCRZ
        IUUMYQUUQKCSYMCRZYOYJYPYCUURYNWOYNWOMYMCEUNZUUSVFUURYMCYMCMUURVJZUUTVFU
        PVGVHVKVLYLYIWQPNZWSYJPNZPNZYFYIYJWQWSDYHJXSYGDJWAZWNWNXHXHUIUJZUJWOWOX
        KXKUIXMWQXMWAZVMYFYBXCPNZXNYCPNZPNZUVCYBYCXCXNDYAJXSXTUVDBBHHUIUJZUJZCC
        IIUIZXRXCXRWAZVMUVIDBVNNZCVONZELZUVPMNZDWNVNNZUVRWOVONZMNZWOUVSMNZPNZUV
        CUVQUVOUVOMNZUVNUVOMNZCUVOMNZPNZUVIUVOSQZYRUVQUWCRZUVNCDBJHVPZIVQZUUMYQ
        UWHKUVOSYMUVORZYOUVQYPUWCUWKYNUVPYNUVPMYMUVOEUNZUWLVFUWKYMUVOYMUVOMUWKV
        JZUWMVFUPVGVHUVNSQZXIUWGUWCUWFRUWIIUWJUVNCUVOVRTUWDUVGUWEUVHPUWDDBUVOMN
        ZONZDYAXBPNZONUVGDUDQZXEUWGUWDUWPRJHUWJDBUVOVSTUWOUWQDOUWOBUVNMNZXBPNZU
        WQXEUWNXIUWOUWTRHUWIIBUVNCVTTUWSYAXBPUWRXEXEUWSYARJHHDBBWBTVLWCVIDYAXBJ
        UVJXQWDWEUWECUVNMNZYCPNZUVHXIUWNXIUWEUXBRIUWIICUVNCVTTUXAXNYCPUXAXSCBMN
        ZONZXNUWRXIXEUXAUXDRJIHDCBWBTXNXSXBUFLZONUXDDXBJXQWFUXCUXEXSOCBIHWGVIWH
        WHVLWCVKWLUVQUVSUVSMNZUWBUVPUVSUVPUVSMUWRXEXIUVPUVSRJHIDBCEFWITZUXGVKUV
        RSQZXJUVSSQZUXFUWBRDWNJXHVPZXKUVRWOUXJXKVQZUVRWOUVSVRTWCUVTUVAUWAUVBPUV
        TDWNUVSMNZONZDYHWPPNZONUVAUWRXFUXIUVTUXMRJXHUXKDWNUVSVSTUXLUXNDOUXLWNUV
        RMNZWPPNZUXNXFUXHXJUXLUXPRXHUXJXKWNUVRWOVTTUXOYHWPPUWRXFXFUXOYHRJXHXHDW
        NWNWBTVLWCVIDYHWPJUVEXLWDWEUWAWOUVRMNZYJPNZUVBXJUXHXJUWAUXRRXKUXJXKWOUV
        RWOVTTUXQWSYJPUXQXSWOWNMNZONZWSUWRXJXFUXQUXTRJXKXHDWOWNWBTWSXSWPUFLZONU
        XTDWPJXLWFUXSUYAXSOWOWNXKXHWGVIWHWHVLWCVKWLWHWHWJYDWTXOYBYCUVKUVLWKWQWS
        XMUVFWKXCXNXRUVMWKWMUSVLWHWH $.
    $}

    $( Lemma for ~ lnopunii .  (Contributed by NM, 12-May-2005.)
       (New usage is discouraged.) $)
    lnopunilem2 $p |- ( ( T ` A ) .ih ( T ` B ) ) = ( A .ih B ) $=
      ( vy cfv csp co cmul cre wceq cc wcel cc0 oveq1 chil wral cif eqeq12d 0cn
      cv fveq2d elimel lnopunilem1 dedth rgen lnopfi ffvelrni ax-mp hicli recan
      wb mp2an mpbi ) IUEZBDJZCDJZKLZMLZNJZUSBCKLZMLZNJZOZIPUAZVBVEOZVHIPUSPQZV
      HVKUSRUBZVBMLZNJZVLVEMLZNJZOUSRUSVLOZVDVNVGVPVQVCVMNUSVLVBMSUFVQVFVONUSVL
      VEMSUFUCABCVLDEFGHUSRPUDUGUHUIUJVBPQVEPQVIVJUPUTVABTQUTTQGTTBDDEUKZULUMCT
      QVATQHTTCDVRULUMUNBCGHUNIVBVEUOUQUR $.
  $}

  ${
    $d x y T $.
    lnopuni.1 $e |- T e. LinOp $.
    lnopuni.2 $e |- T : ~H -onto-> ~H $.
    lnopuni.3 $e |- A. x e. ~H ( normh ` ( T ` x ) ) = ( normh ` x ) $.
    $( If a linear operator (whose range is ` ~H ` ) is idempotent in the norm,
       the operator is unitary.  Similar to theorem in [AkhiezerGlazman] p. 73.
       (Contributed by NM, 23-Jan-2006.)  (New usage is discouraged.) $)
    lnopunii $p |- T e. UniOp $=
      ( vy cuo wcel chil cv cfv csp co wceq wral c0v cif fveq2 eqeq12d ifhvhv0
      wfo oveq1d oveq1 oveq2d oveq2 lnopunilem2 dedth2h rgen2a elunop mpbir2an
      ) BGHIIBUAAJZBKZFJZBKZLMZUKUMLMZNZFIOAIODUQAFIUKIHZUMIHZUQURUKPQZBKZUNLMZ
      UTUMLMZNVAUSUMPQZBKZLMZUTVDLMZNUKUMPPUKUTNZUOVBUPVCVHULVAUNLUKUTBRUBUKUTU
      MLUCSUMVDNZVBVFVCVGVIUNVEVALUMVDBRUDUMVDUTLUESAUTVDBCEUKTUMTUFUGUHAFBUIUJ
      $.
  $}

  ${
    $d w x y z T $.
    $( An operator is unitary iff it is linear, onto, and idempotent in the
       norm.  Similar to theorem in [AkhiezerGlazman] p. 73, and its converse.
       (Contributed by NM, 24-Feb-2006.)  (New usage is discouraged.) $)
    elunop2 $p |- ( T e. UniOp <-> ( T e. LinOp /\ T : ~H -onto-> ~H /\
                 A. x e. ~H ( normh ` ( T ` x ) ) = ( normh ` x ) ) ) $=
      ( vy cuo wcel clo chil wfo cv cfv cno wceq wral w3a csp eleq1 foeq1 fveq2
      co fveq2d unoplin elunop simplbi unopnorm ralrimiva 3jca cid cres eqeq12d
      cif cbvralv fveq1 eqeq1d ralbidv syl5bb 3anbi123d idlnop wf1o f1ofo ax-mp
      f1oi fvresi 3pm3.2i elimhyp simp1i simp2i simp3i lnopunii dedth impbii
      rgen ) BDEZBFEZGGBHZAIZBJZKJZVOKJZLZAGMZNZVLVMVNVTBUAVLVNVPCIZBJZOSVOWBOS
      LCGMAGMACBUBUCVLVSAGVOBUDUEUFWAVLWABUGGUHZUJZDEBWDBWEDPCWEWEFEZGGWEHZWBWE
      JZKJZWBKJZLZCGMZWAWFWGWLNWDFEZGGWDHZWBWDJZKJZWJLZCGMZNBWDBWELZVMWFVNWGVTW
      LBWEFPGGBWEQVTWCKJZWJLZCGMWSWLVSXAACGVOWBLZVQWTVRWJXBVPWCKVOWBBRTVOWBKRUI
      UKWSXAWKCGWSWTWIWJWSWCWHKWBBWEULTUMUNUOUPWDWELZWMWFWNWGWRWLWDWEFPGGWDWEQX
      CWQWKCGXCWPWIWJXCWOWHKWBWDWEULTUMUNUPWMWNWRUQGGWDURWNGVAGGWDUSUTWQCGWBGEW
      OWBKGWBVBTVKVCVDZVEWFWGWLXDVFWFWGWLXDVGVHVIVJ $.

    $( Norm of a unitary Hilbert space operator.  (Contributed by NM,
       25-Feb-2006.)  (New usage is discouraged.) $)
    nmopun $p |- ( ( ~H =/= 0H /\ T e. UniOp ) -> ( normop ` T ) = 1 ) $=
      ( vy vx vz vw chil wcel wa cfv cv c1 cle wbr wceq wrex cxr clt syl adantl
      cr c0h wne cuo cnop cno cab csup wf clo unoplin lnopf nmopval wss wral wi
      nmopsetretHIL ressxr syl6ss 1re rexri jctir vex eqeq1 anbi2d rexbidv elab
      unopnorm eqeq2d breq1 biimparc syl6bi rexlimdva imp sylan2b ralrimiva c0v
      hne0 norm1hex sylbb adantr 1le1 mpbiri wb eqeq2 mpbid eqcomd jcad adantll
      a1i ex reximdva mpd 1ex sylibr breq2 rspcev sylan supxr2 syl12anc eqtrd )
      FUAUBZAUCGZHZAUDIZBJZUEIZKLMZCJZXEAIUEIZNZHZBFOZCUFZPQUGZKXBXDXNNZXAXBFFA
      UHZXOXBAUIGXPAUJAUKRZCBAULRSXCXMPUMZKPGZHDJZKLMZDXMUNZXTKQMZXTEJZQMZEXMOZ
      UOZDTUNXNKNXCXRXSXBXRXAXBXPXRXQXPXMTPCBAUPUQURRSKUSUTVAXBYBXAXBYADXMXTXMG
      XBXGXTXINZHZBFOZYAXLYJCXTDVBXHXTNZXKYIBFYKXJYHXGXHXTXIVCVDVEVFXBYJYAXBYIY
      ABFXBXEFGZHZYIXGXTXFNZHYAYMYHYNXGYMXIXFXTXEAVGZVHVDYNYAXGXTXFKLVIVJVKVLVM
      VNVOSXCYGDTXCXTTGZHZYCYFYQKXMGZYCYFXCYRYPXCXGKXINZHZBFOZYRXCXFKNZBFOZUUAX
      AUUCXBXAXEVPUBBFOUUCBVQBBVRVSVTXCUUBYTBFXBYLUUBYTUOXAYMUUBXGYSUUBXGUOYMUU
      BXGKKLMWAXFKKLVIWBWIYMUUBYSYMUUBHZXIKUUDXIXFNZXIKNZYMUUEUUBYOVTUUBUUEUUFW
      CYMXFKXIWDSWEWFWJWGWHWKWLXLUUACKWMXHKNZXKYTBFUUGXJYSXGXHKXIVCVDVEVFWNVTYE
      YCEKXMYDKXTQWOWPWQWJVODEXMKWRWSWT $.
  $}

  $( A unitary operator is a bounded linear operator.  (Contributed by NM,
     10-Mar-2006.)  (New usage is discouraged.) $)
  unopbd $p |- ( T e. UniOp -> T e. BndLinOp ) $=
    ( cuo wcel clo cnop cfv cr cbo unoplin chil c0h wceq wf wf1o unopf1o syl wa
    f1of cc0 syl6eqel nmop0h 0re sylan2 wn wne df-ne nmopun 1re sylanbr elbdop2
    c1 pm2.61ian sylanbrc ) ABCZADCAEFZGCZAHCAIJKLZUNUPUNUQJJAMZUPUNJJANURAOJJA
    RPUQURQUOSGAUAUBTUCUQUDJKUEZUNUPJKUFUSUNQUOUKGAUGUHTUIULAUJUM $.

  ${
    $d x A $.  $d x B $.  $d x T $.
    lnophmlem.1 $e |- A e. ~H $.
    lnophmlem.2 $e |- B e. ~H $.
    lnophmlem.3 $e |- T e. LinOp $.
    lnophmlem.4 $e |- A. x e. ~H ( x .ih ( T ` x ) ) e. RR $.
    $( Lemma for ~ lnophmi .  (Contributed by NM, 24-Jan-2006.)
       (New usage is discouraged.) $)
    lnophmlem1 $p |- ( A .ih ( T ` A ) ) e. RR $=
      ( chil wcel cv cfv csp co cr wral wceq id fveq2 oveq12d eleq1d rspcv mp2
      ) BIJAKZUDDLZMNZOJZAIPBBDLZMNZOJZEHUGUJABIUDBQZUFUIOUKUDBUEUHMUKRUDBDSTUA
      UBUC $.

    $( Lemma for ~ lnophmi .  (Contributed by NM, 24-Jan-2006.)
       (New usage is discouraged.) $)
    lnophmlem2 $p |- ( A .ih ( T ` B ) ) = ( ( T ` A ) .ih B ) $=
      ( cva co cfv csp cmin ci csm cmul chil oveq2i ax-icn c1 cmv caddc c4 cdiv
      ccj wcel lnopfi ffvelrni ax-mp polid2i hvcomi wceq lnopaddi mp2an oveq12i
      eqtr4i hisubcomi lnopsubi hvmulcli hvsubcli his35i hvsubdistr1i hvsubvali
      cneg hvmulassi ixi ax-1cn mul2negi 3eqtri oveq1i neg1cn mulcli ax-hvmulid
      1t1e1 3eqtr3i eqtr3i eqtri fveq2i lnopmuli lnopaddmuli mp3an cji mulneg2i
      cc negeqi negneg1e1 lnophmlem1 recni mulid2i 3eqtr4i hvaddcli lnopmulsubi
      hvdistr1i cc0 wne resubcli addcli 4re cjdivi cr cjreim negsubi negsubdi2i
      4ne0 lnopsubmuli cjre 3eqtrri his1i ) BCIJZBDKZCDKZIJZLJZBCUAJZXJXKUAJZLJ
      ZMJZNBNCOJZIJZXJNXKOJZIJZLJZBXRUAJZXJXTUAJZLJZMJZPJZUBJZUCUDJZCXJLJZUEKZB
      XKLJXJCLJYKXIXIDKZLJZXNXNDKZLJZMJZNYCYCDKZLJZXSXSDKZLJZMJZPJZUBJZUCUDJZUE
      KZUUCUEKZUCUEKZUDJZYIYJUUDUEYJCBIJZXKXJIJZLJZCBUAJXKXJUAJLJZMJZNCNBOJZIJZ
      XKNXJOJZIJZLJZCUUNUAJXKUUPUAJLJZMJZPJZUBJZUCUDJUUDCXJBXKFBQUFZXJQUFEQQBDD
      GUGZUHUIZECQUFZXKQUFFQQCDUVDUHUIZUJUVBUUCUCUDUUMYPUVAUUBUBUUKYMUULYOMUUIX
      IUUJYLLCBFEUKUUJXLYLXKXJUVGUVEUKUVCUVFYLXLULEFBCDGUMUNZUPUOUULXPYOCBXKXJF
      EUVGUVEUQYNXOXNLUVCUVFYNXOULEFBCDGURUNRZUPUOUUTUUANPUURYRUUSYTMNYCOJZNYQO
      JZLJNNUEKZPJZYRPJZUURYRNNYCYQSSBXRENCSFUSZUTZYCQUFZYQQUFUVPQQYCDUVDUHUIVA
      UVJUUOUVKUUQLUVJUUNNXROJZUAJZUUNCIJZUUONBXRSEUVOVBUVSUUNTVDZUVROJZIJUVTUU
      NUVRNBSEUSZNXRSUVOUSVCUWBCUUNIUWANNPJZCOJZOJZUWBCUWEUVRUWAONNCSSFVEZRUWAU
      WDPJZCOJTCOJZUWFCUWHTCOUWHUWAUWAPJTTPJTUWDUWAUWAPVFRTTVGVGVHVNVIVJUWAUWDC
      VKNNSSVLFVEUVFUWICULFCVMUIVOVPRVQUUNCUWCFUKVIZUVJDKZUUODKZUVKUUQUVJUUODUW
      JVRNWDUFZUVQUWKUVKULSUVPNYCDGVSUNUWMUVFUVCUWLUUQULSFENCBDGVTWAVOUOUVNTYRP
      JYRUVMTYRPUVMNNVDZPJUWDVDZTUVLUWNNPWBRNNSSWCUWOUWAVDTUWDUWAVFWEWFVQVIZVJY
      RYRAYCBDUVPEGHWGZWHZWIVQVOUUSNXSOJZNYSOJZLJZUVMYTPJZYTUUSUUNCUAJZUUPXKUAJ
      ZLJUXACUUNXKUUPFUWCUVGNXJSUVEUSUQUWSUXCUWTUXDLUUNUVRIJUUNUWACOJZIJUWSUXCU
      VRUXEUUNIUWEUVRUXEUWGUWDUWACOVFVJVPRNBXRSEUVOWMUUNCUWCFVCWJZUWSDKZUXCDKZU
      WTUXDUWSUXCDUXFVRUWMXSQUFZUXGUWTULSBXREUVOWKZNXSDGVSUNUWMUVCUVFUXHUXDULSE
      FNBCDGWLWAVOUOUPNNXSYSSSUXJUXIYSQUFUXJQQXSDUVDUHUIVAUXBTYTPJYTUVMTYTPUWPV
      JYTYTAXSBDUXJEGHWGZWHZWIVQVIUORUOVJVQVRUCWNWOUUEUUHULXDUUCUCYPUUBYPYMYOAX
      IBDBCEFWKEGHWGAXNBDBCEFUTEGHWGWPZWHZNUUASUUAYRYTUWQUXKWPZWHZVLWQUCWRWHWSU
      IUUFYHUUGUCUDUUFYPUUBVDZUBJZYPNYTYRMJZPJZUBJYHUUFYPUUBMJZUXRYPWTUFUUAWTUF
      UUFUYAULUXMUXOYPUUAXAUNYPUUBUXNNUUASUUAYRYTUWQAXSCDUXJFGHWGWPWHVLXBUPUXQU
      XTYPUBNUUAVDZPJUXQUXTNUUASUXPWCUYBUXSNPYRYTUWRUXLXCRVPRYPXQUXTYGUBYMXMYOX
      PMYLXLXILUVHRUVIUOUXSYFNPYTYBYRYEMYSYAXSLUWMUVCUVFYSYAULSEFNBCDGVTWARYQYD
      YCLUWMUVCUVFYQYDULSEFNBCDGXEWARUORUOVIUCWTUFUUGUCULWRUCXFUIUOXGBXKCXJEUVG
      FUVEUJXJCUVEFXHWJ $.
  $}

  ${
    $d x y z T $.
    lnophm.1 $e |- T e. LinOp $.
    lnophm.2 $e |- A. x e. ~H ( x .ih ( T ` x ) ) e. RR $.
    $( A linear operator is Hermitian if ` x .ih ( T `` x ) ` takes only real
       values.  Remark in [ReedSimon] p. 195.  (Contributed by NM,
       24-Jan-2006.)  (New usage is discouraged.) $)
    lnophmi $p |- T e. HrmOp $=
      ( vy vz cho wcel chil cv cfv csp wceq wral c0v cif fveq2 eqeq12d ifhvhv0
      co wf lnopfi oveq1 oveq1d oveq2d oveq2 lnophmlem2 dedth2h rgen2a mpbir2an
      elhmop ) BGHIIBUAEJZFJZBKZLTZULBKZUMLTZMZFINEINBCUBUREFIULIHZUMIHZURUSULO
      PZUNLTZVABKZUMLTZMVAUTUMOPZBKZLTZVCVELTZMULUMOOULVAMZUOVBUQVDULVAUNLUCVIU
      PVCUMLULVABQUDRUMVEMZVBVGVDVHVJUNVFVALUMVEBQUEUMVEVCLUFRAVAVEBULSUMSCDUGU
      HUIEFBUKUJ $.
  $}

  ${
    $d x y A $.  $d x y T $.  $d x y U $.
    $( A linear operator is Hermitian if ` x .ih ( T `` x ) ` takes only real
       values.  Remark in [ReedSimon] p. 195.  (Contributed by NM,
       24-Jan-2006.)  (New usage is discouraged.) $)
    lnophm $p |- ( ( T e. LinOp /\ A. x e. ~H ( x .ih ( T ` x ) ) e. RR ) ->
                   T e. HrmOp ) $=
      ( vy clo wcel cv cfv csp co cr chil wral wa cho eleq1 eleq1d fveq1 oveq2d
      wceq ralbidv cid cres cif id oveq12d cbvralv syl5bb anbi12d idlnop fvresi
      fveq2 hiidrcl eqeltrd rgen pm3.2i elimhyp simpli simpri lnophmi dedth ) B
      DEZAFZVBBGZHIZJEZAKLZMZBNEVGBUAKUBZUCZNEBVHBVINOCVIVIDEZCFZVKVIGZHIZJEZCK
      LZVGVJVOMVHDEZVKVKVHGZHIZJEZCKLZMBVHBVISZVAVJVFVOBVIDOVFVKVKBGZHIZJEZCKLW
      AVOVEWDACKVBVKSZVDWCJWEVBVKVCWBHWEUDVBVKBUKUEPUFWAWDVNCKWAWCVMJWAWBVLVKHV
      KBVIQRPTUGUHVHVISZVPVJVTVOVHVIDOWFVSVNCKWFVRVMJWFVQVLVKHVKVHVIQRPTUHVPVTU
      IVSCKVKKEZVRVKVKHIJWGVQVKVKHKVKUJRVKULUMUNUOUPZUQVJVOWHURUSUT $.

    $( The sum of two Hermitian operators is Hermitian.  (Contributed by NM,
       23-Jul-2006.)  (New usage is discouraged.) $)
    hmops $p |- ( ( T e. HrmOp /\ U e. HrmOp ) -> ( T +op U ) e. HrmOp ) $=
      ( vx vy cho wcel wa chil co wf cfv csp wceq wral hmopf caddc hmop ffvelrn
      cv 3expb chos hoaddcl syl2an oveqan12d anandirs anim12i cva hosval oveq2d
      3expa adantrl simprl ad2ant2rl ad2ant2l his7 syl3anc eqtrd oveq1d adantrr
      w3a ad2ant2r ad2ant2lr simprr ax-his2 3eqtr4d ralrimivva elhmop sylanbrc
      sylan ) AEFZBEFZGZHHABUAIZJZCSZDSZVMKZLIZVOVMKZVPLIZMZDHNCHNVMEFVJHHAJZHH
      BJZVNVKAOZBOZABUBUCVLWACDHHVLVOHFZVPHFZGZGVOVPAKZLIZVOVPBKZLIZPIZVOAKZVPL
      IZVOBKZVPLIZPIZVRVTVJVKWHWMWRMVJWHGVKWHGWJWOWLWQPVJWFWGWJWOMVOVPAQTVKWFWG
      WLWQMVOVPBQTUDUEVLWBWCGZWHVRWMMVJWBVKWCWDWEUFZWSWHGZVRVOWIWKUGIZLIZWMWSWG
      VRXCMZWFWBWCWGXDWBWCWGUTVQXBVOLVPABUHUIUJUKXAWFWIHFZWKHFZXCWMMWSWFWGULWBW
      GXEWCWFHHVPARUMWCWGXFWBWFHHVPBRUNVOWIWKUOUPUQVIVLWSWHVTWRMWTXAVTWNWPUGIZV
      PLIZWRWSWFVTXHMZWGWBWCWFXIWBWCWFUTVSXGVPLVOABUHURUJUSXAWNHFZWPHFZWGXHWRMW
      BWFXJWCWGHHVOARVAWCWFXKWBWGHHVOBRVBWSWFWGVCWNWPVPVDUPUQVIVEVFCDVMVGVH $.

    $( The scalar product of a Hermitian operator with a real is Hermitian.
       (Contributed by NM, 23-Jul-2006.)  (New usage is discouraged.) $)
    hmopm $p |- ( ( A e. RR /\ T e. HrmOp ) -> ( A .op T ) e. HrmOp ) $=
      ( vx vy wcel cho wa chil co wf cv cfv csp wceq wral cmul csm homval 3expa
      ffvelrn cr chot recn hmopf homulcl syl2an ccj cjre hmop oveqan12d anassrs
      cc 3expb anim12i adantrl oveq2d simpll simprl ad2ant2l his5 syl3anc eqtrd
      sylan adantrr oveq1d ad2ant2lr simprr ax-his3 3eqtr4d ralrimivva sylanbrc
      elhmop ) AUAEZBFEZGZHHABUBIZJZCKZDKZVPLZMIZVRVPLZVSMIZNZDHOCHOVPFEVMAULEZ
      HHBJZVQVNAUCZBUDZABUEUFVOWDCDHHVOVRHEZVSHEZGZGAUGLZVRVSBLZMIZPIZAVRBLZVSM
      IZPIZWAWCVMVNWKWOWRNVMVNWKGWLAWNWQPAUHVNWIWJWNWQNVRVSBUIUMUJUKVOWEWFGZWKW
      AWONVMWEVNWFWGWHUNZWSWKGZWAVRAWMQIZMIZWOXAVTXBVRMWSWJVTXBNZWIWEWFWJXDAVSB
      RSUOUPXAWEWIWMHEZXCWONWEWFWKUQZWSWIWJURWFWJXEWEWIHHVSBTUSAVRWMUTVAVBVCVOW
      SWKWCWRNWTXAWCAWPQIZVSMIZWRXAWBXGVSMWSWIWBXGNZWJWEWFWIXIAVRBRSVDVEXAWEWPH
      EZWJXHWRNXFWFWIXJWEWJHHVRBTVFWSWIWJVGAWPVSVHVAVBVCVIVJCDVPVLVK $.

    $( The difference of two Hermitian operators is Hermitian.  (Contributed by
       NM, 23-Jul-2006.)  (New usage is discouraged.) $)
    hmopd $p |- ( ( T e. HrmOp /\ U e. HrmOp ) -> ( T -op U ) e. HrmOp ) $=
      ( wcel wa c1 cneg chot co chos chod chil wf wceq hmopf honegsub syl2an cr
      cho neg1rr hmopm mpan hmops sylan2 eqeltrrd ) ARCZBRCZDAEFZBGHZIHZABJHZRU
      EKKALKKBLUIUJMUFANBNABOPUFUEUHRCZUIRCUGQCUFUKSUGBTUAAUHUBUCUD $.

    $( The composition of two commuting Hermitian operators is Hermitian.
       (Contributed by NM, 22-Aug-2006.)  (New usage is discouraged.) $)
    hmopco $p |- ( ( T e. HrmOp /\ U e. HrmOp /\ ( T o. U ) = ( U o. T ) ) ->
                   ( T o. U ) e. HrmOp ) $=
      ( vx vy cho wcel ccom wceq chil wf cv cfv co wral hmopf wa fvco3 ad2ant2l
      csp sylan w3a fco syl2an 3adant3 oveq2d simpll simprl hmop syl3anc simplr
      ffvelrnda ad2ant2r simprr 3eqtrd oveq1d eqtr4d 3adantl3 adantr ralrimivva
      fveq1 3ad2ant3 elhmop sylanbrc ) AEFZBEFZABGZBAGZHZUAZIIVFJZCKZDKZVFLZSMZ
      VKVFLZVLSMZHZDINCINVFEFVDVEVJVHVDIIAJZIIBJZVJVEAOZBOZIIIABUBUCUDVIVQCDIIV
      IVKIFZVLIFZPZPVNVKVGLZVLSMZVPVDVEWDVNWFHVHVDVEPZWDPZVNVKALZBLZVLSMZWFWHVN
      VKVLBLZALZSMZWIWLSMZWKVEWCVNWNHVDWBVEWCPVMWMVKSVEVSWCVMWMHWAIIVLABQTUERWH
      VDWBWLIFZWNWOHVDVEWDUFWGWBWCUGVEWCWPVDWBVEIIVLBWAUKRVKWLAUHUIWHVEWIIFZWCW
      OWKHVDVEWDUJVDWBWQVEWCVDIIVKAVTUKULWGWBWCUMWIVLBUHUIUNVDWBWFWKHVEWCVDWBPW
      EWJVLSVDVRWBWEWJHVTIIVKBAQTUOULUPUQVIVPWFHZWDVHVDWRVEVHVOWEVLSVKVFVGUTUOV
      AURUPUSCDVFVBVC $.
  $}

  ${
    nmbdoplb.1 $e |- T e. BndLinOp $.
    $( A lower bound for the norm of a bounded linear operator.  (Contributed
       by NM, 14-Feb-2006.)  (New usage is discouraged.) $)
    nmbdoplbi $p |- ( A e. ~H ->
              ( normh ` ( T ` A ) ) <_ ( ( normop ` T ) x. ( normh ` A ) ) ) $=
      ( chil wcel cfv cno cmul co cle wbr c0v c1 cr normcl adantr recnd syl2anc
      wceq cc0 cnop fveq2 fveq2d oveq2d breq12d wne wa csm cbo clo bdopln ax-mp
      cdiv lnopfi ffvelrni syl normne0 biimpar divrec2d rereccld simpl lnopmuli
      cabs norm-iii clt normgt0 biimpa recgt0d 0re ltle mpan sylc absidd oveq1d
      cc wi 3eqtrrd eqtrd hvmulcl norm1 eqle wf nmoplb mp3an1 eqbrtrd wb nmopre
      a1i ledivmul2 syl112anc mpbid 0le0 lnop0i fveq2i norm0 eqtri oveq2i recni
      mul01i 3brtr4i pm2.61ne ) ADEZABFZGFZBUAFZAGFZHIZJKZLBFZGFZXELGFZHIZJKZAL
      ALSZXDXJXGXLJXNXCXIGALBUBUCXNXFXKXEHALGUBUDUEXBALUFZUGZXDXFUMIZXEJKZXHXPX
      QMXFUMIZAUHIZBFZGFZXEJXPXQXSXDHIZYBXPXDXFXPXDXBXDNEZXOXBXCDEZYDDDABBBUIEZ
      BUJECBUKULZUNZUOZXCOUPPZQXPXFXBXFNEZXOAOPZQXBXFTUFXOAUQURZUSXPYBXSXCUHIZG
      FZXSVCFZXDHIZYCXPYAYNGXPXSVOEZXBYAYNSXPXSXPXFYLYMUTZQZXBXOVAZXSABYGVBRUCX
      PYRYEYOYQSYTXBYEXOYIPXSXCVDRXPYPXSXDHXPXSYSXPXSNEZTXSVEKZTXSJKZYSXPXFYLXB
      XOTXFVEKZAVFVGZVHTNEUUBUUCUUDVPVITXSVJVKVLVMVNVQVRXPXTDEZXTGFZMJKZYBXEJKZ
      XPYRXBUUGYTUUAXSAVSRZXPUUHNEZUUHMSUUIXPUUGUULUUKXTOUPAVTUUHMWARDDBWBUUGUU
      IUUJYHXTBWCWDRWEXPYDXENEZYKUUEXRXHWFYJUUMXPYFUUMCBWGULZWHYLUUFXDXEXFWIWJW
      KXMXBTTXJXLJWLXJXKTXILGBYGWMWNWOWPXLXETHITXKTXEHWOWQXEXEUUNWRWSWPWTWHXA
      $.
  $}

  $( A lower bound for the norm of a bounded linear Hilbert space operator.
     (Contributed by NM, 18-Feb-2006.)  (New usage is discouraged.) $)
  nmbdoplb $p |- ( ( T e. BndLinOp /\ A e. ~H ) ->
              ( normh ` ( T ` A ) ) <_ ( ( normop ` T ) x. ( normh ` A ) ) ) $=
    ( cbo wcel chil cfv cno cnop cmul co cle wbr wi ch0o cif fveq1 fveq2d fveq2
    wceq oveq1d breq12d imbi2d 0bdop elimel nmbdoplbi dedth imp ) BCDZAEDZABFZG
    FZBHFZAGFZIJZKLZUHUIUOMUIAUHBNOZFZGFZUPHFZUMIJZKLZMBNBUPSZUOVAUIVBUKURUNUTK
    VBUJUQGABUPPQVBULUSUMIBUPHRTUAUBAUPBNCUCUDUEUFUG $.

  ${
    $d m n x y z N $.  $d m n x y z T $.
    nmcex.1 $e |- E. y e. RR+ A. z e. ~H
                    ( ( normh ` z ) < y -> ( N ` ( T ` z ) ) < 1 ) $.
    nmcex.2 $e |- ( S ` T ) = sup ( { m | E. x e. ~H
      ( ( normh ` x ) <_ 1 /\ m = ( N ` ( T ` x ) ) ) } , RR* , < ) $.
    nmcex.3 $e |- ( x e. ~H -> ( N ` ( T ` x ) ) e. RR ) $.
    nmcex.4 $e |- ( N ` ( T ` 0h ) ) = 0 $.
    nmcex.5 $e |- ( ( ( y / 2 ) e. RR+ /\ x e. ~H ) ->
   ( ( y / 2 ) x. ( N ` ( T ` x ) ) ) = ( N ` ( T ` ( ( y / 2 ) .h x ) ) ) ) $.
    $( Lemma for ~ nmcopexi and ~ nmcfnexi .  The norm of a continuous linear
       Hilbert space operator or functional exists.  Theorem 3.5(i) of [Beran]
       p. 99.  (Contributed by Mario Carneiro, 17-Nov-2013.)  (Proof shortened
       by Mario Carneiro, 23-Dec-2013.)  (New usage is discouraged.) $)
    nmcexi $p |- ( S ` T ) e. RR $=
      ( cfv c1 cle wbr wceq chil cr wcel vn cv cno wa wrex cab clt csup cxr wss
      c0 wne wral eleq1 syl5ibrcom imp adantrl rexlimiva abssi cc0 c0v ax-hv0cl
      norm0 0le1 eqbrtri eqcomi pm3.2i fveq2 breq1d fveq2d eqeq2d anbi12d mp2an
      rspcev c0ex eqeq1 anbi2d rexbidv elab mpbir ne0ii wi crp cdiv wal rpdivcl
      c2 co 2rp mpan rpred adantr csm cc rehalfcld recnd simprl hvmulcl syl2anc
      rpre normcl syl cmul simprr ad2antrl 1red rphalfcl lemul2d mpbid norm-iii
      sylan rpge0 absidd oveq1d eqtr2d mulid1d 3brtr3d rphalflt lelttrd imbi12d
      cabs rpcn rspcv mpid ltmuldiv2d rprecred ltle sylbid rpne0 recdiv mpanr12
      2cn 2ne0 breq2d 3imtr3d syld an32s anassrs breq1 mp3an ralab breq2 imbi2d
      expimpd rexlimdva alrimiv albidv syl5bb ax-mp supxrre suprcl eqeltri
      eqtri ) EDMZAUBZUCMZNOPZFUBZUUOEMZGMZQZUDZARUEZFUFZSUGUHZSUUNUVDUIUGUHZUV
      EIUVDSUJZUVDUKULZUAUBZCUBZOPZUAUVDUMZCSUEZUVFUVEQUVCFSUVBUURSTZARUUORTZUV
      AUVNUUQUVOUVAUVNUVOUVNUVAUUTSTZJUURUUTSUNUOUPUQURUSZUTUVDUTUVDTUUQUTUUTQZ
      UDZARUEZVARTVAUCMZNOPZUTVAEMZGMZQZUDZUVTVBUWBUWEUWAUTNOVCVDVEUWDUTKVFVGUV
      SUWFAVARUUOVAQZUUQUWBUVRUWEUWGUUPUWANOUUOVAUCVHVIUWGUUTUWDUTUWGUUSUWCGUUO
      VAEVHVJVKVLVNVMUVCUVTFUTVOUURUTQZUVBUVSARUWHUVAUVRUUQUURUTUUTVPVQVRVSVTWA
      ZUVJUCMZBUBZUGPZUVJEMZGMZNUGPZWBZCRUMZBWCUEUVMHUWQUVMBWCUWKWCTZUWQUDZWGUW
      KWDWHZSTZUUQUVIUUTQZUDZARUEZUVIUWTOPZWBZUAWEZUVMUWRUXAUWQUWRUWTWGWCTUWRUW
      TWCTWIWGUWKWFWJWKWLUWSUXFUAUWSUXCUXEARUWSUVOUDZUUQUXBUXEUXHUUQUDUXEUXBUUT
      UWTOPZUWSUVOUUQUXIUWRUVOUUQUDZUWQUXIUWRUXJUDZUWQUXIUXKUWQUWKWGWDWHZUUOWMW
      HZEMZGMZNUGPZUXIUXKUWQUXMUCMZUWKUGPZUXPUXKUXQUXLUWKUXKUXMRTZUXQSTUXKUXLWN
      TZUVOUXSUXKUXLUXKUWKUWRUWKSTUXJUWKWTWLZWOZWPZUWRUVOUUQWQZUXLUUOWRWSZUXMXA
      XBUYBUYAUXKUXLUUPXCWHZUXLNXCWHZUXQUXLOUXKUUQUYFUYGOPUWRUVOUUQXDUXKUUPNUXL
      UVOUUPSTUWRUUQUUOXAXEUXKXFZUWRUXLWCTZUXJUWKXGWLZXHXIUXKUYIUVOUYFUXQQUYJUY
      DUYIUVOUDUXQUXLYAMZUUPXCWHZUYFUYIUXTUVOUXQUYLQUXLYBUXLUUOXJXKUYIUYLUYFQUV
      OUYIUYKUXLUUPXCUYIUXLUXLWTUXLXLXMXNWLXOWSUXKUXLUYCXPXQUWRUXLUWKUGPUXJUWKX
      RWLXSUXKUXSUWQUXRUXPWBZWBUYEUWPUYMCUXMRUVJUXMQZUWLUXRUWOUXPUYNUWJUXQUWKUG
      UVJUXMUCVHVIUYNUWNUXONUGUYNUWMUXNGUVJUXMEVHVJVIXTYCXBYDUXKUXLUUTXCWHZNUGP
      ZUUTNUXLWDWHZOPZUXPUXIUXKUYPUUTUYQUGPZUYRUXKUUTNUXLUVOUVPUWRUUQJXEZUYHUYJ
      YEUXKUVPUYQSTUYSUYRWBUYTUXKUXLUYJYFUUTUYQYGWSYHUXKUYOUXONUGUXKUYIUVOUYOUX
      OQUYJUYDLWSVIUXKUYQUWTUUTOUWRUYQUWTQZUXJUWRUWKWNTZUWKUTULZVUAUWKYBUWKYIVU
      BVUCUDWGWNTWGUTULVUAYLYMUWKWGYJYKWSWLYNYOYPUPYQYRUVIUUTUWTOYSUOUUDUUEUUFU
      VLUXGCUWTSUVLUXDUVKWBZUAWEUVJUWTQZUXGUVCUXDUVKUAFUURUVIQZUVBUXCARVUFUVAUX
      BUUQUURUVIUUTVPVQVRUUAVUEVUDUXFUAVUEUVKUXEUXDUVJUWTUVIOUUBUUCUUGUUHVNWSUR
      UUIZCUAUVDUUJYTUUMUVGUVHUVMUVESTUVQUWIVUGCUAUVDUUKYTUUL $.
  $}

  ${
    $d m x y z T $.
    nmcopex.1 $e |- T e. LinOp $.
    nmcopex.2 $e |- T e. ContOp $.
    $( The norm of a continuous linear Hilbert space operator exists.  Theorem
       3.5(i) of [Beran] p. 99.  (Contributed by NM, 5-Feb-2006.)  (Proof
       shortened by Mario Carneiro, 17-Nov-2013.)
       (New usage is discouraged.) $)
    nmcopexi $p |- ( normop ` T ) e. RR $=
      ( vx vy vz vm cno cv c0v cmv co cfv clt wbr c1 chil crp wcel wceq cnop wi
      wral wrex ccop ax-hv0cl cnopc hvsub0 fveq2d breq1d lnop0i oveq2i ffvelrni
      1rp mp3an lnopfi syl syl5eq imbi12d ralbiia rexbii mpbi wf cle wa cab cxr
      csup nmopval ax-mp cr normcl cc0 fveq2i norm0 eqtri c2 cdiv csm cabs cmul
      cc rpcn lnopmuli sylan norm-iii syl2an rpge0 absidd adantr oveq1d 3eqtrrd
      rpre nmcexi ) DEFUAAGHFIZJKLZHMZEIZNOZWOAMZJAMZKLZHMZPNOZUBZFQUCZERUDZWOH
      MZWRNOZWTHMZPNOZUBZFQUCZERUDAUESJQSPRSXGCUFUNEFJPAUGUOXFXMERXEXLFQWOQSZWS
      XIXDXKXNWQXHWRNXNWPWOHWOUHUIUJXNXCXJPNXNXBWTHXNXBWTJKLZWTXAJWTKABUKZULXNW
      TQSXOWTTQQWOAABUPZUMWTUHUQURUIUJUSUTVAVBQQAVCAUAMDIZHMPVDOGIXRAMZHMZTVEDQ
      UDGVFVGNVHTXQGDAVIVJXRQSZXSQSZXTVKSQQXRAXQUMZXSVLUQXAHMJHMVMXAJHXPVNVOVPW
      RVQVRLZRSZYAVEZYDXRVSLAMZHMYDXSVSLZHMZYDVTMZXTWALZYDXTWALYFYGYHHYEYDWBSZY
      AYGYHTYDWCZYDXRABWDWEUIYEYLYBYIYKTYAYMYCYDXSWFWGYFYJYDXTWAYEYJYDTYAYEYDYD
      WMYDWHWIWJWKWLWN $.

    $( A lower bound for the norm of a continuous linear operator.  Theorem
       3.5(ii) of [Beran] p. 99.  (Contributed by NM, 7-Feb-2006.)  (Revised by
       Mario Carneiro, 17-Nov-2013.)  (New usage is discouraged.) $)
    nmcoplbi $p |- ( A e. ~H ->
              ( normh ` ( T ` A ) ) <_ ( ( normop ` T ) x. ( normh ` A ) ) ) $=
      ( chil wcel cfv cno cmul co cle wbr c0v wceq cc0 syl6eq c1 normcl syl2anc
      cr cnop 0le0 a1i fveq2 lnop0i fveq2d norm0 oveq2d nmcopexi mul01i 3brtr4d
      recni adantl wne wa cdiv csm cabs adantr normne0 biimpar rereccld normgt0
      clt biimpa recgt0d wi 0re ltle mpan absidd oveq1d cc recnd simpl lnopmuli
      sylc lnopfi ffvelrni norm-iii eqtrd syl divrec2d 3eqtr4rd hvmulcl eqle wf
      norm1 nmoplb mp3an1 eqbrtrd wb ledivmul2 syl112anc mpbid pm2.61dane ) AEF
      ZABGZHGZBUAGZAHGZIJZKLZAMAMNZXCWQXDOOWSXBKOOKLXDUBUCXDWSMHGZOXDWRMHXDWRMB
      GMAMBUDBCUEPUFUGPXDXBWTOIJOXDXAOWTIXDXAXEOAMHUDUGPUHWTWTBCDUIZULUJPUKUMWQ
      AMUNZUOZWSXAUPJZWTKLZXCXHXIQXAUPJZAUQJZBGZHGZWTKXHXKURGZWSIJZXKWSIJXNXIXH
      XOXKWSIXHXKXHXAWQXATFZXGARUSZWQXAOUNXGAUTVAZVBZXHXKTFZOXKVDLZOXKKLZXTXHXA
      XRWQXGOXAVDLZAVCVEZVFOTFYAYBYCVGVHOXKVIVJVQVKVLXHXNXKWRUQJZHGZXPXHXMYFHXH
      XKVMFZWQXMYFNXHXKXTVNZWQXGVOZXKABCVPSUFXHYHWREFZYGXPNYIWQYKXGEEABBCVRZVSZ
      USXKWRVTSWAXHWSXAXHWSWQWSTFZXGWQYKYNYMWRRWBUSZVNXHXAXRVNXSWCWDXHXLEFZXLHG
      ZQKLZXNWTKLZXHYHWQYPYIYJXKAWESZXHYQTFZYQQNYRXHYPUUAYTXLRWBAWHYQQWFSEEBWGY
      PYRYSYLXLBWIWJSWKXHYNWTTFZXQYDXJXCWLYOUUBXHXFUCXRYEWSWTXAWMWNWOWP $.
  $}

  $( The norm of a continuous linear Hilbert space operator exists.  Theorem
     3.5(i) of [Beran] p. 99.  (Contributed by NM, 7-Feb-2006.)
     (New usage is discouraged.) $)
  nmcopex $p |- ( ( T e. LinOp /\ T e. ContOp ) -> ( normop ` T ) e. RR ) $=
    ( clo wcel ccop wa cin cnop cfv cr elin cid chil cres cif wceq fveq2 eleq1d
    idlnop idcnop mpbir2an elimel mpbi simpli simpri nmcopexi dedth sylbir ) AB
    CADCEABDFZCZAGHZICZABDJUIUKUIAKLMZNZGHZICAULAUMOUJUNIAUMGPQUMUMBCZUMDCZUMUH
    CUOUPEAULUHULUHCULBCULDCRSULBDJTUAUMBDJUBZUCUOUPUQUDUEUFUG $.

  $( A lower bound for the norm of a continuous linear Hilbert space operator.
     Theorem 3.5(ii) of [Beran] p. 99.  (Contributed by NM, 7-Feb-2006.)
     (New usage is discouraged.) $)
  nmcoplb $p |- ( ( T e. LinOp /\ T e. ContOp /\ A e. ~H ) ->
              ( normh ` ( T ` A ) ) <_ ( ( normop ` T ) x. ( normh ` A ) ) ) $=
    ( clo wcel ccop chil cfv cno cnop cmul co cle wbr wa cin elin cid cres cif
    wi wceq fveq1 fveq2d fveq2 oveq1d imbi2d idlnop idcnop mpbir2an elimel mpbi
    breq12d simpli simpri nmcoplbi dedth imp sylanbr 3impa ) BCDZBEDZAFDZABGZHG
    ZBIGZAHGZJKZLMZUTVANBCEOZDZVBVHBCEPVJVBVHVJVBVHTVBAVJBQFRZSZGZHGZVLIGZVFJKZ
    LMZTBVKBVLUAZVHVQVBVRVDVNVGVPLVRVCVMHABVLUBUCVRVEVOVFJBVLIUDUEULUFAVLVLCDZV
    LEDZVLVIDVSVTNBVKVIVKVIDVKCDVKEDUGUHVKCEPUIUJVLCEPUKZUMVSVTWAUNUOUPUQURUS
    $.

  ${
    $d x A $.  $d x T $.
    nmophm.1 $e |- T e. BndLinOp $.
    $( The norm of the scalar product of a bounded linear operator.
       (Contributed by NM, 10-Mar-2006.)  (New usage is discouraged.) $)
    nmophmi $p |- ( A e. CC ->
              ( normop ` ( A .op T ) ) = ( ( abs ` A ) x. ( normop ` T ) ) ) $=
      ( vx wcel co cfv cabs cmul wceq cle wbr cno chil wa adantr cr cc0 syl wb
      cc chot cnop cv c1 wi wral csm wf cbo bdopf homval mp3an2 fveq2d ffvelrni
      ax-mp norm-iii sylan2 eqtrd normcl ad2antlr absge0 ad2antrr nmoplb mp3an1
      jca adantll nmopre lemul2a mp3anl2 syl21anc eqbrtrd ralrimiva cxr homulcl
      abscl mpan2 remulcl sylancl rexrd nmopub syl2anc mpbird fveq2 abs0 syl6eq
      ex oveq1d recni mul02i adantl nmopge0 wne syl3an1 3expa eqbrtrrd adantllr
      cdiv clt cmnf nmopxr nmopgtmnf syl22anc absgt0 biimpa lemuldiv2 syl112anc
      xrre mpbid abs00 necon3bid biimpar redivcld sylancr a1i letri3d mpbir2and
      pm2.61dane ) AUAEZABUBFZUCGZAHGZBUCGZIFZJYAYDKLZYDYAKLZXSYEDUDZMGUEKLZYGX
      TGZMGZYDKLZUFZDNUGZXSYLDNXSYGNEZOZYHYKYOYHOZYJYBYGBGZMGZIFZYDKYOYJYSJYHYO
      YJAYQUHFZMGZYSYOYIYTMXSNNBUIZYNYIYTJBUJEZUUBCBUKUPZAYGBULUMUNYNXSYQNEZUUA
      YSJNNYGBUUDUOZAYQUQURUSPZYPYRQEZYBQEZRYBKLZOZYRYCKLZYSYDKLZYNUUHXSYHYNUUE
      UUHUUFYQUTSZVAXSUUKYNYHXSUUIUUJAVPZAVBVFVCYNYHUULXSUUBYNYHUULUUDYGBVDVEVG
      UUHYCQEZUUKUULUUMUUCUUPCBVHUPZYRYCYBVIVJVKVLWGVMXSNNXTUIZYDVNEYEYMTXSUUBU
      URUUDABVOVQZXSYDXSUUIUUPYDQEZUUOUUQYBYCVRVSZVTDYDXTWAWBWCZXSYFARXSARJZOYD
      RYAKUVCYDRJXSUVCYDRYCIFRUVCYBRYCIUVCYBRHGRARHWDWEWFWHYCYCUUQWIWJWFWKXSRYA
      KLZUVCXSUURUVDUUSXTWLSPVLXSARWMZOZYFYCYAYBWRFZKLZUVFUVHYHYRUVGKLZUFZDNUGZ
      UVFUVJDNUVFYNOZYHUVIUVLYHOYSYAKLZUVIXSYNYHUVMUVEYPYJYSYAKUUGXSYNYHYJYAKLZ
      XSUURYNYHUVNUUSYGXTVDWNWOWPWQUVLUVMUVITZYHUVLUUHYAQEZUUIRYBWSLZUVOYNUUHUV
      FUUNWKXSUVPUVEYNXSYAVNEZUUTWTYAWSLZYEUVPXSUURUVRUUSXTXASUVAXSUURUVSUUSXTX
      BSUVBYAYDXHXCZVCXSUUIUVEYNUUOVCUVFUVQYNXSUVEUVQAXDXEZPYRYAYBXFXGPXIWGVMUV
      FUUBUVGVNEUVHUVKTUUDUVFUVGUVFYAYBXSUVPUVEUVTPZXSUUIUVEUUOPZXSYBRWMUVEXSYB
      RARAXJXKXLXMVTDUVGBWAXNWCUVFUUPUVPUUIUVQYFUVHTUUPUVFUUQXOUWBUWCUWAYCYAYBX
      FXGWCXRXSYAYDUVTUVAXPXQ $.

    $( The scalar product of a bounded linear operator is a bounded linear
       operator.  (Contributed by NM, 10-Mar-2006.)
       (New usage is discouraged.) $)
    bdophmi $p |- ( A e. CC -> ( A .op T ) e. BndLinOp ) $=
      ( cc wcel chot co clo cnop cfv cr cbo bdopln ax-mp lnopmi cabs cmul abscl
      nmophmi nmopre remulcl sylancl eqeltrd elbdop2 sylanbrc ) ADEZABFGZHEUGIJ
      ZKEUGLEABBLEZBHECBMNOUFUHAPJZBIJZQGZKABCSUFUJKEUKKEZULKEARUIUMCBTNUJUKUAU
      BUCUGUDUE $.
  $}

  ${
    $d n w x y z N $.  $d n y M $.  $d n w x y z T $.  $d x y S $.  $d y C $.
    lncon.1 $e |- ( T e. C -> S e. RR ) $.
    lncon.2 $e |- ( ( T e. C /\ y e. ~H ) ->
                    ( N ` ( T ` y ) ) <_ ( S x. ( normh ` y ) ) ) $.
    lncon.3 $e |- ( T e. C <-> A. x e. ~H A. z e. RR+ E. y e. RR+ A. w e. ~H
   ( ( normh ` ( w -h x ) ) < y -> ( N ` ( ( T ` w ) M ( T ` x ) ) ) < z ) ) $.
    lncon.4 $e |- ( y e. ~H -> ( N ` ( T ` y ) ) e. RR ) $.
    lncon.5 $e |- ( ( w e. ~H /\ x e. ~H ) ->
                    ( T ` ( w -h x ) ) = ( ( T ` w ) M ( T ` x ) ) ) $.
    $( Lemma for ~ lnopconi and ~ lnfnconi .  (Contributed by NM, 7-Feb-2006.)
       (New usage is discouraged.) $)
    lnconi $p |- ( T e. C <->
     E. x e. RR A. y e. ~H ( N ` ( T ` y ) ) <_ ( x x. ( normh ` y ) ) ) $=
      ( wcel cfv wbr chil cr wa vn cv cno cmul co cle wral wrex ralrimiva oveq1
      wceq breq2d ralbidv rspcev syl2anc cn arch adantr wi nnre simplll simpllr
      clt normcl adantl cc0 normge0 ltle imp lemul1ad simpll syl2an simplr letr
      remulcl syl3anc mpan2d ralimdva impancom an32s reximdva mpd rexlimiva cmv
      sylan2 crp cdiv simprr nnrpd rpdivcld simprll hvsubcl fveq2 fveq2d oveq2d
      breq12d rspcva sylan eleq1d vtoclga simprlr rpred lelttr adantlr mpand wb
      syl nnrp rpregt0d ltmuldiv2 breq1d 3imtr3d breq2 imbi1d ralrimivva sylibr
      anassrs impbii ) GEOZBUBZGPZIPZAUBZXTUCPZUDUEZUFQZBRUGZASUHZXSFSOYBFYDUDU
      EZUFQZBRUGZYHJXSYJBRKUIYGYKAFSYCFUKZYFYJBRYLYEYIYBUFYCFYDUDUJULUMUNUOYHYB
      UAUBZYDUDUEZUFQZBRUGZUAUPUHZXSYGYQASYCSOZYGTZYCYMVCQZUAUPUHZYQYRUUAYGYCUA
      UQURYSYTYPUAUPYMUPOZYSYMSOZYTYPUSZYMUTZYRUUCYGUUDYRUUCTZYTYGYPUUFYTTZYFYO
      BRUUGXTROZTZYFYEYNUFQZYOUUIYCYMYDYRUUCYTUUHVAYRUUCYTUUHVBUUHYDSOZUUGXTVDZ
      VEUUHVFYDUFQUUGXTVGVEUUGYCYMUFQZUUHUUFYTUUMYCYMVHVIURVJUUIYBSOZYESOZYNSOZ
      YFUUJTYOUSUUHUUNUUGMVEUUGYRUUKUUOUUHYRUUCYTVKUULYCYDVOVLUUGUUCUUKUUPUUHYR
      UUCYTVMUULYMYDVOVLYBYEYNVNVPVQVRVSVTWEWAWBWCYQDUBZYCWDUEZUCPZXTVCQZUUQGPY
      CGPHUEZIPZCUBZVCQZUSZDRUGZBWFUHZCWFUGARUGZXSYPUVHUAUPUUBYPTZUVGACRWFUVIYC
      ROZUVCWFOZTZTZUVCYMWGUEZWFOUUSUVNVCQZUVDUSZDRUGZUVGUVMUVCYMUVIUVJUVKWHUVM
      YMUUBYPUVLVKWIWJUVMUVPDRUVIUVLUUQROZUVPUVIUVLUVRTZTZYMUUSUDUEZUVCVCQZUURG
      PZIPZUVCVCQZUVOUVDUVTUWDUWAUFQZUWBUWEUUBUVSYPUWFUUBUVSTZUURROZYPUWFUWGUVR
      UVJUWHUUBUVLUVRWHZUUBUVJUVKUVRWKZUUQYCWLUOZYOUWFBUURRXTUURUKZYBUWDYNUWAUF
      UWLYAUWCIXTUURGWMWNZUWLYDUUSYMUDXTUURUCWMWOWPWQWRVTUUBUVSUWFUWBTUWEUSZYPU
      WGUWDSOZUWASOZUVCSOZUWNUWGUWHUWOUWKUUNUWOBUURRUWLYBUWDSUWMWSMWTXGUWGUUCUU
      SSOZUWPUUBUUCUVSUUEURUWGUWHUWRUWKUURVDXGZYMUUSVOUOUWGUVCUUBUVJUVKUVRXAXBZ
      UWDUWAUVCXCVPXDXEUUBUVSUWBUVOXFZYPUWGUWRUWQUUCVFYMVCQTZUXAUWSUWTUUBUXBUVS
      UUBYMYMXHXIURUUSUVCYMXJVPXDUVTUWDUVBUVCVCUVTUWCUVAIUUBUVSUWCUVAUKZYPUWGUV
      RUVJUXCUWIUWJNUOXDWNXKXLXQUIUVFUVQBUVNWFXTUVNUKZUVEUVPDRUXDUUTUVOUVDXTUVN
      UUSVCXMXNUMUNUOXOWCLXPXGXR $.
  $}

  ${
    $d w x y z T $.
    lnopcon.1 $e |- T e. LinOp $.
    $( A condition equivalent to " ` T ` is continuous" when ` T ` is linear.
       Theorem 3.5(iii) of [Beran] p. 99.  (Contributed by NM, 7-Feb-2006.)
       (Proof shortened by Mario Carneiro, 17-Nov-2013.)
       (New usage is discouraged.) $)
    lnopconi $p |- ( T e. ContOp <->
     E. x e. RR A. y e. ~H ( normh ` ( T ` y ) ) <_ ( x x. ( normh ` y ) ) ) $=
      ( vz vw ccop cnop cfv cmv cno wcel cr cv chil co wbr clt wral crp nmcopex
      clo mpan cmul cle nmcoplb mp3an1 wf wi wrex lnopfi elcnop ffvelrni normcl
      mpbiran syl lnopsubi lnconi ) ABEFGCHIZCJKCUBLZCGLZUSMLDCUAUCUTVABNZOLZVB
      CIZKIZUSVBKIUDPUEQDVBCUFUGVAOOCUHFNZANZJPKIVBRQVFCIVGCIJPKIENRQUIFOSBTUJE
      TSAOSCDUKZAEBFCULUOVCVDOLVEMLOOVBCVHUMVDUNUPVFVGCDUQUR $.
  $}

  ${
    $d x y T $.
    $( A condition equivalent to " ` T ` is continuous" when ` T ` is linear.
       Theorem 3.5(iii) of [Beran] p. 99.  (Contributed by NM, 14-Feb-2006.)
       (New usage is discouraged.) $)
    lnopcon $p |- ( T e. LinOp -> ( T e. ContOp <->
   E. x e. RR A. y e. ~H ( normh ` ( T ` y ) ) <_ ( x x. ( normh ` y ) ) ) ) $=
      ( clo wcel ccop cv cfv cno cmul co cle wbr chil wral cr wrex wb cid cres
      cif wceq eleq1 fveq1 fveq2d breq1d rexralbidv bibi12d idlnop elimel dedth
      lnopconi ) CDEZCFEZBGZCHZIHZAGUOIHJKZLMZBNOAPQZRUMCSNTZUAZFEZUOVBHZIHZURL
      MZBNOAPQZRCVACVBUBZUNVCUTVGCVBFUCVHUSVFABPNVHUQVEURLVHUPVDIUOCVBUDUEUFUGU
      HABVBCVADUIUJULUK $.

    $( A linear operator is continuous iff it is bounded.  (Contributed by NM,
       14-Feb-2006.)  (New usage is discouraged.) $)
    lnopcnbd $p |- ( T e. LinOp -> ( T e. ContOp <-> T e. BndLinOp ) ) $=
      ( vy vx clo wcel ccop cbo cnop cfv cr nmcopex ex cv cno cmul cle wbr chil
      co wral elbdop2 baibr sylibd wrex nmopre nmbdoplb ralrimiva oveq1 ralbidv
      wceq breq2d rspcev syl2anc lnopcon syl5ibr impbid ) ADEZAFEZAGEZUQURAHIZJ
      EZUSUQURVAAKLUSUQVAAUAUBUCUSURUQBMZAINIZCMZVBNIZOSZPQZBRTZCJUDZUSVAVCUTVE
      OSZPQZBRTZVIAUEUSVKBRVBAUFUGVHVLCUTJVDUTUJZVGVKBRVMVFVJVCPVDUTVEOUHUKUIUL
      UMCBAUNUOUP $.
  $}

  $( A continuous linear operator is a bounded linear operator.  This theorem
     justifies our use of "bounded linear" as an interchangeable condition for
     "continuous linear" used in some textbook proofs.  (Contributed by NM,
     18-Feb-2006.)  (New usage is discouraged.) $)
  lncnopbd $p |- ( T e. ( LinOp i^i ContOp ) <-> T e. BndLinOp ) $=
    ( clo ccop cin wcel wa cbo lnopcnbd biimpa bdopln biimparc mpdan jca impbii
    elin bitri ) ABCDEABEZACEZFZAGEZABCOSTQRTAHZITQRAJZTQRUBQRTUAKLMNP $.

  $( A continuous linear operator is a bounded linear operator.  (Contributed
     by NM, 18-Feb-2006.)  (New usage is discouraged.) $)
  lncnbd $p |- ( LinOp i^i ContOp ) = BndLinOp $=
    ( vt clo ccop cin cbo cv lncnopbd eqriv ) ABCDEAFGH $.

  $( A linear operator is continuous iff it is bounded.  (Contributed by NM,
     14-Feb-2006.)  (New usage is discouraged.) $)
  lnopcnre $p |- ( T e. LinOp -> ( T e. ContOp <-> ( normop ` T ) e. RR ) ) $=
    ( clo wcel ccop cbo cnop cfv cr lnopcnbd elbdop2 baib bitrd ) ABCZADCAECZAF
    GHCZAINMOAJKL $.

  ${
    lnfnl.1 $e |- T e. LinFn $.
    $( Basic property of a linear Hilbert space functional.  (Contributed by
       NM, 11-Feb-2006.)  (New usage is discouraged.) $)
    lnfnli $p |- ( ( A e. CC /\ B e. ~H /\ C e. ~H ) ->
         ( T ` ( ( A .h B ) +h C ) ) = ( ( A x. ( T ` B ) ) + ( T ` C ) ) ) $=
      ( cc wcel chil csm co cva cfv cmul caddc wceq clf wa lnfnl mpanl1 3impb )
      AFGZBHGZCHGZABIJCKJDLABDLMJCDLNJOZDPGUAUBUCQUDEABCDRST $.

    $( A linear Hilbert space functional is a functional.  (Contributed by NM,
       11-Feb-2006.)  (New usage is discouraged.) $)
    lnfnfi $p |- T : ~H --> CC $=
      ( clf wcel chil cc wf lnfnf ax-mp ) ACDEFAGBAHI $.

    $( The value of a linear Hilbert space functional at zero is zero.  Remark
       in [Beran] p. 99.  (Contributed by NM, 11-Feb-2006.)
       (New usage is discouraged.) $)
    lnfn0i $p |- ( T ` 0h ) = 0 $=
      ( c0v cfv caddc co cmin cc0 chil wcel ax-hv0cl lnfnfi ffvelrni ax-mp wceq
      cc c1 ax-1cn eqtr3i oveq1i pncan3oi cmul lnfnli mp3an hvmulcli ax-hvaddid
      csm cva ax-hvmulid eqtri fveq2i mulid2i subidi ) CADZUNEFZUNGFZUNHUNUNCIJ
      ZUNPJKIPCAABLMNZURUAUNUNGFUPHUNUOUNGQUNUBFZUNEFZUNUOQCUGFZCUHFZADZUTUNQPJ
      UQUQVCUTORKKQCCABUCUDVBCAVBVACVAIJVBVAOQCRKUEVAUFNUQVACOKCUINUJUKSUSUNUNE
      UNURULTSTUNURUMSS $.

    $( Additive property of a linear Hilbert space functional.  (Contributed by
       NM, 11-Feb-2006.)  (New usage is discouraged.) $)
    lnfnaddi $p |- ( ( A e. ~H /\ B e. ~H ) ->
         ( T ` ( A +h B ) ) = ( ( T ` A ) + ( T ` B ) ) ) $=
      ( chil wcel wa c1 csm cva cfv cmul caddc wceq ax-1cn lnfnli oveq1d adantr
      co cc mp3an1 ax-hvmulid fveq2d lnfnfi ffvelrni mulid2d 3eqtr3d ) AEFZBEFZ
      GZHAISZBJSZCKZHACKZLSZBCKZMSZABJSZCKZUNUPMSHTFUHUIUMUQNOHABCDPUAUHUMUSNUI
      UHULURCUHUKABJAUBQUCRUJUOUNUPMUHUOUNNUIUHUNETACCDUDUEUFRQUG $.

    $( Multiplicative property of a linear Hilbert space functional.
       (Contributed by NM, 11-Feb-2006.)  (New usage is discouraged.) $)
    lnfnmuli $p |- ( ( A e. CC /\ B e. ~H ) ->
         ( T ` ( A .h B ) ) = ( A x. ( T ` B ) ) ) $=
      ( cc wcel chil wa csm co c0v cva cfv cmul wceq ax-hv0cl lnfnli mp3an3 cc0
      caddc hvmulcl ax-hvaddid syl fveq2d lnfn0i oveq2i lnfnfi ffvelrni addid1d
      mulcl sylan2 syl5eq 3eqtr3d ) AEFZBGFZHZABIJZKLJZCMZABCMZNJZKCMZTJZUQCMVA
      UNUOKGFUSVCOPABKCDQRUPURUQCUPUQGFURUQOABUAUQUBUCUDUPVCVASTJVAVBSVATCDUEUF
      UPVAUOUNUTEFVAEFGEBCCDUGUHAUTUJUKUIULUM $.

    $( Sum/product property of a linear Hilbert space functional.  (Contributed
       by NM, 13-Feb-2006.)  (New usage is discouraged.) $)
    lnfnaddmuli $p |- ( ( A e. CC /\ B e. ~H /\ C e. ~H ) ->
         ( T ` ( B +h ( A .h C ) ) ) = ( ( T ` B ) + ( A x. ( T ` C ) ) ) ) $=
      ( cc wcel chil w3a csm co cva cfv caddc cmul wceq hvmulcl lnfnaddi sylan2
      wa 3impb 3com12 lnfnmuli 3adant2 oveq2d eqtrd ) AFGZBHGZCHGZIZBACJKZLKDMZ
      BDMZUKDMZNKZUMACDMOKZNKUHUGUIULUOPZUHUGUIUQUGUITUHUKHGUQACQBUKDERSUAUBUJU
      NUPUMNUGUIUNUPPUHACDEUCUDUEUF $.

    $( Subtraction property for a linear Hilbert space functional.
       (Contributed by NM, 13-Feb-2006.)  (New usage is discouraged.) $)
    lnfnsubi $p |- ( ( A e. ~H /\ B e. ~H ) ->
         ( T ` ( A -h B ) ) = ( ( T ` A ) - ( T ` B ) ) ) $=
      ( chil wcel wa c1 cneg csm co cva cfv cmul caddc cmv cmin wceq ffvelrni
      cc neg1cn mp3an1 hvsubval fveq2d lnfnfi mulm1 oveq2d adantl negsub eqtr2d
      lnfnaddmuli syl2an 3eqtr4d ) AEFZBEFZGZAHIZBJKLKZCMZACMZUQBCMZNKZOKZABPKZ
      CMUTVAQKZUQTFUNUOUSVCRUAUQABCDUKUBUPVDURCABUCUDUNUTTFZVATFZVEVCRUOETACCDU
      EZSETBCVHSVFVGGVCUTVAIZOKZVEVGVCVJRVFVGVBVIUTOVAUFUGUHUTVAUIUJULUM $.
  $}

  $( The value of a linear Hilbert space functional at zero is zero.  Remark in
     [Beran] p. 99.  (Contributed by NM, 25-Apr-2006.)
     (New usage is discouraged.) $)
  lnfn0 $p |- ( T e. LinFn -> ( T ` 0h ) = 0 ) $=
    ( clf wcel c0v cfv cc0 wceq chil csn fveq1 eqeq1d 0lnfn elimel lnfn0i dedth
    cxp cif ) ABCZDAEZFGDRAHFIPZQZEZFGATAUAGSUBFDAUAJKUAATBLMNO $.

  $( Multiplicative property of a linear Hilbert space functional.
     (Contributed by NM, 30-May-2006.)  (New usage is discouraged.) $)
  lnfnmul $p |- ( ( T e. LinFn /\ A e. CC /\ B e. ~H ) ->
                 ( T ` ( A .h B ) ) = ( A x. ( T ` B ) ) ) $=
    ( clf wcel cc chil csm co cfv cmul wceq wa wi cc0 csn cxp cif fveq1 oveq2d
    eqeq12d imbi2d 0lnfn elimel lnfnmuli dedth 3impib ) CDEZAFEZBGEZABHIZCJZABC
    JZKIZLZUHUIUJMZUONUPUKUHCGOPQZRZJZABURJZKIZLZNCUQCURLZUOVBUPVCULUSUNVAUKCUR
    SVCUMUTAKBCURSTUAUBABURCUQDUCUDUEUFUG $.

  ${
    nmbdfnlb.1 $e |- ( T e. LinFn /\ ( normfn ` T ) e. RR ) $.
    $( A lower bound for the norm of a bounded linear functional.  (Contributed
       by NM, 25-Apr-2006.)  (New usage is discouraged.) $)
    nmbdfnlbi $p |- ( A e. ~H ->
                ( abs ` ( T ` A ) ) <_ ( ( normfn ` T ) x. ( normh ` A ) ) ) $=
      ( chil wcel cfv cabs cno cmul co cle wbr c0v wceq cr c1 cc adantr syl2anc
      cc0 cnmf fveq2 clf simpli lnfn0i syl6eq abs00bd norm0 oveq2d simpri recni
      0le0 mul01i syl6req syl5breq eqbrtrd adantl wne wa cdiv csm lnfnfi abscld
      ffvelrni normcl normne0 biimpar divrec2d rereccld lnfnmuli fveq2d absmuld
      recnd simpl clt normgt0 biimpa recgt0d wi ltle mpan absidd oveq1d 3eqtrrd
      0re sylc eqtrd hvmulcl norm1 eqle wf nmfnlb mp3an1 wb ledivmul2 syl112anc
      syl a1i mpbid pm2.61dane ) ADEZABFZGFZBUAFZAHFZIJZKLZAMAMNZXGXAXHXCTXFKXH
      XBXHXBMBFTAMBUBBBUCEZXDOEZCUDZUEUFUGXHTTXFKULXHXFXDTIJTXHXETXDIXHXEMHFTAM
      HUBUHUFUIXDXDXIXJCUJZUKUMUNUOUPUQXAAMURZUSZXCXEUTJZXDKLZXGXNXOPXEUTJZAVAJ
      ZBFZGFZXDKXNXOXQXCIJZXTXNXCXEXNXCXAXCOEZXMXAXBDQABBXKVBZVDZVCRZVMXNXEXAXE
      OEZXMAVERZVMXAXETURXMAVFVGZVHXNXTXQXBIJZGFXQGFZXCIJYAXNXSYIGXNXQQEZXAXSYI
      NXNXQXNXEYGYHVIZVMZXAXMVNZXQABXKVJSVKXNXQXBYMXAXBQEXMYDRVLXNYJXQXCIXNXQYL
      XNXQOEZTXQVOLZTXQKLZYLXNXEYGXAXMTXEVOLZAVPVQZVRTOEYOYPYQVSWETXQVTWAWFWBWC
      WDWGXNXRDEZXRHFZPKLZXTXDKLZXNYKXAYTYMYNXQAWHSZXNUUAOEZUUAPNUUBXNYTUUEUUDX
      RVEWQAWIUUAPWJSDQBWKYTUUBUUCYCXRBWLWMSUPXNYBXJYFYRXPXGWNYEXJXNXLWRYGYSXCX
      DXEWOWPWSWT $.
  $}

  $( A lower bound for the norm of a bounded linear functional.  (Contributed
     by NM, 25-Apr-2006.)  (New usage is discouraged.) $)
  nmbdfnlb $p |- ( ( T e. LinFn /\ ( normfn ` T ) e. RR /\ A e. ~H ) ->
              ( abs ` ( T ` A ) ) <_ ( ( normfn ` T ) x. ( normh ` A ) ) ) $=
    ( clf wcel cnmf cfv cr chil cabs cmul co cle wbr wa wi cc0 wceq fveq2 eleq1
    eleq1d cno csn cxp cif fveq1 fveq2d oveq1d breq12d imbi2d anbi12d 0lnfn 0re
    nmfn0 eqeltri pm3.2i elimhyp nmbdfnlbi dedth 3impia ) BCDZBEFZGDZAHDZABFZIF
    ZVAAUAFZJKZLMZUTVBNZVCVHOVCAVIBHPUBUCZUDZFZIFZVKEFZVFJKZLMZOBVJBVKQZVHVPVCV
    QVEVMVGVOLVQVDVLIABVKUEUFVQVAVNVFJBVKERZUGUHUIAVKVIVKCDZVNGDZNVJCDZVJEFZGDZ
    NBVJVQUTVSVBVTBVKCSVQVAVNGVRTUJVJVKQZWAVSWCVTVJVKCSWDWBVNGVJVKERTUJWAWCUKWB
    PGUMULUNUOUPUQURUS $.

  ${
    $d m x y z T $.
    nmcfnex.1 $e |- T e. LinFn $.
    nmcfnex.2 $e |- T e. ContFn $.
    $( The norm of a continuous linear Hilbert space functional exists.
       Theorem 3.5(i) of [Beran] p. 99.  (Contributed by NM, 14-Feb-2006.)
       (Proof shortened by Mario Carneiro, 17-Nov-2013.)
       (New usage is discouraged.) $)
    nmcfnexi $p |- ( normfn ` T ) e. RR $=
      ( vx vy vz vm cabs cv co cfv clt wbr c1 chil crp wcel cc0 cc wceq c0v cmv
      cnmf cno cmin wi wral ccnfn ax-hv0cl 1rp cnfnc mp3an hvsub0 fveq2d breq1d
      wrex lnfn0i oveq2i lnfnfi ffvelrni subid1d syl5eq imbi12d ralbiia mpbi wf
      rexbii cle wa cab cxr csup nmfnval ax-mp abscld fveq2i abs0 eqtri c2 cdiv
      cmul rpcn lnfnmuli sylan absmul syl2an rpge0 absidd adantr oveq1d 3eqtrrd
      csm rpre nmcexi ) DEFUCAGHFIZUAUBJZUDKZEIZLMZWOAKZUAAKZUEJZHKZNLMZUFZFOUG
      ZEPUPZWOUDKZWRLMZWTHKZNLMZUFZFOUGZEPUPAUHQUAOQNPQXGCUIUJEFUANAUKULXFXMEPX
      EXLFOWOOQZWSXIXDXKXNWQXHWRLXNWPWOUDWOUMUNUOXNXCXJNLXNXBWTHXNXBWTRUEJWTXAR
      WTUEABUQZURXNWTOSWOAABUSZUTVAVBUNUOVCVDVGVEOSAVFAUCKDIZUDKNVHMGIXQAKZHKZT
      VIDOUPGVJVKLVLTXPGDAVMVNXQOQZXROSXQAXPUTZVOXAHKRHKRXARHXOVPVQVRWRVSVTJZPQ
      ZXTVIZYBXQWLJAKZHKYBXRWAJZHKZYBHKZXSWAJZYBXSWAJYDYEYFHYCYBSQZXTYEYFTYBWBZ
      YBXQABWCWDUNYCYJXRSQYGYITXTYKYAYBXRWEWFYDYHYBXSWAYCYHYBTXTYCYBYBWMYBWGWHW
      IWJWKWN $.

    $( A lower bound for the norm of a continuous linear functional.  Theorem
       3.5(ii) of [Beran] p. 99.  (Contributed by NM, 14-Feb-2006.)
       (New usage is discouraged.) $)
    nmcfnlbi $p |- ( A e. ~H ->
                ( abs ` ( T ` A ) ) <_ ( ( normfn ` T ) x. ( normh ` A ) ) ) $=
      ( chil wcel c0v wceq cfv cabs cno cmul co cle wbr cc0 c1 cr cc syl2anc wn
      cnmf fveq2 lnfn0i syl6eq abs00bd 0le0 norm0 oveq2d nmcfnexi recni syl6req
      mul01i syl5breq eqbrtrd adantl wa csm lnfnfi ffvelrni abscld adantr recnd
      cdiv normcl norm-i notbid biimpar neqned divrec2d rereccld simpl lnfnmuli
      fveq2d absmuld clt wne df-ne normgt0 syl5bbr biimpa recgt0d 0re ltle mpan
      wi sylc absidd oveq1d 3eqtrrd eqtrd hvmulcl norm1 sylan2br eqle wf nmfnlb
      syl mp3an1 wb a1i ledivmul2 syl112anc mpbid pm2.61dan ) AEFZAGHZABIZJIZBU
      BIZAKIZLMZNOZXGXMXFXGXIPXLNXGXHXGXHGBIPAGBUCBCUDUEUFXGPPXLNUGXGXLXJPLMPXG
      XKPXJLXGXKGKIPAGKUCUHUEUIXJXJBCDUJZUKUMULUNUOUPXFXGUAZUQZXIXKVDMZXJNOZXMX
      PXQQXKVDMZAURMZBIZJIZXJNXPXQXSXILMZYBXPXIXKXPXIXFXIRFZXOXFXHESABBCUSZUTZV
      AVBZVCXPXKXFXKRFZXOAVEVBZVCXPXKPXFXKPHZUAXOXFYJXGAVFVGVHVIZVJXPYBXSXHLMZJ
      IXSJIZXILMYCXPYAYLJXPXSSFZXFYAYLHXPXSXPXKYIYKVKZVCZXFXOVLZXSABCVMTVNXPXSX
      HYPXFXHSFXOYFVBVOXPYMXSXILXPXSYOXPXSRFZPXSVPOZPXSNOZYOXPXKYIXFXOPXKVPOZXO
      AGVQZXFUUAAGVRZAVSVTWAZWBPRFYRYSYTWFWCPXSWDWEWGWHWIWJWKXPXTEFZXTKIZQNOZYB
      XJNOZXPYNXFUUEYPYQXSAWLTZXPUUFRFZUUFQHZUUGXPUUEUUJUUIXTVEWRXOXFUUBUUKUUCA
      WMWNUUFQWOTESBWPUUEUUGUUHYEXTBWQWSTUOXPYDXJRFZYHUUAXRXMWTYGUULXPXNXAYIUUD
      XIXJXKXBXCXDXE $.
  $}

  $( The norm of a continuous linear Hilbert space functional exists.  Theorem
     3.5(i) of [Beran] p. 99.  (Contributed by NM, 14-Feb-2006.)
     (New usage is discouraged.) $)
  nmcfnex $p |- ( ( T e. LinFn /\ T e. ContFn ) -> ( normfn ` T ) e. RR ) $=
    ( clf wcel ccnfn wa cin cnmf cfv cr elin chil cc0 csn cxp wceq fveq2 eleq1d
    cif 0lnfn 0cnfn mpbir2an elimel mpbi simpli simpri nmcfnexi dedth sylbir )
    ABCADCEABDFZCZAGHZICZABDJUJULUJAKLMNZRZGHZICAUMAUNOUKUOIAUNGPQUNUNBCZUNDCZU
    NUICUPUQEAUMUIUMUICUMBCUMDCSTUMBDJUAUBUNBDJUCZUDUPUQURUEUFUGUH $.

  $( A lower bound of the norm of a continuous linear Hilbert space functional.
     Theorem 3.5(ii) of [Beran] p. 99.  (Contributed by NM, 14-Feb-2006.)
     (New usage is discouraged.) $)
  nmcfnlb $p |- ( ( T e. LinFn /\ T e. ContFn /\ A e. ~H ) ->
                ( abs ` ( T ` A ) ) <_ ( ( normfn ` T ) x. ( normh ` A ) ) ) $=
    ( clf wcel ccnfn chil cfv cabs cnmf cno cmul co cle wbr wa cin elin cc0 csn
    wi cxp cif wceq fveq1 fveq2d fveq2 oveq1d breq12d imbi2d 0lnfn 0cnfn elimel
    mpbir2an mpbi simpli simpri nmcfnlbi dedth imp sylanbr 3impa ) BCDZBEDZAFDZ
    ABGZHGZBIGZAJGZKLZMNZVBVCOBCEPZDZVDVJBCEQVLVDVJVLVDVJTVDAVLBFRSUAZUBZGZHGZV
    NIGZVHKLZMNZTBVMBVNUCZVJVSVDVTVFVPVIVRMVTVEVOHABVNUDUEVTVGVQVHKBVNIUFUGUHUI
    AVNVNCDZVNEDZVNVKDWAWBOBVMVKVMVKDVMCDVMEDUJUKVMCEQUMULVNCEQUNZUOWAWBWCUPUQU
    RUSUTVA $.

  ${
    $d x y z w T $.
    lnfncon.1 $e |- T e. LinFn $.
    $( A condition equivalent to " ` T ` is continuous" when ` T ` is linear.
       Theorem 3.5(iii) of [Beran] p. 99.  (Contributed by NM, 14-Feb-2006.)
       (Proof shortened by Mario Carneiro, 17-Nov-2013.)
       (New usage is discouraged.) $)
    lnfnconi $p |- ( T e. ContFn <->
       E. x e. RR A. y e. ~H ( abs ` ( T ` y ) ) <_ ( x x. ( normh ` y ) ) ) $=
      ( vz vw ccnfn cfv cmin cabs wcel cv chil cno co wbr cc clt wral crp cr wf
      cnmf clf nmcfnex mpan cmul cle nmcfnlb mp3an1 cmv wi wrex lnfnfi ffvelrni
      elcnfn mpbiran abscld lnfnsubi lnconi ) ABEFGCUCHZCIJCUDKZCGKZVAUAKDCUEUF
      VBVCBLZMKZVDCHZJHVAVDNHUGOUHPDVDCUIUJVCMQCUBFLZALZUKONHVDRPVGCHVHCHIOJHEL
      RPULFMSBTUMETSAMSCDUNZAEBFCUPUQVEVFMQVDCVIUOURVGVHCDUSUT $.
  $}

  ${
    $d x y T $.
    $( A condition equivalent to " ` T ` is continuous" when ` T ` is linear.
       Theorem 3.5(iii) of [Beran] p. 99.  (Contributed by NM, 16-Feb-2006.)
       (New usage is discouraged.) $)
    lnfncon $p |- ( T e. LinFn -> ( T e. ContFn <->
     E. x e. RR A. y e. ~H ( abs ` ( T ` y ) ) <_ ( x x. ( normh ` y ) ) ) ) $=
      ( clf wcel ccnfn cv cfv cabs cno cmul co cle wbr chil wral cr wrex wb cc0
      csn cxp wceq eleq1 fveq1 fveq2d breq1d rexralbidv bibi12d elimel lnfnconi
      cif 0lnfn dedth ) CDEZCFEZBGZCHZIHZAGUQJHKLZMNZBOPAQRZSUOCOTUAUBZULZFEZUQ
      VDHZIHZUTMNZBOPAQRZSCVCCVDUCZUPVEVBVICVDFUDVJVAVHABQOVJUSVGUTMVJURVFIUQCV
      DUEUFUGUHUIABVDCVCDUMUJUKUN $.

    $( A linear functional is continuous iff it is bounded.  (Contributed by
       NM, 25-Apr-2006.)  (New usage is discouraged.) $)
    lnfncnbd $p |- ( T e. LinFn ->
                    ( T e. ContFn <-> ( normfn ` T ) e. RR ) ) $=
      ( vy vx clf wcel ccnfn cnmf cfv cr nmcfnex ex cv cabs cno cmul co cle wbr
      chil wral wrex wa simpr nmbdfnlb 3expa ralrimiva wceq oveq1 breq2d rspcev
      ralbidv syl2anc lnfncon sylibrd impbid ) ADEZAFEZAGHZIEZUPUQUSAJKUPUSBLZA
      HMHZCLZUTNHZOPZQRZBSTZCIUAZUQUPUSVGUPUSUBZUSVAURVCOPZQRZBSTZVGUPUSUCVHVJB
      SUPUSUTSEVJUTAUDUEUFVFVKCURIVBURUGZVEVJBSVLVDVIVAQVBURVCOUHUIUKUJULKCBAUM
      UNUO $.
  $}

  ${
    $d u v x y T $.  $d u v x y A $.
    rnelsh.1 $e |- T e. LinOp $.
    ${
      imaelsh.2 $e |- A e. SH $.
      $( The image of a subspace under a linear operator is a subspace.
         (Contributed by Mario Carneiro, 19-May-2014.)
         (New usage is discouraged.) $)
      imaelshi $p |- ( T " A ) e. SH $=
        ( vu vv vx vy wcel chil wss c0v wa cv cva co wral ax-mp cfv mp2an cc wf
        cima csh csm crn imassrn lnopfi frn sstri lnop0i sh0 wfun cdm wi shssii
        ffun fdmi sseqtr4i funfvima2 eqeltrri pm3.2i wfn ffn wceq oveq1 ralbidv
        wb eleq1d ralima sheli lnopaddi syl2an shaddcl eqeltrrd ralrimiva oveq2
        mp3an1 syl sylibr mprgbir lnopmuli sylan2 shmulcl rgen issh2 mpbir2an )
        BAUCZUDIWHJKZLWHIZMENZFNZOPZWHIZFWHQZEWHQZWKWLUEPZWHIZFWHQZEUAQZMWIWJWH
        BUFZJBAUGJJBUBZXAJKBCUHZJJBUIRUJLBSZLWHBCUKLAIZXDWHIZAUDIZXEDAULRBUMZAB
        UNZKZXEXFUOXBXHXCJJBUQRZAJXIADUPZJJBXCURUSZALBUTTRVAVBWPWTWPGNZBSZWLOPZ
        WHIZFWHQZGABJVCZAJKZWPXRGAQVHXBXSXCJJBVDRZXLWOXREGJABWKXOVEZWNXQFWHYBWM
        XPWHWKXOWLOVFVIVGVJTXNAIZXOHNZBSZOPZWHIZHAQZXRYCYGHAYCYDAIZMZXNYDOPZBSZ
        YFWHYCXNJIYDJIZYLYFVEYIXNADVKYDADVKZXNYDBCVLVMYJYKAIZYLWHIZXGYCYIYODXNY
        DAVNVRXHXJYOYPUOXKXMAYKBUTTVSVOVPXSXTXRYHVHYAXLXQYGFHJABWLYEVEZXPYFWHWL
        YEXOOVQVIVJTVTWAWSEUAWKUAIZWKYEUEPZWHIZHAQZWSYRYTHAYRYIMZWKYDUEPZBSZYSW
        HYIYRYMUUDYSVEYNWKYDBCWBWCUUBUUCAIZUUDWHIZXGYRYIUUEDWKYDAWDVRXHXJUUEUUF
        UOXKXMAUUCBUTTVSVOVPXSXTWSUUAVHYAXLWRYTFHJABYQWQYSWHWLYEWKUEVQVIVJTVTWE
        VBEFWHWFWG $.
    $}

    $( The range of a linear operator is a subspace.  (Contributed by Mario
       Carneiro, 17-Nov-2013.)  (New usage is discouraged.) $)
    rnelshi $p |- ran T e. SH $=
      ( cdm cima crn imadmrn chil lnopfi fdmi helsh eqeltri imaelshi eqeltrri
      csh ) AACZDAENAFOABOGNGGAABHIJKLM $.
  $}

  ${
    $d x y T $.
    nlelsh.1 $e |- T e. LinFn $.
    $( The null space of a linear functional is a subspace.  (Contributed by
       NM, 11-Feb-2006.)  (Revised by Mario Carneiro, 17-Nov-2013.)
       (New usage is discouraged.) $)
    nlelshi $p |- ( null ` T ) e. SH $=
      ( vx vy cfv wcel c0v cv co wral cc wa chil cc0 wceq wb elnlfn ax-mp caddc
      cmul cnl csh cva csm ax-hv0cl lnfn0i wf lnfnfi mpbir2an cdm ccnv csn cima
      nlfnval cnvimass eqsstri sseqtri sseli hvaddcl lnfnaddi simprbi oveqan12d
      fdmi syl2an eqtrd 00id syl6eq sylanbrc rgen2 sylan2 lnfnmuli oveq2d mul01
      hvmulcl sylan9eqr pm3.2i wss issh3 ) AUAEZUBFZGVSFZCHZDHZUCIZVSFZDVSJCVSJ
      ZWBWCUDIZVSFZDVSJCKJZLZWAGMFZGAENOZUEABUFMKAUGZWAWKWLLPABUHZGAQRUIWFWIWEC
      DVSVSWBVSFZWCVSFZLZWDMFZWDAEZNOZWEWOWBMFZWCMFZWRWPVSMWBVSAUJZMVSAUKNULZUM
      ZXCWMVSXEOWNAUNRAXDUOUPMKAWNVCUQZURZVSMWCXFURZWBWCUSVDWQWSNNSIZNWQWSWBAEZ
      WCAEZSIZXIWOXAXBWSXLOWPXGXHWBWCABUTVDWOWPXJNXKNSWOXAXJNOZWMWOXAXMLPWNWBAQ
      RVAWPXBXKNOZWMWPXBXNLPWNWCAQRVAZVBVEVFVGWMWEWRWTLPWNWDAQRVHVIWHCDKVSWBKFZ
      WPLZWGMFZWGAEZNOZWHWPXPXBXRXHWBWCVNVJXQXSWBXKTIZNWPXPXBXSYAOXHWBWCABVKVJW
      PXPYAWBNTINWPXKNWBTXOVLWBVMVOVEWMWHXRXTLPWNWGAQRVHVIVPVSMVQVTWAWJLPXFCDVS
      VRRUI $.
  $}

  ${
    $d f n u v w x T $.
    nlelch.1 $e |- T e. LinFn $.
    nlelch.2 $e |- T e. ContFn $.
    $( The null space of a continuous linear functional is a closed subspace.
       Remark 3.8 of [Beran] p. 103.  (Contributed by NM, 11-Feb-2006.)  (Proof
       shortened by Mario Carneiro, 19-May-2014.)
       (New usage is discouraged.) $)
    nlelchi $p |- ( null ` T ) e. CH $=
      ( vf vx vn cfv wcel cn cv wf chli wbr wa chil cc0 wceq adantl eqid cc cnl
      cch csh wi wal nlelshi vex hlimveci ccom ccnfld cha cnfldhaus a1i cno cmv
      ctopn cmopn clm cmap co cres cva csm hhims hhlm resss eqsstri ssbri ccnfn
      cop ccn hhcnf eleqtri lmcn csn cxp lnfnfi ffvelrn adantlr elnlfn2 sylancr
      wral fvco3 c0ex fvconst2 3eqtr4d ralrimiva wfn ffn ax-mp wss simpl shssii
      wb sylancl fnfco fconst eqfnfv mpbird ctopon c1 cnfldtopon 0cnd 1zzd nnuz
      fss cz lmconst syl3anc eqbrtrd lmmo elnlfn sylanbrc gen2 isch2 mpbir2an )
      AUAGZUBHXQUCHIXQDJZKZXREJZLMZNZXTXQHZUDZEUEDUEABUFZYDDEYBXTOHZXTAGZPQZYCY
      AYFXSXTXREUGUHRYBYGPAXRUIZUJUPGZYJUKHYBYJYJSZULUMYBXTXRAUNUOUIZUQGZYJYAXR
      XTYMURGZMXSLYNXRXTLYNOIUSUTZVAYNYLVBVCVJUNVJZYMYPSZYLYPYQYLSZVDYMSZVEYNYO
      VFVGVHRAYMYJVKUTZHYBAVIYTCYLYMYJYRYSYKVLVMUMVNYBYIIPVOZVPZPYJURGZYBYIUUBQ
      ZFJZYIGZUUEUUBGZQZFIWBZYBUUHFIYBUUEIHZNZUUEXRGZAGZPUUFUUGUUKOTAKZUULXQHZU
      UMPQABVQZXSUUJUUOYAIXQUUEXRVRVSUULAVTWAXSUUJUUFUUMQYAIXQUUEAXRWCVSUUJUUGP
      QYBIPUUEWDWERWFWGYBYIIWHZUUBIWHZUUDUUIWNYBAOWHZIOXRKZUUQUUNUUSUUPOTAWIWJY
      BXSXQOWKUUTXSYAWLXQYEWMIXQOXRXFWOOIAXRWPWAIUUAUUBKUURIPWDWQIUUAUUBWIWJFIY
      IUUBWRWOWSYBYJTWTGHZPTHXAXGHUUBPUUCMUVAYBYJYKXBUMYBXCYBXDPYJXATIXEXHXIXJX
      KUUNYCYFYHNWNUUPXTAXLWJXMXNEDXQXOXP $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Riesz lemma
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

    $( A continuous linear functional can be expressed as an inner product.
       Existence part of Theorem 3.9 of [Beran] p. 104.  (Contributed by NM,
       13-Feb-2006.)  (New usage is discouraged.) $)
    riesz3i $p |- E. w e. ~H A. v e. ~H ( T ` v ) = ( v .ih w ) $=
      ( cfv csp co wceq chil c0h c0v wcel wa cc0 cc adantr cmul cmin syl3anc vu
      cv wral wrex cnl cort ax-hv0cl wf lnfnfi fveq2 nlelchi ococi choc0 eleq2d
      3eqtr3g biimpar elnlfn2 sylancr hi02 adantl eqtr4d ralrimiva oveq2 eqeq2d
      ralbidv rspcev wne choccli chne0i cheli cdiv ccj csm ffvelrni hicl anidms
      wi his6 necon3bid divcld cjcld simpl hvmulcl syl2anc adantll sylan ancoms
      cmv his2sub simpr ax-his3 oveq12d eqtr2d hvsubcl lnfnsubi lnfnmuli mulcom
      sylan2 eqtrd mulcl syl2an subidd 3eqtrd wb elnlfn ax-mp wss chssii ocorth
      sylanbrc anassrs mulcld syl2anr subeq0ad mpbid adantlr jca divmul3 mpbird
      adantlll div23 simpll his52 eqtr3d ex mpdan rexlimiv sylbi pm2.61ine ) BU
      BZCFZYJAUBZGHZIZBJUCZAJUDZCUEFZUFFZKYRKIZLJMYKYJLGHZIZBJUCZYPUGYSUUABJYSY
      JJMZNZYKOYTUUDJPCUHZYJYQMZYKOICDUIZYSUUFUUCYSYQJYJYSYRUFFKUFFYQJYRKUFUJYQ
      CDEUKZULUMUOUNUPYJCUQURUUCYTOIYSYJUSUTVAVBYOUUBALJYLLIZYNUUABJUUIYMYTYKYL
      LYJGVCVDVEVFURYRKVGUAUBZLVGZUAYRUDYPUAYRYQUUHVHZVIUUKYPUAYRUUJYRMZUUJJMZU
      UKYPVQUUJYRUULVJUUMUUNNZUUKYPUUOUUKNZUUJCFZUUJUUJGHZVKHZVLFZUUJVMHZJMZYKY
      JUVAGHZIZBJUCZYPUUNUUKUVBUUMUUNUUKNZUUTPMUUNUVBUVFUUSUVFUUQUURUUNUUQPMZUU
      KJPUUJCUUGVNZQZUUNUURPMZUUKUUNUVJUUJUUJVOVPZQZUUNUUROVGZUUKUUNUUROUUJLUUJ
      VRVSUPZVTZWAUUNUUKWBUUTUUJWCWDWEUUPUVDBJUUPUUCNZUUQYJUUJGHZRHZUURVKHZYKUV
      CUVPUVSYKIZUVRYKUURRHZIZUUOUUCUWBUUKUUOUUCNZUVRUWASHZOIZUWBUWCUWDUUQYJVMH
      ZYKUUJVMHZWHHZUUJGHZOUUNUUCUWDUWIIUUMUUNUUCNZUWIUWFUUJGHZUWGUUJGHZSHZUWDU
      WJUWFJMZUWGJMZUUNUWIUWMIUUNUVGUUCUWNUVHUUQYJWCWFZUUCUUNUWOUUCYKPMZUUNUWOJ
      PYJCUUGVNZYKUUJWCWFWGZUUNUUCWBZUWFUWGUUJWITUWJUWKUVRUWLUWASUWJUVGUUCUUNUW
      KUVRIUUNUVGUUCUVHQZUUNUUCWJUWTUUQYJUUJWKTUWJUWQUUNUUNUWLUWAIUUCUWQUUNUWRU
      TUWTUWTYKUUJUUJWKTWLWMWEUUMUUNUUCUWIOIZUWJUUMUXBUWJUWHYQMZUUMUXBUWJUWHJMZ
      UWHCFZOIZUXCUWJUWNUWOUXDUWPUWSUWFUWGWNWDUWJUXEUWFCFZUWGCFZSHZUUQYKRHZUXJS
      HOUWJUWNUWOUXEUXIIUWPUWSUWFUWGCDWOWDUWJUXGUXJUXHUXJSUUNUVGUUCUXGUXJIUVHUU
      QYJCDWPWFUUCUUNUXHUXJIZUUCUWQUUNUXKUWRUWQUUNNUXHYKUUQRHZUXJYKUUJCDWPUUNUW
      QUVGUXLUXJIUVHYKUUQWQWRWSWFWGWLUWJUXJUUNUVGUWQUXJPMUUCUVHUWRUUQYKWTXAXBXC
      UUEUXCUXDUXFNXDUUGUWHCXEXFXJYQJXGUXCUUMNUXBVQYQUUHXHUWHUUJYQXIXFWFWGXKWSU
      UNUUCUWEUWBXDUUMUWJUVRUWAUWJUUQUVQUXAUUCUUNUVQPMZYJUUJVOWGZXLZUUCUWQUVJUW
      APMUUNUWRUVKYKUURWTXMXNWEXOXPUUNUUKUUCUVTUWBXDZUUMUVFUUCNZUVRPMZUWQUVJUVM
      NZUXPUUNUUCUXRUUKUXOXPUUCUWQUVFUWRUTUVFUXSUUCUVFUVJUVMUVLUVNXQQZUVRYKUURX
      RTXTXSUUNUUKUUCUVSUVCIUUMUXQUVSUUSUVQRHZUVCUXQUVGUXMUXSUVSUYAIUVFUVGUUCUV
      IQUUNUUCUXMUUKUXNXPUXTUUQUVQUURYATUXQUUSPMZUUCUUNUVCUYAIUVFUYBUUCUVOQUVFU
      UCWJUUNUUKUUCYBUUSYJUUJYCTVAXTYDVBYOUVEAUVAJYLUVAIZYNUVDBJUYCYMUVCYKYLUVA
      YJGVCVDVEVFWDYEYFYGYHYI $.

    $( A continuous linear functional can be expressed as an inner product.
       Uniqueness part of Theorem 3.9 of [Beran] p. 104.  (Contributed by NM,
       13-Feb-2006.)  (New usage is discouraged.) $)
    riesz4i $p |- E! w e. ~H A. v e. ~H ( T ` v ) = ( v .ih w ) $=
      ( vu cv cfv csp co wceq chil wral wa wi cmin cc0 wcel cc syl wreu riesz3i
      r19.26 oveq12 adantl lnfnfi ffvelrni subidd adantr eqtr3d ralimiaa sylbir
      wrex cmv hvsubcl oveq1 oveq12d eqeq1d rspcv cno c2 c0v normcl recnd sqeq0
      cexp wb norm-i bitrd normsq simpl simpr his2sub2 syl3anc hvsubeq0 3bitr3d
      eqtrd sylibd syl5 rgen2a oveq2 eqeq2d ralbidv reu4 mpbir2an ) BGZCHZWFAGZ
      IJZKZBLMZALUAWKALUMWKWGWFFGZIJZKZBLMZNZWHWLKZOZFLMALMABCDEUBWRAFLWPWIWMPJ
      ZQKZBLMZWHLRZWLLRZNZWQWPWJWNNZBLMXAWJWNBLUCXEWTBLWFLRZXENWGWGPJZWSQXEXGWS
      KXFWGWIWGWMPUDUEXFXGQKXEXFWGLSWFCCDUFUGUHUIUJUKULXDXAWHWLUNJZWHIJZXHWLIJZ
      PJZQKZWQXDXHLRZXAXLOWHWLUOZWTXLBXHLWFXHKZWSXKQXOWIXIWMXJPWFXHWHIUPWFXHWLI
      UPUQURUSTXDXHUTHZVAVFJZQKZXHVBKZXLWQXDXMXRXSVGXNXMXRXPQKZXSXMXPSRXRXTVGXM
      XPXHVCVDXPVETXHVHVITXDXQXKQXDXQXHXHIJZXKXDXMXQYAKXNXHVJTXDXMXBXCYAXKKXNXB
      XCVKXBXCVLXHWHWLVMVNVQURWHWLVOVPVRVSVTWKWOAFLWQWJWNBLWQWIWMWGWHWLWFIWAWBW
      CWDWE $.
  $}

  ${
    $d w v T $.
    $( A continuous linear functional can be expressed as an inner product.
       Uniqueness part of Theorem 3.9 of [Beran] p. 104.  See ~ riesz2 for the
       bounded linear functional version.  (Contributed by NM, 16-Feb-2006.)
       (New usage is discouraged.) $)
    riesz4 $p |- ( T e. ( LinFn i^i ContFn ) ->
                   E! w e. ~H A. v e. ~H ( T ` v ) = ( v .ih w ) ) $=
      ( clf ccnfn cin wcel cv cfv csp co wceq chil wral wreu cc0 csn cxp sselii
      cif fveq1 eqeq1d ralbidv reubidv inss1 0lnfn elin mpbir2an elimel riesz4i
      0cnfn inss2 dedth ) CDEFZGZBHZCIZUPAHJKZLZBMNZAMOUPUOCMPQRZTZIZURLZBMNZAM
      OCVACVBLZUTVEAMVFUSVDBMVFUQVCURUPCVBUAUBUCUDABVBUNDVBDEUECVAUNVAUNGVADGVA
      EGUFUKVADEUGUHUIZSUNEVBDEULVGSUJUM $.
  $}

  ${
    $d x y z T $.
    $( Part 1 of the Riesz representation theorem for bounded linear
       functionals.  A linear functional is bounded iff its value can be
       expressed as an inner product.  Part of Theorem 17.3 of [Halmos] p. 31.
       For part 2, see ~ riesz2 .  For the continuous linear functional
       version, see ~ riesz3i and ~ riesz4 .  (Contributed by NM, 25-Apr-2006.)
       (New usage is discouraged.) $)
    riesz1 $p |- ( T e. LinFn -> ( ( normfn ` T ) e. RR <->
                  E. y e. ~H A. x e. ~H ( T ` x ) = ( x .ih y ) ) ) $=
      ( vz clf wcel ccnfn cfv cr cv co wceq chil wral wrex wa cabs cmul cle wbr
      cnmf csp lnfncnbd cin cc0 csn cxp cif fveq1 eqeq1d rexralbidv inss1 0lnfn
      0cnfn mpbir2an elimel sselii inss2 riesz3i dedth sylbir cno normcl adantl
      elin ex wi fveq2 bcs cc recn mulcom syl2an breqtrd adantll adantr eqbrtrd
      an32s oveq1 breq2d ralbidv rspcev syl6an rexlimdva lnfncon sylibrd impbid
      ralimdva bitr3d ) CEFZCGFZCUAHIFAJZCHZWLBJZUBKZLZAMNZBMOZCUCWJWKWRWJWKWRW
      JWKPCEGUDZFZWRCEGVEWTWRWLWTCMUEUFUGZUHZHZWOLZAMNBMOCXACXBLZWPXDBAMMXEWMXC
      WOWLCXBUIUJUKBAXBWSEXBEGULCXAWSXAWSFXAEFXAGFUMUNXAEGVEUOUPZUQWSGXBEGURXFU
      QUSUTVAVFWJWRWMQHZDJZWLVBHZRKZSTZAMNZDIOZWKWJWQXMBMWJWNMFZPZWNVBHZIFZWQXG
      XPXIRKZSTZAMNZXMXNXQWJWNVCZVDXOWPXSAMWJWLMFZXNWPXSVGWJYBPXNPZWPXSYCWPPXGW
      OQHZXRSWPXGYDLYCWMWOQVHVDYCYDXRSTZWPYBXNYEWJYBXNPYDXIXPRKZXRSWLWNVIYBXIIF
      ZXQYFXRLZXNWLVCYAYGXIVJFXPVJFYHXQXIVKXPVKXIXPVLVMVMVNVOVPVQVFVRWHXLXTDXPI
      XHXPLZXKXSAMYIXJXRXGSXHXPXIRVSVTWAWBWCWDDACWEWFWGWI $.

    $( Part 2 of the Riesz representation theorem for bounded linear
       functionals.  The value of a bounded linear functional corresponds to a
       unique inner product.  Part of Theorem 17.3 of [Halmos] p. 31.  For part
       1, see ~ riesz1 .  (Contributed by NM, 25-Apr-2006.)
       (New usage is discouraged.) $)
    riesz2 $p |- ( ( T e. LinFn /\ ( normfn ` T ) e. RR ) ->
                   E! y e. ~H A. x e. ~H ( T ` x ) = ( x .ih y ) ) $=
      ( clf wcel cnmf cfv cr wa ccnfn cin csp wceq chil wral wreu elin lnfncnbd
      cv co pm5.32i bitri riesz4 sylbir ) CDEZCFGHEZIZCDJKEZASZCGUIBSLTMANOBNPU
      HUECJEZIUGCDJQUEUJUFCRUAUBBACUCUD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Adjoints (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d f g v w y z A $.  $d z B $.  $d f t w x z F $.  $d f g t v w x y z T $.
    $d f C $.  $d f v w x z G $.
    cnlnadjlem.1 $e |- T e. LinOp $.
    cnlnadjlem.2 $e |- T e. ContOp $.
    cnlnadjlem.3 $e |- G = ( g e. ~H |-> ( ( T ` g ) .ih y ) ) $.
    $( Lemma for ~ cnlnadji (Theorem 3.10 of [Beran] p. 104: every continuous
       linear operator has an adjoint).  The value of the auxiliary functional
       ` G ` .  (Contributed by NM, 16-Feb-2006.)
       (New usage is discouraged.) $)
    cnlnadjlem1 $p |- ( A e. ~H -> ( G ` A ) = ( ( T ` A ) .ih y ) ) $=
      ( cv cfv csp co chil wceq fveq2 oveq1d ovex fvmpt ) DBDIZCJZAIZKLBCJZUAKL
      MESBNTUBUAKSBCOPHUBUAKQR $.

    $( Lemma for ~ cnlnadji . ` G ` is a continuous linear functional.
       (Contributed by NM, 16-Feb-2006.)  (New usage is discouraged.) $)
    cnlnadjlem2 $p |- ( y e. ~H -> ( G e. LinFn /\ G e. ContFn ) ) $=
      ( vx vz chil wcel cc co cfv cmul wceq csp wa cle cr vw cv clf ccnfn caddc
      csm cva wral lnopfi ffvelrni hicl sylan ancoms fmptd hvmulcl w3a lnopaddi
      wf 3adant3 oveq1d id ax-his2 syl3an eqtrd 3comr 3expa sylanl2 cnlnadjlem1
      hvaddcl syl adantll ax-his3 syl3an2 3expb lnopmuli adantl oveq2d ad2antll
      3eqtr4rd oveqan12d 3eqtr4d ralrimiva ralrimivva ellnfn sylanbrc cabs wrex
      cno wbr cnop nmcopexi normcl remulcl sylancr adantr eqeltrd abscld syl2an
      bcs eqbrtrd cc0 normge0 nmcoplbi lemul1a syl31anc letrd recnd recni mul32
      fveq2d jca mp3an1 breqtrd breq2d ralbidv rspcev syl2anc wb lnfncon mpbird
      oveq1 ) AUBZJKZDUCKZDUDKZYCJLDURHUBZUAUBZUFMZIUBZUGMZDNZYFYGDNZOMZYIDNZUE
      MZPZIJUHZUAJUHHLUHYDYCCJCUBZBNZYBQMZLDYRJKZYCYTLKZUUAYSJKYCUUBJJYRBBEUIZU
      JYSYBUKULUMGUNYCYQHUALJYCYFLKZYGJKZRZRZYPIJUUGYIJKZRYJBNZYBQMZYHBNZYBQMZY
      IBNZYBQMZUEMZYKYOUUFYCYHJKZUUHUUJUUOPZYFYGUOZYCUUPUUHUUQUUPUUHYCUUQUUPUUH
      YCUPZUUJUUKUUMUGMZYBQMZUUOUUSUUIUUTYBQUUPUUHUUIUUTPYCYHYIBEUQUSUTUUPUUKJK
      UUHUUMJKZYCYCUVAUUOPJJYHBUUCUJJJYIBUUCUJZYCVAUUKUUMYBVBVCVDVEVFVGUUFUUHYK
      UUJPZYCUUFUUHRYJJKZUVDUUFUUPUUHUVEUURYHYIVIULAYJBCDEFGVHVJVKUUGUUHYMUULYN
      UUNUEUUGYFYGBNZUFMZYBQMZYFUVFYBQMZOMZUULYMYCUUDUUEUVHUVJPZUUDUUEYCUVKUUEU
      UDUVFJKYCUVKJJYGBUUCUJYFUVFYBVLVMVEVNUUFUULUVHPYCUUFUUKUVGYBQYFYGBEVOUTVP
      UUEYMUVJPYCUUDUUEYLUVIYFOAYGBCDEFGVHVQVRVSAYIBCDEFGVHZVTWAWBWCHUAIDWDWEZY
      CYEYNWFNZYFYIWHNZOMZSWIZIJUHZHTWGZYCBWJNZYBWHNZOMZTKZUVNUWBUVOOMZSWIZIJUH
      ZUVSYCUVTTKZUWATKZUWCBEFWKZYBWLZUVTUWAWMWNYCUWEIJUUHYCUWEUUHYCRZUVNUVTUVO
      OMZUWAOMZUWDSUWKUVNUUMWHNZUWAOMZUWMUWKYNUWKYNUUNLUUHYNUUNPYCUVLWOZUUHUVBY
      CUUNLKUVCUUMYBUKULWPWQUUHUWNTKZUWHUWOTKYCUUHUVBUWQUVCUUMWLVJZUWJUWNUWAWMW
      RUUHUWLTKZUWHUWMTKYCUUHUWGUVOTKUWSUWIYIWLZUVTUVOWMWNZUWJUWLUWAWMWRUWKUVNU
      UNWFNZUWOSUWKYNUUNWFUWPXJUUHUVBYCUXBUWOSWIUVCUUMYBWSULWTUWKUWQUWSUWHXAUWA
      SWIZRZUWNUWLSWIZUWOUWMSWIUUHUWQYCUWRWOUUHUWSYCUXAWOYCUXDUUHYCUWHUXCUWJYBX
      BXKVPUUHUXEYCYIBEFXCWOUWNUWLUWAXDXEXFUUHUVOLKZUWALKZUWMUWDPZYCUUHUVOUWTXG
      YCUWAUWJXGUVTLKUXFUXGUXHUVTUWIXHUVTUVOUWAXIXLWRXMUMWBUVRUWFHUWBTYFUWBPZUV
      QUWEIJUXIUVPUWDUVNSYFUWBUVOOYAXNXOXPXQYCYDYEUVSXRUVMHIDXSVJXTXK $.

    ${
      cnlnadjlem.4 $e |- B = ( iota_ w e. ~H A. v e. ~H ( ( T ` v ) .ih y )
                         = ( v .ih w ) ) $.
      $( Lemma for ~ cnlnadji .  By ~ riesz4 , ` B ` is the unique vector such
         that ` ( T `` v ) .ih y ) = ( v .ih w ) ` for all ` v ` .
         (Contributed by NM, 17-Feb-2006.)  (New usage is discouraged.) $)
      cnlnadjlem3 $p |- ( y e. ~H -> B e. ~H ) $=
        ( cv chil wcel cfv csp co wceq clf ccnfn wral crio wreu cin cnlnadjlem2
        elin sylibr riesz4 syl cnlnadjlem1 eqeq1d ralbiia reubii sylib syl5eqel
        wa riotacl ) ALZMNZDCLZEOURPQZUTBLPQZRZCMUAZBMUBZMKUSVDBMUCZVEMNUSUTGOZ
        VBRZCMUAZBMUCZVFUSGSTUDNZVJUSGSNGTNUPVKAEFGHIJUEGSTUFUGBCGUHUIVIVDBMVHV
        CCMUTMNVGVAVBAUTEFGHIJUJUKULUMUNVDBMUQUIUO $.

      cnlnadjlem.5 $e |- F = ( y e. ~H |-> B ) $.
      $( Lemma for ~ cnlnadji .  The values of auxiliary function ` F ` are
         vectors.  (Contributed by NM, 17-Feb-2006.)  (Proof shortened by Mario
         Carneiro, 10-Sep-2015.)  (New usage is discouraged.) $)
      cnlnadjlem4 $p |- ( A e. ~H -> ( F ` A ) e. ~H ) $=
        ( chil cnlnadjlem3 fmpti ffvelrni ) OODHAOOEHNABCEFGIJKLMPQR $.

      $( Lemma for ~ cnlnadji . ` F ` is an adjoint of ` T ` (later, we will
         show it is unique).  (Contributed by NM, 18-Feb-2006.)
         (New usage is discouraged.) $)
      cnlnadjlem5 $p |- ( ( A e. ~H /\ C e. ~H ) -> ( ( T ` C ) .ih A ) =
                        ( C .ih ( F ` A ) ) ) $=
        ( vf chil wcel csp wceq cv cfv co wral nfcv cmpt nfmpt1 nffv nfov nfeq2
        nfcxfr nfral oveq2 oveq2d eqeq12d ralbidv crab cvv crio riotaex eqeltri
        fveq2 fvmpt2 mpan2 oveq1d oveq1 cbvralv a1i cnlnadjlem1 ralbiia syl6bbr
        wb eqeq1d riotabiia eqtri clf ccnfn cin wreu wa cnlnadjlem2 elin sylibr
        riesz4 riotacl2 3syl syl5eqel eqeltrd eqeq2d elrab simprbi syl vtoclgaf
        syl5bb rspccva sylan ) DQRPUAZGUBZDSUCZWQDIUBZSUCZTZPQUDZFQRFGUBZDSUCZF
        WTSUCZTZWRAUAZSUCZWQXHIUBZSUCZTZPQUDZXCADQADUEZXBAPQAQUEAWSXAAWQWTSAWQU
        EASUEADIAIAQEUFOAQEUGUKXNUHUIUJULXHDTZXLXBPQXOXIWSXKXAXHDWRSUMXOXJWTWQS
        XHDIVBUNUOUPXHQRZXJWQJUBZWQBUAZSUCZTZPQUDZBQUQZRZXMXPXJEYBXPEURRXJETECU
        AZGUBZXHSUCZYDXRSUCZTZCQUDZBQUSZURNYIBQUTVAAQEURIOVCVDXPEYABQUSZYBEYJYK
        NYIYABQXRQRZYIXIXSTZPQUDZYAYIYNVLYLYHYMCPQYDWQTZYFXIYGXSYOYEWRXHSYDWQGV
        BVEYDWQXRSVFUOVGVHXTYMPQWQQRXQXIXSAWQGHJKLMVIVMVJZVKVNVOXPJVPVQVRRZYABQ
        VSYKYBRXPJVPRJVQRVTYQAGHJKLMWAJVPVQWBWCBPJWDYABQWEWFWGWHYCXJQRXMYAXMBXJ
        QYAYNXRXJTZXMYPYRYMXLPQYRXSXKXIXRXJWQSUMWIUPWNWJWKWLWMXBXGPFQWQFTZWSXEX
        AXFYSWRXDDSWQFGVBVEWQFWTSVFUOWOWP $.

      $( Lemma for ~ cnlnadji . ` F ` is linear.  (Contributed by NM,
         17-Feb-2006.)  (New usage is discouraged.) $)
      cnlnadjlem6 $p |- F e. LinOp $=
        ( vx wcel chil co cfv wceq csp vf vz vt clo wf csm cva wral cnlnadjlem3
        cv cc fmpti wa caddc lnopfi ffvelrni adantl hvmulcl simplr his7 syl3anc
        ad2antrr hvaddcl sylan cnlnadjlem5 ccj cmul simpll cnlnadjlem4 ad2antlr
        simpr adantll oveq2d eqtr4d adantlr oveq12d sylan2 3eqtr3d ralrimiva wb
        his5 syl syl2an hial2eq2 syl2anc mpbid rgen2 ellnop mpbir2an ) GUDOPPGU
        ENUJZUAUJZUFQZUBUJZUGQZGRZWJWKGRZUFQZWMGRZUGQZSZUBPUHZUAPUHNUKUHAPPDGMA
        BCDEFHIJKLUIULXANUAUKPWJUKOZWKPOZUMZWTUBPXDWMPOZUMZUCUJZWOTQZXGWSTQZSZU
        CPUHZWTXFXJUCPXFXGPOZUMZXGERZWNTQZXNWLTQZXNWMTQZUNQZXHXIXMXNPOZWLPOZXEX
        OXRSXLXSXFPPXGEEIUOUPZUQXDXTXEXLWJWKURZVBXDXEXLUSXNWLWMUTVAXFWNPOZXLXOX
        HSXDXTXEYCYBWLWMVCVDZABCWNDXGEFGHIJKLMVEVDXMXRXGWQTQZXGWRTQZUNQZXIXMXPY
        EXQYFUNXDXLXPYESXEXDXLUMZXPWJVFRZXNWKTQZVGQZYEYHXBXSXCXPYKSXBXCXLVHZXLX
        SXDYAUQXBXCXLUSWJXNWKWAVAYHYEYIXGWPTQZVGQZYKYHXBXLWPPOZYEYNSYLXDXLVKXCY
        OXBXLABCWKDEFGHIJKLMVIZVJWJXGWPWAVAYHYJYMYIVGXCXLYJYMSXBABCWKDXGEFGHIJK
        LMVEVLVMVNVNVOXEXLXQYFSXDABCWMDXGEFGHIJKLMVEVLVPXMXLWQPOZWRPOZXIYGSXFXL
        VKXDYQXEXLXCXBYOYQYPWJWPURVQZVBXEYRXDXLABCWMDEFGHIJKLMVIZVJXGWQWRUTVAVN
        VRVSXFWOPOZWSPOZXKWTVTXFYCUUAYDABCWNDEFGHIJKLMVIWBXDYQYRUUBXEYSYTWQWRVC
        WCUCWOWSWDWEWFVSWGNUAUBGWHWI $.

      $( Lemma for ~ cnlnadji .  Helper lemma to show that ` F ` is continuous.
         (Contributed by NM, 18-Feb-2006.)  (New usage is discouraged.) $)
      cnlnadjlem7 $p |- ( A e. ~H -> ( normh ` ( F ` A ) ) <_
                        ( ( normop ` T ) x. ( normh ` A ) ) ) $=
        ( wcel cfv co cle wbr cc0 chil cno cnop cmul breq1 wne cabs cnlnadjlem4
        wa csp lnopfi ffvelrni syl hicl mpancom abscld normcl remulcld nmcopexi
        cc remulcl sylancr bcs normge0 nmcoplbi lemul1ad letrd wceq cnlnadjlem5
        cr mpdan fveq2d hiidrcl hiidge0 absidd cexp normsq sqvald eqtr3d 3eqtrd
        c2 recnd recni mul32 mp3an1 syl2anc 3brtr3d adantr clt 0re leltne sylan
        wb biimpar lemul1 syl112anc mpbird wf nmopge0 mulge0 mpanl12 pm2.61ne
        ax-mp ) DUAOZDHPZUBPZFUCPZDUBPZUDQZRSZTXIRSZXFTXFTXIRUEXDXFTUFZUIZXJXFX
        FUDQZXIXFUDQZRSZXDXPXLXDXEFPZDUJQZUGPZXGXFUDQZXHUDQZXNXORXDXSXQUBPZXHUD
        QZYAXDXRXQUAOZXDXRUTOXDXEUAOZYDABCDEFGHIJKLMNUHZUAUAXEFFJUKZULUMZXQDUNU
        OUPXDYBXHXDYDYBVJOYHXQUQUMZDUQZURXDXTXHXDXGVJOZXFVJOZXTVJOFJKUSZXDYEYLY
        FXEUQZUMZXGXFVAVBZYJURYDXDXSYCRSYHXQDVCUOXDYBXTXHYIYPYJDVDZXDYEYBXTRSYF
        XEFJKVEUMVFVGXDXSXEXEUJQZUGPYRXNXDXRYRUGXDYEXRYRVHYFABCDEXEFGHIJKLMNVIV
        KVLXDYRXDYEYRVJOYFXEVMUMXDYETYRRSYFXEVNUMVOXDXFWAVPQZYRXNXDYEYSYRVHYFXE
        VQUMXDXFXDXFYOWBZVRVSVTXDXFUTOZXHUTOZYAXOVHZYTXDXHYJWBXGUTOUUAUUBUUCXGY
        MWCXGXFXHWDWEWFWGWHXMYLXIVJOZYLTXFWISZXJXPWMXDYLXLYOWHZXDUUDXLXDYKXHVJO
        ZUUDYMYJXGXHVAVBWHUUFXDYEXLUUEYFYEUUEXLYEYLTXFRSZUUEXLWMZYNXEVDTVJOYLUU
        HUUIWJTXFWKWEWFWNWLXFXIXFWOWPWQXDUUGTXHRSZXKYJYQYKTXGRSZUUGUUJUIXKYMUAU
        AFWRUUKYGFWSXCXGXHWTXAWFXB $.

      $( Lemma for ~ cnlnadji . ` F ` is continuous.  (Contributed by NM,
         17-Feb-2006.)  (New usage is discouraged.) $)
      cnlnadjlem8 $p |- F e. ContOp $=
        ( vz vx cfv cmul cle chil cr ccop wcel cv cno co wbr wral wrex nmcopexi
        cnop cnlnadjlem7 oveq1 breq2d ralbidv rspcev mp2an cnlnadjlem6 lnopconi
        rgen wceq mpbir ) GUAUBNUCZGPUDPZOUCZVBUDPZQUEZRUFZNSUGZOTUHZEUJPZTUBVC
        VJVEQUEZRUFZNSUGZVIEIJUIVLNSABCVBDEFGHIJKLMUKUSVHVMOVJTVDVJUTZVGVLNSVNV
        FVKVCRVDVJVEQULUMUNUOUPONGABCDEFGHIJKLMUQURVA $.

      $( Lemma for ~ cnlnadji . ` F ` provides an example showing the existence
         of a continuous linear adjoint.  (Contributed by NM, 18-Feb-2006.)
         (New usage is discouraged.) $)
      cnlnadjlem9 $p |- E. t e. ( LinOp i^i ContOp )
             A. x e. ~H A. z e. ~H ( ( T ` x ) .ih z ) = ( x .ih ( t ` z ) ) $=
        ( wcel csp chil wral clo ccop cin cfv wceq wrex cnlnadjlem6 cnlnadjlem8
        cv elin mpbir2an cnlnadjlem5 ancoms rgen2a fveq1 oveq2d eqeq2d 2ralbidv
        co rspcev mp2an ) JUAUBUCZQZAUIZHUDCUIZRUSZVDVEJUDZRUSZUEZCSTASTZVFVDVE
        FUIZUDZRUSZUEZCSTASTZFVBUFVCJUAQJUBQBDEGHIJKLMNOPUGBDEGHIJKLMNOPUHJUAUB
        UJUKVIACSVESQVDSQVIBDEVEGVDHIJKLMNOPULUMUNVOVJFJVBVKJUEZVNVIACSSVPVMVHV
        FVPVLVGVDRVEVKJUOUPUQURUTVA $.
    $}
  $}

  ${
    $d f g t v w x y z T $.
    cnlnadj.1 $e |- T e. LinOp $.
    cnlnadj.2 $e |- T e. ContOp $.
    $( Every continuous linear operator has an adjoint.  Theorem 3.10 of
       [Beran] p. 104.  (Contributed by NM, 18-Feb-2006.)
       (New usage is discouraged.) $)
    cnlnadji $p |- E. t e. ( LinOp i^i ContOp )
             A. x e. ~H A. y e. ~H ( ( T ` x ) .ih y ) = ( x .ih ( t ` y ) ) $=
      ( vz vw vv vf vg cv cfv csp co wceq chil wral cmpt eqid crio oveq2 eqeq2d
      ralbidv cbvriotav cnlnadjlem9 ) AGBHICILZDMGLZNOZUGJLZNOZPZIQRZJQUAZDKGQU
      NSZKQKLDMUHNOSZEFUPTUMUIUGHLZNOZPZIQRJHQUJUQPZULUSIQUTUKURUIUJUQUGNUBUCUD
      UEUOTUF $.

    $( Every continuous linear operator has a unique adjoint.  Theorem 3.10 of
       [Beran] p. 104.  (Contributed by NM, 18-Feb-2006.)
       (New usage is discouraged.) $)
    cnlnadjeui $p |- E! t e. ( LinOp i^i ContOp )
             A. x e. ~H A. y e. ~H ( ( T ` x ) .ih y ) = ( x .ih ( t ` y ) ) $=
      ( cv cfv csp co wceq chil wral clo ccop cin wf wa wmo wcel wreu wrex wrmo
      cnlnadji adjmo inss1 sseli lnopf syl simpl eqcom 2ralbii wb lnopfi adjsym
      mpan2 syl5bb biimpa jca sylan moimi df-rmo sylibr ax-mp reu5 mpbir2an ) A
      GZDHBGZIJZVGVHCGZHIJZKZBLMALMZCNOPZUAVMCVNUBVMCVNUCZABCDEFUDLLVJQZVGVHDHI
      JVGVJHVHIJKBLMALMZRZCSZVOABCDUEVSVJVNTZVMRZCSVOWAVRCVTVPVMVRVTVJNTVPVNNVJ
      NOUFUGVJUHUIVPVMRVPVQVPVMUJVPVMVQVMVKVIKZBLMALMZVPVQVLWBABLLVIVKUKULVPLLD
      QWCVQUMDEUNABVJDUOUPUQURUSUTVAVMCVNVBVCVDVMCVNVEVF $.
  $}

  ${
    $d t x y T $.
    $( Every continuous linear operator has a unique adjoint.  Theorem 3.10 of
       [Beran] p. 104.  (Contributed by NM, 19-Feb-2006.)
       (New usage is discouraged.) $)
    cnlnadjeu $p |- ( T e. ( LinOp i^i ContOp ) -> E! t e. ( LinOp i^i ContOp )
           A. x e. ~H A. y e. ~H ( ( T ` x ) .ih y ) = ( x .ih ( t ` y ) ) ) $=
      ( clo ccop cin wcel cv cfv csp wceq chil wral wreu ch0o cif fveq1 sselii
      co oveq1d eqeq1d 2ralbidv reubidv inss1 0lnop 0cnop mpbir2an elimel inss2
      elin cnlnadjeui dedth ) DEFGZHZAIZDJZBIZKTZUPURCIJKTZLZBMNAMNZCUNOUPUODPQ
      ZJZURKTZUTLZBMNAMNZCUNODPDVCLZVBVGCUNVHVAVFABMMVHUSVEUTVHUQVDURKUPDVCRUAU
      BUCUDABCVCUNEVCEFUEDPUNPUNHPEHPFHUFUGPEFUKUHUIZSUNFVCEFUJVISULUM $.

    $( Every continuous linear operator has an adjoint.  Theorem 3.10 of
       [Beran] p. 104.  (Contributed by NM, 18-Feb-2006.)
       (New usage is discouraged.) $)
    cnlnadj $p |- ( T e. ( LinOp i^i ContOp ) -> E. t e. ( LinOp i^i ContOp )
           A. x e. ~H A. y e. ~H ( ( T ` x ) .ih y ) = ( x .ih ( t ` y ) ) ) $=
      ( clo ccop cin wcel cfv csp wceq chil wral wreu wrex cnlnadjeu reurex syl
      cv co ) DEFGZHASZDIBSZJTUBUCCSIJTKBLMALMZCUANUDCUAOABCDPUDCUAQR $.
  $}

  ${
    $d t u v x y z $.
    $( Every continuous linear Hilbert space operator has an adjoint.
       (Contributed by NM, 18-Feb-2006.)  (New usage is discouraged.) $)
    cnlnssadj $p |- ( LinOp i^i ContOp ) C_ dom adjh $=
      ( vy vt vx vz vu vv clo ccop cado cv wcel wex cfv csp co wceq chil wf w3a
      wral cin cdm cop wa cnlnadj df-rex sylib inss1 sseli lnopf syl a1d wi a1i
      adantrd eqcom biimpi 2ralimi wb adjsym syl2anr syl5ib expimpd 3jcad copab
      wrex dfadj2 eleq2i vex feq1 oveq2d eqeq1d 2ralbidv 3anbi13d oveq1d eqeq2d
      fveq1 3anbi23d opelopab bitr2i syl6ib eximdv mpd eldm2 sylibr ssriv ) AGH
      UAZIUBZAJZWGKZWIBJZUCZIKZBLZWIWHKWJWKWGKZCJZWIMDJZNOZWPWQWKMNOZPZDQTCQTZU
      DZBLZWNWJXABWGVFXCCDBWIUEXABWGUFUGWJXBWMBWJXBQQWIRZQQWKRZWPWQWIMZNOZWPWKM
      ZWQNOZPZDQTCQTZSZWMWJXBXDXEXKWJXDXBWJWIGKXDWGGWIGHUHZUIWIUJUKZULWJWOXEXAW
      OXEUMWJWOWKGKXEWGGWKXMUIWKUJUKZUNUOWJWOXAXKXAWSWRPZDQTCQTZWJWOUDXKWTXPCDQ
      QWTXPWRWSUPUQURWOXEXDXQXKUSWJXOXNCDWKWIUTVAVBVCVDWMWLQQEJZRZQQFJZRZWPWQXR
      MZNOZWPXTMZWQNOZPZDQTCQTZSZEFVEZKXLIYIWLCDFEVGVHYHXDYAXGYEPZDQTCQTZSXLEFW
      IWKAVIZBVIXRWIPZXSXDYGYKYAQQXRWIVJYMYFYJCDQQYMYCXGYEYMYBXFWPNWQXRWIVQVKVL
      VMVNXTWKPZYAXEYKXKXDQQXTWKVJYNYJXJCDQQYNYEXIXGYNYDXHWQNWPXTWKVQVOVPVMVRVS
      VTWAWBWCBWIIYLWDWEWF $.
  $}

  $( Every bounded linear Hilbert space operator has an adjoint.  (Contributed
     by NM, 19-Feb-2006.)  (New usage is discouraged.) $)
  bdopssadj $p |- BndLinOp C_ dom adjh $=
    ( cbo clo ccop cin cado cdm lncnbd cnlnssadj eqsstr3i ) ABCDEFGHI $.

  $( Every bounded linear Hilbert space operator has an adjoint.  (Contributed
     by NM, 22-Feb-2006.)  (New usage is discouraged.) $)
  bdopadj $p |- ( T e. BndLinOp -> T e. dom adjh ) $=
    ( cbo cado cdm bdopssadj sseli ) BCDAEF $.

  ${
    $d t w x y z T $.
    $( The adjoint of a bounded linear operator is a bounded linear operator.
       (Contributed by NM, 19-Feb-2006.)  (New usage is discouraged.) $)
    adjbdln $p |- ( T e. BndLinOp -> ( adjh ` T ) e. BndLinOp ) $=
      ( vx vy vt cbo wcel cado cfv cv csp co wceq chil wral crio syl wrex wa wf
      wreu cmap cdm bdopadj adjval clo ccop cin cnlnadj lncnopbd lncnbd 3imtr3i
      rexeqi wb bdopf adjsym syl2an eqcom 2ralbii syl6bbr rexbidva mpbird adjeu
      mpbid wss wi ax-hilex elmap sylibr ssriv id rgenw riotass2 mpanl12 eqtr4d
      syl2anc a1i reuss syl3anc riotacl eqeltrd ) AEFZAGHZBIZCIZAHJKWCDIZHWDJKL
      CMNBMNZDEOZEWAWBWFDMMUAKZOZWGWAAGUBFZWBWILAUCZBCDAUDPWAWFDEQZWFDWHTZWGWIL
      ZWAWLWCAHWDJKZWCWDWEHJKZLZCMNBMNZDEQZAUEUFUGZFWRDWTQWAWSBCDAUHAUIWRDWTEUJ
      ULUKWAWFWRDEWAWEEFZRWFWPWOLZCMNBMNZWRWAMMASZMMWESZWFXCUMXAAUNZWEUNZBCAWEU
      OUPWQXBBCMMWOWPUQURUSUTVAZWAWJWMWKWAXDWJWMUMXFBCDAVBPVCZEWHVDZWFWFVEZDENW
      LWMRWNDEWHXAXEWEWHFXGMMWEVFVFVGVHVIZXKDEWFVJVKWFWFDEWHVLVMVOVNWAWFDETZWGE
      FWAXJWLWMXMXJWAXLVPXHXIWFDEWHVQVRWFDEVSPVT $.

    $( An operator is bounded and linear iff its adjoint is.  (Contributed by
       NM, 19-Feb-2006.)  (New usage is discouraged.) $)
    adjbdlnb $p |- ( T e. BndLinOp <-> ( adjh ` T ) e. BndLinOp ) $=
      ( cbo wcel cado cfv adjbdln bdopadj dmadjrnb sylibr wa ccnv cnvadj fveq1i
      cdm wf1o wceq adj1o simpl f1ocnvfv1 sylancr syl5eqr adantl mpancom impbii
      eqeltrrd ) ABCZADEZBCZAFADNZCZUHUFUHUGUICUJUGGAHIUJUHJZUGDEZABUKULUGDKZEZ
      AUGUMDLMUKUIUIDOUJUNAPQUJUHRUIUIADSTUAUHULBCUJUGFUBUEUCUD $.

    $( The mapping of adjoints of bounded linear operators is one-to-one onto.
       (Contributed by NM, 19-Feb-2006.)  (New usage is discouraged.) $)
    adjbd1o $p |- ( adjh |` BndLinOp ) : BndLinOp -1-1-onto-> BndLinOp $=
      ( vy vx cbo cado cima cres wf1o cdm wf1 adj1o f1of1 ax-mp wceq wb cv wcel
      wss wrex cfv bdopadj bdopssadj f1ores mp2an wbr vex elima fnbrfvb sylancr
      f1ofn rexbiia adjbdlnb eleq1 syl5bb biimpcd rexlimiv adjbdln adjadj fveq2
      wfn syl eqeq1d rspcev syl2anc impbii 3bitr2i eqriv f1oeq3 mpbi ) CDCEZDCF
      ZGZCCVJGZDHZVMDIZCVMQVKVMVMDGZVNJVMVMDKLUAVMVMCDUBUCVICMVKVLNAVICAOZVIPBO
      ZVPDUDZBCRVQDSZVPMZBCRZVPCPZBVPDCAUEUFVTVRBCVQCPZDVMUSZVQVMPVTVRNVOWDJVMV
      MDUILVQTVMVQVPDUGUHUJWAWBVTWBBCVTWCWBWCVSCPVTWBVQUKVSVPCULUMUNUOWBVPDSZCP
      WEDSZVPMZWAVPUPWBVPVMPWGVPTVPUQUTVTWGBWECVQWEMVSWFVPVQWEDURVAVBVCVDVEVFVI
      CCVJVGLVH $.

    $( The adjoint of an operator is linear.  Proposition 1 of
       [AkhiezerGlazman] p. 80.  (Contributed by NM, 17-Jun-2006.)
       (New usage is discouraged.) $)
    adjlnop $p |- ( T e. dom adjh -> ( adjh ` T ) e. LinOp ) $=
      ( vx vy vz vw wcel chil cfv cv co wceq wral cc wa csp caddc adjcl 3adant2
      syl3anc cmul cado cdm wf csm cva clo dmadjrn dmadjop syl w3a simp2 sylan2
      hvmulcl an12s adantrr adantrl his7 adj2 3adant3l oveq2d ffvelrnda 3adant3
      simp3l simp3r his5 3eqtr4d 3adant3r oveq12d adantr 3ad2ant3 hvaddcl sylan
      syl3an3 eqtr3d 3eqtr2rd 3com23 3expa ralrimiva wb syl2an anandis hial2eq2
      ccj syl2anc mpbid exp32 ralrimdv ralrimivv ellnop sylanbrc ) AUAUBZFZGGAU
      AHZUCZBIZCIZUDJZDIZUEJZWMHZWOWPWMHZUDJZWRWMHZUEJZKZDGLZCGLBMLWMUFFWLWMWKF
      WNAUGWMUHUIWLXFBCMGWLWOMFZWPGFZNZXEDGWLXIWRGFZXEWLXIXJNZNZEIZWTOJZXMXDOJZ
      KZEGLZXEXLXPEGWLXKXMGFZXPWLXRXKXPWLXRXKUJZXOXMXBOJZXMXCOJZPJZXMAHZWQOJZYC
      WROJZPJZXNXSXRXBGFZXCGFZXOYBKWLXRXKUKWLXKYGXRWLXIYGXJXGWLXHYGWLXHNXGXAGFZ
      YGWPAQZWOXAUMULUNZUORWLXKYHXRWLXJYHXIWRAQZUPRXMXBXCUQSXSYDXTYEYAPWLXRXIYD
      XTKXJWLXRXIUJZWOWCHZYCWPOJZTJZYNXMXAOJZTJZYDXTYMYOYQYNTWLXRXHYOYQKXGXMWPA
      URUSUTYMXGYCGFZXHYDYPKWLXRXGXHVCZWLXRYSXIWLGGXMAAUHVAZVBWLXRXGXHVDWOYCWPV
      ESYMXGXRYIXTYRKYTWLXRXIUKWLXIYIXRWLXHYIXGYJUPRWOXMXAVESVFVGWLXRXJYEYAKXIX
      MWRAURUSVHXSYCWSOJZYFXNXSYSWQGFZXJUUBYFKWLXRYSXKUUAVBXKWLUUCXRXIUUCXJWOWP
      UMZVIVJWLXRXIXJVDYCWQWRUQSXKWLXRWSGFZUUBXNKXIUUCXJUUEUUDWQWRVKVLZXMWSAURV
      MVNVOVPVQVRXLWTGFZXDGFZXQXEVSXKWLUUEUUGUUFWSAQULWLXIXJUUHWLXINYGYHUUHWLXJ
      NYKYLXBXCVKVTWAEWTXDWBWDWEWFWGWHBCDWMWIWJ $.

    $( Every operator with an adjoint is linear.  (Contributed by NM,
       17-Jun-2006.)  (New usage is discouraged.) $)
    adjsslnop $p |- dom adjh C_ LinOp $=
      ( vt cado cdm clo cv wcel cfv adjadj dmadjrn adjlnop syl eqeltrrd ssriv )
      ABCZDAEZNFZOBGZBGZODOHPQNFRDFOIQJKLM $.
  $}

  ${
    $d f g v w z A $.  $d f g v w y z T $.
    nmopadjle.1 $e |- T e. BndLinOp $.
    $( Property of the norm of an adjoint.  Part of proof of Theorem 3.10 of
       [Beran] p. 104.  (Contributed by NM, 22-Feb-2006.)
       (New usage is discouraged.) $)
    nmopadjlei $p |- ( A e. ~H -> ( normh ` ( ( adjh ` T ) ` A ) ) <_
                        ( ( normop ` T ) x. ( normh ` A ) ) ) $=
      ( vz vv vf vw vg chil wcel cfv cno cv csp co wceq wral sselii clo ccop
      cado crio cmpt cnop cmul cle cdm bdopssadj adjvalval oveq2 eqeq1d ralbidv
      cbo mpan riotabidv eqid riotaex fvmpt eqtr4d fveq2d inss1 lncnbd eleqtrri
      cin inss2 eqeq2d cbvriotav cnlnadjlem7 eqbrtrd ) AIJZABUAKKZLKADIEMZBKZDM
      ZNOZVLFMZNOZPZEIQZFIUBZUCZKZLKBUDKALKUEOUFVJVKWBLVJVKVMANOZVQPZEIQZFIUBZW
      BBUAUGZJVJVKWFPUMWGBUHCREFABUIUNDAVTWFIWAVNAPZVSWEFIWHVRWDEIWHVOWCVQVNAVM
      NUJUKULUOWAUPZWEFIUQURUSUTDGEAVTBHWAHIHMBKVNNOUCZSTVDZSBSTVABUMWKCVBVCZRW
      KTBSTVEWLRWJUPVSVOVLGMZNOZPZEIQFGIVPWMPZVRWOEIWPVQWNVOVPWMVLNUJVFULVGWIVH
      VI $.

    $( Lemma for ~ nmopadji .  (Contributed by NM, 22-Feb-2006.)
       (New usage is discouraged.) $)
    nmopadjlem $p |- ( normop ` ( adjh ` T ) ) <_ ( normop ` T ) $=
      ( vy cfv cnop cle wbr cno c1 chil wf wcel bdopf mp2b wa cmul co cr adantr
      cbo cado cv wi wral wb adjbdln nmopxr nmopub mp2an ffvelrni normcl nmopre
      cxr syl ax-mp remulcl sylancr 1re remulcli a1i nmopadjlei nmopge0 lemul2a
      cc0 pm3.2i mp3anl3 mpanl2 sylan letrd recni mulid1i syl6breq ex mprgbir )
      AUADZEDAEDZFGZCUBZHDZIFGZVRVODZHDZVPFGZUCZCJJJVOKZVPUMLZVQWDCJUDUEATLZVOT
      LWEBAUFVOMNZWGJJAKZWFBAMZAUGNCVPVOUHUIVRJLZVTWCWKVTOZWBVPIPQZVPFWLWBVPVSP
      QZWMWKWBRLZVTWKWAJLWOJJVRVOWHUJWAUKUNSWKWNRLZVTWKVPRLZVSRLZWPWGWQBAULUOZV
      RUKZVPVSUPUQSWMRLWLVPIWSURUSUTWKWBWNFGVTVRABVASWKWRVTWNWMFGZWTWRIRLZVTXAU
      RWRXBWQVDVPFGZOVTXAWQXCWSWGWIXCBWJAVBNVEVSIVPVCVFVGVHVIVPVPWSVJVKVLVMVN
      $.

    $( Property of the norm of an adjoint.  Theorem 3.11(v) of [Beran] p. 106.
       (Contributed by NM, 22-Feb-2006.)  (New usage is discouraged.) $)
    nmopadji $p |- ( normop ` ( adjh ` T ) ) = ( normop ` T ) $=
      ( cado cfv cnop wceq cle wbr nmopadjlem cdm wcel cbo bdopadj ax-mp adjadj
      fveq2i adjbdln eqbrtrri cr nmopre letri3i mpbir2an ) ACDZEDZAEDZFUDUEGHUE
      UDGHABIUCCDZEDUEUDGUFAEACJKZUFAFALKZUGBAMNAONPUCUHUCLKZBAQNZIRUDUEUIUDSKU
      JUCTNUHUESKBATNUAUB $.
  $}

  $( An operator is zero iff its adjoint is zero.  Theorem 3.11(i) of [Beran]
     p. 106.  (Contributed by NM, 20-Feb-2006.)  (New usage is discouraged.) $)
  adjeq0 $p |- ( T = 0hop <-> ( adjh ` T ) = 0hop ) $=
    ( ch0o wceq cado cfv fveq2 adj0 syl6eq cdm cbo bdopssadj 0bdop sselii eleq1
    wcel mpbiri dmadjrnb sylibr adjadj syl a1i 3eqtr3d impbii ) ABCZADEZBCZUDUE
    BDEZBABDFGHUFUEDEZUGABUEBDFUFADIZOZUHACUFUEUIOZUJUFUKBUIOJUIBKLMUEBUINPAQRA
    STUGBCUFGUAUBUC $.

  ${
    $d x y A $.  $d x y T $.
    $( The adjoint of the scalar product of an operator.  Theorem 3.11(ii) of
       [Beran] p. 106.  (Contributed by NM, 21-Feb-2006.)
       (New usage is discouraged.) $)
    adjmul $p |- ( ( A e. CC /\ T e. dom adjh ) ->
                 ( adjh ` ( A .op T ) ) = ( ( * ` A ) .op ( adjh ` T ) ) ) $=
      ( vx vy cc wcel cado wa chil chot co wf cfv csp wceq wral dmadjop homulcl
      cv cmul cdm ccj sylan2 cjcl dmadjrn syl syl2an csm adj2 adantll oveq2d wi
      3expb ffvelrnda ax-his3 syl3an2 3exp expd imp43 simpll simprl adjcl his52
      ad2ant2l syl3anc 3eqtr4d homval 3expa adantrr oveq1d id syl3an ralrimivva
      adantrl adjeq ) AEFZBGUAZFZHZIIABJKZLZIIAUBMZBGMZJKZLZCSZVTMZDSZNKZWFWHWD
      MZNKZOZDIPCIPVTGMWDOVRVPIIBLZWABQZABRUCVPWBEFZIIWCLZWEVRAUDZVRWCVQFWPBUEW
      CQUFZWBWCRUGVSWLCDIIVSWFIFZWHIFZHZHZAWFBMZUHKZWHNKZWFWBWHWCMZUHKZNKZWIWKX
      BAXCWHNKZTKZAWFXFNKZTKZXEXHXBXIXKATVRXAXIXKOZVPVRWSWTXMWFWHBUIUMUJUKVPVRW
      SWTXEXJOZVPVRWSWTXNULVPVRWSHZWTXNXOVPXCIFWTXNVRIIWFBWNUNAXCWHUOUPUQURUSXB
      VPWSXFIFZXHXLOVPVRXAUTVSWSWTVAVRWTXPVPWSWHBVBVDAWFXFVCVEVFXBWGXDWHNVSWSWG
      XDOZWTVPVRWSXQVRVPWMWSXQWNAWFBVGUPVHVIVJXBWJXGWFNVSWTWJXGOZWSVPVRWTXRVPWO
      VRWPWTWTXRWQWRWTVKWBWHWCVGVLVHVNUKVFVMCDWDVTVOVE $.
  $}

  ${
    $d x y S $.  $d x y T $.
    $( The adjoint of the sum of two operators.  Theorem 3.11(iii) of [Beran]
       p. 106.  (Contributed by NM, 22-Feb-2006.)
       (New usage is discouraged.) $)
    adjadd $p |- ( ( S e. dom adjh /\ T e. dom adjh ) ->
                ( adjh ` ( S +op T ) ) = ( ( adjh ` S ) +op ( adjh ` T ) ) ) $=
      ( vx vy cado wcel wa chil chos co wf cfv cv csp wceq wral dmadjop hoaddcl
      caddc syl3anc cdm syl2an dmadjrn syl adj2 3expb adantlr adantll ffvelrnda
      oveq12d ad2ant2r ad2ant2lr simprr ax-his2 simprl adjcl ad2ant2rl ad2ant2l
      cva 3eqtr4rd anim12i hosval 3expa sylan adantrl oveq2d adantrr ralrimivva
      his7 oveq1d adjeq ) AEUAZFZBVLFZGZHHABIJZKZHHAELZBELZIJZKZCMZVPLZDMZNJZWB
      WDVTLZNJZOZDHPCHPVPELVTOVMHHAKZHHBKZVQVNAQZBQZABRUBVMHHVRKZHHVSKZWAVNVMVR
      VLFWMAUCVRQUDZVNVSVLFWNBUCVSQUDZVRVSRUBVOWHCDHHVOWBHFZWDHFZGZGZWBWDVRLZWD
      VSLZUSJZNJZWBALZWBBLZUSJZWDNJZWGWEWTXEWDNJZXFWDNJZSJZWBXANJZWBXBNJZSJZXHX
      DWTXIXLXJXMSVMWSXIXLOZVNVMWQWRXOWBWDAUEUFUGVNWSXJXMOZVMVNWQWRXPWBWDBUEUFU
      HUJWTXEHFZXFHFZWRXHXKOVMWQXQVNWRVMHHWBAWKUIUKVNWQXRVMWRVNHHWBBWLUIULVOWQW
      RUMXEXFWDUNTWTWQXAHFZXBHFZXDXNOVOWQWRUOVMWRXSVNWQWDAUPUQVNWRXTVMWQWDBUPUR
      WBXAXBVITUTWTWFXCWBNVOWRWFXCOZWQVOWMWNGWRYAVMWMVNWNWOWPVAWMWNWRYAWDVRVSVB
      VCVDVEVFWTWCXGWDNVOWQWCXGOZWRVOWIWJGWQYBVMWIVNWJWKWLVAWIWJWQYBWBABVBVCVDV
      GVJUTVHCDVTVPVKT $.
  $}

  ${
    $d x y S $.  $d x y T $.
    nmoptri.1 $e |- S e. BndLinOp $.
    nmoptri.2 $e |- T e. BndLinOp $.
    $( Triangle inequality for the norms of bounded linear operators.
       (Contributed by NM, 10-Mar-2006.)  (New usage is discouraged.) $)
    nmoptrii $p |- ( normop ` ( S +op T ) ) <_
                  ( ( normop ` S ) + ( normop ` T ) ) $=
      ( vx co cnop cfv cle wbr cno chil wf wcel ax-mp cr wa normcl syl adantr
      chos caddc cv c1 wi cxr wral wb cbo bdopf hoaddcli nmopre readdcli nmopub
      rexri hoscli ffvelrni readdcld a1i cva wceq hosval mp3an12 fveq2d norm-ii
      mp2an syl2anc eqbrtrd nmoplb mp3an1 le2add mpanr12 mp2and letrd mprgbir
      ex ) ABUAFZGHAGHZBGHZUBFZIJZEUCZKHUDIJZWBVQHZKHZVTIJZUEZELLLVQMVTUFNWAWGE
      LUGUHABAUINZLLAMZCAUJOZBUINZLLBMZDBUJOZUKVTVRVSWHVRPNZCAULOZWKVSPNZDBULOZ
      UMZUOEVTVQUNVFWBLNZWCWFWSWCQZWEWBAHZKHZWBBHZKHZUBFZVTWSWEPNZWCWSWDLNXFWBA
      BWJWMUPWDRSTWSXEPNWCWSXBXDWSXALNZXBPNZLLWBAWJUQZXARSZWSXCLNZXDPNZLLWBBWMU
      QZXCRSZURTVTPNWTWRUSWSWEXEIJWCWSWEXAXCUTFZKHZXEIWSWDXOKWIWLWSWDXOVAWJWMWB
      ABVBVCVDWSXGXKXPXEIJXIXMXAXCVEVGVHTWTXBVRIJZXDVSIJZXEVTIJZWIWSWCXQWJWBAVI
      VJWLWSWCXRWMWBBVIVJWSXQXRQXSUEZWCWSXHXLXTXJXNXHXLQWNWPXTWOWQXBXDVRVSVKVLV
      GTVMVNVPVO $.

    $( Upper bound for the norm of the composition of two bounded linear
       operators.  (Contributed by NM, 10-Mar-2006.)
       (New usage is discouraged.) $)
    nmopcoi $p |- ( normop ` ( S o. T ) ) <_
                   ( ( normop ` S ) x. ( normop ` T ) ) $=
      ( cfv cmul co cle wbr cno c1 chil wcel ax-mp cr cc0 wceq adantrr eqtr4d
      wa vx ccom cnop cv wi wf cxr wral wb cbo clo bdopln lnopcoi lnopfi nmopre
      remulcli rexri nmopub mp2an 0le0 a1i lnopco0i nmlnop0iHIL sylib fveq1 c0v
      ch0o fveq2d ho0val norm0 syl6eq sylan9eq sylan oveq2 recni mul01i 3brtr4d
      adantr wn wne df-ne cdiv csm cabs cc ffvelrni normcl recnd divrec2 mp3an2
      syl ancoms rerecclzi clt bdopf nmopgt0 recgt0i sylbi 0re ltle mpan absidd
      sylc oveq1d recclzi norm-iii syl2an lnopmuli oveq2d adantl hvmulcl nmoplb
      hocoi mp3an1 mulid2i syl6breqr biimpi ledivmul2 syl112anc eqbrtrd syl2anc
      1red mpbird ad2antrl jctil syl3anc mpbid sylanbr pm2.61ian ex mprgbir ) A
      BUBZUCEZAUCEZBUCEZFGZHIZUAUDZJEKHIZYRYLEZJEZYPHIZUEZUALLLYLUFYPUGMYQUUCUA
      LUHUIYLABAUJMZAUKMCAULNZBUJMZBUKMDBULNZUMZUNZYPYNYOUUDYNOMZCAUONZUUFYOOMZ
      DBUONZUPUQUAYPYLURUSYRLMZYSUUBYOPQZUUNYSTZUUBUUOUUNUUBYSUUOUUNTZPPUUAYPHP
      PHIUUQUTVAUUOYLVGQZUUNUUAPQUUOYMPQUURABUUEUUGVBYLUUHVCVDUURUUNUUAYRVGEZJE
      ZPUURYTUUSJYRYLVGVEVHUUNUUTVFJEPUUNUUSVFJYRVIVHVJVKVLVMUUOYPPQUUNUUOYPYNP
      FGPYOPYNFVNYNYNUUKVOVPVKVRVQRUUOVSYOPVTZUUPUUBYOPWAUVAUUPTZUUAYOWBGZYNHIZ
      UUBUVBUVCKYOWBGZYRBEZWCGZAEZJEZYNHUVAUUNUVCUVIQYSUVAUUNTZUVCUVEYTWCGZJEZU
      VIUVJUVCUVEWDEZUUAFGZUVLUVJUVCUVEUUAFGZUVNUUNUVAUVCUVOQZUUNUUAWEMZUVAUVPU
      UNUUAUUNYTLMZUUAOMZLLYRYLUUIWFZYTWGWKZWHUVQYOWEMZUVAUVPYOUUMVOZUUAYOWIWJV
      MWLUVJUVMUVEUUAFUVAUVMUVEQUUNUVAUVEYOUUMWMZUVAUVEOMZPUVEWNIZPUVEHIZUWDUVA
      PYOWNIZUWFLLBUFZUVAUWHUIUUFUWIDBWONZBWPNZYOUUMWQWRPOMUWEUWFUWGUEWSPUVEWTX
      AXCXBVRZXDSUVAUVEWEMZUVRUVLUVNQUUNYOUWCXEZUVTUVEYTXFXGSUVJUVHUVKJUVJUVHUV
      EUVFAEZWCGZUVKUVAUWMUVFLMZUVHUWPQUUNUWNLLYRBUWJWFZUVEUVFAUUEXHXGUUNUVKUWP
      QUVAUUNYTUWOUVEWCYRABUUDLLAUFZCAWONZUWJXMXIXJSVHSRUVBUVGLMZUVGJEZKHIZUVIY
      NHIZUVAUUNUXAYSUVAUWMUWQUXAUUNUWNUWRUVEUVFXKXGRUVBUXBUVFJEZYOWBGZKHUVAUUN
      UXBUXFQYSUVJUXBUVMUXEFGZUXFUVAUWMUWQUXBUXGQUUNUWNUWRUVEUVFXFXGUVJUXFUVEUX
      EFGZUXGUUNUVAUXFUXHQZUUNUXEWEMZUVAUXIUUNUXEUUNUWQUXEOMZUWRUVFWGWKZWHUXJUW
      BUVAUXIUWCUXEYOWIWJVMWLUVJUVMUVEUXEFUWLXDSSRUVBUXFKHIZUXEKYOFGZHIZUUPUXOU
      VAUUPUXEYOUXNHUWIUUNYSUXEYOHIUWJYRBXLXNYOUWCXOXPXJUVAUUNUXMUXOUIZYSUUNUVA
      UXPUUNUVATZUXKKOMUULUWHUXPUUNUXKUVAUXLVRUXQYBUULUXQUUMVAUVAUWHUUNUVAUWHUW
      KXQZXJUXEKYOXRXSWLRYCXTUWSUXAUXCUXDUWTUVGAXLXNYAXTUVBUVSUUJUULUWHTUVDUUBU
      IUUNUVSUVAYSUWAYDUUJUVBUUKVAUVBUWHUULUVAUWHUUPUXRVRUUMYEUUAYNYOXRYFYGYHYI
      YJYK $.

    $( The sum of two bounded linear operators is a bounded linear operator.
       (Contributed by NM, 9-Mar-2006.)  (New usage is discouraged.) $)
    bdophsi $p |- ( S +op T ) e. BndLinOp $=
      ( chos co cbo wcel clo cnop cfv cr bdopln ax-mp lnophsi wbr chil wf bdopf
      nmopre cxr caddc cmnf clt cle hoaddcli nmopxr readdcli nmopgtmnf nmoptrii
      xrre mp4an elbdop2 mpbir2an ) ABEFZGHUOIHUOJKZLHZABAGHZAIHCAMNBGHZBIHDBMN
      OUPUAHZAJKZBJKZUBFZLHUCUPUDPZUPVCUEPUQQQUORZUTABURQQARCASNUSQQBRDBSNUFZUO
      UGNVAVBURVALHCATNUSVBLHDBTNUHVEVDVFUOUINABCDUJUPVCUKULUOUMUN $.

    $( The difference between two bounded linear operators is bounded.
       (Contributed by NM, 10-Mar-2006.)  (New usage is discouraged.) $)
    bdophdi $p |- ( S -op T ) e. BndLinOp $=
      ( c1 cneg chot co chos chod cbo wcel chil wf bdopf ax-mp honegsubi neg1cn
      cc bdophmi bdophsi eqeltrri ) AEFZBGHZIHABJHKABAKLMMANCAOPBKLMMBNDBOPQAUD
      CUCSLUDKLRUCBDTPUAUB $.

    $( The composition of two bounded linear operators is bounded.
       (Contributed by NM, 9-Mar-2006.)  (New usage is discouraged.) $)
    bdopcoi $p |- ( S o. T ) e. BndLinOp $=
      ( ccom cbo wcel clo cnop cfv cr bdopln ax-mp lnopcoi cxr cmul chil lnopfi
      wbr nmopre co cmnf clt cle hocofi nmopxr remulcli nmopgtmnf nmopcoi mp4an
      wf xrre elbdop2 mpbir2an ) ABEZFGUOHGUOIJZKGZABAFGZAHGCALMZBFGZBHGDBLMZNU
      POGZAIJZBIJZPUAZKGUBUPUCSZUPVEUDSUQQQUOUKZVBABAUSRBVARUEZUOUFMVCVDURVCKGC
      ATMUTVDKGDBTMUGVGVFVHUOUHMABCDUIUPVEULUJUOUMUN $.

    $( Triangle-type inequality for the norms of bounded linear operators.
       (Contributed by NM, 10-Mar-2006.)  (New usage is discouraged.) $)
    nmoptri2i $p |- ( ( normop ` S ) - ( normop ` T ) ) <_
                  ( normop ` ( S +op T ) ) $=
      ( cnop cfv cmin co chos cle wbr caddc wcel cbo ax-mp chil wf bdopf nmopre
      cr c1 cneg chot bdophsi cc neg1cn bdophmi nmoptrii chod hoaddcli hopncani
      honegsubi eqtri fveq2i nmopnegi oveq2i 3brtr3i lesubaddi mpbir ) AEFZBEFZ
      GHABIHZEFZJKUTVCVALHZJKVBUAUBZBUCHZIHZEFVCVFEFZLHUTVDJVBVFABCDUDZVEUEMVFN
      MUFVEBDUGOUHVGAEVGVBBUIHAVBBABANMZPPAQCAROZBNMZPPBQDBROZUJVMULABVKVMUKUMU
      NVHVAVCLBVMUOUPUQUTVAVCVJUTTMCASOVLVATMDBSOVBNMVCTMVIVBSOURUS $.

    $( The adjoint of a composition of bounded linear operators.  Theorem
       3.11(viii) of [Beran] p. 106.  (Contributed by NM, 10-Mar-2006.)
       (New usage is discouraged.) $)
    adjcoi $p |- ( adjh ` ( S o. T ) ) = ( ( adjh ` T ) o. ( adjh ` S ) ) $=
      ( vx vy cado cfv csp co wceq chil wcel cbo wf adjbdln bdopf ax-mp bdopadj
      mp2b cv ccom wral wa oveq2d adantl oveq1d adantr ffvelrni cdm adj2 mp3an1
      hocoi sylan sylan2 3eqtrd bdopcoi 3eqtr2rd rgen2a hocofi hoeq2 mp2an mpbi
      wb ) EUAZFUAZABUBZGHZHIJZVEVFBGHZAGHZUBZHZIJZKZFLUCELUCZVHVLKZVOEFLVELMZV
      FLMZUDZVNVEVFVKHZVJHZIJZVEVGHZVFIJZVIVSVNWCKVRVSVMWBVEIVFVJVKBNMZVJNMLLVJ
      ODBPVJQTZANMZVKNMLLVKOCAPVKQTZUMUEUFVTWEVEBHZAHZVFIJZWJWAIJZWCVRWEWLKVSVR
      WDWKVFIVEABWHLLAOCAQRWFLLBODBQRZUMUGUHVRWJLMZVSWLWMKZLLVEBWNUIAGUJZMZWOVS
      WPWHWRCASRWJVFAUKULUNVSVRWALMZWMWCKZLLVFVKWIUIBWQMZVRWSWTWFXADBSRVEWABUKU
      LUOUPVGWQMZVRVSWEVIKVGNMZXBABCDUQZVGSRVEVFVGUKULURUSLLVHOZLLVLOVPVQVDXCVH
      NMXEXDVGPVHQTVJVKWGWIUTEFVHVLVAVBVC $.
  $}

  ${
    $d x T $.
    nmopcoadj.1 $e |- T e. BndLinOp $.
    $( The norm of an operator composed with its adjoint.  Part of Theorem
       3.11(vi) of [Beran] p. 106.  (Contributed by NM, 8-Mar-2006.)
       (New usage is discouraged.) $)
    nmopcoadji $p |- ( normop ` ( ( adjh ` T ) o. T ) )
                    = ( ( normop ` T ) ^ 2 ) $=
      ( vx cfv co wceq cle wbr cno c1 chil wcel ax-mp cr wa cmul adantr syl cc0
      mp2b cado ccom cnop c2 cexp cv wi wf cxr wral wb cbo adjbdlnb mpbi hocofi
      bdopf nmopre resqcli rexr nmopub mp2an hocoi fveq2d ffvelrni 3syl remulcl
      normcl sylancr remulcli a1i nmbdoplbi nmopge0 pm3.2i lemul2a mpanl2 sylan
      1re mp3anl3 recni mulid1i syl6breq letrd syl21anc eqbrtrd nmopadji oveq1i
      sqvali eqtr4i ex mprgbir csqrt bdopcoi sqrtcli csp cabs cc mpancom abscld
      hicl remulcld bcs hococli normge0 jca simpr mp3anl2 recnd mulid1d breqtrd
      eqtr4d resqcl sqge0 absidd normsq cdm bdopadj mp3an1 adjadj fveq1i oveq2i
      adj2 syl6req eqtrd eqtr3d sqsqrti 3brtr4d sqrtge0i mpanr12 syl2anc mpbird
      le2sq le2sqi breqtri letri3i mpbir2an ) AUADZAUBZUCDZAUCDZUDUEEZFYRYTGHZY
      TYRGHUUACUFZIDZJGHZUUBYQDZIDZYTGHZUGZCKKKYQUHZYTUILZUUAUUHCKUJUKYPAYPULLZ
      KKYPUHZAULLZUUKBAUMUNZYPUPZMZUUMKKAUHZBAUPZMZUOZYTNLUUJYSUUMYSNLZBAUQMZUR
      ZYTUSMCYTYQUTVAUUBKLZUUDUUGUVDUUDOZUUFYPUCDZYSPEZYTGUVEUUFUUBADZYPDZIDZUV
      GGUVDUUFUVJFUUDUVDUUEUVIIUUBYPAUUPUUSVBVCZQUVEUVJUVFUVHIDZPEZUVGUVDUVJNLZ
      UUDUVDUVHKLZUVIKLZUVNKKUUBAUUSVDZKKUVHYPUUPVDZUVIVGVEZQUVDUVMNLZUUDUVDUVF
      NLZUVLNLZUVTUUKUWAUUNYPUQMZUVDUVOUWBUVQUVHVGZRZUVFUVLVFVHQUVGNLUVEUVFYSUW
      CUVBVIVJUVDUVJUVMGHZUUDUVDUVOUWFUVQUVHYPUUNVKRQUVEUWBUVAUVLYSGHZUVMUVGGHZ
      UVDUWBUUDUWEQZUVAUVEUVBVJZUVEUVLYSUUCPEZYSUWIUVDUWKNLZUUDUVDUVAUUCNLZUWLU
      VBUUBVGZYSUUCVFVHQUWJUVDUVLUWKGHUUDUUBABVKQUVEUWKYSJPEZYSGUVDUWMUUDUWKUWO
      GHZUWNUWMJNLZUUDUWPVQUWMUWQUVASYSGHZOUUDUWPUVAUWRUVBUUMUUQUWRBUURAVLTZVMU
      UCJYSVNVRVOVPYSYSUVBVSZVTWAWBUWBUVAUWASUVFGHZOUWGUWHUWAUXAUWCUUKUULUXAUUN
      UUOYPVLTVMUVLYSUVFVNVRWCWBWDUVGYSYSPEYTUVFYSYSPABWEWFYSUWTWGWHWAWIWJYTYRW
      KDZUDUEEZYRGYSUXBGHZYTUXCGHZUXDUUDUVLUXBGHZUGZCKUUQUXBUILZUXDUXGCKUJUKUUS
      SYRGHZUXBNLZUXHUUIUXIUUTYQVLZMZYRYQULLYRNLZYPAUUNBWLZYQUQMZWMZUXBUSTCUXBA
      UTVAUVDUUDUXFUVEUXFUVLUDUEEZUXCGHZUVEUVIUUBWNEZWODZYRUXQUXCGUVEUXTUVJUUCP
      EZYRUVDUXTNLUUDUVDUXSUVPUVDUXSWPLUVDUVOUVPUVQUVRRZUVIUUBWSWQWRQUVDUYANLUU
      DUVDUVJUUCUVSUWNWTQZUXMUVEUXOVJZUVDUXTUYAGHZUUDUVPUVDUYEUYBUVIUUBXAWQQUVE
      UYAUUFYRUYCUVDUUFNLZUUDUVDUUEKLUYFUUBYPAUUPUUSXBUUEVGRQZUYDUVEUYAUVJJPEZU
      UFGUVEUWMUVNSUVJGHZOZUUDUYAUYHGHZUVDUWMUUDUWNQUVDUYJUUDUVDUVNUYIUVSUVDUVO
      UVPUYIUVQUVRUVIXCVEXDQUVDUUDXEUWMUWQUYJUUDUYKVQUUCJUVJVNXFWCUVDUYHUUFFUUD
      UVDUYHUVJUUFUVDUVJUVDUVJUVSXGXHUVKXJQXIUVEUUFYRUUCPEZYRUYGUVDUYLNLZUUDUVD
      UXMUWMUYMUXOUWNYRUUCVFVHQUYDUVDUUFUYLGHUUDUUBYQUXNVKQUVEUYLYRJPEZYRGUVDUW
      MUUDUYLUYNGHZUWNUWMUWQUUDUYOVQUWMUWQUXMUXIOUUDUYOUXMUXIUXOUXLVMUUCJYRVNVR
      VOVPYRYRUXOVSVTWAWBWBWBUVDUXQUXTFUUDUVDUXQWODZUXQUXTUVDUVOUWBUYPUXQFUVQUW
      DUWBUXQUVLXKUVLXLXMVEUVDUXQUXSWOUVDUXQUVHUVHWNEZUXSUVDUVOUXQUYQFUVQUVHXNR
      UVDUXSUVHUUBYPUADZDZWNEZUYQUVOUVDUXSUYTFZUVQYPUAXOZLZUVOUVDVUAUUKVUCUUNYP
      XPMUVHUUBYPYAXQWQUYSUVHUVHWNUUBUYRAUUMAVUBLUYRAFBAXPAXRTXSXTYBYCVCYDQUXCY
      RFZUVEUUIUXIVUDUUTUXKYRUXOYETZVJYFUVDUXFUXRUKZUUDUVDUWBSUVLGHZVUFUWEUVDUV
      OVUGUVQUVHXCRUWBVUGOUXJSUXBGHZVUFUUIUXIUXJUUTUXKUXPTZUUIUXIVUHUUTUXKYRUXO
      YGTZUVLUXBYKYHYIQYJWIWJUWRVUHUXDUXEUKUWSVUJYSUXBUVBVUIYLVAUNVUEYMYRYTUXOU
      VCYNYO $.

    $( The norm of an operator composed with its adjoint.  Part of Theorem
       3.11(vi) of [Beran] p. 106.  (Contributed by NM, 10-Mar-2006.)
       (New usage is discouraged.) $)
    nmopcoadj2i $p |- ( normop ` ( T o. ( adjh ` T ) ) )
                    = ( ( normop ` T ) ^ 2 ) $=
      ( cado cfv ccom cnop c2 cexp co cbo wcel adjbdln ax-mp nmopcoadji bdopadj
      cdm wceq adjadj coeq1i fveq2i nmopadji oveq1i 3eqtr3i ) ACDZCDZUDEZFDUDFD
      ZGHIAUDEZFDAFDZGHIUDAJKZUDJKBALMNUFUHFUEAUDACPKZUEAQUJUKBAOMARMSTUGUIGHAB
      UAUBUC $.

    $( An operator composed with its adjoint is zero iff the operator is zero.
       Theorem 3.11(vii) of [Beran] p. 106.  (Contributed by NM, 10-Mar-2006.)
       (New usage is discouraged.) $)
    nmopcoadj0i $p |- ( ( T o. ( adjh ` T ) ) = 0hop <-> T = 0hop ) $=
      ( cado cfv ccom cnop cc0 wceq ch0o c2 cexp co nmopcoadj2i eqeq1i cbo wcel
      ax-mp clo bdopln nmlnop0iHIL cr nmopre recni sqeq0i bitri adjbdln lnopcoi
      3bitr3i ) AACDZEZFDZGHZAFDZGHZUJIHAIHULUMJKLZGHUNUKUOGABMNUMUMAOPZUMUAPBA
      UBQUCUDUEUJAUIUPARPBASQZUIOPZUIRPUPURBAUFQUISQUGTAUQTUH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Quantum computation error bound theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    unierr.1 $e |- F e. UniOp $.
    unierr.2 $e |- G e. UniOp $.
    unierr.3 $e |- S e. UniOp $.
    unierr.4 $e |- T e. UniOp $.
    $( If we approximate a chain of unitary transformations (quantum computer
       gates) ` F ` , ` G ` by other unitary transformations ` S ` , ` T ` ,
       the error increases at most additively.  Equation 4.73 of
       [NielsenChuang] p. 195.  (Contributed by NM, 10-Mar-2006.)
       (New usage is discouraged.) $)
    unierri $p |- ( normop ` ( ( F o. G ) -op ( S o. T ) ) ) <_
                 ( ( normop ` ( F -op S ) ) + ( normop ` ( G -op T ) ) ) $=
      ( co cnop cfv cle chil cc0 wf cbo wcel ax-mp cr nmopre ccom caddc wbr c0h
      chod wceq cuo unopbd bdopf hocofi hosubcli nmop0h mpan2 0le0 00id oveq12d
      breqtrri syl5breqr eqbrtrd wne cmul chos honpncani fveq2i bdopcoi bdophdi
      nmoptrii hocsubdiri nmopcoi eqbrtrri bdopln hoddii remulcli le2addi mp2an
      clo bdophsi readdcli letri c1 nmopun oveq2d mulid1i syl6eq oveq1d mulid2i
      recni syl5breq pm2.61ine ) CDUAZABUAZUEIZJKZCAUEIZJKZDBUEIZJKZUBIZLUCMUDM
      UDUFZWMNWRLWSMMWLOWMNUFWJWKCDCPQZMMCOCUGQWTECUHRZCUIRZDPQZMMDODUGQZXCFDUH
      RZDUIRZUJZABAPQZMMAOAUGQZXHGAUHRZAUIRZBPQZMMBOBUGQXLHBUHRZBUIRZUJZUKWLULU
      MWSNNNUBIZWRLNNXPLUNUOUQWSWONWQNUBWSMMWNOWONUFCAXBXKUKWNULUMWSMMWPOWQNUFD
      BXFXNUKWPULUMUPURUSMUDUTZWMWODJKZVAIZAJKZWQVAIZUBIZWRLWJADUAZUEIZYCWKUEIZ
      VBIZJKZWMYBLYFWLJWJYCWKXGADXKXFUJXOVCVDYGYDJKZYEJKZUBIZLUCYJYBLUCZYGYBLUC
      YDYEWJYCCDXAXEVEADXJXEVEZVFZYCWKYLABXJXMVEVFZVGYHXSLUCYIYALUCYKWNDUAZJKYH
      XSLYOYDJCADXBXKXFVHVDWNDCAXAXJVFZXEVIVJAWPUAZJKYIYALYQYEJADBXHAVPQXJAVKRX
      FXNVLVDAWPXJDBXEXMVFZVIVJYHYIXSYAYDPQYHSQYMYDTRZYEPQYISQYNYETRZWOXRWNPQWO
      SQYPWNTRZXCXRSQXEDTRVMZXTWQXHXTSQXJATRWPPQWQSQYRWPTRZVMZVNVOYGYJYBYFPQYGS
      QYDYEYMYNVQYFTRYHYIYSYTVRXSYAUUBUUDVRVSVOVJXQXSWOYAWQUBXQXSWOVTVAIWOXQXRV
      TWOVAXQXDXRVTUFFDWAUMWBWOWOUUAWGWCWDXQYAVTWQVAIWQXQXTVTWQVAXQXIXTVTUFGAWA
      UMWEWQWQUUCWGWFWDUPWHWI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Dirac bra-ket notation (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x S $.
    $d t u x y T $.  $d t u x U $.  $d t x y z $.
    $( The norm of the bra function.  (Contributed by NM, 24-May-2006.)
       (New usage is discouraged.) $)
    branmfn $p |- ( A e. ~H -> ( normfn ` ( bra ` A ) ) = ( normh ` A ) ) $=
      ( vy vx vz chil wcel cfv cno wceq c0v wa c1 cle wbr clt adantr cr co cmul
      cc0 vw cbr cnmf fveq2 fveq2d eqeq12d wne cv cabs wrex cab cxr cc wf brafn
      csup nmfnval syl wss wral wi nmfnsetre ressxr syl6ss normcl rexrd jca vex
      eqeq1 anbi2d rexbidv elab csp braval sylan9eqr bcs2 3expa ancom1s eqbrtrd
      exp41 imp4a rexlimdv imp sylan2b ralrimiva cdiv csm recnd normne0 biimpar
      reccld simpl hvmulcl syl2anc norm1 1le1 syl6eqbr ax-his3 syl3anc rereccld
      id hiidrcl remulcld eqeltrd normgt0 biimpa recgt0d ltle mpan sylc hiidge0
      0re mulge0d breqtrrd absidd recid2d oveq2d mul12d c2 sqvald normsq eqtr3d
      cexp eqtrd mulid1d 3eqtr3rd 3eqtr4rd breq1d oveq1 eqeq2d anbi12d syl12anc
      rspcev wb rexbidva mpbird fvex sylibr breq2 sylan adantlr ex supxr2 nmfn0
      csn cxp bra0 fveq2i norm0 3eqtr4i a1i pm2.61ne ) AEFZAUBGZUCGZAHGZIJUBGZU
      CGZJHGZIZAJAJIZUUOUURUUPUUSUVAUUNUUQUCAJUBUDUEAJHUDUFUUMAJUGZKZUUOBUHZHGZ
      LMNZCUHZUVDUUNGZUIGZIZKZBEUJZCUKZULOUPZUUPUUMUUOUVNIZUVBUUMEUMUUNUNZUVOAU
      OZCBUUNUQURPUVCUVMULUSZUUPULFZKZDUHZUUPMNZDUVMUTZUWAUUPONZUWAUAUHZONZUAUV
      MUJZVAZDQUTUVNUUPIUUMUVTUVBUUMUVRUVSUUMUVMQULUUMUVPUVMQUSUVQCBUUNVBURVCVD
      UUMUUPAVEZVFVGPUUMUWCUVBUUMUWBDUVMUWAUVMFUUMUVFUWAUVIIZKZBEUJZUWBUVLUWLCU
      WADVHUVGUWAIZUVKUWKBEUWMUVJUWJUVFUVGUWAUVIVIVJVKVLUUMUWLUWBUUMUWKUWBBEUUM
      UVDEFZUVFUWJUWBUUMUWNUVFUWJUWBUUMUWNKZUVFKZUWJKUWAUVDAVMRZUIGZUUPMUWJUWPU
      WAUVIUWRUWJXAUWOUVIUWRIUVFUWOUVHUWQUIAUVDVNUEZPVOUWPUWRUUPMNZUWJUWNUUMUVF
      UWTUWNUUMUVFUWTUVDAVPVQVRPVSVTWAWBWCWDWEPUVCUWHDQUVCUWAQFZKUWDUWGUVCUWDUW
      GUXAUVCUUPUVMFZUWDUWGUVCUVFUUPUVIIZKZBEUJZUXBUVCUXEUVFUUPUWRIZKZBEUJZUVCL
      UUPWFRZAWGRZEFZUXJHGZLMNZUUPUXJAVMRZUIGZIZUXHUVCUXIUMFZUUMUXKUVCUUPUUMUUP
      UMFUVBUUMUUPUWIWHZPZUUMUUPTUGUVBAWIWJZWKZUUMUVBWLZUXIAWMWNUVCUXLLLMAWOWPW
      QUVCUXNUXIAAVMRZSRZUXOUUPUVCUXQUUMUUMUXNUYDIUYAUYBUYBUXIAAWRWSZUVCUXNUVCU
      XNUYDQUYEUVCUXIUYCUVCUUPUUMUUPQFUVBUWIPZUXTWTZUUMUYCQFUVBAXBPZXCXDUVCTUYD
      UXNMUVCUXIUYCUYGUYHUVCUXIQFZTUXIONZTUXIMNZUYGUVCUUPUYFUUMUVBTUUPONAXEXFXG
      TQFUYIUYJUYKVAXLTUXIXHXIXJUUMTUYCMNUVBAXKPXMUYEXNXOUVCUUPUXIUUPSRZSRZUUPL
      SRZUYDUUPUVCUYLLUUPSUVCUUPUXSUXTXPXQUVCUYMUXIUUPUUPSRZSRUYDUVCUUPUXIUUPUX
      SUYAUXSXRUVCUYOUYCUXISUUMUYOUYCIUVBUUMUUPXSYCRUYOUYCUUMUUPUXRXTAYAYBPXQYD
      UUMUYNUUPIUVBUUMUUPUXRYEPYFYGUXGUXMUXPKBUXJEUVDUXJIZUVFUXMUXFUXPUYPUVEUXL
      LMUVDUXJHUDYHUYPUWRUXOUUPUYPUWQUXNUIUVDUXJAVMYIUEYJYKYMYLUUMUXEUXHYNUVBUU
      MUXDUXGBEUWOUXCUXFUVFUWOUVIUWRUUPUWSYJVJYOPYPUVLUXECUUPAHYQUVGUUPIZUVKUXD
      BEUYQUVJUXCUVFUVGUUPUVIVIVJVKVLYRUWFUWDUAUUPUVMUWEUUPUWAOYSYMYTUUAUUBWEDU
      AUVMUUPUUCYLYDUUTUUMETUUEUUFZUCGTUURUUSUUDUUQUYRUCUUGUUHUUIUUJUUKUUL $.

    $( The bra of a vector is a bounded functional.  (Contributed by NM,
       26-May-2006.)  (New usage is discouraged.) $)
    brabn $p |- ( A e. ~H -> ( normfn ` ( bra ` A ) ) e. RR ) $=
      ( chil wcel cbr cfv cnmf cno cr branmfn normcl eqeltrd ) ABCADEFEAGEHAIAJ
      K $.

    $( The set of bras equals the set of continuous linear functionals.
       (Contributed by NM, 26-May-2006.)  (New usage is discouraged.) $)
    rnbra $p |- ran bra = ( LinFn i^i ContFn ) $=
      ( vt vx vy cbr clf ccnfn cv wcel wa cnmf cfv cr wceq chil wrex wb wral wi
      wfn cc crn cin lnfncnbd pm5.32i elin co cmpt ax-hilex mptex df-bra fnmpti
      csp fvelrnb ax-mp bralnfn brabn jca eleq1 fveq2 eleq1d syl5ibcom rexlimiv
      anbi12d riesz1 biimpa braval eqtr3 ex syl ralimdva adantl wf brafn adantr
      lnfnf ffn eqfnfv syl2an syl2anr sylibrd reximdva mpd bitri 3bitr4ri eqriv
      impbii ) ADUAZEFUBZAGZEHZWIFHZIWJWIJKZLHZIZWIWHHWIWGHZWJWKWMWIUCUDWIEFUEW
      OBGZDKZWIMZBNOZWNDNSWOWSPBNCNCGZWPULUFZUGDCNXAUHUIBCUJUKBNWIDUMUNWSWNWRWN
      BNWPNHZWQEHZWQJKZLHZIWRWNXBXCXEWPUOWPUPUQWRXCWJXEWMWQWIEURWRXDWLLWQWIJUSU
      TVCVAVBWNWTWIKZXAMZCNQZBNOZWSWJWMXICBWIVDVEWNXHWRBNWNXBIXHWTWQKZXFMZCNQZW
      RXBXHXLRWNXBXGXKCNXBWTNHIXJXAMZXGXKRWPWTVFXMXGXKXJXFXAVGVHVIVJVKXBNTWQVLZ
      NTWIVLZWRXLPZWNWPVMWJXOWMWIVOVNXNWQNSWINSXPXONTWQVPNTWIVPCNWQWIVQVRVSVTWA
      WBWFWCWDWE $.

    $( The bra function maps vectors one-to-one onto the set of continuous
       linear functionals.  (Contributed by NM, 26-May-2006.)  (Proof shortened
       by Mario Carneiro, 16-Nov-2013.)  (New usage is discouraged.) $)
    bra11 $p |- bra : ~H -1-1-onto-> ( LinFn i^i ContFn ) $=
      ( vx vy vz chil clf ccnfn cin cbr wf1o wfn crn wceq cv cfv wral csp co wa
      wcel braval cmpt ax-hilex mptex df-bra fnmpti rnbra fveq1 adantlr adantll
      wi eqeq12d syl5ib ralrimdva hial2eq2 sylibd rgen2a dff1o6 mpbir3an ) DEFG
      ZHIHDJHKUSLAMZHNZBMZHNZLZUTVBLZUJZBDOADOADBDVBUTPQZUAHBDVGUBUCABUDUEUFVFA
      BDUTDSZVBDSZRZVDCMZUTPQZVKVBPQZLZCDOVEVJVDVNCDVDVKVANZVKVCNZLVJVKDSZRZVNV
      KVAVCUGVRVOVLVPVMVHVQVOVLLVIUTVKTUHVIVQVPVMLVHVBVKTUIUKULUMCUTVBUNUOUPABD
      USHUQUR $.

    $( A bra is a continuous linear functional.  (Contributed by NM,
       30-May-2006.)  (New usage is discouraged.) $)
    bracnln $p |- ( A e. ~H -> ( bra ` A ) e. ( LinFn i^i ContFn ) ) $=
      ( chil clf ccnfn cin cbr wf1o wf bra11 f1of ax-mp ffvelrni ) BCDEZAFBMFGB
      MFHIBMFJKL $.

    $( Value of the converse of the bra function.  Based on the Riesz Lemma
       ~ riesz4 , this very important theorem not only justifies the Dirac
       bra-ket notation, but allows us to extract a unique vector from any
       continuous linear functional from which the functional can be recovered;
       i.e. a single vector can "store" _all_ of the information contained in
       any entire continuous linear functional (mapping from ` ~H ` to
       ` CC ` ).  (Contributed by NM, 26-May-2006.)
       (New usage is discouraged.) $)
    cnvbraval $p |- ( T e. ( LinFn i^i ContFn ) ->
     ( `' bra ` T ) = ( iota_ y e. ~H A. x e. ~H ( T ` x ) = ( x .ih y ) ) ) $=
      ( clf wcel cv cfv csp co wceq chil wral cbr wa bra11 adantll adantr ax-mp
      mpan wb ccnfn cin crio ccnv wf1o f1ocnvfv imp oveq2d braval ancoms adantl
      wi fveq1 3eqtr2rd wrex crn rnbra eleq2i wfn wf ffn fvelrnb sylbb1 r19.29a
      f1of ralrimiva f1ocnvdm riesz4 oveq2 eqeq2d ralbidv riota2 syl2anc eqcomd
      wreu mpbid ) CDUAUBZEZAFZCGZVSBFZHIZJZAKLZBKUCZCMUDGZVRVTVSWFHIZJZAKLZWEW
      FJZVRWHAKVRVSKEZNZWAMGZCJZWHBKWLWAKEZNZWNNWGWBVSWMGZVTWOWNWGWBJWLWOWNNWFW
      AVSHWOWNWFWAJZKVQMUEZWOWNWRULOKVQWACMUFSUGUHPWPWQWBJZWNWKWOWTVRWOWKWTWAVS
      UIUJPQWNWQVTJWPVSWMCUMUKUNVRWNBKUOZWKCMUPZEZVRXAXBVQCUQURMKUSZXCXATKVQMUT
      ZXDWSXEOKVQMVERKVQMVARBKCMVBRVCQVDVFVRWFKEZWDBKVOWIWJTWSVRXFOKVQCMVGSBACV
      HWDWIBKWFWAWFJZWCWHAKXGWBWGVTWAWFVSHVIVJVKVLVMVPVN $.

    $( Closure of the converse of the bra function.  (Contributed by NM,
       26-May-2006.)  (New usage is discouraged.) $)
    cnvbracl $p |- ( T e. ( LinFn i^i ContFn ) -> ( `' bra ` T ) e. ~H ) $=
      ( chil clf ccnfn cin cbr wf1o wcel ccnv cfv bra11 f1ocnvdm mpan ) BCDEZFG
      ANHAFIJBHKBNAFLM $.

    $( The converse bra of the bra of a vector is the vector itself.
       (Contributed by NM, 30-May-2006.)  (New usage is discouraged.) $)
    cnvbrabra $p |- ( A e. ~H -> ( `' bra ` ( bra ` A ) ) = A ) $=
      ( chil clf ccnfn cin cbr wf1o wcel cfv ccnv wceq bra11 f1ocnvfv1 mpan ) B
      CDEZFGABHAFIFJIAKLBOAFMN $.

    $( The bra of the converse bra of a continuous linear functional.
       (Contributed by NM, 31-May-2006.)  (New usage is discouraged.) $)
    bracnvbra $p |- ( T e. ( LinFn i^i ContFn ) ->
                     ( bra ` ( `' bra ` T ) ) = T ) $=
      ( chil clf ccnfn cin cbr wf1o wcel ccnv cfv wceq bra11 f1ocnvfv2 mpan ) B
      CDEZFGAOHAFIJFJAKLBOAFMN $.

    $( The vector that a continuous linear functional is the bra of.
       (Contributed by NM, 26-May-2006.)  (New usage is discouraged.) $)
    bracnlnval $p |- ( T e. ( LinFn i^i ContFn ) ->
        T = ( bra ` ( iota_ y e. ~H A. x e. ~H ( T ` x ) = ( x .ih y ) ) ) ) $=
      ( clf ccnfn cin wcel cv cfv csp co wceq chil wral crio cbr ccnv cnvbraval
      wb cnvbracl eqeltrrd wf1o bra11 f1ocnvfvb mp3an1 mpancom mpbird eqcomd )
      CDEFZGZAHZCIUKBHJKLAMNBMOZPIZCUJUMCLZCPQIZULLZABCRZULMGZUJUNUPSZUJUOULMUQ
      CTUAMUIPUBURUJUSUCMUIULCPUDUEUFUGUH $.

    $( Multiplication property of the converse bra function.  (Contributed by
       NM, 31-May-2006.)  (New usage is discouraged.) $)
    cnvbramul $p |- ( ( A e. CC /\ T e. ( LinFn i^i ContFn ) ) ->
       ( `' bra ` ( A .fn T ) ) = ( ( * ` A ) .h ( `' bra ` T ) ) ) $=
      ( cc wcel clf ccnfn cin ccj cfv cbr ccnv csm chft chil wceq cnvbracl cjcl
      wa co eqtrd brafnmul sylan cjcj adantr oveq1d sylan2 oveq2d adantl fveq2d
      bracnvbra hvmulcl syl2an cnvbrabra syl eqtr3d ) ACDZBEFGDZRZAHIZBJKZIZLSZ
      JIZUTIZABMSZUTIVBURVCVEUTURVCAVAJIZMSZVEUQUPVANDZVCVGOBPZUPVHRZVCUSHIZVFM
      SZVGUPUSCDZVHVCVLOAQZUSVAUAUBVJVKAVFMUPVKAOVHAUCUDUETUFUQVGVEOUPUQVFBAMBU
      JUGUHTUIURVBNDZVDVBOUPVMVHVOUQVNVIUSVAUKULVBUMUNUO $.

    $( Dirac bra-ket associative law ` ( | A >. ` ` <. B | ) | C >. = `
       ` | A >. ( <. B | C >. ) ` i.e. the juxtaposition of an outer product
       with a ket equals a bra juxtaposed with an inner product.  Since
       ` <. B | C >. ` is a complex number, it is the first argument in the
       inner product ` .h ` that it is mapped to, although in Dirac notation it
       is placed after the ket.  (Contributed by NM, 15-May-2006.)
       (New usage is discouraged.) $)
    kbass1 $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                 ( ( A ketbra B ) ` C ) = ( ( ( bra ` B ) ` C ) .h A ) ) $=
      ( chil wcel w3a ck co cfv csp csm kbval wceq braval 3adant1 oveq1d eqtr4d
      cbr ) ADEZBDEZCDEZFZCABGHICBJHZAKHCBRIIZAKHABCLUBUDUCAKTUAUDUCMSBCNOPQ $.

    $( Dirac bra-ket associative law ` ( <. A | B >. ) <. C | = `
       ` <. A | ( | B >. ` ` <. C | ) ` i.e. the juxtaposition of an inner
       product with a bra equals a ket juxtaposed with an outer product.
       (Contributed by NM, 23-May-2006.)  (New usage is discouraged.) $)
    kbass2 $p |- ( ( A e. ~H /\ B e. ~H /\ C e. ~H ) ->
                  ( ( ( bra ` A ) ` B ) .fn ( bra ` C ) ) =
                  ( ( bra ` A ) o. ( B ketbra C ) ) ) $=
      ( vx chil wcel cbr cfv co wfn cmul wceq wa cc wf brafn csp braval syl2anc
      syl3anc w3a chft ck ccom cmpt ovex eqid fnmpti bracl hfmmval syl2an 3impa
      cv fneq1d mpbiri kbop fco 3impb ffn syl simpl1 simpl2 simpl3 oveq12d hicl
      simpr eqeltrd hfmval csm ax-his3 3adant1 fvco3 sylan kbval fveq2d hvmulcl
      3eqtrd mulcomd 3eqtr4d eqfnfvd ) AEFZBEFZCEFZUAZDEBAGHZHZCGHZUBIZWEBCUCIZ
      UDZWDWHEJDEWFDUMZWGHZKIZUEZEJDEWMWNWFWLKUFWNUGUHWDEWHWNWAWBWCWHWNLZWAWBMW
      FNFZENWGOZWOWCABUICPZDWFWGUJUKULUNUOWDENWJOZWJEJWAWBWCWSWAENWEOEEWIOZWSWB
      WCMAPBCUPZEENWEWIUQUKURENWJUSUTWDWKEFZMZWMBAQIZWKCQIZKIZWKWHHZWKWJHZXCWFX
      DWLXEKXCWAWBWFXDLWAWBWCXBVAZWAWBWCXBVBZABRSZXCWCXBWLXELWAWBWCXBVCZWDXBVFZ
      CWKRSVDXCWPWQXBXGWMLXCWFXDNXKXCWBWAXDNFXJXIBAVESZVGXCWCWQXLWRUTXMWFWKWGVH
      TXCXEBVIIZAQIZXEXDKIZXHXFXCXENFZWBWAXPXQLXCXBWCXRXMXLWKCVESZXJXIXEBAVJTXC
      XHWKWIHZWEHZXOWEHZXPWDWTXBXHYALWBWCWTWAXAVKEEWKWEWIVLVMXCXTXOWEXCWBWCXBXT
      XOLXJXLXMBCWKVNTVOXCWAXOEFZYBXPLXIXCXRWBYCXSXJXEBVPSAXORSVQXCXDXEXNXSVRVS
      VSVT $.

    $( Dirac bra-ket associative law ` <. A | B >. ` ` <. C | D >. = `
       ` ( <. A | B >. ` ` <. C | ) | D >. ` .  (Contributed by NM,
       30-May-2006.)  (New usage is discouraged.) $)
    kbass3 $p |- ( ( ( A e. ~H /\ B e. ~H ) /\ ( C e. ~H /\ D e. ~H ) ) ->
                  ( ( ( bra ` A ) ` B ) x. ( ( bra ` C ) ` D ) ) =
         ( ( ( ( bra ` A ) ` B ) .fn ( bra ` C ) ) ` D ) ) $=
      ( chil wcel wa cbr cfv chft co cmul cc bracl adantr brafn ad2antrl simprr
      wf wceq hfmval syl3anc eqcomd ) AEFBEFGZCEFZDEFZGZGZDBAHIIZCHIZJKIZUIDUJI
      LKZUHUIMFZEMUJSZUFUKULTUDUMUGABNOUEUNUDUFCPQUDUEUFRUIDUJUAUBUC $.

    $( Dirac bra-ket associative law ` <. A | B >. ` ` <. C | D >. = `
       ` <. A | ( | B >. ` ` <. C | D >. ) ` .  (Contributed by NM,
       30-May-2006.)  (New usage is discouraged.) $)
    kbass4 $p |- ( ( ( A e. ~H /\ B e. ~H ) /\ ( C e. ~H /\ D e. ~H ) ) ->
                  ( ( ( bra ` A ) ` B ) x. ( ( bra ` C ) ` D ) ) =
            ( ( bra ` A ) ` ( ( ( bra ` C ) ` D ) .h B ) ) ) $=
      ( chil wcel wa cbr cfv cmul co csm cc wceq mulcom syl2an bralnfn ad2antrr
      bracl clf adantl simplr lnfnmul syl3anc eqtr4d ) AEFZBEFZGZCEFDEFGZGZBAHI
      ZIZDCHIIZJKZUMULJKZUMBLKUKIZUHULMFUMMFZUNUONUIABSCDSZULUMOPUJUKTFZUQUGUPU
      ONUFUSUGUIAQRUIUQUHURUAUFUGUIUBUMBUKUCUDUE $.

    $( Dirac bra-ket associative law ` ( | A >. ` ` <. B | ) ( | C >. `
       ` <. D | ) = ( ( | A >. ` ` <. B | ) | C >. ) <. D | ` .  (Contributed
       by NM, 30-May-2006.)  (New usage is discouraged.) $)
    kbass5 $p |- ( ( ( A e. ~H /\ B e. ~H ) /\ ( C e. ~H /\ D e. ~H ) ) ->
                  ( ( A ketbra B ) o. ( C ketbra D ) ) =
                  ( ( ( A ketbra B ) ` C ) ketbra D ) ) $=
      ( vx chil wcel wa ck co cfv wceq csp csm kbval cc syl2anc syl3anc wf kbop
      ccom wral 3expa adantll fveq2d simplll simpllr simpr simplrr hicl simplrl
      cv hvmulcl eqtrd adantl fvco3 sylan oveq2d ffvelrnda adantrr cmul ax-his3
      adantr oveq1d ax-hvmulass 3eqtr4d fco syl2an anasss wfn ffn eqfnfv mpbird
      ralrimiva wb ) AFGZBFGZHZCFGZDFGZHZHZABIJZCDIJZUAZCWCKZDIJZLZEULZWEKZWIWG
      KZLZEFUBZWBWLEFWBWIFGZHZWIWDKZWCKZWIDMJZCNJZBMJZANJZWJWKWOWQWSWCKZXAWOWPW
      SWCWAWNWPWSLZVRVSVTWNXCCDWIOUCUDUEWOVPVQWSFGZXBXALVPVQWAWNUFZVPVQWAWNUGZW
      OWRPGZVSXDWOWNVTXGWBWNUHZVRVSVTWNUIZWIDUJQZVRVSVTWNUKZWRCUMQABWSORUNWBFFW
      DSZWNWJWQLWAXLVRCDTZUOFFWIWCWDUPUQWOWRWFNJZWRCBMJZANJZNJZWKXAWOWFXPWRNWOV
      PVQVSWFXPLXEXFXKABCORURWOWFFGZVTWNWKXNLWBXRWNVRVSXRVTVRFFCWCABTZUSZUTVCXI
      XHWFDWIORWOXAWRXOVAJZANJZXQWOWTYAANWOXGVSVQWTYALXJXKXFWRCBVBRVDWOXGXOPGZV
      PYBXQLXJWOVSVQYCXKXFCBUJQXEWRXOAVERUNVFVFVNWBFFWESZFFWGSZWHWMVOZVRFFWCSXL
      YDWAXSXMFFFWCWDVGVHVRVSVTYEVRVSHXRVTYEXTWFDTUQVIYDWEFVJWGFVJYFYEFFWEVKFFW
      GVKEFWEWGVLVHQVM $.

    $( Dirac bra-ket associative law ` ( | A >. ` ` <. B | ) ( | C >. `
       ` <. D | ) = | A >. ` ` ( <. B | ( | C >. ` ` <. D | ) ) ` .
       (Contributed by NM, 30-May-2006.)  (New usage is discouraged.) $)
    kbass6 $p |- ( ( ( A e. ~H /\ B e. ~H ) /\ ( C e. ~H /\ D e. ~H ) ) ->
                  ( ( A ketbra B ) o. ( C ketbra D ) ) =
               ( A ketbra ( `' bra ` ( ( bra ` B ) o. ( C ketbra D ) ) ) ) ) $=
      ( chil wcel wa ck co ccom cfv csp csm cbr wceq ccj wi cc fveq2d eqtr2d ex
      ccnv kbass5 kbval 3expa adantrr oveq1d hicl kbmul syl3an1 3exp com13 chft
      imp43 clf ccnfn bracl bracnln cnvbramul syl2an braval cnvbrabra oveqan12d
      cin anasss kbass2 3expb adantll oveq2d eqtr4d 3eqtrd ) AEFZBEFZGZCEFZDEFZ
      GZGZABHIZCDHIZJCVSKZDHICBLIZAMIZDHIZABNKZVTJZNUBZKZHIZABCDUCVRWAWCDHVNVOW
      AWCOZVPVLVMVOWJABCUDUEUFUGVRWDAWBPKZDMIZHIZWIVLVMVOVPWDWMOZVOVMVLVPWNQZVO
      VMVLWOQVOVMGZVLVPWNWPWBRFVLVPWNCBUHWBADUIUJUKUAULUNVRWHWLAHVMVQWHWLOVLVMV
      QGZWLCWEKZDNKZUMIZWGKZWHVMVOVPWLXAOVMVOGZVPGXAWRPKZWSWGKZMIZWLXBWRRFWSUOU
      PVDFXAXEOVPBCUQDURWRWSUSUTXBVPXCWKXDDMXBWRWBPBCVASDVBVCTVEWQWTWFWGVMVOVPW
      TWFOBCDVFVGSTVHVIVJVK $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Positive operators (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

    $( Ordering relation for positive operators.  Definition of positive
       operator ordering in [Kreyszig] p. 470.  (Contributed by NM,
       23-Jul-2006.)  (New usage is discouraged.) $)
    leopg $p |- ( ( T e. A /\ U e. B ) -> ( T <_op U <-> ( ( U -op T ) e.
                HrmOp /\ A. x e. ~H 0 <_ ( ( ( U -op T ) ` x ) .ih x ) ) ) ) $=
      ( vu vt cv chod co cho wcel cc0 cfv csp cle wbr chil wral wa oveq2 eleq1d
      cleo wceq fveq1d oveq1d breq2d ralbidv anbi12d oveq1 df-leop brabg ) FHZG
      HZIJZKLZMAHZUONZUQOJZPQZARSZTUMDIJZKLZMUQVBNZUQOJZPQZARSZTEDIJZKLZMUQVHNZ
      UQOJZPQZARSZTGFDEBCUCUNDUDZUPVCVAVGVNUOVBKUNDUMIUAZUBVNUTVFARVNUSVEMPVNUR
      VDUQOVNUQUOVBVOUEUFUGUHUIUMEUDZVCVIVGVMVPVBVHKUMEDIUJZUBVPVFVLARVPVEVKMPV
      PVDVJUQOVPUQVBVHVQUEUFUGUHUIAFGUKUL $.

    $( Ordering relation for operators.  Definition of positive operator
       ordering in [Kreyszig] p. 470.  (Contributed by NM, 23-Jul-2006.)
       (New usage is discouraged.) $)
    leop $p |- ( ( T e. HrmOp /\ U e. HrmOp ) -> ( T <_op U <->
                A. x e. ~H 0 <_ ( ( ( U -op T ) ` x ) .ih x ) ) ) $=
      ( cho wcel wa cleo wbr chod co cc0 cv cfv csp cle chil leopg hmopd ancoms
      wral biantrurd bitr4d ) BDEZCDEZFZBCGHCBIJZDEZKALZUFMUHNJOHAPTZFUIADDBCQU
      EUGUIUDUCUGCBRSUAUB $.

    $( Ordering relation for operators.  Definition of operator ordering in
       [Young] p. 141.  (Contributed by NM, 23-Jul-2006.)
       (New usage is discouraged.) $)
    leop2 $p |- ( ( T e. HrmOp /\ U e. HrmOp ) -> ( T <_op U <->
                A. x e. ~H ( ( T ` x ) .ih x ) <_ ( ( U ` x ) .ih x ) ) ) $=
      ( cho wcel wa wbr cc0 co cfv csp cle chil wral wceq hmopf ffvelrn adantll
      wf adantlr cleo cv chod leop anim12i cmv hodval 3com12 3expa oveq1d simpr
      cmin his2sub syl3anc eqtrd sylan breq2d cr hmopre subge0d bitrd ralbidva
      ) BDEZCDEZFZBCUAGHAUBZCBUCIJZVFKIZLGZAMNVFBJZVFKIZVFCJZVFKIZLGZAMNABCUDVE
      VIVNAMVEVFMEZFZVIHVMVKULIZLGVNVPVHVQHLVEMMBSZMMCSZFZVOVHVQOVCVRVDVSBPCPUE
      VTVOFZVHVLVJUFIZVFKIZVQWAVGWBVFKVRVSVOVGWBOZVSVRVOWDVFCBUGUHUIUJWAVLMEZVJ
      MEZVOWCVQOVSVOWEVRMMVFCQRVRVOWFVSMMVFBQTVTVOUKVLVJVFUMUNUOUPUQVPVMVKVDVOV
      MUREVCVFCUSRVCVOVKUREVDVFBUSTUTVAVBVA $.

    $( Operator ordering in terms of a positive operator.  Definition of
       operator ordering in [Retherford] p. 49.  (Contributed by NM,
       23-Jul-2006.)  (New usage is discouraged.) $)
    leop3 $p |- ( ( T e. HrmOp /\ U e. HrmOp ) -> ( T <_op U <->
                0hop <_op ( U -op T ) ) ) $=
      ( vx cho wcel wa cleo wbr cc0 cv chod cfv csp cle chil wral ch0o leop c0v
      co wb 0hmop hmopd ancoms leop2 sylancr ho0val oveq1d eqtrd breq1d ralbiia
      hi01 syl6rbb bitrd ) ADEZBDEZFZABGHICJZBAKTZLURMTZNHZCOPZQUSGHZCABRUQVCUR
      QLZURMTZUTNHZCOPZVBUQQDEUSDEZVCVGUAUBUPUOVHBAUCUDCQUSUEUFVFVACOUROEZVEIUT
      NVIVESURMTIVIVDSURMURUGUHURULUIUJUKUMUN $.

    $( Binary relation defining a positive operator.  Definition VI.1 of
       [Retherford] p. 49.  (Contributed by NM, 25-Jul-2006.)
       (New usage is discouraged.) $)
    leoppos $p |- ( T e. HrmOp -> ( 0hop <_op T <->
                A. x e. ~H 0 <_ ( ( T ` x ) .ih x ) ) ) $=
      ( cho wcel ch0o cleo wbr cc0 cv chod co cfv csp chil wral 0hmop leop mpan
      cle wb wf wceq hmopf hosubid1 syl fveq1d oveq1d breq2d ralbidv bitrd ) BC
      DZEBFGZHAIZBEJKZLZUMMKZSGZANOZHUMBLZUMMKZSGZANOECDUKULURTPAEBQRUKUQVAANUK
      UPUTHSUKUOUSUMMUKUMUNBUKNNBUAUNBUBBUCBUDUEUFUGUHUIUJ $.

    $( The ordering relation for operators is reflexive.  (Contributed by NM,
       24-Jul-2006.)  (New usage is discouraged.) $)
    leoprf2 $p |- ( T : ~H --> ~H -> T <_op T ) $=
      ( vx chil wf cleo wbr chod co cho wcel cc0 cfv csp cle ch0o wa c0v adantl
      wceq cvv wral hodid 0hmop syl6eqel 0le0 adantr fveq1d ho0val eqtrd oveq1d
      cv hi01 eqtr2d syl5breq ralrimiva wb ax-hilex fex mpan2 syl2anc mpbir2and
      leopg ) CCADZAAEFZAAGHZIJZKBUKZVELZVGMHZNFZBCUAZVCVEOIAUBZUCUDVCVJBCVCVGC
      JZPZKKVINUEVNVIQVGMHZKVNVHQVGMVNVHVGOLZQVNVGVEOVCVEOSVMVLUFUGVMVPQSVCVGUH
      RUIUJVMVOKSVCVGULRUMUNUOVCATJZVQVDVFVKPUPVCCTJVQUQCCTAURUSZVRBTTAAVBUTVA
      $.

    $( The ordering relation for operators is reflexive.  (Contributed by NM,
       23-Jul-2006.)  (New usage is discouraged.) $)
    leoprf $p |- ( T e. HrmOp -> T <_op T ) $=
      ( vx cho wcel cleo wbr cc0 cv chod co cfv csp cle chil wral c0v ch0o wceq
      wa adantl 0le0 wf hmopf hodid syl adantr fveq1d ho0val oveq1d hi01 eqtr2d
      eqtrd syl5breq ralrimiva wb leop anidms mpbird ) ACDZAAEFZGBHZAAIJZKZVALJ
      ZMFZBNOZUSVEBNUSVANDZSZGGVDMUAVHVDPVALJZGVHVCPVALVHVCVAQKZPVHVAVBQUSVBQRZ
      VGUSNNAUBVKAUCAUDUEUFUGVGVJPRUSVAUHTULUIVGVIGRUSVAUJTUKUMUNUSUTVFUOBAAUPU
      QUR $.

    $( The square of a Hermitian operator is positive.  (Contributed by NM,
       23-Aug-2006.)  (New usage is discouraged.) $)
    leopsq $p |- ( T e. HrmOp -> 0hop <_op ( T o. T ) ) $=
      ( vx cho wcel ch0o ccom cleo wbr cc0 cv cfv csp co cle chil wral wa hmopf
      syl wceq ffvelrnda hiidge0 simpl simpr hmop syl3anc wf fvco3 sylan oveq1d
      eqtr4d breqtrd ralrimiva wb eqid hmopco mp3an3 anidms leoppos mpbird ) AC
      DZEAAFZGHZIBJZVBKZVDLMZNHZBOPZVAVGBOVAVDODZQZIVDAKZVKLMZVFNVJVKODZIVLNHVA
      OOVDAARZUAZVKUBSVJVLVKAKZVDLMZVFVJVAVMVIVLVQTVAVIUCVOVAVIUDVKVDAUEUFVJVEV
      PVDLVAOOAUGVIVEVPTVNOOVDAAUHUIUJUKULUMVAVBCDZVCVHUNVAVRVAVAVBVBTVRVBUOAAU
      PUQURBVBUSSUT $.

    $( The zero operator is a positive operator.  (The literature calls it
       "positive," even though in some sense it is really "nonnegative.") Part
       of Example 12.2(i) in [Young] p. 142.  (Contributed by NM, 23-Jul-2006.)
       (New usage is discouraged.) $)
    0leop $p |- 0hop <_op 0hop $=
      ( ch0o cho wcel cleo wbr 0hmop leoprf ax-mp ) ABCAADEFAGH $.

    $( The identity operator is a positive operator.  Part of Example 12.2(i)
       in [Young] p. 142.  (Contributed by NM, 23-Jul-2006.)
       (New usage is discouraged.) $)
    idleop $p |- 0hop <_op Iop $=
      ( vx ch0o chio cleo wbr cv cfv csp co cle chil cho wcel wral 0hmop idhmop
      wb cc0 c0v oveq1d leop2 mp2an hiidge0 ho0val eqtrd hoival 3brtr4d mprgbir
      hi01 ) BCDEZAFZBGZUKHIZUKCGZUKHIZJEZAKBLMCLMUJUPAKNQOPABCUAUBUKKMZRUKUKHI
      UMUOJUKUCUQUMSUKHIRUQULSUKHUKUDTUKUIUEUQUNUKUKHUKUFTUGUH $.

    $( The sum of two positive operators is positive.  Exercise 1(i) of
       [Retherford] p. 49.  (Contributed by NM, 25-Jul-2006.)
       (New usage is discouraged.) $)
    leopadd $p |- ( ( ( T e. HrmOp /\ U e. HrmOp ) /\ ( 0hop <_op T
               /\ 0hop <_op U ) ) -> 0hop <_op ( T +op U ) ) $=
      ( vx cho wcel wa ch0o cleo wbr co cc0 cfv csp chil wral cr hmopre leoppos
      cle wceq chos cv r19.26 caddc wi addge0 ex syl2an anandirs wf anim12i cva
      hmopf w3a hosval oveq1d 3expa ffvelrn adantlr adantll simpr ax-his2 eqtrd
      syl3anc sylan breq2d sylibrd ralimdva syl5bir bi2anan9 wb syl 3imtr4d imp
      hmops ) ADEZBDEZFZGAHIZGBHIZFZGABUAJZHIZVRKCUBZALZWDMJZSIZCNOZKWDBLZWDMJZ
      SIZCNOZFZKWDWBLZWDMJZSIZCNOZWAWCWMWGWKFZCNOVRWQWGWKCNUCVRWRWPCNVRWDNEZFZW
      RKWFWJUDJZSIZWPVPVQWSWRXBUEZVPWSFWFPEZWJPEZXCVQWSFWDAQWDBQXDXEFWRXBWFWJUF
      UGUHUIWTWOXAKSVRNNAUJZNNBUJZFZWSWOXATVPXFVQXGAUMBUMUKXHWSFZWOWEWIULJZWDMJ
      ZXAXFXGWSWOXKTXFXGWSUNWNXJWDMWDABUOUPUQXIWENEZWINEZWSXKXATXFWSXLXGNNWDAUR
      USXGWSXMXFNNWDBURUTXHWSVAWEWIWDVBVDVCVEVFVGVHVIVPVSWHVQVTWLCARCBRVJVRWBDE
      WCWQVKABVOCWBRVLVMVN $.

    $( The scalar product of a nonnegative real and a positive operator is a
       positive operator.  Exercise 1(ii) of [Retherford] p. 49.  (Contributed
       by NM, 25-Jul-2006.)  (New usage is discouraged.) $)
    leopmuli $p |- ( ( ( A e. RR /\ T e. HrmOp ) /\ ( 0 <_ A /\
                0hop <_op T ) ) -> 0hop <_op ( A .op T ) ) $=
      ( vx cr wcel cho wa cc0 cle wbr ch0o cleo co cfv csp chil wral wb leoppos
      wceq chot cv cmul wi hmopre mulge0 sylanr1 expr an4s anassrs recn anim12i
      cc wf hmopf csm homval 3expa oveq1d ffvelrn adantll simpr ax-his3 syl3anc
      simpll eqtrd sylan breq2d adantlr sylibrd expimpd adantl anbi2d hmopm syl
      ralimdva 3imtr4d imp ) ADEZBFEZGZHAIJZKBLJZGZKABUAMZLJZWAWBHCUBZBNZWGOMZI
      JZCPQZGHWGWENZWGOMZIJZCPQZWDWFWAWBWKWOWAWBGZWJWNCPWPWGPEZGWJHAWIUCMZIJZWN
      WAWBWQWJWSUDZVSWBVTWQWTVSWBGZVTWQGZWJWSXBXAWIDEWJWSWGBUEAWIUFUGUHUIUJWAWQ
      WNWSRWBWAWQGWMWRHIWAAUMEZPPBUNZGZWQWMWRTVSXCVTXDAUKBUOULXEWQGZWMAWHUPMZWG
      OMZWRXFWLXGWGOXCXDWQWLXGTAWGBUQURUSXFXCWHPEZWQXHWRTXCXDWQVEXDWQXIXCPPWGBU
      TVAXEWQVBAWHWGVCVDVFVGVHVIVJVPVKWAWCWKWBVTWCWKRVSCBSVLVMWAWEFEWFWORABVNCW
      ESVOVQVR $.

    $( The scalar product of a positive real and a positive operator is a
       positive operator.  Exercise 1(ii) of [Retherford] p. 49.  (Contributed
       by NM, 23-Aug-2006.)  (New usage is discouraged.) $)
    leopmul $p |- ( ( A e. RR /\ T e. HrmOp /\ 0 < A ) ->
                ( 0hop <_op T <-> 0hop <_op ( A .op T ) ) ) $=
      ( cr wcel cho cc0 clt wbr ch0o cleo chot co wa cle adantr ltle 3adant2 c1
      0re wceq w3a 3simpa 3impia mp3an1 anim1i leopmuli syl2anc cdiv wne gt0ne0
      rereccl syldan hmopm 3adant3 recgt0 wi sylancr mpd jca31 anassrs sylan cc
      cmul recn recid2d oveq1d chil wf 3ad2ant1 hmopf 3ad2ant2 homulass syl3anc
      reccld homulid2 syl 3eqtr3d breqtrd impbida ) ACDZBEDZFAGHZUAZIBJHZIABKLZ
      JHZWCWDMVTWAMZFANHZWDMWFWCWGWDVTWAWBUBOWCWHWDVTWBWHWAFCDZVTWBWHSWIVTWBWHF
      APUCUDQUEABUFUGWCWFMIRAUHLZWEKLZBJWCWJCDZWEEDZMZFWJNHZMWFIWKJHZWCWLWMWOVT
      WBWLWAVTWBAFUIWLAUJZAUKULZQVTWAWMWBABUMUNVTWBWOWAVTWBMZFWJGHZWOAUOWSWIWLW
      TWOUPSWRFWJPUQURQUSWNWOWFWPWJWEUFUTVAWCWKBTWFWCWJAVCLZBKLZRBKLZWKBVTWBXBX
      CTWAWSXARBKWSAVTAVBDZWBAVDZOZWQVEVFQWCWJVBDZXDVGVGBVHZXBWKTVTWBXGWAWSAXFW
      QVNQVTWAXDWBXEVIWAVTXHWBBVJZVKWJABVLVMWAVTXCBTZWBWAXHXJXIBVOVPVKVQOVRVS
      $.

    $( Scalar product applied to operator ordering.  (Contributed by NM,
       12-Aug-2006.)  (New usage is discouraged.) $)
    leopmul2i $p |- ( ( ( A e. RR /\ T e. HrmOp /\ U e. HrmOp ) /\ ( 0 <_ A /\
                T <_op U ) ) -> ( A .op T ) <_op ( A .op U ) ) $=
      ( wcel cho wbr cleo chot co wa ch0o chod wi 3adant1 wb leop3 adantr hmopm
      chil wf w3a cc0 cle simp1 hmopd ancoms leopmuli syl2anc imp syl2an 3impdi
      cr exp32 wceq recn hmopf hosubdi syl3an 3com23 breq2d bitr4d 3imtr4d impr
      cc ) AULDZBEDZCEDZUAZUBAUCFZBCGFZABHIZACHIZGFZVHVIJKCBLIZGFZKAVNHIZGFZVJV
      MVHVIVOVQMZVHVEVNEDZVIVRMVEVFVGUDVFVGVSVEVGVFVSCBUEUFNVEVSJVIVOVQAVNUGUMU
      HUIVHVJVOOZVIVFVGVTVEBCPNQVHVMVQOVIVHVMKVLVKLIZGFZVQVEVFVGVMWBOZVEVFJVKED
      VLEDWCVEVGJABRACRVKVLPUJUKVHVPWAKGVEVGVFVPWAUNZVEAVDDVGSSCTVFSSBTWDAUOCUP
      BUPACBUQURUSUTVAQVBVC $.

    $( The positive operator ordering relation satisfies trichotomy.  Exercise
       1(iii) of [Retherford] p. 49.  (Contributed by NM, 25-Jul-2006.)
       (New usage is discouraged.) $)
    leoptri $p |- ( ( T e. HrmOp /\ U e. HrmOp ) ->
           ( ( T <_op U /\ U <_op T ) <-> T = U ) ) $=
      ( vx cho wcel wa cleo wbr cfv csp co cle chil wral leop2 wb cr hmopre clo
      wceq ancoms anbi12d adantlr adantll letri3d r19.26 syl6rbb hmoplin lnopeq
      cv ralbidva syl2an 3bitrd ) ADEZBDEZFZABGHZBAGHZFCUJZAIUSJKZUSBIUSJKZLHZC
      MNZVAUTLHZCMNZFZUTVATZCMNZABTZUPUQVCURVECABOUOUNURVEPCBAOUAUBUPVHVBVDFZCM
      NVFUPVGVJCMUPUSMEZFUTVAUNVKUTQEUOUSARUCUOVKVAQEUNUSBRUDUEUKVBVDCMUFUGUNAS
      EBSEVHVIPUOAUHBUHCABUIULUM $.

    $( The positive operator ordering relation is transitive.  Exercise 1(iv)
       of [Retherford] p. 49.  (Contributed by NM, 25-Jul-2006.)
       (New usage is discouraged.) $)
    leoptr $p |- ( ( ( S e. HrmOp /\ T e. HrmOp /\ U e. HrmOp ) /\
           ( S <_op T /\ T <_op U ) ) -> S <_op U ) $=
      ( vx cho wcel w3a cleo wbr wa cfv csp co cle chil wral cr hmopre wb leop2
      cv r19.26 wi letr syl3an ralimdva syl5bir 3adant3 3adant1 anbi12d 3adant2
      3anandirs 3imtr4d imp ) AEFZBEFZCEFZGZABHIZBCHIZJZACHIZURDUAZAKVCLMZVCBKV
      CLMZNIZDOPZVEVCCKVCLMZNIZDOPZJZVDVHNIZDOPZVAVBVKVFVIJZDOPURVMVFVIDOUBURVN
      VLDOUOUPUQVCOFZVNVLUCZUOVOJVDQFUPVOJVEQFUQVOJVHQFVPVCARVCBRVCCRVDVEVHUDUE
      ULUFUGURUSVGUTVJUOUPUSVGSUQDABTUHUPUQUTVJSUODBCTUIUJUOUQVBVMSUPDACTUKUMUN
      $.

    $( A bounded Hermitian operator is less than or equal to its norm times the
       identity operator.  (Contributed by NM, 11-Aug-2006.)
       (New usage is discouraged.) $)
    leopnmid $p |- ( ( T e. HrmOp /\ ( normop ` T ) e. RR ) ->
                    T <_op ( ( normop ` T ) .op Iop ) ) $=
      ( vx cho wcel cfv cr wa chio co wbr csp cle chil adantlr recnd sylan cmul
      adantl csm wceq cnop chot cleo wral cabs hmopre abscld idhmop hmopm mpan2
      cv adantll leabsd cno wf ffvelrn normcl syl remulcld bcs sylancom remulcl
      hmopf cc0 sylan2 normge0 jca cbo hmoplin elbdop2 biimpri nmbdoplb lemul1a
      clo syl31anc cc recn ad2antlr mulassd simpr ax-his3 syl3anc sqvald normsq
      cexp eqtr3d oveq2d eqtr4d wf1o hoif f1of mp1i homval hoival eqtrd breqtrd
      c2 oveq1d letrd ralrimiva wb leop2 mpbird ) ACDZAUAEZFDZGZAXEHUBIZUCJZBUK
      ZAEZXJKIZXJXHEZXJKIZLJZBMUDZXGXOBMXGXJMDZGZXLXLUEEZXNXDXQXLFDXFXJAUFZNXDX
      QXSFDXFXDXQGZXLYAXLXTOUGNZXFXQXNFDZXDXFXHCDZXQYCXFHCDYDUHXEHUIUJZXJXHUFPU
      LZXDXQXLXSLJXFYAXLXTUMNXRXSXKUNEZXJUNEZQIZXNYBXRYGYHXDXQYGFDZXFXDMMAUOZXQ
      YJAVCZYKXQGXKMDZYJMMXJAUPZXKUQURPNZXQYHFDZXGXJUQZRZUSYFXDXQXSYILJZXFXDXQY
      MYSXDYKXQYMYLYNPXKXJUTVANXRYIXEYHQIZYHQIZXNLXRYJYTFDZYPVDYHLJZGZYGYTLJZYI
      UUALJYOXFXQUUBXDXQXFYPUUBYQXEYHVBVEULXQUUDXGXQYPUUCYQXJVFVGRXGAVHDZXQUUEX
      DAVNDZXFUUFAVIUUFUUGXFGAVJVKPXJAVLPYGYTYHVMVOXRUUAXEXJSIZXJKIZXNXRUUAXEYH
      YHQIZQIZUUIXRXEYHYHXFXEVPDZXDXQXEVQVRZXRYHYROZUUNVSXRUUIXEXJXJKIZQIZUUKXR
      UULXQXQUUIUUPTUUMXGXQVTZUUQXEXJXJWAWBXQUUKUUPTXGXQUUJUUOXEQXQYHWQWEIUUJUU
      OXQYHXQYHYQOWCXJWDWFWGRWHWHXRXMUUHXJKXRXMXEXJHEZSIZUUHXRUULMMHUOZXQXMUUST
      UUMMMHWIUUTXRWJMMHWKWLUUQXEXJHWMWBXQUUSUUHTXGXQUURXJXESXJWNWGRWOWRWHWPWSW
      SWTXFXDYDXIXPXAYEBAXHXBVEXC $.

    $( A nonzero, bounded Hermitian operator divided by its norm is less than
       or equal to the identity operator.  (Contributed by NM, 12-Aug-2006.)
       (New usage is discouraged.) $)
    nmopleid $p |- ( ( T e. HrmOp /\ ( normop ` T ) e. RR /\ T =/= 0hop ) ->
                    ( ( 1 / ( normop ` T ) ) .op T ) <_op Iop ) $=
      ( cho wcel cr wne c1 co chot chio cleo wbr cc0 sylan adantlr adantll chil
      wa clt wf wceq cnop cfv ch0o clo hmoplin nmlnopne0 biimpar rereccl simpll
      cdiv cle idhmop hmopm mpan2 ad2antlr simplr nmopgt0 biimpa recgt0d wi 0re
      hmopf ltle sylancr mpd leopnmid adantr leopmul2i syl32anc recn cmul reccl
      simpl wf1o hoif f1of ax-mp homulass mp3an3 syl2anc recid2 oveq1d homulid2
      cc eqtr3d syl6eq breqtrd syldan 3impa ) ABCZAUAUBZDCZAUCEZFWKUJGZAHGZIJKZ
      WJWLQZWMWKLEZWPWJWMWRWLWJAUDCZWMWRAUEWSWRWMAUFUGMNWQWRQZWOWNWKIHGZHGZIJWT
      WNDCZWJXABCZLWNUKKZAXAJKZWOXBJKWLWRXCWJWKUHZOWJWLWRUIWLXDWJWRWLIBCXDULWKI
      UMUNUOWTLWNRKZXEWTWKWJWLWRUPWJWRLWKRKZWLWJPPASZWRXIAVBXJWRXIAUQURMNUSWLWR
      XHXEUTZWJWLWRQLDCXCXKVAXGLWNVCVDOVEWQXFWRAVFVGWNAXAVHVIWLWRXBITZWJWLWKWDC
      ZWRXLWKVJXMWRQZXBFIHGZIXNWNWKVKGZIHGZXBXOXNWNWDCZXMXQXBTZWKVLXMWRVMXRXMPP
      ISZXSPPIVNXTVOPPIVPVQZWNWKIVRVSVTXNXPFIHWKWAWBWEXTXOITYAIWCVQWFMOWGWHWI
      $.
  $}

  ${
    $d u v T $.
    opsqrlem1.1 $e |- T e. HrmOp $.
    opsqrlem1.2 $e |- ( normop ` T ) e. RR $.
    opsqrlem1.3 $e |- 0hop <_op T $.
    opsqrlem1.4 $e |- R = ( ( 1 / ( normop ` T ) ) .op T ) $.
    opsqrlem1.5 $e |- ( T =/= 0hop -> E. u e. HrmOp ( 0hop <_op u /\
                      ( u o. u ) = R ) ) $.
    $( Lemma for opsqri .  (Contributed by NM, 9-Aug-2006.)
       (New usage is discouraged.) $)
    opsqrlem1 $p |- ( T =/= 0hop ->
                   E. v e. HrmOp ( 0hop <_op v /\ ( v o. v ) = T ) ) $=
      ( ch0o wbr ccom wceq wa cho wcel chot co chil ax-mp wne cv cleo wrex cnop
      cfv csqrt cr cc0 wf hmopf nmopge0 sqrtcli mpan ad2antlr sqrtge0i leopmuli
      cle hmopm mpanr1 mpanl1 ad2ant2lr recni homulcl syl homco1 mp3an1 syl2anc
      cc clo hmoplin homco2 oveq2d sqrtthi oveq1i fco homulass mp3an12 syl5reqr
      cmul 3eqtrd c1 cdiv id syl6eq wb nmlnopne0 recidzi sylbir rerecclzi recnd
      mp3an13 homulid2 mp1i 3eqtr3d sylan9eqr adantlr eqtrd adantrl breq2 coeq1
      oveq1d coeq2 eqeq1d anbi12d rspcev syl12anc r19.29a ) DJUAZJBUBZUCKZXJXJL
      ZCMZNZJAUBZUCKZXOXOLZDMZNZAOUDZBOXIXJOPZNZXNNDUEUFZUGUFZXJQRZOPZJYEUCKZYE
      YELZDMZXTYAYFXIXNYDUHPZYAYFUIYCURKZYJSSDUJZYKDOPZYLEDUKTZDULTZYCFUMTZYDXJ
      USUNUOYAXKYGXIXMYJYAXKYGYPYJYANUIYDURKZXKYGYKYQYOYCFUPTYDXJUQUTVAVBYBXMYI
      XKYBXMNYHYCXLQRZDYAYHYRMXIXMYAYHYDXJYELZQRZYDYDXLQRZQRZYRYASSXJUJZSSYEUJZ
      YHYTMZXJUKZYAUUCUUDUUFYDVIPZUUCUUDYDYPVCZYDXJVDUNVEUUGUUCUUDUUEUUHYDXJYEV
      FVGVHYAYSUUAYDQYAXJVJPZUUCYSUUAMZXJVKUUFUUGUUIUUCUUJUUHYDXJXJVLVGVHVMYAYR
      YDYDVTRZXLQRZUUBUUKYCXLQYKUUKYCMYOYCFVNTVOYASSXLUJZUULUUBMZYAUUCUUCUUMUUF
      UUFSSSXJXJVPVHUUGUUGUUMUUNUUHUUHYDYDXLVQVRVEVSWAUOXIXMYRDMYAXMXIYRYCWBYCW
      CRZDQRZQRZDXMXLUUPYCQXMXLCUUPXMWDHWEVMXIYCUUOVTRZDQRZWBDQRZUUQDXIUURWBDQX
      IYCUIUAZUURWBMDVJPZUVAXIWFYMUVBEDVKTDWGTZYCYCFVCZWHWIXBXIUUOVIPZUUSUUQMZX
      IUUOXIUVAUUOUHPUVCYCFWJWIWKYCVIPUVEYLUVFUVDYNYCUUODVQWLVEYLUUTDMXIYNDWMWN
      WOWPWQWRWSXSYGYINAYEOXOYEMZXPYGXRYIXOYEJUCWTUVGXQYHDUVGXQYEXOLYHXOYEXOXAX
      OYEYEXCWRXDXEXFXGIXH $.
  $}

  ${
    $d j k F $.  $d w z G $.  $d j k N $.  $d w z S $.  $d w x y z T $.
    $d w z H $.
    opsqrlem2.1 $e |- T e. HrmOp $.
    opsqrlem2.2 $e |- S = ( x e. HrmOp , y e. HrmOp |->
          ( x +op ( ( 1 / 2 ) .op ( T -op ( x o. x ) ) ) ) ) $.
    opsqrlem2.3 $e |- F = seq 1 ( S , ( NN X. { 0hop } ) ) $.
    $( Lemma for opsqri . ` F `` N ` is the recursive function A_n (starting at
       n=1 instead of 0) of Theorem 9.4-2 of [Kreyszig] p. 476.  (Contributed
       by NM, 17-Aug-2006.)  (New usage is discouraged.) $)
    opsqrlem2 $p |- ( F ` 1 ) = 0hop $=
      ( c1 cfv cn ch0o csn cxp cseq fveq1i cz wcel wceq ax-mp 1z seq1 1nn 0hmop
      cho elexi fvconst2 3eqtri ) IEJICKLMNZIOZJZIUIJZLIEUJHPIQRUKULSUACUIIUBTI
      KRULLSUCKLILUEUDUFUGTUH $.

    $( Lemma for opsqri .  (Contributed by NM, 22-Aug-2006.)
       (New usage is discouraged.) $)
    opsqrlem3 $p |- ( ( G e. HrmOp /\ H e. HrmOp ) ->
              ( G S H ) = ( G +op ( ( 1 / 2 ) .op ( T -op ( G o. G ) ) ) ) ) $=
      ( vz vw cho cv co ccom chod chot chos oveq2d c1 cdiv wceq coeq12d oveq12d
      c2 id eqidd cmpt2 weq cbvmpt2v eqtri ovex ovmpt2 ) KLFGMMKNZUAUFUBOZDUOUO
      PZQOZROZSOZFUPDFFPZQOZROZSOZCVDUOFUCZUOFUSVCSVEUGZVEURVBUPRVEUQVADQVEUOFU
      OFVFVFUDTTUELNGUCVDUHCABMMANZUPDVGVGPZQOZROZSOZUIKLMMUTUIIABKLMMVKUTUTAKU
      JZVGUOVJUSSVLUGZVLVIURUPRVLVHUQDQVLVGUOVGUOVMVMUDTTUEBLUJUTUHUKULFVCSUMUN
      $.

    $( Lemma for opsqri .  (Contributed by NM, 17-Aug-2006.)
       (New usage is discouraged.) $)
    opsqrlem4 $p |- F : NN --> HrmOp $=
      ( vz vw cn cho wf ch0o c1 wtru cv wcel 0hmop co csn cxp cseq cfv fvconst2
      nnuz 1zzd elexi syl6eqel adantl cdiv ccom chod chot chos opsqrlem3 halfre
      wa c2 cr wceq simpl eqidd hmopco syl3anc hmopd sylancr hmopm hmops syldan
      eqeltrd seqf trud feq1i mpbir ) KLEMKLCKNUAUBZOUCZMZVRPIJCLVPOKUFPUGIQZKR
      ZVSVPUDZLRPVTWANLKNVSNLSUHUESUIUJVSLRZJQZLRZURZVSWCCTZLRPWEWFVSOUSUKTZDVS
      VSULZUMTZUNTZUOTZLABCDEVSWCFGHUPWBWDWJLRZWKLRWEWGUTRWILRZWLUQWEDLRWHLRZWM
      FWEWBWBWHWHVAWNWBWDVBZWOWEWHVCVSVSVDVEDWHVFVGWGWIVHVGVSWJVIVJVKUJVLVMKLEV
      QHVNVO $.

    $( Lemma for opsqri .  (Contributed by NM, 17-Aug-2006.)
       (New usage is discouraged.) $)
    opsqrlem5 $p |- ( N e. NN -> ( F ` ( N + 1 ) ) =
  ( ( F ` N ) +op ( ( 1 / 2 ) .op ( T -op ( ( F ` N ) o. ( F ` N ) ) ) ) ) ) $=
      ( cn wcel c1 caddc co cfv ch0o wceq fveq1i cho 0hmop csn cxp c2 cdiv ccom
      chod chot chos cseq elnnuz seqp1 sylbi oveq1i opsqrlem4 ffvelrni peano2nn
      cuz 3eqtr4g elexi fvconst2 syl syl6eqel opsqrlem3 syl2anc eqtrd ) FJKZFLM
      NZEOZFEOZVGJPUAUBZOZCNZVILUCUDNDVIVIUEUFNUGNUHNZVFVGCVJLUIZOZFVNOZVKCNZVH
      VLVFFLUQOKVOVQQFUJCVJLFUKULVGEVNIRVIVPVKCFEVNIRUMURVFVISKVKSKVLVMQJSFEABC
      DEGHIUNUOVFVKPSVFVGJKVKPQFUPJPVGPSTUSUTVATVBABCDEVIVKGHIVCVDVE $.

    ${
      opsqrlem6.4 $e |- T <_op Iop $.
      $( Lemma for opsqri .  (Contributed by NM, 23-Aug-2006.)
         (New usage is discouraged.) $)
      opsqrlem6 $p |- ( N e. NN -> ( F ` N ) <_op Iop ) $=
        ( chio cleo co wceq wcel chod c2 chos syl chil vj vk cv cfv caddc fveq2
        wbr breq1d ch0o opsqrlem2 idleop eqbrtri chot ccom cho idhmop opsqrlem4
        c1 cn ffvelrni hmopd sylancr eqid hmopco mp3an3 syl2anc leopsq wb leop3
        mp2an mpbi wa leopadd mpanl2 mpanr2 cdiv wf 2cn hmopf homulcl ax-mp fco
        cc hosubcl hosubsub4 mp3an1 hoadd32 mp3an13 ho2times oveq1i hoaddsubass
        syl6eqr eqtr4d oveq1d hoaddcl mp3an23 3eqtr3d mpanr1 mpanl1 halfcn cmul
        hosubadd4 hoadddi recidi homulass mp3an12 homulid2 3eqtr3a oveq2d eqtrd
        2ne0 3eqtr4d hosubdi hocsubdir clo hmoplin hoid1i hoico2 oveq12d mp3an2
        hoddi a1i hoico1 syl12anc 3eqtr2d opsqrlem5 breqtrd peano2nn cr cc0 clt
        jctil 2re 2pos leopmul mpbird sylancl nn1suc ) UAUCZEUDZKLUGUREUDZKLUGU
        BUCZURUEMZEUDZKLUGZFEUDZKLUGUAUBFYSURNYTUUAKLYSUREUFUHYSUUCNYTUUDKLYSUU
        CEUFUHYSFNYTUUFKLYSFEUFUHUUAUIKLABCDEGHIUJUKULUUBUSOZUUEUIKUUDPMZLUGZUU
        GUUIUIQUUHUMMZLUGZUUGUIKUUBEUDZPMZUUMUNZKDPMZRMZUUJLUUGUUNUOOZUIUUNLUGZ
        UIUUPLUGZUUGUUMUOOZUUTUUQUUGKUOOZUULUOOZUUTUPUSUOUUBEABCDEGHIUQZUTZKUUL
        VAVBZUVEUUTUUTUUNUUNNUUQUUNVCUUMUUMVDVEVFUUGUUTUURUVEUUMVGSUUQUURUIUUOL
        UGZUUSDKLUGZUVFJDUOOZUVAUVGUVFVHGUPDKVIVJVKUUQUUOUOOZUURUVFVLUUSUVAUVHU
        VIUPGKDVAVJUUNUUOVMVNVOVFUUGKUULUULUNZQUULUMMZPMZRMZUUORMZQKUULURQVPMZD
        UVJPMZUMMZRMZPMZUMMZUUPUUJUUGUVNQKUMMZQUVRUMMZPMZUVTUUGUWAUVKPMUVPPMZUW
        AUVKUVPRMZPMZUVNUWCUUGTTUVKVQZTTUVPVQZUWDUWFNZUUGQWCOZTTUULVQZUWGVRUUGU
        VBUWKUVDUULVSSZQUULVTVBZUUGTTDVQZTTUVJVQZUWHUVHUWNGDVSWAZUUGUWKUWKUWOUW
        LUWLTTTUULUULWBVFZDUVJWDVBZTTUWAVQZUWGUWHUWIUWJTTKVQZUWSVRUVAUWTUPKVSWA
        ZQKVTVJZUWAUVKUVPWEWFVFUUGUVNUWAUVJRMZUVKDRMPMZUWDUUGUVMKRMZDPMZUXCUVKP
        MZDPMZUVNUXDUUGUXEUXGDPUUGUXEUWAUVLRMZUXGUUGUXEKKRMZUVLRMZUXIUUGTTUVLVQ
        ZUXEUXKNZUUGUWOUWGUXLUWQUWMUVJUVKWDVFZUWTUXLUWTUXMUXAUXAKUVLKWGWHSUWAUX
        JUVLRUWTUWAUXJNUXAKWIWAWJWLUUGUWOUWGUXGUXINZUWQUWMUWSUWOUWGUXOUXBUWAUVJ
        UVKWKWFVFWMWNUUGTTUVMVQZUXFUVNNZUUGUWTUXLUXPUXAUXNKUVLWOVBUXPUWTUWNUXQU
        XAUWPUVMKDWKWPSUUGTTUXCVQZUWGUXHUXDNZUUGUWSUWOUXRUXBUWQUWAUVJWOVBUWMUXR
        UWGUWNUXSUWPUXCUVKDWEVEVFWQUUGUWGUWOUWDUXDNZUWMUWQUWSUWGUWOUXTUXBUWSUWG
        VLUWNUWOUXTUWPUWAUVKDUVJXBWRWSVFWMUUGUWBUWEUWAPUUGUWBUVKQUVQUMMZRMZUWEU
        UGUWKTTUVQVQZUWBUYBNZUWLUUGUVOWCOZUWHUYCWTUWRUVOUVPVTVBZUWJUWKUYCUYDVRQ
        UULUVQXCWFVFUUGUYAUVPUVKRUUGQUVOXAMZUVPUMMZURUVPUMMZUYAUVPUYGURUVPUMQVR
        XKXDWJUUGUWHUYHUYANZUWRUWJUYEUWHUYJVRWTQUVOUVPXEXFSUUGUWHUYIUVPNUWRUVPX
        GSXHXIXJXIXLUUGTTUVRVQZUVTUWCNZUUGUWKUYCUYKUWLUYFUULUVQWOVFUWJUWTUYKUYL
        VRUXAQKUVRXMXFSWMUUGUUNUVMUUORUUGUUNKUUMUNZUULUUMUNZPMZUVMUUGUWKTTUUMVQ
        ZUUNUYONZUWLUUGUWTUWKUYPUXAUWLKUULWDVBUWTUWKUYPUYQUXAKUULUUMXNWFVFUUGUY
        OKUVJRMZUULUULRMZPMZUYRUVKPMZUVMUUGUYOUUMUULUVJPMZPMZUYTUUGUYMUUMUYNVUB
        PUUGUYMKKUNZKUULUNZPMZUUMUUGUWKUYMVUFNZUWLKXOOZUWTUWKVUGUVAVUHUPKXPWAUX
        AKKUULYAXFSUUGVUDKVUEUULPVUDKNUUGKUXAXQYBUUGUWKVUEUULNUWLUULXRSXSXJUUGU
        YNUULKUNZUVJPMZVUBUUGUULXOOZUWKUYNVUJNZUUGUVBVUKUVDUULXPSUWLVUKUWTUWKVU
        LUXAUULKUULYAXTVFUUGVUIUULUVJPUUGUWKVUIUULNUWLUULYCSWNXJXSUUGUWTUWKVLUW
        KUWOVUCUYTNUUGUWKUWTUWLUXAYLUWLUWQKUULUULUVJXBYDXJUUGUVKUYSUYRPUUGUWKUV
        KUYSNUWLUULWISXIUUGUWOUWGVUAUVMNZUWQUWMUWTUWOUWGVUMUXAKUVJUVKWKWFVFYEXJ
        WNUUGUUHUVSQUMUUGUUDUVRKPABCDEUUBGHIYFXIXIXLYGUUGUUHUOOZUUIUUKVHZUUGUVA
        UUDUOOZVUNUPUUGUUCUSOVUPUUBYHUSUOUUCEUVCUTSZKUUDVAVBQYIOVUNYJQYKUGVUOYM
        YNQUUHYOWHSYPUUGVUPUVAUUEUUIVHVUQUPUUDKVIYQYPYR $.
    $}
  $}

$(
  @{
    opsqrlem8.1 @e |- T e. HrmOp @.
    opsqrlem8.2 @e |- 0hop <_op T @.
    opsqrlem8.3 @e |- T <_op Iop @.
    @( Lemma for ~ opsqri . @)
    opsqrlem8 @p |- E. u e. HrmOp ( 0hop <_op u /\
                    ( u o. u ) = T ) @=
      (  ) ? @.
      @( [ ?] @) @( [17-Aug-2006] @)
  @}

  @{
    @d u T @.
    @( Lemma for ~ opsqri . @)
    opsqrlem9 @p |- ( ( T e. HrmOp /\ 0hop <_op T /\ T <_op Iop ) ->
                 E. u e. HrmOp ( 0hop <_op u /\ ( u o. u ) = T ) ) @=
      ( cho wcel ch0o cleo wbr chio w3a cv ccom wceq wa wrex cif eqeq2 anbi2d
      rexbidv eleq1 breq2 breq1 3anbi123d 0hmop 0leop idleop 3pm3.2i elimhyp
      simp1i simp2i simp3i opsqrlem8 dedth ) BCDZEBFGZBHFGZIZEAJZFGZUQUQKZBL
      ZMZACNURUSUPBEOZLZMZACNBEBVBLZVAVDACVEUTVCURBVBUSPQRAVBVBCDZEVBFGZVBHFGZU
      PVFVGVHIECDZEEFGZEHFGZIBEVEUMVFUNVGUOVHBVBCSBVBEFTBVBHFUAUBEVBLVIVFVJVGVK
      VHEVBCSEVBEFTEVBHFUAUBVIVJVKUCUDUEUFUGZUHVFVGVHVLUIVFVGVHVLUJUKUL @.
      @( [ ?] @) @( [8-Aug-2006] @)
  @}

  @{
    @d u v T @.
    opsqr.1 @e |- T e. HrmOp @.
    opsqr.2 @e |- ( normop ` T ) e. RR @.
    opsqr.3 @e |- 0hop <_op T @.
    @( Square root lemma. @)
    opsqri @p |- E. u e. HrmOp ( 0hop <_op u /\
                    ( u o. u ) = T ) @=
      ( vv ch0o wceq cv cleo wbr ccom wa cho wrex eqid eqeq2 anbi2d rexbidv
      wne c1 cnop cfv cdiv co chot wcel chio opsqrlem9 cr cc0 clo hmoplin
      ax-mp nmlnop0iHIL biimpi necon3i rerecclzi syl hmopm mpan2 cle leopmuli
  mpanr2 mpanl2 clt wi 0re ltle mpan nmlnopgt0i recgt0i sylbi sylcOLD sylancOLD
    nmopleid mp3an12 syl3ancOLD opsqrlem1 adantl 0hmop 0leop ho0f ho0coi pm3.2i
      breq2 coeq1 coeq2 eqtrd eqeq1d anbi12d rspcev mp2an a1i pm2.61ne ) GGHZG
      AIZJKZWQWQLZBHZMZANOZGPWPXBWRWSGHZMZANOZBGBGHZXAXDANXFWTXCWRBGWSQRSBGTZXB
      WPAFUABUBUCZUDUEZBUFUEZBCDEXJPXJNUGZGXJJKZXJUHJKZGFIZJKXNXNLXJHMFNOXGFXJU
      IXGXIUJUGZXKXGXHUKTXOXHUKBGXHUKHXFBBNUGZBULUGCBUMUNZUOUPUQXHDURUSZXOXPXKC
      XIBUTVAUSXOUKXIVBKZXLXGXOXPXSXLCXOXPMXSGBJKXLEXIBVCVDVEXRXOUKXIVFKZXSXGUK
      UJUGXOXTXSVGVHUKXIVIVJXRXGUKXHVFKXTBXQVKXHDVLVMVNVOXPXHUJUGXGXMCDBVPVQVRV
      SVTXEWPGNUGGGJKZGGLZGHZMZXEWAYAYCWBGWCWDWEXDYDAGNWQGHZWRYAXCYCWQGGJWFYEWS
      YBGYEWSGWQLYBWQGWQWGWQGGWHWIWJWKWLWMWNWOUN @.
      @( [ ?] @) @( [8-Aug-2006] @)
  @}
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Projectors as operators
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d w x y z H $.
    pjhmop.1 $e |- H e. CH $.
    $( A projector is a Hermitian operator.  (Contributed by NM, 24-Mar-2006.)
       (New usage is discouraged.) $)
    pjhmopi $p |- ( projh ` H ) e. HrmOp $=
      ( vx vy cpjh cfv cho wcel chil wf csp wceq wral pjfi pjadji eqcomd rgen2a
      cv co wa elhmop mpbir2an ) AEFZGHIIUCJCRZDRZUCFKSZUDUCFUEKSZLZDIMCIMABNUH
      CDIUDIHUEIHTUGUFUDUEABOPQCDUCUAUB $.

    $( A projector is a linear operator.  (Contributed by NM, 24-Mar-2006.)
       (New usage is discouraged.) $)
    pjlnopi $p |- ( projh ` H ) e. LinOp $=
      ( cpjh cfv cho wcel clo pjhmopi hmoplin ax-mp ) ACDZEFKGFABHKIJ $.

    $( The operator norm of a projector on a nonzero closed subspace is one.
       Part of Theorem 26.1 of [Halmos] p. 43.  (Contributed by NM,
       9-Apr-2006.)  (New usage is discouraged.) $)
    pjnmopi $p |- ( H =/= 0H -> ( normop ` ( projh ` H ) ) = 1 ) $=
      ( vy vx vz vw cfv cv cno c1 cle wbr wceq wa chil wrex cxr clt cr wcel c0h
      wne cpjh cnop cab csup wf pjfi nmopval ax-mp wral wi eqeq1 anbi2d rexbidv
      vex elab cch pjnorm mpan pjhcli normcl syl 1re mp3an3 syl2anc mpand breq1
      letr imp biimparc sylan expl rexlimiv sylbi rgen cheli adantr eqle fveq2d
      simpr eqtr2d jca32 reximi2 c0v chne0i chshii norm1exi bitri 3imtr4i breq2
      pjid 1ex rspcev ex ralrimivw wss nmopsetretHIL ressxr sstri rexri mpanl12
      supxr2 sylancr syl5eq ) AUAUBZAUCGZUDGZCHZIGZJKLZDHZXIXGGZIGZMZNZCOPZDUEZ
      QRUFZJOOXGUGZXHXSMABUHZDCXGUIUJXFEHZJKLZEXRUKZYBJRLZYBFHZRLZFXRPZULZESUKZ
      XSJMZYCEXRYBXRTXKYBXNMZNZCOPZYCXQYNDYBEUPXLYBMZXPYMCOYOXOYLXKXLYBXNUMUNUO
      UQYMYCCOXIOTZXKYLYCYPXKNXNJKLZYLYCYPXKYQYPXNXJKLZXKYQAURTZYPYRBXIAUSUTYPX
      NSTZXJSTZYRXKNYQULZYPXMOTYTXIABVAXMVBVCXIVBZYTUUAJSTUUBVDXNXJJVIVEVFVGVJY
      LYCYQYBXNJKVHVKVLVMVNVOVPXFYIESXFYEYHXFJXRTZYEYHXJJMZCAPZXKJXNMZNZCOPZXFU
      UDUUEUUHCAOXIATZUUENZYPXKUUGUUJYPUUEXIABVQZVRUUJUUAUUEXKUUJYPUUAUULUUCVCX
      JJVSVLUUKXNXJJUUJXNXJMUUEUUJXMXIIYSUUJXMXIMBXIAWLUTVTVRUUJUUEWAWBWCWDXFXI
      WEUBCAPUUFCABWFCCAABWGWHWIXQUUIDJWMXLJMZXPUUHCOUUMXOUUGXKXLJXNUMUNUOUQWJY
      GYEFJXRYFJYBRWKWNVLWOWPXRQWQJQTYDYJNYKXRSQXTXRSWQYADCXGWRUJWSWTJVDXAEFXRJ
      XCXBXDXE $.

    $( A projector is a bounded linear operator.  (Contributed by NM,
       3-Jun-2006.)  (New usage is discouraged.) $)
    pjbdlni $p |- ( projh ` H ) e. BndLinOp $=
      ( cpjh cfv cbo wcel clo cnop pjlnopi cch c0h wceq fveq2 fveq2d eleq1d wne
      cr c1 cc0 ch0o pjnmopi 1re adantl df-h0op fveq2i nmop0 eqtr3i 0re eqeltri
      syl6eqel a1i pm2.61ne ax-mp elbdop2 mpbir2an ) ACDZEFUPGFUPHDZQFZABIAJFZU
      RBUSURKCDZHDZQFZAKAKLZUQVAQVCUPUTHAKCMNOAKPZURUSVDUQRQABUAUBUJUCVBUSVASQT
      HDVASTUTHUDUEUFUGUHUIUKULUMUPUNUO $.
  $}

  $( A projection is a Hermitian operator.  (Contributed by NM, 24-Apr-2006.)
     (New usage is discouraged.) $)
  pjhmop $p |- ( H e. CH -> ( projh ` H ) e. HrmOp ) $=
    ( cch wcel cpjh cfv cho c0h wceq fveq2 eleq1d h0elch elimel pjhmopi dedth
    cif ) ABCZADEZFCPAGOZDEZFCAGARHQSFARDIJRAGBKLMN $.

  ${
    $d f k x y z T $.
    hmopidmch.1 $e |- T e. HrmOp $.
    hmopidmch.2 $e |- ( T o. T ) = T $.
    $( An idempotent Hermitian operator generates a closed subspace.  Part of
       proof of Theorem of [AkhiezerGlazman] p. 64.  (Contributed by NM,
       21-Apr-2006.)  (Proof shortened by Mario Carneiro, 19-May-2014.)
       (New usage is discouraged.) $)
    hmopidmchi $p |- ran T e. CH $=
      ( vf vx vy vk wcel cn cv wf ax-mp cfv cmv co c0v wceq chil eqid wb crn wa
      cch csh chli wbr wi wal cho clo hmoplin rnelshi csn cxp cno ccom cxmt cha
      cmopn hilxmet methaus mp1i cmpt clm cmap cres cva csm hhims resss eqsstri
      cop hhlm adantl ctopon mopntopon ccn lnopfi a1i feqmptd ccop hmopbdoptHIL
      ssbri cbo lnopcnbd mpbir eleqtri syl6eqelr cnmptid cnv ctx hhnv hhvs vmcn
      hhcno cnmpt12f lmcn wral wss simpl shssii sylancl ffvelrnda fveq2 oveq12d
      fss id ovex fvmpt syl wfn ffn eqeq12d ralrn fveq1i hocoi syl5reqr mprgbir
      ffvelrn adantlr rspccv mpsyl eqeltrd hvsubeq0 mpbird eqtrd fvco3 ax-hv0cl
      syl2anc elexi fvconst2 3eqtr4d ralrimiva fnmpti sylancr fconst eqfnfv vex
      fnfco c1 hlimveci 3brtr3d cz 1zzd lmconst syl3anc ffvelrni mpbid fnfvelrn
      nnuz lmmo eqeltrrd gen2 isch2 mpbir2an ) AUAZUCHUUPUDHIUUPDJZKZUUQEJZUEUF
      ZUBZUUSUUPHUGZEUHDUHAAUIHZAUJHZBAUKLZULZUVBDEUVAUUSAMZUUSUUPUVAUVGUUSNOZP
      QZUVGUUSQZUVAUVHPIPUMZUNZUONUPZUSMZUVMRUQMHZUVNURHUVAUVMUVMSZUTZUVMUVNRUV
      NSZVAVBUVAFRFJZAMZUVSNOZVCZUUQUPZUUSUWBMZUVLUVHUVNVDMZUVAUUSUUQUWBUVNUVNU
      UTUUQUUSUWEUFUURUEUWEUUQUUSUEUWERIVEOZVFUWEUVMVGVHVLUOVLZUVNUWGSZUVMUWGUW
      HUVPVIZUVRVMUWEUWFVJVKWCVNUVAFUVTUVSNUVNUVNUVNUVNRUVOUVNRVOMHZUVAUVQUVMUV
      NRUVRVPVBZUVAFRUVTVCAUVNUVNVQOZUVAFRRARRAKZUVAAUVEVRZVSVTAWAUWLAWAHZAWDHZ
      UVCUWPBAWBLUVDUWOUWPTUVEAWELWFUVMUVNUVPUVRWOWGWHUVAFUVNRUWKWIUWGWJHNUVNUV
      NWKOUVNVQOHUVAUWGUWHWLUVMUWGUVNNUWIUVRUWGUWHWMWNVBWPWQUVAUWCUVLQZGJZUWCMZ
      UWRUVLMZQZGIWRZUVAUXAGIUVAUWRIHZUBZUWRUUQMZUWBMZPUWSUWTUXDUXFUXEAMZUXENOZ
      PUXDUXERHZUXFUXHQUVAIRUWRUUQUVAUURUUPRWSIRUUQKZUURUUTWTUUPUVFXAIUUPRUUQXF
      XBZXCZFUXEUWAUXHRUWBUVSUXEQZUVTUXGUVSUXENUVSUXEAXDZUXMXGZXEUWBSZUXGUXENXH
      XIXJUXDUXHPQZUXGUXEQZUVTUVSQZFUUPWRZUXDUXEUUPHZUXRUXTUVGAMZUVGQZERARXKZUX
      TUYCERWRTUWMUYDUWNRRAXLLZUXSUYCFERAUVSUVGQZUVTUYBUVSUVGUVSUVGAXDUYFXGXMXN
      LUUSRHZUVGUUSAAUPZMUYBUUSUYHACXOUUSAAUWNUWNXPXQXRUURUXCUYAUUTIUUPUWRUUQXS
      XTUXSUXRFUXEUUPUXMUVTUXGUVSUXEUXNUXOXMYAYBZUXDUXGRHUXIUXQUXRTUXDUXGUXERUY
      IUXLYCUXLUXGUXEYDYIYEYFUURUXCUWSUXFQUUTIUUPUWRUWBUUQYGXTUXCUWTPQUVAIPUWRP
      RYHYJZYKVNYLYMUVAUWCIXKZUVLIXKZUWQUXBTUVAUWBRXKUXJUYKFRUWAUWBUVTUVSNXHUXP
      YNUXKRIUWBUUQYSYOIUVKUVLKUYLIPUYJYPIUVKUVLXLLGIUWCUVLYQXBYEUVAUYGUWDUVHQU
      UTUYGUURUUSUUQEYRUUAVNZFUUSUWAUVHRUWBUVSUUSQZUVTUVGUVSUUSNUVSUUSAXDUYNXGX
      EUXPUVGUUSNXHXIXJUUBUVAUWJPRHZYTUUCHUVLPUWEUFUWKUYOUVAYHVSUVAUUDPUVNYTRIU
      UJUUEUUFUUKUVAUVGRHZUYGUVIUVJTUVAUYGUYPUYMRRUUSAUWNUUGXJUYMUVGUUSYDYIUUHU
      VAUYDUYGUVGUUPHUYEUYMRUUSAUUIYOUULUUMEDUUPUUNUUO $.

    $( An idempotent Hermitian operator is a projection operator.  Theorem 26.4
       of [Halmos] p. 44.  (Halmos seems to omit the proof that ` H ` is a
       closed subspace, which is not trivial as ~ hmopidmchi shows.)
       (Contributed by NM, 22-Apr-2006.)  (Revised by Mario Carneiro,
       19-May-2014.)  (New usage is discouraged.) $)
    hmopidmpji $p |- T = ( projh ` ran T ) $=
      ( vx vz vy cfv wceq cv chil wfn wral wb wcel ax-mp csp cc0 syl2anc cmin
      co crn cpjh wf cho clo hmoplin lnopfi ffn hmopidmchi pjfni eqfnfv cmv cva
      mp2an cort fnfvelrn mpan id ffvelrni hvsubcl simpl adantr his2sub syl3anc
      adantl hmop mp3an1 sylan2 ccom fveq1i hocoi syl5reqr oveq2d eqtr3d subidd
      wa cc hicl 3eqtrd ralrimiva oveq2 eqeq1d ralrn sylibr wss chssii sylanbrc
      ocel pjcompi hvpncan3 fveq2d mprgbir ) AAUAZUBGZHZDIZAGZWPWNGZHZDJAJKZWNJ
      KWOWSDJLMJJAUCWTAAUDNZAUENBAUFOUGZJJAUHOZWMABCUIZUJDJAWNUKUNWPJNZWQWPWQUL
      TZUMTZWNGZWQWRXEWQWMNZXFWMUOGNZXHWQHWTXEXIXCJWPAUPUQXEXFJNZXFEIZPTZQHZEWM
      LZXJXEXEWQJNZXKXEURZJJWPAXBUSZWPWQUTRXEXFFIZAGZPTZQHZFJLZXOXEYBFJXEXSJNZV
      PZYAWPXTPTZWQXTPTZSTZYFYFSTQYEXEXPXTJNZYAYHHXEYDVAXEXPYDXRVBYDYIXEJJXSAXB
      USZVEWPWQXTVCVDYEYGYFYFSYEWPXTAGZPTZYGYFYDXEYIYLYGHZYJXAXEYIYMBWPXTAVFVGV
      HYEYKXTWPPYDYKXTHXEYDXTXSAAVIZGYKXSYNACVJXSAAXBXBVKVLVEVMVNVMYEYFYDXEYIYF
      VQNYJWPXTVRVHVOVSVTWTXOYCMXCXNYBEFJAXLXTHXMYAQXLXTXFPWAWBWCOWDWMJWEXJXKXO
      VPMWMXDWFEXFWMWHOWGWQXFWMXDWIRXEXGWPWNXEXPXEXGWPHXRXQWQWPWJRWKVNWL $.
  $}

  $( An idempotent Hermitian operator generates a closed subspace.  Part of
     proof of Theorem of [AkhiezerGlazman] p. 64.  (Contributed by NM,
     24-Apr-2006.)  (New usage is discouraged.) $)
  hmopidmch $p |- ( ( T e. HrmOp /\ ( T o. T ) = T ) -> ran T e. CH ) $=
    ( cho wcel ccom wceq wa crn cch chio cif rneq eleq1 coeq12d eqeq12d anbi12d
    eleq1d id idhmop chil wf1o wf hoif f1of hoid1i pm3.2i elimhyp simpli simpri
    ax-mp hmopidmchi dedth ) ABCZAADZAEZFZAGZHCUOAIJZGZHCAIAUQEZUPURHAUQKPUQUQB
    CZUQUQDZUQEZUOUTVBFIBCZIIDZIEZFAIUSULUTUNVBAUQBLUSUMVAAUQUSAUQAUQUSQZVFMVFN
    OIUQEZVCUTVEVBIUQBLVGVDVAIUQVGIUQIUQVGQZVHMVHNOVCVERISSITSSIUAUBSSIUCUIUDUE
    UFZUGUTVBVIUHUJUK $.

  $( An idempotent Hermitian operator is a projection operator.  Theorem 26.4
     of [Halmos] p. 44.  (Contributed by NM, 22-Apr-2006.)
     (New usage is discouraged.) $)
  hmopidmpj $p |- ( ( T e. HrmOp /\ ( T o. T ) = T ) ->
                  T = ( projh ` ran T ) ) $=
    ( cho wcel ccom wceq wa crn cpjh cfv chio cif id rneq eqeq12d eleq1 coeq12d
    fveq2d anbi12d idhmop chil wf1o hoif f1of ax-mp hoid1i pm3.2i simpli simpri
    wf elimhyp hmopidmpji dedth ) ABCZAADZAEZFZAAGZHIZEUPAJKZUSGZHIZEAJAUSEZAUS
    URVAVBLZVBUQUTHAUSMQNUSUSBCZUSUSDZUSEZUPVDVFFJBCZJJDZJEZFAJVBUMVDUOVFAUSBOV
    BUNVEAUSVBAUSAUSVCVCPVCNRJUSEZVGVDVIVFJUSBOVJVHVEJUSVJJUSJUSVJLZVKPVKNRVGVI
    SJTTJUATTJUIUBTTJUCUDUEUFUJZUGVDVFVLUHUKUL $.

  ${
    $d x H $.  $d x S $.  $d x T $.
    pjsdi.1 $e |- H e. CH $.
    pjsdi.2 $e |- S : ~H --> ~H $.
    pjsdi.3 $e |- T : ~H --> ~H $.
    $( Distributive law for Hilbert space operator sum.  (Contributed by NM,
       12-Nov-2000.)  (New usage is discouraged.) $)
    pjsdii $p |- ( ( projh ` H ) o. ( S +op T ) ) =
                ( ( ( projh ` H ) o. S ) +op ( ( projh ` H ) o. T ) ) $=
      ( vx cfv chos co ccom wceq chil wcel cva ffvelrni wf hosval hocoi hocofi
      cv cpjh wral pjaddi syl2anc mp3an12 fveq2d oveq12d 3eqtr4d hoaddcli hoeqi
      pjfi rgen mpbi ) GUAZCUBHZABIJZKZHZUOUPAKZUPBKZIJZHZLZGMUCURVBLVDGMUOMNZU
      OUQHZUPHZUOUTHZUOVAHZOJZUSVCVEUOAHZUOBHZOJZUPHZVKUPHZVLUPHZOJZVGVJVEVKMNV
      LMNVNVQLMMUOAEPMMUOBFPVKVLCDUDUEVEVFVMUPMMAQMMBQVEVFVMLEFUOABRUFUGVEVHVOV
      IVPOUOUPACDULZESUOUPBVRFSUHUIUOUPUQVRABEFUJZSMMUTQMMVAQVEVCVJLUPAVRETZUPB
      VRFTZUOUTVARUFUIUMGURVBUPUQVRVSTUTVAVTWAUJUKUN $.

    $( Distributive law for Hilbert space operator difference.  (Contributed by
       NM, 24-Nov-2000.)  (New usage is discouraged.) $)
    pjddii $p |- ( ( projh ` H ) o. ( S -op T ) ) =
                ( ( ( projh ` H ) o. S ) -op ( ( projh ` H ) o. T ) ) $=
      ( vx cfv chod co ccom wceq chil wcel cmv ffvelrni wf hodval hocoi hocofi
      cv cpjh wral pjsubi syl2anc mp3an12 fveq2d oveq12d 3eqtr4d hosubcli hoeqi
      pjfi rgen mpbi ) GUAZCUBHZABIJZKZHZUOUPAKZUPBKZIJZHZLZGMUCURVBLVDGMUOMNZU
      OUQHZUPHZUOUTHZUOVAHZOJZUSVCVEUOAHZUOBHZOJZUPHZVKUPHZVLUPHZOJZVGVJVEVKMNV
      LMNVNVQLMMUOAEPMMUOBFPVKVLCDUDUEVEVFVMUPMMAQMMBQVEVFVMLEFUOABRUFUGVEVHVOV
      IVPOUOUPACDULZESUOUPBVRFSUHUIUOUPUQVRABEFUJZSMMUTQMMVAQVEVCVJLUPAVRETZUPB
      VRFTZUOUTVARUFUIUMGURVBUPUQVRVSTUTVAVTWAUJUKUN $.
  $}

  ${
    pjsdi2.1 $e |- H e. CH $.
    pjsdi2.2 $e |- R : ~H --> ~H $.
    pjsdi2.3 $e |- S : ~H --> ~H $.
    pjsdi2.4 $e |- T : ~H --> ~H $.
    $( Chained distributive law for Hilbert space operator difference.
       (Contributed by NM, 30-Nov-2000.)  (New usage is discouraged.) $)
    pjsdi2i $p |- ( ( R o. ( S +op T ) ) = ( ( R o. S ) +op ( R o. T ) )
     -> ( ( ( projh ` H ) o. R ) o. ( S +op T ) ) = ( ( ( ( projh ` H ) o. R )
         o. S ) +op ( ( ( projh ` H ) o. R ) o. T ) ) ) $=
      ( chos co ccom wceq cpjh cfv coeq2 hocofi pjsdii syl6eq coass oveq12i
      3eqtr4g ) ABCIJZKZABKZACKZIJZLZDMNZUCKZUHUDKZUHUEKZIJZUHAKZUBKUMBKZUMCKZI
      JUGUIUHUFKULUCUFUHOUDUEDEABFGPACFHPQRUHAUBSUNUJUOUKIUHABSUHACSTUA $.
  $}

  ${
    $d x y H $.  $d x y G $.
    pjco.1 $e |- G e. CH $.
    pjco.2 $e |- H e. CH $.
    $( Composition of projections.  (Contributed by NM, 16-Aug-2000.)
       (New usage is discouraged.) $)
    pjcoi $p |- ( A e. ~H -> ( ( ( projh ` G ) o. ( projh ` H ) ) ` A ) =
               ( ( projh ` G ) ` ( ( projh ` H ) ` A ) ) ) $=
      ( cpjh cfv pjfi hocoi ) ABFGCFGBDHCEHI $.

    $( Closure of composition of projections.  (Contributed by NM,
       29-Nov-2000.)  (New usage is discouraged.) $)
    pjcocli $p |- ( A e. ~H ->
                 ( ( ( projh ` G ) o. ( projh ` H ) ) ` A ) e. G ) $=
      ( chil wcel cpjh cfv ccom pjcoi pjhcli pjcli syl eqeltrd ) AFGZABHIZCHIZJ
      IARIZQIZBABCDEKPSFGTBGACELSBDMNO $.

    $( Closure of composition of projections.  (Contributed by NM, 7-Oct-2000.)
       (New usage is discouraged.) $)
    pjcohcli $p |- ( A e. ~H ->
                 ( ( ( projh ` G ) o. ( projh ` H ) ) ` A ) e. ~H ) $=
      ( cpjh cfv pjfi hococli ) ABFGCFGBDHCEHI $.

    $( Adjoint of composition of projections.  Special case of Theorem
       3.11(viii) of [Beran] p. 106.  (Contributed by NM, 6-Oct-2000.)
       (New usage is discouraged.) $)
    pjadjcoi $p |- ( ( A e. ~H /\ B e. ~H ) ->
                  ( ( ( ( projh ` G ) o. ( projh ` H ) ) ` A ) .ih B ) =
                  ( A .ih ( ( ( projh ` H ) o. ( projh ` G ) ) ` B ) ) ) $=
      ( chil wcel wa cpjh cfv csp co ccom wceq pjhcli pjadji sylan sylan2 pjcoi
      eqtrd oveq1d adantr oveq2d adantl 3eqtr4d ) AGHZBGHZIZADJKZKZCJKZKZBLMZAB
      ULKZUJKZLMZAULUJNKZBLMZABUJULNKZLMZUIUNUKUOLMZUQUGUKGHUHUNVBOADFPUKBCEQRU
      HUGUOGHVBUQOBCEPAUODFQSUAUGUSUNOUHUGURUMBLACDEFTUBUCUHVAUQOUGUHUTUPALBDCF
      ETUDUEUF $.

    $( Functionality of composition of projections.  (Contributed by NM,
       1-Oct-2000.)  (New usage is discouraged.) $)
    pjcofni $p |- ( ( projh ` G ) o. ( projh ` H ) ) Fn ~H $=
      ( cpjh cfv pjfi hocofni ) AEFBEFACGBDGH $.

    $( Subset relationship for projections.  Theorem 4.5(i)<->(iii) of [Beran]
       p. 112.  (Contributed by NM, 1-Oct-2000.)
       (New usage is discouraged.) $)
    pjss1coi $p |- ( G C_ H <->
                 ( ( projh ` H ) o. ( projh ` G ) ) = ( projh ` G ) ) $=
      ( vx wss cpjh cfv ccom wceq cv chil wral wcel pjcoi adantl pjfi crn pjrni
      wa cch pjcli ssel2 sylan2 pjid sylancr eqtrd ralrimiva hocofi hoeqi sylib
      rneq rncoss syl6eqssr 3sstr3g impbii ) ABFZBGHZAGHZIZUSJZUQEKZUTHZVBUSHZJ
      ZELMVAUQVEELUQVBLNZTZVCVDURHZVDVFVCVHJUQVBBADCOPVGBUANVDBNZVHVDJDVFUQVDAN
      VIVBACUBABVDUCUDVDBUEUFUGUHEUTUSURUSBDQACQZUIVJUJUKVAUSRZURRZABVAVKUTRVLU
      TUSULURUSUMUNACSBDSUOUP $.

    $( Subset relationship for projections.  Theorem 4.5(i)<->(ii) of [Beran]
       p. 112.  (Contributed by NM, 7-Oct-2000.)
       (New usage is discouraged.) $)
    pjss2coi $p |- ( G C_ H <->
                 ( ( projh ` G ) o. ( projh ` H ) ) = ( projh ` G ) ) $=
      ( vx vy cpjh cfv ccom wceq cv chil wral wcel wa wi c0v fveq2 csp co pjcoi
      wss adantl cif fveq2d eqeq12d imbi2d ifhvhv0 pjss2i dedth eqtrd ralrimiva
      impcom hocofi hoeqi sylib oveq2d ad2antlr pjadjcoi adantlr pjadji 3eqtr4d
      pjfi fveq1 exp31 ralrimdv wb pjcohcli pjhcli hial2eq syl2anc sylibd com12
      ralrimiv pjss1coi sylibr impbii ) ABUBZAGHZBGHZIZVSJZVREKZWAHZWCVSHZJZELM
      WBVRWFELVRWCLNZOWDWCVTHZVSHZWEWGWDWIJVRWCABCDUAUCWGVRWIWEJZWGVRWJPVRWGWCQ
      UDZVTHZVSHZWKVSHZJZPWCQWCWKJZWJWOVRWPWIWMWEWNWPWHWLVSWCWKVTRUEWCWKVSRUFUG
      WKBACWCUHDUIUJUMUKULEWAVSVSVTACVCZBDVCZUNWQUOUPWBVTVSIZVSJZVRWBWCWSHZWEJZ
      ELMWTWBXBELWGWBXBWGWBXAFKZSTZWEXCSTZJZFLMZXBWGWBXFFLWGWBXCLNZXFWGWBOXHOWC
      XCWAHZSTZWCXCVSHZSTZXDXEWBXJXLJWGXHWBXIXKWCSXCWAVSVDUQURWGXHXDXJJWBWCXCBA
      DCUSUTWGXHXEXLJWBWCXCACVAUTVBVEVFWGXALNWELNXGXBVGWCBADCVHWCACVIFXAWEVJVKV
      LVMVNEWSVSVTVSWRWQUNWQUOUPABCDVOVPVQ $.

    $( Projection meet property.  Remark in [Kalmbach] p. 66.  Also Theorem
       4.5(i)->(iv) of [Beran] p. 112.  (Contributed by NM, 26-Sep-2001.)
       (New usage is discouraged.) $)
    pjssmi $p |- ( A e. ~H -> ( H C_ G ->
               ( ( ( projh ` G ) ` A ) -h ( ( projh ` H ) ` A ) )
                = ( ( projh ` ( G i^i ( _|_ ` H ) ) ) ` A ) ) ) $=
      ( chil wcel wss cpjh cfv cmv co cort cin wceq wi c0v cif fveq2 oveq12d
      eqeq12d imbi2d ifhvhv0 pjssmii dedth ) AFGZCBHZABIJZJZACIJZJZKLZABCMJNIJZ
      JZOZPUGUFAQRZUHJZUPUJJZKLZUPUMJZOZPAQAUPOZUOVAUGVBULUSUNUTVBUIUQUKURKAUPU
      HSAUPUJSTAUPUMSUAUBUPBCEAUCDUDUE $.

    $( Theorem 4.5(iv)->(v) of [Beran] p. 112.  (Contributed by NM,
       26-Sep-2001.)  (New usage is discouraged.) $)
    pjssge0i $p |- ( A e. ~H ->
                 ( ( ( ( projh ` G ) ` A ) -h ( ( projh ` H ) ` A ) )
                  = ( ( projh ` ( G i^i ( _|_ ` H ) ) ) ` A ) ->
       0 <_ ( ( ( ( projh ` G ) ` A ) -h ( ( projh ` H ) ` A ) ) .ih A ) ) ) $=
      ( chil wcel cpjh cfv cmv co wceq cc0 csp cle wbr wi c0v fveq2 oveq12d cin
      cort cif eqeq12d id breq2d imbi12d ifhvhv0 pjssge0ii dedth ) AFGZABHIZIZA
      CHIZIZJKZABCUBIUAHIZIZLZMUPANKZOPZQUKARUCZULIZVBUNIZJKZVBUQIZLZMVEVBNKZOP
      ZQARAVBLZUSVGVAVIVJUPVEURVFVJUMVCUOVDJAVBULSAVBUNSTZAVBUQSUDVJUTVHMOVJUPV
      EAVBNVKVJUETUFUGVBBCEAUHDUIUJ $.

    $( Theorem 4.5(v)<->(vi) of [Beran] p. 112.  (Contributed by NM,
       26-Sep-2001.)  (New usage is discouraged.) $)
    pjdifnormi $p |- ( A e. ~H -> ( 0 <_
                ( ( ( ( projh ` G ) ` A ) -h ( ( projh ` H ) ` A ) ) .ih A )
        <->
  ( normh ` ( ( projh ` H ) ` A ) ) <_ ( normh ` ( ( projh ` G ) ` A ) ) ) ) $=
      ( chil cc0 cpjh cfv cmv co csp cle wbr cno wb c0v fveq2 oveq12d fveq2d id
      wcel cif wceq breq2d breq12d bibi12d ifhvhv0 pjdifnormii dedth ) AFUBZGAB
      HIZIZACHIZIZJKZALKZMNZUOOIZUMOIZMNZPGUKAQUCZULIZVBUNIZJKZVBLKZMNZVDOIZVCO
      IZMNZPAQAVBUDZURVGVAVJVKUQVFGMVKUPVEAVBLVKUMVCUOVDJAVBULRZAVBUNRZSVKUASUE
      VKUSVHUTVIMVKUOVDOVMTVKUMVCOVLTUFUGVBBCEAUHDUIUJ $.

    $( Theorem 4.5(i)<->(vi) of [Beran] p. 112.  (Contributed by NM,
       26-Sep-2001.)  (New usage is discouraged.) $)
    pjnormssi $p |- ( G C_ H <-> A. x e. ~H ( normh ` ( ( projh ` G ) ` x ) )
        <_ ( normh ` ( ( projh ` H ) ` x ) ) ) $=
      ( wss cpjh cfv cno cle wbr chil wcel cc0 co wceq wi wa syl wb cv wral cmv
      csp cort cin pjssmi pjssge0i pjdifnormi sylibd com12 ralrimiv wal choccli
      syld cheli breq2 biimpac pjhcli normge0 normcl 0re letri3 biimprd sylancl
      cr sylan2i anabsi6 sylan2 expr c0v norm-i cch pjoc2 bitr4d adantr 3imtr3d
      mpan a2i syl5 pm2.43d alimi df-ral dfss2 3imtr4i chsscon3i sylibr impbii
      ex ) BCFZAUAZBGHHZIHZWKCGHHZIHZJKZALUBZWJWPALWKLMZWJWPWRWJNWNWLUCOZWKUDOJ
      KZWPWRWJWSWKCBUEHZUFGHHPWTWKCBEDUGWKCBEDUHUOWKCBEDUIUJUKULWQCUEHZXAFZWJWR
      WPQZAUMWKXBMZWKXAMZQZAUMWQXCXDXGAXDXEXFXEWRXDXGWKXBCEUNUPWRWPXGWRWPXGWRWP
      RWONPZWMNPZXEXFWRWPXHXIWPXHRWRWMNJKZXIXHWPXJWONWMJUQURWRXJXIWRWRXJNWMJKZX
      IWRWLLMZXKWKBDUSZWLUTSWRWMVFMZNVFMZXJXKRZXIQWRXLXNXMWLVASVBXNXORXIXPWMNVC
      VDVEVGVHVIVJWRXHXETWPWRXHWNVKPZXEWRWNLMXHXQTWKCEUSWNVLSCVMMWRXEXQTEWKCVNV
      RVOVPWRXIXFTWPWRXIWLVKPZXFWRXLXIXRTXMWLVLSBVMMWRXFXRTDWKBVNVRVOVPVQWIVSVT
      WAWBWPALWCAXBXAWDWEBCDEWFWGWH $.

    $( Composition of projections of orthogonal subspaces.  Part (i)->(iia) of
       Theorem 27.4 of [Halmos] p. 45.  (Contributed by NM, 6-Nov-2000.)
       (New usage is discouraged.) $)
    pjorthcoi $p |- ( G C_ ( _|_ ` H ) ->
                 ( ( projh ` G ) o. ( projh ` H ) ) = 0hop ) $=
      ( vx cort cfv wss cv cpjh ccom ch0o wceq chil wral wcel c0v adantl pjfi
      wa pjcli wi chsscon2i ssel sylbi syl5com cch pjhcli sylancr sylibd impcom
      wb pjoc2 pjcoi ho0val 3eqtr4d ralrimiva hocofi ho0f hoeqi sylib ) ABFGHZE
      IZAJGZBJGZKZGZVCLGZMZENOVFLMVBVIENVBVCNPZTVCVEGZVDGZQVGVHVJVBVLQMZVJVBVKA
      FGZPZVMVJVKBPZVBVOVCBDUAVBBVNHVPVOUBABCDUCBVNVKUDUEUFVJAUGPVKNPVOVMULCVCB
      DUHVKAUMUIUJUKVJVGVLMVBVCABCDUNRVJVHQMVBVCUORUPUQEVFLVDVEACSBDSURUSUTVA
      $.

    $( The projection of orthogonal subspaces is the sum of the projections.
       (Contributed by NM, 11-Nov-2000.)  (New usage is discouraged.) $)
    pjscji $p |- ( G C_ ( _|_ ` H ) -> ( projh ` ( G vH H ) ) =
              ( ( projh ` G ) +op ( projh ` H ) ) ) $=
      ( vx cort cfv wss cv chj co cpjh chos wceq chil wcel cch mp3an12 wf pjfi
      wa cva pjcjt2 impcom hosval adantl eqtr4d ralrimiva chjcli hoaddcli hoeqi
      wral wi sylib ) ABFGHZEIZABJKZLGZGZUPALGZBLGZMKZGZNZEOULURVBNUOVDEOUOUPOP
      ZUAUSUPUTGUPVAGUBKZVCVEUOUSVFNZAQPBQPVEUOVGUMCDUPBAUCRUDVEVCVFNZUOOOUTSOO
      VASVEVHACTZBDTZUPUTVAUERUFUGUHEURVBUQABCDUITUTVAVIVJUJUKUN $.

    $( The projection on a subspace sum is the sum of the projections.
       (Contributed by NM, 11-Nov-2000.)  (New usage is discouraged.) $)
    pjssumi $p |- ( G C_ ( _|_ ` H ) -> ( projh ` ( G +H H ) ) =
              ( ( projh ` G ) +op ( projh ` H ) ) ) $=
      ( cort cfv wss cph co cpjh chj chos osumi fveq2d pjscji eqtrd ) ABEFGZABH
      IZJFABKIZJFAJFBJFLIQRSJABCDMNABCDOP $.

    $( Projector ordering can be expressed by the subset relationship between
       their projection subspaces.  (i)<->(iii) of Theorem 29.2 of [Halmos]
       p. 48.  (Contributed by NM, 2-Jun-2006.)  (New usage is discouraged.) $)
    pjssposi $p |- ( A. x e. ~H
           0 <_ ( ( ( ( projh ` H ) -op ( projh ` G ) ) ` x ) .ih x )
        <-> G C_ H ) $=
      ( cc0 cpjh cfv co csp cle wbr chil wral cno wcel c2 cexp cmin syl cv chod
      wss cr pjhcli normcl resqcld subge0d cmv wf wceq hodval mp3an12 oveq1d id
      pjfi his2sub syl3anc oveq12d 3eqtrd breq2d normge0 le2sqd 3bitr4d ralbiia
      pjinormi pjnormssi bitr4i ) FAUAZCGHZBGHZUBIHZVIJIZKLZAMNVIVKHZOHZVIVJHZO
      HZKLZAMNBCUCVNVSAMVIMPZFVRQRIZVPQRIZSIZKLWBWAKLVNVSVTWAWBVTVRVTVQMPZVRUDP
      VICEUEZVQUFTZUGVTVPVTVOMPZVPUDPVIBDUEZVOUFTZUGUHVTVMWCFKVTVMVQVOUIIZVIJIZ
      VQVIJIZVOVIJIZSIZWCVTVLWJVIJMMVJUJMMVKUJVTVLWJUKCEUPBDUPVIVJVKULUMUNVTWDW
      GVTWKWNUKWEWHVTUOVQVOVIUQURVTWLWAWMWBSVICEVFVIBDVFUSUTVAVTVPVRWIWFVTWGFVP
      KLWHVOVBTVTWDFVRKLWEVQVBTVCVDVEABCDEVGVH $.

    $( The definition of projector ordering in [Halmos] p. 42 is equivalent to
       the definition of projector ordering in [Beran] p. 110.  (We will
       usually express projector ordering with the even simpler equivalent
       ` G C_ H ` ; see ~ pjssposi ).  (Contributed by NM, 2-Jun-2006.)
       (New usage is discouraged.) $)
    pjordi $p |- ( A. x e. ~H
        0 <_ ( ( ( ( projh ` H ) -op ( projh ` G ) ) ` x ) .ih x ) <->
        ( ( projh ` G ) " ~H ) C_ ( ( projh ` H ) " ~H ) ) $=
      ( cc0 cv cpjh cfv chod co csp chil wss cima wfo wceq pjfoi foima ax-mp
      cle wbr wral pjssposi sseq12i bitr4i ) FAGZCHIZBHIZJKIUGLKUAUBAMUCBCNUIMO
      ZUHMOZNABCDEUDUJBUKCMBUIPUJBQBDRMBUISTMCUHPUKCQCERMCUHSTUEUF $.

    $( The projection subspace of the difference between two projectors.  Part
       2 of Theorem 29.3 of [Halmos] p. 48 (shortened with ~ pjssposi ).
       (Contributed by NM, 2-Jun-2006.)  (New usage is discouraged.) $)
    pjssdif2i $p |- ( G C_ H <-> ( ( projh ` H ) -op ( projh ` G ) )
        = ( projh ` ( H i^i ( _|_ ` G ) ) ) ) $=
      ( vx cpjh cfv co wceq chil wral wa pjfi adantl ralrimiva wfn cc0 csp cle
      wf wss chod cort cin wcel cmv hodval mp3an12 pjssmi impcom eqtrd hosubfni
      cv wb choccli chincli pjfni eqfnfv mp2an sylibr wbr pjige0i oveq1d adantr
      fveq1 breqtrrd pjssposi sylib impbii ) ABUAZBFGZAFGZUBHZBAUCGZUDZFGZIZVJE
      UMZVMGZVRVPGZIZEJKZVQVJWAEJVJVRJUEZLVSVRVKGVRVLGUFHZVTWCVSWDIZVJJJVKTJJVL
      TWCWEBDMZACMZVRVKVLUGUHNWCVJWDVTIVRBADCUIUJUKOVMJPVPJPVQWBUNVKVLWFWGULVOB
      VNDACUOUPZUQEJVMVPURUSUTVQQVSVRRHZSVAZEJKVJVQWJEJVQWCLQVTVRRHZWISWCQWKSVA
      VQVRVOWHVBNVQWIWKIWCVQVSVTVRRVRVMVPVEVCVDVFOEABCDVGVHVI $.

    $( A necessary and sufficient condition for the difference between two
       projectors to be a projector.  Part 1 of Theorem 29.3 of [Halmos] p. 48
       (shortened with ~ pjssposi ).  (Contributed by NM, 2-Jun-2006.)
       (New usage is discouraged.) $)
    pjssdif1i $p |- ( G C_ H <->
                  ( ( projh ` H ) -op ( projh ` G ) ) e. ran projh ) $=
      ( vy vx cpjh cfv co wceq wcel cch pjmfn cc0 cv csp cle wbr chil wb mpbiri
      wss chod cort cin crn pjssdif2i choccli chincli fnfvelrn mp2an eleq1 wral
      wfn wrex fvelrnb ax-mp wa pjige0 adantlr oveq1d breq2d ad2antlr ralrimiva
      fveq1 mpbid rexlimiva sylbi pjssposi bitri sylib impbii ) ABUBZBGHAGHUCIZ
      BAUDHZUEZGHZJZVNGUFZKZABCDUGZVRVTVRVTVQVSKZGLUNZVPLKWBMBVODACUHUILVPGUJUK
      VNVQVSULUAVTNEOZVNHZWDPIZQRZESUMZVRVTFOZGHZVNJZFLUOZWHWCVTWLTMFLVNGUPUQWK
      WHFLWILKZWKURZWGESWNWDSKZURNWDWJHZWDPIZQRZWGWMWOWRWKWDWIUSUTWKWRWGTWMWOWK
      WQWFNQWKWPWEWDPWDWJVNVEVAVBVCVFVDVGVHWHVMVREABCDVIWAVJVKVLVJ $.
  $}

  ${
    $d u v w A $.  $d u v w B $.
    pjima.1 $e |- A e. SH $.
    pjima.2 $e |- B e. CH $.
    $( The image of a projection.  Lemma 5 in Daniel Lehmann, "A presentation
       of Quantum Logic based on an _and then_ connective"
       ~ http://www.arxiv.org/pdf/quant-ph/0701113 p. 20.  (Contributed by NM,
       20-Jan-2007.)  (New usage is discouraged.) $)
    pjimai $p |- ( ( projh ` B ) " A ) = ( ( A +H ( _|_ ` B ) ) i^i B ) $=
      ( vu vv vw cfv co cv wcel wa wceq wrex cva chil wb w3a cheli bitr4d sheli
      cpjh cima cort cph cin cmv cch pjeq sylancr ibar bicomd sylan9bbr choccli
      hvsubadd 3comr ax-hvcom 3adant2 eqeq1d syl3an eqcom 3bitr4g 3expa wfn wss
      rexbidva pjfni shssii fvelimab mp2an csh chshii shsel3 pm5.32ri crn pjrni
      imassrn sseqtri sseli pm4.71i elin 3bitr4i eqriv ) EBUBHZAUCZABUDHZUEIZBU
      FZEJZWEKZWIBKZLWIWGKZWKLWJWIWHKWKWJWLWKFJZWDHWIMZFANZWIWMGJZUGIZMZGWFNZFA
      NZWJWLWKWNWSFAWKWMAKZLZWNWMWIWPOIZMZGWFNZWSXAWNWKXELZWKXEXABUHKWMPKZWNXFQ
      DWMACUAZGWMWIBUIUJWKXEXFWKXEUKULUMXBWRXDGWFWKXAWPWFKZWRXDQWKXAXIRWQWIMZXC
      WMMZWRXDWKWIPKZXAXGXIWPPKZXJXKQWIBDSXHWPWFBDUNZSXLXGXMRZXJWPWIOIZWMMZXKXG
      XMXLXJXQQWMWPWIUOUPXOXCXPWMXLXMXCXPMXGWIWPUQURUSTUTWIWQVAWMXCVAVBVCVFTVFW
      DPVDAPVEWJWOQBDVGACVHFPAWIWDVIVJAVKKWFVKKWLWTQCWFXNVLFGAWFWIVMVJVBVNWJWKW
      EBWIWEWDVOBWDAVQBDVPVRVSVTWIWGBWAWBWC $.
  $}

  ${
    $d x H $.
    pjidmco.1 $e |- H e. CH $.
    $( A projection is idempotent.  Property (ii) of [Beran] p. 109.
       (Contributed by NM, 1-Oct-2000.)  (New usage is discouraged.) $)
    pjidmcoi $p |- ( ( projh ` H ) o. ( projh ` H ) ) = ( projh ` H ) $=
      ( wss cpjh cfv ccom wceq ssid pjss2coi mpbi ) AACADEZKFKGAHAABBIJ $.

    $( Composition of projections of a subspace and its orthocomplement.
       (Contributed by NM, 14-Nov-2000.)  (New usage is discouraged.) $)
    pjoccoi $p |- ( ( projh ` H ) o. ( projh ` ( _|_ ` H ) ) ) = 0hop $=
      ( chil wss cort cpjh ccom ch0o wceq chssii ococss choccli pjorthcoi mp2b
      cfv ) ACDAAEOZEODAFOPFOGHIABJAKAPBABLMN $.

    $( Subspace sum of projection and projection of orthocomplement.
       (Contributed by NM, 16-Nov-2000.)  (New usage is discouraged.) $)
    pjtoi $p |- ( ( projh ` H ) +op ( projh ` ( _|_ ` H ) ) )
        = ( projh ` ~H ) $=
      ( vx cv cpjh cfv cort chos co chil wceq wral wcel cva cch axpjpj pjch1 wf
      mpan pjfi choccli hosval mp3an12 3eqtr4rd rgen hoaddcli helch hoeqi mpbi
      ) CDZAEFZAGFZEFZHIZFZUJJEFZFZKZCJLUNUPKURCJUJJMZUJUJUKFUJUMFNIZUQUOAOMUSU
      JUTKBUJAPSUJQJJUKRJJUMRUSUOUTKABTZULABUATZUJUKUMUBUCUDUECUNUPUKUMVAVBUFJU
      GTUHUI $.

    $( Projection of orthocomplement.  First part of Theorem 27.3 of [Halmos]
       p. 45.  (Contributed by NM, 26-Nov-2000.)
       (New usage is discouraged.) $)
    pjoci $p |- ( ( projh ` ~H ) -op ( projh ` H ) )
        = ( projh ` ( _|_ ` H ) ) $=
      ( chil cpjh cfv chod cort wceq chos pjtoi helch pjfi choccli hodsi mpbir
      co ) CDEZADEZFPAGEZDEZHRTIPQHABJQRTCKLABLSABMLNO $.
  $}

  $( A projection operator is idempotent.  Property (ii) of [Beran] p. 109.
     (Contributed by NM, 24-Apr-2006.)  (New usage is discouraged.) $)
  pjidmco $p |- ( H e. CH ->
                 ( ( projh ` H ) o. ( projh ` H ) ) = ( projh ` H ) ) $=
    ( cch wcel cpjh cfv ccom wceq c0h cif fveq2 coeq12d eqeq12d h0elch pjidmcoi
    elimel dedth ) ABCZADEZRFZRGQAHIZDEZUAFZUAGAHATGZSUBRUAUCRUARUAATDJZUDKUDLT
    AHBMONP $.

  ${
    $d t x T $.
    $( Definition of projection operator in [Hughes] p. 47, except that we do
       not need linearity to be explicit by virtue of ~ hmoplin .  (Contributed
       by NM, 24-Apr-2006.)  (Revised by Mario Carneiro, 19-May-2014.)
       (New usage is discouraged.) $)
    dfpjop $p |- ( T e. ran projh <-> ( T e. HrmOp /\ ( T o. T ) = T ) ) $=
      ( vx cpjh crn wcel cho ccom wceq wa cv cfv cch wfn wb pjmfn fvelrnb ax-mp
      wrex pjhmop pjidmco jca eleq1 id coeq12d eqeq12d syl5ibcom rexlimiv sylbi
      anbi12d hmopidmpj hmopidmch fnfvelrn sylancr eqeltrd impbii ) ACDZEZAFEZA
      AGZAHZIZUQBJZCKZAHZBLRZVACLMZUQVENOBLACPQVDVABLVBLEZVCFEZVCVCGZVCHZIVDVAV
      GVHVJVBSVBTUAVDVHURVJUTVCAFUBVDVIUSVCAVDVCAVCAVDUCZVKUDVKUEUIUFUGUHVAAADZ
      CKZUPAUJVAVFVLLEVMUPEOAUKLVLCULUMUNUO $.

    $( Two ways to express the set of all projection operators.  (Contributed
       by NM, 24-Apr-2006.)  (Proof shortened by Mario Carneiro, 19-May-2014.)
       (New usage is discouraged.) $)
    pjhmopidm $p |- ran projh = { t e. HrmOp | ( t o. t ) = t } $=
      ( cpjh crn cv cho wcel ccom wceq wa cab crab dfpjop abbi2i df-rab eqtr4i
      ) BCZADZEFQQGQHZIZAJRAEKSAPQLMRAENO $.
  $}

  $( A projection operator is idempotent.  Part of Theorem 26.1 of [Halmos]
     p. 43.  (Contributed by NM, 24-Apr-2006.)  (New usage is discouraged.) $)
  elpjidm $p |- ( T e. ran projh -> ( T o. T ) = T ) $=
    ( cpjh crn wcel cho ccom wceq dfpjop simprbi ) ABCDAEDAAFAGAHI $.

  $( A projection operator is Hermitian.  Part of Theorem 26.1 of [Halmos]
     p. 43.  (Contributed by NM, 24-Apr-2006.)  (New usage is discouraged.) $)
  elpjhmop $p |- ( T e. ran projh -> T e. HrmOp ) $=
    ( cpjh crn wcel cho ccom wceq dfpjop simplbi ) ABCDAEDAAFAGAHI $.

  $( A projector is a positive operator.  (Contributed by NM, 27-Sep-2008.)
     (New usage is discouraged.) $)
  0leopj $p |- ( T e. ran projh -> 0hop <_op T ) $=
    ( cpjh crn wcel ch0o ccom cleo cho wbr elpjhmop leopsq syl elpjidm breqtrd
    ) ABCDZEAAFZAGOAHDEPGIAJAKLAMN $.

  $( A projector is self-adjoint.  Property (i) of [Beran] p. 109.
     (Contributed by NM, 3-Jun-2006.)  (New usage is discouraged.) $)
  pjadj2 $p |- ( T e. ran projh -> ( adjh ` T ) = T ) $=
    ( cpjh crn wcel cho cado cfv wceq elpjhmop hmopadj syl ) ABCDAEDAFGAHAIAJK
    $.

  $( A projector is self-adjoint.  Property (i) of [Beran] p. 109.
     (Contributed by NM, 20-Feb-2006.)  (New usage is discouraged.) $)
  pjadj3 $p |- ( H e. CH -> ( adjh ` ( projh ` H ) ) = ( projh ` H ) ) $=
    ( cch wcel cpjh cfv crn cado wceq wfn pjmfn fnfvelrn mpan pjadj2 syl ) ABCZ
    ADEZDFCZPGEPHDBIOQJBADKLPMN $.

  ${
    $d x y T $.
    $( Reconstruction of the subspace of a projection operator.  Part of
       Theorem 26.2 of [Halmos] p. 44.  (Contributed by NM, 24-Apr-2006.)
       (New usage is discouraged.) $)
    elpjch $p |- ( T e. ran projh -> ( ran T e. CH /\
                T = ( projh ` ran T ) ) ) $=
      ( cpjh crn wcel cho ccom wceq wa cch cfv dfpjop hmopidmch hmopidmpj sylbi
      jca ) ABCDAEDAAFAGHZACZIDZAQBJGZHAKPRSALAMON $.

    $( Reconstruction of the subspace of a projection operator.  (Contributed
       by NM, 24-Apr-2006.)  (Revised by Mario Carneiro, 19-May-2014.)
       (New usage is discouraged.) $)
    elpjrn $p |- ( T e. ran projh -> ran T = { x e. ~H | ( T ` x ) = x } ) $=
      ( vy cpjh crn wcel cv chil cfv wceq wa cab crab cch wss elpjch simpld syl
      sylan syl5ibcom chss sseld wrex wfn wb wf cho elpjhmop hmopf fvelrnb ccom
      fvco3 elpjidm adantr fveq1d eqtr3d fveq2 id eqeq12d rexlimdva sylbid jcad
      ffn fnfvelrn eleq1 expimpd impbid abbi2dv df-rab syl6eqr ) BDEFZBEZAGZHFZ
      VMBIZVMJZKZALVPAHMVKVQAVLVKVMVLFZVQVKVRVNVPVKVLHVMVKVLNFZVLHOVKVSBVLDIJBP
      QVLUARUBVKVRCGZBIZVMJZCHUCZVPVKBHUDZVRWCUEVKHHBUFZWDVKBUGFWEBUHBUIRZHHBVC
      RZCHVMBUJRVKWBVPCHVKVTHFZKZWABIZWAJWBVPWIVTBBUKZIZWJWAVKWEWHWLWJJWFHHVTBB
      ULSWIVTWKBVKWKBJWHBUMUNUOUPWBWJVOWAVMWAVMBUQWBURUSTUTVAVBVKVNVPVRVKVNKVOV
      LFZVPVRVKWDVNWMWGHVMBVDSVOVMVLVETVFVGVHVPAHVIVJ $.
  $}

  ${
    $d x H $.  $d x S $.  $d x T $.
    pjinvar.1 $e |- S : ~H --> ~H $.
    pjinvar.2 $e |- H e. CH $.
    pjinvar.3 $e |- T = ( projh ` H ) $.
    $( A closed subspace ` H ` with projection ` T ` is invariant under an
       operator ` S ` iff ` S T = T S T ` .  Theorem 27.1 of [Halmos] p. 45.
       (Contributed by NM, 24-Apr-2006.)  (New usage is discouraged.) $)
    pjinvari $p |- ( ( S o. T ) : ~H --> H <->
                  ( S o. T ) = ( T o. ( S o. T ) ) ) $=
      ( vx chil ccom wf wceq cv cfv wral wcel wa cpjh wfn mp2an hocofni ffvelrn
      fveq1i cch pjid sylancr syl5req fvco3 eqtr4d ralrimiva wb wss pjfoi ax-mp
      wfo fof feq1i mpbir chssii fss hocofi eqfnfv sylibr feq1 mpbiri impbii
      fco ) HCABIZJZVGBVGIZKZVHGLZVGMZVKVIMZKZGHNZVJVHVNGHVHVKHOPZVLVLBMZVMVPVQ
      VLCQMZMZVLVLBVRFUBVPCUCOVLCOVSVLKEHCVKVGUAVLCUDUEUFHCVKBVGUGUHUIVGHRVIHRV
      JVOUJABDHCBJZCHUKHHBJVTHCVRJZHCVRUNWACEULHCVRUOUMHCBVRFUPUQZCEURHCHBUSSZT
      BVGWCABDWCUTZTGHVGVIVASVBVJVHHCVIJZVTHHVGJWEWBWDHHCBVGVFSHCVGVIVCVDVE $.
  $}

  ${
    pjin1.1 $e |- G e. CH $.
    pjin1.2 $e |- H e. CH $.
    $( Lemma for Theorem 1.22 of Mittelstaedt, p. 20.  (Contributed by NM,
       22-Apr-2001.)  (New usage is discouraged.) $)
    pjin1i $p |- ( projh ` ( G i^i H ) ) =
                ( ( projh ` G ) o. ( projh ` ( G i^i H ) ) ) $=
      ( cpjh cfv cin ccom wss wceq inss1 chincli pjss1coi mpbi eqcomi ) AEFABGZ
      EFZHZQPAIRQJABKPAABCDLCMNO $.

    $( Lemma for Theorem 1.22 of Mittelstaedt, p. 20.  (Contributed by NM,
       22-Apr-2001.)  (New usage is discouraged.) $)
    pjin2i $p |- ( ( ( projh ` G ) = ( ( projh ` G ) o. ( projh ` H ) ) /\
                    ( projh ` H ) = ( ( projh ` H ) o. ( projh ` G ) ) ) <->
                ( projh ` G ) = ( projh ` H ) ) $=
      ( cpjh cfv ccom wceq wa wss eqss pjss2coi eqcom bitri anbi12i fveq2 sylbi
      bitr2i pjidmcoi coeq2 syl5eqr syl6req jca impbii ) AEFZUEBEFZGZHZUFUFUEGZ
      HZIZUEUFHZUKABHZULUMABJZBAJZIUKABKUNUHUOUJUNUGUEHUHABCDLUGUEMNUOUIUFHUJBA
      DCLUIUFMNORABEPQULUHUJULUEUEUEGUGACSUEUFUETUAULUIUFUFGUFUEUFUFTBDSUBUCUD
      $.
  $}

  ${
    pjin3.1 $e |- F e. CH $.
    pjin3.2 $e |- G e. CH $.
    pjin3.3 $e |- H e. CH $.
    $( Lemma for Theorem 1.22 of Mittelstaedt, p. 20.  (Contributed by NM,
       22-Apr-2001.)  (New usage is discouraged.) $)
    pjin3i $p |- ( ( ( projh ` F ) = ( ( projh ` F ) o. ( projh ` G ) ) /\
                    ( projh ` F ) = ( ( projh ` F ) o. ( projh ` H ) ) )
          <-> ( projh ` F ) = ( ( projh ` F ) o. ( projh ` ( G i^i H ) ) ) ) $=
      ( wss wa cin cpjh cfv ccom wceq ssin pjss2coi eqcom bitri anbi12i chincli
      3bitr3i ) ABGZACGZHABCIZGZAJKZUEBJKLZMZUEUECJKLZMZHUEUEUCJKLZMZABCNUAUGUB
      UIUAUFUEMUGABDEOUFUEPQUBUHUEMUIACDFOUHUEPQRUDUJUEMUKAUCDBCEFSOUJUEPQT $.
  $}

  ${
    $d x y G $.  $d x y H $.
    pjclem1.1 $e |- G e. CH $.
    pjclem1.2 $e |- H e. CH $.
    $( Lemma for projection commutation theorem.  (Contributed by NM,
       16-Nov-2000.)  (New usage is discouraged.) $)
    pjclem1 $p |- ( G C_H H
       -> ( ( projh ` G ) o. ( projh ` H ) ) = ( projh ` ( G i^i H ) ) ) $=
      ( cpjh cfv ccom cort chos co cin ch0o chj wceq sylbi chincli ax-mp eqeq2i
      wss pjfi ccm wbr cmbri fveq2 inss2 choccli chub2i chdmm3i sseqtr4i pjscji
      sstri coeq2 pjsdii pjss1coi mpbi pjorthcoi oveq12i hoaddid1i 3eqtri inss1
      syl6eq syl cmcm3i bitri chdmm4i chub1i chdmm2i oveq12d chil df-iop coeq2i
      chio hoid1i eqtr3i pjtoi hocofi eqtr2i 3eqtr3g ) ABUAUBZAEFZBEFZVTGZGZVTW
      AAHFZEFZGZGZIJZABKZEFZLIJZVTWAGZWJVSWCWJWGLIVSVTWIABHFZKZMJZEFZNZWCWJNZVS
      AWONWQABCDUCAWOEUDOWQVTWJWNEFZIJZNZWRWPWTVTWIWNHFZSWPWTNWIBXBABUEZBWDBMJX
      BBWDDACUFZUGABCDUHUIZUKWIWNABCDPZAWMCBDUFZPZUJQRXAWBWAWTGZNZWRVTWTWAULXJW
      BWJNZWRXIWJWBXIWAWJGZWAWSGZIJWKWJWJWSBDWIXFTZWNXHTUMXLWJXMLIWIBSXLWJNXCWI
      BXFDUNUOBXBSXMLNXEBWNDXHUPQUQWJXNURZUSRXKWCVTWJGZWJWBWJVTULWIASXPWJNABUTW
      IAXFCUNUOVAOVBOVBVSWDWDBKZWDWMKZMJZNZWGLNZVSWDBUAUBXTABCDVCWDBXDDUCVDXTWE
      XSEFZNZYAWDXSEUDYCWEXQEFZXREFZIJZNZYAYBYFWEXQXRHFZSYBYFNXQBYHWDBUEZBABMJY
      HBADCUGABCDVEUIZUKXQXRWDBXDDPZWDWMXDXGPZUJQRYGWFWAYFGZNZYAWEYFWAULYNWFYDN
      ZYAYMYDWFYMWAYDGZWAYEGZIJYDLIJYDYDYEBDXQYKTZXRYLTUMYPYDYQLIXQBSYPYDNYIXQB
      YKDUNUOBYHSYQLNYJBXRDYLUPQUQYDYRURUSRYOWGVTYDGZLWFYDVTULAXQHFZSYSLNAAWMMJ
      YTAWMCXGVFABCDVGUIAXQCYKUPQVAOVBOVBOVHWLVTWBWFIJZGWHWAUUAVTWAVIEFZGZWAUUA
      WAVLGUUCWAVLUUBWAVJVKWABDTZVMVNWAVTWEIJZGUUCUUAUUEUUBWAACVOVKVTWEBDACTZWD
      XDTZUMVNVNVKWBWFACWAVTUUDUUFVPWAWEUUDUUGVPUMVQXOVR $.

    $( Lemma for projection commutation theorem.  (Contributed by NM,
       17-Nov-2000.)  (New usage is discouraged.) $)
    pjclem2 $p |- ( G C_H H ->
       ( ( projh ` G ) o. ( projh ` H ) ) = ( ( projh ` H ) o. ( projh ` G ) )
        ) $=
      ( ccm wbr cin cpjh cfv ccom incom fveq2i pjclem1 wceq cmcmi sylbi 3eqtr4a
      ) ABEFZABGZHIBAGZHIZAHIZBHIZJUCUBJZSTHABKLABCDMRBAEFUDUANABCDOBADCMPQ $.

    $( Lemma for projection commutation theorem.  (Contributed by NM,
       26-Nov-2000.)  (New usage is discouraged.) $)
    pjclem3 $p |- ( ( ( projh ` G ) o. ( projh ` H ) ) =
                    ( ( projh ` H ) o. ( projh ` G ) ) ->
                     ( ( projh ` G ) o. ( projh ` ( _|_ ` H ) ) ) =
                     ( ( projh ` ( _|_ ` H ) ) o. ( projh ` G ) ) ) $=
      ( cpjh cfv ccom wceq chil chod cort chio df-iop coeq2i pjfi hoid1i eqtr3i
      co hoid1ri coeq1i 3eqtr2i oveq1i syl5eq pjddii hocsubdiri 3eqtr4g 3eqtr3g
      oveq2 helch pjoci ) AEFZBEFZGZULUKGZHZUKIEFZULJRZGZUQUKGZUKBKFEFZGUTUKGUO
      UKUPGZUMJRZUPUKGZUNJRZURUSUOVBVCUMJRVDVAVCUMJVAUKLUKGVCUKLGVAUKLUPUKMNUKA
      COZPQUKVESLUPUKMTUAUBUMUNVCJUHUCUPULACIUIOZBDOZUDUPULUKVFVGVEUEUFUQUTUKBD
      UJZNUQUTUKVHTUG $.

    $( Lemma for projection commutation theorem.  (Contributed by NM,
       2-Dec-2000.)  (New usage is discouraged.) $)
    pjclem4a $p |- ( A e. ( G i^i H ) ->
               ( ( ( projh ` G ) o. ( projh ` H ) ) ` A ) = A ) $=
      ( cin wcel wa cpjh cfv ccom wceq elin chil cheli adantl syl cch pjid mpan
      pjcoi wi eleq1 syl6bir eqeq2 sylibd impcom eqtrd sylbi ) ABCFGABGZACGZHZA
      BIJZCIJZKJZALABCMULUOAUNJZUMJZAULANGZUOUQLUKURUJACEOPABCDEUAQUKUJUQALZUKU
      PALZUJUSUBCRGUKUTEACSTUTUJUQUPLZUSUTUJUPBGZVAUPABUCBRGVBVADUPBSTUDUPAUQUE
      UFQUGUHUI $.

    $( Lemma for projection commutation theorem.  (Contributed by NM,
       26-Nov-2000.)  (New usage is discouraged.) $)
    pjclem4 $p |- ( ( ( projh ` G ) o. ( projh ` H ) ) =
                    ( ( projh ` H ) o. ( projh ` G ) ) ->
                     ( ( projh ` G ) o. ( projh ` H ) ) =
                     ( projh ` ( G i^i H ) ) ) $=
      ( vx vy cpjh cfv wceq chil wcel wa co cva adantl csp cmin syl c0v pjfi cv
      ccom cin wral cmv cort pjcocli fveq1 eleq1d syl5ibr imp elind cc0 hvsubcl
      pjcohcli mpdan w3a simpl adantr chincli cheli 3jca oveq1d pjadjcoi sylan2
      his2sub pjclem4a oveq2d eqtrd sylan9eq cc anim12i subidd 3eqtr2d ralrimiv
      hicl expr wb chshii shocel ax-mp sylanbrc pjvi syl2anc hvaddsub12 syl3anc
      csh hvsubid ax-hvaddid 3eqtrd fveq2d eqtr3d ralrimiva hocofi hoeqi sylib
      id ) AGHZBGHZUBZWSWRUBZIZEUAZWTHZXCABUCZGHZHZIZEJUDWTXFIXBXHEJXBXCJKZLZXD
      XCXDUEMZNMZXFHZXDXGXJXDXEKXKXEUFHKZXMXDIXJABXDXIXDAKXBXCABCDUGOXBXIXDBKZX
      IXOXBXCXAHZBKXCBADCUGXBXDXPBXCWTXAUHZUIUJUKULXJXKJKZXKFUAZPMZUMIZFXEUDZXN
      XIXRXBXIXDJKZXRXCABCDUOZXCXDUNUPOXJYAFXEXBXIXSXEKZYAXBXIYELZLZXTXCXSPMZXD
      XSPMZQMZYIYIQMUMYGXIYCXSJKZUQZXTYJIYFYLXBYFXIYCYKXIYEURXIYCYEYDUSYEYKXIXS
      XEABCDUTZVAZOVBOXCXDXSVFRYGYIYHYIQXBYFYIXPXSPMZYHXBXDXPXSPXQVCYFYOXCXSWTH
      ZPMZYHYEXIYKYOYQIYNXCXSBADCVDVEYEYQYHIXIYEYPXSXCPXSABCDVGVHOVIVJVCYGYIYGY
      CYKLZYIVKKYFYRXBXIYCYEYKYDYNVLOXDXSVPRVMVNVQVOXEWGKXNXRYBLVRXEYMVSFXKXEVT
      WAWBXDXKXEYMWCWDXIXMXGIXBXIXLXCXFXIXLXCXDXDUEMZNMZXCSNMXCXIYCXIYCXLYTIYDX
      IWQYDXDXCXDWEWFXIYSSXCNXIYCYSSIYDXDWHRVHXCWIWJWKOWLWMEWTXFWRWSACTBDTWNXEY
      MTWOWP $.

    $( Two subspaces commute iff their projections commute.  Lemma 4 of
       [Kalmbach] p. 67.  (Contributed by NM, 26-Nov-2000.)
       (New usage is discouraged.) $)
    pjci $p |- ( G C_H H <->
       ( ( projh ` G ) o. ( projh ` H ) ) = ( ( projh ` H ) o. ( projh ` G ) )
        ) $=
      ( cpjh cfv ccom wceq cin cort chj chos pjclem4 choccli chio coeq2i eqtr3i
      co pjfi chincli ccm wbr pjclem2 pjclem3 oveq12d chil df-iop hoid1i pjsdii
      syl pjtoi inss2 chub2i sstri chdmm3i sseqtr4i pjscji ax-mp 3eqtr4g chjcli
      wss pj11i sylib cmbri sylibr impbii ) ABUAUBZAEFZBEFZGZVIVHGHZABCDUCVKAAB
      IZABJFZIZKRZHZVGVKVHVOEFZHVPVKVJVHVMEFZGZLRZVLEFZVNEFZLRZVHVQVKVJWAVSWBLA
      BCDMVKVSVRVHGHVSWBHABCDUDAVMCBDNZMUJUEVHUFEFZGZVHVTVHOGWFVHOWEVHUGPVHACSU
      HQVHVIVRLRZGWFVTWGWEVHBDUKPVIVRACBDSVMWDSUIQQVLVNJFZVAVQWCHVLAJFZBKRZWHVL
      BWJABULBWIDACNUMUNABCDUOUPVLVNABCDTZAVMCWDTZUQURUSAVOCVLVNWKWLUTVBVCABCDV
      DVEVF $.

    $( A necessary and sufficient condition for the product of two projectors
       to be a projector is that the projectors commute.  Part 1 of Theorem 1
       of [AkhiezerGlazman] p. 65.  (Contributed by NM, 3-Jun-2006.)
       (New usage is discouraged.) $)
    pjcmul1i $p |- ( ( ( projh ` G ) o. ( projh ` H ) ) =
                   ( ( projh ` H ) o. ( projh ` G ) ) <->
                   ( ( projh ` G ) o. ( projh ` H ) ) e. ran projh ) $=
      ( cpjh cfv ccom wceq crn cin pjclem4 cch wfn pjmfn chincli pjbdlni pjadj3
      wcel cado ax-mp fnfvelrn syl6eqel adjcoi coeq12i pjadj2 syl5reqr impbii
      mp2an eqtri ) AEFZBEFZGZUKUJGZHZULEIZRZUNULABJZEFZUOABCDKELMUQLRURUORNABC
      DOLUQEUAUHUBUPUMULSFZULUSUKSFZUJSFZGUMUJUKACPBDPUCUTUKVAUJBLRUTUKHDBQTALR
      VAUJHCAQTUDUIULUEUFUG $.

    $( The projection subspace of the difference between two projectors.  Part
       2 of Theorem 1 of [AkhiezerGlazman] p. 65.  (Contributed by NM,
       3-Jun-2006.)  (New usage is discouraged.) $)
    pjcmul2i $p |- ( ( ( projh ` G ) o. ( projh ` H ) ) =
                   ( ( projh ` H ) o. ( projh ` G ) )
        <-> ( ( projh ` G ) o. ( projh ` H ) ) = ( projh ` ( G i^i H ) ) ) $=
      ( cpjh cfv ccom wceq cin pjclem4 crn cch wfn pjmfn chincli fnfvelrn mp2an
      wcel eleq1 mpbiri pjcmul1i sylibr impbii ) AEFZBEFZGZUEUDGHZUFABIZEFZHZAB
      CDJUJUFEKZRZUGUJULUIUKRZELMUHLRUMNABCDOLUHEPQUFUIUKSTABCDUAUBUC $.
  $}

  ${
    pjcohocl.1 $e |- H e. CH $.
    pjcohocl.2 $e |- T : ~H --> ~H $.
    $( Closure of composition of projection and Hilbert space operator.
       (Contributed by NM, 3-Dec-2000.)  (New usage is discouraged.) $)
    pjcohocli $p |- ( A e. ~H ->
         ( ( ( projh ` H ) o. T ) ` A ) e. H ) $=
      ( chil wcel cpjh cfv ccom pjfi hocoi ffvelrni pjcli syl eqeltrd ) AFGZACH
      IZBJIABIZRIZCARBCDKELQSFGTCGFFABEMSCDNOP $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x y H $.
    pjadj2co.1 $e |- F e. CH $.
    pjadj2co.2 $e |- G e. CH $.
    pjadj2co.3 $e |- H e. CH $.
    $( Adjoint of double composition of projections.  Generalization of special
       case of Theorem 3.11(viii) of [Beran] p. 106.  (Contributed by NM,
       1-Dec-2000.)  (New usage is discouraged.) $)
    pjadj2coi $p |- ( ( A e. ~H /\ B e. ~H ) ->
      ( ( ( ( ( projh ` F ) o. ( projh ` G ) ) o. ( projh ` H ) ) ` A ) .ih B )
        =
 ( A .ih ( ( ( ( projh ` H ) o. ( projh ` G ) ) o. ( projh ` F ) ) ` B ) ) ) $=
      ( chil wcel wa cpjh cfv ccom csp co wceq pjfi hocofi hocoi pjadjcoi sylan
      pjhcli pjcohcli pjadji sylan2 oveq1d adantr fveq1i syl5eq oveq2d 3eqtr4d
      eqtrd coass adantl ) AIJZBIJZKZAELMZMZCLMZDLMZNZMZBOPZABVBVANZMZUSMZOPZAV
      CUSNMZBOPZABUSVBNVANZMZOPZURVEUTVGOPZVIUPUTIJUQVEVOQAEHUCUTBCDFGUAUBUQUPV
      GIJVOVIQBDCGFUDAVGEHUEUFUMUPVKVEQUQUPVJVDBOAVCUSVAVBCFRZDGRZSEHRZTUGUHUQV
      NVIQUPUQVMVHAOUQVMBUSVFNZMVHBVLVSUSVBVAUNUIBUSVFVRVBVAVQVPSTUJUKUOUL $.

    $( Closure of double composition of projections.  (Contributed by NM,
       2-Dec-2000.)  (New usage is discouraged.) $)
    pj2cocli $p |- ( A e. ~H
   -> ( ( ( ( projh ` F ) o. ( projh ` G ) ) o. ( projh ` H ) ) ` A ) e. F ) $=
      ( chil wcel cpjh cfv ccom pjfi ho2coi pjhcli pjcli 3syl eqeltrd ) AHIZABJ
      KZCJKZLDJKZLKAUBKZUAKZTKZBATUAUBBEMCFMDGMNSUCHIUDHIUEBIADGOUCCFOUDBEPQR
      $.

    $( Lemma for projection triplet theorem.  (Contributed by NM, 2-Dec-2000.)
       (New usage is discouraged.) $)
    pj3lem1 $p |- ( A e. ( ( F i^i G ) i^i H )
    -> ( ( ( ( projh ` F ) o. ( projh ` G ) ) o. ( projh ` H ) ) ` A ) = A ) $=
      ( cin wcel cpjh cfv ccom coass fveq1i wceq wa elin chil pjfi syl cheli wi
      adantr hocofi hocoi pjclem4a eleq1 pjid syl6bir eqeq2 sylibd impcom eqtrd
      cch mpan sylbi inass eleq2s syl5eq ) ABCHDHZIABJKZCJKZLDJKZLZKAVAVBVCLZLZ
      KZAAVDVFVAVBVCMNVGAOZABCDHZHZUTAVJIABIZAVIIZPZVHABVIQVMVGAVEKZVAKZAVMARIZ
      VGVOOVKVPVLABEUAUCAVAVEBESVBVCCFSDGSUDUETVLVKVOAOZVLVNAOZVKVQUBACDFGUFVRV
      KVOVNOZVQVRVKVNBIZVSVNABUGBUNIVTVSEVNBUHUOUIVNAVOUJUKTULUMUPBCDUQURUS $.

    $( Stronger projection triplet theorem.  (Contributed by NM, 2-Dec-2000.)
       (New usage is discouraged.) $)
    pj3si $p |- ( ( ( ( ( projh ` F ) o. ( projh ` G ) ) o. ( projh ` H ) ) =
                  ( ( ( projh ` H ) o. ( projh ` G ) ) o. ( projh ` F ) ) /\
         ran ( ( ( projh ` F ) o. ( projh ` G ) ) o. ( projh ` H ) ) C_ G ) ->
       ( ( ( projh ` F ) o. ( projh ` G ) ) o. ( projh ` H ) ) =
       ( projh ` ( ( F i^i G ) i^i H ) ) ) $=
      ( vx vy cpjh cfv ccom wceq wa chil wcel co cva adantl pjfi csp crn wss cv
      cin wral cmv cort pj2cocli wfn hocofi hocofni fnfvelrn mpan ssel syl5 imp
      elind adantll fveq1 eleq1d syl5ibr adantlr cc0 hococli hvsubcl mpdan cmin
      w3a simpl adantr chincli 3jca his2sub syl oveq1d pjadj2coi sylan2 pj3lem1
      cheli oveq2d eqtrd sylan9eq anim12i hicl subidd 3eqtr2d expr ralrimiv csh
      cc wb chshii shocel ax-mp sylanbrc pjvi syl2anc id hvaddsub12 syl3anc c0v
      hvsubid ax-hvaddid fveq2d eqtr3d ralrimiva hoeqi sylib ) AIJZBIJZKZCIJZKZ
      XLXJKXIKZLZXMUAZBUBZMZGUCZXMJZXSABUDZCUDZIJZJZLZGNUEXMYCLXRYEGNXRXSNOZMZX
      TXSXTUFPZQPZYCJZXTYDYGXTYBOYHYBUGJOZYJXTLYGYACXTXQYFXTYAOXOXQYFMABXTYFXTA
      OXQXSABCDEFUHRXQYFXTBOZYFXTXPOZXQYLXMNUIYFYMXKXLXIXJADSBESUJZCFSZUKNXSXMU
      LUMXPBXTUNUOUPUQURXOYFXTCOZXQXOYFYPYFYPXOXSXNJZCOXSCBAFEDUHXOXTYQCXSXMXNU
      SZUTVAUPVBUQYGYHNOZYHHUCZTPZVCLZHYBUEZYKYFYSXRYFXTNOZYSXSXKXLYNYOVDZXSXTV
      EVFRYGUUBHYBXRYFYTYBOZUUBXRYFUUFMZMZUUAXSYTTPZXTYTTPZVGPZUUJUUJVGPVCUUHYF
      UUDYTNOZVHZUUAUUKLUUGUUMXRUUGYFUUDUULYFUUFVIYFUUDUUFUUEVJUUFUULYFYTYBYACA
      BDEVKFVKZVSZRVLRXSXTYTVMVNUUHUUJUUIUUJVGXRUUGUUJYQYTTPZUUIXRXTYQYTTXOXTYQ
      LXQYRVJVOUUGUUPXSYTXMJZTPZUUIUUFYFUULUUPUURLUUOXSYTCBAFEDVPVQUUFUURUUILYF
      UUFUUQYTXSTYTABCDEFVRVTRWAWBVOUUHUUJUUHUUDUULMZUUJWJOUUGUUSXRYFUUDUUFUULU
      UEUUOWCRXTYTWDVNWEWFWGWHYBWIOYKYSUUCMWKYBUUNWLHYHYBWMWNWOXTYHYBUUNWPWQYFY
      JYDLXRYFYIXSYCYFYIXSXTXTUFPZQPZXSYFUUDYFUUDYIUVALUUEYFWRUUEXTXSXTWSWTYFUV
      AXSXAQPXSYFUUTXAXSQYFUUDUUTXALUUEXTXBVNVTXSXCWAWAXDRXEXFGXMYCXKXLYNYOUJYB
      UUNSXGXH $.

    $( Projection triplet theorem.  (Contributed by NM, 2-Dec-2000.)
       (New usage is discouraged.) $)
    pj3i $p |- ( ( ( ( ( projh ` F ) o. ( projh ` G ) ) o. ( projh ` H ) ) =
                  ( ( ( projh ` H ) o. ( projh ` G ) ) o. ( projh ` F ) ) /\
                  ( ( ( projh ` F ) o. ( projh ` G ) ) o. ( projh ` H ) ) =
                  ( ( ( projh ` G ) o. ( projh ` F ) ) o. ( projh ` H ) ) ) ->
       ( ( ( projh ` F ) o. ( projh ` G ) ) o. ( projh ` H ) ) =
       ( projh ` ( ( F i^i G ) i^i H ) ) ) $=
      ( cpjh cfv ccom crn wss cin coass eqeq1 mpbiri rneqd rncoss pjrni sseqtri
      wceq syl6eqss pj3si sylan2 ) AGHZBGHZICGHZIZUEUDIUFIZTZUGUFUEIUDITUGJZBKU
      GABLCLGHTUIUJUEUDUFIZIZJZBUIUGULUIUGULTUHULTUEUDUFMUGUHULNOPUMUEJBUEUKQBE
      RSUAABCDEFUBUC $.

    $( Projection triplet corollary.  (Contributed by NM, 2-Dec-2000.)
       (New usage is discouraged.) $)
    pj3cor1i $p |- ( ( ( ( ( projh ` F ) o. ( projh ` G ) ) o. ( projh ` H ) )
        =
                  ( ( ( projh ` H ) o. ( projh ` G ) ) o. ( projh ` F ) ) /\
                  ( ( ( projh ` F ) o. ( projh ` G ) ) o. ( projh ` H ) ) =
                  ( ( ( projh ` G ) o. ( projh ` F ) ) o. ( projh ` H ) ) ) ->
       ( ( ( projh ` F ) o. ( projh ` G ) ) o. ( projh ` H ) ) =
       ( ( ( projh ` H ) o. ( projh ` F ) ) o. ( projh ` G ) ) ) $=
      ( vx vy cpjh cfv ccom wceq wa chil wcel csp co ad2antlr pjfi hocofi fveq1
      cv wral oveq2d adantl chincli pjadji adantlr pj3i fveq1d oveq1d pjadj2coi
      cin 3eqtr4d exp31 ralrimdv wb hococli hial2eq sylibd com12 ralrimiv hoeqi
      syl2anc sylib ) AIJZBIJZKZCIJZKZVIVGKVFKLZVJVGVFKVIKZLZMZGUBZVJJZVOVIVFKZ
      VGKZJZLZGNUCVJVRLVNVTGNVONOZVNVTWAVNVPHUBZPQZVSWBPQZLZHNUCZVTWAVNWEHNWAVN
      WBNOZWEWAVNMWGMZVOWBVJJZPQZVOWBVLJZPQZWCWDVNWJWLLZWAWGVMWMVKVMWIWKVOPWBVJ
      VLUAUDUERWHVOABUMZCUMZIJZJZWBPQZVOWBWPJZPQZWCWJWAWGWRWTLVNVOWBWOWNCABDEUF
      FUFUGUHVNWCWRLWAWGVNVPWQWBPVNVOVJWPABCDEFUIZUJUKRVNWJWTLWAWGVNWIWSVOPVNWB
      VJWPXAUJUDRUNWAWGWDWLLVNVOWBCABFDEULUHUNUOUPWAVPNOVSNOWFVTUQVOVHVIVFVGADS
      ZBESZTZCFSZURVOVQVGVIVFXEXBTZXCURHVPVSUSVDUTVAVBGVJVRVHVIXDXETVQVGXFXCTVC
      VE $.
  $}

  ${
    pjs14.1 $e |- G e. CH $.
    pjs14.2 $e |- H e. CH $.
    $( Theorem S-14 of Watanabe, p. 486.  (Contributed by NM, 26-Sep-2001.)
       (New usage is discouraged.) $)
    pjs14i $p |- ( A e. ~H ->
                ( normh ` ( ( ( projh ` H ) o. ( projh ` G ) ) ` A ) )
                <_ ( normh ` ( ( projh ` G ) ` A ) ) ) $=
      ( chil wcel cpjh cfv ccom cno cle pjcoi fveq2d cch pjhcli sylancr eqbrtrd
      wbr pjnorm ) AFGZACHIZBHIZJIZKIAUCIZUBIZKIZUEKIZLUAUDUFKACBEDMNUACOGUEFGU
      GUHLSEABDPUECTQR $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  States on a Hilbert lattice and Godowski's equation
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  States on a Hilbert lattice
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d f x y $.
    $( Define the set of states on a Hilbert lattice.  Definition of [Kalmbach]
       p. 266.  (Contributed by NM, 23-Oct-1999.)
       (New usage is discouraged.) $)
    df-st $a |- States = { f e. ( ( 0 [,] 1 ) ^m CH ) | ( ( f ` ~H ) = 1 /\
          A. x e. CH A. y e. CH ( x C_ ( _|_ ` y ) ->
            ( f ` ( x vH y ) ) = ( ( f ` x ) + ( f ` y ) ) ) ) } $.

    $( Define the set of complex Hilbert-space-valued states on a Hilbert
       lattice.  Definition of CH-states in [Mayet3] p. 9.  (Contributed by NM,
       25-Jun-2006.)  (New usage is discouraged.) $)
    df-hst $a |- CHStates = { f e. ( ~H ^m CH ) |
        ( ( normh ` ( f ` ~H ) ) = 1 /\ A. x e. CH A. y e. CH
          ( x C_ ( _|_ ` y ) -> ( ( ( f ` x ) .ih ( f ` y ) ) = 0 /\
              ( f ` ( x vH y ) ) = ( ( f ` x ) +h ( f ` y ) ) ) ) ) } $.
  $}

  ${
    $d x y A $.  $d x y f S $.  $d y B $.
    $( Property of a state.  (Contributed by NM, 23-Oct-1999.)  (Revised by
       Mario Carneiro, 23-Dec-2013.)  (New usage is discouraged.) $)
    isst $p |- ( S e. States <-> ( S : CH --> ( 0 [,] 1 ) /\
            ( S ` ~H ) = 1 /\ A. x e. CH A. y e. CH ( x C_ ( _|_ ` y ) ->
            ( S ` ( x vH y ) ) = ( ( S ` x ) + ( S ` y ) ) ) ) ) $=
      ( vf cc0 c1 cicc co cch wcel chil cfv wceq cv caddc wi wral wa cst fveq1
      cmap cort wss chj wf ovex chex elmap anbi1i eqeq1d oveq12d eqeq12d imbi2d
      w3a 2ralbidv anbi12d df-st elrab2 3anass 3bitr4i ) CEFGHZIUAHZJZKCLZFMZAN
      ZBNZUBLUCZVFVGUDHZCLZVFCLZVGCLZOHZMZPZBIQAIQZRZRIVACUEZVQRCSJVRVEVPUNVCVR
      VQVAICEFGUFUGUHUIKDNZLZFMZVHVIVSLZVFVSLZVGVSLZOHZMZPZBIQAIQZRVQDCVBSVSCMZ
      WAVEWHVPWIVTVDFKVSCTUJWIWGVOABIIWIWFVNVHWIWBVJWEVMVIVSCTWIWCVKWDVLOVFVSCT
      VGVSCTUKULUMUOUPABDUQURVRVEVPUSUT $.

    $( Property of a complex Hilbert-space-valued state.  Definition of
       CH-states in [Mayet3] p. 9.  (Contributed by NM, 25-Jun-2006.)
       (New usage is discouraged.) $)
    ishst $p |- ( S e. CHStates <-> ( S : CH --> ~H /\
          ( normh ` ( S ` ~H ) ) = 1 /\
          A. x e. CH A. y e. CH ( x C_ ( _|_ ` y ) ->
          ( ( ( S ` x ) .ih ( S ` y ) ) = 0 /\
            ( S ` ( x vH y ) ) = ( ( S ` x ) +h ( S ` y ) ) ) ) ) ) $=
      ( vf chil cch co wcel cfv cno c1 wceq cv csp cc0 cva wa wi wral fveq1 wss
      cmap cort chj chst w3a ax-hilex chex anbi1i fveq2d eqeq1d oveq12d eqeq12d
      wf elmap anbi12d imbi2d 2ralbidv df-hst elrab2 3anass 3bitr4i ) CEFUBGZHZ
      ECIZJIZKLZAMZBMZUCIUAZVHCIZVICIZNGZOLZVHVIUDGZCIZVKVLPGZLZQZRZBFSAFSZQZQF
      ECUNZWBQCUEHWCVGWAUFVDWCWBEFCUGUHUOUIEDMZIZJIZKLZVJVHWDIZVIWDIZNGZOLZVOWD
      IZWHWIPGZLZQZRZBFSAFSZQWBDCVCUEWDCLZWGVGWQWAWRWFVFKWRWEVEJEWDCTUJUKWRWPVT
      ABFFWRWOVSVJWRWKVNWNVRWRWJVMOWRWHVKWIVLNVHWDCTZVIWDCTZULUKWRWLVPWMVQVOWDC
      TWRWHVKWIVLPWSWTULUMUPUQURUPABDUSUTWCVGWAVAVB $.

    $( ` [ 0 , 1 ] ` closure of the value of a state.  (Contributed by Mario
       Carneiro, 23-Dec-2013.)  (New usage is discouraged.) $)
    sticl $p |- ( S e. States -> ( A e. CH -> ( S ` A ) e. ( 0 [,] 1 ) ) ) $=
      ( vx vy cst wcel cch cc0 c1 cicc co wf cfv wi chil wceq cv cort wss wral
      chj caddc isst simp1bi ffvelrn ex syl ) BEFZGHIJKZBLZAGFZABMUIFZNUHUJOBMI
      PCQZDQZRMSUMUNUAKBMUMBMUNBMUBKPNDGTCGTCDBUCUDUJUKULGUIABUEUFUG $.

    $( Real closure of the value of a state.  (Contributed by NM, 24-Oct-1999.)
       (Revised by Mario Carneiro, 23-Dec-2013.)
       (New usage is discouraged.) $)
    stcl $p |- ( S e. States -> ( A e. CH -> ( S ` A ) e. RR ) ) $=
      ( cst wcel cch cfv cc0 c1 cicc co cr sticl unitssre sseli syl6 ) BCDAEDAB
      FZGHIJZDPKDABLQKPMNO $.

    $( Closure of the value of a Hilbert-space-valued state.  (Contributed by
       NM, 25-Jun-2006.)  (New usage is discouraged.) $)
    hstcl $p |- ( ( S e. CHStates /\ A e. CH ) -> ( S ` A ) e. ~H ) $=
      ( vx vy chst wcel cch chil wf cfv cno c1 wceq cv cort wss csp co cc0 wral
      chj cva wa wi ishst simp1bi ffvelrnda ) BEFZGHABUHGHBIHBJKJLMCNZDNZOJPUIB
      JZUJBJZQRSMUIUJUARBJUKULUBRMUCUDDGTCGTCDBUEUFUG $.

    $( Unit value of a Hilbert-space-valued state.  (Contributed by NM,
       25-Jun-2006.)  (New usage is discouraged.) $)
    hst1a $p |- ( S e. CHStates -> ( normh ` ( S ` ~H ) ) = 1 ) $=
      ( vx vy chst wcel cch chil wf cfv cno c1 wceq cv cort wss csp co cc0 wral
      chj cva wa wi ishst simp2bi ) ADEFGAHGAIJIKLBMZCMZNIOUFAIZUGAIZPQRLUFUGTQ
      AIUHUIUAQLUBUCCFSBFSBCAUDUE $.

    $( Properties of a Hilbert-space-valued state.  (Contributed by NM,
       25-Jun-2006.)  (New usage is discouraged.) $)
    hstel2 $p |- ( ( ( S e. CHStates /\ A e. CH ) /\ ( B e. CH
       /\ A C_ ( _|_ ` B ) ) ) -> ( ( ( S ` A ) .ih ( S ` B ) ) = 0 /\
                    ( S ` ( A vH B ) ) = ( ( S ` A ) +h ( S ` B ) ) ) ) $=
      ( vx vy wcel cch wa cort cfv wss cv csp co cc0 wceq chj cva wi fveq2 chst
      wral chil wf cno ishst simp3bi ad2antrr sseq1 oveq1d eqeq1d oveq1 eqeq12d
      fveq2d anbi12d imbi12d sseq2d oveq2d oveq2 rspc2v com23 impr adantll mpd
      c1 ) CUAFZAGFZHBGFZABIJZKZHZHDLZELZIJZKZVLCJZVMCJZMNZOPZVLVMQNZCJZVPVQRNZ
      PZHZSZEGUBDGUBZACJZBCJZMNZOPZABQNZCJZWGWHRNZPZHZVFWFVGVKVFGUCCUDUCCJUEJVE
      PWFDECUFUGUHVGVKWFWOSZVFVGVHVJWPVGVHHWFVJWOWEVJWOSAVNKZWGVQMNZOPZAVMQNZCJ
      ZWGVQRNZPZHZSDEABGGVLAPZVOWQWDXDVLAVNUIXEVSWSWCXCXEVRWROXEVPWGVQMVLACTZUJ
      UKXEWAXAWBXBXEVTWTCVLAVMQULUNXEVPWGVQRXFUJUMUOUPVMBPZWQVJXDWOXGVNVIAVMBIT
      UQXGWSWJXCWNXGWRWIOXGVQWHWGMVMBCTZURUKXGXAWLXBWMXGWTWKCVMBAQUSUNXGVQWHWGR
      XHURUMUOUPUTVAVBVCVD $.

    $( Orthogonality property of a Hilbert-space-valued state.  This is a key
       feature distinguishing it from a real-valued state.  (Contributed by NM,
       25-Jun-2006.)  (New usage is discouraged.) $)
    hstorth $p |- ( ( ( S e. CHStates /\ A e. CH ) /\ ( B e. CH
       /\ A C_ ( _|_ ` B ) ) ) -> ( ( S ` A ) .ih ( S ` B ) ) = 0 ) $=
      ( chst wcel cch wa cort cfv wss csp co cc0 wceq chj cva hstel2 simpld ) C
      DEAFEGBFEABHIJGGACIZBCIZKLMNABOLCISTPLNABCQR $.

    $( Orthogonal sum property of a Hilbert-space-valued state.  (Contributed
       by NM, 25-Jun-2006.)  (New usage is discouraged.) $)
    hstosum $p |- ( ( ( S e. CHStates /\ A e. CH ) /\ ( B e. CH
                         /\ A C_ ( _|_ ` B ) ) ) ->
                    ( S ` ( A vH B ) ) = ( ( S ` A ) +h ( S ` B ) ) ) $=
      ( chst wcel cch wa cort cfv wss csp co cc0 wceq chj cva hstel2 simprd ) C
      DEAFEGBFEABHIJGGACIZBCIZKLMNABOLCISTPLNABCQR $.

    $( Sum of a Hilbert-space-valued state of a lattice element and its
       orthocomplement.  (Contributed by NM, 25-Jun-2006.)
       (New usage is discouraged.) $)
    hstoc $p |- ( ( S e. CHStates /\ A e. CH ) ->
                  ( ( S ` A ) +h ( S ` ( _|_ ` A ) ) ) = ( S ` ~H ) ) $=
      ( chst wcel cch cort cfv chj cva chil wss wceq choccl adantl csh shococss
      wa co chsh syl jca hstosum mpdan chjo fveq2d eqtr3d ) BCDZAEDZQZAAFGZHRZB
      GZABGUJBGIRZJBGZUIUJEDZAUJFGKZQULUMLUIUOUPUHUOUGAMNUHUPUGUHAODUPASAPTNUAA
      UJBUBUCUHULUNLUGUHUKJBAUDUENUF $.

    $( Sum of norms of a Hilbert-space-valued state.  (Contributed by NM,
       25-Jun-2006.)  (New usage is discouraged.) $)
    hstnmoc $p |- ( ( S e. CHStates /\ A e. CH ) -> ( ( ( normh `
         ( S ` A ) ) ^ 2 ) + ( ( normh ` ( S ` ( _|_ ` A ) ) ) ^ 2 ) ) = 1 ) $=
      ( chst wcel cch wa cfv cort cva co cno c2 cexp chil oveq1d wceq hstcl jca
      c1 adantl caddc hstoc fveq2d csp cc0 choccl wss csh chsh shococss hstorth
      sylan2 syl mpdan normpyth sylc hst1a sq1 syl6eq adantr 3eqtr3d ) BCDZAEDZ
      FZABGZAHGZBGZIJZKGZLMJZNBGZKGZLMJZVEKGLMJVGKGLMJUAJZSVDVIVLLMVDVHVKKABUBU
      COVDVENDZVGNDZFVEVGUDJUEPZVJVNPVDVOVPABQVCVBVFEDZVPAUFZVFBQULRVDVRAVFHGUG
      ZFVQVDVRVTVCVRVBVSTVCVTVBVCAUHDVTAUIAUJUMTRAVFBUKUNVEVGUOUPVBVMSPVCVBVMSL
      MJSVBVLSLMBUQOURUSUTVA $.

    $( The value of a state is nonnegative.  (Contributed by NM, 24-Oct-1999.)
       (Revised by Mario Carneiro, 23-Dec-2013.)
       (New usage is discouraged.) $)
    stge0 $p |- ( S e. States -> ( A e. CH -> 0 <_ ( S ` A ) ) ) $=
      ( cst wcel cch cfv cc0 c1 cicc cle wbr sticl 0re 1re elicc2i simp2bi syl6
      co cr ) BCDAEDABFZGHIRDZGTJKZABLUATSDUBTHJKGHTMNOPQ $.

    $( The value of a state is less than or equal to one.  (Contributed by NM,
       24-Oct-1999.)  (Revised by Mario Carneiro, 23-Dec-2013.)
       (New usage is discouraged.) $)
    stle1 $p |- ( S e. States -> ( A e. CH -> ( S ` A ) <_ 1 ) ) $=
      ( cst wcel cch cfv cc0 c1 cicc cle wbr sticl 0re 1re elicc2i simp3bi syl6
      co cr ) BCDAEDABFZGHIRDZTHJKZABLUATSDGTJKUBGHTMNOPQ $.

    $( The norm of the value of a Hilbert-space-valued state is less than or
       equal to one.  (Contributed by NM, 25-Jun-2006.)
       (New usage is discouraged.) $)
    hstle1 $p |- ( ( S e. CHStates /\ A e. CH ) ->
                   ( normh ` ( S ` A ) ) <_ 1 ) $=
      ( wcel cch wa cfv cno c1 cle wbr c2 cexp co cc0 chil hstcl normcl resqcld
      cr syl chst caddc choccl sylan2 sqge0d addge01d mpbid hstnmoc sq1 syl6eqr
      cort breqtrd wb normge0 1re 0le1 le2sq mpanr12 syl2anc mpbird ) BUACZADCZ
      EZABFZGFZHIJZVEKLMZHKLMZIJZVCVGVGAUKFZBFZGFZKLMZUBMZVHIVCNVMIJVGVNIJVCVLV
      CVKOCZVLSCVBVAVJDCVOAUCVJBPUDVKQTZUEVCVGVMVCVEVCVDOCZVESCZABPZVDQTZRVCVLV
      PRUFUGVCVNHVHABUHUIUJULVCVRNVEIJZVFVIUMZVTVCVQWAVSVDUNTVRWAEHSCNHIJWBUOUP
      VEHUQURUSUT $.

    $( The norm of a Hilbert-space-valued state equals one iff the state value
       equals the state value of the lattice unit.  (Contributed by NM,
       25-Jun-2006.)  (New usage is discouraged.) $)
    hst1h $p |- ( ( S e. CHStates /\ A e. CH ) ->
                  ( ( normh ` ( S ` A ) ) = 1 <-> ( S ` A ) = ( S ` ~H ) ) ) $=
      ( wcel cfv cno c1 wceq chil c0v cva co syl adantr c2 cexp cc0 cmin eqtr3d
      caddc cc chst cch wa hstcl ax-hvaddid cort ax-1cn cr choccl sylan2 normcl
      resqcld recnd pncan2 sylancr oveq1 syl6req oveq1d hstnmoc sylan9eqr 1m1e0
      sq1 syl6eq ex wb sqeq0 norm-i bitrd sylibd imp oveq2d hstoc fveq2 impbida
      hst1a ) BUACZAUBCZUCZABDZEDZFGZVSHBDZGZVRWAUCZVSIJKZVSWBVRWEVSGZWAVRVSHCW
      FABUDVSUELMWDVSAUFDZBDZJKZWEWBWDWHIVSJVRWAWHIGZVRWAWHEDZNOKZPGZWJVRWAWMWD
      WLFFQKZPWDFWLSKZFQKZWLWNVRWPWLGZWAVRFTCWLTCWQUGVRWLVRWKVRWHHCZWKUHCVQVPWG
      UBCWRAUIWGBUDUJZWHUKLZULUMFWLUNUOMWDWOFFQWAVRWOVTNOKZWLSKFWAFXAWLSWAXAFNO
      KFVTFNOUPVBUQURABUSUTURRVAVCVDVRWMWKPGZWJVRWKTCWMXBVEVRWKWTUMWKVFLVRWRXBW
      JVEWSWHVGLVHVIVJVKVRWIWBGWAABVLMRRWCVRVTWBEDZFVSWBEVMVPXCFGVQBVOMUTVN $.

    $( The norm of a Hilbert-space-valued state equals zero iff the state value
       equals zero.  (Contributed by NM, 30-Jun-2006.)
       (New usage is discouraged.) $)
    hst0h $p |- ( ( S e. CHStates /\ A e. CH ) ->
                  ( ( normh ` ( S ` A ) ) = 0 <-> ( S ` A ) = 0h ) ) $=
      ( chst wcel cch wa cfv chil cno cc0 wceq c0v wb hstcl norm-i syl ) BCDAED
      FABGZHDQIGJKQLKMABNQOP $.

    $( Pythagorean property of a Hilbert-space-valued state for orthogonal
       vectors ` A ` and ` B ` .  (Contributed by NM, 26-Jun-2006.)
       (New usage is discouraged.) $)
    hstpyth $p |- ( ( ( S e. CHStates /\ A e. CH ) /\ ( B e. CH /\
               A C_ ( _|_ ` B ) ) ) -> ( ( normh ` ( S ` ( A vH B ) ) ) ^ 2 ) =
         ( ( ( normh ` ( S ` A ) ) ^ 2 ) + ( ( normh ` ( S ` B ) ) ^ 2 ) ) ) $=
      ( chst wcel cch wa cort cfv wss chj co cno cexp cva caddc chil wceq hstcl
      c2 hstosum fveq2d oveq1d csp cc0 adantr ad2ant2r hstorth normpyth syl3anc
      3impia eqtrd ) CDEZAFEZGZBFEZABHIJZGZGZABKLCIZMIZTNLACIZBCIZOLZMIZTNLZVBM
      ITNLVCMITNLPLZUSVAVETNUSUTVDMABCUAUBUCUSVBQEZVCQEZVBVCUDLUERZVFVGRZUOVHUR
      ACSUFUMUPVIUNUQBCSUGABCUHVHVIVJVKVBVCUIUKUJUL $.

    $( Ordering property of a Hilbert-space-valued state.  (Contributed by NM,
       26-Jun-2006.)  (New usage is discouraged.) $)
    hstle $p |- ( ( ( S e. CHStates /\ A e. CH ) /\ ( B e. CH /\ A C_ B ) )
                   -> ( normh ` ( S ` A ) ) <_ ( normh ` ( S ` B ) ) ) $=
      ( wcel cch wa cfv cno cle wbr c2 cexp co caddc adantlr syl sylan2 adantrr
      c1 cr chst wss cort wceq hstnmoc oveq2d hstcl normcl resqcld adantr recnd
      chil choccl add12d eqtr3d chj ococ sseq2d biimpar jca hstpyth cc0 anassrs
      chjcl normge0 hstle1 le2sq2 mpanr1 syl21anc syl6breq eqbrtrrd wb readdcld
      1re sq1 leadd2 mp3an2 syl2anc mpbid eqbrtrd leadd1 mp3an3 mpbird le2sq )
      CUADZAEDZFZBEDZABUBZFZFZACGZHGZBCGZHGZIJZWMKLMZWOKLMZIJZWKWSWQSNMZWRSNMZI
      JZWKWTWRWQBUCGZCGZHGZKLMZNMZNMZXAIWGWHWTXHUDWIWGWHFZWQWRXFNMZNMWTXHXIXJSW
      QNWEWHXJSUDWFBCUEOUFXIWQWRXFXIWQWGWQTDZWHWGWMWGWLULDZWMTDZACUGZWLUHPZUIUJ
      ZUKXIWRWEWHWRTDZWFWEWHFZWOXRWNULDZWOTDZBCUGZWNUHPZUIOZUKXIXFWEWHXFTDWFXRX
      EXRXDULDZXETDWHWEXCEDZYDBUMZXCCUGQXDUHPUIOZUKUNUORWKXGSIJZXHXAIJZWKAXCUPM
      ZCGZHGZKLMZXGSIWJWGYEAXCUCGZUBZFYMXGUDWJYEYOWHYEWIYFUJWHYOWIWHYNBABUQURUS
      UTAXCCVAQWGWHYMSIJWIXIYMSKLMZSIXIYLTDZVBYLIJZYLSIJZYMYPIJZXIYKULDZYQWEWFW
      HUUAWFWHFZWEYJEDZUUAWHWFYEUUCYFAXCVDQZYJCUGQVCZYKUHPXIUUAYRUUEYKVEPWEWFWH
      YSUUBWEUUCYSUUDYJCVFQVCYQYRFSTDZYSYTVNYLSVGVHVIVOVJRVKWGWHYHYIVLZWIXIXGTD
      ZXQUUGXIWQXFXPYGVMYCUUHUUFXQUUGVNXGSWRVPVQVRRVSVTWGWHWSXBVLZWIXIXKXQUUIXP
      YCXKXQUUFUUIVNWQWRSWAWBVRRWCWGWHWPWSVLZWIXIXMVBWMIJZFZXTVBWOIJZFZUUJWGUUL
      WHWGXMUUKXOWGXLUUKXNWLVEPUTUJWEWHUUNWFXRXTUUMYBXRXSUUMYAWNVEPUTOWMWOWDVRR
      WC $.

    $( Ordering property of a Hilbert-space-valued state.  (Contributed by NM,
       30-Jun-2006.)  (New usage is discouraged.) $)
    hstles $p |- ( ( ( S e. CHStates /\ A e. CH ) /\ ( B e. CH /\ A C_ B ) )
             -> ( ( normh ` ( S ` A ) ) = 1 -> ( normh ` ( S ` B ) ) = 1 ) ) $=
      ( chst wcel cch wa wss cfv cno wceq cle wbr simpr hstle eqbrtrrd ad2ant2r
      c1 adantr cr ex hstle1 jctild wb chil hstcl normcl 1re mpan2 3syl sylibrd
      letri3 ) CDEZAFEZGBFEZABHZGGZACIJIZRKZBCIZJIZRLMZRVALMZGZVARKZUQUSVCVBUQU
      SVCUQUSGURRVALUQUSNUQURVALMUSABCOSPUAUMUOVBUNUPBCUBQUCUMUOVEVDUDZUNUPUMUO
      GUTUEEVATEZVFBCUFUTUGVGRTEVFUHVARULUIUJQUK $.

    $( A Hilbert-space-valued state orthogonal to the state of the lattice unit
       is zero.  (Contributed by NM, 25-Jun-2006.)
       (New usage is discouraged.) $)
    hstoh $p |- ( ( S e. CHStates /\ A e. CH /\ ( ( S ` A ) .ih ( S ` ~H ) ) =
                  0 ) -> ( S ` A ) = 0h ) $=
      ( chst wcel cch cfv chil csp co cc0 wceq wa cort caddc hstcl syl recnd wb
      3adant3 mpbid w3a cno c0v c2 cexp cva choccl sylan2 syl3anc normsq eqcomd
      his7 wss ococ eqimss2 jca adantl hstorth mpdan oveq12d cr resqcld addid1d
      normcl 3eqtrrd hstoc oveq2d eqtrd id sylan9eq 3impa cc sqeq0 hst0h ) BCDZ
      AEDZABFZGBFZHIZJKZUAZVQUBFZJKZVQUCKZWAWBUDUEIZJKZWCVOVPVTWFVOVPLZVTWEVSJW
      GWEVQVQAMFZBFZUFIZHIZVSWGWKVQVQHIZVQWIHIZNIZWEJNIWEWGVQGDZWOWIGDZWKWNKABO
      ZWQVPVOWHEDZWPAUGZWHBOUHVQVQWIULUIWGWLWEWMJNWGWEWLWGWOWEWLKWQVQUJPUKWGWRA
      WHMFZUMZLZWMJKVPXBVOVPWRXAWSVPWTAKXAAUNAWTUOPUPUQAWHBURUSUTWGWEWGWEWGWBWG
      WOWBVADWQVQVDPZVBQVCVEWGWJVRVQHABVFVGVHVTVIVJVKVOVPWFWCRZVTWGWBVLDXDWGWBX
      CQWBVMPSTVOVPWCWDRVTABVNST $.

    $( A Hilbert-space-valued state is zero at the zero subspace.  (Contributed
       by NM, 30-Jun-2006.)  (New usage is discouraged.) $)
    hst0 $p |- ( S e. CHStates -> ( S ` 0H ) = 0h ) $=
      ( chst wcel c0h cfv chil csp co cc0 wceq c0v cch h0elch wa cort wss helch
      choccli ch0lei hstorth mpanr12 mpan2 hstoh mp3an2 mpdan ) ABCZDAEZFAEGHIJ
      ZUGKJZUFDLCZUHMUFUJNFLCDFOEZPUHQUKFQRSDFATUAUBUFUJUHUIMDAUCUDUE $.

    $( The value of a state at the full Hilbert space.  (Contributed by NM,
       23-Oct-1999.)  (New usage is discouraged.) $)
    sthil $p |- ( S e. States -> ( S ` ~H ) = 1 ) $=
      ( vx vy cst wcel cch cc0 c1 cicc co wf chil cfv wceq cv cort wss chj wral
      caddc wi isst simp2bi ) ADEFGHIJAKLAMHNBOZCOZPMQUDUERJAMUDAMUEAMTJNUACFSB
      FSBCAUBUC $.

    $( The value of a state on a join.  (Contributed by NM, 23-Oct-1999.)
       (New usage is discouraged.) $)
    stj $p |- ( S e. States ->
         ( ( ( A e. CH /\ B e. CH ) /\ A C_ ( _|_ ` B ) ) ->
         ( S ` ( A vH B ) ) = ( ( S ` A ) + ( S ` B ) ) ) ) $=
      ( vx vy wcel cch cort cfv wss chj co caddc wceq cv wi wral fveq2d fveq2
      c1 cst wa cc0 cicc wf chil isst simp3bi sseq1 oveq1 oveq1d eqeq12d sseq2d
      imbi12d oveq2 oveq2d rspc2v syl5com impd ) CUAFZAGFBGFUBZABHIZJZABKLZCIZA
      CIZBCIZMLZNZUTDOZEOZHIZJZVJVKKLZCIZVJCIZVKCIZMLZNZPZEGQDGQZVAVCVIPZUTGUCT
      UDLCUEUFCITNWADECUGUHVTWBAVLJZAVKKLZCIZVFVQMLZNZPDEABGGVJANZVMWCVSWGVJAVL
      UIWHVOWEVRWFWHVNWDCVJAVKKUJRWHVPVFVQMVJACSUKULUNVKBNZWCVCWGVIWIVLVBAVKBHS
      UMWIWEVEWFVHWIWDVDCVKBAKUORWIVQVGVFMVKBCSUPULUNUQURUS $.
  $}

  ${
    sto1.1 $e |- A e. CH $.
    $( The state of a subspace plus the state of its orthocomplement.
       (Contributed by NM, 24-Oct-1999.)  (New usage is discouraged.) $)
    sto1i $p |- ( S e. States -> ( ( S ` A ) + ( S ` ( _|_ ` A ) ) ) = 1 ) $=
      ( cst wcel cort cfv chj co chil caddc c1 chjoi fveq2i cch wa wceq choccli
      wss pm3.2i csh chshii shococss ax-mp stj mp2ani sthil 3eqtr3a ) BDEZAAFGZ
      HIZBGZJBGABGUJBGKIZLUKJBACMNUIAOEZUJOEZPAUJFGSZULUMQUNUOCACRTAUAEUPACUBAU
      CUDAUJBUEUFBUGUH $.

    $( The state of the orthocomplement.  (Contributed by NM, 24-Oct-1999.)
       (New usage is discouraged.) $)
    sto2i $p |- ( S e. States ->
               ( S ` ( _|_ ` A ) ) = ( 1 - ( S ` A ) ) ) $=
      ( cst wcel c1 cfv cmin co cort wceq caddc sto1i cc wb cch stcl mpi recnd
      cr choccli ax-1cn subadd mp3an1 syl2anc mpbird eqcomd ) BDEZFABGZHIZAJGZB
      GZUHUJULKZUIULLIFKZABCMUHUINEZULNEZUMUNOZUHUIUHAPEUITECABQRSUHULUHUKPEULT
      EACUAUKBQRSFNEUOUPUQUBFUIULUCUDUEUFUG $.

    $( If a state is greater than or equal to 1, it is 1.  (Contributed by NM,
       11-Nov-1999.)  (New usage is discouraged.) $)
    stge1i $p |- ( S e. States ->
                ( 1 <_ ( S ` A ) <-> ( S ` A ) = 1 ) ) $=
      ( cst wcel c1 cfv cle wbr wceq wa cch stle1 mpi anim1i ex cr wb stcl 1re
      letri3 sylancl sylibrd 1le1 breq2 mpbiri impbid1 ) BDEZFABGZHIZUIFJZUHUJU
      IFHIZUJKZUKUHUJUMUHULUJUHALEZULCABMNOPUHUIQEZFQEUKUMRUHUNUOCABSNTUIFUAUBU
      CUKUJFFHIUDUIFFHUEUFUG $.

    $( If a state is less than or equal to 0, it is 0.  (Contributed by NM,
       11-Nov-1999.)  (New usage is discouraged.) $)
    stle0i $p |- ( S e. States ->
                ( ( S ` A ) <_ 0 <-> ( S ` A ) = 0 ) ) $=
      ( cst wcel cfv cc0 cle wbr wceq wa cch stge0 mpi anim2i expcom cr wb stcl
      0re letri3 sylancl sylibrd 0le0 breq1 mpbiri impbid1 ) BDEZABFZGHIZUIGJZU
      HUJUJGUIHIZKZUKUJUHUMUHULUJUHALEZULCABMNOPUHUIQEZGQEUKUMRUHUNUOCABSNTUIGU
      AUBUCUKUJGGHIUDUIGGHUEUFUG $.
  $}

  ${
    stle.1 $e |- A e. CH $.
    stle.2 $e |- B e. CH $.
    $( Ordering law for states.  (Contributed by NM, 24-Oct-1999.)
       (New usage is discouraged.) $)
    stlei $p |- ( S e. States -> ( A C_ B -> ( S ` A ) <_ ( S ` B ) ) ) $=
      ( wcel wss cfv cle wbr wa cort caddc co cch mpi c1 adantr cr stcl cst chj
      wceq csh chshii shococss ax-mp sstr2 choccli pm3.2i jctil stj syl5 chjcli
      imp stle1 sto1i breqtrrd eqbrtrrd w3a wb 3jca leadd1 syl mpbird ex ) CUAF
      ZABGZACHZBCHZIJZVGVHKZVKVIBLHZCHZMNZVJVNMNZIJZVLAVMUBNZCHZVOVPIVGVHVSVOUC
      ZVHAOFZVMOFZKZAVMLHZGZKVGVTVHWEWCVHBWDGZWEBUDFWFBEUEBUFUGABWDUHPWAWBDBEUI
      ZUJUKAVMCULUMUOVGVSVPIJVHVGVSQVPIVGVROFVSQIJAVMDWGUNVRCUPPBCEUQURRUSVLVIS
      FZVJSFZVNSFZUTZVKVQVAVGWKVHVGWHWIWJVGWAWHDACTPVGBOFWIEBCTPVGWBWJWGVMCTPVB
      RVIVJVNVCVDVEVF $.

    $( Ordering law for states.  (Contributed by NM, 24-Oct-1999.)
       (New usage is discouraged.) $)
    stlesi $p |- ( S e. States ->
                ( A C_ B -> ( ( S ` A ) = 1 -> ( S ` B ) = 1 ) ) ) $=
      ( cst wcel wss cfv c1 wceq wa cle wbr cch stle1 mpi adantr wb cr ad2antll
      stlei imp adantrr breq1 mpbid stcl 1re jctir letri3 syl mpbir2and exp32 )
      CFGZABHZACIZJKZBCIZJKZUNUOUQLZLZUSURJMNZJURMNZUNVBUTUNBOGZVBEBCPQRVAUPURM
      NZVCUNUOVEUQUNUOVEABCDEUBUCUDUQVEVCSUNUOUPJURMUEUAUFVAURTGZJTGZLZUSVBVCLS
      UNVHUTUNVFVGUNVDVFEBCUGQUHUIRURJUJUKULUM $.

    $( Join of components of Sasaki arrow ->1.  (Contributed by NM,
       24-Oct-1999.)  (New usage is discouraged.) $)
    stji1i $p |- ( S e. States -> ( S ` ( ( _|_ ` A ) vH ( A i^i B ) ) ) =
         ( ( S ` ( _|_ ` A ) ) + ( S ` ( A i^i B ) ) ) ) $=
      ( cst wcel cort cfv cch cin wa wss chj caddc wceq choccli chincli pm3.2i
      co inss1 chsscon3i mpbi stj mp2ani ) CFGAHIZJGZABKZJGZLUFUHHIMZUFUHNTCIUF
      CIUHCIOTPUGUIADQABDERZSUHAMUJABUAUHAUKDUBUCUFUHCUDUE $.

    $( State of component of unit meet.  (Contributed by NM, 11-Nov-1999.)
       (New usage is discouraged.) $)
    stm1i $p |- ( S e. States ->
               ( ( S ` ( A i^i B ) ) = 1 -> ( S ` A ) = 1 ) ) $=
      ( cst wcel cin cfv c1 cle wbr wss inss1 chincli stlei mpi breq1 syl5ibcom
      wceq stge1i sylibd ) CFGZABHZCIZJTZJACIZKLZUGJTUCUEUGKLZUFUHUCUDAMUIABNUD
      ACABDEODPQUEJUGKRSACDUAUB $.

    $( State of component of unit meet.  (Contributed by NM, 11-Nov-1999.)
       (New usage is discouraged.) $)
    stm1ri $p |- ( S e. States ->
               ( ( S ` ( A i^i B ) ) = 1 -> ( S ` B ) = 1 ) ) $=
      ( cin cfv c1 wceq cst wcel incom fveq2i eqeq1i stm1i syl5bi ) ABFZCGZHIBA
      FZCGZHICJKBCGHIRTHQSCABLMNBACEDOP $.

    $( Sum of states whose meet is 1.  (Contributed by NM, 11-Nov-1999.)
       (New usage is discouraged.) $)
    stm1addi $p |- ( S e. States -> ( ( S ` ( A i^i B ) ) = 1 ->
                  ( ( S ` A ) + ( S ` B ) ) = 2 ) ) $=
      ( cst wcel cin cfv c1 wceq wa caddc co c2 stm1i stm1ri jcad oveq12 df-2
      syl6eqr syl6 ) CFGZABHCIJKZACIZJKZBCIZJKZLZUEUGMNZOKUCUDUFUHABCDEPABCDEQR
      UIUJJJMNOUEJUGJMSTUAUB $.

    $( If the sum of 2 states is 2, then each state is 1.  (Contributed by NM,
       12-Nov-1999.)  (New usage is discouraged.) $)
    staddi $p |- ( S e. States -> ( ( ( S ` A ) + ( S ` B ) ) = 2 ->
                ( S ` A ) = 1 ) ) $=
      ( wcel cfv caddc co c2 wceq clt wbr wn c1 cr mpi wa cle 1re stcl readdcld
      cst wne cch ltne necomd sylan ex necon2bd stle1 leadd2dd adantr wi ltadd1
      a1i w3a biimpd syl3anc imp readdcl sylancl readdcli lelttr df-2 syl6breqr
      mp2and con3d wo wb leloe mpbid ord 3syld ) CUCFZACGZBCGZHIZJKVRJLMZNVPOLM
      ZNVPOKZVOVSVRJVOVSVRJUDZVOVRPFZVSWBVOVPVQVOAUEFZVPPFZDACUAQZVOBUEFZVQPFEB
      CUAQZUBZWCVSRJVRVRJUFUGUHUIUJVOVTVSVOVTVSVOVTRZVROOHIZJLWJVRVPOHIZSMZWLWK
      LMZVRWKLMZVOWMVTVOVQOVPWHOPFZVOTUPZWFVOWGVQOSMEBCUKQULUMVOVTWNVOWEWPWPVTW
      NUNWFWQWQWEWPWPUQVTWNVPOOUOURUSUTVOWMWNRWOUNZVTVOWCWLPFZWKPFZWRWIVOWEWPWS
      WFTVPOVAVBWTVOOOTTVCUPVRWLWKVDUSUMVGVEVFUIVHVOVTWAVOVPOSMZVTWAVIZVOWDXADA
      CUKQVOWEWPXAXBVJWFTVPOVKVBVLVMVN $.

    ${
      stm1add3.3 $e |- C e. CH $.
      $( Sum of states whose meet is 1.  (Contributed by NM, 11-Nov-1999.)
         (New usage is discouraged.) $)
      stm1add3i $p |- ( S e. States -> ( ( S ` ( ( A i^i B ) i^i C ) ) = 1 ->
                  ( ( ( S ` A ) + ( S ` B ) ) + ( S ` C ) ) = 3 ) ) $=
        ( cst wcel cin cfv c1 wceq caddc co c2 wa c3 chincli stm1i syld syl6eqr
        stm1addi stm1ri jcad oveq12 df-3 syl6 ) DHIZABJZCJDKLMZADKBDKNOZPMZCDKZ
        LMZQZULUNNOZRMUIUKUMUOUIUKUJDKLMUMUJCDABEFSZGTABDEFUCUAUJCDURGUDUEUPUQP
        LNORULPUNLNUFUGUBUH $.

      $( If the sum of 3 states is 3, then each state is 1.  (Contributed by
         NM, 13-Nov-1999.)  (New usage is discouraged.) $)
      stadd3i $p |- ( S e. States ->
  ( ( ( ( S ` A ) + ( S ` B ) ) + ( S ` C ) ) = 3 -> ( S ` A ) = 1 ) ) $=
        ( wcel cfv caddc co c3 wceq c1 cr mpi clt wbr cle 1re cst recnd addassd
        cch stcl eqeq1d wn eqcom wne wi readdcld ltne ex syl necon2bd syl5bi wa
        readdcli a1i 1red le2addd leadd2dd adantr w3a ltadd1 biimpd syl3anc imp
        stle1 readdcl sylancl lelttr mp2and c2 df-3 df-2 oveq1i addassi 3eqtrri
        ax-1cn syl6breq con3d wo wb leloe mpbid ord 3syld sylbid ) DUAHZADIZBDI
        ZJKCDIZJKZLMWKWLWMJKZJKZLMZWKNMZWJWNWPLWJWKWLWMWJWKWJAUDHZWKOHZEADUEPZU
        BWJWLWJBUDHZWLOHFBDUEPZUBWJWMWJCUDHZWMOHGCDUEPZUBUCUFWJWQWPLQRZUGZWKNQR
        ZUGWRWQLWPMWJXGWPLUHWJXFLWPWJWPOHZXFLWPUIZUJWJWKWOXAWJWLWMXCXEUKZUKZXIX
        FXJWPLULUMUNUOUPWJXHXFWJXHXFWJXHUQZWPNNNJKZJKZLQXMWPWKXNJKZSRZXPXOQRZWP
        XOQRZWJXQXHWJWOXNWKXKXNOHZWJNNTTURZUSZXAWJWLWMNNXCXEWJUTZYCWJXBWLNSRFBD
        VIPWJXDWMNSRGCDVIPVAVBVCWJXHXRWJWTNOHZXTXHXRUJXAYCYBWTYDXTVDXHXRWKNXNVE
        VFVGVHWJXQXRUQXSUJZXHWJXIXPOHZXOOHZYEXLWJWTXTYFXAYAWKXNVJVKYGWJNXNTYAUR
        USWPXPXOVLVGVCVMLVNNJKXNNJKXOVOVNXNNJVPVQNNNVTVTVTVRVSWAUMWBWJXHWRWJWKN
        SRZXHWRWCZWJWSYHEADVIPWJWTYDYHYIWDXATWKNWEVKWFWGWHWI $.
    $}
  $}

  $( The state of the zero subspace.  (Contributed by NM, 24-Oct-1999.)
     (New usage is discouraged.) $)
  st0 $p |- ( S e. States -> ( S ` 0H ) = 0 ) $=
    ( cst wcel chil cort cfv c1 co c0h cc0 helch sto2i sthil oveq2d eqtrd choc1
    cmin fveq2i 1m1e0 3eqtr3g ) ABCZDEFZAFZGGQHZIAFJUAUCGDAFZQHUDDAKLUAUEGGQAMN
    OUBIAPRST $.

  ${
    $d u x A $.  $d u x B $.
    strlem1.1 $e |- A e. CH $.
    strlem1.2 $e |- B e. CH $.
    $( Lemma for strong state theorem: if closed subspace ` A ` is not
       contained in ` B ` , there is a unit vector ` u ` in their difference.
       (Contributed by NM, 25-Oct-1999.)  (New usage is discouraged.) $)
    strlem1 $p |- ( -. A C_ B -> E. u e. ( A \ B ) ( normh ` u ) = 1 ) $=
      ( vx wn wcel cno cfv c1 wceq co csm wa 3syl cc0 c0v syl cmul wss cdif wex
      cv wrex c0 neq0 ssdif0 xchnxbir cdiv cc wi cr eldifi cheli normcl cch ch0
      chil ax-mp eldifn mt2 eleq1 mtbiri con2i wb norm-i mtbird neqned rereccld
      csh chshii shmulcl mp3an1 ex recidd oveq1d ax-hvmulass syl3anc ax-hvmulid
      recnd 3eqtr3d eleq1d con3d anim12d eldif 3imtr4g pm2.43i norm-iii syl2anc
      sylibd cabs clt wbr cle wne necon2ai normgt0 mpbid 1re 0le1 divge0 absidd
      mpanl12 recid2d 3eqtrd fveq2 eqeq1d rspcev exlimiv sylbi ) BCUAZGFUDZBCUB
      ZHZFUCZAUDZIJZKLZAXNUEZXNUFLXPXLFXNUGBCUHUIXOXTFXOKXMIJZUJMZXMNMZXNHZYCIJ
      ZKLZXTXOYDXOXMBHZXMCHZGZOYCBHZYCCHZGZOXOYDXOYGYJYIYLXOYBUKHZYGYJULXOYBXOY
      AXOYGXMUSHZYAUMHZXMBCUNZXMBDUOZXMUPPZXOYAQXOYAQLZXMRLZYTXOYTXORXNHZUUARCH
      ZCUQHUUBECURUTRBCVAVBXMRXNVCVDZVEXOYGYNYSYTVFYPYQXMVGPVHVIZVJZWAZYMYGYJBV
      KHYMYGYJBDVLYBXMBVMVNVOSXOYKYHXOYKYAYCNMZCHZYHXOYAUKHZYKUUHULXOYAYRWAZUUI
      YKUUHCVKHUUIYKUUHCEVLYAYCCVMVNVOSXOUUGXMCXOYAYBTMZXMNMZKXMNMZUUGXMXOUUKKX
      MNXOYAUUJUUDVPVQXOUUIYMYNUULUUGLUUJUUFXOYGYNYPYQSZYAYBXMVRVSXOYGYNUUMXMLY
      PYQXMVTPWBWCWKWDWEXMBCWFYCBCWFWGWHXOYEYBWLJZYATMZYBYATMKXOYMYNYEUUPLUUFUU
      NYBXMWIWJXOUUOYBYATXOYBUUEXOYOQYAWMWNZQYBWOWNZYRXOXMRWPZUUQXOXMRUUCWQXOYG
      YNUUSUUQVFYPYQXMWRPWSKUMHQKWOWNYOUUQOUURWTXAKYAXBXDWJXCVQXOYAUUJUUDXEXFXS
      YFAYCXNXQYCLXRYEKXQYCIXGXHXIWJXJXK $.
  $}

  ${
    $d x C $.  $d x u $.
    strlem2.1 $e |- S = ( x e. CH |->
                           ( ( normh ` ( ( projh ` x ) ` u ) ) ^ 2 ) ) $.
    $( Lemma for strong state theorem.  (Contributed by NM, 28-Oct-1999.)
       (New usage is discouraged.) $)
    strlem2 $p |- ( C e. CH ->
                  ( S ` C ) = ( ( normh ` ( ( projh ` C ) ` u ) ) ^ 2 ) ) $=
      ( cv cpjh cfv cno c2 cexp cch wceq fveq2 fveq1d fveq2d oveq1d ovex fvmpt
      co ) ACBFZAFZGHZHZIHZJKTUACGHZHZIHZJKTLDUBCMZUEUHJKUIUDUGIUIUAUCUFUBCGNOP
      QEUHJKRS $.
  $}

  ${
    $d x z w u $.  $d z w S $.
    strlem3a.1 $e |- S = ( x e. CH |->
                           ( ( normh ` ( ( projh ` x ) ` u ) ) ^ 2 ) ) $.
    $( Lemma for strong state theorem: the function ` S ` , that maps a closed
       subspace to the square of the norm of its projection onto a unit vector,
       is a state.  (Contributed by NM, 28-Oct-1999.)
       (New usage is discouraged.) $)
    strlem3a $p |- ( ( u e. ~H /\ ( normh ` u ) = 1 ) -> S e. States ) $=
      ( vz vw cv chil wcel cno cfv c1 wceq cch co cpjh c2 cexp cle wbr cc0 cicc
      wa wf cort wss chj caddc wi wral cst cr id simpl pjhcl syl2anr normcl syl
      resqcld sqge0d normge0 pjnorm simplr breqtrd w3a cn0 exple1 mpan2 syl3anc
      0re elicc2i syl3anbrc fmptd helch strlem2 ax-mp pjch1 fveq2d oveq1d oveq1
      1re sq1 syl6eq sylan9eq syl5eq cva pjcjt2 imp pjopyth eqtrd chjcl 3adant3
      2nn0 adantr 3simpa oveqan12d 3eqtr4d 3exp1 com3r ralrimdv ralrimiv isst )
      BGZHIZXCJKZLMZUCZNUALUBOZCUDHCKZLMEGZFGZUEKUFZXJXKUGOZCKZXJCKZXKCKZUHOZMZ
      UIZFNUJZENUJCUKIXGANXCAGZPKKZJKZQROZXHCXGYANIZUCZYDULIUAYDSTYDLSTZYDXHIYF
      YCYFYBHIZYCULIZYEYEXDYHXGYEUMZXDXFUNZXCYAUOUPZYBUQURZUSYFYCYMUTYFYIUAYCST
      ZYCLSTZYGYMYFYHYNYLYBVAURYFYCXELSYEYEXDYCXESTXGYJYKXCYAVBUPXDXFYEVCVDYIYN
      YOVEQVFIYGWMYCQVGVHVIUALYDVJWAVKVLDVMXGXIXCHPKKZJKZQROZLHNIXIYRMVNABHCDVO
      VPXDXFYRXEQROZLXDYQXEQRXDYPXCJXCVQVRVSXFYSLQROLXELQRVTWBWCWDWEXGXTENXGXJN
      IZXSFNXDYTXKNIZXSUIUIXFYTUUAXDXSYTUUAXDXLXRYTUUAXDVEZXLUCZXCXMPKKZJKZQROZ
      XCXJPKKZJKQROZXCXKPKKZJKQROZUHOZXNXQUUCUUFUUGUUIWFOZJKZQROZUUKUUCUUEUUMQR
      UUCUUDUULJUUBXLUUDUULMXCXKXJWGWHVRVSUUBXLUUNUUKMXCXKXJWIWHWJUUCXMNIZXNUUF
      MUUBUUOXLYTUUAUUOXDXJXKWKWLWNABXMCDVOURUUCYTUUAUCZXQUUKMUUBUUPXLYTUUAXDWO
      WNYTUUAXOUUHXPUUJUHABXJCDVOABXKCDVOWPURWQWRWSWNWTXAEFCXBVL $.
  $}

  ${
    $d x ph $.  $d x u $.  $d x A $.  $d x B $.
    strlem3.1 $e |- S = ( x e. CH |->
                          ( ( normh ` ( ( projh ` x ) ` u ) ) ^ 2 ) ) $.
    strlem3.2 $e |- ( ph <-> ( u e. ( A \ B ) /\ ( normh ` u ) = 1 ) ) $.
    strlem3.3 $e |- A e. CH $.
    strlem3.4 $e |- B e. CH $.
    $( Lemma for strong state theorem: the function ` S ` , that maps a closed
       subspace to the square of the norm of its projection onto a unit vector,
       is a state.  This lemma restates the hypotheses in a more convenient
       form to work with.  (Contributed by NM, 28-Oct-1999.)
       (New usage is discouraged.) $)
    strlem3 $p |- ( ph -> S e. States ) $=
      ( cv cdif wcel cno cfv c1 wceq wa cst chil cheli syl strlem3a sylan sylbi
      eldifi ) ACKZDELMZUGNOPQZRFSMZHUHUGTMZUIUJUHUGDMUKUGDEUFUGDIUAUBBCFGUCUDU
      E $.

    $( Lemma for strong state theorem.  (Contributed by NM, 2-Nov-1999.)
       (New usage is discouraged.) $)
    strlem4 $p |- ( ph -> ( S ` A ) = 1 ) $=
      ( cfv cv cpjh cno c2 cexp co c1 wcel wceq cch strlem2 cdif wa eldifi pjid
      ax-mp mpan fveq2d eqeq2 syl5ib mpan9 sylbi oveq1d sq1 syl6eq syl5eq ) ADF
      KZCLZDMKKZNKZOPQZRDUASZURVBTIBCDFGUBUGAVBROPQRAVAROPAUSDEUCSZUSNKZRTZUDVA
      RTZHVDUSDSZVFVGUSDEUEVHVAVETVFVGVHUTUSNVCVHUTUSTIUSDUFUHUIVERVAUJUKULUMUN
      UOUPUQ $.

    $( Lemma for strong state theorem.  (Contributed by NM, 2-Nov-1999.)
       (New usage is discouraged.) $)
    strlem5 $p |- ( ph -> ( S ` B ) < 1 ) $=
      ( wcel cno cfv c1 wceq wa clt wbr c2 cexp cv cdif co cch strlem2 ax-mp wn
      cpjh eldif chil cheli pjnel biimpa sylan sylbi breq2 syl5ib impcom eldifi
      wb mpan cc0 cle pjhcli normcl syl normge0 0le1 lt2sq mpanr12 syl2anc 3syl
      cr 1re adantr mpbid syl5eqbr sq1 syl6breq ) ACUAZDEUBKZVTLMZNOZPZEFMZNQRH
      WDWENSTUCZNQWDWEVTEUHMMZLMZSTUCZWFQEUDKZWEWIOJBCEFGUEUFWDWHNQRZWIWFQRZWCW
      AWKWAWHWBQRZWCWKWAVTDKZVTEKUGZPWMVTDEUIWNVTUJKZWOWMVTDIUKZWPWOWMWJWPWOWMU
      TJVTEULVAUMUNUOWBNWHQUPUQURWAWKWLUTZWCWAWNWPWRVTDEUSWQWPWHVMKZVBWHVCRZWRW
      PWGUJKZWSVTEJVDZWGVEVFWPXAWTXBWGVGVFWSWTPNVMKVBNVCRWRVNVHWHNVIVJVKVLVOVPV
      QVRVSUO $.

    $( Lemma for strong state theorem.  (Contributed by NM, 2-Nov-1999.)
       (New usage is discouraged.) $)
    strlem6 $p |- ( ph -> -. ( ( S ` A ) = 1 -> ( S ` B ) = 1 ) ) $=
      ( cfv c1 wceq wn wa wi strlem4 cst wcel cch cr strlem3 stcl strlem5 ltned
      mpisyl neneqd jca annim sylib ) ADFKLMZEFKZLMZNZOUKUMPNAUKUNABCDEFGHIJQAU
      LLAULLAFRSETSULUASABCDEFGHIJUBJEFUCUFABCDEFGHIJUDUEUGUHUKUMUIUJ $.
  $}

  ${
    $d x u f A $.  $d x u f B $.
    str.1 $e |- A e. CH $.
    str.2 $e |- B e. CH $.
    $( Strong state theorem.  The states on a Hilbert lattice define an
       ordering.  Remark in [Mayet] p. 370.  (Contributed by NM, 2-Nov-1999.)
       (New usage is discouraged.) $)
    stri $p |- ( A. f e. States ( ( f ` A ) = 1 -> ( f ` B ) = 1 ) ->
              A C_ B ) $=
      ( vu vx cv cfv c1 wceq wi cst wral wn wrex cno wcel fveq1 eqeq1d wss cdif
      dfral2 strlem1 wa cch cpjh c2 cexp cmpt eqid biid strlem3 strlem6 imbi12d
      co notbid rspcev syl2anc rexlimiva syl con1i sylbi ) ACHZIZJKZBVDIZJKZLZC
      MNVIOZCMPZOABUAZVICMUCVLVKVLOFHZQIJKZFABUBZPVKFABDEUDVNVKFVOVMVORVNUEZGUF
      VMGHUGIIQIUHUIUPUJZMRAVQIZJKZBVQIZJKZLZOZVKVPGFABVQVQUKZVPULZDEUMVPGFABVQ
      WDWEDEUNVJWCCVQMVDVQKZVIWBWFVFVSVHWAWFVEVRJAVDVQSTWFVGVTJBVDVQSTUOUQURUSU
      TVAVBVC $.

    $( Strong state theorem (bidirectional version).  (Contributed by NM,
       7-Apr-2001.)  (New usage is discouraged.) $)
    strb $p |- ( A. f e. States ( ( f ` A ) = 1 -> ( f ` B ) = 1 ) <->
              A C_ B ) $=
      ( cv cfv c1 wceq wi cst wral wss stri wcel stlesi com12 ralrimiv impbii )
      ACFZGHIBTGHIJZCKLABMZABCDENUBUACKTKOUBUAABTDEPQRS $.
  $}

  ${
    $d x C $.  $d x u $.
    hstrlem2.1 $e |- S = ( x e. CH |-> ( ( projh ` x ) ` u ) ) $.
    $( Lemma for strong set of CH states theorem.  (Contributed by NM,
       30-Jun-2006.)  (New usage is discouraged.) $)
    hstrlem2 $p |- ( C e. CH ->
                  ( S ` C ) = ( ( projh ` C ) ` u ) ) $=
      ( cv cpjh cfv cch wceq fveq2 fveq1d fvex fvmpt ) ACBFZAFZGHZHOCGHZHIDPCJO
      QRPCGKLEORMN $.
  $}

  ${
    $d x z w u $.  $d z w S $.
    hstrlem3a.1 $e |- S = ( x e. CH |-> ( ( projh ` x ) ` u ) ) $.
    $( Lemma for strong set of CH states theorem: the function ` S ` , that
       maps a closed subspace to the square of the norm of its projection onto
       a unit vector, is a state.  (Contributed by NM, 30-Jun-2006.)
       (New usage is discouraged.) $)
    hstrlem3a $p |- ( ( u e. ~H /\ ( normh ` u ) = 1 ) -> S e. CHStates ) $=
      ( vz vw cv chil wcel cno cfv c1 wceq wa cch csp co cpjh hstrlem2 adantr
      wf cort wss cc0 chj cva wral chst pjhcl ancoms adantlr fmptd helch fveq2i
      wi ax-mp pjch1 fveq2d id sylan9eq syl5eq w3a oveqan12d pjoi0 eqtrd pjcjt2
      3adant3 imp chjcl syl 3eqtr4d jca 3exp1 com3r ralrimdv ralrimiv syl3anbrc
      ishst ) BGZHIZVSJKZLMZNZOHCUAHCKZJKZLMEGZFGZUBKUCZWFCKZWGCKZPQZUDMZWFWGUE
      QZCKZWIWJUFQZMZNZUOZFOUGZEOUGCUHIWCAOVSAGZRKKZHCVTWTOIZXAHIZWBXBVTXCVSWTU
      IUJUKDULWCWEVSHRKKZJKZLWDXDJHOIWDXDMUMABHCDSUPUNVTWBXEWALVTXDVSJVSUQURWBU
      SUTVAWCWSEOWCWFOIZWRFOVTXFWGOIZWRUOUOWBXFXGVTWRXFXGVTWHWQXFXGVTVBZWHNZWLW
      PXIWKVSWFRKKZVSWGRKKZPQZUDXHWKXLMZWHXFXGXMVTXFXGWIXJWJXKPABWFCDSZABWGCDSZ
      VCVGTVSWFWGVDVEXIVSWMRKKZXJXKUFQZWNWOXHWHXPXQMVSWGWFVFVHXHWNXPMZWHXFXGXRV
      TXFXGNWMOIXRWFWGVIABWMCDSVJVGTXHWOXQMZWHXFXGXSVTXFXGWIXJWJXKUFXNXOVCVGTVK
      VLVMVNTVOVPEFCVRVQ $.
  $}

  ${
    $d x ph $.  $d x u $.  $d x A $.  $d x B $.
    hstrlem3.1 $e |- S = ( x e. CH |-> ( ( projh ` x ) ` u ) ) $.
    hstrlem3.2 $e |- ( ph <-> ( u e. ( A \ B ) /\ ( normh ` u ) = 1 ) ) $.
    hstrlem3.3 $e |- A e. CH $.
    hstrlem3.4 $e |- B e. CH $.
    $( Lemma for strong set of CH states theorem: the function ` S ` , that
       maps a closed subspace to the square of the norm of its projection onto
       a unit vector, is a state.  This lemma restates the hypotheses in a more
       convenient form to work with.  (Contributed by NM, 30-Jun-2006.)
       (New usage is discouraged.) $)
    hstrlem3 $p |- ( ph -> S e. CHStates ) $=
      ( cv cdif wcel cno cfv c1 wceq wa chst chil eldifi cheli hstrlem3a sylan
      syl sylbi ) ACKZDELMZUGNOPQZRFSMZHUHUGTMZUIUJUHUGDMUKUGDEUAUGDIUBUEBCFGUC
      UDUF $.

    $( Lemma for strong set of CH states theorem.  (Contributed by NM,
       30-Jun-2006.)  (New usage is discouraged.) $)
    hstrlem4 $p |- ( ph -> ( normh ` ( S ` A ) ) = 1 ) $=
      ( cfv cno cv cpjh c1 cch wcel wceq hstrlem2 ax-mp fveq2i cdif eldifi pjid
      wa mpan fveq2d eqeq2 syl5ib mpan9 sylbi syl5eq ) ADFKZLKCMZDNKKZLKZOUMUOL
      DPQZUMUORIBCDFGSTUAAUNDEUBQZUNLKZORZUEUPORZHURUNDQZUTVAUNDEUCVBUPUSRUTVAV
      BUOUNLUQVBUOUNRIUNDUDUFUGUSOUPUHUIUJUKUL $.

    $( Lemma for strong set of CH states theorem.  (Contributed by NM,
       30-Jun-2006.)  (New usage is discouraged.) $)
    hstrlem5 $p |- ( ph -> ( normh ` ( S ` B ) ) < 1 ) $=
      ( cv wcel cno cfv c1 wceq wa clt wbr sylbi cdif cch hstrlem2 fveq2d ax-mp
      cpjh wn eldif chil cheli wb pjnel mpan biimpa sylan breq2 syl5ib syl5eqbr
      impcom ) ACKZDEUALZUTMNZOPZQZEFNZMNZORSHVDVFUTEUFNNZMNZOREUBLZVFVHPJVIVEV
      GMBCEFGUCUDUEVCVAVHORSZVAVHVBRSZVCVJVAUTDLZUTELUGZQVKUTDEUHVLUTUILZVMVKUT
      DIUJVNVMVKVIVNVMVKUKJUTEULUMUNUOTVBOVHRUPUQUSURT $.

    $( Lemma for strong set of CH states theorem.  (Contributed by NM,
       30-Jun-2006.)  (New usage is discouraged.) $)
    hstrlem6 $p |- ( ph -> -. ( ( normh ` ( S ` A ) ) = 1 ->
                    ( normh ` ( S ` B ) ) = 1 ) ) $=
      ( cfv cno c1 wceq wn wa wi hstrlem4 chil wcel chst hstrlem3 hstcl sylancl
      cr cch normcl syl hstrlem5 ltned neneqd jca annim sylib ) ADFKLKMNZEFKZLK
      ZMNZOZPUOURQOAUOUSABCDEFGHIJRAUQMAUQMAUPSTZUQUETAFUATEUFTUTABCDEFGHIJUBJE
      FUCUDUPUGUHABCDEFGHIJUIUJUKULUOURUMUN $.
  $}

  ${
    $d x u f A $.  $d x u f B $.
    hstr.1 $e |- A e. CH $.
    hstr.2 $e |- B e. CH $.
    $( Hilbert space admits a strong set of Hilbert-space-valued states
       (CH-states).  Theorem in [Mayet3] p. 10.  (Contributed by NM,
       30-Jun-2006.)  (New usage is discouraged.) $)
    hstri $p |- ( A. f e. CHStates ( ( normh ` ( f ` A ) ) = 1 ->
                ( normh ` ( f ` B ) ) = 1 ) -> A C_ B ) $=
      ( vu vx cv cfv cno c1 wceq wi chst wn wrex wcel fveq1 fveq2d eqeq1d con1i
      wral wss dfral2 cdif strlem1 wa cch cpjh cmpt eqid biid hstrlem3 hstrlem6
      imbi12d notbid rspcev syl2anc rexlimiva syl sylbi ) ACHZIZJIZKLZBVBIZJIZK
      LZMZCNUBVIOZCNPZOABUCZVICNUDVLVKVLOFHZJIKLZFABUEZPVKFABDEUFVNVKFVOVMVOQVN
      UGZGUHVMGHUIIIUJZNQAVQIZJIZKLZBVQIZJIZKLZMZOZVKVPGFABVQVQUKZVPULZDEUMVPGF
      ABVQWFWGDEUNVJWECVQNVBVQLZVIWDWHVEVTVHWCWHVDVSKWHVCVRJAVBVQRSTWHVGWBKWHVF
      WAJBVBVQRSTUOUPUQURUSUTUAVA $.

    $( Strong CH-state theorem (bidirectional version).  Theorem in [Mayet3]
       p. 10 and its converse.  (Contributed by NM, 30-Jun-2006.)
       (New usage is discouraged.) $)
    hstrbi $p |- ( A. f e. CHStates ( ( normh ` ( f ` A ) ) = 1 ->
              ( normh ` ( f ` B ) ) = 1 ) <-> A C_ B ) $=
      ( cv cfv cno c1 wceq wi chst wral wss hstri wcel cch wa hstles mpanr1
      mpanl2 expcom ralrimiv impbii ) ACFZGHGIJBUEGHGIJKZCLMABNZABCDEOUGUFCLUEL
      PZUGUFUHAQPZUGUFDUHUIRBQPUGUFEABUESTUAUBUCUD $.
  $}

  ${
    $d f A $.
    large.1 $e |- A e. CH $.
    $( A Hilbert lattice admits a largei set of states.  Remark in [Mayet]
       p. 370.  (Contributed by NM, 7-Apr-2001.)
       (New usage is discouraged.) $)
    largei $p |- ( -. A = 0H <-> E. f e. States ( f ` A ) = 1 ) $=
      ( cv cfv c1 wceq cst wrex c0h wn wral ralnex wi wss wcel cc0 ax-1ne0 neii
      wb st0 eqeq1d eqcom syl6bb mtbiri mtt ralbiia h0elch chle0i 3bitri bitr3i
      syl strb con1bii ) ABDZEFGZBHIZAJGZUQKUPKZBHLZURUPBHMUTUPJUOEZFGZNZBHLAJO
      URUSVCBHUOHPZVBKUSVCTVDVBFQGZFQRSVDVBQFGVEVDVAQFUOUAUBQFUCUDUEVBUPUFULUGA
      JBCUHUMACUIUJUKUN $.
  $}

  ${
    jplem1.1 $e |- A e. CH $.
    $( Lemma for Jauch-Piron theorem.  (Contributed by NM, 8-Apr-2001.)
       (New usage is discouraged.) $)
    jplem1 $p |- ( ( u e. ~H /\ ( normh ` u ) = 1 ) ->
          ( u e. A <-> ( ( normh ` ( ( projh ` A ) ` u ) ) ^ 2 ) = 1 ) ) $=
      ( cv chil wcel cno cfv c1 wceq wa c2 cexp co wb cr cc0 cle wbr syl eqeq2i
      cpjh cch pjnorm2 mpan sylan9bb sq1 pjhcli normcl normge0 1re 0le1 mpanr12
      eqeq2 sq11 syl2anc syl5bbr adantr bitr4d ) ADZEFZUTGHZIJZKUTBFZUTBUBHHZGH
      ZIJZVFLMNZIJZVAVDVFVBJZVCVGBUCFVAVDVJOCUTBUDUEVBIVFUNUFVAVIVGOVCVIVHILMNZ
      JZVAVGVKIVHUGUAVAVFPFZQVFRSZVLVGOZVAVEEFZVMUTBCUHZVEUITVAVPVNVQVEUJTVMVNK
      IPFQIRSVOUKULVFIUOUMUPUQURUS $.
  $}

  ${
    $d x u $.  $d x u $.  $d x A $.  $d x B $.
    jp.1 $e |- S = ( x e. CH |-> ( ( normh ` ( ( projh ` x ) ` u ) ) ^ 2 ) ) $.
    jp.2 $e |- A e. CH $.
    $( Lemma for Jauch-Piron theorem.  (Contributed by NM, 8-Apr-2001.)
       (New usage is discouraged.) $)
    jplem2 $p |- ( ( u e. ~H /\ ( normh ` u ) = 1 ) ->
                 ( u e. A <-> ( S ` A ) = 1 ) ) $=
      ( cv chil wcel cno cfv c1 wceq wa cpjh c2 cexp co jplem1 cch ax-mp eqeq1i
      strlem2 syl6bbr ) BGZHIUEJKLMNUECIUECOKKJKPQRZLMCDKZLMBCFSUGUFLCTIUGUFMFA
      BCDEUCUAUBUD $.

    ${
      jp.3 $e |- B e. CH $.
      $( The function ` S ` , that maps a closed subspace to the square of the
         norm of its projection onto a unit vector, is a Jauch-Piron state.
         Remark in [Mayet] p. 370.  (See ~ strlem3a for the proof that ` S ` is
         a state.)  (Contributed by NM, 8-Apr-2001.)
         (New usage is discouraged.) $)
      jpi $p |- ( ( u e. ~H /\ ( normh ` u ) = 1 ) -> ( ( ( S ` A ) = 1
               /\ ( S ` B ) = 1 ) <-> ( S ` ( A i^i B ) ) = 1 ) ) $=
        ( cv chil wcel cno cfv c1 wceq wa cin elin jplem2 anbi12d syl5bb bitr3d
        chincli ) BIZJKUDLMNOPZUDCDQZKZCEMNOZDEMNOZPZUFEMNOUGUDCKZUDDKZPUEUJUDC
        DRUEUKUHULUIABCEFGSABDEFHSTUAABUFEFCDGHUCSUB $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Godowski's equation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    golem1.1 $e |- A e. CH $.
    golem1.2 $e |- B e. CH $.
    golem1.3 $e |- C e. CH $.
    golem1.4 $e |- F = ( ( _|_ ` A ) vH ( A i^i B ) ) $.
    golem1.5 $e |- G = ( ( _|_ ` B ) vH ( B i^i C ) ) $.
    golem1.6 $e |- H = ( ( _|_ ` C ) vH ( C i^i A ) ) $.
    golem1.7 $e |- D = ( ( _|_ ` B ) vH ( B i^i A ) ) $.
    golem1.8 $e |- R = ( ( _|_ ` C ) vH ( C i^i B ) ) $.
    golem1.9 $e |- S = ( ( _|_ ` A ) vH ( A i^i C ) ) $.
    $( Lemma for Godowski's equation.  (Contributed by NM, 10-Nov-2002.)
       (New usage is discouraged.) $)
    golem1 $p |- ( f e. States -> ( ( ( f ` F ) + ( f ` G ) ) + ( f ` H ) ) =
                 ( ( ( f ` D ) + ( f ` R ) ) + ( f ` S ) ) ) $=
      ( caddc cv cst wcel cort cfv cin chj co cch cr choccli stcl recnd addassd
      mpi addcld addcomd eqtrd oveq1d chincli add4d 3eqtr4d stji1i incom fveq2i
      oveq12d oveq2i syl6eq oveq12i 3eqtr4g ) GUAZUBUCZAUDUEZABUFZUGUHZVKUEZBUD
      UEZBCUFZUGUHZVKUEZTUHZCUDUEZCAUFZUGUHZVKUEZTUHZVQBAUFZUGUHZVKUEZWBCBUFZUG
      UHZVKUEZTUHZVMACUFZUGUHZVKUEZTUHZHVKUEZIVKUEZTUHZJVKUEZTUHDVKUEZEVKUEZTUH
      ZFVKUEZTUHVLVMVKUEZVNVKUEZTUHZVQVKUEZVRVKUEZTUHZTUHZWBVKUEZWCVKUEZTUHZTUH
      ZXIXGTUHZXMXJTUHZTUHZXFXNTUHZTUHZWFWQVLXFXITUHZXGXJTUHZTUHZXOTUHZXIXMTUHZ
      YCTUHZXTTUHZXPYAVLYBXMTUHZYCXNTUHZTUHYFXFTUHZYJTUHYEYHVLYIYKYJTVLYIXFYFTU
      HYKVLXFXIXMVLXFVLVMUIUCXFUJUCAKUKVMVKULUOUMZVLXIVLVQUIUCXIUJUCBLUKVQVKULU
      OUMZVLXMVLWBUIUCXMUJUCCMUKWBVKULUOUMZUNVLXFYFYLVLXIXMYMYNUPZUQURUSVLYBYCX
      MXNVLXFXIYLYMUPVLXGXJVLXGVLVNUIUCXGUJUCABKLUTVNVKULUOUMZVLXJVLVRUIUCXJUJU
      CBCLMUTVRVKULUOUMZUPZYNVLXNVLWCUIUCXNUJUCCAMKUTWCVKULUOUMZVAVLYFYCXFXNYOY
      RYLYSVAVBVLXLYDXOTVLXFXGXIXJYLYPYMYQVAUSVLXSYGXTTVLXIXGXMXJYMYPYNYQVAUSVB
      VLWAXLWEXOTVLVPXHVTXKTABVKKLVCBCVKLMVCVFCAVKMKVCVFVLWMXSWPXTTVLWIXQWLXRTV
      LWIXIWGVKUEZTUHXQBAVKLKVCYTXGXITWGVNVKBAVDVEVGVHVLWLXMWJVKUEZTUHXRCBVKMLV
      CUUAXJXMTWJVRVKCBVDVEVGVHVFVLWPXFWNVKUEZTUHXTACVKKMVCUUBXNXFTWNWCVKACVDVE
      VGVHVFVBWTWAXAWETWRVPWSVTTHVOVKNVEIVSVKOVEVIJWDVKPVEVIXDWMXEWPTXBWIXCWLTD
      WHVKQVEEWKVKRVEVIFWOVKSVEVIVJ $.

    $( Lemma for Godowski's equation.  (Contributed by NM, 13-Nov-1999.)
       (New usage is discouraged.) $)
    golem2 $p |- ( f e. States ->
              ( ( f ` ( ( F i^i G ) i^i H ) ) = 1 -> ( f ` D ) = 1 ) ) $=
      ( cfv cv cst wcel cin c1 wceq caddc co c3 cort chj choccli chincli chjcli
      cch eqeltri stm1add3i golem1 eqeq1d sylibd stadd3i syld ) GUAZUBUCZHIUDJU
      DVCTUEUFZDVCTZEVCTUGUHFVCTUGUHZUIUFZVFUEUFVDVEHVCTIVCTUGUHJVCTUGUHZUIUFVH
      HIJVCHAUJTZABUDZUKUHUONVJVKAKULZABKLUMUNUPIBUJTZBCUDZUKUHUOOVMVNBLULZBCLM
      UMUNUPJCUJTZCAUDZUKUHUOPVPVQCMULZCAMKUMUNUPUQVDVIVGUIABCDEFGHIJKLMNOPQRSU
      RUSUTDEFVCDVMBAUDZUKUHUOQVMVSVOBALKUMUNUPEVPCBUDZUKUHUORVPVTVRCBMLUMUNUPF
      VJACUDZUKUHUOSVJWAVLACKMUMUNUPVAVB $.
  $}

  ${
    $d f F $.  $d f G $.  $d f H $.  $d f D $.
    goeq.1 $e |- A e. CH $.
    goeq.2 $e |- B e. CH $.
    goeq.3 $e |- C e. CH $.
    goeq.4 $e |- F = ( ( _|_ ` A ) vH ( A i^i B ) ) $.
    goeq.5 $e |- G = ( ( _|_ ` B ) vH ( B i^i C ) ) $.
    goeq.6 $e |- H = ( ( _|_ ` C ) vH ( C i^i A ) ) $.
    goeq.7 $e |- D = ( ( _|_ ` B ) vH ( B i^i A ) ) $.
    $( Godowski's equation, shown here as a variant equivalent to Equation SF
       of [Godowski] p. 730.  (Contributed by NM, 10-Nov-2002.)
       (New usage is discouraged.) $)
    goeqi $p |- ( ( F i^i G ) i^i H ) C_ D $=
      ( vf cin cfv chj co chincli cv c1 wceq wi wss cst cort cch choccli chjcli
      eqeltri stri eqid golem2 mprg ) EFPZGPZOUAZQUBUCDURQUBUCUDUQDUEOUFUQDOUPG
      EFEAUGQZABPZRSUHKUSUTAHUIABHITUJUKFBUGQZBCPZRSUHLVAVBBIUIZBCIJTUJUKTGCUGQ
      ZCAPZRSUHMVDVECJUICAJHTUJUKTDVABAPZRSUHNVAVFVCBAIHTUJUKULABCDVDCBPRSZUSAC
      PRSZOEFGHIJKLMNVGUMVHUMUNUO $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y S $.
    stcltr1.1 $e |- ( ph <-> ( S e. States /\ A. x e. CH A. y e. CH
                ( ( ( S ` x ) = 1 -> ( S ` y ) = 1 ) -> x C_ y ) ) ) $.
    stcltr1.2 $e |- A e. CH $.
    ${
      stcltr1.3 $e |- B e. CH $.
      $( Property of a strong classical state.  (Contributed by NM,
         24-Oct-1999.)  (New usage is discouraged.) $)
      stcltr1i $p |- ( ph ->
               ( ( ( S ` A ) = 1 -> ( S ` B ) = 1 ) -> A C_ B ) ) $=
        ( wcel cv cfv c1 wceq wi wss cch wral fveq2 eqeq1d imbi1d sseq1 imbi12d
        cst imbi2d sseq2 rspc2v mp2an simplbiim ) AFUDJBKZFLZMNZCKZFLZMNZOZUJUM
        PZOZCQRBQRZDFLZMNZEFLZMNZOZDEPZOZGDQJEQJUSVFOHIURVFVAUOOZDUMPZOBCDEQQUJ
        DNZUPVGUQVHVIULVAUOVIUKUTMUJDFSTUAUJDUMUBUCUMENZVGVDVHVEVJUOVCVAVJUNVBM
        UMEFSTUEUMEDUFUCUGUHUI $.
    $}

    $( Property of a strong classical state.  (Contributed by NM, 24-Oct-1999.)
       (New usage is discouraged.) $)
    stcltr2i $p |- ( ph -> ( ( S ` A ) = 1 -> A = ~H ) ) $=
      ( cfv c1 wceq chil wss wi ax-1 helch stcltr1i syl5 chssii eqss mpbiran
      syl6ibr ) ADEHIJZKDLZDKJZUBKEHIJZUBMAUCUBUENABCKDEFOGPQUDDKLUCDGRDKSTUA
      $.

    ${
      stcltrlem1.3 $e |- B e. CH $.
      $( Lemma for strong classical state theorem.  (Contributed by NM,
         24-Oct-1999.)  (New usage is discouraged.) $)
      stcltrlem1 $p |- ( ph -> ( ( S ` B ) = 1 ->
                    ( S ` ( ( _|_ ` A ) vH ( A i^i B ) ) ) = 1 ) ) $=
        ( cfv c1 wceq cin co caddc wcel cch syl chil eqtrd chj wa cst cv wi wss
        cort wral simplbi stji1i adantr stcltr2i imp ineq2 syl6eq fveq2d oveq2d
        chm1i cr choccli stcl mpi recnd addcomd sto1i ex ) AEFJKLZDUGJZDEMZUANF
        JZKLAVGUBZVJVHFJZVIFJZONZKAVJVNLZVGAFUCPZVOAVPBUDZFJKLCUDZFJKLUEVQVRUFU
        ECQUHBQUHGUIZDEFHIUJRUKVKVNVLDFJZONZKVKVMVTVLOVKVIDFVKESLZVIDLAVGWBABCE
        FGIULUMWBVIDSMDESDUNDHURUORUPUQVKVPWAKLAVPVGVSUKVPWAVTVLONKVPVLVTVPVLVP
        VHQPVLUSPDHUTVHFVAVBVCVPVTVPDQPVTUSPHDFVAVBVCVDDFHVETRTTVF $.

      $( Lemma for strong classical state theorem.  (Contributed by NM,
         24-Oct-1999.)  (New usage is discouraged.) $)
      stcltrlem2 $p |- ( ph -> B C_ ( ( _|_ ` A ) vH ( A i^i B ) ) ) $=
        ( cfv c1 wceq cort cin chj co wi wss stcltrlem1 choccli chjcli stcltr1i
        chincli mpd ) AEFJKLDMJZDENZOPZFJKLQEUGRABCDEFGHISABCEUGFGIUEUFDHTDEHIU
        CUAUBUD $.
    $}
  $}

  ${
    $d x y s A $.  $d x y s B $.
    stcltrth.1 $e |- A e. CH $.
    stcltrth.2 $e |- B e. CH $.
    stcltrth.3 $e |- E. s e. States A. x e. CH A. y e. CH
                ( ( ( s ` x ) = 1 -> ( s ` y ) = 1 ) -> x C_ y ) $.
    $( Theorem for classically strong set of states.  If there exists a
       "classically strong set of states" on lattice ` CH ` (or actually any
       ortholattice, which would have an identical proof), then any two
       elements of the lattice commute, i.e., the lattice is distributive.
       (Proof due to Mladen Pavicic.)  Theorem 3.3 of [MegPav2000] p. 2344.
       (Contributed by NM, 24-Oct-1999.)  (New usage is discouraged.) $)
    stcltrthi $p |- B C_ ( ( _|_ ` A ) vH ( A i^i B ) ) $=
      ( cv cfv c1 wceq wi wss cch wral cst wrex cort cin chj co wcel stcltrlem2
      wa biid rexlimiva ax-mp ) AIZEIZJKLBIZUJJKLMUIUKNMBOPAOPZEQRDCSJCDTUAUBNZ
      HULUMEQUJQUCULUEZABCDUJUNUFFGUDUGUH $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Cover relation, atoms, exchange axiom, and modular symmetry
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Covers relation; modular pairs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( Define the covers relation (on the Hilbert lattice).  Definition 3.2.18
       of [PtakPulmannova] p. 68, whose notation we use.  Ptak/Pulmannova's
       notation ` A <oH B ` is read " ` B ` covers ` A ` " or " ` A ` is
       covered by ` B ` " , and it means that ` B ` is larger than ` A ` and
       there is nothing in between.  See ~ cvbr and ~ cvbr2 for membership
       relations.  (Contributed by NM, 4-Jun-2004.)
       (New usage is discouraged.) $)
    df-cv $a |- <oH = { <. x , y >. | ( ( x e. CH /\ y e. CH ) /\
              ( x C. y /\ -. E. z e. CH ( x C. z /\ z C. y ) ) ) } $.

    $( Define the modular pair relation (on the Hilbert lattice).  Definition
       1.1 of [MaedaMaeda] p. 1, who use the notation (x,y)M for "the ordered
       pair <x,y> is a modular pair."  See ~ mdbr for membership relation.
       (Contributed by NM, 14-Jun-2004.)  (New usage is discouraged.) $)
    df-md $a |- MH = { <. x , y >. | ( ( x e. CH /\ y e. CH ) /\
    A. z e. CH ( z C_ y -> ( ( z vH x ) i^i y ) = ( z vH ( x i^i y ) ) ) ) } $.

    $( Define the dual modular pair relation (on the Hilbert lattice).
       Definition 1.1 of [MaedaMaeda] p. 1, who use the notation (x,y)M* for
       "the ordered pair <x,y> is a dual modular pair."  See ~ dmdbr for
       membership relation.  (Contributed by NM, 27-Apr-2006.)
       (New usage is discouraged.) $)
    df-dmd $a |- MH* = { <. x , y >. | ( ( x e. CH /\ y e. CH ) /\
    A. z e. CH ( y C_ z -> ( ( z i^i x ) vH y ) = ( z i^i ( x vH y ) ) ) ) } $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x C $.
    $( Binary relation expressing ` B ` covers ` A ` , which means that ` B `
       is larger than ` A ` and there is nothing in between.  Definition 3.2.18
       of [PtakPulmannova] p. 68.  (Contributed by NM, 4-Jun-2004.)
       (New usage is discouraged.) $)
    cvbr $p |- ( ( A e. CH /\ B e. CH ) -> ( A <oH B <->
              ( A C. B /\ -. E. x e. CH ( A C. x /\ x C. B ) ) ) ) $=
      ( vy vz cch wcel wa ccv wpss cv wrex wn wceq anbi1d psseq1 rexbidv notbid
      eleq1 anbi12d wbr anbi2d psseq2 df-cv brabg bianabs ) BFGZCFGZHZBCIUABCJZ
      BAKZJZUKCJZHZAFLZMZHZDKZFGZEKZFGZHZURUTJZURUKJZUKUTJZHZAFLZMZHZHUGVAHZBUT
      JZULVEHZAFLZMZHZHUIUQHDEBCFFIURBNZVBVJVIVOVPUSUGVAURBFSOVPVCVKVHVNURBUTPV
      PVGVMVPVFVLAFVPVDULVEURBUKPOQRTTUTCNZVJUIVOUQVQVAUHUGUTCFSUBVQVKUJVNUPUTC
      BUCVQVMUOVQVLUNAFVQVEUMULUTCUKUCUBQRTTDEAUDUEUF $.

    $( Binary relation expressing ` B ` covers ` A ` .  Definition of covers in
       [Kalmbach] p. 15.  (Contributed by NM, 9-Jun-2004.)
       (New usage is discouraged.) $)
    cvbr2 $p |- ( ( A e. CH /\ B e. CH ) -> ( A <oH B <->
             ( A C. B /\ A. x e. CH ( ( A C. x /\ x C_ B ) -> x = B ) ) ) ) $=
      ( cch wcel wa ccv wbr wpss cv wrex wn wceq wi wral cvbr iman anass anbi2i
      wss dfpss2 bitr4i xchbinx ralbii ralnex bitri syl6bbr ) BDECDEFBCGHBCIZBA
      JZIZUICIZFZADKLZFUHUJUICTZFZUICMZNZADOZFABCPURUMUHURULLZADOUMUQUSADUQUOUP
      LZFZULUOUPQVAUJUNUTFZFULUJUNUTRUKVBUJUICUASUBUCUDULADUEUFSUG $.

    $( Contraposition law for the covers relation.  (Contributed by NM,
       12-Jun-2004.)  (New usage is discouraged.) $)
    cvcon3 $p |- ( ( A e. CH /\ B e. CH ) ->
                   ( A <oH B <-> ( _|_ ` B ) <oH ( _|_ ` A ) ) ) $=
      ( vx vy cch wcel wa wpss cv wrex wn cort cfv ccv wbr chpsscon3 wb adantlr
      anbi12d choccl ancoms adantll wi wceq psseq2 psseq1 rspcev ancomsd adantl
      sylan ex sylbid rexlimdva chpsscon1 chpsscon2 impbid cvbr syl2anr 3bitr4d
      notbid ) AEFZBEFZGZABHZACIZHZVEBHZGZCEJZKZGBLMZALMZHZVKDIZHZVNVLHZGZDEJZK
      ZGZABNOVKVLNOZVCVDVMVJVSABPVCVIVRVCVIVRVCVHVRCEVCVEEFZGZVHVELMZVLHZVKWDHZ
      GZVRWCVFWEVGWFVAWBVFWEQVBAVEPRVBWBVGWFQZVAWBVBWHVEBPUAUBSWBWGVRUCVCWBWFWE
      VRWBWFWEGZVRWBWDEFWIVRVETVQWIDWDEVNWDUDVOWFVPWEVNWDVKUEVNWDVLUFSUGUJUKUHU
      IULUMVCVQVIDEVCVNEFZGZVQVNLMZBHZAWLHZGZVIWKVOWMVPWNVBWJVOWMQVABVNUNUBVAWJ
      VPWNQZVBWJVAWPVNAUOUARSWJWOVIUCVCWJWNWMVIWJWNWMGZVIWJWLEFWQVIVNTVHWQCWLEV
      EWLUDVFWNVGWMVEWLAUEVEWLBUFSUGUJUKUHUIULUMUPUTSCABUQVBVKEFVLEFWAVTQVABTAT
      DVKVLUQURUS $.

    $( The covers relation implies proper subset.  (Contributed by NM,
       10-Jun-2004.)  (New usage is discouraged.) $)
    cvpss $p |- ( ( A e. CH /\ B e. CH ) -> ( A <oH B -> A C. B ) ) $=
      ( vx cch wcel wa ccv wbr wpss cv wrex wn cvbr simpl syl6bi ) ADEBDEFABGHA
      BIZACJZIQBIFCDKLZFPCABMPRNO $.

    $( The covers relation implies no in-betweenness.  (Contributed by NM,
       12-Jun-2004.)  (New usage is discouraged.) $)
    cvnbtwn $p |- ( ( A e. CH /\ B e. CH /\ C e. CH ) -> ( A <oH B ->
                  -. ( A C. C /\ C C. B ) ) ) $=
      ( vx cch wcel ccv wpss wa wn wi cv wrex cvbr psseq2 psseq1 anbi12d rspcev
      wbr wceq ex con3rr3 adantl syl6bi com23 3impia ) AEFZBEFZCEFZABGSZACHZCBH
      ZIZJZKUGUHIZUJUIUNUOUJABHZADLZHZUQBHZIZDEMZJZIUIUNKZDABNVBVCUPUIUMVAUIUMV
      AUTUMDCEUQCTURUKUSULUQCAOUQCBPQRUAUBUCUDUEUF $.
  $}

  $( The covers relation implies no in-betweenness.  (Contributed by NM,
     12-Jun-2004.)  (New usage is discouraged.) $)
  cvnbtwn2 $p |- ( ( A e. CH /\ B e. CH /\ C e. CH ) -> ( A <oH B ->
                ( ( A C. C /\ C C_ B ) -> C = B ) ) ) $=
    ( cch wcel w3a ccv wbr wpss wa wn wss wceq cvnbtwn iman anass dfpss2 anbi2i
    wi bitr4i notbii bitr2i syl6ib ) ADEBDECDEFABGHACIZCBIZJZKZUDCBLZJZCBMZSZAB
    CNUKUIUJKZJZKUGUIUJOUMUFUMUDUHULJZJUFUDUHULPUEUNUDCBQRTUAUBUC $.

  $( The covers relation implies no in-betweenness.  (Contributed by NM,
     12-Jun-2004.)  (New usage is discouraged.) $)
  cvnbtwn3 $p |- ( ( A e. CH /\ B e. CH /\ C e. CH ) -> ( A <oH B ->
                ( ( A C_ C /\ C C. B ) -> C = A ) ) ) $=
    ( cch wcel w3a ccv wbr wpss wa wn wss wceq cvnbtwn iman eqcom imbi2i dfpss2
    wi anbi1i an32 bitri notbii 3bitr4ri syl6ib ) ADEBDECDEFABGHACIZCBIZJZKZACL
    ZUGJZCAMZSZABCNUKACMZSUKUNKZJZKUMUIUKUNOULUNUKCAPQUHUPUHUJUOJZUGJUPUFUQUGAC
    RTUJUOUGUAUBUCUDUE $.

  $( The covers relation implies no in-betweenness.  Part of proof of Lemma
     7.5.1 of [MaedaMaeda] p. 31.  (Contributed by NM, 12-Jun-2004.)
     (New usage is discouraged.) $)
  cvnbtwn4 $p |- ( ( A e. CH /\ B e. CH /\ C e. CH ) -> ( A <oH B ->
                ( ( A C_ C /\ C C_ B ) -> ( C = A \/ C = B ) ) ) ) $=
    ( cch wcel w3a ccv wbr wpss wa wn wss wceq wo wi cvnbtwn iman notbii dfpss2
    an4 ioran eqcom anbi1i bitri anbi2i anbi12i 3bitr4i bitr2i syl6ib ) ADEBDEC
    DEFABGHACIZCBIZJZKZACLZCBLZJZCAMZCBMZNZOZABCPUTUPUSKZJZKUMUPUSQVBULUPACMZKZ
    URKZJZJUNVDJZUOVEJZJVBULUNUOVDVETVAVFUPVAUQKZVEJVFUQURUAVIVDVEUQVCCAUBRUCUD
    UEUJVGUKVHACSCBSUFUGRUHUI $.

  $( The covers relation is not symmetric.  (Contributed by NM, 26-Jun-2004.)
     (New usage is discouraged.) $)
  cvnsym $p |- ( ( A e. CH /\ B e. CH ) -> ( A <oH B -> -. B <oH A ) ) $=
    ( cch wcel wa ccv wbr wpss wn cvpss ancoms pssn2lp imnani syl6 con2d syld
    wi ) ACDZBCDZEZABFGABHZBAFGZIABJTUBUATUBBAHZUAISRUBUCQBAJKUCUABALMNOP $.

  $( The covers relation is not reflexive.  (Contributed by NM, 26-Jun-2004.)
     (New usage is discouraged.) $)
  cvnref $p |- ( A e. CH -> -. A <oH A ) $=
    ( cch wcel ccv wbr wn wi cvnsym anidms pm2.01d ) ABCZAADEZKLLFGAAHIJ $.

  $( The covers relation is not transitive.  (Contributed by NM, 26-Jun-2004.)
     (New usage is discouraged.) $)
  cvntr $p |- ( ( A e. CH /\ B e. CH /\ C e. CH ) ->
                ( ( A <oH B /\ B <oH C ) -> -. A <oH C ) ) $=
    ( cch wcel w3a ccv wpss wn wi cvpss 3adant3 3adant1 wa cvnbtwn 3com23 con2d
    wbr syl2and ) ADEZBDEZCDEZFZABGRZABHZBCGRZBCHZACGRZITUAUDUEJUBABKLUAUBUFUGJ
    TBCKMUCUHUEUGNZTUBUAUHUIIJACBOPQS $.

  ${
    $d x A $.  $d x B $.
    $( Hilbert space has the covering property (using spans of singletons to
       represent atoms).  Proposition 1(ii) of [Kalmbach] p. 153.  (Contributed
       by NM, 9-Jun-2004.)  (New usage is discouraged.) $)
    spansncv2 $p |- ( ( A e. CH /\ B e. ~H ) -> ( -. ( span ` { B } ) C_ A ->
                     A <oH ( A vH ( span ` { B } ) ) ) ) $=
      ( vx cch wcel chil wa csn cspn cfv chj co wpss cv wss wceq wi wral sylan2
      wb wn ccv spansncv 3exp com23 ralrimiv anim2i expcom spansnch chnle chjcl
      wbr imp cvbr2 syldan 3imtr4d ) ADEZBFEZGZAABHIJZKLZMZVBACNZMVCVAOGVCVAPQZ
      CDRZGZUTAOUAZAVAUBULZVBUSVFUSVEVBUSVDCDUQURVCDEZVDQUQVIURVDUQVIURVDAVCBUC
      UDUEUMUFUGUHURUQUTDEZVGVBTBUIZAUTUJSUQURVADEZVHVFTURUQVJVLVKAUTUKSCAVAUNU
      OUP $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x C $.
    $( Binary relation expressing ` <. A , B >. ` is a modular pair.
       Definition 1.1 of [MaedaMaeda] p. 1.  (Contributed by NM, 14-Jun-2004.)
       (New usage is discouraged.) $)
    mdbr $p |- ( ( A e. CH /\ B e. CH ) -> ( A MH B <->
    A. x e. CH ( x C_ B -> ( ( x vH A ) i^i B ) = ( x vH ( A i^i B ) ) ) ) ) $=
      ( vy vz cch wcel wa cmd cv wss chj co cin wceq wral eleq1 oveq2d eqeq12d
      wi wbr anbi1d oveq2 ineq1d ineq1 imbi2d ralbidv anbi12d sseq2 ineq2 df-md
      anbi2d imbi12d brabg bianabs ) BFGZCFGZHZBCIUAAJZCKZUSBLMZCNZUSBCNZLMZOZT
      ZAFPZDJZFGZEJZFGZHZUSVJKZUSVHLMZVJNZUSVHVJNZLMZOZTZAFPZHUPVKHZVMVAVJNZUSB
      VJNZLMZOZTZAFPZHURVGHDEBCFFIVHBOZVLWAVTWGWHVIUPVKVHBFQUBWHVSWFAFWHVRWEVMW
      HVOWBVQWDWHVNVAVJVHBUSLUCUDWHVPWCUSLVHBVJUERSUFUGUHVJCOZWAURWGVGWIVKUQUPV
      JCFQULWIWFVFAFWIVMUTWEVEVJCUSUIWIWBVBWDVDVJCVAUJWIWCVCUSLVJCBUJRSUMUGUHDE
      AUKUNUO $.

    $( Consequence of the modular pair property.  (Contributed by NM,
       22-Jun-2004.)  (New usage is discouraged.) $)
    mdi $p |- ( ( ( A e. CH /\ B e. CH /\ C e. CH ) /\ ( A MH B /\
              C C_ B ) ) -> ( ( C vH A ) i^i B ) = ( C vH ( A i^i B ) ) ) $=
      ( vx cch wcel w3a cmd wbr wss chj co cin wceq wi wa cv wral mdbr oveq1
      biimpd sseq1 ineq1d eqeq12d imbi12d rspcv sylan9 3impa imp32 ) AEFZBEFZCE
      FZGABHIZCBJZCAKLZBMZCABMZKLZNZUJUKULUMUNUSOZOUJUKPZUMDQZBJZVBAKLZBMZVBUQK
      LZNZOZDERZULUTVAUMVIDABSUAVHUTDCEVBCNZVCUNVGUSVBCBUBVJVEUPVFURVJVDUOBVBCA
      KTUCVBCUQKTUDUEUFUGUHUI $.

    $( Binary relation expressing the modular pair property.  This version has
       a weaker constraint than ~ mdbr .  (Contributed by NM, 15-Jun-2004.)
       (New usage is discouraged.) $)
    mdbr2 $p |- ( ( A e. CH /\ B e. CH ) -> ( A MH B <->
   A. x e. CH ( x C_ B -> ( ( x vH A ) i^i B ) C_ ( x vH ( A i^i B ) ) ) ) ) $=
      ( cch wcel wa cmd wbr cv wss chj co cin wceq wi wral mdbr ancoms chincl
      wb chub1 iba syl6bb syl5ibcom chub2 ssrin syl jctird adantlr simpr adantr
      ssin chjcl sylan an32s chlub syl3anc sylibd eqss rbaib syl6 pm5.74d bitrd
      ralbidva ) BDEZCDEZFZBCGHAIZCJZVHBKLZCMZVHBCMZKLZNZOZADPVIVKVMJZOZADPABCQ
      VGVOVQADVGVHDEZFZVIVNVPVSVIVMVKJZVNVPTVSVIVHVKJZVLVKJZFZVTVEVRVIWCOVFVEVR
      FZVIWAWBWDVHVJJZVIWAVRVEWEVHBUARVIWEWEVIFWAVIWEUBVHVJCULUCUDWDBVJJWBBVHUE
      BVJCUFUGUHUIVSVRVLDEZVKDEZWCVTTVGVRUJVGWFVRBCSUKVEVRVFWGWDVJDEZVFWGVRVEWH
      VHBUMRVJCSUNUOVHVLVKUPUQURVNVPVTVKVMUSUTVAVBVDVC $.

    $( Binary relation expressing the modular pair property.  This version
       quantifies an equality instead of an inference.  (Contributed by NM,
       6-Jul-2004.)  (New usage is discouraged.) $)
    mdbr3 $p |- ( ( A e. CH /\ B e. CH ) -> ( A MH B <-> A. x e. CH
         ( ( ( x i^i B ) vH A ) i^i B ) = ( ( x i^i B ) vH ( A i^i B ) ) ) ) $=
      ( vy cch wcel wa cv wss chj co cin wceq wral sseq1 ineq1d eqeq12d imbi12d
      wi oveq1 cmd wbr mdbr wb chincl inss2 rspcv mpii ex com3l ralrimdv biimpi
      syl dfss oveq1d biimprcd ralimi cbvralv sylib impbid1 adantl bitrd ) BEFZ
      CEFZGBCUAUBDHZCIZVEBJKZCLZVEBCLZJKZMZSZDENZAHZCLZBJKZCLZVOVIJKZMZAENZDBCU
      CVDVMVTUDVCVDVMVTVDVMVSAEVNEFZVDVMVSWAVDVMVSSZWAVDGVOEFZWBVNCUEWCVMVOCIZV
      SVNCUFVLWDVSSDVOEVEVOMZVFWDVKVSVEVOCOWEVHVQVJVRWEVGVPCVEVOBJTPVEVOVIJTQRU
      GUHUMUIUJUKVTVNCIZVNBJKZCLZVNVIJKZMZSZAENVMVSWKAEWFWJVSWFWHVQWIVRWFWGVPCW
      FVNVOBJWFVNVOMVNCUNULZUOPWFVNVOVIJWLUOQUPUQWKVLADEVNVEMZWFVFWJVKVNVECOWMW
      HVHWIVJWMWGVGCVNVEBJTPVNVEVIJTQRURUSUTVAVB $.

    $( Binary relation expressing the modular pair property.  This version
       quantifies an ordering instead of an inference.  (Contributed by NM,
       6-Jul-2004.)  (New usage is discouraged.) $)
    mdbr4 $p |- ( ( A e. CH /\ B e. CH ) -> ( A MH B <-> A. x e. CH
        ( ( ( x i^i B ) vH A ) i^i B ) C_ ( ( x i^i B ) vH ( A i^i B ) ) ) ) $=
      ( vy cch wcel wa cv wss chj co cin wral wceq sseq1 ineq1d sseq12d imbi12d
      wi oveq1 cmd wbr mdbr2 wb chincl inss2 rspcv mpii syl com3l ralrimdv dfss
      ex biimpi oveq1d biimprcd ralimi cbvralv sylib impbid1 adantl bitrd ) BEF
      ZCEFZGBCUAUBDHZCIZVEBJKZCLZVEBCLZJKZIZSZDEMZAHZCLZBJKZCLZVOVIJKZIZAEMZDBC
      UCVDVMVTUDVCVDVMVTVDVMVSAEVNEFZVDVMVSWAVDVMVSSZWAVDGVOEFZWBVNCUEWCVMVOCIZ
      VSVNCUFVLWDVSSDVOEVEVONZVFWDVKVSVEVOCOWEVHVQVJVRWEVGVPCVEVOBJTPVEVOVIJTQR
      UGUHUIUMUJUKVTVNCIZVNBJKZCLZVNVIJKZIZSZAEMVMVSWKAEWFWJVSWFWHVQWIVRWFWGVPC
      WFVNVOBJWFVNVONVNCULUNZUOPWFVNVOVIJWLUOQUPUQWKVLADEVNVENZWFVFWJVKVNVECOWM
      WHVHWIVJWMWGVGCVNVEBJTPVNVEVIJTQRURUSUTVAVB $.

    $( Binary relation expressing the dual modular pair property.  (Contributed
       by NM, 27-Apr-2006.)  (New usage is discouraged.) $)
    dmdbr $p |- ( ( A e. CH /\ B e. CH ) -> ( A MH* B <->
    A. x e. CH ( B C_ x -> ( ( x i^i A ) vH B ) = ( x i^i ( A vH B ) ) ) ) ) $=
      ( vy vz cch wcel wa cdmd cv wss cin chj co wceq wral eleq1 ineq2d eqeq12d
      wi wbr anbi1d ineq2 oveq1d oveq1 imbi2d ralbidv anbi2d sseq1 oveq2 df-dmd
      anbi12d imbi12d brabg bianabs ) BFGZCFGZHZBCIUACAJZKZUSBLZCMNZUSBCMNZLZOZ
      TZAFPZDJZFGZEJZFGZHZVJUSKZUSVHLZVJMNZUSVHVJMNZLZOZTZAFPZHUPVKHZVMVAVJMNZU
      SBVJMNZLZOZTZAFPZHURVGHDEBCFFIVHBOZVLWAVTWGWHVIUPVKVHBFQUBWHVSWFAFWHVRWEV
      MWHVOWBVQWDWHVNVAVJMVHBUSUCUDWHVPWCUSVHBVJMUERSUFUGULVJCOZWAURWGVGWIVKUQU
      PVJCFQUHWIWFVFAFWIVMUTWEVEVJCUSUIWIWBVBWDVDVJCVAMUJWIWCVCUSVJCBMUJRSUMUGU
      LDEAUKUNUO $.

    $( The dual modular pair property expressed in terms of the modular pair
       property, that hold in Hilbert lattices.  Remark 29.6 of [MaedaMaeda]
       p. 130.  (Contributed by NM, 27-Apr-2006.)
       (New usage is discouraged.) $)
    dmdmd $p |- ( ( A e. CH /\ B e. CH ) -> ( A MH* B <->
                   ( _|_ ` A ) MH ( _|_ ` B ) ) ) $=
      ( vy vx cch wcel wa cort cfv wss chj co cin wceq wi eqeq12d choccl adantl
      wb eqtrd wral cmd wbr cdmd sseq1 oveq1 ineq1d imbi12d rspccv imim1i com12
      cv chsscon3 biimpd adantll fveq2 chjcl syl2an chdmm3 chdmj4 adantr oveq1d
      sylan anasss chincl chdmj2 sylan2 chdmm4 ineq2d ancoms imim12d syld com23
      syl5ib ex syl5 ralrimdv sseq2 ineq1 chsscon2 biimprd chdmj1 chdmm2 oveq2d
      impbid mdbr dmdbr 3bitr4rd ) AEFZBEFZGZCULZBHIZJZWLAHIZKLZWMMZWLWOWMMZKLZ
      NZOZCEUAZBDULZJZXCAMZBKLZXCABKLZMZNZOZDEUAZWOWMUBUCZABUDUCWKXBXKWKXBXJDEX
      BXCHIZEFZXMWMJZXMWOKLZWMMZXMWRKLZNZOZOZWKXCEFZXJOXAXTCXMEWLXMNZWNXOWTXSWL
      XMWMUEYCWQXQWSXRYCWPXPWMWLXMWOKUFUGWLXMWRKUFPUHUIWKYBYAXJWKYBYAXJOWKYBGZY
      AXTXJYBYAXTOWKYAYBXTYBXNXTXCQZUJUKRYDXDXOXSXIWJYBXDXOOWIWJYBGXDXOBXCUMUNU
      OXSXQHIZXRHIZNZYDXIXQXRHUPYBWKYHXISYBWKGZYFXFYGXHYBWIWJYFXFNYBWIGZWJGZYFX
      PHIZBKLZXFYJXPEFZWJYFYMNYBXNWOEFZYNWIYEAQZXMWOUQURXPBUSVCYKYLXEBKYJYLXENW
      JXCAUTVAVBTVDYIYGXCWRHIZMZXHWKYBWREFZYGYRNWIYOWMEFZYSWJYPBQZWOWMVEURXCWRV
      FVGYIYQXGXCWKYQXGNYBABVHRVITPVJVNVKVLVOVMVPVQWKXKXACEXKWLHIZEFZBUUBJZUUBA
      MZBKLZUUBXGMZNZOZOZWKWLEFZXAOXJUUIDUUBEXCUUBNZXDUUDXIUUHXCUUBBVRUULXFUUFX
      HUUGUULXEUUEBKXCUUBAVSVBXCUUBXGVSPUHUIWKUUKUUJXAWKUUKUUJXAOWKUUKGZUUJUUIX
      AUUKUUJUUIOWKUUJUUKUUIUUKUUCUUIWLQZUJUKRUUMWNUUDUUHWTWJUUKWNUUDOWIWJUUKGU
      UDWNBWLVTWAUOUUHUUFHIZUUGHIZNZUUMWTUUFUUGHUPUUKWKUUQWTSUUKWKGZUUOWQUUPWSU
      UKWIWJUUOWQNUUKWIGZWJGZUUOUUEHIZWMMZWQUUSUUEEFZWJUUOUVBNUUKUUCWIUVCUUNUUB
      AVEVCUUEBWBVCUUTUVAWPWMUUSUVAWPNWJWLAWCVAUGTVDUURUUPWLXGHIZKLZWSWKUUKXGEF
      UUPUVENABUQWLXGWCVGUURUVDWRWLKWKUVDWRNUUKABWBRWDTPVJVNVKVLVOVMVPVQWEWIYOY
      TXLXBSWJYPUUACWOWMWFURDABWGWH $.

    $( The modular pair property expressed in terms of the dual modular pair
       property.  (Contributed by NM, 27-Apr-2006.)
       (New usage is discouraged.) $)
    mddmd $p |- ( ( A e. CH /\ B e. CH ) -> ( A MH B <->
                   ( _|_ ` A ) MH* ( _|_ ` B ) ) ) $=
      ( cch wcel wa cort cfv cdmd wbr cmd wb choccl dmdmd syl2an ococ breqan12d
      bitr2d ) ACDZBCDZEAFGZBFGZHIZTFGZUAFGZJIZABJIRTCDUACDUBUEKSALBLTUAMNRSUCA
      UDBJAOBOPQ $.

    $( Consequence of the dual modular pair property.  (Contributed by NM,
       27-Apr-2006.)  (New usage is discouraged.) $)
    dmdi $p |- ( ( ( A e. CH /\ B e. CH /\ C e. CH ) /\ ( A MH* B /\
              B C_ C ) ) -> ( ( C i^i A ) vH B ) = ( C i^i ( A vH B ) ) ) $=
      ( vx cch wcel w3a cdmd wbr wss cin chj co wceq wi wa cv wral dmdbr ineq1
      biimpd sseq2 oveq1d eqeq12d imbi12d rspcv sylan9 3impa imp32 ) AEFZBEFZCE
      FZGABHIZBCJZCAKZBLMZCABLMZKZNZUJUKULUMUNUSOZOUJUKPZUMBDQZJZVBAKZBLMZVBUQK
      ZNZOZDERZULUTVAUMVIDABSUAVHUTDCEVBCNZVCUNVGUSVBCBUBVJVEUPVFURVJVDUOBLVBCA
      TUCVBCUQTUDUEUFUGUHUI $.

    $( Binary relation expressing the dual modular pair property.  This version
       has a weaker constraint than ~ dmdbr .  (Contributed by NM,
       30-Jun-2004.)  (New usage is discouraged.) $)
    dmdbr2 $p |- ( ( A e. CH /\ B e. CH ) -> ( A MH* B <->
   A. x e. CH ( B C_ x -> ( x i^i ( A vH B ) ) C_ ( ( x i^i A ) vH B ) ) ) ) $=
      ( cch wcel wa cdmd wbr cv wss cin chj co wceq wi wral dmdbr w3a syl3anc
      wb chincl ancoms simplr simpr inss1 chlub biimpd mpani simpll inss2 mpan2
      adantlr chlej1 jctird ssin syl6ib eqss baib syl6 pm5.74d ralbidva bitrd )
      BDEZCDEZFZBCGHCAIZJZVFBKZCLMZVFBCLMZKZNZOZADPVGVKVIJZOZADPABCQVEVMVOADVEV
      FDEZFZVGVLVNVQVGVIVKJZVLVNTVQVGVIVFJZVIVJJZFVRVQVGVSVTVQVHDEZVDVPVGVSOVCV
      PWAVDVPVCWAVFBUAUBULZVCVDVPUCZVEVPUDWAVDVPRZVHVFJZVGVSVFBUEWDWEVGFVSVHCVF
      UFUGUHSVQWAVCVDVTWBVCVDVPUIWCWAVCVDRVHBJVTVFBUJVHBCUMUKSUNVIVFVJUOUPVLVRV
      NVIVKUQURUSUTVAVB $.

    $( Consequence of the dual modular pair property.  (Contributed by NM,
       14-Jan-2005.)  (New usage is discouraged.) $)
    dmdi2 $p |- ( ( ( A e. CH /\ B e. CH /\ C e. CH ) /\ ( A MH* B /\ B C_ C
         ) ) -> ( C i^i ( A vH B ) ) C_ ( ( C i^i A ) vH B ) ) $=
      ( cch wcel w3a cdmd wbr wss wa cin chj co wceq dmdi eqimss2 syl ) ADEBDEC
      DEFABGHBCIJJCAKBLMZCABLMKZNSRIABCOSRPQ $.

    $( Binary relation expressing the dual modular pair property.  This version
       quantifies an equality instead of an inference.  (Contributed by NM,
       6-Jul-2004.)  (New usage is discouraged.) $)
    dmdbr3 $p |- ( ( A e. CH /\ B e. CH ) -> ( A MH* B <-> A. x e. CH
           ( ( ( x vH B ) i^i A ) vH B ) = ( ( x vH B ) i^i ( A vH B ) ) ) ) $=
      ( vy cch wcel wa cv wss cin chj co wceq wral sseq2 oveq1d eqeq12d imbi12d
      wi ineq1 cdmd wbr dmdbr wb chub2 ancoms chjcl rspcv syl ex com3l ralrimdv
      chlejb2 biimpa ineq1d biimpd com23 ralimdva cbvralv syl6ib impbid adantl
      mpid bitrd ) BEFZCEFZGBCUAUBCDHZIZVGBJZCKLZVGBCKLZJZMZSZDENZAHZCKLZBJZCKL
      ZVQVKJZMZAENZDBCUCVFVOWBUDVEVFVOWBVFVOWAAEVPEFZVFVOWAWCVFVOWASWCVFGZVOCVQ
      IZWAVFWCWECVPUEUFWDVQEFVOWEWASZSVPCUGVNWFDVQEVGVQMZVHWEVMWAVGVQCOWGVJVSVL
      VTWGVIVRCKVGVQBTPVGVQVKTQRUHUIVCUJUKULVFWBCVPIZVPBJZCKLZVPVKJZMZSZAENVOVF
      WAWMAEVFWCGZWHWAWLWNWHWAWLSWNWHGZWAWLWOVSWJVTWKWOVRWICKWOVQVPBWNWHVQVPMCV
      PUMUNZUOPWOVQVPVKWPUOQUPUJUQURWMVNADEVPVGMZWHVHWLVMVPVGCOWQWJVJWKVLWQWIVI
      CKVPVGBTPVPVGVKTQRUSUTVAVBVD $.

    $( Binary relation expressing the dual modular pair property.  This version
       quantifies an ordering instead of an inference.  (Contributed by NM,
       6-Jul-2004.)  (New usage is discouraged.) $)
    dmdbr4 $p |- ( ( A e. CH /\ B e. CH ) -> ( A MH* B <-> A. x e. CH
          ( ( x vH B ) i^i ( A vH B ) ) C_ ( ( ( x vH B ) i^i A ) vH B ) ) ) $=
      ( vy cch wcel wa cv wss chj co cin wral wceq sseq2 oveq1d sseq12d imbi12d
      wi ineq1 cdmd wbr dmdbr2 wb chub2 ancoms chjcl rspcv syl mpid ex ralrimdv
      com3l chlejb2 biimpa ineq1d biimpd ralimdva cbvralv syl6ib impbid adantl
      com23 bitrd ) BEFZCEFZGBCUAUBCDHZIZVGBCJKZLZVGBLZCJKZIZSZDEMZAHZCJKZVILZV
      QBLZCJKZIZAEMZDBCUCVFVOWBUDVEVFVOWBVFVOWAAEVPEFZVFVOWAWCVFVOWASWCVFGZVOCV
      QIZWAVFWCWECVPUEUFWDVQEFVOWEWASZSVPCUGVNWFDVQEVGVQNZVHWEVMWAVGVQCOWGVJVRV
      LVTVGVQVITWGVKVSCJVGVQBTPQRUHUIUJUKUMULVFWBCVPIZVPVILZVPBLZCJKZIZSZAEMVOV
      FWAWMAEVFWCGZWHWAWLWNWHWAWLSWNWHGZWAWLWOVRWIVTWKWOVQVPVIWNWHVQVPNCVPUNUOZ
      UPWOVSWJCJWOVQVPBWPUPPQUQUKVCURWMVNADEVPVGNZWHVHWLVMVPVGCOWQWIVJWKVLVPVGV
      ITWQWJVKCJVPVGBTPQRUSUTVAVBVD $.

    $( Consequence of the dual modular pair property.  (Contributed by NM,
       14-Jan-2005.)  (New usage is discouraged.) $)
    dmdi4 $p |- ( ( A e. CH /\ B e. CH /\ C e. CH ) ->
              ( A MH* B ->
         ( ( C vH B ) i^i ( A vH B ) ) C_ ( ( ( C vH B ) i^i A ) vH B ) ) ) $=
      ( vx cch wcel cdmd wbr chj co cin wi wa cv wral dmdbr4 biimpd wceq ineq1d
      wss oveq1 oveq1d sseq12d rspcv sylan9 3impa ) AEFZBEFZCEFZABGHZCBIJZABIJZ
      KZUKAKZBIJZTZLUGUHMZUJDNZBIJZULKZUSAKZBIJZTZDEOZUIUPUQUJVDDABPQVCUPDCEURC
      RZUTUMVBUOVEUSUKULURCBIUAZSVEVAUNBIVEUSUKAVFSUBUCUDUEUF $.

    $( Binary relation expressing the dual modular pair property.  (Contributed
       by NM, 15-Jan-2005.)  (New usage is discouraged.) $)
    dmdbr5 $p |- ( ( A e. CH /\ B e. CH ) -> ( A MH* B <->
    A. x e. CH ( x C_ ( A vH B ) -> x C_ ( ( ( x vH B ) i^i A ) vH B ) ) ) ) $=
      ( vy cch wcel wa cv chj co wss wi wral dmdbr4 ancoms ex com23 wceq adantr
      cin cdmd wbr chub1 ssin sstr2 sylbi sylan ralimdva adantl sylbid sseq1 id
      oveq1 ineq1d oveq1d sseq12d imbi12d rspccv chjcl chincl inss2 pm2.27 mpii
      adantll syl2anc syl chub2 ssind wb simplr mpbid inass incom chabs2 syl5eq
      chlejb2 ineq2d eqtrd sseq2d sylibd syl5 ralrimdv sylibrd impbid ) BEFZCEF
      ZGZBCUAUBZAHZBCIJZKZWIWICIJZBTZCIJZKZLZAEMZWGWHWLWJTZWNKZAEMZWQABCNWFWTWQ
      LWEWFWSWPAEWFWIEFZGZWKWSWOXBWKWSWOLZXBWIWLKZWKXCXAWFXDWICUCOXDWKGWIWRKXCW
      IWLWJUDWIWRWNUEUFUGPQUHUIUJWGWQDHZCIJZWJTZXFBTZCIJZKZDEMWHWGWQXJDEWQXGEFZ
      XGWJKZXGXGCIJZBTZCIJZKZLZLZWGXEEFZXJLWPXQAXGEWIXGRZWKXLWOXPWIXGWJUKXTWIXG
      WNXOXTULXTWMXNCIXTWLXMBWIXGCIUMUNUOUPUQURWGXSXRXJWGXSXRXJLWGXSGZXRXPXJYAX
      KXRXPLYAXFEFZWJEFZXKWFXSYBWEXSWFYBXECUSOVDWGYCXSBCUSSXFWJUTVEZXKXRXLXPXFW
      JVAXKXQVBVCVFYAXOXIXGYAXNXHCIYAXNXGBTZXHYAXMXGBYACXGKZXMXGRZYACXFWJWFXSCX
      FKWECXEVGVDWGCWJKZXSWFWEYHCBVGOSVHYAWFXKYFYGVIWEWFXSVJYDCXGVPVEVKUNWGYEXH
      RXSWGYEXFWJBTZTXHXFWJBVLWGYIBXFWGYIBWJTBWJBVMBCVNVOVQVOSVRUOVSVTPQWAWBDBC
      NWCWD $.

    $( Relationship between modular pairs and dual-modular pairs.  Lemma 1.2 of
       [MaedaMaeda] p. 1.  (Contributed by NM, 21-Jun-2004.)
       (New usage is discouraged.) $)
    mddmd2 $p |- ( A e. CH -> ( A. x e. CH A MH x <->
                A. x e. CH A MH* x ) ) $=
      ( vy cch wcel cv cmd wbr wral cin chj co wceq wi wa incom chjcom syl5reqr
      syl6bb ralbidva wss cdmd breq2 cbvralv ineq1d adantlr oveq1i chincl sylan
      mdbr eqeq12d eqcom imbi2d bitrd syl5bb ralcom dmdbr bitr4d ) BDEZBAFZGHZA
      DIZUTCFZUAZVCBJZUTKLZVCBUTKLZJZMZNZCDIZADIZBUTUBHZADIUSVBVJADIZCDIZVLVBBV
      CGHZCDIUSVOVAVPACDUTVCBGUCUDUSVPVNCDUSVCDEZOZVPVDUTBKLZVCJZUTBVCJZKLZMZNZ
      ADIVNABVCUJVRWDVJADVRUTDEZOZWCVIVDWFWCVHVFMVIWFVTVHWBVFUSWEVTVHMVQUSWEOZV
      HVGVCJVTVGVCPWGVGVSVCBUTQUERUFWFVFWAUTKLZWBWAVEUTKBVCPUGVRWADEWEWHWBMBVCU
      HWAUTQUIRUKVHVFULSUMTUNTUOVJCADDUPSUSVMVKADCBUTUQTUR $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.
    $( A sublattice condition that transfers the modular pair property.
       Exercise 12 of [Kalmbach] p. 103.  Also Lemma 1.5.3 of [MaedaMaeda]
       p. 2.  (Contributed by NM, 22-Jun-2004.)  (New usage is discouraged.) $)
    mdsl0 $p |- ( ( ( A e. CH /\ B e. CH ) /\ ( C e. CH /\ D e. CH ) ) -> (
  ( ( ( C C_ A /\ D C_ B ) /\ ( A i^i B ) = 0H ) /\ A MH B ) -> C MH D ) ) $=
      ( vx cch wcel wa wss cin c0h wceq cmd wbr chj co wi wral sstr2 ad2antlr
      cv com12 w3a chlej2 ss2in ex syl 3expia ad2ant2r imp43 adantrr oveq2 chj0
      ancoms sylan9eqr adantl chincl chub1 eqsstrd adantll anassrs adantrl syl6
      sylan com23 sylc an32s imim12d ralimdva wb mdbr2 ad2antrr 3imtr4d expimpd
      ) AFGZBFGZHZCFGZDFGZHZHZCAIZDBIZHZABJZKLZHZABMNZCDMNZWAWGHZEUAZBIZWKAOPZB
      JZWKWEOPZIZQZEFRZWKDIZWKCOPZDJZWKCDJZOPZIZQZEFRZWHWIWJWQXEEFWJWKFGZHWSWLW
      PXDWGWSWLQZWAXGWCXHWBWFWSWCWLWKDBSUBTTWAXGWGWPXDQZWAXGHZWGHXAWNIZWOXCIZXI
      XJWDXKWFWAXGWBWCXKVOVRXGWBWCXKQZQZQZVPVSVRVOXOVRVOXGXNVRVOXGUCZWBXMXPWBHW
      TWMIZXMCAWKUDXQWCXKWTWMDBUEUFUGUFUHUNUIUJUKXJWFXLWDWAXGWFXLVTXGWFHZXLVQVT
      XRHWOWKXCXRWOWKLVTWFXGWOWKKOPWKWEKWKOULWKUMUOUPVTXGWKXCIZWFVTXBFGZXGXSCDU
      QXGXTXSWKXBURUNVDUKUSUTVAVBXKWPXLXDXKWPXAWOIXLXDQXAWNWOSXAWOXCSVCVEVFVGVH
      VIVQWHWRVJVTWGEABVKVLVTWIXFVJVQWGECDVKTVMVN $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Ordering implies the modular pair property.  Remark in [MaedaMaeda]
       p. 1.  (Contributed by NM, 21-Jun-2004.)  (New usage is discouraged.) $)
    ssmd1 $p |- ( ( A e. CH /\ B e. CH /\ A C_ B ) -> A MH B ) $=
      ( vx cch wcel wss cmd wbr wa cv chj co cin wi wral inss1 wceq dfss biimpi
      oveq2d syl5sseq a1d ralrimivw mdbr2 syl5ibr 3impia ) ADEZBDEZABFZABGHZUIU
      JUGUHICJZBFZUKAKLZBMZUKABMZKLZFZNZCDOUIURCDUIUQULUIUMUNUPUMBPUIAUOUKKUIAU
      OQABRSTUAUBUCCABUDUEUF $.

    $( Ordering implies the modular pair property.  Remark in [MaedaMaeda]
       p. 1.  (Contributed by NM, 21-Jun-2004.)  (New usage is discouraged.) $)
    ssmd2 $p |- ( ( A e. CH /\ B e. CH /\ A C_ B ) -> B MH A ) $=
      ( vx cch wcel wss cmd wbr wa cv chj co wi wral inss2 chub2 syl5ss adantrl
      cin wceq simpl sseqin2 sylib adantl oveq2d sseqtr4d exp32 ralrimdv adantr
      a1d wb mdbr2 ancoms sylibrd 3impia ) ADEZBDEZABFZBAGHZUPUQIURCJZAFZUTBKLZ
      ASZUTBASZKLZFZMZCDNZUSUPURVHMUQUPURVGCDUPURUTDEZVGUPURVIIZIZVFVAVKVCUTAKL
      ZVEUPVIVCVLFURUPVIIVCAVLVBAOAUTPQRVKVDAUTKVJVDATZUPVJURVMURVIUAABUBUCUDUE
      UFUJUGUHUIUQUPUSVHUKCBAULUMUNUO $.
  $}

  $( Ordering implies the dual modular pair property.  Remark in [MaedaMaeda]
     p. 1.  (Contributed by NM, 22-Jun-2004.)  (New usage is discouraged.) $)
  ssdmd1 $p |- ( ( A e. CH /\ B e. CH /\ A C_ B ) ->
                  A MH* B ) $=
    ( cch wcel wss cdmd wbr wa cort cfv wi choccl ssmd2 3expia syl2anr chsscon3
    cmd dmdmd 3imtr4d 3impia ) ACDZBCDZABEZABFGZUAUBHBIJZAIJZEZUFUEQGZUCUDUBUEC
    DZUFCDZUGUHKUABLALUIUJUGUHUEUFMNOABPABRST $.

  $( Ordering implies the dual modular pair property.  Remark in [MaedaMaeda]
     p. 1.  (Contributed by NM, 22-Jun-2004.)  (New usage is discouraged.) $)
  ssdmd2 $p |- ( ( A e. CH /\ B e. CH /\ A C_ B ) ->
               ( _|_ ` B ) MH ( _|_ ` A ) ) $=
    ( cch wcel wss cort cfv cmd wbr wa chsscon3 wi choccl 3expia syl2anr sylbid
    ssmd1 3impia ) ACDZBCDZABEZBFGZAFGZHIZSTJUAUBUCEZUDABKTUBCDZUCCDZUEUDLSBMAM
    UFUGUEUDUBUCQNOPR $.

  $( Sublattice mapping for a dual-modular pair.  Part of Theorem 1.3 of
     [MaedaMaeda] p. 2.  (Contributed by NM, 26-Apr-2006.)
     (New usage is discouraged.) $)
  dmdsl3 $p |- ( ( ( A e. CH /\ B e. CH /\ C e. CH ) /\
               ( B MH* A /\ A C_ C /\ C C_ ( A vH B ) ) ) ->
                   ( ( C i^i B ) vH A ) = C ) $=
    ( cch wcel w3a cdmd wbr wss chj co wa cin wceq wi dmdi exp32 imp32 3adantr3
    3com12 chjcom ineq2d 3adant3 df-ss biimpi sylan9req 3ad2antr3 eqtrd ) ADEZB
    DEZCDEZFZBAGHZACIZCABJKZIZFLCBMAJKZCBAJKZMZCULUMUNUQUSNZUPULUMUNUTUJUIUKUMU
    NUTOOUJUIUKFUMUNUTBACPQTRSULUMUPUSCNUNULUPUSCUOMZCUIUJVAUSNUKUIUJLUOURCABUA
    UBUCUPVACNCUOUDUEUFUGUH $.

  $( Sublattice mapping for a modular pair.  Part of Theorem 1.3 of
     [MaedaMaeda] p. 2.  (Contributed by NM, 26-Apr-2006.)
     (New usage is discouraged.) $)
  mdsl3 $p |- ( ( ( A e. CH /\ B e. CH /\ C e. CH ) /\
               ( A MH B /\ ( A i^i B ) C_ C /\ C C_ B ) ) ->
                   ( ( C vH A ) i^i B ) = C ) $=
    ( cch wcel w3a cmd wbr cin wss wa chj co wceq mdi 3adantr2 wb chincl stoic3
    chlejb2 biimpa 3ad2antr2 eqtrd ) ADEZBDEZCDEZFZABGHZABIZCJZCBJZFKCALMBIZCUI
    LMZCUGUHUKULUMNUJABCOPUGUHUJUMCNZUKUGUJUNUDUEUIDEUFUJUNQABRUICTSUAUBUC $.

  ${
    mdslle1.1 $e |- A e. CH $.
    mdslle1.2 $e |- B e. CH $.
    mdslle1.3 $e |- C e. CH $.
    mdslle1.4 $e |- D e. CH $.
    $( Order preservation of the one-to-one onto mapping between the two
       sublattices in Lemma 1.3 of [MaedaMaeda] p. 2.  (Contributed by NM,
       27-Apr-2006.)  (New usage is discouraged.) $)
    mdslle1i $p |- ( ( B MH* A /\ A C_ ( C i^i D ) /\ ( C vH D )
            C_ ( A vH B ) ) -> ( C C_ D <-> ( C i^i B ) C_ ( D i^i B ) ) ) $=
      ( cin wss chj co w3a chincli wceq wa bicomi simplbi cch wcel cdmd chlej1i
      wbr ssrin id ssin chjcli chlubi 3pm3.2i dmdsl3 mpan syl3an simprbi syl5ib
      sseq12d impbid2 ) BAUAUCZACDIJZCDKLABKLZJZMZCDJZCBIZDBIZJZCDBUDVEVCAKLZVD
      AKLZJVAVBVCVDACBGFNDBHFNEUBVAVFCVGDUQUQURACJZUTCUSJZVFCOZUQUEZURVHADJZVHV
      LPURACDUFQZRUTVIDUSJZVIVNPUTCDUSGHABEFUGUHQZRASTZBSTZCSTZMUQVHVIMVJVPVQVR
      EFGUIABCUJUKULUQUQURVLUTVNVGDOZVKURVHVLVMUMUTVIVNVOUMVPVQDSTZMUQVLVNMVSVP
      VQVTEFHUIABDUJUKULUOUNUP $.

    $( Order preservation of the one-to-one onto mapping between the two
       sublattices in Lemma 1.3 of [MaedaMaeda] p. 2.  (Contributed by NM,
       27-Apr-2006.)  (New usage is discouraged.) $)
    mdslle2i $p |- ( ( A MH B /\ ( A i^i B ) C_ ( C i^i D ) /\ ( C vH D )
            C_ B ) -> ( C C_ D <-> ( C vH A ) C_ ( D vH A ) ) ) $=
      ( cin wss chj co w3a wceq wa bicomi simplbi cch wcel 3pm3.2i cmd ssrin id
      wbr chlej1i ssin chlubi mdsl3 mpan syl3an simprbi sseq12d syl5ib impbid2
      ) ABUAUDZABIZCDIJZCDKLBJZMZCDJZCAKLZDAKLZJZCDAGHEUEVCVABIZVBBIZJUSUTVAVBB
      UBUSVDCVEDUOUOUQUPCJZURCBJZVDCNZUOUCZUQVFUPDJZVFVJOUQUPCDUFPZQURVGDBJZVGV
      LOURCDBGHFUGPZQARSZBRSZCRSZMUOVFVGMVHVNVOVPEFGTABCUHUIUJUOUOUQVJURVLVEDNZ
      VIUQVFVJVKUKURVGVLVMUKVNVODRSZMUOVJVLMVQVNVOVREFHTABDUHUIUJULUMUN $.

    $( Join preservation of the one-to-one onto mapping between the two
       sublattices in Lemma 1.3 of [MaedaMaeda] p. 2.  (Contributed by NM,
       27-Apr-2006.)  (New usage is discouraged.) $)
    mdslj1i $p |- ( ( ( A MH B /\ B MH* A ) /\
                ( A C_ ( C i^i D ) /\ ( C vH D ) C_ ( A vH B ) ) ) ->
                ( ( C vH D ) i^i B ) = ( ( C i^i B ) vH ( D i^i B ) ) ) $=
      ( wa cin wss chj co bicomi chjcli chlubi w3a wceq cch wcel cmd cdmd simpr
      ssin anbi12i simpl 3pm3.2i dmdsl3 mpan syl3an chincli chub1i chlej1i mp1i
      wbr eqsstr3d chub2i jca sylib ssrin syl syl6ss inss2 mpbir2an a1i sseqtrd
      adantr mdsl3 3expb sylan2b lediri eqssd ) ABUAUOZBAUBUOZIZACDJKZCDLMZABLM
      ZKZIZIZVQBJZCBJZDBJZLMZVTVOACKZADKZIZCVRKZDVRKZIZIWBWEKZVPWHVSWKWHVPACDUD
      NWKVSCDVRGHABEFOPNUEVOWHWKWLVOWHWKQZWBWEALMZBJZWEWMVQWNKZWBWOKWMCWNKZDWNK
      ZIWPWMWQWRWMCWCALMZWNVOVNWHWFWKWIWSCRZVMVNUCZWFWGUFWIWJUFASTZBSTZCSTZQVNW
      FWIQWTXBXCXDEFGUGABCUHUIUJWCWEKWSWNKWMWCWDCBGFUKZDBHFUKZULZWCWEAXEWCWDXEX
      FOZEUMUNUPWMDWDALMZWNVOVNWHWGWKWJXIDRZXAWFWGUCWIWJUCXBXCDSTZQVNWGWJQXJXBX
      CXKEFHUGABDUHUIUJWDWEKXIWNKWMWDWCXFXEUQWDWEAXFXHEUMUNUPURCDWNGHWEAXHEOPUS
      VQWNBUTVAVOVMWHABJZWEKZWKWEBKZWOWERZVMVNUFWFXMWGWFXLWCWEACBUTXGVBVGXNWKXN
      WCBKZWDBKZCBVCDBVCXPXQIXNWCWDBXEXFFPNVDVEXBXCWESTZQVMXMXNQXOXBXCXREFXHUGA
      BWEVHUIUJVFVIVJWEWBKWACDBGHFVKVEVL $.

    $( Meet preservation of the reverse mapping between the two sublattices in
       Lemma 1.3 of [MaedaMaeda] p. 2.  (Contributed by NM, 27-Apr-2006.)
       (New usage is discouraged.) $)
    mdslj2i $p |- ( ( ( A MH B /\ B MH* A ) /\
                ( ( A i^i B ) C_ ( C i^i D ) /\ ( C vH D ) C_ B ) ) ->
                ( ( C i^i D ) vH A ) = ( ( C vH A ) i^i ( D vH A ) ) ) $=
      ( wa cin wss chj co w3a wceq simpr cch wcel chincli 3pm3.2i cmd cdmd ssin
      wbr lejdiri bicomi chlubi anbi12i chub2i chlej1i chjcomi syl6sseq ssinss1
      a1i ssini syl adantr chjcli dmdsl3 mpan syl3an inss1 ssrin ax-mp syl5sseq
      simpl mdsl3 inss2 ssind eqsstr3d 3expb sylan2b eqssd ) ABUAUDZBAUBUDZIZAB
      JZCDJZKZCDLMBKZIZIZVRALMZCALMZDALMZJZWCWFKWBCDAGHEUEUNWAVPVQCKZVQDKZIZCBK
      ZDBKZIZIWFWCKZVSWIVTWLWIVSVQCDUCUFWLVTCDBGHFUGUFUHVPWIWLWMVPWIWLNZWFWFBJZ
      ALMZWCVPVOWIAWFKZWLWFABLMZKZWPWFOZVNVOPWQWIAWDWEACEGUIADEHUIUOUNWJWSWKWJW
      DWRKWSWJWDBALMWRCBAGFEUJBAFEUKULWDWEWRUMUPUQAQRZBQRZWFQRZNVOWQWSNWTXAXBXC
      EFWDWECAGEURDAHEURSZTABWFUSUTVAWNWOVRKWPWCKWNWOCDWNWDBJZWOCWFWDKWOXEKWDWE
      VBWFWDBVCVDVPVNWIWGWLWJXECOZVNVOVFZWGWHVFWJWKVFXAXBCQRZNVNWGWJNXFXAXBXHEF
      GTABCVGUTVAVEWNWEBJZWODWFWEKWOXIKWDWEVHWFWEBVCVDVPVNWIWHWLWKXIDOZXGWGWHPW
      JWKPXAXBDQRZNVNWHWKNXJXAXBXKEFHTABDVGUTVAVEVIWOVRAWFBXDFSCDGHSEUJUPVJVKVL
      VM $.
  $}

  ${
    $d x y A $.  $d x y B $.
    mdsl.1 $e |- A e. CH $.
    mdsl.2 $e |- B e. CH $.
    $( If the modular pair property holds in a sublattice, it holds in the
       whole lattice.  Lemma 1.4 of [MaedaMaeda] p. 2.  (Contributed by NM,
       27-Apr-2006.)  (New usage is discouraged.) $)
    mdsl1i $p |- ( A. x e. CH ( ( ( A i^i B ) C_ x /\ x C_ ( A vH B ) ) ->
   ( x C_ B -> ( ( x vH A ) i^i B ) = ( x vH ( A i^i B ) ) ) ) <-> A MH B ) $=
      ( vy cin cv wss chj co wa wceq wi cch wral wcel sseq1 wb mp3an23 cmd sstr
      wbr sseq2 anbi12d oveq1 ineq1d eqeq12d imbi12d rspccv impexp bitr2i inss2
      chlub biimpd mpan2i chub2i mpan2 syl6 chub2 mpan jctild chjcl jcad chjass
      chincli chjcomi chabs1i oveq2i syl6eq chjidmi imim12d syl5bi syl5com mdbr
      eqtri ralrimiv mp2an sylibr ax-1 ralimi sylbi impbii ) BCGZAHZIZWEBCJKZIZ
      LZWECIZWEBJKZCGZWEWDJKZMZNZNZAOPZBCUAUCZWQFHZCIZWSBJKZCGZWSWDJKZMZNZFOPZW
      RWQXEFOWQXCOQZWDXCIZXCWGIZLZXCCIZXCBJKZCGZXCWDJKZMZNZNZNZWSOQZXEWPXQAXCOW
      EXCMZWIXJWOXPXTWFXHWHXIWEXCWDUDWEXCWGRUEXTWJXKWNXOWEXCCRXTWLXMWMXNXTWKXLC
      WEXCBJUFUGWEXCWDJUFUHUIUIUJXRXGXJLZXKLZXONZXSXEYCYAXPNXRYAXKXOUKXGXJXPUKU
      LXSWTYBXOXDXSWTYAXKXSWTXJXGXSWTXIXHXSWTXKXIXSWTWDCIZXKBCUMXSWTYDLZXKXSWDO
      QZCOQZYEXKSBCDEVFZEWSWDCUNTUOUPZXKCWGIXICBEDUQXCCWGUBURUSYFXSXHYHWDWSUTVA
      VBXSYFXGYHWSWDVCURVBYIVDXSXOXDXSXMXBXNXCXSXLXACXSXLWSWDBJKZJKZXAXSYFBOQZX
      LYKMYHDWSWDBVETYJBWSJYJBWDJKBWDBYHDVGBCDEVHVPVIVJUGXSXNWSWDWDJKZJKZXCXSYF
      YFXNYNMYHYHWSWDWDVETYMWDWSJWDYHVKVIVJUHUOVLVMVNVQYLYGWRXFSDEFBCVOVRVSWRWO
      AOPZWQYLYGWRYOSDEABCVOVRWOWPAOWOWIVTWAWBWC $.

    $( If the modular pair property holds in a sublattice, it holds in the
       whole lattice.  Lemma 1.4 of [MaedaMaeda] p. 2.  (Contributed by NM,
       28-Apr-2006.)  (New usage is discouraged.) $)
    mdsl2i $p |- ( A MH B <-> A. x e. CH ( ( ( A i^i B ) C_ x /\ x C_ B ) ->
                ( ( x vH A ) i^i B ) C_ ( x vH ( A i^i B ) ) ) ) $=
      ( cin cv wss wa chj co wi cch wral wceq wcel mpan2 wb syl6bb syl cmd sstr
      wbr chub2i pm4.71ri anbi2i anass bitr4i imbi1i chub1 ssin syl5ibcom chub2
      iba mpan ssrin jctird chjcl chincl chincli chlub mp3an2 mpdan sylibd eqss
      rbaib syl6 adantld pm5.74d syl5rbbr impexp ralbiia mdsl1i bitr2i ) BCFZAG
      ZHZVPCHZIZVPBJKZCFZVPVOJKZHZLZAMNVQVPBCJKZHZIZVRWAWBOZLLZAMNBCUAUCWDWIAMV
      PMPZWDWGVRIZWHLZWIWLVSWHLWJWDVSWKWHVSVQWFVRIZIWKVRWMVQVRWFVRCWEHWFCBEDUDV
      PCWEUBQUEUFVQWFVRUGUHUIWJVSWHWCWJVRWHWCRZVQWJVRWBWAHZWNWJVRVPWAHZVOWAHZIZ
      WOWJVRWPWQWJVPVTHZVRWPWJBMPZWSDVPBUJQVRWSWSVRIWPVRWSUNVPVTCUKSULWJBVTHZWQ
      WTWJXADBVPUMUOBVTCUPTUQWJWAMPZWRWORZWJVTMPZXBWJWTXDDVPBURQXDCMPXBEVTCUSQT
      WJVOMPXBXCBCDEUTVPVOWAVAVBVCVDWHWCWOWAWBVEVFVGVHVIVJWGVRWHVKSVLABCDEVMVN
      $.

    $( If the modular pair property holds in a sublattice, it holds in the
       whole lattice.  Lemma 1.4 of [MaedaMaeda] p. 2.  (Contributed by NM,
       24-Dec-2006.)  (New usage is discouraged.) $)
    mdsl2bi $p |- ( A MH B <-> A. x e. CH ( ( ( A i^i B ) C_ x /\ x C_ B ) ->
                ( ( x vH A ) i^i B ) = ( x vH ( A i^i B ) ) ) ) $=
      ( cmd wbr cin cv wss wa chj co wi cch wral wceq wcel wb adantr mdsl2i w3a
      chincli inss1 chlej2 mpan2 mp3an12 simpr inss2 jctir chlub mpbid biantrud
      mp3an23 ssind eqss syl6bbr ex adantld pm5.74d ralbiia bitri ) BCFGBCHZAIZ
      JZVDCJZKZVDBLMZCHZVDVCLMZJZNZAOPVGVIVJQZNZAOPABCDEUAVLVNAOVDORZVGVKVMVOVF
      VKVMSZVEVOVFVPVOVFKZVKVKVJVIJZKVMVQVRVKVQVJVHCVOVJVHJZVFVCORZBORZVOVSBCDE
      UCZDVTWAVOUBVCBJVSBCUDVCBVDUEUFUGTVQVFVCCJZKZVJCJZVQVFWCVOVFUHBCUIUJVOWDW
      ESZVFVOVTCORWFWBEVDVCCUKUNTULUOUMVIVJUPUQURUSUTVAVB $.

    $( The covering property implies the modular pair property.  Lemma 7.5.1 of
       [MaedaMaeda] p. 31.  (Contributed by NM, 16-Jun-2004.)
       (New usage is discouraged.) $)
    cvmdi $p |- ( ( A i^i B ) <oH B -> A MH B ) $=
      ( vx cin wbr wss chj co wa wceq wi cch chabs1i eqtri oveq1 ineq1d 3eqtr4a
      wcel ccv cv wral cmd anass chub2i mpan2 pm4.71ri anbi2i bitr4i wo chincli
      sstr cvnbtwn4 mp3an12 impcom chjcomi ineq1i chjidmi eqtr4i chabs2i oveq2i
      incom 3eqtr2i jaoi syl6 syl5bi exp4b ralrimiv mdsl1i sylib ) ABFZBUAGZVLE
      UBZHZVNABIJZHZKZVNBHZVNAIJZBFZVNVLIJZLZMMZENUCABUDGVMWDENVMVNNTZVRVSWCVRV
      SKZVOVSKZVMWEKZWCWFVOVQVSKZKWGVOVQVSUEVSWIVOVSVQVSBVPHVQBADCUFVNBVPUMUGUH
      UIUJWHWGVNVLLZVNBLZUKZWCWEVMWGWLMZVLNTBNTWEVMWMMABCDULZDVLBVNUNUOUPWJWCWK
      WJVLAIJZBFZVLVLIJZWAWBWPVLWQWOABWOAVLIJAVLAWNCUQABCDOPURVLWNUSUTWJVTWOBVN
      VLAIQRVNVLVLIQSWKBAIJZBFZBVLIJZWAWBWSBWRFZWTWRBVCXABBBAFZIJWTBADCVABADCOX
      BVLBIBAVCVBVDPWKVTWRBVNBAIQRVNBVLIQSVEVFVGVHVIEABCDVJVK $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.
    mdslmd.1 $e |- A e. CH $.
    mdslmd.2 $e |- B e. CH $.
    mdslmd.3 $e |- C e. CH $.
    mdslmd.4 $e |- D e. CH $.
    ${
      mdslmd1lem.5 $e |- R e. CH $.
      $( TODO.  This proof was done quickly and is inefficient.
         Need to use adantr, etc. earlier for unused antecedent pieces. $)
      $( Lemma for ~ mdslmd1i .  (Contributed by NM, 29-Apr-2006.)
         (New usage is discouraged.) $)
      mdslmd1lem1 $p |- ( ( ( A MH B /\ B MH* A ) /\ ( ( A C_ C /\ A C_
         D ) /\ ( C C_ ( A vH B ) /\ D C_ ( A vH B ) ) ) ) -> ( ( (
         R vH A ) C_ D -> ( ( ( R vH A ) vH C ) i^i D ) C_ ( ( R vH A ) vH ( C
         i^i D ) ) ) -> ( ( ( ( C i^i B ) i^i ( D i^i B ) ) C_ R /\ R C_ ( D
         i^i B ) ) -> ( ( R vH ( C i^i B ) ) i^i ( D i^i B ) ) C_ ( R vH ( ( C
         i^i B ) i^i ( D i^i B ) ) ) ) ) ) $=
        ( wa wss chj co cin wceq cch wcel ssin sylib cmd wbr wi chincli chlej1i
        cdmd simpr w3a 3pm3.2i dmdsl3 syl3an 3expb sseq2d syl5ib adantld imim1d
        mpan simpll ad2antlr chub2i jctil inss1 sstr mpan2 sylan ancoms adantll
        ad2ant2l chub1i jctir chjcli chlubi simprrl adantr jca mdslj1i syl12anc
        simplll simplrl ssrin syl inindir syl6sseq sstrd inss2 ad2antll syl3anc
        simprl mdsl3 oveq1d eqtr2d syl6eqr ssinss1 ad2antrl a1i oveq12d sseq12d
        ineq1d wb simpllr simplr sstri mdslle1i bitr4d exbiri a2d syld ) ABUAUB
        ZBAUFUBZKZACLZADLZKZCABMNZLZDXNLZKZKZKZEAMNZDLZXTCMNZDOZXTCDOZMNZLZUCCB
        OZDBOZOZELZEYHLZKZYFUCYLEYGMNZYHOZEYIMNZLZUCXSYLYAYFXSYKYAYJYKXTYHAMNZL
        XSYAEYHAJDBIGUDFUEXSYQDXTXJXMXQYQDPZXJXIXMXLXQXPYRXHXIUGXKXLUGXOXPUGAQR
        ZBQRZDQRZUHXIXLXPUHYRYSYTUUAFGIUIABDUJUQUKULUMUNUOUPXSYLYFYPXSYLYPYFXSY
        LKZYPYCBOZYEBOZLZYFUUBYNUUCYOUUDUUBYNYBBOZYHOUUCUUBYMUUFYHUUBUUFXTBOZYG
        MNZYMUUBXJAXTCOLZYBXNLZUUFUUHPXJXRYLURZUUBAXTLZXKKUUIUUBXKUULXRXKXJYLXK
        XLXQURUSAEFJUTZVAAXTCSTUUBXTXNLZXOKUUJUUBUUNXOUUBEXNLZAXNLZKUUNUUBUUOUU
        PXRYKUUOXJYJXQYKUUOXMXPYKUUOXOYKXPUUOYKEDLZXPUUOYKYHDLUUQDBVBEYHDVCVDED
        XNVCVEVFVGVGVHABFGVIVJEAXNJFABFGVKZVLTZXSXOYLXJXMXOXPVMVNVOXTCXNEAJFVKZ
        HUURVLTABXTCFGUUTHVPVQUUBUUGEYGMUUBXHABOZELZEBLZUUGEPZXHXIXRYLVRUUBUVAY
        IEUUBUVAYDBOZYIUUBAYDLZUVAUVELUUBXMUVFXJXMXQYLVSACDSTZAYDBVTWACDBWBZWCX
        SYJYKWHWDYKUVCXSYJYKYHBLUVCDBWEEYHBVCVDWFYSYTEQRZUHXHUVBUVCUHUVDYSYTUVI
        FGJUIABEWIUQWGZWJWKWRYBDBWBWLUUBUUDUUGUVEMNZYOUUBXJAXTYDOLZYEXNLZUUDUVK
        PUUKUUBUULUVFKUVLUUBUVFUULUVGUUMVAAXTYDSTUUBUUNYDXNLZKUVMUUBUUNUVNUUSXR
        UVNXJYLXOUVNXMXPCDXNWMWNUSVOXTYDXNUUTCDHIUDZUURVLTZABXTYDFGUUTUVOVPVQUU
        BUUGEUVEYIMUVJUVEYIPUUBUVHWOWPWKWQUUBXIAYCYEOLZYCYEMNXNLZYFUUEWSXHXIXRY
        LWTUUBAYCLZAYELZKUVQUUBUVSUVTUUBAYBLZXLKUVSUUBXLUWAXRXLXJYLXKXLXQXAUSAX
        TYBUUMXTCUUTHVIXBVAAYBDSTAXTYEUUMXTYDUUTUVOVIXBVJAYCYESTUUBYCXNLZUVMKUV
        RUUBUWBUVMXRUWBXJYLXPUWBXMXOYCDLXPUWBYBDWEYCDXNVCUQWFUSUVPVOYCYEXNYBDXT
        CUUTHVKIUDZXTYDUUTUVOVKZUURVLTABYCYEFGUWCUWDXCWGXDXEXFXG $.

      $( TODO.  This proof was done quickly and is inefficient.
         Need to use adantr, etc. earlier for unused antecedent pieces. $)
      $( Lemma for ~ mdslmd1i .  (Contributed by NM, 29-Apr-2006.)
         (New usage is discouraged.) $)
      mdslmd1lem2 $p |- ( ( ( A MH B /\ B MH* A ) /\ ( ( A C_
         C /\ A C_ D ) /\ ( C C_ ( A vH B ) /\ D C_ ( A vH B ) ) ) ) ->
         ( ( ( R i^i B ) C_ ( D i^i B ) -> ( ( ( R i^i B ) vH ( C i^i B ) ) i^i
         ( D i^i B ) ) C_ ( ( R i^i B ) vH ( ( C i^i B ) i^i ( D i^i B ) ) ) )
         -> ( ( ( C i^i D ) C_ R /\ R C_ D ) -> ( ( R vH C ) i^i D ) C_ ( R vH
         ( C i^i D ) ) ) ) ) $=
        ( cin wss chj co wa sstr ad2antlr ssind jca sylib wi cmd wbr cdmd ssrin
        adantl imim1i wb simpllr chub2i mpan2 ad2antrr simplr ssin sylbi adantr
        chincli ad2antll ancoms ad2ant2l adantll ssinss1 ad2antrl chjcli chlubi
        inss2 mpan mdslle1i syl3anc inindir wceq sylanb simplll simplrl mdslj1i
        ad2ant2r sylan2 anassrs ineq1d syl5req biimpi anim12i a1i oveq2d eqtr2d
        an4s sseq12d bitr4d exbiri a2d syl5 ) EBKZDBKZLZWLCBKZMNZWMKZWLWOWMKZMN
        ZLZUACDKZELZEDLZOZWTUAABUBUCZBAUDUCZOZACLZADLZOZCABMNZLZDXKLZOZOZOZXDEC
        MNZDKZEXAMNZLZUAXDWNWTXCWNXBEDBUEUFUGXPXDWTXTXPXDXTWTXPXDOZXTXRBKZXSBKZ
        LZWTYAXFAXRXSKLXRXSMNXKLZXTYDUHXEXFXOXDUIYAAXRXSYAAXQDXOAXQLZXGXDXHYFXI
        XNXHCXQLYFCEHJUJACXQPUKULQXOXIXGXDXHXIXNUMQRXOAXSLZXGXDXJYGXNXJAXALZYGA
        CDUNZYHXAXSLYGXAECDHIUQZJUJAXAXSPUKUOUPQRYAXRXKLZXSXKLZOYEYAYKYLXOYKXGX
        DXMYKXJXLXRDLXMYKXQDVFXRDXKPVGURQYAEXKLZXAXKLZOZYLYAYMYNXOXDYMXGXNXDYMX
        JXMXCYMXLXBXCXMYMEDXKPUSZUTVAZVAXOYNXGXDXLYNXJXMCDXKVBZVCQSEXAXKJYJABFG
        VDZVEZTSXRXSXKXQDECJHVDIUQZEXAJYJVDZYSVETABXRXSFGUUAUUBVHVIYAWQYBWSYCYA
        YBXQBKZWMKWQXQDBVJYAUUCWPWMXGXOXDUUCWPVKZXOXDOZXGAECKLZXQXKLZOUUDUUEUUF
        UUGUUEAECXJXBAELZXNXCXJYHXBUUHYIAXAEPVLZVPXHXIXNXDVMRUUEYMXLOUUGUUEYMXL
        YQXJXLXMXDVNSECXKJHYSVETSABECFGJHVOVQVRVSVTYAYCWLXABKZMNZWSXGXOXDYCUUKV
        KZUUEXGAEXAKLZYLOZUULXJXBXNXCUUNXJXBOZUUMXNXCOZYLUUOAEXAUUIXJYHXBXJYHYI
        WAUPRUUPYOYLUUPYMYNXMXCYMXLYPVAXLYNXMXCYRULSYTTWBWFABEXAFGJYJVOVQVRYAUU
        JWRWLMUUJWRVKYACDBVJWCWDWEWGWHWIWJWK $.
    $}

    $( Lemma for ~ mdslmd1i .  (Contributed by NM, 29-Apr-2006.)
       (New usage is discouraged.) $)
    mdslmd1lem3 $p |- ( ( x e. CH /\ ( ( A MH B /\ B MH* A ) /\ ( ( A C_ C /\ A
        C_ D ) /\ ( C C_ ( A vH B ) /\ D C_ ( A vH B ) ) ) ) ) -> ( ( (
        x vH A ) C_ D -> ( ( ( x vH A ) vH C ) i^i D ) C_ ( ( x vH A ) vH ( C
        i^i D ) ) ) -> ( ( ( ( C i^i B ) i^i ( D i^i B ) ) C_ x /\ x C_ ( D i^i
        B ) ) -> ( ( x vH ( C i^i B ) ) i^i ( D i^i B ) ) C_ ( x vH ( ( C i^i B
        ) i^i ( D i^i B ) ) ) ) ) ) $=
      ( cch wbr wa wss chj co cin wi c0h oveq1 imbi12d wcel cmd cdmd cif sseq1d
      wceq oveq1d ineq1d sseq12d sseq2 anbi12d imbi2d h0elch elimel mdslmd1lem1
      cv sseq1 dedth imp ) AUPZJUAZBCUBKCBUCKLBDMBEMLDBCNOZMEVBMLLLZUTBNOZEMZVD
      DNOZEPZVDDEPZNOZMZQZDCPZECPZPZUTMZUTVMMZLZUTVLNOZVMPZUTVNNOZMZQZQZVAVCWCQ
      VCVAUTRUDZBNOZEMZWEDNOZEPZWEVHNOZMZQZVNWDMZWDVMMZLZWDVLNOZVMPZWDVNNOZMZQZ
      QZQUTRUTWDUFZWCWTVCXAVKWKWBWSXAVEWFVJWJXAVDWEEUTWDBNSZUEXAVGWHVIWIXAVFWGE
      XAVDWEDNXBUGUHXAVDWEVHNXBUGUITXAVQWNWAWRXAVOWLVPWMUTWDVNUJUTWDVMUQUKXAVSW
      PVTWQXAVRWOVMUTWDVLNSUHUTWDVNNSUITTULBCDEWDFGHIUTRJUMUNUOURUS $.

    $( Lemma for ~ mdslmd1i .  (Contributed by NM, 29-Apr-2006.)
       (New usage is discouraged.) $)
    mdslmd1lem4 $p |- ( ( x e. CH /\ ( ( A MH B /\ B MH* A ) /\ ( ( A C_
       C /\ A C_ D ) /\ ( C C_ ( A vH B ) /\ D C_ ( A vH B ) ) ) ) ) -> ( ( ( x
       i^i B ) C_ ( D i^i B ) -> ( ( ( x i^i B ) vH ( C i^i B ) ) i^i ( D i^i B
       ) ) C_ ( ( x i^i B ) vH ( ( C i^i B ) i^i ( D i^i B ) ) ) ) -> ( ( ( C
       i^i D ) C_ x /\ x C_ D ) -> ( ( x vH C ) i^i D ) C_ ( x vH ( C i^i D ) )
       ) ) ) $=
      ( cch wbr wa wss chj co cin wi c0h oveq1d imbi12d wcel cmd cdmd cif ineq1
      wceq sseq1d ineq1d sseq12d sseq2 sseq1 anbi12d oveq1 imbi2d h0elch elimel
      cv mdslmd1lem2 dedth imp ) AUQZJUAZBCUBKCBUCKLBDMBEMLDBCNOZMEVCMLLLZVACPZ
      ECPZMZVEDCPZNOZVFPZVEVHVFPZNOZMZQZDEPZVAMZVAEMZLZVADNOZEPZVAVONOZMZQZQZVB
      VDWDQVDVBVARUDZCPZVFMZWFVHNOZVFPZWFVKNOZMZQZVOWEMZWEEMZLZWEDNOZEPZWEVONOZ
      MZQZQZQVARVAWEUFZWDXAVDXBVNWLWCWTXBVGWGVMWKXBVEWFVFVAWECUEZUGXBVJWIVLWJXB
      VIWHVFXBVEWFVHNXCSUHXBVEWFVKNXCSUITXBVRWOWBWSXBVPWMVQWNVAWEVOUJVAWEEUKULX
      BVTWQWAWRXBVSWPEVAWEDNUMUHVAWEVONUMUITTUNBCDEWEFGHIVARJUOUPURUSUT $.

    $( Preservation of the modular pair property in the one-to-one onto mapping
       between the two sublattices in Lemma 1.3 of [MaedaMaeda] p. 2 (meet
       version).  (Contributed by NM, 27-Apr-2006.)
       (New usage is discouraged.) $)
    mdslmd1i $p |- ( ( ( A MH B /\ B MH* A ) /\
                ( A C_ ( C i^i D ) /\ ( C vH D ) C_ ( A vH B ) ) ) ->
                ( C MH D <-> ( C i^i B ) MH ( D i^i B ) ) ) $=
      ( vy vx cin wss chj co wa wbr wi cch wral wcel cdmd wb ssin chjcli chlubi
      cmd anbi12i chjcl mpan2 wceq sseq1 oveq1 ineq1d sseq12d imbi12d rspcv syl
      cv adantr mdslmd1lem3 syld ex com3l ralrimdv mdbr2 chincli mdsl2i 3imtr4g
      mp2an chincl mdslmd1lem4 impbid sylan2br ) ACDKZLZCDMNABMNZLZOABUFPBAUAPO
      ZACLADLOZCVPLDVPLOZOZCDUFPZCBKZDBKZUFPZUBVSVOVTVQACDUCCDVPGHABEFUDUEUGVRW
      AOZWBWEWFIURZDLZWGCMNZDKZWGVNMNZLZQZIRSZWCWDKZJURZLWPWDLOWPWCMNWDKWPWOMNL
      QZJRSWBWEWFWNWQJRWPRTZWFWNWQWRWFWNWQQWRWFOZWNWPAMNZDLZWTCMNZDKZWTVNMNZLZQ
      ZWQWRWNXFQZWFWRWTRTZXGWRARTXHEWPAUHUIWMXFIWTRWGWTUJZWHXAWLXEWGWTDUKXIWJXC
      WKXDXIWIXBDWGWTCMULUMWGWTVNMULUNUOUPUQUSJABCDEFGHUTVAVBVCVDCRTDRTWBWNUBGH
      ICDVEVIJWCWDCBGFVFZDBHFVFZVGVHWFWGWDLZWGWCMNZWDKZWGWOMNZLZQZIRSZVNWPLWPDL
      OWPCMNDKWPVNMNLQZJRSWEWBWFXRXSJRWRWFXRXSWRWFXRXSQWSXRWPBKZWDLZXTWCMNZWDKZ
      XTWOMNZLZQZXSWRXRYFQZWFWRXTRTZYGWRBRTYHFWPBVJUIXQYFIXTRWGXTUJZXLYAXPYEWGX
      TWDUKYIXNYCXOYDYIXMYBWDWGXTWCMULUMWGXTWOMULUNUOUPUQUSJABCDEFGHVKVAVBVCVDW
      CRTWDRTWEXRUBXJXKIWCWDVEVIJCDGHVGVHVLVM $.

    $( Preservation of the modular pair property in the one-to-one onto mapping
       between the two sublattices in Lemma 1.3 of [MaedaMaeda] p. 2 (join
       version).  (Contributed by NM, 29-Apr-2006.)
       (New usage is discouraged.) $)
    mdslmd2i $p |- ( ( ( A MH B /\ B MH* A ) /\
                ( ( A i^i B ) C_ ( C i^i D ) /\ ( C vH D ) C_ B ) ) ->
                ( C MH D <-> ( C vH A ) MH ( D vH A ) ) ) $=
      ( cmd wbr wa cin wss chj co w3a sstr mpan cch wcel cdmd wb chjcli chlej1i
      chjjdiri chjcomi 3sstr3g adantl chub2i ssini jctil mdslmd1i wceq id inss1
      sylan2 mpan2 chub1i 3pm3.2i mdsl3 syl3an inss2 breq12d adantlr bitr2d
      3expb ) ABIJZBAUAJZKZABLZCDLZMZCDNOZBMZKZKCANOZDANOZIJZVPBLZVQBLZIJZCDIJZ
      VOVIAVPVQLMZVPVQNOZABNOZMZKVRWAUBVOWFWCVNWFVLVNVMANOBANOWDWEVMBACDGHUCFEU
      DCDAGHEUEBAFEUFUGUHAVPVQACEGUIADEHUIUJUKABVPVQEFCAGEUCDAHEUCULUPVGVOWAWBU
      BZVHVGVLVNWGVGVLVNPVSCVTDIVGVGVLVJCMZVNCBMZVSCUMZVGUNZVLVKCMWHCDUOVJVKCQU
      QCVMMVNWICDGHURCVMBQRASTZBSTZCSTZPVGWHWIPWJWLWMWNEFGUSABCUTRVAVGVGVLVJDMZ
      VNDBMZVTDUMZWKVLVKDMWOCDVBVJVKDQUQDVMMVNWPDCHGUIDVMBQRWLWMDSTZPVGWOWPPWQW
      LWMWREFHUSABDUTRVAVCVFVDVE $.

    $( Preservation of the dual modular pair property in the one-to-one onto
       mapping between the two sublattices in Lemma 1.3 of [MaedaMaeda] p. 2.
       (Contributed by NM, 29-Apr-2006.)  (New usage is discouraged.) $)
    mdsldmd1i $p |- ( ( ( A MH B /\ B MH* A ) /\
                ( A C_ ( C i^i D ) /\ ( C vH D ) C_ ( A vH B ) ) ) ->
                ( C MH* D <-> ( C i^i B ) MH* ( D i^i B ) ) ) $=
      ( cmd wbr wa cin wss chj co cort cfv wb cch wcel cdmd mddmd mp2an chincli
      dmdmd anbi12ci chsscon3i chdmm1i sseq1i bitri chdmj1i incom eqtri sseq12i
      chjcli choccli mdslmd2i syl2anb breq12i 3bitr4g ) ABIJZBAUAJZKZACDLZMZCDN
      OZABNOZMZKZKCPQZDPQZIJZVJBPQZNOZVKVMNOZIJZCDUAJZCBLZDBLZUAJZVCVMAPQZIJZWA
      VMUAJZKVMWALZVJVKLZMZVJVKNOZWAMZKVLVPRVIVAWCVBWBASTZBSTZVAWCREFABUBUCWJWI
      VBWBRFEBAUEUCUFVEWHVHWFVEVDPQZWAMWHAVDECDGHUDUGWKWGWACDGHUHUIUJVHVGPQZVFP
      QZMWFVFVGCDGHUOABEFUOUGWLWDWMWEWLWAVMLWDABEFUKWAVMULUMCDGHUKUNUJUFVMWAVJV
      KBFUPAEUPCGUPDHUPUQURCSTDSTVQVLRGHCDUEUCVTVRPQZVSPQZIJZVPVRSTVSSTVTWPRCBG
      FUDDBHFUDVRVSUEUCWNVNWOVOICBGFUHDBHFUHUSUJUT $.

    $( Modular pair conditions that imply the modular pair property in a
       sublattice.  Lemma 1.5.1 of [MaedaMaeda] p. 2.  (Contributed by NM,
       23-Dec-2006.)  (New usage is discouraged.) $)
    mdslmd3i $p |- ( ( ( A MH B /\ ( A i^i B ) MH C ) /\ ( ( A i^i C ) C_ D /\
                  D C_ A ) ) -> D MH ( B i^i C ) ) $=
      ( vx cmd wbr cin wa wss chj co cch wcel ssrin wceq cv wi wral w3a mp3an12
      chlej2 ex impcom syl adantll adantr ssin inass mdi mp3anl1 mpanl1 syl5eqr
      ineq1d adantrlr adantrrr chincli oveq2i syl6eq adantrll adantrrl sylan2br
      eqtrd ancoms an32s adantllr in12 inidm ineq2i eqtri syl5eqss anim12i eqss
      eqtr2i sylibr oveq2d ad3antlr sseqtrd ralrimiva wb mdbr2 mp2an ) ABJKZABL
      ZCJKZMZACLZDNZDANZMZMZIUAZBCLZNZWPDOPZWQLZWPDWQLZOPZNZUBZIQUCZDWQJKZWOXDI
      QWOWPQRZMZWRXCXHWRMZWTWPAOPZWQLZXBXHWTXKNZWRWNXGXLWJWMXGXLWLWMXGMWSXJNZXL
      XGWMXMDQRZAQRZXGWMXMUBHEXNXOXGUDWMXMDAWPUFUGUEUHWSXJWQSUIUJUJUKXIXKWPAWQL
      ZOPZXBWJXGWRXKXQTZWNWRWJXGMWPBNZWPCNZMZXRWPBCULWJYAXGXRXGWJYAMZXRXGYBMXKW
      PWHOPZCLZXQXGWJXSXKYDTZXTXGWGXSYEWIXGWGXSMZMZXKXJBLZCLYDXJBCUMYGYHYCCBQRZ
      XGYFYHYCTZFXOYIXGYFYJEABWPUNUOUPURUQUSUTXGWJXTYDXQTZXSXGWIXTYKWGXGWIXTMZM
      YDWPWHCLZOPZXQCQRZXGYLYDYNTZGWHQRYOXGYLYPABEFVAWHCWPUNUOUPYMXPWPOABCUMVBV
      CVDVEVGVHVIVFVJWNXQXBTWJXGWRWNXPXAWPOWNXPXANZXAXPNZMXPXATWLYQWMYRWLXPWKWQ
      LZXAYSACWQLZLXPACWQUMYTWQAYTBCCLZLWQCBCVKUUACBCVLVMVNVMVRWKDWQSVODAWQSVPX
      PXAVQVSVTWAVGWBUGWCXNWQQRXFXEWDHBCFGVAIDWQWEWFVS $.

    $( Modular pair condition that implies the modular pair property in a
       sublattice.  Lemma 1.5.2 of [MaedaMaeda] p. 2.  (Contributed by NM,
       24-Dec-2006.)  (New usage is discouraged.) $)
    mdslmd4i $p |- ( ( A MH B /\ ( ( A i^i B ) C_ C /\ C C_ A ) /\
                  ( ( A i^i B ) C_ D /\ D C_ B ) ) -> C MH D ) $=
      ( cmd wbr cin wss wa w3a simp1 cch wcel chincli ssmd1 3ad2ant3 sslin sstr
      mp3an12 adantr sylan ancoms 3adant1 simp2r mdslmd3i syl22anc wceq sseqin2
      ad2ant2rl biimpi adantl breqtrd ) ABIJZABKZCLZCALZMZURDLZDBLZMZNZCBDKZDIV
      EUQURDIJZADKZCLZUTCVFIJUQVAVDOVDUQVGVAVBVGVCURPQDPQVBVGABEFRHURDSUCUDTVAV
      DVIUQUSVCVIUTVBVCUSVIVCVHURLUSVIDBAUAVHURCUBUEUFUMUGUQUSUTVDUHABDCEFHGUIU
      JVDUQVFDUKZVAVCVJVBVCVJDBULUNUOTUP $.
  $}

  ${
    $d x A $.  $d c x B $.
    csmdsym.1 $e |- A e. CH $.
    csmdsym.2 $e |- B e. CH $.
    $( Cross-symmetry implies M-symmetry.  Theorem 1.9.1 of [MaedaMaeda] p. 3.
       (Contributed by NM, 24-Dec-2006.)  (New usage is discouraged.) $)
    csmdsymi $p |- ( ( A. c e. CH ( c MH B -> B MH* c ) /\ A MH B ) ->
                   B MH A ) $=
      ( vx cmd wbr cdmd wi cch wa cin wss chj co wceq wcel ad2antlr w3a cv wral
      incom sseq1i biimpri chjcom mpan2 ineq1d syl6eq id 3jca inss2 ssid pm3.2i
      a1i c0h cif sseq2 sseq1 anbi12d 3anbi2d breq1 imbi12d h0elch elimel dedth
      mdslmd4i com12 mp3an3 imp an32s adantlll breq2 rspccva adantlr adantr mpd
      simprr dmdi syl12anc chincli mpan oveq2i 3eqtr2d sylani ralrimiva mdsl2bi
      ex sylibr ) CUAZBGHZBWJIHZJZCKUBZABGHZLZBAMZFUAZNZWRANZLWRBOPZAMZWRWQOPZQ
      ZJZFKUBBAGHWPXEFKWSWPWRKRZLZABMZWRNZWTXDXIWSXHWQWRABUCZUDUEXGXIWTLZXDXGXK
      LZXBABWROPZMZXHWROPZXCXFXBXNQWPXKXFXBXMAMXNXFXAXMAXFBKRZXAXMQEWRBUFUGUHXM
      AUCUISXLXPXFAKRZTZBWRIHZWTXOXNQXFXRWPXKXFXPXFXQXPXFEUOXFUJXQXFDUOUKSXLWRB
      GHZXSWOXFXKXTWNWOXKXFXTWOXKLXFXTWOXKXHBNZBBNZLZXFXTJYAYBABULBUMUNXFWOXKYC
      TZXTXFYDXTJWOXHXFWRUPUQZNZYEANZLZYCTZYEBGHZJWRUPWRYEQZYDYIXTYJYKXKYHWOYCY
      KXIYFWTYGWRYEXHURWRYEAUSUTVAWRYEBGVBVCABYEBDEWRUPKVDVEEVGVFVHVIVJVKVLXGXT
      XSJZXKWNXFYLWOWMYLCWRKWJWRQWKXTWLXSWJWRBGVBWJWRBIVMVCVNVOVPVQXGXIWTVRBWRA
      VSVTXFXOXCQWPXKXFXOWRXHOPZXCXHKRXFXOYMQABDEWAXHWRUFWBXHWQWROXJWCUISWDWHWE
      WFFBAEDWGWI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    mdexch.1 $e |- A e. CH $.
    mdexch.2 $e |- B e. CH $.
    mdexch.3 $e |- C e. CH $.
    $( An exchange lemma for modular pairs.  Lemma 1.6 of [MaedaMaeda] p. 2.
       (Contributed by NM, 22-Jun-2004.)  (New usage is discouraged.) $)
    mdexchi $p |- ( ( A MH B /\ C MH ( A vH B ) /\ ( C i^i ( A vH B ) ) C_ A )
      -> ( ( C vH A ) MH B /\ ( ( C vH A ) i^i B ) = ( A i^i B ) ) ) $=
      ( vx cmd chj co cin wss w3a wceq wi cch wcel wa mp3an12 chjcom wbr chjass
      cv wral chjcli mpan2 chjcl mpan sylancl 3eqtr4d ineq1d inass incom ineq2i
      chjcomi chabs2i eqtri syl6eqr ad2antrr chlej2 mp3an23 mdi exp32 syl com23
      ex syld imp31 adantrr chincli chjidmi oveq1i 3eqtr3a eqtrd adantr sseqtrd
      imp ad2ant2rl eqsstrd ssrin adantrl chub2i ax-mp mpi sstrd exp31 ralrimiv
      com3r 3impb wb mdbr2 mp2an sylibr 3eqtr3ri ineq12i chub1i chlejb1i biimpi
      mp3an syl5eq sylan9eq syl5eqr 3adant1 jca ) ABHUAZCABIJZHUAZCXFKZALZMZCAI
      JZBHUAZXKBKZABKZNZXJGUCZBLZXPXKIJZBKZXPXMIJZLZOZGPUDZXLXJYBGPXEXGXIXPPQZY
      BOYDXQXEXGXIRZRZYAYDXQYFYAYDXQRZYFRXSXPAIJZBKZXTYGYEXSYILXEYGYERZXSAXPIJZ
      CIJZXFKZBKZYIYDXSYNNXQYEYDXSYLBKZYNYDXRYLBYDXKXPIJZCYKIJZXRYLCPQZAPQZYDYP
      YQNFDCAXPUBSYDXKPQZXRYPNCAFDUEZXPXKTUFYDYKPQZYRYLYQNYSYDUUBDAXPUGUHZFYKCT
      UIUJUKYNYLXFBKZKYOYLXFBULUUDBYLUUDBXFKZBXFBUMUUEBBAIJZKZBXFUUFBABDEUOUNZB
      AEDUPZUQUQUNUQURUSYJYMYHLYNYILYJYMYKXHIJZYHYGXGYMUUJNZXIYDXQXGUUKYDXQYKXF
      LZXGUUKOYDBPQZYSXQUULOEDYDUUMYSMXQUULXPBAUTVFVAYDXGUULUUKYDUUBXGUULUUKOOZ
      UUCYRXFPQZUUBUUNFABDEUEZYRUUOUUBMXGUULUUKCXFYKVBVCSVDVEVGVHVIYDXIUUJYHLXQ
      XGYDXIRUUJYKAIJZYHYDXIUUJUUQLZYDUUBXIUUROZUUCXHPQZYSUUBUUSCXFFUUPVJZDUUTY
      SUUBMXIUURXHAYKUTVFSVDVQYDUUQYHNXIYDUUQAYKIJZYHYDUUBYSUUQUVBNUUCDYKATUIYD
      AAIJZXPIJZYKUVBYHUVCAXPIADVKVLYSYSYDUVDUVBNDDAAXPUBSYSYDYKYHNDAXPTUHVMVNV
      OVPVRVSYMYHBVTVDVSWAYGXEYIXTLYEYGXERYIXPXNIJZXTYDXQXEYIUVENZYDXEXQUVFYSUU
      MYDXEXQUVFOODEYSUUMYDMXEXQUVFABXPVBVCSVEVHYDUVEXTLZXQXEYDXNXMLZUVGAXKLUVH
      ACDFWBAXKBVTWCXNPQZXMPQZYDUVHUVGOABDEVJXKBUUAEVJUVIUVJYDMUVHUVGXNXMXPUTVF
      SWDUSVSVIWEWFWHWIWGYTUUMXLYCWJUUAEGXKBWKWLWMXGXIXOXEYEXMACIJZUUDKZXNXKUVK
      BUUDCAFDUOUUEUUGUUDBUUHBXFUMUUIWNWOYEUVLUVKXFKZBKXNUVKXFBULYEUVMABXGXIUVM
      AXHIJZAXGAXFLZUVMUVNNZABDEWPYRUUOYSXGUVOUVPOOFUUPDYRUUOYSMXGUVOUVPCXFAVBV
      CWSWDXIUVNXHAIJZAAXHDUVAUOXIUVQANXHAUVADWQWRWTXAUKXBWTXCXD $.
  $}

  $( The covering property implies the modular pair property.  Lemma 7.5.1 of
     [MaedaMaeda] p. 31.  (Contributed by NM, 21-Jun-2004.)
     (New usage is discouraged.) $)
  cvmd $p |- ( ( A e. CH /\ B e. CH /\ ( A i^i B ) <oH B ) -> A MH B ) $=
    ( cch wcel cin ccv wbr cmd wi chil wceq ineq1 breq1d breq1 imbi12d ineq2 id
    cif breq12d ifchhv breq2 cvmdi dedth2h 3impia ) ACDZBCDZABEZBFGZABHGZUEUFUH
    UIIUEAJRZBEZBFGZUJBHGZIUJUFBJRZEZUNFGZUJUNHGZIABJJAUJKZUHULUIUMURUGUKBFAUJB
    LMAUJBHNOBUNKZULUPUMUQUSUKUOBUNFBUNUJPUSQSBUNUJHUAOUJUNATBTUBUCUD $.

  $( The covering property implies the dual modular pair property.  Lemma 7.5.2
     of [MaedaMaeda] p. 31.  (Contributed by NM, 21-Jun-2004.)
     (New usage is discouraged.) $)
  cvdmd $p |- ( ( A e. CH /\ B e. CH /\ B <oH ( A vH B ) ) -> A MH* B ) $=
    ( cch wcel chj co ccv wbr cdmd wa cort cfv cin wi choccl cvmd 3expia syl2an
    cmd wb simpr chjcl cvcon3 syl2anc chdmj1 breq1d bitrd dmdmd 3imtr4d 3impia
    ) ACDZBCDZBABEFZGHZABIHZUKULJZAKLZBKLZMZURGHZUQURSHZUNUOUKUQCDZURCDZUTVANUL
    AOBOVBVCUTVAUQURPQRUPUNUMKLZURGHZUTUPULUMCDUNVETUKULUAABUBBUMUCUDUPVDUSURGA
    BUEUFUGABUHUIUJ $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Atoms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Define the set of atoms in a Hilbert lattice.  An atom is a nonzero
     element of a lattice such that anything less than it is zero, i.e. it is
     the smallest nonzero element of the lattice.  Definition of atom in
     [Kalmbach] p. 15.  See ~ ela and ~ elat2 for membership relations.
     (Contributed by NM, 14-Aug-2002.)  (New usage is discouraged.) $)
  df-at $a |- HAtoms = { x e. CH | 0H <oH x } $.

  ${
    $d x A $.  $d x B $.
    $( Atoms in a Hilbert lattice are the elements that cover the zero
       subspace.  Definition of atom in [Kalmbach] p. 15.  (Contributed by NM,
       9-Jun-2004.)  (New usage is discouraged.) $)
    ela $p |- ( A e. HAtoms <-> ( A e. CH /\ 0H <oH A ) ) $=
      ( vx c0h cv ccv wbr cch cat breq2 df-at elrab2 ) CBDZEFCAEFBAGHLACEIBJK
      $.

    $( Expanded membership relation for the set of atoms, i.e. the predicate
       "is an atom (of the Hilbert lattice)."  An atom is a nonzero element of
       a lattice such that anything less than it is zero, i.e. it is the
       smallest nonzero element of the lattice.  (Contributed by NM,
       9-Jun-2004.)  (New usage is discouraged.) $)
    elat2 $p |- ( A e. HAtoms <-> ( A e. CH /\ ( A =/= 0H /\
                 A. x e. CH ( x C_ A -> ( x = A \/ x = 0H ) ) ) ) ) $=
      ( cat wcel cch c0h ccv wbr wa wne cv wceq wo wi wral wpss wb ch0pss bitri
      wss ela h0elch cvbr2 mpan imbi1d imbi2d impexp bi2.04 neor imbi2i 3bitr4g
      orcom ralbiia a1i anbi12d bitr2d pm5.32i bitr4i ) BCDBEDZFBGHZIUSBFJZAKZB
      TZVBBLZVBFLZMZNZAEOZIZIBUAUSVIUTUSUTFBPZFVBPZVCIVDNZAEOZIZVIFEDUSUTVNQUBA
      FBUCUDUSVJVAVMVHBRVMVHQUSVLVGAEVBEDZVCVKVDNZNZVCVBFJZVDNZNVLVGVOVPVSVCVOV
      KVRVDVBRUEUFVLVKVCVDNNVQVKVCVDUGVKVCVDUHSVFVSVCVFVEVDMVSVDVEULVDVBFUISUJU
      KUMUNUOUPUQUR $.

    $( A Hilbert lattice element is an atom iff it covers the zero subspace.
       (Contributed by NM, 26-Jun-2004.)  (New usage is discouraged.) $)
    elatcv0 $p |- ( A e. CH -> ( A e. HAtoms <-> 0H <oH A ) ) $=
      ( cat wcel cch c0h ccv wbr ela baib ) ABCADCEAFGAHI $.

    $( An atom covers the zero subspace.  (Contributed by NM, 26-Jun-2004.)
       (New usage is discouraged.) $)
    atcv0 $p |- ( A e. HAtoms -> 0H <oH A ) $=
      ( cat wcel cch c0h ccv wbr ela simprbi ) ABCADCEAFGAHI $.

    $( Atoms are a subset of the Hilbert lattice.  (Contributed by NM,
       14-Aug-2002.)  (New usage is discouraged.) $)
    atssch $p |- HAtoms C_ CH $=
      ( vx cat c0h cv ccv wbr cch crab df-at ssrab2 eqsstri ) BCADEFZAGHGAILAGJ
      K $.

    $( An atom is a Hilbert lattice element.  (Contributed by NM, 22-Jun-2004.)
       (New usage is discouraged.) $)
    atelch $p |- ( A e. HAtoms -> A e. CH ) $=
      ( cat cch atssch sseli ) BCADE $.

    $( An atom is not the Hilbert lattice zero.  (Contributed by NM,
       13-Aug-2002.)  (New usage is discouraged.) $)
    atne0 $p |- ( A e. HAtoms -> A =/= 0H ) $=
      ( vx cat wcel cch c0h wne cv wss wceq wo wi wral wa elat2 simprl sylbi )
      ACDAEDZAFGZBHZAITAJTFJKLBEMZNNSBAORSUAPQ $.

    $( A lattice element smaller than an atom is either the atom or zero.
       (Contributed by NM, 25-Jun-2004.)  (New usage is discouraged.) $)
    atss $p |- ( ( A e. CH /\ B e. HAtoms ) ->
               ( A C_ B -> ( A = B \/ A = 0H ) ) ) $=
      ( vx cat wcel cch c0h wne cv wceq wo wi wral wa elat2 sseq1 eqeq1 orbi12d
      wss adantld imbi12d rspcv imp sylan2b ) BDEAFEZBFEZBGHZCIZBSZUHBJZUHGJZKZ
      LZCFMZNZNZABSZABJZAGJZKZLZCBOUEUPVAUEUOVAUFUEUNVAUGUMVACAFUHAJZUIUQULUTUH
      ABPVBUJURUKUSUHABQUHAGQRUAUBTTUCUD $.
  $}

  $( Two atoms in a subset relationship are equal.  (Contributed by NM,
     26-Jun-2004.)  (New usage is discouraged.) $)
  atsseq $p |- ( ( A e. HAtoms /\ B e. HAtoms ) -> ( A C_ B <-> A = B ) ) $=
    ( cat wcel wa wss wceq c0h wne atne0 ad2antrr wo cch wi atelch atss imp ord
    sylan necon1ad mpd ex eqimss impbid1 ) ACDZBCDZEZABFZABGZUGUHUIUGUHEZAHIZUI
    UEUKUFUHAJKUJUIAHUJUIAHGZUGUHUIULLZUEAMDUFUHUMNAOABPSQRTUAUBABUCUD $.

  $( A Hilbert lattice element covered by an atom must be the zero subspace.
     (Contributed by NM, 11-Jun-2004.)  (New usage is discouraged.) $)
  atcveq0 $p |- ( ( A e. CH /\ B e. HAtoms ) -> ( A <oH B <-> A = 0H ) ) $=
    ( cch wcel cat wa ccv wbr c0h wceq wpss wi atelch cvpss sylan2 ch0le adantr
    wss jctild atcv0 h0elch cvnbtwn3 mp3an1 sylan ancoms syld syl5ibrcom adantl
    mpd breq1 impbid ) ACDZBEDZFZABGHZAIJZUNUOIARZABKZFZUPUNUOURUQUMULBCDZUOURL
    BMZABNOULUQUMAPQSUMULUSUPLZUMULFIBGHZVBUMVCULBTZQUMUTULVCVBLZVAICDUTULVEUAI
    BAUBUCUDUIUEUFUMUPUOLULUMUOUPVCVDAIBGUJUGUHUK $.

  ${
    $d x A $.
    $( A 1-dimensional subspace is an atom.  (Contributed by NM, 22-Jul-2001.)
       (New usage is discouraged.) $)
    h1da $p |- ( ( A e. ~H /\ A =/= 0h ) ->
                ( _|_ ` ( _|_ ` { A } ) ) e. HAtoms ) $=
      ( vx chil wcel c0v wne wa csn cort cfv cch c0h cv wss wceq wo wi wral cat
      adantr snssi occl choccl h1dn0 h1datom expcom ralrimiv jca elat2 sylanbrc
      3syl ) ACDZAEFZGZAHZIJZIJZKDZUQLFZBMZUQNUTUQOUTLOPQZBKRZGUQSDULURUMULUOCN
      UPKDURACUAUOUBUPUCUKTUNUSVBAUDULVBUMULVABKUTKDULVAUTAUEUFUGTUHBUQUIUJ $.
  $}

  $( The span of the singleton of a vector is an atom.  (Contributed by NM,
     18-Dec-2004.)  (New usage is discouraged.) $)
  spansna $p |- ( ( A e. ~H /\ A =/= 0h ) -> ( span ` { A } ) e. HAtoms ) $=
    ( chil wcel c0v wne csn cspn cfv cort cat wceq spansn adantr h1da eqeltrd
    wa ) ABCZADEZPAFZGHZSIHIHZJQTUAKRALMANO $.

  $( A 1-dimensional subspace is less than or equal to any subspace containing
     its generating vector.  (Contributed by NM, 24-Nov-2004.)
     (New usage is discouraged.) $)
  sh1dle $p |- ( ( A e. SH /\ B e. A ) -> ( _|_ ` ( _|_ ` { B } ) ) C_ A ) $=
    ( csh wcel wa csn cort cfv cspn chil wceq shel spansn syl spansnss eqsstr3d
    ) ACDBADEZBFZGHGHZRIHZAQBJDTSKBALBMNABOP $.

  $( A 1-dimensional subspace is less than or equal to any member of ` CH `
     containing its generating vector.  (Contributed by NM, 30-May-2004.)
     (New usage is discouraged.) $)
  ch1dle $p |- ( ( A e. CH /\ B e. A ) -> ( _|_ ` ( _|_ ` { B } ) ) C_ A ) $=
    ( cch wcel csh csn cort cfv wss chsh sh1dle sylan ) ACDAEDBADBFGHGHAIAJABKL
    $.

  ${
    $d x y A $.
    $( The 1-dimensional subspaces of Hilbert space are its atoms.  Part of
       Remark 10.3.5 of [BeltramettiCassinelli] p. 107.  (Contributed by NM,
       4-Jun-2004.)  (New usage is discouraged.) $)
    atom1d $p |- ( A e. HAtoms <->
                E. x e. ~H ( x =/= 0h /\ A = ( span ` { x } ) ) ) $=
      ( vy cat wcel cv wne cort cfv wceq wa chil wrex cch c0h wss wo wi adantrr
      nfv c0v csn cspn wral elat2 chne0 nfre1 nfim chel simprlr h1dn0 anasss wn
      sylan ch1dle snssi occl 3syl choccl sseq1 eqeq1 orbi12d imbi12d mpid impr
      rspcv adantrlr ord syl6ibr mt4d eqcomd rspe syl12anc exp44 rexlimd sylbid
      imp32 sylbi h1da eleq1 syl5ibr expdcom impd rexlimiv impbii spansn eqeq2d
      nne anbi2d rexbiia bitr4i ) BDEZAFZUAGZBWMUBZHIZHIZJZKZALMZWNBWOUCIZJZKZA
      LMWLWTWLBNEZBOGZCFZBPZXFBJZXFOJZQZRZCNUDZKKWTCBUEXDXEXLWTXDXEWNABMXLWTRZA
      BUFXDWNXMABXDATXLWTAXLATWSALUGUHXDWMBEZWNXLWTXDXNWNKZXLKKZWMLEZWNWRWTXDXO
      XQXLXDXNXQWNWMBUIZSSXDXNWNXLUJXPWQBXPWQOGZWQBJZXDXOXSXLXDXNWNXSXDXNKZXQWN
      XSXRWMUKUNULSXPXTUMWQOJZXSUMXPXTYBXDXNXLXTYBQZWNXDXNXLYCYAXLWQBPZYCBWMUOY
      AWPNEZWQNEXLYDYCRZRYAXQWOLPYEXRWMLUPWOUQURWPUSXKYFCWQNXFWQJZXGYDXJYCXFWQB
      UTYGXHXTXIYBXFWQBVAXFWQOVAVBVCVFURVDVEVGVHWQOWHVIVJVKWSALVLVMVNVOVPVQVRWS
      WLALXQWNWRWLWRXQWNWLXQWNKWLWRWQDEWMVSBWQDVTWAWBWCWDWEXCWSALXQXBWRWNXQXAWQ
      BWMWFWGWIWJWK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Superposition principle
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z A $.  $d x y z B $.  $d v w x y z $.
    $( Superposition Principle.  If ` A ` and ` B ` are distinct atoms, there
       exists a third atom, distinct from ` A ` and ` B ` , that is the
       superposition of ` A ` and ` B ` .  Definition 3.4-3(a) in [MegPav2000]
       p. 2345 (PDF p. 8).  (Contributed by NM, 9-Jun-2006.)
       (New usage is discouraged.) $)
    superpos $p |- ( ( A e. HAtoms /\ B e. HAtoms /\ A =/= B )
        -> E. x e. HAtoms ( x =/= A /\ x =/= B /\ x C_ ( A vH B ) ) ) $=
      ( vy vz vw vv wcel wne co wrex cspn wceq wa chil wi wb adantr csm cc cneg
      cat chj wss w3a c0v csn cfv atom1d reeanv an4 neeq1 neeq2 sylan9bb adantl
      cv cva hvaddcl c1 hvaddeq0 sneq fveq2d neg1cn neg1ne0 spansncol sylan9eqr
      cc0 mp3an23 sylbid necon3d imp spansna syl2anc adantlr biimpd spansneleqi
      ex eqeq2 syl elspansn caddc addcl mpan2 ad2antlr cmv ancoms simpll simplr
      hvmulcl hvsubadd syl3anc biimpar hvsubval ax-hvdistr2 mp3an2 eqtr4d oveq1
      sylancom eqtr3d eqeq2d rspcev exp31 rexlimdv syld spansneleq eqcom syl6ib
      sylibrd sylan9r adantlrl adantrr adantll ax-hvcom eqeq1d adantlrr adantrl
      bitr4d cpr spanpr oveq12 df-pr fveq2i snssi spanun syl2an syl5eq spansnch
      cph cun cch spansnj sylan eqtr2d sseqtr4d sseq1 3anbi123d syl13anc syl5bi
      expl rexlimivv sylbir syl2anb 3impia ) BUBHZCUBHZBCIZAUPZBIZUUGCIZUUGBCUC
      JZUDZUEZAUBKZUUDDUPZUFIZBUUNUGZLUHZMZNZDOKZEUPZUFIZCUVAUGZLUHZMZNZEOKZUUF
      UUMPZUUEDBUIECUIUUTUVGNUUSUVFNZEOKDOKUVHUUSUVFDEOOUJUVIUVHDEOOUVIUUOUVBNZ
      UURUVENZNUUNOHZUVAOHZNZUVHUUOUURUVBUVEUKUVNUVJUVKUVHUVNUVJNZUVKNZUUFUUQUV
      DIZUUMUVKUUFUVQQUVOUURUUFUUQCIUVEUVQBUUQCULCUVDUUQUMUNUOUVPUVQUUMUVPUVQNU
      UNUVAUQJZUGLUHZUBHZUVSBIZUVSCIZUVSUUJUDZUUMUVOUVQUVTUVKUVNUVQUVTUVJUVNUVQ
      NUVROHZUVRUFIZUVTUVNUWDUVQUUNUVAURZRUVNUVQUWEUVNUVRUFUUQUVDUVNUVRUFMUUNUS
      UAZUVASJZMZUUQUVDMZUUNUVAUTUVMUWIUWJPUVLUVMUWIUWJUWIUVMUUQUWHUGZLUHZUVDUW
      IUUPUWKLUUNUWHVAVBUVMUWGTHZUWGVGIUWLUVDMVCVDUVAUWGVEVHVFVQUOVIVJVKUVRVLVM
      VNVNUVPUVQUWAUVOUURUVQUWAPZUVEUVNUVBUURUWNUUOUVNUVBNZUURNUVSBUUQUVDUURUVS
      BMZUVSUUQMZUWOUWJUURUWPUWQBUUQUVSVRVOUWOUWQUVAUUQHZUWJUVNUWQUWRPUVBUVNUWQ
      UVAFUPZUUNSJZMZFTKZUWRUVNUWQUVRUUQHZUXBUVNUWDUWQUXCPUWFUVRUUNVPVSUVNUXCUV
      RGUPZUUNSJZMZGTKZUXBUVLUXCUXGQUVMGUUNUVRVTRUVNUXFUXBGTUVNUXDTHZUXFUXBUVNU
      XHNZUXFNZUXDUWGWAJZTHZUVAUXKUUNSJZMZUXBUXHUXLUVNUXFUXHUWMUXLVCUXDUWGWBWCZ
      WDUXJUXEUUNWEJZUVAUXMUXIUXPUVAMZUXFUXIUXEOHZUVLUVMUXQUXFQUVLUXHUXRUVMUXHU
      VLUXRUXDUUNWIZWFVNUVLUVMUXHWGZUVLUVMUXHWHZUXEUUNUVAWJWKWLUXIUXPUXMMZUXFUV
      LUXHUYBUVMUXHUVLUYBUXHUVLNUXPUXEUWGUUNSJUQJZUXMUXHUVLUXRUXPUYCMUXSUXEUUNW
      MWRUXHUWMUVLUXMUYCMVCUXDUWGUUNWNWOWPWFVNRWSUXAUXNFUXKTUWSUXKMZUWTUXMUVAUW
      SUXKUUNSWQWTXAVMXBXCVIXDUVLUWRUXBQUVMFUUNUVAVTRXHRUVLUVBUWRUWJPUVMUVLUVBN
      UWRUVDUUQMUWJUVAUUNXEUVDUUQXFXGVNXDXIVJXJXKVKUVPUVQUWBUVOUVEUVQUWBPZUURUV
      NUUOUVEUYEUVBUVNUUONZUVENUVSCUUQUVDUVEUVSCMZUVSUVDMZUYFUWJUVEUYGUYHCUVDUV
      SVRVOUYFUYHUUNUVDHZUWJUVNUYHUYIPUUOUVNUYHUUNUWSUVASJZMZFTKZUYIUVNUYHUVRUV
      DHZUYLUVNUWDUYHUYMPUWFUVRUVAVPVSUVNUYMUVRUXDUVASJZMZGTKZUYLUVMUYMUYPQUVLG
      UVAUVRVTUOUVNUYOUYLGTUVNUXHUYOUYLUXIUYONZUXLUUNUXKUVASJZMZUYLUXHUXLUVNUYO
      UXOWDUYQUYNUVAWEJZUUNUYRUXIUYTUUNMZUYOUXIVUAUVAUUNUQJZUYNMZUYOUXIUYNOHZUV
      MUVLVUAVUCQUVMUXHVUDUVLUXHUVMVUDUXDUVAWIZWFXLUYAUXTUYNUVAUUNWJWKUXIUVRVUB
      UYNUVNUVRVUBMUXHUUNUVAXMRXNXQWLUXIUYTUYRMZUYOUVMUXHVUFUVLUXHUVMVUFUXHUVMN
      UYTUYNUWHUQJZUYRUXHUVMVUDUYTVUGMVUEUYNUVAWMWRUXHUWMUVMUYRVUGMVCUXDUWGUVAW
      NWOWPWFXLRWSUYKUYSFUXKTUYDUYJUYRUUNUWSUXKUVASWQWTXAVMXBXCVIXDUVMUYIUYLQUV
      LFUVAUUNVTUOXHRUVMUUOUYIUWJPUVLUUNUVAXEXLXDXIVJXOXPVKUVPUWCUVQUVNUVKUWCUV
      JUVNUVKNUVSUUNUVAXRZLUHZUUJUVNUVSVUIUDUVKUUNUVAXSRUVKUVNUUJUUQUVDUCJZVUIB
      UUQCUVDUCXTUVNVUIUUQUVDYHJZVUJUVNVUIUUPUVCYIZLUHZVUKVUHVULLUUNUVAYAYBUVLU
      UPOUDUVCOUDVUMVUKMUVMUUNOYCUVAOYCUUPUVCYDYEYFUVLUUQYJHUVMVUKVUJMUUNYGUUQU
      VAYKYLYMVFYNVNRUULUWAUWBUWCUEAUVSUBUUGUVSMUUHUWAUUIUWBUUKUWCUUGUVSBULUUGU
      VSCULUUGUVSUUJYOYPXAYQVQVIYSYRYTUUAUUBUUC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Atoms, exchange and covering properties, atomicity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.  $d x B $.
    $( The Hilbert lattice has the covering property.  Proposition 1(ii) of
       [Kalmbach] p. 140 (and its converse).  (Contributed by NM, 11-Jun-2004.)
       (New usage is discouraged.) $)
    chcv1 $p |- ( ( A e. CH /\ B e. HAtoms ) ->
                ( -. B C_ A <-> A <oH ( A vH B ) ) ) $=
      ( vx cch wcel cat wa wss wn chj co ccv wbr cv c0v wne csn cspn chil wi
      wceq wrex atom1d spansncv2 sseq1 notbid breq2d imbi12d syl5ibrcom adantld
      cfv oveq2 rexlimdva sylan2b atelch wpss chjcl cvpss syldan sylibrd sylan2
      imp chnle impbid ) ADEZBFEZGBAHZIZAABJKZLMZVFVECNZOPZBVKQRUKZUAZGZCSUBZVH
      VJTZCBUCVEVPVQVEVOVQCSVEVKSEGZVNVQVLVRVQVNVMAHZIZAAVMJKZLMZTAVKUDVNVHVTVJ
      WBVNVGVSBVMAUEUFVNVIWAALBVMAJULUGUHUIUJUMVBUNVFVEBDEZVJVHTBUOVEWCGVJAVIUP
      ZVHVEWCVIDEVJWDTABUQAVIURUSABVCUTVAVD $.

    $( The Hilbert lattice has the covering property.  (Contributed by NM,
       11-Jun-2004.)  (New usage is discouraged.) $)
    chcv2 $p |- ( ( A e. CH /\ B e. HAtoms ) ->
                ( A C. ( A vH B ) <-> A <oH ( A vH B ) ) ) $=
      ( cch wcel cat wa wss wn chj co wpss ccv wbr wb atelch chnle sylan2 chcv1
      bitr3d ) ACDZBEDZFBAGHZAABIJZKZAUCLMUATBCDUBUDNBOABPQABRS $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The join of a closed subspace and an atom equals their subspace sum.
       Special case of remark in [Kalmbach] p. 65, stating that if ` A ` or
       ` B ` is finite-dimensional, then this equality holds.  (Contributed by
       NM, 4-Jun-2004.)  (New usage is discouraged.) $)
    chjatom $p |- ( ( A e. CH /\ B e. HAtoms ) -> ( A +H B ) = ( A vH B ) ) $=
      ( vx cch wcel cat cph co chj wceq cv c0v wne csn cspn cfv wa chil oveq2
      wi wrex atom1d spansnj eqeq12d syl5ibr expd adantl com3l rexlimdv syl5bi
      imp ) ADEZBFEZABGHZABIHZJZUMCKZLMZBUQNOPZJZQZCRUAULUPCBUBULVAUPCRVAULUQRE
      ZUPUTULVBUPTTURUTULVBUPULVBQUPUTAUSGHZAUSIHZJAUQUCUTUNVCUOVDBUSAGSBUSAISU
      DUEUFUGUHUIUJUK $.
  $}

  ${
    $d x y A $.
    shatomic.1 $e |- A e. SH $.
    $( The lattice of Hilbert subspaces is atomic, i.e. any nonzero element is
       greater than or equal to some atom.  Part of proof of Theorem 16.9 of
       [MaedaMaeda] p. 70.  (Contributed by NM, 24-Nov-2004.)
       (New usage is discouraged.) $)
    shatomici $p |- ( A =/= 0H -> E. x e. HAtoms x C_ A ) $=
      ( vy c0h wne cv c0v wrex wss cat shne0i wcel csn cort cfv chil sheli h1da
      wa sylan csh sh1dle mpan adantr sseq1 rspcev syl2anc rexlimiva sylbi ) BE
      FDGZHFZDBIAGZBJZAKIZDBCLULUODBUKBMZULTUKNOPOPZKMZUQBJZUOUPUKQMULURUKBCRUK
      SUAUPUSULBUBMUPUSCBUKUCUDUEUNUSAUQKUMUQBUFUGUHUIUJ $.
  $}

  ${
    $d x A $.
    hatomic.1 $e |- A e. CH $.
    $( The Hilbert lattice is atomic, i.e. any nonzero element is greater than
       or equal to some atom.  Remark in [Kalmbach] p. 140.  (Contributed by
       NM, 22-Jul-2001.)  (New usage is discouraged.) $)
    hatomici $p |- ( A =/= 0H -> E. x e. HAtoms x C_ A ) $=
      ( chshii shatomici ) ABBCDE $.
  $}

  ${
    $d x A $.
    $( A Hilbert lattice is atomic, i.e. any nonzero element is greater than or
       equal to some atom.  Remark in [Kalmbach] p. 140.  Also Definition 3.4-2
       in [MegPav2000] p. 2345 (PDF p. 8).  (Contributed by NM, 24-Jun-2004.)
       (New usage is discouraged.) $)
    hatomic $p |- ( ( A e. CH /\ A =/= 0H ) -> E. x e. HAtoms x C_ A ) $=
      ( cch wcel c0h wne cv wss cat wrex wi cif wceq neeq1 sseq2 rexbidv h0elch
      imbi12d elimel hatomici dedth imp ) BCDZBEFZAGZBHZAIJZUCUDUGKUCBELZEFZUEU
      HHZAIJZKBEBUHMZUDUIUGUKBUHENULUFUJAIBUHUEOPRAUHBECQSTUAUB $.
  $}

  ${
    $d x y A $.
    shatomistic.1 $e |- A e. SH $.
    $( The lattice of Hilbert subspaces is atomistic, i.e. any element is the
       supremum of its atoms.  Part of proof of Theorem 16.9 of [MaedaMaeda]
       p. 70.  (Contributed by NM, 26-Nov-2004.)
       (New usage is discouraged.) $)
    shatomistici $p |- A = ( span ` U. { x e. HAtoms | x C_ A } ) $=
      ( vy wss cat crab cuni cspn cfv wcel c0v wceq chil csh spanid 3syl adantr
      cv mpan eleq1 wne wa sheli spansnsh spansna sylan spansnss sseq1 sylanbrc
      csn elrab elssuni cch atssch chsssh sstri rabss2 uniss mp2b unimax shssii
      ax-mp eqsstri spanss eqsstr3d spansnid syl sseldd spancl sh0 a1i pm2.61ne
      ssriv mp2an fveq2i eqtri sseqtri eqssi ) BASZBEZAFGZHZIJZDBWDDSZBKZWEWDKL
      WDKZWELWELWDUAWFWELUBZUCZWEUKIJZWDWEWIWJWJIJZWDWFWKWJMZWHWFWENKZWJOKWLWEB
      CUDZWEUEWJPQRWIWJWBKZWJWCEZWKWDEZWIWJFKZWJBEZWOWFWMWHWRWNWEUFUGWFWSWHBOKZ
      WFWSCBWEUHTRWAWSAWJFVTWJBUIULUJWJWBUMWCNEZWPWQWCWAAOGZHZNFOEWBXBEWCXCEZFU
      NOUOUPUQWAAFOURWBXBUSUTZXCBNWTXCBMCABOVAVCZBCVBVDZUQZWJWCVETQVFWFWEWJKZWH
      WFWMXIWNWEVGVHRVIWGWFXAWDOKWGXHWCVJWDVKUTVLVMVNWDXCIJZBXCNEXDWDXJEXGXEWCX
      CVEVOXJBIJZBXCBIXFVPWTXKBMCBPVCVQVRVS $.
  $}

  ${
    $d x y A $.
    hatomistic.1 $e |- A e. CH $.
    $( ` CH ` is atomistic, i.e. any element is the supremum of its atoms.
       Remark in [Kalmbach] p. 140.  (Contributed by NM, 14-Aug-2002.)
       (New usage is discouraged.) $)
    hatomistici $p |- A = ( \/H ` { x e. HAtoms | x C_ A } ) $=
      ( vy cv wss cat crab chsup cfv cch wcel ssrab2 ax-mp wa elrab wi wceq c0h
      wn atssch sstri chsupcl chshii atelch sseq1 3imtr4i ssriv chsupss chsupid
      anim1i mp2an sseqtri cort cin wrex elssuni sylbir chsupunss syl6ss ex wne
      cuni atne0 adantr ssin chocini sseq2i bitr2i wb chle0 syl5bbr biimpa expr
      syl necon3ad mpd syld imnan sylnib nrex choccli chincli hatomici necon1bi
      sylib omlsii eqcomi ) AEZBFZAGHZIJZBWLBWKKFZWLKLWKGKWJAGMUAUBZWKUCNZBCUDW
      LWJAKHZIJZBWKWPFZWLWQFZDWKWPDEZGLZWTBFZOZWTKLZXBOWTWKLZWTWPLXAXDXBWTUEZUK
      WJXBAWTGWIWTBUFZPZWJXBAWTKXGPUGUHWMWPKFWRWSQWNWJAKMWKWPUIULNBKLWQBRCABUJN
      UMWTBWLUNJZUOZFZDGUPZTXJSRXKDGXAXBWTXIFZOZXKXAXBXMTZQXNTXAXBWTWLFZXOXAXBX
      PXCWTWKVCZWLXCXEWTXQFXHWTWKUQURWMXQWLFWNWKUSNUTVAXAXPXOXAXPOZWTSVBZXOXAXS
      XPWTVDVEXRXMWTSXAXPXMWTSRZXAXPXMOZXTYAWTSFZXAXTYAWTWLXIUOZFYBWTWLXIVFYCSW
      TWLWOVGVHVIXAXDYBXTVJXFWTVKVOVLVMVNVPVQVAVRXBXMVSWFWTBXIVFVTWAXLXJSDXJBXI
      CWLWOWBWCWDWENWGWH $.
  $}

  ${
    $d x A $.  $d x B $.
    chpssat.1 $e |- A e. CH $.
    chpssat.2 $e |- B e. CH $.
    $( Two Hilbert lattice elements in a proper subset relationship imply the
       existence of an atom less than or equal to one but not the other.
       (Contributed by NM, 10-Jun-2004.)  (New usage is discouraged.) $)
    chpssati $p |- ( A C. B -> E. x e. HAtoms ( x C_ B /\ -. x C_ A ) ) $=
      ( wpss wss wn cat wral crab chsup cfv cch ssrab2 atssch sstri hatomistici
      wi sylbir cv wrex dfpss3 simprbi iman ralbii ss2rab chsupss mp2an 3sstr4g
      wa con3i dfrex2 sylibr syl ) BCFZCBGZHZAUAZCGZUSBGZHUKZAIUBZUPBCGURBCUCUD
      URVBHZAIJZHVCVEUQVEUTVASZAIJZUQVFVDAIUTVAUEUFVGUTAIKZVAAIKZGZUQUTVAAIUGVJ
      VHLMZVILMZCBVHNGVINGVJVKVLGSVHINUTAIOPQVIINVAAIOPQVHVIUHUIACERABDRUJTTULV
      BAIUMUNUO $.

    $( The Hilbert lattice is relatively atomic.  Remark 2 of [Kalmbach]
       p. 149.  (Contributed by NM, 11-Jun-2004.)
       (New usage is discouraged.) $)
    chrelati $p |- ( A C. B ->
                  E. x e. HAtoms ( A C. ( A vH x ) /\ ( A vH x ) C_ B ) ) $=
      ( wpss cv wss wn wa cat wrex chj co chpssati wcel ancom cch wb pssss mpan
      atelch chnle adantl chlub mp3an13 sylan9bb anbi12d syl2an syl5bb rexbidva
      ibar mpbid ) BCFZAGZCHZUOBHIZJZAKLBBUOMNZFZUSCHZJZAKLABCDEOUNURVBAKURUQUP
      JZUNUOKPZJVBUPUQQUNBCHZUORPZVCVBSVDBCTUOUBVEVFJUQUTUPVAVFUQUTSZVEBRPZVFVG
      DBUOUCUAUDVEUPVEUPJZVFVAVEUPULVHVFCRPVIVASDEBUOCUEUFUGUHUIUJUKUM $.

    $( A consequence of relative atomicity.  (Contributed by NM, 30-Jun-2004.)
       (New usage is discouraged.) $)
    chrelat2i $p |- ( -. A C_ B <-> E. x e. HAtoms ( x C_ A /\ -. x C_ B ) ) $=
      ( wss wn wa cat wrex wpss wcel cch wi wb syl6bir wo sylib con2i syl cv co
      cin nssinpss chj chincli chrelati atelch chlub mp3an13 simpr adantld ssin
      notbii chnle mpan syl5bb anbi12d pm3.21 pm4.55 imor 3bitr4ri adantrl jcad
      orcom reximia sylbi wral sstr2 com12 ralrimivw ralbii ralnex bitri impbii
      iman ) BCFZGZAUAZBFZVSCFZGZHZAIJZVRBCUCZBKZWDBCUDWFWEWEVSUEUBZKZWGBFZHZAI
      JWDAWEBBCDEUFZDUGWJWCAIVSILVSMLZWJWCNVSUHWLWJVTWBWLWIVTWHWLWIWEBFZVTHZVTW
      EMLZWLBMLWNWIOWKDWEVSBUIUJZWMVTUKPULWLWJVTWAHZGZWNHWBWLWRWHWNWIWRVSWEFZGZ
      WLWHWQWSVSBCUMUNWOWLWTWHOWKWEVSUOUPUQWPURWRVTWBWMWAWRVTHZWAVTWQNZXAGZWAVT
      USWQVTGZQXDWQQXCXBWQXDVEWQVTUTVTWQVAVBRSVCPVDTVFTVGVQWDVQVTWANZAIVHZWDGZV
      QXEAIVTVQWAVSBCVIVJVKXFWCGZAIVHXGXEXHAIVTWAVPVLWCAIVMVNRSVO $.

    $( If a Hilbert lattice element covers another, it equals the other joined
       with some atom.  This is a consequence of the relative atomicity of
       Hilbert space.  (Contributed by NM, 30-Nov-2004.)
       (New usage is discouraged.) $)
    cvati $p |- ( A <oH B -> E. x e. HAtoms ( A vH x ) = B ) $=
      ( ccv wbr cv chj co wpss wss wa cat wrex wceq cch wcel wi cvpss mp2an syl
      chrelati cvnbtwn2 mp3an12 atelch chjcl sylancr syl11 reximdvai mpd ) BCFG
      ZBBAHZIJZKUNCLMZANOZUNCPZANOULBCKZUPBQRZCQRZULURSDEBCTUAABCDEUCUBULUOUQAN
      UNQRZULUOUQSZUMNRZUSUTVAULVBSDEBCUNUDUEVCUSUMQRVADUMUFBUMUGUHUIUJUK $.

    $( An alternate way to express the covering property.  (Contributed by NM,
       30-Nov-2004.)  (New usage is discouraged.) $)
    cvbr4i $p |- ( A <oH B <-> ( A C. B /\ E. x e. HAtoms ( A vH x ) = B ) ) $=
      ( ccv wbr wpss cv chj co wceq cat wrex wa cch wcel wi wb adantl cvpss jca
      mp2an cvati chcv2 mpan adantr psseq2 breq2 3bitr3d biimpd ex rexlimdv imp
      com3r impbii ) BCFGZBCHZBAIZJKZCLZAMNZOUQURVBBPQZCPQUQURRDEBCUAUCABCDEUDU
      BURVBUQURVAUQAMUSMQZVAURUQVDVAURUQRVDVAOZURUQVEBUTHZBUTFGZURUQVDVFVGSZVAV
      CVDVHDBUSUEUFUGVAVFURSVDUTCBUHTVAVGUQSVDUTCBFUITUJUKULUOUMUNUP $.

    $( Lemma for ~ cvexchi .  (Contributed by NM, 10-Jun-2004.)
       (New usage is discouraged.) $)
    cvexchlem $p |- ( ( A i^i B ) <oH B -> A <oH ( A vH B ) ) $=
      ( vx wss wn wa cat ccv wbr chj co wpss cch wcel wi wb mpan wceq cin cvpss
      cv wrex chincli mp2an chpssati syl ssin ancom bitr3i baibr notbid biimpar
      chcv1 biimpa sylan2 adantrr atelch chabs1i oveq1i chjass mp3an12 syl5reqr
      adantr chnle inss2 biantrur chlub mp3an13 syl5bb chjcl com23 sylbid imp32
      anbi12d cvnbtwn2 oveq2d eqtr3d sylan breqtrd exp32 rexlimiv mpcom ) EUCZB
      FZWEABUAZFZGZHZEIUDZWGBJKZAABLMZJKZWLWGBNZWKWGOPZBOPZWLWOQABCDUEZDWGBUBUF
      EWGBWRDUGUHWJWLWNQEIWEIPZWJWLWNWSWJWLHZHAAWELMZWMJWSWJAXAJKZWLWJWSWEAFZGZ
      XBWFXDWIWFXCWHWHWFXCWHXCWFHWFXCHWEABUIXCWFUJUKULUMUNWSXDXBAOPZWSXDXBRCAWE
      UOSUPUQURWSWEOPZWTXAWMTWEUSXFWTHZAWGWELMZLMZXAWMXFXIXATWTXFXAAWGLMZWELMZX
      IXJAWELABCDUTVAXEWPXFXKXITCWRAWGWEVBVCVDVEXGXHBALXFWJWLXHBTZXFWJWGXHNZXHB
      FZHZWLXLQWJWIWFHXFXOWFWIUJXFWIXMWFXNWPXFWIXMRWRWGWEVFSWFWGBFZWFHZXFXNXPWF
      ABVGVHWPXFWQXQXNRWRDWGWEBVIVJVKVPVKXFWLXOXLXFXHOPZWLXOXLQQZWPXFXRWRWGWEVL
      SWPWQXRXSWRDWGBXHVQVCUHVMVNVOVRVSVTWAWBWCWD $.

    $( The Hilbert lattice satisfies the exchange axiom.  Proposition 1(iii) of
       [Kalmbach] p. 140 and its converse.  Originally proved by Garrett
       Birkhoff in 1933.  (Contributed by NM, 12-Jun-2004.)
       (New usage is discouraged.) $)
    cvexchi $p |- ( ( A i^i B ) <oH B <-> A <oH ( A vH B ) ) $=
      ( cin ccv wbr chj co cvexchlem cort cfv choccli eqtri 3imtr4i cch wcel wb
      cvcon3 mp2an chdmj1i breq1i chdmm1i chjcomi breq2i chjcli chincli impbii
      incom ) ABEZBFGZAABHIZFGZABCDJULKLZAKLZFGZBKLZUJKLZFGZUMUKUQUOEZUOFGUQUQU
      OHIZFGUPUSUQUOBDMZACMZJUNUTUOFUNUOUQEUTABCDUAUOUQUINUBURVAUQFURUOUQHIVAAB
      CDUCUOUQVCVBUDNUEOAPQULPQUMUPRCABCDUFAULSTUJPQBPQUKUSRABCDUGDUJBSTOUH $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A consequence of relative atomicity.  (Contributed by NM, 1-Jul-2004.)
       (New usage is discouraged.) $)
    chrelat2 $p |- ( ( A e. CH /\ B e. CH ) ->
                  ( -. A C_ B <-> E. x e. HAtoms ( x C_ A /\ -. x C_ B ) ) ) $=
      ( cch wcel wss wn cv wa cat wrex wb chil cif notbid sseq2 rexbidv bibi12d
      wceq ifchhv sseq1 anbi1d anbi2d chrelat2i dedth2h ) BDEZCDEZBCFZGZAHZBFZU
      JCFZGZIZAJKZLUFBMNZCFZGZUJUPFZUMIZAJKZLUPUGCMNZFZGZUSUJVBFZGZIZAJKZLBCMMB
      UPSZUIURUOVAVIUHUQBUPCUAOVIUNUTAJVIUKUSUMBUPUJPUBQRCVBSZURVDVAVHVJUQVCCVB
      UPPOVJUTVGAJVJUMVFUSVJULVECVBUJPOUCQRAUPVBBTCTUDUE $.

    $( A consequence of relative atomicity.  (Contributed by NM, 2-Jul-2004.)
       (New usage is discouraged.) $)
    chrelat3 $p |- ( ( A e. CH /\ B e. CH ) ->
                   ( A C_ B <-> A. x e. HAtoms ( x C_ A -> x C_ B ) ) ) $=
      ( cch wcel wa wss cv wn cat wral wrex chrelat2 dfrex2 syl6bb con4bid iman
      wi ralbii syl6bbr ) BDECDEFZBCGZAHZBGZUCCGZIFZIZAJKZUDUERZAJKUAUBUHUAUBIU
      FAJLUHIABCMUFAJNOPUIUGAJUDUEQST $.
  $}

  ${
    $d x A $.  $d x B $.
    chrelat3.1 $e |- A e. CH $.
    chrelat3.2 $e |- B e. CH $.
    $( A consequence of the relative atomicity of Hilbert space: the ordering
       of Hilbert lattice elements is completely determined by the atoms they
       majorize.  (Contributed by NM, 30-Jun-2004.)
       (New usage is discouraged.) $)
    chrelat3i $p |- ( A C_ B <-> A. x e. HAtoms ( x C_ A -> x C_ B ) ) $=
      ( cch wcel wss cv wi cat wral wb chrelat3 mp2an ) BFGCFGBCHAIZBHPCHJAKLMD
      EABCNO $.

    $( A consequence of relative atomicity.  Extensionality principle: two
       lattice elements are equal iff they majorize the same atoms.
       (Contributed by NM, 30-Jun-2004.)  (New usage is discouraged.) $)
    chrelat4i $p |- ( A = B <-> A. x e. HAtoms ( x C_ A <-> x C_ B ) ) $=
      ( wss wa cv wi cat wral wceq wb chrelat3i anbi12i eqss ralbiim 3bitr4i )
      BCFZCBFZGAHZBFZUACFZIAJKZUCUBIAJKZGBCLUBUCMAJKSUDTUEABCDENACBEDNOBCPUBUCA
      JQR $.
  $}

  $( The Hilbert lattice satisfies the exchange axiom.  Proposition 1(iii) of
     [Kalmbach] p. 140 and its converse.  Originally proved by Garrett Birkhoff
     in 1933.  (Contributed by NM, 21-Jun-2004.)
     (New usage is discouraged.) $)
  cvexch $p |- ( ( A e. CH /\ B e. CH ) ->
                ( ( A i^i B ) <oH B <-> A <oH ( A vH B ) ) ) $=
    ( cch wcel cin ccv wbr chj co wb chil cif wceq ineq1 breq1d breq12d bibi12d
    id oveq1 ifchhv ineq2 oveq2 breq2d cvexchi dedth2h ) ACDZBCDZABEZBFGZAABHIZ
    FGZJUFAKLZBEZBFGZULULBHIZFGZJULUGBKLZEZUQFGZULULUQHIZFGZJABKKAULMZUIUNUKUPV
    BUHUMBFAULBNOVBAULUJUOFVBRAULBHSPQBUQMZUNUSUPVAVCUMURBUQFBUQULUAVCRPVCUOUTU
    LFBUQULHUBUCQULUQATBTUDUE $.

  $( The Hilbert lattice satisfies the covering property of Definition 7.4 of
     [MaedaMaeda] p. 31 and its converse.  (Contributed by NM, 21-Jun-2004.)
     (New usage is discouraged.) $)
  cvp $p |- ( ( A e. CH /\ B e. HAtoms ) ->
            ( ( A i^i B ) = 0H <-> A <oH ( A vH B ) ) ) $=
    ( cch wcel cat wa cin ccv wbr c0h wceq chj co atelch chincl sylan2 sylancom
    wb atcveq0 cvexch bitr3d ) ACDZBEDZFABGZBHIZUDJKZAABLMHIZUBUCUDCDZUEUFRUCUB
    BCDZUHBNZABOPUDBSQUCUBUIUEUGRUJABTPUA $.

  $( The meet of a Hilbert lattice element and an incomparable atom is the zero
     subspace.  (Contributed by NM, 30-Jun-2004.)
     (New usage is discouraged.) $)
  atnssm0 $p |- ( ( A e. CH /\ B e. HAtoms ) ->
             ( -. B C_ A <-> ( A i^i B ) = 0H ) ) $=
    ( cch wcel cat wa wss wn chj co ccv wbr cin c0h wceq chcv1 cvp bitr4d ) ACD
    BEDFBAGHAABIJKLABMNOABPABQR $.

  $( The meet of distinct atoms is the zero subspace.  (Contributed by NM,
     25-Jun-2004.)  (New usage is discouraged.) $)
  atnemeq0 $p |- ( ( A e. HAtoms /\ B e. HAtoms ) ->
             ( A =/= B <-> ( A i^i B ) = 0H ) ) $=
    ( cat wcel wa wss wn wne cin c0h wceq atsseq eqcom syl6bb ancoms necon3bbid
    wb cch atelch atnssm0 sylan bitr3d ) ACDZBCDZEZBAFZGZABHABIJKZUEUFABUDUCUFA
    BKZQUDUCEUFBAKUIBALBAMNOPUCARDUDUGUHQASABTUAUB $.

  $( The meet with an atom's superset is the atom.  (Contributed by NM,
     12-Jun-2006.)  (New usage is discouraged.) $)
  atssma $p |- ( ( A e. HAtoms /\ B e. CH ) ->
            ( A C_ B <-> ( A i^i B ) e. HAtoms ) ) $=
    ( cat wcel cch wa wss cin wi wceq df-ss biimpi eleq1d biimprcd adantr incom
    c0h wn eleq1i atne0 neneqd sylbi wb atnssm0 ancoms biimpd con1d syl5 impbid
    ) ACDZBEDZFZABGZABHZCDZUJUMUOIUKUMUOUJUMUNACUMUNAJABKLMNOUOBAHZQJZRZULUMUOU
    PCDZURUNUPCABPSUSUPQUPTUAUBULUMUQULUMRZUQUKUJUTUQUCBAUDUEUFUGUHUI $.

  $( Two atoms covering the zero subspace are equal.  (Contributed by NM,
     26-Jun-2004.)  (New usage is discouraged.) $)
  atcv0eq $p |- ( ( A e. HAtoms /\ B e. HAtoms ) ->
               ( 0H <oH ( A vH B ) <-> A = B ) ) $=
    ( cat wcel wa c0h chj co ccv wbr wne wn cin atnemeq0 cch wb atelch atcv0 wi
    wceq sylan adantr biantrurd 3bitrd chjcl h0elch mp3an1 syldan syl2an sylbid
    cvp cvntr necon4ad oveq1 chjidm syl sylan9eq eqcomd eleq1d ex adantl impbid
    ibd syl6com ) ACDZBCDZEZFABGHZIJZABTZVGVIABVGABKZFAIJZAVHIJZEZVILZVGVKABMFT
    ZVMVNABNVEAODZVFVPVMPAQZABUKUAVGVLVMVEVLVFARUBUCUDVEVQBODZVNVOSZVFVRBQZVQVS
    VHODZVTABUEFODVQWBVTUFFAVHULUGUHUIUJUMVFVJVISVEVJVFVHCDZVIVJVFWCVJVFVFWCPVJ
    VFEZBVHCWDVHBVJVFVHBBGHZBABBGUNVFVSWEBTWABUOUPUQURUSUTVCVHRVDVAVB $.

  $( Two atoms covering the zero subspace are equal.  (Contributed by NM,
     26-Jun-2004.)  (New usage is discouraged.) $)
  atcv1 $p |- ( ( ( A e. CH /\ B e. HAtoms /\ C e. HAtoms ) /\
                A <oH ( B vH C ) ) -> ( A = 0H <-> B = C ) ) $=
    ( cch wcel cat w3a chj co ccv wbr wa c0h wceq wi breq1 biimpd ex imp wb syl
    atcv0eq sylan9bbr com23 3adant1 atelch chjidm sylan9eq eqcomd eleq1d impcom
    oveq1 ibd atcveq0 sylan2 exp32 com34 3adant2 impbid ) ADEZBFEZCFEZGZABCHIZJ
    KZLAMNZBCNZVCVEVFVGOZVAVBVEVHOUTVAVBLZVFVEVGVIVFVEVGOVIVFLVEVGVFVEMVDJKVIVG
    AMVDJPBCUBUCQRUDUESVCVEVGVFOZUTVBVEVJOZVAUTVBVKUTVBVGVEVFUTVBVGVEVFOUTVBVGL
    ZLVEVFVLUTVDFEZVEVFTVGVBVMVGVBVMVGVBVBVMTVGVBLZCVDFVNVDCVGVBVDCCHIZCBCCHULV
    BCDEVOCNCUFCUGUAUHUIUJRUMUKAVDUNUOQUPUQSURSUS $.

  $( The Hilbert lattice satisfies the atom exchange property.  Proposition
     1(i) of [Kalmbach] p. 140.  A version of this theorem related to vector
     analysis was originally proved by Hermann Grassmann in 1862.  Also
     Definition 3.4-3(b) in [MegPav2000] p. 2345 (PDF p. 8) (use ~ atnemeq0 to
     obtain atom inequality).  (Contributed by NM, 27-Jun-2004.)
     (New usage is discouraged.) $)
  atexch $p |- ( ( A e. CH /\ B e. HAtoms /\ C e. HAtoms ) ->
            ( ( B C_ ( A vH C ) /\ ( A i^i B ) = 0H ) -> C C_ ( A vH B ) ) ) $=
    ( cch wcel cat w3a chj co wss wceq wa atelch sylan2 3adant2 wpss wi ccv wbr
    chjcl cin c0h chub2 ancoms adantr cvpss syldan sylbid 3adant3 adantld chub1
    cvp id a1d ancrd wb chlub syld3an3 sylibd syl3an adantrd jcad simp1 anim12d
    imp 3jca ancomsd psssstr syl6 chcv2 cvnbtwn2 sylsyld mpd sseqtr4d ex ) ADEZ
    BFEZCFEZGZBACHIZJZABUAUBKZLZCABHIZJVSWCLZCVTWDVSCVTJZWCVPVRWFVQVRVPCDEZWFCM
    ZWGVPWFCAUCUDNOUEWEAWDPZWDVTJZLZWDVTKZVSWCWKVSWCWIWJVSWBWIWAVPVQWBWIQVRVPVQ
    LWBAWDRSZWIABULVPVQWDDEZWMWIQVQVPBDEZWNBMZABTZNAWDUFUGUHUIZUJVSWAWJWBVPVPVQ
    WOVRWGWAWJQVPUMZWPWHVPWOWGGZWAAVTJZWALZWJWTWAXAWTXAWAVPWGXAWOACUKOUNUOVPWOW
    GVTDEZXBWJUPVPWGXCWOACTOZABVTUQURUSUTZVAVBVEVSWCWKWLQZVSVPXCWNGZWCAVTRSZXFV
    PVPVQWOVRWGXGWSWPWHWTVPXCWNVPWOWGVCXDVPWOWNWGWQUIVFUTVSWCAVTPZXHVSWCWKXIVSW
    BWAWKVSWBWIWAWJWRXEVDVGAWDVTVHVIVPVRXIXHUPVQACVJOUSAVTWDVKVLVEVMVNVO $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    atoml.1 $e |- A e. CH $.
    $( An assertion holding in atomic orthomodular lattices that is equivalent
       to the exchange axiom.  Proposition 3.2.17 of [PtakPulmannova] p. 66.
       (Contributed by NM, 24-Jun-2004.)  (New usage is discouraged.) $)
    atomli $p |- ( B e. HAtoms ->
                ( ( A vH B ) i^i ( _|_ ` A ) ) e. ( HAtoms u. { 0H } ) ) $=
      ( vx cat wcel chj co cort cin c0h wceq wa wss cch sylancr wi wb mpan imp
      cfv wo csn cun wne wrex atelch chjcl choccli chincl sylancl hatomic sylan
      cv inss2 mpan2 pjococi oveq1i ineq1i incom eqtr3i pjoml3 syl5eq ad2ant2lr
      syl2an inss1 chub1 adantr chlub mp3an1 sylan2 biimpd ancoms mpand adantrr
      sstr anim12i ad2antlr pm3.22 adantl csh chsh chshii orthin jca sylc syl3c
      atexch eqssd ineq1d eqtr3d eleq1d exp43 com24 imp31 ibd ex com23 rexlimdv
      expd mpd necon1bd orrd elun fvex inex2 elsn orbi2i bitri sylibr ) BEFZABG
      HZAIUAZJZEFZXNKLZUBZXNEKUCZUDFZXKXOXPXKXOXNKXKXNKUEZXOXKXTMZDUNZXNNZDEUFZ
      XOXKXNOFZXTYDXKXLOFZXMOFZYEXKAOFZBOFZYFCBUGZABUHZPACUIZXLXMUJUKDXNULUMYAY
      CXODEYAYCYBEFZXOYAYCYMXOQYAYCMYMXOXKXTYCYMYMXORZQXKYMYCXTYNXKYMYCXTYNXKYM
      MZYCXTMZMZYBXNEYQAYBGHZXMJZYBXNYMYCYSYBLZXKXTYMYBOFZYBXMNZYTYCYBUGZYCXNXM
      NUUBXLXMUOYBXNXMVPUPZUUAUUBMZYSXMXMIUAZYBGHZJZYBUUGXMJYSUUHUUGYRXMUUFAYBG
      ACUQURUSUUGXMUTVAUUAUUBUUHYBLZYGUUAUUBUUIQYLXMYBVBSTVCVEVDYQYRXLXMYQYRXLY
      OYCYRXLNZXTYCYOYBXLNZUUJYCXNXLNUUKXLXMVFYBXNXLVPUPZYOUUKUUJXKYIUUAUUKUUJQ
      YMYJUUCYIUUAMAXLNZUUKUUJYIUUMUUAYHYIUUMCABVGSVHUUAYIUUMUUKMZUUJQUUAYIMUUN
      UUJYIUUAYFUUNUUJRZYHYIYFCYKSYHUUAYFUUOCAYBXLVIVJVKVLVMVNVETVKVOYQYIYROFZM
      ZAYRNZBYRNZXLYRNZYOUUQYPXKYIYMUUPYJYMYHUUAUUPCUUCAYBUHPVQVHYMUURXKYPYMYHU
      UAUURCUUCAYBVGPVRYQYMXKMZUUKAYBJZKLZMZUUSYOUVAYPXKYMVSVHYMYCUVDXKXTYMYCMU
      UKUVCYCUUKYMUULVTYMUUAUUBUVCYCUUCUUDUUEUVBYBAJZKAYBUTUUAUUBUVEKLZUUAYBWAF
      AWAFUUBUVFQYBWBACWCYBAWDUKTVCVEWEVDYHYMXKUVDUUSQCAYBBWHVJWFUUQUURUUSUUTUU
      QUURUUSMZUUTYHYIUUPUVGUUTRCABYRVIVJVLWTWGWIWJWKWLWMWNWOWPWQWRWSXAWQXBXCXS
      XOXNXRFZUBXQXNEXRXDUVHXPXOXNKXMXLAIXEXFXGXHXIXJ $.

    $( An assertion holding in atomic orthomodular lattices that is equivalent
       to the exchange axiom.  Proposition P8(ii) of [BeltramettiCassinelli1]
       p. 400.  (Contributed by NM, 12-Jun-2006.)
       (New usage is discouraged.) $)
    atoml2i $p |- ( ( B e. HAtoms /\ -. B C_ A ) ->
                ( ( A vH B ) i^i ( _|_ ` A ) ) e. HAtoms ) $=
      ( cat wcel wss wn chj co cort cfv cin c0h cch atelch pjoml5 sylancr incom
      wceq wo eqeq1i biimpi oveq2d chj0i syl6eq sylan9req ex wb chlejb2 sylancl
      sylibrd con3d csn cun atomli h0elch elexi elsn2 orbi2i orcom 3bitri sylib
      elun ord syld imp ) BDEZBAFZGZABHIZAJKZLZDEZVGVIVLMSZGVMVGVNVHVGVNVJASZVH
      VGVNVOVGVNVJAVKVJLZHIZAVGANEZBNEZVQVJSCBOZABPQVNVQAMHIAVNVPMAHVNVPMSVLVPM
      VJVKRUAUBUCACUDUEUFUGVGVSVRVHVOUHVTCBAUIUJUKULVGVNVMVGVLDMUMZUNEZVNVMTZAB
      CUOWBVMVLWAEZTVMVNTWCVLDWAVCWDVNVMVLMMNUPUQURUSVMVNUTVAVBVDVEVF $.

    $( An ordering law for a Hilbert lattice atom and a commuting subspace.
       (Contributed by NM, 12-Jun-2006.)  (New usage is discouraged.) $)
    atordi $p |- ( ( B e. HAtoms /\ A C_H B ) ->
                ( B C_ A \/ B C_ ( _|_ ` A ) ) ) $=
      ( cat wcel ccm wbr wa wss cort cfv cin chj co cch c0h incom syl6eq adantr
      wceq wn atelch choccli chincl mpan chj0 syl h0elch chjcom sylancl chocini
      eqtr3d eqtri oveq1i syl6eqr w3a cmidi cmcm2ii mpanr1 mp3anl2 mpanl1 sylan
      fh2 eqtr4d atoml2i adantlr eqeltrd wb atssma mpan2 ad2antrr mpbird orrd
      ex ) BDEZABFGZHZBAIZBAJKZIZVQVRUAZVTVQWAHZVTBVSLZDEZWBWCABMNZVSLZDVQWCWFT
      WAVQWCVSWELZWFVOBOEZVPWCWGTBUBWHVPHWCVSALZVSBLZMNZWGWHWCWKTVPWHWCPWJMNZWK
      WHWJPMNZWCWLWHWMWJWCWHWJOEZWMWJTVSOEZWHWNACUCZVSBUDUEZWJUFUGVSBQRWHWNPOEW
      MWLTWQUHWJPUIUJULWIPWJMWIAVSLPVSAQACUKUMUNUOSWOWHVPWGWKTZWPWOAOEZWHVPWRCW
      OWSWHUPAVSFGVPWRAACCACUQURVSABVCUSUTVAVDVBVSWEQRSVOWAWFDEVPABCVEVFVGVOVTW
      DVHZVPWAVOWOWTWPBVSVIVJVKVLVNVM $.

    $( Lemma for ~ atcvati .  (Contributed by NM, 27-Jun-2004.)
       (New usage is discouraged.) $)
    atcvatlem $p |- ( ( ( B e. HAtoms /\ C e. HAtoms ) /\
        ( A =/= 0H /\ A C. ( B vH C ) ) ) -> ( -. B C_ A -> A e. HAtoms ) ) $=
      ( vx cat wcel wa c0h chj co wss wi ccv wceq cch wb atelch imp adantr wpss
      wne wn cv wrex hatomici wbr cin nssne2 adantrl atnemeq0 syl5ib cvp chjcom
      sylan2 breq2d bitrd sylan sylibd ancoms adantlr chub1 syl2an 3adant3 sstr
      pssss adantl incom syl5eq adantrr atexch syl3an1 mp2and simp1 simp3 chjcl
      w3a 3jca syl3an chlub syl mpbi2and 3adant2 anim12i syld3an3 mpbid syl3anl
      eqssd anassrs psseq2d ex ibd exp32 3expa an32s com34 imp45 simpr cvnbtwn3
      jca mp3an3 exp4a com23 imp4a eleq1d biimprcd exp4c pm2.43b rexlimdva syl5
      exp4d imp32 ) BFGZCFGZHZAIUBZABCJKZUAZBALUCZAFGZMZXPEUDZALZEFUEXOXRYAMZEA
      DUFXOYCYDEFXOYBFGZHZYCXRXSXTXOYEYCXRXSHZHZXTMZXOYEYIYEXOYEYHXTYFYHHZXTYEY
      JAYBFYJYBBYBJKZNUGZAYKUAZAYBOZYFYHYLXMYEYHYLMZXNYEXMYOYEXMHZYHYBBUHZIOZYL
      YHYBBUBZYPYRYCXSYSXRYBBAUIZUJYBBUKZULYEYBPGZXMYRYLQYBRZUUBXMHZYRYBYBBJKZN
      UGYLYBBUMUUDUUEYKYBNXMUUBBPGZUUEYKOBRZYBBUNUOUPUQURUSUTVASYFYCXRXSYMYFYCX
      SXRYMXMYEXNYCXSXRYMMZMMZXMYEXNUUIXMYEXNVQZYCXSUUHUUJYCXSHZHZXRYMUULXRXRYM
      QUULXRHXQYKAUUJUUKXRXQYKOUUJUUKXRHZHZXQYKUUNBYKLZCYKLZXQYKLZUUJUUOUUMXMYE
      UUOXNXMUUFUUBUUOYEUUGUUCBYBVBVCVDTUUNYBXQLZBYBUHZIOZUUPUUMUURUUJYCXRUURXS
      XRYCAXQLUURAXQVFYBAXQVEUOVAZVGUUJUUKUUTXRUULUUSYQIBYBVHUUJUUKYRXMYEUUKYRM
      ZXNYEXMUVBUUKYSYPYRYTUUAULUTVDSVIVJUUJUURUUTHUUPMZUUMXMUUFYEXNUVCUUGBYBCV
      KVLTVMUUJUUOUUPHUUQQZUUMUUJUUFCPGZYKPGZVQZUVDXMUUFYEUUBXNUVEUVGUUGUUCCRZU
      UFUUBUVEVQZUUFUVEUVFUUFUUBUVEVNUUFUUBUVEVOUUFUUBUVFUVEBYBVPZVDVRVSBCYKVTW
      ATWBXMUUFYEUUBXNUVEUUMYKXQLZUUGUUCUVHUVIUUMHBXQLZUURHZUVKUVIUVLUUMUURUUFU
      VEUVLUUBBCVBWCUVAWDUVIUVMUVKQZUUMUUFUUBUVEXQPGZUVNUUFUVEUVOUUBBCVPWCBYBXQ
      VTWETWFWGWHWIWJWKWLWMWNWOWPWQYFYCYLYMHYNMZYGYFYCUVPXMYEYCUVPMZXNXMYEHUUBU
      VFHZUVQXMUUFUUBUVRYEUUGUUCUUFUUBHUUBUVFUUFUUBWRUVJWTVCUVRYCYLYMYNUVRYLYCY
      MYNMUVRYLYCYMYNUUBUVFAPGYLYCYMHYNMMDYBYKAWSXAXBXCXDWAVASVJVMXEXFXGXHSXKXI
      XJXL $.

    $( A nonzero Hilbert lattice element less than the join of two atoms is an
       atom.  (Contributed by NM, 28-Jun-2004.)  (New usage is discouraged.) $)
    atcvati $p |- ( ( B e. HAtoms /\ C e. HAtoms ) ->
                 ( ( A =/= 0H /\ A C. ( B vH C ) ) -> A e. HAtoms ) ) $=
      ( cat wcel wa c0h chj co wpss wss wn atcvatlem wi cch atelch syl2an imp
      ex wne wceq chjcom psseq2d anbi2d sylbird ancoms wo wb chlub 3comr ssnpss
      w3a syl6bi con2d ianor syl6ib mp3an1 adantrl mpjaod ) BEFZCEFZGZAHUAZABCI
      JZKZGZAEFZVCVGGBALZMZVHCALZMZABCDNVCVGVLVHOZVBVAVGVMOVBVAGZVGVDACBIJZKZGZ
      VMVNVPVFVDVNVOVEAVBCPFZBPFZVOVEUBVACQZBQZCBUCRUDUEVNVQVMACBDNTUFUGSVCVFVJ
      VLUHZVDVCVFWBVAVSVRVFWBOZVBWAVTAPFZVSVRWCDWDVSVRUMZVFVIVKGZMWBWEWFVFWEWFV
      EALZVFMVSVRWDWFWGUIBCAUJUKVEAULUNUOVIVKUPUQURRSUSUTT $.

    $( A Hilbert lattice element covered by the join of two distinct atoms is
       an atom.  (Contributed by NM, 26-Jun-2004.)
       (New usage is discouraged.) $)
    atcvat2i $p |- ( ( B e. HAtoms /\ C e. HAtoms ) ->
                 ( ( -. B = C /\ A <oH ( B vH C ) ) -> A e. HAtoms ) ) $=
      ( cat wcel wa wceq wn chj co ccv wbr wi c0h wne cch wb atcv1 atelch chjcl
      mp3anl1 necon3abid wpss syl2an cvpss sylancr atcvati expcomd syld sylbird
      imp ex com23 impd ) BEFZCEFZGZBCHZIZABCJKZLMZAEFZURVBUTVCURVBUTVCNURVBGZU
      TAOPZVCVDUSAOAQFZUPUQVBAOHUSRDABCSUBUCURVBVEVCNZURVBAVAUDZVGURVFVAQFZVBVH
      NDUPBQFCQFVIUQBTCTBCUAUEAVAUFUGURVEVHVCABCDUHUIUJULUKUMUNUO $.
  $}

  $( An ordering law for a Hilbert lattice atom and a commuting subspace.
     (Contributed by NM, 12-Jun-2006.)  (New usage is discouraged.) $)
  atord $p |- ( ( A e. CH /\ B e. HAtoms /\ A C_H B ) ->
              ( B C_ A \/ B C_ ( _|_ ` A ) ) ) $=
    ( cch wcel cat ccm wbr wss cort cfv wo wa wi c0h cif wceq breq1 sseq2 fveq2
    anbi2d sseq2d orbi12d imbi12d h0elch elimel atordi dedth 3impib ) ACDZBEDZA
    BFGZBAHZBAIJZHZKZUIUJUKLZUOMUJUIANOZBFGZLZBUQHZBUQIJZHZKZMANAUQPZUPUSUOVCVD
    UKURUJAUQBFQTVDULUTUNVBAUQBRVDUMVABAUQISUAUBUCUQBANCUDUEUFUGUH $.

  $( A Hilbert lattice element covered by the join of two distinct atoms is an
     atom.  (Contributed by NM, 29-Jun-2004.)  (New usage is discouraged.) $)
  atcvat2 $p |- ( ( A e. CH /\ B e. HAtoms /\ C e. HAtoms ) ->
               ( ( -. B = C /\ A <oH ( B vH C ) ) -> A e. HAtoms ) ) $=
    ( cch wcel cat wceq wn chj co ccv wbr wa c0h cif breq1 anbi2d eleq1 imbi12d
    wi imbi2d h0elch elimel atcvat2i dedth 3impib ) ADEZBFEZCFEZBCGHZABCIJZKLZM
    ZAFEZTZUGUHUIMZUOTUPUJUGANOZUKKLZMZUQFEZTZTANAUQGZUOVAUPVBUMUSUNUTVBULURUJA
    UQUKKPQAUQFRSUAUQBCANDUBUCUDUEUF $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Irreducibility
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d p q r x A $.
    chirred.1 $e |- A e. CH $.
    $( Lemma for ~ chirredi .  (Contributed by NM, 14-Jun-2006.)
       (New usage is discouraged.) $)
    chirredlem1 $p |- ( ( ( p e. HAtoms /\ ( q e. CH /\ q C_ ( _|_ ` A ) ) )
     /\ ( ( r e. HAtoms /\ r C_ A ) /\ r C_ ( p vH q ) ) ) ->
       ( p i^i ( _|_ ` r ) ) = 0H ) $=
      ( cv cat wcel cch cort cfv wss wa chj co cin c0h wceq wi wb atelch biimpa
      chsscon3 mpan2 sylan sstr2 wn atne0 neneqd ad3antrrr simplr choccl chlej1
      syl5 syl 3exp1 syl5com imp42 adantllr adantlr sstrd chlejb2 sylanl1 an32s
      ancoms adantrl ad2antrr sseqtrd ex chssoc syld mtod sylanr1 atnssm0 incom
      biimpd eqeq1i syl6bb ad2ant2r sylibd exp43 adantr sylcom com4t impd imp43
      ) DFZGHZCFZIHZWIAJKZLZMBFZGHZWMALZMZWMWGWINOZLZWGWMJKZPZQRZWHWJWLWPWRXASZ
      SWLWPWHWJXBWLWPWIWSLZWHWJXBSSZWPWKWSLZWLXCWNWMIHZWOXEWMUAZXFWOXEXFAIHWOXE
      TEWMAUCUDUBUEWIWKWSUFUNWNXCXDSWOWNXCWHWJXBWNXCMZWHWJMMWRWGWSLZUGZXAWHXHWG
      IHZWJWRXJSWGUAXHXKWJMZMZWRXJXMWRMZXIWMQRZWNXOUGXCXLWRWNWMQWMUHUIUJXNXIWMW
      SLZXOXNXIXPXNXIMZWMWSWINOZWSXQWMWQXRXMWRXIUKXMXIWQXRLZWRWNXLXIXSXCWNXKWJX
      IXSWNWSIHZXKWJXIXSSSWNXFXTXGWMULUOZXKXTWJXIXSWGWSWIUMUPUQURUSUTVAXMXRWSRZ
      WRXIXHWJYBXKWNWJXCYBWNXTWJXCYBYAXTWJMXCYBWJXTXCYBTWIWSVBVEUBVCVDVFVGVHVIW
      NXPXOSZXCXLWRWNXFYCXGXFXPXOWMVJVPUOUJVKVLVIVMWNWHXJXATZXCWJWNXTWHYDYAXTWH
      MXJWSWGPZQRXAWSWGVNYEWTQWSWGVOVQVRUEVSVTWAWBWCWDWEWF $.

    $( Lemma for ~ chirredi .  (Contributed by NM, 15-Jun-2006.)
       (New usage is discouraged.) $)
    chirredlem2 $p |- ( ( ( ( p e. HAtoms /\ p C_ A ) /\ ( q e. CH /\
      q C_ ( _|_ ` A ) ) ) /\ ( ( r e. HAtoms /\ r C_ A ) /\ r C_ ( p vH q ) )
        )
                  -> ( ( _|_ ` r ) i^i ( p vH q ) ) = q ) $=
      ( cv wcel wss wa cch cort cfv chj co cin wceq adantr ccm wbr c0h ad2ant2r
      cat atelch chjcom sylan ineq2d w3a choccl syl id 3anim123i 3expa adantllr
      3com13 adantlrr adantrr simpll ad2antrl wb chsscon3 sylancl biimpa sylan2
      sstr adantll lecm syl3anc ad2ant2lr mpan2 an12s ancom2s wi syl3an2 3expia
      cmcm2 sylibrd mpd sylanl2 ancom1s an4s syl12anc sseqin2 sylib chirredlem1
      fh2 incom syl5eq oveq12d chj0 ad2antlr eqtrd 3eqtrd ) DFZUBGZWMAHZIZCFZJG
      ZWQAKLZHZIZIZBFZUBGZXCAHZIZXCWMWQMNZHZIZIZXCKLZXGOXKWQWMMNZOZXKWQOZXKWMOZ
      MNZWQXJXGXLXKXBXGXLPZXIWNWRXQWOWTWNWMJGZWRXQWMUCZWMWQUDUEUAQUFXJXKJGZWRXR
      UGZWQXKRSZWQWMRSZXMXPPXBXFYAXHXBXDYAXEWPWRXDYAWTWNWRXDYAWOWNWRXDYAXDWRWNY
      AXDXTWRWRWNXRXDXCJGZXTXCUCZXCUHUIZWRUJXSUKUNULUMUOUPUPXAXFYBWPXHXAXFIZWRX
      TWQXKHZYBWRWTXFUQXDXTXAXEYFURWTXFYHWRXFWTWSXKHZYHXDXEYIXDYDAJGZXEYIUSYEEX
      CAUTVAVBWQWSXKVDVCVEZWQXKVFVGVHXBYCXIWNWRWOWTYCWRWNWOWTIZYCWNWRXRYLYCXSWR
      XRIZYLIWQWMKLZHZYCXRYLYOWRXRWTWOYOWTXRWOYOXRWOIWTWSYNHZYOXRWOYPXRYJWOYPUS
      EWMAUTVIVBWQWSYNVDVCVJVKVEYMYOYCVLYLYMYOWQYNRSZYCWRXRYOYQXRWRYNJGYOYQWMUH
      WQYNVFVMVNWQWMVOVPQVQVRVSVTQXKWQWMWEWAXJXPWQTMNZWQXJXNWQXOTMXAXFXNWQPZWPX
      HYGYHYSYKWQXKWBWCVHXJXOWMXKOZTXKWMWFWNXAXIYTTPWOABCDEWDUMWGWHXAYRWQPZWPXI
      WRUUAWTWQWIQWJWKWL $.

    ${
      chirred.2 $e |- ( x e. CH -> A C_H x ) $.
      $( Lemma for ~ chirredi .  (Contributed by NM, 15-Jun-2006.)
         (New usage is discouraged.) $)
      chirredlem3 $p |- ( ( ( ( p e. HAtoms /\ p C_ A ) /\ ( q e. HAtoms /\
        q C_ ( _|_ ` A ) ) ) /\ ( r e. HAtoms /\ r C_ ( p vH q ) ) )
                    -> ( r C_ A -> r = p ) ) $=
        ( cv wcel wss wa chj co wceq wi cch c0h cin ccm wbr cat cort cfv atelch
        chirredlem2 oveq2d adantr chjcl ad2ant2r id pjoml2 syl3an 3com12 eqtr3d
        sylan 3expb ineq2d breq2 vtoclga anim12i mp3anl1 ancoms adantrr adantll
        fh1 mpdan 3eqtr3d sseqin2 biimpi ad2antlr adantl csh chsh chshii orthin
        incom sylancl imp syl5eq oveq12d ad2antrr ad3antrrr exp44 com34 sylanr1
        chj0 syl imp32 ) EHZUAIZWIBJZKZDHZUAIZWMBUBUCJZKKCHZUAIZWPWIWMLMZJZWPBJ
        ZWPWINZOZWNWLWMPIZWOWQWSXBOOWMUDWLXCWOKZKZWQWTWSXAXEWQWTWSXAXEWQWTKZWSK
        ZKZWPQLMZWIQLMZWPWIXHBWPRZBWMRZLMZBWIRZXLLMZXIXJXHBWPWMLMZRZBWRRZXMXOXH
        XPWRBXHWPWPUBUCWRRZLMZXPWRXHXSWMWPLBCDEFUEUFXEXFWSXTWRNZXFXEWSYAXFWPPIZ
        XEWRPIZWSWSYAWQYBWTWPUDZUGWJXCYCWKWOWJWIPIZXCYCWIUDZWIWMUHUOUIWSUJWPWRU
        KULUMUPUNUQXDXGXQXMNZWLXCXFYGWOWSXCWQYGWTWQXCYGWQYBXCYGYDYBXCKBWPSTZBWM
        STZKZYGYBYHXCYIBAHZSTZYHAWPPYKWPBSURGUSYLYIAWMPYKWMBSURGUSZUTBPIZYBXCYJ
        YGFBWPWMVEVAVFUOVBVCUIVDXEXRXONZXGWJXCYOWKWOWJYEXCYOYFYEXCKBWISTZYIKZYO
        YEYPXCYIYLYPAWIPYKWIBSURGUSYMUTYNYEXCYQYOFBWIWMVEVAVFUOUIUGVGXHXKWPXLQL
        XGXKWPNZXEWTYRWQWSWTYRWPBVHVIVJVKXDXLQNWLXGXDXLWMBRZQBWMVPXCWOYSQNZXCWM
        VLIBVLIWOYTOWMVMBFVNWMBVOVQVRVSVJZVTXHXNWIXLQLWLXNWINZXDXGWKUUBWJWKUUBW
        IBVHVIVKWAUUAVTVGXGXIWPNZXEWQUUCWTWSWQYBUUCYDWPWFWGWAVKWJXJWINZWKXDXGWJ
        YEUUDYFWIWFWGWBVGWCWDWEWH $.

      $( Lemma for ~ chirredi .  (Contributed by NM, 15-Jun-2006.)
         (New usage is discouraged.) $)
      chirredlem4 $p |- ( ( ( ( p e. HAtoms /\ p C_ A ) /\ ( q e. HAtoms /\
        q C_ ( _|_ ` A ) ) ) /\ ( r e. HAtoms /\
              r C_ ( p vH q ) ) ) -> ( r = p \/ r = q ) ) $=
        ( cv cat wcel wss wa cort cfv chj wceq ccm wbr cch atelch co wo vtoclga
        breq2 syl atordi mpdan ad2antrl chirredlem3 ococi sseq2i biimpri chjcom
        wi wb syl2an sseq2d anbi2d ad2ant2r choccli cmcm3 mpan mpbid ex sylbird
        sylanr2 imp ancom1s orim12d mpd ) EHZIJZVKBKZLZDHZIJZVOBMNZKZLZLZCHZIJZ
        WAVKVOOUAZKZLZLZWABKZWAVQKZUBZWAVKPZWAVOPZUBWBWIVTWDWBBWAQRZWIWBWASJWLW
        ATBAHZQRZWLAWASWMWABQUDGUCUEBWAFUFUGUHWFWGWJWHWKABCDEFGUIVSVNWEWHWKUNZV
        SVNLWEWOVMVSVLVKVQMNZKZWEWOUNWQVMWPBVKBFUJUKULVSVLWQLLZWEWBWAVOVKOUAZKZ
        LZWOVPVLXAWEUOVRWQVPVLLZWTWDWBXBWSWCWAVPVOSJVKSJWSWCPVLVOTVKTVOVKUMUPUQ
        URUSWRXAWOAVQCEDBFUTWMSJZWNVQWMQRZGBSJXCWNXDUOFBWMVAVBVCUIVDVEVFVGVHVIV
        J $.

      $( The Hilbert lattice is irreducible: any element that commutes with all
         elements must be zero or one.  Theorem 14.8.4 of
         [BeltramettiCassinelli] p. 166.  (Contributed by NM, 15-Jun-2006.)
         (New usage is discouraged.) $)
      chirredi $p |- ( A = 0H \/ A = ~H ) $=
        ( vp vq vr c0h wceq cort cfv wo wn wne wa cv wss cat wrex wcel hatomici
        chil eqid ioran anbi12i bitr4i choccli anim12i reeanv sylibr chj co w3a
        df-ne simpll simprl cch wb atelch chsscon3 sylancl biimpa sylan2 ancoms
        atne0 adantr sseq1 bicomd chssoc syl sylan9bbr an32s ex necon3d adantlr
        sstr mpd syldan adantrl superpos syl3anc df-3an neanior anbi1i bitri wi
        chirredlem4 anassrs pm2.24d com23 impd syl5bi rexlimdva rexlimivv sylbi
        an4s mt4 fveq2 ococi choc0 3eqtr3g orim2i ax-mp ) BHIZBJKZHIZLZXDBUBIZL
        HHIZXGHUCXGMZBHNZXEHNZOZXIMZXJXDMZXFMZOXMXDXFUDXKXOXLXPBHUNXEHUNUEUFXME
        PZBQZFPZXEQZOZFRSERSZXNXMXRERSZXTFRSZOYBXKYCXLYDEBCUAFXEBCUGUAUHXRXTEFR
        RUIUJYAXNEFRRXQRTZXSRTZOYAXNYEXRYFXTXNYEXROZYFXTOZOZGPZXQNZYJXSNZYJXQXS
        UKULQZUMZGRSZXNYIYEYFXQXSNZYOYEXRYHUOYGYFXTUPYGXTYPYFYGXTXSXQJKZQZYPXTY
        GYRYGXTXEYQQZYRYEXRYSYEXQUQTZBUQTXRYSURXQUSZCXQBUTVAVBXSXEYQVPVCVDYEYRY
        PXRYEYROZXQHNZYPYEUUCYRXQVEVFUUBXQXSXQHUUBXQXSIZXQHIZYEUUDYRUUEYEUUDOYR
        UUEUUDYRXQYQQZYEUUEUUDUUFYRXQXSYQVGVHYEYTUUFUUEURUUAXQVIVJVKVBVLVMVNVQV
        OVRVSGXQXSVTWAYIYNXNGRYNYJXQIYJXSILZMZYMOZYIYJRTZOZXNYNYKYLOZYMOUUIYKYL
        YMWBUULUUHYMYJXQYJXSWCWDWEUUKUUHYMXNUUKYMUUHXNUUKYMUUHXNWFUUKYMOUUGXNYI
        UUJYMUUGABGFECDWGWHWIVMWJWKWLWMVQWPVMWNVJWOWQXFXHXDXFXEJKHJKBUBXEHJWRBC
        WSWTXAXBXC $.
    $}
  $}

  ${
    $d x y A $.
    $( The Hilbert lattice is irreducible: any element that commutes with all
       elements must be zero or one.  Theorem 14.8.4 of [BeltramettiCassinelli]
       p. 166.  (Contributed by NM, 16-Jun-2006.)
       (New usage is discouraged.) $)
    chirred $p |- ( ( A e. CH /\ A. x e. CH A C_H x ) ->
                 ( A = 0H \/ A = ~H ) ) $=
      ( vy cch wcel cv ccm wbr wral wa c0h wceq chil wo eqeq1 eleq1 nfeq2 breq1
      nfcv ralbid cif orbi12d nfv nfra1 nfan nfif anbi12d h0elch pm3.2i elimhyp
      cm0 rgen simpli simpri nfbr breq2 rspc mpi chirredi dedth ) BDEZBAFZGHZAD
      IZJZBKLZBMLZNVEBKUAZKLZVHMLZNBKBVHLZVFVIVGVJBVHKOBVHMOUBCVHVHDEZVHVBGHZAD
      IZVEVLVNJKDEZKVBGHZADIZJBKVKVAVLVDVNBVHDPVKVCVMADABVHVEABKVAVDAVAAUCVCADU
      DUEABSAKSUFZQBVHVBGRTUGKVHLZVOVLVQVNKVHDPVSVPVMADAKVHVRQKVHVBGRTUGVOVQUHV
      PADVBUKULUIUJZUMCFZDEVNVHWAGHZVLVNVTUNVMWBAWADAVHWAGVRAGSAWASUOVBWAVHGUPU
      QURUSUT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Atoms (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.  $d x B $.  $d x C $.
    atcvat3.1 $e |- A e. CH $.
    $( A condition implying that a certain lattice element is an atom.  Part of
       Lemma 3.2.20 of [PtakPulmannova] p. 68.  (Contributed by NM,
       2-Jul-2004.)  (New usage is discouraged.) $)
    atcvat3i $p |- ( ( B e. HAtoms /\ C e. HAtoms ) ->
          ( ( ( -. B = C /\ -. C C_ A ) /\ B C_ ( A vH C ) ) ->
          ( A i^i ( B vH C ) ) e. HAtoms ) ) $=
      ( cat wcel wa wceq wn wss chj co ccv wbr wi cch wb mpan atelch adantr cin
      biimpa ad2ant2lr anim12i chjcom oveq2d chjass mp3an1 ancoms eqtr4d adantl
      chcv1 simpl w3a chlej2 ex syl3anc imp eqsstrd chjidm syl ad2antlr sseqtrd
      chjcl simpr chub2 mp3anl3 syl21anc eqssd sylan breq2d mpbird jctil syl2an
      adantrl cvexch sylibrd chincl sylancr atcvat2 expdimp syld exp4b imp4c )
      BEFZCEFZGZBCHIZCAJIZBACKLZJZABCKLZUAZEFZWGWHWIWKWNWGWHGWIWKGZWMWLMNZWNWGW
      OWPOWHWGWOAAWLKLZMNZWPWGWOWRWGWOGWRAWJMNZWFWIWSWEWKWFWIWSAPFZWFWIWSQDACUL
      RUBUCWGWKWRWSQWIWGWKGWQWJAMWGBPFZCPFZGZWKWQWJHWEXAWFXBBSZCSZUDXCWKGZWQWJX
      FWQWJWJKLZWJXFWQWJBKLZXGXCWQXHHWKXCWQACBKLZKLZXHXCWLXIAKBCUEUFXBXAXHXJHZW
      TXBXAXKDACBUGUHUIUJTXCWKXHXGJZXCXAWJPFZXMWKXLOXAXBUMXBXMXAWTXBXMDACVDRZUK
      ZXOXAXMXMUNWKXLBWJWJUOUPUQURUSXBXGWJHZXAWKXBXMXPXNWJUTVAVBVCXCWJWQJZWKXCX
      BWLPFZCWLJZXQXAXBVEBCVDZXBXAXSCBVFUIXBXRWTXSXQDCWLAUOVGVHTVIVJVKVOVLUPWGW
      TXRGZWPWRQWEXAXBYAWFXDXEXCXRWTXTDVMVNAWLVPVAVQTWGWHWPWNWGWMPFZWEWFWHWPGWN
      OWEXAXBYBWFXDXEXCWTXRYBDXTAWLVRVSVNWEWFUMWEWFVEWMBCVTUQWAWBWCWD $.

    $( A condition implying existence of an atom with the properties shown.
       Lemma 3.2.20 of [PtakPulmannova] p. 68.  (Contributed by NM,
       2-Jul-2004.)  (New usage is discouraged.) $)
    atcvat4i $p |- ( ( B e. HAtoms /\ C e. HAtoms ) ->
          ( ( A =/= 0H /\ B C_ ( A vH C ) ) ->
          E. x e. HAtoms ( x C_ A /\ B C_ ( C vH x ) ) ) ) $=
      ( cat wcel wa wceq wss c0h chj co wi cch atelch syl2an sseq1 adantl cin
      wne wrex hatomici chub1 syl5ibr expd impcom anim2d expcomd reximdvai syl5
      cv ex a1i com4l imp4a chlejb2 mpan2 biimpa sseq2d expl chub2 jctird simpl
      wb jctild impl oveq2 anbi12d rspcev adantrl exp31 wo simpr ioran atcvat3i
      syl wn w3a ad2antlr simpll 3jca inss2 chjcom syl5sseq adantr atnssm0 mpan
      inss1 sslin ax-mp incom sseqtri sseq2 mpbii chincl sylancr syl2anc syl5ib
      imp chjcl chle0 sylbid adantrr atexch sylc jctil jcad syl6 syl5bi ecase3d
      jca syl7 ) CFGZDFGZHZCDIZDBJZBKUAZCBDLMZJZHZAULZBJZCDYCLMZJZHZAFUBZNZXOXQ
      YINXNXOXQXSYAYHYAXOXQXSYHXOXQXSYHNZNNYAXOXQYJXSYDAFUBXOXQHZYHABEUCYKYDYGA
      FYKYDYCFGZYGYKYLYFYDXQXOYLYFNXQXOYLYFXOYLHYFXQDYEJZXODOGZYCOGYMYLDPZYCPDY
      CUDQCDYERUEUFUGUHUIUJUKUMUNUOUPSXPXRYBYHXPXRHZYAYHXSYPYAHXNCBJZCDCLMZJZHZ
      HZYHXPXRYAUUAXPXRYAHZYTXNXNCOGZYNUUBYTNXOCPZYOUUCYNHZUUBYQYSYNUUBYQNUUCYN
      XRYAYQYNXRHZYAYQUUFXTBCYNXRXTBIZYNBOGZXRUUGVEEDBUQURUSUTUSVASCDVBVCQXNXOV
      DVFVGYGYTACFYCCIZYDYQYFYSYCCBRUUIYEYRCYCCDLVHUTVIVJVQVKVLYBYAXPXQXRVMVRZY
      HXSYAVNUUJXQVRZXRVRZHZXPYAYHNXQXRVOXPUUMYAYHXPUUMYAHZBCDLMZTZFGZUUPBJZCDU
      UPLMZJZHZHYHXPUUNUUQUVABCDEVPZXPUUNUVAXPUUNHZUUTUURUVCYNUUQXNVSUUPYRJZDUU
      PTZKIZHUUTUVCYNUUQXNXOYNXNUUNYOVTXPUUNUUQUVBWTXNXOUUNWAWBUVCUVDUVFXPUVDUU
      NXPUUOUUPYRBUUOWCXNUUCYNUUOYRIXOUUDYOCDWDQWEWFXPUUMUVFYAXPUULUVFUUKXPUULU
      VFXPUULBDTZKIZUVFXOUULUVHVEZXNUUHXOUVIEBDWGWHSUVHUVEKJZXPUVFUVHUVEUVGJUVJ
      UVEDBTZUVGUURUVEUVKJBUUOWIZUUPBDWJWKDBWLWMUVGKUVEWNWOXPUVEOGZUVJUVFVEXNUU
      CYNUVMXOUUDYOUUEYNUUPOGZUVMUUCYNVNUUEUUHUUOOGUVNECDXABUUOWPWQDUUPWPWRQUVE
      XBVQWSXCWTVKXDXLDUUPCXEXFUVLXGUMXHYGUVAAUUPFYCUUPIZYDUURYFUUTYCUUPBRUVOYE
      UUSCYCUUPDLVHUTVIVJXIUFXJXMXK $.
  $}

  $( Two Hilbert lattice elements have the dual modular pair property if the
     first is an atom.  Theorem 7.6(c) of [MaedaMaeda] p. 31.  (Contributed by
     NM, 22-Jun-2004.)  (New usage is discouraged.) $)
  atdmd $p |- ( ( A e. HAtoms /\ B e. CH ) -> A MH* B ) $=
    ( cat wcel cch wa cin c0h wceq wbr chj co ccv wb ancoms 3expia sylan sylbid
    wi wn cdmd cvp atelch chjcom sylan2 breq2d bitrd wss atnssm0 con1bid ssdmd1
    cvdmd pm2.61d ) ACDZBEDZFZBAGHIZABUAJZUPUQBABKLZMJZURUOUNUQUTNUOUNFZUQBBAKL
    ZMJUTBAUBVAVBUSBMUNUOAEDZVBUSIAUCZBAUDUEUFUGOUNVCUOUTURSVDVCUOUTURABULPQRUP
    UQTABUHZURUPVEUQUOUNVETUQNBAUIOUJUNVCUOVEURSVDVCUOVEURABUKPQRUM $.

  ${
    $d x A $.  $d x B $.
    $( Two Hilbert lattice elements have the modular pair property if the first
       is an atom.  Theorem 7.6(b) of [MaedaMaeda] p. 31.  (Contributed by NM,
       22-Jun-2004.)  (New usage is discouraged.) $)
    atmd $p |- ( ( A e. HAtoms /\ B e. CH ) -> A MH B ) $=
      ( vx cat wcel cv cmd wbr cch wral atdmd ralrimiva wb atelch mddmd2 mpbird
      cdmd syl breq2 rspcv mpan9 ) ADEZACFZGHZCIJZBIEABGHZUBUEAUCQHZCIJZUBUGCIA
      UCKLUBAIEUEUHMANCAORPUDUFCBIUCBAGSTUA $.
  $}

  $( Two Hilbert lattice elements have the dual modular pair property if the
     second is an atom.  Part of Exercise 6 of [Kalmbach] p. 103.  (Contributed
     by NM, 22-Jun-2004.)  (New usage is discouraged.) $)
  atmd2 $p |- ( ( A e. CH /\ B e. HAtoms ) -> A MH B ) $=
    ( cch wcel cat cin c0h wceq cmd wbr chj ccv cvp atelch cvexch 3expia sylbid
    wa co wi sylbird sylan2 wn wss atnssm0 con1bid ssmd2 3com12 syl3an2 pm2.61d
    cvmd ) ACDZBEDZRZABFZGHZABIJZUNUPAABKSLJZUQABMUMULBCDZURUQTBNZULUSRURUOBLJZ
    UQABOULUSVAUQABUKPUAUBQUNUPUCBAUDZUQUNVBUPABUEUFULUMVBUQUMULUSVBUQUTUSULVBU
    QBAUGUHUIPQUJ $.

  ${
    atabs.1 $e |- A e. CH $.
    atabs.2 $e |- B e. CH $.
    $( Absorption of an incomparable atom.  Similar to Exercise 7.1 of
       [MaedaMaeda] p. 34.  (Contributed by NM, 15-Jul-2004.)
       (New usage is discouraged.) $)
    atabsi $p |- ( C e. HAtoms -> ( -. C C_ ( A vH B ) ->
                ( ( A vH C ) i^i B ) = ( A i^i B ) ) ) $=
      ( cat wcel chj co wss wn cin wceq wa inass incom cch wi c0h syl5eq ineq1i
      chjcomi chabs2i 3eqtri ineq2i eqtr2i chub1i cmd wbr atelch atmd mpan2 w3a
      chjcli mdi exp32 mp3an23 sylc mpi adantr atnssm0 mpan biimpa oveq2d chj0i
      wb syl6eq eqtrd ineq1d ex ) CFGZCABHIZJKZACHIZBLZABLZMVKVMNZVOVNVLLZBLZVP
      VSVNVLBLZLVOVNVLBOVTBVNVTBAHIZBLBWALBVLWABABDEUBUAWABPBAEDUCUDUEUFVQVRABV
      QVRACVLLZHIZAVKVRWCMZVMVKAVLJZWDABDEUGVKCQGZCVLUHUIZWEWDRZCUJVKVLQGZWGABD
      EUNZCVLUKULWFWIAQGZWGWHRWJDWFWIWKUMWGWEWDCVLAUOUPUQURUSUTVQWCASHIAVQWBSAH
      VQWBVLCLZSCVLPVKVMWLSMZWIVKVMWMVFWJVLCVAVBVCTVDADVEVGVHVITVJ $.

    $( Absorption of an incomparable atom.  (Contributed by NM, 18-Jul-2004.)
       (New usage is discouraged.) $)
    atabs2i $p |- ( C e. HAtoms -> ( -. C C_ ( A vH B ) ->
                ( ( A vH C ) i^i ( A vH B ) ) = A ) ) $=
      ( cat wcel chj co wss wn wceq chjcli atabsi chjassi chjidmi oveq1i eqtr3i
      cin sseq2i notbii chabs2i eqeq2i 3imtr3g ) CFGCAABHIZHIZJZKACHIUESZAUESZL
      CUEJZKUHALAUECDABDEMNUGUJUFUECAAHIZBHIUFUEAABDDEOUKABHADPQRTUAUIAUHABDEUB
      UCUD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Modular symmetry
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d q r C $.  $d c p q r A $.  $d c p q r B $.
    mdsymlem1.1 $e |- A e. CH $.
    mdsymlem1.2 $e |- B e. CH $.
    mdsymlem1.3 $e |- C = ( A vH p ) $.
    $( Lemma for ~ mdsymi .  (Contributed by NM, 1-Jul-2004.)
       (New usage is discouraged.) $)
    mdsymlem1 $p |- ( ( ( p e. CH /\ ( B i^i C ) C_ A ) /\
            ( B MH* A /\ p C_ ( A vH B ) ) ) -> p C_ A ) $=
      ( cv cch wcel cin wss wa chj co mpan2 syl6sseqr wceq mpan adantr cdmd wbr
      chub2 chjcomi sseq2i biimpi anim12i sylib ad2ant2rl chjcl syl5eqel anim2i
      ssin chub1 ancoms dmdi mp3anl1 mpanl1 syl2anc adantlr incom oveq1i chincl
      wb chlejb1 3syl biimpa syl5eq eqtr3d adantrr sseqtrd ) DHZIJZBCKZALZMZBAU
      AUBZVLABNOZLZMMVLCBANOZKZAVMVSVLWALZVOVQVMVSMVLCLZVLVTLZMWBVMWCVSWDVMVLAV
      LNOZCVMAIJZVLWELEVLAUCPGQVSWDVRVTVLABEFUDUEUFUGVLCVTUMUHUIVPVQWAARVSVPVQM
      CBKZANOZWAAVMVQWHWARZVOVMVQMCIJZVQACLZMZWIVMWJVQVMCWEIGWFVMWEIJEAVLUJSUKZ
      TVQVMWLVMWKVQVMAWECWFVMAWELEAVLUNSGQULUOWFWJWLWIEBIJZWFWJWLWIFBACUPUQURUS
      UTVPWHARVQVPWHVNANOZAWGVNANCBVAVBVMVOWOARZVMWJVNIJZVOWPVDZWMWNWJWQFBCVCSW
      QWFWREVNAVEPVFVGVHTVIVJVK $.

    $( Lemma for ~ mdsymi .  (Contributed by NM, 1-Jul-2004.)
       (New usage is discouraged.) $)
    mdsymlem2 $p |- ( ( ( p e. HAtoms /\ ( B i^i C ) C_ A ) /\
         ( B MH* A /\ p C_ ( A vH B ) ) ) -> ( B =/= 0H -> E. r e. HAtoms
         E. q e. HAtoms ( p C_ ( q vH r ) /\ ( q C_ A /\ r C_ B ) ) ) ) $=
      ( cv wss cat wrex wcel wa chj co cch atelch adantlr c0h wne cdmd hatomici
      cin wbr simplll chub1 syl2an mdsymlem1 sylanl1 adantr anim1i anass anasss
      jca sylib weq oveq1 sseq2d sseq1 anbi1d anbi12d rspcev syl2anc exp32 syl5
      reximdvai ) BUAUBDJZBKZDLMFJZLNZBCUEAKZOZBAUCUFVKABPQKOZOZVKEJZVIPQZKZVQA
      KZVJOZOZELMZDLMDBHUDVPVJWCDLVPVILNZVJWCVPWDVJOZOVLVKVKVIPQZKZVKAKZVJOZOZW
      CVLVMVOWEUGVPWDVJWJVPWDOZVJOWGWHOZVJOWJWKWLVJWKWGWHVNWDWGVOVLWDWGVMVLVKRN
      ZVIRNWGWDVKSZVISVKVIUHUITTVPWHWDVLWMVMVOWHWNABCFGHIUJUKULUPUMWGWHVJUNUQUO
      WBWJEVKLEFURZVSWGWAWIWOVRWFVKVQVKVIPUSUTWOVTWHVJVQVKAVAVBVCVDVEVFVHVG $.

    $( Lemma for ~ mdsymi .  (Contributed by NM, 2-Jul-2004.)
       (New usage is discouraged.) $)
    mdsymlem3 $p |- ( ( ( ( p e. HAtoms /\ -. ( B i^i C ) C_ A ) /\
             p C_ ( A vH B ) ) /\ A =/= 0H )
        -> E. r e. HAtoms E. q e. HAtoms ( p C_ ( q vH r )
             /\ ( q C_ A /\ r C_ B ) ) ) $=
      ( cv cat wcel wss wa chj co wrex wi adantlr cch cin c0h wne sseq2i biimpi
      wn ssin adantl sylbir atcvat4i exp4b com34 com23 imp4b sylan2 adantrr imp
      com12 wceq nssne2 adantrl wb atnemeq0 ancoms syl5ib adantll adantr atelch
      chjcom syl2an sseq2d atexch syl3an1 3com13 3expa expd sylbid exp31 anasss
      syld com24 impd simprl a1i simpl ad2antrl jctird jcad reximdvai mpd chjcl
      mpan syl5eqel chincl sylancr chrelat2 sylancl biimpa ad2antrr reximddv
      syl ) FJZKLZBCUAZAMUFZNZXBABOPMZNZAUBUCZNZDJZXDMZXKAMUFZNZXBEJZXKOPMZXOAM
      ZXKBMZNZNZEKQZDKXJXKKLZXNNZNZXQXKXBXOOPZMZNZEKQZYAXJYCYHXFXIYCYHRZXGXCXIY
      IXEYCXCXINZYHYBXLYJYHRZXMXLYBXKAXBOPZMZYKXLXRXKCMZNZYMXKBCUGZYNYMXRYNYMCY
      LXKIUDUEUHUIYBYMXCXIYHYBXCYMXIYHRYBXCXIYMYHYBXCXIYMYHEAXKXBGUJUKULUMUNUOU
      PURSSUQYDYGXTEKXHYCXOKLZYGXTRRZXIXFYCYRXGXCYCYRXEXCYCNZYQYGXTYSYQYGNZXPXS
      XCYBXNYTXPRXCYBNZXNYQYGXPUUAYGYQXNXPUUAXQYFYQXNXPRZRUUAYQYFXQUUBUUAYQYFXQ
      UUBRUUAYQNZYFNZXQXNXPUUDXQXNNZXOXKUAUBUSZXPUUCUUEUUFRZYFYBYQUUGXCUUEXOXKU
      CZYBYQNUUFXQXMUUHXLXOXKAUTVAYQYBUUHUUFVBXOXKVCVDVEVFVGUUCYFUUFXPRZUUCYFXK
      XOXBOPZMZUUIUUCYEUUJXKXCYQYEUUJUSZYBXCXBTLZXOTLZUULYQXBVHZXOVHZXBXOVIVJSV
      KUUCUUKUUFXPXCYBYQUUKUUFNXPRZYQYBXCUUQYQUUNYBXCUUQUUPXOXKXBVLVMVNVOVPVQUQ
      VTVPVRWAWBWAUNVSYSYTXQXRYTXQRYSYQXQYFWCWDYCXRXCXLXRYBXMXLYOXRYPXRYNWEUIWF
      UHWGWHVPSSSWIWJXFXNDKQZXGXIXCXEUURXCXDTLZATLZXEUURVBXCUUMUUSUUOUUMBTLCTLU
      USHUUMCYLTIUUTUUMYLTLGAXBWKWLWMBCWNWOXAGDXDAWPWQWRWSWT $.

    $( Lemma for ~ mdsymi .  This is the forward direction of Lemma 4(i) of
       [Maeda] p. 168.  (Contributed by NM, 2-Jul-2004.)
       (New usage is discouraged.) $)
    mdsymlem4 $p |- ( p e. HAtoms -> ( ( B MH* A /\
          ( ( A =/= 0H /\ B =/= 0H ) /\ p C_ ( A vH B ) ) ) -> E. q e. HAtoms
              E. r e. HAtoms ( p C_ ( q vH r ) /\ ( q C_ A /\ r C_ B ) ) ) ) $=
      ( cv cat c0h wne wa chj co wss wrex wi exp31 wcel wbr cin mdsymlem2 com4t
      cdmd ex com23 imp44 com3l wn mdsymlem3 anasss com3r ancoms adantlr adantl
      a1d pm2.61d rexcom syl6ib ) FJZKUAZBAUFUBZALMZBLMZNVBABOPQZNZNZVBEJZDJZOP
      QVJAQVKBQNNZEKRDKRZVLDKREKRVCBCUCAQZVIVMSVIVCVNVMVDVEVFVGVCVNVMSSZVDVFVGV
      OSSVEVDVGVFVOVDVGVFVOSVCVNVDVGNZVFVMVCVNVPVFVMSABCDEFGHIUDTUEUGUHURUIUJVI
      VCVNUKZVMVHVCVQVMSSZVDVEVGVRVFVGVEVRVCVQVGVENZVMVCVQVSVMVCVQNVGVEVMABCDEF
      GHIULUMTUNUOUPUQUJUSVLDEKKUTVA $.

    $( Lemma for ~ mdsymi .  (Contributed by NM, 2-Jul-2004.)
       (New usage is discouraged.) $)
    mdsymlem5 $p |- ( ( q e. HAtoms /\ r e. HAtoms ) -> ( -. q = p ->
                    ( ( p C_ ( q vH r ) /\ ( q C_ A /\ r C_ B ) ) ->
                    ( ( ( c e. CH /\ A C_ c ) /\ p e. HAtoms ) ->
                    ( p C_ c -> p C_ ( ( c i^i B ) vH A ) ) ) ) ) ) $=
      ( cv wcel wa cch wss chj co wi adantrl adantrr cat wceq wn cin w3a c0h wb
      df-ne atnemeq0 syl5bbr anbi2d 3adant3 atelch atexch syl3an1 sylbid 3com23
      wne expd 3expa adantrd imp32 simplrl anim1i ancoms chub2 mpan sstr sylan2
      chub1 mpan2 anim12i anandirs adantll chjcl chlub syl3an3 adantr ad2ant2lr
      mpbid chlejb2 biimpa sseqtrd exp45 anasss syl2an adantlr syl7 imp44 sstrd
      simplrr ad2antlr adantl ssind chincl chlej1 syl3an2 3comr mp3anl2 sylanl2
      chlej2 adantllr sstr2 syl5com chjcom ad2antrr sylibrd syld ad2antrl exp32
      ex sseq1d sylan imp31 mpd exp4d com34 imp4c com24 ) EKZUALZDKZUALZMZGKZNL
      ZAYEOZMFKZUALZMYHXTYBPQZOZXTAOZYBBOZMZMZXTYHUBUCZYHYEOZYHYEBUDZAPQZOZRZYD
      YFYGYIYOYPUUARRZYDYFYIYGUUBYDYFYIYGUUBRYDYFYIMZMZYGYOYPUUAUUDYGYOYPMZMZYQ
      YTUUDUUFYQMZMZYBYROZYTUUHYBYEBUUHYBXTYHPQZYEUUDUUFYBUUJOZYQUUDUUEUUKYGUUD
      YOYPUUKUUDYKYPUUKRZYNYDYIYKUULRZYFYAYCYIUUMYAYIYCUUMYAYIYCUEZYKYPUUKUUNYK
      YPMZYKXTYHUDUFUBZMZUUKYAYIUUOUUQUGYCYAYIMZYPUUPYKYPXTYHURUURUUPXTYHUHXTYH
      UIUJUKULYAXTNLZYIYCUUQUUKRXTUMZXTYHYBUNUOUPUSUQUTSVAVBSTUUDYGUUEYQUUJYEOZ
      UUEYLUUDYGYQUVARZYKYLYMYPVCYAUUCYGYLUVBRRZYCYAUUSYHNLZYFMZUVCUUCUUTYIYFUV
      EYIUVDYFYHUMVDVEUUSUVDYFUVCUUSUVDMZYFMZYGYLYQUVAUVGYGYLYQMZMMUUJYEAPQZYEU
      VGUVHUUJUVIOZYGUVGUVHMXTUVIOZYHUVIOZMZUVJYFUVHUVMUVFUVHYFUVMYLYQYFUVMYLYF
      MUVKYQYFMUVLYFYLAUVIOZUVKANLZYFUVNHAYEVFVGXTAUVIVHVIYFYQYEUVIOZUVLYFUVOUV
      PHYEAVJVKYHYEUVIVHVIVLVMVEVNUVGUVMUVJUGZUVHUUSUVDYFUVQYFUUSUVDUVINLZUVQYF
      UVOUVRHYEAVOVKXTYHUVIVPVQUTVRVTSYFYGUVIYEUBZUVFUVHYFYGUVSUVOYFYGUVSUGHAYE
      WAVGWBVSWCWDWEWFWGWHWIWJUUGYMUUDUUEYMYGYQYKYLYMYPWKWLWMWNUUDUUFUUIYTRZYQU
      UDUUEUVTYGUUDYOUVTYPUUDYKYNUVTUUDYKMYLUVTYMUUDYKYLUVTYDYFYKYLUVTRRZYIYDUU
      SYBNLZMZYFUWAYAUUSYCUWBUUTYBUMVLUWCYFMZYKYLUVTUWDYKYLMMUUIYJYSOZYTUWDYLUU
      IUWERYKUWDYLMZUUIYBXTPQZYRXTPQZOZUWEUWDUUIUWIRZYLUUSUWBYFUWJUWBYFUUSUWJYF
      UWBYRNLZUUSUWJYFBNLUWKIYEBWOVKZUWBUWKUUSUEUUIUWIYBYRXTWPXKWQWRUTVRUWFUWIU
      WGYSOZUWEUWFUWHYSOZUWIUWMUUSYFYLUWNUWBYFUUSUWKYLUWNUWLUUSUVOUWKYLUWNHXTAY
      RXAWSWTXBUWGUWHYSXCXDUWFYJUWGYSUWCYJUWGUBYFYLXTYBXEXFXLXGXHSYKUWEYTRUWDYL
      YHYJYSXCXIXHXJXMTXNTWETSTXOXJXPXJXQXRXS $.

    $( Lemma for ~ mdsymi .  This is the converse direction of Lemma 4(i) of
       [Maeda] p. 168, and is based on the proof of Theorem 1(d) to (e) of
       [Maeda] p. 167.  (Contributed by NM, 2-Jul-2004.)
       (New usage is discouraged.) $)
    mdsymlem6 $p |- ( A. p e. HAtoms ( p C_ ( A vH B ) ->
      E. q e. HAtoms E. r e. HAtoms ( p C_ ( q vH r ) /\ ( q C_ A /\ r C_ B ) )
        )
                   -> B MH* A ) $=
      ( vc cv chj co wss wa cat wi wral cch wcel wrex cin chjcomi sseq2i anbi2i
      cdmd wbr ssin bitri mdsymlem5 sseq1 chincl mpan2 chub2 sylancr sstr2 syl5
      weq impd a1i com13 adantrr ad2ant2r adantll com12 expd pm2.61d2 rexlimivv
      syl6bi imim2d com34 imp4b syl5bir ex ralimdva wb sylancl chrelat3 syl2anc
      chjcli chjcl adantr sylibrd com3r ralrimiv dmdbr2 mp2an sylibr ) FKZABLMZ
      NZWIEKZDKZLMNZWLANZWMBNZOZOZDPUAEPUAZQZFPRZAJKZNZXBBALMZUBZXBBUBZALMZNZQZ
      JSRZBAUFUGZXAXIJSXBSTZXCXAXHXLXCXAXHQXLXCOZXAWIXENZWIXGNZQZFPRZXHXMWTXPFP
      XMWIPTZOZWTXPXNWIXBNZWKOZXSWTOXOYAXTWIXDNZOXNWKYBXTWJXDWIABGHUCUDUEWIXBXD
      UHUIXSWTXTWKXOXSWTWKXTXOXSWSXTXOQZWKWSXSYCWRXSYCQZEDPPWLPTWMPTOEFURZWRYDQ
      ABCDEFJGHIUJYEWRXSYCWRXSOYEYCWQXSYEYCQZWNWOXMYFWPXRWOXLYFXCXTYEWOXLOZXOYE
      YGXOQQXTYEWOXLXOYEWOWIANZXLXOQWLWIAUKXLAXGNZYHXOXLASTZXFSTZYIGXLBSTZYKHXB
      BULUMZAXFUNUOWIAXGUPUQVIUSUTVAVBVCVDVEVFVGVHVEVJVKVLVMVNVOXLXHXQVPZXCXLXE
      STZXGSTZYNXLXDSTYOBAHGVTXBXDULUMXLYKYJYPYMGXFAWAVQFXEXGVRVSWBWCVNWDWEYLYJ
      XKXJVPHGJBAWFWGWH $.

    $( Lemma for ~ mdsymi .  Lemma 4(i) of [Maeda] p. 168.  Note that Maeda's
       1965 definition of dual modular pair has reversed arguments compared to
       the later (1970) definition given in Remark 29.6 of [MaedaMaeda] p. 130,
       which is the one that we use.  (Contributed by NM, 3-Jul-2004.)
       (New usage is discouraged.) $)
    mdsymlem7 $p |- ( ( A =/= 0H /\ B =/= 0H ) ->
                    ( B MH* A <->
   A. p e. HAtoms ( p C_ ( A vH B ) -> E. q e. HAtoms E. r e. HAtoms
            ( p C_ ( q vH r ) /\ ( q C_ A /\ r C_ B ) ) ) ) ) $=
      ( c0h wne wa cdmd wbr cv chj co wss cat wrex wi wral wcel mdsymlem4 exp4d
      com13 ralrimdv mdsymlem6 impbid1 ) AJKBJKLZBAMNZFOZABPQRZULEOZDOZPQRUNARU
      OBRLLDSTESTZUAZFSUBUJUKUQFSULSUCZUKUJUQURUKUJUMUPABCDEFGHIUDUEUFUGABCDEFG
      HIUHUI $.

    $( Lemma for ~ mdsymi .  Lemma 4(ii) of [Maeda] p. 168.  (Contributed by
       NM, 3-Jul-2004.)  (New usage is discouraged.) $)
    mdsymlem8 $p |- ( ( A =/= 0H /\ B =/= 0H ) -> ( B MH* A <-> A MH* B ) ) $=
      ( vq vr c0h wne wa cv chj co wss cat wrex wb wcel wi wral cdmd wbr sseq2i
      chjcomi cch atelch chjcom syl2an sseq2d ancom a1i anbi12d 2rexbiia rexcom
      wceq bitri imbi12i ralbii mdsymlem7 eqid ancoms 3bitr4d ) AJKZBJKZLZDMZAB
      NOZPZVHHMZIMZNOZPZVKAPZVLBPZLZLZIQRHQRZUAZDQUBZVHBANOZPZVHVLVKNOZPZVPVOLZ
      LZHQRIQRZUAZDQUBZBAUCUDABUCUDZWAWJSVGVTWIDQVJWCVSWHVIWBVHABEFUFUEVSWGIQRH
      QRWHVRWGHIQQVKQTZVLQTZLZVNWEVQWFWNVMWDVHWLVKUGTVLUGTVMWDUQWMVKUHVLUHVKVLU
      IUJUKVQWFSWNVOVPULUMUNUOWGHIQQUPURUSUTUMABCIHDEFGVAVFVEWKWJSBABVHNOZHIDFE
      WOVBVAVCVD $.
  $}

  ${
    $d x A $.  $d x B $.
    mdsym.1 $e |- A e. CH $.
    mdsym.2 $e |- B e. CH $.
    $( M-symmetry of the Hilbert lattice.  Lemma 5 of [Maeda] p. 168.
       (Contributed by NM, 3-Jul-2004.)  (New usage is discouraged.) $)
    mdsymi $p |- ( A MH B <-> B MH A ) $=
      ( vx cmd wbr wb cort cfv c0h wne cdmd choccli cch wcel mddmd chil mp3an12
      wa cv chj co eqid mdsymlem8 mp2an 3bitr4g wceq chssii fveq2 pjococi choc0
      wss 3eqtr3g syl5sseqr ssmd1 ssmd2 jca pm5.1 3syl pm2.61iine ) ABFGZBAFGZH
      ZBIJZAIJZKKVEKLVFKLTVFVEMGZVEVFMGZVBVCVEVFVEEUAUBUCZEBDNACNVIUDUEAOPZBOPZ
      VBVGHCDABQUFVKVJVCVHHDCBAQUFUGVEKUHZABUMZVBVCTZVDVLRABACUIVLVEIJKIJZBRVEK
      IUJBDUKULUNUOVMVBVCVJVKVMVBCDABUPSVJVKVMVCCDABUQSURVBVCUSZUTVFKUHZBAUMZVN
      VDVQRBABDUIVQVFIJVOARVFKIUJACUKULUNUOVRVBVCVKVJVRVBDCBAUQSVKVJVRVCDCBAUPS
      URVPUTVA $.
  $}

  $( M-symmetry of the Hilbert lattice.  Lemma 5 of [Maeda] p. 168.
     (Contributed by NM, 6-Jul-2004.)  (New usage is discouraged.) $)
  mdsym $p |- ( ( A e. CH /\ B e. CH ) -> ( A MH B <-> B MH A ) ) $=
    ( cch wcel cmd wbr chil cif wceq breq1 breq2 bibi12d ifchhv mdsymi dedth2h
    wb ) ACDZBCDZABEFZBAEFZPQAGHZBEFZBUAEFZPUARBGHZEFZUDUAEFZPABGGAUAISUBTUCAUA
    BEJAUABEKLBUDIUBUEUCUFBUDUAEKBUDUAEJLUAUDAMBMNO $.

  $( Dual M-symmetry of the Hilbert lattice.  (Contributed by NM, 25-Jul-2007.)
     (New usage is discouraged.) $)
  dmdsym $p |- ( ( A e. CH /\ B e. CH ) -> ( A MH* B <-> B MH* A ) ) $=
    ( cch wcel wa cort cfv cmd cdmd wb choccl mdsym syl2an dmdmd ancoms 3bitr4d
    wbr ) ACDZBCDZEAFGZBFGZHQZUATHQZABIQBAIQZRTCDUACDUBUCJSAKBKTUALMABNSRUDUCJB
    ANOP $.

  $( Two Hilbert lattice elements have the dual modular pair property if the
     second is an atom.  (Contributed by NM, 6-Jul-2004.)
     (New usage is discouraged.) $)
  atdmd2 $p |- ( ( A e. CH /\ B e. HAtoms ) -> A MH* B ) $=
    ( cch wcel cat wa cdmd wbr atdmd ancoms wb atelch dmdsym sylan2 mpbird ) AC
    DZBEDZFABGHZBAGHZQPSBAIJQPBCDRSKBLABMNO $.

  ${
    $d x y z w A $.  $d x y z w B $.  $d y z w C $.
    sumdmdi.1 $e |- A e. CH $.
    sumdmdi.2 $e |- B e. CH $.
    $( If the subspace sum of two Hilbert lattice elements is closed, then the
       elements are a dual modular pair.  Remark in [MaedaMaeda] p. 139.
       (Contributed by NM, 12-Jul-2004.)  (New usage is discouraged.) $)
    sumdmdii $p |- ( ( A +H B ) = ( A vH B ) -> A MH* B ) $=
      ( vx vy vz vw co wceq cv wss cin wi cch wcel wa wrex csh wb cph wral cdmd
      chj wbr ineq2 adantr wel elin cva chseli cmv ssel2 chsh shsubcl 3exp syl7
      syl exp4a com23 imp41 adantlr chil chel cheli w3a hvsubadd ax-hvcom eqcom
      eqeq1d syl6bb 3adant1 bitrd 3com23 syl3an 3expa eleq1 syl6bir mpbid simpr
      imp jca exp31 reximdvai r19.42v syl6ib reximdva ancom bitri anass rexbii2
      anbi1i syl6ibr chshii shincl sylancl ad2antrr shsel sylibrd expimpd ssrdv
      syl5bi adantl eqsstr3d chincl mpan2 chslej ad2antrl sstrd ralrimiv dmdbr2
      exp32 mp2an sylibr ) ABUAIZABUDIZJZBEKZLZXRXPMZXRAMZBUDIZLZNZEOUBZABUCUEZ
      XQYDEOXQXROPZXSYCXQYGXSQZQZXTYABUAIZYBYIXTXRXOMZYJXQYKXTJYHXOXPXRUFUGYHYK
      YJLXQYHFYKYJFKZYKPFEUHZYLXOPZQYHYLYJPZYLXRXOUIYHYMYNYOYNYLGKZHKZUJIZJZHBR
      ZGARZYHYMQZYOGHABYLCDUKUUBUUAYTGYARZYOUUBUUAGEUHZYTQZGARUUCUUBYTUUEGAUUBY
      PAPZQZYTUUDYSQZHBRUUEUUGYSUUHHBUUGYQBPZYSUUHUUGUUIQZYSQZUUDYSUUKYLYQULIZX
      RPZUUDUUJUUMYSUUBUUIUUMUUFYGXSYMUUIUUMYGYMXSUUIUUMNYGYMXSUUIUUMXSUUIQHEUH
      ZYGYMUUMBXRYQUMYGXRSPZYMUUNUUMNNXRUNZUUOYMUUNUUMYLYQXRUOUPURUQUSUTVAVBUGU
      UJYSUUMUUDTZUUJYSUULYPJZUUQUUBUUFUUIUURYSTZUUBYLVCPZUUFYPVCPZUUIYQVCPZUUS
      YGYMUUTXSYLXRVDVBYPACVEYQBDVEUUTUVBUVAUUSUUTUVBUVAVFUURYQYPUJIZYLJZYSYLYQ
      YPVGUVBUVAUVDYSTUUTUVBUVAQZUVDYRYLJYSUVEUVCYRYLYQYPVHVJYRYLVIVKVLVMVNVOVP
      UULYPXRVQVRWAVSUUJYSVTWBWCWDUUDYSHBWEWFWGYTUUEGYAAYPYAPZYTQUUFUUDQZYTQUUF
      UUEQUVFUVGYTUVFUUDUUFQUVGYPXRAUIUUDUUFWHWIWLUUFUUDYTWJWIWKWMUUBYASPZBSPYO
      UUCTYGUVHXSYMYGUUOASPUVHUUPACWNXRAWOWPWQBDWNGHYABYLWRWPWSXBWTXBXAXCXDYGYJ
      YBLZXQXSYGYAOPZBOPZUVIYGAOPZUVJCXRAXEXFDYABXGWPXHXIXLXJUVLUVKYFYETCDEABXK
      XMXN $.

    $( Commuting subspaces form a modular pair.  (Contributed by NM,
       16-Jan-2005.)  (New usage is discouraged.) $)
    cmmdi $p |- ( A C_H B -> A MH B ) $=
      ( ccm wbr cort cfv cdmd cmd cph co chj cmcm4i choccli osumcor2i sylbi cch
      wceq wcel sumdmdii syl wb mddmd mp2an sylibr ) ABEFZAGHZBGHZIFZABJFZUGUHU
      IKLUHUIMLSZUJUGUHUIEFULABCDNUHUIACOZBDOZPQUHUIUMUNUAUBARTBRTUKUJUCCDABUDU
      EUF $.

    $( Commuting subspaces form a dual modular pair.  (Contributed by NM,
       25-Apr-2006.)  (New usage is discouraged.) $)
    cmdmdi $p |- ( A C_H B -> A MH* B ) $=
      ( cort cfv ccm wbr cmd cdmd choccli cmmdi cmcm4i wcel dmdmd mp2an 3imtr4i
      cch wb ) AEFZBEFZGHTUAIHZABGHABJHZTUAACKBDKLABCDMARNBRNUCUBSCDABOPQ $.

    $( Lemma for ~ sumdmdi .  The span of vector ` C ` not in the subspace sum
       is "trimmed off."  (Contributed by NM, 18-Dec-2004.)
       (New usage is discouraged.) $)
    sumdmdlem $p |- ( ( C e. ~H /\ -. C e. ( A +H B ) ) ->
                    ( ( B +H ( span ` { C } ) ) i^i A ) = ( B i^i A ) ) $=
      ( vz vw chil wcel co wa cv wi cva wceq csh wb c0v adantr exp32 vy cph csn
      cspn cfv cin elin wrex chshii spansnsh shsel sylancr cmv cheli elspansncl
      w3a hvsubadd eqcom syl6bb syl3an 3expa shsvsi eleq1 syl5ibcom com4r imp31
      wn sylbird adantrr shscli elspansn5 ax-mp mpdd oveq2 ax-hvaddid sylan9eqr
      adantl sylan eqeq2d adantll biimpac biimparc biimpri ancoms expr ad2antrl
      sylan2 mpd a1d com23 com4l imp4c exp4a expd rexlimdvv sylbid imp4b syl5bi
      ex ssrdv wss shsub1 ssrin syl eqssd ) CHIZCABUBJZIVGZKZBCUCUDUEZUBJZAUFZB
      AUFZXIUAXLXMUALZXLIXNXKIZXNAIZKXIXNXMIZXNXKAUGXFXHXOXPXQXFXOXHXPXQMZXFXOX
      NFLZGLZNJZOZGXJUHFBUHZXHXRMZXFBPIZXJPIZXOYCQBEUIZCUJZFGBXJXNUKULXFYBYDFGB
      XJXFXSBIZXTXJIZKZYBYDXPXFYKYBKZXHXQXPYLXFXHXQMXPYLXFXHXQXPYIYJYBXIXQMZYBX
      PYIYJYMYBXPYIYJYMMYBXPYIKZKZXIYJXQYOXIYJXQMYOXIKZYJXTROZXQYPYJXTXGIZYQYOX
      FYJYRMZXHYBYNXFYSYNXFYJYBYRYNXFYJYBYRMYNXFYJKZKYBXNXSUMJZXTOZYRXPYIYTUUBY
      BQZXPXNHIZYIXSHIZYTXTHIZUUCXNADUNXSBEUNZCXTUOUUDUUEUUFUPUUBYAXNOYBXNXSXTU
      QYAXNURUSUTVAYNUUBYRMYTYNUUAXGIUUBYRABXNXSADUIZYGVBUUAXTXGVCVDSVHTVEVFVIX
      IYJYRYQMMYOXIYJYRYQXGPIXIYJYRKKYQMABUUHYGVJXGCXTVKVLTVQVMYOYJYQXQMZMXIYOU
      UIYJYBYNYQXQYBYNYQKZKXNXSOZXQUUJYBUUKYIYQYBUUKQXPYIYQKYAXSXNYIUUEYQYAXSOU
      UGYQUUEYAXSRNJXSXTRXSNVNXSVOVPVRVSVTWAYNUUKXQMYBYQXPYIUUKXQYIUUKKXPXNBIZX
      QUUKUULYIXNXSBVCWBUULXPXQXQUULXPKXNBAUGWCWDWGWEWFWHWEWISVMWSWJTWKWLWMWJWK
      WNWOWPWJWQWRWTXFXMXLXAZXHXFBXKXAZUUMXFYEYFUUNYGYHBXJXBULBXKAXCXDSXE $.

    $( Lemma for ~ sumdmdi .  (Contributed by NM, 23-Dec-2004.)
       (New usage is discouraged.) $)
    sumdmdlem2 $p |- ( A. x e. HAtoms ( ( x vH B ) i^i ( A vH B ) ) C_
                  ( ( ( x vH B ) i^i A ) vH B ) -> ( A +H B ) = ( A vH B ) ) $=
      ( chj co cin wss cat cph wa wceq wcel wi cspn c0v ineq1d oveq1d syl6eq vy
      cv wral chil chjcli cheli wn csn cfv csh spansnsh chshii sylancl spansnid
      shsub2 sseldd ad2antrl wne df-ne spansna sylan2br oveq1 sseq12d rspcv syl
      elin cch spansnj spansnch chjcom sylan2 eqtrd mpan adantr sylibrd expdimp
      wb com12 ssid sneq fveq2d spansn0 oveq2d shs0i inss1 chub2i ssini chincli
      c0h eqssi chjcomi chabs1i eqtri mpbiri pm2.61d2 adantrr sumdmdlem shsub2i
      syl6eqss adantl sstrd sseld syl5bir mpand exp32 com34 pm2.18 syl8 pm2.43d
      syl5 ssrdv chsleji jctil eqss sylibr ) AUBZCFGZBCFGZHZXQBHZCFGZIZAJUCZBCK
      GZXRIZXRYDIZLYDXRMYCYFYEYCUAXRYDYCUAUBZXRNZYGYDNZYHYGUDNZYCYHYIOZYGXRBCDE
      UEUFYCYJYHYIUGZYIOYIYCYJYLYHYIYCYJYLYKYCYJYLLZLZYGCYGUHZPUIZKGZNZYHYIYJYR
      YCYLYJYPYQYGYJYPUJNCUJNYPYQIYGUKCEULZYPCUOUMYGUNUPUQYRYHLYGYQXRHZNYNYIYGY
      QXRVFYNYTYDYGYNYTYQBHZCFGZYDYCYJYTUUBIZYLYCYJLYGQMZUUCYCYJUUDUGZUUCYJUUEL
      ZYCUUCUUFYCYPCFGZXRHZUUGBHZCFGZIZUUCUUFYPJNZYCUUKOUUEYJYGQURUULYGQUSYGUTV
      AYBUUKAYPJXPYPMZXSUUHYAUUJUUMXQUUGXRXPYPCFVBZRUUMXTUUICFUUMXQUUGBUUNRSVCV
      DVEYJUUCUUKVQUUEYJYTUUHUUBUUJYJYQUUGXRCVGNZYJYQUUGMEUUOYJLYQCYPFGZUUGCYGV
      HYJUUOYPVGNUUPUUGMYGVICYPVJVKVLVMZRYJUUAUUICFYJYQUUGBUUQRSVCVNVOVRVPUUDUU
      CCCICVSZUUDYTCUUBCUUDYTCXRHZCUUDYQCXRUUDYQCWIKGCUUDYPWICKUUDYPQUHZPUIWIUU
      DYOUUTPYGQVTWAWBTWCCYSWDTZRUUSCCXRWECCXRUURCBEDWFWGWJTUUDUUBCBHZCFGZCUUDU
      UAUVBCFUUDYQCBUVARSUVCCUVBFGCUVBCCBEDWHEWKCBEDWLWMZTVCWNWOWPYMUUBYDIYCYMU
      UBCYDYMUUBUVCCYMUUAUVBCFBCYGDEWQSUVDTCBYSBDULWRWSWTXAXBXCXDXEXFYIXGXHXJXI
      XKBCDEXLXMYDXRXNXO $.

    $( The subspace sum of two Hilbert lattice elements is closed iff the
       elements are a dual modular pair.  Theorem 2 of [Holland] p. 1519.
       (Contributed by NM, 14-Dec-2004.)  (New usage is discouraged.) $)
    sumdmdi $p |- ( ( A +H B ) = ( A vH B ) <-> A MH* B ) $=
      ( vx cph co chj wceq cdmd wbr sumdmdii cv cin wss cat wral cch wcel wb
      dmdbr4 mp2an atelch imim1i ralimi2 sylbi sumdmdlem2 syl impbii ) ABFGABHG
      ZIZABJKZABCDLULEMZBHGZUJNUNANBHGOZEPQZUKULUOERQZUPARSBRSULUQTCDEABUAUBUOU
      OERPUMPSUMRSUOUMUCUDUEUFEABCDUGUHUI $.

    $( Dual modular pair property in terms of atoms.  (Contributed by NM,
       15-Jan-2005.)  (New usage is discouraged.) $)
    dmdbr4ati $p |- ( A MH* B <-> A. x e. HAtoms
            ( ( x vH B ) i^i ( A vH B ) ) C_ ( ( ( x vH B ) i^i A ) vH B ) ) $=
      ( cdmd wbr cv chj co cin wss cat wral cch wcel wb dmdbr4 mp2an atelch cph
      imim1i ralimi2 sylbi wceq sumdmdlem2 sumdmdi sylib impbii ) BCFGZAHZCIJZB
      CIJZKULBKCIJLZAMNZUJUNAONZUOBOPCOPUJUPQDEABCRSUNUNAOMUKMPUKOPUNUKTUBUCUDU
      OBCUAJUMUEUJABCDEUFBCDEUGUHUI $.

    $( Dual modular pair property in terms of atoms.  (Contributed by NM,
       14-Jan-2005.)  (New usage is discouraged.) $)
    dmdbr5ati $p |- ( A MH* B <-> A. x e. HAtoms ( x C_ ( A vH B )
        -> x C_ ( ( ( x vH B ) i^i A ) vH B ) ) ) $=
      ( chj co wss cin wi cat wral wcel cch wceq wa sylancr adantr sylancl wb
      cdmd wbr cv dmdi4 mp3an12 atelch syl11 a1dd ralrimiv cph wn chjcom ineq1d
      chjcomi ineq2i syl6eqr sseq2i notbii atabs2i sylan2b eqtr3d chjcl eqsstrd
      imp chincl chub2 ex biantrud pm4.83 syl6bb ralbiia sumdmdlem2 sylbi sylib
      sumdmdi impbii chub2i biantru chjcli chlub mp3an23 syl5bb ssid ssin bitri
      biantrur biimpa inss1 jctil sylibr sseq1d mpan2 mp3an2 mpdan bitrd bitr4d
      eqss pm5.74da syl ) BCUAUBZAUCZBCFGZHZXACFGZXBIZXDBIZCFGZHZJZAKLZXCXAXGHZ
      JZAKLWTXJWTXIAKWTXAKMZXHXCXANMZWTXHXMBNMZCNMZXNWTXHJDEBCXAUDUEXAUFZUGUHUI
      XJBCUJGXBOZWTXJXHAKLXRXIXHAKXMXIXIXCUKZXHJZPXHXMXTXIXMXSXHXMXSPZXECXGYACX
      AFGZCBFGZIZXECXMYDXEOXSXMYDXDYCIXEXMYBXDYCXMXPXNYBXDOEXQCXAULQUMXBYCXDBCD
      EUNZUOUPRXSXMXAYCHZUKZYDCOZXCYFXBYCXAYEUQURXMYGYHCBXAEDUSVDUTVAXMCXGHZXSX
      MXPXFNMZYIEXMXDNMZXOYJXMXNXPYKXQEXACVBZSDXDBVEZSCXFVFZQRVCVGVHXCXHVIVJVKA
      BCDEVLVMBCDEVOVNVPXIXLAKXMXNXIXLTXQXNXCXHXKXNXCPZXHXDXGHZXKYOXEXDXGYOXEXD
      HZXDXEHZPXEXDOYOYRYQXNXCYRXNXCXDXBHZYRXCXCCXBHZPZXNYSYTXCCBEDVQVRXNXPXBNM
      UUAYSTEBCDEVSXACXBVTWAWBYSXDXDHZYSPYRUUBYSXDWCWFXDXDXBWDWEVJWGXDXBWHWIXEX
      DWQWJWKXNXKYPTXCXNXKXKYIPZYPXNYIXKXNXPYJYIEXNYKXOYJXNXPYKEYLWLDYMSZYNQVHX
      NXGNMZUUCYPTZXNYJXPUUEUUDEXFCVBSXNXPUUEUUFEXACXGVTWMWNWORWPWRWSVKWE $.

    $( Dual modular pair property in terms of atoms.  The modular law takes the
       form of the shearing identity.  (Contributed by NM, 18-Jan-2005.)
       (New usage is discouraged.) $)
    dmdbr6ati $p |- ( A MH* B <-> A. x e. HAtoms
            ( ( A vH B ) i^i x ) = ( ( ( ( x vH B ) i^i A ) vH B ) i^i x ) ) $=
      ( cdmd wbr chj co cv cin wceq cat wral cch wcel wb dmdbr3 incom wss mp2an
      wa inass 3eqtri chabs2 mpan2 ineq2d syl5reqr adantr ineq1 adantl ralimiaa
      eqtr4d sylbi atelch imim1i ralimi2 syl wi inss1 sseq1 mpbiri df-ss biimpi
      syl5eq sseq1d syl5ibcom ralimi dmdbr5ati sylibr impbii ) BCFGZBCHIZAJZKZV
      NCHIZBKCHIZVNKZLZAMNZVLVSAONZVTVLVQVPVMKZLZAONZWABOPCOPZVLWDQDEABCRUAWCVS
      AOVNOPZWCUBVOWBVNKZVRWFVOWGLWCWFWGVMVNVPKZKZVOWIWHVMKVNWBKWGVMWHSVNVPVMUC
      VNWBSUDWFWHVNVMWFWEWHVNLEVNCUEUFUGUHUIWCVRWGLWFVQWBVNUJUKUMULUNVSVSAOMVNM
      PWFVSVNUOUPUQURVTVNVMTZVNVQTZUSZAMNVLVSWLAMVSVOVQTZWJWKVSWMVRVQTVQVNUTVOV
      RVQVAVBWJVOVNVQWJVOVNVMKZVNVMVNSWJWNVNLVNVMVCVDVEVFVGVHABCDEVIVJVK $.

    $( Dual modular pair property in terms of atoms.  (Contributed by NM,
       18-Jan-2005.)  (New usage is discouraged.) $)
    dmdbr7ati $p |- ( A MH* B <-> A. x e. HAtoms ( ( A vH B ) i^i x )
        C_ ( ( ( x vH B ) i^i A ) vH B ) ) $=
      ( cdmd wbr chj co cv cin wss cat wral dmdbr6ati inss1 sseq1 mpbiri ralimi
      wceq sylbi wi sseqin2 biimpi sseq1d biimpcd dmdbr5ati sylibr impbii ) BCF
      GZBCHIZAJZKZULCHIBKCHIZLZAMNZUJUMUNULKZTZAMNUPABCDEOURUOAMURUOUQUNLUNULPU
      MUQUNQRSUAUPULUKLZULUNLZUBZAMNUJUOVAAMUSUOUTUSUMULUNUSUMULTULUKUCUDUEUFSA
      BCDEUGUHUI $.
  $}

  ${
    mdoc1.1 $e |- A e. CH $.
    $( Orthocomplements form a modular pair.  (Contributed by NM, 29-Apr-2006.)
       (New usage is discouraged.) $)
    mdoc1i $p |- A MH ( _|_ ` A ) $=
      ( cort cfv ccm wbr cmd cmidi cmcm2ii choccli cmmdi ax-mp ) AACDZEFAMGFAAB
      BABHIAMBABJKL $.

    $( Orthocomplements form a modular pair.  (Contributed by NM, 29-Apr-2006.)
       (New usage is discouraged.) $)
    mdoc2i $p |- ( _|_ ` A ) MH A $=
      ( cort cfv cmd choccli mdoc1i ococi breqtri ) ACDZJCDAEJABFGABHI $.

    $( Orthocomplements form a dual modular pair.  (Contributed by NM,
       29-Apr-2006.)  (New usage is discouraged.) $)
    dmdoc1i $p |- A MH* ( _|_ ` A ) $=
      ( cort cfv ccm wbr cdmd cmidi cmcm2ii choccli cmdmdi ax-mp ) AACDZEFAMGFA
      ABBABHIAMBABJKL $.

    $( Orthocomplements form a dual modular pair.  (Contributed by NM,
       29-Apr-2006.)  (New usage is discouraged.) $)
    dmdoc2i $p |- ( _|_ ` A ) MH* A $=
      ( cort cfv cdmd choccli dmdoc1i ococi breqtri ) ACDZJCDAEJABFGABHI $.
  $}

  ${
    mdcompl.1 $e |- A e. CH $.
    mdcompl.2 $e |- B e. CH $.
    $( A condition equivalent to the modular pair property.  Part of proof of
       Theorem 1.14 of [MaedaMaeda] p. 4.  (Contributed by NM, 29-Apr-2006.)
       (New usage is discouraged.) $)
    mdcompli $p |- ( A MH B <-> ( A i^i ( _|_ ` ( A i^i B ) ) ) MH
                  ( B i^i ( _|_ ` ( A i^i B ) ) ) ) $=
      ( cin cort cfv cmd wbr cdmd wss chj co chincli mdoc1i dmdoc2i ssid chjcli
      wb chil chssii chjoi sseqtr4i choccli mdslmd1i mp4an ) ABEZUGFGZHIUHUGJIU
      GUGKABLMZUGUHLMZKABHIAUHEBUHEHISUGABCDNZOUGUKPUGQUITUJUIABCDRUAUGUKUBUCUG
      UHABUKUGUKUDCDUEUF $.

    $( A condition equivalent to the dual modular pair property.  (Contributed
       by NM, 29-Apr-2006.)  (New usage is discouraged.) $)
    dmdcompli $p |- ( A MH* B <-> ( A i^i ( _|_ ` ( A i^i B ) ) ) MH*
                  ( B i^i ( _|_ ` ( A i^i B ) ) ) ) $=
      ( cin cort cfv cmd wbr cdmd wss chj co chincli mdoc1i dmdoc2i ssid chjcli
      wb chil chssii chjoi sseqtr4i choccli mdsldmd1i mp4an ) ABEZUGFGZHIUHUGJI
      UGUGKABLMZUGUHLMZKABJIAUHEBUHEJISUGABCDNZOUGUKPUGQUITUJUIABCDRUAUGUKUBUCU
      GUHABUKUGUKUDCDUEUF $.
  $}

  ${
    $d x y A $.  $d x y B $.
    mddmdin0.1 $e |- A e. CH $.
    mddmdin0.2 $e |- B e. CH $.
    mddmdin0.3 $e |- A. x e. CH A. y e. CH ( ( x MH* y /\ ( x i^i y ) = 0H ) ->
                     x MH y ) $.
    $( If dual modular implies modular whenever meet is zero, then dual modular
       implies modular for arbitrary lattice elements.  This theorem is needed
       for the remark after Lemma 7 of [Holland] p. 1524 to hold.  (Contributed
       by NM, 29-Apr-2006.)  (New usage is discouraged.) $)
    mddmdin0i $p |- ( A MH* B -> A MH B ) $=
      ( cin cdmd wbr cmd c0h wceq chincli cv wa wi cch wral wcel inindir eqtr3i
      cfv chocini choccli breq1 ineq1 eqeq1d anbi12d imbi12d breq2 ineq2 rspc2v
      cort mp2an ax-mp mpan2 dmdcompli mdcompli 3imtr4i ) CCDHZUNUCZHZDVBHZIJZV
      CVDKJZCDIJCDKJVEVCVDHZLMZVFVAVBHVGLCDVBUAVACDEFNZUDUBAOZBOZIJZVJVKHZLMZPZ
      VJVKKJZQZBRSARSZVEVHPZVFQZGVCRTVDRTVRVTQCVBEVAVIUEZNDVBFWANVQVTVCVKIJZVCV
      KHZLMZPZVCVKKJZQABVCVDRRVJVCMZVOWEVPWFWGVLWBVNWDVJVCVKIUFWGVMWCLVJVCVKUGU
      HUIVJVCVKKUFUJVKVDMZWEVSWFVFWHWBVEWDVHVKVDVCIUKWHWCVGLVKVDVCULUHUIVKVDVCK
      UKUJUMUOUPUQCDEFURCDEFUSUT $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w C $.
    cdjreu.1 $e |- A e. SH $.
    cdjreu.2 $e |- B e. SH $.
    $( A member of the sum of disjoint subspaces has a unique decomposition.
       Part of Lemma 5 of [Holland] p. 1520.  (Contributed by NM, 20-May-2005.)
       (New usage is discouraged.) $)
    cdjreui $p |- ( ( C e. ( A +H B ) /\ ( A i^i B ) = 0H ) ->
                 E! x e. A E. y e. B C = ( x +h y ) ) $=
      ( vz vw co wcel c0h wceq wa cv cva wrex wi chil sheli cph cin wral shseli
      weq wreu biimpi reeanv eqtr2 cmv wb anim12i hvaddsub4 syl2an an4s adantll
      shsubcl mp3an1 ancoms eleq1 syl5ibrcom adantl adantr jctild eleq2 syl5bbr
      csh elin ad2antrr sylibd elch0 hvsubeq0 syl5bb ad2antlr sylbid rexlimdvva
      c0v syl5 syl5bir ralrimivva oveq1 eqeq2d rexbidv oveq2 syl6bb reu4 sylibr
      cbvrexv ) ECDUAJKZCDUBZLMZNEAOZBOZPJZMZBDQZACQZWPEHOZIOZPJZMZIDQZNZAHUEZR
      ZHCUCACUCZNWPACUFWIWQWKXFWIWQABCDEFGUDUGWKXEAHCCXCWOXANZIDQBDQWKWLCKZWRCK
      ZNZNZXDWOXABIDDUHXKXGXDBIDDXGWNWTMZXKWMDKZWSDKZNZNZXDEWNWTUIXPXLWLWRUJJZW
      SWMUJJZMZXDXJXOXLXSUKZWKXHXMXIXNXTXHXMNWLSKZWMSKZNWRSKZWSSKZNXTXIXNNXHYAX
      MYBWLCFTZWMDGTULXIYCXNYDWRCFTZWSDGTULWLWMWRWSUMUNUOUPXPXSXQLKZXDXPXSXQCKZ
      XQDKZNZYGXJXOXSYJRWKXJXONXSYIYHXOXSYIRXJXOYIXSXRDKZXNXMYKDVGKXNXMYKGWSWMD
      UQURUSXQXRDUTVAVBXJYHXOCVGKXHXIYHFWLWRCUQURVCVDUPWKYJYGUKXJXOYJXQWJKWKYGX
      QCDVHWJLXQVEVFVIVJXJYGXDUKZWKXOXHYAYCYLXIYEYFYGXQVQMYAYCNXDXQVKWLWRVLVMUN
      VNVJVOVRVPVSVTULWPXBAHCXDWPEWRWMPJZMZBDQXBXDWOYNBDXDWNYMEWLWRWMPWAWBWCYNX
      ABIDBIUEYMWTEWMWSWRPWDWBWHWEWFWG $.
  $}

  ${
    $d x y z w A $.  $d x y z w v B $.
    cdj1.1 $e |- A e. SH $.
    cdj1.2 $e |- B e. SH $.
    $( Two ways to express " ` A ` and ` B ` are completely disjoint
       subspaces."  (1) => (2) in Lemma 5 of [Holland] p. 1520.  (Contributed
       by NM, 21-May-2005.)  (New usage is discouraged.) $)
    cdj1i $p |- ( E. w e. RR ( 0 < w /\ A. y e. A A. v e. B
      ( ( normh ` y ) + ( normh ` v ) ) <_ ( w x. ( normh ` ( y +h v ) ) ) ) ->
                    E. x e. RR ( 0 < x /\ A. y e. A A. z e. B
                    ( ( normh ` y ) = 1 -> x <_ ( normh ` ( y -h z ) ) ) ) ) $=
      ( cc0 wbr cno cfv co cle wa c1 wceq cr wcel cv clt caddc cva cmul wral wi
      cmv wrex cdiv wne gt0ne0 rereccl syldan adantrr recgt0 cneg csm 1red chil
      1re neg1cn sheli hvmulcl sylancr normcl syl adantl readdcl adantr hvsubcl
      cc syl2an remulcl sylan2 anassrs normge0 wb addge01 mpan syl2anc ad2antlr
      biimpa csh shmulcl mp3an12 fveq2 oveq2d oveq2 breq12d rspcv imp ad2ant2lr
      fveq2d oveq1 eqcoms ad2antll hvsubval adantll 3brtr4d ex adantllr simplll
      letrd simpllr lediv1 mp3an1 syl12anc sylibd recnd recn ad3antrrr ad2antrr
      divcan3d breqtrd exp43 com23 ralrimdv ralimdva jca32 breq2 breq1 2ralbidv
      impr imbi2d anbi12d rspcev syl6 rexlimiv ) JDUAZUBKZBUAZLMZEUAZLMZUCNZYJY
      LYNUDNZLMZUENZOKZEGUFZBFUFZPZJAUAZUBKZYMQRZUUDYLCUAZUHNZLMZOKZUGZCGUFBFUF
      ZPZASUIZDSYJSTZUUCQYJUJNZSTZJUUPUBKZUUFUUPUUIOKZUGZCGUFZBFUFZPZPZUUNUUOUU
      CUVDUUOUUCPUUQUURUVBUUOYKUUQUUBUUOYKYJJUKZUUQYJULZYJUMUNUOUUOYKUURUUBYJUP
      UOUUOYKUUBUVBUUOYKPZUUAUVABFUVGYLFTZPZUUAUUTCGUVIUUGGTZUUAUUTUVIUVJUUAUUF
      UUSUVIUVJPZUUAUUFPZPUUPYJUUIUENZYJUJNZUUIOUVKUVLUUPUVNOKZUVKUVLQUVMOKZUVO
      UUOUVHUVJUVLUVPUGYKUUOUVHPZUVJPZUVLUVPUVRUVLPZQQQUQZUUGURNZLMZUCNZUVMUVSU
      SUVRUWCSTZUVLUVRQSTZUWBSTZUWDVAUVJUWFUVQUVJUWAUTTZUWFUVJUVTVLTZUUGUTTZUWG
      VBUUGGIVCZUVTUUGVDVEZUWAVFVGZVHQUWBVIVEVJUVRUVMSTZUVLUUOUVHUVJUWMUVHUVJPZ
      UUOUUISTZUWMUWNUUHUTTZUWOUVHYLUTTZUWIUWPUVJYLFHVCZUWJYLUUGVKVMZUUHVFZVGZY
      JUUIVNZVOVPVJUVJQUWCOKZUVQUVLUVJUWFJUWBOKZUXCUWLUVJUWGUXDUWKUWAVQVGUWFUXD
      UXCUWEUWFUXDUXCVRVAQUWBVSVTWCWAWBUVSYMUWBUCNZYJYLUWAUDNZLMZUENZUWCUVMOUVJ
      UUAUXEUXHOKZUVQUUFUVJUUAUXIUVJUWAGTZUUAUXIUGGWDTUWHUVJUXJIVBUVTUUGGWEWFYT
      UXIEUWAGYNUWARZYPUXEYSUXHOUXKYOUWBYMUCYNUWALWGWHUXKYRUXGYJUEUXKYQUXFLYNUW
      AYLUDWIWNWHWJWKVGWLWMUUFUWCUXERZUVRUUAUXLQYMQYMUWBUCWOWPWQUVRUVMUXHRZUVLU
      VHUVJUXMUUOUWNUUIUXGYJUEUWNUUHUXFLUVHUWQUWIUUHUXFRUVJUWRUWJYLUUGWRVMWNWHW
      SVJWTXDXAXBUVKUWMUUOYKUVPUVOVRZUVKUUOUWOUWMUUOYKUVHUVJXCZUVKUWPUWOUVHUVJU
      WPUVGUWSWSUWTVGUXBWAUXOUUOYKUVHUVJXEUWEUWMUVGUXNVAQUVMYJXFXGXHXIWLUVKUVNU
      UIRUVLUVKUUIYJUVHUVJUUIVLTUVGUWNUUIUXAXJWSUUOYJVLTYKUVHUVJYJXKXLUVGUVEUVH
      UVJUVFXMXNVJXOXPXQXRXSYDXTXAUUMUVCAUUPSUUDUUPRZUUEUURUULUVBUUDUUPJUBYAUXP
      UUKUUTBCFGUXPUUJUUSUUFUUDUUPUUIOYBYEYCYFYGYHYI $.

    $( A property of " ` A ` and ` B ` are completely disjoint subspaces."
       Part of Lemma 5 of [Holland] p. 1520.  (Contributed by NM, 23-May-2005.)
       (New usage is discouraged.) $)
    cdj3lem1 $p |- ( E. x e. RR ( 0 < x /\ A. y e. A A. z e. B
      ( ( normh ` y ) + ( normh ` z ) ) <_ ( x x. ( normh ` ( y +h z ) ) ) ) ->
                    ( A i^i B ) = 0H ) $=
      ( cc0 wbr cno cfv caddc co cva cmul cle wa wceq cr wcel vw cv clt cin c0h
      wral wss c0v c1 cneg csm wi elin csh cc neg1cn shmulcl anim2i sylbi fveq2
      mp3an12 oveq1d oveq1 fveq2d oveq2d breq12d rspc2v syl adantl chil shincli
      oveq2 wb sheli c2 normneg normcl recnd 2timesd eqtr4d hvnegid syl6eq recn
      norm0 mul01d sylan9eqr 2t0e0 syl6eqr letri3 sylancl normge0 biantrud 2pos
      0re 2re pm3.2i lemul2 mp3an23 3bitr2rd norm-i bitrd sylan2 impancom elch0
      sylibd syl6ibr ssrdv ex shle0 ax-mp syl6ib adantld rexlimiv ) HAUBZUCIZBU
      BZJKZCUBZJKZLMZXNXPXRNMZJKZOMZPIZCEUFBDUFZQDEUDZUERZASXNSTZYEYGXOYHYEYFUE
      UGZYGYHYEYIYHYEQZUAYFUEYJUAUBZYFTZYKUHRZYKUETYHYLYEYMYHYLQYEYKJKZUIUJZYKU
      KMZJKZLMZXNYKYPNMZJKZOMZPIZYMYLYEUUBULZYHYLYKDTZYPETZQZUUCYLUUDYKETZQUUFY
      KDEUMUUGUUEUUDEUNTYOUOTUUGUUEGUPYOYKEUQVAURUSYDUUBYNXSLMZXNYKXRNMZJKZOMZP
      IBCYKYPDEXPYKRZXTUUHYCUUKPUULXQYNXSLXPYKJUTVBUULYBUUJXNOUULYAUUIJXPYKXRNV
      CVDVEVFXRYPRZUUHYRUUKUUAPUUMXSYQYNLXRYPJUTVEUUMUUJYTXNOUUMUUIYSJXRYPYKNVL
      VDVEVFVGVHVIYLYHYKVJTZUUBYMVMYKYFDEFGVKZVNYHUUNQZUUBVOYNOMZVOHOMZPIZYMUUP
      YRUUQUUAUURPUUNYRUUQRYHUUNYRYNYNLMUUQUUNYQYNYNLYKVPVEUUNYNUUNYNYKVQZVRVSV
      TVIUUPUUAHUURUUNYHUUAXNHOMHUUNYTHXNOUUNYTUHJKHUUNYSUHJYKWAVDWDWBVEYHXNXNW
      CWEWFWGWHVFUUNUUSYMVMYHUUNUUSYNHRZYMUUNUVAYNHPIZHYNPIZQZUVBUUSUUNYNSTZHST
      ZUVAUVDVMUUTWNYNHWIWJUUNUVCUVBYKWKWLUUNUVEUVBUUSVMZUUTUVEUVFVOSTZHVOUCIZQ
      UVGWNUVHUVIWOWMWPYNHVOWQWRVHWSYKWTXAVIXAXBXEXCYKXDXFXGXHYFUNTYIYGVMUUOYFX
      IXJXKXLXM $.
  $}

  ${
    $d x y z w v u t h A $.  $d x y z w v u t h B $.  $d x y z w v u C $.
    $d x y z w D $.
    cdj3lem2.1 $e |- A e. SH $.
    cdj3lem2.2 $e |- B e. SH $.
    ${
      $d v u t h S $.
      cdj3lem2.3 $e |- S = ( x e. ( A +H B ) |->
        ( iota_ z e. A E. w e. B x = ( z +h w ) ) ) $.
      $( Lemma for ~ cdj3i .  Value of the first-component function ` S ` .
         (Contributed by NM, 23-May-2005.)  (New usage is discouraged.) $)
      cdj3lem2 $p |- ( ( C e. A /\ D e. B /\ ( A i^i B ) = 0H ) ->
                    ( S ` ( C +h D ) ) = C ) $=
        ( wcel wceq cva co cv wrex crio rexbidv eqeq2d cin c0h w3a cfv wa eqeq1
        cph shsvai riotabidv riotaex fvmpt syl eqid oveq2 rspcev mpan2 3ad2ant2
        3adant3 wreu wb simp1 cdjreui stoic3 oveq1 riota2 syl2anc mpbid eqtrd )
        FDLZGELZDEUAUBMZUCZFGNOZHUDZVMBPZCPZNOZMZCEQZBDRZFVIVJVNVTMZVKVIVJUEVMD
        EUGOZLZWADEFGIJUHZAVMAPZVQMZCEQZBDRVTWBHWEVMMZWGVSBDWHWFVRCEWEVMVQUFSUI
        KVSBDUJUKULURVLVMFVPNOZMZCEQZVTFMZVJVIWKVKVJVMVMMZWKVMUMWJWMCGEVPGMWIVM
        VMVPGFNUNTUOUPUQVLVIVSBDUSZWKWLUTVIVJVKVAVIVJWCVKWNWDBCDEVMIJVBVCVSWKBD
        FVOFMZVRWJCEWOVQWIVMVOFVPNVDTSVEVFVGVH $.

      $( Lemma for ~ cdj3i .  Closure of the first-component function ` S ` .
         (Contributed by NM, 25-May-2005.)  (New usage is discouraged.) $)
      cdj3lem2a $p |- ( ( C e. ( A +H B ) /\ ( A i^i B ) = 0H ) ->
                    ( S ` C ) e. A ) $=
        ( vv vu cin wceq co wcel cfv cv wrex wa c0h cph cva shseli w3a cdj3lem2
        simp1 eqeltrd 3expa fveq2 eleq1d syl5ibr com13 rexlimdvv syl5bi impcom
        expd ) DEMUANZFDEUBOPZFGQZDPZUSFKRZLRZUCOZNZLESKDSURVAKLDEFHIUDURVEVAKL
        DEVEVBDPZVCEPZTZURVAVEVHURVAVHURTVAVEVDGQZDPZVFVGURVJVFVGURUEVIVBDABCDE
        VBVCGHIJUFVFVGURUGUHUIVEUTVIDFVDGUJUKULUQUMUNUOUP $.

      $( Lemma for ~ cdj3i .  The first-component function ` S ` is bounded if
         the subspaces are completely disjoint.  (Contributed by NM,
         26-May-2005.)  (New usage is discouraged.) $)
      cdj3lem2b $p |- ( E. v e. RR ( 0 < v /\ A. x e. A A. y e. B
      ( ( normh ` x ) + ( normh ` y ) ) <_ ( v x. ( normh ` ( x +h y ) ) ) ) ->
                    E. v e. RR ( 0 < v /\ A. u e. ( A +H B )
                      ( normh ` ( S ` u ) ) <_ ( v x. ( normh ` u ) ) ) ) $=
        ( wbr cno cfv co cle wa cr wcel vt vh cin c0h wceq cc0 cv clt caddc cva
        cmul wral wrex cph cdj3lem1 wi shseli biimpi fveq2 oveq1d fveq2d oveq2d
        oveq1 breq12d oveq2 rspc2v cdj3lem2 3expa ad2ant2r sheli normge0 adantl
        chil syl wb normcl addge01 syl2an mpbid adantr ad2antrr readdcl hvaddcl
        remulcl sylan2 ancoms letr syl3anc mpand imp adantrl eqbrtrd syl5ibrcom
        an32s exp31 syld com14 com4t rexlimdvv syl5com ralrimdv anim2d reximdva
        com3l mpcom ) GHUCUDUEZUFEUGZUHMZAUGZNOZBUGZNOZUIPZXGXIXKUJPZNOZUKPZQMZ
        BHULAGULZRZESUMXHFUGZIOZNOZXGXTNOZUKPZQMZFGHUNPZULZRZESUMEABGHJKUOXFXSY
        HESXFXGSTZRZXRYGXHYJXRYEFYFXTYFTZYJXRYEYKXTUAUGZUBUGZUJPZUEZUBHUMUAGUMZ
        YJXRYEUPZYKYPUAUBGHXTJKUQURYJYOYQUAUBGHYOXRYJYLGTZYMHTZRZYEYTXRYJYOYEYT
        XRYLNOZYMNOZUIPZXGYNNOZUKPZQMZYJYOYEUPZUPXQUUFUUAXLUIPZXGYLXKUJPZNOZUKP
        ZQMABYLYMGHXIYLUEZXMUUHXPUUKQUULXJUUAXLUIXIYLNUSUTUULXOUUJXGUKUULXNUUIN
        XIYLXKUJVCVAVBVDXKYMUEZUUHUUCUUKUUEQUUMXLUUBUUAUIXKYMNUSVBUUMUUJUUDXGUK
        UUMUUIYNNXKYMYLUJVEVAVBVDVFYTUUFYJUUGYTUUFRZYJRZYEYOYNIOZNOZUUEQMUUOUUQ
        UUAUUEQYTXFUUQUUAUEUUFYIYTXFRUUPYLNYRYSXFUUPYLUEACDGHYLYMIJKLVGVHVAVIUU
        NYIUUAUUEQMZXFYTYIUUFUURYTYIRZUUFUURUUSUUAUUCQMZUUFUURYTUUTYIYTUFUUBQMZ
        UUTYSUVAYRYSYMVMTZUVAYMHKVJZYMVKVNVLYRUUASTZUUBSTZUVAUUTVOYSYRYLVMTZUVD
        YLGJVJZYLVPVNZYSUVBUVEUVCYMVPVNZUUAUUBVQVRVSVTUUSUVDUUCSTZUUESTZUUTUUFR
        UURUPYRUVDYSYIUVHWAYTUVJYIYRUVDUVEUVJYSUVHUVIUUAUUBWBVRVTYIYTUVKYTYIUUD
        STZUVKYTYNVMTZUVLYRUVFUVBUVMYSUVGUVCYLYMWCVRYNVPVNXGUUDWDWEWFUUAUUCUUEW
        GWHWIWJWNWKWLYOYBUUQYDUUEQYOYAUUPNXTYNIUSVAYOYCUUDXGUKXTYNNUSVBVDWMWOWP
        WQWRWSWTXDXAXBXCXE $.
    $}

    ${
      $d v u t h T $.
      cdj3lem3.3 $e |- T = ( x e. ( A +H B ) |->
        ( iota_ w e. B E. z e. A x = ( z +h w ) ) ) $.
      $( Lemma for ~ cdj3i .  Value of the second-component function ` T ` .
         (Contributed by NM, 23-May-2005.)  (New usage is discouraged.) $)
      cdj3lem3 $p |- ( ( C e. A /\ D e. B /\ ( A i^i B ) = 0H ) ->
                    ( T ` ( C +h D ) ) = D ) $=
        ( wcel cin c0h wceq cva co chil sheli cv cfv incom eqeq1i w3a wa syl2an
        ax-hvcom fveq2d 3adant3 cph wrex crio shscomi eqeq2d rexbidva riotabiia
        cmpt mpteq12i eqtr4i cdj3lem2 eqtr3d syl3an3b 3com12 ) GELZFDLZDEMZNOZF
        GPQZHUAZGOZVGVDVEEDMZNOZVJVFVKNDEUBUCVDVEVLUDGFPQZHUAZVIGVDVEVNVIOVLVDV
        EUEVMVHHVDGRLFRLVMVHOVEGEJSFDISGFUGUFUHUIACBEDGFHJIHADEUJQZATZBTZCTZPQZ
        OZBDUKZCEULZUQAEDUJQZVPVRVQPQZOZBDUKZCEULZUQKAWCWGVOWBEDJIUMWFWACEVRELZ
        WEVTBDWHVQDLZUEWDVSVPWHVRRLVQRLWDVSOWIVREJSVQDISVRVQUGUFUNUOUPURUSUTVAV
        BVC $.

      $( Lemma for ~ cdj3i .  Closure of the second-component function ` T ` .
         (Contributed by NM, 26-May-2005.)  (New usage is discouraged.) $)
      cdj3lem3a $p |- ( ( C e. ( A +H B ) /\ ( A i^i B ) = 0H ) ->
                    ( T ` C ) e. B ) $=
        ( vv vu cin wceq co wcel cfv cv wrex wa c0h cph cva shseli w3a cdj3lem3
        simp2 eqeltrd 3expa fveq2 eleq1d syl5ibr com13 rexlimdvv syl5bi impcom
        expd ) DEMUANZFDEUBOPZFGQZEPZUSFKRZLRZUCOZNZLESKDSURVAKLDEFHIUDURVEVAKL
        DEVEVBDPZVCEPZTZURVAVEVHURVAVHURTVAVEVDGQZEPZVFVGURVJVFVGURUEVIVCEABCDE
        VBVCGHIJUFVFVGURUGUHUIVEUTVIEFVDGUJUKULUQUMUNUOUP $.

      $( Lemma for ~ cdj3i .  The second-component function ` T ` is bounded if
         the subspaces are completely disjoint.  (Contributed by NM,
         31-May-2005.)  (New usage is discouraged.) $)
      cdj3lem3b $p |- ( E. v e. RR ( 0 < v /\ A. x e. A A. y e. B
      ( ( normh ` x ) + ( normh ` y ) ) <_ ( v x. ( normh ` ( x +h y ) ) ) ) ->
                    E. v e. RR ( 0 < v /\ A. u e. ( A +H B )
                      ( normh ` ( T ` u ) ) <_ ( v x. ( normh ` u ) ) ) ) $=
        ( cno cfv co cva cmul cle wral wcel vt vh cc0 cv clt wbr caddc wrex cph
        wa cr wceq crio cmpt shscomi chil sheli ax-hvcom syl2an eqeq2d rexbidva
        riotabiia mpteq12i eqtr4i cdj3lem2b fveq2 oveq1d fveq2d oveq2d cbvral2v
        oveq1 breq12d oveq2 ralcom cc normcl syl addcom ralbidva ralbiia bitr2i
        recnd 3bitri anbi2i rexbii raleqi 3imtr4i ) UCEUDZUEUFZAUDZMNZBUDZMNZUG
        OZWHWJWLPOZMNZQOZRUFZBGSZAHSZUJZEUKUHWIFUDZINMNWHXBMNQORUFZFHGUIOZSZUJZ
        EUKUHWIWRBHSAGSZUJZEUKUHWIXCFGHUIOZSZUJZEUKUHABDCEFHGIKJIAXIWJCUDZDUDZP
        OZULZCGUHZDHUMZUNAXDWJXMXLPOZULZCGUHZDHUMZUNLAXDYAXIXQHGKJUOXTXPDHXMHTZ
        XSXOCGYBXLGTZUJXRXNWJYBXMUPTXLUPTXRXNULYCXMHKUQXLGJUQXMXLURUSUTVAVBVCVD
        VEXHXAEUKXGWTWIXGUAUDZMNZUBUDZMNZUGOZWHYDYFPOZMNZQOZRUFZUBHSUAGSYLUAGSU
        BHSZWTWRYLYEWMUGOZWHYDWLPOZMNZQOZRUFABUAUBGHWJYDULZWNYNWQYQRYRWKYEWMUGW
        JYDMVFVGYRWPYPWHQYRWOYOMWJYDWLPVKVHVIVLWLYFULZYNYHYQYKRYSWMYGYEUGWLYFMV
        FVIYSYPYJWHQYSYOYIMWLYFYDPVMVHVIVLVJYLUAUBGHVNWTWMWKUGOZWHWLWJPOZMNZQOZ
        RUFZBGSZAHSYMWSUUEAHWJHTZWRUUDBGUUFWLGTZUJZWNYTWQUUCRUUFWKVOTWMVOTWNYTU
        LUUGUUFWKUUFWJUPTZWKUKTWJHKUQZWJVPVQWBUUGWMUUGWLUPTZWMUKTWLGJUQZWLVPVQW
        BWKWMVRUSUUHWPUUBWHQUUHWOUUAMUUFUUIUUKWOUUAULUUGUUJUULWJWLURUSVHVIVLVSV
        TUUDYLWMYGUGOZWHWLYFPOZMNZQOZRUFABUBUAHGWJYFULZYTUUMUUCUUPRUUQWKYGWMUGW
        JYFMVFVIUUQUUBUUOWHQUUQUUAUUNMWJYFWLPVMVHVIVLWLYDULZUUMYHUUPYKRUURWMYEY
        GUGWLYDMVFVGUURUUOYJWHQUURUUNYIMWLYDYFPVKVHVIVLVJWAWCWDWEXKXFEUKXJXEWIX
        CFXIXDGHJKUOWFWDWEWG $.
    $}
  $}

  ${
    $d x y z w v u t h f g A $.  $d x y z w v u t h f g B $.
    $d v u t h f g S $.  $d v u t h f g T $.
    cdj3.1 $e |- A e. SH $.
    cdj3.2 $e |- B e. SH $.
    cdj3.3 $e |- S = ( x e. ( A +H B ) |->
                       ( iota_ z e. A E. w e. B x = ( z +h w ) ) ) $.
    cdj3.4 $e |- T = ( x e. ( A +H B ) |->
                       ( iota_ w e. B E. z e. A x = ( z +h w ) ) ) $.
    cdj3.5 $e |- ( ph <-> E. v e. RR ( 0 < v /\ A. u e. ( A +H B )
                      ( normh ` ( S ` u ) ) <_ ( v x. ( normh ` u ) ) ) ) $.
    cdj3.6 $e |- ( ps <-> E. v e. RR ( 0 < v /\ A. u e. ( A +H B )
                      ( normh ` ( T ` u ) ) <_ ( v x. ( normh ` u ) ) ) ) $.
    $( Two ways to express " ` A ` and ` B ` are completely disjoint
       subspaces."  (1) <=> (3) in Lemma 5 of [Holland] p. 1520.  (Contributed
       by NM, 1-Jun-2005.)  (New usage is discouraged.) $)
    cdj3i $p |- ( E. v e. RR ( 0 < v /\ A. x e. A A. y e. B
      ( ( normh ` x ) + ( normh ` y ) ) <_ ( v x. ( normh ` ( x +h y ) ) ) )
         <-> ( ( A i^i B ) = 0H /\ ph /\ ps ) ) $=
      ( cle cr vf vg vt vh cc0 cv clt wbr cno cfv caddc co cva cmul wral wa cin
      wrex c0h wceq w3a cdj3lem1 cph cdj3lem2b sylibr cdj3lem3b weq breq2 oveq1
      3jca breq2d ralbidv anbi12d cbvrexv anbi12i reeanv bitr4i wcel an4 addgt0
      bitri wi adantl shsvai fveq2 fveq2d oveq2d breq12d rspcv anim12d syl chil
      sheli normcl anim12i hvaddcl syl2an remulcl sylan2 adantlr adantll le2add
      ex syl12anc wb cdj3lem2 breq1d cdj3lem3 3expa ancoms cc recn recnd adddir
      syl3an 3imtr4d ralrimdvva readdcl oveq1d cbvral2v 2ralbidv syl5bb syl2and
      syld oveq2 rspcev syl5bi rexlimdvva 3impib impbii ) UEGUFZUGUHZCUFZUIUJZD
      UFZUIUJZUKULZYKYMYOUMULZUIUJZUNULZSUHZDJUOCIUOZUPZGTURZIJUQUSUTZABVAUUDUU
      EABGCDIJMNVBUUDYLHUFZKUJZUIUJZYKUUFUIUJZUNULZSUHZHIJVCULZUOZUPZGTURZACDEF
      GHIJKMNOVDQVEUUDYLUUFLUJZUIUJZUUJSUHZHUULUOZUPZGTURZBCDEFGHIJLMNPVFRVEVJU
      UEABUUDABUPZUEUAUFZUGUHZUUHUVCUUIUNULZSUHZHUULUOZUPZUEUBUFZUGUHZUUQUVIUUI
      UNULZSUHZHUULUOZUPZUPZUBTURUATURZUUEUUDUVBUVHUATURZUVNUBTURZUPUVPAUVQBUVR
      AUUOUVQQUUNUVHGUATGUAVGZYLUVDUUMUVGYKUVCUEUGVHUVSUUKUVFHUULUVSUUJUVEUUHSY
      KUVCUUIUNVIVKVLVMVNWABUVAUVRRUUTUVNGUBTGUBVGZYLUVJUUSUVMYKUVIUEUGVHUVTUUR
      UVLHUULUVTUUJUVKUUQSYKUVIUUIUNVIVKVLVMVNWAVOUVHUVNUAUBTTVPVQUUEUVOUUDUAUB
      TTUVOUVDUVJUPZUVGUVMUPZUPUUEUVCTVRZUVITVRZUPZUPZUUDUVDUVGUVJUVMVSUWFUWAUE
      UVCUVIUKULZUGUHZUWBUCUFZUIUJZUDUFZUIUJZUKULZUWGUWIUWKUMULZUIUJZUNULZSUHZU
      DJUOUCIUOZUUDUWEUWAUWHWBUUEUWEUWAUWHUVCUVIVTXCWCUWFUWBUWQUCUDIJUWFUWIIVRZ
      UWKJVRZUPZUPZUWBUWNKUJZUIUJZUVCUWOUNULZSUHZUWNLUJZUIUJZUVIUWOUNULZSUHZUPZ
      UWQUXAUWBUXKWBZUWFUXAUWNUULVRZUXLIJUWIUWKMNWDUXMUVGUXFUVMUXJUVFUXFHUWNUUL
      UUFUWNUTZUUHUXDUVEUXESUXNUUGUXCUIUUFUWNKWEWFUXNUUIUWOUVCUNUUFUWNUIWEZWGWH
      WIUVLUXJHUWNUULUXNUUQUXHUVKUXISUXNUUPUXGUIUUFUWNLWEWFUXNUUIUWOUVIUNUXOWGW
      HWIWJWKWCUXBUWJUXESUHZUWLUXISUHZUPZUWMUXEUXIUKULZSUHZUXKUWQUWEUXAUXRUXTWB
      ZUUEUWEUXAUPZUWJTVRZUWLTVRZUPZUXETVRZUXITVRZUYAUXAUYEUWEUWSUYCUWTUYDUWSUW
      IWLVRZUYCUWIIMWMZUWIWNWKUWTUWKWLVRZUYDUWKJNWMZUWKWNWKWOWCUWCUXAUYFUWDUXAU
      WCUWOTVRZUYFUXAUWNWLVRZUYLUWSUYHUYJUYMUWTUYIUYKUWIUWKWPWQUWNWNWKZUVCUWOWR
      WSWTUWDUXAUYGUWCUXAUWDUYLUYGUYNUVIUWOWRWSXAUWJUWLUXEUXIXBXDXAUUEUXAUXKUXR
      XEZUWEUXAUUEUYOUWSUWTUUEUYOUWSUWTUUEVAZUXFUXPUXJUXQUYPUXDUWJUXESUYPUXCUWI
      UICEFIJUWIUWKKMNOXFWFXGUYPUXHUWLUXISUYPUXGUWKUICEFIJUWIUWKLMNPXHWFXGVMXIX
      JWTUWEUXAUWQUXTXEUUEUYBUWPUXSUWMSUWCUWDUXAUWPUXSUTZUWCUVCXKVRUWDUVIXKVRUX
      AUWOXKVRUYQUVCXLUVIXLUXAUWOUYNXMUVCUVIUWOXNXOXIVKXAXPYDXQUWEUWHUWRUPZUUDW
      BZUUEUWEUWGTVRZUYSUVCUVIXRUYTUYRUUDUUCUYRGUWGTYKUWGUTZYLUWHUUBUWRYKUWGUEU
      GVHUUBUWMYKUWOUNULZSUHZUDJUOUCIUOVUAUWRUUAVUCUWJYPUKULZYKUWIYOUMULZUIUJZU
      NULZSUHCDUCUDIJCUCVGZYQVUDYTVUGSVUHYNUWJYPUKYMUWIUIWEXSVUHYSVUFYKUNVUHYRV
      UEUIYMUWIYOUMVIWFWGWHDUDVGZVUDUWMVUGVUBSVUIYPUWLUWJUKYOUWKUIWEWGVUIVUFUWO
      YKUNVUIVUEUWNUIYOUWKUWIUMYEWFWGWHXTVUAVUCUWQUCUDIJVUAVUBUWPUWMSYKUWGUWOUN
      VIVKYAYBVMYFXCWKWCYCYGYHYGYIYJ $.
  $}
$( End $[ set-hilsp.mm $] $)


$( Begin $[ set-mbox.mm $] $)
$(
###############################################################################
  SUPPLEMENTARY MATERIAL (USER'S MATHBOXES)
###############################################################################
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathboxes for user contributions
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Mathbox guidelines
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    mathbox.1 $e |- ph $.
    $( (_This theorem is a dummy placeholder for these guidelines.  The label
       of this theorem, "mathbox", is hard-coded into the metamath program to
       identify the start of the mathbox section for web page generation_.)

       A "mathbox" is a user-contributed section that is maintained by its
       contributor independently from the main part of set.mm.

       _For contributors_:

       By making a contribution, you agree to release it into the public
       domain, according to the statement at the beginning of set.mm.

       Mathboxes are provided to help keep your work synchronized with changes
       in set.mm while allowing you to work independently without affecting
       other contributors.  Even though in a sense your mathbox belongs to you,
       it is still part of the shared body of knowledge contained in set.mm,
       and occasionally other people may make maintenance edits to your mathbox
       for things like keeping it synchronized with the rest of set.mm,
       reducing proof lengths, moving your theorems to the main part of set.mm
       when needed, and fixing typos or other errors.  If you want to preserve
       it the way you left it, you can keep a local copy or keep track of the
       GitHub commit number.

       _Guidelines_:

       1.  See ~ conventions for our general style guidelines.  For
       contributing via GitHub, see
       ~ https://github.com/metamath/set.mm/blob/develop/CONTRIBUTING.md .  The
       metamath program command "verify markup *" will check that you have
       followed many of of the conventions we use.

       2.  If at all possible, please use only nullary class constants for new
       definitions, for example as in ~ df-div .

       3.  Each $p and $a statement must be immediately preceded with the
       comment that will be shown on its web page description.  The metamath
       program command "write source set.mm /rewrap" will take care of our
       indentation conventions and line wrapping.

       4.  All mathbox content will be on public display and should hopefully
       reflect the overall quality of the website.

       5.  Mathboxes must be independent from one another (checked by "verify
       markup *").  If you need a theorem from another mathbox, typically it is
       moved to the main part of set.mm.  New users should consult with more
       experienced users before doing this.  (Contributed by NM, 20-Feb-2007.)
       (New usage is discouraged.) $)
    mathbox $p |- ph $=
      (  ) B $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Stefan Allan
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  ${
    foo3.1 $e |- ph $.
    $( A theorem about the universal class.  (Contributed by Stefan Allan,
       9-Dec-2008.) $)
    foo3 $p |- _V = { x | ph } $=
      ( cvv weq cab df-v equid 2th abbii eqtri ) DBBEZBFABFBGLABLABHCIJK $.
  $}

  $( A partial converse to ~ 19.9t .  (Contributed by Stefan Allan,
     21-Dec-2008.)  (Revised by Mario Carneiro, 11-Dec-2016.) $)
  xfree $p |- ( A. x ( ph -> A. x ph ) <-> A. x ( E. x ph -> ph ) ) $=
    ( wal wi wnf wex nf5 nf6 bitr3i ) AABCDBCABEABFADBCABGABHI $.

  $( A partial converse to ~ 19.9t .  (Contributed by Stefan Allan,
     21-Dec-2008.) $)
  xfree2 $p |- ( A. x ( ph -> A. x ph ) <-> A. x ( -. ph -> A. x -. ph ) ) $=
    ( wal wi wex wn xfree eximal albii bitri ) AABCDBCABEADZBCAFZLBCDZBCABGKMBA
    ABHIJ $.

  $( A proof readability experiment for ~ addltmul .  (Contributed by Stefan
     Allan, 30-Oct-2010.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  addltmulALT $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 2 < A /\ 2 < B ) )
              -> ( A + B ) < ( A x. B ) ) $=
    ( cr wcel wa c2 clt wbr c1 cmin co caddc cmul a1i syl3anc ax-1cn syl adantr
    wb wceq simpr 2re simpl 1re ltsub1 df-2 eqcomi subaddrii breq1i bitrd mpbid
    2cn anim12i an4s wi peano2rem anim1i mulgt1 ex cc recn mulsub breq2d biimpd
    jca mulid2i eqcom biimpi mp1i oveq2d mulid1 oveq12d readdcl remulcl syl2anc
    adantl ltaddsub2 ltadd1 bicomd sylbird 3syld mpd ) ACDZBCDZEZFAGHZFBGHZEZEZ
    IAIJKZGHZIBIJKZGHZEZABLKZABMKZGHZWCWFWDWGWNWCWFEZWKWDWGEZWMWRWFWKWCWFUAWRWF
    FIJKZWJGHZWKWRFCDZWCICDZWFXASXBWRUBNWCWFUCXCWRUDNFAIUEOXAWKSWRWTIWJGFIIULPP
    FIILKUFUGUHZUINUJUKWSWGWMWDWGUAWSWGWTWLGHZWMWSXBWDXCWGXESXBWSUBNWDWGUCXCWSU
    DNFBIUEOXEWMSWSWTIWLGXDUINUJUKUMUNWIWNIWJWLMKZGHZIWPIIMKZLKZAIMKZBIMKZLKZJK
    ZGHZWQWEWNXGUOWHWEWNXGWEWNEWJCDZWLCDZEZWNEXGWEXQWNWCXOWDXPAUPBUPUMUQWJWLURQ
    USRWEXGXNUOWHWEXGXNWEXFXMIGWEAUTDZIUTDZEZBUTDZXSEZEXFXMTWCXTWDYBWCXRXSAVAZX
    SWCPNVEWDYAXSBVAZXSWDPNVEUMAIBIVBQVCVDRWEXNWQUOWHWEXNIWPILKZWOJKZGHZWQWEYFX
    MIGWEYEXIWOXLJWEIXHWPLXHITZIXHTZWEIPVFYHYIXHIVGVHVIVJWEAXJBXKLWCAXJTZWDWCXR
    YJYCXRXJATZYJAVKYKYJXJAVGVHQQRWDBXKTZWCWDXKBTZYLWDYAYMYDBVKQYMYLXKBVGVHQVPV
    LVLVCWEYGWOILKYEGHZWQWEWOCDZXCYECDZYNYGSABVMZXCWEUDNZWEWPCDZXCYPABVNZYRWPIV
    MVOWOIYEVQOWEYNWQWEWQYNWEYOYSXCWQYNSYQYTYRWOWPIVROVSVDVTVTRWAWB $.

$( (End of Stefan Allan's mathbox.) $)


$( Begin $[ set-mbox-ta.mm $] $)
$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Thierry Arnoux
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  $( Declare additional constants to be used as STS context-specific.
     These constants are used only in the STS MathML typesetting file,
     set-mathml.mmts, to describe alternate ways for expressions to be
     displayed. $)

  $( Constant used for displaying numbers only. MathML <mn> $)
  $c class-n $.

  $( Constant used for displaying formulas "on their own rows", where no
     brackets are necessary, like for example under/over a fraction bar, or
     below a square root radical. $)
  $c class-o $.

  $( Warn the parser about which particular formula prefixes are ambiguous.
     The set.mm grammar itself is not ambiguous, but some strings of symbols
     might be prefixes for entirely different expressions. For example,
     ` ( x e. A ` is a prefix for both the maps-to ` ( x e. A |-> B ) = C `
     and the expression ( x e. A /\ x e. B ) ` .
     Mario mentionned the name "garden path sentences" for those.

     LALR parsers would normally detect them as shift-reduce or
     reduce-reduce conflicts, but the current implementation of metamath-knife
     cannot, and therefore requires those hints. $)
  $( $j garden_path ( x   =>   ( ph ;
        garden_path ( A   =>   ( ph ;
        type_conversions;
        garden_path ( x e. A   =>   ( ph ;
        garden_path { <.   =>   { A ;
        garden_path { <. <.   =>   { A ;
  $)

$( Skip $[ set-main.mm $] $)


$( Begin $[ set-mbox-ta-basics.mm $] $)
$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Propositional Calculus - misc additions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    bian1d.1 $e |- ( ph -> ( ps <-> ( ch /\ th ) ) ) $.
    $( Adding a superfluous conjunct in a biconditional.  (Contributed by
       Thierry Arnoux, 26-Feb-2017.) $)
    bian1d $p |- ( ph -> ( ( ch /\ ps ) <-> ( ch /\ th ) ) ) $=
      ( wa biimpd adantld wi simpl a1i biimprd jcad impbid ) ACBFCDFZABOCABOEGH
      AOCBOCIACDJKABOELMN $.
  $}

  $( Distributive law for disjunction.  (Contributed by Thierry Arnoux,
     3-Jul-2017.) $)
  or3di $p |- ( ( ph \/ ( ps /\ ch /\ ta ) ) <->
                          ( ( ph \/ ps ) /\ ( ph \/ ch ) /\ ( ph \/ ta ) ) ) $=
    ( w3a wo wa df-3an orbi2i ordi anbi1i 3bitri bitr4i ) ABCDEZFZABFZACFZGZADF
    ZGZPQSEOABCGZDGZFAUAFZSGTNUBABCDHIAUADJUCRSABCJKLPQSHM $.

  $( Distributive law for disjunction.  (Contributed by Thierry Arnoux,
     3-Jul-2017.) $)
  or3dir $p |- ( ( ( ph /\ ps /\ ch ) \/ ta ) <->
              ( ( ph \/ ta ) /\ ( ps \/ ta ) /\ ( ch \/ ta ) ) ) $=
    ( w3a wo or3di orcom 3anbi123i 3bitr3i ) DABCEZFDAFZDBFZDCFZEKDFADFZBDFZCDF
    ZEDABCGDKHLOMPNQDAHDBHDCHIJ $.

  ${
    3o1cs.1 $e |- ( ( ph \/ ps \/ ch ) -> th ) $.
    $( Deduction eliminating disjunct.  (Contributed by Thierry Arnoux,
       19-Dec-2016.) $)
    3o1cs $p |- ( ph -> th ) $=
      ( wo w3o df-3or sylbir orcs ) ABDABFZCDKCFABCGDABCHEIJJ $.

    $( Deduction eliminating disjunct.  (Contributed by Thierry Arnoux,
       19-Dec-2016.) $)
    3o2cs $p |- ( ps -> th ) $=
      ( wo w3o df-3or sylbir orcs olcs ) ABDABFZCDLCFABCGDABCHEIJK $.

    $( Deduction eliminating disjunct.  (Contributed by Thierry Arnoux,
       19-Dec-2016.) $)
    3o3cs $p |- ( ch -> th ) $=
      ( wo w3o df-3or sylbir olcs ) ABFZCDKCFABCGDABCHEIJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Predicate Calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Predicate Calculus - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y A $.  $d x y B $.  $d x y ph $.
    spc2ed.x $e |- F/ x ch $.
    spc2ed.y $e |- F/ y ch $.
    spc2ed.1 $e |- ( ( ph /\ ( x = A /\ y = B ) ) -> ( ps <-> ch ) ) $.
    $( Existential specialization with 2 quantifiers, using implicit
       substitution.  (Contributed by Thierry Arnoux, 23-Aug-2017.) $)
    spc2ed $p |- ( ( ph /\ ( A e. V /\ B e. W ) ) -> ( ch -> E. x E. y ps ) )
      $=
      ( wcel wa cv wceq wex elisset nfv nfan wi eeanv sylibr anass ancom anbi1i
      anim12i bitr3i biimparc sylbir ex eximd impancom sylan2 ) FHMZGIMZNZADOFP
      ZEOGPZNZEQZDQZCBEQZDQZUAUQURDQZUSEQZNVBUOVEUPVFDFHREGIRUGURUSDEUBUCACVBVD
      ACNZVAVCDACDADSJTVGUTBEACEAESKTVGUTBVGUTNZCAUTNZNZBVJCANZUTNVHCAUTUDVKVGU
      TCAUEUFUHVIBCLUIUJUKULULUMUN $.

    $( Specialization with 2 quantifiers, using implicit substitution.
       (Contributed by Thierry Arnoux, 23-Aug-2017.) $)
    spc2d $p |- ( ( ph /\ ( A e. V /\ B e. W ) ) -> ( A. x A. y ps -> ch ) ) $=
      ( wal wn wex wcel wa nfn cv wceq 2nalexn con1bii notbid spc2ed syl5bir
      con1d ) BEMDMZBNZEODOZNAFHPGIPQQZCUGUIBDEUAUBUJCUIAUHCNDEFGHICDJRCEKRADSF
      TESGTQQBCLUCUDUFUE $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d V x $.  $d W x y $.  $d ch x y $.
    $d ph x y $.
    vtocl2d.a $e |- ( ph -> A e. V ) $.
    vtocl2d.b $e |- ( ph -> B e. W ) $.
    vtocl2d.1 $e |- ( ( x = A /\ y = B ) -> ( ps <-> ch ) ) $.
    vtocl2d.3 $e |- ( ph -> ps ) $.
    $( Implicit substitution of two classes for two setvar variables.
       (Contributed by Thierry Arnoux, 25-Aug-2020.) $)
    vtocl2d $p |- ( ph -> ch ) $=
      ( wcel wi wsbc nfcv nfv cv wceq nfsbc1v nfim sbceq1a wb sbc2iegf sylan9bb
      imbi2d syl2anc pm5.74da vtocl2gf pm2.43i ) ACAGINZFHNZACOZKJABOABEGPZOUNE
      DGFIHEGQDGQDFQAUOEAERBEGUAUBUNDRESGTBUOABEGUCUGDSFTZAUOCUPUOUODFPZACUODFU
      CAUMULUQCUDJKBCDEFGHICDRCERULDRLUEUHUFUIMUJUHUK $.
  $}

  ${
    eqri.1 $e |- F/_ x A $.
    eqri.2 $e |- F/_ x B $.
    eqri.3 $e |- ( x e. A <-> x e. B ) $.
    $( Infer equality of classes from equivalence of membership.  (Contributed
       by Thierry Arnoux, 7-Oct-2017.) $)
    eqri $p |- A = B $=
      ( wceq wtru nftru cv wcel wb a1i eqrd trud ) BCGHABCAIDEAJZBKPCKLHFMNO $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Restricted quantification - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y $.
    ralcom4f.1 $e |- F/_ y A $.
    $( Commutation of restricted and unrestricted universal quantifiers.
       (Contributed by NM, 26-Mar-2004.)  (Proof shortened by Andrew Salmon,
       8-Jun-2011.)  (Revised by Thierry Arnoux, 8-Mar-2017.) $)
    ralcom4f $p |- ( A. x e. A A. y ph <-> A. y A. x e. A ph ) $=
      ( cvv wral wal nfcv ralcomf ralv ralbii 3bitr3i ) ACFGZBDGABDGZCFGACHZBDG
      OCHABCDFEBFIJNPBDACKLOCKM $.

    $( Commutation of restricted and unrestricted existential quantifiers.
       (Contributed by NM, 12-Apr-2004.)  (Proof shortened by Andrew Salmon,
       8-Jun-2011.)  (Revised by Thierry Arnoux, 8-Mar-2017.) $)
    rexcom4f $p |- ( E. x e. A E. y ph <-> E. y E. x e. A ph ) $=
      ( cvv wrex wex nfcv rexcomf rexv rexbii 3bitr3i ) ACFGZBDGABDGZCFGACHZBDG
      OCHABCDFEBFIJNPBDACKLOCKM $.
  $}

  ${
    19.9d2rf.0 $e |- F/ y ph $.
    19.9d2rf.1 $e |- ( ph -> F/ x ps ) $.
    19.9d2rf.2 $e |- ( ph -> F/ y ps ) $.
    19.9d2rf.3 $e |- ( ph -> E. x e. A E. y e. B ps ) $.
    $( A deduction version of one direction of ~ 19.9 with two variables.
       (Contributed by Thierry Arnoux, 20-Mar-2017.) $)
    19.9d2rf $p |- ( ph -> ps ) $=
      ( wex wrex rexex eximi 3syl nfexd 19.9d mpd ) ABDKZBASCKZSABDFLZCELUACKTJ
      UACEMUASCBDFMNOSACABCDGHPQRBADIQR $.
  $}

  ${
    $d y ph $.
    19.9d2r.1 $e |- ( ph -> F/ x ps ) $.
    19.9d2r.2 $e |- ( ph -> F/ y ps ) $.
    19.9d2r.3 $e |- ( ph -> E. x e. A E. y e. B ps ) $.
    $( A deduction version of one direction of ~ 19.9 with two variables.
       (Contributed by Thierry Arnoux, 30-Jan-2017.) $)
    19.9d2r $p |- ( ph -> ps ) $=
      ( nfv 19.9d2rf ) ABCDEFADJGHIK $.
  $}

  ${
    $d A y $.  $d ph x y $.  $d ch x y $.
    r19.29ffa.3 $e |- ( ( ( ( ph /\ x e. A ) /\ y e. B ) /\ ps ) -> ch ) $.
    $( A commonly used pattern based on ~ r19.29 , version with two restricted
       quantifiers.  (Contributed by Thierry Arnoux, 26-Nov-2017.) $)
    r19.29ffa $p |- ( ( ph /\ E. x e. A E. y e. B ps ) -> ch ) $=
      ( wrex wa wi wral cv wcel ex ralrimiva adantr simpr r19.29d2r rexlimivw
      pm3.35 ancoms syl ) ABEGIDFIZJZBCKZBJZEGIZDFICUEUFBDEFGAUFEGLZDFLUDAUIDFA
      DMFNJZUFEGUJEMGNJBCHOPPQAUDRSUHCDFUGCEGBUFCBCUAUBTTUC $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Substitution (without distinct variables) - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    sbceqbidf.1 $e |- F/ x ph $.
    sbceqbidf.2 $e |- ( ph -> A = B ) $.
    sbceqbidf.3 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Equality theorem for class substitution.  (Contributed by Thierry
       Arnoux, 4-Sep-2018.) $)
    sbceqbidf $p |- ( ph -> ( [. A / x ]. ps <-> [. B / x ]. ch ) ) $=
      ( cab wcel wsbc abbid eleq12d df-sbc 3bitr4g ) AEBDJZKFCDJZKBDELCDFLAEFQR
      HABCDGIMNBDEOCDFOP $.
  $}

  ${
    $d a w $.  $d a E $.  $d a W $.  $d a ph $.
    sbcies.a $e |- A = ( E ` W ) $.
    sbcies.1 $e |- ( a = A -> ( ph <-> ps ) ) $.
    $( A special version of class substitution commonly used for structures.
       (Contributed by Thierry Arnoux, 14-Mar-2019.) $)
    sbcies $p |- ( w = W -> ( [. ( E ` w ) / a ]. ps <-> ph ) ) $=
      ( cv wceq cfv cvv fvexd wa wb simpr fveq2 syl6reqr adantr eqtr4d bicomd
      syl sbcied ) CJZFKZBAGUEELZMUFUEENUFGJZUGKZOZABUJUHDKABPUJUHUGDUFUIQUFDUG
      KUIUFUGFELDUEFERHSTUAIUCUBUD $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Existential "at most one" - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y A $.
    $( "At most one" element in a set.  (Contributed by Thierry Arnoux,
       26-Jul-2018.) $)
    moel $p |- ( E* x x e. A <-> A. x e. A A. y e. A x = y ) $=
      ( cv wcel weq wi wal wral wmo ralcom4 df-ral ralbii wa alcom eleq1 impexp
      mo4 albii bitr4i 3bitr4i 3bitr4ri ) BDZCEZABFZGZBHZACIUFACIZBHZUEBCIZACIA
      DZCEZAJZUFABCKUJUGACUEBCLMULUDNUEGZBHAHUNAHZBHUMUIUNABOULUDABUKUCCPRUHUOB
      UHULUFGZAHUOUFACLUNUPAULUDUEQSTSUAUB $.
  $}

  ${
    $d i j x $.
    mo5f.1 $e |- F/ i ph $.
    mo5f.2 $e |- F/ j ph $.
    $( Alternate definition of "at most one."  (Contributed by Thierry Arnoux,
       1-Mar-2017.) $)
    mo5f $p |- ( E* x ph <->
                   A. i A. j ( ( [ i / x ] ph /\ [ j / x ] ph ) -> i = j ) ) $=
      ( wmo wsb wa weq wi wal mo3 nfsb nfan nfv nfim nfal sb8 sbim nfs1v bicomi
      sban sbf anbi2i bitr4i equsb3 imbi12i bitri sbalv albii 3bitri ) ABGAABDH
      ZIZBDJZKZDLZBLUQBCHZCLABCHZUMIZCDJZKZDLZCLABDFMUQBCUPCDUNUOCAUMCEABDCENOU
      OCPQRSURVCCUPVBBCDUPBCHUNBCHZUOBCHZKVBUNUOBCTVDUTVEVAVDUSUMBCHZIUTAUMBCUC
      UMVFUSVFUMUMBCABDUAUDUBUEUFCBDUGUHUIUJUKUL $.
  $}

  ${
    $d x y $.
    nmo.1 $e |- F/ y ph $.
    $( Negation of "at most one".  (Contributed by Thierry Arnoux,
       26-Feb-2017.) $)
    nmo $p |- ( -. E* x ph <-> A. y E. x ( ph /\ x =/= y ) ) $=
      ( wmo wn weq wi wal wex cv wne wa mo2 notbii alnex pm4.61 biid necon3bbii
      exnal anbi2i bitri exbii bitr3i albii 3bitr2i ) ABEZFABCGZHZBIZCJZFUJFZCI
      ABKZCKZLZMZBJZCIUGUKABCDNOUJCPULUQCULUIFZBJUQUIBTURUPBURAUHFZMUPAUHQUSUOA
      UHUMUNUHRSUAUBUCUDUEUF $.
  $}

  ${
    $d x ph $.
    moimd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( "At most one" is preserved through implication (notice wff reversal).
       (Contributed by Thierry Arnoux, 25-Feb-2017.) $)
    moimd $p |- ( ph -> ( E* x ch -> E* x ps ) ) $=
      ( wi wal wmo alrimiv moim syl ) ABCFZDGCDHBDHFALDEIBCDJK $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Existential uniqueness - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y A $.  $d x B $.
    $( A condition allowing swap of uniqueness and existential quantifiers.
       (Contributed by Thierry Arnoux, 7-Apr-2017.) $)
    2reuswap2 $p |- ( A. x e. A E* y ( y e. B /\ ph ) ->
                   ( E! x e. A E. y e. B ph -> E! y e. B E. x e. A ph ) ) $=
      ( cv wcel wa wmo wal wrex wreu wex weu df-reu r19.42v df-rex bitr3i bitri
      wi wral df-ral moanimv albii bitr4i 2euswap exbii eubii 3imtr4g sylbi
      an12 ) CFEGZAHZCIZBDUAZBFDGZUMHZCIZBJZACEKZBDLZABDKZCELZTUOUPUNTZBJUSUNBD
      UBURVDBUPUMCUCUDUEUSUQCMZBNZUQBMZCNZVAVCUQBCUFVAUPUTHZBNVFUTBDOVIVEBVIULU
      PAHZHZCMZVEVIVJCEKVLUPACEPVJCEQRVKUQCULUPAUKUGSUHSVCULVBHZCNVHVBCEOVMVGCV
      MUMBDKVGULABDPUMBDQRUHSUIUJ $.
  $}

  ${
    $d x y ph $.  $d x ps $.  $d x A $.  $d x y B $.  $d x y C $.
    reuxfr3d.1 $e |- ( ( ph /\ y e. C ) -> A e. B ) $.
    reuxfr3d.2 $e |- ( ( ph /\ x e. B ) -> E* y e. C x = A ) $.
    $( Transfer existential uniqueness from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  Cf. ~ reuxfr2d .
       (Contributed by Thierry Arnoux, 7-Apr-2017.)  (Revised by Thierry
       Arnoux, 8-Oct-2017.) $)
    reuxfr3d $p |- ( ph
        -> ( E! x e. B E. y e. C ( x = A /\ ps ) <-> E! y e. C ps ) ) $=
      ( cv wceq wa wrex wreu wrmo wi wcel syl ancom wmo wral rmoan rmobii sylib
      ralrimiva 2reuswap 2reuswap2 moeq moani an12 bitri mobii mpbi a1i impbid1
      mprg wb biidd ceqsrexv reubidva bitrd ) ACJZEKZBLZDGMCFNZVDCFMZDGNZBDGNAV
      EVGAVDDGOZCFUAVEVGPAVHCFAVBFQZLZBVCLZDGOZVHVJVCDGOVLIVCBDGUBRVKVDDGBVCSUC
      UDUEVDCDFGUFRVIVDLZCTZVGVEPDGVDDCGFUGVNDJGQZVIBLZVCLZCTVNVCVPCCEUHUIVQVMC
      VQVCVPLVMVPVCSVCVIBUJUKULUMUNUPUOAVFBDGAVOLEFQVFBUQHBBCEFVCBURUSRUTVA $.
  $}

  ${
    $d x y ph $.  $d y ps $.  $d x ch $.  $d x A $.  $d x y B $.  $d x y C $.
    reuxfr4d.1 $e |- ( ( ph /\ y e. C ) -> A e. B ) $.
    reuxfr4d.2 $e |- ( ( ph /\ x e. B ) -> E! y e. C x = A ) $.
    reuxfr4d.3 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    $( Transfer existential uniqueness from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  Cf. ~ reuxfrd .
       (Contributed by Thierry Arnoux, 7-Apr-2017.) $)
    reuxfr4d $p |- ( ph -> ( E! x e. B ps <-> E! y e. C ch ) ) $=
      ( wreu cv wceq wa wrex wcel reurex syl bitrd biantrurd wb r19.41v rexbidv
      pm5.32da syl5bbr adantr reubidva wrmo reurmo reuxfr3d ) ABDGLDMZFNZCOZEHP
      ZDGLCEHLABUODGAULGQZOZBUMEHPZBOZUOUQURBUQUMEHLZURJUMEHRSUAAUSUOUBUPUSUMBO
      ZEHPAUOUMBEHUCAVAUNEHAUMBCKUEUDUFUGTUHACDEFGHIUQUTUMEHUIJUMEHUJSUKT $.
  $}

$(
  @{
    @d x y ph @.  @d x ps @.  @d x A @.  @d x B @.  @d x y C @.
    reuxfr3df.0 @e |- F/_ y B @.
    reuxfr3df.1 @e |- ( ( ph /\ y e. C ) -> A e. B ) @.
    reuxfr3df.2 @e |- ( ( ph /\ x e. B ) -> E* y e. C x = A ) @.
    @( Transfer existential uniqueness from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  Cf. ~ reuxfr2d
       (Contributed by Thierry Arnoux, 7-Apr-2017.)  (Revised by Thierry
       Arnoux, 8-Oct-2017.)  (Revised by Thierry Arnoux, 30-Mar-2018.) @)
    reuxfr3df @p |- ( ph
        -> ( E! x e. B E. y e. C ( x = A /\ ps ) <-> E! y e. C ps ) ) @=
      ? @.
  @}
$)
  ${
    $d b x y $.  $d y A $.  $d b B $.  $d x b F $.  $d x b ph $.
    rexunirn.1 $e |- F = ( x e. A |-> B ) $.
    rexunirn.2 $e |- ( x e. A -> B e. V ) $.
    $( Restricted existential quantification over the union of the range of a
       function.  Cf. ~ rexrn and ~ eluni2 .  (Contributed by Thierry Arnoux,
       19-Sep-2017.) $)
    rexunirn $p |- ( E. x e. A E. y e. B ph -> E. y e. U. ran F ph ) $=
      ( vb wrex cv wcel wa wex crn cuni df-rex bitr4i exbii 19.42v anbi2i mpdan
      elrnmpt1 wceq eleq2 anbi1d rspcev sylan r19.41v sylib eximi eluni2 anbi1i
      bitri sylibr exlimiv sylbi ) ACEKZBDKZBLDMZCLZEMZANZNZCOZBOZACFPZQZKZUTVA
      USNZBOVGUSBDRVFVKBVFVAVDCOZNVKVAVDCUAUSVLVAACERUBSTSVFVJBVFVBJLZMZJVHKZAN
      ZCOZVJVEVPCVEVNANZJVHKZVPVAEVHMZVDVSVAEGMVTIBDEFGHUDUCVRVDJEVHVMEUEVNVCAV
      MEVBUFUGUHUIVNAJVHUJUKULVJVBVIMZANZCOVQACVIRWBVPCWAVOAJVBVHUMUNTUOUPUQUR
      $.
  $}

$(
  @{
    @( Restricted existential quantification for ordered pair abstract builders
       moving one condition outside of the abstract builder. @)
    reuopan @p |- ( E! p e. { <. x , y >. | ( ( x e. A /\ y e. B ) /\ ph ) } ps
      <-> E! p e. { <. x , y >. | ( x e. A /\ y e. B ) } ( ph /\ ps ) ) @=
      ? @.

    @( Restricted existential quantification for ordered pair abstract builders
       @)
    reuopab @p |- ( E! p e. { <. x , y >. | ( x e. A /\ y e. B ) } ph
      <-> ( E! x e. A E! y e. B ( p = <. x , y >. /\ ph )
         /\ A. x e. A E* y e. B ( p = <. x , y >. /\ ph ) ) ) @=
      ? @.
  @}
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Restricted "at most one" - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x A $.  $d x y B $.  $d x y C $.  $d x y ph $.  $d y ps $.  $d x ch $.
    rmoxfrd.1 $e |- ( ( ph /\ y e. C ) -> A e. B ) $.
    rmoxfrd.2 $e |- ( ( ph /\ x e. B ) -> E! y e. C x = A ) $.
    rmoxfrd.3 $e |- ( ( ph /\ x = A ) -> ( ps <-> ch ) ) $.
    $( Transfer "at most one" restricted quantification from a variable ` x `
       to another variable ` y ` contained in expression ` A ` .  (Contributed
       by Thierry Arnoux, 7-Apr-2017.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    rmoxfrdOLD $p |- ( ph ->
                       ( E* x ( x e. B /\ ps ) <-> E* y ( y e. C /\ ch ) ) ) $=
      ( cv wcel wa wex weu wi wmo wrex wreu wceq reurex rexxfrd df-rex reuxfr4d
      syl 3bitr3g df-reu imbi12d df-mo 3bitr4g ) ADLZGMZBNZDOZUNDPZQELHMCNZEOZU
      QEPZQUNDRUQERAUOURUPUSABDGSCEHSUOURABCDEFGHIAUMNULFUAZEHTUTEHSJUTEHUBUFKU
      CBDGUDCEHUDUGABDGTCEHTUPUSABCDEFGHIJKUEBDGUHCEHUHUGUIUNDUJUQEUJUK $.

    $( Transfer "at most one" restricted quantification from a variable ` x `
       to another variable ` y ` contained in expression ` A ` .  (Contributed
       by Thierry Arnoux, 7-Apr-2017.)  (Revised by Thierry Arnoux,
       8-Oct-2017.) $)
    rmoxfrd $p |- ( ph -> ( E* x e. B ps <-> E* y e. C ch ) ) $=
      ( cv wcel wa wmo wrmo wex weu wrex wreu wi wceq reurex syl rexxfrd df-rex
      3bitr3g reuxfr4d df-reu imbi12d df-mo 3bitr4g df-rmo ) ADLZGMZBNZDOZELHMC
      NZEOZBDGPCEHPAUPDQZUPDRZUAUREQZURERZUAUQUSAUTVBVAVCABDGSCEHSUTVBABCDEFGHI
      AUONUNFUBZEHTVDEHSJVDEHUCUDKUEBDGUFCEHUFUGABDGTCEHTVAVCABCDEFGHIJKUHBDGUI
      CEHUIUGUJUPDUKUREUKULBDGUMCEHUMUL $.
  $}

  ${
    ssrmo.1 $e |- F/_ x A $.
    ssrmo.2 $e |- F/_ x B $.
    $( "At most one" existential quantification restricted to a subclass.
       (Contributed by Thierry Arnoux, 8-Oct-2017.) $)
    ssrmo $p |- ( A C_ B -> ( E* x e. B ph -> E* x e. A ph ) ) $=
      ( wss cv wcel wa wmo wrmo wi wal dfss2f biimpi pm3.45 alimi moim df-rmo
      3syl 3imtr4g ) CDGZBHZDIZAJZBKZUDCIZAJZBKZABDLABCLUCUHUEMZBNZUIUFMZBNUGUJ
      MUCULBCDEFOPUKUMBUHUEAQRUIUFBSUAABDTABCTUB $.
  $}

  ${
    $d x y $.
    rmo3f.1 $e |- F/_ x A $.
    rmo3f.2 $e |- F/_ y A $.
    rmo3f.3 $e |- F/ y ph $.
    $( Restricted "at most one" using explicit substitution.  (Contributed by
       NM, 4-Nov-2012.)  (Revised by NM, 16-Jun-2017.)  (Revised by Thierry
       Arnoux, 8-Oct-2017.) $)
    rmo3f $p |- ( E* x e. A ph <->
               A. x e. A A. y e. A ( ( ph /\ [ y / x ] ph ) -> x = y ) ) $=
      ( cv wcel wa wsb wi wral wal anbi1i bitri 3bitri impexp albii df-ral wrmo
      wmo weq df-rmo sban clelsb3f anbi2i an4 ancom imbi1i nfcri r19.21 3bitr2i
      nfan mo3 3bitr4i ) ABDUABHDIZAJZBUBZAABCKZJZBCUCZLZCDMZBDMZABDUDURURBCKZJ
      ZVBLZCNZBNUQVDLZBNUSVEVIVJBVICHDIZUQVCLZLZCNVLCDMVJVHVMCVHVKUQJZVAJZVBLVN
      VCLVMVGVOVBVGURVKUTJZJUQVKJZVAJVOVFVPURVFUQBCKZUTJVPUQABCUEVRVKUTCBDEUFOP
      UGUQAVKUTUHVQVNVAUQVKUIOQUJVNVAVBRVKUQVCRQSVLCDTUQVCCDCBDFUKZULUMSURBCUQA
      CVSGUNUOVDBDTUPP $.
  $}

  ${
    $d x y $.  $d y ph $.
    rmo4f.1 $e |- F/_ x A $.
    rmo4f.2 $e |- F/_ y A $.
    rmo4f.3 $e |- F/ x ps $.
    rmo4f.4 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Restricted "at most one" using implicit substitution.  (Contributed by
       NM, 24-Oct-2006.)  (Revised by Thierry Arnoux, 11-Oct-2016.)  (Revised
       by Thierry Arnoux, 8-Mar-2017.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    rmo4fOLD $p |- ( E* x ( x e. A /\ ph ) <->
               A. x e. A A. y e. A ( ( ph /\ ps ) -> x = y ) ) $=
      ( cv wcel wa wi wal wral bitri imbi1i impexp albii df-ral wceq wmo anbi1i
      an4 ancom 3bitri nfcv nfel r19.21 3bitr2i wsb nfv nfan eleq1 anbi12d sbie
      mo3 anbi2i 2albii 3bitr4i ) CJZEKZALZDJZEKZBLZLZVAVDUAZMZDNZCNZVBABLZVHMZ
      DEOZMZCNVCCUBZVNCEOVJVOCVJVEVBVMMZMZDNVQDEOVOVIVRDVIVEVBLZVLLZVHMVSVMMVRV
      GVTVHVGVBVELZVLLVTVBAVEBUDWAVSVLVBVEUEUCPQVSVLVHRVEVBVMRUFSVQDETVBVMDEDVA
      EDVAUGGUHZUIUJSVPVCVCCDUKZLZVHMZDNCNVKVCCDVBADWBADULUMUQWEVICDWDVGVHWCVFV
      CVCVFCDVEBCCVDECVDUGFUHHUMVHVBVEABVAVDEUNIUOUPURQUSPVNCETUT $.

    $( Restricted "at most one" using implicit substitution.  (Contributed by
       NM, 24-Oct-2006.)  (Revised by Thierry Arnoux, 11-Oct-2016.)  (Revised
       by Thierry Arnoux, 8-Mar-2017.)  (Revised by Thierry Arnoux,
       8-Oct-2017.) $)
    rmo4f $p |- ( E* x e. A ph <->
               A. x e. A A. y e. A ( ( ph /\ ps ) -> x = y ) ) $=
      ( wrmo wsb wa weq wi wral nfv rmo3f sbie anbi2i imbi1i 2ralbii bitri ) AC
      EJAACDKZLZCDMZNZDEOCEOABLZUENZDEOCEOACDEFGADPQUFUHCDEEUDUGUEUCBAABCDHIRST
      UAUB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  General Set Theory
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Class abstractions (a.k.a. class builders)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Abstract builder restricted to another restricted abstract builder.
     (Contributed by Thierry Arnoux, 30-Aug-2017.) $)
  rabrab $p |- { x e. { x e. A | ph } | ps } = { x e. A | ( ph /\ ps ) } $=
    ( cv crab wcel wa cab rabid anbi1i anass bitri abbii df-rab 3eqtr4i ) CEZAC
    DFZGZBHZCIQDGZABHZHZCIBCRFUBCDFTUCCTUAAHZBHUCSUDBACDJKUAABLMNBCROUBCDOP $.

  $( Difference of two restricted class abstractions.  Compare with ~ difrab .
     (Contributed by Thierry Arnoux, 3-Jan-2022.) $)
  difrab2 $p |- ( { x e. A | ph } \ { x e. B | ph } )
    = { x e. ( A \ B ) | ph } $=
    ( crab cdif nfrab1 nfdif cv wcel wa wn eldif anbi1i andi pm3.24 anass rabid
    wo bitri biorfi ancom 3bitr2i anbi2i 3bitr4i bitr4i notbii anbi12i 3bitr4ri
    ianor eqri ) BABCEZABDEZFZABCDFZEZBULUMABCGABDGHABUOGBIZUOJZAKZUQCJZAKZUQDJ
    ZLZALZSZKZUQUPJUQUNJZUSUTVCKZAKZVFURVHAUQCDMNUTAVEKZKUTVCAKZKVFVIVJVKUTVJAV
    CKZAVDKZSVLVKAVCVDOVMVLAPUAAVCUBUCUDUTAVEQUTVCAQUEUFABUORVGUQULJZUQUMJZLZKV
    FUQULUMMVNVAVPVEABCRVPVBAKZLVEVOVQABDRUGVBAUJTUHTUIUK $.

  ${
    rabexgfGS.1 $e |- F/_ x A $.
    $( Separation Scheme in terms of a restricted class abstraction.  To be
       removed in profit of Glauco's equivalent version.  (Contributed by
       Thierry Arnoux, 11-May-2017.) $)
    rabexgfGS $p |- ( A e. V -> { x e. A | ph } e. _V ) $=
      ( wcel crab wss cvv cv wi nfrab1 dfss2f rabid simplbi mpgbir elex sylancr
      ssexg ) CDFABCGZCHZCIFTIFUABJZTFZUBCFZKBBTCABCLEMUCUDAABCNOPCDQTCISR $.
  $}

  ${
    $d x A $.  $d x B $.
    rabsnel.1 $e |- B e. _V $.
    $( Truth implied by equality of a restricted class abstraction and a
       singleton.  (Contributed by Thierry Arnoux, 15-Sep-2018.) $)
    rabsnel $p |- ( { x e. A | ph } = { B } -> B e. A ) $=
      ( crab csn wceq wcel snid eleq2 mpbiri elrabi syl ) ABCFZDGZHZDOIZDCIQRDP
      IDEJOPDKLABDCMN $.
  $}

  ${
    $d B x $.  $d ph x $.
    rabeqsnd.0 $e |- ( x = B -> ( ps <-> ch ) ) $.
    rabeqsnd.1 $e |- ( ph -> B e. A ) $.
    rabeqsnd.2 $e |- ( ph -> ch ) $.
    rabeqsnd.3 $e |- ( ( ( ph /\ x e. A ) /\ ps ) -> x = B ) $.
    $( Conditions for a restricted class abstraction to be a singleton, in
       deduction form.  (Contributed by Thierry Arnoux, 2-Dec-2021.) $)
    rabeqsnd $p |- ( ph -> { x e. A | ps } = { B } ) $=
      ( cv wcel wa wceq wb wal wi alrimiv jca sylibr crab csn a1d eleq1 anbi12d
      expl pm5.74i albii albiim rabeqsn ) ADKZELZBMZUKFNZODPZBDEUAFUBNAUMUNQZDP
      ZUNUMQZDPZMUOAUQUSAUPDAULBUNJUFRAUNFELZCMZQZDPUSAVBDAVAUNAUTCHISUCRURVBDU
      NUMVAUNULUTBCUKFEUDGUEUGUHTSUMUNDUITBDEFUJT $.
  $}

  ${
    $d A g x y z $.  $d B g x y z $.  $d F g x y z $.  $d V g y z $.
    $( From a surjective function, *choose* a subset of the domain, such that
       the restricted function is bijective.  (Contributed by Thierry Arnoux,
       27-Jan-2020.) $)
    foresf1o $p |- ( ( A e. V /\ F : A -onto-> B )
      -> E. x e. ~P A ( F |` x ) : x -1-1-onto-> B ) $=
      ( vg vy vz wcel wa cv wf cfv wrex wceq fveq2d nfv nfan syl2anc eqtrd ccnv
      wfo csn cima wral cres wf1o cpw cvv wex fornex imp foelrn wi wfn fniniseg
      fofn eqcom biimpar anassrs sylan2br sylanl1 reximdva adantr mpd ralrimiva
      ex adantll eleq1 ac6sg sylc crn wss frn ad2antrl vex rnex elpw sylibr fof
      ad2antlr fssresd dffn3 sylib fvres adantl nfra1 ad5antlr simplrr ad2antrr
      simpr simplr rspa simplbda eqtr3d fvelrnb biimpa sylan r19.29af ffvelrnda
      ffn syl ad3antlr ralrimi 2fvidf1od reseq2 eqidd f1oeq123d rspcev exlimddv
      id ) BEIZBCDUBZJZCBFKZLZGKZXOMZDUAXQUCUDZIZGCUEZJZAKZCDYCUFZUGZABUHZNZFXN
      CUIIZHKZXSIZHBNZGCUEYBFUJXLXMYHBCEDUKULXNYKGCXMXQCIZYKXLXMYLJXQYIDMZOZHBN
      ZYKHBCXQDUMXMYOYKUNYLXMYNYJHBXMYIBIZJYNYJXMDBUOZYPYNYJBCDUQZYNYQYPJYMXQOZ
      YJYMXQURYQYPYSYJYQYJYPYSJBXQYIDUPUSUTVAVBVGVCVDVEVHVFYJXTGHCBFUIYIXRXSVIV
      JVKXNYBJZXOVLZYFIZUUACDUUAUFZUGZYGYTUUABVMZUUBXPUUEXNYACBXOVNVOZUUABXOFVP
      VQVRVSYTUUACUUCXOHGYTBCUUADXMBCDLXLYBBCDVTWAUUFWBYTXOCUOZCUUAXOLXPUUGXNYA
      CBXOXAVOZCXOWCWDZYTYIUUCMZXOMZYIOHUUAYTYIUUAIZJZUUKYMXOMZYIUUMUUJYMXOUULU
      UJYMOYTYIUUADWEWFPUUMXRYIOZUUNYIOGCYTUULGXNYBGXNGQXPYAGXPGQXTGCWGRRZUULGQ
      RUUMYLJZUUOJZUUNXRYIUURYMXQXOUURXRDMZYMXQUURXRYIDUUQUUOWKZPUURYQXTUUSXQOZ
      XMYQXLYBUULYLUUOYRWHUURYAYLXTUUMYAYLUUOXNXPYAUULWIWJUUMYLUUOWLXTGCWMZSYQX
      TXRBIUVABXQXRDUPWNZSWOPUUTTYTUUGUULUUOGCNZUUHUUGUULUVDGCYIXOWPWQWRWSTVFYT
      XRUUCMZXQOZGCUUPYTYLUVFYTYLJZUVEUUSXQUVGXRUUAIUVEUUSOYTCUUAXQXOUUIWTXRUUA
      DWEXBUVGYQXTUVAXMYQXLYBYLYRXCUVGYAYLXTXNXPYAYLWIYTYLWKUVBSUVCSTVGXDXEYEUU
      DAUUAYFYCUUAOZYCUUACCYDUUCYCUUADXFUVHXKUVHCXGXHXISXJ $.
  $}

  ${
    $d A a x y $.  $d B a x y $.  $d F a x y $.  $d V a x y $.  $d a x y ph $.
    $d a y ps $.  $d a x ch $.
    rabfodom.1 $e |- ( ( ph /\ x e. A /\ y = ( F ` x ) ) -> ( ch <-> ps ) ) $.
    rabfodom.2 $e |- ( ph -> A e. V ) $.
    rabfodom.3 $e |- ( ph -> F : A -onto-> B ) $.
    $( Domination relation for restricted abstract class builders, based on a
       surjective function.  (Contributed by Thierry Arnoux, 27-Jan-2020.) $)
    rabfodom $p |- ( ph -> { y e. B | ch } ~<_ { x e. A | ps } ) $=
      ( va cv cres wf1o crab wbr wcel cvv cdom cpw cen cfv cmpt rabex eqid wceq
      wa vex wfo wf fof syl feqmptd ad2antrr reseq1d wss elpwi ad2antlr resmptd
      eqtrd f1oeq1 biimpa sylancom w3a wb simp1ll 3ad2ant1 simp2 sseldd syl3anc
      f1oresrab f1oeng sylancr ensymd rabexg rabss2 ssdomg sylc endomtr syl2anc
      simp3 wrex foresf1o r19.29a ) AMNZGHWGOZPZCEGQZBDFQZUARZMFUBZAWGWMSZUIZWI
      UIZWJBDWGQZUCRWQWKUARZWLWPWQWJWPWQTSWQWJDWGDNZHUDZUEZWQOZPWQWJUCRBDWGMUJU
      FWPBCDEWGGWTXAXAUGWOWIWHXAUHZWGGXAPZWPWHDFWTUEZWGOXAWPHXEWGAHXEUHWNWIADFG
      HAFGHUKZFGHULLFGHUMUNUOUPUQWPDFWGWTWNWGFURZAWIWGFUSUTZVAVBXCWIXDWGGWHXAVC
      VDVEWPWSWGSZENWTUHZVFZAWSFSXJCBVGAWNWIXIXJVHXKWGFWSWPXIXGXJXHVIWPXIXJVJVK
      WPXIXJWCJVLVMWQWJTXBVNVOVPWPWKTSZWQWKURZWRAXLWNWIAFISZXLKBDFIVQUNUPWPXGXM
      XHBDWGFVRUNWQWKTVSVTWJWQWKWAWBAXNXFWIMWMWDKLMFGHIWEWBWF $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Image Sets
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d A x y $.
    abrexdomjm.1 $e |- ( y e. A -> E* x ph ) $.
    $( An indexed set is dominated by the indexing set.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    abrexdomjm $p |- ( A e. V -> { x | E. y e. A ph } ~<_ A ) $=
      ( wcel wrex cab cv wa copab crn cdom wex df-rex abbii wbr cvv wmo cdm wfn
      rnopab eqtr4i wss dmopabss ssexg mpan funopab wi moanimv mpbir mpgbir a1i
      wfun funfn sylib fnrndomg sylc ssdomg mpi domtr syl2anc syl5eqbr ) DEGZAC
      DHZBIZCJDGZAKZCBLZMZDNVGVICOZBIVKVFVLBACDPQVICBUCUDVEVKVJUAZNRZVMDNRZVKDN
      RVEVMSGZVJVMUBZVNVMDUEZVEVPACBDUFZVMDEUGUHVEVJUOZVQVTVEVTVIBTZCVICBUIWAVH
      ABTUJFVHABUKULUMUNVJUPUQVMSVJURUSVEVRVOVSVMDEUTVAVKVMDVBVCVD $.
  $}

  ${
    $d A x y $.  $d B x $.
    $( An indexed set is dominated by the indexing set.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    abrexdom2jm $p |- ( A e. V -> { x | E. y e. A x = B } ~<_ A ) $=
      ( cv wceq wmo wcel moeq a1i abrexdomjm ) AFDGZABCEMAHBFCIADJKL $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    abrexexd.0 $e |- F/_ x A $.
    abrexexd.1 $e |- ( ph -> A e. _V ) $.
    $( Existence of a class abstraction of existentially restricted sets.
       (Contributed by Thierry Arnoux, 10-May-2017.) $)
    abrexexd $p |- ( ph -> { y | E. x e. A y = B } e. _V ) $=
      ( cv wceq wrex cab cmpt crn cvv wcel wa copab wex rnopab df-mpt rneqi cdm
      df-rex abbii 3eqtr4i wfun funmpt crab eqid dmmpt rabexgfGS syl5eqel funex
      sylancr rnexg 3syl syl5eqelr ) ACHEIZBDJZCKZBDELZMZNBHDOURPZBCQZMVCBRZCKV
      BUTVCBCSVAVDBCDETUAUSVECURBDUCUDUEADNOZVANOZVBNOGVFVAUFVAUBZNOVGBDEUGVFVH
      ENOZBDUHNBDEVAVAUIUJVIBDNFUKULNVAUMUNVANUOUPUQ $.
  $}

  ${
    $d x y A $.  $d y B $.  $d y C $.
    elabreximd.1 $e |- F/ x ph $.
    elabreximd.2 $e |- F/ x ch $.
    elabreximd.3 $e |- ( A = B -> ( ch <-> ps ) ) $.
    elabreximd.4 $e |- ( ph -> A e. V ) $.
    elabreximd.5 $e |- ( ( ph /\ x e. C ) -> ps ) $.
    $( Class substitution in an image set.  (Contributed by Thierry Arnoux,
       30-Dec-2016.) $)
    elabreximd $p |- ( ( ph /\ A e. { y | E. x e. C y = B } ) -> ch ) $=
      ( cv wceq wrex cab wcel wa wb eqeq1 rexbidv elabg syl biimpa simpr adantr
      biimpar syl2anc exp31 rexlimd imp syldan ) AFEOZGPZDHQZERSZFGPZDHQZCAURUT
      AFISURUTUAMUQUTEFIUOFPUPUSDHUOFGUBUCUDUEUFAUTCAUSCDHJKADOHSZUSCAVATZUSTUS
      BCVBUSUGVBBUSNUHUSCBLUIUJUKULUMUN $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d x ch $.  $d x ph $.
    elabreximdv.1 $e |- ( A = B -> ( ch <-> ps ) ) $.
    elabreximdv.2 $e |- ( ph -> A e. V ) $.
    elabreximdv.3 $e |- ( ( ph /\ x e. C ) -> ps ) $.
    $( Class substitution in an image set.  (Contributed by Thierry Arnoux,
       30-Dec-2016.) $)
    elabreximdv $p |- ( ( ph /\ A e. { y | E. x e. C y = B } ) -> ch ) $=
      ( nfv elabreximd ) ABCDEFGHIADMCDMJKLN $.
  $}

  ${
    abrexss.1 $e |- F/_ x C $.
    $d x y z $.  $d y z A $.  $d z C $.  $d y z B $.
    $( A necessary condition for an image set to be a subset.  (Contributed by
       Thierry Arnoux, 6-Feb-2017.) $)
    abrexss $p |- ( A. x e. A B e. C -> { y | E. x e. A y = B } C_ C ) $=
      ( vz wcel wral cv wceq wrex cab cvv nfra1 nfcri eleq1 vex a1i rspa ssrdv
      elabreximd ex ) DEHZACIZGBJDKACLBMZEUEGJZUFHUGEHZUEUDUHABUGDCNUDACOAGEFPU
      GDEQUGNHUEGRSUDACTUBUCUA $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Set relations and operations - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x A $.  $d x B $.  $d x ph $.
    rabss3d.1 $e |- ( ( ph /\ ( x e. A /\ ps ) ) -> x e. B ) $.
    $( Subclass law for restricted abstraction.  (Contributed by Thierry
       Arnoux, 25-Sep-2017.) $)
    rabss3d $p |- ( ph -> { x e. A | ps } C_ { x e. B | ps } ) $=
      ( crab nfv nfrab1 cv wcel wa simprr jca ex rabid 3imtr4g ssrd ) ACBCDGZBC
      EGZACHBCDIBCEIACJZDKZBLZUAEKZBLZUASKUATKAUCUEAUCLUDBFAUBBMNOBCDPBCEPQR $.
  $}

  $( Intersection with an intersection.  (Contributed by Thierry Arnoux,
     27-Dec-2016.) $)
  inin $p |- ( A i^i ( A i^i B ) ) = ( A i^i B ) $=
    ( cin in13 inidm ineq2i incom 3eqtri ) AABCZCBAACZCBACIAABDJABAEFBAGH $.

  $( See ~ inundif .  (Contributed by Thierry Arnoux, 13-Sep-2017.) $)
  inindif $p |- ( ( A i^i C ) i^i ( A \ C ) ) = (/) $=
    ( cin wss cdif c0 wceq wo inss2 orci inss ax-mp inssdif0 mpbi ) ABCZACBDZOA
    BECFGOBDZABDZHPQRABIJOABKLOABMN $.

  $( Condition for the intersections of two sets with a given set to be equal.
     (Contributed by Thierry Arnoux, 28-Dec-2021.) $)
  difininv $p |- ( ( ( ( A \ C ) i^i B ) = (/) /\ ( ( C \ A ) i^i B ) = (/) )
    -> ( A i^i B ) = ( C i^i B ) ) $=
    ( cdif cin c0 wceq wss ssdif0 indif1 eqeq1i bitr4i biimpri adantr inss2 a1i
    wa ssind adantl eqssd ) ACDBEZFGZCADBEZFGZQZABEZCBEZUEUFCBUBUFCHZUDUHUBUHUF
    CDZFGUBUFCIUAUIFABCJKLMNUFBHUEABOPRUEUGABUDUGAHZUBUJUDUJUGADZFGUDUGAIUCUKFC
    BAJKLMSUGBHUECBOPRT $.

  $( Rewriting an equation with class difference, without using quantifiers.
     (Contributed by Thierry Arnoux, 24-Sep-2017.) $)
  difeq $p |- ( ( A \ B ) = C <->
                         ( ( C i^i B ) = (/) /\ ( C u. B ) = ( A u. B ) ) ) $=
    ( cdif wceq cin c0 cun incom disjdif eqtr3i ineq1 syl5reqr undif1 uneq1 jca
    wa simpl disj3 difun2 eqcom bitri sylib difeq1 3eqtr3g eqeq1d adantl impbii
    wb mpbid ) ABDZCEZCBFZGEZCBHZABHZEZQZULUNUQULGUKBFZUMBUKFUSGBUKIBAJKUKCBLMU
    LUPUKBHUOABNUKCBOMPURCBDZCEZULURUNVAUNUQRUNCUTEVACBSCUTUAUBUCUQVAULUIUNUQUT
    UKCUQUOBDUPBDUTUKUOUPBUDCBTABTUEUFUGUJUH $.

  $( A remarkable equation with sets.  (Contributed by Thierry Arnoux,
     18-May-2020.) $)
  indifundif $p |- ( ( ( A i^i B ) \ C ) u. ( A \ B ) ) = ( A \ ( B i^i C ) )
    $=
    ( cin cdif cun difindi difundir inundif difeq1i uncom uneq2i unass undifabs
    3eqtr3i uneq1i 3eqtr2i 3eqtrri ) ABCDEABEZACEZFZSABDZCEZFZUCSFABCGUASSCEZUC
    FZFSUEFZUCFUDTUFSUBSFZCEUCUEFTUFUBSCHUHACABIJUCUEKOLSUEUCMUGSUCSCNPQSUCKR
    $.

  ${
    elpwincl.1 $e |- ( ph -> A e. ~P C ) $.
    $( Closure of intersection with regard to elementhood to a power set.
       (Contributed by Thierry Arnoux, 18-May-2020.) $)
    elpwincl1 $p |- ( ph -> ( A i^i B ) e. ~P C ) $=
      ( cin cpw wcel wss elpwi ssinss1 3syl cvv wb inex1g elpwg mpbird ) ABCFZD
      GZHZRDIZABSHZBDIUAEBDJBCDKLAUBRMHTUANEBCSORDMPLQ $.

    $( Closure of class difference with regard to elementhood to a power set.
       (Contributed by Thierry Arnoux, 18-May-2020.) $)
    elpwdifcl $p |- ( ph -> ( A \ B ) e. ~P C ) $=
      ( cdif cpw wcel wss elpwid ssdifssd cvv wb difexg elpwg 3syl mpbird ) ABC
      FZDGZHZRDIZABDCABDEJKABSHRLHTUAMEBCSNRDLOPQ $.
  $}

  ${
    $d A k $.  $d C k $.  $d k ph $.
    elpwiuncl.1 $e |- ( ph -> A e. V ) $.
    elpwiuncl.2 $e |- ( ( ph /\ k e. A ) -> B e. ~P C ) $.
    $( Closure of indexed union with regard to elementhood to a power set.
       (Contributed by Thierry Arnoux, 27-May-2020.) $)
    elpwiuncl $p |- ( ph -> U_ k e. A B e. ~P C ) $=
      ( ciun cpw wcel wss wral cv wa elpwid ralrimiva iunss sylibr cvv wb elpwg
      jca iunexg 3syl mpbird ) AEBCIZDJZKZUGDLZACDLZEBMUJAUKEBAENBKOCDHPQEBCDRS
      ABFKZCUHKZEBMZOUGTKUIUJUAAULUNGAUMEBHQUCEBCFUHUDUGDTUBUEUF $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Unordered pairs
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    elpreq.1 $e |- ( ph -> X e. { A , B } ) $.
    elpreq.2 $e |- ( ph -> Y e. { A , B } ) $.
    elpreq.3 $e |- ( ph -> ( X = A <-> Y = A ) ) $.
    $( Equality wihin a pair.  (Contributed by Thierry Arnoux, 23-Aug-2017.) $)
    elpreq $p |- ( ph -> X = Y ) $=
      ( wceq wa simpr biimpa eqtr4d wn cpr wcel wo elpri syl orcanai simpl 3syl
      notbid wi pm2.53 sylc pm2.61dan ) ADBIZDEIAUHJDBEAUHKAUHEBIZHLMAUHNZJZDCE
      AUHDCIZADBCOZPUHULQFDBCRSTUKAUINZECIZAUJUAAUJUNAUHUIHUCLAEUMPUIUOQUNUOUDG
      EBCRUIUOUEUBUFMUG $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Conditional operator - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d a x $.  $d x C $.  $d x X $.  $d x Y $.  $d x V $.  $d x W $.
    $d x ps $.  $d x th $.
    ifeqeqx.1 $e |- ( x = X -> A = C ) $.
    ifeqeqx.2 $e |- ( x = Y -> B = a ) $.
    ifeqeqx.3 $e |- ( x = X -> ( ch <-> th ) ) $.
    ifeqeqx.4 $e |- ( x = Y -> ( ch <-> ps ) ) $.
    ifeqeqx.5 $e |- ( ph -> a = C ) $.
    ifeqeqx.6 $e |- ( ( ph /\ ps ) -> th ) $.
    ifeqeqx.y $e |- ( ph -> Y e. V ) $.
    ifeqeqx.x $e |- ( ph -> X e. W ) $.
    $( An equality theorem tailored for ~ ballotlemsf1o .  (Contributed by
       Thierry Arnoux, 14-Apr-2017.) $)
    ifeqeqx $p |- ( ( ph /\ x = if ( ps , X , Y ) )
                                                  -> a = if ( ch , A , B ) ) $=
      ( cv wceq cif wa eqeq2 csb simplr wsbc simpll simpr sbceq1a biimpd dfsbcq
      sylc wi csbeq1 eqeq2d imbi12d wcel nfcvd csbiegf syl eqtr4d adantr eqcomd
      a1d wn pm3.24 wb sbcieg anbi1d mtbiri pm2.21d anass1rs ex csbeq1a biimprd
      imp ifbothda notbid nsyld anim2d mtoi expdimp ) CMUBZFUCZWFGUCZWFCFGUDZUC
      AEUBBKLUDZUCZUEZFGFWIWFUFGWIWFUFWLCUEZWKWFEWJFUGZUCZWGAWKCUHZWMACEWJUIZWO
      AWKCUJWMWKCWQWPWLCUKWKCWQCEWJULZUMUOBCEKUIZWFEKFUGZUCZUPCELUIZWFELFUGZUCZ
      UPWQWOUPAKLKWJUCZWSWQXAWOCEKWJUNZXEWTWNWFEKWJFUQURUSLWJUCZXBWQXDWOCELWJUN
      ZXGXCWNWFELWJFUQURUSABUEZXAWSXIWTWFAWTWFUCBAWTHWFAKJUTZWTHUCUAEKFHJXJEHVA
      NVBVCRVDVEVFVGABVHZUEZXBXDAXBXKXDAXBXKUEZXDAXMXDAXMBXKUEZBVIZAXBBXKALIUTZ
      XBBVJTCBELIQVKVCVLVMVNVSVOVPVTUOWKWGWOWKFWNWFEWJFVQURVRUOWLCVHZUEZWKWFEWJ
      GUGZUCZWHAWKXQUHZXRAWQVHZXTAWKXQUJXRWKXQYBYAWLXQUKWKXQYBWKCWQWRWAUMUOBWSV
      HZWFEKGUGZUCZUPXBVHZWFELGUGZUCZUPYBXTUPAKLXEYCYBYEXTXEWSWQXFWAXEYDXSWFEKW
      JGUQURUSXGYFYBYHXTXGXBWQXHWAXGYGXSWFELWJGUQURUSABYCYEABYCUEZYEAYIXNXOAYCX
      KBAYCDBAYCDVHAWSDAXJWSDVJUACDEKJPVKVCWAUMABDSVPWBWCWDVNWEXLYHYFXLYGWFAYGW
      FUCZXKAXPYJTELGWFIXPEWFVAOVBVCVEVFVGVTUOWKWHXTWKGXSWFEWJGVQURVRUOVT $.
  $}


  ${
    elimifd.1 $e |- ( ph -> ( if ( ps , A , B ) = A -> ( ch <-> th ) ) ) $.
    elimifd.2 $e |- ( ph -> ( if ( ps , A , B ) = B -> ( ch <-> ta ) ) ) $.
    $( Elimination of a conditional operator contained in a wff ` ch ` .
       (Contributed by Thierry Arnoux, 25-Jan-2017.) $)
    elimifd $p |- ( ph -> ( ch <-> ( ( ps /\ th ) \/ ( -. ps /\ ta ) ) ) ) $=
      ( wn wo wa wb exmid biantrur a1i andir wceq syl5 pm5.32d iffalse orbi12d
      cif iftrue 3bitrd ) ACBBJZKZCLZBCLZUFCLZKZBDLZUFELZKCUHMAUGCBNOPUHUKMABUF
      CQPAUIULUJUMABCDBBFGUCZFRACDMBFGUDHSTAUFCEUFUNGRACEMBFGUAISTUBUE $.
  $}

  ${
    elim2if.1 $e |- ( if ( ph , A , if ( ps , B , C ) ) = A ->
                                                             ( ch <-> th ) ) $.
    elim2if.2 $e |- ( if ( ph , A , if ( ps , B , C ) ) = B ->
                                                             ( ch <-> ta ) ) $.
    elim2if.3 $e |- ( if ( ph , A , if ( ps , B , C ) ) = C ->
                                                             ( ch <-> et ) ) $.
    $( Elimination of two conditional operators contained in a wff ` ch ` .
       (Contributed by Thierry Arnoux, 25-Jan-2017.) $)
    elim2if $p |- ( ch <-> ( ( ph /\ th ) \/
                       ( -. ph /\ ( ( ps /\ ta ) \/ ( -. ps /\ et ) ) ) ) ) $=
      ( wa wn wo cif wceq wb eqeq1d syl6bir iftrue syl iffalse elimifd cases )
      ACDBEMBNFMOAAGBHIPZPZGQCDRAGUFUAJUBANZBCEFHIUHUFHQUGHQCERUHUGUFHAGUFUCZSK
      TUHUFIQUGIQCFRUHUGUFIUISLTUDUE $.

    elim2ifim.1 $e |- ( ph -> th ) $.
    elim2ifim.2 $e |- ( ( -. ph /\ ps ) -> ta ) $.
    elim2ifim.3 $e |- ( ( -. ph /\ -. ps ) -> et ) $.
    $( Elimination of two conditional operators for an implication.
       (Contributed by Thierry Arnoux, 25-Jan-2017.) $)
    elim2ifim $p |- ch $=
      ( wa wn wo ancli ex exmid pm4.42 ancld orim12i sylbi ax-mp elim2if mpbir
      imp ) CADPZAQZBEPZBQZFPZRZPZRZAUKRUQAUAAUJUKUPADMSUKUOUKUKBPZUKUMPZRUOUKB
      UBURULUSUNUKBULUKBEUKBENTUCUIUKUMUNUKUMFUKUMFOTUCUIUDUESUDUFABCDEFGHIJKLU
      GUH $.
  $}

  ${
    ifeq3da.1 $e |- ( if ( ps , E , F ) = E -> C = G ) $.
    ifeq3da.2 $e |- ( if ( ps , E , F ) = F -> C = H ) $.
    ifeq3da.3 $e |- ( ph -> G = A ) $.
    ifeq3da.4 $e |- ( ph -> H = B ) $.
    $( Given an expression ` C ` containing ` if ( ps , E , F ) ` , substitute
       (hypotheses .1 and .2) and evaluate (hypotheses .3 and .4) it for both
       cases at the same time.  (Contributed by Thierry Arnoux,
       13-Dec-2021.) $)
    ifeq3da $p |- ( ph -> if ( ps , A , B ) = C ) $=
      ( wa wceq cif syl adantl adantr eqtr2d iftrue wn iffalse ifeqda ) ABCDEAB
      NEHCBEHOZABBFGPZFOUEBFGUAJQRAHCOBLSTABUBZNEIDUGEIOZAUGUFGOUHBFGUCKQRAIDOU
      GMSTUD $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Set union
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d A x $.  $d B x $.
    $( Sufficient and necessary condition for a union to intersect with a given
       set.  (Contributed by Thierry Arnoux, 27-Jan-2020.) $)
    uniinn0 $p |- ( ( U. A i^i B ) =/= (/) <-> E. x e. A ( x i^i B ) =/= (/) )
      $=
      ( cv cin c0 wne wrex cuni wral wceq nne ralbii ralnex cvv cdif wss unissb
      wn disj2 3bitr4ri 3bitr3i necon1abii ) ADZCEZFGZABHZBIZCEZFUFSZABJUEFKZAB
      JZUGSUIFKZUJUKABUEFLMUFABNUHOCPZQUDUNQZABJUMULABUNRUHCTUKUOABUDCTMUAUBUC
      $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Union of intersection.  Generalization of half of theorem "Distributive
       laws" in [Enderton] p. 30.  (Contributed by Thierry Arnoux,
       21-Jun-2020.) $)
    uniin1 $p |- U_ x e. A ( x i^i B ) = ( U. A i^i B ) $=
      ( cv cin ciun cuni iunin1 uniiun ineq1i eqtr4i ) ABADZCEFABLFZCEBGZCEABCL
      HNMCABIJK $.

    $( Union of intersection.  Generalization of half of theorem "Distributive
       laws" in [Enderton] p. 30.  (Contributed by Thierry Arnoux,
       21-Jun-2020.) $)
    uniin2 $p |- U_ x e. B ( A i^i x ) = ( A i^i U. B ) $=
      ( cv cin ciun cuni iunin2 uniiun ineq2i eqtr4i ) ACBADZEFBACLFZEBCGZEACBL
      HNMBACIJK $.
  $}

  $( Express a class difference using unions and class complements.
     (Contributed by Thierry Arnoux, 21-Jun-2020.) $)
  difuncomp $p |- ( A C_ C -> ( A \ B ) = ( C \ ( ( C \ A ) u. B ) ) ) $=
    ( wss cdif cin cun incom wceq sseqin2 biimpi syl5reqr difeq1d difundi dfss4
    ineq1d syl5eq indif2 syl6eq eqtr4d ) ACDZABEACFZBEZCCAEZBGEZUAAUBBUAUBCAFZA
    CAHUAUFAIACJKLMUAUEACBEZFZUCUAUECUDEZUGFUHCUDBNUAUIAUGUAUIAIACOKPQACBRST $.

  $( Condition for a class union to be a subset.  (Contributed by Thierry
     Arnoux, 21-Jun-2020.) $)
  pwuniss $p |- ( A C_ ~P B -> U. A C_ B ) $=
    ( cpw wss cuni uniss unipw syl6sseq ) ABCZDAEIEBAIFBGH $.

  ${
    elpwunicl.1 $e |- ( ph -> B e. V ) $.
    elpwunicl.2 $e |- ( ph -> A e. ~P ~P B ) $.
    $( Closure of a set union with regard to elementhood to a power set.
       (Contributed by Thierry Arnoux, 21-Jun-2020.) $)
    elpwunicl $p |- ( ph -> U. A e. ~P B ) $=
      ( cuni cpw wcel wss wb elpwg syl mpbid pwuniss cvv uniexg 3syl mpbird ) A
      BGZCHZIZTCJZABUAJZUCABUAHZIZUDFAUFUFUDKFBUAUELMNBCOMAUFTPIUBUCKFBUEQTCPLR
      S $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Indexed union - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y z $.  $d z A $.  $d z B $.  $d z C $.
    cbviunf.x $e |- F/_ x A $.
    cbviunf.y $e |- F/_ y A $.
    cbviunf.1 $e |- F/_ y B $.
    cbviunf.2 $e |- F/_ x C $.
    cbviunf.3 $e |- ( x = y -> B = C ) $.
    $( Rule used to change the bound variables in an indexed union, with the
       substitution specified implicitly by the hypothesis.  (Contributed by
       NM, 26-Mar-2006.)  (Revised by Andrew Salmon, 25-Jul-2011.) $)
    cbviunf $p |- U_ x e. A B = U_ y e. A C $=
      ( vz cv wcel wrex cab ciun nfcri weq eleq2d df-iun cbvrexf abbii 3eqtr4i
      ) KLZDMZACNZKOUDEMZBCNZKOACDPBCEPUFUHKUEUGABCFGBKDHQAKEIQABRDEUDJSUAUBAKC
      DTBKCETUC $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.  $d y D $.  $d y ph $.
    iuneq12daf.1 $e |- F/ x ph $.
    iuneq12daf.2 $e |- F/_ x A $.
    iuneq12daf.3 $e |- F/_ x B $.
    iuneq12daf.4 $e |- ( ph -> A = B ) $.
    iuneq12daf.5 $e |- ( ( ph /\ x e. A ) -> C = D ) $.
    $( Equality deduction for indexed union, deduction version.  (Contributed
       by Thierry Arnoux, 13-Mar-2017.) $)
    iuneq12daf $p |- ( ph -> U_ x e. A C = U_ x e. B D ) $=
      ( vy cv wcel wrex wb ciun wceq cab df-iun wal eleq2d rexbida rexeqf bitrd
      wa syl alrimiv abbi eqeq12i bitr4i sylib ) ALMZENZBCOZUMFNZBDOZPZLUAZBCEQ
      ZBDFQZRZAURLAUOUPBCOZUQAUNUPBCGABMCNUFEFUMKUBUCACDRVCUQPJUPBCDHIUDUGUEUHU
      SUOLSZUQLSZRVBUOUQLUIUTVDVAVEBLCETBLDFTUJUKUL $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    iunin1f.1 $e |- F/_ x C $.
    $( Indexed union of intersection.  Generalization of half of theorem
       "Distributive laws" in [Enderton] p. 30.  Use ~ uniiun to recover
       Enderton's theorem.  (Contributed by NM, 26-Mar-2004.)  (Revised by
       Thierry Arnoux, 2-May-2020.) $)
    iunin1f $p |- U_ x e. A ( B i^i C ) = ( U_ x e. A B i^i C ) $=
      ( vy cin ciun cv wcel wrex wa nfcri r19.41 elin rexbii eliun anbi1i eqriv
      3bitr4i ) FABCDGZHZABCHZDGZFIZUAJZABKZUEUCJZUEDJZLZUEUBJUEUDJUECJZUILZABK
      UKABKZUILUGUJUKUIABAFDEMNUFULABUECDOPUHUMUIAUEBCQRTAUEBUAQUEUCDOTS $.
  $}

  ${
    $d A x y $.  $d B y $.  $d C y $.  $d V y $.
    iunxsngf.1 $e |- F/_ x C $.
    iunxsngf.2 $e |- ( x = A -> B = C ) $.
    $( A singleton index picks out an instance of an indexed union's argument.
       (Contributed by Mario Carneiro, 25-Jun-2016.)  (Revised by Thierry
       Arnoux, 2-May-2020.) $)
    iunxsngf $p |- ( A e. V -> U_ x e. { A } B = C ) $=
      ( vy wcel csn ciun cv wrex eliun wsbc rexsns nfcri wceq eleq2d syl5bb
      sbciegf eqrdv ) BEIZHABJZCKZDHLZUEIUFCIZAUDMZUCUFDIZAUFUDCNUHUGABOUCUIUGA
      BPUGUIABEAHDFQALBRCDUFGSUATTUB $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    $( Subset equivalence for an indexed union.  (Contributed by Thierry
       Arnoux, 17-Oct-2016.) $)
    ssiun3 $p |- ( A. y e. C E. x e. A y e. B <-> C C_ U_ x e. A B ) $=
      ( ciun wss cv wcel wi wal wral wrex dfss2 df-ral eliun ralbii 3bitr2ri )
      EACDFZGBHZEITSIZJBKUABELTDIACMZBELBESNUABEOUAUBBEATCDPQR $.
  $}

  ${
    $d A x y $.  $d B y $.
    $( An indexed intersection is a subset of the corresponding indexed union.
       (Contributed by Thierry Arnoux, 31-Dec-2021.) $)
    iinssiun $p |- ( A =/= (/) -> |^|_ x e. A B C_ U_ x e. A B ) $=
      ( vy c0 wne ciin ciun cv wcel wral r19.2z ex cvv wb vex eliin ax-mp eliun
      wrex 3imtr4g ssrdv ) BEFZDABCGZABCHZUCDIZCJZABKZUGABTZUFUDJZUFUEJUCUHUIUG
      ABLMUFNJUJUHODPAUFBCNQRAUFBCSUAUB $.
  $}

  ${
    ssiun2sf.1 $e |- F/_ x A $.
    ssiun2sf.2 $e |- F/_ x C $.
    ssiun2sf.3 $e |- F/_ x D $.
    ssiun2sf.4 $e |- ( x = C -> B = D ) $.
    $( Subset relationship for an indexed union.  (Contributed by Thierry
       Arnoux, 31-Dec-2016.) $)
    ssiun2sf $p |- ( C e. A -> D C_ U_ x e. A B ) $=
      ( wcel ciun wss cv wi nfel nfiu1 nfss nfim wceq eleq1 imbi12d vtoclgf
      sseq1d ssiun2 pm2.43i ) DBJZEABCKZLZAMZBJZCUGLZNUFUHNADBGUFUHAADBGFOAEUGH
      ABCPQRUIDSZUJUFUKUHUIDBTULCEUGIUCUAABCUDUBUE $.
  $}

  ${
    $d i j n $.  $d j k n F $.  $d j k n ph $.
    iuninc.1 $e |- ( ph -> F Fn NN ) $.
    iuninc.2 $e |- ( ( ph /\ n e. NN ) -> ( F ` n ) C_ ( F ` ( n + 1 ) ) ) $.
    $( The union of an increasing collection of sets is its last element.
       (Contributed by Thierry Arnoux, 22-Jan-2017.) $)
    iuninc $p |- ( ( ph /\ i e. NN ) ->
      U_ n e. ( 1 ... i ) ( F ` n ) = ( F ` i ) ) $=
      ( vk wcel c1 cfz co cfv ciun wceq wi caddc iuneq1d fveq2 ax-mp wa eqeq12d
      vj cv cn oveq2 imbi2d csn cz 1z fzsn iuneq1 1ex iunxsn a1i cun simpll cuz
      eqtri elnnuz fzsuc sylbi iunxun uneq2i syl6eq syl simpr uneq1d simplr wss
      ovex wsb sbt sbim sban nfv sbf clelsb3 anbi12i bitr2i wsbc csb cvv wb vex
      sbsbc sbcssg csbfv2g csbov1g fveq2i csbvarg oveq1i 3eqtri sseq12i 3bitrri
      csbfv imbi12i bitr4i mpbi ssequn1 sylib syl2anc 3eqtrd exp31 nnind impcom
      a2d ) BUCZUDHACIXGJKZCUCZDLZMZXGDLZNZACIUBUCZJKZXJMZXNDLZNZOACIIJKZXJMZID
      LZNZOACIGUCZJKZXJMZYCDLZNZOACIYCIPKZJKZXJMZYHDLZNZOAXMOUBGXGXNINZXRYBAYMX
      PXTXQYAYMCXOXSXJXNIIJUEQXNIDRUAUFXNYCNZXRYGAYNXPYEXQYFYNCXOYDXJXNYCIJUEQX
      NYCDRUAUFXNYHNZXRYLAYOXPYJXQYKYOCXOYIXJXNYHIJUEQXNYHDRUAUFXNXGNZXRXMAYPXP
      XKXQXLYPCXOXHXJXNXGIJUEQXNXGDRUAUFYBAXTCIUGZXJMZYAXSYQNZXTYRNIUHHYSUIIUJS
      CXSYQXJUKSCIXJYAULXIIDRUMURUNYCUDHZAYGYLYTAYGYLYTATZYGTZYJYEYKUOZYFYKUOZY
      KUUBYTYJUUCNYTAYGUPZYTYJCYDYHUGZUOZXJMZUUCYTCYIUUGXJYTYCIUQLHYIUUGNYCUSIY
      CUTVAQUUHYECUUFXJMZUOUUCCYDUUFXJVBUUIYKYECYHXJYKYCIPVJXIYHDRUMVCURVDVEUUB
      YEYFYKUUAYGVFVGUUBAYTUUDYKNZYTAYGVHUUEAYTTZYFYKVIZUUJAXIUDHZTZXJXIIPKZDLZ
      VIZOZCGVKZUUKUULOZUURCGFVLUUSUUNCGVKZUUQCGVKZOUUTUUNUUQCGVMUUKUVAUULUVBUV
      AACGVKZUUMCGVKZTUUKAUUMCGVNUVCAUVDYTACGACVOVPGCUDVQVRVSUVBUUQCYCVTZCYCXJW
      AZCYCUUPWAZVIZUULUUQCGWEYCWBHZUVEUVHWCGWDZCYCXJUUPWBWFSUVFYFUVGYKCYCDWOUV
      GCYCUUOWAZDLZCYCXIWAZIPKZDLYKUVIUVGUVLNUVJCYCUUOWBDWGSUVKUVNDUVIUVKUVNNUV
      JCYCXIIPWBWHSWIUVNYHDUVMYCIPUVIUVMYCNUVJCYCWBWJSWKWIWLWMWNWPWQWRYFYKWSWTX
      AXBXCXFXDXE $.
  $}

  ${
    $d x A $.  $d x O $.
    $( The intersection of a set is the complement of the union of the
       complements.  (Contributed by Thierry Arnoux, 19-Dec-2016.) $)
    iundifdifd $p |- ( A C_ ~P O ->
      ( A =/= (/) -> |^| A = ( O \ U_ x e. A ( O \ x ) ) ) ) $=
      ( cpw wss c0 cint cv cdif ciun wceq wa ciin iundif2 intiin difeq2i eqtr4i
      wne cuni intssuni2 unipw syl6sseq dfss4 sylib syl5req ex ) BCDZEZBFRZBGZC
      ABCAHZIJZIZKUHUILZUMCCUJIZIZUJULUOCULCABUKMZIUOABCUKNUJUQCABOPQPUNUJCEUPU
      JKUNUJUGSCBUGTCUAUBUJCUCUDUEUF $.
  $}

  ${
    $d x A $.  $d x O $.
    iundifdif.o $e |- O e. _V $.
    iundifdif.2 $e |- A C_ ~P O $.
    $( The intersection of a set is the complement of the union of the
       complements.  TODO: shorten using ~ iundifdifd .  (Contributed by
       Thierry Arnoux, 4-Sep-2016.) $)
    iundifdif $p |- ( A =/= (/) -> |^| A = ( O \ U_ x e. A ( O \ x ) ) ) $=
      ( c0 wne cv cdif ciun cint ciin iundif2 intiin difeq2i eqtr4i wss wceq wa
      cpw cuni jctl intssuni2 unipw sseq2i biimpi 3syl dfss4 sylib syl5req ) BF
      GZCABCAHZIJZICCBKZIZIZUNUMUOCUMCABULLZIUOABCULMUNUQCABNOPOUKUNCQZUPUNRUKB
      CTZQZUKSUNUSUAZQZURUKUTEUBBUSUCVBURVACUNCUDUEUFUGUNCUHUIUJ $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d x y z C $.  $d x z D $.  $d x y F $.
    $d x y z ph $.
    iunrdx.1 $e |- ( ph -> F : A -onto-> C ) $.
    iunrdx.2 $e |- ( ( ph /\ y = ( F ` x ) ) -> D = B ) $.
    $( Re-index an indexed union.  (Contributed by Thierry Arnoux,
       6-Apr-2017.) $)
    iunrdx $p |- ( ph -> U_ x e. A B = U_ y e. C D ) $=
      ( vz cv wcel wrex cab ciun cfv wfo wf df-iun fof syl ffvelrnda wceq sylan
      foelrn wa eleq2d rexxfrd bicomd abbidv 3eqtr4g ) AKLZEMZBDNZKOUMGMZCFNZKO
      BDEPCFGPAUOUQKAUQUOAUPUNCBBLZHQZFDADFURHADFHRZDFHSIDFHUAUBUCAUTCLZFMVAUSU
      DZBDNIBDFVAHUFUEAVBUGGEUMJUHUIUJUKBKDETCKFGTUL $.
  $}

  ${
    $d A x y $.  $d B y $.  $d F x y $.
    $( Preimage of an indexed union.  (Contributed by Thierry Arnoux,
       27-Mar-2018.) $)
    iunpreima $p |- ( Fun F
      -> ( `' F " U_ x e. A B ) = U_ x e. A ( `' F " B ) ) $=
      ( vy wfun ccnv ciun cima cv cfv wcel cdm crab wrex wb a1i fncnvima2 sylbi
      wceq eliun rabbidv wfn funfn iunrab 3eqtr4d iuneq2d eqtr4d ) DFZDGZABCHZI
      ZABEJDKZCLZEDMZNZHZABUJCIZHUIUMUKLZEUONZUNABOZEUONZULUQUIUSVAEUOUSVAPUIAU
      MBCUAQUBUIDUOUCZULUTTDUDZEUOUKDRSUQVBTUIUNAEBUOUEQUFUIABURUPUIVCURUPTVDEU
      OCDRSUGUH $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Disjointness - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y A $.  $d x y B $.
    $( In case ` x ` is not free in ` B ` , disjointness is not so interesting
       since it reduces to cases where ` A ` is a singleton.  (Google Groups
       discussion with Peter Mazsa.)  (Contributed by Thierry Arnoux,
       26-Jul-2018.) $)
    disjnf $p |- ( Disj_ x e. A B <-> ( B = (/) \/ E* x x e. A ) ) $=
      ( vy cin c0 wceq cv wral wdisj wcel wmo inidm eqeq1i orbi1i disjor ralbii
      wo eqidd r19.32v orcom bitri 3bitri moel orbi2i 3bitr4i ) CCEZFGZAHZDHGZD
      BIZABIZRZCFGZULRABCJZUNUIBKALZRUHUNULUGCFCMNOUOUJUHRZDBIZABIUHUKRZABIUMBC
      CADUJCSPURUSABURUHUJRZDBIUSUQUTDBUJUHUAQUHUJDBTUBQUHUKABTUCUPULUNADBUDUEU
      F $.
  $}

  ${
    $d x y z $.  $d y z A $.  $d z B $.  $d z C $.
    cbvdisjf.1 $e |- F/_ x A $.
    cbvdisjf.2 $e |- F/_ y B $.
    cbvdisjf.3 $e |- F/_ x C $.
    cbvdisjf.4 $e |- ( x = y -> B = C ) $.
    $( Change bound variables in a disjoint collection.  (Contributed by
       Thierry Arnoux, 6-Apr-2017.) $)
    cbvdisjf $p |- ( Disj_ x e. A B <-> Disj_ y e. A C ) $=
      ( vz cv wcel wrmo wal wdisj wa wmo nfcri nfan df-rmo nfv weq eleq1 eleq2d
      anbi12d cbvmo 3bitr4i albii df-disj ) JKZDLZACMZJNUJELZBCMZJNACDOBCEOULUN
      JAKZCLZUKPZAQBKZCLZUMPZBQULUNUQUTABUPUKBUPBUABJDGRSUSUMAABCFRAJEHRSABUBZU
      PUSUKUMUOURCUCVADEUJIUDUEUFUKACTUMBCTUGUHAJCDUIBJCEUIUG $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    disjss1f.1 $e |- F/_ x A $.
    disjss1f.2 $e |- F/_ x B $.
    $( A subset of a disjoint collection is disjoint.  (Contributed by Thierry
       Arnoux, 6-Apr-2017.) $)
    disjss1f $p |- ( A C_ B -> ( Disj_ x e. B C -> Disj_ x e. A C ) ) $=
      ( vy wss cv wcel wrmo wal wdisj ssrmo alimdv df-disj 3imtr4g ) BCHZGIDJZA
      CKZGLSABKZGLACDMABDMRTUAGSABCEFNOAGCDPAGBDPQ $.

    $( Equality theorem for disjoint collection.  (Contributed by Mario
       Carneiro, 14-Nov-2016.) $)
    disjeq1f $p |- ( A = B -> ( Disj_ x e. A C <-> Disj_ x e. B C ) ) $=
      ( wceq wdisj wss wi eqimss2 disjss1f syl eqimss impbid ) BCGZABDHZACDHZPC
      BIQRJCBKACBDFELMPBCIRQJBCNABCDEFLMO $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A trivial partition into a subset and its complement.  (Contributed by
       Thierry Arnoux, 25-Dec-2016.) $)
    disjdifprg $p |- ( ( A e. V /\ B e. W ) ->
        Disj_ x e. { ( B \ A ) , A } x ) $=
      ( wcel wa c0 wceq cdif cpr wdisj simpr wb elex cvv 0ex mpbiri cin id dif0
      cv csn disjxsn eqidd a1i preqsnd adantr mpbir2and wne in0 disjprg syl3anc
      disjeq1d pm2.61dane ad2antlr difeq2 syl6eq preq12d adantl mpbird wn incom
      eqtr3i difexg ad2antrr wss ssid ssdifeq0 notbii nssne2 sylan2br pm2.61dan
      disjdif mpan ) BDFZCEFZGZBHIZACBJZBKZAUBZLZVRVSGWCACHKZWBLZVQWEVPVSVQWECH
      VQCHIZGZWEAHUCZWBLAHWBUDWGAWDWHWBWGWDWHIZWFHHIZVQWFMWGHUEVQWIWFWJGNWFVQCH
      HCEOZHPFZVQQUFZWMUGUHUIUNRVQCHUJZGZWECHSHIZCUKWOCPFZWLWNWEWPNVQWQWNWKUHWL
      WOQUFVQWNMACHWBCHPWBCITWBHITULUMRUOUPVSWCWENVRVSAWAWDWBVSVTCBHVSVTCHJCBHC
      UQCUAURVSTUSUNUTVAVRVSVBZGZWCVTBSZHIZBVTSWTHBVTVCBCVNVDWSVTPFZBPFZVTBUJZW
      CXANVQXBVPWRCBEVEUPVPXCVQWRBDOVFWRXDVRVTVTVGZWRXDVTVHWRXEBVTVGZVBXDXFVSBC
      VIVJVTBVTVKVLVOUTAVTBWBVTBPWBVTITWBBITULUMRVM $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A trivial partition of a set into its difference and intersection with
       another set.  (Contributed by Thierry Arnoux, 25-Dec-2016.) $)
    disjdifprg2 $p |-
        ( A e. V -> Disj_ x e. { ( A \ B ) , ( A i^i B ) } x ) $=
      ( wcel cin cdif cpr wdisj cvv inex1g elex disjdifprg syl2anc difin preq1i
      cv wceq a1i disjeq1d mpbid ) BDEZABBCFZGZUCHZAQZIZABCGZUCHZUFIUBUCJEBJEUG
      BCDKBDLAUCBJJMNUBAUEUIUFUEUIRUBUDUHUCBCOPSTUA $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d z C $.  $d x z Y $.
    disjif.1 $e |- F/_ x C $.
    disjif.2 $e |- ( x = Y -> B = C ) $.
    $( Property of a disjoint collection: if ` B ( x ) = C ` and
       ` B ( Y ) = D ` , and ` x =/= Y ` , then ` B ` and ` C ` are disjoint.
       (Contributed by Thierry Arnoux, 30-Dec-2016.) $)
    disji2f $p |- ( ( Disj_ x e. A B /\ ( x e. A /\ Y e. A ) /\
      x =/= Y ) -> ( B i^i C ) = (/) ) $=
      ( vy vz cv wcel wa cin c0 wceq wo weq csb wral eqeq1d wdisj df-ne disjors
      wn equequ1 csbeq1 csbid syl6eq ineq1d orbi12d eqeq2 csbhypf ineq2d rspc2v
      wne nfcv syl5bi impcom ord 3impia ) ABCUAZAJZBKEBKLZVBEUOZCDMZNOZVDVBEOZU
      DVAVCLZVFVBEUBVHVGVFVCVAVGVFPZVAHIQZAHJZCRZAIJZCRZMZNOZPZIBSHBSVCVIABCHIU
      CVQVIAIQZCVNMZNOZPHIVBEBBHAQZVJVRVPVTHAIUEWAVOVSNWAVLCVNWAVLAVBCRCAVKVBCU
      FACUGUHUITUJVMEOZVRVGVTVFVMEVBUKWBVSVENWBVNDCAIECDAEUPFGULUMTUJUNUQURUSUQ
      UT $.

    $( Property of a disjoint collection: if ` B ( x ) ` and ` B ( Y ) = D `
       have a common element ` Z ` , then ` x = Y ` .  (Contributed by Thierry
       Arnoux, 30-Dec-2016.) $)
    disjif $p |- ( ( Disj_ x e. A B /\ ( x e. A /\ Y e. A ) /\
      ( Z e. B /\ Z e. C ) ) -> x = Y ) $=
      ( wcel wa wdisj cv cin c0 wne wceq inelcm disji2f 3expia necon1d syl3an3
      3impia ) FCIFDIJABCKZALZBIEBIJZCDMZNOZUDEPZFCDQUCUEUGUHUCUEJUDEUFNUCUEUDE
      OUFNPABCDEGHRSTUBUA $.
  $}

  ${
    $d i j x $.  $d x A $.  $d j x B $.  $d i x C $.
    disjorf.1 $e |- F/_ i A $.
    disjorf.2 $e |- F/_ j A $.
    disjorf.3 $e |- ( i = j -> B = C ) $.
    $( Two ways to say that a collection ` B ( i ) ` for ` i e. A ` is
       disjoint.  (Contributed by Thierry Arnoux, 8-Mar-2017.) $)
    disjorf $p |- ( Disj_ i e. A B <->
      A. i e. A A. j e. A ( i = j \/ ( B i^i C ) = (/) ) ) $=
      ( vx cv wcel wal wceq wo wral wi ralcom4 wex bitri bitr4i wrmo c0 df-disj
      wdisj cin wa wn orcom df-or neq0 exbii imbi1i 19.23v 3bitri ralbii eleq2d
      elin nfv rmo4f albii 3bitr4i ) DABUDIJZBKZDAUAZILZDJEJMZBCUEZUBMZNZEAOZDA
      OZDIABUCVCVBCKZUFZVFPZEAOZILZDAOVODAOZILVKVEVODIAQVJVPDAVJVNILZEAOVPVIVRE
      AVIVHVFNVHUGZVFPZVRVFVHUHVHVFUIVTVMIRZVFPVRVSWAVFVSVBVGKZIRWAIVGUJWBVMIVB
      BCUQUKSULVMVFIUMTUNUOVNEIAQSUOVDVQIVCVLDEAFGVLDURVFBCVBHUPUSUTVAT $.
  $}

  ${
    $d i j x $.  $d i j A $.  $d i j B $.
    disjorsf.1 $e |- F/_ x A $.
    $( Two ways to say that a collection ` B ( i ) ` for ` i e. A ` is
       disjoint.  (Contributed by Thierry Arnoux, 8-Mar-2017.) $)
    disjorsf $p |- ( Disj_ x e. A B <-> A. i e. A A. j e. A
      ( i = j \/ ( [_ i / x ]_ B i^i [_ j / x ]_ B ) = (/) ) ) $=
      ( wdisj cv csb wceq cin c0 wo wral nfcsb1v csbeq1a cbvdisjf csbeq1 disjor
      nfcv bitri ) ABCGDBADHZCIZGUBEHZJUCAUDCIZKLJMEBNDBNADBCUCFDCTAUBCOAUBCPQB
      UCUEDEAUBUDCRSUA $.
  $}

  ${
    $d x y z $.  $d y z A $.  $d y z B $.  $d z C $.  $d x z Y $.
    disjif2.1 $e |- F/_ x A $.
    disjif2.2 $e |- F/_ x C $.
    disjif2.3 $e |- ( x = Y -> B = C ) $.
    $( Property of a disjoint collection: if ` B ( x ) ` and ` B ( Y ) = D `
       have a common element ` Z ` , then ` x = Y ` .  (Contributed by Thierry
       Arnoux, 6-Apr-2017.) $)
    disjif2 $p |- ( ( Disj_ x e. A B /\ ( x e. A /\ Y e. A ) /\
      ( Z e. B /\ Z e. C ) ) -> x = Y ) $=
      ( vy vz wcel wa cv cin c0 wceq wo weq csb wdisj wne wral disjorsf equequ1
      inelcm csbeq1 csbid syl6eq ineq1d eqeq1d orbi12d eqeq2 nfcv ineq2d rspc2v
      csbhypf syl5bi impcom ord necon1ad 3impia syl3an3 ) FCLFDLMABCUAZANZBLEBL
      MZCDOZPUBZVEEQZFCDUFVDVFVHVIVDVFMZVIVGPVJVIVGPQZVFVDVIVKRZVDJKSZAJNZCTZAK
      NZCTZOZPQZRZKBUCJBUCVFVLABCJKGUDVTVLAKSZCVQOZPQZRJKVEEBBJASZVMWAVSWCJAKUE
      WDVRWBPWDVOCVQWDVOAVECTCAVNVECUGACUHUIUJUKULVPEQZWAVIWCVKVPEVEUMWEWBVGPWE
      VQDCAKECDAEUNHIUQUOUKULUPURUSUTVAVBVC $.
  $}

  ${
    $d i j x y z A $.  $d i j y z B $.
    $( Rewriting a disjoint collection into a partition of its image set.
       (Contributed by Thierry Arnoux, 30-Dec-2016.) $)
    disjabrex $p |- ( Disj_ x e. A B
                                   -> Disj_ y e. { z | E. x e. A z = B } y ) $=
      ( vi vj wdisj cv wcel csb wa cab cuni wceq wral cvv vex simpllr syl nfcri
      wrex nfdisj1 nfcv nfv nfan nfab nfuni nfcsb1 nfeq1 nfral eqeq2 raleqbi1dv
      nfcsb1v a1i simplll simprl simplr simprr csbeq1a syl122anc simpr eqeltrrd
      csn disjif wb eleq2d mpbid jca impbida equcom syl6bb abbidv df-sn syl6eqr
      unieqd unisn syl6eq csbeq1 csbid ralrimiva elabreximd invdisj ) ADEHZAFIZ
      DJZGIZAWEEKZJZLZFMZNZEKZBIZOZGWNPZBCIEOADUBCMZPBWQWNHWDWPBWQWDWMEOZGEPWPA
      CWNEDQADEUCWOAGWNAWNUDAWMWNAWLEAWKWJAFWFWIAWFAUEAGWHAWEEUNZUAUFUGUHUIUJUK
      WOWRGWNEWNEWMULUMWNQJWDBRUOWDAIZDJZLZWRGEXBWGEJZLZWLWTOZWRXDWLWTVDZNWTXDW
      KXFXDWKWEWTOZFMXFXDWJXGFXDWJWTWEOZXGXDWJXHXDWJLWDXAWFXCWIXHWDXAXCWJUPWDXA
      XCWJSXDWFWIUQXBXCWJURXDWFWIUSADEWHWEWGWSAWEEUTZVEVAXDXHLZWFWIXJWTWEDXDXHV
      BZWDXAXCXHSVCXJXCWIXBXCXHURXJXHXCWIVFXKXHEWHWGXIVGTVHVIVJAFVKVLVMFWTVNVOV
      PWTARVQVRXEWMAWTEKEAWLWTEVSAEVTVRTWAWBWABGWQWNWMWCT $.
  $}

  ${
    $d i j x y z $.  $d i j y z A $.  $d i j y z B $.
    disjabrexf.1 $e |- F/_ x A $.
    $( Rewriting a disjoint collection into a partition of its image set.
       (Contributed by Thierry Arnoux, 30-Dec-2016.)  (Revised by Thierry
       Arnoux, 9-Mar-2017.) $)
    disjabrexf $p |- ( Disj_ x e. A B
                                   -> Disj_ y e. { z | E. x e. A z = B } y ) $=
      ( vi vj wdisj cv wcel csb wa cab cuni wceq wral cvv nfcri syl wrex nfcsb1
      nfdisj1 nfcv nfcsb1v nfan nfab nfuni nfeq1 nfral eqeq2 raleqbi1dv vex a1i
      csn simplll simpllr simprl simplr simprr csbeq1a syl122anc simpr eqeltrrd
      disjif2 wb eleq2d mpbid impbida equcom syl6bb abbidv df-sn syl6eqr unieqd
      jca unisn syl6eq csbeq1 csbid ralrimiva elabreximd invdisj ) ADEIZAGJZDKZ
      HJZAWEELZKZMZGNZOZELZBJZPZHWNQZBCJEPADUACNZQBWQWNIWDWPBWQWDWMEPZHEQWPACWN
      EDRADEUCWOAHWNAWNUDAWMWNAWLEAWKWJAGWFWIAAGDFSAHWHAWEEUEZSUFUGUHUBUIUJWOWR
      HWNEWNEWMUKULWNRKWDBUMUNWDAJZDKZMZWRHEXBWGEKZMZWLWTPZWRXDWLWTUOZOWTXDWKXF
      XDWKWEWTPZGNXFXDWJXGGXDWJWTWEPZXGXDWJXHXDWJMWDXAWFXCWIXHWDXAXCWJUPWDXAXCW
      JUQXDWFWIURXBXCWJUSXDWFWIUTADEWHWEWGFWSAWEEVAZVEVBXDXHMZWFWIXJWTWEDXDXHVC
      ZWDXAXCXHUQVDXJXCWIXBXCXHUSXJXHXCWIVFXKXHEWHWGXIVGTVHVPVIAGVJVKVLGWTVMVNV
      OWTAUMVQVRXEWMAWTELEAWLWTEVSAEVTVRTWAWBWABHWQWNWMWCT $.
  $}

  ${
    $d x y z A $.  $d x y z F $.  $d y z B $.
    $( A preimage of a disjoint set is disjoint.  (Contributed by Thierry
       Arnoux, 7-Feb-2017.) $)
    disjpreima $p |- ( ( Fun F /\ Disj_ x e. A B )
                                              -> Disj_ x e. A ( `' F " B ) ) $=
      ( vy vz wdisj cima cv wceq csb cin c0 wo wral csbima12 cvv wcel csbconstg
      vex wfun ccnv inpreima imaeq2 ima0 syl6eq sylan9req ax-mp imaeq1i ineq12i
      ex eqtri eqeq1i syl6ibr orim2d ralimdv disjors 3imtr4g imp ) DUAZABCGZABD
      UBZCHZGZUTEIZFIZJZAVECKZAVFCKZLZMJZNZFBOZEBOVGAVEVCKZAVFVCKZLZMJZNZFBOZEB
      OVAVDUTVMVSEBUTVLVRFBUTVKVQVGUTVKVBVHHZVBVIHZLZMJZVQUTVKWCUTVKWBVBVJHZMVH
      VIDUCVKWDVBMHMVJMVBUDVBUEUFUGUKVPWBMVNVTVOWAVNAVEVBKZVHHVTAVECVBPWEVBVHVE
      QRWEVBJETAVEVBQSUHUIULVOAVFVBKZVIHWAAVFCVBPWFVBVIVFQRWFVBJFTAVFVBQSUHUIUL
      UJUMUNUOUPUPABCEFUQABVCEFUQURUS $.
  $}

  ${
    $d A x y z $.  $d B y z $.
    $( Rewriting a disjoint collection using the range of a mapping.
       (Contributed by Thierry Arnoux, 27-May-2020.) $)
    disjrnmpt $p |- ( Disj_ x e. A B -> Disj_ y e. ran ( x e. A |-> B ) y ) $=
      ( vz wdisj cv wceq wrex cab cmpt crn disjabrex wb eqid rnmpt ax-mp sylibr
      disjeq1 ) ACDFBEGDHACIEJZBGZFZBACDKZLZUAFZABECDMUDTHUEUBNAECDUCUCOPBUDTUA
      SQR $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.
    $( If a collection is disjoint, so is the collection of the intersections
       with a given set.  (Contributed by Thierry Arnoux, 14-Feb-2017.) $)
    disjin $p |- ( Disj_ x e. B C -> Disj_ x e. B ( C i^i A ) ) $=
      ( vy cv wcel wrmo wal cin wdisj wa wi elinel1 anim2i ax-gen rmoimi2 alimi
      df-disj 3imtr4i ) EFZDGZACHZEIUADBJZGZACHZEIACDKACUDKUCUFEUEUBACCAFCGZUEL
      UGUBLMAUEUBUGUADBNOPQRAECDSAECUDST $.

    $( If a collection is disjoint, so is the collection of the intersections
       with a given set.  (Contributed by Thierry Arnoux, 21-Jun-2020.) $)
    disjin2 $p |- ( Disj_ x e. B C -> Disj_ x e. B ( A i^i C ) ) $=
      ( vy cv wcel wrmo wal cin wdisj wa wi elinel2 anim2i ax-gen rmoimi2 alimi
      df-disj 3imtr4i ) EFZDGZACHZEIUABDJZGZACHZEIACDKACUDKUCUFEUEUBACCAFCGZUEL
      UGUBLMAUEUBUGUABDNOPQRAECDSAECUDST $.
  $}

  ${
    $d a c p q r x A $.  $d b d p q r y B $.  $d a c p C $.  $d b d p D $.
    $d q r x E $.  $d q r y F $.  $d q r ph $.
    disjxpin.1 $e |- ( x = ( 1st ` p ) -> C = E ) $.
    disjxpin.2 $e |- ( y = ( 2nd ` p ) -> D = F ) $.
    disjxpin.3 $e |- ( ph -> Disj_ x e. A C ) $.
    disjxpin.4 $e |- ( ph -> Disj_ y e. B D ) $.
    $( Derive a disjunction over a Cartesian product from the disjunctions over
       its first and second elements.  (Contributed by Thierry Arnoux,
       9-Mar-2018.) $)
    disjxpin $p |- ( ph -> Disj_ p e. ( A X. B ) ( E i^i F ) ) $=
      ( wceq cin csb c0 wo wa vq vr va vc vb vd cv cxp wral wdisj wcel c1st cfv
      c2nd xp1st ad2antrl ad2antll simpl sylib eqeq1 csbeq1 ineq1d eqeq1d eqeq2
      disjors orbi12d ineq2d rspc2v syl5 imp syl21anc xp2nd jca anddi wb xpopth
      orass adantl biimpd wi wss inss2 csbin ineq12i in4 eqtri cvv vex csbnestg
      ax-mp fvex csbie csbeq2i csbfv 3eqtr3ri 3sstr4i sseq0 a1i adantld adantrd
      mpan inss1 jaod orim12d mpd ralrimivva sylibr ) AUAUGZUBUGZOZJXHHIPZQZJXI
      XKQZPZROZSZUBDEUHZUIUAXQUIJXQXKUJAXPUAUBXQXQAXHXQUKZXIXQUKZTZTZXHULUMZXIU
      LUMZOZXHUNUMZXIUNUMZOZTZYDCYEGQZCYFGQZPZROZTZBYBFQZBYCFQZPZROZYGTZYQYLTZS
      ZSZSZXPYAYHYMSYTSZUUBYAYDYQSZYGYLSZTUUCYAUUDUUEYAYBDUKZYCDUKZAUUDXRUUFAXS
      XHDEUOUPXSUUGAXRXIDEUOUQAXTURZUUFUUGTZAUUDAUCUGZUDUGZOZBUUJFQZBUUKFQZPZRO
      ZSZUDDUIUCDUIZUUIUUDABDFUJUURMBDFUCUDVEUSUUQUUDYBUUKOZYNUUNPZROZSUCUDYBYC
      DDUUJYBOZUULUUSUUPUVAUUJYBUUKUTUVBUUOUUTRUVBUUMYNUUNBUUJYBFVAVBVCVFUUKYCO
      ZUUSYDUVAYQUUKYCYBVDUVCUUTYPRUVCUUNYOYNBUUKYCFVAVGVCVFVHVIVJVKYAYEEUKZYFE
      UKZAUUEXRUVDAXSXHDEVLUPXSUVEAXRXIDEVLUQUUHUVDUVETZAUUEAUEUGZUFUGZOZCUVGGQ
      ZCUVHGQZPZROZSZUFEUIUEEUIZUVFUUEACEGUJUVONCEGUEUFVEUSUVNUUEYEUVHOZYIUVKPZ
      ROZSUEUFYEYFEEUVGYEOZUVIUVPUVMUVRUVGYEUVHUTUVSUVLUVQRUVSUVJYIUVKCUVGYEGVA
      VBVCVFUVHYFOZUVPYGUVRYLUVHYFYEVDUVTUVQYKRUVTUVKYJYICUVHYFGVAVGVCVFVHVIVJV
      KVMYDYQYGYLVNUSYHYMYTVQUSYAYHXJUUAXOYAYHXJXTYHXJVOAXHXIDEDEVPVRVSYAYMXOYT
      YAYLXOYDYLXOVTYAXNYKWAYLXOJXHHQZJXIHQZPZJXHIQZJXIIQZPZPZUWFXNYKUWCUWFWBXN
      UWAUWDPZUWBUWEPZPUWGXLUWHXMUWIJXHHIWCJXIHIWCWDUWAUWDUWBUWEWEWFZYIUWDYJUWE
      JXHCJUGZUNUMZGQZQZCJXHUWLQZGQZUWDYIXHWGUKZUWNUWPOUAWHZJCXHUWLGWGWIWJJXHUW
      MICUWLGIUWKUNWKLWLZWMUWOYEOUWPYIOJXHUNWNCUWOYEGVAWJWOJXIUWMQZCJXIUWLQZGQZ
      UWEYJXIWGUKZUWTUXBOUBWHZJCXIUWLGWGWIWJJXIUWMIUWSWMUXAYFOUXBYJOJXIUNWNCUXA
      YFGVAWJWOWDWPXNYKWQXAWRZWSYAYRXOYSYAYQXOYGYQXOVTYAXNYPWAYQXOUWGUWCXNYPUWC
      UWFXBUWJYNUWAYOUWBJXHBUWKULUMZFQZQZBJXHUXFQZFQZUWAYNUWQUXHUXJOUWRJBXHUXFF
      WGWIWJJXHUXGHBUXFFHUWKULWKKWLZWMUXIYBOUXJYNOJXHULWNBUXIYBFVAWJWOJXIUXGQZB
      JXIUXFQZFQZUWBYOUXCUXLUXNOUXDJBXIUXFFWGWIWJJXIUXGHUXKWMUXMYCOUXNYOOJXIULW
      NBUXMYCFVAWJWOWDWPXNYPWQXAWRWTYAYLXOYQUXEWSXCXCXDXEXFJXQXKUAUBVEXG $.
  $}

  ${
    $d a b k m n x y $.  $d a b m x y A $.  $d a b m x y B $.
    iundisjf.1 $e |- F/_ k A $.
    iundisjf.2 $e |- F/_ n B $.
    iundisjf.3 $e |- ( n = k -> A = B ) $.
    $( Rewrite a countable union as a disjoint union.  Cf. ~ iundisj .
       (Contributed by Thierry Arnoux, 31-Dec-2016.) $)
    iundisjf $p |- U_ n e. NN A = U_ n e. NN ( A \ U_ k e. ( 1 ..^ n ) B ) $=
      ( vx vm cn ciun c1 cv cfzo wcel wrex cr clt nfcv nfcri cdif csb crab cinf
      co wa cuz cfv wss wne ssrab2 nnuz sseqtri rabn0 biimpri infssuzcl sylancr
      c0 nfrab1 nfinf nfcsb1 wceq csbeq1a eleq2d elrabf sylib simpld simprd wbr
      nnred ltnrd eliun nfrex nfbr ad2antrr elfzouz syl6eleqr ad2antlr sylanbrc
      nfrab simpr infssuzle elfzolt2 lelttrd exp31 rexlimd syl5bi eldifd csbeq1
      cle mtod nfeq2 nfov oveq2 eqidd iuneq12df difeq12d rspcev syl2anc nfcsb1v
      nfv nfiun nfdif iuneq1d cbvrex sylibr eldifi reximi impbii 3bitr4i eqriv
      ) HDJAKZDJACLDMZNUEZBKZUAZKZHMZAOZDJPZXRXPOZDJPZXRXLOXRXQOXTYBXTXRDIMZAUB
      ZCLYCNUEZBKZUAZOZIJPZYBXTXSDJUCZQRUDZJOZXRDYKAUBZCLYKNUEZBKZUAZOZYIXTYLXR
      YMOZXTYKYJOZYLYRUFXTYJLUGUHZUIZYJURUJZYSYJJYTXSDJUKULUMZUUBXTXSDJUNUOYJLU
      PUQXSYRDYKJDYJQRXSDJUSDQSDRSUTZDJSZDHYMDYKAUUDVATXMYKVBAYMXRDYKAVCVDVEVFZ
      VGZXTXRYMYOXTYLYRUUFVHXTXRYOOZYKYKRVIZXTYKXTYKUUGVJZVKUUHXRBOZCYNPXTUUICX
      RYNBVLXTUUKUUICYNXSCDJCJSZCHAETZVMCYKYKRCYJQRXSCDJUUMUULVTCQSCRSZUTZUUNUU
      OVNXTCMZYNOZUUKUUIXTUUQUFZUUKUFZYKUUPYKXTYKQOUUQUUKUUJVOZUUSUUPUUQUUPJOZX
      TUUKUUQUUPYTJUUPLYKVPULVQVRZVJUUTUUSUUAUUPYJOZYKUUPWJVIUUCUUSUVAUUKUVCUVB
      UURUUKWAXSUUKDUUPJDUUPSUUEDHBFTXMUUPVBABXRGVDVEVSUUPYJLWBUQUUQUUPYKRVIXTU
      UKUUPLYKWCVRWDWEWFWGWKWHYHYQIYKJYCYKVBZYGYPXRUVDYDYMYFYODYCYKAWIUVDCYEYNB
      BCYCYKUUOWLCYESCLYKNCLSCNSUUOWMYCYKLNWNUVDBWOWPWQVDWRWSYAYHDIJYAIXADHYGDY
      DYFDYCAWTCDYEBDYESFXBXCTXMYCVBZXPYGXRUVEAYDXOYFDYCAVCUVECXNYEBXMYCLNWNXDW
      QVDXEXFYAXSDJXRAXOXGXHXIDXRJAVLDXRJXPVLXJXK $.

    $( A disjoint union is disjoint.  Cf. ~ iundisj2 .  (Contributed by Thierry
       Arnoux, 30-Dec-2016.) $)
    iundisj2f $p |- Disj_ n e. NN ( A \ U_ k e. ( 1 ..^ n ) B ) $=
      ( vx vy va vb cn c1 cv cfzo weq csb cin c0 wcel ciun cdif wdisj wceq wral
      co wo wtru tru eqeq12 csbeq1 ineqan12d eqeq1d orbi12d equcom syl6bb incom
      wa syl6eq cr wss nnssre a1i biidd cle wbr w3a wn wne nesym clt wb nnre id
      leltne syl3an vex nfcsb1v nfcv nfiun nfdif csbeq1a oveq2 iuneq1d difeq12d
      wi csbief ineq12i cuz cfv simp1 nnuz syl6eleq simp2 nnzd elfzo2 syl3anbrc
      cz simp3 nfcsb csbhypf equcoms eqcomd ssiun2sf syl ssdifssd ssrin disjdif
      syl5eqss sylancl 3expia 3adant3 sylbird syl5bir orrd adantl wlogle rgen2a
      sseq0 mpan disjors mpbir ) DLACMDNZOUFZBUAZUBZUCHIPZDHNZYFQZDINZYFQZRZSUD
      ZUGZILUEHLUEYNHILUHYHLTZYJLTZURZYNUIUHJKPZDJNZYFQZDKNZYFQZRZSUDZUGYNYNHIJ
      KLJHPZKIPZURZYRYGUUDYMYSYHUUAYJUJUUGUUCYLSUUEUUFYTYIUUBYKDYSYHYFUKDUUAYJY
      FUKULUMUNJIPZKHPZURZYRYGUUDYMUUJYRIHPYGYSYJUUAYHUJIHUOUPUUJUUCYLSUUJUUCYK
      YIRYLUUHUUIYTYKUUBYIDYSYJYFUKDUUAYHYFUKULYKYIUQUSUMUNLUTVAUHVBVCUHYQURYNV
      DYOYPYHYJVEVFZVGZYNUHUULYGYMYGVHYJYHVIZUULYMYJYHVJUULUUMYHYJVKVFZYMYOYHUT
      TYPYJUTTUUKUUKUUNUUMVLYHVMYJVMUUKVNYHYJVOVPYOYPUUNYMWFUUKYOYPUUNYMYOYPUUN
      VGZYLCMYJOUFZBUAZDYJAQZUUQUBZRZVAUUTSUDYMUUOYLDYHAQZCMYHOUFZBUAZUBZUUSRZU
      UTYIUVDYKUUSDYHYFUVDHVQDUVAUVCDYHAVRCDUVBBDUVBVSFVTWADHPZAUVAYEUVCDYHAWBU
      VFCYDUVBBYCYHMOWCWDWEWGDYJYFUUSIVQDUURUUQDYJAVRCDUUPBDUUPVSFVTWADIPZAUURY
      EUUQDYJAWBUVGCYDUUPBYCYJMOWCWDWEWGWHUUOUVDUUQVAUVEUUTVAUUOUVAUUQUVCUUOYHU
      UPTZUVAUUQVAUUOYHMWIWJZTYJWRTUUNUVHUUOYHLUVIYOYPUUNWKWLWMUUOYJYOYPUUNWNWO
      YOYPUUNWSYHMYJWPWQCUUPBYHUVACUUPVSCYHVSZCDYHAUVJEWTCHPUVABUVABUDHCDHCNZAB
      DUVKVSFGXAXBXCXDXEXFUVDUUQUUSXGXEXIUUQUURXHYLUUTXSXJXKXLXMXNXOXPXQXTXRDLY
      FHIYAYB $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d x y z C $.  $d x z D $.  $d x y F $.
    $d x y z ph $.
    disjrdx.1 $e |- ( ph -> F : A -1-1-onto-> C ) $.
    disjrdx.2 $e |- ( ( ph /\ y = ( F ` x ) ) -> D = B ) $.
    $( Re-index a disjunct collection statement.  (Contributed by Thierry
       Arnoux, 7-Apr-2017.) $)
    disjrdx $p |- ( ph -> ( Disj_ x e. A B <-> Disj_ y e. C D ) ) $=
      ( vz cv wcel wrmo wal wdisj wa wceq wreu df-disj cfv wf1o wf f1of f1ofveu
      ffvelrnda sylan eqcom reubii sylib eleq2d rmoxfrd bicomd albidv 3bitr4g
      syl ) AKLZEMZBDNZKOUQGMZCFNZKOBDEPCFGPAUSVAKAVAUSAUTURCBBLZHUAZFDADFVBHAD
      FHUBZDFHUCIDFHUDUPUFACLZFMZQVCVERZBDSZVEVCRZBDSAVDVFVHIBDFVEHUEUGVGVIBDVC
      VEUHUIUJAVIQGEUQJUKULUMUNBKDETCKFGTUO $.
  $}

  ${
    $d z A $.  $d z B $.
    $( Two ways to say that two classes are disjoint (or equal).  (Contributed
       by Thierry Arnoux, 4-Oct-2016.) $)
    disjex $p |- ( ( E. z ( z e. A /\ z e. B ) -> A = B ) <->
      ( A = B \/ ( A i^i B ) = (/) ) ) $=
      ( wceq cv wcel wa wex wn wo cin c0 orcom wne cab df-in neeq1i abn0 bitr2i
      wi necon2bbii orbi2i imor 3bitr4ri ) BCDZAEZBFUFCFGZAHZIZJUIUEJUEBCKZLDZJ
      UHUETUEUIMUKUIUEUHUJLUJLNUGAOZLNUHUJULLABCPQUGARSUAUBUHUEUCUD $.

    disjexc.1 $e |- ( x = y -> A = B ) $.
    $( A variant of ~ disjex , applicable for more generic families.
       (Contributed by Thierry Arnoux, 4-Oct-2016.) $)
    disjexc $p |- ( ( E. z ( z e. A /\ z e. B ) -> x = y ) ->
      ( A = B \/ ( A i^i B ) = (/) ) ) $=
      ( cv wcel wa wex wceq wi cin c0 wo imim2i wn orcom wne cab neeq1i 3bitr4i
      df-in abn0 bitr2i necon2bbii orbi2i imor sylibr ) CGZDHUJEHIZCJZAGBGKZLUL
      DEKZLZUNDEMZNKZOZUMUNULFPUNULQZOUSUNOURUOUNUSRUQUSUNULUPNUPNSUKCTZNSULUPU
      TNCDEUCUAUKCUDUEUFUGULUNUHUBUI $.
  $}

  ${
    $d i j x A $.  $d i j B $.  $d i j x C $.  $d i j x M $.  $d i j x V $.
    disjunsn.s $e |- ( x = M -> B = C ) $.
    $( Append an element to a disjoint collection.  Similar to ~ ralunsn ,
       ~ gsumunsn , etc.  (Contributed by Thierry Arnoux, 28-Mar-2018.) $)
    disjunsn $p |- ( ( M e. V /\ -. M e. A ) -> ( Disj_ x e. ( A u. { M } ) B
      <-> ( Disj_ x e. A B /\ ( U_ x e. A B i^i C ) = (/) ) ) ) $=
      ( vi vj wa wceq cin c0 wo wral wb ineq1d eqeq1d ralbidv syl6bb wn csn cun
      wcel wdisj cv csb ciun disjors eqeq1 csbeq1 orbi12d ralunsn syl5bb ineq2d
      eqeq2 eqid orci biantru syl6bbr anbi12d bitrd r19.26 anbi1i bitr4i adantr
      orcom ralbii r19.30 risset biorf sylnbi adantl syl5ibr syl5bir olc ralimi
      wrex impbid1 nfv nfcsb1v nfcv nfin nfeq1 csbeq1a cbvral ss0b iunss iunin1
      a1i eqeq1i 3bitr3ri bitri nfcvd csbiegf 3bitr4d bitr4d anbi2d clel5 incom
      wss anass anidm anbi2i ) EFUDZEBUDZUAZJZABEUBUCZCUEZABCUEZHUFZEKZAXLCUGZA
      ECUGZLZMKZNZHBOZJZEIUFZKZXOAYACUGZLZMKZNZIBOZJZXKABCUHDLZMKZJZXEXJYHPXGXE
      XJXLYAKZXNYCLZMKZNZIBOZXRJZHBOZYGJZYHXEXJYOIXIOZHBOZYFIXIOZJZYSXJYTHXIOXE
      UUCAXICHIUIYTUUBHBEFXMYOYFIXIXMYLYBYNYEXLEYAUJXMYMYDMXMXNXOYCAXLECUKQRULS
      UMUNXEUUAYRUUBYGXEYTYQHBYOXRIBEFYAEKZYLXMYNXQYAEXLUPUUDYMXPMUUDYCXOXNAYAE
      CUKZUORULUMSXEUUBYGEEKZXOXOLZMKZNZJYGYFUUIIBEFUUDYBUUFYEUUHYAEEUPUUDYDUUG
      MUUDYCXOXOUUEUORULUMUUIYGUUFUUHEUQURUSUTVAVBYRXTYGYRYPHBOZXSJXTYPXRHBVCXK
      UUJXSABCHIUIVDVEVDTVFXHYHYKYJJZYKXHXTYKYGYJXHXSYJXKXHXSXQHBOZYJXHXSUULXSX
      QXMNZHBOZXHUULUUMXRHBXQXMVGVHUUNUULXHUULXMHBVRZNZXQXMHBVIXHUULUUOUULNZUUP
      XGUULUUQPZXEXFUUOUURHEBVJUUOUULVKVLVMUUOUULVGTVNVOXQXRHBXQXMVPVQVSXEYJUUL
      PXGXECDLZMKZABOZXNDLZMKZHBOZYJUULUVAUVDPXEUUTUVCAHBUUTHVTAUVBMAXNDAXLCWAA
      DWBZWCWDAUFZXLKZUUSUVBMUVGCXNDAXLCWEQRWFWJYJUVAPXEYJUUSMXAZABOZUVAABUUSUH
      ZMXAUVJMKUVIYJUVJWGABUUSMWHUVJYIMABDCWIWKWLUVHUUTABUUSWGVHWMWJZXEXQUVCHBX
      EXPUVBMXEXODXNAECDFXEADWNGWOZUORSWPVFWQWRXHYGYEIBOZYJXHYGUVMYGYEYBNZIBOZX
      HUVMUVNYFIBYEYBVGVHUVOUVMXHUVMYBIBVRZNZYEYBIBVIXHUVMUVPUVMNZUVQXGUVMUVRPZ
      XEXFUVPUVSIBEWSUVPUVMVKVLVMUVPUVMVGTVNVOYEYFIBYEYBVPVQVSXEYJUVMPXGXEUVADY
      CLZMKZIBOZYJUVMXEUVAYCDLZMKZIBOZUWBUVAUWEPXEUUTUWDAIBUUTIVTAUWCMAYCDAYACW
      AUVEWCWDUVFYAKZUUSUWCMUWFCYCDAYACWEQRWFWJUWDUWAIBUWCUVTMYCDWTWKVHTUVKXEYE
      UWAIBXEYDUVTMXEXODYCUVLQRSWPVFWQVAUUKXKYJYJJZJYKXKYJYJXBUWGYJXKYJXCXDWMTV
      B $.
  $}

  ${
    $d A x $.
    $( Adding the empty element preserves disjointness.  (Contributed by
       Thierry Arnoux, 30-May-2020.) $)
    disjun0 $p |- ( Disj_ x e. A x -> Disj_ x e. ( A u. { (/) } ) x ) $=
      ( cv wdisj c0 wcel csn cun wss wceq snssi ssequn2 sylib disjeq1d biimparc
      wn wa ciun cin cvv simpl in0 a1i wb 0ex id disjunsn mpan adantl mpbir2and
      pm2.61dan ) ABACZDZEBFZABEGZHZULDZUNUQUMUNAUPBULUNUOBIUPBJEBKUOBLMNOUMUNP
      ZQZUQUMABULRZESEJZUMURUAVAUSUTUBUCURUQUMVAQUDZUMETFURVBUEABULEETULEJUFUGU
      HUIUJUK $.
  $}

  ${
    $d A x $.  $d D x $.  $d E x $.  $d Y x $.
    disjiunel.1 $e |- ( ph -> Disj_ x e. A B ) $.
    disjiunel.2 $e |- ( x = Y -> B = D ) $.
    disjiunel.3 $e |- ( ph -> E C_ A ) $.
    disjiunel.4 $e |- ( ph -> Y e. ( A \ E ) ) $.
    $( A set of elements B of a disjoint set A is disjoint with another element
       of that set.  (Contributed by Thierry Arnoux, 24-May-2020.) $)
    disjiunel $p |- ( ph -> ( U_ x e. E B i^i D ) = (/) ) $=
      ( wdisj ciun cin c0 wceq csn cun wa wcel eldifad snssd unssd disjss1 sylc
      wss wn wb eldifbd disjunsn syl2anc mpbid simprd ) ABFDLZBFDMENOPZABFGQZRZ
      DLZUNUOSZAUQCUFBCDLURAFUPCJAGCAGCFKUAZUBUCHBUQCDUDUEAGCTGFTUGURUSUHUTAGCF
      KUIBFDEGCIUJUKULUM $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.
    disjuniel.1 $e |- ( ph -> Disj_ x e. A x ) $.
    disjuniel.2 $e |- ( ph -> B C_ A ) $.
    disjuniel.3 $e |- ( ph -> C e. ( A \ B ) ) $.
    $( A set of elements B of a disjoint set A is disjoint with another element
       of that set.  (Contributed by Thierry Arnoux, 24-May-2020.) $)
    disjuniel $p |- ( ph -> ( U. B i^i C ) = (/) ) $=
      ( cuni cin cv ciun c0 uniiun ineq1i wceq id disjiunel syl5eq ) ADIZEJBDBK
      ZLZEJMTUBEBDNOABCUAEDEFUAEPQGHRS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Relations and Functions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Relations - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Restriction of a constant function (or other Cartesian product) outside of
     its domain.  (Contributed by Thierry Arnoux, 25-Jan-2017.) $)
  xpdisjres $p |- ( ( A i^i C ) = (/) -> ( ( A X. B ) |` C ) = (/) ) $=
    ( cin c0 wceq cxp cres cvv df-res xpdisj1 syl5eq ) ACDEFABGZCHMCIGDEMCJACBI
    KL $.

  $( Ordered pair elementhood outside of the diagonal.  (Contributed by Thierry
     Arnoux, 1-Jan-2020.) $)
  opeldifid $p |- ( Rel A -> ( <. X , Y >. e. ( A \ _I ) <-> ( <. X , Y >. e. A
    /\ X =/= Y ) ) ) $=
    ( wrel cid cdif wbr wne wa cop wcel cvv reldif brrelex2 sylan adantrr brdif
    wn ideqg df-br necon3bbid anbi2d syl5bb pm5.21nd anbi1i 3bitr3g ) ADZBCAEFZ
    GZBCAGZBCHZIZBCJZUHKUMAKZUKIUGUIULCLKZUGUHDUIUOAEMBCUHNOUGUJUOUKBCANPUIUJBC
    EGZRZIUOULBCAEQUOUQUKUJUOUPBCBCLSUAUBUCUDBCUHTUJUNUKBCATUEUF $.

  $( Case when class difference in unaffected by restriction.  (Contributed by
     Thierry Arnoux, 1-Jan-2020.) $)
  difres $p |- ( A C_ ( B X. _V ) -> ( A \ ( C |` B ) ) = ( A \ C ) ) $=
    ( cvv cxp wss cres cdif cin df-res difeq2i cun difindi ssdif difid syl6sseq
    c0 wceq ss0 syl5eq syl uneq2d un0 syl6eq ) ABDEZFZACBGZHACUEIZHZACHZUGUHACB
    JKUFUIUJQLZUJUFUIUJAUEHZLUKACUEMUFULQUJUFULQFULQRUFULUEUEHQAUEUENUEOPULSUAU
    BTUJUCUDT $.

  $( Image of the difference with a Cartesian product.  (Contributed by Thierry
     Arnoux, 13-Dec-2017.) $)
  imadifxp $p |- ( C C_ A ->
    ( ( R \ ( A X. B ) ) " C ) = ( ( R " C ) \ B ) ) $=
    ( wss cxp cdif cima wceq c0 imaeq2 syl6eq adantl wne cun cin syl5eq cvv crn
    ima0 difeq1d 0dif 3eqtr4a wa inundif imaeq1i imaundir eqtr3i difundir eqtri
    difeq1i inss2 imass1 ssdif mp2b xpima wn incom df-ss biimpi syl5eqr eqnetrd
    cif simpl df-ne iffalse 3syl difid syl5sseq cres df-ima df-res rneqi ineq1i
    ss0 syl xpss1 sslin rnss ssn0 ancoms inss1 ax-mp indif2 difxp2 3sstr4i mp1i
    sseqtrd disj2 sylibr ssdisj syl2anc disj3 sylib eqcomd uneq12d uncom eqtr2i
    rnxp un0 syl6reqr pm2.61dane ) CAEZDABFZGZCHZDCHZBGZIZCJCJIZXIXCXJXEJHJXFXH
    XETCJXEKXJXHJBGJXJXGJBXJXGDJHJCJDKDTLUABUBLUCMCJNZXCXIXKXCUDZXHJXFOZXFXLXHD
    XDPZCHZBGZXFBGZOZXMXHXOXFOZBGXRXGXSBXNXEOZCHXGXSXTDCDXDUEUFXNXECUGUHUKXOXFB
    UIUJXLXPJXQXFXLXPJEXPJIXLXDCHZBGZXPJXNXDEXOYAEXPYBEDXDULXNXDCUMXOYABUNUOXLY
    BBBGJXLYABBXLYAACPZJIZJBVCZBABCUPXLYCJNZYDUQZYEBIXLYCCJXCYCCIXKXCYCCAPZCCAU
    RXCYHCICAUSUTVAMXKXCVDVBYFYGYCJVEUTYDJBVFVGQUABVHLVIXPVOVPXLXFXQXLXFBPZJIXF
    XQIXLYIXECRFZPZSZBPZJXFYLBXFXECVJZSYLXECVKYNYKXECVLVMUJVNXLYLXEARFZPZSZEZYQ
    BPJIZYMJIXCYRXKXCYJYOEYKYPEYRCARVQYJYOXEVRYKYPVSVGMXLAJNZYSXCXKYTCAVTWAYTYQ
    RBGZEYSYTYQAUUAFZSZUUAYPUUBEYQUUCEYTYODPZXDGZYOXDGZYPUUBUUDYOEUUEUUFEYODWBU
    UDYOXDUNWCYOXEPYPUUEYOXEURYODXDWDUHARBWEWFYPUUBVSWGAUUAWSWHYQBWIWJVPYLYQBWK
    WLQXFBWMWNWOWPQXMXFJOXFJXFWQXFWTWRXAWAXB $.

  $( A relation (set) is finite if and only if both its domain and range are
     finite.  (Contributed by Thierry Arnoux, 27-Aug-2017.) $)
  relfi $p |- ( Rel A ->
                       ( A e. Fin <-> ( dom A e. Fin /\ ran A e. Fin ) ) ) $=
    ( wrel cfn wcel cdm crn wa dmfi rnfi jca cxp xpfi relssdmrn ssfi syl2anr ex
    wss impbid2 ) ABZACDZAEZCDZAFZCDZGZTUBUDAHAIJSUETUEUAUCKZCDAUFQTSUAUCLAMUFA
    NOPR $.

  $( Restriction of a disjoint union to the domain of the first term.
     (Contributed by Thierry Arnoux, 9-Dec-2021.) $)
  funresdm1 $p |- ( ( Rel A /\ ( dom A i^i dom B ) = (/) )
    -> ( ( A u. B ) |` dom A ) = A ) $=
    ( wrel cdm cin c0 wceq wa cun cres resundir resdm adantr dmres simpr syl5eq
    wb relres reldm0 ax-mp sylibr uneq12d un0 syl6eq ) ACZADZBDEZFGZHZABIUFJAUF
    JZBUFJZIZAABUFKUIULAFIAUIUJAUKFUEUJAGUHALMUIUKDZFGZUKFGZUIUMUGFBUFNUEUHOPUK
    CUOUNQBUFRUKSTUAUBAUCUDP $.

  $( Restriction of a disjoint union to the domain of the first function.
     (Contributed by Thierry Arnoux, 9-Dec-2021.) $)
  fnunres1 $p |- ( ( F Fn A /\ G Fn B /\ ( A i^i B ) = (/) )
    -> ( ( F u. G ) |` A ) = F ) $=
    ( wfn cin c0 wceq w3a cun cdm cres fndm 3ad2ant1 reseq2d wrel fnrel ineq12d
    3ad2ant2 simp3 eqtrd funresdm1 syl2anc eqtr3d ) CAEZDBEZABFZGHZIZCDJZCKZLZU
    JALCUIUKAUJUEUFUKAHUHACMNZOUICPZUKDKZFZGHULCHUEUFUNUHACQNUIUPUGGUIUKAUOBUMU
    FUEUOBHUHBDMSRUEUFUHTUACDUBUCUD $.

  $( Build an equivalence relation from a function.  Two values are equivalent
     if they have the same image by the function.  See also ~ fcoinvbr .
     (Contributed by Thierry Arnoux, 3-Jan-2020.) $)
  fcoinver $p |- ( F Fn X -> ( `' F o. F ) Er X ) $=
    ( wfn ccnv ccom wrel cdm wceq cun wss wer relco a1i cima dmco df-rn syl5eqr
    crn syl5eq coass imaeq2i cnvimarndm fndm cnvco cnvcnvss coss2 ax-mp eqsstri
    cid cres wfun fnfun funcocnv2 coeq1d wf dffn3 fcoi2 sylbi eqtrd coeq2d ssid
    syl syl6eqss unssd df-er syl3anbrc ) ABCZADZAEZFZVIGZBHVIDZVIVIEZIVIJBVIKVJ
    VGVHALMVGVKVHVHGZNZBVHAOVGVOVHARZNZBVPVNVHAPUAVGVQAGBAUBBAUCSQSVGVLVMVIVLVI
    JVGVLVHVHDZEZVIVHAUDVRAJVSVIJAUEVRAVHUFUGUHMVGVMVIVIVGVMVHAVIEZEVIVHAVITVGV
    TAVHVGVTAVHEZAEZAAVHATVGWBUIVPUJZAEZAVGWAWCAVGAUKWAWCHBAULAUMVBUNVGBVPAUOWD
    AHBAUPBVPAUQURUSQUTSVIVAVCVDBVIVEVF $.

  ${
    $d A z $.  $d F z $.  $d X z $.  $d Y z $.
    fcoinvbr.e $e |- .~ = ( `' F o. F ) $.
    $( Binary relation for the equivalence relation from ~ fcoinver .
       (Contributed by Thierry Arnoux, 3-Jan-2020.) $)
    fcoinvbr $p |- ( ( F Fn A /\ X e. A /\ Y e. A )
       -> ( X .~ Y <-> ( F ` X ) = ( F ` Y ) ) ) $=
      ( vz wfn wcel wbr wa wex cfv wceq wb syl5bb eqcom fnbrfvb cvv bitr4d ccnv
      w3a cv ccom breqi brcog 3adant1 fvex eqvinc anbi12i exbii 3adant3 3adant2
      bitri anbi12d vex brcnvg mpan 3ad2ant3 anbi2d exbidv ) CAHZDAIZEAIZUBZDEB
      JZDGUCZCJZVGECUAZJZKZGLZDCMZECMZNZVCVDVFVLOVBVFDEVICUDZJVCVDKVLDEBVPFUEGD
      EVICAAUFPUGVOVMVGNZVNVGNZKZGLZVEVLVOVGVMNZVGVNNZKZGLVTGVMVNDCUHUIWCVSGWAV
      QWBVRVGVMQVGVNQUJUKUNVEVSVKGVEVSVHEVGCJZKVKVEVQVHVRWDVBVCVQVHOVDADVGCRULV
      BVDVRWDOVCAEVGCRUMUOVEVJWDVHVDVBVJWDOZVCVGSIVDWEGUPVGESACUQURUSUTTVAPT $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d y ps $.
    brabgaf.0 $e |- F/ x ps $.
    brabgaf.1 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    brabgaf.2 $e |- R = { <. x , y >. | ph } $.
    $( The law of concretion for a binary relation.  (Contributed by Mario
       Carneiro, 19-Dec-2013.)  (Revised by Thierry Arnoux, 17-May-2020.) $)
    brabgaf $p |- ( ( A e. V /\ B e. W ) -> ( A R B <-> ps ) ) $=
      ( cop wcel wa cv wceq wex wb elisset copab df-br eleq2i bitri elopab nfe1
      wbr eeanv nfbi nfex nfv opeq12 copsexg eqcoms bitr3d exlimi sylbir syl2an
      syl syl5bb ) EFGUGZEFMZACDUAZNZEHNZFINZOZBVAVBGNVDEFGUBGVCVBLUCUDVDVBCPZD
      PZMZQAOZDRZCRZVGBACDVBUEVEVHEQZCRZVIFQZDRZVMBSZVFCEHTDFITVOVQOVNVPOZDRZCR
      VRVNVPCDUHVTVRCVMBCVLCUFJUIVSVRDVMBDVLDCVKDUFUJBDUKUIVSAVMBVSVJVBQAVMSZVH
      VIEFULWAVBVJACDVBUMUNUSKUOUPUPUQURUTUT $.
  $}

  $( Two things in a binary relation belong to the relation's domain.
     (Contributed by Thierry Arnoux, 29-Aug-2017.) $)
  brelg $p |- ( ( R C_ ( C X. D ) /\ A R B ) -> ( A e. C /\ B e. D ) ) $=
    ( cxp wss wbr wa wcel ssbr imp brxp sylib ) ECDFZGZABEHZIABOHZACJBDJIPQREOA
    BKLABCDMN $.

  ${
    $d a b c d e f g h p q A $.  $d a b c d e f g h p q B $.
    $d a b c d e f g h p q C $.  $d a b c d e f g h p q D $.
    $d a b c d e f g h p q E $.  $d a b c d e f g h p q F $.
    $d a b c d e f g h p q G $.  $d a b c d e f g h p q H $.
    $d a b c d e f g h p q P $.  $d a ch $.  $d b th $.  $d c ta $.  $d d et $.
    $d e ze $.  $d f si $.  $d g rh $.  $d p q ps $.  $d a b c d e f g h mu $.
    br8d.1 $e |- ( a = A -> ( ps <-> ch ) ) $.
    br8d.2 $e |- ( b = B -> ( ch <-> th ) ) $.
    br8d.3 $e |- ( c = C -> ( th <-> ta ) ) $.
    br8d.4 $e |- ( d = D -> ( ta <-> et ) ) $.
    br8d.5 $e |- ( e = E -> ( et <-> ze ) ) $.
    br8d.6 $e |- ( f = F -> ( ze <-> si ) ) $.
    br8d.7 $e |- ( g = G -> ( si <-> rh ) ) $.
    br8d.8 $e |- ( h = H -> ( rh <-> mu ) ) $.
    br8d.10 $e |- ( ph -> R = { <. p , q >. |
       E. a e. P E. b e. P E. c e. P E. d e. P E. e e. P
       E. f e. P E. g e. P E. h e. P ( p = <. <. a , b >. , <. c , d >. >. /\
       q = <. <. e , f >. , <. g , h >. >. /\ ps ) } ) $.
    br8d.11 $e |- ( ph -> A e. P ) $.
    br8d.12 $e |- ( ph -> B e. P ) $.
    br8d.13 $e |- ( ph -> C e. P ) $.
    br8d.14 $e |- ( ph -> D e. P ) $.
    br8d.15 $e |- ( ph -> E e. P ) $.
    br8d.16 $e |- ( ph -> F e. P ) $.
    br8d.17 $e |- ( ph -> G e. P ) $.
    br8d.18 $e |- ( ph -> H e. P ) $.
    $( Substitution for an eight-place predicate.  (Contributed by Scott
       Fenton, 26-Sep-2013.)  (Revised by Mario Carneiro, 3-May-2015.)
       (Revised by Thierry Arnoux, 21-Mar-2019.) $)
    br8d $p |- ( ph ->
      ( <. <. A , B >. , <. C , D >. >. R <. <. E , F >. , <. G , H >. >. <->
        mu ) ) $=
      ( cop wbr cv wceq w3a wrex copab breqd opex eqeq1 3anbi1d rexbidv 3anbi2d
      2rexbidv eqid brab syl6bb wcel wb wa wi vex sylan9bb sylbi eqcoms biimp3a
      opth rexlimdva rexlimdvva simpl1l simpl1r simpl21 simpl22 simpl23 simpl31
      simpl32 simpl33 eqidd simpr opeq1 opeq2d 3anbi23d opeq2 rspc2ev syl113anc
      a1i eqeq2d 3anbi13d opeq1d rspc3ev syl31anc ex impbid syl233anc bitrd ) A
      KLVHZMNVHZVHZUAUBVHZUCUDVHZVHZPVIZYEUGVJZUHVJZVHZUIVJZUJVJZVHZVHZVKZYHQVJ
      ZRVJZVHZSVJZTVJZVHZVHZVKZBVLZTOVMZSOVMROVMZQOVMUJOVMZUIOVMUHOVMZUGOVMZJAY
      IYEYHUFVJZYPVKZUEVJZUUDVKZBVLZTOVMZSOVMROVMZQOVMUJOVMZUIOVMUHOVMZUGOVMZUF
      UEVNZVIUUKAPUVBYEYHUSVOUVAYQUUOBVLZTOVMZSOVMROVMZQOVMUJOVMZUIOVMUHOVMZUGO
      VMUUKUFUEYEYHUVBYCYDVPYFYGVPUULYEVKZUUTUVGUGOUVHUUSUVFUHUIOOUVHUURUVEUJQO
      OUVHUUQUVDRSOOUVHUUPUVCTOUVHUUMYQUUOBUULYEYPVQVRVSWAWAWAVSUUNYHVKZUVGUUJU
      GOUVIUVFUUIUHUIOOUVIUVEUUHUJQOOUVIUVDUUGRSOOUVIUVCUUFTOUVIUUOUUEYQBUUNYHU
      UDVQVTVSWAWAWAVSUVBWBWCWDAKOWEZLOWEZMOWEZNOWEZUAOWEZUBOWEZUCOWEZUDOWEZUUK
      JWFUTVAVBVCVDVEVFVGUVJUVKWGZUVLUVMUVNVLZUVOUVPUVQVLZVLZUUKJUWAUUJJUGOUWAY
      JOWEWGZUUIJUHUIOOUWBYKOWEYMOWEWGWGZUUHJUJQOOUWCYNOWEYROWEWGWGZUUGJRSOOUWD
      YSOWEUUAOWEWGWGZUUFJTOUUFJWHUWEUUBOWEWGYQUUEBJYQBFUUEJBFWFZYPYEYPYEVKYLYC
      VKZYOYDVKZWGUWFYLYOYCYDYJYKVPYMYNVPWNUWGBDUWHFUWGYJKVKZYKLVKZWGBDWFYJYKKL
      UGWIUHWIWNUWIBCUWJDUKULWJWKUWHYMMVKZYNNVKZWGDFWFYMYNMNUIWIUJWIWNUWKDEUWLF
      UMUNWJWKWJWKWLFJWFZUUDYHUUDYHVKYTYFVKZUUCYGVKZWGUWMYTUUCYFYGYRYSVPUUAUUBV
      PWNUWNFHUWOJUWNYRUAVKZYSUBVKZWGFHWFYRYSUAUBQWIRWIWNUWPFGUWQHUOUPWJWKUWOUU
      AUCVKZUUBUDVKZWGHJWFUUAUUBUCUDSWITWIWNUWRHIUWSJUQURWJWKWJWKWLWJWMXMWOWPWP
      WPWOUWAJUUKUWAJWGZUVJUVKUVLYEYCMYNVHZVHZVKZUUEEVLZTOVMZSOVMZROVMZQOVMUJOV
      MZUUKUVJUVKUVSUVTJWQUVJUVKUVSUVTJWRUVLUVMUVNUVRUVTJWSUWTUVMUVNUVOYEYEVKZY
      HYFUUCVHZVKZHVLZTOVMSOVMZUXHUVLUVMUVNUVRUVTJWTUVLUVMUVNUVRUVTJXAUVOUVPUVQ
      UVRUVSJXBUWTUVPUVQUXIYHYHVKZJUXMUVOUVPUVQUVRUVSJXCUVOUVPUVQUVRUVSJXDUWTYE
      XEUWTYHXEUWAJXFUXLUXIUXNJVLUXIYHYFUCUUBVHZVHZVKZIVLSTUCUDOOUWRUXKUXQHIUXI
      UWRUXJUXPYHUWRUUCUXOYFUUAUCUUBXGXHXNUQXIUWSUXQUXNIJUXIUWSUXPYHYHUWSUXOYGY
      FUUBUDUCXJXHXNURXIXKXLUXFUXMUXIUUEFVLZTOVMSOVMUXIYHUAYSVHZUUCVHZVKZGVLZTO
      VMSOVMUJQRNUAUBOOOUWLUXDUXRSTOOUWLUXCUXIEFUUEUWLUXBYEYEUWLUXAYDYCYNNMXJXH
      XNUNXOWAUWPUXRUYBSTOOUWPUUEUYAFGUXIUWPUUDUXTYHUWPYTUXSUUCYRUAYSXGXPXNUOXI
      WAUWQUYBUXLSTOOUWQUYAUXKGHUXIUWQUXTUXJYHUWQUXSYFUUCYSUBUAXJXPXNUPXIWAXQXR
      UUIUXHYEKYKVHZYOVHZVKZUUECVLZTOVMZSOVMROVMZQOVMUJOVMYEYCYOVHZVKZUUEDVLZTO
      VMZSOVMROVMZQOVMUJOVMUGUHUIKLMOOOUWIUUHUYHUJQOOUWIUUGUYGRSOOUWIUUFUYFTOUW
      IYQUYEBCUUEUWIYPUYDYEUWIYLUYCYOYJKYKXGXPXNUKXOVSWAWAUWJUYHUYMUJQOOUWJUYGU
      YLRSOOUWJUYFUYKTOUWJUYEUYJCDUUEUWJUYDUYIYEUWJUYCYCYOYKLKXJXPXNULXOVSWAWAU
      WKUYMUXGUJQOOUWKUYLUXERSOOUWKUYKUXDTOUWKUYJUXCDEUUEUWKUYIUXBYEUWKYOUXAYCY
      MMYNXGXHXNUMXOVSWAWAXQXRXSXTYAYB $.
  $}

  ${
    $d x y R $.
    $( Domain of an ordered-pair class abstraction.  (Contributed by Thierry
       Arnoux, 31-Aug-2017.) $)
    opabdm $p |- ( R = { <. x , y >. | ph } -> dom R = { x | E. y ph } ) $=
      ( copab wceq cdm wbr wex cab df-dm nfopab1 nfeq2 nfopab2 wcel df-br eleq2
      cv cop opabid syl6bb syl5bb exbid abbid syl5eq ) DABCEZFZDGBRZCRZDHZCIZBJ
      ACIZBJBCDKUGUKULBBDUFABCLMUGUJACCDUFABCNMUJUHUISZDOZUGAUHUIDPUGUNUMUFOADU
      FUMQABCTUAUBUCUDUE $.

    $( Range of an ordered-pair class abstraction.  (Contributed by Thierry
       Arnoux, 31-Aug-2017.) $)
    opabrn $p |- ( R = { <. x , y >. | ph } -> ran R = { y | E. x ph } ) $=
      ( copab wceq crn wbr wex cab dfrn2 nfopab2 nfeq2 nfopab1 wcel df-br eleq2
      cv cop opabid syl6bb syl5bb exbid abbid syl5eq ) DABCEZFZDGBRZCRZDHZBIZCJ
      ABIZCJBCDKUGUKULCCDUFABCLMUGUJABBDUFABCNMUJUHUISZDOZUGAUHUIDPUGUNUMUFOADU
      FUMQABCTUAUBUCUDUE $.
  $}

  ${
    $d A x y z $.  $d ph z $.
    opabssi.1 $e |- ( ph -> <. x , y >. e. A ) $.
    $( Sufficient condition for a collection of ordered pairs to be a subclass
       of a relation.  (Contributed by Peter Mazsa, 21-Oct-2019.)  (Revised by
       Thierry Arnoux, 18-Feb-2022.) $)
    opabssi $p |- { <. x , y >. | ph } C_ A $=
      ( vz copab cv cop wceq wa wex cab df-opab wcel eleq1 impel exlimivv abssi
      biimprd eqsstri ) ABCGFHZBHCHIZJZAKZCLBLZFMDABCFNUFFDUEUBDOZBCUDUCDOZUGAU
      DUGUHUBUCDPTEQRSUA $.
  $}

  ${
    $d A x y $.
    $( One direction of ~ opabid2 which holds without a ` Rel A ` requirement.
       (Contributed by Thierry Arnoux, 18-Feb-2022.) $)
    opabid2ss $p |- { <. x , y >. | <. x , y >. e. A } C_ A $=
      ( cv cop wcel id opabssi ) ADBDECFZABCIGH $.
  $}

  ${
    $d x y z $.  $d z A $.  $d z B $.
    eqrelrd2.1 $e |- F/ x ph $.
    eqrelrd2.2 $e |- F/ y ph $.
    eqrelrd2.3 $e |- F/_ x A $.
    eqrelrd2.4 $e |- F/_ y A $.
    eqrelrd2.5 $e |- F/_ x B $.
    eqrelrd2.6 $e |- F/_ y B $.
    $( A subclass relationship depends only on a relation's ordered pairs.
       Theorem 3.2(i) of [Monk1] p. 33.  (Contributed by NM, 2-Aug-1994.)
       (Proof shortened by Andrew Salmon, 27-Aug-2011.)  (Revised by Thierry
       Arnoux, 6-Nov-2017.) $)
    ssrelf $p |- ( Rel A -> ( A C_ B <->
                A. x A. y ( <. x , y >. e. A -> <. x , y >. e. B ) ) ) $=
      ( vz wss cv wcel wi wal nfss alrimi nfcri wrel cop ssel wex eleq1 imbi12d
      wceq biimprcd 2alimi nfim 19.23 albii bitri sylib com23 a2d alimdv df-rel
      cvv cxp dfss2 elvv imbi2i 3bitri 3imtr4g com12 impbid2 ) DUAZDEMZBNCNUBZD
      OZVJEOZPZCQZBQZVIVNBBDEHJRVIVMCCDEIKRDEVJUCSSVOVHVIVOLNZDOZVPVJUGZCUDZBUD
      ZPZLQZVQVPEOZPZLQVHVIVOWAWDLVOVQVTWCVOVTVQWCVOVRWDPZCQZBQZVTWDPZVMWEBCVRW
      DVMVRVQVKWCVLVPVJDUEVPVJEUEUFUHUIWGVSWDPZBQWHWFWIBVRWDCVQWCCCLDITCLEKTUJU
      KULVSWDBVQWCBBLDHTBLEJTUJUKUMUNUOUPUQVHDUSUSUTZMVQVPWJOZPZLQWBDURLDWJVAWL
      WALWKVTVQBCVPVBVCULVDLDEVAVEVFVG $.

    eqrelrd2.7 $e |- ( ph -> ( <. x , y >. e. A <-> <. x , y >. e. B ) ) $.
    $( A version of ~ eqrelrdv2 with explicit non-free declarations.
       (Contributed by Thierry Arnoux, 28-Aug-2017.) $)
    eqrelrd2 $p |- ( ( ( Rel A /\ Rel B ) /\ ph ) -> A = B ) $=
      ( wrel wa cv wcel wb wal alrimi wss cop adantl wi ssrelf bi2anan9 2albiim
      wceq eqss 3bitr4g adantr mpbird ) DMZEMZNZANDEUGZBOCOUAZDPZUPEPZQZCRZBRZA
      VAUNAUTBFAUSCGLSSUBUNUOVAQAUNDETZEDTZNUQURUCCRBRZURUQUCCRBRZNUOVAULVBVDUM
      VCVEABCDEFGHIJKUDABCEDFGJKHIUDUEDEUHUQURBCUFUIUJUK $.
  $}

  $( Biconditional for equivalent elements.  (Contributed by Thierry Arnoux,
     6-Jan-2020.) $)
  erbr3b $p |- ( ( R Er X /\ A R B ) -> ( A R C <-> B R C ) ) $=
    ( wer wbr wa simpll simplr simpr ertr3d ertrd impbida ) EDFZABDGZHZACDGZBCD
    GZQRHBACDEOPRIOPRJQRKLQSHABCDEOPSIOPSJQSKMN $.

  ${
    $d A y $.  $d B y $.  $d ph y $.  $d x y $.
    iunsnima.1 $e |- ( ph -> A e. V ) $.
    iunsnima.2 $e |- ( ( ph /\ x e. A ) -> B e. W ) $.
    $( Image of a singleton by an indexed union involving that singleton.
       (Contributed by Thierry Arnoux, 10-Apr-2020.) $)
    iunsnima $p |- ( ( ph /\ x e. A )
      -> ( U_ x e. A ( { x } X. B ) " { x } ) = B ) $=
      ( vy cv wcel wa csn cxp ciun cima cop vex elimasn wb opeliunxp baib eqrdv
      adantl syl5bb ) ABJZCKZLZIBCUFMZDNOZUIPZDIJZUKKUFULQUJKZUHULDKZUJUFULBRIR
      SUGUMUNTAUMUGUNBCDULUAUBUDUEUC $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Functions - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d f x z A $.  $d x f z B $.  $d f z ph $.  $d z ps $.  $d x y f z $.
    ac6sf2.y $e |- F/_ y B $.
    ac6sf2.1 $e |- F/ y ps $.
    ac6sf2.2 $e |- A e. _V $.
    ac6sf2.3 $e |- ( y = ( f ` x ) -> ( ph <-> ps ) ) $.
    $( Alternate version of ~ ac6 with bound-variable hypothesis.  (Contributed
       by NM, 2-Mar-2008.)  (Revised by Thierry Arnoux, 17-May-2020.) $)
    ac6sf2 $p |- ( A. x e. A E. y e. B ph ->
                E. f ( f : A --> B /\ A. x e. A ps ) ) $=
      ( vz wrex wral wsb cv wf wa wex nfcv nfv nfs1v sbequ12 cbvrexf ralbii cfv
      sbhypf ac6s sylbi ) ADFMZCENADLOZLFMZCENEFGPZQBCENRGSUJULCEAUKDLFHLFTALUA
      ADLUBADLUCUDUEUKBCLEFGJABDLCPUMUFIKUGUHUI $.
  $}

  $( Restriction of a function with a subclass of its domain.  (Contributed by
     Thierry Arnoux, 10-Oct-2017.) $)
  fnresin $p |- ( F Fn A -> ( F |` B ) Fn ( A i^i B ) ) $=
    ( wfn cin cres fnresin1 resindi fnresdm ineq1d incom wss resss df-ss eqtr3i
    wceq mpbi syl6eq syl5eq fneq1d mpbid ) CADZCABEZFZUCDCBFZUCDABCGUBUCUDUEUBU
    DCAFZUEEZUECABHUBUGCUEEZUEUBUFCUEACIJUECEZUHUEUECKUECLUIUEPCBMUECNQORSTUA
    $.

  ${
    $d x y A $.  $d x y B $.  $d y C $.  $d x D $.  $d x y ph $.
    f1o3d.1 $e |- ( ph -> F = ( x e. A |-> C ) ) $.
    f1o3d.2 $e |- ( ( ph /\ x e. A ) -> C e. B ) $.
    f1o3d.3 $e |- ( ( ph /\ y e. B ) -> D e. A ) $.
    f1o3d.4 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) ->
                    ( x = D <-> y = C ) ) $.
    $( Describe an implicit one-to-one onto function.  (Contributed by Thierry
       Arnoux, 23-Apr-2017.) $)
    f1o3d $p |- ( ph -> ( F : A -1-1-onto-> B /\ `' F = ( y e. B |-> D ) ) ) $=
      ( ccnv wceq wfn wcel syl wa copab wi wf1o cmpt wral ralrimiva eqid fneq1d
      fnmpt mpbird cv eleq1a impr biimpar exp42 com34 imp32 jcai biimpa impbida
      com23 opabbidv df-mpt syl6eq cnveqd cnvopab a1i 3eqtr4d dff1o4 sylanbrc
      jca ) ADEHUAZHMZCEGUBZNAHDOZVKEOZVJAVMBDFUBZDOZAFEPZBDUCVPAVQBDJUDBDFVOEV
      OUEUGQADHVOIUFUHAVNVLEOZAGDPZCEUCVRAVSCEKUDCEGVLDVLUEUGQAEVKVLABUIZDPZCUI
      ZFNZRZCBSZWBEPZVTGNZRZCBSZVKVLAWDWHCBAWDWHAWDRWFWGAWAWCWFAWARVQWCWFTJFEWB
      UJQUKAWAWCWFWGTAWAWFWCWGAWAWFWCWGAWAWFRRZWGWCLULUMUNUOUPAWHRWAWCAWFWGWAAW
      FRVSWGWATKGDVTUJQUKAWFWGWAWCTAWFWAWGWCAWAWFWGWCTAWAWFWGWCWJWGWCLUQUMUSUNU
      OUPURUTAVKWDBCSZMWEAHWKAHVOWKIBCDFVAVBVCWDBCVDVBVLWINACBEGVAVEVFZUFUHDEHV
      GVHWLVI $.
  $}

  ${
    rinvbij.1 $e |- Fun F $.
    rinvbij.2 $e |- `' F = F $.
    rinvbij.3a $e |- ( F " A ) C_ B $.
    rinvbij.3b $e |- ( F " B ) C_ A $.
    rinvbij.4a $e |- A C_ dom F $.
    rinvbij.4b $e |- B C_ dom F $.
    $( Sufficient conditions for the restriction of an involution to be a
       bijection.  (Contributed by Thierry Arnoux, 7-Dec-2016.) $)
    rinvf1o $p |- ( F |` A ) : A -1-1-onto-> B $=
      ( cima cres wf1o cdm crn wf1 wss wfun mpbi mp2an wb wf fdmrn funeqi mpbir
      ccnv df-f1 mpbir2an f1ores funimass3 imaeq1i sseqtri eqssi f1oeq3 ax-mp
      wceq ) ACAJZCAKZLZABUQLZCMZCNZCOZAUTPURVBUTVACUAZCUEZQZCQZVCDCUBRVEVFDVDC
      EUCUDUTVACUFUGHUTVAACUHSUPBUOURUSTUPBFBVDAJZUPCBJAPZBVGPZGVFBUTPVHVITDIBA
      CUISRVDCAEUJUKULUPBAUQUMUNR $.
  $}

  $( Conditions for a restriction to be a one-to-one onto function.
     (Contributed by Thierry Arnoux, 7-Dec-2016.) $)
  fresf1o $p |- ( ( Fun F /\ C C_ ran F /\ Fun ( `' F |` C ) )
    -> ( F |` ( `' F " C ) ) : ( `' F " C ) -1-1-onto-> C ) $=
    ( wfun crn wss ccnv cres w3a cima wf1o wfn wceq funfn biimpi 3ad2ant3 simp2
    cdm df-rn mpbid syl syl6sseq ssdmres fneq2d funres funcnvres2 funeqd mpbird
    sylib simp1 df-ima eqcomi a1i 3jca dff1o2 sylibr f1ocnv wb f1oeq1 3syl ) BC
    ZABDZEZBFZAGZCZHZVCAIZAVDFZJZVGABVGGZJZVFAVGVDJZVIVFVDAKZVHCZVDDZVGLZHVLVFV
    MVNVPVFVDVDQZKZVMVEUTVRVBVEVRVDMNOVFVQAVDVFAVCQZEVQALVFAVAVSUTVBVEPBRUAAVCU
    BUHUCSVFVNVJCZVFUTVTUTVBVEUIZVGBUDTVFVHVJVFUTVHVJLZWAABUEZTUFUGVPVFVGVOVCAU
    JUKULUMAVGVDUNUOAVGVDUPTVFUTWBVIVKUQWAWCVGAVHVJURUSS $.

  ${
    $d A f g $.  $d B f g $.  $d T f g $.  $d f g ph $.
    fmptco1f1o.a $e |- A = ( R ^m E ) $.
    fmptco1f1o.b $e |- B = ( R ^m D ) $.
    fmptco1f1o.f $e |- F = ( f e. A |-> ( f o. T ) ) $.
    fmptco1f1o.d $e |- ( ph -> D e. V ) $.
    fmptco1f1o.e $e |- ( ph -> E e. W ) $.
    fmptco1f1o.r $e |- ( ph -> R e. X ) $.
    fmptco1f1o.t $e |- ( ph -> T : D -1-1-onto-> E ) $.
    $( The action of composing (to the right) with a bijection is itself a
       bijection of functions.  (Contributed by Thierry Arnoux, 3-Jan-2021.) $)
    fmptco1f1o $p |- ( ph -> F : A -1-1-onto-> B ) $=
      ( wcel vg wf1o ccnv cv ccom cmpt wceq wa cmap co wf adantr simpr syl6eleq
      a1i elmapi syl f1of syl2anc elmapg biimpar syl21anc syl6eleqr f1ocnv 3syl
      fco coass cid cres ad2antrr f1ococnv1 coeq2d adantlr fcoi1 syl5req eqeq1d
      wb eqtrd eqcom wfo wfn f1ofo simplr elmapfn cocan2 syl3anc 3bitrrd anasss
      f1o3d simpld ) ABCIUBIUCUACUAUDZFUCZUEZUFUGAGUABCGUDZFUEZWMIIGBWOUFUGAOUO
      AWNBTZUHZWOEDUIUJZCWQELTZDJTZDEWOUKZWOWRTZAWSWPRULAWTWPPULWQHEWNUKZDHFUKZ
      XAWQWNEHUIUJZTZXCWQWNBXEAWPUMMUNWNEHUPUQAXDWPADHFUBZXDSDHFURUQULDHEWNFVFU
      SWSWTUHXBXAEDWOLJUTVAVBNVCAWKCTZUHZWMXEBXIWSHKTZHEWMUKZWMXETZAWSXHRULAXJX
      HQULXIDEWKUKZHDWLUKZXKXIWKWRTXMXIWKCWRAXHUMNUNWKEDUPUQZAXNXHAXGHDWLUBXNSD
      HFVDHDWLURVEULHDEWKWLVFUSWSXJUHXLXKEHWMLKUTVAVBZMVCAWPXHWNWMUGZWKWOUGZVQW
      QXHUHZXRWMFUEZWOUGZWOXTUGZXQXSWKXTWOXSXTWKWLFUEZUEZWKWKWLFVGXSYDWKVHDVIZU
      EZWKXSXGYDYFUGAXGWPXHSVJZXGYCYEWKDHFVKVLUQXSXMYFWKUGAXHXMWPXOVMDEWKVNUQVR
      VOVPYAYBVQXSXTWOVSUOXSDHFVTZWNHWAZWMHWAZYBXQVQXSXGYHYGDHFWBUQXSXFYIXSWNBX
      EAWPXHWCMUNWNEHWDUQAXHYJWPXIXLYJXPWMEHWDUQVMDHFWNWMWEWFWGWHWIWJ $.
  $}

  ${
    $d A x y $.  $d B y $.  $d C x y $.  $d ph x y $.
    f1mptrn.1 $e |- ( ( ph /\ x e. A ) -> B e. C ) $.
    f1mptrn.2 $e |- ( ( ph /\ y e. C ) -> E! x e. A y = B ) $.
    $( Express injection for a mapping operation.  (Contributed by Thierry
       Arnoux, 3-May-2020.) $)
    f1mptrn $p |- ( ph -> Fun `' ( x e. A |-> B ) ) $=
      ( wcel wral cv wceq wreu wa cmpt ccnv wfun ralrimiva jca wf1o eqid f1ompt
      wfn crn dff1o2 simp2bi sylbir syl ) AEFIZBDJZCKELBDMZCFJZNZBDEOZPQZAUJULA
      UIBDGRAUKCFHRSUMDFUNTZUOBCDFEUNUNUAUBUPUNDUCUOUNUDFLDFUNUEUFUGUH $.
  $}

  ${
    $d x y z $.  $d y z A $.  $d y z F $.
    dfimafnf.1 $e |- F/_ x A $.
    dfimafnf.2 $e |- F/_ x F $.
    $( Alternate definition of the image of a function.  (Contributed by Raph
       Levien, 20-Nov-2006.)  (Revised by Thierry Arnoux, 24-Apr-2017.) $)
    dfimafnf $p |- ( ( Fun F /\ A C_ dom F ) ->
                  ( F " A ) = { y | E. x e. A y = ( F ` x ) } ) $=
      ( vz wfun cdm wss wa cima cv cfv wceq wrex cab wbr wcel nfcv ssel syl5bbr
      wb eqcom funbrfvb ex syl9r imp31 rexbidva abbidv dfima2 syl6reqr nffv nfv
      nfeq2 fveq2 eqeq2d cbvrexf abbii syl6eq ) DHZCDIZJZKZDCLZBMZGMZDNZOZGCPZB
      QZVFAMZDNZOZACPZBQVDVKVGVFDRZGCPZBQVEVDVJVQBVDVIVPGCVAVCVGCSZVIVPUCZVCVRV
      GVBSZVAVSCVBVGUAVAVTVSVIVHVFOVAVTKVPVHVFUDVGVFDUEUBUFUGUHUIUJGBDCUKULVJVO
      BVIVNGACGCTEAVFVHAVGDFAVGTUMUOVNGUNVGVLOVHVMVFVGVLDUPUQURUSUT $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y F $.
    funimass4f.1 $e |- F/_ x A $.
    funimass4f.2 $e |- F/_ x B $.
    funimass4f.3 $e |- F/_ x F $.
    $( use ~ ffnfvf $)
    $( Membership relation for the values of a function whose image is a
       subclass.  (Contributed by Thierry Arnoux, 24-Apr-2017.) $)
    funimass4f $p |- ( ( Fun F /\ A C_ dom F ) ->
                    ( ( F " A ) C_ B <-> A. x e. A ( F ` x ) e. B ) ) $=
      ( vy wfun cdm wss wa cima cv cfv wcel wral nfss nfan wceq nffun funfvima2
      nfdm nfima ssel sylan9 ralrimi cab dfimafnf adantr abrexss adantl eqsstrd
      wrex impbida ) DIZBDJZKZLZDBMZCKZANZDOZCPZABQZUSVALVDABUSVAAUPURAADGUAABU
      QEADGUCRSAUTCADBGEUDFRSUSVBBPVCUTPVAVDBVBDUBUTCVCUEUFUGUSVELUTHNVCTABUNHU
      HZCUSUTVFTVEAHBDEGUIUJVEVFCKUSAHBVCCFUKULUMUO $.
  $}

  ${
    $d A x $.  $d C x $.  $d D x $.
    elimampt.f $e |- F = ( x e. A |-> B ) $.
    elimampt.c $e |- ( ph -> C e. W ) $.
    elimampt.d $e |- ( ph -> D C_ A ) $.
    $( Membership in the image of a mapping.  (Contributed by Thierry Arnoux,
       3-Jan-2022.) $)
    elimampt $p |- ( ph -> ( C e. ( F " D ) <-> E. x e. D C = B ) ) $=
      ( cima wcel cres crn wceq wrex cmpt wb syl df-ima eleq2i wss resmpt rneqd
      reseq1i syl5eq eleq2d eqid elrnmpt bitrd syl5bb ) EGFLZMEGFNZOZMZAEDPBFQZ
      UMUOEGFUAUBAUPEBFDRZOZMZUQAFCUCZUPUTSKVAUOUSEVAUNURVAUNBCDRZFNURGVBFIUFBC
      FDUDUGUEUHTAEHMUTUQSJBFDEURHURUIUJTUKUL $.
  $}

  ${
    $d l A $.  $d l B $.  $d l W $.  $d k l Z $.  $d l ph $.
    suppss2f.p $e |- F/ k ph $.
    suppss2f.a $e |- F/_ k A $.
    suppss2f.w $e |- F/_ k W $.
    suppss2f.n $e |- ( ( ph /\ k e. ( A \ W ) ) -> B = Z ) $.
    suppss2f.v $e |- ( ph -> A e. V ) $.
    $( Show that the support of a function is contained in a set.  (Contributed
       by Thierry Arnoux, 22-Jun-2017.)  (Revised by AV, 1-Sep-2020.) $)
    suppss2f $p |- ( ph -> ( ( k e. A |-> B ) supp Z ) C_ W ) $=
      ( vl cmpt csupp wcel wa wi wsb bitri co cv nfcsb1v csbeq1a cbvmptf oveq1i
      csb nfcv cdif wceq sbt sbim sban sbf nfdif clelsb3f anbi12i wsbc sbsbc wb
      cvv vex sbceq1g ax-mp imbi12i mpbi suppss2 syl5eqss ) ADBCNZGOUAMBDMUBZCU
      GZNZGOUAFVIVLGODMBCVKIMBUHMCUHDVJCUCDVJCUDUEUFABVKMEFGADUBBFUIZPZQZCGUJZR
      ZDMSZAVJVMPZQZVKGUJZRZVQDMKUKVRVODMSZVPDMSZRWBVOVPDMULWCVTWDWAWCADMSZVNDM
      SZQVTAVNDMUMWEAWFVSADMHUNMDVMDBFIJUOUPUQTWDVPDVJURZWAVPDMUSVJVAPWGWAUTMVB
      DVJCGVAVCVDTVETVFLVGVH $.
  $}

$(
  @{
    f1iniseg.g @e |- G = ( x e. B |-> ( `' F " { x } ) ) @.
    @( The initial segment, i.e. the preimage of singleton, is injective.
       (Contributed by Thierry Arnoux, 27-Jan-2020.) @)
    f1iniseg @p |- ( F : A --> B -> G : B -1-1-> ~P A ) @=
      ? @.
  @}
$)

  ${
    $d x y A $.  $d y B $.  $d x y C $.  $d x y F $.  $d x y R $.  $d x y S $.
    fovcld.1 $e |- ( ph -> F : ( R X. S ) --> C ) $.
    $( Closure law for an operation.  (Contributed by NM, 19-Apr-2007.)
       (Revised by Thierry Arnoux, 17-Feb-2017.) $)
    fovcld $p |- ( ( ph /\ A e. R /\ B e. S ) -> ( A F B ) e. C ) $=
      ( vx vy wcel w3a wa cv co wral 3simpc cxp wceq eleq1d wf simprbi 3ad2ant1
      wfn ffnov syl oveq1 oveq2 rspc2v sylc ) ABEKZCFKZLUKULMINZJNZGOZDKZJFPIEP
      ZBCGOZDKZAUKULQAUKUQULAEFRZDGUAZUQHVAGUTUDUQIJEFDGUEUBUFUCUPUSBUNGOZDKIJB
      CEFUMBSUOVBDUMBUNGUGTUNCSVBURDUNCBGUHTUIUJ $.
  $}

  ${
    $d x y B $.  $d x y C $.  $d x y F $.  $d y G $.  $d x y .+ $.
    $d x y ph $.
    ofrn.1 $e |- ( ph -> F : A --> B ) $.
    ofrn.2 $e |- ( ph -> G : A --> B ) $.
    ofrn.3 $e |- ( ph -> .+ : ( B X. B ) --> C ) $.
    ofrn.4 $e |- ( ph -> A e. V ) $.
    $( The range of the function operation.  (Contributed by Thierry Arnoux,
       8-Jan-2017.) $)
    ofrn $p |- ( ph -> ran ( F oF .+ G ) C_ C ) $=
      ( vx vy cof co wf crn wss cv fovrnda inidm off frn syl ) ABDFGEOPZQUFRDSA
      MNBBBECCDFGHHAMTNTDCCEKUAIJLLBUBUCBDUFUDUE $.

    $d a z A $.  $d z B $.  $d a z F $.  $d a x z G $.  $d a z .+ $.
    $d a z ph $.  $d x y z a $.
    $( The range of the function operation.  (Contributed by Thierry Arnoux,
       21-Mar-2017.) $)
    ofrn2 $p |- ( ph -> ran ( F oF .+ G ) C_ ( .+ " ( ran F X. ran G ) ) ) $=
      ( vz va vx vy cv crn wcel syl cfv co wceq wrex cab cof cxp cima wa wfn wf
      ffn adantr simprl fnfvelrn syl2anc simprr rspceov syl3anc rexlimdvaa cmpt
      ss2abdv inidm eqidd offval rneqd eqid rnmpt syl6eq wss wb xpss12 ovelimab
      frn abbi2dv 3sstr4d ) AMQZNQZFUAZVRGUAZEUBZUCZNBUDZMUEZVQOQPQEUBUCPGRZUDO
      FRZUDZMUEFGEUFUBZRZEWFWEUGZUHZAWCWGMAWBWGNBAVRBSZWBUIZUIZVSWFSZVTWESZWBWG
      WNFBUJZWLWOAWQWMABCFUKZWQIBCFULTZUMAWLWBUNZBVRFUOUPWNGBUJZWLWPAXAWMABCGUK
      ZXAJBCGULTZUMWTBVRGUOUPAWLWBUQOPWFWEVSVTVQEURUSUTVBAWINBWAVAZRWDAWHXDANBB
      VSVTEBFGHHWSXCLLBVCAWLUIZVSVDXEVTVDVEVFNMBWAXDXDVGVHVIAWGMWKAECCUGZUJZWJX
      FVJZVQWKSWGVKAXFDEUKXGKXFDEULTAWFCVJZWECVJZXHAWRXIIBCFVNTAXBXJJBCGVNTWFCW
      ECVLUPOPXFWFWEVQEVMUPVOVP $.
  $}

  ${
    $d z A $.  $d z B $.  $d z C $.  $d y z G $.  $d x y z ph $.  $d x y S $.
    $d x y T $.  $d x y z F $.  $d x y z R $.  $d x y z U $.
    off2.1 $e |- ( ( ph /\ ( x e. S /\ y e. T ) ) -> ( x R y ) e. U ) $.
    off2.2 $e |- ( ph -> F : A --> S ) $.
    off2.3 $e |- ( ph -> G : B --> T ) $.
    off2.4 $e |- ( ph -> A e. V ) $.
    off2.5 $e |- ( ph -> B e. W ) $.
    off2.6 $e |- ( ph -> ( A i^i B ) = C ) $.
    $( The function operation produces a function - alternative form with all
       antecedents as deduction.  (Contributed by Thierry Arnoux,
       17-Feb-2017.) $)
    off2 $p |- ( ph -> ( F oF R G ) : C --> U ) $=
      ( vz cof co wf cv cfv cmpt wcel wa wral adantr cin inss1 syl6eqssr sselda
      ffvelrnd inss2 ralrimivva ovrspc2v syl21anc eqid fmptd wfn ffn syl offval
      eqidd mpteq1d eqtrd feq1d mpbird ) AFJKLGUBUCZUDFJUAFUAUEZKUFZVMLUFZGUCZU
      GZUDAUAFVPJVQAVMFUHZUIZVNHUHVOIUHBUECUEGUCJUHZCIUJBHUJZVPJUHVSDHVMKADHKUD
      ZVRPUKAFDVMAFDEULZDTDEUMUNUOUPVSEIVMLAEILUDZVRQUKAFEVMAFWCETDEUQUNUOUPAWA
      VRAVTBCHIOURUKBCHIJGVNVOUSUTVQVAVBAFJVLVQAVLUAWCVPUGVQAUADEVNVOGWCKLMNAWB
      KDVCPDHKVDVEAWDLEVCQEILVDVERSWCVAAVMDUHUIVNVGAVMEUHUIVOVGVFAUAWCFVPTVHVIV
      JVK $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.  $d x G $.  $d x R $.  $d x ph $.
    ofresid.1 $e |- ( ph -> F : A --> B ) $.
    ofresid.2 $e |- ( ph -> G : A --> B ) $.
    ofresid.3 $e |- ( ph -> A e. V ) $.
    $( Applying an operation restricted to the range of the functions does not
       change the function operation.  (Contributed by Thierry Arnoux,
       14-Feb-2018.) $)
    ofresid $p |- ( ph -> ( F oF R G ) = ( F oF ( R |` ( B X. B ) ) G ) ) $=
      ( vx cfv co cmpt cof wcel ffvelrnda syl df-ov wf cxp cres cop wceq opelxp
      cv wa sylanbrc fvres eqcomd 3eqtr4g mpteq2dva wfn ffn inidm eqidd 3eqtr4d
      offval ) AKBKUFZELZUSFLZDMZNKBUTVADCCUAZUBZMZNEFDOMEFVDOMAKBVBVEAUSBPUGZU
      TVAUCZDLZVGVDLZVBVEVFVIVHVFVGVCPZVIVHUDVFUTCPVACPVJABCUSEHQABCUSFIQUTVACC
      UEUHVGVCDUIRUJUTVADSUTVAVDSUKULAKBBUTVADBEFGGABCETEBUMHBCEUNRZABCFTFBUMIB
      CFUNRZJJBUOZVFUTUPZVFVAUPZURAKBBUTVAVDBEFGGVKVLJJVMVNVOURUQ $.
  $}

  $(
    $d x y ph $.  $d x C $.  $d x D $.  $d y A $.  $d y B $.
    mptcnv.1 $e |- ( ph -> ( ( x e. A /\ y = B ) <-> ( y e. C /\ x = D ) ) ) $.
    #( The converse of a mapping function.
       (Contributed by Thierry Arnoux, 16-Jan-2017.) #)
    mptcnv   $p |- ( ph -> `' ( x e. A |-> B ) = ( y e. C |-> D ) ) $=
      ( cv wcel wceq wa copab ccnv cmpt cnvopab opabbidv eqtrd df-mpt
      a1i cnveqi 3eqtr4d ) ABIZDJCIZEKLZBCMZNZUDFJUCGKLZCBMZBDEOZNZCF
      GOZAUGUECBMZUIUGUMKAUEBCPTAUEUHCBHQRUKUGKAUJUFBCDESUATULUIKACBF
      GSTUB $.
      #( [16-Jan-2017] #)
  $)

  ${
    $d A y $.  $d B y $.  $d F x y $.  $d X x y $.
    $( Expressing the image of a set as a restricted abstract builder.
       (Contributed by Thierry Arnoux, 27-Jan-2020.) $)
    fimarab $p |- ( ( F : A --> B /\ X C_ A )
      -> ( F " X ) = { y e. B | E. x e. X ( F ` x ) = y } ) $=
      ( wf wss wa cima cv cfv wceq wrex crab nfv nfcv nfrab1 wcel wb wfn anbi2d
      ffn fvelimab sylan crn imassrn frn syl5ss adantr sseld pm4.71rd rabid a1i
      3bitr4d eqrd ) CDEGZFCHZIZBEFJZAKELBKZMAFNZBDOZUSBPBUTQVBBDRUSVADSZVAUTSZ
      IZVDVBIZVEVAVCSZUQECUAZURVFVGTCDEUCVIURIVEVBVDACFVAEUDUBUEUSVEVDUSUTDVAUQ
      UTDHURUQUTEUFDEFUGCDEUHUIUJUKULVHVGTUSVBBDUMUNUOUP $.
  $}

  ${
    $d x y F $.  $d x y A $.
    $( Preimage of a class union.  (Contributed by Thierry Arnoux,
       7-Feb-2017.) $)
    unipreima $p |- ( Fun F -> ( `' F " U. A ) = U_ x e. A ( `' F " x ) ) $=
      ( vy wfun cdm wfn ccnv cuni cima cv ciun wceq wcel wa wrex wb a1i 3bitr4d
      elpreima funfn cfv r19.42v bicomi eluni2 anbi2i rexbidv eliun eqrdv sylbi
      ) CECCFZGZCHZBIZJZABUMAKZJZLZMCUAULDUOURULDKZUKNZUSCUBZUNNZOZUSUQNZABPZUS
      UONUSURNZULUTVAUPNZABPZOZUTVGOZABPZVCVEVIVKQULVKVIUTVGABUCUDRVCVIQULVBVHU
      TAVABUEUFRULVDVJABUKUSUPCTUGSUKUSUNCTVFVEQULAUSBUQUHRSUIUJ $.
  $}

  ${
    $( The preimage of a subset is a subset of the preimage.  (Contributed by
       Brendan Leahy, 23-Sep-2017.) $)
    sspreima $p |- ( ( Fun F /\ A C_ B ) -> ( `' F " A ) C_ ( `' F " B ) ) $=
      ( wfun wss wa ccnv cima cin wceq inpreima biimpi imaeq2d sylan9req sylibr
      df-ss ) CDZABEZFCGZAHZSBHZIZTJTUAEQRUBSABIZHTABCKRUCASRUCAJABPLMNTUAPO $.
  $}

  $( Value of a function producing ordered pairs.  (Contributed by Thierry
     Arnoux, 3-Jan-2017.) $)
  opfv $p |- ( ( ( Fun F /\ ran F C_ ( _V X. _V ) ) /\ x e. dom F ) ->
             ( F ` x ) = <. ( ( 1st o. F ) ` x ) , ( ( 2nd o. F ) ` x ) >. ) $=
    ( wfun crn cvv cxp wss wa cv cdm wcel cfv c1st c2nd cop ccom simplr adantlr
    wceq fvco fvelrn sseldd 1st2ndb sylib opeq12d eqtr4d ) BCZBDZEEFZGZHAIZBJKZ
    HZUKBLZUNMLZUNNLZOZUKMBPLZUKNBPLZOZUMUNUIKUNUQSUMUHUIUNUGUJULQUGULUNUHKUJUK
    BUARUBUNUCUDUGULUTUQSUJUGULHURUOUSUPUKMBTUKNBTUERUF $.

  ${
    $d x F $.  $d x Y $.  $d x Z $.
    $( The preimage of a Cartesian product is the intersection of the preimages
       of each component function.  (Contributed by Thierry Arnoux,
       6-Jun-2017.) $)
    xppreima $p |- ( ( Fun F /\ ran F C_ ( _V X. _V ) ) ->
      ( `' F " ( Y X. Z ) ) =
                   ( ( `' ( 1st o. F ) " Y ) i^i ( `' ( 2nd o. F ) " Z ) ) ) $=
      ( vx wfun cvv wss wa ccnv cima c1st wcel c2nd cdm crab cin wceq adantr wb
      cfv crn cxp ccom wfn funfn fncnvima2 sylbi cop fvco opeq12d eqeq2d eleq1d
      anbi12d elxp6 syl6rbbr adantlr opfv biantrurd wfo fo1st fofun ax-mp funco
      cv mpan ssv wf fof fdm mp2b sseqtr4i ssid funimass3 mpan2 mpbii syl6eleqr
      dmco fvimacnv syl2anc fo2nd 3bitr2d rabbidva eqtrd dfin5 ineq12i cnvimass
      sselda dmcoss sstri sseqin2 mpbi inrab 3eqtr3ri syl6eq ) AEZAUAFFUBGZHZAI
      ZBCUBZJZDVDZKAUCZIBJZLZXAMAUCZICJZLZHZDANZOZXCXFPZWQWTXAATZWSLZDXIOZXJWOW
      TXNQZWPWOAXIUDXOAUEDXIWSAUFUGRWQXMXHDXIWQXAXILZHZXMXLXAXBTZXAXETZUHZQZXRB
      LZXSCLZHZHZYDXHWOXPXMYESWPWOXPHZYEXLXLKTZXLMTZUHZQZYGBLZYHCLZHZHXMYFYAYJY
      DYMYFXTYIXLYFXRYGXSYHXAKAUIZXAMAUIZUJUKYFYBYKYCYLYFXRYGBYNULYFXSYHCYOULUM
      UMXLBCUNUOUPXQYAYDDAUQURWOXPYDXHSWPYFYBXDYCXGYFXBEZXAXBNZLYBXDSWOYPXPKEZW
      OYPFFKUSZYRUTFFKVAVBKAVCVERYFXAWRKNZJZYQWOXIUUAXAWOAXIJZYTGZXIUUAGZUUBFYT
      UUBVFZYSFFKVGYTFQUTFFKVHFFKVIVJVKWOXIXIGZUUCUUDSXIVLZXIYTAVMVNVOWGKAVQVPX
      ABXBVRVSYFXEEZXAXENZLYCXGSWOUUHXPMEZWOUUHFFMUSZUUJVTFFMVAVBMAVCVERYFXAWRM
      NZJZUUIWOXIUUMXAWOUUBUULGZXIUUMGZUUBFUULUUEUUKFFMVGUULFQVTFFMVHFFMVIVJVKW
      OUUFUUNUUOSUUGXIUULAVMVNVOWGMAVQVPXACXEVRVSUMUPWAWBWCXIXCPZXIXFPZPXDDXIOZ
      XGDXIOZPXKXJUUPUURUUQUUSDXIXCWDDXIXFWDWEUUPXCUUQXFXCXIGUUPXCQXCYQXIXBBWFK
      AWHWIXCXIWJWKXFXIGUUQXFQXFUUIXIXECWFMAWHWIXFXIWJWKWEXDXGDXIWLWMWN $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x F $.  $d x G $.  $d x H $.
    $d x ph $.
    xppreima2.1 $e |- ( ph -> F : A --> B ) $.
    xppreima2.2 $e |- ( ph -> G : A --> C ) $.
    xppreima2.3 $e |- H = ( x e. A |-> <. ( F ` x ) , ( G ` x ) >. ) $.
    $( The preimage of a Cartesian product is the intersection of the preimages
       of each component function.  (Contributed by Thierry Arnoux,
       7-Jun-2017.) $)
    xppreima2 $p |- ( ph -> ( `' H " ( Y X. Z ) ) =
                                         ( ( `' F " Y ) i^i ( `' G " Z ) ) ) $=
      ( ccnv cima c1st c2nd cvv wceq wfn cxp ccom cin crn wss cv cfv funmpt2 wf
      wfun cop wcel wa ffvelrnda opelxp sylanbrc fmptd frn xpss syl6ss xppreima
      syl sylancr wfo fo1st fofn ax-mp opex fnmpti ssv mp3an a1i ffn cdm adantr
      fnco simpr dmmpti syl6eleqr opfv syl21anc fvmpt2 syl2anc eqtr3d fvex opth
      sylib simpld eqfnfvd cnveqd imaeq1d fo2nd simprd ineq12d eqtrd ) AHNIJUAO
      ZPHUBZNZIOZQHUBZNZJOZUCZFNZIOZGNZJOZUCAHUJZHUDZRRUAZUEZWPXCSBCBUFZFUGZXLG
      UGZUKZHMUHZAXIDEUAZXJACXQHUIXIXQUEABCXOXQHAXLCULZUMZXMDULXNEULXOXQULZACDX
      LFKUNACEXLGLUNXMXNDEUOUPZMUQCXQHURVBDEUSUTZHIJVAVCAWSXEXBXGAWRXDIAWQFABCW
      QFWQCTZAPRTZHCTZXIRUEZYCRRPVDYDVERRPVFVGBCXOHXMXNVHZMVIZXIVJZRCPHVPVKVLAC
      DFUIFCTKCDFVMVBXSXLWQUGZXMSZXLWTUGZXNSZXSYJYLUKZXOSYKYMUMXSXLHUGZYNXOXSXH
      XKXLHVNZULYOYNSXHXSXPVLAXKXRYBVOXSXLCYPAXRVQZBCXOHYGMVRVSBHVTWAXSXRXTYOXO
      SYQYABCXOXQHMWBWCWDYJYLXMXNXLWQWEXLWTWEWFWGZWHWIWJWKAXAXFJAWTGABCWTGWTCTZ
      AQRTZYEYFYSRRQVDYTWLRRQVFVGYHYIRCQHVPVKVLACEGUIGCTLCEGVMVBXSYKYMYRWMWIWJW
      KWNWO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( Condition for the membership in the union of the range of a function.
       (Contributed by Thierry Arnoux, 13-Nov-2016.) $)
    elunirn2 $p |- ( ( Fun F /\ B e. ( F ` A ) ) -> B e. U. ran F ) $=
      ( vx wfun cfv wcel wa crn cuni cdm wrex elfvdm wceq eleq2d rspcev mpancom
      cv fveq2 adantl wb elunirn adantr mpbird ) CEZBACFZGZHBCIJGZBDRZCFZGZDCKZ
      LZUGUMUEAULGUGUMBACMUKUGDAULUIANUJUFBUIACSOPQTUEUHUMUAUGDBCUBUCUD $.
  $}

  ${
    $d x y B $.  $d x y F $.  $d x y V $.  $d y ps $.
    abfmpunirn.1 $e |- F = ( x e. V |-> { y | ph } ) $.
    abfmpunirn.2 $e |- { y | ph } e. _V $.
    abfmpunirn.3 $e |- ( y = B -> ( ph <-> ps ) ) $.
    $( Membership in a union of a mapping function-defined family of sets.
       (Contributed by Thierry Arnoux, 28-Sep-2016.) $)
    abfmpunirn $p |- ( B e. U. ran F <-> ( B e. _V /\ E. x e. V ps ) ) $=
      ( crn cuni wcel cvv wrex elex cab cv cfv wfn wb fnmpti fnunirn ax-mp wceq
      fvmpt2 mpan2 eleq2d rexbiia bitri elabg rexbidv syl5bb biadan2 ) EFKLZMZE
      NMZBCGOZEUOPUPEADQZMZCGOZUQURUPECRZFSZMZCGOZVAFGTUPVEUACGUSFIHUBCEFGUCUDV
      DUTCGVBGMZVCUSEVFUSNMVCUSUEICGUSNFHUFUGUHUIUJUQUTBCGABDENJUKULUMUN $.
  $}

  ${
    $d x y B $.  $d x y F $.  $d x y V $.  $d y W $.  $d y ps $.
    rabfmpunirn.1 $e |- F = ( x e. V |-> { y e. W | ph } ) $.
    rabfmpunirn.2 $e |- W e. _V $.
    rabfmpunirn.3 $e |- ( y = B -> ( ph <-> ps ) ) $.
    $( Membership in a union of a mapping function-defined family of sets.
       (Contributed by Thierry Arnoux, 30-Sep-2016.) $)
    rabfmpunirn $p |- ( B e. U. ran F <-> E. x e. V ( B e. W /\ ps ) ) $=
      ( crn cuni wcel cvv wa wrex cv crab cmpt cab df-rab mpteq2i eqtri zfausab
      wceq eleq1 anbi12d abfmpunirn elex adantr rexlimivw pm4.71ri bitr4i ) EFL
      MNEONZEHNZBPZCGQZPURDRZHNZAPZUQCDEFGFCGADHSZTCGVADUAZTICGVBVCADHUBUCUDADH
      JUEUSEUFUTUPABUSEHUGKUHUIURUOUQUOCGUPUOBEHUJUKULUMUN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.  $d x y V $.  $d y W $.  $d x y ch $.
    $d x y ch $.  $d x y ph $.
    abfmpeld.1 $e |- F = ( x e. V |-> { y | ps } ) $.
    abfmpeld.2 $e |- ( ph -> { y | ps } e. _V ) $.
    abfmpeld.3 $e |- ( ph -> ( ( x = A /\ y = B ) -> ( ps <-> ch ) ) ) $.
    $( Membership in an element of a mapping function-defined family of sets.
       (Contributed by Thierry Arnoux, 19-Oct-2016.) $)
    abfmpeld $p |- ( ph -> ( ( A e. V /\ B e. W ) ->
        ( B e. ( F ` A ) <-> ch ) ) ) $=
      ( wcel wa wb cab cvv wceq wal cfv wsbc alrimiv csbexg fvmpts sylan2 csbab
      csb syl6eq eleq2d adantl cv wi simpll ancomsd impl sbcied ex elabgt bitrd
      syl an13s ) AFINZGJNZOGFHUAZNZCPZVDVCAVGVDVCAOZOVFGBDFUBZEQZNZCVHVFVKPVDV
      HVEVJGVHVEDFBEQZUHZVJAVCVMRNZVEVMSAVLRNZDTVNAVODLUCDFVLRUDVADFVLIHRKUEUFB
      DEFUGUIUJUKVHVDEULGSZVICPZUMZETVKCPVHVREVHVPVQVHVPOBCDFIVCAVPUNVHVPDULFSZ
      BCPZAVPVSOVTUMVCAVSVPVTMUOUKUPUQURUCVICEGJUSUFUTVBUR $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.  $d x y V $.  $d y W $.  $d x y ps $.
    $d y W $.
    abfmpel.1 $e |- F = ( x e. V |-> { y | ph } ) $.
    abfmpel.2 $e |- { y | ph } e. _V $.
    abfmpel.3 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    $( Membership in an element of a mapping function-defined family of sets.
       (Contributed by Thierry Arnoux, 19-Oct-2016.) $)
    abfmpel $p |- ( ( A e. V /\ B e. W ) -> ( B e. ( F ` A ) <-> ps ) ) $=
      ( wcel wa cab wb cvv wceq cv ancoms cfv wsbc csb csbex fvmpts mpan2 csbab
      syl6eq eleq2d adantr wi wal simpl adantll sbcied ex alrimiv elabgt sylan2
      bitrd ) EHMZFIMZNFEGUAZMZFACEUBZDOZMZBVAVDVGPVBVAVCVFFVAVCCEADOZUCZVFVAVI
      QMVCVIRCEVHKUDCEVHHGQJUEUFACDEUGUHUIUJVBVAVGBPZVAVBDSFRZVEBPZUKZDULVJVAVM
      DVAVKVLVAVKNABCEHVAVKUMVKCSERZABPZVAVNVKVOLTUNUOUPUQVEBDFIURUSTUT $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.  $d y ph $.
    fmptdF.p $e |- F/ x ph $.
    fmptdF.a $e |- F/_ x A $.
    fmptdF.c $e |- F/_ x C $.
    fmptdF.1 $e |- ( ( ph /\ x e. A ) -> B e. C ) $.
    fmptdF.2 $e |- F = ( x e. A |-> B ) $.
    $( Domain and co-domain of the mapping operation; deduction form.  This
       version of ~ fmptd uses bound-variable hypothesis instead of distinct
       variable conditions.  (Contributed by Thierry Arnoux, 28-Mar-2017.) $)
    fmptdF $p |- ( ph -> F : A --> C ) $=
      ( vy wf cv csb wcel wa wsb bitri cvv cmpt wral sbimi sbf clelsb3f anbi12i
      sban wsbc sbsbc sbcel12 wceq vex csbconstgf eleq2i 3imtr3i ralrimiva nfcv
      ax-mp nfcsb1v csbeq1a cbvmptf fmpt sylib feq1i sylibr ) ACEBCDUAZMZCEFMAB
      LNZDOZEPZLCUBVGAVJLCABNCPZQZBLRZDEPZBLRZAVHCPZQZVJVLVNBLJUCVMABLRZVKBLRZQ
      VQAVKBLUGVRAVSVPABLGUDLBCHUEUFSVOVNBVHUHZVJVNBLUIVTVIBVHEOZPVJBVHDEUJWAEV
      IVHTPWAEUKLULBVHETIUMURUNSSUOUPLCEVIVFBLCDVIHLCUQLDUQBVHDUSBVHDUTVAVBVCCE
      FVFKVDVE $.
  $}

  ${
    $d u v w x y z $.  $d u v w z A $.  $d u y B $.  $d u w z F $.
    $d u w z G $.  $d u y R $.  $d u S $.  $d u v w z T $.  $d u w z ph $.
    fmptcof2.x $e |- F/_ x S $.
    fmptcof2.y $e |- F/_ y T $.
    fmptcof2.1 $e |- F/_ x A $.
    fmptcof2.2 $e |- F/_ x B $.
    fmptcof2.3 $e |- F/ x ph $.
    fmptcof2.4 $e |- ( ph -> A. x e. A R e. B ) $.
    fmptcof2.5 $e |- ( ph -> F = ( x e. A |-> R ) ) $.
    fmptcof2.6 $e |- ( ph -> G = ( y e. B |-> S ) ) $.
    fmptcof2.7 $e |- ( y = R -> S = T ) $.
    $( Composition of two functions expressed as ordered-pair class
       abstractions.  (Contributed by FL, 21-Jun-2012.)  (Revised by Mario
       Carneiro, 24-Jul-2014.)  (Revised by Thierry Arnoux, 10-May-2017.) $)
    fmptcof2 $p |- ( ph -> ( G o. F ) = ( x e. A |-> T ) ) $=
      ( wceq vz vw vu vv ccom cmpt relco wfun funmpt funrel ax-mp cv wbr wa wex
      wrel wcel csb cop cfv wf r19.21bi eqid fmptdF mpbird ffun syl funbrfv imp
      feq1d sylan eqcomd a1d expimpd pm4.71rd exbidv fvex breq2 anbi12d ceqsexv
      breq1 cdm wb funfvbrb fdm eleq2d bitr3d fveq1d eqidd breq123d wi nffvmpt1
      nfcri nfmpt nfcv nfbr nfcsb1v nfeq2 nfbi nfim eleq1 breq1d csbeq1a eqeq2d
      fveq2 bibi12d imbi2d imbi12d cvv vex nfeq nfan simpl eleq1d simpr eqeq12d
      nfv adantr df-mpt brabgaf sylancl fvmpt2f syl2anc biantrurd 3bitr4d chvar
      expcom impcom pm5.32da bitrd syl5bb opelco copab eleq2i opelopabf 3bitr4g
      eqeq1 anbi2d bitri eqrelrdv ) AUAUBJIUEZBDHUFZJIUGUUBUHUUBUPBDHUIUUBUJUKA
      UAULZUCULZIUMZUUDUBULZJUMZUNZUCUOZUUCDUQZUUFBUUCHURZTZUNZUUCUUFUSZUUAUQUU
      NUUBUQZAUUIUUDUUCIUTZTZUUHUNZUCUOZUUMAUUHUURUCAUUHUUQAUUEUUGUUQAUUEUNZUUQ
      UUGUUTUUPUUDAIUHZUUEUUPUUDTZADEIVAZUVAAUVCDEBDFUFZVAABDFEUVDOMNAFEUQZBDPV
      BZUVDVCVDADEIUVDQVJVEZDEIVFVGZUVAUUEUVBUUCUUDIVHVIVKVLVMVNVOVPUUSUUCUUPIU
      MZUUPUUFJUMZUNZAUUMUUHUVKUCUUPUUCIVQUUQUUEUVIUUGUVJUUDUUPUUCIVRUUDUUPUUFJ
      WAVSVTAUVKUUJUUCUVDUTZUUFCEGUFZUMZUNUUMAUVIUUJUVJUVNAUUCIWBZUQZUVIUUJAUVA
      UVPUVIWCUVHUUCIWDVGAUVODUUCAUVCUVODTUVGDEIWEVGWFWGAUUPUVLUUFUUFJUVMAUUCIU
      VDQWHRAUUFWIWJVSAUUJUVNUULUUJAUVNUULWCZBULZDUQZAUVRUVDUTZUUFUVMUMZUUFHTZW
      CZWKZWKUUJAUVQWKZWKBUAUUJUWEBBUADMWMZAUVQBOUVNUULBBUVLUUFUVMBDFUUCWLBCEGN
      KWNBUUFWOWPBUUFUUKBUUCHWQZWRWSWTWTUVRUUCTZUVSUUJUWDUWEUVRUUCDXAZUWHUWCUVQ
      AUWHUWAUVNUWBUULUWHUVTUVLUUFUVMUVRUUCUVDXEXBUWHHUUKUUFBUUCHXCZXDXFXGXHAUV
      SUWCAUVSUNZFUUFUVMUMZUVEUWBUNZUWAUWBUWKUVEUUFXIUQUWLUWMWCUVFUBXJZCULZEUQZ
      UUDGTZUNUWMCUCFUUFUVMEXIUVEUWBCUVECXQCUUFHCUUFWOLXKXLUWOFTZUUDUUFTZUNZUWP
      UVEUWQUWBUWTUWOFEUWRUWSXMXNUWTUUDUUFGHUWRUWSXOUWRGHTUWSSXRXPVSCUCEGXSXTYA
      UWKUVTFUUFUVMUWKUVSUVEUVTFTAUVSXOUVFBDFEMYBYCXBUWKUVEUWBUVFYDYEYGYFYHYIYJ
      YKYJUCUUCUUFJIUAXJZUWNYLUUOUUNUVSUDULZHTZUNZBUDYMZUQUUMUUBUXEUUNBUDDHXSYN
      UXDUUJUXBUUKTZUNUUMBUDUUCUUFUUJUXFBUWFBUXBUUKUWGWRXLUUMUDXQUXAUWNUWHUVSUU
      JUXCUXFUWIUWHHUUKUXBUWJXDVSUXBUUFTUXFUULUUJUXBUUFUUKYQYRYOYSYPYT $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x C $.  $d x y D $.  $d x E $.
    fcomptf.1 $e |- F/_ x B $.
    $( Express composition of two functions as a maps-to applying both in
       sequence.  This version has one less distinct variable restriction
       compared to ~ fcompt .  (Contributed by Thierry Arnoux, 30-Jun-2017.) $)
    fcomptf $p |- ( ( A : D --> E /\ B : C --> D ) -> ( A o. B ) = ( x e. C |->
        ( A ` ( B ` x ) ) ) ) $=
      ( vy wf wa cv cfv wcel nfcv nff wfn cmpt wceq ffn sylib ffvelrn ex adantl
      nfan adantll ralrimi dffn5f adantr dffn5 fveq2 fmptcof ) EFBIZDECIZJZAHDE
      AKZCLZHKZBLZUPBLCBUNUPEMZADULUMAAEFBABNAENZAFNOADECGADNUTOUDUNUODMZUSUMVA
      USULDEUOCUAUEUBUFUNCDPZCADUPQRUMVBULDECSUCADCGUGTUNBEPZBHEURQRULVCUMEFBSU
      HHEBUITUQUPBUJUK $.
  $}

$(
  @{
    acrnmpt.0 @e |- ( ph -> A e. V ) @.
    acrnmpt.1 @e |- ( ( ph /\ j e. A ) -> B e. W ) @.
    acrnmpt.2 @e |- C = ran ( j e. A |-> B ) @.
    @( Axiom of choice for the range of a mapping to function.  (Contributed by
       Thierry Arnoux, 26-Jul-2020.) @)
    acrnmpt @p |- ( ph -> E. f ( f : C -1-1-onto-> ran f /\ ran f C_ A ) ) @=
      ? @.
  @}
$)

  ${
    acunirnmpt.0 $e |- ( ph -> A e. V ) $.
    acunirnmpt.1 $e |- ( ( ph /\ j e. A ) -> B =/= (/) ) $.
    ${
      $d j A $.  $d c f j y C $.  $d f j y ph $.
      acunirnmpt.2 $e |- C = ran ( j e. A |-> B ) $.
      $( Axiom of choice for the union of the range of a mapping to function.
         (Contributed by Thierry Arnoux, 6-Nov-2019.) $)
      acunirnmpt $p |- ( ph
        -> E. f ( f : C --> U. C /\ A. y e. C E. j e. A ( f ` y ) e. B ) ) $=
        ( vc cv wcel wral wa wex c0 cvv mpd cuni wf cfv wrex wceq simpr simplll
        wne simplr syl2anc eqnetrd cmpt crn eleq2i vex eqid elrnmpt ax-mp bitri
        wb biimpi adantl r19.29a ralrimiva wi mptexg rnexg syl5eqel raleq unieq
        3syl id feq23d anbi12d exbidv imbi12d vtoclg syl adantr simpllr eleqtrd
        ac5b ex reximdva ralimdva anim2d eximdv ) AEEUAZFMZUBZBMZWIUCZWKNZBEOZP
        ZFQZWJWLDNZGCUDZBEOZPZFQAWKRUHZBEOZWPAXABEAWKENZPZWKDUEZXAGCXDGMCNZPZXE
        PZWKDRXGXEUFXHAXFDRUHAXCXFXEUGXDXFXEUIJUJUKXCXEGCUDZAXCXIXCWKGCDULZUMZN
        ZXIEXKWKKUNWKSNXLXIUTBUOGCDWKXJSXJUPUQURUSVAVBZVCVDAESNXBWPVEZAEXKSKACH
        NXJSNXKSNIGCDHVFXJSVGVKVHXABLMZOZXOXOUAZWIUBZWMBXOOZPZFQZVEXNLESXOEUEZX
        PXBYAWPXABXOEVIYBXTWOFYBXRWJXSWNYBXOXQEWHWIYBVLXOEVJVMWMBXOEVIVNVOVPBXO
        FLUOWBVQVRTAWOWTFAWNWSWJAWMWRBEXDWMWRXDWMPZXIWRXDXIWMXMVSYCXEWQGCYCXFPZ
        XEWQYDXEPWLWKDXDWMXFXEVTYDXEUFWAWCWDTWCWEWFWGT $.
    $}

    ${
      $d c f j x y A $.  $d c f y B $.  $d c f j x y C $.  $d c j D $.
      $d f j x y ph $.
      acunirnmpt2.2 $e |- C = U. ran ( j e. A |-> B ) $.
      acunirnmpt2.3 $e |- ( j = ( f ` x ) -> B = D ) $.
      $( Axiom of choice for the union of the range of a mapping to function.
         (Contributed by Thierry Arnoux, 7-Nov-2019.) $)
      acunirnmpt2 $p |- ( ph -> E. f ( f : C --> A /\ A. x e. C x e. D ) ) $=
        ( vy vc cv wcel wral wa cvv wrex wf wex cmpt crn wceq simplr wb elrnmpt
        vex eqid ax-mp sylib nfv nfcv nfmpt1 nfrn nfel wi simpllr simpr eleqtrd
        nfan ex reximdai mpd cuni eleq2i biimpi eluni2 adantl r19.29a ralrimiva
        mptexg rnexg uniexg 4syl syl5eqel id raleqdv anbi12d exbidv imbi12d cfv
        feq2d eleq2d ac6s vtoclg syl ) ABPZDQZHCUAZBERZECGPZUBZWJFQZBERZSZGUCZA
        WLBEAWJEQZSZWJNPZQZWLNHCDUDZUEZXAXBXEQZSZXCSZXBDUFZHCUAZWLXHXFXJXAXFXCU
        GXBTQXFXJUHNUJHCDXBXDTXDUKUIULUMXHXIWKHCXGXCHXAXFHXAHUNHXBXEHXBUOHXDHCD
        UPUQURVCXCHUNVCXHHPZCQZXIWKUSXHXLSZXIWKXMXISWJXBDXGXCXLXIUTXMXIVAVBVDVD
        VEVFWTXCNXEUAZAWTWJXEVGZQZXNWTXPEXOWJLVHVINWJXEVJUMVKVLVMAETQWMWSUSZAEX
        OTLACIQXDTQXETQXOTQJHCDIVNXDTVOXETVPVQVRWLBOPZRZXRCWNUBZWPBXRRZSZGUCZUS
        XQOETXREUFZXSWMYCWSYDWLBXREYDVSZVTYDYBWRGYDXTWOYAWQYDXRECWNYEWEYDWPBXRE
        YEVTWAWBWCWKWPBHXRCGOUJXKWJWNWDUFDFWJMWFWGWHWIVF $.
    $}

    aciunf1lem.a $e |- F/_ j A $.
    ${
      $d c f x y k A $.  $d c f k y B $.  $d c f x y C $.  $d c D $.
      $d f j k x y ph $.  $d j c $.
      acunirnmpt2f.c $e |- F/_ j C $.
      acunirnmpt2f.d $e |- F/_ j D $.
      acunirnmpt2f.2 $e |- C = U_ j e. A B $.
      acunirnmpt2f.3 $e |- ( j = ( f ` x ) -> B = D ) $.
      acunirnmpt2f.4 $e |- ( ( ph /\ j e. A ) -> B e. W ) $.
      $( Axiom of choice for the union of the range of a mapping to function.
         (Contributed by Thierry Arnoux, 7-Nov-2019.) $)
      acunirnmpt2f $p |- ( ph -> E. f ( f : C --> A /\ A. x e. C x e. D ) ) $=
        ( wcel cvv vy vk vc cv wrex wral wf wa wex cmpt crn wceq simplr wb eqid
        vex elrnmpt ax-mp sylib nfv nfcri nfan nfcv nfmpt1 nfrn nfel wi simpllr
        simpr eleqtrd ex reximdai mpd cuni ciun ralrimiva dfiun3g syl5eq eleq2d
        syl biimpa eluni2 r19.29a nfcsb1v csbeq1a cbvmptf mptexg syl5eqel rnexg
        csb uniexg 4syl eqeltrd raleqdv feq2d anbi12d exbidv imbi12d cfv ac6sf2
        id vtoclg ) ABUDZDSZHCUEZBEUFZECGUDZUGZXCFSZBEUFZUHZGUIZAXEBEAXCESZUHZX
        CUAUDZSZXEUAHCDUJZUKZXNXOXRSZUHZXPUHZXODULZHCUEZXEYAXSYCXNXSXPUMXOTSXSY
        CUNUAUPHCDXOXQTXQUOUQURUSYAYBXDHCXTXPHXNXSHAXMHAHUTHBENVAVBHXOXRHXOVCHX
        QHCDVDVEVFVBXPHUTVBYAHUDZCSZYBXDVGYAYEUHZYBXDYFYBUHXCXODXTXPYEYBVHYFYBV
        IVJVKVKVLVMXNXCXRVNZSZXPUAXRUEAXMYHAEYGXCAEHCDVOZYGPADJSZHCUFYIYGULAYJH
        CRVPHCDJVQVTVRZVSWAUAXCXRWBUSWCVPAETSXFXLVGZAEYGTYKACISZXQTSXRTSYGTSKYM
        XQUBCHUBUDZDWJZUJTHUBCDYOMUBCVCUBDVCHYNDWDHYNDWEWFUBCYOIWGWHXQTWIXRTWKW
        LWMXEBUCUDZUFZYPCXGUGZXIBYPUFZUHZGUIZVGYLUCETYPEULZYQXFUUAXLUUBXEBYPEUU
        BXAZWNUUBYTXKGUUBYRXHYSXJUUBYPECXGUUCWOUUBXIBYPEUUCWNWPWQWRXDXIBHYPCGMH
        BFOVAUCUPYDXCXGWSULDFXCQVSWTXBVTVM $.
    $}

    $d f j k y $.  $d f g k x y A $.  $d f g k x y B $.  $d g j k x ph $.
    $d j W $.
    aciunf1lem.1 $e |- ( ( ph /\ j e. A ) -> B e. W ) $.
    $( Choice in an index union.  (Contributed by Thierry Arnoux,
       8-Nov-2019.) $)
    aciunf1lem $p |- ( ph
      -> E. f ( f : U_ j e. A B -1-1-> U_ j e. A ( { j } X. B )
            /\ A. x e. U_ j e. A B ( 2nd ` ( f ` x ) ) = x ) ) $=
      ( vk cfv wcel wral wa wceq nfcv cvv vg vy ciun cv wf csb csn cxp wf1 c2nd
      wex nfiu1 nfcsb1v eqid csbeq1a acunirnmpt2f cop cmpt wi nfv nfan nff nfel
      nfra1 nfral wrex simplr simpld ad2antrr simpllr ffvelrnd fvex snid simprd
      a1i simpr rsp sylc jca opelxp sylibr csbeq1 xpeq12d eleq2d rspcev syl2anc
      sneq eliun nfxp cbvrexf bitri biimpi adantl r19.29af2 ex ralrimi vex opth
      simprbi rgen2w fveq2 id opeq12d f1mpt opex fvmpt2 mpan2 syl fveq2d syl6eq
      op2nd eleq1 anbi2d eleq1d imbi12d chvar ralrimiva cbviunf iunexg syl5eqel
      nfim mptexg f1eq1 nfmpt1 nfeq fveq1 eqeq1d ralbid anbi12d spcegv 3syl mpd
      adantr exlimddv ) AFCDUCZCUAUDZUEZBUDZFYRYPNZDUFZOZBYOPZQZYOFCFUDZUGZDUHZ
      UCZEUDZUIZYRUUHNZUJNZYRRZBYOPZQZEUKZUAABCDYOYTUAFGHIJKFCDULZFYSDUMZYOUNFY
      SDUOLUPAUUCQZYOUUGBYOYSYRUQZURZUIZYRUUTNZUJNZYRRZBYOPZQZUUOUURUVAUVEUURUU
      SUUGOZBYOPZUUSUBUDZYPNZUVIUQZRZYRUVIRZUSZUBYOPBYOPZQUVAUURUVHUVOUURUVGBYO
      AUUCBABUTYQUUBBYQBUTUUABYOVDVAVAZUURYRYOOZUVGUURUVQQZYRDOZUVGFCUURUVQFAUU
      CFAFUTZYQUUBFFYOCYPFYPSUUPKVBUUAFBYOUUPFYRYTFYRSZUUQVCVEVAVAFYRYOUWAUUPVC
      VAFUUSUUGFUUSSZFCUUFULVCUVRUUDCOZQUVSQZUUSMUDZUGZFUWEDUFZUHZOZMCVFZUVGUWD
      YSCOUUSYSUGZYTUHZOZUWJUWDYOCYRYPUVRYQUWCUVSUVRYQUUBAUUCUVQVGZVHVIUURUVQUW
      CUVSVJVKUWDYSUWKOZUUAQUWMUWDUWOUUAUWOUWDYSYRYPVLZVMVOUVRUUAUWCUVSUVRUUBUV
      QUUAUVRYQUUBUWNVNUURUVQVPZUUABYOVQVRVIVSYSYRUWKYTVTWAUWIUWMMYSCUWEYSRZUWH
      UWLUUSUWRUWFUWKUWGYTUWEYSWGFUWEYSDWBWCWDWEWFUVGUUSUUFOZFCVFUWJFUUSCUUFWHU
      WSUWIFMCKMCSZUWSMUTFUUSUWHUWBFUWFUWGFUWFSFUWEDUMZWIVCUUDUWERZUUFUWHUUSUXB
      UUEUWFDUWGUUDUWEWGFUWEDUOZWCWDWJWKWAUVQUVSFCVFZUURUVQUXDFYRCDWHWLWMWNWOWP
      UVOUURUVNBUBYOYOUVLYSUVJRUVMYSYRUVJUVIUWPBWQZWRWSWTVOVSBUBYOUUGUUSUVKUUTU
      UTUNZUVMYSUVJYRUVIYRUVIYPXAUVMXBXCXDWAUURUVDBYOUVPUURUVQUVDUVRUVCUUSUJNYR
      UVRUVBUUSUJUVRUVQUVBUUSRZUWQUVQUUSTOUXGYSYRXEBYOUUSTUUTUXFXFXGXHXIYSYRUWP
      UXEXKXJWOWPVSAUVFUUOUSZUUCAYOTOZUUTTOUXHACGOZUWGHOZMCPZUXIIAUXKMCAUWCQZDH
      OZUSAUWECOZQZUXKUSFMUXPUXKFAUXOFUVTFUWECFUWESKVCVAFUWGHUXAFHSVCYAUXBUXMUX
      PUXNUXKUXBUWCUXOAUUDUWECXLXMUXBDUWGHUXCXNXOLXPXQUXJUXLQYOMCUWGUCTFMCDUWGK
      UWTMDSUXAUXCXRMCUWGGHXSXTWFBYOUUSTYBUUNUVFEUUTTUUHUUTRZUUIUVAUUMUVEYOUUGU
      UHUUTYCUXQUULUVDBYOBUUHUUTBUUHSBYOUUSYDYEUXQUUKUVCYRUXQUUJUVBUJYRUUHUUTYF
      XIYGYHYIYJYKYMYLYN $.
  $}

  ${
    $d A j k f $.  $d B f k $.  $d W j $.  $d f j k ph $.
    aciunf1.0 $e |- ( ph -> A e. V ) $.
    aciunf1.1 $e |- ( ( ph /\ j e. A ) -> B e. W ) $.
    $( Choice in an index union.  (Contributed by Thierry Arnoux,
       4-May-2020.) $)
    aciunf1 $p |- ( ph
        -> E. f ( f : U_ j e. A B -1-1-> U_ j e. A ( { j } X. B )
           /\ A. k e. U_ j e. A B ( 2nd ` ( f ` k ) ) = k ) ) $=
      ( c0 crab ciun cv wceq wral wa wcel eqidd wtru wne csn cxp wf1 cfv ssrab2
      wex cvv wss ssexg sylancr rabid biimpi adantl simprd nfrab1 simpld syldan
      c2nd aciunf1lem cdif nfv nfcv nfdif wn difrab rabtru difeq1i truan bitr4i
      wb df-ne a1i rabbidv trud 3eqtr3i iuneq12df ralrimiva iunxdif3 syl eqtr3d
      xpeq2d xp0 syl6eq f1eq123d raleqdv anbi12d exbidv mpbid ) AECKUAZEBLZCMZE
      WKENZUBZCUCZMZDNZUDZFNZWQUEUSUEWSOZFWLPZQZDUGEBCMZEBWOMZWQUDZWTFXCPZQZDUG
      AFWKCDEUHHAWKBUIBGRWKUHRWJEBUFIWKBGUJUKAWMWKRZQZWMBRZWJXHXJWJQZAXHXKWJEBU
      LUMUNZUOWJEBUPZAXHXJCHRXIXJWJXLUQJURUTAXBXGDAWRXEXAXFAWLXCWPXDWQWQAWQSAEB
      CKOZEBLZVAZCMZWLXCAEXPWKCCAEVBZEBXOEBVCZXNEBUPZVDZXMXPWKOATEBLZXOVATXNVEZ
      QZEBLZXPWKTXNEBVFYBBXOEBXSVGVHYEWKOTYDWJEBYDWJVKTYDYCWJYCVICKVLVJVMVNVOVP
      VMZACSVQAXNEXOPXQXCOAXNEXOAWMXORZQZXJXNYGXJXNQZAYGYIXNEBULUMUNUOZVREBCXOX
      TVSVTWAZAEXPWOMZWPXDAEXPWKWOWOXRYAXMYFAWOSVQAWOKOZEXOPYLXDOAYMEXOYHWOWNKU
      CKYHCKWNYJWBWNWCWDVREBWOXOXTVSVTWAWEAWTFWLXCYKWFWGWHWI $.
  $}

  ${
    $d a x y A $.  $d a x y B $.  $d a x y C $.  $d a x y F $.  $d a x y G $.
    $d a N $.  $d a x y R $.  $d a x y ph $.
    ofoprabco.1 $e |- F/_ a M $.
    ofoprabco.2 $e |- ( ph -> F : A --> B ) $.
    ofoprabco.3 $e |- ( ph -> G : A --> C ) $.
    ofoprabco.4 $e |- ( ph -> A e. V ) $.
    ofoprabco.5 $e |- ( ph ->
                            M = ( a e. A |-> <. ( F ` a ) , ( G ` a ) >. ) ) $.
    ofoprabco.6 $e |- ( ph -> N = ( x e. B , y e. C |-> ( x R y ) ) ) $.
    $( Function operation as a composition with an operation.  (Contributed by
       Thierry Arnoux, 4-Jun-2017.) $)
    ofoprabco $p |- ( ph -> ( F oF R G ) = ( N o. M ) ) $=
      ( cvv cv cfv cmpt ccom cof wcel cop cxp ffvelrnda opelxpi syl2anc fvmpt2d
      co fveq2d wceq df-ov a1i cmpt2 adantr simprl simprr oveq12d ovexd ovmpt2d
      wa 3eqtr2d mpteq2dva wral ovex rgen2w eqid fmpt2 mpbi feq1d mpbiri fmpt3d
      wf fcomptf feqmptd offval2 3eqtr4rd ) AMDMUAZJUBZKUBZUCZMDWBHUBZWBIUBZGUM
      ZUCKJUDZHIGUEUMAMDWDWHAWBDUFZVEZWDWFWGUGZKUBZWFWGKUMZWHWKWCWLKAMDWLJEFUHZ
      RWKWFEUFWGFUFWLWOUFADEWBHOUIZADFWBIPUIZWFWGEFUJUKZULUNWNWMUOWKWFWGKUPUQWK
      BCWFWGEFBUAZCUAZGUMZWHKTAKBCEFXAURZUOWJSUSWKWSWFUOZWTWGUOZVEVEWSWFWTWGGWK
      XCXDUTWKXCXDVAVBWPWQWKWFWGGVCVDVFVGAWOTKVQZDWOJVQWIWEUOAXEWOTXBVQZXATUFZC
      FVHBEVHXFXGBCEFWSWTGVIVJBCEFXATXBXBVKVLVMAWOTKXBSVNVOAMDWLWOJRWRVPMKJDWOT
      NVRUKAMDWFWGGHILEFQWPWQAMDEHOVSAMDFIPVSVTWA $.
  $}

  ${
    $d p q s x y A $.  $d s x y B $.  $d s x y C $.  $d p q D $.
    $d p q s x y F $.  $d p q s x y G $.  $d p q s x y R $.  $d p q s x y ph $.
    ofpreima.1 $e |- ( ph -> F : A --> B ) $.
    ofpreima.2 $e |- ( ph -> G : A --> C ) $.
    ofpreima.3 $e |- ( ph -> A e. V ) $.
    ofpreima.4 $e |- ( ph -> R Fn ( B X. C ) ) $.
    $( Express the preimage of a function operation as a union of preimages.
       (Contributed by Thierry Arnoux, 8-Mar-2018.) $)
    ofpreima $p |- ( ph -> ( `' ( F oF R G ) " D ) = U_ p e. ( `' R " D )
         ( ( `' F " { ( 1st ` p ) } ) i^i ( `' G " { ( 2nd ` p ) } ) ) ) $=
      ( vs vq cfv wceq wcel wa vx vy cof co ccnv cima cv cop cmpt c1st csn c2nd
      cin ciun ccom nfmpt1 eqidd cmpt2 fnov sylib ofoprabco cnveqd cnvco syl6eq
      cxp wfn imaeq1d imaco wbr wrex cab dfima2 vex brcnv cdm wfun wb funbrfv2b
      funmpt ax-mp opex dmmpti eleq2i anbi1i bitri fveq2 opeq12d eqeq1d pm5.32i
      eqid fvmpt 3bitri rexbii abbii nfv nfab1 nfcv eliun fniniseg 3syl anbi12d
      wf ffn elin anandi 3bitr4g adantr cnvimass fndm syl syl5sseq sselda eqeq2
      1st2nd2 fvex opth syl6bb anbi2d bitr4d rexbidva abid syl6bbr syl5rbb eqrd
      syl5eq eqtrd ) AGHFUCUDZUEZEUFZOBOUGZGQZYJHQZUHZUIZUEZFUEZEUFZUFZJYQGUEJU
      GZUJQZUKUFZHUEYSULQZUKUFZUMZUNZAYIYOYPUOZEUFYRAYHUUFEAYHFYNUOZUEUUFAYGUUG
      AUAUBBCDFGHYNFIOOBYMUPKLMAYNUQAFCDVEZVFZFUAUBCDUAUGUBUGFUDURRNUAUBCDFUSUT
      VAVBFYNVCVDVGYOYPEVHVDAYRYSPUGZYOVIZJYQVJZPVKZUUEJPYOYQVLAUUMUUJBSZUUJGQZ
      UUJHQZUHZYSRZTZJYQVJZPVKZUUEUULUUTPUUKUUSJYQUUKUUJYSYNVIZUUNUUJYNQZYSRZTZ
      UUSYSUUJYNJVMPVMVNUVBUUJYNVOZSZUVDTZUVEYNVPUVBUVHVQOBYMVSUUJYSYNVRVTUVGUU
      NUVDUVFBUUJOBYMYNYKYLWAYNWJZWBWCWDWEUUNUVDUURUUNUVCUUQYSOUUJYMUUQBYNYJUUJ
      RYKUUOYLUUPYJUUJGWFYJUUJHWFWGUVIUUOUUPWAWKWHWIWLWMWNAPUVAUUEAPWOUUTPWPPUU
      EWQUUJUUESUUJUUDSZJYQVJZAUUJUVASZJUUJYQUUDWRAUVKUUTUVLAUVJUUSJYQAYSYQSZTZ
      UVJUUNUUOYTRZUUPUUBRZTZTZUUSAUVJUVRVQUVMAUUJUUASZUUJUUCSZTUUNUVOTZUUNUVPT
      ZTUVJUVRAUVSUWAUVTUWBABCGXBGBVFUVSUWAVQKBCGXCBYTUUJGWSWTABDHXBHBVFUVTUWBV
      QLBDHXCBUUBUUJHWSWTXAUUJUUAUUCXDUUNUVOUVPXEXFXGUVNUURUVQUUNUVNUURUUQYTUUB
      UHZRZUVQUVNYSUUHSYSUWCRUURUWDVQAYQUUHYSAFVOZYQUUHFEXHAUUIUWEUUHRNUUHFXIXJ
      XKXLYSCDXNYSUWCUUQXMWTUUOUUPYTUUBUUJGXOUUJHXOXPXQXRXSXTUUTPYAYBYCYDYEYEYF
      $.

    $( Express the preimage of a function operation as a union of preimages.
       This version of ~ ofpreima iterates the union over a smaller set.
       (Contributed by Thierry Arnoux, 8-Mar-2018.) $)
    ofpreima2 $p |- ( ph -> ( `' ( F oF R G ) " D ) =
         U_ p e. ( ( `' R " D ) i^i ( ran F X. ran G ) )
         ( ( `' F " { ( 1st ` p ) } ) i^i ( `' G " { ( 2nd ` p ) } ) ) ) $=
      ( cin ciun wceq syl6eq c0 wcel cof co ccnv cima crn cxp c1st cfv csn c2nd
      cv cun ofpreima inundif iuneq1 ax-mp iunxun eqtr3i wa wo wn simpr eldifbd
      cdif cop cdm cnvimass wfn fndm syl syl5sseq ssdifssd sselda 1st2nd2 elxp6
      wi simplbi2 3syl mtod ianor sylib disjsn orbi12i sylibr ffnd dffn3 adantr
      wf fimacnvdisj ineq1 0in ineq2 in0 jaao syl2an2r mpd iuneq2dv iun0 uneq2d
      ex un0 eqtrd ) AGHFUAUBUCEUDZJFUCEUDZGUEZHUEZUFZOZGUCJUKZUGUHZUIZUDZHUCXI
      UJUHZUIZUDZOZPZJXDXGVDZXPPZULZXQAXCJXDXPPZXTABCDEFGHIJKLMNUMJXHXRULZXPPZY
      AXTYBXDQYCYAQXDXGUNJYBXDXPUOUPJXHXRXPUQURRAXTXQSULXQAXSSXQAXSJXRSPSAJXRXP
      SAXIXRTZUSZXEXKOSQZXFXNOSQZUTZXPSQZYEXJXETZVAZXMXFTZVAZUTZYHYEYJYLUSZVAYN
      YEYOXIXGTZYEXIXDXGAYDVBVCYEXICDUFZTXIXJXMVEQZYOYPVPAXRYQXIAXDYQXGAFVFZXDY
      QFEVGAFYQVHYSYQQNYQFVIVJVKVLVMXICDVNYPYRYOXIXEXFVOVQVRVSYJYLVTWAYFYKYGYMX
      EXJWBXFXMWBWCWDABXEGWHZYDBXFHWHZYHYIVPAGBVHYTABCGKWEBGWFWAAUUAYDAHBVHUUAA
      BDHLWEBHWFWAWGYTYFYIUUAYGYTYFYIYTYFUSXLSQZYIBXEXKGWIUUBXPSXOOSXLSXOWJXOWK
      RVJWTUUAYGYIUUAYGUSXOSQZYIBXFXNHWIUUCXPXLSOSXOSXLWLXLWMRVJWTWNWOWPWQJXRWR
      RWSXQXARXB $.
  $}

  ${
    $d x y z $.  $d y F $.  $d y z ph $.
    funcnvmpt.0 $e |- F/ x ph $.
    funcnvmpt.1 $e |- F/_ x A $.
    funcnvmpt.2 $e |- F/_ x F $.
    funcnvmpt.3 $e |- F = ( x e. A |-> B ) $.
    funcnvmpt.4 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    $( Condition for a function in maps-to notation to be single-rooted.
       (Contributed by Thierry Arnoux, 28-Feb-2017.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    funcnvmptOLD $p |- ( ph ->
              ( Fun `' F <-> A. y E* x ( x e. A /\ y = B ) ) ) $=
      ( wfun cv wmo wal wcel wceq wa wb ccnv wbr wrel relcnv nfcv nfcnv dffun6f
      mpbiran vex brcnv mobii albii bitri nfv cfv funmpt funeqi mpbir funbrfv2b
      cdm cmpt ax-mp cvv crab wral syl ex ralrimi rabid2f sylibr dmmpt syl6reqr
      eleq2d anbi1d syl5bb bian1d fveq1i simpr fvmpt2f syl2anc syl5eq eqeq2d wi
      elex biimpar funbrfvb sylancr eqcom bibi1i imbi2i bitr3d pm5.32d 3bitr4rd
      mpbi mobid albid ) FUAZMZBNZCNZFUBZBOZCPZAWSDQZWTERZSZBOZCPWRWTWSWQUBZBOZ
      CPZXCWRWQUCXJFUDCBWQCWQUEBFJUFUGUHXIXBCXHXABWTWSFCUIBUIUJUKULUMAXBXGCACUN
      AXAXFBHAXDXASXDWSFUOZWTRZSZXFXAAXAXDXLXAWSFUTZQZXLSZAXMFMZXAXPTXQBDEVAZMB
      DEUPFXRKUQURZWSWTFUSVBAXOXDXLAXNDWSADEVCQZBDVDZXNAXTBDVEDYARAXTBDHAXDXTAX
      DSZEGQZXTLEGWDVFVGVHXTBDIVIVJBDEFKVKVLVMZVNVOZVPAXDXEXAAXDXEXATYBWTXKRZXE
      XAYBXKEWTYBXKWSXRUOZEWSFXRKVQYBXDYCYGERAXDVRLBDEGIVSVTWAWBYBXLXATZWCYBYFX
      ATZWCYBXQXOYHXSAXOXDYDWEWSWTFWFWGYHYIYBXLYFXAXKWTWHWIWJWNWKVGWLYEWMWOWPVO
      $.

    $( Condition for a function in maps-to notation to be single-rooted.
       (Contributed by Thierry Arnoux, 28-Feb-2017.) $)
    funcnvmpt $p |- ( ph -> ( Fun `' F <-> A. y E* x e. A y = B ) ) $=
      ( wfun cv wbr wmo wal wceq wcel wa ccnv wrmo relcnv nfcnv dffun6f mpbiran
      wrel nfcv vex brcnv mobii albii bitri cfv cdm funmpt2 funbrfv2b ax-mp cvv
      wb crab wral elex syl ralrimi rabid2f sylibr dmmpt syl6reqr eleq2d anbi1d
      ex syl5bb bian1d simpr fveq1i fvmpt2f syl5eq syl2anc eqeq2d eqcom biimpar
      cmpt funbrfvb sylancr syl5bbr bitr3d pm5.32da mobid df-rmo syl6bbr albidv
      3bitr4rd ) FUAZMZBNZCNZFOZBPZCQZAWQERZBDUBZCQWOWQWPWNOZBPZCQZWTWOWNUGXEFU
      CCBWNCWNUHBFJUDUEUFXDWSCXCWRBWQWPFCUIBUIUJUKULUMAWSXBCAWSWPDSZXATZBPXBAWR
      XGBHAXFWRTXFWPFUNZWQRZTZXGWRAWRXFXIWRWPFUOZSZXITZAXJFMZWRXMUTBDEFKUPZWPWQ
      FUQURAXLXFXIAXKDWPADEUSSZBDVAZXKAXPBDVBDXQRAXPBDHAXFXPAXFTZEGSZXPLEGVCVDV
      LVEXPBDIVFVGBDEFKVHVIVJZVKVMZVNAXFXAWRXRWQXHRZXAWRXRXHEWQXRXFXSXHERAXFVOL
      XFXSTXHWPBDEWCZUNEWPFYCKVPBDEGIVQVRVSVTYBXIXRWRXHWQWAXRXNXLXIWRUTXOAXLXFX
      TWBWPWQFWDWEWFWGWHYAWMWIXABDWJWKWLVM $.

    ${
      $d y z A $.  $d y z B $.  $d x y C $.
      funcnv5mpt.1 $e |- ( x = z -> B = C ) $.
      $( Two ways to say that a function in maps-to notation is single-rooted.
         (Contributed by Thierry Arnoux, 1-Mar-2017.) $)
      funcnv5mpt $p |- ( ph -> ( Fun `' F <->
                                A. x e. A A. z e. A ( x = z \/ B =/= C ) ) ) $=
        ( vy cv wceq wal wral wi ccnv wfun wrmo wne wo funcnvmpt wa wcel wn wex
        nne eqvincg syl syl5bb imbi1d orcom df-or bitri 3bitr4g ralbidv ralcom4
        19.23v syl6bb ralbida nfcv nfv eqeq2d rmo4f albii bitr4i syl6bbr bitr4d
        wb ) AGUAUBOPZEQZBDUCZORZBPZCPQZEFUDZUEZCDSZBDSZABODEGHIJKLMUFAWCVOVNFQ
        ZUGZVSTZCDSZORZBDSZVQAWBWHBDIAVRDUHUGZWBWFORZCDSWHWJWAWKCDWJVTUIZVSTZWE
        OUJZVSTWAWKWJWLWNVSWLEFQZWJWNEFUKWJEHUHWOWNVMMOEFHULUMUNUOWAVTVSUEWMVSV
        TUPVTVSUQURWEVSOVBUSUTWFCODVAVCVDVQWGBDSZORWIVPWPOVOWDBCDJCDVEWDBVFVSEF
        VNNVGVHVIWGBODVAVJVKVL $.
    $}

    ${
      $d i j x $.  $d i j A $.  $d i j B $.  $d i F $.  $d x V $.  $d i j ph $.
      $( Two ways to say that a function in maps-to notation is single-rooted.
         (Contributed by Thierry Arnoux, 2-Mar-2017.) $)
      funcnv4mpt $p |- ( ph -> ( Fun `' F <->
        A. i e. A A. j e. A ( i = j \/ [_ i / x ]_ B =/= [_ j / x ]_ B ) ) ) $=
        ( cv csb nfcv cmpt wcel wa wsb nfcsb1v csbeq1a cbvmptf eqtri sbimi nfel
        nfv nfan weq eleq1 anbi2d sbie eleq1d 3imtr3i csbeq1 funcnv5mpt ) AEFCB
        ENZDOZBFNZDOGHAEUGECPZEGPGBCDQECURQLBECDURJUTEDPBUQDUAZBUQDUBZUCUDABNZC
        RZSZBETDHRZBETAUQCRZSZURHRZVEVFBEMUEVEVHBEAVGBIBUQCBUQPJUFUHBEUIZVDVGAV
        CUQCUJUKULVFVIBEBURHVABHPUFVJDURHVBUMULUNBUQUSDUOUP $.
    $}
  $}

  ${
    $d p q F $.  $d p q X $.
    $( Exactly one point of a function's graph has a given first element.
       (Contributed by Thierry Arnoux, 1-Apr-2018.) $)
    fgreu $p |- ( ( Fun F /\ X e. dom F ) -> E! p e. F X = ( 1st ` p ) ) $=
      ( vq wfun cdm wcel wa cv c1st cfv wceq wral wrex cop syl2anc simpr eqtr4d
      wb cvv wreu funfvop c2nd wrel simplll funrel simplr 1st2nd simpllr opeq1d
      syl eqeltrrd funopfvb biimpar syl21anc opeq12d fveq2d fvex mpan2 ad3antlr
      op1stg eqtr2d impbida ralrimiva eqeq2 bibi2d ralbidv rspcev reu6 sylibr )
      AEZBAFZGZHZBCIZJKZLZVODIZLZSZCAMZDANZVQCAUAVNBBAKZOZAGVQVOWDLZSZCAMZWBBAU
      BVNWFCAVNVOAGZHZVQWEWIVQHZVOVPVOUCKZOZWDWJAUDZWHVOWLLWJVKWMVKVMWHVQUEZAUF
      UKVNWHVQUGZVOAUHPZWJBVPWCWKWIVQQZWJVKVMBWKOZAGZWCWKLZWNVKVMWHVQUIWJVOWRAW
      JVOWLWRWPWJBVPWKWQUJRWOULVNWTWSBWKAUMUNUOUPRWIWEHZVPWDJKZBXAVOWDJWIWEQUQV
      MXBBLZVKWHWEVMWCTGXCBAURBWCVLTVAUSUTVBVCVDWAWGDWDAVRWDLZVTWFCAXDVSWEVQVRW
      DVOVEVFVGVHPVQCDAVIVJ $.
  $}

  ${
    $d p q r A $.  $d p q Y $.
    $( If the converse of a relation ` A ` is a function, exactly one point of
       its graph has a given second element (that is, function value).
       (Contributed by Thierry Arnoux, 1-Apr-2018.) $)
    fcnvgreu $p |- ( ( ( Rel A /\ Fun `' A ) /\ Y e. ran A )
      -> E! p e. A Y = ( 2nd ` p ) ) $=
      ( vq vr ccnv wa wcel cv c2nd cfv wceq wreu c1st wb csn cxp simpr syl12anc
      cuni wrel wfun crn cdm df-rn fgreu adantll sylan2b cop cnvcnvss cnvssrndm
      eleq2i sseli dfdm4 xpeq12i syl6eleq 2nd1st eqcomd relcnv cnvf1olem simpld
      syl mpan mpdan sseldi adantl wral wrex simpll wss relssdmrn adantr sselda
      a1i simplr ad2antlr simprd sneqd cnveqd unieqd ad2antrr 3eqtr2d ralrimiva
      impbida eqeq2 bibi2d ralbidv rspcev syl2anc sylibr op2ndd eqeq2d reuxfr4d
      reu6 fvex mpbird ) AUAZAFZUBZGZBAUCZHZGBCIZJKZLZCAMZBDIZNKZLZDWRMZXBWTBWR
      UDZHZXJXAXKBAUEZULWSXLXJWQWRBDUFUGUHWTXFXJOXBWTXEXICDXGJKZXHUIZAWRXGWRHZX
      OAHWTXPWRFZAXOAUJXPXOXGPZFZTZLZXOXQHZXPXTXOXPXGXKWRUCZQZHXTXOLZXPXGXAAUDZ
      QZYDWRYGXGAUKUMXAXKYFYCXMAUNUOUPXGXKYCUQVBZURZWRUAZXPYAGZYBAUSZYJYKGZYBXG
      XOPZFZTZLZWRXGXOUTZVAVCVDVEVFWTXCAHZGZXCXOLZXGEIZLZOZDWRVGZEWRVHZUUADWRMY
      TXDXCNKUIZWRHZUUAXGUUGLZOZDWRVGZUUFYTWQYSUUGXCPZFZTZLZUUHWQWSYSVIZWTYSRZY
      TUUNUUGYTXCYFXAQZHUUNUUGLZWTAUURXCWQAUURVJWSAVKVLVMXCYFXAUQVBZURZWQYSUUOG
      GZUUHXCUUGPZFZTZLZAXCUUGUTZVASYTUUJDWRYTXPGZUUAUUIUVHUUAGZXGYPUUNUUGUVIYJ
      XPYAYQYJUVIYLVNYTXPUUAVOXPYAYTUUAYIVPYMYBYQYRVQSUVIUUMYOUVIUULYNUVIXCXOUV
      HUUARVRVSVTYTUUSXPUUAUUTWAWBUVHUUIGZXCUVEXTXOYTUVFXPUUIYTWQYSUUOUVFUUPUUQ
      UVAUVBUUHUVFUVGVQSWAUVJXSUVDUVJXRUVCUVJXGUUGUVHUUIRVRVSVTXPYEYTUUIYHVPWBW
      DWCUUEUUKEUUGWRUUBUUGLZUUDUUJDWRUVKUUCUUIUUAUUBUUGXGWEWFWGWHWIUUADEWRWNWJ
      UUAXEXIOWTUUAXDXHBXNXHXCXGJWOXGNWOWKWLVFWMVLWP $.
  $}

  ${
    $d y z A $.  $d z B $.  $d z C $.  $d x y z D $.  $d z F $.
    rnmpt2ss.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    $( The range of an operation given by the "maps to" notation as a subset.
       (Contributed by Thierry Arnoux, 23-May-2017.) $)
    rnmpt2ss $p |- ( A. x e. A A. y e. B C e. D -> ran F C_ D ) $=
      ( vz wcel wral crn cv wceq wrex rnmpt2 abeq2i wa simpl simpr r19.29d2r wi
      eleq1 biimparc a1i rexlimivv syl ex syl5bi ssrdv ) EFJZBDKACKZIGLZFIMZUMJ
      UNENZBDOACOZULUNFJZUPIUMABICDEGHPQULUPUQULUPRZUKUORZBDOACOUQURUKUOABCDULU
      PSULUPTUAUSUQABCDUSUQUBAMCJBMDJRUOUQUKUNEFUCUDUEUFUGUHUIUJ $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C y $.
    $( Deduce subset relation of mapping-to function graphs from a subset
       relation of domains.  Alternative proof of ~ mptss .  (Contributed by
       Thierry Arnoux, 30-May-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    mptssALT $p |- ( A C_ B -> ( x e. A |-> C ) C_ ( x e. B |-> C ) ) $=
      ( vy wss cv wcel wceq wa copab cmpt ssel anim1d ssopab2dv df-mpt 3sstr4g
      ) BCFZAGZBHZEGDIZJZAEKSCHZUAJZAEKABDLACDLRUBUDAERTUCUABCSMNOAEBDPAECDPQ
      $.
  $}

  $( Rewrite a function defined by parts, using a mapping and an if construct,
     into a union of functions on disjoint domains.  (Contributed by Thierry
     Arnoux, 30-Mar-2017.) $)
  partfun $p |- ( x e. A |-> if ( x e. B , C , D ) ) =
                ( ( x e. ( A i^i B ) |-> C ) u. ( x e. ( A \ B ) |-> D ) ) $=
    ( cin cdif cun cv wcel cif cmpt mptun inundif eqid mpteq12i elinel2 iftrued
    mpteq2ia eldifn iffalsed uneq12i 3eqtr3i ) ABCFZBCGZHZAIZCJZDEKZLAUDUILZAUE
    UILZHABUILAUDDLZAUEELZHAUDUEUIMAUFUIBUIBCNUIOPUJULUKUMAUDUIDUGUDJUHDEUGBCQR
    SAUEUIEUGUEJUHDEUGBCTUASUBUC $.

  ${
    $d x y z A $.  $d x y z R $.
    $( Alternative definition of the converse of a relation.  (Contributed by
       Thierry Arnoux, 31-Mar-2018.) $)
    dfcnv2 $p |- ( ran R C_ A ->
      `' R = U_ x e. A ( { x } X. ( `' R " { x } ) ) ) $=
      ( vz vy crn wss ccnv cv csn cima cxp ciun relcnv wrel wral wa vex syl6bbr
      wcel relxp rgenw reliun mpbir cop cdm opeldm df-rn syl6eleqr ssel2 sylan2
      ex pm4.71rd elimasn anbi2i wceq sneq imaeq2d opeliunxp2 eqrelrdv ) CFZBGZ
      DECHZABAIZJZVCVEKZLZMZCNVHOVGOZABPVIABVEVFUAUBABVGUCUDVBDIZEIZUEZVCTZVJBT
      ZVKVCVJJZKZTZQZVLVHTVBVMVNVMQVRVBVMVNVBVMVNVMVBVJVATVNVMVJVCUFVAVJVKVCDRZ
      ERZUGCUHUIVABVJUJUKULUMVQVMVNVCVJVKVSVTUNUOSABVFVJVKVPVDVJUPVEVOVCVDVJUQU
      RUSSUT $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Operations - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d w x y z A $.  $d w y z B $.  $d w C $.  $d w z D $.
    mpt2mptxf.0 $e |- F/_ x C $.
    mpt2mptxf.1 $e |- F/_ y C $.
    mpt2mptxf.2 $e |- ( z = <. x , y >. -> C = D ) $.
    $( Express a two-argument function as a one-argument function, or
       vice-versa.  In this version ` B ( x ) ` is not assumed to be constant
       w.r.t ` x ` .  (Contributed by Mario Carneiro, 29-Dec-2014.)  (Revised
       by Thierry Arnoux, 31-Mar-2018.) $)
    mpt2mptxf $p |- ( z e. U_ x e. A ( { x } X. B ) |-> C ) =
      ( x e. A , y e. B |-> D ) $=
      ( vw cv wcel wceq wa copab wex nfeq2 19.41 eqtr4i csn cxp ciun cmpt cmpt2
      df-mpt coprab df-mpt2 cop eliunxp anbi1i exbii bitri anass eqeq2d pm5.32i
      anbi2d 2exbii 3bitr2i opabbii dfoprab2 ) CADALZUAEUBUCZFUDCLZVCMZKLZFNZOZ
      CKPZABDEGUEZCKVCFUFVJVBDMBLZEMOZVFGNZOZABKUGZVIABKDEGUHVIVDVBVKUINZVNOZBQ
      AQZCKPVOVHVRCKVHVPVLOZBQZAQZVGOZVSVGOZBQZAQZVRVEWAVGABDEVDUJUKWEVTVGOZAQW
      BWDWFAVSVGBBVFFIRSULVTVGAAVFFHRSUMWCVQABWCVPVLVGOZOVQVPVLVGUNVPWGVNVPVGVM
      VLVPFGVFJUOUQUPUMURUSUTVNABKCVATTT $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Isomorphisms - misc. add.
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Two ways to write a strictly decreasing function on the reals.
     (Contributed by Thierry Arnoux, 6-Apr-2017.) $)
  gtiso $p |- ( ( A C_ RR* /\ B C_ RR* ) ->
    ( F Isom < , `' < ( A , B ) <-> F Isom <_ , `' <_ ( A , B ) ) ) $=
    ( cxr wss clt ccnv wiso cle cxp cin cdif eqid wceq df-le wrel dfrel2 ineq1i
    wb mpbi isocnv3 a1i cnveqi cnvdif cnvxp ltrel difeq12i 3eqtri indif1 xpss12
    eqtri anidms sseqin2 difeq1d syl5req adantr isoeq2 syl adantl isoeq3 3bitrd
    wa sylib isocnv2 isores2 isores1 bitri lerel ax-mp 3bitr3ri syl6bbr ) ADEZB
    DEZVBZABFFGZCHZABIGZAAJZKZIBBJZKZCHZABIVQCHZVNVPABVRFLZVTVOLZCHZABVSWECHZWB
    VPWFSVNABWDWEFVOCWDMWEMUAUBVNWDVSNZWFWGSVLWHVMVLVSDDJZVRKZFLZWDVSWIFLZVRKWK
    VQWLVRVQWIVOLZGWIGZVOGZLWLIWMOUCWIVOUDWNWIWOFDDUEFPWOFNUFFQTUGUHRWIVRFUIUKV
    LWJVRFVLVRWIEZWJVRNVLWPADADUJULVRWIUMVCUNUOUPABWDWEVSCUQURVNWEWANZWGWBSVMWQ
    VLVMWAWIVTKZVOLZWEWAWMVTKWSIWMVTORWIVTVOUIUKVMWRVTVOVMVTWIEZWRVTNVMWTBDBDUJ
    ULVTWIUMVCUNUOUSABVSWEWACUTURVAABVQICHZABVQGZVQCHZWBWCABVQICVDXAABVQWACHWBA
    BVQICVEABVQWACVFVGXBINZXCWCSIPXDVHIQTABXBVQICUQVIVJVK $.

  ${
    $d x y A $.  $d w x y z B $.  $d x y C $.  $d w x y z D $.  $d w x y z G $.
    $d w x y z H $.  $d x y R $.  $d w x y z S $.  $d w x y z ph $.
    isoun.1 $e |- ( ph -> H Isom R , S ( A , B ) ) $.
    isoun.2 $e |- ( ph -> G Isom R , S ( C , D ) ) $.
    isoun.3 $e |- ( ( ph /\ x e. A /\ y e. C ) -> x R y ) $.
    isoun.4 $e |- ( ( ph /\ z e. B /\ w e. D ) -> z S w ) $.
    isoun.5 $e |- ( ( ph /\ x e. C /\ y e. A ) -> -. x R y ) $.
    isoun.6 $e |- ( ( ph /\ z e. D /\ w e. B ) -> -. z S w ) $.
    isoun.7 $e |- ( ph -> ( A i^i C ) = (/) ) $.
    isoun.8 $e |- ( ph -> ( B i^i D ) = (/) ) $.
    $( Infer an isomorphism from a union of two isomorphisms.  (Contributed by
       Thierry Arnoux, 30-Mar-2017.) $)
    isoun $p |- ( ph -> ( H u. G ) Isom R , S ( ( A u. C ) , ( B u. D ) ) ) $=
      ( cun wf1o cv wbr cfv wb wral wiso cin c0 wceq isof1o f1oun syl22anc wcel
      syl wa wo elun isorel sylan wfn f1ofn adantr anim1i fvun1 syl3anc adantrr
      wi adantrl breq12d bitr4d anassrs 3expb 3expia ralrimiv ralrimiva wf f1of
      ffvelrnda breq1 breq2 rspc2v syl2anc fvun2 3brtr4d 2thd jaodan sylan2b ex
      mpd wn notbid mtbird 2falsed df-isom sylanbrc ) AFHUBZGIUBZMLUBZUCZBUDZCU
      DZJUEZXCXAUFZXDXAUFZKUEZUGZCWSUHZBWSUHWSWTJKXAUIAFGMUCZHILUCZFHUJUKULZGIU
      JUKULXBAFGJKMUIZXKNFGJKMUMUQZAHIJKLUIZXLOHIJKLUMUQZTUAFGHIMLUNUOAXJBWSAXC
      WSUPZURXICWSXRAXCFUPZXCHUPZUSXDWSUPZXIVJZXCFHUTAXSYBXTAXSURZYAXIYAYCXDFUP
      ZXDHUPZUSZXIXDFHUTZYCYDXIYEAXSYDXIAXSYDURZURZXEXCMUFZXDMUFZKUEZXHAXNYHXEY
      LUGNFGXCXDJKMVAVBYIXFYJXGYKKAXSXFYJULZYDYCMFVCZLHVCZXMXSURYMAYNXSAXKYNXOF
      GMVDUQZVEAYOXSAXLYOXQHILVDUQZVEAXMXSTVFFHMLXCVGVHZVIAYDXGYKULZXSAYDURYNYO
      XMYDURYSAYNYDYPVEAYOYDYQVEAXMYDTVFFHMLXDVGVHZVKVLVMVNAXSYEXIAXSYEURZURZXE
      XHAXSYEXEPVOUUBYJXDLUFZXFXGKUUBDUDZEUDZKUEZEIUHZDGUHZYJUUCKUEZAUUHUUAAUUG
      DGAUUDGUPZURUUFEIAUUJUUEIUPUUFQVPVQVRVEUUBYJGUPZUUCIUPZUUHUUIVJAXSUUKYEAF
      GXCMAXKFGMVSXOFGMVTUQZWAVIAYEUULXSAHIXDLAXLHILVSXQHILVTUQZWAVKUUFUUIYJUUE
      KUEDEYJUUCGIUUDYJUUEKWBUUEUUCYJKWCWDWEWLAXSYMYEYRVIAYEXGUUCULZXSAYEURYNYO
      XMYEURUUOAYNYEYPVEAYOYEYQVEAXMYETVFFHMLXDWFVHZVKWGWHVNWIWJWKAXTURZYAXIYAU
      UQYFXIYGUUQYDXIYEAXTYDXIAXTYDURZURZXEXHAXTYDXEWMRVOUUSXHXCLUFZYKKUEZUUSUU
      FWMZEGUHZDIUHZUVAWMZAUVDUURAUVCDIAUUDIUPZURUVBEGAUVFUUEGUPUVBSVPVQVRVEUUS
      UUTIUPZYKGUPZUVDUVEVJAXTUVGYDAHIXCLUUNWAVIAYDUVHXTAFGXDMUUMWAVKUVBUVEUUTU
      UEKUEZWMDEUUTYKIGUUDUUTULUUFUVIUUDUUTUUEKWBWNUUEYKULUVIUVAUUEYKUUTKWCWNWD
      WEWLUUSXFUUTXGYKKAXTXFUUTULZYDUUQYNYOXMXTURUVJAYNXTYPVEAYOXTYQVEAXMXTTVFF
      HMLXCWFVHZVIAYDYSXTYTVKVLWOWPVNAXTYEXIAXTYEURZURZXEUUTUUCKUEZXHAXPUVLXEUV
      NUGOHIXCXDJKLVAVBUVMXFUUTXGUUCKAXTUVJYEUVKVIAYEUUOXTUUPVKVLVMVNWIWJWKWIWJ
      VQVRBCWSWTJKXAWQWR $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Disjointness (additional proof requiring functions)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d i j x $.  $d i j A $.  $d i j B $.  $d x V $.  $d i j ph $.
    disjdsct.0 $e |- F/ x ph $.
    disjdsct.1 $e |- F/_ x A $.
    disjdsct.2 $e |- ( ( ph /\ x e. A ) -> B e. ( V \ { (/) } ) ) $.
    disjdsct.3 $e |- ( ph -> Disj_ x e. A B ) $.
    $( A disjoint collection is distinct, i.e. each set in this collection is
       different of all others, provided that it does not contain the empty set
       This can be expressed as "the converse of the mapping function is a
       function", or "the mapping function is single-rooted".  (Cf. ~ funcnv )
       (Contributed by Thierry Arnoux, 28-Feb-2017.) $)
    disjdsct $p |- ( ph -> Fun `' ( x e. A |-> B ) ) $=
      ( vi vj cv wceq csb wne wral wcel wa c0 wsb cmpt ccnv wfun wdisj disjorsf
      wo cin sylib r19.21bi w3a simpr3 csn cdif eldifsni syl sbimi sbf clelsb3f
      sban anbi12i bitri wsbc sbsbc sbcne12 csb0 neeq2i 3imtr3i 3ad2antr1 disj3
      3bitri biimpi neeq1d biimpa difn0 3anassrs ex orim2d mpd ralrimiva nfmpt1
      syl2anc eqid funcnv4mpt mpbird ) ABCDUAZUBUCJLZKLZMZBWFDNZBWGDNZOZUFZKCPZ
      JCPAWMJCAWFCQZRZWLKCWOWGCQZRZWHWIWJUGSMZUFZWLWOWSKCAWSKCPZJCABCDUDWTJCPIB
      CDJKGUEUHUIUIWQWRWKWHWQWRWKAWNWPWRWKAWNWPWRUJRWRWISOZWKAWNWPWRUKAWPWNXAWR
      ABLCQZRZBJTZDSOZBJTZWOXAXCXEBJXCDESULUMZQXEHDESUNUOUPXDABJTZXBBJTZRWOAXBB
      JUSXHAXIWNABJFUQJBCGURUTVAXFXEBWFVBWIBWFSNZOXAXEBJVCBWFDSVDXJSWIBWFVEVFVJ
      VGVHWRXARWIWJUMZSOZWKWRXAXLWRWIXKSWRWIXKMWIWJVIVKVLVMWIWJVNUOWAVOVPVQVRVS
      VSABCDJKWEXGFGBCDVTWEWBHWCWD $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  First and second members of an ordered pair - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y z A $.  $d x y z B $.
    $( Definition for a restriction of the ` 1st ` (first member of an ordered
       pair) function.  (Contributed by Thierry Arnoux, 27-Sep-2017.) $)
    df1stres $p |- ( 1st |` ( A X. B ) ) = ( x e. A , y e. B |-> x ) $=
      ( vz c1st cxp cres cv wcel wa wceq coprab cvv df1st2 reseq1i resoprab cin
      cmpt2 resres incom xpss df-ss mpbi eqtr3i reseq2i 3eqtr3ri df-mpt2 eqtr4i
      wss eqtri ) FCDGZHZAIZCJBIDJKEIUNLZKABEMZABCDUNSUOABEMZULHFNNGZHZULHZUPUM
      UQUSULABEOPUOABECDQUTFURULRZHUMFURULTVAULFULURRZVAULULURUAULURUJVBULLCDUB
      ULURUCUDUEUFUKUGABECDUNUHUI $.

    $( Definition for a restriction of the ` 2nd ` (second member of an ordered
       pair) function.  (Contributed by Thierry Arnoux, 27-Sep-2017.) $)
    df2ndres $p |- ( 2nd |` ( A X. B ) ) = ( x e. A , y e. B |-> y ) $=
      ( vz c2nd cxp cres cv wcel wa wceq coprab cvv df2nd2 reseq1i resoprab cin
      cmpt2 resres incom xpss df-ss mpbi eqtr3i reseq2i 3eqtr3ri df-mpt2 eqtr4i
      wss eqtri ) FCDGZHZAICJBIZDJKEIUNLZKABEMZABCDUNSUOABEMZULHFNNGZHZULHZUPUM
      UQUSULABEOPUOABECDQUTFURULRZHUMFURULTVAULFULURRZVAULULURUAULURUJVBULLCDUB
      ULURUCUDUEUFUKUGABECDUNUHUI $.
  $}

  ${
    $d A x z $.  $d V x z $.  $d X x z $.
    $( The preimage of a singleton.  (Contributed by Thierry Arnoux,
       27-Apr-2020.) $)
    1stpreimas $p |- ( ( Rel A /\ X e. V ) ->
      ( `' ( 1st |` A ) " { X } ) = ( { X } X. ( A " { X } ) ) ) $=
      ( vz vx wcel wa c1st cima cxp cv cvv cfv cop biimpi ad2antrl opeq1d eqtrd
      wceq jca wrel cres ccnv csn c2nd 1st2ndb fvex elsn adantl simplr elimasng
      simprrr biimpa syl21anc eqeltrd fvres syl wss df-rel adantr sselda simprr
      adantrr eqtr3d sylibr wrex eqeltrrd simpr eleq1d 1st2nd ad2ant2r rspcedvd
      wex simprl df-rex sylib elima3 impbida elxp7 a1i wfn wfo fo1st fofn ax-mp
      wb ssv fnssres mp2an fniniseg 3bitr4rd eqrdv ) AUAZCBFZGZDHAUBZUCCUDZIZWQ
      AWQIZJZWODKZLLJZFZXAHMZWQFZXAUEMZWSFZGZGZXAAFZXAWPMZCSZGZXAWTFZXAWRFZWOXI
      XMWOXIGZXJXLXPXACXFNZAXPXAXDXFNZXQXCXAXRSZWOXHXCXSXAUFOPXPXDCXFXIXDCSZWOX
      EXTXCXGXEXTXDCXAHUGUHZOPUIZQRXPWNXGXGXQAFZWMWNXIUJWOXCXEXGULZYDWNXGGXGYCA
      CXFBWSUKUMUNUOZXPXKXDCXPXJXKXDSZYEXAAHUPZUQYBRTWOXMGZXCXHWOXJXCXLWOAXBXAW
      MAXBURZWNWMYIAUSOUTVAVCYHXEXGYHXTXEYHXKXDCXJYFWOXLYGPWOXJXLVBVDZYAVEZYHEK
      ZWQFYLXFNZAFZGEVMZXGYHYNEWQVFYOYHYNYCECWQYHXDCWQYJYKVGYHYLCSZGZYMXQAYQYLC
      XFYHYPVHQVIYHXAXQAYHXAXRXQWMXJXSWNXLXAAVJVKYHXDCXFYJQRWOXJXLVNVGVLYNEWQVO
      VPEXFAWQXAUEUGVQVETTVRXNXIWFWOXAWQWSVSVTXOXMWFZWOWPAWAZYRHLWAZALURYSLLHWB
      YTWCLLHWDWEAWGLAHWHWIACXAWPWJWEVTWKWL $.
  $}

  ${
    $d w A $.  $d w B $.  $d w C $.
    $( TODO shorten like in proof for ~ 1stmbfm ! $)
    $( The preimage by ` 1st ` is a 'vertical band'.  (Contributed by Thierry
       Arnoux, 13-Oct-2017.) $)
    1stpreima $p |- ( A C_ B ->
      ( `' ( 1st |` ( B X. C ) ) " A ) = ( A X. C ) ) $=
      ( vw wss c1st cxp cres ccnv cima cv cfv wcel wa cvv a1i an12 anbi2i elxp7
      wb c2nd anass pm4.71d anbi1d 3bitr4d syl6rbbr syl6bb cin cnvresima eleq2i
      ssel elin vex wfo fo1st fofn elpreima mpbiran anbi1i 3bitri 3bitr4g eqrdv
      wfn mp2b ) ABEZDFBCGZHIAJZACGZVEDKZFLZAMZVIVFMZNZVIOOGMZVKVIUALCMZNNZVIVG
      MZVIVHMVEVMVKVNVONZNZVPVEVSVKVNVJBMZVONNZNZVMVEVKVTNZVRNZVKVTVRNZNZVSWBWD
      WFTVEVKVTVRUBPVEVKWCVRVEVKVTABVJUKUCUDWBWFTVEWAWEVKVNVTVOQRPUEVLWAVKVIBCS
      RUFVKVNVOQUGVQVIFIAJZVFUHZMVIWGMZVLNVMVGWHVIVFAFUIUJVIWGVFULWIVKVLWIVIOMZ
      VKDUMOOFUNFOVCWIWJVKNTUOOOFUPOVIAFUQVDURUSUTVIACSVAVB $.

    $( The preimage by ` 2nd ` is an 'horizontal band'.  (Contributed by
       Thierry Arnoux, 13-Oct-2017.) $)
    2ndpreima $p |- ( A C_ C ->
      ( `' ( 2nd |` ( B X. C ) ) " A ) = ( B X. A ) ) $=
      ( vw wss c2nd cxp cres ccnv cima cv cfv wcel wa cvv wb anass anbi1i elxp7
      a1i c1st ssel pm4.71rd anbi2d bicomi syl6rbbr ancom 3bitr3g cin cnvresima
      3bitrd eleq2i elin vex wfo wfn fo2nd fofn elpreima mpbiran 3bitri 3bitr4g
      mp2b eqrdv ) ACEZDFBCGZHIAJZBAGZVEDKZFLZAMZVIVFMZNZVIOOGMZVIUALBMZVKNNZVI
      VGMZVIVHMVEVLVKNZVNVONZVKNZVMVPVEVTVNVOVJCMZNNZVKNZVRVEVTVSWAVKNZNZVSWANZ
      VKNZWCVEVKWDVSVEVKWAACVJUBUCUDWEWGPVEWGWEVSWAVKQUETWGWCPVEWFWBVKVNVOWAQRT
      UKVLWBVKVIBCSRUFVLVKUGVNVOVKQUHVQVIFIAJZVFUIZMVIWHMZVLNVMVGWIVIVFAFUJULVI
      WHVFUMWJVKVLWJVIOMZVKDUNOOFUOFOUPWJWKVKNPUQOOFUROVIAFUSVCUTRVAVIBASVBVD
      $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y F $.
    $d x y G $.
    curry2ima.1 $e |- G = ( F o. `' ( 1st |` ( _V X. { C } ) ) ) $.
    $( The image of a curried function with a constant second argument.
       (Contributed by Thierry Arnoux, 25-Sep-2017.) $)
    curry2ima $p |- ( ( F Fn ( A X. B ) /\ C e. B /\ D C_ A ) ->
        ( G " D ) = { y | E. x e. D y = ( x F C ) } ) $=
      ( cxp wfn wss cv wceq wrex cab cvv wf syl2anc syl wcel w3a cima cfv simp1
      co wfun cdm dffn2 sylib simp2 curry2f ffun fdm sseqtr4d dfimafn curry2val
      simp3 3adant3 eqeq1d eqcom syl6bb rexbidv abbidv eqtrd ) GCDJZKZEDUAZFCLZ
      UBZHFUCZAMZHUDZBMZNZAFOZBPZVNVLEGUFZNZAFOZBPVJHUGZFHUHZLVKVQNVJCQHRZWAVJV
      FQGRZVHWCVJVGWDVGVHVIUEVFGUIUJVGVHVIUKCDEQGHIULSZCQHUMTVJFCWBVGVHVIURVJWC
      WBCNWECQHUNTUOABFHUPSVJVPVTBVJVOVSAFVJVOVRVNNVSVJVMVRVNVGVHVMVRNVICDEVLGH
      IUQUSUTVRVNVAVBVCVDVE $.
  $}

$(
  @{
    coswap.1 @e |- ( ( x = ( 1st ` p ) /\ y = ( 2nd ` p ) )
                     -> ( ps <-> ch ) ) @.
    coswap.2 @e |- ( ( x = ( 2nd ` p ) /\ y = ( 1st ` p ) )
                     -> ( ps <-> th ) ) @.
    coswap.3 @e |- ( ( ph /\ p e. A ) -> ch ) @.
    @( A scheme that can be used for swapping ` 1st ` and ` 2nd ` arguments
       in a proof. @)
    coswap @p |- ( ( ph /\ p e. `' A ) -> th ) @=
      ? @.
  @}
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Supremum - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z R $.  $d z ph $.
    supssd.0 $e |- ( ph -> R Or A ) $.
    supssd.1 $e |- ( ph -> B C_ C ) $.
    supssd.2 $e |- ( ph -> C C_ A ) $.
    supssd.3 $e |- ( ph -> E. x e. A ( A. y e. B -. x R y
                               /\ A. y e. A ( y R x -> E. z e. B y R z ) ) ) $.
    supssd.4 $e |- ( ph -> E. x e. A ( A. y e. C -. x R y
                               /\ A. y e. A ( y R x -> E. z e. C y R z ) ) ) $.
    $( Inequality deduction for supremum of a subset.  (Contributed by Thierry
       Arnoux, 21-Mar-2017.) $)
    supssd $p |- ( ph -> -. sup ( C , A , R ) R sup ( B , A , R ) ) $=
      ( csup wcel cv wbr wn wral supcl sseld supub syld ralrimiv supnub mp2and
      ) AGEHNZEOUGDPZHQRZDFSUGFEHNHQRABCDEGHIMTAUIDFAUHFOUHGOUIAFGUHJUAABCDEGUH
      HIMUBUCUDABCDEFUGHILUEUF $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z R $.  $d z ph $.
    infssd.0 $e |- ( ph -> R Or A ) $.
    infssd.1 $e |- ( ph -> C C_ B ) $.
    infssd.3 $e |- ( ph -> E. x e. A ( A. y e. C -. y R x
                               /\ A. y e. A ( x R y -> E. z e. C z R y ) ) ) $.
    infssd.4 $e |- ( ph -> E. x e. A ( A. y e. B -. y R x
                               /\ A. y e. A ( x R y -> E. z e. B z R y ) ) ) $.
    $( Inequality deduction for infimum of a subset.  (Contributed by AV,
       4-Oct-2020.) $)
    infssd $p |- ( ph -> -. inf ( C , A , R ) R inf ( B , A , R ) ) $=
      ( cinf wcel cv wbr wn wral infcl sseld inflb syld ralrimiv infnlb mp2and
      ) AFEHMZENDOZUFHPQZDGRGEHMUFHPQABCDEFHILSAUHDGAUGGNUGFNUHAGFUGJTABCDEFUGH
      ILUAUBUCABCDEGUFHIKUDUE $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Finite Sets
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( The image by a finite set is finite.  See also ~ imafi .  (Contributed by
     Thierry Arnoux, 25-Apr-2020.) $)
  imafi2 $p |- ( A e. Fin -> ( A " B ) e. Fin ) $=
    ( cfn wcel cima cres crn df-ima wss resss ssfi mpan2 rnfi syl syl5eqel ) AC
    DZABEABFZGZCABHPQCDZRCDPQAISABJAQKLQMNO $.

  ${
    $d x A $.
    $( If a union is finite, then all its elements are finite.  See ~ unifi .
       (Contributed by Thierry Arnoux, 27-Aug-2017.) $)
    unifi3 $p |- ( U. A e. Fin -> A C_ Fin ) $=
      ( vx cuni cfn wcel cv wss elssuni ssfi ex syl5 ssrdv ) ACZDEZBADBFZAEOMGZ
      NODEZOAHNPQMOIJKL $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Countable Sets
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( TODO - remove antecedent! $)
  $( A singleton is countable.  (Contributed by Thierry Arnoux,
     16-Sep-2016.) $)
  snct $p |- ( A e. V -> { A } ~<_ _om ) $=
    ( wcel csn c1o cen wbr com cdom ensn1g c0 csdm wne peano1 ne0ii 0sdom mpbir
    omex 0sdom1dom mpbi endomtr sylancl ) ABCADZEFGEHIGZUCHIGABJKHLGZUDUEHKMKHN
    OHRPQHSTUCEHUAUB $.

  $( TODO - remove antecedent! $)
  $( An unordered pair is countable.  (Contributed by Thierry Arnoux,
     16-Sep-2016.) $)
  prct $p |- ( ( A e. V /\ B e. W ) -> { A , B } ~<_ _om ) $=
    ( wcel wa cpr csn cun com cdom df-pr wbr snct unctb syl2an syl5eqbr ) ACEZB
    DEZFABGAHZBHZIZJKABLRTJKMUAJKMUBJKMSACNBDNTUAOPQ $.

  ${
    $d x y A $.  $d y B $.
    ${
      $d x B $.
      mpt2cti.1 $e |- A. x e. A A. y e. B C e. V $.
      $( An operation is countable if both its domains are countable.
         (Contributed by Thierry Arnoux, 17-Sep-2017.) $)
      mpt2cti $p |- ( ( A ~<_ _om /\ B ~<_ _om ) ->
                                         ( x e. A , y e. B |-> C ) ~<_ _om ) $=
        ( com cdom wbr wa cmpt2 cxp wfn wcel wral eqid fnmpt2 ax-mp xpct fnct
        sylancr ) CHIJDHIJKABCDELZCDMZNZUDHIJUCHIJEFOBDPACPUEGABCDEUCFUCQRSCDTU
        DUCUAUB $.
    $}

    $( An image set of a countable set is countable.  (Contributed by Thierry
       Arnoux, 29-Dec-2016.) $)
    abrexct $p |- ( A ~<_ _om -> { y | E. x e. A y = B } ~<_ _om ) $=
      ( com cdom wbr cv wceq wrex cab cmpt crn eqid rnmpt 1stcrestlem syl5eqbrr
      ) CEFGBHDIACJBKACDLZMEFABCDRRNOACDPQ $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    mptctf.1 $e |- F/_ x A $.
    $( A countable mapping set is countable, using bound-variable hypotheses
       instead of distinct variable conditions.  (Contributed by Thierry
       Arnoux, 8-Mar-2017.) $)
    mptctf $p |- ( A ~<_ _om -> ( x e. A |-> B ) ~<_ _om ) $=
      ( com cdom wbr cmpt wfun cdm funmpt cvv wcel wss ctex crab eqid dmmpt cab
      eqsstri cv df-rab simpl ss2abi abid2f sseqtri ssdomg mpisyl domtr mpancom
      wa wfn funfn fnct sylanb sylancr ) BEFGZABCHZIZURJZEFGZUREFGZABCKUTBFGZUQ
      VAUQBLMUTBNVCBOUTCLMZABPZBABCURURQRVEAUABMZVDUKZASZBVDABUBVHVFASBVGVFAVFV
      DUCUDABDUEUFTTUTBLUGUHUTBEUIUJUSURUTULVAVBURUMUTURUNUOUP $.

    $( An image set of a countable set is countable, using bound-variable
       hypotheses instead of distinct variable conditions.  (Contributed by
       Thierry Arnoux, 8-Mar-2017.) $)
    abrexctf $p |- ( A ~<_ _om -> { y | E. x e. A y = B } ~<_ _om ) $=
      ( com cdom wbr cv wceq wrex cab cmpt crn eqid rnmpt mptctf rnct syl5eqbrr
      syl ) CFGHZBIDJACKBLACDMZNZFGABCDUBUBOPUAUBFGHUCFGHACDEQUBRTS $.
  $}

  ${
    $d A f g x $.  $d V f g $.  $d Z f g x $.
    $( Index a countable set with integers and pad with ` Z ` .  (Contributed
       by Thierry Arnoux, 1-Jun-2020.) $)
    padct $p |- ( ( A ~<_ _om /\ Z e. V /\ -. Z e. A ) ->
     E. f ( f : NN --> ( A u. { Z } ) /\ A C_ ran f /\ Fun ( `' f |` A ) ) ) $=
      ( vg com wbr cen wcel cn cun wf wss ccnv cres wa c0 wceq syl 3syl vx cdom
      csdm wo wn csn cv crn wfun w3a wex brdom2 wi c1 chash cfv cfz co wf1o cfn
      isfinite2 isfinite4 adantr bren 3adant3 nfv cdif cmpt cin f1of adantl cxp
      sylib fconstmpt eqcomi wb simplr fconst2g mpbiri disjdif a1i fun syl21anc
      fz1ssnn undif mpbi feq2i 3adantl3 ssid wfo simpr forn syl5sseqr orcd ssun
      f1ofo rnun syl6sseqr dff1o3 simprbi cnvun reseq1i resundir dff1o4 fnresdm
      eqtri wfn simpl3 cnveqi cnvxp incom disjsn biimpri syl5eqr syl5eq uneq12d
      xpdisjres un0 syl6eq funeqd mpbird nnex difexg ax-mp mptex unex feq1 rneq
      vex cvv sseq2d cnveq eqidd reseq12d 3anbi123d spcev syl3anc ex mpd mpan2
      exlimd 3expia nnenom simpl ensymd entr sylancr ssun1 fss wf1 f1ocnv f1of1
      cima f1ores f1ofun 3jca eximd a1d jaoian 3impia syl3an1b ) AFUBGAFUCGZAFH
      GZUDZDCIZDAIUEZJADUFZKZBUGZLZAUVIUHZMZUVINZAOZUIZUJZBUKZAFULUVDUVEUVFUVQU
      VBUVEUVFUVQUMUVCUVBUVEUVFUVQUVBUVEUVFUJZUNAUOUPZUQURZAEUGZUSZEUKZUVQUVBUV
      EUWCUVFUVBUVEPZUVTAHGZUWCUVBUWEUVEUVBAUTIUWEAVAAVBVMVCUVTAEVDVMVEUVRUWBUV
      QEUVREVFUVQEVFUVRUWBUVQUVRUWBPZJUVHUWAUAJUVTVGZDVHZKZLZAUWIUHZMZUWINZAOZU
      IZUVQUVBUVEUWBUWJUVFUWDUWBPZUVTUWGKZUVHUWILZUWJUWPUVTAUWALZUWGUVGUWHLZUVT
      UWGVIQRZUWRUWBUWSUWDUVTAUWAVJVKUWPUWTUWHUWGUVGVLZRZUXBUWHUAUWGDVNVOZUWPUV
      EUWTUXCVPUVBUVEUWBVQUWGDCUWHVRSVSUXAUWPUVTJVTWAUVTUWGAUVGUWAUWHWBWCUWQJUV
      HUWIUVTJMUWQJRUVSWDUVTJWEWFWGVMWHUVBUVEUWBUWLUVFUWPAUWAUHZUWHUHZKZUWKUWPA
      UXEMZAUXFMZUDAUXGMUWPUXHUXIUWPAAUXEAWIZUWPUWBUVTAUWAWJZUXEARUWDUWBWKUVTAU
      WAWPUVTAUWAWLTWMWNAUXEUXFWOSUWAUWHWQWRWHUWFUWOUWANZUIZUWBUXMUVRUWBUXKUXMU
      VTAUWAWSWTVKUWFUWNUXLUWFUWNUXLAOZUWHNZAOZKZUXLUWNUXLUXOKZAOUXQUWMUXRAUWAU
      WHXAXBUXLUXOAXCXFUWFUXQUXLQKUXLUWFUXNUXLUXPQUWBUXNUXLRZUVRUWBUXLAXGZUXSUW
      BUWAUVTXGUXTUVTAUWAXDWTAUXLXESVKUWFUVFUXPQRUVBUVEUVFUWBXHUVFUXPUVGUWGVLZA
      OZQUXOUYAAUXOUXBNUYAUWHUXBUXDXIUWGUVGXJXFXBUVFUVGAVIZQRUYBQRUVFUYCAUVGVIZ
      QAUVGXKUYDQRUVFADXLXMXNUVGUWGAXQSXOSXPUXLXRXSXOXTYAUVPUWJUWLUWOUJBUWIUWAU
      WHEYIUAUWGDJYJIUWGYJIYBJUVTYJYCYDYEYFUVIUWIRZUVJUWJUVLUWLUVOUWOJUVHUVIUWI
      YGUYEUVKUWKAUVIUWIYHYKUYEUVNUWNUYEUVMUWMAAUVIUWIYLUYEAYMYNXTYOYPYQYRUUAYS
      UUBUVCUVEPZUVQUVFUYFJAUVIUSZBUKZUVQUYFJAHGZUYHUYFJFHGFAHGUYIUUCUYFAFUVCUV
      EUUDUUEJFAUUFUUGJABVDVMUYFUYGUVPBUYFBVFUYFUYGUVPUYFUYGPZUVJUVLUVOUYJUYGJA
      UVILZUVJUYFUYGWKZJAUVIVJUYKAUVHMUVJAUVGUUHJAUVHUVIUUIYTTUYJAAUVKUXJUYJUYG
      JAUVIWJUVKARUYLJAUVIWPJAUVIWLTWMUYJAJUVMUUJZAUVMAUUMZUVNUSZUVOUYJUYGAJUVM
      USUYMUYLJAUVIUUKAJUVMUULTUYMAAMUYOUXJAJAUVMUUNYTAUYNUVNUUOTUUPYRUUQYSUURU
      USUUTUVA $.
  $}

  ${
    $d a w x y z $.  $d a w ph $.  $d w ps $.
    cnvoprabOLD.x $e |- F/ x ps $.
    cnvoprabOLD.y $e |- F/ y ps $.
    cnvoprabOLD.1 $e |- ( a = <. x , y >. -> ( ps <-> ph ) ) $.
    cnvoprabOLD.2 $e |- ( ps -> a e. ( _V X. _V ) ) $.
    $( The converse of a class abstraction of nested ordered pairs.
       (Contributed by Thierry Arnoux, 17-Aug-2017.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    cnvoprabOLD $p |- `' { <. <. x , y >. , z >. | ph } = { <. z , a >. | ps }
      $=
      ( vw copab ccnv cv cop wceq wa wex cvv wcel coprab cab nfv nfan nfex opex
      excom opeq1 eqeq2d anbi12d spcev exlimi cxp adantl c1st cfv c2nd wi eqcom
      fvex wb anbi12i eqopi sylan2br bicomd spc2ed mpanr12 mpcom exlimiv impbii
      syl exbii exrot3 3bitr2ri df-oprab df-opab 3eqtr4ri cnveqi cnvopab eqtr3i
      abbii ) BFELZMACDEUAZMBEFLWBWCKNZCNZDNZOZENZOZPZAQZERDRCRZKUBWDFNZWHOZPZB
      QZERFRZKUBWCWBWLWQKWQWPFRZERWKDRZCRZERWLWPFEUGWTWREWTWRWSWRCWPCFWOBCWOCUC
      GUDZUEWKWRDWPDFWOBDWODUCHUDZUEWPWKFWGWEWFUFWMWGPZWOWJBAXCWNWIWDWMWGWHUHUI
      IUJZUKULULWPWTFWMSSUMTZWPWTBXEWOJUNXEWMUOUPZSTWMUQUPZSTWPWTURWMUOUTWMUQUT
      XEWKWPCDXFXGSSXAXBXEWEXFPZWFXGPZQZQXCWKWPVAXJXEXFWEPZXGWFPZQXCXKXHXLXIXFW
      EUSXGWFUSVBWMWEWFSSVCVDXCWPWKXDVEVKVFVGVHVIVJVLWKECDVMVNWAACDEKVOBFEKVPVQ
      VRBFEVSVT $.
  $}

  ${
    $d a i j x y z A $.  $d a i j x y z B $.  $d a i j z C $.  $d a x y z D $.
    $d a x y I $.  $d a x y J $.  $d a x y z ph $.
    f1od2.1 $e |- F = ( x e. A , y e. B |-> C ) $.
    f1od2.2 $e |- ( ( ph /\ ( x e. A /\ y e. B ) ) -> C e. W ) $.
    f1od2.3 $e |- ( ( ph /\ z e. D ) -> ( I e. X /\ J e. Y ) ) $.
    f1od2.4 $e |- ( ph -> ( ( ( x e. A /\ y e. B ) /\ z = C ) <->
                            ( z e. D /\ ( x = I /\ y = J ) ) ) ) $.
    $( Sufficient condition for a binary function expressed in maps-to notation
       to be bijective.  (Contributed by Thierry Arnoux, 17-Aug-2017.) $)
    f1od2 $p |- ( ph -> F : ( A X. B ) -1-1-onto-> D ) $=
      ( wa wsbc va vi vj cxp wfn ccnv wf1o wcel wral ralrimivva fnmpt2 syl cmpt
      cop cv opelxpi ralrimiva eqid fnmpt c1st cfv c2nd wceq copab elxp7 anbi1i
      csb cvv anass sbcbidv sbcan fvex sbcg ax-mp sbcel1v anbi12i bitri sbceq2g
      wb sbcbii 3bitri sbceq1g csbvarg eqeq1i 3bitr3g anbi2d syl5bb xpss simprr
      adantrr eqeltrd sseldi pm4.71rd eqop pm5.32i syl6rbb bitrd opabbidv cmpt2
      ex coprab df-mpt2 eqtri cnveqi nfcsb1v nfeq2 nfan nfcv nfcsb simpl eleq1d
      nfv simpr anbi12d csbeq1a sylan9eqr eqeq2d cbvoprab12 eleq1 opelxp syl6bb
      csbcom csbco csbeq2i csbopeq1a syl5eqr sseli adantr 3eqtri df-mpt 3eqtr4g
      cnvoprab fneq1d mpbird dff1o4 sylanbrc ) AIEFUDZUEZIUFZHUEZYQHIUGAGLUHZCF
      UIBEUIYRAUUABCEFPUJBCEFGILOUKULAYTDHJKUNZUMZHUEZAUUBMNUDZUHZDHUIUUDAUUFDH
      ADUOZHUHZSJMUHKNUHSUUFQJKMNUPULZUQDHUUBUUCUUEUUCURUSULAHYSUUCAUAUOZYQUHZU
      UGBUUJUTVAZCUUJVBVAZGVGZVGZVCZSZDUAVDZUUHUUJUUBVCZSZDUAVDYSUUCAUUQUUTDUAU
      UQUUJVHVHUDZUHZUULEUHZUUMFUHZSZSZUUPSZAUUTUUKUVFUUPUUJEFVEVFAUVGUVBUUHUUL
      JVCZUUMKVCZSZSZSZUUTUVGUVBUVEUUPSZSAUVLUVBUVEUUPVIAUVMUVKUVBABUOZEUHZCUOZ
      FUHZSZUUGGVCZSZCUUMTZBUULTZUUHUVNJVCZUVPKVCZSZSZCUUMTZBUULTZUVMUVKAUWAUWG
      BUULAUVTUWFCUUMRVJVJUWBUVOUVDSZUUGUUNVCZSZBUULTUWIBUULTZUWJBUULTZSUVMUWAU
      WKBUULUWAUVRCUUMTZUVSCUUMTZSUWKUVRUVSCUUMVKUWNUWIUWOUWJUWNUVOCUUMTZUVQCUU
      MTZSUWIUVOUVQCUUMVKUWPUVOUWQUVDUUMVHUHZUWPUVOVSUUJVBVLZUVOCUUMVHVMVNCUUMF
      VOVPVQUWRUWOUWJVSUWSCUUMUUGGVHVRVNVPVQVTUWIUWJBUULVKUWLUVEUWMUUPUWLUVOBUU
      LTZUVDBUULTZSUVEUVOUVDBUULVKUWTUVCUXAUVDBUULEVOUULVHUHZUXAUVDVSUUJUTVLZUV
      DBUULVHVMVNVPVQUXBUWMUUPVSUXCBUULUUGUUNVHVRVNVPWAUWHUUHUWCUVISZSZBUULTUUH
      BUULTZUXDBUULTZSUVKUWGUXEBUULUWGUUHCUUMTZUWECUUMTZSUXEUUHUWECUUMVKUXHUUHU
      XIUXDUWRUXHUUHVSUWSUUHCUUMVHVMVNUXIUWCCUUMTZUWDCUUMTZSUXDUWCUWDCUUMVKUXJU
      WCUXKUVIUWRUXJUWCVSUWSUWCCUUMVHVMVNUXKCUUMUVPVGZKVCZUVIUWRUXKUXMVSUWSCUUM
      UVPKVHWBVNUXLUUMKUWRUXLUUMVCUWSCUUMVHWCVNWDVQVPVQVPVQVTUUHUXDBUULVKUXFUUH
      UXGUVJUXBUXFUUHVSUXCUUHBUULVHVMVNUXGUWCBUULTZUVIBUULTZSUVJUWCUVIBUULVKUXN
      UVHUXOUVIUXNBUULUVNVGZJVCZUVHUXBUXNUXQVSUXCBUULUVNJVHWBVNUXPUULJUXBUXPUUL
      VCUXCBUULVHWCVNWDVQUXBUXOUVIVSUXCUVIBUULVHVMVNVPVQVPWAWEWFWGAUUTUVBUUTSUV
      LAUUTUVBAUUTUVBAUUTSZUUEUVAUUJMNWHUXRUUJUUBUUEAUUHUUSWIAUUHUUFUUSUUIWJWKW
      LWTWMUVBUUTUVKUVBUUSUVJUUHUUJJKVHVHWNWFWOWPWQWGWRYSUVTBCDXAZUFUBUOZEUHZUC
      UOZFUHZSZUUGBUXTCUYBGVGZVGZVCZSZUBUCDXAZUFUURIUXSIBCEFGWSUXSOBCDEFGXBXCXD
      UXSUYIUVTUYHBCDUBUCUVTUBXLUVTUCXLUYDUYGBUYDBXLBUUGUYFBUXTUYEXEXFXGUYDUYGC
      UYDCXLCUUGUYFCBUXTUYECUXTXHCUYBGXEXIXFXGUVNUXTVCZUVPUYBVCZSZUVRUYDUVSUYGU
      YLUVOUYAUVQUYCUYLUVNUXTEUYJUYKXJXKUYLUVPUYBFUYJUYKXMXKXNUYLGUYFUUGUYKUYJG
      UYEUYFCUYBGXOBUXTUYEXOXPXQXNXRXDUYHUUQUBUCDUAUUJUXTUYBUNZVCZUUKUYDUUPUYGU
      YNUUKUYMYQUHUYDUUJUYMYQXSUXTUYBEFXTYAUYNUUOUYFUUGUYNUUOUBUULUCUUMUYFVGZVG
      ZUYFUYPUBUULBUXTUUNVGZVGUUOUBUULUYOUYQUYOBUXTUCUUMUYEVGZVGUYQUCBUUMUXTUYE
      YBBUXTUYRUUNCUCUUMGYCYDXCYDBUBUULUUNYCXCUBUCUUJUYFYEYFXQXNUUKUVBUUPYQUVAU
      UJEFWHYGYHYLYIDUAHUUBYJYKYMYNYQHIYOYP $.
  $}

  ${
    $d f h G $.  $d f h R $.  $d f h S $.  $d f h T $.  $d f h ph $.
    fcobij.1 $e |- ( ph -> G : S -1-1-onto-> T ) $.
    fcobij.2 $e |- ( ph -> R e. U ) $.
    fcobij.3 $e |- ( ph -> S e. V ) $.
    fcobij.4 $e |- ( ph -> T e. W ) $.
    $( Composing functions with a bijection yields a bijection between sets of
       functions.  (Contributed by Thierry Arnoux, 25-Aug-2017.) $)
    fcobij $p |- ( ph -> ( f e. ( S ^m R ) |-> ( G o. f ) ) :
                                         ( S ^m R ) -1-1-onto-> ( T ^m R ) ) $=
      ( ccom wcel wa wf adantr elmapd wceq vh cmap ccnv cmpt eqid wf1o f1of syl
      co cv biimpa fco syl2anc mpbird f1ocnv 3syl cid cres simpr coeq2d syl6eqr
      wb coass simpll f1ococnv2 simplrr fcoi2 3eqtrrd f1ococnv1 simplrl impbida
      coeq1d f1o2d ) AFUACBUBUIZDBUBUIZGFUJZNZGUCZUAUJZNZFVNVQUDZWAUEAVPVNOZPZV
      QVOOZBDVQQZWCCDGQZBCVPQZWEAWFWBACDGUFZWFJCDGUGUHRAWBWGACBVPHELKSUKZBCDGVP
      ULUMAWDWEVBWBADBVQIEMKSRUNAVSVOOZPZVTVNOZBCVTQZWKDCVRQZBDVSQZWMAWNWJAWHDC
      VRUFWNJCDGUODCVRUGUPRAWJWOADBVSIEMKSUKZBDCVRVSULUMAWLWMVBWJACBVTHELKSRUNA
      WBWJPZPZVPVTTZVSVQTZWRWSPZVQGVRNZVSNZUQDURZVSNZVSXAVQGVTNXCXAVPVTGWRWSUSU
      TGVRVSVCVAXAXBXDVSXAAWHXBXDTAWQWSVDZJCDGVEUPVLXAWOXEVSTXAAWJWOXFAWBWJWSVF
      WPUMBDVSVGUHVHWRWTPZVTVRGNZVPNZUQCURZVPNZVPXGVTVRVQNXIXGVSVQVRWRWTUSUTVRG
      VPVCVAXGXHXJVPXGAWHXHXJTAWQWTVDZJCDGVIUPVLXGWGXKVPTXGAWBWGXLAWBWJWTVJWIUM
      BCVPVGUHVHVKVM $.

    $d f h O $.  $d f h Q $.  $d g h O $.  $d g h R $.  $d g h S $.  $d f X $.
    $d f Y $.
    fcobijfs.5 $e |- ( ph -> O e. S ) $.
    fcobijfs.6 $e |- Q = ( G ` O ) $.
    fcobijfs.7 $e |- X = { g e. ( S ^m R ) | g finSupp O } $.
    fcobijfs.8 $e |- Y = { h e. ( T ^m R ) | h finSupp Q } $.
    $( Composing finitely supported functions with a bijection yields a
       bijection between sets of finitely supported functions.  See also
       ~ mapfien .  (Contributed by Thierry Arnoux, 25-Aug-2017.)  (Revised by
       Thierry Arnoux, 1-Sep-2019.) $)
    fcobijfs $p |- ( ph -> ( f e. X |-> ( G o. f ) ) : X -1-1-onto-> Y ) $=
      ( cv cid cres ccom cmpt wf1o cfsupp wbr cmap co crab breq1 cbvrabv eqtr4i
      f1oi a1i wcel cvv elex mapfien wceq wb ssrab2 eqsstri sseli wa coass f1of
      syl wf elmapi fco syl2an fcoi1 syl5eqr sylan2 mpteq2dva f1oeq1 mpbid ) AN
      OGNJGUDZUECUFZUGUGZUHZUIZNOGNJWCUGZUHZUIZAICDCENOGWDJBKNHUDZKUJUKZHDCULUM
      ZUNZIUDZKUJUKZIWMUNUBWPWLIHWMWOWKKUJUOUPUQUCUACCWDUIACURUSPACFUTCVAUTQCFV
      BVLZADLUTDVAUTRDLVBVLWQAEMUTEVAUTSEMVBVLTVCAWFWIVDWGWJVEAGNWEWHWCNUTAWCWM
      UTZWEWHVDNWMWCNWNWMUBWLHWMVFVGVHAWRVIZWEWHWDUGZWHJWCWDVJWSCEWHVMZWTWHVDAD
      EJVMZCDWCVMXAWRADEJUIXBPDEJVKVLWCDCVNCDEJWCVOVPCEWHVQVLVRVSVTNOWFWIWAVLWB
      $.
  $}

  ${
    $d x A $.  $d x F $.  $d x Z $.  $d x ph $.
    suppss3.1 $e |- G = ( x e. A |-> B ) $.
    suppss3.a $e |- ( ph -> A e. V ) $.
    suppss3.z $e |- ( ph -> Z e. W ) $.
    suppss3.2 $e |- ( ph -> F Fn A ) $.
    suppss3.3 $e |- ( ( ph /\ x e. A /\ ( F ` x ) = Z ) -> B = Z ) $.
    $( Deduce a function's support's inclusion in another function's support.
       (Contributed by Thierry Arnoux, 7-Sep-2017.)  (Revised by Thierry
       Arnoux, 1-Sep-2019.) $)
    suppss3 $p |- ( ph -> ( G supp Z ) C_ ( F supp Z ) ) $=
      ( csupp co wcel wa wceq cvv cmpt oveq1i cv cfv simpl eldifi adantl wn csn
      cdif ccnv cima wfn fnex syl2anc suppimacnv eleq2d wb elpreima bitrd baibd
      syl notbid biimpd expimpd wne fvex eldifsn mpbiran necon2bbii 3imtr4g imp
      eldif syl3anc suppss2 syl5eqss ) AFIOPBCDUAZIOPEIOPZFVQIOJUBACDBGVRIABUCZ
      CVRUJQZRAVSCQZVSEUDZISZDISAVTUEVTWAAVSCVRUFUGAVTWCAWAVSVRQZUHZRWBTIUIUJZQ
      ZUHZVTWCAWAWEWHAWARZWEWHWIWDWGAWDWAWGAWDVSEUKWFULZQZWAWGRZAVRWJVSAETQZIHQ
      VRWJSAECUMZCGQWMMKCGEUNUOLETHIUPUOUQAWNWKWLURMCVSWFEUSVBUTVAVCVDVEVSCVRVM
      WGWBIWGWBTQWBIVFVSEVGWBTIVHVIVJVKVLNVNKVOVP $.
  $}

  ${
    ffs2.1 $e |- C = ( B \ { Z } ) $.
    $( Rewrite a function's support based with its range rather than the
       universal class.  See also ~ frnsuppeq .  (Contributed by Thierry
       Arnoux, 27-Aug-2017.)  (Revised by Thierry Arnoux, 1-Sep-2019.) $)
    ffs2 $p |- ( ( A e. V /\ Z e. W /\ F : A --> B )
      -> ( F supp Z ) = ( `' F " C ) ) $=
      ( wcel wf w3a csupp co ccnv csn cdif cima wceq frnsuppeq 3impia imaeq2i
      syl6eqr ) AEIZGFIZABDJZKDGLMZDNZBGOPZQZUGCQUCUDUEUFUIRBDAEFGSTCUHUGHUAUB
      $.
  $}

  ${
    ffsrn.z $e |- ( ph -> Z e. W ) $.
    ffsrn.0 $e |- ( ph -> F e. V ) $.
    ffsrn.1 $e |- ( ph -> Fun F ) $.
    ffsrn.2 $e |- ( ph -> ( F supp Z ) e. Fin ) $.
    $( The range of a finitely supported function is finite.  (Contributed by
       Thierry Arnoux, 27-Aug-2017.) $)
    ffsrn $p |- ( ph -> ran F e. Fin ) $=
      ( crn cvv cima cres cun cfn reseq2i wss wceq wcel syl2anc ccnv csn undif1
      cdif imaundi ssv ssequn2 mpbi eqtri imaeq2i resundi 3eqtr3i wfun dfdm4 wa
      cdm dfrn4 wfn df-fn fnresdm sylbir sylancl syl5reqr rneqd rnun syl6eq wbr
      cdom csupp suppimacnv eqeltrrd cnvexg imaexg 3syl wfo cnvimass fores fofn
      co syl fnrndomg sylc domfi snfi cin funimacnv syl5eqr inss1 syl6eqss ssfi
      df-ima sylancr unfi eqeltrd ) ABJZBBUAZKEUBZUDZLZMZJZBWPWQLZMZJZNZOAWOWTX
      CNZJXEABXFAXFBWPKLZMZBBWPWRWQNZLZMBWSXBNZMXHXFXJXKBWPWRWQUEPXJXGBXIKWPXIK
      WQNZKKWQUCWQKQXLKRWQUFWQKUGUHUIUJPBWSXBUKULABUMZBUPZXGRZXHBRZHXNWPJXGBUNW
      PUQUIXMXOUOBXGURXPBXGUSXGBUTVAVBVCVDWTXCVEVFAXAOSZXDOSZXEOSAWSOSXAWSVHVGZ
      XQABEVIVSZWSOABCSZEDSXTWSRGFBCDEVJTIVKAWSKSZWTWSURZXSAYAWPKSYBGBCVLWPWRKV
      MVNAWSBWSLZWTVOZYCAXMWSXNQYEHBWRVPWSBVQVBWSYDWTVRVTWSKWTWAWBWSXAWCTAWQOSX
      DWQQXREWDAXDWQWOWEZWQAXDBXBLZYFBXBWKAXMYGYFRHWQBWFVTWGWQWOWHWIWQXDWJWLXAX
      DWMTWN $.
  $}

  ${
    $d f g x A $.  $d f g x B $.  $d f g x C $.  $d f g x V $.  $d f g x W $.
    $d f g X $.  $d f g x Z $.
    resf1o.1 $e |- X = { f e. ( B ^m A ) | ( `' f " ( B \ { Z } ) ) C_ C } $.
    resf1o.2 $e |- F = ( f e. X |-> ( f |` C ) ) $.
    $( Restriction of functions to a superset of their support creates a
       bijection.  (Contributed by Thierry Arnoux, 12-Sep-2017.) $)
    resf1o $p |- ( ( ( A e. V /\ B e. W /\ C C_ A ) /\ Z e. B )
                                 -> F : X -1-1-onto-> ( B ^m C ) ) $=
      ( wcel wa cres cvv wceq wf syl ad2antrr c0 vg vx wss w3a cmap co cdif csn
      cv cxp cun resexg adantl simpr difexg 3ad2ant1 xpexg sylancl adantr unexg
      snex syl2anc adantlr ccnv cima rabeq2i anbi1i simprr simprll elmapi simp3
      fssresd wb simp2 simp1 ssexd elmapg mpbird eqeltrd biimpi reseq2d wfn ffn
      undif fnresdm 3syl eqtr2d resundi syl6eq eqcomd csupp simprlr simplr eqid
      cin syl3anc sseqin2 3sstr4d simpl inundif fneq2i sylibr vex a1i fnsuppres
      ffs2 inindif syl121anc mpbid uneq12d eqtrd ad2antrl fconst6g disjdif fun2
      jca syl21anc feq12d biimpar cfv fveq1d fconstg ad3antlr syl112anc fvconst
      fvun2 3eqtrd suppss eqsstr3d reseq1d res0 eqtr4i reseq2i 3eqtr4ri impbida
      fresaunres1 jca31 syl5bb f1od ) AFLZBGLZCAUCZUDZIBLZMZDUAHBCUEUFZDUIZCNZU
      AUIZACUGZIUHZUJZUKZEOOKUUGHLZUUHOLUUEUUGCHULUMUUCUUIUUFLZUUMOLZUUDUUCUUOM
      UUOUULOLZUUPUUCUUOUNUUCUUQUUOUUCUUJOLZUUKOLUUQYTUUAUURUUBACFUOUPIVAUUJUUK
      OOUQURUSUUIUULUUFOUTVBVCUUNUUIUUHPZMUUGBAUEUFZLZUUGVDBUUKUGZVEZCUCZMZUUSM
      ZUUEUUOUUGUUMPZMZUUNUVEUUSUVDDHUUTJVFVGUUEUVFUVHUUEUVFMZUUOUVGUVIUUIUUHUU
      FUUEUVEUUSVHZUVIUUHUUFLZCBUUHQZUVIABCUUGUVIUVAABUUGQZUUEUVAUVDUUSVIZUUGBA
      VJZRZUUCUUBUUDUVFYTUUAUUBVKZSZVLUUCUVKUVLVMZUUDUVFUUCUUACOLUVSYTUUAUUBVNZ
      UUCCAFYTUUAUUBVOZUVQVPBCUUHGOVQVBSVRVSUVIUUGUUHUUGUUJNZUKZUUMUVIUUGUUGCUU
      JUKZNZUWCUVIUWEUUGANZUUGUVIUUBUWEUWFPUVRUUBUWDAUUGUUBUWDAPZCAWDVTZWARUVIU
      VMUUGAWBZUWFUUGPUVPABUUGWCZAUUGWEWFWGUUGCUUJWHWIUVIUUHUUIUWBUULUVIUUIUUHU
      VJWJUVIUUGIWKUFZACWOZUCZUWBUULPZUVIUVCCUWKUWLUUEUVAUVDUUSWLUVIYTUUDUVMUWK
      UVCPZUUCYTUUDUVFUWASUUCUUDUVFWMZUVPABUVBUUGFBIUVBWNXFZWPUVIUUBUWLCPZUVRUU
      BUWRCAWQVTRWRUVIUVAUUDUWMUWNVMZUVNUWPUVAUUDMZUUGUWLUUJUKZWBZUUGOLZUUDUWLU
      UJWOTPZUWSUWTUWIUXBUWTUVAUVMUWIUVAUUDWSUVOUWJWFUXAAUUGACWTXAXBUXCUWTDXCXD
      UVAUUDUNUXDUWTACXGXDUWLUUJUUGBOIXEXHVBXIXJXKXPUUEUVHMZUVAUVDUUSUXEUUAYTUV
      MUVAUUCUUAUUDUVHUVTSUUCYTUUDUVHUWASZUXEUWDBUUMQZUVMUXECBUUIQZUUJBUULQZCUU
      JWOZTPZUXGUUOUXHUUEUVGUUIBCVJXLZUXEUUDUXIUUCUUDUVHWMZUUJIBXMRZUXKUXECAXNZ
      XDCUUJBUUIUULXOXQUXEUWDABUUMUUGUXEUUGUUMUUEUUOUVGVHZWJUXEUUBUWGUUCUUBUUDU
      VHUVQSUWHRXRXIZUUAYTMUVAUVMBAUUGGFVQXSXQUXEUVCUWKCUXEYTUUDUVMUWOUXFUXMUXQ
      UWQWPUXEABUBUUGCIUXQUXEUBUIZUUJLZMZUXRUUGXTUXRUUMXTZUXRUULXTZIUXTUXRUUGUU
      MUXEUVGUXSUXPUSYAUXTUUICWBZUULUUJWBZUXKUXSUYAUYBPUXTUXHUYCUXEUXHUXSUXLUSC
      BUUIWCRUXTUUJUUKUULQZUYDUUDUYEUUCUVHUXSUUJIBYBYCZUUJUUKUULWCRUXKUXTUXOXDU
      XEUXSUNZCUUJUUIUULUXRYFYDUXTUYEUXSUYBIPUYFUYGUUJIUXRUULYEVBYGYHYIUXEUUHUU
      MCNZUUIUXEUUGUUMCUXPYJUXEUXHUXIUUIUXJNZUULUXJNZPZUYHUUIPUXLUXNUYKUXEUULTN
      ZUUITNZUYJUYIUYLTUYMUULYKUUIYKYLUXJTUULUXOYMUXJTUUIUXOYMYNXDCUUJBUUIUULYP
      WPWGYQYOYRYS $.
  $}

  ${
    $d f A $.  $d f B $.  $d f C $.
    maprnin.1 $e |- A e. _V $.
    maprnin.2 $e |- B e. _V $.
    $( Restricting the range of the mapping operator.  (Contributed by Thierry
       Arnoux, 30-Aug-2017.) $)
    maprnin $p |- ( ( B i^i C ) ^m A ) = { f e. ( B ^m A ) | ran f C_ C } $=
      ( cin cv wf cab cmap co wcel crn wss wa crab wfn wb ffn baibr syl pm5.32i
      df-f elmap anbi1i fin 3bitr4ri abbii inex1 mapval df-rab 3eqtr4i ) ABCGZD
      HZIZDJUOBAKLZMZUONCOZPZDJUNAKLUSDUQQUPUTDABUOIZUSPVAACUOIZPUTUPVAUSVBVAUO
      ARZUSVBSABUOTVBVCUSACUOUDUAUBUCURVAUSBAUOFEUEUFABCUOUGUHUIUNADBCFUJEUKUSD
      UQULUM $.
  $}

  ${
    $d w x y z A $.  $d w x y z F $.  $d x y R $.  $d w ph $.
    fpwrelmapffslem.1 $e |- A e. _V $.
    fpwrelmapffslem.2 $e |- B e. _V $.
    fpwrelmapffslem.3 $e |- ( ph -> F : A --> ~P B ) $.
    fpwrelmapffslem.4 $e |- ( ph ->
                        R = { <. x , y >. | ( x e. A /\ y e. ( F ` x ) ) } ) $.
    $( Lemma for ~ fpwrelmapffs .  For this theorem, the sets ` A ` and ` B `
       could be infinite, but the relation ` R ` itself is finite.
       (Contributed by Thierry Arnoux, 1-Sep-2017.)  (Revised by Thierry
       Arnoux, 1-Sep-2019.) $)
    fpwrelmapffslem $p |- ( ph -> ( R e. Fin
              <-> ( ran F C_ Fin /\ ( F supp (/) ) e. Fin ) ) ) $=
      ( vz cfn wcel wa c0 wceq wb wex cvv vw cdm crn csupp co wss cv copab wrel
      cfv relopab releq relfi 3syl cab wrex cuni rexcom4 ancom exbii fvex eleq2
      mpbiri ceqsexv bitr3i rexbii r19.42v 3bitr3ri df-rex bitr2i a1i vex eleq1
      anbi2d exbidv elab eluniab 3bitr4g eqrdv eleq1d adantr cpw wfn ffn fnrnfv
      wi wf 0ex fex sylancl wfun ffun syl opabdm cdif crab cmpt ccnv cima mpan2
      csn suppimacnv feqmptd cnveqd imaeq1d eqid mptpreima syl6eq wne suppvalfn
      eqtrd mp3an23 n0 rabbiia 3eqtr3d df-rab 19.42v abbii eqtr4i 3eqtrd eqtr4d
      biimpa ffsrn eqeltrrd unifi unifi3 impbid1 bitr4d opabrn 3bitr4d pm5.32da
      ex sseq1d anbi1d bitrd 3bitrd ) AFMNZFUBZMNZFUCZMNZOZGPUDUEZMNZGUCZMUFZOZ
      UUFUUDOZAFBUGZDNZCUGZUUIGUJZNZOZBCUHZQZFUIZYQUUBRKUUPUUQUUOUIUUNBCUKFUUOU
      LVCFUMUNAUUBYSUUFOUUGAYSUUAUUFAYSOZUUNBSZCUOZMNZLUGZUULQZBDUPZLUOZMUFZUUA
      UUFUURUVAUVEUQZMNZUVFAUVAUVHRYSAUUTUVGMAUAUUTUVGAUUJUAUGZUULNZOZBSZUVIUVB
      NZUVDOZLSZUVIUUTNUVIUVGNUVLUVORAUVOUVJBDUPZUVLUVMUVCOZLSZBDUPUVQBDUPZLSUV
      PUVOUVQBLDURUVRUVJBDUVRUVCUVMOZLSUVJUVTUVQLUVCUVMUSUTUVMUVJLUULUUIGVAUVBU
      ULUVIVBVDVEVFUVSUVNLUVMUVCBDVGUTVHUVJBDVIVJVKUUSUVLCUVIUAVLUUKUVIQZUUNUVK
      BUWAUUMUVJUUJUUKUVIUULVMVNVOVPUVDLUVIVQVRVSVTWAUURUVFUVHUURUVEMNZUVFUVHWF
      UURUUEUVEMAUUEUVEQZYSADEWBZGWGZGDWCZUWCJDUWDGWDZBLDGWEUNWAZUURGTTPPTNZUUR
      WHVKAGTNZYSAUWEDTNZUWJJHDUWDTGWIZWJWAAGWKZYSAUWEUWMJDUWDGWLWMWAAYSUUDAYRU
      UCMAYRUUNCSZBUOZUUCAUUPYRUWOQKUUNBCFWNWMAUUCUULTPXAWOZNBDWPZUUMCSZBDWPZUW
      OAUUCBDUULWQZWRZUWPWSZUWQAUUCGWRZUWPWSZUXBAUWEUWJUUCUXDQZJUWEUWKUWJHUWLWT
      UWJUWIUXEWHGTTPXBWTUNAUXCUXAUWPAGUWTABDUWDGJXCXDXEXKBDUULUWPUWTUWTXFXGXHZ
      AUUCUULPXIZBDWPZUWQUWSAUWEUWFUUCUXHQZJUWGUWFUWKUWIUXIHWHBGTTDPXJXLUNUXFUX
      HUWSQAUXGUWRBDUXGUWRRUUJCUULXMVKXNVKXOUWSUWOQAUWSUUJUWROZBUOUWOUWRBDXPUWN
      UXJBUUJUUMCXQXRXSVKXTYAVTZYBYCYDUWBUVFUVHUVEYEYLWMUVEYFYGYHAUUAUVARYSAYTU
      UTMAUUPYTUUTQKUUNBCFYIWMVTWAUURUUEUVEMUWHYMYJYKAYSUUDUUFUXKYNYOUUGUUHRAUU
      DUUFUSVKYP $.
  $}

  ${
    $d f r x y A $.  $d f r x y B $.
    fpwrelmap.1 $e |- A e. _V $.
    fpwrelmap.2 $e |- B e. _V $.
    fpwrelmap.3 $e |- M = ( f e. ( ~P B ^m A ) |->
       { <. x , y >. | ( x e. A /\ y e. ( f ` x ) ) } ) $.
    $( Define a canonical mapping between functions from ` A ` into subsets of
       ` B ` and the relations with domain ` A ` and range within ` B ` .  Note
       that the same relation is used in ~ axdc2lem and ~ marypha2lem1 .
       (Contributed by Thierry Arnoux, 28-Aug-2017.) $)
    fpwrelmap $p |- M : ( ~P B ^m A ) -1-1-onto-> ~P ( A X. B ) $=
      ( wtru cv wcel wa cvv a1i adantr wss wceq nfv nfan vr cpw cmap co cxp cfv
      wf1o copab wbr crab cmpt wi wal simpr elmapi ffvelrnda elelpwi syl2anc ex
      cab alrimiv abss sylbir syl opabex3d adantl mptex wb imdistanda ssopab2dv
      ssex df-xp 3sstr4d selpw sylibr feqmptd nfopab1 nfeq2 df-rab adantllr cop
      nfopab2 df-br eleq2 opabid syl6bb syl5bb ad2antlr cdm elfvdm fdm pm4.71rd
      wf eleqtrd ad2antrr bitr4d biimpar jca biimpd impbid abbid abid2 3eqtr2rd
      mpteq2da eqtrd ssrab2 elpw2 mpbir eqid fmptd feq1d mpbird pwex elmap wrel
      adantld elpwi xpss syl6ss df-rel relopab id nfmpt1 nfci nfrab1 nfmpt nfcv
      brelg sylan simpld simprd fveq1d rabex fvmpt2 mpan2 sylan9eq eleq2d rabid
      adantlr syldan mpbir2and simplbda expl syl5bbr syl6bbr eqrelrd2 f1od trud
      syl21anc impbii ) DUBZCUCUDZCDUEZUBZFUGJEUAUULUUNAKZCLZBKZUUOEKZUFZLZMZAB
      UHZACUUOUUQUAKZUIZBDUJZUKZFNNIUURUULLZUVBNLJUVGUUTABCCNLUVGGOUVGUUPMZUUTU
      UQDLZULZBUMZUUTBUTZNLZUVHUVJBUVHUUTUVIUVHUUTMUUTUUSUUKLZUVIUVHUUTUNUVHUVN
      UUTUVGCUUKUUOUURUURUUKCUOZUPPUUQUUSDUQURZUSZVAUVKUVLDQUVMUUTBDVBUVLDHVKVC
      VDVEVFUVFNLJUVCUUNLZMACUVEGVGOUVGUVCUVBRZMZUVRUURUVFRZMZVHJUVTUWBUVTUVRUW
      AUVTUVCUUMQZUVRUVTUVBUUPUVIMZABUHZUVCUUMUVGUVBUWEQUVSUVGUVAUWDABUVGUUPUUT
      UVIUVQVIVJPUVGUVSUNUUMUWERUVTABCDVLOVMUAUUMVNVOUVTUURACUUSUKZUVFUVGUURUWF
      RUVSUVGACUUKUURUVOVPPUVTACUUSUVEUVGUVSAUVGASAUVCUVBUVAABVQZVRTUVTUUPMZUVE
      UVIUVDMZBUTZUVLUUSUVEUWJRUWHUVDBDVSOUWHUUTUWIBUVTUUPBUVGUVSBUVGBSBUVCUVBU
      VAABWBZVRTUUPBSZTUWHUUTUWIUWHUUTUWIUWHUUTMUVIUVDUVGUUPUUTUVIUVSUVPVTUWHUV
      DUUTUWHUVDUVAUUTUVSUVDUVAVHUVGUUPUVDUUOUUQWAZUVCLZUVSUVAUUOUUQUVCWCZUVSUW
      NUWMUVBLZUVAUVCUVBUWMWDUVAABWEZWFWGWHUVGUUTUVAVHUVSUUPUVGUUTUUPUVGUUTUUPU
      VGUUTMUUOUURWIZCUUTUUOUWRLUVGUUQUUOUURWJVFUVGUWRCRZUUTUVGCUUKUURWMZUWSUVO
      CUUKUURWKVDPWNUSWLWOWPZWQWRUSUWHUVDUUTUVIUWHUVDUUTUXAWSXPWTXAUVLUUSRUWHBU
      USXBOXCXDXEWRUWBUVGUVSUWBUWTUVGUWBUWTCUUKUVFWMZUVRUXBUWAUVRACUVEUUKUVFUVE
      UUKLZUVRUUPMUXCUVEDQUVDBDXFUVEDHXGXHOUVFXIZXJPUWBCUUKUURUVFUVRUWAUNZXKXLU
      UKCUURDHXMGXNVOUWBUVCXOZUVBXOZUWBUVSUWBUVCNNUEZQUXFUWBUVCUUMUXHUVRUWCUWAU
      VCUUMXQZPCDXRXSUVCXTVOUXGUWBUVAABYAOUWBYBUWBABUVCUVBUVRUWAAUVRASAUURUVFAC
      UVEYCVRTUVRUWABUVRBSBUURUVFBACUVEBACUWLYDUVDBDYEYFVRTAUVCYGBUVCYGUWGUWKUW
      BUWNUVAUWPUWNUVDUWBUVAUWOUWBUVDUVAUWBUVDUVAUWBUVDMZUUPUUTUXJUUPUVIUVRUVDU
      WDUWAUVRUWCUVDUWDUXIUUOUUQCDUVCYHYIYSZYJZUXJUUTUVIUVDUXJUUPUVIUXKYKUWBUVD
      UNUWBUVDUUPUUTUWIVHUXLUWBUUPMZUUTUUQUVELUWIUXMUUSUVEUUQUWBUUPUUSUUOUVFUFZ
      UVEUWBUUOUURUVFUXEYLUUPUVENLUXNUVERUVDBDHYMACUVENUVFUXDYNYOYPYQUVDBDYRWFZ
      YTUUAWRUSUWBUUPUUTUVDUXMUUTUVIUVDUXOUUBUUCWTUUDUWQUUEUUFUUIWRUUJOUUGUUH
      $.

    fpwrelmapffs.1 $e |- S = { f e. ( ( ~P B i^i Fin ) ^m A ) |
       ( f supp (/) ) e. Fin } $.
    $( Define a canonical mapping between finite relations (finite subsets of a
       cartesian product) and functions with finite support into finite
       subsets.  (Contributed by Thierry Arnoux, 28-Aug-2017.)  (Revised by
       Thierry Arnoux, 1-Sep-2019.) $)
    fpwrelmapffs $p |- ( M |` S ) : S -1-1-onto-> ( ~P ( A X. B ) i^i Fin ) $=
      ( vr cv cfn co wcel wa crab wf1o wceq crn wss csupp cpw cmap cxp cres cin
      c0 wtru cfv copab fpwrelmap a1i wb simpl pwex elmap sylib fpwrelmapffslem
      wf simpr 3adant1 f1oresrab trud maprnin nfrab1 rabeqf ax-mp rabrab 3eqtri
      nfcv dfin5 f1oeq23 mp2an reseq2i f1oeq1 bitr2i mpbi ) FMZUANUBZVTUIUCONPZ
      QZFDUDZCUEOZRZLMZNPZLCDUFUDZRZGWFUGZSZEWINUHZGEUGZSZWLUJWCWHFLWEWIAMZCPBM
      WPVTUKPQABULZGJWEWIGSUJABCDFGHIJUMUNVTWEPZWGWQTZWHWCUOUJWRWSQZABCDWGVTHIW
      TWRCWDVTVAWRWSUPWDCVTDIUQZHURUSWRWSVBUTVCVDVEWOWFWJWNSZWLEWFTWMWJTWOXBUOE
      WBFWDNUHCUEOZRZWBFWAFWERZRZWFKXCXETXDXFTCWDNFHXAVFWBFXCXEFXCVLWAFWEVGVHVI
      WAWBFWEVJVKZLWINVMEWFWMWJWNVNVOWNWKTXBWLUOEWFGXGVPWFWJWNWKVQVIVRVS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Real and Complex Numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Complex operations - misc. additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Two complex which add up to zero are each other's negatives.  (Contributed
     by Thierry Arnoux, 2-May-2017.) $)
  addeq0 $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A + B ) = 0 <-> A = -u B ) ) $=
    ( cneg wceq cc0 cmin co cc wcel caddc df-neg eqeq1i eqcom bitr3i 0cnd simpr
    wa simpl subadd2d syl5rbbr ) ABCZDZEBFGZADZAHIZBHIZQZABJGEDUDUAADUBUAUCABKL
    UAAMNUGEBAUGOUEUFPUEUFRST $.

  ${
    subeqxfrd.a $e |- ( ph -> A e. CC ) $.
    subeqxfrd.b $e |- ( ph -> B e. CC ) $.
    subeqxfrd.c $e |- ( ph -> C e. CC ) $.
    subeqxfrd.d $e |- ( ph -> D e. CC ) $.
    subeqxfrd.1 $e |- ( ph -> ( A - B ) = ( C - D ) ) $.
    $( Transfer two terms of a subtraction in an equality.  (Contributed by
       Thierry Arnoux, 2-Feb-2020.) $)
    subeqxfrd $p |- ( ph -> ( A - C ) = ( B - D ) ) $=
      ( cmin co caddc oveq1d npncand npncan3d 3eqtr3d ) ABCKLZCDKLZMLDEKLZSMLBD
      KLCEKLARTSMJNABCDFGHOADECHIGPQ $.
  $}

  ${
    znsqcld.1 $e |- ( ph -> N e. ZZ ) $.
    znsqcld.2 $e |- ( ph -> N =/= 0 ) $.
    $( Squaring of nonzero relative numbers.  (Contributed by Thierry Arnoux,
       2-Feb-2020.) $)
    znsqcld $p |- ( ph -> ( N ^ 2 ) e. NN ) $=
      ( c2 cexp co cc0 wceq wn cn wcel zcnd cz 2z a1i expne0d neneqd cn0 wo syl
      zsqcl2 elnn0 sylib orcomd ord mpd ) ABEFGZHIZJUHKLZAUHHABEABCMDENLAOPQRAU
      IUJAUJUIAUHSLZUJUITABNLUKCBUBUAUHUCUDUEUFUG $.
  $}

  $( TODO - challenge to shorten this proof! $)
  $( Integer square one.  (Contributed by Thierry Arnoux, 2-Feb-2020.) $)
  nn0sqeq1 $p |- ( ( N e. NN0 /\ ( N ^ 2 ) = 1 ) -> N = 1 ) $=
    ( cn0 wcel c2 cexp co c1 wceq wne clt wbr wo nn0re 1red lttri2d wa nn0lt10b
    cc0 biimpa a1i sq0id 0ne1 eqnetrd 0le1 nn0ge0 lt2sqd syl5eqbrr gtned jaodan
    sq1 cle ex sylbid necon4d imp ) ABCZADEFZGHAGHUPAGUQGUPAGIAGJKZGAJKZLZUQGIZ
    UPAGAMZUPNZOUPUTVAUPURVAUSUPURPZUQRGVDAUPURARHAQSUARGIVDUBTUCUPUSPZGUQVENVE
    GGDEFZUQJUJUPUSVFUQJKUPGAVCVBRGUKKUPUDTAUEUFSUGUHUIULUMUNUO $.

  $( An integer unit times itself.  (Contributed by Thierry Arnoux,
     23-Aug-2020.) $)
  1neg1t1neg1 $p |- ( N e. { -u 1 , 1 } -> ( N x. N ) = 1 ) $=
    ( c1 cneg cpr wcel wceq wo cmul co elpri oveq12d neg1mulneg1e1 syl6eq 1t1e1
    id jaoi syl ) ABCZBDEARFZABFZGAAHIZBFZARBJSUBTSUARRHIBSARARHSOZUCKLMTUABBHI
    BTABABHTOZUDKNMPQ $.

  $( Multiplying by an integer ` M ` yields greater or equal nonnegative
     integers.  (Contributed by Thierry Arnoux, 13-Dec-2021.) $)
  nnmulge $p |- ( ( M e. NN /\ N e. NN0 ) -> N <_ ( M x. N ) ) $=
    ( cn wcel cn0 wa c1 cmul co simpr nn0cnd mulid2d 1red cr nnre adantr nn0red
    cle nn0ge0d wbr nnge1 lemul1ad eqbrtrrd ) ACDZBEDZFZGBHIBABHIRUFBUFBUDUEJZK
    LUFGABUFMUDANDUEAOPUFBUGQUFBUGSUDGARTUEAUAPUBUC $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Ordering on reals - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d b c A $.  $d b c B $.  $d b c C $.
    lt2addrd.1 $e |- ( ph -> A e. RR ) $.
    lt2addrd.2 $e |- ( ph -> B e. RR ) $.
    lt2addrd.3 $e |- ( ph -> C e. RR ) $.
    lt2addrd.4 $e |- ( ph -> A < ( B + C ) ) $.
    $( If the right-hand side of a 'less than' relationship is an addition,
       then we can express the left-hand side as an addition, too, where each
       term is respectively less than each term of the original right side.
       (Contributed by Thierry Arnoux, 15-Mar-2017.) $)
    lt2addrd $p |- ( ph -> E. b e. RR E. c e. RR
      ( A = ( b + c ) /\ b < B /\ c < C ) ) $=
      ( caddc co cmin cr wcel wceq clt wbr w3a resubcld cdiv readdcld rehalfcld
      c2 cv wrex recnd addcld subcld halfcld subsub4d oveq2d subadd23d 2halvesd
      cc eqeltrd addsubassd 3eqtr4d nncand 3eqtrrd crp wb difrp mpbid rphalfcld
      syl2anc ltsubrpd oveq1 eqeq2d breq1 3anbi12d 3anbi13d rspc2ev syl113anc
      oveq2 ) ACCDKLZBMLZUDUALZMLZNODVRMLZNOBVSVTKLZPZVSCQRZVTDQRZBEUEZFUEZKLZP
      ZWECQRZWFDQRZSZFNUFENUFACVRHAVQAVPBACDHIUBZGTUCZTADVRIWMTAWAVPVRVRKLZMLZV
      PVQMLBACVTVRMLZKLCDWNMLZKLWAWOAWPWQCKADVRVRADIUGZAVQAVPBACDACHUGZWRUHZABG
      UGZUIZUJZXCUKULACVRVTWSXCADVRWRXCUIUMACDWNWSWRAWNVQUOAVQXBUNZXBUPUQURAWNV
      QVPMXDULAVPBWTXAUSUTACVRHAVQABVPQRZVQVAOZJABNOVPNOXEXFVBGWLBVPVCVFVDVEZVG
      ADVRIXGVGWKWBWCWDSBVSWFKLZPZWCWJSEFVSVTNNWEVSPZWHXIWIWCWJXJWGXHBWEVSWFKVH
      VIWEVSCQVJVKWFVTPZXIWBWJWDWCXKXHWABWFVTVSKVOVIWFVTDQVJVLVMVN $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Extended reals - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Trichotomy law for extended reals.  (Contributed by Thierry Arnoux,
     12-Sep-2017.) $)
  xrlelttric $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A <_ B \/ B < A ) ) $=
    ( cxr wcel wa cle wbr clt wo wn pm2.1 xrlenlt orbi1d mpbiri ) ACDBCDEZABFGZ
    BAHGZIQJZQIQKOPRQABLMN $.

  $( Two extended reals which add up to zero are each other's negatives.
     (Contributed by Thierry Arnoux, 13-Jun-2017.) $)
  xaddeq0 $p |-
    ( ( A e. RR* /\ B e. RR* ) -> ( ( A +e B ) = 0 <-> A = -e B ) ) $=
    ( cxr wcel wa cxad cc0 wceq cxne cpnf cmnf syl simplr syl2anc oveq1d eqtr3d
    co simpr ex wne cr w3o wi elxr simpll rexrd xnegneg xnegcld xaddid2 xaddcom
    xpncan ancoms adantr 3eqtr3d xnegeq wn renepnf mp1i eqnetrd neneqd xaddpnf2
    0re stoic1a nne sylib xnegmnf syl6req eqtrd renemnf xaddmnf2 xnegpnf sylanb
    3jaoian xnegcl ad2antlr xnegid 3eqtrd impbid ) ACDZBCDZEZABFQZGHZABIZHZVSAU
    ADZAJHZAKHZUBVTWCWEUCZAUDWFVTWIWGWHWFVTEZWCWEWJWCEZAIZIZAWDWKVSWMAHWKAWFVTW
    CUEUFZAUGLWKWLBHWMWDHWKGWLFQZWLBWKWLCDWOWLHWKAWNUHWLUILWKWBWLFQBAFQZWLFQZWO
    BWKWBWPWLFWKVSVTWBWPHWNWFVTWCMABUJNOWKWBGWLFWJWCROWJWQBHZWCVTWFWRBAUKULUMUN
    PWLBUOLPSWGVTEZWCWEWSWCEZAJWDWGVTWCUEZWTWDKIZJWTBKHZWDXBHWTBKTZUPZXCWTVTJBF
    QZJHZUPXEWGVTWCMWTXFJWTXFGJWTWBXFGWTAJBFXAOWSWCRPGUADZGJTWTVBGUQURUSUTVTXDX
    GBVAVCNBKVDVEBKUOLVFVGVHSWHVTEZWCWEXIWCEZAKWDWHVTWCUEZXJWDJIZKXJBJHZWDXLHXJ
    BJTZUPZXMXJVTKBFQZKHZUPXOWHVTWCMXJXPKXJXPGKXJWBXPGXJAKBFXKOXIWCRPXHGKTXJVBG
    VIURUSUTVTXNXQBVJVCNBJVDVEBJUOLVKVGVHSVMVLWAWEWCWAWEEZWBWDBFQZBWDFQZGXRAWDB
    FWAWEROXRWDCDZVTXSXTHVTYAVSWEBVNVOVSVTWEMWDBUJNVTXTGHVSWEBVPVOVQSVR $.

  $( The extended real numbers are unbounded below.  (Contributed by Thierry
     Arnoux, 18-Feb-2018.)  (Revised by AV, 28-Sep-2020.) $)
  xrinfm $p |- inf ( RR* , RR* , < ) = -oo $=
    ( cxr wss cmnf wcel clt cinf wceq ssid mnfxr infxrmnf mp2an ) AABCADAAEFCGA
    HIAJK $.

  ${
    le2halvesd.1 $e |- ( ph -> A e. RR ) $.
    le2halvesd.2 $e |- ( ph -> B e. RR ) $.
    le2halvesd.3 $e |- ( ph -> C e. RR ) $.
    le2halvesd.4 $e |- ( ph -> A <_ ( C / 2 ) ) $.
    le2halvesd.5 $e |- ( ph -> B <_ ( C / 2 ) ) $.
    $( A sum is less than the whole if each term is less than half.
       (Contributed by Thierry Arnoux, 29-Nov-2017.) $)
    le2halvesd $p |- ( ph -> ( A + B ) <_ C ) $=
      ( caddc co c2 cdiv cle rehalfcld le2addd recnd 2halvesd breqtrd ) ABCJKDL
      MKZTJKDNABCTTEFADGOZUAHIPADADGQRS $.
  $}

  $( A number is less than or equal to itself plus a nonnegative number.
     (Contributed by Thierry Arnoux, 28-Dec-2016.) $)
  xraddge02 $p |- ( ( A e. RR* /\ B e. RR* ) ->
    ( 0 <_ B -> A <_ ( A +e B ) ) ) $=
    ( cxr wcel wa cc0 cle wbr cxad co xrleid adantr simpl jctir xle2add mpancom
    wi 0xr mpand wb xaddid1 breq1d sylibd ) ACDZBCDZEZFBGHZAFIJZABIJZGHZAUIGHZU
    FAAGHZUGUJUDULUEAKLUDFCDZEUFULUGEUJQUFUDUMUDUEMRNAFABOPSUDUJUKTUEUDUHAUIGAU
    AUBLUC $.

  $( A number is less than or equal to itself plus a nonnegative number.
     (Contributed by Thierry Arnoux, 19-Jul-2020.) $)
  xrge0addge $p |- ( ( A e. RR* /\ B e. ( 0 [,] +oo ) ) -> A <_ ( A +e B ) ) $=
    ( cc0 cpnf cicc co wcel cxr cle wbr wa cxad elxrge0 biimpi xraddge02 sylan2
    impr ) BCDEFGZAHGZBHGZCBIJZKZAABLFIJZRUBBMNSTUAUCABOQP $.

  ${
    $d b c A $.  $d b c B $.  $d b c C $.
    xlt2addrd.1 $e |- ( ph -> A e. RR ) $.
    xlt2addrd.2 $e |- ( ph -> B e. RR* ) $.
    xlt2addrd.3 $e |- ( ph -> C e. RR* ) $.
    xlt2addrd.4 $e |- ( ph -> B =/= -oo ) $.
    xlt2addrd.5 $e |- ( ph -> C =/= -oo ) $.
    xlt2addrd.6 $e |- ( ph -> A < ( B +e C ) ) $.
    $( If the right-hand side of a 'less than' relationship is an addition,
       then we can express the left-hand side as an addition, too, where each
       term is respectively less than each term of the original right side.
       (Contributed by Thierry Arnoux, 15-Mar-2017.) $)
    xlt2addrd $p |- ( ph -> E. b e. RR* E. c e. RR*
      ( A = ( b +e c ) /\ b < B /\ c < C ) ) $=
      ( cxad co wceq clt cxr wcel ad2antrr cr cv wbr w3a wrex cpnf wa cc0 rexrd
      0xr a1i xaddid1 eqcomd ltpnf simplr breqtrrd 0ltpnf simpr syl5breqr oveq1
      syl eqeq2d breq1 3anbi12d oveq2 3anbi13d rspc2ev syl113anc wne cxne rexri
      c1 1re xnegcld xaddcld cmnf renemnfd cneg cmin wo xrnepnf biimpi sylancom
      orcomd neneqd pm2.53 sylc rexsub sylancl resubcl eqeltrd renegcld xaddass
      wn rexneg syl222anc xaddcom syl2anc xnegid eqtrd 3eqtrrd resubcld 3brtr4d
      oveq2d eqbrtrd pm2.61dane rexadd breqtrd lt2addrd 3anbi1d 2rexbiia sylibr
      ltm1d caddc wss wi ressxr ssrexv ax-mp reximi 3syl ) ABEUAZFUAZMNZOZYACPU
      BZYBDPUBZUCZFQUDZEQUDZCUEACUEOZUFZYIDUEYKDUEOZUFZBQRZUGQRZBBUGMNZOZBCPUBZ
      UGDPUBZYIAYNYJYLABGUHZSZYOYMUIUJYMYNYQUUAYNYPBBUKZULUTYMBUECPYMBTRZBUEPUB
      AUUCYJYLGSBUMUTAYJYLUNUOYMUGUEDPUPYKYLUQURYGYQYRYSUCBBYBMNZOZYRYFUCEFBUGQ
      QYABOZYDUUEYEYRYFUUFYCUUDBYABYBMUSVAYABCPVBVCYBUGOZUUEYQYFYSYRUUGUUDYPBYB
      UGBMVDVAYBUGDPVBVEVFVGYKDUEVHZUFZBDVKVIZMNZVIZMNZQRUUKQRZBUUMUUKMNZOZUUMC
      PUBZUUKDPUBZYIUUIBUULAYNYJUUHYTSZUUIUUKUUIDUUJADQRZYJUUHISZUUIVKVKQRZUUIV
      KVLVJZUJVMVNZVMZVNUVDUUIUUOBUULUUKMNZMNZYPBUUIYNBVOVHZUULQRZUULVOVHUUNUUK
      VOVHUUOUVGOUUSUUIBAUUCYJUUHGSZVPUVEUUIUULUUIUULUUKVQZTUUIUUKTRZUULUVKOUUI
      UUKDVKVRNZTUUIDTRZVKTRZUUKUVMOUUIDVOOZUVNVSZUVPWMZUVNUUIUVNUVPYKUUHUUTUVN
      UVPVSZUVAUUTUUHUFUVSDVTWAZWBWCUUIDVOADVOVHZYJUUHKSWDUVPUVNWEZWFZVLDVKWGWH
      ZUUIUVNUVOUVMTRUWCVLDVKWIWHZWJZUUKWNUTUUIUUKUWFWKWJVPUVDUUIUUKUWFVPBUULUU
      KWLWOUUIUVFUGBMUUIUVFUUKUULMNZUGUUIUVIUUNUVFUWGOUVEUVDUULUUKWPWQUUIUUNUWG
      UGOUVDUUKWRUTWSXCUUIYNYPBOZUUSUUBUTWTUUIBUVMVRNZUEUUMCPUUIUWITRUWIUEPUBUU
      IBUVMUVJUWEXAUWIUMUTUUIUUMBUUKVRNZUWIUUIUUCUVLUUMUWJOUVJUWFBUUKWGWQUUIUUK
      UVMBVRUWDXCWSAYJUUHUNXBUUIUUKUVMDPUWDUUIDUWCXLXDYGUUPUUQUURUCBUUMYBMNZOZU
      UQYFUCEFUUMUUKQQYAUUMOZYDUWLYEUUQYFUWMYCUWKBYAUUMYBMUSVAYAUUMCPVBVCYBUUKO
      ZUWLUUPYFUURUUQUWNUWKUUOBYBUUKUUMMVDVAYBUUKDPVBVEVFVGXEACUEVHZUFZYIDUEUWP
      YLUFZCUUJMNZQRZBUWRVIZMNZQRZBUWRUXAMNZOZUWRCPUBZUXADPUBZYIUWQCUUJACQRZUWO
      YLHSZUWQVKUVBUWQUVCUJVMVNZUWQBUWTAYNUWOYLYTSZUWQUWRUXIVMZVNZUWQUXCUXAUWRM
      NZBUWTUWRMNZMNZBUWQUWSUXBUXCUXMOUXIUXLUWRUXAWPWQUWQYNUVHUWTQRZUWTVOVHUWSU
      WRVOVHUXMUXOOUXJUWQBAUUCUWOYLGSZVPUXKUWQUWTUWQUWTUWRVQZTUWQUWRTRZUWTUXROU
      WQUWRCVKVRNZTUWQCTRZUVOUWRUXTOUWQCVOOZUYAVSZUYBWMZUYAUWQUYAUYBUWQUXGUWOUY
      AUYBVSZUXHAUWOYLUNUXGUWOUFUYECVTWAZWQWCUWQCVOACVOVHZUWOYLJSWDUYBUYAWEZWFZ
      VLCVKWGWHZUWQUYAUVOUXTTRUYIVLCVKWIWHZWJZUWRWNUTUWQUWRUYLWKWJVPUXIUWQUWRUY
      LVPBUWTUWRWLWOUWQUXOYPBUWQUXNUGBMUWQUXNUWRUWTMNZUGUWQUXPUWSUXNUYMOUXKUXIU
      WTUWRWPWQUWQUWSUYMUGOUXIUWRWRUTWSXCUWQYNUWHUXJUUBUTWSWTUWQUWRUXTCPUYJUWQC
      UYIXLXDUWQBUXTVRNZUEUXADPUWQUYNTRUYNUEPUBUWQBUXTUXQUYKXAUYNUMUTUWQUXABUWR
      VRNZUYNUWQUUCUXSUXAUYOOUXQUYLBUWRWGWQUWQUWRUXTBVRUYJXCWSUWPYLUQXBYGUXDUXE
      UXFUCBUWRYBMNZOZUXEYFUCEFUWRUXAQQYAUWROZYDUYQYEUXEYFUYRYCUYPBYAUWRYBMUSVA
      YAUWRCPVBVCYBUXAOZUYQUXDYFUXFUXEUYSUYPUXCBYBUXAUWRMVDVAYBUXADPVBVEVFVGUWP
      UUHUFZYGFTUDZETUDZYHETUDZYIUYTBYAYBXMNZOZYEYFUCZFTUDETUDVUBUYTBCDEFAUUCUW
      OUUHGSUYTUYCUYDUYAUYTUYAUYBUYTUXGUWOUYEAUXGUWOUUHHSAUWOUUHUNUYFWQWCUYTCVO
      AUYGUWOUUHJSWDUYHWFZUYTUVQUVRUVNUYTUVNUVPUWPUUHUUTUVSAUUTUWOUUHISUVTWBWCU
      YTDVOAUWAUWOUUHKSWDUWBWFZUYTBCDMNZCDXMNZPABVUIPUBUWOUUHLSUYTUYAUVNVUIVUJO
      VUGVUHCDXFWQXGXHYGVUFEFTTYATRYBTRUFZYDVUEYEYFVUKYCVUDBYAYBXFVAXIXJXKVUAYH
      ETTQXNZVUAYHXOXPYGFTQXQXRXSVULVUCYIXOXPYHETQXQXRXTXEXE $.
  $}

  ${
    $d x y z B $.  $d x y z C $.  $d z ph $.
    xrsupssd.1 $e |- ( ph -> B C_ C ) $.
    xrsupssd.2 $e |- ( ph -> C C_ RR* ) $.
    $( Inequality deduction for supremum of an extended real subset.
       (Contributed by Thierry Arnoux, 21-Mar-2017.) $)
    xrsupssd $p |- ( ph -> sup ( B , RR* , < ) <_ sup ( C , RR* , < ) ) $=
      ( vx vy vz cxr clt csup wbr wn wss cv wral wrex wi wa xrsupss cle wor a1i
      xrltso sstrd syl supssd wcel wb supcl xrlenlt syl2anc mpbird ) ABIJKZCIJK
      ZUALZUOUNJLMZAFGHIBCJIJUBAUDUCZDEABINFOZGOZJLMZGBPUTUSJLZUTHOJLZHBQRGIPSF
      IQABCIDEUEFGHBTUFZACINVAGCPVBVCHCQRGIPSFIQEFGHCTUFZUGAUNIUHUOIUHUPUQUIAFG
      HIBJURVDUJAFGHICJURVEUJUNUOUKULUM $.
  $}

  ${
    $d w x y z A $.
    $( Any subset of nonnegative extended reals has an infimum.  (Contributed
       by Thierry Arnoux, 16-Sep-2019.)  (Revised by AV, 4-Oct-2020.) $)
    xrge0infss $p |- ( A C_ ( 0 [,] +oo ) -> E. x e. ( 0 [,] +oo )
      ( A. y e. A -. y < x /\
        A. y e. ( 0 [,] +oo ) ( x < y -> E. z e. A z < y ) ) ) $=
      ( vw cc0 cpnf wss cv clt wbr wn wral wrex wi cxr wa wcel 0xr ralbidv cicc
      co cle ssel2 pnfxr iccgelb mp3an12 wb iccssxr sseli xrlenlt sylancr mpbid
      syl ralrimiva ad3antrrr ssralv ax-mp simplll a1i simplr simpllr xrlelttrd
      sseldi simpr ex imim1d ralimdva syl5 adantll adantrl an32s 0e0iccpnf wceq
      imp breq2 notbid breq1 imbi1d anbi12d rspcev mpan syl2anc sylanbrc anim2d
      elxrge0 adantr weq wo xrletri mpjaodan sstr mpan2 xrinfmss r19.29a ) DFGU
      AUBZHZBIZEIZJKZLZBDMZWSWRJKZCIWRJKCDNZOZBPMZQZWRAIZJKZLZBDMZXHWRJKZXDOZBW
      PMZQZAWPNZEPWQWSPRZQZXGQZWSFUCKZXPFWSUCKZXSXTQWRFJKZLZBDMZFWRJKZXDOZBWPMZ
      XPWQYDXQXGXTWQYCBDWQWRDRQWRWPRZYCDWPWRUDYHFWRUCKZYCFPRZGPRYHYISUEFGWRUFUG
      YHYJWRPRYIYCUHSWPPWRFGUIZUJFWRUKULUMUNUOUPXRXTXGYGXRXTQZXFYGXBYLXFYGXQXTX
      FYGOWQXFXEBWPMZXQXTQZYGWPPHZXFYMOZYKXEBWPPUQURZYNXEYFBWPYNYHQZYEXCXDYRYEX
      CYRYEQZWSFWRXQXTYHYEUSYJYSSUTYSWPPWRYKYNYHYEVAVDXQXTYHYEVBYRYEVEVCVFVGVHV
      IVJVOVKVLFWPRYDYGQZXPVMXOYTAFWPXHFVNZXKYDXNYGUUAXJYCBDUUAXIYBXHFWRJVPVQTU
      UAXMYFBWPUUAXLYEXDXHFWRJVRVSTVTWAWBWCXSYAQZWSWPRZXBYMQZXPUUBXQYAUUCWQXQXG
      YAVBXSYAVEWSWFWDXSUUDYAXRXGUUDWQXGUUDOXQWQXFYMXBYPWQYQUTWEWGVOWGXOUUDAWSW
      PAEWHZXKXBXNYMUUEXJXABDUUEXIWTXHWSWRJVPVQTUUEXMXEBWPUUEXLXCXDXHWSWRJVRVST
      VTWAWCXSXQYJXTYAWIWQXQXGVAYJXSSUTWSFWJWCWKWQDPHZXGEPNWQYOUUFYKDWPPWLWMEBC
      DWNUNWO $.
  $}

  ${
    $d x y z B $.  $d x y z C $.  $d z ph $.
    xrge0infssd.1 $e |- ( ph -> C C_ B ) $.
    xrge0infssd.2 $e |- ( ph -> B C_ ( 0 [,] +oo ) ) $.
    $( Inequality deduction for infimum of a nonnegative extended real subset.
       (Contributed by Thierry Arnoux, 16-Sep-2019.)  (Revised by AV,
       4-Oct-2020.) $)
    xrge0infssd $p |- ( ph -> inf ( B , ( 0 [,] +oo ) , < )
                              <_ inf ( C , ( 0 [,] +oo ) , < ) ) $=
      ( vx vy vz cc0 cpnf clt cinf cxr wor wss cv wbr wral wrex wi cicc iccssxr
      co xrltso mp2 a1i wn wa xrge0infss syl infcl sseldi sstrd infssd xrnltled
      soss ) ABIJUAUCZKLZCUQKLZAUQMURIJUBZAFGHUQBKUQKNZAUQMOMKNVAUTUDUQMKUPUEUF
      ZABUQOGPZFPZKQUGZGBRVDVCKQZHPVCKQZHBSTGUQRUHFUQSEFGHBUIUJZUKULAUQMUSUTAFG
      HUQCKVBACUQOVEGCRVFVGHCSTGUQRUHFUQSACBUQDEUMFGHCUIUJZUKULAFGHUQBCKVBDVIVH
      UNUO $.
  $}

  ${
    xrge0addcld.a $e |- ( ph -> A e. ( 0 [,] +oo ) ) $.
    xrge0addcld.b $e |- ( ph -> B e. ( 0 [,] +oo ) ) $.
    $( Nonnegative extended reals are closed under addition.  (Contributed by
       Thierry Arnoux, 16-Sep-2019.) $)
    xrge0addcld $p |- ( ph -> ( A +e B ) e. ( 0 [,] +oo ) ) $=
      ( cxad co cxr wcel cc0 cle wbr cpnf cicc wa elxrge0 simpld xaddcld simprd
      sylib xaddge0 syl22anc sylanbrc ) ABCFGZHIJUDKLZUDJMNGZIABCABHIZJBKLZABUF
      IUGUHODBPTZQZACHIZJCKLZACUFIUKULOECPTZQZRAUGUKUHULUEUJUNAUGUHUISAUKULUMSB
      CUAUBUDPUC $.
  $}

  ${
    xrge0subcld.a $e |- ( ph -> A e. ( 0 [,] +oo ) ) $.
    xrge0subcld.b $e |- ( ph -> B e. ( 0 [,] +oo ) ) $.
    xrge0subcld.c $e |- ( ph -> B <_ A ) $.
    $( Condition for closure of nonnegative extended reals under subtraction.
       (Contributed by Thierry Arnoux, 27-May-2020.) $)
    xrge0subcld $p |- ( ph -> ( A +e -e B ) e. ( 0 [,] +oo ) ) $=
      ( cxne cxad co cxr wcel cc0 cle wbr wa cpnf cicc iccssxr sseldi xnegcld
      xaddcld wb xsubge0 syl2anc mpbird jca elxrge0 sylibr ) ABCGZHIZJKZLUJMNZO
      UJLPQIZKAUKULABUIAUMJBLPRZDSZACAUMJCUNESZTUAAULCBMNZFABJKCJKULUQUBUOUPBCU
      CUDUEUFUJUGUH $.
  $}

$(
  @{
    supxrge0ub.a @e |- ( ph -> A C_ ( 0 [,] +oo ) ) @.
    supxrge0ub.b @e |- ( ph -> B e. A ) @.
    @( A member of a set of nonnegative extended reals is less than or equal to
       the set's supremum.  (Contributed by Thierry Arnoux, 29-Jul-2020.) @)
    supxrge0ub @p |- ( ph -> B <_ sup ( A , ( 0 [,] +oo ) , < ) ) @=
      ? @.
  @}

  @{
    supxrge0lub.a @e |- ( ph -> A C_ ( 0 [,] +oo ) ) @.
    supxrge0lub.b @e |- ( ph -> B e. ( 0 [,] +oo ) ) @.
    @( The supremum of a set of nonnegative extended reals is less than or
       equal to an upper bound.  (Contributed by Thierry Arnoux,
       29-Jul-2020.) @)
    supxrge0lub @p |- ( ph ->
                 ( B < sup ( A , ( 0 [,] +oo ) , < ) <-> E. x e. A B < x ) ) @=
      ? @.

    @( The supremum of a set of nonnegative extended reals is less than or
       equal to an upper bound.  (Contributed by Thierry Arnoux,
       29-Jul-2020.) @)
    supxrge0leub @p |- ( ph ->
               ( sup ( A , ( 0 [,] +oo ) , < ) <_ B <-> A. x e. A x <_ B ) ) @=
      ? @.
  @}
$)

  ${
    $d A x y z $.
    infxrge0lb.a $e |- ( ph -> A C_ ( 0 [,] +oo ) ) $.
    infxrge0lb.b $e |- ( ph -> B e. A ) $.
    $( A member of a set of nonnegative extended reals is greater than or equal
       to the set's infimum.  (Contributed by Thierry Arnoux, 19-Jul-2020.)
       (Revised by AV, 4-Oct-2020.) $)
    infxrge0lb $p |- ( ph -> inf ( A , ( 0 [,] +oo ) , < ) <_ B ) $=
      ( vx vy vz cc0 cpnf clt cxr wor wss cv wbr wn wral wrex sseldi co iccssxr
      cicc cinf xrltso soss mp2 a1i wi wa xrge0infss syl infcl sseldd inflb mpd
      wcel xrnltled ) ABIJUCUAZKUDZCAUSLUTIJUBZAFGHUSBKUSKMZAUSLNLKMVBVAUEUSLKU
      FUGUHZABUSNGOZFOZKPQGBRVEVDKPHOVDKPHBSUIGUSRUJFUSSDFGHBUKULZUMTAUSLCVAABU
      SCDEUNTACBUQCUTKPQEAFGHUSBCKVCVFUOUPUR $.
  $}

  ${
    $d A x y z $.  $d B x z $.  $d ph z $.
    infxrge0glb.a $e |- ( ph -> A C_ ( 0 [,] +oo ) ) $.
    infxrge0glb.b $e |- ( ph -> B e. ( 0 [,] +oo ) ) $.
    $( The infimum of a set of nonnegative extended reals is the greatest lower
       bound.  (Contributed by Thierry Arnoux, 19-Jul-2020.)  (Revised by AV,
       4-Oct-2020.) $)
    infxrge0glb $p |- ( ph ->
                 ( inf ( A , ( 0 [,] +oo ) , < ) < B <-> E. x e. A x < B ) ) $=
      ( vz vy cc0 cpnf cicc co clt wbr cv wrex wor cxr wss wral cinf wb iccssxr
      wcel xrltso soss mp2 a1i wn wi xrge0infss syl infglbb mpdan breq1 cbvrexv
      wa syl6bbr ) ACIJKLZMUADMNZGOZDMNZGCPZBOZDMNZBCPADUSUDUTVCUBFABHGUSCDMUSM
      QZAUSRSRMQVFIJUCUEUSRMUFUGUHACUSSHOZVDMNUIHCTVDVGMNVAVGMNGCPUJHUSTUQBUSPE
      BHGCUKULEUMUNVEVBBGCVDVADMUOUPUR $.

    $d ph x $.
    $( The infimum of a set of nonnegative extended reals is greater than or
       equal to a lower bound.  (Contributed by Thierry Arnoux, 19-Jul-2020.)
       (Revised by AV, 4-Oct-2020.) $)
    infxrge0gelb $p |- ( ph ->
               ( B <_ inf ( A , ( 0 [,] +oo ) , < ) <-> A. x e. A B <_ x ) ) $=
      ( vy vz cc0 cpnf clt wbr wn cv wrex cle wral cxr sseldi wor cicc cinf wss
      co infxrge0glb notbid iccssxr xrltso soss mp2 a1i wi xrge0infss syl infcl
      wa xrlenltd wcel adantr syl6ss sselda ralbidva ralnex syl6bb 3bitr4d ) AC
      IJUAUDZKUBZDKLZMBNZDKLZBCOZMZDVGPLDVIPLZBCQZAVHVKABCDEFUEUFADVGAVFRDIJUGZ
      FSZAVFRVGVOABGHVFCKVFKTZAVFRUCRKTVQVOUHVFRKUIUJUKACVFUCGNZVIKLMGCQVIVRKLH
      NVRKLHCOULGVFQUPBVFOEBGHCUMUNUOSUQAVNVJMZBCQVLAVMVSBCAVICURZUPDVIADRURVTV
      PUSACRVIACVFREVOUTVAUQVBVJBCVCVDVE $.
  $}

  $( Alternate definition of the positive real numbers.  (Contributed by
     Thierry Arnoux, 4-May-2020.) $)
  dfrp2 $p |- RR+ = ( 0 (,) +oo ) $=
    ( vx crp cc0 cpnf cioo co cv cr wcel clt wbr wa ltpnf adantr pm4.71i df-3an
    w3a bitr4i elrp cxr wb 0xr pnfxr elioo2 mp2an 3bitr4i eqriv ) ABCDEFZAGZHIZ
    CUIJKZLZUJUKUIDJKZQZUIBIUIUHIZULULUMLUNULUMUJUMUKUIMNOUJUKUMPRUISCTIDTIUOUN
    UAUBUCCDUIUDUEUFUG $.

  ${
    $d a b k u v w x y z X $.  $d a b k u v w x y z Y $.  $d k v w z Z $.
    $d k v w x y z ph $.
    xrofsup.1 $e |- ( ph -> X C_ RR* ) $.
    xrofsup.2 $e |- ( ph -> Y C_ RR* ) $.
    xrofsup.3 $e |- ( ph -> sup ( X , RR* , < ) =/= -oo ) $.
    xrofsup.4 $e |- ( ph -> sup ( Y , RR* , < ) =/= -oo ) $.
    xrofsup.5 $e |- ( ph -> Z = ( +e " ( X X. Y ) ) ) $.
    $( The supremum is preserved by extended addition set operation.  (Provided
       minus infinity is not involved as it does not behave well with
       addition.)  (Contributed by Thierry Arnoux, 20-Mar-2017.) $)
    xrofsup $p |- ( ph -> sup ( Z , RR* , < ) =
      ( sup ( X , RR* , < ) +e sup ( Y , RR* , < ) ) ) $=
      ( vx vy va vb cxr clt cxad wcel wbr wrex wa vz vk vu vv vw wss csup co cv
      cle wral wi wceq cxp cima cfv sseld anim12d imp xaddcl syl ralrimivva cop
      cr fveq2 df-ov syl6eqr eleq1d ralxp sylibr wfun cdm wb xaddf ax-mp xpss12
      wf ffun syl2anc syl6sseqr funimass4 sylancr mpbird eqsstrd supxrcl eleq2d
      fdmi xaddcld pm5.32i nfvd ad2antrr simprl supxrub simprr xle2add syl22anc
      sseldd mp2and fvelima mpan adantl eqeq1d rexxp sylib ancom 2rexbii biimpa
      r19.29d2r breq1 reximi 19.9d2r sylbi ralrimiva w3a simplr simpr xlt2addrd
      cmnf wne nfv nfcv nfre1 nfrex id ralrimivw adantr simplrr 3anassrs simp1d
      simp-4l simplrl simpld simpllr simprd jca32 xlt2add supxrlub syl21anc ex
      nfan biimpar syl12anc simplll simplr2 simplr3 sylanbrc reximddv2 reximdva
      sylan2 reeanv ancoms reximia 19.9d2rf a1i elovimad rspcedv rexlimdvva mpd
      breq2d supxr2 ) ADNUFBNOUGZCNOUGZPUHZNQUAUIZUVCUJRZUADUKUVDUVCORZUVDUBUIZ
      ORZUBDSZULZUAVDUKDNOUGUVCUMADPBCUNZUOZNIAUVLNUFZUCUIZPUPZNQZUCUVKUKZAJUIZ
      KUIZPUHZNQZKCUKJBUKUVQAUWAJKBCAUVRBQZUVSCQZTZTUVRNQZUVSNQZTZUWAAUWDUWGAUW
      BUWEUWCUWFABNUVREUQACNUVSFUQURUSUVRUVSUTVAVBUVPUWAUCJKBCUVNUVRUVSVCZUMZUV
      OUVTNUWIUVOUWHPUPUVTUVNUWHPVEUVRUVSPVFVGZVHVIVJAPVKZUVKPVLZUFZUVMUVQVMNNU
      NZNPVQUWKVNUWNNPVRVOZAUVKUWNUWLABNUFZCNUFZUVKUWNUFEFBNCNVPVSUWNNPVNWGVTZU
      CUVKNPWAWBWCWDAUVAUVBAUWPUVANQZEBWEZVAZAUWQUVBNQZFCWEZVAZWHAUVEUADAUVDDQZ
      TAUVDUVLQZTZUVEAUXEUXFADUVLUVDIWFWIUXGUVEJKBCUXGUVEJWJUXGUVEKWJUXGUVTUVDU
      MZUVTUVCUJRZTZKCSZJBSZUVEKCSZJBSUXGUXIUXHTZKCSJBSUXLUXGUXIUXHJKBCUXGUXIJK
      BCUXGUWDTZUVRUVAUJRZUVSUVBUJRZUXIUXOUWPUWBUXPAUWPUXFUWDEWKZUXGUWBUWCWLZBU
      VRWMVSUXOUWQUWCUXQAUWQUXFUWDFWKZUXGUWBUWCWNZCUVSWMVSUXOUWEUWFUWSUXBUXPUXQ
      TUXIULUXOBNUVRUXRUXSWQUXOCNUVSUXTUYAWQUXOUWPUWSUXRUWTVAUXOUWQUXBUXTUXCVAU
      VRUVSUVAUVBWOWPWRVBUXGUVOUVDUMZUCUVKSZUXHKCSJBSUXFUYCAUWKUXFUYCUWOUCUVDUV
      KPWSWTXAUYBUXHUCJKBCUWIUVOUVTUVDUWJXBXCXDXHUXNUXJJKBCUXIUXHXEXFXDUXKUXMJB
      UXJUVEKCUXHUXIUVEUVTUVDUVCUJXIXGXJXJVAXKXLXMAUVJUAVDAUVDVDQZTZUVFUVIUYEUV
      FTZUVDUDUIZUEUIZPUHZORZUECSUDBSZUVIUYFUWPUWQUVDLUIZMUIZPUHZUMZUYLUVAORZUY
      MUVBORZXNZMNSZLNSZUYKAUWPUYDUVFEWKAUWQUYDUVFFWKUYFUVDUVAUVBLMAUYDUVFXOAUW
      SUYDUVFUXAWKAUXBUYDUVFUXDWKAUVAXRXSUYDUVFGWKAUVBXRXSUYDUVFHWKUYEUVFXPXQUW
      PUWQTZUYTTZUYKLMNNVUAUYTMVUAMXTUYSMLNMNYAUYRMNYBYCYTVUBUYKLWJVUBUYKMWJVUB
      VUAUYRTZMNSZLNSUYKMNSZLNSVUBVUAUYRLMNNVUAVUAMNUKZLNUKUYTVUAVUFLNVUAVUAMNV
      UAYDYEYEYFVUAUYTXPXHVUDVUELNUYLNQZVUCUYKMNVUGUYMNQZTZVUCUYKVUIVUCTZUYLUYG
      ORZUYMUYHORZTZUYJUDUEBCVUJUYGBQZTZUYHCQZTZVUMTZUYOVUIUYGNQZUYHNQZTTZVUMUY
      JVURUYOUYPUYQVUJVUNVUPVUMUYRVUIVUAUYRVUNVUPVUMXNZYGYHYIVURVUIVUSVUTVUIVUC
      VUNVUPVUMYJVURBNUYGVURUWPUWQVUJVUNVUPVUMVUAVUIVUAUYRVVBYKYHZYLVUJVUNVUPVU
      MYMWQVURCNUYHVURUWPUWQVVCYNVUOVUPVUMXOWQYOVUQVUMXPVVAVUMTUYOUYNUYIORZUYJV
      VAVUMVVDUYLUYMUYGUYHYPUSUYOUYJVVDUVDUYNUYIOXIUUAUUIUUBVUCVUIVUMUECSUDBSZV
      UCVUITZVUKUDBSZVULUECSZVVEVVFUWPVUGUYPVVGUWPUWQUYRVUIUUCVUCVUGVUHWLUYOUYP
      UYQVUAVUIUUDUWPVUGTUYPVVGUDBUYLYQXGYRVVFUWQVUHUYQVVHUWPUWQUYRVUIYMVUCVUGV
      UHWNUYOUYPUYQVUAVUIUUEUWQVUHTUYQVVHUECUYMYQXGYRVUKVULUDUEBCUUJUUFUUKUUGYS
      UUHUULVAUUMYRAUYKUVIULUYDUVFAUYJUVIUDUEBCAVUNVUPTZTZUVHUYJUBUYIDVVJUYIDQZ
      UYIUVLQZVVJUYGUYHBCPAVUNVUPWLAVUNVUPWNUWKVVJUWOUUNAUWMVVIUWRYFUUOAVVKVVLV
      MVVIADUVLUYIIWFYFWCVVJUVGUYIUMZTUVGUYIUVDOVVJVVMXPUUSUUPUUQWKUURYSXMUAUBD
      UVCUUTWP $.
  $}

  ${
    $d x A $.
    $( The supremum of a nonempty set of extended reals which does not contain
       minus infinity is not minus infinity.  (Contributed by Thierry Arnoux,
       21-Mar-2017.) $)
    supxrnemnf $p |- ( ( A C_ RR* /\ A =/= (/) /\ -. -oo e. A ) ->
                     sup ( A , RR* , < ) =/= -oo ) $=
      ( vx cxr wss c0 wne cmnf wcel w3a clt csup wbr mnfxr a1i supxrcl 3ad2ant1
      wn wa biimprd sylc wrex simp1 jctir wceq simpl sselda simpr simplr nelneq
      cv syl2anc ngtmnft con1d reximdva0 3impa 3com23 supxrlub xrltne syl3anc )
      ACDZAEFZGAHQZIZGCHZACJKZCHZGVEJLZVEGFVDVCMNUTVAVFVBAOPVCUTVDRZGBUJZJLZBAU
      AZVGVCUTVDUTVAVBUBMUCUTVBVAVKUTVBVAVKUTVBRZVJBAVLVIAHZRZVICHZVIGUDZQZVJVL
      ACVIUTVBUEUFVNVMVBVQVLVMUGUTVBVMUHVIGAUIUKVOVJVPVOVPVJQVIULSUMTUNUOUPVHVG
      VKBAGUQSTGVEURUS $.
  $}

  ${
    $( The topology of the extended reals is Hausdorff.  (Contributed by
       Thierry Arnoux, 24-Mar-2017.) $)
    xrhaus $p |- ( ordTop ` <_ ) e. Haus $=
      ( cle ctsr wcel cordt cfv cha letsr ordthaus ax-mp ) ABCADEFCGAHI $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Real number intervals - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d a b w x A $.  $d a b w x B $.  $d a b w x C $.
    $( Disjoint joining an open interval with a closed-below, open-above
       interval to form a closed-below, open-above interval.  (Contributed by
       Thierry Arnoux, 26-Sep-2017.) $)
    joiniooico $p |- ( ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\
      ( A < B /\ B <_ C ) ) -> ( ( ( A (,) B ) i^i ( B [,) C ) ) = (/)
      /\ ( ( A (,) B ) u. ( B [,) C ) ) = ( A (,) C ) ) ) $=
      ( va vb vx vw cxr wcel w3a clt wbr cle wa cioo co cico cin wceq xrltletr
      c0 cun df-ioo df-ico cv xrlenlt ixxdisj adantr ixxun jca ) AHIBHICHIJZABK
      LBCMLNZNABOPZBCQPZRUASZUMUNUBACOPSUKUOULDEFGABCQKKMKODEFUCZDEFUDZBGUEZUFZ
      UGUHDEFGABCQOKKMKOKMUPUQUSUPURBCTABURTUIUJ $.
  $}

  $( A right-open interval does not contain its right endpoint.  (Contributed
     by Thierry Arnoux, 5-Apr-2017.) $)
  ubico $p |- ( ( A e. RR /\ B e. RR* ) -> -. B e. ( A [,) B ) ) $=
    ( cr wcel cxr wa co cle wbr clt w3a simp3 simp1 ltnrd pm2.65i elico2 mtbiri
    cico ) ACDBEDFBABRGDBCDZABHIZBBJIZKZUBUASTUALUBBSTUAMNOABBPQ $.

  $( Equality in terms of 'less than or equal to', 'less than'.  (Contributed
     by Thierry Arnoux, 5-Jul-2017.) $)
  xeqlelt $p |- ( ( A e. RR* /\ B e. RR* ) ->
               ( A = B <-> ( A <_ B /\ -. A < B ) ) ) $=
    ( cxr wcel wa wceq cle wbr clt wn xrletri3 wb xrlenlt ancoms anbi2d bitrd )
    ACDZBCDZEZABFABGHZBAGHZETABIHJZEABKSUAUBTRQUAUBLBAMNOP $.

  $( Relate elementhood to a closed interval with elementhood to the same
     closed-below, open-above interval or to its upper bound.  (Contributed by
     Thierry Arnoux, 3-Jul-2017.) $)
  eliccelico $p |- ( ( A e. RR* /\ B e. RR* /\ A <_ B ) ->
                    ( C e. ( A [,] B ) <-> ( C e. ( A [,) B ) \/ C = B ) ) ) $=
    ( cxr wcel cle wbr w3a co wn wa simpl1 simpl2 biimpa syl21anc syl2anc sylib
    wi syl22anc ex cicc cico wceq wo clt simprl elicc1 simp1d simp3d jca simprr
    simp2d elico1 notbid df-3an notbii imnan imp xeqlelt biimpar pm5.6 icossicc
    bitr4i simpr sseldi eqeltrd simpl3 breqtrrd xrleid syl eqbrtrd wb mpbir3and
    jaodan impbid ) ADEZBDEZABFGZHZCABUAIZEZCABUBIZEZCBUCZUDZVSWAWCJZKZWDRWAWER
    VSWGWDVSWGKZCDEZVQCBFGZCBUEGZJZWDWHVPVQWAWIVPVQVRWGLZVPVQVRWGMZVSWAWFUFZVPV
    QKZWAKZWIACFGZWJWPWAWIWRWJHZABCUGZNZUHOZWNWHVPVQWAWJWMWNWOWQWIWRWJXAUIOWHWP
    WFWIWRWLWHVPVQWMWNUJZVSWAWFUKXBWHWPWAWRXCWOWQWIWRWJXAULPWPWFKZWIWRKZWLXDWIW
    RWKHZJZXEWLRZWPWFXGWPWCXFABCUMUNNXGXEWKKZJXHXFXIWIWRWKUOUPXEWKUQVCQURSWIVQK
    WDWJWLKCBUSUTSTWAWCWDVAQVSWEWAVSWCWAWDVSWCKWBVTCABVBVSWCVDVEVSWDKZWAWIWRWJX
    JCBDVSWDVDZVPVQVRWDMZVFXJABCFVPVQVRWDVGXKVHXJCBBFXKXJVQBBFGXLBVIVJVKXJVPVQW
    AWSVLVPVQVRWDLXLWTPVMVNTVO $.

  $( Relate elementhood to a closed-below, open-above interval with elementhood
     to the same open interval or to its lower bound.  (Contributed by Thierry
     Arnoux, 6-Jul-2017.) $)
  elicoelioo $p |- ( ( A e. RR* /\ B e. RR* /\ A < B ) ->
                    ( C e. ( A [,) B ) <-> ( C = A \/ C e. ( A (,) B ) ) ) ) $=
    ( cxr wcel clt wbr w3a co wceq wo wn wa wi cle simpl1 simpl2 biimpa syl2anc
    syl21anc cico cioo simprl elico1 simp1d simp2d simprr simp3d elioo1 3anan32
    jca notbid notbii imnan bitr4i sylib imp syl22anc xeqlelt biimpar ex syl6ib
    eqcom pm5.6 orcom simpr eqeltrd xrleid breqtrrd simpl3 eqbrtrd wb mpbir3and
    syl ioossico sseldi jaodan impbid ) ADEZBDEZABFGZHZCABUAIZEZCAJZCABUBIZEZKZ
    WBWDWGWEKZWHWBWDWGLZMZWENWDWINWBWKACJZWEWBWKWLWBWKMZVSCDEZACOGZACFGZLZWLVSV
    TWAWKPZWMVSVTWDWNWRVSVTWAWKQZWBWDWJUCZVSVTMZWDMZWNWOCBFGZXAWDWNWOXCHZABCUDZ
    RZUETZWMVSVTWDWOWRWSWTXBWNWOXCXFUFTWMXAWJWNXCWQWMVSVTWRWSUKZWBWDWJUGXGWMXAW
    DXCXHWTXBWNWOXCXFUHSXAWJMZWNXCMZWQXIWNWPXCHZLZXJWQNZXAWJXLXAWGXKABCUIULRXLX
    JWPMZLXMXKXNWNWPXCUJUMXJWPUNUOUPUQURVSWNMWLWOWQMACUSUTURVAACVCVBWDWGWEVDUPW
    GWEVEVBWBWHWDWBWEWDWGWBWEMZWDWNWOXCXOCADWBWEVFZVSVTWAWEPZVGXOAACOXOVSAAOGXQ
    AVHVNXPVIXOCABFXPVSVTWAWEVJVKXOVSVTWDXDVLXQVSVTWAWEQXESVMWBWGMWFWCCABVOWBWG
    VFVPVQVAVR $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Intersection between two open-below, closed-above intervals sharing the
       same upper bound.  (Contributed by Thierry Arnoux, 7-Aug-2017.) $)
    iocinioc2 $p |- ( ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\ A <_ B )
      -> ( ( A (,] C ) i^i ( B (,] C ) ) = ( B (,] C ) ) $=
      ( vx cxr wcel w3a cle wbr wa cioc co cin cv clt wb elioc1 syl2anc 3adant3
      bitr4d simpl1 simpl3 simpl2 anbi12d simp31 simp32 xrlelttrd simp33 3expia
      elin simp2 3jca pm4.71rd syl5bb eqrdv ) AEFZBEFZCEFZGZABHIZJZDACKLZBCKLZM
      ZVCVADNZVDFZVEEFZBVEOIZVECHIZGZVEVCFZVFVEVBFZVKJZVAVJVEVBVCUJVAVMVGAVEOIZ
      VIGZVJJVJVAVLVOVKVJVAUPURVLVOPUPUQURUTUAZUPUQURUTUBZACVEQRVAUQURVKVJPUPUQ
      URUTUCZVQBCVEQRZUDVAVJVOUSUTVJVOUSUTVJGZVGVNVIUSUTVGVHVIUEZVTABVEUSUTUPVJ
      VPSUSUTUQVJVRSWAUSUTVJUKUSUTVGVHVIUFUGUSUTVGVHVIUHULUIUMTUNVSTUO $.
  $}

  ${
    $d x A $.
    xrdifh.1 $e |- A e. RR* $.
    $( Class difference of a half-open interval in the extended reals.
       (Contributed by Thierry Arnoux, 1-Aug-2017.) $)
    xrdifh $p |- ( RR* \ ( A [,] +oo ) ) = ( -oo [,) A ) $=
      ( vx cxr cpnf cicc co cdif cmnf wcel wn wa wbr cle wo w3a pm5.32i 3bitr4i
      wb mp2an cico clt biortn pnfge notnotd biorf syl orcom syl6bbr w3o elicc1
      pnfxr notbii 3ianor 3orass 3bitri a1i 3bitr4rd xrltnle mpan2 bitr4d eldif
      cv 3anass mnfxr elico1 mnfle biantrurd eqriv ) CDAEFGZHZIAUAGZCVCZDJZVMVJ
      JZKZLVNVMAUBMZLZVMVKJVMVLJZVNVPVQVNVPAVMNMZKZVQVNWAVMENMZKZOZVNKZWDOZWAVP
      VNWDUCVNWAWCWAOZWDVNWCKWAWGSVNWBVMUDUEWCWAUFUGWAWCUHUIVPWFSVNVPVNVTWBPZKW
      EWAWCUJWFVOWHADJZEDJVOWHSBULAEVMUKTUMVNVTWBUNWEWAWCUOUPUQURVNWIVQWASBVMAU
      SUTVAQVMDVJVBVNIVMNMZVQPZVNWJVQLZLVSVRVNWJVQVDIDJWIVSWKSVEBIAVMVFTVNVQWLV
      NWJVQVMVGVHQRRVI $.
  $}

  ${
    $( Relate intersection of two open-below, closed-above intervals with the
       same upper bound with a conditional construct.  (Contributed by Thierry
       Arnoux, 7-Aug-2017.) $)
    iocinif $p |- ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) ->
      ( ( A (,] C ) i^i ( B (,] C ) )
                                = if ( A < B , ( B (,] C ) , ( A (,] C ) ) ) $=
      ( cxr wcel w3a clt wbr cioc co cin wa wn wo cle iocinioc2 syldan ex ancld
      wceq cif exmid xrltle imp 3adantl3 simpl2 simpl1 xrlenlt biimpar syl21anc
      simpr 3ancoma incom syl5eqr sylanbr orim12d mpi eqif sylibr ) ADEZBDEZCDE
      ZFZABGHZACIJZBCIJZKZVFTZLZVDMZVGVETZLZNZVGVDVFVEUATVCVDVJNVMVDUBVCVDVIVJV
      LVCVDVHVCVDVHVCVDABOHZVHUTVAVDVNVBUTVALVDVNABUCUDUEABCPQRSVCVJVKVCVJVKVCV
      JBAOHZVKVCVJLVAUTVJVOUTVAVBVJUFUTVAVBVJUGVCVJUKVAUTLVOVJBAUHUIUJVCVAUTVBF
      ZVOVKVAUTVBULVPVOLVGVFVEKVEVFVEUMBACPUNUOQRSUPUQVDVGVFVEURUS $.
  $}

  $( The difference between two open intervals sharing the same lower bound.
     (Contributed by Thierry Arnoux, 26-Sep-2017.) $)
  difioo $p |- ( ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\ A < B )
            -> ( ( A (,) C ) \ ( A (,) B ) ) = ( B [,) C ) ) $=
    ( cxr wcel clt wbr wa cle cioo co wceq cin cun wss simpll1 adantr syl simpr
    c0 w3a cdif incom joiniooico anassrs simpld syl5eqr simprd uncom a1i simpl3
    xrleid ioossioo syl22anc ssequn2 sylib 3eqtr4d difeq sylanbrc simpl2 xrltle
    cico imp syl21anc ssdif0 ico0 biimpar eqtr4d wo xrlelttric syl2anc mpjaodan
    ) ADEZBDEZCDEZUAZABFGZHZBCIGZACJKZABJKZUBZBCVBKZLZCBFGZVRVSHZWCWAMZTLWCWANZ
    VTWANZLWDWFWGWAWCMZTWAWCUCWFWJTLZWAWCNZVTLZVPVQVSWKWMHABCUDUEZUFUGWFWLVTWHW
    IWFWKWMWNUHWHWLLWFWCWAUIUJWFWAVTOZWIVTLWFVMVOAAIGZVSWOVMVNVOVQVSPZVRVOVSVMV
    NVOVQUKZQWFVMWPWQAULZRVRVSSACABUMUNWAVTUOUPUQVTWAWCURUSVRWEHZWBTWCWTVTWAOZW
    BTLWTVMVNWPCBIGZXAVMVNVOVQWEPZVRVNWEVMVNVOVQUTZQZWTVMWPXCWSRWTVOVNWEXBVRVOW
    EWRQZXEVRWESVOVNHWEXBCBVAVCVDZABACUMUNVTWAVEUPWTVNVOXBWCTLZXEXFXGVNVOHXHXBB
    CVFVGVDVHVRVNVOVSWEVIXDWRBCVJVKVL $.

  $( The difference between two closed-below, open-above intervals sharing the
     same upper bound.  (Contributed by Thierry Arnoux, 13-Oct-2017.) $)
  difico $p |- ( ( ( A e. RR* /\ B e. RR* /\ C e. RR* ) /\
    ( A <_ B /\ B <_ C ) ) -> ( ( A [,) C ) \ ( B [,) C ) ) = ( A [,) B ) ) $=
    ( cxr wcel w3a cle wbr wa cico co cdif cun cin c0 icodisj undif4 syl adantr
    wceq difid uneq2i un0 eqtri a1i icoun difeq1d 3eqtr3rd ) ADEBDECDEFZABGHBCG
    HIZIZABJKZBCJKZUMLZMZULUMMZUMLZULACJKZUMLUIUOUQTZUJUIULUMNOTUSABCPULUMUMQRS
    UOULTUKUOULOMULUNOULUMUAUBULUCUDUEUKUPURUMABCUFUGUH $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Finite intervals of integers - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d M x $.
    $( Upper integer sets are a subset of the corresponding closed-below,
       open-above intervals.  (Contributed by Thierry Arnoux, 29-Dec-2021.) $)
    uzssico $p |- ( M e. ZZ -> ( ZZ>= ` M ) C_ ( M [,) +oo ) ) $=
      ( vx cz wcel cuz cfv cpnf cico co cv cle wbr wa cr zssre sseli a1i anim1d
      wi eluz1 wb zre elicopnf syl 3imtr4d ssrdv ) ACDZBAEFZAGHIZUGBJZCDZAUJKLZ
      MUJNDZULMZUJUHDUJUIDZUGUKUMULUKUMSUGCNUJOPQRAUJTUGANDUOUNUAAUBAUJUCUDUEUF
      $.
  $}

  $( A finite set of sequential integers that is a subset of ` NN0 ` .
     (Contributed by Thierry Arnoux, 8-Dec-2021.) $)
  fz2ssnn0 $p |- ( M e. NN0 -> ( M ... N ) C_ NN0 ) $=
    ( cn0 wcel cfz co cuz cfv fzssuz cc0 wss nn0uz eleq2i biimpi uzss syl6sseqr
    syl syl5ss ) ACDZABEFAGHZCABISTJGHZCSAUADZTUAKSUBCUAALMNJAOQLPR $.

  ${
    $d j N $.
    $( Upper set of the positive integers.  (Contributed by Thierry Arnoux,
       22-Aug-2017.) $)
    nndiffz1 $p |- ( N e. NN0 -> ( NN \ ( 1 ... N ) ) = ( ZZ>= ` ( N + 1 ) ) )
      $=
      ( vj cn0 wcel cn c1 cfz co caddc cz cle wbr wn wa wb baibd simpr pm5.32da
      zred cc0 cdif cuz cfv cv 1z nn0z elfz1 sylancr 3anass syl6bb notbid simpl
      w3a ltnled zltp1le bitr3d sylan adantr 1red simpll nn0red readdcld simplr
      clt bitrd 0p1e1 nn0ge0d leadd1dd syl5eqbrr letrd ex pm4.71rd bitr4d eldif
      0red elnnz1 anbi1i anass 3bitri a1i peano2nn0 nn0zd eluz1 3bitr4d eqrdv
      syl ) ACDZBEFAGHZUAZAFIHZUBUCZWGBUDZJDZFWLKLZWLWHDZMZNZNZWMWJWLKLZNZWLWID
      ZWLWKDZWGWMWQWSWGWMNZWQWNWSNWSXCWNWPWSXCWNNZWPWLAKLZMZWSXDWOXEXCWOWNXEWGW
      OWMWNXENZWGWOWMWNXEUMZWMXGNWGFJDAJDZWOXHOUEAUFZWLFAUGUHWMWNXEUIUJPPUKXCXF
      WSOZWNWGXIWMXKXJXIWMNZAWLVDLXFWSXLAWLXLAXIWMULSXLWLXIWMQSUNAWLUOUPUQURVER
      XCWSWNXCWSWNXCWSNZFWJWLXMUSZXMAFXMAWGWMWSUTZVAZXNVBXMWLWGWMWSVCSXMFTFIHWJ
      KVFXMTAFXMVOXPXNXMAXOVGVHVIXCWSQVJVKVLVMRXAWROWGXAWLEDZWPNWMWNNZWPNWRWLEW
      HVNXQXRWPWLVPVQWMWNWPVRVSVTWGWJJDXBWTOWGWJAWAWBWJWLWCWFWDWE $.
  $}

  ${
    $d n x y z A $.
    $( For any finite subset of ` NN ` , find a superset in the form of a set
       of sequential integers.  (Contributed by Thierry Arnoux,
       13-Sep-2017.) $)
    ssnnssfz $p |- ( A e. ( ~P NN i^i Fin ) -> E. n e. NN A C_ ( 1 ... n ) ) $=
      ( vx vy vz cn cfn wcel c1 cv cfz co wss wrex c0 wceq wa clt adantr wbr cr
      cpw cin 1nn simpr 0ss syl6eqss oveq2 sseq2d sylancr wne csup elin simplbi
      rspcev elpwid wor nnssre ltso mp2 a1i simprbi fisupcl syl13anc sseldd cuz
      soss cfv sselda nnuz syl6eleq cz cle nnzd wn wral wi fisup2g ssrexv supub
      sylc imp nnred lenltd mpbird eluz2 syl3anbrc eluzfz syl2anc ex pm2.61dane
      ssrdv ) AFUBZGUCHZAIBJZKLZMZBFNZAOWNAOPZQZIFHAIIKLZMZWRUDWTAOXAWNWSUEXAUF
      UGWQXBBIFWOIPWPXAAWOIIKUHUIUOUJWNAOUKZQZAFRULZFHAIXEKLZMZWRXDAFXEXDAFWNAW
      MHZXCWNXHAGHZAWMGUMZUNSUPZXDFRUQZXIXCAFMZXEAHZXLXDFUAMUARUQXLURUSFUARVGUT
      VAZWNXIXCWNXHXIXJVBSZWNXCUEZXKFARVCVDZVEXDCAXFXDCJZAHZXSXFHZXDXTQZXSIVFVH
      ZHXEXSVFVHHZYAYBXSFYCXDAFXSXKVIZVJVKYBXSVLHXEVLHXSXEVMTZYDYBXSYEVNYBXEYBA
      FXEXDXMXTXKSXDXNXTXRSVEZVNYBYFXEXSRTVOZXDXTYHXDCDEFAXSRXOXDXMXSDJZRTVODAV
      PYIXSRTYIEJRTEANVQDFVPQZCANZYJCFNXKXDXLXIXCXMYKXOXPXQXKCDEFARVRVDYJCAFVSW
      AVTWBYBXSXEYBXSYEWCYBXEYGWCWDWEXSXEWFWGXSIXEWHWIWJWLWQXGBXEFWOXEPWPXFAWOX
      EIKUHUIUOWIWK $.
  $}

  $( Split the last element of a finite set of sequential integers.  (more
     generic than ~ fzsuc ) (Contributed by Thierry Arnoux, 7-Nov-2016.) $)
  fzspl $p |- ( N e. ( ZZ>= ` M ) ->
                ( M ... N ) = ( ( M ... ( N - 1 ) ) u. { N } ) ) $=
    ( cuz cfv wcel cfz co c1 cmin caddc cun csn wceq eluzelz zcnd npcand cz syl
    1zzd eqtrd eleq1d ibir cle wbr eluzelre lem1d wa wb zsubcld eluz1 mpbir2and
    fzsplit2 syl2anc oveq1d fzsn uneq2d ) BACDZEZABFGZABHIGZFGZUTHJGZBFGZKZVABL
    ZKURVBUQEZBUTCDEZUSVDMURVFURVBBUQURBHURBABNZOURHURSZOPZUAUBURVGBQEZUTBUCUDZ
    VHURBABUEUFURUTQEVGVKVLUGUHURBHVHVIUIUTBUJRUKUTABULUMURVCVEVAURVCBBFGZVEURV
    BBBFVJUNURVKVMVEMVHBUORTUPT $.

  $( Split the last element of a finite set of sequential integers.  (more
     generic than ~ fzsuc ) (Contributed by Thierry Arnoux, 22-Aug-2020.) $)
  fzdif2 $p |- ( N e. ( ZZ>= ` M )
     -> ( ( M ... N ) \ { N } ) = ( M ... ( N - 1 ) ) ) $=
    ( cuz cfv wcel cfz co csn cdif c1 cmin cun fzspl difeq1d difun2 syl6eq wceq
    cin c0 wn cz eluzelz uzid uznfz 3syl disjsn sylibr disjdif2 syl eqtrd ) BAC
    DEZABFGZBHZIZABJKGFGZUMIZUOUKUNUOUMLZUMIUPUKULUQUMABMNUOUMOPUKUOUMRSQZUPUOQ
    UKBUOETZURUKBUAEBBCDEUSABUBBUCBABUDUEUOBUFUGUOUMUHUIUJ $.

  $( Split the last element of a half-open range of sequential integers.
     (Contributed by Thierry Arnoux, 5-Dec-2021.) $)
  fzodif2 $p |- ( N e. ( ZZ>= ` M ) -> ( ( M ..^ ( N + 1 ) ) \ { N } )
     = ( M ..^ N ) ) $=
    ( cuz cfv wcel caddc cfzo csn cdif cun fzosplitsn difeq1d difun2 syl6eq cin
    c1 co c0 wceq wn fzonel disjsn mpbir disjdif2 mp1i eqtrd ) BACDEZABPFQGQZBH
    ZIZABGQZUIIZUKUGUJUKUIJZUIIULUGUHUMUIABKLUKUIMNUKUIORSZULUKSUGUNBUKETABUAUK
    BUBUCUKUIUDUEUF $.

  ${
    $d x K $.  $d x M $.  $d x N $.
    $( Split a finite interval of integers into two parts.  (Contributed by
       Thierry Arnoux, 2-May-2017.) $)
    fzsplit3 $p |- ( K e. ( M ... N ) ->
      ( M ... N ) = ( ( M ... ( K - 1 ) ) u. ( K ... N ) ) ) $=
      ( vx cfz co wcel c1 wo wa cle wbr syl2anr cuz cz wb elfzuz elfzuz3 adantl
      cfv cmin cun cv cr elfzelz zred 1red resubcld lelttric 1zzd zsubcld elfz5
      clt elfzuzb syl eluz syl2an zlem1lt 3bitrd orbi12d mpbird adantr peano2uz
      rbaib caddc recnd npcand eleq1d mpbid uztrn syl2anc sylanbrc impbida elun
      jaodan syl6bbr eqrdv ) ABCEFZGZDVRBAHUAFZEFZACEFZUBZVSDUCZVRGZWDWAGZWDWBG
      ZIZWDWCGVSWEWHVSWEJZWHWDVTKLZVTWDUMLZIZWEWDUDGVTUDGWLVSWEWDWDBCUEZUFVSAHV
      SAABCUEZUFZVSUGZUHWDVTUIMWIWFWJWGWKWEWDBNTZGZVTOGWFWJPVSWDBCQVSAHWNVSUJUK
      WDBVTULMWIWGWDANTZGZAWDKLZWKWICWDNTZGZWGWTPWEXCVSWDBCRSWGWTXCWDACUNVDUOVS
      AOGZWDOGZWTXAPWEWNWMAWDUPUQVSXDXEXAWKPWEWNWMAWDURUQUSUTVAVSWFWEWGVSWFJZWR
      XCWEWFWRVSWDBVTQSXFCWSGZAXBGZXCVSXGWFABCRVBXFVTHVEFZXBGZXHXFVTXBGZXJWFXKV
      SWDBVTRSWDVTVCUOVSXJXHPWFVSXIAXBVSAHVSAWOVFVSHWPVFVGVHVBVIACWDVJVKWDBCUNZ
      VLVSWGJWRXCWEWGWTAWQGWRVSWDACQABCQAWDBVJMWGXCVSWDACRSXLVLVOVMWDWAWBVNVPVQ
      $.
  $}

  $( The proportion of one binomial coefficient to another with ` N ` decreased
     by 1.  (Contributed by Thierry Arnoux, 9-Nov-2016.) $)
  bcm1n $p |- ( ( K e. ( 0 ... ( N - 1 ) ) /\ N e. NN ) ->
    ( ( ( N - 1 ) _C K ) / ( N _C K ) ) = ( ( N - K ) / N ) ) $=
    ( cc0 c1 cmin co cfz wcel cn wa cbc cdiv wceq cmul cc wbr adantr clt mpbird
    nnne0d caddc bcp1n nnz zcnd adantl 1cnd npcand oveq1d oveq12d oveq2d syl5ib
    eqeq12d 3impia 3anidm13 wne wb crp cn0 elfznn0 simpr nnnn0d cz elfzelz zred
    cle elfzle2 zltlem1 syl2an ltled elfz2nn0 syl3anbrc bcrpcl syl rpcnd subcld
    cneg negsubdi2d resubcld recnd addid2d breqtrrd 0red lt0ne0d negne0d divcld
    ltsubaddd eqnetrrd rpcnne0d divmul2 syl3anc bccl2 recdivd 3eqtr3d ) ACBDEFZ
    GFHZBIHZJZDBAKFZWNAKFZLFZLFDBBAEFZLFZLFWSWRLFXABLFWQWTXBDLWQWTXBMZWRWSXBNFZ
    MZWOWPXEWOWPWOXEWOWNDUAFZAKFZWSXFXFAEFZLFZNFZMWQXEAWNUBWQXGWRXJXDWQXFBAKWQB
    DWPBOHWOWPBBUCZUDUEZWQUFUGZUHWQXIXBWSNWQXFBXHXALXMWQXFBAEXMUHUIUJULUKUMUNWQ
    WROHXBOHWSOHWSCUOZJXCXEUPWQWRWQACBGFHZWRUQHWQAURHZBURHABVEPXOWOXPWPAWNUSQWQ
    BWOWPUTZVAWQABWQAWOAVBHZWPACWNVCZQVDZWQBWPBVBHZWOXKUEVDZWQABRPZAWNVEPZWOYDW
    PACWNVFQWOXRYAYCYDUPWPXSXKABVGVHSZVIABVJVKZABVLVMVNZWQBXAXLWQBAXLWOAOHWPWOA
    XSUDQZVOZWQABEFZVPXACWQABYHXLVQWQYJWQYJWQABXTYBVRVSWQYJWQYJCRPACBUAFZRPWQAB
    YKRYEWQBXLVTWAWQABCXTYBWQWBWFSWCWDWGZWEWQWSWOWSUQHWPAWNVLQZWHWRXBWSWIWJSUJW
    QWRWSYGWQWSYMVNWQWRWQXOWRIHYFABWKVMTWOXNWPWOWSAWNWKTQWLWQBXAXLYIWQBXQTYLWLW
    M $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Half-open integer ranges - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d k m n x N $.  $d k m x A $.  $d m x B $.
    iundisj3.0 $e |- F/_ n B $.
    iundisj3.1 $e |- ( n = k -> A = B ) $.
    $( Rewrite a countable union as a disjoint union, finite version.  Cf.
       ~ iundisj .  (Contributed by Thierry Arnoux, 15-Feb-2017.) $)
    iundisjfi $p |- U_ n e. ( 1 ..^ N ) A =
      U_ n e. ( 1 ..^ N ) ( A \ U_ k e. ( 1 ..^ n ) B ) $=
      ( vx vm c1 cfzo co ciun cv wcel wrex cr clt cn nfcv cdif crab cinf ssrab2
      csb cuz cfv wss c0 wne fzossnn nnuz sseqtri sstri rabn0 biimpri infssuzcl
      sylancr sseldi nfrab1 nfinf nfcsb1 nfcri wceq csbeq1a eleq2d elrabf sylib
      simprd wbr nnssre ltnrd eliun ad2antrr elfzouz2 fzoss2 3syl sselda adantr
      wa nnred cle simpr sylanbrc infssuzle elfzolt2 ad2antlr lelttrd rexlimdva
      ex syl5bi eldifd csbeq1 oveq2 iuneq1d difeq12d rspcev syl2anc nfv nfcsb1v
      mtod nfiun nfdif cbvrex sylibr eldifi reximi impbii 3bitr4i eqriv ) HDJEK
      LZAMZDXKACJDNZKLZBMZUAZMZHNZAOZDXKPZXRXPOZDXKPZXRXLOXRXQOXTYBXTXRDINZAUEZ
      CJYCKLZBMZUAZOZIXKPZYBXTXSDXKUBZQRUCZXKOZXRDYKAUEZCJYKKLZBMZUAZOZYIXTYJXK
      YKXSDXKUDZXTYJJUFUGZUHZYJUIUJZYKYJOZYJXKYSYRXKSYSEUKZULUMUNZUUAXTXSDXKUOU
      PYJJUQURZUSZXTXRYMYOXTYLXRYMOZXTUUBYLUUGVTUUEXSUUGDYKXKDYJQRXSDXKUTDQTDRT
      VAZDXKTZDHYMDYKAUUHVBVCXMYKVDAYMXRDYKAVEVFVGVHVIXTXRYOOZYKYKRVJZXTYKXTYJQ
      YKYJSQYJXKSYRUUCUNVKUNUUEUSZVLUUJXRBOZCYNPXTUUKCXRYNBVMXTUUMUUKCYNXTCNZYN
      OZVTZUUMUUKUUPUUMVTZYKUUNYKXTYKQOUUOUUMUULVNZUUQUUNUUQXKSUUNUUCUUPUUNXKOZ
      UUMXTYNXKUUNXTYLEYKUFUGOYNXKUHUUFYKJEVOYKJEVPVQVRVSZUSWAUURUUQYTUUNYJOZYK
      UUNWBVJUUDUUQUUSUUMUVAUUTUUPUUMWCXSUUMDUUNXKDUUNTUUIDHBFVCXMUUNVDABXRGVFV
      GWDUUNYJJWEURUUOUUNYKRVJXTUUMUUNJYKWFWGWHWJWIWKXAWLYHYQIYKXKYCYKVDZYGYPXR
      UVBYDYMYFYODYCYKAWMUVBCYEYNBYCYKJKWNWOWPVFWQWRYAYHDIXKYAIWSDHYGDYDYFDYCAW
      TCDYEBDYETFXBXCVCXMYCVDZXPYGXRUVCAYDXOYFDYCAVEUVCCXNYEBXMYCJKWNWOWPVFXDXE
      YAXSDXKXRAXOXFXGXHDXRXKAVMDXRXKXPVMXIXJ $.
  $}

  ${
    $d a b k n x y N $.  $d a b k x y A $.  $d a b x y B $.  $d k n x N $.
    iundisj2fi.0 $e |- F/_ n B $.
    iundisj2fi.1 $e |- ( n = k -> A = B ) $.
    $( A disjoint union is disjoint, finite version.  Cf. ~ iundisj2 .
       (Contributed by Thierry Arnoux, 16-Feb-2017.) $)
    iundisj2fi $p |- Disj_ n e. ( 1 ..^ N ) ( A \ U_ k e. ( 1 ..^ n ) B ) $=
      ( vx vy va vb c1 cfzo cv weq csb cin c0 wcel cr ciun cdif wdisj wceq wral
      co wo wtru tru eqeq12 csbeq1 ineqan12d eqeq1d orbi12d equcom syl6bb incom
      wa syl6eq wss cn fzossnn nnssre sstri a1i biidd cle wbr w3a wne nesym clt
      wn wb sseli id leltne syl3an vex nfcsb1v nfcv nfiun nfdif csbeq1a iuneq1d
      wi oveq2 difeq12d csbief ineq12i cuz cfv simp1 sseldi nnuz syl6eleq simp2
      nnzd simp3 elfzo2 syl3anbrc csbhypf equcoms eqcomd ssiun2s ssdifssd ssrin
      cz syl syl5eqss disjdif sseq0 sylancl 3expia 3adant3 sylbird syl5bir orrd
      adantl wlogle mpan rgen2a disjors mpbir ) DLEMUFZACLDNZMUFZBUAZUBZUCHIOZD
      HNZYIPZDINZYIPZQZRUDZUGZIYEUEHYEUEYQHIYEUHYKYESZYMYESZURZYQUIUHJKOZDJNZYI
      PZDKNZYIPZQZRUDZUGYQYQHIJKYEJHOZKIOZURZUUAYJUUGYPUUBYKUUDYMUJUUJUUFYORUUH
      UUIUUCYLUUEYNDUUBYKYIUKDUUDYMYIUKULUMUNJIOZKHOZURZUUAYJUUGYPUUMUUAIHOYJUU
      BYMUUDYKUJIHUOUPUUMUUFYORUUMUUFYNYLQYOUUKUULUUCYNUUEYLDUUBYMYIUKDUUDYKYIU
      KULYNYLUQUSUMUNYETUTUHYEVATEVBZVCVDZVEUHYTURYQVFYRYSYKYMVGVHZVIZYQUHUUQYJ
      YPYJVMYMYKVJZUUQYPYMYKVKUUQUURYKYMVLVHZYPYRYKTSYSYMTSUUPUUPUUSUURVNYETYKU
      UOVOYETYMUUOVOUUPVPYKYMVQVRYRYSUUSYPWFUUPYRYSUUSYPYRYSUUSVIZYOCLYMMUFZBUA
      ZDYMAPZUVBUBZQZUTUVERUDYPUUTYODYKAPZCLYKMUFZBUAZUBZUVDQZUVEYLUVIYNUVDDYKY
      IUVIHVSDUVFUVHDYKAVTCDUVGBDUVGWAFWBWCDHOZAUVFYHUVHDYKAWDUVKCYGUVGBYFYKLMW
      GWEWHWIDYMYIUVDIVSDUVCUVBDYMAVTCDUVABDUVAWAFWBWCDIOZAUVCYHUVBDYMAWDUVLCYG
      UVABYFYMLMWGWEWHWIWJUUTUVIUVBUTUVJUVEUTUUTUVFUVBUVHUUTYKUVASZUVFUVBUTUUTY
      KLWKWLZSYMXHSUUSUVMUUTYKVAUVNUUTYEVAYKUUNYRYSUUSWMWNWOWPUUTYMUUTYEVAYMUUN
      YRYSUUSWQWNWRYRYSUUSWSYKLYMWTXACUVABYKUVFCHOUVFBUVFBUDHCDHCNZABDUVOWAFGXB
      XCXDXEXIXFUVIUVBUVDXGXIXJUVBUVCXKYOUVEXLXMXNXOXPXQXRXSXTYAYBDYEYIHIYCYD
      $.
  $}

  ${
    $d k A $.  $d k n M $.  $d k n N $.
    iundisjcnt.0 $e |- F/_ n B $.
    iundisjcnt.1 $e |- ( n = k -> A = B ) $.
    iundisjcnt.2 $e |- ( ph -> ( N = NN \/ N = ( 1 ..^ M ) ) ) $.
    $( Rewrite a countable union as a disjoint union.  (Contributed by Thierry
       Arnoux, 16-Feb-2017.) $)
    iundisjcnt $p |- ( ph -> U_ n e. N A =
      U_ n e. N ( A \ U_ k e. ( 1 ..^ n ) B ) ) $=
      ( cn wceq ciun c1 cfzo co wa simpr iuneq1d 3eqtr4a cv cdif nfcv iundisjfi
      iundisjf mpjaodan ) AGKLZEGBMZEGBDNEUAOPCMUBZMZLGNFOPZLZAUGQZEKBMEKUIMUHU
      JBCDEDBUCHIUEUMEGKBAUGRZSUMEGKUIUNSTAULQZEUKBMEUKUIMUHUJBCDEFHIUDUOEGUKBA
      ULRZSUOEGUKUIUPSTJUF $.
  $}

  ${
    $d k n M $.  $d k A $.  $d n N $.
    iundisj2cnt.0 $e |- F/_ n B $.
    iundisj2cnt.1 $e |- ( n = k -> A = B ) $.
    iundisj2cnt.2 $e |- ( ph -> ( N = NN \/ N = ( 1 ..^ M ) ) ) $.
    $( A countable disjoint union is disjoint.  Cf. ~ iundisj2 .  (Contributed
       by Thierry Arnoux, 16-Feb-2017.) $)
    iundisj2cnt $p |- ( ph -> Disj_ n e. N ( A \ U_ k e. ( 1 ..^ n ) B ) ) $=
      ( cn wceq c1 cfzo co wo cv wdisj disjeq1 mpbiri ciun cdif nfcv iundisj2fi
      iundisj2f jaoi syl ) AGKLZGMFNOZLZPEGBDMEQNOCUAUBZRZJUHULUJUHULEKUKRBCDED
      BUCHIUEEGKUKSTUJULEUIUKRBCDEFHIUDEGUIUKSTUFUG $.
  $}

  ${
    $( TODO shorten theorems using ~ iundisjcnt or ~ iundisj2cnt with ~ f1ocnt
       $)
    $d A f g $.
    $( Given a countable set ` A ` , number its elements by providing a
       one-to-one mapping either with ` NN ` or an integer range starting from
       1.  The domain of the function can then be used with ~ iundisjcnt or
       ~ iundisj2cnt .  (Contributed by Thierry Arnoux, 25-Jul-2020.) $)
    f1ocnt $p |- ( A ~<_ _om -> E. f ( f : dom f -1-1-onto-> A
      /\ ( dom f = NN \/ dom f = ( 1 ..^ ( ( # ` A ) + 1 ) ) ) ) ) $=
      ( vg com wbr wcel wf1o cn wceq c1 chash caddc co cfzo wo wa wex c0 adantl
      syl cdom cfn cv cdm cfv cfz f1o0 eqidd dm0 a1i f1oeq123d mpbiri cc0 fveq2
      id hash0 syl6eq oveq1d 0p1e1 oveq2d fzo0 eqtr4d olcd jca 0ex dmeq orbi12d
      eqeq1d anbi12d spcev wb f1odm f1oeq2 ibir cz simpl fzval3 eqtrd ex eximdv
      nnzd imp fz1f1o mpjaodan wn cen csdm isfinite notbii biimpi anim2i sylibr
      bren2 nnenom ensymi entr sylancl bren sylib f1oexbi orcd eximi pm2.61dan
      ) ADUAEZAUBFZBUCZUDZAXFGZXGHIZXGJAKUEZJLMZNMZIZOZPZBQZXDXEPZARIZXPXJHFZJX
      JUFMZAXFGZBQZPZXRXPXQXRRUDZARGZYDHIZYDXLIZOZPZXPXRYEYHXRYERRRGUGXRYDRARRR
      XRRUHYDRIXRUIUJZXRUOUKULXRYGYFXRYDRXLYJXRXLJJNMRXRXKJJNXRXKUMJLMJXRXJUMJL
      XRXJRKUEUMARKUNUPUQURUSUQUTJVAUQVBVCVDXOYIBRVEXFRIZXHYEXNYHYKXGYDAAXFRYKU
      OXFRVFZYKAUHUKYKXIYFXMYGYKXGYDHYLVHYKXGYDXLYLVHVGVIVJTSYCXPXQXSYBXPXSYAXO
      BXSYAXOXSYAPZXHXNYAXHXSYAXHYAXGXTIZXHYAVKXTAXFVLZXGXTAXFVMTVNSYMXMXIYMXGX
      TXLYAYNXSYOSYMXJVOFXTXLIYMXJXSYAVPWAJXJVQTVRVCVDVSVTWBSXEXRYCOXDABWCSWDXD
      XEWEZPZHAXFGZBQZXPYQAHCUCGCQZYSYQAHWFEZYTYQADWFEZDHWFEUUAYQXDADWGEZWEZPUU
      BYPUUDXDYPUUDXEUUCAWHWIWJWKADWMWLHDWNWOADHWPWQAHCWRWSAHCBWTWSYRXOBYRXHXNY
      RXHYRXIXHYRVKHAXFVLZXGHAXFVMTVNYRXIXMUUEXAVDXBTXC $.
  $}

  $( NN and integer ranges starting from 1 are countable.  (Contributed by
     Thierry Arnoux, 25-Jul-2020.) $)
  fz1nnct $p |- ( ( A = NN \/ A = ( 1 ..^ M ) ) -> A ~<_ _om ) $=
    ( cn wceq com cdom wbr c1 cfzo nnct breq1 mpbiri wcel fzofi fict ax-mp jaoi
    co cfn ) ACDZAEFGZAHBIRZDZTUACEFGJACEFKLUCUAUBEFGZUBSMUDHBNUBOPAUBEFKLQ $.

  $( NN and integer ranges starting from 1 are a transitive family of set.
     (Contributed by Thierry Arnoux, 25-Jul-2020.) $)
  fz1nntr $p |- ( ( ( A = NN \/ A = ( 1 ..^ M ) ) /\ N e. A )
    -> ( 1 ..^ N ) C_ A ) $=
    ( cn wceq wcel c1 cfzo co wss fzossnn sseq2 mpbiri adantr wi cuz cfv fzoss2
    elfzouz2 syl eleq2 imbi12d imp jaoian ) ADEZCAFZGCHIZAJZAGBHIZEZUEUHUFUEUHU
    GDJCKADUGLMNUJUFUHUJUFUHOCUIFZUGUIJZOUKBCPQFULCGBSCGBRTUJUFUKUHULAUICUAAUIU
    GLUBMUCUD $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The ` # ` (set size) function - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y A $.  $d y ph $.
    hashiunf.1 $e |- F/ x ph $.
    hashiunf.3 $e |- ( ph -> A e. Fin ) $.
    hashunif.4 $e |- ( ph -> A C_ Fin ) $.
    hashunif.5 $e |- ( ph -> Disj_ x e. A x ) $.
    $( The cardinality of a disjoint finite union of finite sets.  Cf.
       ~ hashuni .  (Contributed by Thierry Arnoux, 17-Feb-2017.) $)
    hashunif $p |- ( ph -> ( # ` U. A ) = sum_ x e. A ( # ` x ) ) $=
      ( vy cuni chash cfv cv ciun csu uniiun fveq2i cfn wdisj wceq a1i cbvdisjv
      sselda id sylib hashiun cbviunv fveq2d fveq2 cbvsumv 3eqtr4d syl5eq ) ACI
      ZJKBCBLZMZJKZCUMJKZBNZULUNJBCOPAHCHLZMZJKCURJKZHNZUOUQAHCUREACQURFUBABCUM
      RHCURRGBHCUMURUMURSUCZUAUDUEAUNUSJUNUSSABHCUMURVBUFTUGUQVASACUPUTBHUMURJU
      HUITUJUK $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The greatest common divisor operator - misc. add
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Numerator and denominator of the negative.  (Contributed by Thierry
     Arnoux, 27-Oct-2017.) $)
  numdenneg $p |- ( Q e. QQ -> ( ( numer ` -u Q ) = -u ( numer ` Q )
    /\ ( denom ` -u Q ) = ( denom ` Q ) ) ) $=
    ( cq wcel cneg cnumer cfv cz cdenom cn cgcd wceq cdiv qnegcl qnumcl znegcld
    co c1 wa qdencl eqtrd neggcd syl2anc qnumdencoprm qeqnumdivden negeqd nncnd
    nnzd zcnd nnne0d divnegd w3a qnumdenbi biimpa syl32anc ) ABCZADZBCZAEFZDZGC
    ZAHFZICZUSVAJPZQKZUPUSVALPZKZUPEFUSKUPHFVAKRZAMUOURANZOASZUOVCURVAJPZQUOURG
    CVAGCVCVJKVHUOVAVIUGURVAUAUBAUCTUOUPURVALPZDVEUOAVKAUDUEUOURVAUOURVHUHUOVAV
    IUFUOVAVIUIUJTUQUTVBUKVDVFRVGUPUSVAULUMUN $.

  $( Calculate the reduced form of a quotient using ` gcd ` .  This version
     extends ~ divnumden for the negative integers.  (Contributed by Thierry
     Arnoux, 25-Oct-2017.) $)
  divnumden2 $p |- ( ( A e. ZZ /\ B e. ZZ /\ -u B e. NN ) ->
       ( ( numer ` ( A / B ) ) = -u ( A / ( A gcd B ) )
      /\ ( denom ` ( A / B ) ) = -u ( B / ( A gcd B ) ) ) ) $=
    ( cz wcel cneg cdiv co cnumer cfv cgcd wceq cdenom cc0 wne zcnd syl 3adant2
    cq wa divneg2d cn zssq simp1 sseldi simp2 nnne0 3ad2ant3 neg0 neeq2i sylibr
    w3a neneqd 0cnd neg11ad mtbid neqned qdivcl syl3anc qnumcl cc gcdcld nn0cnd
    simpl negcld intnand gcdeq0 necon3abid 3adant3 mpbird negne0d divcld fveq2d
    wn wb numdenneg simpld gcdneg oveq2d divnegd div2negd eqtrd 3eqtr4d 3eqtr3d
    divnumden neg11d eqtr4d simprd eqtr3d jca ) ACDZBCDZBEZUADZUKZABFGZHIZAABJG
    ZFGZEZKWOLIZBWQFGEZKWNWPAWQEZFGZWSWNWPXCWNWPWNWORDZWPCDWNARDBRDBMNXDWNCRAUB
    WJWKWMUCZUDWNCRBUBWJWKWMUEZUDWNBMWNWLMEZKBMKZWNWLXGWNWLMNZWLXGNWMWJXIWKWLUF
    UGXGMWLUHUIUJULWNBMWNBXFOZWNUMUNUOZUPZABUQURZWOUSPOWNAXBWJWMAUTDWKWJWMSZAWJ
    WMVCOQZWNWQWNWQWNABXEXFVAVBZVDZWNWQXPWNWQMNZAMKZXHSZVMZWNXHXSXKVEWJWKXRYAVN
    WMWJWKSXTWQMABVFVGVHVIZVJZVKWNWOEZHIZAWLFGZHIZWPEZXCEZWNYDYFHWNABXOXJXLTZVL
    WNXDYEYHKZXMXDYKYDLIZWTKZWOVOZVPPWNAAWLJGZFGZWRYGYIWNYOWQAFWJWKYOWQKWMABVQV
    HZVRWJWMYGYPKZWKXNYRYFLIZWLYOFGZKZAWLWDZVPQWNYIAEXBFGWRWNAXBXOXQYCVSWNAWQXO
    XPYBVTWAWBWCWEWNAWQXOXPYBTWFWNWTBXBFGZXAWNYLYSWTUUCWNYDYFLYJVLWNXDYMXMXDYKY
    MYNWGPWNYTWLWQFGZYSUUCWNYOWQWLFYQVRWJWMUUAWKXNYRUUAUUBWGQWNXAUUCUUDWNBWQXJX
    PYBTZWNBWQXJXPYBVSWHWBWCUUEWFWI $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Integers
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d w x y $.  $d x A $.  $d w ph $.  $d x ch $.  $d x ps $.  $d x ta $.
    $d x th $.
    nnindf.x $e |- F/ y ph $.
    $( Substitutions. $)
    nnindf.1 $e |- ( x = 1 -> ( ph <-> ps ) ) $.
    nnindf.2 $e |- ( x = y -> ( ph <-> ch ) ) $.
    nnindf.3 $e |- ( x = ( y + 1 ) -> ( ph <-> th ) ) $.
    nnindf.4 $e |- ( x = A -> ( ph <-> ta ) ) $.
    $( Basis. $)
    nnindf.5 $e |- ps $.
    $( Induction step. $)
    nnindf.6 $e |- ( y e. NN -> ( ch -> th ) ) $.
    $( Principle of Mathematical Induction, using a bound-variable hypothesis
       instead of distinct variables.  (Contributed by Thierry Arnoux,
       6-May-2018.) $)
    nnindf $p |- ( A e. NN -> ta ) $=
      ( vw cn wcel c1 elrab crab wa caddc wral wss 1nn mpbir2an elrabi peano2nn
      cv a1d anim12d 3imtr4g mpcom rgen nfcv nfrab nfv nfel2 wceq oveq1 cbvralf
      co eleq1d mpbi peano5nni mp2an sseli sylib simprd ) HQRZVKEVKHAFQUAZRVKEU
      BQVLHSVLRZPUJZSUCVCZVLRZPVLUDZQVLUEVMSQRBUFNABFSQJTUGGUJZSUCVCZVLRZGVLUDV
      QVTGVLVRQRZVRVLRZVTAFVRQUHWAWACUBVSQRZDUBWBVTWAWAWCCDWAWCWAVRUIUKOULACFVR
      QKTADFVSQLTUMUNUOVTVPGPVLAGFQIGQUPUQZPVLUPVTPURGVOVLWDUSVRVNUTVSVOVLVRVNS
      UCVAVDVBVEPVLVFVGVHAEFHQMTVIVJ $.
  $}

  ${
    $d x A $.  $d x y ph $.  $d y ps $.  $d x ch $.  $d x et $.  $d x th $.
    $d x ta $.
    nnindd.1 $e |- ( x = 1 -> ( ps <-> ch ) ) $.
    nnindd.2 $e |- ( x = y -> ( ps <-> th ) ) $.
    nnindd.3 $e |- ( x = ( y + 1 ) -> ( ps <-> ta ) ) $.
    nnindd.4 $e |- ( x = A -> ( ps <-> et ) ) $.
    nnindd.5 $e |- ( ph -> ch ) $.
    nnindd.6 $e |- ( ( ( ph /\ y e. NN ) /\ th ) -> ta ) $.
    $( Principle of Mathematical Induction (inference schema) on integers, a
       deduction version.  (Contributed by Thierry Arnoux, 19-Jul-2020.) $)
    nnindd $p |- ( ( ph /\ A e. NN ) -> et ) $=
      ( cn wcel wi wceq imbi2d cv c1 caddc co wa ex expcom a2d nnind impcom ) I
      PQAFABRACRADRAERAFRGHIGUAZUBSBCAJTUKHUAZSBDAKTUKULUBUCUDSBEALTUKISBFAMTNU
      LPQZADEAUMDERAUMUEDEOUFUGUHUIUJ $.
  $}

  ${
    $d k m n ph $.  $d k m ps $.  $d k n ta $.  $d k n th $.  $d m n ch $.
    nn0min.0 $e |- ( n = 0 -> ( ps <-> ch ) ) $.
    nn0min.1 $e |- ( n = m -> ( ps <-> th ) ) $.
    nn0min.2 $e |- ( n = ( m + 1 ) -> ( ps <-> ta ) ) $.
    nn0min.3 $e |- ( ph -> -. ch ) $.
    nn0min.4 $e |- ( ph -> E. n e. NN ps ) $.
    $( Extracting the minimum positive integer for which a property ` ch ` does
       not hold.  This uses substitutions similar to ~ nn0ind .  (Contributed
       by Thierry Arnoux, 6-May-2018.) $)
    nn0min $p |- ( ph -> E. m e. NN0 ( -. th /\ ta ) ) $=
      ( vk wn cn0 wi cn c1 wceq notbid wa wral wrex adantr wsb wsbc cv nfv nfan
      nfra1 nfim dfsbcq2 imbi2d sbhypf caddc co sbequ12r wcel 0nn0 sbie syl5bbr
      cc0 wb oveq1 0p1e1 syl6eq eleq1 mpbiri sbcieg 3syl sbceq1d bitr3d imbi12d
      1nn rspcv ax-mp mpan9 cbvralsv syl syl5bi adantld a2d nnindf rgen r19.21v
      nnnn0 mpbi ralnex sylib pm2.65da imnan ralbii sylnib dfrex2 sylibr ) ADNZ
      EUAZNZFOUBZNWQFOUCAWPENZPZFOUBZWSAXBBGQUCZAXCXBLUDAXBUAZBNZGQUBZXCNXDXEPZ
      GQUBXDXFPXGGQXDBGMUEZNZPXDBGRUFZNZPXDWPPXDWTPXGMFGUGZXDXIFAXBFAFUHXAFOUJU
      IXIFUHUKMUGZRSZXIXKXDXNXHXJBGMRULTUMXMFUGZSZXIWPXDXPXHDBDGMXODGUHZIUNTUMX
      MXORUOUPZSZXIWTXDXSXHEBEGMXREGUHJUNTUMXMXLSZXIXEXDXTXHBBMGUQTUMACNZXBXKKV
      BOURXBYAXKPZPUSXAYBFVBOXOVBSZWPYAWTXKYCDCDBGFUEYCCBDGFXQIUTBCGFVBCGUHHUNV
      ATYCEXJYCBGXRUFZEXJYCXRRSZXRQURZYDEVCYCXRVBRUOUPRXOVBRUOVDVEVFZYEYFRQURVN
      XRRQVGVHBEGXRQJVIVJYCBGXRRYGVKVLTVMVOVPVQXOQURZXDWPWTYHXBXAAXBXAFMUEZMOUB
      ZYHXAXAFMOVRYHXOOURYJXAPXOWFYIXAMXOOXAMFUQVOVSVTWAWBWCWDXDXEGQWEWGBGQWHWI
      WJXAWRFOWPEWKWLWMWQFOWNWO $.
  $}

  ${
    ltesubnnd.1 $e |- ( ph -> M e. ZZ ) $.
    ltesubnnd.2 $e |- ( ph -> N e. NN ) $.
    $( Subtracting an integer number from another number decreases it.  See
       ~ ltsubrpd .  (Contributed by Thierry Arnoux, 18-Apr-2017.) $)
    ltesubnnd $p |- ( ph -> ( ( M + 1 ) - N ) <_ M ) $=
      ( c1 caddc co cmin cle zcnd 1cnd nncnd addsubd clt wbr zred nnrpd cz wcel
      ltsubrpd wb nnzd zsubcld zltp1le syl2anc mpbid eqbrtrd ) ABFGHCIHBCIHZFGH
      ZBJABFCABDKALACEMNAUIBOPZUJBJPZABCABDQACERUAAUISTBSTUKULUBABCDACEUCUDDUIB
      UEUFUGUH $.
  $}

  ${
    $d A k $.  $d C k $.  $d K k $.  $d ph k $.
    fprodeq02.1 $e |- ( k = K -> B = C ) $.
    fprodeq02.a $e |- ( ph -> A e. Fin ) $.
    fprodeq02.b $e |- ( ( ph /\ k e. A ) -> B e. CC ) $.
    fprodeq02.k $e |- ( ph -> K e. A ) $.
    fprodeq02.c $e |- ( ph -> C = 0 ) $.
    $( If one of the factors is zero the product is zero.  (Contributed by
       Thierry Arnoux, 11-Dec-2021.) $)
    fprodeq02 $p |- ( ph -> prod_ k e. A B = 0 ) $=
      ( cprod csn cmul co cc0 wceq wcel cc cfn cin c0 disjdif a1i cun wss snssd
      cdif undif sylib eqcomd fprodsplit 0cnd eqeltrd prodsn eqtrd oveq1d diffi
      syl2anc syl cv difssd sselda syldan fprodcl mul02d 3eqtrd ) ABCELFMZCELZB
      VHUHZCELZNOPVKNOPAVHVJCBEVHVJUAUBQAVHBUCUDAVHVJUEZBAVHBUFVLBQAFBJUGVHBUIU
      JUKHIULAVIPVKNAVIDPAFBRDSRVIDQJADPSKAUMUNCDEFBGUOUSKUPUQAVKAVJCEABTRVJTRH
      BVHURUTAEVAZVJRVMBRCSRAVJBVMABVHVBVCIVDVEVFVG $.
  $}

  $( The range of the indicator function is a subset of ` RR ` .  (Contributed
     by Thierry Arnoux, 14-Aug-2017.) $)
  pr01ssre $p |- { 0 , 1 } C_ RR $=
    ( cc0 cr wcel c1 cpr wss 0re 1re prssi mp2an ) ABCDBCADEBFGHADBIJ $.

  ${
    $d A k l $.  $d B l $.  $d C k $.  $d k l ph $.
    fprodex01.1 $e |- ( k = l -> B = C ) $.
    fprodex01.a $e |- ( ph -> A e. Fin ) $.
    fprodex01.b $e |- ( ( ph /\ k e. A ) -> B e. { 0 , 1 } ) $.
    $( A product of factors equal to zero or one is zero exactly when one of
       the factors is zero.  (Contributed by Thierry Arnoux, 11-Dec-2021.) $)
    fprodex01 $p |- ( ph -> prod_ k e. A B = if ( A. l e. A C = 1 , 1 , 0 ) )
      $=
      ( c1 wceq wral cc0 cprod wa simpr wcel adantr cc adantlr cv eqeq1d sylibr
      cif cbvralv prodeq2d cfn cuz cfv wss prod1 olcs syl eqtr2d nfv nfra1 nfan
      wn nfn ad2antrr cpr pr01ssre ax-resscn sstri sseldi simplr fprodeq02 wrex
      cr rexnal biimpri adantl wi wo ralrimiva eleq1d sylib r19.21bi c0ex elpr2
      1ex orcomd ord reximdva mpd r19.29af2 eqcomd ifeqda ) ADJKZFBLZJMUDBCENZA
      WJJMWKAWJOZWKBJENZJWLBCJEWLWJCJKZEBLAWJPWNWIEFBEUAZFUAZKZCDJGUBUEUCUFAWMJ
      KZWJABUGQZWRHBMUHUIUJWSWRBEMUKULUMRUNAWJURZOZWKMXADMKZWKMKZFBAWTFAFUOWJFW
      IFBUPUSUQXCFUOXAWPBQZOZXBOBCDEWPGXAWSXDXBAWSWTHRUTXEWOBQZCSQZXBXAXFXGXDAX
      FXGWTAXFOMJVAZSCXHVISVBVCVDIVETTTXAXDXBVFXEXBPVGXAWIURZFBVHZXBFBVHZWTXJAX
      JWTWIFBVJVKVLAXJXKVMWTAXIXBFBAXDOZWIXBXLXBWIXLDXHQZXBWIVNAXMFBACXHQZEBLXM
      FBLAXNEBIVOXNXMEFBWQCDXHGVPUEVQVRDMJVSWAVTVQWBWCWDRWEWFWGWHWG $.
  $}

  ${
    $d A k $.  $d B k $.  $d C k $.  $d E k $.  $d F k $.  $d G k $.  $d V k $.
    $d W k $.  $d X k $.  $d ph k $.
    prodpr.1 $e |- ( k = A -> D = E ) $.
    prodpr.2 $e |- ( k = B -> D = F ) $.
    prodpr.a $e |- ( ph -> A e. V ) $.
    prodpr.b $e |- ( ph -> B e. W ) $.
    prodpr.e $e |- ( ph -> E e. CC ) $.
    prodpr.f $e |- ( ph -> F e. CC ) $.
    prodpr.3 $e |- ( ph -> A =/= B ) $.
    $( A product over a pair is the product of the elements.  (Contributed by
       Thierry Arnoux, 1-Jan-2022.) $)
    prodpr $p |- ( ph -> prod_ k e. { A , B } D = ( E x. F ) ) $=
      ( cprod wceq wcel cc cpr csn cmul co wne cin c0 disjsn2 syl cun df-pr a1i
      cfn prfi cv wo vex elpr wa adantl adantr eqeltrd jaodan fprodsplit prodsn
      sylan2b syl2anc oveq12d eqtrd ) ABCUAZDEQBUBZDEQZCUBZDEQZUCUDFGUCUDAVKVMD
      VJEABCUEVKVMUFUGRPBCUHUIVJVKVMUJRABCUKULVJUMSABCUNULEUOZVJSAVOBRZVOCRZUPD
      TSZVOBCEUQURAVPVRVQAVPUSDFTVPDFRAJUTAFTSZVPNVAVBAVQUSDGTVQDGRAKUTAGTSZVQO
      VAVBVCVFVDAVLFVNGUCABHSVSVLFRLNDFEBHJVEVGACISVTVNGRMODGECIKVEVGVHVI $.

    prodtp.1 $e |- ( k = C -> D = G ) $.
    prodtp.c $e |- ( ph -> C e. X ) $.
    prodtp.g $e |- ( ph -> G e. CC ) $.
    prodtp.2 $e |- ( ph -> A =/= C ) $.
    prodtp.3 $e |- ( ph -> B =/= C ) $.
    $( A product over a triple is the product of the elements.  (Contributed by
       Thierry Arnoux, 1-Jan-2022.) $)
    prodtp $p |- ( ph -> prod_ k e. { A , B , C } D = ( ( E x. F ) x. G ) ) $=
      ( ctp cprod cpr csn cmul co wne cin c0 disjprsn syl2anc cun df-tp a1i cfn
      wceq wcel tpfi cv w3o cc vex eltp adantl adantr eqeltrd adantlr mpjao3dan
      wa simpr sylan2b fprodsplit prodpr prodsn oveq12d eqtrd ) ABCDUEZEFUFBCUG
      ZEFUFZDUHZEFUFZUIUJGHUIUJZIUIUJAWBWDEWAFABDUKCDUKWBWDULUMUTUCUDBCDUNUOWAW
      BWDUPUTABCDUQURWAUSVAABCDVBURFVCZWAVAAWGBUTZWGCUTZWGDUTZVDZEVEVAZWGBCDFVF
      VGAWKVMWHWLWIWJAWHWLWKAWHVMEGVEWHEGUTAMVHAGVEVAWHQVIVJVKAWIWLWKAWIVMEHVEW
      IEHUTANVHAHVEVAWIRVIVJVKAWJWLWKAWJVMEIVEWJEIUTATVHAIVEVAZWJUBVIVJVKAWKVNV
      LVOVPAWCWFWEIUIABCEFGHJKMNOPQRSVQADLVAWMWEIUTUAUBEIFDLTVRUOVSVT $.
  $}

  ${
    $d A k $.  $d D k $.  $d K k $.  $d k ph $.
    fsumub.1 $e |- ( k = K -> B = D ) $.
    fsumub.2 $e |- ( ph -> A e. Fin ) $.
    fsumub.3 $e |- ( ph -> sum_ k e. A B = C ) $.
    fsumub.4 $e |- ( ( ph /\ k e. A ) -> B e. RR+ ) $.
    fsumub.k $e |- ( ph -> K e. A ) $.
    $( An upper bound for a term of a positive finite sum.  (Contributed by
       Thierry Arnoux, 27-Dec-2021.) $)
    fsumub $p |- ( ph -> D <_ C ) $=
      ( csu cle cv wcel wa rpred rpge0d fsumge1 breqtrd ) AEBCFMDNABCEFGIAFOBPQ
      ZCKRUBCKSHLTJUA $.
  $}

  ${
    $d A f k l x y z $.  $d B f k l y z $.  $d C f x y z $.
    $d ph f k l x y z $.
    fsumiunle.1 $e |- ( ph -> A e. Fin ) $.
    fsumiunle.2 $e |- ( ( ph /\ x e. A ) -> B e. Fin ) $.
    fsumiunle.3 $e |- ( ( ( ph /\ x e. A ) /\ k e. B ) -> C e. RR ) $.
    fsumiunle.4 $e |- ( ( ( ph /\ x e. A ) /\ k e. B ) -> 0 <_ C ) $.
    $( Upper bound for a sum of nonnegative terms over an indexed union.  The
       inequality may be strict if the indexed union is non-disjoint, since in
       the right hand side, a summand may be counted several times.
       (Contributed by Thierry Arnoux, 1-Jan-2021.) $)
    fsumiunle $p |- ( ph ->
        sum_ k e. U_ x e. A B C <_ sum_ x e. A sum_ k e. B C ) $=
      ( vy cfv wceq wa csu cle cfn nfcv wcel syl2anc vf vl vz ciun cv wf1o c2nd
      crn wral csn cxp wss wbr wf1 wex aciunf1 f1f1orn anim1i wf f1f frn adantr
      syl jca eximi csb csbeq1a nfcsb1v cbvsum ccnv snfi xpfi sylancr ralrimiva
      csbeq1 iunfi simprr ssfid simprl adantrlr nfv nfiu1 nfrn nff1o nfral nfan
      f1ocnv nfss simpr fveq2d simplr simp-4r simpld simprd ad2antrr id eqeq12d
      fveq2 rspcva eqtr3d f1ocnvfv1 3eqtr2rd wrex f1ofn simpllr fvelrnb r19.29a
      wfn biimpa sselda eliun sylib r19.29af cc nfel nfim eleq1w anbi2d imbi12d
      wi eleq1d adantllr recnd biimpi adantl chvar adantlr fsumf1o syl5eq xp2nd
      cr eqcomd nfel1 rspc imp cc0 c1st xp1st elsni vex simplll sylan2 fsumless
      nfbr breq2d eqbrtrrd a1i sumeq2sdv cop op2ndd csbeq1d anasss fsum2d eqtrd
      breqtrrd exlimddv ) ABCDUDZUAUEZUHZUURUFZUBUEZUURLZUGLZUVAMZUBUUQUIZNZUUS
      BCBUEZUJZDUKZUDZULZNZUUQEFOZCDEFOZBOZPUMUAAUUQUVJUURUNZUVENZUAUOUVLUAUOAC
      DUABUBQQGHUPUVQUVLUAUVQUVFUVKUVPUUTUVEUUQUVJUURUQURUVPUVKUVEUVPUUQUVJUURU
      SUVKUUQUVJUURUTUUQUVJUURVAVCVBVDVEVCAUVLNZUVMUVJFUCUEZUGLZEVFZUCOZUVOPUVR
      UUSUWAUCOZUVMUWBPUVRUVMUWCUVRUVMUUQFKUEZEVFZKOUWCUUQEUWEFKFUWDEVGZKUUQRFU
      UQRKERZFUWDEVHZVIUVRUUQUWEUUSUWAKUCUURVJZUVTFUWDUVTEVOUVRUVJUUSAUVJQSZUVL
      ACQSUVIQSZBCUIUWJGAUWKBCAUVGCSZNZUVHQSDQSUWKUVGVKHUVHDVLVMVNBCUVIVPTVBZAU
      VFUVKVQZVRAUUTUVKUUSUUQUWIUFZUVEAUUTUVKNNUUTUWPAUUTUVKVSUUQUUSUURWGVCVTUV
      RUVSUUSSZNZUVSUVISZUVSUWILZUVTMZBCUVRUWQBAUVLBABWAZUVFUVKBUUTUVEBBUUQUUSU
      URBUURRZBCDWBZBUURUXCWCWDUVDBUBUUQUXDUVDBWAWEWFBUUSUVJBUUSRBCUVIWBZWHWFWF
      UWQBWAWFUWRUWLNUWSNZFUEZUURLZUVSMZUXAFUUQUXFUXGUUQSZNZUXINZUVTUXGUXHUWILZ
      UWTUXLUXHUGLZUVTUXGUXLUXHUVSUGUXKUXIWIZWJUXLUXJUVEUXNUXGMZUXFUXJUXIWKZUXF
      UVEUXJUXIUXFUUTUVEUXFUVFUVKAUVLUWQUWLUWSWLWMZWNWOUVDUXPUBUXGUUQUVAUXGMZUV
      CUXNUVAUXGUXSUVBUXHUGUVAUXGUURWRWJUXSWPWQWSTWTUXLUUTUXJUXMUXGMUXFUUTUXJUX
      IUXFUUTUVEUXRWMZWOUXQUUQUUSUXGUURXATUXLUXHUVSUWIUXOWJXBUXFUURUUQXHZUWQUXI
      FUUQXCZUXFUUTUYAUXTUUQUUSUURXDVCUVRUWQUWLUWSXEUYAUWQUYBFUUQUVSUURXFXITXGU
      WRUVSUVJSZUWSBCXCZUVRUUSUVJUVSUWOXJBUVSCUVIXKZXLXMAUWDUUQSZUWEXNSZUVLAUXJ
      NZEXNSZXTAUYFNZUYGXTFKUYJUYGFUYJFWAFUWEXNUWHFXNRXOXPUXGUWDMZUYHUYJUYIUYGU
      YKUXJUYFAFKUUQXQXRUYKEUWEXNUWFYAZXSUYHUXGDSZUYIBCAUXJBUXBBUXGUUQBUXGRUXDX
      OWFUYHUWLNUYMNEAUWLUYMEYKSZUXJIYBYCUXJUYMBCXCZAUXJUYOBUXGCDXKYDYEXMYFYGYH
      YIYLUVRUVJUWAUUSUCUWNAUYCUWAYKSZUVLAUYCNZUWSUYPBCAUYCBUXBBUVSUVJBUVSRUXEX
      OWFZUYQUWLNZUWSNZUVTDSZUYNFDUIZUYPUWSVUAUYSUVSUVHDYJZYEZUYSVUBUWSAUWLVUBU
      YCUWMUYNFDIVNYGVBVUAVUBUYPUYNUYPFUVTDFUWAYKFUVTEVHZYMUXGUVTMZEUWAYKFUVTEV
      GZYAYNYOTUYCUYDAUYCUYDUYEYDYEZXMYGAUYCYPUWAPUMZUVLUYQUWSVUIBCUYRUYTVUAYPE
      PUMZFDUIZVUIVUDUWSUYSUVSYQLZUVGMZVUANZVUKUWSVUMVUAUWSVULUVHSVUMUVSUVHDYRV
      ULUVGYSVCVUCVDUYSVUNNAUWLVUKAUYCUWLVUNUUAUYQUWLVUNWKUWMVUJFDJVNTUUBVUAVUK
      VUIVUJVUIFUVTDFYPUWAPFYPRFPRVUEUUDVUFEUWAYPPVUGUUEYNYOTVUHXMYGUWOUUCUUFAU
      VOUWBMUVLAUVOCDUWEKOZBOUWBACUVNVUOBUVNVUOMADEUWEFKUWFKDRFDRUWGUWHVIUUGUUH
      AUCCDUWEUWABKUVSUVGUWDUUIMZUWEUWAVUPFUWDUVTEVUPUVTUWDUVGUWDUVSBYTKYTUUJYL
      UUKYLGHAUWLUWDDSZUYGUWMUYMNZUYIXTUWMVUQNZUYGXTFKVUSUYGFVUSFWAFUWEXNUWHYMX
      PUYKVURVUSUYIUYGUYKUYMVUQUWMFKDXQXRUYLXSVUREIYCYFUULUUMUUNVBUUOUUP $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Decimal numbers
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    dfdec100.a $e |- A e. NN0 $.
    dfdec100.b $e |- B e. NN0 $.
    dfdec100.c $e |- C e. RR $.
    $( Split the hundreds from a decimal value.  (Contributed by Thierry
       Arnoux, 25-Dec-2021.) $)
    dfdec100 $p |- ; ; A B C = ( ( ; ; 1 0 0 x. A ) + ; B C ) $=
      ( c1 cc0 cmul co caddc dfdec10 oveq2i cc 10nn0 dec0u nn0cni mulcli oveq1i
      cdc eqeltrri recni addassi adddii mulassi eqtr3i 3eqtri eqtr2i 3eqtr2ri )
      GHTZHTZAIJZBCTZKJULUJBIJZCKJZKJULUNKJZCKJZABTZCTZUMUOULKBCLMULUNCUKAUJUJI
      JZUKNUJOPZUJUJUJOQZVBRUAADQZRUJBVBBEQZRCFUBUCUSUJURIJZCKJUQURCLVEUPCKVEUJ
      UJAIJZBKJZIJUJVFIJZUNKJUPURVGUJIABLMUJVFBVBUJAVBVCRVDUDVHULUNKUTAIJVHULUJ
      UJAVBVBVCUEUTUKAIVASUFSUGSUHUI $.
  $}

$( End $[ set-mbox-ta-basics.mm $] $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Decimal expansion
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Define a decimal expansion constructor.  The decimal expansions built with
  this constructor are not meant to be used alone outside of this chapter.
  Rather, they are meant to be used exclusively as part of a decimal number
  with a decimal fraction, for example ` ( 3 . _ 1 _ 4 _ 1 _ 5 9 ) ` .

  That decimal point operator is defined in the next section.  The bulk of
  these constructions have originally been proposed by David A. Wheeler on
  12-May-2015, and discussed with Mario Carneiro in this thread:
  ~ https://groups.google.com/g/metamath/c/2AW7T3d2YiQ .

$)

  $c _ $. $( Decimal fraction indicator for digits after decimal point $)

  $( Constant used for decimal fraction constructor.  See ~ df-dp2 . $)
  cdp2 $a class _ A B $.

  $( Define the "decimal fraction constructor", which is used to build up
     "decimal fractions" in base 10.  This is intentionally similar to
     ~ df-dec .  (Contributed by David A. Wheeler, 15-May-2015.)  (Revised by
     AV, 9-Sep-2021.) $)
  df-dp2 $a |- _ A B = ( A + ( B / ; 1 0 ) ) $.

  $( Obsolete version of ~ df-dp2 as of 9-Sep-2021.  (Contributed by David A.
     Wheeler, 15-May-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  dfdp2OLD $p |- _ A B = ( A + ( B / 10 ) ) $=
    ( cdp2 c1 cc0 cdc cdiv co caddc c10 df-dp2 dec10OLD eqcomi oveq2i eqtri ) A
    BCABDEFZGHZIHABJGHZIHABKQRAIPJBGJPLMNNO $.

  $( Equality theorem for the decimal expansion constructor.  (Contributed by
     David A. Wheeler, 15-May-2015.) $)
  dp2eq1 $p |- ( A = B -> _ A C = _ B C ) $=
    ( wceq c1 cc0 cdc cdiv co caddc cdp2 oveq1 df-dp2 3eqtr4g ) ABDACEFGHIZJIBO
    JIACKBCKABOJLACMBCMN $.

  $( Equality theorem for the decimal expansion constructor.  (Contributed by
     David A. Wheeler, 15-May-2015.) $)
  dp2eq2 $p |- ( A = B -> _ C A = _ C B ) $=
    ( wceq c1 cc0 cdc cdiv co caddc cdp2 oveq1 oveq2d df-dp2 3eqtr4g ) ABDZCAEF
    GZHIZJICBQHIZJICAKCBKPRSCJABQHLMCANCBNO $.

  ${
    dp2eq1i.1 $e |- A = B $.
    $( Equality theorem for the decimal expansion constructor.  (Contributed by
       David A. Wheeler, 15-May-2015.) $)
    dp2eq1i $p |- _ A C = _ B C $=
      ( wceq cdp2 dp2eq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality theorem for the decimal expansion constructor.  (Contributed by
       David A. Wheeler, 15-May-2015.) $)
    dp2eq2i $p |- _ C A = _ C B $=
      ( wceq cdp2 dp2eq2 ax-mp ) ABECAFCBFEDABCGH $.

    dp2eq12i.2 $e |- C = D $.
    $( Equality theorem for the decimal expansion constructor.  (Contributed by
       David A. Wheeler, 15-May-2015.) $)
    dp2eq12i $p |- _ A C = _ B D $=
      ( cdp2 dp2eq1i dp2eq2i eqtri ) ACGBCGBDGABCEHCDBFIJ $.
  $}

  ${
    dp20u.1 $e |- A e. NN0 $.
    $( Add a zero in the tenths (lower) place.  (Contributed by Thierry Arnoux,
       16-Dec-2021.) $)
    dp20u $p |- _ A 0 = A $=
      ( cc0 cdp2 c1 cdc cdiv co caddc df-dp2 cc wcel wne 10nn0 nn0rei recni 0re
      wceq 10pos gtneii div0 mp2an oveq2i nn0cni addid1i 3eqtri ) ACDACECFZGHZI
      HACIHAACJUHCAIUGKLUGCMUHCRUGUGNOPCUGQSTUGUAUBUCAABUDUEUF $.
  $}

  ${
    dp20h.1 $e |- A e. RR+ $.
    $( Add a zero in the unit places.  (Contributed by Thierry Arnoux,
       16-Dec-2021.) $)
    dp20h $p |- _ 0 A = ( A / ; 1 0 ) $=
      ( cc0 cdp2 c1 cdc cdiv co caddc df-dp2 crp wcel cc ax-mp 10nn0 nn0cni 0re
      rpcn 10pos gtneii divcli addid2i eqtri ) CADCAECFZGHZIHUECAJUEAUDAKLAMLBA
      RNUDOPCUDQSTUAUBUC $.
  $}

  $( Closure for the decimal fraction constructor if both values are reals.
     (Contributed by David A. Wheeler, 15-May-2015.) $)
  dp2cl $p |- ( ( A e. RR /\ B e. RR ) -> _ A B e. RR ) $=
    ( cr wcel wa cdp2 c1 cc0 cdc cdiv co caddc df-dp2 wne 10re gt0ne0ii redivcl
    10pos mp3an23 readdcl sylan2 syl5eqel ) ACDZBCDZEABFABGHIZJKZLKZCABMUDUCUFC
    DZUGCDUDUECDUEHNUHOUEORPBUEQSAUFTUAUB $.

  ${
    dp2clq.a $e |- A e. NN0 $.
    dp2clq.b $e |- B e. QQ $.
    $( Closure for a decimal fraction.  (Contributed by Thierry Arnoux,
       16-Dec-2021.) $)
    dp2clq $p |- _ A B e. QQ $=
      ( cdp2 c1 cc0 cdc cdiv co caddc cq df-dp2 cn0 nn0ssq sselii wne 10nn0 0re
      wcel 10pos gtneii qdivcl mp3an qaddcl mp2an eqeltri ) ABEABFGHZIJZKJZLABM
      ALTUILTZUJLTNLAOCPBLTUHLTUHGQUKDNLUHORPGUHSUAUBBUHUCUDAUIUEUFUG $.
  $}

  ${
    rpdp2cl.a $e |- A e. NN0 $.
    rpdp2cl.b $e |- B e. RR+ $.
    $( Closure for a decimal fraction in the positive real numbers.
       (Contributed by Thierry Arnoux, 16-Dec-2021.) $)
    rpdp2cl $p |- _ A B e. RR+ $=
      ( cdp2 c1 cc0 cdc cdiv co caddc crp wcel cr clt wbr ax-mp mp2an wa pm3.2i
      df-dp2 nn0rei rpssre cn 10nn nnrp rpdivcl sselii readdcl nn0ge0i addgegt0
      cle rpgt0 elrp mpbir2an eqeltri ) ABEABFGHZIJZKJZLABUAUSLMUSNMZGUSOPZANMZ
      URNMZUTACUBZLNURUCBLMUQLMZURLMZDUQUDMVEUEUQUFQBUQUGRZUHZAURUIRVBVCSGAULPZ
      GUROPZSVAVBVCVDVHTVIVJACUJVFVJVGURUMQTAURUKRUSUNUOUP $.
  $}

  ${
    rpdp2cl2.a $e |- A e. NN $.
    $( Closure for a decimal fraction with no decimal expansion in the positive
       real numbers.  (Contributed by Thierry Arnoux, 25-Dec-2021.) $)
    rpdp2cl2 $p |- _ A 0 e. RR+ $=
      ( cc0 cdp2 crp nnnn0i dp20u cn wcel nnrp ax-mp eqeltri ) ACDAEAABFGAHIAEI
      BAJKL $.
  $}

  ${
    dp2lt10.a $e |- A e. NN0 $.
    dp2lt10.b $e |- B e. RR+ $.
    dp2lt10.1 $e |- A < ; 1 0 $.
    dp2lt10.2 $e |- B < ; 1 0 $.
    $( Decimal fraction builds real numbers less than 10.  (Contributed by
       Thierry Arnoux, 16-Dec-2021.) $)
    dp2lt10 $p |- _ A B < ; 1 0 $=
      ( c1 cc0 co caddc clt c9 wbr 9p1e10 cz wcel wb mp2an cr wa cdc df-dp2 cle
      cdp2 cdiv breqtrri nn0zi 9nn0 zleltp1 mpbir crp rpssre sselii 10re elrpii
      divlt1lt wi nn0rei 0re gtneii redivcli pm3.2i 9re leltadd breqtri eqbrtri
      10pos 1re ) ABUDABGHUAZUEIZJIZVIKABUBVKLGJIZVIKALUCMZVJGKMZVKVLKMZVMAVLKM
      ZAVIVLKENUFAOPLOPVMVPQACUGLUHUGALUIRUJVNBVIKMZFBSPVIUKPVNVQQUKSBULDUMZVIU
      NVGUOBVIUPRUJASPZVJSPZTLSPZGSPZTVMVNTVOUQVSVTACURBVIVRUNHVIUSVGUTVAVBWAWB
      VCVHVBAVJLGVDRRNVEVF $.
  $}

  ${
    dp2lt.a $e |- A e. NN0 $.
    dp2lt.b $e |- B e. RR+ $.
    ${
      dp2lt.c $e |- C e. RR+ $.
      dp2lt.l $e |- B < C $.
      $( Comparing two decimal fractions (equal unit places).  (Contributed by
         Thierry Arnoux, 16-Dec-2021.) $)
      dp2lt $p |- _ A B < _ A C $=
        ( cc0 cdiv co caddc cdp2 clt cr wcel wbr crp rpssre 10re mp3an c1 10pos
        cdc w3a wne sselii 0re gtneii redivcl nn0rei 3pm3.2i pm3.2i ltdiv1 mpbi
        wa wb axltadd imp mp2an df-dp2 3brtr4i ) ABUAHUCZIJZKJZACVBIJZKJZABLACL
        MVCNOZVENOZANOZUDZVCVEMPZVDVFMPZVGVHVIBNOZVBNOZVBHUEZVGQNBREUFZSHVBUGUB
        UHZBVBUITCNOZVNVOVHQNCRFUFZSVQCVBUITADUJUKBCMPZVKGVMVRVNHVBMPZUOVTVKUPV
        PVSVNWASUBULBCVBUMTUNVJVKVLVCVEAUQURUSABUTACUTVA $.
    $}

    ${
      dp2ltsuc.1 $e |- B < ; 1 0 $.
      dp2ltsuc.2 $e |- ( A + 1 ) = C $.
      $( Comparing a decimal fraction with the next integer.  (Contributed by
         Thierry Arnoux, 25-Dec-2021.) $)
      dp2ltsuc $p |- _ A B < C $=
        ( c1 cc0 cdc cdiv co caddc cdp2 clt wbr crp wcel 10re mpbi cr rpre 10nn
        ax-mp 10pos ltdiv1ii recni nnne0i dividi breqtri redivcli nn0rei df-dp2
        1re ltadd2i eqcomi 3brtr4i ) ABHIJZKLZMLZAHMLZABNCOUSHOPUTVAOPUSURURKLZ
        HOBUROPUSVBOPFBURURBQRBUAREBUBUDZSSUEUFTURURSUGURUCUHZUIUJUSHABURVCSVDU
        KUNADULUOTABUMVACGUPUQ $.
    $}

    ${
      dp2ltc.c $e |- C e. NN0 $.
      dp2ltc.d $e |- D e. RR+ $.
      dp2ltc.s $e |- B < ; 1 0 $.
      dp2ltc.l $e |- A < C $.
      $( Comparing two decimal expansions (unequal higher places).
         (Contributed by Thierry Arnoux, 16-Dec-2021.) $)
      dp2ltc $p |- _ A B < _ C D $=
        ( c1 co caddc clt wbr cr wcel crp 10re mp2an cc0 cdc cdiv cle wb rpssre
        cdp2 sselii 10pos elrp mpbir2an divlt1lt mpbir gt0ne0ii redivcli nn0rei
        1re ltadd2 mp3an mpbi cz nn0zi zltp1le readdcli ltletri wa pm3.2i ax-mp
        rpdivcl ltaddrp lttri df-dp2 3brtr4i ) ABKUAUBZUCLZMLZCDVNUCLZMLZABUGCD
        UGNVPCNOZCVRNOZVPVRNOVPAKMLZNOZWACUDOZVSVOKNOZWBWDBVNNOZIBPQVNRQZWDWEUE
        RPBUFFUHZWFVNPQUAVNNOSUIVNUJUKZBVNULTUMVOPQKPQAPQWDWBUEBVNWGSVNSUIUNZUO
        ZUQAEUPZVOKAURUSUTACNOZWCJAVAQCVAQWLWCUEAEVBCGVBACVCTUTVPWACAVOWKWJVDZA
        KWKUQVDCGUPZVETCPQVQRQZVTWNDRQZWFVFWOWPWFHWHVGDVNVIVHCVQVJTVPCVRWMWNCVQ
        WNDVNRPDUFHUHSWIUOVDVKTABVLCDVLVM $.
    $}
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Decimal point
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Define the decimal point operator and the decimal fraction constructor.  This
  can model traditional decimal point notation, and serve as a convenient way
  to write some fractional numbers.  See ~ df-dp and ~ df-dp2 for more
  information; ~ dpval2 and ~ dpfrac1 provide a more convenient way to obtain a
  value.  This is intentionally similar to ~ df-dec .

$)

  $c . $. $( Decimal point. $)

  $( Decimal point operator.  See ~ df-dp . $)
  cdp $a class . $.

  ${
    $d x y $.

    $( Define the ` . ` (decimal point) operator.  For example,
       ` ( 1 . 5 ) = ( 3 / 2 ) ` , and
       ` -u ( ; 3 2 . _ 7 _ 1 8 ) = -u ( ; ; ; ; 3 2 7 1 8 / ; ; ; 1 0 0 0 ) `
       Unary minus, if applied, should normally be applied in front of the
       parentheses.

       Metamath intentionally does not have a built-in construct for numbers,
       so it can show that numbers are something you can build based on set
       theory.  However, that means that metamath has no built-in way to parse
       and handle decimal numbers as traditionally written, e.g., "2.54".  Here
       we create a system for modeling traditional decimal point notation; it
       is not syntactically identical, but it is sufficiently similar so it is
       a reasonable model of decimal point notation.  It should also serve as a
       convenient way to write some fractional numbers.

       The RHS is ` RR ` , not ` QQ ` ; this should simplify some proofs.  The
       LHS is ` NN0 ` , since that is what is used in practice.  The definition
       intentionally does not allow negative numbers on the LHS; if it did,
       nonzero fractions would produce the wrong results.  (It would be
       possible to define the decimal point to do this, but using it would be
       more complicated, and the expression ` -u ( A . B ) ` is just as
       convenient.)  (Contributed by David A. Wheeler, 15-May-2015.) $)
    df-dp $a |- . = ( x e. NN0 , y e. RR |-> _ x y ) $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Define the value of the decimal point operator.  See ~ df-dp .
       (Contributed by David A. Wheeler, 15-May-2015.) $)
    dpval $p |- ( ( A e. NN0 /\ B e. RR ) -> ( A . B ) = _ A B ) $=
      ( vx vy cn0 cr cv cdp2 cdp c1 cc0 cdc cdiv caddc wceq df-dp2 oveq1 syl5eq
      co oveq2d syl6eqr df-dp ovexi ovmpt2 ) CDABEFCGZDGZHZABHZIAUFJKLZMSZNSZUE
      AOUGUEUJNSUKUEUFPUEAUJNQRUFBOZUKABUIMSZNSUHULUJUMANUFBUIMQTABPZUACDUBUHAU
      MNUNUCUD $.
  $}

  $( Prove that the closure of the decimal point is ` RR ` as we have defined
     it.  See ~ df-dp .  (Contributed by David A. Wheeler, 15-May-2015.) $)
  dpcl $p |- ( ( A e. NN0 /\ B e. RR ) -> ( A . B ) e. RR ) $=
    ( cn0 wcel cr wa cdp co cdp2 dpval nn0re dp2cl sylan eqeltrd ) ACDZBEDZFABG
    HABIZEABJOAEDPQEDAKABLMN $.

  $( Prove a simple equivalence involving the decimal point.  See ~ df-dp and
     ~ dpcl .  (Contributed by David A. Wheeler, 15-May-2015.)  (Revised by AV,
     9-Sep-2021.) $)
  dpfrac1 $p |- ( ( A e. NN0 /\ B e. RR ) -> ( A . B ) = ( ; A B / ; 1 0 ) ) $=
    ( cn0 wcel cr wa cdp2 c1 cc0 cdc cdiv co caddc df-dp2 dpval wceq nn0cn 10re
    cdp cc recn cmul dfdec10 oveq1i recni a1i id mulcld wne 10pos pm3.2i divdir
    gt0ne0ii mp3an3 sylan divcan3 mp3an23 oveq1d adantr syl5eq syl2an 3eqtr4a
    eqtrd ) ACDZBEDZFABGABHIJZKLZMLZABSLABJZVFKLZABNABOVDATDZBTDZVJVHPVEAQBUAVK
    VLFZVJVFAUBLZBMLZVFKLZVHVIVOVFKABUCUDVMVPVNVFKLZVGMLZVHVKVNTDZVLVPVRPZVKVFA
    VFTDZVKVFRUEZUFVKUGUHVSVLWAVFIUIZFVTWAWCWBVFRUJUMZUKVNBVFULUNUOVKVRVHPVLVKV
    QAVGMVKWAWCVQAPWBWDAVFUPUQURUSVCUTVAVB $.

  $( Obsolete version of ~ dpfrac1 as of 9-Sep-2021.  (Contributed by David A.
     Wheeler, 15-May-2015.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  dpfrac1OLD $p |- ( ( A e. NN0 /\ B e. RR ) -> ( A . B ) = ( ; A B / 10 ) ) $=
    ( cn0 wcel cr wa cdp2 c10 cdiv co caddc cdp cdc dfdp2OLD dpval cc wceq recn
    nn0cn 10reOLD cmul dfdecOLD oveq1i recni mulcl mpan cc0 wne 10posOLD pm3.2i
    gt0ne0ii divdir mp3an3 divcan3 mp3an23 oveq1d adantr syl5eq syl2an 3eqtr4a
    sylan eqtrd ) ACDZBEDZFABGABHIJZKJZABLJABMZHIJZABNABOVCAPDZBPDZVHVFQVDASBRV
    IVJFZVHHAUAJZBKJZHIJZVFVGVMHIABUBUCVKVNVLHIJZVEKJZVFVIVLPDZVJVNVPQZHPDZVIVQ
    HTUDZHAUEUFVQVJVSHUGUHZFVRVSWAVTHTUIUKZUJVLBHULUMVAVIVPVFQVJVIVOAVEKVIVSWAV
    OAQVTWBAHUNUOUPUQVBURUSUT $.

  $( TODO: Work out conversions and demos. E.G.,

     dpval.1 $e |- A e. NN0 $.
     dpval.2 $e |- B e. QQ $.
     dpval $p |- ( A . B ) = _ A B $.

     dpcl $p |- ( A . B ) e. QQ $.

     dpfracp1.1 $e |- ( ; A B . C ) = ( D / E ) $.
     dpfracp1 $p |- ( A . _ B C ) = ( D / ; E 0 ) $.
  $)

  ${
    dpval2.a $e |- A e. NN0 $.
    dpval2.b $e |- B e. RR $.
    $( Value of the decimal point construct.  (Contributed by Thierry Arnoux,
       16-Dec-2021.) $)
    dpval2 $p |- ( A . B ) = ( A + ( B / ; 1 0 ) ) $=
      ( cdp co cdp2 c1 cc0 cdc cdiv caddc wcel cr wceq dpval mp2an df-dp2 eqtri
      cn0 ) ABEFZABGZABHIJKFLFATMBNMUAUBOCDABPQABRS $.

    $( Value of the decimal point construct.  (Contributed by Thierry Arnoux,
       16-Dec-2021.) $)
    dpval3 $p |- ( A . B ) = _ A B $=
      ( cdp co c1 cc0 cdc cdiv caddc cdp2 dpval2 df-dp2 eqtr4i ) ABEFABGHIJFKFA
      BLABCDMABNO $.

    $( Multiply by 10 a decimal expansion.  (Contributed by Thierry Arnoux,
       25-Dec-2021.) $)
    dpmul10 $p |- ( ( A . B ) x. ; 1 0 ) = ; A B $=
      ( c1 cc0 cdc cmul co cdiv caddc cdp recni 10nn nncni nnne0i divcan2i wcel
      oveq2i cr dpval2 dpcl mp2an mulcomi nn0cni divcli 3eqtr3i dfdec10 3eqtr4i
      cn0 adddii ) EFGZAHIZULBULJIZHIZKIZUMBKIABLIZULHIZABGUOBUMKBULBDMZULNOZUL
      NPZQSULUQHIULAUNKIZHIURUPUQVBULHABCDUASULUQUTUQAUJRBTRUQTRCDABUBUCMUDULAU
      NUTACUEBULUSUTVAUFUKUGABUHUI $.

    $( Divide a decimal number by 10.  (Contributed by Thierry Arnoux,
       25-Dec-2021.) $)
    decdiv10 $p |- ( ; A B / ; 1 0 ) = ( A . B ) $=
      ( cdp co c1 cc0 cdc cmul cdiv dpmul10 oveq1i cn0 wcel cr dpcl mp2an recni
      10nn nncni nnne0i divcan4i eqtr3i ) ABEFZGHIZJFZUFKFABIZUFKFUEUGUHUFKABCD
      LMUEUFUEANOBPOUEPOCDABQRSUFTUAUFTUBUCUD $.
  $}

  ${
    dp3mul10.a $e |- A e. NN0 $.
    dp3mul10.b $e |- B e. NN0 $.
    dp3mul10.c $e |- C e. RR $.
    $( Multiply by 100 a decimal expansion.  (Contributed by Thierry Arnoux,
       25-Dec-2021.) $)
    dpmul100 $p |- ( ( A . _ B C ) x. ; ; 1 0 0 ) = ; ; A B C $=
      ( cdp2 cdp co cc0 cdc cmul caddc wcel nn0cni 10nn0 oveq1i eqtri dpmul10
      cr c1 cdiv cc nn0rei dp2cl mp2an dpval2 10nn nnne0i divcli addcli eqeltri
      recni mulassi dfdec100 mul32i dec0u dpval3 eqtr3i oveq12i dfdec10 adddiri
      mulcli eqtr2i 3eqtr2ri oveq2i 3eqtr3ri ) ABCGZHIZUAJKZLIZVJLIZVIVJVJLIZLI
      ABKCKZVIVJJKZLIVIVJVJVIAVHVJUBIZMIUCAVHDBTNCTNVHTNBEUDFBCUEUFZUGAVPADOZVH
      VJVHVQUMZVJPOZVJUHUIUJUKULVTVTUNVNVOALIZBCKZMIVJALIZVJLIZVHVJLIZMIZVLABCD
      EFUOWDWAWEWBMWDVMALIWAVJAVJVTVRVTUPVMVOALVJPUQZQRBCHIZVJLIWEWBWHVHVJLBCEF
      URQBCEFSUSUTVLWCVHMIZVJLIWFVKWIVJLVKAVHKWIAVHDVQSAVHVARQWCVHVJVJAVTVRVCVS
      VTVBVDVEVMVOVILWGVFVG $.

    $( Multiply by 10 a decimal expansion with 3 digits.  (Contributed by
       Thierry Arnoux, 25-Dec-2021.) $)
    dp3mul10 $p |- ( ( A . _ B C ) x. ; 1 0 ) = ( ; A B . C ) $=
      ( cdp2 cdp co c1 cc0 cdc cmul caddc cr wcel nn0rei dfdec10 10nn recni
      dp2cl mp2an dpmul10 cdiv nncni nn0cni mulcli nnne0i divcli addassi oveq1i
      df-dp2 oveq2i 3eqtr4ri deccl dpval2 eqtr4i 3eqtri ) ABCGZHIJKLZMIAUSLUTAM
      IZUSNIZABLZCHIZAUSDBOPCOPUSOPBEQZFBCUAUBUCAUSRVBVCCUTUDIZNIZVDVABNIZVFNIV
      ABVFNIZNIVGVBVABVFUTAUTSUEZADUFUGBVETCUTCFTVJUTSUHUIUJVCVHVFNABRUKUSVIVAN
      BCULUMUNVCCABDEUOFUPUQUR $.
  $}

  ${
    dpmul1000.a $e |- A e. NN0 $.
    dpmul1000.b $e |- B e. NN0 $.
    dpmul1000.c $e |- C e. NN0 $.
    dpmul1000.d $e |- D e. RR $.
    $( Multiply by 1000 a decimal expansion.  (Contributed by Thierry Arnoux,
       25-Dec-2021.) $)
    dpmul1000 $p |- ( ( A . _ B _ C D ) x. ; ; ; 1 0 0 0 ) = ; ; ; A B C D $=
      ( cdc cc0 cmul co wcel cr mp2an 10nn0 nn0cni oveq1i caddc eqtr3i cdp2 cdp
      c1 cn0 nn0rei dp2cl dpcl recni 0nn0 deccl mulassi dpmul100 dec0u mulcomli
      oveq2i 3eqtr3i dfdec10 mulcli adddiri dfdec100 dpmul10 wceq dpval oveq12i
      mul32i eqtr2i 3eqtri ) ABIZCDUAZIZUCJIZKLZABVIUAZUBLZVKJIZJIZKLZVHCIDIZVN
      VOKLZVKKLVNVOVKKLZKLVLVQVNVOVKVNAUDMVMNMZVNNMEBNMVINMZWABFUECNMDNMZWBCGUE
      HCDUFOZBVIUFOAVMUGOUHVOVKJPUIUJZQZVKPQZUKVSVJVKKABVIEFWDULRVTVPVNKVKVOVPW
      GWFVOWEUMUNUOUPVLVKVHKLZVISLZVKKLWHVKKLZVIVKKLZSLZVRVJWIVKKVHVIUQRWHVIVKV
      KVHWGVHABEFUJZQZURVIWDUHWGUSVRVOVHKLZCDIZSLWLVHCDWMGHUTWOWJWPWKSVKVKKLZVH
      KLWOWJWQVOVHKVKPUMRVKVKVHWGWGWNVETCDUBLZVKKLWPWKCDGHVAWRVIVKKCUDMWCWRVIVB
      GHCDVCORTVDVFVGT $.
  $}

  ${
    dpval3rp.a $e |- A e. NN0 $.
    dpval3rp.b $e |- B e. RR+ $.
    $( Value of the decimal point construct.  (Contributed by Thierry Arnoux,
       16-Dec-2021.) $)
    dpval3rp $p |- ( A . B ) = _ A B $=
      ( crp wcel cr rpre ax-mp dpval3 ) ABCBEFBGFDBHIJ $.
  $}

  ${
    dp0u.1 $e |- A e. NN0 $.
    $( Add a zero in the tenths place.  (Contributed by Thierry Arnoux,
       16-Dec-2021.) $)
    dp0u $p |- ( A . 0 ) = A $=
      ( cc0 cdp co cdp2 0re dpval3 dp20u eqtri ) ACDEACFAACBGHABIJ $.
  $}

  ${
    dp0h.1 $e |- A e. RR+ $.
    $( Remove a zero in the units places.  (Contributed by Thierry Arnoux,
       16-Dec-2021.) $)
    dp0h $p |- ( 0 . A ) = ( A / ; 1 0 ) $=
      ( cc0 cdp co cdp2 c1 cdc cdiv 0nn0 dpval3rp dp20h eqtri ) CADECAFAGCHIECA
      JBKABLM $.
  $}

  ${
    rpdpcl.a $e |- A e. NN0 $.
    rpdpcl.b $e |- B e. RR+ $.
    $( Closure of the decimal point in the positive real numbers.  (Contributed
       by Thierry Arnoux, 16-Dec-2021.) $)
    rpdpcl $p |- ( A . B ) e. RR+ $=
      ( cdp co cdp2 crp dpval3rp rpdp2cl eqeltri ) ABEFABGHABCDIABCDJK $.
  $}

  ${
    dplt.a $e |- A e. NN0 $.
    dplt.b $e |- B e. RR+ $.
    dplt.d $e |- C e. RR+ $.
    dplt.1 $e |- B < C $.
    $( Comparing two decimal expansions (equal higher places).  (Contributed by
       Thierry Arnoux, 16-Dec-2021.) $)
    dplt $p |- ( A . B ) < ( A . C ) $=
      ( cdp2 cdp co clt dp2lt dpval3rp 3brtr4i ) ABHACHABIJACIJKABCDEFGLABDEMAC
      DFMN $.
  $}

  ${
    dplti.a $e |- A e. NN0 $.
    dplti.b $e |- B e. RR+ $.
    dplti.c $e |- C e. NN0 $.
    dplti.1 $e |- B < ; 1 0 $.
    dplti.2 $e |- ( A + 1 ) = C $.
    $( Comparing a decimal expansions with the next higher integer.
       (Contributed by Thierry Arnoux, 16-Dec-2021.) $)
    dplti $p |- ( A . B ) < C $=
      ( co c1 caddc clt cc0 crp wcel cr wbr 10re 10pos mpbir cdp cdc cdiv ax-mp
      rpre dpval2 wb pm3.2i elrp divlt1lt mp2an 0re gtneii redivcli 1re nn0ssre
      wa cn0 sselii ltadd2i mpbi eqbrtri breqtri ) ABUAIZAJKIZCLVDABJMUBZUCIZKI
      ZVELABDBNOBPOZEBUEUDZUFVGJLQZVHVELQVKBVFLQZGVIVFNOZVKVLUGVJVMVFPOZMVFLQZU
      QVNVORSUHVFUITBVFUJUKTVGJABVFVJRMVFULSUMUNUOURPAUPDUSUTVAVBHVC $.
  $}

  ${
    dpgti.a $e |- A e. NN0 $.
    dpgti.b $e |- B e. RR+ $.
    $( Comparing a decimal expansions with the next lower integer.
       (Contributed by Thierry Arnoux, 16-Dec-2021.) $)
    dpgti $p |- A < ( A . B ) $=
      ( c1 cc0 cdc cdiv co caddc cdp clt cr wcel crp wbr nn0rei wa 10re mp2an
      10pos pm3.2i elrp mpbir rpdivcl ltaddrp rpre ax-mp dpval2 breqtrri ) AABE
      FGZHIZJIZABKILAMNULONZAUMLPACQBONZUKONZUNDUPUKMNZFUKLPZRUQURSUAUBUKUCUDBU
      KUETAULUFTABCUOBMNDBUGUHUIUJ $.
  $}

  ${
    dpltc.a $e |- A e. NN0 $.
    dpltc.b $e |- B e. RR+ $.
    dpltc.c $e |- C e. NN0 $.
    dpltc.d $e |- D e. RR+ $.
    dpltc.1 $e |- A < C $.
    dpltc.2 $e |- B < ; 1 0 $.
    $( Comparing two decimal integers (unequal higher places).  (Contributed by
       Thierry Arnoux, 16-Dec-2021.) $)
    dpltc $p |- ( A . B ) < ( C . D ) $=
      ( cdp2 cdp co clt dp2ltc dpval3rp 3brtr4i ) ABKCDKABLMCDLMNABCDEFGHJIOABE
      FPCDGHPQ $.
  $}

  ${
    dpexpp1.a $e |- A e. NN0 $.
    dpexpp1.b $e |- B e. RR+ $.
    dpexpp1.1 $e |- ( P + 1 ) = Q $.
    dpexpp1.p $e |- P e. ZZ $.
    dpexpp1.q $e |- Q e. ZZ $.
    $( Add one zero to the mantisse, and a one to the exponent in a scientific
       notation.  (Contributed by Thierry Arnoux, 16-Dec-2021.) $)
    dpexpp1 $p |- ( ( A . B ) x. ( ; 1 0 ^ P ) )
      = ( ( 0 . _ A B ) x. ( ; 1 0 ^ Q ) ) $=
      ( cdp2 cc0 cexp co cmul wceq crp wcel ax-mp cc oveq1i c1 cdc cdiv cdp wne
      0re 10pos gtneii cr rpdp2cl rpre recni cz clt wa 10re pm3.2i elrp rpexpcl
      mpbir mp2an rpcn mulcli 10nn0 nn0cni divcan1zi div23 mp3an eqtr3i mulassi
      wbr divcli caddc expp1z oveq2i 3eqtri dpval3rp 0nn0 dp20h eqtri 3eqtr4i )
      ABJZUAKUBZCLMZNMZWBWCUCMZWCDLMZNMZABUDMZWDNMKWBUDMZWGNMWEWFWDNMZWCNMZWFWD
      WCNMZNMWHWEWCUCMZWCNMZWEWLWCKUEZWOWEOKWCUFUGUHZWEWCWBWDWBWBPQWBUIQABEFUJZ
      WBUKRULZWDPQZWDSQZWCPQZCUMQZWTXBWCUIQZKWCUNVKZUOXDXEUPUGUQWCURUTHWCCUSVAW
      DVBRZVCWCVDVEZVFRWNWKWCNWBSQXAWCSQZWPUOWNWKOWSXFXHWPXGWQUQWBWDWCVGVHTVIWF
      WDWCWBWCWSXGWQVLXFXGVJWMWGWFNWCCUAVMMZLMZWMWGXHWPXCXJWMOXGWQHWCCVNVHXIDWC
      LGVOVIVOVPWIWBWDNABEFVQTWJWFWGNWJKWBJWFKWBVRWRVQWBWRVSVTTWA $.
  $}

  ${
    0dp2dp.a $e |- A e. NN0 $.
    0dp2dp.b $e |- B e. RR+ $.
    $( Multiply by 10 a decimal expansion which starts with a zero.
       (Contributed by Thierry Arnoux, 16-Dec-2021.) $)
    0dp2dp $p |- ( ( 0 . _ A B ) x. ; 1 0 ) = ( A . B ) $=
      ( cc0 cdp2 cdp co c1 cdc cmul cexp 0p1e1 0z 1z cc wcel wceq ax-mp oveq2i
      dpexpp1 10nn0 nn0cni exp0 exp1 3eqtr3ri crp rpdpcl rpcn mulid1 eqtri ) EA
      BFGHZIEJZKHZABGHZIKHZUOUOUMELHZKHULUMILHZKHUPUNABEICDMNOUAUQIUOKUMPQZUQIR
      UMUBUCZUMUDSTURUMULKUSURUMRUTUMUESTUFUOPQZUPUORUOUGQVAABCDUHUOUISUOUJSUK
      $.
  $}

  ${
    dpadd2.a $e |- A e. NN0 $.
    dpadd2.b $e |- B e. RR+ $.
    dpadd2.c $e |- C e. NN0 $.
    dpadd2.d $e |- D e. RR+ $.
    dpadd2.e $e |- E e. NN0 $.
    dpadd2.f $e |- F e. RR+ $.
    dpadd2.g $e |- G e. NN0 $.
    dpadd2.h $e |- H e. NN0 $.
    dpadd2.i $e |- ( G + H ) = I $.
    dpadd2.1 $e |- ( ( A . B ) + ( C . D ) ) = ( E . F ) $.
    $( Addition with one decimal, no carry.  (Contributed by Thierry Arnoux,
       29-Dec-2021.) $)
    dpadd2 $p |- ( ( G . _ A B ) + ( H . _ C D ) ) = ( I . _ E F ) $=
      ( co cdp2 cdp caddc c1 cc0 cdc cdiv cr wcel nn0rei rpre ax-mp dp2cl mp2an
      crp dpval2 oveq12i nn0cni recni 10nn nncni nnne0i divcli divdiri cn0 wceq
      add4i dpval 3eqtr3i oveq1i eqtr3i nn0addcli eqeltrri eqtr4i 3eqtri ) GABU
      AZUBTZHCDUAZUBTZUCTGVPUDUEUFZUGTZUCTZHVRVTUGTZUCTZUCTGHUCTZWAWCUCTZUCTZIE
      FUAZUBTZVQWBVSWDUCGVPPAUHUIBUHUIZVPUHUIAJUJBUOUIWJKBUKULZABUMUNZUPHVRQCUH
      UIDUHUIZVRUHUICLUJDUOUIWMMDUKULZCDUMUNZUPUQGWAHWCGPURVPVTVPWLUSZVTUTVAZVT
      UTVBZVCHQURVRVTVRWOUSZWQWRVCVGWGIWHVTUGTZUCTWIWEIWFWTUCRVPVRUCTZVTUGTWFWT
      VPVRVTWPWSWQWRVDXAWHVTUGABUBTZCDUBTZUCTEFUBTZXAWHSXBVPXCVRUCAVEUIWJXBVPVF
      JWKABVHUNCVEUIWMXCVRVFLWNCDVHUNUQEVEUIFUHUIZXDWHVFNFUOUIXEOFUKULZEFVHUNVI
      VJVKUQIWHWEIVERGHPQVLVMEUHUIXEWHUHUIENUJXFEFUMUNUPVNVO $.
  $}

  ${
    dpmul.a $e |- A e. NN0 $.
    dpmul.b $e |- B e. NN0 $.
    dpmul.c $e |- C e. NN0 $.
    dpmul.d $e |- D e. NN0 $.
    dpmul.e $e |- E e. NN0 $.
    ${
      dpadd.f $e |- F e. NN0 $.
      dpadd.1 $e |- ( ; A B + ; C D ) = ; E F $.
      $( Addition with one decimal.  (Contributed by Thierry Arnoux,
         27-Dec-2021.) $)
      dpadd $p |- ( ( A . B ) + ( C . D ) ) = ( E . F ) $=
        ( cdc cdiv co caddc cdp nn0rei decdiv10 c1 cc0 deccl nn0cni 10nn nnne0i
        nncni divdiri oveq1i eqtr3i oveq12i 3eqtr3i ) ABNZUAUBNZOPZCDNZUNOPZQPZ
        EFNZUNOPZABRPZCDRPZQPEFRPUMUPQPZUNOPURUTUMUPUNUMABGHUCUDUPCDIJUCUDUNUEU
        GUNUEUFUHVCUSUNOMUIUJUOVAUQVBQABGBHSTCDIDJSTUKEFKFLSTUL $.
    $}

    dpmul.g $e |- G e. NN0 $.
    ${
      dpadd3.f $e |- F e. NN0 $.
      dpadd3.h $e |- H e. NN0 $.
      dpadd3.i $e |- I e. NN0 $.
      dpadd3.1 $e |- ( ; ; A B C + ; ; D E F ) = ; ; G H I $.
      $( Addition with two decimals.  (Contributed by Thierry Arnoux,
         27-Dec-2021.) $)
      dpadd3 $p |- ( ( A . _ B C ) + ( D . _ E F ) ) = ( G . _ H I ) $=
        ( wcel cdp2 cdp co caddc cc c1 cc0 cdc wne wa w3a cmul cn0 nn0rei dp2cl
        wceq mp2an dpcl recni addcli 10nn decnncl2 nncni nnne0i 3pm3.2i adddiri
        cr pm3.2i dpmul100 oveq12i 3eqtr4i eqtri mulcan2 biimpa ) ABCUAZUBUCZDE
        FUAZUBUCZUDUCZUETZGHIUAZUBUCZUETZUFUGUHZUGUHZUETZWEUGUIZUJZUKZVSWEULUCZ
        WBWEULUCZUPZVSWBUPZVTWCWHVPVRVPAUMTVOVGTZVPVGTJBVGTCVGTWNBKUNCLUNZBCUOU
        QAVOURUQUSZVRDUMTVQVGTZVRVGTMEVGTFVGTWQENUNFPUNZEFUOUQDVQURUQUSZUTWBGUM
        TWAVGTZWBVGTOHVGTIVGTWTHQUNIRUNZHIUOUQGWAURUQUSWFWGWEWDVAVBZVCZWEXBVDVH
        VEWJVPWEULUCZVRWEULUCZUDUCZWKVPVRWEWPWSXCVFABUHCUHZDEUHFUHZUDUCGHUHIUHX
        FWKSXDXGXEXHUDABCJKWOVIDEFMNWRVIVJGHIOQXAVIVKVLWIWLWMVSWBWEVMVNUQ $.
    $}

    dpmul.j $e |- J e. NN0 $.
    dpmul.k $e |- K e. NN0 $.
    ${
      dpmul.1 $e |- ( A x. C ) = F $.
      dpmul.2 $e |- ( A x. D ) = M $.
      dpmul.3 $e |- ( B x. C ) = L $.
      dpmul.4 $e |- ( B x. D ) = ; E K $.
      dpmul.5 $e |- ( ( L + M ) + E ) = ; G J $.
      dpmul.6 $e |- ( F + G ) = I $.
      $( Multiplication with one decimal point.  (Contributed by Thierry
         Arnoux, 26-Dec-2021.) $)
      dpmul $p |- ( ( A . B ) x. ( C . D ) ) = ( I . _ J K ) $=
        ( cdp co cmul cc0 cdc cdp2 wceq caddc deccl eqid cn0 nn0mulcli eqeltrri
        c1 nn0addcli decmul1 oveq1i dfdec10 10nn0 nn0cni mulcli 3eqtr3ri oveq2i
        addassi adddii eqtr3i 3eqtr2ri 3eqtr2i 3eqtri decmul1c decmul2c wcel cr
        nn0rei mp2an recni mul4i dec0u dpmul10 oveq12i 3eqtr3i dpmul100 3eqtr4i
        dpcl cc wne wa wb dp2cl 10nn decnncl2 nncni nnne0i pm3.2i mulcan2 mp3an
        mpbi ) ABUGUHZCDUGUHZUIUHZUTUJUKZUJUKZUIUHZHIJULZUGUHZXHUIUHZUMZXFXKUMZ
        ABUKZCDUKZUIUHZHIUKZJUKXIXLCDXRJXOLEUNUHZXPABMNUOOPXPUPTLEADUIUHZLUQUBA
        DMPURUSZQVAZXOCUIUHZXSUNUHFKUKZXSUNUHXGFUIUHZKUNUHZXSUNUHZXRYCYDXSUNABF
        KCXOOMNXOUPZBCUIUHKUQUCBCNOURUSZUAUCVBVCYDYFXSUNFKVDVCYGYEKXSUNUHZUNUHY
        EXGGUIUHZIUNUHZUNUHZXRYEKXSXGFXGVEVFZFACUIUHFUQUAACMOURUSZVFZVGZKYIVFZX
        SYBVFVJYLYJYEUNKLUNUHEUNUHGIUKYJYLUEKLEYRLYAVFEQVFVJGIVDVHVIXRXGHUIUHZI
        UNUHYEYKUNUHZIUNUHYMHIVDYTYSIUNXGFGUNUHZUIUHYTYSXGFGYNYPGRVFZVKUUAHXGUI
        UFVIVLVCYEYKIYQXGGYNUUBVGISVFVJVMVNVOABXSJDEXOPMNYHTQXTLEUNUBVCUDVPVQXF
        XGXGUIUHZUIUHXDXGUIUHZXEXGUIUHZUIUHXIXQXDXEXGXGXDAUQVRBVSVRXDVSVRMBNVTZ
        ABWJWAWBZXECUQVRDVSVRXEVSVRODPVTZCDWJWAWBZYNYNWCUUCXHXFUIXGVEWDVIUUDXOU
        UEXPUIABMUUFWECDOUUHWEWFWGHIJUUAHUQUFFGYORVAUSZSJTVTZWHWIXFWKVRXKWKVRXH
        WKVRZXHUJWLZWMXMXNWNXDXEUUGUUIVGXKHUQVRXJVSVRZXKVSVRUUJIVSVRJVSVRUUNISV
        TUUKIJWOWAHXJWJWAWBUULUUMXHXGWPWQZWRXHUUOWSWTXFXKXHXAXBXC $.
    $}


    dpmul4.f $e |- F e. NN0 $.
    dpmul4.h $e |- H e. NN0 $.
    dpmul4.i $e |- I e. NN0 $.
    dpmul4.l $e |- L e. NN0 $.
    dpmul4.m $e |- M e. NN0 $.
    dpmul4.n $e |- N e. NN0 $.
    dpmul4.o $e |- O e. NN0 $.
    dpmul4.p $e |- P e. NN0 $.
    dpmul4.q $e |- Q e. NN0 $.
    dpmul4.r $e |- R e. NN0 $.
    dpmul4.s $e |- S e. NN0 $.
    dpmul4.t $e |- T e. NN0 $.
    dpmul4.u $e |- U e. NN0 $.
    dpmul4.w $e |- W e. NN0 $.
    dpmul4.x $e |- X e. NN0 $.
    dpmul4.y $e |- Y e. NN0 $.
    dpmul4.z $e |- Z e. NN0 $.
    dpmul4.a $e |- U < ; 1 0 $.
    dpmul4.b $e |- P < ; 1 0 $.
    dpmul4.c $e |- Q < ; 1 0 $.
    dpmul4.1 $e |- ( ; ; L M N + O ) = ; ; ; R S T U $.
    dpmul4.2 $e |- ( ( A . B ) x. ( E . F ) ) = ( I . _ J K ) $.
    dpmul4.3 $e |- ( ( C . D ) x. ( G . H ) ) = ( O . _ P Q ) $.
    dpmul4.4 $e |- ( ; ; ; I J K 1 + ; ; R S T ) = ; ; ; W X Y Z $.
    dpmul4.5 $e |- ( ( ( A . B ) + ( C . D ) ) x. ( ( E . F ) + ( G . H ) ) )
      = ( ( ( I . _ J K ) + ( L . _ M N ) ) + ( O . _ P Q ) ) $.
    $( An upper bound to multiplication of decimal numbers with 4 digits.
       (Contributed by Thierry Arnoux, 25-Dec-2021.) $)
    dpmul4 $p |-
             ( ( A . _ B _ C D ) x. ( E . _ F _ G H ) ) < ( W . _ X _ Y Z ) $=
      ( cdp2 cdp co cdc cmul c1 cc0 cdiv clt wbr caddc cmin c2 deccl cn0 nn0rei
      wcel cr dpcl mp2an recni 10nn mul4i mulcli oveq1i dp3mul10 eqtri 3eqtr2ri
      mulassi dpmul10 oveq12i 3eqtr3ri adddiri eqtr2i addcli 3eqtri 10nn0 dec0u
      oveq2i cc eqeltrri dp2cl 0nn0 nn0cni dpmul100 sq10 eqtr4i dfdec100 ax-1cn
      mulcomi addcomi eqtr3i eqid addassi 3eqtr4i subcli remulcli readdcli mpbi
      mp3an dpmul1000 divcan4i cexp 2nn0 nncni sqvali decsuc mvlladdi karatsuba
      addid2i 1nn0 subdiri 3eqtrri wceq subsub 3eqtr4ri crp 1re resubcli adddii
      sqcli 3decltc ltadd2i dfdec10 mulid2i 3brtr4i eqbrtri posdifi mpbir2an wa
      ltsubrp wb decnncl2 nngt0i pm3.2i ltdiv1 gt0ne0ii div23i 3brtr3i divassi
      elrp ) ABCDVSZVSZVTWAZKLWBZMWBZNWBZWCWAZWDWEWBZWEWBZWEWBZWFWAZUBUCWBZUDWB
[encoded data, 5360 characters]
      SXTWRUBUWTWQWRWSVYSWWMYTYJUVQ $.
  $}

  $( Example theorem demonstrating decimal expansions.  (Contributed by Thierry
     Arnoux, 27-Dec-2021.) $)
  threehalves $p |- ( 3 / 2 ) = ( 1 . 5 ) $=
    ( c3 c2 co cc wcel c1 c5 cdp cc0 cmul wceq 3re 2ne0 recni 1nn0 mp2an 2cnne0
    cr caddc 5nn0 cdiv wne w3a 2re redivcli cn0 5re dpcl 3pm3.2i 3nn0 0nn0 eqid
    cdc df-2 oveq1i 2p1e3 eqtr3i 5p5e10 decaddc dpadd dp0u eqtri times2i simpli
    wa divcan1i 3eqtr4ri mulcan2 biimpa ) ABUACZDEZFGHCZDEZBDEZBIUBZVEZUCZVJBJC
    ZVLBJCZKZVJVLKZVKVMVPVJABLUDMUENVLFUFEGREVLREOUGFGUHPNZQUIVLVLSCZAVSVRWCAIH
    CAFGFGAIOTOTUJUKFGFGAIFGUMZWDOTOTWDULZWEBFSCFFSCZFSCABWFFSUNUOUPUQUKURUSUTA
    UJVAVBVLWBVCABALNVNVOQVDMVFVGVQVTWAVJVLBVHVIP $.

  $( Example theorem demonstrating decimal expansions.  (Contributed by Thierry
     Arnoux, 27-Dec-2021.) $)
  1mhdrd $p |- ( ( 0 . _ 9 9 ) + ( 0 . _ 0 1 ) ) = 1 $=
    ( cc0 c9 cdp2 cdp co c1 caddc 0nn0 9nn0 1nn0 cdc eqcomi deceq1i 9cn addid1i
    dec0h oveq1i 9p1e10 eqtri decaddc dpadd3 dp20u oveq2i dp0u 3eqtri ) ABBCDEA
    AFCDEGEFAACZDEFADEFABBAAFFAAHIIHHJJHHBBAFFAKZAABKZBKAAKZFKIIHJUHBBBUHBIPLMU
    IAFAUIAHPLMBAGEZFGEBFGEUGUJBFGBNOQRSHRTUAUFAFDAHUBUCFJUDUE $.


$( Begin $[ set-mbox-ta-xdiv.mm $] $)
$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Division in the extended real number system
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c /e $. $( Division of extended real numbers. $)

  $( Extend class notation to include division of extended reals. $)
  cxdiv $a class /e $.

  ${
    $d x y z $.
    $( Define division over extended real numbers.  (Contributed by Thierry
       Arnoux, 17-Dec-2016.) $)
    df-xdiv $a |- /e = ( x e. RR* , y e. ( RR \ { 0 } ) |->
                   ( iota_ z e. RR* ( y *e z ) = x ) ) $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( Value of division: the (unique) element ` x ` such that
       ` ( B x. x ) = A ` .  This is meaningful only when ` B ` is nonzero.
       (Contributed by Thierry Arnoux, 17-Dec-2016.) $)
    xdivval $p |- ( ( A e. RR* /\ B e. RR /\ B =/= 0 ) ->
                   ( A /e B ) = ( iota_ x e. RR* ( B *e x ) = A ) ) $=
      ( vy vz cxr wcel cr cc0 wne cxdiv co cv cxmu wceq wa csn simpl riotabidva
      crio eldifsn eqeq2d oveq1d eqeq1d df-xdiv riotaex ovmpt2 sylan2br 3impb
      cdif ) BFGZCHGZCIJZBCKLCAMZNLZBOZAFTZOZULUMPUKCHIQUJZGURCHIUADEBCFUSEMZUN
      NLZDMZOZAFTUQKVABOZAFTVBBOZVCVDAFVEUNFGZPVBBVAVEVFRUBSUTCOZVDUPAFVGVFPZVA
      UOBVHUTCUNNVGVFRUCUDSDEAUEUPAFUFUGUHUI $.
  $}

  ${
    $d x A $.
    $( Existence of reciprocal of nonzero real number.  (Contributed by Thierry
       Arnoux, 17-Dec-2016.) $)
    xrecex $p |- ( ( A e. RR /\ A =/= 0 ) -> E. x e. RR ( A *e x ) = 1 ) $=
      ( cr wcel cc0 wne wa cv cxmu co c1 wceq wrex cmul ax-rrecex rexmul eqeq1d
      wb wi ex adantr pm5.32d rexbidv2 mpbird ) BCDZBEFZGZBAHZIJZKLZACMBUHNJZKL
      ZACMABOUGUJULACCUGUHCDZUJULUEUMUJULRZSUFUEUMUNUEUMGUIUKKBUHPQTUAUBUCUD $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x ph $.
    xmulcand.1 $e |- ( ph -> A e. RR* ) $.
    xmulcand.2 $e |- ( ph -> B e. RR* ) $.
    xmulcand.3 $e |- ( ph -> C e. RR ) $.
    xmulcand.4 $e |- ( ph -> C =/= 0 ) $.
    $( Cancellation law for extended multiplication.  (Contributed by Thierry
       Arnoux, 17-Dec-2016.) $)
    xmulcand $p |- ( ph -> ( ( C *e A ) = ( C *e B ) <-> A = B ) ) $=
      ( vx cxmu co wceq c1 cr wcel syl2anc wa oveq2 cxr adantr cv wi cc0 xrecex
      wne wrex simprl rexrd xmulcom simprr eqtrd oveq1d xmulass syl3anc xmulid2
      syl 3eqtr3d eqeq12d syl5ib rexlimddv impbid1 ) ADBJKZDCJKZLZBCLZADIUAZJKZ
      MLZVDVEUBINADNOZDUCUEVHINUFGHIDUDPVDVFVBJKZVFVCJKZLAVFNOZVHQZQZVEVBVCVFJR
      VNVJBVKCVNVFDJKZBJKZMBJKZVJBVNVOMBJVNVOVGMVNVFSOZDSOZVOVGLVNVFAVLVHUGUHZV
      NDAVIVMGTUHZVFDUIPAVLVHUJUKZULVNVRVSBSOZVPVJLVTWAAWCVMETZVFDBUMUNVNWCVQBL
      WDBUOUPUQVNVOCJKZMCJKZVKCVNVOMCJWBULVNVRVSCSOZWEVKLVTWAAWGVMFTZVFDCUMUNVN
      WGWFCLWHCUOUPUQURUSUTBCDJRVA $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Existential uniqueness of reciprocals.  Theorem I.8 of [Apostol] p. 18.
       (Contributed by Thierry Arnoux, 17-Dec-2016.) $)
    xreceu $p |- ( ( A e. RR* /\ B e. RR /\ B =/= 0 ) ->
                  E! x e. RR* ( B *e x ) = A ) $=
      ( vy cxr wcel cr w3a cv cxmu co wceq wrex wa wi wral 3adant1 oveq2 eqeq1d
      c1 cc0 wne wreu ressxr xrecex ssrexv mpsyl simprl simpll xmulcld ad2antll
      wss oveq1 simplr rexrd xmulass syl3anc xmulid2 syl 3eqtr3d rspcev syl2anc
      rexlimdvaa 3adant3 eqtr3 simp1 simp2 simp3l simp3r xmulcand syl5ib expcom
      mpd 3expa ralrimivv reu4 sylanbrc ) BEFZCGFZCUAUBZHZCAIZJKZBLZAEMZWDCDIZJ
      KZBLZNZWBWFLZOZDEPAEPWDAEUCWAWGTLZDEMZWEGEULWAWLDGMZWMUDVSVTWNVRDCUEQWLDG
      EUFUGVRVSWMWEOVTVRVSNZWLWEDEWOWFEFZWLNZNZWFBJKZEFCWSJKZBLZWEWRWFBWOWPWLUH
      ZVRVSWQUIZUJWRWGBJKZTBJKZWTBWLXDXELWOWPWGTBJUMUKWRCEFWPVRXDWTLWRCVRVSWQUN
      UOXBXCCWFBUPUQWRVRXEBLXCBURUSUTWDXAAWSEWBWSLWCWTBWBWSCJRSVAVBVCVDVMWAWKAD
      EEVSVTWBEFZWPNZWKOVRXGVSVTNZWKXFWPXHWKWIWCWGLXFWPXHHZWJWCWGBVEXIWBWFCXFWP
      XHVFXFWPXHVGXFWPVSVTVHXFWPVSVTVIVJVKVNVLQVOWDWHADEWJWCWGBWBWFCJRSVPVQ $.
  $}

  ${
    $d x A $.  $d x B $.
    xdivcld.1 $e |- ( ph -> A e. RR* ) $.
    xdivcld.2 $e |- ( ph -> B e. RR ) $.
    xdivcld.3 $e |- ( ph -> B =/= 0 ) $.
    $( Closure law for the extended division.  (Contributed by Thierry Arnoux,
       15-Mar-2017.) $)
    xdivcld $p |- ( ph -> ( A /e B ) e. RR* ) $=
      ( vx cxdiv co cv cxmu wceq cxr crio wcel cr cc0 wne xdivval syl3anc wreu
      xreceu riotacl syl eqeltrd ) ABCHIZCGJKIBLZGMNZMABMOZCPOZCQRZUFUHLDEFGBCS
      TAUGGMUAZUHMOAUIUJUKULDEFGBCUBTUGGMUCUDUE $.
  $}

  ${
    $( Closure law for the extended division.  (Contributed by Thierry Arnoux,
       15-Mar-2017.) $)
    xdivcl $p |- ( ( A e. RR* /\ B e. RR /\ B =/= 0 ) -> ( A /e B ) e. RR* ) $=
      ( cxr wcel cr cc0 wne w3a simp1 simp2 simp3 xdivcld ) ACDZBEDZBFGZHABMNOI
      MNOJMNOKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Relationship between division and multiplication.  (Contributed by
       Thierry Arnoux, 24-Dec-2016.) $)
    xdivmul $p |- ( ( A e. RR* /\ B e. RR* /\ ( C e. RR /\ C =/= 0 ) )
                 -> ( ( A /e C ) = B <-> ( C *e B ) = A ) ) $=
      ( vx cxr wcel cr cc0 wne wa w3a cxdiv co wceq cv cxmu crio 3adant2 eqeq1d
      3expb xdivval wreu wb simp2 xreceu oveq2 riota2 syl2anc bitr4d ) AEFZBEFZ
      CGFZCHIZJZKZACLMZBNCDOZPMZANZDEQZBNZCBPMZANZUOUPUTBUJUNUPUTNZUKUJULUMVDDA
      CUATRSUOUKUSDEUBZVCVAUCUJUKUNUDUJUNVEUKUJULUMVEDACUETRUSVCDEBUQBNURVBAUQB
      CPUFSUGUHUI $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The extended real division operation when both arguments are real.
       (Contributed by Thierry Arnoux, 18-Dec-2016.) $)
    rexdiv $p |- ( ( A e. RR /\ B e. RR /\ B =/= 0 )
                                                 -> ( A /e B ) = ( A / B ) ) $=
      ( vx cr wcel w3a cmul co wceq crio cc wreu recn id syl eqeq1d syl2anc wss
      wi cxr cc0 wne cv cxdiv cdiv redivcl 3anim123i divcan2 oveq2 rspcev receu
      wrex wral wa ax-resscn rgenw riotass2 mpanl12 cxmu xdivval syl3an1 ressxr
      rexr a1i rexmul biimprd ralrimiva 3ad2ant2 xreceu syl22anc eqtr4d 3eqtr4d
      divval ) ADEZBDEZBUAUBZFZBCUCZGHZAIZCDJZVTCKJZABUDHZABUEHZVQVTCDULZVTCKLZ
      WAWBIZVQWDDEBWDGHZAIZWEABUFVQAKEZBKEZVPFZWIVNWJVOWKVPVPAMBMVPNUGZABUHOVTW
      ICWDDVRWDIVSWHAVRWDBGUIPUJQZVQWLWFWMCABUKODKRVTVTSZCDUMWEWFUNWGUOWOCDVTNU
      PVTVTCDKUQURQVQWCBVRUSHZAIZCTJZWAVNATEZVOVPWCWRIAVCZCABUTVAVQDTRZVTWQSZCD
      UMZWEWQCTLZWAWRIXAVQVBVDVOVNXCVPVOXBCDVOVRDEUNZWQVTXEWPVSABVRVEPVFVGVHWNV
      NWSVOVPXDWTCABVIVAVTWQCDTUQVJVKVQWLWDWBIWMCABVMOVL $.
  $}

  $( Relationship between division and reciprocal.  (Contributed by Thierry
     Arnoux, 5-Jul-2017.) $)
  xdivrec $p |- ( ( A e. RR* /\ B e. RR /\ B =/= 0 ) ->
                                          ( A /e B ) = ( A *e ( 1 /e B ) ) ) $=
    ( cxr wcel cr cc0 wne w3a cxdiv co c1 cxmu simp2 xmulcom syl2anc wb xdivmul
    wceq syl112anc eqtrd rexrd simp1 1re rexri a1i xdivcld xmulcld xmulass eqid
    simp3 syl3anc mpbii oveq2d 3eqtrd xmulid1 syl mpbird ) ACDZBEDZBFGZHZABIJAK
    BIJZLJZRZBVCLJZARZVAVEAKLJZAVAVEVCBLJZAVBBLJZLJZVGVABCDZVCCDZVEVHRVABURUSUT
    MZUAZVAAVBURUSUTUBZVAKBKCDZVAKUCUDUEZVMURUSUTUJZUFZUGZBVCNOVAURVBCDZVKVHVJR
    VOVSVNAVBBUHUKVAVIKALVAVIBVBLJZKVAWAVKVIWBRVSVNVBBNOVAVBVBRZWBKRZVBUIVAVPWA
    USUTWCWDPVQVSVMVRKVBBQSULTUMUNVAURVGARVOAUOUPTVAURVLUSUTVDVFPVOVTVMVRAVCBQS
    UQ $.

  $( A number divided by itself is one.  (Contributed by Thierry Arnoux,
     18-Dec-2016.) $)
  xdivid $p |- ( ( A e. RR /\ A =/= 0 ) -> ( A /e A ) = 1 ) $=
    ( cr wcel cc0 wne wa cxdiv co cdiv c1 wceq rexdiv 3anidm12 recn divid sylan
    cc eqtrd ) ABCZADEZFAAGHZAAIHZJSTUAUBKAALMSAQCTUBJKANAOPR $.

  $( Division into zero is zero.  (Contributed by Thierry Arnoux,
     18-Dec-2016.) $)
  xdiv0 $p |- ( ( A e. RR /\ A =/= 0 ) -> ( 0 /e A ) = 0 ) $=
    ( cr wcel cc0 wne wa cxdiv co cdiv wceq rexdiv mp3an1 recn div0 sylan eqtrd
    0re cc ) ABCZADEZFDAGHZDAIHZDDBCSTUAUBJQDAKLSARCTUBDJAMANOP $.

  $( Division into zero is zero.  (Contributed by Thierry Arnoux,
     18-Dec-2016.) $)
  xdiv0rp $p |- ( A e. RR+ -> ( 0 /e A ) = 0 ) $=
    ( crp wcel cr cc0 wne wa cxdiv co wceq rprene0 xdiv0 syl ) ABCADCAEFGEAHIEJ
    AKALM $.

  $( A positive real number divided by plus infinity is zero.
  The definition of /e needs to be extended to prove such a theorem.
  xdivrppnf @p |- ( A e. RR+ -> ( A /e +oo ) = 0 ) @=
    ? $)

  $( Membership in a closed interval of extended reals vs. the same open
     interval.  (Contributed by Thierry Arnoux, 18-Dec-2016.) $)
  eliccioo $p |- ( ( A e. RR* /\ B e. RR* /\ A <_ B ) ->
    ( C e. ( A [,] B ) <-> ( C = A \/ C e. ( A (,) B ) \/ C = B ) ) ) $=
    ( cxr wcel cle wbr w3a cicc co wceq w3o wa wo wb adantl adantr eleq1 mpbird
    cioo cpr cun prunioo eleq2d biimpar elun elprg orbi2d syl5bb 3orass 3orcoma
    mpbid bitr3i sylib lbicc2 ioossicc sseli ubicc2 3jaodan impbida ) ADEBDEABF
    GHZCABIJZEZCAKZCABTJZEZCBKZLZVAVCMZVFVDVGNZNZVHVICVEABUAZUBZEZVKVAVNVCVAVMV
    BCABUCUDUEVCVNVKOVAVNVFCVLEZNVCVKCVEVLUFVCVOVJVFCABVBUGUHUIPULVKVFVDVGLVHVF
    VDVGUJVFVDVGUKUMUNVAVDVCVFVGVAVDMVCAVBEZVAVPVDABUOQVDVCVPOVACAVBRPSVFVCVAVE
    VBCABUPUQPVAVGMVCBVBEZVAVQVGABURQVGVCVQOVACBVBRPSUSUT $.

  $( Elementhood in the set of nonnegative extended reals.  (Contributed by
     Thierry Arnoux, 18-Dec-2016.) $)
  elxrge02 $p |- ( A e. ( 0 [,] +oo ) <-> ( A = 0 \/ A e. RR+ \/ A = +oo ) ) $=
    ( cc0 cpnf cicc co wcel wceq cioo w3o crp cxr cle wbr wb 0xr pnfxr eliccioo
    0lepnf mp3an biid ioorp eleq2i 3orbi123i bitri ) ABCDEFZABGZABCHEZFZACGZIZU
    FAJFZUIIBKFCKFBCLMUEUJNOPRBCAQSUFUFUHUKUIUIUFTUGJAUAUBUITUCUD $.

  ${
    $d x A $.
    $( Plus infinity divided by a positive real number is plus infinity.
       (Contributed by Thierry Arnoux, 18-Dec-2016.) $)
    xdivpnfrp $p |- ( A e. RR+ -> ( +oo /e A ) = +oo ) $=
      ( vx crp wcel cpnf cxdiv co cv cxmu wceq cxr crio cc0 wa pnfxr syl cle wb
      wbr xgepnf wne w3a rprene0 jctil 3anass sylibr xdivval a1i xlemul2 mp3an1
      ancoms clt rpxr rpgt0 xmulpnf1 syl2anc adantr breq1d bitr2d xmulcl adantl
      cr sylan 3bitr3d riota5 eqtrd ) ACDZEAFGZABHZIGZEJZBKLZEVGEKDZAVBDZAMUAZU
      BZVHVLJVGVMVNVONZNVPVGVQVMAUCOUDVMVNVOUEUFBEAUGPVGVKBKEVMVGOUHVGVIKDZNZEV
      JQSZEVIQSZVKVIEJZVSWAAEIGZVJQSZVTVRVGWAWDRZVMVRVGWEOEVIAUIUJUKVSWCEVJQVGW
      CEJZVRVGAKDZMAULSWFAUMZAUNAUOUPUQURUSVSVJKDZVTVKRVGWGVRWIWHAVIUTVCVJTPVRW
      AWBRVGVITVAVDVEVF $.
  $}

  ${
    rpxdivcld.1 $e |- ( ph -> A e. RR+ ) $.
    rpxdivcld.2 $e |- ( ph -> B e. RR+ ) $.
    $( Closure law for extended division of positive reals.  (Contributed by
       Thierry Arnoux, 18-Dec-2016.) $)
    rpxdivcld $p |- ( ph -> ( A /e B ) e. RR+ ) $=
      ( cxdiv co cdiv crp cr wcel cc0 wceq rpred rpne0d rexdiv syl3anc rpdivcld
      wne eqeltrd ) ABCFGZBCHGZIABJKCJKCLSUAUBMABDNACENACEOBCPQABCDERT $.
  $}

  ${
    xrpxdivcld.1 $e |- ( ph -> A e. ( 0 [,] +oo ) ) $.
    xrpxdivcld.2 $e |- ( ph -> B e. RR+ ) $.
    $( Closure law for extended division of positive extended reals.
       (Contributed by Thierry Arnoux, 18-Dec-2016.) $)
    xrpxdivcld $p |- ( ph -> ( A /e B ) e. ( 0 [,] +oo ) ) $=
      ( cc0 wceq cxdiv co cpnf cicc wcel crp wa oveq1 xdiv0rp syl sylan9eqr w3o
      elxrge02 biimpri 3o1cs simpr adantr rpxdivcld 3o2cs xdivpnfrp 3o3cs sylib
      mpjao3dan ) ABFGZBCHIZFJKIZLZBMLZBJGZAUKNULFGZUNUKAULFCHIZFBFCHOACMLZURFG
      ECPQRUQULMLZULJGZUNUNUQUTVASULTUAZUBQAUONZUTUNVCBCAUOUCAUSUOEUDUEUQUTVAUN
      VBUFQAUPNVAUNUPAULJCHIZJBJCHOAUSVDJGECUGQRUQUTVAUNVBUHQABUMLUKUOUPSDBTUIU
      J $.
  $}

$(
  @{
    xltmul1d.1 @e |- ( ph -> A e. RR ) $@
    xltmul1d.2 @e |- ( ph -> B e. RR* ) $@
    xltmul1d.3 @e |- ( ph -> C e. ( 0 [,] +oo ) ) $@
    @( 'Less than' relationship between division and multiplication.
       (Contributed by Mario Carneiro, 28-May-2016.) @)
    xltdivmul2d @p |- ( ph -> ( ( A /e C ) < B <-> A < ( B *e C ) ) ) @=
      ? @.
  @}
$)

$( End $[ set-mbox-ta-xdiv.mm $] $)


$( Begin $[ set-mbox-ta-prime.mm $] $)
$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Prime Number Theory
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Fermat's two square theorem
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( The Brahmagupta-Fibonacci identity.  Express the product of two sums of
     two squares as a sum of two squares.  First result.  (Contributed by
     Thierry Arnoux, 1-Feb-2020.) $)
  bhmafibid1 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
      ( ( ( A ^ 2 ) + ( B ^ 2 ) ) x. ( ( C ^ 2 ) + ( D ^ 2 ) ) )
    = ( ( ( ( A x. C ) - ( B x. D ) ) ^ 2 )
      + ( ( ( A x. D ) + ( B x. C ) ) ^ 2 ) ) ) $=
    ( cr wcel wa ci cmul co caddc cabs cfv cexp cmin cre recnd oveq12d remulcld
    c2 cim simpll cc ax-icn a1i simplr mulcld addcld simprl simprr remuld crred
    replimd crimd eqtrd immuld oveq2d fveq2d oveq1d absmuld absreimsq oveqan12d
    abscld sqmuld 3eqtrd wceq resubcld readdcld syl2anc 3eqtr3d ) AEFZBEFZGZCEF
    ZDEFZGZGZAHBIJZKJZCHDIJZKJZIJZLMZTNJZACIJZBDIJZOJZHADIJZBCIJZKJZIJZKJZLMZTN
    JZATNJBTNJKJZCTNJDTNJKJZIJZWGTNJWJTNJKJZVQWCWMTNVQWBWLLVQWBWBPMZHWBUAMZIJZK
    JWLVQWBVQVSWAVQAVRVQAVKVLVPUBZQVQHBHUCFVQUDUEZVQBVKVLVPUFZQUGUHZVQCVTVQCVMV
    NVOUIZQVQHDXCVQDVMVNVOUJZQUGUHZUGUMVQWSWGXAWKKVQWSVSPMZWAPMZIJZVSUAMZWAUAMZ
    IJZOJWGVQVSWAXEXHUKVQXKWEXNWFOVQXIAXJCIVQABXBXDULZVQCDXFXGULZRVQXLBXMDIVQAB
    XBXDUNZVQCDXFXGUNZRRUOVQWTWJHIVQWTXIXMIJZXLXJIJZKJWJVQVSWAXEXHUPVQXSWHXTWIK
    VQXIAXMDIXOXRRVQXLBXJCIXQXPRRUOUQRUOURUSVQWDVSLMZWALMZIJZTNJYATNJZYBTNJZIJW
    QVQWCYCTNVQVSWAXEXHUTUSVQYAYBVQYAVQVSXEVCQVQYBVQWAXHVCQVDVMVPYDWOYEWPIABVAC
    DVAVBVEVQWGEFWJEFWNWRVFVQWEWFVQACXBXFSVQBDXDXGSVGVQWHWIVQADXBXGSVQBCXDXFSVH
    WGWJVAVIVJ $.

  $( The Brahmagupta-Fibonacci identity.  Express the product of two sums of
     two squares as a sum of two squares.  Second result.  (Contributed by
     Thierry Arnoux, 1-Feb-2020.) $)
  bhmafibid2 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
      ( ( ( A ^ 2 ) + ( B ^ 2 ) ) x. ( ( C ^ 2 ) + ( D ^ 2 ) ) )
    = ( ( ( ( A x. C ) + ( B x. D ) ) ^ 2 )
      + ( ( ( A x. D ) - ( B x. C ) ) ^ 2 ) ) ) $=
    ( cr wcel wa c2 cexp co caddc cmul simprl recnd sqcld simprr addcomd oveq2d
    cmin mulcld wceq bhmafibid1 ancom2s simpll simplr subcld addcld 3eqtrd ) AE
    FZBEFZGZCEFZDEFZGZGZAHIJBHIJKJZCHIJZDHIJZKJZLJUPURUQKJZLJZADLJZBCLJZSJZHIJZ
    ACLJZBDLJZKJZHIJZKJZVIVEKJUOUSUTUPLUOUQURUOCUOCUKULUMMNZOUODUODUKULUMPNZOQR
    UKUMULVAVJUAABDCUBUCUOVEVIUOVDUOVBVCUOADUOAUIUJUNUDNZVLTUOBCUOBUIUJUNUENZVK
    TUFOUOVHUOVFVGUOACVMVKTUOBDVNVLTUGOQUH $.

  ${
    2sqcoprm.1 $e |- ( ph -> P e. Prime ) $.
    2sqcoprm.2 $e |- ( ph -> A e. ZZ ) $.
    2sqcoprm.3 $e |- ( ph -> B e. ZZ ) $.
    2sqcoprm.4 $e |- ( ph -> ( ( A ^ 2 ) + ( B ^ 2 ) ) = P ) $.
    $( If the sum of two squares is prime, none of the original number is zero.
       (Contributed by Thierry Arnoux, 4-Feb-2020.) $)
    2sqn0 $p |- ( ph -> A =/= 0 ) $=
      ( cc0 wceq c2 cexp co caddc cprime wcel eqeltrd adantr wa sq0i zcnd sqcld
      oveq1d addid2d sylan9eqr wn cz sqnprm syl eqneltrd pm2.65da neqned ) ABIA
      BIJZBKLMZCKLMZNMZOPZAUQUMAUPDOHEQRAUMSUPUOOUMAUPIUONMUOUMUNIUONBTUCAUOACA
      CGUAUBUDUEAUOOPUFZUMACUGPURGCUHUIRUJUKUL $.

    $( If the sum of two squares is prime, the two original numbers are
       coprime.  (Contributed by Thierry Arnoux, 2-Feb-2020.) $)
    2sqcoprm $p |- ( ph -> ( A gcd B ) = 1 ) $=
      ( cc0 co c1 wceq wa wcel c2 adantr wn cz cdvds wbr cgcd 2sqn0 cexp gcdcld
      wne cn0 cn simpr neneqd intnanrd gcdn0cl syl21anc nnsqcld wi cprime nn0zd
      cuz cfv sqnprm syl caddc zsqcl gcddvds syl2anc simpld dvdssqim imp simprd
      w3a dvds2add syl32anc breqtrd wb dvdsprm mpbid eqeltrd mtand sylnib imnan
      eluz2b3 sylibr mpd df-ne notnotrd nn0sqeq1 mpdan ) ABIUEZBCUAJZKLZABCDEFG
      HUBAWGMZWHUFNZWHOUCJZKLZWIAWKWGABCFGUDZPWJWMWJWLKUEZWMQWJWLUGNZWOQZWJWHWJ
      BRNZCRNZBILZCILZMQWHUGNAWRWGFPAWSWGGPWJWTXAWJBIAWGUHUIUJBCUKULUMAWPWQUNZW
      GAWPWOMZQXBAWLOUQURNZXCAXDWLUONZAWHRNZXEQAWHWNUPZWHUSUTAXDMZWLDUOXHWLDSTZ
      WLDLZAXIXDAWLBOUCJZCOUCJZVAJZDSAWLRNZXKRNZXLRNZWLXKSTZWLXLSTZWLXMSTZAXFXN
      XGWHVBUTAWRXOFBVBUTAWSXPGCVBUTAXFWRWHBSTZXQXGFAXTWHCSTZAWRWSXTYAMFGBCVCVD
      ZVEXFWRMXTXQWHBVFVGULAXFWSYAXRXGGAXTYAYBVHXFWSMYAXRWHCVFVGULXNXOXPVIXQXRM
      XSWLXKXLVJVGVKHVLPXHXDDUONZXIXJVMAXDUHAYCXDEPZDWLVNVDVOYDVPVQWLVTVRWPWOVS
      WAPWBWLKWCVRWDWHWEVDWF $.
  $}

  ${
    2sqmod.1 $e |- ( ph -> P e. Prime ) $.
    2sqmod.2 $e |- ( ph -> A e. NN0 ) $.
    2sqmod.3 $e |- ( ph -> B e. NN0 ) $.
    2sqmod.4 $e |- ( ph -> C e. NN0 ) $.
    2sqmod.5 $e |- ( ph -> D e. NN0 ) $.
    2sqmod.6 $e |- ( ph -> A <_ B ) $.
    2sqmod.7 $e |- ( ph -> C <_ D ) $.
    2sqmod.8 $e |- ( ph -> ( ( A ^ 2 ) + ( B ^ 2 ) ) = P ) $.
    2sqmod.9 $e |- ( ph -> ( ( C ^ 2 ) + ( D ^ 2 ) ) = P ) $.
    $( Given two decompositions of a prime as a sum of two squares, show that
       they are equal.  (Contributed by Thierry Arnoux, 2-Feb-2020.) $)
    2sqmod $p |- ( ph -> ( A = C /\ B = D ) ) $=
      ( co wbr adantr wcel cc0 wceq cmul caddc cdvds cmin wa cle nn0red nn0ge0d
      cr c2 cexp cc nn0cnd sqcld eqtr4d subaddeqd cgcd c1 nn0zd dvdsmul1 mulcld
      cz syl2anc remulcld resubcld recnd sqge0d cn0 cn elnnne0 sylanbrc addcomd
      wne 2sqn0 eqtrd nnmulcld nnaddcld nnsqcld nnred addge02d mpbid bhmafibid1
      resqcld oveq12d syl22anc eqtr3d cprime prmz syl zcnd sqvald oveq2d oveq1d
      mulcomd 3eqtr4d breqtrrd wi zmulcld zaddcld dvdssqim zsqcl dvdsle syld wb
      imp zred letri3d mpbir2and eqtr2d subadd2d mpbird subidd subeq0d 2sqcoprm
      sqeq0d breqtrd coprmdvds syl3anc mp2and mpd nnrpd rprege0d le2sq syl12anc
      suble0d eqbrtrrd gcdcom le2sqd sq11d wn wo pncan2d subdird 3eqtr3d sqmuld
      simpr zsubcld clt rpmulcld subge0d eqeltrrd prmnn nnne0d neneqd subeqxfrd
      0red subdid subsq 3eqtr2d simpll neqned subne0d znsqcld syl21anc rpaddcld
      2z a1i rpexpcld ltaddrp2d bhmafibid2 ltnled condan subeq0bd addcld mul01d
      3eqtrd subcld mul0ord ord mulcan2ad euclemma mpjaodan jca ) ABDUAZCEUAAFB
[encoded data, 4560 characters]
      VYNYOYJUVN $.
  $}

  ${
    $d P a b c d $.
    $( There exists at most one decomposition of a prime as a sum of two
       squares.  See ~ 2sqb for the existence of such a decomposition.
       (Contributed by Thierry Arnoux, 2-Feb-2020.) $)
    2sqmo $p |- ( P e. Prime -> E* a e. NN0 E. b e. NN0 ( a <_ b
       /\ ( ( a ^ 2 ) + ( b ^ 2 ) ) = P ) ) $=
      ( vc vd wcel cv cle wbr c2 cexp co caddc wceq wa cn0 wrex wral nfv nfan
      cprime wi wrmo nfre1 simp-8l simp-8r simpllr simp-7r simp-6r simplr simpr
      simp-5r simp-4r 2sqmod simpld anasss adantl5r r19.29af r19.29an ralrimiva
      expl breq12 simpl oveq1d oveq12d eqeq1d anbi12d cbvrexdva rmo4 sylibr ) A
      UAFZBGZCGZHIZVLJKLZVMJKLZMLZANZOZCPQZDGZEGZHIZWAJKLZWBJKLZMLZANZOZEPQZOVL
      WANZUBZDPRZBPRVTBPUCVKWLBPVKVLPFZOZWKDPWNWAPFZOZVTWIWJWPVTOZWHWJEPWQWBPFZ
      OZWCWGWJWSWCOZWGOVSWJCPWTWGCWSWCCWQWRCWPVTCWPCSVSCPUDTWRCSTWCCSTWGCSTWPVT
      WRWCWGVMPFZVSWJWPWROZWCOZWGOZXAOZVNVRWJXEVNOZVROZWJVMWBNZXGVLVMWAWBAVKWMW
      OWRWCWGXAVNVRUEVKWMWOWRWCWGXAVNVRUFXDXAVNVRUGWNWOWRWCWGXAVNVRUHWPWRWCWGXA
      VNVRUIXEVNVRUJXBWCWGXAVNVRULXFVRUKXCWGXAVNVRUMUNUOUPUQWPVTWRWCWGUMURUPUSV
      AUTUTVTWIBDPWJVSWHCEPWJXHOZVNWCVRWGVLWAVMWBHVBXIVQWFAXIVOWDVPWEMXIVLWAJKW
      JXHVCVDXIVMWBJKWJXHUKVDVEVFVGVHVIVJ $.
  $}

$( End $[ set-mbox-ta-prime.mm $] $)


$( Begin $[ set-mbox-ta-algtop.mm $] $)
$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Extensible Structures
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Structure restriction operator
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y .+^ $.  $d x y A $.  $d x y B $.  $d x y H $.
    ressplusf.1 $e |- B = ( Base ` G ) $.
    ressplusf.2 $e |- H = ( G |`s A ) $.
    ressplusf.3 $e |- .+^ = ( +g ` G ) $.
    ressplusf.4 $e |- .+^ Fn ( B X. B ) $.
    ressplusf.5 $e |- A C_ B $.
    $( The group operation function ` +f ` of a structure's restriction is the
       operation function's restriction to the new base.  (Contributed by
       Thierry Arnoux, 26-Mar-2017.) $)
    ressplusf $p |- ( +f ` H ) = ( .+^ |` ( A X. A ) ) $=
      ( vx vy cv cmpt2 cxp cres cfv wceq cbs cvv co cplusf wss resmpt2 wfn fnov
      mp2an mpbi reseq1i ressbas2 ax-mp cplusg wcel fvex eqeltri eqid ressplusg
      ssexi eqtri plusffval 3eqtr4ri ) KLBBKMLMCUAZNZAAOZPZKLAAVBNZCVDPEUBQZABU
      CZVHVEVFRJJKLBBAAVBUDUGCVCVDCBBOUECVCRIKLBBCUFUHUIKLACVGEVHAESQRJABEDGFUJ
      UKCDULQZEULQZHATUMVIVJRABBDSQTFDSUNUOJURAVIDETGVIUPUQUKUSVGUPUTVA $.
  $}

  ${
    $d x .0. $.  $d x A $.  $d x B $.  $d x G $.  $d x H $.
    ressnm.1 $e |- H = ( G |`s A ) $.
    ressnm.2 $e |- B = ( Base ` G ) $.
    ressnm.3 $e |- .0. = ( 0g ` G ) $.
    ressnm.4 $e |- N = ( norm ` G ) $.
    $( The norm in a restricted structure.  (Contributed by Thierry Arnoux,
       8-Oct-2017.) $)
    ressnm $p |- ( ( G e. Mnd /\ .0. e. A /\ A C_ B )
                   -> ( N |` A ) = ( norm ` H ) ) $=
      ( vx wcel cds cfv cmpt cbs wceq 3ad2ant3 cvv eqid cmnd wss w3a cv co cres
      c0g cnm ressbas2 fvex eqeltri ssex ressds eqidd ress0g oveq123d mpteq12dv
      syl nmfval reseq1i resmpt syl5eq a1i 3eqtr4d ) CUALZFALZABUBZUCZKAKUDZFCM
      NZUEZOZKDPNZVIDUGNZDMNZUEZOZEAUFZDUHNZVHKAVKVMVPVGVEAVMQVFABDCGHUIRVHVIVI
      FVNVJVOVGVEVJVOQZVFVGASLVTABBCPNSHCPUJUKULAVJCDSGVJTZUMURRVHVIUNABCDFGHIU
      OUPUQVGVEVRVLQVFVGVRKBVKOZAUFVLEWBAKVJECBFJHIWAUSUTKBAVKVAVBRVSVQQVHKVOVS
      DVMVNVSTVMTVNTVOTUSVCVD $.
  $}

  ${
    $d x y K $.  $d x y L $.  $d x y ph $.
    abvpropd2.1 $e |- ( ph -> ( Base ` K ) = ( Base ` L ) ) $.
    abvpropd2.2 $e |- ( ph -> ( +g ` K ) = ( +g ` L ) ) $.
    abvpropd2.3 $e |- ( ph -> ( .r ` K ) = ( .r ` L ) ) $.
    $( Weaker version of ~ abvpropd .  (Contributed by Thierry Arnoux,
       8-Nov-2017.) $)
    abvpropd2 $p |- ( ph -> ( AbsVal ` K ) = ( AbsVal ` L ) ) $=
      ( vx vy cbs cfv eqidd cv wcel wa cplusg oveqdr cmulr abvpropd ) AGHBIJZBC
      ASKDAGLSMHLSMNZGHBOJCOJEPATGHBQJCQJFPR $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The opposite group
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    oppglt.1 $e |- O = ( oppG ` R ) $.
    ${
      oppgle.2 $e |- .<_ = ( le ` R ) $.
      $( less-than relation of an opposite group.  (Contributed by Thierry
         Arnoux, 13-Apr-2018.) $)
      oppgle $p |- .<_ = ( le ` O ) $=
        ( cple cfv c1 cc0 cdc df-ple 10nn c2 2re 2lt10 gtneii oppglem eqtri ) B
        AFGCFGEAFHIJZCDKLMSNOPQR $.
    $}

    ${
      oppglt.2 $e |- .< = ( lt ` R ) $.
      $( less-than relation of an opposite group.  (Contributed by Thierry
         Arnoux, 13-Apr-2018.) $)
      oppglt $p |- ( R e. V -> .< = ( lt ` O ) ) $=
        ( wcel cple cfv cid cdif cplt eqid pltfval cvv wceq fvex eqeltri oppgle
        coppg ax-mp syl6eqr ) ADGBAHIZJKZCLIZDBAUCUCMZFNCOGUEUDPCATIOEATQROUECU
        CAUCCEUFSUEMNUAUB $.
    $}
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Posets
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y z A $.  $d x y z B $.  $d x y z K $.
    ressprs.b $e |- B = ( Base ` K ) $.
    $( The restriction of a preordered set is still a preordered set.
       (Contributed by Thierry Arnoux, 11-Sep-2015.) $)
    ressprs $p |- ( ( K e. Preset /\ A C_ B ) -> ( K |`s A ) e. Preset ) $=
      ( vx vy vz wcel wa cvv cv cfv wbr cbs wral sseldd eqid r19.21bi ralrimiva
      breqd cpreset cress co cple wi ovexd simp-4l simp-4r simpllr simplr simpr
      wss jca isprs simprbi syl21anc wceq ressbas2 adantl fvex eqeltri ssex syl
      ressle anbi12d imbi12d raleqbidv anbi2d mpbi2and sylibr ) CUAHZABULZIZCAU
      BUCZJHZEKZVPVNUDLZMZVPFKZVQMZVSGKZVQMZIZVPWAVQMZUEZIZGVNNLZOZFWGOZEWGOZIZ
      VNUAHVMVOVPVPCUDLZMZVPVSWLMZVSWAWLMZIZVPWAWLMZUEZIZGAOZFAOZEAOZWKVMCAUBUF
      VMXAEAVMVPAHZIZWTFAXDVSAHZIZWSGAXFWAAHZIZVKVPBHZIZVSBHZWABHWSXHVKXIVKVLXC
      XEXGUGXHABVPVKVLXCXEXGUHZVMXCXEXGUIPUMXHABVSXLXDXEXGUJPXHABWAXLXFXGUKPXJX
      KIWSGBXJWSGBOZFBVKXMFBOZEBVKCJHXNEBOEFGBCWLDWLQZUNUORRRUPSSSVMXBWJVOVMXAW
      IEAWGVLAWGUQVKABVNCVNQZDURUSZVMWTWHFAWGXQVMWSWFGAWGXQVMWMVRWRWEVMWLVQVPVP
      VLWLVQUQZVKVLAJHXRABBCNLJDCNUTVAVBACWLJVNXPXOVDVCUSZTVMWPWCWQWDVMWNVTWOWB
      VMWLVQVPVSXSTVMWLVQVSWAXSTVEVMWLVQVPWAXSTVFVEVGVGVGVHVIEFGWGVNVQWGQVQQUNV
      J $.
  $}

  ${
    $d x y z D $.  $d x y z K $.
    oduprs.d $e |- D = ( ODual ` K ) $.
    $( Being a preset is a self-dual property.  (Contributed by Thierry Arnoux,
       13-Sep-2018.) $)
    oduprs $p |- ( K e. Preset -> D e. Preset ) $=
      ( vx vy vz wcel cvv cv cfv wbr wa wral isprs r19.21bi vex brcnv ralrimiva
      wi an32s cpreset cple ccnv cbs eqid simprbi simpld sylibr simprd anbi12ci
      ex imp 3imtr4g jca codu fvex eqeltri jctil odubas oduleval ) BUAGZAHGZDIZ
      VCBUBJZUCZKZVCEIZVEKZVGFIZVEKZLZVCVIVEKZSZLZFBUDJZMZEVOMZDVOMZLAUAGVAVRVB
      VAVQDVOVAVCVOGZLZVPEVOVTVGVOGZLZVNFVOWBVIVOGZLZVFVMWDVCVCVDKZVFWDWEVCVGVD
      KVGVIVDKLVCVIVDKSZWBWEWFLZFVOVTWGFVOMZEVOVAWHEVOMZDVOVABHGZWIDVOMDEFVOBVD
      VOUEZVDUEZNUFOOOUGVCVCVDDPZWMQUHWDVIVGVDKZVGVCVDKZLZVIVCVDKZVKVLVTWCWAWPW
      QSZVTWCLWAWRVAWCVSWAWRSVAWCLZVSLWAWRWSWAVSWRWSWALZVSLVIVIVDKZWRWTXAWRLZDV
      OWSXBDVOMZEVOVAXCEVOMZFVOVAWJXDFVOMFEDVOBVDWKWLNUFOOOUITUKTULTVHWOVJWNVCV
      GVDWMEPZQVGVIVDXEFPZQUJVCVIVDWMXFQUMUNRRRABUOJHCBUOUPUQURDEFVOAVEVOABCWKU
      SAVDBCWLUTNUH $.
  $}

  ${
    posrasymb.b $e |- B = ( Base ` K ) $.
    posrasymb.l $e |- .<_ = ( ( le ` K ) i^i ( B X. B ) ) $.
    $( A poset ordering is asymetric.  (Contributed by Thierry Arnoux,
       13-Sep-2018.) $)
    posrasymb $p |- ( ( K e. Poset /\ X e. B /\ Y e. B )
                -> ( ( X .<_ Y /\ Y .<_ X ) <-> X = Y ) ) $=
      ( cpo wcel w3a wbr wa breqi wb brxp sylanbrc brin rbaib syl syl5bb simp2
      cple cfv wceq cxp cin simp3 anbi12d eqid posasymb bitrd ) BHIZDAIZEAIZJZD
      ECKZEDCKZLDEBUBUCZKZEDURKZLDEUDUOUPUSUQUTUPDEURAAUEZUFZKZUOUSDECVBGMUODEV
      AKZVCUSNUOUMUNVDULUMUNUAZULUMUNUGZDEAAOPVCUSVDDEURVAQRSTUQEDVBKZUOUTEDCVB
      GMUOEDVAKZVGUTNUOUNUMVHVFVEEDAAOPVGUTVHEDURVAQRSTUHABURDEFURUIUJUK $.
  $}

  ${
    $d x y F $.
    $( A Toset is a Poset.  (Contributed by Thierry Arnoux, 20-Jan-2018.) $)
    tospos $p |- ( F e. Toset -> F e. Poset ) $=
      ( vx vy ctos wcel cpo cv cple cfv wbr wo cbs wral eqid istos simplbi ) AD
      EAFEBGZCGZAHIZJRQSJKCALIZMBTMBCTASTNSNOP $.

    $d x y z A $.  $d x y z F $.
    $( The restriction of a Poset is a Poset.  (Contributed by Thierry Arnoux,
       20-Jan-2018.) $)
    resspos $p |- ( ( F e. Poset /\ A e. V ) -> ( F |`s A ) e. Poset ) $=
      ( vx vy vz cpo wcel wa cress cvv cv cple cfv wbr wi wral eqid ssralv breq
      co wceq w3a cbs ovexd wss cin ressbas inss2 syl6eqssr adantl ispos adantr
      simprbi ralimdv syld sylc ressle anbi12d imbi1d imbi12d 3anbi123d ralbidv
      wb 2ralbidv syl mpbid sylanbrc ) BGHZACHZIZBAJUAZKHDLZVMVLMNZOZVMELZVNOZV
      PVMVNOZIZVMVPUBZPZVQVPFLZVNOZIZVMWBVNOZPZUCZFVLUDNZQZEWHQDWHQZVLGHVKBAJUE
      VKVMVMBMNZOZVMVPWKOZVPVMWKOZIZVTPZWMVPWBWKOZIZVMWBWKOZPZUCZFWHQZEWHQZDWHQ
      ZWJVKWHBUDNZUFZXAFXEQZEXEQZDXEQZXDVJXFVIVJWHAXEUGXEAXEVLCBVLRZXERZUHAXEUI
      UJUKVIXIVJVIBKHXIDEFXEBWKXKWKRZULUNUMXFXIXCDXEQXDXFXHXCDXEXFXHXBEXEQXCXFX
      GXBEXEXAFWHXESUOXBEWHXESUPUOXCDWHXESUPUQVKWKVNUBZXDWJVDVJXMVIABWKCVLXJXLU
      RUKXMXBWIDEWHWHXMXAWGFWHXMWLVOWPWAWTWFVMVMWKVNTXMWOVSVTXMWMVQWNVRVMVPWKVN
      TZVPVMWKVNTUSUTXMWRWDWSWEXMWMVQWQWCXNVPWBWKVNTUSVMWBWKVNTVAVBVCVEVFVGDEFW
      HVLVNWHRVNRULVH $.

    $d x y V $.
    $( The restriction of a Toset is a Toset.  (Contributed by Thierry Arnoux,
       20-Jan-2018.) $)
    resstos $p |- ( ( F e. Toset /\ A e. V ) -> ( F |`s A ) e. Toset ) $=
      ( vx vy ctos wcel cpo cv cple cfv wbr wo cbs wral eqid adantl istos breqd
      ssralv wa cress co tospos resspos sylan wss cin ressbas syl6eqssr simprbi
      inss2 adantr ralimdv syld sylc wb ressle orbi12d 2ralbidv mpbid sylanbrc
      ) BFGZACGZUAZBAUBUCZHGZDIZEIZVFJKZLZVIVHVJLZMZEVFNKZODVNOZVFFGVCBHGZVDVGB
      UDABCUEUFVEVHVIBJKZLZVIVHVQLZMZEVNOZDVNOZVOVEVNBNKZUGZVTEWCOZDWCOZWBVDWDV
      CVDVNAWCUHWCAWCVFCBVFPZWCPZUIAWCULUJQVCWFVDVCVPWFDEWCBVQWHVQPZRUKUMWDWFWE
      DVNOWBWEDVNWCTWDWEWADVNVTEVNWCTUNUOUPVDWBVOUQVCVDVTVMDEVNVNVDVRVKVSVLVDVQ
      VJVHVIABVQCVFWGWIURZSVDVQVJVIVHWJSUSUTQVADEVNVFVJVNPVJPRVB $.
  $}

  ${
    $d x y B $.  $d x y X $.  $d y Y $.  $d x y .<_ $.
    tleile.b $e |- B = ( Base ` K ) $.
    tleile.l $e |- .<_ = ( le ` K ) $.
    $( In a Toset, two elements must compare.  (Contributed by Thierry Arnoux,
       11-Feb-2018.) $)
    tleile $p |- ( ( K e. Toset /\ X e. B /\ Y e. B )
      -> ( X .<_ Y \/ Y .<_ X ) ) $=
      ( vx vy ctos wcel w3a cv wbr wo wral wceq breq1 breq2 orbi12d simp2 simp3
      cpo istos simprbi 3ad2ant1 rspc2va syl21anc ) BJKZDAKZEAKZLUJUKHMZIMZCNZU
      MULCNZOZIAPHAPZDECNZEDCNZOZUIUJUKUAUIUJUKUBUIUJUQUKUIBUCKUQHIABCFGUDUEUFU
      PUTDUMCNZUMDCNZOHIDEAAULDQUNVAUOVBULDUMCRULDUMCSTUMEQVAURVBUSUMEDCSUMEDCR
      TUGUH $.

    tltnle.s $e |- .< = ( lt ` K ) $.
    $( In a Toset, less-than is equivalent to not inverse less-than-or-equal
       see ~ pltnle .  (Contributed by Thierry Arnoux, 11-Feb-2018.) $)
    tltnle $p |- ( ( K e. Toset /\ X e. B /\ Y e. B )
      -> ( X .< Y <-> -. Y .<_ X ) ) $=
      ( ctos wcel w3a wbr wn wa cpo wb tospos pltval3 syl3an1 wo tleile syl6rbb
      ibar pm5.61 syl bitrd ) CJKZEAKZFAKZLZEFBMZEFDMZFEDMZNZOZUOUHCPKUIUJULUPQ
      CRABCDEFGHISTUKUMUNUAZUPUOQACDEFGHUBUQUOUQUOOUPUQUOUDUMUNUEUCUFUG $.
  $}

  ${
    $d x y K $.
    odutos.d $e |- D = ( ODual ` K ) $.
    $( Being a toset is a self-dual property.  (Contributed by Thierry Arnoux,
       13-Sep-2018.) $)
    odutos $p |- ( K e. Toset -> D e. Toset ) $=
      ( vx vy ctos wcel cpo cv cple cfv ccnv wbr cbs wral tospos eqid vex brcnv
      wo odupos syl w3a tleile orbi12i sylibr 3com23 ralrimivva odubas oduleval
      3expb istos sylanbrc ) BFGZAHGZDIZEIZBJKZLZMZUQUPUSMZTZEBNKZODVCOAFGUNBHG
      UOBPABCUAUBUNVBDEVCVCUNUPVCGZUQVCGZVBUNVEVDVBUNVEVDUCUQUPURMZUPUQURMZTVBV
      CBURUQUPVCQZURQZUDUTVFVAVGUPUQURDRZERZSUQUPURVKVJSUEUFUGUKUHDEVCAUSVCABCV
      HUIAURBCVIUJULUM $.
  $}

  ${
    tlt2.b $e |- B = ( Base ` K ) $.
    tlt2.e $e |- .<_ = ( le ` K ) $.
    tlt2.l $e |- .< = ( lt ` K ) $.
    $( In a Toset, two elements must compare.  (Contributed by Thierry Arnoux,
       13-Apr-2018.) $)
    tlt2 $p |- ( ( K e. Toset /\ X e. B /\ Y e. B )
      -> ( X .<_ Y \/ Y .< X ) ) $=
      ( ctos wcel w3a wbr wo wn exmidd wb tltnle 3com23 orbi2d mpbird ) CJKZEAK
      ZFAKZLZEFDMZFEBMZNUFUFOZNUEUFPUEUGUHUFUBUDUCUGUHQABCDFEGHIRSTUA $.
  $}

  ${
    tlt3.b $e |- B = ( Base ` K ) $.
    tlt3.l $e |- .< = ( lt ` K ) $.
    $( In a Toset, two elements must compare strictly, or be equal.
       (Contributed by Thierry Arnoux, 13-Apr-2018.) $)
    tlt3 $p |- ( ( K e. Toset /\ X e. B /\ Y e. B )
      -> ( X = Y \/ X .< Y \/ Y .< X ) ) $=
      ( ctos wcel w3a wceq wbr wo w3o cple cfv eqid tlt2 cpo wb pleval2 syl3an1
      tospos orcom syl6bb orbi1d mpbid df-3or sylibr ) CHIZDAIZEAIZJZDEKZDEBLZM
      ZEDBLZMZUNUOUQNUMDECOPZLZUQMURABCUSDEFUSQZGRUMUTUPUQUJCSIZUKULUTUPTCUCVBU
      KULJUTUOUNMUPABCUSDEFVAGUAUOUNUDUEUBUFUGUNUOUQUHUI $.
  $}

  ${
    trleile.b $e |- B = ( Base ` K ) $.
    trleile.l $e |- .<_ = ( ( le ` K ) i^i ( B X. B ) ) $.
    $( In a Toset, two elements must compare.  (Contributed by Thierry Arnoux,
       12-Sep-2018.) $)
    trleile $p |- ( ( K e. Toset /\ X e. B /\ Y e. B )
      -> ( X .<_ Y \/ Y .<_ X ) ) $=
      ( ctos wcel w3a wbr wo wb wa brxp sylibr brin rbaib syl breqi cfv cxp cin
      cple eqid tleile 3simpc ancomd orbi12d mpbird orbi12i ) BHIZDAIZEAIZJZDEB
      UDUAZAAUBZUCZKZEDURKZLZDECKZEDCKZLUOVADEUPKZEDUPKZLABUPDEFUPUEUFUOUSVDUTV
      EUODEUQKZUSVDMUOUMUNNVFULUMUNUGZDEAAOPUSVDVFDEUPUQQRSUOEDUQKZUTVEMUOUNUMN
      VHUOUMUNVGUHEDAAOPUTVEVHEDUPUQQRSUIUJVBUSVCUTDECURGTEDCURGTUKP $.
  $}

  ${
    $d a b c d .< $.  $d a b c d A $.  $d a b c d B $.  $d a b c K $.
    $d a b c ph $.
    toslub.b $e |- B = ( Base ` K ) $.
    toslub.l $e |- .< = ( lt ` K ) $.
    toslub.1 $e |- ( ph -> K e. Toset ) $.
    toslub.2 $e |- ( ph -> A C_ B ) $.
    ${
      toslub.e $e |- .<_ = ( le ` K ) $.
      $( Lemma for ~ toslub and ~ xrsclat .  (Contributed by Thierry Arnoux,
         17-Feb-2018.)  (Revised by NM, 15-Sep-2018.) $)
      toslublem $p |- ( ( ph /\ a e. B ) -> ( ( A. b e. A b .<_ a
            /\ A. c e. B ( A. b e. A b .<_ c -> a .<_ c ) )
     <-> ( A. b e. A -. a .< b
            /\ A. b e. B ( b .< a -> E. d e. A b .< d ) ) ) ) $=
        ( wcel wa wbr wral wn cv wi wrex ctos ad2antrr simplr wss adantr sselda
        tltnle syl3anc con2bid ralbidva simpr sseldd syl3an1 3expa syldan breq2
        wb weq notbid cbvralv ralnex bitri syl6bb adantlr imbi12d syl6bbr breq1
        con34b rexbidv anbi12d ) AGUAZCPZQZHUAZVNFRZHBSVNVQDRZTZHBSVQIUAZFRZHBS
        ZVNWAFRZUBZICSZVQVNDRZVQJUAZDRZJBUCZUBZHCSZVPVRVTHBVPVQBPZQZVSVRWNEUDPZ
        VOVQCPZVSVRTUTAWOVOWMMUEAVOWMUFVPBCVQABCUGZVONUHUICDEFVNVQKOLUJUKULUMVP
        WFWAVNDRZWAWHDRZJBUCZUBZICSWLVPWEXAICVPWACPZQZWEWTTZWRTZUBXAXCWCXDWDXEA
        XBWCXDUTVOAXBQZWCWAVQDRZTZHBSZXDXFWBXHHBXFWMWPWBXHUTXFWMQBCVQAWQXBWMNUE
        XFWMUNUOXFWPQXGWBAXBWPXGWBTUTZAWOXBWPXJMCDEFWAVQKOLUJUPUQULURUMXIWSTZJB
        SXDXHXKHJBHJVAXGWSVQWHWADUSVBVCWSJBVDVEVFVGXCWRWDXCWOXBVOWRWDTUTAWOVOXB
        MUEVPXBUNAVOXBUFCDEFWAVNKOLUJUKULVHWRWTVKVIUMWKXAHICHIVAZWGWRWJWTVQWAVN
        DVJXLWIWSJBVQWAWHDVJVLVHVCVIVM $.
    $}

    $( In a toset, the lowest upper bound ` lub ` , defined for partial orders
       is the supremum, ` sup ( A , B , .< ) ` , defined for total orders.
       (these are the set.mm definitions: lowest upper bound and supremum are
       normally synonymous).  Note that those two values are also equal if such
       a supremum does not exist: in that case, both are equal to the empty
       set.  (Contributed by Thierry Arnoux, 15-Feb-2018.)  (Revised by Thierry
       Arnoux, 24-Sep-2018.) $)
    toslub $p |- ( ph -> ( ( lub ` K ) ` A ) = sup ( A , B , .< ) ) $=
      ( vb va vc vd cv cfv wbr wral wi wa ctos cple crio wn wrex club csup eqid
      toslublem riotabidva biid lubval wcel wor wceq cid cres wss ibi simpld id
      tosso supval2 3syl 3eqtr4d ) AJNZKNZEUAOZPJBQVELNZVGPJBQVFVHVGPRLCQSZKCUB
      VFVEDPUCJBQVEVFDPVEMNDPMBUDRJCQSZKCUBZBEUEOZOBCDUFZAVIVJKCABCDEVGKJLMFGHI
      VGUGZUHUIAVIKJLCBVLEVGTFVNVLUGVIUJHIUKAETULZCDUMZVMVKUNHVOVPUOCUPVGUQZVOV
      PVQSCDEVGTFVNGVAURUSVPKJMCBDVPUTVBVCVD $.
  $}

  ${
    $d a b c d .< $.  $d a b c d A $.  $d a b c d B $.  $d a b c K $.
    $d a b c ph $.
    tosglb.b $e |- B = ( Base ` K ) $.
    tosglb.l $e |- .< = ( lt ` K ) $.
    tosglb.1 $e |- ( ph -> K e. Toset ) $.
    tosglb.2 $e |- ( ph -> A C_ B ) $.
    ${
      tosglb.e $e |- .<_ = ( le ` K ) $.
      $( Lemma for ~ tosglb and ~ xrsclat .  (Contributed by Thierry Arnoux,
         17-Feb-2018.)  (Revised by NM, 15-Sep-2018.) $)
      tosglblem $p |- ( ( ph /\ a e. B ) -> ( ( A. b e. A a .<_ b
             /\ A. c e. B ( A. b e. A c .<_ b -> c .<_ a ) )
       <-> ( A. b e. A -. a `' .< b
             /\ A. b e. B ( b `' .< a -> E. d e. A b `' .< d ) ) ) ) $=
        ( wcel wa wbr wral wn cv wi wrex ccnv ad2antrr wss adantr sselda simplr
        ctos tltnle syl3anc con2bid ralbidva simpr sseldd syl3an1 3com23 syldan
        wb 3expa weq breq1 notbid cbvralv ralnex syl6bb adantlr imbi12d syl6bbr
        bitri con34b breq2 rexbidv anbi12d notbii ralbii rexbii imbi12i anbi12i
        vex brcnv ) AGUAZCPZQZWCHUAZFRZHBSZIUAZWFFRZHBSZWIWCFRZUBZICSZQWFWCDRZT
        ZHBSZWCWFDRZJUAZWFDRZJBUCZUBZHCSZQWCWFDUDZRZTZHBSZWFWCXDRZWFWSXDRZJBUCZ
        UBZHCSZQWEWHWQWNXCWEWGWPHBWEWFBPZQZWOWGXNEUJPZWFCPZWDWOWGTUTAXOWDXMMUEW
        EBCWFABCUFZWDNUGUHAWDXMUICDEFWFWCKOLUKULUMUNWEWNWCWIDRZWSWIDRZJBUCZUBZI
        CSXCWEWMYAICWEWICPZQZWMXTTZXRTZUBYAYCWKYDWLYEAYBWKYDUTWDAYBQZWKWFWIDRZT
        ZHBSZYDYFWJYHHBYFXMXPWJYHUTYFXMQBCWFAXQYBXMNUEYFXMUOUPYFXPQYGWJAYBXPYGW
        JTUTZAXPYBYJAXOXPYBYJMCDEFWFWIKOLUKUQURVAUMUSUNYIXSTZJBSYDYHYKHJBHJVBYG
        XSWFWSWIDVCVDVEXSJBVFVKVGVHYCXRWLYCXOWDYBXRWLTUTAXOWDYBMUEAWDYBUIWEYBUO
        CDEFWCWIKOLUKULUMVIXRXTVLVJUNXBYAHICHIVBZWRXRXAXTWFWIWCDVMYLWTXSJBWFWIW
        SDVMVNVIVEVJVOXGWQXLXCXFWPHBXEWOWCWFDGWAZHWAZWBVPVQXKXBHCXHWRXJXAWFWCDY
        NYMWBXIWTJBWFWSDYNJWAWBVRVSVQVTVJ $.
    $}

    $( Same theorem as ~ toslub , for infinimum.  (Contributed by Thierry
       Arnoux, 17-Feb-2018.)  (Revised by AV, 28-Sep-2020.) $)
    tosglb $p |- ( ph -> ( ( glb ` K ) ` A ) = inf ( A , B , .< ) ) $=
      ( va vb vc vd cfv cv wbr wral wi wa ctos cglb ccnv csup cinf cple crio wn
      wrex eqid tosglblem riotabidva biid glbval wcel wor wceq cid cres wss ibi
      tosso simpld cnvso sylib id supval2 3syl 3eqtr4d df-inf eqcomi a1i eqtrd
      ) ABEUANZNZBCDUBZUCZBCDUDZAJOZKOZEUENZPKBQLOZVSVTPKBQWAVRVTPRLCQSZJCUFVRV
      SVOPUGKBQVSVRVOPVSMOVOPMBUHRKCQSZJCUFZVNVPAWBWCJCABCDEVTJKLMFGHIVTUIZUJUK
      AWBJKLCBVMEVTTFWEVMUIWBULHIUMAETUNZCVOUOZVPWDUPHWFCDUOZWGWFWHUQCURVTUSZWF
      WHWISCDEVTTFWEGVAUTVBCDVCVDWGJKMCBVOWGVEVFVGVHVPVQUPAVQVPBCDVIVJVKVL $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Complete lattices
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    clatp0cl.b $e |- B = ( Base ` W ) $.
    clatp0cl.0 $e |- .0. = ( 0. ` W ) $.
    $( The poset zero of a complete lattice belongs to its base.  (Contributed
       by Thierry Arnoux, 17-Feb-2018.) $)
    clatp0cl $p |- ( W e. CLat -> .0. e. B ) $=
      ( ccla wcel cglb cfv eqid p0val wss ssid clatglbcl mpan2 eqeltrd ) BFGZCA
      BHIZIZAARBFCDRJZEKQAALSAGAMAARBDTNOP $.
  $}

  ${
    clatp1cl.b $e |- B = ( Base ` W ) $.
    clatp1cl.1 $e |- .1. = ( 1. ` W ) $.
    $( The poset one of a complete lattice belongs to its base.  (Contributed
       by Thierry Arnoux, 17-Feb-2018.) $)
    clatp1cl $p |- ( W e. CLat -> .1. e. B ) $=
      ( ccla wcel club cfv eqid p1val wss ssid clatlubcl mpan2 eqeltrd ) CFGZBA
      CHIZIZAARBCFDRJZEKQAALSAGAMAARCDTNOP $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Extended reals Structure - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Assume the scalar component of the extended real structure is the field of
     the real numbers (this has to be defined in the main body of set.mm).
     (Contributed by Thierry Arnoux, 22-Oct-2017.) $)
  ax-xrssca $a |- RRfld = ( Scalar ` RR*s ) $.

  $( Assume the scalar product of the extended real structure is the extended
     real number multiplication operation (this has to be defined in the main
     body of set.mm).  (Contributed by Thierry Arnoux, 22-Oct-2017.) $)
  ax-xrsvsca $a |- *e = ( .s ` RR*s ) $.

  $( The zero of the extended real numbers.  The extended real is not a group,
     as its addition is not associative.  (cf. ~ xaddass and ~ df-xrs ),
     however it has a zero.  (Contributed by Thierry Arnoux, 13-Jun-2017.) $)
  xrs0 $p |- 0 = ( 0g ` RR*s ) $=
    ( cc0 cxrs c0g cfv wceq wtru cxr cxad cbs xrsbas a1i cplusg xrsadd wcel 0xr
    vx cv co xaddid2 adantl xaddid1 grpidd trud ) ABCDEFPGHBAGBIDEFJKHBLDEFMKAG
    NFOKPQZGNZAUDHRUDEFUDSTUEUDAHRUDEFUDUATUBUC $.

  $( The "strictly less than" relation for the extended real structure.
     (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
  xrslt $p |- < = ( lt ` RR*s ) $=
    ( clt cle cid cdif cxrs cplt cfv dflt2 cvv wcel wceq xrsex xrsle eqid ax-mp
    pltfval eqtr4i ) ABCDZEFGZHEIJSRKLISEBMSNPOQ $.

  ${
    $d x B $.
    $( The inversion operation in the extended real numbers.  The extended real
       is not a group, as its addition is not associative.  (cf. ~ xaddass and
       ~ df-xrs ), however it has an inversion operation.  (Contributed by
       Thierry Arnoux, 13-Jun-2017.) $)
    xrsinvgval $p |- ( B e. RR* -> ( ( invg ` RR*s ) ` B ) = -e B ) $=
      ( vx cxr wcel cxrs cminusg cfv cxad cc0 wceq crio cxne xrsbas xrsadd xrs0
      cv co eqid grpinvval xnegcl wb xaddeq0 ancoms riota5 eqtrd ) ACDZAEFGZGBP
      ZAHQIJZBCKALZBCHEUGAIMNOUGRSUFUIBCUJATUHCDUFUIUHUJJUAUHAUBUCUDUE $.
  $}

  ${
    $d n A $.  $d m n x y B $.
    $( The "multiple" function in the extended real numbers structure.
       (Contributed by Thierry Arnoux, 14-Jun-2017.) $)
    xrsmulgzz $p |- ( ( A e. ZZ /\ B e. RR* ) ->
                                        ( A ( .g ` RR*s ) B ) = ( A *e B ) ) $=
      ( cxr wcel cxrs co cxmu wceq c1 oveq1 eqeq12d xrsbas wa cxad simpr oveq1d
      cc0 adantl cr a1i vn vm vx vy cz cmg cv cneg caddc xrs0 eqid mulg0 xmul02
      cfv eqtr4d cn0 cn simpll xrsadd mulgnnp1 syl2anc simpl eqtrd 0p1e1 syl6eq
      xaddid2 mulg1 3eqtr4rd elnn0 sylib mpjaodan adantr cle wbr nn0ssre ressxr
      wo sstri sseldi nn0ge0 ad2antlr 1re rexri 0le1 xadddi2r syl221anc xmulid2
      rexadd syl oveq2d 3eqtr3d 3eqtr4d exp31 cxne xnegeq cminusg mulgnegnn cvv
      ancoms xrsex wss ssid simp2 simp3 xaddcld mulgnnsubcl 3anidm12 xrsinvgval
      w3a nnre rexneg nnssre xmulneg1 eqtr3d zindd impcom ) BCDZAUEDABEUFUNZFZA
      BGFZHZUAUGZBXRFZYBBGFZHQBXRFZQBGFZHUBUGZBXRFZYGBGFZHZYGUHZBXRFZYKBGFZHZYG
      IUIFZBXRFZYOBGFZHZYAXQUAUBAYBQHYCYEYDYFYBQBXRJYBQBGJKYBYGHYCYHYDYIYBYGBXR
      JYBYGBGJKYBYOHYCYPYDYQYBYOBXRJYBYOBGJKYBYKHYCYLYDYMYBYKBXRJYBYKBGJKYBAHYC
      XSYDXTYBABXRJYBABGJKXQYEQYFCXREBQLUJXRUKZULZBUMUOXQYGUPDZYJYRXQUUAMZYJMZY
      HBNFZYIBNFZYPYQUUCYHYIBNUUBYJOPUUBYPUUDHZYJUUBYGUQDZUUFYGQHZUUBUUGMUUGXQU
      UFUUBUUGOXQUUAUUGURCNXREYGBLYSUSUTVAUUBUUHMUUHXQUUFUUBUUHOXQUUAUUHURUUHXQ
      MZQBNFZBUUDYPXQUUJBHUUHBVFRUUIYHQBNUUIYHYEQUUIYGQBXRUUHXQVBZPXQYEQHUUHYTR
      VCPUUIYPIBXRFZBUUIYOIBXRUUIYOQIUIFIUUIYGQIUIUUKPVDVEPXQUULBHUUHCXREBLYSVG
      RVCVHVAUUBUUAUUGUUHVQXQUUAOZYGVIVJVKVLUUCYGINFZBGFZYIIBGFZNFZYQUUEUUCYGCD
      ZQYGVMVNZICDZQIVMVNZXQUUOUUQHUUCUPCYGUPSCVOVPVRUUBUUAYJUUMVLZVSUUAUUSXQYJ
      YGVTWAUUTUUCIWBWCTUVAUUCWDTXQUUAYJURZYGIBWEWFUUCUUNYOBGUUCYGSDZISDZUUNYOH
      UUCUPSYGVOUVBVSUVEUUCWBTYGIWHVAPUUCUUPBYINUUCXQUUPBHUVCBWGWIWJWKWLWMXQUUG
      YJYNXQUUGMZYJMYHWNZYIWNZYLYMYJUVGUVHHUVFYHYIWORUVFYLUVGHYJUVFYLYHEWPUNZUN
      ZUVGUUGXQYLUVJHCXREUVIYGBLYSUVIUKWQWSUVFYHCDZUVJUVGHUUGXQUVKUUGXQUVKUUGUC
      UDCNCXREYGWRBLYSUSEWRDUUGWTTCCXAUUGCXBTUUGUCUGZCDZUDUGZCDZXIUVLUVNUUGUVMU
      VOXCUUGUVMUVOXDXEXFXGWSYHXHWIVCVLUVFYMUVHHYJUVFYGWNZBGFZYMUVHUVFUVPYKBGUV
      FUVDUVPYKHUUGUVDXQYGXJRYGXKWIPUVFUURXQUVQUVHHUVFUQCYGUQSCXLVPVRXQUUGOVSXQ
      UUGVBYGBXMVAXNVLWLWMXOXP $.
  $}

  ${
    $d x y z $.
    $( The extended real numbers form a toset.  (Contributed by Thierry Arnoux,
       15-Feb-2018.) $)
    xrstos $p |- RR*s e. Toset $=
      ( vx vy vz cxrs ctos wcel cpo cv cle wbr wo cxr xrsex xrsbas xrsle xrleid
      wral wa wceq xrletri3 biimprd xrletr isposi xrletri rgen2a istos mpbir2an
      ) DEFDGFAHZBHZIJZUIUHIJZKZBLQALQABCLDIMNOUHPUHLFUILFRUHUISUJUKRUHUITUAUHU
      ICHUBUCULABLUHUIUDUEABLDINOUFUG $.
  $}

  ${
    $d a b c d x $.
    $( The extended real numbers form a complete lattice.  (Contributed by
       Thierry Arnoux, 15-Feb-2018.) $)
    xrsclat $p |- RR*s e. CLat $=
      ( vb va vx vc vd cxrs wcel cxr wceq wa xrstos cv cle wbr wral wreu xrsbas
      wi xrsle clt ccla cpo club cfv cdm cglb ctos tospos ax-mp crab eqid lubdm
      cpw biid rabid2 wss selpw wn wor xrltso a1i xrsupss supeu xrslt toslublem
      wrex reubidva mpbird sylbi mprgbir eqtr4i glbdm ccnv cnvso mpbi xrinfmss2
      id tosglblem pm3.2i isclat mpbir2an ) FUAGFUBGZFUCUDZUEZHUMZIZFUFUDZUEZWE
      IZJFUGGZWBKFUHZUIWFWIWDALZBLZMNACLZOWLDLZMNAWNOWMWOMNRDHOJZBHPZCWEUJZWEWJ
      WDWRIKWJWPBADHWCFMUBCQSWCUKZWPUNWKULUIWEWRIWQCWEWQCWEUOWNWEGZWNHUPZWQCHUQ
      ZXAWQWMWLTNURAWNOWLWMTNWLELZTNEWNVFRAHOJZBHPXABAEHWNTHTUSZXAUTVABAEWNVBVC
      XAWPXDBHXAWNHTFMBADEQVDWJXAKVAZXAVQZSVEVGVHVIVJVKWHWMWLMNAWNOWOWLMNAWNOWO
      WMMNRDHOJZBHPZCWEUJZWEWJWHXJIKWJXHBADHWGFMUBCQSWGUKZXHUNWKVLUIWEXJIXICWEX
      ICWEUOWTXAXIXBXAXIWMWLTVMZNURAWNOWLWMXLNWLXCXLNEWNVFRAHOJZBHPXABAEHWNXLHX
      LUSZXAXEXNUTHTVNVOVABAEWNVPVCXAXHXMBHXAWNHTFMBADEQVDXFXGSVRVGVHVIVJVKVSHW
      CWGFQWSXKVTWA $.
  $}

  $( The poset 0 of the extended real numbers is minus infinity.  (Contributed
     by Thierry Arnoux, 18-Feb-2018.)  (Proof shortened by AV, 28-Sep-2020.) $)
  xrsp0 $p |- -oo = ( 0. ` RR*s ) $=
    ( cxrs cp0 cfv cxr cglb clt cinf cmnf cvv wcel wceq xrsex xrsbas eqid p0val
    ax-mp wss ssid xrslt ctos xrstos a1i id tosglb xrinfm 3eqtrri ) ABCZDAECZCZ
    DDFGZHAIJUGUIKLDUHAIUGMUHNUGNOPDDQZUIUJKDRUKDDFAMSATJUKUAUBUKUCUDPUEUF $.

  $( The poset 1 of the extended real numbers is plus infinity.  (Contributed
     by Thierry Arnoux, 18-Feb-2018.) $)
  xrsp1 $p |- +oo = ( 1. ` RR*s ) $=
    ( cxrs cp1 cfv cxr club clt csup cpnf cvv wcel wceq xrsex xrsbas eqid p1val
    ax-mp wss ssid xrslt ctos xrstos a1i id toslub xrsup 3eqtrri ) ABCZDAECZCZD
    DFGZHAIJUGUIKLDUHUGAIMUHNUGNOPDDQZUIUJKDRUKDDFAMSATJUKUAUBUKUCUDPUEUF $.

  ${
    ressmulgnn.1 $e |- H = ( G |`s A ) $.
    ressmulgnn.2 $e |- A C_ ( Base ` G ) $.
    ressmulgnn.3 $e |- .* = ( .g ` G ) $.
    ressmulgnn.4 $e |- I = ( invg ` G ) $.
    $( Values for the group multiple function in a restricted structure.
       (Contributed by Thierry Arnoux, 12-Jun-2017.) $)
    ressmulgnn $p |-
                ( ( N e. NN /\ X e. A ) -> ( N ( .g ` H ) X ) = ( N .* X ) ) $=
      ( cn wcel cfv co c1 cbs wceq eqid ax-mp cmg csn cxp cseq wss ressbas2 cvv
      wa cplusg fvex ssexi ressplusg seqeq2 mulgnn simpr sseldi syldan eqtr4d )
      FLMZGAMZUHZFGCUANZOFBUINZLGUBUCZPUDZNZFGEOZACUINZVEVBCFGABQNZUEACQNRIAVIC
      BHVISZUFTVHSVBSVCVHRZVEVHVDPUDRAUGMVKAVIBQUJIUKAVCBCUGHVCSZULTVCVHVDPUMTU
      NUSUTGVIMVGVFRVAAVIGIUSUTUOUPVIVCVEEBFGVJVLJVESUNUQUR $.

    ressmulgnn0.4 $e |- ( 0g ` G ) = ( 0g ` H ) $.
    $( Values for the group multiple function in a restricted structure.
       (Contributed by Thierry Arnoux, 14-Jun-2017.) $)
    ressmulgnn0 $p |-
               ( ( N e. NN0 /\ X e. A ) -> ( N ( .g ` H ) X ) = ( N .* X ) ) $=
      ( wcel wa cfv co wceq cc0 simpr eqid cn0 cn cmg simplr ressmulgnn syl2anc
      c0g cbs wss ressbas2 ax-mp mulg0 syl oveq1d sseldi eqtr4d wo elnn0 biimpi
      3eqtr4d adantr mpjaodan ) FUAMZGAMZNZFUBMZFGCUCOZPZFGEPZQZFRQZVEVFNVFVDVJ
      VEVFSVCVDVFUDABCDEFGHIJKUEUFVEVKNZVHRGEPZVIVLRGVGPZBUGOZVHVMVLVDVNVOQVCVD
      VKUDZAVGCGVOABUHOZUIACUHOQIAVQCBHVQTZUJUKLVGTULUMVLFRGVGVEVKSZUNVLGVQMVMV
      OQVLAVQGIVPUOVQEBGVOVRVOTJULUMUTVLFRGEVSUNUPVCVFVKUQZVDVCVTFURUSVAVB $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The extended nonnegative real numbers commutative monoid
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( The base of the extended nonnegative real numbers.  (Contributed by
     Thierry Arnoux, 30-Jan-2017.) $)
  xrge0base $p |- ( 0 [,] +oo ) = ( Base ` ( RR*s |`s ( 0 [,] +oo ) ) ) $=
    ( cc0 cpnf cicc cxr cin cxrs cress cbs cfv wss wceq iccssxr df-ss mpbi wcel
    co cvv ovex eqid xrsbas ressbas ax-mp eqtr3i ) ABCPZDEZUDFUDGPZHIZUDDJUEUDK
    ABLUDDMNUDQOUEUGKABCRUDDUFQFUFSTUAUBUC $.

  $( The zero of the extended nonnegative real numbers monoid.  (Contributed by
     Thierry Arnoux, 30-Jan-2017.) $)
  xrge00 $p |- 0 = ( 0g ` ( RR*s |`s ( 0 [,] +oo ) ) ) $=
    ( cxrs cxr cmnf cdif cress co cmnd wcel cc0 cpnf cicc wss cfv wceq ax-mp wn
    wbr mpbi cin cvv csn c0g eqid xrs1mnd ccmn xrge0cmn cmnmnd cle wa mnflt0 wb
    clt mnfxr 0xr xrltnle mp2an intnan elxrge0 mtbir iccssxr eqsstr3i 0e0iccpnf
    difsn ssdif cbs difss df-ss xrex difexg xrsbas ressbas eqtr3i ovex ressress
    xrs10 dfss incom eqtr2i oveq2i submnd0 mp4an ) ABCUAZDZEFZGHAIJKFZEFZGHZWEW
    CLZIWEHIWFUBMNWDWDUCZUDWFUEHWGUFWFUGOWEWEWBDZWCCWEHZPWJWENWKCBHZICUHQZUIWMW
    LCIULQZWMPZUJWLIBHWNWOUKUMUNCIUOUPRUQCURUSCWEVCOWEBLWJWCLIJUTWEBWBVDOVAZVBW
    CWEWDWFIWCBSZWCWDVEMZWCBLWQWCNBWBVFWCBVGRWCTHZWQWRNBTHWSVHBWBTVIOZWCBWDTAWI
    VJVKOVLWDWIVOWDWEEFZAWCWESZEFZWFWSWETHXAXCNWTIJKVMWCWEATTVNUPXBWEAEWEWEWCSZ
    XBWHWEXDNWPWEWCVPRWEWCVQVRVSVRVTWA $.

  $( The additive law of the extended nonnegative real numbers monoid is the
     addition in the extended real numbers.  (Contributed by Thierry Arnoux,
     20-Mar-2017.) $)
  xrge0plusg $p |- +e = ( +g ` ( RR*s |`s ( 0 [,] +oo ) ) ) $=
    ( cc0 cpnf cicc co cvv wcel cxad cxrs cress cplusg wceq ovex eqid ressplusg
    cfv xrsadd ax-mp ) ABCDZEFGHRIDZJOKABCLRGHSESMPNQ $.

  $( The lower-or-equal relation in the extended real numbers.  (Contributed by
     Thierry Arnoux, 14-Mar-2018.) $)
  xrge0le $p |- <_ = ( le ` ( RR*s |`s ( 0 [,] +oo ) ) ) $=
    ( cc0 cpnf cicc co cvv wcel cle cxrs cress cple wceq ovex eqid xrsle ressle
    cfv ax-mp ) ABCDZEFGHRIDZJPKABCLRHGESSMNOQ $.

  $( The group multiple function in the extended nonnegative real numbers.
     (Contributed by Thierry Arnoux, 14-Jun-2017.) $)
  xrge0mulgnn0 $p |- ( ( A e. NN0 /\ B e. ( 0 [,] +oo ) ) ->
                  ( A ( .g ` ( RR*s |`s ( 0 [,] +oo ) ) ) B ) = ( A *e B ) ) $=
    ( cn0 wcel cc0 cpnf cicc co wa cxrs cress cmg cfv cxmu cminusg eqid cxr cbs
    iccssxr c0g xrsbas sseqtri xrs0 xrge00 eqtr3i ressmulgnn0 cz wceq xrsmulgzz
    nn0z sseli syl2an eqtrd ) ACDZBEFGHZDZIABJUOKHZLMHABJLMZHZABNHZUOJUQJOMZURA
    BUQPUOQJRMEFSZUAUBURPVAPEJTMUQTMUCUDUEUFUNAUGDBQDUSUTUHUPAUJUOQBVBUKABUIULU
    M $.

  $( Associativity of extended nonnegative real addition.  (Contributed by
     Thierry Arnoux, 8-Jun-2017.) $)
  xrge0addass $p |- ( ( A e. ( 0 [,] +oo ) /\ B e. ( 0 [,] +oo ) /\
    C e. ( 0 [,] +oo ) ) -> ( ( A +e B ) +e C ) = ( A +e ( B +e C ) ) ) $=
    ( cc0 cpnf co wcel cxr cmnf wne cxad sseldi cle wbr wa elicc4 syl3anc mpbid
    wb simpld cicc w3a iccssxr simp1 0xr a1i pnfxr ge0nemnf syl2anc simp2 simp3
    wceq xaddass syl222anc ) ADEUAFZGZBUOGZCUOGZUBZAHGZAIJZBHGZBIJZCHGZCIJZABKF
    CKFABCKFKFULUSUOHADEUCZUPUQURUDZLZUSUTDAMNZVAVHUSVIAEMNZUSUPVIVJOZVGUSDHGZE
    HGZUTUPVKSVLUSUEUFZVMUSUGUFZVHDEAPQRTAUHUIUSUOHBVFUPUQURUJZLZUSVBDBMNZVCVQU
    SVRBEMNZUSUQVRVSOZVPUSVLVMVBUQVTSVNVOVQDEBPQRTBUHUIUSUOHCVFUPUQURUKZLZUSVDD
    CMNZVEWBUSWCCEMNZUSURWCWDOZWAUSVLVMVDURWESVNVOWBDECPQRTCUHUIABCUMUN $.

  $( The sum of nonnegative and positive numbers is positive.  See ~ addgtge0 .
     (Contributed by Thierry Arnoux, 6-Jul-2017.) $)
  xrge0addgt0 $p |- ( ( ( A e. ( 0 [,] +oo ) /\ B e. ( 0 [,] +oo ) ) /\ 0 < A )
                                                         -> 0 < ( A +e B ) ) $=
    ( cc0 cpnf cicc co wcel wa clt wbr cxad wceq cxr 0xr xaddid1 simplr simplll
    a1i sseldi breq2d ax-mp simpr wi iccssxr simpllr xlt2add syl22anc syl5eqbrr
    mp2and oveq2 adantl syl bitr3d mpbird cle wo iccgelb syl3anc xrleloe biimpa
    pnfxr syl21anc mpjaodan ) ACDEFZGZBVDGZHZCAIJZHZCBIJZCABKFZIJZCBLZVIVJHZCCC
    KFZVKICMGZVOCLNCOUAVNVHVJVOVKIJZVGVHVJPVIVJUBVNVPVPAMGZBMGZVHVJHVQUCVPVNNRZ
    VTVNVDMACDUDZVEVFVHVJQSVNVDMBWAVEVFVHVJUESCCABUFUGUIUHVIVMHZVLVHVGVHVMPWBCA
    CKFZIJVLVHWBWCVKCIVMWCVKLVICBAKUJUKTWBWCACIWBVRWCALWBVDMAWAVEVFVHVMQSAOULTU
    MUNVIVPVSCBUOJZVJVMUPZVPVINRZVIVDMBWAVEVFVHPZSVIVPDMGZVFWDWFWHVIVARWGCDBUQU
    RVPVSHWDWECBUSUTVBVC $.

  $( Right-distributivity of extended nonnegative real multiplication over
     addition.  (Contributed by Thierry Arnoux, 30-Jun-2017.) $)
  xrge0adddir $p |- ( ( A e. ( 0 [,] +oo ) /\ B e. ( 0 [,] +oo ) /\ C e.
    ( 0 [,] +oo ) ) -> ( ( A +e B ) *e C ) = ( ( A *e C ) +e ( B *e C ) ) ) $=
    ( cc0 cpnf co wcel cxad cxmu wceq wa cxr cr simpl1 sseldi simpr wbr syl2anc
    syl oveq1d cicc w3a iccssxr simpl2 rge0ssre xadddir syl3anc simpll1 simpll2
    cico clt xaddcld xrge0addgt0 syl21anc xmulpnf1 oveq2 ad2antlr wne ge0xmulcl
    cmnf simpll3 xrge0neqmnf xaddpnf2 3eqtr4d eqtrd eqtr4d xmul02 oveq1 xmulcld
    adantl xaddid2 3eqtr3d 3eqtr2rd cle wo 0xr a1i pnfxr iccgelb xrleloe biimpa
    mpjaodan wb 0lepnf eliccelico mp3an 3anbi3i simp3bi ) ADEUAFZGZBWIGZCWIGZUB
    ZCDEUJFZGZABHFZCIFZACIFZBCIFZHFZJZCEJZWMWOKZALGZBLGZCMGXAXCWILADEUCZWJWKWLW
    ONOXCWILBXFWJWKWLWOUDOXCWNMCUEWMWOPOABCUFUGWMXBKZDAUKQZXADAJZXGXHKZWQEWSHFZ
    WTXJWPEIFZEWQXKXJWPLGDWPUKQZXLEJXJABXJWILAXFWJWKWLXBXHUHZOZXJWILBXFWJWKWLXB
    XHUIZOULXJWJWKXHXMXNXPXGXHPZABUMUNWPUORXBWQXLJWMXHCEWPIUPUQXJWSLGZWSUTURZXK
    EJXJWILWSXFXJWKWLWSWIGZXPWJWKWLXBXHVABCUSRZOXJXTXSYAWSVBSWSVCRVDXJWREWSHXJW
    RAEIFZEXBWRYBJWMXHCEAIUPUQXJXDXHYBEJXOXQAUORVETVFXGXIKZWTWSDBHFZCIFZWQYCDCI
    FZWSHFDWSHFZWTWSYCYFDWSHYCCLGYFDJYCWILCXFWJWKWLXBXIVAOZCVGSTYCYFWRWSHXIYFWR
    JXGDACIVHVJTYCXRYGWSJYCBCYCWILBXFWJWKWLXBXIUIOZYHVIWSVKSVLYCYDBCIYCXEYDBJYI
    BVKSTXIYEWQJXGXIYDWPCIDABHVHTVJVMXGDLGZXDDAVNQZXHXIVOZYJXGVPVQZXGWILAXFWJWK
    WLXBNZOXGYJELGZWJYKYMYOXGVRVQYNDEAVSUGYJXDKYKYLDAVTWAUNWBWMWJWKWOXBVOZWLYPW
    JWKYJYODEVNQWLYPWCVPVRWDDECWEWFWGWHWB $.

  $( Left-distributivity of extended nonnegative real multiplication over
     addition.  (Contributed by Thierry Arnoux, 6-Sep-2018.) $)
  xrge0adddi $p |- ( ( A e. ( 0 [,] +oo ) /\ B e. ( 0 [,] +oo ) /\ C e.
    ( 0 [,] +oo ) ) -> ( C *e ( A +e B ) ) = ( ( C *e A ) +e ( C *e B ) ) ) $=
    ( cc0 cpnf cicc co wcel w3a cxad cxmu xrge0adddir wceq iccssxr simp1 sseldi
    cxr simp2 xmulcom syl2anc xaddcld simp3 oveq12d 3eqtr3d ) ADEFGZHZBUEHZCUEH
    ZIZABJGZCKGZACKGZBCKGZJGCUJKGZCAKGZCBKGZJGABCLUIUJQHCQHZUKUNMUIABUIUEQADENZ
    UFUGUHOPZUIUEQBURUFUGUHRPZUAUIUEQCURUFUGUHUBPZUJCSTUIULUOUMUPJUIAQHUQULUOMU
    SVAACSTUIBQHUQUMUPMUTVABCSTUCUD $.

  $( Extended nonnegative real version of ~ npcan .  (Contributed by Thierry
     Arnoux, 9-Jun-2017.) $)
  xrge0npcan $p |- ( ( A e. ( 0 [,] +oo ) /\ B e. ( 0 [,] +oo ) /\ B <_ A ) ->
     ( ( A +e -e B ) +e B ) = A ) $=
    ( cc0 cpnf co wcel cle wbr wceq cxne wa cxr simpl1 sseldi simpr syl2anc syl
    cxad cmnf wne cicc w3a iccssxr simpl3 eqbrtrrd xgepnf biimpa xnegeq oveq12d
    pnfxr xnegid syl6eq oveq1d oveq2d xaddid2 mp1i 3eqtrd eqtr4d wn xrge0neqmnf
    ax-mp simpl2 xnegcld xnegneg xnegmnf stoic1a neqned xaddass xaddcom mpancom
    sylan9req syl222anc xnegcl eqtrd xaddid1 sylan9eqr pm2.61dan ) ACDUAEZFZBVR
    FZBAGHZUBZBDIZABJZREZBREZAIWBWCKZWFDAWGWFCBRECDREZDWGWECBRWGWEDDJZREZCWGADW
    DWIRWGALFZDAGHZADIZWGVRLACDUCZVSVTWAWCMNWGBDAGWBWCOZVSVTWAWCUDUEWKWLWMAUFUG
    PZWGWCWDWIIWOBDUHQUIDLFZWJCIUJDUKVAULUMWGBDCRWOUNWQWHDIWGUJDUOUPUQWPURWBWCU
    SZKZWFAWDBREZREZAWSWKASTZWDLFZWDSTZBLFZBSTZWFXAIWSVRLAWNVSVTWAWRMZNZWSVSXBX
    GAUTQWSBWSVRLBWNVSVTWAWRVBZNZVCWSXEWRXDXJWBWROXEWRKWDSXEWDSIZWCXEXKKBSJZDXE
    XKBWDJXLBVDWDSUHVKVEULVFVGPXJWSVTXFXIBUTQAWDBVHVLWSWKXEXAAIXHXJXEWKXAACREAX
    EWTCARXEWTBWDREZCXCXEWTXMIBVMWDBVIVJBUKVNUNAVOVPPVNVQ $.

  ${
    $d k x y A $.  $d x y B $.  $d k x y ph $.
    fsumrp0cl.1 $e |- ( ph -> A e. Fin ) $.
    fsumrp0cl.2 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,) +oo ) ) $.
    $( Closure of a finite sum of nonnegative reals.  (Contributed by Thierry
       Arnoux, 25-Jun-2017.) $)
    fsumrp0cl $p |- ( ph -> sum_ k e. A B e. ( 0 [,) +oo ) ) $=
      ( cc0 cpnf cr rge0ssre wcel cxr cle wbr clt w3a wb 0xr pnfxr elico1 vx vy
      cico co cc wss ax-resscn sstri a1i cv caddc simprl sseldi simprr readdcld
      wa rexrd mp2an simp2bi syl addge0d ltpnf syl3anbrc 0e0icopnf fsumcllem )
      AUAUBBCGHUCUDZDVFUEUFAVFIUEJUGUHUIAUAUJZVFKZUBUJZVFKZUPUPZVGVIUKUDZLKZGVL
      MNZVLHONZVLVFKZVKVLVKVGVIVKVFIVGJAVHVJULZUMZVKVFIVIJAVHVJUNZUMZUOZUQVKVGV
      IVRVTVKVHGVGMNZVQVHVGLKZWBVGHONZGLKZHLKZVHWCWBWDPQRSGHVGTURUSUTVKVJGVIMNZ
      VSVJVILKZWGVIHONZWEWFVJWHWGWIPQRSGHVITURUSUTVAVKVLIKVOWAVLVBUTWEWFVPVMVNV
      OPQRSGHVLTURVCEFGVFKAVDUIVE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Algebra
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Monoids Homomorphisms
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y F $.  $d x y M $.  $d x y N $.
    $( The image of an Abelian group by a group isomorphism is also Abelian.
       (Contributed by Thierry Arnoux, 8-Mar-2018.) $)
    abliso $p |- ( ( M e. Abel /\ F e. ( M GrpIso N ) ) -> N e. Abel ) $=
      ( vx vy cabl wcel cgim co wa cghm gimghm syl cv cplusg wceq eqid ad2antlr
      cfv syl3anc cgrp ccmn ghmgrp2 adantl cmnd wral grpmnd ccnv simpll wf wf1o
      cbs gimf1o f1ocnv f1of simprl ffvelrnd simprr ablcom gimcnv ghmlin fveq2d
      3eqtr4d grpcl f1ocnvfv2 syl2anc 3eqtr3d ralrimivva iscmn sylanbrc isabl
      3syl ) BFGZABCHIGZJZCUAGZCUBGZCFGVNVPVMVNABCKIGVPBCALBCAUCMZUDZVOCUEGZDNZ
      ENZCOSZIZWBWAWCIZPZECULSZUFDWGUFVQVOVPVTVSCUGMVOWFDEWGWGVOWAWGGZWBWGGZJZJ
      ZWDAUHZSZASZWEWLSZASZWDWEWKWMWOAWKWAWLSZWBWLSZBOSZIZWRWQWSIZWMWOWKVMWQBUL
      SZGWRXBGWTXAPVMVNWJUIWKWGXBWAWLVNWGXBWLUJZVMWJVNXBWGAUKZWGXBWLUKXCXBWGBCA
      XBQZWGQZUMZXBWGAUNWGXBWLUOVLRZVOWHWIUPZUQWKWGXBWBWLXHVOWHWIURZUQXBWSBWQWR
      XEWSQZUSTWKWLCBKIGZWHWIWMWTPWKWLCBHIGZXLVNXMVMWJBCAUTRCBWLLMZXIXJWCWSCBWA
      WLWBWGXFWCQZXKVATWKXLWIWHWOXAPXNXJXIWCWSCBWBWLWAWGXFXOXKVATVCVBWKXDWDWGGZ
      WNWDPVNXDVMWJXGRZWKVPWHWIXPVNVPVMWJVRRZXIXJWGWCCWAWBXFXOVDTXBWGWDAVEVFWKX
      DWEWGGZWPWEPXQWKVPWIWHXSXRXJXIWGWCCWBWAXFXOVDTXBWGWEAVEVFVGVHDEWGWCCXFXOV
      IVJCVKVJ $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Ordered monoids and groups
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c oMnd $.
  $c oGrp $.

  $( Extend class notation with the class of all right ordered monoids. $)
  comnd $a class oMnd $.

  $( Extend class notation with the class of all right ordered groups. $)
  cogrp $a class oGrp $.

  ${
    $d a b c g l p v $.
    $( TODO - this could be generalized to posets! $)
    $( Define class of all right ordered monoids.  An ordered monoid is a
       monoid with a total ordering compatible with its operation.  It is
       possible to use this definition also for left ordered monoids, by
       applying it to ` ( oppG `` M ) ` .  (Contributed by Thierry Arnoux,
       13-Mar-2018.) $)
    df-omnd $a |- oMnd = { g e. Mnd | [. ( Base ` g ) / v ].
      [. ( +g ` g ) / p ]. [. ( le ` g ) / l ]. ( g e. Toset /\
      A. a e. v A. b e. v A. c e. v ( a l b -> ( a p c ) l ( b p c ) ) ) } $.

    $( Define class of all ordered groups.  An ordered group is a group with a
       total ordering compatible with its operation.  (Contributed by Thierry
       Arnoux, 13-Mar-2018.) $)
    df-ogrp $a |- oGrp = ( Grp i^i oMnd ) $.
  $}

  ${
    $d a b c l m p v B $.  $d a b c l m p v M $.  $d l m p .+ $.  $d l m .<_ $.
    isomnd.0 $e |- B = ( Base ` M ) $.
    isomnd.1 $e |- .+ = ( +g ` M ) $.
    isomnd.2 $e |- .<_ = ( le ` M ) $.
    $( A (left) ordered monoid is a monoid with a total ordering compatible
       with its operation.  (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
    isomnd $p |- ( M e. oMnd <-> ( M e. Mnd /\ M e. Toset /\
      A. a e. B A. b e. B A. c e. B ( a .<_ b -> ( a .+ c ) .<_ ( b .+ c ) )
      ) ) $=
      ( vl vp vv cv wbr wral wa cfv wsbc wceq vm comnd wcel cmnd ctos co wi w3a
      cplusg cbs cvv fvexd wb simpr fveq2 adantr eqtrd syl6eqr raleq raleqbi1dv
      cple syl anbi2d sbcbidv sbcied oveqd breq12d imbi2d 2ralbidv simpl fveq2d
      ralbidv breqd imbi12d eleq1 anbi1d 3bitrd df-omnd elrab2 3anass bitr4i
      bitrd ) DUBUCDUDUCZDUEUCZENZFNZCOZWEGNZBUFZWFWHBUFZCOZUGZGAPZFAPEAPZQZQWC
      WDWNUHUANZUEUCZWEWFKNZOZWEWHLNZUFZWFWHWTUFZWROZUGZGMNZPZFXEPZEXEPZQZKWPVA
      RZSZLWPUIRZSZMWPUJRZSZWOUADUDUBWPDTZXOWQXDGAPZFAPZEAPZQZKXJSZLXLSZWQWSWIW
      JWROZUGZGAPZFAPEAPZQZKXJSZWOXPXMYBMXNUKXPWPUJULXPXEXNTZQZXKYALXLYJXIXTKXJ
      YJXHXSWQYJXEATXHXSUMYJXEDUJRZAYJXEXNYKXPYIUNXPXNYKTYIWPDUJUOUPUQHURXGXREX
      EAXFXQFXEAXDGXEAUSUTUTVBVCVDVDVEXPYAYHLXLUKXPWPUIULXPWTXLTZQZXTYGKXJYMXSY
      FWQYMXQYEEFAAYMXDYDGAYMXCYCWSYMXAWIXBWJWRYMWTBWEWHYMWTDUIRZBYMWTXLYNXPYLU
      NXPXLYNTYLWPDUIUOUPUQIURZVFYMWTBWFWHYOVFVGVHVLVIVCVDVEXPYHWQWNQZWOXPYGYPK
      XJUKXPWPVAULXPWRXJTZQZYFWNWQYRYEWMEFAAYRYDWLGAYRWSWGYCWKYRWRCWEWFYRWRDVAR
      ZCYRWRXJYSXPYQUNYRWPDVAXPYQVJVKUQJURZVMYRWRCWIWJYTVMVNVLVIVCVEXPWQWDWNWPD
      UEVOVPWBVQMUALEFGKVRVSWCWDWNVTWA $.
  $}

  $( A (left) ordered group is a group with a total ordering compatible with
     its operations.  (Contributed by Thierry Arnoux, 23-Mar-2018.) $)
  isogrp $p |- ( G e. oGrp <-> ( G e. Grp /\ G e. oMnd ) ) $=
    ( cgrp comnd cogrp df-ogrp elin2 ) ABCDEF $.

  $( An left ordered group is a group.  (Contributed by Thierry Arnoux,
     9-Jul-2018.) $)
  ogrpgrp $p |- ( G e. oGrp -> G e. Grp ) $=
    ( cogrp wcel cgrp comnd isogrp simplbi ) ABCADCAECAFG $.

  ${
    $d a b c M $.
    $( A left ordered monoid is a monoid.  (Contributed by Thierry Arnoux,
       13-Mar-2018.) $)
    omndmnd $p |- ( M e. oMnd -> M e. Mnd ) $=
      ( va vb vc comnd wcel cmnd ctos cv cple cfv wbr cplusg co cbs wral isomnd
      wi eqid simp1bi ) AEFAGFAHFBIZCIZAJKZLUADIZAMKZNUBUDUENUCLRDAOKZPCUFPBUFP
      UFUEUCABCDUFSUESUCSQT $.

    $( A left ordered monoid is a totally ordered set.  (Contributed by Thierry
       Arnoux, 13-Mar-2018.) $)
    omndtos $p |- ( M e. oMnd -> M e. Toset ) $=
      ( va vb vc comnd wcel cmnd ctos cv cple cfv wbr cplusg co cbs wral isomnd
      wi eqid simp2bi ) AEFAGFAHFBIZCIZAJKZLUADIZAMKZNUBUDUENUCLRDAOKZPCUFPBUFP
      UFUEUCABCDUFSUESUCSQT $.

    $d a b c X $.  $d b c Y $.  $d c Z $.  $d a b c .+ $.  $d a b c .<_ $.
    $d a b c B $.
    omndadd.0 $e |- B = ( Base ` M ) $.
    omndadd.1 $e |- .<_ = ( le ` M ) $.
    omndadd.2 $e |- .+ = ( +g ` M ) $.
    $( In an ordered monoid, the ordering is compatible with group addition.
       (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
    omndadd $p |- ( ( M e. oMnd /\ ( X e. B /\ Y e. B /\ Z e. B )
      /\ X .<_ Y ) -> ( X .+ Z ) .<_ ( Y .+ Z ) ) $=
      ( va vb vc wcel wbr co cv wi wral wceq comnd w3a cmnd ctos isomnd simp3bi
      breq1 oveq1 breq1d imbi12d breq2 breq2d oveq2 breq12d imbi2d rspc3v mpan9
      3impia ) DUANZEANFANGANUBZEFCOZEGBPZFGBPZCOZUSKQZLQZCOZVEMQZBPZVFVHBPZCOZ
      RZMASLASKASZUTVAVDRZUSDUCNDUDNVMABCDKLMHJIUEUFVLVNEVFCOZEVHBPZVJCOZRVAVPF
      VHBPZCOZRKLMEFGAAAVEETZVGVOVKVQVEEVFCUGVTVIVPVJCVEEVHBUHUIUJVFFTZVOVAVQVS
      VFFECUKWAVJVRVPCVFFVHBUHULUJVHGTZVSVDVAWBVPVBVRVCCVHGEBUMVHGFBUMUNUOUPUQU
      R $.

    $( In a right ordered monoid, the ordering is compatible with group
       addition.  (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
    omndaddr $p |- ( ( ( oppG ` M ) e. oMnd /\ ( X e. B /\ Y e. B /\ Z e. B )
      /\ X .<_ Y ) -> ( Z .+ X ) .<_ ( Z .+ Y ) ) $=
      ( coppg cfv comnd wcel w3a wbr cplusg co eqid oppgplus oppgbas omndadd
      oppgle 3brtr3g ) DKLZMNEANFANGANOEFCPOEGUEQLZRFGUFRGEBRGFBRCAUFCUEEFGADUE
      UESZHUADCUEUGIUCUFSZUBBUFDUEEGJUGUHTBUFDUEFGJUGUHTUD $.

    ${
      omndadd2d.m $e |- ( ph -> M e. oMnd ) $.
      omndadd2d.w $e |- ( ph -> W e. B ) $.
      omndadd2d.x $e |- ( ph -> X e. B ) $.
      omndadd2d.y $e |- ( ph -> Y e. B ) $.
      omndadd2d.z $e |- ( ph -> Z e. B ) $.
      omndadd2d.1 $e |- ( ph -> X .<_ Z ) $.
      omndadd2d.2 $e |- ( ph -> Y .<_ W ) $.

      ${
        omndadd2d.c $e |- ( ph -> M e. CMnd ) $.
        $( In a commutative left ordered monoid, the ordering is compatible
           with monoid addition.  Double addition version.  (Contributed by
           Thierry Arnoux, 30-Jan-2018.) $)
        omndadd2d $p |- ( ph -> ( X .+ Y ) .<_ ( Z .+ W ) ) $=
          ( cpo wcel co w3a wbr comnd ctos omndtos tospos 3syl cmnd omndmnd syl
          mndcl syl3anc 3jca omndadd syl131anc ccmn cmncom 3brtr3d wa postr imp
          wceq syl22anc ) AEUAUBZGHCUCZBUBZIHCUCZBUBZIFCUCZBUBZUDZVHVJDUEZVJVLD
          UEZVHVLDUEZAEUFUBZEUGUBVGMEUHEUIUJAVIVKVMAEUKUBZGBUBZHBUBZVIAVRVSMEUL
          UMZOPBCEGHJLUNUOAVSIBUBZWAVKWBQPBCEIHJLUNUOAVSWCFBUBZVMWBQNBCEIFJLUNU
          OUPAVRVTWCWAGIDUEVOMOQPRBCDEGIHJKLUQURAHICUCZFICUCZVJVLDAVRWAWDWCHFDU
          EWEWFDUEMPNQSBCDEHFIJKLUQURAEUSUBZWAWCWEVJVETPQBCEHIJLUTUOAWGWDWCWFVL
          VETNQBCEFIJLUTUOVAVGVNVBVOVPVBVQBEDVHVJVLJKVCVDVF $.
      $}

      ${
        omndadd2rd.c $e |- ( ph -> ( oppG ` M ) e. oMnd ) $.
        $( In a left- and right- ordered monoid, the ordering is compatible
           with monoid addition.  Double addition version.  (Contributed by
           Thierry Arnoux, 2-May-2018.) $)
        omndadd2rd $p |- ( ph -> ( X .+ Y ) .<_ ( Z .+ W ) ) $=
          ( cpo wcel co w3a wbr comnd ctos omndtos tospos 3syl cmnd omndmnd syl
          mndcl syl3anc 3jca coppg omndaddr syl131anc omndadd wa postr syl22anc
          cfv imp ) AEUAUBZGHCUCZBUBZGFCUCZBUBZIFCUCZBUBZUDZVGVIDUEZVIVKDUEZVGV
          KDUEZAEUFUBZEUGUBVFMEUHEUIUJAVHVJVLAEUKUBZGBUBZHBUBZVHAVQVRMEULUMZOPB
          CEGHJLUNUOAVRVSFBUBZVJWAONBCEGFJLUNUOAVRIBUBZWBVLWAQNBCEIFJLUNUOUPAEU
          QVDUFUBVTWBVSHFDUEVNTPNOSBCDEHFGJKLURUSAVQVSWCWBGIDUEVOMOQNRBCDEGIFJK
          LUTUSVFVMVAVNVOVAVPBEDVGVIVKJKVBVEVC $.
      $}
    $}
  $}

  ${
    $d a b c A $.  $d a b c M $.
    $( A submonoid of an ordered monoid is also ordered.  (Contributed by
       Thierry Arnoux, 23-Mar-2018.) $)
    submomnd $p |- ( ( M e. oMnd /\ ( M |`s A ) e. Mnd )
      -> ( M |`s A ) e. oMnd ) $=
      ( va vb vc wcel co wa cv cfv wbr cbs wral cvv adantr wceq eqid syl sseldd
      c0 comnd cress cmnd ctos cple cplusg wi simpr omndtos wn reldmress ovprc2
      fveq2d adantl syl6eqr wne c0g mndidcl ne0i ad2antlr neneqd condan resstos
      base0 syl2anc w3a simplll wss cin ressbas inss2 syl6eqssr simplr1 simplr2
      ad2antrr simplr3 ressle breqd biimpar omndadd syl131anc wb oveqd breq123d
      ressplusg mpbid ex ralrimivvva isomnd syl3anbrc ) BUAFZBAUBGZUCFZHZWMWLUD
      FZCIZDIZWLUEJZKZWPEIZWLUFJZGZWQWTXAGZWRKZUGZEWLLJZMDXFMCXFMWLUAFWKWMUHWNB
      UDFZANFZWOWKXGWMBUIOWNXHXFTPWNXHUJZHZXFTLJZTXIXFXKPWNXIWLTLBAUBUKULUMUNVD
      UOXJXFTWMXFTUPZWKXIWMWLUQJZXFFXLXFWLXMXFQZXMQURXFXMUSRUTVAVBZABNVCVEWNXEC
      DEXFXFXFWNWPXFFZWQXFFZWTXFFZVFZHZWSXDXTWSHZWPWTBUFJZGZWQWTYBGZBUEJZKZXDYA
      WKWPBLJZFWQYGFWTYGFWPWQYEKZYFWKWMXSWSVGYAXFYGWPWNXFYGVHZXSWSWNXHYIXOXHXFA
      YGVIYGAYGWLNBWLQZYGQZVJAYGVKVLRVOZXPXQXRWNWSVMSYAXFYGWQYLXPXQXRWNWSVNSYAX
      FYGWTYLXPXQXRWNWSVPSXTYHWSXTYEWRWPWQWNYEWRPZXSWNXHYMXOABYENWLYJYEQZVQZROV
      RVSYGYBYEBWPWQWTYKYNYBQZVTWAXTYFXDWBWSXTYCXBYDXCYEWRXTYBXAWPWTXTXHYBXAPWN
      XHXSXOOZAYBBWLNYJYPWERZWCXTXHYMYQYORXTYBXAWQWTYRWCWDOWFWGWHXFXAWRWLCDEXNX
      AQWRQWIWJ $.
  $}

  ${
    $d x y z $.
    $( The nonnegative extended real numbers form an ordered monoid.
       (Contributed by Thierry Arnoux, 22-Mar-2018.) $)
    xrge0omnd $p |- ( RR*s |`s ( 0 [,] +oo ) ) e. oMnd $=
      ( vx vy vz cxrs cc0 cpnf co cress wcel cv cle cxad wral xrge0base xrge0le
      wbr wi cxr sseli wa cicc comnd cmnd ctos ccmn xrge0cmn cmnmnd cpo wo ovex
      ax-mp iccssxr xrleid syl wceq biimprd syl2an xrletr syl3an isposi xrletri
      xrletri3 rgen2a istos mpbir2an w3a xleadd1a ex xrge0plusg isomnd mpbir3an
      rgen3 ) DEFUAGZHGZUBIVNUCIZVNUDIZAJZBJZKPZVQCJZLGVRVTLGKPZQZCVMMBVMMAVMMV
      NUEIVOUFVNUGUKVPVNUHIVSVRVQKPZUIZBVMMAVMMABCVMVNKDVMHUJNOVQVMIZVQRIZVQVQK
      PVMRVQEFULZSZVQUMUNWEWFVRRIZVSWCTZVQVRUOZQVRVMIZWHVMRVRWGSZWFWITWKWJVQVRV
      BUPUQWEWFWLWIVTVMIZVTRIZVSVRVTKPTVQVTKPQWHWMVMRVTWGSZVQVRVTURUSUTWDABVMWE
      WFWIWDWLWHWMVQVRVAUQVCABVMVNKNOVDVEWBABCVMVMVMWEWFWLWIWNWOWBWHWMWPWFWIWOV
      FVSWAVQVRVTVGVHUSVLVMLKVNABCNVIOVJVK $.
  $}

  ${
    $d m n B $.  $d m n M $.  $d m n N $.  $d m n X $.  $d m n Y $.
    $d m n .0. $.  $d m n .<_ $.  $d m n .x. $.  $d m n ph $.
    omndmul.0 $e |- B = ( Base ` M ) $.
    omndmul.1 $e |- .<_ = ( le ` M ) $.
    ${
      omndmul2.2 $e |- .x. = ( .g ` M ) $.
      omndmul2.3 $e |- .0. = ( 0g ` M ) $.
      $( In an ordered monoid, the ordering is compatible with group power.
         This version does not require the monoid to be commutative.
         (Contributed by Thierry Arnoux, 23-Mar-2018.) $)
      omndmul2 $p |- ( ( M e. oMnd /\ ( X e. B /\ N e. NN0 ) /\ .0. .<_ X ) ->
        .0. .<_ ( N .x. X ) ) $=
        ( wcel cn0 wa wbr w3a co c1 wceq syl vm vn comnd df-3an anass anbi1i cv
        bitr4i simplr cc0 caddc oveq1 breq2d cpo omndtos tospos omndmnd mndidcl
        ctos posref syl2anc ad3antrrr mulg0 ad3antlr breqtrrd ad5antr mulgnn0cl
        cmnd simp-5r syl3anc simpr32 1nn0 a1i nn0addcld 3anassrs 3jca simpr cfv
        cplusg simp-4l ad4antr simp-4r eqid omndadd syl131anc mndlid mulgnn0dir
        syl13anc 1cnd simpr3 nn0cnd addcomd oveq1d mulg1 3eqtr3rd 3brtr3d postr
        adantr imp syl22anc nn0indd mpdan sylbi ) DUCLZFALZEMLZNZGFCOZPZXDXENZX
        FNZXHNZGEFBQZCOZXIXDXGNZXHNXLXDXGXHUDXKXOXHXDXEXFUEUFUHXLXFXNXJXFXHUIXL
        GUAUGZFBQZCOGUJFBQZCOGUBUGZFBQZCOZGXSRUKQZFBQZCOZXNUAUBEXPUJSXQXRGCXPUJ
        FBULUMXPXSSXQXTGCXPXSFBULUMXPYBSXQYCGCXPYBFBULUMXPESXQXMGCXPEFBULUMXLGG
        XRCXDGGCOZXEXFXHXDDUNLZGALZYEXDDUSLYFDUODUPTZXDDVHLZYGDUQZADGHKURZTADCG
        HIUTVAVBXEXRGSXDXFXHABDFGHKJVCVDVEXLXSMLZNZYANZYFYGXTALZYCALZPZYAXTYCCO
        ZYDXDYFXEXFXHYLYAYHVFYNYGYOYPYNYIYGXDYIXEXFXHYLYAYJVFZYKTYNYIYLXEYOYSXL
        YLYAUIXDXEXFXHYLYAVIZABDXSFHJVGZVJYNYIYBMLZXEYPYSXKXHYLYAUUBXDXEXFXHYLY
        APZUUBXDXEXFUUCPNZXSRXHYLYAXEXFXDVKRMLZUUDVLVMVNVOVOYTABDYBFHJVGVJVPYMY
        AVQYMYRYAYMGXTDVSVRZQZFXTUUFQZXTYCCYMXDYGXEYOXHUUGUUHCOXDXEXFXHYLVTYMYI
        YGXDYIXEXFXHYLYJWAZYKTXDXEXFXHYLWBZYMYIYLXEYOUUIXLYLVQZUUJUUAVJZXKXHYLU
        IAUUFCDGFXTHIUUFWCZWDWEYMYIYOUUGXTSUUIUULAUUFDXTGHUUMKWFVAYMRXSUKQZFBQZ
        RFBQZXTUUFQZYCUUHYMYIUUEYLXEUUOUUQSUUIUUEYMVLVMUUKUUJAUUFBDRXSFHJUUMWGW
        HYMUUNYBFBXJXFXHYLUUNYBSXJXFXHYLPNZRXSUURWIUURXSXJXFXHYLWJWKWLVOWMYMUUP
        FXTUUFYMXEUUPFSUUJABDFHJWNTWMWOWPWRYFYQNYAYRNYDADCGXTYCHIWQWSWTXAXBXC
        $.
    $}

    ${
      omndmul3.m $e |- .x. = ( .g ` M ) $.
      omndmul3.0 $e |- .0. = ( 0g ` M ) $.
      omndmul3.o $e |- ( ph -> M e. oMnd ) $.
      omndmul3.1 $e |- ( ph -> N e. NN0 ) $.
      omndmul3.2 $e |- ( ph -> P e. NN0 ) $.
      omndmul3.3 $e |- ( ph -> N <_ P ) $.
      omndmul3.4 $e |- ( ph -> X e. B ) $.
      omndmul3.5 $e |- ( ph -> .0. .<_ X ) $.
      $( In an ordered monoid, the ordering is compatible with group power.
         This version does not require the monoid to be commutative.
         (Contributed by Thierry Arnoux, 23-Mar-2018.) $)
      omndmul3 $p |- ( ph -> ( N .x. X ) .<_ ( P .x. X ) ) $=
        ( wcel co cplusg cfv cmin comnd wbr cmnd omndmnd syl mndidcl cn0 cle wa
        nn0sub biimpa syl21anc mulgnn0cl omndmul2 syl121anc eqid syl131anc wceq
        syl3anc omndadd mndlid syl2anc mulgnn0dir syl13anc nn0cnd npcand oveq1d
        caddc eqtr3d 3brtr3d ) AIGHDUAZFUBUCZUAZCGUDUAZHDUAZVOVPUAZVOCHDUAZEAFU
        ETZIBTZVSBTZVOBTZIVSEUFZVQVTEUFNAFUGTZWCAWBWGNFUHUIZBFIJMUJUIAWGVRUKTZH
        BTZWDWHAGUKTZCUKTZGCULUFZWIOPQWKWLUMWMWIGCUNUOUPZRBDFVRHJLUQVCAWGWKWJWE
        WHORBDFGHJLUQVCZAWBWJWIIHEUFWFNRWNSBDEFVRHIJKLMURUSBVPEFIVSVOJKVPUTZVDV
        AAWGWEVQVOVBWHWOBVPFVOIJWPMVEVFAVRGVLUAZHDUAZVTWAAWGWIWKWJWRVTVBWHWNORB
        VPDFVRGHJLWPVGVHAWQCHDACGACPVIAGOVIVJVKVMVN $.
    $}

    ${
      omndmul.2 $e |- .x. = ( .g ` M ) $.
      omndmul.o $e |- ( ph -> M e. oMnd ) $.
      omndmul.c $e |- ( ph -> M e. CMnd ) $.
      omndmul.x $e |- ( ph -> X e. B ) $.
      omndmul.y $e |- ( ph -> Y e. B ) $.
      omndmul.n $e |- ( ph -> N e. NN0 ) $.
      omndmul.l $e |- ( ph -> X .<_ Y ) $.
      $( In a commutative ordered monoid, the ordering is compatible with group
         power.  (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
      omndmul $p |- ( ph -> ( N .x. X ) .<_ ( N .x. Y ) ) $=
        ( wcel co wceq vm vn cn0 wbr cv cc0 c1 caddc oveq1 breq12d ctos omndtos
        cpo comnd tospos 3syl c0g cfv eqid mulg0 omndmnd mndidcl eqeltrd posref
        syl cmnd syl2anc wb wa adantr adantl eqtr4d breq1d mpbird cplusg simplr
        ad2antrr mulgnn0cl syl3anc simpr ccmn omndadd2d mulgnn0p1 3brtr4d mpdan
        nn0indd ) AFUCRFGCSZFHCSZDUDZPAUAUEZGCSZWJHCSZDUDUFGCSZUFHCSZDUDZUBUEZG
        CSZWPHCSZDUDZWPUGUHSZGCSZWTHCSZDUDWIUAUBFWJUFTWKWMWLWNDWJUFGCUIWJUFHCUI
        UJWJWPTWKWQWLWRDWJWPGCUIWJWPHCUIUJWJWTTWKXAWLXBDWJWTGCUIWJWTHCUIUJWJFTW
        KWGWLWHDWJFGCUIWJFHCUIUJAWOWNWNDUDZAEUMRZWNBRXCAEUNRZEUKRXDLEULEUOUPAWN
        EUQURZBAHBRZWNXFTZOBCEHXFIXFUSZKUTZVEAXEEVFRZXFBRLEVAZBEXFIXIVBUPVCBEDW
        NIJVDVGAGBRZXGWOXCVHNOXMXGVIZWMWNWNDXNWMXFWNXMWMXFTXGBCEGXFIXIKUTVJXGXH
        XMXJVKVLVMVGVNAWPUCRZVIZWSVIZWQGEVOURZSZWRHXRSZXAXBDXQBXRDEHWQGWRIJXRUS
        ZAXEXOWSLVQZAXGXOWSOVQZXQXKXOXMWQBRXQXEXKYBXLVEZAXOWSVPZAXMXOWSNVQZBCEW
        PGIKVRVSYFXQXKXOXGWRBRYDYEYCBCEWPHIKVRVSXPWSVTAGHDUDXOWSQVQAEWARXOWSMVQ
        WBXQXKXOXMXAXSTYDYEYFBXRCEWPGIKYAWCVSXQXKXOXGXBXTTYDYEYCBXRCEWPHIKYAWCV
        SWDWFWE $.
    $}
  $}

  ${
    ogrpsub.0 $e |- B = ( Base ` G ) $.
    ogrpsub.1 $e |- .<_ = ( le ` G ) $.
    ${
      ogrpinv.2 $e |- I = ( invg ` G ) $.
      ogrpinv.3 $e |- .0. = ( 0g ` G ) $.
      $( In an ordered group, the ordering is compatible with group inverse.
         (Contributed by Thierry Arnoux, 30-Jan-2018.)
         (New usage is discouraged.)  (Proof modification is discouraged.) $)
      ogrpinvOLD $p |- ( ( G e. oGrp /\ X e. B /\ .0. .<_ X )
        -> ( I ` X ) .<_ .0. ) $=
        ( cogrp wcel wbr w3a cfv cplusg co 3ad2ant1 syl2anc wceq isogrp simprbi
        comnd cgrp simplbi grpidcl syl simp2 grpinvcl simp3 eqid omndadd grplid
        syl131anc grprinv 3brtr3d ) BKLZEALZFEDMZNZFECOZBPOZQZEVAVBQZVAFDUTBUCL
        ZFALZURVAALZUSVCVDDMUQURVEUSUQBUDLZVEBUAZUBRUTVHVFUQURVHUSUQVHVEVIUERZA
        BFGJUFUGUQURUSUHZUTVHURVGVJVKABCEGIUISZUQURUSUJAVBDBFEVAGHVBUKZULUNUTVH
        VGVCVATVJVLAVBBVAFGVMJUMSUTVHURVDFTVJVKAVBBCEFGVMJIUOSUP $.

      $( In an ordered group, the ordering is compatible with group inverse.
         (Contributed by Thierry Arnoux, 3-Sep-2018.) $)
      ogrpinv0le $p |- ( ( G e. oGrp /\ X e. B )
        -> ( .0. .<_ X <-> ( I ` X ) .<_ .0. ) ) $=
        ( wcel wa wbr cfv co ad2antrr 3syl simplr syl2anc wceq cogrp comnd cgrp
        cplusg simprbi cmnd omndmnd mndidcl ogrpgrp grpinvcl simpr eqid omndadd
        isogrp syl131anc grplid grprinv 3brtr3d grplinv impbida ) BUAKZEAKZLZFE
        DMZECNZFDMZVCVDLZFVEBUDNZOZEVEVHOZVEFDVGBUBKZFAKZVBVEAKZVDVIVJDMVAVKVBV
        DVABUCKZVKBUNUEZPZVGVKBUFKZVLVPBUGZABFGJUHZQVAVBVDRZVGVNVBVMVAVNVBVDBUI
        ZPZVTABCEGIUJZSZVCVDUKAVHDBFEVEGHVHULZUMUOVGVNVMVIVETWBWDAVHBVEFGWEJUPS
        VGVNVBVJFTWBVTAVHBCEFGWEJIUQSURVCVFLZVEEVHOZFEVHOZFEDWFVKVMVLVBVFWGWHDM
        VAVKVBVFVOPZWFVNVBVMVAVNVBVFWAPZVAVBVFRZWCSWFVKVQVLWIVRVSQWKVCVFUKAVHDB
        VEFEGHWEUMUOWFVNVBWGFTWJWKAVHBCEFGWEJIUSSWFVNVBWHETWJWKAVHBEFGWEJUPSURU
        T $.
    $}

    ${
      ogrpsub.2 $e |- .- = ( -g ` G ) $.
      $( In an ordered group, the ordering is compatible with group
         subtraction.  (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
      ogrpsub $p |- ( ( G e. oGrp /\ ( X e. B /\ Y e. B /\ Z e. B )
        /\ X .<_ Y ) -> ( X .- Z ) .<_ ( Y .- Z ) ) $=
        ( wcel w3a wbr cfv co 3ad2ant1 eqid syl2anc wceq grpsubval cogrp cplusg
        cminusg comnd cgrp isogrp simprbi simp21 simp22 ogrpgrp simp23 grpinvcl
        simp3 omndadd syl131anc 3brtr4d ) BUAKZEAKZFAKZGAKZLZEFCMZLZEGBUCNZNZBU
        BNZOZFVEVFOZEGDOZFGDOZCVCBUDKZURUSVEAKZVBVGVHCMUQVAVKVBUQBUEKZVKBUFUGPU
        QURUSUTVBUHZUQURUSUTVBUIZVCVMUTVLUQVAVMVBBUJPUQURUSUTVBUKZABVDGHVDQZULR
        UQVAVBUMAVFCBEFVEHIVFQZUNUOVCURUTVIVGSVNVPAVFBVDDEGHVRVQJTRVCUSUTVJVHSV
        OVPAVFBVDDFGHVRVQJTRUP $.
    $}
  $}

  ${
    ogrpaddlt.0 $e |- B = ( Base ` G ) $.
    ogrpaddlt.1 $e |- .< = ( lt ` G ) $.
    ogrpaddlt.2 $e |- .+ = ( +g ` G ) $.
    $( In an ordered group, strict ordering is compatible with group addition.
       (Contributed by Thierry Arnoux, 20-Jan-2018.) $)
    ogrpaddlt $p |- ( ( G e. oGrp /\ ( X e. B /\ Y e. B /\ Z e. B )
      /\ X .< Y ) -> ( X .+ Z ) .< ( Y .+ Z ) ) $=
      ( cogrp wcel w3a wbr co wne 3ad2ant1 imp wa cvv cple comnd isogrp simprbi
      cfv cgrp simp2 simp1 simp21 simp22 simp3 eqid pltle omndadd syl3anc pltne
      syl31anc wceq wi ogrpgrp grprcan biimpd sylan necon3d 3impia ovex mp3an23
      wb pltval mpbir2and ) DKLZEALZFALZGALZMZEFCNZMZEGBOZFGBOZCNZVRVSDUAUEZNZV
      RVSPZVQDUBLZVOEFWANZWBVKVOWDVPVKDUFLZWDDUCUDQVKVOVPUGZVQVKVLVMVPWEVKVOVPU
      HZVKVLVMVNVPUIZVKVLVMVNVPUJZVKVOVPUKZVKVLVMMZVPWEKAACDWAEFWAULZIUMRUQABWA
      DEFGHWMJUNUOVQVKVOEFPZWCWHWGVQVKVLVMVPWNWHWIWJWKWLVPWNKAACDEFIUPRUQVKVOWN
      WCVKVOSVRVSEFVKWFVOVRVSURZEFURZUSDUTWFVOSWOWPABDEFGHJVAVBVCVDVEUOVKVOVTWB
      WCSVHZVPVKVRTLVSTLWQEGBVFFGBVFKTTCDWAVRVSWMIVIVGQVJ $.

    $( In a right ordered group, strict ordering is compatible with group
       addition.  (Contributed by Thierry Arnoux, 3-Sep-2018.) $)
    ogrpaddltbi $p |- ( ( G e. oGrp /\ ( X e. B /\ Y e. B /\ Z e. B ) )
       -> ( X .< Y <-> ( X .+ Z ) .< ( Y .+ Z ) ) ) $=
      ( wcel wa wbr co ogrpaddlt cfv grpcl syl3anc syl2anc wceq cogrp w3a 3expa
      cminusg cgrp ogrpgrp syl simplr1 simplr3 simplr2 grpinvcl simpr syl131anc
      simpll eqid grpass syl13anc grprinv oveq2d grprid 3eqtrd 3brtr3d impbida
      c0g ) DUAKZEAKZFAKZGAKZUBZLZEFCMZEGBNZFGBNZCMZVEVIVKVNABCDEFGHIJOUCVJVNLZ
      VLGDUDPZPZBNZVMVQBNZEFCVOVEVLAKZVMAKZVQAKZVNVRVSCMVEVIVNUNZVODUEKZVFVHVTV
      OVEWDWCDUFUGZVFVGVHVEVNUHZVFVGVHVEVNUIZABDEGHJQRVOWDVGVHWAWEVFVGVHVEVNUJZ
      WGABDFGHJQRVOWDVHWBWEWGADVPGHVPUOZUKSZVJVNULABCDVLVMVQHIJOUMVOVREGVQBNZBN
      ZEDVDPZBNZEVOWDVFVHWBVRWLTWEWFWGWJABDEGVQHJUPUQVOWKWMEBVOWDVHWKWMTWEWGABD
      VPGWMHJWMUOZWIURSZUSVOWDVFWNETWEWFABDEWMHJWOUTSVAVOVSFWKBNZFWMBNZFVOWDVGV
      HWBVSWQTWEWHWGWJABDFGVQHJUPUQVOWKWMFBWPUSVOWDVGWRFTWEWHABDFWMHJWOUTSVAVBV
      C $.

    ogrpaddltrd.1 $e |- ( ph -> G e. V ) $.
    ogrpaddltrd.2 $e |- ( ph -> ( oppG ` G ) e. oGrp ) $.
    ogrpaddltrd.3 $e |- ( ph -> X e. B ) $.
    ogrpaddltrd.4 $e |- ( ph -> Y e. B ) $.
    ogrpaddltrd.5 $e |- ( ph -> Z e. B ) $.
    ${
      ogrpaddltrd.6 $e |- ( ph -> X .< Y ) $.
      $( In a right ordered group, strict ordering is compatible with group
         addition.  (Contributed by Thierry Arnoux, 3-Sep-2018.) $)
      ogrpaddltrd $p |- ( ph -> ( Z .+ X ) .< ( Z .+ Y ) ) $=
        ( wbr wcel coppg cfv cplt cplusg cogrp wceq eqid oppglt syl breqd mpbid
        co oppgbas ogrpaddlt syl131anc oppgplus 3brtr3g mpbird ) AIGCULZIHCULZD
        SUSUTEUAUBZUCUBZSAGIVAUDUBZULZHIVCULZUSUTVBAVAUETGBTHBTIBTGHVBSZVDVEVBS
        NOPQAGHDSVFRADVBGHAEFTDVBUFMEDVAFVAUGZKUHUIZUJUKBVCVBVAGHIBEVAVGJUMVBUG
        VCUGZUNUOCVCEVAGILVGVIUPCVCEVAHILVGVIUPUQADVBUSUTVHUJUR $.
    $}

    $( In a right ordered group, strict ordering is compatible with group
       addition.  (Contributed by Thierry Arnoux, 4-Sep-2018.) $)
    ogrpaddltrbid $p |- ( ph -> ( X .< Y <-> ( Z .+ X ) .< ( Z .+ Y ) ) ) $=
      ( co wcel adantr wbr wa coppg cfv cogrp simpr ogrpaddltrd cminusg ogrpgrp
      cgrp syl w3a cplusg eqid oppgplus oppgbas grpcl syl5eqelr oppggrpb sylibr
      syl3anc grpinvcl syl2anc c0g wceq grplinv oveq1d syl13anc 3eqtr3d 3brtr3d
      grpass grplid impbida ) AGHDUAZIGCRZIHCRZDUAZAVNUBBCDEFGHIJKLAEFSZVNMTAEU
      CUDZUESZVNNTAGBSZVNOTAHBSZVNPTAIBSZVNQTAVNUFUGAVQUBZIEUHUDZUDZVOCRZWFVPCR
      ZGHDWDBCDEFVOVPWFJKLAVRVQMTAVTVQNTWDVSUJSZWAWCVOBSAWIVQAVTWINVSUIUKTZAWAV
      QOTZAWCVQQTZWIWAWCULVOGIVSUMUDZRBCWMEVSGILVSUNZWMUNZUOBWMVSGIBEVSWNJUPZWO
      UQURVAWDWIWBWCVPBSWJAWBVQPTZWLWIWBWCULVPHIWMRBCWMEVSHILWNWOUOBWMVSHIWPWOU
      QURVAWDEUJSZWCWFBSZWDWIWRWJEVSWNUSUTZWLBEWEIJWEUNZVBVCZAVQUFUGWDWFICRZGCR
      ZEVDUDZGCRZWGGWDXCXEGCWDWRWCXCXEVEWTWLBCEWEIXEJLXEUNZXAVFVCZVGWDWRWSWCWAX
      DWGVEWTXBWLWKBCEWFIGJLVKVHWDWRWAXFGVEWTWKBCEGXEJLXGVLVCVIWDXCHCRZXEHCRZWH
      HWDXCXEHCXHVGWDWRWSWCWBXIWHVEWTXBWLWQBCEWFIHJLVKVHWDWRWBXJHVEWTWQBCEHXEJL
      XGVLVCVIVJVM $.
  $}

  ${
    ogrpsublt.0 $e |- B = ( Base ` G ) $.
    ogrpsublt.1 $e |- .< = ( lt ` G ) $.
    ogrpsublt.2 $e |- .- = ( -g ` G ) $.
    $( In an ordered group, strict ordering is compatible with group addition.
       (Contributed by Thierry Arnoux, 3-Sep-2018.) $)
    ogrpsublt $p |- ( ( G e. oGrp /\ ( X e. B /\ Y e. B /\ Z e. B )
      /\ X .< Y ) -> ( X .- Z ) .< ( Y .- Z ) ) $=
      ( cogrp wcel w3a wbr co wne wa wb pltval syl3anc cple simp3 simp21 simp22
      cfv simp1 eqid mpbid simpld ogrpsub syld3an3 simprd cgrp wceq ogrpgrp syl
      simp23 grpsubrcan syl13anc necon3bid mpbird grpsubcl mpbir2and ) CKLZEALZ
      FALZGALZMZEFBNZMZEGDOZFGDOZBNZVKVLCUAUEZNZVKVLPZVDVHVIEFVNNZVOVJVQEFPZVJV
      IVQVRQZVDVHVIUBVJVDVEVFVIVSRVDVHVIUFZVDVEVFVGVIUCZVDVEVFVGVIUDZKAABCVNEFV
      NUGZISTUHZUIACVNDEFGHWCJUJUKVJVPVRVJVQVRWDULVJVKVLEFVJCUMLZVEVFVGVKVLUNEF
      UNRVJVDWEVTCUOUPZWAWBVDVEVFVGVIUQZACDEFGHJURUSUTVAVJVDVKALZVLALZVMVOVPQRV
      TVJWEVEVGWHWFWAWGACDEGHJVBTVJWEVFVGWIWFWBWGACDFGHJVBTKAABCVNVKVLWCISTVC
      $.
  $}

  ${
    ogrpinvlt.0 $e |- B = ( Base ` G ) $.
    ogrpinvlt.1 $e |- .< = ( lt ` G ) $.
    ogrpinvlt.2 $e |- I = ( invg ` G ) $.
    ${
      ogrpinv0lt.3 $e |- .0. = ( 0g ` G ) $.
      $( In an ordered group, the ordering is compatible with group inverse.
         (Contributed by Thierry Arnoux, 3-Sep-2018.) $)
      ogrpinv0lt $p |- ( ( G e. oGrp /\ X e. B )
        -> ( .0. .< X <-> ( I ` X ) .< .0. ) ) $=
        ( wcel wa wbr cfv co simpll syl simplr syl2anc wceq cplusg cgrp ogrpgrp
        cogrp grpidcl grpinvcl simpr ogrpaddlt syl131anc grplid grprinv 3brtr3d
        eqid 3syl grplinv impbida ) CUDKZEAKZLZFEBMZEDNZFBMZUSUTLZFVACUANZOZEVA
        VDOZVAFBVCUQFAKZURVAAKZUTVEVFBMUQURUTPZVCCUBKZVGVCUQVJVICUCZQZACFGJUEZQ
        UQURUTRZVCVJURVHVLVNACDEGIUFZSZUSUTUGAVDBCFEVAGHVDUMZUHUIVCVJVHVEVATVLV
        PAVDCVAFGVQJUJSVCVJURVFFTVLVNAVDCDEFGVQJIUKSULUSVBLZVAEVDOZFEVDOZFEBVRU
        QVHVGURVBVSVTBMUQURVBPZVRVJURVHVRUQVJWAVKQZUQURVBRZVOSVRUQVJVGWAVKVMUNW
        CUSVBUGAVDBCVAFEGHVQUHUIVRVJURVSFTWBWCAVDCDEFGVQJIUOSVRVJURVTETWBWCAVDC
        EFGVQJUJSULUP $.
    $}

    $( In an ordered group, the ordering is compatible with group inverse.
       (Contributed by Thierry Arnoux, 3-Sep-2018.) $)
    ogrpinvlt $p |- ( ( ( G e. oGrp /\ ( oppG ` G ) e. oGrp )
      /\ X e. B /\ Y e. B ) -> ( X .< Y <-> ( I ` Y ) .< ( I ` X ) ) ) $=
      ( cogrp wcel coppg cfv wbr co grpinvcl syl2anc eqid syl13anc wceq w3a c0g
      wa cplusg wb simp1l simp2 simp3 ogrpgrp ogrpaddltbi grprinv breq2d simp1r
      cgrp syl grpcl syl3anc grpidcl ogrpaddltrbid 3bitrd grplinv oveq1d grpass
      3syl grplid 3eqtr3d grprid breq12d bitrd ) CJKZCLMJKZUCZEAKZFAKZUAZEFBNZE
      DMZEFDMZCUDMZOZVSOZVQCUBMZVSOZBNZVRVQBNVOVPVTFVRVSOZBNZVTWBBNWDVOVJVMVNVR
      AKZVPWFUEVJVKVMVNUFZVLVMVNUGZVLVMVNUHZVOCUNKZVNWGVOVJWKWHCUIZUOZWJACDFGIP
      QZAVSBCEFVRGHVSRZUJSVOWEWBVTBVOWKVNWEWBTWMWJAVSCDFWBGWOWBRZIUKQULVOAVSBCJ
      VTWBVQGHWOWHVJVKVMVNUMVOWKVMWGVTAKWMWIWNAVSCEVRGWOUPUQVOVJWKWBAKWHWLACWBG
      WPURVDVOWKVMVQAKZWMWIACDEGIPQZUSUTVOWAVRWCVQBVOVQEVSOZVRVSOZWBVRVSOZWAVRV
      OWSWBVRVSVOWKVMWSWBTWMWIAVSCDEWBGWOWPIVAQVBVOWKWQVMWGWTWATWMWRWIWNAVSCVQE
      VRGWOVCSVOWKWGXAVRTWMWNAVSCVRWBGWOWPVEQVFVOWKWQWCVQTWMWRAVSCVQWBGWOWPVGQV
      HVI $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Signum in an ordered monoid
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c sgns $. $( Signum function, often written "sgn" or "sign". $)

  $( Extend class notation to include the Signum function. $)
  csgns $a class sgns $.

  ${
    $d r x $.
    $( Signum function for a structure.  See also ~ df-sgn for the version for
       extended reals.  (Contributed by Thierry Arnoux, 10-Sep-2018.) $)
    df-sgns $a |- sgns = ( r e. _V |-> ( x e. ( Base ` r ) |->
   if ( x = ( 0g ` r ) , 0 , if ( ( 0g ` r ) ( lt ` r ) x , 1 , -u 1 ) ) ) ) $.
  $}

  ${
    $d r x .0. $.  $d r x .< $.  $d r x B $.  $d r x R $.  $d x V $.  $d x X $.
    sgnsval.b $e |- B = ( Base ` R ) $.
    sgnsval.0 $e |- .0. = ( 0g ` R ) $.
    sgnsval.l $e |- .< = ( lt ` R ) $.
    sgnsval.s $e |- S = ( sgns ` R ) $.
    $( The sign mapping.  (Contributed by Thierry Arnoux, 9-Sep-2018.) $)
    sgnsv $p |- ( R e. V -> S = ( x e. B |->
      if ( x = .0. , 0 , if ( .0. .< x , 1 , -u 1 ) ) ) ) $=
      ( vr wcel cfv wceq cc0 c1 cif cbs c0g csgns wbr cneg cmpt elex cplt fveq2
      cv cvv syl6eqr wa adantr eqidd breq123d ifbid ifbieq2d mpteq12dva df-sgns
      eqeq2d fvex mptex fvmpt3i syl syl5eq ) CFMZDCUANZABAUHZGOZPGVGEUBZQQUCZRZ
      RZUDZKVECUIMVFVMOCFUELCALUHZSNZVGVNTNZOZPVPVGVNUFNZUBZQVJRZRZUDVMUIUAVNCO
      ZAVOWABVLWBVOCSNBVNCSUGHUJWBVGVOMZUKZVQVHVTVKPWDVPGVGWBVPGOWCWBVPCTNGVNCT
      UGIUJULZUSWDVSVIQVJWDVPGVGVGVREWEWBVREOWCWBVRCUFNEVNCUFUGJUJULWDVGUMUNUOU
      PUQALURAVOWAVNSUTVAVBVCVD $.

    $( The sign value.  (Contributed by Thierry Arnoux, 9-Sep-2018.) $)
    sgnsval $p |- ( ( R e. V /\ X e. B ) -> ( S ` X ) = if ( X = .0. , 0 ,
      if ( .0. .< X , 1 , -u 1 ) ) ) $=
      ( vx wcel wa wceq cc0 c1 cif cvv a1i cv wbr cneg sgnsv adantr eqeq1 breq2
      cmpt ifbid ifbieq2d adantl simpr c0ex wn 1ex negex ifclda fvmptd ) BEMZFA
      MZNZLFLUAZGOZPGVBDUBZQQUCZRZRZFGOZPGFDUBZQVERZRZACSUSCLAVGUHOUTLABCDEGHIJ
      KUDUEVBFOZVGVKOVAVLVCVHVFVJPVBFGUFVLVDVIQVEVBFGDUGUIUJUKUSUTULVAVHPVJSPSM
      VAVHNUMTVAVHUNNZVIQVESQSMVMVINUOTVESMVMVIUNNQUPTUQUQUR $.

    $d x S $.
    $( The sign function.  (Contributed by Thierry Arnoux, 9-Sep-2018.) $)
    sgnsf $p |- ( R e. V -> S : B --> { -u 1 , 0 , 1 } ) $=
      ( vx wcel cv wceq cc0 wbr c1 cneg cif keepel ctp sgnsv wa tpid2 1ex tpid3
      c0ex negex tpid1 a1i fmpt3d ) BELZKAKMZFNZOFUMDPZQQRZSZSZUPOQUAZCKABCDEFG
      HIJUBURUSLULUMALUCUNOUQUSUPOQUGUDUOQUPUSUPOQUEUFUPOQQUHUITTUJUK $.

$(
    @( Only zero has a sign equal to ` 0 ` . @)
    sgns0 @p |- ( R e. V -> ( X e. ( `' S " { 0 } ) <-> X = .0. ) ) @=
      ? @.

    @( The (strictly) positive cone. @)
    sgnsp @p |- ( R e. V ->
      ( X e. ( `' S " { 1 } ) <-> ( X e. B /\ .0. .< X ) ) ) @=
      ? @.

    @( The (strictly) negative cone. @)
    sgnsn @p |- ( R e. V ->
      ( X e. ( `' S " { -u 1 } ) <-> ( X e. B /\ X .< .0. ) ) ) @=
      ? @.

    @{
      @d x .0. @.  @d x .< @.  @d x B @.
      sgnsmulpp.2 @e |- R e. oRing @.
      sgnsmulpp.3 @e |- ( ph -> X e. ( `' S " { 1 } ) ) @.
      sgnsmulpp.4 @e |- ( ph -> Y e. ( `' S " { 1 } ) ) @.
      @( In an ordered ring, the product of two positive elements is positive.
         (Contributed by Thierry Arnoux, 9-Sep-2018.) @)
      sgnsmulpp @p |- ( ph -> ( X .x. Y ) e. ( `' S " { 1 } ) ) @=
        ( c1 wcel wb ccnv csn cima wa co cfv wceq wbr cofld corng cfield isofld
        simprbi mp1i cdr simplbi ccrg isfld mp2b a1i cneg cc0 ctp wf wfn signsf
        simpl ffn elpreima sylib simpld simpr elsni syl signsvp mpbid orngmullt
        simprd crg orngring ringcl syl3anc mpbird fvex elsn sylibr baib )
        HDUARU
        BZUCZSZIWISZUDZHIFUEZWISZWMDUFZWHSZWLWORUGZWPWLWQJWMEUHZWLBCEFHIJLMPOCU
        ISZCUJSZWLKWSCUKSZWTCULZUMUNZCUOSZWLWSXAXDKWSXAWTXBUPXAXDCUQSCURUPUSUTW
        LHBSZHDUFZWHSZWLWJXEXGUDZWJWKVGBRVAVBRVCZDVDZDBVEZWJXHTABCDEFGJKLMNOPQV
        FZBXIDVHZBHWHDVIUSVJZVKZWLIBSZIDUFZWHSZWLWKXPXRUDZWJWKVLXJXKWKXSTXLXMBI
        WHDVIUSVJZVKZWLXFRUGZJHEUHZWLXGYBWLXEXGXNVRXFRVMVNWLXEYBYCTXOABCDEFGHJK
        LMNOPQVOVNVPWLXQRUGZJIEUHZWLXRYDWLXPXRXTVRXQRVMVNWLXPYDYETYAABCDEFGIJKL
        MNOPQVOVNVPVQWLWMBSZWQWRTWLCVSSZXEXPYFWLWTYGXCCVTVNXOYABCFHILMWAWBZABCD
        EFGWMJKLMNOPQVOVNWCWORWMDWDWEWFWLYFWNWPTYHWNYFWPXJXKWNYFWPUDTXLXMBWMWHD
        VIUSWGVNWC @.
    @}
$)
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The Archimedean property for generic ordered algebraic structures
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c <<< $.
  $c Archi $.

  $( Class notation for the infinitesimal relation. $)
  cinftm $a class <<< $.

  $( Class notation for the Archimedean property. $)
  carchi $a class Archi $.

  ${
    $d n w x y $.
    $( Define the relation " ` x ` is infinitesimal with respect to ` y ` " for
       a structure ` w ` .  (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
    df-inftm $a |- <<< = ( w e. _V |-> { <. x , y >. | ( ( x e. ( Base ` w ) /\
      y e. ( Base ` w ) ) /\ ( ( 0g ` w ) ( lt ` w ) x /\
      A. n e. NN ( n ( .g ` w ) x ) ( lt ` w ) y ) ) } ) $.
  $}

  $( A structure said to be Archimedean if it has no infinitesimal elements.
     (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
  df-archi $a |- Archi = { w | ( <<< ` w ) = (/) } $.

  ${
    $d w x y B $.  $d n w x y W $.  $d n x y X $.  $d n x y Y $.
    $d w x y .< $.  $d w x y .x. $.  $d w x y .0. $.
    inftm.b $e |- B = ( Base ` W ) $.
    $( The infinitesimal relation for a structure ` W ` .  (Contributed by
       Thierry Arnoux, 30-Jan-2018.) $)
    inftmrel $p |- ( W e. V -> ( <<< ` W ) C_ ( B X. B ) ) $=
      ( vx vy vn vw wcel cfv cv wa c0g cplt wbr cmg cn cvv cbs fveq2 wral copab
      cinftm cxp wceq elex syl6eqr eleq2d anbi12d eqidd breq123d oveqd opabbidv
      co ralbidv df-inftm fvex eqeltri xpex opabssxp ssexi fvmpt syl syl6eqss )
      CBIZCUCJZEKZAIZFKZAIZLZCMJZVGCNJZOZGKZVGCPJZUNZVIVMOZGQUAZLZLZEFUBZAAUDZV
      ECRIVFWBUECBUFHCVGHKZSJZIZVIWEIZLZWDMJZVGWDNJZOZVOVGWDPJZUNZVIWJOZGQUAZLZ
      LZEFUBWBRUCWDCUEZWQWAEFWRWHVKWPVTWRWFVHWGVJWRWEAVGWRWECSJZAWDCSTDUGZUHWRW
      EAVIWTUHUIWRWKVNWOVSWRWIVLVGVGWJVMWDCMTWDCNTZWRVGUJUKWRWNVRGQWRWMVQVIVIWJ
      VMWRWLVPVOVGWDCPTULXAWRVIUJUKUOUIUIUMEFHGUPWBWCAAAWSRDCSUQURZXBUSVTEFAAUT
      ZVAVBVCXCVD $.

    inftm.0 $e |- .0. = ( 0g ` W ) $.
    inftm.x $e |- .x. = ( .g ` W ) $.
    inftm.l $e |- .< = ( lt ` W ) $.
    $( Express ` x ` is infinitesimal with respect to ` y ` for a structure
       ` W ` .  (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
    isinftm $p |- ( ( W e. V /\ X e. B /\ Y e. B ) ->
      ( X ( <<< ` W ) Y <-> ( .0. .< X /\ A. n e. NN ( n .x. X ) .< Y ) ) ) $=
      ( vx vy wcel wa wbr cn cfv vw cv co wral copab cinftm wceq eleq1 bi2anan9
      w3a simpl breq2d oveq2d simpr breq12d ralbidv anbi12d eqid brabga 3adant1
      wb cvv elex 3ad2ant1 cbs c0g cplt cmg fveq2 syl6eqr eleq2d eqidd breq123d
      oveqd opabbidv df-inftm cxp fvex eqeltri xpex opabssxp ssexi fvmpt 3simpc
      syl breqd biantrurd 3bitr4d ) FEPZGAPZHAPZUJZGHNUBZAPZOUBZAPZQZIWMBRZDUBZ
      WMCUCZWOBRZDSUDZQZQZNOUEZRZWJWKQZIGBRZWSGCUCZHBRZDSUDZQZQZGHFUFTZRXLWJWKX
      FXMVAWIXDXMNOGHXEAAWMGUGZWOHUGZQZWQXGXCXLXOWNWJXPWPWKWMGAUHWOHAUHUIXQWRXH
      XBXKXQWMGIBXOXPUKZULXQXAXJDSXQWTXIWOHBXQWMGWSCXRUMXOXPUNUOUPUQUQXEURUSUTW
      LXNXEGHWLFVBPZXNXEUGWIWJXSWKFEVCVDUAFWMUAUBZVETZPZWOYAPZQZXTVFTZWMXTVGTZR
      ZWSWMXTVHTZUCZWOYFRZDSUDZQZQZNOUEXEVBUFXTFUGZYMXDNOYNYDWQYLXCYNYBWNYCWPYN
      YAAWMYNYAFVETZAXTFVEVIJVJZVKYNYAAWOYPVKUQYNYGWRYKXBYNYEIWMWMYFBYNYEFVFTIX
      TFVFVIKVJYNYFFVGTBXTFVGVIMVJZYNWMVLVMYNYJXADSYNYIWTWOWOYFBYNYHCWSWMYNYHFV
      HTCXTFVHVILVJVNYQYNWOVLVMUPUQUQVONOUADVPXEAAVQAAAYOVBJFVEVRVSZYRVTXCNOAAW
      AWBWCWEWFWLXGXLWIWJWKWDWGWH $.
  $}

  ${
    $d x y B $.  $d x y w W $.
    isarchi.b $e |- B = ( Base ` W ) $.
    isarchi.0 $e |- .0. = ( 0g ` W ) $.
    isarchi.i $e |- .< = ( <<< ` W ) $.
    $( Express the predicate " ` W ` is Archimedean ".  (Contributed by Thierry
       Arnoux, 30-Jan-2018.) $)
    isarchi $p |- ( W e. V -> ( W e. Archi <-> A. x e. B A. y e. B -. x .< y )
      ) $=
      ( vw wcel carchi cinftm cfv c0 wceq cv wbr wral wn eqeq1d df-archi elab2g
      fveq2 cxp wss wb inftmrel cop wi ss0b ssrel2 syl5bbr noel nbn breqi df-br
      bitri xchnxbir pm2.21i dfbi2 mpbiran2 2ralbii syl6bbr syl bitrd ) FELZFML
      FNOZPQZARZBRZDSZUAZBCTACTZKRZNOZPQVJKFMEVPFQVQVIPVPFNUEUBKUCUDVHVICCUFUGZ
      VJVOUHCEFHUIVRVJVKVLUJZVILZVSPLZUKZBCTACTZVOVJVIPUGVRWCVIULABCCVIPUMUNVNW
      BABCCVNVTWAUHZWBVTWDVMWAVTVSUOZUPVMVKVLVISVTVKVLDVIJUQVKVLVIURUSUTWDWBWAV
      TUKWAVTWEVAVTWAVBVCUSVDVEVFVG $.
  $}

  ${
    $d n A $.
    $( Plus infinity is an infinite for the completed real line, as any real
       number is infinitesimal compared to it.  (Contributed by Thierry Arnoux,
       1-Feb-2018.) $)
    pnfinf $p |- ( A e. RR+ -> A ( <<< ` RR*s ) +oo ) $=
      ( vn crp wcel cpnf cfv wbr cc0 clt co cn wa cr cxr adantr syl2anc eqeltrd
      cxrs syl cvv cinftm cv cmg wral rpgt0 cxmu wceq nnz adantl rpxr xrsmulgzz
      cz zred rpre cmul rexmul remulcl ltpnf ralrimiva wb xrsex pnfxr xrs0 eqid
      xrsbas xrslt isinftm mp3an13 mpbir2and ) ACDZAERUAFGZHAIGZBUBZARUCFZJZEIG
      ZBKUDZAUEVJVPBKVJVMKDZLZVOMDVPVSVOVMAUFJZMVSVMULDZANDZVOVTUGVRWAVJVMUHUIZ
      VJWBVRAUJZOVMAUKPVSVMMDZAMDZVTMDVSVMWCUMVJWFVRAUNOWEWFLVTVMAUOJMVMAUPVMAU
      QQPQVOURSUSVJWBVKVLVQLUTZWDRTDWBENDWGVAVBNIVNBTRAEHVEVCVNVDVFVGVHSVI $.
  $}

  ${
    $d x y $.
    $( The completed real line is not Archimedean.  (Contributed by Thierry
       Arnoux, 1-Feb-2018.) $)
    xrnarchi $p |- -. RR*s e. Archi $=
      ( vx vy cv cxrs cinftm cfv wbr cxr wrex carchi wcel wn c1 1re rexri pnfxr
      cpnf ax-mp wral cvv crp 1rp pnfinf breq1 breq2 mp3an rexnal dfrex2 rexbii
      rspc2ev wb xrsex cc0 xrsbas xrs0 eqid isarchi notbii 3bitr4i mpbi ) ACZBC
      ZDEFZGZBHIZAHIZDJKZLZMHKQHKMQVCGZVFMNOPMUAKVIUBMUCRVDVIMVBVCGABMQHHVAMVBV
      CUDVBQMVCUEUJUFVDLBHSZLZAHIVJAHSZLVFVHVJAHUGVEVKAHVDBHUHUIVGVLDTKVGVLUKUL
      ABHVCTDUMUNUOVCUPUQRURUSUT $.
  $}

  ${
    $d n x y B $.  $d n x y W $.
    isarchi2.b $e |- B = ( Base ` W ) $.
    isarchi2.0 $e |- .0. = ( 0g ` W ) $.
    isarchi2.x $e |- .x. = ( .g ` W ) $.
    isarchi2.l $e |- .<_ = ( le ` W ) $.
    isarchi2.t $e |- .< = ( lt ` W ) $.
    $( Alternative way to express the predicate " ` W ` is Archimedean ", for
       Tosets.  (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
    isarchi2 $p |- ( ( W e. Toset /\ W e. Mnd ) -> ( W e. Archi <->
      A. x e. B A. y e. B ( .0. .< x -> E. n e. NN y .<_ ( n .x. x ) ) ) ) $=
      ( wcel wbr wn wral cn wb ctos cmnd wa carchi cv cinftm co wrex wi isarchi
      cfv eqid adantr w3a simpl1l simpl1r simpr nnnn0d simpl2 mulgnn0cl syl3anc
      simpl3 tltnle con2bid rexbidva imbi2d isinftm notbid rexnal imbi2i bitr2i
      cn0 imnan syl6bb 3adant1r bitr4d 3expb 2ralbidva ) HUAOZHUBOZUCZHUDOZAUEZ
      BUEZHUFUKZPZQZBCRACRZIWCDPZWDFUEZWCEUGZGPZFSUHZUIZBCRACRVSWBWHTVTABCWEUAH
      IJKWEULUJUMWAWNWGABCCWAWCCOZWDCOZWNWGTWAWOWPUNZWNWIWKWDDPZQZFSUHZUIZWGWQW
      MWTWIWQWLWSFSWQWJSOZUCZVSWKCOZWPWLWSTVSVTWOWPXBUOXCVTWJVLOWOXDVSVTWOWPXBU
      PXCWJWQXBUQURWAWOWPXBUSCEHWJWCJLUTVAWAWOWPXBVBVSXDWPUNWRWLCDHGWKWDJMNVCVD
      VAVEVFVSWOWPWGXATVTVSWOWPUNZWGWIWRFSRZUCZQZXAXEWFXGCDEFUAHWCWDIJKLNVGVHXA
      WIXFQZUIXHWTXIWIWRFSVIVJWIXFVMVKVNVOVPVQVRVP $.
  $}

  ${
    $d n x y A $.  $d n x y W $.
    $( A submonoid is archimedean.  (Contributed by Thierry Arnoux,
       16-Sep-2018.) $)
    submarchi $p |- ( ( ( W e. Toset /\ W e. Archi ) /\ A e. ( SubMnd ` W ) )
      -> ( W |`s A ) e. Archi ) $=
      ( vx vy vn wcel wa cfv co cv wbr cn wi wral cmnd wb eqid syl adantl wceq
      ctos carchi csubmnd c0g cplt cmg cple wrex submrcl isarchi2 sylan2 biimpa
      cress cbs an32s wss submbas submss eqsstr3d ssralv ralimdv subm0 ad2antrr
      syld cdif ressle difeq1d pltfval submmnd 3eqtr4d eqidd breq123d ad3antrrr
      cid cn0 simplll nnnn0d simpllr eleqtrrd submmulg syl3anc rexbidva imbi12d
      simpr ralbidva sylibd mpd resstos syl2anc adantlr mpbird ) BUAFZBUBFZGZAB
      UCHZFZGZBAUMIZUBFZWRUDHZCJZWRUEHZKZDJZEJZXAWRUFHZIZWRUGHZKZELUHZMZDWRUNHZ
      NZCXLNZWQBUDHZXABUEHZKZXDXEXABUFHZIZBUGHZKZELUHZMZDBUNHZNZCYDNZXNWLWPWMYF
      WLWPGZWMYFWPWLBOFZWMYFPABUIZCDYDXPXREXTBXOYDQZXOQZXRQZXTQZXPQZUJUKULUOWQY
      FYCDXLNZCXLNZXNWPYFYPMZWNWPXLYDUPZYQWPXLAYDAWRBWRQZUQZYDABYJURUSYRYFYOCYD
      NYPYRYEYOCYDYCDXLYDUTVAYOCXLYDUTVDRSWPYPXNPWNWPYOXMCXLWPXAXLFZGZYCXKDXLUU
      BXDXLFZGZXQXCYBXJUUDXOWTXAXAXPXBWPXOWTTUUAUUCAWRBXOYSYKVBVCWPXPXBTUUAUUCW
      PXTVNVEZXHVNVEZXPXBWPXTXHVNABXTWOWRYSYMVFZVGWPYHXPUUETYIOXPBXTYMYNVHRWPWR
      OFZXBUUFTAWRBYSVIZOXBWRXHXHQZXBQZVHRVJVCUUDXAVKVLUUDYAXIELUUDXELFZGZXDXDX
      SXGXTXHUUMXDVKWPXTXHTUUAUUCUULUUGVMUUMWPXEVOFXAAFXSXGTWPUUAUUCUULVPZUUMXE
      UUDUULWDVQUUMXAXLAWPUUAUUCUULVRUUMWPAXLTUUNYTRVSAXRXFBWRXEXAYLYSXFQZVTWAV
      LWBWCWEWESWFWGWLWPWSXNPZWMYGWRUAFUUHUUPABWOWHWPUUHWLUUISCDXLXBXFEXHWRWTXL
      QWTQUUOUUJUUKUJWIWJWK $.
  $}

  ${
    $d m n x y $.  $d n x y B $.  $d n x y W $.  $d m n .< $.  $d m n .x. $.
    $d n .0. $.
    isarchi3.b $e |- B = ( Base ` W ) $.
    isarchi3.0 $e |- .0. = ( 0g ` W ) $.
    isarchi3.i $e |- .< = ( lt ` W ) $.
    isarchi3.x $e |- .x. = ( .g ` W ) $.
    $( This is the usual definition of the Archimedean property for an ordered
       group.  (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
    isarchi3 $p |- ( W e. oGrp -> ( W e. Archi <->
      A. x e. B A. y e. B ( .0. .< x -> E. n e. NN y .< ( n .x. x ) ) ) ) $=
      ( wcel wbr co cn wa adantr c1 wceq vm cogrp carchi cv cple wrex wral ctos
      cfv wi cmnd wb comnd cgrp isogrp simprbi omndtos syl grpmnd eqid isarchi2
      sylbi syl2anc caddc peano2nnd cplusg simp-4l ogrpgrp grpidcl 3syl simp-4r
      simpr ad4antr nnzd mulgcl syl3anc simpllr ogrpaddlt syl131anc grplid nncn
      cz cc ax-1cn addcom sylancl oveq1d csgrp grpsgrp mulgnndir syl13anc mulg1
      1nn a1i 3eqtrrd 3brtr3d tospos peano2zd plelttr mpdan oveq1 breq2d rspcev
      cpo impl r19.29an cbvrexv sylib pltle reximdva imp impbida pm5.74da bitrd
      ralbidva ) GUBMZGUCMZHAUDZDNZBUDZFUDZXREOZGUEUIZNZFPUFZUJZBCUGZACUGZXSXTY
      BDNZFPUFZUJZBCUGZACUGXPGUHMZGUKMZXQYHULXPGUMMZYMXPGUNMZYOGUOZUPGUQURZXPYP
      YOQYNYQYPYNYOGUSRVBABCDEFYCGHIJLYCUTZKVAVCXPYGYLACXPXRCMZQZYFYKBCUUAXTCMZ
      QZXSYEYJUUCXSQZYEYJUUDYEQXTUAUDZXREOZDNZUAPUFZYJUUDYDUUHFPUUDYAPMZQZYDQZY
      ASVDOZPMXTUULXREOZDNZUUHUUKYAUUJUUIYDUUDUUIVLZRZVEUUKYBUUMDNZUUNUUKHYBGVF
      UIZOZXRYBUUROZYBUUMDUUKXPHCMZYTYBCMZXSUUSUUTDNUUJXPYDXPYTUUBXSUUIVGZRZUUK
      XPYPUVAUVDGVHZCGHIJVIVJUUJYTYDXPYTUUBXSUUIVKZRZUUJUVBYDUUJYPYAWBMYTUVBXPY
      PYTUUBXSUUIUVEVMZUUJYAUUOVNZUVFCEGYAXRILVOVPZRZUUCXSUUIYDVQCUURDGHXRYBIKU
      URUTZVRVSUUKYPUVBUUSYBTUUKXPYPUVDUVEURUVKCUURGYBHIUVLJVTVCUUKUUMSYAVDOZXR
      EOZSXREOZYBUUROZUUTUUKUUIUUMUVNTUUPUUIUULUVMXREUUIYAWCMSWCMUULUVMTYAWAWDY
      ASWEWFWGURUUKGWHMZSPMZUUIYTUVNUVPTUUKXPYPUVQUVDUVEGWIVJUVRUUKWMWNUUPUVGCU
      UREGSYAXRILUVLWJWKUUKUVOXRYBUURUUKYTUVOXRTUVGCEGXRILWLURWGWOWPUUJYDUUQUUN
      UUJGXDMZUUBUVBUUMCMZYDUUQQUUNUJUUJXPYMUVSUVCYRGWQVJUUAUUBXSUUIVQZUVJUUJYP
      UULWBMYTUVTUVHUUJYAUVIWRUVFCEGUULXRILVOVPCDGYCXTYBUUMIYSKWSWKXEWTUUGUUNUA
      UULPUUEUULTUUFUUMXTDUUEUULXREXAXBXCVCXFUUGYIUAFPUUEYATUUFYBXTDUUEYAXREXAX
      BXGXHUUDYJYEUUDYIYDFPUUJXPUUBUVBYIYDUJUVCUWAUVJUBCCDGYCXTYBYSKXIVPXJXKXLX
      MXOXOXN $.
  $}

  ${
    $d m x y B $.  $d m x y W $.  $d m n x y X $.  $d m n y Y $.  $d m n ph $.
    $d m n x y .0. $.  $d m n x y .<_ $.  $d m n x y .< $.  $d m n x y .x. $.
    archirng.b $e |- B = ( Base ` W ) $.
    archirng.0 $e |- .0. = ( 0g ` W ) $.
    archirng.i $e |- .< = ( lt ` W ) $.
    archirng.l $e |- .<_ = ( le ` W ) $.
    archirng.x $e |- .x. = ( .g ` W ) $.
    archirng.1 $e |- ( ph -> W e. oGrp ) $.
    archirng.2 $e |- ( ph -> W e. Archi ) $.
    archirng.3 $e |- ( ph -> X e. B ) $.
    archirng.4 $e |- ( ph -> Y e. B ) $.
    archirng.5 $e |- ( ph -> .0. .< X ) $.
    ${
      archirng.6 $e |- ( ph -> .0. .< Y ) $.
      $( Property of Archimedean ordered groups, framing positive ` Y ` between
         multiples of ` X ` .  (Contributed by Thierry Arnoux, 12-Apr-2018.) $)
      archirng $p |- ( ph -> E. n e. NN0 ( ( n .x. X ) .< Y
        /\ Y .<_ ( ( n + 1 ) .x. X ) ) ) $=
        ( vm vx vy cv co wbr c1 caddc wa cn0 wrex wn cc0 wceq oveq1 breq2d ctos
        wcel wb cogrp comnd cgrp isogrp simprbi omndtos 3syl ogrpgrp syl tltnle
        grpidcl syl3anc mpbid mulg0 mtbird cn wi wral jca cmnd omndmnd isarchi2
        carchi biimpa syl21anc breq2 oveq2 rexbidv imbi12d imbi2d rspc2v nn0min
        breq1 syl3c adantr cz simpr nn0zd mulgcl anbi1d rexbidva mpbird ) AEUEZ
        HDUFZICUGZIXCUHUIUFZHDUFZFUGZUJZEUKULIXDFUGZUMZXHUJZEUKULAIUBUEZHDUFZFU
        GZIUNHDUFZFUGZXJXHEUBXMUNUOXNXPIFXMUNHDUPUQXMXCUOXNXDIFXMXCHDUPUQXMXFUO
        XNXGIFXMXFHDUPUQAXQIJFUGZAJICUGZXRUMZUAAGURUSZJBUSZIBUSZXSXTUTAGVAUSZGV
        BUSZYAPYDGVCUSZYEGVDVEZGVFVGZAYFYBAYDYFPGVHVIZBGJKLVKVISBCGFJIKNMVJVLVM
        AXPJIFAHBUSZXPJUORBDGHJKLOVNVIUQVOAYJYCUJJUCUEZCUGZUDUEZXMYKDUFZFUGZUBV
        PULZVQZUDBVRUCBVRZJHCUGZXOUBVPULZAYJYCRSVSAYAGVTUSZGWCUSZYRYHAYDYEUUAPY
        GGWAVGQYAUUAUJUUBYRUCUDBCDUBFGJKLONMWBWDWETYQYSYTVQYSYMXNFUGZUBVPULZVQU
        CUDHIBBYKHUOZYLYSYPUUDYKHJCWFUUEYOUUCUBVPUUEYNXNYMFYKHXMDWGUQWHWIYMIUOZ
        UUDYTYSUUFUUCXOUBVPYMIXNFWMWHWJWKWNWLAXIXLEUKAXCUKUSZUJZXEXKXHUUHYAXDBU
        SZYCXEXKUTAYAUUGYHWOUUHYFXCWPUSYJUUIAYFUUGYIWOUUHXCAUUGWQWRAYJUUGRWOBDG
        XCHKOWSVLAYCUUGSWOBCGFXDIKNMVJVLWTXAXB $.
    $}

    archirngz.1 $e |- ( ph -> ( oppG ` W ) e. oGrp ) $.
    $( Property of Archimedean left and right ordered groups.  (Contributed by
       Thierry Arnoux, 6-May-2018.) $)
    archirngz $p |- ( ph -> E. n e. ZZ ( ( n .x. X ) .< Y
      /\ Y .<_ ( ( n + 1 ) .x. X ) ) ) $=
      ( vm wceq cv co wbr c1 caddc wa cz wrex cneg wcel neg1z cminusg cfv cogrp
      cgrp ogrpgrp syl 1zzd eqid mulgneg syl3anc mulg1 fveq2d ogrpinv0lt biimpa
      eqtrd syl21anc eqbrtrd adantr simpr breqtrrd comnd isogrp simprbi omndtos
      cpo ctos 3syl tospos grpidcl posref syl2anc 1m1e0 negeqi ax-1cn negsubdii
      cc0 cmin neg0 3eqtr3i oveq1i mulg0 syl5eq 3brtr4d jca oveq1 breq1d oveq1d
      breq2d anbi12d rspcev sylancr cn0 c2 nn0zd ad2antrr znegcld 2z zsubcld cc
      a1i nn0cn adantl 2cnd negdi2d peano2zd mulgcl zaddcld 1cnd addassd oveq2i
      coppg addcld 3eqtrrd 3brtr3d ogrpinvlt syl31anc eqbrtrrd ad4antr syl12anc
      w3a eqcomd wb negcld cvv biimpar archirng cplusg ogrpaddlt grplid addcomd
      syl131anc 1p1e2 syl6eq eqtr3d mulgdir syl13anc grpinvcl posasymb syl32anc
      simplrr grpinvinv 3eqtr2rd 2m1e1 syl6req negeqd negsubdid simp-4l adantrr
      addsubassd 3anassrs negdi sylancl addid1d 3eqtrd wi ovexd pltle sylc tlt2
      mpjaodan carchi syldan r19.29a wss nn0ssz ssrexv mpsyl w3o tlt3 mpjao3dan
      wo ) AIJUCZEUDZHDUEZICUFZIUWGUGUHUEZHDUEZFUFZUIZEUJUKZIJCUFZJICUFZAUWFUIZ
[encoded data, 4320 characters]
      WOUWPUWBUYFSUYJBCGIJKMUWCVDUWD $.
  $}

  ${
    $d n x y B $.  $d n x y W $.  $d n x y X $.  $d n y Y $.  $d n x y .0. $.
    $d n x y .< $.  $d n x y .x. $.
    archiexdiv.b $e |- B = ( Base ` W ) $.
    archiexdiv.0 $e |- .0. = ( 0g ` W ) $.
    archiexdiv.i $e |- .< = ( lt ` W ) $.
    archiexdiv.x $e |- .x. = ( .g ` W ) $.
    $( In an Archimedean group, given two positive elements, there exists a
       "divisor" ` n ` .  (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
    archiexdiv $p |- ( ( ( W e. oGrp /\ W e. Archi ) /\ ( X e. B /\ Y e. B )
      /\ .0. .< X ) -> E. n e. NN Y .< ( n .x. X ) ) $=
      ( vx vy wcel wbr cv cn wrex wi cogrp carchi wa w3a wral isarchi3 3ad2ant1
      co biimpa simp3 breq2 oveq2 breq2d rexbidv imbi12d imbi2d rspc2v 3ad2ant2
      wceq breq1 mp2d ) EUAOZEUBOZUCZFAOGAOUCZHFBPZUDHMQZBPZNQZDQZVGCUHZBPZDRSZ
      TZNAUEMAUEZVFGVJFCUHZBPZDRSZVDVEVOVFVBVCVOMNABCDEHIJKLUFUIUGVDVEVFUJVEVDV
      OVFVRTZTVFVNVSVFVIVPBPZDRSZTMNFGAAVGFUSZVHVFVMWAVGFHBUKWBVLVTDRWBVKVPVIBV
      GFVJCULUMUNUOVIGUSZWAVRVFWCVTVQDRVIGVPBUTUNUPUQURVA $.
  $}

  ${
    $d a b m n x y z $.  $d m n x y z B $.  $d m n x U $.  $d m n x y z W $.
    $d m n x X $.  $d m n x y z ph $.  $d m n x .x. $.  $d m n x .0. $.
    $d m n x .< $.  $d m x .<_ $.
    archiabllem.b $e |- B = ( Base ` W ) $.
    archiabllem.0 $e |- .0. = ( 0g ` W ) $.
    archiabllem.e $e |- .<_ = ( le ` W ) $.
    archiabllem.t $e |- .< = ( lt ` W ) $.
    archiabllem.m $e |- .x. = ( .g ` W ) $.
    archiabllem.g $e |- ( ph -> W e. oGrp ) $.
    archiabllem.a $e |- ( ph -> W e. Archi ) $.
    ${
      archiabllem1.u $e |- ( ph -> U e. B ) $.
      archiabllem1.p $e |- ( ph -> .0. .< U ) $.
      archiabllem1.s $e |- ( ( ph /\ x e. B /\ .0. .< x ) -> U .<_ x ) $.
      ${
        archiabllem1a.x $e |- ( ph -> X e. B ) $.
        archiabllem1a.c $e |- ( ph -> .0. .< X ) $.
        $( Lemma for ~ archiabl :  In case an archimedean group ` W ` admits a
           smallest positive element ` U ` , then any positive element ` X ` of
           ` W ` can be written as ` ( n .x. U ) ` with ` n e. NN ` .  Since
           the reciprocal holds for negative elements, ` W ` is then isomorphic
           to ` ZZ ` .  (Contributed by Thierry Arnoux, 12-Apr-2018.) $)
        archiabllem1a $p |- ( ph -> E. n e. NN X = ( n .x. U ) ) $=
          ( vm cv co wbr c1 caddc wceq wrex cn0 wcel simplr nn0p1nn syl csg cfv
          wa cn cplusg ad2antrr mulg1 oveq1d cgrp cogrp ogrpgrp 1zzd nn0zd eqid
          cz mulgdir syl13anc cpo comnd ctos isogrp simprbi omndtos tospos 3syl
          mulgcl syl3anc grpsubcl peano2zd simprr ogrpsub syl131anc cmin nn0cnd
          1cnd pncan2d mulgsubdir 3eqtr3d breqtrd wral 3expia ralrimiva syl2anc
          grpsubid simprl ogrpsublt eqbrtrrd breq2 imbi12d rspcv syl3c posasymb
          wi w3a biimpa syl32anc 3eqtr4rd grpnpcan oveq1 eqeq2d rspcev archirng
          addcomd r19.29a ) AUDUEZFEUFZJDUGZJYAUHUIUFZFEUFZHUGZUSZJGUEZFEUFZUJZ
          GUTUKZUDULAYAULUMZUSZYGUSZYDUTUMZJYEUJZYKYNYLYOAYLYGUNZYAUOUPYNJYBIUQ
          URZUFZYBIVAURZUFZUHYAUIUFZFEUFZJYEYNUHFEUFZYBYTUFZFYBYTUFUUCUUAYNUUDF
          YBYTYNFCUMZUUDFUJAUUFYLYGSVBZCEIFLPVCUPZVDYNIVEUMZUHVKUMYAVKUMZUUFUUC
          UUEUJYNIVFUMZUUIAUUKYLYGQVBZIVGUPZYNVHYNYAYQVIZUUGCYTEIUHYAFLPYTVJZVL
          VMYNYSFYBYTYNIVNUMZYSCUMZUUFYSFHUGZFYSHUGZYSFUJZYNUUKUUPUULUUKIVOUMZI
          VPUMUUPUUKUUIUVAIVQVRIVSIVTWAUPYNUUIJCUMZYBCUMZUUQUUMAUVBYLYGUBVBZYNU
          UIUUJUUFUVCUUMUUNUUGCEIYAFLPWBWCZCIYRJYBLYRVJZWDWCZUUGYNYSYEYBYRUFZFH
          YNUUKUVBYECUMZUVCYFYSUVHHUGUULUVDYNUUIYDVKUMZUUFUVIUUMYNYAUUNWEZUUGCE
          IYDFLPWBWCUVEYMYCYFWFCIHYRJYEYBLNUVFWGWHYNYDYAWIUFZFEUFZUUDUVHFYNUVLU
          HFEYNYAUHYNYAYQWJZYNWKZWLVDYNUUIUVJUUJUUFUVMUVHUJUUMUVKUUNUUGCEIYDYRY
          AFLPUVFWMVMUUHWNWOYNUUQKBUEZDUGZFUVPHUGZXIZBCWPZKYSDUGZUUSUVGAUVTYLYG
          AUVSBCAUVPCUMUVQUVRUAWQWRVBYNYBYBYRUFZKYSDYNUUIUVCUWBKUJUUMUVECIYRYBK
          LMUVFWTWSYNUUKUVCUVBUVCYCUWBYSDUGUULUVEUVDUVEYMYCYFXACDIYRYBJYBLOUVFX
          BWHXCUVSUWAUUSXIBYSCUVPYSUJUVQUWAUVRUUSUVPYSKDXDUVPYSFHXDXEXFXGUUPUUQ
          UUFXJUURUUSUSUUTCIHYSFLNXHXKXLVDXMYNUUIUVBUVCUUAJUJUUMUVDUVECYTIYRJYB
          LUUOUVFXNWCYNUUBYDFEYNUHYAUVOUVNXSVDWNYJYPGYDUTYHYDUJYIYEJYHYDFEXOXPX
          QWSACDEUDHIFJKLMONPQRSUBTUCXRXT $.
      $}

      $( Lemma for ~ archiabl .  (Contributed by Thierry Arnoux,
         13-Apr-2018.) $)
      archiabllem1b $p |- ( ( ph /\ y e. B ) -> E. n e. ZZ y = ( n .x. U ) ) $=
        ( vm cv wcel wa wceq co cz wrex wbr cc0 0zd simpr mulg0 ad2antrr eqtr4d
        syl oveq1 eqeq2d rspcev syl2anc w3a cminusg cn cneg simplr nnzd znegcld
        cfv 3ad2ant1 eqid mulgnegnn cgrp cogrp ogrpgrp simp2 grpinvinv 3eqtr2rd
        fveq2d carchi simp1 syl3an1 grpinvcl cplusg grpidcl ogrpaddlt syl131anc
        simp3 grprinv grplid 3brtr3d archiabllem1a 3expa wss nnssz ssrexv mpsyl
        r19.29a ctos comnd isogrp simprbi omndtos 3syl adantr syl3anc mpjao3dan
        w3o tlt3 ) ACUCZDUDZUEZXJKUFZXJHUCZGFUGZUFZHUHUIZXJKEUJZKXJEUJZXLXMUEZU
        KUHUDXJUKGFUGZUFZXQXTULXTXJKYAXLXMUMAYAKUFZXKXMAGDUDZYCSDFJGKLMPUNUQUOU
        PXPYBHUKUHXNUKUFXOYAXJXNUKGFURUSUTVAAXKXRXQAXKXRVBZXJJVCVIZVIZUBUCZGFUG
        ZUFZXQUBVDYEYHVDUDZUEZYJUEZYHVEZUHUDXJYNGFUGZUFZXQYMYHYMYHYEYKYJVFZVGVH
        YMYOYIYFVIZYGYFVIZXJYMYKYDYOYRUFYQYEYDYKYJAXKYDXRSVJZUODFJYFYHGLPYFVKZV
        LVAYMYGYIYFYLYJUMVSYEYSXJUFZYKYJYEJVMUDZXKUUBYEJVNUDZUUCAXKUUDXRQVJZJVO
        ZUQZAXKXRVPZDJYFXJLUUAVQVAUOVRXPYPHYNUHXNYNUFXOYOXJXNYNGFURUSUTVAYEBDEF
        GUBIJYGKLMNOPUUEAXKJVTUDZXRRVJYTAXKKGEUJZXRTVJYEABUCZDUDZKUUKEUJZGUUKIU
        JZAXKXRWAUAWBYEUUCXKYGDUDZUUGUUHDJYFXJLUUAWCVAZYEXJYGJWDVIZUGZKYGUUQUGZ
        KYGEYEUUDXKKDUDZUUOXRUURUUSEUJUUEUUHYEUUCUUTUUGDJKLMWEZUQUUPAXKXRWHDUUQ
        EJXJKYGLOUUQVKZWFWGYEUUCXKUURKUFUUGUUHDUUQJYFXJKLUVBMUUAWIVAYEUUCUUOUUS
        YGUFUUGUUPDUUQJYGKLUVBMWJVAWKWLWRWMVDUHWNXLXSUEXPHVDUIZXQWOAXKXSUVCAXKX
        SVBZBDEFGHIJXJKLMNOPAXKUUDXSQVJAXKUUIXSRVJAXKYDXSSVJAXKUUJXSTVJUVDAUULU
        UMUUNAXKXSWAUAWBAXKXSVPAXKXSWHWLWMXPHVDUHWPWQXLJWSUDZXKUUTXMXRXSXHAUVEX
        KAUUDJWTUDZUVEQUUDUUCUVFJXAXBJXCXDXEAXKUMAUUTXKAUUDUUCUUTQUUFUVAXDXEDEJ
        XJKLOXIXFXG $.

      $( Archimedean ordered groups with a minimal positive value are abelian.
         (Contributed by Thierry Arnoux, 13-Apr-2018.) $)
      archiabllem1 $p |- ( ph -> W e. Abel ) $=
        ( co vy vz vm vn cgrp wcel cv cplusg cfv wceq wral cogrp ogrpgrp syl wa
        cabl cz caddc simplr zcnd addcomd oveq1d ad2antrr eqid mulgdir syl13anc
        3eqtr3d adantllr adantlr adantr simpllr oveq12d 3eqtr4d simplll simpr1r
        wrex 3anassrs archiabllem1b syl2anc r19.29a adantrr ralrimivva sylanbrc
        simpr isabl2 ) AHUEUFZUAUGZUBUGZHUHUIZTZWHWGWITZUJZUBCUKUACUKHUPUFAHULU
        FWFOHUMUNZAWLUAUBCCAWGCUFZWHCUFZUOZUOZWGUCUGZFETZUJZWLUCUQWQWRUQUFZUOZW
        TUOZWHUDUGZFETZUJZWLUDUQXCXDUQUFZUOZXFUOZWSXEWITZXEWSWITZWJWKXHXJXKUJZX
        FXBXGXLWTAXAXGXLWPAXAUOZXGUOZWRXDURTZFETZXDWRURTZFETZXJXKXNXOXQFEXNWRXD
        XNWRAXAXGUSZUTXNXDXMXGWDZUTVAVBXNWFXAXGFCUFZXPXJUJAWFXAXGWMVCZXSXTAYAXA
        XGQVCZCWIEHWRXDFJNWIVDZVEVFXNWFXGXAYAXRXKUJYBXTXSYCCWIEHXDWRFJNYDVEVFVG
        VHVIVJXIWGWSWHXEWIXBWTXGXFVKZXHXFWDZVLXIWHXEWGWSWIYFYEVLVMXCAWOXFUDUQVP
        AWPXAWTVNAWPXAWTWOWNWOXAWTAVOVQABUBCDEFUDGHIJKLMNOPQRSVRVSVTAWNWTUCUQVP
        WOABUACDEFUCGHIJKLMNOPQRSVRWAVTWBUAUBCWIHJYDWEWC $.
    $}

    ${
      $d m n t $.  $d a b c t B $.  $d a b c t W $.  $d a b c t X $.
      $d a b m n t Y $.  $d a b t ph $.  $d a b c t m n .+ $.
      $d a b c t m n .<_ $.  $d a b c t m n .< $.  $d a b c t .0. $.
      archiabllem2.1 $e |- .+ = ( +g ` W ) $.
      archiabllem2.2 $e |- ( ph -> ( oppG ` W ) e. oGrp ) $.
      archiabllem2.3 $e |- ( ( ph /\ a e. B /\ .0. .< a )
                                       -> E. b e. B ( .0. .< b /\ b .< a ) ) $.
      ${
        archiabllem2a.4 $e |- ( ph -> X e. B ) $.
        archiabllem2a.5 $e |- ( ph -> .0. .< X ) $.
        $( Lemma for ~ archiabl , which requires the group to be both left- and
           right-ordered.  (Contributed by Thierry Arnoux, 13-Apr-2018.) $)
        archiabllem2a $p |- ( ph
          -> E. c e. B ( .0. .< c /\ ( c .+ c ) .<_ X ) ) $=
          ( cv wbr wa wrex wcel simpllr simplrl simpr wceq breq2 oveq12d breq1d
          co id anbi12d rspcev syl12anc csg cfv cgrp cogrp simplll ogrpgrp 3syl
          syl eqid grpsubcl syl3anc grpsubid syl2anc simplrr ogrpsublt eqbrtrrd
          syl131anc coppg grpcl grpaddsubass syl13anc oveq2d grprid ogrpaddltrd
          3eqtrd breqtrd grpnpcan cvv wi ovexd pltle mpd ctos wo comnd ad2antrr
          isogrp simprbi omndtos simplr tlt2 mpjaodan ralrimiva rexbidv imbi12d
          wral 3expia anbi2d rspcv syl3c r19.29a ) AIKUEZDUFZXMHDUFZUGZILUEZDUF
          ZXQXQCUQZHFUFZUGZLBUHZKBAXMBUIZUGZXPUGZXMXMCUQZHFUFZYBHYFDUFZYEYGUGYC
          XNYGYBAYCXPYGUJYDXNXOYGUKYEYGULYAXNYGUGLXMBXQXMUMZXRXNXTYGXQXMIDUNYIX
          SYFHFYIXQXMXQXMCYIURZYJUOUPUSUTVAYEYHUGZHXMGVBVCZUQZBUIZIYMDUFZYMYMCU
          QZHFUFZYBYKGVDUIZHBUIZYCYNYKAGVEUIZYRAYCXPYHVFZRGVGZVHZYKAYSUUAUCVIZA
          YCXPYHUJZBGYLHXMMYLVJZVKVLZYKXMXMYLUQZIYMDYKYRYCUUHIUMUUCUUEBGYLXMIMN
          UUFVMVNZYKYTYCYSYCXOUUHYMDUFYKAYTUUARVIZUUEUUDUUEYDXNXOYHVOBDGYLXMHXM
          MPUUFVPVRVQYKYPHDUFZYQYKYPYMXMCUQZHDYKBCDGVDYMXMYMMPTUUCYKAGVSVCVEUIU
          UAUAVIUUGUUEUUGYKYMYFXMYLUQZXMDYKYTYSYFBUIZYCYHYMUUMDUFUUJUUDYKYRYCYC
          UUNUUCUUEUUEBCGXMXMMTVTZVLUUEYEYHULBDGYLHYFXMMPUUFVPVRYKUUMXMUUHCUQZX
          MICUQZXMYKYRYCYCYCUUMUUPUMUUCUUEUUEUUEBCGYLXMXMXMMTUUFWAWBYKUUHIXMCUU
          IWCYKYRYCUUQXMUMUUCUUEBCGXMIMTNWDVNWFWGWEYKYRYSYCUULHUMUUCUUDUUEBCGYL
          HXMMTUUFWHVLWGYKYRYPWIUIYSUUKYQWJUUCYKYMYMCWKUUDVDWIBDGFYPHOPWLVLWMYA
          YOYQUGLYMBXQYMUMZXRYOXTYQXQYMIDUNUURXSYPHFUURXQYMXQYMCUURURZUUSUOUPUS
          UTVAYEGWNUIZUUNYSYGYHWOYEYTGWPUIZUUTAYTYCXPRWQZYTYRUVAGWRWSGWTVHYEYRY
          CYCUUNYEYTYRUVBUUBVIAYCXPXAZUVCUUOVLAYSYCXPUCWQBDGFYFHMOPXBVLXCAYSIJU
          EZDUFZXNXMUVDDUFZUGZKBUHZWJZJBXGIHDUFZXPKBUHZUCAUVIJBAUVDBUIUVEUVHUBX
          HXDUDUVIUVJUVKWJJHBUVDHUMZUVEUVJUVHUVKUVDHIDUNUVLUVGXPKBUVLUVFXOXNUVD
          HXMDUNXIXEXFXJXKXL $.
      $}

      ${
        archiabllem2b.4 $e |- ( ph -> X e. B ) $.
        archiabllem2b.5 $e |- ( ph -> Y e. B ) $.
        $( Lemma for ~ archiabl .  (Contributed by Thierry Arnoux,
           1-May-2018.) $)
        archiabllem2c $p |- ( ph -> -. ( X .+ Y ) .< ( Y .+ X ) ) $=
          ( vt vn vm co wbr wa cv csg cfv wfal wcel simprr wn w3a c1 caddc cneg
          cminusg cogrp simpl1l syl simpl1r cgrp adantr ogrpgrp syl3anc syl2anc
          grpcl 3syl simpr2 peano2zd simp2 mulgcl simpr1 3ad2ant1 comnd simprbi
          cz isogrp simpr3 simprd simpld omndadd2rd eqid ogrpsub syl131anc zcnd
          coppg c2 1cnd add4d wceq 1p1e2 oveq2i addcom oveq1d syl5eq 2cnd simpr
          cc simpl addcld addcomd eqtr4d eqtr3d 2z a1i zaddcld mulgdir syl13anc
          eqtrd 3eqtr3d breqtrd eqeltrrd grpsubval grpinvcl znegcld ogrpaddltrd
          mulg2 ogrpaddlt cpo wi omndtos tospos plttr mp2and eqbrtrd wb eqeltrd
          ctos ogrpinvlt syl211anc mpbid cc0 wrex archirngz grpass negidd mulg0
          mulgneg breqtrrd grpsubcl plelttr oveq2d grprid 3eqtrd 3anassrs simp3
          carchi reeanv sylanbrc r19.29vva adantrr pm2.21fal 3adant1r ogrpsublt
          tltnle 3expa grpsubid eqbrtrrd archiabllem2a r19.29a inegd ) AHICUHZI
[encoded data, 4240 characters]
          IUYGVYPUYLVYPAUVJXCBDGUVOUVHUVIUVHMPVVCUUTWJUVDUVEUVFUVG $.

        $( Lemma for ~ archiabl .  (Contributed by Thierry Arnoux,
           1-May-2018.) $)
        archiabllem2b $p |- ( ph -> ( X .+ Y ) = ( Y .+ X ) ) $=
          ( co wceq wbr archiabllem2c ctos wcel cogrp comnd cgrp isogrp simprbi
          w3o omndtos 3syl ogrpgrp syl grpcl syl3anc tlt3 ecase23d ) AHICUEZIHC
          UEZUFZVEVFDUGZVFVEDUGZABCDEFGHIJKLMNOPQRSTUAUBUCUDUHABCDEFGIHJKLMNOPQ
          RSTUAUBUDUCUHAGUIUJZVEBUJZVFBUJZVGVHVIUPAGUKUJZGULUJZVJRVMGUMUJZVNGUN
          UOGUQURAVOHBUJZIBUJZVKAVMVORGUSUTZUCUDBCGHIMTVAVBAVOVQVPVLVRUDUCBCGIH
          MTVAVBBDGVEVFMPVCVBVD $.
      $}

      $( Archimedean ordered groups with no minimal positive value are abelian.
         (Contributed by Thierry Arnoux, 1-May-2018.) $)
      archiabllem2 $p |- ( ph -> W e. Abel ) $=
        ( vx vy cgrp wcel cv co wceq wral cogrp ogrpgrp syl w3a 3ad2ant1 carchi
        cabl coppg cfv wbr wa wrex simp1 syl3an1 simp2 archiabllem2b ralrimivva
        simp3 3expb isabl2 sylanbrc ) AGUCUDZUAUEZUBUEZCUFVLVKCUFUGZUBBUHUABUHG
        UOUDAGUIUDZVJPGUJUKAVMUAUBBBAVKBUDZVLBUDZVMAVOVPULZBCDEFGVKVLHIJKLMNOAV
        OVNVPPUMAVOGUNUDVPQUMRAVOGUPUQUIUDVPSUMVQAIUEZBUDHVRDURHJUEZDURVSVRDURU
        SJBUTAVOVPVATVBAVOVPVCAVOVPVFVDVGVEUAUBBCGKRVHVI $.
    $}
  $}

  ${
    $d u v x y W $.
    $( Archimedean left- and right- ordered groups are Abelian.  (Contributed
       by Thierry Arnoux, 1-May-2018.) $)
    archiabl $p |- ( ( W e. oGrp /\ ( oppG ` W ) e. oGrp /\ W e. Archi )
      -> W e. Abel ) $=
      ( vu vx vv vy cogrp wcel cfv w3a cv wi wral wa wrex eqid simp2 wceq breq2
      wbr wn coppg carchi c0g cplt cple cbs cabl simpll1 simpll3 simplr simp1rr
      simprl simp3 imbi12d rspcv syl3c archiabllem1 adantllr simpr breq1 imbi2d
      ralbidv anbi12d cbvrexv r19.29a cplusg simpl1 simpl3 simpl2 ralnex sylibr
      sylib rexanali imbi2i imnan ralbii notbid anbi2d rexbidv cbvralv r19.21bi
      cmg bitri syl6ib 3impia ctos wb comnd simp1l1 cgrp isogrp simprbi omndtos
      tltnle bicomd 3com23 3expa rexbidva syl2anc mpbid archiabllem2 pm2.61dan
      3syl ) AFGZAUAHFGZAUBGZIZAUCHZBJZAUDHZSZXHCJZXJSZXIXLAUEHZSZKZCAUFHZLZMZB
      XQNZAUGGZXGXTMZXHDJZXJSZXMYCXLXNSZKZCXQLZMZYADXQXGYCXQGZYHYAXTXGYIMZYHMZE
      XQXJAWBHZYCXNAXHXQOZXHOZXNOZXJOZYLOZXDXEXFYIYHUHXDXEXFYIYHUIXGYIYHUJYJYDY
      GULYKEJZXQGZXHYRXJSZIYSYGYTYCYRXNSZYKYSYTPYDYGYJYSYTUKYKYSYTUMYFYTUUAKCYR
      XQXLYRQZXMYTYEUUAXLYRXHXJRZXLYRYCXNRZUNUOUPUQURYBXTYHDXQNXGXTUSXSYHBDXQXI
      YCQZXKYDXRYGXIYCXHXJRZUUEXPYFCXQUUEXOYEXMXIYCXLXNUTZVAVBVCVDVLVEXGXTTZMZX
      QAVFHZXJYLXNAXHDEYMYNYOYPYQXDXEXFUUHVGXDXEXFUUHVHUUJOXDXEXFUUHVIUUIYIYDIZ
      YTUUATZMZEXQNZYTYRYCXJSZMZEXQNZUUIYIYDUUNUUIYIMYDXMYETZMZCXQNZUUNUUIYDUUT
      KZDXQUUIXKXMXOTZMZCXQNZKZBXQLZUVADXQLUUIXSTZBXQLZUVFUUIUUHUVHXGUUHUSXSBXQ
      VJVKUVEUVGBXQUVEXKXRTZKUVGUVDUVIXKXMXOCXQVMVNXKXRVOWCVPVKUVEUVABDXQUUEXKY
      DUVDUUTUUFUUEUVCUUSCXQUUEUVBUURXMUUEXOYEUUGVQVRVSUNVTVLWAUUSUUMCEXQUUBXMY
      TUURUULUUCUUBYEUUAUUDVQVCVDWDWEUUKAWFGZYIUUNUUQWGUUKXDAWHGZUVJXDXEXFUUHYI
      YDWIXDAWJGUVKAWKWLAWMXCUUIYIYDPUVJYIMZUUMUUPEXQUVLYSMUULUUOYTUVJYIYSUULUU
      OWGZUVJYSYIUVMUVJYSYIIUUOUULXQXJAXNYRYCYMYOYPWNWOWPWQVRWRWSWTXAXB $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Semiring left modules
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c SLMod $.

  $( Extend class notation with class of all semimodules. $)
  cslmd $a class SLMod $.

  ${
    $d a f g k p q r s t v w x $.
    $( Define the class of all (left) modules over semirings, i.e. semimodules,
       which are generalizations of left modules.  A semimodule is a
       commutative monoid (=vectors) together with a semiring (=scalars) and a
       left scalar product connecting them. ` ( 0 [,] +oo ) ` for example is
       not a full fledged left module, but is a semimodule.  Definition of
       [Golan] p. 149.  (Contributed by Thierry Arnoux, 21-Mar-2018.) $)
    df-slmd $a |- SLMod = { g e. CMnd | [. ( Base ` g ) / v ].
      [. ( +g ` g ) / a ]. [. ( .s ` g ) / s ]. [. ( Scalar ` g ) / f ].
      [. ( Base ` f ) / k ]. [. ( +g ` f ) / p ]. [. ( .r ` f ) / t ].
      ( f e. SRing /\ A. q e. k A. r e. k A. x e. v A. w e. v
                ( ( ( r s w ) e. v
                 /\ ( r s ( w a x ) ) = ( ( r s w ) a ( r s x ) )
                 /\ ( ( q p r ) s w ) = ( ( q s w ) a ( r s w ) )
               ) /\ ( ( ( q t r ) s w ) = ( q s ( r s w ) )
                 /\ ( ( 1r ` f ) s w ) = w
                 /\ ( ( 0g ` f ) s w ) = ( 0g ` g ) ) ) ) } $.
  $}

  ${
    $d a f g k p q r s t v w x .X. $.  $d a f g k p q r s v w x .+ $.
    $d a f g k p q r s v w x .+^ $.  $d a f g k p q r s v w x .1. $.
    $d a f g k p q r s v w x .x. $.  $d a f g k p q r s t v w x F $.
    $d a f g k p q r s v w x K $.  $d a f g k p q r s v w x V $.
    $d a f g q r s v w x W $.  $d g q r w x .0. $.  $d g q r w x O $.
    $d q r w x Q $.  $d r w x R $.  $d w x X $.  $d w Y $.
    isslmd.v $e |- V = ( Base ` W ) $.
    isslmd.a $e |- .+ = ( +g ` W ) $.
    isslmd.s $e |- .x. = ( .s ` W ) $.
    isslmd.0 $e |- .0. = ( 0g ` W ) $.
    isslmd.f $e |- F = ( Scalar ` W ) $.
    isslmd.k $e |- K = ( Base ` F ) $.
    isslmd.p $e |- .+^ = ( +g ` F ) $.
    isslmd.t $e |- .X. = ( .r ` F ) $.
    isslmd.u $e |- .1. = ( 1r ` F ) $.
    isslmd.o $e |- O = ( 0g ` F ) $.
    $( The predicate "is a semimodule".  (Contributed by NM, 4-Nov-2013.)
       (Revised by Mario Carneiro, 19-Jun-2014.)  (Revised by Thierry Arnoux,
       1-Apr-2018.) $)
    isslmd $p |- ( W e. SLMod <->
      ( W e. CMnd /\ F e. SRing /\ A. q e. K A. r e. K A. x e. V A. w e. V
                ( ( ( r .x. w ) e. V
                 /\ ( r .x. ( w .+ x ) ) = ( ( r .x. w ) .+ ( r .x. x ) )
                 /\ ( ( q .+^ r ) .x. w ) = ( ( q .x. w ) .+ ( r .x. w ) )
               ) /\ ( ( ( q .X. r ) .x. w ) = ( q .x. ( r .x. w ) )
                 /\ ( .1. .x. w ) = w
                 /\ ( O .x. w ) = .0. ) ) ) ) $=
      ( vf vs vv va vp vt vg vk cslmd wcel ccmn csrg cv co wceq w3a wa wral cur
      cfv c0g cmulr wsbc cplusg csca cvsca fvex simp1 simp2 oveqd oveq1d eqeq1d
      cbs 3anbi3d simp3 3anbi1d anbi12d 2ralbidv raleqbidv anbi2d sbc3ie eleq1d
      simpr fveq2d simpl oveq12d eqeq12d eqidd oveq123d 3anbi123d syl5bb sbc2ie
      eleq2d oveq2d eqeq2d anbi1d syl6eqr eleq12d df-slmd elrab2 3anass bitr4i
      fveq2 ) LUNUOLUPUOZHUQUOZNURZBURZEUSZKUOZXKXLAURZCUSZEUSZXMXKXOEUSZCUSZUT
      ZOURZXKDUSZXLEUSZYAXLEUSZXMCUSZUTZVAZYAXKFUSZXLEUSZYAXMEUSZUTZGXLEUSZXLUT
      ZJXLEUSZMUTZVAZVBZBKVCZAKVCZNIVCZOIVCZVBZVBXIXJUUAVAUFURZUQUOZXKXLUGURZUS
      ZUHURZUOZXKXLXOUIURZUSZUUEUSZUUFXKXOUUEUSZUUIUSZUTZYAXKUJURZUSZXLUUEUSZYA
      XLUUEUSZUUFUUIUSZUTZVAZYAXKUKURZUSZXLUUEUSZYAUUFUUEUSZUTZUUCVDVEZXLUUEUSZ
      XLUTZUUCVFVEZXLUUEUSZULURZVFVEZUTZVAZVBZBUUGVCAUUGVCZNUMURZVCZOUVRVCZVBZU
      KUUCVGVEZVHUJUUCVIVEZVHUMUUCVRVEZVHZUFUVLVJVEZVHUGUVLVKVEZVHZUIUVLVIVEZVH
      UHUVLVRVEZVHZUUBULLUPUNUWKUWFUQUOZXKXLUWGUSZUWJUOZXKXLXOUWIUSZUWGUSZUWMXK
      XOUWGUSZUWIUSZUTZYAXKUWFVIVEZUSZXLUWGUSZYAXLUWGUSZUWMUWIUSZUTZVAZYAXKUWFV
      GVEZUSZXLUWGUSZYAUWMUWGUSZUTZUWFVDVEZXLUWGUSZXLUTZUWFVFVEZXLUWGUSZUVMUTZV
      AZVBZBUWJVCZAUWJVCZNUWFVRVEZVCZOUYBVCZVBZUVLLUTZUUBUWHUYEUHUIUWJUWIUVLVRV
      LUVLVIVLUWHUWLUWMUUGUOZXKUUJUWGUSZUWMUWQUUIUSZUTZUXBUXCUWMUUIUSZUTZVAZUXR
      VBZBUUGVCZAUUGVCZNUYBVCZOUYBVCZVBZUUGUWJUTZUUIUWIUTZVBZUYEUWEUYSUGUFUWGUW
      FUVLVKVLUVLVJVLUWEUUDUUHUUNYAXKUWCUSZXLUUEUSZUUSUTZVAZYAXKUWBUSZXLUUEUSZU
      VEUTZUVIUVNVAZVBZBUUGVCAUUGVCZNUWDVCZOUWDVCZVBZUUEUWGUTZUUCUWFUTZVBZUYSUW
      AVUOUMUJUKUWDUWCUWBUUCVRVLUUCVIVLUUCVGVLUVRUWDUTZUUOUWCUTZUVBUWBUTZVAZUVT
      VUNUUDVVBUVSVUMOUVRUWDVUSVUTVVAVMZVVBUVQVULNUVRUWDVVCVVBUVPVUKABUUGUUGVVB
      UVAVUFUVOVUJVVBUUTVUEUUHUUNVVBUUQVUDUUSVVBUUPVUCXLUUEVVBUUOUWCYAXKVUSVUTV
      VAVNVOVPVQVSVVBUVFVUIUVIUVNVVBUVDVUHUVEVVBUVCVUGXLUUEVVBUVBUWBYAXKVUSVUTV
      VAVTVOVPVQWAWBWCWDWDWEWFVURUUDUWLVUNUYRVURUUCUWFUQVUPVUQWHZWGVURVUMUYQOUW
      DUYBVURUUCUWFVRVVDWIZVURVULUYPNUWDUYBVVEVURVUKUYNABUUGUUGVURVUFUYMVUJUXRV
      URUUHUYGUUNUYJVUEUYLVURUUFUWMUUGVURUUEUWGXKXLVUPVUQWJZVOZWGVURUUKUYHUUMUY
      IVURUUEUWGXKUUJVVFVOVURUUFUWMUULUWQUUIVVGVURUUEUWGXKXOVVFVOWKWLVURVUDUXBU
      USUYKVURVUCUXAXLXLUUEUWGVVFVURUWCUWTYAXKVURUUCUWFVIVVDWIVOVURXLWMZWNVURUU
      RUXCUUFUWMUUIVURUUEUWGYAXLVVFVOVVGWKWLWOVURVUIUXKUVIUXNUVNUXQVURVUHUXIUVE
      UXJVURVUGUXHXLXLUUEUWGVVFVURUWBUXGYAXKVURUUCUWFVGVVDWIVOVVHWNVURYAYAUUFUW
      MUUEUWGVVFVURYAWMVVGWNWLVURUVHUXMXLVURUVGUXLXLXLUUEUWGVVFVURUUCUWFVDVVDWI
      VVHWNVQVURUVKUXPUVMVURUVJUXOXLXLUUEUWGVVFVURUUCUWFVFVVDWIVVHWNVQWOWBWCWDW
      DWBWPWQVUBUYRUYDUWLVUBUYPUYAONUYBUYBVUBUYOUXTAUUGUWJUYTVUAWJZVUBUYNUXSBUU
      GUWJVVIVUBUYMUXFUXRVUBUYGUWNUYJUWSUYLUXEVUBUUGUWJUWMVVIWRVUBUYHUWPUYIUWRV
      UBUUJUWOXKUWGVUBUUIUWIXLXOUYTVUAWHZVOWSVUBUUIUWIUWMUWQVVJVOWLVUBUYKUXDUXB
      VUBUUIUWIUXCUWMVVJVOWTWOXAWDWDWCWEWPWQUYFUWLXJUYDUUAUYFUWFHUQUYFUWFLVJVEH
      UVLLVJXHTXBZWGUYFUYCYTOUYBIUYFUYBHVRVEIUYFUWFHVRVVKWIUAXBZUYFUYAYSNUYBIVV
      LUYFUXTYRAUWJKUYFUWJLVRVEKUVLLVRXHPXBZUYFUXSYQBUWJKVVMUYFUXFYGUXRYPUYFUWN
      XNUWSXTUXEYFUYFUWMXMUWJKUYFUWGEXKXLUYFUWGLVKVEEUVLLVKXHRXBZVOZVVMXCUYFUWP
      XQUWRXSUYFXKXKUWOXPUWGEVVNUYFXKWMUYFUWICXLXOUYFUWILVIVECUVLLVIXHQXBZVOWNU
      YFUWMXMUWQXRUWICVVPVVOUYFUWGEXKXOVVNVOWNWLUYFUXBYCUXDYEUYFUXAYBXLXLUWGEVV
      NUYFUWTDYAXKUYFUWTHVIVEDUYFUWFHVIVVKWIUBXBVOUYFXLWMZWNUYFUXCYDUWMXMUWICVV
      PUYFUWGEYAXLVVNVOVVOWNWLWOUYFUXKYKUXNYMUXQYOUYFUXIYIUXJYJUYFUXHYHXLXLUWGE
      VVNUYFUXGFYAXKUYFUXGHVGVEFUYFUWFHVGVVKWIUCXBVOVVQWNUYFYAYAUWMXMUWGEVVNUYF
      YAWMVVOWNWLUYFUXMYLXLUYFUXLGXLXLUWGEVVNUYFUXLHVDVEGUYFUWFHVDVVKWIUDXBVVQW
      NVQUYFUXPYNUVMMUYFUXOJXLXLUWGEVVNUYFUXOHVFVEJUYFUWFHVFVVKWIUEXBVVQWNUYFUV
      MLVFVEMUVLLVFXHSXBWLWOWBWDWDWDWDWBWPABUHUKUFULUMUGNOUJUIXDXEXIXJUUAXFXG
      $.

    $( Lemma for properties of a semimodule.  (Contributed by NM, 8-Dec-2013.)
       (Revised by Mario Carneiro, 19-Jun-2014.)  (Revised by Thierry Arnoux,
       1-Apr-2018.) $)
    slmdlema $p |- ( ( W e. SLMod /\ ( Q e. K /\ R e. K )
          /\ ( X e. V /\ Y e. V ) ) ->
                ( ( ( R .x. Y ) e. V
                 /\ ( R .x. ( Y .+ X ) ) = ( ( R .x. Y ) .+ ( R .x. X ) )
                 /\ ( ( Q .+^ R ) .x. Y ) = ( ( Q .x. Y ) .+ ( R .x. Y ) )
               ) /\ ( ( ( Q .X. R ) .x. Y ) = ( Q .x. ( R .x. Y ) )
                 /\ ( .1. .x. Y ) = Y
                 /\ ( O .x. Y ) = .0. ) ) ) $=
      ( vw vx vr vq cslmd wcel wa co wceq w3a cv wral ccmn isslmd simp3bi oveq1
      csrg oveq1d eqeq12d 3anbi3d 3anbi1d anbi12d 2ralbidv eleq1d oveq12d oveq2
      oveq2d 3anbi123d rspc2v mpan9 3anbi2d anbi1d id eqeq1d syl5com 3impia ) L
      UJUKZCIUKDIUKULZMKUKNKUKULZDNEUMZKUKZDNMAUMZEUMZWEDMEUMZAUMZUNZCDBUMZNEUM
      ZCNEUMZWEAUMZUNZUOZCDFUMZNEUMZCWEEUMZUNZGNEUMZNUNZJNEUMZOUNZUOZULZWBWCULD
      UFUPZEUMZKUKZDXHUGUPZAUMZEUMZXIDXKEUMZAUMZUNZWLXHEUMZCXHEUMZXIAUMZUNZUOZW
      RXHEUMZCXIEUMZUNZGXHEUMZXHUNZJXHEUMZOUNZUOZULZUFKUQUGKUQZWDXGWBUHUPZXHEUM
      ZKUKZYLXLEUMZYMYLXKEUMZAUMZUNZUIUPZYLBUMZXHEUMZYSXHEUMZYMAUMZUNZUOZYSYLFU
      MZXHEUMZYSYMEUMZUNZYFYHUOZULZUFKUQUGKUQZUHIUQUIIUQZWCYKWBLURUKHVBUKUUMUGU
      FABEFGHIJKLOUHUIPQRSTUAUBUCUDUEUSUTUULYKYNYRCYLBUMZXHEUMZXRYMAUMZUNZUOZCY
      LFUMZXHEUMZCYMEUMZUNZYFYHUOZULZUFKUQUGKUQUIUHCDIIYSCUNZUUKUVDUGUFKKUVEUUE
      UURUUJUVCUVEUUDUUQYNYRUVEUUAUUOUUCUUPUVEYTUUNXHEYSCYLBVAVCUVEUUBXRYMAYSCX
      HEVAVCVDVEUVEUUIUVBYFYHUVEUUGUUTUUHUVAUVEUUFUUSXHEYSCYLFVAVCYSCYMEVAVDVFV
      GVHYLDUNZUVDYJUGUFKKUVFUURYAUVCYIUVFYNXJYRXPUUQXTUVFYMXIKYLDXHEVAZVIUVFYO
      XMYQXOYLDXLEVAUVFYMXIYPXNAUVGYLDXKEVAVJVDUVFUUOXQUUPXSUVFUUNWLXHEYLDCBVKV
      CUVFYMXIXRAUVGVLVDVMUVFUVBYDYFYHUVFUUTYBUVAYCUVFUUSWRXHEYLDCFVKVCUVFYMXIC
      EUVGVLVDVFVGVHVNVOYJXGXJDXHMAUMZEUMZXIWIAUMZUNZXTUOZYIULUGUFMNKKXKMUNZYAU
      VLYIUVMXPUVKXJXTUVMXMUVIXOUVJUVMXLUVHDEXKMXHAVKVLUVMXNWIXIAXKMDEVKVLVDVPV
      QXHNUNZUVLWQYIXFUVNXJWFUVKWKXTWPUVNXIWEKXHNDEVKZVIUVNUVIWHUVJWJUVNUVHWGDE
      XHNMAVAVLUVNXIWEWIAUVOVCVDUVNXQWMXSWOXHNWLEVKUVNXRWNXIWEAXHNCEVKUVOVJVDVM
      UVNYDXAYFXCYHXEUVNYBWSYCWTXHNWREVKUVNXIWECEUVOVLVDUVNYEXBXHNXHNGEVKUVNVRV
      DUVNYGXDOXHNJEVKVSVMVGVNVTWA $.
  $}

  ${
    $d q r w x W $.
    $( Left semimodules generalize the notion of left modules.  (Contributed by
       Thierry Arnoux, 1-Apr-2018.) $)
    lmodslmd $p |- ( W e. LMod -> W e. SLMod ) $=
      ( vr vw vx vq wcel cfv cv co cbs cplusg wceq w3a c0g wral r19.21bi simpld
      wa eqid ralrimiva clmod ccmn csca csrg cvsca cmulr cslmd lmodcmn lmodring
      cur crg ringsrg syl cgrp islmod simp3bi simp-4l lmod0vs sylancom 3jca jca
      simprd isslmd syl3anbrc ) AUAFZAUBFAUCGZUDFZBHZCHZAUEGZIZAJGZFVHVIDHZAKGZ
      IVJIVKVHVMVJIVNILEHZVHVFKGZIVIVJIVOVIVJIVKVNILMZVOVHVFUFGZIVIVJIVOVKVJILZ
      VFUJGZVIVJIVILZVFNGZVIVJIANGZLZMZRZCVLOZDVLOZBVFJGZOZEWIOAUGFAUHVEVFUKFZV
      GVFAVFSZUIVFULUMVEWJEWIVEVOWIFZRZWHBWIWNVHWIFZRZWGDVLWPVMVLFZRZWFCVLWRVIV
      LFZRZVQWEWTVQVSWARZWRVQXARZCVLWPXBCVLOZDVLWNXCDVLOZBWIVEXDBWIOZEWIVEAUNFW
      KXEEWIODCVNVPVJVRVTVFWIVLABEVLSZVNSZVJSZWLWISZVPSZVRSZVTSZUOUPPPPPZQWTVSW
      AWDWTVSWAWTVQXAXMVBZQWTVSWAXNVBWRWSVEWDVEWMWOWQWSUQVJVFWBVLAVIWCXFWLXHWBS
      ZWCSZURUSUTVATTTTDCVNVPVJVRVTVFWIWBVLAWCBEXFXGXHXPWLXIXJXKXLXOVCVD $.
  $}

  ${
    $d w x y z F $.  $d w x y z W $.
    $( A semimodule is a commutative monoid.  (Contributed by Thierry Arnoux,
       1-Apr-2018.) $)
    slmdcmn $p |- ( W e. SLMod -> W e. CMnd ) $=
      ( vz vy vx vw cslmd wcel ccmn csca cfv csrg cv co cbs cplusg wceq w3a c0g
      wral eqid cvsca cmulr cur wa isslmd simp1bi ) AFGAHGAIJZKGBLZCLZAUAJZMZAN
      JZGUHUIDLZAOJZMUJMUKUHUMUJMUNMPELZUHUGOJZMUIUJMUOUIUJMUKUNMPQUOUHUGUBJZMU
      IUJMUOUKUJMPUGUCJZUIUJMUIPUGRJZUIUJMARJZPQUDCULSDULSBUGNJZSEVASDCUNUPUJUQ
      URUGVAUSULAUTBEULTUNTUJTUTTUGTVATUPTUQTURTUSTUEUF $.

    $( A semimodule is a monoid.  (Contributed by Thierry Arnoux,
       1-Apr-2018.) $)
    slmdmnd $p |- ( W e. SLMod -> W e. Mnd ) $=
      ( cslmd wcel ccmn cmnd slmdcmn cmnmnd syl ) ABCADCAECAFAGH $.

    slmdsrg.1 $e |- F = ( Scalar ` W ) $.
    $( The scalar component of a semimodule is a semiring.  (Contributed by NM,
       8-Dec-2013.)  (Revised by Mario Carneiro, 19-Jun-2014.)  (Revised by
       Thierry Arnoux, 1-Apr-2018.) $)
    slmdsrg $p |- ( W e. SLMod -> F e. SRing ) $=
      ( vz vy vx vw cslmd wcel ccmn cv cfv co cbs cplusg wceq w3a c0g wral eqid
      csrg cvsca cmulr cur wa isslmd simp2bi ) BHIBJIAUAIDKZEKZBUBLZMZBNLZIUHUI
      FKZBOLZMUJMUKUHUMUJMUNMPGKZUHAOLZMUIUJMUOUIUJMUKUNMPQUOUHAUCLZMUIUJMUOUKU
      JMPAUDLZUIUJMUIPARLZUIUJMBRLZPQUEEULSFULSDANLZSGVASFEUNUPUJUQURAVAUSULBUT
      DGULTUNTUJTUTTCVATUPTUQTURTUSTUFUG $.
  $}

  ${
    slmdbn0.b $e |- B = ( Base ` W ) $.
    $( The base set of a semimodule is nonempty.  (Contributed by Thierry
       Arnoux, 1-Apr-2018.) $)
    slmdbn0 $p |- ( W e. SLMod -> B =/= (/) ) $=
      ( cslmd wcel cmnd c0g cfv c0 wne slmdmnd eqid mndidcl ne0i 3syl ) BDEBFEB
      GHZAEAIJBKABPCPLMAPNO $.
  $}

  ${
    slmdacl.f $e |- F = ( Scalar ` W ) $.
    slmdacl.k $e |- K = ( Base ` F ) $.
    slmdacl.p $e |- .+ = ( +g ` F ) $.
    $( Closure of ring addition for a semimodule.  (Contributed by Thierry
       Arnoux, 1-Apr-2018.) $)
    slmdacl $p |- ( ( W e. SLMod /\ X e. K /\ Y e. K ) -> ( X .+ Y ) e. K ) $=
      ( cslmd wcel cmnd co csrg slmdsrg srgmnd syl mndcl syl3an1 ) DJKZBLKZECKF
      CKEFAMCKTBNKUABDGOBPQCABEFHIRS $.
  $}

  ${
    slmdmcl.f $e |- F = ( Scalar ` W ) $.
    slmdmcl.k $e |- K = ( Base ` F ) $.
    slmdmcl.t $e |- .x. = ( .r ` F ) $.
    $( Closure of ring multiplication for a semimodule.  (Contributed by NM,
       14-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.)  (Revised by
       Thierry Arnoux, 1-Apr-2018.) $)
    slmdmcl $p |- ( ( W e. SLMod /\ X e. K /\ Y e. K ) -> ( X .x. Y ) e. K ) $=
      ( cslmd wcel csrg co slmdsrg srgcl syl3an1 ) DJKBLKECKFCKEFAMCKBDGNCBAEFH
      IOP $.
  $}

  ${
    slmdsn0.f $e |- F = ( Scalar ` W ) $.
    slmdsn0.b $e |- B = ( Base ` F ) $.
    $( The set of scalars in a semimodule is nonempty.  (Contributed by Thierry
       Arnoux, 1-Apr-2018.) $)
    slmdsn0 $p |- ( W e. SLMod -> B =/= (/) ) $=
      ( wcel c0g cfv c0 wne csrg cmnd slmdsrg srgmnd eqid mndidcl 3syl ne0i syl
      cslmd ) CTFZBGHZAFZAIJUABKFBLFUCBCDMBNABUBEUBOPQAUBRS $.
  $}

  ${
    slmdvacl.v $e |- V = ( Base ` W ) $.
    slmdvacl.a $e |- .+ = ( +g ` W ) $.
    $( Closure of vector addition for a semiring left module.  (Contributed by
       NM, 8-Dec-2013.)  (Revised by Mario Carneiro, 19-Jun-2014.)  (Revised by
       Thierry Arnoux, 1-Apr-2018.) $)
    slmdvacl $p |- ( ( W e. SLMod /\ X e. V /\ Y e. V ) -> ( X .+ Y ) e. V ) $=
      ( cslmd wcel cmnd co slmdmnd mndcl syl3an1 ) CHICJIDBIEBIDEAKBICLBACDEFGM
      N $.

    $( Semiring left module vector sum is associative.  (Contributed by NM,
       10-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.)  (Revised by
       Thierry Arnoux, 1-Apr-2018.) $)
    slmdass $p |- ( ( W e. SLMod /\ ( X e. V /\ Y e. V /\ Z e. V ) ) ->
                    ( ( X .+ Y ) .+ Z ) = ( X .+ ( Y .+ Z ) ) ) $=
      ( cslmd wcel cmnd w3a co wceq slmdmnd mndass sylan ) CIJCKJDBJEBJFBJLDEAM
      FAMDEFAMAMNCOBACDEFGHPQ $.
  $}

  ${
    slmdvscl.v $e |- V = ( Base ` W ) $.
    slmdvscl.f $e |- F = ( Scalar ` W ) $.
    slmdvscl.s $e |- .x. = ( .s ` W ) $.
    slmdvscl.k $e |- K = ( Base ` F ) $.
    $( Closure of scalar product for a semiring left module.  ( ~ hvmulcl
       analog.)  (Contributed by NM, 8-Dec-2013.)  (Revised by Mario Carneiro,
       19-Jun-2014.)  (Revised by Thierry Arnoux, 1-Apr-2018.) $)
    slmdvscl $p |- ( ( W e. SLMod /\ R e. K /\ X e. V )
                   -> ( R .x. X ) e. V ) $=
      ( wcel wa co pm4.24 w3a cplusg cfv wceq eqid cslmd cmulr cur c0g slmdlema
      biid simpld simp1d syl3anb ) FUALZUJADLZUKUKMZGELZUMUMMZAGBNZELZUJUFUKOUM
      OUJULUNPZUPAGGFQRZNBNUOUOURNZSZAACQRZNGBNUSSZUQUPUTVBPAACUBRZNGBNAUOBNSCU
      CRZGBNGSCUDRZGBNFUDRZSPURVAAABVCVDCDVEEFGGVFHURTJVFTIKVATVCTVDTVETUEUGUHU
      I $.
  $}

  ${
    slmdvsdi.v $e |- V = ( Base ` W ) $.
    slmdvsdi.a $e |- .+ = ( +g ` W ) $.
    slmdvsdi.f $e |- F = ( Scalar ` W ) $.
    slmdvsdi.s $e |- .x. = ( .s ` W ) $.
    slmdvsdi.k $e |- K = ( Base ` F ) $.
    $( Distributive law for scalar product.  ( ~ ax-hvdistr1 analog.)
       (Contributed by NM, 10-Jan-2014.)  (Revised by Mario Carneiro,
       22-Sep-2015.)  (Revised by Thierry Arnoux, 1-Apr-2018.) $)
    slmdvsdi $p |- ( ( W e. SLMod /\ ( R e. K /\ X e. V /\ Y e. V ) ) ->
                     ( R .x. ( X .+ Y ) ) = ( ( R .x. X ) .+ ( R .x. Y ) ) ) $=
      ( wcel co wceq w3a cfv eqid cslmd wa cplusg cmulr cur c0g slmdlema simpld
      wi simp2d 3expia anabsan2 exp4b com34 3imp2 ) GUAOZBEOZHFOZIFOZBHIAPCPBHC
      PZBICPAPQZUPUQUSURVAUPUQUSURVAUPUQUSURUBZVAUIUPUQUQUBZVBVAUPVCVBRZUTFOZVA
      BBDUCSZPHCPUTUTAPQZVDVEVAVGRBBDUDSZPHCPBUTCPQDUESZHCPHQDUFSZHCPGUFSZQRAVF
      BBCVHVIDEVJFGIHVKJKMVKTLNVFTVHTVITVJTUGUHUJUKULUMUNUO $.
  $}

  ${
    slmdvsdir.v $e |- V = ( Base ` W ) $.
    slmdvsdir.a $e |- .+ = ( +g ` W ) $.
    slmdvsdir.f $e |- F = ( Scalar ` W ) $.
    slmdvsdir.s $e |- .x. = ( .s ` W ) $.
    slmdvsdir.k $e |- K = ( Base ` F ) $.
    slmdvsdir.p $e |- .+^ = ( +g ` F ) $.
    $( Distributive law for scalar product.  ( ~ ax-hvdistr1 analog.)
       (Contributed by NM, 10-Jan-2014.)  (Revised by Mario Carneiro,
       22-Sep-2015.)  (Revised by Thierry Arnoux, 1-Apr-2018.) $)
    slmdvsdir $p |- ( ( W e. SLMod /\ ( Q e. K /\ R e. K /\ X e. V ) ) ->
                    ( ( Q .+^ R ) .x. X ) = ( ( Q .x. X ) .+ ( R .x. X ) ) ) $=
      ( wcel co wceq cfv cslmd wa w3a cmulr cur c0g eqid slmdlema simpld simp3d
      3expa anabsan2 exp42 3imp2 ) IUAQZCGQZDGQZJHQZCDBRJERCJERDJERZARSZUOUPUQU
      RUTUOUPUQUBZUBURUTUOVAURURUBZUTUOVAVBUCZUSHQZDJJARERUSUSARSZUTVCVDVEUTUCC
      DFUDTZRJERCUSERSFUETZJERJSFUFTZJERIUFTZSUCABCDEVFVGFGVHHIJJVIKLNVIUGMOPVF
      UGVGUGVHUGUHUIUJUKULUMUN $.
  $}

  ${
    slmdvsass.v $e |- V = ( Base ` W ) $.
    slmdvsass.f $e |- F = ( Scalar ` W ) $.
    slmdvsass.s $e |- .x. = ( .s ` W ) $.
    slmdvsass.k $e |- K = ( Base ` F ) $.
    slmdvsass.t $e |- .X. = ( .r ` F ) $.
    $( Associative law for scalar product.  ( ~ ax-hvmulass analog.)
       (Contributed by NM, 10-Jan-2014.)  (Revised by Mario Carneiro,
       22-Sep-2015.)  (Revised by Thierry Arnoux, 1-Apr-2018.) $)
    slmdvsass $p |- ( ( W e. SLMod /\ ( Q e. K /\ R e. K /\ X e. V ) ) ->
                      ( ( Q .X. R ) .x. X ) = ( Q .x. ( R .x. X ) ) ) $=
      ( wcel co wceq wa cfv eqid cslmd w3a cur c0g cplusg slmdlema simprd 3expa
      simp1d anabsan2 exp42 3imp2 ) HUAOZAFOZBFOZIGOZABDPICPABICPZCPQZUMUNUOUPU
      RUMUNUORZRUPURUMUSUPUPRZURUMUSUTUBZUREUCSZICPIQZEUDSZICPHUDSZQZVAUQGOBIIH
      UESZPCPUQUQVGPQABEUESZPICPAICPUQVGPQUBURVCVFUBVGVHABCDVBEFVDGHIIVEJVGTLVE
      TKMVHTNVBTVDTUFUGUIUHUJUKUL $.
  $}

  ${
    slmd0cl.f $e |- F = ( Scalar ` W ) $.
    slmd0cl.k $e |- K = ( Base ` F ) $.
    slmd0cl.z $e |- .0. = ( 0g ` F ) $.
    $( The ring zero in a semimodule belongs to the ring base set.
       (Contributed by NM, 11-Jan-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.)  (Revised by Thierry Arnoux, 1-Apr-2018.) $)
    slmd0cl $p |- ( W e. SLMod -> .0. e. K ) $=
      ( cslmd wcel csrg slmdsrg srg0cl syl ) CHIAJIDBIACEKBADFGLM $.
  $}

  ${
    slmd1cl.f $e |- F = ( Scalar ` W ) $.
    slmd1cl.k $e |- K = ( Base ` F ) $.
    slmd1cl.u $e |- .1. = ( 1r ` F ) $.
    $( The ring unit in a semiring left module belongs to the ring base set.
       (Contributed by NM, 11-Jan-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.)  (Revised by Thierry Arnoux, 1-Apr-2018.) $)
    slmd1cl $p |- ( W e. SLMod -> .1. e. K ) $=
      ( cslmd wcel csrg slmdsrg srgidcl syl ) DHIBJIACIBDEKCBAFGLM $.
  $}

  ${
    slmdvs1.v $e |- V = ( Base ` W ) $.
    slmdvs1.f $e |- F = ( Scalar ` W ) $.
    slmdvs1.s $e |- .x. = ( .s ` W ) $.
    slmdvs1.u $e |- .1. = ( 1r ` F ) $.
    $( Scalar product with ring unit.  ( ~ ax-hvmulid analog.)  (Contributed by
       NM, 10-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.)  (Revised
       by Thierry Arnoux, 1-Apr-2018.) $)
    slmdvs1 $p |- ( ( W e. SLMod /\ X e. V ) -> ( .1. .x. X ) = X ) $=
      ( cslmd wcel wa cfv co wceq eqid w3a c0g cplusg simpl slmd1cl simpr cmulr
      cbs adantr slmdlema simprd simp2d syl122anc ) EKLZFDLZMUKBCUENZLZUNULULBF
      AOZFPZUKULUAUKUNULBCUMEHUMQZJUBUFZURUKULUCZUSUKUNUNMULULMRZBBCUDNZOFAOBUO
      AOPZUPCSNZFAOESNZPZUTUODLBFFETNZOAOUOUOVFOZPBBCTNZOFAOVGPRVBUPVERVFVHBBAV
      ABCUMVCDEFFVDGVFQIVDQHUQVHQVAQJVCQUGUHUIUJ $.
  $}

  ${
    slmd0vcl.v $e |- V = ( Base ` W ) $.
    slmd0vcl.z $e |- .0. = ( 0g ` W ) $.
    $( The zero vector is a vector.  ( ~ ax-hv0cl analog.)  (Contributed by NM,
       10-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.)  (Revised by
       Thierry Arnoux, 1-Apr-2018.) $)
    slmd0vcl $p |- ( W e. SLMod -> .0. e. V ) $=
      ( cslmd wcel cmnd slmdmnd mndidcl syl ) BFGBHGCAGBIABCDEJK $.
  $}

  ${
    slmd0vlid.v $e |- V = ( Base ` W ) $.
    slmd0vlid.a $e |- .+ = ( +g ` W ) $.
    slmd0vlid.z $e |- .0. = ( 0g ` W ) $.
    $( Left identity law for the zero vector.  ( ~ hvaddid2 analog.)
       (Contributed by NM, 10-Jan-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.)  (Revised by Thierry Arnoux, 1-Apr-2018.) $)
    slmd0vlid $p |- ( ( W e. SLMod /\ X e. V ) -> ( .0. .+ X ) = X ) $=
      ( cslmd wcel cmnd co wceq slmdmnd mndlid sylan ) CIJCKJDBJEDALDMCNBACDEFG
      HOP $.

    $( Right identity law for the zero vector.  ( ~ ax-hvaddid analog.)
       (Contributed by NM, 10-Jan-2014.)  (Revised by Mario Carneiro,
       19-Jun-2014.)  (Revised by Thierry Arnoux, 1-Apr-2018.) $)
    slmd0vrid $p |- ( ( W e. SLMod /\ X e. V ) -> ( X .+ .0. ) = X ) $=
      ( cslmd wcel cmnd co wceq slmdmnd mndrid sylan ) CIJCKJDBJDEALDMCNBACDEFG
      HOP $.
  $}

  ${
    slmd0vs.v $e |- V = ( Base ` W ) $.
    slmd0vs.f $e |- F = ( Scalar ` W ) $.
    slmd0vs.s $e |- .x. = ( .s ` W ) $.
    slmd0vs.o $e |- O = ( 0g ` F ) $.
    slmd0vs.z $e |- .0. = ( 0g ` W ) $.
    $( Zero times a vector is the zero vector.  Equation 1a of [Kreyszig]
       p. 51.  ( ~ ax-hvmul0 analog.)  (Contributed by NM, 12-Jan-2014.)
       (Revised by Mario Carneiro, 19-Jun-2014.)  (Revised by Thierry Arnoux,
       1-Apr-2018.) $)
    slmd0vs $p |- ( ( W e. SLMod /\ X e. V ) -> ( O .x. X ) = .0. ) $=
      ( wcel wa cfv co wceq cplusg w3a eqid cslmd cmulr cur simpl slmd0cl simpr
      cbs adantr slmdlema syl122anc simprd simp3d ) EUAMZFDMZNZCCBUBOZPFAPCCFAP
      ZAPQZBUCOZFAPFQZUQGQZUOUQDMCFFEROZPAPUQUQVBPZQCCBROZPFAPVCQSZURUTVASZUOUM
      CBUGOZMZVHUNUNVEVFNUMUNUDUMVHUNBVGECIVGTZKUEUHZVJUMUNUFZVKVBVDCCAUPUSBVGC
      DEFFGHVBTJLIVIVDTUPTUSTKUIUJUKUL $.
  $}

  ${
    slmdvs0.f $e |- F = ( Scalar ` W ) $.
    slmdvs0.s $e |- .x. = ( .s ` W ) $.
    slmdvs0.k $e |- K = ( Base ` F ) $.
    slmdvs0.z $e |- .0. = ( 0g ` W ) $.
    $( Anything times the zero vector is the zero vector.  Equation 1b of
       [Kreyszig] p. 51.  ( ~ hvmul0 analog.)  (Contributed by NM,
       12-Jan-2014.)  (Revised by Mario Carneiro, 19-Jun-2014.)  (Revised by
       Thierry Arnoux, 1-Apr-2018.) $)
    slmdvs0 $p |- ( ( W e. SLMod /\ X e. K ) -> ( X .x. .0. ) = .0. ) $=
      ( cslmd wcel wa c0g cfv cmulr co wceq eqid adantr csrg srgrz sylan oveq1d
      slmdsrg cbs simpl simpr srg0cl slmd0vcl slmdvsass syl13anc slmd0vs syldan
      syl oveq2d eqtrd 3eqtr3d ) DKLZECLZMZEBNOZBPOZQZFAQZVBFAQZEFAQZFVAVDVBFAU
      SBUALZUTVDVBRBDGUEZCBVCEVBIVCSZVBSZUBUCUDVAVEEVFAQZVGVAUSUTVBCLZFDUFOZLZV
      EVLRUSUTUGUSUTUHVAVHVMUSVHUTVITCBVBIVKUIUOUSVOUTVNDFVNSZJUJTZEVBAVCBCVNDF
      VPGHIVJUKULVAVFFEAUSUTVOVFFRVQABVBVNDFFVPGHVKJUMUNZUPUQVRUR $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Finitely supported group sums - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $( TA: TODO can be shortened using ~ gsumunsn .  AV: Although ~ gsumunsn is
       used now, the proof is not shorter (but a little bit longer).  Maybe
       other improvements can be made... $)
    $d a e y z .<_ $.  $d a e x y z A $.  $d x z B $.  $d a e x y z F $.
    $d a e x y z G $.  $d a e x y z M $.  $d a e y z ph $.
    gsumle.b $e |- B = ( Base ` M ) $.
    gsumle.l $e |- .<_ = ( le ` M ) $.
    gsumle.m $e |- ( ph -> M e. oMnd ) $.
    gsumle.n $e |- ( ph -> M e. CMnd ) $.
    gsumle.a $e |- ( ph -> A e. Fin ) $.
    gsumle.f $e |- ( ph -> F : A --> B ) $.
    gsumle.g $e |- ( ph -> G : A --> B ) $.
    gsumle.c $e |- ( ph -> F oR .<_ G ) $.
    $( A finite sum in an ordered monoid is monotonic.  This proof would be
       much easier in an ordered group, where an inverse element would be
       available.  (Contributed by Thierry Arnoux, 13-Mar-2018.) $)
    gsumle $p |- ( ph -> ( M gsum F ) .<_ ( M gsum G ) ) $=
      ( cgsu co wcel wceq oveq2d va ve vy vz vx cres cfn wbr wss ssid wa cv csn
      wi c0 cun sseq1 anbi2d reseq2 breq12d imbi12d cpo comnd ctos omndtos 3syl
      tospos c0g cfv res0 oveq2i eqid gsum0 eqtri cmnd omndmnd mndidcl syl5eqel
      posref syl2anc eqtr4i syl6breq adantr wn ssun1 sstr2 anim2i imim1i simplr
      ax-mp simpllr simpr cplusg ad3antrrr wf ad2antrr ssun2 vex snss mpbir a1i
      sseldd ffvelrnd ccmn syl5ss fssresd fvexd fdmfifsupp fsuppres gsumcl ssfi
      cvv cofr simpll wfn ffn inidm eqidd ofrval syl3anc omndadd2d elun1 adantl
      syl cmpt ex imp fveq2 gsumunsn wb feqresmpt oveq1d eqeq12d mpbird adantlr
      resabs1 mp1i eqtrd gsumsnd fnresdm oveq12d oveq12i syl6eq cmnmnd syl21anc
      gsumsn 3brtr4d exp31 a2d syl5 findcard2s mpanr2 mpancom 3brtr3d ) AGDBUFZ
      PQZGEBUFZPQZGDPQGEPQFBUGRZAUUPUURFUHZLUUSABBUIZUUTBUJUUSAUVAUKZUUTAUAULZB
      UIZUKZGDUVCUFZPQZGEUVCUFZPQZFUHZUNAUOBUIZUKZGDUOUFZPQZGEUOUFZPQZFUHZUNAUB
      ULZBUIZUKZGDUVRUFZPQZGEUVRUFZPQZFUHZUNZAUVRUCULZUMZUPZBUIZUKZGDUWIUFZPQZG
      EUWIUFZPQZFUHZUNZUVBUUTUNUAUBUCBUVCUOSZUVEUVLUVJUVQUWRUVDUVKAUVCUOBUQURUW
      RUVGUVNUVIUVPFUWRUVFUVMGPUVCUODUSTUWRUVHUVOGPUVCUOEUSTUTVAUVCUVRSZUVEUVTU
      VJUWEUWSUVDUVSAUVCUVRBUQURUWSUVGUWBUVIUWDFUWSUVFUWAGPUVCUVRDUSTUWSUVHUWCG
      PUVCUVREUSTUTVAUVCUWISZUVEUWKUVJUWPUWTUVDUWJAUVCUWIBUQURUWTUVGUWMUVIUWOFU
      WTUVFUWLGPUVCUWIDUSTUWTUVHUWNGPUVCUWIEUSTUTVAUVCBSZUVEUVBUVJUUTUXAUVDUVAA
      UVCBBUQURUXAUVGUUPUVIUURFUXAUVFUUOGPUVCBDUSTUXAUVHUUQGPUVCBEUSTUTVAAUVQUV
      KAUVNUVNUVPFAGVBRZUVNCRUVNUVNFUHAGVCRZGVDRUXBJGVEGVGVFAUVNGVHVIZCUVNGUOPQ
      UXDUVMUOGPDVJZVKGUXDUXDVLZVMVNAUXCGVORZUXDCRJGVPZCGUXDHUXFVQVFVRCGFUVNHIV
      SVTUVMUVOGPUVMUOUVOUXEEVJWAVKWBWCUWFUWKUWEUNUVRUGRZUWGUVRRWDZUKZUWQUWKUVT
      UWEUWJUVSAUVRUWIUIZUWJUVSUNUVRUWHWEZUVRUWIBWFWJZWGWHUXKUWKUWEUWPUXKUWKUWE
      UWPUXKUWKUKZUWEUKUWKUXJUWEUWPUXKUWKUWEWIUXIUXJUWKUWEWKUXOUWEWLUWKUXJUKZUW
      EUKZUWBUWGDVIZGWMVIZQZUWDUWGEVIZUXSQZUWMUWOFUXQCUXSFGUYAUWBUXRUWDHIUXSVLZ
      AUXCUWJUXJUWEJWNUXPUYACRZUWEUXPBCUWGEABCEWOZUWJUXJNWPZUXPUWIBUWGAUWJUXJWI
      ZUWGUWIRZUXPUYHUWHUWIUIZUWHUVRWQZUWGUWIUCWRZWSWTZXAXBZXCZWCUXPUWBCRUWEUXP
      UVRCUWAGXLUXDHUXFAGXDRZUWJUXJKWPZUVRXLRUXPUBWRXAZUXPBCUVRDABCDWOZUWJUXJMW
      PZUXPUVRUWIBUXMUYGXEZXFUXPDXLUVRUXDUXPBCDXLUXDUYSAUUSUWJUXJLWPZUXPGVHXGZX
      HVUBXIXJWCUXPUXRCRUWEUXPBCUWGDUYSUYMXCWCZUXPUWDCRUWEUXPUVRCUWCGXLUXDHUXFU
      YPUYQUXPBCUVREUYFUYTXFZUXPUVRCUWCXLUXDVUDUXPUUSUVSUXIVUAUYTBUVRXKVTZVUBXH
      XJWCUXPUWEWLUXPUXRUYAFUHZUWEUXPADEFXMUHZUWGBRZVUFAUWJUXJXNAVUGUWJUXJOWPUY
      MABBUXRUYAFBDEUGUGUWGAUYRDBXOZMBCDXPYDZAUYEEBXOZNBCEXPYDZLLBXQAVUHUKZUXRX
      RVUMUYAXRXSXTWCUXPUYOUWEUYPWCZYAUXQUWMUXTSZGUDUWIUDULZDVIZYEZPQZGUDUVRVUQ
      YEZPQZUXRUXSQZSZUXQUVRCUXSUDGUWGXLVUQUXRHUYCVUNUXPUXIUWEVUEWCUXQVUPUVRRZV
      UQCRZUWKVVDVVEUNUXJUWEUWKVVDVVEUWKVVDUKZBCVUPDAUYRUWJVVDMWPVVFUWIBVUPAUWJ
      VVDWIVVDVUPUWIRUWKVUPUVRUWHYBYCXBZXCYFWPYGUWGXLRZUXQUYKXAUWKUXJUWEWIVUCVU
      PUWGDYHYIUXPVUOVVCYJUWEUXPUWMVUSUXTVVBUXPUWLVURGPUXPUDBCUWIDUYSUYGYKTUXPU
      WBVVAUXRUXSUXPUWAVUTGPUXPUDBCUVRDUYSUYTYKTYLYMWCYNUXPUWOUYBSUWEUXPUWOUWDG
      EUWHUFZPQZUXSQZUYBUXPUWOGUWNUVRUFZPQZGUWNUWHUFZPQZUXSQZVVKUXPUWOVVPSZGUDU
      WIVUPEVIZYEZPQZGUDUVRVVRYEZPQZUYAUXSQZSZUXPUVRCUXSUDGUWGXLVVRUYAHUYCUYPVU
      EUXPVVDUKBCVUPEUWKUYEUXJVVDAUYEUWJNWCZWPUWKVVDVUPBRUXJVVGYOXCVVHUXPUYKXAZ
      UWKUXJWLUYNVUPUWGEYHZYIUWKVVQVWDYJUXJUWKUWOVVTVVPVWCUWKUWNVVSGPUWKUDBCUWI
      EVWEAUWJWLZYKTUWKVVMVWBVVOUYAUXSUWKVVLVWAGPUWKVVLUWCVWAUXLVVLUWCSZUWKUXME
      UVRUWIYPZYQUWKUDBCUVREVWEUWJUVSAUXNYCYKYRTUWKVVOGUDUWHVVRYEZPQUYAUWKVVNVW
      KGPUWKVVNVVIVWKUYIVVNVVISZUWKUYJEUWHUWIYPZYQUWKUDBCUWHEVWEUWKUWHUWIBUYJVW
      HXEYKYRTUWKVVRCUYAUDGUWGXLHAUXGUWJAUXCUXGJUXHYDWCVVHUWKUYKXAUWKBCUWGEVWEU
      WKUWIBUWGVWHUYHUWKUYLXAXBXCVUPUWGSVVRUYASUWKVWGYCYSYRUUAYMWCYNVVMUWDVVOVV
      JUXSVVLUWCGPUXLVWIUXMVWJWJVKVVNVVIGPUYIVWLUYJVWMWJVKUUBUUCUXPVVJUYAUWDUXS
      UXPVVJGUEUWHUEULZEVIZYEZPQZUYAUXPVVIVWPGPUXPUEBCUWHEUYFUXPUWHUWIBUYJUYGXE
      YKTUXPUXGVVHUYDVWQUYASUXPUYOUXGUYPGUUDYDVWFUYNVWOCUYAUEGUWGXLHVWNUWGEYHUU
      FXTYRTYRWCUUGUUEUUHUUIUUJUUKYGUULUUMAUUODGPAVUIUUODSVUJBDYTYDTAUUQEGPAVUK
      UUQESVULBEYTYDTUUN $.
  $}

  ${
    $d .0. x y z $.  $d A p x y z $.  $d B p x y z $.  $d C p y z $.
    $d E p x y z $.  $d F p x y z $.  $d V y z $.  $d W x y z $.
    $d ph p x z $.
    gsummpt2co.b $e |- B = ( Base ` W ) $.
    gsummpt2co.z $e |- .0. = ( 0g ` W ) $.
    gsummpt2co.w $e |- ( ph -> W e. CMnd ) $.
    gsummpt2co.a $e |- ( ph -> A e. Fin ) $.
    gsummpt2co.e $e |- ( ph -> E e. V ) $.
    gsummpt2co.1 $e |- ( ( ph /\ x e. A ) -> C e. B ) $.
    gsummpt2co.2 $e |- ( ( ph /\ x e. A ) -> D e. E ) $.
    gsummpt2co.3 $e |- F = ( x e. A |-> D ) $.
    $( Split a finite sum into a sum of a collection of sums over disjoint
       subsets.  (Contributed by Thierry Arnoux, 27-Mar-2018.) $)
    gsummpt2co $p |- ( ph -> ( W gsum ( x e. A |-> C ) ) =
      ( W gsum ( y e. E |-> ( W gsum ( x e. ( `' F " { y } ) |-> C ) ) ) ) ) $=
      ( vz vp cmpt cgsu co ccnv csn cima c2nd cfv csb cmpt2 nfcsb1v csbeq1a wss
      cv ssid a1i wcel cop wceq wbr wa wex vex op2ndd adantr cdm dmmptss breldm
      elcnv sseldi eqeltrd exlimivv sylbi wfun crn wreu funmpt2 funcnvcnv ax-mp
      adantl dfdm4 wral ralrimiva dmmptg syl syl5eq syl5eqr eleq2d biimpar wrel
      relcnv fcnvgreu mpanl1 syl2anc gsummptf1o cxp ciun rnmptss dfcnv2 mpteq1d
      dmeqi nfcv csbeq1 csbid syl6eq mpt2mptxf oveq2d mptfi syl5eqel cnvfi 3syl
      cvv cfn imaexg simpll imassrn sseqtr4i sstri elimasn biimpi sylibr anasss
      wn df-br pm2.24d imp gsum2d2 3eqtrd sneq imaeq2d cbvmpt oveq2i syl6eqr )
      AKBDFUCUDUEZKUAHKBIUFZUAUPZUGZUHZFUCZUDUEZUCZUDUEZKCHKBYQCUPZUGZUHZFUCZUD
      UEZUCZUDUEAYPKUBYQBUBUPZUIUJZFUKZUCZUDUEKUABHYTFULZUDUEUUDABUBDEFYQUULEKU
      UMLBUULFUMZMNBUULFUNOPEEUOAEUQURRUUKYQUSZUULDUSZAUUQUUKYRBUPZUTZVAZUUSYRI
      VBZVCZBVDUAVDUURUABUUKIVKUVCUURUABUVCUULUUSDUVAUULUUSVAZUVBYRUUSUUKUAVEZB
      VEZVFZVGUVBUUSDUSZUVAUVBIVHZDUUSBDGITVIZUUSYRIUVFUVEVJVLWBVMVNVOWBAUVHVCZ
      YQUFVPZUUSYQVQZUSZUUSUULVAUBYQVRZUVLUVKIVPUVLBDGITVSIVTWAURAUVNUVHAUVMDUU
      SAUVMUVIDIWCZAUVIBDGUCZVHZDIUVQTXCAGHUSZBDWDZUVRDVAAUVSBDSWEZBDGHWFWGWHWI
      WJWKYQWLUVLUVNUVOIWMYQUUSUBWNWOWPWQAUUNUUOKUDAUUNUBUAHYSYTWRWSZUUMUCUUOAU
      BYQUWBUUMAIVQHUOZYQUWBVAAUVTUWCUWABDGHITWTWGUAHIXAWGXBUABUBHYTUUMFUAUUMXD
      UUPUVAUUMBUUSFUKZFUVAUVDUUMUWDVAUVGBUULUUSFXEWGBFXFXGXHXGXIAHEYTYQUABKJXN
      FLMNOQAYTXNUSZYRHUSZAYQXOUSZUWEADXOUSZIXOUSUWGPUWHIUVQXOTBDGXJXKIXLXMZYQY
      SXOXPWGVGAUWFUUSYTUSZFEUSZAUWFVCZUWJVCZAUVHUWKAUWFUWJXQUWMYTDUUSYTUVIDYTU
      VMUVIYQYSXRUVPXSUVJXTUWMUUTYQUSZUWJUWJUWNUWLUWJUWNYQYRUUSUVEUVFYAZYBWBZUW
      OYCVLRWPYDUWIAUWFUWJVCZYRUUSYQVBZYEZFLVAZAUWQVCZUWSUWTUXAUWRUWTAUWFUWJUWR
      UWMUWNUWRUWPYRUUSYQYFYCYDYGYHYDYIYJUUJUUCKUDCUAHUUIUUBUAUUIXDCUUBXDUUEYRV
      AZUUHUUAKUDUXBBUUGYTFUXBUUFYSYQUUEYRYKYLXBXIYMYNYO $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C y $.  $d D x $.  $d W x y $.
    $d ph x z $.
    gsummpt2d.c $e |- F/_ z C $.
    gsummpt2d.0 $e |- F/ y ph $.
    gsummpt2d.b $e |- B = ( Base ` W ) $.
    gsummpt2d.1 $e |- ( x = <. y , z >. -> C = D ) $.
    gsummpt2d.r $e |- ( ph -> Rel A ) $.
    gsummpt2d.2 $e |- ( ph -> A e. Fin ) $.
    gsummpt2d.m $e |- ( ph -> W e. CMnd ) $.
    gsummpt2d.3 $e |- ( ( ph /\ x e. A ) -> C e. B ) $.
    $( Express a finite sum over a two-dimensional range as a double sum.  See
       also ~ gsum2d .  (Contributed by Thierry Arnoux, 27-Apr-2020.) $)
    gsummpt2d $p |- ( ph -> ( W gsum ( x e. A |-> C ) ) =
     ( W gsum ( y e. dom A |-> ( W gsum ( z e. ( A " { y } ) |-> D ) ) ) ) ) $=
      ( cvv wcel wceq cmpt cgsu co cdm c1st cres ccnv csn cima cfv c0g eqid cfn
      cv dmexg syl wrel 1stdm sylan wfo wfn fo1st fofn dffn5 biimpi reseq1i wss
      mp2b ssv resmpt ax-mp eqtri gsummpt2co wa c2nd ccom cxp adantr imaexg cop
      ccmn adantl simp-4l simplr syl2anc eqeltrrd elimasn simpr eqeq1d rspcedvd
      vex eqidd r19.29a fmptd imafi2 fvex a1i fsuppmptdm 2ndconst wb 1stpreimas
      wf1o reseq2d f1oeq1 gsumf1o csb eleqtrd xp2nd ralrimiva fo2nd fmptcos nfv
      mpbird wnfc xp1st elsn sylib eqcomd eqopi syl12anc mpteq2dva eqtrd oveq2d
      csbiedf eqtr2d mpteq2da ) AIBEGUAUBUCICEUDZIBUEEUFZUGCUNZUHZUIZGUAZUBUCZU
      AZUBUCICYGIDEYJUIZHUAZUBUCZUAZUBUCABCEFGBUNZUEUJZYGYHRIIUKUJZLUUAULZPOAEU
      MSZYGRSOEUMUOUPQAEUQZYSESZYTYGSNYSEURUSYHBRYTUAZEUFZBEYTUAZUEUUFERRUEUTUE
      RVAZUEUUFTZVBRRUEVCUUIUUJBRUEVDVEVHVFERVGUUGUUHTEVIBREYTVJVKVLVMAYNYRIUBA
      CYGYMYQKAYIYGSZVNZYQIYPVOYKUFZVPZUBUCYMUULYOFYJYOVQZYPIUUMRUUALUUBAIWASUU
      KPVRUULUUCYORSAUUCUUKOVREYJUMVSUPUULDYOHFYPUULDUNZYOSZVNZYSYIUUPVTZTZHFSB
      EUURUUEVNZUUTVNZGHFUUTGHTZUVAMWBUVBAUUEGFSAUUKUUQUUEUUTWCUURUUEUUTWDQWEWF
      UURUUTUUSUUSTBUUSEUUQUUSESZUULUUQUVDEYIUUPCWKDWKWGVEWBUURUUTVNYSUUSUUSUUR
      UUTWHWIUURUUSWLWJWMZYPULZWNUULDYOYPFRHUUAUVFAYOUMSZUUKAUUCUVGOEYJWOUPVRUV
      EUUARSUULIUKWPWQWRUULUUOYOUUMXBZUUOYOVOUUOUFZXBZUUKUVJAYIYOYGWSWBUULUUMUV
      ITUVHUVJWTUULYKUUOVOAUUDUUKYKUUOTZNEYGYIXAUSZXCUUOYOUUMUVIXDUPXMXEUULUUNY
      LIUBUULUUNBYKDYSVOUJZHXFZUAYLUULBDYKYOUVMHUUMYPUULUVMYOSZBYKUULYSYKSZVNZY
      SUUOSZUVOUVQYSYKUUOUULUVPWHUULUVKUVPUVLVRXGZYSYJYOXHUPZXIUUMBYKUVMUAZTUUL
      UUMBRUVMUAZYKUFZUWAVOUWBYKRRVOUTVORVAZVOUWBTZXJRRVOVCUWDUWEBRVOVDVEVHVFYK
      RVGUWCUWATYKVIBRYKUVMVJVKVLWQUULYPWLXKUULBYKUVNGUVQDUVMHGYOUVQDXLDGXNUVQJ
      WQUVTUVQUUPUVMTZVNZGHUWGUUTUVCUWGUVRYTYITZUVMUUPTUUTUVQUVRUWFUVSVRZUWGYTY
      JSZUWHUWGUVRUWJUWIYSYJYOXOUPYTYIYSUEWPXPXQUWGUUPUVMUVQUWFWHXRYSYIUUPYJYOX
      SXTMUPXRYDYAYBYCYEYFYCYB $.
  $}

  ${
    $d a e k z .x. $.  $d a e k z A $.  $d a e z P $.  $d a e z Q $.
    $d a e k z W $.  $d a e k z ph $.  $d k B $.
    gsumvsca.b $e |- B = ( Base ` W ) $.
    gsumvsca.g $e |- G = ( Scalar ` W ) $.
    gsumvsca.z $e |- .0. = ( 0g ` W ) $.
    gsumvsca.t $e |- .x. = ( .s ` W ) $.
    gsumvsca.p $e |- .+ = ( +g ` W ) $.
    gsumvsca.k $e |- ( ph -> K C_ ( Base ` G ) ) $.
    gsumvsca.a $e |- ( ph -> A e. Fin ) $.
    gsumvsca.w $e |- ( ph -> W e. SLMod ) $.
    ${
      $d k P $.
      gsumvsca1.n $e |- ( ph -> P e. K ) $.
      gsumvsca1.c $e |- ( ( ph /\ k e. A ) -> Q e. B ) $.
      $( Scalar product of a finite group sum for a left module over a
         semiring.  (Contributed by Thierry Arnoux, 16-Mar-2018.) $)
      gsumvsca1 $p |- ( ph -> ( W gsum ( k e. A |-> ( P .x. Q ) ) ) =
                             ( P .x. ( W gsum ( k e. A |-> Q ) ) ) ) $=
        ( va ve vz cfn wcel co cmpt cgsu wceq wss ssid wa cv wi c0 sseq1 anbi2d
        csn cun mpteq1 oveq2d eqeq12d imbi12d cslmd cbs cfv sseldd eqid slmdvs0
        syl2anc eqcomd mpt0 oveq2i gsum0 eqtri 3eqtr4g adantr ssun1 sstr2 ax-mp
        wn anim2i imim1i csb ad2antrl cvv slmdcmn syl vex simplrl simprr unssad
        ccmn a1i sselda fmptd simpll fvex eqeltri fsuppmptdm gsumcl wral unssbd
        c0g sylibr ralrimiva rspcsbela slmdvsdi syl13anc nfcsb1v simplr csbeq1a
        snss gsumunsnf nfcv nfov slmdvscl simpr oveq1d eqtrd 3eqtr4rd exp31 a2d
        syl3anc syl5 findcard2s imp mpanr2 mpancom ) BUFUGZAKHBDFGUHZUIZUJUHZDK
        HBFUIZUJUHZGUHZUKZSYLABBULZYSBUMYLAYTUNZYSAUCUOZBULZUNZKHUUBYMUIZUJUHZD
        KHUUBFUIZUJUHZGUHZUKZUPAUQBULZUNZKHUQYMUIZUJUHZDKHUQFUIZUJUHZGUHZUKZUPA
        UDUOZBULZUNZKHUUSYMUIZUJUHZDKHUUSFUIZUJUHZGUHZUKZUPZAUUSUEUOZUTZVAZBULZ
        UNZKHUVKYMUIZUJUHZDKHUVKFUIZUJUHZGUHZUKZUPZUUAYSUPUCUDUEBUUBUQUKZUUDUUL
        UUJUURUWAUUCUUKAUUBUQBURUSUWAUUFUUNUUIUUQUWAUUEUUMKUJHUUBUQYMVBVCUWAUUH
        UUPDGUWAUUGUUOKUJHUUBUQFVBVCVCVDVEUUBUUSUKZUUDUVAUUJUVGUWBUUCUUTAUUBUUS
        BURUSUWBUUFUVCUUIUVFUWBUUEUVBKUJHUUBUUSYMVBVCUWBUUHUVEDGUWBUUGUVDKUJHUU
        BUUSFVBVCVCVDVEUUBUVKUKZUUDUVMUUJUVSUWCUUCUVLAUUBUVKBURUSUWCUUFUVOUUIUV
        RUWCUUEUVNKUJHUUBUVKYMVBVCUWCUUHUVQDGUWCUUGUVPKUJHUUBUVKFVBVCVCVDVEUUBB
        UKZUUDUUAUUJYSUWDUUCYTAUUBBBURUSUWDUUFYOUUIYRUWDUUEYNKUJHUUBBYMVBVCUWDU
        UHYQDGUWDUUGYPKUJHUUBBFVBVCVCVDVEAUURUUKALDLGUHZUUNUUQAUWELAKVFUGZDIVGV
        HZUGZUWELUKTAJUWGDRUAVIZGIUWGKDLNPUWGVJZOVKVLVMUUNKUQUJUHZLUUMUQKUJHYMV
        NVOKLOVPZVQUUPLDGUUPUWKLUUOUQKUJHFVNVOUWLVQVOVRVSUVHUVMUVGUPUUSUFUGZUVI
        UUSUGWCZUNZUVTUVMUVAUVGUVLUUTAUUSUVKULUVLUUTUPUUSUVJVTUUSUVKBWAWBWDWEUW
        OUVMUVGUVSUWOUVMUVGUVSUWOUVMUNZUVGUNZDUVEHUVIFWFZEUHZGUHZUVFDUWRGUHZEUH
        ZUVRUVOUWPUWTUXBUKZUVGUWPUWFUWHUVECUGUWRCUGZUXCAUWFUWOUVLTWGZAUWHUWOUVL
        UWIWGZUWPUUSCUVDKWHLMOUWPUWFKWOUGUXEKWIWJZUUSWHUGUWPUDWKWPUWPHUUSFCUVDU
        WPHUOZUUSUGZUNZAUXHBUGFCUGZUWOAUVLUXIWLZUWPUUSBUXHUWPUUSUVJBUWOAUVLWMZW
        NWQUBVLZUVDVJZWRUWPHUUSUVDCWHFLUXOUWMUWNUVMWSZUXNLWHUGUWPLKXFVHWHOKXFWT
        XAWPXBXCUWPUVIBUGZUXKHBXDZUXDUWPUVJBULUXQUWPUUSUVJBUXMXEUVIBUEWKZXOXGAU
        XRUWOUVLAUXKHBUBXHWGHUVIBFCXIVLZEDGIUWGCKUVEUWRMQNPUWJXJXKVSUWPUVRUWTUK
        UVGUWPUVQUWSDGUWPUUSCEHKUVIWHFUWRHUVIFXLZMQUXGUXPUXNUVIWHUGUWPUXSWPZUWM
        UWNUVMXMZUXTHUVIFXNZXPVCVSUWQUVOUVCUXAEUHZUXBUWPUVOUYEUKUVGUWPUUSCEHKUV
        IWHYMUXAHDUWRGHDXQHGXQUYAXRMQUXGUXPUXJUWFUWHUXKYMCUGUXJAUWFUXLTWJUXJAUW
        HUXLUWIWJUXNDGIUWGCKFMNPUWJXSYFUYBUYCUWPUWFUWHUXDUXACUGUXEUXFUXTDGIUWGC
        KUWRMNPUWJXSYFUXHUVIUKFUWRDGUYDVCXPVSUWQUVCUVFUXAEUWPUVGXTYAYBYCYDYEYGY
        HYIYJYK $.
    $}

    ${
      $d a e k z G $.  $d k K $.  $d k Q $.
      gsumvsca2.n $e |- ( ph -> Q e. B ) $.
      gsumvsca2.c $e |- ( ( ph /\ k e. A ) -> P e. K ) $.
      $( Scalar product of a finite group sum for a left module over a
         semiring.  (Contributed by Thierry Arnoux, 16-Mar-2018.)  (Proof
         shortened by AV, 12-Dec-2019.) $)
      gsumvsca2 $p |- ( ph -> ( W gsum ( k e. A |-> ( P .x. Q ) ) ) =
                             ( ( G gsum ( k e. A |-> P ) ) .x. Q ) ) $=
        ( va ve vz cfn wcel co cmpt cgsu wceq wss ssid wa cv wi c0 sseq1 anbi2d
        csn cun mpteq1 oveq2d oveq1d eqeq12d imbi12d c0g cfv cslmd eqid slmd0vs
        syl2anc eqcomd oveq2i gsum0 eqtri oveq1i 3eqtr4g adantr wel ssun1 sstr2
        mpt0 wn ax-mp anim2i imim1i csb cplusg cbs ad2antrl csrg slmdsrg srgcmn
        cvv ccmn vex a1i simplrl simprr unssad sselda sseldd fmptd simpll fvexd
        3syl fsuppmptdm gsumcl wral unssbd sylibr ralrimiva rspcsbela slmdvsdir
        snss syl13anc nfcsb1v simplr csbeq1a gsumunsnf nfcv slmdcmn syl syl3anc
        nfov slmdvscl simpr eqtrd 3eqtr4rd exp31 a2d syl5 findcard2s imp mpanr2
        mpancom ) BUFUGZAKHBDFGUHZUIZUJUHZIHBDUIZUJUHZFGUHZUKZSYRABBULZUUEBUMYR
        AUUFUNZUUEAUCUOZBULZUNZKHUUHYSUIZUJUHZIHUUHDUIZUJUHZFGUHZUKZUPAUQBULZUN
        ZKHUQYSUIZUJUHZIHUQDUIZUJUHZFGUHZUKZUPAUDUOZBULZUNZKHUVEYSUIZUJUHZIHUVE
        DUIZUJUHZFGUHZUKZUPZAUVEUEUOZUTZVAZBULZUNZKHUVQYSUIZUJUHZIHUVQDUIZUJUHZ
        FGUHZUKZUPZUUGUUEUPUCUDUEBUUHUQUKZUUJUURUUPUVDUWGUUIUUQAUUHUQBURUSUWGUU
        LUUTUUOUVCUWGUUKUUSKUJHUUHUQYSVBVCUWGUUNUVBFGUWGUUMUVAIUJHUUHUQDVBVCVDV
        EVFUUHUVEUKZUUJUVGUUPUVMUWHUUIUVFAUUHUVEBURUSUWHUULUVIUUOUVLUWHUUKUVHKU
        JHUUHUVEYSVBVCUWHUUNUVKFGUWHUUMUVJIUJHUUHUVEDVBVCVDVEVFUUHUVQUKZUUJUVSU
        UPUWEUWIUUIUVRAUUHUVQBURUSUWIUULUWAUUOUWDUWIUUKUVTKUJHUUHUVQYSVBVCUWIUU
        NUWCFGUWIUUMUWBIUJHUUHUVQDVBVCVDVEVFUUHBUKZUUJUUGUUPUUEUWJUUIUUFAUUHBBU
        RUSUWJUULUUAUUOUUDUWJUUKYTKUJHUUHBYSVBVCUWJUUNUUCFGUWJUUMUUBIUJHUUHBDVB
        VCVDVEVFAUVDUUQALIVGVHZFGUHZUUTUVCAUWLLAKVIUGZFCUGZUWLLUKTUAGIUWKCKFLMN
        PUWKVJZOVKVLVMUUTKUQUJUHLUUSUQKUJHYSWCVNKLOVOVPUVBUWKFGUVBIUQUJUHUWKUVA
        UQIUJHDWCVNIUWKUWOVOVPVQVRVSUVNUVSUVMUPUVEUFUGZUEUDVTWDZUNZUWFUVSUVGUVM
        UVRUVFAUVEUVQULUVRUVFUPUVEUVPWAUVEUVQBWBWEWFWGUWRUVSUVMUWEUWRUVSUVMUWEU
        WRUVSUNZUVMUNZUVKHUVODWHZIWIVHZUHZFGUHZUVLUXAFGUHZEUHZUWDUWAUWSUXDUXFUK
        ZUVMUWSUWMUVKIWJVHZUGUXAUXHUGZUWNUXGAUWMUWRUVRTWKZUWSUVEUXHUVJIWOUWKUXH
        VJZUWOUWSUWMIWLUGIWPUGUXJIKNWMIWNXGZUVEWOUGUWSUDWQWRUWSHUVEDUXHUVJUWSHU
        DVTZUNZAHUOZBUGZDUXHUGZUWRAUVRUXMWSZUWSUVEBUXOUWSUVEUVPBUWRAUVRWTZXAXBZ
        AUXPUNJUXHDAJUXHULUXPRVSUBXCZVLZUVJVJZXDUWSHUVEUVJJWODUWKUYCUWPUWQUVSXE
        ZUXNAUXPDJUGUXRUXTUBVLUWSIVGXFXHXIUWSUVOBUGZUXQHBXJZUXIUWSUVPBULUYEUWSU
        VEUVPBUXSXKUVOBUEWQZXPXLAUYFUWRUVRAUXQHBUYAXMWKHUVOBDUXHXNVLZAUWNUWRUVR
        UAWKZEUXBUVKUXAGIUXHCKFMQNPUXKUXBVJZXOXQVSUWSUWDUXDUKUVMUWSUWCUXCFGUWSU
        VEUXHUXBHIUVOWODUXAHUVODXRZUXKUYJUXLUYDUYBUVOWOUGUWSUYGWRZUWPUWQUVSXSZU
        YHHUVODXTZYAVDVSUWTUWAUVIUXEEUHZUXFUWSUWAUYOUKUVMUWSUVECEHKUVOWOYSUXEHU
        XAFGUYKHGYBHFYBYFMQUWSUWMKWPUGUXJKYCYDUYDUXNUWMUXQUWNYSCUGUXNAUWMUXRTYD
        UYBUXNAUWNUXRUAYDDGIUXHCKFMNPUXKYGYEUYLUYMUWSUWMUXIUWNUXECUGUXJUYHUYIUX
        AGIUXHCKFMNPUXKYGYEUXOUVOUKDUXAFGUYNVDYAVSUWTUVIUVLUXEEUWSUVMYHVDYIYJYK
        YLYMYNYOYPYQ $.
    $}
  $}

  ${
    $d A x $.  $d B x $.  $d D x $.  $d G x $.  $d ph x $.
    gsummptres.0 $e |- B = ( Base ` G ) $.
    gsummptres.1 $e |- .0. = ( 0g ` G ) $.
    gsummptres.2 $e |- ( ph -> G e. CMnd ) $.
    gsummptres.3 $e |- ( ph -> A e. Fin ) $.
    gsummptres.4 $e |- ( ( ph /\ x e. A ) -> C e. B ) $.
    gsummptres.5 $e |- ( ( ph /\ x e. ( A \ D ) ) -> C = .0. ) $.
    $( Extend a finite group sum by padding outside with zeroes.  Proof
       generated using OpenAI's proof assistant.  (Contributed by Thierry
       Arnoux, 11-Jul-2020.) $)
    gsummptres $p |- ( ph ->
      ( G gsum ( x e. A |-> C ) ) = ( G gsum ( x e. ( A i^i D ) |-> C ) ) ) $=
      ( cmpt cgsu co cfn wcel wceq cin cdif cplusg cfv eqid cvv c0g eqeltri a1i
      fvex fsuppmptdm c0 inindif cun inundif eqcomi gsumsplit2 mpteq2dva oveq2d
      cmnd ccmn cmnmnd syl diffi gsumz syl2anc eqtrd infi cv inss1 sseli sylan2
      ralrimiva gsummptcl mndrid ) AGBCEOZPQGBCFUAZEOPQZGBCFUBZEOZPQZGUCUDZQZVR
      ACDVQVSWBBGREHIJWBUEZKLMABCVPDUFEHVPUELMHUFSAHGUGUDUFJGUGUJUHUIUKVQVSUAUL
      TACFUMUICVQVSUNZTAWECCFUOUPUIUQAWCVRHWBQZVRAWAHVRWBAWAGBVSHOZPQZHAVTWGGPA
      BVSEHNURUSAGUTSZVSRSZWHHTAGVASWIKGVBVCZACRSZWJLCFVDVCVSBGRHJVEVFVGUSAWIVR
      DSWFVRTWKADBGVQEIKAWLVQRSLCFVHVCAEDSZBVQBVIZVQSAWNCSWMVQCWNCFVJVKMVLVMVND
      WBGVRHIWDJVOVFVGVG $.
  $}

  ${
    $d r s u v w y z A $.  $d r s u v w y z F $.  $d r s u v w y z ph $.
    $d r s u v w y z G $.  $d r u v w y z S $.
    xrge0tsmsd.g $e |- G = ( RR*s |`s ( 0 [,] +oo ) ) $.
    xrge0tsmsd.a $e |- ( ph -> A e. V ) $.
    xrge0tsmsd.f $e |- ( ph -> F : A --> ( 0 [,] +oo ) ) $.
    xrge0tsmsd.s $e |- ( ph -> S = sup (
      ran ( s e. ( ~P A i^i Fin ) |-> ( G gsum ( F |` s ) ) ) , RR* , < ) ) $.
    $( Any finite or infinite sum in the nonnegative extended reals is uniquely
       convergent to the supremum of all finite sums.  (Contributed by Mario
       Carneiro, 13-Sep-2015.)  (Revised by Thierry Arnoux, 30-Jan-2017.) $)
    xrge0tsmsd $p |- ( ph -> ( G tsums F ) = { S } ) $=
      ( co wcel cc0 cxr wbr clt wa cvv syl vu vz vy vx vv vr ctsu csn wceq cpnf
      vw cicc cv wss cres cgsu wi cpw cfn cin wral wrex cle cordt cfv crest crn
      cmpt csup wf iccssxr c0g cxrs ax-mp eqid ccmn cress eqeltri simpr simplbi
      a1i elfpw elinel2 fvexd fdmfifsupp gsumcl sseldi c0 cc reseq2 syl6eq cmnf
      oveq2d wne ge0nemnf elxrge0 mp2an elrnmpt1s supxrub sylancl breqtrrd ctop
      jca wb letop ovex cr simplrl simplrr elind syl2anc simprrr adantr simprrl
      cioo fssresd ad2antrr simprll simprlr xrge0gsumle xrltletrd w3a mpbir3and
      sstrd sseldd expr ralrimiva breqtrd mpbid sylib reximddv eleq2 syl5ibrcom
      ad3antrrr syl5bi mpd simprr ad2antrl ctps cha xrsbas fssres syl2an adantl
      cbs ressbas2 xrge0cmn frn supxrcl eqeltrd 0ss 0fin mpbir2an 0cn res0 cdif
      fmptd csubmnd xrge0subm difexg simpl eldifsn 3imtr4i ssriv ressabs eqtr4i
      xrex xrs10 subm0 sylanbrc elrest elinel1 ctg reex elrestr mp3an12 xrtgioo
      gsum0 syl6eleqr tg2 cxp wfn ioof ffn ovelrn mp2b syl6ss simp-4l wfun ffun
      inss1 c0ex resfifsupp ssfi eliooord simprd elioo1 anassrs simpld supxrlub
      xrlelttrd rgenw cbvmptv breq2 rexrnmpt anbi12d imbi1d rexlimdvva rexlimdv
      sseq1 cioc eqeltrrd pnfnei simprl simp-5l pnfge pnfxr elioc1 ltpnf simplr
      rexr rexlimddv xrnemnf mpjaodan syl5 imbi2d rexralbidv rexlimdva ralrimiv
      imbi12d cts xrstset resstset topnval xrstps resstps eltsms mpbir2and ctsr
      wo letsr ordthaus mp1i resthaus haustsms2 ) ACEDUGLZMZVUFCUHUIAVUGCNUJULL
[encoded data, 4560 characters]
      VUHVVCSVUDWTVUEYP $.
  $}

  ${
    xrge0tsmseq.g $e |- G = ( RR*s |`s ( 0 [,] +oo ) ) $.
    xrge0tsmseq.a $e |- ( ph -> A e. V ) $.
    xrge0tsmseq.f $e |- ( ph -> F : A --> ( 0 [,] +oo ) ) $.
    $( Any limit of a finite or infinite sum in the nonnegative extended reals
       is the union of the sets limits, since this set is a singleton.
       (Contributed by Thierry Arnoux, 23-Jun-2017.) $)
    xrge0tsmsbi $p |- ( ph ->
                           ( C e. ( G tsums F ) <-> C = U. ( G tsums F ) ) ) $=
      ( ctsu co wcel cuni csn wceq c1o cen wbr cc0 cvv cpnf wf xrge0tsms2 sylib
      cicc syl2anc en1b eleq2d wb ovex uniex eleq1 mpbiri elsng syl ibir impbii
      elsni syl6bbr ) ACEDJKZLCUTMZNZLZCVAOZAUTVBCAUTPQRZUTVBOABFLBSUAUEKDUBVEH
      IBDEFGUCUFUTUGUDUHVDVCVDVCVDCTLZVCVDUIVDVFVATLUTEDJUJUKCVATULUMCVATUNUOUP
      CVAURUQUS $.
    ${
      xrge0tsmseq.h $e |- ( ph -> C e. ( G tsums F ) ) $.
      $( Any limit of a finite or infinite sum in the nonnegative extended
         reals is the union of the sets limits, since this set is a singleton.
         (Contributed by Thierry Arnoux, 24-Mar-2017.) $)
      xrge0tsmseq $p |- ( ph -> C = U. ( G tsums F ) ) $=
        ( ctsu co cuni csn wcel c1o cen wbr wceq syl2anc cc0 cpnf wf xrge0tsms2
        cicc en1eqsn unieqd unisng syl eqtr2d ) AEDKLZMCNZMZCAUKULACUKOZUKPQRZU
        KULSJABFOBUAUBUELDUCUOHIBDEFGUDTCUKUFTUGAUNUMCSJCUKUHUIUJ $.
    $}
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Rings - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x B $.  $d e x R $.  $d e x .1. $.  $d x .x. $.  $d e x ph $.
    rngurd.b $e |- ( ph -> B = ( Base ` R ) ) $.
    rngurd.p $e |- ( ph -> .x. = ( .r ` R ) ) $.
    rngurd.z $e |- ( ph -> .1. e. B ) $.
    rngurd.i $e |- ( ( ph /\ x e. B ) -> ( .1. .x. x ) = x ) $.
    rngurd.j $e |- ( ( ph /\ x e. B ) -> ( x .x. .1. ) = x ) $.
    $( Deduce the unit of a ring from its properties.  (Contributed by Thierry
       Arnoux, 6-Sep-2016.) $)
    rngurd $p |- ( ph -> .1. = ( 1r ` R ) ) $=
      ( ve wcel co wceq wa wral oveqd eqeq1d anbi12d cur cfv cbs cmulr cio eqid
      cv dfur2 eleqtrd jca ralrimiva adantr raleqbidva mpbid wb wi eleq2d simpr
      weu wal oveq2d eqeq12d rspcdv adantrr simprr oveq2 id oveq1 rspcva simprd
      mpd syl2anc eqtr3d sylbird alrimiv eleq1 ralbidv syl121anc iota2 mpbi2and
      ex eqeu syl5req ) ADUAUBZLUGZDUCUBZMZWEBUGZDUDUBZNZWHOZWHWEWINZWHOZPZBWFQ
      ZPZLUEZFBWFDWIWDLWFUFWIUFWDUFUHAFWFMZFWHWINZWHOZWHFWINZWHOZPZBWFQZWQFOZAF
      CWFIGUIZAFWHENZWHOZWHFENZWHOZPZBCQXDAXKBCAWHCMZPZXHXJJKUJUKAXKXCBCWFGXMXH
      WTXJXBXMXGWSWHXMEWIFWHAEWIOXLHULZRSXMXIXAWHXMEWIWHFXNRSTUMUNZAFCMZWPLUSZW
      RXDPZXEUOIAWRWRXDWPWEFOZUPZLUTXQXFXFXOAXTLAWPWECMZWEWHENZWHOZWHWEENZWHOZP
      ZBCQZPZXSAYAWGYGWOACWFWEGUQAYFWNBCWFGXMYCWKYEWMXMYBWJWHXMEWIWEWHXNRSXMYDW
      LWHXMEWIWHWEXNRSTUMTAYHXSAYHPZFWEENZWEFAYAYJWEOZYGAYAPZXHBCQZYKAYMYAAXHBC
      JUKULYLXHYKBWECAYAURYLWHWEOZPZXGYJWHWEYOWHWEFEYLYNURZVAYPVBVCVKVDYIXPYGYJ
      FOZAXPYHIULAYAYGVEXPYGPWEFENZFOZYQYFYSYQPBFCWHFOZYCYSYEYQYTYBYRWHFWHFWEEV
      FYTVGZVBYTYDYJWHFWHFWEEVHUUAVBTVIVJVLVMWAVNVOWPXRLFWFXSWGWRWOXDWEFWFVPXSW
      NXCBWFXSWKWTWMXBXSWJWSWHWEFWHWIVHSXSWLXAWHWEFWHWIVFSTVQTZWBVRWPXRLFCUUBVS
      VLVTWC $.
  $}

  ${
    $d x .1. $.  $d x A $.  $d x B $.  $d x R $.  $d x S $.
    ress1r.s $e |- S = ( R |`s A ) $.
    ress1r.b $e |- B = ( Base ` R ) $.
    ress1r.1 $e |- .1. = ( 1r ` R ) $.
    $( ` 1r ` is unaffected by restriction.  This is a bit more generic than
       ~ subrg1 .  (Contributed by Thierry Arnoux, 6-Sep-2018.) $)
    ress1r $p |- ( ( R e. Ring /\ .1. e. A /\ A C_ B ) -> .1. = ( 1r ` S ) ) $=
      ( vx crg wcel wss w3a cmulr cfv cbs wceq cvv co syl2anc ressbas2 3ad2ant3
      simp3 fvex eqeltri ssexg sylancl eqid ressmulr syl simp2 cv simpl1 sselda
      wa ringlidm ringridm rngurd ) CJKZEAKZABLZMZIADCNOZEVAUSADPOQUTABDCFGUAUB
      VBARKZVCDNOQVBVABRKVDUSUTVAUCZBCPORGCPUDUEABRUFUGACDVCRFVCUHZUIUJUSUTVAUK
      VBIULZAKZUOZUSVGBKZEVGVCSVGQUSUTVAVHUMZVBABVGVEUNZBCVCEVGGVFHUPTVIUSVJVGE
      VCSVGQVKVLBCVCEVGGVFHUQTUR $.
  $}

  ${
    dvrdir.b $e |- B = ( Base ` R ) $.
    dvrdir.u $e |- U = ( Unit ` R ) $.
    dvrdir.p $e |- .+ = ( +g ` R ) $.
    dvrdir.t $e |- ./ = ( /r ` R ) $.
    $( Distributive law for the division operation of a ring.  (Contributed by
       Thierry Arnoux, 30-Oct-2017.) $)
    dvrdir $p |- ( ( R e. Ring /\ ( X e. B /\ Y e. B /\ Z e. U ) ) ->
                     ( ( X .+ Y ) ./ Z ) = ( ( X ./ Z ) .+ ( Y ./ Z ) ) ) $=
      ( crg wcel co cfv wceq eqid dvrval syl2anc w3a cinvr simpr1 simpr2 unitss
      wa cmulr simpl simpr3 unitinvcl syldan sseldi ringdir cgrp ringgrp adantr
      syl13anc grpcl syl3anc oveq12d 3eqtr4d ) DMNZFANZGANZHENZUAZUFZFGCOZHDUBP
      ZPZDUGPZOZFVJVKOZGVJVKOZCOZVHHBOZFHBOZGHBOZCOVGVBVCVDVJANVLVOQVBVFUHVBVCV
      DVEUCZVBVCVDVEUDZVGEAVJADEIJUEVBVFVEVJENVBVCVDVEUIZDEVIHJVIRZUJUKULACDVKF
      GVJIKVKRZUMUQVGVHANZVEVPVLQVGDUNNZVCVDWDVBWEVFDUOUPVSVTACDFGIKURUSWAABDVK
      EVIVHHIWCJWBLSTVGVQVMVRVNCVGVCVEVQVMQVSWAABDVKEVIFHIWCJWBLSTVGVDVEVRVNQVT
      WAABDVKEVIGHIWCJWBLSTUTVA $.

    rdivmuldivd.p $e |- .x. = ( .r ` R ) $.
    rdivmuldivd.r $e |- ( ph -> R e. CRing ) $.
    rdivmuldivd.a $e |- ( ph -> X e. B ) $.
    rdivmuldivd.b $e |- ( ph -> Y e. U ) $.
    rdivmuldivd.c $e |- ( ph -> Z e. B ) $.
    rdivmuldivd.d $e |- ( ph -> W e. U ) $.
    $( Multiplication of two ratios.  Theorem I.14 of [Apostol] p. 18.
       (Contributed by Thierry Arnoux, 30-Oct-2017.) $)
    rdivmuldivd $p |- ( ph -> ( ( X ./ Y ) .x. ( Z ./ W ) ) =
                             ( ( X .x. Z ) ./ ( Y .x. W ) ) ) $=
      ( co cinvr cfv wcel wceq eqid dvrval oveq1d syl2anc crg ccrg crngring syl
      wa unitss unitinvcl sseldi syl3anc ringass syl13anc crngcom oveq2d 3eqtrd
      dvrcl cmgp cplusg cgrp unitgrp unitgrpbas invrfval grpinvadd cvv cui fvex
      cress eqeltri mgpress fveq2d cmulr ressmulr ax-mp mgpplusg syl6reqr oveqd
      sylancl 3eqtr4d ringcl unitmulcl eqtr4d 3eqtr3rd 3eqtr4rd eqtrd ) AIJCUBZ
      KHCUBZFUBZIWOJEUCUDZUDZFUBZFUBZIKFUBZJHFUBZCUBZAWPIWRFUBZWOFUBZIWRWOFUBZF
      UBZWTAIBUEZJGUEZWPXEUFRSXHXIUOWNXDWOFBCEFGWQIJLPMWQUGZOUHUIUJAEUKUEZXHWRB
      UEZWOBUEZXEXGUFAEULUEZXKQEUMUNZRAGBWRBEGLMUPZAXKXIWRGUEXOSEGWQJMXJUQUJURZ
      AXKKBUEZHGUEZXMXOTUABCEGKHLMOVEUSZBEFIWRWOLPUTVAAXFWSIFAXNXLXMXFWSUFQXQXT
      BEFWRWOLPVBUSVCVDAXAXBWQUDZFUBZXAHWQUDZWRFUBZFUBZXCWTAYAYDXAFAJHEVFUDZGVP
      UBZVGUDZUBZWQUDZYCWRYHUBZYAYDAYGVHUEZXIXSYJYKUFAXKYLXOEGYGMYGUGZVIUNSUAGY
      HYGWQJHEGYGMYMVJYHUGEGYGWQMYMXJVKVLUSAXBYIWQAFYHJHAYHEGVPUBZVFUDZVGUDFAYG
      YOVGAXKGVMUEZYGYOUFXOGEVNUDVMMEVNVOVQZGEYNYFUKVMYNUGZYFUGVRWFVSYNFYOYOUGY
      PFYNVTUDUFYQGEYNFVMYRPWAWBWCWDZWEVSAFYHYCWRYSWEWGVCAXABUEZXBGUEZXCYBUFAXK
      XHXRYTXORTBEFIKLPWHUSZAXKXIXSUUAXOSUAEFGJHMPWIUSBCEFGWQXAXBLPMXJOUHUJAXAY
      CFUBZWRFUBZIWOFUBZWRFUBZYEWTAUUCUUEWRFAUUCIKYCFUBZFUBZUUEAXKXHXRYCBUEZUUC
      UUHUFXORTAGBYCXPAXKXSYCGUEXOUAEGWQHMXJUQUJURZBEFIKYCLPUTVAAWOUUGIFAXRXSWO
      UUGUFTUABCEFGWQKHLPMXJOUHUJVCWJUIAXKYTUUIXLUUDYEUFXOUUBUUJXQBEFXAYCWRLPUT
      VAAXKXHXMXLUUFWTUFXORXTXQBEFIWOWRLPUTVAWKWLWM $.
  $}

  ${
    $d y R $.  $d y U $.  $d y X $.
    ringinvval.b $e |- B = ( Base ` R ) $.
    ringinvval.p $e |- .* = ( .r ` R ) $.
    ringinvval.o $e |- .1. = ( 1r ` R ) $.
    ringinvval.n $e |- N = ( invr ` R ) $.
    ringinvval.u $e |- U = ( Unit ` R ) $.
    $( The ring inverse expressed in terms of multiplication.  (Contributed by
       Thierry Arnoux, 23-Oct-2017.) $)
    ringinvval $p |- ( ( R e. Ring /\ X e. U ) ->
                             ( N ` X ) = ( iota_ y e. U ( y .* X ) = .1. ) ) $=
      ( wcel wa cfv co wceq eqid cvv crg cv cmgp c0g crio unitgrpbas cplusg cui
      cress fvex eqeltri mgpplusg ressplusg invrfval grpinvval adantl unitgrpid
      ax-mp adantr eqeq2d riotabidva eqtr4d ) CUANZHDNZOHGPZAUBZHFQZCUCPZDUIQZU
      DPZRZADUEZVGERZADUEZVDVEVLRVCADFVIGHVJCDVIMVISZUFDTNFVIUGPRDCUHPTMCUHUJUK
      DFVHVITVOCFVHVHSJULUMURVJSCDVIGMVOLUNUOUPVCVNVLRVDVCVMVKADVCVFDNZOEVJVGVC
      EVJRVPCDEVIMVOKUQUSUTVAUSVB $.
  $}

  ${
    dvrcan5.b $e |- B = ( Base ` R ) $.
    dvrcan5.o $e |- U = ( Unit ` R ) $.
    dvrcan5.d $e |- ./ = ( /r ` R ) $.
    dvrcan5.t $e |- .x. = ( .r ` R ) $.
    $( Cancellation law for common factor in ratio.  ( ~ divcan5 analog.)
       (Contributed by Thierry Arnoux, 26-Oct-2016.) $)
    dvrcan5 $p |- ( ( R e. Ring /\ ( X e. B /\ Y e. U /\ Z e. U ) ) ->
      ( ( X .x. Z ) ./ ( Y .x. Z ) ) = ( X ./ Y ) ) $=
      ( wcel co cfv wceq sseldi eqid syl2anc cvv crg w3a wa cinvr unitss simpr3
      unitmulcl 3adant3r1 dvrval cmgp cress simpl unitgrp syl simpr2 unitgrpbas
      cgrp cplusg cui fvex eqeltri mgpplusg ressplusg invrfval grpinvadd oveq2d
      ax-mp syl3anc cur unitrinv 3ad2antr3 unitinvcl 3ad2antr2 ringass syl13anc
      oveq1d ringlidm 3eqtr3d 3eqtrd simpr1 dvrass 3eqtr4d ) CUAMZFAMZGEMZHEMZU
      BZUCZFHGHDNZBNZDNZFGCUDOZOZDNZFHDNWIBNZFGBNZWHWJWMFDWHWJHWIWLOZDNZHHWLOZW
      MDNZDNZWMWHHAMZWIEMZWJWRPWHEAHACEIJUEZWCWDWEWFUFZQZWCWEWFXCWDCDEGHJLUGUHZ
      ABCDEWLHWIILJWLRZKUISWHCUJOZEUKNZUQMZWEWFWRXAPWHWCXKWCWGULZCEXJJXJRZUMUNW
      CWDWEWFUOZXEXKWEWFUBWQWTHDEDXJWLGHCEXJJXMUPETMDXJUROPECUSOTJCUSUTVAEDXIXJ
      TXMCDXIXIRLVBVCVGCEXJWLJXMXHVDVEVFVHWHHWSDNZWMDNZCVIOZWMDNZXAWMWCWDWFXPXR
      PWEWCWFUCXOXQWMDCDEXQWLHJXHLXQRZVJVPVKWHWCXBWSAMWMAMZXPXAPXLXFWHEAWSXDWCW
      DWFWSEMWECEWLHJXHVLVKQWHEAWMXDWCWDWEWMEMWFCEWLGJXHVLVMQZACDHWSWMILVNVOWHW
      CXTXRWMPXLYAACDXQWMILXSVQSVRVSVFWHWCWDXBXCWOWKPXLWCWDWEWFVTZXFXGABCDEFHWI
      IJKLWAVOWHWDWEWPWNPYBXNABCDEWLFGILJXHKUISWB $.
  $}

  ${
    $( If ` A ` is a subring of ` R ` , then they have the same characteristic.
       (Contributed by Thierry Arnoux, 24-Feb-2018.) $)
    subrgchr $p |- ( A e. ( SubRing ` R ) ->
      ( chr ` ( R |`s A ) ) = ( chr ` R ) ) $=
      ( csubrg cfv wcel cress cur cod cchr csubg wceq subrgsubg subrg1cl subgod
      co eqid syl2anc subrg1 fveq2d chrval eqtr2d 3eqtr3g ) ABCDEZBAFOZGDZUDHDZ
      DZBGDZBHDZDZUDIDZBIDZUCUJUHUFDZUGUCABJDEUHAEUJUMKABLABUHUHPZMUHUFBUDUIAUD
      PZUIPZUFPZNQUCUHUEUFABUDUHUOUNRSUAUKUDUEUFUQUEPUKPTULBUHUIUPUNULPTUB $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Ordered rings and fields
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c oRing $.
  $c oField $.

  $( Extend class notation with the class of all ordered rings. $)
  corng $a class oRing $.

  $( Extend class notation with the class of all ordered fields. $)
  cofld $a class oField $.

  ${
    $d a b l r t v z $.
    $( Define class of all ordered rings.  An ordered ring is a ring with a
       total ordering compatible with its operations.  (Contributed by Thierry
       Arnoux, 23-Mar-2018.) $)
    df-orng $a |- oRing = { r e. ( Ring i^i oGrp ) | [. ( Base ` r ) / v ].
      [. ( 0g ` r ) / z ]. [. ( .r ` r ) / t ]. [. ( le ` r ) / l ].
      A. a e. v A. b e. v ( ( z l a /\ z l b ) -> z l ( a t b ) ) } $.

    $( Define class of all ordered fields.  An ordered field is a field with a
       total ordering compatible with its operations.  (Contributed by Thierry
       Arnoux, 18-Jan-2018.) $)
    df-ofld $a |- oField = ( Field i^i oRing ) $.
  $}

  ${
    $d a b l r t v z B $.  $d a b l r t v z R $.  $d l r t z .0. $.
    $d l r .<_ $.  $d l r t .x. $.
    isorng.0 $e |- B = ( Base ` R ) $.
    isorng.1 $e |- .0. = ( 0g ` R ) $.
    isorng.2 $e |- .x. = ( .r ` R ) $.
    isorng.3 $e |- .<_ = ( le ` R ) $.
    $( An ordered ring is a ring with a total ordering compatible with its
       operations.  (Contributed by Thierry Arnoux, 18-Jan-2018.) $)
    isorng $p |- ( R e. oRing <-> ( R e. Ring /\ R e. oGrp /\
      A. a e. B A. b e. B ( ( .0. .<_ a /\ .0. .<_ b )
        -> .0. .<_ ( a .x. b ) ) ) ) $=
      ( vl vt cv wbr wa wral cfv wsbc wceq vz vv vr crg cogrp cin wcel co corng
      wi w3a elin anbi1i cple cmulr c0g cbs cvv fvexd simpr simpl syl6eqr eqtrd
      fveq2d oveqd breq2d imbi2d 2ralbidv sbcbidv sbcied fveq2 raleq raleqbi1dv
      wb adantr syl breq1d anbi12d imbi12d bitr2d 3bitr3d df-orng elrab2 df-3an
      breqd 3bitr4i ) BUDUEUFZUGZEFNZDOZEGNZDOZPZEWIWKCUHZDOZUJZGAQFAQZPBUDUGZB
      UEUGZPZWQPBUIUGWRWSWQUKWHWTWQBUDUEULUMUANZWILNZOZXAWKXBOZPZXAWIWKMNZUHZXB
      OZUJZGUBNZQZFXJQZLUCNZUNRZSZMXMUORZSZUAXMUPRZSZUBXMUQRZSZWQUCBWGUIXMBTZEW
      IXBOZEWKXBOZPZEXGXBOZUJZGAQFAQZLXNSZMXPSZYEEWNXBOZUJZGAQFAQZLXNSZYAWQYBYI
      YNMXPURYBXMUOUSYBXFXPTZPZYHYMLXNYPYGYLFGAAYPYFYKYEYPXGWNEXBYPXFCWIWKYPXFX
      PCYBYOUTYPXPBUORCYPXMBUOYBYOVAVDJVBVCVEVFVGVHVIVJYBYAXIGAQZFAQZLXNSZMXPSZ
      UAXRSZYJYBXSUUAUBXTURYBXMUQUSYBXJXTTZPZXQYTUAXRUUCXOYSMXPUUCXLYRLXNUUCXJA
      TXLYRVNUUCXJXTAYBUUBUTYBXTATUUBYBXTBUQRAXMBUQVKHVBVOVCXKYQFXJAXIGXJAVLVMV
      PVIVIVIVJYBYTYJUAXRURYBXMUPUSYBXAXRTZPZYSYIMXPUUEYRYHLXNUUEXIYGFGAAUUEXEY
      EXHYFUUEXCYCXDYDUUEXAEWIXBUUEXAXREYBUUDUTYBXRETUUDYBXRBUPREXMBUPVKIVBVOVC
      ZVQUUEXAEWKXBUUFVQVRUUEXAEXGXBUUFVQVSVHVIVIVJVTYBYMWQLXNURYBXMUNUSYBXBXNT
      ZPZYLWPFGAAUUHYEWMYKWOUUHYCWJYDWLUUHXBDEWIUUHXBXNDYBUUGUTUUHXNBUNRDUUHXMB
      UNYBUUGVAVDKVBVCZWEUUHXBDEWKUUIWEVRUUHXBDEWNUUIWEVSVHVJWAUAUBMUCFGLWBWCWR
      WSWQWDWF $.
  $}

  ${
    $d a b R $.
    $( An ordered ring is a ring.  (Contributed by Thierry Arnoux,
       23-Mar-2018.) $)
    orngring $p |- ( R e. oRing -> R e. Ring ) $=
      ( va vb corng wcel crg cogrp c0g cfv cv cple wbr wa cmulr co wi wral eqid
      cbs isorng simp1bi ) ADEAFEAGEAHIZBJZAKIZLUBCJZUDLMUBUCUEANIZOUDLPCASIZQB
      UGQUGAUFUDUBBCUGRUBRUFRUDRTUA $.

    $( An ordered ring is an ordered group.  (Contributed by Thierry Arnoux,
       23-Mar-2018.) $)
    orngogrp $p |- ( R e. oRing -> R e. oGrp ) $=
      ( va vb corng wcel crg cogrp c0g cfv cv cple wbr wa cmulr co wi wral eqid
      cbs isorng simp2bi ) ADEAFEAGEAHIZBJZAKIZLUBCJZUDLMUBUCUEANIZOUDLPCASIZQB
      UGQUGAUFUDUBBCUGRUBRUFRUDRTUA $.
  $}

  $( An ordered field is a field with a total ordering compatible with its
     operations.  (Contributed by Thierry Arnoux, 23-Mar-2018.) $)
  isofld $p |- ( F e. oField <-> ( F e. Field /\ F e. oRing ) ) $=
    ( cfield corng cofld df-ofld elin2 ) ABCDEF $.

  ${
    $d a b B $.  $d a b R $.  $d a b X $.  $d b Y $.  $d a b .0. $.
    $d a b .<_ $.  $d a b .x. $.
    orngmul.0 $e |- B = ( Base ` R ) $.
    orngmul.1 $e |- .<_ = ( le ` R ) $.
    orngmul.2 $e |- .0. = ( 0g ` R ) $.
    orngmul.3 $e |- .x. = ( .r ` R ) $.
    $( In an ordered ring, the ordering is compatible with the ring
       multiplication operation.  (Contributed by Thierry Arnoux,
       20-Jan-2018.) $)
    orngmul $p |- ( ( R e. oRing
      /\ ( X e. B /\ .0. .<_ X ) /\ ( Y e. B /\ .0. .<_ Y ) )
      -> .0. .<_ ( X .x. Y ) ) $=
      ( va vb wcel wbr wa co cv wi wral corng simp2r simp3r simp2l simp3l cogrp
      w3a isorng simp3bi 3ad2ant1 wceq breq2 anbi1d oveq1 breq2d imbi12d anbi2d
      crg oveq2 rspc2va syl21anc mp2and ) BUANZEANZGEDOZPZFANZGFDOZPZUGZVEVHGEF
      CQZDOZVCVDVEVIUBVCVFVGVHUCVJVDVGGLRZDOZGMRZDOZPZGVMVOCQZDOZSZMATLATZVEVHP
      ZVLSZVCVDVEVIUDVCVFVGVHUEVCVFWAVIVCBURNBUFNWAABCDGLMHJKIUHUIUJVTWCVEVPPZG
      EVOCQZDOZSLMEFAAVMEUKZVQWDVSWFWGVNVEVPVMEGDULUMWGVRWEGDVMEVOCUNUOUPVOFUKZ
      WDWBWFVLWHVPVHVEVOFGDULUQWHWEVKGDVOFECUSUOUPUTVAVB $.

    $( In an ordered ring, all squares are positive.  (Contributed by Thierry
       Arnoux, 20-Jan-2018.) $)
    orngsqr $p |- ( ( R e. oRing /\ X e. B ) -> .0. .<_ ( X .x. X ) ) $=
      ( wcel wa wbr co cfv syl eqid syl2anc wceq wo corng simpll simplr orngmul
      simpr syl122anc wn cminusg cgrp orngring ad2antrr ringgrp grpinvcl cplusg
      crg comnd cogrp orngogrp isogrp simprbi grpidcl cplt w3a simpl 3syl pltle
      3jca con3dimp sylan w3o wor ctos omndtos cid cres wss ibi simpld syl12anc
      tosso solin 3orass sylib orel1 sylc orcom eqcom orbi2i cpo tospos pleval2
      syl3anc mpbird omndadd syl131anc grprinv grplid 3brtr3d ringm2neg breqtrd
      bitri wb pm2.61dan ) BUAKZEAKZLZFEDMZFEECNZDMZXFXGLXDXEXGXEXGXIXDXEXGUBXD
      XEXGUCZXFXGUEZXJXKABCDEEFGHIJUDUFXFXGUGZLZFEBUHOZOZXOCNZXHDXMXDXOAKZFXODM
      ZXQXRFXPDMXDXEXLUBZXMBUIKZXEXQXMBUOKZXTXDYAXEXLBUJZUKZBULZPZXDXEXLUCZABXN
      EGXNQZUMRZXMEXOBUNOZNZFXOYINZFXODXMBUPKZXEFAKZXQEFDMZYJYKDMXMXDYLXSXDBUQK
      ZYLBURYOXTYLBUSUTPZPYFXMXTYMYEABFGIVAZPZYHXMYNEFBVBOZMZEFSZTZXMFESZYTTZUU
      BXMFEYSMZUGZUUEUUDTZUUDXFXDYMXEVCZXLUUFXFXDYMXEXDXEVDZXFXDYMUUIXDYAXTYMYB
      YDYQVEPXDXEUEVGUUHUUEXGUAAAYSBDFEHYSQZVFVHVIXMUUEUUCYTVJZUUGXMAYSVKZYMXEU
      UKXMXDBVLKZUULXSXDYLUUMYPBVMPZUUMUULVNAVODVPZUUMUULUUOLAYSBDVLGHUUJVTVQVR
      VEYRYFAFEYSWAVSUUEUUCYTWBWCUUEUUDWDWEUUDYTUUCTUUBUUCYTWFUUCUUAYTFEWGWHXAW
      CXMBWIKZXEYMYNUUBXBXMXDUUMUUPXSUUNBWJVEYFYRAYSBDEFGHUUJWKWLWMAYIDBEFXOGHY
      IQZWNWOXMXTXEYJFSYEYFAYIBXNEFGUUQIYGWPRXMXTXQYKXOSYEYHAYIBXOFGUUQIWQRWRZY
      HUURABCDXOXOFGHIJUDUFXMABCXNEEGJYGYCYFYFWSWTXC $.
  $}

  ${
    ornglmullt.b $e |- B = ( Base ` R ) $.
    ornglmullt.t $e |- .x. = ( .r ` R ) $.
    ornglmullt.0 $e |- .0. = ( 0g ` R ) $.
    ornglmullt.1 $e |- ( ph -> R e. oRing ) $.
    ornglmullt.2 $e |- ( ph -> X e. B ) $.
    ornglmullt.3 $e |- ( ph -> Y e. B ) $.
    ornglmullt.4 $e |- ( ph -> Z e. B ) $.
    ${
      orngmulle.l $e |- .<_ = ( le ` R ) $.
      orngmulle.5 $e |- ( ph -> X .<_ Y ) $.
      orngmulle.6 $e |- ( ph -> .0. .<_ Z ) $.
      $( In an ordered ring, multiplication with a positive does not change
         comparison.  (Contributed by Thierry Arnoux, 10-Apr-2018.) $)
      ornglmulle $p |- ( ph -> ( Z .x. X ) .<_ ( Z .x. Y ) ) $=
        ( wcel co cplusg cfv csg comnd wbr cogrp corng orngogrp syl cgrp isogrp
        simprbi crg orngring ringgrp grpidcl ringcl eqid grpsubcl wceq grpsubid
        syl3anc syl2anc ogrpsub syl131anc eqbrtrrd syl122anc ringsubdi grpnpcan
        orngmul breqtrd omndadd grplid 3brtr3d ) AHIFDUAZCUBUCZUAZIGDUAZVPCUDUC
        ZUAZVPVQUAZVPVSEACUETZHBTZWABTZVPBTZHWAEUFVRWBEUFACUGTZWCACUHTZWGMCUIUJ
        ZWGCUKTZWCCULUMUJAWJWDACUNTZWJAWHWKMCUOUJZCUPUJZBCHJLUQUJAWJVSBTZWFWEWM
        AWKIBTZGBTZWNWLPOBCDIGJKURVCZAWKWOFBTZWFWLPNBCDIFJKURVCZBCVTVSVPJVTUSZU
        TVCWSAHIGFVTUAZDUAZWAEAWHWOHIEUFXABTZHXAEUFHXBEUFMPSAWJWPWRXCWMONBCVTGF
        JWTUTVCAFFVTUAZHXAEAWJWRXDHVAWMNBCVTFHJLWTVBVDAWGWRWPWRFGEUFXDXAEUFWINO
        NRBCEVTFGFJQWTVEVFVGBCDEIXAHJQLKVKVHABCDVTIGFJKWTWLPONVIVLBVQECHWAVPJQV
        QUSZVMVFAWJWFVRVPVAWMWSBVQCVPHJXELVNVDAWJWNWFWBVSVAWMWQWSBVQCVTVSVPJXEW
        TVJVCVO $.

      $( In an ordered ring, multiplication with a positive does not change
         comparison.  (Contributed by Thierry Arnoux, 10-Apr-2018.) $)
      orngrmulle $p |- ( ph -> ( X .x. Z ) .<_ ( Y .x. Z ) ) $=
        ( wcel co cplusg cfv csg comnd wbr cogrp corng orngogrp syl cgrp isogrp
        simprbi crg orngring ringgrp grpidcl ringcl eqid grpsubcl wceq grpsubid
        syl3anc syl2anc ogrpsub syl131anc eqbrtrrd syl122anc rngsubdir grpnpcan
        orngmul breqtrd omndadd grplid 3brtr3d ) AHFIDUAZCUBUCZUAZGIDUAZVPCUDUC
        ZUAZVPVQUAZVPVSEACUETZHBTZWABTZVPBTZHWAEUFVRWBEUFACUGTZWCACUHTZWGMCUIUJ
        ZWGCUKTZWCCULUMUJAWJWDACUNTZWJAWHWKMCUOUJZCUPUJZBCHJLUQUJAWJVSBTZWFWEWM
        AWKGBTZIBTZWNWLOPBCDGIJKURVCZAWKFBTZWPWFWLNPBCDFIJKURVCZBCVTVSVPJVTUSZU
        TVCWSAHGFVTUAZIDUAZWAEAWHXABTZHXAEUFWPHIEUFHXBEUFMAWJWOWRXCWMONBCVTGFJW
        TUTVCAFFVTUAZHXAEAWJWRXDHVAWMNBCVTFHJLWTVBVDAWGWRWOWRFGEUFXDXAEUFWINONR
        BCEVTFGFJQWTVEVFVGPSBCDEXAIHJQLKVKVHABCDVTGFIJKWTWLONPVIVLBVQECHWAVPJQV
        QUSZVMVFAWJWFVRVPVAWMWSBVQCVPHJXELVNVDAWJWNWFWBVSVAWMWQWSBVQCVTVSVPJXEW
        TVJVCVO $.
    $}

    ${
      ornglmullt.l $e |- .< = ( lt ` R ) $.
      ornglmullt.d $e |- ( ph -> R e. DivRing ) $.
      ornglmullt.5 $e |- ( ph -> X .< Y ) $.
      ornglmullt.6 $e |- ( ph -> .0. .< Z ) $.
      $( In an ordered ring, multiplication with a positive does not change
         strict comparison.  (Contributed by Thierry Arnoux, 9-Apr-2018.) $)
      ornglmullt $p |- ( ph -> ( Z .x. X ) .< ( Z .x. Y ) ) $=
        ( wbr cple cfv wne eqid corng wcel w3a pltle imp syl31anc cgrp orngring
        co crg syl ringgrp grpidcl 3syl ornglmulle wceq wa cinvr oveq2d cur cui
        simpr pltne necomd drngunit biimpar syl12anc unitlinv syl2anc ringinvcl
        oveq1d ringass syl13anc ringlidm 3eqtr3d adantr neneqd neqned wb ringcl
        cdr pm2.65da syl3anc pltval mpbir2and ) AIFEUNZIGEUNZDUAZWKWLCUBUCZUAZW
        KWLUDZABCEWNFGHIJKLMNOPWNUEZACUFUGZFBUGZGBUGZFGDUAZFGWNUAZMNOSWRWSWTUHZ
        XAXBUFBBDCWNFGWQQUIUJUKAWRHBUGZIBUGZHIDUAZHIWNUAZMACUOUGZCULUGXDAWRXHMC
        UMUPZCUQBCHJLURUSZPTWRXDXEUHZXFXGUFBBDCWNHIWQQUIUJUKUTAWKWLAWKWLVAZFGVA
        AXLVBZICVCUCZUCZWKEUNZXOWLEUNZFGXMWKWLXOEAXLVGVDAXPFVAXLAXOIEUNZFEUNZCV
        EUCZFEUNZXPFAXRXTFEAXHICVFUCZUGZXRXTVAXIACWFUGZXEIHUDZYCRPAHIAWRXDXEXFH
        IUDZMXJPTXKXFYFUFBBDCHIQVHUJUKVIYDYCXEYEVBBCYBIHJYBUEZLVJVKVLZCEYBXTXNI
        YGXNUEZKXTUEZVMVNZVPAXHXOBUGZXEWSXSXPVAXIAXHYCYLXIYHBCYBXNIYGYIJVOVNZPN
        BCEXOIFJKVQVRAXHWSYAFVAXINBCEXTFJKYJVSVNVTWAAXQGVAXLAXRGEUNZXTGEUNZXQGA
        XRXTGEYKVPAXHYLXEWTYNXQVAXIYMPOBCEXOIGJKVQVRAXHWTYOGVAXIOBCEXTGJKYJVSVN
        VTWAVTXMFGAFGUDZXLAWRWSWTXAYPMNOSXCXAYPUFBBDCFGQVHUJUKWAWBWGWCAWRWKBUGZ
        WLBUGZWMWOWPVBWDMAXHXEWSYQXIPNBCEIFJKWEWHAXHXEWTYRXIPOBCEIGJKWEWHUFBBDC
        WNWKWLWQQWIWHWJ $.

      $( In an ordered ring, multiplication with a positive does not change
         strict comparison.  (Contributed by Thierry Arnoux, 9-Apr-2018.) $)
      orngrmullt $p |- ( ph -> ( X .x. Z ) .< ( Y .x. Z ) ) $=
        ( wbr cple cfv wne eqid corng wcel w3a pltle imp syl31anc cgrp orngring
        co crg syl ringgrp grpidcl 3syl orngrmulle wceq wa simpr oveq1d cui cdr
        pltne necomd drngunit biimpar syl12anc dvrcan3 syl3anc 3eqtr3d pm2.65da
        cdvr adantr neneqd neqned wb ringcl pltval mpbir2and ) AFIEUNZGIEUNZDUA
        ZWDWECUBUCZUAZWDWEUDZABCEWGFGHIJKLMNOPWGUEZACUFUGZFBUGZGBUGZFGDUAZFGWGU
        AZMNOSWKWLWMUHZWNWOUFBBDCWGFGWJQUIUJUKAWKHBUGZIBUGZHIDUAZHIWGUAZMACUOUG
        ZCULUGWQAWKXAMCUMUPZCUQBCHJLURUSZPTWKWQWRUHZWSWTUFBBDCWGHIWJQUIUJUKUTAW
        DWEAWDWEVAZFGVAAXEVBZWDICVPUCZUNZWEIXGUNZFGXFWDWEIXGAXEVCVDAXHFVAZXEAXA
        WLICVEUCZUGZXJXBNACVFUGZWRIHUDZXLRPAHIAWKWQWRWSHIUDZMXCPTXDWSXOUFBBDCHI
        QVGUJUKVHXMXLWRXNVBBCXKIHJXKUEZLVIVJVKZBXGCEXKFIJXPXGUEZKVLVMVQAXIGVAZX
        EAXAWMXLXSXBOXQBXGCEXKGIJXPXRKVLVMVQVNXFFGAFGUDZXEAWKWLWMWNXTMNOSWPWNXT
        UFBBDCFGQVGUJUKVQVRVOVSAWKWDBUGZWEBUGZWFWHWIVBVTMAXAWLWRYAXBNPBCEFIJKWA
        VMAXAWMWRYBXBOPBCEGIJKWAVMUFBBDCWGWDWEWJQWBVMWC $.
    $}
  $}

  ${
    orngmullt.b $e |- B = ( Base ` R ) $.
    orngmullt.t $e |- .x. = ( .r ` R ) $.
    orngmullt.0 $e |- .0. = ( 0g ` R ) $.
    orngmullt.l $e |- .< = ( lt ` R ) $.
    orngmullt.1 $e |- ( ph -> R e. oRing ) $.
    orngmullt.4 $e |- ( ph -> R e. DivRing ) $.
    orngmullt.2 $e |- ( ph -> X e. B ) $.
    orngmullt.3 $e |- ( ph -> Y e. B ) $.
    orngmullt.x $e |- ( ph -> .0. .< X ) $.
    orngmullt.y $e |- ( ph -> .0. .< Y ) $.
    $( In an ordered ring, the strict ordering is compatible with the ring
       multiplication operation.  (Contributed by Thierry Arnoux,
       9-Sep-2018.) $)
    orngmullt $p |- ( ph -> .0. .< ( X .x. Y ) ) $=
      ( wbr wcel co cple cfv wne corng wa wb cgrp orngring ringgrp grpidcl 4syl
      crg eqid pltval syl3anc simpld orngmul syl122anc simprd necomd drngmulne0
      mpbid mpbir2and syl ringcl ) AHFGEUAZDSZHVGCUBUCZSZHVGUDZACUETZFBTZHFVISZ
      GBTZHGVISZVJMOAVNHFUDZAHFDSZVNVQUFZQAVLHBTZVMVRVSUGMAVLCUMTZCUHTVTMCUIZCU
      JBCHIKUKULZOUEBBDCVIHFVIUNZLUOUPVCZUQPAVPHGUDZAHGDSZVPWFUFZRAVLVTVOWGWHUG
      MWCPUEBBDCVIHGWDLUOUPVCZUQBCEVIFGHIWDKJURUSAVGHAVGHUDFHUDGHUDAHFAVNVQWEUT
      VAAHGAVPWFWIUTVAABCEFGHIKJNOPVBVDVAAVLVTVGBTZVHVJVKUFUGMWCAWAVMVOWJAVLWAM
      WBVEOPBCEFGIJVFUPUEBBDCVIHVGWDLUOUPVD $.
  $}

  $( An ordered field is a field.  (Contributed by Thierry Arnoux,
     20-Jan-2018.) $)
  ofldfld $p |- ( F e. oField -> F e. Field ) $=
    ( cofld wcel cfield corng isofld simplbi ) ABCADCAECAFG $.

  $( An ordered field is a totally ordered set.  (Contributed by Thierry
     Arnoux, 20-Jan-2018.) $)
  ofldtos $p |- ( F e. oField -> F e. Toset ) $=
    ( cofld wcel comnd ctos corng cogrp cfield isofld orngogrp cgrp isogrp 3syl
    simprbi omndtos syl ) ABCZADCZAECQAFCZAGCZRQAHCSAINAJTAKCRALNMAOP $.

  ${
    orng0le1.1 $e |- .0. = ( 0g ` F ) $.
    orng0le1.2 $e |- .1. = ( 1r ` F ) $.
    ${
      orng0le1.3 $e |- .<_ = ( le ` F ) $.
      $( In an ordered ring, the ring unit is positive.  (Contributed by
         Thierry Arnoux, 21-Jan-2018.) $)
      orng0le1 $p |- ( F e. oRing -> .0. .<_ .1. ) $=
        ( corng wcel cmulr cfv cbs wbr crg orngring eqid ringidcl syl orngsqr
        co mpdan wceq ringlidm syl2anc breqtrd ) BHIZDAABJKZTZACUFABLKZIZDUHCMU
        FBNIZUJBOZUIBAUIPZFQRZUIBUGCADUMGEUGPZSUAUFUKUJUHAUBULUNUIBUGAAUMUOFUCU
        DUE $.
    $}

    ${
      ofld0lt1.3 $e |- .< = ( lt ` F ) $.
      $( TODO - this can be generalized to ordered division rings $)
      $( In an ordered field, the ring unit is strictly positive.  (Contributed
         by Thierry Arnoux, 21-Jan-2018.) $)
      ofldlt1 $p |- ( F e. oField -> .0. .< .1. ) $=
        ( cofld wcel wbr cple cfv wne corng cfield cvv c0g fvex eqeltri cur syl
        isofld simprbi eqid orng0le1 cdr ofldfld ccrg isfld simplbi 3syl necomd
        drngunz wa wb pltval mp3an23 mpbir2and ) CHIZDBAJZDBCKLZJZDBMZUSCNIZVBU
        SCOIZVDCUBUCBCVADEFVAUDZUEUAUSBDUSVECUFIZBDMCUGVEVGCUHICUIUJCBDEFUMUKUL
        USDPIBPIUTVBVCUNUODCQLPECQRSBCTLPFCTRSHPPACVADBVFGUPUQUR $.
    $}
  $}

  ${
    $d m n F $.  $d n y F $.
    $( TODO - this can be generalized to nonzero division rings $)
    $( The characteristic of an ordered field is zero.  (Contributed by Thierry
       Arnoux, 21-Jan-2018.)  (Proof shortened by AV, 6-Oct-2020.) $)
    ofldchr $p |- ( F e. oField -> ( chr ` F ) = 0 ) $=
      ( vy wcel cfv cc0 eqid co wceq cn 3syl wa wbr wi c1 oveq1 breq2d ad2antlr
      imbi2d syl cvv vn vm cofld cchr cur cod chrval cv cmg c0g crab c0 cr cinf
      clt cif crg cbs cfield ofldfld ccrg isfld simplbi drngring ringidcl odval
      cdr wn wral cplt wne caddc ofldlt1 mulg1 breqtrrd cpo ctos ofldtos tospos
      w3a cgrp ringgrp grpidcl cmgm cmnd grpmnd mndmgm simpll syl3anc peano2nnd
      mulgnncl 3jca simpr cplusg cogrp simplr isofld simprbi orngogrp ogrpaddlt
      corng syl131anc grplid syl2anc eqcomd mulgnnp1 ccmn ringcmn eqtrd 3brtr4d
      cmncom plttr imp syl22anc exp31 a2d nnind impcom fvex ovex mp3an23 adantr
      pltne mpd necomd neneqd ralrimiva rabeq0 sylibr iftrued syl5eqr ) AUCCZAU
      DDZAUEDZAUFDZDZEYMAYNYOYOFZYNFZYMFUGYLYPBUHZYNAUIDZGZAUJDZHZBIUKZULHZEUUD
      UMUOUNZUPZEYLAUQCZYNAURDZCZYPUUGHYLAUSCZAVGCZUUHAUTUUKUULAVACAVBVCAVDJZUU
      IAYNUUIFZYRVEZBYNYTAUUDYOUUIUUBUUNYTFZUUBFZYQUUDFVFJYLUUEEUUFYLUUCVHZBIVI
      UUEYLUURBIYLYSICZKZUUAUUBUUTUUBUUAUUTUUBUUAAVJDZLZUUBUUAVKZUUSYLUVBYLUUBU
      AUHZYNYTGZUVALZMYLUUBNYNYTGZUVALZMYLUUBUBUHZYNYTGZUVALZMYLUUBUVINVLGZYNYT
      GZUVALZMYLUVBMUAUBYSUVDNHZUVFUVHYLUVOUVEUVGUUBUVAUVDNYNYTOPRUVDUVIHZUVFUV
      KYLUVPUVEUVJUUBUVAUVDUVIYNYTOPRUVDUVLHZUVFUVNYLUVQUVEUVMUUBUVAUVDUVLYNYTO
      PRUVDYSHZUVFUVBYLUVRUVEUUAUUBUVAUVDYSYNYTOPRYLUUBYNUVGUVAUVAYNAUUBUUQYRUV
      AFZVMZYLUUJUVGYNHYLUUHUUJUUMUUOSZUUIYTAYNUUNUUPVNSVOUVIICZYLUVKUVNUWBYLUV
      KUVNUWBYLKZUVKKZAVPCZUUBUUICZUVJUUICZUVMUUICZVTZUVKUVJUVMUVALZUVNYLUWEUWB
      UVKYLAVQCUWEAVRAVSSQUWDUWFUWGUWHUWDAWACZUWFYLUWKUWBUVKYLUUHUWKUUMAWBSQZUU
      IAUUBUUNUUQWCSZUWDAWDCZUWBUUJUWGUWDUWKUWNUWLUWKAWECUWNAWFAWGSSZUWBYLUVKWH
      ZYLUUJUWBUVKUWAQZUUIYTAUVIYNUUNUUPWKWIZUWDUWNUVLICUUJUWHUWOUWDUVIUWPWJUWQ
      UUIYTAUVLYNUUNUUPWKWIWLUWCUVKWMUWDUUBUVJAWNDZGZYNUVJUWSGZUVJUVMUVAUWDAWOC
      ZUWFUUJUWGUUBYNUVALZUWTUXAUVALUWDYLAXACZUXBUWBYLUVKWPZYLUUKUXDAWQWRAWSJUW
      MUWQUWRYLUXCUWBUVKUVTQUUIUWSUVAAUUBYNUVJUUNUVSUWSFZWTXBUWDUWTUVJUWDUWKUWG
      UWTUVJHUWLUWRUUIUWSAUVJUUBUUNUXFUUQXCXDXEUWDUVMUVJYNUWSGZUXAUWDUWBUUJUVMU
      XGHUWPUWQUUIUWSYTAUVIYNUUNUUPUXFXFXDUWDAXGCZUWGUUJUXGUXAHUWDYLUUHUXHUXEUU
      MAXHJUWRUWQUUIUWSAUVJYNUUNUXFXKWIXIXJUWEUWIKUVKUWJKUVNUUIUVAAUUBUVJUVMUUN
      UVSXLXMXNXOXPXQXRYLUVBUVCMZUUSYLUUBTCUUATCUXIAUJXSYSYNYTXTUCTTUVAAUUBUUAU
      VSYCYAYBYDYEYFYGUUCBIYHYIYJXIYK $.
  $}

  ${
    $d a b A $.  $d a b R $.
    $( Every subring of an ordered ring is also an ordered ring.  (Contributed
       by Thierry Arnoux, 21-Jan-2018.) $)
    suborng $p |- ( ( R e. oRing /\ ( R |`s A ) e. Ring )
      -> ( R |`s A ) e. oRing ) $=
      ( va vb wcel cress co wa c0g cfv wbr cbs cgrp syl cvv c0 wceq eqid adantr
      breq123d corng crg cogrp cv cple cmulr wi wral simpr comnd ringgrp adantl
      cmnd orngogrp isogrp simprbi ringmnd submomnd syl2an sylanbrc simp-4l wss
      wn reldmress ovprc2 fveq2d base0 syl6eqr wne cur ringidcl ad2antlr neneqd
      ne0i condan ressbas inss2 syl6eqssr ad3antrrr simpllr sseldd simprl csubg
      wb orngring ressinbas oveq2d eqtrd eqeltrrd issubg syl3anbrc subg0 eqtr4d
      cin ad2antrr ressle eqidd mpbird simplr simprr orngmul syl122anc ressmulr
      oveqd mpbid ex anasss ralrimivva isorng ) BUAEZBAFGZUBEZHZXLXKUCEZXKIJZCU
      DZXKUEJZKZXODUDZXQKZHZXOXPXSXKUFJZGZXQKZUGZDXKLJZUHCYFUHXKUAEXJXLUIXMXKME
      ZXKUJEZXNXLYGXJXKUKULZXJBUJEZXKUMEYHXLXJBUCEZYJBUNYKBMEZYJBUOUPNXKUQABURU
      SXKUOUTXMYECDYFYFXMXPYFEZXSYFEZYEXMYMHZYNHZYAYDYPYAHZBIJZXPXSBUFJZGZBUEJZ
      KZYDYQXJXPBLJZEYRXPUUAKZXSUUCEYRXSUUAKZUUBXJXLYMYNYAVAYQYFUUCXPXMYFUUCVBZ
      YMYNYAXMAOEZUUFXMUUGYFPQXMUUGVCZHZYFPLJZPUUHYFUUJQXMUUHXKPLBAFVDVEVFULVGV
      HUUIYFPXLYFPVIZXJUUHXLXKVJJZYFEUUKYFXKUULYFRZUULRVKYFUULVNNVLVMVOZUUGYFAU
      UCWNZUUCAUUCXKOBXKRZUUCRZVPZAUUCVQVRNZVSZXMYMYNYAVTWAYQUUDXRYPXRXTWBYPUUD
      XRWDYAYPYRXOXPXPUUAXQXMYRXOQZYMYNXMYRBYFFGZIJZXOXMYFBWCJEZYRUVCQXMYLUUFUV
      BMEUVDXJYLXLXJBUBEYLBWEBUKNSUUSXMXKUVBMXMUUGXKUVBQUUNUUGXKBUUOFGUVBAUUCBO
      UUQWFUUGUUOYFBFUURWGWHNZYIWIUUCYFBUUQWJWKYFBUVBYRUVBRYRRZWLNXMXKUVBIUVEVF
      WMWOZYPUUGUUAXQQZXMUUGYMYNUUNWOZABUUAOXKUUPUUARZWPNZYPXPWQTSWRYQYFUUCXSUU
      TYOYNYAWSWAYQUUEXTYPXRXTWTYPUUEXTWDYAYPYRXOXSXSUUAXQUVGUVKYPXSWQTSWRUUCBY
      SUUAXPXSYRUUQUVJUVFYSRZXAXBYQYRXOYTYCUUAXQYPUVAYAUVGSYPUVHYAUVKSYQYSYBXPX
      SYQUUGYSYBQYPUUGYAUVISABXKYSOUUPUVLXCNXDTXEXFXGXHYFXKYBXQXOCDUUMXORYBRXQR
      XIWK $.
  $}

  $( Every subfield of an ordered field is also an ordered field.  (Contributed
     by Thierry Arnoux, 21-Jan-2018.) $)
  subofld $p |- ( ( F e. oField /\ ( F |`s A ) e. Field )
    -> ( F |`s A ) e. oField ) $=
    ( cofld wcel cress co cfield corng simpr crg isofld simprbi adantr ccrg cdr
    wa isfld crngring 3syl suborng syl2anc sylanbrc ) BCDZBAEFZGDZPZUEUDHDZUDCD
    UCUEIZUFBHDZUDJDZUGUCUIUEUCBGDUIBKLMUFUEUDNDZUJUHUEUDODUKUDQLUDRSABTUAUDKUB
    $.

  ${
    $d n x y z B $.  $d n x y z W $.  $d x y z H $.  $d n x y z .< $.
    isarchiofld.b $e |- B = ( Base ` W ) $.
    isarchiofld.h $e |- H = ( ZRHom ` W ) $.
    isarchiofld.l $e |- .< = ( lt ` W ) $.
    $( Axiom of Archimedes : a characterization of the Archimedean property for
       ordered fields.  (Contributed by Thierry Arnoux, 9-Apr-2018.) $)
    isarchiofld $p |- ( W e. oField ->
      ( W e. Archi <-> A. x e. B E. n e. NN x .< ( H ` n ) ) ) $=
      ( wcel cfv wbr co cn wral eqid 3syl wceq syl wa vy vz cofld carchi c0g cv
      cmg wrex corng cogrp cfield isofld simprbi orngogrp isarchi3 cur orngring
      wi wb crg ringidcl breq2 oveq2 breq2d rexbidv imbi12d ralbidv rspcv pm5.5
      ofldlt1 sylibd cz nnz zrhmulg syl2an rexbidva sylibrd nfv nfra1 nfan cdvr
      cui ad3antrrr simplrr simplrl simpr simplll ringgrp grpidcl pltne syl3anc
      wne cgrp mpd necomd cdr simplbi ccrg isfld drngunit mpbir2and dvrcl breq1
      cbvralv sylib ad2antrr cmulr simp-4l simp-4r simprd simpld simpllr simplr
      sylc syl2anc mulgcl eqeltrd orngrmullt dvrcan1 mulgass2 syl13anc ringlidm
      oveq1d oveq2d 3eqtrd 3brtr3d ex reximdva adantllr ralrimi ralrimiva bitrd
      expr impbid ) FUCJZFUDJZFUEKZUAUFZCLZAUFZDUFZYRFUGKZMZCLZDNUHZURZABOZUABO
      ZYTUUAEKZCLZDNUHZABOZYOFUIJZFUJJYPUUHUSYOFUKJZUUMFULZUMZFUNUAABCUUBDFYQGY
      QPZIUUBPZUOQYOUUHUULYOUUHYTUUAFUPKZUUBMZCLZDNUHZABOZUULYOUUHYQUUSCLZUVBUR
      ZABOZUVCYOUUSBJZUUHUVFURYOUUMFUTJZUVGUUPFUQZBFUUSGUUSPZVAZQUUGUVFUAUUSBYR
      UUSRZUUFUVEABUVLYSUVDUUEUVBYRUUSYQCVBUVLUUDUVADNUVLUUCUUTYTCYRUUSUUAUUBVC
      VDVEVFVGVHSYOUVEUVBABYOUVDUVEUVBUSCUUSFYQUUQUVJIVJUVDUVBVISVGVKYOUUKUVBAB
      YOUUJUVADNYOUUANJZTUUIUUTYTCYOUVHUUAVLJZUUIUUTRZUVMYOUUMUVHUUPUVISZUUAVMZ
      FUUBUUSEUUAHUURUVJVNVOZVDVPVGVQYOUULUUHYOUULTZUUGUABUVSYRBJZTUUFABUVSUVTA
      YOUULAYOAVRUUKABVSVTUVTAVRVTUVSUVTYTBJZUUFUVSUVTUWATZTZYSUUEUWCYSTZYTYRFW
      AKZMZUUICLZDNUHZUUEUWDUWFBJZUBUFZUUICLZDNUHZUBBOZUWHUWDUVHUWAYRFWBKZJZUWI
      YOUVHUULUWBYSUVPWCZUVSUVTUWAYSWDUWDUWOUVTYRYQWLZUVSUVTUWAYSWEZUWDYQYRUWDY
      SYQYRWLZUWCYSWFUWDYOYQBJZUVTYSUWSURZYOUULUWBYSWGZUWDUVHFWMJZUWTUWPFWHZBFY
      QGUUQWIZQUWRUCBBCFYQYRIWJZWKWNWOUWDYOFWPJZUWOUVTUWQTUSZUXBYOUUNUXGYOUUNUU
      MUUOWQUUNUXGFWRJFWSWQSZBFUWNYRYQGUWNPZUUQWTZQXABUWEFUWNYTYRGUXJUWEPZXBZWK
      UVSUWMUWBYSUVSUULUWMYOUULWFUUKUWLAUBBYTUWJRUUJUWKDNYTUWJUUICXCVEXDXEXFUWL
      UWHUBUWFBUWJUWFRUWKUWGDNUWJUWFUUICXCVEVHXNYOUWBYSUWHUUEURUULYOUWBTZYSTZUW
      GUUDDNUXOUVMTZUWGUUDUXPUWGTZUWFYRFXGKZMZUUIYRUXRMZYTUUCCUXQBFCUXRUWFUUIYQ
      YRGUXRPZUUQUXQYOUUMYOUWBYSUVMUWGXHZUUPSUXQUVHUWAUWOUWIUXQYOUVHUYBUVPSZUXQ
      UVTUWAYOUWBYSUVMUWGXIZXJZUXQUWOUVTUWQUXQUVTUWAUYDXKZUXQYQYRUXQYSUWSUXNYSU
      VMUWGXLZUXQYOUWTUVTUXAUYBUXQUVHUXCUWTUYCUXDUXEQUYFUXFWKWNWOUXQYOUXGUXHUYB
      UXIUXKQXAZUXMWKUXQUUIUUTBUXQYOUVMUVOUYBUXOUVMUWGXMZUVRXOZUXQUXCUVNUVGUUTB
      JUXQUVHUXCUYCUXDSUXQUVMUVNUYIUVQSZUXQUVHUVGUYCUVKSZBUUBFUUAUUSGUURXPWKXQU
      YFIUXQYOUXGUYBUXISUXPUWGWFUYGXRUXQUVHUWAUWOUXSYTRUYCUYEUYHBUWEFUXRUWNYTYR
      GUXJUXLUYAXSWKUXQUXTUUTYRUXRMZUUAUUSYRUXRMZUUBMZUUCUXQUUIUUTYRUXRUYJYCUXQ
      UVHUVNUVGUVTUYMUYORUYCUYKUYLUYFBFUUBUXRUUAUUSYRGUURUYAXTYAUXQUYNYRUUAUUBU
      XQUVHUVTUYNYRRUYCUYFBFUXRUUSYRGUYAUVJYBXOYDYEYFYGYHYIWNYGYMYJYKYGYNYL $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Ring homomorphisms - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d c y A $.  $d c y B $.  $d c y F $.  $d c R $.  $d c y S $.  $d c X $.
    $d c .|| $.
    rhmdvdsr.x $e |- X = ( Base ` R ) $.
    rhmdvdsr.m $e |- .|| = ( ||r ` R ) $.
    rhmdvdsr.n $e |- ./ = ( ||r ` S ) $.
    $( A ring homomorphism preserves the divisibility relation.  (Contributed
       by Thierry Arnoux, 22-Oct-2017.) $)
    rhmdvdsr $p |- ( ( ( F e. ( R RingHom S ) /\ A e. X /\ B e. X )
      /\ A .|| B ) -> ( F ` A ) ./ ( F ` B ) ) $=
      ( vy vc co wcel wa cfv wceq wrex syl2anc crh w3a wbr cbs cv simpl1 simpl2
      cmulr eqid rhmf ffvelrnda wral simpll1 simpr adantr rhmmul syl3anc dvdsr2
      ralrimiva biimpac r19.29 fveq2d eqtr3d reximi syl eqeq1d rspcev rexlimivw
      simpl oveq1 dvdsr sylanbrc ) GEFUANOZAHOZBHOZUBZABCUCZPZAGQZFUDQZOZLUEZVS
      FUHQZNZBGQZRZLVTSZVSWEDUCVRVMVNWAVMVNVOVQUFVMVNVOVQUGZVMHVTAGHVTEFGIVTUIZ
      UJZUKTVRMUEZGQZVTOZWLVSWCNZWERZPZMHSZWGVRWMMHULWOMHSZWQVRWMMHVRWKHOZPZVMW
      SWMVMVNVOVQWSUMZVRWSUNZVMHVTWKGWJUKTUSVRWKAEUHQZNZGQZWNRZMHULZXDBRZMHSZWR
      VRXFMHWTVMWSVNXFXAXBVRVNWSWHUOWKAEFXCWCGHIXCUIZWCUIZUPUQUSVRVQVNXIVPVQUNW
      HVNVQXIMHCEXCABIJXJURUTTXGXIPXFXHPZMHSWRXFXHMHVAXLWOMHXLXEWNWEXFXHVIXLXDB
      GXFXHUNVBVCVDVETWMWOMHVATWPWGMHWFWOLWLVTWBWLRWDWNWEWBWLVSWCVJVFVGVHVELVTD
      FWCVSWEWIKXKVKVL $.
  $}

  ${
    $d x y F $.  $d x y R $.  $d x y S $.
    $( A ring homomorphism is also a ring homomorphism for the opposite rings.
       (Contributed by Thierry Arnoux, 27-Oct-2017.) $)
    rhmopp $p |- ( F e. ( R RingHom S )
       -> F e. ( ( oppR ` R ) RingHom ( oppR ` S ) ) ) $=
      ( vx vy co wcel coppr cfv cbs cmulr cur eqid opprringb sylib oppr1 eqcomi
      crg cv wa rhmrcl1 rhmrcl2 rhm1 wceq simpl simprr opprbas syl6eleqr simprl
      crh rhmmul syl3anc opprmul fveq2i 3eqtr4g cgrp wf cplusg wral ringgrp syl
      cghm rhmf rhmghm ad2antrr simplr simpr ghmlin ralrimiva jca jca31 oppradd
      isghm sylibr isrhm2d ) CABUJFGZDEAHIZJIZVQBHIZVQKIZVSKIZVQLIZCVSLIZVRMWBM
      WCMVTMZWAMZVPARGVQRGZABCUAAVQVQMZNOZVPBRGVSRGZABCUBBVSVSMZNOZABWBCWCALIZW
      BAWLVQWGWLMPQBLIZWCBWMVSWJWMMPQUCVPDSZVRGZESZVRGZTZTZWPWNAKIZFZCIZWPCIZWN
      CIZBKIZFZWNWPVTFZCIXDXCWAFWSVPWPAJIZGZWNXHGZXBXFUDVPWRUEWSWPVRXHVPWOWQUFX
      HAVQWGXHMZUGZUHWSWNVRXHVPWOWQUIXLUHWPWNABWTXECXHXKWTMZXEMZUKULXGXACXHAVTW
      TVQWNWPXKXMWGWDUMUNBJIZBWAXEVSXDXCXOMZXNWJWEUMUOVPVQUPGZVSUPGZTXHXOCUQZWN
      WPAURIZFCIXDXCBURIZFUDZEXHUSZDXHUSZTZTCVQVSVBFGVPXQXRYEVPWFXQWHVQUTVAVPWI
      XRWKVSUTVAVPXSYDXHXOABCXKXPVCVPYCDXHVPXJTZYBEXHYFXITCABVBFGZXJXIYBVPYGXJX
      IABCVDVEVPXJXIVFYFXIVGXTYAABWNCWPXHXKXTMZYAMZVHULVIVIVJVKEDXTYAVQVSCXHXOX
      LXOBVSWJXPUGXTAVQWGYHVLYABVSWJYIVLVMVNVO $.
  $}

  ${
    $( Ring homomorphisms preserve unit elements.  (Contributed by Thierry
       Arnoux, 23-Oct-2017.) $)
    elrhmunit $p |- ( ( F e. ( R RingHom S ) /\ A e. ( Unit ` R ) )
      -> ( F ` A ) e. ( Unit ` S ) ) $=
      ( crh co wcel cui cfv wa cur cdsr wbr coppr eqid isunit rhmdvdsr syl31anc
      wb adantr cbs simpl unitss simpr sseldi crg rhmrcl1 ringidcl sylib simpld
      3syl rhm1 breq2d mpbid rhmopp simprd opprbas sylanbrc ) DBCEFGZABHIZGZJZA
      DIZCKIZCLIZMZVCVDCNIZLIZMZVCCHIZGVBVCBKIZDIZVEMZVFVBUSABUAIZGZVKVNGZAVKBL
      IZMZVMUSVAUBZVBUTVNAVNBUTVNOZUTOZUCUSVAUDZUEZVBUSBUFGVPVSBCDUGVNBVKVTVKOZ
      UHUKZVBVRAVKBNIZLIZMZVBVAVRWHJWBVQBWFUTVKWGAWAWDVQOZWFOZWGOZPUIZUJAVKVQVE
      BCDVNVTWIVEOZQRUSVMVFSVAUSVLVDVCVEBCVKDVDWDVDOZULZUMTUNVBVCVLVHMZVIVBDWFV
      GEFGZVOVPWHWPUSWQVABCDUOTWCWEVBVRWHWLUPAVKWGVHWFVGDVNVNBWFWJVTUQWKVHOZQRU
      SWPVISVAUSVLVDVCVHWOUMTUNVECVGVJVDVHVCVJOWNWMVGOWRPUR $.
  $}

$(
  @{
    rhmdvr.u @e |- U = ( Unit ` R ) @.
    rhmdvr.x @e |- X = ( Base ` R ) @.
    rhmdvr.m @e |- ./ = ( /r ` R ) @.
    rhmdvr.d @e |- .|| = ( ||r ` R ) @.
    rhmdvr.n @e |- D = ( /r ` S ) @.
    @( A ring homomorphism preserves ring division.  (Contributed  by Thierry
       Arnoux, 22-Oct-2017.) @)
    rhmdvr @p |- ( ( F e. ( R RingHom S ) /\ A e. X /\ B .|| A ) ->
      ( F ` ( A ./ B ) ) = ( ( F ` A ) D ( F ` B ) ) ) @=
      ? @.
  @}
$)

  ${
    rhmdvd.u $e |- U = ( Unit ` S ) $.
    rhmdvd.x $e |- X = ( Base ` R ) $.
    rhmdvd.d $e |- ./ = ( /r ` S ) $.
    rhmdvd.m $e |- .x. = ( .r ` R ) $.
    $( A ring homomorphism preserves ratios.  (Contributed by Thierry Arnoux,
       22-Oct-2017.) $)
    rhmdvd $p |- ( ( F e. ( R RingHom S ) /\ ( A e. X /\ B e. X /\ C e. X )
      /\ ( ( F ` B ) e. U /\ ( F ` C ) e. U ) ) -> ( ( F ` A ) ./ ( F ` B ) )
         = ( ( F ` ( A .x. C ) ) ./ ( F ` ( B .x. C ) ) ) ) $=
      ( co wcel w3a cfv wceq eqid crh cmulr simp21 simp23 rhmmul syl3anc simp22
      wa simp1 oveq12d crg cbs rhmrcl2 3ad2ant1 wf rhmf ffvelrnd simp3l dvrcan5
      simp3r syl13anc eqtr2d ) IEFUAOPZAJPZBJPZCJPZQZBIRZHPZCIRZHPZUHZQZACGOIRZ
      BCGOIRZDOAIRZVJFUBRZOZVHVJVQOZDOZVPVHDOZVMVNVRVOVSDVMVCVDVFVNVRSVCVGVLUIZ
      VCVDVEVFVLUCZVCVDVEVFVLUDZACEFGVQIJLNVQTZUEUFVMVCVEVFVOVSSWBVCVDVEVFVLUGW
      DBCEFGVQIJLNWEUEUFUJVMFUKPZVPFULRZPVIVKVTWASVCVGWFVLEFIUMUNVMJWGAIVCVGJWG
      IUOVLJWGEFILWGTZUPUNWCUQVCVGVIVKURVCVGVIVKUTWGDFVQHVPVHVJWHKMWEUSVAVB $.
  $}

  $( Ring homomorphisms preserve the inverse of unit elements.  (Contributed by
     Thierry Arnoux, 23-Oct-2017.) $)
  rhmunitinv $p |- ( ( F e. ( R RingHom S ) /\ A e. ( Unit ` R ) )
    -> ( F ` ( ( invr ` R ) ` A ) ) = ( ( invr ` S ) ` ( F ` A ) ) ) $=
    ( co wcel cui cfv cinvr cmulr wceq cur eqid unitlinv sylan unitinvcl sseldi
    crg adantr elrhmunit crh rhmrcl1 fveq2d cbs simpl unitss simpr syl3anc rhm1
    wa rhmmul 3eqtr3d rhmrcl2 syl2anc eqtr4d cmgp cress cgrp unitgrp syl syldan
    unitgrpbas cvv cplusg fvex mgpplusg ressplusg ax-mp grprcan syl13anc mpbid
    wb ) DBCUAEFZABGHZFZUJZABIHZHZDHZADHZCJHZEZVTCIHZHZVTWAEZKZVSWDKZVPWBCLHZWE
    VPVRABJHZEZDHZBLHZDHZWBWHVPWJWLDVMBRFZVOWJWLKBCDUBZBWIVNWLVQAVNMZVQMZWIMZWL
    MZNOUCVPVMVRBUDHZFAWTFWKWBKVMVOUEVPVNWTVRWTBVNWTMZWPUFZVMWNVOVRVNFZWOBVNVQA
    WPWQPOZQVPVNWTAXBVMVOUGQVRABCWIWADWTXAWRWAMZUKUHVMWMWHKVOBCWLDWHWSWHMZUISUL
    VPCRFZVTCGHZFZWEWHKVMXGVOBCDUMZSZABCDTZCWAXHWHWCVTXHMZWCMZXEXFNUNUOVPCUPHZX
    HUQEZURFZVSXHFZWDXHFZXIWFWGVLVMXQVOVMXGXQXJCXHXPXMXPMZUSUTSVMVOXCXRXDVRBCDT
    VAVPXGXIXSXKXLCXHWCVTXMXNPUNXLXHWAXPVSWDVTCXHXPXMXTVBXHVCFWAXPVDHKCGVEXHWAX
    OXPVCXTCWAXOXOMXEVFVGVHVIVJVK $.

$(
  @{
    rhmuntghm.1 @e |- G = ( ( mulGrp ` R ) |`s ( Unit ` R ) ) @.
    rhmuntghm.2 @e |- H = ( ( mulGrp ` S ) |`s ( Unit ` S ) ) @.
    @( A ring homomorphism induces a group homomorphism on the group units
       @)
    rhmuntghm @p |- ( F e. ( R RingHom S ) -> ( F |` G ) e. ( G GrpHom H ) ) @=
      ? @.
  @}
$)

  ${
    $d x .0. $.  $d x .1. $.  $d x F $.  $d x R $.  $d x S $.  $d x U $.
    kerunit.1 $e |- U = ( Unit ` R ) $.
    kerunit.2 $e |- .0. = ( 0g ` S ) $.
    kerunit.3 $e |- .1. = ( 1r ` S ) $.
    $( If a unit element lies in the kernel of a ring homomorphism, then
       ` 0 = 1 ` , i.e. the target ring is the zero ring.  (Contributed by
       Thierry Arnoux, 24-Oct-2017.) $)
    kerunit $p |- ( ( F e. ( R RingHom S ) /\
      ( U i^i ( `' F " { .0. } ) ) =/= (/) ) -> .1. = .0. ) $=
      ( vx co wcel wa wceq cfv cmulr crg eqid syldan adantr crh ccnv csn cin c0
      cima wne wrex cinvr cur elin biimpi adantl simpld rhmrcl1 unitlinv fveq2d
      cv sylan cbs simpl ringinvcl syl2anc unitcl syl rhmmul syl3anc simprd wfn
      wf wb rhmf elpreima 3syl simplbda fvex elsn sylib oveq2d rhmrcl2 ffvelrnd
      ffn ringrz 3eqtrd rhm1 3eqtr3rd reximdva0 id rexlimivw ) EABUAKLZCEUBFUCZ
      UFZUDZUEUGMDFNZJWMUHWNWJWNJWMWJJURZWMLZMZWOAUIOZOZWOAPOZKZEOZAUJOZEOZFDWJ
      WPWOCLZXBXDNZWQXEWOWLLZWPXEXGMZWJWPXHWOCWLUKULUMZUNZWJAQLZXEXFABEUOZXKXEM
      XAXCEAWTCXCWRWOGWRRZWTRZXCRZUPUQUSSWQXBWSEOZWOEOZBPOZKZXPFXRKZFWQWJWSAUTO
      ZLZWOYALZXBXSNWJWPVAWQXKXEYBWJXKWPXLTXJYAACWRWOGXMYARZVBVCZWQXEYCXJYAACWO
      YDGVDVEWSWOABWTXREYAYDXNXRRZVFVGWQXQFXPXRWQXQWKLZXQFNWJWPXGYGWQXEXGXIVHWJ
      XGYCYGWJYABUTOZEVJZEYAVIXGYCYGMVKYAYHABEYDYHRZVLZYAYHEWBYAWOWKEVMVNVOSXQF
      WOEVPVQVRVSWQBQLZXPYHLXTFNWJYLWPABEVTTWQYAYHWSEWJYIWPYKTYEWAYHBXRXPFYJYFH
      WCVCWDWJXDDNWPABXCEDXOIWETWFWGWNWNJWMWNWHWIVE $.
  $}

$(
  @{
    ker2idl.i @e |- I = ( 2Ideal ` R ) @.
    ker2idl.0 @e |- .0. = ( 0g ` S ) @.
    @( The kernel of a ring homomorphism is a two-sided ideal.
       See also ~ keridl . @)
    ker2idl @p |- ( F e. ( R RingHom S ) -> ( `' F " { .0. } ) e. I ) @=
      ? @.
  @}
$)


$(
  @{
    hrmf1.a @e |- A = ( Base ` R ) @.
    hrmf1.b @e |- B = ( Base ` S ) @.
    @( If ` R ` is a field and ` S ` is a nonzero ring then a ring
       homomorphism between ` R ` and ` S ` is injective. @)
    hrmf1 @p |- ( ( F e. ( R RingHom S ) /\ R e. Field /\ S e. NzRing ) ->
      F : A -1-1-> B ) @=
      ? @.
  @}
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Scalar restriction operation
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c |`v $.

  $( Extend class notation with the scalar restriction operation. $)
  cresv $a class |`v $.

  ${
    $d w x $.
    $( Define an operator to restrict the scalar field component of an extended
       structure.  (Contributed by Thierry Arnoux, 5-Sep-2018.) $)
    df-resv $a |- |`v = ( w e. _V , x e. _V |->
      if ( ( Base ` ( Scalar ` w ) ) C_ x , w , ( w sSet <. ( Scalar ` ndx ) ,
      ( ( Scalar ` w ) |`s x ) >. ) ) ) $.
  $}

  ${
    $d x y $.
    $( The scalar restriction is a proper operator, so it can be used with
       ~ ovprc1 .  (Contributed by Thierry Arnoux, 6-Sep-2018.) $)
    reldmresv $p |- Rel dom |`v $=
      ( vy vx cvv cv csca cfv cbs wss cnx cress co cop csts cif cresv reldmmpt2
      df-resv ) ABCCADZEFZGFBDZHRRIEFSTJKLMKNOBAQP $.
  $}

  ${
    $d w x A $.  $d w x B $.  $d w x F $.  $d w x W $.
    resvsca.r $e |- R = ( W |`v A ) $.
    resvsca.f $e |- F = ( Scalar ` W ) $.
    resvsca.b $e |- B = ( Base ` F ) $.
    $( Value of structure restriction.  (Contributed by Thierry Arnoux,
       6-Sep-2018.) $)
    resvval $p |- ( ( W e. X /\ A e. Y ) -> R = if ( B C_ A , W ,
            ( W sSet <. ( Scalar ` ndx ) , ( F |`s A ) >. ) ) ) $=
      ( vw vx wcel co csca cfv cress csts cvv wceq wa wss cnx cop cif elex ovex
      cresv ifcl mpan2 adantr cv cbs simpl fveq2d syl6eqr simpr sseq12d oveq12d
      opeq2d ifbieq12d df-resv ovmpt2ga mpd3an3 syl2an syl5eq ) EFMZAGMZUACEAUH
      NZBAUBZEEUCOPZDAQNZUDZRNZUEZHVGESMZASMZVIVOTZVHEFUFAGUFVPVQVOSMZVRVPVSVQV
      PVNSMVSEVMRUGVJEVNSUIUJUKKLEASSKULZOPZUMPZLULZUBZVTVTVKWAWCQNZUDZRNZUEVOU
      HSVTETZWCATZUAZWDVJVTWGEVNWJWBBWCAWJWBDUMPBWJWADUMWJWAEOPDWJVTEOWHWIUNZUO
      IUPZUOJUPWHWIUQZURWKWJVTEWFVMRWKWJWEVLVKWJWADWCAQWLWMUSUTUSVALKVBVCVDVEVF
      $.

    $( General behavior of trivial restriction.  (Contributed by Thierry
       Arnoux, 6-Sep-2018.) $)
    resvid2 $p |- ( ( B C_ A /\ W e. X /\ A e. Y ) -> R = W ) $=
      ( wss wcel wceq wa cnx csca cfv cress co cop cif resvval iftrue sylan9eqr
      csts 3impb ) BAKZEFLZAGLZCEMUHUINUGCUGEEOPQDARSTUESZUAEABCDEFGHIJUBUGEUJU
      CUDUF $.

    $( Value of nontrivial structure restriction.  (Contributed by Thierry
       Arnoux, 6-Sep-2018.) $)
    resvval2 $p |- ( ( -. B C_ A /\ W e. X /\ A e. Y ) -> R = ( W sSet
        <. ( Scalar ` ndx ) , ( F |`s A ) >. ) ) $=
      ( wss wn wcel cnx csca cfv cress co cop csts wa resvval iffalse sylan9eqr
      wceq cif 3impb ) BAKZLZEFMZAGMZCENOPDAQRSTRZUEUJUKUAUICUHEULUFULABCDEFGHI
      JUBUHEULUCUDUG $.

    $( Base set of a structure restriction.  (Contributed by Thierry Arnoux,
       6-Sep-2018.) $)
    resvsca $p |- ( A e. V -> ( F |`s A ) = ( Scalar ` R ) ) $=
      ( cvv wcel cress co csca cfv wceq w3a fveq2d 3eqtr4a c0 wss wa wi eqeltri
      fvex eqid ressid2 mp3an2 3adant2 resvid2 3expib cnx csts simp2 ovex scaid
      wn cop setsid sylancl resvval2 eqtr4d pm2.61i strfvn ress0 3eqtr4ri fvprc
      0fv 0ex syl5eq oveq1d cresv reldmresv ovprc1 adantr pm2.61ian ) FJKZAEKZD
      ALMZCNOZPZBAUAZVQVRUBWAUCWBVQVRWAWBVQVRQZDFNOZVSVTHWBVRVSDPZVQWBDJKVRWEDW
      DJHFNUEUDABVSDJEVSUFIUGUHUIWCCFNABCDFJEGHIUJRSUKWBUQZVQVRWAWFVQVRQZVSFULN
      OZVSURUMMZNOZVTWGVQVSJKVSWJPWFVQVRUNDALUOJVSNJFUPUSUTWGCWINABCDFJEGHIVARV
      BUKVCVQUQZWAVRWKTALMZTNOZVSVTWHTOTWMWLWHVHTNWHVIUPVDAVEVFWKDTALWKDWDTHFNV
      GVJVKWKCTNWKCFAVLMTGFAVLVMVNVJRSVOVP $.
  $}

  ${
    resvlem.r $e |- R = ( W |`v A ) $.
    resvlem.e $e |- C = ( E ` W ) $.
    resvlem.f $e |- E = Slot N $.
    resvlem.n $e |- N e. NN $.
    resvlem.b $e |- N =/= 5 $.
    $( Other elements of a structure restriction.  (Contributed by Thierry
       Arnoux, 6-Sep-2018.) $)
    resvlem $p |- ( A e. V -> C = ( E ` R ) ) $=
      ( wcel cfv cvv csca w3a fveq2d co c0 wceq cbs wss wa wi resvid2 3expib wn
      eqid cnx cress cop csts resvval2 ndxid c5 ndxarg eqnetri neeqtrri setsnid
      scandx syl6eqr pm2.61i cresv reldmresv ovprc1 syl5eq str0 fvprc pm2.61ian
      eqtr4d adantr syl6reqr ) AFMZCDNZGDNZBGOMZVNVOVPUAZGPNZUBNZAUCZVQVNUDVRUE
      WAVQVNVRWAVQVNQCGDAVTCVSGOFHVSUIZVTUIZUFRUGWAUHZVQVNVRWDVQVNQZVOGUJPNZVSA
      UKSZULUMSZDNVPWECWHDAVTCVSGOFHWBWCUNRWGWFDGDEJKUOUJDNZUPWFWIEUPDEJKUQLURV
      AUSUTVBUGVCVQUHZVRVNWJVOTVPWJVOTDNTWJCTDWJCGAVDSTHGAVDVEVFVGRDEJVHVBGDVIV
      KVLVJIVM $.
  $}

  ${
    resvbas.1 $e |- H = ( G |`v A ) $.
    ${
      resvbas.2 $e |- B = ( Base ` G ) $.
      $( ` Base ` is unaffected by scalar restriction.  (Contributed by Thierry
         Arnoux, 6-Sep-2018.) $)
      resvbas $p |- ( A e. V -> B = ( Base ` H ) ) $=
        ( cbs c1 df-base 1nn c5 1re 1lt5 ltneii resvlem ) ABDHIECFGJKILMNOP $.
    $}

    ${
      resvplusg.2 $e |- .+ = ( +g ` G ) $.
      $( ` +g ` is unaffected by scalar restriction.  (Contributed by Thierry
         Arnoux, 6-Sep-2018.) $)
      resvplusg $p |- ( A e. V -> .+ = ( +g ` H ) ) $=
        ( cplusg c2 df-plusg 2nn c5 2re 2lt5 ltneii resvlem ) ABDHIECFGJKILMNOP
        $.
    $}

    ${
      resvvsca.2 $e |- .x. = ( .s ` G ) $.
      $( ` .s ` is unaffected by scalar restriction.  (Contributed by Thierry
         Arnoux, 6-Sep-2018.) $)
      resvvsca $p |- ( A e. V -> .x. = ( .s ` H ) ) $=
        ( cvsca c6 df-vsca 6nn c5 5re 5lt6 gtneii resvlem ) ABDHIECFGJKLIMNOP
        $.
    $}

    ${
      resvmulr.2 $e |- .x. = ( .r ` G ) $.
      $( ` .s ` is unaffected by scalar restriction.  (Contributed by Thierry
         Arnoux, 6-Sep-2018.) $)
      resvmulr $p |- ( A e. V -> .x. = ( .r ` H ) ) $=
        ( cmulr c3 df-mulr 3nn c5 3re 3lt5 ltneii resvlem ) ABDHIECFGJKILMNOP
        $.
    $}

    ${
      $d x y A $.  $d x y G $.  $d x y H $.  $d x y V $.
      resv0g.2 $e |- .0. = ( 0g ` G ) $.
      $( ` 0g ` is unaffected by scalar restriction.  (Contributed by Thierry
         Arnoux, 6-Sep-2018.) $)
      resv0g $p |- ( A e. V -> .0. = ( 0g ` H ) ) $=
        ( vx vy wcel c0g cfv cbs eqidd eqid resvbas cv wa cplusg resvplusg
        oveqdr grpidpropd syl5eq ) ADJZEBKLCKLGUDHIBMLZBCUDUENAUEBCDFUEOPUDHQUE
        JIQUEJRHIBSLZCSLAUFBCDFUFOTUAUBUC $.
    $}

    ${
      $d e x A $.  $d e x G $.  $d e x H $.  $d e x V $.
      resv1r.2 $e |- .1. = ( 1r ` G ) $.
      $( ` 1r ` is unaffected by scalar restriction.  (Contributed by Thierry
         Arnoux, 6-Sep-2018.) $)
      resv1r $p |- ( A e. V -> .1. = ( 1r ` H ) ) $=
        ( ve vx wcel cv cbs cfv cmulr co wceq wa wral cio eqid resvbas resvmulr
        cur eleq2d oveqd eqeq1d anbi12d raleqbidv iotabidv dfur2 3eqtr4g ) AEJZ
        HKZCLMZJZUMIKZCNMZOZUPPZUPUMUQOZUPPZQZIUNRZQZHSUMDLMZJZUMUPDNMZOZUPPZUP
        UMVGOZUPPZQZIVERZQZHSBDUCMZULVDVNHULUOVFVCVMULUNVEUMAUNCDEFUNTZUAZUDULV
        BVLIUNVEVQULUSVIVAVKULURVHUPULUQVGUMUPAUQCDEFUQTZUBZUEUFULUTVJUPULUQVGU
        PUMVSUEUFUGUHUGUIIUNCUQBHVPVRGUJIVEDVGVOHVETVGTVOTUJUK $.
    $}

    ${
      $d x y A $.  $d x y G $.  $d x y H $.  $d x y V $.
      $( Scalar restriction preserves commutative monoids.  (Contributed by
         Thierry Arnoux, 6-Sep-2018.) $)
      resvcmn $p |- ( A e. V -> ( G e. CMnd <-> H e. CMnd ) ) $=
        ( vx vy wcel cbs cfv eqidd eqid resvbas cv wa cplusg resvplusg cmnpropd
        oveqdr ) ADHZFGBIJZBCTUAKAUABCDEUALMTFNUAHGNUAHOFGBPJZCPJAUBBCDEUBLQSR
        $.
    $}
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The commutative ring of gaussian integers
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( The gaussian integers form a commutative ring.  (Contributed by Thierry
     Arnoux, 18-Mar-2018.) $)
  gzcrng $p |- ( CCfld |`s Z[i] ) e. CRing $=
    ( ccnfld ccrg wcel cgz csubrg cfv cress cncrng gzsubrg eqid subrgcrng mp2an
    co ) ABCDAEFCADGMZBCHIDANNJKL $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The archimedean ordered field of real numbers
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d a b c $.
    $( The real numbers form an ordered field.  (Contributed by Thierry Arnoux,
       21-Jan-2018.) $)
    reofld $p |- RRfld e. oField $=
      ( va vb vc crefld wcel refld cc0 cv cle wa cmul co wi cr wral ax-mp caddc
      wbr ex rebase cofld cfield corng crg cogrp cdr ccrg simplbi drngring mp2b
      isfld cgrp comnd ringgrp cmnd grpmnd retos w3a simpl simpr1 simpr2 simpr3
      ctos leadd1dd 3anassrs 3impa rgen3 replusg rele2 isomnd mpbir3an mpbir2an
      isogrp mulge0 an4s rgen2a re0g remulr isorng isofld ) DUAEDUBEZDUCEZFWBDU
      DEZDUEEZGAHZIRZGBHZIRZJZGWEWGKLIRZMZBNOANOWADUFEZWCFWAWLDUGEDUKUHDUIUJZWD
      DULEZDUMEZWCWNWMDUNPZWODUOEZDVCEWEWGIRZWECHZQLWGWSQLIRZMZCNOBNOANOWNWQWPD
      UPPUQXAABCNNNWENEZWGNEZWSNEZXAXBXCJZXDJWRWTXBXCXDWRWTXBXCXDWRURZJWEWGWSXB
      XFUSXBXCXDWRUTXBXCXDWRVAXBXCXDWRVBVDVESVFVGNQIDABCTVHVIVJVKDVMVLWKABNXEWI
      WJXBWFXCWHWJWEWGVNVOSVPNDKIGABTVQVRVIVSVKDVTVL $.
  $}

  $( The nonnegative integers form an ordered monoid.  (Contributed by Thierry
     Arnoux, 23-Mar-2018.) $)
  nn0omnd $p |- ( CCfld |`s NN0 ) e. oMnd $=
    ( crefld cn0 cress co ccnfld comnd cr df-refld oveq1i cvv wcel wceq nn0ssre
    wss reex ressabs mp2an cmnd simprbi ax-mp eqtri cofld reofld corng orngogrp
    cfield isofld cgrp isogrp 3syl csubmnd cfv nn0subm submmnd eqeltri submomnd
    cogrp eqid eqeltrri ) ABCDZEBCDZFUTEGCDZBCDZVAAVBBCHIGJKBGNVCVALOMGBEJPQUAZ
    AFKZUTRKUTFKAUBKZVEUCVFAUDKZAUQKZVEVFAUFKVGAUGSAUEVHAUHKVEAUISUJTUTVARVDBEU
    KULKVARKUMBVAEVAURUNTUOBAUPQUS $.

  ${
    $d n x $.
    $( The field of the real numbers is Archimedean.  See also ~ arch .
       (Contributed by Thierry Arnoux, 9-Apr-2018.) $)
    rearchi $p |- RRfld e. Archi $=
      ( vx vn crefld carchi wcel cv czrh cfv clt wbr cn wrex cr cofld wral eqid
      wb c1 co wceq reofld rebase relt isarchiofld ax-mp arch cz nnz cmg cfield
      cmul crg cdr refld ccrg isfld simplbi drngring mp2b re1r zrhmulg mpan 1re
      remulg mpan2 zcn mulid1d 3eqtrd breq2d syl rexbiia sylibr mprgbir ) CDEZA
      FZBFZCGHZHZIJZBKLZAMCNEVNVTAMOQUAAMIBVQCUBVQPZUCUDUEVOMEVOVPIJZBKLVTVOBUF
      VSWBBKVPKEVPUGEZVSWBQVPUHWCVRVPVOIWCVRVPRCUIHZSZVPRUKSZVPCULEZWCVRWETCUJE
      ZCUMEZWGUNWHWICUOECUPUQCURUSCWDRVQVPWAWDPUTVAVBWCRMEWEWFTVCRVPVDVEWCVPVPV
      FVGVHVIVJVKVLVM $.
  $}

  $( The monoid of the nonnegative integers is Archimedean.  (Contributed by
     Thierry Arnoux, 16-Sep-2018.) $)
  nn0archi $p |- ( CCfld |`s NN0 ) e. Archi $=
    ( crefld cn0 cress co ccnfld carchi cr df-refld oveq1i csubrg cfv wcel wceq
    wss cdr resubdrg nn0ssre mp2an wa csubmnd simpli ressabs eqtri ctos rearchi
    retos pm3.2i nn0subm wb csubg subrgsubg subgsubm subsubm mpbir2an submarchi
    mp2b ax-mp eqeltrri ) ABCDZEBCDZFUSEGCDZBCDZUTAVABCHIGEJKZLZBGNZVBUTMVDAOLP
    UAZQGBEVCUBRUCAUDLZAFLZSBATKLZUSFLVGVHUFUEUGVIBETKZLZVEUHQGVJLZVIVKVESUIVDG
    EUJKLVLVFGEUKGEULUPBGEAHUMUQUNBAUORUR $.

  ${
    $d q r w x W $.
    xrge0slmod.1 $e |- G = ( RR*s |`s ( 0 [,] +oo ) ) $.
    xrge0slmod.2 $e |- W = ( G |`v ( 0 [,) +oo ) ) $.
    $( The extended nonnegative real numbers form a semiring left module.  One
       could also have used ` subringAlg ` to get the same structure.
       (Contributed by Thierry Arnoux, 6-Sep-2018.) $)
    xrge0slmod $p |- W e. SLMod $=
      ( wcel ccnfld cc0 cpnf co cress cxmu cxad wceq c1 cvv ax-mp sseldi cr cxr
      cfv vr vw vx vq cslmd ccmn cico csrg cv cicc caddc w3a cmul wral xrge0cmn
      wa cxrs eqeltri wb ovex resvcmn rge0srg icossicc simplr ge0xmulcl syl2anc
      simprr simprl xrge0adddi rge0ssre simpll rexadd oveq1d xrge0adddir eqtr3d
      mpbi syl3anc 3jca rexmul rexrd iccssxr xmulass xmulid2 syl jca ralrimivva
      xmul02 rgen2a xrge0base fveq2i eqtr4i resvbas cplusg xrge0plusg resvplusg
      cbs cvsca ax-xrsvsca ressvsca resvvsca xrge00 resv0g crefld csca df-refld
      c0g cin oveq1i reex ressress mp2an eqtri ax-xrssca resssca rebase resvsca
      incom df-ss eqtr3i oveq2i 3eqtr3ri ax-resscn sstri eqid cnfldbas ressbas2
      wss cnfldadd ressplusg cmulr cnfldmul ressmulr crg cur cdr cndrng wbr 1re
      cc mp3an drngring cle 0le1 ltpnf 3pm3.2i pnfxr elico2 mpbir cnfld1 ress1r
      clt 0re cmnd ringmnd mp2b 0e0icopnf cnfld0 ress0g isslmd mpbir3an ) BUEEB
      UFEZFGHUGIZJIZUHEUAUIZUBUIZKIZGHUJIZEZUVDUVEUCUIZLIKIUVFUVDUVIKILIMZUDUIZ
      UVDUKIZUVEKIZUVKUVEKIUVFLIZMZULZUVKUVDUMIZUVEKIZUVKUVFKIZMZNUVEKIUVEMZGUV
      EKIGMZULZUPZUBUVGUNUCUVGUNZUAUVBUNUDUVBUNAUFEZUVAAUQUVGJIZUFCUOURUVBOEZUW
      FUVAUSGHUGUTZUVBABODVAPVPVBUWEUDUAUVBUVKUVBEZUVDUVBEZUPZUWDUCUBUVGUVGUWLU
      VIUVGEZUVEUVGEZUPZUPZUVPUWCUWPUVHUVJUVOUWPUVDUVGEZUWNUVHUWPUVBUVGUVDGHVCZ
      UWJUWKUWOVDZQZUWLUWMUWNVGZUVDUVEVEVFUWPUWNUWMUWQUVJUXAUWLUWMUWNVHUWTUVEUV
      IUVDVIVQUWPUVKUVDLIZUVEKIZUVMUVNUWPUXBUVLUVEKUWPUVKREZUVDREZUXBUVLMUWPUVB
      RUVKVJUWJUWKUWOVKZQZUWPUVBRUVDVJUWSQZUVKUVDVLVFVMUWPUVKUVGEUWQUWNUXCUVNMU
      WPUVBUVGUVKUWRUXFQUWTUXAUVKUVDUVEVNVQVOVRUWPUVTUWAUWBUWPUVKUVDKIZUVEKIZUV
      RUVSUWPUXIUVQUVEKUWPUXDUXEUXIUVQMUXGUXHUVKUVDVSVFVMUWPUVKSEUVDSEUVESEZUXJ
      UVSMUWPUVKUXGVTUWPUVDUXHVTUWPUVGSUVEGHWAUXAQZUVKUVDUVEWBVQVOUWPUXKUWAUXLU
      VEWCWDUWPUXKUWBUXLUVEWGWDVRWEWFWHUCUBLUKKUMNUVCUVBGUVGBGUAUDUWHUVGBWPTMUW
      IUVBUVGABODUVGUWGWPTAWPTWIAUWGWPCWJWKWLPUWHLBWMTMUWIUVBLABODLUWGWMTAWMTWN
      AUWGWMCWJWKWOPUWHKBWQTMUWIUVBKABODUVGOEZKAWQTMGHUJUTZUVGKUQAOCWRWSPWTPUWH
      GBXFTMUWIUVBABOGDGUWGXFTAXFTXAAUWGXFCWJWKXBPXCUVBJIZFRUVBXGZJIZBXDTZUVCUX
      OFRJIZUVBJIZUXQXCUXSUVBJXEXHROEUWHUXTUXQMXIUWIRUVBFOOXJXKXLUWHUXOUXRMUWIU
      VBRBXCOADUXMXCAXDTMUXNUVGXCUQAOCXMXNPXOXPPUXPUVBFJUVBRXGZUXPUVBUVBRXQUVBR
      YGUYAUVBMVJUVBRXRVPXSXTYAUVBYSYGZUVBUVCWPTMUVBRYSVJYBYCZUVBYSUVCFUVCYDZYE
      YFPUWHUKUVCWMTMUWIUVBUKFUVCOUYDYHYIPUWHUMUVCYJTMUWIUVBFUVCUMOUYDYKYLPFYME
      ZNUVBEZUYBNUVCYNTMFYOEZUYEYPFUUAZPUYFNREZGNUUBYQZNHUUKYQZULZUYIUYJUYKYRUU
      CUYIUYKYRNUUDPUUEGREHSEUYFUYLUSUULUUFGHNUUGXKUUHUYCUVBYSFUVCNUYDYEUUIUUJY
      TFUUMEZGUVBEUYBGUVCXFTMUYGUYEUYMYPUYHFUUNUUOUUPUYCUVBYSFUVCGUYDYEUUQUURYT
      UUSUUT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Matrices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The symmetric group
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d D p $.  $d G p $.  $d P p $.  $d Q p $.  $d V p $.
    symgfcoeu.g $e |- G = ( Base ` ( SymGrp ` D ) ) $.
    $( Uniqueness property of permutations.  (Contributed by Thierry Arnoux,
       22-Aug-2020.) $)
    symgfcoeu $p |- ( ( D e. V /\ P e. G /\ Q e. G )
      -> E! p e. G Q = ( P o. p ) ) $=
      ( wcel ccom wceq cfv eqid syl2anc eqeltrrd wa wf1o symgbasf1o 3syl coeq1d
      coass w3a ccnv cv wi wral csymg cminusg symginv 3ad2ant2 symggrp 3ad2ant1
      wreu cgrp simp2 grpinvcl simp3 cplusg co symgov symgcl cid cres f1ococnv2
      syl5eqr wf f1of fcoi2 syl eqtr2d simpr coeq2d a1i f1ococnv1 eqtr3d simplr
      ad2antrr 3eqtrrd ex ralrimiva eqidd coeq2 eqeq12d eqreu syl3anc ) AEHZBDH
      ZCDHZUAZBUBZCIZDHZCBWJIZJZCBFUCZIZJZWNWJJZUDZFDUEWPFDULWHWIDHZWGWKWHBAUFK
      ZUGKZKZWIDWFWEXBWIJWGADBWTXAWTLZGXALZUHUIWHWTUMHZWFXBDHWEWFXEWGAWTEXCUJUK
      WEWFWGUNZDWTXABGXDUOMNWEWFWGUPZWSWGOWICWTUQKZURWJDADXHWTWICXCGXHLZUSADXHW
      TWICXCGXIUTNMWHWLVAAVBZCIZCWHWLBWIIZCIXKBWICTWHXLXJCWHWFAABPZXLXJJXFADBWT
      XCGQZAABVCRSVDWHAACVEZXKCJWHWGAACPXOXGADCWTXCGQAACVFRAACVGVHVIWHWRFDWHWND
      HZOZWPWQXQWPOZWJWIWOIZXJWNIZWNXRCWOWIXQWPVJVKXRWIBIZWNIZXSXTYBXSJXRWIBWNT
      VLWHYBXTJXPWPWHYAXJWNWHWFXMYAXJJXFXNAABVMRSVPVNXRAAWNVEZXTWNJXRXPAAWNPYCW
      HXPWPVOADWNWTXCGQAAWNVFRAAWNVGVHVQVRVSWPWMFDWJWQCCWOWLWQCVTWNWJBWAWBWCWD
      $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Permutation Signs
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d D p $.  $d G p $.
    psgndmfi.s $e |- S = ( pmSgn ` D ) $.
    psgndmfi.g $e |- G = ( Base ` ( SymGrp ` D ) ) $.
    $( For a finite base set, the permutation sign is defined for all
       permutations.  (Contributed by Thierry Arnoux, 22-Aug-2020.) $)
    psgndmfi $p |- ( D e. Fin -> S Fn G ) $=
      ( vp cfn wcel cv cid cdif cdm crab wfn csymg cfv eqid psgnfn wral wceq
      sygbasnfpfi ralrimiva rabid2 sylibr eqcomd fneq2d mpbii ) AGHZBFIZJKLGHZF
      CMZNBCNCAUKAOPZBFULQZEUKQDRUHUKCBUHCUKUHUJFCSCUKTUHUJFCCAUIULUMEUAUBUJFCU
      CUDUEUFUG $.
  $}

  ${
    psgnid.s $e |- S = ( pmSgn ` D ) $.
    $( Permutation sign of the identity.  (Contributed by Thierry Arnoux,
       21-Aug-2020.) $)
    psgnid $p |- ( D e. Fin -> ( S ` ( _I |` D ) ) = 1 ) $=
      ( cfn wcel cid cres cfv csymg c0g c1 eqid symgid fveq2d ccnfld cmgp co cc
      wceq ax-1cn cneg cpr cress cghm psgnghm2 wss crg cnring ringmgp ax-mp 1ex
      cmnd prid1 negcli prssi mp2an cnfldbas mgpbas cnfld1 ringidval ress0g syl
      mp3an ghmid eqtrd ) ADEZFAGZBHAIHZJHZBHZKVFVGVIBAVHDVHLZMNVFBVHOPHZKKUAZU
      BZUCQZUDQEVJKSAVHVOBVKCVOLZUEVHVOBVIKVILVLULEZKVNEVNRUFZKVOJHSOUGEVQUHOVL
      VLLZUIUJKVMUKUMKREVMREVRTKTUNKVMRUOUPVNRVLVOKVPROVLVSUQUROKVLVSUSUTVAVCVD
      VBVE $.
  $}

  ${
    pmtrprfv2.t $e |- T = ( pmTrsp ` D ) $.
    $( In a transposition of two given points, each maps to the other.
       (Contributed by Thierry Arnoux, 22-Aug-2020.) $)
    pmtrprfv2 $p |- ( ( D e. V /\ ( X e. D /\ Y e. D /\ X =/= Y ) ) ->
      ( ( T ` { X , Y } ) ` Y ) = X ) $=
      ( wcel wne w3a wa cpr prcom fveq2i fveq1i wceq ancom necom anbi12i df-3an
      cfv 3bitr4i biimpi anim2i pmtrprfv syl syl5eqr ) ACGZDAGZEAGZDEHZIZJZEDEK
      ZBTZTEEDKZBTZTZDEUPUNUOUMBEDLMNULUGUIUHEDHZIZJUQDOUKUSUGUKUSUHUIJZUJJUIUH
      JZURJUKUSUTVAUJURUHUIPDEQRUHUIUJSUIUHURSUAUBUCABCEDFUDUEUF $.
  $}

  ${
    psgnfzto1st.d $e |- D = ( 1 ... N ) $.
    ${
      pmtrto1cl.t $e |- T = ( pmTrsp ` D ) $.
      $( Useful lemma for the following theorems.  (Contributed by Thierry
         Arnoux, 21-Aug-2020.) $)
      pmtrto1cl $p |- ( ( K e. NN /\ ( K + 1 ) e. D )
        -> ( T ` { K , ( K + 1 ) } ) e. ran T ) $=
        ( cn wcel c1 caddc co wa cfn cpr wbr cle w3a elfz1b nnred syl3anc simpl
        wss c2o cen cfv crn cfz fzfi eqeltri a1i simpr syl6eleq simp2d readdcld
        sylib 1red lep1d simp3d letrd 3jca sylibr syl6eleqr prssi syl2anc ltp1d
        wne ltned pr2nelem eqid pmtrrn ) CGHZCIJKZAHZLZAMHZCVLNZAUBZVPUCUDOZVPB
        UEBUFZHVOVNAIDUGKZMEIDUHUIUJVNCAHZVMVQVNCVTAVNVKDGHZCDPOZQCVTHVNVKWBWCV
        KVMUAZVNVLGHZWBVLDPOZVNVLVTHWEWBWFQVNVLAVTVKVMUKZEULDVLRUOZUMZVNCVLDVNC
        WDSZVNCIWJVNUPUNVNDWISVNCWJUQVNWEWBWFWHURUSUTDCRVAEVBZWGCVLAVCVDVNWAVMC
        VLVFVRWKWGVNCVLWJVNCWJVEVGCVLAAVHTAVPVSBMFVSVIVJT $.
    $}

    $d D i x $.  $d K i x $.
    $( Lemma for ~ psgnfzto1st .  Our permutation of rank ` ( n + 1 ) ` can be
       written as a permutation of rank ` n ` composed with a transposition.
       (Contributed by Thierry Arnoux, 21-Aug-2020.) $)
    psgnfzto1stlem $p |- ( ( K e. NN /\ ( K + 1 ) e. D ) -> ( i e. D |->
      if ( i = 1 , ( K + 1 ) , if ( i <_ ( K + 1 ) , ( i - 1 ) , i ) ) )
      = ( ( ( pmTrsp ` D ) ` { K , ( K + 1 ) } ) o. ( i e. D |->
      if ( i = 1 , K , if ( i <_ K , ( i - 1 ) , i ) ) ) ) ) $=
      ( cn wcel c1 wa wceq cle wbr cmin cif cfv a1i simpr nnred syl ad3antrrr
      vx caddc co cv cmpt cpr cpmtr ccom wfn ovex vex ifex eqid fnmpti crn wf1o
      wss pmtrto1cl pmtrff1o f1ofn 3syl iftrued cfz simpl fz1ssnn eleq2i biimpi
      wral adantl sseldi elfz1b simp2bi lep1d elfzle2 letrd nnzd fznn mpbir2and
      cz syl6eleqr ad2antrr eqeltrd iffalsed adantr eqsstri simpllr nn1m1nn ord
      wb wn wo mpd cr lem1d syl6eleq jca pm2.61dan ralrimiva fnmpt rnmptss fnco
      mpbird syl3anc fveq2d cfn wne fzfi eqeltri sylibr ltp1d pmtrprfv syl13anc
      ltned eqtr2d ad4antr pmtrprfv2 clt breqtrrd ltnled mpbid eqtrd recnd 1cnd
      oveq1d pncand 3eqtr4rd simplr necomd syl2anc w3a 3jca ex pmtrprfv3 ifeqda
      imp eqtr4d cvv breq1 ifbieq12d ifbieq2d ltlend simpll nnleltp1 simp-5r c2
      cuz elnn1uz2 sylib uz2m1nn cc npcand necon3d pm2.61dane con3d lttrd eqidd
      lelttrd eqeq1 oveq1 id keepel ifexg fvmptd fvmpt wfun cdm funmpt eleqtrrd
      dmmptg fvco 3eqtr4d eqfnfvd ) CFGZCHUBUCZAGZIZUAABABUDZHJZUVNUVQUVNKLZUVQ
      HMUCZUVQNZNZUEZCUVNUFAUGOZOZBAUVRCUVQCKLZUVTUVQNZNZUEZUHZUWCAUIUVPBAUWBUW
      CUVRUVNUWACHUBUJZUVSUVTUVQUVQHMUJBUKULULUWCUMZUNPUVPUWEAUIZUWIAUIZUWIUOAU
      QZUWJAUIUVPUWEUWDUOZGAAUWEUPUWMAUWDCDEUWDUMZURAUWPUWDUWEUWQUWPUMUSAAUWEUT
      VAUVPUWHAGZBAVHZUWNUVPUWRBAUVPUVQAGZIZUVRUWRUXAUVRIZUWHCAUXBUVRCUWGUXAUVR
      QVBUVPCAGZUWTUVRUVPCHDVCUCZAUVPCUXDGZUVMCDKLZUVMUVOVDZUVPCUVNDUVPCUXGRZUV
      PUVNUVPUXDFUVNDVEZUVOUVNUXDGZUVMUVOUXJAUXDUVNEVFZVGZVIZVJRZUVPDUVODFGZUVM
      UVOUXJUXOUXLUXJUVNFGUXOUVNDKLZDUVNVKVLSZVIZRZUVPCUXHVMZUVPUXJUXPUXMUVNHDV
      NSVOUVPDVSGZUXEUVMUXFIWIUVPDUXRVPZCDVQSVREVTZWAWBUXAUVRWJZIZUWHUWGAUYEUVR
      CUWGUXAUYDQZWCUYEUWFUWGAGUYEUWFIZUWGUVTAUYGUWFUVTUVQUYEUWFQVBUYGUVTUXDAUY
      GUVTUXDGZUVTFGZUVTDKLZIZUYGUYIUYJUYGUYDUYIUYEUYDUWFUYFWDUYGUVRUYIUYGUVQFG
      UVRUYIWKUYGAFUVQAUXDFEUXIWEZUVPUWTUYDUWFWFZVJZUVQWGSWHWLZUYGUVTUVQDUYGUVT
      UYORUYGUVQUYNRZUVPDWMGZUWTUYDUWFUXSTUYGUVQUYPWNUYGUVQUXDGUVQDKLUYGUVQAUXD
      UYMEWOUVQHDVNSVOWPUVPUYHUYKWIZUWTUYDUWFUVPUYAUYRUYBUVTDVQSTXBEVTWBUYEUWFW
      JZIZUWGUVQAUYTUWFUVTUVQUYEUYSQWCUVPUWTUYDUYSWFWBWQWBWQWRZBAUWHUWIAUWIUMZW
      SSUVPUWSUWOVUABAUWHAUWIVUBWTSAAUWEUWIXAXCUVPUAUDZAGZIZVUCHJZUVNVUCUVNKLZV
      UCHMUCZVUCNZNZVUCUWIOZUWEOZVUCUWCOZVUCUWJOZVUEVUJVUFCVUCCKLZVUHVUCNZNZUWE
      OZVULVUEVUFUVNVUIVURVUEVUFIZVURCUWEOZUVNVUSVUQCUWEVUSVUFCVUPVUEVUFQVBXDUV
      PVUTUVNJZVUDVUFUVPAXEGZUXCUVOCUVNXFZVVAVVBUVPAUXDXEEHDXGXHZPUYCUVPUXJUVOU
      XMUXKXIZUVPCUVNUXHUVPCUXHXJZXMZAUWDXECUVNUWQXKXLWAXNVUEVUFWJZIZVUIVUPUWEO
      ZVURVVIVUGVUHVUCVVJVVIVUGIZVUHVVJJVUCUVNVVKVUCUVNJZIZUVNUWEOZCVVJVUHVVMVV
      BUXCUVOVVCVVNCJVVBVVMVVDPUVPUXCVUDVVHVUGVVLUYCXOUVPUVOVUDVVHVUGVVLVVEXOUV
      PVVCVUDVVHVUGVVLVVGXOAUWDXECUVNUWQXPXLVVMVUPUVNUWEVVMVUPVUCUVNVVMVUOVUHVU
      CVVMCVUCXQLVUOWJZVVMCUVNVUCXQUVPCUVNXQLZVUDVVHVUGVVLVVFXOVVKVVLQZXRVVMCVU
      CUVPCWMGZVUDVVHVUGVVLUXHXOZVUEVUCWMGZVVHVUGVVLVUEVUCVUEAFVUCUYLUVPVUDQZVJ
      ZRZTXSXTWCVVQYAXDVVMVUHUVNHMUCCVVMVUCUVNHMVVQYDVVMCHVVMCVVSYBVVMYCYEYAYFV
      VKVUCUVNXFZIZVVJVUHUWEOZVUHVWEVUPVUHUWEVWEVUOVUHVUCVWEVUOVUCUVNXQLZVWEVWG
      VUGUVNVUCXFZVVIVUGVWDYGVWEVUCUVNVVKVWDQYHVWEVUCUVNVUEVVTVVHVUGVWDVWCTZUVP
      UVNWMGZVUDVVHVUGVWDUXNXOZUUAVRZVWEVUCFGZUVMVUOVWGWIVUEVWMVVHVUGVWDVWBTZVU
      EUVMVVHVUGVWDUVMUVOVUDUUBZTZVUCCUUCYIXBVBXDVWEVVBUXCUVOVUHAGZYJVVCCVUHXFZ
      UVNVUHXFZYJVWFVUHJVVBVWEVVDPVWEUXCUVOVWQUVPUXCVUDVVHVUGVWDUYCXOUVMUVOVUDV
      VHVUGVWDUUDZVWEVUHUXDAVWEVUHFGZUXOVUHDKLZYJVUHUXDGVWEVXAUXOVXBVWEVUCUUEUU
      FOGZVXAVWEVVHVXCVVIVVHVUGVWDVUEVVHQZWAVWEVUFVXCVWEVWMVUFVXCWKVWNVUCUUGUUH
      WHWLVUCUUISZVWEUVOUXOVWTUXQSVWEVUHVUCDVWEVUHVXERZVWIVWEUVMUVOUYQVWPVWTUXS
      YIVWEVUCVWIWNZVWEVUCUXDGVUCDKLVWEVUCAUXDVUEVUDVVHVUGVWDVWATEWOVUCHDVNSVOY
      KDVUHVKXIEVTYKVWEVVCVWRVWSVWEUVMUVOVVCVWPVWTVVGYIVVKVWDVWRVVKCVUHVUCUVNVV
      KCVUHJZVVLVVKVXHIZUVNVUHHUBUCVUCVXICVUHHUBVVKVXHQYDVXIVUCHVUEVUCUUJGVVHVU
      GVXHVUEVUCVWCYBTVXIYCUUKXNYLUULYOVWEVUHUVNVWEVUHUVNVXFVWEVUHVUCUVNVXFVWIV
      WKVXGVWLUUQXMYHYKAUWDXECUVNVUHUWQYMXCXNUUMVVIVUGWJZIZVVJVUCUWEOZVUCVXKVUP
      VUCUWEVXKVUOVUHVUCVVIVXJVVOVVIVUOVUGVVIVUOVUGVVIVUOIVUCCUVNVUEVVTVVHVUOVW
      CWAUVPVVRVUDVVHVUOUXHTUVPVWJVUDVVHVUOUXNTVVIVUOQUVPCUVNKLVUDVVHVUOUXTTVOY
      LUUNYOWCXDVXKVVBUXCUVOVUDYJVVCCVUCXFZVWHYJVXLVUCJVVBVXKVVDPVXKUXCUVOVUDUV
      PUXCVUDVVHVXJUYCTUVPUVOVUDVVHVXJVVETVUEVUDVVHVXJVWAWAYKVXKVVCVXMVWHUVPVVC
      VUDVVHVXJVVGTVXKCVUCUVPVVRVUDVVHVXJUXHTZVXKCUVNVUCVXNUVPVWJVUDVVHVXJUXNTZ
      VUEVVTVVHVXJVWCWAZUVPVVPVUDVVHVXJVVFTVXKUVNVUCXQLVXJVVIVXJQVXKUVNVUCVXOVX
      PXSXBZUUOXMVXKUVNVUCVXOVXQXMYKAUWDXECUVNVUCUWQYMXCXNYNVVIVUQVUPUWEVVIVUFC
      VUPVXDWCXDYPYNVUEVUKVUQUWEVUEBVUCUWHVUQAUWIYQVUEUWIUUPUVQVUCJZUWHVUQJVUEV
      XRUVRVUFUWGVUPCUVQVUCHUURZVXRUWFVUOUVTUVQVUHVUCUVQVUCCKYRUVQVUCHMUUSZVXRU
      UTZYSYTVIVWAVUEUVMVUPYQGZVUQYQGVWOVYBVUEVUOVUHVUCYQVUCHMUJZUAUKZUVAPVUFCV
      UPFYQUVBYIUVCXDYPVUDVUMVUJJUVPBVUCUWBVUJAUWCVXRUVRVUFUWAVUIUVNVXSVXRUVSVU
      GUVTUVQVUHVUCUVQVUCUVNKYRVXTVYAYSYTUWLVUFUVNVUIUWKVUGVUHVUCVYCVYDULULUVDV
      IVUEUWIUVEZVUCUWIUVFZGVUNVULJVYEVUEBAUWHUVGPVUEVUCAVYFVWAVUEUWSVYFAJUVPUW
      SVUDVUAWDBAUWHAUVISUVHVUCUWEUWIUVJYIUVKUVL $.

    $d I i $.  $d N i $.
    psgnfzto1st.p $e |- P = ( i e. D |-> if ( i = 1 , I ,
      if ( i <_ I , ( i - 1 ) , i ) ) ) $.
    $( Value of our permutation ` P ` at 1.  (Contributed by Thierry Arnoux,
       23-Aug-2020.) $)
    fzto1stfv1 $p |- ( I e. D -> ( P ` 1 ) = I ) $=
      ( wcel c1 cv wceq cle wbr cmin co cif cmpt a1i iftrue adantl syl6eleqr id
      cuz cfv cfz elfzuz2 eleq2s eluzfz1 syl fvmptd ) DAHZCICJZIKZDULDLMULINOUL
      PZPZDABABCAUOQKUKGRUMUODKUKUMDUNSTUKEIUCUDHZIAHUPDIEUEOZADIEUFFUGUPIUQAIE
      UHFUAUIUKUBUJ $.

    $( Special case where the permutation defined in ~ psgnfzto1st is the
       identity.  (Contributed by Thierry Arnoux, 21-Aug-2020.) $)
    fzto1st1 $p |- ( I = 1 -> P = ( _I |` D ) ) $=
      ( c1 wceq cv cle wbr co cif cmpt wcel wa simpr wn ifeqda cmin cid cres id
      ad2antrr eqtr4d ad3antrrr breqtrd cfz simpllr syl6eleq elfzle1 cn fz1ssnn
      syl sseldi nnred 1red letri3d mpbir2and pm2.21dd eqidd mpteq2dva mptresid
      simplr eqcomi 3eqtr4g ) DHIZCACJZHIZDVIDKLZVIHUAMZVINZNZOCAVIOZBUBAUCZVHC
      AVNVIVHVIAPZQZVJDVMVIVRVJQDHVIVHVHVQVJVHUDZUEVRVJRUFVRVJSZQZVKVLVIVIWAVKQ
      ZVJVLVIIWBVJVIHKLHVIKLZWBVIDHKWAVKRVHVHVQVTVKVSUGUHWBVIHEUIMZPWCWBVIAWDVH
      VQVTVKUJFUKZVIHEULUOWBVIHWBVIWBWDUMVIEUNWEUPUQWBURUSUTVRVTVKVEVAWAVKSQVIV
      BTTVCGVOVPCAVDVFVG $.

    $d B m i n $.  $d D m n $.  $d I m $.  $d N m n $.  $d P m $.
    psgnfzto1st.g $e |- G = ( SymGrp ` D ) $.
    psgnfzto1st.b $e |- B = ( Base ` G ) $.
    $( The function moving one element to the first position (and shifting all
       elements before it) is a permutation.  (Contributed by Thierry Arnoux,
       21-Aug-2020.) $)
    fzto1st $p |- ( I e. D -> P e. B ) $=
      ( wcel cle wbr c1 wa wceq cif cmpt wi vm vn w3a cfz elfz1b biimpi 3ancoma
      cn co eleq2s sylibr df-3an cmin cid cres caddc breq1 simpl breq2d ifeq12d
      ifbid mpteq2dva eqid fzto1st1 ax-mp syl6eq eleq1d imbi12d syl6eqr cbs cfv
      cv cfn fzfi eqeltri idresperm eleqtrri 2a1i cpmtr simplr peano2nnd simpll
      cpr ccom simpr syl6eleqr psgnfzto1stlem syl2anc adantlr symgtrf pmtrto1cl
      3jca sseldi nnred 1red readdcld lep1d letrd cplusg symgov symgcl eqeltrrd
      crn mpd eqeltrd ex nnindd imp sylbi syl ) FBLZGUHLZFUHLZFGMNZUCZCALZXKXMX
      LXNUCZXOXQFOGUDUIZBFXRLXQGFUEUFHUJXLXMXNUGUKXOXLXMPZXNPXPXLXMXNULXSXNXPXL
      UAVLZGMNZDBDVLZOQZXTYBXTMNZYBOUMUIZYBRZRZSZALZTOGMNZUNBUOZALZTUBVLZGMNZDB
      YCYMYBYMMNZYEYBRZRZSZALZTZYMOUPUIZGMNZDBYCUUAYBUUAMNZYEYBRZRZSZALZTXNXPTU
      AUBFXTOQZYAYJYIYLXTOGMUQUUHYHYKAUUHYHDBYCOYBOMNZYEYBRZRZSZYKUUHDBYGUUKUUH
      YBBLZPZYCXTOYFUUJUUHUUMURZUUNYDUUIYEYBUUNXTOYBMUUOUSVAUTVBOOQUULYKQOVCBUU
      LDOGHUULVCVDVEVFVGVHXTYMQZYAYNYIYSXTYMGMUQUUPYHYRAUUPDBYGYQUUPUUMPZYCXTYM
      YFYPUUPUUMURZUUQYDYOYEYBUUQXTYMYBMUURUSVAUTVBVGVHXTUUAQZYAUUBYIUUGXTUUAGM
      UQUUSYHUUFAUUSDBYGUUEUUSUUMPZYCXTUUAYFUUDUUSUUMURZUUTYDUUCYEYBUUTXTUUAYBM
      UVAUSVAUTVBVGVHXTFQZYAXNYIXPXTFGMUQUVBYHCAUVBYHDBYCFYBFMNZYEYBRZRZSCUVBDB
      YGUVEUVBUUMPZYCXTFYFUVDUVBUUMURZUVFYDUVCYEYBUVFXTFYBMUVGUSVAUTVBIVIVGVHYL
      XLYJYKEVJVKZABVMLYKUVHLBXRVMHOGVNVOBEVMJVPVEKVQVRXLYMUHLZPZYTPZUUBUUGUVKU
      UBPZUUFYMUUAWCBVSVKZVKZYRWDZAUVJUUBUUFUVOQZYTUVJUUBPZUVIUUABLZUVPXLUVIUUB
      VTZUVQUUAXRBUVQUUAUHLZXLUUBUCUUAXRLUVQUVTXLUUBUVQYMUVSWAXLUVIUUBWBZUVJUUB
      WEZWLGUUAUEUKHWFZBDYMGHWGWHWIUVLUVNALZYSUVOALUVLUVMXCZAUVNABUWEEUWEVCJKWJ
      UVJUUBUVNUWELZYTUVQUVIUVRUWFUVSUWCBUVMYMGHUVMVCWKWHWIWMUVLYNYSUVJUUBYNYTU
      VQYMUUAGUVQYMUVSWNZUVQYMOUWGUVQWOWPUVQGUWAWNUVQYMUWGWQUWBWRWIUVJYTUUBVTXD
      UWDYSPUVNYREWSVKZUIUVOABAUWHEUVNYRJKUWHVCZWTBAUWHEUVNYRJKUWIXAXBWHXEXFXGX
      HXIXJ $.

    $( Value of the inverse of our permutation ` P ` at ` I ` (Contributed by
       Thierry Arnoux, 23-Aug-2020.) $)
    fzto1stinvn $p |- ( I e. D -> ( `' P ` I ) = 1 ) $=
      ( wcel c1 cfv ccnv fzto1stfv1 fveq2d wf1o wceq syl fzto1st symgbasf1o cuz
      cfz co elfzuz2 eleq2s eluzfz1 syl6eleqr f1ocnvfv1 syl2anc eqtr3d ) FBLZMC
      NZCOZNZFUONMUMUNFUOBCDFGHIPQUMBBCRZMBLZUPMSUMCALUQABCDEFGHIJKUABACEJKUBTU
      MGMUCNLZURUSFMGUDUEZBFMGUFHUGUSMUTBMGUHHUITBBMCUJUKUL $.

    $d S m n $.
    psgnfzto1st.s $e |- S = ( pmSgn ` D ) $.
    $( The permutation sign for moving one element to the first position.
       (Contributed by Thierry Arnoux, 21-Aug-2020.) $)
    psgnfzto1st $p |- ( I e. D -> ( S ` P ) = ( -u 1 ^ ( I + 1 ) ) ) $=
      ( wcel cle wbr c1 co cexp wceq vm vn w3a cfv cneg caddc cfz elfz1b biimpi
      cn eleq2s 3ancoma sylibr wa df-3an cv cmin cmpt wi breq1 id breq2 ifeq12d
      cif ifbid mpteq2dv fveq2d oveq1 eqeq12d imbi12d syl6eqr cid cres cfn fzfi
      oveq2d eqeltri psgnid ax-mp eqid fzto1st1 fveq2i c2 1p1e2 oveq2i neg1sqe1
      eqtri 3eqtr4i 2a1i cpr cpmtr ccom cmul simplr peano2nnd simpll simpr 3jca
      syl6eleqr psgnfzto1stlem syl2anc adantlr a1i crn symgtrf pmtrto1cl sseldi
      nnred 1red readdcld lep1d fzto1st syl psgnco syl3anc psgnpmtr mpd oveq12d
      letrd cc cn0 neg1cn peano2nn nnnn0d expp1 sylancr expcld mulcomd ad3antlr
      eqtr2d eqtrd 3eqtrd ex nnindd imp sylbi ) GBNZHUJNZGUJNZGHOPZUCZCDUDZQUEZ
      GQUFRZSRZTZYQYSYRYTUCZUUAUUGGQHUGRZBGUUHNUUGHGUHUIIUKYRYSYTULUMUUAYRYSUNZ
      YTUNUUFYRYSYTUOUUIYTUUFYRUAUPZHOPZEBEUPZQTZUUJUULUUJOPZUULQUQRZUULVDZVDZU
      RZDUDZUUCUUJQUFRZSRZTZUSQHOPZEBUUMQUULQOPZUUOUULVDZVDZURZDUDZUUCQQUFRZSRZ
      TZUSUBUPZHOPZEBUUMUVLUULUVLOPZUUOUULVDZVDZURZDUDZUUCUVLQUFRZSRZTZUSZUVSHO
      PZEBUUMUVSUULUVSOPZUUOUULVDZVDZURZDUDZUUCUVSQUFRZSRZTZUSYTUUFUSUAUBGUUJQT
      ZUUKUVCUVBUVKUUJQHOUTUWLUUSUVHUVAUVJUWLUURUVGDUWLEBUUQUVFUWLUUMUUJQUUPUVE
      UWLVAUWLUUNUVDUUOUULUUJQUULOVBVEVCVFVGUWLUUTUVIUUCSUUJQQUFVHVPVIVJUUJUVLT
      ZUUKUVMUVBUWAUUJUVLHOUTUWMUUSUVRUVAUVTUWMUURUVQDUWMEBUUQUVPUWMUUMUUJUVLUU
      PUVOUWMVAUWMUUNUVNUUOUULUUJUVLUULOVBVEVCVFVGUWMUUTUVSUUCSUUJUVLQUFVHVPVIV
      JUUJUVSTZUUKUWCUVBUWKUUJUVSHOUTUWNUUSUWHUVAUWJUWNUURUWGDUWNEBUUQUWFUWNUUM
      UUJUVSUUPUWEUWNVAUWNUUNUWDUUOUULUUJUVSUULOVBVEVCVFVGUWNUUTUWIUUCSUUJUVSQU
      FVHVPVIVJUUJGTZUUKYTUVBUUFUUJGHOUTUWOUUSUUBUVAUUEUWOUURCDUWOUUREBUUMGUULG
      OPZUUOUULVDZVDZURCUWOEBUUQUWRUWOUUMUUJGUUPUWQUWOVAUWOUUNUWPUUOUULUUJGUULO
      VBVEVCVFJVKVGUWOUUTUUDUUCSUUJGQUFVHVPVIVJUVKYRUVCVLBVMZDUDZQUVHUVJBVNNZUW
      TQTBUUHVNIQHVOVQZBDMVRVSUVGUWSDQQTUVGUWSTQVTBUVGEQHIUVGVTWAVSWBUVJUUCWCSR
      QUVIWCUUCSWDWEWFWGWHWIYRUVLUJNZUNZUWBUNZUWCUWKUXEUWCUNZUWHUVLUVSWJBWKUDZU
      DZUVQWLZDUDZUXHDUDZUVRWMRZUWJUXFUWGUXIDUXDUWCUWGUXITZUWBUXDUWCUNZUXCUVSBN
      ZUXMYRUXCUWCWNZUXNUVSUUHBUXNUVSUJNZYRUWCUCUVSUUHNUXNUXQYRUWCUXNUVLUXPWOYR
      UXCUWCWPZUXDUWCWQZWRHUVSUHUMIWSZBEUVLHIWTXAXBVGUXFUXAUXHANUVQANZUXJUXLTUX
      AUXFUXBXCUXFUXGXDZAUXHABUYBFUYBVTZKLXEUXDUWCUXHUYBNZUWBUXNUXCUXOUYDUXPUXT
      BUXGUVLHIUXGVTXFXAZXBXGUXFUVLBNZUYAUXDUWCUYFUWBUXNUVLUUHBUXNUXCYRUVMUCUVL
      UUHNUXNUXCYRUVMUXPUXRUXNUVLUVSHUXNUVLUXPXHZUXNUVLQUYGUXNXIXJUXNHUXRXHUXNU
      VLUYGXKUXSXSZWRHUVLUHUMIWSXBABUVQEFUVLHIUVQVTKLXLXMBAFUXHUVQDKMLXNXOUXFUX
      LUUCUVTWMRZUWJUXFUXKUUCUVRUVTWMUXDUWCUXKUUCTZUWBUXNUYDUYJUYEBUXHUYBFDKUYC
      MXPXMXBUXFUVMUWAUXDUWCUVMUWBUYHXBUXDUWBUWCWNXQXRUXCUYIUWJTYRUWBUWCUXCUWJU
      VTUUCWMRZUYIUXCUUCXTNZUVSYANUWJUYKTYBUXCUVSUVLYCYDZUUCUVSYEYFUXCUVTUUCUXC
      UUCUVSUYLUXCYBXCZUYMYGUYNYHYJYIYKYLYMYNYOYPXM $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Transpositions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    pmtridf1o.a $e |- ( ph -> A e. V ) $.
    pmtridf1o.x $e |- ( ph -> X e. A ) $.
    pmtridf1o.y $e |- ( ph -> Y e. A ) $.
    pmtridf1o.t $e |- T = if ( X = Y , ( _I |` A )
                                          , ( ( pmTrsp ` A ) ` { X , Y } ) ) $.
    $( Transpositions of ` X ` and ` Y ` (understood to be the identity when
       ` X = Y ` ), are bijections.  (Contributed by Thierry Arnoux,
       1-Jan-2022.) $)
    pmtridf1o $p |- ( ph -> T : A -1-1-onto-> A ) $=
      ( wf1o wceq wa cfv syl5eq wcel syl adantr syl3anc eqid cid cres cpr cpmtr
      cif iftrue adantl f1oi a1i f1oeq1 biimpar syl2anc wne crn wn simpr neneqd
      iffalse wss c2o cen wbr prssd pr2nelem pmtrrn eqeltrd pmtrff1o pm2.61dane
      ) ABBCKZEFAEFLZMZCUABUBZLZBBVLKZVIVKCVJVLEFUCZBUDNZNZUEZVLJVJVRVLLAVJVLVQ
      UFUGOVNVKBUHUIVMVIVNBBCVLUJUKULAEFUMZMZCVPUNZPVIVTCVQWAVTCVRVQJVTVJUOVRVQ
      LVTEFAVSUPZUQVJVLVQURQOVTBDPZVOBUSVOUTVAVBZVQWAPAWCVSGRVTEFBAEBPZVSHRZAFB
      PZVSIRZVCVTWEWGVSWDWFWHWBEFBBVDSBVOWAVPDVPTZWATZVESVFBWAVPCWIWJVGQVH $.

    $( Value at X of the transposition of ` X ` and ` Y ` (understood to be the
       identity when X = Y ).  (Contributed by Thierry Arnoux, 3-Jan-2022.) $)
    pmtridfv1 $p |- ( ph -> ( T ` X ) = Y ) $=
      ( cfv wceq wa cid cres simpr syl5eq fveq1d wcel adantr cpr iftrued fvresi
      cpmtr cif syl 3eqtrd wne iffalsed eqid pmtrprfv syl13anc eqtrd pm2.61dane
      neneqd ) AECKZFLEFAEFLZMZUPENBOZKZEFURECUSURCUQUSEFUABUDKZKZUEZUSJURUQUSV
      BAUQPZUBQRAUTELZUQAEBSZVEHBEUCUFTVDUGAEFUHZMZUPEVBKZFVHECVBVHCVCVBJVHUQUS
      VBVHEFAVGPZUOUIQRVHBDSZVFFBSZVGVIFLAVKVGGTAVFVGHTAVLVGITVJBVADEFVAUJUKULU
      MUN $.

    $( Value at Y of the transposition of ` X ` and ` Y ` (understood to be the
       identity when X = Y ).  (Contributed by Thierry Arnoux, 3-Jan-2022.) $)
    pmtridfv2 $p |- ( ph -> ( T ` Y ) = X ) $=
      ( cfv wceq wa cid cres wcel adantr simpr syl5eq fveq1d fvresi syl cpr cif
      cpmtr iftrued 3eqtr4d wne neneqd iffalsed eqid pmtrprfv2 eqtrd pm2.61dane
      syl13anc ) AFCKZELEFAEFLZMZFNBOZKZFUPEAUTFLZUQAFBPZVAIBFUAUBQURFCUSURCUQU
      SEFUCBUEKZKZUDZUSJURUQUSVDAUQRZUFSTVFUGAEFUHZMZUPFVDKZEVHFCVDVHCVEVDJVHUQ
      USVDVHEFAVGRZUIUJSTVHBDPZEBPZVBVGVIELAVKVGGQAVLVGHQAVBVGIQVJBVCDEFVCUKULU
      OUMUN $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Submatrices
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c subMat1 $.

  $( Syntax for a function generating submatrixes. $)
  csmat $a class subMat1 $.

  ${
    $d i j k l m $.
    $( Define a function generating submatrices of an integer-indexed matrix.
       The function maps an index in ` ( ( 1 ... M ) X. ( 1 ... N ) ) ` into a
       new index in ` ( ( 1 ... ( M - 1 ) ) X. ( 1 ... ( N - 1 ) ) ) ` .  A
       submatrix is obtained by deleting a row and a column of the original
       matrix.  Because this function re-indexes the matrix, the resulting
       submatrix still has the same index set for rows and columns, and its
       determinent is defined, unlike the current ~ df-subma .  (Contributed by
       Thierry Arnoux, 18-Aug-2020.) $)
    df-smat $a |- subMat1 = ( m e. _V |->
       ( k e. NN , l e. NN |-> ( m o. ( i e. NN , j e. NN |->
        <. if ( i < k , i , ( i + 1 ) ) , if ( j < l , j , ( j + 1 ) ) >. ) ) )
       ) $.
  $}

  ${
    $d K i j k l m $.  $d L i j k l $.  $d M k l m $.  $d V k l $.
    $( Value of the submatrix.  (Contributed by Thierry Arnoux,
       19-Aug-2020.) $)
    smatfval $p |- ( ( K e. NN /\ L e. NN /\ M e. V ) ->
      ( K ( subMat1 ` M ) L ) = ( M o. ( i e. NN , j e. NN
        |-> <. if ( i < K , i , ( i + 1 ) ) , if ( j < L , j , ( j + 1 ) ) >.
      ) ) ) $=
      ( vk vl vm cn wcel cv clt wbr cif cop cmpt2 cvv wceq nnex w3a c1 caddc co
      ccom csmat cfv 3ad2ant3 coeq1 mpt2eq3dv df-smat mpt2ex fvmpt syl wa breq2
      elex ifbid opeq1d opeq2d sylan9eq adantl coeq2d simp1 simp2 simp3 syl2anc
      a1i coexg ovmpt2d ) CJKZDJKZEFKZUAZGHCDJJEABJJALZGLZMNZVOVOUBUCUDZOZBLZHL
      ZMNZVTVTUBUCUDZOZPZQZUEZEABJJVOCMNZVOVROZVTDMNZVTWCOZPZQZUEZEUFUGZRVNERKZ
      WOGHJJWGQZSVMVKWPVLEFUQUHIEGHJJILZWFUEZQWQRUFWRESGHJJWSWGWREWFUIUJABGIHUK
      GHJJWGTTULUMUNVNVPCSZWADSZUOZUOWFWMEXBWFWMSVNWTXAWFABJJWIWDPZQWMWTABJJWEX
      CWTVSWIWDWTVQWHVOVRVPCVOMUPURUSUJXAABJJXCWLXAWDWKWIXAWBWJVTWCWADVTMUPURUT
      UJVAVBVCVKVLVMVDVKVLVMVEVNVMWMRKZWNRKVKVLVMVFXDVNABJJWLTTULVHEWMFRVIVGVJ
      $.

    $d A x $.  $d K i j x $.  $d L i j x $.  $d M x $.  $d N x $.  $d ph x $.
    smat.s $e |- S = ( K ( subMat1 ` A ) L ) $.
    smat.m $e |- ( ph -> M e. NN ) $.
    smat.n $e |- ( ph -> N e. NN ) $.
    smat.k $e |- ( ph -> K e. ( 1 ... M ) ) $.
    smat.l $e |- ( ph -> L e. ( 1 ... N ) ) $.
    smat.a $e |- ( ph -> A e. ( B ^m ( ( 1 ... M ) X. ( 1 ... N ) ) ) ) $.
    $( Closure of the rectangular submatrix.  (Contributed by Thierry Arnoux,
       19-Aug-2020.) $)
    smatrcl $p |-
      ( ph -> S e. ( B ^m ( ( 1 ... ( M - 1 ) ) X. ( 1 ... ( N - 1 ) ) ) ) ) $=
      ( c1 co wcel cn wbr wa vi vj vx cmin cfz cxp cmap wf crn wss cdm wfun clt
      cv caddc cif cop cmpt2 ccom elmapi ffun 3syl eqid mpt2fun a1i funco csmat
      syl2anc cfv wceq fz1ssnn sseldi smatfval syl5eq funeqd mpbird fdmrn sylib
      syl3anc dmeqd ccnv cima dmco fdm imaeq2d eleq2d wfn opex fnmpt2i elpreima
      wb ax-mp c1st cle breq1 id oveq1 ifbieq12d eqtrd syl6bb wn ifel ad3antrrr
      wo nnred cr simpr ltled elfzle2 syl letrd jca cz nnzd fznn nnltlem1 mpbid
      ltletrd 2thd pm5.32da ad2antrr peano2nnd biantrurd zltp1le zltlem1 bitr3d
      3bitr2d anbi2d orbi12d pm4.42 ancom orbi12i bitri syl6bbr anbi12d zsubcld
      syl5bb elxp6 cvv ovex simplr fveq2d syl6eqr opeq1d opeq2d simplrl simplrr
      c2nd df-ov ovmpt2 adantl eleq1d opelxp simprl simprr adantr bitr4d anbi1i
      bitrd 1zzd an4 anass 3bitr4g 3bitrd eqrdv feq2d rneqd rncoss syl6eqss frn
      sstrd fss reldmmap ovrcl simpld xpex elmapg sylancl ) ADCOGOUDPZUEPZOHOUD
      PZUEPZUFZUGPQZUWCCDUHZAUWCDUIZDUHZUWFCUJUWEADUKZUWFDUHZUWGADULZUWIAUWJBUA
      UBRRUAUNZEUMSZUWKUWKOUOPZUPZUBUNZFUMSZUWOUWOOUOPZUPZUQZURZUSZULZABULZUWTU
      LZUXBABCOGUEPZOHUEPZUFZUGPZQZUXGCBUHZUXCNBCUXGUTZUXGCBVAVBUXDAUAUBRRUWSUW
      TUWTVCZVDVEBUWTVFVHADUXAADEFBVGVIPZUXAIAERQFRQUXIUXMUXAVJAUXEREGVKLVLZAUX
      FRFHVKMVLZNUAUBEFBUXHVMVSVNZVOVPDVQVRAUWHUWCUWFDAUWHUXAUKZUWCADUXAUXPVTAU
      XQUWTWAZBUKZWBZUWCBUWTWCAUCUXTUWCAUCUNZUXTQUYAUXRUXGWBZQZUYARRUFZQZUYAUWT
      VIZUXGQZTZUYAUWCQZAUXTUYBUYAAUXSUXGUXRAUXIUXJUXSUXGVJNUXKUXGCBWDVBWEWFUYC
      UYHWKZAUWTUYDWGUYJUAUBRRUWSUWTUXLUWNUWRWHWIUYDUYAUXGUWTWJWLVEAUYAUYAWMVIZ
      UYAUUHVIZUQZVJZUYKRQZUYLRQZTZUYGTZTZUYNUYKUVTQZUYLUWBQZTZTUYHUYIAUYNUYRVU
      BAUYNTZUYRUYQUYKUVSWNSZUYLUWAWNSZTZTZVUBVUCUYQUYGVUFVUCUYQTZUYGUYKEUMSZUY
      KUYKOUOPZUPZUXEQZUYLFUMSZUYLUYLOUOPZUPZUXFQZTZVUFVUHUYGVUKVUOUQZUXGQVUQVU
      HUYFVURUXGVUHUYFUYKUYLUWTPZVURVUHUYFUYMUWTVIVUSVUHUYAUYMUWTAUYNUYQUUAUUBU
      YKUYLUWTUUIUUCUYQVUSVURVJVUCUAUBUYKUYLRRUWSVURUWTVUKUWRUQUWKUYKVJZUWNVUKU
      WRVUTUWLVUIUWKUWMUYKVUJUWKUYKEUMWOVUTWPUWKUYKOUOWQWRUUDUWOUYLVJZUWRVUOVUK
      VVAUWPVUMUWOUWQUYLVUNUWOUYLFUMWOVVAWPUWOUYLOUOWQWRUUEUXLVUKVUOWHUUJUUKWSU
      ULVUKVUOUXEUXFUUMWTVUHVULVUDVUPVUEVULVUIUYKUXEQZTZVUIXAZVUJUXEQZTZXDZVUHV
      UDVUIUYKVUJUXEXBVUHVVGVUIVUDTZVVDVUDTZXDZVUDVUHVVCVVHVVFVVIVUHVUIVVBVUDVU
      HVUITZVVBVUDVVKVVBUYOUYKGWNSZTZVVKUYOVVLVUCUYOUYPVUIUUFZVVKUYKEGVVKUYKVVN
      XEZAEXFQUYNUYQVUIAEUXNXEXCZAGXFQUYNUYQVUIAGJXEXCZVVKUYKEVVOVVPVUHVUIXGZXH
      AEGWNSZUYNUYQVUIAEUXEQVVSLEOGXIXJXCZXKXLAVVBVVMWKZUYNUYQVUIAGXMQZVWAAGJXN
      ZUYKGXOXJXCVPVVKUYKGUMSZVUDVVKUYKEGVVOVVPVVQVVRVVTXRVVKUYOGRQZVWDVUDWKVVN
      AVWEUYNUYQVUIJXCUYKGXPVHXQXSXTVUHVVEVUDVVDVUHVVEVUJRQZVUJGWNSZTZVWGVUDAVV
      EVWHWKZUYNUYQAVWBVWIVWCVUJGXOXJYAVUHVWFVWGVUHUYKVUCUYOUYPUUNZYBYCVUHUYKXM
      QZVWBVWGVUDWKVUHUYKVWJXNAVWBUYNUYQVWCYAVWKVWBTVWDVWGVUDUYKGYDUYKGYEYFVHYG
      YHYIVUDVUDVUITZVUDVVDTZXDVVJVUDVUIYJVWLVVHVWMVVIVUDVUIYKVUDVVDYKYLYMYNYQV
      UPVUMUYLUXFQZTZVUMXAZVUNUXFQZTZXDZVUHVUEVUMUYLVUNUXFXBVUHVWSVUMVUETZVWPVU
      ETZXDZVUEVUHVWOVWTVWRVXAVUHVUMVWNVUEVUHVUMTZVWNVUEVXCVWNUYPUYLHWNSZTZVXCU
      YPVXDVUCUYOUYPVUMUUGZVXCUYLFHVXCUYLVXFXEZAFXFQUYNUYQVUMAFUXOXEXCZAHXFQUYN
      UYQVUMAHKXEXCZVXCUYLFVXGVXHVUHVUMXGZXHAFHWNSZUYNUYQVUMAFUXFQVXKMFOHXIXJXC
      ZXKXLAVWNVXEWKZUYNUYQVUMAHXMQZVXMAHKXNZUYLHXOXJXCVPVXCUYLHUMSZVUEVXCUYLFH
      VXGVXHVXIVXJVXLXRVXCUYPHRQZVXPVUEWKVXFAVXQUYNUYQVUMKXCUYLHXPVHXQXSXTVUHVW
      QVUEVWPVUHVWQVUNRQZVUNHWNSZTZVXSVUEAVWQVXTWKZUYNUYQAVXNVYAVXOVUNHXOXJYAVU
      HVXRVXSVUHUYLVUCUYOUYPUUOZYBYCVUHUYLXMQZVXNVXSVUEWKVUHUYLVYBXNAVXNUYNUYQV
      XOYAVYCVXNTVXPVXSVUEUYLHYDUYLHYEYFVHYGYHYIVUEVUEVUMTZVUEVWPTZXDVXBVUEVUMY
      JVYDVWTVYEVXAVUEVUMYKVUEVWPYKYLYMYNYQYOUUSXTAVUBVUGWKUYNAVUBUYOVUDTZUYPVU
      ETZTVUGAUYTVYFVUAVYGAUVSXMQUYTVYFWKAGOVWCAUUTZYPUYKUVSXOXJAUWAXMQVUAVYGWK
      AHOVXOVYHYPUYLUWAXOXJYOUYOVUDUYPVUEUVAWTUUPUUQXTUYHUYNUYQTZUYGTUYSUYEVYIU
      YGUYARRYRUURUYNUYQUYGUVBYMUYAUVTUWBYRUVCUVDUVEVNWSUVFXQAUWFBUIZCAUWFUXAUI
      VYJADUXAUXPUVGBUWTUVHUVIAUXIUXJVYJCUJNUXKUXGCBUVJVBUVKUWCUWFCDUVLVHACYSQZ
      UWCYSQUWDUWEWKAVYKUXGYSQZAUXIVYKVYLTNCUXGBUGUVMUVNXJUVOUVTUWBOUVSUEYTOUWA
      UEYTUVPCUWCDYSYSUVQUVRVP $.

    ${
      $d I i j $.  $d J i j $.
      smatlem.i $e |- ( ph -> I e. NN ) $.
      smatlem.j $e |- ( ph -> J e. NN ) $.
      smatlem.1 $e |- ( ph -> if ( I < K , I , ( I + 1 ) ) = X ) $.
      smatlem.2 $e |- ( ph -> if ( J < L , J , ( J + 1 ) ) = Y ) $.
      $( Lemma for the next theorems.  (Contributed by Thierry Arnoux,
         19-Aug-2020.) $)
      smatlem $p |- ( ph -> ( I S J ) = ( X A Y ) ) $=
        ( vi vj co cop cn cv clt wbr c1 caddc cif cmpt2 cfv ccom csmat wcel cfz
        cxp cmap wceq fz1ssnn sseldi smatfval syl3anc syl5eq oveqd df-ov syl6eq
        cdm jca opelxp sylibr eqid opex dmmpt2 syl6eleqr wfun mpt2fun fvco mpan
        wa syl eqtrd breq1 oveq1 ifbieq12d opeq1d opeq2d ovmpt2 opeq12d syl5eqr
        id fveq2d syl6eqr ) AEFDUEZEFUFZUCUDUGUGUCUHZGUIUJZWSWSUKULUEZUMZUDUHZH
        UIUJZXCXCUKULUEZUMZUFZUNZUOZBUOZKLBUEZAWQWRBXHUPZUOZXJAWQEFXLUEXMADXLEF
        ADGHBUQUOUEZXLMAGUGURHUGURBCUKIUSUEZUKJUSUEZUTVAUEZURXNXLVBAXOUGGIVCPVD
        AXPUGHJVCQVDRUCUDGHBXQVEVFVGVHEFXLVIVJAWRXHVKZURZXMXJVBZAWRUGUGUTZXRAEU
        GURZFUGURZWCZWRYAURAYBYCSTVLZEFUGUGVMVNUCUDUGUGXGXHXHVOZXBXFVPVQVRXHVSX
        SXTUCUDUGUGXGXHYFVTWRBXHWAWBWDWEAXJKLUFZBUOXKAXIYGBAXIEFXHUEZYGEFXHVIAY
        HEGUIUJZEEUKULUEZUMZFHUIUJZFFUKULUEZUMZUFZYGAYDYHYOVBYEUCUDEFUGUGXGYOXH
        YKXFUFWSEVBZXBYKXFYPWTYIWSXAEYJWSEGUIWFYPWNWSEUKULWGWHWIXCFVBZXFYNYKYQX
        DYLXCXEFYMXCFHUIWFYQWNXCFUKULWGWHWJYFYKYNVPWKWDAYKKYNLUAUBWLWEWMWOKLBVI
        WPWE $.
    $}

    ${
      smattl.i $e |- ( ph -> I e. ( 1 ..^ K ) ) $.
      smattl.j $e |- ( ph -> J e. ( 1 ..^ L ) ) $.
      $( Entries of a submatrix, top left.  (Contributed by Thierry Arnoux,
         19-Aug-2020.) $)
      smattl $p |- ( ph -> ( I S J ) = ( I A J ) ) $=
        ( c1 co cfzo fzossnn sseldi clt wbr caddc wcel elfzolt2 iftrued smatlem
        cn syl ) ABCDEFGHIJEFKLMNOPASGUATZUKEGUBQUCASHUATZUKFHUBRUCAEGUDUEZEESU
        FTAEUMUGUOQESGUHULUIAFHUDUEZFFSUFTAFUNUGUPRFSHUHULUIUJ $.
    $}

    ${
      smattr.i $e |- ( ph -> I e. ( K ... M ) ) $.
      smattr.j $e |- ( ph -> J e. ( 1 ..^ L ) ) $.
      $( Entries of a submatrix, top right.  (Contributed by Thierry Arnoux,
         19-Aug-2020.) $)
      smattr $p |- ( ph -> ( I S J ) = ( ( I + 1 ) A J ) ) $=
        ( c1 co caddc cfz cn wcel wss fz1ssnn sseldi fzssnn sseldd cfzo fzossnn
        syl clt wbr cle wn elfzle1 nnred lenltd mpbid iffalsed elfzolt2 iftrued
        smatlem ) ABCDEFGHIJESUATZFKLMNOPAGIUBTZUCEAGUCUDVFUCUEASIUBTUCGIUFNUGZ
        GIUHULQUIZASHUJTZUCFHUKRUGAEGUMUNZEVEAGEUOUNZVJUPAEVFUDVKQEGIUQULAGEAGV
        GURAEVHURUSUTVAAFHUMUNZFFSUATAFVIUDVLRFSHVBULVCVD $.
    $}

    ${
      smatbl.i $e |- ( ph -> I e. ( 1 ..^ K ) ) $.
      smatbl.j $e |- ( ph -> J e. ( L ... N ) ) $.
      $( Entries of a submatrix, bottom left.  (Contributed by Thierry Arnoux,
         19-Aug-2020.) $)
      smatbl $p |- ( ph -> ( I S J ) = ( I A ( J + 1 ) ) ) $=
        ( c1 co caddc cfzo cn fzossnn sseldi cfz wcel wss fz1ssnn fzssnn sseldd
        syl clt wbr elfzolt2 iftrued cle wn elfzle1 nnred lenltd mpbid iffalsed
        smatlem ) ABCDEFGHIJEFSUATZKLMNOPASGUBTZUCEGUDQUEAHJUFTZUCFAHUCUGVGUCUH
        ASJUFTUCHJUIOUEZHJUJULRUKZAEGUMUNZEESUATAEVFUGVJQESGUOULUPAFHUMUNZFVEAH
        FUQUNZVKURAFVGUGVLRFHJUSULAHFAHVHUTAFVIUTVAVBVCVD $.
    $}

    ${
      smatbr.i $e |- ( ph -> I e. ( K ... M ) ) $.
      smatbr.j $e |- ( ph -> J e. ( L ... N ) ) $.
      $( Entries of a submatrix, bottom right.  (Contributed by Thierry Arnoux,
         19-Aug-2020.) $)
      smatbr $p |- ( ph -> ( I S J ) = ( ( I + 1 ) A ( J + 1 ) ) ) $=
        ( co cn caddc cfz wcel wss fz1ssnn sseldi fzssnn syl sseldd clt wbr cle
        c1 wn elfzle1 nnred lenltd mpbid iffalsed smatlem ) ABCDEFGHIJEUMUASZFU
        MUASZKLMNOPAGIUBSZTEAGTUCVCTUDAUMIUBSTGIUENUFZGIUGUHQUIZAHJUBSZTFAHTUCV
        FTUDAUMJUBSTHJUEOUFZHJUGUHRUIZAEGUJUKZEVAAGEULUKZVIUNAEVCUCVJQEGIUOUHAG
        EAGVDUPAEVEUPUQURUSAFHUJUKZFVBAHFULUKZVKUNAFVFUCVLRFHJUOUHAHFAHVGUPAFVH
        UPUQURUSUT $.
    $}
  $}

  ${
    smatcl.a $e |- A = ( ( 1 ... N ) Mat R ) $.
    smatcl.b $e |- B = ( Base ` A ) $.
    smatcl.c $e |- C = ( Base ` ( ( 1 ... ( N - 1 ) ) Mat R ) ) $.
    smatcl.s $e |- S = ( K ( subMat1 ` M ) L ) $.
    smatcl.n $e |- ( ph -> N e. NN ) $.
    smatcl.k $e |- ( ph -> K e. ( 1 ... N ) ) $.
    smatcl.l $e |- ( ph -> L e. ( 1 ... N ) ) $.
    smatcl.m $e |- ( ph -> M e. B ) $.
    $( Closure of the square submatrix: if ` M ` is a square matrix of
       dimension ` N ` with indexes in ` ( 1 ... N ) ` , then a submatrix of
       ` M ` is of dimension ` ( N - 1 ) ` .  (Contributed by Thierry Arnoux,
       19-Aug-2020.) $)
    smatcl $p |- ( ph -> S e. C ) $=
      ( co wcel c1 cmin cfz cmat cbs cfv cxp cmap eqid matbas2i syl smatrcl cfn
      cvv wceq fzfi matrcl simprd matbas2 sylancr eleq2d mpbid syl6eleqr ) AFUA
      JUAUBSZUCSZEUDSZUEUFZDAFEUEUFZVEVEUGUHSZTFVGTAIVHFGHJJNOOPQAICTZIVHUAJUCS
      ZVKUGUHSTRBCEVHIVKKVHUIZLUJUKULAVIVGFAVEUMTEUNTZVIVGUOUAVDUPAVJVMRVJVKUMT
      VMBCEVKIKLUQURUKVFEVHVEUNVFUIVLUSUTVAVBMVC $.
  $}

  ${
    $d A i j $.  $d B i j $.  $d M i j $.  $d N i j $.
    matmpt2.a $e |- A = ( N Mat R ) $.
    matmpt2.n $e |- B = ( Base ` A ) $.
    $( Write a square matrix as a mapping operation.  (Contributed by Thierry
       Arnoux, 16-Aug-2020.) $)
    matmpt2 $p |- ( M e. B -> M = ( i e. N , j e. N |-> ( i M j ) ) ) $=
      ( wcel cxp wfn cv co cmpt2 wceq cbs cfv cmap eqid matbas2i syl fnov sylib
      elmapfn ) FBJZFGGKZLZFDEGGDMEMFNOPUFFCQRZUGSNJUHABCUIFGHUITIUAFUIUGUEUBDE
      GGFUCUD $.
  $}

  ${
    $d .1. i j $.  $d I i j $.  $d N i j $.  $d R i j $.  $d i j ph $.
    1smat1.1 $e |- .1. = ( 1r ` ( ( 1 ... N ) Mat R ) ) $.
    1smat1.r $e |- ( ph -> R e. Ring ) $.
    1smat1.n $e |- ( ph -> N e. NN ) $.
    1smat1.i $e |- ( ph -> I e. ( 1 ... N ) ) $.
    $( The submatrix of the identity matrix obtained by removing the ith row
       and the ith column is an identity matrix.  Cf. ~ 1marepvsma1 .
       (Contributed by Thierry Arnoux, 19-Aug-2020.) $)
    1smat1 $p |- ( ph
     -> ( I ( subMat1 ` .1. ) I ) = ( 1r ` ( ( 1 ... ( N - 1 ) ) Mat R ) ) ) $=
      ( cfv co c1 wceq wcel wa wbr eqid cn adantr simpr vi vj cmin cfz cmat cur
      csmat cv wral clt caddc cif c0g cbs cxp cmap crg cfn fzfi mat1bas sylancl
      matbas2 sylancr eleqtrrd fz1ssnn simprl sseldi eqidd smatlem a1i cuz nnuz
      simprr syl6eleq fznatpl1 syl2anc peano2fzr jca eleq1 ifboth syl mat1ov wb
      iftrued eqeq1d eqeq2d wn iffalsed cr nnred ad2antrr ad3antrrr readdcld cz
      1red cle nnzd nltled zleltp1 biimpa syl21anc lttrd neneqd ltletrd 2falsed
      ltned bitrd pm2.61dan necomd cc nncnd 1cnd addcan2ad oveq1d impbida ifbid
      fzfid eqtr4d 3eqtrd ralrimivva wfn smatrcl elmapfn eqfnov2 mpbird ) ADDCU
      GJKZLELUCKZUDKZBUEKZUFJZMZUAUHZUBUHZYFKZYLYMYJKZMZUBYHUIUAYHUIZAYPUAUBYHY
      HAYLYHNZYMYHNZOZOZYNYLDUJPZYLYLLUKKZULZYMDUJPZYMYMLUKKZULZCKUUDUUGMZBUFJZ
      BUMJZULZYOUUACBUNJZYFYLYMDDEEUUDUUGYFQZAERNZYTHSZUUOADLEUDKZNYTISZUUQACUU
      LUUPUUPUOUPKZNYTACUUPBUEKZUNJZUURABUQNZUUPURNZCUUTNGLEUSZUUSUUTBCUUPUUSQZ
      UUTQFUTVAAUVBUVAUURUUTMUVCGUUSBUULUUPUQUVDUULQZVBVCVDZSUUAYHRYLYGVEZAYRYS
      VFZVGZUUAYHRYMUVGAYRYSVMZVGZUUAUUDVHUUAUUGVHVIUUAUUSBCUUIUUDUUGUUPUUJUVDU
      UIQZUUJQZUVBUUAUVCVJAUVAYTGSZUUAYLUUPNZUUCUUPNZOUUDUUPNZUUAUVOUVPUUAYLLVK
      JZNUVPUVOUUAYLRUVRUVIVLVNUUAUUNYRUVPUUOUVHYLEVOVPZYLLEVQVPUVSVRUUBUVOUVPU
      VQYLUUCYLUUDUUPVSUUCUUDUUPVSVTWAUUAYMUUPNZUUFUUPNZOUUGUUPNZUUAUVTUWAUUAYM
      UVRNUWAUVTUUAYMRUVRUVKVLVNUUAUUNYSUWAUUOUVJYMEVOVPZYMLEVQVPUWCVRUUEUVTUWA
      UWBYMUUFYMUUGUUPVSUUFUUGUUPVSVTWAFWBUUAUUKYLYMMZUUIUUJULYOUUAUUHUWDUUIUUJ
      UUAUUBUUHUWDWCUUAUUBOZUUHYLUUGMZUWDUWEUUDYLUUGUWEUUBYLUUCUUAUUBTZWDWEUWEU
      UEUWFUWDWCUWEUUEOZUUGYMYLUWHUUEYMUUFUWEUUETWDWFUWEUUEWGZOZUWFYLUUFMZUWDUW
      JUUGUUFYLUWJUUEYMUUFUWEUWITZWHWFUWJUWKUWDUWJYLUUFUWJYLUUFUUAYLWINZUUBUWIU
      UAYLUVIWJZWKZUWJYLDUUFUWOADWINZYTUUBUWIADAUUPRDEVEIVGZWJZWLZUWJYMLUUAYMWI
      NZUUBUWIUUAYMUVKWJZWKZUWJWOWMUWEUUBUWIUWGSZUWJDWNNZYMWNNZDYMWPPZDUUFUJPZA
      UXDYTUUBUWIADUWQWQZWLUUAUXEUUBUWIUUAYMUVKWQWKUWJDYMUWSUXBUWLWRZUXDUXEOUXF
      UXGDYMWSWTXAXBXFXCUWJYLYMUWJYLYMUWOUWJYLDYMUWOUWSUXBUXCUXIXDXFXCXEXGXHXGU
      UAUUBWGZOZUUHUUCUUGMZUWDUXKUUDUUCUUGUXKUUBYLUUCUUAUXJTZWHWEUXKUUEUXLUWDWC
      UXKUUEOZUXLUUCYMMZUWDUXNUUGYMUUCUXNUUEYMUUFUXKUUETZWDWFUXNUXOUWDUXNUUCYMU
      XNYMUUCUXNYMUUCUUAUWTUXJUUEUXAWKZUXNYMDUUCUXQAUWPYTUXJUUEUWRWLZUXNYLLUUAU
      WMUXJUUEUWNWKZUXNWOWMUXPUXNUXDYLWNNZDYLWPPZDUUCUJPZAUXDYTUXJUUEUXHWLUUAUX
      TUXJUUEUUAYLUVIWQWKUXNDYLUXRUXSUXKUXJUUEUXMSWRZUXDUXTOUYAUYBDYLWSWTXAXBXF
      XIXCUXNYLYMUXNYMYLUXNYMYLUXQUXNYMDYLUXQUXRUXSUXPUYCXDXFXIXCXEXGUXKUWIOZUX
      LUUCUUFMZUWDUYDUUGUUFUUCUYDUUEYMUUFUXKUWITWHWFUYDUYEUWDUYDUYEOZYLYMLUUAYL
      XJNUXJUWIUYEUUAYLUVIXKWLUUAYMXJNUXJUWIUYEUUAYMUVKXKWLUYFXLUYDUYETXMUYDUWD
      OYLYMLUKUYDUWDTXNXOXGXHXGXHXPUUAYIBYJUUIYLYMYHUUJYIQZUVLUVMUUALYGXQUVNUVH
      UVJYJQZWBXRXSXTAYFYHYHUOZYAZYJUYIYAZYKYQWCAYFUULUYIUPKZNUYJACUULYFDDEEUUM
      HHIIUVFYBYFUULUYIYCWAAYJUYLNUYKAYJYIUNJZUYLAUVAYHURNZYJUYMNGLYGUSZYIUYMBY
      JYHUYGUYMQUYHUTVAAUYNUVAUYLUYMMUYOGYIBUULYHUQUYGUVEVBVCVDYJUULUYIYCWAUAUB
      YHYHYFYJYDVPYE $.
  $}

  ${
    $d A i j $.  $d B i j $.  $d M i j $.  $d N i j $.  $d R i j $.
    submat1n.a $e |- A = ( ( 1 ... N ) Mat R ) $.
    submat1n.b $e |- B = ( Base ` A ) $.
    $( One case where the submatrix with integer indices, ` subMat1 ` , and the
       general submatrix ` subMat ` , agree.  (Contributed by Thierry Arnoux,
       22-Aug-2020.) $)
    submat1n $p |- ( ( N e. NN /\ M e. B ) -> ( N ( subMat1 ` M ) N )
      = ( N ( ( ( 1 ... N ) subMat R ) ` M ) N ) ) $=
      ( vi vj cn wcel wa c1 cfz co cfv wceq adantr eqid syl csn cdif cmpt2 cmin
      cv csmat csubma cuz fzdif2 eleq2s cbs elfz1end biimpi sylibr cxp matbas2i
      nnuz cmap ad2antlr simprl nnz fzoval eqtr4d eleqtrrd simprr smattl eqcomd
      cfzo cz mpt2eq123dva simpr submaval syl3anc cmat smatcl matmpt2 3eqtr4rd
      ) EJKZDBKZLZHIMENOZEUAUBZWBHUEZIUEZDOZUCZHIMEMUDONOZWGWCWDEEDUFPOZOZUCZEE
      DWACUGOZPOZWHVTHIWBWBWEWGWGWIVRWBWGQZVSWMEMUHPJMEUIUQUJZRZVTWMWCWBKZWORVT
      WPWDWBKZLZLZWIWEWSDCUKPZWHWCWDEEEEWHSZVTVRWRVTEWAKZVRVRXBVSVRXBEULZUMZRZX
      CUNZRZXGWSVRXBXGXDTZXHVSDWTWAWAUOUROKVRWRABCWTDWAFWTSGUPUSWSWCWBMEVHOZVTW
      PWQUTWSVRXIWBQXGVRXIWGWBVREVIKXIWGQEVAMEVBTWNVCTZVDWSWDWBXIVTWPWQVEXJVDVF
      VGVJVTVSXBXBWLWFQVRVSVKZXEXEABWKCHIEEDWAFWKSGVLVMVTWHWGCVNOZUKPZKWHWJQVTA
      BXMCWHEEDEFGXMSZXAXFXEXEXKVOXLXMCHIWHWGXLSXNVPTVQ $.

    $( Special case where the submatrix is a restriction of the initial matrix,
       and no renumbering occurs.  (Contributed by Thierry Arnoux,
       26-Aug-2020.) $)
    submatres $p |- ( ( N e. NN /\ M e. B ) -> ( N ( subMat1 ` M ) N )
      = ( M |` ( ( 1 ... ( N - 1 ) ) X. ( 1 ... ( N - 1 ) ) ) ) ) $=
      ( vi vj cn wcel cfv co c1 cfz cv cmpt2 cres wceq adantr csmat csubma cdif
      wa csn cmin cxp submat1n cuz nnuz eleq2i biimpi eluzfz2 syl eqid submaval
      simpr syl3anc wss fzdif2 syl6eqssr resmpt2 syl2anc matmpt2 reseq1d adantl
      difss eqidd mpt2eq123dv 3eqtr4rd 3eqtrd ) EJKZDBKZUDZEEDUALMEEDNEOMZCUBMZ
      LMZHIVOEUEZUCZVSHPIPDMZQZDNENUFMOMZWBUGZRZABCDEFGUHVNVMEVOKZWEVQWASVLVMUQ
      VLWEVMVLENUILZKZWEVLWGJWFEUJUKULZNEUMUNTZWIABVPCHIEEDVOFVPUOGUPURVNHIVOVO
      VTQZWCRZHIWBWBVTQZWDWAVNWBVOUSZWMWKWLSVLWMVMVLWBVSVOVLWGVSWBSZWHNEUTUNZVO
      VRVGVATZWPHIVOVOWBWBVTVBVCVMWDWKSVLVMDWJWCABCHIDVOFGVDVEVFVNHIVSVSVTWBWBV
      TVLWNVMWOTZWQVNVTVHVIVJVK $.
  $}

  ${
    submateqlem1.n $e |- ( ph -> N e. NN ) $.
    submateqlem1.k $e |- ( ph -> K e. ( 1 ... N ) ) $.
    submateqlem1.m $e |- ( ph -> M e. ( 1 ... ( N - 1 ) ) ) $.
    submateqlem1.1 $e |- ( ph -> K <_ M ) $.
    $( Lemma for ~ submateq .  (Contributed by Thierry Arnoux, 25-Aug-2020.) $)
    submateqlem1 $p |- ( ph -> ( M e. ( K ... N )
      /\ ( M + 1 ) e. ( ( 1 ... N ) \ { K } ) ) ) $=
      ( cfz co wcel c1 cle wbr cn nnred jca cz wb nnzd csn cdif wa cmin fz1ssnn
      caddc sseldi 1red resubcld elfzle2 lem1d letrd elfz syl3anc mpbird nnnn0d
      syl cc0 nn0ge0d cr 1re addge02 sylancr clt cn0 nn0ltlem1 syl2anc nnltp1le
      mpbid peano2zd 1zzd wne wn nnleltp1 ltned necomd nelsn eldifd ) ACBDIJKZC
      LUFJZLDIJZBUAZUBKAVSBCMNZCDMNZUCZAWCWDHACDLUDJZDACALWFIJZOCWFUEGUGZPZADLA
      DEPZAUHUIWJACWGKCWFMNZGCLWFUJUQZADWJUKULQACRKBRKDRKZVSWESACWHTZABAWAOBDUE
      FUGZTADETZCBDUMUNUOAVTWAWBAVTWAKZLVTMNZVTDMNZUCZAWRWSAURCMNZWRACACWHUPZUS
      ALUTKCUTKXAWRSVAWILCVBVCVIACDVDNZWSAXCWKWLACVEKDVEKXCWKSXBADEUPCDVFVGUOAC
      OKZDOKXCWSSWHECDVHVGVIQAVTRKLRKWMWQWTSACWNVJAVKWPVTLDUMUNUOAVTBVLVTWBKVMA
      BVTABVTABWOPAWCBVTVDNZHABOKXDWCXESWOWHBCVNVGVIVOVPVTBVQUQVRQ $.
  $}

  ${
    submateqlem2.n $e |- ( ph -> N e. NN ) $.
    submateqlem2.k $e |- ( ph -> K e. ( 1 ... N ) ) $.
    submateqlem2.m $e |- ( ph -> M e. ( 1 ... ( N - 1 ) ) ) $.
    submateqlem2.1 $e |- ( ph -> M < K ) $.
    $( Lemma for ~ submateq .  (Contributed by Thierry Arnoux, 26-Aug-2020.) $)
    submateqlem2 $p |- ( ph -> ( M e. ( 1 ..^ K )
      /\ M e. ( ( 1 ... N ) \ { K } ) ) ) $=
      ( c1 co wcel cfz wbr cn fz1ssnn sseldi jca cz wb nnzd cfzo csn cle clt wa
      cdif cmin nnge1d 1zzd elfzo syl3anc mpbird wceq wo orcd cuz nnuz syl6eleq
      cfv fzm1 syl wne wn nnred ltned nelsn eldifd ) ACIBUAJKZCIDLJZBUBZUFKAVHI
      CUCMZCBUDMZUEZAVKVLACAIDIUGJZLJZNCVNOGPZUHHQACRKIRKBRKVHVMSACVPTAUIABAVIN
      BDOFPTCIBUJUKULACVIVJACVIKZCVOKZCDUMZUNZAVRVSGUOADIUPUSZKVQVTSADNWAEUQURC
      IDUTVAULACBVBCVJKVCACBACVPVDHVECBVFVAVGQ $.
  $}

  ${
    $d E i j x y $.  $d F i j x y $.  $d I i j x y $.  $d J i j x y $.
    $d M i j $.  $d N i j x y $.  $d ph i j x y $.
    submateq.a $e |- A = ( ( 1 ... N ) Mat R ) $.
    submateq.b $e |- B = ( Base ` A ) $.
    submateq.n $e |- ( ph -> N e. NN ) $.
    submateq.i $e |- ( ph -> I e. ( 1 ... N ) ) $.
    submateq.j $e |- ( ph -> J e. ( 1 ... N ) ) $.
    ${
      submateq.e $e |- ( ph -> E e. B ) $.
      submateq.f $e |- ( ph -> F e. B ) $.
      submateq.1 $e |- ( ( ph
        /\ i e. ( ( 1 ... N ) \ { I } ) /\ j e. ( ( 1 ... N ) \ { J } ) )
        -> ( i E j ) = ( i F j ) ) $.
      $( Sufficient condition for two submatrices to be equal.  (Contributed by
         Thierry Arnoux, 25-Aug-2020.) $)
      submateq $p |- ( ph
        -> ( I ( subMat1 ` E ) J ) = ( I ( subMat1 ` F ) J ) ) $=
        ( wcel vx vy csmat cfv co wceq cv c1 cmin cfz wral wa cle wbr clt caddc
        cdif simprl cn ad2antrr simplr simpr submateqlem1 simprd syldanl adantr
        csn simprr adantlr jca wi cvv ovexd simpl eleq1d anbi12d oveq12 eqeq12d
        imbi12d 3expib vtocl2d ad3antrrr mpd cbs cxp matbas2i syl simpld smatbr
        eqid cmap 3eqtr4d cfzo submateqlem2 vex eqidd eleq12d smattr wo fz1ssnn
        cr sseldi nnred lelttric syl2anc mpjaodan smatbl smattl ralrimivva cmat
        a1i wb smatcl eqmat mpbird ) AIJGUCUDUEZIJHUCUDUEZUFZUAUGZUBUGZXPUEZXSX
        TXQUEZUFZUBUHKUHUIUEZUJUEZUKUAYEUKZAYCUAUBYEYEAXSYETZXTYETZULZULZIXSUMU
        NZYCXSIUOUNZYJYKULZJXTUMUNZYCXTJUOUNZYMYNULZXSUHUPUEZXTUHUPUEZGUEZYQYRH
        UEZYAYBYPYQUHKUJUEZIVGUQZTZYRUUAJVGUQZTZULZYSYTUFZYPUUCUUEYMUUCYNAYIYGY
        KUUCAYGYHURZAYGULZYKULZXSIKUJUETZUUCUUJIXSKAKUSTZYGYKNUTAIUUATZYGYKOUTA
        YGYKVAUUIYKVBVCZVDVEZVFYJYNUUEYKAYIYHYNUUEAYGYHVHZAYHULZYNULZXTJKUJUETZ
        UUEUURJXTKAUULYHYNNUTAJUUATZYHYNPUTAYHYNVAUUQYNVBVCZVDVEZVIVJAUUFUUGVKZ
        YIYKYNAEUGZUUBTZFUGZUUDTZULZUVDUVFGUEZUVDUVFHUEZUFZVKZUVCEFYQYRVLVLAXSU
        HUPVMZAXTUHUPVMZUVDYQUFZUVFYRUFZULZUVHUUFUVKUUGUVQUVEUUCUVGUUEUVQUVDYQU
        UBUVOUVPVNVOUVQUVFYRUUDUVOUVPVBVOVPUVQUVIYSUVJYTUVDYQUVFYRGVQUVDYQUVFYR
        HVQVRVSAUVEUVGUVKSVTZWAWBWCYPGDWDUDZXPXSXTIJKKXPWJZAUULYIYKYNNWBZUWAAUU
        MYIYKYNOWBZAUUTYIYKYNPWBZAGUVSUUAUUAWEWKUEZTZYIYKYNAGCTUWEQBCDUVSGUUALU
        VSWJZMWFWGZWBYMUUKYNAYIYGYKUUKUUHUUJUUKUUCUUNWHVEZVFZYJYNUUSYKAYIYHYNUU
        SUUPUURUUSUUEUVAWHVEZVIZWIYPHUVSXQXSXTIJKKXQWJZUWAUWAUWBUWCAHUWDTZYIYKY
        NAHCTUWMRBCDUVSHUUALUWFMWFWGZWBUWIUWKWIWLYMYOULZYQXTGUEZYQXTHUEZYAYBUWO
        UUCXTUUDTZULZUWPUWQUFZUWOUUCUWRYMUUCYOUUOVFYJYOUWRYKAYIYHYOUWRUUPUUQYOU
        LZXTUHJWMUETZUWRUXAJXTKAUULYHYONUTAUUTYHYOPUTAYHYOVAUUQYOVBWNZVDVEZVIVJ
        AUWSUWTVKZYIYKYOAUVLUXEEFYQXTVLVLUVMXTVLTAUBWOXKZUVOUVFXTUFZULZUVHUWSUV
        KUWTUXHUVEUUCUVGUWRUXHUVDYQUUBUVOUXGVNVOUXHUVFXTUUDUUDUVOUXGVBUXHUUDWPW
        QVPUXHUVIUWPUVJUWQUVDYQUVFXTGVQUVDYQUVFXTHVQVRVSUVRWAWBWCUWOGUVSXPXSXTI
        JKKUVTAUULYIYKYONWBZUXIAUUMYIYKYOOWBZAUUTYIYKYOPWBZAUWEYIYKYOUWGWBYMUUK
        YOUWHVFZYJYOUXBYKAYIYHYOUXBUUPUXAUXBUWRUXCWHVEZVIZWRUWOHUVSXQXSXTIJKKUW
        LUXIUXIUXJUXKAUWMYIYKYOUWNWBUXLUXNWRWLYJYNYOWSZYKYJJXATZXTXATUXOAUXPYIA
        JAUUAUSJKWTZPXBXCVFYJXTYJYEUSXTYDWTZUUPXBXCJXTXDXEZVFXFYJYLULZYNYCYOUXT
        YNULZXSYRGUEZXSYRHUEZYAYBUYAXSUUBTZUUEULZUYBUYCUFZUYAUYDUUEUXTUYDYNAYIY
        GYLUYDUUHUUIYLULZXSUHIWMUETZUYDUYGIXSKAUULYGYLNUTAUUMYGYLOUTAYGYLVAUUIY
        LVBWNZVDVEZVFYJYNUUEYLUVBVIVJAUYEUYFVKZYIYLYNAUVLUYKEFXSYRVLVLXSVLTAUAW
        OXKZUVNUVDXSUFZUVPULZUVHUYEUVKUYFUYNUVEUYDUVGUUEUYNUVDXSUUBUYMUVPVNVOUY
        NUVFYRUUDUYMUVPVBVOVPUYNUVIUYBUVJUYCUVDXSUVFYRGVQUVDXSUVFYRHVQVRVSUVRWA
        WBWCUYAGUVSXPXSXTIJKKUVTAUULYIYLYNNWBZUYOAUUMYIYLYNOWBZAUUTYIYLYNPWBZAU
        WEYIYLYNUWGWBUXTUYHYNAYIYGYLUYHUUHUYGUYHUYDUYIWHVEZVFZYJYNUUSYLUWJVIZXG
        UYAHUVSXQXSXTIJKKUWLUYOUYOUYPUYQAUWMYIYLYNUWNWBUYSUYTXGWLUXTYOULZXSXTGU
        EZXSXTHUEZYAYBVUAUYDUWRULZVUBVUCUFZVUAUYDUWRUXTUYDYOUYJVFYJYOUWRYLUXDVI
        VJAVUDVUEVKZYIYLYOAUVLVUFEFXSXTVLVLUYLUXFUYMUXGULZUVHVUDUVKVUEVUGUVEUYD
        UVGUWRVUGUVDXSUUBUYMUXGVNVOVUGUVFXTUUDUYMUXGVBVOVPVUGUVIVUBUVJVUCUVDXSU
        VFXTGVQUVDXSUVFXTHVQVRVSUVRWAWBWCVUAGUVSXPXSXTIJKKUVTAUULYIYLYONWBZVUHA
        UUMYIYLYOOWBZAUUTYIYLYOPWBZAUWEYIYLYOUWGWBUXTUYHYOUYRVFZYJYOUXBYLUXMVIZ
        XHVUAHUVSXQXSXTIJKKUWLVUHVUHVUIVUJAUWMYIYLYOUWNWBVUKVULXHWLYJUXOYLUXSVF
        XFYJIXATZXSXATYKYLWSAVUMYIAIAUUAUSIUXQOXBXCVFYJXSYJYEUSXSUXRUUHXBXCIXSX
        DXEXFXIAXPYEDXJUEZWDUDZTXQVUOTXRYFXLABCVUODXPIJGKLMVUOWJZUVTNOPQXMABCVU
        ODXQIJHKLMVUPUWLNOPRXMVUNVUODUAUBYEXPXQVUNWJVUPXNXEXO $.
    $}

    ${
      submatminr1.r $e |- ( ph -> R e. Ring ) $.
      submatminr1.m $e |- ( ph -> M e. B ) $.
      submatminr1.e $e |- E = ( I ( ( ( 1 ... N ) minMatR1 R ) ` M ) J ) $.
      $( If we take a submatrix by removing the row ` I ` and column ` J ` ,
         then the result is the same on the matrix with row ` I ` and column
         ` J ` modified by the ` minMatR1 ` operator.  (Contributed by Thierry
         Arnoux, 25-Aug-2020.) $)
      submatminr1 $p |- ( ph
        -> ( I ( subMat1 ` M ) J ) = ( I ( subMat1 ` E ) J ) ) $=
        ( co wcel wceq vi vj cur cfv c1 cfz cmarrep cminmar1 eqid minmar1marrep
        crg syl2anc oveqd syl5eq cbs ringidcl syl marrepcl syl32anc eqeltrd csn
        cv w3a c0g cif 3ad2ant1 simp2 eldifad simp3 marrepeval syl222anc wne wa
        cdif eldifsn sylib simprd neneqd iffalsed 3eqtrrd submateq ) ABCDUAUBHE
        FGIJKLMNPAEFGHDUCUDZUEIUFRZDUGRZRZRZCAEFGHWCDUHRUDZRWFQAWGWEFGADUKSZHCS
        ZWGWETOPBCWDDWBHWCJKWDUIZWBUIZUJULUMUNZAWHWIWBDUOUDZSZFWCSZGWCSZWFCSOPA
        WHWNOWMDWBWMUIWKUPUQZMNBCDWBFGHWCJKURUSUTAUAVBZWCFVAZVNSZUBVBZWCGVAZVNS
        ZVCZWRXAERWRXAWFRZWRFTZXAGTWBDVDUDZVEZWRXAHRZVEZXIXDEWFWRXAAWTEWFTXCWLV
        FUMXDWIWNWOWPWRWCSZXAWCSXEXJTAWTWIXCPVFAWTWNXCWQVFAWTWOXCMVFAWTWPXCNVFX
        DWRWCWSAWTXCVGZVHXDXAWCXBAWTXCVIVHBCWDDWBWRXAFGHWCXGJKWJXGUIVJVKXDXFXHX
        IXDWRFXDXKWRFVLZXDWTXKXMVMXLWRWCFVOVPVQVRVSVTWA $.
    $}
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Matrix literals
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c litMat $.

  $( Extend class notation with the literal matrix conversion function. $)
  clmat $a class litMat $.

  ${
    $d i j m $.
    $( Define a function converting words of words into matrices.  (Contributed
       by Thierry Arnoux, 28-Aug-2020.) $)
    df-lmat $a |- litMat = ( m e. _V |-> ( i e. ( 1 ... ( # ` m ) ) , j e.
      ( 1 ... ( # ` ( m ` 0 ) ) ) |-> ( ( m ` ( i - 1 ) ) ` ( j - 1 ) ) ) ) $.
  $}

  ${
    $d M i j m $.
    $( Value of the literal matrix conversion function.  (Contributed by
       Thierry Arnoux, 28-Aug-2020.) $)
    lmatval $p |- ( M e. V -> ( litMat ` M ) = ( i e. ( 1 ... ( # ` M ) ) ,
      j e. ( 1 ... ( # ` ( M ` 0 ) ) ) |-> ( ( M ` ( i - 1 ) ) ` ( j - 1 ) ) )
      ) $=
      ( vm wcel cvv clmat cfv c1 chash cfz co cc0 cmin cmpt2 wceq oveq2d fveq1
      cv elex fveq2 fveq2d fveq1d mpt2eq123dv df-lmat ovex mpt2ex fvmpt syl ) C
      DFCGFCHIABJCKIZLMZJNCIZKIZLMZBTJOMZATJOMZCIZIZPZQCDUAECABJETZKIZLMZJNVAIZ
      KIZLMZUPUQVAIZIZPUTGHVACQZABVCVFVHULUOUSVIVBUKJLVACKUBRVIVEUNJLVIVDUMKNVA
      CSUCRVIUPVGURUQVACSUDUEABEUFABULUOUSJUKLUGJUNLUGUHUIUJ $.

    $d I i j $.  $d J i j $.  $d N i $.  $d W i j $.  $d i j ph $.
    lmatfval.m $e |- M = ( litMat ` W ) $.
    lmatfval.n $e |- ( ph -> N e. NN ) $.
    lmatfval.w $e |- ( ph -> W e. Word Word V ) $.
    lmatfval.1 $e |- ( ph -> ( # ` W ) = N ) $.
    lmatfval.2 $e |- ( ( ph /\ i e. ( 0 ..^ N ) ) -> ( # ` ( W ` i ) ) = N ) $.
    ${
      lmatfval.i $e |- ( ph -> I e. ( 1 ... N ) ) $.
      lmatfval.j $e |- ( ph -> J e. ( 1 ... N ) ) $.
      $( Entries of a literal matrix.  (Contributed by Thierry Arnoux,
         28-Aug-2020.) $)
      lmatfval $p |- ( ph -> ( I M J ) = ( ( W ` ( I - 1 ) ) ` ( J - 1 ) ) ) $=
        ( c1 cfv co cc0 wcel vj chash cfz cv cmin clmat cmpt2 cword lmatval syl
        wceq syl5eq wa simprl oveq1d fveq2d simprr fveq12d oveq2d eleqtrrd cfzo
        1m1e0 cuz cn nnuz syl6eleq eluzfz1 fz1fzo0m1 syl5eqelr wi eleq1d eqeq1d
        simpr imbi12d ex vtocld mpd wrdsymbcl syl2anc ovmpt2d ) ABUACDPHUBQZUCR
        ZPSHQZUBQZUCRZUAUDZPUERZBUDZPUERZHQZQZDPUERZCPUERZHQZQZEGAEHUFQZBUAWBWE
        WKUGZIAHGUHZUHZTZWPWQUKKBUAHWSUIUJULAWHCUKZWFDUKZUMUMZWGWLWJWNXCWIWMHXC
        WHCPUEAXAXBUNUOUPXCWFDPUEAXAXBUQUOURACPFUCRZWBNAWAFPUCLUSUTADXDWEOAWDFP
        UCASSFVARZTZWDFUKZASPPUERZXEVBAPXDTZXHXETAFPVCQZTXIAFVDXJJVEVFPFVGUJPFV
        HUJVIZAWHXETZWHHQZUBQZFUKZVJZXFXGVJBSXEXKAWHSUKZUMZXLXFXOXGXRWHSXEAXQVM
        ZVKXRXNWDFXRXMWCUBXRWHSHXSUPUPVLVNAXLXOMVOZVPVQUSUTAWNWRTZWLSWNUBQZVARZ
        TWOGTAWTWMSWAVARZTYAKAWMXEYDACXDTWMXETZNCFVHUJZAWAFSVALUSUTWMWRHVRVSAWL
        XEYCADXDTWLXETODFVHUJAYBFSVAAYEYBFUKZYFAXPYEYGVJBWMXEYFAWHWMUKZUMZXLYEX
        OYGYIWHWMXEAYHVMZVKYIXNYBFYIXMWNUBYIWHWMHYJUPUPVLVNXTVPVQUSUTWLGWNVRVSV
        T $.
    $}

    ${
      lmatfvlem.1 $e |- K e. NN0 $.
      lmatfvlem.2 $e |- L e. NN0 $.
      lmatfvlem.3 $e |- I <_ N $.
      lmatfvlem.4 $e |- J <_ N $.
      lmatfvlem.5 $e |- ( K + 1 ) = I $.
      lmatfvlem.6 $e |- ( L + 1 ) = J $.
      lmatfvlem.7 $e |- ( W ` K ) = X $.
      lmatfvlem.8 $e |- ( ph -> ( X ` L ) = Y ) $.
      $( Useful lemma to extract literal matrix entries.  Suggested by Mario
         Carneiro.  (Contributed by Thierry Arnoux, 3-Sep-2020.) $)
      lmatfvlem $p |- ( ph -> ( I M J ) = Y ) $=
        ( co c1 cmin cfv cfz wcel cle wbr wa caddc nn0p1nn ax-mp eqeltrri nnge1
        cn cn0 pm3.2i a1i cz wb nnz 1z nnzd elfz syl3anc mpbird lmatfval nn0cni
        wceq ax-1cn pncan3oi oveq1i eqtr3i fveq2i fveq1d fveq2d eqtr3d 3eqtrd )
        ACDGUFDUGUHUFZCUGUHUFZJUIZUIWDKUIZLABCDGHIJMNOPQACUGHUJUFZUKZUGCULUMZCH
        ULUMZUNZWLAWJWKCUTUKZWJEUGUOUFZCUTUBEVAUKWNUTUKREUPUQURZCUSUQTVBVCACVDU
        KZUGVDUKZHVDUKZWIWLVEWPAWMWPWOCVFUQVCWQAVGVCZAHNVHZCUGHVIVJVKADWHUKZUGD
        ULUMZDHULUMZUNZXDAXBXCDUTUKZXBFUGUOUFZDUTUCFVAUKXFUTUKSFUPUQURZDUSUQUAV
        BVCADVDUKZWQWRXAXDVEXHAXEXHXGDVFUQVCWSWTDUGHVIVJVKVLAWDWFKWFKVNAEJUIWFK
        EWEJWNUGUHUFEWEEUGERVMVOVPWNCUGUHUBVQVRVSUDVRVCVTAFKUIWGLAFWDKFWDVNAXFU
        GUHUFFWDFUGFSVMVOVPXFDUGUHUCVQVRVCWAUEWBWC $.
    $}

    $d N i j k $.  $d V j k $.  $d W i j k $.  $d i j k ph $.
    lmatcl.b $e |- V = ( Base ` R ) $.
    lmatcl.1 $e |- O = ( ( 1 ... N ) Mat R ) $.
    lmatcl.2 $e |- P = ( Base ` O ) $.
    lmatcl.r $e |- ( ph -> R e. X ) $.
    $( Closure of the literal matrix.  (Contributed by Thierry Arnoux,
       12-Sep-2020.) $)
    lmatcl $p |- ( ph -> M e. P ) $=
      ( wcel vk vj c1 cfz co cv cmin cfv cmpt2 chash cc0 clmat wceq lmatval syl
      cword syl5eq oveq2d cfzo cn lbfzo0 sylibr wi cn0 0nn0 a1i wa simpr eleq1d
      fveq2d eqeq1d imbi12d vtocld eqidd mpt2eq123dv eqtrd fzfid 3ad2ant1 simp2
      mpd w3a fz1fzo0m1 eleqtrrd wrdsymbcl syl2anc simp3 cvv eleq12d imp sylan2
      ex ovexd 3adant3 matbas2d eqeltrd ) AEUAUBUCFUDUEZWPUBUFZUCUGUEZUAUFZUCUG
      UEZIUHZUHZUIZBAEUAUBUCIUJUHZUDUEZUCUKIUHZUJUHZUDUEZXBUIZXCAEIULUHZXIKAIHU
      PZUPZTZXJXIUMMUAUBIXLUNUOUQAUAUBXEXHXBWPWPXBAXDFUCUDNURAXGFUCUDAUKUKFUSUE
      ZTZXGFUMZAFUTTXOLFVAVBADUFZXNTZXQIUHZUJUHZFUMZVCZXOXPVCDUKVDUKVDTAVEVFAXQ
      UKUMZVGZXRXOYAXPYDXQUKXNAYCVHZVIYDXTXGFYDXSXFUJYDXQUKIYEVJVJVKVLAXRYAOWKZ
      VMVTURAXBVNVOVPAUAUBGBXBCHWPJQPRAUCFVQSAWSWPTZWQWPTZWAZXAXKTZWRUKXAUJUHZU
      SUEZTXBHTYIXMWTUKXDUSUEZTYJAYGXMYHMVRYIWTXNYMYIYGWTXNTZAYGYHVSWSFWBZUOYIX
      DFUKUSAYGXDFUMYHNVRURWCWTXKIWDWEYIWRXNYLYIYHWRXNTAYGYHWFWQFWBUOYIYKFUKUSA
      YGYKFUMZYHYGAYNYPYOAYNYPAYBYNYPVCDWTWGAWSUCUGWLAXQWTUMZVGZXRYNYAYPYRXQWTX
      NXNAYQVHZYRXNVNWHYRXTYKFYRXSXAUJYRXQWTIYSVJVJVKVLYFVMWIWJWMURWCWRHXAWDWEW
      NWO $.
  $}

  ${
    $d A i $.  $d B i $.  $d C i $.  $d D i $.  $d M i $.  $d ph i $.
    lmat22.m $e |- M = ( litMat ` <" <" A B "> <" C D "> "> ) $.
    lmat22.a $e |- ( ph -> A e. V ) $.
    lmat22.b $e |- ( ph -> B e. V ) $.
    lmat22.c $e |- ( ph -> C e. V ) $.
    lmat22.d $e |- ( ph -> D e. V ) $.
    $( Lemma for ~ lmat22e11 and co.  (Contributed by Thierry Arnoux,
       28-Aug-2020.) $)
    lmat22lem $p |- ( ( ph /\ i e. ( 0 ..^ 2 ) )
      -> ( # ` ( <" <" A B "> <" C D "> "> ` i ) ) = 2 ) $=
      ( cc0 c2 wcel wceq cfv chash c1 cv cfzo co wa cs2 simpr cword s2cld s2fv0
      fveq2d syl adantr eqtrd s2len syl6eq adantlr wo cpr fzo0to2pr eleq2i elpr
      s2fv1 vex bitri biimpi adantl mpjaodan ) AFUAZNOUBUCZPZUDVHNQZVHBCUEZDEUE
      ZUEZRZSRZOQZVHTQZAVKVQVJAVKUDZVPVLSROVSVOVLSVSVONVNRZVLVSVHNVNAVKUFUJAVTV
      LQZVKAVLHUGZPWAABCHJKUHVLVMWBUIUKULUMUJBCUNUOUPAVRVQVJAVRUDZVPVMSROWCVOVM
      SWCVOTVNRZVMWCVHTVNAVRUFUJAWDVMQZVRAVMWBPWEADEHLMUHVLVMWBVBUKULUMUJDEUNUO
      UPVJVKVRUQZAVJWFVJVHNTURZPWFVIWGVHUSUTVHNTFVCVAVDVEVFVG $.

    $( Entry of a 2x2 literal matrix.  (Contributed by Thierry Arnoux,
       28-Aug-2020.) $)
    lmat22e11 $p |- ( ph -> ( 1 M 1 ) = A ) $=
      ( c1 co cfv cc0 c2 wcel a1i wceq vi cmin cs2 cn 2nn cword s2cld lmat22lem
      chash s2len cfz 2eluzge1 eluzfz1 ax-mp lmatfval 1m1e0 fveq2i s2fv0 syl5eq
      cuz syl fveq12d 3eqtrd ) AMMFNMMUBNZVDBCUCZDEUCZUCZOZOPVEOZBAUAMMFQGVGHQU
      DRAUESAVEVFGUFZABCGIJUGZADEGKLUGUGVGUIOQTAVEVFUJSABCDEUAFGHIJKLUHMMQUKNRZ
      AQMUTORVLULMQUMUNSZVMUOAVDPVHVEAVHPVGOZVEVDPVGUPUQAVEVJRVNVETVKVEVFVJURVA
      USVDPTAUPSVBABGRVIBTIBCGURVAVC $.

    $( Entry of a 2x2 literal matrix.  (Contributed by Thierry Arnoux,
       12-Sep-2020.) $)
    lmat22e12 $p |- ( ph -> ( 1 M 2 ) = B ) $=
      ( vi c1 c2 cs2 wcel s2cld cfv wceq cc0 cn 2nn cword chash s2len lmat22lem
      a1i 0nn0 1nn0 nnrei leidi 0p1e1 1p1e2 cvv s2cli s2fv0 ax-mp syl lmatfvlem
      1le2 s2fv1 ) AMNOUANFOGBCPZDEPZPZVCCHOUBQAUCUHAVCVDGUDABCGIJRADEGKLRRVEUE
      SOTAVCVDUFUHABCDEMFGHIJKLUGUIUJVAOOUCUKULUMUNVCUOUDZQUAVESVCTBCUPVCVDVFUQ
      URACGQNVCSCTJBCGVBUSUT $.

    $( Entry of a 2x2 literal matrix.  (Contributed by Thierry Arnoux,
       12-Sep-2020.) $)
    lmat22e21 $p |- ( ph -> ( 2 M 1 ) = C ) $=
      ( vi c2 c1 cs2 wcel s2cld cfv wceq cc0 cn 2nn cword chash s2len lmat22lem
      a1i 1nn0 0nn0 nnrei leidi 1p1e2 0p1e1 cvv s2cli s2fv1 ax-mp syl lmatfvlem
      1le2 s2fv0 ) AMNOOUAFNGBCPZDEPZPZVDDHNUBQAUCUHAVCVDGUDABCGIJRADEGKLRRVEUE
      SNTAVCVDUFUHABCDEMFGHIJKLUGUIUJNNUCUKULVAUMUNVDUOUDZQOVESVDTDEUPVCVDVFUQU
      RADGQUAVDSDTKDEGVBUSUT $.

    $( Entry of a 2x2 literal matrix.  (Contributed by Thierry Arnoux,
       12-Sep-2020.) $)
    lmat22e22 $p |- ( ph -> ( 2 M 2 ) = D ) $=
      ( vi c2 c1 cs2 wcel s2cld cfv wceq cn 2nn a1i cword chash s2len lmat22lem
      1nn0 nnrei leidi 1p1e2 cvv s2cli s2fv1 ax-mp syl lmatfvlem ) AMNNOOFNGBCP
      ZDEPZPZUSEHNUAQAUBUCAURUSGUDABCGIJRADEGKLRRUTUESNTAURUSUFUCABCDEMFGHIJKLU
      GUHUHNNUBUIUJZVAUKUKUSULUDZQOUTSUSTDEUMURUSVBUNUOAEGQOUSSETLDEGUNUPUQ $.

    lmat22det.t $e |- .x. = ( .r ` R ) $.
    lmat22det.s $e |- .- = ( -g ` R ) $.
    lmat22det.v $e |- V = ( Base ` R ) $.
    lmat22det.j $e |- J = ( ( 1 ... 2 ) maDet R ) $.
    lmat22det.r $e |- ( ph -> R e. Ring ) $.
    $( The determinant of a literal 2x2 complex matrix.  (Contributed by
       Thierry Arnoux, 1-Sep-2020.) $)
    lmat22det $p |- ( ph -> ( J ` M ) = ( ( A .x. D ) .- ( C .x. B ) ) ) $=
      ( vi cfv c1 co c2 crg wcel cfz cmat cbs wceq cs2 cn 2nn cword s2cld chash
      a1i s2len lmat22lem eqid lmatcl caddc c3 cpr cz fzval3 ax-mp 2p1e3 oveq2i
      2z fzo13pr 3eqtri m2detleib syl2anc lmat22e11 lmat22e22 oveq12d lmat22e21
      cfzo lmat22e12 eqtrd ) AIHUCZUDUDIUEZUFUFIUEZGUEZUFUDIUEZUDUFIUEZGUEZJUEZ
      BEGUEZDCGUEZJUEAFUGUHIUDUFUIUEZFUJUEZUKUCZUHWDWKULUAAWPFUBIUFWOKBCUMZDEUM
      ZUMZUGLUFUNUHAUOUSAWQWRKUPABCKMNUQADEKOPUQUQWSURUCUFULAWQWRUTUSABCDEUBIKL
      MNOPVASWOVBZWPVBZUAVCWOWPHFGIJWNWNUDUFUDVDUEZWAUEZUDVEWAUEUDUFVFUFVGUHWNX
      CULVLUDUFVHVIXBVEUDWAVJVKVMVNTWTXARQVOVPAWGWLWJWMJAWEBWFEGABCDEIKLMNOPVQA
      BCDEIKLMNOPVRVSAWHDWICGABCDEIKLMNOPVTABCDEIKLMNOPWBVSVSWC $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Laplace expansion of determinants
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d .x. p q $.  $d B i j p x $.  $d B p q x $.  $d E p x $.
    $d G i j p q x $.  $d M i j k l p q x $.  $d N i j k l p q x $.
    $d P i j k l p q x $.  $d R i j k l p q x $.  $d S p q $.  $d Z p q $.
    mdetpmtr.a $e |- A = ( N Mat R ) $.
    mdetpmtr.b $e |- B = ( Base ` A ) $.
    mdetpmtr.d $e |- D = ( N maDet R ) $.
    mdetpmtr.g $e |- G = ( Base ` ( SymGrp ` N ) ) $.
    mdetpmtr.s $e |- S = ( pmSgn ` N ) $.
    mdetpmtr.z $e |- Z = ( ZRHom ` R ) $.
    mdetpmtr.t $e |- .x. = ( .r ` R ) $.
    ${
      mdetpmtr1.e $e |- E = ( i e. N , j e. N |-> ( ( P ` i ) M j ) ) $.
      $( The determinant of a matrix with permuted rows is the determinant of
         the original matrix multiplied by the sign of the permutation.
         (Contributed by Thierry Arnoux, 22-Aug-2020.) $)
      mdetpmtr1 $p |- ( ( ( R e. CRing /\ N e. Fin ) /\ ( M e. B /\ P e. G ) )
        -> ( D ` M ) = ( ( ( Z o. S ) ` P ) .x. ( D ` E ) ) ) $=
        ( vp vx vq ccrg wcel cfn wa ccom cfv cv cmgp co cmpt cbs cplusg cvv c0g
        cgsu eqid crg simpll crngring syl fvex eqeltri a1i wfun cdm wceq simplr
        csymg wfn psgndmfi fnfun 3syl simprr fndm eleqtrrd syl2anc zrhpsgnelbas
        fvco syl3anc eqeltrd adantr zrhcofipsgn sylan simpr mgpbas ccmn crngmgp
        ad3antrrr symgfv cmpt2 w3a simp1rr simp2 simp3 simp1rl matecld matbas2d
        syl5eqel ad2antrr ralrimiva gsummptcl ringcl symgbasfi ovexd fsuppmptdm
        fvexd gsummulc2 nfcv fveq2 fveq1 oveq1d mpteq2dv oveq2d oveq12d ringcmn
        wss ssid simpllr simprl symgov symgcl eqeltrrd wreu gsummptf1o mdetleib
        symgfcoeu cmul fveq2d zring cz c1 psgnran sseldi mpteq2dva 3eqtr4d cneg
        ad2antrl ringass syl13anc psgnco crh zrhrhm cpr 1z neg1z prssi zringbas
        mp2an zringmulr rhmmul 3eqtrrd eqtrd wf symgbasf ffun fdm eqtr4d eqtr3d
        ovmpt2d ) EUFUGZMUHUGZUIZLBUGZDKUGZUIZUIZEUCKDNFUJZUKZUCULZUVLUKZEUMUKZ
        UDMUDULZUVNUKZUVQJUNZUOZUTUNZGUNZGUNZUOZUTUNZUVMEUCKUWBUOZUTUNZGUNLCUKZ
        UVMJCUKZGUNUVKKEUPUKZEUQUKZEGUCURUWBUVMEUSUKZUWJVAZUWLVAZUWKVAUAUVKUVEE
        VBUGZUVEUVFUVJVCZEVDVEZKURUGUVKKMVMUKZUPUKURRUWRUPVFVGVHUVKUVMDFUKZNUKZ
        UWJUVKFVIZDFVJZUGUVMUWTVKZUVKUVFFKVNZUXAUVEUVFUVJVLZMFKSRVOZKFVPVQUVKDK
        UXBUVGUVHUVIVRZUVKUVFUXDUXBKVKUXEUXFKFVSVQVTDNFWCWAZUVKUWOUVFUVIUWTUWJU
        GUWQUXEUXGKDEFMNRSTWBWDWEZUVKUVNKUGZUIZUWOUVOUWJUGZUWAUWJUGZUWBUWJUGUVK
        UWOUXJUWQWFZUXKUVOUVNFUKZNUKZUWJUVKUVFUXJUVOUXPVKUXEKUVNEFMNRTSWGWHZUXK
        UWOUVFUXJUXPUWJUGUXNUVKUVFUXJUXEWFZUVKUXJWIZKUVNEFMNRSTWBWDWEZUXKUWJUDU
        VPMUVSUWJEUVPUVPVAZUWMWJZUVEUVPWKUGZUVFUVJUXJEUVPUYAWLZWMUXRUXKUVSUWJUG
        UDMUXKUVQMUGZUIZABEUVRUVQUWJJMOUWMPUYFUXJUYEUVRMUGUVKUXJUYEVLUXKUYEWIZM
        KUVNUWRUVQUWRVAZRWNWAZUYGUVKJBUGZUXJUYEUVKJHIMMHULZDUKZIULZLUNZWOZBUBUV
        KHIABUYNEUWJMUFOUWMPUXEUWPUVKUYKMUGZUYMMUGZWPZABEUYLUYMUWJLMOUWMPUYRUVI
        UYPUYLMUGUVHUVIUVGUYPUYQWQUVKUYPUYQWRMKDUWRUYKUYHRWNWAUVKUYPUYQWSUVHUVI
        UVGUYPUYQWTXAXBXCZXDXAXEXFZUWJEGUVOUWAUWMUAXGWDUVKUCKUWFURURUWBUWLUWFVA
        UVKUVFKUHUGUXEMKUWRUYHRXHVEZUXKUVOUWAGXIUVKEUSXKXJXLUVKEUEKUEULZUVLUKZU
        VPUDMUVQVUBUKZUVQLUNZUOZUTUNZGUNZUOUTUNZEUCKDUVNUJZUVLUKZUVPUDMUVQVUJUK
        ZUVQLUNZUOZUTUNZGUNZUOZUTUNUWHUWEUVKUEUCKUWJVUHKVUJUWJEVUPUWLUEVUPXMUWM
        UWNVUBVUJVKZVUCVUKVUGVUOGVUBVUJUVLXNVURVUFVUNUVPUTVURUDMVUEVUMVURVUDVUL
        UVQLUVQVUBVUJXOXPXQXRXSUVKUWOEWKUGUWQEXTVEVUAUWJUWJYAUVKUWJYBVHUVKVUBKU
        GZUIZUWOVUCUWJUGVUGUWJUGVUHUWJUGUVKUWOVUSUWQWFZVUTVUCVUBFUKNUKZUWJVUTUV
        FVUSVUCVVBVKUVKUVFVUSUXEWFZUVKVUSWIZKVUBEFMNRTSWGWAVUTUWOUVFVUSVVBUWJUG
        VVAVVCVVDKVUBEFMNRSTWBWDWEVUTUWJUDUVPMVUEUYBUVEUYCUVFUVJVUSUYDWMUVEUVFU
        VJVUSYCVUTVUEUWJUGUDMVUTUYEUIZABEVUDUVQUWJLMOUWMPVVEVUSUYEVUDMUGUVKVUSU
        YEVLVUTUYEWIZMKVUBUWRUVQUYHRWNWAVVFUVKUVHVUSUYEUVGUVHUVIYDXDXAXEXFUWJEG
        VUCVUGUWMUAXGWDUVKUVIUXJVUJKUGZUXGUVIUXJUIDUVNUWRUQUKZUNVUJKMKVVHUWRDUV
        NUYHRVVHVAZYEMKVVHUWRDUVNUYHRVVIYFYGWHZVUTUVFUVIVUSVURUCKYHVVCUVKUVIVUS
        UXGWFVVDMDVUBKUHUCRYKWDYIUVHUWHVUIVKUVGUVIUDABCKEFGUVPLMNUEQOPRTSUAUYAY
        JUUBUVKUWDVUQEUTUVKUCKUWCVUPUXKUVMUVOGUNZUWAGUNZUWCVUPUXKUWOUVMUWJUGZUX
        LUXMVVLUWCVKUXNUVKVVMUXJUXIWFUXTUYTUWJEGUVMUVOUWAUWMUAUUCUUDUXKVVKVUKUW
        AVUOGUXKVVKUWTUXPGUNZVUKUXKUVMUWTUVOUXPGUVKUXCUXJUXHWFUXQXSUXKVUKVUJFUK
        ZNUKZUWSUXOYLUNZNUKZVVNUXKUVFVVGVUKVVPVKUXRVVJKVUJEFMNRTSWGWAUXKVVOVVQN
        UXKUVFUVIUXJVVOVVQVKUXRUVKUVIUXJUXGWFZUXSMKUWRDUVNFUYHSRUUEWDYMUXKNYNEU
        UFUNUGZUWSYOUGUXOYOUGVVRVVNVKUVKVVTUXJUVKUWOVVTUWQENTUUGVEWFUXKYPYPUUAZ
        UUHZYOUWSYPYOUGVWAYOUGVWBYOYAUUIUUJYPVWAYOUUKUUMZUXKUVFUVIUWSVWBUGUXRVV
        SKDFMRSYQWAYRUXKVWBYOUXOVWCUXKUVFUXJUXOVWBUGUXRUXSKUVNFMRSYQWAYRUWSUXOY
        NEYLGNYOUULUUNUAUUOWDUUPUUQUXKUVTVUNUVPUTUXKUDMUVSVUMUYFHIUVRUVQMMUYNVU
        MJURJUYOVKUYFUBVHUYFUYKUVRVKZUYMUVQVKZUIZUIZUYLVULUYMUVQLVWGUYLUVRDUKZV
        ULVWGUYKUVRDUYFVWDVWEYDYMVWGUVNVIZUVQUVNVJZUGVULVWHVKVWGUXJMMUVNUURZVWI
        UVKUXJUYEVWFYCZMKUVNUWRUYHRUUSZMMUVNUUTVQVWGUVQMVWJUXKUYEVWFVLVWGUXJVWK
        VWJMVKVWLVWMMMUVNUVAVQVTUVQDUVNWCWAUVBUYFVWDVWEVRXSUYIUYGUYFVULUVQLXIUV
        DYSXRXSUVCYSXRYTUVKUWIUWGUVMGUVKUYJUWIUWGVKUYSUDABCKEFGUVPJMNUCQOPRTSUA
        UYAYJVEXRYT $.
    $}

    ${
      mdetpmtr2.e $e |- E = ( i e. N , j e. N |-> ( i M ( P ` j ) ) ) $.
      $( The determinant of a matrix with permuted columns is the determinant
         of the original matrix multiplied by the sign of the permutation.
         (Contributed by Thierry Arnoux, 22-Aug-2020.) $)
      mdetpmtr2 $p |- ( ( ( R e. CRing /\ N e. Fin ) /\ ( M e. B /\ P e. G ) )
        -> ( D ` M ) = ( ( ( Z o. S ) ` P ) .x. ( D ` E ) ) ) $=
        ( ccrg wcel cfn wa ctpos cfv ccom wceq simpll simplr mattposcl ad2antrl
        co simprr cv cmpt2 ovtpos eqcomi a1i mpt2eq3ia eqtri tposmpt2 mdetpmtr1
        syl22anc mdettpos ad2ant2r cbs eqid simp2 3ad2ant1 simp3 symgfv syl2anc
        w3a csymg simp1rl matecld matbas2d syl5eqel oveq2d 3eqtr3d ) EUCUDZMUEU
        DZUFZLBUDZDKUDZUFZUFZLUGZCUHZDNFUIUHZJUGZCUHZGUOZLCUHZWMJCUHZGUOWJWDWEW
        KBUDZWHWLWPUJWDWEWIUKZWDWEWIULZWGWSWFWHABELMOPUMUNWFWGWHUPZABCDEFGIHWNK
        WKMNOPQRSTUAHIMMIUQZDUHZHUQZWKUOZJJHIMMXEXDLUOZURZHIMMXFURUBHIMMXGXFXGX
        FUJXEMUDZXCMUDZUFXFXGXDXELUSUTVAVBVCVDVEVFWDWGWLWQUJWEWHABCELMQOPVGVHWJ
        WOWRWMGWJWDJBUDWOWRUJWTWJJXHBUBWJHIABXGEEVIUHZMUCOXKVJZPXAWTWJXIXJVPZAB
        EXEXDXKLMOXLPWJXIXJVKXMWHXJXDMUDWJXIWHXJXBVLWJXIXJVMMKDMVQUHZXCXNVJRVNV
        OWGWHWFXIXJVRVSVTWAABCEJMQOPVGVOWBWC $.
    $}

    ${
      $d Q i j k l $.  $d ph i j k l $.
      mdetpmtr12.e $e |- E = ( i e. N , j e. N |-> ( ( P ` i ) M ( Q ` j ) ) )
        $.
      mdetmptr12.r $e |- ( ph -> R e. CRing ) $.
      mdetmptr12.n $e |- ( ph -> N e. Fin ) $.
      mdetmptr12.m $e |- ( ph -> M e. B ) $.
      mdetmptr12.p $e |- ( ph -> P e. G ) $.
      mdetmptr12.q $e |- ( ph -> Q e. G ) $.
      $( The determinant of a matrix with permuted rows and columns is the
         determinant of the original matrix multiplied by the product of the
         signs of the permutations.  (Contributed by Thierry Arnoux,
         22-Aug-2020.) $)
      mdetpmtr12 $p |- ( ph -> ( D ` M )
        = ( ( Z ` ( ( S ` P ) x. ( S ` Q ) ) ) .x. ( D ` E ) ) ) $=
        ( vk vl cfv ccom cv co cmpt2 cmul ccrg wcel cfn wceq fveq2 oveq1d oveq2
        cbvmpt2v mdetpmtr1 syl22anc cbs w3a 3ad2ant1 simp2 csymg symgfv syl2anc
        eqid simp3 matecld matbas2d mdetpmtr2 eqidd ovex ovmpt2 syl6reqr fveq2d
        mpt2eq3dva oveq12d eqtr4d oveq2d crg crngring syl zrhcopsgnelbas mdetcl
        syl3anc syl5eqel ringass syl13anc zrhcofipsgn zring crh zrhrhm cneg cpr
        cz c1 wss 1z neg1z prssi mp2an psgnran sseldi zringbas zringmulr rhmmul
        eqtr3d 3eqtrd ) ANDULZEPHUMZULZUJUKOOUJUNZEULZUKUNZNUOZUPZDULZIUOZXTFXS
        ULZLDULZIUOZIUOZEHULZFHULZUQUOPULZYIIUOZAGURUSZOUTUSZNCUSZEMUSZXRYGVAUE
        UFUGUHBCDEGHIJKYEMNOPQRSTUAUBUCUJUKJKOOYDJUNZEULZKUNZNUOUUAYCNUOZYAYTVA
        YBUUAYCNYAYTEVBVCZYCUUBUUANVDVEVFVGAYFYJXTIAYFYHJKOOYTUUBFULZYEUOZUPZDU
        LZIUOZYJAYPYQYECUSFMUSZYFUUIVAUEUFAUJUKBCYDGGVHULZOURQUUKVOZRUFUEAYAOUS
        ZYCOUSZVIZBCGYBYCUUKNOQUULRUUOYSUUMYBOUSAUUMYSUUNUHVJAUUMUUNVKOMEOVLULZ
        YAUUPVOZTVMVNAUUMUUNVPAUUMYRUUNUGVJVQVRUIBCDFGHIJKUUGMYEOPQRSTUAUBUCUUG
        VOVSVGAYHYHYIUUHIAYHVTALUUGDAUUGJKOOUUAUUENUOZUPZLAJKOOUUFUURAYTOUSZUUB
        OUSZVIZUUTUUEOUSZUUFUURVAAUUTUVAVKZUVBUUJUVAUVCAUUTUUJUVAUIVJAUUTUVAVPO
        MFUUPUUBUUQTVMVNZUJUKYTUUEOOYDUURYEUUCUUDYCUUEUUANVDYEVOUUAUUENWAWBVNWE
        UDWCWDWFWGWHAXTYHIUOZYIIUOZYKYOAGWIUSZXTUUKUSZYHUUKUSZYIUUKUSZUVGYKVAAY
        PUVHUEGWJWKZAUVHYQYSUVIUVLUFUHMEGHOPTUAUBWLWNAUVHYQUUJUVJUVLUFUIMFGHOPT
        UAUBWLWNAYPLCUSUVKUEALUUSCUDAJKBCUURGUUKOURQUULRUFUEUVBBCGUUAUUEUUKNOQU
        ULRUVBYSUUTUUAOUSAUUTYSUVAUHVJUVDOMEUUPYTUUQTVMVNUVEAUUTYRUVAUGVJVQVRWO
        BCDGUUKLOSQRUULWMVNUUKGIXTYHYIUULUCWPWQAUVFYNYIIAUVFYLPULZYMPULZIUOZYNA
        XTUVMYHUVNIAYQYSXTUVMVAUFUHMEGHOPTUBUAWRVNAYQUUJYHUVNVAUFUIMFGHOPTUBUAW
        RVNWFAPWSGWTUOUSZYLXDUSYMXDUSYNUVOVAAUVHUVPUVLGPUBXAWKAXEXEXBZXCZXDYLXE
        XDUSUVQXDUSUVRXDXFXGXHXEUVQXDXIXJZAYQYSYLUVRUSUFUHMEHOTUAXKVNXLAUVRXDYM
        UVSAYQUUJYMUVRUSUFUIMFHOTUAXKVNXLYLYMWSGUQIPXDXMXNUCXOWNWGVCXPXQ $.
    $}
  $}

  ${
    mdetlap1.a $e |- A = ( N Mat R ) $.
    mdetlap1.b $e |- B = ( Base ` A ) $.
    mdetlap1.d $e |- D = ( N maDet R ) $.
    mdetlap1.k $e |- K = ( N maAdju R ) $.
    mdetlap1.t $e |- .x. = ( .r ` R ) $.
    $d .x. j $.  $d A i j $.  $d B i j $.  $d I i j $.  $d K j $.  $d M i j $.
    $d N i j $.  $d R i j $.
    $( A Laplace expansion of the determinant of a matrix, using the adjunct
       (cofactor) matrix.  (Contributed by Thierry Arnoux, 16-Aug-2020.) $)
    mdetlap1 $p |- ( ( R e. CRing /\ M e. B /\ I e. N ) -> ( D ` M )
      = ( R gsum ( j e. N |-> ( ( I M j ) .x. ( j ( K ` M ) I ) ) ) ) ) $=
      ( vi wcel cfv co wtru ccrg w3a cv wceq cmpt2 cmpt cgsu simp2 matmpt2 eqid
      cif wa simpr eqcomd oveq1d wn eqidd ifeqda trud mpt2eq123i syl6eqr fveq2d
      syl cbs simp1 simpl3 syl6eleq adantr matecl syl3anc simp3 madugsum eqtr4d
      ) DUAQZIBQZGJQZUBZICRZPFJJPUCZGUDZGFUCZISZVSWAISZUKZUEZCRZDFJWBWAGIHRSESU
      FUGSVQVOVRWFUDVNVOVPUHZVOIWECVOIPFJJWCUEWEABDPFIJKLUIPFJJWDJJWCJUJZWHWDWC
      UDTVTWBWCWCTVTULZGVSWAIWIVSGTVTUMUNUOTVTUPULWCUQURUSUTVAVBVCVQABCDEFPHDVD
      RZGIJWBKNLMOWJUJZWGVNVOVPVEVQWAJQZULVPWLIAVDRZQZWBWJQVNVOVPWLVFVQWLUMVQWN
      WLVQIBWMWGLVGVHADGWAWJIJKWKVIVJVNVOVPVKVLVM $.
  $}

  ${
    $d B i j $.  $d I i j k l $.  $d J i j k l $.  $d M i j k l $.
    $d N i j k l $.  $d P i j k l $.  $d Q i j k l $.  $d R i j k l $.
    $d i j ph $.
    madjusmdet.b $e |- B = ( Base ` A ) $.
    madjusmdet.a $e |- A = ( ( 1 ... N ) Mat R ) $.
    madjusmdet.d $e |- D = ( ( 1 ... N ) maDet R ) $.
    madjusmdet.k $e |- K = ( ( 1 ... N ) maAdju R ) $.
    madjusmdet.t $e |- .x. = ( .r ` R ) $.
    madjusmdet.z $e |- Z = ( ZRHom ` R ) $.
    madjusmdet.e $e |- E = ( ( 1 ... ( N - 1 ) ) maDet R ) $.
    madjusmdet.n $e |- ( ph -> N e. NN ) $.
    madjusmdet.r $e |- ( ph -> R e. CRing ) $.
    madjusmdet.i $e |- ( ph -> I e. ( 1 ... N ) ) $.
    madjusmdet.j $e |- ( ph -> J e. ( 1 ... N ) ) $.
    madjusmdet.m $e |- ( ph -> M e. B ) $.
    ${
      $d G i j $.  $d W i j $.  $d U i j $.
      madjusmdetlem1.g $e |- G = ( Base ` ( SymGrp ` ( 1 ... N ) ) ) $.
      madjusmdetlem1.s $e |- S = ( pmSgn ` ( 1 ... N ) ) $.
      madjusmdetlem1.u $e |- U = ( I ( ( ( 1 ... N ) minMatR1 R ) ` M ) J ) $.
      madjusmdetlem1.w $e |- W = ( i e. ( 1 ... N ) , j e. ( 1 ... N ) |->
        ( ( P ` i ) U ( Q ` j ) ) ) $.
      madjusmdetlem1.p $e |- ( ph -> P e. G ) $.
      madjusmdetlem1.q $e |- ( ph -> Q e. G ) $.
      madjusmdetlem1.1 $e |- ( ph -> ( P ` N ) = I ) $.
      madjusmdetlem1.2 $e |- ( ph -> ( Q ` N ) = J ) $.
      madjusmdetlem1.3 $e |- ( ph -> ( I ( subMat1 ` U ) J )
        = ( N ( subMat1 ` W ) N ) ) $.
      $( Lemma for ~ madjusmdet .  (Contributed by Thierry Arnoux,
         22-Aug-2020.) $)
      madjusmdetlem1 $p |- ( ph -> ( J ( K ` M ) I )
        = ( ( Z ` ( ( S ` P ) x. ( S ` Q ) ) )
          .x. ( E ` ( I ( subMat1 ` M ) J ) ) ) ) $=
        ( cfv co cmul csmat c1 cminmar1 wcel wceq maducoevalmin1 syl3anc fveq2i
        cfz syl6eqr fzfid crg ccrg crngring syl minmar1cl syl22anc syl5eqel cur
        mdetpmtr12 cmarrep cv c0g cif cmpt2 w3a simplr fveq2d 3ad2ant1 ad2antrr
        wa eqtrd simpr oveq12d eqid minmar1eval syl122anc iftruei eqtri 3eqtrrd
        a1i oveq1d simp3 csymg symgfv syl2anc iftrued ccnv symgbasf1o f1ocnvfv1
        wn wf1o cuz cn nnuz syl6eleq eluzfz2 eqtr3d 3eqtr3d ex con3d imp ifeqda
        iffalsed cvv simp2 adantr ovexd oveqi mpt2eq3ia cbs 3eqtr4d cmat oveq2d
        cmdat ovmpt4g mpt2eq3dva matecld matbas2d ringidcl marrepval csubma csn
        cmin cdif submaval fzdif2 mpt2eq12 wss difssd eqsstr3d submabas eqeltrd
        mdetcl ringlidm cmulr fveq1i eqeq12i sylibr fveq1d submat1n submatminr1
        smadiadetr eqtr4d 3eqtrd ) APORQVCVDZJDVCZEHVCFHVCVEVDUAVCZTDVCZIVDUVMO
        PRVFVCVDZMVCZIVDAUVKOPRVGSVNVDZGVHVDZVCVDZDVCZUVLARCVIZPUVQVIZOUVQVIZUV
        KUVTVJUMULUKBCDGOPQRUVQUCUBUDUEVKVLJUVSDUPVMVOABCDEFGHIKLTNJUVQUAUCUBUD
        UNUOUGUFUQUJAVGSVPZAJUVSCUPAGVQVIZUWAUWCUWBUVSCVIAGVRVIZUWEUJGVSVTZUMUK
        ULBCGOPRUVQUCUBWAWBWCZURUSWEAUVNUVPUVMIAUVNSSTVFVCVDZMVCZUVPASSTGWDVCZU
        VQGWFVDZVDVDZDVCZUVNUWJAUWMTDAKLUVQUVQKWGZSVJZLWGZSVJZUWKGWHVCZWIZUWOUW
        QTVDZWIZWJZKLUVQUVQUWOEVCZUWQFVCZUVSVDZWJZUWMTAKLUVQUVQUXBUXFAUWOUVQVIZ
        UWQUVQVIZWKZUWPUWTUXAUXFUXJUWPWPZUWRUWKUWSUXFUXKUWRWPZUXFOPUVSVDZOOVJZP
        PVJZUWKUWSWIZOPRVDZWIZUWKUXLUXDOUXEPUVSUXLUXDSEVCZOUXLUWOSEUXJUWPUWRWLW
        MUXJUXSOVJZUWPUWRAUXHUXTUXIUTWNZWOWQUXLUXESFVCZPUXLUWQSFUXKUWRWRWMUXJUY
        BPVJZUWPUWRAUXHUYCUXIVAWNWOWQWSUXLUWAUWCUWBUWCUWBUXMUXRVJUXJUWAUWPUWRAU
        XHUWAUXIUMWNZWOUXJUWCUWPUWRAUXHUWCUXIUKWNZWOZUXJUWBUWPUWRAUXHUWBUXIULWN
        ZWOZUYFUYHBCUVRGUWKOPOPRUVQUWSUCUBUVRWTZUWKWTZUWSWTZXAXBUXRUWKVJUXLUXRU
        XPUWKUXNUXPUXQOWTZXCUXOUWKUWSPWTXCXDXFXEUXKUWRXPZWPZUXFOUXEUVSVDZUXNUXE
        PVJZUWKUWSWIZOUXERVDZWIZUWSUYNUXDOUXEUVSUYNUXDUXSOUYNUWOSEUXJUWPUYMWLWM
        UXJUXTUWPUYMUYAWOWQXGUYNUWAUWCUWBUWCUXEUVQVIZUYOUYSVJUXJUWAUWPUYMUYDWOU
        XJUWCUWPUYMUYEWOZUXJUWBUWPUYMUYGWOVUAUXJUYTUWPUYMUXJFNVIZUXIUYTAUXHVUBU
        XIUSWNZAUXHUXIXHZUVQNFUVQXIVCZUWQVUEWTZUNXJXKZWOBCUVRGUWKOUXEOPRUVQUWSU
        CUBUYIUYJUYKXAXBUYNUYSUYQUWSUYNUXNUYQUYRUXNUYNUYLXFXLUYNUYPUWKUWSUXKUYM
        UYPXPUXKUYPUWRUXKUYPUWRUXKUYPWPZUXEFXMZVCZPVUIVCZUWQSVUHUXEPVUIUXKUYPWR
        WMVUHUVQUVQFXQZUXIVUJUWQVJUXJVULUWPUYPUXJVUBVULVUCUVQNFVUEVUFUNXNZVTWOU
        XJUXIUWPUYPVUDWOUVQUVQUWQFXOXKUXJVUKSVJZUWPUYPAUXHVUNUXIAUYBVUIVCZVUKSA
        UYBPVUIVAWMAVULSUVQVIZVUOSVJAVUBVULUSVUMVTASVGXRVCZVIZVUPASXSVUQUIXTYAZ
        VGSYBVTZUVQUVQSFXOXKYCWNWOYDYEYFYGYIWQXEYHUXJUWPXPZWPZUXHUXIUXFYJVIUXAU
        XFVJUXJUXHVVAAUXHUXIYKZYLUXJUXIVVAVUDYLVVBUXDUXEUVSYMKLUVQUVQUXFTYJTKLU
        VQUVQUXDUXEJVDZWJZUXGUQKLUVQUVQVVDUXFVVDUXFVJUXHUXIWPJUVSUXDUXEUPYNXFYO
        XDZUUAVLYHUUBATCVIZUWKGYPVCZVIZVUPVUPUWMUXCVJATVVECUQAKLBCVVDGVVHUVQVRU
        CVVHWTZUBUWDUJUXJBCGUXDUXEVVHJUVQUCVVJUBUXJENVIZUXHUXDUVQVIAUXHVVKUXIUR
        WNVVCUVQNEVUEUWOVUFUNXJXKVUGAUXHJCVIUXIUWHWNUUCUUDWCZAUWEVVIUWGVVHGUWKV
        VJUYJUUEVTZVUTVUTBCUWLGUWKKLSSTUVQUWSUCUBUWLWTUYKUUFWBTUXGVJAVVFXFYQWMA
        UWKSSTUVQGUUGVDZVCVDZMVCZIVDZVVPUWNUWJAUWEVVPVVHVIZVVQVVPVJUWGAUWFVVOVG
        SVGUUIVDVNVDZGYRVDZYPVCZVIVVRUJAVVOKLVVSVVSUXAWJZVWAAVVOKLUVQSUUHZUUJZV
        WDUXAWJZVWBAVVGVUPVUPVVOVWEVJVVLVUTVUTBCVVNGKLSSTUVQUCVVNWTUBUUKVLAVWDV
        VSVJZVWFVWEVWBVJAVURVWFVUSVGSUULVTZVWGKLVWDVWDVVSVVSUXAUUMXKWQAVVGVVSUV
        QUUNVWBVWAVIVVLAVVSVWDUVQVWGAUVQVWCUUOUUPBCVVSGKLTUVQUCUBUUQXKUURVVTVWA
        MGVVHVVOVVSUHVVTWTVWAWTVVJUUSXKVVHGIUWKVVPVVJUFUYJUUTXKAUWNUWKVVOVWDGYT
        VDZVCZIVDZVVQAUWMUVQGYTVDZVCZUWKVWIGUVAVCZVDZVJZUWNVWJVJAUWFTUVQGYRVDZY
        PVCZVIVUPVVIVWOUJATCVWQVVLCBYPVCVWQUBBVWPYPUCVMXDYAVUTVVMGUWKSTUVQUVHWB
        UWNVWLVWJVWNUWMDVWKUDUVBIVWMUWKVWIUFYNUVCUVDAVWIVVPUWKIAVVOVWHMAVWHVVSG
        YTVDMAVWDVVSGYTVWGXGUHVOUVEYSWQAUWIVVOMASXSVIVVGUWIVVOVJUIVVLBCGTSUCUBU
        VFXKWMYQYCAUVOUWIMAUVOOPJVFVCVDUWIABCGJOPRSUCUBUIUKULUWGUMUPUVGVBWQWMUV
        IYSUVJ $.
    $}

    ${
      $d I i x $.  $d S i j k l $.  $d T i j k l $.  $d X x $.  $d N x $.
      $d ph i x $.
      madjusmdetlem2.p $e |- P = ( i e. ( 1 ... N ) |->
          if ( i = 1 , I , if ( i <_ I , ( i - 1 ) , i ) ) ) $.
      madjusmdetlem2.s $e |- S = ( i e. ( 1 ... N ) |->
          if ( i = 1 , N , if ( i <_ N , ( i - 1 ) , i ) ) ) $.
      $( Lemma for ~ madjusmdet .  (Contributed by Thierry Arnoux,
         26-Aug-2020.) $)
      madjusmdetlem2 $p |- ( ( ph /\ X e. ( 1 ... ( N - 1 ) ) )
        -> if ( X < I , X , ( X + 1 ) ) = ( ( P o. `' S ) ` X ) ) $=
        ( vx c1 cmin co cfz wcel wa clt wbr caddc cif ccnv ccom wceq wf1o csymg
        cfv cbs cuz cn nnuz syl6eleq eluzfz2 syl eqid fzto1st symgbasf1o adantr
        fznatpl1 sylan wi cle cmpt eqeq1 breq1 oveq1 ifbieq12d ifbieq2d cbvmptv
        cv eqtri a1i simpr 1red crp fz1ssnn sseldi nnrpd ltaddrp2d ltned necomd
        id eqnetrd neneqd iffalsed cn0 nnnn0d elfzle2 biimpar syl21anc nnltp1le
        nn0ltlem1 biimpa eqbrtrd iftrued oveq1d nncnd 1cnd pncand 3eqtrd fvmptd
        eqtrd idi f1ocnvfv imp fveq2d breq1d breqtrrd ad2antrr ad3antrrr simplr
        adantlr eqtr2d wn eqbrtrrd ex con3d an32s ifeqda wfun cdm f1ocnv f1ofun
        3syl wss cdif fzdif2 difss syl6eqssr f1odm sseqtr4d sseldd fvco syl2anc
        csn eqtr4d ) APUMOUMUNUOZUPUOZUQZURZPKUSUTZPPUMVAUOZVBPGVCZVHZEVHZPEUVD
        VDVHZUVAUVBPUVCUVFUVAUVBURZUVFUVCEVHZPUVAUVFUVIVEZUVBUVAUVEUVCEUVAUMOUP
        UOZUVKGVFZUVCUVKUQZUVCGVHPVEZUVEUVCVEZAUVLUUTAGUVKVGVHZVIVHZUQZUVLAOUVK
        UQZUVRAOUMVJVHZUQZUVSAOVKUVTUEVLVMZUMOVNVOUVQUVKGIUVPOOUVKVPUKUVPVPZUVQ
        VPZVQVOZUVKUVQGUVPUWCUWDVRZVOVSAOVKUQZUUTUVMUEPOVTWAZUVAUVNWBUVAULUVCUL
        WKZUMVEZOUWIOWCUTZUWIUMUNUOZUWIVBZVBZPUVKGUUSGULUVKUWNWDZVEUVAGIUVKIWKZ
        UMVEZOUWPOWCUTZUWPUMUNUOZUWPVBZVBZWDUWOUKIULUVKUXAUWNUWPUWIVEZUWQUWJUWT
        UWMOUWPUWIUMWEZUXBUWRUWKUWSUWPUWLUWIUWPUWIOWCWFUWPUWIUMUNWGZUXBXCZWHWIW
        JWLWMUVAUWIUVCVEZURZUWNUWMUWLPUXGUWJOUWMUXGUWIUMUXGUWIUVCUMUVAUXFWNZUXG
        UMUVCUXGUMUVCUXGWOZUXGUMPUXIUVAPWPUQUXFUVAPUVAUUSVKPUURWQAUUTWNZWRZWSVS
        WTZXAXBXDXEXFUXGUWKUWLUWIUXGUWIUVCOWCUXHUVAUVCOWCUTZUXFUVAPVKUQZUWGPOUS
        UTZUXMUXKAUWGUUTUEVSZUVAPXGUQZOXGUQZPUURWCUTZUXOUVAPUXKXHUVAOUXPXHUVAUU
        TUXSUXJPUMUURXIVOUXQUXRURUXOUXSPOXMXJXKUXNUWGURUXOUXMPOXLXNXKVSXOXPUXGU
        WLUVCUMUNUOZPUXGUWIUVCUMUNUXHXQUVAUXTPVEUXFUVAPUMUVAPUXKXRUVAXSXTVSYCZY
        AUWHUXJYBYDUVLUVMURUVNUVOUVKUVKUVCPGYEYFXKYGZVSUVHULUVCUWJKUWIKWCUTZUWL
        UWIVBZVBZPUVKEUUSEULUVKUYEWDZVEZUVHEIUVKUWQKUWPKWCUTZUWSUWPVBZVBZWDUYFU
        JIULUVKUYJUYEUXBUWQUWJUYIUYDKUXCUXBUYHUYCUWSUWPUWLUWIUXBUWPUWIKWCUXEYHU
        XDUXEWHWIWJWLZWMUVHUXFURZUYEUYDUWLPUVAUXFUYEUYDVEZUVBUXGUWJKUYDUXGUWIUM
        UXGUMUWIUXGUMUWIUXIUXGUMUVCUWIUSUXLUXHYIXAXBXEXFZYMUYLUYCUWLUWIUYLUWIUV
        CKWCUVHUXFWNUYLUXNKVKUQZUVBUVCKWCUTZUVAUXNUVBUXFUXKYJAUYOUUTUVBUXFAUVKV
        KKOWQUGWRZYKUVAUVBUXFYLUXNUYOURZUVBUYPPKXLZXNXKXOXPUVAUXFUWLPVEUVBUYAYM
        YAUVAUVMUVBUWHVSAUUTUVBYLYBYNUVAUVBYOZURZUVFUVIUVCUVAUVJUYTUYBVSVUAULUV
        CUYEUVCUVKEUVKUYGVUAUYKWMVUAUXFURZUYEUYDUVCUVAUXFUYMUYTUYNYMVUBUYDUWIUV
        CVUBUYCUWLUWIUVAUXFUYTUYCYOZUXGUYTVUCUXGUYCUVBUXGUYCUVBUXGUYCURZUXNUYOU
        YPUVBUVAUXNUXFUYCUXKYJAUYOUUTUXFUYCUYQYKVUDUWIUVCKWCUXGUXFUYCUXHVSUXGUY
        CWNYPUYRUVBUYPUYSXJXKYQYRYFYSXFVUAUXFWNYCYCUVAUVMUYTUWHVSZVUEYBYNYTUVAU
        VDUUAZPUVDUUBZUQUVGUVFVEAVUFUUTAUVKUVKUVDVFZVUFAUVRUVLVUHUWEUWFUVKUVKGU
        UCUUEZUVKUVKUVDUUDVOVSUVAUUSVUGPAUUSVUGUUFUUTAUUSUVKVUGAUUSUVKOUUPZUUGZ
        UVKAUWAVUKUUSVEUWBUMOUUHVOUVKVUJUUIUUJAVUHVUGUVKVEVUIUVKUVKUVDUUKVOUULV
        SUXJUUMPEUVDUUNUUOUUQ $.

      madjusmdetlem4.q $e |- Q = ( j e. ( 1 ... N ) |->
          if ( j = 1 , J , if ( j <_ J , ( j - 1 ) , j ) ) ) $.
      madjusmdetlem4.t $e |- T = ( j e. ( 1 ... N ) |->
          if ( j = 1 , N , if ( j <_ N , ( j - 1 ) , j ) ) ) $.
      ${
        $d U i j $.  $d W i j $.
        madjusmdetlem3.w $e |- W = ( i e. ( 1 ... N ) , j e. ( 1 ... N ) |->
          ( ( ( P o. `' S ) ` i ) U ( ( Q o. `' T ) ` j ) ) ) $.
        madjusmdetlem3.u $e |- ( ph -> U e. B ) $.
        $( Lemma for ~ madjusmdet .  (Contributed by Thierry Arnoux,
           27-Aug-2020.) $)
        madjusmdetlem3 $p |- ( ph -> ( I ( subMat1 ` U ) J )
          = ( N ( subMat1 ` W ) N ) ) $=
          ( csmat cfv co c1 cmin cfz cxp cres wceq cv wral wcel wa ccnv cvv wss
          ccom csn cdif cuz cn nnuz syl6eleq fzdif2 syl syl6eqssr adantr simprl
          difss sseldd simprr ovexd ovmpt4g syl3anc ovresd clt wbr cif cbs eqid
          caddc cmap fz1ssnn sseldi eqidd smatlem madjusmdetlem2 syldan oveq12d
          matbas2i eqtrd 3eqtr4rd ralrimivva cmat smatcl cmpt2 ccrg fzfid csymg
          w3a fzto1st cminusg eluzfz2 symginv cgrp cfn symggrp grpinvcl syl2anc
          wb eqeltrrd cplusg symgov symgcl 3ad2ant1 simp2 symgfv simp3 matbas2d
          matecld syl5eqel submatres eqmat mpbird eqtr4d ) AOPKUTVAVBZTVCSVCVDV
          BVEVBZUUFVFVGZSSTUTVAVBZAUUEUUGVHZLVIZMVIZUUEVBZUUJUUKUUGVBZVHZMUUFVJ
          LUUFVJZAUUNLMUUFUUFAUUJUUFVKZUUKUUFVKZVLZVLZUUJUUKTVBZUUJEHVMZVPZVAZU
          UKFIVMZVPZVAZKVBZUUMUULUUSUUJVCSVEVBZVKZUUKUVHVKZUVGVNVKUUTUVGVHUUSUU
          FUVHUUJAUUFUVHVOUURAUUFUVHSVQZVRZUVHASVCVSVAZVKZUVLUUFVHASVTUVMUIWAWB
          ZVCSWCWDUVHUVKWHWEWFZAUUPUUQWGZWIZUUSUUFUVHUUKUVPAUUPUUQWJZWIZUUSUVCU
          VFKWKLMUVHUVHUVGTVNURWLWMUUSUUJUUKTUUFUVQUVSWNUUSUULUUJOWOWPUUJUUJVCW
          TVBWQZUUKPWOWPUUKUUKVCWTVBWQZKVBUVGUUSKGWRVAZUUEUUJUUKOPSSUWAUWBUUEWS
          ZASVTVKZUURUIWFZUWFAOUVHVKZUURUKWFAPUVHVKZUURULWFAKUWCUVHUVHVFXAVBVKZ
          UURAKCVKZUWIUSBCGUWCKUVHUCUWCWSZUBXIWDWFUUSUVHVTUUJSXBZUVRXCUUSUVHVTU
          UKUWLUVTXCUUSUWAXDUUSUWBXDXEUUSUWAUVCUWBUVFKAUURUUPUWAUVCVHUVQABCDEGH
          JLNOOQRSUUJUAUBUCUDUEUFUGUHUIUJUKUKUMUNUOXFXGAUURUUQUWBUVFVHUVSABCDFG
          IJMNPPQRSUUKUAUBUCUDUEUFUGUHUIUJULULUMUPUQXFXGXHXJXKXLAUUEUUFGXMVBZWR
          VAZVKUUGUWNVKUUIUUOYIABCUWNGUUEOPKSUCUBUWNWSZUWDUIUKULUSXNAUUHUUGUWNA
          UWETCVKUUHUUGVHUIATLMUVHUVHUVGXOCURALMBCUVGGUWCUVHXPUCUWKUBAVCSXQZUJA
          UVIUVJXSZBCGUVCUVFUWCKUVHUCUWKUBUWQUVBUVHXRVAZWRVAZVKZUVIUVCUVHVKAUVI
          UWTUVJAEUWSVKZUVAUWSVKZUWTAUWGUXAUKUWSUVHELUWROSUVHWSZUNUWRWSZUWSWSZX
          TWDAHUWRYAVAZVAZUVAUWSAHUWSVKZUXGUVAVHASUVHVKZUXHAUVNUXIUVOVCSYBWDZUW
          SUVHHLUWRSSUXCUOUXDUXEXTWDZUVHUWSHUWRUXFUXDUXEUXFWSZYCWDAUWRYDVKZUXHU
          XGUWSVKAUVHYEVKUXMUWPUVHUWRYEUXDYFWDZUXKUWSUWRUXFHUXEUXLYGYHYJUXAUXBV
          LEUVAUWRYKVAZVBUVBUWSUVHUWSUXOUWREUVAUXDUXEUXOWSZYLUVHUWSUXOUWREUVAUX
          DUXEUXPYMYJYHYNAUVIUVJYOUVHUWSUVBUWRUUJUXDUXEYPYHUWQUVEUWSVKZUVJUVFUV
          HVKAUVIUXQUVJAFUWSVKZUVDUWSVKZUXQAUWHUXRULUWSUVHFMUWRPSUXCUPUXDUXEXTW
          DAIUXFVAZUVDUWSAIUWSVKZUXTUVDVHAUXIUYAUXJUWSUVHIMUWRSSUXCUQUXDUXEXTWD
          ZUVHUWSIUWRUXFUXDUXEUXLYCWDAUXMUYAUXTUWSVKUXNUYBUWSUWRUXFIUXEUXLYGYHY
          JUXRUXSVLFUVDUXOVBUVEUWSUVHUWSUXOUWRFUVDUXDUXEUXPYLUVHUWSUXOUWRFUVDUX
          DUXEUXPYMYJYHYNAUVIUVJYQUVHUWSUVEUWRUUKUXDUXEYPYHAUVIUWJUVJUSYNYSYRYT
          ZBCGTSUCUBUUAYHZABCUWNGUUHSSTSUCUBUWOUUHWSUIUXJUXJUYCXNYJUWMUWNGLMUUF
          UUEUUGUWMWSUWOUUBYHUUCUYDUUD $.
      $}

      $( Lemma for ~ madjusmdet .  (Contributed by Thierry Arnoux,
         22-Aug-2020.) $)
      madjusmdetlem4 $p |- ( ph -> ( J ( K ` M ) I ) =
      ( ( Z ` ( -u 1 ^ ( I + J ) ) ) .x. ( E ` ( I ( subMat1 ` M ) J ) ) ) ) $=
        ( vk vl cfv co ccnv ccom cfz cpsgn cmul csmat cneg caddc cminmar1 csymg
        c1 cexp cbs cv cmpt2 eqid wceq fveq2 oveq1d oveq2d cbvmpt2v fzto1st syl
        wcel cminusg cuz cn nnuz syl6eleq eluzfz2 symginv cgrp symggrp grpinvcl
        cfn fzfid syl2anc eqeltrrd wa cplusg symgov symgcl wfun wf1o symgbasf1o
        cdm wf1 f1of1 df-f1 simprbi 3syl f1ocnv f1odm eleqtrrd fvco fzto1stinvn
        fveq2d fzto1stfv1 3eqtrd crg ccrg crngring minmar1cl psgnco psgnfzto1st
        wf syl3anc psgninv eqtrd oveq12d sseldi nnnn0d cn0 a1i nn0addcld expcld
        expaddd c2 nncnd oveq2i syl6eq syl22anc madjusmdetlem3 1cnd negcld 1nn0
        madjusmdetlem1 fz1ssnn mul4d add4d 1p1e2 neg1sqe1 mulid1d eqtr3d cz cpr
        2nn0 nn0zd m1expcl2 1neg1t1neg1 ) AONQPURUSEHUTZVAZVJRVBUSZVCURZURZFIUT
        ZVAZUVCURZVDUSZSURZNOQVEURUSMURZJUSVJVFZNOVGUSZVKUSZSURZUVJJUSABCDUVAUV
        FGUVCJNOQUVBGVHUSURUSZKLMUVBVIURZVLURZNOPQRUPUQUVBUVBUPVMZUVAURZUQVMZUV
        FURZUVOUSZVNZSTUAUBUCUDUEUFUGUHUIUJUKUVQVOZUVCVOZUVOVOUPUQKLUVBUVBUWBKV
        MZUVAURZLVMZUVFURZUVOUSUWGUWAUVOUSUVRUWFVPUVSUWGUWAUVOUVRUWFUVAVQVRUVTU
        WHVPUWAUWIUWGUVOUVTUWHUVFVQVSVTZAEUVQWCZUUTUVQWCZUVAUVQWCANUVBWCZUWKUIU
        VQUVBEKUVPNRUVBVOZULUVPVOZUWDWAWBZAHUVPWDURZURZUUTUVQAHUVQWCZUWRUUTVPAR
        UVBWCZUWSARVJWEURZWCUWTARWFUXAUGWGWHVJRWIWBZUVQUVBHKUVPRRUWNUMUWOUWDWAW
        BZUVBUVQHUVPUWQUWOUWDUWQVOZWJWBAUVPWKWCZUWSUWRUVQWCAUVBWNWCZUXEAVJRWOZU
        VBUVPWNUWOWLWBZUXCUVQUVPUWQHUWDUXDWMWPWQZUWKUWLWREUUTUVPWSURZUSUVAUVQUV
        BUVQUXJUVPEUUTUWOUWDUXJVOZWTUVBUVQUXJUVPEUUTUWOUWDUXKXAWQWPAFUVQWCZUVEU
        VQWCZUVFUVQWCAOUVBWCZUXLUJUVQUVBFLUVPORUWNUNUWOUWDWAWBZAIUWQURZUVEUVQAI
        UVQWCZUXPUVEVPAUWTUXQUXBUVQUVBILUVPRRUWNUOUWOUWDWAWBZUVBUVQIUVPUWQUWOUW
        DUXDWJWBAUXEUXQUXPUVQWCUXHUXRUVQUVPUWQIUWDUXDWMWPWQZUXLUXMWRFUVEUXJUSUV
        FUVQUVBUVQUXJUVPFUVEUWOUWDUXKWTUVBUVQUXJUVPFUVEUWOUWDUXKXAWQWPARUVAURZR
        UUTURZEURZVJEURZNAUUTXBZRUUTXEZWCUXTUYBVPAUVBUVBHXCZUVBUVBHXFZUYDAUWSUY
        FUXCUVBUVQHUVPUWOUWDXDWBZUVBUVBHXGUYGUVBUVBHYEUYDUVBUVBHXHXIXJARUVBUYEU
        XBAUYFUVBUVBUUTXCUYEUVBVPUYHUVBUVBHXKUVBUVBUUTXLXJXMREUUTXNWPAUYAVJEAUW
        TUYAVJVPUXBUVQUVBHKUVPRRUWNUMUWOUWDXOWBXPAUWMUYCNVPUIUVBEKNRUWNULXQWBXR
        ARUVFURZRUVEURZFURZVJFURZOAUVEXBZRUVEXEZWCUYIUYKVPAUVBUVBIXCZUVBUVBIXFZ
        UYMAUXQUYOUXRUVBUVQIUVPUWOUWDXDWBZUVBUVBIXGUYPUVBUVBIYEUYMUVBUVBIXHXIXJ
        ARUVBUYNUXBAUYOUVBUVBUVEXCUYNUVBVPUYQUVBUVBIXKUVBUVBUVEXLXJXMRFUVEXNWPA
        UYJVJFAUWTUYJVJVPUXBUVQUVBILUVPRRUWNUOUWOUWDXOWBXPAUXNUYLOVPUJUVBFLORUW
        NUNXQWBXRABCDEFGHIJUVOKLMNOPQRUWCSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUWJAGX
        SWCZQCWCUWMUXNUVOCWCAGXTWCUYRUHGYAWBUKUIUJBCGNOQUVBUATYBUUAUUBUUFAUVIUV
        NUVJJAUVHUVMSAUVHUVKNVJVGUSZVKUSZUVKRVJVGUSZVKUSZVDUSZUVKOVJVGUSZVKUSZV
        UBVDUSZVDUSZUVMAUVDVUCUVGVUFVDAUVDEUVCURZUUTUVCURZVDUSZVUCAUXFUWKUWLUVD
        VUJVPUXGUWPUXIUVBUVQUVPEUUTUVCUWOUWEUWDYCYFAVUHUYTVUIVUBVDAUWMVUHUYTVPU
        IUVQUVBEUVCKUVPNRUWNULUWOUWDUWEYDWBAVUIHUVCURZVUBAUXFUWSVUIVUKVPUXGUXCU
        VBUVQUVPHUVCUWOUWEUWDYGWPAUWTVUKVUBVPUXBUVQUVBHUVCKUVPRRUWNUMUWOUWDUWEY
        DWBYHYIYHAUVGFUVCURZUVEUVCURZVDUSZVUFAUXFUXLUXMUVGVUNVPUXGUXOUXSUVBUVQU
        VPFUVEUVCUWOUWEUWDYCYFAVULVUEVUMVUBVDAUXNVULVUEVPUJUVQUVBFUVCLUVPORUWNU
        NUWOUWDUWEYDWBAVUMIUVCURZVUBAUXFUXQVUMVUOVPUXGUXRUVBUVQUVPIUVCUWOUWEUWD
        YGWPAUWTVUOVUBVPUXBUVQUVBIUVCLUVPRRUWNUOUWOUWDUWEYDWBYHYIYHYIAVUGUYTVUE
        VDUSZVUBVUBVDUSZVDUSUVMVJVDUSZUVMAUYTVUBVUEVUBAUVKUYSAVJAUUCZUUDZANVJAN
        AUVBWFNRUUGZUIYJZYKZVJYLWCAUUEYMZYNZYOAUVKVUAVUTARVJARUGYKVVDYNZYOZAUVK
        VUDVUTAOVJAOAUVBWFOVVAUJYJZYKZVVDYNZYOVVGUUHAVUPUVMVUQVJVDAUVKUYSVUDVGU
        SZVKUSZVUPUVMAUVKUYSVUDVUTVVJVVEYPAVVLUVKUVLYQVGUSZVKUSZVURUVMAVVKVVMUV
        KVKAVVKUVLVJVJVGUSZVGUSVVMANVJOVJANVVBYRVUSAOVVHYRVUSUUIVVOYQUVLVGUUJYS
        YTVSAVVNUVMUVKYQVKUSZVDUSVURAUVKUVLYQVUTYQYLWCAUUPYMANOVVCVVIYNZYPVVPVJ
        UVMVDUUKYSYTAUVMAUVKUVLVUTVVQYOUULZXRUUMAVUAUUNWCVUBUVKVJUUOWCVUQVJVPAV
        UAVVFUUQVUAUURVUBUUSXJYIVVRXRYHXPVRYH $.
    $}

    $( Express the cofactor of the matrix, i.e. the entries of its adjunct
       matrix, using determinant of submatrixes.  (Contributed by Thierry
       Arnoux, 23-Aug-2020.) $)
    madjusmdet $p |- ( ph -> ( J ( K ` M ) I ) = ( ( Z ` ( -u 1 ^ ( I + J ) ) )
      .x. ( E ` ( I ( subMat1 ` M ) J ) ) ) ) $=
      ( vk vl vi vj c1 cfz co wceq cle wbr cmin cif eqeq1 breq1 oveq1 ifbieq12d
      cv cmpt id ifbieq2d cbvmptv madjusmdetlem4 ) ABCDUFUJLUKULZUFVBZUJUMZHVIH
      UNUOZVIUJUPULZVIUQZUQZVCUGVHUGVBZUJUMZIVOIUNUOZVOUJUPULZVOUQZUQZVCEUFVHVJ
      LVILUNUOZVLVIUQZUQZVCUGVHVPLVOLUNUOZVRVOUQZUQZVCFUHUIGHIJKLMNOPQRSTUAUBUC
      UDUEUFUHVHVNUHVBZUJUMZHWGHUNUOZWGUJUPULZWGUQZUQVIWGUMZVJWHVMWKHVIWGUJURZW
      LVKWIVLVIWJWGVIWGHUNUSVIWGUJUPUTZWLVDZVAVEVFUFUHVHWCWHLWGLUNUOZWJWGUQZUQW
      LVJWHWBWQLWMWLWAWPVLVIWJWGVIWGLUNUSWNWOVAVEVFUGUIVHVTUIVBZUJUMZIWRIUNUOZW
      RUJUPULZWRUQZUQVOWRUMZVPWSVSXBIVOWRUJURZXCVQWTVRVOXAWRVOWRIUNUSVOWRUJUPUT
      ZXCVDZVAVEVFUGUIVHWFWSLWRLUNUOZXAWRUQZUQXCVPWSWEXHLXDXCWDXGVRVOXAWRVOWRLU
      NUSXEXFVAVEVFVG $.

    $d .x. j $.  $d A j $.  $d B j $.  $d I j $.  $d K j $.  $d M j $.
    $d N j $.  $d R j $.  $d j ph $.
    $( Laplace expansion of the determinant of a square matrix.  (Contributed
       by Thierry Arnoux, 19-Aug-2020.) $)
    mdetlap $p |- ( ph -> ( D ` M )
      = ( R gsum ( j e. ( 1 ... N ) |-> ( ( Z ` ( -u 1 ^ ( I + j ) ) )
        .x. ( ( I M j ) .x. ( E ` ( I ( subMat1 ` M ) j ) ) ) ) ) ) ) $=
      ( cfv c1 cfz co cv cmpt cgsu cneg caddc cexp csmat ccrg wcel wceq syl3anc
      mdetlap1 wa cn adantr simpr madjusmdet oveq2d cbs matecld cz wf crg zring
      eqid crh crngring syl zrhrhm zringbas rhmf 3syl cn0 1zzd znegcld nnaddcld
      fz1ssnn sseldi nnnn0d zexpcl syl2anc ffvelrnd crngcom oveq1d cmin ringass
      cmat smatcl mdetcl syl13anc 3eqtr3d eqtrd mpteq2dva ) ALDUGZEGUHMUIUJZIGU
      KZLUJZXFILKUGUJZFUJZULZUMUJZEGXEUHUNZIXFUOUJZUPUJZNUGZXGIXFLUQUGUJZHUGZFU
      JFUJZULZUMUJAEURUSZLCUSZIXEUSZXDXKUTUCUFUDBCDEFGIKLXEPOQRSVBVAAXJXSEUMAGX
      EXIXRAXFXEUSZVCZXIXGXOXQFUJZFUJZXRYDXHYEXGFYDBCDEFHIXFKLMNOPQRSTUAAMVDUSY
      CUBVEZAXTYCUCVEZAYBYCUDVEZAYCVFZAYAYCUFVEZVGVHYDXGXOFUJZXQFUJZXOXGFUJZXQF
      UJZYFXRYDYLYNXQFYDXTXGEVIUGZUSZXOYPUSZYLYNUTYHYDBCEIXFYPLXEPYPVOZOYIYJYKV
      JZYDVKYPXNNAVKYPNVLZYCAEVMUSZNVNEVPUJUSUUAAXTUUBUCEVQZVRENTVSVKYPVNENVTYS
      WAWBVEYDXLVKUSXMWCUSXNVKUSYDUHYDWDWEYDXMYDIXFYDXEVDIMWGZYIWHYDXEVDXFUUDYJ
      WHWFWIXLXMWJWKWLZYPEFXGXOYSSWMVAWNYDUUBYQYRXQYPUSZYMYFUTYDXTUUBYHUUCVRZYT
      UUEYDXTXPUHMUHWOUJUIUJZEWQUJZVIUGZUSUUFYHYDBCUUJEXPIXFLMPOUUJVOZXPVOYGYIY
      JYKWRUUIUUJHEYPXPUUHUAUUIVOUUKYSWSWKZYPEFXGXOXQYSSWPWTYDUUBYRYQUUFYOXRUTU
      UGUUEYTUULYPEFXOXGXQYSSWPWTXAXBXCVHXB $.
  $}

$(
  @{
    m3det.n @e |- N = ( 1 ... 3 ) @.
    m3det.d @e |- D = ( N maDet R ) @.
    m3det.a @e |- A = ( N Mat R ) @.
    m3det.b @e |- B = ( Base ` A ) @.
    m3det.p @e |- .+ = ( +g ` R ) @.
    m3det.m @e |- .- = ( -g ` R ) @.
    m3det.t @e |- .x. = ( .r ` R ) @.
    @( Rule of Sarrus.  Expanded formula for the computation of the determinent
       of 3x3-matrices.  (Contributed by Thierry Arnoux, 16-Aug-2020.) @)
    m3det @p |- ( ( R e. CRing /\ M e. B ) -> ( D ` M ) = ( (
          ( ( ( ( 1 M 1 ) .x. ( 2 M 2 ) ) .x. ( 3 M 3 ) )
         .- ( ( ( 1 M 1 ) .x. ( 2 M 3 ) ) .x. ( 3 M 2 ) ) )
       .+ ( ( ( ( 1 M 2 ) .x. ( 2 M 3 ) ) .x. ( 3 M 1 ) )
         .- ( ( ( 1 M 2 ) .x. ( 2 M 1 ) ) .x. ( 3 M 3 ) ) ) )
       .+ ( ( ( ( 1 M 3 ) .x. ( 2 M 1 ) ) .x. ( 3 M 2 ) )
         .- ( ( ( 1 M 3 ) .x. ( 2 M 2 ) ) .x. ( 3 M 1 ) ) )
       ) ) @=
      ? @.
  @}
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Topology
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Open maps
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d A a b x y z $.  $d B a b x y z $.  $d F a b c x y z $.
    $d G a b c x y z $.  $d X a b c z $.  $d Y a b c z $.
    fvproj.h $e |- H = ( x e. A , y e. B |-> <. ( F ` x ) , ( G ` y ) >. ) $.
    ${
      fvproj.x $e |- ( ph -> X e. A ) $.
      fvproj.y $e |- ( ph -> Y e. B ) $.
      $( Value of a function on pairs, given two projections ` F ` and ` G ` .
         (Contributed by Thierry Arnoux, 30-Dec-2019.) $)
      fvproj $p |- ( ph -> ( H ` <. X , Y >. ) = <. ( F ` X ) , ( G ` Y ) >. )
        $=
        ( va vb cop cfv wceq cv fveq2 co df-ov wcel opeq1d cmpt2 cbvmpt2v eqtri
        opeq2d opex ovmpt2 syl2anc syl5eqr ) AIJPHQIJHUAZIFQZJGQZPZIJHUBAIDUCJE
        UCUMUPRLMNOIJDENSZFQZOSZGQZPZUPHUNUTPUQIRURUNUTUQIFTUDUSJRUTUOUNUSJGTUH
        HBCDEBSZFQZCSZGQZPZUENODEVAUEKBCNODEVFVAURVEPVBUQRVCURVEVBUQFTUDVDUSRVE
        UTURVDUSGTUHUFUGUNUOUIUJUKUL $.
    $}

    ${
      $d H a b c x y z $.  $d ph a b c z $.
      fimaproj.f $e |- ( ph -> F Fn A ) $.
      fimaproj.g $e |- ( ph -> G Fn B ) $.
      fimaproj.x $e |- ( ph -> X C_ A ) $.
      fimaproj.y $e |- ( ph -> Y C_ B ) $.
      $( Image of a cartesian product for a function on pairs, given two
         projections ` F ` and ` G ` .  (Contributed by Thierry Arnoux,
         30-Dec-2019.) $)
      fimaproj $p |- ( ph -> ( H " ( X X. Y ) ) = ( ( F " X ) X. ( G " Y ) ) )
        $=
        ( vz wcel cfv wceq wa vc va vb cxp cima wrex wfn wss c1st c2nd cop opex
        cv wb cmpt2 cmpt vex op1std fveq2d op2ndd opeq12d mpt2mpt eqtr4i fnmpti
        xpss12 syl2anc fvelimab sylancr simp-4r opelxpi simpllr ad5antr 1st2nd2
        simplr simpr sseldd fvproj ad5antlr 3eqtr4d fveq2 eqeq1d wfun ad3antrrr
        rspcev fnfun syl xp2nd ad3antlr fvelima r19.29a adantr xp1st adantl cvv
        ad2antrr fvmpt2 sylancl fnfvima syl3anc eqeltrd eqeltrrd impbida bitr4d
        r19.29an eqrdv ) AUAHIJUDZUEZFIUEZGJUEZUDZAUAUMZXGQZPUMZHRZXKSZPXFUFZXK
        XJQZAHDEUDZUGXFXRUHZXLXPUNPXRXMUIRZFRZXMUJRZGRZUKZHYAYCULZHBCDEBUMZFRZC
        UMZGRZUKZUOPXRYDUPKBCPDEYDYJXMYFYHUKSZYAYGYCYIYKXTYFFYFYHXMBUQZCUQZURUS
        YKYBYHGYFYHXMYLYMUTUSVAVBVCZVDAIDUHZJEUHZXSNOIDJEVEVFZPXRXFXKHVGVHAXQXP
        AXQTZUBUMZFRZXKUIRZSZXPUBIYRYSIQZTZUUBTZUCUMZGRZXKUJRZSZXPUCJUUEUUFJQZT
        ZUUITZYSUUFUKZXFQZUUMHRZXKSZXPUULUUCUUJUUNYRUUCUUBUUJUUIVIZUUEUUJUUIVNZ
        YSUUFIJVJVFUULYTUUGUKUUAUUHUKZUUOXKUULYTUUAUUGUUHUUDUUBUUJUUIVKUUKUUIVO
        VAUULBCDEFGHYSUUFKUULIDYSAYOXQUUCUUBUUJUUINVLUUQVPUULJEUUFAYPXQUUCUUBUU
        JUUIOVLUURVPVQXQXKUUSSAUUCUUBUUJUUIXKXHXIVMVRVSXOUUPPUUMXFXMUUMSXNUUOXK
        XMUUMHVTWAWDVFUUEGWBZUUHXIQZUUIUCJUFUUEGEUGZUUTAUVBXQUUCUUBMWCEGWEWFXQU
        VAAUUCUUBXKXHXIWGWHUCUUHJGWIVFWJYRFWBZUUAXHQZUUBUBIUFYRFDUGZUVCAUVEXQLW
        KDFWEWFXQUVDAXKXHXIWLWMUBUUAIFWIVFWJAXOXQPXFAXMXFQZTZXOTZXNXKXJUVGXOVOU
        VHXNYDXJUVHXMXRQYDWNQXNYDSUVHXFXRXMAXSUVFXOYQWOAUVFXOVNZVPYEPXRYDWNHYNW
        PWQUVHYAXHQZYCXIQZYDXJQUVHUVEYOXTIQZUVJAUVEUVFXOLWOAYOUVFXONWOUVHUVFUVL
        UVIXMIJWLWFDIFXTWRWSUVHUVBYPYBJQZUVKAUVBUVFXOMWOAYPUVFXOOWOUVHUVFUVMUVI
        XMIJWGWFEJGYBWRWSYAYCXHXIVJVFWTXAXDXBXCXE $.
    $}
  $}

  ${
    $d A a b c x y z $.  $d F a b x y $.  $d G b x y $.  $d H a b c x y z $.
    $d J x y z $.  $d K x y z $.  $d L a b c x y z $.  $d M a b c x y z $.
    $d X x y $.  $d Y x y $.  $d c ph x y z $.
    txomap.f $e |- ( ph -> F : X --> Z ) $.
    txomap.g $e |- ( ph -> G : Y --> T ) $.
    txomap.j $e |- ( ph -> J e. ( TopOn ` X ) ) $.
    txomap.k $e |- ( ph -> K e. ( TopOn ` Y ) ) $.
    txomap.l $e |- ( ph -> L e. ( TopOn ` Z ) ) $.
    txomap.m $e |- ( ph -> M e. ( TopOn ` T ) ) $.
    txomap.1 $e |- ( ( ph /\ x e. J ) -> ( F " x ) e. L ) $.
    txomap.2 $e |- ( ( ph /\ y e. K ) -> ( G " y ) e. M ) $.
    txomap.a $e |- ( ph -> A e. ( J tX K ) ) $.
    txomap.h $e |- H = ( x e. X , y e. Y |-> <. ( F ` x ) , ( G ` y ) >. ) $.
    $( Given two open maps ` F ` and ` G ` , ` H ` mapping pairs of sets, is
       also an open map for the product topology.  (Contributed by Thierry
       Arnoux, 29-Dec-2019.) $)
    txomap $p |- ( ph -> ( H " A ) e. ( L tX M ) ) $=
      ( vc va vb vz cima ctx co wcel cxp wss wrex wral cfv wceq simp-6l simpllr
      cv wa syl2anc simplr wfn cop fnmpt2i a1i ctopon syl toponss xpss12 simprl
      opex fnfvima syl3anc simp-4r wf ffn 3syl fimaproj 3eltr3d imass2 ad2antll
      eqsstr3d xpeq1 eleq2d anbi12d xpeq2 rspc2ev syl112anc eltx mpbid r19.21bi
      sseq1d wb adantlr adantr r19.29vva wfun mpt2fun fvelima r19.29a ralrimiva
      mpan adantl mpbird ) AHDUJZKLUKULUMZUFVBZUGVBZUHVBZUNZUMZXNXIUOZVCZUHLUPU
      GKUPZUFXIUQZAXRUFXIAXKXIUMZVCZUIVBZHURZXKUSZXRUIDYAYBDUMZVCZYDVCZYBBVBZCV
      BZUNZUMZYJDUOZVCZXRBCIJYGYHIUMZVCZYIJUMZVCZYMVCZFYHUJZKUMZGYIUJZLUMZXKYSU
      UAUNZUMZUUCXIUOZXRYRAYNYTAXTYEYDYNYPYMUTZYGYNYPYMVAZUBVDYRAYPUUBUUFYOYPYM
      VEZUCVDYRYCHYJUJZXKUUCYRHMNUNZVFZYJUUJUOZYKYCUUIUMUUKYRBCMNYHFURZYIGURZVG
      ZHUEUUMUUNVOVHVIYRYHMUOZYINUOZUULYRIMVJURZUMZYNUUPYRAUUSUUFRVKUUGYHIMVLVD
      ZYRJNVJURZUMZYPUUQYRAUVBUUFSVKUUHYIJNVLVDZYHMYINVMVDYQYKYLVNUUJYJHYBVPVQY
      FYDYNYPYMVRYRBCMNFGHYHYIUEYRAMOFVSFMVFUUFPMOFVTWAYRANEGVSGNVFUUFQNEGVTWAU
      UTUVCWBZWCYRUUCUUIXIUVDYLUUIXIUOYQYKYJDHWDWEWFXQUUDUUEVCXKYSXMUNZUMZUVEXI
      UOZVCUGUHYSUUAKLXLYSUSZXOUVFXPUVGUVHXNUVEXKXLYSXMWGZWHUVHXNUVEXIUVIWPWIXM
      UUAUSZUVFUUDUVGUUEUVJUVEUUCXKXMUUAYSWJZWHUVJUVEUUCXIUVKWPWIWKWLYFYMCJUPBI
      UPZYDAYEUVLXTAUVLUIDADIJUKULUMZUVLUIDUQZUDAUUSUVBUVMUVNWQRSBCDIJUURUVAUIW
      MVDWNWOWRWSWTXTYDUIDUPZAHXAXTUVOBCMNUUOHUEXBUIXKDHXCXFXGXDXEAKOVJURZUMLEV
      JURZUMXJXSWQTUAUGUHXIKLUVPUVQUFWMVDXH $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Regular spaces
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
$(
    regclnei.1 @e |- X = U. J @.
    regclnei.2 @e |- B = ( ( Clsd ` J ) i^i ( ( nei ` J ) ` { A } ) ) @.
    @( For a regular space ` J ` , the set of closed neighborhoods of any point
       ` X ` is a filter base which generates the filter of neighborhoods of
       ` X ` . Condition O_III of [BourbakiTop1] p.  I.56. @)
    regclnei @p |- ( ( J e. Reg /\ A e. X ) ->
      ( B e. ( fBas ` X ) /\ ( X filGen B ) = ( ( nei ` J ) ` { A } ) ) ) @=
      ? @.

    @( Given any point ` A ` and neighborhood ` N ` of ` A ` , there is a
       closed neighborhood ` E ` of ` A `` that is a subset of  ` N ` .
       Same as ~ regsep ??? @)
    regclnei $p |- ( ( J e. Reg /\ A e. X /\ N e. ( ( nei ` J ) ` { A } ) )
      -> E. E e. ( ( Clsd ` J ) i^i ( ( nei ` J ) ` { A } ) ) E C_ N ) @=
      ? @.
$)
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Topology of the unit circle
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( To be moved just after qtopcmap $)
  ${
    $d F x $.  $d J x $.  $d ph x $.
    qtopt1.x $e |- X = U. J $.
    qtopt1.1 $e |- ( ph -> J e. Fre ) $.
    qtopt1.2 $e |- ( ph -> F : X -onto-> Y ) $.
    qtopt1.3 $e |- ( ( ph /\ x e. Y ) -> ( `' F " { x } ) e. ( Clsd ` J ) ) $.
    $( If every equivalence class is closed, then the quotient space is T_1 .
       (Contributed by Thierry Arnoux, 5-Jan-2020.) $)
    qtopt1 $p |- ( ph -> ( J qTop F ) e. Fre ) $=
      ( ctop wcel ccld cfv cuni ct1 syl syl2anc wa wceq cqtop co csn wral t1top
      cv wfn wfo fofn qtoptop wss ccnv cima simpr qtopuni adantr eleqtrrd snssd
      syldan wb ctopon istopon sylibr qtopcld mpbir2and ralrimiva eqid sylanbrc
      jctir ist1 ) ADCUAUBZKLZBUFZUCZVKMNLZBVKOZUDVKPLADKLZCEUGZVLADPLVQHDUEQZA
      EFCUHZVRIEFCUIQCDEGUJRAVOBVPAVMVPLZSZVOVNFUKZCULVNUMDMNLZWBVMFWBVMVPFAWAU
      NAFVPTZWAAVQVTWEVSICDEFGUORUPUQZURAWAVMFLWDWFJUSAVOWCWDSUTZWAADEVANLZVTWG
      AVQEDOTZSWHAVQWIVSGVIEDVBVCIVNCDEFVDRUPVEVFVKVPBVPVGVJVH $.
  $}

  ${
    $d .~ a b c x y z $.  $d F x y $.  $d H a b c x y z $.  $d J x y $.
    $d X a b c x y z $.  $d Y a b c x y z $.  $d a b c x y z ph $.
    qtophaus.x $e |- X = U. J $.
    qtophaus.e $e |- .~ = ( `' F o. F ) $.
    qtophaus.h $e |- H = ( x e. X , y e. X |-> <. ( F ` x ) , ( F ` y ) >. ) $.
    qtophaus.1 $e |- ( ph -> J e. Haus ) $.
    qtophaus.2 $e |- ( ph -> F : X -onto-> Y ) $.
    qtophaus.3 $e |- ( ( ph /\ x e. J ) -> ( F " x ) e. ( J qTop F ) ) $.
    qtophaus.4 $e |- ( ph -> .~ e. ( Clsd ` ( J tX J ) ) ) $.
    $( If an open map's graph in the product space ` ( J tX J ) ` is closed,
       then its quotient topology is Hausdorff.  (Contributed by Thierry
       Arnoux, 4-Jan-2020.) $)
    qtophaus $p |- ( ph -> ( J qTop F ) e. Haus ) $=
      ( wcel syl2anc wceq wa vc vz va cqtop ctop cid cuni cres ctx ccld cfv cha
      vb co wfn haustop syl wfo fofn qtoptop wss cdif txtop cxp idssxp syl5sseq
      eqid txuni qtopuni sqxpeqd eqtr2d eqcomd reseq2d difeq12d cima cv cop wbr
      wrex wn simp-4r simplr opelxpi df-br sylibr simpllr simpr opeq12d simp-5r
      wne simp-8r eqeltrrd eqeltrd wrel wb relxp opeldifid ax-mp simprd ad8antr
      sylib fcoinvbr syl3anc mpbird brdif bitr3i sylanbrc fvproj 3eqtr4d eqeq1d
      necon3bbid fveq2 rspcev wfun fofun ad4antr ad2antrr foima fvelima r19.29a
      eleqtrrd eldifad r19.29vva fveq2d 3eqtr3d wf fof ad5antr ffvelrnd simprbi
      elxp2 opelxp mpbid eldifi adantl cvv ctopon wral wer iscld2 r19.29an opex
      adantr impbida fnmpt2i difss fvelimab mp2an syl6rbbr eqrdv ssv xpss2 mp2b
      difres syl6eqr toptopon qtoptopon ralrimiva imaeq2 eleq1d cbvralv difeq1d
      r19.21bi ccnv ccom fcoinver ereq1 erssxp sseqtrd txomap syl21anc hausdiag
      biimpar ) AGEUDUNZUEQZUFUVNUGZUHZUVNUVNUIUNZUJUKQZUVNULQAGUEQZEHUOZUVOAGU
      LQUVTMGUPUQZAHIEURZUWANHIEUSUQZEGHJUTRZAUVRUEQZUVQUVRUGZVAZUWGUVQVBZUVRQZ
      UVSAUVOUVOUWFUWEUWEUVNUVNVCRAUVPUVPVDZUVQUWGUVPVEAUVOUVOUWKUWGSUWEUWEUVNU
      VNUVPUVPUVPVGZUWLVHRZVFAUWIIIVDZUFIUHZVBZUVRAUWGUWNUVQUWOAUWNUWKUWGAIUVPA
      UVTUWCIUVPSUWBNEGHIJVIRZVJUWMVKAUVPIUFAIUVPUWQVLVMVNAFHHVDZDVBZVOZUWPUVRA
      UWTUWNUFVBZUWPAUAUWTUXAAUAVPZUXAQZUBVPZFUKZUXBSZUBUWSVSZUXBUWTQZAUXCUXGAU
      XCTZUXBUCVPZUMVPZVQZSZUXGUCUMIIUXIUXJIQZTZUXKIQZTZUXMTZBVPZEUKZUXJSZUXGBH
      UXRUXSHQZTZUYATZCVPZEUKZUXKSZUXGCHUYDUYEHQZTZUYGTZUXSUYEVQZUWSQZUYKFUKZUX
      BSZUXGUYJUXSUYEUWRVRZUXSUYEDVRZVTZUYLUYJUYKUWRQZUYOUYJUYBUYHUYRUXRUYBUYAU
      YHUYGWAZUYDUYHUYGWBZUXSUYEHHWCRUXSUYEUWRWDWEUYJUYQUXTUYFWJZUYJUXTUYFVQZUW
      NQZVUAUYJVUBUXAQZVUCVUATZUYJVUBUXLUXAUYJUXTUXJUYFUXKUYCUYAUYHUYGWFUYIUYGW
      GWHZUYJUXBUXLUXAUXQUXMUYBUYAUYHUYGWIZAUXCUXNUXPUXMUYBUYAUYHUYGWKWLWMUWNWN
      VUDVUEWOIIWPUWNUXTUYFWQWRZXAWSUYJUYPUXTUYFUYJUWAUYBUYHUYPUXTUYFSWOZAUWAUX
      CUXNUXPUXMUYBUYAUYHUYGUWDWTUYSUYTHDEUXSUYEKXBZXCXKXDUYLUXSUYEUWSVRUYOUYQT
      UXSUYEUWSWDUXSUYEUWRDXEXFZXGUYJVUBUXLUYMUXBVUFUYJBCHHEEFUXSUYELUYSUYTXHVU
      GXIUXFUYNUBUYKUWSUXDUYKSZUXEUYMUXBUXDUYKFXLXJXMRUYDEXNZUXKEHVOZQUYGCHVSUX
      RVUMUYBUYAAVUMUXCUXNUXPUXMAUWCVUMNHIEXOUQXPZXQUYDUXKIVUNUXOUXPUXMUYBUYAWA
      UXRVUNISZUYBUYAAVUPUXCUXNUXPUXMAUWCVUPNHIEXRUQXPZXQYACUXKHEXSRXTUXRVUMUXJ
      VUNQUYABHVSVUOUXRUXJIVUNUXIUXNUXPUXMWFVUQYABUXJHEXSRXTUXIUXBUWNQUXMUMIVSU
      CIVSUXIUXBUWNUFAUXCWGYBUCUMUXBIIYKXAYCAUXFUXCUBUWSAUXDUWSQZTZUXFTZVULUXCB
      CHHVUTUYBTZUYHTZVULTZUXBVUBUXAVVCUXEUYMUXBVUBVVCUXDUYKFVVBVULWGZYDVUSUXFU
      YBUYHVULWAVVCBCHHEEFUXSUYELVUTUYBUYHVULWFZVVAUYHVULWBZXHYEVVCVUCVUAVUDVVC
      UXTIQUYFIQVUCVVCHIUXSEAHIEYFZVURUXFUYBUYHVULAUWCVVGNHIEYGUQZYHZVVEYIVVCHI
      UYEEVVIVVFYIUXTUYFIIYLXGVVCUYQVUAVVCUYLUYQVVCUXDUYKUWSVVDAVURUXFUYBUYHVUL
      WIWLUYLUYOUYQVUKYJUQVVCUYPUXTUYFVVCUWAUYBUYHVUIAUWAVURUXFUYBUYHVULUWDYHVV
      EVVFVUJXCXKYMVUHXGWMVUSVULCHVSBHVSZUXFVUSUXDUWRQZVVJVURVVKAUXDUWRDYNYOBCU
      XDHHYKXAUUCYCUUAUUDFUWRUOUWSUWRVAUXHUXGWOBCHHVUBFLUXTUYFUUBUUEUWRDUUFUBUW
      RUWSUXBFUUGUUHUUIUUJIYPVAUWNIYPVDVAUWPUXASIUUKIYPIUULUWNIUFUUNUUMUUOABCUW
      SIEEFGGUVNUVNHHIVVHVVHAUVTGHYQUKQZUWBGHJUUPXAZVVMAVVLUWCUVNIYQUKQVVMNEGHI
      UUQRZVVNOAEUYEVOZUVNQZCGAEUXSVOZUVNQZBGYRVVPCGYRAVVRBGOUURVVRVVPBCGUXSUYE
      SVVQVVOUVNUXSUYEEUUSUUTUVAXAUVCAUWSGGUIUNZUGZDVBZVVSAUWRVVTDAUVTUVTUWRVVT
      SUWBUWBGGHHJJVHRZUVBADVVSUJUKQZVWAVVSQZPAVVSUEQZDVVTVAVWCVWDWOAUVTUVTVWEU
      WBUWBGGVCRADUWRVVTAHDYSZDUWRVAAHEUVDEUVEZYSZVWFAUWAVWHUWDEHUVFUQDVWGSVWFV
      WHWOKHDVWGUVGWRWEHDUVHUQVWBUVIDVVSVVTVVTVGYTRYMWMLUVJWLWMUWFUWHTUVSUWJUVQ
      UVRUWGUWGVGYTUVMUVKUVNUVPUWLUVLXG $.
  $}

  ${
    $d C x $.
    circtopn.i $e |- I = ( 0 [,] ( 2 x. _pi ) ) $.
    circtopn.j $e |- J = ( topGen ` ran (,) ) $.
    circtopn.f $e |- F = ( x e. RR |-> ( exp ` ( _i x. x ) ) ) $.
    circtopn.c $e |- C = ( `' abs " { 1 } ) $.
    $( The topology of the unit circle is generated by open intervals of the
       polar coordinate.  (Contributed by Thierry Arnoux, 4-Jan-2020.) $)
    circtopn $p |- ( J qTop F ) = ( TopOpen ` ( F "s RRfld ) ) $=
      ( co cpw crefld ctopn cfv wceq cuni cr wtru ccms a1i cqtop wss cimas ctop
      pwuni wcel wfo crn ctg retop eqeltri efifo uniretop unieqi eqtr4i qtopuni
      cioo mp2an pweqi sseqtr4i cbs eqidd rebase recms imasbas cts retopn eqtri
      trud eqid imastset eqcomi topnid ax-mp ) ECUAJZBKZUBVOCLUCJZMNOVOVOPZKVPV
      OUEBVREUDUFQBCUGZBVROEUQUHUINZUDGUJUKABCHIULZCEQBQVTPEPUMEVTGUNUOUPURUSUT
      BVOVQBVQVANORBLVQCQSRVQVBZQLVANORVCTZVSRWATZLSUFRVDTZVEVIVQVFNZVOWFVOORBL
      VQCEWFQSWBWCWDWEEVTLMNGVGVHWFVJVKVIVLVMVN $.

    $( The function gluing the real line into the unit circle is continuous.
       (Contributed by Thierry Arnoux, 5-Jan-2020.) $)
    circcn $p |- F e. ( J Cn ( J qTop F ) ) $=
      ( cr ctopon cfv wcel wfn cqtop co ccn cioo crn ctg retopon wfo efifo fofn
      eqeltri ax-mp qtopid mp2an ) EJKLZMCJNZCEECOPQPMERSTLUIGUAUEJBCUBUJABCHIU
      CJBCUDUFCEJUGUH $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Refinements
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d A f v x $.  $d B f u v x $.  $d V f v x $.
    $( For any cover refinement, there exists a function associating with each
       set in the refinement a set in the original cover containing it.  This
       is sometimes used as a defintion of refinement.  Note that this
       definition uses the axiom of choice through ~ ac6sg .  (Contributed by
       Thierry Arnoux, 12-Jan-2020.) $)
    reff $p |- ( A e. V -> ( A Ref B <-> ( U. B C_ U. A
      /\ E. f ( f : A --> B /\ A. v e. A v C_ ( f ` v ) ) ) ) ) $=
      ( vu vx wcel cuni wss cv wral wa wrex eqid nfv nfan simpr syl2anc ex cref
      wbr wf cfv wex ssid wceq isref simprbda syl5sseq simplbda wi sseq2 adantr
      ac6sg mpd simplr nfra1 simplrl ffvelrnd adantlr simplrr rspa sselda eleq2
      jca rspcev eluni2 sylib r19.29af sylibr ssrdv eqssd wb ad2antrr mpbir2and
      ralrimi exlimdv impr impbida ) BEHZBCUAUBZCIZBIZJZBCDKZUCZAKZWHWFUDZJZABL
      ZMZDUEZMWAWBMZWEWMWNWCWCWDWCUFWAWBWCWDUGZWHFKZJZFCNZABLZAFBCEWDWCWDOWCOUH
      ZUIUJWNWSWMWAWBWOWSWTUKWAWSWMULWBWQWJAFBCDEWPWIWHUMZUOUNUPVFWAWEWMWBWAWEM
      ZWLWBDXBWLWBXBWLMZWBWOWSXCWCWDWAWEWLUQXCGWDWCXCGKZWDHZXDWCHZXCXEMZXDWPHZF
      CNZXFXGXDWHHZXIABXCXEAXBWLAXBAPWGWKAWGAPWJABURQQZXEAPQXGWHBHZMZXJMWICHZXD
      WIHZXIXMXNXJXCXLXNXEXCXLMZBCWHWFXBWGWKXLUSXCXLRZUTZVAUNXMWHWIXDXMWKXLWJXC
      XLWKXEXBWGWKXLVBZVAXGXLRWJABVCZSVDXHXOFWICWPWIXDVEVGSXGXEXJABNXCXERAXDBVH
      VIVJFXDCVHVKTVLVMXCWRABXKXCXLWRXPXNWJWRXRXPWKXLWJXSXQXTSWQWJFWICXAVGSTVQW
      AWBWOWSMVNWEWLWTVOVPTVRVSVT $.
  $}

  ${
    $d J f g j k u v w x $.  $d U f g j k u v w x $.  $d V f g j k u v w x $.
    $d X j k u v w x $.  $d f g j k u v w x ph $.
    locfinref.x $e |- X = U. J $.
    locfinref.1 $e |- ( ph -> U C_ J ) $.
    locfinref.2 $e |- ( ph -> X = U. U ) $.
    locfinref.3 $e |- ( ph -> V C_ J ) $.
    locfinref.4 $e |- ( ph -> V Ref U ) $.
    locfinref.5 $e |- ( ph -> V e. ( LocFin ` J ) ) $.
    $( A locally finite refinement of an open cover induces a locally finite
       open cover with the original index set.  This is fact 2 of
       ~ http://at.yorku.ca/p/a/c/a/02.pdf , it is expressed by exposing a
       function ` f ` from the original cover ` U ` , which is taken as the
       index set.  The solution is constructed by building unions, so the same
       method can be used to prove a similar theorem about closed covers.
       (Contributed by Thierry Arnoux, 29-Jan-2020.) $)
    locfinreflem $p |- ( ph -> E. f ( ( Fun f /\ dom f C_ U /\ ran f C_ J )
      /\ ( ran f Ref U /\ ran f e. ( LocFin ` J ) ) ) ) $=
      ( vv vu vj wss wa wcel wceq cvv vg vw vx vk cfv wral wex wfun cdm crn w3a
      cv wf cref wbr clocfin cuni wb reff syl mpbid simprd ccnv csn cima funmpt
      cmpt a1i eqid dmmptss ad2antlr ctop locfintop ad3antrrr cnvimass ad3antlr
      frn syl5ss fdm syl5sseq uniopn syl2anc ralrimiva rnmptss wrex ciun refbas
      sstrd ad2antrr nfv nfra1 nfan nfre1 wfn ffn ad4antlr simplr fnfvelrn ssid
      fniniseg biimpar mpanr2 sylancom ssuni sylancr sselda sneq imaeq2d unieqd
      eleq2d rspcev adantllr simpr r19.29af eluni2 sylib reximd2a mp1i ad5antlr
      vex biimpa simpld ex mpd cin wne crab cfn eqtrd imaexg ax-mp uniex ineq1d
      c0 cdom neeq1d biimpi islocfin sseq1d anbi12d sseldd r19.29an eliun eqrdv
      impbida 3bitr4g dfiun3g 3eqtrd elrnmpt ssrexv sylc nfmpt1 nfrn nfcri rspa
      simp-5r sseqtrd ralrimi unissb sylibr exp31 reximdai rnex mptex mpbir2and
      eqsstrd rnexg isref ffun ad6antlr imafi simp3 cnvex fvmpt 3ad2ant2 fnmpti
      wfo dffn4 mpbi rabfodom cbvrabv syl6breq rabex nfrab1 nfel1 nfrex ad5antr
      rabid sylanbrc fveq2 eqeq1d uniinn0 adantl r19.29af2 ss2rabdv mpsyl domtr
      ssdomg adantr dffn3 ssrab2 fimarab mpan2 3syl breqtrrd imdistanda simplll
      domfi simp3d r19.21bi syl3anbrc funeq dmeq rneq 3anbi123d breq1d syl32anc
      imp eleq1d spcev expl exlimdv ) AEBUAULZUMZMULZUYEUYCUEZPZMEUFZQZUAUGZCUL
      ZUHZUYKUIZBPZUYKUJZDPZUKZUYOBUNUOZUYODUPUEZRZQZQZCUGZABUQZEUQZPZUYJAEBUNU
      OZVUFUYJQZKAEUYSRZVUGVUHURLMEBUAUYSUSUTVAVBAUYIVUCUAAUYDUYHVUCAUYDQZUYHQZ
      NUYCUJZUYCVCZNULZVDZVEZUQZVGZUHZVURUIZBPZVURUJZDPZVVBBUNUOZVVBUYSRZVUCVUS
      VUKNVULVUQVFVHVUKVUTVULBNVULVUQVURVURVIZVJUYDVULBPZAUYHEBUYCVQZVKVRVUKVUQ
      DRZNVULUFZVVCVUKVVINVULVUKVUNVULRZQZDVLRZVUPDPVVIAVVMUYDUYHVVKAVUIVVMLEDV
      MUTZVNVVLVUPEDVVLUYCUIZVUPEUYCVUOVOUYDVVOESAUYHVVKEBUYCVSVPVTZAEDPUYDUYHV
      VKJVNWHVUPDWAWBWCZNVULVUQDVURVVFWDUTVUKVVDVUDVVBUQZSZUBULZVUNPZNBWEZUBVVB
      UFZVUKVUDVUENVULVUQWFZVVRAVUDVUESZUYDUYHAVUGVWEKEBVUEVUDVUEVIZVUDVIZWGUTW
      IVUKUCVUEVWDVUKUCULZUYERZMEWEZVWHVUQRZNVULWEZVWHVUERVWHVWDRVUKVWJVWLVUKVW
      JQVWIVWLMEVUKVWJMVUJUYHMVUJMWJUYGMEWKWLZVWIMEWMWLVUKUYEERZVWIVWLVWJVUKVWN
      QZVWIQZUYFVULRZVWHVUMUYFVDZVEZUQZRZVWLVWPUYCEWNZVWNVWQUYDVXBAUYHVWNVWIEBU
      YCWOZWPVUKVWNVWIWQEUYEUYCWRWBVWOUYEVWTVWHVWOUYEUYEPUYEVWSRZUYEVWTPUYEWSVU
      KVWNVXBVXDUYDVXBAUYHVWNVXCVPVXBVWNUYFUYFSZVXDUYFVIVXBVXDVWNVXEQEUYFUYEUYC
      WTXAXBXCUYEUYEVWSXDXEXFVWKVXANUYFVULVUNUYFSZVUQVWTVWHVXFVUPVWSVXFVUOVWRVU
      MVUNUYFXGXHXIXJXKWBXLVUKVWJXMXNVUKVWKVWJNVULVVLVWKQZVWIVWIMVUPEVVLVWKMVUK
      VVKMVWMVVKMWJWLVWKMWJWLVXGUYEVUPRZQZVWIQVUPEUYEVVLVUPEPVWKVXHVWIVVPVNVXGV
      XHVWIWQUUAVXIVWIXMVXGVWKVWIMVUPWEVVLVWKXMMVWHVUPXOXPXQUUBUUEMVWHEXONVWHVU
      LVUQUUCUUFUUDVUKVVJVWDVVRSVVQNVULVUQDUUGUTUUHZVUKVWBUBVVBVUKVVTVVBRZQZVVT
      VUQSZNBWEZVWBVXLVVGVXMNVULWEZVXNUYDVVGAUYHVXKVVHVPVUKVXKVXOVVTTRVXKVXOURV
      UKUBXTNVULVUQVVTVURTVVFUUIXRYAVXMNVULBUUJUUKVXLVXMVWANBVUKVXKNVUKNWJNUBVV
      BNVURNVULVUQUULUUMUUNWLVXLVUNBRZVXMVWAVXLVXPQZVXMQZVVTVUQVUNVXQVXMXMVXRUY
      EVUNPZMVUPUFVUQVUNPVXRVXSMVUPVXQVXMMVXLVXPMVUKVXKMVWMVXKMWJWLVXPMWJWLVXMM
      WJWLVXRVXHVXSVXRVXHQZUYEUYFVUNVXTUYHVWNUYGVUJUYHVXKVXPVXMVXHUUPVXTVWNUYFV
      UNSZVXRVXHVWNVYAQZVXRVXBVXHVYBURUYDVXBAUYHVXKVXPVXMVXCXSEVUNUYEUYCWTUTYAZ
      YBUYGMEUUOWBVXTVWNVYAVYCVBUUQYCUURMVUPVUNUUSUUTUVFUVAUVBYDWCVUKVVBTRZVVDV
      VSVWCQURVURTRVYDVUKNVULVUQUYCUAXTZUVCZUVDZVURTUVGXRUBNVVBBTVVRVUDVVRVIZVW
      GUVHUTUVEVUKVVMFVVRSVWIVVTUYEYEZYNYFZUBVVBYGZYHRZQZMDWEZUCFUFVVEAVVMUYDUY
      HVVNWIVUKFVUDVVRAFVUDSUYDUYHIWIVXJYIVUKVYNUCFVUKVWHFRZQZVWIOULZUYEYEYNYFZ
      OEYGZYHRZQZVYMMDDVUKVYOMVWMVYOMWJWLVYPUYEDRZWUAWQVYPWUBQZWUAVYMWUCVWIVYTV
      YLWUCVWIQZVYTVYLWUDVYTQZUYCVYSVEZYHRZVYKWUFYOUOVYLWUDVYTUYCUHZWUGUYDWUHAU
      YHVYOWUBVWIVYTEBUYCUVIUVJUYCVYSUVKXCWUEVYKUDULZUYCUEZVUNSZUDVYSWEZNVULYGZ
      WUFYOWUEVYKVUQUYEYEZYNYFZNVULYGZYOUOWUPWUMYOUOZVYKWUMYOUOWUEVYKVUMWUIVDZV
      EZUQZUYEYEZYNYFZUDVULYGWUPYOWUEWVBVYJUDUBVULVVBVURTWUEWUIVULRZVVTWUIVURUE
      ZSZUKZVYIWVAYNWVFVVTWUTUYEWVFVVTWVDWUTWUEWVCWVEUVLWVCWUEWVDWUTSWVENWUIVUQ
      WUTVULVURVUNWUISZVUPWUSWVGVUOWURVUMVUNWUIXGXHXIVVFWUSVUMTRZWUSTRUYCVYEUVM
      ZVUMWURTYJYKYLUVNUVOYIYMYPVULTRWUEVYFVHVULVVBVURUVQZWUEVURVULWNWVJNVULVUQ
      VURVUPWVHVUPTRWVIVUMVUOTYJYKYLVVFUVPVULVURUVRUVSVHUVTWVBWUOUDNVULWUIVUNSZ
      WVAWUNYNWVKWUTVUQUYEWVKWUSVUPWVKWURVUOVUMWUIVUNXGXHXIYMYPUWAUWBWUMTRWUEWU
      PWUMPWUQWULNVULVYFUWCWUEWUOWULNVULWUEVVKQZWUOWULWVLWUOQZVYRWULOVUPWVLWUOO
      WUEVVKOWUDVYTOWUDOWJOVYSYHVYROEUWDZUWEWLVVKOWJWLWUOOWJWLWUKOUDVYSWVNWUKOW
      JUWFWVMVYQVUPRZQZVYRQZVYQVYSRZVYQUYCUEZVUNSZWULWVQVYQERZVYRWVRWVQWWAWVTWV
      QVXBWVOWWAWVTQZWUDVXBVYTVVKWUOWVOVYRUYDVXBAUYHVYOWUBVWIVXCXSZUWGWVMWVOVYR
      WQVXBWVOWWBEVUNVYQUYCWTYAWBZYBWVPVYRXMVYROEUWHUWIWVQWWAWVTWWDVBWUKWVTUDVY
      QVYSWUIVYQSWUJWVSVUNWUIVYQUYCUWJUWKXKWBWUOVYROVUPWEZWVLWUOWWEOVUPUYEUWLYQ
      UWMUWNYCUWOWUPWUMTUWRUWPVYKWUPWUMUWQWBWUEVXBEVULUYCUMZWUFWUMSZWUDVXBVYTWW
      CUWSVXBWWFEUYCUWTYQWWFVYSEPWWGVYROEUXAUDNEVULUYCVYSUXBUXCUXDUXEWUFVYKUXHW
      BYCUXFUXRVUKVYOAWUAMDWEZAUYDUYHVYOUXGAWWHUCFAVVMFVUESZWWHUCFUFZAVUIVVMWWI
      WWJUKLUCEMDFVUEOGVWFYRXPUXIUXJXCXQWCUCVVBMDFVVRUBGVYHYRUXKVUBVUSVVAVVCUKZ
      VVDVVEQZQCVURVYGUYKVURSZUYQWWKVUAWWLWWMUYLVUSUYNVVAUYPVVCUYKVURUXLWWMUYMV
      UTBUYKVURUXMYSWWMUYOVVBDUYKVURUXNZYSUXOWWMUYRVVDUYTVVEWWMUYOVVBBUNWWNUXPW
      WMUYOVVBUYSWWNUXSYTYTUXTUXQUYAUYBYD $.

    $d n s x $.
    $( A locally finite refinement of an open cover induces a locally finite
       open cover with the original index set.  This is fact 2 of
       ~ http://at.yorku.ca/p/a/c/a/02.pdf , it is expressed by exposing a
       function ` f ` from the original cover ` U ` , which is taken as the
       index set.  (Contributed by Thierry Arnoux, 31-Jan-2020.) $)
    locfinref $p |- ( ph
      -> E. f ( f : U --> J /\ ran f Ref U /\ ran f e. ( LocFin ` J ) ) ) $=
      ( wf cref wcel c0 wceq wa cvv adantr vx vn vs crn wbr clocfin cfv w3a wex
      vg cv f0 simpr feq2d mpbiri rn0 0ex refref eqbrtri syl5breqr csn ctop cin
      ax-mp wne crab cfn wrex wral sn0top a1i eqidd ral0 cuni unisn eqcomi uni0
      unieqi eqtr2i islocfin syl3anbrc unieqd eqtrd 3eqtr3g locfintop 0top 3syl
      mpbid fveq2d eleqtrrd feq1 rneq breq1d eleq1d 3anbi123d spcev syl3anc cdm
      wfun wss locfinreflem cdif cxp cun simpl simprl1 fdmrn sylib simprl3 fssd
      wb fconstg mp1i 0opn ad2antrr snssd disjdif fun2 syl21anc simprl2 simprrl
      undif eqbrtrd simprd refun0 syl2anc wo rnxpss sssn mpbi rnun uneq2 syl5eq
      un0 syl6eq orim12i mpjaodan simprrr eqeltrd snfi unissd wi brrelex2i p0ex
      lfinun refrel difexg xpexg mpan2 unexg mpan spcegv 4syl syl13anc exlimddv
      vex imp pm2.61dane ) ABDCUKZMZUUSUDZBNUEZUVADUFUGZOZUHZCUIZBPABPQZRZBDPMZ
      PUDZBNUEZUVJUVCOZUVFUVHUVIPDPMDULUVHBPDPAUVGUMZUNUOUVHUVJPBNUVJPPNUPPSOZP
      PNUEUQPSURVDUSUVMUTUVHUVJPVAZUFUGZUVCUVHUVOVBOZPPQUAUKUBUKZOUCUKUVRVCPVEU
      CUVJVFVGORUBUVOVHZUAPVIZUVJUVPOUVQUVHVJVKUVHPVLUVTUVHUVSUAVMVKUAUVJUBUVOP
      PUCUVOVNZPPUQVOVPUVJVNPVNZPUVJPUPVRVQVSVTWAUVHDUVOUFUVHDVNZPQZDUVOQZUVHFU
      WBUWCPUVHFBVNZUWBAFUWFQUVGITUVHBPUVMWBWCGVQWDAUWDUWEXKZUVGAEUVCOZDVBOZUWG
      LEDWEZDWFWGTWHWIWJUVEUVIUVKUVLUHCPUQUUSPQZUUTUVIUVBUVKUVDUVLBDUUSPWKUWKUV
      AUVJBNUUSPWLZWMUWKUVAUVJUVCUWLWNWOWPWQABPVEZRZUJUKZWSZUWOWRZBWTZUWOUDZDWT
      ZUHZUWSBNUEZUWSUVCOZRZRZUVFUJAUXEUJUIUWMABUJDEFGHIJKLXATUWNUXERZUWNBDUWOB
      UWQXBZUVOXCZXDZMZUXIUDZBNUEZUXKUVCOZUVFUWNUXEXEZUXFUWQUXGXDZDUXIMZUXJUXFU
      WQDUWOMUXGDUXHMUWQUXGVCPQZUXPUXFUWQUWSDUWOUXFUWPUWQUWSUWOMUWPUWRUWTUXDUWN
      XFUWOXGXHUWPUWRUWTUXDUWNXIXJUXFUXGUVODUXHUVNUXGUVOUXHMUXFUQUXGPSXLXMUXFPD
      APDOZUWMUXEAUWHUWIUXRLUWJDXNWGXOZXPXJUXQUXFUWQBXQVKUWQUXGDUWOUXHXRXSUXFUX
      OBDUXIUXFUWRUXOBQUWPUWRUWTUXDUWNXTUWQBYBXHUNWHUXFUXKUWSQZUXLUXKUWSUVOXDZQ
      ZUXFUXTRZUXKUWSBNUXFUXTUMZUXFUXBUXTUWNUXAUXBUXCYAZTYCUXFUYBRZUXKUYABNUXFU
      YBUMZUXFUYABNUEZUYBUXFUXBUWMUYHUYEUXFAUWMUXNYDUWSBYEYFTYCUXHUDZPQZUYIUVOQ
      ZYGZUXTUYBYGUXFUYIUVOWTUYLUXGUVOYHUYIPYIYJUYJUXTUYKUYBUYJUXKUWSPXDZUWSUYJ
      UXKUWSUYIXDZUYMUWOUXHYKZUYIPUWSYLYMUWSYNYOUYKUXKUYNUYAUYOUYIUVOUWSYLYMYPX
      MZYQUXFUXTUXMUYBUYCUXKUWSUVCUYDUXFUXCUXTUWNUXAUXBUXCYRZTYSUYFUXKUYAUVCUYG
      UYFUXCUVOVGOZUWAUWCWTUYAUVCOUXFUXCUYBUYQTUYRUYFPYTVKUYFUVODUYFPDUXFUXRUYB
      UXSTXPUUAUWSUVODUUEWQYSUYPYQUWNUXJUXLUXMUHZUVFUWNUXGSOZUXHSOZUXISOZUYSUVF
      UUBAUYTUWMAEBNUEBSOUYTKEBNUUFUUCBUWQSUUGWGTUYTUVOSOVUAUUDUXGUVOSSUUHUUIUW
      OSOVUAVUBUJUUPUWOUXHSSUUJUUKUVEUYSCUXISUUSUXIQZUUTUXJUVBUXLUVDUXMBDUUSUXI
      WKVUCUVAUXKBNUUSUXIWLZWMVUCUVAUXKUVCVUDWNWOUULUUMUUQUUNUUOUUR $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Open cover refinement property
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c CovHasRef $.

  $( The "every open cover has an ` A ` refinement" predicate. $)
  ccref $a class CovHasRef A $.

  ${
    $d A j y z $.
    $( Define a statement "every open cover has an ` A ` refinement" , where
       ` A ` is a property for refinements like "finite", "countable", "point
       finite" or "locally finite".  (Contributed by Thierry Arnoux,
       7-Jan-2020.) $)
    df-cref $a |- CovHasRef A = { j e. Top | A. y e. ~P j ( U. j = U. y
        -> E. z e. ( ~P j i^i A ) z Ref y ) } $.
  $}

  ${
    $d A j y z $.  $d J j y z $.  $d X j $.  $d j y z $.
    iscref.x $e |- X = U. J $.
    $( The property that every open cover has an ` A ` refinement for the
       topological space ` J ` .  (Contributed by Thierry Arnoux,
       7-Jan-2020.) $)
    iscref $p |- ( J e. CovHasRef A <-> ( J e. Top /\ A. y e. ~P J ( X = U. y
      -> E. z e. ( ~P J i^i A ) z Ref y ) ) ) $=
      ( vj cv cuni wceq cref wbr cpw cin wrex wi wral ctop ccref pweq raleqbidv
      unieq syl6eqr eqeq1d ineq1d rexeqdv imbi12d df-cref elrab2 ) GHZIZAHZIZJZ
      BHULKLZBUJMZCNZOZPZAUPQEUMJZUOBDMZCNZOZPZAVAQGDRCSUJDJZUSVDAUPVAUJDTZVEUN
      UTURVCVEUKEUMVEUKDIEUJDUBFUCUDVEUOBUQVBVEUPVACVFUEUFUGUAABCGUHUI $.
  $}

  ${
    $d A j y z $.  $d B j y z $.
    $( Equality theorem for the "every open cover has an A refinement"
       predicate.  (Contributed by Thierry Arnoux, 7-Jan-2020.) $)
    crefeq $p |- ( A = B -> CovHasRef A = CovHasRef B ) $=
      ( vj vy vz wceq cv cuni cref wbr cpw wrex wi wral ctop crab ccref df-cref
      cin ineq2 rexeqdv imbi2d ralbidv rabbidv 3eqtr4g ) ABFZCGZHDGZHFZEGUHIJZE
      UGKZASZLZMZDUKNZCOPUIUJEUKBSZLZMZDUKNZCOPAQBQUFUOUSCOUFUNURDUKUFUMUQUIUFU
      JEULUPABUKTUAUBUCUDDEACRDEBCRUE $.
  $}

  ${
    $d A y z $.  $d J y z $.
    $( A space where every open cover has an ` A ` refinement is a topological
       space.  (Contributed by Thierry Arnoux, 7-Jan-2020.) $)
    creftop $p |- ( J e. CovHasRef A -> J e. Top ) $=
      ( vy vz ccref wcel ctop cuni cv wceq cref wbr cpw cin wrex wi wral iscref
      eqid simplbi ) BAEFBGFBHZCIZHJDIUBKLDBMZANOPCUCQCDABUAUASRT $.

    $d C y z $.  $d X y $.
    crefi.x $e |- X = U. J $.
    $( The property that every open cover has an ` A ` refinement for the
       topological space ` J ` .  (Contributed by Thierry Arnoux,
       7-Jan-2020.) $)
    crefi $p |- ( ( J e. CovHasRef A /\ C C_ J /\ X = U. C )
      -> E. z e. ( ~P J i^i A ) z Ref C ) $=
      ( vy ccref wcel wss cuni wceq w3a cpw cv cref wbr cin wrex wi simp1 simp2
      wral sselpwd ctop iscref simprbi simp3 unieq eqeq2d breq2 rexbidv imbi12d
      3ad2ant1 rspcv syl3c ) DBHZIZCDJZECKZLZMZCDNZIEGOZKZLZAOZVDPQZAVCBRZSZTZG
      VCUCZVAVGCPQZAVISZVBCDUQURUSVAUAURUSVAUBUDURUSVLVAURDUEIVLGABDEFUFUGUNURU
      SVAUHVKVAVNTGCVCVDCLZVFVAVJVNVOVEUTEVDCUIUJVOVHVMAVIVDCVGPUKULUMUOUP $.

    crefdf.b $e |- B = CovHasRef A $.
    crefdf.p $e |- ( z e. A -> ph ) $.
    $( A formulation of ~ crefi easier to use for definitions.  (Contributed by
       Thierry Arnoux, 7-Jan-2020.) $)
    crefdf $p |- ( ( J e. B /\ C C_ J /\ X = U. C )
      -> E. z e. ~P J ( ph /\ z Ref C ) ) $=
      ( wcel wss cuni wceq w3a cv cref wbr wrex wa cpw cin ccref crefi syl3an1b
      eleq2i elin anim2i sylbi anim1i anass sylib reximi2 syl ) FDKZEFLZGEMNZOB
      PZEQRZBFUAZCUBZSZAUSTZBUTSUOFCUCZKUPUQVBDVDFIUFBCEFGHUDUEUSVCBVAUTURVAKZU
      STURUTKZATZUSTVFVCTVEVGUSVEVFURCKZTVGURUTCUGVHAVFJUHUIUJVFAUSUKULUMUN $.
  $}

  ${
    $d A j y z $.  $d B j y z $.
    $( The "every open cover has an ` A ` refinement" predicate respects
       inclusion.  (Contributed by Thierry Arnoux, 7-Jan-2020.) $)
    crefss $p |- ( A C_ B -> CovHasRef A C_ CovHasRef B ) $=
      ( vj vy vz wss ccref cv ctop wcel cuni wceq cref wbr cin wrex wral iscref
      wi wa cpw sslin ssrexv syl imim2d ralimdv anim2d eqid 3imtr4g ssrdv ) ABF
      ZCAGZBGZUKCHZIJZUNKZDHZKLZEHUQMNZEUNUAZAOZPZSZDUTQZTUOURUSEUTBOZPZSZDUTQZ
      TUNULJUNUMJUKVDVHUOUKVCVGDUTUKVBVFURUKVAVEFVBVFSABUTUBUSEVAVEUCUDUEUFUGDE
      AUNUPUPUHZRDEBUNUPVIRUIUJ $.
  $}

  ${
    $( TODO shorten using ~ reff $)
    $d f j u v x y z $.
    $( Equivalent definition of compact space in terms of open cover
       refinements.  Compact spaces are topologies with finite open cover
       refinements.  (Contributed by Thierry Arnoux, 7-Jan-2020.) $)
    cmpcref $p |- Comp = CovHasRef Fin $=
      ( vy vx vz vf vu vv cfn cv wcel cuni wceq wrex wi wral wa cref wss simplr
      syl eqid vj ccmp ccref ctop cpw cin wbr sylib simpld elpwi ad4antlr sstrd
      selpw sylibr simprd elind simpr simpllr eqtr3d ssref syl3anc breq1 rspcev
      elin syl2anc r19.29an wf cfv wex cvv vex isref ax-mp simprbi adantl sseq2
      wb ac6sg sylc crn frn rnex elpw wfn ffn fnfi rnfi simp-5r refbas ad3antlr
      nfv nfra1 nfan adantll sseld ex reximdai eluni2 a1i fnunirn 3imtr4d ssrdv
      rspa eqsstrd unissd eqssd eqtrd unieq eqeq2d exlimdv mpd impbida pm5.74da
      expl ralbidva pm5.32i iscmp iscref 3bitr4i eqriv ) UAUBGUCZUAHZUDIZYBJZAH
      ZJZKZYDBHZJZKZBYEUEZGUFZLZMZAYBUEZNZOYCYGCHZYEPUGZCYOGUFZLZMZAYONZOYBUBIY
      BYAIYCYPUUBYCYNUUAAYOYCYEYOIZOZYGYMYTUUDYGOZYMYTUUEYJYTBYLUUEYHYLIZOZYJOZ
      YHYSIYHYEPUGZYTUUHYOGYHUUHYHYBQYHYOIZUUHYHYEYBUUHYHYKIZYHYEQZUUHUUKYHGIZU
      UHUUFUUKUUMOUUEUUFYJRYHYKGVDUHZUIYHYEUJSZUUCYEYBQYCYGUUFYJYEYBUJUKULBYBUM
      UNZUUHUUKUUMUUNUOUPUUHUUJUULYIYFKUUIUUPUUOUUHYDYIYFUUGYJUQUUDYGUUFYJURUSY
      HYEYOYIYFYITYFTZUTVAYRUUICYHYSYQYHYEPVBVCVEVFUUEYRYMCYSUUEYQYSIZOZYROZYQY
      EDHZVGZEHZUVCUVAVHZQZEYQNZOZDVIZYMUUTUURUVCFHZQZFYELEYQNZUVHUUEUURYRRYRUV
      KUUSYRYFYQJZKZUVKYQVJIYRUVMUVKOVQCVKEFYQYEVJUVLYFUVLTZUUQVLVMVNVOUVJUVEEF
      YQYEDYSUVIUVDUVCVPVRVSUUTUVGYMDUUTUVBUVFYMUUTUVBOZUVFOZUVAVTZYLIYDUVQJZKZ
      YMUVPYKGUVQUVPUVQYEQZUVQYKIUVPUVBUVTUUTUVBUVFRZYQYEUVAWASZUVQYEUVADVKWBWC
      UNUVPUVAGIZUVQGIUVPUVAYQWDZYQGIZUWCUVPUVBUWDUWAYQYEUVAWESZUURUWEUUEYRUVBU
      VFUURYQYOIUWEYQYOGVDVNUKYQUVAWFVEUVAWGSUPUVPYDYFUVRUUDYGUURYRUVBUVFWHUVPY
      FUVRUVPYFUVLUVRYRUVMUUSUVBUVFYQYEUVLYFUVNUUQWIWJUVPBUVLUVRUVPYHUVCIZEYQLZ
      YHUVDIZEYQLZYHUVLIZYHUVRIZUVPUWGUWIEYQUVOUVFEUVOEWKUVEEYQWLWMUVPUVCYQIZUW
      GUWIMUVPUWMOUVCUVDYHUVFUWMUVEUVOUVEEYQXCWNWOWPWQUWKUWHVQUVPEYHYQWRWSUVPUW
      DUWLUWJVQUWFEYHUVAYQWTSXAXBXDUVPUVQYEUWBXEXFXGYJUVSBUVQYLYHUVQKYIUVRYDYHU
      VQXHXIVCVEXNXJXKVFXLXMXOXPABYBYDYDTZXQACGYBYDUWNXRXSXT $.
  $}

  ${
    $d J v $.  $d U v $.
    cmpfiref.x $e |- X = U. J $.
    $( Every open cover of a Compact space has a finite refinement.
       (Contributed by Thierry Arnoux, 1-Feb-2020.) $)
    cmpfiref $p |- ( ( J e. Comp /\ U C_ J /\ X = U. U )
      -> E. v e. ~P J ( v e. Fin /\ v Ref U ) ) $=
      ( cv cfn wcel ccmp cmpcref id crefdf ) AFGHZAGIBCDEJMKL $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Lindel&ouml;f spaces
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c Ldlf $.

  $( Extend class notation with the class of all Lindel&ouml;f spaces. $)
  cldlf $a class Ldlf $.

  $( Definition of a Lindel&ouml;f space.  A Lindel&ouml;f space is a
     topological space in which every open cover has a countable subcover.
     Definition 1 of [BourbakiTop2] p. 195.  (Contributed by Thierry Arnoux,
     30-Jan-2020.) $)
  df-ldlf $a |- Ldlf = CovHasRef { x | x ~<_ _om } $.

  ${
    $d J v $.  $d U v $.  $d v x $.
    ldlfcntref.x $e |- X = U. J $.
    $( Every open cover of a Lindel&ouml;f space has a countable refinement.
       (Contributed by Thierry Arnoux, 1-Feb-2020.) $)
    ldlfcntref $p |- ( ( J e. Ldlf /\ U C_ J /\ X = U. U )
      -> E. v e. ~P J ( v ~<_ _om /\ v Ref U ) ) $=
      ( vx cv com cdom wbr cab cldlf df-ldlf wcel vex breq1 elab biimpi crefdf
      ) AGZHIJZAFGZHIJZFKZLBCDEFMTUDNUAUCUAFTAOUBTHIPQRS $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Paracompact spaces
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c Paracomp $.

  $( Extend class notation with the class of all paracompact topologies. $)
  cpcmp $a class Paracomp $.

  $( Definition of a paracompact topology.  A topology is said to be
     paracompact iff every open cover has an open refinement that is locally
     finite.  The definition 6 of [BourbakiTop1] p.  I.69. also requires the
     topology to be Hausdorff, but this is dropped here.  (Contributed by
     Thierry Arnoux, 7-Jan-2020.) $)
  df-pcmp $a |- Paracomp = { j | j e. CovHasRef ( LocFin ` j ) } $.

  ${
    $d J j $.
    $( The predicate "is a paracompact topology".  (Contributed by Thierry
       Arnoux, 7-Jan-2020.) $)
    ispcmp $p |- ( J e. Paracomp <-> J e. CovHasRef ( LocFin ` J ) ) $=
      ( vj cpcmp wcel cvv clocfin cfv ccref elex cv id fveq2 crefeq syl eleq12d
      wceq df-pcmp elab2g pm5.21nii ) ACDAEDAAFGZHZDZACIAUAIBJZUCFGZHZDUBBACEUC
      APZUCAUEUAUFKUFUDTPUEUAPUCAFLUDTMNOBQRS $.
  $}

  ${
    $d J y z $.
    $( Every compact space is paracompact.  (Contributed by Thierry Arnoux,
       7-Jan-2020.) $)
    cmppcmp $p |- ( J e. Comp -> J e. Paracomp ) $=
      ( vy vz ccmp wcel ctop cuni cv wceq cin wrex wi wral ccref wa eqid iscref
      cfn bitri ex cref wbr cpw clocfin cfv cpcmp cmptop cmpcref eleq2i simprbi
      simprl sylib simpld ad3antrrr simprd simplr simprr refbas eqtrd finlocfin
      elin syl syl3anc elind jca reximdv2 a2d ralimdva mpd ispcmp sylanbrc ) AD
      EZAFEZAGZBHZGZIZCHZVOUAUBZCAUCZAUDUEZJZKZLZBVTMZAUFEZAUGZVLVQVSCVTRJZKZLZ
      BVTMZWEVLVMWKVLARNZEVMWKODWLAUHUIBCRAVNVNPZQSUJVLWJWDBVTVLVOVTEZOZVQWIWCW
      OVQWIWCLWOVQOZVSVSCWHWBWPVRWHEZVSOZVRWBEZVSOWPWROZWSVSWTVTWAVRWTVRVTEZVRR
      EZWTWQXAXBOWPWQVSUKVRVTRVAULZUMWTVMXBVNVRGZIVRWAEVLVMWNVQWRWGUNWTXAXBXCUO
      WTVNVPXDWOVQWRUPWTVSVPXDIWPWQVSUQZVRVOXDVPXDPZVPPURVBUSVRAVNXDWMXFUTVCVDX
      EVETVFTVGVHVIWFAWANEVMWEOAVJBCWAAVNWMQSVK $.
  $}

  ${
    $d V v y z $.  $d X u v x z $.  $d X v y z $.
    $( Every discrete space is paracompact.  (Contributed by Thierry Arnoux,
       7-Jan-2020.) $)
    dispcmp $p |- ( X e. V -> ~P X e. Paracomp ) $=
      ( vy vz vu vx vv wcel cpw cv cuni wceq cref wbr wrex wa csn simpr syl2anc
      ad2antrr clocfin cfv ccref ctop cin wi wral distop cab wss snelpwi adantr
      cpcmp eqeltrd rexlimiva abssi wb simpl sneqd cbvrexdva cbvabv dissnlocfin
      eqeq12d elpwg syl mpbiri elind simpll eqcomd dissnref rspcev ex ralrimiva
      breq1 unipw eqcomi iscref sylanbrc ispcmp sylibr ) BAHZBIZWBUAUBZUCHZWBUM
      HWAWBUDHBCJZKZLZDJZWEMNZDWBIZWCUEZOZUFZCWJUGWDBAUHWAWMCWJWAWEWJHZPZWGWLWO
      WGPZEJZFJZQZLZFBOZEUIZWKHXBWEMNZWLWPWJWCXBWAXBWJHZWNWGWAXDXBWBUJZXAEWBWTW
      QWBHFBWRBHZWTPWQWSWBXFWTRXFWSWBHWTWRBUKULUNUOUPWAXBWCHZXDXEUQDGXBABXAGJZW
      HQZLZDBOEGWQXHLZWTXJFDBXKWRWHLZPZWQXHWSXIXKXLURXMWRWHXKXLRUSVCUTVAZVBZXBW
      BWCVDVEVFTWAXGWNWGXOTVGWPWAWFBLXCWAWNWGVHWPBWFWOWGRVIDGXBABWEXNVJSWIXCDXB
      WKWHXBWEMVNVKSVLVMCDWCWBBWBKBBVOVPVQVRWBVSVT $.
  $}

  ${
    $d J u v $.  $d U u v $.  $d X u $.
    pcmplfin.x $e |- X = U. J $.
    $( Given a paracompact topology ` J ` and an open cover ` U ` , there
       exists an open refinement ` v ` that is locally finite.  (Contributed by
       Thierry Arnoux, 31-Jan-2020.) $)
    pcmplfin $p |- ( ( J e. Paracomp /\ U C_ J /\ X = U. U )
      -> E. v e. ~P J ( v e. ( LocFin ` J ) /\ v Ref U ) ) $=
      ( vu cpcmp wcel wss cuni wceq w3a cv cref wbr wrex wa wi cvv bitri cpw wb
      clocfin cfv cin wral simp2 ssexg ancoms 3adant3 elpwg mpbird ccref ispcmp
      syl ctop iscref simprbi 3ad2ant1 simp3 unieq eqeq2d breq2 rexbidv imbi12d
      rspcv syl3c elin anbi1i anass rexbii2 sylib ) CGHZBCIZDBJZKZLZAMZBNOZACUA
      ZCUCUDZUEZPZVRWAHZVSQZAVTPVQBVTHZDFMZJZKZVRWGNOZAWBPZRZFVTUFZVPWCVQWFVNVM
      VNVPUGVQBSHZWFVNUBVMVNWNVPVNVMWNBCGUHUIUJBCSUKUOULVMVNWMVPVMCUPHZWMVMCWAU
      MHWOWMQCUNFAWACDEUQTURUSVMVNVPUTWLVPWCRFBVTWGBKZWIVPWKWCWPWHVODWGBVAVBWPW
      JVSAWBWGBVRNVCVDVEVFVGVSWEAWBVTVRWBHZVSQVRVTHZWDQZVSQWRWEQWQWSVSVRVTWAVHV
      IWRWDVSVJTVKVL $.

    $d J f $.  $d U f $.  $d X f v $.
    $( Given a paracompact topology ` J ` and an open cover ` U ` , there
       exists an open refinement ` ran f ` that is locally finite, using the
       same index as the original cover ` U ` .  (Contributed by Thierry
       Arnoux, 31-Jan-2020.) $)
    pcmplfinf $p |- ( ( J e. Paracomp /\ U C_ J /\ X = U. U )
      -> E. f ( f : U --> J /\ ran f Ref U /\ ran f e. ( LocFin ` J ) ) ) $=
      ( vv cpcmp wcel wss cuni wceq w3a cv clocfin cfv cref wbr wa wf crn elpwi
      wex cpw simpll2 simpll3 ad2antlr simprr simprl locfinref pcmplfin r19.29a
      ) CGHZACIZDAJKZLZFMZCNOZHZUPAPQZRZACBMZSVATZAPQVBUQHLBUBFCUCZUOUPVCHZRZUT
      RABCUPDEULUMUNVDUTUDULUMUNVDUTUEVDUPCIUOUTUPCUAUFVEURUSUGVEURUSUHUIFACDEU
      JUK $.
  $}

  ${
$(
    @( Every paracompact Hausdorff space is regular.  (Contributed by Thierry
       Arnoux, 30-Jan-2020.) @)
    pcmpreg @p |- ( ( J e. Paracomp /\ J e. Haus ) -> J e. Reg ) @=
      ? @.

    @( Every paracompact Hausdorff space is normal.  Dieudonn&eacute;'s theorem
       (Contributed by Thierry Arnoux, 9-Jan-2020.) @)
    pcmpnrm @p |- ( ( J e. Paracomp /\ J e. Haus ) -> J e. Nrm ) @=
      ? @.
$)
  $}

$(
  @{
    metpcmp.1 @e |- J = ( MetOpen ` D ) @.
    @( Stone's Theorem : Every metric space is normal.  There is a 'short'
       proof in https://www.ams.org/journals/proc/
       1969-020-02/S0002-9939-1969-0236876-3/S0002-9939-1969-0236876-3.pdf
       (Contributed by Thierry Arnoux, 9-Jan-2020.) @)
    metpcmp @p |- ( D e. ( *Met ` X ) -> J e. Paracomp ) @=
      ? @.
  @}

  @{
    @( Every locally compact Hausdorff second-countable space is paracompact.
       (Contributed by Thierry Arnoux, 7-Jan-2020.) @)
    2ndcpcmp @p |- ( ( J e. N-Locally Comp /\ J e. Haus /\ J e. 2ndc )
      -> J e. Paracomp ) @=
      ? @.
  @}
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Pseudometrics
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Declare new constant symbols and define their syntactic properties. $)
  $c ~Met $.
  $c pstoMet $.

  $( Extend class notation with the class of metric identifications. $)
  cmetid $a class ~Met $.

  $( Extend class notation with the metric induced by a pseudometric. $)
  cpstm $a class pstoMet $.

  ${
    $d d x y $.
    $( Define the metric identification relation for a pseudometric.
       (Contributed by Thierry Arnoux, 7-Feb-2018.) $)
    df-metid $a |- ~Met = ( d e. U. ran PsMet |-> { <. x , y >. |
      ( ( x e. dom dom d /\ y e. dom dom d ) /\ ( x d y ) = 0 ) } ) $.
  $}

  ${
    $d a b d x y z $.
    $( Define the metric induced by a pseudometric.  (Contributed by Thierry
       Arnoux, 7-Feb-2018.) $)
    df-pstm $a |- pstoMet = ( d e. U. ran PsMet |->
      ( a e. ( dom dom d /. ( ~Met ` d ) ) , b e. ( dom dom d /. ( ~Met ` d ) )
      |-> U. { z | E. x e. a E. y e. b z = ( x d y ) } ) ) $.
  $}

  ${
    $d d w x y z $.  $d d x y D $.  $d d x y X $.
    $( Value of the metric identification relation.  (Contributed by Thierry
       Arnoux, 7-Feb-2018.) $)
    metidval $p |- ( D e. ( PsMet ` X ) -> ( ~Met ` D ) =
      { <. x , y >. | ( ( x e. X /\ y e. X ) /\ ( x D y ) = 0 ) } ) $=
      ( vd vz vw cpsmet cfv wcel cv cdm wa co cc0 wceq copab cvv eleq2d wral wb
      crn cuni cmetid cmpt df-metid simpr dmeqd psmetdmdm adantr eqtr4d anbi12d
      a1i oveqd eqeq1d opabbidv wrex elfvdm fveq2 mpancom wfun cxad cle wbr cxr
      rspcev cxp cmap df-psmet funmpt2 elunirn ax-mp sylibr wss opabssxp elfvex
      crab xpexg syl2anc ssexg sylancr fvmptd ) CDHIZJZECAKZEKZLZLZJZBKZWHJZMZW
      EWJWFNZOPZMZABQZWEDJZWJDJZMZWEWJCNZOPZMZABQZHUBUCZUDRUDEXDWPUEPWDABEUFUMW
      DWFCPZMZWOXBABXFWLWSWNXAXFWIWQWKWRXFWHDWEXFWHCLZLZDXFWGXGXFWFCWDXEUGZUHUH
      WDDXHPXECDUIUJUKZSXFWHDWJXJSULXFWMWTOXFWFCWEWJXIUNUOULUPWDCWEHIZJZAHLZUQZ
      CXDJZDXMJWDXNCDHURXLWDADXMWEDPXKWCCWEDHUSSVFUTHVAXOXNUAARWJWJWFNOPWJFKZWF
      NGKZWJWFNXQXPWFNVBNVCVDGWETFWETMBWETEVEWEWEVGVHNVQHABFGEVIVJACHVKVLVMWDXC
      DDVGZVNXRRJZXCRJXAABDDVOWDDRJZXTXSCDHVPZYADDRRVRVSXCXRRVTWAWB $.

    $( As a relation, the metric identification is a subset of a Cartesian
       product.  (Contributed by Thierry Arnoux, 7-Feb-2018.) $)
    metidss $p |- ( D e. ( PsMet ` X ) -> ( ~Met ` D ) C_ ( X X. X ) ) $=
      ( vx vy cpsmet cfv wcel cmetid cv wa cc0 wceq copab cxp metidval opabssxp
      co syl6eqss ) ABEFGAHFCIZBGDIZBGJSTAQKLZJCDMBBNCDABOUACDBBPR $.
  $}

  ${
    $d a b A $.  $d a b B $.  $d a b D $.  $d a b X $.
    $( ` A ` and ` B ` identify by the metric ` D ` if their distance is zero.
       (Contributed by Thierry Arnoux, 7-Feb-2018.) $)
    metidv $p |- ( ( D e. ( PsMet ` X ) /\ ( A e. X /\ B e. X ) )
      -> ( A ( ~Met ` D ) B <-> ( A D B ) = 0 ) ) $=
      ( va vb cpsmet cfv wcel wa cv co cc0 wceq copab wbr cmetid eleq1 adantl
      wb bi2anan9 oveq12 eqeq1d anbi12d eqid brabga metidval breqd ibar 3bitr4d
      adantr ) CDGHIZADIZBDIZJZJZABEKZDIZFKZDIZJZUQUSCLZMNZJZEFOZPZUOABCLZMNZJZ
      ABCQHZPVHUOVFVITULVDVIEFABVEDDUQANZUSBNZJZVAUOVCVHVKURUMVLUTUNUQADRUSBDRU
      AVMVBVGMUQAUSBCUBUCUDVEUEUFSUPVJVEABULVJVENUOEFCDUGUKUHUOVHVITULUOVHUISUJ
      $.
  $}

  ${
    $( Basic property of the metric identification relation.  (Contributed by
       Thierry Arnoux, 7-Feb-2018.) $)
    metideq $p |- ( ( D e. ( PsMet ` X ) /\
      ( A ( ~Met ` D ) B /\ E ( ~Met ` D ) F ) ) -> ( A D E ) = ( B D F ) ) $=
      ( wcel wbr wa co wceq cle cxr wss syl syl2anc sseldd psmetsym cxad cc0 wb
      cpsmet cfv cmetid simpl cdm metidss dmss dmxpid syl6sseq wrel xpss syl6ss
      cxp cvv df-rel sylibr simprl releldm syl3anc fovrnda syl12anc eqeltrd crn
      simprr psmetf rnss rnxpid eqeltrrd psmettri2 syl13anc jca metidv syl21anc
      relelrn biimpa eqtr3d oveq1d xaddid2 eqtrd breqtrd oveq2d xaddid1 xrletrd
      3eqtrd 3eqtr4d xrletri3 mpbir2and ) CFUBUCGZABCUDUCZHZDEWJHZIZIZADCJZBECJ
      ZKZWOWPLHZWPWOLHZWNWOBDCJZWPWNWODACJZMWNWIAFGZDFGZWOXAKWIWMUEZWNWJUFZFAWN
      WIXEFNXDWIXEFFUNZUFZFWIWJXFNZXEXGNCFUGZWJXFUHOFUIUJOZWNWJUKZWKAXEGWNWIXKX
      DWIWJUOUOUNZNXKWIWJXFXLXIFFULUMWJUPUQOZWIWKWLURZABWJUSPQZWNXEFDXJWNXKWLDX
      EGXMWIWKWLVEZDEWJUSPQZADCFRUTZWNWIXCXBXAMGZXDXQXOWIDAMFFCCFVFZVAVBZVCZWNW
      IBFGZXCWTMGZXDWNWJVDZFBWNWIYEFNXDWIYEXFVDZFWIXHYEYFNXIWJXFVGOFVHUJOZWNXKW
      KBYEGXMXNABWJVOPQZXQWIBDMFFCXTVAVBZWNEBCJZWPMWNWIEFGZYCYJWPKXDWNYEFEYGWNX
      KWLEYEGXMXPDEWJVOPQZYHEBCFRUTZWNWIYKYCYJMGZXDYLYHWIEBMFFCXTVAVBZVIZWNWOBA
      CJZWTSJZWTLWNWIYCXBXCWOYRLHXDYHXOXQADBCFVJVKWNYRTWTSJZWTWNYQTWTSWNABCJZYQ
      TWNWIXBYCYTYQKXDXOYHABCFRUTWNWIXBYCIZWKYTTKZXDWNXBYCXOYHVLXNWIUUAIWKUUBAB
      CFVMVPVNZVQVRWNYDYSWTKYIWTVSOVTWAWNWTYJEDCJZSJZWPLWNWIYKYCXCWTUUELHXDYLYH
      XQBDECFVJVKWNUUEYJTSJZYJWPWNUUDTYJSWNUUDDECJZTWNWIYKXCUUDUUGKXDYLXQEDCFRU
      TWNWIXCYKIZWLUUGTKZXDWNXCYKXQYLVLXPWIUUHIWLUUIDECFVMVPVNZVTWBWNYNUUFYJKYO
      YJWCOYMWEWAWDWNWPAECJZWOYPWNWIXBYKUUKMGZXDXOYLWIAEMFFCXTVAVBZYBWNWPYTUUKS
      JZUUKLWNWIXBYCYKWPUUNLHXDXOYHYLBEACFVJVKWNUUNTUUKSJZUUKWNYTTUUKSUUCVRWNUU
      LUUOUUKKUUMUUKVSOVTWAWNUUKXAUUGSJZWOLWNWIXCXBYKUUKUUPLHXDXQXOYLAEDCFVJVKW
      NXATSJZXAUUPWOWNXSUUQXAKYAXAWCOWNUUGTXASUUJWBXRWFWAWDWNWOMGWPMGWQWRWSIUAY
      BYPWOWPWGPWH $.

    $d x y z D $.  $d x y z X $.
    $( The metric identification is an equivalence relation.  (Contributed by
       Thierry Arnoux, 11-Feb-2018.) $)
    metider $p |- ( D e. ( PsMet ` X ) -> ( ~Met ` D ) Er X ) $=
      ( vx wcel cv wbr wa ssbrd imp brxp sylib co cc0 wceq metidv wb cle syldan
      cxad simpld cpsmet cfv cmetid cvv cxp wss wrel metidss xpss syl6ss df-rel
      vy sylibr psmetsym 3expb eqeq1d ancom2s 3bitr4d biimpd impancom mpd simpl
      vz simprr simprl simprd psmettri2 syl13anc eqtr3d oveq12d cxr 0xr xaddid1
      mpbid syl6eq breqtrd psmetge0 syl3anc psmetcl xrletri3 mpbir2and syl12anc
      ax-mp sylancl mpbird psmet0 anabsan2 impbida iserd ) ABUAUBDZCULVCBAUCUBZ
      WJWKUDUDUEZUFWKUGWJWKBBUEZWLABUHZBBUIUJWKUKUMWJCEZULEZWKFZGZWOBDZWPBDZGZW
      PWOWKFZWRWOWPWMFZXAWJWQXCWJWKWMWOWPWNHIWOWPBBJKZWJXAWQXBWJXAGZWQXBXEWOWPA
      LZMNZWPWOALZMNZWQXBXEXFXHMWJWSWTXFXHNZWOWPABUNUOZUPWOWPABOZWJWTWSXBXIPWPW
      OABOUQURUSUTVAWJWQWPVCEZWKFZGZGZWOXMWKFZWOXMALZMNZXPXSXRMQFZMXRQFZXPXRXHW
      PXMALZSLZMQXPWJWTWSXMBDZXRYCQFWJXOVBZXPWTYDWJXOXNWTYDGZWJWQXNVDZWJXNGWPXM
      WMFZYFWJXNYHWJWKWMWPXMWNHIWPXMBBJKRZTXPWSWTWJXOWQXAWJWQXNVEZXDRZTZXPWTYDY
      IVFZWOXMWPABVGVHXPYCMMSLZMXPXHMYBMSXPXFXHMWJXOXAXJYKXKRXPWQXGYJWJXOXAWQXG
      PYKXLRVNVIXPXNYBMNZYGWJXOYFXNYOPYIWPXMABORVNVJMVKDZYNMNVLMVMWCVOVPXPWJWSY
      DYAYEYLYMWOXMABVQVRXPXRVKDZYPXSXTYAGPXPWJWSYDYQYEYLYMWOXMABVSVRVLXRMVTWDW
      AXPWJWSYDXQXSPYEYLYMWOXMABOWBWEWJWSWOWOWKFZWJWSGYRWOWOALMNZWOABWFWJWSYRYS
      PWOWOABOWGWEWJYRGZWSWSYTWOWOWMFZWSWSGWJYRUUAWJWKWMWOWOWNHIWOWOBBJKTWHWI
      $.
  $}

  ${
    $d a b c d x y z D $.  $d a b c d x y z X $.  $d a b c d x y z .~ $.
    pstmval.1 $e |- .~ = ( ~Met ` D ) $.
    $( Value of the metric induced by a pseudometric ` D ` .  (Contributed by
       Thierry Arnoux, 7-Feb-2018.) $)
    pstmval $p |- ( D e. ( PsMet ` X ) -> ( pstoMet ` D ) =
      ( a e. ( X /. .~ ) , b e. ( X /. .~ )
      |-> U. { z | E. x e. a E. y e. b z = ( x D y ) } ) ) $=
      ( vd vc cpsmet cfv wcel cv cdm co wceq wrex cvv cmetid cqs cab cuni cmpt2
      crn cpstm cmpt df-pstm wa psmetdmdm adantr dmeq dmeqd adantl eqtr4d qseq1
      a1i syl fveq2 syl6reqr eqtr2d mpt2eq12 syl2anc w3a simp1r eqeq2d 2rexbidv
      qseq2 oveqd abbidv unieqd mpt2eq3dva elfvdm eleq2d rspcev mpancom wfun wb
      eqtrd cc0 cxad cle wbr wral cxr cmap crab df-psmet funmpt2 elunirn sylibr
      cxp ax-mp elfvex qsexg mpt2exga fvmptd ) DFLMZNZJDGHJOZPZPZXAUAMZUBZXECOZ
      AOZBOZXAQZRZBHOZSAGOZSZCUCZUDZUEZGHFEUBZXQXFXGXHDQZRZBXKSAXLSZCUCZUDZUEZL
      UFUDZUGTUGJYDXPUHRWTABCGHJUIURWTXADRZUJZXPGHXQXQXOUEZYCYFXEXQRZYHXPYGRYFX
      QXCEUBZXEYFFXCRXQYIRYFFDPZPZXCWTFYKRYEDFUKULYEXCYKRWTYEXBYJXADUMUNUOUPFXC
      EUQUSYEYIXERZWTYEEXDRYLYEXDDUAMEXADUAUTIVAEXDXCVIUSUOVBZYMGHXEXEXQXQXOVCV
      DYFGHXQXQXOYBYFXLXQNZXKXQNZVEZXNYAYPXMXTCYPXJXSABXLXKYPXIXRXFYPXADXGXHWTY
      EYNYOVFVJVGVHVKVLVMVTWTDXGLMZNZALPZSZDYDNZFYSNWTYTDFLVNYRWTAFYSXGFRYQWSDX
      GFLUTVOVPVQLVRUUAYTVSATXLXLXAQWARXLXKXAQKOZXLXAQUUBXKXAQWBQWCWDKXGWEHXGWE
      UJGXGWEJWFXGXGWMWGQWHLAGHKJWIWJADLWKWNWLWTXQTNZUUCYCTNWTFTNUUCDFLWOFETWPU
      SZUUDGHXQXQYBTTWQVDWR $.

    $d a b e f z .~ $.  $d a b e f x y z A $.  $d a b e f x y z B $.
    $d e f z D $.  $d e f z X $.
    $( Function value of the metric induced by a pseudometric ` D `
       (Contributed by Thierry Arnoux, 11-Feb-2018.) $)
    pstmfval $p |- ( ( D e. ( PsMet ` X ) /\ A e. X /\ B e. X ) ->
      ( [ A ] .~ ( pstoMet ` D ) [ B ] .~ ) = ( A D B ) ) $=
      ( vx vy vz va vb ve wcel co cv wceq wrex cvv wbr wb vf cpsmet cfv w3a cec
      cpstm cqs cab cuni cmpt2 pstmval 3ad2ant1 cmetid eqeltri ecelqsi 3ad2ant2
      oveqd fvex 3ad2ant3 rexeq abbidv unieqd rexbidv eqid ecexg ax-mp ab2rexex
      uniex ovmpt2 syl2anc csn wa simpr3 simpl1 simpr1 cxp wss metidss syl5eqss
      wrel syl6ss df-rel sylibr adantr relelec mpbid breqi sylib simpr2 metideq
      xpss syl12anc eqtr4d adantlr 3anassrs oveq1 eqeq2d cbvrex2v biimpi adantl
      syl oveq2 r19.29vva cc0 simpl2 psmet0 3syl a1i breqd metidv 3bitrd mpbird
      simpl3 simpr rspceov syl3anc impbida df-sn syl6eqr unisn syl6eq 3eqtrd
      ovex ) CEUBUCMZAEMZBEMZUDZADUEZBDUEZCUFUCZNYHYIGHEDUGZYKIOZJOZKOZCNZPZKHO
      ZQZJGOZQZIUHZUIZUJZNZYPKYIQZJYHQZIUHZUIZABCNZYGYJUUCYHYIYDYEYJUUCPYFJKICD
      EGHFUKULUQYGYHYKMZYIYKMZUUDUUHPYEYDUUJYFEADDCUMUCZRFCUMURUNZUOUPYFYDUUKYE
      EBDUUMUOUSGHYHYIYKYKUUBUUHUUCYRJYHQZIUHZUIYSYHPZUUAUUOUUPYTUUNIYRJYSYHUTV
      AVBYQYIPZUUOUUGUUQUUNUUFIUUQYRUUEJYHYPKYQYIUTVCVAVBUUCVDUUGJKIYHYIYODRMZY
      HRMUUMARDVEVFUURYIRMUUMBRDVEVFVGVHVIVJYGUUHUUIVKZUIUUIYGUUGUUSYGUUGYLUUIP
      ZIUHUUSYGUUFUUTIYGUUFUUTYGUUFVLZYLLOZUAOZCNZPZUUTLUAYHYIUVAUVBYHMZUVCYIMZ
      UVEUUTYGUVFUVGUVEUDZUUTUUFYGUVHVLZYLUVDUUIYGUVFUVGUVEVMUVIYDAUVBUULSZBUVC
      UULSZUUIUVDPYDYEYFUVHVNUVIAUVBDSZUVJUVIUVFUVLYGUVFUVGUVEVOUVIDVTZUVFUVLTY
      GUVMUVHYDYEUVMYFYDDRRVPZVQUVMYDDEEVPZUVNYDDUULUVOFCEVRVSEEWKWADWBWCZULWDZ
      UVBADWEXAWFAUVBDUULFWGWHUVIBUVCDSZUVKUVIUVGUVRYGUVFUVGUVEWIUVIUVMUVGUVRTU
      VQUVCBDWEXAWFBUVCDUULFWGWHAUVBCBUVCEWJWLWMWNWOUUFUVEUAYIQLYHQZYGUUFUVSYPU
      VEYLUVBYNCNZPJKLUAYHYIYMUVBPYOUVTYLYMUVBYNCWPWQYNUVCPUVTUVDYLYNUVCUVBCXBW
      QWRWSWTXCYGUUTVLZAYHMZBYIMZUUTUUFUWAUWBAACNXDPZUWAYDYEUWDYDYEYFUUTVNZYDYE
      YFUUTXEZACEXFVJUWAUWBAADSZAAUULSZUWDUWAYDUVMUWBUWGTUWEUVPAADWEXGUWADUULAA
      DUULPUWAFXHZXIUWAYDYEYEUWHUWDTUWEUWFUWFAACEXJWLXKXLUWAUWCBBCNXDPZUWAYDYFU
      WJUWEYDYEYFUUTXMZBCEXFVJUWAUWCBBDSZBBUULSZUWJUWAYDUVMUWCUWLTUWEUVPBBDWEXG
      UWADUULBBUWIXIUWAYDYFYFUWMUWJTUWEUWKUWKBBCEXJWLXKXLYGUUTXNJKYHYIABYLCXOXP
      XQVAIUUIXRXSVBUUIABCYCXTYAYB $.

    $( The metric induced by a pseudometric is a full-fledged metric on the
       equivalence classes of the metric identification.  (Contributed by
       Thierry Arnoux, 11-Feb-2018.) $)
    pstmxmet $p |- ( D e. ( PsMet ` X ) ->
      ( pstoMet ` D ) e. ( *Met ` ( X /. .~ ) ) ) $=
      ( vx vy vz va vb wcel cxr cv co cc0 wceq wb wral wa wrex r19.29a vc cpstm
      cpsmet cfv cqs cxmt cxp cxad cle wbr wfn cab cuni cmpt2 eqid vex ab2rexex
      uniex fnmpt2i pstmval fneq1d mpbiri simpllr simpr oveq12d simp-5l simp-4r
      wf cec simplr pstmfval syl3anc eqtrd psmetf fovrnd eqeltrd elqsi ad2antll
      syl ad2antrr ad2antrl ralrimivva ffnov sylanbrc 3expa eqeq1d cmetid breqi
      metidv anassrs syl5bb wer metider ereq1 ax-mp sylibr erth 3bitr2d adantlr
      adantllr adantr eqeq12d 3bitr4d simp-6l simp-6r psmettri2 simp-5r 3brtr4d
      syl13anc adantl6r ad5antlr adantl5r ad4antlr adantl4r ad3antlr anasss jca
      ralrimiva cvv elfvex qsexg isxmet 3syl mpbir2and ) ACUCUDJZAUBUDZCBUEZUFU
      DJZYGYGUGZKYFVHZELZFLZYFMZNOZYKYLOZPZYMGLZYKYFMZYQYLYFMZUHMZUIUJZGYGQZRZF
      YGQEYGQZYEYFYIUKZYMKJZFYGQEYGQYJYEUUEEFYGYGYQHLZILZAMZOIYLSHYKSGULZUMZUNZ
      YIUKEFYGYGUUKUULUULUOUUJHIGYKYLUUIEUPFUPUQURUSYEYIYFUULHIGABCEFDUTVAVBYEU
      UFEFYGYGYEYKYGJZYLYGJZRZRZYKUUGBVIZOZUUFHCUUPUUGCJZRZUURRZYLUUHBVIZOZUUFI
      CUVAUUHCJZRZUVCRZYMUUIKUVFYMUUQUVBYFMZUUIUVFYKUUQYLUVBYFUUTUURUVDUVCVCZUV
      EUVCVDZVEZUVFYEUUSUVDUVGUUIOZYEUUOUUSUURUVDUVCVFZUUPUUSUURUVDUVCVGZUVAUVD
      UVCVJZUUGUUHABCDVKZVLVMUVFUUGUUHKCCAUVFYECCUGKAVHUVLACVNVSUVMUVNVOVPUUPUV
      CICSZUUSUURUUNUVPYEUUMICYLBVQZVRVTZTUUMUURHCSZYEUUNHCYKBVQZWAZTWBEFYGYGKY
      FWCWDYEUUCEFYGYGUUPYPUUBUUPUURYPHCUVAUVCYPICUVFUVGNOZUUQUVBOZYNYOUVEUWBUW
      CPZUVCUUTUVDUWDUURYEUUSUVDUWDUUOYEUUSRZUVDRZUWBUUINOZUUGUUHBUJZUWCUWFUVGU
      UINYEUUSUVDUVKUVOWEWFUWHUUGUUHAWGUDZUJZUWFUWGUUGUUHBUWIDWHYEUUSUVDUWJUWGP
      UUGUUHACWIWJWKUWFUUGUUHBCUWFCUWIWLZCBWLZYEUWKUUSUVDACWMVTBUWIOUWLUWKPDCBU
      WIWNWOWPYEUUSUVDVJWQWRWTWSXAUVFYMUVGNUVJWFUVFYKUUQYLUVBUVHUVIXBXCUVRTUWAT
      YEUUMUUNUUBYEUUMRUUNRZUUAGYGUWMYQYGJZRUURUUAHCYEUUMUUNUWNUUSUURUUAYEUUNRU
      WNRUUSRUURRUVCUUAICYEUUNUWNUUSUURUVDUVCUUAYEUWNRUUSRUURRUVDRUVCRYQUALZBVI
      ZOZUUAUACYEUWNUUSUURUVDUVCUWOCJZUWQUUAUWEUURRZUVDRZUVCRZUWRRZUWQRZUUIUWOU
      UGAMZUWOUUHAMZUHMZYMYTUIUXCYEUWRUUSUVDUUIUXFUIUJYEUUSUURUVDUVCUWRUWQXDZUX
      AUWRUWQVJZYEUUSUURUVDUVCUWRUWQXEZUWSUVDUVCUWRUWQVGZUUGUUHUWOACXFXIUXCYMUV
      GUUIUXCYKUUQYLUVBYFUWEUURUVDUVCUWRUWQXGZUWTUVCUWRUWQVCZVEUXCYEUUSUVDUVKUX
      GUXIUXJUVOVLVMUXCYRUXDYSUXEUHUXCYRUWPUUQYFMZUXDUXCYQUWPYKUUQYFUXBUWQVDZUX
      KVEUXCYEUWRUUSUXMUXDOUXGUXHUXIUWOUUGABCDVKVLVMUXCYSUWPUVBYFMZUXEUXCYQUWPY
      LUVBYFUXNUXLVEUXCYEUWRUVDUXOUXEOUXGUXHUXJUWOUUHABCDVKVLVMVEXHXJUWNUWQUACS
      YEUUSUURUVDUVCUACYQBVQXKTXLUUNUVPYEUWNUUSUURUVQXMTXNUUMUVSYEUUNUWNUVTXOTX
      RXPXQWBYECXSJYGXSJYHYJUUDRPACUCXTCBXSYAEFGXSYFYGYBYCYD $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Continuity - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    hauseqcn.x $e |- X = U. J $.
    hauseqcn.k $e |- ( ph -> K e. Haus ) $.
    hauseqcn.f $e |- ( ph -> F e. ( J Cn K ) ) $.
    hauseqcn.g $e |- ( ph -> G e. ( J Cn K ) ) $.
    hauseqcn.e $e |- ( ph -> ( F |` A ) = ( G |` A ) ) $.
    hauseqcn.a $e |- ( ph -> A C_ X ) $.
    hauseqcn.c $e |- ( ph -> ( ( cls ` J ) ` A ) = X ) $.
    $( In a Hausdorff topology, two continuous functions which agree on a dense
       set agree everywhere.  (Contributed by Thierry Arnoux, 28-Dec-2017.) $)
    hauseqcn $p |- ( ph -> F = G ) $=
      ( wceq cin wss cfv wcel 3syl cuni cdm ccl ctop ccn co cntop1 dmin wf eqid
      syl cnf fdm ineq12d syl6eq syl5sseq cres wfn wb syl6sseq fnreseql syl3anc
      inidm ffn mpbid ccld hauseqlcld cldcls 3sstr3d syl5eqssr fneqeql2 syl2anc
      clsss mpbird ) ACDOZEUAZCDPUBZQZAVPGVQHABEUCRZRZVQVSRZGVQAEUDSZVQVPQBVQQZ
      VTWAQACEFUEUFZSZWBJCEFUGUKACUBZDUBZPZVQVPCDUHAWHVPVPPVPAWFVPWGVPAWEVPFUAZ
      CUIZWFVPOJCEFVPWIVPUJZWIUJZULZVPWICUMTADWDSZVPWIDUIZWGVPOKDEFVPWIWKWLULZV
      PWIDUMTUNVPVCUOUPACBUQDBUQOZWCLACVPURZDVPURZBVPQWQWCUSAWEWJWRJWMVPWICVDTZ
      AWNWOWSKWPVPWIDVDTZABGVPMHUTVPCDBVAVBVEVQBEVPWKVMVBNAVQEVFRSWAVQOACDEFIJK
      VGVQEVHUKVIVJAWRWSVOVRUSWTXAVPCDVKVLVN $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Topology of the closed unit
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( The closed unit is a subset of the set of the complex numbers Useful lemma
     for manipulating probabilities within the closed unit.  (Contributed by
     Thierry Arnoux, 12-Dec-2016.) $)
  unitsscn $p |- ( 0 [,] 1 ) C_ CC $=
    ( cc0 c1 cicc co cr cc unitssre ax-resscn sstri ) ABCDEFGHI $.

  $( The closed unit is a subset of the set of the real numbers Useful lemma
     for manipulating probabilities within the closed unit.  (Contributed by
     Thierry Arnoux, 21-Dec-2016.) $)
  elunitrn $p |- ( A e. ( 0 [,] 1 ) -> A e. RR ) $=
    ( cc0 c1 cicc co wcel cr cle wbr 0re 1re elicc2i simp1bi ) ABCDEFAGFBAHIACH
    IBCAJKLM $.

  $( The closed unit is a subset of the set of the complext numbers Useful
     lemma for manipulating probabilities within the closed unit.  (Contributed
     by Thierry Arnoux, 21-Dec-2016.) $)
  elunitcn $p |- ( A e. ( 0 [,] 1 ) -> A e. CC ) $=
    ( cc0 c1 cicc co wcel elunitrn recnd ) ABCDEFAAGH $.

  $( An element of the closed unit is positive Useful lemma for manipulating
     probabilities within the closed unit.  (Contributed by Thierry Arnoux,
     20-Dec-2016.) $)
  elunitge0 $p |- ( A e. ( 0 [,] 1 ) -> 0 <_ A ) $=
    ( cc0 c1 cicc co wcel cr cle wbr 0re 1re elicc2i simp2bi ) ABCDEFAGFBAHIACH
    IBCAJKLM $.

  $( The closed unit is a subset of the set of the extended nonnegative reals.
     Useful lemma for manipulating probabilities within the closed unit.
     (Contributed by Thierry Arnoux, 12-Dec-2016.) $)
  unitssxrge0 $p |- ( 0 [,] 1 ) C_ ( 0 [,] +oo ) $=
    ( cc0 cpnf cicc co wcel c1 wss 0e0iccpnf cxr cle wbr rexri 0le1 pnfge ax-mp
    1re w3a wb 0xr mp2an pnfxr elicc1 mpbir3an iccss2 ) AABCDZEFUEEZAFCDUEGHUFF
    IEZAFJKZFBJKZFPLZMUGUIUJFNOAIEBIEUFUGUHUIQRSUAABFUBTUCABAFUDT $.

  $( Necessary conditions for a quotient to be in the closed unit.  (somewhat
     too strong, it would be sufficient that A and B are in RR+) (Contributed
     by Thierry Arnoux, 20-Dec-2016.) $)
  unitdivcld $p |- ( ( A e. ( 0 [,] 1 ) /\ B e. ( 0 [,] 1 ) /\ B =/= 0 ) ->
                                   ( A <_ B <-> ( A / B ) e. ( 0 [,] 1 ) ) ) $=
    ( cc0 c1 cicc co wcel wne w3a cle wbr cr elunitrn 3ad2ant1 adantr elunitge0
    wa simp3 wb 0re cdiv 3ad2ant2 redivcld ltlen sylancr biimpar 3com23 mpd3an3
    clt 3adant1 divge0 syl22anc cmul 1red ledivmul syl112anc ax-1rid breq2d syl
    3impb bitr2d biimpa 3jca ex syl5ibr impbid 1re elicc2i syl6bbr ) ACDEFZGZBV
    JGZBCHZIZABJKZABUAFZLGZCVPJKZVPDJKZIZVPVJGVNVOVTVNVOVTVNVOQVQVRVSVNVQVOVNAB
    VKVLALGZVMAMNZVLVKBLGZVMBMZUBZVKVLVMRUCOVNVRVOVNWACAJKZWCCBUIKZVRWBVKVLWFVM
    APNWEVLVMWGVKVLVMCBJKZWGVLWHVMBPOVLWHVMWGVLWHVMWGVLWGWHVMQZVLCLGWCWGWISTWDC
    BUDUEUFUTUGUHUJZABUKULOVNVOVSVNVSABDUMFZJKZVOVNWADLGWCWGVSWLSWBVNUNWEWJADBU
    OUPVNWCWLVOSWEWCWKBAJBUQURUSVAZVBVCVDVTVOVNVSVQVRVSRWMVEVFCDVPTVGVHVI $.

  ${
    $d x y $.
    df-iis $e |- I = ( ( mulGrp ` CCfld ) |`s ( 0 [,] 1 ) ) $.
    $( The closed unit forms a topological monoid.  (Contributed by Thierry
       Arnoux, 25-Mar-2017.) $)
    iistmd $p |- I e. TopMnd $=
      ( vx vy ccnfld cmgp cfv ctmd wcel cc0 c1 cicc co csubmnd cnnrg mp2b cc cv
      cmul wral cnrg ctrg nrgtrg trgtmd wss unitsscn 1elunit iimulcl rgen2a w3a
      eqid cmnd wb crg nrgring ringmgp cnfldbas mgpbas cnfld1 cnfldmul mgpplusg
      ringidval issubm ax-mp mpbir3an submtmd mp2an ) EFGZHIZJKLMZVHNGIZAHIEUAI
      ZEUBIVIOEUCEVHVHUKZUDPVKVJQUEZKVJIZCRZDRZSMVJIZDVJTCVJTZUFUGVRCDVJVPVQUHU
      IVHULIZVKVNVOVSUJUMVLEUNIVTOEUOEVHVMUPPCDQSVJVHKQEVHVMUQUREKVHVMUSVBESVHV
      MUTVAVCVDVEVJVHABVFVG $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Topology of ` ( RR X. RR ) `
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    unicls.1 $e |- J e. Top $.
    unicls.2 $e |- X = U. J $.
    $( The union of the closed set is the underlying set of the topology.
       (Contributed by Thierry Arnoux, 21-Sep-2017.) $)
    unicls $p |- U. ( Clsd ` J ) = X $=
      ( ccld cfv cuni wss wcel wceq cpw cldss2 sspwuni mpbi ctop topcld unissel
      ax-mp mp2an ) AEFZGZBHZBTIZUABJTBKHUBABDLTBMNAOIUCCABDPRTBQS $.
  $}

  ${
    tpr2tp.0 $e |- J = ( topGen ` ran (,) ) $.
    $( The usual topology on ` ( RR X. RR ) ` is the product topology of the
       usual topology on ` RR ` .  (Contributed by Thierry Arnoux,
       21-Sep-2017.) $)
    tpr2tp $p |- ( J tX J ) e. ( TopOn ` ( RR X. RR ) ) $=
      ( cr ctopon cfv wcel ctx cxp cioo crn ctg retopon eqeltri txtopon mp2an
      co ) ACDEZFZRAAGPCCHDEFAIJKEQBLMZSAACCNO $.

    $( The usual topology on ` ( RR X. RR ) ` is the product topology of the
       usual topology on ` RR ` .  (Contributed by Thierry Arnoux,
       21-Sep-2017.) $)
    tpr2uni $p |- U. ( J tX J ) = ( RR X. RR ) $=
      ( cr cxp ctx co cuni tpr2tp toponunii eqcomi ) CCDZAAEFZGKLABHIJ $.
  $}

  ${
    $d r A $.  $d r B $.
    $( Rewrite the cartesian product of two sets as the intersection of their
       preimage by ` 1st ` and ` 2nd ` , the projections on the first and
       second elements.  (Contributed by Thierry Arnoux, 22-Sep-2017.) $)
    xpinpreima $p |- ( A X. B ) = ( ( `' ( 1st |` ( _V X. _V ) ) " A )
                                i^i ( `' ( 2nd |` ( _V X. _V ) ) " B ) ) $=
      ( vr c1st cfv wcel cvv cxp crab c2nd cin cres ccnv cima wf wceq fncnvima2
      wfn ffn mp2b cv wa inrab f1stres fvres eleq1d rabbiia f2ndres ineq12i xp2
      eqtri 3eqtr4ri ) CUAZDEZAFZCGGHZIZUMJEZBFZCUPIZKUOUSUBCUPIDUPLZMANZJUPLZM
      BNZKABHUOUSCUPUCVBUQVDUTVBUMVAEZAFZCUPIZUQUPGVAOVAUPRVBVGPGGUDUPGVASCUPAV
      AQTVFUOCUPUMUPFZVEUNAUMUPDUEUFUGUKVDUMVCEZBFZCUPIZUTUPGVCOVCUPRVDVKPGGUHU
      PGVCSCUPBVCQTVJUSCUPVHVIURBUMUPJUEUFUGUKUICABUJUL $.

    $d r E $.  $d r F $.
    $( Rewrite the cartesian product of two sets as the intersection of their
       preimage by ` 1st ` and ` 2nd ` , the projections on the first and
       second elements.  (Contributed by Thierry Arnoux, 22-Sep-2017.) $)
    xpinpreima2 $p |- ( ( A C_ E /\ B C_ F )
                -> ( A X. B ) = ( ( `' ( 1st |` ( E X. F ) ) " A )
                              i^i ( `' ( 2nd |` ( E X. F ) ) " B ) ) ) $=
      ( vr wss wa cxp c1st cfv wcel crab c2nd cin cres ccnv cima sseldd syl6eqr
      cvv cv xpss rabss2 mp1i simprl simpll simprrl simplr simprrr jca sylanbrc
      elxp7 rabss3d eqssd xp2 syl6reqr inrab wf wfn wceq f1stres fncnvima2 mp2b
      ffn fvres eleq1d rabbiia eqtri f2ndres ineq12i ) ACFZBDFZGZABHZEUAZIJZAKZ
      ECDHZLZVOMJZBKZEVRLZNZIVROZPAQZMVROZPBQZNVMVNVQWAGZEVRLZWCVMWIWHETTHZLZVN
      VMWIWKVRWJFWIWKFVMCDUBWHEVRWJUCUDVMWHEWJVRVMVOWJKZWHGZGZWLVPCKZVTDKZGVOVR
      KZVMWLWHUEWNWOWPWNACVPVKVLWMUFVMWLVQWAUGRWNBDVTVKVLWMUHVMWLVQWAUIRUJVOCDU
      LUKUMUNEABUOUPVQWAEVRUQSWEVSWGWBWEVOWDJZAKZEVRLZVSVRCWDURWDVRUSWEWTUTCDVA
      VRCWDVDEVRAWDVBVCWSVQEVRWQWRVPAVOVRIVEVFVGVHWGVOWFJZBKZEVRLZWBVRDWFURWFVR
      USWGXCUTCDVIVRDWFVDEVRBWFVBVCXBWAEVRWQXAVTBVOVRMVEVFVGVHVJS $.
  $}

  ${
    $( The complex square of side ` D ` is a subset of the complex circle of
       radius ` D ` .  (Contributed by Thierry Arnoux, 25-Sep-2017.) $)
    sqsscirc1 $p |- ( ( ( ( X e. RR /\ 0 <_ X ) /\ ( Y e. RR /\ 0 <_ Y ) )
      /\ D e. RR+ ) -> ( ( X < ( D / 2 ) /\ Y < ( D / 2 ) ) ->
      ( sqrt ` ( ( X ^ 2 ) + ( Y ^ 2 ) ) ) < D ) ) $=
      ( cr wcel cc0 cle wbr wa c2 cdiv co clt csqrt cfv a1i cmul 2re c1 c4 cexp
      crp caddc simp-4l resqcld simpllr simpld readdcld sqge0d resqrtcld simplr
      addge0d rpred rehalfcld simprl simp-4r rpge0d divge0d lt2sqd mpbid simprr
      2rp simprd lt2addd sqrtltd rpre recnd 2timesd fveq2d rpge0 sqrtsqd oveq2d
      0le2 sqrtmuld 2cnd sqrtcld rpcn wne 2ne0 div32d 3eqtr4d eqtr3d wb 4re 0re
      2lt4 4pos ltleii sqrtlt mp4an mpbi sqrtpclii ltdiv1ii sqrtsq mp2an oveq1i
      2pos wceq sq2 fveq2i 2div2e1 3eqtr3i breqtri 1red ltmul1d mulid2d breqtrd
      id mpbii eqbrtrd syl lttrd ex ) BDEZFBGHZIZCDEZFCGHZIZIZAUBEZIZBAJKLZMHZC
      YCMHZIZBJUALZCJUALZUCLZNOZAMHYBYFIZYJYCJUALZYLUCLZNOZAYKYIYKYGYHYKBXNXOXS
      YAYFUDZUEZYKCYKXQXRXPXSYAYFUFZUGZUEZUHZYKYGYHYPYSYKBYOUIYKCYRUIULZUJYKYMY
      KYLYLYKYCYKAYKAXTYAYFUKZUMZUNZUEZUUEUHZYKYLYLUUEUUEYKYCUUDUIZUUGULZUJUUCY
      KYIYMMHYJYNMHYKYGYHYLYLYPYSUUEUUEYKYDYGYLMHYBYDYEUOYKBYCYOUUDXNXOXSYAYFUP
      YKAJUUCJUBEZYKVBPYKAUUBUQURZUSUTYKYEYHYLMHYBYDYEVAYKCYCYRUUDYKXQXRYQVCUUJ
      USUTVDYKYIYMYTUUAUUFUUHVEUTYKYAYNAMHUUBYAYNJNOZJKLZAQLZAMYAJYLQLZNOZYNUUM
      YAUUNYMNYAYLYAYLYAYCYAAAVFZUNZUEZVGVHVIYAUUKYLNOZQLUUKYCQLUUOUUMYAUUSYCUU
      KQYAYCUUQYAAJUUPUUIYAVBPAVJURVKVLYAJYLJDEZYARPZFJGHZYAVMPZUURYAYCUUQUIVNY
      AUUKJAYAJYAVOZVPUVDAVQZJFVRYAVSPVTWAWBYAUUMSAQLZAMYAUULSMHUUMUVFMHUULTNOZ
      JKLZSMUUKUVGMHZUULUVHMHJTMHZUVIWFUUTUVBTDEFTGHUVJUVIWCRVMWDFTWEWDWGWHJTWI
      WJWKUUKUVGJJRWQWLTWDWGWLRWQWMWKJJUALZNOZJKLJJKLUVHSUVLJJKUUTUVBUVLJWRRVMJ
      WNWOWPUVLUVGJKUVKTNWSWTWPXAXBXCYAUULSAYAUUKYAJUVAUVCUJUNYAXDYAXHXEXIYAAUV
      EXFXGXJXKXLXM $.
  $}

  ${
    $( The complex square of side ` D ` is a subset of the complex disc of
       radius ` D ` .  (Contributed by Thierry Arnoux, 25-Sep-2017.) $)
    sqsscirc2 $p |- ( ( ( A e. CC /\ B e. CC ) /\ D e. RR+ ) ->
      ( ( ( abs ` ( Re ` ( B - A ) ) ) < ( D / 2 ) /\
          ( abs ` ( Im ` ( B - A ) ) ) < ( D / 2 ) )
                                              -> ( abs ` ( B - A ) ) < D ) ) $=
      ( cc wcel wa co cfv cabs c2 clt wbr cexp caddc csqrt cc0 cle recnd abscld
      cr crp cmin cre cim wi simplr simpll subcld recld absge0d jca imcld simpr
      cdiv sqsscirc1 syl21anc absval2d breq1d absresq syl oveq12d fveq2d bitr4d
      wceq sylibrd ) ADEZBDEZFZCUAEZFZBAUBGZUCHZIHZCJUNGZKLVKUDHZIHZVNKLFZVMJMG
      ZVPJMGZNGZOHZCKLZVKIHZCKLZVJVMTEZPVMQLZFVPTEZPVPQLZFVIVQWBUEVJWEWFVJVLVJV
      LVJVKVJBAVFVGVIUFVFVGVIUGUHZUIZRZSVJVLWKUJUKVJWGWHVJVOVJVOVJVKWIULZRZSVJV
      OWMUJUKVHVIUMCVMVPUOUPVJWDVLJMGZVOJMGZNGZOHZCKLWBVJWCWQCKVJVKWIUQURVJWAWQ
      CKVJVTWPOVJVRWNVSWONVJVLTEVRWNVDWJVLUSUTVJVOTEVSWOVDWLVOUSUTVAVBURVCVE $.
  $}

  ${
    $d x y F $.  $d x G $.  $d x y H $.  $d x y X $.  $d x y Y $.
    cnre2csqlem.1 $e |- ( G |` ( RR X. RR ) ) = ( H o. F ) $.
    cnre2csqlem.2 $e |- F Fn ( RR X. RR ) $.
    cnre2csqlem.3 $e |- G Fn _V $.
    cnre2csqlem.4 $e |- ( x e. ( RR X. RR ) -> ( G ` x ) e. RR ) $.
    cnre2csqlem.5 $e |- ( ( x e. ran F /\ y e. ran F )
                          -> ( H ` ( x - y ) ) = ( ( H ` x ) - ( H ` y ) ) ) $.
    $( Lemma for ~ cnre2csqima .  (Contributed by Thierry Arnoux,
       27-Sep-2017.) $)
    cnre2csqlem $p |- ( ( X e. ( RR X. RR ) /\ Y e. ( RR X. RR ) /\ D e. RR+ )
      -> ( Y e. ( `' ( G |` ( RR X. RR ) )
                                " ( ( ( G ` X ) - D ) (,) ( ( G ` X ) + D ) ) )
           -> ( abs ` ( H ` ( ( F ` Y ) - ( F ` X ) ) ) ) < D ) ) $=
      ( cr wcel cfv cmin co clt wceq cxp crp w3a cres ccnv caddc cioo cima cabs
      wbr wa wfn wb cvv wss fnssres mp2an elpreima mp1i simplbda ex simp2 fvres
      ssv syl eleq1d simp1 cv fveq2 vtoclga simp3 rpred resubcld rexrd readdcld
      cxr elioo2 syl2anc biimpa simp2d simp3d jca sylbid absdiflt biimprd 3syld
      wi syl3anc crn fnfvelrn sylancr oveq1 fveq2d oveq1d oveq2 oveq2d vtocl2ga
      eqeq12d ccom fveq1i fvco2 3eqtr3a oveq12d eqtr4d breq1d sylibrd ) GNNUAZO
      ZHXGOZCUBOZUCZHEXGUDZUEGEPZCQRZXMCUFRZUGRZUHOZHEPZXMQRZUIPZCSUJZHDPZGDPZQ
      RZFPZUIPZCSUJXKXQHXLPZXPOZXNXRSUJZXRXOSUJZUKZYAXKXQYHXKXQXIYHXLXGULZXQXIY
      HUKUMXKEUNULXGUNUOYLKXGVDUNXGEUPUQXGHXPXLURUSUTVAXKYHXRXPOZYKXKYGXRXPXKXI
      YGXRTXHXIXJVBZHXGEVCVEZVFXKYMYKXKYMUKZYIYJYPXRNOZYIYJXKYMYQYIYJUCZXKXNVPO
      XOVPOYMYRUMXKXNXKXMCXKXHXMNOZXHXIXJVGZAVHZEPZNOZYSAGXGUUAGTUUBXMNUUAGEVIV
      FLVJVEZXKCXHXIXJVKVLZVMVNXKXOXKXMCUUDUUEVOVNXNXOXRVQVRVSZVTYPYQYIYJUUFWAW
      BVAWCXKYQYSCNOZYKYAWGXKXIYQYNUUCYQAHXGUUAHTUUBXRNUUAHEVIVFLVJVEUUDUUEYQYS
      UUGUCYAYKXRXMCWDWEWHWFXKYFXTCSXKYEXSUIXKYEYBFPZYCFPZQRZXSXKYBDWIZOZYCUUKO
      ZYEUUJTZXKDXGULZXIUULJYNXGHDWJWKXKUUOXHUUMJYTXGGDWJWKUUABVHZQRZFPZUUAFPZU
      UPFPZQRZTYBUUPQRZFPZUUHUUTQRZTUUNABYBYCUUKUUKUUAYBTZUURUVCUVAUVDUVEUUQUVB
      FUUAYBUUPQWLWMUVEUUSUUHUUTQUUAYBFVIWNWRUUPYCTZUVCYEUVDUUJUVFUVBYDFUUPYCYB
      QWOWMUVFUUTUUIUUHQUUPYCFVIWPWRMWQVRXKXRUUHXMUUIQXKYGHFDWSZPZXRUUHHXLUVGIW
      TYOXKUUOXIUVHUUHTJYNXGFDHXAWKXBXKGXLPZGUVGPZXMUUIGXLUVGIWTXKXHUVIXMTYTGXG
      EVCVEXKUUOXHUVJUUITJYTXGFDGXAWKXBXCXDWMXEXF $.
  $}

  ${
    $d x y z $.  $d u z F $.  $d u z X $.  $d u z Y $.
    cnre2csqima.1 $e |- F = ( x e. RR , y e. RR |-> ( x + ( _i x. y ) ) ) $.
    $( Image of a centered square by the canonical bijection from
       ` ( RR X. RR ) ` to ` CC ` .  (Contributed by Thierry Arnoux,
       27-Sep-2017.) $)
    cnre2csqima $p |- ( ( X e. ( RR X. RR ) /\ Y e. ( RR X. RR ) /\ D e. RR+ )
      -> ( Y e. ( ( ( ( 1st ` X ) - D ) (,) ( ( 1st ` X ) + D ) )
               X. ( ( ( 2nd ` X ) - D ) (,) ( ( 2nd ` X ) + D ) ) ) ->
           ( ( abs ` ( Re ` ( ( F ` Y ) - ( F ` X ) ) ) ) < D /\
             ( abs ` ( Im ` ( ( F ` Y ) - ( F ` X ) ) ) ) < D ) ) ) $=
      ( vz c1st cfv co caddc c2nd wcel cr cre cim cc wceq cvv vu cmin cioo cres
      cxp ccnv cima cin crp w3a cabs clt wbr wa wss wb xpinpreima2 eleq2d mp2an
      ioossre elin cv ci cmul ccj cdiv cmpt2 ccom simpl recnd ax-icn a1i mulcld
      c2 simpr addcld reval syl crre eqtr3d mpt2eq3ia wtru adantl cmpt df-re id
      fveq2 oveq12d oveq1d fmpt2co trud df1stres 3eqtr4ri wral wfn rgen2a ax-mp
      fnmpt2 wfo fo1st fofn xp1st crn cab rnmpt2 adantr eqeltrd rexlimivv abssi
      wrex ex eqsstri sseldi resubd cnre2csqlem imval crim df-im oveq1 df2ndres
      fveq2d fo2nd xp2nd imsubd anim12d syl5bi ) FEIJZCUBKZYGCLKZUCKZEMJZCUBKZY
      KCLKZUCKZUEZNZFIOOUEZUDZUFYJUGZMYQUDZUFYNUGZUHZNZEYQNFYQNCUINUJZFDJEDJUBK
      ZPJUKJCULUMZUUEQJUKJCULUMZUNZYJOUOZYNOUOZYPUUCUPYHYIUTYLYMUTUUIUUJUNYOUUB
      FYJYNOOUQURUSUUCFYSNZFUUANZUNUUDUUHFYSUUAVAUUDUUKUUFUULUUGHUACDIPEFABOOAV
      BZVCBVBZVDKZLKZUUPVEJZLKZVNVFKZVGZABOOUUMVGPDVHZYRABOOUUSUUMUUMONZUUNONZU
      NZUUPPJZUUSUUMUVDUUPRNZUVEUUSSUVDUUMUUOUVDUUMUVBUVCVIVJUVDVCUUNVCRNUVDVKV
      LUVDUUNUVBUVCVOVJVMVPZUUPVQVRUUMUUNVSVTWAUVAUUTSWBABHOORUUPHVBZUVHVEJZLKZ
      VNVFKZUUSDPUVDUVFWBUVGWCZDABOOUUPVGSWBGVLZPHRUVKWDSWBHWEVLUVHUUPSZUVJUURV
      NVFUVNUVHUUPUVIUUQLUVNWFUVHUUPVEWGWHWIWJWKABOOWLWMUVFBOWNAOWNDYQWOUVFABOU
      VGWPABOOUUPDRGWRWQZTTIWSITWOWTTTIXAWQUVHOOXBUVHDXCZNZUAVBZUVPNZUNZUVHUVRU
      VTUVPRUVHUVPUVNBOXJAOXJZHXDRABHOOUUPDGXEUWAHRUVNUVHRNZABOOUVDUVNUWBUVDUVN
      UNUVHUUPRUVDUVNVOUVDUVFUVNUVGXFXGXKXHXIXLZUVQUVSVIXMZUVTUVPRUVRUWCUVQUVSV
      OXMZXNXOHUACDMQEFABOOUUPVCVFKZPJZVGZABOOUUNVGQDVHZYTABOOUWGUUNUVDUUPQJZUW
      GUUNUVDUVFUWJUWGSUVGUUPXPVRUUMUUNXQVTWAUWIUWHSWBABHOORUUPUVHVCVFKZPJZUWGD
      QUVLUVMQHRUWLWDSWBHXRVLUVNUWKUWFPUVHUUPVCVFXSYAWJWKABOOXTWMUVOTTMWSMTWOYB
      TTMXAWQUVHOOYCUVTUVHUVRUWDUWEYDXOYEYFYF $.
  $}

  ${
    $d u v x y z $.  $d d m r x A $.  $d d r B $.  $d d m x G $.  $d d x J $.
    $d d x y m r X $.
    tpr2rico.0 $e |- J = ( topGen ` ran (,) ) $.
    tpr2rico.1 $e |- G = ( u e. RR , v e. RR |-> ( u + ( _i x. v ) ) ) $.
    tpr2rico.2 $e |- B = ran ( x e. ran (,) , y e. ran (,) |-> ( x X. y ) ) $.
    $( For any point of an open set of the usual topology on ` ( RR X. RR ) `
       there is an open square which contains that point and is entirely in the
       open set.  This is square is actually a ball by the ` ( l ^ +oo ) ` norm
       ` X ` .  (Contributed by Thierry Arnoux, 21-Sep-2017.) $)
    tpr2rico $p |- ( ( A e. ( J tX J ) /\ X e. A ) ->
      E. r e. B ( X e. r /\ r C_ A ) ) $=
      ( vd co wcel wa crp cr cc vz vm ctx c1st cfv cv cdiv cmin caddc cioo c2nd
      c2 cxp wss wrex wral crn cmpt2 wceq cxr wfn cpw clt df-ioo ixxf mp1i cuni
      wf ffn elssuni ctop retop eqeltri uniretop unieqi eqtr4i txunii syl6sseqr
      ctg ad2antrr simplr sseldd xp1st syl simpr rpred rehalfcld resubcld rexrd
      readdcld fnovrn syl3anc xp2nd eqeq2d eqid vex syl6eleqr ralrimiva cvv wbr
      rphalfcld ltsubrpd ltaddrpd w3a wb elioo1 syl2anc mpbir3and jca cabs cima
      eqidd cmnf cpnf mnfle pnfge mnfxr ioossioo mpanl12 ioomax syl6sseq sselda
      cle pnfxr wi adantr wf1o mp2b a1i syl21anc imp cnxmet ex wfun ax-mp f1odm
      cdm funfvima sylancr r19.29 xpeq1 xpeq2 rspc2ev xpex elrnmpt2 sylibr xpss
      sseldi elxp7 sylanbrc ccnv ccom cbl xpss12 expcom ancld imdistanri simpr1
      cre 3anassrs cnre2csqima ccnfld ctopn chmeo cnrehmeo cnfldtopon toponunii
      cim hmeof1o f1of ffvelrnd ffvelrnda sqsscirc2 rpxrd jctil cnmetdval elbl3
      cxmt eqbrtrd biimpar syldan syld f1ocnv f1ofun f1ocnvfv1 eleq1d biimpd ci
      3syld ssrdv cmul mpt2fun hmeoima cnfldtopn elmopn2 simprbi sseq1d rexbidv
      mpan oveq1 rspcva imass2 f1of1 f1imacnv sseq2d syl5ib reximdv sstr reximi
      wf1 mpd eleq2 sseq1 anbi12d rspcev rexlimivw ) EHHUCOZPZIEPZQZIUDUEZNUFZU
      LUGOZUHOZUYAUYCUIOZUJOZIUKUEZUYCUHOZUYGUYCUIOZUJOZUMZFPZIUYKPZUYKEUNZQZQZ
      NRUOZIJUFZPZUYREUNZQZJFUOZUXTUYLNRUPUYONRUOZUYQUXTUYLNRUXTUYBRPZQZUYKABUJ
      UQZVUFAUFZBUFZUMZURZUQZFVUEUYKVUIUSZBVUFUOAVUFUOZUYKVUKPVUEUYFVUFPZUYJVUF
      PZUYKUYKUSZVUMVUEUJUTUTUMZVAZUYDUTPZUYEUTPZVUNVUQUTVBZUJVHVURVUEABUAVCVCU
      JABUAVDVEVUQVVAUJVIVFZVUEUYDVUEUYAUYCVUEISSUMZPZUYASPVUEEVVCIUXREVVCUNZUX
      SVUDUXREUXQVGVVCEUXQVJHHSSHVUFVSUEZVKKVLVMZVVGSVVFVGHVGVNHVVFKVOVPZVVHVQZ
      VRZVTUXRUXSVUDWAWBZISSWCWDZVUEUYBVUEUYBUXTVUDWEZWFWGZWHWIZVUEUYEVUEUYAUYC
      VVLVVNWJWIZUTUTUYDUYEUJWKWLVUEVURUYHUTPZUYIUTPZVUOVVBVUEUYHVUEUYGUYCVUEVV
      DUYGSPVVKISSWMWDZVVNWHWIZVUEUYIVUEUYGUYCVVSVVNWJWIZUTUTUYHUYIUJWKWLVUEUYK
      XLVULVUPUYKUYFVUHUMZUSABUYFUYJVUFVUFVUGUYFUSVUIVWBUYKVUGUYFVUHUUAWNVUHUYJ
      USVWBUYKUYKVUHUYJUYFUUBWNUUCWLABVUFVUFVUIUYKVUJVUJWOVUGVUHAWPBWPUUDUUEUUF
      MWQWRUXTUYMNRUPUYNNRUOZVUCUXTUYMNRVUEIWSWSUMZPUYAUYFPZUYGUYJPZQUYMVUEVVCV
      WDISSUUGVVKUUHVUEVWEVWFVUEVWEUYAUTPZUYDUYAVCWTZUYAUYEVCWTZVUEUYAVVLWIVUEU
      YAUYCVVLVUEUYBVVMXAZXBVUEUYAUYCVVLVWJXCVUEVUSVUTVWEVWGVWHVWIXDXEVVOVVPUYD
      UYEUYAXFXGXHVUEVWFUYGUTPZUYHUYGVCWTZUYGUYIVCWTZVUEUYGVVSWIVUEUYGUYCVVSVWJ
      XBVUEUYGUYCVVSVWJXCVUEVVQVVRVWFVWKVWLVWMXDXEVVTVWAUYHUYIUYGXFXGXHXIIUYFUY
      JUUIUUJWRUXTUYKGUUKZIGUEZUYBXJUHUULZUUMUEZOZXKZUNZVWSEUNZQZNRUOZVWCUXTVWT
      NRUPVXANRUOZVXCUXTVWTNRVUEAUYKVWSVUEVUGUYKPZVUGVWSPZVUEVXEQVUEVUGVVCPZQZV
      XEQVXFVXEVUEVXHVXEVUEVXGVUEVXEVXGVUEUYKVVCVUGVUEUYFSUNUYJSUNUYKVVCUNVUEUY
      FXMXNUJOZSVUEXMUYDYCWTZUYEXNYCWTZUYFVXIUNZVUEVUSVXJVVOUYDXOWDVUEVUTVXKVVP
      UYEXPWDXMUTPZXNUTPZVXJVXKQVXLXQYDXMXNUYDUYEXRXSXGXTYAVUEUYJVXISVUEXMUYHYC
      WTZUYIXNYCWTZUYJVXIUNZVUEVVQVXOVVTUYHXOWDVUEVVRVXPVWAUYIXPWDVXMVXNVXOVXPQ
      VXQXQYDXMXNUYHUYIXRXSXGXTYAUYFSUYJSUUNXGYBUUOUUPUUQVXHVXEVXFVXHVXEVUGGUEZ
      VWRPZVXRVWNUEZVWSPZVXFVXHVXEVXRVWOUHOZUUSUEXJUEUYCVCWTVYBUVHUEXJUEUYCVCWT
      QZVXSVXHVVDVXGUYCRPVXEVYCYEUXRUXSVUDVXGVVDUXRUXSVUDVXGXDZQEVVCIUXRVVEVYDV
      VJYFUXRUXSVUDVXGUURWBUUTZVUEVXGWEZVXHUYBUXTVUDVXGWAZXADCUYCGIVUGLUVAWLVXH
      VYCVXSVXHVYCVYBXJUEZUYBVCWTZVXSVXHVYCVYIVXHVWOTPZVXRTPZVUDVYCVYIYEVXHVVCT
      IGVVCTGVHZVXHGUXQUVBUVCUEZUVDOPZVVCTGYGZVYLDCGHVYMLKVYMWOZUVEZGUXQVYMVVCT
      VVITVYMVYMVYPUVFUVGUVIZVVCTGUVJYHZYIVYEUVKZVUEVVCTVUGGVYLVUEVYSYIUVLZVYGV
      WOVXRUYBUVMYJYKVXHVYIQZVWPTUVRUEPZUYBUTPZQZVYJVYKQZVXRVWOVWPOZUYBVCWTZVXS
      WUBWUDWUCVXHWUDVYIVXHUYBVYGUVNYFYLUVOWUBVYJVYKVXHVYJVYIVYTYFZVXHVYKVYIWUA
      YFZXIWUBWUGVYHUYBVCWUBVYKVYJWUGVYHUSWUJWUIVXRVWOVWPVWPWOUVPXGVXHVYIWEUVSW
      UEWUFQVXSWUHVXRVWPVWOUYBTUVQUVTYJUWAYMUWBVXHVWNYNZVXRVWNYQZPVXSVYAYETVVCV
      WNYGZWUKVYNVYOWUMVYQVYRVVCTGUWCYHZTVVCVWNUWDYOVXHVXRTWULWUAWUMWULTUSWUNTV
      VCVWNYPYOWQVWRVXRVWNYRYSVXHVYAVXFVXHVXTVUGVWSVXHVYOVXGVXTVUGUSVYNVYOVXHVY
      QVYRVFVYFVVCTVUGGUWEXGUWFUWGUWIYKWDYMUWJWRUXTVWRGEXKZUNZNRUOZVXDUXTVWOWUO
      PZUBUFZUYBVWQOZWUOUNZNRUOZUBWUOUPZWUQUXTGYNZIGYQZPZUXSWURWVDUXTDCSSDUFUWH
      CUFUWKOUIOGLUWLYIUXTIVVCWVEUXREVVCIVVJYBVYNVYOWVEVVCUSVYQVYRVVCTGYPYHWQUX
      RUXSWEWVDWVFQUXSWUREIGYRYKYJUXRWVCUXSUXRWUOVYMPZWVCVYNUXRWVGVYQEGUXQVYMUW
      MUWSWVGWUOTUNZWVCWUCWVGWVHWVCQXEYLUBNWUOVWPVYMTVYMVYPUWNUWOYOUWPWDYFWVBWU
      QUBVWOWUOWUSVWOUSZWVAWUPNRWVIWUTVWRWUOWUSVWOUYBVWQUWTUWQUWRUXAXGUXRWUQVXD
      YEUXSUXRWUPVXANRWUPVWSVWNWUOXKZUNUXRVXAVWRWUOVWNUXBUXRWVJEVWSUXRVVCTGUXJZ
      VVEWVJEUSVYNVYOWVKVYQVYRVVCTGUXCYHVVJVVCTEGUXDYSUXEUXFUXGYFUXKVWTVXANRYTX
      GVXBUYNNRUYKVWSEUXHUXIWDUYMUYNNRYTXGUYLUYONRYTXGUYPVUBNRVUAUYOJUYKFUYRUYK
      USUYSUYMUYTUYNUYRUYKIUXLUYRUYKEUXMUXNUXOUXPWD $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Order topology - misc. additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y z A $.
    cnvordtrestixx.1 $e |- A C_ RR* $.
    cnvordtrestixx.2 $e |- ( ( x e. A /\ y e. A ) -> ( x [,] y ) C_ A ) $.
    $( The restriction of the 'greater than' order to an interval gives the
       same topology as the subspace topology.  (Contributed by Thierry Arnoux,
       1-Apr-2017.) $)
    cnvordtrestixx $p |- ( ( ordTop ` <_ ) |`t A ) =
      ( ordTop ` ( `' <_ i^i ( A X. A ) ) ) $=
      ( vz cle cordt cfv crest co wceq wtru cxr wcel ax-mp wss cv wa wbr cnvtsr
      ccnv cxp cin crn cdm lern df-rn eqtri ctsr letsr a1i crab wb brcnvg simpr
      adantlr simplr syl2anc anbi12d ancom syl6bb rabbidva sseldi iccval ancoms
      cicc simpl eqsstr3d eqsstrd adantl ordtrest2 trud cps tsrps oveq1i eqtr2i
      ordtcnv ) GUBZCCUCUDHIZVSHIZCJKZGHIZCJKVTWBLMBAFCVSNNGUEVSUFUGGUHUIVSUJOZ
      MGUJOZWDUKGUAPULCNQMDULBRZCOZARZCOZSZWFFRZVSTZWKWHVSTZSZFNUMZCQMWJWOWHWKG
      TZWKWFGTZSZFNUMZCWJWNWRFNWJWKNOZSZWNWQWPSWRXAWLWQWMWPWGWTWLWQUNWIWFWKCNGU
      OUQXAWTWIWMWPUNWJWTUPWGWIWTURWKWHNCGUOUSUTWQWPVAVBVCWJWSWHWFVGKZCWJWHNOWF
      NOXBWSLWJCNWHDWGWIUPVDWJCNWFDWGWIVHVDFWHWFVEUSWIWGXBCQEVFVIVJVKVLVMWAWCCJ
      GVNOZWAWCLWEXCUKGVOPGVRPVPVQ $.
  $}

  ${
    $d x y .<_ $.  $d x y B $.  $d x y K $.
    ordtNEW.b $e |- B = ( Base ` K ) $.
    ordtNEW.l $e |- .<_ = ( ( le ` K ) i^i ( B X. B ) ) $.
    $( Domain of the relation of a preset.  (Contributed by Thierry Arnoux,
       11-Sep-2015.) $)
    prsdm $p |- ( K e. Preset -> dom .<_ = B ) $=
      ( vx vy cpreset wcel cdm cv cple cfv cxp cin dmeqi eleq2i cop wex syl wbr
      wa eqid prsref df-br sylib simpr opelxpi sylancom elind wceq opeq2 eleq1d
      vex spcev inss2 sseli opelxp1 exlimiv impbid1 eldm2 syl6rbbr syl5bb eqrdv
      ex ) BHIZFCJZAFKZVGIVHBLMZAANZOZJZIZVFVHAIZVGVLVHCVKEPQVFVNVHGKZRZVKIZGSZ
      VMVFVNVRVFVNVRVFVNUBZVHVHRZVKIZVRVSVIVJVTVSVHVHVIUAVTVIIABVIVHDVIUCUDVHVH
      VIUEUFVFVNVNVTVJIVFVNUGVHVHAAUHUIUJVQWAGVHFUNZVOVHUKVPVTVKVOVHVHULUMUOTVE
      VQVNGVQVPVJIVNVKVJVPVIVJUPUQVHVOAAURTUSUTGVHVKWBVAVBVCVD $.

    $( Range of the relation of a preset.  (Contributed by Thierry Arnoux,
       11-Sep-2018.) $)
    prsrn $p |- ( K e. Preset -> ran .<_ = B ) $=
      ( vx vy cpreset wcel crn cv cple cfv cxp cin rneqi eleq2i cop wex syl wbr
      wa eqid prsref df-br sylib simpr opelxpi sylancom elind wceq opeq1 eleq1d
      vex spcev inss2 sseli opelxp2 exlimiv impbid1 elrn2 syl6rbbr syl5bb eqrdv
      ex ) BHIZFCJZAFKZVGIVHBLMZAANZOZJZIZVFVHAIZVGVLVHCVKEPQVFVNGKZVHRZVKIZGSZ
      VMVFVNVRVFVNVRVFVNUBZVHVHRZVKIZVRVSVIVJVTVSVHVHVIUAVTVIIABVIVHDVIUCUDVHVH
      VIUEUFVFVNVNVTVJIVFVNUGVHVHAAUHUIUJVQWAGVHFUNZVOVHUKVPVTVKVOVHVHULUMUOTVE
      VQVNGVQVPVJIVNVKVJVPVIVJUPUQVOVHAAURTUSUTGVHVKWBVAVBVCVD $.

    $( Relation of a subpreset.  (Contributed by Thierry Arnoux,
       13-Sep-2018.) $)
    prsss $p |- ( ( K e. Preset /\ A C_ B )
      -> ( .<_ i^i ( A X. A ) ) = ( ( le ` K ) i^i ( A X. A ) ) ) $=
      ( wss cxp cin cple cfv wceq cpreset wcel ineq1i inass eqtri xpss12 anidms
      sseqin2 sylib ineq2d syl5eq adantl ) ABGZDAAHZIZCJKZUFIZLCMNUEUGUHBBHZUFI
      ZIZUIUGUHUJIZUFIULDUMUFFOUHUJUFPQUEUKUFUHUEUFUJGZUKUFLUEUNABABRSUFUJTUAUB
      UCUD $.

    $( Domain of a subpreset relation.  (Contributed by Thierry Arnoux,
       12-Sep-2018.) $)
    prsssdm $p |- ( ( K e. Preset /\ A C_ B )
      -> dom ( .<_ i^i ( A X. A ) ) = A ) $=
      ( cpreset wcel cxp cin cdm cple cfv dmeqd cbs wceq eqid syl cvv adantl wa
      wss prsss cress co ressprs prsdm ressbas2 syl6eqel ressle sqxpeqd ineq12d
      fvex 3eqtr4d eqtrd ) CGHZABUBZUAZDAAIZJZKCLMZUSJZKZAURUTVBABCDEFUCNURCAUD
      UEZLMZVDOMZVFIZJZKZVFVCAURVDGHVIVFPABCEUFVFVDVHVFQVHQUGRURVBVHURVAVEUSVGU
      QVAVEPZUPUQASHVJUQAVFSABVDCVDQZEUHZVDOUMUIACVASVDVKVAQUJRTURAVFUQAVFPUPVL
      TZUKULNVMUNUO $.

    ${
      ordtposval.e $e |- E = ran ( x e. B |-> { y e. B | -. y .<_ x } ) $.
      ordtposval.f $e |- F = ran ( x e. B |-> { y e. B | -. x .<_ y } ) $.
      $( Value of the order topology for a preset.  (Contributed by Thierry
         Arnoux, 11-Sep-2015.) $)
      ordtprsval $p |- ( K e. Preset -> ( ordTop ` .<_ ) =
        ( topGen ` ( fi ` ( { B } u. ( E u. F ) ) ) ) ) $=
        ( cfv crab cmpt crn cun cfi ctg cvv wceq cpreset wcel cordt cdm csn wbr
        cv cple cxp cin fvex inex1 eqeltri eqid ordtval ax-mp prsdm sneqd rabeq
        wn syl mpteq12dv rneqd syl6eqr uneq12d fveq2d syl5eq ) FUAUBZGUCLZGUDZU
        EZAVJBUGZAUGZGUFUTZBVJMZNZOZAVJVMVLGUFUTZBVJMZNZOZPZPZQLZRLZCUEZDEPZPZQ
        LZRLGSUBVIWETGFUHLZCCUIZUJSIWJWKFUHUKULUMABVQWAGSVJVJUNVQUNWAUNUOUPVHWD
        WIRVHWCWHQVHVKWFWBWGVHVJCCFGHIUQZURVHVQDWAEVHVQACVNBCMZNZODVHVPWNVHAVJV
        OCWMWLVHVJCTZVOWMTWLVNBVJCUSVAVBVCJVDVHWAACVRBCMZNZOEVHVTWQVHAVJVSCWPWL
        VHWOVSWPTWLVRBVJCUSVAVBVCKVDVEVEVFVFVG $.

      $( Value of the order topology.  (Contributed by Thierry Arnoux,
         13-Sep-2018.) $)
      ordtprsuni $p |- ( K e. Preset -> B = U. ( { B } u. ( E u. F ) ) ) $=
        ( wcel csn crab cmpt crn cun cuni cvv eqid cpreset cv prsdm sneqd biidd
        cdm wbr rabeqbidv mpteq12dv rneqd uneq12d unieqd wceq cple cfv cxp fvex
        wn cin inex1 eqeltri ordtuni ax-mp syl5reqr uneq12i a1i uneq2d 3eqtr4d
        ) FUALZGUFZMZAVJBUBZAUBZGUGURZBVJNZOZPZAVJVMVLGUGURZBVJNZOZPZQZQZRZCMZA
        CVNBCNZOZPZACVRBCNZOZPZQZQZRCWEDEQZQZRVIWCWMVIVKWEWBWLVIVJCCFGHIUCZUDVI
        VQWHWAWKVIVPWGVIAVJVOCWFWPVIVNVNBVJCWPVIVNUEUHUIUJVIVTWJVIAVJVSCWIWPVIV
        RVRBVJCWPVIVRUEUHUIUJUKUKULVIWDVJCGSLVJWDUMGFUNUOZCCUPZUSSIWQWRFUNUQUTV
        AABVQWAGSVJVJTVQTWATVBVCWPVDVIWOWMVIWNWLWEWNWLUMVIDWHEWKJKVEVFVGULVH $.
    $}

    $( The order dual generates the same topology as the original order.
       (Contributed by Mario Carneiro, 3-Sep-2015.)  (Revised by Thierry
       Arnoux, 13-Sep-2018.) $)
    ordtcnvNEW $p |- ( K e. Preset -> ( ordTop ` `' .<_ ) = ( ordTop ` .<_ ) )
      $=
      ( vx vy cpreset ccnv wbr wn crab cmpt crn cun cfi cfv ctg eqid cin csn cv
      cordt wb vex brcnv a1i notbid rabbidv mpteq2dv rneqd uneq12d uncom syl6eq
      wcel uneq2d fveq2d codu wceq oduprs odubas cple cxp cnveqi cnvin oduleval
      cnvxp ineq12i 3eqtri ordtprsval syl 3eqtr4d ) BHUOZAUAZFAGUBZFUBZCIZJZKZG
      ALZMZNZFAVPVOVQJZKZGALZMZNZOZOZPQZRQZVNFAVOVPCJZKZGALZMZNZFAVPVOCJZKZGALZ
      MZNZOZOZPQZRQVQUCQZCUCQVMWJXDRVMWIXCPVMWHXBVNVMWHXAWPOXBVMWBXAWGWPVMWAWTV
      MFAVTWSVMVSWRGAVMVRWQVRWQUDVMVOVPCGUEZFUEZUFUGUHUIUJUKVMWFWOVMFAWEWNVMWDW
      MGAVMWCWLWCWLUDVMVPVOCXGXFUFUGUHUIUJUKULXAWPUMUNUPUQUQVMBURQZHUOXEWKUSXHB
      XHSZUTFGAWBWGXHVQAXHBXIDVAVQBVBQZAAVCZTZIXJIZXKIZTXHVBQZXKTCXLEVDXJXKVEXM
      XOXNXKXHXJBXIXJSVFAAVGVHVIWBSWGSVJVKFGAWPXABCDEWPSXASVJVL $.

    $d x y .<_ $.  $d x y A $.  $d x y B $.  $d x y K $.
    $( The subspace topology of an order topology is in general finer than the
       topology generated by the restricted order, but we do have inclusion in
       one direction.  (Contributed by Mario Carneiro, 9-Sep-2015.)  (Revised
       by Thierry Arnoux, 11-Sep-2018.) $)
    ordtrestNEW $p |- ( ( K e. Preset /\ A C_ B ) ->
      ( ordTop ` ( .<_ i^i ( A X. A ) ) ) C_ ( ( ordTop ` .<_ ) |`t A ) ) $=
      ( vx vy wcel wss cin cfv cdm crab cvv wceq eqid ctop adantl syl cxp cordt
      cpreset wa csn cv wbr wn cmpt crn cun cfi ctg crest co cple inex1 eqeltri
      fvex ordtval mp1i ordttop ax-mp cbs ssex resttop sylancr ressprs ressbas2
      cress prsdm syl6eqel ressle sqxpeqd ineq12d dmeqd 3eqtr4d biimpar sseqin2
      prsss sseq2d sylib ordttopon toponmax elrestr syl3anc eqeltrd snssd rabeq
      ctopon mpteq12dv rneqd wf inrab2 inss2 simpr sseldi adantr brinxp syl2anc
      wb notbid rabbidva syl5eq simpl inss1 sseli ordtopn1 mpan syl2an eqeltrrd
      fmptd frn eqsstrd ordtopn2 unssd tgfiss ) CUCIZABJZUDZDAAUAZKZUBLZYBMZUEZ
      GYDHUFZGUFZYBUGZUHZHYDNZUIZUJZGYDYGYFYBUGZUHZHYDNZUIZUJZUKZUKZULLUMLZDUBL
      ZAUNUOZYBOIYCYTPXTDYADCUPLZBBUAZKOFUUCUUDCUPUSUQURZUQGHYLYQYBOYDYDQYLQYQQ
      UTVAXTUUBRIZYSUUBJYTUUBJXSUUFXRXSUUARIZAOIZUUFDOIZUUGUUEDOVBZVCABBCVDLOEC
      VDUSURVEZAUUAOVFVGSXTYEYRUUBXTYDUUBXTYDDMZAKZUUBXTUUCYAKZMZAYDUUMXTCAVJUO
      ZUPLZUUPVDLZUURUAZKZMZUURUUOAXTUUPUCIUVAUURPABCEVHUURUUPUUTUURQUUTQVKTXTU
      UNUUTXTUUCUUQYAUUSXSUUCUUQPZXRXSUUHUVBXSAUUROABUUPCUUPQZEVIZUUPVDUSVLACUU
      COUUPUVCUUCQVMTSXTAUURXSAUURPXRUVDSZVNVOVPUVEVQXTYBUUNABCDEFVTVPXTAUULJZU
      UMAPXRUVFXSXRUULBABCDEFVKWAVRAUULVSWBVQZXTUUGUUHUULUUAIZUUMUUBIUUIUUGXTUU
      EUUJVAXSUUHXRUUKSZXTUUAUULWJLIZUVHUUIUVJXTUUEDOUULUULQZWCVAUULUUAWDTUULAU
      UAROWEWFWGWHXTYLYQUUBXTYLGUUMYIHUUMNZUIZUJZUUBXTYKUVMXTGYDYJUUMUVLUVGXTYD
      UUMPZYJUVLPUVGYIHYDUUMWITWKWLXTUUMUUBUVMWMUVNUUBJXTGUUMUVLUUBUVMXTYGUUMIZ
      UDZYFYGDUGZUHZHUULNZAKZUVLUUBUVQUWAUVSHUUMNUVLUVSHUULAWNUVQUVSYIHUUMUVQYF
      UUMIZUDZUVRYHUWCYFAIZYGAIZUVRYHXAUWCUUMAYFUULAWOZUVQUWBWPWQZUVQUWEUWBUVQU
      UMAYGUWFXTUVPWPWQWRZYFYGAADWSWTXBXCXDUVQUUGUUHUVTUUAIZUWAUUBIUUIUUGUVQUUE
      UUJVAZXTUUHUVPUVIWRZXTXRYGUULIZUWIUVPXRXSXEZUUMUULYGUULAXFXGZUWLUWIXRUUIU
      WLUWIUUEHYGDOUULUVKXHXISXJUVTAUUAROWEWFXKUVMQXLUUMUUBUVMXMTXNXTYQGUUMYNHU
      UMNZUIZUJZUUBXTYPUWPXTGYDYOUUMUWOUVGXTUVOYOUWOPUVGYNHYDUUMWITWKWLXTUUMUUB
      UWPWMUWQUUBJXTGUUMUWOUUBUWPUVQYGYFDUGZUHZHUULNZAKZUWOUUBUVQUXAUWSHUUMNUWO
      UWSHUULAWNUVQUWSYNHUUMUWCUWRYMUWCUWEUWDUWRYMXAUWHUWGYGYFAADWSWTXBXCXDUVQU
      UGUUHUWTUUAIZUXAUUBIUWJUWKXTXRUWLUXBUVPUWMUWNUWLUXBXRUUIUWLUXBUUEHYGDOUUL
      UVKXOXISXJUWTAUUAROWEWFXKUWPQXLUUMUUBUWPXMTXNXPXPYSUUBXQWTXN $.

    $d v x y w z .<_ $.  $d v x y w z A $.  $d v x y w z B $.  $d x y z ph $.
    ordtrest2NEW.2 $e |- ( ph -> K e. Toset ) $.
    ordtrest2NEW.3 $e |- ( ph -> A C_ B ) $.
    ordtrest2NEW.4 $e |- ( ( ph /\ ( x e. A /\ y e. A ) ) ->
       { z e. B | ( x .<_ z /\ z .<_ y ) } C_ A ) $.
    $( Lemma for ~ ordtrest2NEW .  (Contributed by Mario Carneiro, 9-Sep-2015.)
       (Revised by Thierry Arnoux, 11-Sep-2018.) $)
    ordtrest2NEWlem $p |- ( ph -> A. v e. ran ( z e. B |-> { w e. B
      | -. w .<_ z } ) ( v i^i A ) e. ( ordTop ` ( .<_ i^i ( A X. A ) ) ) ) $=
      ( wcel wa wceq syl cvv cv cin cxp cordt cfv wbr crab cmpt crn wral inrab2
      wn wss sseqin2 sylib adantr rabeq syl5eq ctopon cdm cple fvex eqeltri a1i
      eqid ordttopon cpreset ctos cpo tospos posprs 3syl prsssdm syl2anc fveq2d
      inex1 eleqtrd toponmax wb rabid2 eleq1 sylbir syl5ibcom wrex dfrex2 breq1
      cbvrexv bitr3i c0 ctop ordttop 0opn syl5ibrcom wne rabn0 notbid ad3antrrr
      bitri wo ad2antrr sselda simpllr trleile syl3anc ord rabss r19.21bi an32s
      an4 impr sylan2b brinxp ancoms rabbidva eleqtrrd ordtopn1 eqeltrd anassrs
      eqtr4d expr syld rexlimdva syl5bi pm2.61dne rexlimdvaa pm2.61d cbs rabexg
      wi ralrimiva ralrimivw ineq1 eleq1d ralrnmpt mpbird ) AFUAZGUBZJGGUCZUBZU
      DUEZPZFDHEUAZDUAZJUFZULZEHUGZUHZUIUJZUUFGUBZYTPZDHUJZAUUJDHAUUCHPZQZUUIUU
      EEGUGZYTUUMUUIUUEEHGUBZUGZUUNUUEEHGUKUUMUUOGRZUUPUUNRAUUQUULAGHUMZUUQNGHU
      NUOUPUUEEUUOGUQSURUUMUUEEGUJZUUNYTPZUUMGYTPZUUSUUTAUVAUULAYTGUSUEZPUVAAYT
      YSUTZUSUEZUVBAYSTPZYTUVDPUVEAJYRJIVAUEZHHUCZUBTLUVFUVGIVAVBVPVCVPZVDZYSTU
      VCUVCVEZVFSAUVCGUSAIVGPZUURUVCGRZAIVHPZIVIPUVKMIVJIVKVLNGHIJKLVMVNZVOVQGY
      TVRSUPUUSGUUNRUVAUUTVSUUEEGVTGUUNYTWAWBWCUUSULZBUAZUUCJUFZBGWDZUUMUUTUVOU
      UDEGWDUVRUUDEGWEUUDUVQEBGUUBUVPUUCJWFWGWHUUMUVQUUTBGUUMUVPGPZUVQQZQZUUTUU
      NWIUWAUUTUUNWIRWIYTPZUUMUWBUVTUUMYTWJPZUWBAUWCUULAUVEUWCUVIYSTWKSUPYTWLSU
      PUUNWIYTWAWMUUNWIWNZCUAZUUCJUFZULZCGWDZUWAUUTUWDUUEEGWDUWHUUEEGWOUUEUWGEC
      GUUBUWERUUDUWFUUBUWEUUCJWFWPWGWRUWAUWGUUTCGUWAUWEGPZQZUWGUUCUWEJUFZUUTUWJ
      UWFUWKUWJUVMUWEHPUULUWFUWKWSAUVMUULUVTUWIMWQUWAGHUWEAUURUULUVTNWTXAAUULUV
      TUWIXBHIJUWEUUCKLXCXDXEUWAUWIUWKUUTUUMUVTUWIUWKQZUUTUUMUVTUWLQZQZUUNUUBUU
      CYSUFZULZEUVCUGZYTUWNUUNUWPEGUGZUWQUWNUUCGPZUUNUWRRUWMUUMUVSUWIQZUVQUWKQZ
      QUWSUVSUVQUWIUWKXIUUMUWTUXAUWSAUWTUULUXAUWSYIZAUWTQZUXBDHUXCUXADHUGGUMUXB
      DHUJOUXADHGXFUOXGXHXJXKZUWSUUEUWPEGUWSUUBGPZQUUDUWOUXEUWSUUDUWOVSUUBUUCGG
      JXLXMWPXNSUWNUVLUWQUWRRAUVLUULUWMUVNWTZUWPEUVCGUQSXSUWNUVEUUCUVCPUWQYTPUV
      EUWNUVHVDUWNUUCGUVCUXDUXFXOEUUCYSTUVCUVJXPVNXQXRXTYAYBYCYDYEYCYFXQYJAUUFT
      PZDHUJUUHUUKVSAUXGDHAHTPZUXGUXHAHIYGUETKIYGVBVCVDUUEEHTYHSYKUUAUUJDFHUUFU
      UGTUUGVEYPUUFRYQUUIYTYPUUFGYLYMYNSYO $.

    $d w x y z K $.  $d v w x y z ph $.
    $( An interval-closed set ` A ` in a total order has the same subspace
       topology as the restricted order topology.  (An interval-closed set is
       the same thing as an open or half-open or closed interval in ` RR ` ,
       but in other sets like ` QQ ` there are interval-closed sets like
       ` ( _pi , +oo ) i^i QQ ` that are not intervals.)  (Contributed by Mario
       Carneiro, 9-Sep-2015.)  (Revised by Thierry Arnoux, 11-Sep-2018.) $)
    ordtrest2NEW $p |- ( ph ->
      ( ordTop ` ( .<_ i^i ( A X. A ) ) ) = ( ( ordTop ` .<_ ) |`t A ) ) $=
      ( vw vv cin cfv wcel wceq cvv cxp cordt crest cpreset wss ctos cpo tospos
      co posprs 3syl ordtrestNEW syl2anc csn wbr crab cmpt crn cun cfi ctg eqid
      cv wn ordtprsval syl oveq1d ctb fibas cbs fvex eqeltri a1i tgrest sylancr
      ssexd eqtr4d firest fveq2i syl6eqr ctop cple ordttop mp1i cuni ordtprsuni
      inex1 eqeltrrd uniexb sylibr restval wf wral sseqin2 ctopon cdm ordttopon
      prsssdm fveq2d eleqtrd toponmax eqeltrd ineq1d eleq1d syl5ibrcom ralrimiv
      sylib elsni ordtrest2NEWlem ccnv codu odubas cnveqi cnvin ineq2i oduleval
      cnvxp ineq1i 3eqtri eqtri odutos wa wb vex brcnv anbi12ci rabbiia ancom2s
      syl5eqss bicomi notbid rabbidv mpteq2dv rneqd ressprs ordtcnvNEW sylanbrc
      cress ralunb eqsstrd prsss ressle ressbas2 sqxpeqd ineq12d cnveqd 3eqtr4d
      eqtrd syl5reqr eleq2d raleqbidv mpbird fmpt frn tgfiss eqssd ) AHEEUAZPZU
      BQZHUBQZEUCUIZAGUDRZEFUEZUUSUVAUEAGUFRZGUGRUVBKGUHGUJUKZLEFGHIJULUMAUVAFU
      NZDFNVCZDVCZHUOVDNFUPUQURZDFUVHUVGHUOZVDZNFUPZUQZURZUSZUSZEUCUIZUTQZVAQZU
      USAUVAUVPUTQZEUCUIZVAQZUVSAUVAUVTVAQZEUCUIZUWBAUUTUWCEUCAUVBUUTUWCSUVEDNF
      UVIUVNGHIJUVIVBZUVNVBZVEVFVGAUVTVHRETRZUWBUWDSUVPVIAEFTFTRAFGVJQTIGVJVKVL
      VMZLVPZEUVTVHTVNVOVQUVRUWAVAEUVPVRVSVTAUUSWARZUVQUUSUEUVSUUSUEUURTRZUWJAH
      UUQHGWBQZFFUAZPZTJUWLUWMGWBVKWGVLWGZUURTWCWDAUVQOUVPOVCZEPZUQZURZUUSAUVPT
      RZUWGUVQUWSSAUVPWEZTRUWTAFUXATAUVBFUXASUVEDNFUVIUVNGHIJUWEUWFWFVFUWHWHUVP
      WIWJUWIOEUVPTTWKUMAUVPUUSUWRWLZUWSUUSUEAUWQUUSRZOUVPWMZUXBAUXCOUVFWMUXCOU
      VOWMZUXDAUXCOUVFAUXCUWPUVFRZFEPZUUSRAUXGEUUSAUVCUXGESLEFWNXGAUUSEWOQZREUU
      SRAUUSUURWPZWOQZUXHUWKUUSUXJRAUWOUURTUXIUXIVBWQWDAUXIEWOAUVBUVCUXIESUVELE
      FGHIJWRUMWSWTEUUSXAVFXBUXFUWQUXGUUSUXFUWPFEUWPFXHXCXDXEXFAUXCOUVIWMUXCOUV
      NWMZUXEABCDNOEFGHIJKLMXIAUXKUWQHXJZUUQPZUBQZRZODFUVGUVHUXLUOZVDZNFUPZUQZU
      RZWMACBDNOEFGXKQZUXLFUYAGUYAVBZIXLUXLUWNXJZUYAWBQZUWMPZHUWNJXMUYCUWLXJZUW
      MXJZPUYFUWMPUYEUWLUWMXNUYGUWMUYFFFXQXOUYFUYDUWMUYAUWLGUYBUWLVBZXPXRXSXTAU
      VDUYAUFRKUYAGUYBYAVFLABVCZERZCVCZERZUYKUVHUXLUOZUVHUYIUXLUOZYBZDFUPZEUEAU
      YJUYLYBYBUYPUYIUVHHUOZUVHUYKHUOZYBZDFUPEUYOUYSDFUYOUYSYCUVHFRUYMUYRUYNUYQ
      UYKUVHHCYDDYDZYEUVHUYIHUYTBYDYEYFVMYGMYIYHXIAUXCUXOOUVNUXTAUVMUXSADFUVLUX
      RAUVKUXQNFAUVJUXPUVJUXPYCAUXPUVJUVGUVHHNYDUYTYEYJVMYKYLYMYNAUUSUXNUWQAUXN
      UURXJZUBQZUUSVUAUXMUBVUAUXLUUQXJZPUXMHUUQXNVUCUUQUXLEEXQXOXTVSAGEYRUIZWBQ
      ZVUDVJQZVUFUAZPZXJZUBQZVUHUBQZVUBUUSAVUDUDRZVUJVUKSAUVBUVCVULUVELEFGIYOUM
      VUFVUDVUHVUFVBVUHVBYPVFAVUAVUIUBAUURVUHAUURUWLUUQPZVUHAUVBUVCUURVUMSUVELE
      FGHIJUUAUMAUWLVUEUUQVUGAUWGUWLVUESUWIEGUWLTVUDVUDVBZUYHUUBVFAEVUFAUVCEVUF
      SLEFVUDGVUNIUUCVFUUDUUEUUHZUUFWSAUURVUHUBVUOWSUUGUUIUUJUUKUULUXCOUVIUVNYS
      YQUXCOUVFUVOYSYQOUVPUUSUWQUWRUWRVBUUMXGUVPUUSUWRUUNVFYTUVQUUSUUOUMYTUUP
      $.
  $}

  ${
    $d r x y A $.  $d r x y z B $.  $d r J $.  $d r x y z K $.  $d x y z .<_ $.
    ordtconn.x $e |- B = ( Base ` K ) $.
    ordtconn.l $e |- .<_ = ( ( le ` K ) i^i ( B X. B ) ) $.
    ordtconn.j $e |- J = ( ordTop ` .<_ ) $.
    $( Connectedness in the order topology of a toset.  This is the "easy"
       direction of ~ ordtconn .  See also ~ reconnlem1 .  (Contributed by
       Thierry Arnoux, 14-Sep-2018.) $)
    ordtconnlem1 $p |- ( ( K e. Toset /\ A C_ B ) -> ( ( J |`t A ) e. Conn ->
      A. x e. A A. y e. A A. r e. B ( ( x .<_ r /\ r .<_ y ) -> r e. A ) ) ) $=
      ( vz wcel wa wn wrex cvv wceq wb c0 ctos wss cv wbr wi crest co cconn nfv
      wral nfcv nfra2 nfral nfn nfan crab cfv cpo cpreset cple cin fvex eqeltri
      ctopon eqid ax-mp 3syl ad3antrrr adantlr simpllr cmpt crn cun csn cfi cbs
      simpll mptex rnex unssbd breq2 notbid cbvrabv breq1 rabbidv eqeq2d rspcev
      unex syl mpan2 rabex elrnmpt sylibr adantl sseldd ad2antrr wne simpr ssel
      jca ancrd anim1d impl elin elrab anbi1i an32 3bitri ne0i sylanl1 r19.29an
      syl2anc w3a wo trleile sylib rabid 3bitr4i nfrab1 adantr cdif simplr snss
      wex bitr3i syl5bb necon3bbid rexbii rexcom rexnal 3bitr3i r19.41v syl3anc
      posrasymb sselda nelne2 mpbird pm5.17 rexbidva ex tospos posprs cordt cdm
      cxp inex1 ordttopon prsdm fveq2d syl5eleq syl5eqel snex ssfii bastg sstri
      ctg ordtprsval syl5eq syl5sseqr unssad simplrl simplrr oran 3expa anbi12i
      nrexdv anandi exbii nfin n0f df-rex necon1bbii ineq1d syl6eq eldif ssconb
      0in vex sylanb anass1rs mpbi2and nfun ianor equcom syl6bb syl5bbr pm5.32d
      3expia orbi12i elun andi 3bitr4ri eldifsn 3bitr3g eqrd sseqtr4d nconnsubb
      bicomi anasss adantllr rexanali reeanv necomd anbi12d pm5.32rd r19.29af
      biimpa con4d ) FUAMZCDUBZNZAUCZHUCZGUDZUXMBUCZGUDZNZUXMCMZUEZHDUJZBCUJZAC
      UJZECUFUGUHMZUXKUYBOZUYCOZUXKUYDNUXMUXLGUDZOZACPZUXOUXMGUDZOZBCPZNZUXROZN
      ZUYEHDUXKUYDHUXKHUIUYBHUYAHACHCUKUXSBHCDULUMUNUOUXKUXMDMZUYNUYEUYDUXKUYON
      ZUYLUYMUYEUYPUYLNZUYMNZCUXMLUCZGUDZOZLDUPZEUYSUXMGUDZOZLDUPZDUYPUYMEDVDUQ
      ZMZUYLUXIVUGUXJUYOUYMUXIFURMZFUSMZVUGFUUAZFUUBZVUIEGUUCUQZVUFKVUIVULGUUDZ
      VDUQZVUFGQMVULVUNMGFUTUQZDDUUEZVAQJVUOVUPFUTVBUUFVCGQVUMVUMVEUUGVFVUIVUMD
      VDDFGIJUUHUUIUUJUUKVGVHVIUYPUYMUXJUYLUXIUXJUYOUYMVJZVIUYPVUBEMUYLUYMUYPAD
      UXLUXOGUDZOZBDUPZVKZVLZEVUBUYPADUXOUXLGUDZOZBDUPZVKZVLZVVBEUYPVUIVVGVVBVM
      ZEUBUYPUXIVUHVUIUXIUXJUYOVQZVUJVUKVGVUIDVNZVVHEVUIVVJVVHVMZVOUQZUUPUQZVVK
      EVVKVVLVVMVVKQMVVKVVLUBVVJVVHDUULVVGVVBVVFADVVEDFVPUQQIFVPVBVCZVRVSVVAADV
      UTVVNVRVSWHWHVVKQUUMVFVVLQMVVLVVMUBVVKVOVBVVLQUUNVFUUOVUIEVULVVMKABDVVGVV
      BFGIJVVGVEVVBVEUUQUURUUSVTWIZVTUYOVUBVVBMZUXKUYOVUBVUTRZADPZVVPUYOVUBUXPO
      ZBDUPZRZVVRVUAVVSLBDUYSUXORZUYTUXPUYSUXOUXMGWAWBWCVVQVWAAUXMDUXLUXMRZVUTV
      VTVUBVWCVUSVVSBDVWCVURUXPUXLUXMUXOGWDWBWEWFWGWJVUBQMVVPVVRSVUALDVVNWKADVU
      TVUBVVAQVVAVEWLVFWMWNWOWPUYPVUEEMUYLUYMUYPVVGEVUEUYPVVGVVBEVVOUUTUYOVUEVV
      GMZUXKUYOVUEVVERZADPZVWDUYOVUEUYJBDUPZRZVWFVUDUYJLBDVWBVUCUYIUYSUXOUXMGWD
      WBZWCVWEVWHAUXMDVWCVVEVWGVUEVWCVVDUYJBDVWCVVCUYIUXLUXMUXOGWAWBWEWFWGWJVUE
      QMVWDVWFSVUDLDVVNWKADVVEVUEVVFQVVFVEWLVFWMWNWOWPUYRUYPUYMNZUYHVUBCVAZTWQZ
      UYRUYPUYMUYPUYLUYMVQUYQUYMWRWTZUYPUYHUYKUYMUVAVWJUYGVWLACVWJUXJUXLCMZUYGV
      WLVUQUXJVWNNUYGNZUXLVWKMZVWLVWOUXLDMZVWNNZUYGNZVWPUXJVWNUYGVWSUXJVWNVWRUY
      GUXJVWNVWQCDUXLWSXAXBXCVWPUXLVUBMZVWNNVWQUYGNZVWNNVWSUXLVUBCXDVWTVXAVWNVU
      AUYGLUXLDUYSUXLRUYTUYFUYSUXLUXMGWAWBXEXFVWQUYGVWNXGXHWMVWKUXLXIWIXJXKXLUY
      RVWJUYKVUECVAZTWQZVWMUYPUYHUYKUYMUVBVWJUYJVXCBCVWJUXJUXOCMZUYJVXCVUQUXJVX
      DNUYJNZUXOVXBMZVXCVXEUXODMZVXDNZUYJNZVXFUXJVXDUYJVXIUXJVXDVXHUYJUXJVXDVXG
      CDUXOWSXAXBXCVXFUXOVUEMZVXDNVXGUYJNZVXDNVXIUXOVUECXDVXJVXKVXDVUDUYJLUXODV
      WIXEXFVXGUYJVXDXGXHWMVXBUXOXIWIXJXKXLUYPUYMVUBVUEVAZCVAZTRUYLVWJVXMTCVATV
      WJVXLTCUYPVXLTRZUYMUXIUYOVXNUXJUXIUYONZVUAVUDNZLDPZOVXNVXOVXPLDUXIUYOUYSD
      MZVXPOZUXIUYOVXRXMUYTVUCXNVXSDFGUXMUYSIJXOUYTVUCUVCXPUVDUVFVXQVXLTUYSVXLM
      ZLYDVXRVXPNZLYDVXLTWQVXQVXTVYALUYSVUBMZUYSVUEMZNVXRVUANZVXRVUDNZNVXTVYAVY
      BVYDVYCVYEVUALDXQZVUDLDXQZUVEUYSVUBVUEXDVXRVUAVUDUVGXRUVHLVXLLVUBVUEVUALD
      XSZVUDLDXSZUVIUVJVXPLDUVKXRUVLXPVIXTUVMCUVQUVNVIUYPUYMCVUBVUEVMZUBUYLVWJC
      DUXMVNZYAZVYJVWJUYOUYMCVYLUBZUXKUYOUYMYBZUYPUYMWRUYPUYOUYMNZVYMSZUYMUXIUY
      OUXJVYPUYOUXJNVYPUXIUYOVYKDUBZUXJVYPUXMDHUVRZYCVYOVYKDCYAZUBZVYQUXJNVYMVY
      OUXMVYSMVYTUXMDCUVOUXMVYSVYRYCYEVYKCDUVPYFUVSWNUVTXTUWAVWJVUHUYOVYJVYLRUX
      IVUHUXJUYOUYMVUJVHZVYNVUHUYONZLVYJVYLWUBLUILVUBVUEVYHVYIUWBLVYLUKWUBVXRVU
      AVUDXNZNZVXRUYSUXMWQZNZUYSVYJMZUYSVYLMZWUBVXRWUCWUEVUHUYOVXRWUCWUESWUCUYT
      VUCNZOVUHUYOVXRXMZWUEUYTVUCUWCWUJWUIUYSUXMWUJWUIUXMUYSRUYSUXMRDFGUXMUYSIJ
      YNHLUWDUWEYGUWFUWHUWGVYBVYCXNVYDVYEXNWUGWUDVYBVYDVYCVYEVYFVYGUWIUYSVUBVUE
      UWJVXRVUAVUDUWKUWLWUHWUFUYSDUXMUWMUWRUWNUWOXLUWPVIUWQUWSUWTUXKUYDUYNHDPZU
      YDUXNACPZUXPBCPZNZUYMNZHDPZUXKWUKUYDUXQUYMNZBCPZACPZHDPZWUPWURHDPZACPUYAO
      ZACPWUTUYDWVAWVBACWUQHDPZBCPUXTOZBCPWVAWVBWVCWVDBCUXQUXRHDUXAYHWUQBHCDYIU
      XTBCYJYKYHWURAHCDYIUYAACYJYKWUSWUOHDWUSUXQBCPZUYMNZACPWVEACPZUYMNWUOWURWV
      FACUXQUYMBCYLYHWVEUYMACYLWVGWUNUYMUXNUXPABCCUXBXFXHYHYEUXKWUOUYNHDUYPUYMW
      UNUYLUYPUYMWUNUYLSVWJWULUYHWUMUYKVWJUXNUYGACVWJVWNNZUXNUYFXNZUXNUYFNZOZNU
      XNUYGSWVHWVIWVKWVHUXIVWQUYOWVIUYPUXIUYMVWNVVIWPVWJCDUXLVUQYOZUXKUYOUYMVWN
      VJZDFGUXLUXMIJXOYMWVHWVKUXLUXMWQZWVHVWNUYMWVNVWJVWNWRUYPUYMVWNYBUXLUXMCYP
      XLWVHVUHVWQUYOWVKWVNSVWJVUHVWNWUAXTWVLWVMVUHVWQUYOXMWVJUXLUXMDFGUXLUXMIJY
      NYGYMYQWTUXNUYFYRXPYSVWJUXPUYJBCVWJVXDNZUXPUYIXNZUXPUYINZOZNUXPUYJSWVOWVP
      WVRWVOUXIUYOVXGWVPUYPUXIUYMVXDVVIWPUXKUYOUYMVXDVJZVWJCDUXOVUQYOZDFGUXMUXO
      IJXOYMWVOWVRUXMUXOWQZWVOUXOUXMWVOVXDUYMUXOUXMWQVWJVXDWRUYPUYMVXDYBUXOUXMC
      YPXLUXCWVOVUHUYOVXGWVRWWASVWJVUHVXDWUAXTWVSWVTVUHUYOVXGXMWVQUXMUXODFGUXMU
      XOIJYNYGYMYQWTUXPUYIYRXPYSUXDYTUXEYSYFUXGUXFYTUXH $.

$(
    @{
      ordtconnlem2.c @e |- ( ph -> K e. CUnifSp ) @.
      ordtconnlem2.1 @e |- ( ph -> A C_ B ) @.
      ordtconnlem2.2 @e |- ( ph -> U e. J ) @.
      ordtconnlem2.3 @e |- ( ph -> V e. J ) @.
      ordtconnlem2.4 @e |- ( ph -> A. x e. A A. y e. A A. r e. B
                                      ( ( x .<_ r /\ r .<_ y ) -> r e. A ) ) @.
      ordtconnlem2.5 @e |- ( ph -> E e. ( U i^i A ) ) @.
      ordtconnlem2.6 @e |- ( ph -> F e. ( V i^i A ) ) @.
      ordtconnlem2.7 @e |- ( ph -> ( U i^i V ) C_ ( B \ A ) ) @.
      ordtconnlem2.8 @e |- ( ph -> E .<_ F ) @.
      ordtconnlem2.9 @e |-
           S = sup ( ( U i^i { z e. B | ( E .<_ z /\ z .<_ F ) } ) , B , < ) @.
      @( Lemma for ~ ordtconn .  See also ~ reconnlem2 .  (Contributed by
         Thierry Arnoux, 15-Sep-2018.) @)
      ordtconnlem2 @p |- ( ph -> -. A C_ ( U u. V ) ) @=
        ? @.
    @}

    @( Connectedness in the order topology of a complete uniform totally
       ordered space.  @)
    ordtconn @p |- ( ( K e. Toset /\ K e. CUnifSp /\ A C_ B )
      -> ( ( J |`t A ) e. Conn <->
      A. x e. A A. y e. A A. r e. B ( ( x .<_ r /\ r .<_ y ) -> r e. A ) ) ) @=
      ? @.
$)
    $( Connectedness in the order topology of a complete uniform totally
       ordered space.  (Contributed by Thierry Arnoux, 15-Sep-2018.) $)
    ordtconn $p |- T. $=
      ( tru ) H $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Continuity in topological spaces - misc. additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d a b y .* $.  $d a x y .* $.  $d a b y .+ $.  $d a b C $.  $d a b y F $.
    $d a b J $.  $d a b K $.  $d x y .+ $.  $d x y B $.  $d x y F $.
    mndpluscn.f $e |- F e. ( J Homeo K ) $.
    mndpluscn.p $e |- .+ : ( B X. B ) --> B $.
    mndpluscn.t $e |- .* : ( C X. C ) --> C $.
    mndpluscn.j $e |- J e. ( TopOn ` B ) $.
    mndpluscn.k $e |- K e. ( TopOn ` C ) $.
    mndpluscn.h $e |- ( ( x e. B /\ y e. B ) ->
                           ( F ` ( x .+ y ) ) = ( ( F ` x ) .* ( F ` y ) ) ) $.
    mndpluscn.o $e |- .+ e. ( ( J tX J ) Cn J ) $.
    $( A mapping that is both a homeomorphism and a monoid homomorphism
       preserves the "continuousness" of the operation.  (Contributed by
       Thierry Arnoux, 25-Mar-2017.) $)
    mndpluscn $p |- .* e. ( ( K tX K ) Cn K ) $=
      ( va vb cfv co cv ccnv cmpt2 ctx ccn cxp wf wfn wceq ffn fnov biimpi mp2b
      wcel wral wf1o chmeo toponunii hmeof1o ax-mp f1ocnvdm mpan anim12i rgen2a
      wa oveq1 fveq2d oveq1d eqeq12d oveq2d rspc2va sylancl f1ocnvfv2 oveqan12d
      fveq2 oveq2 eqtr2d mpt2eq3ia eqtri ctopon a1i cnmpt1st hmeocnvcn cnmpt21f
      wtru mp1i cnmpt2nd cnmpt22f hmeocn trud eqeltri ) GQRDDQUAZFUBZSZRUAZWMSZ
      ETZFSZUCZIIUDTIUETZGQRDDWLWOGTZUCZWSDDUFZDGUGGXCUHZGXBUIZLXCDGUJXDXEQRDDG
      UKULUMQRDDXAWRWLDUNZWODUNZVEZWRWNFSZWPFSZGTZXAXHWNCUNZWPCUNZVEAUAZBUAZETZ
      FSZXNFSZXOFSZGTZUIZBCUOACUOWRXKUIZXFXLXGXMCDFUPZXFXLFHIUQTUNZYCJFHICDCHMU
      RDINURUSUTZCDWLFVAVBYCXGXMYECDWOFVAVBVCYAABCOVDYAYBWNXOETZFSZXIXSGTZUIABW
      NWPCCXNWNUIZXQYGXTYHYIXPYFFXNWNXOEVFVGYIXRXIXSGXNWNFVOVHVIXOWPUIZYGWRYHXK
      YJYFWQFXOWPWNEVPVGYJXSXJXIGXOWPFVOVJVIVKVLXFXGXIWLXJWOGYCXFXIWLUIYECDWLFV
      MVBYCXGXJWOUIYECDWOFVMVBVNVQVRVSWSWTUNWEQRWQFIIHIDDIDVTSUNWENWAZYKWEQRWNW
      PEIIHHHDDYKYKWEQRWLWMIIIHDDYKYKWEQRIIDDYKYKWBYDWMIHUETUNWEJFHIWCWFZWDWEQR
      WOWMIIIHDDYKYKWEQRIIDDYKYKWGYLWDEHHUDTHUETUNWEPWAWHYDFHIUETUNWEJFHIWIWFWD
      WJWK $.
  $}

  ${
    $d x y F $.  $d x y S $.  $d x y T $.
    mhmhmeotmd.m $e |- F e. ( S MndHom T ) $.
    mhmhmeotmd.h $e |- F e. ( ( TopOpen ` S ) Homeo ( TopOpen ` T ) ) $.
    mhmhmeotmd.t $e |- S e. TopMnd $.
    mhmhmeotmd.s $e |- T e. TopSp $.
    $( Deduce a Topological Monoid using mapping that is both a homeomorphism
       and a monoid homomorphism.  (Contributed by Thierry Arnoux,
       21-Jun-2017.) $)
    mhmhmeotmd $p |- T e. TopMnd $=
      ( vx vy ctmd wcel cmnd cplusf cfv ctopn ctx co ax-mp wf eqid ctps mhmrcl2
      ccn cmhm cbs cxp mhmrcl1 mndplusf ctopon tmdtopon istps mpbi cv wa cplusg
      wceq mhmlin mp3an1 plusfval fveq2d mhmf ffvelrni syl2an 3eqtr4d mndpluscn
      tmdcn istmd mpbir3an ) BJKBLKZBUAKZBMNZBONZVLPQVLUCQKCABUDQKZVIDABCUBRZGH
      IAUENZBUENZAMNZCVKAONZVLEALKZVOVOUFVOVQSVMVSDABCUGRVOVQAVOTZVQTZUHRVIVPVP
      UFVPVKSVNVPVKBVPTZVKTZUHRAJKZVRVOUINKFAVRVOVRTZVTUJRVJVLVPUINKGVPVLBWBVLT
      ZUKULHUMZVOKZIUMZVOKZUNZWGWIAUONZQZCNZWGCNZWICNZBUONZQZWGWIVQQZCNWOWPVKQZ
      VMWHWJWNWRUPDVOWLWQABCWGWIVTWLTZWQTZUQURWKWSWMCVOWLVQAWGWIVTXAWAUSUTWHWOV
      PKWPVPKWTWRUPWJVOVPWGCVMVOVPCSDVOVPABCVTWBVARZVBVOVPWICXCVBVPWQVKBWOWPWBX
      BWCUSVCVDWDVQVRVRPQVRUCQKFVQAVRWEWAVFRVEVKBVLWCWFVGVH $.
  $}

  ${
    $d w x C $.  $d w x ph $.  $d x y z C $.
    rmulccn.1 $e |- J = ( topGen ` ran (,) ) $.
    rmulccn.2 $e |- ( ph -> C e. RR ) $.
    $( Multiplication by a real constant is a continuous function.
       (Contributed by Thierry Arnoux, 23-May-2017.) $)
    rmulccn $p |- ( ph -> ( x e. RR |-> ( x x. C ) ) e. ( J Cn J ) ) $=
      ( vy vz vw cc cv cmul co cr cfv ccn wcel a1i wceq ax-resscn cmpt cres wss
      ccnfld ctopn crest ctopon eqid cnfldtopon cnmptid recnd cmpt2 ctx cxp wfn
      cnmptc wf ax-mulf ax-mp fnov mpbi mulcn eqeltrri oveq12 cnmpt12 toponunii
      ffn cnrest sylancl crn wb wral wa simpr adantr mulcld ralrimiva fnmpt syl
      fnssres fvres oveq1 fvmpt eqtrd remulcld eqeltrd fnfvrnss syl2anc cnrest2
      recn ovex syl3anc mpbid resmpt cioo tgioo2 eqtri oveq12i eqcomi 3eltr3g
      ctg ) ABJBKZCLMZUAZNUBZUDUEOZNUFMZXGPMZBNXCUAZDDPMZAXEXGXFPMQZXEXHQZAXDXF
      XFPMQNJUCZXKABGHXBCGKZHKZLMZXCXFXFXFXFJJJXFJUGOQZAXFXFUHZUIZRZABXFJXTUJAB
      CXFXFJJXTXTACFUKZUPXTXTGHJJXPULZXFXFUMMXFPMZQALYBYCLJJUNZUOZLYBSYDJLUQYEU
      RYDJLVGUSGHJJLUTVAXFXRVBVCRXNXBXOCLVDVETNXDXFXFJJXFXSVFVHVIAXQXEVJNUCZXMX
      KXLVKXTAXENUOZIKZXEOZNQZINVLYFAXDJUOZXMYGAXCJQZBJVLYKAYLBJAXBJQZVMXBCAYMV
      NACJQYMYAVOVPVQBJXCXDJXDUHZVRVSTJNXDVTVIAYJINAYHNQZVMZYIYHCLMZNYPYOYIYQSA
      YOVNZYOYIYHXDOZYQYHNXDWAYOYHJQYSYQSYHWJBYHXCYQJXDXBYHCLWBYNYHCLWKWCVSWDVS
      YPYHCYRACNQYOFVOWEWFVQINNXEWGWHXMATRNXEXGXFJWIWLWMXMXEXISTBJNXCWNUSXJXHDX
      GDXGPDWOVJXAOXGEXFXRWPWQZYTWRWSWT $.
  $}

  ${
    $d x y $.
    raddcn.1 $e |- J = ( topGen ` ran (,) ) $.
    $( Addition in the real numbers is a continuous function.  (Contributed by
       Thierry Arnoux, 23-May-2017.) $)
    raddcn $p |- ( x e. RR , y e. RR |-> ( x + y ) ) e. ( ( J tX J ) Cn J ) $=
      ( caddc cr cxp ctx co cfv crest ccn wcel wss ax-resscn mp2an ctop cvv crn
      cc cres ccnfld ctopn cv cmpt2 eqid addcn xpss12 cnfldtop toponunii txunii
      cnfldtopon cnrest wceq reex txrest mp4an cioo tgioo2 eqtr2i oveq12i eqtri
      ctg oveq1i eleqtri ctopon wb wfn wf ax-addf ax-mp fnssres fnov mpbi ovres
      mpt2eq3ia rneqi wral readdcl rgen2a rnmpt2ss eqsstri cnrest2 mp3an oveq2i
      ffn 3eltr3i ) EFFGZUAZCCHIZUBUCJZFKIZLIZABFFAUDZBUDZEIZUEZWJCLIWIWJWKLIZM
      ZWIWMMZWIWKWKHIZWHKIZWKLIZWREXAWKLIMWHTTGZNZWIXCMWKWKUFZUGFTNZXGXEOOFTFTU
      HPZWHEXAWKXDWKWKTTWKXFUIZXITWKWKXFULZUJZXKUKUMPXBWJWKLXBWLWLHIZWJWKQMZXMF
      RMZXNXBXLUNXIXIUOUOFFWKWKQQRRUPUQWLCWLCHCURSVCJWLDWKXFUSUTZXOVAVBVDVEWKTV
      FJMWISZFNXGWSWTVGXJXPWQSZFWIWQWIABFFWNWOWIIZUEZWQWIWHVHZWIXSUNEXDVHZXEXTX
      DTEVIYAVJXDTEWFVKXHXDWHEVLPABFFWIVMVNABFFXRWPWNWOFFEVOVPVBZVQWPFMZBFVRAFV
      RXQFNYCABFWNWOVSVTABFFWPFWQWQUFWAVKWBOFWIWJWKTWCWDVNYBWLCWJLXOWEWG $.
  $}

  ${
    $d x y C $.  $d x y F $.  $d x y ph $.
    xrmulc1cn.k $e |- J = ( ordTop ` <_ ) $.
    xrmulc1cn.f $e |- F = ( x e. RR* |-> ( x *e C ) ) $.
    xrmulc1cn.c $e |- ( ph -> C e. RR+ ) $.
    $( The operation multiplying an extended real number by a nonnegative
       constant is continuous.  (Contributed by Thierry Arnoux, 5-Jul-2017.) $)
    xrmulc1cn $p |- ( ph -> F e. ( J Cn J ) ) $=
      ( vy cle cfv co wcel cxr wral cxmu wceq wa simpr ralrimiva cordt ccn ctsr
      wiso letsr a1i wf1o cv wbr wb wreu crp adantr rpxrd xmulcld cc0 wne rpred
      rpne0d xreceu syl3anc eqcom adantlr xmulcom eqeq1d syl5bb reubidva mpbird
      cr syl2anc f1ompt sylanbrc simplr ad2antrr xlemul1 cvv ovex sylancl oveq1
      fvmpt2 fvmpt adantl breq12d bitr4d df-isom ordthmeolem oveq12i syl6eleqr
      ledm ) ADJUAKZWJUBLZEEUBLAJUCMZWLNNJJDUDZDWKMWLAUEUFZWNANNDUGZBUHZIUHZJUI
      ZWPDKZWQDKZJUIZUJZINOZBNOWMAWPCPLZNMZBNOWQXDQZBNUKZINOWOAXEBNAWPNMZRZWPCA
      XHSXICACULMZXHHUMUNZUOTAXGINAWQNMZRZXGCWPPLZWQQZBNUKZXMXLCVIMCUPUQXPAXLSX
      MCAXJXLHUMZURXMCXQUSBWQCUTVAXMXFXOBNXFXDWQQXMXHRZXOWQXDVBXRXDXNWQXRXHCNMZ
      XDXNQXMXHSAXHXSXLXKVCWPCVDVJVEVFVGVHTBINNXDDGVKVLAXCBNXIXBINXIXLRZWRXDWQC
      PLZJUIZXAXTXHXLXJWRYBUJAXHXLVMZXIXLSAXJXHXLHVNWPWQCVOVAXTWSXDWTYAJXTXHXDV
      PMWSXDQYCWPCPVQBNXDVPDGVTVRXLWTYAQXIBWQXDYANDWPWQCPVSGWQCPVQWAWBWCWDTTBIN
      NJJDWEVLJJDUCUCNNWIWIWFVAEWJEWJUBFFWGWH $.
  $}

  ${
    $d b e x y B $.  $d b d e x y D $.  $d b d e x y E $.  $d b d e x y F $.
    $d b d e x y J $.  $d b d e x y K $.  $d b d e x y X $.  $d b d e x y Y $.
    fmcncfil.1 $e |- J = ( MetOpen ` D ) $.
    fmcncfil.2 $e |- K = ( MetOpen ` E ) $.
    $( The image of a Cauchy filter by a continuous filter map is a Cauchy
       filter.  (Contributed by Thierry Arnoux, 12-Nov-2017.) $)
    fmcncfil $p |- ( ( ( D e. ( CMet ` X ) /\ E e. ( *Met ` Y )
      /\ F e. ( J Cn K ) ) /\ B e. ( CauFil ` D ) ) ->
      ( ( Y FilMap F ) ` B ) e. ( CauFil ` E ) ) $=
      ( vx vb cfv wcel co wa cv cflim wex wral vy vd cms cxmt ccn w3a ccfil cfm
      ve simpl2 cflf wi wal simpl1 c0 wne cmetcvg n0 sylib sylancom cme cmetmet
      cfil metxmet 3syl cfilfil ctopon mopntopon simpl3 cnflf simplbda syl21anc
      syl wf wceq oveq2 fveq1d eleq2d raleqbidv rspcv sylc df-ral 19.29r pm3.35
      eximi syl2anc clt wbr crp metcn biimpa simpld flfval syl3anc exbidv mpbid
      wrex flimcfil ex exlimdv ) BGUCMNZCHUDMNZDEFUEONZUFZABUGMNZPZXBKQZDMZFAHD
      UHOMZROZNZKSZXICUGMNZXAXBXCXEUJZXFXHDFAUKOZMZNZKSZXLXFXGEAROZNZKSZXTXQULZ
      KUMZXRXDXEXAYAXAXBXCXEUNZXAXEPXSUOUPYABAEGIUQKXSURUSUTXFXQKXSTZYCXFAGVCMZ
      NZXHDFLQZUKOZMZNZKEYHROZTZLYFTZYEXDXEBGUDMNZYGXFXABGVAMNYOYDBGVBBGVDVEZBA
      GVFUTZXFEGVGMNZFHVGMNZXCYNXFYOYRYPBEGIVHVMXFXBYSXNCFHJVHVMZXAXBXCXEVIZYRY
      SPXCGHDVNZYNKLDEFGHVJVKVLYMYELAYFYHAVOZYKXQKYLXSYHAERVPUUCYJXPXHUUCDYIXOY
      HAFUKVPVQVRVSVTWAXQKXSWBUSYAYCPXTYBPZKSXRXTYBKWCUUDXQKXTXQWDWEVMWFXFXQXKK
      XFXPXJXHXFYSYGUUBXPXJVOYTYQXFUUBXGUAQZBOUBQWGWHXHUUEDMCOUIQWGWHULUAGTUBWI
      WQUIWITKGTZXFYOXBXCUUBUUFPZYPXNUUAYOXBPXCUUGKUIUBUABCDEFGHIJWJWKVLWLDFAHG
      WMWNVRWOWPXBXKXMKXBXKXMXHCXIFHJWRWSWTWA $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Topology of the extended nonnegative real numbers ordered monoid
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( The extended nonnegative reals are homeomorphic to the closed unit
     interval.  (Contributed by Thierry Arnoux, 24-Mar-2017.) $)
  xrge0hmph $p |- II ~= ( ( ordTop ` <_ ) |`t ( 0 [,] +oo ) ) $=
    ( vx cc0 c1 cicc co cv wceq cpnf cmin cdiv cif cmpt cii cle cordt cfv crest
    chmeo clt eqid wcel chmph wbr wiso iccpnfhmeo simpri hmphi ax-mp ) ABCDEZAF
    ZCGHUJCUJIEJEKLZMNOPBHDEZQEZREUAZMUMUBUCUIULSSUKUDUNAUKUMUKTUMTUEUFUKMUMUGU
    H $.

  ${
    $d x y $.
    xrge0iifhmeo.1 $e |- F = ( x e. ( 0 [,] 1 ) |->
                                       if ( x = 0 , +oo , -u ( log ` x ) ) ) $.
    $( Define a bijection from ` [ 0 , 1 ] ` to ` [ 0 , +oo ] ` .  (Contributed
       by Thierry Arnoux, 29-Mar-2017.) $)
    xrge0iifcnv $p |- ( F : ( 0 [,] 1 ) -1-1-onto-> ( 0 [,] +oo ) /\ `' F =
      ( y e. ( 0 [,] +oo ) |-> if ( y = +oo , 0 , ( exp ` -u y ) ) ) ) $=
      ( cc0 c1 co cpnf wceq wa wcel cxr cle wbr 0xr pnfxr a1i wn clt wb cicc cv
      wf1o ccnv cneg ce cfv cif cmpt wtru clog 0lepnf ubicc2 cico icossicc cioc
      mp3an csn wo cun uncom 1re rexri 0le1 snunioc eqtr3i eleq2i bitr3i pm2.53
      wi elun sylbi elsni syl6 con1d imp crp cioo wss 0le0 ltpnf ax-mp iocssioo
      cr mp4an ioorp sseqtri sseli relogcld renegcld rexrd elioc1 mp2an simp3bi
      w3a 1rp logled mpbid syl6breq le0neg1d syl elico1 syl3anbrc sseldi ifclda
      log1 0elunit iocssicc snunico rge0ssre reefcld efgt0 simp2bi le0neg2d 0re
      adantl efle sylancl ef0 eqeq2 bibi1d simpr iftrue eqeq2d syl5ibrcom ubico
      wnel nelir neleq1 mpbiri syl5ibcom df-nel iffalse eqeltrd ex bibi2d recnd
      syl2an cc ifbothda ad2antrr syl5bi syld impbid ltned adantll neneqd eqeq1
      wne notbid 2falsed eqcom relogeftb negcon2 3bitr2d an4s anass1rs f1ocnv2d
      simplr trud ) EFUAGZEHUAGZCUCCUDBUVBBUBZHIZEUVCUEZUFUGZUHZUIIJUJABUVAUVBA
      UBZEIZHUVHUKUGZUEZUHZUVGCDUVHUVAKZUVLUVBKUJUVMUVIHUVKUVBHUVBKZUVMUVIJELKZ
      HLKZEHMNZUVNOPULEHUMUQQUVMUVIRZJZEHUNGZUVBUVKEHUOUVSUVHEFUPGZKZUVKUVTKZUV
      MUVRUWBUVMUWBUVIUVMUWBRZUVHEURZKZUVIUVMUWBUWFUSZUWDUWFVJUVMUVHUWAUWEUTZKU
      WGUWHUVAUVHUWEUWAUTZUWHUVAUWEUWAVAUVOFLKZEFMNUWIUVAIOFVBVCZVDEFVEUQVFVGUV
      HUWAUWEVKVHUWBUWFVIVLUVHEVMVNVOVPZUWBUVKLKZEUVKMNZUVKHSNZUWCUWBUVKUWBUVJU
      WBUVHUWAVQUVHUWAEHVRGZVQUVOUVPEEMNFHSNZUWAUWPVSOPVTFWDKUWQVBFWAWBEHEFWCWE
      WFWGWHZWIZWJZWKUWBUVJEMNUWNUWBUVJFUKUGZEMUWBUVHFMNZUVJUXAMNUWBUVHLKZEUVHS
      NZUXBUVOUWJUWBUXCUXDUXBWOTOUWKEFUVHWLWMWNUWBUVHFUWRFVQKUWBWPQWQWRXFWSUWBU
      VJUWSWTWRUWBUVKWDKUWOUWTUVKWAXAUVOUVPUWCUWMUWNUWOWOTOPEHUVKXBWMXCXAZXDXEX
      PUVCUVBKZUVGUVAKUJUXFUVDEUVFUVAEUVAKUXFUVDJXGQUXFUVDRZJZUWAUVAUVFEFXHUXHU
      VCUVTKZUVFUWAKZUXFUXGUXIUXFUXIUVDUXFUXIRZUVCHURZKZUVDUXFUXIUXMUSZUXKUXMVJ
      UXFUVCUVTUXLUTZKUXNUXOUVBUVCUVOUVPUVQUXOUVBIOPULEHXIUQVGUVCUVTUXLVKVHUXIU
      XMVIVLUVCHVMVNVOVPZUXIUVFLKZEUVFSNZUVFFMNZUXJUXIUVFUXIUVEUXIUVCUVTWDUVCXJ
      WHZWJZXKWKUXIUVEWDKZUXRUYAUVEXLXAZUXIUVFEUFUGZFMUXIUVEEMNZUVFUYDMNZUXIEUV
      CMNZUYEUXIUVCLKZUYGUVCHSNZUVOUVPUXIUYHUYGUYIWOTOPEHUVCXBWMXMUXIUVCUXTXNWR
      UXIUYBEWDKZUYEUYFTUYAXOUVEEXQXRWRXSWSUVOUWJUXJUXQUXRUXSWOTOUWKEFUVFWLWMXC
      XAXDXEXPUVMUXFJZUVHUVGIZUVCUVLIZTZUJUVDUVIUYMTUVHUVFIZUYMTZUYNUYKEUVFEUVG
      IUVIUYLUYMEUVGUVHXTYAUVFUVGIUYOUYLUYMUVFUVGUVHXTYAUYKUVDJZUVIUYMUYQUYMUVI
      UVDUYKUVDYBUVIUVLHUVCUVIHUVKYCYDYEUYQUYMUVLUVTYGZUVIUYQUVCUVTYGZUYMUYRUYQ
      UYSHUVTYGZHUVTUYJUVPHUVTKRXOPEHYFWMYHUVDUYSUYTTUYKUVCHUVTYIXPYJUVCUVLUVTY
      IYKUYRUVLUVTKZRUYQUVIUVLUVTYLUYQUVIVUAUVMUVRVUAVJUXFUVDUVMUVRVUAUVSUVLUVK
      UVTUVRUVLUVKIUVMUVIHUVKYMXPUXEYNYOUUAVOUUBUUCUUDUVIUYOUVDTUYOUVCUVKIZTZUY
      PUYKUXGJZHUVKHUVLIUVDUYMUYOHUVLUVCXTYPUVKUVLIVUBUYMUYOUVKUVLUVCXTYPVUDUVI
      JUYOUVDVUDUVIUYORZVUDVUEUVIEUVFIZRVUDEUVFUXFUXGEUVFUUIUVMUXHEUVFUYJUXHXOQ
      UXHUXIUXRUXPUYCXAUUEUUFUUGUVIUYOVUFUVHEUVFUUHUUJYEVPUYKUXGUVIUUSUUKUYKUVR
      UXGVUCUVMUVRUXFUXGVUCUVSUWBUXIVUCUXHUWLUXPUWBUXIJZUYOUVFUVHIZUVJUVEIZVUBU
      YOVUHTVUGUVHUVFUULQUWBUVHVQKUYBVUIVUHTUXIUWRUYAUVHUVEUUMYRUWBUVJYSKUVCYSK
      VUIVUBTUXIUWBUVJUWSYQUXIUVCUXTYQUVJUVCUUNYRUUOYRUUPUUQYTYTXPUURUUT $.

    $d x X $.
    $( The defined function's value in the real.  (Contributed by Thierry
       Arnoux, 1-Apr-2017.) $)
    xrge0iifcv $p |- ( X e. ( 0 (,] 1 ) -> ( F ` X ) = -u ( log ` X ) ) $=
      ( cc0 c1 cioc co wcel cfv wceq cpnf clog cneg cif cicc iocssicc sseli wbr
      cr eqeq1 fveq2 negeqd ifbieq2d pnfex negex ifex fvmpt syl clt cle cxr w3a
      cv wb 0xr 1re elioc2 mp2an simp2bi gt0ne0d neneqd iffalsed eqtrd ) CEFGHZ
      IZCBJZCEKZLCMJZNZOZVJVFCEFPHZIVGVKKVEVLCEFQRACAUNZEKZLVMMJZNZOVKVLBVMCKZV
      NVHVPVJLVMCEUAVQVOVIVMCMUBUCUDDVHLVJUEVIUFUGUHUIVFVHLVJVFCEVFCVFCTIZECUJS
      ZCFUKSZEULIFTIVFVRVSVTUMUOUPUQEFCURUSUTVAVBVCVD $.

    $d w x y z F $.  $d x X $.
    $( The defined bijection from the closed unit interval and the extended
       nonnegative reals is an order isomorphism.  (Contributed by Thierry
       Arnoux, 31-Mar-2017.) $)
    xrge0iifiso $p |- F Isom < , `' < ( ( 0 [,] 1 ) , ( 0 [,] +oo ) ) $=
      ( vw vz cc0 c1 co clt cpnf wbr cfv cxr wceq wcel cle 1re cr wb crp wor cv
      cicc ccnv wpo wfo wral wiso wss iccssxr xrltso soss cnvso mpbi sopo ax-mp
      wi mp2 poss wf1o cneg ce cif cmpt xrge0iifcnv simpli f1ofo csn wo cun 0xr
      cioc rexri 0le1 snunioc mp3an eleq2i elun bitr3i velsn wa elunitrn adantr
      simpr 0re elicc2i simp3bi w3a elioc2 mp2an syl3anbrc clog cioo pnfxr 0le0
      ltpnf iocssioo mp4an ioorp sseqtri relogcl renegcld brcnvg sylancr mpbird
      sseli syl xrge0iifcv breqtrrd ex breq1 fveq2 0elunit iftrue syl6eq breq1d
      pnfex fvmpt imbi12d syl5ibr sylbi simpll ad2antlr a1i rpred simp2bi lttrd
      ad2antrr jca relogcld adantl ltnegd logltb syl2an negex 3bitr4d breqan12d
      brcnv biimpd sylibrd sylc exp31 jaoi imp rgen2a soisoi ) FGUCHZIUAZFJUCHZ
      IUDZUEZUUGUUIBUFZDUBZEUBZIKZUUMBLZUUNBLZUUJKZUQZEUUGUGDUUGUGUUGUUIIUUJBUH
      UUGMUIMIUAZUUHFGUJUKUUGMIULURUUIMUIMUUJUEZUUKFJUJMUUJUAZUVAUUTUVBUKMIUMUN
      MUUJUOUPUUIMUUJUSURUUGUUIBUTZUULUVCBUDEUUIUUNJNFUUNVAVBLVCVDNAEBCVEVFUUGU
      UIBVGUPUUSDEUUGUUMUUGOZUUNUUGOZUUSUVDUUMFVHZOZUUMFGVLHZOZVIZUVEUUSUQZUVDU
      UMUVFUVHVJZOUVJUVLUUGUUMFMOZGMOFGPKUVLUUGNVKGQVMVNFGVOVPVQUUMUVFUVHVRVSUV
      GUVKUVIUVGUUMFNZUVKDFVTUVEUUSUVNFUUNIKZJUUQUUJKZUQUVEUVOUVPUVEUVOWAZUUNUV
      HOZUVPUVQUUNROZUVOUUNGPKZUVRUVEUVSUVOUUNWBZWCUVEUVOWDUVEUVTUVOUVEUVSFUUNP
      KUVTFGUUNWEQWFWGZWCUVMGROZUVRUVSUVOUVTWHSVKQFGUUNWIWJZWKUVRJUUNWLLZVAZUUQ
      UUJUVRUUNTOZJUWFUUJKZUVHTUUNUVHFJWMHZTUVMJMOZFFPKGJIKZUVHUWIUIVKWNWOUWCUW
      KQGWPUPFJFGWQWRWSWTZXFZUWGUWHUWFJIKZUWGUWFROZUWNUWGUWEUUNXAXBZUWFWPXGUWGU
      WJUWOUWHUWNSWNUWPJUWFMRIXCXDXEXGABUUNCXHZXIXGXJUVNUUOUVOUURUVPUUMFUUNIXKU
      VNUUPJUUQUUJUVNUUPFBLZJUUMFBXLFUUGOUWRJNXMAFAUBZFNZJUWSWLLVAZVCJUUGBUWTJU
      XAXNCXQXRUPXOXPXSXTYAUVIUVEUUOUURUVIUVEWAZUUOWAZUVIUVRWAZUUOUURUXCUVIUVRU
      VIUVEUUOYBUXCUVSUVOUVTUVRUVEUVSUVIUUOUWAYCZUXCFUUMUUNFROUXCWEYDUVIUUMROZU
      VEUUOUVIUUMUVHTUUMUWLXFZYEYHUXEUVIFUUMIKZUVEUUOUVIUXFUXHUUMGPKZUVMUWCUVIU
      XFUXHUXIWHSVKQFGUUMWIWJYFYHUXBUUOWDZYGUVEUVTUVIUUOUWBYCUWDWKYIUXJUXDUUOUU
      MWLLZVAZUWFUUJKZUURUXDUUOUXMUXDUXKUWEIKZUWFUXLIKZUUOUXMUXDUXKUWEUXDUUMUVI
      UUMTOZUVRUXGWCYJUXDUUNUVRUWGUVIUWMYKYJYLUVIUXPUWGUUOUXNSUVRUXGUWMUUMUUNYM
      YNUXMUXOSUXDUXLUWFIUXKYOUWEYOYRYDYPYSUVIUVRUUPUXLUUQUWFUUJABUUMCXHUWQYQYT
      UUAUUBUUCYAUUDUUEDEUUGUUIIUUJBUUFWR $.

    $d x u $.
    xrge0iifhmeo.k $e |- J = ( ( ordTop ` <_ ) |`t ( 0 [,] +oo ) ) $.
    $( Expose a homeomorphism from the closed unit interval and the extended
       nonnegative reals.  (Contributed by Thierry Arnoux, 1-Apr-2017.) $)
    xrge0iifhmeo $p |- F e. ( II Homeo J ) $=
      ( cle cc0 co cordt cfv cpnf chmeo cvv wcel wiso cps cxr mp2an mpbi cdm vy
      c1 cicc cxp cin ccnv ctsr letsr tsrps ax-mp elexi inex1 cnvps xrge0iifiso
      cii clt wss wb iccssxr gtiso isores1 isores2 wceq ledm psssdm eqcomi lern
      crn df-rn eqtri ordthmeo mp3an dfii5 crest iccss2 cnvordtrestixx eleqtrri
      cv oveq12i ) BFGUBUCHZVTUDZUEZIJZFUFZGKUCHZWEUDZUEZIJZLHZUOCLHWBMNWGMNVTW
      EWBWGBOZBWINFWAFPFUGNFPNZUHFUIUJZUKULWDWFWDPWKWDPNZWLFUMUJZUKULVTWEWBWDBO
      ZWJVTWEFWDBOZWOVTWEUPUPUFBOZWPABDUNVTQUQZWEQUQZWQWPURGUBUSZGKUSZVTWEBUTRS
      VTWEFWDBVASVTWEWBWDBVBSWBWGBMMVTWEWBTZVTWKWRXBVTVCWLWTVTFQVDVERVFWGTZWEWM
      WSXCWEVCWNXAWEWDQQFVHWDTVGFVIVJVERVFVKVLUOWCCWHLVMCFIJWEVNHWHEAUAWEXAGKAV
      RUAVRVOVPVJVSVQ $.

    $d x Y $.
    $( The defined function from the closed unit interval and the extended
       nonnegative reals is also a monoid homomorphism.  (Contributed by
       Thierry Arnoux, 5-Apr-2017.) $)
    xrge0iifhom $p |- ( ( X e. ( 0 [,] 1 ) /\ Y e. ( 0 [,] 1 ) ) ->
      ( F ` ( X x. Y ) ) = ( ( F ` X ) +e ( F ` Y ) ) ) $=
      ( cc0 c1 co wcel wceq cfv cxad cxr wbr cpnf cmnf cr sseldi cicc cioc cmul
      wo csn cun cle 0xr 1re rexri 0le1 snunioc mp3an eleq2i elun bitr3i orim1i
      elsni sylbi wa 0elunit cv clog cneg iftrue pnfex fvmpt ax-mp oveq2i eqeq1
      cif wne fveq2 negeqd ifbieq2d negex ifex a1i wn elunitrn adantr elunitge0
      pnfxr simpr neqned ne0gt0d elrpd relogcld renegcld rexrd eqeltrd pnfnemnf
      ifclda neeq1 renemnfd ifbothda eqnetrd xaddpnf1 syl2anc cc unitsscn simpl
      syl5eq mul01d fveq2d syl6eq eqtr4d oveq2d 3eqtr4rd oveq1i xrge0iifcv cioo
      crp clt wss 0le0 ltpnf iocssioo mp4an ioorp sseqtri sseli xaddpnf2 rpssre
      syl sstri ax-resscn mul02d oveq1d caddc rexadd oveqan12d remulcld mulgt0d
      rpred rpgt0d iocssicc iimulcl 0re recnd elicc2i wb elioc2 mp2an syl3anbrc
      simp3bi w3a relogmuld negdid 3eqtrd jaoian sylan jaodan sylan2 ) EHIUAJZK
      ZDUUOKZEHLZEHIUBJZKZUDZDEUCJZBMZDBMZEBMZNJZLZUUPEHUEZKZUUTUDZUVAUUPEUVHUU
      SUFZKUVJUVKUUOEHOKZIOKHIUGPUVKUUOLUHIUIUJUKHIULUMZUNEUVHUUSUOUPUVIUURUUTE
      HURUQUSUUQUURUVGUUTUUQUURUTZUVDHBMZNJZDHUCJZBMZUVFUVCUVNUVPQUVRUVNUVPUVDQ
      NJZQUVOQUVDNHUUOKUVOQLVAAHAVBZHLZQUVTVCMZVDZVKZQUUOBUWAQUWCVEFVFVGVHZVIUV
      NUVDOKZUVDRVLZUVSQLUUQUWFUURUUQUVDDHLZQDVCMZVDZVKZOADUWDUWKUUOBUVTDLZUWAU
      WHUWCUWJQUVTDHVJUWLUWBUWIUVTDVCVMVNVOFUWHQUWJVFUWIVPVQVGZUUQUWHQUWJOQOKZU
      UQUWHUTZWCVRUUQUWHVSZUTZUWJUWQUWIUWQDUWQDUUQDSKUWPDVTWAZUWQDUWRUUQHDUGPUW
      PDWBWAUWQDHUUQUWPWDWEWFWGWHWIZWJWMWKWAUUQUWGUURUUQUVDUWKRUWMUWHQRVLZUWJRV
      LUWKRVLUUQQUWJQUWKRWNUWJUWKRWNUWTUWOWLVRUWQUWJUWSWOWPWQWAUVDWRWSXCUVNUVRU
      VOQUVNUVQHBUVNDUVNUUOWTDXAUUQUURXBTXDXEUWEXFXGUVNUVEUVOUVDNUVNEHBUUQUURWD
      ZXEXHUVNUVBUVQBUVNEHDUCUXAXHXEXIUUQUWHDUUSKZUDZUUTUVGUUQDUVHKZUXBUDZUXCUU
      QDUVKKUXEUVKUUODUVMUNDUVHUUSUOUPUXDUWHUXBDHURUQUSUWHUUTUVGUXBUWHUUTUTZUVO
      UVENJZHEUCJZBMZUVFUVCUXFUXGQUXIUXFUXGQUVENJZQUVOQUVENUWEXJUXFUVEOKZUVERVL
      ZUXJQLUXFUUTUXKUWHUUTWDZUUTUVEUUTUVEEVCMZVDZSABEFXKZUUTUXNUUTEUUSXMEUUSHQ
      XLJZXMUVLUWNHHUGPIQXNPZUUSUXQXOUHWCXPISKZUXRUIIXQVHHQHIXRXSXTYAZYBWHWIWKZ
      WJYEUXFUUTUXLUXMUUTUVEUYAWOYEUVEYCWSXCUXFUXIUVOQUXFUXHHBUXFEUXFUUSWTEUUSS
      WTUUSXMSUXTYDYFYGYFUXMTYHXEUWEXFXGUXFUVDUVOUVENUXFDHBUWHUUTXBZXEYIUXFUVBU
      XHBUXFDHEUCUYBYIXEXIUXBUUTUTZUWJUXONJZUWJUXOYJJZUVFUVCUYCUWJSKUXOSKUYDUYE
      LUYCUWIUYCDUYCUUSXMDUXTUXBUUTXBZTZWHZWIUYCUXNUYCEUYCUUSXMEUXTUXBUUTWDZTZW
      HZWIUWJUXOYKWSUXBUUTUVDUWJUVEUXONABDFXKUXPYLUYCUVCUVBVCMZVDZUWIUXNYJJZVDU
      YEUYCUVBUUSKZUVCUYMLUYCUVBSKZHUVBXNPZUVBIUGPZUYOUYCDEUYCDUYGYOZUYCEUYJYOZ
      YMUYCDEUYSUYTUYCDUYGYPUYCEUYJYPYNUYCUVBUUOKZUYRUYCUUQUUPVUAUYCUUSUUODHIYQ
      ZUYFTUYCUUSUUOEVUBUYITDEYRWSVUAUYPHUVBUGPUYRHIUVBYSUIUUAUUFYEUVLUXSUYOUYP
      UYQUYRUUGUUBUHUIHIUVBUUCUUDUUEABUVBFXKYEUYCUYLUYNUYCDEUYGUYJUUHVNUYCUWIUX
      NUYCUWIUYHYTUYCUXNUYKYTUUIUUJXIUUKUULUUMUUN $.

    $( Condition for the defined function, ` -u ( log `` x ) ` to be a monoid
       homomorphism.  (Contributed by Thierry Arnoux, 20-Jun-2017.) $)
    xrge0iif1 $p |- ( F ` 1 ) = 0 $=
      ( c1 cc0 cicc co wcel cfv wceq 1elunit cv cpnf clog cneg cif wne ax-1ne0
      neeq1 mpbiri neneqd iffalsed fveq2 negeqd log1 negeqi neg0 eqtri a1i c0ex
      3eqtrd fvmpt ax-mp ) FGFHIZJFBKGLMAFANZGLZOUQPKZQZRZGUPBUQFLZVAUTFPKZQZGV
      BUROUTVBUQGVBUQGSFGSTUQFGUAUBUCUDVBUSVCUQFPUEUFVDGLVBVDGQGVCGUGUHUIUJUKUM
      DULUNUO $.

    $( The defined function from the closed unit interval and the extended
       nonnegative reals is a monoid homomorphism.  (Contributed by Thierry
       Arnoux, 21-Jun-2017.) $)
    xrge0iifmhm $p |- F e. ( ( ( mulGrp ` CCfld ) |`s ( 0 [,] 1 ) )
                                         MndHom ( RR*s |`s ( 0 [,] +oo ) ) ) $=
      ( vy vz ccnfld cfv cc0 c1 cicc co cress wcel cmul wceq ax-mp cc cvv wa wf
      cmgp cxrs cpnf cmhm cmnd cv cxad wral ctmd eqid iistmd tmdmnd ccmn cmnmnd
      w3a xrge0cmn pm3.2i wf1o ccnv cneg ce cmpt xrge0iifcnv simpli xrge0iifhom
      cif rgen2a xrge0iif1 3pm3.2i wss cbs unitsscn cnfldbas ressbas2 xrge0base
      f1of mgpbas cnfldex ovex mgpress mp2an cmulr cnfldmul ressmulr xrge0plusg
      mgpplusg crg cnring 1elunit cnfld1 ringidss mp3an xrge00 ismhm mpbir2an
      c0g ) BHUCIZJKLMZNMZUDJUELMZNMZUFMOXAUGOZXCUGOZUAWTXBBUBZFUHZGUHZPMBIXGBI
      XHBIUIMQZGWTUJFWTUJZKBIJQZUQXDXEXAUKOXDXAXAULZUMXAUNRXCUOOXEURXCUPRUSXFXJ
      XKWTXBBUTZXFXMBVAFXBXGUEQJXGVBVCIVHVDQAFBDVEVFWTXBBVRRXIFGWTABCXGXHDEVGVI
      ABCDEVJVKFGWTXBPUIXAXCBJKWTSVLZWTXAVMIQVNWTSXAWSXLSHWSWSULZVOVSVPRVQHWTNM
      ZPXAHTOWTTOZXAXPUCIQVTJKLWAZWTHXPWSTTXPULZXOWBWCXQPXPWDIQXRWTHXPPTXSWEWFR
      WHWGHWIOXNKWTOKXAWRIQWJVNWKWTSHKXAXLVOWLWMWNWOWPWQ $.

    $d x v $.  $d a b .+ $.  $d u v .+ $.  $d u v F $.
    xrge0pluscn.1 $e |- .+ = ( +e |` ( ( 0 [,] +oo ) X. ( 0 [,] +oo ) ) ) $.
    $( The addition operation of the extended nonnegative real numbers monoid
       is continuous.  (Contributed by Thierry Arnoux, 24-Mar-2017.) $)
    xrge0pluscn $p |- .+ e. ( ( J tX J ) Cn J ) $=
      ( vu vv cc0 co cmul cii wf wcel cc cxad cxr cfv ccnfld va vb vy cicc cpnf
      c1 cxp cres xrge0iifhmeo wfn cv wral wss unitsscn xpss12 mp2an wb ax-mulf
      ffn fnssresb mpbir wa ovres iimulcl eqeltrd rgen2a ffnov mpbir2an iccssxr
      mp2b xaddf fneq1i oveqi ge0xaddcl syl5eqel iitopon cle cordt crest ctopon
      letopon resttopon eqeltri wceq wf1o ccnv cneg cif cmpt xrge0iifcnv simpli
      f1of ax-mp ffvelrni syl2an syl5eq xrge0iifhom eqcomd fveq2d 3eqtr2rd cmgp
      ce cress ctmd ctx ccn eqid iistmd cvv cnfldex ovex mgpress mgptopn cplusf
      dfii4 cnfldbas mgpbas cnfldmul mgpplusg ressplusf eqcomi tmdcn mndpluscn
      ) HIJUFUDKZJUEUDKZLYDYDUGZUHZCBMDACDEFUIYFYDYGNYGYFUJZHUKZIUKZYGKZYDOZIYD
      ULHYDULYHYFPPUGZUMZYDPUMZYOYNUNUNYDPYDPUOUPYMPLNZLYMUJZYHYNUQURYMPLUSZYMY
      FLUTVJVAYLHIYDYIYDOZYJYDOZVBZYKYIYJLKZYDYIYJYDYDLVCZYIYJVDVEVFHIYDYDYDYGV
      GVHYEYEUGZYEBNBUUDUJZUAUKZUBUKZBKZYEOZUBYEULUAYEULUUEQUUDUHZUUDUJZUUKUUDR
      RUGZUMZYERUMZUUNUUMJUEVIZUUOYERYERUOUPUULRQNQUULUJUUKUUMUQVKUULRQUSUULUUD
      QUTVJVAUUDBUUJGVLVAUUIUAUBYEUUFYEOUUGYEOVBZUUHUUFUUGUUJKZYEBUUJUUFUUGGVMU
      UPUUQUUFUUGQKYEUUFUUGYEYEQVCUUFUUGVNVEVOVFUAUBYEYEYEBVGVHVPDVQVRSZYEVSKZY
      EVTSZFUURRVTSOUUNUUSUUTOWAUUOYEUURRWBUPWCUUAYICSZYJCSZBKZUVAUVBQKZUUBCSYK
      CSUUAUVCUVAUVBUUJKZUVDBUUJUVAUVBGVMYSUVAYEOUVBYEOUVEUVDWDYTYDYEYICYDYECWE
      ZYDYECNUVFCWFUCYEUCUKZUEWDJUVGWGXBSWHWIWDAUCCEWJWKYDYECWLWMZWNYDYEYJCUVHW
      NUVAUVBYEYEQVCWOWPACDYIYJEFWQUUAUUBYKCUUAYKUUBUUCWRWSWTTXASZYDXCKZXDOYGMM
      XEKMXFKOUVJUVJXGZXHYGUVJMTYDXCKZMUVJTXIOYDXIOUVJUVLXASWDXJJUFUDXKYDTUVLUV
      IXIXIUVLXGZUVIXGZXLUPUVLUVMXOXMUVJXNSYGYDPLUVIUVJPTUVIUVNXPXQUVKTLUVIUVNX
      RXSYPYQURYRWMUNXTYAYBWMYC $.
  $}

  ${
    $d x y C $.
    xrge0mulc1cn.k $e |- J = ( ( ordTop ` <_ ) |`t ( 0 [,] +oo ) ) $.
    xrge0mulc1cn.f $e |- F = ( x e. ( 0 [,] +oo ) |-> ( x *e C ) ) $.
    xrge0mulc1cn.c $e |- ( ph -> C e. ( 0 [,) +oo ) ) $.
    $( The operation multiplying a nonnegative real numbers by a nonnegative
       constant is continuous.  (Contributed by Thierry Arnoux, 6-Jul-2017.) $)
    xrge0mulc1cn $p |- ( ph -> F e. ( J Cn J ) ) $=
      ( vy cc0 wceq ccn co wcel cpnf cfv cxr a1i cxmu crp cioo ctopon csn cordt
      wf cle crest wss letopon iccssxr resttopon mp2an eqeltri 0e0iccpnf cxp cv
      cicc cmpt wa simpl oveq2d simpr sseldi xmul01 syl eqtrd mpteq2dva 3eqtr4g
      fconstmpt c0ex fconst2 sylibr cnconst syl22anc cres eqid oveq1 cbvmptv id
      adantl xrmulc1cn cnrest sylancl resmpt ax-mp eqtr4i eqcomi oveq1i 3eltr3g
      letopuni crn wb ioorp ioossicc eqsstr3i ge0xmulcl syl2anc cnrest2 syl3anc
      fmptd frn mpbid oveq2i syl6eleqr eleq2s cico clt wbr 0xr pnfxr elicoelioo
      wo 0ltpnf mp3an sylib mpjaodan ) ACJKZDEELMZNZCJOUAMZNZXQXSAXQEJOUQMZUBPZ
      NZYDJYBNZYBJUCZDUEZXSYDXQEUFUDPZYBUGMZYCFYHQUBPNZYBQUHZYIYCNUIJOUJZYBYHQU
      KULUMRZYMYEXQUNRXQDYBYFUOZKYGXQBYBBUPZCSMZURZBYBJURDYNXQBYBYPJXQYOYBNZUSZ
      YPYOJSMZJYSCJYOSXQYRUTVAYSYOQNYTJKYSYBQYOYLXQYRVBVCYOVDVEVFVGGBYBJVIVHYBJ
      DVJVKVLJDEEYBYBVMVNVTYAXSAXSCTXTCTNZDEYILMZXRUUADEYHLMZNZDUUBNZUUABQYPURZ
      YBVOZYIYHLMZDUUCUUAUUFYHYHLMNYKUUGUUHNUUAICUUFYHYHVPBIQYPIUPZCSMYOUUICSVQ
      VRUUAVSWAYLYBUUFYHYHQWJWBWCUUGYQDYKUUGYQKYLBQYBYPWDWEGWFYIEYHLEYIFWGWHWIU
      UAYJDWKYBUHZYKUUDUUEWLYJUUAUIRUUAYBYBDUEUUJUUABYBYPYBDUUAYRUSZYRCYBNYPYBN
      UUAYRVBUUKTYBCTXTYBWMJOWNWOUUAYRUTVCYOCWPWQGWTYBYBDXAVEYKUUAYLRYBDEYHQWRW
      SXBEYIELFXCXDWMXEVTACJOXFMNZXQYAXLZHJQNOQNJOXGXHUULUUMWLXIXJXMJOCXKXNXOXP
      $.
  $}

  $( The extended nonnegative real numbers monoid forms a topological space.
     (Contributed by Thierry Arnoux, 19-Jun-2017.) $)
  xrge0tps $p |- ( RR*s |`s ( 0 [,] +oo ) ) e. TopSp $=
    ( cxrs ctps wcel cc0 cpnf cicc co cvv cress xrstps ovex resstps mp2an ) ABC
    DEFGZHCANIGBCJDEFKNAHLM $.

  $( The topology of the extended nonnegative real numbers.  (Contributed by
     Thierry Arnoux, 20-Jun-2017.) $)
  xrge0topn $p |- ( TopOpen ` ( RR*s |`s ( 0 [,] +oo ) ) ) =
                                       ( ( ordTop ` <_ ) |`t ( 0 [,] +oo ) ) $=
    ( cle cordt cfv cc0 cpnf cicc co crest cxrs cress ctopn eqid xrstopn eqcomi
    resstopn ) ABCZDEFGZHGIQJGZKCQRPIRLMON $.

  $( The topology of the extended nonnegative real numbers is Hausdorff.
     (Contributed by Thierry Arnoux, 26-Jul-2017.) $)
  xrge0haus $p |- ( TopOpen ` ( RR*s |`s ( 0 [,] +oo ) ) ) e. Haus $=
    ( cxrs cc0 cpnf cicc cress ctopn cfv cle cordt crest cha xrge0topn wcel cvv
    co xrhaus ovex resthaus mp2an eqeltri ) ABCDOZEOFGHIGZUAJOZKLUBKMUANMUCKMPB
    CDQUAUBNRST $.

  ${
    $d x y $.
    $( The extended nonnegative real numbers monoid is a topological monoid.
       (Contributed by Thierry Arnoux, 26-Mar-2017.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    xrge0tmdOLD $p |- ( RR*s |`s ( 0 [,] +oo ) ) e. TopMnd $=
      ( vx vy cxrs cc0 cpnf cicc co wcel cxad cxp cfv ax-mp wceq clog cneg eqid
      cv cif cxr cvv cress ctmd cmnd ctps cres cle cordt crest ctx ccn xrge0cmn
      ccmn cmnmnd xrge0tps cmpt eqeq1 fveq2 negeqd ifbieq2d cbvmptv xrge0pluscn
      c1 cplusf xrsbas xrsadd wf wfn ffn iccssxr ressplusf eqcomi xrge0base cts
      xaddf ovex xrstset resstset topnval istmd mpbir3an ) CDEFGZUAGZUBHWBUCHZW
      BUDHIWAWAJUEZUFUGKZWAUHGZWFUIGWFUJGHWBULHWCUKWBUMLUNAWDBDVBFGZBQZDMZEWHNK
      ZOZRZUOWFBAWGWLAQZDMZEWMNKZOZRWHWMMZWIWNWKWPEWHWMDUPWQWJWOWHWMNUQURUSUTWF
      PWDPVAWDWBWFWBVCKWDWASICWBVDWBPZVESSJZSIVFIWSVGVNWSSIVHLDEVIVJVKWAWEWBVLW
      ATHWEWBVMKMDEFVOWACWBWETWRVPVQLVRVSVT $.
  $}

  ${
    $d x y $.
    $( The extended nonnegative real numbers monoid is a topological monoid.
       (Contributed by Thierry Arnoux, 26-Mar-2017.)  (Proof Shortened by
       Thierry Arnoux, 21-Jun-2017.) $)
    xrge0tmd $p |- ( RR*s |`s ( 0 [,] +oo ) ) e. TopMnd $=
      ( vx vy ccnfld cmgp cfv cc0 c1 cicc co cress cpnf cv wceq clog cneg chmeo
      cif cii cvv eqid cxrs ctopn eqeq1 fveq2 negeqd ifbieq2d cbvmptv xrge0topn
      cmpt xrge0iifmhm xrge0iifhmeo cnfldex mgpress mp2an dfii4 mgptopn eleqtri
      wcel ovex oveq1i iistmd xrge0tps mhmhmeotmd ) CDEZFGHIZJIZUAFKHIJIZAVEALZ
      FMZKVHNEZOZQZUIZBVMVGUBEZABVEVLBLZFMZKVONEZOZQVHVOMZVIVPVKVRKVHVOFUCVSVJV
      QVHVONUDUEUFUGZUHUJVMRVNPIVFUBEZVNPIBVMVNVTUHUKRWAVNPCVEJIZRVFCSURVESURVF
      WBDEMULFGHUSVECWBVDSSWBTZVDTUMUNWBWCUOUPUTUQVFVFTVAVBVC $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Limits - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    lmlim.j $e |- J e. ( TopOn ` Y ) $.
    lmlim.f $e |- ( ph -> F : NN --> X ) $.
    lmlim.p $e |- ( ph -> P e. X ) $.
    lmlim.t $e |- ( J |`t X ) = ( ( TopOpen ` CCfld ) |`t X ) $.
    lmlim.x $e |- X C_ CC $.
    $( Relate a limit in a given topology to a complex number limit, provided
       that topology agrees with the common topology on ` CC ` on the required
       subset.  (Contributed by Thierry Arnoux, 11-Jul-2017.) $)
    lmlim $p |- ( ph -> ( F ( ~~>t ` J ) P <-> F ~~> P ) ) $=
      ( clm cfv wbr c1 cvv cn cc wcel a1i crest ccnfld ctopn cli eqid nnuz cnex
      co wss ssexd ctop topontopi cz 1z wb fveq2i breqi cnfldtop wf fss sylancl
      lmss lmclimf sylancr bitr3d 3bitrd ) ACBDLMNCBDEUAUHZLMZNZCBUBUCMZEUAUHZL
      MZNZCBUDNZABCDVGOPEQVGUEUFAERPRPSAUGTERUIZAKTUJZDUKSAFDGULTIOUMSZAUNTZHVB
      VIVMUOACBVHVLVGVKLJUPUQTACBVJLMNZVMVNABCVJVKOPEQVKUEUFVPVJUKSAVJVJUEZURTI
      VRHVBAVQQRCUSZVSVNUOUNAQECUSVOWAHKQERCUTVABCVJOQVTUFVCVDVEVF $.
  $}

  ${
    lmlimxrge0.j $e |- J = ( TopOpen ` ( RR*s |`s ( 0 [,] +oo ) ) ) $.
    lmlimxrge0.f $e |- ( ph -> F : NN --> X ) $.
    lmlimxrge0.p $e |- ( ph -> P e. X ) $.
    lmlimxrge0.x $e |- X C_ ( 0 [,) +oo ) $.
    $( Relate a limit in the nonnegative extended reals to a complex limit,
       provided the considered function is a real function.  (Contributed by
       Thierry Arnoux, 11-Jul-2017.) $)
    lmlimxrge0 $p |- ( ph -> ( F ( ~~>t ` J ) P <-> F ~~> P ) ) $=
      ( cc0 cpnf co cfv crest cxr wcel wss cvv sstri cr cicc cordt ctopon cress
      cxrs ctopn xrge0topn eqtri letopon iccssxr resttopon mp2an eqeltri ccnfld
      cle wceq fvex cico icossicc ovex restabs mp3an oveq1i rge0ssre eqid ax-mp
      xrrest2 3eqtr4i cc ax-resscn lmlim ) ABCDEJKUALZDUOUBMZVLNLZVLUCMZDUEVLUD
      LUFMVNFUGUHZVMOUCMPVLOQVNVOPUIJKUJVLVMOUKULUMGHVNENLZVMENLZDENLUNUFMZENLZ
      VMRPEVLQVLRPVQVRUPUOUBUQEJKURLZVLIJKUSSJKUAUTEVLVMRRVAVBDVNENVPVCETQVTVRU
      PEWATIVDSZEVSVMVSVEVMVEVGVFVHETVIWBVJSVK $.
  $}

  ${
    $d j k x z F $.
    $( Implication of convergence for a nonnegative series.  This could be used
       to shorten ~ prmreclem6 .  (Contributed by Thierry Arnoux,
       28-Jul-2017.) $)
    rge0scvg $p |- ( ( F : NN --> ( 0 [,) +oo ) /\ seq 1 ( + , F ) e. dom ~~> )
      -> sup ( ran seq 1 ( + , F ) , RR , < ) e. RR ) $=
      ( vz vx vj vk cn wf c1 cli wcel wa cr c0 cv cle wbr wral nnuz adantr cfv
      cc0 cpnf cico co caddc cseq cdm crn wss wne wrex csup 1zzd rge0ssre mpan2
      clt fss ffvelrnda serfre frn syl 1nn fdm syl5eleqr dm0rn0 necon3bii sylib
      ne0i climdm biimpi adantl climrecl simpr simplll ffvelrn sylancom elrege0
      3syl sseldi simprbi adantlr climserle ralrimiva wceq breq2 ralbidv rspcev
      syl2anc wb wfn ffn breq1 ralrn rexbidv mpbird suprcl syl3anc ) FUAUBUCUDZ
      AGZUEAHUFZIUGJZKZWTUHZLUIZXCMUJZBNZCNZOPZBXCQZCLUKZXCLUPULLJWSXDXAWSFLWTG
      ZXDWSDAHFRWSUMWSFLDNZAWSWRLUIFLAGUNFWRLAUQUOURUSZFLWTUTVASWSXEXAWSXKHWTUG
      ZJZXEXMXKHFXNVBFLWTVCVDXOXNMUJXEXNHVHXNMXCMWTVEVFVGVRSXBXJENZWTTZXGOPZEFQ
      ZCLUKZXBWTITZLJXQYAOPZEFQZXTXBYAEWTHFRXBUMXAWTYAIPZWSXAYDWTVIVJVKZXBFLXPW
      TWSXKXAXMSURVLXBYBEFXBXPFJZKZYADAHXPFRXBYFVMXBYDYFYESYGXLFJZWSXLATZLJZWSX
      AYFYHVNWSYHKZWRLYIUNFWRXLAVOZVSVPXBYHUAYIOPZYFWSYHYMXAYKYIWRJZYMYLYNYJYMY
      IVQVTVAWAWAWBWCXSYCCYALXGYAWDXRYBEFXGYAXQOWEWFWGWHWSXJXTWIXAWSXIXSCLWSXKW
      TFWJXIXSWIXMFLWTWKXHXRBEFWTXFXQXGOWLWMVRWNSWOCBXCWPWQ $.
  $}

  ${
    $d k F $.  $d k M $.  $d k S $.  $d k ph $.
    fsumcvg4.s $e |- S = ( ZZ>= ` M ) $.
    fsumcvg4.m $e |- ( ph -> M e. ZZ ) $.
    fsumcvg4.c $e |- ( ph -> F : S --> CC ) $.
    fsumcvg4.f $e |- ( ph -> ( `' F " ( CC \ { 0 } ) ) e. Fin ) $.
    $( A serie with finite support is a finite sum, and therefore converges.
       (Contributed by Thierry Arnoux, 6-Sep-2017.)  (Revised by Thierry
       Arnoux, 1-Sep-2019.) $)
    fsumcvg4 $p |- ( ph -> seq M ( + , F ) e. dom ~~> ) $=
      ( vk cc cc0 cdif cima cfv wceq wcel wa a1i cvv cn0 ccnv cv wfun difpreima
      csn wf ffun 3syl difss syl6eqss fimacnv syl sseqtrd wn wo cif exmidd eqid
      wb biantru wne crab csupp co cuz fvex eqeltri 0nn0 ffs2 syl3anc suppvalfn
      wfn ffn eqtr3d eleq2d rabid syl6bb baibd necon2bbid biimprd pm4.71d mpbid
      orbi12d eqif sylibr sselda ffvelrnda syldan fsumcvg3 ) ACUAZJKUEZLZMZIUBZ
      CNZICDBEFHAWMWJJMZBAWMWPWJWKMZLZWPABJCUFZCUCWMWROGBJCUGJWKCUDUHWPWQUIUJAW
      SWPBOGBJCUKULUMZAWNBPZQZWNWMPZWOWOOZQZXCUNZWOKOZQZUOZWOXCWOKUPOXBXCXFUOXI
      XBXCUQXBXCXEXFXHXCXEUSXBXDXCWOURUTRXBXFXGXBXGXFXBXCWOKAXCXAWOKVAZAXCWNXJI
      BVBZPXAXJQAWMXKWNACKVCVDZWMXKABSPZKTPZWSXLWMOXMABDVENSEDVEVFVGRZXNAVHRZGB
      JWLCSTKWLURVIVJACBVLZXMXNXLXKOAWSXQGBJCVMULXOXPICSTBKVKVJVNVOXJIBVPVQVRVS
      VTWAWCWBXCWOWOKWDWEAXCXAWOJPAWMBWNWTWFABJWNCGWGWHWI $.
  $}

  ${
    $d x y A $.  $d y J $.
    pnfneige0.j $e |- J = ( TopOpen ` ( RR*s |`s ( 0 [,] +oo ) ) ) $.
    $( A neighborhood of ` +oo ` contains an unbounded interval based at a real
       number.  See ~ pnfnei .  (Contributed by Thierry Arnoux,
       31-Jul-2017.) $)
    pnfneige0 $p |- ( ( A e. J /\ +oo e. A ) ->
      E. x e. RR ( x (,] +oo ) C_ A ) $=
      ( vy wcel cpnf wa cioc co cc0 cin wss cr wceq cxr a1i cfv ctop cvv cv clt
      wrex wbr cif 0red simpllr ifclda rexr pnfxr iocinif syl3anc ovif syl6reqr
      wn 0xr ad2antlr cicc iocssicc sslin mp1i ssin biimpri simpld ssinss1 3syl
      simpr sstrd eqsstrd oveq1 sseq1d rspcev syl2anc cle cordt letopon iccssxr
      crest ctopon resttopon mp2an topontopi ovex cxrs cress ctopn eqtri eleq2i
      xrge0topn biimpi elrestr letop restabs mp3an syl6eleq wb iocpnfordt inss2
      ssid restopnb syl23anc mpbird adantr 0ltpnf ubioc1 elind pnfnei r19.29a )
      BCFZGBFZHZEUAZGIJZBKGIJZLZMZAUAZGIJZBMZANUCZENXKXLNFZHZXPHZXLKUBUDZKXLUEZ
      NFYEGIJZBMZXTYCYDKXLNYCYDHUFXKYAXPYDUOUGUHYCYFXMXNLZBYAYFYHOXKXPYAYHYDXNX
      MUEZYFYAXLPFKPFZGPFZYHYIOXLUIYJYAUPQYKYAUJQXLKGUKULYDKXLGIUMUNUQYCYHXMKGU
      RJZLZBXNYLMZYHYMMYCKGUSZXNYLXMUTVAYCXPXMBMZYMBMYBXPVGXPYPXMXNMZYPYQHXPXMB
      XNVBVCVDXMYLBVEVFVHVIXSYGAYENXQYEOXRYFBXQYEGIVJVKVLVMXKXOVNVORZFZGXOFXPEN
      UCXIYSXJXIYSXOYRXNVRJZFZXIXOYRYLVRJZXNVRJZYTXIUUBSFZXNTFZBUUBFZXOUUCFUUDX
      IYLUUBYRPVSRFYLPMUUBYLVSRFVPKGVQYLYRPVTWAWBQUUEXIKGIWCQZXIUUFCUUBBCWDYLWE
      JWFRUUBDWIWGWHWJBXNUUBSTWKULYRSFZYNYLTFUUCYTOWLYOKGURWCXNYLYRSTWMWNWOXIUU
      HUUEXNYRFZXNXNMZXOXNMZYSUUAWPUUHXIWLQUUGUUIXIKWQQUUJXIXNWSQUUKXIBXNWRQXNX
      NXOYRTWTXAXBXCXKBXNGXIXJVGGXNFZXKYJYKKGUBUDUULUPUJXDKGXEWNQXFEXOXGVMXH $.
  $}

  ${
    $d a j l x A $.  $d a j k l x F $.  $d a k l x J $.  $d a k l x ph $.
    lmxrge0.j $e |- J = ( TopOpen ` ( RR*s |`s ( 0 [,] +oo ) ) ) $.
    lmxrge0.6 $e |- ( ph -> F : NN --> ( 0 [,] +oo ) ) $.
    lmxrge0.7 $e |- ( ( ph /\ k e. NN ) -> ( F ` k ) = A ) $.
    $( Express "sequence ` F ` converges to plus infinity" (i.e. diverges), for
       a sequence of nonnegative extended real numbers.  (Contributed by
       Thierry Arnoux, 2-Aug-2017.) $)
    lmxrge0 $p |- ( ph -> ( F ( ~~>t ` J ) +oo <-> A. x e. RR E. j e. NN
      A. k e. ( ZZ>= ` j ) x < A ) ) $=
      ( vl cpnf cfv wbr wcel cn cr cc0 wa cxr va clm cv cuz wral wrex wi clt co
      cicc ctopon cle cordt crest cxrs cress ctopn eqid xrstopn resstopn eqtr4i
      wss letopon iccssxr resttopon mp2an eqeltri a1i nnuz 1zzd lmbrf 0xr pnfxr
      c1 0lepnf ubicc2 mp3an biantrur syl6bbr cioc cin rexr ltpnf ubioc1 0ltpnf
      syl3anc jctir elin sylibr ad2antlr ctop cvv letop ovex iocpnfordt elrestr
      inopn wceq inss2 iocssicc sstri sseqin2 incom eqtr3i 3eltr4i eleq2 adantl
      mpbi wb biimprd simp-5r rexrd simpr simp-4r eleqtrd simplbi syl w3a mpan2
      elioc1 biimpa simp2d syl2anc ex ralimdva reximdva raleqdv cbvrexv syl6ibr
      fveq2 imim12d rspcimdv imp mpd ralrimdva simplll simpllr pnfneige0 simplr
      sseldd r19.29r simp-4l uznnssnn ffvelrnda eqeltrrd ad2antrr pnfge biimpar
      jca sseldi syl13anc adantlr syl21anc syl5bi rexlimdva syl5 syl12anc exp31
      expimpd impbid bitrd ) AFLGUBMNZLUAUCZOZCUVCOZEKUCZUDMZUEZKPUFZUGZUAGUEZB
      UCZCUHNZEDUCZUDMZUEZDPUFZBQUEZAUVBLRLUJUIZOZUVKSUVKAUACLKEFGVNUVSPGUVSUKM
      ZOAGULUMMZUVSUNUIZUWAGUOUVSUPUIZUQMUWCHUVSUWDUWBUOUWDURUSUTVAZUWBTUKMOUVS
      TVBUWCUWAOVCRLVDZUVSUWBTVEVFVGVHVIAVJIJVKUVTUVKRTOZLTOZRLULNUVTVLVMVORLVP
      VQVRVSAUVKUVRAUVKUVQBQAUVLQOZSZUVKUVQUWJUVKSLUVLLVTUIZRLVTUIZWAZOZUVQUWIU
      WNAUVKUWILUWKOZLUWLOZSUWNUWIUWOUWPUWIUVLTOZUWHUVLLUHNUWOUVLWBUWHUWIVMVHUV
      LWCUVLLWDWFUWGUWHRLUHNUWPVLVMWERLWDVQWGLUWKUWLWHWIWJUWJUVKUWNUVQUGZUWJUVJ
      UWRUAUWMGUWMGOUWJUWMUVSWAZUWCUWMGUWBWKOZUVSWLOUWMUWBOZUWSUWCOWMRLUJWNUWTU
      WKUWBOUWLUWBOUXAWMUVLWORWOUWKUWLUWBWQVQUWMUVSUWBWKWLWPVQUVSUWMWAZUWMUWSUW
      MUVSVBUXBUWMWRUWMUWLUVSUWKUWLWSRLWTXAUWMUVSXBXHUVSUWMXCXDUWEXEVHUWJUVCUWM
      WRZSZUWNUVDUVIUVQUXDUVDUWNUXCUVDUWNXIUWJUVCUWMLXFXGXJUXDUVIUVMEUVGUEZKPUF
      ZUVQUXDUVHUXEKPUXDUVFPOZSZUVEUVMEUVGUXHEUCZUVGOZSZUVEUVMUXKUVESZUWQCUWKOZ
      UVMUXLUVLAUWIUXCUXGUXJUVEXKXLUXLCUWMOZUXMUXLCUVCUWMUXKUVEXMUWJUXCUXGUXJUV
      EXNXOUXNUXMCUWLOCUWKUWLWHXPXQUWQUXMSCTOZUVMCLULNZUWQUXMUXOUVMUXPXRZUWQUWH
      UXMUXQXIVMUVLLCXTXSZYAYBYCYDYEYFUVPUXEDKPUVNUVFWRUVMEUVOUVGUVNUVFUDYJYGYH
      ZYIYKYLYMYNYDYOAUVRUVJUAGAUVCGOZSZUVRUVDUVIUYAUVRSZUVDSZAUWKUVCVBZBQUFZUV
      RUVIAUXTUVRUVDYPUYCUXTUVDUYEAUXTUVRUVDYQUYBUVDXMBUVCGHYRYCUYAUVRUVDYSAUYE
      UVRSZUVIUYFUYDUVQSZBQUFAUVIUYDUVQBQUUAAUYGUVIBQUWJUYDUVQUVIUVQUXFUWJUYDSZ
      UVIUXSUYHUXEUVHKPUYHUXGSZUVMUVEEUVGUYIUXJSZAUXIPOZSZUWIUYDUVMUVEUGUYJAUYK
      AUWIUYDUXGUXJUUBUYJUVGPUXIUXGUVGPVBUYHUXJUVFUUCWJUYIUXJXMYTUUIAUWIUYDUXGU
      XJXNUWJUYDUXGUXJYQUYLUWISZUYDSZUVMUVEUYNUVMSUWKUVCCUYMUYDUVMYSUYMUVMUXMUY
      DUYMUVMSZUWQUXOUVMUXPUXMUYOUVLUYLUWIUVMYSXLUYLUXOUWIUVMUYLUVSTCUWFUYLUXIF
      MCUVSJAPUVSUXIFIUUDUUEUUJUUFZUYMUVMXMUYOUXOUXPUYPCUUGXQUWQUXMUXQUXRUUHUUK
      UULYTYDUUMYEYFUUNUUSUUOUUPYMUUQUURYOUUTUVA $.
  $}

  ${
    $d j k l x F $.  $d j k l x ph $.
    lmdvg.1 $e |- ( ph -> F : NN --> ( 0 [,) +oo ) ) $.
    lmdvg.2 $e |- ( ( ph /\ k e. NN ) -> ( F ` k ) <_ ( F ` ( k + 1 ) ) ) $.
    lmdvg.3 $e |- ( ph -> -. F e. dom ~~> ) $.
    $( If a monotonic sequence of real numbers diverges, it is unbounded.
       (Contributed by Thierry Arnoux, 4-Aug-2017.) $)
    lmdvg $p |- ( ph
               -> A. x e. RR E. j e. NN A. k e. ( ZZ>= ` j ) x < ( F ` k ) ) $=
      ( vl cfv wbr wral cn cr wcel wa cle co simpr cvv clt cuz wrex cli cdm crn
      cv wn csup c1 nnuz 1zzd wf cc0 cpnf wss rge0ssre fss sylancl adantr caddc
      cico ralrimiva fveq2 oveq1 fveq2d breq12d cbvralv r19.21bi adantlr breq1d
      wceq sylib rexbii climsup nnex fex supex a1i breldmg syl3anc syldan mtand
      ltso ralnex sylibr simplr ltnled rexbidva rexnal syl6bb ralbidva ad2antrr
      ffvelrnda mpbird ad3antrrr uznnssnn ad3antlr ffvelrnd simp-4l simpllr cfz
      sseldd fzssnn cmin simplll syl2anc monoord syl21anc ltletrd reximdva mpd
      ex ) ABUGZDUGZEJZUAKZDCUGZUBJZLZCMUCZBNAXNNOZPZXNXREJZUAKZCMUCZYAAYFBNAYF
      BNLYDXNQKZCMLZUHZBNLZAYHBNUCZUHYJAYKEUDUEOZHAYKEEUFZNUAUIZUDKZYLAYKPZBIEU
      JMUKYPULAMNEUMZYKAMUNUOVBRZEUMZYRNUPYQFUQMYRNEURUSZUTAIUGZMOZUUAEJZUUAUJV
      ARZEJZQKZYKAUUFIMAXPXOUJVARZEJZQKZDMLUUFIMLAUUIDMGVCUUIUUFDIMXOUUAVLZXPUU
      CUUHUUEQXOUUAEVDUUJUUGUUDEXOUUAUJVAVEVFVGVHVMVIZVJYPYKUUCXNQKZIMLZBNUCAYK
      SYHUUMBNYGUULCIMXRUUAVLYDUUCXNQXRUUAEVDVKVHVNVMVOAYOPZETOZYNTOZYOYLAUUOYO
      AYSMTOUUOFVPMYRTEVQUSUTUUPUUNNYMUAWDVRVSAYOSEYNTTUDVTWAWBWCYHBNWEWFAYFYIB
      NYCYFYGUHZCMUCYIYCYEUUQCMYCXRMOZPZXNYDAYBUURWGZYCMNXREAYQYBYTUTZWNZWHWIYG
      CMWJWKWLWOVIYCYEXTCMUUSYEXTUUSYEPZXQDXSUVCXOXSOZPZXNYDXPUUSYBYEUVDUUTWMUU
      SYDNOYEUVDUVBWMUVEMNXOEYCYQUURYEUVDUVAWPUVEXSMXOUURXSMUPYCYEUVDXRWQWRUVCU
      VDSZXCWSUUSYEUVDWGUVEAUURUVDYDXPQKAYBUURYEUVDWTYCUURYEUVDXAUVFAUURPZUVDPZ
      IEXRXOUVGUVDSUVHUUAXRXOXBRZOZPZMNUUAEAYQUURUVDUVJYTWPUVKUVIMUUAUURUVIMUPA
      UVDUVJXRXOXDWRUVHUVJSXCWSUVHUUAXRXOUJXERZXBRZOZPZAUUBUUFAUURUVDUVNXFUVOUV
      MMUUAUURUVMMUPAUVDUVNXRUVLXDWRUVHUVNSXCUUKXGXHXIXJVCXMXKXLVC $.
  $}

  ${
    $d j k x F $.  $d k x J $.  $d j k x ph $.
    lmdvglim.j $e |- J = ( TopOpen ` ( RR*s |`s ( 0 [,] +oo ) ) ) $.
    lmdvglim.1 $e |- ( ph -> F : NN --> ( 0 [,) +oo ) ) $.
    lmdvglim.2 $e |- ( ( ph /\ k e. NN ) -> ( F ` k ) <_ ( F ` ( k + 1 ) ) ) $.
    lmdvglim.3 $e |- ( ph -> -. F e. dom ~~> ) $.
    $( If a monotonic real number sequence ` F ` diverges, it converges in the
       extended real numbers and its limit is plus infinity.  (Contributed by
       Thierry Arnoux, 3-Aug-2017.) $)
    lmdvglim $p |- ( ph -> F ( ~~>t ` J ) +oo ) $=
      ( vx vj cpnf clm cfv wbr cv wral cn cc0 co wf clt wrex cr lmdvg cico cicc
      cuz wss icossicc fss sylancl wcel wa eqidd lmxrge0 mpbird ) ACKDLMNIOBOZC
      MZUANBJOUGMPJQUBIUCPAIJBCFGHUDAIURJBCDEAQRKUESZCTUSRKUFSZUHQUTCTFRKUIQUSU
      TCUJUKAUQQULUMURUNUOUP $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Univariate polynomials
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d h E $.  $d h F $.  $d f g h x y z J $.  $d f g h x y z K $.
    $d f g h x y z R $.  $d f g x ph $.
    pl1cn.p $e |- P = ( Poly1 ` R ) $.
    pl1cn.e $e |- E = ( eval1 ` R ) $.
    pl1cn.b $e |- B = ( Base ` P ) $.
    pl1cn.k $e |- K = ( Base ` R ) $.
    pl1cn.j $e |- J = ( TopOpen ` R ) $.
    pl1cn.1 $e |- ( ph -> R e. CRing ) $.
    pl1cn.2 $e |- ( ph -> R e. TopRing ) $.
    pl1cn.3 $e |- ( ph -> F e. B ) $.
    $( TODO - maybe a bit shorter with ~ cnmpt1mulr and ~ cnmpt1plusg $)
    $( A univariate polynomial is continuous.  (Contributed by Thierry Arnoux,
       17-Sep-2018.) $)
    pl1cn $p |- ( ph -> ( E ` F ) e. ( J Cn J ) ) $=
      ( vx co wcel cfv vh vf vg vy vz ccn csn cxp cid cres cplusg cof cmulr ce1
      cv crn eqid wa w3a cmpt cvv cbs fvex eqeltri a1i fvexd cuni wceq simp1 wf
      wfn cnf ffn 3ad2ant2 dffn5 ctopon ctrg ctgp trgtgp tgptopon 3syl toponuni
      syl fneq2d syl5rbbr biimpa syl2anc 3ad2ant3 3ad2ant1 simp2 eqeltrrd simp3
      offval2 cmpt2 ctx cplusf plusffval tgpcn syl5eqelr oveq12 cnmpt12 eqeltrd
      3adant2l 3adant3l 3expb cmgp mgpbas mgpplusg mulrcn eleq1 adantr cnconst2
      simpr syl3anc idcn ccrg cpws crh evl1rhm rhmf dffn3 biimpi ffvelrnd rneqi
      4syl syl6eleq pf1ind ) AUAUOZGGUFRZSHUBUOZUGUHZYISZUIHUJZYISZYJYISZUCUOZY
      ISZYJYPDUKTZULRZYISZYJYPDUMTZULRZYISZFETZYISUAUUDHYRDUNTZUPZDUUAUBUCLYRUQ
      ZUUAUQZUUFUQAYJUUFSZYOURZYPUUFSZYQURZYTAUUJYQYTUUKAYOYQYTUUIAYOYQUSZYSQHQ
      UOZYJTZUUNYPTZYRRZUTYIUUMQHUUOUUPYRYJYPVAVAVAHVASUUMHDVBTVALDVBVCVDVEZUUM
      UUNHSURZUUNYJVFZUUSUUNYPVFZUUMAYJGVGZVKZYJQHUUOUTZVHZAYOYQVIZYOAUVCYQYOUV
      BUVBYJVJUVCYJGGUVBUVBUVBUQZUVGVLUVBUVBYJVMWCVNAUVCUVEUVEYJHVKAUVCQHYJVOAH
      UVBYJAGHVPTSZHUVBVHADVQSZDVRSZUVHODVSZDGHMLVTWAZHGWBWCZWDWEWFWGZUUMAYPUVB
      VKZYPQHUUPUTZVHZUVFYQAUVOYOYQUVBUVBYPVJUVOYPGGUVBUVBUVGUVGVLUVBUVBYPVMWCW
      HAUVOUVQUVQYPHVKAUVOQHYPVOAHUVBYPUVMWDWEWFWGZWMUUMQUDUEUUOUUPUDUOZUEUOZYR
      RZUUQGGGGHHHAYOUVHYQUVLWIZUUMYJUVDYIUVNAYOYQWJWKZUUMYPUVPYIUVRAYOYQWLWKZU
      WBUWBAYOUDUEHHUWAWNZGGWORGUFRZSYQAUWEDWPTZUWFUDUEHYRUWGDLUUGUWGUQZWQAUVIU
      VJUWGUWFSOUVKUWGDGMUWHWRWAWSWIUVSUUOUVTUUPYRWTXAXBXCXDXEAUUJUULUUCAUUJYQU
      UCUUKAYOYQUUCUUIUUMUUBQHUUOUUPUUARZUTYIUUMQHUUOUUPUUAYJYPVAVAVAUURUUTUVAU
      VNUVRWMUUMQUDUEUUOUUPUVSUVTUUARZUWIGGGGHHHUWBUWCUWDUWBUWBAYOUDUEHHUWJWNZU
      WFSYQAUWKDXFTZWPTZUWFUDUEHUUAUWMUWLHDUWLUWLUQZLXGDUUAUWLUWNUUHXHUWMUQZWQA
      UVIUWMUWFSODUWMGMUWOXIWCWSWIUVSUUOUVTUUPUUAWTXAXBXCXDXEYHYKYIXJYHYMYIXJYH
      YJYIXJYHYPYIXJYHYSYIXJYHUUBYIXJYHUUDYIXJAYJHSZURUVHUVHUWPYLAUVHUWPUVLXKZU
      WQAUWPXMYJGGHHXLXNAUVHYNUVLGHXOWCAUUDEUPZUUFABUWRFEADXPSZBUWREVJZNUWSECDH
      XQRZXRRSBUXAVBTZEVJEBVKZUWTHCDUXAEJIUXAUQLXSBUXBCUXAEKUXBUQXTBUXBEVMUXCUW
      TBEYAYBYEWCPYCEUUEJYDYFYG $.
  $}
$( End $[ set-mbox-ta-algtop.mm $] $)


$( Begin $[ set-mbox-ta-ucm.mm $] $)
$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Uniform Stuctures and Spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Hausdorff uniform completion
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c HCmp $. $( The Hausdorff uniform completion relation. $)

  $( Extend class notation with the Hausdorff uniform completion relation. $)
  chcmp $a class HCmp $.

  ${
    $d u w $.
    $( Nota: despite unicity, this definition will not yield a function, since
       only 3 components of the structure are fixed. ( Base o. HCmp ) shall be
       a function, though. $)
    $( Definition of the Hausdorff completion.  In this definition, a structure
       ` w ` is a Hausdorff completion of a uniform structure ` u ` if ` w ` is
       a complete uniform space, in which ` u ` is dense, and which admits the
       same uniform structure.  Theorem 3 of [BourbakiTop1] p.  II.21. states
       the existence and unicity of such a completion.  (Contributed by Thierry
       Arnoux, 5-Mar-2018.) $)
    df-hcmp $a |- HCmp = { <. u , w >. | ( ( u e. U. ran UnifOn /\ w e. CUnifSp
      ) /\ ( ( UnifSt ` w ) |`t dom U. u ) = u
        /\ ( ( cls ` ( TopOpen ` w ) ) ` dom U. u ) = ( Base ` w ) ) } $.
  $}
$( End $[ set-mbox-ta-ucm.mm $] $)


$( Begin $[ set-mbox-ta-rrhom.mm $] $)
$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Topology and algebraic structures
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The norm on the ring of the integer numbers
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( The norm (function) for a ring of integers is the absolute value function
     (restricted to the integers).  (Contributed by AV, 13-Jun-2019.) $)
  zringnm $p |- ( norm ` ZZring ) = ( abs |` ZZ ) $=
    ( ccnfld cmnd wcel cc0 cz cc wss zring cnm cfv cabs cres crg cnring ringmnd
    wceq ax-mp 0z zsscn w3a df-zring cnfldbas cnfld0 cnfldnm ressnm eqcomd
    mp3an ) ABCZDECZEFGZHIJZKELZPAMCUHNAOQRSUHUIUJTULUKEFAHKDUAUBUCUDUEUFUG $.

  $( The norm of the ring of the integers.  (Contributed by Thierry Arnoux,
     8-Nov-2017.)  (Revised by AV, 13-Jun-2019.) $)
  zzsnm $p |- ( M e. ZZ -> ( abs ` M ) = ( ( norm ` ZZring ) ` M ) ) $=
    ( cz wcel zring cnm cfv cabs cres zringnm eqcomi fveq1i fvres syl5reqr ) AB
    CADEFZFAGBHZFAGFAONNOIJKABGLM $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Topological ` ZZ ` -modules
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    zlmlem2.1 $e |- W = ( ZMod ` G ) $.

    ${
      $d x y G $.  $d x y W $.
      zlm0.1 $e |- .0. = ( 0g ` G ) $.
      $( Zero of a ` ZZ ` -module.  (Contributed by Thierry Arnoux,
         8-Nov-2017.) $)
      zlm0 $p |- .0. = ( 0g ` W ) $=
        ( vx vy c0g cfv wceq wtru cbs eqid a1i zlmbas cv wcel cplusg zlmplusg
        wa oveqd grpidpropd trud eqtri ) CAHIZBHIZEUEUFJKFGALIZABUGUGJKUGMZNUGB
        LIJKUGABDUHONKFPZUGQGPZUGQTTZARIZBRIZUIUJULUMJUKULABDULMSNUAUBUCUD $.
    $}

    ${
      $d x y G $.  $d x y W $.
      zlm1.1 $e |- .1. = ( 1r ` G ) $.
      $( Unit of a ` ZZ ` -module (if present).  (Contributed by Thierry
         Arnoux, 8-Nov-2017.) $)
      zlm1 $p |- .1. = ( 1r ` W ) $=
        ( vx vy cur cfv wceq wtru cbs eqid a1i zlmbas cv wcel wa cmulr zlmmulr
        oveqd rngidpropd trud eqtri ) ABHIZCHIZEUEUFJKFGBLIZBCUGUGJKUGMZNUGCLIJ
        KUGBCDUHONKFPZUGQGPZUGQRRZBSIZCSIZUIUJULUMJUKULBCDULMTNUAUBUCUD $.
    $}

    ${
      zlmds.1 $e |- D = ( dist ` G ) $.
      $( Distance in a ` ZZ ` -module (if present).  (Contributed by Thierry
         Arnoux, 8-Nov-2017.) $)
      zlmds $p |- ( G e. V -> D = ( dist ` W ) ) $=
        ( cds cfv cnx zring cop csts co dsid wne c1 c2 c5 1nn c6 wcel cvsca cmg
        csca eqid zlmval fveq2d cdc 2nn0 5nn0 5lt10 declti gtneii dsndx neeq12i
        5re scandx mpbir setsnid 6re 6nn0 6lt10 vscandx eqtri syl6eqr syl6reqr
        ) BCUAZDGHZBGHZAVGVHBIUDHZJKLMZIUBHZBUCHZKLMZGHZVIVGDVNGVMBCDEVMUEUFUGV
        IVKGHVOJVJGBNIGHZVJOPQUHZRORVQUPPQRSUIUJUKULUMVPVQVJRUNUQUOURUSVMVLGVKN
        VPVLOVQTOTVQUTPQTSUIVAVBULUMVPVQVLTUNVCUOURUSVDVEFVF $.
    $}

    ${
      zlmtset.1 $e |- J = ( TopSet ` G ) $.
      $( Topology in a ` ZZ ` -module (if present).  (Contributed by Thierry
         Arnoux, 8-Nov-2017.) $)
      zlmtset $p |- ( G e. V -> J = ( TopSet ` W ) ) $=
        ( cts cfv cnx zring cop csts co tsetid wne c9 c5 gtneii tsetndx c6 wcel
        csca cvsca cmg eqid zlmval fveq2d 5re 5lt9 scandx neeq12i mpbir setsnid
        6re 6lt9 vscandx 3eqtri syl6reqr ) ACUAZDGHAIUBHZJKLMZIUCHZAUDHZKLMZGHZ
        BUSDVDGVCACDEVCUEUFUGBAGHVAGHVEFJUTGANIGHZUTOPQOQPUHUIRVFPUTQSUJUKULUMV
        CVBGVANVFVBOPTOTPUNUORVFPVBTSUPUKULUMUQUR $.
    $}

    ${
      zlmnm.1 $e |- N = ( norm ` G ) $.
      $( Norm of a ` ZZ ` -module (if present).  (Contributed by Thierry
         Arnoux, 8-Nov-2017.) $)
      zlmnm $p |- ( G e. V -> N = ( norm ` W ) ) $=
        ( wcel cnm cfv cbs wceq zlmbas a1i cplusg zlmplusg zlmds nmpropd syl5eq
        eqid cds ) ACGZBAHIDHIFUAADAJIZDJIKUAUBADEUBSLMANIZDNIKUAUCADEUCSOMATIZ
        ACDEUDSPQR $.
    $}

    ${
      $d x y G $.  $d x y W $.
      $( The ` ZZ ` -module built from a normed ring is also a normed ring.
         (Contributed by Thierry Arnoux, 8-Nov-2017.) $)
      zhmnrg $p |- ( G e. NrmRing -> W e. NrmRing ) $=
        ( vx vy cnrg wcel cngp cnm cfv cabv cgrp cmt csg ccom cds wceq eqid a1i
        wa wss w3a cbs zlmbas cplusg zlmplusg oveqdr grppropd cxp zlmds reseq1d
        cts zlmtset topnpropd mspropd zlmnm grpsubpropd coeq12d 3anbi123d isngp
        cv sseq12d 3bitr4g cmulr zlmmulr abvpropd2 eleq12d anbi12d isnrg ibi )
        AFGZBFGZVKAHGZAIJZAKJZGZTBHGZBIJZBKJZGZTVKVLVKVMVQVPVTVKALGZAMGZVNANJZO
        ZAPJZUAZUBBLGZBMGZVRBNJZOZBPJZUAZUBVMVQVKWAWGWBWHWFWLVKDEAUCJZABWMWMQVK
        WMRZSZWMBUCJQVKWMABCWNUDSZVKDVAWMGEVAWMGTDEAUEJZBUEJZWQWRQVKWQABCWQRUFS
        ZUGUHVKWMABWOWPVKWEWKWMWMUIWEAFBCWERZUJZUKVKABWPAAULJZFBCXBRUMUNUOVKWDW
        JWEWKVKVNVRWCWIAVNFBCVNRZUPZVKABWPWSUQURXAVBUSWEAWCVNXCWCRWTUTWKBWIVRVR
        RZWIRWKRUTVCVKVNVRVOVSXDVKABWPWSAVDJZBVDJQVKXFABCXFRVESVFVGVHVOAVNXCVOR
        VIVSBVRXEVSRVIVCVJ $.
    $}
  $}

  ${
    nmmulg.x $e |- B = ( Base ` R ) $.
    nmmulg.n $e |- N = ( norm ` R ) $.
    nmmulg.z $e |- Z = ( ZMod ` R ) $.
    ${
      nmmulg.t $e |- .x. = ( .g ` R ) $.
      $( The norm of a group product, provided the ` ZZ ` -module is normed.
         (Contributed by Thierry Arnoux, 8-Nov-2017.) $)
      nmmulg $p |- ( ( Z e. NrmMod /\ M e. ZZ /\ X e. B ) ->
        ( N ` ( M .x. X ) ) = ( ( abs ` M ) x. ( N ` X ) ) ) $=
        ( wcel cz co cnm cfv cmul wceq zring eqid cnlm csca cabs simp2 zringbas
        w3a cbs cabl clmod nlmlmod zlmlmod sylibr 3ad2ant1 zlmsca fveq2d syl5eq
        syl eleqtrd zlmbas zlmvsca syld3an2 zlmnm fveq1d zzsnm 3ad2ant2 oveq12d
        nmvs eqtrd 3eqtr4d ) GUALZDMLZFALZUFZDFCNZGOPZPZDGUBPZOPZPZFVOPZQNZVNEP
        DUCPZFEPZQNVJDVQUGPZLVKVLVPWARVMDMWDVJVKVLUDVMMSUGPWDUEVMSVQUGVMBUHLZSV
        QRVJVKWEVLVJGUILWEGUJBGJUKULUMZBUHGJUNUQZUOUPURVRCVQWDVOAGDFABGJHUSVOTC
        BGJKUTVQTWDTVRTVGVAVMVNEVOVMWEEVORWFBEUHGJIVBUQZVCVMWBVSWCVTQVMWBDSOPZP
        ZVSVKVJWBWJRVLDVDVEVMDWIVRVMSVQOWGUOVCVHVMFEVOWHVCVFVI $.
    $}

    ${
      zrhnm.1 $e |- L = ( ZRHom ` R ) $.
      $( The norm of the image by ` ZRHom ` of an integer in a normed ring.
         (Contributed by Thierry Arnoux, 8-Nov-2017.) $)
      zrhnm $p |- ( ( ( Z e. NrmMod /\ Z e. NrmRing /\ R e. NzRing )
                           /\ M e. ZZ ) -> ( N ` ( L ` M ) ) = ( abs ` M ) ) $=
        ( wcel cnzr wa cfv c1 cmul co wceq syl eqid cnlm cnrg w3a cz cur simpl3
        cabs cmg crg nzrring simpr zrhmulg fveq2d syl2anc simpl1 nmmulg syl3anc
        ringidcl cnm zlmnm fveq1d simpl2 c0g wne nzrnz zlm1 zlm0 isnzr sylanbrc
        nrgring nm1 eqtrd oveq2d 3eqtrd cc zcnd abscl recnd mulid1 3syl ) FUAKZ
        FUBKZBLKZUCZDUDKZMZDCNZENZDUGNZOPQZWIWFWHDBUENZBUHNZQZENZWIWKENZPQZWJWF
        BUIKZWEWHWNRWFWCWQWAWBWCWEUFZBUJSZWDWEUKZWQWEMWGWMEBWLWKCDJWLTZWKTZULUM
        UNWFWAWEWKAKZWNWPRWAWBWCWEUOWTWFWQXCWSABWKGXBURSABWLDEWKFGHIXAUPUQWFWOO
        WIPWFWOWKFUSNZNZOWFWKEXDWFWCEXDRWRBELFIHUTSVAWFWBFLKZXEORWAWBWCWEVBZWFF
        UIKZWKBVCNZVDZXFWFWBXHXGFVJSWFWCXJWRBWKXIXBXITZVESFWKXIWKBFIXBVFZBFXIIX
        KVGVHVIFWKXDXDTXLVKUNVLVMVNWFDVOKZWIVOKWJWIRWFDWTVPXMWIDVQVRWIVSVTVL $.
    $}
  $}

  ${
    $d x z $.
    $( The ` ZZ ` -module of ` CC ` is a normed module.  (Contributed by
       Thierry Arnoux, 25-Feb-2018.) $)
    cnzh $p |- ( ZMod ` CCfld ) e. NrmMod $=
      ( vz vx ccnfld wcel zring cnrg cv co cabs cz cmul wceq cc wral cnnrg eqid
      cfv mp2b cvv cnm czlm cnlm cngp clmod w3a cmg cres zhmnrg nrgngp cabl crg
      nrgring ringabl zlmlmod mpbi zringnrg 3pm3.2i wa simpl zcnd simpr absmuld
      cnfldmulg fveq2d fvres adantr oveq1d 3eqtr4d rgen2 zlmbas cnfldex cnfldnm
      cnfldbas zlmnm ax-mp zlmvsca csca zlmsca zringbas zringnm eqcomi mpbir2an
      isnlm ) CUAQZUBDWDUCDZWDUDDZEFDZUEAGZBGZCUFQZHZIQZWHIJUGZQZWIIQZKHZLZBMNA
      JNWEWFWGCFDZWDFDWEOCWDWDPZUHWDUIRCUJDZWFWRCUKDWTOCULCUMRCWDWSUNUOUPUQWQAB
      JMWHJDZWIMDZURZWHWIKHZIQWHIQZWOKHWLWPXCWHWIXCWHXAXBUSUTXAXBVAVBXCWKXDIWHW
      IVCVDXCWNXEWOKXAWNXELXBWHJIVEVFVGVHVIABWMWJEJIMWDMCWDWSVMVJCSDZIWDTQLVKCI
      SWDWSVLVNVOWJCWDWSWJPVPXFEWDVQQLVKCSWDWSVRVOVSETQWMVTWAWCWB $.

    $( The ` ZZ ` -module of ` RR ` is a normed module.  (Contributed by
       Thierry Arnoux, 14-Feb-2018.) $)
    rezh $p |- ( ZMod ` RRfld ) e. NrmMod $=
      ( vz vx crefld cfv wcel zring cnrg co cabs cmul wceq ccnfld df-refld eqid
      cr cz ax-mp cc fvres cvv czlm cnlm cngp clmod w3a cvsca cres csubrg cnnrg
      cv wral cdr resubdrg simpli subrgnrg mp2an zhmnrg nrgngp mp2b crg nrgring
      cabl ringabl zlmlmod mpbi zringnrg 3pm3.2i simpl zcnd simpr recnd absmuld
      wa csubg subrgsubg zlmvsca eqcomi subgmulg mp3an1 cnfldmulg syldan eqtr3d
      cmg fveq2d zre remulcl syl sylan eqtrd oveqan12d 3eqtr4d rgen2 rebase cnm
      zlmbas ccusp recusp elexi cmnd cc0 wss cnring ringmnd 0re cnfldbas cnfld0
      ax-resscn cnfldnm ressnm mp3an zlmnm csca zringbas zringnm isnlm mpbir2an
      zlmsca ) CUADZUBEXRUCEZXRUDEZFGEZUEAUJZBUJZXRUFDZHZIOUGZDZYBIPUGZDZYCYFDZ
      JHZKZBOUKAPUKXSXTYACGEZXRGEXSLGEOLUHDEZYMUIYNCULEUMUNZOLCMUOUPZCXRXRNZUQX
      RURUSCVBEZXTYMCUTEYRYPCVACVCUSCXRYQVDVEVFVGYLABPOYBPEZYCOEZVMZYBYCJHZIDZY
      BIDZYCIDZJHYGYKUUAYBYCUUAYBYSYTVHVIUUAYCYSYTVJVKZVLUUAYGUUBYFDZUUCUUAYEUU
      BYFUUAYBYCLWCDZHZYEUUBOLVNDEZYSYTUUIYEKYNUUJYOOLVOQOYDUUHLCYBYCUUHNMCWCDZ
      YDUUKCXRYQUUKNVPVQVRVSYSYTYCREUUIUUBKUUFYBYCVTWAWBWDYSYBOEZYTUUGUUCKZYBWE
      UULYTVMUUBOEUUMYBYCWFUUBOISWGWHWIYSYTYIUUDYJUUEJYBPISYCOISWJWKWLABYHYDFPY
      FOXROCXRYQWMWOCTEZYFXRWNDKCWPWQWRZCYFTXRYQLWSEZWTOEORXAYFCWNDKLUTEUUPXBLX
      CQXDXGORLCIWTMXEXFXHXIXJXKQYDNUUNFXRXLDKUUOCTXRYQXQQXMFWNDYHXNVQXOXP $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Canonical embedding of the field of the rational numbers into a division ring
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c QQHom $.

  $( Map the rationals into a field. $)
  cqqh $a class QQHom $.

  ${
    $d r x y $.
    $( Define the canonical homomorphism from the rationals into any field.
       (Contributed by Mario Carneiro, 22-Oct-2017.)  (Revised by Thierry
       Arnoux, 23-Oct-2017.) $)
    df-qqh $a |- QQHom = ( r e. _V |-> ran ( x e. ZZ , y e.
      ( `' ( ZRHom ` r ) " ( Unit ` r ) ) |-> <. ( x / y ) ,
      ( ( ( ZRHom ` r ) ` x ) ( /r ` r ) ( ( ZRHom ` r ) ` y ) ) >. ) ) $.
  $}

  ${
    $d f x y R $.  $d f ./ $.  $d f y L $.
    qqhval.1 $e |- ./ = ( /r ` R ) $.
    qqhval.2 $e |- .1. = ( 1r ` R ) $.
    qqhval.3 $e |- L = ( ZRHom ` R ) $.
    $( Value of the canonical homormorphism from the rational number to a
       field.  (Contributed by Thierry Arnoux, 22-Oct-2017.) $)
    qqhval $p |- ( R e. _V -> ( QQHom ` R ) =
      ran ( x e. ZZ , y e. ( `' L " ( Unit ` R ) ) |->
        <. ( x / y ) , ( ( L ` x ) ./ ( L ` y ) ) >. ) ) $=
      ( vf cz cv czrh cfv ccnv cui co cdvr cvv fveq2 cima cdiv cmpt2 cqqh eqidd
      cop wceq syl6eqr cnveqd imaeq12d fveq1d oveq123d opeq2d mpt2eq123dv rneqd
      crn df-qqh zex wcel fvex eqeltri cnvex imaexg ax-mp mpt2ex rnex fvmpt ) J
      DABKJLZMNZOZVHPNZUAZALZBLZUBQZVMVINZVNVINZVHRNZQZUFZUCZUPABKFOZDPNZUAZVOV
      MFNZVNFNZCQZUFZUCZUPSUDVHDUGZWAWIWJABKVLVTKWDWHWJKUEWJVJWBVKWCWJVIFWJVIDM
      NZFVHDMTIUHZUIVHDPTUJWJVSWGVOWJVPWEVQWFVRCWJVRDRNCVHDRTGUHWJVMVIFWLUKWJVN
      VIFWLUKULUMUNUOABJUQWIABKWDWHURWBSUSWDSUSFFWKSIDMUTVAVBWBWCSVCVDVEVFVG $.
  $}

  ${
    zrhker.0 $e |- B = ( Base ` R ) $.
    zrhker.1 $e |- L = ( ZRHom ` R ) $.
    zrhker.2 $e |- .0. = ( 0g ` R ) $.
    $( The kernel of the homomorphism from the integers to a ring, if it is
       injective.  (Contributed by Thierry Arnoux, 26-Oct-2017.) $)
    zrhf1ker $p |- ( R e. Ring ->
       ( L : ZZ -1-1-> B <-> ( `' L " { .0. } ) = { 0 } ) ) $=
      ( crg wcel zring crh co cz wf1 ccnv csn cima cc0 wceq wb zrhrhm zringbas
      zring0 kerf1hrm syl ) BHICJBKLIMACNCODPQRPSTBCFUAMAJBCRDUBEUCGUDUE $.

    $d x B $.  $d x R $.
    $( The kernel of the homomorphism from the integers to a ring is injective
       if and only if the ring has characteristic 0 .  (Contributed by Thierry
       Arnoux, 8-Nov-2017.) $)
    zrhchr $p |- ( R e. Ring -> ( ( chr ` R ) = 0 <-> L : ZZ -1-1-> B ) ) $=
      ( vx crg wcel cz wf1 cv cur cfv cmg cc0 wceq wb eqid co cmpt cchr zrhval2
      cod f1eq1 syl cgrp ringgrp ringidcl odf1 syl2anc chrval eqeq1i 3bitr2rd
      a1i ) BIJZKACLZKAHKHMBNOZBPOZUAUBZLZUSBUEOZOZQRZBUCOZQRZUQCVARURVBSBUTUSH
      CFUTTZUSTZUDKACVAUFUGUQBUHJUSAJVEVBSBUIABUSEVIUJHUSUTVABVCAEVCTZVHVATUKUL
      VEVGSUQVDVFQVFBUSVCVJVIVFTUMUNUPUO $.

    $( The kernel of the homomorphism from the integers to a ring with
       characteristic 0.  (Contributed by Thierry Arnoux, 8-Nov-2017.) $)
    zrhker $p |- ( R e. Ring ->
       ( ( chr ` R ) = 0 <-> ( `' L " { .0. } ) = { 0 } ) ) $=
      ( crg wcel cchr cfv cc0 wceq cz wf1 ccnv csn cima zrhchr zrhf1ker bitrd )
      BHIBJKLMNACOCPDQRLQMABCDEFGSABCDEFGTUA $.

    $( The preimage by ` ZRHom ` of the unit of a division ring is
       ` ( ZZ \ { 0 } ) ` .  (Contributed by Thierry Arnoux, 22-Oct-2017.) $)
    zrhunitpreima $p |- ( ( R e. DivRing /\ ( chr ` R ) = 0 )
      -> ( `' L " ( Unit ` R ) ) = ( ZZ \ { 0 } ) ) $=
      ( cdr wcel cfv cc0 wceq cima csn cdif cz eqid adantr zring 3syl cchr ccnv
      wa cui c0g crg isdrng simprbi imaeq2d wfun drngring co wf zrhrhm zringbas
      crh rhmf ffun difpreima fimacnv 4syl zrhker biimpa sylan difeq12d 3eqtrd
      ) BHIZBUAJKLZUCZCUBZBUDJZMZVJABUEJZNZOZMZVJAMZVJVNMZOZPKNZOVGVLVPLVHVGVKV
      OVJVGBUFIZVKVOLABVKVMEVKQVMQZUGUHUIRVGVPVSLZVHVGWACUJZWCBUKZWACSBUPULIZPA
      CUMZWDBCFUNZPASBCUOEUQZPACURTAVNCUSTRVIVQPVRVTVGVQPLZVHVGWAWFWGWJWEWHWIPA
      CUTVARVGWAVHVRVTLZWEWAVHWKABCVMEFWBVBVCVDVEVF $.

    $( Condition for the image by ` ZRHom ` to be a unit.  (Contributed by
       Thierry Arnoux, 30-Oct-2017.) $)
    elzrhunit $p |- ( ( ( R e. DivRing /\ ( chr ` R ) = 0 )
      /\ ( M e. ZZ /\ M =/= 0 ) ) -> ( L ` M ) e. ( Unit ` R ) ) $=
      ( cdr wcel cchr cfv cc0 wceq wa cz wne wfn zring 3syl ccnv cui crg simpll
      cima drngring crh co wf zrhrhm zringbas rhmf ffn csn cdif simprl wn elsng
      necon3bbid biimpar adantl eldifd zrhunitpreima eleqtrrd elpreima simplbda
      adantr syl2anc ) BIJZBKLMNZOZDPJZDMQZOZOZCPRZDCUABUBLZUEZJZDCLVQJZVOVIBUC
      JZVPVIVJVNUDBUFWACSBUGUHJPACUIVPBCGUJPASBCUKFULPACUMTTVODPMUNZUOZVRVODPWB
      VKVLVMUPVNDWBJZUQZVKVLWEVMVLWDDMDMPURUSUTVAVBVKVRWCNVNABCEFGHVCVGVDVPVSVL
      VTPDVQCVEVFVH $.
  $}

  $( Lemma for ~ qqhval2 .  (Contributed by Thierry Arnoux, 29-Oct-2017.) $)
  elzdif0 $p |- ( M e. ( ZZ \ { 0 } ) -> ( M e. NN \/ -u M e. NN ) ) $=
    ( cz cc0 csn cdif wcel wceq wn cn cneg wo eldifi eldifn elsng notbid biimpa
    syl2anc w3o cr sylib wa elz simprd 3orass orel1 sylc ) ABCDZEFZACGZHZUIAIFZ
    AJIFZKZKZUMUHABFZAUGFZHZUJABUGLZABUGMUOUQUJUOUPUIACBNOPQUHUIUKULRZUNUHASFZU
    SUHUOUTUSUAURAUBTUCUIUKULUDTUIUMUEUF $.

  ${
    qqhval2.0 $e |- B = ( Base ` R ) $.
    qqhval2.1 $e |- ./ = ( /r ` R ) $.
    qqhval2.2 $e |- L = ( ZRHom ` R ) $.
    $( Lemma for ~ qqhval2 .  (Contributed by Thierry Arnoux, 29-Oct-2017.) $)
    qqhval2lem $p |- ( ( ( R e. DivRing /\ ( chr ` R ) = 0 )
      /\ ( X e. ZZ /\ Y e. ZZ /\ Y =/= 0 ) )
         -> ( ( L ` ( numer ` ( X / Y ) ) ) ./ ( L ` ( denom ` ( X / Y ) ) ) )
         = ( ( L ` X ) ./ ( L ` Y ) ) ) $=
      ( wcel cfv cc0 wceq wa cz co cmul zring wn fveq2d cdr cchr wne w3a cnumer
      cgcd cdiv cdenom crh cui crg drngring zrhrhm ad2antrr cdvds simpr1 simpr2
      syl wbr gcdcld simpr3 gcdeq0 simplbda ex necon3d syl21anc gcddvds syl2anc
      nn0zd imp simpld dvdsval2 biimpa syl31anc simprd c0g wf zringbas ffvelrnd
      rhmf wfn ccnv csn cima ffn zcnd ovex elsn necon3bbii sylibr simplr zrhker
      divne0d eqid neleqtrrd elpreima baibd biimprd con3dimp sylib wb mpbir2and
      fvex drngunit zringmulr rhmdvd syl132anc cn cneg divnumden eqcomd oveq12d
      sylan c1 adantr mulm1d neg1cn a1i mulcomd eqtr3d simpr divnumden2 syl3anc
      1zzd znegcld cabs neg1z ax-1cn absnegi eqtri zringunit mpbir2an elrhmunit
      cc abs1 3eqtr4rd wo simp3 neneqd divcan1d w3o simp2 elz 3orass orel1 sylc
      cr adantl mpjaodan 3eqtr3d ) CUAJZCUBKLMZNZEOJZFOJZFLUCZUDZNZEEFUFPZUGPZD
      KZFUUSUGPZDKZBPZUUTUUSQPZDKZUVBUUSQPZDKZBPZEFUGPZUEKZDKZUVJUHKZDKZBPZEDKZ
      FDKZBPUURDRCUIPJZUUTOJZUVBOJZUUSOJZUVCCUJKZJZUUSDKZUWBJZUVDUVIMUUKUVRUULU
      UQUUKCUKJZUVRCULZCDIUMURUNZUURUWAUUSLUCZUUNUUSEUOUSZUVSUURUUSUUREFUUMUUNU
      UOUUPUPZUUMUUNUUOUUPUQZUTVIZUURUUNUUOUUPUWIUWKUWLUUMUUNUUOUUPVAZUUNUUONZU
      UPUWIUWOUUSLFLUWOUUSLMZFLMZUWOUWPELMUWQEFVBVCVDVEVJVFZUWKUURUWJUUSFUOUSZU
      URUUNUUOUWJUWSNUWKUWLEFVGVHZVKUWAUWIUUNUDUWJUVSUUSEVLVMVNZUURUWAUWIUUOUWS
      UVTUWMUWRUWLUURUWJUWSUWTVOUWAUWIUUOUDUWSUVTUUSFVLVMVNZUWMUURUWCUVCAJZUVCC
      VPKZUCZUUROAUVBDUURUVROADVQZUWHOARCDVRGVTURZUXBVSUURDOWAZUVTUVBDWBUXDWCZW
      DZJZSZUXEUURUXFUXHUXGOADWEURZUXBUURUXJLWCZUVBUURUVBLUCUVBUXNJZSUURFUUSUUR
      FUWLWFZUURUUSUWMWFZUWNUWRWMUXOUVBLUVBLFUUSUGWGWHWIWJUURUWFUULUXJUXNMZUUKU
      WFUULUUQUWGUNUUKUULUUQWKUWFUULUXRACDUXDGIUXDWNZWLVMVHZWOUXHUVTNZUXLNUVCUX
      IJZSUXEUYAUYBUXKUYAUXKUYBUXHUXKUVTUYBOUVBUXIDWPWQWRWSUYBUVCUXDUVCUXDUVBDX
      CWHWIWTVFUUKUWCUXCUXENXAUULUUQACUWBUVCUXDGUWBWNZUXSXDUNXBZUURUWEUWDAJZUWD
      UXDUCZUUROAUUSDUXGUWMVSUURUXHUWAUUSUXJJZSZUYFUXMUWMUURUXJUXNUUSUURUWIUUSU
      XNJZSUWRUYIUUSLUUSLEFUFWGWHWIWJUXTWOUXHUWANZUYHNUWDUXIJZSUYFUYJUYKUYGUYJU
      YGUYKUXHUYGUWAUYKOUUSUXIDWPWQWRWSUYKUWDUXDUWDUXDUUSDXCWHWIWTVFUUKUWEUYEUY
      FNXAUULUUQACUWBUWDUXDGUYCUXSXDUNXBUUTUVBUUSBRCQUWBDOUYCVRHXEXFXGUURFXHJZU
      VDUVOMFXIXHJZUURUYLNZUVAUVLUVCUVNBUYNUUTUVKDUYNUVKUUTUYNUVKUUTMZUVMUVBMZU
      URUUNUYLUYOUYPNUWKEFXJXMZVKXKTUYNUVBUVMDUYNUVMUVBUYNUYOUYPUYQVOXKTXLUURUY
      MNZUUTXIZDKZUVBXIZDKZBPUUTXNXIZQPZDKZUVBVUCQPZDKZBPZUVOUVDUYRUYTVUEVUBVUG
      BUYRUYSVUDDUYRVUCUUTQPUYSVUDUYRUUTUYRUUTUURUVSUYMUXAXOZWFZXPUYRVUCUUTVUCY
      NJUYRXQXRZVUJXSXTTUYRVUAVUFDUYRVUCUVBQPVUAVUFUYRUVBUYRUVBUURUVTUYMUXBXOZW
      FZXPUYRVUCUVBVUKVUMXSXTTXLUYRUVLUYTUVNVUBBUYRUVKUYSDUYRUVKUYSMZUVMVUAMZUY
      RUUNUUOUYMVUNVUONUURUUNUYMUWKXOUURUUOUYMUWLXOUURUYMYAEFYBYCZVKTUYRUVMVUAD
      UYRVUNVUOVUPVOTXLUYRUVRUVSUVTVUCOJZUWCVUCDKUWBJZUVDVUHMUURUVRUYMUWHXOZVUI
      VULUYRXNUYRYDYEUURUWCUYMUYDXOUYRUVRVUCRUJKJZVURVUSVUTUYRVUTVUQVUCYFKZXNMY
      GVVAXNYFKXNXNYHYIYOYJVUCYKYLXRVUCRCDYMVHUUTUVBVUCBRCQUWBDOUYCVRHXEXFXGYPU
      UQUYLUYMYQZUUMUUQUWQSUWQVVBYQZVVBUUQFLUUNUUOUUPYRYSUUQUWQUYLUYMUUAZVVCUUQ
      FUUGJZVVDUUQUUOVVEVVDNUUNUUOUUPUUBFUUCWTVOUWQUYLUYMUUDWTUWQVVBUUEUUFUUHUU
      IUURUVFUVPUVHUVQBUURUVEEDUUREUUSUUREUWKWFUXQUWRYTTUURUVGFDUURFUUSUXPUXQUW
      RYTTXLUUJ $.

    $d e q s x y ./ $.  $d e q s x y B $.  $d e q s x y L $.  $d e q s x y R $.
    $( Value of the canonical homormorphism from the rational number when the
       target ring is a division ring.  (Contributed by Thierry Arnoux,
       26-Oct-2017.) $)
    qqhval2 $p |- ( ( R e. DivRing /\ ( chr ` R ) = 0 ) -> ( QQHom ` R ) =
      ( q e. QQ |-> ( ( L ` ( numer ` q ) ) ./ ( L ` ( denom ` q ) ) ) ) ) $=
      ( vx vy ve vs wcel cfv cc0 wceq wa cz co cq cdr cchr cqqh ccnv cui cv cop
      cima cdiv crn csn cdif cnumer cdenom cmpt cvv elex adantr cur eqid qqhval
      cmpt2 syl eqidd c0g zrhunitpreima mpt2eq12 syl2anc rneqd wrex copab nfab1
      cab nfv nfcv wex simpr wne zssq simplrl sseldi simplrr eldifad wn eldifbd
      velsn necon3bbii sylib qdivcl syl3anc simplll simpllr qqhval2lem syl23anc
      w3a eqcomd ovex opeq12 eqeq2d simpl eleq1d fveq2d oveq12d eqeq12d anbi12d
      spc2ev syl12anc ex rexlimdvva 19.42vv simprrl qnumcl cn qdencl nnzd nnne0
      nelsn eldifd simprl qeqnumdivden simprrr opeq12d eqtrd oveq1 fveq2 oveq1d
      imp 3syl oveq2 oveq2d rspc2ev exlimivv sylbir impbida abid elopab 3bitr4g
      eqrd rnmpt2 df-mpt 3eqtr4g 3eqtrd ) CUAMZCUBNOPZQZCUCNZIJRDUDCUENUHZIUFZJ
      UFZUISZUUHDNZUUIDNZBSZUGZVBZUJZIJRROUKZULZUUNVBZUJZETEUFZUMNZDNZUVAUNNZDN
      ZBSZUOZUUECUPMZUUFUUPPUUCUVHUUDCUAUQURIJBCCUSNZDGUVIUTHVAVCUUEUUOUUSUUERR
      PUUGUURPUUOUUSPUUERVDACDCVENZFHUVJUTVFIJRUUGRUURUUNVGVHVIUUEKUFZUUNPZJUUR
      VJIRVJZKVMZUVATMZLUFZUVFPZQZELVKZUUTUVGUUEKUVNUVSUUEKVNUVMKVLKUVSVOUUEUVM
      UVKUVAUVPUGZPZUVRQZLVPEVPZUVKUVNMUVKUVSMUUEUVMUWCUUEUVMUWCUUEUVLUWCIJRUUR
      UUEUUHRMZUUIUURMZQZQZUVLUWCUWGUVLQZUVLUUJTMZUUMUUJUMNZDNZUUJUNNZDNZBSZPZU
      WCUWGUVLVQUWHUUHTMUUITMUUIOVRZUWIUWHRTUUHVSUUEUWDUWEUVLVTZWAUWHRTUUIVSUWH
      UUIRUUQUUEUWDUWEUVLWBZWCZWAUWHUUIUUQMZWDUWPUWHUUIRUUQUWRWEUWTUUIOJOWFWGWH
      ZUUHUUIWIWJUWHUUCUUDUWDUUIRMZUWPUWOUUCUUDUWFUVLWKUUCUUDUWFUVLWLUWQUWSUXAU
      UEUWDUXBUWPWOQUWNUUMABCDUUHUUIFGHWMWPWNUWBUVLUWIUWOQZQELUUJUUMUUHUUIUIWQU
      UKUULBWQUVAUUJPZUVPUUMPZQZUWAUVLUVRUXCUXFUVTUUNUVKUVAUVPUUJUUMWRWSUXFUVOU
      WIUVQUWOUXFUVAUUJTUXDUXEWTZXAUXFUVPUUMUVFUWNUXDUXEVQUXFUVCUWKUVEUWMBUXFUV
      BUWJDUXFUVAUUJUMUXGXBXBUXFUVDUWLDUXFUVAUUJUNUXGXBXBXCXDXEXEXFXGXHXIYGUUEU
      WCQUUEUWBQZLVPEVPUVMUUEUWBELXJUXHUVMELUXHUVBRMZUVDUURMUVKUVBUVDUISZUVFUGZ
      PZUVMUXHUVOUXIUUEUWAUVOUVQXKZUVAXLVCUXHUVDRUUQUXHUVDUXHUVOUVDXMMZUXMUVAXN
      VCZXOUXHUXNUVDOVRUVDUUQMWDUXOUVDXPUVDOXQYHXRUXHUVKUVTUXKUUEUWAUVRXSUXHUVA
      UXJUVPUVFUXHUVOUVAUXJPUXMUVAXTVCUUEUWAUVOUVQYAYBYCUVLUXLUVKUVBUUIUISZUVCU
      ULBSZUGZPIJUVBUVDRUURUUHUVBPZUUNUXRUVKUXSUUJUXPUUMUXQUUHUVBUUIUIYDUXSUUKU
      VCUULBUUHUVBDYEYFYBWSUUIUVDPZUXRUXKUVKUXTUXPUXJUXQUVFUUIUVDUVBUIYIUXTUULU
      VEUVCBUUIUVDDYEYJYBWSYKWJYLYMYNUVMKYOUVRELUVKYPYQYRIJKRUURUUNUUSUUSUTYSEL
      TUVFYTUUAUUB $.

    $d q Q $.
    $( Value of the canonical homormorphism from the rational number when the
       target ring is a division ring.  (Contributed by Thierry Arnoux,
       30-Oct-2017.) $)
    qqhvval $p |- ( ( ( R e. DivRing /\ ( chr ` R ) = 0 ) /\ Q e. QQ ) ->
      ( ( QQHom ` R ) ` Q )
          = ( ( L ` ( numer ` Q ) ) ./ ( L ` ( denom ` Q ) ) ) ) $=
      ( vq cdr wcel cfv wceq wa cq cnumer cdenom co simpr fveq2d cchr cqqh cmpt
      cc0 cv cvv qqhval2 adantr oveq12d ovexd fvmptd ) DJKDUALUDMNZCOKZNZICIUEZ
      PLZELZUOQLZELZBRZCPLZELZCQLZELZBRODUBLZUFULVEIOUTUCMUMABDEIFGHUGUHUNUOCMZ
      NZUQVBUSVDBVGUPVAEVGUOCPUNVFSZTTVGURVCEVGUOCQVHTTUIULUMSUNVBVDBUJUK $.

    $( The image of ` 0 ` by the ` QQHom ` homomorphism is the ring's zero.
       (Contributed by Thierry Arnoux, 22-Oct-2017.) $)
    qqh0 $p |- ( ( R e. DivRing /\ ( chr ` R ) = 0 )
                                     -> ( ( QQHom ` R ) ` 0 ) = ( 0g ` R ) ) $=
      ( wcel cfv cc0 wceq wa co cq cz 0z c1 fveq2i eqid syl cdr cchr cnumer c0g
      cqqh cdenom zssq sselii qqhvval mpan2 cgcd cdiv cabs 1z gcd0id ax-mp abs1
      eqtri 0cn div1i eqcomi pm3.2i cn wb qnumdenbi mp3an simpli simpri oveq12i
      1nn mpbi cur drngring zrh0 zrh1 oveq12d cgrp drnggrp grpidcl dvr1 syl2anc
      crg eqtrd syl5eq adantr ) CUAHZCUBIJKZLZJCUEIIZJUCIZDIZJUFIZDIZBMZCUDIZWH
      JNHZWIWNKONJUGPUHZABJCDEFGUIUJWFWNWOKWGWFWNJDIZQDIZBMZWOWKWRWMWSBWJJDWJJK
      ZWLQKZJQUKMZQKZJJQULMZKZLZXAXBLZXDXFXCQUMIZQQOHXCXIKUNQUOUPUQURXEJJUSUTVA
      VBWPJOHQVCHXGXHVDWQPVJJJQVEVFVKZVGRWLQDXAXBXJVHRVIWFWTWOCVLIZBMZWOWFCWBHZ
      WTXLKCVMZXMWRWOWSXKBCDWOGWOSZVNCXKDGXKSZVOVPTWFXMWOAHZXLWOKXNWFCVQHXQCVRA
      CWOEXOVSTABCXKWOEFXPVTWAWCWDWEWC $.

    $( The image of ` 1 ` by the ` QQHom ` homomorphism is the ring's unit.
       (Contributed by Thierry Arnoux, 22-Oct-2017.) $)
    qqh1 $p |- ( ( R e. DivRing /\ ( chr ` R ) = 0 )
                                     -> ( ( QQHom ` R ) ` 1 ) = ( 1r ` R ) ) $=
      ( cdr wcel cfv wceq wa c1 co cq cz 1z fveq2i syl eqtrd cchr cnumer cdenom
      cc0 cqqh cur zssq sselii qqhvval mpan2 cgcd cdiv gcd1 ax-mp eqcomi pm3.2i
      1div1e1 cn wb 1nn qnumdenbi mp3an mpbi simpli simpri oveq12i crg drngring
      eqid zrh1 oveq12d ringidcl dvr1 syl2anc syl5eq adantr ) CHIZCUAJUDKZLZMCU
      EJJZMUBJZDJZMUCJZDJZBNZCUFJZVSMOIZVTWEKPOMUGQUHZABMCDEFGUIUJVQWEWFKVRVQWE
      MDJZWIBNZWFWBWIWDWIBWAMDWAMKZWCMKZMMUKNMKZMMMULNZKZLZWKWLLZWMWOMPIZWMQMUM
      UNWNMUQUOUPWGWRMURIWPWQUSWHQUTMMMVAVBVCZVDRWCMDWKWLWSVERVFVQWJWFWFBNZWFVQ
      CVGIZWJWTKCVHZXAWIWFWIWFBCWFDGWFVIZVJZXDVKSVQXAWFAIZWTWFKXBVQXAXEXBACWFEX
      CVLSABCWFWFEFXCVMVNTVOVPT $.

    $( TODO simplify this & others using properties of ` ( CClfd |`s ZZ )` $)
    $( ` QQHom ` as a function.  (Contributed by Thierry Arnoux,
       28-Oct-2017.) $)
    qqhf $p |- ( ( R e. DivRing /\ ( chr ` R ) = 0 )
      -> ( QQHom ` R ) : QQ --> B ) $=
      ( vq wcel cfv cc0 wceq wa cq cdenom co adantr cz zring 3syl cdr cv cnumer
      cchr cqqh qqhval2 crg cui drngring crh zrhrhm zringbas rhmf qnumcl adantl
      wf ffvelrnd c0g wne simpll cn qdencl nnzd ccnv cima wn nnne0d neneqd fvex
      csn elsn sylnibr eqid zrhker biimpa neleqtrrd wfn wb ffn elpreima biimpar
      sylan expr con3dimp syl21anc sylnib neqned drngunit syl12anc dvrcl fmpt3d
      syl3anc ) CUAIZCUDJKLZMZHNHUBZUCJZDJZWPOJZDJZBPZACUEJABCDHEFGUFWOWPNIZMZC
      UGIZWRAIWTCUHJZIZXAAIWOXDXBWMXDWNCUIZQQZXCRAWQDXCXDDSCUJPIZRADUPZXHCDGUKZ
      RASCDULEUMZTZXBWQRIWOWPUNUOUQXCWMWTAIZWTCURJZUSZXFWMWNXBUTZXCRAWSDXMXCWSX
      BWSVAIWOWPVBUOZVCZUQXCWTXOXCWTXOVJZIZWTXOLXCWMWSRIZWSDVDXTVEZIZVFYAVFXQXS
      XCYCKVJZWSXCWSKLWSYEIXCWSKXCWSXRVGVHWSKWPOVIVKVLWOYCYELZXBWMXDWNYFXGXDWNY
      FACDXOEGXOVMZVNVOWBQVPWMYBMYAYDWMYBYAYDWMYDYBYAMZWMXDDRVQZYDYHVRXGXDXIXJY
      IXKXLRADVSTRWSXTDVTTWAWCWDWEWTXOWSDVIVKWFWGWMXFXNXPMACXEWTXOEXEVMZYGWHWAW
      IABCXEWRWTEYJFWJWLWK $.

    $( The image of a quotient by the ` QQHom ` homomorphism.  (Contributed by
       Thierry Arnoux, 28-Oct-2017.) $)
    qqhvq $p |- ( ( ( R e. DivRing /\ ( chr ` R ) = 0 )
      /\ ( X e. ZZ /\ Y e. ZZ /\ Y =/= 0 ) )
             -> ( ( QQHom ` R ) ` ( X / Y ) ) = ( ( L ` X ) ./ ( L ` Y ) ) ) $=
      ( cdr wcel cfv cc0 wceq wa cz co cq zssq sseldi cchr wne cdiv cqqh cnumer
      w3a cdenom simpr1 simpr2 simpr3 qdivcl syl3anc qqhvval syldan qqhval2lem
      eqtrd ) CJKCUALMNOZEPKZFPKZFMUBZUFZOZEFUCQZCUDLLZVCUELDLVCUGLDLBQZEDLFDLB
      QUQVAVCRKZVDVENVBERKFRKUTVFVBPRESUQURUSUTUHTVBPRFSUQURUSUTUITUQURUSUTUJEF
      UKULABVCCDGHIUMUNABCDEFGHIUOUP $.

    $d x y Q $.
    qqhrhm.1 $e |- Q = ( CCfld |`s QQ ) $.
    $( The ` QQHom ` homomorphism is a group homomorphism if the target
       structure is a division ring.  (Contributed by Thierry Arnoux,
       9-Nov-2017.) $)
    qqhghm $p |- ( ( R e. DivRing /\ ( chr ` R ) = 0 )
                                       -> ( QQHom ` R ) e. ( Q GrpHom R ) ) $=
      ( wcel cfv cc0 wceq caddc cq cmul co cz zring zringbas vx cdr cchr cplusg
      vy cqqh qrngbas cvv qex ccnfld cnfldadd ressplusg ax-mp eqid cgrp drnggrp
      wa qdrng mp1i adantr cv cnumer cdenom crg cui drngring ad2antrr wf zrhrhm
      qqhf crh rhmf 3syl qnumcl ad2antrl cn qdencl ad2antll nnzd ffvelrnd cmulr
      zmulcld syl zringmulr rhmmul syl3anc wne simpl nnne0d elzrhunit unitmulcl
      c0g syl12anc eqeltrd dvrdir syl13anc cdiv qeqnumdivden oveq12d divadddivd
      zcnd eqtrd fveq2d zaddcld mulne0d qqhvq cghm rhmghm w3a zringplusg ghmlin
      oveq1d 3eqtrd rhmdvd syl132anc mulcomd oveq2d 3eqtr4d isghmd ) DUBJZDUCKL
      MZUQZUAUENDUDKZCDDUFKZOACIUGFOUHJNCUDKMUIONUJCUHIUKULUMYCUNZCUBJCUOJYBCIU
      RCUPUSXTDUOJYADUPUTABDEFGHVJYBUAVAZOJZUEVAZOJZUQZUQZYFVBKZYHVCKZPQZEKZYHV
      BKZYFVCKZPQZEKZYCQZYQYMPQZEKZBQZYOUUBBQZYSUUBBQZYCQZYFYHNQZYDKZYFYDKZYHYD
      KZYCQYKDVDJZYOAJYSAJUUBDVEKZJUUCUUFMXTUUKYAYJDVFZVGZYKRAYNEYBRAEVHZYJYBUU
      KESDVKQJZUUOXTUUKYAUUMUTDEHVIZRASDETFVLVMUTZYKYLYMYGYLRJZYBYIYFVNVOZYKYMY
      IYMVPJYBYGYHVQVRZVSZWBZVTYKRAYREUURYKYPYQYIYPRJZYBYGYHVNVRZYKYQYGYQVPJYBY
      IYFVQVOZVSZWBZVTYKUUBYQEKZYMEKZDWAKZQZUULYKUUPYQRJZYMRJZUUBUVLMYKUUKUUPUU
      NUUQWCZUVGUVBYQYMSDPUVKERTWDUVKUNZWEWFYKUUKUVIUULJZUVJUULJZUVLUULJUUNYKYB
      UVMYQLWGZUVQYBYJWHZUVGYKYQUVFWIZADEYQDWLKZFHUWBUNZWJWMZYKYBUVNYMLWGZUVRUV
      TUVBYKYMUVAWIZADEYMUWBFHUWCWJWMZDUVKUULUVIUVJUULUNZUVPWKWFWNABYCDUULYOYSU
      UBFUWHYEGWOWPYKUUHYNYRNQZUUAWQQZYDKZUWIEKZUUBBQZUUCYKUUGUWJYDYKUUGYLYQWQQ
      ZYPYMWQQZNQUWJYKYFUWNYHUWONYGYFUWNMYBYIYFWRZVOYIYHUWOMYBYGYHWRZVRWSYKYLYQ
      YPYMYKYLUUTXAYKYQUVGXAZYKYPUVEXAYKYMUVBXAZUWAUWFWTXBXCYKYBUWIRJUUARJUUALW
      GUWKUWMMUVTYKYNYRUVCUVHXDYKYQYMUVGUVBWBYKYQYMUWRUWSUWAUWFXEABDEUWIUUAFGHX
      FWPYKESDXGQJZYNRJZYRRJZUWMUUCMYKUUPUWTUVOSDEXHWCUVCUVHUWTUXAUXBXIUWLYTUUB
      BNYCSDYNEYRRTXJYEXKXLWFXMYKUUIUUDUUJUUEYCYKUUIUWNYDKZYLEKUVIBQZUUDYGUUIUX
      CMYBYIYGYFUWNYDUWPXCVOYKYBUUSUVMUVSUXCUXDMUVTUUTUVGUWAABDEYLYQFGHXFWPYKUU
      PUUSUVMUVNUVQUVRUXDUUDMUVOUUTUVGUVBUWDUWGYLYQYMBSDPUULERUWHTGWDXNXOXMYKUU
      JUWOYDKZUUEYIUUJUXEMYBYGYIYHUWOYDUWQXCVRYKYPEKUVJBQZYSYMYQPQZEKZBQZUXEUUE
      YKUUPUVDUVNUVMUVRUVQUXFUXIMUVOUVEUVBUVGUWGUWDYPYMYQBSDPUULERUWHTGWDXNXOYK
      YBUVDUVNUWEUXEUXFMUVTUVEUVBUWFABDEYPYMFGHXFWPYKUUBUXHYSBYKUUAUXGEYKYQYMUW
      RUWSXPXCXQXRXBWSXRXS $.

    $( TODO - Shorten using ~ qqhghm ! $)
    $( The ` QQHom ` homomorphism is a ring homomorphism if the target
       structure is a field.  If the target structure is a division ring, it is
       a group homomorphism, but not a ring homomorphism, because it does not
       preserve the ring multiplication operation.  (Contributed by Thierry
       Arnoux, 29-Oct-2017.) $)
    qqhrhm $p |- ( ( R e. Field /\ ( chr ` R ) = 0 )
                                       -> ( QQHom ` R ) e. ( Q RingHom R ) ) $=
      ( wcel cfv wceq cq caddc cmul eqid co cz zring zringbas vx vy cfield cchr
      cc0 wa cplusg cmulr c1 cur qrngbas qrng1 cvv qex ccnfld cnfldmul ressmulr
      cqqh ax-mp cdr crg qdrng drngring mp1i ccrg isfld simplbi adantr syl qqh1
      sylan cv cnumer cdenom cui simprbi ad2antrr crh zrhrhm rhmf 3syl ad2antrl
      wf qnumcl ffvelrnd wne simplr jca cn qdencl nnne0d c0g elzrhunit syl12anc
      nnzd ad2antll rdivmuldivd cdiv qeqnumdivden fveq2d qqhvq syl13anc oveq12d
      eqtrd divmuldivd zmulcld mulne0d zringmulr rhmmul syl3anc 3eqtrd 3eqtr4rd
      zcnd cnfldadd ressplusg qqhf unitmulcl eqeltrd dvrdir zaddcld cghm rhmghm
      divadddivd w3a zringplusg ghmlin oveq1d rhmdvd syl132anc mulcomd 3eqtr4d
      oveq2d isrhmd ) DUCJZDUDKUELZUFZUAUBMANDUGKZCDODUHKZUIDURKZDUJKZCIUKCIULY
      TPMUMJZOCUHKLUNMUOCOUMIUPUQUSYRPZCUTJCVAJYPCIVBCVCVDYPDUTJZDVAJZYNUUCYOYN
      UUCDVEJZDVFZVGZVHDVCZVIZYNUUCYOUIYSKYTLUUGABDEFGHVJVKYPUAVLZMJZUBVLZMJZUF
      ZUFZUUJVMKZEKZUUJVNKZEKZBQZUULVMKZEKZUULVNKZEKZBQZYRQUUQUVBYRQZUUSUVDYRQZ
      BQZUUJYSKZUULYSKZYRQUUJUULOQZYSKZUUOABYQDYRDVOKZUVDUUQUUSUVBFUVMPZYQPZGUU
      BYNUUEYOUUNYNUUCUUEUUFVPVQUUORAUUPEYPRAEWCZUUNYPUUDESDVRQJZUVPUUIDEHVSZRA
      SDETFVTWAVHZUUKUUPRJZYPUUMUUJWDWBZWEUUOUUCYOUFZUURRJZUURUEWFZUUSUVMJZUUOU
      UCYOYNUUCYOUUNUUGVQZYNYOUUNWGWHZUUOUURUUKUURWIJYPUUMUUJWJWBZWOZUUOUURUWHW
      KZADEUURDWLKZFHUWKPZWMWNZUUORAUVAEUVSUUMUVARJZYPUUKUULWDWPZWEUUOUWBUVCRJZ
      UVCUEWFZUVDUVMJZUWGUUOUVCUUMUVCWIJYPUUKUULWJWPZWOZUUOUVCUWSWKZADEUVCUWKFH
      UWLWMWNZWQUUOUVIUUTUVJUVEYRUUOUVIUUPUURWRQZYSKZUUTUUKUVIUXDLYPUUMUUKUUJUX
      CYSUUJWSZWTWBZUUOUWBUVTUWCUWDUXDUUTLUWGUWAUWIUWJABDEUUPUURFGHXAXBZXDUUOUV
      JUVAUVCWRQZYSKZUVEUUMUVJUXILYPUUKUUMUULUXHYSUULWSZWTWPZUUOUWBUWNUWPUWQUXI
      UVELUWGUWOUWTUXAABDEUVAUVCFGHXAXBZXDXCUUOUVLUUPUVAOQZUURUVCOQZWRQZYSKZUXM
      EKZUXNEKZBQZUVHUUOUVKUXOYSUUOUVKUXCUXHOQUXOUUOUUJUXCUULUXHOUUKUUJUXCLYPUU
      MUXEWBZUUMUULUXHLYPUUKUXJWPZXCUUOUUPUURUVAUVCUUOUUPUWAXMZUUOUURUWIXMZUUOU
      VAUWOXMZUUOUVCUWTXMZUWJUXAXEXDWTUUOUWBUXMRJUXNRJZUXNUEWFZUXPUXSLUWGUUOUUP
      UVAUWAUWOXFUUOUURUVCUWIUWTXFZUUOUURUVCUYCUYEUWJUXAXGZABDEUXMUXNFGHXAXBUUO
      UXQUVFUXRUVGBUUOUVQUVTUWNUXQUVFLUUOUUDUVQUUOUUCUUDUWFUUHVIZUVRVIZUWAUWOUU
      PUVASDOYRERTXHUUBXIXJUUOUVQUWCUWPUXRUVGLUYKUWIUWTUURUVCSDOYRERTXHUUBXIXJZ
      XCXKXLFUUANCUGKLUNMNUOCUMIXNXOUSUVOYNUUCYOMAYSWCUUGABDEFGHXPVKUUOUUPUVCOQ
      ZEKZUVAUUROQZEKZYQQZUXRBQZUYNUXRBQZUYPUXRBQZYQQZUUJUULNQZYSKZUVIUVJYQQUUO
      UUDUYNAJUYPAJUXRUVMJUYRVUALUYJUUORAUYMEUVSUUOUUPUVCUWAUWTXFZWEUUORAUYOEUV
      SUUOUVAUURUWOUWIXFZWEUUOUXRUVGUVMUYLUUOUUDUWEUWRUVGUVMJUYJUWMUXBDYRUVMUUS
      UVDUVNUUBXQXJXRABYQDUVMUYNUYPUXRFUVNUVOGXSXBUUOVUCUYMUYONQZUXNWRQZYSKZVUF
      EKZUXRBQZUYRUUOVUBVUGYSUUOVUBUXCUXHNQVUGUUOUUJUXCUULUXHNUXTUYAXCUUOUUPUUR
      UVAUVCUYBUYCUYDUYEUWJUXAYCXDWTUUOUWBVUFRJUYFUYGVUHVUJLUWGUUOUYMUYOVUDVUEX
      TUYHUYIABDEVUFUXNFGHXAXBUUOESDYAQJZUYMRJZUYORJZVUJUYRLUUOUVQVUKUYKSDEYBVI
      VUDVUEVUKVULVUMYDVUIUYQUXRBNYQSDUYMEUYORTYEUVOYFYGXJXKUUOUVIUYSUVJUYTYQUU
      OUVIUXDUUTUYSUXFUXGUUOUVQUVTUWCUWPUWEUWRUUTUYSLUYKUWAUWIUWTUWMUXBUUPUURUV
      CBSDOUVMERUVNTGXHYHYIXKUUOUVJUXIUYTUXKUUOUVEUYPUVCUUROQZEKZBQZUXIUYTUUOUV
      QUWNUWPUWCUWRUWEUVEVUPLUYKUWOUWTUWIUXBUWMUVAUVCUURBSDOUVMERUVNTGXHYHYIUXL
      UUOUXRVUOUYPBUUOUXNVUNEUUOUURUVCUYCUYEYJWTYLYKXDXCYKYM $.
  $}

  ${
    qqhnm.n $e |- N = ( norm ` R ) $.
    qqhnm.z $e |- Z = ( ZMod ` R ) $.
    $( The norm of the image by ` QQHom ` of a rational number in a topological
       division ring.  (Contributed by Thierry Arnoux, 8-Nov-2017.) $)
    qqhnm $p |- ( ( ( R e. ( NrmRing i^i DivRing ) /\ Z e. NrmMod
      /\ ( chr ` R ) = 0 ) /\ Q e. QQ )
      -> ( N ` ( ( QQHom ` R ) ` Q ) ) = ( abs ` Q ) ) $=
      ( cnrg cdr wcel cfv cc0 wceq wa cabs cdiv co fveq2d syl cz eqid cnlm cchr
      cin w3a cq cnumer cdenom cqqh simpr qeqnumdivden qnumcl zcnd qdencl nncnd
      cn wne nnne0 3syl absdivd czrh cdvr simpl1 sseldi simpl3 qqhvval syl21anc
      inss2 cbs cnzr cui inss1 drngnzr crg crh wf drngring zrhrhm zringbas rhmf
      zring 4syl ffvelrnd nnzd c0g elzrhunit syl22anc nmdvr simpl2 zhmnrg zrhnm
      syl31anc oveq12d 3eqtrrd ) BGHUCZIZDUAIZBUBJKLZUDZAUEIZMZANJZAUFJZAUGJZOP
      ZNJZXBNJZXCNJZOPZABUHJJZCJZWTWSXAXELWRWSUIZWSAXDNAUJQRWTXBXCWTXBWTWSXBSIZ
      XKAUKRZULWTXCWTWSXCUOIZXKAUMZRZUNWTWSXNXCKUPZXKXOXCUQURZUSWTXJXBBUTJZJZXC
      XSJZBVAJZPZCJZXTCJZYACJZOPZXHWTBHIZWQWSXJYDLWTWNHBGHVGWOWPWQWSVBZVCZWOWPW
      QWSVDZXKYHWQMWSMXIYCCBVHJZYBABXSYLTZYBTZXSTZVEQVFWTBGIZBVIIZXTYLIYABVJJZI
      ZYDYGLWTWNGBGHVKYIVCZWTYHYQYJBVLRZWTSYLXBXSWTYHBVMIXSVTBVNPISYLXSVOYJBVPB
      XSYOVQSYLVTBXSVRYMVSWAXMWBWTYHWQXCSIZXQYSYJYKWTXCXPWCZXRYLBXSXCBWDJZYMYOU
      UDTWEWFXTYAYBBYRCYLYMEYRTYNWGWFWTYEXFYFXGOWTWPDGIZYQXLYEXFLWOWPWQWSWHZWTY
      PUUEYTBDFWIRZUUAXMYLBXSXBCDYMEFYOWJWKWTWPUUEYQUUBYFXGLUUFUUGUUAUUCYLBXSXC
      CDYMEFYOWJWKWLWMWM $.
  $}

  ${
    $d d e q J $.  $d d e q R $.  $d e q Z $.
    qqhcn.q $e |- Q = ( CCfld |`s QQ ) $.
    qqhcn.j $e |- J = ( TopOpen ` Q ) $.
    qqhcn.z $e |- Z = ( ZMod ` R ) $.
    qqhcn.k $e |- K = ( TopOpen ` R ) $.
    $( The ` QQHom ` homomorphism is a continuous function.  (Contributed by
       Thierry Arnoux, 9-Nov-2017.) $)
    qqhcn $p |- ( ( R e. ( NrmRing i^i DivRing ) /\ Z e. NrmMod
                       /\ ( chr ` R ) = 0 ) -> ( QQHom ` R ) e. ( J Cn K ) ) $=
      ( vq cnrg cdr wcel cfv cc0 wceq cq co eqid ccnfld vd ve cin cnlm cchr w3a
      cqqh ccn ccnp wa cds cbs cxp cres cmopn wf cv cabs cmin ccom clt wbr wral
      wi crp wrex inss2 sseli 3ad2ant1 simp3 cdvr czrh qqhf syl2anc simpr qsscn
      cnm cc sseldi cneg 0cn cnmetdval mpan df-neg fveq2i a1i absneg 3eqtr2d cz
      syl zssq sselii ovresd qqhnm adantlr 3eqtr4d ad2antrr ffvelrnd cngp inss1
      0z csg nrgngp ngpdsr syl3anc c0g qqh0 oveq2d cgrp ngpgrp grpsubid1 fveq2d
      eqtrd 3eqtrd eqtr4d breq1d biimpd ralrimiva imbi1d ralbidv rspcev cxmt wb
      breq2 cress cvv cnfldxms qex ressxms mp2an eqeltri qrngbas ax-mp xmsxmet2
      cxme mp1i 3syl xmstopn ctmd ctgp cnfldds ressds ngpxms mpbir2and eleqtrrd
      reseq1i metcnp fveq1d cghm csubg cnfldtgp csubrg qsubdrg simpli subrgsubg
      subgtgp tgptmd ctrg nrgtrg trgtmd2 qqhghm ghmcnp mpbid simprd ) BKLUCZMZE
      UDMZBUENOPZUFZOQMZBUGNZCDUHRMZUVIUVKOCDUIRZNZMZUVJUVLUJZUVIUVKOCBUKNZBULN
      ZUVRUMUNZUONZUIRZNZUVNUVIUVKUWBMZQUVRUVKUPZOJUQZURUSUTZQQUMZUNZRZUAUQZVAV
      BZOUVKNZUWEUVKNZUVSRZUBUQZVAVBZVDZJQVCZUAVEVFZUBVEVCZUVIBLMZUVHUWDUVFUVGU
      XAUVHUVELBKLVGVHVIZUVFUVGUVHVJZUVRBVKNZBBVLNZUVRSZUXDSZUXESZVMVNZUVIUWSUB
      VEUVIUWOVEMZUJZUXJUWIUWOVAVBZUWPVDZJQVCZUWSUVIUXJVOUXKUXMJQUXKUWEQMZUJZUX
      LUWPUXPUWIUWNUWOVAUXPUWIUWMBVQNZNZUWNUXPOUWEUWFRZUWEURNZUWIUXRUXPUWEVRMZU
      XSUXTPUXPQVRUWEVPUXKUXOVOZVSUYAUXSOUWEUSRZURNZUWEVTZURNZUXTOVRMUYAUXSUYDP
      WAOUWEUWFUWFSWBWCUYFUYDPUYAUYEUYCURUWEWDWEWFUWEWGWHWJUXPOUWEUWFQUVJUXPWIQ
      OWKXAWLZWFZUYBWMUVIUXOUXRUXTPUXJUWEBUXQEUXQSZHWNWOWPUXPUWNUWLUWMUVQRZUWMU
      WLBXBNZRZUXQNZUXRUXPUWLUWMUVQUVRUXPQUVROUVKUVIUWDUXJUXOUXIWQZUYHWRZUXPQUV
      RUWEUVKUYNUYBWRZWMUXPBWSMZUWLUVRMUWMUVRMZUYJUYMPUXPBKMZUYQUVIUYSUXJUXOUVF
      UVGUYSUVHUVEKBKLWTVHZVIZWQBXCZWJZUYOUYPUWLUWMUVQBUYKUXQUVRUYIUXFUYKSZUVQS
      ZXDXEUXPUYLUWMUXQUXPUYLUWMBXFNZUYKRZUWMUXPUWLVUFUWMUYKUXPUXAUVHUWLVUFPUVI
      UXAUXJUXOUXBWQUVIUVHUXJUXOUXCWQUVRUXDBUXEUXFUXGUXHXGVNXHUXPBXIMZUYRVUGUWM
      PUXPUYQVUHVUCBXJWJUYPUVRBUYKUWMVUFUXFVUFSVUDXKVNXMXLXNXOXPXQXRUWRUXNUAUWO
      VEUWJUWOPZUWQUXMJQVUIUWKUXLUWPUWJUWOUWIVAYDXSXTYAVNXRUVIUWHQYBNMZUVSUVRYB
      NMZUVJUWCUWDUWTUJYCAYOMZVUJUVIATQYERZYOFTYOMQYFMZVUMYOMYGYHQTYFYIYJYKZUWF
      AQAFYLZVUNUWFAUKNZPYHQUWFTAYFFUUAUUBYMZYNYPUVIBYOMZVUKUVFUVGVUSUVHUVFUYSU
      YQVUSUYTVUBBUUCYQVIZUVQBUVRUXFVUEYNWJUVJUVIUYGWFUBUAJUWHUVSOUVKCUVTQUVRVU
      LCUWHUONPVUOUWHCAQGVUPUWFVUQUWGVURUUFYRYMUVTSUUGXEUUDUVIOUVMUWAUVIDUVTCUI
      UVIVUSDUVTPVUTUVSDBUVRIUXFUVSSYRWJXHUUHUUEUVIAYSMZBYSMZUVKABUUIRMZUVOUVPY
      CAYTMZVVAUVITYTMQTUUJNMZVVDUUKQTUULNMZVVEVVFVUMLMUUMUUNQTUUOYMQTAFUUPYJAU
      UQYPUVIUYSBUURMVVBVUABUUSBUUTYQUVIUXAUVHVVCUXBUXCUVRUXDABUXEUXFUXGUXHFUVA
      VNOUVKABCDQVUPGIUVBXEUVCUVD $.
  $}

  ${
    $d d e p q B $.  $d d e p q R $.  $d p V $.  $d d e p q ph $.
    qqhucn.b $e |- B = ( Base ` R ) $.
    qqhucn.q $e |- Q = ( CCfld |`s QQ ) $.
    qqhucn.u $e |- U = ( UnifSt ` Q ) $.
    qqhucn.v $e |- V = ( metUnif ` ( ( dist ` R ) |` ( B X. B ) ) ) $.
    qqhucn.z $e |- Z = ( ZMod ` R ) $.
    qqhucn.1 $e |- ( ph -> R e. NrmRing ) $.
    qqhucn.2 $e |- ( ph -> R e. DivRing ) $.
    qqhucn.3 $e |- ( ph -> Z e. NrmMod ) $.
    qqhucn.4 $e |- ( ph -> ( chr ` R ) = 0 ) $.
    $( The ` QQHom ` homomorphism is uniformly continuous.  (Contributed by
       Thierry Arnoux, 28-Jan-2018.) $)
    qqhucn $p |- ( ph -> ( QQHom ` R ) e. ( U uCn V ) ) $=
      ( cfv cq co wcel vp vq vd ve cqqh cabs cmin ccom cxp cres cmetu wf cv clt
      cucn wbr cds wi wral crp wrex cdr cchr cc0 wceq cdvr czrh eqid syl2anc wa
      qqhf simpr csg cnm cngp cnrg nrgngp syl ad2antrr ffvelrnda adantr syl3anc
      ngpdsr simplr ccnfld csubg csubrg cress qsubdrg simpli subrgsubg cnfldsub
      ax-mp subgsub mp3an1 fveq2d cghm qqhghm qrngbas ghmsub eqtr2d cnlm qsubcl
      cin elind qqhnm syl31anc 3eqtrd ovresd cc qsscn cnmetdval abssubd 3eqtr4d
      sseldi 3eqtr4rd breq1d biimpd ralrimiva breq2 imbi1d 2ralbidv rspcev ne0i
      c0 wne cz a1i 4syl cxmt cpsmet cxme cvv qex xmsxmet2 xmetpsmet cuss crest
      0z 3eqtri mp2b crg cur drngring ringidcl cnfldxms ressxms eqeltri cnfldds
      zq ressds mp1i ngpxms metucn mpbir2and fveq2i ressuss cnflduss oveq1i wss
      mp2an cnxmet restmetu mp3an oveq1d eleqtrrd ) ADUEQZUFUGUHZRRUIZUJZUKQZFU
      OSZEFUOSAUVGUVLTRBUVGULZUAUMZUBUMZUVJSZUCUMZUNUPZUVNUVGQZUVOUVGQZDUQQZBBU
      IUJZSZUDUMZUNUPZURZUBRUSUARUSZUCUTVAZUDUTUSADVBTZDVCQVDVEZUVMNPBDVFQZDDVG
      QZHUWKVHZUWLVHZVKVIZAUWHUDUTAUWDUTTZVJUWPUVPUWDUNUPZUWEURZUBRUSZUARUSZUWH
      AUWPVLAUWTUWPAUWSUARAUVNRTZVJZUWRUBRUXBUVORTZVJZUWQUWEUXDUVPUWCUWDUNUXDUV
      SUVTUWASZUVOUVNUGSZUFQZUWCUVPUXDUXEUVTUVSDVMQZSZDVNQZQZUXFUVGQZUXJQZUXGUX
      DDVOTZUVSBTZUVTBTUXEUXKVEAUXNUXAUXCADVPTZUXNMDVQZVRVSUXBUXOUXCARBUVNUVGUW
      OVTWAZUXBRBUVOUVGAUVMUXAUWOWAVTZUVSUVTUWADUXHUXJBUXJVHZHUXHVHZUWAVHZWCWBU
      XDUXIUXLUXJUXDUXLUVOUVNCVMQZSZUVGQZUXIUXDUXFUYDUVGUXDUXCUXAUXFUYDVEZUXBUX
      CVLZAUXAUXCWDZRWEWFQTZUXCUXAUYFRWEWGQTZUYIUYJWERWHSZVBTWIWJRWEWKWMRWECUGU
      YCUVOUVNWLIUYCVHZWNWOVIWPUXDUVGCDWQSTZUXCUXAUYEUXIVEAUYMUXAUXCAUWIUWJUYMN
      PBUWKCDUWLHUWMUWNIWRVIVSUYGUYHRCDUVOUVGUYCUXHUVNCIWSZUYLUYAWTWBXAWPUXDDVP
      VBXDTZGXBTZUWJUXFRTZUXMUXGVEAUYOUXAUXCAVPVBDMNXEVSAUYPUXAUXCOVSAUWJUXAUXC
      PVSUXDUXCUXAUYQUYGUYHUVOUVNXCVIUXFDUXJGUXTLXFXGXHUXDUVSUVTUWABUXRUXSXIUXD
      UVNUVOUVHSZUVNUVOUGSUFQZUVPUXGUXDUVNXJTUVOXJTUYRUYSVEUXDRXJUVNXKUYHXOZUXD
      RXJUVOXKUYGXOZUVNUVOUVHUVHVHXLVIUXDUVNUVOUVHRUYHUYGXIUXDUVOUVNVUAUYTXMXNX
      PXQXRXSXSWAUWGUWTUCUWDUTUVQUWDVEZUWFUWRUAUBRRVUBUVRUWQUWEUVQUWDUVPUNXTYAY
      BYCVIXSAUAUBUVJUWBUVKUVGFRBUCUDUVKVHKRYEYFZAVDYGTVDRTVUCYSVDUUJRVDYDUUAZY
      HAUWIDUUBTDUUCQZBTBYEYFNDUUDBDVUEHVUEVHUUEBVUEYDYIAUVJRYJQTZUVJRYKQTCYLTV
      UFACUYKYLIWEYLTRYMTZUYKYLTUUFYNRWEYMUUGUVAUUHUVHCRUYNVUGUVHCUQQVEYNRUVHWE
      CYMIUUIUUKWMYOUULUVJRYPVRAUWBBYJQTZUWBBYKQTAUXPUXNDYLTVUHMUXQDUUMUWADBHUY
      BYOYIUWBBYPVRUUNUUOAEUVKFUOEUVKVEAEWEYQQZUVIYRSZUVHUKQZUVIYRSZUVKECYQQUYK
      YQQZVUJJCUYKYQIUUPVUGVUMVUJVEYNRYMWEUUQWMYTVUIVUKUVIYRVUIVUIVHUURUUSVUCUV
      HXJYKQTZRXJUUTVULUVKVEVUDUVHXJYJQTVUNUVBUVHXJYPWMXKRUVHXJUVCUVDYTYHUVEUVF
      $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Canonical embedding of the real numbers into a complete ordered field
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c RRHom $.
  $c RRExt $.

  $( Map the real numbers into a complete field. $)
  crrh $a class RRHom $.

  $( Extend class notation with the class of extension fields of ` RR ` . $)
  crrext $a class RRExt $.

  $( Define the canonical homomorphism from the real numbers to any complete
     field, as the extension by continuity of the canonical homomorphism from
     the rational numbers.  (Contributed by Mario Carneiro, 22-Oct-2017.)
     (Revised by Thierry Arnoux, 23-Oct-2017.) $)
  df-rrh $a |- RRHom = ( r e. _V |->
    ( ( ( topGen ` ran (,) ) CnExt ( TopOpen ` r ) ) ` ( QQHom ` r ) ) ) $.

  ${
    $d r J $.  $d r K $.  $d r R $.
    rrhval.1 $e |- J = ( topGen ` ran (,) ) $.
    rrhval.2 $e |- K = ( TopOpen ` R ) $.
    $( Value of the canonical homormorphism from the real numbers to a complete
       space.  (Contributed by Thierry Arnoux, 2-Nov-2017.) $)
    rrhval $p |- ( R e. V
      -> ( RRHom ` R ) = ( ( J CnExt K ) ` ( QQHom ` R ) ) ) $=
      ( vr wcel cvv crrh cfv cqqh ccnext co wceq elex cv cioo ctopn fveq2 fvmpt
      crn ctg eqcomi a1i syl6eqr oveq12d fveq12d df-rrh fvex syl ) ADHAIHAJKALK
      ZBCMNZKZOADPGAGQZLKZRUBUCKZUOSKZMNZKUNIJUOAOZUPULUSUMUTUQBURCMUQBOUTBUQEU
      DUEUTURASKCUOASTFUFUGUOALTUHGUIULUMUJUAUK $.
  $}

  ${
    rrhf.d $e |- D = ( ( dist ` R ) |` ( B X. B ) ) $.
    rrhf.j $e |- J = ( topGen ` ran (,) ) $.
    rrhf.b $e |- B = ( Base ` R ) $.
    rrhf.k $e |- K = ( TopOpen ` R ) $.
    rrhf.z $e |- Z = ( ZMod ` R ) $.
    rrhf.1 $e |- ( ph -> R e. DivRing ) $.
    rrhf.2 $e |- ( ph -> R e. NrmRing ) $.
    rrhf.3 $e |- ( ph -> Z e. NrmMod ) $.
    rrhf.4 $e |- ( ph -> ( chr ` R ) = 0 ) $.
    rrhf.5 $e |- ( ph -> R e. CUnifSp ) $.
    rrhf.6 $e |- ( ph -> ( UnifSt ` R ) = ( metUnif ` D ) ) $.
    $( If the topology of ` R ` is Hausdorff, and ` R ` is a complete uniform
       space, then the canonical homomorphism from the real numbers to ` R ` is
       continuous.  (Contributed by Thierry Arnoux, 17-Jan-2018.) $)
    rrhcn $p |- ( ph -> ( RRHom ` R ) e. ( J Cn K ) ) $=
      ( cfv crefld crrh cqqh ccnext co ccn ctps wcel wceq cxme cnrg cngp nrgngp
      ngpxms 3syl xmstps syl rrhval cq cuss ccnfld cress cr rebase cioo crn ctg
      ctopn retopn eqtri eqid df-refld oveq1i cvv wss reex qssre ressabs eqtr2i
      mp2an fveq2i ccms cmt recms cmsms mstps mp2b a1i cusp recusp cuspusp mp1i
      ccusp cmopn cha xmstopn cxmt xmsxmet methaus eqeltrd cmetu cds cxp qqhucn
      cucn cres eqcomd oveq2d eleqtrd ccl fveq1i qdensere ucnextcn ) ADUASZDUBS
      ZEFUCUDSZEFUEUDADUFUGZXMXOUHADUIUGZXPADUJUGDUKUGXQNDULDUMUNZDUOUPZDEFUFIK
      UQUPAURTUSSZUTURVAUDZUSSZDUSSZXNEFTDVBBVCJEVDVEVFSZTVGSIVHVIKXTVJYATURVAU
      DZUSYEUTVBVAUDZURVAUDZYATYFURVAVKVLVBVMUGURVBVNZYGYAUHVOVPVBURUTVMVQVSVRV
      TYCVJTUFUGZATWAUGTWBUGYIWCTWDTWEWFWGTWLUGTWHUGAWITWJWKXSQAFCWMSZWNAXQFYJU
      HXRCFDBKJHWOUPAXQCBWPSUGYJWNUGXRCDBJHWQCYJBYJVJWRUNWSYHAVPWGAXNYBCWTSZXDU
      DYBYCXDUDABYADYBYKGJYAVJYBVJCDXASBBXBXEWTHVTLNMOPXCAYKYCYBXDAYCYKRXFXGXHU
      REXISZSZVBUHAYMURYDXISZSVBURYLYNEYDXIIVTXJXKVIWGXLWS $.

    $( If the topology of ` R ` is Hausdorff, Cauchy sequences have at most one
       limit, i.e. the canonical homomorphism of ` RR ` into ` R ` is a
       function.  (Contributed by Thierry Arnoux, 2-Nov-2017.) $)
    rrhf $p |- ( ph -> ( RRHom ` R ) : RR --> B ) $=
      ( cr wcel crrh cfv wf cuni cioo crn ctg ccn co eqid uniretop cnf syl cxme
      rrhcn ctps wceq cnrg cngp nrgngp ngpxms 3syl xmstps tpsuni feq3d mpbird )
      ASBDUAUBZUCSFUDZVGUCZAVGUEUFUGUBZFUHUITVIABCDVJFGHVJUJJKLMNOPQRUOVGVJFSVH
      UKVHUJULUMABVHVGSADUNTZDUPTBVHUQADURTDUSTVKNDUTDVAVBDVCBFDJKVDVBVEVF $.
  $}

  $( Define the class of extensions of ` RR ` .  This is a shorthand for
     listing the necessary conditions for a structure to admit a canonical
     embedding of ` RR ` into it.  Interestingly, this is not coming from a
     mathematical reference, but was from the necessary conditions to build the
     embedding at each step ( ` ZZ ` , ` QQ ` and ` RR ` ).  It would be
     interesting see if this is formally treated in the literature.  See
     ~ isrrext for a better readable version.  (Contributed by Thierry Arnoux,
     2-May-2018.) $)
  df-rrext $a |- RRExt = { r e. ( NrmRing i^i DivRing ) |
     ( ( ( ZMod ` r ) e. NrmMod /\ ( chr ` r ) = 0 ) /\ ( r e. CUnifSp
     /\ ( UnifSt ` r ) = ( metUnif ` ( ( dist ` r )
     |` ( ( Base ` r ) X. ( Base ` r ) ) ) ) ) ) } $.

  ${
    $d r D $.  $d r R $.  $d r Z $.
    isrrext.b $e |- B = ( Base ` R ) $.
    isrrext.v $e |- D = ( ( dist ` R ) |` ( B X. B ) ) $.
    isrrext.z $e |- Z = ( ZMod ` R ) $.
    $( Express the property " ` R ` is an extension of ` RR ` ".  (Contributed
       by Thierry Arnoux, 2-May-2018.) $)
    isrrext $p |- ( R e. RRExt <-> ( ( R e. NrmRing /\ R e. DivRing ) /\
      ( Z e. NrmMod /\ ( chr ` R ) = 0 ) /\ ( R e. CUnifSp
      /\ ( UnifSt ` R ) = ( metUnif ` D ) ) ) ) $=
      ( vr cnrg cdr wcel cnlm cchr cfv cc0 wceq wa ccusp cuss fveq2 crrext elin
      cin cmetu w3a anbi1i cv czlm cds cbs eleq1d eleq1i syl6bbr eqeq1d anbi12d
      cres eleq1 syl6eqr sqxpeqd reseq12d fveq2d eqeq12d df-rrext elrab2 3anass
      cxp 3bitr4i ) CIJUCZKZDLKZCMNZOPZQZCRKZCSNZBUDNZPZQZQZQCIKCJKQZVSQCUAKVTV
      MVRUEVIVTVSCIJUBUFHUGZUHNZLKZWAMNZOPZQZWARKZWASNZWAUINZWAUJNZWJVFZUPZUDNZ
      PZQZQVSHCVHUAWACPZWFVMWOVRWPWCVJWEVLWPWCCUHNZLKVJWPWBWQLWACUHTUKDWQLGULUM
      WPWDVKOWACMTUNUOWPWGVNWNVQWACRUQWPWHVOWMVPWACSTWPWLBUDWPWLCUINZAAVFZUPBWP
      WIWRWKWSWACUITWPWJAWPWJCUJNAWACUJTEURUSUTFURVAVBUOUOHVCVDVTVMVRVEVG $.
  $}

  $( An extension of ` RR ` is a normed ring.  (Contributed by Thierry Arnoux,
     2-May-2018.) $)
  rrextnrg $p |- ( R e. RRExt -> R e. NrmRing ) $=
    ( crrext wcel cnrg cdr wa czlm cfv cnlm cchr cc0 wceq cuss cds cbs cxp cres
    ccusp cmetu eqid isrrext simp1bi simpld ) ABCZADCZAECZUDUEUFFAGHZICAJHKLFAR
    CAMHANHAOHZUHPQZSHLFUHUIAUGUHTUITUGTUAUBUC $.

  $( An extension of ` RR ` is a division ring.  (Contributed by Thierry
     Arnoux, 2-May-2018.) $)
  rrextdrg $p |- ( R e. RRExt -> R e. DivRing ) $=
    ( crrext wcel cnrg cdr wa czlm cfv cnlm cchr cc0 wceq cuss cds cbs cxp cres
    ccusp cmetu eqid isrrext simp1bi simprd ) ABCZADCZAECZUDUEUFFAGHZICAJHKLFAR
    CAMHANHAOHZUHPQZSHLFUHUIAUGUHTUITUGTUAUBUC $.

  ${
    rrextnlm.z $e |- Z = ( ZMod ` R ) $.
    $( The norm of an extension of ` RR ` is absolutely homogeneous.
       (Contributed by Thierry Arnoux, 2-May-2018.) $)
    rrextnlm $p |- ( R e. RRExt -> Z e. NrmMod ) $=
      ( crrext wcel cnlm cchr cfv cc0 wceq cnrg cdr ccusp cuss cds cbs cxp cres
      wa eqid cmetu isrrext simp2bi simpld ) ADEZBFEZAGHIJZUEAKEALESUFUGSAMEANH
      AOHAPHZUHQRZUAHJSUHUIABUHTUITCUBUCUD $.
  $}

  $( The ring characteristic of an extension of ` RR ` is zero.  (Contributed
     by Thierry Arnoux, 2-May-2018.) $)
  rrextchr $p |- ( R e. RRExt -> ( chr ` R ) = 0 ) $=
    ( crrext wcel czlm cfv cnlm cchr cc0 wceq cnrg cdr wa cuss cds cbs cxp cres
    ccusp cmetu eqid isrrext simp2bi simprd ) ABCZADEZFCZAGEHIZUDAJCAKCLUFUGLAR
    CAMEANEAOEZUHPQZSEILUHUIAUEUHTUITUETUAUBUC $.

  $( An extension of ` RR ` is a complete uniform space.  (Contributed by
     Thierry Arnoux, 2-May-2018.) $)
  rrextcusp $p |- ( R e. RRExt -> R e. CUnifSp ) $=
    ( crrext wcel ccusp cuss cfv cds cbs cxp cres cmetu wceq cnrg cdr czlm cnlm
    wa cchr cc0 eqid isrrext simp3bi simpld ) ABCZADCZAEFAGFAHFZUFIJZKFLZUDAMCA
    NCQAOFZPCARFSLQUEUHQUFUGAUIUFTUGTUITUAUBUC $.

  $( An extension of ` RR ` is a topological space.  (Contributed by Thierry
     Arnoux, 7-Sep-2018.) $)
  rrexttps $p |- ( R e. RRExt -> R e. TopSp ) $=
    ( crrext wcel cxme ctps cnrg cngp rrextnrg nrgngp ngpxms 3syl xmstps syl )
    ABCZADCZAECNAFCAGCOAHAIAJKALM $.

  ${
    rrexthaus.1 $e |- K = ( TopOpen ` R ) $.
    $( The topology of an extension of ` RR ` is Hausdorff.  (Contributed by
       Thierry Arnoux, 7-Sep-2018.) $)
    rrexthaus $p |- ( R e. RRExt -> K e. Haus ) $=
      ( crrext wcel cds cfv cbs cxp cres cmopn cha cxme wceq cnrg cngp rrextnrg
      nrgngp 3syl eqid ngpxms xmstopn syl cxmt xmsxmet methaus eqeltrd ) ADEZBA
      FGAHGZUIIJZKGZLUHAMEZBUKNUHAOEAPEULAQARAUASZUJBAUICUITZUJTZUBUCUHULUJUIUD
      GEUKLEUMUJAUIUNUOUEUJUKUIUKTUFSUG $.
  $}

  ${
    rrextust.b $e |- B = ( Base ` R ) $.
    rrextust.d $e |- D = ( ( dist ` R ) |` ( B X. B ) ) $.
    $( The uniformity of an extension of ` RR ` is the uniformity generated by
       its distance.  (Contributed by Thierry Arnoux, 2-May-2018.) $)
    rrextust $p |- ( R e. RRExt -> ( UnifSt ` R ) = ( metUnif ` D ) ) $=
      ( crrext wcel ccusp cuss cfv cmetu wceq cnrg cdr czlm cnlm cchr cc0 eqid
      wa isrrext simp3bi simprd ) CFGZCHGZCIJBKJLZUDCMGCNGTCOJZPGCQJRLTUEUFTABC
      UGDEUGSUAUBUC $.
  $}

  $( The field of the real numbers is an extension of the real numbers.
     (Contributed by Thierry Arnoux, 2-May-2018.) $)
  rerrext $p |- RRfld e. RRExt $=
    ( crefld crrext wcel cnrg cdr wa czlm cfv cnlm cchr cc0 wceq ccusp cuss cds
    cr ccnfld resubdrg pm3.2i eqid cxp cmetu csubrg cnnrg simpli df-refld mp2an
    cres subrgnrg simpri cofld reofld ofldchr ax-mp recusp reust rebase isrrext
    rezh mpbir3an ) ABCADCZAECZFAGHZICZAJHKLZFAMCZANHAOHPPUAUHZUBHLZFVAVBQDCPQU
    CHCZVAUDVIVBRUEPQAUFUIUGVIVBRUJSVDVEUSAUKCVEULAUMUNSVFVHUOUPSPVGAVCUQVGTVCT
    URUT $.

  $( The field of the complex numbers is an extension of the real numbers.
     (Contributed by Thierry Arnoux, 2-May-2018.) $)
  cnrrext $p |- CCfld e. RRExt $=
    ( ccnfld crrext wcel cnrg cdr wa czlm cfv cnlm cchr cc0 ccusp pm3.2i crefld
    wceq cr ax-mp eqid cc cres cuss cabs cmin cmetu cnnrg cndrng cress df-refld
    ccom cnzh co fveq2i reofld ofldchr csubrg resubdrg simpli subrgchr 3eqtr3ri
    cofld cnfldcusp cnflduss cnfldbas cxp cds wfn cme wf cnmet metf ffn fnresdm
    mp2b cnfldds reseq1i eqtr3i isrrext mpbir3an ) ABCADCZAECZFAGHZICZAJHZKOZFA
    LCZAUAHZUBUCUIZUDHOZFVSVTUEUFMWBWDUJNJHZAPUGUKZJHZKWCNWJJUHULNUTCWIKOUMNUNQ
    PAUOHCZWKWCOWLNECUPUQPAURQUSMWEWHVAWFWFRVBMSWGAWAVCWGSSVDZTZWGAVEHZWMTWGWMV
    FZWNWGOWGSVGHCWMPWGVHWPVIWGSVJWMPWGVKVMWMWGVLQWGWOWMVNVOVPWARVQVR $.

  $( The topology of the field of the rational numbers.  (Contributed by
     Thierry Arnoux, 29-Aug-2020.) $)
  qqtopn $p |- ( ( TopOpen ` RRfld ) |`t QQ ) = ( TopOpen ` ( CCfld |`s QQ ) )
    $=
    ( cioo crn ctg cq crest co crefld ctopn ccnfld cress retopn oveq1i df-refld
    cfv cr cvv wcel wss wceq reex qssre ressabs mp2an eqtr2i resstopn eqtr3i )
    ABCNZDEFGHNZDEFIDJFZHNUGUHDEKLDUIUGGGDJFIOJFZDJFZUIGUJDJMLOPQDORUKUISTUAODI
    PUBUCUDKUEUF $.

  ${
    rrhfe.b $e |- B = ( Base ` R ) $.
    $( If ` R ` is an extension of ` RR ` , then the canonical homomorphism of
       ` RR ` into ` R ` is a function.  (Contributed by Thierry Arnoux,
       2-May-2018.) $)
    rrhfe $p |- ( R e. RRExt -> ( RRHom ` R ) : RR --> B ) $=
      ( crrext wcel cds cfv cxp cres cioo crn ctopn czlm eqid rrextdrg rrextnrg
      ctg rrextnlm rrextchr rrextcusp rrextust rrhf ) BDEABFGAAHIZBJKQGZBLGZBMG
      ZUCNZUDNCUENUFNZBOBPBUFUHRBSBTAUCBCUGUAUB $.
  $}

  ${
    rrhcne.j $e |- J = ( topGen ` ran (,) ) $.
    rrhcne.k $e |- K = ( TopOpen ` R ) $.
    $( If ` R ` is an extension of ` RR ` , then the canonical homomorphism of
       ` RR ` into ` R ` is continuous.  (Contributed by Thierry Arnoux,
       2-May-2018.) $)
    rrhcne $p |- ( R e. RRExt -> ( RRHom ` R ) e. ( J Cn K ) ) $=
      ( wcel cbs cfv cds cxp cres czlm eqid rrextdrg rrextnrg rrextnlm rrextchr
      crrext rrextcusp rrextust rrhcn ) ARFAGHZAIHUBUBJKZABCALHZUCMZDUBMZEUDMZA
      NAOAUDUGPAQASUBUCAUFUETUA $.
  $}

  ${
    rrhfvale.j $e |- J = ( topGen ` ran (,) ) $.
    rrhfvale.k $e |- K = ( TopOpen ` R ) $.
$(
    @( Necessary condition for the ` RRHom ` homomorphism to have values.
       @)
    rrhlim @p |- ( ( R e. RRExt /\ X e. RR ) -> ( ( K fLimf
      ( ( ( nei ` J ) ` { X } ) |`t QQ ) ) ` ( QQHom ` R ) ) =/= (/) ) @=
      ? @.
    @d A x @.  @d J x @.  @d K x @.  @d R x @.
    rrhfvale.h @e |- H = ( RRHom ` R ) @.
    @( Value of the canonical embedding of ` RR ` into ` R ` at a given point
       ` A ` .  (Contributed by Thierry Arnoux, 8-Sep-2018.) @)
    rrhfvale @p |- ( ( R e. RRExt /\ A e. RR ) -> ( H ` A ) =
     U. ( ( K fLimf ( ( ( nei ` J ) ` { A } ) |`t QQ ) ) ` ( QQHom ` R ) ) ) @=
      ( vx crrext wcel cr cfv co cq cuni wceq eqid a1i ccl cqqh ccnext csn cnei
      wa crest cflf crrh rrhval adantr syl5eq fveq1d cioo crn ctg unieqi eqtr4i
      uniretop ctop retop eqeltri rrexthaus cbs cdr cchr rrextdrg rrextchr cdvr
      wf czrh qqhf syl2anc ctps wb rrexttps tpsuni feq3 3syl mpbid qssre fveq2i
      cc0 wss fveq1i qdensere eqtri cv rrhlim cnextfvval eqtrd ) BJKZALKZUEZACM
      ABUAMZDEUBNMZMWNEAUCDUDMMOUFNUGNMPWMACWOWMCBUHMZWOHWKWPWOQWLBDEJFGUIUJUKU
      LWKIOEPZLWNDEALUMUNUOMZPDPURDWRFUPUQWQRDUSKWKDWRUSFUTVASBEGVBWKOBVCMZWNVI
      ZOWQWNVIZWKBVDKBVEMWBQWTBVFBVGWSBVHMZBBVJMZWSRZXBRXCRVKVLWKBVMKWSWQQWTXAV
      NBVOWSEBXDGVPWSWQOWNVQVRVSOLWCWKVTSODTMZMZLQWKXFOWRTMZMLOXEXGDWRTFWAWDWEW
      FSBDEIWGFGWHWIWJ @.
$)
  $}

  $( The ` RRHom ` homomorphism leaves rational numbers unchanged.
     (Contributed by Thierry Arnoux, 27-Mar-2018.) $)
  rrhqima $p |- ( ( R e. RRExt /\ Q e. QQ ) ->
    ( ( RRHom ` R ) ` Q ) = ( ( QQHom ` R ) ` Q ) ) $=
    ( crrext wcel cq wa crrh cfv ctopn co wceq eqid adantr cr a1i crest ccn cdr
    cnrg oveq1i cqqh cioo crn ctg ccnext rrhval fveq1d cuni uniretop ctop retop
    cha rrexthaus wss qssre crefld cin czlm cnlm cc0 rrextnrg rrextdrg rrextnlm
    cchr elind rrextchr ccnfld cress qqtopn qqhcn syl3anc retopn syl6eleq simpr
    eqcomi cnextfres eqtrd ) BCDZAEDZFZABGHZHZABUAHZUBUCUDHZBIHZUEJHZHZAWCHVRWB
    WGKVSVRAWAWFBWDWECWDLWELZUFUGMVTEWEUHZNWCWDWEAUIWILWDUJDVTUKOVRWEULDVSBWEWH
    UMMENUNVTUOOVRWCWDEPJZWEQJZDVSVRWCUPIHZEPJZWEQJZWKVRBSRUQDBURHZUSDBVDHUTKWC
    WNDVRSRBBVABVBVEBWOWOLZVCBVFVGEVHJZBWMWEWOWQLVIWPWHVJVKWMWJWEQWLWDEPWDWLVLV
    OTTVMMVRVSVNVPVQ $.

$(
  @( The canonical homomorphism from the real numbers to any complete field is
     a monoid homomorphism. @)
  rrhmhm @p |- ( R e. RRExt
    -> ( RRHom ` R ) e. ( ( CCfld |`s RR ) MndHom R ) ) @=
    ? @.
$)

  ${
    $( The image of ` 0 ` by the ` RRHom ` homomorphism is the ring's zero.
       (Contributed by Thierry Arnoux, 22-Oct-2017.) $)
    rrh0 $p |- ( R e. RRExt -> ( ( RRHom ` R ) ` 0 ) = ( 0g ` R ) ) $=
      ( crrext wcel cc0 crrh cfv cqqh c0g cq wceq cz zssq 0z sselii simpl simpr
      wa rrhqima syl2anc eqid mpan2 cchr rrextdrg rrextchr cdvr czrh qqh0 eqtrd
      cdr cbs ) ABCZDAEFFZDAGFFZAHFZUKDICZULUMJZKIDLMNUKUOQUKUOUPUKUOOUKUOPDARS
      UAUKAUICAUBFDJUMUNJAUCAUDAUJFZAUEFZAAUFFZUQTURTUSTUGSUH $.
  $}

$(
      rrhrhm.3 @e |- ( ph -> R e. CUnifSp ) @.
      rrhrhm.1 @e |- W = ( CCfld |`s RR ) @.
      @( The ` RRHom ` homomorphism is a ring homomorphism if the target
         structure is a complete field.  @)
      rrhrhm @p |- ( ph -> ( RRHom ` R ) e. ( W RingHom R ) ) @=
        ? @.
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Embedding from the extended real numbers into a complete lattice
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c RR*Hom $.

  $( Map the extended real numbers into a complete lattice. $)
  cxrh $a class RR*Hom $.

  ${
    $d r x $.
    $( Define an embedding from the extended real number into a complete
       lattice.  (Contributed by Thierry Arnoux, 19-Feb-2018.) $)
    df-xrh $a |- RR*Hom = ( r e. _V |->
      ( x e. RR* |-> if ( x e. RR , ( ( RRHom ` r ) ` x ) ,
        if ( x = +oo , ( ( lub ` r ) ` ( ( RRHom ` r ) " RR ) ) ,
                       ( ( glb ` r ) ` ( ( RRHom ` r ) " RR ) ) ) ) ) ) $.
  $}

  ${
    $d r x R $.  $d r B $.  $d r L $.  $d r U $.
    xrhval.b $e |- B = ( ( RRHom ` R ) " RR ) $.
    xrhval.l $e |- L = ( glb ` R ) $.
    xrhval.u $e |- U = ( lub ` R ) $.
    $( The value of the embedding from the extended real numbers into a
       complete lattice.  (Contributed by Thierry Arnoux, 19-Feb-2018.) $)
    xrhval $p |- ( R e. V -> ( RR*Hom ` R ) = ( x e. RR* |->
      if ( x e. RR , ( ( RRHom ` R ) ` x ) ,
         if ( x = +oo , ( U ` B ) , ( L ` B ) ) ) ) ) $=
      ( vr wcel cfv cxr cr crrh wceq cif club cglb fveq2 cxrh cv cpnf cmpt elex
      cvv cima fveq1d syl6eqr imaeq1d fveq12d ifeq12d mpteq2dv xrex mptex fvmpt
      df-xrh syl ) CFKCUFKCUALAMAUBZNKZUSCOLZLZUSUCPZBDLZBELZQZQZUDZPCFUEJCAMUT
      USJUBZOLZLZVCVJNUGZVIRLZLZVLVISLZLZQZQZUDVHUFUAVICPZAMVRVGVSUTVKVBVQVFVSU
      SVJVAVICOTZUHVSVCVNVDVPVEVSVLBVMDVSVMCRLDVICRTIUIVSVLVANUGBVSVJVANVTUJGUI
      ZUKVSVLBVOEVSVOCSLEVICSTHUIWAUKULULUMAJUQAMVGUNUOUPUR $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Canonical embeddings into the ordered field of the real numbers
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( The ` ZRHom ` homomorphism for the real number structure is the identity.
     (Contributed by Thierry Arnoux, 31-Oct-2017.) $)
  zrhre $p |- ( ZRHom ` RRfld ) = ( _I |` ZZ ) $=
    ( vn crefld czrh cfv cz cv c1 cmg co cmpt cid cres cdr wcel crg wceq ccnfld
    cr csubrg eqid resubdrg simpri drngring re1r zrhval2 mp2b cmul remulg mpan2
    1re zre ax-1rid syl eqtrd mpteq2ia mptresid 3eqtri ) BCDZAEAFZGBHDZIZJZAEUS
    JKELBMNZBONURVBPRQSDNVCUAUBBUCBUTGAURURTUTTUDUEUFAEVAUSUSENZVAUSGUGIZUSVDGR
    NVAVEPUJGUSUHUIVDUSRNVEUSPUSUKUSULUMUNUOAEUPUQ $.

  $( The ` QQHom ` homomorphism for the real number structure is the identity.
     (Contributed by Thierry Arnoux, 31-Oct-2017.) $)
  qqhre $p |- ( QQHom ` RRfld ) = ( _I |` QQ ) $=
    ( vq crefld cfv cq cmpt cid cres wceq cr wcel cc0 cz wf1 ax-mp zrhre rebase
    wb mp2b co cdiv cqqh cv wtru wf cchr ccnfld csubrg resubdrg simpri drngring
    cdr crg czrh wss wf1o f1oi f1of1 zssre f1ss mp2an f1eq1 mpbir zrhchr mpbiri
    eqid re0g cdvr qqhf a1i feqmptd trud cnumer cdenom qqhvval mpanl12 ffvelrnd
    wne f1f qnumcl qdencl nnzd wa anim1i ccnv csn cima zrhf1ker mpbi eleq2i wfn
    ffn fniniseg fvex elsn 3bitr3ri sylibr nnne0d adantr neneqd pm2.65da neqned
    redvr syl3anc fveq1i fvresi syl5eq syl oveq12d qeqnumdivden eqtr4d mpteq2ia
    3eqtrd mptresid 3eqtri ) BUACZADAUBZXOCZEZADXPEFDGXOXRHUCADIXODIXOUDZUCBUKJ
    ZBUECKHZXSIUFUGCJXTUHUIZXTBULJZYAYBBUJZYCYALIBUMCZMZYFLIFLGZMZLLYGMZLIUNYHL
    LYGUOYILUPLLYGUQNURLLIYGUSUTYEYGHYFYHQOLIYEYGVANVBZIBYEKPYEVEZVFVCVDRZIBVGC
    ZBYEPYMVEZYKVHUTVIVJVKADXQXPXPDJZXQXPVLCZYECZXPVMCZYECZYMSZYQYSTSZXPXTYAYOX
    QYTHYBYLIYMXPBYEPYNYKVNVOYOYQIJYSIJYSKVQYTUUAHYOLIYPYELIYEUDZYOYFUUBYJLIYEV
    RNZVIZXPVSZVPYOLIYRYEUUDYOYRXPVTZWAZVPYOYSKYOYSKHZYRKHZYOUUHWBZYRLJZUUHWBZU
    UIYOUUKUUHUUGWCYRYEWDKWEZWFZJZYRUUMJUULUUIUUNUUMYRYFUUNUUMHZYJXTYCYFUUPQYBY
    DIBYEKPYKVFWGRWHWIUUBYELWJUUOUULQUUCLIYEWKLKYRYEWLRYRKXPVMWMWNWOWPUUJYRKYOY
    RKVQUUHYOYRUUFWQWRWSWTXAYQYSXBXCYOUUAYPYRTSXPYOYQYPYSYRTYOYPLJZYQYPHUUEUUQY
    QYPYGCYPYPYEYGOXDLYPXEXFXGYOUUKYSYRHUUGUUKYSYRYGCYRYRYEYGOXDLYRXEXFXGXHXPXI
    XJXLXKADXMXN $.

  ${
    $d a b x $.
    $( The ` RRHom ` homomorphism for the real numbers structure is the
       identity.  (Contributed by Thierry Arnoux, 22-Oct-2017.) $)
    rrhre $p |- ( RRHom ` RRfld ) = ( _I |` RR ) $=
      ( va vb crefld cfv cid cr cres wceq wtru cq uniretop wcel co retopn retop
      a1i ax-mp wss qssre cvv vx crrh cioo crn ctg cha rehaus crrext ccn rrhcne
      rerrext eqid mp1i ctopon ctop toptopon mpbi idcn ccnext wf wf1o f1oi f1of
      fss mp2an ccl qdensere cv csn cnei crest cflf c0 wne cima wrex wi wral wa
      cin simplr simpr opnneip syl3anc fvex qex elrestr mp3an12 syl inss2 inss1
      resiima eqsstri imaeq2 sseq1d rspcev syl2anc ex ralrimiva ancli wb eleq2i
      cfil biimpri trnei mpbid isflf mp3an13 mpbird ne0i adantl creg cusp ccusp
      recusp cuspusp uspreg resabs1 cnrest eqeltrri cnextfres1 trud recms elexi
      cqqh ccms rrhval qqhre fveq2i eqtri reseq1i 3eqtr4i hauseqcn ) CUBDZEFGZH
      IJYNYOUCUDUEDZYPFKYPUFLZIUGPZCUHLYNYPYPUIMZLIUKCYPYPYPULZNUJUMYOYSLZIYPFU
      NDLZUUAYPUOLZUUBOYPFKUPUQZYPFURQZPYNJGZYOJGZHIEJGZYPYPUSMZDZJGZUUHUUFUUGU
      UKUUHHIUAJFFUUHYPYPKKUUCIOPYRJFUUHUTZIJJUUHUTZJFRZUULJJUUHVAUUMJVBJJUUHVC
      QSJJFUUHVDVEZPUUNISPZJYPVFDDZFHIVGPZUAVHZFLZUUHYPUUSVIZYPVJDZDZJVKMZVLMDZ
      VMVNZIUUTUUSUVELZUVFUUTUVGUUTUUSAVHZLZUUHBVHZVOZUVHRZBUVDVPZVQZAYPVRZVSZU
      UTUVOUUTUVNAYPUUTUVHYPLZVSZUVIUVMUVRUVIVSZUVHJVTZUVDLZUUHUVTVOZUVHRZUVMUV
      SUVHUVCLZUWAUVSUUCUVQUVIUWDUUCUVSOPUUTUVQUVIWAUVRUVIWBUUSYPUVHWCWDUVCTLJT
      LUWDUWAUVAUVBWEWFUVHJUVCTTWGWHWIUWCUVSUWBUVTUVHUVTJRUWBUVTHUVHJWJJUVTWLQU
      VHJWKWMPUVLUWCBUVTUVDUVJUVTHUVKUWBUVHUVJUVTUUHWNWOWPWQWRWSWTUUTUVDJXCDLZU
      VGUVPXAZUUTUUSUUQLZUWEUWGUUTUUQFUUSVGXBXDUUBUUNUUTUWGUWEXAUUDSJUUSYPFXEWH
      XFUUBUWEUULUWFUUDUUOUUSAUUHYPUVDFJBXGXHWIXIUVEUUSXJWIXKYPXLLZICXMLZYQUWHC
      XNLUWIXOCXPQUGYPCNXQVEPUUHYPJVKMYPUIMZLIUUGUUHUWJUUNUUGUUHHSEJFXRQZUUAUUN
      UUGUWJLUUESJYOYPYPFKXSVEXTPYAYBYNUUJJYNCYEDZUUIDZUUJCTLYNUWMHCYFYCYDCYPYP
      TYTNYGQUWLUUHUUIYHYIYJYKUWKYLPUUPUURYMYB $.
  $}

$( End $[ set-mbox-ta-rrhom.mm $] $)


$( Begin $[ set-mbox-ta-man.mm $] $)
$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Topological Manifolds
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Found this and was curious about how manifolds would be expressed in set.mm:
  https://mathoverflow.net/questions/336367/real-manifolds-in-a-theorem-prover

  This chapter proposes to define first Manifold topologies, which characterise
  topological manifold, and then to extends the structure with presentations,
  i.e. equivalence classes of atlases for a given topological space. We suggest
  to use the extensible structures to define the "topological space" aspect of
  topological manifolds, and then extend it with charts/presentations.

$)

  $c ManTop $.

  $( The class of n-manifold topologies. $)
  cmntop $a class ManTop $.

  ${
    $d n j $.
    $( Define the class of N-manifold topologies, as 2nd countable, Hausdorff
       topologies, locally homeomorphic to a ball of the Euclidean space of
       dimension N. (Contributed by Thierry Arnoux, 22-Dec-2019.) $)
    df-mntop $a |- ManTop = { <. n , j >. |
      ( n e. NN0 /\ ( j e. 2ndc /\ j e. Haus
        /\ j e. Locally [ ( TopOpen ` ( EEhil ` n ) ) ] ~= ) ) } $.

    $( Manifold is a relation.  (Contributed by Thierry Arnoux,
       28-Dec-2019.) $)
    relmntop $p |- Rel ManTop $=
      ( vn vj cv cn0 wcel c2ndc cha cehl cfv ctopn chmph cec clly w3a wa cmntop
      df-mntop relopabi ) ACZDEBCZFETGETSHIJIKLMENOABPBAQR $.
  $}

  ${
    $d J j n u x y $.  $d N j n u x y $.
    $( Property of being a manifold.  (Contributed by Thierry Arnoux,
       28-Dec-2019.) $)
    ismntoplly $p |- ( ( N e. NN0 /\ J e. V ) ->
      ( N ManTop J <-> ( J e. 2ndc /\ J e. Haus /\ J e. Locally
      [ ( TopOpen ` ( EEhil ` N ) ) ] ~= ) ) ) $=
      ( vn vj cn0 wcel wa cmntop c2ndc cha cehl cfv ctopn chmph cec clly eleq1d
      w3a wceq wbr simpl simpr fveq2 fveq2d eceq1d syl adantr eleq12d 3anbi123d
      cv llyeq anbi12d df-mntop brabga biantrurd bitr4d ) BFGZACGZHZBAIUAURAJGZ
      AKGZABLMZNMZOPZQZGZSZHZVHDUKZFGZEUKZJGZVLKGZVLVJLMZNMZOPZQZGZSZHVIDEBAIFC
      VJBTZVLATZHZVKURVTVHWCVJBFWAWBUBRWCVMVAVNVBVSVGWCVLAJWAWBUCZRWCVLAKWDRWCV
      LAVRVFWDWAVRVFTZWBWAVQVETWEWAVPVDOWAVOVCNVJBLUDUEUFVQVEULUGUHUIUJUMEDUNUO
      UTURVHURUSUBUPUQ $.

    $( Property of being a manifold.  (Contributed by Thierry Arnoux,
       5-Jan-2020.) $)
    ismntop $p |- ( ( N e. NN0 /\ J e. V ) -> ( N ManTop J <-> ( J e. 2ndc
      /\ J e. Haus /\ A. x e. J A. y e. x E. u e. ( J i^i ~P x ) ( y e. u /\
        ( J |`t u ) ~= ( TopOpen ` ( EEhil ` N ) ) ) ) ) ) $=
      ( wcel wa wbr cfv chmph w3a cv wrex wral wb ctop a1i anbi2d 3anass cmntop
      cn0 c2ndc cha cehl ctopn cec clly crest cpw cin ismntoplly haustop adantl
      co biantrurd wer wrel hmpher errel relelec mp2b hmphsymb rexbidv 2ralbidv
      bitr2i islly 3bitr4rd pm5.32da 3bitr4g adantr bitrd ) EUBGZDFGZHEDUAIDUCG
      ZDUDGZDEUEJUFJZKUGZUHGZLZVOVPBMCMZGZDWAUIUOZVQKIZHZCDAMZUJUKZNZBWFOADOZLZ
      DEFULVMVTWJPVNVMVOVPVSHZHVOVPWIHZHVTWJVMWKWLVOVMVPVSWIVMVPHZWBWCVRGZHZCWG
      NZBWFOADOZDQGZWQHZWIVSWMWRWQVPWRVMDUMUNUPWMWHWPABDWFWMWEWOCWGWMWDWNWBWDWN
      PWMWNVQWCKIZWDQKUQKURWNWTPUSQKUTWCVQKVAVBVQWCVCVFRSVDVEVSWSPWMABCVRDVGRVH
      VISVOVPVSTVOVPWITVJVKVL $.
  $}

$(
  @( The real line is a manifold of dimension 1.  (Contributed by Thierry
     Arnoux, 4-Jan-2020.) @)
    remntop @p |- ( TopOpen ` RRfld ) e. ( ManTop " { 1 } ) @=
      ? @.

  @{
    circmntop.f @e |- F = ( x e. RR |-> ( exp ` ( _i x. x ) ) ) @.
    circmntop.c @e |- C = ( `' abs " { 1 } ) @.
    circmntop.w @e |- W = ( ( F "s RRfld ) |`s C ) @.
    @( The unit circle is a manifold of dimension 1.  (Contributed by Thierry
       Arnoux, 4-Jan-2020.) @)
    circmntop @p |- ( TopOpen ` W ) e. ( ManTop " { 1 } ) @=
      ? @.
  @}
$)

$( End $[ set-mbox-ta-man.mm $] $)


$( Begin $[ set-mbox-ta-logb.mm $] $)
$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Real and complex functions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Integer powers - misc. additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d k A $.  $d k n B $.
    $( A lower bound for an exponentiation.  (Contributed by Thierry Arnoux,
       19-Aug-2017.) $)
    nexple $p |- ( ( A e. NN0 /\ B e. RR /\ 2 <_ B ) -> A <_ ( B ^ A ) ) $=
      ( wcel c2 cle wbr cexp co cc0 wceq wa simpr wi c1 id oveq2 breq12d imbi2d
      a1i letrd vk vn cn0 cr w3a cn simpl2 simpl3 cv caddc simpl 1nn0 1red 1le2
      2re expge1d cmul nnnn0d nn0red readdcld 3ad2ant2 remulcld reexpcld nnge1d
      simp1 leadd2dd recnd times2d breqtrrd nn0ge0d lemul2ad 0red 0le2 lemul1ad
      simp2r simp3 expp1d 3exp a2d nnind 3impib syl3anc 0le1 oveq2d exp0d eqtrd
      3brtr4d wo elnn0 biimpi 3ad2ant1 mpjaodan ) AUCCZBUDCZDBEFZUEZAUFCZABAGHZ
      EFZAIJZWPWQKWQWNWOWSWPWQLWMWNWOWQUGWMWNWOWQUHWQWNWOWSWNWOKZUAUIZBXBGHZEFZ
      MXANBNGHZEFZMXAUBUIZBXGGHZEFZMXAXGNUJHZBXJGHZEFZMXAWSMUAUBAXBNJZXDXFXAXMX
      BNXCXEEXMOXBNBGPQRXBXGJZXDXIXAXNXBXGXCXHEXNOXBXGBGPQRXBXJJZXDXLXAXOXBXJXC
      XKEXOOXBXJBGPQRXBAJZXDWSXAXPXBAXCWREXPOXBABGPQRXABNWNWOUKZNUCCXAULSXANDBX
      AUMDUDCZXAUOSZXQNDEFXAUNSWNWOLZTUPXGUFCZXAXIXLYAXAXIXLYAXAXIUEZXJXHBUQHZX
      KEYBXJXGBUQHZYCYBXGNYBXGYBXGYAXAXIVEZURZUSZYBUMZUTZYBXGBYGXAYAWNXIXQVAZVB
      ZYBXHBYBBXGYJYFVCZYJVBYBXJXGDUQHZYDYIYBXGDYGXRYBUOSZVBYKYBXJXGXGUJHYMEYBN
      XGXGYHYGYGYBXGYEVDVFYBXGYBXGYGVGVHVIYBDBXGYNYJYGYBXGYFVJYAWNWOXIVOVKTYBXG
      XHBYGYLYJXAYAIBEFXIXAIDBXAVLXSXQIDEFXAVMSXTTVAYAXAXIVPVNTYBBXGYBBYJVGYFVQ
      VIVRVSVTWAWBWPWTKZINAWREINEFYOWCSWPWTLZYOWRBIGHNYOAIBGYPWDYOBYOBWMWNWOWTU
      GVGWEWFWGWMWNWQWTWHZWOWMYQAWIWJWKWL $.
  $}

$( End $[ set-mbox-ta-logb.mm $] $)


$( Begin $[ set-mbox-ta-ind.mm $] $)
$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Indicator Functions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c _Ind $.

  $( Extend class notation with the indicator function generator. $)
  cind $a class _Ind $.

  ${
    $d a o x $.
    $( Define the indicator function generator.  (Contributed by Thierry
       Arnoux, 20-Jan-2017.) $)
    df-ind $a |- _Ind = ( o e. _V |-> ( a e. ~P o |->
                                    ( x e. o |-> if ( x e. a , 1 , 0 ) ) ) ) $.
  $}

  ${
    $d a o x O $.  $d a o V $.
    $( Value of the indicator function generator with domain ` O ` .
       (Contributed by Thierry Arnoux, 23-Aug-2017.) $)
    indv $p |- ( O e. V ->
     ( _Ind ` O ) = ( a e. ~P O |-> ( x e. O |-> if ( x e. a , 1 , 0 ) ) ) ) $=
      ( vo wcel cpw cc0 cif cmpt cvv cind wceq df-ind a1i pweq mpteq1 mpteq12dv
      cv c1 adantl elex pwexg mptexg 3syl fvmptd ) BCFZEBDESZGZAUHASDSFTHIZJZJZ
      DBGZABUJJZJZKLKLEKULJMUGAEDNOUHBMZULUOMUGUPDUIUKUMUNUHBPAUHBUJQRUABCUBZUG
      BKFUMKFUOKFUQBKUCDUMUNKUDUEUF $.

    $d a x A $.
    $( Value of the indicator function generator for a set ` A ` and a domain
       ` O ` .  (Contributed by Thierry Arnoux, 2-Feb-2017.) $)
    indval $p |- ( ( O e. V /\ A C_ O ) ->
               ( ( _Ind ` O ) ` A ) = ( x e. O |-> if ( x e. A , 1 , 0 ) ) ) $=
      ( va wcel wss wa cv c1 cc0 cif cmpt cpw cind cfv cvv wceq indv adantr syl
      eleq2 ifbid mpteq2dv adantl simpr ssexg ancoms elpwg mpbird mptexg fvmptd
      wb ) CDFZBCGZHZEBACAIZEIZFZJKLZMZACUQBFZJKLZMZCNZCOPZQUNVFEVEVAMRUOACDEST
      URBRZVAVDRUPVGACUTVCVGUSVBJKURBUQUBUCUDUEUPBVEFZUOUNUOUFUPBQFZVHUOUMUOUNV
      IBCDUGUHBCQUIUAUJUNVDQFUOACVCDUKTUL $.
  $}

  ${
    $d x A $.  $d x O $.
    $( Alternate value of the indicator function generator.  (Contributed by
       Thierry Arnoux, 2-Feb-2017.) $)
    indval2 $p |- ( ( O e. V /\ A C_ O ) -> ( ( _Ind ` O ) ` A ) =
                              ( ( A X. { 1 } ) u. ( ( O \ A ) X. { 0 } ) ) ) $=
      ( vx wcel wss cfv csn c1 cc0 cxp ciun wceq syl6eq sneqd xpeq2d iunxpconst
      cun iuneq2i eqtri wa cind cif cdif cmpt dfmpt3 indval undif biimpi adantl
      cv iuneq1d 3eqtr4a iunxun iftrue wn eldifn iffalse syl uneq12i ) BCEZABFZ
      UAZABUBGGZDADUKZHZVEAEZIJUCZHZKZLZDBAUDZVJLZRZAIHZKZVLJHZKZRVCVDDAVLRZVJL
      ZVNVCDBVHUEDBVJLVDVTDBVHUFDABCUGVCDVSBVJVBVSBMZVAVBWAABUHUIUJULUMDAVLVJUN
      NVKVPVMVRVKDAVFVOKZLVPDAVJWBVGVIVOVFVGVHIVGIJUOOPSDAVOQTVMDVLVFVQKZLVRDVL
      VJWCVEVLEZVIVQVFWDVGUPZVIVQMVEBAUQWEVHJVGIJUROUSPSDVLVQQTUTN $.
  $}

  ${
    $d x A $.  $d x O $.  $d x V $.
    $( An indicator function as a function with domain and codomain.
       (Contributed by Thierry Arnoux, 13-Aug-2017.) $)
    indf $p |- ( ( O e. V /\ A C_ O ) ->
                                    ( ( _Ind ` O ) ` A ) : O --> { 0 , 1 } ) $=
      ( vx wcel wss wa cv c1 cc0 cif cpr cind cfv indval cr 1re 0re ifpr mp2an
      prcom eleqtri a1i fmpt3d ) BCEABFGZDBDHZAEZIJKZJILZABMNNDABCOUHUIEUEUFBEG
      UHIJLZUIIPEJPEUHUJEQRUGIJPPSTIJUAUBUCUD $.

    $d x X $.
    $( Value of the indicator function.  (Contributed by Thierry Arnoux,
       13-Aug-2017.) $)
    indfval $p |- ( ( O e. V /\ A C_ O /\ X e. O ) ->
      ( ( ( _Ind ` O ) ` A ) ` X ) = if ( X e. A , 1 , 0 ) ) $=
      ( vx wcel wss w3a cv c1 cc0 cif cind cfv cr cmpt wceq indval 3adant3 wa
      simpr eleq1d ifbid simp3 1re 0re keepel a1i fvmptd ) BCFZABGZDBFZHZEDEIZA
      FZJKLZDAFZJKLZBABMNNZOUJUKUSEBUPPQULEABCRSUMUNDQZTZUOUQJKVAUNDAUMUTUAUBUC
      UJUKULUDUROFUMUQJKOUEUFUGUHUI $.
  $}

  $( Value of the indicator function where it is ` 1 ` .  (Contributed by
     Thierry Arnoux, 14-Aug-2017.) $)
  ind1 $p |- ( ( O e. V /\ A C_ O /\ X e. A ) ->
                                          ( ( ( _Ind ` O ) ` A ) ` X ) = 1 ) $=
    ( wcel wss w3a cind cfv c1 cc0 cif wceq simp2 simp3 sseldd indfval syld3an3
    iftrue 3ad2ant3 eqtrd ) BCEZABFZDAEZGZDABHIIIZUDJKLZJUBUCUDDBEUFUGMUEABDUBU
    CUDNUBUCUDOPABCDQRUDUBUGJMUCUDJKSTUA $.

  $( Value of the indicator function where it is ` 0 ` .  (Contributed by
     Thierry Arnoux, 14-Aug-2017.) $)
  ind0 $p |- ( ( O e. V /\ A C_ O /\ X e. ( O \ A ) ) ->
                                          ( ( ( _Ind ` O ) ` A ) ` X ) = 0 ) $=
    ( wcel wss cdif w3a cind cfv c1 cc0 wceq eldifi indfval syl3an3 wn 3ad2ant3
    cif eldifn iffalsed eqtrd ) BCEZABFZDBAGEZHZDABIJJJZDAEZKLSZLUEUCUDDBEUGUIM
    DBANABCDOPUFUHKLUEUCUHQUDDBATRUAUB $.

  $( Value of the indicator function where it is ` 1 ` .  (Contributed by
     Thierry Arnoux, 22-Aug-2017.) $)
  ind1a $p |- ( ( O e. V /\ A C_ O /\ X e. O ) ->
                           ( ( ( ( _Ind ` O ) ` A ) ` X ) = 1 <-> X e. A ) ) $=
    ( wcel wss w3a cind cfv c1 wceq cc0 cif indfval eqeq1d wa wn eqid biantru
    wo ax-1ne0 neii biorfi bianfi orbi2i 3bitri eqif eqcom 3bitr2ri syl6bb ) BC
    EABFDBEGZDABHIIIZJKDAEZJLMZJKZUMUKULUNJABCDNOUMUMJJKZPZUMQZJLKZPZTZJUNKUOUM
    UQUQUSTVAUPUMJRSUSUQJLUAUBZUCUSUTUQUSURVBUDUEUFUMJJLUGJUNUHUIUJ $.

  ${
    $d x A $.  $d x O $.  $d x V $.
    $( Preimage of the singleton ` { 1 } ` by the indicator function.  See
       ~ i1f1lem .  (Contributed by Thierry Arnoux, 21-Aug-2017.) $)
    indpi1 $p |- ( ( O e. V /\ A C_ O ) ->
                                   ( `' ( ( _Ind ` O ) ` A ) " { 1 } ) = A ) $=
      ( vx wcel wss wa cind cfv ccnv c1 csn cima cv wb ind1a 3expia pm5.32d cc0
      wceq cpr wf wfn indf ffn fniniseg 3syl ssel pm4.71rd adantl 3bitr4d eqrdv
      ) BCEZABFZGZDABHIIZJKLMZAUODNZBEZURUPIKTZGZUSURAEZGZURUQEZVBUOUSUTVBUMUNU
      SUTVBOABCURPQRUOBSKUAZUPUBUPBUCVDVAOABCUDBVEUPUEBKURUPUFUGUNVBVCOUMUNVBUS
      ABURUHUIUJUKUL $.
  $}

  ${
    $d x A $.  $d x O $.  $d x ph $.
    indsum.1 $e |- ( ph -> O e. Fin ) $.
    indsum.2 $e |- ( ph -> A C_ O ) $.
    indsum.3 $e |- ( ( ph /\ x e. O ) -> B e. CC ) $.
    $( TODO: shorten using ~ sumss2 ! $)
    $( Finite sum of a product with the indicator function / Cartesian product
       with the indicator function.  (Contributed by Thierry Arnoux,
       14-Aug-2017.) $)
    indsum $p |- ( ph -> sum_ x e. O ( ( ( ( _Ind ` O ) ` A ) ` x ) x. B )
                        = sum_ x e. A B ) $=
      ( cfv cmul co csu wcel wa cc0 c1 cfn syldan wceq adantr cv cind cc sselda
      cpr cr pr01ssre wss indf syl2anc ffvelrnda sseldi recnd mulcld cdif simpr
      wf ind0 syl3anc oveq1d difssd mul02d eqtrd fsumss mulid2d sumeq2dv eqtr3d
      ind1 ) ACBUAZCEUBIIZIZDJKZBLEVLBLCDBLACEVLBGAVICMZVIEMZVLUCMACEVIGUDZAVNN
      ZVKDVPVKVPOPUEZUFVKUGAEVQVIVJAEQMZCEUHZEVQVJUQFGCEQUIUJUKULUMHUNRAVIECUOZ
      MZNZVLODJKZOWBVKODJWBVRVSWAVKOSAVRWAFTAVSWAGTAWAUPCEQVIURUSUTAWAVNWCOSAVT
      EVIAECVAUDVPDHVBRVCFVDACVLDBAVMNZVLPDJKZDWDVKPDJWDVRVSVMVKPSAVRVMFTAVSVMG
      TAVMUPCEQVIVHUSUTAVMVNWEDSVOVPDHVERVCVFVG $.
  $}

  ${
    $d k A $.  $d k B $.  $d k O $.  $d k ph $.
    indsumin.1 $e |- ( ph -> O e. V ) $.
    indsumin.2 $e |- ( ph -> A e. Fin ) $.
    indsumin.3 $e |- ( ph -> A C_ O ) $.
    indsumin.4 $e |- ( ph -> B C_ O ) $.
    indsumin.5 $e |- ( ( ph /\ k e. A ) -> C e. CC ) $.
    $( Finite sum of a product with the indicator function / Cartesian product
       with the indicator function.  (Contributed by Thierry Arnoux,
       11-Dec-2021.) $)
    indsumin $p |- ( ph -> sum_ k e. A ( ( ( ( _Ind ` O ) ` B ) ` k ) x. C )
                        = sum_ k e. ( A i^i B ) C ) $=
      ( cmul co csu cc0 wceq wcel adantr sselda cind cfv cin cdif caddc inindif
      cv c0 a1i cun inundif eqcomi wa c1 cpr cc cr pr01ssre ax-resscn sstri wss
      wf indf syl2anc ffvelrnd sseldi mulcld fsumsplit inss2 ind1 syl3anc inss1
      oveq1d syldan mulid2d eqtrd sumeq2dv ssdifd ind0 difssd cfn diffi syl cuz
      mul02d sumz olcs oveq12d infi fsumcl addid1d 3eqtrd ) ABEUGZCFUAUBUBZUBZD
      MNZEOBCUCZWPEOZBCUDZWPEOZUENWQDEOZPUENXAAWQWSWPBEWQWSUCUHQABCUFUIBWQWSUJZ
      QAXBBBCUKULUIIAWMBRZUMZWODXDPUNUOZUPWOXEUQUPURUSUTXDFXEWMWNAFXEWNVBZXCAFG
      RZCFVAZXFHKCFGVCVDSABFWMJTVEVFLVGVHAWRXAWTPUEAWQWPDEAWMWQRZUMZWPUNDMNDXJW
      OUNDMXJXGXHWMCRWOUNQAXGXIHSAXHXIKSAWQCWMWQCVAABCVIUITCFGWMVJVKVMXJDAXIXCD
      UPRZAWQBWMWQBVAABCVLUITLVNZVOVPVQAWTWSPEOZPAWSWPPEAWMWSRZUMZWPPDMNPXOWOPD
      MXOXGXHWMFCUDZRWOPQAXGXNHSAXHXNKSAWSXPWMABFCJVRTCFGWMVSVKVMXODAXNXCXKAWSB
      WMABCVTTLVNWEVPVQAWSWARZXMPQZABWARZXQIBCWBWCWSPWDUBVAXQXRWSEPWFWGWCVPWHAX
      AAWQDEAXSWQWARIBCWIWCXLWJWKWL $.
  $}

  ${
    $d A k l $.  $d B k l $.  $d F k l $.  $d O k l $.  $d k l ph $.
    prodindf.1 $e |- ( ph -> O e. V ) $.
    prodindf.2 $e |- ( ph -> A e. Fin ) $.
    prodindf.3 $e |- ( ph -> B C_ O ) $.
    prodindf.4 $e |- ( ph -> F : A --> O ) $.
    $( The product of indicators is one if and only if all values are in the
       set.  (Contributed by Thierry Arnoux, 11-Dec-2021.) $)
    prodindf $p |- ( ph -> prod_ k e. A ( ( ( _Ind ` O ) ` B ) ` ( F ` k ) )
      = if ( ran F C_ B , 1 , 0 ) ) $=
      ( vl cfv c1 wceq wral cc0 cif wcel adantr cind cprod crn wss fveq2 fveq2d
      cv wa cpr wf indf syl2anc ffvelrnda ffvelrnd fprodex01 eqeq1d cbvralv a1i
      wb ifbid cmpt eqid rnmptss nfv nfmpt1 nfrn nfcv nfss simplr feqmptd eqidd
      nfan fveq12d ralrimivw r19.21bi wfn ffn syl fneq1d mpbid fnfvelrn eqeltrd
      simpr adantlr sseldd ralrimi impbid2 ind1a syl3anc ralbidva rneqd 3bitr4d
      ex sseq1d 3eqtrd ) ABDUGZEMZCFUAMMZMZDUBLUGZEMZWRMZNOZLBPZNQRWSNOZDBPZNQR
      EUCZCUDZNQRABWSXBDLWPWTOWQXAWRWPWTEUEUFIAWPBSZUHZFQNUIZWQWRAFXKWRUJZXIAFG
      SZCFUDZXLHJCFGUKULTABFWPEKUMZUNUOAXDXFNQXDXFUSAXCXELDBWTWPOZXBWSNXPXAWQWR
      WTWPEUEUFUPUQURUTAXFXHNQAWQCSZDBPZDBWQVAZUCZCUDZXFXHAXRYADBWQCXSXSVBVCAYA
      XRAYAUHZXQDBAYADADVDDXTCDXSDBWQVEVFDCVGVHVLYBXIXQYBXIUHXTCWQAYAXIVIAXIWQX
      TSYAXJWQWPXSMZXTAWQYCOZDBAYDDBAWPWPEXSADBFEKVJZAWPVKVMVNVOXJXSBVPZXIYCXTS
      AYFXIAEBVPZYFABFEUJYGKBFEVQVRABEXSYEVSVTTAXIWCBWPXSWAULWBWDWEWMWFWMWGAXEX
      QDBXJXMXNWQFSXEXQUSAXMXIHTAXNXIJTXOCFGWQWHWIWJAXGXTCAEXSYEWKWNWLUTWO $.
  $}

  ${
    $d a x O $.  $d a V $.
    $( The bijection between a power set and the set of indicator functions.
       (Contributed by Thierry Arnoux, 14-Aug-2017.) $)
    indf1o $p |- ( O e. V ->
                        ( _Ind ` O ) : ~P O -1-1-onto-> ( { 0 , 1 } ^m O ) ) $=
      ( va vx wcel cpw cc0 c1 cpr cmap co cind cfv wf1o wel cif cmpt cr id 0red
      1red wne 0ne1 a1i eqid pw2f1o wceq wb indv f1oeq1 syl mpbird ) ABEZAFZGHI
      AJKZALMZNZUNUOCUNDADCOHGPQQZNZUMCDAGHURBRUMSUMTUMUAGHUBUMUCUDURUEUFUMUPUR
      UGUQUSUHDABCUIUNUOUPURUJUKUL $.
  $}

  ${
    $d x F $.  $d x O $.  $d x V $.
    $( A function with range ` { 0 , 1 } ` as an indicator of the preimage of
       ` { 1 } ` .  (Contributed by Thierry Arnoux, 23-Aug-2017.) $)
    indpreima $p |- ( ( O e. V /\ F : O --> { 0 , 1 } ) ->
                                   F = ( ( _Ind ` O ) ` ( `' F " { 1 } ) ) ) $=
      ( vx wcel cc0 c1 cpr wf wa cfv wfn ffn adantl wceq syl ffvelrnda syl6eleq
      simpr wb ccnv csn cima cind wss cdm cnvimass fdm syl5sseq syldan cv prcom
      indf simpll adantr ind1a syl3anc fniniseg baibd bitr2d elpreq eqfnfvd ) B
      CEZBFGHZAIZJZDBAAUAGUBZUCZBUDKKZVEABLZVCBVDAMNZVFBVDVIIZVIBLVCVEVHBUEZVLV
      FAUFZVHBAVGUGVEVNBOVCBVDAUHNUIZVHBCUMUJZBVDVIMPVFDUKZBEZJZGFVQAKZVQVIKZVS
      VTVDGFHZVFBVDVQAVCVESQFGULZRVSWAVDWBVFBVDVQVIVPQWCRVSWAGOZVQVHEZVTGOZVSVC
      VMVRWDWETVCVEVRUNVFVMVRVOUOVFVRSVHBCVQUPUQVFWEVRWFVFVJWEVRWFJTVKBGVQAURPU
      SUTVAVB $.
  $}

  ${
    $d a f g O $.  $d a g V $.
    $( The bijection between finite subsets and the indicator functions with
       finite support.  (Contributed by Thierry Arnoux, 22-Aug-2017.) $)
    indf1ofs $p |- ( O e. V -> ( ( _Ind ` O ) |` Fin ) : ( ~P O i^i Fin )
         -1-1-onto-> { f e. ( { 0 , 1 } ^m O ) | ( `' f " { 1 } ) e. Fin } ) $=
      ( vg va wcel cfn cfv cima cres wf1o cv ccnv c1 wss syl wceq wa syldan wb
      cpw cin cind csn cc0 cpr cmap crab wf1 indf1o f1of1 f1ores sylancl resres
      co inss1 wfn f1ofn fnresdm 3syl reseq1d syl5eqr eqidd simpll simpr sseldi
      wrex wf elpwid indf adantr feq1d mpbid prex elmapg biimpar syl2anc cnveqd
      cvv mpan imaeq1d indpi1 inss2 eqeltrd eqeltrrd jca rexlimdva cdm cnvimass
      biimpa fdm adantrr syl5sseq simprr elfpw sylanbrc indpreima eqcomd eqeq1d
      ex fveq2 rspcev impbid fvelimab cnveq eleq1d elrab a1i 3bitr4d f1oeq123d
      eqrdv ) BCFZBUAZGUBZBUCHZXNIZXOXNJZKZXNALZMZNUDZIZGFZAUENUFZBUGUOZUHZXOGJ
      ZKXLXMYEXOUIZXNXMOZXRXLXMYEXOKZYHBCUJZXMYEXOUKPXMGUPZXMYEXNXOULUMXLXNXNXP
      YFXQYGXLXQXOXMJZGJYGXOXMGUNXLYMXOGXLYJXOXMUQZYMXOQYKXMYEXOURZXMXOUSUTVAVB
      XLXNVCXLDXPYFXLELZXOHZDLZQZEXNVGZYRYEFZYRMZYAIZGFZRZYRXPFZYRYFFZXLYTUUEXL
      YSUUEEXNXLYPXNFZRZYSUUEUUIYSRZUUAUUDUUJXLBYDYRVHZUUAXLUUHYSVDUUJBYDYQVHZU
      UKUUIUULYSXLUUHYPBOZUULUUIYPBUUIXNXMYPYLXLUUHVEZVFVIZYPBCVJSVKUUJBYDYQYRU
      UIYSVEZVLVMXLUUAUUKYDVSFXLUUAUUKTUENVNYDBYRVSCVOVTZVPVQUUJYQMZYAIZUUCGUUJ
      UURUUBYAUUJYQYRUUPVRWAUUIUUSGFYSUUIUUSYPGXLUUHUUMUUSYPQUUOYPBCWBSUUIXNGYP
      XMGWCUUNVFWDVKWEWFWTWGXLUUEYTXLUUERZUUCXNFZUUCXOHZYRQZYTUUTUUCBOUUDUVAUUT
      YRWHZUUCBYRYAWIXLUUAUVDBQZUUDXLUUARUUKUVEXLUUAUUKUUQWJZBYDYRWKPWLWMXLUUAU
      UDWNUUCBWOWPXLUUAUVCUUDXLUUAUUKUVCUVFXLUUKRYRUVBYRBCWQWRSWLYSUVCEUUCXNYPU
      UCQYQUVBYRYPUUCXOXAWSXBVQWTXCXLYNYIUUFYTTXLYJYNYKYOPYLEXMXNYRXOXDUMUUGUUE
      TXLYCUUDAYRYEXSYRQZYBUUCGUVGXTUUBYAXSYRXEWAXFXGXHXIXKXJVM $.
  $}

$( End $[ set-mbox-ta-ind.mm $] $)


$( Begin $[ set-mbox-ta-esum.mm $] $)
$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Extended sum
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c sum* $. $( Summation sign. $)

  $( Extend class notation to include infinite summations. $)
  cesum $a class sum* k e. A B $.

  ${
    $( Define a short-hand for the possibly infinite sum over the extended
       nonnegative reals. ` sum* ` is relying on the properties of the
       ` tsums ` , developped by Mario Carneiro.  (Contributed by Thierry
       Arnoux, 21-Sep-2016.) $)
    df-esum $a |- sum* k e. A B =
      U. ( ( RR*s |`s ( 0 [,] +oo ) ) tsums ( k e. A |-> B ) ) $.
  $}

  $( An extended sum is a set by definition.  (Contributed by Thierry Arnoux,
     5-Sep-2017.) $)
  esumex $p |- sum* k e. A B e. _V $=
    ( cesum cxrs cc0 cpnf cicc co cress cmpt ctsu cuni cvv df-esum ovex eqeltri
    uniex ) ABCDEFGHIJIZCABKZLIZMNABCOUASTLPRQ $.

  ${
    $d k V $.
    esumcl.1 $e |- F/_ k A $.
    $( Closure for extended sum in the extended positive reals.  (Contributed
       by Thierry Arnoux, 2-Jan-2017.) $)
    esumcl $p |- ( ( A e. V /\ A. k e. A B e. ( 0 [,] +oo ) ) ->
                        sum* k e. A B e. ( 0 [,] +oo ) ) $=
      ( wcel cc0 cpnf cicc co wral wa cxrs cress cmpt ctsu cesum xrge0base eqid
      a1i ccmn xrge0cmn ctps xrge0tps simpl nfel1 nfra1 nfan nfcv fmptdF tsmscl
      simpr r19.21bi cuni wceq df-esum xrge0tsmsbi mpbiri sseldd ) ADFZBGHIJZFZ
      CAKZLZMVANJZCABOZPJZVAABCQZVDAVAVFVEDRVEUAFVDUBTVEUCFVDUDTUTVCUEZVDCABVAV
      FUTVCCCADEUFVBCAUGUHECVAUIVDVBCAUTVCULUMVFSUJZUKVDVHVGFVHVGUNUOABCUPVDAVH
      VFVEDVESVIVJUQURUS $.
  $}

  ${
    esumeq12dvaf.1 $e |- F/ k ph $.
    esumeq12dvaf.2 $e |- ( ph -> A = B ) $.
    esumeq12dvaf.3 $e |- ( ( ph /\ k e. A ) -> C = D ) $.
    $( Equality deduction for extended sum.  (Contributed by Thierry Arnoux,
       26-Mar-2017.) $)
    esumeq12dvaf $p |- ( ph -> sum* k e. A C = sum* k e. B D ) $=
      ( cxrs cc0 cpnf cicc co cmpt ctsu cuni cesum wceq df-esum wal wral alrimi
      cress cv wcel ex ralrimi mpteq12f syl2anc oveq2d unieqd 3eqtr4g ) AJKLMNU
      DNZFBDOZPNZQUNFCEOZPNZQBDFRCEFRAUPURAUOUQUNPABCSZFUADESZFBUBUOUQSAUSFGHUC
      AUTFBGAFUEBUFUTIUGUHFBDCEUIUJUKULBDFTCEFTUM $.
  $}

  ${
    $d k ph $.
    esumeq12dva.1 $e |- ( ph -> A = B ) $.
    esumeq12dva.2 $e |- ( ( ph /\ k e. A ) -> C = D ) $.
    $( Equality deduction for extended sum.  (Contributed by Thierry Arnoux,
       18-Feb-2017.)  (Revised by Thierry Arnoux, 29-Jun-2017.) $)
    esumeq12dva $p |- ( ph -> sum* k e. A C = sum* k e. B D ) $=
      ( nfv esumeq12dvaf ) ABCDEFAFIGHJ $.
  $}

  ${
    $d k ph $.
    esumeq12d.1 $e |- ( ph -> A = B ) $.
    esumeq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality deduction for extended sum.  (Contributed by Thierry Arnoux,
       18-Feb-2017.) $)
    esumeq12d $p |- ( ph -> sum* k e. A C = sum* k e. B D ) $=
      ( wceq cv wcel adantr esumeq12dva ) ABCDEFGADEIFJBKHLM $.
  $}

  ${
    $d k A $.  $d k B $.
    $( Equality theorem for an extended sum.  (Contributed by Thierry Arnoux,
       18-Feb-2017.) $)
    esumeq1 $p |- ( A = B -> sum* k e. A C = sum* k e. B C ) $=
      ( wceq id eqidd esumeq12d ) ABEZABCCDIFICGH $.
  $}

  ${
    esumeq1d.0 $e |- F/ k ph $.
    esumeq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for an extended sum.  (Contributed by Thierry Arnoux,
       19-Oct-2017.) $)
    esumeq1d $p |- ( ph -> sum* k e. A C = sum* k e. B C ) $=
      ( cv wcel wa eqidd esumeq12dvaf ) ABCDDEFGAEHBIJDKL $.
  $}

  ${
    $d k A $.
    $( Equality theorem for extended sum.  (Contributed by Thierry Arnoux,
       24-Dec-2016.) $)
    esumeq2 $p |- ( A. k e. A B = C -> sum* k e. A B = sum* k e. A C ) $=
      ( wceq wral cxrs cc0 cpnf cicc co cress cmpt ctsu cuni cesum eqid mpteq12
      mpan df-esum oveq2d unieqd 3eqtr4g ) BCEDAFZGHIJKLKZDABMZNKZOUEDACMZNKZOA
      BDPACDPUDUGUIUDUFUHUENAAEUDUFUHEAQDABACRSUAUBABDTACDTUC $.
  $}

  ${
    esumeq2d.0 $e |- F/ k ph $.
    esumeq2d.1 $e |- ( ph -> A. k e. A B = C ) $.
    $( Equality deduction for extended sum.  (Contributed by Thierry Arnoux,
       21-Sep-2016.) $)
    esumeq2d $p |- ( ph -> sum* k e. A B = sum* k e. A C ) $=
      ( eqidd wceq r19.21bi esumeq12dvaf ) ABBCDEFABHACDIEBGJK $.
  $}

  ${
    $d k ph $.
    esumeq2dv.1 $e |- ( ( ph /\ k e. A ) -> B = C ) $.
    $( Equality deduction for extended sum.  (Contributed by Thierry Arnoux,
       2-Jan-2017.) $)
    esumeq2dv $p |- ( ph -> sum* k e. A B = sum* k e. A C ) $=
      ( nfv wceq ralrimiva esumeq2d ) ABCDEAEGACDHEBFIJ $.
  $}

  ${
    $d k ph $.
    esumeq2sdv.1 $e |- ( ph -> B = C ) $.
    $( Equality deduction for extended sum.  (Contributed by Thierry Arnoux,
       25-Dec-2016.) $)
    esumeq2sdv $p |- ( ph -> sum* k e. A B = sum* k e. A C ) $=
      ( wceq cv wcel adantr esumeq2dv ) ABCDEACDGEHBIFJK $.
  $}

  ${
    nfesum1.1 $e |- F/_ k A $.
    $( Bound-variable hypothesis builder for extended sum.  (Contributed by
       Thierry Arnoux, 19-Oct-2017.) $)
    nfesum1 $p |- F/_ k sum* k e. A B $=
      ( cesum cxrs cc0 cpnf cicc cress cmpt ctsu cuni df-esum nfcv nfmpt1 nfuni
      co nfov nfcxfr ) CABCEFGHIRJRZCABKZLRZMABCNCUCCUAUBLCUAOCLOCABPSQT $.
  $}

  ${
    $d k x $.
    nfesum2.1 $e |- F/_ x A $.
    nfesum2.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for extended sum.  (Contributed by
       Thierry Arnoux, 2-May-2020.) $)
    nfesum2 $p |- F/_ x sum* k e. A B $=
      ( cesum cxrs cc0 cpnf cicc cress cmpt ctsu cuni df-esum nfcv nfmpt nfov
      co nfuni nfcxfr ) ABCDGHIJKTLTZDBCMZNTZOBCDPAUEAUCUDNAUCQANQADBCEFRSUAUB
      $.
  $}

  ${
    $d j k $.
    cbvesum.1 $e |- ( j = k -> B = C ) $.
    ${
      cbvesum.2 $e |- F/_ k A $.
      cbvesum.3 $e |- F/_ j A $.
      cbvesum.4 $e |- F/_ k B $.
      cbvesum.5 $e |- F/_ j C $.
      $( Change bound variable in an extended sum.  (Contributed by Thierry
         Arnoux, 19-Jun-2017.) $)
      cbvesum $p |- sum* j e. A B = sum* k e. A C $=
        ( cxrs cc0 cpnf cicc co cmpt ctsu cuni cesum df-esum cbvmptf 3eqtr4i
        cress oveq2i unieqi ) KLMNOUCOZDABPZQOZRUFEACPZQOZRABDSACESUHUJUGUIUFQD
        EABCHGIJFUAUDUEABDTACETUB $.
    $}

    $d A j k $.  $d B k $.  $d C j $.
    $( Change bound variable in an extended sum.  (Contributed by Thierry
       Arnoux, 19-Jun-2017.) $)
    cbvesumv $p |- sum* j e. A B = sum* k e. A C $=
      ( nfcv cbvesum ) ABCDEFEAGDAGEBGDCGH $.
  $}

  ${
    esumid.p $e |- F/ k ph $.
    esumid.0 $e |- F/_ k A $.
    esumid.1 $e |- ( ph -> A e. V ) $.
    esumid.2 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    esumid.3 $e |- ( ph -> C e. ( ( RR*s |`s ( 0 [,] +oo ) )
                                                  tsums ( k e. A |-> B ) ) ) $.
    $( Identify the extended sum as any limit points of the infinite sum.
       (Contributed by Thierry Arnoux, 9-May-2017.) $)
    esumid $p |- ( ph -> sum* k e. A B = C ) $=
      ( cxrs cc0 cpnf cicc co cress cmpt ctsu eqid cuni nfcv fmptdF xrge0tsmseq
      cesum df-esum syl6reqr ) ADLMNOPZQPZEBCRZSPUABCEUEABDUJUIFUITIAEBCUHUJGHE
      UHUBJUJTUCKUDBCEUFUG $.
  $}

  ${
    esumgsum.1 $e |- F/ k ph $.
    esumgsum.2 $e |- F/_ k A $.
    esumgsum.3 $e |- ( ph -> A e. Fin ) $.
    esumgsum.4 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    $( A finite extended sum is the group sum over the extended nonnegative
       real numbers.  (Contributed by Thierry Arnoux, 24-Apr-2020.) $)
    esumgsum $p |- ( ph -> sum* k e. A B
      = ( ( RR*s |`s ( 0 [,] +oo ) ) gsum ( k e. A |-> B ) ) ) $=
      ( cxrs cc0 cpnf cicc co cress cmpt cgsu cfn wcel a1i cxr xrge0base xrge00
      ccmn xrge0cmn ctps xrge0tps nfcv eqid fmptdF wfn cv ex ralrimi fnmptf syl
      wral 0xr fndmfifsupp tsmsid esumid ) ABCIJKLMZNMZDBCOZPMDQEFGHABVAVCVBQJU
      AUBVBUCRAUDSVBUERAUFSGADBCVAVCEFDVAUGHVCUHUIABVCTJACVARZDBUPVCBUJAVDDBEAD
      UKBRVDHULUMDBCVAFUNUOGJTRAUQSURUSUT $.
  $}

  ${
    $d k x $.  $d x A $.  $d x ph $.  $d x B $.
    esumval.p $e |- F/ k ph $.
    esumval.0 $e |- F/_ k A $.
    esumval.1 $e |- ( ph -> A e. V ) $.
    esumval.2 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    esumval.3 $e |- ( ( ph /\ x e. ( ~P A i^i Fin ) ) ->
                  ( ( RR*s |`s ( 0 [,] +oo ) ) gsum ( k e. x |-> B ) ) = C ) $.
    $( Develop the value of the extended sum.  (Contributed by Thierry Arnoux,
       4-Jan-2017.) $)
    esumval $p |- ( ph -> sum* k e. A B =
                     sup ( ran ( x e. ( ~P A i^i Fin ) |-> C ) , RR* , < ) ) $=
      ( cfn cmpt crn cxr clt cuni co cgsu cesum cpw cin csup csn cxrs cpnf cicc
      cc0 cress ctsu df-esum eqid nfcv fmptdF cv cres wcel wss wceq inss1 sseli
      wa elpwid adantl resmptf oveq2d eqtr2d mpteq2dva rneqd supeq1d xrge0tsmsd
      syl unieqd syl5eq xrltso supex unisn syl6eq ) ACDFUAZBCUBZMUCZENZOZPQUDZU
      EZRZWEAVTUFUIUGUHSZUJSZFCDNZUKSZRWGCDFULAWKWFACWEWJWIGBWIUMJAFCDWHWJHIFWH
      UNKWJUMUOAPWDBWBWIWJBUPZUQZTSZNZOQAWCWOABWBEWNAWLWBURZVCZWNWIFWLDNZTSEWQW
      MWRWITWQWLCUSZWMWRUTWPWSAWPWLCWBWAWLWAMVAVBVDVEFCWLDIFWLUNVFVMVGLVHVIVJVK
      VLVNVOWEPWDQVPVQVRVS $.
  $}

  ${
    $d x k $.  $d x A $.  $d k V $.  $d x ph $.  $d x B $.
    esumel.1 $e |- F/ k ph $.
    esumel.2 $e |- F/_ k A $.
    esumel.3 $e |- ( ph -> A e. V ) $.
    esumel.4 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    $( The extended sum is a limit point of the corresponding infinite group
       sum.  (Contributed by Thierry Arnoux, 24-Mar-2017.) $)
    esumel $p |- ( ph -> sum* k e. A B e.
                     ( ( RR*s |`s ( 0 [,] +oo ) ) tsums ( k e. A |-> B ) ) ) $=
      ( vx cesum co cmpt wcel cv syl eqid nfcv cgsu cfn csn cxrs cc0 cpnf cress
      cicc ctsu wral ex ralrimi esumcl syl2anc snidg fmptdF cres cpw cin wa wss
      wceq inss1 simpr sseldi elpwid resmptf eqcomd esumval xrge0tsmsd eleqtrrd
      oveq2d ) ABCDKZVKUAZUBUCUDUFLZUELZDBCMZUGLAVKVMNZVKVLNABENCVMNZDBUHVPHAVQ
      DBFADOBNVQIUIUJBCDEGUKULVKVMUMPABVKVOVNEJVNQHADBCVMVOFGDVMRIVOQUNAJBCVNVO
      JOZUOZSLDEFGHIAVRBUPZTUQZNZURZDVRCMZVSVNSWCVSWDWCVRBUSVSWDUTWCVRBWCWAVTVR
      VTTVAAWBVBVCVDDBVRCGDVRRVEPVFVJVGVHVI $.
  $}

  ${
    $d x y $.  $d y A $.
    $( Extended sum over the empty set.  (Contributed by Thierry Arnoux,
       19-Feb-2017.) $)
    esumnul $p |- sum* x e. (/) A = 0 $=
      ( vy c0 cfn cin cc0 cmpt cxr clt csup csn wceq wtru cvv wcel 0ex a1i cgsu
      co cesum cpw nftru nfcv cpnf cicc wral ral0 r19.21bi cv cxrs cress ineq1i
      crn pw0 0fin wss snssi df-ss sylib ax-mp eqtri eleq2i velsn sylbb mpteq1d
      mpt0 syl6eq oveq2d xrge00 gsum0 adantl esumval trud cxp fconstmpt wfn wne
      eqcomi wb rgenw eqid fnmpt snnz eqnetri fconst5 mp2an mpbi supeq1i xrltso
      0xr wor supsn 3eqtri ) DBAUAZCDUBZEFZGHZUNZIJKZGLZIJKZGWOWTMNCDBGAOAUCADU
      DDOPNQRNBGUEUFTZPZADXDADUGNXDAUHRUICUJZWQPZUKXCULTZAXEBHZSTZGMNXFXIXGDSTG
      XFXHDXGSXFXHADBHDXFAXEDBXFXEDLZPXEDMWQXJXEWQXJEFZXJWPXJEUOUMDEPZXKXJMZUPX
      LXJEUQXMDEURXJEUSUTVAVBZVCCDVDVEVFABVGVHVIXGGVJVKVHVLVMVNIWSXAJWRWQXAVOZM
      ZWSXAMZXOWRCWQGVPVSWRWQVQZWQDVRXPXQVTGIPZCWQUGXRXSCWQWKWACWQGWRIWRWBWCVAW
      QXJDXNDQWDWEWQGWRWFWGWHWIIJWLXSXBGMWJWKIGJWMWGWN $.
  $}

  ${
    esum0.k $e |- F/_ k A $.
    $d x A $.  $d k x V $.
    $( Extended sum of zero.  (Contributed by Thierry Arnoux, 3-Mar-2017.) $)
    esum0 $p |- ( A e. V -> sum* k e. A 0 = 0 ) $=
      ( vx wcel cc0 cfn cmpt cxr clt csup co cv wa a1i wceq cvv mp2an c0 cpw id
      cesum nfel1 cpnf cicc 0e0iccpnf cxrs cress cgsu cmnd ccmn xrge0cmn cmnmnd
      cin crn ax-mp vex xrge00 esumval csn cxp fconstmpt eqcomi wfn wne wb wral
      gsumz 0xr rgenw eqid fnmpt 0elpw 0fin elin mpbir2an ne0ii fconst5 supeq1d
      mpbi wor xrltso supsn syl6eq eqtrd ) ACFZAGBUCEAUAZHUOZGIZUPZJKLZGWGEAGGB
      CBACDUDDWGUBGGUEUFMZFWGBNAFOUGPUHWMUIMZBENZGIUJMGQZWGWOWIFOWNUKFZWORFWPWN
      ULFWQUMWNUNUQEURWOBWNRGUSVISPUTWGWLGVAZJKLZGWGJWKWRKWKWRQZWGWJWIWRVBZQZWT
      XAWJEWIGVCVDWJWIVEZWITVFXBWTVGGJFZEWIVHXCXDEWIVJVKEWIGWJJWJVLVMUQTWITWIFT
      WHFTHFAVNVOTWHHVPVQVRWIGWJVSSWAPVTJKWBXDWSGQWCVJJGKWDSWEWF $.
  $}

  ${
    $d k n $.  $d k A $.  $d k C $.  $d k G $.  $d k ph $.
    esumf1o.0 $e |- F/ n ph $.
    esumf1o.b $e |- F/_ n B $.
    esumf1o.d $e |- F/_ k D $.
    esumf1o.a $e |- F/_ n A $.
    esumf1o.c $e |- F/_ n C $.
    esumf1o.f $e |- F/_ n F $.
    esumf1o.1 $e |- ( k = G -> B = D ) $.
    esumf1o.2 $e |- ( ph -> A e. V ) $.
    esumf1o.3 $e |- ( ph -> F : C -1-1-onto-> A ) $.
    esumf1o.4 $e |- ( ( ph /\ n e. C ) -> ( F ` n ) = G ) $.
    esumf1o.5 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    $( Re-index an extended sum using a bijection.  (Contributed by Thierry
       Arnoux, 6-Apr-2017.) $)
    esumf1o $p |- ( ph -> sum* k e. A B = sum* n e. C D ) $=
      ( cxrs cc0 cpnf cicc co cress cmpt ctsu cuni ccom xrge0base ccmn xrge0cmn
      cesum wcel a1i ctps xrge0tps eqid fmptd tsmsf1o cv wa wf1o f1of ffvelrnda
      cfv wf syl eqeltrrd ralrimi feqmptdf mpteq2da eqtrd eqidd fmptcof2 oveq2d
      ex unieqd df-esum 3eqtr4g ) AUBUCUDUEUFZUGUFZFBCUHZUIUFZUJWDGDEUHZUIUFZUJ
      BCFUODEGUOAWFWHAWFWDWEHUKZUIUFWHABWCDWEWDHJULWDUMUPAUNUQWDURUPAUSUQRAFBCW
      CWEUAWEUTVASVBAWIWGWDUIAGFDBICEHWELMONKAIBUPZGDKAGVCZDUPZWJAWLVDWKHVHZIBT
      ADBWKHADBHVEDBHVISDBHVFVJZVGVKVSVLAHGDWMUHGDIUHAGDBHOPWNVMAGDWMIKTVNVOAWE
      VPQVQVRVOVTBCFWADEGWAWB $.
  $}

  ${
    $d k y z $.  $d y z A $.  $d y B $.  $d y z C $.  $d y ph $.
    esumc.0 $e |- F/_ k D $.
    esumc.1 $e |- F/ k ph $.
    esumc.2 $e |- F/_ k A $.
    esumc.3 $e |- ( y = C -> D = B ) $.
    esumc.4 $e |- ( ph -> A e. V ) $.
    esumc.5 $e |- ( ph -> Fun `' ( k e. A |-> C ) ) $.
    esumc.6 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    esumc.7 $e |- ( ( ph /\ k e. A ) -> C e. W ) $.
    $( Convert from the collection form to the class-variable form of a sum.
       (Contributed by Thierry Arnoux, 10-May-2017.) $)
    esumc $p |- ( ph ->
                       sum* k e. A B = sum* y e. { z | E. k e. A z = C } D ) $=
      ( wceq wcel cv wrex cab cesum cmpt cvv nfcv nfab nfmpt1 elex syl abrexexd
      nfre1 wfn ccnv wfun crn wf1o wral ex ralrimi fnmptf eqid rnmpt a1i dff1o2
      syl3anbrc wa cfv simpr fvmpt2f syl2anc cc0 cpnf cicc co vex eqeq1 rexbidv
      elab reximi sylbi nfel eleq1 syl5ibrcom rexlimd imp sylan2 esumf1o eqcomd
      wi ) ACUAZFSZHDUBZCUCZGBUDDEHUDAWOGDEBHHDFUEZFUFLKBEUGWNHCWMHDUMUHMHDFUIN
      AHCDFMADITDUFTODIUJUKULAWPDUNZWPUOUPWPUQWOSZDWOWPURAFJTZHDUSWQAWSHDLAHUAZ
      DTZWSRUTVAHDFJMVBUKPWRAHCDFWPWPVCVDVEDWOWPVFVGAXAVHZXAWSWTWPVIFSAXAVJRHDF
      JMVKVLBUAZWOTZAGESZHDUBZGVMVNVOVPZTZXDXCFSZHDUBZXFWNXJCXCBVQWLXCSWMXIHDWL
      XCFVRVSVTXIXEHDNWAWBAXFXHAXEXHHDLHGXGKHXGUGWCAXAXEXHWKXBXHXEEXGTQGEXGWDWE
      UTWFWGWHWIWJ $.
  $}

  ${
    $d A y z $.  $d B y z $.  $d C k $.  $d D y $.  $d W k $.  $d ph k y z $.
    esumrnmpt.0 $e |- F/_ k A $.
    esumrnmpt.1 $e |- ( y = B -> C = D ) $.
    esumrnmpt.2 $e |- ( ph -> A e. V ) $.
    esumrnmpt.3 $e |- ( ( ph /\ k e. A ) -> D e. ( 0 [,] +oo ) ) $.
    esumrnmpt.4 $e |- ( ( ph /\ k e. A ) -> B e. ( W \ { (/) } ) ) $.
    esumrnmpt.5 $e |- ( ph -> Disj_ k e. A B ) $.
    $( Rewrite an extended sum into a sum on the range of a mapping function.
       (Contributed by Thierry Arnoux, 27-May-2020.) $)
    esumrnmpt $p |- ( ph -> sum* y e. ran ( k e. A |-> B ) C = sum* k e. A D )
      $=
      ( vz cesum cv wceq wrex cab cmpt crn c0 csn cdif nfcv disjdsct esumc eqid
      nfv rnmpt esumeq1 ax-mp syl6reqr ) ACFGQPRDSGCTPUAZEBQZGCDUBZUCZEBQZABPCF
      DEGHIUDUEUFGEUGAGUKZJKLAGCDIVAJNOUHMNUIUSUPSUTUQSGPCDURURUJULUSUPEBUMUNUO
      $.
  $}

  ${
    esumsplit.1 $e |- F/ k ph $.
    esumsplit.2 $e |- F/_ k A $.
    esumsplit.3 $e |- F/_ k B $.
    esumsplit.4 $e |- ( ph -> A e. _V ) $.
    esumsplit.5 $e |- ( ph -> B e. _V ) $.
    esumsplit.6 $e |- ( ph -> ( A i^i B ) = (/) ) $.
    esumsplit.7 $e |- ( ( ph /\ k e. A ) -> C e. ( 0 [,] +oo ) ) $.
    esumsplit.8 $e |- ( ( ph /\ k e. B ) -> C e. ( 0 [,] +oo ) ) $.
    $( Split an extended sum into two parts.  (Contributed by Thierry Arnoux,
       9-May-2017.) $)
    esumsplit $p |- ( ph -> sum* k e. ( A u. B ) C =
                                        ( sum* k e. A C +e sum* k e. B C ) ) $=
      ( cesum cxad co cvv wcel cmpt ctsu cun nfun unexg syl2anc cv wo cpnf cicc
      cc0 elun jaodan sylan2b cxrs cress xrge0base xrge0plusg ccmn xrge0cmn a1i
      ctmd xrge0tmd nfcv eqid fmptdF cres esumel wceq ssun1 resmptf mp1i oveq2d
      wss eleqtrrd ssun2 eqidd tsmssplit esumid ) ABCUAZDBDENZCDENZOPEQFEBCGHUB
      ZABQRCQRVRQRIJBCQQUCUDZEUEZVRRAWCBRZWCCRZUFDUIUGUHPZRZWCBCUJAWDWGWELMUKUL
      ZAVRWFBCOEVRDSZUMWFUNPZQVSVTUOUPWJUQRAURUSWJUTRAVAUSWBAEVRDWFWIFWAEWFVBWH
      WIVCVDAVSWJEBDSZTPWJWIBVEZTPABDEQFGILVFAWLWKWJTBVRVLWLWKVGABCVHEVRBDWAGVI
      VJVKVMAVTWJECDSZTPWJWICVEZTPACDEQFHJMVFAWNWMWJTCVRVLWNWMVGACBVNEVRCDWAHVI
      VJVKVMKAVRVOVPVQ $.
  $}

  ${
    $d k A $.  $d k C $.
    esummono.f $e |- F/ k ph $.
    esummono.c $e |- ( ph -> C e. V ) $.
    esummono.b $e |- ( ( ph /\ k e. C ) -> B e. ( 0 [,] +oo ) ) $.
    esummono.a $e |- ( ph -> A C_ C ) $.
    $( Extended sum is monotonic.  (Contributed by Thierry Arnoux,
       19-Oct-2017.) $)
    esummono $p |- ( ph -> sum* k e. A B <_ sum* k e. C B ) $=
      ( cesum co cle cc0 wbr cpnf wcel cvv syl2anc cxr cdif cxad cicc difexg cv
      wral syl simpr eldifad syldan ralrimi nfcv esumcl elxrge0 simprbi iccssxr
      wa ex wi ssexd sselda sseldi xraddge02 mpd cun cin wceq disjdif esumsplit
      c0 a1i wss undif sylib esumeq1d eqtr3d breqtrd ) ABCEKZVRDBUAZCEKZUBLZDCE
      KZMANVTMOZVRWAMOZAVTNPUCLZQZWCAVSRQZCWEQZEVSUFWFADFQWGHDBFUDUGZAWHEVSGAEU
      EZVSQZWHAWKWJDQZWHAWKUQWJDBAWKUHUIIUJZURUKVSCEREVSULZUMSZWFVTTQZWCVTUNUOU
      GAVRTQWPWCWDUSAWETVRNPUPZABRQWHEBUFVRWEQABDFHJUTZAWHEBGAWJBQZWHAWSWLWHABD
      WJJVAIUJZURUKBCEREBULZUMSVBAWETVTWQWOVBVRVTVCSVDABVSVEZCEKWAWBABVSCEGXAWN
      WRWIBVSVFVJVGABDVHVKWTWMVIAXBDCEGABDVLXBDVGJBDVMVNVOVPVQ $.
  $}

$(
  @{
    esummonof1o.1 @e |- ( ph -> A e. V ) @.
    esummonof1o.2 @e |- ( ( ph /\ k e. A ) -> B e. C ) @.
    esummonof1o.3 @e |- ( ph -> F : C --> ( 0 [,] +oo ) ) @.
    esummonof1o.4 @e |- ( ph -> G : dom G -1-1-onto-> ran ( k e. A |-> B ) ) @.
    @( Because of the way the extended sum is written, the same term can be
      counted several times. Here we provide a lower bound where each term is
      counted exactly once. @)
    esummonof1o @p |- ( ph
      -> sum* j e. dom G ( F ` ( G ` j ) ) <_ sum* k e. A ( F ` B ) ) @=
      ? @.
  @}
$)

  ${
    $d A k $.  $d B k $.  $d V k $.  $d k ph $.
    esumpad.1 $e |- ( ph -> A e. V ) $.
    esumpad.2 $e |- ( ph -> B e. W ) $.
    esumpad.3 $e |- ( ( ph /\ k e. A ) -> C e. ( 0 [,] +oo ) ) $.
    esumpad.4 $e |- ( ( ph /\ k e. B ) -> C = 0 ) $.
    $( Extend an extended sum by padding outside with zeroes.  (Contributed by
       Thierry Arnoux, 31-May-2020.) $)
    esumpad $p |- ( ph -> sum* k e. ( A u. B ) C = sum* k e. A C ) $=
      ( cun cesum cxad co wcel cvv syl wceq cc0 cdif nfv nfcv difexg c0 disjdif
      elex cin a1i cv cpnf difssd sselda wa 0e0iccpnf syl6eqel syldan esumsplit
      cicc undif2 esumeq1 ax-mp ralrimiva esumeq2d esum0 eqtrd cxr iccssxr wral
      oveq2d esumcl syl2anc sseldi xaddid1 3eqtr3d ) ABCBUAZLZDEMZBDEMZVPDEMZNO
      ZBCLZDEMZVSABVPDEAEUBZEBUCZEVPUCZABFPZBQPHBFUGRACGPVPQPZICBGUDRZBVPUHUESA
      BCUFUIJAEUJZVPPZWJCPZDTUKUSOZPZAVPCWJACBULUMZAWLUNDTWMKUOUPUQURVRWCSZAVQW
      BSWPBCUTVQWBDEVAVBUIAWAVSTNOZVSAVTTVSNAVTVPTEMZTAVPDTEWDADTSZEVPAWKWLWSWO
      KUQVCVDAWHWRTSWIVPEQWFVERVFVJAVSVGPWQVSSAWMVGVSTUKVHAWGWNEBVIVSWMPHAWNEBJ
      VCBDEFWEVKVLVMVSVNRVFVO $.

    $( Remove zeroes from an extended sum.  (Contributed by Thierry Arnoux,
       5-Jun-2020.) $)
    esumpad2 $p |- ( ph -> sum* k e. ( A \ B ) C = sum* k e. A C ) $=
      ( cesum wceq cle wbr cvv wcel syl2anc cc0 cxr cdif wa nfv difssd esummono
      cun unexg cv wo cpnf cicc co elun 0e0iccpnf syl6eqel jaodan sylan2b ssun1
      wss a1i undif1 esumeq1 ax-mp difexg sselda syldan esumpad syl5eqr breqtrd
      syl jca wb iccssxr wral ralrimiva nfcv esumcl sseldi xrletri3 mpbird ) AB
      CUAZDELZBDELZMZWBWCNOZWCWBNOZUBZAWEWFAWADBEFAEUCZHJABCUDZUEAWCBCUFZDELZWB
      NABDWJEPWHABFQZCGQWJPQHIBCFGUGREUHZWJQAWMBQZWMCQZUIDSUJUKULZQZWMBCUMAWNWQ
      WOJAWOUBDSWPKUNUOUPUQBWJUSABCURUTUEAWKWACUFZDELZWBWRWJMWSWKMBCVAWRWJDEVBV
      CAWACDEPGAWLWAPQZHBCFVDVJZIAWMWAQWNWQAWABWMWIVEJVFZKVGVHVIVKAWBTQWCTQWDWG
      VLAWPTWBSUJVMZAWTWQEWAVNWBWPQXAAWQEWAXBVOWADEPEWAVPVQRVRAWPTWCXCAWLWQEBVN
      WCWPQHAWQEBJVOBDEFEBVPVQRVRWBWCVSRVT $.
  $}

  ${
    $d k A $.  $d k V $.  $d k ph $.
    esumadd.0 $e |- ( ph -> A e. V ) $.
    esumadd.1 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    esumadd.2 $e |- ( ( ph /\ k e. A ) -> C e. ( 0 [,] +oo ) ) $.
    $( Addition of infinite sums.  (Contributed by Thierry Arnoux,
       24-Mar-2017.) $)
    esumadd $p |- ( ph -> sum* k e. A ( B +e C ) =
                        ( sum* k e. A B +e sum* k e. A C ) ) $=
      ( cxad co cesum wcel cmpt ctsu a1i eqid fmptd esumel eqidd nfv nfcv cv wa
      cpnf cicc ge0xaddcl syl2anc cxrs cress xrge0base xrge0plusg ccmn xrge0cmn
      cc0 cof ctmd xrge0tmd tsmsadd offval2 oveq2d eleqtrd esumid ) ABCDJKZBCEL
      ZBDELZJKZEFAEUAZEBUBZGAEUCBMUDCUOUEUFKZMDVJMVDVJMHICDUGUHAVGUIVJUJKZEBCNZ
      EBDNZJUPKZOKVKEBVDNZOKABVJJVLVKVMFVEVFUKULVKUMMAUNPVKUQMAURPGAEBCVJVLHVLQ
      RAEBDVJVMIVMQRABCEFVHVIGHSABDEFVHVIGISUSAVNVOVKOAEBCDJVLVMFVJVJGHIAVLTAVM
      TUTVAVBVC $.

    esumle.3 $e |- ( ( ph /\ k e. A ) -> B <_ C ) $.
    $( If all of the terms of an extended sums compare, so do the sums.
       (Contributed by Thierry Arnoux, 8-Jun-2017.) $)
    esumle $p |- ( ph -> sum* k e. A B <_ sum* k e. A C ) $=
      ( cesum cxad co cle cxr wcel cc0 wbr cpnf syl2anc cxne cicc esumcl sseldi
      iccssxr wral ralrimiva nfcv cv wa xnegcld xaddcld wb xsubge0 mpbird pnfge
      syl w3a 0xr pnfxr elicc1 mp2an syl3anbrc a1i elicc4 syl3anc xraddge02 imp
      mpbid simpld syl21anc xaddcom breqtrd esumadd xrge0npcan esumeq2dv eqtr3d
      wceq ) ABCEKZBDCUAZLMZEKZVSLMZBDEKZNAVSVSWBLMZWCNAVSOPZWBOPZQWBNRZVSWENRZ
      AQSUBMZOVSQSUEZABFPZCWJPZEBUFVSWJPGAWMEBHUGBCEFEBUHZUCTUDZAWJOWBWKAWLWAWJ
      PZEBUFWBWJPZGAWPEBAEUIBPUJZWAOPZQWANRZWASNRZWPWRDVTWRWJODWKIUDZWRCWRWJOCW
      KHUDZUKULZWRWTCDNRZJWRDOPCOPWTXEUMXBXCDCUNTUOWRWSXAXDWAUPUQQOPZSOPZWPWSWT
      XAURUMUSUTQSWAVAVBVCZUGBWAEFWNUCTZUDZAWHWBSNRZAWQWHXKUJZXIAXFXGWGWQXLUMXF
      AUSVDXGAUTVDXJQSWBVEVFVIVJWFWGUJWHWIVSWBVGVHVKAWFWGWEWCVRWOXJVSWBVLTVMABW
      ACLMZEKWCWDABWACEFGXHHVNABXMDEWRDWJPWMXEXMDVRIHJDCVOVFVPVQVM $.
  $}

  ${
    $d a k x y A $.  $d a x y B $.  $d a x y ph $.
    gsumesum.0 $e |- F/ k ph $.
    gsumesum.1 $e |- ( ph -> A e. Fin ) $.
    gsumesum.2 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    $( Relate a group sum on ` ( RR*s |``s ( 0 [,] +oo ) ) ` to a finite
       extended sum.  (Contributed by Thierry Arnoux, 19-Oct-2017.)  (Proof
       shortened by AV, 12-Dec-2019.) $)
    gsumesum $p |- ( ph -> ( ( RR*s |`s ( 0 [,] +oo ) ) gsum ( k e. A |-> B ) )
      = sum* k e. A B ) $=
      ( vx va cfn cc0 co cgsu cxr wcel wa a1i sseldi wceq syl2anc cesum cpw cin
      vy cxrs cpnf cicc cress cv cmpt crn clt csup eqidd esumval xrltso iccssxr
      nfcv xrge0base ccmn xrge0cmn ex ralrimi gsummptcl wrex pwidg elind mpteq1
      wor syl oveq2d eqeq2d rspcev eqid ovex elrnmpti sylibr cle wbr wral simpr
      wn cbvmptv sylib cdif cxad inss2 nfv nfan wel simpll inss1 sseli ad2antlr
      wss elpwid sseldd diffi adantr eldifad elxrge0 simprbi xraddge02 syl21anc
      imp adantlr adantl cres xrge00 xrge0plusg wf fmptdf cfsupp cvv fnmpt c0ex
      wfn fndmfifsupp c0 disjdif cun undif biimpi eqcomd gsumsplit resmpt difss
      ax-mp oveq12d eqtrd breqtrrd ralrimiva r19.29r breq1 biimpar rexlimivw wb
      oveq2i rnmptss sselda xrltnle con2bid mpbid supmax eqtr2d ) ABCDUAHBUBZJU
      CZUEKUFUGLZUHLZDHUIZCUJZMLZUJZUKZNULUMUUIDBCUJZMLZAHBCUULDJEDBURFGAUUJUUG
      OZPZUULUNUOAUDNUUNUUPULNULVIAUPQAUUHNUUPKUFUQZAUUHDUUIBCUSUUIUTOZAVAQFACU
      UHOZDBEADUIZBOZUVAGVBVCZVDRZAUUPUULSZHUUGVEZUUPUUNOABUUGOUUPUUPSZUVGAUUFJ
      BABJOZBUUFOFBJVFVJFVGAUUPUNUVFUVHHBUUGUUJBSZUULUUPUUPUVJUUKUUOUUIMDUUJBCV
      HVKVLVMTHUUGUULUUPUUMUUMVNZUUIUUKMVOVPVQAUDUIZUUNOZPZUVLUUPVRVSZUUPUVLULV
      SZWBZUVNUVLUUIDIUIZCUJZMLZSZIUUGVEZUVTUUPVRVSZIUUGVTZUVOUVNUVMUWBAUVMWAIU
      UGUVTUVLUUMHIUUGUULUVTUUJUVRSUUKUVSUUIMDUUJUVRCVHVKWCUUIUVSMVOVPWDUVNUWCI
      UUGUVNUVRUUGOZPZUVTUVTUUIDBUVRWEZCUJZMLZWFLZUUPVRAUWEUVTUWJVRVSZUVMAUWEPZ
      UVTNOZUWINOZKUWIVRVSZUWKUWLUUHNUVTUUSUWLUUHDUUIUVRCUSUUTUWLVAQZUWLUUGJUVR
      UUFJWGZAUWEWARUWLUVADUVRAUWEDEUWEDWHWIZUWLDIWJZUVAUWLUWSPZAUVCUVAAUWEUWSW
      KUWTUVRBUVBUWEUVRBWOZAUWSUWEUVRBUUGUUFUVRUUFJWLZWMWPZWNUWLUWSWAWQGTVBVCVD
      RUWLUUHNUWIUUSUWLUUHDUUIUWGCUSUWPAUWGJOZUWEAUVIUXDFBUVRWRVJWSUWLUVADUWGUW
      RUWLUVBUWGOZUVAUWLUXEPZAUVCUVAAUWEUXEWKUXFUVBBUVRUWLUXEWAWTGTVBVCVDZRUWLU
      WIUUHOZUWOUXGUXHUWNUWOUWIXAXBVJUWMUWNPUWOUWKUVTUWIXCXEXDXFUWFAUXAUUPUWJSA
      UVMUWEWKUWEUXAUVNUXCXGAUXAPZUUPUUIUUOUVRXHZMLZUUIUUOUWGXHZMLZWFLUWJUXIBUU
      HUVRUWGWFUUOUUIJKUSXIXJUUTUXIVAQAUVIUXAFWSABUUHUUOXKUXAADBCUUHUUOEGUUOVNZ
      XLWSAUUOKXMVSUXAABUUOXNKAUVADBVTUUOBXQUVDDBCUUOUUHUXNXOVJFKXNOAXPQXRWSUVR
      UWGUCXSSUXIUVRBXTQUXABUVRUWGYAZSAUXAUXOBUXAUXOBSUVRBYBYCYDXGYEUXIUXKUVTUX
      MUWIWFUXAUXKUVTSAUXAUXJUVSUUIMDBUVRCYFVKXGUXMUWISUXIUXLUWHUUIMUWGBWOUXLUW
      HSBUVRYGDBUWGCYFYHYRQYIYJTYKYLUWBUWDPUWAUWCPZIUUGVEUVOUWAUWCIUUGYMUXPUVOI
      UUGUWAUVOUWCUVLUVTUUPVRYNYOYPVJTUVNUUPNOZUVLNOZUVOUVQYQAUXQUVMUVEWSAUUNNU
      VLAUULNOZHUUGVTUUNNWOAUXSHUUGUURUUHNUULUUSUURUUHDUUIUUJCUSUUTUURVAQUURUUG
      JUUJUWQAUUQWARUURUVADUUJAUUQDEUUQDWHWIUURDHWJZUVAUURUXTPZAUVCUVAAUUQUXTWK
      UYAUUJBUVBUYAUUJBUUQUUJUUFOAUXTUUGUUFUUJUXBWMWNWPUURUXTWAWQGTVBVCVDRYLHUU
      GUULNUUMUVKYSVJYTUXQUXRPUVPUVOUUPUVLUUAUUBTUUCUUDUUE $.
  $}

  ${
    $d a k x y A $.  $d a x y B $.  $d a y X $.  $d a x y ph $.
    esumlub.f $e |- F/ k ph $.
    esumlub.0 $e |- ( ph -> A e. V ) $.
    esumlub.1 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    esumlub.2 $e |- ( ph -> X e. RR* ) $.
    esumlub.3 $e |- ( ph -> X < sum* k e. A B ) $.
    $( The extended sum is the lowest upper bound for the partial sums.
       (Contributed by Thierry Arnoux, 19-Oct-2017.)  (Proof shortened by AV,
       12-Dec-2019.) $)
    esumlub $p |- ( ph -> E. a e. ( ~P A i^i Fin ) X < sum* k e. a B ) $=
      ( vx clt wbr cfn cxr wcel wa simpr vy cxrs cc0 cpnf cicc co cress cv cmpt
      cgsu cpw cin wrex cesum crn csup nfcv eqidd esumval breq2d wss wb iccssxr
      wral xrge0base ccmn xrge0cmn a1i inss2 sseldi nfv nfan simpll inss1 sseli
      ad2antlr elpwid sseldd syl2anc ex ralrimi gsummptcl ralrimiva rnmptss syl
      eqid supxrlub bitrd cvv ovex wceq mpteq1 oveq2d cbvmptv elrnmpti rexxfr2d
      mpbid gsumesum biimpd reximdva mpd ) AFUBUCUDUEUFZUGUFZDGUHZCUIZUJUFZNOZG
      BUKZPULZUMZFXDCDUNZNOZGXIUMAFUAUHZNOZUAMXIXCDMUHZCUIZUJUFZUIZUOZUMZXJAFBC
      DUNZNOZXTLAYBFXSQNUPZNOZXTAYAYCFNAMBCXQDEHDBUQIJAXOXIRZSZXQURUSUTAXSQVAZF
      QRYDXTVBAXQQRZMXIVDYGAYHMXIYFXBQXQUCUDVCYFXBDXCXOCVEXCVFRYFVGVHYFXIPXOXHP
      VIZAYETVJYFCXBRZDXOAYEDHYEDVKVLYFDUHZXORZYJYFYLSZAYKBRZYJAYEYLVMYMXOBYKYM
      XOBYEXOXHRAYLXIXHXOXHPVNZVOVPVQYFYLTVRJVSVTWAWBVJWCMXIXQQXRXRWFWDWEKUAXSF
      WGVSWHWQAXNXGUAGXFXSXIWIXFWIRAXDXIRZSZXCXEUJWJZVHXMXSRXMXFWKZGXIUMVBAGXIX
      FXMXRMGXIXQXFXOXDWKXPXEXCUJDXOXDCWLWMWNYRWOVHAYSSXMXFFNAYSTUTWPWQAXGXLGXI
      YQXGXLYQXFXKFNYQXDCDAYPDHYPDVKVLYQXIPXDYIAYPTVJYQYKXDRZSZAYNYJAYPYTVMUUAX
      DBYKUUAXDBYPXDXHRAYTXIXHXDYOVOVPVQYQYTTVRJVSWRUTWSWTXA $.
  $}

  ${
    $d k V $.
    esumaddf.0 $e |- F/ k ph $.
    esumaddf.a $e |- F/_ k A $.
    esumaddf.1 $e |- ( ph -> A e. V ) $.
    esumaddf.2 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    esumaddf.3 $e |- ( ( ph /\ k e. A ) -> C e. ( 0 [,] +oo ) ) $.
    $( Addition of infinite sums.  (Contributed by Thierry Arnoux,
       22-Jun-2017.) $)
    esumaddf $p |- ( ph -> sum* k e. A ( B +e C ) =
                        ( sum* k e. A B +e sum* k e. A C ) ) $=
      ( cxad co cesum wcel cmpt ctsu a1i eqid fmptdF cv cc0 cpnf cicc ge0xaddcl
      wa syl2anc cxrs cof xrge0base xrge0plusg ccmn xrge0cmn ctmd xrge0tmd nfcv
      cress esumel tsmsadd eqidd offval2f oveq2d eleqtrd esumid ) ABCDLMZBCENZB
      DENZLMZEFGHIAEUABOUFCUBUCUDMZODVIOVEVIOJKCDUEUGAVHUHVIUQMZEBCPZEBDPZLUIMZ
      QMVJEBVEPZQMABVILVKVJVLFVFVGUJUKVJULOAUMRVJUNOAUORIAEBCVIVKGHEVIUPZJVKSTA
      EBDVIVLGHVOKVLSTABCEFGHIJURABDEFGHIKURUSAVMVNVJQAEBCDLVKVLFVIVIGHIJKAVKUT
      AVLUTVAVBVCVD $.

    esumlef.3 $e |- ( ( ph /\ k e. A ) -> B <_ C ) $.
    $( If all of the terms of an extended sums compare, so do the sums.
       (Contributed by Thierry Arnoux, 8-Jun-2017.) $)
    esumlef $p |- ( ph -> sum* k e. A B <_ sum* k e. A C ) $=
      ( cesum co cle cxr wcel cc0 wbr cpnf cxne cxad cicc iccssxr cv ex ralrimi
      wral esumcl syl2anc sseldi wa xnegcld xaddcld wb xsubge0 mpbird pnfge syl
      w3a 0xr pnfxr elicc1 mp2an syl3anbrc elicc4 syl3anc mpbid simpld syl21anc
      a1i xraddge02 wceq xaddcom breqtrd esumaddf xrge0npcan esumeq2d eqtr3d
      imp ) ABCEMZBDCUAZUBNZEMZWAUBNZBDEMZOAWAWAWDUBNZWEOAWAPQZWDPQZRWDOSZWAWGO
      SZARTUCNZPWARTUDZABFQZCWLQZEBUHWAWLQIAWOEBGAEUEBQZWOJUFUGBCEFHUIUJUKZAWLP
      WDWMAWNWCWLQZEBUHWDWLQZIAWREBGAWPWRAWPULZWCPQZRWCOSZWCTOSZWRWTDWBWTWLPDWM
      KUKZWTCWTWLPCWMJUKZUMUNZWTXBCDOSZLWTDPQCPQXBXGUOXDXEDCUPUJUQWTXAXCXFWCURU
      SRPQZTPQZWRXAXBXCUTUOVAVBRTWCVCVDVEZUFUGBWCEFHUIUJZUKZAWJWDTOSZAWSWJXMULZ
      XKAXHXIWIWSXNUOXHAVAVKXIAVBVKXLRTWDVFVGVHVIWHWIULWJWKWAWDVLVTVJAWHWIWGWEV
      MWQXLWAWDVNUJVOABWCCUBNZEMWEWFABWCCEFGHIXJJVPABXODEGAXODVMZEBGAWPXPWTDWLQ
      WOXGXPKJLDCVQVGUFUGVRVSVO $.
  $}

  ${
    $d a l n x y z A $.  $d a l n x y z B $.  $d a k l n x y V $.
    esumcst.1 $e |- F/_ k A $.
    esumcst.2 $e |- F/_ k B $.
    $( The extended sum of a constant.  (Contributed by Thierry Arnoux,
       3-Mar-2017.)  (Revised by Thierry Arnoux, 5-Jul-2017.) $)
    esumcst $p |- ( ( A e. V /\ B e. ( 0 [,] +oo ) ) ->
                                        sum* k e. A B = ( ( # ` A ) *e B ) ) $=
      ( vx wcel cc0 cpnf co wa cfn chash cxmu cxr clt wceq syl2anc wbr vy vz vn
      va vl cicc cesum cpw cin cv cfv cmpt crn csup nfel1 nfan simpl cxrs cress
      simplr cgsu cmg cmnd ctmd xrge0tmd tmdmnd ax-mp a1i inss2 simpr xrge0base
      sseldi eqid gsumconstf syl3anc cn0 syl xrge0mulgnn0 eqtrd esumval wss cle
      hashcl wral wrex wi cr csn cun nn0ssre ressxr sstri pnfxr snssi unssi cvv
      wf hashf vex ffvelrn mp2an sselii iccssxr adantr xmulcld hashxrcl elrnmpt
      fmptd frn wb biimpi 0xr iccgelb jca cdom inss1 sseli elpwi 3syl ralrimiva
      ssdomg r19.29r elin sylibr fveq2 oveq1d eqeq2d rspcev adantl breq2 oveq2d
      ovex c0 xmul01 elrnmpti simpllr cn simp-4r ex c1 hashdomi syl2anr eqbrtrd
      sylc xlemul1a syl31anc rexlimivw pwidg ancri mpan2 wn 0elpw 0fin mpbir2an
      crp hash0 eqeltri syl6req ad4antr breqtrd cdiv eqeltrd nnnn0 hashclb cmul
      elind eqidd simp-8r nnred simp-5r ltdivmul2d mpbid rpred rexmul rexlimdva
      breqtrrd impr rerpdivcld arch ishashinf ad2antlr r19.29a wex nfielex snfi
      snelpwi jctir hashsng 1re syl6eqel 0lt1 syl5breqr xmulpnf1 eqtr2d adantll
      exlimddv ltpnf w3o elxrge02 sylib mpjao3dan pm2.61dan supxr2 syl22anc ) A
      DHZBIJUFKZHZLZABCUGGAUHZMUIZGUJZNUKZBOKZULZUMZPQUNZANUKZBOKZUXHGABUXMCDUX
      EUXGCCADEUOCBUXFFUOUPEUXEUXGUQZUXEUXGCUJAHUTUXHUXKUXJHZLZURUXFUSKZCUXKBUL
      VAKZUXLBUYBVBUKZKZUXMUYAUYBVCHZUXKMHZUXGUYCUYERUYFUYAUYBVDHUYFVEUYBVFVGVH
      UYAUXJMUXKUXIMVIUXHUXTVJZVLZUXEUXGUXTUTZUXKUXFUYDCUYBBFVKUYDVMVNVOUYAUXLV
      PHZUXGUYEUXMRUYAUYGUYKUYIUXKWCVQUYJUXLBVRSVSVTUXHUXOPWAZUXRPHUAUJZUXRWBTZ
      UAUXOWDUYMUXRQTZUYMUBUJZQTZUBUXOWEZWFZUAWGWDUXPUXRRUXHUXJPUXNWQUYLUXHGUXJ
      UXMPUXNUYAUXLBUXLPHZUYAVPJWHZWIZPUXLVPVUAPVPWGPWJWKWLJPHZVUAPWAWMJPWNVGWO
      WPVUBNWQUXKWPHUXLVUBHWRGWSWPVUBUXKNWTXAXBVHZUXHBPHZUXTUXHUXFPBIJXCUXEUXGV
      JVLZXDZXEUXNVMZXHUXJPUXNXIVQUXHUXQBUXEUXQPHZUXGADXFXDZVUFXEUXHUYNUAUXOUXH
      UYMUXOHZLUYMUXMRZUXMUXRWBTZLZGUXJWEZUYNVUKVULGUXJWEZVUMGUXJWDVUOUXHVUKVUP
      UYMWPHVUKVUPXJUAWSGUXJUXMUYMUXNWPVUHXGVGXKUXHVUMGUXJUYAUYTVUIVUEIBWBTZLUX
      LUXQWBTZVUMVUDUXHVUIUXTVUJXDUYAVUEVUQVUGUYAIPHZVUCUXGVUQVUSUYAXLVHVUCUYAW
      MVHUYJIJBXMVOXNUYAUXKAXOTZVURUYAUXEUXKAWAZVUTUXHUXEUXTUXSXDUYAUXTUXKUXIHV
      VAUYHUXJUXIUXKUXIMXPXQUXKAXRXSUXKADYAUUDUXKAUUAVQUXLUXQBUUEUUFXTVULVUMGUX
      JYBUUBVUNUYNGUXJVUNUYMUXMUXRWBVULVUMUQVULVUMVJUUCUUGVQXTUXHUYSUAWGUXHUYMW
      GHZLZUYOUYRVVCUYOLZAMHZUYRVVDVVELUXRUXOHZUYOUYRVVEVVFVVDVVEAUXJHZVVFVVEAU
      XIHZVVELVVGVVEVVHAMUUHUUIAUXIMYCYDVVGUXRUXMRZGUXJWEZVVFVVGUXRUXRRZVVJUXRV
      MVVIVVKGAUXJUXKARZUXMUXRUXRVVLUXLUXQBOUXKANYEYFYGYHUUJUXRWPHVVFVVJXJUXQBO
      YLGUXJUXMUXRUXNWPVUHXGVGYDVQYIVVCUYOVVEUTUYQUYOUBUXRUXOUYPUXRUYMQYJYHSVVD
      VVEUUKZLZBIRZUYRBUUOHZBJRZVVNVVOLZIUXOHZUYMIQTZUYRVVRIUXMRZGUXJWEZVVSVVRY
      MUXJHZIYMNUKZBOKZRZVWBVWCVVRVWCYMUXIHYMMHAUULUUMYMUXIMYCUUNVHVVRVWEVWDIOK
      ZIVVRBIVWDOVVNVVOVJZYKVWDPHVWGIRVWDIPUUPXLUUQVWDYNVGUURVWAVWFGYMUXJUXKYMR
      ZUXMVWEIVWIUXLVWDBOUXKYMNYEYFYGYHSGUXJUXMIUXNVUHUXLBOYLZYOYDVVRUYMUXRIQVV
      CUYOVVMVVOYPVVRUXRUXQIOKZIVVRBIUXQOVWHYKVVRVUIVWKIRUXHVUIVVBUYOVVMVVOVUJU
      USUXQYNVQVSUUTUYQVVTUBIUXOUYPIUYMQYJYHSVVNVVPLZUYMBUVAKZUCUJZQTZUDUJZNUKZ
      VWNRZUDUXIWEZLZUYRUCYQVWLVWNYQHZLZVWOVWSUYRVXBVWOLZVWRUYRUDUXIVXCVWPUXIHZ
      LZVWRUYRVXEVWRLZVWQBOKZUXOHZUYMVXGQTZUYRVXFVXGUXMRZGUXJWEZVXHVXFVWPUXJHVX
      GVXGRZVXKVXFUXIMVWPVXCVXDVWRUTVXFVWQYQHZVWPMHZVXFVWQVWNYQVXEVWRVJZVWLVXAV
      WOVXDVWRYRZUVBVXMVWQVPHZVXNVWQUVCVWPWPHVXNVXQXJUDWSVWPWPUVDVGYDVQUVFVXFVX
      GUVGVXJVXLGVWPUXJUXKVWPRZUXMVXGVXGVXRUXLVWQBOUXKVWPNYEYFYGYHSGUXJUXMVXGUX
      NVUHVWJYOYDVXFUYMVWNBUVEKZVXGQVXFVWOUYMVXSQTVXBVWOVXDVWRYPVXFUYMVWNBUXHVV
      BUYOVVMVVPVXAVWOVXDVWRUVHVXFVWNVXPUVIZVVNVVPVXAVWOVXDVWRUVJZUVKUVLVXFVXGV
      WNBOKZVXSVXFVWQVWNBOVXOYFVXFVWNWGHBWGHVYBVXSRVXTVXFBVYAUVMVWNBUVNSVSUVPUY
      QVXIUBVXGUXOUYPVXGUYMQYJYHSYSUVOUVQVWLVWOUCYQWEZVWSUCYQWDZVWTUCYQWEVWLVWM
      WGHVYCVWLUYMBUXHVVBUYOVVMVVPYRVVNVVPVJUVRVWMUCUVSVQVVMVYDVVDVVPUDAUCUVTUW
      AVWOVWSUCYQYBSUWBVVNVVQLZJUXOHZUYMJQTZUYRVYEJUXMRZGUXJWEZVYFVVMVVQVYIVVDV
      VMVVQLZUEUJZAHZVYIUEVVMVYLUEUWCVVQUEAUWDXDVYJVYLLZVYKWHZUXJHZJVYNNUKZBOKZ
      RZVYIVYLVYOVYJVYLVYNUXIHZVYNMHZLVYOVYLVYSVYTVYKAUWFVYKUWEUWGVYNUXIMYCYDYI
      VYMVYQVYPJOKZJVYMBJVYPOVVMVVQVYLUTYKVYLWUAJRZVYJVYLVYPPHIVYPQTWUBVYLVYPYT
      PVYKAUWHZWGPYTWKUWIXBUWJVYLIYTVYPQUWKWUCUWLVYPUWMSYIUWNVYHVYRGVYNUXJUXKVY
      NRZUXMVYQJWUDUXLVYPBOUXKVYNNYEYFYGYHSUWPUWOGUXJUXMJUXNVUHVWJYOYDVYEVVBVYG
      UXHVVBUYOVVMVVQYRUYMUWQVQUYQVYGUBJUXOUYPJUYMQYJYHSVVNUXGVVOVVPVVQUWRUXEUX
      GVVBUYOVVMYRBUWSUWTUXAUXBYSXTUAUBUXOUXRUXCUXDVS $.
  $}

  ${
    $d A x $.  $d B l x $.  $d M k l x $.  $d ph k x $.
    esumsnf.0 $e |- F/_ k B $.
    esumsnf.1 $e |- ( ( ph /\ k = M ) -> A = B ) $.
    esumsnf.2 $e |- ( ph -> M e. V ) $.
    esumsnf.3 $e |- ( ph -> B e. ( 0 [,] +oo ) ) $.
    $( The extended sum of a singleton is the term.  (Contributed by Thierry
       Arnoux, 2-Jan-2017.)  (Revised by Thierry Arnoux, 2-May-2020.) $)
    esumsnf $p |- ( ph -> sum* k e. { M } A = B ) $=
      ( vx cc0 co wceq a1i cfn wcel cxr clt c0 vl csn cesum cxrs cpnf cicc cmpt
      cress ctsu cuni df-esum eqid snfi wf cop cv elsni sylan2 mpteq2dva fmptsn
      wa nfcv eqidd cbvmpt syl6eqr syl2anc eqtr4d wb fsng mpbird snssd fssd cpr
      csup wbr cif cpw cin cres cgsu crn wor xrltso 0xr cle elxrge0 sylib suppr
      simpld 0fin reseq2 res0 syl6eq oveq2d xrge00 gsum0 adantl wss ssid resmpt
      syl3anc xrge0base cmnd ccmn xrge0cmn cmnmnd nfv gsumsnfd sylan9eqr fmptpr
      ax-mp pwsn prssi mp2an eqsstri df-ss eqtri mpteq12i rneqd rnpropg supeq1d
      mpbi eqtr3d wn wo simprd xrlenlt jca olcd eqif sylibr 3eqtr4rd xrge0tsmsd
      mpbid unieqd unisng syl 3eqtrd ) AEUBZBDUCZUDLUEUFMZUHMZDYSBUGZUIMZUJZCUB
      ZUJZCYTUUENAYSBDUKOAUUDUUFAYSCUUCUUBPKUUBULYSPQZAEUMZOZAYSUUFUUAUUCAYSUUF
      UUCUNZUUCECUOUBZNZAUUCDYSCUGZUULADYSBCDUPZYSQAUUOENBCNUUOEUQHURUSAEFQZCUU
      AQZUULUUNNIJUUPUUQVAUULUAYSCUGUUNUAECFUUAUTDUAYSCCUACVBGUUOUAUPNCVCVDVEVF
      VGAUUPUUQUUKUUMVHIJECFUUAUUCVIVFVJACUUAJVKVLALCVMZRSVNZCLSVOZLCVPZKYSVQZP
      VRZUUBUUCKUPZVSZVTMZUGZWAZRSVNCARSWBZLRQZCRQZUUSUVANUVIAWCOUVJAWDOZAUVKLC
      WEVOZAUUQUVKUVMVAJCWFWGZWIZRLCSWHXAARUVHUURSATLUOYSCUOVMZWAZUVHUURAUVPUVG
      AUVPKTYSVMZUVFUGUVGAKTYSLCUVFPPRUUATPQZAWJOZUUJUVLJUVDTNZUVFLNAUWAUVFUUBT
      VTMLUWAUVETUUBVTUWAUVEUUCTVSTUVDTUUCWKUUCWLWMWNUUBLWOWPWMWQUVDYSNZAUVFUUB
      UUCVTMCUWBUVEUUCUUBVTUWBUVEUUCYSVSZUUCUVDYSUUCWKYSYSWRUWCUUCNYSWSDYSYSBWT
      XKWMWNABUUACDUUBEFXBUUBXCQZAUUBXDQUWDXEUUBXFXKOIJHADXGGXHXIXJKUVCUVFUVRUV
      FUVCUVBUVRUVBPWRUVCUVBNUVBUVRPEXLZUVSUUHUVRPWRWJUUITYSPXMXNXOUVBPXPYBUWEX
      QUVFULXRVEXSAUVSUUHUVQUURNUVTUUJTYSLCPPXTVFYCYAAUUTCLNVAZUUTYDZCCNZVAZYEC
      UVANAUWIUWFAUWGUWHAUVMUWGAUVKUVMUVNYFAUVJUVKUVMUWGVHUVLUVOLCYGVFYNACVCYHY
      IUUTCLCYJYKYLYMYOAUUQUUGCNJCUUAYPYQYR $.
  $}

  ${
    $d k B $.  $d k M $.  $d k V $.  $d k ph $.
    esumsn.1 $e |- ( ( ph /\ k = M ) -> A = B ) $.
    esumsn.2 $e |- ( ph -> M e. V ) $.
    esumsn.3 $e |- ( ph -> B e. ( 0 [,] +oo ) ) $.
    $( The extended sum of a singleton is the term.  (Contributed by Thierry
       Arnoux, 2-Jan-2017.)  (Shortened by Thierry Arnoux, 2-May-2020.) $)
    esumsn $p |- ( ph -> sum* k e. { M } A = B ) $=
      ( nfcv esumsnf ) ABCDEFDCJGHIK $.
  $}

  ${
    $d A k $.  $d B k $.  $d k D $.  $d k E $.  $d k ph $.  $d k V $.
    $d k W $.
    esumpr.1 $e |- ( ( ph /\ k = A ) -> C = D ) $.
    esumpr.2 $e |- ( ( ph /\ k = B ) -> C = E ) $.
    esumpr.3 $e |- ( ph -> A e. V ) $.
    esumpr.4 $e |- ( ph -> B e. W ) $.
    esumpr.5 $e |- ( ph -> D e. ( 0 [,] +oo ) ) $.
    esumpr.6 $e |- ( ph -> E e. ( 0 [,] +oo ) ) $.
    ${
      esumpr.7 $e |- ( ph -> A =/= B ) $.
      $( Extended sum over a pair.  (Contributed by Thierry Arnoux,
         2-Jan-2017.) $)
      esumpr $p |- ( ph -> sum* k e. { A , B } C = ( D +e E ) ) $=
        ( cesum cxad wceq wcel cpr csn cun df-pr esumeq1 mp1i nfv nfcv cvv snex
        co a1i wne cin c0 disjsn2 syl cv wa cc0 cpnf cicc sylan2 adantr eqeltrd
        elsni esumsplit esumsn oveq12d 3eqtrd ) ABCUAZDFQZBUBZCUBZUCZDFQZVMDFQZ
        VNDFQZRUKEGRUKVKVOSVLVPSABCUDVKVODFUEUFAVMVNDFAFUGFVMUHFVNUHVMUITABUJUL
        VNUITACUJULABCUMVMVNUNUOSPBCUPUQAFURZVMTZUSDEUTVAVBUKZVTAVSBSDESVSBVFJV
        CAEWATVTNVDVEAVSVNTZUSDGWAWBAVSCSDGSVSCVFKVCAGWATWBOVDVEVGAVQEVRGRADEFB
        HJLNVHADGFCIKMOVHVIVJ $.
    $}

    ${
      esumpr2.1 $e |- ( ph -> ( A = B -> ( D = 0 \/ D = +oo ) ) ) $.
      $( Extended sum over a pair, with a relaxed condition compared to
         ~ esumpr .  (Contributed by Thierry Arnoux, 2-Jan-2017.) $)
      esumpr2 $p |- ( ph -> sum* k e. { A , B } C = ( D +e E ) ) $=
        ( cxad wceq adantr cpnf cpr cesum co wa csn simpr dfsn2 syl5req esumeq1
        preq2 3syl esumsn eqtrd cc0 oveq2 cxr wcel 0xr eleq1 mpbiri xaddid1 syl
        wo cmnf wne pnfxr pnfnemnf neeq1 xaddpnf1 syl2anc 3eqtr4d jaoi syl6 imp
        id cv simpll wi eqeq2 biimprd cicc eqtr3d oveq2d 3eqtr2d adantlr esumpr
        pm2.61dane ) ABCUAZDFUBZEGQUCZRBCABCRZUDZWIEEEQUCZWJWLWIBUEZDFUBZEWLWKW
        HWNRWIWORAWKUFZWKWNBBUAWHBUGBCBUJUHWHWNDFUIUKAWOERWKADEFBHJLNULSUMAWKWM
        ERZAWKEUNRZETRZVCWQPWRWQWSWRWMEUNQUCZEEUNEQUOWREUPUQZWTERWRXAUNUPUQUREU
        NUPUSUTEVAVBUMWSETQUCZTWMEWSXAEVDVEZXBTRWSXATUPUQVFETUPUSUTWSXCTVDVEVGE
        TVDVHUTEVIVJETEQUOWSVOVKVLVMVNWLEGEQWLCUEDFUBZEGWLDEFCIWLFVPZCRZUDAXEBR
        ZDERZAWKXFVQWLXFXGWLWKXFXGVRWPWKXGXFBCXEVSVTVBVNJVJACIUQZWKMSAEUNTWAUCZ
        UQZWKNSULAXDGRWKADGFCIKMOULSWBWCWDABCVEZUDBCDEFGHIAXGXHXLJWEAXFDGRXLKWE
        ABHUQXLLSAXIXLMSAXKXLNSAGXJUQXLOSAXLUFWFWG $.
    $}
  $}

  ${
    $d A k y $.  $d B y $.  $d C k $.  $d D y $.  $d W k $.  $d k ph y $.
    esumrnmpt2.1 $e |- ( y = B -> C = D ) $.
    esumrnmpt2.2 $e |- ( ph -> A e. V ) $.
    esumrnmpt2.3 $e |- ( ( ph /\ k e. A ) -> D e. ( 0 [,] +oo ) ) $.
    esumrnmpt2.4 $e |- ( ( ph /\ k e. A ) -> B e. W ) $.
    esumrnmpt2.5 $e |- ( ( ( ph /\ k e. A ) /\ B = (/) ) -> D = 0 ) $.
    esumrnmpt2.6 $e |- ( ph -> Disj_ k e. A B ) $.
    $( Rewrite an extended sum into a sum on the range of a mapping function.
       (Contributed by Thierry Arnoux, 30-May-2020.) $)
    esumrnmpt2 $p |- ( ph -> sum* y e. ran ( k e. A |-> B ) C = sum* k e. A D )
      $=
      ( c0 wceq cvv wcel cc0 crab cmpt crn cun cesum cxad nfrab1 wss ssrab2 a1i
      wn co ssexd cv cpnf cicc sselda syldan wa csn rabid simprbi adantl wb syl
      elsng mtbird eldifd wdisj nfcv disjss1f sylc esumrnmpt cle wbr wrex velsn
      snex biimpi nfre1 nfan simpllr simpr eqtr4d simp-4l simplr syl21anc eqtrd
      nfv r19.29af2 0e0iccpnf syl6eqel nfmpt1 nfrn nfel ad2antlr sylibr elrnmpt
      vex eqid ax-mp r19.29af ex ssrdv adantr esummono 0ex esumsn breqtrd rabn0
      nfn wne necon1bi mpteq12df mpt0 syl6eq rn0 esumeq1d esumnul 0le0 syl6eqbr
      rneqd wral mptexgf rnexg simplll adantlr syl2anc eqeltrd ralrimiva esumcl
      3syl cxr sseldi oveq1d xaddid2 3eqtr4d cin esumsplit eqtri elxrge0 sselii
      pm2.61dan iccssxr xrletri3 mpbird simpl esumeq2d esum0 ssrin incom neqned
      jca necomd neneqd nrex mtbir disjsn mpbir eqtr3i syl6sseq ss0 rabnc rabxm
      mpteq12i mptun rneqi rnun ) AGDPQZGCUAZDUBZUCZGUVIUKZGCUAZDUBZUCZUDZEBUEZ
      UVJUVNUDZFGUEZGCDUBZUCZEBUECFGUEAUVLEBUEZUVPEBUEZUFULZUVJFGUEZUVNFGUEZUFU
      LZUVRUVTAUWDUWGUWEUWHABUVNDEFGRIUVMGCUGZJAUVNCHKUVNCUHZAUVMGCUIUJZUMZAGUN
      ZUVNSZUWMCSZFTUOUPULZSZAUVNCUWMUWKUQZLURZAUWNUSZDIPUTZAUWNUWODISZUWRMURZU
      WTDUXASZUVIUWNUVMAUWNUWOUVMUVMGCVAVBZVCUWTUXBUXDUVIVDUXCDPIVFVEVGVHAUWJGC
      DVIGUVNDVIUWKOGUVNCDUWIGCVJVKVLVMZAUWETUWDUFULZUWDAUWCTUWDUFAUWCTQZUWCTVN
      VOZTUWCVNVOZUSZAUXIUXJAUVIGCVPZUXIAUXLUSZUWCUXAEBUETVNUXMUVLEUXABRUXMBWIU
      XARSUXMPVRUJUXMBUNZUXASZUSETUWPUXMUXOUXNPQZETQZUXOUXPUXMUXOUXPBPVQZVSVCUX
      MUXPUSZUVIUXQGCUXMUXPGAUXLGAGWIZUVIGCVTZWAUXPGWIWAUXQGWIUXSUWOUSZUVIUSZEF
      TUYCUXNDQZEFQZUYCUXNPDUXMUXPUWOUVIWBUYBUVIWCZWDJVEUYCAUWOUVIFTQZAUXLUXPUW
      OUVIWEUXSUWOUVIWFUYFNWGWHAUXLUXPWFWJZURWKWLAUVLUXAUHZUXLABUVLUXAAUXNUVLSZ
      UXOAUYJUSZUYDUXOGUVJAUYJGUXTGUXNUVLGUXNVJZGUVKGUVJDWMWNWOWAZUYKUWMUVJSZUS
      ZUYDUSZUXPUXOUYPUXNDPUYOUYDWCUYNUVIUYKUYDUYNUWOUVIUVIGCVAVBZWPWHUXRWQUYJU
      YDGUVJVPZAUYJUYRUXNRSZUYJUYRVDBWSZGUVJDUXNUVKRUVKWTWRXAVSVCZXBXCXDZXEXFUX
      METBPRUYHPRSZUXMXGUJTUWPSUXMWKUJXHXIAUXLUKZUSVUDUXIAVUDWCVUDUWCTTVNVUDUWC
      PEBUETVUDUVLPEBVUDBWIVUDUVLPUCPVUDUVKPVUDUVKGPDUBPVUDGUVJDPDUXLGUYAXKUVIG
      CUGZGPVJUXLUVJPUVJPXLUXLUVIGCXJVSXMDDQVUDDWTZUJXNGDXOXPYBXQXPXRBEXSXPXTYA
      VEUUCAUWCUWPSZUXJAUVLRSZEUWPSZBUVLYCVUGAUVJRSZUVKRSVUHAUVJCHKUVJCUHAUVIGC
      UIUJZUMZGUVJDRVUEYDUVKRYEYLZAVUIBUVLUYKUYDVUIGUVJUYMUYPEFUWPUYDUYEUYOJVCU
      YPAUWOUWQAUYJUYNUYDYFUYOUWOUYDAUYNUWOUYJAUVJCUWMVUKUQZYGXELYHYIVUAXBZYJUV
      LEBRBUVLVJZYKYHZVUGUWCYMSZUXJUWCUUAVBVEUUMAVURTYMSZUXHUXKVDAUWPYMUWCTUOUU
      DZVUQYNVUSAUWPYMTVUTWKUUBUJUWCTUUEYHUUFYOAUWDYMSUXGUWDQAUWDUWGYMUXFAUWPYM
      UWGVUTAUVNRSZUWQGUVNYCUWGUWPSUWLAUWQGUVNUWSYJUVNFGRUWIYKYHYNZYIUWDYPVEWHA
      UWHTUWGUFULZUWGAUWFTUWGUFAUWFUVJTGUEZTAUVJFTGUXTAUYGGUVJAUYNUSAUWOUVIUYGA
      UYNUUGVUNUYNUVIAUYQVCNWGYJUUHAVUJVVDTQVULUVJGRVUEUUIVEWHYOAUWGYMSVVCUWGQV
      VBUWGYPVEWHYQAUVLUVPEBABWIZVUPBUVPVJVUMAVVAUVORSUVPRSUWLGUVNDRUWIYDUVORYE
      YLAUVLUVPYRZPUHVVFPQAVVFUXAUVPYRZPAUYIVVFVVGUHVUBUVLUXAUVPUUJVEUVPUXAYRZV
      VGPUVPUXAUUKVVHPQPUVPSZUKVVIPDQZGUVNVPZVVJGUVNUWNPDUWNDPUWNDPUXEUULUUNUUO
      UUPVUCVVIVVKVDXGGUVNDPUVORUVOWTZWRXAUUQUVPPUURUUSUUTUVAVVFUVBVEVUOAUXNUVP
      SZUSZUYDVUIGUVNAVVMGUXTGUXNUVPUYLGUVOGUVNDWMWNWOWAVVNUWNUSZUYDUSZEFUWPUYD
      UYEVVOJVCVVPAUWOUWQAVVMUWNUYDYFVVOUWOUYDAUWNUWOVVMUWRYGXELYHYIVVMUYDGUVNV
      PZAVVMVVQUYSVVMVVQVDUYTGUVNDUXNUVORVVLWRXAVSVCXBYSAUVJUVNFGUXTVUEUWIVULUW
      LUVJUVNYRPQAUVIGCUVCUJAUYNUWOUWQVUNLURUWSYSYQAUWBUVQEBVVEUWBUVQQAUWBUVKUV
      OUDZUCUVQUWAVVRUWAGUVSDUBVVRGCDUVSDUVIGCUVDZVUFUVEGUVJUVNDUVFYTUVGUVKUVOU
      VHYTUJXRACUVSFGUXTCUVSQAVVSUJXRYQ $.
  $}

  ${
    $d i k n x $.  $d i n x F $.  $d i k N $.
    esumfzf.1 $e |- F/_ k F $.
    $( Formulating a partial extended sum over integers using the recursive
       sequence builder.  (Contributed by Thierry Arnoux, 18-Oct-2017.) $)
    esumfzf $p |- ( ( F : NN --> ( 0 [,] +oo ) /\ N e. NN )
      -> sum* k e. ( 1 ... N ) ( F ` k ) = ( seq 1 ( +e , F ) ` N ) ) $=
      ( vx cn wcel co c1 cfz cfv cesum cxad wceq wi nfv esumeq1d nfcv wa simpr
      vi vn cc0 cpnf cicc wf cseq caddc oveq2 fveq2 eqeq12d imbi2d nffv cbvesum
      cv csn cz fveq2d 1z a1i 1nn ffvelrn mpan2 esumsn syl5eq fzsn esumeq1 seq1
      ax-mp 3eqtr4g cuz simpl nnuz syl6eleq syl adantr oveq1d cun nfci nff nfan
      seqp1 fzsuc ovexd cvv snex cin fzp1disj simplr wss fzssnn sseldi ffvelrnd
      c0 velsn sylib simpll peano2nnd eqeltrd esumsplit oveq2d 3eqtrrd 3eqtr2rd
      exp31 a2d nnind impcom ) CFGFUCUDUEHZBUFZICJHZAUOZBKZALZCMBIUGZKZNZXIIUAU
      OZJHZXLALZXQXNKZNZOXIIIJHZXLALZIXNKZNZOXIIUBUOZJHZXLALZYFXNKZNZOXIIYFIUHH
      ZJHZXLALZYKXNKZNZOXIXPOUAUBCXQINZYAYEXIYPXSYCXTYDYPXRYBXLAYPAPXQIIJUIQXQI
      XNUJUKULXQYFNZYAYJXIYQXSYHXTYIYQXRYGXLAYQAPXQYFIJUIQXQYFXNUJUKULXQYKNZYAY
      OXIYRXSYMXTYNYRXRYLXLAYRAPXQYKIJUIQXQYKXNUJUKULXQCNZYAXPXIYSXSXMXTXOYSXRX
      JXLAYSAPXQCIJUIQXQCXNUJUKULXIIUPZXLALZIBKZYCYDXIUUAYTEUOZBKZELUUBYTXLUUDA
      EXKUUCBUJZEYTRAYTREXLRZAUUCBDAUUCRUMZUNXIUUDUUBEIUQXIUUCINZSUUCIBXIUUHTUR
      IUQGZXIUSUTXIIFGZUUBXHGVAFXHIBVBVCVDVEYBYTNZYCUUANUUIUUKUSIVFVIYBYTXLAVGV
      IUUIYDUUBNUSMBIVHVIVJYFFGZXIYJYOUULXIYJYOUULXISZYJSZYNYIYKBKZMHZYHUUOMHZY
      MUUMYNUUPNZYJUUMYFIVKKZGZUURUUMYFFUUSUULXIVLZVMVNZMBIYFWBVOVPUUNYHYIUUOMU
      UMYJTVQUUMUUQYMNYJUUMYMYGYKUPZVRZXLALYHUVCXLALZMHUUQUUMYLUVDXLAUULXIAUULA
      PZAFXHBDAUBFUVFVSAXHRVTWAZUUMUUTYLUVDNUVBIYFWCVOQUUMYGUVCXLAUVGAYGRAUVCRZ
      UUMIYFJWDUVCWEGUUMYKWFUTYGUVCWGWNNUUMIYFWHUTUUMXKYGGZSZFXHXKBUULXIUVIWIUV
      JYGFXKUUJYGFWJVAIYFWKVIUUMUVITWLWMUUMXKUVCGZSZFXHXKBUULXIUVKWIUVLXKYKFUVL
      UVKXKYKNUUMUVKTAYKWOWPUVLYFUULXIUVKWQWRWSWMWTUUMUVEUUOYHMUUMUVEUVCUUDELUU
      OUVCXLUUDAEUUEEUVCRUVHUUFUUGUNUUMUUDUUOEYKFUUMUUCYKNZSUUCYKBUUMUVMTURUUMY
      FUVAWRZUUMFXHYKBUULXITUVNWMVDVEXAXBVPXCXDXEXFXG $.
  $}

  ${
    $d a k n x $.  $d a n x F $.  $d k n x y $.  $d y F $.
    esumfsup.1 $e |- F/_ k F $.
    $( Formulating an extended sum over integers using the recursive sequence
       builder.  (Contributed by Thierry Arnoux, 18-Oct-2017.) $)
    esumfsup $p |- ( F : NN --> ( 0 [,] +oo )
      -> sum* k e. NN ( F ` k ) = sup ( ran seq 1 ( +e , F ) , RR* , < ) ) $=
      ( vx vn va cn c1 cxr clt wcel wbr wral wrex wceq wa cvv nfcv nfan simpr
      vy cc0 cpnf cicc co wf cxad cseq crn csup cv cfv cesum wss cle wi wfn cuz
      cr cz 1z seqfn ax-mp nnuz fneq2i mpbir iccssxr cfz esumfzf nff nfv simpll
      ovex 1nn fzssnn sseldd ffvelrnd ex ralrimi esumcl sylancr eqeltrrd sseldi
      mp1i ralrimiva fnfvrnss nnex ffvelrn fvelrnb eqcom eqeq1d rexbidva bitr4d
      wb syl5bbr biimpa a1i adantlr esummono adantr jca r19.29r breq1 rexlimivw
      biimpar 3syl cpw cfn cin nfesum1 simplll sylancom simplr esumlub ssnnssfz
      nfbr rexrd r19.42v simp-4l reximi sylbir sylan2 rexbii sylibr syl2anc vex
      simp-4r nfel1 simp-5l simpllr inss1 sseli elpwi xrltletr syl3anc reximdva
      rexlimdva mpd breq2d rexxfr2d ad2antrr mpbird supxr2 syl22anc eqcomd ) GU
      BUCUDUEZBUFZUGBHUHZUIZIJUJZGAUKZBULZAUMZUUGUUIIUNZUUMIKDUKZUUMUOLZDUUIMUU
      OUUMJLZUUOUAUKZJLZUAUUINZUPZDUSMUUJUUMOUUGUUHGUQZEUKZUUHULZIKZEGMUUNUVBUU
      HHURULZUQZHUTKUVGVAUGBHVBVCGUVFUUHVDVEVFZUUGUVEEGUUGUVCGKZPZUUFIUVDUBUCVG
      ZUVJHUVCVHUEZUULAUMZUVDUUFABUVCCVIZUVJUVLQKZUULUUFKZAUVLMZUVMUUFKZHUVCVHV
      MZUVJUVPAUVLUUGUVIAAGUUFBCAGRZAUUFRVJZUVIAVKZSZUVJUUKUVLKZUVPUVJUWDPZGUUF
      UUKBUUGUVIUWDVLUWEUVLGUUKHGKZUVLGUNZUWEVNHUVCVOZWDUVJUWDTVPVQVRVSUVLUULAQ
      AUVLRVTZWAZWBWCWEEGIUUHWFWAUUGUUFIUUMUVKUUGGQKZUVPAGMUUMUUFKWGUUGUVPAGUWA
      UUGUUKGKZUVPGUUFUUKBWHZVRVSGUULAQUVTVTWAWCUUGUUPDUUIUUGUUOUUIKZPZUUOUVMOZ
      EGNZUVMUUMUOLZEGMZPUWPUWRPZEGNUUPUWOUWQUWSUUGUWNUWQUUGUWNUVDUUOOZEGNZUWQU
      VBUWNUXBWNUUGUVHEGUUOUUHWIWDUUGUWPUXAEGUWPUVMUUOOUVJUXAUVMUUOWJUVJUVMUVDU
      UOUVNWKWOWLWMWPUUGUWSUWNUUGUWREGUVJUVLUULGAQUWCUWKUVJWGWQUUGUWLUVPUVIUWMW
      RUWFUWGUVJVNUWHWDWSWEWTXAUWPUWREGXBUWTUUPEGUWPUUPUWRUUOUVMUUMUOXCXEXDXFWE
      UUGUVADUSUUGUUOUSKZPZUUQUUTUXDUUQPZUUTUUOUVMJLZEGNZUXEUUOFUKZUULAUMZJLZUX
      IUVMUOLZPZEGNZFGXGZXHXIZNZUXGUXEUXJFUXONZUXKEGNZFUXOMZUXPUXEGUULAQUUOFUXD
      UUQAUUGUXCAUWAUXCAVKSAUUOUUMJAUUORAJRGUULAUVTXJXPSZUWKUXEWGWQUXEUWLUUGUVP
      UUGUXCUUQUWLXKUWMXLUXEUUOUUGUXCUUQXMXQUXDUUQTXNUXEUXRFUXOUXHUXOKZUXEUXHUV
      LUNZEGNZUXRUXHEXOUXEUYCPUXEUYBPZEGNUXRUXEUYBEGXRUYDUXKEGUYDUXHUULUVLAQUXE
      UYBAUXTUYBAVKSUVOUYDUVSWQUYDUWDPZGUUFUUKBUUGUXCUUQUYBUWDXSUYEUVLGUUKUWFUW
      GVNUWHVCZUYDUWDTWCVQUXEUYBTWSXTYAYBWEUXQUXSPUXJUXRPZFUXONUXPUXJUXRFUXOXBU
      XMUYGFUXOUXJUXKEGXRYCYDYEUXEUXMUXGFUXOUXEUYAPZUXLUXFEGUYHUVIPZUUOIKUXIIKU
      VMIKUXLUXFUPUYIUUOUUGUXCUUQUYAUVIYGXQUYIUUFIUXIUVKUYIUXHQKUVPAUXHMUXIUUFK
      FYFUYIUVPAUXHUYHUVIAUXEUYAAUXTAUXHUXOAUXHRZYHSUWBSZUYIUUKUXHKZUVPUYIUYLPZ
      GUUFUUKBUUGUXCUUQUYAUVIUYLYIUYMUXHGUUKUYMUYAUXHUXNKUXHGUNUXEUYAUVIUYLYJUX
      OUXNUXHUXNXHYKYLUXHGYMXFUYIUYLTVPVQVRVSUXHUULAQUYJVTWAWCUYIUUFIUVMUVKUYIU
      VOUVQUVRUVSUYIUVPAUVLUYKUYIUWDUVPUYIUWDPZGUUFUUKBUUGUXCUUQUYAUVIUWDYIUYNU
      VLGUUKUYFUYIUWDTWCVQVRVSUWIWAWCUUOUXIUVMYNYOYPYQYRUUGUUTUXGWNUXCUUQUUGUUS
      UXFUAEUVMUUIGUUFUWJUUGUURUUIKZUVDUUROZEGNZUURUVMOZEGNUVBUYOUYQWNUUGUVHEGU
      URUUHWIWDUUGUYRUYPEGUYRUVMUUROUVJUYPUVMUURWJUVJUVMUVDUURUVNWKWOWLWMUUGUYR
      PUURUVMUUOJUUGUYRTYSYTUUAUUBVRWEDUAUUIUUMUUCUUDUUE $.

    $( Formulating an extended sum over integers using the recursive sequence
       builder.  This version is limited to real valued functions.
       (Contributed by Thierry Arnoux, 19-Oct-2017.) $)
    esumfsupre $p |- ( F : NN --> ( 0 [,) +oo )
      -> sum* k e. NN ( F ` k ) = sup ( ran seq 1 ( + , F ) , RR* , < ) ) $=
      ( vx vy cn cc0 cpnf co wf cv cfv cxad c1 cxr clt caddc wcel wa cr crn wss
      cico cesum cseq csup cicc wceq icossicc fss mpan2 esumfsup syl cuz elnnuz
      1zzd sylan2br ge0addcl adantl rge0ssre simprl sseldi simprr rexadd eqcomd
      ffvelrn syl2anc seqfeq3 rneqd supeq1d eqtr4d ) FGHUCIZBJZFAKBLAUDZMBNUEZU
      AZOPUFZQBNUEZUAZOPUFVMFGHUGIZBJZVNVQUHVMVLVTUBWAGHUIFVLVTBUJUKABCULUMVMOV
      SVPPVMVRVOVMDEQMVLBNVMUPDKZNUNLRVMWBFRWBBLVLRWBUOFVLWBBVFUQWBVLRZEKZVLRZS
      ZWBWDQIZVLRVMWBWDURUSVMWFSZWBTRZWDTRZWGWBWDMIZUHWHVLTWBUTVMWCWEVAVBWHVLTW
      DUTVMWCWEVCVBWIWJSWKWGWBWDVDVEVGVHVIVJVK $.
  $}

  ${
    esumss.p $e |- F/ k ph $.
    esumss.a $e |- F/_ k A $.
    esumss.b $e |- F/_ k B $.
    esumss.1 $e |- ( ph -> A C_ B ) $.
    esumss.2 $e |- ( ph -> B e. V ) $.
    esumss.3 $e |- ( ( ph /\ k e. B ) -> C e. ( 0 [,] +oo ) ) $.
    esumss.4 $e |- ( ( ph /\ k e. ( B \ A ) ) -> C = 0 ) $.
    $( Change the index set to a subset by adding zeroes.  (Contributed by
       Thierry Arnoux, 19-Jun-2017.) $)
    esumss $p |- ( ph -> sum* k e. A C = sum* k e. B C ) $=
      ( cc0 co cmpt ctsu cuni cesum wcel cxrs cpnf cicc cress cres wceq resmptf
      wss syl oveq2d xrge0base xrge00 ccmn xrge0cmn a1i ctps xrge0tps nfcv eqid
      fmptdF suppss2f tsmsres eqtr3d unieqd df-esum 3eqtr4g ) AUANUBUCOZUDOZEBD
      PZQOZRVHECDPZQOZRBDESCDESAVJVLAVHVKBUEZQOVJVLAVMVIVHQABCUHVMVIUFJECBDIHUG
      UIUJACVGVKVHFBNUKULVHUMTAUNUOVHUPTAUQUOKAECDVGVKGIEVGURLVKUSUTACDEFBNGIHM
      KVAVBVCVDBDEVECDEVEVF $.
  $}

  ${
    $d k A $.  $d k V $.
    esumpinfval.0 $e |- F/ k ph $.
    esumpinfval.1 $e |- ( ph -> A e. V ) $.
    esumpinfval.2 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    esumpinfval.3 $e |- ( ph -> E. k e. A B = +oo ) $.
    $( The value of the extended sum of nonnegative terms, with at least one
       infinite term.  (Contributed by Thierry Arnoux, 19-Jun-2017.) $)
    esumpinfval $p |- ( ph -> sum* k e. A B = +oo ) $=
      ( cesum cxr wcel cpnf cle wbr wceq cc0 syl2anc wa cvv cicc iccssxr esumcl
      co wral cv ex ralrimi nfcv sseldi cif crab nfrab1 wss ssrab2 pnfxr 0lepnf
      a1i 0xr ubicc2 mp3an 0e0iccpnf ifclda eldif rabid simplbi2 con3dimp sylbi
      cdif adantl iffalsed esumss chash cxmu eqidd simprbi iftrued esumeq12dvaf
      wn cfv ssexd esumcst sylancl clt hashxrcl syl c0 wne rabn0 sylibr hashgt0
      wrex xmulpnf1 3eqtrd eqtr3d breq1 pnfge ax-mp breq2 mpbiri adantr iccgelb
      mp3an12 ifbothda esumlef eqbrtrrd xgepnf biimpd sylc ) ABCDJZKLZMXJNOZXJM
      PZAQMUAUDZKXJQMUBABELCXNLZDBUEXJXNLGAXODBFADUFZBLZXOHUGUHBCDEDBUIZUCRUJAB
      CMPZMQUKZDJZMXJNAXSDBULZXTDJZYAMAYBBXTDEFXSDBUMZXRYBBUNAXSDBUOURZGAXQSZXS
      MQXNMXNLZYFXSSQKLZMKLZQMNOYGUSUPUQQMUTVAZURQXNLYFXSVSZSZVBURVCZAXPBYBVILZ
      SXSMQYNYKAYNXQXPYBLZVSSYKXPBYBVDXQXSYOYOXQXSXSDBVEZVFVGVHVJVKVLAYCYBMDJZY
      BVMVTZMVNUDZMAYBYBXTMDFAYBVOYOXTMPAYOXSMQYOXQXSYPVPVQVJVRAYBTLZYGYQYSPAYB
      BEGYEWAZYJYBMDTYDDMUIWBWCAYRKLZQYRWDOZYSMPAYTUUBUUAYBTWEWFAYTYBWGWHZUUCUU
      AAXSDBWLUUDIXSDBWIWJYBTWKRYRWMRWNWOABXTCDEFXRGYMHXSMCNOZQCNOZXTCNOYFMQMXT
      CNWPQXTCNWPXSUUEYFXSUUEMMNOZYIUUGUPMWQWRCMMNWSWTVJYLXOUUFYFXOYKHXAYHYIXOU
      UFUSUPQMCXBXCWFXDXEXFXKXLXMXJXGXHXI $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y V $.
    $( Lemma for ~ esumpfinval .  (Contributed by Thierry Arnoux,
       28-Jun-2017.) $)
    esumpfinvallem $p |- ( ( A e. V /\ F : A --> ( 0 [,) +oo ) ) ->
      ( CCfld gsum F ) = ( ( RR*s |`s ( 0 [,] +oo ) ) gsum F ) ) $=
      ( vx wcel cc0 cpnf co wa ccnfld cress cgsu cxrs cvv wceq cc cr caddc cxad
      a1i vy cico wf cicc fex ancoms ovexd cbs cfv wss rge0ssre ax-resscn sstri
      cnfldbas ressbas2 ax-mp cxr icossxr xrsbas eqtr3i cplusg simprl syl6eleqr
      eqid simprr ge0addcl ovex cnfldadd ressplusg oveqi 3eltr3g syl2anc sseldi
      simpl simpr rexadd eqcomd xrsadd 3eqtr3g wfun ffun syl crn frn gsumpropd2
      cv syl6sseq cnfldex 0e0icopnf addid2d addid1d jca gsumress xrge0plusg cin
      xrge0base ressress mp2an incom icossicc dfss eqtr4i oveq2i eqtr2i iccssxr
      mpbi xaddid2 xaddid1 3eqtr4d ) ACEZAFGUBHZBUCZIZJXKKHZBLHMXKKHZBLHJBLHMFG
      UDHZKHZBLHXMUABXNXONNNDXLXJBNEAXKCBUEUFXMJXKKUGXMMXKKUGXNUHUIZXOUHUIZOXMX
      KXRXSXKPUJZXKXROXKQPUKULUMZXKPXNJXNVDZUNUOUPZXKUQUJXKXSOFGURXKUQXOMXOVDZU
      SUOUPUTTXMDWFZXREZUAWFZXREZIIZYEXKEZYGXKEZYEYGXNVAUIZHZXREYIYEXRXKXMYFYHV
      BYCVCZYIYGXRXKXMYFYHVEYCVCZYJYKIZYEYGRHZXKYMXRYEYGVFRYLYEYGXKNEZRYLOFGUBV
      GZXKRJXNNYBVHVIUPVJZYCVKVLYIYJYKYMYEYGXOVAUIZHZOYNYOYPYQYEYGSHZYMUUBYPYEQ
      EZYGQEZYQUUCOYPXKQYEUKYJYKVNVMYPXKQYGUKYJYKVOVMUUDUUEIUUCYQYEYGVPVQVLYTSU
      UAYEYGYRSUUAOYSXKSMXONYDVRVIUPVJVSVLXMXLBVTXJXLVOZAXKBWAWBXMBWCZXKXRXMXLU
      UGXKUJUUFAXKBWDWBYCWGWEXMDAPRXKBJXNNCFUNVHYBJNEXMWHTXJXLVNZXTXMYATUUFFXKE
      XMWITZXMYEPEZIZFYERHYEOYEFRHYEOUUKYEXMUUJVOZWJUUKYEUULWKWLWMXMDAXPSXKBXQX
      ONCFWPWNXQXKKHZMXPXKWOZKHZXOXPNEYRUUMUUOOFGUDVGYSXPXKMNNWQWRUUNXKMKUUNXKX
      PWOZXKXPXKWSXKXPUJZXKUUPOFGWTZXKXPXAXFXBXCXDXMMXPKUGUUHUUQXMUURTUUFUUIXMY
      EXPEZIZFYESHYEOZYEFSHYEOZUUTYEUQEZUVAUUTXPUQYEFGXEXMUUSVOVMZYEXGWBUUTUVCU
      VBUVDYEXHWBWLWMXI $.
  $}

  ${
    $d k A $.  $d k ph $.
    esumpfinval.a $e |- ( ph -> A e. Fin ) $.
    esumpfinval.b $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,) +oo ) ) $.
    $( The value of the extended sum of a finite set of nonnegative finite
       terms.  (Contributed by Thierry Arnoux, 28-Jun-2017.)  (Proof shortened
       by AV, 25-Jul-2019.) $)
    esumpfinval $p |- ( ph -> sum* k e. A B = sum_ k e. A B ) $=
      ( cc0 cpnf cicc co cgsu cuni cfv cfn wcel a1i sseldi fmptd cvv cha ccnfld
      cesum cxrs cress cmpt csu csn ctsu df-esum cle cordt crest xrge0base ccmn
      xrge00 xrge0cmn ctps xrge0tps cv cico icossicc eqid c0ex fsuppmptdm ctopn
      wa xrge0topn eqcomi xrhaus resthaus mp2an haustsmsid unieqd syl5eq syl6eq
      ovex unisn wf esumpfinvallem syl2anc cc rge0ssre ax-resscn sstri gsumfsum
      wceq cr 3eqtr2d ) ABCDUBZUCGHIJZUDJZDBCUEZKJZUAWLKJZBCDUFAWIWMUGZLZWMAWIW
      KWLUHJZLWPBCDUIAWQWOABWJWLWKUJUKMZWJULJZNGUMUOWKUNOAUPPWKUQOAURPEADBCWJWL
      ADUSBOVFZGHUTJZWJCGHVAFQWLVBZRADBWLXASCGXBEFGSOAVCPVDWKVEMWSVGVHWSTOZAWRT
      OWJSOXCVIGHIVPWJWRSVJVKPVLVMVNWMWKWLKVPVQVOABNOBXAWLVRWNWMWFEADBCXAWLFXBR
      BWLNVSVTABCDEWTXAWACXAWGWAWBWCWDFQWEWH $.
  $}

  ${
    $d k l $.  $d l A $.  $d l B $.  $d l ph $.
    esumpfinvalf.1 $e |- F/_ k A $.
    esumpfinvalf.2 $e |- F/ k ph $.
    esumpfinvalf.a $e |- ( ph -> A e. Fin ) $.
    esumpfinvalf.b $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,) +oo ) ) $.
    $( Same as ~ esumpfinval , minus distinct variable restrictions.
       (Contributed by Thierry Arnoux, 28-Aug-2017.)  (Proof shortened by AV,
       25-Jul-2019.) $)
    esumpfinvalf $p |- ( ph -> sum* k e. A B = sum_ k e. A B ) $=
      ( vl cc0 cpnf co cgsu ccnfld wcel a1i nfcv cvv cc wsb cesum cxrs cicc csu
      cress cmpt csn cuni ctsu df-esum cle cordt cfv crest cfn xrge0base xrge00
      ccmn xrge0cmn ctps xrge0tps cv wa cico sseldi eqid fmptdF c0ex fdmfifsupp
      icossicc ctopn xrge0topn eqcomi cha xrhaus ovex resthaus mp2an haustsmsid
      unieqd syl5eq unisn syl6eq wf wceq esumpfinvallem syl2anc csb wi rge0ssre
      cr ax-resscn sstri sbt sbim sban sbf clelsb3f anbi12i bitri wsbc sbsbc wb
      sbcel1g ax-mp imbi12i mpbi gsumfsum nfcsb1v csbeq1a cbvmptf oveq2i cbvsum
      vex 3eqtr4g 3eqtr2d ) ABCDUAZUBJKUCLZUELZDBCUFZMLZNXTMLZBCDUDZAXQYAUGZUHZ
      YAAXQXSXTUILZUHYEBCDUJAYFYDABXRXTXSUKULUMZXRUNLZUOJUPUQXSUROAUSPXSUTOAVAP
      GADBCXRXTFEDXRQADVBBOZVCZJKVDLZXRCJKVJHVEXTVFZVGZABXRXTRJYMGJROAVHPVIXSVK
      UMYHVLVMYHVNOZAYGVNOXRROYNVOJKUCVPXRYGRVQVRPVSVTWAYAXSXTMVPWBWCABUOOBYKXT
      WDYBYAWEGADBCYKXTFEDYKQHYLVGBXTUOWFWGANIBDIVBZCWHZUFZMLBYPIUDYBYCABYPIGYJ
      CSOZWIZDITZAYOBOZVCZYPSOZWIZYSDIYJYKSCYKWKSWJWLWMHVEWNYTYJDITZYRDITZWIUUD
      YJYRDIWOUUEUUBUUFUUCUUEADITZYIDITZVCUUBAYIDIWPUUGAUUHUUAADIFWQIDBEWRWSWTU
      UFYRDYOXAZUUCYRDIXBYOROUUIUUCXCIXNDYOCSRXDXEWTXFWTXGXHXTYQNMDIBCYPEIBQZIC
      QZDYOCXIZDYOCXJZXKXLBCYPDIUUMUUJEUUKUULXMXOXP $.
  $}

  ${
    $d k V $.  $d k M $.
    esumpinfsum.p $e |- F/ k ph $.
    esumpinfsum.a $e |- F/_ k A $.
    esumpinfsum.1 $e |- ( ph -> A e. V ) $.
    esumpinfsum.2 $e |- ( ph -> -. A e. Fin ) $.
    esumpinfsum.3 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    esumpinfsum.4 $e |- ( ( ph /\ k e. A ) -> M <_ B ) $.
    esumpinfsum.5 $e |- ( ph -> M e. RR* ) $.
    esumpinfsum.6 $e |- ( ph -> 0 < M ) $.
    $( The value of the extended sum of infinitely many terms greater than one.
       (Contributed by Thierry Arnoux, 29-Jun-2017.) $)
    esumpinfsum $p |- ( ph -> sum* k e. A B = +oo ) $=
      ( cxr wcel cpnf cle wbr cc0 cesum wceq cicc co iccssxr wral cv ex ralrimi
      esumcl syl2anc sseldi chash cfv cxmu clt 0xr xrltle sylancr mpd pnfge syl
      wi w3a wb pnfxr elicc1 mp2an syl3anbrc nfcv esumcst cfn wn hashinf oveq1d
      xmulpnf2 3eqtrd adantr esumlef eqbrtrrd xgepnf biimpd sylc ) ABCDUAZOPZQW
      DRSZWDQUBZATQUCUDZOWDTQUEABFPZCWHPZDBUFWDWHPIAWJDBGADUGBPZWJKUHUIBCDFHUJU
      KULABEDUAZQWDRAWLBUMUNZEUOUDZQEUOUDZQAWIEWHPZWLWNUBIAEOPZTERSZEQRSZWPMATE
      UPSZWRNATOPZWQWTWRVCUQMTEURUSUTAWQWSMEVAVBXAQOPWPWQWRWSVDVEUQVFTQEVGVHVIZ
      BEDFHDEVJVKUKAWMQEUOAWIBVLPVMWMQUBIJBFVNUKVOAWQWTWOQUBMNEVPUKVQABECDFGHIA
      WPWKXBVRKLVSVTWEWFWGWDWAWBWC $.
  $}

  ${
    $d k l n s x y z $.  $d b l m n s x y A $.  $d k m n s x y z B $.
    $d b k m n x y ph $.
    esumpcvgval.1 $e |- ( ( ph /\ k e. NN ) -> A e. ( 0 [,) +oo ) ) $.
    esumpcvgval.2 $e |- ( k = l -> A = B ) $.
    esumpcvgval.3 $e |- ( ph ->
                      ( n e. NN |-> sum_ k e. ( 1 ... n ) A ) e. dom ~~> ) $.
    $( The value of the extended sum when the corresponding series sum is
       convergent.  (Contributed by Thierry Arnoux, 31-Jul-2017.) $)
    esumpcvgval $p |- ( ph -> sum* k e. NN A = sum_ k e. NN A ) $=
      ( cn c1 cr wcel wa cc0 wceq cle wbr syl c0 vb vx vy vs vm cpw cfn cin csu
      vz cv cmpt crn cxr clt csup caddc cseq cesum wor xrltso a1i nnuz 1zzd cfv
      cpnf cico co eqcom 3imtr3i cbvmptv fmptd ffvelrnda elrege0 simplbi serfre
      weq adantr simpr peano2nnd ffvelrnd simprbi addge01d mpbid syl6eleq seqp1
      wf cuz breqtrrd wral syl2anc rge0ssre sseldi cfz cdm simpll elfznn adantl
      wrex recnd fsumser fzfid wss adantlr ralrimiva breq2 rspcev eqid elrnmpti
      wn sylan2 imp breq1 rexlimdva sylan2b simplr fsumrecl ad2antrr simprr wne
      ex wfn mpbir eqeq2d simpr1r 3anassrs wb w3a 0xr pnfxr mp2an elin mpbir2an
      sumeq1 wo xrlelttric mpan mpjaodan cvv cgsu fvmpt2 cli cc eqcomd eqeltrrd
      feqmptd eqtr2d isumrecl fzssuz sseqtr4i isumless eqbrtrrd ralbidv climsup
      mpteq2dva climrecl rexrd sumex ssnnssfz fsumless reximdv syl5ibrcom inss2
      rexbidv inss1 elpwid sseldd eqeltrd r19.29an frn 1nn ne0ii dm0rn0 syl5bbr
      eqeq1d necon3bid mpbiri cz 1z seqfn ax-mp fneq2i dffn5 mpbi fvex biimparc
      fdm r19.29 rexlimivw reximi fveq2 sylibr ad2ant2r suprub rexlimddv lenltd
      syl31anc letrd ad3antrrr pnfnlt notbid pm2.21dd simplll simpr1l syl3anbrc
      mpbird elico1 3jca simprl suprlub biimpa syl21anc wi ssriv ovex elpw fzfi
      eqtr4d 3imtr4g ssrdv ssrexv syldan syl12anc xgepnf orbi1d 0elpw 0fin sum0
      eqcomi ad2antrl eqsupd nfv nfcv nnex cicc icossicc ccnfld cxrs cress elex
      simplrl esumpfinvallem gsumfsum eqtr3d esumval isumclim 3eqtr4d ) AUAJUFZ
[encoded data, 4400 characters]
      CVUSVWPVXHVXQVUFVUG $.
  $}

  ${
    $d k M $.  $d k N $.  $d k ph $.
    esumpmono.1 $e |- ( ph -> M e. NN ) $.
    esumpmono.2 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    esumpmono.3 $e |- ( ( ph /\ k e. NN ) -> A e. ( 0 [,) +oo ) ) $.
    $( The partial sums in an extended sum form a monotonic sequence.
       (Contributed by Thierry Arnoux, 31-Aug-2017.) $)
    esumpmono $p |- ( ph ->
                        sum* k e. ( 1 ... M ) A <_ sum* k e. ( 1 ... N ) A ) $=
      ( c1 cfz co cesum cc0 cle wbr cxr wcel cpnf cvv cn cxad cicc iccssxr wral
      caddc ovexd cv elfznn wa cico sseldi sylan2 ralrimiva nfcv esumcl syl2anc
      icossicc xrleid syl cuz cfv wss adantr peano2nn nnuz syl6eleq fzss1 simpr
      3syl sseldd syldan elxrge0 simprbi wi 0xr xle2add syl22anc mp2and xaddid1
      a1i wceq eqcomd cun eluzfz fzsplit esumeq1 nfv clt cin c0 ltp1d esumsplit
      nnre fzdisj eqtrd 3brtr4d ) AIDJKZBCLZMUAKZWRDIUEKZEJKZBCLZUAKZWRIEJKZBCL
      ZNAWRWRNOZMXBNOZWSXCNOZAWRPQZXFAMRUBKZPWRMRUCZAWQSQBXJQZCWQUDWRXJQAIDJUFZ
      AXLCWQCUGZWQQAXNTQZXLXNDUHAXOUIMRUJKXJBMRUQHUKZULZUMWQBCSCWQUNZUOUPUKZWRU
      RUSAXBXJQZXGAXASQXLCXAUDXTAWTEJUFZAXLCXAAXNXAQZXOXLAYBUIZXNXDQXOYCXAXDXNY
      CDTQZWTIUTVAZQXAXDVBAYDYBFVCYDWTTYEDVDVEVFWTIEVGVIAYBVHVJXNEUHUSXPVKZUMXA
      BCSCXAUNZUOUPZXTXBPQZXGXBVLVMUSAXIMPQZXIYIXFXGUIXHVNXSYJAVOVTXSAXJPXBXKYH
      UKWRMWRXBVPVQVRAWSWRAXIWSWRWAXSWRVSUSWBAXEWQXAWCZBCLZXCADXDQZXDYKWAXEYLWA
      ADYEQEDUTVAQYMADTYEFVEVFGDIEWDUPDIEWEXDYKBCWFVIAWQXABCACWGXRYGXMYAAYDDWTW
      HOWQXAWIWJWAFYDDDWMWKIDWTEWNVIXQYFWLWOWP $.
  $}

  ${
    $d k A $.  $d x y k C $.  $d k V $.  $d x y k ph $.
    esumcocn.j $e |- J = ( ( ordTop ` <_ ) |`t ( 0 [,] +oo ) ) $.
    esumcocn.a $e |- ( ph -> A e. V ) $.
    esumcocn.b $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    esumcocn.1 $e |- ( ph -> C e. ( J Cn J ) ) $.
    esumcocn.0 $e |- ( ph -> ( C ` 0 ) = 0 ) $.
    esumcocn.f $e |- ( ( ph /\ x e. ( 0 [,] +oo ) /\ y e. ( 0 [,] +oo ) ) ->
                           ( C ` ( x +e y ) ) = ( ( C ` x ) +e ( C ` y ) ) ) $.
    $( Lemma for ~ esummulc2 and co.  Composing with a continuous function
       preserves extended sums.  (Contributed by Thierry Arnoux,
       29-Jun-2017.) $)
    esumcocn $p |- ( ph -> ( C ` sum* k e. A B ) = sum* k e. A ( C ` B ) ) $=
      ( cfv wcel cc0 co xrge0base cesum nfv nfcv cv wa cpnf cicc ccn cxrs cress
      wf ctps cuni xrge0tps cle cordt crest ctopn xrge0topn eqtr4i tpsuni ax-mp
      wceq cnf adantr ffvelrnd cmpt ccom ctsu ccmn xrge0cmn cmnd cxad wral cmhm
      syl a1i cmnmnd 3expib ralrimivv w3a xrge0plusg xrge00 ismhm biimpri eqidd
      syl23anc fmpt3d esumel tsmsmhm cofmpt oveq2d eleqtrd esumid eqcomd ) ADEF
      PZGUADEGUAZFPZADWPWRGIAGUBZGDUCZKAGUDDQZUERUFUGSZXBEFAXBXBFUKZXAAFHHUHSQX
      CMFHHXBXBUIXBUJSZULQZXBHUMVCUNXBHXDTHUOUPPXBUQSXDURPJUSUTZVAVBZXGVDVPZVEL
      VFAWRXDFGDEVGZVHZVISXDGDWPVGZVISADXBFXIXDXDHHIWQTXFXFXDVJQZAVKVQZXEAUNVQZ
      XMXNAXDVLQZXOXCBUDZCUDZVMSFPXPFPXQFPVMSVCZCXBVNBXBVNZRFPRVCZFXDXDVOSQZXOA
      XLXOVKXDVRVBVQZYBXHAXRBCXBXBAXPXBQXQXBQXROVSVTNYAXOXOUEXCXSXTWAUEBCXBXBVM
      VMXDXDFRRTTWBWBWCWCWDWEWGMKAGDEXBXIAXIWFLWHADEGIWSWTKLWIWJAXJXKXDVIAGDEXB
      XBFXHLWKWLWMWNWO $.
  $}

  ${
    $d k z A $.  $d z B $.  $d k x y z C $.  $d k V $.  $d k x y z ph $.
    esummulc2.a $e |- ( ph -> A e. V ) $.
    esummulc2.b $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    esummulc2.c $e |- ( ph -> C e. ( 0 [,) +oo ) ) $.
    $( An extended sum multiplied by a constant.  (Contributed by Thierry
       Arnoux, 6-Jul-2017.) $)
    esummulc1 $p |- ( ph ->
                           ( sum* k e. A B *e C ) = sum* k e. A ( B *e C ) ) $=
      ( vz cc0 co cxmu cfv wceq wcel fvmptd cvv wa simpr vx cesum cpnf cicc cle
      vy cmpt cordt crest eqid xrge0mulc1cn eqidd oveq1 cxr cico icossxr sseldi
      xmul02 syl sylan9eqr 0e0iccpnf a1i w3a cxad simp2 simp3 icossicc 3ad2ant1
      cv xrge0adddir syl3anc oveq1d 3adant1 ovexd oveq12d 3eqtr4d esumcocn wral
      ge0xaddcl ralrimiva nfcv esumcl syl2anc esumeq2dv 3eqtr3d ) ABCEUBZJKUCUD
      LZJVIZDMLZUGZNBCWJNZEUBWFDMLZBCDMLZEUBAUAUFBCWJEUEUHNWGUILZFWNUJZGHAJDWJW
      NWOWJUJIUKAJKWIKWGWJWGAWJULZWHKOAWIKDMLZKWHKDMUMADUNPWQKOAKUCUOLZUNDKUCUP
      IUQDURUSUTKWGPAVAVBZWSQAUAVIZWGPZUFVIZWGPZVCZWTXBVDLZDMLZWTDMLZXBDMLZVDLZ
      XEWJNWTWJNZXBWJNZVDLXDXAXCDWGPXFXIOAXAXCVEZAXAXCVFZXDWRWGDKUCVGAXADWRPXCI
      VHUQWTXBDVJVKXDJXEWIXFWGWJRXDWJULZXDWHXEOZSWHXEDMXDXOTVLXAXCXEWGPAWTXBVSV
      MXDXEDMVNQXDXJXGXKXHVDXDJWTWIXGWGWJRXNXDWHWTOZSWHWTDMXDXPTVLXLXDWTDMVNQXD
      JXBWIXHWGWJRXNXDWHXBOZSWHXBDMXDXQTVLXMXDXBDMVNQVOVPVQAJWFWIWLWGWJRWPAWHWF
      OZSWHWFDMAXRTVLABFPCWGPZEBVRWFWGPGAXSEBHVTBCEFEBWAWBWCAWFDMVNQABWKWMEAEVI
      BPSZJCWIWMWGWJRXTWJULXTWHCOZSWHCDMXTYATVLHXTCDMVNQWDWE $.

    $( An extended sum multiplied by a constant.  (Contributed by Thierry
       Arnoux, 6-Jul-2017.) $)
    esummulc2 $p |- ( ph ->
                           ( C *e sum* k e. A B ) = sum* k e. A ( C *e B ) ) $=
      ( cesum cxmu co cxr wcel wceq cc0 cpnf sseldi syl2anc xmulcom cico esumcl
      icossxr cicc iccssxr wral ralrimiva nfcv esummulc1 cv wa adantr esumeq2dv
      3eqtrd ) ADBCEJZKLZUODKLZBCDKLZEJBDCKLZEJADMNZUOMNUPUQOAPQUALMDPQUCIRZAPQ
      UDLZMUOPQUEZABFNCVBNZEBUFUOVBNGAVDEBHUGBCEFEBUHUBSRDUOTSABCDEFGHIUIABURUS
      EAEUJBNZUKZCMNUTURUSOVFVBMCVCHRAUTVEVAULCDTSUMUN $.
  $}

  ${
    $d k A $.  $d k C $.  $d k V $.  $d k ph $.
    esumdivc.a $e |- ( ph -> A e. V ) $.
    esumdivc.b $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    esumdivc.c $e |- ( ph -> C e. RR+ ) $.
    $( An extended sum divided by a constant.  (Contributed by Thierry Arnoux,
       6-Jul-2017.) $)
    esumdivc $p |- ( ph -> ( sum* k e. A B /e C ) = sum* k e. A ( B /e C ) ) $=
      ( cesum c1 cxdiv co cc0 cpnf wcel wceq syl3anc sseldi cxr cxmu cdiv rpred
      cico wne 1red rpne0d rexdiv cioo ioorp ioossico eqsstr3i rpreccld eqeltrd
      cr crp esummulc1 cicc iccssxr wral ralrimiva esumcl syl2anc xdivrec cv wa
      nfcv adantr esumeq2dv 3eqtr4d ) ABCEJZKDLMZUAMZBCVLUAMZEJVKDLMZBCDLMZEJAB
      CVLEFGHAVLKDUBMZNOUDMZAKUOPDUOPZDNUEZVLVQQAUFADIUCZADIUGZKDUHRAUPVRVQUPNO
      UIMVRUJNOUKULADIUMSUNUQAVKTPVSVTVOVMQANOURMZTVKNOUSZABFPCWCPZEBUTVKWCPGAW
      EEBHVABCEFEBVGVBVCSWAWBVKDVDRABVPVNEAEVEBPZVFZCTPVSVTVPVNQWGWCTCWDHSAVSWF
      WAVHAVTWFWBVHCDVDRVIVJ $.
  $}

  $( Lemma for ~ hasheuni .  (Contributed by Thierry Arnoux, 19-Nov-2016.) $)
  hashf2 $p |- # : _V --> ( 0 [,] +oo ) $=
    ( vx cvv cn0 cpnf csn cun chash wf cc0 cicc co wss hashf cv wcel cxr cle cz
    wbr cr nn0z zre rexr 3syl nn0ge0 elxrge0 sylanbrc ssriv pnfxr 0lepnf ubicc2
    0xr mp3an snssi ax-mp unssi fss mp2an ) BCDEZFZGHUTIDJKZLBVAGHMCUSVAACVAANZ
    COZVBPOZIVBQSVBVAOVCVBROVBTOVDVBUAVBUBVBUCUDVBUEVBUFUGUHDVAOZUSVALIPODPOIDQ
    SVEULUIUJIDUKUMDVAUNUOUPBUTVAGUQUR $.

  ${
    $d x A $.  $d x V $.
    $( The cardinality of a disjoint union, not necessarily finite. cf.
       ~ hashuni .  (Contributed by Thierry Arnoux, 19-Nov-2016.)  (Revised by
       Thierry Arnoux, 2-Jan-2017.)  (Revised by Thierry Arnoux,
       20-Jun-2017.) $)
    hasheuni $p |- ( ( A e. V /\ Disj_ x e. A x )
                                   -> ( # ` U. A ) = sum* x e. A ( # ` x ) ) $=
      ( wcel wa cfn chash cesum wceq wss nfv cc0 cpnf co wral wn cvv a1i c0 c1
      cv wdisj cuni cfv w3a nfdisj1 nf3an simp2 simp3 simp1 hashunif simpl cico
      csu dfss3 cn0 hashcl cr cle nn0re nn0ge0 elrege0 sylanbrc ralimi r19.21bi
      wbr sylbi adantll esumpfinval 3adant1 eqtr4d 3adant1l 3expa uniexg notbii
      syl wrex rexnal bitr4i wi elssuni ssfi expcom rexlimiv hashinf syl2an vex
      con3d mpan reximi nfre1 nfan cicc hashf2 ffvelrn mp2an esumpinfval sylan2
      simpr 3adant2 3adant1r pm2.61dan cpw pwfi pwuni mpan2 con3i crab cxad cun
      wf wtru nftru wo unrab exmid rgenw rabid2 mpbir eqtr4i trud nfrab1 rabexg
      esumeq1d cin rabnc esumsplit syl5eqr adantr cdif csn dfrab3 hasheq0 ax-mp
      cab wb abbii syl2anc wne cxr df-sn ineq2i eqtri snfi inss2 eqeltri difinf
      notrab eleq1i sylnib rabid sylib simprd biimpri necon3bi hashge1 1re 0lt1
      rexri esumpinfsum oveq2d cmnf iccssxr ralrimiva esumcl sseldi xrge0neqmnf
      clt xaddpnf1 3eqtrd adantlr ) BCDZABAUAZUBZEZBFDZBUCZGUDZBUVMGUDZAHZIZUVO
      UVPEBFJZUWAUVOUVPUWBUWAUVNUVPUWBUWAUVLUVNUVPUWBUEZUVRBUVSAUNZUVTUWCABUVNU
      VPUWBAABUVMUFUVPAKUWBAKUGUVNUVPUWBUHUVNUVPUWBUIUVNUVPUWBUJUKUVPUWBUVTUWDI
      UVNUVPUWBEBUVSAUVPUWBULUWBUVMBDZUVSLMUMNDZUVPUWBUWFABUWBUVMFDZABOZUWFABOA
      BFUOZUWGUWFABUWGUVSUPDZUWFUVMUQUWJUVSURDLUVSUSVFUWFUVSUTUVSVAUVSVBVCVPVDV
      GVEVHVIVJVKVLVMUVOUVPUWBPZUWAUVLUVPUWKUWAUVNUVLUWKUWAUVPUVLUWKEUVRMUVTUVL
      UVQQDZUVQFDZPZUVRMIZUWKBCVNZUWKUWGPZABVQZUWNUWKUWHPUWRUWBUWHUWIVOUWGABVRV
      SZUWQUWNABUWEUVMUVQJZUWQUWNVTUVMBWAUWTUWMUWGUWMUWTUWGUVQUVMWBWCWHVPWDVGUV
      QQWEZWFUWKUVLUVSMIZABVQZUVTMIUWKUWRUXCUWSUWQUXBABUVMQDZUWQUXBAWGZUVMQWEWI
      WJVGUVLUXCEZBUVSACUVLUXCAUVLAKZUXBABWKWLUVLUXCULUVSLMWMNZDZUXFUWEEQUXHGXK
      UXDUXIWNUXEQUXHUVMGWOWPZRUVLUXCWSWQWRVKWTXAVMXBUVLUVPPZUWAUVNUVLUXKEZUVRM
      UVTUVLUWLUWNUWOUXKUWPUWMUVPUWMUVQXCZFDZUVPUVQXDUXNBUXMJUVPBXEUXMBWBXFVGXG
      UXAWFUXLUVTUVSLIZABXHZUVSAHZUXOPZABXHZUVSAHZXINZUXQMXINZMUVLUVTUYAIUXKUVL
      UVTUXPUXSXJZUVSAHZUYAUYDUVTIXLUYCBUVSAAXMUYCBIXLUYCUXOUXRXNZABXHZBUXOUXRA
      BXOBUYFIUYEABOUYEABUXOXPXQUYEABXRXSXTRYDYAUVLUXPUXSUVSAUXGUXOABYBZUXRABYB
      ZUXOABCYCZUXRABCYCZUXPUXSYESIUVLUXOABYFRUXIUVLUVMUXPDZEUXJRUXIUVLUVMUXSDZ
      EUXJRYGYHYIUXLUXTMUXQXIUXLUXSUVSATQUXLAKUYHUVLUXSQDUXKUYJYIUXLBUXPYJZFDZU
      XSFDUXLUXKUXPFDZUYNPUVLUXKWSUYOUXLUXPBSYKZYEZFUXPBUXOAYOZYEUYQUXOABYLUYRU
      YPBUYRUVMSIZAYOUYPUXOUYSAUXDUXOUYSYPUXEUVMQYMYNZYQASUUAXTUUBUUCUYPFDUYQUY
      PJUYQFDSUUDBUYPUUEUYPUYQWBWPUUFRBUXPUUGYRUYMUXSFUXOABUUHUUIUUJUXIUXLUYLEZ
      UXJRVUAUXDUVMSYSZTUVSUSVFUXDVUAUXERVUAUXRVUBVUAUWEUXRVUAUYLUWEUXREUXLUYLW
      SUXRABUUKUULUUMUXOUVMSUXOUYSUYTUUNUUOVPUVMQUUPYRTYTDUXLTUUQUUSRLTUVHVFUXL
      UURRUUTUVAUXLUXQYTDUXQUVBYSZUYBMIUXLUXHYTUXQLMUVCUXLUXPQDZUXIAUXPOUXQUXHD
      ZUVLVUDUXKUYIYIUXLUXIAUXPUXIUXLUYKEUXJRUVDUXPUVSAQUYGUVEYRZUVFUXLVUEVUCVU
      FUXQUVGVPUXQUVIYRUVJVKUVKXB $.
  $}

  ${
    $d k l x y z $.  $d l m n x y z A $.  $d k l n x y B $.
    $d k l m n x y F $.  $d k n J $.  $d k l m n x y ph $.
    esumcvg.j $e |- J = ( TopOpen ` ( RR*s |`s ( 0 [,] +oo ) ) ) $.
    esumcvg.f $e |- F = ( n e. NN |-> sum* k e. ( 1 ... n ) A ) $.
    esumcvg.a $e |- ( ( ph /\ k e. NN ) -> A e. ( 0 [,] +oo ) ) $.
    esumcvg.m $e |- ( k = m -> A = B ) $.
    $( The sequence of partial sums of an extended sum converges to the whole
       sum. cf. ~ fsumcvg2 .  (Contributed by Thierry Arnoux, 5-Sep-2017.) $)
    esumcvg $p |- ( ph -> F ( ~~>t ` J ) sum* k e. NN A ) $=
      ( vl cpnf wcel cn wceq wa c1 cvv vx vy vz cc0 cico wral cesum clm cfv wbr
      co wrex cli cdm csu nnuz simpr cv cc cr rge0ssre wi weq eleq1d adantl imp
      sseldi adantlr cfz fzfid elfznn sylan2 esumpfinval syl5eq wf fmptd adantr
      cmpt cle simplll cicc eqidd eqcom fvmptd sylancom elrege0 sylib caddc wfn
      ovex simpll syl2anc ralrimiva nfcv esumcl sylancr syl cuz mpbir a1i eqtrd
      cz wb mpbid breqtrrd nnzd uzid 3syl oveq2 esumeq1 simp-4l cfn cxr clt nfv
      nnex cgsu simplr eqid breq2d reximdva wss mp2an rspce cres anbi2d imbi12d
      cxp eleq1 nfan ovexd esumpinfval chvarv ctopon 0xr pnfxr 0lepnf syldan wo
      mp3an 1zzd ax-resscn sstri cbvralv rsp sylbir mpteq2dva fvmpt2d isumclim3
      fsumcl fsumrp0cl eqeltrd 3imtr3i simpld cseq ffn 1z seqfn fneq2i syl6eleq
      fsumser eqfnfvd eqeltrrd isumrecl simprd isumge0 sylanbrc ssid lmlimxrge0
      ax-mp mpbird syl5eqelr esumpcvgval wn esumpmono eqtr4d cbvmptv eqtr4i w3a
      peano2uz simpr3 3anassrs peano2nnd 3brtr4d lmdvglim cpw cin crn csup cxrs
      ccnfld cress inss1 elpwid sseldd esumpfinvallem gsumfsum esumval r19.21bi
      inss2 eqtr3d lmdvg nnz fveq2d rspcdv ad2antrr ffvelrnd ltle esumex sylibd
      reximia mpd fzssuz sseqtr4i elpw fzfi elin mpbir2an sumex elrnmpt1s breq2
      sumeq1 mpan rexlimivw adantllr fsumrecl rexrd frn supxrunb1 pm2.61dan csn
      reseq1i sbequ12r anbi12d fveq2 reseq2d xpeq1d eqeq12d nfs1v elnnuz eluzfz
      wsb simpllr sylanb sbequ12 mpteq12 sylan uznnssnn fconstmpt 3eqtr4d mpdan
      resmpt cordt crest ctopn xrge0topn eqtri letopon iccssxr resttopon ubicc2
      ex eqeltri lmconst syl3anc breq1 biimprd mpan9 cpm nnsscn elpm2r syl22anc
      cnex lmres biimpar r19.29an nfre1 eliccelico r19.30 eqeq1d cbvrexv orbi2i
      sylibr mpjaodan ) ACUDNUEUKZOZEPUFZGPBDUGZHUHUIZUJZBNQZDPULZAVWGRZGUMUNZO
[encoded data, 5120 characters]
      WCVWD $.
  $}

  ${
    $d i k l m n $.  $d i l m n A $.  $d k n B $.  $d k l n C $.  $d k n J $.
    $d k l n ph $.
    esumcvg2.j $e |- J = ( TopOpen ` ( RR*s |`s ( 0 [,] +oo ) ) ) $.
    esumcvg2.a $e |- ( ( ph /\ k e. NN ) -> A e. ( 0 [,] +oo ) ) $.
    esumcvg2.l $e |- ( k = l -> A = B ) $.
    esumcvg2.m $e |- ( k = m -> A = C ) $.
    $( Simpler version of ~ esumcvg .  (Contributed by Thierry Arnoux,
       5-Sep-2017.) $)
    esumcvg2 $p |- ( ph -> ( n e. NN |-> sum* k e. ( 1 ... n ) A )
      ( ~~>t ` J ) sum* k e. NN A ) $=
      ( vi cn c1 cv cfz cesum wceq co cmpt clm cfv cbvesumv esumeq1 syl syl5eqr
      oveq2 cbvmptv esumcvg syl5eqbrr ) AGOPGQZRUAZBESZUBNOPNQZRUAZDFSZUBZOBESH
      UCUDNGOURUOUPUMTZURUQBESZUOUQBDEFMUEUTUQUNTVAUOTUPUMPRUIUQUNBEUFUGUHUJZAB
      CEIGUSHJVBKLUKUL $.
  $}

  ${
    $d i j k $.  $d i j A $.  $d j k B $.  $d j k F $.  $d j k ph $.
    esumcvgsum.1 $e |- ( k = i -> A = B ) $.
    esumcvgsum.2 $e |- ( ( ph /\ k e. NN ) -> A e. ( 0 [,) +oo ) ) $.
    esumcvgsum.3 $e |- ( ( ph /\ k e. NN ) -> ( F ` k ) = A ) $.
    esumcvgsum.4 $e |- ( ph -> seq 1 ( + , F ) ~~> L ) $.
    esumcvgsum.5 $e |- ( ph -> L e. RR ) $.
    $( The value of the extended sum when the corresponding sum is convergent.
       (Contributed by Thierry Arnoux, 29-Oct-2019.) $)
    esumcvgsum $p |- ( ph -> sum* k e. NN A = sum_ k e. NN A ) $=
      ( vj cn c1 wcel cc0 cpnf cr cmnf cv cfz co csu cmpt caddc cseq cfv cli wa
      cdm wceq simpll elfznn adantl syl2anc cuz nnuz eleq2i biimpi cico cxr clt
      cioo wbr cle wss mnfxr pnfxr 0re mnflt ax-mp pnfge icossioo mp4an sseqtri
      ioomax sseldi recnd fsumser mpteq2dva wfn cz 1z seqfn wb fneq2 mpbir mpbi
      dffn5 cvv seqex a1i breldmg syl3anc syl5eqelr eqeltrd esumpcvgval ) ABCEM
      DIHAMNOMUAZUBUCZBEUDZUEMNWSUFFOUGZUHZUEZUIUKZAMNXAXCAWSNPZUJZBEFOWSXGEUAZ
      WTPZUJZAXHNPZXHFUHBULAXFXIUMZXIXKXGXHWSUNUOZJUPXFWSOUQUHZPZAXFXONXNWSURUS
      UTUOXJBXJQRVAUCZSBXPTRVDUCZSTVBPRVBPZTQVCVEZRRVFVEZXPXQVGVHVIQSPXSVJQVKVL
      XRXTVIRVMVLTRQRVNVOVQVPXJAXKBXPPXLXMIUPVRVSVTWAAXDXBXEXBNWBZXBXDULYAXBXNW
      BZOWCPYBWDUFFOWEVLNXNULYAYBWFURNXNXBWGVLWHMNXBWJWIAXBWKPZGSPXBGUIVEXBXEPY
      CAUFFOWLWMLKXBGWKSUIWNWOWPWQWR $.
  $}

  ${
    $d A n z $.  $d B n z $.  $d k n z ph $.
    esumsup.1 $e |- ( ph -> B e. ( 0 [,] +oo ) ) $.
    esumsup.2 $e |- ( ( ph /\ k e. NN ) -> A e. ( 0 [,] +oo ) ) $.
    $( Express an extended sum as a supremum of extended sums.  (Contributed by
       Thierry Arnoux, 24-May-2020.) $)
    esumsup $p |- ( ph -> sum* k e. NN A
      = sup ( ran ( n e. NN |-> sum* k e. ( 1 ... n ) A ) , RR* , < ) ) $=
      ( cn cv cmpt cfv cesum cxad c1 cxr clt wceq wcel wa syl2anc cseq crn csup
      cfz co cc0 cpnf cicc wf eqid fmptd nfmpt1 esumfsup simpr fvmpt2 esumeq2dv
      syl wfn cuz cz seqfn ax-mp nnuz fneq2i mpbir nfcv dffn5f mpbi a1i fz1ssnn
      1z wss sselda simpll esumfzf sylan eqtr3d mpteq2dva rneqd supeq1d 3eqtr3d
      eqtr4d ) AHDIZDHBJZKZDLZMWDNUAZUBZOPUCZHBDLEHNEIZUDUEZBDLZJZUBZOPUCAHUFUG
      UHUEZWDUIZWFWIQADHBWOWDGWDUJZUKZDWDDHBULZUMUQAHWEBDAWCHRZSWTBWORZWEBQZAWT
      UNGDHBWOWDWQUOZTUPAOWHWNPAWGWMAWGEHWJWGKZJZWMWGXEQZAWGHURZXFXGWGNUSKZURZN
      UTRXIVKMWDNVAVBHXHWGVCVDVEEHWGEWGVFVGVHVIAEHWLXDAWJHRZSZWKWEDLZWLXDXKWKWE
      BDXKWCWKRZSZWTXAXBXKWKHWCWKHVLXKWJVJVIVMZXNAWTXAAXJXMVNXOGTXCTUPAWPXJXLXD
      QWRDWDWJWSVOVPVQVRWBVSVTWA $.

    esumgect.1 $e |- ( ( ph /\ n e. NN ) -> sum* k e. ( 1 ... n ) A <_ B ) $.
    $( "Send ` n ` to ` +oo ` " in an inequality with an extended sum.
       (Contributed by Thierry Arnoux, 24-May-2020.) $)
    esumgect $p |- ( ph -> sum* k e. NN A <_ B ) $=
      ( vz cn cv cxr cle wbr wral wcel wa syl2anc ralrimiva wss cesum c1 cfz co
      cmpt crn clt csup esumsup wceq nfcv nfmpt1 nfrn nfel simpr simplll simplr
      nfv nfan eqbrtrd wrex eqid esumex elrnmpti biimpi adantl r19.29af wb cpnf
      cc0 cvv ovexd simpll fz1ssnn a1i sselda esumcl rnmptss syl iccssxr syl6ss
      cicc sseldi supxrleub mpbird ) AJBDUAEJUBEKZUCUDZBDUAZUEZUFZLUGUHZCMABCDE
      FGUIAWKCMNZIKZCMNZIWJOZAWNIWJAWMWJPZQZWMWHUJZWNEJAWPEAEUREWMWJEWMUKEWIEJW
      HULUMUNUSWQWFJPZQZWRQZWMWHCMWTWRUOXAAWSWHCMNAWPWSWRUPWQWSWRUQHRUTWPWREJVA
      ZAWPXBEJWHWMWIWIVBZWGBDVCVDVEVFVGSAWJLTCLPWLWOVHAWJVJVIWBUDZLAWHXDPZEJOWJ
      XDTAXEEJAWSQZWGVKPBXDPZDWGOXEXFUBWFUCVLXFXGDWGXFDKZWGPZQAXHJPXGAWSXIVMXFW
      GJXHWGJTXFWFVNVOVPGRSWGBDVKDWGUKVQRSEJWHXDWIXCVRVSVJVIVTZWAAXDLCXJFWCIWJC
      WDRWEUT $.
  $}

  ${
    $d k A $.  $d k V $.
    esumcvgre.0 $e |- F/ k ph $.
    esumcvgre.1 $e |- ( ph -> A e. V ) $.
    esumcvgre.2 $e |- ( ( ph /\ k e. A ) -> B e. ( 0 [,] +oo ) ) $.
    esumcvgre.3 $e |- ( ph -> sum* k e. A B e. RR ) $.
    $( All terms of a converging extended sum shall be finite.  (Contributed by
       Thierry Arnoux, 23-Sep-2019.) $)
    esumcvgre $p |- ( ( ph /\ k e. A ) -> B e. RR ) $=
      ( wcel wa cpnf wceq wn cr adantr cc0 wne wi syl wrex wral cesum nfan cicc
      cv nfre1 co adantlr simpr esumpinfval clt ltpnf gtned necom imbi2i neneqd
      wbr mpbi pm2.65da ralnex sylibr r19.21bi wo cxr iccssxr sseli xrge0neqmnf
      cmnf xrnemnf biimpi syl2anc orcomd orcanai mpdan ) ADUFBJZKZCLMZNZCOJZAVS
      DBAVRDBUAZNVSDBUBAWABCDUCZLMAWAKZBCDEAWADFVRDBUGUDABEJWAGPAVPCQLUEUHZJZWA
      HUIAWAUJUKWCWBLWCLWBRZSWCWBLRZSAWFWAAWBLIAWBOJWBLULURIWBUMTUNPWFWGWCLWBUO
      UPUSUQUTVRDBVAVBVCVQVRVTVQVTVRVQWEVTVRVDZHWECVEJZCVIRZWHWDVECQLVFVGCVHWIW
      JKWHCVJVKVLTVMVNVO $.
  $}

  ${
    $d i j k l t $.  $d A a b c j k l r s t u z $.  $d C a b c l s t u z $.
    $d B a b c i k l r s t u z $.  $d F a b c j l r s t u $.  $d W j k $.
    $d ph a b c j k l r s t u z $.
    esum2d.0 $e |- F/_ k F $.
    esum2d.1 $e |- ( z = <. j , k >. -> F = C ) $.
    esum2d.2 $e |- ( ph -> A e. V ) $.
    esum2d.3 $e |- ( ( ph /\ j e. A ) -> B e. W ) $.
    esum2d.4 $e |- ( ( ph /\ ( j e. A /\ k e. B ) ) -> C e. ( 0 [,] +oo ) ) $.
    ${
      esum2dlem.e $e |- ( ph -> A e. Fin ) $.
      $( Lemma for ~ esum2d (finite case).  (Contributed by Thierry Arnoux,
         17-May-2020.)  (Proof shortened by AV, 17-Sep-2021.) $)
      esum2dlem $p |- ( ph ->
        sum* j e. A sum* k e. B C = sum* z e. U_ j e. A ( { j } X. B ) F ) $=
        ( wceq wcel wa cvv va vb vl vt vi cv cesum csn cxp ciun cun esumeq1 nfv
        c0 iuneq1 esumeq1d eqeq12d cc0 esumnul 0iun ax-mp 3eqtr4ri a1i wss cdif
        cxad co simpr nfcsb1v nfesum2 csbeq1a esumeq12d adantl simprr cpnf cicc
        csb wral eldifad adantlr ralrimiva rspcsbela syl2anc simpll adantr wsbc
        sbcimdv sbcan sbcel1v sbcel2 anbi12i bitri vex sbcel1g 3imtr3g syl12anc
        ex wb imp nfcv esumcl esumsnf cop wrex cab wi nfeq2 nfim eqeq2d imbi12d
        opeq1 chvar cmpt ccnv wfun vsnid opelxpd c2nd cfv wreu xp2nd c1st xp1st
        fvex elsn sylib eqop mpbirand eqcom syl6bb ad2antlr eqtrd syldan sselda
        snex cin esumsplit xpexg sylancr syl syl2an2 f1mptrn csbmpt12 csbconstg
        reu6i sbcfung csbcnv csbopg csbvarg opeq12d cnveqd syl5eqr funeqd bitrd
        mpteq2dv esumc nfab1 rexbidv rexsn abid 3bitr4ri eqri syl6eq oveq12d wn
        elxp2 eldifbd disjsn sylibr simprl anassrs iunxun nfxp xpeq12d iunxsngf
        snssd sneq uneq2i eqtri iunexg wne nelne2 disjsn2 xpdisj1 3syl iuneq2dv
        iunin1f iun0 3eqtr3g iunss1 nfiu1 nfcri nfan nfel simp-5l simplr elsnxp
        simp-4r eqeltrd biimpa adantll r19.29af2 eliun r19.29af ssiun2sf syl5eq
        3eqtr4d findcard2d ) AUAUFZDEGUGZFUGZFUXIFUFZUHZDUIZUJZHBUGZQUNUXJFUGZF
        UNUXNUJZHBUGZQZUBUFZUXJFUGZFUYAUXNUJZHBUGZQZUYAUCUFZUHZUKZUXJFUGZFUYHUX
        NUJZHBUGZQZCUXJFUGZFCUXNUJZHBUGZQUAUBUCCUXIUNQZUXKUXQUXPUXSUXIUNUXJFULU
        YPUXOUXRHBUYPBUMFUXIUNUXNUOUPUQUXIUYAQZUXKUYBUXPUYDUXIUYAUXJFULUYQUXOUY
        CHBUYQBUMFUXIUYAUXNUOUPUQUXIUYHQZUXKUYIUXPUYKUXIUYHUXJFULUYRUXOUYJHBUYR
        BUMFUXIUYHUXNUOUPUQUXICQZUXKUYMUXPUYOUXICUXJFULUYSUXOUYNHBUYSBUMFUXICUX
        NUOUPUQUXTAUNHBUGZURUXSUXQBHUSUXRUNQUXSUYTQFUXNUTUXRUNHBULVAFUXJUSVBVCA
        UYACVDZUYFCUYAVEZRZSZSZUYEUYLVUEUYESZUYBUYGUXJFUGZVFVGZUYDUYGFUYFDVQZUI
        ZHBUGZVFVGZUYIUYKVUFUYBUYDVUGVUKVFVUEUYEVHVUEVUGVUKQUYEVUEVUGVUIFUYFEVQ
        ZGUGZVUKVUEUXJVUNFUYFVUBFVUIVUMGFUYFDVIZFUYFEVIZVJUXLUYFQZUXJVUNQVUEVUQ
        DVUIEVUMGFUYFDVKZFUYFEVKZVLVMAVUAVUCVNZVUEVUIJRZVUMURVOVPVGZRZGVUIVRVUN
        VVBRVUEUYFCRZDJRZFCVRVVAVUEUYFCUYAVUTVSZVUEVVEFCAUXLCRZVVEVUDNVTZWAFUYF
        CDJWBWCZVUEVVCGVUIVUEGUFZVUIRZSZAVVDVVKVVCAVUDVVKWDVUEVVDVVKVVFWEVUEVVK
        VHZAVVDVVKSZVVCAVVGVVJDRZSZFUYFWFZEVVBRZFUYFWFZVVNVVCAVVPVVRFUYFAVVPVVR
        OWQWGVVQVVGFUYFWFZVVOFUYFWFZSVVNVVGVVOFUYFWHVVTVVDVWAVVKFUYFCWIZFUYFVVJ
        DWJWKWLUYFTRZVVSVVCWRUCWMZFUYFEVVBTWNVAWOWSWPZWAVUIVUMGJGVUIWTZXAWCXBVU
        EVUNUDUFZUYFVVJXCZQZGVUIXDZUDXEZHBUGZVUKVUEBUDVUIVUMVWHHGJVUJKVUEGUMVWF
        BUFZUXLVVJXCZQZHEQZXFVWMVWHQZHVUMQZXFFUCVWQVWRFVWQFUMFHVUMVUPXGXHVUQVWO
        VWQVWPVWRVUQVWNVWHVWMUXLUYFVVJXKXIVUQEVUMHVUSXIXJLXLVVIAVUDVVDGVUIVWHXM
        ZXNZXOZVVFAVVDVXAAVVTGDVWNXMZXNZXOZFUYFWFZVVDVXAAVVGVXDFUYFAVVGVXDAVVGS
        ZGBDVWNUXNVXFVVOSZUXLVVJUXMDUXLUXMRVXGFXPVCVXFVVOVHXQVWMUXNRZVWMXRXSZDR
        VXFVWOVVJVXIQZWRZGDVRVWOGDXTVWMUXMDYAVXFVXHSVXKGDVXHVXKVXFVVOVXHVWOVXIV
        VJQZVXJVXHVWOVWMYBXSZUXLQZVXLVXHVXMUXMRVXNVWMUXMDYCVXMUXLVWMYBYDYEYFVWM
        UXLVVJUXMDYGYHVXIVVJYIYJYKWAVWOGDVXIUUEUUAUUBWQWGVWBVWCVXEVXAWRVWDVWCVX
        EFUYFVXCVQZXOVXAFUYFVXCTUUFVWCVXOVWTVWCVXOFUYFVXBVQZXNVWTFUYFVXBUUGVWCV
        XPVWSVWCVXPGVUIFUYFVWNVQZXMVWSFGUYFTDVWNUUCVWCGVUIVXQVWHVWCVXQFUYFUXLVQ
        ZFUYFVVJVQZXCVWHFUYFUXLVVJTUUHVWCVXRUYFVXSVVJFUYFTUUIFUYFVVJTUUDUUJYLUU
        OYLUUKUULUUMUUNVAWOWSYMVWEVVLUYFVVJUYGVUIUYFUYGRVVLUCXPVCVVMXQUUPVWKVUJ
        QVWLVUKQUDVWKVUJVWJUDUUQUDVUJWTVWGUEUFZVVJXCZQZGVUIXDZUEUYGXDVWJVWGVUJR
        VWGVWKRVYCVWJUEUYFVWDVXTUYFQZVYBVWIGVUIVYDVYAVWHVWGVXTUYFVVJXKXIUURUUSU
        EGVWGUYGVUIUVFVWJUDUUTUVAUVBVWKVUJHBULVAUVCYLWEUVDVUEUYIVUHQUYEVUEUYAUY
        GUXJFVUEFUMFUYAWTFUYGWTZUYATRZVUEUBWMZVCUYGTRZVUEUYFYOZVCVUEUYFUYARUVEZ
        UYAUYGYPUNQVUEUYFCUYAVUTUVGZUYAUYFUVHUVIVUEUXLUYARZSZAVVGUXJVVBRZAVUDVY
        LWDVUEUYACUXLAVUAVUCUVJZYNZVXFVVEVVRGDVRVYNNVXFVVRGDAVVGVVOVVROUVKWADEG
        JGDWTXAWCZWCVUEUXLUYGRZSAVVGVYNAVUDVYRWDVUEUYGCUXLVUEUYFCVVFUVPYNVYQWCY
        QWEVUEUYKVULQUYEVUEUYKUYCVUJUKZHBUGZVULUYJVYSQUYKVYTQUYJUYCFUYGUXNUJZUK
        VYSFUYAUYGUXNUVLWUAVUJUYCVWCWUAVUJQVWDFUYFUXNVUJTFUYGVUIVYEVUOUVMZVUQUX
        MUYGDVUIUXLUYFUVQVURUVNZUVOVAUVRUVSUYJVYSHBULVAVUEUYCVUJHBVUEBUMBUYCWTB
        VUJWTVUEVYFUXNTRZFUYAVRUYCTRVYGVUEWUDFUYAVYMUXMTRVVEWUDUXLYOVUEVYLVVGVV
        EVYPVVHYMUXMDTJYRYSWAFUYAUXNTTUVTYSVUEVYHVVAVUJTRVYIVVIUYGVUITJYRYSVUEF
        UYAUXNVUJYPZUJFUYAUNUJUYCVUJYPUNVUEFUYAWUEUNVYMUXLUYFUWAZUXMUYGYPUNQWUE
        UNQVYMVYLVYJWUFVUEVYLVHVUEVYJVYLVYKWEUXLUYFUYAUWBWCUXLUYFUWCUXMUYGDVUIU
        WDUWEUWFFUYAUXNVUJWUBUWGFUYAUWHUWIVUEVWMUYCRZSAVWMUYNRZHVVBRZAVUDWUGWDV
        UEUYCUYNVWMVUEVUAUYCUYNVDVYOFUYACUXNUWJYTYNAWUHSZVXHWUIFCAWUHFAFUMFBUYN
        FCUXNUWKUWLUWMWUJVVGSVXHSZVWOWUIGDWUKGUMGHVVBKGVVBWTUWNWUKVVOSZVWOSZHEV
        VBVWOVWPWULLVMWUMAVVGVVOVVRAWUHVVGVXHVVOVWOUWOWUJVVGVXHVVOVWOUWRWUKVVOV
        WOUWPOWPUWSVVGVXHVWOGDXDZWUJVVGVXHWUNGDCUXLVWMUWQUWTUXAUXBWUJWUHVXHFCXD
        AWUHVHFVWMCUXNUXCYFUXDZWCVUEVWMVUJRZSAWUHWUIAVUDWUPWDVUEVUJUYNVWMVUEVVD
        VUJUYNVDVVFFCUXNUYFVUJFCWTFUYFWTWUBWUCUXEYTYNWUOWCYQUXFWEUXGWQPUXH $.
    $}

    $( Write a double extended sum as a sum over a two-dimensional region.
       Note that ` B ( j ) ` is a function of ` j ` .  This can be seen as
       "slicing" the relation ` A ` .  (Contributed by Thierry Arnoux,
       17-May-2020.) $)
    esum2d $p |- ( ph ->
      sum* j e. A sum* k e. B C = sum* z e. U_ j e. A ( { j } X. B ) F ) $=
      ( vc cxr clt wa wcel va vs vt vr vu cpw cfn cin cxrs cc0 cpnf co cress cv
      cicc cesum cmpt cgsu crn csup csn cxp ciun wor a1i wbr wral wrex wceq nfv
      wn wi nfcv nfmpt1 nfrn nfel nfan cle wss xrge0base xrge0cmn elin2d simpll
      simpr elin1d adantr sylib sseldd adantl simp-5l simplr syl12anc r19.29af2
      elpw eqeltrd biimpa r19.29af syl2anc ralrimiva gsummptcl sseldi ad3antrrr
      syl simpllr cvv esumcl esumgsum adantlr esummono eqbrtrrd eqbrtrd xrlenlt
      eqid syl21anc ovex elrnmpti breq2d rspcedvd 3anassrs ex jca breq1d notbid
      nfbr ralbidv elpwi sselda adantrr eqidd esumval biimpi sstrd iunss sylibr
      cdm mpbir oveq2d ralrimi adantllr cima iccssxr ccmn vex nfiu1 cop simp-4r
      xrltso elsnxp adantll eliun rnmptss xpexg sylancr iunexg elrnmpt1 nfesum1
      snex nfrex ad2antrr 3ad2antr3 esumlub imbi1d anbi12d rspcedv supcl simprr
      mpd esum2dlem anassrs eqtr3d iunss1 wb mpbid mtbid mpbird nfel1 nfsup w3a
      simpr1l simpr1r breqtrd dmss dmiun syl6sseq dmxpss snssi rgen syl6ss dmex
      3syl dmfi elind mpteq1 elrnmpt1s nfov simp-4l nfpw nfin wrel rgenw df-rel
      xpss gsummpt2d imass1 iunsnima sseqtrd imaexg ax-mp mpan esumlef mpteq2da
      imafi2 eqtrd 3brtr3d xrltletrd ad2antlr suplub imp cbvrexv r19.29a eqsupd
      id breq2 3eqtr4d ) AUACUFZUGUHZUIUJUKUOULZUMULZFUAUNZDEGUPZUQZURULZUQZUSZ
[encoded data, 5680 characters]
      YJUYLFIVWTFCVMMWVGWULUYLYIYJWVIUYD $.
  $}

  ${
    $d A f j k l z $.  $d B f k l z $.  $d C f j z $.  $d W j k $.
    $d f j k l z ph $.
    esumiun.0 $e |- ( ph -> A e. V ) $.
    esumiun.1 $e |- ( ( ph /\ j e. A ) -> B e. W ) $.
    esumiun.2 $e |- ( ( ( ph /\ j e. A ) /\ k e. B ) -> C e. ( 0 [,] +oo ) ) $.
    $( Sum over a non necessarily disjoint indexed union.  The inegality is
       strict in the case where the sets B(x) overlap.  (Contributed by Thierry
       Arnoux, 21-Sep-2019.) $)
    esumiun $p |- ( ph ->
        sum* k e. U_ j e. A B C <_ sum* j e. A sum* k e. B C ) $=
      ( vf vz cfv wceq wa cvv nfcv wcel syl2anc ciun crn wf1o c2nd wral csn cxp
      vl cv wss cesum cle wbr wf1 wex aciunf1 f1f1orn anim1i f1f frn syl adantr
      wf jca eximi csb ccnv nfv nfcsb1v ralrimiva iunexg simprl f1ocnv adantrlr
      csbeq1a nfiu1 nfrn nff1o nfral nfan fveq2d simplr simp-4r simpld ad2antrr
      nfss simpr simprd fveq2 eqeq12d rspcva eqtr3d f1ocnvfv1 3eqtr2rd wfn wrex
      id f1ofn simpllr fvelrnb biimpa r19.29a simprr sselda eliun r19.29af cpnf
      sylib cc0 cicc co nfel adantllr biimpi adantl adantlr esumf1o eqcomd snex
      a1i xpexg c1st nfcsb simplll rspcsbela xp1st elsni xp2nd reximi r19.29af2
      sylbi esummono eqbrtrrd cop vex op2ndd anasss esum2d breqtrrd exlimddv )
      AEBCUAZLUIZUBZUUBUCZUHUIZUUBNZUDNZUUEOZUHUUAUEZPZUUCEBEUIZUFZCUGZUAZUJZPZ
      UUADFUKZBCDFUKEUKZULUMLAUUAUUNUUBUNZUUIPZLUOUUPLUOABCLEUHGHIJUPUUTUUPLUUT
      UUJUUOUUSUUDUUIUUAUUNUUBUQURUUSUUOUUIUUSUUAUUNUUBVCUUOUUAUUNUUBUSUUAUUNUU
      BUTVAVBVDVEVAAUUPPZUUQUUNFMUIZUDNZDVFZMUKZUURULUVAUUCUVDMUKZUUQUVEULUVAUU
      QUVFUVAUUADUUCUVDFMUUBVGZUVCQUVAMVHZMDRFUVCDVIZMUUARMUUCRMUVGRFUVCDVOZAUU
      AQSZUUPABGSZCHSZEBUEUVKIAUVMEBJVJEBCGHVKTVBAUUDUUOUUCUUAUVGUCZUUIAUUDUUOP
      PUUDUVNAUUDUUOVLUUAUUCUUBVMVAVNUVAUVBUUCSZPZUVBUUMSZUVBUVGNZUVCOZEBUVAUVO
      EAUUPEAEVHZUUJUUOEUUDUUIEEUUAUUCUUBEUUBRZEBCVPZEUUBUWAVQVRUUHEUHUUAUWBUUH
      EVHVSVTEUUCUUNEUUCREBUUMVPZWFVTVTUVOEVHVTUVPUUKBSZPUVQPZFUIZUUBNZUVBOZUVS
      FUUAUWEUWFUUASZPZUWHPZUVCUWFUWGUVGNZUVRUWKUWGUDNZUVCUWFUWKUWGUVBUDUWJUWHW
      GZWAUWKUWIUUIUWMUWFOZUWEUWIUWHWBZUWEUUIUWIUWHUWEUUDUUIUWEUUJUUOAUUPUVOUWD
      UVQWCWDZWHWEUUHUWOUHUWFUUAUUEUWFOZUUGUWMUUEUWFUWRUUFUWGUDUUEUWFUUBWIWAUWR
      WQWJWKTWLUWKUUDUWIUWLUWFOUWEUUDUWIUWHUWEUUDUUIUWQWDZWEUWPUUAUUCUWFUUBWMTU
      WKUWGUVBUVGUWNWAWNUWEUUBUUAWOZUVOUWHFUUAWPZUWEUUDUWTUWSUUAUUCUUBWRVAUVAUV
      OUWDUVQWSUWTUVOUXAFUUAUVBUUBWTXATXBUVPUVBUUNSZUVQEBWPZUVAUUCUUNUVBAUUJUUO
      XCXDEUVBBUUMXEZXHXFAUWIDXIXGXJXKZSZUUPAUWIPUWFCSZUXFEBAUWIEUVTEUWFUUAEUWF
      RUWBXLVTAUWDUXGUXFUWIKXMUWIUXGEBWPZAUWIUXHEUWFBCXEXNXOXFXPXQXRUVAUUCUVDUU
      NMQUVHAUUNQSZUUPAUVLUUMQSZEBUEUXIIAUXJEBAUWDPZUULQSZUVMUXJUXLUXKUUKXSXTJU
      ULCQHYATVJEBUUMGQVKTVBAUXBUVDUXESZUUPAUXBPZUVBYBNZUUKOZUVCCSZPZUXMEBAUXBE
      UVTEUVBUUNEUVBRUWCXLVTEUVDUXEEFUVCDEUVCREDRYCEUXERXLUXNUWDPZUXRPZUXQUXFFC
      UEZUXMUXSUXPUXQXCUXTAUWDUYAAUXBUWDUXRYDUXNUWDUXRWBUXKUXFFCKVJTFUVCCDUXEYE
      TUXBUXREBWPZAUXBUXCUYBUXDUVQUXREBUVQUXPUXQUVQUXOUULSUXPUVBUULCYFUXOUUKYGV
      AUVBUULCYHVDYIYKXOYJXPAUUDUUOUUOUUIAUUDUUOXCVNYLYMAUURUVEOUUPAMBCDEFUVDGH
      UVIUVBUUKUWFYNOZDUVDUYCUWFUVCODUVDOUYCUVCUWFUUKUWFUVBEYOFYOYPXRUVJVAXRIJA
      UWDUXGUXFKYQYRVBYSYT $.
  $}

$( End $[ set-mbox-ta-esum.mm $] $)


$( Begin $[ set-mbox-ta-ofc.mm $] $)
$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Mixed Function/Constant operation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c oFC $.  $( A small o with F/C subscript $)

  $( Extend class notation to include mapping of an operation to an operation
     for a function and a constant. $)
  cofc $a class oFC R $.

  ${
    $d f c x R $.
    $( Define the function/constant operation map.  The definition is designed
       so that if ` R ` is a binary operation, then ` oFC R ` is the analogous
       operation on functions and constants.  (Contributed by Thierry Arnoux,
       21-Jan-2017.) $)
    df-ofc $a |- oFC R = ( f e. _V , c e. _V |->
      ( x e. dom f |-> ( ( f ` x ) R c ) ) ) $.
  $}

  ${
    $d c f x R $.  $d c f x S $.
    $( Equality theorem for function/constant operation.  (Contributed by
       Thierry Arnoux, 30-Jan-2017.) $)
    ofceq $p |- ( R = S -> oFC R = oFC S ) $=
      ( vf vc vx wceq cvv cv cdm cfv co cmpt cmpt2 cofc oveq mpteq2dv mpt2eq3dv
      df-ofc 3eqtr4g ) ABFZCDGGECHZIZEHUAJZDHZAKZLZMCDGGEUBUCUDBKZLZMANBNTCDGGU
      FUHTEUBUEUGUCUDABOPQEACDREBCDRS $.
  $}

  ${
    $d c f x C $.  $d c f x F $.  $d c f x R $.  $d c f x ph $.
    ofcfval.1 $e |- ( ph -> F Fn A ) $.
    ofcfval.2 $e |- ( ph -> A e. V ) $.
    ofcfval.3 $e |- ( ph -> C e. W ) $.
    ${
      ofcfval.6 $e |- ( ( ph /\ x e. A ) -> ( F ` x ) = B ) $.
      $( Value of an operation applied to a function and a constant.
         (Contributed by Thierry Arnoux, 30-Jan-2017.) $)
      ofcfval $p |- ( ph -> ( F oFC R C ) = ( x e. A |-> ( B R C ) ) ) $=
        ( vf vc co cvv wceq wa wcel cofc cdm cv cfv cmpt cmpt2 df-ofc a1i dmeqd
        simprl fveq1d simprr oveq12d mpteq12dv wfn fnex syl2anc elex syl mptexg
        fndm eqeltrd ovmpt2d eleq2d pm5.32i sylbi oveq1d mpteq12dva eqtrd ) AGE
        FUAZPBGUBZBUCZGUDZEFPZUEZBCDEFPZUEANOGEQQBNUCZUBZVLVQUDZOUCZFPZUEZVOVJQ
        VJNOQQWBUFRABFNOUGUHAVQGRZVTERZSSZBVRWAVKVNWEVQGAWCWDUJZUIWEVSVMVTEFWEV
        LVQGWFUKAWCWDULUMUNAGCUOZCHTGQTJKCHGUPUQAEITEQTLEIURUSAVKHTVOQTAVKCHAWG
        VKCRJCGVAUSZKVBBVKVNHUTUSVCABVKVNCVPWHAVLVKTZSZVMDEFWJAVLCTZSVMDRAWIWKA
        VKCVLWHVDVEMVFVGVHVI $.
    $}

    $d x A $.
    ${
      $d x X $.
      ofcval.6 $e |- ( ( ph /\ X e. A ) -> ( F ` X ) = B ) $.
      $( Evaluate a function/constant operation at a point.  (Contributed by
         Thierry Arnoux, 31-Jan-2017.) $)
      ofcval $p |- ( ( ph /\ X e. A ) -> ( ( F oFC R C ) ` X ) = ( B R C ) ) $=
        ( vx wcel wa co cfv wceq simpr cofc cv cmpt eqidd ofcfval adantr fveq2d
        cvv oveq1d ovexd fvmptd eqtrd ) AIBOZPZIFDEUAQZRIFRZDEQZCDEQUNNINUBZFRZ
        DEQZUQBUOUHAUONBUTUCSUMANBUSDEFGHJKLAURBOPUSUDUEUFUNURISZPZUSUPDEVBURIF
        UNVATUGUIAUMTUNUPDEUJUKUNUPCDEMUIUL $.
    $}

    $( The function operation produces a function.  (Contributed by Thierry
       Arnoux, 31-Jan-2017.) $)
    ofcfn $p |- ( ph -> ( F oFC R C ) Fn A ) $=
      ( vx cofc co wfn cv cfv cmpt ovex eqid fnmpti wcel wa eqidd fneq1d mpbiri
      ofcfval ) AECDLMZBNKBKOZEPZCDMZQZBNKBUJUKUICDRUKSTABUGUKAKBUICDEFGHIJAUHB
      UAUBUIUCUFUDUE $.
  $}

  ${
    $d x y C $.  $d x y F $.  $d x y P $.  $d x y R $.  $d x y ph $.  $d y B $.
    ofcfeqd2.1 $e |- ( ( ph /\ x e. A ) -> ( F ` x ) e. B ) $.
    ofcfeqd2.2 $e |- ( ( ph /\ y e. B ) -> ( y R C ) = ( y P C ) ) $.
    ofcfeqd2.3 $e |- ( ph -> F Fn A ) $.
    ofcfeqd2.4 $e |- ( ph -> A e. V ) $.
    ofcfeqd2.5 $e |- ( ph -> C e. W ) $.
    $( Equality theorem for function/constant operation value.  (Contributed by
       Thierry Arnoux, 31-Jan-2017.) $)
    ofcfeqd2 $p |- ( ph -> ( F oFC R C ) = ( F oFC P C ) ) $=
      ( cv co cmpt wceq cofc wcel wa wral ralrimiva adantr oveq1 eqeq12d rspcva
      cfv syl2anc mpteq2dva eqidd ofcfval 3eqtr4d ) ABDBQZIUJZFHRZSBDUQFGRZSIFH
      UARIFGUARABDURUSAUPDUBZUCZUQEUBCQZFHRZVBFGRZTZCEUDZURUSTZLAVFUTAVECEMUEUF
      VEVGCUQEVBUQTVCURVDUSVBUQFHUGVBUQFGUGUHUIUKULABDUQFHIJKNOPVAUQUMZUNABDUQF
      GIJKNOPVHUNUO $.
  $}

  ${
    $d c f x C $.  $d c f x F $.  $d c f x R $.
    $( General value of ` ( F oFC R C ) ` with no assumptions on functionality
       of ` F ` .  (Contributed by Thierry Arnoux, 31-Jan-2017.) $)
    ofcfval3 $p |- ( ( F e. V /\ C e. W ) -> ( F oFC R C ) =
        ( x e. dom F |-> ( ( F ` x ) R C ) ) ) $=
      ( vf vc wcel wa cvv cdm cv cfv co cmpt cofc wceq elex adantr adantl dmexg
      mptexg simpl dmeqd fveq1d simpr oveq12d mpteq12dv df-ofc ovmpt2ga syl3anc
      syl ) DEIZBFIZJDKIZBKIZADLZAMZDNZBCOZPZKIZDBCQZOVBRUNUPUODESTUOUQUNBFSUAU
      NVCUOUNURKIVCDEUBAURVAKUCUMTGHDBKKAGMZLZUSVENZHMZCOZPVBVDKVEDRZVHBRZJZAVF
      VIURVAVLVEDVJVKUDZUEVLVGUTVHBCVLUSVEDVMUFVJVKUGUHUIACGHUJUKUL $.
  $}

  ${
    $d z A $.  $d y z C $.  $d x y z F $.  $d x y z R $.  $d x y S $.
    $d x y T $.  $d x y z U $.  $d x y z ph $.
    ofcf.1 $e |- ( ( ph /\ ( x e. S /\ y e. T ) ) -> ( x R y ) e. U ) $.
    ofcf.2 $e |- ( ph -> F : A --> S ) $.
    ofcf.4 $e |- ( ph -> A e. V ) $.
    ofcf.5 $e |- ( ph -> C e. T ) $.
    $( The function/constant operation produces a function.  (Contributed by
       Thierry Arnoux, 30-Jan-2017.) $)
    ofcf $p |- ( ph -> ( F oFC R C ) : A --> U ) $=
      ( vz cv co wcel wral cfv wf wfn ffn syl wa eqidd ofcfval ffvelrnda adantr
      cofc ralrimivva ovrspc2v syl21anc fmpt3d ) APDPQZJUAZEFRZIJEFUKRAPDUQEFJK
      HADGJUBJDUCMDGJUDUENOAUPDSZUFZUQUGUHUTUQGSEHSZBQCQFRISZCHTBGTZURISADGUPJM
      UIAVAUSOUJAVCUSAVBBCGHLULUJBCGHIFUQEUMUNUO $.
  $}

  ${
    $d x A $.  $d x C $.  $d x F $.  $d x R $.  $d x ph $.
    ofcfval2.1 $e |- ( ph -> A e. V ) $.
    ofcfval2.2 $e |- ( ph -> C e. W ) $.
    ofcfval2.3 $e |- ( ( ph /\ x e. A ) -> B e. X ) $.
    ofcfval2.4 $e |- ( ph -> F = ( x e. A |-> B ) ) $.
    $( The function operation expressed as a mapping.  (Contributed by Thierry
       Arnoux, 31-Jan-2017.) $)
    ofcfval2 $p |- ( ph -> ( F oFC R C ) = ( x e. A |-> ( B R C ) ) ) $=
      ( wfn cmpt wcel wral ralrimiva eqid fnmpt fneq1d mpbird fvmpt2d ofcfval
      syl ) ABCDEFGHIAGCOBCDPZCOZADJQZBCRUHAUIBCMSBCDUGJUGTUAUFACGUGNUBUCKLABCD
      GJNMUDUE $.
  $}

  ${
    $d y A $.  $d x y B $.  $d x y C $.  $d x y F $.  $d x y R $.  $d y ph $.
    ofcfval4.1 $e |- ( ph -> F : A --> B ) $.
    ofcfval4.2 $e |- ( ph -> A e. V ) $.
    ofcfval4.3 $e |- ( ph -> C e. W ) $.
    $( The function/constant operation expressed as an operation composition.
       (Contributed by Thierry Arnoux, 31-Jan-2017.) $)
    ofcfval4 $p |- ( ph ->
                         ( F oFC R C ) = ( ( x e. B |-> ( x R C ) ) o. F ) ) $=
      ( vy cv co cmpt wceq cvv wcel syl2anc cdm cfv cofc wf fdm syl mpteq1d fex
      ccom ofcfval3 ffvelrnda feqmptd eqidd oveq1 fmptco 3eqtr4d ) AMGUAZMNZGUB
      ZEFOZPZMCUTPGEFUCOZBDBNZEFOZPZGUIAMUQCUTACDGUDZUQCQJCDGUEUFUGAGRSZEISVBVA
      QAVFCHSVGJKCDHGUHTLMEFGRIUJTAMBCDUSVDUTGVEACDURGJUKAMCDGJULAVEUMVCUSEFUNU
      OUP $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x R $.  $d x ph $.
    ofcc.1 $e |- ( ph -> A e. V ) $.
    ofcc.2 $e |- ( ph -> B e. W ) $.
    ofcc.3 $e |- ( ph -> C e. X ) $.
    $( Left operation by a constant on a mixed operation with a constant.
       (Contributed by Thierry Arnoux, 31-Jan-2017.) $)
    ofcc $p |- ( ph -> ( ( A X. { B } ) oFC R C ) = ( A X. { ( B R C ) } ) ) $=
      ( vx csn cxp cofc co cmpt wcel wfn fnconstg syl cv wceq fvconst2g ofcfval
      cfv sylan fconstmpt syl6eqr ) ABCMNZDEOPLBCDEPZQBUKMNALBCDEUJFHACGRZUJBSJ
      BCGTUAIKAULLUBZBRUMUJUFCUCJBCUMGUDUGUELBUKUHUI $.
  $}

  ${
    $d x A $.  $d x C $.  $d x F $.  $d x R $.  $d x ph $.
    ofcof.1 $e |- ( ph -> F : A --> B ) $.
    ofcof.2 $e |- ( ph -> A e. V ) $.
    ofcof.3 $e |- ( ph -> C e. W ) $.
    $( Relate function operation with operation with a constant.  (Contributed
       by Thierry Arnoux, 3-Oct-2018.) $)
    ofcof $p |- ( ph -> ( F oFC R C ) = ( F oF R ( A X. { C } ) ) ) $=
      ( vx cofc co cv cfv cmpt wfn syl wcel csn cxp cof wf ffn wa eqidd ofcfval
      fnconstg inidm wceq fvconst2g sylan offval eqtr4d ) AFDEMNLBLOZFPZDENQFBD
      UAUBZEUCNALBUQDEFGHABCFUDFBRIBCFUESZJKAUPBTZUFUQUGZUHALBBUQDEBFURGGUSADHT
      ZURBRKBDHUISJJBUJVAAVBUTUPURPDUKKBDUPHULUMUNUO $.
  $}

$( End $[ set-mbox-ta-ofc.mm $] $)


$( Begin $[ set-mbox-ta-meas.mm $] $)
$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Abstract measure
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Sigma-Algebra
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c sigAlgebra $.

  $( Extend class notation to include the function giving the sigma-algebras on
     a given base set. $)
  csiga $a class sigAlgebra $.

  ${
    $d o s x $.
    $( Define a sigma-algebra, i.e. a set closed under complement and countable
       union.  Literature usually uses capital greek sigma and omega letters
       for the algebra set, and the base set respectively.  We are using ` S `
       and ` O ` as a parallel.  (Contributed by Thierry Arnoux,
       3-Sep-2016.) $)
    df-siga $a |- sigAlgebra = ( o e. _V |-> { s | ( s C_ ~P o /\
      ( o e. s /\ A. x e. s ( o \ x ) e. s
      /\ A. x e. ~P s ( x ~<_ _om -> U. x e. s ) ) ) } ) $.
  $}

  ${
    $d o s $.
    $( Lemma for ~ issiga and ~ isrnsiga .  The class of sigma-algebras with
       base set ` o ` is a set.  Note: a more generic version with
       ` ( O e. _V -> ... ) ` could be useful for ~ sigaval .  (Contributed by
       Thierry Arnoux, 24-Oct-2016.) $)
    sigaex $p |- { s | ( s C_ ~P o /\ ( o e. s /\ A. x e. s ( o \ x ) e. s
      /\ A. x e. ~P s ( x ~<_ _om -> U. x e. s ) ) ) } e. _V $=
      ( cv wcel cdif wral com cdom wbr cuni wi cpw w3a crab wss cab cvv pwexg
      wa df-rab selpw anbi1i abbii eqtri vex mp2b rabex eqeltrri ) BDZCDZEUJADZ
      FUKEAUKGULHIJULKUKELAUKMGNZCUJMZMZOZUKUNPZUMTZCQZRUPUKUOEZUMTZCQUSUMCUOUA
      VAURCUTUQUMCUNUBUCUDUEUMCUOUJREUNREUOREBUFUJRSUNRSUGUHUI $.
  $}

  ${
    $d s o x O $.
    $( The set of sigma-algebra with a given base set.  (Contributed by Thierry
       Arnoux, 23-Sep-2016.) $)
    sigaval $p |- ( O e. _V -> ( sigAlgebra ` O ) = { s | ( s C_ ~P O /\
      ( O e. s /\ A. x e. s ( O \ x ) e. s
      /\ A. x e. ~P s ( x ~<_ _om -> U. x e. s ) ) ) } ) $=
      ( vo cvv wcel cv cpw wss cdif wral com cdom wbr w3a cab csiga wceq pwexg
      wa cuni wi cfv crab df-rab selpw anbi1i abbii eqtri rabexg 3syl syl5eqelr
      sseq2d eleq1 difeq1 eleq1d ralbidv 3anbi12d anbi12d abbidv df-siga fvmptg
      pweq mpdan ) BEFZCGZBHZIZBVFFZBAGZJZVFFZAVFKZVJLMNVJUAVFFUBAVFHKZOZTZCPZE
      FBQUCVQRVEVQVOCVGHZUDZEVSVFVRFZVOTZCPVQVOCVRUEWAVPCVTVHVOCVGUFUGUHUIVEVGE
      FVREFVSEFBESVGESVOCVREUJUKULDBVFDGZHZIZWBVFFZWBVJJZVFFZAVFKZVNOZTZCPVQEEQ
      WBBRZWJVPCWKWDVHWIVOWKWCVGVFWBBVCUMWKWEVIWHVMVNWBBVFUNWKWGVLAVFWKWFVKVFWB
      BVJUOUPUQURUSUTADCVAVBVD $.
  $}

  ${
    $d o s x O $.  $d o s x S $.
    $( An alternative definition of the sigma-algebra, for a given base set.
       (Contributed by Thierry Arnoux, 19-Sep-2016.) $)
    issiga $p |- ( S e. _V -> ( S e. ( sigAlgebra ` O ) <->
      ( S C_ ~P O /\ ( O e. S /\ A. x e. S ( O \ x ) e. S
      /\ A. x e. ~P S ( x ~<_ _om -> U. x e. S ) ) ) ) ) $=
      ( vs vo cvv wcel wa csiga cpw wss cv cdif wral wi w3a elex a1i wb wceq
      cfv com cdom wbr cuni elfvex jca simpr1 anc2ri df-siga sigaex pweq sseq2d
      syl sseq1 eleq12 simpr difeq1 adantr eleq1d eleq2 adantl raleqbidv imbi2d
      sylan9bb bitrd 3anbi123d anbi12d abfmpel pm5.21ndd ) BFGZCFGZVKHZBCIUAZGZ
      BCJZKZCBGZCALZMZBGZABNZVSUBUCUDZVSUEZBGZOZABJZNZPZHZVOVMOVKVOVLVKBCIUFBVN
      QUGRVKWJVLWJVLOVKWJVRVLVQVRWBWHUHCBQUNRUIVMVOWJSOVKDLZELZJZKZWLWKGZWLVSMZ
      WKGZAWKNZWCWDWKGZOZAWKJZNZPZHWJEDCBIFFAEDUJAEDUKWLCTZWKBTZHZWNVQXCWIXDWNW
      KVPKXEVQXDWMVPWKWLCULUMWKBVPUOVEXFWOVRWRWBXBWHWLCWKBUPXFWQWAAWKBXDXEUQXFW
      QVTWKGZWAXFWPVTWKXDWPVTTXEWLCVSURUSUTXEXGWASXDWKBVTVAVBVFVCXEXBWHSXDXEWTW
      FAXAWGWKBULXEWSWEWCWKBWDVAVDVCVBVGVHVIRVJ $.
  $}

  ${
    $d o s x S $.
    $( The property of being a sigma-algebra on an indefinite base set.
       (Contributed by Thierry Arnoux, 3-Sep-2016.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    isrnsigaOLD $p |- ( S e. U. ran sigAlgebra <-> ( S e. _V /\
      E. o ( S C_ ~P o /\ ( o e. S /\ A. x e. S ( o \ x ) e. S
      /\ A. x e. ~P S ( x ~<_ _om -> U. x e. S ) ) ) ) ) $=
      ( vs csiga crn cuni wcel cvv cv cpw wss cdif wral com wi w3a wa cab eleq2
      cdom wbr wrex wex df-siga crab df-rab vex elpwg ax-mp anbi1i abbii eqtr2i
      grothpwex pwex rabex eqeltri wceq sseq1 raleqbi1dv pweq imbi12d raleqbidv
      wb biidd 3anbi123d anbi12d abfmpunirn rexv anbi2i bitri ) BEFGHBIHZBCJZKZ
      LZVMBHZVMAJZMZBHZABNZVQOUAUBZVQGZBHZPZABKZNZQZRZCIUCZRVLWHCUDZRDJZVNLZVMW
      KHZVRWKHZAWKNZWAWBWKHZPZAWKKZNZQZRZWHCDBEIACDUEXADSZWTDVNKZUFZIXDWKXCHZWT
      RZDSXBWTDXCUGXFXADXEWLWTWKIHXEWLVDDUHWKVNIUIUJUKULUMWTDXCVNCUNUOUPUQWKBUR
      ZWLVOWTWGWKBVNUSXGWMVPWOVTWSWFWKBVMTWNVSAWKBWKBVRTUTXGWQWDAWRWEWKBVAXGWAW
      AWPWCXGWAVEWKBWBTVBVCVFVGVHWIWJVLWHCVIVJVK $.

    $( The property of being a sigma-algebra on an indefinite base set.
       (Contributed by Thierry Arnoux, 3-Sep-2016.)  (Proof shortened by
       Thierry Arnoux, 23-Oct-2016.) $)
    isrnsiga $p |- ( S e. U. ran sigAlgebra <-> ( S e. _V /\
      E. o ( S C_ ~P o /\ ( o e. S /\ A. x e. S ( o \ x ) e. S
      /\ A. x e. ~P S ( x ~<_ _om -> U. x e. S ) ) ) ) ) $=
      ( vs csiga crn cuni wcel cvv cv cpw wss cdif wral com cdom wi w3a eleq2
      wa wbr wrex df-siga sigaex wceq sseq1 raleqbi1dv pweq raleqbidv 3anbi123d
      wex imbi2d anbi12d abfmpunirn rexv anbi2i bitri ) BEFGHBIHZBCJZKZLZUSBHZU
      SAJZMZBHZABNZVCOPUAZVCGZBHZQZABKZNZRZTZCIUBZTURVNCUKZTDJZUTLZUSVQHZVDVQHZ
      AVQNZVGVHVQHZQZAVQKZNZRZTVNCDBEIACDUCACDUDVQBUEZVRVAWFVMVQBUTUFWGVSVBWAVF
      WEVLVQBUSSVTVEAVQBVQBVDSUGWGWCVJAWDVKVQBUHWGWBVIVGVQBVHSULUIUJUMUNVOVPURV
      NCUOUPUQ $.

    $( A sigma-algebra contains the empty set.  (Contributed by Thierry Arnoux,
       4-Sep-2016.) $)
    0elsiga $p |- ( S e. U. ran sigAlgebra -> (/) e. S ) $=
      ( vo vx csiga crn cuni wcel cv cpw wss cdif wral com wbr wi w3a wa wex c0
      cdom cvv isrnsiga simprbi 3simpa adantl eximi difeq2 syl6eq eleq1d rspcva
      weq difid exlimiv 3syl ) ADEFGZABHZIJZUPAGZUPCHZKZAGZCALZUSMTNUSFAGOCAILZ
      PZQZBRZURVBQZBRSAGZUOAUAGVFCABUBUCVEVGBVDVGUQURVBVCUDUEUFVGVHBVAVHCUPACBU
      KZUTSAVIUTUPUPKSUSUPUPUGUPULUHUIUJUMUN $.

    $d x A $.
    $( A sigma-algebra contains its base universe set.  (Contributed by Thierry
       Arnoux, 26-Oct-2016.) $)
    baselsiga $p |- ( S e. ( sigAlgebra ` A ) -> A e. S ) $=
      ( vx cvv wcel csiga cfv elex wa cv cdif wral com cdom wbr cuni wi cpw wss
      w3a issiga simplbda simp1d mpancom ) BDEZBAFGZEZABEZBUFHUEUGIUHACJZKBECBL
      ZUIMNOUIPBEQCBRLZUEUGBARSUHUJUKTCBAUAUBUCUD $.

    $( A sigma-algebra is a set of subset of the base set.  (Contributed by
       Thierry Arnoux, 18-Jan-2017.) $)
    sigasspw $p |- ( S e. ( sigAlgebra ` A ) -> S C_ ~P A ) $=
      ( vx csiga cfv wcel cpw wss cv cdif wral com cdom wbr cuni wi w3a wa elex
      cvv issiga biimpa mpancom simpld ) BADEZFZBAGHZABFACIZJBFCBKUHLMNUHOBFPCB
      GKQZBTFZUFUGUIRZBUESUJUFUKCBAUAUBUCUD $.

    $( A sigma-algebra is closed under countable union.  (Contributed by
       Thierry Arnoux, 26-Dec-2016.) $)
    sigaclcu $p |- ( ( S e. U. ran sigAlgebra /\ A e. ~P S /\ A ~<_ _om )
        -> U. A e. S ) $=
      ( vx vo csiga crn cuni wcel cpw com cdom wbr w3a cv wi wral simp2 cdif wa
      wss wex cvv isrnsiga simprbi simpr3 exlimiv syl 3ad2ant1 simp3 wceq breq1
      unieq eleq1d imbi12d rspcv syl3c ) BEFGHZABIZHZAJKLZMUSCNZJKLZVAGZBHZOZCU
      RPZUTAGZBHZUQUSUTQUQUSVFUTUQBDNZITZVIBHZVIVARBHCBPZVFMSZDUAZVFUQBUBHVNCBD
      UCUDVMVFDVJVKVLVFUEUFUGUHUQUSUTUIVEUTVHOCAURVAAUJZVBUTVDVHVAAJKUKVOVCVGBV
      AAULUMUNUOUP $.

    ${
      $d z A $.  $d z B $.  $d k z S $.
      sigaclcuni.1 $e |- F/_ k A $.
      $( A sigma-algebra is closed under countable union: indexed union
         version.  (Contributed by Thierry Arnoux, 8-Jun-2017.) $)
      sigaclcuni $p |- ( ( S e. U. ran sigAlgebra /\ A. k e. A B e. S
             /\ A ~<_ _om ) -> U_ k e. A B e. S ) $=
        ( vz csiga crn cuni wcel wral com cdom wbr wceq 3ad2ant2 wa eqeltrd syl
        wrex w3a ciun cv cab dfiun2g cpw simp1 wss r19.29 simpr simpl rexlimivw
        ex abssdv wb elpw2g mpbird abrexctf 3ad2ant3 sigaclcu syl3anc ) CGHIZJZ
        BCJZDAKZALMNZUAZDABUBZFUCZBOZDATZFUDZIZCVEVCVHVMOVFDFABCUEPVGVCVLCUFJZV
        LLMNZVMCJVCVEVFUGZVGVNVLCUHZVEVCVQVFVEVKFCVEVKVICJZVEVKQVDVJQZDATVRVDVJ
        DAUIVSVRDAVSVIBCVDVJUJVDVJUKRULSUMUNPVGVCVNVQUOVPVLCVBUPSUQVFVCVOVEDFAB
        EURUSVLCUTVAR $.
    $}

    $( A sigma-algebra is closed under finite union.  (Contributed by Thierry
       Arnoux, 28-Dec-2016.) $)
    sigaclfu $p |- ( ( S e. U. ran sigAlgebra /\ A e. ~P S /\ A e. Fin )
      -> U. A e. S ) $=
      ( cfn wcel csiga crn cuni cpw com cdom wbr fict sigaclcu syl3an3 ) ACDBEF
      GDABHDAIJKAGBDALABMN $.

    $d k x S $.
    $( A sigma-algebra is closed under countable union - indexing on ` NN `
       (Contributed by Thierry Arnoux, 29-Dec-2016.) $)
    sigaclcu2 $p |- ( ( S e. U. ran sigAlgebra /\ A. k e. NN A e. S )
      -> U_ k e. NN A e. S ) $=
      ( vx csiga crn cuni wcel cn wral wa ciun cv wceq wrex cab com cdom wbr wi
      dfiun2g adantl cpw simpl wss abid eleq1a ralimi r19.23v sylib imp adantll
      sylan2b ralrimiva nfcv dfss3f sylibr wb elpw2g adantr mpbird nnct abrexct
      nfab1 mp1i sigaclcu syl3anc eqeltrd ) BEFGZHZABHZCIJZKZCIALZDMZANZCIOZDPZ
      GZBVLVNVSNVJCDIABUAUBVMVJVRBUCHZVRQRSZVSBHVJVLUDVMVTVRBUEZVMVOBHZDVRJWBVM
      WCDVRVOVRHVMVQWCVQDUFVLVQWCVJVLVQWCVLVPWCTZCIJVQWCTVKWDCIABVOUGUHVPWCCIUI
      UJUKULUMUNDVRBVQDVDDBUOUPUQVJVTWBURVLVRBVIUSUTVAIQRSWAVMVBCDIAVCVEVRBVFVG
      VH $.

    $d k N $.
    $( A sigma-algebra is closed under finite union - indexing on
       ` ( 1 ..^ N ) ` .  (Contributed by Thierry Arnoux, 28-Dec-2016.) $)
    sigaclfu2 $p |- ( ( S e. U. ran sigAlgebra /\ A. k e. ( 1 ..^ N ) A e. S )
      -> U_ k e. ( 1 ..^ N ) A e. S ) $=
      ( csiga crn cuni wcel c1 cfzo co wral wa ciun cn cun wceq iuneq2i eqtri
      c0 cv cif cdif iunxun wss fzossnn undif mpbi iuneq1 ax-mp iftrue iffalsed
      eldifn uneq12i 3eqtr3i un0 0elsiga wi simpr simpllr mpd wn simplll ifclda
      iun0 exp31 ralimdv2 imp sylan sigaclcu2 syldan syl5eqelr ) BEFGHZABHZCIDJ
      KZLZMCVOANZCOCUAZVOHZATUBZNZBWAVQTPZVQCVOOVOUCZPZVTNZCVOVTNZCWCVTNZPWAWBC
      VOWCVTUDWDOQZWEWAQVOOUEWHDUFVOOUGUHCWDOVTUIUJWFVQWGTCVOVTAVSATUKRWGCWCTNT
      CWCVTTVRWCHVSATVROVOUMULRCWCVESUNUOVQUPSVMVPVTBHZCOLZWABHVMTBHZVPWJBUQWKV
      PWJWKVNWICVOOWKVSVNURZVROHZWIWKWLMWMMZVSATBWNVSMVSVNWNVSUSWKWLWMVSUTVAWKW
      LWMVSVBVCVDVFVGVHVIVTBCVJVKVL $.

    $d k M $.  $d k ph $.
    sigaclcu3.1 $e |- ( ph -> S e. U. ran sigAlgebra ) $.
    sigaclcu3.2 $e |- ( ph -> ( N = NN \/ N = ( 1 ..^ M ) ) ) $.
    sigaclcu3.3 $e |- ( ( ph /\ k e. N ) -> A e. S ) $.
    $( A sigma-algebra is closed under countable or finite union.  (Contributed
       by Thierry Arnoux, 6-Mar-2017.) $)
    sigaclcu3 $p |- ( ph -> U_ k e. N A e. S ) $=
      ( cn wceq ciun wcel wa simpr iuneq1d wral adantr raleqdv mpbid c1 cfzo co
      csiga crn cuni ralrimiva sigaclcu2 syl2anc eqeltrd sigaclfu2 mpjaodan ) A
      FJKZDFBLZCMFUAEUBUCZKZAUMNZUNDJBLZCUQDFJBAUMOZPUQCUDUEUFMZBCMZDJQZURCMAUT
      UMGRUQVADFQZVBAVCUMAVADFIUGZRUQVADFJUSSTBCDUHUIUJAUPNZUNDUOBLZCVEDFUOBAUP
      OZPVEUTVADUOQZVFCMAUTUPGRVEVCVHAVCUPVDRVEVADFUOVGSTBCDEUKUIUJHUL $.
  $}

  ${
    $d o x S $.  $d x O $.
    $( Property of being a sigma-algebra with a given base set, noting that the
       base set of a sigma-algebra is actually its union set.  (Contributed by
       Thierry Arnoux, 24-Sep-2016.)  (Revised by Thierry Arnoux,
       23-Oct-2016.) $)
    issgon $p |- ( S e. ( sigAlgebra ` O ) <->
      ( S e. U. ran sigAlgebra /\ O = U. S ) ) $=
      ( vx vo csiga wcel cuni wceq wa elex cpw wss cdif wral w3a elpwuni biimpa
      cv ancom eqcom cfv crn fvssunirn sseli cvv com cdom wbr wi issiga 3imtr4i
      3ad2antr1 syl6bi mpcom jca wex isrnsiga simprbi pweq sseq2d difeq1 eleq1d
      wb eleq1 ralbidv 3anbi12d anbi12d syl ibi exlimiv biimprd pwuni syl5sseqr
      simprd jctild anim2d biimpar syl56 impcom impbii ) ABEUAZFZAEUBGZFZBAGZHZ
      IWBWDWFWAWCAEBUCUDAUEFZWBWFAWAJWGWBABKZLZBAFZBCRZMZAFZCANZWKUFUGUHWKGAFUI
      CAKNZOZIZWFCABUJZWIWNWJWFWOWJWIIWEBHZWIWJIWFWJWIWSABPQWIWJSBWETUKULUMUNUO
      WFWDWBWDWGWEAFZWEWKMZAFZCANZWOOZIWFWGWQIWBWDWGXDAWCJWDAWEKZLZXDWDADRZKZLZ
      XGAFZXGWKMZAFZCANZWOOZIZDUPZXFXDIZWDWGXPCADUQURXOXQDXOXQXOXGWEHZXOXQVCXIX
      MXJXRWOXJXIIWEXGHZXIXJIXRXJXIXSAXGPQXIXJSXGWETUKULXRXIXFXNXDXRXHXEAXGWEUS
      UTXRXJWTXMXCWOXGWEAVDXRXLXBCAXRXKXAAXGWEWKVAVBVEVFVGVHVIVJVHVNUOWFXDWQWGW
      FXDWPWIWFWPXDWFWJWTWNXCWOBWEAVDWFWMXBCAWFWLXAABWEWKVAVBVEVFVKWFXEAWHAVLBW
      EUSVMVOVPWGWBWQWRVQVRVSVT $.
  $}

  ${
    $( A sigma-algebra is a sigma on its union set.  (Contributed by Thierry
       Arnoux, 6-Jun-2017.) $)
    sgon $p |- ( S e. U. ran sigAlgebra -> S e. ( sigAlgebra ` U. S ) ) $=
      ( csiga crn cuni wcel wceq cfv eqid wa issgon biimpri mpan2 ) ABCDEZADZNF
      ZANBGEZNHPMOIANJKL $.
  $}

  ${
    $( An element of a sigma-algebra is a subset of the base set.  (Contributed
       by Thierry Arnoux, 6-Jun-2017.) $)
    elsigass $p |- ( ( S e. U. ran sigAlgebra /\ A e. S ) -> A C_ U. S ) $=
      ( csiga crn cuni wcel wa cpw cfv wss sgon sigasspw syl sselda elpwid ) BC
      DEFZABFGABEZPBQHZAPBQCIFBRJBKQBLMNO $.
  $}

  ${
    $( Dropping the base information off a sigma-algebra.  (Contributed by
       Thierry Arnoux, 13-Feb-2017.) $)
    elrnsiga $p |- ( S e. ( sigAlgebra ` O ) -> S e. U. ran sigAlgebra ) $=
      ( csiga cfv crn cuni fvssunirn sseli ) BCDCEFACBGH $.
  $}

  ${
    $d x S $.
    $( The property of being a sigma-algebra, universe is the union set.
       (Contributed by Thierry Arnoux, 11-Nov-2016.) $)
    isrnsigau $p |- ( S e. U. ran sigAlgebra -> ( S C_ ~P U. S /\ ( U. S e. S
      /\ A. x e. S ( U. S \ x ) e. S
      /\ A. x e. ~P S ( x ~<_ _om -> U. x e. S ) ) ) ) $=
      ( csiga crn cuni wcel cfv cpw wss cv cdif wral com cdom wbr wi w3a wa cvv
      sgon wb elex issiga syl mpbid ) BCDEZFZBBEZCGFZBUHHIUHBFUHAJZKBFABLUJMNOU
      JEBFPABHLQRZBTUGBSFUIUKUABUFUBABUHUCUDUE $.

    $( A sigma-algebra contains its universe set.  (Contributed by Thierry
       Arnoux, 13-Feb-2017.)  (Shortened by Thierry Arnoux, 6-Jun-2017.) $)
    unielsiga $p |- ( S e. U. ran sigAlgebra -> U. S e. S ) $=
      ( csiga crn cuni wcel cfv sgon baselsiga syl ) ABCDEAADZBFEJAEAGJAHI $.
  $}

  ${
    $d x y $.
    $( Lebesgue-measurable subsets of ` RR ` form a sigma-algebra.
       (Contributed by Thierry Arnoux, 10-Sep-2016.)  (Revised by Thierry
       Arnoux, 24-Oct-2016.) $)
    dmvlsiga $p |- dom vol e. ( sigAlgebra ` RR ) $=
      ( vx vy cvol cdm cr csiga cfv wcel cpw wss cv cdif wral com cdom wbr cuni
      wi rgen cn w3a pwssb mblss mprgbir rembl cmmbl ciun nnenom ensymi domentr
      cen mpan2 elpwi dfss3 sylib iunmbl2 syl2anr uniiun eleq1i syl6ibr 3pm3.2i
      ex cvv wa wb reex pwex ssexi issiga ax-mp mpbir2an ) CDZEFGHZVLEIZJZEVLHZ
      EAKZLVLHZAVLMZVQNOPZVQQZVLHZRZAVLIZMZUAZVOVQEJAVLAVLEUBVQUCUDZVPVSWEUEVRA
      VLVQUFSWCAWDVQWDHZVTBVQBKZUGZVLHZWBWHVTWKVTVQTOPZWIVLHBVQMZWKWHVTNTUKPWLT
      NUHUIVQNTUJULWHVQVLJWMVQVLUMBVQVLUNUOVQWIBUPUQVBWAWJVLBVQURUSUTSVAVLVCHVM
      VOWFVDVEVLVNEVFVGWGVHAVLEVIVJVK $.
  $}

  ${
    $d x O $.  $d x V $.
    $( Any power set forms a sigma-algebra.  (Contributed by Thierry Arnoux,
       13-Sep-2016.)  (Revised by Thierry Arnoux, 24-Oct-2016.) $)
    pwsiga $p |- ( O e. V -> ~P O e. ( sigAlgebra ` O ) ) $=
      ( vx wcel cpw csiga cfv wss cdif wral com cdom wbr cuni w3a ssid ralrimiv
      cv wi a1d a1i pwidg difss elpw2g mpbiri sspwuni vuniex elpw bitr4i biimpi
      elpwi imim1i mp1i 3jca cvv wa wb pwexg issiga syl mpbir2and ) ABDZAEZAFGD
      ZVCVCHZAVCDZACRZIZVCDZCVCJZVGKLMZVGNZVCDZSZCVCEZJZOZVEVBVCPUAVBVFVJVPABUB
      VBVICVCVBVIVGVCDVBVIVHAHAVGUCVHABUDUETQVBVNCVOVGVCHZVNSVGVODZVNSVBVRVMVKV
      RVMVRVLAHVMVGAUFVLACUGUHUIUJTVSVRVNVGVCUKULUMQUNVBVCUODVDVEVQUPUQABURCVCA
      USUTVA $.
  $}

  ${
    $d x O $.
    $( The smallest possible sigma-algebra containing ` O ` .  (Contributed by
       Thierry Arnoux, 13-Sep-2016.) $)
    prsiga $p |- ( O e. V -> { (/) , O } e. ( sigAlgebra ` O ) ) $=
      ( vx wcel c0 cpr cpw cdif wral cuni 0ex cvv wceq eleq1d ralprg cun pm3.2i
      wa wb unieq wss cv com cdom wbr wi w3a csiga cfv 0elpw pwidg prssi prid2g
      sylancr dif0 syl5eqel difid prid1 a1i difeq2 mpan mpbir2and eqeltri unisn
      uni0 snex mp1i mpbiri unisng eqeltrd uniprg uncom eqtri syl6eq prex ralun
      csn un0 syl2anc pwpr raleqi sylibr ax-1 ralimi 3jca issiga ax-mp sylanbrc
      syl ) ABDZEAFZAGZUAZAWKDZACUBZHZWKDZCWKIZWOUCUDUEZWOJZWKDZUFZCWKGZIZUGZWK
      AUHUIDZWJEWLDAWLDWMAUJABUKEAWLULUNWJWNWRXDEABUMZWJWRAEHZWKDZAAHZWKDZWJXHA
      WKAUOXGUPWJXJEWKAUQEWKDWJEAKURZUSUPELDZWJWRXIXKRSKWQXIXKCEALBWOEMZWPXHWKW
      OEAUTNWOAMWPXJWKWOAAUTNOVAVBWJXACXCIZXDWJXACEEVQZFZAVQZWKFZPZIZXOWJXACXQI
      ZXACXSIZYAWJYBEJZWKDZXPJZWKDZRZYEYGYDEWKVEXLVCYFEWKEKVDXLVCQXMXPLDZRYBYHS
      WJXMYIKEVFQXAYEYGCEXPLLXNWTYDWKWOETNWOXPMWTYFWKWOXPTNOVGVHWJYCXRJZWKDZWKJ
      ZWKDZWJYJAWKABVIXGVJWJYLAWKWJYLEAPZAXMWJYLYNMKEALBVKVAYNAEPAEAVLAVRVMVNXG
      VJXRLDZWKLDZRYCYKYMRSWJYOYPAVFEAVOZQXAYKYMCXRWKLLWOXRMWTYJWKWOXRTNWOWKMWT
      YLWKWOWKTNOVGVBXACXQXSVPVSXACXCXTEAVTWAWBXAXBCXCXAWSWCWDWIWEYPXFWMXERSYQC
      WKAWFWGWH $.
  $}

  ${
    $d x y z A $.  $d x y z S $.
    $( A sigma-algebra is closed under countable intersections.  Deduction
       version.  (Contributed by Thierry Arnoux, 19-Sep-2016.) $)
    sigaclci $p |- ( ( ( S e. U. ran sigAlgebra /\ A e. ~P S ) /\
      ( A ~<_ _om /\ A =/= (/) ) ) -> |^| A e. S ) $=
      ( vz vx vy cuni wcel wa com cdom wbr cv cdif wral wi wss adantr wceq syl
      wb csiga crn cpw wne cint ciun w3a isrnsigau simprd simp2d wrex cab elpwi
      ssrexv ss2abdv uniiunlem mpbid sylan9ssr cvv abrexexg elpwg adantl mpbird
      c0 simp3d jca abrexdom2jm domtr sylan breq1 eleq1d imbi12d rspcva sylsyld
      ex unieq ssralv sylc dfiun2g eleq1 3syl sylibrd difeq2 rspccv adantrd imp
      simpr pwuni syl6ss iundifdifd adantld syl6 ) BUAUBFGZABUCZGZHZAIJKZAVDUDZ
      HZHAUEZBGZBFZCAXBCLZMZUFZMZBGZWPWSXGWPWQXGWRWPXBDLZMZBGZDBNZWQXEBGZXGWMXK
      WOWMXBBGZXKXHIJKZXHFZBGZOZDWNNZWMBXBUCZPZXMXKXRUGDBUHUIZUJQWPWQELXDRZCAUK
      ZEULZFZBGZXLWPYDWNGZXRHWQYDIJKZYFWPYGXRWPYGYDBPZWOWMYDYBCBUKZEULZBWOYCYJE
      WOABPZYCYJOABUMZYBCABUNSUOWMXDBGZCBNZYKBPZWMXMYOXCIJKXCFBGOCWNNZWMXTXMYOY
      QUGCBUHUIUJZWMYOYOYPTYRCEBXDBBUPSUQURWOYGYITZWMWOYDUSGYSCEAXDWNUTYDBUSVAS
      VBVCWMXRWOWMXMXKXRYAVEQVFWOWQYHOWMWOWQYHWOYDAJKWQYHECAXDWNVGYDAIVHVIVOVBX
      QYHYFODYDWNXHYDRZXNYHXPYFXHYDIJVJYTXOYEBXHYDVPVKVLVMVNWPYNCANZXEYERXLYFTW
      PYLYOUUAWOYLWMYMVBWMYOWOYRQYNCABVQVRCEAXDBVSXEYEBVTWAWBXJXGDXEBXHXERXIXFB
      XHXEXBWCVKWDVNWEWFWPWSXAXGTZWPWSWTXFRZUUBWPWRUUCWQWPWOAXSPWRUUCOWMWOWGWOA
      BXSYMBWHWICAXBWJWAWKWTXFBVTWLWFVC $.
  $}

  ${
    $d x S $.  $d x B $.
    $( A sigma-algebra is closed under class differences.  (Contributed by
       Thierry Arnoux, 13-Sep-2016.) $)
    difelsiga $p |- ( ( S e. U. ran sigAlgebra /\ A e. S /\ B e. S ) ->
      ( A \ B ) e. S ) $=
      ( vx csiga crn cuni wcel w3a cdif cpr cint wss wceq wral com cdom wbr cpw
      syl2anc cin simp2 elssuni difin2 cv isrnsigau simprd simp2d difeq2 eleq1d
      3syl wi rspccva sylan 3adant2 intprg eqtr4d c0 wne simp1 prex elpw sylibr
      prssi prct prnzg syl sigaclci syl22anc eqeltrd ) CEFGHZACHZBCHZIZABJZCGZB
      JZAKZLZCVNVOVQAUAZVSVNVLAVPMVOVTNVKVLVMUBZACUCABVPUDUKVNVQCHZVLVSVTNVKVMW
      BVLVKVPDUEZJZCHZDCOZVMWBVKVPCHZWFWCPQRWCGCHULDCSZOZVKCVPSMWGWFWIIDCUFUGUH
      WEWBDBCWCBNWDVQCWCBVPUIUJUMUNUOZWAVQACCUPTUQVNVKVRWHHZVRPQRZVRURUSZVSCHVK
      VLVMUTVNVRCMZWKVNWBVLWNWJWAVQACVDTVRCVQAVAVBVCVNWBVLWLWJWAVQACCVETVNWBWMW
      JVQACVFVGVRCVHVIVJ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x S $.
    $( A sigma-algebra is closed under pairwise unions.  (Contributed by
       Thierry Arnoux, 13-Dec-2016.) $)
    unelsiga $p |- ( ( S e. U. ran sigAlgebra /\ A e. S /\ B e. S ) ->
      ( A u. B ) e. S ) $=
      ( vx csiga crn cuni wcel w3a cpr cun wceq uniprg 3adant1 com cdom wbr cpw
      wi wral cv cdif isrnsigau simprd simp3d 3ad2ant1 prct prelpwi breq1 unieq
      wss wa eleq1d imbi12d rspcv syl mp2d eqeltrrd ) CEFGHZACHZBCHZIZABJZGZABK
      ZCUTVAVDVELUSABCCMNVBDUAZOPQZVFGZCHZSZDCRZTZVCOPQZVDCHZUSUTVLVAUSCGZCHZVO
      VFUBCHDCTZVLUSCVORUKVPVQVLIDCUCUDUEUFUTVAVMUSABCCUGNUTVAVLVMVNSZSZUSUTVAU
      LVCVKHVSABCUHVJVRDVCVKVFVCLZVGVMVIVNVFVCOPUIVTVHVDCVFVCUJUMUNUOUPNUQUR $.
  $}

  ${
    $( A sigma-algebra is closed under pairwise intersections.  (Contributed by
       Thierry Arnoux, 13-Dec-2016.) $)
    inelsiga $p |- ( ( S e. U. ran sigAlgebra /\ A e. S /\ B e. S ) ->
      ( A i^i B ) e. S ) $=
      ( csiga crn cuni wcel w3a cin cdif dfin4 difelsiga syld3an3 syl5eqel ) CD
      EFGZACGZBCGZHABIAABJZJZCABKOPQRCGSCGABCLARCLMN $.
  $}

  ${
    $d x A $.  $d x S $.
    $( Building a sigma-algebra from intersections with a given set.
       (Contributed by Thierry Arnoux, 26-Dec-2016.) $)
    sigainb $p |- ( ( S e. U. ran sigAlgebra /\ A e. S ) ->
      ( S i^i ~P A ) e. ( sigAlgebra ` A ) ) $=
      ( vx csiga cuni wcel wa cpw wss wral simpr syl elind simplr syl3anc elpwg
      ralrimiva sstr mpan2 3syl crn cin cvv cv cdif com cdom wbr w3a cfv inex1g
      adantr inss2 a1i pwidg simpll inss1 sseldi difelsiga difss mpbiri simplll
      wi elpwi biimpar syl2anc sigaclcu sspwuni vuniex elpw bitr4i sylib issiga
      ex 3jca syl12anc ) BDUAEZFZABFZGZBAHZUBZUCFZWBWAIZAWBFZACUDZUEZWBFZCWBJZW
      FUFUGUHZWFEZWBFZVCZCWBHZJZUIZWBADUJFZVRWCVSBWAVQUKULWDVTBWAUMZUNVTWEWIWOV
      TBWAAVRVSKZVTVSAWAFWSABUOLMVTWHCWBVTWFWBFZGZBWAWGXAVRVSWFBFWGBFZVRVSWTUPV
      RVSWTNXAWBBWFBWAUQZVTWTKURAWFBUSOZXAXBWGWAFZXDXBXEWGAIAWFUTWGABPVALMQVTWM
      CWNVTWFWNFZGZWJWLXGWJGZBWAWKXHVRWFBHFZWJWKBFVRVSXFWJVBXHXFWFBIZXIVTXFWJNZ
      XHXFWFWBIZXJXKWFWBVDZXLWBBIXJXCWFWBBRSTXFXIXJWFBWNPVEVFXGWJKWFBVGOXHWFWAI
      ZWKWAFZXHXFXLXNXKXMXLWDXNWRWFWBWARSTXNWKAIXOWFAVHWKACVIVJVKVLMVNQVOWCWQWD
      WPGCWBAVMVEVP $.
  $}

  ${
    $d s x A $.  $d s x O $.
    $( The intersection of a collection of sigma-algebras of same base is a
       sigma-algebra.  (Contributed by Thierry Arnoux, 27-Dec-2016.) $)
    insiga $p |- ( ( A =/= (/) /\ A e. ~P ( sigAlgebra ` O ) )
      -> |^| A e. ( sigAlgebra ` O ) ) $=
      ( vx vs csiga cpw wcel wa cvv wss cv adantr simpr syl wb ralrimiva elintg
      wral mpbird jca c0 wne cfv cint cdif com cdom wbr cuni w3a intex intssuni
      wi biimpi elpwi sigasspw selpw sylibr ssriv syl6ss sspwuni simplr elelpwi
      sylib sstrd syl2anc vex issiga ax-mp simprd simp1d wex eximdv mpd exlimiv
      n0 ex elfvex simpll elinti adantll simp2d r19.21bi difexg simplll simpllr
      imp intss1 sylan9ss sylancom simp3d sylc uniexg ad2antlr biimpar syl12anc
      3jca ) AUAUBZABEUCZFGZHZAUDZIGZXBBFZJZBXBGZBCKZUEZXBGZCXBRZXGUFUGUHZXGUIZ
      XBGZUMZCXBFZRZUJZXBWSGZWRXCWTWRXCAUKUNLXAXBAUIZXDWRXBXSJWTAULLXAAXDFZJZXS
      XDJXAWTYAWRWTMWTAWSXTAWSUODWSXTDKZWSGZYBXDJZYBXTGBYBUPDXDUQURUSUTNAXDVAVD
      VEXAXFXJXPXAXFBYBGZDARZXAYEDAXAYBAGZHZYEXHYBGZCYBRZXKXLYBGZUMZCYBFZRZYHYD
      YEYJYNUJZYHYCYDYOHZYHYGWTYCXAYGMWRWTYGVBYBAWSVCVFZYBIGYCYPODVGCYBBVHVIVDV
      JZVKPXABIGZXFYFOXAYCDVLZYSXAYGDVLZYTWRUUAWTWRUUADAVPUNLXAYGYCDXAYGYCYQVQV
      MVNYCYSDYBBEVRVONZDBAIQNSXAXICXBXAXGXBGZHZXIYIDARZUUDYIDAUUDYGHZYHXGYBGZY
      IUUFXAYGXAUUCYGVSUUDYGMTUUCYGUUGXAUUCYGUUGXGAYBVTWGWAYHYICYBYHYEYJYNYRWBW
      CVFPUUDXHIGZXIUUEOXAUUHUUCXAYSUUHUUBBXGIWDNLDXHAIQNSPXAXNCXOXAXGXOGZHZXKX
      MUUJXKHZXMYKDARZUUKYKDAUUKYGHZYHXGYMGZHXKYKUUMYHUUNUUMXAYGXAUUIXKYGWEUUKY
      GMTUUKYGUUIUUNXAUUIXKYGWFUUIYGHXGYBJUUNUUIYGXGXBYBXGXBUOYBAWHWICYBUQURWJT
      UUJXKYGVBYHYLCYMYHYEYJYNYRWKWCWLPUUKXLIGZXMUULOUUIUUOXAXKXGXOWMWNDXLAIQNS
      VQPWQXCXRXEXQHCXBBVHWOWP $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Generated sigma-Algebra
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c sigaGen $.
  $( Extend class notation to include the sigma-algebra generator. $)
  csigagen $a class sigaGen $.

  ${
    $d s x $.
    $( Define the sigma-algebra generated by a given collection of sets as the
       intersection of all sigma-algebra containing that set.  (Contributed by
       Thierry Arnoux, 27-Dec-2016.) $)
    df-sigagen $a |- sigaGen = ( x e. _V |->
      |^| { s e. ( sigAlgebra ` U. x ) | x C_ s } ) $.
  $}

  ${
    $d s x A $.  $d x V $.
    $( Value of the generated sigma-algebra.  (Contributed by Thierry Arnoux,
       27-Dec-2016.) $)
    sigagenval $p |- ( A e. V -> ( sigaGen ` A ) =
      |^| { s e. ( sigAlgebra ` U. A ) | A C_ s } ) $=
      ( vx wcel cv wss cuni cfv crab cint cvv csigagen cmpt wceq df-sigagen a1i
      csiga unieq syl fveq2d sseq1 rabeqbidv inteqd adantl c0 wne cpw wa uniexg
      elex pwsiga pwuni jctir sseq2 elrab sylibr ne0i intex sylib fvmptd ) ABEZ
      DADFZCFZGZCVCHZRIZJZKZAVDGZCAHZRIZJZKZLMLMDLVINOVBDCPQVCAOZVIVNOVBVOVHVMV
      OVEVJCVGVLVOVFVKRVCASUAVCAVDUBUCUDUEABUKVBVMUFUGZVNLEVBVKUHZVMEZVPVBVQVLE
      ZAVQGZUIVRVBVSVTVBVKLEVSABUJVKLULTAUMUNVJVTCVQVLVDVQAUOUPUQVMVQURTVMUSUTV
      A $.
  $}

  ${
    $d s A $.
    $( A generated sigma-algebra is a sigma-algebra.  (Contributed by Thierry
       Arnoux, 27-Dec-2016.) $)
    sigagensiga $p |- ( A e. V -> ( sigaGen ` A ) e. ( sigAlgebra ` U. A ) ) $=
      ( vs wcel csigagen cfv cv wss cuni csiga crab cint sigagenval wne cpw cvv
      c0 fvex syl6eqelr sylibr intex ssrab2 a1i elpw2 insiga syl2anc eqeltrd )
      ABDZAEFZACGHZCAIZJFZKZLZULABCMZUHUMQNZUMULODZUNULDUHUNPDUPUHUNUIPUOAERSUM
      UATUHUMULHZUQURUHUJCULUBUCUMULUKJRUDTUMUKUEUFUG $.
  $}

  ${
    sgsiga.1 $e |- ( ph -> A e. V ) $.
    $( A generated sigma-algebra is a sigma-algebra.  (Contributed by Thierry
       Arnoux, 30-Jan-2017.) $)
    sgsiga $p |- ( ph -> ( sigaGen ` A ) e. U. ran sigAlgebra ) $=
      ( wcel csigagen cfv cuni csiga crn sigagensiga elrnsiga 3syl ) ABCEBFGZBH
      ZIGENIJHEDBCKNOLM $.
  $}

  $( The sigma-algebra generated by a collection ` A ` is a sigma-algebra on
     ` U. A ` .  (Contributed by Thierry Arnoux, 27-Dec-2016.) $)
  unisg $p |- ( A e. V -> U. ( sigaGen ` A ) = U. A ) $=
    ( wcel cuni csigagen cfv csiga crn wceq wa sigagensiga issgon simprd eqcomd
    sylib ) ABCZADZAEFZDZPRGHDCZQSIZPRQGFCTUAJABKRQLOMN $.

  ${
    $d j s $.
    $( A sigma-algebra can be generated from any set.  (Contributed by Thierry
       Arnoux, 21-Jan-2017.) $)
    dmsigagen $p |- dom sigaGen = _V $=
      ( vj vs cvv cv wss cuni csiga cfv crab cint csigagen c0 wne wcel wrex cpw
      vuniex pwsiga ax-mp pwuni sseq2 rspcev mp2an rabn0 mpbir intex df-sigagen
      mpbi dmmpti ) ACADZBDZEZBUJFZGHZIZJZKUOLMZUPCNUQULBUNOZUMPZUNNZUJUSEZURUM
      CNUTAQUMCRSUJTULVABUSUNUKUSUJUAUBUCULBUNUDUEUOUFUHABUGUI $.
  $}

  ${
    $d s A $.
    $( A set is a subset of the sigma-algebra it generates.  (Contributed by
       Thierry Arnoux, 24-Jan-2017.) $)
    sssigagen $p |- ( A e. V -> A C_ ( sigaGen ` A ) ) $=
      ( vs wcel cv wss cuni cfv crab cint csigagen ssintub sigagenval syl5sseqr
      csiga ) ABDACEFCAGOHZIJAAKHCAPLABCMN $.
  $}

  $( A subset of the generating set is also a subset of the generated
     sigma-algebra.  (Contributed by Thierry Arnoux, 22-Sep-2017.) $)
  sssigagen2 $p |- ( ( A e. V /\ B C_ A ) -> B C_ ( sigaGen ` A ) ) $=
    ( wcel wss wa csigagen cfv simpr sssigagen adantr sstrd ) ACDZBAEZFBAAGHZMN
    IMAOENACJKL $.

  $( Any element of a set is also an element of the sigma-algebra that set
     generates.  (Contributed by Thierry Arnoux, 27-Mar-2017.) $)
  elsigagen $p |- ( ( A e. V /\ B e. A ) -> B e. ( sigaGen ` A ) ) $=
    ( wcel csigagen cfv sssigagen sselda ) ACDAAEFBACGH $.

  $( Any countable union of elements of a set is also in the sigma-algebra that
     set generates.  (Contributed by Thierry Arnoux, 17-Sep-2017.) $)
  elsigagen2 $p |- ( ( A e. V /\ B C_ A /\ B ~<_ _om )
                                      -> U. B e. ( sigaGen ` A ) ) $=
    ( wcel wss com cdom wbr w3a csigagen cfv csiga crn cuni cpw simp1 sssigagen
    sgsiga 3syl cvv sspwb biimpi simp2 simp3 ctex elpwg mpbird sigaclcu syl3anc
    wb sseldd ) ACDZBAEZBFGHZIZAJKZLMNDBUPOZDUNBNUPDUOACULUMUNPZRUOAOZUQBUOULAU
    PEZUSUQEZURACQUTVAAUPUAUBSUOBUSDZUMULUMUNUCUOUNBTDVBUMUJULUMUNUDZBUEBATUFSU
    GUKVCBUPUHUI $.

  ${
    $d s A $.  $d s S $.
    $( The generated sigma-algebra is a subset of all sigma-algebras containing
       the generating set, i.e. the generated sigma-algebra is the smallest
       sigma-algebra containing the generating set, here ` A ` .  (Contributed
       by Thierry Arnoux, 4-Jun-2017.) $)
    sigagenss $p |- ( ( S e. ( sigAlgebra ` U. A ) /\ A C_ S ) ->
      ( sigaGen ` A ) C_ S ) $=
      ( vs cuni csiga cfv wcel wss wa csigagen cv crab cint cvv wceq sigagenval
      ssexg ancoms syl sseq2 intminss eqsstrd ) BADEFZGZABHZIZAJFZACKZHZCUCLMZB
      UFANGZUGUJOUEUDUKABUCQRANCPSUIUECBUCUHBATUAUB $.
  $}

  $( Sufficient condition for inclusion of sigma-algebras.  This is used to
     prove equality of sigma-algebras.  (Contributed by Thierry Arnoux,
     10-Oct-2017.) $)
  sigagenss2 $p |- ( ( U. A = U. B /\ A C_ ( sigaGen ` B ) /\ B e. V ) ->
    ( sigaGen ` A ) C_ ( sigaGen ` B ) ) $=
    ( cuni wceq csigagen cfv wss wcel csiga sigagensiga 3ad2ant3 simp1 eleqtrrd
    w3a fveq2d simp2 sigagenss syl2anc ) ADZBDZEZABFGZHZBCIZOZUCTJGZIUDAFGUCHUF
    UCUAJGZUGUEUBUCUHIUDBCKLUFTUAJUBUDUEMPNUBUDUEQAUCRS $.

  $( The sigma-algebra generated by a sigma-algebra is itself.  (Contributed by
     Thierry Arnoux, 4-Jun-2017.) $)
  sigagenid $p |- ( S e. U. ran sigAlgebra -> ( sigaGen ` S ) = S ) $=
    ( csiga crn cuni wcel csigagen cfv wss sgon ssid sigagenss sssigagen eqssd
    sylancl ) ABCDZEZAFGZAPAADBGEAAHQAHAIAJAAKNAOLM $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  lambda and pi-Systems, Rings of Sets
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
Because they are not widely used outside of measure theory, we don't introduce
specific definitions for lambda- and pi-systems. Instead, we are defining ` P `
and ` L ` respectively as the classes of pi- and lambda-systems in ` O `
throughout this section.
$)

  ${
    $d O s t x y $.  $d S s x y $.  $d P t $.
    ispisys.p $e |- P = { s e. ~P ~P O | ( fi ` s ) C_ s } $.
    $( The property of being a pi-system.  (Contributed by Thierry Arnoux,
       10-Jun-2020.) $)
    ispisys $p |- ( S e. P <-> ( S e. ~P ~P O /\ ( fi ` S ) C_ S ) ) $=
      ( cv cfi cfv wss cpw wceq fveq2 id sseq12d elrab2 ) DFZGHZPIBGHZBIDBCJJAP
      BKZQRPBPBGLSMNEO $.

    $( The property of being a pi-system, expanded version.  Pi-systems are
       closed under finite intersections.  (Contributed by Thierry Arnoux,
       13-Jun-2020.) $)
    ispisys2 $p |- ( S e. P <-> ( S e. ~P ~P O
      /\ A. x e. ( ( ~P S i^i Fin ) \ { (/) } ) |^| x e. S ) ) $=
      ( vy wcel cpw cfi cfv wss wa cv cint cfn c0 wral cvv simpr cin cdif dfss3
      csn ispisys adantr eldifsn sylib simpld elin1d elpwid simprd elin2d elfir
      elex syl13anc wceq wrex elfi2 biimpa eleq1d ralxfrd syl5bb pm5.32i bitri
      wne ) CBHCDIIZHZCJKZCLZMVHANZOZCHZACIZPUAZQUDUBZRZMBCDEFUEVHVJVQVJGNZCHZG
      VIRVHVQGVICUCVHVSVMGAVLVIVPVHVKVPHZMZCSHZVKCLVKQVFZVKPHVLVIHVHWBVTCVGUOUF
      WAVKCWAVNPVKWAVKVOHZWCWAVTWDWCMVHVTTVKVOQUGUHZUIZUJUKWAWDWCWEULWAVNPVKWFU
      MVKCSUNUPVHVRVIHVRVLUQZAVPURAVRCVGUSUTVHWGMVRVLCVHWGTVAVBVCVDVE $.

    $d A x $.  $d B x $.  $d P x $.
    $( Pi-systems are closed under pairwise intersections.  (Contributed by
       Thierry Arnoux, 6-Jul-2020.) $)
    inelpisys $p |- ( ( S e. P /\ A e. S /\ B e. S ) -> ( A i^i B ) e. S ) $=
      ( vx wcel w3a cpr cint cin wceq intprg 3adant1 cpw cfn c0 wn cv csn inteq
      cdif eqidd eleq12d wral ispisys2 simprbi 3ad2ant1 wa wss prex elpw sylibr
      prssi prfi a1i elind wne prnzg 3ad2ant2 neneqd elsni con3i eldifd rspcdva
      syl eqeltrrd ) DCIZADIZBDIZJZABKZLZABMZDVKVLVOVPNVJABDDOPVMHUAZLZDIZVODIH
      DQZRMZSUBZUDZVNVQVNNZVRVODDVQVNUCWDDUEUFVJVKVSHWCUGZVLVJDEQQIWEHCDEFGUHUI
      UJVMVNWAWBVMVTRVNVKVLVNVTIZVJVKVLUKVNDULWFABDUPVNDABUMUNUOPVNRIVMABUQURUS
      VMVNSNZTVNWBIZTVMVNSVKVJVNSUTVLABDVAVBVCWHWGVNSVDVEVHVFVGVI $.

    $( All sigma-algebras are pi-systems.  (Contributed by Thierry Arnoux,
       13-Jun-2020.) $)
    sigapisys $p |- ( sigAlgebra ` O ) C_ P $=
      ( vt vx csiga cfv cv wcel cpw cint cfn cin c0 csn cdif wral wa sylibr wss
      sigasspw selpw crn cuni com wbr wne elrnsiga adantr eldifsn biimpi adantl
      cdom simpld elin1d elin2d fict syl simprd sigaclci syl22anc ralrimiva jca
      ispisys2 ssriv ) EBGHZAEIZVGJZVHBKZKJZFIZLVHJZFVHKZMNZOPQZRZSVHAJVIVKVQVI
      VHVJUAVKBVHUBEVJUCTVIVMFVPVIVLVPJZSZVHGUDUEJZVLVNJVLUFUNUGZVLOUHZVMVIVTVR
      VHBUIUJVSVNMVLVSVLVOJZWBVRWCWBSZVIVRWDVLVOOUKULUMZUOZUPVSVLMJWAVSVNMVLWFU
      QVLURUSVSWCWBWEUTVLVHVAVBVCVDFAVHBCDVETVF $.
  $}

  ${
    $d s u y $.  $d L t $.  $d O s t x $.  $d S s x $.  $d V x $.
    isldsys.l $e |- L = { s e. ~P ~P O | ( (/) e. s /\ A. x e. s ( O \ x ) e. s
      /\ A. x e. ~P s ( ( x ~<_ _om /\ Disj_ y e. x y ) -> U. x e. s ) ) } $.
    $( The property of being a lambda-system or Dynkin system.  Lambda-systems
       contain the empty set, are closed under complement, and closed under
       countable disjoint union.  (Contributed by Thierry Arnoux,
       13-Jun-2020.) $)
    isldsys $p |- ( S e. L
      <-> ( S e. ~P ~P O /\ ( (/) e. S /\ A. x e. S ( O \ x ) e. S
      /\ A. x e. ~P S ( ( x ~<_ _om /\ Disj_ y e. x y ) -> U. x e. S ) ) ) ) $=
      ( c0 cv wcel cdif wral com cdom wbr wdisj wi cpw w3a eleq2 cuni wceq pweq
      wa raleqbi1dv imbi2d raleqbidv 3anbi123d elrab2 ) HFIZJZEAIZKZUJJZAUJLZUL
      MNOBULBIPUDZULUAZUJJZQZAUJRZLZSHCJZUMCJZACLZUPUQCJZQZACRZLZSFCERRDUJCUBZU
      KVBUOVDVAVHUJCHTUNVCAUJCUJCUMTUEVIUSVFAUTVGUJCUCVIURVEUPUJCUQTUFUGUHGUI
      $.

    $( The power set of the universe set ` O ` is always a lambda-system.
       (Contributed by Thierry Arnoux, 21-Jun-2020.) $)
    pwldsys $p |- ( O e. V -> ~P O e. L ) $=
      ( wcel cpw c0 cv wral wa cvv pwidg syl adantr ralrimiva wss sylibr com wi
      cdif cdom wbr wdisj w3a pwexg 0elpw elpwdifcl elpwi pwuniss adantl vuniex
      cuni a1i elpw ex 3jca jca isldsys ) DEHZDIZVCIZHZJVCHZDAKZUCVCHZAVCLZVGUA
      UDUEBVGBKUFMZVGUOZVCHZUBZAVDLZUGZMVCCHVBVEVOVBVCNHVEDEUHVCNOPVBVFVIVNVFVB
      DUIUPVBVHAVCVBVGVCHZMDVGDVBDVCHVPDEOQUJRVBVMAVDVBVGVDHZMZVJVLVRVLVJVRVKDS
      ZVLVQVSVBVQVGVCSVSVGVCUKVGDULPUMVKDAUNUQTQURRUSUTABVCCDFGVAT $.

    ${
      $d s x y z $.  $d A y z $.  $d B y z $.  $d O z $.  $d S z $.  $d ph z $.
      unelldsys.s $e |- ( ph -> S e. L ) $.
      unelldsys.a $e |- ( ph -> A e. S ) $.
      unelldsys.b $e |- ( ph -> B e. S ) $.
      unelldsys.c $e |- ( ph -> ( A i^i B ) = (/) ) $.
      $( Lambda-systems are closed under disjoint set unions.  (Contributed by
         Thierry Arnoux, 21-Jun-2020.) $)
      unelldsys $p |- ( ph -> ( A u. B ) e. S ) $=
        ( vz wcel c0 wceq wa adantr cun uneq1 adantl un0 eqtr3i eqeltrd wne cpr
        uncom syl6eq cuni uniprg syl2anc com cdom wbr wdisj prct cin wex biimpi
        cv wb n0 wn disjel sylan adantll mpdan adantlr exlimddv disjprg syl3anc
        nelne1 id mpbird wi cpw breq1 disjeq1 anbi12d unieq eleq1d imbi12d cdif
        wral w3a crab biid difeq2 cbvralv 3anbi123i rabbiia eqtri isldsys sylib
        a1i simprd simp3d prelpwi rspcdva mp2and eqeltrrd pm2.61dane ) ADEUAZFP
        DQADQRZSZXEEFXGXEQEUAZEXFXEXHRADQEUBUCEQUAXHEEQUIEUDUEUJAEFPZXFMTUFADQU
        GZSZDEUHZUKZXEFAXMXERZXJADFPZXIXNLMDEFFULUMTXKXLUNUOUPZCXLCVBZUQZXMFPZA
        XPXJAXOXIXPLMDEFFURUMTXKXRDEUSQRZAXTXJNTXKXOXIDEUGZXRXTVCAXOXJLTAXIXJMT
        XKOVBZDPZYAOXJYCOUTZAXJYDODVDVAUCAYCYAXJAYCSYBEPVEZYAAXTYCYENDEYBVFVGYC
        YEYAAYBDEVNVHVIVJVKCDEXQDEFXQDRVOXQERVOVLVMVPAXPXRSZXSVQZXJAYBUNUOUPZCY
        BXQUQZSZYBUKZFPZVQZYGOFVRZXLYBXLRZYJYFYLXSYOYHXPYIXRYBXLUNUOVSCYBXLXQVT
        WAYOYKXMFYBXLWBWCWDAQFPZHYBWEZFPOFWFZYMOYNWFZAFHVRVRZPZYPYRYSWGZAFGPUUA
        UUBSKOCFGHIGQIVBZPZHBVBZWEZUUCPZBUUCWFZUUEUNUOUPZCUUEXQUQZSZUUEUKZUUCPZ
        VQZBUUCVRZWFZWGZIYTWHUUDYQUUCPZOUUCWFZYJYKUUCPZVQZOUUOWFZWGZIYTWHJUUQUV
        CIYTUUQUVCVCUUCYTPUUDUUDUUHUUSUUPUVBUUDWIUUGUURBOUUCUUEYBRZUUFYQUUCUUEY
        BHWJWCWKUUNUVABOUUOUVDUUKYJUUMUUTUVDUUIYHUUJYIUUEYBUNUOVSCUUEYBXQVTWAUV
        DUULYKUUCUUEYBWBWCWDWKWLWQWMWNWOWPWRWSAXOXIXLYNPLMDEFWTUMXATXBXCXD $.
    $}

    $( All sigma-algebras are lambda-systems.  (Contributed by Thierry Arnoux,
       13-Jun-2020.) $)
    sigaldsys $p |- ( sigAlgebra ` O ) C_ L $=
      ( vt csiga cfv cv wcel cpw c0 wral cuni sylibr adantr syl3anc ralrimiva
      wa cdif com cdom wbr wdisj wi w3a wss sigasspw selpw crn elrnsiga 0elsiga
      syl baselsiga simpr difelsiga ad2antrr simplr simprl sigaclcu ex 3jca jca
      isldsys ssriv ) GDHIZCGJZVGKZVHDLZLKZMVHKZDAJZUAVHKZAVHNZVMUBUCUDZBVMBJUE
      ZTZVMOVHKZUFZAVHLZNZUGZTVHCKVIVKWCVIVHVJUHVKDVHUIGVJUJPVIVLVOWBVIVHHUKOKZ
      VLVHDULZVHUMUNVIVNAVHVIVMVHKZTWDDVHKZWFVNVIWDWFWEQVIWGWFDVHUOQVIWFUPDVMVH
      UQRSVIVTAWAVIVMWAKZTZVRVSWIVRTWDWHVPVSVIWDWHVRWEURVIWHVRUSWIVPVQUTVMVHVAR
      VBSVCVDABVHCDEFVEPVF $.

    $d t y $.  $d A s t u x $.  $d L s u x $.  $d ph t u x $.
    ldsysgenld.1 $e |- ( ph -> O e. V ) $.
    ldsysgenld.2 $e |- ( ph -> A C_ ~P O ) $.
    $( The intersection of all lambda-systems containing a given collection of
       sets ` A ` , which is called the lambda-system generated by ` A ` , is
       itself also a lambda-system.  (Contributed by Thierry Arnoux,
       16-Jun-2020.) $)
    ldsysgenld $p |- ( ph -> |^| { t e. L | A C_ t } e. L ) $=
      ( cv wss cpw wcel wral wa wi ex vu crab cint cdif com cdom wbr wdisj cuni
      c0 w3a csiga cfv pwsiga syl sigaldsys sseldi sseq2 elrab sylanbrc sselpwd
      intss1 isldsys simprbi simp1d adantl a1d ralrimiva elintrab sylibr nfrab1
      0ex nfv nfcv nfint nfel simplr vex biimpi r19.21bi simp2d syl2anc ralrimi
      nfan imp wb cvv difexg elintrabg 3syl adantr mpbird nfpw simpllr syl21anc
      simpr ssrdv sspwb sylib simp-4r sseldd simp3d vuniex 3jca jca ) AEDMZNZDF
      UBZUCZGOZOZPZUJXIPZGBMZUDZXIPZBXIQZXNUEUFUGCXNCMUHRZXNUIZXIPZSZBXIOZQZUKZ
      RXIFPAXLYDAXIXJGULUMZAGHPZXJYEPKGHUNUOZAXJXHPZXIXJNAXJFPEXJNZYHAYEFXJBCFG
      IJUPYGUQLXGYIDXJFXFXJEURUSUTXJXHVBUOVAAXMXQYCAXGUJXFPZSZDFQXMAYKDFAXFFPZR
      YJXGYLYJAYLYJXOXFPZBXFQZXRXSXFPZSZBXFOZQZYLXFXKPYJYNYRUKBCXFFGIJVCVDZVEVF
      VGVHXGDUJFVLVIVJAXPBXIAXNXIPZRZXPXGYMSZDFQZUUAUUBDFAYTDADVMZDXNXIDXNVNZDX
      HXGDFVKVOZVPWDUUAYLUUBUUAYLRZXGYMUUGXGRYLXNXFPZYMUUAYLXGVQUUGXGUUHUUAXGUU
      HSZDFYTUUIDFQZAYTUUJXGDXNFBVRVIVSVFVTWEYLYMBXFYLYJYNYRYSWAVTWBTTWCAXPUUCW
      FZYTAYFXOWGPUUKKGXNHWHXGDXOFWGWIWJWKWLVHAYABYBAXNYBPZRZXRXTUUMXRRZXGYOSZD
      FQXTUUNUUODFUUMXRDAUULDUUDDXNYBUUEDXIUUFWMVPWDXRDVMWDUUNYLUUOUUNYLRZXGYOU
      UPXGRZYLXNYQPZXRYOUUNYLXGVQUUQYBYQXNUUQXIXFNYBYQNUUQUAXIXFUUQUAMZXIPZUUSX
      FPZUUQUUTRUUTYLXGUVAUUQUUTWPUUNYLXGUUTWNUUPXGUUTVQUUTYLRXGUVAUUTXGUVASZDF
      UUTUVBDFQXGDUUSFUAVRVIVSVTWEWOTWQXIXFWRWSAUULXRYLXGWTXAUUMXRYLXGWNYLUURRX
      RYOYLYPBYQYLYJYNYRYSXBVTWEWOTTWCXGDXSFBXCVIVJTVHXDXEBCXIFGIJVCVJ $.
  $}

  ${
    $d f i n s t x y z $.  $d L f i n t x y $.  $d O s t x $.
    $d P f i n t x y $.
    dynkin.p $e |- P = { s e. ~P ~P O | ( fi ` s ) C_ s } $.
    dynkin.l $e |- L = { s e. ~P ~P O | ( (/) e. s /\ A. x e. s ( O \ x ) e. s
      /\ A. x e. ~P s ( ( x ~<_ _om /\ Disj_ y e. x y ) -> U. x e. s ) ) } $.
    ${
      $d A n $.  $d B x $.  $d N n x $.
      sigapildsyslem.n $e |- F/ n ph $.
      sigapildsyslem.1 $e |- ( ph -> t e. ( P i^i L ) ) $.
      sigapildsyslem.2 $e |- ( ph -> A e. t ) $.
      sigapildsyslem.3 $e |- ( ph -> N e. Fin ) $.
      sigapildsyslem.4 $e |- ( ( ph /\ n e. N ) -> B e. t ) $.
      $( Lemma for ~ sigapildsys .  (Contributed by Thierry Arnoux,
         13-Jun-2020.) $)
      sigapildsyslem $p |- ( ph -> ( A \ U_ n e. N B ) e. t ) $=
        ( wcel ciun cdif cv c0 wceq wa iuneq1 0iun syl6eq difeq2d adantl adantr
        dif0 eqeltrd wne ciin iindif2 cfi cfv cpw wss cin elin1d ispisys simprd
        sylib wral cfn nfv nfan simpld elpwid sseldd difin2 syl cdom wdisj cuni
        com wbr w3a elin2d isldsys simp2d adantlr difeq2 eleq1d rspc mpd inelfi
        wi syl3anc ex ralrimi simpr cvv vex iinfi mpan eqeltrrd pm2.61dane ) AE
        HJFUAZUBZDUCZTJUDAJUDUEZUFXCEXDXEXCEUEAXEXCEUDUBEXEXBUDEXEXBHUDFUAUDHJU
        DFUGHFUHUIUJEUMUIUKAEXDTZXEQULUNAJUDUOZUFZHJEFUBZUPZXCXDXGXJXCUEAHJEFUQ
        UKXHXDURUSZXDXJXHXDKUTZUTTZXKXDVAZXHXDGTXMXNUFXHGIXDAXDGIVBZTZXGPULZVCG
        XDKLMVDVFZVEZXHXIXDTZHJVGZXGJVHTZXJXKTZXHXTHJAXGHOXGHVIVJXHHUCJTZXTXHYD
        UFZXIKFUBZEVBZXDYEEKVAZXIYGUEXHYHYDXHEKXHXDXLEXHXDXLXHXMXNXRVKVLAXFXGQU
        LZVMVLULEFKVNVOYEXKXDYGXHXNYDXSULYEXPYFXDTZXFYGXKTXHXPYDXQULYEKBUCZUBZX
        DTZBXDVGZYJXHYNYDXHUDXDTZYNYKVSVPVTCYKCUCVQUFYKVRXDTWKBXDUTVGZXHXMYOYNY
        PWAZXHXDITXMYQUFXHGIXDXQWBBCXDIKLNWCVFVEWDULYEFXDTZYNYJWKAYDYRXGSWEYMYJ
        BFXDYJBVIYKFUEYLYFXDYKFKWFWGWHVOWIXHXFYDYIULYFEXOXDWJWLVMUNWMWNAXGWOAYB
        XGRULXDWPTYAXGYBWAYCDWQHJXIXDWPWRWSWLVMWTXA $.
    $}

    $( Sigma-algebra are exactly classes which are both lambda and pi-systems.
       (Contributed by Thierry Arnoux, 13-Jun-2020.) $)
    sigapildsys $p |- ( sigAlgebra ` O ) = ( P i^i L ) $=
      ( vn vi cv wcel com cdom wbr wa c0 wceq cn cvv vt csiga cfv cin sigapisys
      vf sigaldsys ssini cpw wss cdif wral cuni wi w3a cfi elin1d ispisys sylib
      simpld elpwid dif0 wdisj elin2d isldsys simprd simp2d simp1d difeq2 eqidd
      id eleq12d rspcv syl syl5eqelr unieq uni0 syl6eq adantl ad3antrrr eqeltrd
      mpd wne wfo csdm wex vex biimpri cen simplr nnenom ensymi domentr sylancl
      0sdom fodomr syl2anc c1 cfzo ciun fveq2 iundisj crn wfn fofn fniunfv forn
      co unieqd eqtrd syl5eqr cmpt fvex difexg dfiun3 nfv nfcv nfmpt1 nfrn nfel
      ax-mp nfan simpr nfiu1 nfdif nfmpt ad7antr simp-4r wf fof ffvelrnd sseldd
      nfeq a1i adantr ex wb sylibr mp1i imp ad4antlr cfn fzossnn sigapildsyslem
      fzofi sselda wrex eqid elrnmpti r19.29af ssrdv mptex elpwg simp3d ad4antr
      nnex rnex nnct mptct rnct iundisj2 disjrnmpt breq1 disjeq1 anbi12d eleq1d
      imbi12d syl22anc syl5eqel eqeltrrd exlimddv pm2.61dane ralrimiva 3jca jca
      issiga ssriv eqssi ) EUBUCZCDUDZUVSCDCEFGUEABDEFHUGUHUAUVTUVSUAKZUVTLZUWA
      EUIZUJZEUWALZEAKZUKZUWALZAUWAULZUWFMNOZUWFUMZUWALZUNZAUWAUIZULZUOZPZUWAUV
      SLZUWBUWDUWPUWBUWAUWCUWBUWAUWCUILZUWAUPUCUWAUJZUWBUWACLUWSUWTPUWBCDUWAUWB
      VKZUQCUWAEFGURUSUTVAUWBUWEUWIUWOUWBEEQUKZUWAEVBUWBUWIUXBUWALZUWBQUWALZUWI
      UWJBUWFBKZVCZPZUWLUNZAUWNULZUWBUWSUXDUWIUXIUOZUWBUWADLUWSUXJPUWBCDUWAUXAV
      DABUWADEFHVEUSVFZVGZUWBUXDUWIUXCUNUWBUXDUWIUXIUXKVHZUWHUXCAQUWAUWFQRZUWGU
      XBUWAUWAUWFQEVIUXNUWAVJVLVMVNWBVOUXLUWBUWMAUWNUWBUWFUWNLZPZUWJUWLUXPUWJPZ
      UWLUWFQUXQUXNPUWKQUWAUXNUWKQRUXQUXNUWKQUMQUWFQVPVQVRVSUWBUXDUXOUWJUXNUXMV
      TWAUXQUWFQWCZPZSUWFUFKZWDZUWLUFUXSQUWFWEOZUWFSNOZUYAUFWFUXRUYBUXQUYBUXRUW
      FAWGWOWHVSUXSUWJMSWIOUYCUXPUWJUXRWJSMWKWLUWFMSWMWNSUWFUFWPWQUXSUYAPZISIKZ
      UXTUCZJWRUYEWSXHZJKZUXTUCZWTZUKZWTZUWKUWAUYAUYLUWKRUXSUYAUYLISUYFWTZUWKUY
      FUYIJIUYEUYHUXTXAZXBUYAUYMUXTXCZUMZUWKUYAUXTSXDUYMUYPRSUWFUXTXEISUXTXFVNU
      YAUYOUWFSUWFUXTXGXIXJXKVSUYDUYLISUYKXLZXCZUMZUWAISUYKUYFTLUYKTLUYEUXTXMUY
      FUYJTXNYAZXOUYDUYRUWNLZUXIUYRMNOZBUYRUXEVCZUYSUWALZUYDUYRUWAUJZVUAUYDBUYR
      UWAUYDUXEUYRLZUXEUWALZUYDVUFPZUXEUYKRZVUGISUYDVUFIUYDIXPIUXEUYRIUXEXQIUYQ
      ISUYKXRXSXTYBVUHUYESLZPZVUIPZUXEUYKUWAVUKVUIYCVULABUAUYFUYICJDUYGEFGHVUKV
      UIJVUHVUJJUYDVUFJUYDJXPJUXEUYRJUXEXQZJUYQJISUYKJSXQJUYFUYJJUYFXQJUYGUYIYD
      YEZYFXSXTYBVUJJXPYBJUXEUYKVUMVUNYMYBUWBUWBUXOUWJUXRUYAVUFVUJVUIUXAYGVULUW
      FUWAUYFVULUWFUWAUYDUXOVUFVUJVUIUWBUXOUWJUXRUYAYHVTVAZVULSUWFUYEUXTUYASUWF
      UXTYIZUXSVUFVUJVUISUWFUXTYJUUAZVUHVUJVUIWJYKYLUYGUUBLVULWRUYEUUEYNVULUYHU
      YGLZPZUWFUWAUYIVULUWFUWAUJVURVUOYOVUSSUWFUYHUXTVULVUPVURVUQYOVULUYGSUYHUY
      GSUJVULUYEUUCYNUUFYKYLUUDWAVUHVUFVUIISUUGUYDVUFYCISUYKUXEUYQUYQUUHUYTUUIU
      SUUJYPUUKUYRTLVUAVUEYQUYQISUYKUUPUULUUQUYRUWATUUMYAYRUWBUXIUXOUWJUXRUYAUW
      BUXDUWIUXIUXKUUNUUOUYQMNOZVUBUYDSMNOVUTUURISUYKUUSYAUYQUUTYSISUYKVCVUCUYD
      UYFUYIJIUYNUVAIBSUYKUVBYSVUAUXIPVUBVUCPZVUDVUAUXIVVAVUDUNZUXHVVBAUYRUWNUW
      FUYRRZUXGVVAUWLVUDVVCUWJVUBUXFVUCUWFUYRMNUVCBUWFUYRUXEUVDUVEVVCUWKUYSUWAU
      WFUYRVPUVFUVGVMYTYTUVHUVIUVJUVKUVLYPUVMUVNUVOUWATLUWRUWQYQUAWGAUWAEUVPYAY
      RUVQUVR $.

    $d L s t u x $.  $d O t u $.  $d S t $.  $d T s t u x $.  $d ph t x $.
    dynkin.o $e |- ( ph -> O e. V ) $.
    ${
      ldgenpisys.e $e |- E = |^| { t e. L | T C_ t } $.
      ldgenpisys.1 $e |- ( ph -> T e. P ) $.
      ${
        $d b s x $.  $d A b s t x y z $.  $d E b s t x y $.  $d L z $.
        $d O b t y $.  $d V x $.  $d T y $.  $d ph y $.
        ldgenpisyslem1.1 $e |- ( ph -> A e. E ) $.
        $( Lemma for ~ ldgenpisys .  (Contributed by Thierry Arnoux,
           29-Jun-2020.) $)
        ldgenpisyslem1 $p |- ( ph -> { b e. ~P O | ( A i^i b ) e. E } e. L ) $=
          ( wcel vz cv cin cpw crab c0 cdif wral com cdom wbr wdisj wa cuni w3a
          wi wss ssrab2 cvv wb pwexg rabexg elpwg 4syl mpbiri 0elpw a1i isldsys
          cint simprbi simp1d ad2antlr ex ralrimiva 0ex elintrab sylibr 3eltr4g
          in0 wceq ineq2 eleq1d elrab sylanbrc syl adantr elpwdifcl cun pwldsys
          pwidg cfi ispisys sylib simpld elpwid sseq2 intminss syl2anc syl5eqss
          cfv sseldd ad3antrrr difin difin2 syl5eq syl6eq eqtr3d difeq2 cbvralv
          incom difuncomp simp2d syl6eleq elintrabg mpbid r19.21bi imp adantllr
          simplr simpr rspcdva simpllr simprd vex inex2 mp1i rspa inss1 disjdif
          syl21anc ssdisj mp2an syl6eleqr nfan nfcv breq1 anbi12d unieq imbi12d
          nfv eqtri unelldsys eqeltrd inex1g mpbird sylan2b ad2antrr sspwb mpbi
          jca sseldi elpwunicl cmpt crn ciun uniin2 dfiun3 eqtr3i nfdisj1 elpwi
          ad4antlr sselda eleq2i bitri ralrimi eqid rnmptss sselpwd 1stcrestlem
          sylanb disjin2 disjrnmpt 3syl nfmpt1 nfrn id cbvdisjf disjeq1f simp3d
          disjeq1 syl22anc syl5eqel vuniex 3jca ) AEMUBZUCZHTZMJUDZUEZUWHUDZTZU
          FUWITZJBUBZUGZUWITZBUWIUHZUWMUIUJUKZCUWMCUBZULZUMZUWMUNZUWITZUPZBUWIU
          DZUHZUOUWIITAUWKUWIUWHUQZUWGMUWHURZAJKTZUWHUSTUWIUSTUWKUXFUTPJKVAUWGM
          UWHUSVBUWIUWHUSVCVDVEAUWLUWPUXEAUFUWHTZEUFUCZHTZUWLUXIAJVFVGAUFGDUBZU
          QZDIUEVIZUXJHAUXMUFUXLTZUPZDIUHUFUXNTAUXPDIAUXLITZUMZUXMUXOUXQUXOAUXM
          UXQUXOUWNUXLTZBUXLUHZUWTUXAUXLTZUPZBUXLUDZUHZUXQUXLUWJTUXOUXTUYDUOBCU
          XLIJLOVHVJZVKVLVMVNUXMDUFIVOVPVQEVSQVRUWGUXKMUFUWHUWEUFVTUWFUXJHUWEUF
          EWAWBWCWDAUWOBUWIAUWMUWITZUMUWNUWHTZEUWNUCZHTZUMZUWOUYFAUWMUWHTZEUWMU
          CZHTZUMZUYJUWGUYMMUWMUWHUWEUWMVTUWFUYLHUWEUWMEWAWBWCAUYNUMZUYGUYIUYOJ
          UWMJAJUWHTZUYNAUXHUYPPJKWJWEWFWGUYOUYHUXNHUYOUYHUXNTZUXMUYHUXLTZUPZDI
          UHZUYOUYSDIUYOUXQUMZUXMUYRVUAUXMUMZUYHJJEUGZUYLWHZUGZUXLVUBEJUQZUYHVU
          EVTAVUFUYNUXQUXMAEJAHUWHEAHUXNUWHQAUWHITZGUWHUQZUXNUWHUQAUXHVUGPBCIJK
          LOWIWEAGUWHAGUWJTZGWKWTGUQZAGFTVUIVUJUMRFGJLNWLWMWNWOUXMVUHDUWHIUXLUW
          HGWPWQWRWSSXAWOXBVUFEUYLUGZUYHVUEVUFVUKUWNEUCZUYHVUFVUKEUWMUGVULEUWMX
          CEUWMJXDXEUWNEXJXFEUYLJXKXGWEVUBJUWRUGZUXLTZVUEUXLTCUXLVUDUWRVUDVTVUM
          VUEUXLUWRVUDJXHWBVUBUXTVUNCUXLUHUXQUXTUYOUXMUXQUXOUXTUYDUYEXLZVLUXSVU
          NBCUXLUWMUWRVTUWNVUMUXLUWMUWRJXHWBXIWMVUBBCVUCUYLUXLIJLOUYOUXQUXMXSZV
          UBUXQEUXLTZVUCUXLTZVUPAUXQUXMVUQUYNUXRUXMVUQAUXMVUQUPZDIAEUXNTZVUSDIU
          HZAEHUXNSQXMAEHTZVUTVVAUTSUXMDEIHXNWEXOXPXQXRUXQVUQUMUXSVURBUXLEUWMEV
          TUWNVUCUXLUWMEJXHWBUXQUXTVUQVUOWFUXQVUQXTYAWRVUBUXMUYLUXLTZUPZDIUHZUX
          QUXMVVCVUBUYLUXNTZVVEVUBUYLHUXNVUBUYKUYMAUYNUXQUXMYBYCQXMUYLUSTVVFVVE
          UTVUBUWMEBYDYEUXMDUYLIUSXNYFXOVUPVUAUXMXTVVEUXQUMUXMVVCVVDDIYGXQYJVUC
          UYLUCZUFVTVUBVVGUYLVUCUCZUFVUCUYLXJUYLEUQEVUCUCUFVTVVHUFVTEUWMYHEJYIU
          YLEVUCYKYLUUAVGUUBYAUUCVMVNUYOUYHUSTZUYQUYTUTAVVIUYNAVVBVVISEUWNHUUDW
          EWFUXMDUYHIUSXNWEUUEQYMUUJUUFUWGUYIMUWNUWHUWEUWNVTUWFUYHHUWEUWNEWAWBW
          CVQVNAUXCBUXDAUWMUXDTZUMZUWTUXBVVKUWTUMZUXAUWHTEUXAUCZHTZUXBVVLUWMJKA
          UXHVVJUWTPUUGVVLUXDUWJUWMUXFUXDUWJUQUXGUWIUWHUUHUUIAVVJUWTXSUUKUULVVL
          VVMUXNHVVLUXMVVMUXLTZUPZDIUHVVMUXNTVVLVVPDIVVLUXQUMZUXMVVOVVQUXMUMZVV
          MCUWMEUWRUCZUUMZUUNZUNZUXLCUWMVVSUUOVVMVWBCEUWMUUPCUWMVVSUWRECYDYEZUU
          QUURVVRUXQVWAUYCTZVWAUIUJUKZCVWAUWRULZVWBUXLTZVVLUXQUXMXSZVVRVWAUXLIV
          WHVVRVVSUXLTZCUWMUHVWAUXLUQVVRVWICUWMVVQUXMCVVLUXQCVVKUWTCVVKCYTUWQUW
          SCUWQCYTCUWMUWRUUSYNYNUXQCYTYNUXMCYTYNVVRUWRUWMTZVWIVVRVWJUMZVVSHTZUX
          QUXMVWIVWKUWRUWITZVWLVVRUWMUWIUWRVVJUWMUWIUQAUWTUXQUXMUWMUWIUUTUVAUVB
          VWMUWRUWHTVWLUWGVWLMUWRUWHUWEUWRVTUWFVVSHUWEUWREWAWBWCVJWEVVLUXQUXMVW
          JYBVVQUXMVWJXSVWLUXQUMUXMVWIVWLUXMVWIUPZDIUHZUXQVWNVWLVVSUXNTVWOHUXNV
          VSQUVCUXMDVVSIVWCVPUVDVWNDIYGUVJXQYJVMUVECUWMVVSUXLVVTVVTUVFUVGWEUVHV
          VRUWQVWEVVRUWQUWSVVKUWTUXQUXMYBZWNCUWMVVSUVIWEVVRUAVWAUAUBZULZVWFVVRU
          WSCUWMVVSULVWRVVRUWQUWSVWPYCCEUWMUWRUVKCUAUWMVVSUVLUVMCUAVWAUWRVWQCVV
          TCUWMVVSUVNUVOZUAUWRYOCVWQYOZUWRVWQVTUVPUVQVQUXQVWDUMZVWEVWFUMZVWGVXA
          VWQUIUJUKZCVWQUWRULZUMZVWQUNZUXLTZUPZVXBVWGUPUAUYCVWAVWQVWAVTZVXEVXBV
          XGVWGVXIVXCVWEVXDVWFVWQVWAUIUJYPCVWQVWAUWRVWTVWSUVRYQVXIVXFVWBUXLVWQV
          WAYRWBYSUXQVXHUAUYCUHZVWDUXQUYDVXJUXQUXOUXTUYDUYEUVSUYBVXHBUAUYCUWMVW
          QVTZUWTVXEUYAVXGVXKUWQVXCUWSVXDUWMVWQUIUJYPCUWMVWQUWRUVTYQVXKUXAVXFUX
          LUWMVWQYRWBYSXIWMWFUXQVWDXTYAXQUWAUWBVMVNUXMDVVMIUXAEBUWCYEVPVQQYMUWG
          VVNMUXAUWHUWEUXAVTUWFVVMHUWEUXAEWAWBWCWDVMVNUWDBCUWIIJLOVHWD $.

        ldgenpisyslem2.1 $e |- ( ph -> T C_ { b e. ~P O | ( A i^i b ) e. E } )
          $.
        $( Lemma for ~ ldgenpisys .  (Contributed by Thierry Arnoux,
           18-Jul-2020.) $)
        ldgenpisyslem2 $p |- ( ph -> E C_ { b e. ~P O | ( A i^i b ) e. E } ) $=
          ( cv wss crab cint cin wcel cpw ldgenpisyslem1 jca sseq2 elrab sylibr
          wa intss1 syl syl5eqss ) AHGDUAZUBZDIUCZUDZEMUAUEHUFMJUGUCZQAVAUSUFZU
          TVAUBAVAIUFZGVAUBZUMVBAVCVDABCDEFGHIJKLMNOPQRSUHTUIURVDDVAIUQVAGUJUKU
          LVAUSUNUOUP $.
      $}

      ${
        $d A b s t x y $.  $d E b s t x y $.  $d L y $.  $d O b y $.
        $d T b s t x y $.  $d V x $.  $d ph b y $.
        ldgenpisyslem3.1 $e |- ( ph -> A e. T ) $.
        $( Lemma for ~ ldgenpisys .  (Contributed by Thierry Arnoux,
           18-Jul-2020.) $)
        ldgenpisyslem3 $p |- ( ph -> E C_ { b e. ~P O | ( A i^i b ) e. E } ) $=
          ( wcel cv wss crab cint wi wral id rgenw ssintrab sseqtr4i sseldi cpw
          mpbir cin cfi cfv ispisys sylib simpld elpwi syl adantr simpr syl3anc
          wa inelpisys ralrimiva jca ssrab sylibr ldgenpisyslem2 ) ABCDEFGHIJKL
          MNOPQRAGHEGGDUAUBZDIUCUDZHGVMUBVLVLUEZDIUFVNDIVLUGUHVLDGIUIUMQUJZSUKA
          GJULZUBZEMUAZUNZHTZMGUFZVEGVTMVPUCUBAVQWAAGVPULTZVQAWBGUOUPGUBZAGFTZW
          BWCVERFGJLNUQURUSGVPUTVAAVTMGAVRGTZVEZGHVSVOWFWDEGTZWEVSGTAWDWERVBAWG
          WESVBAWEVCEVRFGJLNVFVDUKVGVHVTMVPGVIVJVK $.
      $}

      $d E a b c s t x y $.  $d L b y $.  $d O b c y $.  $d T b c y $.
      $d V x $.  $d ph a b c y $.
      $( The lambda system ` E ` generated by a pi-system ` T ` is also a
         pi-system.  (Contributed by Thierry Arnoux, 18-Jun-2020.) $)
      ldgenpisys $p |- ( ph -> E e. P ) $=
        ( vc wcel wa cv va vb cpw cfi cfv wss cdif wral com cdom wbr wdisj cuni
        c0 w3a crab ssrab2 cint syl6eleq sseldi elpwid ldsysgenld syl5eqel wceq
        wi cin simprr simprl adantr simpr sselda ad2antrr ldgenpisyslem3 simplr
        incom sseldd ineq2 eleq1d elrab sylib simprd syl5eqelr jca sylibr ssrdv
        ex ldgenpisyslem2 syldan ssrab rspcv ralrimivva inficl syl mpbid eqimss
        sylc wb ispisys ) AGIUCZUCZRZGUDUEZGUFZSGERAXAXCAUNKTZRIBTZUGXDRBXDUHXE
        UIUJUKCXECTULSXEUMXDRVEBXDUCUHUOZKWTUPZWTGXFKWTUQAGHXGAGFDTUFDHUPURHOAB
        CDFHIJKMNAFWSAXDUDUEXDUFZKWTUPZWTFXHKWTUQAFEXIPLUSUTVAZVBVCZMUSUTAXBGVD
        ZXCAUATZUBTZVFZGRZUBGUHUAGUHZXLAXPUAUBGGAXMGRZXNGRZSZSZXSXMQTZVFZGRZQGU
        HZXPAXRXSVGYAGWSUFZYEYAGYDQWSUPZUFZYFYESAXTXRYHAXRXSVHAXRSZBCDXMEFGHIJK
        QLMAIJRZXRNVIOAFERZXRPVIAXRVJYIUBFYGYIXNFRZXNYGRZYIYLSZXNWSRZXPSYMYNYOX
        PYIFWSXNAFWSUFXRXJVIVKYNXOXNXMVFZGXNXMVOYNXMWSRZYPGRZYNXMXNYBVFZGRZQWSU
        PZRYQYRSYNGUUAXMYNBCDXNEFGHIJKQLMAYJXRYLNVLOAYKXRYLPVLYIYLVJVMAXRYLVNVP
        YTYRQXMWSYBXMVDYSYPGYBXMXNVQVRVSVTWAWBWCYDXPQXNWSYBXNVDYCXOGYBXNXMVQVRZ
        VSWDWFWEWGWHYDQWSGWIVTWAYDXPQXNGUUBWJWPWKAGHRXQXLWQXKUAUBGHWLWMWNXBGWOW
        MWCEGIKLWRWD $.
    $}

    $d L s u v $.  $d O v y $.  $d S v $.  $d T v y $.  $d V x $.  $d ph v y $.
    $d t v x $.
    dynkin.1 $e |- ( ph -> S e. L ) $.
    dynkin.2 $e |- ( ph -> T e. P ) $.
    dynkin.3 $e |- ( ph -> T C_ S ) $.
    $( Dynkin's lambda-pi theorem: if a lambda-system contains a pi-system, it
       also contains the sigma-algebra generated by that pi-system.
       (Contributed by Thierry Arnoux, 16-Jun-2020.) $)
    dynkin $p |- ( ph -> |^| { u e. ( sigAlgebra ` O ) | T C_ u } C_ S ) $=
      ( vv wss wcel vt cv csiga cfv crab cint cin cbvrabv inteqi ldgenpisys cpw
      sseq2 cfn c0 csn cdif wral ispisys2 simplbi elpwid ldsysgenld sigapildsys
      syl elind syl6eleqr ssintub a1i intminss syl2anc sstrd ) AGDUBZSZDIUCUDZU
      EUFZGRUBZSZRHUEZUFZFAVRVMTGVRSZVNVRSAVREHUGVMAEHVRABCUAEGVRHIJKLMNVQGUAUB
      ZSZUAHUEVPWARUAHVOVTGULUHUIPUJABCRGHIJKMNAGIUKZAGETZGWBUKTZPWCWDBUBUFGTBG
      UKUMUGUNUOUPUQBEGIKLURUSVCUTVAVDBCEHIKLMVBVEVSARGHVFVGVLVSDVRVMVKVRGULVHV
      IAFHTGFSZVRFSOQVPWERFHVOFGULVHVIVJ $.
  $}

  ${
    $d A u v $.  $d B u v $.  $d O s $.  $d S s u v x y $.
    isros.1 $e |- Q = { s e. ~P ~P O | ( (/) e. s /\ A. x e. s A. y e. s
      ( ( x u. y ) e. s /\ ( x \ y ) e. s ) ) } $.
    $( The property of being a rings of sets, i.e. containing the empty set,
       and closed under finite union and set complement.  (Contributed by
       Thierry Arnoux, 18-Jul-2020.) $)
    isros $p |- ( S e. Q <-> ( S e. ~P ~P O /\ (/) e. S /\ A. u e. S A. v e. S
      ( ( u u. v ) e. S /\ ( u \ v ) e. S ) ) ) $=
      ( wcel c0 cv cun cdif wa wral wceq eleq2 anbi12d eleq1d raleqbi1dv elrab2
      cpw w3a 3anass uneq1 difeq1 uneq2 difeq2 cbvral2v 3anbi3i 3bitr2i ) FEJFG
      UCUCZJZKFJZALZBLZMZFJZUPUQNZFJZOZBFPZAFPZOZOUNUOVDUDUNUODLZCLZMZFJZVFVGNZ
      FJZOZCFPDFPZUDKHLZJZURVNJZUTVNJZOZBVNPZAVNPZOVEHFUMEVNFQZVOUOVTVDVNFKRVSV
      CAVNFVRVBBVNFWAVPUSVQVAVNFURRVNFUTRSUAUASIUBUNUOVDUEVDVMUNUOVBVLVFUQMZFJZ
      VFUQNZFJZOABDCFFUPVFQZUSWCVAWEWFURWBFUPVFUQUFTWFUTWDFUPVFUQUGTSUQVGQZWCVI
      WEVKWGWBVHFUQVGVFUHTWGWDVJFUQVGVFUITSUJUKUL $.

    $( A ring of sets is a collection of subsets of ` O ` .  (Contributed by
       Thierry Arnoux, 18-Jul-2020.) $)
    rossspw $p |- ( S e. Q -> S C_ ~P O ) $=
      ( vu vv wcel cpw c0 cv cun cdif wa wral isros simp1bi elpwid ) DCJZDEKZUA
      DUBKJLDJHMZIMZNDJUCUDODJPIDQHDQABIHCDEFGRST $.

    $( A ring of sets contains the empty set.  (Contributed by Thierry Arnoux,
       18-Jul-2020.) $)
    0elros $p |- ( S e. Q -> (/) e. S ) $=
      ( vu vv wcel cpw c0 cv cun cdif wa wral isros simp2bi ) DCJDEKKJLDJHMZIMZ
      NDJTUAODJPIDQHDQABIHCDEFGRS $.

    $( A ring of sets is closed under union.  (Contributed by Thierry Arnoux,
       18-Jul-2020.) $)
    unelros $p |- ( ( S e. Q /\ A e. S /\ B e. S ) -> ( A u. B ) e. S ) $=
      ( vu vv wcel cun cdif cv wa wral cpw wceq eleq1d w3a simp2 simp3 c0 isros
      simp3bi 3ad2ant1 uneq1 difeq1 anbi12d difeq2 rspc2va syl21anc simpld
      uneq2 ) FELZCFLZDFLZUAZCDMZFLZCDNZFLZUSUQURJOZKOZMZFLZVDVENZFLZPZKFQJFQZV
      AVCPZUPUQURUBUPUQURUCUPUQVKURUPFGRRLUDFLVKABKJEFGHIUEUFUGVJVLCVEMZFLZCVEN
      ZFLZPJKCDFFVDCSZVGVNVIVPVQVFVMFVDCVEUHTVQVHVOFVDCVEUITUJVEDSZVNVAVPVCVRVM
      UTFVEDCUOTVRVOVBFVEDCUKTUJULUMUN $.

    $( A ring of sets is closed under set complement.  (Contributed by Thierry
       Arnoux, 18-Jul-2020.) $)
    difelros $p |- ( ( S e. Q /\ A e. S /\ B e. S ) -> ( A \ B ) e. S ) $=
      ( vu vv wcel cun cdif cv wa wral cpw wceq eleq1d w3a simp2 simp3 c0 isros
      simp3bi 3ad2ant1 uneq1 difeq1 anbi12d difeq2 rspc2va syl21anc simprd
      uneq2 ) FELZCFLZDFLZUAZCDMZFLZCDNZFLZUSUQURJOZKOZMZFLZVDVENZFLZPZKFQJFQZV
      AVCPZUPUQURUBUPUQURUCUPUQVKURUPFGRRLUDFLVKABKJEFGHIUEUFUGVJVLCVEMZFLZCVEN
      ZFLZPJKCDFFVDCSZVGVNVIVPVQVFVMFVDCVEUHTVQVHVOFVDCVEUITUJVEDSZVNVAVPVCVRVM
      UTFVEDCUOTVRVOVBFVEDCUKTUJULUMUN $.

    $( A ring of sets is closed under intersection.  (Contributed by Thierry
       Arnoux, 19-Jul-2020.) $)
    inelros $p |- ( ( S e. Q /\ A e. S /\ B e. S ) -> ( A i^i B ) e. S ) $=
      ( wcel w3a cin cdif dfin4 difelros syld3an3 syl5eqel ) FEJZCFJZDFJZKCDLCC
      DMZMZFCDNRSTUAFJUBFJABCDEFGHIOABCUAEFGHIOPQ $.

    ${
      $d B i n $.  $d N i k n $.  $d S i k n $.  $d ph i k n $.
      fiunelros.1 $e |- ( ph -> S e. Q ) $.
      fiunelros.2 $e |- ( ph -> N e. NN ) $.
      fiunelros.3 $e |- ( ( ph /\ k e. ( 1 ..^ N ) ) -> B e. S ) $.
      $( A ring of sets is closed under finite union.  (Contributed by Thierry
         Arnoux, 19-Jul-2020.) $)
      fiunelros $p |- ( ph -> U_ k e. ( 1 ..^ N ) B e. S ) $=
        ( wcel c1 cfzo ciun cle wceq vn vi cn co wa wbr simpr nnred leidd cv wi
        caddc breq1 oveq2 iuneq1d eleq1d imbi12d fzo0 iuneq1 ax-mp eqtri 0elros
        c0 0iun syl syl5eqel a1d csn cun simpllr cuz cfv fzosplitsn nnuz eleq2s
        iunxun syl6eq ad3antrrr clt wb nnltp1le syl2anc mpbird ltled simplr mpd
        csb nfcsb1v csbeq1a iunxsngf simplll syl3anbrc nfv nfcv nfel nfim eleq1
        elfzo1 anbi2d chvar eqeltrd unelros syl3anc ex nnindd mpdan ) AHUCOZGPH
        QUDZDRZFOZMAXGUEZHHSUFZXJXKHXKHAXGUGUHUIAUAUJZHSUFZGPXMQUDZDRZFOZUKPHSU
        FZGPPQUDZDRZFOZUKUBUJZHSUFZGPYBQUDZDRZFOZUKZYBPULUDZHSUFZGPYHQUDZDRZFOZ
        UKXLXJUKUAUBHXMPTZXNXRXQYAXMPHSUMYMXPXTFYMGXOXSDXMPPQUNUOUPUQXMYBTZXNYC
        XQYFXMYBHSUMYNXPYEFYNGXOYDDXMYBPQUNUOUPUQXMYHTZXNYIXQYLXMYHHSUMYOXPYKFY
        OGXOYJDXMYHPQUNUOUPUQXMHTZXNXLXQXJXMHHSUMYPXPXIFYPGXOXHDXMHPQUNUOUPUQAY
        AXRAXTVCFXTGVCDRZVCXSVCTXTYQTPURGXSVCDUSUTGDVDVAAFEOZVCFOLBCEFIJKVBVEVF
        VGAYBUCOZUEZYGUEZYIYLUUAYIUEZYKYEGYBVHZDRZVIZFUUBYKGYDUUCVIZDRZUUEUUBYS
        YKUUGTAYSYGYIVJZYSGYJUUFDYJUUFTYBPVKVLUCPYBVMVNVOUOVEGYDUUCDVPVQUUBYRYF
        UUDFOUUEFOAYRYSYGYILVRUUBYCYFUUBYBHUUBYBUUHUHUUBHAXGYSYGYIMVRZUHUUBYBHV
        SUFZYIUUAYIUGUUBYSXGUUJYIVTUUHUUIYBHWAWBWCZWDYTYGYIWEWFUUBUUDGYBDWGZFUU
        BYSUUDUULTUUHGYBDUULUCGYBDWHZGYBDWIZWJVEUUBAYBXHOZUULFOZAYSYGYIWKUUBYSX
        GUUJUUOUUHUUIUUKHYBWRWLAGUJZXHOZUEZDFOZUKAUUOUEZUUPUKGUBUVAUUPGUVAGWMGU
        ULFUUMGFWNWOWPUUQYBTZUUSUVAUUTUUPUVBUURUUOAUUQYBXHWQWSUVBDUULFUUNUPUQNW
        TWBXABCYEUUDEFIJKXBXCXAXDXEWFXF $.
    $}
  $}

  ${
    $d s t x y $.  $d O s $.  $d S s x y z $.  $d A x y z $.  $d B y z $.
    issros.1 $e |- N = { s e. ~P ~P O | ( (/) e. s /\ A. x e. s A. y e. s
      ( ( x i^i y ) e. s /\ E. z e. ~P s ( z e. Fin /\ Disj_ t e. z t
      /\ ( x \ y ) = U. z ) ) ) } $.
    $( The property of being a semi-rings of sets, i.e. collections of sets
       containing the empty set, closed under finite intersection, and where
       complements can be written as finite disjoint unions.  (Contributed by
       Thierry Arnoux, 18-Jul-2020.) $)
    issros $p |- ( S e. N <-> ( S e. ~P ~P O /\ (/) e. S /\ A. x e. S A. y e. S
      ( ( x i^i y ) e. S /\ E. z e. ~P S ( z e. Fin /\ Disj_ t e. z t
      /\ ( x \ y ) = U. z ) ) ) ) $=
      ( wcel cpw c0 cv wceq w3a wrex wa wral eleq2 anbi12d wdisj cdif cuni pweq
      cin cfn rexeqdv raleqbi1dv elrab2 3anass bitr4i ) EFJEGKKZJZLEJZAMZBMZUEZ
      EJZCMZUFJDUSDMUAUOUPUBUSUCNOZCEKZPZQZBERZAERZQZQUMUNVEOLHMZJZUQVGJZUTCVGK
      ZPZQZBVGRZAVGRZQVFHEULFVGENZVHUNVNVEVGELSVMVDAVGEVLVCBVGEVOVIURVKVBVGEUQS
      VOUTCVJVAVGEUDUGTUHUHTIUIUMUNVEUJUK $.

    $( A semi-ring of sets is a collection of subsets of ` O ` .  (Contributed
       by Thierry Arnoux, 18-Jul-2020.) $)
    srossspw $p |- ( S e. N -> S C_ ~P O ) $=
      ( wcel cpw c0 cv cin cfn wdisj cdif cuni wceq wral wrex wa issros simp1bi
      w3a elpwid ) EFJZEGKZUGEUHKJLEJAMZBMZNEJCMZOJDUKDMPUIUJQUKRSUECEKUAUBBETA
      ETABCDEFGHIUCUDUF $.

    $( A semi-ring of sets contains the empty set.  (Contributed by Thierry
       Arnoux, 18-Jul-2020.) $)
    0elsros $p |- ( S e. N -> (/) e. S ) $=
      ( wcel cpw c0 cv cin cfn wdisj cdif cuni wceq wral wrex wa issros simp2bi
      w3a ) EFJEGKKJLEJAMZBMZNEJCMZOJDUHDMPUFUGQUHRSUECEKUAUBBETAETABCDEFGHIUCU
      D $.

    $( A semi-ring of sets is closed under union.  (Contributed by Thierry
       Arnoux, 18-Jul-2020.) $)
    inelsros $p |- ( ( S e. N /\ A e. S /\ B e. S ) -> ( A i^i B ) e. S ) $=
      ( wcel w3a cin cv cdif wceq cpw wrex wa cfn wdisj cuni simp2 simp3 issros
      wral c0 simp3bi 3ad2ant1 ineq1 eleq1d difeq1 eqeq1d 3anbi3d rexbidv ineq2
      anbi12d difeq2 rspc2va syl21anc simpld ) GHLZEGLZFGLZMZEFNZGLZCOZUALZDVID
      OUBZEFPZVIUCZQZMZCGRZSZVFVDVEAOZBOZNZGLZVJVKVRVSPZVMQZMZCVPSZTZBGUGAGUGZV
      HVQTZVCVDVEUDVCVDVEUEVCVDWGVEVCGIRRLUHGLWGABCDGHIJKUFUIUJWFWHEVSNZGLZVJVK
      EVSPZVMQZMZCVPSZTABEFGGVREQZWAWJWEWNWOVTWIGVREVSUKULWOWDWMCVPWOWCWLVJVKWO
      WBWKVMVREVSUMUNUOUPURVSFQZWJVHWNVQWPWIVGGVSFEUQULWPWMVOCVPWPWLVNVJVKWPWKV
      LVMVSFEUSUNUOUPURUTVAVB $.

    $( In semiring of sets, complements can be written as finite disjoint
       unions.  (Contributed by Thierry Arnoux, 18-Jul-2020.) $)
    diffiunisros $p |- ( ( S e. N /\ A e. S /\ B e. S )
      -> E. z e. ~P S ( z e. Fin /\ Disj_ t e. z t /\ ( A \ B ) = U. z ) ) $=
      ( wcel w3a cin cv cdif wceq cpw wrex wa cfn wdisj cuni simp2 simp3 issros
      wral c0 simp3bi 3ad2ant1 ineq1 eleq1d difeq1 eqeq1d 3anbi3d rexbidv ineq2
      anbi12d difeq2 rspc2va syl21anc simprd ) GHLZEGLZFGLZMZEFNZGLZCOZUALZDVID
      OUBZEFPZVIUCZQZMZCGRZSZVFVDVEAOZBOZNZGLZVJVKVRVSPZVMQZMZCVPSZTZBGUGAGUGZV
      HVQTZVCVDVEUDVCVDVEUEVCVDWGVEVCGIRRLUHGLWGABCDGHIJKUFUIUJWFWHEVSNZGLZVJVK
      EVSPZVMQZMZCVPSZTABEFGGVREQZWAWJWEWNWOVTWIGVREVSUKULWOWDWMCVPWOWCWLVJVKWO
      WBWKVMVREVSUMUNUOUPURVSFQZWJVHWNVQWPWIVGGVSFEUQULWPWMVOCVPWPWLVNVJVKWPWKV
      LVMVSFEUSUNUOUPURUTVAVB $.
  $}

  ${
    $d O s $.  $d Q x y $.  $d S s u v x y z $.  $d s t x y z $.
    rossros.q $e |- Q = { s e. ~P ~P O | ( (/) e. s /\ A. x e. s A. y e. s
      ( ( x u. y ) e. s /\ ( x \ y ) e. s ) ) } $.
    rossros.n $e |- N = { s e. ~P ~P O | ( (/) e. s /\ A. x e. s A. y e. s
      ( ( x i^i y ) e. s /\ E. z e. ~P s ( z e. Fin /\ Disj_ t e. z t
      /\ ( x \ y ) = U. z ) ) ) } $.
    $( Rings of sets are semi-rings of sets.  (Contributed by Thierry Arnoux,
       18-Jul-2020.) $)
    rossros $p |- ( S e. Q -> S e. N ) $=
      ( vu vv wcel cpw cv wceq wa wral eleq1d c0 cin cfn cdif cuni w3a wrex wss
      wdisj rossspw elpwg mpbird 0elros cun crab wb uneq1 difeq1 anbi12d difeq2
      uneq2 cbvral2v anbi2i a1i rabbiia eqtr4i inelros 3expb csn difelros snssd
      snex elpw sylibr snfi disjxsn unisng eqcomd eleq1 disjeq1 unieq 3anbi123d
      syl eqeq2d rspcev syl13anc jca ralrimivva 3jca issros ) FENZFHOZOZNZUAFNZ
      APZBPZUBFNZCPZUCNZDWSDPZUIZWPWQUDZWSUEZQZUFZCFOZUGZRZBFSAFSZUFFGNWKWNWOXJ
      WKWNFWLUHABEFHIJUJFWLEUKULABEFHIJUMWKXIABFFWKWPFNZWQFNZRRZWRXHWKXKXLWRLMW
      PWQEFHIEUAIPZNZWPWQUNZXNNZXCXNNZRZBXNSAXNSZRZIWMUOXOLPZMPZUNZXNNZYBYCUDZX
      NNZRZMXNSLXNSZRZIWMUOJYJYAIWMYJYAUPXNWMNYIXTXOYHXSWPYCUNZXNNZWPYCUDZXNNZR
      LMABXNXNYBWPQZYEYLYGYNYOYDYKXNYBWPYCUQTYOYFYMXNYBWPYCURTUSYCWQQZYLXQYNXRY
      PYKXPXNYCWQWPVATYPYMXCXNYCWQWPUTTUSVBVCVDVEVFZVGVHXMXCVIZXGNZYRUCNZDYRXAU
      IZXCYRUEZQZXHXMYRFUHYSXMXCFWKXKXLXCFNZLMWPWQEFHIYQVJVHZVKYRFXCVLVMVNYTXMX
      CVOVDUUAXMDXCXAVPVDXMUUBXCXMUUDUUBXCQUUEXCFVQWCVRXFYTUUAUUCUFCYRXGWSYRQZW
      TYTXBUUAXEUUCWSYRUCVSDWSYRXAVTUUFXDUUBXCWSYRWAWDWBWEWFWGWHWIABCDFGHIKWJVN
      $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The Borel algebra on the real numbers
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c BrSiga $.
  $( The Borel Algebra on real numbers, usually a gothic B $)
  cbrsiga $a class BrSiga $. $( Extend class notation with the Borel Algebra $)

  $( A Borel Algebra is defined as a sigma-algebra generated by a topology.
     'The' Borel sigma-algebra here refers to the sigma-algebra generated by
     the topology of open intervals on real numbers.  The Borel algebra of a
     given topology ` J ` is the sigma-algebra generated by ` J ` ,
     ` ( sigaGen `` J ) ` , so there is no need to introduce a special constant
     function for Borel sigma-algebra.  (Contributed by Thierry Arnoux,
     27-Dec-2016.) $)
  df-brsiga $a |- BrSiga = ( sigaGen ` ( topGen ` ran (,) ) ) $.

  ${
    $d s x $.
    $( The Borel Algebra on real numbers is a Borel sigma-algebra.
       (Contributed by Thierry Arnoux, 27-Dec-2016.) $)
    brsiga $p |- BrSiga e. ( sigaGen " Top ) $=
      ( vx vs cbrsiga cioo crn ctg csigagen ctop cima df-brsiga wcel retop wfun
      cfv cvv cv cuni csiga c0 mp2b cdm wi wss crab cint df-sigagen sigagensiga
      funmpt2 fvex elrnsiga 0elsiga elfvdm funfvima mp2an ax-mp eqeltri ) CDEZF
      NZGNZGHIZJURHKZUSUTKZLGMURGUAKZVAVBUBAOAPZBPUCBVDQRNUDUEGABUFUHUSREQKZSUS
      KVCUROKUSURQZRNKVEUQFUIUROUGUSVFUJTUSUKSURGULTHURGUMUNUOUP $.
  $}

  $( The Borel Algebra is a sigma-algebra on the real numbers.  (Contributed by
     Thierry Arnoux, 27-Dec-2016.) $)
  brsigarn $p |- BrSiga e. ( sigAlgebra ` RR ) $=
    ( cioo crn ctg cfv csigagen cuni csiga cbrsiga cr cvv wcel fvex sigagensiga
    ax-mp df-brsiga uniretop fveq2i 3eltr4i ) ABZCDZEDZTFZGDZHIGDTJKUAUCKSCLTJM
    NOIUBGPQR $.

  $( The Borel Algebra is a set of subsets of the real numbers.  (Contributed
     by Thierry Arnoux, 19-Jan-2017.) $)
  brsigasspwrn $p |- BrSiga C_ ~P RR $=
    ( cbrsiga cr csiga cfv wcel cpw wss brsigarn sigasspw ax-mp ) ABCDEABFGHBAI
    J $.

  $( The union of the Borel Algebra is the set of real numbers.  (Contributed
     by Thierry Arnoux, 21-Jan-2017.) $)
  unibrsiga $p |- U. BrSiga = RR $=
    ( cioo crn ctg cfv csigagen cuni cbrsiga cr ctop wcel retop unisg df-brsiga
    wceq ax-mp unieqi uniretop 3eqtr4i ) ABCDZEDZFZSFZGFHSIJUAUBNKSILOGTMPQR $.

  ${
    $d x J $.
    $( A Borel Algebra contains all closed sets of its base topology.
       (Contributed by Thierry Arnoux, 27-Mar-2017.) $)
    cldssbrsiga $p |- ( J e. Top -> ( Clsd ` J ) C_ ( sigaGen ` J ) ) $=
      ( vx ctop wcel ccld cfv csigagen cv cuni cdif wss wceq cldss adantl dfss4
      wa eqid csiga adantr cvv sylib topopn difopn sylan crn sgsiga sigagensiga
      id elex baselsiga 3syl elsigagen difelsiga syl3anc syldan eqeltrrd ssrdv
      ex ) ACDZBAEFZAGFZUSBHZUTDZVBVADUSVCPZAIZVEVBJZJZVBVAVDVBVEKZVGVBLVCVHUSV
      BAVEVEQZMNVBVEOUAUSVCVFADZVGVADZUSVEADVCVJAVEVIUBVEVBAVEVIUCUDUSVJPVARUEI
      DZVEVADZVFVADVKUSVLVJUSACUSUHUFSUSVMVJUSATDVAVERFDVMACUIATUGVEVAUJUKSAVFC
      ULVEVFVAUMUNUOUPURUQ $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Product Sigma-Algebra
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c sX $.

  $( Extend class notation with the product sigma-algebra operation. $)
  csx $a class sX $. $( Circled times operator $)

  ${
    $d s t x y $.
    $( Define the product sigma-algebra operation, analogous to ~ df-tx .
       (Contributed by Thierry Arnoux, 1-Jun-2017.) $)
    df-sx $a |- sX = ( s e. _V , t e. _V |->
             ( sigaGen ` ran ( x e. s , y e. t |-> ( x X. y ) ) ) ) $.
  $}

  ${
    $d s t x y S $.  $d s t x y T $.
    sxval.1 $e |- A = ran ( x e. S , y e. T |-> ( x X. y ) ) $.
    $( Value of the product sigma-algebra operation.  (Contributed by Thierry
       Arnoux, 1-Jun-2017.) $)
    sxval $p |- ( ( S e. V /\ T e. W ) -> ( S sX T ) = ( sigaGen ` A ) ) $=
      ( vs vt wcel csx cv cmpt2 crn csigagen cfv cvv wceq eqidd cxp mpt2eq123dv
      wa co elex id rneqd fveq2d df-sx fvex ovmpt2 syl2an fveq2i syl6eqr ) DFKZ
      EGKZUCDELUDZABDEAMBMUAZNZOZPQZCPQUODRKERKUQVASUPDFUEEGUEIJDERRABIMZJMZURN
      ZOZPQVALABDVCURNZOZPQVBDSZVEVGPVHVDVFVHABVBVCURDVCURVHUFVHVCTVHURTUBUGUHV
      CESZVGUTPVIVFUSVIABDVCURDEURVIDTVIUFVIURTUBUGUHABJIUIUTPUJUKULCUTPHUMUN
      $.
  $}

  ${
    $d x y S $.  $d x y T $.
    $( A product sigma-algebra is a sigma-algebra.  (Contributed by Thierry
       Arnoux, 1-Jun-2017.) $)
    sxsiga $p |- ( ( S e. U. ran sigAlgebra /\ T e. U. ran sigAlgebra ) ->
      ( S sX T ) e. U. ran sigAlgebra ) $=
      ( vx vy csiga crn cuni wcel wa csx co cv cxp cmpt2 cfv csigagen sxval cvv
      eqid syl txbasex sigagensiga eqeltrd elrnsiga ) AEFGZHBUEHIZABJKZCDABCLDL
      MNFZGZEOZHUGUEHUFUGUHPOZUJCDUHABUEUEUHSZQUFUHRHUKUJHCDUHABUEUEULUAUHRUBTU
      CUGUIUDT $.

    $( A product sigma-algebra is a sigma-algebra on the product of the bases.
       (Contributed by Thierry Arnoux, 1-Jun-2017.) $)
    sxsigon $p |- ( ( S e. U. ran sigAlgebra /\ T e. U. ran sigAlgebra ) ->
      ( S sX T ) e. ( sigAlgebra ` ( U. S X. U. T ) ) ) $=
      ( vx vy csiga crn cuni wcel wa csx co cxp wceq sxsiga cmpt2 csigagen eqid
      cfv cv cvv sxval unieqd mpt2exga rnexg unisg eqtrd txuni2 syl6reqr issgon
      3syl sylanbrc ) AEFGZHBULHIZABJKZULHAGZBGZLZUNGZMUNUQERHABNUMURCDABCSDSLZ
      OZFZGZUQUMURVAPRZGZVBUMUNVCCDVAABULULVAQZUAUBUMUTTHVATHVDVBMCDABUSULULUCU
      TTUDVATUEUJUFCDVAABUOUPVEUOQUPQUGUHUNUQUIUK $.
  $}

  $( The base set of a product sigma-algebra.  (Contributed by Thierry Arnoux,
     1-Jun-2017.) $)
  sxuni $p |- ( ( S e. U. ran sigAlgebra /\ T e. U. ran sigAlgebra ) ->
    ( U. S X. U. T ) = U. ( S sX T ) ) $=
    ( csiga crn cuni wcel wa csx co cxp cfv wceq sxsigon issgon simprbi syl ) A
    CDEZFBQFGABHIZAEBEJZCKFZSRELZABMTRQFUARSNOP $.

  ${
    $d x y A $.  $d x y B $.  $d x y S $.  $d x y T $.
    $( The cartesian product of two open sets is an element of the product
       sigma-algebra.  (Contributed by Thierry Arnoux, 3-Jun-2017.) $)
    elsx $p |- ( ( ( S e. V /\ T e. W ) /\ ( A e. S /\ B e. T ) )
                                               -> ( A X. B ) e. ( S sX T ) ) $=
      ( vx vy wcel wa cxp cv cmpt2 cvv eqid syl adantr wceq wrex eqeq2d crn cfv
      csigagen csx co wss txbasex sssigagen xpeq1 xpeq2 rspc2ev mp3an3 wb xpexg
      elrnmpt2g mpbird adantl sseldd sxval eleqtrrd ) CEIDFIJZACIZBDIZJZJZABKZG
      HCDGLZHLZKZMZUAZUCUBZCDUDUEZVEVKVLVFVAVKVLUFZVDVAVKNIVNGHVKCDEFVKOZUGVKNU
      HPQVDVFVKIZVAVDVPVFVIRZHDSGCSZVBVCVFVFRZVRVFOVQVSVFAVHKZRGHABCDVGARVIVTVF
      VGAVHUITVHBRVTVFVFVHBAUJTUKULVDVFNIVPVRUMABCDUNGHCDVIVFVJNVJOUOPUPUQURVAV
      MVLRVDGHVKCDEFVOUSQUT $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Measures
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c measures $. $( The class of the measures on a sigma-algebra $)

  $( Extend class notation to include the class of measures. $)
  cmeas $a class measures $.

  ${
    $d m x y $.  $d m s x S $.  $d s y $.
    $( Define a measure as a nonnegative countably additive function over a
       sigma-algebra onto ` ( 0 [,] +oo ) ` .  (Contributed by Thierry Arnoux,
       10-Sep-2016.) $)
    df-meas $a |- measures = ( s e. U. ran sigAlgebra |->
      { m | ( m : s --> ( 0 [,] +oo ) /\ ( m ` (/) ) = 0
      /\ A. x e. ~P s ( ( x ~<_ _om /\ Disj_ y e. x y )
      -> ( m ` U. x ) = sum* y e. x ( m ` y ) ) ) } ) $.

    $( The base set of a measure is a sigma-algebra.  (Contributed by Thierry
       Arnoux, 25-Dec-2016.) $)
    measbase $p |- ( M e. ( measures ` S ) -> S e. U. ran sigAlgebra ) $=
      ( vs vm vx vy cmeas cfv wcel cdm csiga crn cuni cv cc0 cpnf cicc wceq cab
      cvv elfvdm co wf c0 com cdom wbr wdisj wa cesum wi cpw wral w3a vex mapex
      ovex mp2an simp1 ss2abi ssexi df-meas dmmpti syl6eleq ) BAGHIAGJKLMZBAGUA
      CVECNZOPQUBZDNZUCZUDVHHORZENZUEUFUGFVKFNZUHUIVKMVHHVKVLVHHFUJRUKEVFULUMZU
      NZDSZGVOVIDSZVFTIVGTIVPTICUOOPQUQVFVGTTDUPURVNVIDVIVJVMUSUTVAEFDCVBVCVD
      $.

    $( The value of the ` measures ` function applied on a sigma-algebra.
       (Contributed by Thierry Arnoux, 17-Oct-2016.) $)
    measval $p |- ( S e. U. ran sigAlgebra -> ( measures ` S ) =
      { m | ( m : S --> ( 0 [,] +oo ) /\ ( m ` (/) ) = 0
      /\ A. x e. ~P S ( ( x ~<_ _om /\ Disj_ y e. x y )
      -> ( m ` U. x ) = sum* y e. x ( m ` y ) ) ) } ) $=
      ( vs cuni wcel cc0 cpnf cicc cv wf cfv wceq cpw wral w3a cab cvv cmeas co
      csiga crn c0 com cdom wbr wdisj wa cesum wi simp1 ss2abi ovex mapex mpan2
      wss ssexg sylancr feq2 pweq raleqdv 3anbi13d abbidv df-meas fvmptg mpdan
      ) CUBUCFZGZCHIJUAZDKZLZUDVKMHNZAKZUEUFUGBVNBKZUHUIVNFVKMVNVOVKMBUJNUKZACO
      ZPZQZDRZSGZCTMVTNVIVTVLDRZUQWBSGZWAVSVLDVLVMVRULUMVIVJSGWCHIJUNCVJVHSDUOU
      PVTWBSURUSECEKZVJVKLZVMVPAWDOZPZQZDRVTVHSTWDCNZWHVSDWIWEVLWGVRVMWDCVJVKUT
      WIVPAWFVQWDCVAVBVCVDABDEVEVFVG $.
  $}

  ${
    $d x y m s M $.  $d x m s S $.
    $( The property of being a measure.  (Contributed by Thierry Arnoux,
       10-Sep-2016.)  (Revised by Thierry Arnoux, 19-Oct-2016.) $)
    ismeas $p |- ( S e. U. ran sigAlgebra -> ( M e. ( measures ` S ) <-> (
      M : S --> ( 0 [,] +oo ) /\ ( M ` (/) ) = 0
      /\ A. x e. ~P S ( ( x ~<_ _om /\ Disj_ y e. x y )
      -> ( M ` U. x ) = sum* y e. x ( M ` y ) ) ) ) ) $=
      ( vs vm cuni wcel cvv cmeas cfv cc0 cpnf c0 wceq cv wa wi wb fveq1 crn co
      csiga cicc com cdom wbr wdisj cesum cpw wral w3a elex a1i simp1 ovex fex2
      wf 3expb expcom mpan2 syl5 df-meas cab vex mapex mp2an ss2abi ssexi simpr
      simpl feq12d eqeq1d adantl esumeq2sdv eqeq12d raleqbidv 3anbi123d abfmpel
      pweqd imbi2d ex pm5.21ndd ) CUCUAGZHZDIHZDCJKZHZCLMUDUBZDURZNDKZLOZAPZUEU
      FUGBWMBPZUHQZWMGZDKZWMWNDKZBUIZOZRZACUJZUKZULZWHWFRWEDWGUMUNXDWJWEWFWJWLX
      CUOWEWIIHZWJWFRLMUDUPZWJWEXEQWFWJWEXEWFCWIDWDIUQUSUTVAVBWEWFWHXDSEPZWIFPZ
      URZNXHKZLOZWOWPXHKZWMWNXHKZBUIZOZRZAXGUJZUKZULZXDEFCDJWDIABFEVCXSFVDXIFVD
      ZXGIHXEXTIHEVEXFXGWIIIFVFVGXSXIFXIXKXRUOVHVIXGCOZXHDOZQZXIWJXKWLXRXCYCXGC
      WIXHDYAYBVJYAYBVKZVLYBXKWLSYAYBXJWKLNXHDTVMVNYCXPXAAXQXBYCXGCYDVTYBXPXASY
      AYBXOWTWOYBXLWQXNWSWPXHDTYBWMXMWRBWNXHDTVOVPWAVNVQVRVSWBWC $.
  $}

  ${
    $d m s x y M $.
    $( The property of being a measure on an undefined base sigma-algebra.
       (Contributed by Thierry Arnoux, 25-Dec-2016.) $)
    isrnmeas $p |- ( M e. U. ran measures
      -> ( dom M e. U. ran sigAlgebra /\ ( M : dom M --> ( 0 [,] +oo )
      /\ ( M ` (/) ) = 0 /\ A. x e. ~P dom M ( ( x ~<_ _om /\ Disj_ y e. x y )
      -> ( M ` U. x ) = sum* y e. x ( M ` y ) ) ) ) ) $=
      ( vs vm cmeas crn cuni wcel cv cc0 wf c0 cfv wceq wa wral w3a cvv fveq1
      cpnf cicc co com cdom wbr wdisj cesum cpw csiga wrex cdm df-meas cab ovex
      vex mapex mp2an simp1 ss2abi ssexi feq1 eqeq1d esumeq2sdv eqeq12d ralbidv
      wi imbi2d 3anbi123d abfmpunirn simprbi 3ad2ant1 adantl simpl eqeltrd feq2
      fdm biimpar syl2anc simp2 simp3 pweq raleqdv 3jca jca rexlimiva syl ) CFG
      HIZDJZKUAUBUCZCLZMCNZKOZAJZUDUEUFBWNBJZUGPZWNHZCNZWNWOCNZBUHZOZVGZAWIUIZQ
      ZRZDUJGHZUKZCULZXFIZXHWJCLZWMXBAXHUIZQZRZPZWHCSIXGWIWJEJZLZMXONZKOZWPWQXO
      NZWNWOXONZBUHZOZVGZAXCQZRZXEDECFXFABEDUMYEEUNXPEUNZWISIWJSIYFSIDUPKUAUBUO
      WIWJSSEUQURYEXPEXPXRYDUSUTVAXOCOZXPWKXRWMYDXDWIWJXOCVBYGXQWLKMXOCTVCYGYCX
      BAXCYGYBXAWPYGXSWRYAWTWQXOCTYGWNXTWSBWOXOCTVDVEVHVFVIVJVKXEXNDXFWIXFIZXEP
      ZXIXMYIXHWIXFXEXHWIOZYHWKWMYJXDWIWJCVQVLZVMYHXEVNVOXEXMYHXEXJWMXLXEYJWKXJ
      YKWKWMXDUSYJXJWKXHWIWJCVPVRVSWKWMXDVTXEYJXDXLYKWKWMXDWAYJXLXDYJXBAXKXCXHW
      IWBWCVRVSWDVMWEWFWG $.
  $}

  ${
    $d x y M $.  $d m s x y $.
    $( The domain of a measure is a sigma-algebra.  (Contributed by Thierry
       Arnoux, 19-Feb-2018.) $)
    dmmeas $p |- ( M e. U. ran measures -> dom M e. U. ran sigAlgebra ) $=
      ( vx vy cmeas crn cuni wcel cdm csiga cc0 cpnf cicc co wf c0 cfv wceq com
      cv cdom wbr wdisj wa cesum wi cpw wral w3a isrnmeas simpld ) ADEFGAHZIEFG
      UKJKLMANOAPJQBSZRTUACULCSZUBUCULFAPULUMAPCUDQUEBUKUFUGUHBCAUIUJ $.

    $( The base set of a measure is its domain.  (Contributed by Thierry
       Arnoux, 25-Dec-2016.) $)
    measbasedom $p |- ( M e. U. ran measures
                                             <-> M e. ( measures ` dom M ) ) $=
      ( vx vy vs vm cmeas crn cuni wcel cfv cc0 wf c0 wceq cv cesum wi cpw wral
      w3a cdm cpnf cicc co com wbr wdisj wa csiga isrnmeas simprd dmmeas ismeas
      cdom wb syl mpbird wfun cab df-meas funmpt2 elunirn2 mpan impbii ) AFGHIZ
      AAUAZFJIZVEVGVFKUBUCUDZALMAJKNBOZUEUNUFCVICOZUGUHZVIHZAJVIVJAJCPNQBVFRSTZ
      VEVFUIGHZIZVMBCAUJUKVEVOVGVMUOAULBCVFAUMUPUQFURVGVEDVNDOZVHEOZLMVQJKNVKVL
      VQJVIVJVQJCPNQBVPRSTEUSFBCEDUTVAVFAFVBVCVD $.
  $}

  ${
    $d x y M $.  $d y S $.
    $( A measure is a function over its base to the positive extended reals.
       (Contributed by Thierry Arnoux, 26-Dec-2016.) $)
    measfrge0 $p |- ( M e. ( measures ` S ) -> M : S --> ( 0 [,] +oo ) ) $=
      ( vy vx cmeas cfv wcel cc0 cpnf cicc co wf c0 wceq cv com cdom wdisj cuni
      wbr wa cesum wi cpw wral w3a csiga crn wb measbase ismeas syl ibi simp1d
      ) BAEFGZAHIJKBLZMBFHNZCOZPQTDURDOZRUAURSBFURUSBFDUBNUCCAUDUEZUOUPUQUTUFZU
      OAUGUHSGUOVAUIABUJCDABUKULUMUN $.
  $}

  $( A measure is a function on its base sigma-algebra.  (Contributed by
     Thierry Arnoux, 13-Feb-2017.) $)
  measfn $p |- ( M e. ( measures ` S ) -> M Fn S ) $=
    ( cmeas cfv wcel cc0 cpnf cicc co wf wfn measfrge0 ffn syl ) BACDEAFGHIZBJB
    AKABLAOBMN $.

  $( The values of a measure are positive extended reals.  (Contributed by
     Thierry Arnoux, 26-Dec-2016.) $)
  measvxrge0 $p |- ( ( M e. ( measures ` S ) /\ A e. S ) ->
    ( M ` A ) e. ( 0 [,] +oo ) ) $=
    ( cmeas cfv wcel cc0 cpnf cicc co measfrge0 ffvelrnda ) CBDEFBGHIJACBCKL $.

  ${
    $d x y M $.  $d y S $.
    $( The measure of the empty set is always zero.  (Contributed by Thierry
       Arnoux, 26-Dec-2016.) $)
    measvnul $p |- ( M e. ( measures ` S ) -> ( M ` (/) ) = 0 ) $=
      ( vy vx cmeas cfv wcel cc0 cpnf cicc co wf c0 wceq cv com cdom wdisj cuni
      wbr wa cesum wi cpw wral w3a csiga crn wb measbase ismeas syl ibi simp2d
      ) BAEFGZAHIJKBLZMBFHNZCOZPQTDURDOZRUAURSBFURUSBFDUBNUCCAUDUEZUOUPUQUTUFZU
      OAUGUHSGUOVAUIABUJCDABUKULUMUN $.
  $}

  $( A measure is nonnegative.  (Contributed by Thierry Arnoux, 9-Mar-2018.) $)
  measge0 $p |- ( ( M e. ( measures ` S ) /\ A e. S ) -> 0 <_ ( M ` A ) ) $=
    ( cmeas cfv wcel wa cxr cc0 cle wbr cpnf co measvxrge0 elxrge0 sylib simprd
    cicc ) CBDEFABFGZACEZHFZITJKZSTILRMFUAUBGABCNTOPQ $.

  $( If the measure of a given set is bounded by zero, it is zero.
     (Contributed by Thierry Arnoux, 20-Oct-2017.) $)
  measle0 $p |- ( ( M e. ( measures ` S ) /\ A e. S /\ ( M ` A ) <_ 0 )
    -> ( M ` A ) = 0 ) $=
    ( cmeas cfv wcel cc0 cle wbr w3a wceq simp3 wa cpnf cicc measvxrge0 elxrge0
    cxr co sylib 3adant3 simprd wb simpld 0xr xrletri3 sylancl mpbir2and ) CBDE
    FZABFZACEZGHIZJZUKGKZULGUKHIZUIUJULLUMUKRFZUOUIUJUPUOMZULUIUJMUKGNOSFUQABCP
    UKQTUAZUBUMUPGRFUNULUOMUCUMUPUOURUDUEUKGUFUGUH $.

  ${
    $d x y A $.  $d x y M $.  $d y S $.
    $( The measure of a countable disjoint union is the sum of the measures.
       (Contributed by Thierry Arnoux, 26-Dec-2016.) $)
    measvun $p |- ( ( M e. ( measures ` S ) /\ A e. ~P S /\
      ( A ~<_ _om /\ Disj_ x e. A x ) )
      -> ( M ` U. A ) = sum* x e. A ( M ` x ) ) $=
      ( vy cmeas cfv wcel com cdom wbr cv wdisj wa w3a cuni cesum wceq wi cc0
      cpw wral simp2 cpnf cicc co wf c0 csiga crn wb measbase ismeas syl simp3d
      3ad2ant1 simp3 breq1 disjeq1 anbi12d unieq fveq2d esumeq1 eqeq12d imbi12d
      ibi rspcv syl3c ) DCFGHZBCUAZHZBIJKZABALZMZNZOVKELZIJKZAVPVMMZNZVPPZDGZVP
      VMDGZAQZRZSZEVJUBZVOBPZDGZBWBAQZRZVIVKVOUCVIVKWFVOVICTUDUEUFDUGZUHDGTRZWF
      VIWKWLWFOZVICUIUJPHVIWMUKCDULEACDUMUNVFUOUPVIVKVOUQWEVOWJSEBVJVPBRZVSVOWD
      WJWNVQVLVRVNVPBIJURAVPBVMUSUTWNWAWHWCWIWNVTWGDVPBVAVBVPBWBAVCVDVEVGVH $.
  $}

  ${
    $d x A $.  $d x B $.  $d x M $.  $d x S $.
    $( The measure the union of two complementary sets is the sum of their
       measures.  (Contributed by Thierry Arnoux, 10-Mar-2017.) $)
    measxun2 $p |- ( ( M e. ( measures ` S ) /\ ( A e. S /\ B e. S )
      /\ B C_ A ) -> ( M ` A ) = ( ( M ` B ) +e ( M ` ( A \ B ) ) ) ) $=
      ( vx cfv wcel wa wss cpr cuni co wdisj wceq syl3anc syl2anc cin fveq2d c0
      cc0 cmeas w3a cdif cv cesum cxad cpw com cdom simp1 simp2r csiga measbase
      wbr crn simp2l difelsiga prelpwi prct simp3 disjdifprg2 prcom dfss biimpi
      syl incom syl6eq preq2d syl5eqr disjeq1d biimprd mpan9 jca measvun uniprg
      cun undif sylan9eq simpr cpnf cicc measvxrge0 wo eqimss ssdifeq0 measvnul
      sylib sylan9eqr sylan orcd ex esumpr2 3eqtr3d ) DCUAFGZACGZBCGZHZBAIZUBZB
      ABUCZJZKZDFZXAEUDZDFZEUEZADFZBDFZWTDFZUFLWSWNXACUGGZXAUHUIUNZEXAXDMZHXCXF
      NWNWQWRUJZWSWPWTCGZXJWNWOWPWRUKZWSCULUOKGZWOWPXNWSWNXPXMCDUMVEWNWOWPWRUPZ
      XOABCUQOZBWTCURPWSXKXLWSWPXNXKXOXRBWTCCUSPWSWOWRXLXQWNWQWRUTZWOEWTABQZJZX
      DMZWRXLEABCVAWRXLYBWREXAYAXDWRXAWTBJYAWTBVBWRBXTWTWRBBAQZXTWRBYCNBAVCVDBA
      VFVGVHVIVJVKVLPVMEXACDVNOWSWPXNHZWRXCXGNWSWPXNXOXRVMXSYDWRHXBADYDWRXBBWTV
      PZABWTCCVOWRYEANBAVQVDVRRPWSBWTXEXHEXICCWSXDBNZHXDBDWSYFVSRWSXDWTNZHXDWTD
      WSYGVSRXOXRWSWNWPXHTVTWALZGXMXOBCDWBPWSWNXNXIYHGXMXRWTCDWBPWSBWTNZXHTNZXH
      VTNZWCWSYIHYJYKWSWNYIYJXMYIWNXHSDFTYIBSDYIBWTIBSNBWTWDBAWEWGRCDWFWHWIWJWK
      WLWM $.
  $}

  $( The measure the union of two disjoint sets is the sum of their measures.
     (Contributed by Thierry Arnoux, 10-Mar-2017.) $)
  measun $p |- ( ( M e. ( measures ` S ) /\ ( A e. S /\ B e. S )
    /\ ( A i^i B ) = (/) )
    -> ( M ` ( A u. B ) ) = ( ( M ` A ) +e ( M ` B ) ) ) $=
    ( cmeas cfv wcel wa c0 wceq cun cdif cxad co cxr cc0 cpnf measvxrge0 sseldi
    syl2anc cin w3a wss simp1 crn cuni measbase 3ad2ant1 simp2l simp2r unelsiga
    csiga syl3anc ssun2 a1i measxun2 syl121anc difun2 inundif uneq1 uncom eqtri
    syl6eq syl5reqr syl5eq fveq2d oveq2d 3ad2ant3 cicc iccssxr xaddcom 3eqtrd
    un0 ) DCEFGZACGZBCGZHZABUAZIJZUBZABKZDFZBDFZWABLZDFZMNZWCADFZMNZWGWCMNZVTVN
    WACGZVPBWAUCZWBWFJVNVQVSUDZVTCULUEUFGZVOVPWJVNVQWMVSCDUGUHVNVOVPVSUIZVNVOVP
    VSUJZABCUKUMWOWKVTBAUNUOWABCDUPUQVSVNWFWHJVQVSWEWGWCMVSWDADVSWDABLZAABURVSA
    VRWPKZWPABUSVSWQIWPKZWPVRIWPUTWRWPIKWPIWPVAWPVMVBVCVDVEVFVGVHVTWCOGZWGOGZWH
    WIJVTVNVPWSWLWOVNVPHPQVINZOWCPQVJZBCDRSTVTVNVOWTWLWNVNVOHXAOWGXBACDRSTWCWGV
    KTVL $.

  ${
    $d y z A $.  $d x y z M $.  $d x y S $.  $d y z B $.  $d z S $.
    measvunilem.1 $e |- F/_ x A $.
    $( Lemma for ~ measvuni .  (Contributed by Thierry Arnoux, 7-Feb-2017.)
       (Revised by Thierry Arnoux, 19-Feb-2017.)  (Revised by Thierry Arnoux,
       6-Mar-2017.) $)
    measvunilem $p |- ( ( M e. ( measures ` S ) /\
      A. x e. A B e. ( S \ { (/) } ) /\ ( A ~<_ _om /\ Disj_ x e. A B ) )
      -> ( M ` U_ x e. A B ) = sum* x e. A ( M ` B ) ) $=
      ( vy vz cfv wcel wral com cdom wbr wdisj cv wceq cvv syl nfcv c0 csn cdif
      cmeas wa w3a wrex cab cuni cesum ciun cpw simp1 wss simp3l abrexctf simp2
      ctex eldifi ralimi abrexss elpwg biimpar syl2anc simp3r measvun syl112anc
      disjabrexf dfiun2g fveq2d nfra1 nfbr nfdisj1 nfan nf3an r19.21bi disjdsct
      nfv fveq2 cc0 cpnf cicc co simpl1 measvxrge0 sylan2 esumc 3eqtr4d ) EDUDI
      JZCDUAUBZUCZJZABKZBLMNZABCOZUEZUFZGPCQABUGGUHZUIZEIZWRHPZEIZHUJZABCUKZEIZ
      BCEIZAUJWQWIWRDULJZWRLMNZHWRXAOZWTXCQWIWMWPUMWQWRRJZWRDUNZXGWQXHXJWQWNXHW
      IWMWNWOUOZAGBCFUPSZWRURSWQWMXKWIWMWPUQZWMCDJZABKXKWLXOABCDWJUSZUTAGBCDADT
      VASSXJXGXKWRDRVBVCVDXMWQWOXIWIWMWNWOVEZAHGBCFVHSHWRDEVFVGWQWMXEWTQXNWMXDW
      SEAGBCWKVIVJSWQHGBXFCXBARWKAXBTWIWMWPAWIAVRWLABVKWNWOAABLMFAMTALTVLABCVMV
      NVOZFXACEVSWQWNBRJXLBURSWQABCDXRFWQWLABXNVPZXQVQWQAPBJZUEWIWLXFVTWAWBWCJZ
      WIWMWPXTWDXSWLWIXOYAXPCDEWEWFVDXSWGWH $.
  $}

  ${
    $d x M $.  $d x S $.
    measvunilem.0.1 $e |- F/_ x A $.
    $( Lemma for ~ measvuni .  (Contributed by Thierry Arnoux, 6-Mar-2017.) $)
    measvunilem0 $p |- ( ( M e. ( measures ` S ) /\
      A. x e. A B e. { (/) } /\ ( A ~<_ _om /\ Disj_ x e. A B ) )
      -> ( M ` U_ x e. A B ) = sum* x e. A ( M ` B ) ) $=
      ( cfv wcel c0 com cdom wa cc0 cesum ciun cvv wceq nfcv fveq2d eqtrd cmeas
      csn wral wbr wdisj w3a simp3l ctex esum0 3syl nfv nfra1 nfbr nfdisj1 nfan
      nf3an eqidd cv simp2 r19.21bi elsni measvnul 3ad2ant1 adantr esumeq12dvaf
      syl iuneq12daf iun0 syl6eq 3eqtr4rd ) EDUAGHZCIUBHZABUCZBJKUDZABCUEZLZUFZ
      BMANZMBCEGZANABCOZEGZVQVNBPHVRMQVKVMVNVOUGBUHBAPFUIUJVQBBVSMAVKVMVPAVKAUK
      VLABULVNVOAABJKFAKRAJRUMABCUNUOUPZVQBUQZVQAURBHZLZVSIEGZMWECIEWEVLCIQVQVL
      ABVKVMVPUSUTCIVAVFZSVQWFMQZWDVKVMWHVPDEVBVCZVDTVEVQWAWFMVQVTIEVQVTABIOIVQ
      ABBCIWBFFWCWGVGABVHVISWITVJ $.
  $}

  ${
    $d x A $.  $d x M $.  $d x S $.
    $( The measure of a countable disjoint union is the sum of the measures.
       This theorem uses a collection rather than a set of subsets of ` S ` .
       (Contributed by Thierry Arnoux, 7-Mar-2017.) $)
    measvuni $p |- ( ( M e. ( measures ` S ) /\ A. x e. A B e. S /\
      ( A ~<_ _om /\ Disj_ x e. A B ) ) -> ( M ` U_ x e. A B ) =
      sum* x e. A ( M ` B ) ) $=
      ( cfv wcel wral com wa c0 crab ciun wceq adantl ralrimiva 3ad2ant1 adantr
      cesum cin cmeas cdom wbr wdisj w3a csn cdif co simp1 cv rabid simprbi wss
      cxad ssrab2 ssct mpan 3ad2ant3 simp3r nfrab1 mpsyl measvunilem0 syl112anc
      nfcv disjss1f measvunilem oveq12d cun nfra1 nfdisj1 nfan nf3an nfun simp2
      nfv rabid2 sylibr elun csiga cuni measbase 0elsiga snssi 3syl undif sylib
      wo crn eleq2d syl5bbr rabbidv eqtr4d unrab syl6eqr eqidd iuneq12df fveq2d
      iunxun fveq2i syl6eq wb elsni eleq1d mpbird syl2an sigaclcuni syl3anc syl
      eldifad iuneq2i iun0 eqtri ineq1 0in mp1i measun syl121anc eqtrd esumeq1d
      cvv ctex inrab noel disjdif eleq2i mtbir elin mtbi rgenw rabeq0 mpbir a1i
      wn cc0 cpnf cicc sylan measvxrge0 syl2anc esumsplit 3eqtr4d ) EDUAFGZCDGZ
      ABHZBIUBUCZABCUDZJZUEZACKUFZGZABLZCMZEFZACDUUIUGZGZABLZCMZEFZUNUHZUUKCEFZ
      ASZUUPUUTASZUNUHZABCMZEFZBUUTASZUUHUUMUVAUURUVBUNUUHUUBUUJAUUKHZUUKIUBUCZ
      AUUKCUDZUUMUVANUUBUUDUUGUIZUUBUUDUVGUUGUUBUUJAUUKAUJZUUKGZUUJUUBUVLUVKBGZ
      UUJUUJABUKULZOPQUUGUUBUVHUUDUUEUVHUUFUUKBUMZUUEUVHUUJABUOZUUKBUPUQRURZUVO
      UUHUUFUVIUVPUUBUUDUUEUUFUSZAUUKBCUUJABUTZABVDZVEVAAUUKCDEUVSVBVCUUHUUBUUO
      AUUPHZUUPIUBUCZAUUPCUDZUURUVBNUVJUUBUUDUWAUUGUUBUUOAUUPUVKUUPGZUUOUUBUWDU
      VMUUOUUOABUKULZOZPQUUGUUBUWBUUDUUEUWBUUFUUPBUMZUUEUWBUUOABUOZUUPBUPUQRURZ
      UWGUUHUUFUWCUWHUVRAUUPBCUUOABUTZUVTVEVAAUUPCDEUWJVFVCVGUUHUVEUULUUQVHZEFZ
      UUSUUHUVEAUUKUUPVHZCMZEFUWLUUHUVDUWNEUUHABUWMCCUUBUUDUUGAUUBAVOUUCABVIUUE
      UUFAUUEAVOABCVJVKVLZUVTAUUKUUPUVSUWJVMUUHBUUJUUOWGZABLZUWMUUHBUUCABLZUWQU
      UHUUDBUWRNUUBUUDUUGVNUUCABVPVQUUBUUDUWQUWRNUUGUUBUWPUUCABUWPCUUIUUNVHZGUU
      BUUCCUUIUUNVRUUBUWSDCUUBUUIDUMZUWSDNUUBDVSWHVTGZKDGZUWTDEWAZDWBZKDWCWDUUI
      DWEWFWIWJWKQWLUUJUUOABWMWNZUUHCWOWPWQUWNUWKEAUUKUUPCWRWSWTUUHUUBUULDGZUUQ
      DGZUULUUQTZKNZUWLUUSNUVJUUHUXAUUCAUUKHZUVHUXFUUBUUDUXAUUGUXCQZUUBUUDUXJUU
      GUUBUUCAUUKUUBUXAUUJUUCUVLUXCUVNUXAUUJJUUCUXBUXAUXBUUJUXDRUUJUUCUXBXAUXAU
      UJCKDCKXBZXCOXDXEZPQUVQUUKCDAUVSXFXGUUHUXAUUCAUUPHZUWBUXGUXKUUBUUDUXNUUGU
      UBUUCAUUPUUBUWDJCDUUIUWFXIPQUWIUUPCDAUWJXFXGUULKNZUXIUUHUULAUUKKMKAUUKCKU
      VLUUJCKNUVNUXLXHXJAUUKXKXLUXOUXHKUUQTKUULKUUQXMUUQXNWTXOUULUUQDEXPXQXRUUH
      UVFUWMUUTASUVCUUHBUWMUUTAUWOUXEXSUUHUUKUUPUUTAUWOUVSUWJUUHUVHUUKXTGUVQUUK
      YAXHUUHUWBUUPXTGUWIUUPYAXHUUKUUPTZKNUUHUXPUUJUUOJZABLZKUUJUUOABYBUXRKNUXQ
      YMZABHUXSABCUUIUUNTZGZUXQUYACKGCYCUXTKCUUIDYDYEYFCUUIUUNYGYHYIUXQABYJYKXL
      YLUUHUVLJUUBUUCUUTYNYOYPUHGZUUHUUBUVLUVJRUUHUUBUVLUUCUVJUXMYQCDEYRZYSUUHU
      WDJZUUBUUCUYBUUHUUBUWDUVJRUYDCDUUIUWDUUOUUHUWEOXIUYCYSYTXRUUA $.
  $}

  ${
    $d y A $.  $d y B $.  $d y M $.  $d y S $.  $d y ph $.
    measssd.1 $e |- ( ph -> M e. ( measures ` S ) ) $.
    measssd.2 $e |- ( ph -> A e. S ) $.
    measssd.3 $e |- ( ph -> B e. S ) $.
    measssd.4 $e |- ( ph -> A C_ B ) $.
    $( A measure is monotone with respect to set inclusion.  (Contributed by
       Thierry Arnoux, 28-Dec-2016.) $)
    measssd $p |- ( ph -> ( M ` A ) <_ ( M ` B ) ) $=
      ( vy cfv cle cc0 wbr wcel syl syl2anc wceq wss adantl cdif cxad cpnf cicc
      co cmeas csiga crn cuni measbase difelsiga syl3anc measvxrge0 cxr elxrge0
      simprbi wi simplbi xraddge02 mpd cpr cesum cpw cdom wdisj prssi prex elpw
      com sylibr prct disjdifprg prcom a1i disjeq1d mpbid measvun syl112anc cun
      cv uniprg undif sylib eqtrd fveq2d fveq2 wo eqimss ssdifeq0 measvnul orcd
      wa c0 adantr ex esumpr2 3eqtr3d breqtrrd ) ABEKZWSCBUAZEKZUBUEZCEKZLAMXAL
      NZWSXBLNZAXAMUCUDUEZOZXDAEDUFKOZWTDOZXGFADUGUHUIOZCDOZBDOZXIAXHXJFDEUJPHG
      CBDUKULZWTDEUMQZXGXAUNOZXDXAUOZUPPAWSUNOZXOXDXEUQAWSXFOZXQAXHXLXRFGBDEUMQ
      ZXRXQMWSLNWSUOURPAXGXOXNXGXOXDXPURPWSXAUSQUTABWTVAZUIZEKZXTJVTZEKZJVBZXCX
      BAXHXTDVCOZXTVIVDNZJXTYCVEZYBYERFAXTDSZYFAXLXIYIGXMBWTDVFQXTDBWTVGVHVJAXL
      XIYGGXMBWTDDVKQAJWTBVAZYCVEZYHAXLXKYKGHJBCDDVLQAJYJXTYCYJXTRAWTBVMVNVOVPJ
      XTDEVQVRAYACEAYABWTVSZCAXLXIYAYLRGXMBWTDDWAQABCSYLCRIBCWBWCWDWEABWTYDWSJX
      ADDYCBRYDWSRAYCBEWFTYCWTRYDXARAYCWTEWFTGXMXSXNABWTRZWSMRZWSUCRZWGAYMWLZYN
      YOYPWSWMEKZMYPBWMEYMBWMRZAYMBWTSYRBWTWHBCWIWCTWEAYQMRZYMAXHYSFDEWJPWNWDWK
      WOWPWQWR $.
  $}

  ${
    measunl.1 $e |- ( ph -> M e. ( measures ` S ) ) $.
    measunl.2 $e |- ( ph -> A e. S ) $.
    measunl.3 $e |- ( ph -> B e. S ) $.
    $( A measure is sub-additive with respect to union.  (Contributed by
       Thierry Arnoux, 20-Oct-2017.) $)
    measunl $p |- ( ph -> ( M ` ( A u. B ) ) <_ ( ( M ` A ) +e ( M ` B ) ) ) $=
      ( cun cfv co cle wcel cin c0 wceq cxr wbr measvxrge0 syl2anc undif1 cmeas
      cdif cxad fveq2i csiga crn cuni measbase difelsiga syl3anc disjdif eqtr3i
      syl a1i measun syl121anc syl5eqr cc0 cpnf cicc iccssxr sseldi wa inelsiga
      incom elxrge0 sylib simprd wi xraddge02 inundif inindif breqtrrd xleadd1a
      mpd uncom syl31anc eqbrtrd ) ABCIZEJZBCUCZEJZCEJZUDKZBEJZWDUDKZLAWAWBCIZE
      JZWEWHVTEBCUAUEAEDUBJMZWBDMZCDMZWBCNZOPZWIWEPFADUFUGUHMZBDMZWLWKAWJWOFDEU
      IUNZGHBCDUJUKZHWNACWBNWMOCWBVFCBULUMUOWBCDEUPUQURAWCQMZWFQMWDQMWCWFLRWEWG
      LRAUSUTVAKZQWCUSUTVBZAWJWKWCWTMFWRWBDESTVCZAWTQWFXAAWJWPWFWTMFGBDESTVCAWT
      QWDXAAWJWLWDWTMFHCDESTVCAWCWCBCNZEJZUDKZWFLAUSXDLRZWCXELRZAXDQMZXFAXDWTMZ
      XHXFVDAWJXCDMZXIFAWOWPWLXJWQGHBCDVEUKZXCDESTZXDVGVHVIAWSXHXFXGVJXBAWTQXDX
      AXLVCWCXDVKTVPAWFWBXCIZEJZXEXMBEXCWBIXMBXCWBVQBCVLUMUEAWJWKXJWBXCNZOPZXNX
      EPFWRXKXPAXCWBNXOOXCWBVFBCVMUMUOWBXCDEUPUQURVNWCWFWDVOVRVS $.
  $}

  ${
    $d k A $.  $d k n I $.  $d n M $.  $d k n N $.  $d k n S $.  $d k n ph $.
    measiuns.0 $e |- F/_ n B $.
    measiuns.1 $e |- ( n = k -> A = B ) $.
    measiuns.2 $e |- ( ph -> ( N = NN \/ N = ( 1 ..^ I ) ) ) $.
    measiuns.3 $e |- ( ph -> M e. ( measures ` S ) ) $.
    measiuns.4 $e |- ( ( ph /\ n e. N ) -> A e. S ) $.
    $( The measure of the union of a collection of sets, expressed as the sum
       of a disjoint set.  This is used as a lemma for both ~ measiun and
       ~ meascnbl .  (Contributed by Thierry Arnoux, 22-Jan-2017.)  (Proof
       shortened by Thierry Arnoux, 7-Feb-2017.) $)
    measiuns $p |- ( ph -> ( M ` U_ n e. N A )
      = sum* n e. N ( M ` ( A \ U_ k e. ( 1 ..^ n ) B ) ) ) $=
      ( cfv c1 wcel wa cn wss ciun cv cfzo co cdif cesum iundisjcnt fveq2d wral
      cmeas com cdom wbr wdisj wceq crn cuni measbase syl adantr simpll fzossnn
      csiga simpr syl5sseqr cuz simplr eleqtrd elfzouz2 fzoss2 3syl sseqtr4d wo
      mpjaodan sselda wsb sbimi sban nfv sbf clelsb3 anbi12i bitri wsbc csb cvv
      sbsbc wb vex sbcel1g ax-mp nfcv cbvcsb csbid eqtri eleq1i 3imtr3i syl2anc
      3bitri ralrimiva sigaclfu2 difelsiga syl3anc eqimss mpbiri jaoi nnct ssct
      sseq1 sylancl iundisj2cnt measvuni syl112anc eqtrd ) AFIBUAZHOFIBEPFUBZUC
      UDZCUAZUEZUAZHOZIXSHOFUFZAXOXTHABCEFGIJKLUGUHAHDUJOQZXSDQZFIUIIUKULUMZFIX
      SUNYAYBUOMAYDFIAXPIQZRZDVCUPUQQZBDQZXRDQZYDAYHYFAYCYHMDHURUSUTZNYGYHCDQZE
      XQUIYJYKYGYLEXQYGEUBZXQQZRAYMIQZYLAYFYNVAYGXQIYMYGISUOZXQITIPGUCUDZUOZYGY
      PRSXQIXPVBYGYPVDVEYGYRRZXQYQIYSXPYQQGXPVFOQXQYQTYSXPIYQAYFYRVGYGYRVDZVHXP
      PGVIXPPGVJVKYTVLAYPYRVMZYFLUTVNVOYGFEVPZYIFEVPZAYORZYLYGYIFENVQUUBAFEVPZY
      FFEVPZRUUDAYFFEVRUUEAUUFYOAFEAFVSVTEFIWAWBWCUUCYIFYMWDZFYMBWEZDQZYLYIFEWG
      YMWFQUUGUUIWHEWIFYMBDWFWJWKUUHCDUUHEYMCWECFEYMBCEBWLJKWMECWNWOWPWSWQWRWTC
      DEXPXAWRBXRDXBXCWTAISTZSUKULUMYEAUUAUUJLYPUUJYRISXDYRUUJYQSTGVBIYQSXIXEXF
      USXGISXHXJABCEFGIJKLXKFIXSDHXLXMXN $.
  $}

  ${
    $d k m n $.  $d k n ph $.  $d n k S $.  $d k B $.  $d n M $.
    measiun.1 $e |- ( ph -> M e. ( measures ` S ) ) $.
    measiun.2 $e |- ( ph -> A e. S ) $.
    measiun.3 $e |- ( ( ph /\ n e. NN ) -> B e. S ) $.
    measiun.4 $e |- ( ph -> A C_ U_ n e. NN B ) $.
    $( A measure is sub-additive.  (Contributed by Thierry Arnoux,
       30-Dec-2016.)  (Proof shortened by Thierry Arnoux, 7-Feb-2017.) $)
    measiun $p |- ( ph -> ( M ` A ) <_ sum* n e. NN ( M ` B ) ) $=
      ( vk cfv cn co cxr wcel measvxrge0 syl2anc wral wi vm ciun cesum cc0 cpnf
      cicc iccssxr cmeas sseldi csiga crn cuni measbase syl ralrimiva sigaclcu2
      cvv nnex cv wa adantr nfcv esumcl sylancr measssd c1 cfzo csb cle nfcsb1v
      cdif csbeq1a wceq eqidd orcd measiuns a1i nfel1 nfim eleq1 eleq1d imbi12d
      nfv imbi2d ex chvar ralrimiv wss fzossnn ssralv ax-mp sigaclfu2 difelsiga
      sylan2 syl3anc difssd esumle eqbrtrd xrletrd ) ABFLZEMCUBZFLZMCFLZEUCZAUD
      UEUFNZOWTUDUEUGZAFDUHLPZBDPWTXEPGHBDFQRUIAXEOXBXFAXGXADPZXBXEPGADUJUKULPZ
      CDPZEMSXHAXGXIGDFUMUNZAXJEMIUOCDEUPRZXADFQRUIAXEOXDXFAMUQPZXCXEPZEMSXDXEP
      URAXNEMAEUSZMPZUTZXGXJXNAXGXPGVAZICDFQRZUOMXCEUQEMVBVCVDUIABXADFGHXLJVEAX
      BMCKVFXOVGNZEKUSZCVHZUBZVKZFLZEUCXDVIACYBDKEUAUSZFMEYACVJZEYACVLZAMMVMMVF
      YFVGNVMAMVNVOGIVPAMYEXCEUQXMAURVQXQXGYDDPZYEXEPXRXQXIXJYCDPZYIAXIXPXKVAIA
      YJXPAXIYBDPZKMSZYJXKAYKKMAXPXJTZTAYAMPZYKTZTEKAYOEAEWCYNYKEEYAMEYAVBVREYB
      DYGVRVSVSXOYAVMZYMYOAYPXPYNXJYKXOYAMVTYPCYBDYHWAWBWDAXPXJIWEWFWGYLXIYKKXT
      SZYJXTMWHYLYQTXOWIYKKXTMWJWKYBDKXOWLWNRVACYCDWMWOZYDDFQRXSXQYDCDFXRYRIXQC
      YCWPVEWQWRWS $.
  $}

  ${
    $d i k n o p x F $.  $d i n J $.  $d i n o p M $.  $d i k n S $.
    $d i k n o p ph $.
    meascnbl.0 $e |- J = ( TopOpen ` ( RR*s |`s ( 0 [,] +oo ) ) ) $.
    meascnbl.1 $e |- ( ph -> M e. ( measures ` S ) ) $.
    meascnbl.2 $e |- ( ph -> F : NN --> S ) $.
    meascnbl.3 $e |- ( ( ph /\ n e. NN ) -> ( F ` n ) C_ ( F ` ( n + 1 ) ) ) $.
    $( A measure is continuous from below.  Cf. ~ volsup .  (Contributed by
       Thierry Arnoux, 18-Jan-2017.)  (Revised by Thierry Arnoux,
       11-Jul-2017.) $)
    meascnbl $p |- ( ph -> ( M o. F ) ( ~~>t ` J ) ( M ` U. ran F ) ) $=
      ( vi vk cn c1 cv co cfv cfzo wcel wceq vo vp vx ciun cdif cesum cmpt ccom
      cfz crn cuni clm cmeas cc0 cpnf cicc adantr csiga measbase ffvelrnda wral
      wa syl simpll fzossnn simpr syl2anc ralrimiva sigaclfu2 difelsiga syl3anc
      sseldi measvxrge0 fveq2 iuneq1d difeq12d fveq2d esumcvg2 measfrge0 fcompt
      oveq2 wf caddc nfcv cz nnzd fzval3 olcd eleq2d biimpa measiuns wfn iuninc
      ffn eqtr3d mpteq2dva eqtr4d wrex dfiun2g fnrnfv unieqd eqidd orcd 3brtr4d
      cab ) AKMNKOZUIPZCOZDQZLNXHRPZLOZDQZUDZUEZFQZCUFZUGZMXOCUFZFDUHZDUJZUKZFQ
      ZEULQAXOUAOZDQZLNYCRPZXLUDZUEZFQUBOZDQZLNYHRPZXLUDZUEZFQCUBKEUAGAXHMSZVBZ
      FBUMQSZXNBSZXOUNUOUPPZSAYOYMHUQYNBURUJUKSZXIBSZXMBSZYPAYRYMAYOYRHBFUSVCUQ
      ZAMBXHDIUTZYNYRXLBSZLXJVAYTUUAYNUUCLXJYNXKXJSZVBZAXKMSUUCAYMUUDVDUUEXJMXK
      XHVEYNUUDVFVLAMBXKDIUTVGVHXLBLXHVIVGXIXMBVJVKXNBFVMVGXHYCTZXNYGFUUFXIYDXM
      YFXHYCDVNUUFLXJYEXLXHYCNRWAVOVPVQXHYHTZXNYLFUUGXIYIXMYKXHYHDVNUUGLXJYJXLX
      HYHNRWAVOVPVQVRAXSKMXFDQZFQZUGZXQABYQFWBZMBDWBZXSUUJTAYOUUKHBFVSVCIKFDMBY
      QVTVGAKMXPUUIAXFMSZVBZCXGXIUDZFQXPUUIUUNXIXLBLCXFNWCPZFXGCXLWDZXHXKDVNZUU
      NXGNUUPRPZTZXGMTUUNXFWESUUTUUNXFAUUMVFWFNXFWGVCZWHAYOUUMHUQUUNXHXGSZVBZAY
      MYSAUUMUVBVDUVCUUSMXHUUPVEUUNUVBXHUUSSUUNXGUUSXHUVAWIWJVLUUBVGWKUUNUUOUUH
      FAKCDAUULDMWLZIMBDWNVCZJWMVQWOWPWQACMXIUDZFQYBXRAUVFYAFAUVFUCOXITCMWRUCXE
      ZUKZYAAYSCMVAUVFUVHTAYSCMUUBVHCUCMXIBWSVCAXTUVGAUVDXTUVGTUVECUCMDWTVCXAWQ
      VQAXIXLBLCUUPFMUUQUURAMMTMUUSTAMXBXCHUUBWKWOXD $.
  $}

  ${
    $d x y z A $.  $d x B $.  $d x y z S $.  $d x y z M $.
    $( Lemma for ~ measinb .  (Contributed by Thierry Arnoux, 2-Jun-2017.) $)
    measinblem $p |- ( ( ( ( M e. ( measures ` S ) /\ A e. S ) /\ B e. ~P S )
      /\ ( B ~<_ _om /\ Disj_ x e. B x ) ) ->
      ( M ` ( U. B i^i A ) ) = sum* x e. B ( M ` ( x i^i A ) ) ) $=
      ( cmeas cfv wcel wa cpw com cdom wbr cv wdisj cuni cin ciun nfv nfan wral
      cesum iunin1 uniiun ineq1i eqtr4i fveq2i wceq simplll nfdisj1 w3a simp1ll
      csiga crn measbase simp1r elelpwi syl2anc simp1lr inelsiga syl3anc 3expia
      syl simp3 ralrimi simprl disjin ad2antll measvuni syl112anc syl5eqr ) EDF
      GHZBDHZIZCDJHZIZCKLMZACANZOZIZIZCPZBQZEGACVRBQZRZEGZCWDEGAUBZWEWCEWEACVRR
      ZBQWCACBVRUCWBWHBACUDUEUFUGWAVLWDDHZACUAVQACWDOZWFWGUHVLVMVOVTUIWAWIACVPV
      TAVPASVQVSAVQASACVRUJTTVPVTVRCHZWIVPVTWKUKZDUMUNPHZVRDHZVMWIWLVLWMVLVMVOV
      TWKULDEUOVCWLWKVOWNVPVTWKVDVNVOVTWKUPVRCDUQURVLVMVOVTWKUSVRBDUTVAVBVEVPVQ
      VSVFVSWJVPVQABCVRVGVHACWDDEVIVJVK $.

    $( Building a measure restricted to the intersection with a given set.
       (Contributed by Thierry Arnoux, 25-Dec-2016.) $)
    measinb $p |- ( ( M e. ( measures ` S ) /\ A e. S ) ->
      ( x e. S |-> ( M ` ( x i^i A ) ) ) e. ( measures ` S ) ) $=
      ( vz vy cfv wcel wa cv cin wceq inelsiga syl3anc measvxrge0 syl2anc eqidd
      cc0 c0 syl cmeas cmpt cpnf cicc co com cdom wbr wdisj cuni cesum cpw wral
      wf wi simpll csiga crn measbase ad2antrr simpr simplr eqid fmptd cr ineq1
      syl6eq fveq2d adantl measvnul eqtrd adantr 0elsiga 0red fvmptd measinblem
      0in simplll simprl sigaclcu simpllr wss ad2antlr sseldd esumeq2dv 3eqtr4d
      elpwi ex ralrimiva w3a wb ismeas mpbir3and ) DCUAGZHZBCHZIZACAJZBKZDGZUBZ
      WNHZCRUCUDUEZXAUNZSXAGRLZEJZUFUGUHZFXFFJZUIZIZXFUJZXAGZXFXHXAGZFUKZLZUOZE
      CULZUMZWQACWTXCXAWQWRCHZIZWOWSCHZWTXCHWOWPXSUPXTCUQURUJHZXSWPYAWOYBWPXSCD
      USZUTWQXSVAWOWPXSVBWRBCMNWSCDOPXAVCVDWQASWTRCXAVEWQXAQWQWRSLZIWTSDGZRYDWT
      YELWQYDWSSDYDWSSBKSWRSBVFBVQVGVHVIWOYERLWPYDCDVJUTVKWQYBSCHWOYBWPYCVLZCVM
      TWQVNVOWQXPEXQWQXFXQHZIZXJXOYHXJIZXKBKZDGZXFXHBKZDGZFUKZXLXNFBXFCDVPYIAXK
      WTYKCXAXCYIXAQYIWRXKLZIWSYJDYOWSYJLYIWRXKBVFVIVHYIYBYGXGXKCHZYIWOYBWOWPYG
      XJVRZYCTZWQYGXJVBYHXGXIVSXFCVTNZYIWOYJCHZYKXCHYQYIYBYPWPYTYRYSWOWPYGXJWAX
      KBCMNYJCDOPVOYHXNYNLXJYHXFXMYMFYHXHXFHZIZAXHWTYMCXAXCUUBXAQUUBWRXHLZIWSYL
      DUUCWSYLLUUBWRXHBVFVIVHUUBXFCXHYGXFCWBWQUUAXFCWGWCYHUUAVAWDZUUBWOYLCHZYMX
      CHWOWPYGUUAVRZUUBYBXHCHWPUUEUUBWOYBUUFYCTUUDWOWPYGUUAWAXHBCMNYLCDOPVOWEVL
      WFWHWIWQYBXBXDXEXRWJWKYFEFCXAWLTWM $.
  $}

  ${
    $d x y S $.  $d x y M $.  $d x y T $.
    $( Building a measure restricted to a smaller sigma-algebra.  (Contributed
       by Thierry Arnoux, 25-Dec-2016.) $)
    measres $p |- ( ( M e. ( measures ` S ) /\ T e. U. ran sigAlgebra
        /\ T C_ S ) -> ( M |` T ) e. ( measures ` T ) ) $=
      ( vx vy cmeas cfv wcel cuni wss w3a wf c0 wceq cv wa cesum 3ad2ant1 fvres
      cc0 csiga crn cpnf cicc co cres com cdom wbr wdisj wi cpw simp2 measfrge0
      wral simp3 fssresd 0elsiga 3syl measvnul eqtrd simp11 simp13 sspwb sylanb
      ssel2 syl2anc measvun syl3anc simp3l sigaclcu syl elpwi adantll esumeq2dv
      sselda 3adant3 3eqtr4d 3expia ralrimiva 3jca ismeas biimprd sylc ) CAFGHZ
      BUAUBIHZBAJZKZWFBTUCUDUEZCBUFZLZMWJGZTNZDOZUGUHUIZEWNEOZUJZPZWNIZWJGZWNWP
      WJGZEQZNZUKZDBULZUOZKZWJBFGHZWEWFWGUMZWHWKWMXFWHAWIBCWEWFAWICLWGACUNRWEWF
      WGUPUQWHWLMCGZTWHWFMBHWLXJNXIBURMBCSUSWEWFXJTNWGACUTRVAWHXDDXEWHWNXEHZWRX
      CWHXKWRKZWSCGZWNWPCGZEQZWTXBXLWEWNAULZHZWRXMXONWEWFWGXKWRVBXLWGXKXQWEWFWG
      XKWRVCWHXKWRUMZWGXEXPJXKXQBAVDXEXPWNVFVEVGWHXKWRUPEWNACVHVIXLWSBHZWTXMNXL
      WFXKWOXSWHXKWFWRXIRXRWHXKWOWQVJWNBVKVIWSBCSVLWHXKXBXONWRWHXKPZWNXAXNEXTWP
      WNHZPWPBHZXAXNNXKYAYBWHXKWNBWPWNBVMVPVNWPBCSVLVOVQVRVSVTWAWFXHXGDEBWJWBWC
      WD $.
  $}

  ${
    $d x A $.  $d x S $.  $d x M $.
    $( Building a measure restricted to the intersection with a given set.
       (Contributed by Thierry Arnoux, 25-Dec-2016.) $)
    measinb2 $p |- ( ( M e. ( measures ` S ) /\ A e. S ) ->
      ( x e. ( S i^i ~P A ) |-> ( M ` ( x i^i A ) ) )
      e. ( measures ` ( S i^i ~P A ) ) ) $=
      ( cmeas cfv wcel wa cpw cin cv cmpt cres resmpt3 inin eqid mpteq12i eqtri
      csiga crn wss measinb measbase sigainb elrnsiga syl sylan measres syl3anc
      cuni inss1 a1i syl5eqelr ) DCEFZGZBCGZHZACBIZJZAKBJDFZLZACUTLZUSMZUSEFZVC
      ACUSJZUTLVAACUSUTNAVEUTUSUTCUROUTPQRUQVBUNGUSSTUJZGZUSCUAZVCVDGABCDUBUOCV
      FGZUPVGCDUCVIUPHUSBSFGVGBCUDUSBUEUFUGVHUQCURUKULCUSVBUHUIUM $.
  $}

  ${
    $d x y z A $.  $d x y z M $.  $d x y z S $.
    $( Division of a measure by a positive constant is a measure.  (Contributed
       by Thierry Arnoux, 25-Dec-2016.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    measdivcstOLD $p |- ( ( M e. ( measures ` S ) /\ A e. RR+ )
      -> ( x e. S |-> ( ( M ` x ) /e A ) ) e. ( measures ` S ) ) $=
      ( vy vz cfv wcel wa cc0 co cv cxdiv c0 wceq wi cvv simplr syl oveq1d cpnf
      cmeas crp cicc cmpt wf com cdom wbr wdisj cuni cesum cpw wral w3a wfn crn
      wss wfun cdm funmpt ovex rgenw dmmptg ax-mp mpbir2an a1i wrex wb vex eqid
      df-fn elrnmpt measfrge0 ffvelrn sylan adantlr xrpxdivcld eleq1a rexlimdva
      syl5bi ssrdv sylanbrc csiga measbase 0elsiga adantr jctir fvmptg measvnul
      df-f fveq2 xdiv0rp sylan9eq eqtrd simpll simprl simprr 3jca simplll simpr
      elpwg sylanb syl2anc measvxrge0 esumdivc 3ad2antr1 ad2antrr simpr1 simpr2
      ssel2 sigaclcu syl3anc fvmpt3i jca simpr3 measvun ralrimiva r19.21bi sylc
      3expia esumeq2dv 3eqtr4d ex ismeas biimprd mpd ) DCUBGZHZBUCHZIZCJUAUDKZA
      CALZDGZBMKZUEZUFZNYPGZJOZELZUGUHUIZFYTFLZUJZIZYTUKZYPGZYTUUBYPGZFULZOZPZE
      CUMZUNZUOZYPYHHZYKYQYSUULYKYPCUPZYPUQZYLURYQUUOYKUUOYPUSYPUTCOZACYOVAYOQH
      ZACUNUUQUURACYNBMVBZVCACYOQVDVEYPCVLVFVGYKEUUPYLYTUUPHZYTYOOZACVHZYKYTYLH
      ZYTQHZUUTUVBVIEVJZACYOYTYPQYPVKZVMVEYKUVAUVCACYKYMCHZIZYOYLHUVAUVCPUVHYNB
      YIUVGYNYLHZYJYICYLDUFUVGUVICDVNCYLYMDVOVPVQYIYJUVGRVRYOYLYTVSSVTWAWBCYLYP
      WKWCYKYRNDGZBMKZJYKNCHZUVKQHZIYRUVKOYKUVLUVMYIUVLYJYICWDUQUKHZUVLCDWEZCWF
      SWGUVJBMVBWHANYOUVKCQYPYMNOYNUVJBMYMNDWLTUVFWISYIYJUVKJBMKJYIUVJJBMCDWJTB
      WMWNWOYKUUJEUUKYKYTUUKHZIZUUDUUIUVQUUDIZYKUVPUUAUUCUOZUUIYKUVPUUDWPUVRUVP
      UUAUUCYKUVPUUDRUVQUUAUUCWQUVQUUAUUCWRWSYKUVSIZYTUUBDGZFULZBMKZYTUWABMKZFU
      LZUUFUUHYKUUAUVPUWCUWEOUUCUVQYTUWABFQUVDUVQUVEVGUVQUUBYTHZIZYIUUBCHZUWAYL
      HYIYJUVPUWFWTUWGUVPUWFUWHYKUVPUWFRUVQUWFXAUVPYTCURZUWFUWHUVDUVPUWIVIUVEYT
      CQXBVEYTCUUBXKXCZXDUUBCDXEXDYIYJUVPRXFXGUVTUUFUUEDGZBMKZUWCUVTUUECHZUUFUW
      LOUVTUVNUVPUUAUWMYIUVNYJUVSUVOXHYKUVPUUAUUCXIZYKUVPUUAUUCXJZYTCXLXMAUUEYO
      UWLCYPYMUUEOYNUWKBMYMUUEDWLTUVFUUSXNSUVTUWKUWBBMUVTYIUVPIUUDUWKUWBOZUVTYI
      UVPYIYJUVSWPUWNXOUVTUUAUUCUWOYKUVPUUAUUCXPXOYIUUDUWPPZEUUKYIUWQEUUKYIUVPU
      UDUWPFYTCDXQYAXRXSXTTWOUVTUVPUUHUWEOUWNUVPYTUUGUWDFUVPUWFIUWHUUGUWDOUWJAU
      UBYOUWDCYPYMUUBOYNUWABMYMUUBDWLTUVFUUSXNSYBSYCXDYDXRWSYIUUMUUNPYJYIUUNUUM
      YIUVNUUNUUMVIUVOEFCYPYESYFWGYG $.
  $}

  ${
    $d x y z A $.  $d x y z M $.  $d x y z S $.
    $( Division of a measure by a positive constant is a measure.  (Contributed
       by Thierry Arnoux, 25-Dec-2016.)  (Revised by Thierry Arnoux,
       30-Jan-2017.) $)
    measdivcst $p |- ( ( M e. ( measures ` S ) /\ A e. RR+ )
      -> ( M oFC /e A ) e. ( measures ` S ) ) $=
      ( vx vy vz cfv wcel wa cxdiv co cv wceq cc0 syl adantr eqtrd cvv oveq1d
      c0 crp cofc cmpt cdm ofcfval3 cpnf cicc wf measfrge0 fdm mpteq1d com cdom
      cmeas wbr wdisj cuni cesum wi cpw wral measvxrge0 adantlr xrpxdivcld eqid
      simplr fmptd csiga crn measbase 0elsiga ovex fveq2 fvmptg sylancl xdiv0rp
      measvnul sylan9eq simpll simprl simprr w3a vex simplll selpw ssel2 sylanb
      a1i wss adantll syl2anc esumdivc 3ad2antr1 ad2antrr simpr1 simpr2 syl3anc
      sigaclcu fvmpt3i simpr3 measvun syl112anc esumeq2dv syl13anc ex ralrimiva
      3eqtr4d wb ismeas biimprd mp3and eqeltrd ) CBUNGZHZAUAHZIZCAJUBKZDBDLZCGZ
      AJKZUCZXMXPXQDCUDZXTUCYADAJCXMUAUEXPDYBBXTXNYBBMZXOXNBNUFUGKZCUHYCBCUIBYD
      CUJOPUKQXPBYDYAUHZTYAGZNMZELZULUMUOZFYHFLZUPZIZYHUQZYAGZYHYJYAGZFURZMZUSZ
      EBUTZVAZYAXMHZXPDBXTYDYAXPXRBHZIXSAXNUUBXSYDHXOXRBCVBVCXNXOUUBVFVDYAVEZVG
      XPYFTCGZAJKZNXPTBHZUUERHYFUUEMXNUUFXOXNBVHVIUQHZUUFBCVJZBVKOPUUDAJVLDTXTU
      UEBRYAXRTMXSUUDAJXRTCVMSUUCVNVOXNXOUUENAJKNXNUUDNAJBCVQSAVPVRQXPYREYSXPYH
      YSHZIZYLYQUUJYLIXPUUIYIYKYQXPUUIYLVSXPUUIYLVFUUJYIYKVTUUJYIYKWAXPUUIYIYKW
      BZIZYHYJCGZFURZAJKZYHUUMAJKZFURZYNYPXPYIUUIUUOUUQMYKUUJYHUUMAFRYHRHUUJEWC
      WHUUJYJYHHZIXNYJBHZUUMYDHXNXOUUIUURWDUUIUURUUSXPUUIYHBWIUURUUSEBWEYHBYJWF
      WGZWJYJBCVBWKXNXOUUIVFWLWMUULYNYMCGZAJKZUUOUULYMBHZYNUVBMUULUUGUUIYIUVCXN
      UUGXOUUKUUHWNXPUUIYIYKWOZXPUUIYIYKWPZYHBWRWQDYMXTUVBBYAXRYMMXSUVAAJXRYMCV
      MSUUCXSAJVLZWSOUULUVAUUNAJUULXNUUIYIYKUVAUUNMXNXOUUKVSUVDUVEXPUUIYIYKWTFY
      HBCXAXBSQUULUUIYPUUQMUVDUUIYHYOUUPFUUIUURIUUSYOUUPMUUTDYJXTUUPBYAXRYJMXSU
      UMAJXRYJCVMSUUCUVFWSOXCOXGXDXEXFXNYEYGYTWBZUUAUSXOXNUUAUVGXNUUGUUAUVGXHUU
      HEFBYAXIOXJPXKXL $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The counting measure
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y S $.
    $( The Counting measure is a measure on any sigma-algebra.  (Contributed by
       Thierry Arnoux, 25-Dec-2016.) $)
    cntmeas $p |- ( S e. U. ran sigAlgebra
                                         -> ( # |` S ) e. ( measures ` S ) ) $=
      ( vx vy cuni wcel chash cfv cc0 wf c0 wceq cv wa cesum cpw wral cvv fvres
      wi wss csiga crn cres cmeas cpnf cicc co com cdom wbr wdisj hashf2 fssres
      ssv mp2an a1i 0elsiga syl hash0 vex hasheuni mpan ad2antll cdif isrnsigau
      syl6eq w3a simprd simp3d imim2i ralimi r19.21bi imp elpwi sseld esumeq2dv
      adantrr syl6 ad2antlr 3eqtr4d ex ralrimiva ismeas mpbir3and ) AUAUBDEZFAU
      CZAUDGEAHUEUFUGZWFIZJWFGZHKBLZUHUIUJZCWJCLZUKZMZWJDZWFGZWJWLWFGZCNZKZSZBA
      OZPWHWEQWGFIAQTWHULAUNQWGAFUMUOUPWEWIJFGZHWEJAEWIXBKAUQJAFRURUSVFWEWTBXAW
      EWJXAEZMZWNWSXDWNMWOFGZWJWLFGZCNZWPWRWMXEXGKZXDWKWJQEWMXHBUTCWJQVAVBVCXDW
      KWPXEKZWMXDWKXIWEWKXISZBXAWEWKWOAEZSZBXAPZXJBXAPWEADZAEZXNWJVDAEBAPZXMWEA
      XNOTXOXPXMVGBAVEVHVIXLXJBXAXKXIWKWOAFRVJVKURVLVMVQXCWRXGKWEWNXCWJWQXFCXCW
      LWJEZWQXFKZXCXQWLAEXRXCWJAWLWJAVNVOWLAFRVRVMVPVSVTWAWBBCAWFWCWD $.
  $}

  $( The counting measure is a measure on any power set.  (Contributed by
     Thierry Arnoux, 24-Jan-2017.) $)
  pwcntmeas $p |- ( O e. V -> ( # |` ~P O ) e. ( measures ` ~P O ) ) $=
    ( wcel cpw csiga cfv crn cuni chash cres cmeas pwsiga elrnsiga cntmeas 3syl
    ) ABCADZAEFCPEGHCIPJPKFCABLPAMPNO $.

  $( Counting and Lebesgue measures are different.  (Contributed by Thierry
     Arnoux, 27-Jan-2017.) $)
  cntnevol $p |- ( # |` ~P O ) =/= vol $=
    ( c1 wcel chash cpw cvol wne cfv cc0 a1i wceq syl cr 1re syl6eq cdm necon3i
    ax-mp wss wn cres ax-1ne0 snelpwi fvres hashsng covol ovolsn nulmbl syl2anc
    csn snssi mblvol mp2b 3netr4d fveq1 biantrur snex elpw dmhashres eleq2i 1ex
    wa snss 3bitr4i notbii bitr3i nelne1 sylbir necomd dmeq pm2.61i ) BACZDAEZU
    AZFGZVLBUJZVNHZVPFHZGVOVLBIVQVRBIGVLUBJVLVQVPDHZBVLVPVMCZVQVSKBAUCVPVMDUDLB
    MCZVSBKNBMUEROVRIKZVLWAVPFPZCZWBNWAVPMSVPUFHZIKZWDBMUKBUGZVPUHUIZWDVRWEIVPU
    LWAWFNWGROUMJUNVNFVQVRVPVNFUOQLVLTZVNPZWCGVOWIWCWJWIWDVPWJCZTZVBZWCWJGWMWLW
    IWDWLWAWDNWHRUPWKVLVTVPASWKVLVPABUQURWJVMVPVMUSUTBAVAVCVDVEVFVPWCWJVGVHVIVN
    FWJWCVNFVJQLVK $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The Lebesgue measure - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

$(
  @{
    @d n y F @. @d n y X @. @d n y ph @.
    volmeaslem.1 @e |- ( ph -> X e. ~P dom vol ) @.
    volmeaslem.2 @e |- ( ph -> Disj_ y e. X y ) @.
    volmeaslem.3 @e |- ( ph -> F : NN -1-1-onto-> X ) @.
    volmeaslem.4 @e |- ( ( ph /\ y e. X ) -> ( vol ` y ) e. RR )  @.
    @( Lemma for ~ volmeas .
     (Contributed by Thierry Arnoux, 7-Apr-2017.) @)
    volmeaslem @p |- ( ph -> ( vol ` U. X ) = sum* y e. X ( vol ` y ) ) @=
      ( vn cvol cfv cn wcel cr wa wceq adantr syl2anc a1i nfcv cuni cesum caddc
      cv ciun cmpt c1 cseq crn cxr clt csup cdm wral wdisj cpw wf1o wf f1of syl
      ffvelrnda elelpwi ralrimiva fveq2 eleq1d rspcv sylc simpr disjrdx mpbird
      jca eqid voliun wfo f1ofo iunrdx uniiun syl6reqr fveq2d fvmpt2d cpnf cicc
      cc0 co volf ffvelrnd esumsup 3eqtr4d nfv eqidd esumf1o eqtr4d ) ADUAZJKZL
      IUDZCKZJKZIUBZDBUDZJKZBUBAILWPUEZJKZUCILWQUFZUGUHZUIUJUKULZWNWRAWPJUMZMZW
      QNMZOZILUNILWPUOZXBXEPAXIILAWOLMZOZXGXHXLWPDMZDXFUPZMZXGALDWOCALDCUQZLDCU
      RGLDCUSUTVAZAXOXKEQWPDXFVBRZXLXMWTNMZBDUNZXHXQAXTXKAXSBDHVCQXSXHBWPDWSWPP
      ZWTWQNWSWPJVDZVEVFVGZVKVCAXJBDWSUOFAIBLWPDWSCGAYAVHZVIVJWPXDIXCXDVLZXCVLZ
      VMRAWMXAJAXABDWSUEWMAIBLWPDWSCAXPLDCVNGLDCVOUTYDVPBDVQVRVSAWQIXCXDYEAILWQ
      XCNXCXCPAYFSYCVTXLXFWCWAWBWDZWPJXFYGJURZXLWESXRWFWGWHADWTLWQBICWPXNAIWIID
      TILTICTYBEGXLWPWJAWSDMZOZXFYGWSJYHYJWESYJYIXOWSXFMAYIVHAXOYIEQWSDXFVBRWFW
      KWL @.
      @( [7-Apr-2017] @)
  @}
$)

  ${
    $d k n $.  $d k A $.
    $( The Lebesgue measure function is countably additive.  This formulation
       on the extended reals, allows for ` +oo ` for the measure of any set in
       the sum.  Cf. ~ ovoliun and ~ voliun .  (Contributed by Thierry Arnoux,
       16-Oct-2017.) $)
    voliune $p |- ( ( A. n e. NN A e. dom vol /\ Disj_ n e. NN A ) ->
      ( vol ` U_ n e. NN A ) = sum* n e. NN ( vol ` A ) ) $=
      ( vk cvol wcel cn wral wa cfv wceq cpnf c1 cxr cc0 syl adantlr cle wbr wb
      wrex cdm wdisj ciun cesum caddc cmpt cseq crn clt csup r19.26 eqid voliun
      cr sylanbr an32s cv nfra1 nfan cicc co simpr rspa ffvelrni fvmpt2 syl2anc
      volf ex ralrimi esumeq2d cico r19.21bi w3a 0xr pnfxr elicc1 mp2an simp2bi
      ltpnf 0re elico2 syl3anbrc fmptdf nfmpt1 esumfsupre eqtr3d eqtr4d csb nfv
      nfcv nfcsb1v nffv nfeq1 weq csbeq1a fveq2d eqeq1d cbvrex sylib wss eleq1d
      nfel1 rspc impcom iunmbl adantr ssiun2sf adantl syl3anc ralrimiva r19.29r
      wf volss breq1 biimpa reximi c0 wne 1nn ne0i r19.9rzv mp2b sylibr iccssxr
      sseldi ad2antrr xgepnf mpbid cvv nfdisj1 nfre1 nnex 3ad2antr3 esumpinfval
      a1i 3anassrs wo wn exmid rexnal orbi2i mpbir r19.29 xrge0nre sylan orim2d
      mpi mpjaodan ) ADUAZEZBFGZBFAUBZHZADIZUNEZBFGZBFAUCZDIZFUUNBUDZJUUNKJZBFT
      ZUUMUUPHUURUEBFUUNUFZLUGZUHMUIUJZUUSUUKUUPUULUURUVDJZUUKUUPHZUUJUUOHBFGUU
      LUVEUUJUUOBFUKAUVCBUVBUVCULUVBULZUMUOUPUUKUUPUUSUVDJUULUVFFBUQZUVBIZBUDZU
      USUVDUVFFUVIUUNBUUKUUPBUUJBFURZUUOBFURUSZUVFUVIUUNJZBFUVLUVFUVHFEZUVMUUKU
      VNUVMUUPUUKUVNHZUVNUUNNKUTVAZEZUVMUUKUVNVBUVOUUJUVQUUJBFVCUUIUVPADVGVDZOZ
      BFUUNUVPUVBUVGVEVFPVHVIVJUVFFNKVKVAZUVBXLUVJUVDJUVFBFUUNUVTUVBUVLUVFUVNHZ
      UUONUUNQRZUUNKUIRZUUNUVTEZUVFUUOBFUUKUUPVBVLZUWAUVQUWBUUKUVNUVQUUPUVSPUVQ
      UUNMEZUWBUUNKQRZNMEKMEZUVQUWFUWBUWGVMSVNVONKUUNVPVQVROUWAUUOUWCUWEUUNVSON
      UNEUWHUWDUUOUWBUWCVMSVTVONKUUNWAVQWBUVGWCBUVBBFUUNWDWEOWFPWGUUMUVAHZUURKU
      USUWIKUURQRZUURKJZUWIUWJCFTZUWJUWIBCUQZAWHZDIZKJZUWOUURQRZHZCFTZUWLUWIUWP
      CFTZUWQCFGUWSUWIUVAUWTUUMUVAVBZUUTUWPBCFUUTCWIBUWOKBUWNDBDWJBUWMAWKZWLWMB
      CWNZUUNUWOKUXCAUWNDBUWMAWOZWPWQWRWSUWIUWQCFUUMUWMFEZUWQUVAUUKUXEUWQUULUUK
      UXEHUWNUUIEZUUQUUIEZUWNUUQWTZUWQUXEUUKUXFUUJUXFBUWMFBUWNUUIUXBXBUXCAUWNUU
      IUXDXAXCXDUUKUXGUXEABXEZXFUXEUXHUUKBFAUWMUWNBFWJBUWMWJUXBUXDXGXHUWNUUQXMX
      IPPXJUWPUWQCFXKVFUWRUWJCFUWPUWQUWJUWOKUURQXNXOXPOLFEFXQXRUWJUWLSXSFLXTUWJ
      CFYAYBYCUWIUURMEZUWJUWKSUUKUXJUULUVAUUKUXGUXJUXIUXGUVPMUURNKYDUUIUVPUUQDV
      GVDYEOYFUURYGOYHUWIFUUNBYIUUMUVABUUKUULBUVKBFAYJUSUUTBFYKUSFYIEUWIYLYOUUK
      UULUVAUVNUVQUUKUULUVNUVQUVAUVSYMYPUXAYNWGUUKUUPUVAYQZUULUUKUUPUUOYRZBFTZY
      QZUXKUXNUUPUUPYRZYQUUPYSUXMUXOUUPUUOBFYTUUAUUBUUKUXMUVAUUPUUKUXMUVAUUKUXM
      HUUJUXLHZBFTUVAUUJUXLBFUUCUXPUUTBFUUJUVQUXLUUTUVRUUNUUDUUEXPOVHUUFUUGXFUU
      H $.
  $}

  ${
    $d k n A $.  $d k B $.
    $( The Lebesgue measure function is countably additive.  This theorem is to
       ~ volfiniun what ~ voliune is to ~ voliun .  (Contributed by Thierry
       Arnoux, 16-Oct-2017.) $)
    volfiniune $p |- ( ( A e. Fin /\ A. n e. A B e. dom vol /\ Disj_ n e. A B )
      -> ( vol ` U_ n e. A B ) = sum* n e. A ( vol ` B ) ) $=
      ( vk cfn wcel cvol wral w3a cfv wceq cpnf wrex nfcv cc0 cle wbr syl cxr
      wa cdm wdisj cr ciun cesum csu simpl1 simpl2 simpr r19.26 sylanbrc simpl3
      volfiniun syl3anc nfel1 nfra1 nfdisj1 nf3an nfan cv cico co r19.21bi cicc
      clt rspa volf ffvelrni sylan wb 0xr pnfxr elicc1 mp2an simp2bi 0re elico2
      ltpnf syl3anbrc esumpfinvalf eqtr4d csb nfcsb1v nffv nfeq1 csbeq1a fveq2d
      nfv eqeq1d cbvrex sylib wss eleq1d rspc impcom adantll finiunmbl ssiun2sf
      adantr adantl volss adantlr ralrimiva r19.29r syl2anc breq1 biimpa reximi
      wex rexex 19.9v iccssxr sseldi 3adant3 xgepnf mpbid 3ad2antl2 esumpinfval
      3adantl3 nfre1 wo wn exmid rexnal orbi2i mpbir r19.29 xrge0nre orim2d mpi
      ex 3ad2ant2 mpjaodan ) AEFZBGUAZFZCAHZCABUBZIZBGJZUCFZCAHZCABUDZGJZAYTCUE
      ZKYTLKZCAMZYSUUBTZUUDAYTCUFZUUEUUHYNYPUUATCAHZYRUUDUUIKYNYQYRUUBUGZUUHYQU
      UBUUJYNYQYRUUBUHZYSUUBUIZYPUUACAUJUKYNYQYRUUBULABCUMUNUUHAYTCCANZYSUUBCYN
      YQYRCCAEUUNUOYPCAUPCABUQURZUUACAUPUSUUKUUHCUTZAFZTZUUAOYTPQZYTLVEQZYTOLVA
      VBFZUUHUUACAUUMVCZUURYTOLVDVBZFZUUSUUHYQUUQUVDUULYQUUQTYPUVDYPCAVFYOUVCBG
      VGVHZRZVIUVDYTSFZUUSYTLPQZOSFLSFZUVDUVGUUSUVHIVJVKVLOLYTVMVNVORUURUUAUUTU
      VBYTVRROUCFUVIUVAUUAUUSUUTIVJVPVLOLYTVQVNVSVTWAYSUUGTZUUDLUUEUVJLUUDPQZUU
      DLKZUVJUVKDAMZUVKUVJCDUTZBWBZGJZLKZUVPUUDPQZTZDAMZUVMUVJUVQDAMZUVRDAHUVTU
      VJUUGUWAYSUUGUIZUUFUVQCDAUUFDWHCUVPLCUVOGCGNCUVNBWCZWDWEUUPUVNKZYTUVPLUWD
      BUVOGCUVNBWFZWGWIWJWKUVJUVRDAYSUVNAFZUVRUUGYNYQUWFUVRYRYNYQTZUWFTUVOYOFZU
      UCYOFZUVOUUCWLZUVRYQUWFUWHYNUWFYQUWHYPUWHCUVNACUVOYOUWCUOUWDBUVOYOUWEWMWN
      WOWPUWGUWIUWFABCWQZWSUWFUWJUWGCABUVNUVOUUNCUVNNUWCUWEWRWTUVOUUCXAUNXSXBXC
      UVQUVRDAXDXEUVSUVKDAUVQUVRUVKUVPLUUDPXFXGXHRUVMUVKDXIUVKUVKDAXJUVKDXKWKRU
      VJUUDSFZUVKUVLVJYSUWLUUGYNYQUWLYRUWGUWIUWLUWKUWIUVCSUUDOLXLYOUVCUUCGVGVHX
      MRXNWSUUDXORXPUVJAYTCEYSUUGCUUOUUFCAXTUSYNYQYRUUGUGYSUUQUVDUUGYQYNUUQUVDY
      RUVFXQXBUWBXRWAYQYNUUBUUGYAZYRYQUUBUUAYBZCAMZYAZUWMUWPUUBUUBYBZYAUUBYCUWO
      UWQUUBUUACAYDYEYFYQUWOUUGUUBYQUWOUUGYQUWOTYPUWNTZCAMUUGYPUWNCAYGUWRUUFCAY
      PUVDUWNUUFUVEYTYHVIXHRYKYIYJYLYM $.
  $}

  ${
    $d f n x y $.
    $( The Lebesgue measure is a measure.  (Contributed by Thierry Arnoux,
       16-Oct-2017.) $)
    volmeas $p |- vol e. ( measures ` dom vol ) $=
      ( vx vy vf vn cvol cfv wcel cc0 c0 wceq cv com wbr wa wral cen simpr nfcv
      cn nfv cdm cmeas cpnf cicc co wf cdom wdisj cuni cesum wi cpw covol csiga
      crn cr fvssunirn dmvlsiga sselii 0elsiga ax-mp mblvol ovol0 eqtri nfdisj1
      volf cfn nfan wss elpwi ad3antrrr sseldd ex ralrimi simplrr uniiun fveq2i
      w3a ciun volfiniune syl5eq syl3anc wf1o wex bren fveq2 simpl eqidd sselda
      a1i syl ffvelrnd esumf1o adantlr f1of ffvelrnda ralrimiva disjrdx biimpar
      adantl id syl2anc voliune f1ofo iunrdx syl6eqr fveq2d exlimdv imp sylan2b
      3eqtr2rd wo csdm brdom2 biimpi isfinite2 ensymb nnenom entr sylbi orim12i
      mpan ad2antrl mpjaodan rgen wb ismeas mpbir3an ) EEUAZUBFGZYIHUCUDUEZEUFZ
      IEFZHJZAKZLUGMZBYOBKZUHZNZYOUIZEFZYOYQEFZBUJZJZUKZAYIULZOZVFYMIUMFZHIYIGZ
      YMUUHJYIUNUOUIZGZUUIUPUNFUUJYIUNUPUQURUSZYIUTVAIVBVAVCVDUUEAUUFYOUUFGZYSU
      UDUUMYSNZYOVGGZUUDSYOPMZUUNUUONZUUOYQYIGZBYOOZYRUUDUUNUUOQUUQUURBYOUUNUUO
      BUUMYSBUUMBTYPYRBYPBTBYOYQVEVHVHUUOBTVHUUQYQYOGZUURUUQUUTNYOYIYQUUMYOYIVI
      ZYSUUOUUTYOYIVJZVKUUQUUTQVLVMVNUUMYPYRUUOVOUUOUUSYRVRUUABYOYQVSZEFUUCYTUV
      CEBYOVPZVQYOYQBVTWAWBUUPUUNSYOCKZWCZCWDZUUDSYOCWEUUNUVGUUDUUNUVFUUDCUUNUV
      FUUDUUNUVFNZUUCSDKZUVEFZEFZDUJZDSUVJVSZEFZUUAUUMUVFUUCUVLJYSUUMUVFNZYOUUB
      SUVKBDUVEUVJUUFUVODTDUUBRBUVKRDYORDSRDUVERYQUVJEWFUUMUVFWGZUUMUVFQUVOUVIS
      GZNUVJWHUVOUUTNZYIYKYQEYLUVRVFWJUVOYOYIYQUVOUUMUVAUVPUVBWKWIWLWMWNUVHUVJY
      IGZDSODSUVJUHZUVNUVLJUVHUVSDSUVHUVQNYOYIUVJUUMUVAYSUVFUVQUVBVKUVHSYOUVIUV
      EUVFSYOUVEUFUUNSYOUVEWOWTWPVLWQUVHUVFYRUVTUUNUVFQUUMYPYRUVFVOUVFUVTYRUVFD
      BSUVJYOYQUVEUVFXAUVFYQUVJJQZWRWSXBUVJDXCXBUVFUVNUUAJUUNUVFUVMYTEUVFUVMUVC
      YTUVFDBSUVJYOYQUVESYOUVEXDUWAXEUVDXFXGWTXKVMXHXIXJYPUUOUUPXLZUUMYRYPYOLXM
      MZYOLPMZXLZUWBYPUWEYOLXNXOUWCUUOUWDUUPYOXPUWDLYOPMZUUPYOLXQSLPMUWFUUPXRSL
      YOXSYBXTYAWKYCYDVMYEUUKYJYLYNUUGVRYFUULABYIEYGVAYH $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The Dirac delta measure
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c Ddelta $. $( Dirac delta measure, usually noted &delta;. $)

  $( Extend class notation to include the Dirac delta measure. $)
  cdde $a class Ddelta $.

  $( Define the Dirac delta measure.  (Contributed by Thierry Arnoux,
     14-Sep-2018.) $)
  df-dde $a |- Ddelta = ( a e. ~P RR |-> if ( 0 e. a , 1 , 0 ) ) $.

  ${
    $d a A $.
    $( Value of the delta measure.  (Contributed by Thierry Arnoux,
       14-Sep-2018.) $)
    ddeval1 $p |- ( ( A C_ RR /\ 0 e. A ) -> ( Ddelta ` A ) = 1 ) $=
      ( va cr wss cc0 wcel cdde cfv c1 cif cpw wceq cvv reex ssex elpwg biimpar
      mpancom cv eleq2 ifbid df-dde 1ex c0ex ifex fvmpt syl iftrue sylan9eq ) A
      CDZEAFZAGHZUKIEJZIUJACKZFZULUMLAMFZUJUOACNOUPUOUJACMPQRBAEBSZFZIEJUMUNGUQ
      ALURUKIEUQAETUABUBUKIEUCUDUEUFUGUKIEUHUI $.

    $( Value of the delta measure.  (Contributed by Thierry Arnoux,
       14-Sep-2018.) $)
    ddeval0 $p |- ( ( A C_ RR /\ -. 0 e. A ) -> ( Ddelta ` A ) = 0 ) $=
      ( va cr wss cc0 wcel wn cdde cfv cif cpw wceq cvv reex ssex elpwg biimpar
      c1 mpancom cv eleq2 ifbid df-dde 1ex c0ex ifex fvmpt syl iffalse sylan9eq
      ) ACDZEAFZGAHIZULREJZEUKACKZFZUMUNLAMFZUKUPACNOUQUPUKACMPQSBAEBTZFZREJUNU
      OHURALUSULREURAEUAUBBUCULREUDUEUFUGUHULREUIUJ $.
  $}

  ${
    $d a k x y $.
    $( The Dirac delta measure is a measure.  (Contributed by Thierry Arnoux,
       14-Sep-2018.) $)
    ddemeas $p |- Ddelta e. ( measures ` ~P RR ) $=
      ( vx vy va vk cdde cr cfv wcel cc0 cpnf c0 wceq wa cesum c1 cxr wn adantl
      wss cvv cpw cmeas cicc co wf cv com cdom wbr wdisj cuni wi wral cif rexri
      cle 1re 0le1 pnfge ax-mp w3a wb 0xr pnfxr elicc1 mp2an mpbir3an 0e0iccpnf
      keepel rgenw df-dde fmpt mpbi 0ss noel ddeval0 crab cun rabxm esumeq1 nfv
      cxad rabexg cin rabnc a1i elrabi simpl elelpwi syl2anc ffvelrni esumsplit
      nfcv syl syl5eq adantr wrex csn simp-4l vex rabsnel rabsnt ancoms adantrr
      eleq2 simpr fveq2d esumsn elpwid ddeval1 eqtrd syl12anc wex wreu wrmo wal
      simprr df-disj c0ex eleq1 rmobidv spcv sylbi biimpi imp sylan reusn sylib
      rmo5 cbvrabv eqeq1i ancri df-rex biimpri syl2an eqtr4d elrab syl6eq csiga
      adantlr sylbir eximi sylibr adantll r19.29a elpwi sspwuni nfre1 nfn exbii
      eluni2 neq0 3bitr4i con1i esumeq1d esumnul con3i pm2.61dan notbid simprbi
      esumeq2dv rabex esum0 oveq12d vuniex elpw iccssxr xaddid1 3eqtrrd adantrl
      sseldi 4syl ex rgen crn reex pwsiga elrnsiga ismeas mp2b ) EFUAZUBGHZUWAI
      JUCUDZEUEZKEGILZAUFZUGUHUIZBUWFBUFZUJZMZUWFUKZEGZUWFUWHEGZBNZLZULZAUWAUAZ
      UMZICUFZHZOIUNZUWCHZCUWAUMUWDUXBCUWAUWTOIUWCOUWCHZOPHZIOUPUIZOJUPUIZOUQUO
      ZURUXDUXFUXGOUSUTIPHJPHUXCUXDUXEUXFVAVBVCVDIJOVEVFVGVHVIVJCUWAUWCUXAECVKV
      LVMZKFSIKHQUWEFVNIVOKVPVFUWPAUWQUWFUWQHZUWJUWOUXIUWIUWOUWGUXIUWIMZUWNUWTC
      UWFVQZUWMBNZUWTQZCUWFVQZUWMBNZWBUDZUWLIWBUDZUWLUXIUWNUXPLUWIUXIUWNUXKUXNV
      RZUWMBNZUXPUWFUXRLUWNUXSLUWTCUWFVSUWFUXRUWMBVTUTUXIUXKUXNUWMBUXIBWABUXKWM
      BUXNWMZUWTCUWFUWQWCUXMCUWFUWQWCUXKUXNWDKLUXIUWTCUWFWEWFUXIUWHUXKHZMZUWHUW
      AHZUWMUWCHZUYBUWHUWFHZUXIUYCUYAUYEUXIUWTCUWHUWFWGRUXIUYAWHUWHUWFUWAWIZWJU
      WAUWCUWHEUXHWKZWNUXIUWHUXNHZMZUYCUYDUYIUYEUXIUYCUYHUYEUXIUXMCUWHUWFWGRUXI
      UYHWHUYFWJZUYGWNWLWOWPUXJUXLUWLUXOIWBUXJIUWHHZBUWFWQZUXLUWLLUXJUYLMZUXLOU
      WLUYMUXKDUFZWRZLZUXLOLDUWFUYMUYNUWFHZMZUYPMZUXLUYOUWMBNZOUYPUXLUYTLUYRUXK
      UYOUWMBVTRUYSUXIUYQIUYNHZUYTOLUXIUWIUYLUYQUYPWSUYPUYQUYRUWTCUWFUYNDWTZXAZ
      RUYPVUAUYRUWTVUACUWFUYNVUBUWSUYNIXEXBRUXIUYQVUAMMZUYTUYNEGZOVUDUYNUWAHZUY
      TVUELUXIUYQVUFVUAUYQUXIVUFUYNUWFUWAWIXCXDZVUFUWMVUEBUYNTVUFUWHUYNLZMUWHUY
      NEVUFVUHXFXGUYNTHVUFVUBWFUWAUWCUYNEUXHWKXHWNVUDUYNFSVUAVUEOLVUDUYNFVUGXIU
      XIUYQVUAXQUYNXJWJXKXLXKUWIUYLUYPDUWFWQZUXIUWIUYLMZUYKBUWFVQZUYOLZDXMZVUIV
      UJUYKBUWFXNZVUMUWIUYKBUWFXOZUYLVUNUWIUYNUWHHZBUWFXOZDXPVUOBDUWFUWHXRVUQVU
      ODIXSUYNILVUPUYKBUWFUYNIUWHXTYAYBYCVUOUYLVUNVUOUYLVUNULUYKBUWFYIYDYEYFUYK
      BDUWFYGYHVUMUYQUYPMZDXMVUIVULVURDVULUYPVURUXKVUKUYOUWTUYKCBUWFUWSUWHIXEZY
      JYKUYPUYQVUCYLUUAUUBUYPDUWFYMUUCWNUUDUUEUXIUYLUWLOLZUWIUXIUWKFSZIUWKHZVUT
      UYLUXIUWFUWASVVAUWFUWAUUFUWFFUUGYHZVVBUYLBIUWFUUKZYNUWKXJYOYTYPUXJUYLQZMU
      XLIUWLVVEUXLILUXJVVEUXLKUWMBNIVVEUXKKUWMBUYLBUYKBUWFUUHUUIUXKKLZUYLVVFQZU
      YLUYABXMUYEUYKMZBXMVVGUYLUYAVVHBUWTUYKCUWHUWFVUSYQUUJBUXKUULUYKBUWFYMUUMY
      DUUNUUOBUWMUUPYRRUXIVVEUWLILZUWIUXIVVAVVBQVVIVVEVVCVVBUYLVVBUYLVVDYDUUQUW
      KVPYOYTYPUURUXIUXOILUWIUXIUXOUXNIBNZIUXIUXNUWMIBUYIUWHFSUYKQZUWMILUYIUWHF
      UYJXIUYHVVKUXIUYHUYEVVKUXMVVKCUWHUWFUWSUWHLUWTUYKVUSUUSYQUUTRUWHVPWJUVAUX
      NTHVVJILUXMCUWFAWTUVBUXNBTUXTUVCUTYRWPUVDUXIUXQUWLLZUWIUXIVVAUWKUWAHZUWLP
      HVVLVVCVVMVVAUWKFAUVEUVFYNVVMUWCPUWLIJUVGUWAUWCUWKEUXHWKUVKUWLUVHUVLWPUVI
      UVJUVMUVNUWAFYSGHZUWAYSUVOUKHUWBUWDUWEUWRVAVBFTHVVNUVPFTUVQUTUWAFUVRABUWA
      EUVSUVTVG $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The 'almost everywhere' relation
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c ae $. $( 'almost everywhere', noted &mu;-a.e. for a given measure &mu;. $)
  $c ~ae $. $( 'almost everywhere' builder for functions $)

  $( Extend class notation to include the 'almost everywhere' relation. $)
  cae $a class ae $.

  $( Extend class notation to include the 'almost everywhere' builder. $)
  cfae $a class ~ae $.

  ${
    $d a m $.
    $( Define 'almost everywhere' with regard to a measure ` M ` .  A property
       holds almost everywhere if the measure of the set where it does not hold
       has measure zero.  (Contributed by Thierry Arnoux, 20-Oct-2017.) $)
    df-ae $a |- ae = { <. a , m >. | ( m ` ( U. dom m \ a ) ) = 0 } $.

    $( 'almost everywhere' is a relation.  (Contributed by Thierry Arnoux,
       20-Oct-2017.) $)
    relae $p |- Rel ae $=
      ( vm va cv cdm cuni cdif cfv cc0 wceq cae df-ae relopabi ) ACZDEBCFMGHIBA
      JABKL $.
  $}

  ${
    $d a m A $.  $d a m M $.
    $( 'almost everywhere' relation for a measure and a measurable set ` A ` .
       (Contributed by Thierry Arnoux, 20-Oct-2017.) $)
    brae $p |- ( ( M e. U. ran measures /\ A e. dom M ) ->
      ( A ae M <-> ( M ` ( U. dom M \ A ) ) = 0 ) ) $=
      ( vm va cdm wcel cmeas crn cuni cae wbr cdif cfv cc0 wb cv wa simpr dmeqd
      wceq unieqd simpl difeq12d fveq12d eqeq1d df-ae brabga ancoms ) ABEZFBGHI
      ZFABJKUIIZALZBMZNTZOCPZEZIZDPZLZUOMZNTUNDCABJUIUJURATZUOBTZQZUTUMNVCUSULU
      OBVAVBRZVCUQUKURAVCUPUIVCUOBVDSUAVAVBUBUCUDUECDUFUGUH $.
  $}

  ${
    $d a m x O $.  $d a m M $.  $d a m ph $.
    braew.1 $e |- U. dom M = O $.
    $( 'almost everywhere' relation for a measure ` M ` and a property ` ph `
       (Contributed by Thierry Arnoux, 20-Oct-2017.) $)
    braew $p |- ( M e. U. ran measures -> ( { x e. O | ph } ae M
      <-> ( M ` { x e. O | -. ph } ) = 0 ) ) $=
      ( vm va cmeas cuni wcel crab cae cdm cdif cfv cc0 wceq cvv syl cv crn wbr
      wn wb dmexg uniexg syl5eqelr rabexg wa simpr dmeqd simpl difeq12d fveq12d
      unieqd eqeq1d df-ae brabga mpancom difeq1i notrab fveq2i eqeq1i syl6bb
      eqtri ) CHUAIZJZABDKZCLUBZCMZIZVHNZCOZPQZAUCBDKZCOZPQVHRJZVGVIVNUDVGDRJVQ
      VGDVKREVGVJRJVKRJCVFUEVJRUFSUGABDRUHSFTZMZIZGTZNZVROZPQVNGFVHCLRVFWAVHQZV
      RCQZUIZWCVMPWFWBVLVRCWDWEUJZWFVTVKWAVHWFVSVJWFVRCWGUKUOWDWEULUMUNUPFGUQUR
      USVMVPPVLVOCVLDVHNVOVKDVHEUTABDVAVEVBVCVD $.
  $}

  ${
    $d x O $.  $d x ph $.
    truae.1 $e |- U. dom M = O $.
    truae.2 $e |- ( ph -> M e. U. ran measures ) $.
    truae.3 $e |- ( ph -> ps ) $.
    $( A truth holds almost everywhere.  (Contributed by Thierry Arnoux,
       20-Oct-2017.) $)
    truae $p |- ( ph -> { x e. O | ps } ae M ) $=
      ( crab cae wbr wn cfv cc0 wceq c0 wss wcel syl cmeas cv wi wral ralrimivw
      pm2.24d rabss sylibr ss0 fveq2d crn cuni measbasedom measvnul sylbi eqtrd
      cdm wb braew mpbird ) ABCEIDJKZBLZCEIZDMZNOZAVCPDMZNAVBPDAVBPQZVBPOAVACUA
      PRZUBZCEUCVFAVHCEABVGHUEUDVACEPUFUGVBUHSUIADTUJUKRZVENOZGVIDDUPZTMRVJDULV
      KDUMUNSUOAVIUTVDUQGBCDEFURSUS $.
  $}

  ${
    $d x O $.
    aean.1 $e |- U. dom M = O $.
    $( A conjunction holds almost everywhere if and only if both its terms do.
       (Contributed by Thierry Arnoux, 20-Oct-2017.) $)
    aean $p |- ( ( M e. U. ran measures /\ { x e. O | -. ph } e. dom M
      /\ { x e. O | -. ps } e. dom M ) -> ( { x e. O | ( ph /\ ps ) } ae M
      <-> ( { x e. O | ph } ae M /\ { x e. O | ps } ae M ) ) ) $=
      ( wcel wn crab wa cfv cc0 wceq cae wbr wb a1i cle adantr syl3anc crn cuni
      cmeas cdm w3a cun wo unrab ianor rabbiia eqtr4i fveq2i eqeq1i measbasedom
      biimpi 3ad2ant1 simp2 csiga dmmeas unelsiga syl3an1 ssun1 measssd breqtrd
      wss simpr measle0 simp3 ssun2 jca measbase syl cxad measunl simprl simprr
      cv co oveq12d cxr 0xr xaddid1 ax-mp impbida syl5bbr braew anbi12d 3bitr4d
      syl6eq ) DUCUAUBGZAHZCEIZDUDZGZBHZCEIZWMGZUEZABJZHZCEIZDKZLMZWLDKZLMZWPDK
      ZLMZJZWSCEIDNOZACEIDNOZBCEIDNOZJZXCWLWPUFZDKZLMZWRXHXNXBLXMXADXMWKWOUGZCE
      IXAWKWOCEUHWTXPCEWTXPPCVQEGABUIQUJUKULUMWRXOXHWRXOJZXEXGXQDWMUCKGZWNXDLRO
      XEWRXRXOWJWNXRWQWJXRDUNUOUPZSZWRWNXOWJWNWQUQZSXQXDXNLRWRXDXNROXOWRWLXMWMD
      XSYAWJWMURUAUBGZWNWQXMWMGZDUSWLWPWMUTZVAZWLXMVEWRWLWPVBQVCSWRXOVFZVDWLWMD
      VGTXQXRWQXFLROXGXTWRWQXOWJWNWQVHZSXQXFXNLRWRXFXNROXOWRWPXMWMDXSYGYEWPXMVE
      WRWPWLVIQVCSYFVDWPWMDVGTVJWRXHJZXRYCXNLROXOWRXRXHXSSZYHYBWNWQYCYHXRYBYIWM
      DVKVLWRWNXHYASZWRWQXHYGSZYDTYHXNXDXFVMVRZLRYHWLWPWMDYIYJYKVNYHYLLLVMVRZLY
      HXDLXFLVMWRXEXGVOWRXEXGVPVSLVTGYMLMWALWBWCWIVDXMWMDVGTWDWEWJWNXIXCPWQWSCD
      EFWFUPWJWNXLXHPWQWJXJXEXKXGACDEFWFBCDEFWFWGUPWH $.
  $}

  ${
    $d r m f g x $.
    $( Define a builder for an 'almost everywhere' relation between functions,
       from relations between function values.  In this definition, the range
       of ` f ` and ` g ` is enforced in order to ensure the resulting relation
       is a set.  (Contributed by Thierry Arnoux, 22-Oct-2017.) $)
    df-fae $a |- ~ae = ( r e. _V , m e. U. ran measures |-> { <. f , g >. |
      ( ( f e. ( dom r ^m U. dom m ) /\ g e. ( dom r ^m U. dom m ) ) /\
        { x e. U. dom m | ( f ` x ) r ( g ` x ) } ae m ) } ) $.
  $}

  ${
    $d f g m r x M $.  $d f g m r x R $.
    $( Value of the 'almost everywhere' relation for a given relation and
       measure.  (Contributed by Thierry Arnoux, 22-Oct-2017.) $)
    faeval $p |- ( ( R e. _V /\ M e. U. ran measures ) ->
      ( R ~ae M ) = { <. f , g >. |
        ( ( f e. ( dom R ^m U. dom M ) /\ g e. ( dom R ^m U. dom M ) ) /\
          { x e. U. dom M | ( f ` x ) R ( g ` x ) } ae M ) } ) $=
      ( vr vm cuni cv cdm cmap co wcel wa cfv wbr crab cae copab wceq cvv cmeas
      crn cfae simpl dmeqd simpr unieqd oveq12d anbi12d breqd rabeqbidv breq12d
      eleq2d opabbidv df-fae cxp ovex xpex opabssxp ssexi ovmpt2a ) FGBEUAUBUCH
      CIZFIZJZGIZJZHZKLZMZDIZVIMZNZAIZVCOZVNVKOZVDPZAVHQZVFRPZNZCDSVCBJZEJZHZKL
      ZMZVKWDMZNZVOVPBPZAWCQZERPZNZCDSZUDVDBTZVFETZNZVTWKCDWOVMWGVSWJWOVJWEVLWF
      WOVIWDVCWOVEWAVHWCKWOVDBWMWNUEZUFWOVGWBWOVFEWMWNUGZUFUHZUIZUNWOVIWDVKWSUN
      UJWOVRWIVFERWOVQWHAVHWCWRWOVDBVOVPWPUKULWQUMUJUOACDGFUPWLWDWDUQWDWDWAWCKU
      RZWTUSWJCDWDWDUTVAVB $.
  $}

  ${
    $d f g x M $.  $d f g x R $.
    $( The 'almost everywhere' builder for functions produces relations.
       (Contributed by Thierry Arnoux, 22-Oct-2017.) $)
    relfae $p |- ( ( R e. _V /\ M e. U. ran measures ) -> Rel ( R ~ae M ) ) $=
      ( vf vg vx cvv wcel cmeas crn cuni wa cfae co wrel cdm cmap cfv wbr crab
      cv cae copab relopab faeval releqd mpbiri ) AFGBHIJGKZABLMZNCTZAOBOJZPMZG
      DTZUKGKETZUIQUMULQAREUJSBUARKZCDUBZNUNCDUCUGUHUOEACDBUDUEUF $.
  $}

  ${
    $d f g x F $.  $d f g x G $.  $d f g x M $.  $d f g x R $.
    brfae.0 $e |- dom R = D $.
    brfae.1 $e |- ( ph -> R e. _V ) $.
    brfae.2 $e |- ( ph -> M e. U. ran measures ) $.
    brfae.3 $e |- ( ph -> F e. ( D ^m U. dom M ) ) $.
    brfae.4 $e |- ( ph -> G e. ( D ^m U. dom M ) ) $.
    $( 'almost everywhere' relation for two functions ` F ` and ` G ` with
       regard to the measure ` M ` .  (Contributed by Thierry Arnoux,
       22-Oct-2017.) $)
    brfae $p |- ( ph -> ( F ( R ~ae M ) G
      <-> { x e. U. dom M | ( F ` x ) R ( G ` x ) } ae M ) ) $=
      ( vf vg cv cmap wcel wa cfv wbr cdm cuni co crab copab cfae wb wceq simpl
      cae eleq1d simpr anbi12d fveq1d breq12d rabbidv breq1d brabga syl2anc cvv
      eqid cmeas crn faeval breqd oveq1i syl6eleqr jca biantrurd 3bitr4d ) AEFM
      OZDUAZGUAUBZPUCZQZNOZVNQZRZBOZVKSZVSVPSZDTZBVMUDZGUJTZRZMNUEZTZEVNQZFVNQZ
      RZVSESZVSFSZDTZBVMUDZGUJTZRZEFDGUFUCZTWOAECVMPUCZQFWRQWGWPUGKLWEWPMNEFWFW
      RWRVKEUHZVPFUHZRZVRWJWDWOXAVOWHVQWIXAVKEVNWSWTUIZUKXAVPFVNWSWTULZUKUMXAWC
      WNGUJXAWBWMBVMXAVTWKWAWLDXAVSVKEXBUNXAVSVPFXCUNUOUPUQUMWFVAURUSAWQWFEFADU
      TQGVBVCUBQWQWFUHIJBDMNGVDUSVEAWJWOAWHWIAEWRVNKVLCVMPHVFZVGAFWRVNLXDVGVHVI
      VJ $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Measurable functions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c MblFnM $. $( Measurable function $)

  $( Extend class notation with the measurable functions builder. $)
  cmbfm $a class MblFnM $.

  ${
    $d f s t x $.
    $( Define the measurable function builder, which generates the set of
       measurable functions from a measurable space to another one.  Here, the
       measurable spaces are given using their sigma-algebras ` s ` and ` t ` ,
       and the spaces themselves are recovered by ` U. s ` and ` U. t ` .

       Note the similarities between the definition of measurable functions in
       measure theory, and of continuous functions in topology.

       This is the definition for the generic measure theory.  For the specific
       case of functions from ` RR ` to ` CC ` , see ~ df-mbf .  (Contributed
       by Thierry Arnoux, 23-Jan-2017.) $)
    df-mbfm $a |- MblFnM = ( s e. U. ran sigAlgebra , t e. U. ran sigAlgebra
      |-> { f e. ( U. t ^m U. s ) | A. x e. t ( `' f " x ) e. s } ) $.
  $}

  ${
    $d f x F $.  $d f s t x S $.  $d f s t x T $.
    ismbfm.1 $e |- ( ph -> S e. U. ran sigAlgebra ) $.
    ismbfm.2 $e |- ( ph -> T e. U. ran sigAlgebra ) $.
    $( The predicate " ` F ` is a measurable function from the measurable space
       ` S ` to the measurable space ` T ` ".  Cf. ~ ismbf .  (Contributed by
       Thierry Arnoux, 23-Jan-2017.) $)
    ismbfm $p |- ( ph -> ( F e. ( S MblFnM T ) <->
            ( F e. ( U. T ^m U. S ) /\ A. x e. T ( `' F " x ) e. S ) ) ) $=
      ( vf vs vt cmbfm co wcel cv ccnv wral cuni cmap crab wceq csiga crn unieq
      cima wa oveq2d eleq2 ralbidv rabeqbidv oveq1d raleq df-mbfm rabex syl2anc
      ovex ovmpt2 eleq2d cnveq imaeq1d eleq1d elrab syl6bb ) AECDKLZMEHNZOZBNZU
      DZCMZBDPZHDQZCQZRLZSZMEVLMEOZVFUDZCMZBDPZUEAVCVMEACUAUBQZMDVRMVCVMTFGIJCD
      VRVRVGINZMZBJNZPZHWAQZVSQZRLZSVMKVHBWAPZHWCVKRLZSVSCTZWBWFHWEWGWHWDVKWCRV
      SCUCUFWHVTVHBWAVSCVGUGUHUIWADTZWFVIHWGVLWIWCVJVKRWADUCUJVHBWADUKUIBJHIULV
      IHVLVJVKRUOUMUPUNUQVIVQHEVLVDETZVHVPBDWJVGVOCWJVEVNVFVDEURUSUTUHVAVB $.
  $}

  ${
    $d x f $.  $d a s t F $.  $d f s t $.  $d s t x F $.
    $( The property of being a measurable function.  (Contributed by Thierry
       Arnoux, 23-Jan-2017.) $)
    elunirnmbfm $p |- ( F e. U. ran MblFnM <->
        E. s e. U. ran sigAlgebra E. t e. U. ran sigAlgebra
        ( F e. ( U. t ^m U. s ) /\ A. x e. t ( `' F " x ) e. s ) ) $=
      ( va vf cmbfm crn cuni wcel cv co csiga wrex cmap ccnv cima wral wa cfv
      cdm cxp wfun wb crab df-mbfm mpt2fun elunirn ax-mp ovex dmmpt2 rexeqi cop
      rabex fveq2 df-ov syl6eqr eleq2d rexxp 3bitri simpl simpr ismbfm 2rexbiia
      wceq bitri ) CGHIJZCDKZBKZGLZJZBMHIZNDVLNZCVIIZVHIZOLZJCPAKZQVHJAVIRSZBVL
      NDVLNVGCEKZGTZJZEGUAZNZWAEVLVLUBZNVMGUCVGWCUDDBVLVLFKPVQQVHJAVIRZFVPUEZGA
      BFDUFZUGECGUHUIWAEWBWDDBVLVLWFGWGWEFVPVNVOOUJUNUKULWAVKEDBVLVLVSVHVIUMZVE
      ZVTVJCWIVTWHGTVJVSWHGUOVHVIGUPUQURUSUTVKVRDBVLVLVHVLJZVIVLJZSAVHVICWJWKVA
      WJWKVBVCVDVF $.
  $}

  ${
    $d s t x F $.
    mbfmfun.1 $e |- ( ph -> F e. U. ran MblFnM ) $.
    $( A measurable function is a function.  (Contributed by Thierry Arnoux,
       24-Jan-2017.) $)
    mbfmfun $p |- ( ph -> Fun F ) $=
      ( vt vs vx cmbfm cuni wcel cv cmap co ccnv cima wral csiga wrex rexlimivw
      crn wa wfun elunirnmbfm biimpi elmapfun adantr 3syl ) ABGSHIZBDJZHZEJZHZK
      LIZBMFJNUJIFUHOZTZDPSHZQZEUOQZBUAZCUGUQFDBEUBUCUPUREUOUNURDUOULURUMBUIUKU
      DUERRUF $.
  $}

  ${
    $d s t x F $.  $d s t x S $.  $d t x T $.
    mbfmf.1 $e |- ( ph -> S e. U. ran sigAlgebra ) $.
    mbfmf.2 $e |- ( ph -> T e. U. ran sigAlgebra ) $.
    mbfmf.3 $e |- ( ph -> F e. ( S MblFnM T ) ) $.
    $( A measurable function as a function with domain and codomain.
       (Contributed by Thierry Arnoux, 25-Jan-2017.) $)
    mbfmf $p |- ( ph -> F : U. S --> U. T ) $=
      ( vx cuni cmap co wcel wf ccnv cv cima wral cmbfm wa ismbfm simpld elmapi
      mpbid syl ) ADCIZBIZJKLZUFUEDMAUGDNHOPBLHCQZADBCRKLUGUHSGAHBCDEFTUCUADUEU
      FUBUD $.

    $( The predicate to be a measurable function.  (Contributed by Thierry
       Arnoux, 30-Jan-2017.) $)
    isanmbfm $p |- ( ph -> F e. U. ran MblFnM ) $=
      ( vt vs vx cv cuni cmap co wcel wral wa crn wrex cmbfm csiga ismbfm mpbid
      ccnv cima wceq unieq oveq2d eleq2d ralbidv anbi12d oveq1d rspc2ev syl3anc
      eleq2 raleq elunirnmbfm sylibr ) ADHKZLZIKZLZMNZOZDUDJKUEZVAOZJUSPZQZHUAR
      LZSIVISZDTRLOABVIOCVIODCLZBLZMNZOZVEBOZJCPZQZVJEFADBCTNOVQGAJBCDEFUBUCVHV
      QDUTVLMNZOZVOJUSPZQIHBCVIVIVABUFZVDVSVGVTWAVCVRDWAVBVLUTMVABUGUHUIWAVFVOJ
      USVABVEUOUJUKUSCUFZVSVNVTVPWBVRVMDWBUTVKVLMUSCUGULUIVOJUSCUPUKUMUNJHDIUQU
      R $.

    $d x A $.
    mbfmcnvima.4 $e |- ( ph -> A e. T ) $.
    $( The preimage by a measurable function is a measurable set.  (Contributed
       by Thierry Arnoux, 23-Jan-2017.) $)
    mbfmcnvima $p |- ( ph -> ( `' F " A ) e. S ) $=
      ( vx wcel ccnv cv cima wral cuni cmap co cmbfm wa ismbfm mpbid wceq rspcv
      simprd imaeq2 eleq1d sylc ) ABDKELZJMZNZCKZJDOZUIBNZCKZIAEDPCPQRKZUMAECDS
      RKUPUMTHAJCDEFGUAUBUEULUOJBDUJBUCUKUNCUJBUIUFUGUDUH $.
  $}

  ${
    mbfmbfm.1 $e |- ( ph -> M e. U. ran measures ) $.
    mbfmbfm.2 $e |- ( ph -> J e. Top ) $.
    mbfmbfm.3 $e |- ( ph -> F e. ( dom M MblFnM ( sigaGen ` J ) ) ) $.
    $( A measurable function to a Borel Set is measurable.  (Contributed by
       Thierry Arnoux, 24-Jan-2017.) $)
    mbfmbfm $p |- ( ph -> F e. U. ran MblFnM ) $=
      ( cdm csigagen cfv cmeas cuni wcel csiga measbasedom biimpi measbase 3syl
      crn ctop sgsiga isanmbfm ) ADHZCIJBADKSLMZDUCKJMZUCNSLMEUDUEDOPUCDQRACTFU
      AGUB $.
  $}

  ${
    $d x A $.  $d y F $.  $d x y S $.  $d x y T $.  $d x y ph $.
    mbfmcst.1 $e |- ( ph -> S e. U. ran sigAlgebra ) $.
    mbfmcst.2 $e |- ( ph -> T e. U. ran sigAlgebra ) $.
    mbfmcst.3 $e |- ( ph -> F = ( x e. U. S |-> A ) ) $.
    mbfmcst.4 $e |- ( ph -> A e. U. T ) $.
    $( A constant function is measurable.  Cf. ~ mbfconst .  (Contributed by
       Thierry Arnoux, 26-Jan-2017.) $)
    mbfmcst $p |- ( ph -> F e. ( S MblFnM T ) ) $=
      ( vy wcel cuni ccnv cima adantr syl c0 cxp cdm cmbfm co cmap cv wf fmpt3d
      wral csiga crn unielsiga elmapd mpbird cmpt csn cin wceq fconstmpt cnveqi
      cres cnvxp eqtr3i imaeq1i df-ima df-rn 3eqtri cvv df-res inxp inv1 xpeq2i
      dmeqi xpeq2 xp0 syl6eq dmeqd dm0 adantl 0elsiga eqeltrd syl5eqel wne dmxp
      wa pm2.61dane ralrimivw cnveqd imaeq1d eleq1d ralbidv ismbfm mpbir2and )
      AFDEUAUBLFEMZDMZUCUBLZFNZKUDZOZDLZKEUGZAWNWMWLFUEABWMCWLFIACWLLBUDWMLJPUF
      AWLWMFEDAEUHUIMZLWLELHEUJQADWTLZWMDLZGDUJQZUKULAWSBWMCUMZNZWPOZDLZKEUGAXG
      KEAXGCUNZWPUOZRAXIRUPZWCZXFWMXISZTZDXFXHWMSZWPUSZNZTZXIWMSZNZTXMXFXNWPOXO
      UIXQXEXNWPWMXHSZNXEXNXTXDBWMCUQURWMXHUTVAVBXNWPVCXOVDVEXPXSXOXRXOXNWPVFSU
      OXIWMVFUOZSXRXNWPVGXHWMWPVFVHYAWMXIWMVIVJVEURVKXSXLXIWMUTVKVEZXKXMRDXJXMR
      UPAXJXMRTRXJXLRXJXLWMRSRXIRWMVLWMVMVNVOVPVNVQARDLZXJAXAYCGDVRQPVSVTAXIRWA
      ZWCZXFXMDYBYEXMWMDYDXMWMUPAWMXIWBVQAXBYDXCPVSVTWDWEAWRXGKEAWQXFDAWOXEWPAF
      XDIWFWGWHWIULAKDEFGHWJWK $.
  $}

  ${
    $d a z S $.  $d a z T $.  $d a z ph $.
    1stmbfm.1 $e |- ( ph -> S e. U. ran sigAlgebra ) $.
    1stmbfm.2 $e |- ( ph -> T e. U. ran sigAlgebra ) $.
    $( The first projection map is measurable with regard to the product
       sigma-algebra.  (Contributed by Thierry Arnoux, 3-Jun-2017.) $)
    1stmbfm $p |- ( ph -> ( 1st |` ( U. S X. U. T ) )
                                               e. ( ( S sX T ) MblFnM S ) ) $=
      ( va vz c1st cuni cxp co wcel csiga wceq syl2anc syl wa wss cfv adantr cv
      cres csx cmbfm cmap ccnv cima wral wf f1stres sxuni feq2d mpbii unielsiga
      sxsiga elmapd mpbird sgon sigasspw pwssb biimpi 4syl r19.21bi xpss1 sseld
      crn cpw pm4.71rd wfn wb ffn elpreima mp2b fvres eleq1d c2nd 1st2nd2 xp2nd
      cop elxp6 anass an32 3bitr2i baib pm5.32i bitri syl6rbbr eqrdv simpr eqid
      bitr4d issgon sylanblrc baselsiga elsx eqeltrd ralrimiva ismbfm mpbir2and
      syl22anc ) AHBIZCIZJZUBZBCUCKZBUDKLXDXAXEIZUEKLZXDUFFUAZUGZXELZFBUHAXGXFX
      AXDUIZAXCXAXDUIZXKXAXBUJZAXCXFXAXDABMVFIZLZCXNLZXCXFNDEBCUKOULUMAXAXFXDBX
      EAXOXABLDBUNPAXEXNLZXFXELAXOXPXQDEBCUOOZXEUNPUPUQAXJFBAXHBLZQZXIXHXBJZXEX
      TGXIYAXTGUAZYALZYBXCLZYCQZYBXILZXTYCYDXTYAXCYBXTXHXARZYAXCRAYGFBAXOBXAMSL
      BXAVGRZYGFBUHZDBURXABUSYHYIFBXAUTVAVBVCXHXAXBVDPVEVHYFYDYBXDSZXHLZQZYEXLX
      DXCVIYFYLVJXMXCXAXDVKXCYBXHXDVLVMYDYKYCYDYKYBHSZXHLZYCYDYJYMXHYBXCHVNVOYD
      YBYMYBVPSZVSNZYOXBLZYCYNVJYBXAXBVQYBXAXBVRYCYPYQQZYNYCYPYNYQQQYPYNQYQQYRY
      NQYBXHXBVTYPYNYQWAYPYNYQWBWCWDOWKWEWFWGWHXTXOXPXSXBCLZYAXELAXOXSDTAXPXSET
      AXSWIAYSXSACXBMSLZYSAXPXBXBNYTEXBWJCXBWLWMXBCWNPTXHXBBCXNXNWOWTWPWQAFXEBX
      DXRDWRWS $.

    $( The second projection map is measurable with regard to the product
       sigma-algebra.  (Contributed by Thierry Arnoux, 3-Jun-2017.) $)
    2ndmbfm $p |- ( ph -> ( 2nd |` ( U. S X. U. T ) )
                                                e. ( ( S sX T ) MblFnM T ) ) $=
      ( va vz c2nd cuni cxp co wcel csiga wceq syl2anc syl wa wss cfv adantr cv
      cres csx cmbfm cmap ccnv cima wral wf f2ndres sxuni feq2d mpbii unielsiga
      sxsiga elmapd mpbird sgon sigasspw pwssb biimpi 4syl r19.21bi xpss2 sseld
      crn cpw pm4.71rd wfn wb ffn elpreima mp2b fvres eleq1d c1st 1st2nd2 xp1st
      cop elxp6 anass bitr4i baib bitr4d pm5.32i bitri syl6rbbr eqrdv sylanblrc
      eqid issgon baselsiga simpr syl22anc eqeltrd ralrimiva ismbfm mpbir2and
      elsx ) AHBIZCIZJZUBZBCUCKZCUDKLXCXAXDIZUEKLZXCUFFUAZUGZXDLZFCUHAXFXEXAXCU
      IZAXBXAXCUIZXJWTXAUJZAXBXEXAXCABMVFIZLZCXMLZXBXENDEBCUKOULUMAXAXEXCCXDAXO
      XACLECUNPAXDXMLZXEXDLAXNXOXPDEBCUOOZXDUNPUPUQAXIFCAXGCLZQZXHWTXGJZXDXSGXH
      XTXSGUAZXTLZYAXBLZYBQZYAXHLZXSYBYCXSXTXBYAXSXGXARZXTXBRAYFFCAXOCXAMSLCXAV
      GRZYFFCUHZECURXACUSYGYHFCXAUTVAVBVCXGXAWTVDPVEVHYEYCYAXCSZXGLZQZYDXKXCXBV
      IYEYKVJXLXBXAXCVKXBYAXGXCVLVMYCYJYBYCYJYAHSZXGLZYBYCYIYLXGYAXBHVNVOYCYAYA
      VPSZYLVSNZYNWTLZYBYMVJYAWTXAVQYAWTXAVRYBYOYPQZYMYBYOYPYMQQYQYMQYAWTXGVTYO
      YPYMWAWBWCOWDWEWFWGWHXSXNXOWTBLZXRXTXDLAXNXRDTAXOXRETAYRXRABWTMSLZYRAXNWT
      WTNYSDWTWJBWTWKWIWTBWLPTAXRWMWTXGBCXMXMWSWNWOWPAFXDCXCXQEWQWR $.
  $}

  ${
    $d a x y F $.  $d a x y K $.  $d a x y S $.  $d a x y T $.  $d a x y ph $.
    imambfm.1 $e |- ( ph -> K e. _V ) $.
    imambfm.2 $e |- ( ph -> S e. U. ran sigAlgebra ) $.
    imambfm.3 $e |- ( ph -> T = ( sigaGen ` K ) ) $.
    $( If the sigma-algebra in the range of a given function is generated by a
       collection of basic sets ` K ` , then to check the measurability of that
       function, we need only consider inverse images of basic sets ` a ` .
       (Contributed by Thierry Arnoux, 4-Jun-2017.) $)
    imambfm $p |- ( ph -> ( F e. ( S MblFnM T )
                <-> ( F : U. S --> U. T /\ A. a e. K ( `' F " a ) e. S ) ) ) $=
      ( vx vy wcel cuni cima wral wa adantr wss syl wceq cmbfm co wf ccnv csiga
      crn csigagen cfv cvv sgsiga eqeltrd simpr mbfmf ad2antrr simplr sssigagen
      cv sseqtr4d sseldd mbfmcnvima ralrimiva jca cmap unielsiga simprl biimpar
      elmapg syl21anc crab cpw cdif com wbr wi w3a simpl ssrab2 pwuni sstri a1i
      cdom fimacnv ad2antrl imaeq2 eleq1d elrab elrabi adantl difelsiga syl3anc
      sylanbrc wfun simplrl ffun difpreima 3syl difeq1d simprbi ad3antrrr sspwb
      mpbi ad2antlr sigaclcu ciun simpllr simpld unipreima elelpwi syl2anc nfcv
      sseli sigaclcuni ex 3jca rabexg issiga syl12anc unieqd unisg eqtrd fveq2d
      eleq2d mpbid simprr ssrab sigagenss eqsstrd eqssd rabid2 ismbfm mpbir2and
      wb sylib impbida ) ADBCUAUBLZBMZCMZDUCZDUDZFUQZNZBLZFEOZPZAYOPZYRUUCUUEBC
      DABUEUFMZLZYOHQACUUFLZYOACEUGUHZUUFIAEUIGUJUKZQAYOULUMUUEUUBFEUUEYTELZPZY
      TBCDAUUGYOUUKHUNAUUHYOUUKUUJUNAYOUUKUOUULECYTAECRZYOUUKAEUUICAEUILZEUUIRG
      EUIUPSIURZUNUUEUUKULUSUTVAVBAUUDPZYODYQYPVCUBLZUUBFCOZUUPYQCLZYPBLZYRUUQA
      UUSUUDAUUHUUSUUJCVDZSQZAUUTUUDAUUGUUTHBVDZSQZAYRUUCVEUUSUUTPUUQYRYQYPDCBV
      GVFVHUUPCUUBFCVIZTUURUUPCUVEUUPCUUIUVEACUUITUUDIQUUPUVEEMZUEUHZLZEUVERZUU
      IUVERUUPUVEYQUEUHZLZUVHUUPAUVEYQVJZRZYQUVELZYQJUQZVKZUVELZJUVEOZUVOVLWAVM
      ZUVOMZUVELZVNZJUVEVJZOZVOZUVKAUUDVPUVMUUPUVECUVLUUBFCVQZCVRVSVTUUPUVNUVRU
      WDUUPUUSYSYQNZBLZUVNUVBUUPUWGYPBYRUWGYPTAUUCYPYQDWBWCZUVDUKUUBUWHFYQCYTYQ
      TUUAUWGBYTYQYSWDWEWFWKUUPUVQJUVEUUPUVOUVELZPZUVPCLZYSUVPNZBLZUVQUWKUUHUUS
      UVOCLZUWLAUUHUUDUWJUUJUNZUWKUUHUUSUWPUVASUWJUWOUUPUUBFUVOCWGWHYQUVOCWIWJU
      WKUWMUWGYSUVONZVKZBUWKYRDWLZUWMUWRTAYRUUCUWJWMYPYQDWNZYQUVODWOWPUWKUWRYPU
      WQVKZBUUPUWRUXATUWJUUPUWGYPUWQUWIWQQUWKUUGUUTUWQBLZUXABLAUUGUUDUWJHUNZUWK
      UUGUUTUXCUVCSUWJUXBUUPUWJUWOUXBUUBUXBFUVOCYTUVOTUUAUWQBYTUVOYSWDWEWFWRWHY
      PUWQBWIWJUKUKUUBUWNFUVPCYTUVPTUUAUWMBYTUVPYSWDWEWFWKVAUUPUWBJUWCUUPUVOUWC
      LZPZUVSUWAUXEUVSPZUVTCLZYSUVTNZBLZUWAUXFUUHUVOCVJZLZUVSUXGAUUHUUDUXDUVSUU
      JWSUXDUXKUUPUVSUWCUXJUVOUVECRZUWCUXJRUWFUVECWTXAXKXBUXEUVSULZUVOCXCWJUXFU
      XHKUVOYSKUQZNZXDZBUXFYRUWSUXHUXPTUXFYRUUCAUUDUXDUVSXEXFUWTKUVODXGWPUXFUUG
      UXOBLZKUVOOUVSUXPBLAUUGUUDUXDUVSHWSUXFUXQKUVOUXFUXNUVOLZPZUXNUVELZUXQUXSU
      XRUXDUXTUXFUXRULUUPUXDUVSUXRXEUXNUVOUVEXHXIUXTUXNCLUXQUUBUXQFUXNCYTUXNTUU
      AUXOBYTUXNYSWDWEWFWRSVAUXMUVOUXOBKKUVOXJXLWJUKUUBUXIFUVTCYTUVTTUUAUXHBYTU
      VTYSWDWEWFWKXMVAXNAUVKUVMUWEPZAUUHUVEUILUVKUYAYLUUJUUBFCUUFXOJUVEYQXPWPVF
      XQAUVKUVHYLUUDAUVJUVGUVEAYQUVFUEAYQUUIMZUVFACUUIIXRAUUNUYBUVFTGEUIXSSXTYA
      YBQYCUUPUUMUUCUVIAUUMUUDUUOQAYRUUCYDUUBFCEYEWKEUVEYFXIYGUXLUUPUWFVTYHUUBF
      CYIYMUUPFBCDAUUGUUDHQAUUHUUDUUJQYJYKYN $.
  $}

  ${
    $d a F $.  $d a K $.  $d a S $.  $d a T $.  $d a ph $.
    cnmbfm.1 $e |- ( ph -> F e. ( J Cn K ) ) $.
    cnmbfm.2 $e |- ( ph -> S = ( sigaGen ` J ) ) $.
    cnmbfm.3 $e |- ( ph -> T = ( sigaGen ` K ) ) $.
    $( A continuous function is measurable with respect to the Borel Algebra of
       its domain and range.  (Contributed by Thierry Arnoux, 3-Jun-2017.) $)
    cnmbfm $p |- ( ph -> F e. ( S MblFnM T ) ) $=
      ( va co wcel cuni wf eqid syl csigagen cfv ctop 3syl cmbfm ccnv cima wral
      ccn cnf unieqd wceq cntop1 unisg eqtrd cntop2 feq23d mpbird wss sssigagen
      cv wa sseqtr4d adantr cnima sylan sseldd ralrimiva elex csiga sigagensiga
      cvv crn eqeltrd elrnsiga imambfm mpbir2and ) ADBCUAKLBMZCMZDNZDUBJUQZUCZB
      LZJFUDAVPEMZFMZDNZADEFUEKLZWBGDEFVTWAVTOWAOUFPAVNVOVTWADAVNEQRZMZVTABWDHU
      GAWCESLZWEVTUHGDEFUIZESUJTUKAVOFQRZMZWAACWHIUGAWCFSLZWIWAUHGDEFULZFSUJTUK
      UMUNAVSJFAVQFLZUREBVRAEBUOWLAEWDBAWCWFEWDUOGWGESUPTHUSUTAWCWLVRELGVQDEFVA
      VBVCVDABCDFJAWCWJFVHLGWKFSVETABVTVFRZLBVFVIMLABWDWMHAWCWFWDWMLGWGESVGTVJB
      VTVKPIVLVM $.
  $}

  ${
    mbfmco.1 $e |- ( ph -> R e. U. ran sigAlgebra ) $.
    mbfmco.2 $e |- ( ph -> S e. U. ran sigAlgebra ) $.
    mbfmco.3 $e |- ( ph -> T e. U. ran sigAlgebra ) $.
    ${
      $d a F $.  $d a G $.  $d a R $.  $d a T $.  $d a ph $.
      mbfmco.4 $e |- ( ph -> F e. ( R MblFnM S ) ) $.
      mbfmco.5 $e |- ( ph -> G e. ( S MblFnM T ) ) $.
      $( The composition of two measurable functions is measurable.  ( cf.
         ~ cnmpt11 ) (Contributed by Thierry Arnoux, 4-Jun-2017.) $)
      mbfmco $p |- ( ph -> ( G o. F ) e. ( R MblFnM T ) ) $=
        ( va cmbfm co wcel cuni ccnv cima wf adantr ccom cmap cv wral mbfmf fco
        syl2anc csiga crn unielsiga syl elmapd mpbird cnvco imaeq1i imaco eqtri
        wa simpr mbfmcnvima syl5eqel ralrimiva ismbfm mpbir2and ) AFEUAZBDMNOVE
        DPZBPZUBNOZVEQZLUCZRZBOZLDUDAVHVGVFVESZACPZVFFSVGVNESVMACDFHIKUEABCEGHJ
        UEVGVNVFFEUFUGAVFVGVEDBADUHUIPZOZVFDOIDUJUKABVOOZVGBOGBUJUKULUMAVLLDAVJ
        DOZURZVKEQZFQZVJRZRZBVKVTWAUAZVJRWCVIWDVJFEUNUOVTWAVJUPUQVSWBBCEAVQVRGT
        ACVOOVRHTZAEBCMNOVRJTVSVJCDFWEAVPVRITAFCDMNOVRKTAVRUSUTUTVAVBALBDVEGIVC
        VD $.
    $}

    ${
      $d a b c H $.  $d a b c R $.  $d a b c S $.  $d a b c T $.
      $d a b c ph $.  $d x R $.  $d x S $.  $d x T $.  $d x ph $.  $d x F $.
      $d x G $.  $d x H $.
      mbfmco2.4 $e |- ( ph -> F e. ( R MblFnM S ) ) $.
      mbfmco2.5 $e |- ( ph -> G e. ( R MblFnM T ) ) $.
      mbfmco2.6 $e |- H = ( x e. U. R |-> <. ( F ` x ) , ( G ` x ) >. ) $.
      $( The pair building of two measurable functions is measurable.  ( cf.
         ~ cnmpt1t ).  (Contributed by Thierry Arnoux, 6-Jun-2017.) $)
      mbfmco2 $p |- ( ph -> H e. ( R MblFnM ( S sX T ) ) ) $=
        ( vc va vb wcel cuni 3ad2ant1 csx co cmbfm wf ccnv cv cima cxp crn wral
        cmpt2 cfv cop mbfmf ffvelrnda opelxpi syl2anc wceq csiga adantr eleqtrd
        sxuni fmptd wrex eqid vex xpex elrnmpt2 w3a simp3 imaeq2d simp2l simp2r
        wa simp1 cin xppreima2 simp2 mbfmcnvima inelsiga syl3anc eqeltrd 3expia
        rexlimdvva imp sylan2b ralrimiva cvv txbasex csigagen imambfm mpbir2and
        sxval ) AHCDEUAUBZUCUBRCSZWNSZHUDHUEZOUFZUGZCRZOPQDEPUFZQUFZUHZUKZUIZUJ
        ABWOBUFZFULZXFGULZUMZWPHAXFWORZVNZXIDSZESZUHZWPXKXGXLRXHXMRXIXNRAWOXLXF
        FACDFIJLUNZUOAWOXMXFGACEGIKMUNZUOXGXHXLXMUPUQAXNWPURZXJADUSUISZRZEXRRZX
        QJKDEVBUQUTVANVCAWTOXEWRXERAWRXCURZQEVDPDVDZWTPQDEXCWRXDXDVEXAXBPVFQVFV
        GVHAYBWTAYAWTPQDEAXADRZXBERZVNZYAWTAYEYAVIZWSWQXCUGZCYFWRXCWQAYEYAVJVKY
        FAYCYDYGCRAYEYAVOAYCYDYAVLAYCYDYAVMAYCYDVIZYGFUEXAUGZGUEXBUGZVPZCAYCYGY
        KURYDABWOXLXMFGHXAXBXOXPNVQTYHCXRRZYICRYJCRYKCRAYCYLYDITZYHXACDFYMAYCXS
        YDJTAYCFCDUCUBRYDLTAYCYDVRVSYHXBCEGYMAYCXTYDKTAYCGCEUCUBRYDMTAYCYDVJVSY
        IYJCVTWAWBWAWBWCWDWEWFWGACWNHXEOAXSXTXEWHRJKPQXEDEXRXRXEVEZWIUQIAXSXTWN
        XEWJULURJKPQXEDEXRXRYNWMUQWKWL $.
    $}
  $}

  ${
    $( Measurable functions with respect to the Lebesgue measure are
       real-valued functions on the real numbers.  (Contributed by Thierry
       Arnoux, 27-Mar-2017.) $)
    mbfmvolf $p |- ( F e. ( dom vol MblFnM BrSiga ) -> F : RR --> RR ) $=
      ( cvol cdm cbrsiga cmbfm co wcel cuni wf cr csiga crn wceq wa issgon mpbi
      cfv simpli a1i simpri dmvlsiga brsigarn id mbfmf feq23i sylibr ) ABCZDEFG
      ZUGHZDHZAIJJAIUHUGDAUGKLHZGZUHULJUIMZUGJKQZGULUMNUAUGJOPZRSDUKGZUHUPJUJMZ
      DUNGUPUQNUBDJOPZRSUHUCUDJJUIUJAULUMUOTUPUQURTUEUF $.
  $}

$(
  @{
    @d x F @.
    mbfmvol.1 @e |- S = ( sigaGen ` ( MetOpen ` ( abs o. - ) ) ) @.
    @( Measurable functions with respect to the Lebesgue measure are
       complex-valued functions in ` MblFn ` .
       (Contributed by Thierry Arnoux, 27-Mar-2017.) @)
    mbfmvol @p |- ( MblFnM ` <. dom vol , S >. )
                                                = ( MblFn i^i ( CC ^m RR ) ) @=
      ? @.
      @( [27-Mar-2017] @)
  @}

  @{
    @d x F @.
    @( Measurable functions with respect to the Lebesgue measure are
       real-valued functions in ` MblFn ` .
       (Contributed by Thierry Arnoux, 27-Mar-2017.) @)
    elmbfmvol @p |- ( F e. ( MblFnM ` <. dom vol , BrSiga >. ) <->
                                          ( F e. MblFn /\ F : RR --> RR ) ) @=
      ? @.
      @( [27-Mar-2017] @)
  @}
$)

  ${
    $d x F $.
    $( Measurable functions with respect to the Lebesgue measure.  We only have
       the inclusion, since ` MblFn ` includes complex-valued functions.
       (Contributed by Thierry Arnoux, 26-Jan-2017.) $)
    elmbfmvol2 $p |- ( F e. ( dom vol MblFnM BrSiga ) -> F e. MblFn ) $=
      ( vx cvol cbrsiga co wcel crn wral wss cfv ctb ax-mp ctop cuni cmap wb cr
      csiga elrnsiga mp1i cdm cmbfm cmbf ccnv cima cioo csigagen retopbas bastg
      cv ctg retop sssigagen sstri df-brsiga sseqtr4i wceq wa dmvlsiga brsigarn
      eqid ismbfm simprbi ssralv mpsyl simplbi elmapi unibrsiga unidmvol eleq2s
      wf oveq12i ismbf 3syl mpbird ) ACUAZDUBEFZAUCFZAUDBUJUEVPFZBUFGZHZVTDIVQV
      SBDHZWAVTVTUKJZUGJZDVTWCWDVTKFVTWCIUHVTKUILWCMFWCWDIULWCMUMLUNUOUPVQADNZV
      PNZOEZFZWBCCUQZVQWHWBURPCVAWIBVPDAVPQRJZFVPRGNZFWIUSVPQSTDWJFDWKFWIUTDQST
      VBLZVCVSBVTDVDVEVQWHQQAVKZVRWAPVQWHWBWLVFWMAQQOEWGAQQVGWEQWFQOVHVIVLVJBQA
      VMVNVO $.
  $}

  ${
    $d f x y O $.  $d f V $.
    $( All functions are measurable with respect to the counting measure.
       (Contributed by Thierry Arnoux, 24-Jan-2017.) $)
    mbfmcnt $p |- ( O e. V -> ( ~P O MblFnM BrSiga ) = ( RR ^m O ) ) $=
      ( vf vx vy wcel cbrsiga co cuni cmap cr cv wa csiga elrnsiga wf unibrsiga
      cfv cvv syl6bi cpw ccnv cima wral crn pwsiga syl brsigarn mp1i ismbfm wfn
      cmbfm wb reex eqeltri unipw elex syl5eqel elmapg sylancr feq2i syl6bb ffn
      wss elpreima simpl ssrdv cnvex imaexg ax-mp elpw sylibr ralrimivw pm4.71d
      vex syl6 bitr4d eqrdv oveq12i syl6eq ) ABFZAUAZGULHZGIZWBIZJHZKAJHWACWCWF
      WACLZWCFWGWFFZWGUBZDLZUCZWBFZDGUDZMWHWADWBGWGWAWBANRFWBNUEIZFABUFWBAOUGGK
      NRFGWNFWAUHGKOUIUJWAWHWMWAWHWGAUKZWMWAWHAWDWGPZWOWAWHWEWDWGPZWPWAWDSFWESF
      WHWQUMWDKSQUNUOWAWEASAUPZABUQURWDWEWGSSUSUTWEAWDWGWRVAVBAWDWGVCTWOWLDGWOW
      KAVDWLWOEWKAWOELZWKFWSAFZWSWGRWJFZMWTAWSWJWGVEWTXAVFTVGWKAWISFWKSFWGCVOVH
      WIWJSVIVJVKVLVMVPVNVQVRWDKWEAJQWRVSVT $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Borel Algebra on ` ( RR X. RR ) `
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y $.
    $( The base set for the generator of the Borel sigma-algebra on
       ` ( RR X. RR ) ` is indeed ` ( RR X. RR ) ` .  (Contributed by Thierry
       Arnoux, 22-Sep-2017.) $)
    br2base $p |- U. ran ( x e. BrSiga , y e. BrSiga |-> ( x X. y ) )
       = ( RR X. RR ) $=
      ( cbrsiga cv cxp crn cr cpw cuni wceq wcel wral brsigasspwrn sseli elpwid
      wss vex eqid ax-mp wrex wa xpss12 syl2an xpex elpw sylibr rgen2a rnmpt2ss
      cmpt2 unibrsiga csiga cfv brsigarn elrnsiga unielsiga mp2b eqeltrri xpeq1
      wb eqeq2d xpeq2 rspc2ev mp3an elrnmpt2 mpbir elpwuni mpbi ) ABCCADZBDZEZU
      IZFZGGEZHZPZVLIVMJZVJVNKZBCLACLVOVQABCVHCKZVICKZUAVJVMPZVQVRVHGPVIGPVTVSV
      RVHGCGHZVHMNOVSVIGCWAVIMNOVHGVIGUBUCVJVMVHVIAQBQUDZUEUFUGABCCVJVNVKVKRZUH
      SVMVLKZVOVPUSWDVMVJJZBCTACTZGCKZWGVMVMJZWFCIZGCUJCGUKULKCUKFIKWICKUMCGUNC
      UOUPUQZWJVMRWEWHVMGVIEZJABGGCCVHGJVJWKVMVHGVIURUTVIGJWKVMVMVIGGVAUTVBVCAB
      CCVJVMVKWCWBVDVEVLVMVFSVG $.
  $}

  ${
    $( An upper bound for a dyadic number.  (Contributed by Thierry Arnoux,
       19-Sep-2017.) $)
    dya2ub $p |- ( R e. RR+ ->
      ( 1 / ( 2 ^ ( |_ ` ( 1 - ( 2 logb R ) ) ) ) ) < R ) $=
      ( crp wcel c1 c2 clogb co cmin cfl cfv clt wbr cneg caddc cr cz relogbzcl
      wceq sylancl syl2anc cexp cdiv cuz 2z uzid ax-mp mpan renegcld flltp1 syl
      1z fladdz cc recnd ax-1cn wa negsubdi negsubdi2 eqtr3d fveq2d breqtrd a1i
      wb 1red resubcld flcld rpexpcld rpreccld id logblt syl3anc logbrec breq1d
      2rp ltnegcon1 3bitrd nnlogbexp breq2d bitrd mpbird ) ABCZDEDEAFGZHGZIJZUA
      GZUBGZAKLZWBMZWDKLZWAWHWHIJDNGZWDKWAWHOCZWHWJKLWAWBEEUCJCZWAWBOCZEPCWLUDE
      UEUFZEAQUGZUHZWHUIUJWAWHDNGZIJZWJWDWAWKDPCWRWJRWPUKWHDULSWAWQWCIWAWBUMCZD
      UMCZWQWCRWAWBWOUNUOWSWTUPWBDHGMWQWCWBDUQWBDURUSSUTUSVAWAWGWHEWEFGZKLZWIWA
      WGEWFFGZWBKLZXAMZWBKLZXBWAWLWFBCWAWGXDVCWLWAWNVBZWAWEWAEWDEBCWAVNVBWAWCWA
      DWBWAVDWOVEVFZVGZVHWAVIEWFAVJVKWAXCXEWBKWAWLWEBCZXCXERXGXIWEEVLTVMWAXAOCZ
      WMXFXBVCWAWLXJXKXGXIEWEQTWOXAWBVOTVPWAXAWDWHKWAWLWDPCXAWDRXGXHEWDVQTVRVSV
      T $.
  $}

  ${
    $d e f z $.
    $( The closed half-spaces of ` ( RR X. RR ) ` cover ` ( RR X. RR ) ` .
       (Contributed by Thierry Arnoux, 11-Oct-2017.) $)
    sxbrsigalem0 $p |- U. ( ran ( e e. RR |-> ( ( e [,) +oo ) X. RR ) )
      u. ran ( f e. RR |-> ( RR X. ( f [,) +oo ) ) ) ) = ( RR X. RR ) $=
      ( vz cr cv cpnf cico co cxp cmpt cuni wss wcel pnfxr syl ovex reex cfv wa
      xpex crn cun unissb wo elun cpw eqid rnmptss cxr icossre mpan2 xpss1 elpw
      sylibr mprg sseli elpwid xpss2 jaoi mprgbir wfun c1st funmpt cvv c2nd clt
      sylbi wbr rexr a1i ltpnf lbico1 syl3anc anim1i anim2i elxp7 3imtr4i xp1st
      wceq oveq1 xpeq1d fvmpt eleqtrrd elunirn2 sylancr ssriv ssun3 ax-mp uniun
      sseqtr4i eqssi ) ADAEZFGHZDIZJZUAZBDDBEZFGHZIZJZUAZUBZKZDDIZXCXDLCEZXDLZC
      XBCXBXDUCXEXBMXEWPMZXEXAMZUDXFXEWPXAUEXGXFXHXGXEXDWPXDUFZXEWNXIMZWPXILADA
      DWNXIWOWOUGZUHWLDMZWNXDLZXJXLWMDLZXMXLFUIMZXNNWLFUJUKWMDDULOWNXDWMDWLFGPQ
      TUMUNUOUPUQXHXEXDXAXIXEWSXIMZXAXILBDBDWSXIWTWTUGUHWQDMZWSXDLZXPXQWRDLZXRX
      QXOXSNWQFUJUKWRDDUROWSXDDWRQWQFGPTUMUNUOUPUQUSVGUTXDWPKZXAKZUBZXCXDXTLXDY
      BLCXDXTXEXDMZWOVAXEXEVBRZWORZMXEXTMADWNVCYCXEYDFGHZDIZYEXEVDVDIMZYDDMZXEV
      ERDMZSZSYHYDYFMZYJSZSYCXEYGMYKYMYHYIYLYJYIYDUIMXOYDFVFVHYLYDVIXOYINVJYDVK
      YDFVLVMVNVOXEDDVPXEYFDVPVQYCYIYEYGVSXEDDVRAYDWNYGDWOWLYDVSWMYFDWLYDFGVTWA
      XKYFDYDFGPQTWBOWCYDXEWOWDWEWFXDXTYAWGWHWPXAWIWJWK $.
  $}

  ${
    sxbrsiga.0 $e |- J = ( topGen ` ran (,) ) $.

    ${
      $d e f u v $.  $d u v J $.
      $( The sigma-algebra generated by the closed half-spaces of
         ` ( RR X. RR ) ` is a subset of the sigma-algebra generated by the
         closed sets of ` ( RR X. RR ) ` .  (Contributed by Thierry Arnoux,
         11-Oct-2017.) $)
      sxbrsigalem3 $p |-
         ( sigaGen ` ( ran ( e e. RR |-> ( ( e [,) +oo ) X. RR ) )
                    u. ran ( f e. RR |-> ( RR X. ( f [,) +oo ) ) ) ) )
           C_ ( sigaGen ` ( Clsd ` ( J tX J ) ) ) $=
        ( vu vv cr cv cpnf cico co cxp cuni ccld cfv wss wcel ovex reex xpex c0
        cmpt crn cun ctx wceq csigagen cvv sxbrsigalem0 cioo ctop retop eqeltri
        ctg txtopi uniretop unieqi eqtr4i txunii unicls wfn wral eqid weq oveq1
        fnmpti xpeq1d fvmpt icopnfcld fveq2i syl6eleqr cdif dif0 ax-mp eqeltrri
        0opn opncld mp2an txcld sylancl eqeltrd rgen fnfvrnss xpeq2d unssi fvex
        sylancr sssigagen sstri sigagenss2 mp3an ) AGAHZIJKZGLZUBZUCZBGGBHZIJKZ
        LZUBZUCZUDZMZCCUEKZNOZMZUFXBXEUGOZPXEUHQZXBUGOXGPXCGGLZXFABUIXDXICCCUJU
        CUNOZUKDULUMZXKUOCCGGXKXKGXJMCMUPCXJDUQURZXLUSUTURXBXEXGWPXAXEWOGVAEHZW
        OOZXEQZEGVBWPXEPAGWNWOWMGWLIJRSTWOVCZVFXOEGXMGQZXNXMIJKZGLZXEAXMWNXSGWO
        AEVDWMXRGWLXMIJVEVGXPXRGXMIJRSTVHXQXRCNOZQGXTQZXSXEQXQXRXJNOZXTXMVICXJN
        DVJZVKGUAVLZGXTGVMCUKQZUACQZYDXTQXKYEYFXKCVPVNUACGXLVQVRVOZXRGCCVSVTWAW
        BEGXEWOWCVRWTGVAFHZWTOZXEQZFGVBXAXEPBGWSWTGWRSWQIJRTWTVCZVFYJFGYHGQZYIG
        YHIJKZLZXEBYHWSYNGWTBFVDWRYMGWQYHIJVEWDYKGYMSYHIJRTVHYLYAYMXTQYNXEQYGYL
        YMYBXTYHVIYCVKGYMCCVSWGWAWBFGXEWTWCVRWEXHXEXGPXDNWFZXEUHWHVNWIYOXBXEUHW
        JWK $.
    $}

    ${
      $d x n $.
      dya2ioc.1 $e |- I = ( x e. ZZ , n e. ZZ |->
                       ( ( x / ( 2 ^ n ) ) [,) ( ( x + 1 ) / ( 2 ^ n ) ) ) ) $.

      ${
        $d m n u x $.  $d m u N $.  $d m u X $.
        $( The function ` I ` returns closed-below open-above dyadic rational
           intervals covering the real line.  This is the same construction as
           in ~ dyadmbl .  (Contributed by Thierry Arnoux, 24-Sep-2017.) $)
        dya2iocival $p |- ( ( N e. ZZ /\ X e. ZZ ) -> ( X I N ) =
          ( ( X / ( 2 ^ N ) ) [,) ( ( X + 1 ) / ( 2 ^ N ) ) ) ) $=
          ( vu vm cz co c2 cexp cdiv c1 caddc cico wceq cv oveq1 oveq1d oveq12d
          wcel oveq2 oveq2d cmpt2 cbvmpt2v eqtr4i ovex ovmpt2 ancoms ) FKUDEKUD
          FECLFMENLZOLZFPQLZUMOLZRLZSIJFEKKITZMJTZNLZOLZURPQLZUTOLZRLZUQCFUTOLZ
          UOUTOLZRLURFSZVAVEVCVFRURFUTOUAVGVBUOUTOURFPQUAUBUCUSESZVEUNVFUPRVHUT
          UMFOUSEMNUEZUFVHUTUMUOOVIUFUCCABKKATZMBTZNLZOLZVJPQLZVLOLZRLZUGIJKKVD
          UGHIJABKKVDVPVJUTOLZVNUTOLZRLURVJSZVAVQVCVRRURVJUTOUAVSVBVNUTOURVJPQU
          AUBUCUSVKSZVQVMVRVORVTUTVLVJOUSVKMNUEZUFVTUTVLVNOWAUFUCUHUIUNUPRUJUKU
          L $.
      $}

      $( Dyadic intervals are subsets of ` RR ` .  (Contributed by Thierry
         Arnoux, 18-Sep-2017.) $)
      dya2iocress $p |- ( ( N e. ZZ /\ X e. ZZ ) -> ( X I N ) C_ RR ) $=
        ( cz wcel wa co c2 cexp cdiv c1 caddc cico cr rerpdivcld cxr simpr zred
        dya2iocival wss crp 2rp a1i simpl rpexpcld 1red icossre syl2anc eqsstrd
        readdcld rexrd ) EIJZFIJZKZFECLFMENLZOLZFPQLZUTOLZRLZSABCDEFGHUDUSVASJV
        CUAJVDSUEUSFUTUSFUQURUBUCZUSMEMUFJUSUGUHUQURUIUJZTUSVCUSVBUTUSFPVEUSUKU
        OVFTUPVAVCULUMUN $.

      $( Dyadic intervals are Borel sets of ` RR ` .  (Contributed by Thierry
         Arnoux, 22-Sep-2017.) $)
      dya2iocbrsiga $p |- ( ( N e. ZZ /\ X e. ZZ ) -> ( X I N ) e. BrSiga ) $=
        ( cz wcel co c2 cdiv cbrsiga cmnf cioo cxr cr cfv ctop wa cexp c1 caddc
        cico dya2iocival cdif clt wbr wceq mnfxr a1i simpr crp simpl rerpdivcld
        zred 2rp rpexpcld rexrd 1red readdcld mnflt syl syl31anc csiga crn cuni
        brsigarn elrnsiga ax-mp ctg csigagen retop iooretop elsigagen df-brsiga
        difioo mp2an eleqtrri difelsiga mp3an syl6eqelr eqeltrd ) EIJZFIJZUAZFE
        CKFLEUBKZMKZFUCUDKZWHMKZUEKZNABCDEFGHUFWGWLOWKPKZOWIPKZUGZNWGOQJZWIQJWK
        QJOWIUHUIZWOWLUJWPWGUKULWGWIWGFWHWGFWEWFUMUQZWGLELUNJWGURULWEWFUOUSZUPZ
        UTWGWKWGWJWHWGFUCWRWGVAVBWSUPUTWGWIRJWQWTWIVCVDOWIWKVRVENVFVGVHJZWMNJWN
        NJWONJNRVFSJXAVINRVJVKWMPVGVLSZVMSZNXBTJZWMXBJWMXCJVNOWKVOXBWMTVPVSVQVT
        WNXCNXDWNXBJWNXCJVNOWIVOXBWNTVPVSVQVTWMWNNWAWBWCWD $.

      ${
        $d d n x $.  $d d I $.
        $( Dyadic intervals are Borel sets of ` RR ` .  (Contributed by Thierry
           Arnoux, 22-Sep-2017.)  (Revised by Thierry Arnoux, 13-Oct-2017.) $)
        dya2icobrsiga $p |- ran I C_ BrSiga $=
          ( vd crn cbrsiga cv wcel c2 co cz cmnf cioo cxr cr cfv ctop cexp cdiv
          c1 caddc cico wceq wrex ovex elrnmpt2 wa simpr cdif clt wbr mnfxr a1i
          simpl zred crp 2rp rpexpcld rerpdivcld rexrd 1red readdcld syl difioo
          mnflt syl31anc csiga cuni brsigarn elrnsiga ax-mp ctg retop elsigagen
          csigagen iooretop mp2an df-brsiga eleqtrri difelsiga syl6eqelr adantr
          mp3an eqeltrd ex rexlimivv sylbi ssriv ) GCHZIGJZWLKWMAJZLBJZUAMZUBMZ
          WNUCUDMZWPUBMZUEMZUFZBNUGANUGWMIKZABNNWTWMCFWQWSUEUHUIXAXBABNNWNNKZWO
          NKZUJZXAXBXEXAUJWMWTIXEXAUKXEWTIKXAXEWTOWSPMZOWQPMZULZIXEOQKZWQQKWSQK
          OWQUMUNZXHWTUFXIXEUOUPXEWQXEWNWPXEWNXCXDUQURZXELWOLUSKXEUTUPXCXDUKVAZ
          VBZVCXEWSXEWRWPXEWNUCXKXEVDVEXLVBVCXEWQRKXJXMWQVHVFOWQWSVGVIIVJHVKKZX
          FIKXGIKXHIKIRVJSKXNVLIRVMVNXFPHVOSZVRSZIXOTKZXFXOKXFXPKVPOWSVSXOXFTVQ
          VTWAWBXGXPIXQXGXOKXGXPKVPOWQVSXOXGTVQVTWAWBXFXGIWCWFWDWEWGWHWIWJWK $.
      $}

      $d x I $.
      ${
        $d n x $.  $d b D $.  $d b I $.  $d b x N $.  $d b x X $.
        dya2icoseg.1 $e |- N = ( |_ ` ( 1 - ( 2 logb D ) ) ) $.
        $( For any point and any closed-below, open-above interval of ` RR `
           centered on that point, there is a closed-below open-above dyadic
           rational interval which contains that point and is included in the
           original interval.  (Contributed by Thierry Arnoux, 19-Sep-2017.) $)
        dya2icoseg $p |- ( ( X e. RR /\ D e. RR+ ) -> E. b e. ran I
          ( X e. b /\ b C_ ( ( X - D ) (,) ( X + D ) ) ) ) $=
          ( wcel c2 co cmin caddc cz cdiv c1 wbr crp cexp cmul cfl cfv crn cioo
          cr wa wss wrex cxp wfn cico ovex fnmpt2i a1i simpl 2rp clogb 1red cuz
          cv 2z uzid ax-mp relogbzcl mpan resubcld flcld syl5eqel rpexpcl rpred
          sylancr adantl remulcld fnovrn syl3anc cle clt zred fllelt syl simpld
          lediv1dd recnd 2cnd cc0 2ne0 expne0d divcan4d breqtrd readdcld simprd
          wne ltdiv1dd eqbrtrrd cxr w3a redivcld rexrd elico2 syl2anc mpbir3and
          wb wceq dya2iocival eleqtrrd rereccld oveq2i dya2ub syl5eqbr ltsub2dd
          simpr mulcld divsubdird oveq1d eqtrd ltsub1dd pncand ltletrd leadd1dd
          1cnd ltled divdird ltadd2dd lelttrd icossioo syl22anc eqsstrd anbi12d
          eleq2 sseq1 rspcev syl12anc ) GUHLZBUALZUIZGMFUBNZUCNZUDUEZFDNZDUFZLZ
          GUUBLZUUBGBONZGBPNZUGNZUJZGHVCZLZUUJUUHUJZUIZHUUCUKYRDQQULUMZUUAQLZFQ
          LZUUDUUNYRACQQAVCZMCVCUBNZRNZUUQSPNUURRNZUNNDJUUSUUTUNUOUPUQYRYTYRGYS
          YPYQURZYQYSUHLZYPYQMUALZUUPUVBUSYQFSMBUTNZONZUDUEZQKYQUVEYQSUVDYQVAMM
          VBUELZYQUVDUHLMQLUVGVDMVEVFMBVGVHVIVJVKZUVCUUPUIYSMFVLZVMVNVOZVPZVJZY
          QUUPYPUVHVOZQQUUAFDVQVRYRGUUAYSRNZUUASPNZYSRNZUNNZUUBYRGUVQLZYPUVNGVS
          TZGUVPVTTZUVAYRUVNYTYSRNZGVSYRUUAYTYSYRUUAUVLWAZUVKYRUVCUUPYSUALUSUVM
          UVIVNZYRUUAYTVSTZYTUVOVTTZYRYTUHLUWDUWEUIUVKYTWBWCZWDZWEYRGYSYRGUVAWF
          ZYRYSUVJWFZYRMFYRWGMWHWOYRWIUQUVMWJZWKZWLYRUWAGUVPVTUWKYRYTUVOYSUVKYR
          UUASUWBYRVAZWMZUWCYRUWDUWEUWFWNZWPWQYRUVNUHLUVPWRLUVRYPUVSUVTWSXEYRUU
          AYSUWBUVJUWJWTZYRUVPYRUVOYSUWMUVJUWJWTZXAUVNUVPGXBXCXDYRUUPUUOUUBUVQX
          FUVMUVLACDEFUUAIJXGXCZXHYRUUBUVQUUHUWQYRUUFWRLUUGWRLUUFUVNVTTUVPUUGVS
          TUVQUUHUJYRUUFYRGBUVAYRBYPYQXNVMZVIZXAYRUUGYRGBUVAUWRWMZXAYRUUFGSYSRN
          ZONZUVNUWSYRGUXAUVAYRYSUVJUWJXIZVIUWOYRUXABGUXCUWRUVAYRUXASMUVFUBNZRN
          ZBVTYSUXDSRFUVFMUBKXJXJYQUXEBVTTYPBXKVOXLZXMYRYTSONZYSRNZUXBUVNVSYRUX
          HUWAUXAONUXBYRYTSYSYRGYSUWHUWIXOZYRYCZUWIUWJXPYRUWAGUXAOUWKXQXRYRUXGU
          UAYSYRYTSUVKUWLVIZUWBUWCYRUXGUUAUXKUWBYRUXGUVOSONUUAVTYRYTUVOSUVKUWMU
          WLUWNXSYRUUASYRUUAUWBWFUXJXTWLYDWEWQYAYRUVPUUGUWPUWTYRUVPGUXAPNZUUGUW
          PYRGUXAUVAUXCWMUWTYRUVPYTSPNZYSRNZUXLVSYRUVOUXMYSUWMYRYTSUVKUWLWMUWCY
          RUUAYTSUWBUVKUWLUWGYBWEYRUXNUWAUXAPNUXLYRYTSYSUXIUXJUWIUWJYEYRUWAGUXA
          PUWKXQXRWLYRUXABGUXCUWRUVAUXFYFYGYDUUFUUGUVNUVPYHYIYJUUMUUEUUIUIHUUBU
          UCUUJUUBXFUUKUUEUULUUIUUJUUBGYLUUJUUBUUHYMYKYNYO $.
      $}

      ${
        $d b n x $.  $d b d x E $.  $d b d I $.  $d b d x X $.
        $( For any point and any open interval of ` RR ` containing that point,
           there is a closed-below open-above dyadic rational interval which
           contains that point and is included in the original interval.
           (Contributed by Thierry Arnoux, 12-Oct-2017.) $)
        dya2icoseg2 $p |- ( ( X e. RR /\ E e. ran (,) /\ X e. E ) ->
          E. b e. ran I ( X e. b /\ b C_ E ) ) $=
          ( vd cr wcel cioo co wss wa wrex crp cfv crefld crn w3a cv cmin caddc
          wral c1 c2 clogb cfl eqid dya2icoseg ralrimiva 3ad2ant1 cabs ccom cxp
          cres cbl simp3 ctg iooex rnex bastg ax-mp simp2 sseldi syl6eleqr cxmt
          cvv wb rexmet cxme cmopn wceq ccms cmt recms cmsms msxms ctopn retopn
          mp2b eqtri rebase cds reds reseq1i xmstopn elmopn2 simprbi syl sseq1d
          oveq1 rexbidv rspcva syl2anc rpre bl2ioo sylan2 rexbidva mpbid r19.29
          r19.41v sstr anim2i anassrs reximi sylbir rexlimivw ) FKLZCMUAZLZFCLZ
          UBZFGUCZLZXPFJUCZUDNFXRUENMNZOZPZGDUAZQZXSCOZPZJRQZXQXPCOZPZGYBQZXOYC
          JRUFZYDJRQZYFXKXMYJXNXKYCJRAXRBDEUGUHXRUINUDNUJSZFGHIYLUKULUMUNXOFXRU
          OUDUPZKKUQZURZUSSZNZCOZJRQZYKXOXNAUCZXRYPNZCOZJRQZACUFZYSXKXMXNUTXOCE
          LZUUDXOCXLVASZEXOXLUUFCXLVJLXLUUFOMVBVCXLVJVDVEXKXMXNVFVGHVHUUECKOZUU
          DYOKVISLUUEUUGUUDPVKYOYOUKZVLAJCYOEKTVMLZEYOVNSVOTVPLTVQLUUIVRTVSTVTW
          CYOETKEUUFTWASHWBWDWEYMTWFSYNWGWHWIVEWJVEWKWLUUCYSAFCYTFVOZUUBYRJRUUJ
          UUAYQCYTFXRYPWNWMWOWPWQXKXMYSYKVKXNXKYRYDJRXRRLXKXRKLZYRYDVKXRWRXKUUK
          PYQXSCFXRYOUUHWSWMWTXAUNXBYCYDJRXCWQYEYIJRYEYAYDPZGYBQYIYAYDGYBXDUULY
          HGYBXQXTYDYHXTYDPYGXQXPXSCXEXFXGXHXIXJWL $.
      $}

      $d u v I $.
      dya2ioc.2 $e |- R = ( u e. ran I , v e. ran I |-> ( u X. v ) ) $.
      $( The function returning dyadic square covering for a given size has
         domain ` ( ran I X. ran I ) ` .  (Contributed by Thierry Arnoux,
         19-Sep-2017.) $)
      dya2iocrfn $p |- R Fn ( ran I X. ran I ) $=
        ( crn cv cxp vex xpex fnmpt2i ) CBFKZQCLZBLZMDJRSCNBNOP $.

      $( The dyadic rectangle set is countable.  (Contributed by Thierry
         Arnoux, 18-Sep-2017.)  (Revised by Thierry Arnoux, 11-Oct-2017.) $)
      dya2iocct $p |- ran R ~<_ _om $=
        ( crn com cdom wbr cz cv co cn mp2an cvv c2 cexp cdiv c1 caddc cico cen
        cmpt2 znnen nnct endomtr wcel ovex rgen2w mpt2cti eqbrtri rnct ax-mp wa
        cxp vex xpex breq1i biimpri 3syl ) FKZLMNZVGDKLMNZFLMNVGFAEOOAPZUAEPUBQ
        ZUCQZVIUDUEQVJUCQZUFQZUHZLMIOLMNZVOVNLMNORUGNRLMNVOUIUJORLUKSZVPAEOOVMT
        VMTULAEOOVKVLUFUMUNUOSUPFUQURZVQVGVGUSCBVFVFCPZBPZUTZUHZLMNZDLMNZVHCBVF
        VFVTTVTTULCBVFVFVRVSCVABVAVBUNUOWCWBDWALMJVCVDDUQVES $.

      $(
        $d m n x y $.  $d m I $.  $d m x y N $.  $d x y V $.
        @( The value of a dyadic square cover of ` ( RR X. RR ) ` .
           (Contributed by Thierry Arnoux, 24-Sep-2017.) @)
        dya2iocrrnval $p |- ( W e. ran R <-> E. x e. ZZ E. y e. ZZ
          E. m e. ZZ E. n e. ZZ W = ( ( x I n ) X. ( y I m ) ) ) $=
          ( vm cz wcel cv co cxp cmpt2 oveq2d nfcv cfv crn wceq wrex mpt2eq3dva
          w3a simp1 xpeq12d rneqd cmpt c2 cexp cdiv c1 cico nfmpt22 nfcxfr nfov
          caddc nfxp nfmpt2 nfrn cbvmpt eqtr4i zex mpt2ex rnex eleq2d eqid ovex
          fvmpt xpex elrnmpt2 syl6bb ) GMNZHGCUAZNHABMMAOZGEPZBOZGEPZQZRZUBZNHW
          AUCBMUDAMUDVOVPWCHLGABMMVQLOZEPZVSWDEPZQZRZUBZWCMCWDGUCZWHWBWJABMMWGW
          AWJVQMNZVSMNZUFZWEVRWFVTWMWDGVQEWJWKWLUGZSWMWDGVSEWNSUHUEUICDMABMMVQD
          OZEPZVSWOEPZQZRZUBZUJLMWIUJKLDMWIWTDWHABDMMWGDMTZXADWEWFDVQWDEDVQTDEA
          DMMVQUKWOULPZUMPVQUNUSPXBUMPUOPZRJADMMXCUPUQZDWDTZURDVSWDEDVSTXDXEURU
          TVAVBLWTTWDWOUCZWHWSXFABMMWGWRXFWKWLUFZWEWPWFWQXGWDWOVQEXFWKWLUGZSXGW
          DWOVSEXHSUHUEUIVCVDWBABMMWAVEVEVFVGVKVHABMMWAHWBWBVIVRVTVQGEVJVSGEVJV
          LVMVN $.
      $)

      $d u v x $.
      ${
        $d n s t x $.  $d b e f s t A $.  $d s t u v x I $.  $d b e f s t R $.
        $d b e f s t x X $.
        dya2iocnrect.1 $e |-
                      B = ran ( e e. ran (,) , f e. ran (,) |-> ( e X. f ) ) $.
        $( For any point of an open rectangle in ` ( RR X. RR ) ` , there is a
           closed-below open-above dyadic rational square which contains that
           point and is included in the rectangle.  (Contributed by Thierry
           Arnoux, 12-Oct-2017.) $)
        dya2iocnrect $p |- ( ( X e. ( RR X. RR ) /\ A e. B /\ X e. A ) ->
          E. b e. ran R ( X e. b /\ b C_ A ) ) $=
          ( wcel wrex wa vs vt cr cxp w3a cv wceq cioo crn wss cmpt2 eleq2i vex
          eqid xpex elrnmpt2 sylbb 3ad2ant2 simp1 simp3 r19.41vv biimpri simprl
          jca32 simpl simprr eleqtrd 3jca c1st c2nd simpr xp1st 3ad2ant1 adantl
          cfv simpll 3ad2ant3 dya2icoseg2 syl3anc simplr reeanv sylanbrc eqeq2d
          xp2nd xpeq1 rspc2ev mp3an3 sylibr ad2antrl xpss simpl1 sseldi simprrl
          xpeq2 cvv simpld simprrr elxp7 syl12anc simprd xpss12 simpl2 sseqtr4d
          syl2anc eleq2 sseq1 anbi12d rspcev rexlimdvv sylc sylan2 ex rexlimivv
          exp32 3syl ) LUCUCUDZRZDERZLDRZUEZDGUFZHUFZUDZUGZHUHUIZSGYESZXQXSTZTZ
          YDYGTZHYESGYESZLMUFZRZYKDUJZTZMFUIZSZXTYFXQXSXRXQYFXSXRDGHYEYEYCUKZUI
          ZRYFEYRDQULGHYEYEYCDYQYQUNYAYBGUMHUMUOUPUQURXQXRXSUSXQXRXSUTVDYJYHYDY
          GGHYEYEVAVBYIYPGHYEYEYAYERZYBYERZTZYIYPYIUUAXQYDLYCRZUEZYPYIXQYDUUBYD
          XQXSVCYDYGVEZYILDYCYDXQXSVFUUDVGVHUUAUUCTZUUCLVIVOZUAUFZRZUUGYAUJZTZL
          VJVOZUBUFZRZUULYBUJZTZTZUBJUIZSUAUUQSZYPUUAUUCVKUUEUUJUAUUQSZUUOUBUUQ
          SZUURUUEUUFUCRZYSUUFYARZUUSUUCUVAUUAXQYDUVAUUBLUCUCVLVMVNYSYTUUCVPUUC
          UVBUUAUUBXQUVBYDLYAYBVLVQVNAIYAJKUUFUANOVRVSUUEUUKUCRZYTUUKYBRZUUTUUC
          UVCUUAXQYDUVCUUBLUCUCWDVMVNYSYTUUCVTUUCUVDUUAUUBXQUVDYDLYAYBWDVQVNAIY
          BJKUUKUBNOVRVSUUJUUOUAUBUUQUUQWAWBUUCUUPYPUAUBUUQUUQUUCUUGUUQRZUULUUQ
          RZTZUUPYPUUCUVGUUPTZTZUUGUULUDZYORZLUVJRZUVJDUJZYPUVGUVKUUCUUPUVGUVJC
          UFZBUFZUDZUGZBUUQSCUUQSZUVKUVEUVFUVJUVJUGZUVRUVJUNUVQUVSUVJUUGUVOUDZU
          GCBUUGUULUUQUUQUVNUUGUGUVPUVTUVJUVNUUGUVOWEWCUVOUULUGUVTUVJUVJUVOUULU
          UGWNWCWFWGCBUUQUUQUVPUVJFPUVNUVOCUMBUMUOUPWHWIUVILWOWOUDZRZUUHUUMUVLU
          VIXPUWALUCUCWJXQYDUUBUVHWKWLUVIUUHUUIUUCUVGUUJUUOWMZWPUVIUUMUUNUUCUVG
          UUJUUOWQZWPUVLUWBUUHUUMTTLUUGUULWRVBWSUVIUVJYCDUVIUUIUUNUVJYCUJUVIUUH
          UUIUWCWTUVIUUMUUNUWDWTUUGYAUULYBXAXDXQYDUUBUVHXBXCYNUVLUVMTMUVJYOYKUV
          JUGYLUVLYMUVMYKUVJLXEYKUVJDXFXGXHWSXNXIXJXKXLXMXO $.
      $}

      ${
        $d b e f u v x $.  $d b e r A $.  $d x I $.  $d e J $.  $d b e f r R $.
        $d b e f r x X $.
        $( For any point of an open set of the usual topology on
           ` ( RR X. RR ) ` there is a closed-below open-above dyadic rational
           square which contains that point and is entirely in the open set.
           (Contributed by Thierry Arnoux, 21-Sep-2017.) $)
        dya2iocnei $p |- ( ( A e. ( J tX J ) /\ X e. A ) ->
          E. b e. ran R ( X e. b /\ b C_ A ) ) $=
          ( vr ve vf wcel wa cr cv ctx co cxp wss cioo cmpt2 wrex elunii ancoms
          crn cuni tpr2uni syl6eleq cmul caddc eqid tpr2rico anass dya2iocnrect
          ci 3expb anim1i anasss sylan2br r19.41v simpll simplr simpr sstrd jca
          reximi sylbir syl rexlimdvaa sylc ) DHHUAUBZQZIDQZRZISSUCZQZINTZQZWBD
          UDZRZNOPUEUJZWFOTPTUCUFUJZUGIJTZQZWHDUDZRZJEUJZUGZVSIVPUKZVTVRVQIWNQI
          DVPUHUIHKULUMOPBCDWGCBSSCTUTBTUNUBUOUBUFZHINKWOUPWGUPZUQWAWEWMNWGWAWB
          WGQZWERZRWIWHWBUDZRZJWLUGZWDRZWMWRWAWQWCRZWDRXBWQWCWDURWAXCWDXBWAXCRX
          AWDWAWQWCXAABCWBWGEOPFGHIJKLMWPUSVAVBVCVDXBWTWDRZJWLUGWMWTWDJWLVEXDWK
          JWLXDWIWJWIWSWDVFXDWHWBDWIWSWDVGWTWDVHVIVJVKVLVMVNVO $.
      $}

      ${
        $d m p x $.  $d b c m p u v z A $.  $d m J $.  $d b c m p R $.
        $d b m z $.
        $( Every open set of ` ( RR X. RR ) ` is a union of closed-below
           open-above dyadic rational rectangular subsets of ` ( RR X. RR ) ` .
           This union must be a countable union by ~ dya2iocct .  (Contributed
           by Thierry Arnoux, 18-Sep-2017.) $)
        dya2iocuni $p |- ( A e. ( J tX J ) -> E. c e. ~P ran R U. c = A ) $=
          ( vz vb vp wcel cv wrex wceq c0 vm ctx co wel wss crn crab cpw ssrab2
          wa cuni cxp wfn dya2iocrfn cz c2 cexp cdiv c1 caddc cico cmpt2 mpt2ex
          cvv zex eqeltri rnex xpex fnex mp2an elpw2 mpbir a1i wral rex0 mtbiri
          wn ralrimivw rabeq0 sylibr unieqd uni0 syl6eq 0ss syl6eqss wne elequ2
          rexeq sseq1 anbi12d rexbidv elrab simpr reximi syl5ibr adantld syl5bi
          r19.9rzv unissb pm2.61ine dya2iocnei simpl ssel2 ancoms adantl elequ1
          ralrimiv anbi1d rspcev syl2anc jca simprl reximi2 syl eluni2 ex ssrdv
          eqssd unieq eqeq1d ) DHHUBUCPZMNUDZNQZDUEZUJZMDRZNEUFZUGZYGUHZPZYHUKZ
          DSZIQZUKZDSZIYIRYJYAYJYHYGUEYFNYGUIYHYGEEGUFZYPULZUMYQVDPEVDPABCEFGHJ
          KLUNYPYPGGAFUOUOAQZUPFQUQUCZURUCYRUSUTUCYSURUCVAUCZVBVDKAFUOUOYTVEVEV
          CVFVGZUUAVHYQVDEVIVJVGVKVLVMYAYKDYKDUEZYAUUBDTDTSZYKTDUUCYKTUKTUUCYHT
          UUCYFVQZNYGVNYHTSUUCUUDNYGUUCYFYEMTRYEMVOYEMDTWHVPVRYFNYGVSVTWAWBWCDW
          DWEDTWFZOQZDUEZOYHVNUUBUUEUUGOYHUUFYHPZUUFYGPZMOUDZUUGUJZMDRZUJZUUEUU
          GYFUULNUUFYGYCUUFSZYEUUKMDUUNYBUUJYDUUGNOMWGYCUUFDWIWJWKWLZUUEUULUUGU
          UIUULUUGUUEUUGMDRUUKUUGMDUUJUUGWMWNUUGMDWRWOWPWQXGOYHDWSVTWTVMYAUADYK
          YAUAQZDPZUUPYKPZYAUUQUJZUAOUDZOYHRZUURUUSUUTUUGUJZOYGRUVAABCDEFGHUUPO
          JKLXAUVBUUTOYGYHUUIUVBUJZUUHUUTUVCUUMUUHUVCUUIUULUUIUVBXBUVCUUQUVBUUL
          UVBUUQUUIUUGUUTUUQUUFDUUPXCXDXEUUIUVBWMUUKUVBMUUPDMQUUPSUUJUUTUUGMUAO
          XFXHXIXJXKUUOVTUUIUUTUUGXLXKXMXNOUUPYHXOVTXPXQXRYOYLIYHYIYMYHSYNYKDYM
          YHXSXTXIXJ $.
      $}

      ${
        $d c d n u v x $.  $d d u v I $.  $d c d R $.
        $( The dyadic rectangular set collection covers ` ( RR X. RR ) ` .
           (Contributed by Thierry Arnoux, 18-Sep-2017.) $)
        dya2iocucvr $p |- U. ran R = ( RR X. RR ) $=
          ( vd cr wss cv wcel wrex wa c2 co cz vc crn cuni cxp unissb wceq xpex
          vex elrnmpt2 simpr cpw pwssb cexp cdiv c1 caddc cico ovex simpll zred
          cxr 2re a1i cc0 wne 2ne0 simplr reexpclzd 2cnd redivcld 1red readdcld
          expne0d rexrd icossre syl2anc eqsstrd ex rexlimivv sylbi sseli elpwid
          mprgbir xpss12 syl2an adantr ctx ctop cioo ctg retop eqeltri uniretop
          cfv txtopi unieqi eqtr4i txunii topopn dya2iocuni mp2b elpwi eqsstr3d
          unissd rexlimiva ax-mp eqssi ) DUBZUCZLLUDZXIXJMKNZXJMZKXHKXHXJUEXKXH
          OXKCNZBNZUDZUFZBFUBZPCXQPXLCBXQXQXOXKDJXMXNCUHBUHUGUIXPXLCBXQXQXMXQOZ
          XNXQOZQZXPXLXTXPQXKXOXJXTXPUJXTXOXJMZXPXRXMLMXNLMYAXSXRXMLXQLUKZXMXQY
          BMXKLMZKXQKXQLULXKXQOXKANZRENZUMSZUNSZYDUOUPSZYFUNSZUQSZUFZETPATPYCAE
          TTYJXKFIYGYIUQURUIYKYCAETTYDTOZYETOZQZYKYCYNYKQZXKYJLYNYKUJYOYGLOYIVA
          OYJLMYOYDYFYOYDYLYMYKUSUTZYORYERLOYOVBVCRVDVEYOVFVCZYLYMYKVGZVHZYORYE
          YOVIYQYRVMZVJYOYIYOYHYFYOYDUOYPYOVKVLYSYTVJVNYGYIVOVPVQVRVSVTWCZWAWBX
          SXNLXQYBXNUUAWAWBXMLXNLWDWEWFVQVRVSVTWCUANZUCZXJUFZUAXHUKZPZXJXIMZGGW
          GSZWHOXJUUHOUUFGGGWIUBWJWNZWHHWKWLZUUJWOUUHXJGGLLUUJUUJLUUIUCGUCWMGUU
          IHWPWQZUUKWRWSABCXJDEFGUAHIJWTXAUUDUUGUAUUEUUBUUEOZUUDQZXJUUCXIUULUUD
          UJUUMUUBXHUULUUBXHMUUDUUBXHXBWFXDXCXEXFXG $.
      $}

      $d n u v y $.  $d n x y R $.  $d x J $.
      $( The Borel algebra on ` ( RR X. RR ) ` is a subset of the sigma-algebra
         generated by the dyadic closed-below, open-above rectangular subsets
         of ` ( RR X. RR ) ` .  This is a step of the proof of Proposition
         1.1.5 of [Cohn] p. 4.  (Contributed by Thierry Arnoux,
         17-Sep-2017.) $)
      sxbrsigalem1 $p |- ( sigaGen ` ( J tX J ) ) C_ ( sigaGen ` ran R ) $=
        ( vy cuni crn wceq csigagen cfv wss cvv wcel cr ctx co dya2iocucvr cioo
        cxp ctg ctop retop eqeltri uniretop unieqi eqtr4i txunii eqtr2i cv wrex
        cpw dya2iocuni wa simpr com cdom dya2iocct ctex mp1i elpwi ssct sylancl
        wbr elsigagen2 syl3anc adantr eqeltrrd rexlimiva ssriv ax-mp sigagenss2
        syl mp3an ) GGUAUBZLZDMZLZNVTWBOPZQWBRSZVTOPWDQWCTTUEWAABCDEFGHIJUCGGTT
        GUDMUFPZUGHUHUIZWGTWFLGLUJGWFHUKULZWHUMUNAVTWDAUOZVTSKUOZLZWINZKWBUQZUP
        WIWDSZABCWIDEFGKHIJURWLWNKWMWJWMSZWLUSWKWIWDWOWLUTWOWKWDSZWLWOWEWJWBQZW
        JVAVBVIZWPWBVAVBVIZWEWOABCDEFGHIJVCZWBVDZVEWJWBVFZWOWQWSWRXBWTWJWBVGVHW
        BWJRVJVKVLVMVNVRVOWSWEWTXAVPVTWBRVQVS $.

      ${
        $d d e f n u v x $.  $d u v x I $.  $d x J $.  $d d R $.
        $( The sigma-algebra generated by the dyadic closed-below, open-above
           rectangular subsets of ` ( RR X. RR ) ` is a subset of the
           sigma-algebra generated by the closed half-spaces of
           ` ( RR X. RR ) ` .  The proof goes by noting the fact that the
           dyadic rectangles are intersections of a 'vertical band' and an
           'horizontal band', which themselves are differences of closed
           half-spaces.  (Contributed by Thierry Arnoux, 17-Sep-2017.) $)
        sxbrsigalem2 $p |- ( sigaGen ` ran R ) C_ ( sigaGen `
           ( ran ( e e. RR |-> ( ( e [,) +oo ) X. RR ) )
          u. ran ( f e. RR |-> ( RR X. ( f [,) +oo ) ) ) ) ) $=
          ( cr cpnf cico cxp wceq wcel wrex cz vd crn cuni cv cmpt cun csigagen
          co cfv wss cvv dya2iocucvr sxbrsigalem0 eqtr4i xpex elrnmpt2 wa simpr
          vex c1st cres ccnv cima c2nd cin cpw dya2icobrsiga brsigasspwrn sstri
          cbrsiga sseli elpwid xpinpreima2 syl2an csiga wtru reex rnex unex a1i
          mptex sgsiga trud 1stpreima syl c2 cexp cdiv caddc ovex xpeq1d difxp1
          c1 cdif cxr cle wbr simpl zred crp 2rp rpexpcld rerpdivcld rexrd 1red
          readdcld pnfxr lep1d lediv1dd pnfge difico syl32anc ssun1 eqid eqeq2d
          syl5reqr oveq1 rspcev sylancl sylibr sseldi elsigagen sylancr syl3anc
          elrnmpti difelsiga eqeltrd adantr ex rexlimivv sylbi 2ndpreima xpeq2d
          difxp2 ssun2 adantl inelsiga ssriv sigagenss2 mp3an ) DUBZUCZEMEUDZNO
          UHZMPZUEZUBZFMMFUDZNOUHZPZUEZUBZUFZUCZQUUAUUMUGUIZUJUUMUKRZUUAUGUIUUO
          UJUUBMMPZUUNABCDGHIJKLULEFUMUNUAUUAUUOUAUDZUUARUURCUDZBUDZPZQZBHUBZSC
          UVCSUURUUORZCBUVCUVCUVAUURDLUUSUUTCUSBUSUOUPUVBUVDCBUVCUVCUUSUVCRZUUT
          UVCRZUQZUVBUVDUVGUVBUQUURUVAUUOUVGUVBURUVGUVAUUORUVBUVGUVAUTUUQVAVBUU
          SVCZVDUUQVAVBUUTVCZVEZUUOUVEUUSMUJZUUTMUJZUVAUVJQUVFUVEUUSMUVCMVFZUUS
          UVCVJUVMAGHIJKVGVHVIZVKVLZUVFUUTMUVCUVMUUTUVNVKVLZUUSUUTMMVMVNUVGUUOV
          OUBUCRZUVHUUORZUVIUUORZUVJUUORUVQUVGUVQVPUUMUKUUPVPUUGUULUUFEMUUEVQWA
          VRUUKFMUUJVQWAVRVSZVTWBWCZVTUVEUVRUVFUVEUVHUUSMPZUUOUVEUVKUVHUWBQUVOU
          USMMWDWEUVEUUSAUDZWFGUDZWGUHZWHUHZUWCWMWIUHZUWEWHUHZOUHZQZGTSATSUWBUU
          ORZAGTTUWIUUSHKUWFUWHOWJZUPUWJUWKAGTTUWCTRZUWDTRZUQZUWJUWKUWOUWJUQZUW
          BUWIMPZUUOUWPUUSUWIMUWOUWJURWKUWOUWQUUORUWJUWOUWQUWFNOUHZMPZUWHNOUHZM
          PZWNZUUOUWOUXBUWRUWTWNZMPUWQUWRUWTMWLUWOUXCUWIMUWOUWFWORUWHWORZNWORZU
          WFUWHWPWQUWHNWPWQZUXCUWIQUWOUWFUWOUWCUWEUWOUWCUWMUWNWRWSZUWOWFUWDWFWT
          RUWOXAVTUWMUWNURXBZXCZXDUWOUWHUWOUWGUWEUWOUWCWMUXGUWOXEXFZUXHXCZXDZUX
          EUWOXGVTUWOUWCUWGUWEUXGUXJUXHUWOUWCUXGXHXIUWOUXDUXFUXLUWHXJWEUWFUWHNX
          KXLZWKXPUWOUVQUWSUUORZUXAUUORZUXBUUORUVQUWOUWAVTZUWOUUPUWSUUMRUXNUVTU
          WOUUGUUMUWSUUGUULXMZUWOUWSUUEQZEMSZUWSUUGRUWOUWFMRZUWSUWSQZUXSUXIUWSX
          NUXRUYAEUWFMUUCUWFQZUUEUWSUWSUYBUUDUWRMUUCUWFNOXQWKXOXRXSEMUUEUWSUUFU
          UFXNZUUDMUUCNOWJVQUOZYEXTYAUUMUWSUKYBYCUWOUUPUXAUUMRUXOUVTUWOUUGUUMUX
          AUXQUWOUXAUUEQZEMSZUXAUUGRUWOUWHMRZUXAUXAQZUYFUXKUXAXNUYEUYHEUWHMUUCU
          WHQZUUEUXAUXAUYIUUDUWTMUUCUWHNOXQWKXOXRXSEMUUEUXAUUFUYCUYDYEXTYAUUMUX
          AUKYBYCUWSUXAUUOYFYDYGYHYGYIYJYKYGYHUVFUVSUVEUVFUVIMUUTPZUUOUVFUVLUVI
          UYJQUVPUUTMMYLWEUVFUUTUWIQZGTSATSUYJUUORZAGTTUWIUUTHKUWLUPUYKUYLAGTTU
          WOUYKUYLUWOUYKUQZUYJMUWIPZUUOUYMUUTUWIMUWOUYKURYMUWOUYNUUORUYKUWOUYNM
          UWRPZMUWTPZWNZUUOUWOUYQMUXCPUYNMUWRUWTYNUWOUXCUWIMUXMYMXPUWOUVQUYOUUO
          RZUYPUUORZUYQUUORUXPUWOUUPUYOUUMRUYRUVTUWOUULUUMUYOUULUUGYOZUWOUYOUUJ
          QZFMSZUYOUULRUWOUXTUYOUYOQZVUBUXIUYOXNVUAVUCFUWFMUUHUWFQZUUJUYOUYOVUD
          UUIUWRMUUHUWFNOXQYMXOXRXSFMUUJUYOUUKUUKXNZMUUIVQUUHNOWJUOZYEXTYAUUMUY
          OUKYBYCUWOUUPUYPUUMRUYSUVTUWOUULUUMUYPUYTUWOUYPUUJQZFMSZUYPUULRUWOUYG
          UYPUYPQZVUHUXKUYPXNVUGVUIFUWHMUUHUWHQZUUJUYPUYPVUJUUIUWTMUUHUWHNOXQYM
          XOXRXSFMUUJUYPUUKVUEVUFYEXTYAUUMUYPUKYBYCUYOUYPUUOYFYDYGYHYGYIYJYKYGY
          PUVHUVIUUOYQYDYGYHYGYIYJYKYRUVTUUAUUMUKYSYT $.
      $}

      ${
        $d e f n u v x $.
        $( The Borel algebra on ` ( RR X. RR ) ` is generated by the dyadic
           closed-below, open-above rectangular subsets of ` ( RR X. RR ) ` .
           Proposition 1.1.5 of [Cohn] p. 4 .  Note that the interval used in
           this formalization are closed-below, open-above instead of
           open-below, closed-above in the proof as they are ultimately
           generated by the floor function.  (Contributed by Thierry Arnoux,
           21-Sep-2017.) $)
        sxbrsigalem4 $p |- ( sigaGen ` ( J tX J ) ) = ( sigaGen ` ran R ) $=
          ( ve vf co csigagen cfv crn cr cv cpnf cxp ctx sxbrsigalem1 ccld cico
          cmpt cun sxbrsigalem2 sxbrsigalem3 sstri cuni wceq wss ctop topontopi
          wcel tpr2tp eqid unicls cldssbrsiga ax-mp sigagenss2 mp3an eqssi ) GG
          UAMZNOZDPNOZABCDEFGHIJUBVFVDUCOZNOZVEVFKQKRSUDMQTUEPLQQLRSUDMTUEPUFNO
          VHABCDKLEFGHIJUGKLGHUHUIVGUJVDUJZUKVGVEULZVDUMUOZVHVEULVDVIQQTVDGHUPU
          NZVIUQURVKVJVLVDUSUTVLVGVDUMVAVBUIVC $.
      $}

      ${
        $d e f g n u v x $.  $d e f g u v I $.  $d n x R $.  $d u x J $.
        $d v J $.
        $( First direction for ~ sxbrsiga .  (Contributed by Thierry Arnoux,
           22-Sep-2017.)  (Revised by Thierry Arnoux, 11-Oct-2017.) $)
        sxbrsigalem5 $p |- ( sigaGen ` ( J tX J ) ) C_ ( BrSiga sX BrSiga ) $=
          ( ve vf vg cfv cbrsiga cv cxp wss wcel wa crn csigagen cmpt2 ctx cuni
          co csx wceq cr dya2iocucvr br2base eqtr4i csiga brsigarn elexi mpt2ex
          cvv coprab dya2icobrsiga sseli anim12i anim1i ssoprab2i df-mpt2 eqtri
          rnex xpeq1 xpeq2 3sstr4i rnss ax-mp sssigagen2 mp2an sigagenss2 mp3an
          cbvmpt2v sxbrsigalem4 eqid sxval ) DUAZUBNZKLOOKPZLPZQZUCZUAZUBNZGGUD
          UFUBNOOUGUFZVTUEZWFUEZUHVTWGRZWFUQSZWAWGRWIUIUIQWJABCDEFGHIJUJKLUKULW
          LVTWFRZWKWEKLOOWDOUIUMNZUNUOZWOUPVFZDWERWMCPZFUAZSZBPZWRSZTZMPWQWTQZU
          HZTZCBMURZWQOSZWTOSZTZXDTZCBMURZDWEXEXJCBMXBXIXDWSXGXAXHWROWQAEFGHIUS
          ZUTWROWTXLUTVAVBVCDCBWRWRXCUCXFJCBMWRWRXCVDVEWECBOOXCUCXKKLCBOOWDXCWQ
          WCQWBWQWCVGWCWTWQVHVPCBMOOXCVDVEVIDWEVJVKWFVTUQVLVMWPVTWFUQVNVOABCDEF
          GHIJVQOWNSZXMWHWGUHUNUNKLWFOOWNWNWFVRVSVMVI $.
      $}
    $}

    ${
      $d a m n u v x $.  $d u v x J $.
      $( First direction for ~ sxbrsiga , same as sxbrsigalem6, dealing with
         the antecedents.  (Contributed by Thierry Arnoux, 10-Oct-2017.) $)
      sxbrsigalem6 $p |- ( sigaGen ` ( J tX J ) ) C_ ( BrSiga sX BrSiga ) $=
        ( vx vv vu va vm vn cz cv c2 cexp co cdiv c1 caddc cico cmpt2 weq oveq1
        crn cxp oveq1d oveq12d oveq2 oveq2d cbvmpt2v eqid sxbrsigalem5 ) CDEEDF
        GIIFJZKGJZLMZNMZUJOPMZULNMZQMZRZUAZUREJDJUBRZHUQABFGCHIIUPCJZKHJZLMZNMZ
        UTOPMZVBNMZQMUTULNMZVDULNMZQMFCSZUMVFUOVGQUJUTULNTVHUNVDULNUJUTOPTUCUDG
        HSZVFVCVGVEQVIULVBUTNUKVAKLUEZUFVIULVBVDNVJUFUDUGUSUHUI $.
    $}

    ${
      $d e f J $.
      $( The product sigma-algebra ` ( BrSiga sX BrSiga ) ` is the Borel
         algebra on ` ( RR X. RR ) ` See example 5.1.1 of [Cohn] p. 143 .
         (Contributed by Thierry Arnoux, 10-Oct-2017.) $)
      sxbrsiga $p |- ( BrSiga sX BrSiga ) = ( sigaGen ` ( J tX J ) ) $=
        ( ve vf cbrsiga co csigagen cfv cv crn cr csiga wcel wceq brsigarn cuni
        mp2an wss mp1i a1i csx ctx cxp cmpt2 eqid ctopon br2base tpr2uni eqtr4i
        sxval wral wa c1st cres ccnv cima c2nd cin cpw brsigasspwrn xpinpreima2
        sseli elpwid syl2an tpr2tp sigagensiga elrnsiga sgsiga ccn cioo retopon
        ax-mp ctg eqeltri tx1cn eqidd df-brsiga fveq2i cnmbfm mbfmcnvima adantr
        tx2cn adantl inelsiga syl3anc eqeltrd rnmpt2ss sigagenss2 mp3an eqsstri
        id rgen2a sxbrsigalem6 eqssi ) EEUAFZAAUBFZGHZWOCDEECIZDIZUCZUDZJZGHZWQ
        EKLHZMZXEWOXCNOOCDXBEEXDXDXBUEUJQXBPZWPPZNXBWQRZWPKKUCZUFHZMZXCWQRXFXIX
        GCDUGABUHUIWTWQMZDEUKCEUKXHXLCDEWREMZWSEMZULZWTUMXIUNZUOWRUPZUQXIUNZUOW
        SUPZURZWQXMWRKRWSKRWTXTNXNXMWRKEKUSZWRUTVBVCXNWSKEYAWSUTVBVCWRWSKKVAVDX
        OWQLJPZMZXQWQMZXSWQMZXTWQMWQXGLHMZYCXOXKYFABVEZWPXJVFVLWQXGVGSXMYDXNXMW
        RWQEXPXMWPXJXKXMYGTVHXEEYBMZXMOEKVGZSXMWQEXPWPAXPWPAVIFZMZXMAKUFHZMZYMY
        KAVJJVMHZYLBVKVNZYOAAKKVOQTXMWQVPEAGHZNZXMEYNGHYPVQAYNGBVRUIZTVSXMWKVTW
        AXNYEXMXNWSWQEXRXNWPXJXKXNYGTVHXEYHXNOYISXNWQEXRWPAXRYJMZXNYMYMYSYOYOAA
        KKWBQTXNWQVPYQXNYRTVSXNWKVTWCXQXSWQWDWEWFWLCDEEWTWQXAXAUEWGVLYGXBWPXJWH
        WIWJABWMWN $.
    $}
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Caratheodory's extension theorem
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
In this section, we define a function ` toOMeas ` which constructs an outer
measure, from a pre-measure ` R ` .
An explicit generic definition of an outer measure is not given. It consists of
the three following statements:
- the outer measure of an empty set is zero ( ~ oms0 )
- it is monotone ( ~ omsmon )
- it is countably sub-additive ( ~ omssubadd )
See Definition 1.11.1 of [Bogachev] p. 41.
$)
  $c toOMeas $.

  $( Class declaration for the outer measure construction function. $)
  coms $a class toOMeas $.

  ${
    $d r a x y z $.
    $( Define a function constructing an outer measure.  See ~ omsval for its
       value.  Definition 1.5 of [Bogachev] p. 16.  (Contributed by Thierry
       Arnoux, 15-Sep-2019.)  (Revised by AV, 4-Oct-2020.) $)
    df-oms $a |- toOMeas = ( r e. _V |-> ( a e. ~P U. dom r |->
      inf ( ran ( x e. { z e. ~P dom r | ( a C_ U. z /\ z ~<_ _om ) }
                  |-> sum* y e. x ( r ` y ) ) , ( 0 [,] +oo ) , < ) ) ) $.
  $}

  ${
    $d a r s t w x y z R $.
    $( Value of the function mapping a content function to the corresponding
       outer measure.  (Contributed by Thierry Arnoux, 15-Sep-2019.)  (Revised
       by AV, 4-Oct-2020.) $)
    omsval $p |- ( R e. _V -> ( toOMeas ` R ) =
      ( a e. ~P U. dom R |-> inf ( ran ( x e. { z e. ~P dom R | ( a C_ U. z /\
      z ~<_ _om ) } |-> sum* y e. x ( R ` y ) ) , ( 0 [,] +oo ) , < ) ) ) $=
      ( vr cvv wcel cv cdm cuni cpw wa crab cfv cesum cmpt crn clt wceq wss com
      cdom wbr cc0 cpnf cicc cinf coms df-oms a1i dmeq unieqd pweqd rabeq simpl
      co syl fveq1d esumeq2dv mpteq12dv rneqd infeq1d adantl dmexg uniexg pwexg
      id mptexg 4syl fvmptd ) DGHZFDEFIZJZKZLZAEICIZKUAVQUBUCUDMZCVNLZNZAIZBIZV
      MOZBPZQZRZUEUFUGUQZSUHZQZEDJZKZLZAVRCWJLZNZWAWBDOZBPZQZRZWGSUHZQZGUIGUIFG
      WIQTVLABCFEUJUKVMDTZWIWTTVLXAEVPWHWLWSXAVOWKXAVNWJVMDULZUMUNXAWGWFWRSXAWE
      WQXAAVTWDWNWPXAVSWMTVTWNTXAVNWJXBUNVRCVSWMUOURXAWAWCWOBXAWBWAHZMWBVMDXAXC
      UPUSUTVAVBVCVAVDVLVHVLWJGHWKGHWLGHWTGHDGVEWJGVFWKGVGEWLWSGVIVJVK $.

    $d A a s t w x y z $.  $d Q a x y z $.  $d V a x y z $.
    $( Value of the outer measure evaluated for a given set ` A ` .
       (Contributed by Thierry Arnoux, 15-Sep-2019.)  (Revised by AV,
       4-Oct-2020.) $)
    omsfval $p |- ( ( Q e. V /\ R : Q --> ( 0 [,] +oo ) /\ A C_ U. Q )
      -> ( ( toOMeas ` R ) ` A ) = inf ( ran ( x e.
        { z e. ~P dom R | ( A C_ U. z /\ z ~<_ _om ) }
      |-> sum* y e. x ( R ` y ) ) , ( 0 [,] +oo ) , < ) ) $=
      ( va wcel cc0 cpnf cuni wss cv wa cmpt clt cvv wceq cxr cicc w3a com cdom
      co wf wbr cdm cpw crab cfv cesum crn cinf coms simp2 simp1 syl2anc omsval
      fex syl simpr sseq1d anbi1d rabbidv mpteq1d rneqd infeq1d 3ad2ant2 unieqd
      simp3 fdm sseqtr4d wb elex uniexb biimpi ssexg elpwg mpbird wor xrltso wi
      3syl iccssxr soss ax-mp mp1i infexd fvmptd ) EGIZEJKUAUEZFUFZDELZMZUBZHDA
      HNZCNZLZMZWRUCUDUGZOZCFUHZUIZUJZANBNFUKBULZPZUMZWLQUNZADWSMZXAOZCXDUJZXFP
      ZUMZWLQUNXCLZUIZFUOUKZRWPFRIZXQHXPXIPSWPWMWKXRWKWMWOUPWKWMWOUQZEWLGFUTURA
      BCFHUSVAWPWQDSZOZWLXHXNQYAXGXMYAAXEXLXFYAXBXKCXDYAWTXJXAYAWQDWSWPXTVBVCVD
      VEVFVGVHWPDXPIZDXOMZWPDWNXOWKWMWOVKZWPXCEWMWKXCESWOEWLFVLVIVJVMWPDRIZYBYC
      VNWPWOWNRIZYEYDWPWKERIZYFXSEGVOYGYFEVPVQWDDWNRVRURDXORVSVAVTWPWLXNQTQWAZW
      LQWAZWPWBWLTMYHYIWCJKWEWLTQWFWGWHWIWJ $.

    $( A closure lemma for the constructed outer measure.  (Contributed by
       Thierry Arnoux, 17-Sep-2019.) $)
    omscl $p |- ( ( Q e. V /\ R : Q --> ( 0 [,] +oo ) /\ A e. ~P U. dom R )
      -> ran ( x e. { z e. ~P dom R | ( A C_ U. z /\ z ~<_ _om ) }
        |-> sum* y e. x ( R ` y ) ) C_ ( 0 [,] +oo ) ) $=
      ( wcel cc0 cpnf cicc cuni cpw cv wss wa wral cvv syl ralrimiva co cdm w3a
      wf cfv cesum com cdom wbr crab crn vex simp2 ad2antrr ssrab2 simpr sseldi
      cmpt wceq fdm pweqd adantr eleqtrd elpwi sselda ffvelrnd nfcv esumcl eqid
      sylancr rnmptss ) EGHZEIJKUAZFUDZDFUBZLMHZUCZANZBNZFUEZBUFZVMHZADCNZLOWCU
      GUHUIPZCVOMZUJZQAWFWAURZUKVMOVQWBAWFVQVRWFHZPZVRRHVTVMHZBVRQWBAULWIWJBVRW
      IVSVRHZPEVMVSFVQVNWHWKVLVNVPUMZUNWIVREVSWIVREMZHVREOWIVRWEWMWIWFWEVRWDCWE
      UOVQWHUPUQVQWEWMUSZWHVQVNWNWLVNVOEEVMFUTVASVBVCVREVDSVEVFTVRVTBRBVRVGVHVJ
      TAWFWAVMWGWGVIVKS $.

    $( A constructed outer measure is a function.  (Contributed by Thierry
       Arnoux, 17-Sep-2019.)  (Revised by AV, 4-Oct-2020.) $)
    omsf $p |- ( ( Q e. V /\ R : Q --> ( 0 [,] +oo ) ) ->
      ( toOMeas ` R ) : ~P U. dom R --> ( 0 [,] +oo ) ) $=
      ( va vx vz vy vt vw vs wcel wa cuni cpw cv wss wbr cfv clt cxr cpnf co wf
      cc0 cicc cdm com cdom crab cmpt crn cinf coms wor iccssxr xrltso soss mp2
      cesum a1i wn wral wrex wi omscl 3expa xrge0infss syl infcl cvv fex ancoms
      wceq omsval simpll simplr simpr fdm unieqd pweqd ad2antlr eleqtrd omsfval
      elpwi syl3anc eqeltrd fmpt2d ) ACKZAUDUAUEUBZBUCZLZDDBUFZMZNZEDOZFOZMPWPU
      GUHQLFWLNUIEOGOBRGUSUJUKZWISULZWIBUMRZWIWKWOWNKZLZHIJWIWQSWISUNZXAWITPTSU
      NXBUDUAUOUPWITSUQURUTXAWQWIPZIOZHOZSQVAIWQVBXEXDSQJOXDSQJWQVCVDIWIVBLHWIV
      CWHWJWTXCEGFWOABCVEVFHIJWQVGVHVIZWKBVJKZWSDWNWRUJVMWJWHXGAWICBVKVLEGFBDVN
      VHXAWOWSRZWRWIXAWHWJWOAMZPZXHWRVMWHWJWTVOWHWJWTVPXAWOXINZKXJXAWOWNXKWKWTV
      QWJWNXKVMWHWTWJWMXIWJWLAAWIBVRVSVTWAWBWOXIWDVHEGFWOABCWCWEXFWFWG $.
  $}

  ${
    $d Q x y z $.  $d R a x y z $.  $d V x y z $.  $d a x y z ph $.
    oms.m $e |- M = ( toOMeas ` R ) $.
    oms.o $e |- ( ph -> Q e. V ) $.
    oms.r $e |- ( ph -> R : Q --> ( 0 [,] +oo ) ) $.
    ${
      oms.d $e |- ( ph -> (/) e. dom R ) $.
      oms.0 $e |- ( ph -> ( R ` (/) ) = 0 ) $.
      $( A constructed outer measure evaluates to zero for the empty set.
         (Contributed by Thierry Arnoux, 15-Sep-2019.)  (Revised by AV,
         4-Oct-2020.) $)
      oms0 $p |- ( ph -> ( M ` (/) ) = 0 ) $=
        ( vx vy c0 cc0 wa clt wcel wceq cxr cvv vz cfv coms fveq1i cuni wss com
        va cv cdom wbr cdm cpw crab cesum cmpt crn cpnf cicc co cinf wf 0ss fdm
        syl unieqd syl5sseq omsfval syl3anc wor iccssxr soss mp2 0e0iccpnf wrex
        xrltso a1i csn snssd p0ex elpw sylibr 0ex snct ax-mp pm3.2i jctir unieq
        sseq2d breq1 anbi12d fveq2d adantr esumsn eqcomd esumeq1 eqeq2d syl2anc
        elrab simpr eqtrd rspcev wb 0xr eqid elrnmpt wn cle nfv nfrn nfcri nfan
        nfmpt1 wral vex nfesum1 nfmpt nfeq2 ad4antr ssrab2 simpllr sseldi pweqd
        eleqtrd elpwid sseldd ffvelrnd ex ralrimi esumcl sylancr eqeltrd biimpi
        nfcv adantl r19.29af pnfxr iccgelb mp3an12 xrlenlt bicomd mpbird infmin
        syl5eq ) AMDUBMCUCUBZUBZNMDUUEFUDAUUFKMUAUIZUEZUFZUUGUGUJUKZOZUACULZUMZ
        UNZKUIZLUIZCUBZLUOZUPZUQZNURUSUTZPVAZNABEQBUVACVBZMBUEZUFUUFUVBRGHAUULU
        EZMUVDUVEVCAUULBAUVCUULBRHBUVACVDVEZVFVGKLUAMBCEVHVIAUHUVAUUTNPUVAPVJZA
        UVASUFSPVJUVGNURVKZVPUVASPVLVMVQNUVAQAVNVQZANUURRZKUUNVOZNUUTQZAMVRZUUN
        QZNUVMUUQLUOZRZUVKAUVMUUMQZMUVMUEZUFZUVMUGUJUKZOZOUVNAUVQUWAAUVMUULUFUV
        QAMUULIVSUVMUULVTWAWBUVSUVTUVRVCMTQUVTWCMTWDWEWFWGUUKUWAUAUVMUUMUUGUVMR
        ZUUIUVSUUJUVTUWBUUHUVRMUUGUVMWHWIUUGUVMUGUJWJWKWSWBAUVONAUUQNLMUULAUUPM
        RZOZUUQMCUBZNUWDUUPMCAUWCWTWLAUWENRUWCJWMXAIUVIWNWOUVJUVPKUVMUUNUUOUVMR
        UURUVONUUOUVMUUQLWPWQXBWRNSQZUVLUVKXCXDKUUNUURNUUSSUUSXEZXFWEWBAUHUIZUU
        TQZOZUWHNPUKXGZNUWHXHUKZUWJUWHUVAQZUWLUWJUWHUURRZUWMKUUNAUWIKAKXIKUHUUT
        KUUSKUUNUURXMXJXKXLUWJUUOUUNQZOZUWNOZUWHUURUVAUWPUWNWTUWQUUOTQUUQUVAQZL
        UUOXNUURUVAQKXOUWQUWRLUUOUWPUWNLUWJUWOLAUWILALXILUHUUTLUUSLKUUNUURLUUNY
        NUUOUUQLLUUOYNZXPZXQXJXKXLUWOLXIXLLUWHUURUWTXRXLUWQUUPUUOQZUWRUWQUXAOZB
        UVAUUPCAUVCUWIUWOUWNUXAHXSUXBUUOBUUPUXBUUOBUXBUUOUUMBUMZUXBUUNUUMUUOUUK
        UAUUMXTUWJUWOUWNUXAYAYBAUUMUXCRUWIUWOUWNUXAAUULBUVFYCXSYDYEUWQUXAWTYFYG
        YHYIUUOUUQLTUWSYJYKYLUWIUWNKUUNVOZAUWIUXDUWHTQUWIUXDXCUHXOKUUNUURUWHUUS
        TUWGXFWEYMYOYPZUWFURSQUWMUWLXDYQNURUWHYRYSVEUWJUWFUWHSQZUWKUWLXCXDUWJUV
        ASUWHUVHUXEYBUWFUXFOUWLUWKNUWHYTUUAYKUUBUUCXAUUD $.
    $}

    ${
      $d A x y z $.  $d B x y z $.  $d Q x y z $.  $d V x y z $.
      omsmon.a $e |- ( ph -> A C_ B ) $.
      omsmon.b $e |- ( ph -> B C_ U. Q ) $.
      $( A constructed outer measure is monotone.  Note in Example 1.5.2 of
         [Bogachev] p. 17.  (Contributed by Thierry Arnoux, 15-Sep-2019.)
         (Revised by AV, 4-Oct-2020.) $)
      omsmon $p |- ( ph -> ( M ` A ) <_ ( M ` B ) ) $=
        ( vx vz vy cfv wss wa wcel syl coms cle cuni com cdom wbr cdm cpw cesum
        cv crab cmpt crn cc0 cpnf cicc co cinf cres wceq wi adantr sstr2 anim1d
        clt ss2rabdv resmpt resss syl6eqssr rnss wral wf ad2antrr ssrab2 simplr
        sseldi elpwi fdm sseqtrd simpr sseldd ffvelrnd ralrimiva cvv vex esumcl
        nfcv mpan eqid rnmptss xrge0infssd sstrd omsfval syl3anc 3brtr4d fveq1i
        3brtr4g ) ABEUAPZPZCWRPZBFPCFPUBAMBNUJZUCZQZXAUDUEUFZRZNEUGZUHZUKZMUJZO
        UJZEPZOUIZULZUMZUNUOUPUQZVEURZMCXBQZXDRZNXGUKZXLULZUMZXOVEURZWSWTUBAXNY
        AAXTXMQYAXNQAXTXMXSUSZXMAXSXHQYCXTUTAXRXENXGAXAXGSZRZXQXCXDYEBCQZXQXCVA
        AYFYDKVBBCXBVCTVDVFMXHXSXLVGTXMXSVHVIXTXMVJTAXLXOSZMXHVKXNXOQAYGMXHAXIX
        HSZRZXKXOSZOXIVKZYGYIYJOXIYIXJXISZRZDXOXJEADXOEVLZYHYLJVMYMXIDXJYMXIXFD
        YMXIXGSXIXFQYMXHXGXIXENXGVNAYHYLVOVPXIXFVQTAXFDUTZYHYLAYNYOJDXOEVRTVMVS
        YIYLVTWAWBWCXIWDSYKYGMWEXIXKOWDOXIWGWFWHTWCMXHXLXOXMXMWIWJTWKADGSZYNBDU
        CZQWSXPUTIJABCYQKLWLMONBDEGWMWNAYPYNCYQQWTYBUTIJLMONCDEGWMWNWOBFWRHWPCF
        WRHWPWQ $.
    $}

    $d A e t u w x z $.  $d E u x $.  $d M u x $.  $d Q w x z $.
    $d R e t u w x z $.  $d V w x z $.  $d ph u $.
    ${
      omssubaddlem.a $e |- ( ph -> A C_ U. Q ) $.
      omssubaddlem.m $e |- ( ph -> ( M ` A ) e. RR ) $.
      omssubaddlem.e $e |- ( ph -> E e. RR+ ) $.
      $( For any small margin ` E ` , we can find a covering approaching the
         outer measure of a set ` A ` by that margin.  (Contributed by Thierry
         Arnoux, 18-Sep-2019.)  (Revised by AV, 4-Oct-2020.) $)
      omssubaddlem $p |- ( ph -> E. x e. { z e. ~P dom R | ( A C_ U. z
        /\ z ~<_ _om ) } sum* w e. x ( R ` w ) < ( ( M ` A ) + E ) ) $=
        ( vu clt wbr wcel ve vt cv cfv caddc co cuni wss com cdom cdm cpw cesum
        crab cmpt crn wrex cc0 cpnf cicc cinf cxr cle rpred readdcld rexrd coms
        wa wf omsf syl2anc feq1i sylibr wceq fdm syl unieqd sseqtr4d cvv uniexg
        wb jca ssexg elpwg 3syl mpbird ffvelrnd elxrge0 simprbi rpge0d sylanbrc
        addge0d fveq1i omsfval syl3anc syl5req ltaddrpd eqbrtrd wor xrltso soss
        iccssxr mp2 a1i wn wral wi omscl xrge0infss infglb mp2and eqid elrnmpti
        esumex anbi1i r19.41v bitr4i exbii df-rex rexcom4 3bitr4i breq1 exlimiv
        wex biimpa reximi sylbi ) AQUCZEIUDZHUEUFZRSZQBECUCZUGUHYLUIUJSVHCGUKZU
        LUNZBUCZDUCGUDZDUMZUOZUPZUQZYQYJRSZBYNUQZAYJURUSUTUFZTZYSUUCRVAZYJRSYTA
        YJVBTURYJVCSUUDAYJAYIHOAHPVDZVEVFAYIHOUUFAYIUUCTZURYIVCSZAYMUGZULZUUCEI
        AUUJUUCGVGUDZVIZUUJUUCIVIAFJTZFUUCGVIZUULLMFGJVJVKUUJUUCIUUKKVLVMAEUUJT
        ZEUUIUHZAEFUGZUUINAYMFAUUNYMFVNMFUUCGVOVPVQVRAEUUQUHZUUQVSTZVHEVSTUUOUU
        PWAAUURUUSNAUUMUUSLFJVTVPWBEUUQVSWCEUUIVSWDWEWFZWGUUGYIVBTUUHYIWHWIVPAH
        PWJWLYJWHWKAUUEYIYJRAYIEUUKUDZUUEEIUUKKWMAUUMUUNUURUVAUUEVNLMNBDCEFGJWN
        WOWPAYIHOPWQWRAUAUBQUUCYSYJRUUCRWSZAUUCVBUHVBRWSUVBURUSXBWTUUCVBRXAXCXD
        AYSUUCUHZUBUCZUAUCZRSXEUBYSXFUVEUVDRSYHUVDRSQYSUQXGUBUUCXFVHUAUUCUQAUUM
        UUNUUOUVCLMUUTBDCEFGJXHWOUAUBQYSXIVPXJXKYTYHYQVNZYKVHZQYDZBYNUQZUUBYHYS
        TZYKVHZQYDUVGBYNUQZQYDYTUVIUVKUVLQUVKUVFBYNUQZYKVHUVLUVJUVMYKBYNYQYHYRY
        RXLYOYPDXNXMXOUVFYKBYNXPXQXRYKQYSXSUVGBQYNXTYAUVHUUABYNUVGUUAQUVFYKUUAY
        HYQYJRYBYEYCYFYGVP $.
    $}

    ${
      $d f g A $.  $d A e f g t u w x z $.  $d A h u v w x z $.
      $d e f g x M $.  $d x y z Q $.  $d w x y z Q $.
      $d c e g t u w x y z R $.  $d R h u v w x z $.  $d V w x y z $.
      $d c e f g t u w x y z X $.  $d c e f g u w x y z ph $.
      omssubadd.a $e |- ( ( ph /\ y e. X ) -> A C_ U. Q ) $.
      omssubadd.b $e |- ( ph -> X ~<_ _om ) $.
      $( A constructed outer measure is countably sub-additive.  Lemma 1.5.4 of
         [Bogachev] p. 17.  (Contributed by Thierry Arnoux, 21-Sep-2019.)
         (Revised by AV, 4-Oct-2020.) $)
      omssubadd $p |- ( ph -> ( M ` U_ y e. X A ) <_ sum* y e. X ( M ` A ) ) $=
        ( vz vw wcel wbr wa clt cvv vf ve vg vx vu vv vh vc vt cfv cesum cr cle
        ciun cn cv wex cdom com sylancl syl adantr caddc crp wral cpw crab cuni
        co wss cexp cdiv wrex simplll ctex nfv nfcv nfan cmpt crn cc0 cpnf cinf
        wf c2 simpr cxad sylibr syl2anc wb uniexg elpwg mpbird ffvelrnd adantlr
        wceq rpssre simplr 2rp a1i ccnv wfun adantl nnzd adantl3r sylan syl3anc
        sseldi cxr wn wi syl21anc eqid breq1 ax-mp unieq sseq2d anbi12d simprbi
        imp simpld mpd ex ralrimi ad2antrr ralrimiva 3syl sseqtrd sselda esumcl
        elrab rexrd simpllr sylib ralimi c1 cxmu oveq2d cc xrletrd wf1 cen nfel
        nnenom ensymi domentr brdomi cdm nfesum1 cicc coms omsf unieqd sseqtr4d
        feq1i fdm ssexg esumcvgre df-f1 ffvelrnda rpexpcld rpdivcld rexadd cioo
        simplbi dfrp2 ioossicc eqsstri xrge0addcld eqeltrrd rpgt0d 2re adantllr
        2pos expgt0 divgt0d ltaddposd mpbid fveq1i omsfval syl5eq eqcomd breq1d
        cz jca wor iccssxr xrltso soss biid mpbi omscl xrge0infss infglb esumex
        mp2 elrnmpti anbi1i r19.41v bitr4i exbii df-rex rexcom4 3bitr4i exlimiv
        idd sylbid reximi sylbi ss2rabi rexss anim1d reximdv syl5bi ac6sg iunss
        esumeq1 iunexg ad4antr fex rnexg simp-5l frn ssrab2 syl6ss unissd unipw
        syl6sseq simp-5r rpxrd xaddcld ad2antlr sstr mpan2 sspwuni wfn ffn fnct
        dfss3 biimpi unictb syl2an simpl fvssunirn unissi jca32 cbvesumv eqeq2d
        rnct fveq2 rspcev elrnmpt inflb breq2d notbid sylibrd xrlenlt ad3antrrr
        sylc nfra1 simp-6l elpwid sseldd fvex fniunfv esumeq1d esumiun eqbrtrrd
        mpan syl5eqbr simp-4l id biimpar xrltle adantld ralim r19.21bi esumaddf
        syld esumlef simp-4r vex rnex rpreccld syldan 1re rexr elxrge0 esummono
        sseli nnex csu oveq2 cico ioossico eqidd fvmptd cseq cli ax-1cn geo2lim
        ovexd esumcvgsum geoihalfsum syl6eq breqtrd xlemul2a syl31anc recnd wne
        cmul 2cn 2ne0 expne0d divrecd 1rp rexmul esumeq2d esummulc2 cab feqmptd
        eqtr4d cnveqd funeqd esumc fnrnfv 3eqtr2rd xmulid1 3brtr3d rpred anasss
        xleadd2a eqbrtrd exlimdv xralrple pnfge xrge0nre breqtrrd pm2.61dan ) A
[encoded data, 8960 characters]
        UUVAWWMAWYABHXUCYFHVYTBTWWOYJWIWUAVYQXFVYRVYS $.
    $}
  $}

  $c toCaraSiga $.

  $( Class declaration for the Caratheodory sigma-Algebra construction. $)
  ccarsg $a class toCaraSiga $.

  ${
    $d m a e $.
    $( Define a function constructing Caratheodory measurable sets for a given
       outer measure.  See ~ carsgval for its value.  Definition 1.11.2 of
       [Bogachev] p. 41.  (Contributed by Thierry Arnoux, 17-May-2020.) $)
    df-carsg $a |- toCaraSiga = ( m e. _V |-> { a e. ~P U. dom m |
       A. e e. ~P U. dom m
         ( ( m ` ( e i^i a ) ) +e ( m ` ( e \ a ) ) ) = ( m ` e ) } ) $.
  $}

  ${
    $d M a e m $.  $d O a e m $.  $d a e m ph $.
    carsgval.1 $e |- ( ph -> O e. V ) $.
    carsgval.2 $e |- ( ph -> M : ~P O --> ( 0 [,] +oo ) ) $.
    $( Value of the Caratheodory sigma-Algebra construction function.
       (Contributed by Thierry Arnoux, 17-May-2020.) $)
    carsgval $p |- ( ph ->
       ( toCaraSiga ` M ) = { a e. ~P O | A. e e. ~P O
         ( ( M ` ( e i^i a ) ) +e ( M ` ( e \ a ) ) ) = ( M ` e ) } ) $=
      ( vm cv cfv cxad co wceq cdm cuni cpw cvv fveq1 wcel cin cdif wral ccarsg
      crab cmpt df-carsg a1i wa simpr dmeqd cc0 cpnf cicc fdm syl adantr unieqd
      wf eqtrd unipw syl6eq pweqd wb oveq12d eqeq12d adantl raleqbidv rabeqbidv
      pwexg fex syl2anc rabexg 3syl fvmptd ) AICBJZFJZUAZIJZKZVPVQUBZVSKZLMZVPV
      SKZNZBVSOZPZQZUCZFWHUEZVRCKZWACKZLMZVPCKZNZBDQZUCZFWPUEZRUDRUDIRWJUFNABIF
      UGUHAVSCNZUIZWIWQFWHWPWTWGDWTWGWPPDWTWFWPWTWFCOZWPWTVSCAWSUJUKAXAWPNZWSAW
      PULUMUNMZCUSZXBHWPXCCUOUPUQUTURDVAVBVCZWTWEWOBWHWPXEWSWEWOVDAWSWCWMWDWNWS
      VTWKWBWLLVRVSCSWAVSCSVEVPVSCSVFVGVHVIAXDWPRTZCRTHADETZXFGDEVJZUPWPXCRCVKV
      LAXGXFWRRTGXHWQFWPRVMVNVO $.

    $( Closure of the Caratheodory measurable sets.  (Contributed by Thierry
       Arnoux, 17-May-2020.) $)
    carsgcl $p |- ( ph -> ( toCaraSiga ` M ) C_ ~P O ) $=
      ( ve va ccarsg cfv cv cin cdif cxad co wceq cpw wral crab carsgval ssrab2
      syl6eqss ) ABIJGKZHKZLBJUCUDMBJNOUCBJPGCQZRZHUESUEAGBCDHEFTUFHUEUAUB $.

    $d A a e $.
    $( Property of being a Catatheodory measurable set.  (Contributed by
       Thierry Arnoux, 17-May-2020.) $)
    elcarsg $p |- ( ph -> ( A e. ( toCaraSiga ` M )
       <-> ( A C_ O /\ A. e e. ~P O
         ( ( M ` ( e i^i A ) ) +e ( M ` ( e \ A ) ) ) = ( M ` e ) ) ) ) $=
      ( va cfv wcel cv cin cdif cxad co wceq wral wa fveq2d ccarsg cpw crab wss
      carsgval eleq2d ineq2 difeq2 oveq12d eqeq1d ralbidv elrab cvv wi elex a1i
      simpr adantr ssexg syl2anc ex wb elpwg pm5.21ndd anbi1d syl5bb bitrd ) AB
      DUAJZKBCLZILZMZDJZVIVJNZDJZOPZVIDJZQZCEUBZRZIVRUCZKZBEUDZVIBMZDJZVIBNZDJZ
      OPZVPQZCVRRZSZAVHVTBACDEFIGHUEUFWABVRKZWISAWJVSWIIBVRVJBQZVQWHCVRWLVOWGVP
      WLVLWDVNWFOWLVKWCDVJBVIUGTWLVMWEDVJBVIUHTUIUJUKULAWKWBWIABUMKZWKWBWKWMUNA
      BVRUOUPAWBWMAWBSWBEFKZWMAWBUQAWNWBGURBEFUSUTVAWMWKWBVBUNABEUMVCUPVDVEVFVG
      $.

    ${
      baselcarsg.1 $e |- ( ph -> ( M ` (/) ) = 0 ) $.
      $( The universe set, ` O ` , is Caratheodory measurable.  (Contributed by
         Thierry Arnoux, 17-May-2020.) $)
      baselcarsg $p |- ( ph -> O e. ( toCaraSiga ` M ) ) $=
        ( ve cfv wcel wss cxad co wceq wa cc0 sylib fveq2d c0 adantr ccarsg cin
        cdif cpw wral ssid a1i elpwi adantl df-ss ssdif0 eqtrd oveq12d cxr cpnf
        cv cicc iccssxr simpr ffvelrnd sseldi xaddid1 syl ralrimiva jca elcarsg
        wf mpbird ) ACBUAIJCCKZHUPZCUBZBIZVJCUCZBIZLMZVJBIZNZHCUDZUEZOAVIVSVIAC
        UFUGAVQHVRAVJVRJZOZVOVPPLMZVPWAVLVPVNPLWAVKVJBWAVJCKZVKVJNVTWCAVJCUHUIZ
        VJCUJQRWAVNSBIZPWAVMSBWAWCVMSNWDVJCUKQRAWEPNVTGTULUMWAVPUNJWBVPNWAPUOUQ
        MZUNVPPUOURWAVRWFVJBAVRWFBVGVTFTAVTUSUTVAVPVBVCULVDVEACHBCDEFVFVH $.

      $( The empty set is Caratheodory measurable.  (Contributed by Thierry
         Arnoux, 30-May-2020.) $)
      0elcarsg $p |- ( ph -> (/) e. ( toCaraSiga ` M ) ) $=
        ( ve c0 ccarsg cfv wcel cxad co wceq a1i cc0 fveq2i cxr cpnf wss cv cin
        cdif cpw wral 0ss in0 syl5eq dif0 oveq12d adantr cicc iccssxr ffvelrnda
        wa sseldi xaddid2 syl eqtrd ralrimiva elcarsg mpbir2and ) AIBJKLICUAZHU
        BZIUCZBKZVEIUDZBKZMNZVEBKZOZHCUEZUFVDACUGPAVLHVMAVEVMLZUPZVJQVKMNZVKAVJ
        VPOVNAVGQVIVKMAVGIBKQVFIBVEUHRGUIVIVKOAVHVEBVEUJRPUKULVOVKSLVPVKOVOQTUM
        NZSVKQTUNAVMVQVEBFUOUQVKURUSUTVAAIHBCDEFVBVC $.

      $( The union of all Caratheodory measurable sets is the universe.
         (Contributed by Thierry Arnoux, 22-May-2020.) $)
      carsguni $p |- ( ph -> U. ( toCaraSiga ` M ) = O ) $=
        ( va ccarsg cfv cuni wss wcel wceq cv wral wa cpw carsgcl sselda elpwid
        ralrimiva unissb sylibr baselcarsg unissel syl2anc ) ABIJZKZCLZCUHMUICN
        AHOZCLZHUHPUJAULHUHAUKUHMQUKCAUHCRUKABCDEFSTUAUBHUHCUCUDABCDEFGUEUHCUFU
        G $.
    $}

    ${
      difelcarsg.1 $e |- ( ph -> A e. ( toCaraSiga ` M ) ) $.
      $( Caratheodory measurable sets are subsets of the universe.
         (Contributed by Thierry Arnoux, 21-May-2020.) $)
      elcarsgss $p |- ( ph -> A C_ O ) $=
        ( ccarsg cfv cpw carsgcl sseldd elpwid ) ABDACIJDKBACDEFGLHMN $.

      $( The Caratheodory measurable sets are closed under complement.
         (Contributed by Thierry Arnoux, 17-May-2020.) $)
      difelcarsg $p |- ( ph -> ( O \ A ) e. ( toCaraSiga ` M ) ) $=
        ( ve cdif cfv wcel wss cin cxad co wceq wa c0 cxr ccarsg cv wral difssd
        cpw indif2 elpwi adantl df-ss sylib difeq1d syl5eq fveq2d ssdif0 uneq1d
        cun difdif2 uncom un0 eqtr3i syl6eq oveq12d cpnf cicc iccssxr wf adantr
        simpr elpwdifcl ffvelrnd sseldi elpwincl1 xaddcom syl2anc elcarsg mpbid
        cc0 simprd r19.21bi 3eqtrd ralrimiva jca mpbird ) ADBJZCUAKZLWDDMZIUBZW
        DNZCKZWGWDJZCKZOPZWGCKZQZIDUEZUCZRAWFWPADBUDAWNIWOAWGWOLZRZWLWGBJZCKZWG
        BNZCKZOPZXBWTOPZWMWRWIWTWKXBOWRWHWSCWRWHWGDNZBJWSWGDBUFWRXEWGBWRWGDMZXE
        WGQWQXFAWGDUGUHZWGDUIUJUKULUMWRWJXACWRWJWGDJZXAUPZXAWGDBUQWRXISXAUPZXAW
        RXHSXAWRXFXHSQXGWGDUNUJUOXASUPXJXAXASURXAUSUTVAULUMVBWRWTTLXBTLXCXDQWRV
        QVCVDPZTWTVQVCVEZWRWOXKWSCAWOXKCVFWQGVGZWRWGBDAWQVHZVIVJVKWRXKTXBXLWRWO
        XKXACXMWRWGBDXNVLVJVKWTXBVMVNAXDWMQZIWOABDMZXOIWOUCZABWELXPXQRHABICDEFG
        VOVPVRVSVTWAWBAWDICDEFGVOWC $.

      $d A a b f $.  $d B a b e f $.  $d M a b f $.  $d O a b f $.
      $d a b f ph $.
      inelcarsg.1 $e |- ( ( ph /\ a e. ~P O /\ b e. ~P O )
          -> ( M ` ( a u. b ) ) <_ ( ( M ` a ) +e ( M ` b ) ) ) $.
      inelcarsg.2 $e |- ( ph -> B e. ( toCaraSiga ` M ) ) $.
      $( The Caratheodory measurable sets are closed under intersection.
         (Contributed by Thierry Arnoux, 18-May-2020.) $)
      inelcarsg $p |- ( ph -> ( A i^i B ) e. ( toCaraSiga ` M ) ) $=
        ( cfv wcel cxad co wceq cle cxr ve cin ccarsg wss cdif cpw wral elcarsg
        vf cv wa mpbid simpld ssinss1 syl wbr cpnf cicc iccssxr wf adantr simpr
        cc0 elpwdifcl ffvelrnd sseldi elpwincl1 xaddcld indifundif fveq2i 3expb
        cun ralrimivva uneq1 fveq2d fveq2 oveq1d breq12d oveq2d rspc2v syl21anc
        uneq2 syl5eqbrr xleadd2a syl31anc simprd wb ineq1 difeq1 oveq12d adantl
        imp eqeq12d rspcdv mpd xrge0addass syl3anc inass oveq1i syl6eq r19.21bi
        3eqtr3d breqtrd inundif jca ffvelrnda xrletri3 syl2anc mpbird ralrimiva
        ) ABCUBZDUCNZOXKEUDZUAUJZXKUBZDNZXNXKUEZDNZPQZXNDNZRZUAEUFZUGZUKAXMYCAB
        EUDZXMAYDXNBUBZDNZXNBUEZDNZPQZXTRZUAYBUGZABXLOYDYKUKKABUADEFIJUHULZUMBC
        EUNUOAYAUAYBAXNYBOZUKZYAXSXTSUPZXTXSSUPZUKZYNYOYPYNXSXPYECUEZDNZYHPQZPQ
        ZXTSYNXRTOYTTOXPTOXRYTSUPXSUUASUPYNVCUQURQZTXRVCUQUSZYNYBUUBXQDAYBUUBDU
        TYMJVAZYNXNXKEAYMVBZVDZVEVFZYNYSYHYNUUBTYSUUCYNYBUUBYRDUUDYNYECEYNXNBEU
        UEVGZVDZVEZVFYNUUBTYHUUCYNYBUUBYGDUUDYNXNBEUUEVDZVEZVFVHYNUUBTXPUUCYNYB
        UUBXODUUDYNXNXKEUUEVGZVEVFZYNXRYRYGVLZDNZYTSUUOXQDXNBCVIVJYNYRYBOZYGYBO
        ZGUJZHUJZVLZDNZUUSDNZUUTDNZPQZSUPZHYBUGGYBUGZUUPYTSUPZUUIUUKAUVGYMAUVFG
        HYBYBAUUSYBOUUTYBOUVFLVKVMVAZUUQUURUKUVGUVHUVFUVHYRUUTVLZDNZYSUVDPQZSUP
        GHYRYGYBYBUUSYRRZUVBUVKUVEUVLSUVMUVAUVJDUUSYRUUTVNVOUVMUVCYSUVDPUUSYRDV
        PVQVRUUTYGRZUVKUUPUVLYTSUVNUVJUUODUUTYGYRWBVOUVNUVDYHYSPUUTYGDVPVSVRVTW
        LWAWCXRYTXPWDWEYNYECUBZDNZYSPQZYHPQZYIUUAXTYNUVQYFYHPYNUIUJZCUBZDNZUVSC
        UEZDNZPQZUVSDNZRZUIYBUGZUVQYFRZAUWGYMACEUDZUWGACXLOUWIUWGUKMACUIDEFIJUH
        ULWFVAYNUWFUWHUIYEYBUUHUVSYERZUWFUWHWGYNUWJUWDUVQUWEYFUWJUWAUVPUWCYSPUW
        JUVTUVODUVSYECWHVOUWJUWBYRDUVSYECWIVOWJUVSYEDVPWMWKWNWOVQYNUVRUVPYTPQZU
        UAYNUVPUUBOYSUUBOYHUUBOUVRUWKRYNYBUUBUVODUUDYNYECEUUHVGVEUUJUULUVPYSYHW
        PWQUVPXPYTPUVOXODXNBCWRVJWSWTAYJUAYBAYDYKYLWFXAXBXCYNXTXOXQVLZDNZXSSUWL
        XNDXNXKXDVJYNXOYBOZXQYBOZUVGUWMXSSUPZUUMUUFUVIUWNUWOUKUVGUWPUVFUWPXOUUT
        VLZDNZXPUVDPQZSUPGHXOXQYBYBUUSXORZUVBUWRUVEUWSSUWTUVAUWQDUUSXOUUTVNVOUW
        TUVCXPUVDPUUSXODVPVQVRUUTXQRZUWRUWMUWSXSSUXAUWQUWLDUUTXQXOWBVOUXAUVDXRX
        PPUUTXQDVPVSVRVTWLWAWCXEYNXSTOXTTOYAYQWGYNXPXRUUNUUGVHYNUUBTXTUUCAYBUUB
        XNDJXFVFXSXTXGXHXIXJXEAXKUADEFIJUHXI $.

      $( The Caratheodory-measurable sets are closed under pairwise unions.
         (Contributed by Thierry Arnoux, 21-May-2020.) $)
      unelcarsg $p |- ( ph -> ( A u. B ) e. ( toCaraSiga ` M ) ) $=
        ( cdif cun wss wceq elcarsgss dfss4 difelcarsg ccarsg cfv sylib uneq12d
        cin difindi inelcarsg syl5eqelr eqeltrrd ) AEEBNZNZEECNZNZOZBCODUAUBZAU
        KBUMCABEPUKBQABDEFIJKRBESUCACEPUMCQACDEFIJMRCESUCUDAUNEUJULUEZNUOEUJULU
        FAUPDEFIJAUJULDEFGHIJABDEFIJKTLACDEFIJMTUGTUHUI $.

      $( The Caratheodory-measurable sets are closed under class difference.
         (Contributed by Thierry Arnoux, 30-May-2020.) $)
      difelcarsg2 $p |- ( ph -> ( A \ B ) e. ( toCaraSiga ` M ) ) $=
        ( cdif cin ccarsg cfv wss wceq elcarsgss difin2 syl difelcarsg eqeltrd
        inelcarsg ) ABCNZECNZBOZDPQABERUFUHSABDEFIJKTBCEUAUBAUGBDEFGHIJACDEFIJM
        UCLKUEUD $.
    $}

    ${
      $d A x y $.  $d B y $.  $d M x y $.  $d O x y $.  $d ph x y $.
      carsgmon.1 $e |- ( ph -> A C_ B ) $.
      carsgmon.2 $e |- ( ph -> B e. ~P O ) $.
      carsgmon.3 $e |- ( ( ph /\ x C_ y /\ y e. ~P O )
        -> ( M ` x ) <_ ( M ` y ) ) $.
      $( Utility lemma:  Apply monotony.  (Contributed by Thierry Arnoux,
         29-May-2020.) $)
      carsgmon $p |- ( ph -> ( M ` A ) <_ ( M ` B ) ) $=
        ( wcel wss cfv cle wbr w3a wi cvv cpw ssexd id wa cv wceq sseq1 3anbi2d
        fveq2 breq1d imbi12d sseq2 eleq1 3anbi23d breq2d vtocl2g imp syl23anc )
        ADUANZEGUBZNZADEOZVBDFPZEFPZQRZADEVALKUCLAUDKLUTVBUEAVCVBSZVFABUFZCUFZO
        ZVIVANZSZVHFPZVIFPZQRZTADVIOZVKSZVDVNQRZTVGVFTBCDEUAVAVHDUGZVLVQVOVRVSV
        JVPAVKVHDVIUHUIVSVMVDVNQVHDFUJUKULVIEUGZVQVGVRVFVTVPVCVKVBAVIEDUMVIEVAU
        NUOVTVNVEVDQVIEFUJUPULMUQURUS $.
    $}

    $d A a b e f x y $.  $d E a b e x y $.  $d M a b e f x y $.
    $d O e f x y $.  $d a b e f x y ph $.
    carsgsiga.1 $e |- ( ph -> ( M ` (/) ) = 0 ) $.
    carsgsiga.2 $e |- ( ( ph /\ x ~<_ _om /\ x C_ ~P O )
      -> ( M ` U. x ) <_ sum* y e. x ( M ` y ) ) $.
    $( Lemma for the following theorems.  (Contributed by Thierry Arnoux,
       23-May-2020.) $)
    carsgsigalem $p |- ( ( ph /\ e e. ~P O /\ f e. ~P O )
      -> ( M ` ( e u. f ) ) <_ ( ( M ` e ) +e ( M ` f ) ) ) $=
      ( wcel cfv cle wbr wceq wa fveq2d adantr cv cpw w3a cun cxad unidm uneq2d
      co simpr syl5reqr cxr cc0 cpnf iccssxr wf simp1 syl simp2 ffvelrnd sseldi
      cicc eqeltrrd elxrge0 simprbi xraddge02 imp syl21anc eqbrtrd wne cpr cuni
      simp3 cesum uniprg 3adant1 com cdom wss prct prssi wi prex breq1 3anbi23d
      sseq1 unieq esumeq1 breq12d imbi12d vtoclg ax-mp syl3anc eqbrtrrd adantlr
      cvv esumpr breqtrd pm2.61dane ) ADUAZGUBZMZEUAZWTMZUCZWSXBUDZFNZWSFNZXBFN
      ZUEUHZOPWSXBXDWSXBQZRZXFXGXIOXKXEWSFXKWSWSWSUDXEWSUFXKWSXBWSXDXJUIZUGUJSX
      KXGUKMZXHUKMZULXHOPZXGXIOPZXDXMXJXDULUMVAUHZUKXGULUMUNXDWTXQWSFXDAWTXQFUO
      AXAXCUPZJUQZAXAXCURZUSZUTTZXKXGXHUKXKWSXBFXLSYBVBXKXHXQMZXOXDYCXJXDWTXQXB
      FXSAXAXCVLZUSZTYCXNXOXHVCVDUQXMXNRXOXPXGXHVEVFVGVHXDWSXBVIZRZXFWSXBVJZCUA
      ZFNZCVMZXIOXDXFYKOPYFXDYHVKZFNZXFYKOXAXCYMXFQAXAXCRYLXEFWSXBWTWTVNSVOXDAY
      HVPVQPZYHWTVRZYMYKOPZXRXAXCYNAWSXBWTWTVSVOXAXCYOAWSXBWTVTVOYHWOMAYNYOUCZY
      PWAZWSXBWBABUAZVPVQPZYSWTVRZUCZYSVKZFNZYSYJCVMZOPZWAYRBYHWOYSYHQZUUBYQUUF
      YPUUGYTYNUUAYOAYSYHVPVQWCYSYHWTWEWDUUGUUDYMUUEYKOUUGUUCYLFYSYHWFSYSYHYJCW
      GWHWILWJWKWLWMTYGWSXBYJXGCXHWTWTXDYIWSQZYJXGQYFXDUUHRYIWSFXDUUHUISWNXDYIX
      BQZYJXHQYFXDUUIRYIXBFXDUUIUISWNXDXAYFXTTXDXCYFYDTXDXGXQMYFYATXDYCYFYETXDY
      FUIWPWQWR $.

    ${
      fiunelcarsg.1 $e |- ( ph -> A e. Fin ) $.
      fiunelcarsg.2 $e |- ( ph -> A C_ ( toCaraSiga ` M ) ) $.
      $( The Caratheodory measurable sets are closed under finite union.
         (Contributed by Thierry Arnoux, 23-May-2020.) $)
      fiunelcarsg $p |- ( ph -> U. A e. ( toCaraSiga ` M ) ) $=
        ( cv cuni cfv wcel c0 cun wceq va vb ve ccarsg unieq eqidd eleq12d cdif
        vf csn uni0 difid eqtr4i baselcarsg difelcarsg syl5eqel wss uniun unisn
        wa vex uneq2i eqtri ad2antrr cpw cc0 cpnf cicc co wf simpr cxad cle wbr
        simpll carsgsigalem syl3an1 simplrr eldifad sseldd unelcarsg findcard2d
        ex ) AUANZOZEUDPZQROZWFQUBNZOZWFQZWHBNZUJZSZOZWFQZDOZWFQUAUBBDWDRTZWEWG
        WFWFWDRUEWQWFUFUGWDWHTZWEWIWFWFWDWHUEWRWFUFUGWDWMTZWEWNWFWFWDWMUEWSWFUF
        UGWDDTZWEWPWFWFWDDUEWTWFUFUGAWGFFUHZWFWGRXAUKFULUMAFEFGHIAEFGHIJUNUOUPA
        WHDUQZWKDWHUHQZUTZUTZWJWOXEWJUTZWNWIWKSZWFWNWIWLOZSXGWHWLURXHWKWIWKBVAU
        SVBVCXFWIWKEFGUCUIAFGQXDWJHVDAFVEZVFVGVHVIEVJXDWJIVDXEWJVKXFAUCNZXIQUIN
        ZXIQXJXKSEPXJEPXKEPVLVIVMVNAXDWJVOABCUCUIEFGHIJKVPVQXFDWFWKADWFUQXDWJMV
        DXFWKDWHAXBXCWJVRVSVTWAUPWCLWB $.

      ${
        carsgclctunlem1.1 $e |- ( ph -> Disj_ y e. A y ) $.
        carsgclctunlem1.2 $e |- ( ph -> E e. ~P O ) $.
        $( Lemma for ~ carsgclctun .  (Contributed by Thierry Arnoux,
           23-May-2020.) $)
        carsgclctunlem1 $p |- ( ph
          -> ( M ` ( E i^i U. A ) ) = sum* y e. A ( M ` ( E i^i y ) ) ) $=
          ( cin cfv wceq c0 va vb ve cv cuni cesum csn cun unieq ineq2d esumeq1
          fveq2d eqeq12d cc0 uni0 ineq2i eqtri fveq2i esumnul 3eqtr4g cdif wcel
          in0 wss wa cxad co simpr eqcomd simprr cpw cpnf cicc adantr elpwincl1
          wf ffvelrnd esumsn oveq12d nfv nfcv cvv vex a1i snex wn disjsn sylibr
          eldifbd esumsplit inass indir inidm adantrr disjuniel syl5eqr uneq12d
          ad2antrr incom wdisj syl6eq syl5eq indif2 uncom difeq1i biimpi difun2
          un0 disj3 syl6reqr syl wral ccarsg com cdom wbr cle 3adant1r cfn ssfi
          sylan sstrd fiunelcarsg wb elcarsg mpbid simprd ineq1d difeq1d rspcdv
          mpd eqtr3d uniun unisn uneq2i 3eqtr4rd ex findcard2d ) AEUAUDZUEZQZFR
          ZYSECUDZQZFRZCUFZSETUEZQZFRZTUUECUFZSEUBUDZUEZQZFRZUUKUUECUFZSZEUUKBU
          DZUGZUHZUEZQZFRZUUSUUECUFZSZEDUEZQZFRZDUUECUFZSUAUBBDYSTSZUUBUUIUUFUU
          JUVIUUAUUHFUVIYTUUGEYSTUIUJULYSTUUECUKUMYSUUKSZUUBUUNUUFUUOUVJUUAUUMF
          UVJYTUULEYSUUKUIUJULYSUUKUUECUKUMYSUUSSZUUBUVBUUFUVCUVKUUAUVAFUVKYTUU
          TEYSUUSUIUJULYSUUSUUECUKUMYSDSZUUBUVGUUFUVHUVLUUAUVFFUVLYTUVEEYSDUIUJ
          ULYSDUUECUKUMATFRZUNUUIUUJKUUHTFUUHETQTUUGTEUOUPEVCUQURCUUEUSUTAUUKDV
          DZUUQDUUKVAZVBZVEZVEZUUPUVDUVRUUPVEZUUOUURUUECUFZVFVGZUUNEUUQQZFRZVFV
          GZUVCUVBUVSUUOUUNUVTUWCVFUVSUUNUUOUVRUUPVHVIUVRUVTUWCSUUPUVRUUEUWCCUU
          QUVOUVRUUCUUQSZVEZUUDUWBFUWFUUCUUQEUVRUWEVHUJULAUVNUVPVJZUVRGVKZUNVLV
          MVGZUWBFAUWHUWIFVPZUVQJVNUVREUUQGAEUWHVBZUVQPVNZVOVQVRVNVSUVRUVCUWASU
          UPUVRUUKUURUUECUVRCVTCUUKWACUURWAUUKWBVBUVRUBWCWDUURWBVBUVRUUQWEWDUVR
          UUQUUKVBWFUUKUURQTSUVRUUQDUUKUWGWIUUKUUQWGWHUVRUUCUUKVBZVEZUWHUWIUUDF
          AUWJUVQUWMJWRUWNEUUCGAUWKUVQUWMPWRVOVQUVRUUCUURVBZVEZUWHUWIUUDFAUWJUV
          QUWOJWRUWPEUUCGAUWKUVQUWOPWRVOVQWJVNUVSUWDEUULUUQUHZQZFRZUVBUVRUWDUWS
          SUUPUVRUWRUULQZFRZUWRUULVAZFRZVFVGZUWDUWSUVRUXAUUNUXCUWCVFUVRUWTUUMFU
          VRUWTEUWQUULQZQUUMEUWQUULWKUVRUXEUULEUVRUXEUULUULQZUUQUULQZUHZUULUULU
          UQUULWLUVRUXHUULTUHUULUVRUXFUULUXGTUXFUULSUVRUULWMWDUVRUXGUULUUQQTUUL
          UUQWSUVRCDUUKUUQACDUUCWTUVQOVNAUVNUVNUVPAUVNVHZWNUWGWOWPZWQUULXHXAXBU
          JXBULUVRUXBUWBFUVRUXBEUWQUULVAZQUWBEUWQUULXCUVRUXKUUQEUVRUXGTSZUXKUUQ
          SUXJUXLUXKUUQUULUHZUULVAZUUQUWQUXMUULUULUUQXDXEUXLUUQUUQUULVAZUXNUXLU
          UQUXOSUUQUULXIXFUUQUULXGXJXBXKUJWPULVSUVRUCUDZUULQZFRZUXPUULVAZFRZVFV
          GZUXPFRZSZUCUWHXLZUXDUWSSZAUVNUYDUVPAUVNVEZUULGVDZUYDUYFUULFXMRZVBZUY
          GUYDVEZUYFBCUUKFGHAGHVBUVNIVNAUWJUVNJVNAUVMUNSUVNKVNAUUQXNXOXPUUQUWHV
          DUUQUEFRUUQUUCFRCUFXQXPUVNLXRADXSVBUVNUUKXSVBMDUUKXTYAUYFUUKDUYHUXIAD
          UYHVDUVNNVNYBYCAUYIUYJYDUVNAUULUCFGHIJYEVNYFYGWNUVRUYCUYEUCUWRUWHUVRE
          UWQGUWLVOUVRUXPUWRSZVEZUYAUXDUYBUWSUYLUXRUXAUXTUXCVFUYLUXQUWTFUYLUXPU
          WRUULUVRUYKVHZYHULUYLUXSUXBFUYLUXPUWRUULUYMYIULVSUYLUXPUWRFUYMULUMYJY
          KYLVNUVAUWRFUUTUWQEUUTUULUURUEZUHUWQUUKUURYMUYNUUQUULUUQBWCYNYOUQUPUR
          XJYPYQMYR $.
      $}
    $}

    ${
      $d A f k n z $.  $d M f k n z $.  $d O f k z $.  $d k n x y z ph $.
      carsggect.0 $e |- ( ph -> -. (/) e. A ) $.
      carsggect.1 $e |- ( ph -> A ~<_ _om ) $.
      carsggect.2 $e |- ( ph -> A C_ ( toCaraSiga ` M ) ) $.
      carsggect.3 $e |- ( ph -> Disj_ y e. A y ) $.
      carsggect.4 $e |- ( ( ph /\ x C_ y /\ y e. ~P O )
        -> ( M ` x ) <_ ( M ` y ) ) $.
      $( The outer measure is countably superadditive on Caratheodory
         measurable sets.  (Contributed by Thierry Arnoux, 31-May-2020.) $)
      carsggect $p |- ( ph -> sum* z e. A ( M ` z ) <_ ( M ` U. A ) ) $=
        ( cn wcel adantr vf vk vn c0 csn cun cv wf crn wss ccnv cres wfun cesum
        w3a cfv cuni cle wbr com cdom cvv wn wex 0ex a1i padct syl3anc cmpt nfv
        wa simpr1 feqmptd rneqd esumeq1d wceq ccarsg fvex cpw cc0 cpnf 0elcarsg
        cicc snssd unssd ssexd carsgcl sstrd 0elpw sselda ffvelrnd frn esummono
        syl ctex elsni adantl fveq2d eqtrd esumpad breqtrd ssexg sylancl simpr2
        co jca cxr wb iccssxr wral ralrimiva nfcv esumcl sseldi xrletri3 mpbird
        syl2anc fveq2 nnex simpr sseldd ad2antrr cima cdif wdisj cdm esumrnmpt2
        3syl c1 cin 3adant1r wfn cfn mpan2 ax-mp disjss1 syl6sseq sseqin2 sylib
        eqbrtrrd cnvimass sseqtrd ffun difpreima fimacnv difeq1d difeq1i difun2
        fdm uncom eqtr3i difss eqsstri sspreima eqsstr3d fvimacnvi wf1o fresf1o
        simpr3 disjrdx fvres bitr3d mpbid disjss3 biimpa syl21anc 3eqtr3rd ciun
        disjeq2dv uniiun syl5eqel cfz cbvesum syl6breq ffn fz1ssnn fnssres fzfi
        elpwiuncl fnfi rnfi resss rnss id cbvdisj disjun0 sylbi carsgclctunlem1
        sylc pwidg unissd uniun unisn uneq2i 3eqtri uniss unipw elpwid esumeq2d
        reseq1d resmpt syl6eq eqcomd adantlr ad3antrrr 3eqtr2d 3eqtr3d carsgmon
        un0 syldan wi esumgect exlimddv ) AREUDUEZUFZUAUGZUHZEUXPUIZUJZUXPUKZEU
[encoded data, 4160 characters]
        $.
    $}

    carsgsiga.3 $e |- ( ( ph /\ x C_ y /\ y e. ~P O )
      -> ( M ` x ) <_ ( M ` y ) ) $.
    ${
      $d e k n x y $.  $d A n $.  $d E k n $.  $d M k n $.  $d O k $.
      $d ph k n $.
      carsgclctunlem2.1 $e |- ( ph -> Disj_ k e. NN A ) $.
      carsgclctunlem2.2 $e |- ( ( ph /\ k e. NN ) -> A e. ( toCaraSiga ` M ) )
        $.
      carsgclctunlem2.3 $e |- ( ph -> E e. ~P O ) $.
      carsgclctunlem2.4 $e |- ( ph -> ( M ` E ) =/= +oo ) $.
      $( Lemma for ~ carsgclctun .  (Contributed by Thierry Arnoux,
         25-May-2020.) $)
      carsgclctunlem2 $p |- ( ph -> ( ( M ` ( E i^i U_ k e. NN A ) )
        +e ( M ` ( E \ U_ k e. NN A ) ) ) <_ ( M ` E ) ) $=
        ( cn wcel vn ve ciun cin cfv cdif cxad co cle cxr wbr iunin2 fveq2i cc0
        cxne cpnf cicc iccssxr cpw cvv nnex a1i cv wa adantr elpwincl1 ffvelrnd
        elpwiuncl sseldi syl5eqelr elpwdifcl xnegcld xaddcld cesum wf ralrimiva
        wral nfcv esumcl syl2anc cmpt crn cuni wceq dfiun3g syl fveq2d com cdom
        wss nnct mptct rnct mp2b eqid rnmptss w3a wi rnexg breq1 sseq1 3anbi23d
        mptexg unieq esumeq1 breq12d imbi12d ax-mp mpd3an23 eqbrtrd fveq2 simpr
        vtoclg c0 ad2antrr eqtrd wdisj disjin wb incom rgenw disjeq2 esumrnmpt2
        sylib breqtrd difssd carsgmon xrge0subcld wne xrge0neqmnf adantl oveq2d
        c1 cmnf 3adant1r cfn sylc 3eqtrd disjss1 syl31anc xnegneg xnegeq syl6eq
        xnegmnf eqtr3d ccarsg simpll fz1ssnn sselda fzfi mptfi rnfi fiunelcarsg
        eqeltrd elcarsg mpbid simprd ineq1 difeq1 oveq12d eqeq12d rspcv 3eqtr3d
        xaddpnf1 neneqd pm2.65da neqned xaddass syl222anc xnegid xaddid1 oveq1d
        cfz ineq2d mptss rnss disjrnmpt carsgclctunlem1 ineq2 elexi inss2 sseq2
        mpbii ss0 3eqtr3rd iunss1 mp1i sscond xleneg syl21anc xleadd2a esumgect
        biimpa xrletrd syl5eqbrr xleadd1a xrge0npcan syl3anc ) AFESDUCZUDZGUEZF
        UWSUFZGUEZUGUHZFGUEZUXCUOZUGUHZUXCUGUHZUXEUIAUXAUJTUXGUJTUXCUJTZUXAUXGU
        IUKUXDUXHUIUKAUXAESFDUDZUCZGUEZUJUXKUWTGESFDULUMZAUNUPUQUHZUJUXLUNUPURZ
        AHUSZUXNUXKGKASUXJHEUTSUTTZAVAVBZAEVCZSTZVDZFDHAFUXPTZUXTQVEVFZVHVGVIZV
        JAUXEUXFAUXNUJUXEUXOAUXPUXNFGKQVGZVIZAUXCAUXNUJUXCUXOAUXPUXNUXBGKAFUWSH
        QVKVGZVIZVLVMZUYHAUXAUXLUXGUIUXMAUXLSUXJGUEZEVNZUXGUYDAUXNUJUYKUXOAUXQU
        YJUXNTZESVQUYKUXNTUXRAUYLESUYAUXPUXNUXJGAUXPUXNGVOZUXTKVEUYCVGZVPSUYJEU
        TESVRVSVTVIUYIAUXLESUXJWAZWBZCVCZGUEZCVNZUYKUIAUXLUYPWCZGUEZUYSUIAUXKUY
        TGAUXJUXPTZESVQZUXKUYTWDAVUBESUYCVPZESUXJUXPWEWFWGAUYPWHWIUKZUYPUXPWJZV
        UAUYSUIUKZVUEASWHWIUKUYOWHWIUKVUEWKESUXJWLUYOWMWNVBAVUCVUFVUDESUXJUXPUY
        OUYOWOWPWFUYPUTTZAVUEVUFWQZVUGWRZUXQUYOUTTVUHVAESUXJUTXCUYOUTWSWNABVCZW
        HWIUKZVUKUXPWJZWQZVUKWCZGUEZVUKUYRCVNZUIUKZWRVUJBUYPUTVUKUYPWDZVUNVUIVU
        RVUGVUSVULVUEVUMVUFAVUKUYPWHWIWTVUKUYPUXPXAXBVUSVUPVUAVUQUYSUIVUSVUOUYT
        GVUKUYPXDWGVUKUYPUYRCXEXFXGMXMXHXIXJACSUXJUYRUYJEUTUXPUYQUXJGXKUXRUYNUY
        CUYAUXJXNWDZVDZUYJXNGUEZUNVVAUXJXNGUYAVUTXLWGAVVBUNWDZUXTVUTLXOXPAESDFU
        DZXQZESUXJXQZAESDXQZVVEOEFSDXRWFVVDUXJWDZESVQVVEVVFXSVVHESDFXTYAESVVDUX
        JYBXHYDYCYEAUYJUXGEUAAUXEUXCUYEUYGABCUXBFGHIJKAFUWSYFQNYGZYHUYNAUAVCZST
        ZVDZYMVVJUVMUHZUYJEVNZUXEFEVVMDUCZUFZGUEZUOZUGUHZUXGUIVVLFVVOUDZGUEZVVQ
        UGUHZVVRUGUHZVWAVVSVVNVVLVWCVWAVVQVVRUGUHZUGUHZVWAUNUGUHZVWAVVLVWAUJTZV
        WAYNYIZVVQUJTZVVQYNYIZVVRUJTZVVRYNYIVWCVWEWDVVLUXNUJVWAUXOVVLUXPUXNVVTG
        AUYMVVKKVEZVVLFVVOHAUYBVVKQVEZVFVGZVIZVVLVWAUXNTVWHVWNVWAYJWFZVVLUXNUJV
        VQUXOVVLUXPUXNVVPGVWLVVLFVVOHVWMVKZVGZVIZVVLVVQUXNTVWJVWRVVQYJWFVVLVVQV
        WSVLZVVLVVRYNVVLVVRYNWDZUXEUPWDVVLVXAVDZVWBVWAUPUGUHZUXEUPVXBVVQUPVWAUG
        VXBVVRUOZVVQUPVVLVXDVVQWDZVXAVVLVWIVXEVWSVVQUUAWFVEVXBVXDYNUOZUPVXAVXDV
        XFWDVVLVVRYNUUBYKUUDUUCUUEYLVVLVWBUXEWDZVXAVVLUYBUBVCZVVOUDZGUEZVXHVVOU
        FZGUEZUGUHZVXHGUEZWDZUBUXPVQZVXGVWMVVLVVOHWJZVXPVVLVVOGUUFUEZTVXQVXPVDV
        VLVVOEVVMDWAZWBZWCZVXRVVLDVXRTZEVVMVQZVVOVYAWDVVLVYBEVVMVVLUXSVVMTZVDZA
        UXTVYBAVVKVYDUUGZVVLVVMSUXSVVMSWJZVVLVVJUUHZVBZUUIZPVTZVPZEVVMDVXRWEWFZ
        VVLBCVXTGHIAHITVVKJVEZVWLAVVCVVKLVEZAVULVUMVURVVKMYOZVXTYPTZVVLVVMYPTVX
        SYPTVYQYMVVJUUJZEVVMDUUKVXSUULWNVBZVVLVYCVXTVXRWJVYLEVVMDVXRVXSVXSWOWPW
        FZUUMUUNVVLVVOUBGHIVYNVWLUUOUUPUUQVXOVXGUBFUXPVXHFWDZVXMVWBVXNUXEWUAVXJ
        VWAVXLVVQUGWUAVXIVVTGVXHFVVOUURWGWUAVXKVVPGVXHFVVOUUSWGUUTVXHFGXKUVAUVB
        YQZVEVVLVXCUPWDZVXAVVLVWGVWHWUCVWOVWPVWAUVDVTVEUVCVXBUXEUPAUXEUPYIVVKVX
        ARXOUVEUVFUVGVWAVVQVVRUVHUVIVVLVWDUNVWAUGVVLVWIVWDUNWDVWSVVQUVJWFYLVVLV
        WGVWFVWAWDVWOVWAUVKWFYRVVLVWBUXEVVRUGWUBUVLVVLVWAFVYAUDZGUEVXTFUYQUDZGU
        EZCVNVVNVVLVVTWUDGVVLVVOVYAFVYMUVNWGVVLBCVXTFGHIVYNVWLVYOVYPVYSVYTVVLVX
        TESDWAZWBZWJZCWUHUYQXQZCVXTUYQXQWUIVVLVYGVXSWUGWJWUIVYHEVVMSDUVOVXSWUGU
        VPWNVBAWUJVVKAVVGWUJOECSDUVQWFVECVXTWUHUYQYSYQVWMUVRVVLCVVMDWUFUYJEUTVX
        RUYQDWDWUEUXJGUYQDFUVSWGVVMUTTVVLVVMYPVYRUVTVBVYEAUXTUYLVYFVYJUYNVTVYKV
        YEDXNWDZVDZUYJVVBUNWULUXJXNGWUKVUTVYEWUKUXJXNWJZVUTWUKUXJDWJWUMFDUWADXN
        UXJUWBUWCUXJUWDWFYKWGVVLVVCVYDWUKVYOXOXPVVLVYGVVGEVVMDXQVYIAVVGVVKOVEEV
        VMSDYSYQYCYRUWEVVLVWKUXFUJTUXEUJTZVVRUXFUIUKZVVSUXGUIUKVWTVVLUXCVVLUXNU
        JUXCUXOAUXCUXNTZVVKUYGVEVIZVLAWUNVVKUYFVEVVLUXIVWIUXCVVQUIUKZWUOWUQVWSV
        VLBCUXBVVPGHIVYNVWLVVLVVOUWSFVYGVVOUWSWJVVLVYHEVVMSDUWFUWGUWHVWQAVUKUYQ
        WJUYQUXPTVUKGUEUYRUIUKVVKNYOYGUXIVWIVDWURWUOUXCVVQUWIUWMUWJVVRUXFUXEUWK
        YTXJUWLUWNUWOUXAUXGUXCUWPYTAUXEUXNTWUPUXCUXEUIUKUXHUXEWDUYEUYGVVIUXEUXC
        UWQUWRYE $.
    $}

    $d f k n x y z $.  $d A e f g k n x y $.  $d E e f g k n x y $.
    $d M e f g k n x y $.  $d O e f g n x y $.  $d g k n ph x y $.
    ${
      carsgclctun.1 $e |- ( ph -> A ~<_ _om ) $.
      carsgclctun.2 $e |- ( ph -> A C_ ( toCaraSiga ` M ) ) $.
      ${
        carsgclctunlem3.1 $e |- ( ph -> E e. ~P O ) $.
        $( Lemma for ~ carsgclctun .  (Contributed by Thierry Arnoux,
           24-May-2020.) $)
        carsgclctunlem3 $p |- ( ph ->
           ( ( M ` ( E i^i U. A ) ) +e ( M ` ( E \ U. A ) ) ) <_ ( M ` E ) ) $=
          ( vk wcel c0 cn vf vn ve vg vz cuni cin cfv cdif cxad co cle wbr cpnf
          wceq wa cxr cc0 cicc iccssxr cpw elpwincl1 ffvelrnd elpwdifcl xaddcld
          sseldi adantr pnfge syl simpr breqtrrd wne clt wn unieq syl6eq ineq2d
          uni0 fveq2d difeq2d dif0 oveq12d adantl oveq1d xaddid2 3eqtrd eqeltrd
          in0 xeqlelt syl2anc mpbid simpld adantlr wfo csdm cdom wex ccarsg wss
          wb cv cvv fvex ssex 0sdomg 3syl biimpar com cen nnenom ensymi domentr
          sylancl ad2antrr fodomr cfzo ciun fveq2 iundisj crn fofn fniunfv forn
          c1 wfn unieqd eqtrd ad3antrrr wf cesum 3adant1r wdisj iundisj2 sseldd
          syl5eqr a1i wral ralrimiva cfn pm2.61dane ad4antr fof ad2antlr sselda
          carsgsigalem wrex cab ad3antlr fzossnn dfiun2g cmpt rnmpt fzofi mptfi
          eqid rnfi mp2b eqeltrri rnmptss syl5eqssr fiunelcarsg carsgclctunlem2
          difelcarsg2 simpllr eqbrtrrd exlimddv ) AEDUFZUGZFUHZEUVGUIZFUHZUJUKZ
          EFUHZULUMZUVMUNAUVMUNUOZUPZUVLUNUVMULUVPUVLUQRZUVLUNULUMAUVQUVOAUVIUV
          KAURUNUSUKZUQUVIURUNUTZAGVAZUVRUVHFJAEUVGGPVBVCVFAUVRUQUVKUVSAUVTUVRU
          VJFJAEUVGGPVDVCVFVEVGUVLVHVIAUVOVJVKAUVMUNVLZUPZUVNDSADSUOZUVNUWAAUWC
          UPZUVNUVLUVMVMUMVNZUWDUVLUVMUOZUVNUWEUPZUWDUVLSFUHZUVMUJUKZURUVMUJUKZ
          UVMUWCUVLUWIUOAUWCUVIUWHUVKUVMUJUWCUVHSFUWCUVHESUGSUWCUVGSEUWCUVGSUFS
          DSVOVRVPZVQEWHVPVSUWCUVJEFUWCUVJESUIEUWCUVGSEUWKVTEWAVPVSWBWCUWDUWHUR
          UVMUJAUWHURUOZUWCKVGWDUWDUVMUQRZUWJUVMUOAUWMUWCAUVRUQUVMUVSAUVTUVREFJ
          PVCVFVGZUVMWEVIWFZUWDUVQUWMUWFUWGWTUWDUVLUVMUQUWOUWNWGUWNUVLUVMWIWJWK
          WLWMUWBDSVLZUPZTDUAXAZWNZUVNUAUWQSDWOUMZDTWPUMZUWSUAWQAUWPUWTUWAAUWTU
          WPADFWRUHZWSZDXBRUWTUWPWTODUXBFWRXCXDDXBXEXFXGWMAUXAUWAUWPADXHWPUMXHT
          XIUMUXANTXHXJXKDXHTXLXMXNTDUAXOWJUWQUWSUPZEUBTUBXAZUWRUHZQYDUXEXPUKZQ
          XAZUWRUHZXQZUIZXQZUGZFUHZEUXLUIZFUHZUJUKUVLUVMULUXDUXNUVIUXPUVKUJUXDU
          XMUVHFUXDUXLUVGEUXDUXLUBTUXFXQZUVGUXFUXIQUBUXEUXHUWRXRZXSUWSUXQUVGUOU
          WQUWSUXQUWRXTZUFZUVGUWSUWRTYEUXQUXTUOTDUWRYAUBTUWRYBVIUWSUXSDTDUWRYCY
          FYGWCYOZVQVSUXDUXOUVJFUXDUXLUVGEUYAVTVSWBUXDBCUXKUBEFGHAGHRZUWAUWPUWS
          IYHZAUVTUVRFYIZUWAUWPUWSJYHZAUWLUWAUWPUWSKYHZUWQBXAZXHWPUMZUYGUVTWSZU
          YGUFFUHUYGCXAZFUHZCYJULUMZUWSUWBUYHUYIUYLUWPAUYHUYIUYLUWALYKYKYKZUWQU
          YGUYJWSZUYJUVTRZUYGFUHUYKULUMZUWSUWBUYNUYOUYPUWPAUYNUYOUYPUWAMYKYKYKU
          BTUXKYLUXDUXFUXIQUBUXRYMYPUXDUXETRZUPZUXFUXJFGHUCUDUXDUYBUYQUYCVGZUXD
          UYDUYQUYEVGZUYRDUXBUXFAUXCUWAUWPUWSUYQOUUAZUYRTDUXEUWRUWSTDUWRYIZUWQU
          YQTDUWRUUBZUUCUXDUYQVJVCYNUYRBCUCUDFGHUYSUYTUXDUWLUYQUYFVGZUXDUYHUYIU
          YLUYQUYMYKZUUEUYRUXJUEXAUXIUOQUXGUUFUEUUGZUFZUXBUYRUXIDRZQUXGYQUXJVUG
          UOUYRVUHQUXGUYRUXHUXGRZUPZTDUXHUWRUWSVUBUWQUYQVUIVUCUUHUYRUXGTUXHUXGT
          WSUYRUXEUUIYPUUDVCZYRQUEUXGUXIDUUJVIUYRBCVUFFGHUYSUYTVUDVUEVUFYSRUYRQ
          UXGUXIUUKZXTZVUFYSQUEUXGUXIVULVULUUOZUULZUXGYSRVULYSRVUMYSRYDUXEUUMQU
          XGUXIUUNVULUUPUUQUURYPUYRVUFVUMUXBVUOUYRUXIUXBRZQUXGYQVUMUXBWSUYRVUPQ
          UXGVUJDUXBUXIUYRUXCVUIVUAVGVUKYNYRQUXGUXIUXBVULVUNUUSVIUUTUVAWGUVCAEU
          VTRUWAUWPUWSPYHAUWAUWPUWSUVDUVBUVEUVFYTYT $.
      $}

      $( The Caratheodory measurable sets are closed under countable union.
         (Contributed by Thierry Arnoux, 21-May-2020.) $)
      carsgclctun $p |- ( ph -> U. A e. ( toCaraSiga ` M ) ) $=
        ( cfv wcel wss wceq cle wbr ve cuni ccarsg cv cin cdif cxad co cpw wral
        uniss syl carsguni sseqtrd wa adantr cc0 cpnf cicc wf c0 com cdom cesum
        3adant1r carsgclctunlem3 cpr cvv inex1g adantl difexg syl2anc elpwincl1
        simpr prct elpwdifcl prssi w3a prex breq1 sseq1 3anbi23d fveq2d esumeq1
        unieq breq12d imbi12d vtoclg ax-mp mpd3an23 cun uniprg inundif ffvelrnd
        wi syl6eq wo ineq2 inidm inindif 3eqtr3g ad2antrr eqtrd orcd ex esumpr2
        3brtr3d jca wb iccssxr sseldi xaddcld ffvelrnda xrletri3 mpbird elcarsg
        cxr ralrimiva mpbir2and ) ADUBZEUCOZPXTFQUAUDZXTUEZEOZYBXTUFZEOZUGUHZYB
        EOZRZUAFUIZUJAXTYAUBZFADYAQZXTYKQNDYAUKULAEFGHIJUMUNAYIUAYJAYBYJPZUOZYI
        YGYHSTZYHYGSTZUOZYNYOYPYNBCDYBEFGAFGPYMHUPAYJUQURUSUHZEUTYMIUPZAVAEOZUQ
        RZYMJUPABUDZVBVCTZUUBYJQZUUBUBZEOZUUBCUDZEOZCVDZSTZYMKVEAUUBUUGQUUGYJPU
        UBEOUUHSTYMLVEADVBVCTYMMUPAYLYMNUPAYMVNZVFYNYCYEVGZUBZEOZUULUUHCVDZYHYG
        SYNUULVBVCTZUULYJQZUUNUUOSTZYNYCVHPZYEVHPZUUPYMUUSAYBXTYJVIVJYMUUTAYBXT
        YJVKVJYCYEVHVHVOVLYNYCYJPZYEYJPZUUQYNYBXTFUUKVMZYNYBXTFUUKVPZYCYEYJVQVL
        AUUPUUQUURYMUULVHPAUUPUUQVRZUURWOZYCYEVSAUUCUUDVRZUUJWOUVFBUULVHUUBUULR
        ZUVGUVEUUJUURUVHUUCUUPUUDUUQAUUBUULVBVCVTUUBUULYJWAWBUVHUUFUUNUUIUUOSUV
        HUUEUUMEUUBUULWEWCUUBUULUUHCWDWFWGKWHWIVEWJYNUUMYBEYNUUMYCYEWKZYBYNUVAU
        VBUUMUVIRUVCUVDYCYEYJYJWLVLYBXTWMWPWCYNYCYEUUHYDCYFYJYJYNUUGYCRZUOUUGYC
        EYNUVJVNWCYNUUGYERZUOUUGYEEYNUVKVNWCUVCUVDYNYJYRYCEYSUVCWNZYNYJYRYEEYSU
        VDWNZYNYCYERZYDUQRZYDURRZWQYNUVNUOZUVOUVPUVQYDYTUQUVQYCVAEUVNYCVARYNUVN
        YCYCUEYCYEUEYCVAYCYEYCWRYCWSYBXTWTXAVJWCAUUAYMUVNJXBXCXDXEXFXGXHYNYGXQP
        YHXQPYIYQXIYNYDYFYNYRXQYDUQURXJZUVLXKYNYRXQYFUVRUVMXKXLYNYRXQYHUVRAYJYR
        YBEIXMXKYGYHXNVLXOXRAXTUAEFGHIXPXS $.
    $}

    $( The Caratheodory measurable sets constructed from outer measures form a
       Sigma-algebra.  Statement (iii) of Theorem 1.11.4 of [Bogachev] p. 42.
       (Contributed by Thierry Arnoux, 17-May-2020.) $)
    carsgsiga $p |- ( ph -> ( toCaraSiga ` M ) e. ( sigAlgebra ` O ) ) $=
      ( vg cfv wss wcel cv wbr wa ad2antrr 3adant1r cpw cdif wral com cdom cuni
      ccarsg wi w3a csiga carsgcl baselcarsg adantr cc0 cpnf cicc co difelcarsg
      wf simpr ralrimiva wceq cesum cle elpwi ad2antlr carsgclctun 3jca jca cvv
      c0 ex wb fvex issiga ax-mp sylibr ) ADUGMZEUAZNZEVROZELPZUBVROZLVRUCZWBUD
      UEQZWBUFVROZUHZLVRUAZUCZUIZRZVREUJMOZAVTWJADEFGHUKAWAWDWIADEFGHIULAWCLVRA
      WBVROZRWBDEFAEFOZWMGUMAVSUNUOUPUQDUSZWMHUMAWMUTURVAAWGLWHAWBWHOZRZWEWFWQW
      ERBCWBDEFAWNWPWEGSAWOWPWEHSAVKDMUNVBWPWEISWQBPZUDUEQZWRVSNZWRUFDMWRCPZDMZ
      CVCVDQZWEAWSWTXCWPJTTWQWRXANZXAVSOZWRDMXBVDQZWEAXDXEXFWPKTTWQWEUTWPWBVRNA
      WEWBVRVEVFVGVLVAVHVIVRVJOWLWKVMDUGVNLVREVOVPVQ $.
  $}

  ${
    $d M e f x y $.  $d Q f x y $.  $d R f y $.  $d V f y $.  $d S e f x y $.
    $d ph e f g x y $.
    omsmeas.m $e |- M = ( toOMeas ` R ) $.
    omsmeas.s $e |- S = ( toCaraSiga ` M ) $.
    omsmeas.o $e |- ( ph -> Q e. V ) $.
    omsmeas.r $e |- ( ph -> R : Q --> ( 0 [,] +oo ) ) $.
    omsmeas.d $e |- ( ph -> (/) e. dom R ) $.
    omsmeas.0 $e |- ( ph -> ( R ` (/) ) = 0 ) $.
    $( The restriction of a constructed outer measure to Catatheodory
       measurable sets is a measure.  This theorem allows to construct measures
       from pre-measures with the required characteristics, as for the Lebesgue
       measure.  (Contributed by Thierry Arnoux, 17-May-2020.) $)
    omsmeas $p |- ( ph -> ( M |` S ) e. ( measures ` S ) ) $=
      ( vf vy cfv wcel c0 wceq wbr cle ve vg vx cres cmeas cc0 cpnf cicc co com
      wf cv cdom wdisj wa cuni cesum cpw wral w3a cdm coms omsf syl2anc a1i fdm
      syl eqcomd unieqd pweqd feq12d mpbird ccarsg cvv carsgcl syl5eqss fssresd
      wi uniexg oms0 0elcarsg syl6eleqr fvres eqtrd nfcv id cbvdisj anbi2i ciun
      ad2antrr simplr elpwid wss sselda simprl omssubadd uniiun fveq2i 3ad2ant1
      sstrd simpl3 simpr sseldd simp2 syl5eqbr 3adant1r elpwi 3ad2ant3 ad2antlr
      omsmon syl6sseq carsgclctun syl6eq ralrimiva esumeq2d 3brtr4d cdif adantr
      nfv snex ffvelrnd elsni fveq2d sylan9eqr esumpad2 neldifsnd ssdomg mpisyl
      csn difss domtr ssdifssd simprr sylib disjss1 mpsyl cxr wb sseldi csiga
      carsggect eqbrtrrd unidif0 syl6breq jca iccssxr xrletri3 sylan2b 3jca crn
      esumcl ex carsgsiga syl5eqel elrnsiga ismeas 3syl ) AEDUDZDUEOPZDUFUGUHUI
      ZUURUKZQUUROZUFRZUAULZUJUMSZMUVDMULZUNZUOZUVDUPZUUROZUVDUVFUUROZMUQZRZVRZ
      UADURZUSZUTZAUVAUVCUVPABUPZURZUUTDEAUVSUUTEUKZCVAZUPZURZUUTCVBOZUKZABFPZB
      UUTCUKZUWEIJBCFVCVDAUVSUWCUUTEUWDEUWDRAGVEAUVRUWBABUWAAUWABAUWGUWABRJBUUT
      CVFVGVHVIVJVKVLZADEVMOZUVSHAEUVRVNAUWFUVRVNPZIBFVSVGZUWHVOVPZVQZAUVBQEOZU
      FAQDPUVBUWNRAQUWIDAEUVRVNUWKUWHABCEFGIJKLVTZWAHWBQDEWCVGUWOWDAUVNUAUVOAUV
      DUVOPZUOZUVHUVMUVHUWQUVEUBUVDUBULZUNZUOZUVMUVGUWSUVEMUBUVDUVFUWRUBUVFWEMU
      WRWEUVFUWRRWFWGWHUWQUWTUOZUVMUVJUVLTSZUVLUVJTSZUOZUXAUXBUXCUXAMUVDUVFWIZE
      OZUVDUVFEOZMUQZUVJUVLTUXAMUVFBCEFUVDGAUWFUWPUWTIWJAUWGUWPUWTJWJUXAUVFUVDP
      ZUOZUVFUVRUXAUVDUVSUVFUXAUVDDUVSUXAUVDDAUWPUWTWKZWLADUVSWMUWPUWTUWLWJWTWN
      ZWLUWQUVEUWSWOZWPUXAUVIDPZUVJUXFRUXAUVIUWIDUXAUCNUVDEUVRVNAUWJUWPUWTUWKWJ
      ZAUVTUWPUWTUWHWJZAUWNUFRUWPUWTUWOWJZUWQUCULZUJUMSZUXRUVSWMZUXRUPZEOZUXRNU
      LZEOZNUQZTSZUWTAUXSUXTUYFUWPAUXSUXTUTZUYBNUXRUYCWIZEOUYETUYAUYHENUXRWQWRU
      YGNUYCBCEFUXRGAUXSUWFUXTIWSAUXSUWGUXTJWSUYGUYCUXRPZUOZUYCUVRUYJUXRUVSUYCA
      UXSUXTUYIXAUYGUYIXBXCWLAUXSUXTXDWPXEZXFXFZUWQUXRUYCWMZUYCUVSPZUXREOUYDTSZ
      UWTAUYMUYNUYOUWPAUYMUYNUTUXRUYCBCEFGAUYMUWFUYNIWSAUYMUWGUYNJWSAUYMUYNXDUY
      NAUYCUVRWMUYMUYCUVRXGXHXJZXFXFZUXMUXAUVDDUWIUWPUVDDWMAUWTUVDDXGXIZHXKZXLH
      WBZUXNUVJUVIEOZUXFUVIDEWCZUVIUXEEMUVDWQWRXMVGUXAUVDUVKUXGMUXAMXSUXAUVKUXG
      RZMUVDUXJUVFDPVUCUXAUVDDUVFUYRWNZUVFDEWCVGXNXOZXPUXAUXHVUAUVLUVJTUXAUXHUV
      DQYIZXQZUPZEOZVUATUXAVUGUXGMUQUXHVUITUXAUVDVUFUXGMUVOVNUXKVUFVNPUXAQXTVEU
      XJUVSUUTUVFEUXAUVTUXIUXPXRUXLYAUVFVUFPZUXAUXGUWNUFVUJUVFQEUVFQYBYCUXQYDYE
      UXAUCNMVUGEUVRVNUXOUXPUXQUYLUXAQUVDYFUXAVUGUVDUMSZUVEVUGUJUMSUXAUWPVUGUVD
      WMZVUKUXKUVDVUFYJZVUGUVDUVOYGYHUXMVUGUVDUJYKVDUXAUVDUWIVUFUYSYLVULUXANUVD
      UYCUNZNVUGUYCUNVUMUXAUWSVUNUWQUVEUWSYMUBNUVDUWRUYCNUWRWEUBUYCWEUWRUYCRWFW
      GYNNVUGUVDUYCYOYPUYQUUAUUBVUHUVIEUVDUUCWRUUDVUEUXAUXNUVJVUARUYTVUBVGXPUUE
      UXAUVJYQPUVLYQPUVMUXDYRUXAUUTYQUVJUFUGUUFZUXADUUTUVIUURAUVAUWPUWTUWMWJZUY
      TYAYSUXAUUTYQUVLVUOUXAUWPUVKUUTPZMUVDUSUVLUUTPUXKUXAVUQMUVDUXJDUUTUVFUURU
      XAUVAUXIVUPXRVUDYAXNUVDUVKMUVOMUVDWEUUKVDYSUVJUVLUUGVDVLUUHUULXNUUIADUVRY
      TOZPDYTUUJUPPUUSUVQYRADUWIVURHAUCNEUVRVNUWKUWHUWOUYKUYPUUMUUNDUVRUUOUAMDU
      URUUPUUQVL $.
  $}

  ${
    $d P x y $.  $d R x y $.  $d ph x y $.
    caraext.1 $e |- ( ph -> P : R --> ( 0 [,] +oo ) ) $.
    caraext.2 $e |- ( ph -> ( P ` (/) ) = 0 ) $.
    caraext.3 $e |- ( ( ph /\ ( x ~<_ _om /\ x C_ R /\ Disj_ y e. x y ) )
      -> ( P ` U. x ) = sum* y e. x ( P ` y ) ) $.
    ${
      $d A x y $.  $d B x y $.
      pmeasmono.1 $e |- ( ph -> A e. R ) $.
      pmeasmono.2 $e |- ( ph -> B e. R ) $.
      pmeasmono.3 $e |- ( ph -> ( B \ A ) e. R ) $.
      pmeasmono.4 $e |- ( ph -> A C_ B ) $.
      $( This theorem's hypotheses define a pre-measure.  A pre-measure is
         monotone.  (Contributed by Thierry Arnoux, 19-Jul-2020.) $)
      pmeasmono $p |- ( ph -> ( P ` A ) <_ ( P ` B ) ) $=
        ( cfv wceq wa cc0 adantr wcel cle wbr cdif c0 wss eqimss ssdifeq0 sylib
        fveq2d adantl cpnf cicc co ffvelrnd cxr elxrge0 simprbi syl eqbrtrd wne
        eqtrd cxad iccssxr wf sseldi xrge0addge syl2anc cpr cuni cesum com cdom
        cv wdisj w3a prct prssi disjdif wb simpr id disjprg syl3anc mpbiri 3jca
        cin wi prex biidd breq1 sseq1 disjeq1 3anbi123d anbi12d esumeq1 eqeq12d
        cvv unieq imbi12d vtoclg ax-mp adantlr mpdan cun uniprg esumpr breqtrrd
        undif 3eqtr3d pm2.61dane ) ADFOZEFOZUAUBDEDUCZADXMPZQZXKRXLUAXOXKUDFOZR
        XNXKXPPAXNDUDFXNDXMUEDUDPDXMUFDEUGUHUIUJAXPRPXNISVAARXLUAUBZXNAXLRUKULU
        MZTZXQAGXREFHLUNXSXLUOTXQXLUPUQURSUSADXMUTZQZXKXKXMFOZVBUMZXLUAYAXKUOTY
        BXRTXKYCUAUBYAXRUOXKRUKVCYAGXRDFAGXRFVDXTHSZADGTZXTKSZUNZVEYAGXRXMFYDAX
        MGTZXTMSZUNZXKYBVFVGYADXMVHZVIZFOZYKCVMZFOZCVJZXLYCYAYKVKVLUBZYKGUEZCYK
        YNVNZVOZYMYPPZYAYQYRYSAYQXTAYEYHYQKMDXMGGVPVGSAYRXTAYEYHYRKMDXMGVQVGSYA
        YSDXMWFUDPZDEVRYAYEYHXTYSUUBVSYFYIAXTVTZCDXMYNDXMGYNDPZWAYNXMPZWAWBWCWD
        WEAYTUUAXTYKWQTAYTQZUUAWGZDXMWHABVMZVKVLUBZUUHGUEZCUUHYNVNZVOZQZUUHVIZF
        OZUUHYOCVJZPZWGUUGBYKWQUUHYKPZUUMUUFUUQUUAUURAAUULYTUURAWIUURUUIYQUUJYR
        UUKYSUUHYKVKVLWJUUHYKGWKCUUHYKYNWLWMWNUURUUOYMUUPYPUURUUNYLFUUHYKWRUIUU
        HYKYOCWOWPWSJWTXAXBXCYAYLEFAYLEPXTAYLDXMXDZEAYEYHYLUUSPKMDXMGGXEVGADEUE
        UUSEPNDEXHUHVASUIYADXMYOXKCYBGGYAUUDQYNDFYAUUDVTUIYAUUEQYNXMFYAUUEVTUIY
        FYIYGYJUUCXFXIXGXJ $.
    $}

    ${
      $d A k x y $.  $d B x y $.  $d P k x y $.  $d R k x y $.  $d ph k x y $.
      pmeassubadd.q $e |- Q = { s e. ~P ~P O | ( (/) e. s
        /\ A. x e. s A. y e. s ( ( x u. y ) e. s /\ ( x \ y ) e. s ) ) } $.
      pmeassubadd.1 $e |- ( ph -> R e. Q ) $.
      pmeassubadd.2 $e |- ( ph -> A ~<_ _om ) $.
      pmeassubadd.3 $e |- ( ( ph /\ k e. A ) -> B e. R ) $.
      ${
        pmeasadd.4 $e |- ( ph -> Disj_ k e. A B ) $.
        $( A premeasure on a ring of sets is additive on disjoint countable
           collections.  This is called sigma-additivity.  (Contributed by
           Thierry Arnoux, 19-Jul-2020.) $)
        pmeasadd $p |- ( ph -> ( P ` U_ k e. A B ) = sum* k e. A ( P ` B ) ) $=
          ( wceq ciun cfv cmpt cuni cv cesum wcel wral ralrimiva dfiun3g fveq2d
          crn syl com cdom wbr wss wdisj mptct rnct 3syl eqid rnmptss disjrnmpt
          w3a wa 3jca ancli cvv ctex mptexg rnexg breq1 sseq1 disjeq1 3anbi123d
          wi anbi2d unieq esumeq1 eqeq12d imbi12d vtoclg mpd fveq2 cpnf cicc co
          cc0 wf adantr ffvelrnd c0 adantl ad2antrr eqtrd esumrnmpt2 3eqtrd ) A
          IDEUAZFUBIDEUCZULZUDZFUBZXACUEZFUBZCUFZDEFUBZIUFAWSXBFAEHUGZIDUHZWSXB
          TAXHIDRUIZIDEHUJUMUKAAXAUNUOUPZXAHUQZCXAXDURZVEZVFZXCXFTZAXNAXKXLXMAD
          UNUOUPZWTUNUOUPXKQIDEUSWTUTVAAXIXLXJIDEHWTWTVBVCUMAIDEURXMSICDEVDUMVG
          VHAWTVIUGZXAVIUGXOXPVQZAXQDVIUGZXRQDVJZIDEVIVKVAWTVIVLABUEZUNUOUPZYBH
          UQZCYBXDURZVEZVFZYBUDZFUBZYBXECUFZTZVQXSBXAVIYBXATZYGXOYKXPYLYFXNAYLY
          CXKYDXLYEXMYBXAUNUOVMYBXAHVNCYBXAXDVOVPVRYLYIXCYJXFYLYHXBFYBXAVSUKYBX
          AXECVTWAWBNWCVAWDACDEXEXGIVIHXDEFWEAXQXTQYAUMAIUEDUGZVFZHWIWFWGWHZEFA
          HYOFWJYMLWKRWLRYNEWMTZVFXGWMFUBZWIYPXGYQTYNEWMFWEWNAYQWITYMYPMWOWPSWQ
          WR $.
      $}

$(
      @{
        @d A k f i n x y @.  @d B f i n @.  @d O s @.  @d P f n @.
        @d R i n s x y @.  @d ph f i n @.
        @( A premeasure on a ring of sets is subadditive for collections of
           sets where overlaps are allowed.  (Contributed by Thierry Arnoux,
           19-Jul-2020.) @)
        pmeassubadd @p |- ( ph
          -> ( P ` U_ k e. A B ) <_ sum* k e. A ( P ` B ) ) @=
          ( vn wcel vf vi cv cdm cmpt crn wf1o cn wceq c1 chash cfv caddc co wo
          cfzo wa ciun cesum cle wbr com cdom wex rnct 3syl f1ocnt syl cc0 cpnf
          mptct cicc cxr iccssxr cdif cuni dff1o5 simprbi ad2antrl unieqd f1ofn
          wf1 wfn fniunfv wral ralrimiva dfiun3g 3eqtr4rd nfcv fveq2 iundisjcnt
          adantr simprr eqtrd fveq2d wf c0 wss w3a adantlr fz1nnct simplrl f1of
          wdisj eqid rnmptss ad2antrr fss syl2anc simpr ffvelrnd eqimss fzossnn
          sseq1 mpbiri jaoi ad2antll simplrr fz1nntr fiunelros difelros syl3anc
          sselda iundisj2cnt pmeasadd cvv vex dmex a1i esumcl sseldi ctex dfin4
          eqeltrd cin inelros syl5eqelr difssd pmeasmono esumle eqbrtrd xrletrd
          simprl esummonof1o exlimddv ) AUAUCZUDZIDEUEZUFZUUFUGZUUGUHUIZUUGUJUU
          IUKULUJUMUNZUPUNZUIZUOZUQZIDEURZFULZDEFULZIUSZUTVAUAAUUIVBVCVAZUUPUAV
          DADVBVCVAZUUHVBVCVAUVAQIDEVKUUHVEVFUUIUAVGVHAUUPUQZUURUUGSUCZUUFULZFU
          LZSUSZUUTUVCVIVJVLUNZVMUURVIVJVNZUVCUURUUGUVEUBUJUVDUPUNZUBUCZUUFULZU
          RZVOZFULZSUSZUVHUVCUURSUUGUVNURZFULUVPUVCUUQUVQFUVCUUQSUUGUVEURZUVQUV
          CUUFUFZVPZUUIVPZUVRUUQUVCUVSUUIUUJUVSUUIUIZAUUOUUJUUGUUIUUFWBUWBUUGUU
          IUUFVQVRVSVTUVCUUFUUGWCZUVRUVTUIUUJUWCAUUOUUGUUIUUFWAVSSUUGUUFWDVHAUU
          QUWAUIZUUPAEHTZIDWEZUWDAUWEIDRWFZIDEHWGVHWLWHUVCUVEUVLUBSUULUUGSUVLWI
          ZUVDUVKUUFWJZAUUJUUOWMZWKWNWOUVCBCUUGUVNFGHSJKAHUVHFWPZUUPLWLZAWQFULV
          IUIZUUPMWLABUCZVBVCVAUWNHWRCUWNCUCZXDWSZUWNVPFULUWNUWOFULCUSUIZUUPNWT
          ZOAHGTZUUPPWLZUVCUUOUUGVBVCVAUWJUUGUULXAVHUVCUVDUUGTZUQZUWSUVEHTZUVMH
          TZUVNHTZUVCUWSUXAUWTWLUXBUUGHUVDUUFUXBUUGUUIUUFWPZUUIHWRZUUGHUUFWPZUX
          BUUJUXFAUUJUUOUXAXBUUGUUIUUFXCVHAUXGUUPUXAAUWFUXGUWGIDEHUUHUUHXEXFVHX
          GUUGUUIHUUFXHXIZUVCUXAXJZXKZUXBBCUVLGHUBUVDJKOAUWSUUPUXAPXGZUVCUUGUHU
          VDUUOUUGUHWRZAUUJUUKUXMUUNUUGUHXLUUNUXMUUMUHWRUULXMUUGUUMUHXNXOXPXQYC
          UXBUVKUVJTZUQUUGHUVKUUFUXBUXHUXNUXIWLUXBUVJUUGUVKUXBUUOUXAUVJUUGWRAUU
          JUUOUXAXRUXJUUGUULUVDXSXIYCXKXTZBCUVEUVMGHJKOYAZYBUVCUVEUVLUBSUULUUGU
          WHUWIUWJYDYEWNZUVCUUGYFTZUVOUVHTZSUUGWEUVPUVHTUXRUVCUUFUAYGYHYIZUVCUX
          SSUUGUXBHUVHUVNFAUWKUUPUXALXGZUXBUWSUXCUXDUXEUXLUXKUXOUXPYBZXKZWFUUGU
          VOSYFSUUGWIZYJXIYNYKUVCUVHVMUVGUVIUVCUXRUVFUVHTZSUUGWEUVGUVHTUXTUVCUY
          ESUUGUXBHUVHUVEFUYAUXKXKZWFUUGUVFSYFUYDYJXIYKAUUTVMTUUPAUVHVMUUTUVIAD
          YFTZUUSUVHTZIDWEUUTUVHTAUVBUYGQDYLVHZAUYHIDAIUCDTZUQHUVHEFAUWKUYJLWLR
          XKWFDUUSIYFIDWIYJXIYKWLUVCUURUVPUVGUTUXQUVCUUGUVOUVFSYFUXTUYCUYFUXBBC
          UVNUVEFHUYAAUWMUUPUXAMXGUVCUWPUWQUXAUWRWTUYBUXKUXBUVEUVNVOUVEUVMYOZHU
          VEUVMYMUXBUWSUXCUXDUYKHTUXLUXKUXOBCUVEUVMGHJKOYPYBYQUXBUVEUVMYRYSYTUU
          AUVCDEHSIFUUFYFAUYGUUPUYIWLAUYJUWEUUPRWTUWLAUUJUUOUUCUUDUUBUUE @.
      @}
$)
    $}

$(
    @d M e s u v x y z @.  @d O s @.  @d P e s u v x y z @.  @d Q u v x y z @.
    @d R e s u v x y z @.  @d ph e s u v x y z @.
    caraext.m @e |- M = ( toOMeas ` P ) @.
    @{
      caraextros.q @e |- Q = { s e. ~P ~P O | ( (/) e. s /\ A. x e. s A. y e. s
        ( ( x u. y ) e. s /\ ( x \ y ) e. s ) ) } @.
      caraextros.4 @e |- ( ph -> R e. Q ) @.
      @( Caratheodory's extension theorem for a ring of sets.  (Contributed by
         Thierry Arnoux, 19-Jul-2020.) @)
      caraextros @p |- ( ph -> ( M |` R ) = P ) @=
        ( vv wa wss wceq wcel vu vz ve cdm cuni cpw wfn cfv wral cres cpnf cicc
        cv cc0 co wf coms omsf syl2anc wb feq1 sylibr ffn syl jca fdm syl6eqssr
        ax-mp pwuni cle wbr com cdom crab cesum cmpt crn clt ccnv fveq1i adantr
        csup elssuni adantl omsfval syl3anc syl5eq ad2antrr unieq breq1 anbi12d
        sseq2d elrab simplbi pweqd eleqtrd elpwi sselda ffvelrnd ralrimiva nfcv
        cvv vex esumcl mpan eqid rnmptss csn simpr fveq2d esumsn eleqtrrd sylib
        snss snex elpw unisn eqimss2i snct esumex elrnmpt1s eqeltrrd infxrge0lb
        a1i esumeq1 eqbrtrd caddc crp cxr iccssxr sseldi ad4antr simplr adantlr
        cr ad3antrrr cin ciun syl21anc mpbird simp-4r rpred readdcld rexrd nfbr
        nfv nfesum1 nfan ralrimi inelros sylancr iunin1 simprbi simpld syl6sseq
        ex uniiun dfss1 c0 wdisj w3a simprd pmeassubadd eqbrtrrd difelros inss1
        cdif pmeasmono esumle xrletrd xrlelttrd xrltle imp omssubaddlem r19.29a
        xralrple pnfge breqtrrd cmnf wne wo xrge0neqmnf xrnemnf biimpi mpjaodan
        xrletri3 fvreseq1 biimpar ) AGDUDZUEUFZUGZDFUGZQZFUWJRZIUMZGUHZUWODUHZS
        ZIFUIZGFUJDSZAUWKUWLAUWJUNUKULUOZGUPZUWKAUWJUXADUQUHZUPZUXBAFETZFUXADUP
        ZUXDOJFDEURUSGUXCSUXBUXDUTMUWJUXAGUXCVAVHVBZUWJUXAGVCVDAUXFUWLJFUXADVCV
        DVEAFUWIUWJAUXFUWIFSZJFUXADVFZVDZUWIVIVGZAUWRIFAUWOFTZQZUWRUWPUWQVJVKZU
        WQUWPVJVKZQZUXMUXNUXOUXMUWPUAUWOUBUMZUEZRZUXQVLVMVKZQZUBUWIUFZVNZUAUMZP
        UMZDUHZPVOZVPZVQZUXAVRVSWBZUWQVJUXMUWPUWOUXCUHZUYJUWOGUXCMVTUXMUXEUXFUW
        OFUERZUYKUYJSAUXEUXLOWAZAUXFUXLJWAZUXLUYLAUWOFWCWDZUAPUBUWOFDEWEWFWGUXM
        UYIUWQUXMUYGUXATZUAUYCUIUYIUXARUXMUYPUAUYCUXMUYDUYCTZQZUYFUXATZPUYDUIZU
        YPUYRUYSPUYDUYRUYEUYDTZQZFUXAUYEDUXMUXFUYQVUAUYNWHZUYRUYDFUYEUYRUYDFUFZ
        TUYDFRZUYRUYDUYBVUDUYQUYDUYBTZUXMUYQVUFUWOUYDUEZRZUYDVLVMVKZQZUYAVUJUBU
        YDUYBUXQUYDSZUXSVUHUXTVUIVUKUXRVUGUWOUXQUYDWIWLUXQUYDVLVMWJWKWMZWNWDAUY
        BVUDSUXLUYQAUWIFUXJWOWHWPUYDFWQVDZWRZWSZWTUYDXBTZUYTUYPUAXCZUYDUYFPXBPU
        YDXAZXDXEVDZWTUAUYCUYGUXAUYHUYHXFZXGVDUXMUWOXHZUYFPVOZUWQUYIUXMUYFUWQPU
        WOFUXMUYEUWOSZQUYEUWODUXMVVCXIXJAUXLXIZUXMFUXAUWODUYNVVDWSZXKUXMVVAUYCT
        ZVVBXBTZVVBUYITUXMVVAUYBTZUWOVVAUEZRZVVAVLVMVKZQZQVVFUXMVVHVVLUXMVVAUWI
        RZVVHUXMUWOUWITVVMUXMUWOFUWIVVDUXMUXFUXHUYNUXIVDXLUWOUWIIXCZXNXMVVAUWIU
        WOXOXPVBUXMVVJVVKVVJUXMVVIUWOUWOVVNXQXRYDUXLVVKAUWOFXSWDVEVEUYAVVLUBVVA
        UYBUXQVVASZUXSVVJUXTVVKVVOUXRVVIUWOUXQVVAWIWLUXQVVAVLVMWJWKWMVBVVGUXMVV
        AUYFPXTYDUAUYCUYGVVBVVAUYHXBVUTUYDVVAUYFPYEYAUSYBYCYFUXMUWPYOTZUXOUWPUK
        SZUXMVVPQZUXOUWQUWPUCUMZYGUOZVJVKZUCYHUIZVVRVWAUCYHVVRVVSYHTZQZUYGVVTVR
        VKZVWAUAUYCVWDUYQQZVWEQZUWQYITZVVTYITZUWQVVTVRVKZVWAUXMVWHVVPVWCUYQVWEU
        XMUXAYIUWQUNUKYJZVVEYKZYLZVWGVVTVWGUWPVVSUXMVVPVWCUYQVWEUUAVWGVVSVWDVWC
        UYQVWEVVRVWCXIZWHUUBUUCUUDZVWGUWQUYGVVTVWMVWGUXAYIUYGVWKVWGUYQUYTUYPVWD
        UYQVWEYMVWGUYSPUYDVWFVWEPVWFPUUFPUYGVVTVRUYDUYFPVURUUGPVRXAPVVTXAUUEUUH
        VWGVUAUYSVWGVUAQFUXAUYEDVWDUXFUYQVWEVUAUXMUXFVVPVWCUYNWHZYPVWGUYDFUYEVW
        FVUEVWEVVRUYQVUEVWCUXMUYQVUEVVPVUMYNYNWAWRWSUUPUUIUYDUYFPUYCVURXDUSYKVW
        OVWFUWQUYGVJVKZVWEVVRUYQVWQVWCUXMUYQVWQVVPUYRUWQUYDUYEUWOYQZDUHZPVOZUYG
        UXMVWHUYQVWLWAUYRUXAYIVWTVWKUYRVUPVWSUXATZPUYDUIVWTUXATVUQUYRVXAPUYDVUB
        FUXAVWRDVUCVUBUXEUYEFTZUXLVWRFTZUXMUXEUYQVUAUYMWHZVUNUXMUXLUYQVUAVVDWHB
        CUYEUWOEFHINUUJWFZWSZWTUYDVWSPXBVURXDUUKYKUYRUXAYIUYGVWKVUSYKUYRPUYDVWR
        YRZDUHUWQVWTVJUYRVXGUWODUYRVXGPUYDUYEYRZUWOYQZUWOPUYDUWOUYEUULUYRUWOVXH
        RVXIUWOSUYRUWOVUGVXHUYRUYQVUHUXMUYQXIZUYQVUHVUIUYQVUFVUJVULUUMZUUNVDPUY
        DUUQUUOUWOVXHUURXMWGXJUYRBCUYDVWRDEFPHIUXMUXFUYQUYNWAAUUSDUHUNSZUXLUYQK
        WHUXMBUMZVLVMVKVXMFRCVXMCUMZUUTUVAZVXMUEDUHVXMVXNDUHCVOSZUYQAVXOVXPUXLL
        YNYNZNUXMUXEUYQUYMWAUYRUYQVUIVXJUYQVUHVUIVXKUVBVDVXEUVCUVDUYRUYDVWSUYFP
        UYCVXJVXFVUOVUBBCVWRUYEDFVUCAVXLUXLUYQVUAKYPUYRVXOVXPVUAVXQYNVXEVUNVUBU
        XEVXBVXCUYEVWRUVGFTVXDVUNVXEBCUYEVWREFHINUVEWFVWRUYERVUBUYEUWOUVFYDUVHU
        VIUVJYNYNWAVWFVWEXIUVKVWHVWIQVWJVWAUWQVVTUVLUVMYSVWDUAUBPUWOFDVVSGEMUXM
        UXEVVPVWCUYMWHVWPUXMUYLVVPVWCUYOWHUXMVVPVWCYMVWNUVNUVOWTVVRVWHVVPUXOVWB
        UTUXMVWHVVPVWLWAUXMVVPXIUCUWQUWPUVPUSYTUXMVVQQZUWQUKUWPVJVXRVWHUWQUKVJV
        KUXMVWHVVQVWLWAUWQUVQVDUXMVVQXIUVRUXMUWPYITZUWPUVSUVTZVVPVVQUWAZUXMUXAY
        IUWPVWKUXMUWJUXAUWOGAUXBUXLUXGWAAFUWJUWOUXKWRWSZYKZUXMUWPUXATVXTVYBUWPU
        WBVDVXSVXTQVYAUWPUWCUWDUSUWEVEUXMVXSVWHUWRUXPUTVYCVWLUWPUWQUWFUSYTWTUWM
        UWNQUWTUWSIUWJFGDUWGUWHYS @.
    @}

    caraext.n @e |- N = { s e. ~P ~P O | ( (/) e. s /\ A. x e. s A. y e. s
      ( ( x i^i y ) e. s /\ E. z e. ~P s ( z e. Fin /\ Disj_ t e. z t
      /\ ( x \ y ) = U. z ) ) ) } @.
    caraext.4 @e |- ( ph -> R e. N ) @.
    @( Caratheodory's Extension Theorem: Given a pre-measure ` P ` on a
       semi-ring of sets ` R ` , there exists a measure ` M ` which extends
       ` P ` over the sigma-algebra generated by ` R ` .  @)
    caraext @p |- ( ph -> ( M |` S ) = P ) @=
      ? @.
$)
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Caratheodory's extension theorem: examples and applications
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

$(
  @{
    ovoloms.1 @e |- I = ( ( <_ i^i ( RR X. RR ) ) ^m NN ) @.
    ovoloms.2 @e |- R = U. ran ( f e. I
      |-> { ran ( (,) o. f ) , ran ( ( abs o. - ) o. f ) } ) @.
    @( The pre-measure ` R ` of the Lebesgue measure is defined over unions of
       open intervals.  (Contributed by Thierry Arnoux, 6-Jun-2020.) @)
    ovolomsdm @p |- dom R = U. ran ( f e. I |-> ran ( (,) o. f ) ) @=
      ? @.

    @( The pre-measure of the Lebesgue measure is defined  @)
    ovolomsunidm @p |- U. dom R = RR @=
      ? @.

    @( Express the Lebesgue outer measure as an outer measure.  This could be
       considered as an alternative definition of the Lebesgue outer measure.
       (Contributed by Thierry Arnoux, 6-Jun-2020.) @)
    ovoloms @p |- vol* = ( toOMeas ` R ) @=
      ? @.
  @}
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Caratheodory's extension theorem: measure on RR ^ N
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

$( End $[ set-mbox-ta-meas.mm $] $)


$( Begin $[ set-mbox-ta-itgm.mm $] $)
$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Integration
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Lebesgue integral - misc additions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d k x ph $.  $d k A $.  $d k B $.  $d k C $.  $d k D $.
    itgeq12dv.2 $e |- ( ph -> A = B ) $.
    itgeq12dv.1 $e |- ( ( ph /\ x e. A ) -> C = D ) $.
    $( Equality theorem for an integral.  (Contributed by Thierry Arnoux,
       14-Feb-2017.) $)
    itgeq12dv $p |- ( ph -> S. A C _d x = S. B D _d x ) $=
      ( vk cc0 co cv cr cdiv cre cfv cle wa citg2 cmul c3 cfz cexp wcel wbr cif
      ci cmpt csu citg oveq1d fveq2d breq2d pm5.32da eleq2d anbi1d wceq adantrr
      bitrd wn eqidd ifbieq12d2 mpteq2dv oveq2d sumeq2sdv eqid dfitg 3eqtr4g )
      AJUAUBKZUGILUCKZBMBLZCUDZJEVJNKZOPZQUEZRZVNJUFZUHZSPZTKZIUIVIVJBMVKDUDZJF
      VJNKZOPZQUEZRZWCJUFZUHZSPZTKZIUIBCEUJBDFUJAVIVTWIIAVSWHVJTAVRWGSABMVQWFAV
      PWEVNJWCJAVPVLWDRWEAVLVOWDAVLRZVNWCJQWJVMWBOWJEFVJNHUKULZUMUNAVLWAWDACDVK
      GUOUPUSAVLVNWCUQVOWKURAVPUTRJVAVBVCULVDVEBCEVNIVNVFVGBDFWCIWCVFVGVH $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Bochner integral
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c sitg $. $( Measure integral on simple functions $)
  $c sitm $. $( Integral metric $)
  $c itgm $. $( Measure integral $)

  $( Extend class notation with the (measure) Bochner integral. $)
  citgm $a class itgm $.

  $( Extend class notation with the integral metric for simple functions. $)
  csitm $a class sitm $.

  $( Extend class notation with the integral of simple functions. $)
  csitg $a class sitg $.

  ${
    $d f g m w x $.
    $( Define the integral of simple functions from a measurable space
       ` dom m ` to a generic space ` w ` equipped with the right scalar
       product. ` w ` will later be required to be a Banach space.

       These simple functions are required to take finitely many different
       values: this is expressed by ` ran g e. Fin ` in the definition.

       Moreover, for each ` x ` , the pre-image ` ( ``' g " { x } ) ` is
       requested to be measurable, of finite measure.

       In this definition, ` ( sigaGen `` ( TopOpen `` w ) ) ` is the Borel
       sigma-algebra on ` w ` , and the functions ` g ` range over the
       measurable functions over that Borel algebra.

       Definition 2.4.1 of [Bogachev] p. 118.  (Contributed by Thierry Arnoux,
       21-Oct-2017.) $)
    df-sitg $a |- sitg = ( w e. _V , m e. U. ran measures |-> ( f e.
      { g e. ( dom m MblFnM ( sigaGen ` ( TopOpen ` w ) ) ) | ( ran g e. Fin /\
          A. x e. ( ran g \ { ( 0g ` w ) } ) ( m ` ( `' g " { x } ) )
      e. ( 0 [,) +oo ) ) } |-> ( w gsum ( x e. ( ran f \ { ( 0g ` w ) } ) |-> (
          ( ( RRHom ` ( Scalar ` w ) ) ` ( m ` ( `' f " { x } ) ) )
      ( .s ` w ) x ) ) ) ) ) $.
  $}

  ${
    $d f g m w $.
    $( Define the integral metric for simple functions, as the integral of the
       distances between the function values.  Since distances take nonnegative
       values in ` RR* ` , the range structure for this integral is
       ` ( RR*s |``s ( 0 [,] +oo ) ) ` .  See definition 2.3.1 of [Bogachev]
       p. 116.  (Contributed by Thierry Arnoux, 22-Oct-2017.) $)
    df-sitm $a |- sitm = ( w e. _V , m e. U. ran measures |->
        ( f e. dom ( w sitg m ) , g e. dom ( w sitg m ) |->
     ( ( ( RR*s |`s ( 0 [,] +oo ) ) sitg m ) ` ( f oF ( dist ` w ) g ) ) ) ) $.
  $}

  ${
    $d f m w B $.  $d f g x F $.  $d f m w H $.  $d f g m w x M $.
    $d f g m w S $.  $d f g m w x W $.  $d f g m w x .0. $.  $d f m w .x. $.
    sitgval.b $e |- B = ( Base ` W ) $.
    sitgval.j $e |- J = ( TopOpen ` W ) $.
    sitgval.s $e |- S = ( sigaGen ` J ) $.
    sitgval.0 $e |- .0. = ( 0g ` W ) $.
    sitgval.x $e |- .x. = ( .s ` W ) $.
    sitgval.h $e |- H = ( RRHom ` ( Scalar ` W ) ) $.
    sitgval.1 $e |- ( ph -> W e. V ) $.
    sitgval.2 $e |- ( ph -> M e. U. ran measures ) $.
    $( Value of the simple function integral builder for a given space ` W `
       and measure ` M ` .  (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
    sitgval $p |- ( ph -> ( W sitg M ) = ( f e. { g e. ( dom M MblFnM S ) |
     ( ran g e. Fin /\ A. x e. ( ran g \ { .0. } ) ( M ` ( `' g " { x } ) )
        e. ( 0 [,) +oo ) ) } |-> ( W gsum ( x e. ( ran f \ { .0. } ) |-> (
        ( H ` ( M ` ( `' f " { x } ) ) ) .x. x ) ) ) ) ) $=
      ( vw vm cvv wcel cmeas crn cuni csitg cfn ccnv csn cima cfv cc0 cpnf cico
      co cv cdif wral wa cdm cmbfm crab cmpt cgsu wceq elexd c0g ctopn csigagen
      csca cvsca fveq2 fveq2d fveq2i eqtri syl6eqr oveq2d sneqd difeq2d raleqdv
      crrh anbi2d rabeqbidv fveq1d eqidd oveq123d mpteq12dv oveq12d dmeq oveq1d
      fveq1 eleq1d ralbidv simpl mpteq2dva df-sitg ovex mptrabex ovmpt2 syl2anc
      id ) ALUDUEJUFUGUHZUELJUIURFGUSZUGZUJUEZXFUKBUSZULZUMZJUNZUOUPUQURZUEZBXG
      MULZUTZVAZVBZGJVCZDVDURZVEZLBFUSZUGZXOUTZYBUKXJUMZJUNZHUNZXIEURZVFZVGURZV
      FZVHALKTVIUAUBUCLJUDXEFXHXKUCUSZUNZXMUEZBXGUBUSZVJUNZULZUTZVAZVBZGYLVCZYO
      VKUNZVLUNZVDURZVEZYOBYCYQUTZYEYLUNZYOVMUNZWDUNZUNZXIYOVNUNZURZVFZVGURZVFY
      KUIFXHYNBXPVAZVBZGUUADVDURZVEZLBYDUUGHUNZXIEURZVFZVGURZVFYOLVHZFUUEUUNUUR
      UVBUVCYTUUPGUUDUUQUVCUUCDUUAVDUVCUUCLVKUNZVLUNZDUVCUUBUVDVLYOLVKVOVPDIVLU
      NUVEPIUVDVLOVQVRVSVTUVCYSUUOXHUVCYNBYRXPUVCYQXOXGUVCYPMUVCYPLVJUNMYOLVJVO
      QVSWAZWBWCWEWFUVCYOLUUMUVAVGUVCXDUVCBUUFUULYDUUTUVCYQXOYCUVFWBUVCUUJUUSXI
      XIUUKEUVCUUKLVNUNEYOLVNVORVSUVCUUGUUIHUVCUUILVMUNZWDUNHUVCUUHUVGWDYOLVMVO
      VPSVSWGUVCXIWHWIWJWKWJYLJVHZFUURUVBYAYJUVHUUPXRGUUQXTUVHUUAXSDVDYLJWLWMUV
      HUUOXQXHUVHYNXNBXPUVHYMXLXMXKYLJWNWOWPWEWFUVHUVAYILVGUVHBYDUUTYHUVHXIYDUE
      ZVBZUUSYGXIEUVJUUGYFHUVJYEYLJUVHUVIWQWGVPWMWRVTWJBUBFGUCWSXRFGXTYJXSDVDWT
      XAXBXC $.

    $( The predicate " ` F ` is a simple function" relative to the Bochner
       integral.  (Contributed by Thierry Arnoux, 19-Feb-2018.) $)
    issibf $p |- ( ph -> ( F e. dom ( W sitg M ) <-> ( F e. ( dom M MblFnM S )
        /\ ran F e. Fin /\ A. x e. ( ran F \ { .0. } ) ( M ` ( `' F " { x } ) )
        e. ( 0 [,) +oo ) ) ) ) $=
      ( vg vf csitg cdm wcel cmbfm crn cfn ccnv csn cima cfv cc0 cpnf cico cdif
      co cv wral wa w3a crab cmpt cgsu cvv sitgval dmeqd eqid dmmpt syl6eq wceq
      eleq2d difeq1d cnveq imaeq1d fveq2d oveq1d mpteq12dv oveq2d eleq1d syl6bb
      rneq elrab ovex biantru syl6bbr raleqbidv anbi12d 3anass ) AFKIUCUQZUDZUE
      ZFIUDDUFUQZUEZFUGZUHUEZFUIZBURZUJZUKZIULZUMUNUOUQZUEZBWOLUJZUPZUSZUTZUTZW
      NWPXFVAAWLFUAURZUGZUHUEZXIUIZWSUKZIULZXBUEZBXJXDUPZUSZUTZUAWMVBZUEZXHAWLX
      TKBXEXAGULZWREUQZVCZVDUQZVEUEZUTZXTAWLFKBUBURZUGZXDUPZYGUIZWSUKZIULZGULZW
      REUQZVCZVDUQZVEUEZUBXSVBZUEYFAWKYRFAWKUBXSYPVCZUDYRAWJYSABCDEUBUAGHIJKLMN
      OPQRSTVFVGUBXSYPYSYSVHVIVJVLYQYEUBFXSYGFVKZYPYDVEYTYOYCKVDYTBYIYNXEYBYTYH
      WOXDYGFWBVMYTYMYAWREYTYLXAGYTYKWTIYTYJWQWSYGFVNVOVPVPVQVRVSVTWCWAYEXTKYCV
      DWDWEWFXRXGUAFWMXIFVKZXKWPXQXFUUAXJWOUHXIFWBZVTUUAXOXCBXPXEUUAXJWOXDUUBVM
      UUAXNXAXBUUAXMWTIUUAXLWQWSXIFVNVOVPVTWGWHWCWAWNWPXFWIWF $.

    ${
      $d x S $.  $d x ph $.
      sibf0.1 $e |- ( ph -> W e. TopSp ) $.
      sibf0.2 $e |- ( ph -> W e. Mnd ) $.
      $( The constant zero function is a simple function.  (Contributed by
         Thierry Arnoux, 4-Mar-2018.) $)
      sibf0 $p |- ( ph -> ( U. dom M X. { .0. } ) e. dom ( W sitg M ) ) $=
        ( vx cdm cuni csn cxp csitg co wcel cmbfm crn cfn ccnv cv cima cfv cpnf
        cc0 cico cdif wral cmeas csiga dmmeas syl csigagen cvv fvex eqeltri a1i
        ctopn sgsiga syl5eqel cmpt wceq fconstmpt cmnd ctps tpsuni unieqi unisg
        mndidcl mp1i syl5eq eqtr4d eleqtrd mbfmcst c0 xpeq1 0xp syl6eq rn0 0fin
        rneqd syl6eqel rnxp snfi pm2.61ine noel difeq1d 0dif difid eleq2i mtbir
        wne pm2.21i adantl ralrimiva issibf mpbir3and ) AGUBZUCZJUDZUEZIGUFUGUB
        UHXMXJCUIUGUHXMUJZUKUHZXMULUAUMZUDUNGUOUQUPURUGUHZUAXNXLUSZUTAUAJXJCXMA
        GVAUJUCUHXJVBUJUCZUHRGVCVDACFVEUOZXSMAFVFFVFUHZAFIVJUOVFLIVJVGVHZVIVKVL
        XMUAXKJVMVNAUAXKJVOVIAJBCUCZAIVPUHJBUHTBIJKNWAVDABFUCZYCAIVQUHBYDVNSBFI
        KLVRVDAYCXTUCZYDCXTMVSYAYEYDVNAYBFVFVTWBWCWDWEWFXOAXOXKWGXKWGVNZXNWGUKY
        FXNWGUJWGYFXMWGYFXMWGXLUEWGXKWGXLWHXLWIWJWMWKWJZWLWNXKWGXDZXNXLUKXKXLWO
        ZJWPWNWQVIAXQUAXRXPXRUHZXQAYJXQYJXPWGUHXPWRXRWGXPXRWGVNXKWGYFXRWGXLUSWG
        YFXNWGXLYGWSXLWTWJYHXRXLXLUSWGYHXNXLXLYIWSXLXAWJWQXBXCXEXFXGAUABCDXMEFG
        HIJKLMNOPQRXHXI $.
    $}

    ${
      $d x A $.  $d f g B $.  $d f g x F $.  $d f H $.  $d f g M $.
      $d f g S $.  $d f W $.  $d f .x. $.  $d f g .0. $.  $d f x ph $.
      sibfmbl.1 $e |- ( ph -> F e. dom ( W sitg M ) ) $.
      $( A simple function is measurable.  (Contributed by Thierry Arnoux,
         19-Feb-2018.) $)
      sibfmbl $p |- ( ph -> F e. ( dom M MblFnM S ) ) $=
        ( vx cdm cmbfm co wcel crn cfn ccnv cv csn cima cfv cpnf cico cdif wral
        cc0 csitg w3a issibf mpbid simp1d ) AEHUBCUCUDUEZEUFZUGUEZEUHUAUIUJUKHU
        LUQUMUNUDUEUAVDKUJUOUPZAEJHURUDUBUEVCVEVFUSTAUABCDEFGHIJKLMNOPQRSUTVAVB
        $.

      $( A simple function is a function.  (Contributed by Thierry Arnoux,
         19-Feb-2018.) $)
      sibff $p |- ( ph -> F : U. dom M --> U. J ) $=
        ( cdm cuni cmeas crn wcel csiga dmmeas syl csigagen cfv cvv ctopn fvexd
        wf syl5eqel sgsiga sibfmbl mbfmf unieqi wceq unisg syl5eq feq3d mpbid )
        AHUAZUBZCUBZEUNVFGUBZEUNAVECEAHUCUDUBUEVEUFUDUBZUESHUGUHACGUIUJZVINAGUK
        AGJULUJUKMAJULUMUOZUPUOABCDEFGHIJKLMNOPQRSTUQURAVGVHEVFAVGVJUBZVHCVJNUS
        AGUKUEVLVHUTVKGUKVAUHVBVCVD $.

      $( A simple function has finite range.  (Contributed by Thierry Arnoux,
         19-Feb-2018.) $)
      sibfrn $p |- ( ph -> ran F e. Fin ) $=
        ( vx cdm cmbfm co wcel crn cfn ccnv cv csn cima cfv cpnf cico cdif wral
        cc0 csitg w3a issibf mpbid simp2d ) AEHUBCUCUDUEZEUFZUGUEZEUHUAUIUJUKHU
        LUQUMUNUDUEUAVDKUJUOUPZAEJHURUDUBUEVCVEVFUSTAUABCDEFGHIJKLMNOPQRSUTVAVB
        $.

      $( Any preimage of a singleton by a simple function is measurable.
         (Contributed by Thierry Arnoux, 19-Feb-2018.) $)
      sibfima $p |- ( ( ph /\ A e. ( ran F \ { .0. } ) )
                          -> ( M ` ( `' F " { A } ) ) e. ( 0 [,) +oo ) ) $=
        ( vx ccnv cv csn cima cfv cc0 cpnf cico co wcel crn cdif wral cdm cmbfm
        cfn csitg w3a issibf mpbid simp3d wceq sneq imaeq2d fveq2d eleq1d rspcv
        mpan9 ) AFUCZUBUDZUEZUFZIUGZUHUIUJUKZULZUBFUMZLUEUNZUOZBVSULVKBUEZUFZIU
        GZVPULZAFIUPDUQUKULZVRURULZVTAFKIUSUKUPULWEWFVTUTUAAUBCDEFGHIJKLMNOPQRS
        TVAVBVCVQWDUBBVSVLBVDZVOWCVPWGVNWBIWGVMWAVKVLBVEVFVGVHVIVJ $.

      ${
        sibfinima.g $e |- ( ph -> G e. dom ( W sitg M ) ) $.
        sibfinima.w $e |- ( ph -> W e. TopSp ) $.
        sibfinima.j $e |- ( ph -> J e. Fre ) $.
        $( The measure of the intersection of any two preimages by simple
           functions is a real number.  (Contributed by Thierry Arnoux,
           21-Mar-2018.) $)
        sibfinima $p |- ( ( ( ph /\ X e. ran F /\ Y e. ran G )
          /\ ( X =/= .0. \/ Y =/= .0. ) ) ->
        ( M ` ( ( `' F " { X } ) i^i ( `' G " { Y } ) ) ) e. ( 0 [,) +oo ) ) $=
          ( crn wcel w3a wne wo ccnv csn cima cin cfv cc0 cle wbr cpnf clt cico
          wa cr cxr cicc cdm cmeas cuni measbasedom sylib 3ad2ant1 csiga dmmeas
          co syl csigagen ct1 sgsiga syl5eqel sibfmbl ccld wss ctps ctop tpstop
          cmbfm cldssbrsiga syl6sseqr wf sibff frn simp2 sseldd t1sncld syl2anc
          3syl eqid mbfmcnvima simp3 inelsiga syl3anc measvxrge0 elxrge0 adantr
          simplbi 0re a1i simprbi pnfxr inss1 measssd cdif simpl1 anim1i sylibr
          eldifsn sibfima wb elico2 mp2an xrlelttrd inss2 jaodan xrre3 syl22anc
          simp3bi syl3anbrc ) ALEUGZUHZMFUGZUHZUIZLNUJZMNUJZUKZVCZEULLUMZUNZFUL
          MUMZUNZUOZIUPZVDUHZUQUUCURUSZUUCUTVAUSZUUCUQUTVBVOZUHZYQUUCVEUHZUQVDU
          HZUUEUUFUUDYMUUIYPYMUUCUQUTVFVOZUHZUUIYMIIVGZVHUPUHZUUBUUMUHZUULAYJUU
          NYLAIVHUGVIUHZUUNUBIVJVKVLZYMUUMVMUGVIZUHZYSUUMUHZUUAUUMUHZUUOAYJUUSY
          LAUUPUUSUBIVNVPVLZYMYRUUMCEUVBAYJCUURUHYLACHVQUPZUURQAHVRUFVSVTVLZAYJ
          EUUMCWGVOZUHYLABCDEGHIJKNOPQRSTUAUBUCWAVLYMHWBUPZCYRAYJUVFCWCYLAUVFUV
          CCAKWDUHHWEUHUVFUVCWCUEHKPWFHWHWQQWIVLZYMHVRUHZLHVIZUHYRUVFUHAYJUVHYL
          UFVLZYMYIUVILAYJYIUVIWCZYLAUUMVIZUVIEWJUVKABCDEGHIJKNOPQRSTUAUBUCWKUV
          LUVIEWLVPVLAYJYLWMZWNLHUVIUVIWRZWOWPWNWSZYMYTUUMCFUVBUVDAYJFUVEUHYLAB
          CDFGHIJKNOPQRSTUAUBUDWAVLYMUVFCYTUVGYMUVHMUVIUHYTUVFUHUVJYMYKUVIMAYJY
          KUVIWCZYLAUVLUVIFWJUVPABCDFGHIJKNOPQRSTUAUBUDWKUVLUVIFWLVPVLAYJYLWTZW
          NMHUVIUVNWOWPWNWSZYSUUAUUMXAXBZUUBUUMIXCWPZUULUUIUUEUUCXDZXFVPZXEUUJY
          QXGXHYMUUEYPYMUULUUEUVTUULUUIUUEUWAXIVPXEZYMYNUUFYOYMYNVCZUUCYSIUPZUT
          YMUUIYNUWBXEUWDUWEUUKUHZUWEVEUHZUWDUUNUUTUWFYMUUNYNUUQXEZYMUUTYNUVOXE
          ZYSUUMIXCWPUWFUWGUQUWEURUSZUWEXDXFVPUTVEUHZUWDXJXHUWDUUBYSUUMIUWHYMUU
          OYNUVSXEUWIUUBYSWCUWDYSUUAXKXHXLUWDUWEUUGUHZUWEUTVAUSZUWDALYINUMZXMUH
          ZUWLAYJYLYNXNUWDYJYNVCUWOYMYJYNUVMXOLYINXQXPALBCDEGHIJKNOPQRSTUAUBUCX
          RWPUWLUWEVDUHZUWJUWMUUJUWKUWLUWPUWJUWMUIXSXGXJUQUTUWEXTYAYGVPYBYMYOVC
          ZUUCUUAIUPZUTYMUUIYOUWBXEUWQUWRUUKUHZUWRVEUHZUWQUUNUVAUWSYMUUNYOUUQXE
          ZYMUVAYOUVRXEZUUAUUMIXCWPUWSUWTUQUWRURUSZUWRXDXFVPUWKUWQXJXHUWQUUBUUA
          UUMIUXAYMUUOYOUVSXEUXBUUBUUAWCUWQYSUUAYCXHXLUWQUWRUUGUHZUWRUTVAUSZUWQ
          AMYKUWNXMUHZUXDAYJYLYOXNUWQYLYOVCUXFYMYLYOUVQXOMYKNXQXPAMBCDFGHIJKNOP
          QRSTUAUBUDXRWPUXDUWRVDUHZUXCUXEUUJUWKUXDUXGUXCUXEUIXSXGXJUQUTUWRXTYAY
          GVPYBYDZUUCUQYEYFUWCUXHUUJUWKUUHUUDUUEUUFUIXSXGXJUQUTUUCXTYAYH $.
      $}

      ${
        $d x y B $.  $d x z C $.  $d b p x z F $.  $d b p x y z G $.
        $d x z J $.  $d b p x y z K $.  $d b p x z M $.  $d x W $.
        $d x y .0. $.  $d b p x y z .+ $.  $d p x y ph $.  $d b z ph $.
        sibfof.c $e |- C = ( Base ` K ) $.
        sibfof.0 $e |- ( ph -> W e. TopSp ) $.
        sibfof.1 $e |- ( ph -> .+ : ( B X. B ) --> C ) $.
        sibfof.2 $e |- ( ph -> G e. dom ( W sitg M ) ) $.
        sibfof.3 $e |- ( ph -> K e. TopSp ) $.
        sibfof.4 $e |- ( ph -> J e. Fre ) $.
        sibfof.5 $e |- ( ph -> ( .0. .+ .0. ) = ( 0g ` K ) ) $.
        $( Applying function operations on simple functions results in simple
           functions with regard to the destination space, provided the
           operation fulfills a simple condition.  (Contributed by Thierry
           Arnoux, 12-Mar-2018.) $)
        sibfof $p |- ( ph -> ( F oF .+ G ) e. dom ( K sitg M ) ) $=
          ( vz vb vx vp vy co cdm wcel ctopn cfv csigagen cmbfm crn cfn ccnv cv
          csn cima cc0 cdif wral cuni wf cvv ctps wceq tpsuni mpbid sibff cmeas
          cxp syl uniexg 3syl eqid syl6eqr a1i sgsiga mpbird wa cin cun imaeq2i
          feq3d wfun ffun adantr ciun com cdom wbr inss2 simpll cnvimass sselda
          wss ct1 sibfmbl xp1st adantl eleqtrd t1sncld syl2anc sseldd syl6eleqr
          mbfmcnvima xp2nd syl3anc ralrimiva sibfrn ssdomg mpisyl csdm isfinite
          sdomdom domtr nfcv sigaclcuni eqeltrd mpsyl sylib c0 cr wdisj sylancl
          cle wne wo wi cof csitg cpnf cico c0g sqxpeqd feq2d fovrnda dmexg off
          inidm unisg ax-mp csiga elmapd inundif unpreima syl5eqr dmmeas imaiun
          cmap fvex iunid eqtr3i c1st c2nd wfn ffn ofpreima2 ad2antrr inss1 fdm
          syl5sseq syl5ss syl5eqel ccld ctop tpstop cldssbrsiga inelsiga biimpi
          xpfi ssralv imafi ofrn2 syl5eqelr difpreima cnvimarndm difeq2i ssdif0
          ssfi mpbi eqtri syl6eq 0elsiga unelsiga ismbfm mpbir2and cesum fveq2d
          csu measbasedom eldifi sylan2 sneq imaeq2d sndisj disjpreima disjxpin
          disjss1 measvuni syl112anc simpr sseldi wn sylan9eqr necon3ad neorian
          oveq12 ex syl6ibr ralrimivva fniniseg cop 1st2nd2 df-ov eqtr3d simplr
          eldifbd velsn necon3bbii eqnetrrd sylanl2 oveq1 neeq1d orbi1d imbi12d
          wb neeq1 orbi2d rspc2v sibfinima syl31anc esumpfinval 3eqtrd rge0ssre
          oveq2 mp2d fsumrecl measge0 fsumge0 breqtrrd sylanbrc cvsca csca crrh
          elrege0 issibf mpbir3and ) AGHDUUAUQZKLUUBUQURUSVUTLURZKUTVAZVBVAZVCU
[encoded data, 5118 characters]
          $.
      $}

      $( Value of the Bochner integral for a simple function ` F ` .
         (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
      sitgfval $p |- ( ph -> ( ( W sitg M ) ` F ) = ( W gsum ( x e. ( ran F \
        { .0. } ) |-> ( ( H ` ( M ` ( `' F " { x } ) ) ) .x. x ) ) ) ) $=
        ( vf vg cv crn csn cdif ccnv cima cfv cmpt cgsu cfn wcel cpnf cico wral
        co cc0 cdm cmbfm crab csitg cvv sitgval wceq simpr rneqd difeq1d cnveqd
        imaeq1d fveq2d oveq1d mpteq12dv oveq2d sibfmbl sibfrn sibfima ralrimiva
        wa jca32 rneq eleq1d cnveq raleqbidv anbi12d elrab sylibr ovexd fvmptd
        ) AUBFKBUBUDZUEZLUFZUGZWKUHZBUDZUFZUIZIUJZGUJZWPEURZUKZULURKBFUEZWMUGZF
        UHZWQUIZIUJZGUJZWPEURZUKZULURUCUDZUEZUMUNZXKUHZWQUIZIUJZUSUOUPURZUNZBXL
        WMUGZUQZVTZUCIUTDVAURZVBZKIVCURVDABCDEUBUCGHIJKLMNOPQRSTVEAWKFVFZVTZXBX
        JKULYEBWNXAXDXIYEWLXCWMYEWKFAYDVGZVHVIYEWTXHWPEYEWSXGGYEWRXFIYEWOXEWQYE
        WKFYFVJVKVLVLVMVNVOAFYBUNZXCUMUNZXGXQUNZBXDUQZVTZVTFYCUNAYGYHYJACDEFGHI
        JKLMNOPQRSTUAVPACDEFGHIJKLMNOPQRSTUAVQAYIBXDAWPCDEFGHIJKLMNOPQRSTUAVRVS
        WAYAYKUCFYBXKFVFZXMYHXTYJYLXLXCUMXKFWBZWCYLXRYIBXSXDYLXLXCWMYMVIYLXPXGX
        QYLXOXFIYLXNXEWQXKFWDVKVLWCWEWFWGWHAKXJULWIWJ $.

      ${
        $d m x .0. $.  $d m .x. $.  $d m x B $.  $d m x F $.  $d m G $.
        $d m H $.  $d m x M $.  $d m S $.  $d m x W $.  $d m x ph $.
        sitgclg.g $e |- G = ( Scalar ` W ) $.
        sitgclg.d $e |- D = ( ( dist ` G )
                                |` ( ( Base ` G ) X. ( Base ` G ) ) ) $.
        sitgclg.1 $e |- ( ph -> W e. TopSp ) $.
        sitgclg.2 $e |- ( ph -> W e. CMnd ) $.
        sitgclg.3 $e |- ( ph -> ( Scalar ` W ) e. RRExt ) $.
        sitgclg.4 $e |- ( ( ph /\ m e. ( H " ( 0 [,) +oo ) ) /\ x e. B )
                            -> ( m .x. x ) e. B ) $.
        $( TODO : eliminate G and D $)
        $( Closure of the Bochner integral on simple functions, generic
           version.  See ~ sitgclbn for the version for Banach spaces.
           (Contributed by Thierry Arnoux, 24-Feb-2018.)  (Proof shortened by
           AV, 12-Dec-2019.) $)
        sitgclg $p |- ( ph -> ( ( W sitg M ) ` F ) e. B ) $=
          ( csitg co cfv crn csn cdif ccnv cima cmpt cgsu sitgfval cvv cdm wcel
          cv rnexg difexg 3syl wa cc0 cpnf cico simpl sibfima wfun wss csca cbs
          wi cr wf crrh cioo ctg ctopn czlm cds cxp cres xpeq12i reseq12i eqtri
          fveq2i eqid cdr crrext syl5eqel rrextdrg syl5eqelr cnrg rrextnrg cnlm
          syl rrextnlm cchr wceq rrextchr syl5eqr ccusp rrextcusp cuss rrextust
          cmetu rrhf feq1i sylibr ffun rge0ssre fdm syl5sseqr funfvima2 syl2anc
          sylc cuni cmeas csiga dmmeas csigagen fvex eqeltri a1i sgsiga sibfmbl
          mbfmf w3a cfn c0g sylancl sstri eqeltrd unieqi unisg mp1i syl5eq ctps
          tpsuni eqtr4d sseqtrd ssdifd sselda eldifad simp2 eleq1 3anbi2d oveq1
          frn eleq1d imbi12d vtoclg mpcom syl3anc fmptd csupp mptexg suppimacnv
          sibfrn cnvimass dmmptss difss ssfi gsumcl2 ) AHNLUKULZUMNBHUNZOUOZUPZ
          HUQBVEZUOURLUMZJUMZUVPFULZUSZUTULCABCEFHJKLMNOPQRSTUAUBUCUDVAAUVOCUVT
          NVBOPSUHAHUVLVCZVDUVMVBVDUVOVBVDZUDHUWAVFUVMUVNVBVGVHZABUVOUVSCUVTAUV
          PUVOVDZVIZAUVRJVJVKVLULZURZVDZUVPCVDZUVSCVDZAUWDVMZUWEAUVQUWFVDZUWHUW
          KAUVPCEFHJKLMNOPQRSTUAUBUCUDVNAJVOZUWFJVCZVPUWLUWHVSAVTNVQUMZVRUMZJWA
          ZUWMAVTUWPUWOWBUMZWAUWQAUWPDUWOWCUNWDUMZIWEUMIWFUMZDIWGUMZIVRUMZUXBWH
          ZWIUWOWGUMZUWPUWPWHZWIUFUXAUXDUXCUXEIUWOWGUEWMUXBUWPUXBUWPIUWOVRUEWMZ
          UXFWJWKWLUWSWNUWPWNIUWOWEUEWMIUWOWFUEWMAUWOIWOUEAIWPVDZIWOVDAIUWOWPUE
          UIWQZIWRXCWSAUWOIWTUEAUXGIWTVDUXHIXAXCWSAUXGUWTXBVDUXHIUWTUWTWNXDXCAU
          WOXEUMIXEUMZVJIUWOXEUEWMAUXGUXIVJXFUXHIXGXCXHAUWOIXIUEAUXGIXIVDUXHIXJ
          XCWSAUWOXKUMIXKUMZDXMUMZIUWOXKUEWMAUXGUXJUXKXFUXHUXBDIUXBWNUFXLXCXHXN
          VTUWPJUWRUAXOXPZVTUWPJXQXCAVTUWFUWNXRAUWQUWNVTXFUXLVTUWPJXSXCXTUWFUVQ
          JYAYBYCUWEUVPCUVNAUVOCUVNUPUVPAUVMCUVNAUVMEYDZCALVCZYDZUXMHWAUVMUXMVP
          AUXNEHALYEUNYDVDUXNYFUNYDZVDUCLYGXCAEKYHUMZUXPRAKVBKVBVDZAKNWEUMVBQNW
          EYIYJZYKYLWQACEFHJKLMNOPQRSTUAUBUCUDYMYNUXOUXMHUUPXCAUXMKYDZCAUXMUXQY
          DZUXTEUXQRUUAUXRUYAUXTXFAUXSKVBUUBUUCUUDANUUEVDCUXTXFUGCKNPQUUFXCUUGU
          UHUUIUUJUUKUWHAUWHUWIYOZUWJAUWHUWIUULAGVEZUWGVDZUWIYOZUYCUVPFULZCVDZV
          SUYBUWJVSGUVRUWGUYCUVRXFZUYEUYBUYGUWJUYHUYDUWHAUWIUYCUVRUWGUUMUUNUYHU
          YFUVSCUYCUVRUVPFUUOUUQUURUJUUSUUTUVAUVTWNZUVBAUVTOUVCULZUVTUQVBUVNUPZ
          URZYPAUVTVBVDZOVBVDUYJUYLXFAUWBUYMUWCBUVOUVSVBUVDXCONYQUMVBSNYQYIYJUV
          TVBVBOUVEYRAUVMYPVDUYLUVMVPUYLYPVDACEFHJKLMNOPQRSTUAUBUCUDUVFUYLUVOUV
          MUYLUVTVCUVOUVTUYKUVGBUVOUVSUVTUYIUVHYSUVMUVNUVIYSUVMUYLUVJYRYTUVKYT
          $.
      $}

      ${
        $d m x B $.  $d m x W $.  $d m F $.  $d m x ph $.  $d m .x. $.
        sitgclbn.1 $e |- ( ph -> W e. Ban ) $.
        sitgclbn.2 $e |- ( ph -> ( Scalar ` W ) e. RRExt ) $.
        $( Closure of the Bochner integral on a simple function.  This version
           is specific to Banach spaces, with additional conditions on its
           scalar field.  (Contributed by Thierry Arnoux, 24-Feb-2018.) $)
        sitgclbn $p |- ( ph -> ( ( W sitg M ) ` F ) e. B ) $=
          ( vx vm csca cfv cds cbs cxp cres eqid ccms wcel cmt ctps bncms cmsms
          cbn syl mstps 3syl clmod ccmn bnlmod lmodcmn cv cc0 cpnf cico co cima
          w3a 3ad2ant1 crn imassrn crrh rneqi crrext cr wf wss rrhfe frn syl5ss
          syl5eqss sselda 3adant3 simp3 lmodvscl syl3anc sitgclg ) AUCBJUEUFZUG
          UFWLUHUFZWMUIUJZCDUDEWLFGHIJKLMNOPQRSTWLUKZWNUKAJULUMZJUNUMJUOUMAJURU
          MZWPUAJUPUSJUQJUTVAAWQJVBUMZJVCUMUAJVDZJVEVAUBAUDVFZFVGVHVIVJZVKZUMZU
          CVFZBUMZVLWRWTWMUMZXEWTXDDVJBUMAXCWRXEAWQWRUAWSUSVMAXCXFXEAXBWMWTAXBF
          VNZWMFXAVOAXGWLVPUFZVNZWMFXHQVQAWLVRUMVSWMXHVTXIWMWAUBWMWLWMUKZWBVSWM
          XHWCVAWEWDWFWGAXCXEWHWTDWLWMBJXDLWOPXJWIWJWK $.
      $}

      ${
        sitgclcn.1 $e |- ( ph -> W e. Ban ) $.
        sitgclcn.2 $e |- ( ph -> ( Scalar ` W ) = CCfld ) $.
        $( Closure of the Bochner integral on a simple function.  This version
           is specific to Banach spaces on the complex numbers.  (Contributed
           by Thierry Arnoux, 24-Feb-2018.) $)
        sitgclcn $p |- ( ph -> ( ( W sitg M ) ` F ) e. B ) $=
          ( csca cfv ccnfld crrext cnrrext syl6eqel sitgclbn ) ABCDEFGHIJKLMNOP
          QRSTUAAJUCUDUEUFUBUGUHUI $.
      $}

      ${
        sitgclre.1 $e |- ( ph -> W e. Ban ) $.
        sitgclre.3 $e |- ( ph -> ( Scalar ` W ) = RRfld ) $.
        $( Closure of the Bochner integral on a simple function.  This version
           is specific to Banach spaces on the real numbers.  (Contributed by
           Thierry Arnoux, 24-Feb-2018.) $)
        sitgclre $p |- ( ph -> ( ( W sitg M ) ` F ) e. B ) $=
          ( csca cfv crefld crrext rerrext syl6eqel sitgclbn ) ABCDEFGHIJKLMNOP
          QRSTUAAJUCUDUEUFUBUGUHUI $.
      $}
    $}

    ${
      $d x ph $.
      sitg0.1 $e |- ( ph -> W e. TopSp ) $.
      sitg0.2 $e |- ( ph -> W e. Mnd ) $.
      $( The integral of the constant zero function is zero.  (Contributed by
         Thierry Arnoux, 13-Mar-2018.) $)
      sitg0 $p |- ( ph -> ( ( W sitg M ) ` ( U. dom M X. { .0. } ) ) = .0. ) $=
        ( vx cdm cuni csn cxp csitg co cfv cdif ccnv cv cima cmpt cgsu sitgfval
        crn sibf0 c0 wceq wss rnxpss ssdif0 mpbi mpteq1 ax-mp mpt0 eqtri oveq2i
        gsum0 syl6eq ) AGUBUCZJUDZUEZIGUFUGUHIUAVMUPZVLUIZVMUJUAUKZUDULGUHEUHVP
        DUGZUMZUNUGZJAUABCDVMEFGHIJKLMNOPQRABCDEFGHIJKLMNOPQRSTUQUOVSIURUNUGJVR
        URIUNVRUAURVQUMZURVOURUSZVRVTUSVNVLUTWAVKVLVAVNVLVBVCUAVOURVQVDVEUAVQVF
        VGVHIJNVIVGVJ $.
    $}

    ${
      $d f ph $.
      sitgf.1 $e |- ( ( ph /\ f e. dom ( W sitg M ) )
                    -> ( ( W sitg M ) ` f ) e. B ) $.
      $( The integral for simple functions is itself a function.  (Contributed
         by Thierry Arnoux, 13-Feb-2018.) $)
      sitgf $p |- ( ph -> ( W sitg M ) : dom ( W sitg M ) --> B ) $=
        ( vg vx csitg co cdm wfn crn wss wf wfun cfn wcel ccnv csn cima cfv cc0
        cv cpnf cico cdif wral cmbfm crab cmpt cgsu funmpt sitgval funeqd funfn
        wa mpbiri sylib ralrimiva fnfvrnss syl2anc df-f sylanbrc ) AJHUCUDZVSUE
        ZUFZVSUGBUHZVTBVSUIAVSUJZWAAWCEUAURZUGZUKULWDUMUBURZUNZUOHUPUQUSUTUDULU
        BWEKUNZVAVBVKUAHUECVCUDVDZJUBEURZUGWHVAWJUMWGUOHUPFUPWFDUDVEVFUDZVEZUJE
        WIWKVGAVSWLAUBBCDEUAFGHIJKLMNOPQRSVHVIVLVSVJVMZAWAWJVSUPBULZEVTVBWBWMAW
        NEVTTVNEVTBVSVOVPVTBVSVQVR $.
    $}

    ${
      sitgadd.1 $e |- ( ph -> W e. TopSp ) $.
      sitgadd.2 $e |- ( ph -> ( W |`v ( H " ( 0 [,) +oo ) ) ) e. SLMod ) $.
      sitgadd.3 $e |- ( ph -> J e. Fre ) $.
      sitgadd.4 $e |- ( ph -> F e. dom ( W sitg M ) ) $.
      sitgadd.5 $e |- ( ph -> G e. dom ( W sitg M ) ) $.
      ${
        sitgadd.6 $e |- ( ph -> ( Scalar ` W ) e. RRExt ) $.
        sitgadd.7 $e |- .+ = ( +g ` W ) $.
        $( Lemma for * sitgadd .  (Contributed by Thierry Arnoux,
           10-Mar-2019.) $)
        sitgaddlemb $p |- ( ( ph
            /\ p e. ( ( ran F X. ran G ) \ { <. .0. , .0. >. } ) )
          -> ( ( H ` ( M ` ( ( `' F " { ( 1st ` p ) } )
              i^i ( `' G " { ( 2nd ` p ) } ) ) ) ) .x. ( 2nd ` p ) ) e. B ) $=
          ( cv crn cxp cop csn cdif wcel wa cc0 cpnf cico cima cresv cslmd ccnv
          co c1st cfv c2nd cin csca cress cbs adantr cr wfn wss simpl wf crrext
          crrh eqid rrhfe syl feq1i sylibr ffn rge0ssre a1i simpr eldifad xp1st
          wne wo xp2nd wn eldifbd velsn notbii sylib eqopi ex con3d imp syl2anc
          ianor df-ne orbi12i bitr4i sibfinima syl31anc fnfvima syl3anc imassrn
          wceq frn syl5ss ressbas2 eleqtrd cdm cuni sibff ctps tpsuni feq3 3syl
          wb mpbird sseldd cvv fvex eqeltri resvbas mp2b resvsca cvsca resvvsca
          imaexg slmdvscl ) ANUJZFUKZGUKZULZMMUMZUNZUOUPZUQZLHURUSUTVEZVAZVBVEZ
          VCUPZFVDYSVFVGZUNVAGVDYSVHVGZUNVAVIJVGZHVGZLVJVGZUUHVKVEZVLVGZUPUULBU
          PUUNUULEVEBUPAUUJUUEUDVMUUFUUNUUHUUQUUFHVNVOZUUGVNVPZUUMUUGUPZUUNUUHU
          PUUFAUURAUUEVQZAVNUUOVLVGZHVRZUURAVNUVBUUOVTVGZVRZUVCAUUOVSUPUVEUHUVB
          UUOUVBWAZWBWCVNUVBHUVDTWDWEZVNUVBHWFWCWCUUSUUFWGWHUUFAUUKYTUPZUULUUAU
          PZUUKMWLZUULMWLZWMZUUTUVAUUFYSUUBUPZUVHUUFYSUUBUUDAUUEWIZWJZYSYTUUAWK
          WCUUFUVMUVIUVOYSYTUUAWNWCZUUFUUKMXNZUULMXNZUQZWOZUVLUUFUVMYSUUCXNZWOZ
          UVTUVOUUFYSUUDUPZWOUWBUUFYSUUBUUDUVNWPUWCUWANUUCWQWRWSUVMUWBUVTUVMUVS
          UWAUVMUVSUWAYSMMYTUUAWTXAXBXCXDUVTUVQWOZUVRWOZWMUVLUVQUVRXEUVJUWDUVKU
          WEUUKMXFUULMXFXGXHWSABDEFGHIJKLUUKUULMOPQRSTUAUBUFUGUCUEXIXJVNUUGHUUM
          XKXLUUFAUUHUUQXNZUVAAUUHUVBVPUWFAUUHHUKZUVBHUUGXMAUVCUWGUVBVPUVGVNUVB
          HXOWCXPUUHUVBUUPUUOUUPWAUVFXQWCWCXRUUFUUABUULAUUABVPZUUEAJXSXTZBGVRZU
          WHAUWJUWIIXTZGVRZABDEGHIJKLMOPQRSTUAUBUGYAALYBUPBUWKXNUWJUWLYFUCBILOP
          YCBUWKUWIGYDYEYGUWIBGXOWCVMUVPYHUUNEUUPUUQBUUIUULHYIUPZUUHYIUPZBUUIVL
          VGXNHUVDYITUUOVTYJYKZHUUGYIYQZUUHBLUUIYIUUIWAZOYLYMUWMUWNUUPUUIVJVGXN
          UWOUWPUUHUVBUUIUUOYILUWQUUOWAUVFYNYMUWMUWNEUUIYOVGXNUWOUWPUUHELUUIYIU
          WQSYPYMUUQWAYRXL $.

$(
        @( Lemma for ~ sitgadd . @)
        sitgaddlem2 @p |- ( ph -> ( ( W  sitg M ) ` G )
           = ( W gsum ( p e. ( ( ran F X. ran G ) \ { <. .0. , .0. >. } )
           |-> ( ( H ` ( M ` ( ( `' F " { ( 1st ` p ) } )
           i^i ( `' G " { ( 2nd ` p ) } ) ) ) ) .x. ( 2nd ` p ) ) ) ) ) @=
          ? @.

        sitgaddlem1 @p |- ( ph -> ( ( W  sitg M ) ` F )
           = ( W gsum ( p e. ( ( ran F X. ran G ) \ { <. .0. , .0. >. } )
           |-> ( ( H ` ( M ` ( ( `' F " { ( 1st ` p ) } )
           i^i ( `' G " { ( 2nd ` p ) } ) ) ) ) .x. ( 1st ` p ) ) ) ) ) @=
          ? @.

        @( For simple functions, the integral of a sum is the sum of the
           integral. @)
        sitgadd @p |- ( ph -> ( ( W  sitg M ) ` ( F oF .+ G ) )
           = ( ( ( W  sitg M ) ` F ) .+ ( ( W  sitg M ) ` G ) ) ) @=
          ? @.
$)
      $}

$(
      sitgle.1 @e |- .<_ = ( le ` W ) @.
      sitgle.2 @e |- ( ph -> W e. oMnd ) @.
      sitgle.4 @e |- ( ph -> F oR .<_ G ) @.
      @( The simple function integral is monotonic.
         @)
      sitgle @p |- ( ph -> ( ( W sitg M ) ` F ) .<_ ( ( W sitg M ) ` G ) ) @=
        ? @.
$)
    $}
  $}

  ${
    $d m w D $.  $d f g m w M $.  $d f g m w W $.
    sitmval.d $e |- D = ( dist ` W ) $.
    sitmval.1 $e |- ( ph -> W e. V ) $.
    sitmval.2 $e |- ( ph -> M e. U. ran measures ) $.
    $( Value of the simple function integral metric for a given space ` W ` and
       measure ` M ` .  (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
    sitmval $p |- ( ph -> ( W sitm M ) =
      ( f e. dom ( W sitg M ) , g e. dom ( W sitg M ) |->
        ( ( ( RR*s |`s ( 0 [,] +oo ) ) sitg M ) ` ( f oF D g ) ) ) ) $=
      ( vw vm wcel co csitg cdm cv cof cfv wceq cmeas cuni csitm cxrs cpnf cicc
      cvv crn cc0 cress cmpt2 elex syl oveq1 dmeqd fveq2 ofeq oveqd mpt2eq123dv
      fveq2d oveq2 eqcomi mp1i fveq12d df-sitm ovex dmex mpt2ex ovmpt2 syl2anc
      cds ) AGUGMZEUAUHUBZMGEUCNCDGEONZPZVOCQZDQZBRZNZUDUIUEUFNUJNZEONZSZUKZTAG
      FMVLIGFULUMJKLGEUGVMCDKQZLQZONZPZWGVPVQWDVKSZRZNZVTWEONZSZUKWCUCCDGWEONZP
      ZWNVPVQGVKSZRZNZWKSZUKWDGTZCDWGWGWLWNWNWRWSWFWMWDGWEOUNUOZWTWSWJWQWKWSWIW
      PVPVQWSWHWOTWIWPTWDGVKUPWHWOUQUMURUTUSWEETZCDWNWNWRVOVOWBXAWMVNWEEGOVAUOZ
      XBXAWQVSWKWAWEEVTOVAXAWPVRVPVQWOBTWPVRTXABWOHVBWOBUQVCURVDUSKCDLVECDVOVOW
      BVNGEOVFVGZXCVHVIVJ $.

    $d f g D $.  $d f g F $.  $d f g G $.  $d f g M $.  $d f g W $.
    $d f g ph $.
    sitmfval.1 $e |- ( ph -> F e. dom ( W sitg M ) ) $.
    sitmfval.2 $e |- ( ph -> G e. dom ( W sitg M ) ) $.
    $( Value of the integral distance between two simple functions.
       (Contributed by Thierry Arnoux, 30-Jan-2018.) $)
    sitmfval $p |- ( ph -> ( F ( W sitm M ) G ) =
      ( ( ( RR*s |`s ( 0 [,] +oo ) ) sitg M ) ` ( F oF D G ) ) ) $=
      ( vf vg csitg co cv cfv wceq wa cdm cof cxrs cc0 cpnf cress csitm sitmval
      cicc cvv simprl simprr oveq12d fveq2d fvexd ovmpt2d ) AMNCDGEOPUAZUQMQZNQ
      ZBUBZPZUCUDUEUIPUFPEOPZRCDUTPZVBRGEUGPUJABMNEFGHIJUHAURCSZUSDSZTTZVAVCVBV
      FURCUSDUTAVDVEUKAVDVEULUMUNKLAVCVBUOUP $.
  $}

  ${
    $d m x F $.  $d m x G $.  $d m x M $.  $d m x W $.  $d m x ph $.
    sitmcl.0 $e |- ( ph -> W e. Mnd ) $.
    sitmcl.1 $e |- ( ph -> W e. *MetSp ) $.
    sitmcl.2 $e |- ( ph -> M e. U. ran measures ) $.
    sitmcl.3 $e |- ( ph -> F e. dom ( W sitg M ) ) $.
    sitmcl.4 $e |- ( ph -> G e. dom ( W sitg M ) ) $.
    $( Closure of the integral distance between two simple functions, for an
       extended metric space.  (Contributed by Thierry Arnoux, 13-Feb-2018.) $)
    sitmcl $p |- ( ph -> ( F ( W sitm M ) G ) e. ( 0 [,] +oo ) ) $=
      ( co cfv cc0 cpnf eqid crefld cr cvv wcel syl vx csitm cds cof cxrs cress
      cicc csitg cxme sitmfval cxp cres cle cordt crest csigagen cxmu xrge0base
      vm crrh ctopn xrge0topn eqcomi xrge00 cvsca wceq ovex ax-xrsvsca ressvsca
      ax-mp csca ax-xrssca resssca fveq2i ovexd cbs cdm cuni wf sibff wb xmstps
      c0g ctps tpsuni 3syl mpbird cmeas crn dmexg uniexg ofresid cpsmet xmsxmet
      feq3 cxmt xmetpsmet psmetxrge0 xrge0tps a1i cha ct1 cmopn xmstopn methaus
      eqeltrd haust1 mndidcl xmet0 syl2anc syl6eq sibfof rebase xpeq12i reseq2i
      cmnd ccmn xrge0cmn crrext rerrext eqeltrri cv cico cima w3a rrhre imaeq1i
      cid wss cxr 0re pnfxr icossre mp2an resiima eqtri icossicc sseli 3ad2ant2
      eqsstri simp3 ge0xmulcl sitgclg ) ABCEDUBKKBCEUCLZUDKZUEMNUGKZUFKZDUHKZLU
      UFAUUDBCDUIEUUDOGHIJUJAUAUUFPUCLZQQUKZULUMUNLUUFUOKZUPLZUQUSUUEPPUTLZUUKD
      RUUGMURUUGVALUUKVBVCUULOVDUUFRSZUQUUGVELVFMNUGVGZUUFUQUEUUGRUUGOZVHVIVJPU
      UGVKLZUTUUNPUUQVFUUOUUFPUEUUGRUUPVLVMVJZVNAUEUUFUFVOHAUUEBCUUDEVPLZUUSUKZ
      ULZUDKUUHVQADVQZVRZUUSUUDBCRAUVCUUSBVSZUVCEVALZVRZBVSZAUUSUVEUPLZEVELZBEV
      KLUTLZUVEDUIEEWCLZUUSOZUVEOZUVHOZUVKOZUVIOZUVJOZGHIVTAUUSUVFVFZUVDUVGWAAE
      UISZEWDSZUVRGEWBZUUSUVEEUVLUVMWEWFZUUSUVFUVCBWOTWGAUVCUUSCVSZUVCUVFCVSZAU
      USUVHUVICUVJUVEDUIEUVKUVLUVMUVNUVOUVPUVQGHJVTAUVRUWCUWDWAUWBUUSUVFUVCCWOT
      WGADWHWIVRZSUVBRSUVCRSHDUWEWJUVBRWKWFWLAUUSUUFUVAUVHUVIBCUVJUVEUUGDUIEUVK
      UVLUVMUVNUVOUVPUVQGHIURAUVSUVTGUWATAUVAUUSWMLSZUUTUUFUVAVSAUVSUVAUUSWPLSZ
      UWFGUVAEUUSUVLUVAOZWNZUVAUUSWQWFUVAUUSWRTJUUGWDSAWSWTZAUVEXASUVEXBSAUVEUV
      AXCLZXAAUVSUVEUWKVFGUVAUVEEUUSUVMUVLUWHXDTAUVSUWGUWKXASGUWIUVAUWKUUSUWKOX
      EWFXFUVEXGTAUVKUVKUVAKZMUUGWCLAUWGUVKUUSSZUWLMVFAUVSUWGGUWITAEXPSUWMFUUSE
      UVKUVLUVOXHTUVKUVAUUSXIXJVDXKXLXFUURUUJPVPLZUWNUKUUIQUWNQUWNXMXMXNXOUWJUU
      GXQSAXRWTUUQXSSAPUUQXSUURXTYAWTAUSYBZUUMMNYCKZYDZSZUAYBZUUFSZYEUWOUUFSZUW
      TUWOUWSUQKUUFSUWRAUXAUWTUWQUUFUWOUWQUWPUUFUWQYHQULZUWPYDZUWPUUMUXBUWPYFYG
      UWPQYIZUXCUWPVFMQSNYJSUXDYKYLMNYMYNQUWPYOVJYPMNYQYTYRYSAUWRUWTUUAUWOUWSUU
      BXJUUCXF $.
  $}

  ${
    $d f g M $.  $d f g W $.  $d f g ph $.
    sitmf.0 $e |- ( ph -> W e. Mnd ) $.
    sitmf.1 $e |- ( ph -> W e. *MetSp ) $.
    sitmf.2 $e |- ( ph -> M e. U. ran measures ) $.
    $( The integral metric as a function.  (Contributed by Thierry Arnoux,
       13-Mar-2018.) $)
    sitmf $p |- ( ph -> ( W sitm M ) :
      ( dom ( W sitg M ) X. dom ( W sitg M ) ) --> ( 0 [,] +oo ) ) $=
      ( vf vg csitg co cdm wf cv cfv wcel wral wa cxme eqid adantr cxp cc0 cpnf
      cicc csitm cds cof cxrs cress cmpt2 cmeas crn cuni simprl simprr sitmfval
      cmnd sitmcl eqeltrrd ralrimivva fmpt2 sylib sitmval feq1d mpbird ) ACBIJK
      ZVFUAZUBUCUDJZCBUEJZLVGVHGHVFVFGMZHMZCUFNZUGJUHVHUIJBIJNZUJZLZAVMVHOZHVFP
      GVFPVOAVPGHVFVFAVJVFOZVKVFOZQZQZVJVKVIJVMVHVTVLVJVKBRCVLSZACROVSETZABUKUL
      UMOVSFTZAVQVRUNZAVQVRUOZUPVTVJVKBCACUQOVSDTWBWCWDWEURUSUTGHVFVFVMVHVNVNSV
      AVBAVGVHVIVNAVLGHBRCWAEFVCVDVE $.
$(
    @d f g h x y M @.  @d f g h x y W @.  @d f g h x y ph @.
    @( The integral metric is a pseudo metric on the simple functions.
       (Contributed by Thierry Arnoux, 14-Mar-2018.) @)
    sitmpsmet @p |- ( ph -> ( W sitm M ) e. ( PsMet ` dom ( W sitg M ) ) ) @=
      ( vx vy co cxr wf cc0 wceq cxad wa cfv wcel eqid cvv syl vf vg vh cdm cxp
      csitg csitm cv cle wbr wral cpsmet cpnf wss sitmf iccssxr fss sylancl cds
      cicc cof cxrs cress cxme cmeas crn cuni simpr sitmfval csn cmpt ctopn wfn
      adantr cbs csigagen cvsca csca crrh c0g sibff ffn dmexg uniexg 3syl inidm
      eqidd offval cres ffvelrnda xmstps tpsuni ad2antrr eleqtrrd ovres syl2anc
      ctps cxmt xmsxmet xmet0 eqtrd xrge0base xrge00 xrge0tps a1i cmnd xrge0cmn
      ccmn ax-mp cslmd ct1 cha haust1 mp1i biimpar simprl ofresid cmpt2 fovrnda
      feq3 fnov simprr sylibr ralrimivva rnmpt2ss df-f eqeltrd sibfof cxmu ovex
      jca off mp2an eqtri 0xr wb adantlr ralrimiva offn ofval mpteq2dva syl6eqr
      eqtr3d fconstmpt fveq2d cordt crest xrge0topn eqcomi xrge0slmod xrge0haus
      cmnmnd sitg0 syl5eqel xmetf sylib xmetge0 syl3anc elxrge0 eqsstrd xmstopn
      rneq methaus mndidcl syl6eq adantl eqeltrrd ax-xrsvsca ressvsca ge0xaddcl
      cmopn rgen2a xaddf mpbi reseq1i resmpt2 fnmpt2 0le0 pnfge elicc1 mpbir3an
      w3a pnfxr xaddid1 xrge0le comnd xrge0omnd xmstri2 syl13anc ofrfval mpbird
      cofr sitgle xrge0plusg sitgadd breqtrd oveq12d 3brtr4d ispsmet mp2b ) ACB
[encoded data, 5040 characters]
      TUXSYPCBUFYJUXASWCUAUBUCUXDSUXBUWSUWTYC @.
$)
  $}

$(
  @{
    @( The metric identification for simple functions. @)
    sitmmetid @p |- ( ( W e. V /\ M e. U. ran measures ) ->
      ( ~Met ` ( W sitm M ) ) = ( ( _I |` B ) ~ae M ) ) @=
      ? @.
  @}

  @{
    sitmmet.1 @e |- B = ( Base ` W ) @.
    @( The integral metric is a metric for the equivalence classes of simple
       functions equal almost everywhere. @)
    sitmmet @p |- ( ( W e. V /\ M e. U. ran measures ) -> ( W sitm M ) e.
     ( *Met ` ( dom ( W sitg M ) /. ( ( _I |` B ) ~ae M ) ) ) ) @=
      ? @.
  @}
$)

  ${
    $d w m $.
    $( Define the Bochner integral as the extension by continuity of the
       Bochnel integral for simple functions.

       Bogachev first defines 'fundamental in the mean' sequences, in
       definition 2.3.1 of [Bogachev] p. 116, and notes that those are actually
       Cauchy sequences for the pseudometric ` ( w sitm m ) ` .

       He then defines the Bochner integral in chapter 2.4.4 in [Bogachev]
       p. 118.  The definition of the Lebesgue integral, ~ df-itg .

       (Contributed by Thierry Arnoux, 13-Feb-2018.) $)
    df-itgm $a |- itgm = ( w e. _V , m e. U. ran measures |->
      ( ( ( metUnif ` ( w sitm m ) ) CnExt ( UnifSt ` w ) ) ` ( w sitg m ) ) )
      $.
  $}

$(
  @{
    @d w m f e n i @.
    @( TODO with the previous definiton, fundamental sequences shall be the
       Cauchy sequences for ` ( W sitm M ) ` : ` U. ( Cau `` ( W sitm M ) ) `

       Define the 'fundamental in the mean' sequences, in the sense of the
       definition 2.3.1 of [Bogachev] p. 116.  (Contributed by Thierry Arnoux,
       21-Oct-2017.) @)
    df-fndm @a |- Fundm = ( w e. _V , m e. U. ran measures |-> { f e. ( dom (
      w sitg m ) ^m NN ) | A. e e. RR+ E. n e. ZZ A. i e. ( ZZ>= ` n )
      ( ( RR*s sitg m ) ` ( ( f ` n ) ( dist ` w ) ( f ` i ) ) ) <_ e } ) @.
  @}

  @{
    @d f g h m n w x @.
    @( Old definition @)
    @( Define the Bochner integral, following definition 2.4.4 in [Bogachev]
       p. 118.  The definition of the Lebesgue integral, ~ df-itg .
       (Contributed by Thierry Arnoux, 21-Oct-2017.) @)
    df-itgm @a |- itgm = ( w e. _V , m e. U. ran measures |-> ( f e. ( ( Base `
      w ) ^m U. dom m ) |-> U. ran ( g e. { h e. ( w Fundm m ) | A. x e. U. dom
      m ( n e. NN |-> ( ( h ` n ) ` x ) ) ( ~~>t ` ( TopSet ` w ) ) ( f ` x ) }
      |-> ( ( ~~>t ` ( TopSet ` w ) ) ` ( ( w sitg m ) ` ( g ` n ) ) ) ) ) ) @.
  @}
$)

$( End $[ set-mbox-ta-itgm.mm $] $)


$( Begin $[ set-mbox-ta-eulerpart.mm $] $)
$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Euler's partition theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d a k l m n o x y z $.  $d a F $.  $d a x y J $.
    oddpwdc.j $e |- J = { z e. NN | -. 2 || z } $.
    oddpwdc.f $e |- F = ( x e. J , y e. NN0 |-> ( ( 2 ^ y ) x. x ) ) $.
    $( Lemma for ~ eulerpart .  The function ` F ` that decomposes a number
       into its "odd" and "even" parts, which is to say the largest power of
       two and largest odd divisor of a number, is a bijection from pairs of a
       nonnegative integer and an odd number to positive integers.
       (Contributed by Thierry Arnoux, 15-Aug-2017.) $)
    oddpwdc $p |- F : ( J X. NN0 ) -1-1-onto-> NN $=
      ( vn cn0 cn c2 cexp co cdvds wbr clt wcel wa cc0 cz va vk vm vo wf1o wtru
      vl cxp cv cmul crab csup cdiv 2nn a1i simpl nnexpcld ssrab2 eqsstri simpr
      wn sseldi nnmulcld ancoms adantl id wor cr wss nn0ssre ltso soss mp2 wral
      cle wrex wi 0zd nnz weq oveq2 breq1d elrab simprl nn0red nnred 2re nexple
      leidi mp3an23 ad2antrl simprr dvdsle imp syl21anc letrd sylan2b ralrimiva
      nnzd breq2 ralbidv rspcev syl2anc nn0uz syl3anc supcl cfn adantr nn0zd ex
      wne sylancr c1 cc wceq 2cn sylanbrc biimpa caddc supub sylnib mtbid nncnd
      syl mpd nnne0d wb notbid elrab2 jca simplr 2z expcld nn0cnd oveq2d eqtr3d
      eqeltrd expne0d mulcomd eqtr4d uzsupss c0 cfz fzfi nn0ge0d elfz4 syl32anc
      ssrdv ssfi 0nn0 exp0 ax-mp 1dvds syl5eqbr fisupcl syl13anc syl6eleq sylib
      ne0i simprd nndivdvds 1nn0 nn0addcld ltp1d mt2d eleq2i imnan sylibr expp1
      cbvrabv divcan2d eqcomd breq2d dvdscmulr syl112anc bitrd ad2antrr simplll
      nncn simprbi cmin znnsub iddvdsexp nnnn0d zexpcl dvdsmultr2 divcld mulcld
      sseli 2cnd pncan3d expaddd oveq1d 3eqtr3d mulassd eqtrd mulcanad breqtrrd
      2ne0 pm2.65da eqtr2d dvds0lem syl31anc lttri3d mpbir2and nnexpcl ad3antlr
      nsyl3 mpan divmul2 mpbird jcai ancomd oveq12d jca31 impbii f1od2 trud ) E
[encoded data, 4160 characters]
      XNYTUXOUXPUOUXQUXR $.

    $d x y W $.
    $( Lemma for ~ eulerpart : value of the ` F ` function.  (Contributed by
       Thierry Arnoux, 9-Sep-2017.) $)
    oddpwdcv $p |- ( W e. ( J X. NN0 ) ->
        ( F ` W ) = ( ( 2 ^ ( 2nd ` W ) ) x. ( 1st ` W ) ) ) $=
      ( cn0 cxp wcel cfv c1st co c2 cexp cmul wceq cv oveq2 c2nd 1st2nd2 fveq2d
      cop df-ov a1i wa elxp6 simprbi oveq1d ovex ovmpt2 syl 3eqtr2d ) FEIJKZFDL
      FMLZFUALZUDZDLZUPUQDNZOUQPNZUPQNZUOFURDFEIUBUCUTUSRUOUPUQDUEUFUOUPEKUQIKU
      GZUTVBRUOFURRVCFEIUHUIABUPUQEIOBSZPNZASZQNVBDVEUPQNVFUPVEQTVDUQRVEVAUPQVD
      UQOPTUJHVAUPQUKULUMUN $.
  $}

  ${
    $( Define the set of finitely supported functions into nonnegative natural
       numbers. We'll first prove some of their properties. $)
    eulerpartlems.r $e |- R = { f | ( `' f " NN ) e. Fin } $.

    $( ` S ` recovers the sum of a partition. $)
    eulerpartlems.s $e |- S = ( f e. ( ( NN0 ^m NN ) i^i R )
      |-> sum_ k e. NN ( ( f ` k ) x. k ) ) $.

    $d f k A $.  $d f k R $.
    $( Lemma for ~ eulerpart .  Value of the sum of a partition ` A ` .
       (Contributed by Thierry Arnoux, 26-Aug-2018.) $)
    eulerpartlemsv1 $p |- ( A e. ( ( NN0 ^m NN ) i^i R )
      -> ( S ` A ) = sum_ k e. NN ( ( A ` k ) x. k ) ) $=
      ( cn0 cn cmap co wcel cv cfv cmul csu cvv wceq a1i wa cin simplr sumeq2dv
      cmpt fveq1d oveq1d id sumex fvmptd ) AHIJKBUAZLZDAIEMZDMZNZULOKZEPZIULANZ
      ULOKZEPZUJCQCDUJUPUDRUKGSUKUMARZTZIUOUREVAULILZTZUNUQULOVCULUMAUKUTVBUBUE
      UFUCUKUGUSQLUKIUREUHSUI $.

    $( Lemma for ~ eulerpart .  (Contributed by Thierry Arnoux, 8-Aug-2018.) $)
    eulerpartlemelr $p |- ( A e. ( ( NN0 ^m NN ) i^i R )
      -> ( A : NN --> NN0 /\ ( `' A " NN ) e. Fin ) ) $=
      ( cn0 cn cmap co cin wcel wf ccnv cima cfn inss1 sseli elmapi syl cv wceq
      inss2 cnveq imaeq1d eleq1d elab2g mpbid jca ) AHIJKZBLZMZIHANZAOZIPZQMZUM
      AUKMUNULUKAUKBRSAHITUAUMABMUQULBAUKBUDSDUBZOZIPZQMUQDABULURAUCZUTUPQVAUSU
      OIURAUEUFUGFUHUIUJ $.

    $( Lemma for ~ eulerpart .  Value of the sum of a finite partition ` A `
       (Contributed by Thierry Arnoux, 19-Aug-2018.) $)
    eulerpartlemsv2 $p |- ( A e. ( ( NN0 ^m NN ) i^i R )
      -> ( S ` A ) = sum_ k e. ( `' A " NN ) ( ( A ` k ) x. k ) ) $=
      ( cn0 cn co wcel cfv cmul csu c1 wceq wa adantr ffvelrnd cc0 cmap cv ccnv
      cin cima eulerpartlemsv1 cdm cnvimass cfn eulerpartlemelr simpld syl5sseq
      wf fdm sselda nnnn0d nn0mulcld nn0cnd cdif wn wo simpr eldifad wi eldifbd
      syl wfn ffn elpreima 3syl mtbid imnan sylibr mpd elnn0 sylib orel1 oveq1d
      wb sylc nncnd mul02d eqtrd cuz wss nnuz eqimssi a1i sumss eqtr4d ) AHIUAJ
      BUDKZACLIEUBZALZWLMJZENAUCIUEZWNENABCDEFGUFWKWOIWNEOWKAUGZWOIAIUHWKIHAUMZ
      WPIPWKWQWOUIKABCDEFGUJUKZIHAUNVFULZWKWLWOKZQZWNXAWMWLXAIHWLAWKWQWTWRRWKWO
      IWLWSUOZSXAWLXBUPUQURWKWLIWOUSKZQZWNTWLMJTXDWMTWLMXDWMIKZUTZXEWMTPZVAZXGX
      DWLIKZXFXDWLIWOWKXCVBZVCZXDXIXEQZUTXIXFVDXDWTXLXDWLIWOXJVEXDWQAIVGWTXLVSW
      KWQXCWRRZIHAVHIWLIAVIVJVKXIXEVLVMVNXDWMHKXHXDIHWLAXMXKSWMVOVPXEXGVQVTVRXD
      WLXDWLXKWAWBWCIOWDLZWEWKIXNWFWGWHWIWJ $.

    $d f g k R $.
    $( Lemma for ~ eulerpart .  (Contributed by Thierry Arnoux, 8-Aug-2018.) $)
    eulerpartlemsf $p |- S : ( ( NN0 ^m NN ) i^i R ) --> NN0 $=
      ( vg cn0 cn cmap co cin cv cfv cmul csu wcel wceq wa simpl fveq1d ccnv wf
      oveq1d eleq1d cima eulerpartlemsv2 eulerpartlemsv1 eqtr3d eulerpartlemelr
      sumeq2dv cfn simprd simpld adantr cdm cnvimass fdm syl5sseq sselda nnnn0d
      syl ffvelrnd nn0mulcld fsumnn0cl eqeltrrd vtoclga fmpti ) CHIJKALZHIDMZCM
      ZNZVJOKZDPZBFIVJGMZNZVJOKZDPZHQVNHQGVKVIVOVKRZVRVNHVSIVQVMDVSVJIQZSZVPVLV
      JOWAVJVOVKVSVTTUAUDUKUEVOVIQZVOUBIUFZVQDPZVRHWBVOBNWDVRVOABCDEFUGVOABCDEF
      UHUIWBWCVQDWBIHVOUCZWCULQZVOABCDEFUJZUMWBVJWCQZSZVPVJWIIHVJVOWBWEWHWBWEWF
      WGUNZUOWBWCIVJWBVOUPZWCIVOIUQWBWEWKIRWJIHVOURVBUSUTZVCWIVJWLVAVDVEVFVGVH
      $.

    $( This proof could be shortened, at least by using finite sum theorems $)
    $d k l m t A $.  $d l t R $.  $d l t S $.
    $( Lemma for ~ eulerpart .  (Contributed by Thierry Arnoux, 6-Aug-2018.)
       (Revised by Thierry Arnoux, 1-Sep-2019.) $)
    eulerpartlems $p |- ( ( A e. ( ( NN0 ^m NN ) i^i R )
      /\ t e. ( ZZ>= ` ( ( S ` A ) + 1 ) ) ) -> ( A ` t ) = 0 ) $=
      ( cn0 cn co wcel cfv c1 wa cc0 wceq wbr adantr cmul vl vm cmap cin cv cuz
      caddc cfz cdif wb eulerpartlemsf ffvelrni nndiffz1 eleq2d syl pm5.32i clt
      wn simpr eldif sylib simpld wf ccnv cima eulerpartlemelr ffvelrnda syldan
      cfn simpl simprd cz nnuz syl6eleq nn0zd elfz5 syl2anc notbid nn0red nnred
      cle ltnled bitr4d biimpa syl21anc wral wrex eulerpartlemsv1 fveq2 oveq12d
      wi csu id cbvsumv syl6req breq2 breq2d anbi12d cbvrexv ad2antrr cmpt 1zzd
      wne cr eqidd fveq2d ffvelrn nnnn0d nn0mulcld fvmptd cbvmptv fmptd nn0sscn
      cc wss fss sylancl csn cvv nnex 0nn0 eqid ffs2 mp3an12 frnnn0supp sylancr
      csupp eqeltrd a1i ffn simp3 oveq1d simp2 nncnd mul02d eqtrd sylbir sylibr
      w3a nn0ge0d suppss3 ssfi eqeltrrd fsumcvg4 isumrecl simprl remulcld nnge1
      simprr elnnnn0b lemulge12d nn0cnd sumsn snfi snssd isumless letrd ltletrd
      mulcld eqbrtrrd r19.29an gtned ex syl5bi necon2bd mpd ralnex imnan ralbii
      r19.21bi imp nn0re 0red lenltd nn0le0eq0 bitr3d ) BIJUCKCUDZLZAUEZBDMZNUG
      KUFMZLZOUVRUVSJNUVTUHKZUIZLZOZUVSBMZPQZUVRUWEUWBUVRUVTILZUWEUWBUJUVQIBDCD
      EFGHUKULZUWIUWDUWAUVSUVTUMUNUOUPUWFUWGILZPUWGUQRZURZUWHUVRUWEUVSJLZUWKUWF
      UWNUVSUWCLZURZUWFUWEUWNUWPOUVRUWEUSUVSJUWCUTVAZVBZUVRJIUVSBUVRJIBVCZBVDJV
      EZVILZBCDEFGHVFZVBZVGVHUWFUVRUWNUVTUVSUQRZUWMUVRUWEVJUWRUWFUWNUWIUWPUXDUW
      RUVRUWIUWEUWJSUWFUWNUWPUWQVKUWNUWIOZUWPUXDUXEUWPUVSUVTWARZURUXDUXEUWOUXFU
      XEUVSNUFMZLUVTVLLUWOUXFUJUXEUVSJUXGUWNUWIVJZVMVNUXEUVTUWNUWIUSZVOUVSNUVTV
      PVQVRUXEUVTUVSUXEUVTUXIVSUXEUVSUXHVTWBWCWDWEUVRUWNOUXDUWMUVRUXDUWMWKZAJUV
      RUXDUWLOZURZAJWFZUXJAJWFUVRUXKAJWGZURZUXMUVRJUWGUVSTKZAWLZUVTQUXOUVRUVTJF
      UEZBMZUXRTKZFWLUXQBCDEFGHWHJUXTUXPFAUXRUVSQZUXSUWGUXRUVSTUXRUVSBWIUYAWMWJ
      WNWOUVRUXNUXQUVTUXNUVTUAUEZUQRZPUYBBMZUQRZOZUAJWGZUVRUXQUVTXCZUXKUYFAUAJU
      VSUYBQZUXDUYCUWLUYEUVSUYBUVTUQWPUYIUWGUYDPUQUVSUYBBWIZWQWRWSUVRUYGUYHUVRU
      YGOZUVTUXQUYKUVTUVRUWIUYGUWJSVSUVRUYFUVTUXQUQRUAJUVRUYBJLZOZUYFOZUVTUYBUX
      QUYNUVTUVRUWIUYLUYFUWJWTVSUYNUYBUYMUYLUYFUVRUYLUSZSZVTZUYMUXQXDLUYFUYMUXP
      AUBJUBUEZBMZUYRTKZXAZNJVMUYMXBZUYMUWNOZUWSUWNUVSVUAMUXPQUVRUWSUYLUWNUXCWT
      UYMUWNUSZUWSUWNOZUBUVSUYTUXPJVUAIVUEVUAXEVUEUYRUVSQZOZUYSUWGUYRUVSTVUGUYR
      UVSBVUEVUFUSZXFVUHWJUWSUWNUSZVUEUWGUVSJIUVSBXGVUEUVSVUIXHXIXJVQZVUCUXPVUC
      UWGUVSUYMJIUVSBUVRUWSUYLUXCSZVGVUCUVSVUDXHXIZVSZUYMJVUANVMVUBUYMJIVUAVCIX
      NXOJXNVUAVCZUYMAJUXPIVUAVULUBAJUYTUXPVUFUYSUWGUYRUVSTUYRUVSBWIVUFWMWJXKZX
      LXMJIXNVUAXPXQZUYMVUAPYGKZVUAVDXNPXRUIZVEZVIUYMVUNVUQVUSQZVUPJXSLZPILZVUN
      VUTXTYAJXNVURVUAXSIPVURYBYCYDUOUYMBPYGKZVILVUQVVCXOZVUQVILUYMVVCUWTVIUYMV
      VAUWSVVCUWTQXTVUKBJXSYEYFUVRUXAUYLUVRUWSUXAUXBVKSYHUYMUWSVVDVUKUWSAJUXPBV
      UAXSIPVUOVVAUWSXTYIVVBUWSYAYIJIBYJUWSUWNUWHYSZUXPPUVSTKPVVEUWGPUVSTUWSUWN
      UWHYKYLVVEUVSVVEUVSUWSUWNUWHYMYNYOYPUUAUOVVCVUQUUBVQUUCUUDZUUESZUYMUYCUYE
      UUFUYNUYBUYDUYBTKZUXQUYQUYNUYDUYBUYNUYDUYMUYDILZUYFUVRJIUYBBUXCVGZSZVSZUY
      QUUGVVGUYNUYBUYDUYQVVLUYNUYBUYNUYBUYPXHYTUYNVVIUYENUYDWARZVVKUYMUYCUYEUUI
      VVIUYEOUYDJLVVMUYDUUJUYDUUHYQVQUUKUYMVVHUXQWARUYFUYMUYBXRZUXPAWLZVVHUXQWA
      UYMUYLVVHXNLVVOVVHQUYOUYMUYDUYBUYMUYDVVJUULUYMUYBUYOYNUUSUXPVVHAUYBJUYIUW
      GUYDUVSUYBTUYJUYIWMWJUUMVQUYMVVNUXPAVUANJVMVUBVVNVILUYMUYBUUNYIUYMUYBJUYO
      UUOVUJVUMVUCUXPVULYTVVFUUPUUTSUUQUURUVAUVBUVCUVDUVEUVFUXKAJUVGYRUXJUXLAJU
      XDUWLUVHUVIYRUVJUVKWEUWKUWMUWHUWKUWGPWARUWMUWHUWKUWGPUWGUVLUWKUVMUVNUWGUV
      OUVPWDVQYQ $.

    $d k t S $.
    $( Lemma for ~ eulerpart .  Value of the sum of a finite partition ` A `
       (Contributed by Thierry Arnoux, 19-Aug-2018.) $)
    eulerpartlemsv3 $p |- ( A e. ( ( NN0 ^m NN ) i^i R )
      -> ( S ` A ) = sum_ k e. ( 1 ... ( S ` A ) ) ( ( A ` k ) x. k ) ) $=
      ( vt cn0 cn co wcel cfv cv cmul csu c1 cc0 wceq wral cmap eulerpartlemsv1
      cin cfz wss cuz fzssuz nnuz sseqtr4i a1i wa ccnv cima cfn eulerpartlemelr
      wf simpld adantr sselda ffvelrnd nn0cnd nncnd mulcld cdif caddc ralrimiva
      eulerpartlems fveq2 eqeq1d cbvralv sylibr eulerpartlemsf ffvelrni raleqdv
      nndiffz1 mpbird r19.21bi oveq1d simpr eldifad mul02d eqtrd eqimssi eqtr4d
      syl sumss ) AIJUAKBUCZLZACMZJENZAMZWJOKZEPQWIUDKZWLEPABCDEFGUBWHWMJWLEQWM
      JUEWHWMQUFMZJQWIUGUHUIUJZWHWJWMLZUKZWKWJWQWKWQJIWJAWHJIAUPZWPWHWRAULJUMUN
      LABCDEFGUOUQURWHWMJWJWOUSZUTVAWQWJWSVBVCWHWJJWMVDZLZUKZWLRWJOKRXBWKRWJOWH
      WKRSZEWTWHXCEWTTXCEWIQVEKUFMZTZWHHNZAMZRSZHXDTXEWHXHHXDHABCDEFGVGVFXCXHEH
      XDWJXFSWKXGRWJXFAVHVIVJVKWHXCEWTXDWHWIILWTXDSWGIACBCDEFGVLVMWIVOWEVNVPVQV
      RXBWJXBWJXBWJJWMWHXAVSVTVBWAWBJWNUEWHJWNUHWCUJWFWD $.

    $d i n $.  $d i t A $.  $d i t R $.
    $( Lemma for ~ eulerpart .  (Contributed by Thierry Arnoux, 9-Aug-2018.) $)
    eulerpartlemgc $p |- ( ( A e. ( ( NN0 ^m NN ) i^i R ) /\ ( t e. NN
      /\ n e. ( bits ` ( A ` t ) ) ) ) -> ( ( 2 ^ n ) x. t ) <_ ( S ` A ) ) $=
      ( vi cn0 cn co wcel wa c2 cmul cc0 cle wbr cmap cin cv cfv cbits cexp 2re
      cr bitsss simprr sseldi reexpcld simprl nnred remulcld wf eulerpartlemelr
      a1i ccnv cima cfn simpld ffvelrnda adantrr nn0red eulerpartlemsf ffvelrni
      adantr nnrpd rprege0d csn csu bitsfi syl wss sselda 0le2 expge0d fsumless
      snssd cc wceq recnd oveq2 sumsn syl2anc bitsinv1 3brtr3d lemul1a syl31anc
      c1 fzfid elfznn ffvelrn syl2an adantl adantlr nn0ge0d 0red nngt0d mulge0d
      cfz ltled fveq2 id oveq12d simpr fsumge1 wn cdif eldif caddc cuz nndiffz1
      wb eleq2d pm5.32i eulerpartlems sylbi oveq1d eldifad nncnd mul02d fsumge0
      eqtrd eqbrtrd sylan2br anassrs pm2.61dan eulerpartlemsv3 breqtrrd letrd )
      BKLUAMCUBZNZAUCZLNZGUCZYOBUDZUEUDZNZOZOZPYQUFMZYOQMZYRYOQMZBDUDZUUBUUCYOU
      UBPYQPUHNZUUBUGURUUBYSKYQYRUIZYNYPYTUJZUKULZUUBYOYNYPYTUMZUNZUOUUBYRYOUUB
      YRYNYPYRKNZYTYNLKYOBYNLKBUPZBUSLUTVANBCDEFHIUQVBZVCZVDZVEUULUOUUBUUFYNUUF
      KNZUUAYMKBDCDEFHIVFVGZVHVEUUBUUCUHNYRUHNZYOUHNRYOSTOUUCYRSTUUDUUESTUUJYNY
      PUUTYTYNYPOZYRUUPVEVDUUBYOUUBYOUUKVIVJUUBYQVKZPJUCZUFMZJVLZYSUVDJVLZUUCYR
      SUUBYSUVDUVBJUUBUUMYSVANUUQYRVMVNUUBUVCYSNOZPUVCUUGUVGUGURZUUBYSKUVCYSKVO
      UUBUUHURVPZULUVGPUVCUVHUVIRPSTUVGVQURVRUUBYQYSUUIVTVSUUBYTUUCWANUVEUUCWBU
      UIUUBUUCUUJWCUVDUUCJYQYSUVCYQPUFWDWEWFUUBUUMUVFYRWBUUQJYRWGVNWHUUCYRYOWIW
      JYNYPUUEUUFSTYTUVAUUEWKUUFXBMZFUCZBUDZUVKQMZFVLZUUFSUVAYOUVJNZUUEUVNSTZYN
      UVOUVPYPYNUVOOZUVJUVMUUEFYOUVQWKUUFWLYNUVKUVJNZUVMUHNUVOYNUVROZUVLUVKUVSU
      VLYNUUNUVKLNZUVLKNUVRUUOUVKUUFWMZLKUVKBWNWOZVEZUVSUVKUVRUVTYNUWAWPZUNZUOZ
      WQYNUVRRUVMSTUVOUVSUVLUVKUWCUWEUVSUVLUWBWRUVSRUVKUVSWSUWEUVSUVKUWDWTXCXAZ
      WQUVKYOWBZUVLYRUVKYOQUVKYOBXDUWHXEXFYNUVOXGXHWQYNYPUVOXIZUVPYPUWIOYNYOLUV
      JXJZNZUVPYOLUVJXKYNUWKOZUUERUVNSUWLUUERYOQMRUWLYRRYOQUWLYNYOUUFWKXLMXMUDZ
      NZOYRRWBYNUWKUWNYNUURUWKUWNXOUUSUURUWJUWMYOUUFXNXPVNXQABCDEFHIXRXSXTUWLYO
      UWLYOUWLYOLUVJYNUWKXGYAYBYCYEYNRUVNSTUWKYNUVJUVMFYNWKUUFWLUWFUWGYDVHYFYGY
      HYIYNUUFUVNWBYPBCDEFHIYJVHYKVDYL $.
  $}

  ${
    $( Given a positive integer ` N ` , consider ` P ` , the set of partitions
       of ` N ` , whereas partitions are represented as functions ` f `
       associating a finite set of positive integers ` k ` with the number of
       times ` k ` appears in the partition. $)
    eulerpart.p $e |- P = { f e. ( NN0 ^m NN ) | ( ( `' f " NN ) e. Fin /\
      sum_ k e. NN ( ( f ` k ) x. k ) = N ) } $.

    ${
      $d f k A $.  $d f N $.
      $( Lemma for ~ eulerpart .  (Contributed by Mario Carneiro,
         26-Jan-2015.) $)
      eulerpartleme $p |- ( A e. P <-> ( A : NN --> NN0 /\ ( `' A " NN ) e. Fin
        /\ sum_ k e. NN ( ( A ` k ) x. k ) = N ) ) $=
        ( cn0 cn cmap co wcel ccnv cima cfn cv cfv cmul csu wceq wa wf w3a nnex
        nn0ex elmap anbi1i cnveq imaeq1d eleq1d oveq1d sumeq2sdv eqeq1d anbi12d
        fveq1 elrab2 3anass 3bitr4i ) AGHIJZKZALZHMZNKZHDOZAPZVCQJZDRZESZTZTHGA
        UAZVHTABKVIVBVGUBUSVIVHGHAUDUCUEUFCOZLZHMZNKZHVCVJPZVCQJZDRZESZTVHCAURB
        VJASZVMVBVQVGVRVLVANVRVKUTHVJAUGUHUIVRVPVFEVRHVOVEDVRVNVDVCQVCVJAUNUJUK
        ULUMFUOVIVBVGUPUQ $.
    $}

    ${
      $d f k A $.  $d f k N $.  $d k P $.
      $( Lemma for ~ eulerpart .  (Contributed by Thierry Arnoux,
         19-Aug-2018.) $)
      eulerpartlemv $p |- ( A e. P <-> ( A : NN --> NN0 /\ ( `' A " NN ) e. Fin
        /\ sum_ k e. ( `' A " NN ) ( ( A ` k ) x. k ) = N ) ) $=
        ( wcel cn cn0 cfv cmul co csu wceq w3a wa c1 simpl ffvelrnd cc0 wf ccnv
        cima cfn cv eulerpartleme cdm cnvimass syl5sseq sselda nnnn0d nn0mulcld
        fdm nn0cnd cdif wn wo simpr eldifad wi eldifbd wfn wb ffn elpreima 3syl
        mtbid imnan sylibr mpd elnn0 sylib orel1 sylc oveq1d nncnd mul02d eqtrd
        cuz wss eqimssi sumss eqcomd adantr eqeq1d pm5.32i df-3an 3bitr4i bitri
        nnuz a1i ) ABGHIAUAZAUBHUCZUDGZHDUEZAJZWOKLZDMZENZOZWLWNWMWQDMZENZOZABC
        DEFUFWLWNPZWSPXDXBPWTXCXDWSXBXDWRXAEWLWRXANWNWLXAWRWLWMHWQDQWLAUGWMHAHU
        HHIAUMUIZWLWOWMGZPZWQXGWPWOXGHIWOAWLXFRWLWMHWOXEUJZSXGWOXHUKULUNWLWOHWM
        UOGZPZWQTWOKLTXJWPTWOKXJWPHGZUPZXKWPTNZUQZXMXJWOHGZXLXJWOHWMWLXIURZUSZX
        JXOXKPZUPXOXLUTXJXFXRXJWOHWMXPVAXJWLAHVBXFXRVCWLXIRZHIAVDHWOHAVEVFVGXOX
        KVHVIVJXJWPIGXNXJHIWOAXSXQSWPVKVLXKXMVMVNVOXJWOXJWOXQVPVQVRHQVSJZVTWLHX
        TWJWAWKWBWCWDWEWFWLWNWSWGWLWNXBWGWHWI $.
    $}

    $( Define odd partitions ` O ` , in which only odd numbers appear, and
       distinct partitions ` D ` , in which numbers appear at most once. $)
    eulerpart.o $e |- O = { g e. P | A. n e. ( `' g " NN ) -. 2 || n } $.
    eulerpart.d $e |- D = { g e. P | A. n e. NN ( g ` n ) <_ 1 } $.

    ${
      $d g n A $.  $d g P $.
      $( Lemma for ~ eulerpart : ` O ` is the set of odd partitions of ` N ` .
         (Contributed by Thierry Arnoux, 10-Aug-2017.) $)
      eulerpartlemo $p |- ( A e. O <->
        ( A e. P /\ A. n e. ( `' A " NN ) -. 2 || n ) ) $=
        ( c2 cv cdvds wbr ccnv cn cima wral wceq cnveq imaeq1d raleqdv elrab2
        wn ) MGNOPUFZGENZQZRSZTUGGAQZRSZTEACIUHAUAZUGGUJULUMUIUKRUHAUBUCUDKUE
        $.
    $}

    ${
      $d f g k n A $.  $d f N $.  $d g n P $.
      $( Lemma for ~ eulerpart : ` D ` is the set of distinct part. of ` N ` .
         (Contributed by Thierry Arnoux, 11-Aug-2017.) $)
      eulerpartlemd $p |- ( A e. D <-> ( A e. P /\ ( A " NN ) C_ { 0 , 1 } ) )
        $=
        ( wcel c1 cn wa cc0 wceq co cn0 cv cfv cle wbr wral cima cpr wss breq1d
        fveq1 ralbidv elrab2 cfz c2 cfzo cz fzoval ax-mp fzo0to2pr 2m1e1 oveq2i
        cmin 2z 3eqtr3i eleq2i wb ccnv cfn cmul eulerpartleme simp1bi ffvelrnda
        wf csu 1nn0 w3a elfz2nn0 df-3an bitri baib sylancl syl5rbb ralbidva cdm
        wfun ffun syl fdm eqimss2 3syl funimass4 syl2anc bitr4d pm5.32i ) ABMAC
        MZGUAZAUBZNUCUDZGOUEZPWOAOUFQNUGZUHZPWPEUAZUBZNUCUDZGOUEWSEACBXBARZXDWR
        GOXEXCWQNUCWPXBAUJUIUKLULWOWSXAWOWSWQWTMZGOUEZXAWOWRXFGOXFWQQNUMSZMZWOW
        POMPZWRWTXHWQQUNUOSZQUNNVBSZUMSZWTXHUNUPMXKXMRVCQUNUQURUSXLNQUMUTVAVDVE
        XJWQTMZNTMZXIWRVFWOOTWPAWOOTAVMZAVGOUFVHMOFUAZAUBXQVISFVNHRACDFHJVJVKZV
        LVOXIXNXOPZWRXIXNXOWRVPXSWRPWQNVQXNXOWRVRVSVTWAWBWCWOAWEZOAWDZUHZXAXGVF
        WOXPXTXROTAWFWGWOXPYAORYBXROTAWHOYAWIWJGOWTAWKWLWMWNVS $.
    $}

    ${
      $( $d a k l m n o x y z $.  $d a F $.  $d a x y J $. $)
      $( We will use the set of odd positive integers ` J ` . $)
      eulerpart.j $e |- J = { z e. NN | -. 2 || z } $.
      eulerpart.f $e |- F = ( x e. J , y e. NN0 |-> ( ( 2 ^ y ) x. x ) ) $.
      eulerpart.h $e |- H = { r e. ( ( ~P NN0 i^i Fin ) ^m J ) |
        ( r supp (/) ) e. Fin } $.

      $( ` ( bits o. ( A |`` J ) ) ` results in a function from ` J ` , the odd
         positive integers, to the subset of ` NN0 ` . Applying ` M ` helps to
         convert this back to a relation. $)
      eulerpart.m $e |- M = ( r e. H |->
        { <. x , y >. | ( x e. J /\ y e. ( r ` x ) ) } ) $.

      ${
        $d r x y J $.  $d r H $.
        $( Lemma for ~ eulerpart .  (Contributed by Thierry Arnoux,
           27-Aug-2017.)  (Revised by Thierry Arnoux, 1-Sep-2019.) $)
        eulerpartlem1 $p |- M : H -1-1-onto-> ( ~P ( J X. NN0 ) i^i Fin ) $=
          ( cn0 cxp cpw cfn cin wf1o cmap co cv wcel cfv wa copab cmpt c2 cdvds
          cres wbr wn cn nnex rabex2 nn0ex eqid fpwrelmapffs wceq wb csupp crab
          wss c0 ssrab2 cvv inss1 mapss mp2an sstri eqsstri resmpt ax-mp eqtr4i
          pwex f1oeq1 mpbir ) KLUDUEUFUGUHZMUIZKWHPUDUFZLUJUKZAULZLUMBULWLPULZU
          NUMUOABUPZUQZKUTZUIZABLUDKPWOURCULUSVAVBCVCLTVDVEVFWOVGUBVHMWPVIWIWQV
          JMPKWNUQZWPUCKWKVMWPWRVIKWMVNVKUKUGUMZPWJUGUHZLUJUKZVLZWKUBXBXAWKWSPX
          AVOWJVPUMWTWJVMXAWKVMUDVFWEWJUGVQWTWJLVPVRVSVTWAPWKKWNWBWCWDKWHMWPWFW
          CWG $.
      $}

      ${
        $d f g k x y $.  $d f g x N $.  $d g P $.
        $( Lemma for ~ eulerpart .  The set of all partitions of ` N ` is
           finite.  (Contributed by Mario Carneiro, 26-Jan-2015.) $)
        eulerpartlemb $p |- P e. Fin $=
          ( cn cv c1 cfz co wcel cc0 csn cif cixp cfn wtru fzfid wa fzfi keepel
          wss snfi a1i cdif wn wceq eldifn adantl iffalse eqimss 3syl ixpfi2 wf
          trud cn0 ccnv cima cfv csu w3a eulerpartleme wfn ffn 3ad2ant1 cle wbr
          cmul wral ffvelrn 3ad2antl1 nn0red cr nnre remulcld cnvimass syl5sseq
          cdm fdm adantr sselda adantlr syldan nnnn0d nn0mulcld cvv simpl csupp
          nn0cnd nnex frnnn0supp mpan syl 0nn0 suppssr oveq1d eldifi nncn mul02
          eqtrd cuz nnuz eqimssi sumss simpr fsumnn0cl eqeltrrd eleq1 syl5ibcom
          cc nn0ge0d nnge1 ralrimiva breqtrd wb syl6eleq elfz5 syl2anc eleqtrrd
          expr wi syld 3impia lemulge11d fveq2 id oveq12d simprr fsumge1 eqeq1d
          eldif rspccva sylan sylan2br fsumge0 adantrr eqbrtrd pm2.61d 3adantl3
          simpl3 letrd cz nn0uz nn0zd mpbird iftrue nnnn0 syl21anc letr syl3anc
          lemulge12 mpan2d syl5 sylibrd con3d wo elnn0 ord imp fvex elsn sylibr
          sylib pm2.61dan vex elixp sylanbrc sylbi ssriv ssfi mp2an ) AUDAUEZUF
          NUGUHZUIZUJNUGUHZUJUKZULZUMZUNUIZEUWPUTEUNUIUWQUOAUDUWOUWKUJUOUFNUPUW
          OUNUIUOUWJUDUIZUQUWLUWMUWNUNUJNURUJVAUSVBUOUWJUDUWKVCUIZUQUWLVDZUWOUW
          NVEZUWOUWNUTUWSUWTUOUWJUDUWKVFVGUWLUWMUWNVHZUWOUWNVIVJVKVMGEUWPGUEZEU
          IUDVNUXCVLZUXCVOUDVPZUNUIZUDHUEZUXCVQZUXGWFUHZHVRZNVEZVSZUXCUWPUIZUXC
          EFHNQVTUXLUXCUDWAZUWJUXCVQZUWOUIZAUDWGUXMUXDUXFUXNUXKUDVNUXCWBWCUXLUX
          PAUDUXLUWRUQZUWLUXPUXQUWLUQUXOUWMUWOUXQUXOUWMUIZUWLUXQUXRUXONWDWEZUXQ
          UXOUXOUWJWFUHZNUXQUXOUXDUXFUWRUXOVNUIZUXKUDVNUWJUXCWHWIZWJZUXQUXOUWJU
          YCUWRUWJWKUIZUXLUWJWLVGZWMZUXQNUXLNVNUIZUWRUXDUXFUXKUYGUXDUXFUQZUXJVN
          UIUXKUYGUYHUXEUXIHVRZUXJVNUYHUXEUDUXIHUFUYHUXCWPZUXEUDUXCUDWNUXDUYJUD
          VEUXFUDVNUXCWQWRWOZUYHUXGUXEUIZUQZUXIUYMUXHUXGUYHUYLUXGUDUIZUXHVNUIZU
          YHUXEUDUXGUYKWSZUXDUYNUYOUXFUDVNUXGUXCWHWTXAUYMUXGUYPXBXCZXGUYHUXGUDU
          XEVCZUIZUQZUXIUJUXGWFUHZUJUYTUXHUJUXGWFUYHUDVNVNUXCXDUXEUXGUJUXDUXFXE
          UYHUXCUJXFUHZUXEVEZVUBUXEUTUXDVUCUXFUDXDUIZUXDVUCXHUXCUDXDXIXJWRVUBUX
          EVIXKVUDUYHXHVBUJVNUIUYHXLVBXMXNUYTUYNUXGYHUIVUAUJVEUYSUYNUYHUXGUDUXE
          XOVGUXGXPUXGXQVJXRZUDUFXSVQZUTUYHUDVUFXTYAVBYBZUYHUXEUXIHUXDUXFYCZUYQ
          YDYEUXJNVNYFYGUUAWRZWJZUXQUXOUWJUYCUYEUXQUXOUYBYIUWRUFUWJWDWEUXLUWJYJ
          VGUUBUXQUXTUXJNWDUXDUXFUWRUXTUXJWDWEUXKUYHUWRUQZUXTUYIUXJWDVUKUWJUXEU
          IZUXTUYIWDWEZUYHUWRVULVUMUYHUWRVULUQZUQUXEUXIUXTHUWJUYHUXFVUNVUHWRUYH
          UYLUXIWKUIVUNUYMUXIUYQWJWTUYHUYLUJUXIWDWEVUNUYMUXIUYQYIWTUXGUWJVEZUXH
          UXOUXGUWJWFUXGUWJUXCUUCVUOUUDUUEZUYHUWRVULUUFUUGYRUYHUWRVULVDZVUMUYHU
          WRVUQUQZUQUXTUJUYIWDVURUYHUWJUYRUIZUXTUJVEZUWJUDUXEUUIUYHUXIUJVEZHUYR
          WGVUSVUTUYHVVAHUYRVUEYKVVAVUTHUWJUYRVUOUXIUXTUJVUPUUHUUJUUKUULUYHUWRU
          JUYIWDWEVUQVUKUXEUXIHUYHUXFUWRVUHWRVUKUYLUQZUXIUYHUYLUXIVNUIUWRUYQWTZ
          WJVVBUXIVVCYIUUMUUNUUOYRUUPUYHUYIUXJVEUWRVUGWRYLUUQUXDUXFUXKUWRUURYLZ
          UUSUXQUXOUJXSVQZUINUUTUIZUXRUXSYMUXQUXOVNVVEUYBUVAYNUXQNVUIUVBZUXOUJN
          YOYPUVCWRUWLUWOUWMVEUXQUWLUWMUWNUVDVGYQUXQUWTUQZUXOUWNUWOVVHUXOUJVEZU
          XOUWNUIUXQUWTVVIUXQUWTUXOUDUIZVDVVIUXQVVJUWLUXQVVJUWJNWDWEZUWLVVJUFUX
          OWDWEZUXQVVKUXOYJUXQVVLUWJUXTWDWEZVVKUXQUYDUXOWKUIZUJUWJWDWEZVVLVVMYS
          UYEUYCUXQUWJUWRUWJVNUIUXLUWJUVEVGYIUYDVVNUQVVOVVLVVMUWJUXOUVIYRUVFUXQ
          VVMUXTNWDWEZVVKVVDUXQUYDUXTWKUINWKUIVVMVVPUQVVKYSUYEUYFVUJUWJUXTNUVGU
          VHUVJYTUVKUXQUWJVUFUIVVFUWLVVKYMUXQUWJUDVUFUXLUWRYCXTYNVVGUWJUFNYOYPU
          VLUVMUXQVVJVVIUXQUYAVVJVVIUVNUYBUXOUVOUWAUVPYTUVQUXOUJUWJUXCUVRUVSUVT
          UWTUXAUXQUXBVGYQUWBYKAUDUWOUXCGUWCUWDUWEUWFUWGUWPEUWHUWI $.
      $}

      $( Define the set of finitely supported functions. $)
      eulerpart.r $e |- R = { f | ( `' f " NN ) e. Fin } $.

      $( Define the set of functions into ` NN0 ` with odd-valued support. $)
      eulerpart.t $e |- T = { f e. ( NN0 ^m NN ) | ( `' f " NN ) C_ J } $.

      ${
        $d f A $.  $d f J $.
        $( Lemma for ~ eulerpart .  (Contributed by Thierry Arnoux,
           19-Sep-2017.) $)
        eulerpartlemt0 $p |- ( A e. ( T i^i R ) <-> ( A e. ( NN0 ^m NN ) /\
          ( `' A " NN ) e. Fin /\ ( `' A " NN ) C_ J ) ) $=
          ( wcel wa cn0 cn cmap co ccnv cima wss cvv cfn cin wceq cnveq imaeq1d
          w3a cv sseq1d elrab2 eleq1d elab4g anbi12i elin pm4.71i anbi1i 3anass
          elex an42 3bitr4i ) DHUIZDGUIZUJDUKULUMUNZUIZDUOZULUPZOUQZUJZDURUIZWC
          USUIZUJZUJZDHGUTUIWAWGWDVDZVRWEVSWHIVEZUOZULUPZOUQWDIDVTHWKDVAZWMWCOW
          NWLWBULWKDVBVCZVFUHVGWMUSUIWGIDGWNWMWCUSWOVHUGVIVJDHGVKWAWGWDUJZUJWAW
          FUJZWPUJWJWIWAWQWPWAWFDVTVOVLVMWAWGWDVNWAWDWFWGVPVQVQ $.
      $}

      ${
        $d t z $.  $d f g k n t A $.  $d f J $.  $d f N $.  $d g P $.
        $( Lemma for ~ eulerpart :  Odd partitions are zero for even numbers.
           (Contributed by Thierry Arnoux, 9-Sep-2017.) $)
        eulerpartlemf $p |- ( ( A e. ( T i^i R ) /\ t e. ( NN \ J ) )
          -> ( A ` t ) = 0 ) $=
          ( cin wcel cv cn cdif wa cfv wn cc0 wceq wo c2 cdvds wbr eldif notbid
          breq2 elrab2 simplbi2 con1d imp adantl adantr ccnv cima simpll eldifi
          sylbi wb cn0 wf wfn cmap co cfn wss eulerpartlemt0 simp1bi elmapi syl
          ffn elpreima 3syl baibd sylan2 biimpar simp3bi sselda simprbi syl2anc
          pm2.65da ffvelrnd elnn0 sylib orel1 sylc ) EIHUJUKZDULZUMPUNUKZUOZXGE
          UPZUMUKZUQXKXJURUSZUTZXLXIXKVAXGVBVCZXIXNXKXHXNXFXHXGUMUKZXGPUKZUQZUO
          XNXGUMPVDXOXQXNXOXNXPXPXOXNUQZVACULZVBVCZUQXRCXGUMPXSXGUSXTXNXSXGVAVB
          VFVEUDVGZVHVIVJVQVKVLXIXKUOXFXGEVMUMVNZUKZXRXFXHXKVOXIYCXKXHXFXOYCXKV
          RXGUMPVPZXFYCXOXKXFUMVSEVTZEUMWAYCXOXKUOVRXFEVSUMWBWCUKZYEXFYFYBWDUKZ
          YBPWEZABCEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIWFZWGEVSUMWHWIZUMVSEWJUMXG
          UMEWKWLWMWNWOXFYCUOXPXRXFYBPXGXFYFYGYHYIWPWQXPXOXRYAWRWIWSWTXIXJVSUKX
          MXIUMVSXGEXFYEXHYJVLXHXOXFYDVKXAXJXBXCXKXLXDXE $.
      $}

      ${
        $d f m o J $.  $d m o R $.  $d m o T $.
        $( Lemma for ~ eulerpart .  (Contributed by Thierry Arnoux,
           19-Sep-2017.) $)
        eulerpartlemt $p |- ( ( NN0 ^m J ) i^i R ) =
          ran ( m e. ( T i^i R ) |-> ( m |` J ) ) $=
          ( vo cv cn0 cmap co wcel cab cres wceq cin wrex cmpt crn cdif cc0 csn
          wa cn cxp cun ccnv cima cfn wss elmapi adantr c0ex fconst a1i disjdif
          wf c0 fun syl21anc c2 cdvds wbr wn crab eqsstri undif mpbi 0nn0 snssi
          ssrab2 ax-mp ssequn2 feq23i sylib nn0ex elmap sylibr imaeq1i imaundir
          nnex cnvun eqtri cnveq imaeq1d eleq1d elab2 biimpi adantl cnvxp dmeqi
          vex cdm wne 2nn cz 2z iddvds breq2 notbid elrab2 simprbi mt2 mpbir2an
          eldif ne0i dmxp mp2b ineq1i incom 0nnn sylancl syl eulerpartlemt0 wfn
          mpbir 3syl eqeltrd disjsn 3eqtr2i imadisj 0fin unfi syl5eqel cnvimass
          eqeltri fdm syl5sseq 0ss unssd syl5eqss syl3anbrc resundir fnresdm wb
          ffn fnresdisj uneq12d un0 syl6eq syl5req reseq1 eqeq2d rspcev syl2anc
          fnconstg simpr simpl simp1d fssres rabex2 wfun respreima simp2d resex
          w3a ffun infi jca rexlimiva impbii abbii df-in eqid rnmpt 3eqtr4i ) U
          IUJZUKOULUMZUNZUWIFUNZVEZUIUOUWIKUJZOUPZUQZKGFURZUSZUIUOUWJFURKUWQUWO
          UTZVAUWMUWRUIUWMUWRUWMUWIVFOVBZVCVDZVGZVHZUWQUNZUWIUXCOUPZUQZUWRUWMUX
          CUKVFULUMZUNZUXCVIZVFVJZVKUNUXJOVLUXDUWMVFUKUXCVSZUXHUWMOUWTVHZUKUXAV
          HZUXCVSZUXKUWMOUKUWIVSZUWTUXAUXBVSZOUWTURZVTUQZUXNUWKUXOUWLUWIUKOVMVN
          ZUXPUWMUWTVCVOVPVQUXRUWMOVFVRZVQOUWTUKUXAUWIUXBWAWBUXLUXMVFUKUXCOVFVL
          ZUXLVFUQOWCCUJZWDWEZWFZCVFWGVFUCUYDCVFWMWHZOVFWIWJUXAUKVLZUXMUKUQVCUK
          UNZUYFWKVCUKWLWNUXAUKWOWJWPWQUKVFUXCWRXCWSWTUWMUXJUWIVIZVFVJZUXBVIZVF
          VJZVHZVKUXJUYHUYJVHZVFVJUYLUXIUYMVFUWIUXBXDXAUYHUYJVFXBXEZUWMUYIVKUNZ
          UYKVKUNUYLVKUNUWLUYOUWKUWLUYOHUJZVIZVFVJZVKUNZUYOHUWIFUIXNUYPUWIUQZUY
          RUYIVKUYTUYQUYHVFUYPUWIXFXGXHUGXIXJXKUYKVTVKUYKVTUQUYJXOZVFURZVTUQVUB
          UXAVFURVFUXAURZVTVUAUXAVFVUAUXAUWTVGZXOZUXAUYJVUDUWTUXAXLXMWCUWTUNZUW
          TVTXPVUEUXAUQVUFWCVFUNZWCOUNZWFXQVUHWCWCWDWEZWCXRUNVUIXSWCXTWNVUHVUGV
          UIWFZUYDVUJCWCVFOUYBWCUQUYCVUIUYBWCWCWDYAYBUCYCYDYEWCVFOYGYFUWTWCYHUX
          AUWTYIYJXEYKVFUXAYLVUCVTUQVCVFUNWFYMVFVCUUAYRUUBUYJVFUUCYRZUUDUUHUYIU
          YKUUEYNUUFUWMUXJUYLOUYNUWMUYIUYKOUWMUWIXOZUYIOUWIVFUUGUWMUXOVULOUQUXS
          OUKUWIUUIYOUUJUYKOVLUWMUYKVTOVUKOUUKWHVQUULUUMABCUXCDEFGHIJLMNOPQRSTU
          AUBUCUDUEUFUGUHYPUUNUWMUXEUWIOUPZUXBOUPZVHZUWIUWIUXBOUUOUWMVUOUWIVTVH
          ZUWIUWMUXOUWIOYQZVUOVUPUQUXSOUKUWIUURVUQVUMUWIVUNVTOUWIUUPVUNVTUQZVUQ
          UWTOURZVTUQZVURVUSUXQVTUWTOYLUXTXEUYGUXBUWTYQVUTVURUUQWKUWTVCUKUVHUWT
          OUXBUUSYJWJVQUUTYSUWIUVAUVBUVCUWPUXFKUXCUWQUWNUXCUQUWOUXEUWIUWNUXCOUV
          DUVEUVFUVGUWPUWMKUWQUWNUWQUNZUWPVEZUWKUWLVVBUWIUWOUWJVVAUWPUVIZVVBOUK
          UWOVSZUWOUWJUNVVBVFUKUWNVSZUYAVVDVVBUWNUXGUNZVVEVVBVVFUWNVIVFVJZVKUNZ
          VVGOVLZVVBVVAVVFVVHVVIUVRVVAUWPUVJABCUWNDEFGHIJLMNOPQRSTUAUBUCUDUEUFU
          GUHYPWQZUVKUKVFUWNWRXCWSWQZUYEVFUKOUWNUVLYNUKOUWOWRUYDCVFOUCXCUVMWSWT
          YTVVBUWIUWOFVVCVVBUWOVIZVFVJZVKUNZUWOFUNVVBVVMVVGOURZVKVVBVVEUWNUVNVV
          MVVOUQVVKVFUKUWNUVSVFOUWNUVOYSVVBVVHVVOVKUNVVBVVFVVHVVIVVJUVPVVGOUVTY
          OYTUYSVVNHUWOFUWNOKXNUVQUYPUWOUQZUYRVVMVKVVPUYQVVLVFUYPUWOXFXGXHUGXIW
          TYTUWAUWBUWCUWDUIUWJFUWEKUIUWQUWOUWSUWSUWFUWGUWH $.
      $}

      $( Define the function ` G ` which we will prove to be a bijection
         between ` O ` and ` D ` . $)
      eulerpart.g $e |- G = ( o e. ( T i^i R ) |->
                ( ( _Ind ` NN ) ` ( F " ( M ` ( bits o. ( o |` J ) ) ) ) ) ) $.

      ${
        $d a f g k m n o x y z $.  $d a b o F $.  $d a b f m o r x y J $.
        $d a b o r M $.  $d f g x N $.  $d g P $.  $d f m o R $.  $d o r H $.
        $d f m o T $.
        $( Lemma for ~ eulerpart :  The ` G ` function is a bijection.
           (Contributed by Thierry Arnoux, 27-Aug-2017.)  (Revised by Thierry
           Arnoux, 1-Sep-2019.) $)
        eulerpartgbij $p |-
                   G : ( T i^i R ) -1-1-onto-> ( ( { 0 , 1 } ^m NN ) i^i R ) $=
          ( va vm vb cin cc0 c1 cpr cn cmap co wf1o cind cfv cres cbits cv ccom
          cfn cima cmpt cpw ccnv csn wcel crab cvv nnex indf1ofs ax-mp wb incom
          wceq ineq2i dfrab2 crn wss elmapfun wf elmapi frn syl wa c0 cun mpbir
          wfun wn mpbi eqtr2i 3eqtri eleq1d rabbiia f1oeq3 cn0 csupp a1i c2 wbr
          wtru nn0ex 0nn0 cfsupp vex funisfsupp mp3an23 3eqtr4ri elinel1 f1oeq1
          mp1i trud eqtri eqid mp2an wrex wfn resex bitri mp2b f1oco f1of eqidd
          cz ffvelrnda eqeltrrd f1ofn dffn5 fveq2 fmptco fvmpt2 sylancl 3eqtr4i
          cab fimacnvinrn2 df-pr indi 0nnn disjsn 1nn 1ex snss dfss uneq12i un0
          uncom imaeq2i syl2anc cxp oddpwdc f1opwfi eulerpartlem1 bitsf1o cdvds
          syl6eq rabex2 pwex inex1 fvres frnnn0supp sylancr 0ex bicomd fcobijfs
          0bits 3syl mpteq2ia eqcomi mpbird wf1 w3a ssrab2 eqsstri 3pm3.2i cdif
          cores cnveq dfn2 imaeq12d sseq1d cbvrabv resf1o f1of1 f1ores fvelimab
          fnmpti elrnmpti eulerpartlemt eleq2i fvtresfn eqeq1d rexbiia 3bitr4ri
          inss1 eqcom syl6bb eqriv resmpt wral biimpri fmptcof eqcomd f1oeq123d
          fmpt coeq2 mpbiri bitsf zex fex coex fvmpt2d fvex imaeq2 cexp mpt2exg
          simpr cmul imaexg indf1o reseq1i resmpt3 eqtr4i ) GFUNZUOUPUQZURUSUTZ
[encoded data, 4240 characters]
          SWO $.
      $}

      ${
        $d o A $.  $d o F $.  $d o J $.  $d o M $.  $d o R $.  $d o T $.
        $( Lemma for ~ eulerpart : value of the function ` G ` .  (Contributed
           by Thierry Arnoux, 13-Nov-2017.) $)
        eulerpartlemgv $p |- ( A e. ( T i^i R ) -> ( G ` A ) =
          ( ( _Ind ` NN ) ` ( F " ( M ` ( bits o. ( A |` J ) ) ) ) ) ) $=
          ( cbits cres ccom cfv cima cind cin wceq reseq1 coeq2d fveq2d imaeq2d
          cv cn fvex fvmpt ) MDNULMVDZQUMZUNZRUOZUPZVEUQUOZUONULDQUMZUNZRUOZUPZ
          VMUOHGUROVHDUSZVLVQVMVRVKVPNVRVJVORVRVIVNULVHDQUTVAVBVCVBUKVQVMVFVG
          $.
      $}

      ${
        $d f h k n z $.  $d f n J $.  $d f N $.  $d g h n P $.  $d h O $.
        $d h R $.  $d h T $.
        $( Lemma for ~ eulerpart .  (Contributed by Thierry Arnoux,
           13-Nov-2017.) $)
        eulerpartlemr $p |- O = ( ( T i^i R ) i^i P ) $=
          ( vh cin cv wcel wa elin anbi1i c2 cdvds wbr wn ccnv cn eulerpartlemo
          cima wral cn0 cmap wss cfn cfv cmul csu wceq weq cnveq imaeq1d eleq1d
          co fveq1 oveq1d sumeq2sdv eqeq1d anbi12d elrab2 cdm cnvimass wf nn0ex
          simplbi nnex elmap fdm sylbi syl5sseq syl ralrimiva biantrurd simprbi
          sselda simpld biantrud 3bitrd dfss3 breq2 notbid ralbii r19.26 3bitri
          anbi2i syl6bbr sseq1d vex elab2 anbi12i pm5.32i ancom 3bitr4ri eqriv
          ) UKSGFULZEULZUKUMZXTUNZYBEUNZUOYBGUNZYBFUNZUOZYDUOZYBYAUNYBSUNZYCYGY
          DYBGFUPUQYBXTEUPYIYDURKUMZUSUTZVAZKYBVBZVCVEZVFZUOYDYGUOYHYBDEHIJKRSU
          AUBUCVDYDYOYGYDYOYBVGVCVHVSZUNZYNPVIZUOZYNVJUNZUOZYGYDYOYQYJVCUNZKYNV
          FZYOUOZUOZYTUOZUUAYDYOUUDUUEUUFYDUUCYOYDUUBKYNYDYNVCYJYDYQYNVCVIYDYQY
          TVCJUMZYBVKZUUGVLVSZJVMZRVNZUOZHUMZVBZVCVEZVJUNZVCUUGUUMVKZUUGVLVSZJV
          MZRVNZUOUULHYBYPEHUKVOZUUPYTUUTUUKUVAUUOYNVJUVAUUNYMVCUUMYBVPVQZVRZUV
          AUUSUUJRUVAVCUURUUIJUVAUUQUUHUUGVLUUGUUMYBVTWAWBWCWDUAWEZWJZYQYBWFZYN
          VCYBVCWGYQVCVGYBWHUVFVCVNVGVCYBWIWKWLVCVGYBWMWNWOWPWTWQWRYDYQUUDUVEWR
          YDYTUUEYDYTUUKYDYQUULUVDWSXAXBXCYSUUEYTYRUUDYQYRYJPUNZKYNVFUUBYLUOZKY
          NVFUUDKYNPXDUVGUVHKYNURCUMZUSUTZVAYLCYJVCPCKVOUVJYKUVIYJURUSXEXFUDWEX
          GUUBYLKYNXHXIXJUQXKYEYSYFYTUUOPVIYRHYBYPGUVAUUOYNPUVBXLUIWEUUPYTHYBFU
          KXMUVCUHXNXOXKXPYDYGXQXIXRXS $.
      $}

      ${
        $( ~ eulerpartlemmf can probably be shortened with ` supp ` theorems $)
        $d f k n t x y z $.  $d f o r w A $.  $d w B $.  $d o w F $.  $d r H $.
        $d f n o r w x y J $.  $d o w M $.  $d f N $.  $d g n P $.  $d o R $.
        $d o T $.
        $( Lemma for ~ eulerpart .  (Contributed by Thierry Arnoux,
           30-Aug-2018.)  (Revised by Thierry Arnoux, 1-Sep-2019.) $)
        eulerpartlemmf $p |- ( A e. ( T i^i R ) -> ( bits o. ( A |` J ) ) e. H
          ) $=
          ( cin wcel cbits cres ccom cn0 cpw cfn cmap co ccnv cvv csn cdif cima
          c0 wf wf1o bitsf1o f1of ax-mp cn wss w3a eulerpartlemt0 biimpi simp1d
          nn0ex nnex elmap sylib c2 cv cdvds wbr wn crab ssrab2 eqsstri sylancl
          fssres fco2 sylancr pwex inex1 ssexi sylibr cc0 csupp wceq suppimacnv
          simp2d 0nn0 mpan2 wi frnsuppeq mp2an syl eqtr3d eleq1d imaeq2i eleq1i
          dfn2 syl6bbr mpbird resss cnvss imass1 mp2b cnvco imaeq1i imaco eqtri
          ssfi wfun ffun funres 3syl ssv ssdif cz bitsf difpreima wf1 bitsf1 0z
          snssi eqtr3i wa f1imacnv cfv wfn 0bits sneqi difeq2i 3sstr4i sspreima
          ffn fnsnfv syl5eqss syl2anc oveq1 elrab2 wb zex fex resexg 0ex anbi2d
          coexg syl5bb mpbir2and ) DHGULZUMZUNDQUOZUPZPUMZUVGUQURZUSULZQUTVAZUM
          ZUVGVBZVCVGVDZVEZVFZUSUMZUVEQUVJUVGVHZUVLUVEUQUVJUNUQUOZVHZQUQUVFVHZU
          VRUQUVJUVSVIUVTVJUQUVJUVSVKVLUVEVMUQDVHZQVMVNUWAUVEDUQVMUTVAUMZUWBUVE
          UWCDVBZVMVFZUSUMZUWEQVNZUVEUWCUWFUWGVOABCDEFGHIJKLNPQRSTUAUBUCUDUEUFU
          GUHUIUJVPVQZVRUQVMDVSVTWAWBZQWCCWDWEWFWGZCVMWHVMUEUWJCVMWIWJZVMUQQDWL
          WKQUQUVJUNUVFWMWNUVJQUVGUVIUSUQVSWOWPQVMVTUWKWQWAWRUVEUVFVBZVCWSVDZVE
          ZVFZUSUMZUVPUWOVNUVQUVEUWDUWNVFZUSUMZUWOUWQVNZUWPUVEUWRUWFUVEUWCUWFUW
          GUWHXCUVEUWRUWDUQUWMVEZVFZUSUMUWFUVEUWQUXAUSUVEDWSWTVAZUWQUXAUVEWSUQU
          MZUXBUWQXAXDDUVDUQWSXBXEUVEUWBUXBUXAXAZUWIVMVCUMUXCUWBUXDXFVTXDUQDVMV
          CUQWSXGXHXIXJXKUWEUXAUSVMUWTUWDXNXLXMXOXPUVFDVNUWLUWDVNUWSDQXQUVFDXRU
          WLUWDUWNXSXTUWQUWOYEWKUVEUVPUWLUNVBZUVOVFZVFZUWOUVPUWLUXEUPZUVOVFUXGU
          VMUXHUVOUNUVFYAYBUWLUXEUVOYCYDUVEUVFYFZUXFUWNVNUXGUWOVNUVEUWBDYFUXIUW
          IVMUQDYGQDYHYIUXEVCVFZUXEUVNVFZVEZVCUXKVEZUXFUWNUXJVCVNUXLUXMVNUXJYJU
          XJVCUXKYKVLYLUVIUNVHZUNYFUXFUXLXAYMYLUVIUNYGVCUVNUNYNXTUWMUXKVCUXEUNU
          WMVFZVFZUWMUXKYLUVIUNYOUWMYLVNZUXPUWMXAYPWSYLUMZUXQYQWSYLYRVLYLUVIUWM
          UNUUAXHUXOUVNUXEWSUNUUBZVDZUXOUVNUNYLUUCZUXRUXTUXOXAUXNUYAYMYLUVIUNUU
          IVLYQYLWSUNUUJXHUXSVGUUDUUEYSXLYSUUFUUGUXFUWNUVFUUHWKUUKUWOUVPYEUULUV
          HUVLUVGVGWTVAZUSUMZYTZUVEUVLUVQYTZUAWDZVGWTVAZUSUMUYCUAUVGUVKPUYFUVGX
          AUYGUYBUSUYFUVGVGWTUUMXKUGUUNUVEUVGVCUMZUYDUYEUUOUVEUNVCUMZUVFVCUMUYH
          UXNYLVCUMUYIYMUUPYLUVIVCUNUUQXHDQUVDUURUNUVFVCVCUVAWNUYHUYCUVQUVLUYHU
          YBUVPUSUYHVGVCUMUYBUVPXAUUSUVGVCVCVGXBXEXKUUTXIUVBUVC $.

        $d t n w x y A $.  $d n t x y B $.  $d n t x y F $.  $d t w x y J $.
        $d r H $.  $d n t x y M $.  $d n r t w x y R $.  $d n r t w x y T $.
        $( Lemma for ~ eulerpart : value of the function ` G ` evaluated.
           (Contributed by Thierry Arnoux, 10-Aug-2018.) $)
        eulerpartlemgvv $p |- ( ( A e. ( T i^i R ) /\ B e. NN )
          -> ( ( G ` A ) ` B ) = if ( E. t e. NN E. n e. ( bits ` ( A ` t ) )
          ( ( 2 ^ n ) x. t ) = B , 1 , 0 ) ) $=
          ( vw cin wcel cn wa cfv cbits cres ccom cima cind c1 cc0 cif c2 cv co
          cexp cmul wceq wrex adantr cvv wss nnex cn0 wf1o wf f1of simpr wfn wb
          mp2b ffn cfn syl cdvds wbr cop copab a1i eleq2d opabbidv adantl simpl
          wn weq eleq1d fveq2d syl6eq wex wfun sylib 3syl biimpar fvco syl2an2r
          fvres eqtrd syl6bb df-rex bitrd biimpa adantlr fveq2 ex eqeq2 rexbidv
          vex mpbid simplr syl2anc wi eqeq12d imbi12d oveq1d chvarv eqeq1d nfan
          oveq2 nfv c0 wral breq2 notbid elrab2 imp crn imassrn cxp oddpwdc frn
          eulerpartlemgv fveq1d sstri mp3an12i cpw eulerpartlemmf eulerpartlem1
          indfval ax-mp ffvelrni elin1d elpwid sylancr ssrab3 cmpt fveq1 anbi2d
          fvelimab ssexi cab abid2 opabex3 fvmptd eleq12d anbi12d cbvopabv cmap
          fvexi cdm ccnv eulerpartlemt0 simp1bi nn0ex elmap ffun funres sylancl
          fssres pm5.32da elopab ancom anass bitri 2exbii exbii exdistr 3bitr4i
          fdm anbi2i bitr4i bitsss sseli anim2i ad2antlr opelxp c2nd c1st op2nd
          oddpwdcv oveq2i op1st oveq12i sylbir eqtr2d reximdvva ssrexv r19.29an
          mpd mpsyl simp-5l simpllr eleqtrrd opabid syl12anc sseldd opeq1 opeq2
          ad4antr sylan2 rspcev sylan9bb cbvrexdva2 cbvrexv nfre1 0bits nsyl wo
          ffvelrnda elnn0 orcomd orcanai mpdan simp3bi sselda simprbi ralrimiva
          n0i elpreima imbi1d impexp ralbidv2 sylibr r19.21bi sylanbrc adantlrr
          cbvralv syldan simprr r19.29af jca reximdv2 sylan2b r19.29vva impbida
          ifbid 3eqtrd ) EJIUOUPZFUQUPZURZFEQUSZUSZFPUTESVAZVBZTUSZVCZUQVDUSUSZ
[encoded data, 4720 characters]
          QYRUGYSVUIVUJVOVVBWXTWXOVUMZVUNXUCVUOXSVUPYTXQVUQVURVUSXOVUTVVA $.
      $}

      ${
        $d t z $.  $d f g k n t A $.  $d f n t J $.  $d f k n t N $.
        $d n t O $.  $d g k P $.  $d f k n t R $.  $d n t T $.
        eulerpartlemgh.1 $e |- U = U_ t e. ( ( `' A " NN ) i^i J )
                                     ( { t } X. ( bits ` ( A ` t ) ) ) $.
        $( Lemma for ~ eulerpart :  Rewriting the ` U ` set for an odd
           partition Note that interestingly, this proof reuses
           ~ marypha2lem2 .  (Contributed by Thierry Arnoux, 10-Aug-2018.) $)
        eulerpartlemgu $p |- ( A e. ( T i^i R ) -> U = { <. t , n >. |
          ( t e. ( ( `' A " NN ) i^i J ) /\ n e. ( ( bits o. A ) ` t ) ) } ) $=
          ( cin wcel ccnv cn cima cv csn cfv cbits ciun ccom copab marypha2lem2
          cxp wa eqid wfun cdm wceq cn0 wf co cfn eulerpartlemt0 simp1bi elmapi
          cmap wss syl adantr ffun inss1 cnvimass fdm syl5sseq syl5ss sselda wb
          eleq2d mpbird fvco syl2anc xpeq2d iuneq2dv syl5reqr syl5eq ) EIHUOUPZ
          JDEUQURUSZSUOZDUTZVAZXDEVBVCVBZVHZVDZXDXCUPZNUTXDVCEVEZVBZUPVIDNVFZUN
          XAXLDXCXEXKVHZVDZXHDNXCXNXJXNVJVGXADXCXMXGXAXIVIZXKXFXEXOEVKZXDEVLZUP
          ZXKXFVMXOURVNEVOZXPXAXSXIXAEVNURWAVPUPZXSXAXTXBVQUPXBSWBABCEFGHIKLMNP
          RSTUAUBUCUDUEUFUGUHUIUJUKULVRVSEVNURVTWCZWDURVNEWEWCXOXRXDURUPZXAXCUR
          XDXAXCXBURXBSWFXAXQXBUREURWGXAXSXQURVMYAURVNEWHWCZWIWJWKXAXRYBWLXIXAX
          QURXDYCWMWDWNXDVCEWOWPWQWRWSWT $.

        $d t x y z $.  $d f g k m n p t x A $.  $d n p t x F $.
        $d f n t x y J $.  $d f k n t N $.  $d n p t O $.  $d g k t P $.
        $d n p t R $.  $d n p t N $.  $d p U $.  $d p T $.
        $( Lemma for ~ eulerpart :  The ` F ` function is a bijection on the
           ` U ` subsets.  (Contributed by Thierry Arnoux, 15-Aug-2018.) $)
        eulerpartlemgh $p |- ( A e. ( T i^i R ) ->
          ( F |` U ) : U -1-1-onto-> { m e. NN |
          E. t e. NN E. n e. ( bits ` ( A ` t ) ) ( ( 2 ^ n ) x. t ) = m } ) $=
          ( vp cin wcel cima cres wf1o c2 cv cexp cmul wceq cfv cbits wrex crab
          co cn cn0 cxp wf1 wss oddpwdc f1of1 ax-mp ccnv ciun iunss inss2 sseli
          csn snssd bitsss xpss12 sylancl mprgbir eqsstri f1ores mp2an wb simpr
          wa 2nn adantl nnexpcld simplr nnmulcld adantr eqeltrrd exp31 rexlimdv
          a1i rexlimdva pm4.71rd wn c0 rex0 cc0 wo wi wf wfn cfn eulerpartlemt0
          cmap simp1bi elmapi syl ad2antrr ffn elpreima 3syl mtbid imnan sylibr
          mpd fveq2d 0bits syl6eq rexeqdv mtbiri ex con4d impr weq vex ffvelrnd
          elnn0 sylib orel1 sylc cdif eldif eulerpartlemf sylan2br elind simprr
          anassrs jca reximdv2 cdvds wbr ssrab2 sstri ssrexv mp1i impbid bitr3d
          eqeq2 2rexbidv elrab imaeq2i imaiun eqtri eleq2i eliun f1ofn ovelimab
          snssi sylancr oveq1 eqeq2d rexsn syl6bb cop df-ov eqeq1i eqcom bitr3i
          rexbidv opelxpi c2nd c1st oddpwdcv op2nd oveq2i op1st oveq12i syl5bbr
          eqeq1d sylan2 rexbidva bitrd rexbiia 3bitri 3bitr4rd eqrdv f1oeq3
          mpbii ) EIHUQURZJQJUSZQJUTZVAZJVBOVCZVDVKZDVCZVEVKZNVCZVFZOUXJEVGZVHV
          GZVIDVLVIZNVLVJZUXFVAZTVMVNZVLQVOZJUXSVPUXGUXSVLQVAZUXTABCQTUHUIVQZUX
          SVLQVRVSJDEVTVLUSZTUQZUXJWEZUXOVNZWAZUXSUOUYGUXSVPUYFUXSVPZDUYDDUYDUY
          FUXSWBUXJUYDURZUYETVPZUXOVMVPZUYHUYIUXJTUYDTUXJUYCTWCZWDZWFUXNWGZUYET
          UXOVMWHZWIWJWKUXSVLJQWLWMUXDUXEUXQVFUXGUXRWNUXDUPUXEUXQUXDUPVCZVLURZU
          XKUYPVFZOUXOVIZDVLVIZWPZUYSDUYDVIZUYPUXQURZUYPUXEURZUXDUYTVUAVUBUXDUY
          TUYQUXDUYSUYQDVLUXDUXJVLURZWPZUYRUYQOUXOVUFUXHUXOURZUYRUYQVUFVUGWPZUY
          RWPUXKUYPVLVUHUYRWOVUHUXKVLURUYRVUHUXIUXJVUHVBUXHVBVLURVUHWQXFVUGUXHV
          MURZVUFUXOVMUXHUYNWDZWRWSUXDVUEVUGWTXAXBXCXDXEXGXHUXDUYTVUBUXDUYSUYSD
          VLUYDUXDVUEUYSWPZUYIUYSWPUXDVUKWPZUYIUYSVULUYCTUXJUXDVUEUYSUXJUYCURZV
          UFVUMUYSVUFVUMXIZUYSXIZVUFVUNWPZUYSUYROXJVIZUYROXKZVUPUYROUXOXJVUPUXO
          XLVHVGZXJVUPUXNXLVHVUPUXNVLURZXIZVUTUXNXLVFZXMZVVBVUPVUEVVAUXDVUEVUNW
          TZVUPVUEVUTWPZXIVUEVVAXNVUPVUMVVEVUFVUNWOVUPVLVMEXOZEVLXPVUMVVEWNUXDV
          VFVUEVUNUXDEVMVLXSVKURZVVFUXDVVGUYCXQURUYCTVPABCEFGHIKLMOQSTUAUBUCUDU
          EUFUGUHUIUJUKULUMXRXTEVMVLYAYBYCZVLVMEYDVLUXJVLEYEYFYGVUEVUTYHYIYJVUP
          UXNVMURVVCVUPVLVMUXJEVVHVVDUUAUXNUUBUUCVUTVVBUUDUUEYKYLYMYNYOYPYQYRUX
          DVUEUYSUXJTURZVUFVVIUYSVUFVVIXIZVUOVUFVVJWPZUYSVUQVURVVKUYROUXOXJVVKU
          XOVUSXJVVKUXNXLVHUXDVUEVVJVVBVUEVVJWPUXDUXJVLTUUFURVVBUXJVLTUUGABCDEF
          GHIKLMOQSTUAUBUCUDUEUFUGUHUIUJUKULUMUUHUUIUULYKYLYMYNYOYPYQYRUUJUXDVU
          EUYSUUKUUMYPUUNUYDVLVPVUBUYTXNUXDUYDTVLUYLTVBCVCUUOUUPXIZCVLVJVLUHVVL
          CVLUUQWKUURUYSDUYDVLUUSUUTUVAUVBVUCVUAWNUXDUXPUYTNUYPVLNUPYSUXMUYRDOV
          LUXOUXLUYPUXKUVCUVDUVEXFVUDVUBWNUXDVUDUYPDUYDQUYFUSZWAZURUYPVVMURZDUY
          DVIVUBUXEVVNUYPUXEQUYGUSVVNJUYGQUOUVFDQUYDUYFUVGUVHUVIDUYPUYDVVMUVJVV
          OUYSDUYDUYIVVIVVOUYSWNUYMVVIVVOUYPUXJUXHQVKZVFZOUXOVIZUYSVVIVVOUYPAVC
          ZUXHQVKZVFZOUXOVIZAUYEVIZVVRVVIQUXSXPZUYHVVOVWCWNUYAVWDUYBUXSVLQUVKVS
          VVIUYJUYKUYHUXJTUVMUYNUYOWIAOUXSUYEUXOUYPQUVLUVNVWBVVRAUXJDYTZADYSZVW
          AVVQOUXOVWFVVTVVPUYPVVSUXJUXHQUVOUVPUWDUVQUVRVVIVVQUYROUXOVUGVVIVUIVV
          QUYRWNVUJVVQUXJUXHUVSZQVGZUYPVFZVVIVUIWPZUYRVWIVVPUYPVFVVQVVPVWHUYPUX
          JUXHQUVTUWAVVPUYPUWBUWCVWJVWHUXKUYPVWJVWGUXSURZVWHUXKVFUXJUXHTVMUWEVW
          KVWHVBVWGUWFVGZVDVKZVWGUWGVGZVEVKUXKABCQTVWGUHUIUWHVWMUXIVWNUXJVEVWLU
          XHVBVDUXJUXHVWEOYTZUWIUWJUXJUXHVWEVWOUWKUWLYMYBUWNUWMUWOUWPUWQYBUWRUW
          SXFUWTUXAUXEUXQJUXFUXBYBUXC $.
      $}

      ${
        $d f g k n o x y z $.  $d f o r A $.  $d o F $.  $d o r H $.
        $d f n o r x y J $.  $d o r M $.  $d f g x N $.  $d g n P $.
        $d f o R $.  $d f o T $.
        $( Lemma for ~ eulerpart :  Images under ` G ` have finite support.
           (Contributed by Thierry Arnoux, 29-Aug-2018.) $)
        eulerpartlemgf $p |- ( A e. ( T i^i R ) ->
          ( `' ( G ` A ) " NN ) e. Fin ) $=
          ( cin wcel cfv ccnv c1 csn cima cfn cn cbits cres ccom eulerpartlemgv
          wss cind cnveqd imaeq1d cvv wceq nnex crn imassrn cn0 wf1o wf oddpwdc
          cxp f1of frn mp2b sstri indpi1 mp2an syl6eq wfun inss2 eulerpartlemmf
          cpw eulerpartlem1 ax-mp ffvelrni syl sseldi imafi sylancr eqeltrd cc0
          ffun cdif cpr cmap co eulerpartgbij elin simplbi elmapi 3syl ssv dfn2
          ssdif syl5eqss sspreima sylancl csupp fvex 0nn0 suppimacnv wne eqcomi
          0ne1 difprsn1 ffs2 mp3an12 syl5eqr sseqtrd ssfi syl2anc ) DHGULZUMZDO
          UNZUOZUPUQZURZUSUMYLUTURZYNVEYOUSUMYJYNNVADQVBVCZRUNZURZUSYJYNYRUTVFU
          NUNZUOZYMURZYRYJYLYTYMYJYKYSABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJU
          KVDVGVHUTVIUMZYRUTVEUUAYRVJVKYRNVLZUTNYQVMQVNVRZUTNVOZUUDUTNVPZUUCUTV
          EABCNQUEUFVQZUUDUTNVSZUUDUTNVTWAWBYRUTVIWCWDWEYJNWFZYQUSUMYRUSUMUUEUU
          FUUIUUGUUHUUDUTNWSWAYJUUDWIZUSULZUSYQUUJUSWGYJYPPUMYQUUKUMABCDEFGHIJK
          LMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKWHPUUKYPRPUUKRVOPUUKRVPABCEFIJKLNPQRST
          UAUBUCUDUEUFUGUHWJPUUKRVSWKWLWMWNNYQWOWPWQYJYOYLVIWRUQZWTZURZYNYJYKWF
          ZUTUUMVEZYOUUNVEYJUTWRUPXAZYKVPZUUOYJYKUUQUTXBXCZGULZUMZYKUUSUMZUURYI
          UUTDOYIUUTOVOYIUUTOVPABCEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKXDYIUUT
          OVSWKWLUVAUVBYKGUMYKUUSGXEXFYKUUQUTXGXHZUTUUQYKWSWMVNVIVEZUUPVNXIUVDU
          TVNUULWTUUMXJVNVIUULXKXLWKUTUUMYKXMXNYJUUNYKWRXOXCZYNYKVIUMWRVNUMZUVE
          UUNVJDOXPXQYKVIVNWRXRWDYJUURUVEYNVJZUVCUUBUVFUURUVGVKXQUTUUQYMYKVIVNW
          RUUQUULWTZYMWRUPXSUVHYMVJYAWRUPYBWKXTYCYDWMYEYFYNYOYGYH $.
      $}

      $( ` S ` recovers the sum of a partition. $)
      eulerpart.s $e |- S = ( f e. ( ( NN0 ^m NN ) i^i R )
        |-> sum_ k e. NN ( ( f ` k ) x. k ) ) $.

      ${
        $d f g k n o t x y z $.  $d f g k m n o r t w x y A $.  $d f k G $.
        $d n o t w x y F $.  $d o r H $.  $d f n o r t w x y J $.
        $d n o r t x y M $.  $d f g k n t x N $.  $d n r t x y O $.
        $d g k n t P $.  $d f k n o r t x y R $.  $d w x y R $.
        $d f k n o r t w x y T $.
        $( Lemma for ~ eulerpart :  The ` G ` function also preserves partition
           sums.  (Contributed by Thierry Arnoux, 10-Sep-2017.) $)
        eulerpartlemgs2 $p |- ( A e. ( T i^i R )
          -> ( S ` ( G ` A ) ) = ( S ` A ) ) $=
          ( vt vw vm cin wcel cfv ccnv cn cima cv cmul co csu c2 cexp wceq wrex
          cbits c1 cc0 cif csn cxp ciun c2nd c1st cdm cnvimass cpr cmap wf wf1o
          wa eulerpartgbij f1of ax-mp ffvelrni sylib simpld elmapi fdm syl5sseq
          elin 3syl sselda eulerpartlemgvv oveq1d syldan sumeq2dv crab 2rexbidv
          weq eqeq2 elrab simprbi iftrued elrabi nncnd mulid2d eqtrd sumeq2i id
          cres cfn cen wss adantl syl adantr ssfi syl2anc cvv sylancl cn0 inss2
          wral simpr sseldi cc mulcld wn eqtr3d inss1 vex sseli eulerpartlemsv2
          oveq12d wbr eulerpartlemgf 1nn syl6eqel wb wfn ffn elpreima mpbir2and
          ssrdv cnvexg imaexg inex1g snex fvex xpex rgenw iunexg eulerpartlemgh
          ex eqid f1oeng enfii fvres snssd bitsss xpss12 ralrimiva iunss sylibr
          oddpwdcv fsumf1o syl5eq ax-1cn 0cn keepel a1i ssrab2 eldifbd ssdifssd
          cdif wi notbii imnan sylbb2 sylc iffalsed nnsscn syl6ss mul02d fsumss
          eulerpartlemt0 simp1bi sseldd ffvelrnd bitsfi simprr expcld fsummulc1
          anassrs bitsinv1 cop op2ndd oveq2d op1std cnveq imaeq1d eleq1d elab2g
          2cnd mpbid adantrr fsum2d 3eqtr3d sseq1d elrab2 df-ss sumeq1d 3eqtr2d
          fveq2 cbvsumv syl6eqr 0nn0 1nn0 prssi mp2an mpan2 nn0ex elmap biimpri
          fss nnex anim1i 3imtr4i elind 3eqtr4d ) DIGUQZURZDPUSZUTVAVBZLVCZUYSU
          SZVUAVDVEZLVFZDUTZVAVBZVUADUSZVUAVDVEZLVFZUYSHUSZDHUSZUYRVUDVUFUNVCZD
          USZVULVDVEZUNVFZVUIUYRVUDUYTVGMVCZVHVEZVULVDVEZVUAVIZMVUMVKUSZVJUNVAV
          JZVLVMVNZVUAVDVEZLVFZUNVUFRUQZVULVOZVUTVPZVQZVGUOVCZVRUSZVHVEZVVIVSUS
          ZVDVEZUOVFZVUOUYRUYTVUCVVCLUYRVUAUYTURZVUAVAURZVUCVVCVIUYRUYTVAVUAUYR
          UYSVTZUYTVAUYSVAWAUYRUYSVMVLWBZVAWCVEZURZVAVVRUYSWDZVVQVAVIUYRVVTUYSG
          URZUYRUYSVVSGUQZURZVVTVWBWFZUYQVWCDPUYQVWCPWEUYQVWCPWDABCEFGIJKLMNOPQ
          RSTUAUBUCUDUEUFUGUHUIUJUKULWGUYQVWCPWHWIWJZUYSVVSGWPZWKWLZUYSVVRVAWMZ
          VAVVRUYSWNWQWOZWRUYRVVPWFVUBVVBVUAVDABCUNDVUAEFGIJKLMNOPQRSTUAUBUCUDU
          EUFUGUHUIUJUKULWSZWTXAXBUYRVURUPVCZVIZMVUTVJUNVAVJZUPVAXCZVVCLVFZVVNV
          VDUYRVWPVWOVUALVFVVNVWOVVCVUALVUAVWOURZVVCVLVUAVDVEVUAVWQVVBVLVUAVDVW
          QVVAVLVMVWQVVPVVAVWNVVAUPVUAVAUPLXEVWMVUSUNMVAVUTVWLVUAVURXFXDXGZXHZX
          IWTVWQVUAVWQVUAVWNUPVUAVAXJZXKXLXMXNUYRVWOVUAVVHVVMLUOOVVHXPZVVMVUAVV
          MVIXOUYRVWOXQURZVVHVWOXRUUAZVVHXQURUYRUYTXQURVWOUYTXSVXBABCDEFGIJKLMN
          OPQRSTUAUBUCUDUEUFUGUHUIUJUKULUUBZUYRLVWOUYTUYRVWQVVOUYRVWQWFZVVOVVPV
          UBVAURZVWQVVPUYRVWTXTZVXEVUBVLVAVXEVUBVVBVLUYRVWQVVPVUBVVBVIVXGVWKXAV
          XEVVAVLVMVWQVVAUYRVWSXTXIXMUUCUUDUYRVVOVVPVXFWFUUEZVWQUYRVWAUYSVAUUFV
          XHUYRVVTVWAVWHVWIYAVAVVRUYSUUGVAVUAVAUYSUUHWQYBUUIUUTUUJZUYTVWOYCYDUY
          RVVHYEURZVVHVWOVXAWEVXCUYRVVEYEURZVVGYEURZUNVVEYIVXJUYRVUEYEURVUFYEUR
          VXKDUYQUUKVUEVAYEUULVUFRYEUUMWQVXLUNVVEVVFVUTVULUUNVUMVKUUOUUPUUQUNVV
          EVVGYEYEUURYFABCUNDEFGIVVHJKLUPMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULVVHUVA
          UUSZVVHVWOYEVXAUVBYDVVHVWOUVCYDVXMUYRVVIVVHURZWFZVVIVXAUSZVVIOUSZVVMV
          XNVXPVXQVIUYRVVIVVHOUVDXTVXOVVIRYGVPZURVXQVVMVIUYRVVHVXRVVIUYRVVGVXRX
          SZUNVVEYIVVHVXRXSUYRVXSUNVVEUYRVULVVEURZWFZVVFRXSVUTYGXSVXSVYAVULRVYA
          VVERVULVUFRYHUYRVXTYJZYKUVEVUMUVFZVVFRVUTYGUVGYFUVHUNVVEVVGVXRUVIUVJW
          RABCORVVIUFUGUVKYAXMVXEVUAVXGXKUVLUVMUYRVWOUYTVVCLVXIVXEVVBVUAVVBYLUR
          VXEVVAVLVMYLUVNUVOUVPUVQVXEVUAVXEVWOVAVUAVWNUPVAUVRUYRVWQYJYKXKYMUYRV
          UAUYTVWOUWAZURZWFZVVCVMVUAVDVEVMVYFVVBVMVUAVDVYFVVAVLVMVYFVWQYNZVVPVV
          AYNZVYFVUAUYTVWOUYRVYEYJUVSUYRVYDVAVUAUYRUYTVAVWOVWJUVTZWRVYGVVPVVAWF
          ZYNVVPVYHUWBVWQVYJVWRUWCVVPVVAUWDUWEUWFUWGWTVYFVUAUYRVYDYLVUAUYRVYDVA
          YLVYIUWHUWIWRUWJXMVXDUWKYOUYRVVEVUNUNVFZVVNVUOUYRVVEVUTVUQMVFZVULVDVE
          ZUNVFVVEVUTVURMVFZUNVFVYKVVNUYRVVEVYMVYNUNVYAVUTVUQVULMVYAVUMYGURZVUT
          XQURVYAVAYGVULDUYRVAYGDWDZVXTUYRDYGVAWCVEZURZVYPUYRVYRVUFXQURZVUFRXSZ
          ABCDEFGIJKLMOQRSTUAUBUCUDUEUFUGUHUIUJUKUWLUWMZDYGVAWMYAZYBVYAVUFVAVUL
          UYRVUFVAXSVXTUYRDVTZVUFVADVAWAUYRVYPWUCVAVIWUBVAYGDWNYAWOYBVYAVVEVUFV
          ULVUFRYPZVYBYKUWNZUWOZVUMUWPYAZVYAVULWUEXKZUYRVXTVUPVUTURZVUQYLURUYRV
          XTWUIWFWFZVGVUPWUJUXJWUJVUTYGVUPVYCUYRVXTWUIUWQYKUWRZUWTUWSXBUYRVVEVY
          MVUNUNVYAVYOVYMVUNVIWUFVYOVYLVUMVULVDMVUMUXAWTYAXBUYRUOVVEVUTVURVVMUN
          MVVIVULVUPUXBVIZVVKVUQVVLVULVDWULVVJVUPVGVHVULVUPVVIUNYQZMYQZUXCUXDVU
          LVUPVVIWUMWUNUXEYTUYRVYSVVEVUFXSVVEXQURUYRDGURVYSUYQGDIGYHYRZJVCZUTZV
          AVBZXQURVYSJDGUYQWUPDVIZWURVUFXQWUSWUQVUEVAWUPDUXFUXGZUXHUJUXIUXKWUDV
          UFVVEYCYFWUGWUJVUQVULWUKUYRVXTVULYLURWUIWUHUXLYMUXMUXNUYRVVEVUFVUNUNU
          YRVYTVVEVUFVIUYRDIURZVYTUYQIDIGYPYRWVAVYRVYTWURRXSVYTJDVYQIWUSWURVUFR
          WUTUXOUKUXPXHYAVUFRUXQWKUXRYOUXSVUFVUHVUNLUNLUNXEZVUGVUMVUAVULVDVUAVU
          LDUXTWVBXOYTUYAUYBUYRVWDUYSVYQGUQZURZVUJVUDVIVWFVWEUYSVYQURZVWBWFVWDW
          VDVVTWVEVWBVVTVWAVAYGUYSWDZWVEVWIVWAVVRYGXSZWVFVMYGURVLYGURWVGUYCUYDV
          MVLYGUYEUYFVAVVRYGUYSUYKUYGWVEWVFYGVAUYSUYHUYLUYIUYJWQUYMVWGUYSVYQGWP
          UYNUYSGHJLUJUMYSWQUYRDWVCURVUKVUIVIUYRVYQGDWUAWUOUYODGHJLUJUMYSYAUYP
          $.
      $}

      $d d f g k n o q r x y z $.  $d d D $.  $d d k n o q x y F $.
      $d f k o q G $.  $d o q r H $.  $d d f k n o q r x y J $.
      $d d k n o q r x y M $.  $d d f g k n o q x N $.  $d n r x y O $.
      $d g k n q P $.  $d d f k n o q r x y R $.  $d q S $.
      $d d f k n o q r x y T $.
      $( Lemma for ~ eulerpart .  (Contributed by Thierry Arnoux,
         30-Aug-2018.) $)
      eulerpartlemn $p |- ( G |` O ) : O -1-1-onto-> D $=
        ( vq vd cres wf1o wtru cn cv cfv cmul co csu wceq cin crab cc0 cpr cmap
        c1 wi weq wcel wa simpl fveq1d oveq1d sumeq2dv eqeq1d cbvrabv a1i eqidd
        reseq2d f1oeq123d imbi2d cbits ccom cima eulerpartgbij w3a fveq2 reseq1
        cind coeq2d fveq2d imaeq2d eqeq12d eulerpartlemgv 3ad2ant2 simp3 eqtr4d
        vtoclga sumeq2sdv eulerpartlemgs2 cn0 wss cvv nn0ex 0nn0 mp2an ax-mp wf
        eulerpartlemsv1 syl ccnv cfn eulerpartlemt0 c2 cdvds wral cnveq imaeq1d
        wbr wn nfrab1 df-3an anbi1i eulerpartleme an32 3bitr4i nnex elmap dfss3
        3bitri pm5.32i bitr4i rabid eqri df-f 3bitr4ri 1nn0 prssi f1of ffvelrni
        mapss ssrin sseldi simp1bi inss2 sseli 3eqtr3d eqtr3d f1oresrab raleqdv
        elind chvarv 3anbi1i bitri wb cdm cnvimass fdm syl5sseq sylib biantrurd
        notbid elrab2 ralbii r19.26 syl6rbbr adantr 3eqtri reseq2i nfcv wfn crn
        breq2 fnima sseq1d anbi2d sstr mpan2 pm4.71ri syl6bbr anass prex eleq1d
        vex elab2 anbi12i elin eulerpartlemd mpbird trud ) TDOTUOZUPZUQUWPURKUS
        ZUMUSZUTZUWQVAVBZKVCZSVDZUMHFVEZVFZURUWQUNUSZUTZUWQVAVBZKVCZSVDZUNVGVJV
        HZURVIVBZFVEZVFZOUXDUOZUPZUQURUWQMUSZUTZUWQVAVBZKVCZSVDZMUXCVFZUXMOUYAU
        OZUPZVKUQUXOVKMUMMUMVLZUYCUXOUQUYDUYAUXDUXMUXMUYBUXNUYDUYAUXDOUYAUXDVDU
        YDUXTUXBMUMUXCUYDUXSUXASUYDURUXRUWTKUYDUWQURVMZVNZUXQUWSUWQVAUYFUWQUXPU
        WRUYDUYEVOVPVQVRVSVTWAZWCUYGUYDUXMWBWDWEUQUXTUXIMUNUXCUXLNWFUXPQUOZWGZR
        UTZWHZURWMUTZUTZOUKUXCUXLOUPZUQABCDEFHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJU
        KWIZWAUQUXPUXCVMZUXEUYMVDZWJZUXHUXSSUYRURUWQUXPOUTZUTZUWQVAVBZKVCZUXHUX
        SUYRURVUAUXGKUYRUYTUXFUWQVAUYRUWQUYSUXEUYRUYSUYMUXEUYPUQUYSUYMVDZUYQUWR
        OUTZNWFUWRQUOZWGZRUTZWHZUYLUTZVDVUCUMUXPUXCUMMVLZVUDUYSVUIUYMUWRUXPOWKZ
        VUJVUHUYKUYLVUJVUGUYJNVUJVUFUYIRVUJVUEUYHWFUWRUXPQWLWNWOWPWOWQABCUWRDEF
        HIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKWRXBWSUQUYPUYQWTXAVPVQXCUYPUQVUBUXSV
        DUYQUYPUYSGUTZUXPGUTZVUBUXSVUDGUTZUWRGUTZVDVULVUMVDUMUXPUXCVUJVUNVULVUO
        VUMVUJVUDUYSGVUKWOUWRUXPGWKWQABCUWRDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIU
        JUKULXDXBUYPUYSXEURVIVBZFVEZVMVULVUBVDUYPUXLVUQUYSUXKVUPXFZUXLVUQXFXEXG
        VMUXJXEXFZVURXHVGXEVMVJXEVMVUSXIUUAVGVJXEUUBXJZUXJXEURXGUUEXJUXKVUPFUUF
        XKUXCUXLUXPOUYNUXCUXLOXLUYOUXCUXLOUUCXKUUDUUGUYSFGIKUIULXMXNUYPUXPVUQVM
        VUMUXSVDUYPVUPFUXPUYPUXPVUPVMUXPXOURWHZXPVMVVAQXFABCUXPDEFHIJKLNPQRSTUA
        UBUCUDUEUFUGUHUIUJXQUUHUXCFUXPHFUUIUUJUUOUXPFGIKUIULXMXNUUKWSUULVSUUMUU
        PUQTUXDDUXMUWOUXNUWOUXNVDUQTUXDOTXRLUSZXSYCZYDZLJUSZXOZURWHZXTZJEVFVVDL
        UWRXOZURWHZXTZUMEVFZUXDUCVVHVVKJUMEJUMVLZVVDLVVGVVJVVMVVFVVIURVVEUWRYAY
        BUUNVTUMVVLUXDVVKUMEYEUXBUMUXCYEUWREVMZVVKVNZUWRUXCVMZUXBVNZUWRVVLVMUWR
        UXDVMVVOURXEUWRXLZVVJXPVMZVNZVVKVNZUXBVNZVVQVVRVVSUXBWJZVVKVNVVTUXBVNZV
        VKVNVVOVWBVWCVWDVVKVVRVVSUXBYFYGVVNVWCVVKUWREIKSUBYHYGVVTVVKUXBYIYJVVPV
        WAUXBVVPVVRVVSVVJQXFZWJZVVTVWEVNVWAVVPUWRVUPVMZVVSVWEWJVWFABCUWRDEFHIJK
        LNPQRSTUAUBUCUDUEUFUGUHUIUJXQVWGVVRVVSVWEXEURUWRXHYKYLUUQUURVVRVVSVWEYF
        VVTVWEVVKVVRVWEVVKUUSVVSVVRVVKVVBURVMZLVVJXTZVVKVNZVWEVVRVWIVVKVVRVVJUR
        XFVWIVVRUWRUUTVVJURUWRURUVAURXEUWRUVBUVCLVVJURYMUVDUVEVWEVVBQVMZLVVJXTV
        WHVVDVNZLVVJXTVWJLVVJQYMVWKVWLLVVJXRCUSZXSYCZYDVVDCVVBURQCLVLVWNVVCVWMV
        VBXRXSUVQUVFUEUVGUVHVWHVVDLVVJUVIYNUVJUVKYOYNYGYPVVKUMEYQUXBUMUXCYQYJYR
        UVLZUVMWATUXDVDUQVWOWADUXMVDUQUNDUXMUNDUVNUXIUNUXLYEUXEUXLVMZUXIVNZUXEE
        VMZUXEURWHZUXJXFZVNZUXEUXMVMUXEDVMVWQURXEUXEXLZUXEXOZURWHZXPVMZVNZVWTVN
        ZUXIVNZVXAVWPVXGUXIUXEUXKVMZUXEFVMZVNVXBVWTVNZVXEVNVWPVXGVXIVXKVXJVXEUR
        UXJUXEXLZUXEURUVOZUXEUVPZXEXFZVNZVWTVNZVXIVXKVXMVXOVWTVNZVNVXMVXNUXJXFZ
        VNVXQVXLVXMVXRVXSVXMVXRVXOVXSVNVXSVXMVWTVXSVXOVXMVWSVXNUXJURUXEUVRUVSUV
        TVXSVXOVXSVUSVXOVUTVXNUXJXEUWAUWBUWCUWDYOVXMVXOVWTUWEURUXJUXEYSYTUXJURU
        XEVGVJUWFYKYLVXBVXPVWTURXEUXEYSYGYJIUSZXOZURWHZXPVMVXEIUXEFUNUWHIUNVLZV
        YBVXDXPVYCVYAVXCURVXTUXEYAYBUWGUIUWIUWJUXEUXKFUWKVXBVXEVWTYIYJYGVXAVXBV
        XEUXIWJZVWTVNVXFUXIVNZVWTVNVXHVWRVYDVWTUXEEIKSUBYHYGVYDVYEVWTVXBVXEUXIY
        FYGVXFUXIVWTYIYNYPUXIUNUXLYQUXEDEIJKLSTUBUCUDUWLYTYRWAWDUWMUWN $.
    $}

    $d a b f g h k n m o q r s t x y z $.  $d g D $.  $d f g k n q x N $.
    $d g n r x y O $.  $d g k n P $.
    $( Euler's theorem on partitions, also known as a special case of
       Glaisher's theorem.  Let ` P ` be the set of all partitions of ` N ` ,
       represented as multisets of positive integers, which is to say functions
       from ` NN ` to ` NN0 ` where the value of the function represents the
       number of repetitions of an individual element, and the sum of all the
       elements with repetition equals ` N ` .  Then the set ` O ` of all
       partitions that only consist of odd numbers and the set ` D ` of all
       partitions which have no repeated elements have the same cardinality.
       This is Metamath 100 proof #45.  (Contributed by Thierry Arnoux,
       14-Aug-2018.)  (Revised by Thierry Arnoux, 1-Sep-2019.) $)
    eulerpart $p |- ( # ` O ) = ( # ` D ) $=
      ( vr va vb cv co cfn wcel cfv wceq vo vh vz vx vy vq vm vt vs cn c2 cdvds
      ccnv cima wbr wn crab wss cn0 cmap cab cexp cmul cmpt2 cbits cres ccom c0
      cin csupp cpw wa copab cmpt cind wf1o wex chash csu oveq2 oveq1d cbvmpt2v
      eqid oveq1 eleq1d cbvrabv eqcomi fveq1 eleq2d anbi2d opabbidv simpl simpr
      cbvmptv fveq2d eleq12d anbi12d cbvopabv eqtri cnveq imaeq1d cbvabv sseq1d
      reseq1 coeq2d imaeq2d imaeq1i 3eqtr2i fveq1i imaeq2i fveq2i eulerpartlemn
      mpteq12i mpteq2i ovex rabex inex1 mptex resex f1oeq1 spcev hasheni sylbir
      cen bren mp2b ) HAUAUBOZUMZUJUNZUKUCOULUOUPUCUJUQZURZUBUSUJUTPZUQZYIQRZUB
      VAZVIZUDUEYJUSUKUEOZVBPZUDOZVCPZVDZVEUAOZYJVFZVGZLLOZVHVJPZQRZLUSVKQVIYJU
      TPZUQZYSYJRZYQYSUUESZRZVLZUDUEVMZVNZSZUNZUJVOSZSZVNZHVFZVPZHADOZVPZDVQZHV
      RSAVRSTZUDUEUCABYOCYLYOVIUJEOZCOZSUVGVCPEVSVNZYMCDEFUFMNYJUSUKNOZVBPZMOZV
      CPZVDZUUTUGOZVHVJPZQRZUGUUHUQZYJUHUIOZVHVJPZQRZUIUUHUQZUVLYJRZUVJUVLUHOZS
      ZRZVLZMNVMZVNZGHLIJKYJWCMNUDUEYJUSUVMYTUVKYSVCPUVLYSUVKVCVTUVJYQTZUVKYRYS
      VCUVJYQUKVBVTWAWBZUUIUVRUUGUVQLUGUUHUUEUVOTUUFUVPQUUEUVOVHVJWDWEWFZWGUWIL
      UWBUWCUVJUVLUUESZRZVLZMNVMZVNZLUVRUUNVNZUHLUWBUWHUWPUWDUUETZUWGUWOMNUWSUW
      FUWNUWCUWSUWEUWMUVJUVLUWDUUEWHWIWJWKWNLUWBUWPUVRUUNUVRUWBUVQUWAUGUIUUHUVO
      UVSTUVPUVTQUVOUVSVHVJWDWEWFWGUWOUUMMNUDUEUVLYSTZUWJVLZUWCUUJUWNUULUXAUVLY
      SYJUWTUWJWLZWEUXAUVJYQUWMUUKUWTUWJWMUXAUVLYSUUEUXBWOWPWQWRXMZWSYNUVHUMZUJ
      UNZQRUBCYGUVHTZYIUXEQUXFYHUXDUJYGUVHWTXAZWEXBYKUXEYJURUBCYLUXFYIUXEYJUXGX
      CWFUUTUFYPUUAVEUFOZYJVFZVGZUUOSZUNZUURSZVNUFYPUVNUXJUWISZUNZUURSZVNUAUFYP
      UUSUXMUUBUXHTZUUQUXLUURUXQUUPUXKUUAUXQUUDUXJUUOUXQUUCUXIVEUUBUXHYJXDXEWOX
      FWOWNUFYPUXMUXPUXLUXOUURUXLUVNUXKUNUXOUUAUVNUXKUVNUUAUWKWGXGUXKUXNUVNUXJU
      UOUWIUUOUWRUWQUWILUUIUUNUVRUUNUWLUUNWCXMUXCLUHUWBUWPUWHUUEUWDTZUWOUWGMNUX
      RUWNUWFUWCUXRUWMUWEUVJUVLUUEUWDWHWIWJWKWNXHXIXJWSXKXNWSUVIWCXLUVDUVBDUVAU
      UTHUAYPUUSYMYOYKUBYLUSUJUTXOXPXQXRXSHAUVCUVAXTYAUVEHAYDUOUVFHADYEHAYBYCYF
      $.
  $}

$( End $[ set-mbox-ta-eulerpart.mm $] $)


$( Begin $[ set-mbox-ta-fibonacci.mm $] $)
$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Sequences defined by strong recursion
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c seqstr $.

  $( Sequences defined by strong recursion. $)
  csseq $a class seqstr $.

  ${
    $d m f x y $.
    $( Define a builder for sequences by strong recursion, i.e. by computing
       the value of the n-th element of the sequence from all preceding
       elements and not just the previous one.  (Contributed by Thierry Arnoux,
       21-Apr-2019.) $)
    df-sseq $a |- seqstr = ( m e. _V , f e. _V |-> ( m u. ( lastS o.
      seq ( # ` m ) ( ( x e. _V , y e. _V |-> ( x ++ <" ( f ` x ) "> ) ) ,
      ( NN0 X. { ( m ++ <" ( f ` m ) "> ) } ) ) ) ) ) $.
  $}

  ${
    iwrdsplit.s $e |- ( ph -> S e. _V ) $.
    iwrdsplit.f $e |- ( ph -> F : NN0 --> S ) $.
    iwrdsplit.n $e |- ( ph -> N e. NN0 ) $.
    $( Lemma for ~ sseqp1 .  (Contributed by Thierry Arnoux, 25-Apr-2019.) $)
    subiwrd $p |- ( ph -> ( F |` ( 0 ..^ N ) ) e. Word S ) $=
      ( cc0 cfzo co cres wf cword wcel cn0 wss fzo0ssnn0 fssres sylancl iswrdi
      syl ) AHDIJZBCUBKZLZUCBMNAOBCLUBOPUDFDQOBUBCRSBDUCTUA $.

    $( Length of a subword of an infinite word.  (Contributed by Thierry
       Arnoux, 25-Apr-2019.) $)
    subiwrdlen $p |- ( ph -> ( # ` ( F |` ( 0 ..^ N ) ) ) = N ) $=
      ( cc0 cfzo co cres chash cfv wfn wceq cn0 wss wf ffn syl fzo0ssnn0 hashfn
      fnssres sylancl wcel hashfzo0 eqtrd ) ACHDIJZKZLMZUHLMZDAUIUHNZUJUKOACPNZ
      UHPQULAPBCRUMFPBCSTDUAPUHCUCUDUHUIUBTADPUEUKDOGDUFTUG $.

    $( Lemma for ~ sseqp1 .  (Contributed by Thierry Arnoux, 25-Apr-2019.) $)
    iwrdsplit $p |- ( ph -> ( F |` ( 0 ..^ ( N + 1 ) ) )
      = ( ( F |` ( 0 ..^ N ) ) ++ <" ( F ` N ) "> ) ) $=
      ( cc0 c1 co cfzo cres cfv cmin csubstr cconcat wcel wceq cle cfz cop clsw
      caddc chash cs1 cword c0 wne cn0 1nn0 a1i nn0addcld subiwrd wbr nn0addge2
      cr 1re sylancr subiwrdlen breqtrrd wb wrdlenge1n0 syl swrdccatwrd syl2anc
      mpbird oveq1d nn0cnd pncand eqtrd opeq2d oveq2d nn0fz0 sylib elfz0add imp
      1cnd wa syl21anc eleqtrrd swrd0val wss fzossfzop1 resabs1 3syl 3eqtrd lsw
      fveq2d fzonn0p1 fvres s1eqd oveq12d eqtr3d ) ACHDIUCJZKJZLZHWPUDMZINJZUAZ
      OJZWPUBMZUEZPJZWPCHDKJZLZDCMZUEZPJAWPBUFZQZWPUGUHZXCWPRABCWNEFADIGIUIQZAU
      JUKZULZUMZAXJIWQSUNZAIWNWQSAIUPQDUIQZIWNSUNUQGIDUOURABCWNEFXMUSZUTAXIXJXO
      VAXNBWPVBVCVFBWPVDVEAWTXEXBXGPAWTWPHDUAZOJZWPXDLZXEAWSXRWPOAWRDHAWRWNINJD
      AWQWNINXQVGADIADGVHAVQVIVJZVKVLAXIDHWQTJZQXSXTRXNADHWNTJZYBAXPXKDHDTJQZDY
      CQZGXLAXPYDGDVMVNXPXKVRYDYEDIDVOVPVSAWQWNHTXQVLVTBWPDWAVEAXPXDWOWBXTXERGD
      WCCXDWOWDWEWFAXAXFAXAWRWPMZDWPMZXFAXIXAYFRXNWPXHWGVCAWRDWPYAWHAXPDWOQYGXF
      RGDWIDWOCWJWEWFWKWLWM $.
  $}

  ${
    $d f m x y F $.  $d f m x y M $.  $d f m x y ph $.
    sseqval.1 $e |- ( ph -> S e. _V ) $.
    sseqval.2 $e |- ( ph -> M e. Word S ) $.
    sseqval.3 $e |- W = ( Word S i^i ( `' # " ( ZZ>= ` ( # ` M ) ) ) ) $.
    sseqval.4 $e |- ( ph -> F : W --> S ) $.
    $( Value of the strong sequence builder function.  The set ` W ` represents
       here the words of length greater than or equal to the lenght of the
       initial sequence ` M ` .  (Contributed by Thierry Arnoux,
       21-Apr-2019.) $)
    sseqval $p |- ( ph -> ( M seqstr F ) = ( M u. ( lastS o. seq ( # ` M ) ( (
      x e. _V , y e. _V |-> ( x ++ <" ( F ` x ) "> ) ) ,
      ( NN0 X. { ( M ++ <" ( F ` M ) "> ) } ) ) ) ) ) $=
      ( vm vf cvv clsw cfv cconcat co chash wcel cv cs1 cmpt2 cn0 csn cseq ccom
      cxp cun csseq wceq df-sseq a1i wa simprl fveq2d w3a simp1rr fveq1d oveq2d
      s1eqd mpt2eq3dva simprr fveq12d oveq12d sneqd xpeq2d coeq2d uneq12d cword
      seqeq123d elex syl ccnv cuz cima cin wrdexg inex1g 3syl syl5eqel fex wfun
      wf syl2anc c1 cmin df-lsw funmpt2 seqex cofunexg unexg ovmpt2d ) ALMFENNL
      UAZOBCNNBUAZWOMUAZPZUBZQRZUCZUDWNWNWPPZUBZQRZUEZUHZWNSPZUFZUGZUIZFOBCNNWO
      WOEPZUBZQRZUCZUDFFEPZUBZQRZUEZUHZFSPZUFZUGZUIZUJNUJLMNNXIUCUKABCMLULUMAWN
      FUKZWPEUKZUNUNZWNFXHYAAYCYDUOZYEXGXTOYEWTXMXEXRXFXSYEWNFSYFUPYEBCNNWSXLYE
      WONTZCUANTZUQZWRXKWOQYIWQXJYIWOWPEYCYDAYGYHURUSVAUTVBYEXDXQUDYEXCXPYEWNFX
      BXOQYFYEXAXNYEWNFWPEAYCYDVCYFVDVAVEVFVGVKVHVIAFDVJZTFNTZIFYJVLVMZAGDEWDGN
      TENTKAGYJSVNXSVOPVPZVQZNJADNTYJNTYNNTHDNVRYJYMNVSVTWAGDNEWBWEAYKYANTZYBNT
      YLAOWCZXTNTZYOYPABNWOSPWFWGRWOPOBWHWIUMYQAXMXRXSWJUMOXTNWKWEFYANNWLWEWM
      $.

    ${
      sseqfv1.4 $e |- ( ph -> N e. ( 0 ..^ ( # ` M ) ) ) $.
      $( Value of the strong sequence builder function at one of its initial
         values.  (Contributed by Thierry Arnoux, 21-Apr-2019.) $)
      sseqfv1 $p |- ( ph -> ( ( M seqstr F ) ` N ) = ( M ` N ) ) $=
        ( vx co cfv clsw cvv wfn wcel syl a1i vy csseq cv cs1 cconcat cmpt2 cn0
        csn cxp chash cseq ccom cun sseqval fveq1d cc0 cfzo cuz cin cword wrdfn
        c0 wceq crn wss c1 cmin fvex df-lsw fnmpti cz lencl nn0zd seqfn syl3anc
        ssv fnco fzouzdisj fvun1 syl112anc eqtrd ) AEDCUBMZNEDOLUAPPLUCZWCCNUDU
        EMUFZUGDDCNUDUEMUHUIZDUJNZUKZULZUMZNZEDNZAEWBWIALUABCDFGHIJUNUOADUPWFUQ
        MZQZWHWFURNZQZWLWNUSVBVCZEWLRWJWKVCADBUTRZWMHBDVASAOPQZWGWNQZWGVDZPVEZW
        OWRALPWCUJNVFVGMZWCNOXBWCVHLVIVJTAWFVKRWSAWFAWQWFUGRHBDVLSVMWDWEWFVNSXA
        AWTVPTPWNOWGVQVOWPAUPWFVRTKWLWNDWHEVSVTWA $.
    $}

    $( A strong recursive sequence is a function over the nonnegative integers.
       (Contributed by Thierry Arnoux, 23-Apr-2019.) $)
    sseqfn $p |- ( ph -> ( M seqstr F ) Fn NN0 ) $=
      ( vx vy co cn0 wfn clsw cvv cfv cc0 wcel a1i csseq cv cs1 cconcat csn cxp
      cmpt2 chash cseq ccom cun cfzo cuz cin c0 wceq cword wrdfn syl crn wss c1
      cmin fvex df-lsw fnmpti lencl nn0zd seqfn 3syl ssv fnco syl3anc fzouzdisj
      cz syl21anc sseqval nn0uz elnn0uz fzouzsplit sylbi syl5eq fneq12d mpbird
      fnun ) ADCUALZMNDOJKPPJUBZWGCQUCUDLUGZMDDCQUCUDLUEUFZDUHQZUIZUJZUKZRWJULL
      ZWJUMQZUKZNZADWNNZWLWONZWNWOUNUOUPZWQADBUQSZWRGBDURUSAOPNZWKWONZWKUTZPVAZ
      WSXBAJPWGUHQVBVCLZWGQOXFWGVDJVEVFTAXAWJVOSXCGXAWJBDVGZVHWHWIWJVIVJXEAXDVK
      TPWOOWKVLVMWTARWJVNTWNWODWLWEVPAMWPWFWMAJKBCDEFGHIVQAMRUMQZWPVRAXAWJMSZXH
      WPUPZGXGXIWJXHSXJWJVSRWJVTWAVJWBWCWD $.

    $( Lemma for ~ sseqf amd ~ sseqp1 .  (Contributed by Thierry Arnoux,
       25-Apr-2019.) $)
    sseqmw $p |- ( ph -> M e. W ) $=
      ( cword chash ccnv cfv cuz cima cin cvv wcel elex syl cz lencl nn0zd uzid
      3syl cn0 cpnf csn cun wf wfn wa wb hashf ffn elpreima mp2b sylanbrc elind
      syl6eleqr ) ADBJZKLDKMZNMZOZPEAVAVDDGADQRZVBVCRZDVDRZADVARZVEGDVASTAVHVBU
      ARVFGVHVBBDUBUCVBUDUEQUFUGUHUIZKUJKQUKVGVEVFULUMUNQVIKUOQDVCKUPUQURUSHUT
      $.

    $d a b x y F $.  $d a b x y M $.  $d w S $.  $d a b w x y W $.
    $d a b w x y ph $.
    $( A strong recursive sequence is a function over the nonnegative integers.
       (Contributed by Thierry Arnoux, 23-Apr-2019.) $)
    sseqf $p |- ( ph -> ( M seqstr F ) : NN0 --> S ) $=
      ( cn0 co wf chash cfv clsw cvv c0 wceq wcel wa vx vy vw va csseq cc0 cfzo
      vb cuz cun cv cs1 cconcat cmpt2 csn cxp cseq ccom cin cword wrdf syl cdif
      cres cdm wral vex a1i cmin fvex df-lsw dmmpti syl6eleqr eldifsn ccnv cima
      c1 wne inss1 eqsstri sseli lswcl sylan sylbi adantl jca ralrimiva wfun wb
      wfn fnmpti fnfun ffvresb mp2b sylibr eqid lencl nn0zd ovex adantr elnn0uz
      cz simpr sylib uztrn syl2anc nn0uz fvconst2g sseqmw ffvelrnd s1cld ccatcl
      sylancr caddc ccatws1len uzid peano2uz 3syl eqeltrd ffn elpreima sylanbrc
      hashf elind ccatws1n0 eqidd simprl fveq2d oveq12d ovmpt2d eldifi ad2antrl
      cpnf s1eqd sseldi syl6eleq elin simprbi simprd seqf fzouzdisj fun sseqval
      fco2 syl21anc fzouzsplit syl5eq unidm eqcomd feq123d mpbird ) AJBDCUEKZLU
      FDMNZUGKZUUMUINZUJZBBUJZDOUAUBPPUAUKZUURCNZULZUMKZUNZJDDCNZULZUMKZUOUPZUU
      MUQZURZUJZLZAUUNBDLZUUOBUVHLZUUNUUOUSQRZUVJADBUTZSZUVKGBDVAVBAEQUOZVCZBOU
      VQVDLZUUOUVQUVGLUVLAUCUKZOVEZSZUVSONBSZTZUCUVQVFZUVRAUWCUCUVQAUVSUVQSZTZU
      WAUWBUWFUVSPUVTUVSPSUWFUCVGVHUAPUURMNVQVIKZUURNZOUWGUURVJZUAVKZVLVMUWEUWB
      AUWEUVSESZUVSQVRZTUWBUVSEQVNUWKUVSUVNSUWLUWBEUVNUVSEUVNMVOUUOVPZUSZUVNHUV
      NUWMVSVTZWABUVSWBWCWDWEWFWGOPWJOWHUVRUWDWIUAPUWHOUWIUWJWKPOWLUCUVQBOWMWNW
      OAUDUHUVBUVQUVFUUMUUOUUOWPAUVOUUMXBSZGUVOUUMBDWQZWRVBZAUDUKZUUOSZTZUWSUVF
      NZUVEUVQUXAUVEPSZUWSJSUXBUVERDUVDUMWSZUXAUWSUFUINZJUXAUWTUUMUXESZUWSUXESA
      UWTXCUXAUUMJSZUXFAUXGUWTAUVOUXGGUWQVBWTUUMXAZXDUUMUWSUFXEXFXGVMJUVEUWSPXH
      XMUXAUVEESZUVEQVRZUVEUVQSAUXIUWTAUVEUWNEAUVNUWMUVEAUVOUVDUVNSUVEUVNSGAUVC
      BAEBDCIABCDEFGHIXIZXJZXKBDUVDXLXFAUXCUVEMNZUUOSZUVEUWMSZUXCAUXDVHAUXMUUMV
      QXNKZUUOAUVOUVCBSZUXMUXPRGUXLBDUVCXOXFAUWPUUMUUOSUXPUUOSUWRUUMXPUUMUUMXQX
      RXSPJYMUOUJZMLZMPWJZUXOUXCUXNTWIYCPUXRMXTZPUVEUUOMYAWNYBYDHVMWTUXAUVOUXQU
      XJAUVOUWTGWTUXAEBDCAEBCLZUWTIWTADESUWTUXKWTXJBDUVCYEXFUVEEQVNYBXSAUWSUVQS
      ZUHUKZUVQSZTZTZUWSUYDUVBKUWSUWSCNZULZUMKZUVQUYGUAUBUWSUYDPPUVAUYJUVBPUYGU
      VBYFUYGUURUWSRZUBUKUYDRZTTZUURUWSUUTUYIUMUYGUYKUYLYGZUYMUUSUYHUYMUURUWSCU
      YNYHYNYIUWSPSZUYGUDVGVHUYDPSUYGUHVGVHUYJPSZUYGUWSUYIUMWSVHZYJUYGUYJESUYJQ
      VRZUYJUVQSUYGUYJUWNEUYGUVNUWMUYJUYGUWSUVNSZUYIUVNSUYJUVNSUYGEUVNUWSUWOUYC
      UWSESAUYEUWSEUVPYKYLZYOZUYGUYHBUYGEBUWSCAUYBUYFIWTUYTXJZXKBUWSUYIXLXFUYGU
      YPUYJMNZUUOSZUYJUWMSZUYQUYGVUCUWSMNZVQXNKZUUOUYGUYSUYHBSZVUCVUGRVUAVUBBUW
      SUYHXOXFUYGVUFUUOSZVUGUUOSUYGUYOVUIUYGUWSUWMSZUYOVUITZUYGUWSUWNSZVUJUYGUW
      SEUWNUYTHYPVULUYSVUJUWSUVNUWMYQYRVBUXSUXTVUJVUKWIYCUYAPUWSUUOMYAWNXDYSUUM
      VUFXQVBXSUXSUXTVUEUYPVUDTWIYCUYAPUYJUUOMYAWNYBYDHVMUYGUYSVUHUYRVUAVUBBUWS
      UYHYEXFUYJEQVNYBXSYTUUOUVQBOUVGUUDXFUVMAUFUUMUUAVHUUNUUOBBDUVHUUBUUEAJUUP
      BUUQUULUVIAUAUBBCDEFGHIUUCAJUXEUUPXGAUVOUXGUXEUUPRZGUWQUXGUXFVUMUXHUFUUMU
      UFWDXRUUGAUUQBUUQBRABUUHVHUUIUUJUUK $.

    $d i F $.  $d i M $.  $d i S $.  $d i ph $.
    $( The first elements in the strong recursive sequence are the sequence
       initializer.  (Contributed by Thierry Arnoux, 23-Apr-2019.) $)
    sseqfres $p |- ( ph -> ( ( M seqstr F ) |` ( 0 ..^ ( # ` M ) ) ) = M ) $=
      ( vi csseq co cc0 chash cfv wceq wcel adantr cn0 wfn cfzo cres cv wral wa
      cvv cword wf simpr sseqfv1 ralrimiva wss wb sseqfn syl fzo0ssnn0 fvreseq1
      wrdfn a1i syl21anc mpbird ) ADCKLZMDNOZUALZUBDPZJUCZVBOVFDOPZJVDUDZAVGJVD
      AVFVDQZUEBCDVFEABUFQVIFRADBUGQZVIGRHAEBCUHVIIRAVIUIUJUKAVBSTDVDTZVDSULZVE
      VHUMABCDEFGHIUNAVJVKGBDURUOVLAVCUPUSJSVDVBDUQUTVA $.

    ${
      $d a b x y F $.  $d a b x y M $.  $d a b x y ph $.
      sseqfv2.4 $e |- ( ph -> N e. ( ZZ>= ` ( # ` M ) ) ) $.
      $( Value of the strong sequence builder function.  (Contributed by
         Thierry Arnoux, 21-Apr-2019.) $)
      sseqfv2 $p |- ( ph -> ( ( M seqstr F ) ` N ) = ( lastS ` ( seq ( # ` M )
        ( ( x e. _V , y e. _V |-> ( x ++ <" ( F ` x ) "> ) ) ,
        ( NN0 X. { ( M ++ <" ( F ` M ) "> ) } ) ) ` N ) ) ) $=
        ( co cfv clsw cvv wfn wcel syl va vb csseq cv cs1 cconcat cmpt2 cn0 csn
        cxp chash cseq ccom cun sseqval fveq1d cc0 cfzo cuz c0 wceq cword wrdfn
        cin crn wss c1 cmin fvex df-lsw fnmpti a1i cz lencl nn0zd seqfn syl3anc
        ssv fnco fzouzdisj fvun2 syl112anc wfun fnfun wf fvexd ovexd eqid caddc
        cdm wa seqf2 fdm eleqtrrd fvco syl2anc 3eqtrd ) AGFEUCNZOGFPBCQQBUDZWSE
        OUEUFNUGZUHFFEOUEUFNUIUJZFUKOZULZUMZUNZOZGXDOZGXCOPOZAGWRXEABCDEFHIJKLU
        OUPAFUQXBURNZRZXDXBUSOZRZXIXKVDUTVAZGXKSXFXGVAAFDVBSZXJJDFVCTAPQRZXCXKR
        ZXCVEZQVFZXLXOABQWSUKOVGVHNZWSOPXSWSVIBVJVKVLAXBVMSXPAXBAXNXBUHSJDFVNTV
        OZWTXAXBVPTZXRAXQVRVLQXKPXCVSVQXMAUQXBVTVLMXIXKFXDGWAWBAXCWCZGXCWJZSXGX
        HVAAXPYBYAXKXCWDTAGXKYCMAXKQXCWEYCXKVAAUAUBQQWTXAXBXKAXBXAWFAUAUDZQSUBU
        DZQSWKWKYDYEWTWGXKWHXTAYDXBVGWINUSOSWKYDXAWFWLXKQXCWMTWNGPXCWOWPWQ $.

      $d i n x y F $.  $d i n x y M $.  $d i N $.  $d a b i n x y ph $.
      $( Value of the strong sequence builder function at a successor.
         (Contributed by Thierry Arnoux, 24-Apr-2019.) $)
      sseqp1 $p |- ( ph -> ( ( M seqstr F ) ` N ) =
        ( F ` ( ( M seqstr F ) |` ( 0 ..^ N ) ) ) ) $=
        ( co cfv cvv cs1 cconcat cn0 chash wcel wceq vx vy vi vn va vb csseq cv
        cmpt2 csn cxp cseq clsw cc0 cfzo cres sseqfv2 wi c1 caddc fveq2 reseq2d
        oveq2 fveq2d s1eqd oveq12d eqeq12d imbi2d cz ovex cword lencl fvconst2g
        cuz syl sylancr nn0zd seq1 3syl sseqfres 3eqtr4d a1i wa seqp1 adantl id
        eqidd cbvmpt2v simprl fvexd ovmpt2d eqtrd adantr wf simpr wss fzo0ssnn0
        sseqf fssres sylancl iswrdi ccnv cima cin elex eluznn0 sylan subiwrdlen
        eqeltrd cpnf cun wfn wb hashf ffn elpreima mp2b sylanbrc elind ffvelrnd
        syl6eleqr lswccats1 syl2anc oveq2d iwrdsplit ex expcom a2d uzind4 mpcom
        3eqtrrd 3eqtrd ) AEDCUGLZMEUAUBNNUAUHZYNCMZOZPLZUIZQDDCMZOZPLZUJUKZDRMZ
        ULZMZUMMYMUNEUOLZUPZUUGCMZOZPLZUMMZUUHAUAUBBCDEFGHIJKUQAUUEUUJUMEUUCVNM
        ZSZAUUEUUJTZKAUCUHZUUDMZYMUNUUOUOLZUPZUURCMZOZPLZTZURAUUCUUDMZYMUNUUCUO
        LZUPZUVECMZOZPLZTZURZAUDUHZUUDMZYMUNUVKUOLZUPZUVNCMZOZPLZTZURAUVKUSUTLZ
        UUDMZYMUNUVSUOLZUPZUWBCMZOZPLZTZURAUUNURUCUDUUCEUUOUUCTZUVBUVIAUWGUUPUV
        CUVAUVHUUOUUCUUDVAUWGUURUVEUUTUVGPUWGUUQUVDYMUUOUUCUNUOVCVBZUWGUUSUVFUW
        GUURUVECUWHVDVEVFVGVHUUOUVKTZUVBUVRAUWIUUPUVLUVAUVQUUOUVKUUDVAUWIUURUVN
        UUTUVPPUWIUUQUVMYMUUOUVKUNUOVCVBZUWIUUSUVOUWIUURUVNCUWJVDVEVFVGVHUUOUVS
        TZUVBUWFAUWKUUPUVTUVAUWEUUOUVSUUDVAUWKUURUWBUUTUWDPUWKUUQUWAYMUUOUVSUNU
        OVCVBZUWKUUSUWCUWKUURUWBCUWLVDVEVFVGVHUUOETZUVBUUNAUWMUUPUUEUVAUUJUUOEU
        UDVAUWMUURUUGUUTUUIPUWMUUQUUFYMUUOEUNUOVCVBZUWMUUSUUHUWMUURUUGCUWNVDVEV
        FVGVHUVJUUCVISZAUUCUUBMZUUAUVCUVHAUUANSUUCQSZUWPUUATDYTPVJADBVKZSZUWQHB
        DVLZVOZQUUAUUCNVMVPAUWSUWOUVCUWPTHUWSUUCUWTVQYRUUBUUCVRVSAUVEDUVGYTPABC
        DFGHIJVTZAUVFYSAUVEDCUXBVDVEVFWAWBUVKUULSZAUVRUWFAUXCUVRUWFURAUXCWCZUVR
        UWFUXDUVRWCZUVTUVLUVLCMZOZPLZUWEUXDUVTUXHTUVRUXDUVTUVLUVSUUBMZYRLZUXHUX
        CUVTUXJTAYRUUBUUCUVKWDWEUXDUEUFUVLUXINNUEUHZUXKCMZOZPLZUXHYRNYRUEUFNNUX
        NUITUXDUAUBUEUFNNYQUXNUXNYNUXKTZYNUXKYPUXMPUXOWFUXOYOUXLYNUXKCVAVEVFUBU
        HUFUHZTUXNWGWHWBUXDUXKUVLTZUXPUXITZWCWCZUXKUVLUXMUXGPUXDUXQUXRWIZUXSUXL
        UXFUXSUXKUVLCUXTVDVEVFUXDUVKUUDWJUXDUVSUUBWJUXHNSUXDUVLUXGPVJWBWKWLWMUX
        EUVLUWBUXGUWDPUXEUVQUVNUVKYMMZOZPLZUVLUWBUXEUVPUYBUVNPUXEUVOUYAUXEUYAUV
        LUMMZUVQUMMZUVOUXDUYAUYDTUVRUXDUAUBBCDUVKFABNSUXCGWMZAUWSUXCHWMIAFBCWNU
        XCJWMZAUXCWOZUQWMUXEUVLUVQUMUXDUVRWOZVDUXDUYEUVOTZUVRUXDUVNUWRSZUVOBSUY
        JAUYKUXCAUVMBUVNWNZUYKAQBYMWNZUVMQWPUYLABCDFGHIJWRZUVKWQQBUVMYMWSWTBUVK
        UVNXAVOWMZUXDFBUVNCUYGUXDUVNUWRRXBUULXCZXDZFUXDUWRUYPUVNUYOUXDUVNNSZUVN
        RMZUULSZUVNUYPSZUXDUYKUYRUYOUVNUWRXEVOUXDUYSUVKUULUXDBYMUVKUYFAUYMUXCUY
        NWMZAUWQUXCUVKQSUXAUVKUUCXFXGZXHUYHXINQXJUJXKZRWNZRNXLZVUAUYRUYTWCXMXNN
        VUDRXOZNUVNUULRXPXQXRXSIYAXTUVOBUVNYBYCWMYKVEYDUYIUXDUWBUYCTUVRUXDBYMUV
        KUYFVUBVUCYEWMWAZUXEUXFUWCUXEUVLUWBCVUHVDVEVFWLYFYGYHYIYJVDAUUGUWRSZUUH
        BSUUKUUHTAUUFBUUGWNZVUIAUYMUUFQWPVUJUYNEWQQBUUFYMWSWTBEUUGXAVOZAFBUUGCJ
        AUUGUYQFAUWRUYPUUGVUKAUUGNSZUUGRMZUULSZUUGUYPSZAVUIVULVUKUUGUWRXEVOAVUM
        EUULABYMEGUYNAUWQUUMEQSUXAKEUUCXFYCXHKXIVUEVUFVUOVULVUNWCXMXNVUGNUUGUUL
        RXPXQXRXSIYAXTUUHBUUGYBYCYL $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Fibonacci Numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Fibci $.

  $( The Fibonacci sequence. $)
  cfib $a class Fibci $.

  $( Define the Fibonacci sequence, where that each element is the sum of the
     two preceding ones, starting from 0 and 1.  (Contributed by Thierry
     Arnoux, 25-Apr-2019.) $)
  df-fib $a |- Fibci = ( <" 0 1 "> seqstr (
      w e. ( Word NN0 i^i ( `' # " ( ZZ>= ` 2 ) ) )
    |-> ( ( w ` ( ( # ` w ) - 2 ) ) + ( w ` ( ( # ` w ) - 1 ) ) ) ) ) $.

  ${
    $( Lemma for ~ fib0 , ~ fib1 and ~ fibp1 .  (Contributed by Thierry Arnoux,
       25-Apr-2019.) $)
    fiblem $p |- ( w e. ( Word NN0 i^i ( `' # " ( ZZ>= ` 2 ) ) )
      |-> ( ( w ` ( ( # ` w ) - 2 ) ) + ( w ` ( ( # ` w ) - 1 ) ) ) ) :
      ( Word NN0 i^i ( `' # " ( ZZ>= ` ( # ` <" 0 1 "> ) ) ) ) --> NN0 $=
      ( cn0 chash cc0 c1 cfv cuz cima cin c2 cmin co caddc fveq2i wf syl cn cvv
      wcel syl6eleqr cword ccnv cs2 cv cmpt eqcomi imaeq2i ineq2i eqid mpteq12i
      s2len cfzo elin simplbi wrdf clt wbr wa simprbi cpnf csn cun wfn wb hashf
      ffn elpreima mp2b sylib simprd uznn0sub 1zzd 1p1e2 peano2uzr syl2anc nnuz
      cz nnred crp 2rp a1i ltsubrpd elfzo0 syl3anbrc ffvelrnd fzo0end nn0addcld
      fmpti ) ABUAZCUBZDEUCCFZGFZHZIZBAUDZCFZJKLZWOFZWPEKLZWOFZMLZAWIWJJGFZHZIZ
      XAUEAXDXAWNXAXCWMWIXBWLWJJWKGWKJDEUKUFNZUGUHXAUIUJWOWNSZWRWTXFDWPULLZBWQW
      OXFWOWISZXGBWOOXFXHWOWMSZWOWIWMUMZUNBWOUOPZXFWQBSZWPQSZWQWPUPUQWQXGSXFWPX
      BSXLXFWPWLXBXFWORSZWPWLSZXFXIXNXOURZXFXHXIXJUSRBUTVAVBZCOCRVCXIXPVDVERXQC
      VFRWOWLCVGVHVIVJXETZJWPVKPXFWPEGFZQXFEVQSWPEEMLZGFZSWPXSSXFVLXFWPXBYAXRXT
      JGVMNTEWPVNVOVPTZXFWPJXFWPYBVRJVSSXFVTWAWBWQWPWCWDWEXFXGBWSWOXKXFXMWSXGSY
      BWPWFPWEWGWH $.

    $( Value of the Fibonacci sequence at index 0.  (Contributed by Thierry
       Arnoux, 25-Apr-2019.) $)
    fib0 $p |- ( Fibci ` 0 ) = 0 $=
      ( vw cc0 cfib cfv c1 cs2 cn0 chash c2 cuz cima cin cmin co wceq wtru wcel
      a1i 0nn0 cfzo cword ccnv cv caddc cmpt csseq df-fib fveq1i cvv nn0ex 1nn0
      s2cld eqid wf fiblem 2nn lbfzo0 mpbir s2len oveq2i eleqtrri sseqfv1 s2fv0
      cn trud ax-mp 3eqtri ) BCDBBEFZAGUAZHUBZIJDKLAUCZHDZIMNVKDVLEMNVKDUDNUEZU
      FNZDZBVHDZBBCVNAUGUHVOVPOPGVMVHBVIVJVHHDZJDKLZGUIQPUJRPBEGBGQZPSREGQPUKRU
      LVRUMVRGVMUNPAUORBBVQTNZQPBBITNZVTBWAQIVDQUPIUQURVQIBTBEUSUTVARVBVEVSVPBO
      SBEGVCVFVG $.

    $( Value of the Fibonacci sequence at index 1.  (Contributed by Thierry
       Arnoux, 25-Apr-2019.) $)
    fib1 $p |- ( Fibci ` 1 ) = 1 $=
      ( vw c1 cfib cfv cc0 cs2 cn0 chash c2 cuz cima cin cmin co wceq wtru wcel
      a1i 1nn0 cfzo cword ccnv cv caddc cmpt csseq df-fib fveq1i cvv nn0ex 0nn0
      s2cld eqid wf fiblem cn clt wbr 2nn elfzo0 mpbir3an s2len oveq2i eleqtrri
      1lt2 sseqfv1 trud s2fv1 ax-mp 3eqtri ) BCDBEBFZAGUAZHUBZIJDKLAUCZHDZIMNVN
      DVOBMNVNDUDNUEZUFNZDZBVKDZBBCVQAUGUHVRVSOPGVPVKBVLVMVKHDZJDKLZGUIQPUJRPEB
      GEGQPUKRBGQZPSRULWAUMWAGVPUNPAUORBEVTTNZQPBEITNZWCBWDQWBIUPQBIUQURSUSVEBI
      UTVAVTIETEBVBVCVDRVFVGWBVSBOSEBGVHVIVJ $.

    $d t w $.  $d t N $.
    $( Value of the Fibonacci sequence at higher indices.  (Contributed by
       Thierry Arnoux, 25-Apr-2019.) $)
    fibp1 $p |- ( N e. NN -> ( Fibci ` ( N + 1 ) ) = ( ( Fibci ` ( N - 1 ) )
      + ( Fibci ` N ) ) ) $=
      ( vw vt wcel c1 caddc cfib cfv cc0 cn0 chash cuz cmin wceq a1i cvv oveq1d
      co c2 wf cn cs2 cword ccnv cima cin cv cmpt csseq cfzo cres df-fib fveq1i
      nn0ex 0nn0 1nn0 s2cld eqid fiblem eluzp1p1 nnuz eleq2s s2len 1p1e2 eqtr4i
      fveq2i syl6eleqr sseqp1 id fveq2 fveq12d oveq12d cbvmptv wa simpr reseq1d
      eqtr4d fveq2d sseqf feq1d nnnn0 nn0addcld subiwrdlen eqtrd nncn 1cnd 2cnd
      mpbird adantr addsubassd subsub2d 2m1e1 oveq2i 3eqtr2d fveq1d clt nnm1nn0
      wbr peano2nn nnre cr 2re readdcld crp 2rp ltaddrpd ltsub1dd syl6eq elfzo0
      breqtrd syl3anbrc fvres syl 3eqtrd simpl nncnd pncand cfz nn0fz0 sylib cz
      1red nnz fzval3 eleqtrd syldan subiwrd ovex eqeltri syl6eleq eqeltrd cpnf
      resex csn cun wfn wb hashf ffn elpreima sylanbrc elind eqeltrrd fvmptd
      mp2b ) AUADZAEFRZGHZUUGIEUBZBJUCZKUDZSLHZUEZUFZBUGZKHZSMRZUUOHZUUPEMRZUUO
      HZFRZUHZUIRZHZUVCIUUGUJRZUKZUVBHAEMRZGHZAGHZFRZUUHUVDNUUFUUGGUVCBULZUMOUU
      FJUVBUUIUUGUUJUUKUUIKHZLHZUEUFZJPDUUFUNOZUUFIEJIJDUUFUOOEJDUUFUPOZUQZUVNU
      RZUVNJUVBTUUFBUSOZUUFUUGEEFRZLHZUVMUUGUWADAELHUAEAUTVAVBZUVLUVTLUVLSUVTIE
      VCVDVEVFVGVHUUFCUVFCUGZKHZSMRZUWCHZUWDEMRZUWCHZFRZUVJUUNUVBPUVBCUUNUWIUHN
      UUFBCUUNUVAUWIUUOUWCNZUURUWFUUTUWHFUWJUUQUWEUUOUWCUWJVIZUWJUUPUWDSMUUOUWC
      KVJZQVKUWJUUSUWGUUOUWCUWKUWJUUPUWDEMUWLQVKVLVMOUUFUWCUVFNZUWCGUVEUKZNZUWI
      UVJNUUFUWMVNZUWCUVFUWNUUFUWMVOUWPGUVCUVEGUVCNZUWPUVKOVPVQUUFUWOVNZUWFUVHU
      WHUVIFUWRUWFUVGUWCHUVGUWNHZUVHUWRUWEUVGUWCUWRUWEUUGSMRZUVGUWRUWDUUGSMUWRU
      WDUWNKHZUUGUWRUWCUWNKUUFUWOVOZVRUUFUXAUUGNUWOUUFJGUUGUVOUUFJJGTJJUVCTUUFJ
      UVBUUIUVNUVOUVQUVRUVSVSUUFJJGUVCUWQUUFUVKOZVTWHZUUFAEAWAZUVPWBZWCZWIWDZQU
      UFUWTUVGNUWOUUFUWTAESMRFRASEMRZMRZUVGUUFAESAWEZUUFWFZUUFWGZWJUUFASEUXKUXM
      UXLWKUXJUVGNUUFUXIEAMWLWMOWNWIWDVRUWRUVGUWCUWNUXBWOUWRUVGUVEDZUWSUVHNUUFU
      XNUWOUUFUVGJDUUGUADUVGUUGWPWRUXNAWQAWSUUFUVGASFRZEMRZUUGWPUUFAUXOEAWTZUUF
      ASUXQSXADUUFXBOXCUUFYBUUFASUXQSXDDUUFXEOXFXGUUFUXPAUXIFRUUGUUFASEUXKUXMUX
      LWJUXIEAFWLWMXHXJUVGUUGXIXKWIUVGUVEGXLXMXNUWRUWHAUWCHAUWNHZUVIUWRUWGAUWCU
      WRUWGUUGEMRAUWRUWDUUGEMUXHQUWRAEUWRAUUFUWOXOXPUWRWFXQWDVRUWRAUWCUWNUXBWOU
      WRAUVEDZUXRUVINUUFUXSUWOUUFAIAXRRZUVEUUFAJDAUXTDUXEAXSXTUUFAYADUXTUVENAYC
      IAYDXMYEWIAUVEGXLXMXNVLYFUUFUWNUVFUUNUUFGUVCUVEUXCVPUUFUUJUUMUWNUUFJGUUGU
      VOUXDUXFYGUUFUWNPDZUXAUULDZUWNUUMDZUYAUUFGUVEGUVCPUVKUUIUVBUIYHYIYMOUUFUX
      AUUGUULUXGUUFUUGUWAUULUWBUVTSLVDVFYJYKPJYLYNYOZKTKPYPUYCUYAUYBVNYQYRPUYDK
      YSPUWNUULKYTUUEUUAUUBUUCUVJPDUUFUVHUVIFYHOUUDXN $.

    $( Value of the Fibonacci sequence at index 2.  (Contributed by Thierry
       Arnoux, 25-Apr-2019.) $)
    fib2 $p |- ( Fibci ` 2 ) = 1 $=
      ( c1 caddc co cfib cfv c2 1p1e2 fveq2i cmin cc0 wcel wceq 1nn fibp1 ax-mp
      cn 1m1e0 fib0 eqtri fib1 oveq12i 0p1e1 3eqtri eqtr3i ) AABCZDEZFDEAUEFDGH
      UFAAICZDEZADEZBCZJABCAAPKUFUJLMANOUHJUIABUHJDEJUGJDQHRSTUAUBUCUD $.

    $( Value of the Fibonacci sequence at index 3.  (Contributed by Thierry
       Arnoux, 25-Apr-2019.) $)
    fib3 $p |- ( Fibci ` 3 ) = 2 $=
      ( c2 c1 caddc co cfib c3 2p1e3 fveq2i cmin cn wcel wceq fibp1 ax-mp 2m1e1
      cfv 2nn fib1 eqtri fib2 oveq12i 1p1e2 3eqtri eqtr3i ) ABCDZEPZFEPAUEFEGHU
      FABIDZEPZAEPZCDZBBCDAAJKUFUJLQAMNUHBUIBCUHBEPBUGBEOHRSTUAUBUCUD $.

    $( Value of the Fibonacci sequence at index 4.  (Contributed by Thierry
       Arnoux, 25-Apr-2019.) $)
    fib4 $p |- ( Fibci ` 4 ) = 3 $=
      ( c3 c1 caddc co cfib cfv c4 3p1e4 fveq2i cmin c2 cn wcel 3nn fibp1 ax-mp
      wceq 3m1e2 fib2 eqtri fib3 oveq12i 1p2e3 3eqtri eqtr3i ) ABCDZEFZGEFAUFGE
      HIUGABJDZEFZAEFZCDZBKCDAALMUGUKQNAOPUIBUJKCUIKEFBUHKERISTUAUBUCUDUE $.

    $( Value of the Fibonacci sequence at index 5.  (Contributed by Thierry
       Arnoux, 25-Apr-2019.) $)
    fib5 $p |- ( Fibci ` 5 ) = 5 $=
      ( c4 c1 caddc co cfib cfv c5 4p1e5 fveq2i cmin c2 c3 wcel wceq 4nn ax-1cn
      cn fibp1 3cn addcomli ax-mp 3p1e4 subaddrii fib3 eqtri fib4 oveq12i 3p2e5
      4cn 2cn 3eqtri eqtr3i ) ABCDZEFZGEFGUMGEHIUNABJDZEFZAEFZCDZKLCDGAQMUNURNO
      ARUAUPKUQLCUPLEFKUOLEABLUIPSLBASPUBTUCIUDUEUFUGLKGSUJUHTUKUL $.

    $( Value of the Fibonacci sequence at index 6.  (Contributed by Thierry
       Arnoux, 25-Apr-2019.) $)
    fib6 $p |- ( Fibci ` 6 ) = 8 $=
      ( c5 c1 caddc co cfib cfv c6 c8 5p1e6 fveq2i cmin c3 wcel wceq 5cn ax-1cn
      cn c4 4cn addcomli 5nn fibp1 ax-mp 4p1e5 subaddrii fib4 eqtri oveq12i 3cn
      fib5 5p3e8 3eqtri eqtr3i ) ABCDZEFZGEFHUNGEIJUOABKDZEFZAEFZCDZLACDHAQMUOU
      SNUAAUBUCUQLURACUQREFLUPREABROPSRBASPUDTUEJUFUGUJUHALHOUIUKTULUM $.
  $}

$( End $[ set-mbox-ta-fibonacci.mm $] $)


$( Begin $[ set-mbox-ta-proba.mm $] $)
$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Probability
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Probability Theory
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c Prob $. $( The class of probability measures $)

  $( Extend class notation to include the class of probability measures. $)
  cprb $a class Prob $.

  $( Define the class of probability measures as the set of measures with total
     measure 1.  (Contributed by Thierry Arnoux, 14-Sep-2016.) $)
  df-prob $a |- Prob = { p e. U. ran measures | ( p ` U. dom p ) = 1 } $.

  ${
    $d p P $.
    $( The property of being a probability measure.  (Contributed by Thierry
       Arnoux, 8-Dec-2016.) $)
    elprob $p |- ( P e. Prob <->
      ( P e. U. ran measures /\ ( P ` U. dom P ) = 1 ) ) $=
      ( vp cv cdm cuni cfv c1 wceq cmeas crn cprb id dmeq unieqd fveq12d eqeq1d
      df-prob elrab2 ) BCZDZEZSFZGHADZEZAFZGHBAIJEKSAHZUBUEGUFUAUDSAUFLUFTUCSAM
      NOPBQR $.
  $}

  $( A probability measure is a measure on its domain.  (Contributed by Thierry
     Arnoux, 23-Dec-2016.) $)
  domprobmeas $p |- ( P e. Prob -> P e. ( measures ` dom P ) ) $=
    ( cprb wcel cmeas crn cuni cdm cfv c1 wceq elprob simplbi measbasedom sylib
    ) ABCZADEFCZAAGZDHCOPQFAHIJAKLAMN $.

  $( The domain of a probability measure is a sigma-algebra.  (Contributed by
     Thierry Arnoux, 23-Dec-2016.) $)
  domprobsiga $p |- ( P e. Prob -> dom P e. U. ran sigAlgebra ) $=
    ( cprb wcel cdm cmeas cfv csiga crn cuni domprobmeas measbase syl ) ABCAADZ
    EFCMGHICAJMAKL $.

  $( The probability of the universe set is 1.  Second axiom of Kolmogorov.
     (Contributed by Thierry Arnoux, 8-Dec-2016.) $)
  probtot $p |- ( P e. Prob -> ( P ` U. dom P ) = 1 ) $=
    ( cprb wcel cmeas crn cuni cdm cfv c1 wceq elprob simprbi ) ABCADEFCAGFAHIJ
    AKL $.

  $( A probability is an element of [ 0 , 1 ].  First axiom of Kolmogorov.
     (Contributed by Thierry Arnoux, 25-Dec-2016.) $)
  prob01 $p |- ( ( P e. Prob /\ A e. dom P ) -> ( P ` A ) e. ( 0 [,] 1 ) ) $=
    ( cprb wcel cdm wa cfv cxr cc0 cle wbr c1 cicc co cpnf cmeas cuni adantr wb
    w3a domprobmeas measvxrge0 sylan elxrge0 sylib simpr crn measbase unielsiga
    csiga 3syl wss elssuni adantl measssd probtot breq2d mpbid sylanbrc 0xr 1re
    df-3an rexri elicc1 mp2an sylibr ) BCDZABEZDZFZABGZHDZIVKJKZVKLJKZTZVKILMND
    ZVJVLVMFZVNVOVJVKIOMNDZVQVGBVHPGDZVIVRBUAZAVHBUBUCVKUDUEVJVKVHQZBGZJKZVNVJA
    WAVHBVGVSVIVTRZVGVIUFVJVSVHUJUGQDWAVHDWDVHBUHVHUIUKVIAWAULVGAVHUMUNUOVGWCVN
    SVIVGWBLVKJBUPUQRURVLVMVNVBUSIHDLHDVPVOSUTLVAVCILVKVDVEVF $.

  $( The probability of the empty event set is 0.  (Contributed by Thierry
     Arnoux, 25-Dec-2016.) $)
  probnul $p |- ( P e. Prob -> ( P ` (/) ) = 0 ) $=
    ( cprb wcel cdm cmeas cfv c0 cc0 wceq domprobmeas measvnul syl ) ABCAADZEFC
    GAFHIAJMAKL $.

  ${
    unveldomd.1 $e |- ( ph -> P e. Prob ) $.
    $( The universe is an element of the domain of the probability, the
       universe (entire probability space) being ` U. dom P ` in our
       construction.  (Contributed by Thierry Arnoux, 22-Jan-2017.) $)
    unveldomd $p |- ( ph -> U. dom P e. dom P ) $=
      ( cprb wcel cdm csiga crn cuni cfv domprobsiga sgon baselsiga 4syl ) ABDE
      BFZGHIEOOIZGJEPOECBKOLPOMN $.
  $}

  $( The universe is an element of the domain of the probability, the universe
     (entire probability space) being ` U. dom P ` in our construction.
     (Contributed by Thierry Arnoux, 22-Jan-2017.) $)
  unveldom $p |- ( P e. Prob -> U. dom P e. dom P ) $=
    ( cprb wcel id unveldomd ) ABCZAFDE $.

  $( The empty set is an element of the domain of the probability.
     (Contributed by Thierry Arnoux, 22-Jan-2017.) $)
  nuleldmp $p |- ( P e. Prob -> (/) e. dom P ) $=
    ( cprb wcel cdm csiga crn cuni c0 domprobsiga 0elsiga syl ) ABCADZEFGCHLCAI
    LJK $.

  ${
    $d x A $.  $d x P $.
    $( The probability of the union of a countable disjoint set of events is
       the sum of their probabilities.  (Third axiom of Kolmogorov) Here, the
       ` sum_ ` construct cannot be used as it can handle infinite indexing set
       only if they are subsets of ` ZZ ` , which is not the case here.
       (Contributed by Thierry Arnoux, 25-Dec-2016.) $)
    probcun $p |- ( ( P e. Prob /\ A e. ~P dom P /\ ( A ~<_ _om
      /\ Disj_ x e. A x ) ) -> ( P ` U. A ) = sum* x e. A ( P ` x ) ) $=
      ( cprb wcel cdm cmeas cfv cpw com cdom cv wdisj wa cuni cesum domprobmeas
      wbr wceq measvun syl3an1 ) CDECCFZGHEBUBIEBJKRABALZMNBOCHBUCCHAPSCQABUBCT
      UA $.
  $}

  ${
    $d x A $.  $d x B $.  $d x P $.
    $( The probability of the union two incompatible events is the sum of their
       probabilities.  (Contributed by Thierry Arnoux, 25-Dec-2016.) $)
    probun $p |- ( ( P e. Prob /\ A e. dom P /\ B e. dom P ) ->
      ( ( A i^i B ) = (/) ->
                          ( P ` ( A u. B ) ) = ( ( P ` A ) + ( P ` B ) ) ) ) $=
      ( vx wcel c0 wceq cfv caddc co wa syl6eq sylan9eqr fveq2d 3ad2ant2 adantr
      cc0 syl2anc sseldi cr cprb cdm w3a cin wi simpll1 simplr simpr cdif disj3
      cun biimpi difeq1 difid eqtr2 syldan uneq12d unidm probnul oveq12d eqtr4d
      00id syl12anc ex wne cxad 3anass anbi1i df-3an bitr4i cpr cuni cv cpw com
      cesum cdom wbr wdisj simpl1 wss prssi prex elpw sylibr prct simp2l simp2r
      wb simp3 id disjprg syl3anc biimpar probcun syl112anc uniprg fveq2 adantl
      c1 cicc cpnf unitssxrge0 simp1 prob01 esumpr eqeq12d mpbid sylanb simpll2
      unitssre simpll3 rexadd eqtrd pm2.61dane ) CUAEZACUBZEZBXQEZUCZABUDFGZABU
      KZCHZACHZBCHZIJZGZUEABXTABGZKZYAYGYIYAKXPYHYAYGXPXRXSYHYAUFXTYHYAUGYIYAUH
      XPYHYAKZKZYCQYFYJXPYCFCHZQYJYBFCYJYBFFUKFYJAFBFYAYHAABUIZFYAAYMGABUJULYHY
      MBBUIFABBUMBUNLMZYHYAAFGBFGYNABFUOUPZUQFURLNCUSZMYKYFQQIJQYKYDQYEQIYJXPYD
      YLQYJAFCYNNYPMYJXPYEYLQYJBFCYONYPMUTVBLVAVCVDXTABVEZKZYAYGYRYAKZYCYDYEVFJ
      ZYFYRXPXRXSKZYQUCZYAYCYTGZYRXPUUAKZYQKUUBXTUUDYQXPXRXSVGVHXPUUAYQVIVJUUBY
      AKZABVKZVLZCHZUUFDVMZCHZDVPZGZUUCUUEXPUUFXQVNEZUUFVOVQVRZDUUFUUIVSZUULXPU
      UAYQYAVTUUEUUFXQWAZUUMUUBUUPYAUUAXPUUPYQABXQWBOPUUFXQABWCWDWEUUBUUNYAUUAX
      PUUNYQABXQXQWFOPUUBUUOYAUUBXRXSYQUUOYAWIXPXRXSYQWGZXPXRXSYQWHZXPUUAYQWJZD
      ABUUIABXQUUIAGZWKUUIBGZWKWLWMWNDUUFCWOWPUUBUULUUCWIYAUUBUUHYCUUKYTUUAXPUU
      HYCGYQUUAUUGYBCABXQXQWQNOUUBABUUJYDDYEXQXQUUTUUJYDGUUBUUIACWRWSUVAUUJYEGU
      UBUUIBCWRWSUUQUURUUBQWTXAJZQXBXAJZYDXCUUBXPXRYDUVBEZXPUUAYQXDZUUQACXEZRSU
      UBUVBUVCYEXCUUBXPXSYEUVBEZUVEUURBCXEZRSUUSXFXGPXHXIYSYDTEYETEYTYFGYSUVBTY
      DXKYSXPXRUVDXPXRXSYQYAUFZXPXRXSYQYAXJUVFRSYSUVBTYEXKYSXPXSUVGUVIXPXRXSYQY
      AXLUVHRSYDYEXMRXNVDXO $.
  $}

  $( The probability of the difference of two event sets.  (Contributed by
     Thierry Arnoux, 12-Dec-2016.) $)
  probdif $p |- ( ( P e. Prob /\ A e. dom P /\ B e. dom P ) ->
    ( P ` ( A \ B ) ) = ( ( P ` A ) - ( P ` ( A i^i B ) ) ) ) $=
    ( cprb wcel cdm w3a cfv cin cmin co cdif caddc wceq syl3an1 unitsscn prob01
    cc syl2anc sseldi cun inundif fveq2i simp1 csiga cuni domprobsiga difelsiga
    crn inelsiga c0 inindif probun mpi syl3anc syl5eqr oveq1d c1 pncan2d eqtr2d
    cc0 cicc ) CDEZACFZEZBVDEZGZACHZABIZCHZJKVJABLZCHZMKZVJJKVLVGVHVMVJJVGVHVIV
    KUAZCHZVMVNACABUBUCVGVCVIVDEZVKVDEZVOVMNZVCVEVFUDZVCVDUEUIUFEZVEVFVPCUGZABV
    DUJOZVCVTVEVFVQWAABVDUHOZVCVPVQGVIVKIUKNVRABULVIVKCUMUNUOUPUQVGVJVLVGVAURVB
    KZRVJPVGVCVPVJWDEVSWBVICQSTVGWDRVLPVGVCVQVLWDEVSWCVKCQSTUSUT $.

  $( A probability law is increasing with regard to event set inclusion.
     (Contributed by Thierry Arnoux, 10-Feb-2017.) $)
  probinc $p |- ( ( ( P e. Prob /\ A e. dom P /\ B e. dom P ) /\ A C_ B ) ->
    ( P ` A ) <_ ( P ` B ) ) $=
    ( cprb wcel cdm w3a wss wa cmeas cfv simpl1 domprobmeas simpl2 simpl3 simpr
    syl measssd ) CDEZACFZEZBTEZGZABHZIZABTCUESCTJKESUAUBUDLCMQSUAUBUDNSUAUBUDO
    UCUDPR $.

  $( The probability of the complement of a set.  That is, the probability that
     the event ` A ` does not occur.  (Contributed by Thierry Arnoux,
     15-Dec-2016.) $)
  probdsb $p |- ( ( P e. Prob /\ A e. dom P ) ->
    ( P ` ( U. dom P \ A ) ) = ( 1 - ( P ` A ) ) ) $=
    ( cprb wcel cdm wa cuni cdif cfv cmin co wceq simpl unveldomd simpr probdif
    cin c1 syl3anc probtot wss elssuni sseqin2 sylib fveq2d oveqan12d eqtrd ) B
    CDZABEZDZFZUIGZAHBIZULBIZULAQZBIZJKZRABIZJKUKUHULUIDUJUMUQLUHUJMZUKBUSNUHUJ
    OULABPSUHUJUNRUPURJBTUJUOABUJAULUAUOALAUIUBAULUCUDUEUFUG $.

  ${
    probmeasd.1 $e |- ( ph -> P e. Prob ) $.
    $( A probability measure is a measure.  (Contributed by Thierry Arnoux,
       2-Feb-2017.) $)
    probmeasd $p |- ( ph -> P e. U. ran measures ) $=
      ( cdm cmeas cfv wcel crn cuni cprb domprobmeas syl measbasedom sylibr ) A
      BBDEFGZBEHIGABJGOCBKLBMN $.

    ${
      probvalrnd.1 $e |- ( ph -> A e. dom P ) $.
      $( The value of a probability is a real number.  (Contributed by Thierry
         Arnoux, 2-Feb-2017.) $)
      probvalrnd $p |- ( ph -> ( P ` A ) e. RR ) $=
        ( cc0 c1 cicc co cr cfv unitssre cprb wcel cdm prob01 syl2anc sseldi )
        AFGHIZJBCKZLACMNBCONTSNDEBCPQR $.
    $}

    $( The probability of the universe set is finite.  (Contributed by Thierry
       Arnoux, 2-Feb-2017.) $)
    probtotrnd $p |- ( ph -> ( P ` U. dom P ) e. RR ) $=
      ( cdm cuni unveldomd probvalrnd ) ABDEBCABCFG $.
  $}

  ${
    $d b c A $.  $d b c B $.  $d b c P $.  $d c b ph $.
    totprobd.1 $e |- ( ph -> P e. Prob ) $.
    totprobd.2 $e |- ( ph -> A e. dom P ) $.
    totprobd.3 $e |- ( ph -> B e. ~P dom P ) $.
    totprobd.4 $e |- ( ph -> U. B = U. dom P ) $.
    totprobd.5 $e |- ( ph -> B ~<_ _om ) $.
    totprobd.6 $e |- ( ph -> Disj_ b e. B b ) $.
    $( Law of total probability, deduction form.  (Contributed by Thierry
       Arnoux, 25-Dec-2016.) $)
    totprobd $p |- ( ph -> ( P ` A ) = sum* b e. B ( P ` ( b i^i A ) ) ) $=
      ( vc cuni cin cfv wceq wcel syl syl2anc adantr cesum wss elssuni sseqtr4d
      cv cdm sseqin2 sylib fveq2d cmpt cmeas cpw com cdom wbr wdisj domprobmeas
      cprb measinb measvun syl112anc cc0 c1 cicc co eqidd wa simpr ineq1d csiga
      crn domprobsiga sigaclcu syl3anc inelsiga prob01 fvmptd elelpwi esumeq2dv
      3eqtr3d eqtr3d ) ACMZBNZDOZBDOCEUEZBNZDOZEUAZAWCBDABWBUBWCBPABDUFZMZWBABW
      IQZBWJUBGBWIUCRIUDBWBUGUHUIAWBLWILUEZBNZDOZUJZOZCWEWOOZEUAZWDWHAWOWIUKOZQ
      ZCWIULQZCUMUNUOZECWEUPWPWRPADWSQZWKWTADURQZXCFDUQRGLBWIDUSSHJKECWIWOUTVAA
      LWBWNWDWIWOVBVCVDVEZAWOVFAWLWBPZVGZWMWCDXGWLWBBAXFVHVIUIAWIVJVKMQZXAXBWBW
      IQZAXDXHFDVLRZHJCWIVMVNZAXDWCWIQZWDXEQFAXHXIWKXLXJXKGWBBWIVOVNWCDVPSVQACW
      QWGEAWECQZVGZLWEWNWGWIWOXEXNWOVFXNWLWEPZVGZWMWFDXPWLWEBXNXOVHVIUIXNXMXAWE
      WIQZAXMVHAXAXMHTWECWIVRSZXNXDWFWIQZWGXEQAXDXMFTXNXHXQWKXSAXHXMXJTXRAWKXMG
      TWEBWIVOVNWFDVPSVQVSVTWA $.
  $}

  ${
    $d b c A $.  $d b c B $.  $d b c P $.
    $( Law of total probability.  (Contributed by Thierry Arnoux,
       25-Dec-2016.) $)
    totprob $p |- ( ( P e. Prob /\ A e. dom P /\
      ( U. B = U. dom P /\ B e. ~P dom P /\ ( B ~<_ _om /\ Disj_ b e. B b ) ) )
      -> ( P ` A ) = sum* b e. B ( P ` ( b i^i A ) ) ) $=
      ( vc cprb wcel cdm cuni wceq cpw com cdom wbr cv wdisj w3a cfv cin cesum
      wa simp1 simp2 simp32 simp31 simp33l cbvdisjv sylib totprobd ineq1 fveq2d
      simp33r id cbvesumv syl6eqr ) CFGZACHZGZBIUQIJZBUQKGZBLMNZDBDOZPZUAZQZQZA
      CRBEOZASZCRZETBVBASZCRZDTVFABCEUPURVEUBUPURVEUCUPURUSUTVDUDUPURUSUTVDUEVA
      VCUSUTUPURUFVFVCEBVGPVAVCUSUTUPURULDEBVBVGVBVGJZUMUGUHUIBVKVIDEVLVJVHCVBV
      GAUJUKUNUO $.
  $}

  ${
    $d x M $.  $d x y S $.
    $( Build a probability measure from a finite measure.  (Contributed by
       Thierry Arnoux, 17-Dec-2016.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    probfinmeasbOLD $p |- ( ( M e. ( measures ` S ) /\ ( M ` U. S ) e. RR+ )
                   -> ( x e. S |-> ( ( M ` x ) /e ( M ` U. S ) ) ) e. Prob ) $=
      ( vy cmeas cfv wcel cuni crp wa cv cxdiv co crn wceq cvv wral fveq2i cpw
      c1 cmpt cdm cprb measdivcstOLD ovex rgenw dmmptg ax-mp measbasedom sylibr
      syl6eleqr unieqi csiga measbase cdif com cdom wbr wi wss isrnsigau simprd
      w3a simp1d syl id rpxdivcld anim12i fveq2 oveq1d eqid fvmptg cc0 wne rpre
      cr rpne0 xdivid syl2anc adantl eqtrd syl5eq elprob sylanbrc ) CBEFZGZBHZC
      FZIGZJZABAKZCFZWHLMZUAZENHGZWNUBZHZWNFZTOWNUCGWJWNWPEFZGWOWJWNWEWSAWHBCUD
      WPBEWMPGZABQWPBOWTABWLWHLUEUFABWMPUGUHZRUKWNUIUJWJWRWGWNFZTWQWGWNWPBXAULR
      WJXBWHWHLMZTWJWGBGZXCIGZJXBXCOWFXDWIXEWFBUMNHGZXDBCUNXFXDWGDKZUOBGDBQZXGU
      PUQURXGHBGUSDBSQZXFBWGSUTXDXHXIVCDBVAVBVDVEWIWHWHWIVFZXJVGVHAWGWMXCBIWNWK
      WGOWLWHWHLWKWGCVIVJWNVKVLVEWIXCTOZWFWIWHVPGWHVMVNXKWHVOWHVQWHVRVSVTWAWBWN
      WCWD $.
  $}

  ${
    $( Build a probability measure from a finite measure.  (Contributed by
       Thierry Arnoux, 31-Jan-2017.) $)
    probfinmeasb $p |- ( ( M e. ( measures ` S ) /\ ( M ` U. S ) e. RR+ ) ->
      ( M oFC /e ( M ` U. S ) ) e. Prob ) $=
      ( cmeas cfv wcel cuni crp wa cxdiv cofc co crn cdm c1 wceq wfn adantr syl
      cprb fveq2d measdivcst csiga measfn measbase simpr ofcfn fndm measbasedom
      eleqtrrd sylibr unieqd unielsiga eqidd ofcval mpdan cr cc0 wne rpre rpne0
      xdivid syl2anc adantl 3eqtrd elprob sylanbrc ) BACDZEZAFZBDZGEZHZBVJIJKZC
      LFEZVMMZFZVMDZNOVMSEVLVMVOCDZEVNVLVMVGVRVJABUAVLVOACVLVMAPVOAOVLAVJIBUBLF
      ZGVHBAPVKABUCQZVHAVSEZVKABUDQZVHVKUEZUFAVMUGRZTUIVMUHUJVLVQVIVMDZVJVJIKZN
      VLVPVIVMVLVOAWDUKTVLVIAEZWEWFOVLWAWGWBAULRVLAVJVJIBVSGVIVTWBWCVLWGHVJUMUN
      UOVKWFNOZVHVKVJUPEVJUQURWHVJUSVJUTVJVAVBVCVDVMVEVF $.
  $}

  ${
    $d x y A $.  $d x y M $.  $d x y S $.
    $( Build a probability from a measure and a set with finite measure.
       (Contributed by Thierry Arnoux, 25-Dec-2016.) $)
    probmeasb $p |- ( ( M e. ( measures ` S ) /\ A e. S /\ ( M ` A ) e. RR+ )
      -> ( x e. S |-> ( ( M ` ( x i^i A ) ) / ( M ` A ) ) ) e. Prob ) $=
      ( vy cmeas cfv wcel cin co cmpt cuni wceq cc0 cpnf fveq2d adantr syl cxr
      cr crp w3a cv cdiv crn c1 cprb cxdiv measinb measdivcstOLD stoic3 wa cicc
      eqidd simpr ineq1d simp1 csiga measbase simp2 inelsiga syl3anc measvxrge0
      cdm syl2anc fvmptd oveq1d wne cle wbr iccssxr simp3 rpred iccgelb mp3an12
      sseldi 0xr pnfxr wss a1i measssd xrrege0 syl22anc rpne0d rexdiv mpteq2dva
      inss2 eqtrd rerpdivcld ralrimiva dmmptg eqcomd 3eltr3d measbasedom sylibr
      wral unieqd rpcnd incom elssuni df-ss syl5eq diveq1bd sgon baselsiga 4syl
      sylib 1red elprob sylanbrc ) DCFGZHZBCHZBDGZUAHZUBZACAUCZBIZDGZXNUDJZKZFU
      ELHZYAVDZLZYAGZUFMYAUGHXPYAYCFGZHYBXPACXQECEUCZBIZDGZKZGZXNUHJZKZXKYAYFXL
      XMYJXKHXOYMXKHEBCDUIAXNCYJUJUKXPACYLXTXPXQCHZULZYLXSXNUHJZXTYOYKXSXNUHYOE
      XQYIXSCYJNOUMJZYOYJUNYOYGXQMZULZYHXRDYSYGXQBYOYRUOUPPXPYNUOZYOXLXRCHZXSYQ
      HZXPXLYNXLXMXOUQZQZYOCURUELHZYNXMUUAYOXLUUEUUDCDUSZRYTXPXMYNXLXMXOUTZQZXQ
      BCVAVBZXRCDVCVEZVFVGYOXSTHZXNTHZXNNVHZYPXTMYOXSSHUULNXSVIVJZXSXNVIVJUUKYO
      YQSXSNOVKUUJVPYOXNXPXOYNXLXMXOVLZQZVMZYOUUBUUNUUJNSHOSHUUBUUNVQVRNOXSVNVO
      RYOXRBCDUUDUUIUUHXRBVSYOXQBWGVTWAXSXNWBWCZUUQYOXNUUPWDXSXNWEVBWHWFXPYFXKX
      PYCCFXPXTTHZACWPYCCMXPUUSACYOXSXNUURUUPWIWJACXTTWKRZPWLWMYAWNWOXPYECLZYAG
      UFXPYDUVAYAXPYCCUUTWQPXPAUVAXTUFCYATXPYAUNXPXQUVAMZULZXSXNUVCXNXPXOUVBUUO
      QWRXPUUMUVBXPXNUUOWDQUVCXRBDUVCXRUVABIZBUVCXQUVABXPUVBUOUPXPUVDBMZUVBXPXM
      UVEUUGXMUVDBUVAIZBUVABWSXMBUVAVSUVFBMBCWTBUVAXAXGXBRQWHPXCXPXLUUECUVAURGH
      UVACHUUCUUFCXDUVACXEXFXPXHVFWHYAXIXJ $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Conditional Probabilities
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Conditional Probabililty builder $)
  $c cprob $.

  $( Extends class notation with the conditional probability builder. $)
  ccprob $a class cprob $.

  ${
    $d a b p $.
    $( Define the conditional probability.  (Contributed by Thierry Arnoux,
       14-Sep-2016.)  (Revised by Thierry Arnoux, 21-Jan-2017.) $)
    df-cndprob $a |- cprob = ( p e. Prob |->
      ( a e. dom p , b e. dom p |-> ( ( p ` ( a i^i b ) ) / ( p ` b ) ) ) ) $.
  $}

  ${
    $d a b p P $.  $d a b A $.  $d a b B $.
    $( The value of the conditional probability , i.e. the probability for the
       event ` A ` , given ` B ` , under the probability law ` P ` .
       (Contributed by Thierry Arnoux, 21-Jan-2017.) $)
    cndprobval $p |- ( ( P e. Prob /\ A e. dom P /\ B e. dom P ) ->
    ( ( cprob ` P ) ` <. A , B >. ) = ( ( P ` ( A i^i B ) ) / ( P ` B ) ) ) $=
      ( va vb vp cprb wcel cdm ccprob cfv co cin cdiv cv cvv cmpt2 wceq oveq12d
      fveq1 w3a cop df-ov cmpt df-cndprob a1i mpt2eq123dv adantl dmexg mpt2exga
      dmeq id syl2anc fvmptd 3ad2ant1 wa simprl simprr fveq2d simp2 simp3 ovexd
      ineq12d ovmpt2d syl5eqr ) CGHZACIZHZBVGHZUAZABUBCJKZKABVKLABMZCKZBCKZNLZA
      BVKUCVJDEABVGVGDOZEOZMZCKZVQCKZNLZVOVKPVFVHVKDEVGVGWAQZRVIVFFCDEFOZIZWDVR
      WCKZVQWCKZNLZQZWBGJPJFGWHUDRVFFDEUEUFWCCRZWHWBRVFWIDEWDWDWGVGVGWAWCCUKZWJ
      WIWEVSWFVTNVRWCCTVQWCCTSUGUHVFULVFVGPHZWKWBPHCGUIZWLDEVGVGWAPPUJUMUNUOVJV
      PARZVQBRZUPUPZVSVMVTVNNWOVRVLCWOVPAVQBVJWMWNUQVJWMWNURZVCUSWOVQBCWPUSSVFV
      HVIUTVFVHVIVAVJVMVNNVBVDVE $.
  $}

  $( An identity linking conditional probability and intersection.
     (Contributed by Thierry Arnoux, 13-Dec-2016.)  (Revised by Thierry Arnoux,
     21-Jan-2017.) $)
  cndprobin $p |- ( ( ( P e. Prob /\ A e. dom P /\ B e. dom P ) /\
    ( P ` B ) =/= 0 ) ->
    ( ( ( cprob ` P ) ` <. A , B >. ) x. ( P ` B ) ) = ( P ` ( A i^i B ) ) ) $=
    ( cprb wcel cdm w3a cfv cc0 wne wa ccprob cmul co adantr cc unitsscn prob01
    cop sseldi cin cdiv wceq cndprobval oveq1d cicc simp1 csiga crn domprobsiga
    c1 cuni inelsiga syl3an1 syl2anc 3adant2 simpr divcan1d eqtrd ) CDEZACFZEZB
    VAEZGZBCHZIJZKZABSCLHHZVEMNZABUAZCHZVEUBNZVEMNZVKVDVIVMUCVFVDVHVLVEMABCUDUE
    OVGVKVEVDVKPEVFVDIUKUFNZPVKQVDUTVJVAEZVKVNEUTVBVCUGUTVAUHUIULEVBVCVOCUJABVA
    UMUNVJCRUOTOVDVEPEVFVDVNPVEQUTVCVEVNEVBBCRUPTOVDVFUQURUS $.

  $( The conditional probability has values in ` [ 0 , 1 ] ` .  (Contributed by
     Thierry Arnoux, 13-Dec-2016.)  (Revised by Thierry Arnoux,
     21-Jan-2017.) $)
  cndprob01 $p |- ( ( ( P e. Prob /\ A e. dom P /\ B e. dom P ) /\
    ( P ` B ) =/= 0 ) -> ( ( cprob ` P ) ` <. A , B >. ) e. ( 0 [,] 1 ) ) $=
    ( cprb wcel cdm w3a cfv cc0 wne wa cop ccprob cin co syl3anc prob01 syl2anc
    cdiv syl cicc wceq cndprobval adantr cle wbr cmeas simpl1 domprobmeas csiga
    c1 crn cuni domprobsiga simpl2 simpl3 inelsiga wss inss2 measssd unitdivcld
    a1i wb simpr mpbid eqeltrd ) CDEZACFZEZBVHEZGZBCHZIJZKZABLCMHHZABNZCHZVLSOZ
    IUKUAOZVKVOVRUBVMABCUCUDVNVQVLUEUFZVRVSEZVNVPBVHCVNVGCVHUGHEVGVIVJVMUHZCUIT
    VNVHUJULUMEZVIVJVPVHEZVNVGWCWBCUNTVGVIVJVMUOVGVIVJVMUPZABVHUQPZWEVPBURVNABU
    SVBUTVNVQVSEZVLVSEZVMVTWAVCVNVGWDWGWBWFVPCQRVNVGVJWHWBWEBCQRVKVMVDVQVLVAPVE
    VF $.

  $( The conditional probability given a certain event is one.  (Contributed by
     Thierry Arnoux, 20-Dec-2016.)  (Revised by Thierry Arnoux,
     21-Jan-2017.) $)
  cndprobtot $p |- ( ( P e. Prob /\ A e. dom P /\ ( P ` A ) =/= 0 ) ->
    ( ( cprob ` P ) ` <. U. dom P , A >. ) = 1 ) $=
    ( cprb wcel cdm cfv cc0 wne w3a cuni cop ccprob cin cdiv co c1 wceq 3adant3
    wa simpl unveldomd simpr cndprobval syl3anc elssuni 3ad2ant2 sseqin2 fveq2d
    wss sylib oveq1d cicc cc prob01 elunitcn syl simp3 dividd 3eqtrd ) BCDZABEZ
    DZABFZGHZIZVAJZAKBLFFZVFAMZBFZVCNOZVCVCNOPUTVBVGVJQZVDUTVBSZUTVFVADVBVKUTVB
    TZVLBVMUAUTVBUBVFABUCUDRVEVIVCVCNVEVHABVEAVFUIZVHAQVBUTVNVDAVAUEUFAVFUGUJUH
    UKVEVCVEVCGPULODZVCUMDUTVBVOVDABUNRVCUOUPUTVBVDUQURUS $.

  $( The conditional probability given empty event is zero.  (Contributed by
     Thierry Arnoux, 20-Dec-2016.)  (Revised by Thierry Arnoux,
     21-Jan-2017.) $)
  cndprobnul $p |- ( ( P e. Prob /\ A e. dom P /\ ( P ` A ) =/= 0 ) ->
    ( ( cprob ` P ) ` <. (/) , A >. ) = 0 ) $=
    ( cprb wcel cdm cfv cc0 wne w3a c0 cop ccprob cin cdiv co wceq nuleldmp syl
    simp1 simp2 cndprobval syl3anc 0in fveq2i oveq1i a1i probnul oveq1d c1 cicc
    cc prob01 3adant3 elunitcn simp3 div0d 3eqtrd eqtrd ) BCDZABEZDZABFZGHZIZJA
    KBLFFZJAMZBFZVBNOZGVDUSJUTDZVAVEVHPUSVAVCSZVDUSVIVJBQRUSVAVCTJABUAUBVDVHJBF
    ZVBNOZGVBNOGVHVLPVDVGVKVBNVFJBAUCUDUEUFVDVKGVBNVDUSVKGPVJBUGRUHVDVBVDVBGUIU
    JODZVBUKDUSVAVMVCABULUMVBUNRUSVAVCUOUPUQUR $.

  ${
    $d a B $.  $d a P $.
    $( The conditional probability defines a probability law.  (Contributed by
       Thierry Arnoux, 23-Dec-2016.)  (Revised by Thierry Arnoux,
       21-Jan-2017.) $)
    cndprobprob $p |- ( ( P e. Prob /\ B e. dom P /\ ( P ` B ) =/= 0 ) ->
      ( a e. dom P |-> ( ( cprob ` P ) ` <. a , B >. ) ) e. Prob ) $=
      ( cprb wcel cdm cfv cc0 wne w3a cv cop ccprob cmpt cin cdiv co 3adant3 wa
      syl cmeas domprobmeas 3ad2ant1 simp2 c1 cicc cr prob01 elunitrn elunitge0
      crp cle wbr simp3 ne0gt0d elrpd probmeasb syl3anc wceq 3anan32 cndprobval
      wb sylbir mpteq2dva eleq1d mpbird ) BDEZABFZEZABGZHIZJZCVHCKZALBMGGZNZDEZ
      CVHVMAOBGVJPQZNZDEZVLBVHUAGEZVIVJUKEVSVGVIVTVKBUBUCVGVIVKUDVLVJVLVJHUEUFQ
      EZVJUGEVGVIWAVKABUHRZVJUITZVLVJWCVLWAHVJULUMWBVJUJTVGVIVKUNUOUPCAVHBUQURV
      GVIVPVSVBVKVGVISZVOVRDWDCVHVNVQWDVMVHEZSVGWEVIJVNVQUSVGWEVIUTVMABVAVCVDVE
      RVF $.
  $}

  $( Bayes Theorem.  (Contributed by Thierry Arnoux, 20-Dec-2016.)  (Revised by
     Thierry Arnoux, 21-Jan-2017.) $)
  bayesth $p |- ( ( ( P e. Prob /\ A e. dom P /\ B e. dom P ) /\
    ( P ` A ) =/= 0 /\ ( P ` B ) =/= 0 ) -> ( ( cprob ` P ) ` <. A , B >. ) =
    ( ( ( ( cprob ` P ) ` <. B , A >. ) x. ( P ` A ) ) / ( P ` B ) ) ) $=
    ( cprb wcel w3a cfv cc0 wne cop cmul co cdiv cc unitsscn 3adant2 sseldi cin
    wceq cndprobin cdm ccprob cicc cndprob01 simp11 simp13 prob01 syl2anc simp3
    c1 divcan4d incom fveq2i simp12 simp2 syl31anc 3eqtr4a oveq1d eqtr3d ) CDEZ
    ACUAZEZBVAEZFZACGZHIZBCGZHIZFZABJCUBGZGZVGKLZVGMLVKBAJVJGVEKLZVGMLVIVKVGVIH
    UJUCLZNVKOVDVHVKVNEVFABCUDPQVIVNNVGOVIUTVCVGVNEUTVBVCVFVHUEZUTVBVCVFVHUFZBC
    UGUHQVDVFVHUIUKVIVLVMVGMVIABRZCGZBARZCGZVLVMVQVSCABULUMVDVHVLVRSVFABCTPVIUT
    VCVBVFVMVTSVOVPUTVBVCVFVHUNVDVFVHUOBACTUPUQURUS $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Real Valued Random Variables
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c rRndVar $. $( The class of real-valued random variables $)

  $( Extend class notation with the class of real valued random variables. $)
  crrv $a class rRndVar $.

  $( In its generic definition, a random variable is a measurable function from
     a probability space to a Borel set.  Here, we specifically target
     real-valued random variables, i.e. measurable function from a probability
     space to the Borel sigma-algebra on the set of real numbers.  (Contributed
     by Thierry Arnoux, 20-Sep-2016.)  (Revised by Thierry Arnoux,
     25-Jan-2017.) $)
  df-rrv $a |- rRndVar = ( p e. Prob |-> ( dom p MblFnM BrSiga ) ) $.

  ${
    $d p y P $.  $d y X $.
    isrrvv.1 $e |- ( ph -> P e. Prob ) $.
    $( A real-valued random variable is a measurable function from its sample
       space to the Borel sigma-algebra.  (Contributed by Thierry Arnoux,
       25-Jan-2017.) $)
    rrvmbfm $p |- ( ph -> ( X e. ( rRndVar ` P ) <->
                                            X e. ( dom P MblFnM BrSiga ) ) ) $=
      ( vp crrv cfv cdm cbrsiga cmbfm co cprb wcel wceq dmeq oveq1d df-rrv ovex
      cv fvmpt syl eleq2d ) ABFGZBHZIJKZCABLMUCUENDEBESZHZIJKUELFUFBNUGUDIJUFBO
      PEQUDIJRTUAUB $.

    $( Elementhood to the set of real-valued random variables with respect to
       the probability ` P ` .  (Contributed by Thierry Arnoux,
       25-Jan-2017.) $)
    isrrvv $p |- ( ph -> ( X e. ( rRndVar ` P ) <-> ( X : U. dom P --> RR /\
      A. y e. BrSiga ( `' X " y ) e. dom P ) ) ) $=
      ( crrv cfv wcel cdm cbrsiga cmbfm co cuni cmap ccnv wa cr csiga syl cvv
      cv cima wral wf rrvmbfm cprb domprobsiga brsigarn elrnsiga mp1i unibrsiga
      crn ismbfm oveq1i eleq2i reex uniexg elmapg sylancr syl5bb anbi1d 3bitrd
      wb ) ADCFGHDCIZJKLHDJMZVDMZNLZHZDOBUAUBVDHBJUCZPVFQDUDZVIPACDEUEABVDJDACU
      FHVDRULMZHZECUGSZJQRGHJVKHAUHJQUIUJUMAVHVJVIVHDQVFNLZHZAVJVGVNDVEQVFNUKUN
      UOAQTHVFTHZVOVJVCUPAVLVPVMVDVKUQSQVFDTTURUSUTVAVB $.

    rrvvf.1 $e |- ( ph -> X e. ( rRndVar ` P ) ) $.
    $( A real-valued random variable is a function.  (Contributed by Thierry
       Arnoux, 25-Jan-2017.) $)
    rrvvf $p |- ( ph -> X : U. dom P --> RR ) $=
      ( vy cdm cuni cr wf ccnv cv cima wcel cbrsiga wral crrv cfv wa isrrvv
      mpbid simpld ) ABGZHICJZCKFLMUCNFOPZACBQRNUDUESEAFBCDTUAUB $.

    $( A real-valued random variable is a function over the universe.
       (Contributed by Thierry Arnoux, 25-Jan-2017.) $)
    rrvfn $p |- ( ph -> X Fn U. dom P ) $=
      ( cdm cuni cr wf wfn rrvvf ffn syl ) ABFGZHCICNJABCDEKNHCLM $.

    $( The domain of a random variable is the universe.  (Contributed by
       Thierry Arnoux, 25-Jan-2017.) $)
    rrvdm $p |- ( ph -> dom X = U. dom P ) $=
      ( cdm cuni cr wf wceq rrvvf fdm syl ) ABFGZHCICFNJABCDEKNHCLM $.

    $( The range of a random variable as a subset of ` RR ` .  (Contributed by
       Thierry Arnoux, 6-Feb-2017.) $)
    rrvrnss $p |- ( ph -> ran X C_ RR ) $=
      ( cdm cuni cr wf crn wss rrvvf frn syl ) ABFGZHCICJHKABCDELOHCMN $.

    $( A real-valued random variable is a function.  (Contributed by Thierry
       Arnoux, 25-Jan-2017.) $)
    rrvf2 $p |- ( ph -> X : dom X --> RR ) $=
      ( cdm cr wf cuni rrvvf rrvdm feq2d mpbird ) ACFZGCHBFIZGCHABCDEJANOGCABCD
      EKLM $.

    $( The domain of a random variable.  This is useful to shorten proofs.
       (Contributed by Thierry Arnoux, 25-Jan-2017.) $)
    rrvdmss $p |- ( ph -> U. dom P C_ dom X ) $=
      ( cdm cuni wceq wss rrvdm eqimss2 syl ) ACFZBFGZHNMIABCDEJNMKL $.

    $( For a real-value random variable ` X ` , any open interval in ` RR ` is
       the image of a measurable set.  (Contributed by Thierry Arnoux,
       25-Jan-2017.) $)
    rrvfinvima $p |- ( ph -> A. y e. BrSiga ( `' X " y ) e. dom P ) $=
      ( cdm cuni cr wf ccnv cv cima wcel cbrsiga wral crrv cfv wa isrrvv simprd
      mpbid ) ACGZHIDJZDKBLMUCNBOPZADCQRNUDUESFABCDETUBUA $.
  $}

  ${
    $d x y P $.  $d y ph $.  $d y P $.
    0rrv.1 $e |- ( ph -> P e. Prob ) $.
    $( The constant function equal to zero is a random variable.  (Contributed
       by Thierry Arnoux, 16-Jan-2017.)  (Revised by Thierry Arnoux,
       30-Jan-2017.) $)
    0rrv $p |- ( ph -> ( x e. U. dom P |-> 0 ) e. ( rRndVar ` P ) ) $=
      ( vy cdm cuni cc0 wcel cr ccnv cima cbrsiga wral cin wceq cxp 3eqtri cvv
      c0 cmpt crrv cfv wf cv 0re rgenw eqid fmpt mpbi a1i csn wa cres fconstmpt
      crn cnveqi cnvxp eqtr3i imaeq1i df-ima df-rn df-res inxp inv1 dmeqi xpeq2
      xpeq2i xp0 syl6eq dmeqd adantl cprb csiga domprobsiga 0elsiga 3syl adantr
      dm0 eqeltrd syl5eqel dmxp unveldomd pm2.61dane ralrimivw isrrvv mpbir2and
      wne ) ABCFZGZHUAZCUBUCIWJJWKUDZWKKZEUEZLZWIIZEMNWLAHJIZBWJNWLWQBWJUFUGBWJ
      JHWKWKUHUIUJUKAWPEMAWPHULZWNOZTAWSTPZUMZWOWJWSQZFZWIWOWRWJQZWNUNZKZFZWSWJ
      QZKZFXCWOXDWNLXEUPXGWMXDWNWJWRQZKWMXDXJWKBWJHUOUQWJWRURUSUTXDWNVAXEVBRXFX
      IXEXHXEXDWNSQOWSWJSOZQXHXDWNVCWRWJWNSVDXKWJWSWJVEVHRUQVFXIXBWSWJURVFRZXAX
      CTWIWTXCTPAWTXCTFTWTXBTWTXBWJTQTWSTWJVGWJVIVJVKVSVJVLATWIIZWTACVMIWIVNUPG
      IXMDCVOWIVPVQVRVTWAAWSTWHZUMZWOXCWIXLXOXCWJWIXNXCWJPAWJWSWBVLAWJWIIXNACDW
      CVRVTWAWDWEAECWKDWFWG $.
  $}

  ${
    $d a b x y P $.  $d a b x y X $.  $d a b x y Y $.  $d a b x y ph $.
    rrvadd.1 $e |- ( ph -> P e. Prob ) $.
    rrvadd.2 $e |- ( ph -> X e. ( rRndVar ` P ) ) $.
    rrvadd.3 $e |- ( ph -> Y e. ( rRndVar ` P ) ) $.
    $( The sum of two random variables is a random variable.  (Contributed by
       Thierry Arnoux, 4-Jun-2017.) $)
    rrvadd $p |- ( ph -> ( X oF + Y ) e. ( rRndVar ` P ) ) $=
      ( vx vy va vb caddc co cfv wcel cbrsiga cr cv rrvmbfm wceq cof crrv cmbfm
      cdm cmpt2 cuni cop cmpt ccom nfmpt1 rrvvf unveldomd eqidd ofoprabco csiga
      csx cprb crn domprobsiga syl brsigarn elrnsiga sxsiga syl2anc mpbid fveq2
      mp1i opeq12d cbvmptv mbfmco2 cioo ctg ctx ccn eqid a1i csigagen df-brsiga
      raddcn sxbrsiga cnmbfm mbfmco eqeltrd mpbird ) ACDLUAMZBUBNZOWEBUDZPUCMZO
      AWEHIQQHRIRLMUEZJWGUFZJRZCNZWKDNZUGZUHZUIWHAHIWJQQLCDWOWIWGJJWJWNUJABCEFU
      KABDEGUKABEULAWOUMAWIUMUNAWGPPUPMZPWOWIABUQOWGUOURUFZOEBUSUTZAPWQOZWSWPWQ
      OPQUONOWSAVAPQVBVGZWTPPVCVDWTAKWGPPCDWOWRWTWTACWFOCWHOFABCESVEADWFODWHOGA
      BDESVEJKWJWNKRZCNZXADNZUGWKXATWLXBWMXCWKXACVFWKXADVFVHVIVJAWPPWIVKURVLNZX
      DVMMZXDWIXEXDVNMOAHIXDXDVOZVSVPWPXEVQNTAXDXFVTVPPXDVQNTAVRVPWAWBWCABWEESW
      D $.
  $}

  ${
    $d x C $.  $d x P $.  $d x X $.  $d x ph $.
    rrvmulc.1 $e |- ( ph -> P e. Prob ) $.
    rrvmulc.2 $e |- ( ph -> X e. ( rRndVar ` P ) ) $.
    rrvmulc.3 $e |- ( ph -> C e. RR ) $.
    $( A random variable multiplied by a constant is a random variable.
       (Contributed by Thierry Arnoux, 17-Jan-2017.)  (Revised by Thierry
       Arnoux, 22-May-2017.) $)
    rrvmulc $p |- ( ph -> ( X oFC x. C ) e. ( rRndVar ` P ) ) $=
      ( vx cmul co cfv wcel cbrsiga cr cuni cvv csiga crn syl rrvmbfm cofc crrv
      cdm cmbfm cv cmpt ccom cprb domprobsiga uniexg ofcfval4 brsigarn elrnsiga
      rrvvf mp1i mpbid cioo ctg eqid rmulccn csigagen wceq df-brsiga a1i cnmbfm
      mbfmco eqeltrd mpbird ) ADBIUAJZCUBKZLVICUCZMUDJZLAVIHNHUEBIJUFZDUGVLAHVK
      OZNBIDPNACDEFUNAVKQROZLZVNPLACUHLVPECUISZVKVOUJSGUKAVKMMDVMVQMNQKLMVOLAUL
      MNUMUOZVRADVJLDVLLFACDETUPAMMVMUQRURKZVSAHBVSVSUSGUTMVSVAKVBAVCVDZVTVEVFV
      GACVIETVH $.
  $}

  ${
    $d k n P $.  $d k N $.  $d k n X $.  $d k n ph $.
    rrvsum.1 $e |- ( ph -> P e. Prob ) $.
    rrvsum.2 $e |- ( ph -> X : NN --> ( rRndVar ` P ) ) $.
    rrvsum.3 $e |- ( ( ph /\ N e. NN ) -> S = ( seq 1 ( oF + , X ) ` N ) ) $.
    $( An indexed sum of random variables is a random variable.  (Contributed
       by Thierry Arnoux, 22-May-2017.) $)
    rrvsum $p |- ( ( ph /\ N e. NN ) -> S e. ( rRndVar ` P ) ) $=
      ( vk vn cn wcel wa c1 cfv wi wceq fveq2 eleq1d imbi2d caddc cof cseq crrv
      cv co cz 1z seq1 ax-mp 1nn ffvelrnda mpan2 syl5eqel cuz seqp1 nnuz eleq2s
      ad2antlr cprb ad2antrr simpr peano2nn sylan2 adantr rrvadd eqeltrd expcom
      ex a2d nnind impcom ) ADKLZMCDUAUBZENUCZOZBUDOZHVMAVPVQLZAIUEZVOOZVQLZPAN
      VOOZVQLZPAJUEZVOOZVQLZPAWDNUAUFZVOOZVQLZPAVRPIJDVSNQZWAWCAWJVTWBVQVSNVORS
      TVSWDQZWAWFAWKVTWEVQVSWDVORSTVSWGQZWAWIAWLVTWHVQVSWGVORSTVSDQZWAVRAWMVTVP
      VQVSDVORSTAWBNEOZVQNUGLWBWNQUHVNENUIUJANKLWNVQLUKAKVQNEGULUMUNWDKLZAWFWIA
      WOWFWIPAWOMZWFWIWPWFMZWHWEWGEOZVNUFZVQWOWHWSQZAWFWTWDNUOOKVNENWDUPUQURUSW
      QBWEWRABUTLWOWFFVAWPWFVBWPWRVQLZWFWOAWGKLXAWDVCAKVQWGEGULVDVEVFVGVIVHVJVK
      VLVG $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Preimage set mapping operator
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c oRVC $. $( A small o with RV/C subscript $)

  $( Extend class notation to include the preimage set mapping operator. $)
  corvc $a class oRVC R $.

  ${
    $d a x y R $.
    $( Define the preimage set mapping operator.  In probability theory, the
       notation ` P ( X = A ) ` denotes the probability that a random variable
       ` X ` takes the value ` A ` .  We introduce here an operator which
       enables to write this in Metamath as ` ( P `` ( X oRVC _I A ) ) ` , and
       keep a similar notation.  Because with this notation ` ( X oRVC _I A ) `
       is a set, we can also apply it to conditional probabilities, like in
       ` ( P `` ( X oRVC _I A ) | ( Y oRVC _I B ) ) ) ` .

       The oRVC operator transforms a relation ` R ` into an operation taking a
       random variable ` X ` and a constant ` C ` , and returning the preimage
       through ` X ` of the equivalence class of ` C ` .

       The most commonly used relations are: - equality: ` { X = A } ` as
       ` ( X oRVC _I A ) ` cf. ~ ideq - elementhood: ` { X e. A } ` as
       ` ( X oRVC _E A ) ` cf. ~ epel - less-than: ` { X <_ A } ` as
       ` ( X oRVC <_ A ) `

       Even though it is primarily designed to be used within probability
       theory and with random variables, this operator is defined on generic
       functions, and could be used in other fields, e.g. for continuous
       functions.  (Contributed by Thierry Arnoux, 15-Jan-2017.) $)
    df-orvc $a |- oRVC R =
             ( x e. { x | Fun x } , a e. _V |-> ( `' x " { y | y R a } ) ) $.
  $}

  ${
    $d a x y A $.  $d a x y R $.  $d a x y X $.  $d a x ph $.
    orvcval.1 $e |- ( ph -> Fun X ) $.
    orvcval.2 $e |- ( ph -> X e. V ) $.
    orvcval.3 $e |- ( ph -> A e. W ) $.
    $( Value of the preimage mapping operator applied on a given random
       variable and constant.  (Contributed by Thierry Arnoux, 19-Jan-2017.) $)
    orvcval $p |- ( ph -> ( X oRVC R A ) = ( `' X " { y | y R A } ) ) $=
      ( vx va cv wfun cab cvv ccnv wbr wceq wcel cima corvc cmpt2 df-orvc simpl
      a1i wa cnveqd simpr breq2d abbidv imaeq12d adantl wb funeq elabg syl elex
      mpbird cnvexg imaexg 3syl ovmpt2d ) AKLGCKMZNZKOZPVDQZBMZLMZDRZBOZUAZGQZV
      HCDRZBOZUAZDUBZPVQKLVFPVLUCSAKBDLUDUFVDGSZVICSZUGZVLVPSAVTVGVMVKVOVTVDGVR
      VSUEUHVTVJVNBVTVICVHDVRVSUIUJUKULUMAGVFTZGNZHAGETZWAWBUNIVEWBKGEVDGUOUPUQ
      USACFTCPTJCFURUQAWCVMPTVPPTIGEUTVMVOPVAVBVC $.

    $d y z A $.  $d y z R $.  $d z X $.
    $( Another way to express the value of the preimage mapping operator.
       (Contributed by Thierry Arnoux, 19-Jan-2017.) $)
    orvcval2 $p |- ( ph -> ( X oRVC R A ) = { z e. dom X | ( X ` z ) R A } ) $=
      ( vy corvc co ccnv cv wbr wcel crab wceq a1i cab cima cfv cdm orvcval wfn
      wfun funfn sylib fncnvima2 syl wb fvex breq1 elab rabbiia 3eqtrd ) AGCDLM
      GNKOZCDPZKUAZUBZBOZGUCZUTQZBGUDZRZVCCDPZBVERZAKCDEFGHIJUEAGVEUFZVAVFSAGUG
      VIHGUHUIBVEUTGUJUKVFVHSAVDVGBVEVDVGULVBVEQUSVGKVCVBGUMURVCCDUNUOTUPTUQ $.

    $( Elementhood of a preimage.  (Contributed by Thierry Arnoux,
       21-Jan-2017.) $)
    elorvc $p |- ( ( ph /\ z e. dom X ) ->
                              ( z e. ( X oRVC R A ) <-> ( X ` z ) R A ) ) $=
      ( cv corvc co wcel cdm cfv wbr crab wa orvcval2 eleq2d rabid syl6bb baibd
      ) ABKZGCDLMZNZUEGOZNZUEGPCDQZAUGUEUJBUHRZNUIUJSAUFUKUEABCDEFGHIJTUAUJBUHU
      BUCUD $.
  $}

  ${
    orvccel.1 $e |- ( ph -> S e. U. ran sigAlgebra ) $.
    orvccel.2 $e |- ( ph -> J e. Top ) $.
    orvccel.3 $e |- ( ph -> X e. ( S MblFnM ( sigaGen ` J ) ) ) $.
    orvccel.4 $e |- ( ph -> A e. V ) $.
    $d y A $.  $d y R $.  $d y X $.  $d y J $.
    $( The value of the preimage mapping operator can be restricted to
       preimages in the base set of the topology.  Cf. ~ orvcval .
       (Contributed by Thierry Arnoux, 21-Jan-2017.) $)
    orvcval4 $p |- ( ph ->
                        ( X oRVC R A ) = ( `' X " { y e. U. J | y R A } ) ) $=
      ( cima cuni co wceq ctop wf wcel cvv ccnv wbr cab cin corvc crab wfun crn
      cv wss csigagen sgsiga isanmbfm mbfmfun mbfmf elex unisg 3syl feq3d mpbid
      cfv frn syl fimacnvinrn2 syl2anc cmbfm orvcval dfrab2 a1i imaeq2d 3eqtr4d
      ) AHUAZBUICDUBZBUCZMZVLVNFNZUDZMZHCDUEOVLVMBVPUFZMAHUGHUHVPUJZVOVRPAHAEFU
      KVAZHIAFQJULZKUMUNZAENZVPHRZVTAWDWANZHRWEAEWAHIWBKUOAWFVPHWDAFQSFTSWFVPPJ
      FQUPFTUQURUSUTWDVPHVBVCVNVPHVDVEABCDEWAVFOGHWCKLVGAVSVQVLVSVQPAVMBVPVHVIV
      JVK $.

    ${
      orvcoel.5 $e |- ( ph -> { y e. U. J | y R A } e. J ) $.
      $( If the relation produces open sets, preimage maps by a measurable
         function are measurable sets.  (Contributed by Thierry Arnoux,
         21-Jan-2017.) $)
      orvcoel $p |- ( ph -> ( X oRVC R A ) e. S ) $=
        ( corvc co ccnv cv wbr cuni ctop crab cima orvcval4 csigagen cfv sgsiga
        wcel wss sssigagen syl sseldd mbfmcnvima eqeltrd ) AHCDNOHPBQCDRBFSUAZU
        BEABCDEFGHIJKLUCAUNEFUDUEZHIAFTJUFKAFUOUNAFTUGFUOUHJFTUIUJMUKULUM $.
    $}

    ${
      orvccel.5 $e |- ( ph -> { y e. U. J | y R A } e. ( Clsd ` J ) ) $.
      $( If the relation produces closed sets, preimage maps by a measurable
         function are measurable sets.  (Contributed by Thierry Arnoux,
         21-Jan-2017.) $)
      orvccel $p |- ( ph -> ( X oRVC R A ) e. S ) $=
        ( corvc co ccnv cv wbr cfv ctop cuni crab cima orvcval4 csigagen sgsiga
        ccld wcel wss cldssbrsiga syl sseldd mbfmcnvima eqeltrd ) AHCDNOHPBQCDR
        BFUAUBZUCEABCDEFGHIJKLUDAUOEFUESZHIAFTJUFKAFUGSZUPUOAFTUHUQUPUIJFUJUKMU
        LUMUN $.
    $}
  $}

  ${
    orrvccel.1 $e |- ( ph -> P e. Prob ) $.
    orrvccel.2 $e |- ( ph -> X e. ( rRndVar ` P ) ) $.

    $d z A $.  $d z R $.  $d z X $.
    orrvccel.4 $e |- ( ph -> A e. V ) $.
    $( Elementhood of a preimage for a real-valued random variable.
       (Contributed by Thierry Arnoux, 21-Jan-2017.) $)
    elorrvc $p |- ( ( ph /\ z e. U. dom P ) ->
                                 ( z e. ( X oRVC R A ) <-> ( X ` z ) R A ) ) $=
      ( cv cdm cuni wcel wa corvc co cfv wbr syl rrvdm eleq2d biimprd imdistani
      wb crrv wfn wfun rrvfn fnfun elorvc ) ABKZDLMZNZOAULGLZNZOULGCEPQNULGRCES
      UEAUNUPAUPUNAUOUMULADGHIUAUBUCUDABCEDUFRFGAGUMUGGUHADGHIUIUMGUJTIJUKT $.

    $d y A $.  $d y R $.  $d y X $.
    $( The value of the preimage mapping operator can be restricted to
       preimages of subsets of RR. (Contributed by Thierry Arnoux,
       21-Jan-2017.) $)
    orrvcval4 $p |- ( ph ->
                          ( X oRVC R A ) = ( `' X " { y e. RR | y R A } ) ) $=
      ( co crn cfv cuni crab cima cr wcel cbrsiga cmbfm corvc ccnv wbr cioo ctg
      cdm cprb csiga domprobsiga syl ctop retop a1i csigagen crrv rrvmbfm mpbid
      cv df-brsiga oveq2i syl6eleq orvcval4 wceq uniretop rabeq imaeq2i syl6eqr
      ax-mp ) AGCEUAKGUBZBURCEUCZBUDLUEMZNZOZPVIVJBQOZPABCEDUFZVKFGADUGRVOUHLNR
      HDUIUJVKUKRAULUMAGVOSTKZVOVKUNMZTKAGDUOMRGVPRIADGHUPUQSVQVOTUSUTVAJVBVNVM
      VIQVLVCVNVMVCVDVJBQVLVEVHVFVG $.

    ${
      orrvcoel.5 $e |- ( ph ->
                              { y e. RR | y R A } e. ( topGen ` ran (,) ) ) $.
      $( If the relation produces open sets, preimage maps of a random variable
         are measurable sets.  (Contributed by Thierry Arnoux, 21-Jan-2017.) $)
      orrvcoel $p |- ( ph -> ( X oRVC R A ) e. dom P ) $=
        ( crn cfv wcel cuni cbrsiga cmbfm co crab cr cdm cioo csiga domprobsiga
        ctg cprb syl ctop retop a1i csigagen crrv rrvmbfm mpbid oveq2i syl6eleq
        df-brsiga cv wbr wceq uniretop rabeq ax-mp syl5eqelr orvcoel ) ABCEDUAZ
        UBLUEMZFGADUFNVFUCLONHDUDUGVGUHNAUIUJAGVFPQRZVFVGUKMZQRAGDULMNGVHNIADGH
        UMUNPVIVFQUQUOUPJABURCEUSZBVGOZSZVJBTSZVGTVKUTVMVLUTVAVJBTVKVBVCKVDVE
        $.
    $}

    ${
      orrvccel.5 $e |- ( ph ->
                   { y e. RR | y R A } e. ( Clsd ` ( topGen ` ran (,) ) ) ) $.
      $( If the relation produces closed sets, preimage maps are measurable
         sets.  (Contributed by Thierry Arnoux, 21-Jan-2017.) $)
      orrvccel $p |- ( ph -> ( X oRVC R A ) e. dom P ) $=
        ( crn cfv wcel cuni cbrsiga cmbfm co crab cr cdm cioo csiga domprobsiga
        ctg cprb syl ctop retop a1i csigagen crrv rrvmbfm mpbid oveq2i syl6eleq
        df-brsiga cv wbr ccld wceq uniretop rabeq ax-mp syl5eqelr orvccel ) ABC
        EDUAZUBLUEMZFGADUFNVGUCLONHDUDUGVHUHNAUIUJAGVGPQRZVGVHUKMZQRAGDULMNGVIN
        IADGHUMUNPVJVGQUQUOUPJABURCEUSZBVHOZSZVKBTSZVHUTMTVLVAVNVMVAVBVKBTVLVCV
        DKVEVF $.
    $}
  $}

  ${
    $d x A $.  $d x X $.  $d x ph $.
    orvcgteel.1 $e |- ( ph -> P e. Prob ) $.
    orvcgteel.2 $e |- ( ph -> X e. ( rRndVar ` P ) ) $.
    orvcgteel.3 $e |- ( ph -> A e. RR ) $.
    $( Preimage maps produced by the "greater than or equal" relation are
       measurable sets.  (Contributed by Thierry Arnoux, 5-Feb-2017.) $)
    orvcgteel $p |- ( ph -> ( X oRVC `' <_ A ) e. dom P ) $=
      ( vx cle cr wbr crab cpnf cfv wa cxr wcel adantr ad2antrl jca ccnv cv crn
      cico co cioo ctg ccld clt simpr brcnvg syl2anc pm5.32da rexr simprr ltpnf
      simprl simprrl simprrr xrre3 syl22anc impbida bitrd rabbidva2 rexrd pnfxr
      wb wceq icoval sylancl eqtr4d icopnfcld syl eqeltrd orrvccel ) AHBCIUAZJD
      EFGAHUBZBVPKZHJLZBMUDUEZUFUCUGNUHNZAVSBVQIKZVQMUIKZOZHPLZVTAVRWDHJPAVQJQZ
      VROWFWBOZVQPQZWDOZAWFVRWBAWFOWFBJQZVRWBVGAWFUJAWJWFGRVQBJJIUKULUMAWGWIAWG
      OZWHWDWFWHAWBVQUNSWKWBWCAWFWBUOWFWCAWBVQUPSTTAWIOZWFWBWLWHWJWBWCWFAWHWDUQ
      AWJWIGRAWHWBWCURZAWHWBWCUSVQBUTVAWMTVBVCVDABPQMPQVTWEVHABGVEVFHBMVIVJVKAW
      JVTWAQGBVLVMVNVO $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Distribution Functions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    dstrvprob.1 $e |- ( ph -> P e. Prob ) $.
    dstrvprob.2 $e |- ( ph -> X e. ( rRndVar ` P ) ) $.

    ${
      $d a x A $.  $d a P $.  $d a x X $.  $d a x ph $.
      orvcelel.1 $e |- ( ph -> A e. BrSiga ) $.
      $( Preimage maps produced by the membership relation.  (Contributed by
         Thierry Arnoux, 6-Feb-2017.) $)
      orvcelval $p |- ( ph -> ( X oRVC _E A ) = ( `' X " A ) ) $=
        ( vx cep corvc co ccnv cv cr crab cima cbrsiga wcel syl wceq wbr cin wb
        orrvcval4 epelg rabbidv a1i wss cuni elssuni unibrsiga syl6sseq sseqin2
        dfin5 sylib 3eqtr2d imaeq2d eqtrd ) ADBIJKDLZHMZBIUAZHNOZPUSBPAHBCIQDEF
        GUDAVBBUSAVBUTBRZHNOZNBUBZBAVAVCHNABQRZVAVCUCGUTBQUESUFVEVDTAHNBUNUGABN
        UHZVEBTAVFVGGVFBQUINBQUJUKULSBNUMUOUPUQUR $.

      $( Preimage maps produced by the membership relation are measurable sets.
         (Contributed by Thierry Arnoux, 5-Feb-2017.) $)
      orvcelel $p |- ( ph -> ( X oRVC _E A ) e. dom P ) $=
        ( va cep corvc co ccnv cima cdm orvcelval wcel cbrsiga wral rrvfinvima
        cv wceq wa simpr imaeq2d eleq1d rspcdv mpd eqeltrd ) ADBIJKDLZBMZCNZABC
        DEFGOAUIHTZMZUKPZHQRUJUKPZAHCDEFSAUNUOHBQGAULBUAZUBZUMUJUKUQULBUIAUPUCU
        DUEUFUGUH $.
    $}

    ${
      $d a P $.  $d a X $.
      dstrvprob.3 $e |- ( ph ->
                           D = ( a e. BrSiga |-> ( P ` ( X oRVC _E a ) ) ) ) $.
      ${
        $d a A $.
        dstrvval.1 $e |- ( ph -> A e. BrSiga ) $.
        $( The value of the distribution of a random variable.  (Contributed by
           Thierry Arnoux, 9-Feb-2017.) $)
        dstrvval $p |- ( ph -> ( D ` A ) = ( P ` ( `' X " A ) ) ) $=
          ( cfv cbrsiga cv cep corvc co cmpt ccnv wceq fveq2d cima fveq1d oveq2
          wcel eqid fvex fvmpt syl orvcelval 3eqtrd ) ABCKBFLEFMZNOZPZDKZQZKZEB
          ULPZDKZERBUAZDKABCUOIUBABLUDUPURSJFBUNURLUOUKBSUMUQDUKBEULUCTUOUEUQDU
          FUGUHAUQUSDABDEGHJUITUJ $.
      $}

      $d a x D $.  $d a x ph $.
      $( The distribution of a random variable is a probability law.  (TODO:
         could be shortened using ~ dstrvval ) (Contributed by Thierry Arnoux,
         10-Feb-2017.) $)
      dstrvprob $p |- ( ph -> D e. Prob ) $=
        ( wcel cfv c1 wceq cbrsiga cc0 c0 wa syl cr fveq2d eqtrd cmeas crn cuni
        vx cdm cprb cpnf cicc co wf cv com cdom wbr wdisj cesum wi cpw wral cep
        corvc adantr crrv simpr orvcelel prob01 syl2anc cxr cle rexrd elunitge0
        elunitrn elxrge0 sylanbrc fmpt3d oveq2d csiga brsigarn elrnsiga 0elsiga
        ccnv cima mp2b probvalrnd fvmptd orvcelval fveq2i probnul syl5eq 3eqtrd
        a1i ima0 ciun wfun ad2antrr ffun unipreima domprobmeas nfv nfdisj1 nfan
        rrvvf simplll simpllr elelpwi rrvfinvima r19.21bi ralrimi simprl simprr
        disjpreima measvuni syl112anc cmpt mp1i simplr sigaclcu syl3anc fvmpt2d
        ex dstrvval esumeq2d 3eqtr4d ralrimiva wb ismeas syl3anbrc dmeqd dmmptg
        w3a eleqtrrd measbasedom sylibr unieqd unibrsiga syl6eq fimacnv probtot
        baselsiga 1red elprob ) ABUAUBUCIZBUEZUCZBJZKLBUFIABUUCUAJZIUUBABMUAJZU
        UFAMNUGUHUIZBUJZOBJZNLZUDUKZULUMUNZEUULEUKZUOZPZUULUCZBJZUULUUNBJZEUPZL
        ZUQZUDMURZUSZBUUGIZAEMDUUNUTVAZUIZCJZUUHBHAUUNMIZPZUVHNKUHUIZIZUVHUUHIZ
        UVJCUFIZUVGCUEZIUVLAUVNUVIFVBZUVJUUNCDUVPADCVCJIZUVIGVBAUVIVDVEUVGCVFVG
        ZUVLUVHVHINUVHVIUNUVMUVLUVHUVHVLVJUVHVKUVHVMVNQZVOAUUJDOUVFUIZCJZDWAZOW
        BZCJZNAEOUVHUWAMBRHAUUNOLZPZUVGUVTCUWFUUNODUVFAUWEVDVPSOMIZAMRVQJIZMVQU
        BUCIZUWGVRMRVSZMVTWCWKZAUVTCFAOCDFGUWKVEWDWEAUVTUWCCAOCDFGUWKWFSAUWDOCJ
        ZNUWCOCUWBWLWGAUVNUWLNLFCWHQWIWJAUVBUDUVCAUULUVCIZPZUUPUVAUWNUUPPZUWBUU
        QWBZCJZUULUWBUUNWBZCJZEUPZUURUUTUWOUWQEUULUWRWMZCJZUWTUWODWNZUWQUXBLUWO
        UVOUCZRDUJZUXCAUXEUWMUUPACDFGXBZWOUXDRDWPQZUXCUWPUXACEUULDWQSQUWOCUVOUA
        JIZUWRUVOIZEUULUSUUMEUULUWRUOZUXBUWTLUWOUVNUXHAUVNUWMUUPFWOZCWRQUWOUXIE
        UULUWNUUPEUWNEWSUUMUUOEUUMEWSEUULUUNWTXAXAZUWOUUNUULIZUXIUWOUXMPZAUVIUX
        IAUWMUUPUXMXCZUXNUXMUWMUVIUWOUXMVDAUWMUUPUXMXDUUNUULMXEVGZAUXIEMAECDFGX
        FXGVGXTXHUWNUUMUUOXIZUWOUXCUUOUXJUXGUWNUUMUUOXJEUULUUNDXKVGEUULUWRUVOCX
        LXMTUWOUUQBCDEUXKAUVQUWMUUPGWOZABEMUVHXNZLUWMUUPHWOUWOUWIUWMUUMUUQMIUWH
        UWIUWOVRUWJXOAUWMUUPXPUXQUULMXQXRYAUWOUULUUSUWSEUXLUWOUUSUWSLZEUULUXLUW
        OUXMUXTUXNUUSUVHUWSUXNAUVIUUSUVHLUXOUXPAEMUVHBUVKHUVRXSVGUXNUVGUWRCUXNU
        UNCDUWOUVNUXMUXKVBUWOUVQUXMUXRVBUXPWFSTXTXHYBYCXTYDUWHUWIUVEUUIUUKUVDYJ
        YEVRUWJUDEMBYFWCYGAUUCMUAAUUCUXSUEZMABUXSHYHAUVMEMUSUYAMLAUVMEMUVSYDEMU
        VHUUHYIQTZSYKBYLYMAUUERBJKAUUDRBAUUDMUCRAUUCMUYBYNYOYPSAERUVHKMBRHAUUNR
        LZPZUVHUWBRWBZCJZKUYDUVGUYECUYDUVGDRUVFUIZUYEUYDUUNRDUVFAUYCVDVPAUYGUYE
        LUYCARCDFGUWHRMIAVRRMYSXOZWFVBTSAUYFKLUYCAUYFUXDCJZKAUYEUXDCAUXEUYEUXDL
        UXFUXDRDYQQSAUVNUYIKLFCYRQTVBTUYHAYTWETBUUAVN $.
    $}
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Cumulative Distribution Functions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    dstfrv.1 $e |- ( ph -> P e. Prob ) $.
    dstfrv.2 $e |- ( ph -> X e. ( rRndVar ` P ) ) $.

    ${
      $d x A $.  $d x X $.  $d x ph $.
      orvclteel.1 $e |- ( ph -> A e. RR ) $.
      $( Preimage maps produced by the "lower than or equal" relation are
         measurable sets.  (Contributed by Thierry Arnoux, 4-Feb-2017.) $)
      orvclteel $p |- ( ph -> ( X oRVC <_ A ) e. dom P ) $=
        ( vx cle cr cv wbr crab cmnf cfv wa cxr wcel ad2antrl jca cioc cioo crn
        co ctg ccld clt rexr simprr simprl adantr simprrl simprrr xrre syl22anc
        mnflt impbida rabbidva2 mnfxr rexrd iocval sylancr eqtr4d iocmnfcld syl
        wceq eqeltrd orrvccel ) AHBCIJDEFGAHKZBILZHJMZNBUAUDZUBUCUEOUFOZAVKNVIU
        GLZVJPZHQMZVLAVJVOHJQAVIJRZVJPZVIQRZVOPZAVRPZVSVOVQVSAVJVIUHSWAVNVJVQVN
        AVJVIUPSAVQVJUITTAVTPZVQVJWBVSBJRZVNVJVQAVSVOUJAWCVTGUKAVSVNVJULAVSVNVJ
        UMZVIBUNUOWDTUQURANQRBQRVLVPVFUSABGUTHNBVAVBVCAWCVLVMRGBVDVEVGVH $.

      $d x B $.
      dstfrvel.1 $e |- ( ph -> B e. U. dom P ) $.
      dstfrvel.2 $e |- ( ph -> ( X ` B ) <_ A ) $.
      $( Elementhood of preimage maps produced by the "lower than or equal"
         relation.  (Contributed by Thierry Arnoux, 13-Feb-2017.) $)
      dstfrvel $p |- ( ph -> B e. ( X oRVC <_ A ) ) $=
        ( vx ccnv cv cle wbr cr crab wcel cdm eleqtrrd cima corvc co cuni rrvvf
        cfv ffvelrnd breq1 elrab sylanbrc wfun wb wf syl rrvdm fvimacnv syl2anc
        ffun mpbid orrvcval4 ) ACELKMZBNOZKPQZUAZEBNUBUCACEUFZVCRZCVDRZAVEPRVEB
        NOZVFADSUDZPCEADEFGUEZIUGJVBVHKVEPVAVEBNUHUIUJAEUKZCESZRVFVGULAVIPEUMVK
        VJVIPEURUNACVIVLIADEFGUOTCVCEUPUQUSAKBDNPEFGHUTT $.
    $}

    ${
      $d n x P $.  $d n x X $.  $d n x ph $.
      $( The limit of all preimage maps by the "lower than or equal" relation
         is the universe.  (Contributed by Thierry Arnoux, 12-Feb-2017.) $)
      dstfrvunirn $p |- ( ph ->
                         U. ran ( n e. NN |-> ( X oRVC <_ n ) ) = U. dom P ) $=
        ( vx cuni cn cle co wcel wa cfv c1 wbr cr breq2 adantr simpr corvc ciun
        cdm cmpt crn wrex clt cif cfl caddc 1red rrvvf ffvelrnda ifcld 1le1 a1i
        cv wn lenltd biimpar ifbothda flge1nn syl2anc peano2nnd cprb crrv nnred
        ltled leidd fllep1 letrd dstfrvel wceq oveq2 eleq2d rspcev ex orvclteel
        syl wi elunii expcom rexlimdva impbid eliun syl6bbr ovex dfiun3 syl6req
        eqrdv ) ABUCZHZCIDCUQZJUAZKZUBZCIWOUDUEHAGWLWPAGUQZWLLZWQWOLZCIUFZWQWPL
        AWRWTAWRWTAWRMZWQDNZOUGPZOXBUHZUINZOUJKZILWQDXFWNKZLZWTXAXEXAXDQLZOXDJP
        ZXEILXAXCOXBQXAUKZAWLQWQDABDEFULUMZUNZXCOOJPZOXBJPZXJXAOXBOXDOJRXBXDOJR
        XNXAXCMZUOUPXAXOXCURZXAOXBXKXLUSUTVAXDVBVCVDZXAXFWQBDABVELZWRESADBVFNLZ
        WRFSXAXFXRVGZAWRTXAXBXDXFXLXMYAXCXBOJPXBXBJPZXBXDJPXAOXBOXDXBJRXBXDXBJR
        XPXBOXAXBQLXCXLSXPUKXAXCTVHXAYBXQXAXBXLVISVAXAXIXDXFJPXMXDVJVSVKVLWSXHC
        XFIWMXFVMWOXGWQWMXFDWNVNVOVPVCVQAWSWRCIAWMILZMZWOWKLZWSWRVTYDWMBDAXSYCE
        SAXTYCFSYDWMAYCTVGVRWSYEWRWQWOWKWAWBVSWCWDCWQIWOWEWFWJCIWODWMWNWGWHWI
        $.
    $}

    ${
      $d x A $.  $d x B $.  $d x X $.  $d x ph $.
      orvclteinc.1 $e |- ( ph -> A e. RR ) $.
      orvclteinc.2 $e |- ( ph -> B e. RR ) $.
      orvclteinc.3 $e |- ( ph -> A <_ B ) $.
      $( Preimage maps produced by the "lower than or equal" relation are
         increasing.  (Contributed by Thierry Arnoux, 11-Feb-2017.) $)
      orvclteinc $p |- ( ph -> ( X oRVC <_ A ) C_ ( X oRVC <_ B ) ) $=
        ( vx cle wbr cr crab cima co wss wcel 3ad2ant1 ccnv cv corvc wfun rrvf2
        cdm wf ffun syl w3a simp2 simp3 letrd 3expia ss2rabdv syl2anc orrvcval4
        sspreima 3sstr4d ) AEUAZKUBZBLMZKNOZPZUTVACLMZKNOZPZEBLUCZQECVHQAEUDZVC
        VFRVDVGRAEUFZNEUGVIADEFGUEVJNEUHUIAVBVEKNAVANSZVBVEAVKVBUJVABCAVKVBUKAV
        KBNSVBHTAVKCNSVBITAVKVBULAVKBCLMVBJTUMUNUOVCVFEURUPAKBDLNEFGHUQAKCDLNEF
        GIUQUS $.
    $}

    dstfrv.3 $e |- ( ph -> F = ( x e. RR |-> ( P ` ( X oRVC <_ x ) ) ) ) $.
    ${
      $d x A $.  $d x B $.  $d x P $.  $d x X $.  $d x ph $.
      dstfrvinc.1 $e |- ( ph -> A e. RR ) $.
      dstfrvinc.2 $e |- ( ph -> B e. RR ) $.
      dstfrvinc.3 $e |- ( ph -> A <_ B ) $.
      $( A cumulative distribution function is non-decreasing.  (Contributed by
         Thierry Arnoux, 11-Feb-2017.) $)
      dstfrvinc $p |- ( ph -> ( F ` A ) <_ ( F ` B ) ) $=
        ( cle co cfv wcel orvclteel cr wceq corvc cdm cprb cmeas syl orvclteinc
        domprobmeas measssd cv wa simpr oveq2d fveq2d probvalrnd fvmptd 3brtr4d
        ) AGCNUAZOZEPZGDUQOZEPZCFPDFPNAURUTEUBZEAEUCQEVBUDPQHEUGUEACEGHIKRZADEG
        HILRZACDEGHIKLMUFUHABCGBUIZUQOZEPZUSSFSJAVECTZUJZVFUREVIVECGUQAVHUKULUM
        KAUREHVCUNUOABDVGVASFSJAVEDTZUJZVFUTEVKVEDGUQAVJUKULUMLAUTEHVDUNUOUP $.
    $}

    $d a i n x P $.  $d a i n x X $.  $d i F $.  $d a i n x ph $.
    $( The limit of the cumulative distribution function is one.  (Contributed
       by Thierry Arnoux, 12-Feb-2017.)  (Revised by Thierry Arnoux,
       11-Jul-2017.) $)
    dstfrvclim1 $p |- ( ph -> F ~~> 1 ) $=
      ( vi va c1 wbr cn cfv cmpt co cc0 cpnf wcel wceq vn cli cv cle corvc ccom
      crn cuni cxrs cicc cress ctopn clm cdm eqid cprb cmeas domprobmeas syl wa
      adantr simpr nnred orvclteel fmptd caddc peano2nnd lep1d orvclteinc eqidd
      crrv oveq2d fvmptd 3sstr4d meascnbl wf wfn measfn dffn5 biimpi 3syl sylan
      prob01 fmpt3d fco syl2anc dstfrvunirn unveldomd eqeltrd cxr clt wss pnfxr
      cico 0xr 0le0 cr ltpnf ax-mp iccssico mp4an lmlimxrge0 mpbid fveq2 fmptco
      1re fveq2d probvalrnd mpteq2dva eqtr4d probtot eqtrd 3brtr3d cz cvv wb 1z
      reex mptex syl6eqel nnuz climmpt sylancr mpbird ) ADKUBLZIMIUCZDNZOZKUBLZ
      ACIMEYFUDUEZPZOZUFZYLUGUHZCNZYHKUBAYMYOUIQRUJPUKPULNZUMNLYMYOUBLACUNZUAYL
      YPCYPUOZACUPSZCYQUQNSZFCURUSZAIMYKYQYLAYFMSZUTZYFCEAYSUUBFVAZAECVKNSZUUBG
      VAUUCYFAUUBVBVCZVDZYLUOVEZAUAUCZMSZUTZEUUIYJPZEUUIKVFPZYJPZUUIYLNUUMYLNUU
      KUUIUUMCEAYSUUJFVAZAUUEUUJGVAZUUKUUIAUUJVBZVCZUUKUUMUUKUUIUUQVGZVCZUUKUUI
      UURVHVIUUKIUUIYKUULMYLYQUUKYLVJZUUKYFUUITZUTYFUUIEYJUUKUVBVBVLUUQUUKUUICE
      UUOUUPUURVDVMUUKIUUMYKUUNMYLYQUVAUUKYFUUMTZUTYFUUMEYJUUKUVCVBVLUUSUUKUUMC
      EUUOUUPUUTVDVMVNVOAYOYMYPQKUJPZYRAYQUVDCVPMYQYLVPMUVDYMVPAJYQJUCZCNZUVDCA
      YTCYQVQZCJYQUVFOTZUUAYQCVRUVGUVHJYQCVSVTWAZAYSUVEYQSUVFUVDSFUVECWCWBWDUUH
      MYQUVDCYLWEWFAYSYNYQSYOUVDSFAYNYQUHZYQACIEFGWGZACFWHWIYNCWCWFQWJSRWJSQQUD
      LKRWKLZUVDQRWNPWLWOWMWPKWQSUVLXFKWRWSQRQKWTXAXBXCAYMIMYKCNZOYHAIJMYQYKUVF
      UVMYLCUUGAYLVJUVIUVEYKCXDXEAIMYGUVMUUCBYFEBUCZYJPZCNZUVMWQDWQADBWQUVPOZTU
      UBHVAUUCUVNYFTZUTZUVOYKCUVSUVNYFEYJUUCUVRVBVLXGUUFUUCYKCUUDUUGXHVMXIXJAYO
      UVJCNZKAYNUVJCUVKXGAYSUVTKTFCXKUSXLXMAKXNSDXOSYEYIXPXQADUVQXOHBWQUVPXRXSX
      TKIDYHKXOMYAYHUOYBYCYD $.

    $( The limit at minus infinity of the cumulative distribution function is
       zero. $)
    $( dstfrvclim0 #p |- ( ph -> ( x e. RR |-> ( F ` -u x ) ) ~~> 0 ) $=
      $. $)
  $}

$(

@(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Expected Value
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
@)

  @c Exp @. @( Symbol for the expected value, 'exp' @)

  cexpt @a class Exp @.

  @( Define the expected value of a random variable as the integral of the
     variable, over the entire probability space. An expected value is defined
     with respect to a given probability measure ` p ` .
     (Contributed by Thierry Arnoux, 15-Jan-2017.) @)
  df-expt @a |- Exp = ( p e. Prob |->
    ( x e. ( rRndVar ` p ) |-> S.m U. dom p x _d p ) ) @.

  @{
    @d p x P @. @d p x ph @. @d x X @.
    exptval.1 @e |- ( ph -> P e. Prob ) @.
    exptval.2 @e |- ( ph -> E = ( Exp ` P ) ) @.
    @{
      exptval.3 @e |- ( ph -> X e. ( rRndVar ` P ) ) @.
      @( Expected value with respect to probability measure ` P ` .
         (Contributed by Thierry Arnoux, 15-Jan-2017.) @)
      exptval   @p |- ( ph -> ( E ` X ) =  S.m U. dom P X _d P ) @=
        ( vx vp cdm cuni cv citgm crrv cfv cexpt cmpt cvv wceq eqidd cr df-expt
        cprb a1i wa simpr fveq2d dmeqd unieqd itgmeq123dTMP mpteq12dv wcel fvex
        mptexg mp1i fvmptd eqtrd probmeasd rrvf2 rrvdmss probtotrnd itgmclrdTMP
        unveldomd ) AHDBJZKZHLZBMZVEDBMBNOZCUAACBPOHVHVGQZFAIBHILZNOZVJJZKZVFVJ
        MZQZVIUCPRPIUCVOQSAHIUBUDAVJBSZUEZHVKVNVHVGVQVJBNAVPUFZUGVQVMVEBVFVFVJV
        QVLVDVQVJBVRUHUIVQVFTVRUJUKEVHRULVIRULABNUMHVHVGRUNUOUPUQAVFDSZUEZVEVEB
        VFDBVTVETAVSUFVTBTUJGAVEDBABEURABDEGUSABDEGUTABEVCABEVAVBUP @.

      @( Expected values are real numbers.
         (Contributed by Thierry Arnoux, 20-Jan-2017.) @)
      exptvrn   @p |- ( ph -> ( E ` X ) e. RR ) @=
        ( cfv cdm citgm cr exptval probmeasd rrvf2 rrvdmss unveldomd probvalrnd
        cuni itgmclrdTMP eqeltrd ) ADCHBIRZDBJKABCDEFGLAUADBABEMABDEGNABDEGOABE
        PZAUABEUBQST @.
    @}

    @{
      exptind.1 @e |- ( ph -> A e. dom P ) @.
      @( The expected value of the indicator function of the set ` A `
         is the probability of ` A ` .
         (Contributed by Thierry Arnoux, 20-Jan-2017.) @)
      exptind   @p |- ( ph -> ( E ` ( U. dom P _Ind A ) ) = ( P ` A ) ) @=
        ( cfv citgm cun wcel wceq syl co cc0 c0 a1i cres cuni cdif crrv syl2anc
        cdm cind cprb indrrv fveq1d eleq1d mpbird exptval wss undif itgmeq1dTMP
        elssuni sylib cxad cin disjdif itgmunTMP c1 csn cxp itgmresTMP unveldom
        cmul indval2 eqtrd reseq1d resundir ssid xpssres ax-mp eqeq1i xpdisjres
        incom mpbi uneq12i un0 3eqtri syl6eq itgmeq2dTMP 3eqtr3rd cr probvalrnd
        inidm 1re itgmcst recnd mulid2 3eqtrd uncom eqtri csiga crn domprobsiga
        cc difelsiga syl3anc 0re mul02 oveq12d cxr rexrd xaddid1 3eqtr2d ) ABEJ
        ZDJCUEZUAZXHCKBXJBUBZLZXHCKZBCJZACDXHFGAXHCUCJZMBXJUFJZJZXOMZACUGMZBXIM
        ZXRFHBCUHUDAXHXQXOABEXPIUIZUJUKULAXLXJXHCABXJUMZXLXJNAXTYBHBXIUPOZBXJUN
        UQUOAXMBXHCKZXKXHCKZURPXNQURPZXNABXKXHCBXKUSZRNZABXJUTZSVAAYDXNYEQURAYD
        BBVBVCZVDZCKZVBXNVGPZXNABXHBTZCKZBBUSZXHCKZYLYDYOYQNABBXHCVESABYNYKCAYN
        YKXKQVCZVDZLZBTZYKAXHYTBAXHXQYTYAAXJXIMZYBXQYTNAXSUUBFCVFOZYCBXJXIVHUDV
        IZVJUUAYKBTZYSBTZLYKRLYKYKYSBVKUUEYKUUFRBBUMZUUEYKNBVLZBYJBVMVNXKBUSZRN
        ZUUFRNYHUUJYIYGUUIRBXKVQVOVRXKYRBVPVNVSYKVTWAWBWCAYPBXHCYPBNABWGSUOWDAB
        BVBCHUUGAUUHSVBWEMAWHSABCFHWFZWIAXNWRMYMXNNAXNUUKWJXNWKOWLAYEXKYSCKZQXK
        CJZVGPZQAXKXHXKTZCKZXKXKUSZXHCKZUULYEUUPUURNAXKXKXHCVESAXKUUOYSCAUUOYTX
        KTZYSAXHYTXKUUDVJUUSYKXKTZYSXKTZLRYSLZYSYKYSXKVKUUTRUVAYSYHUUTRNYIBYJXK
        VPVNXKXKUMZUVAYSNXKVLZXKYRXKVMVNVSUVBYSRLYSRYSWMYSVTWNWAWBWCAUUQXKXHCUU
        QXKNAXKWGSUOWDAXKXKQCAXIWOWPUAMZUUBXTXKXIMAXSUVEFCWQOUUCHXJBXIWSWTZUVCA
        UVDSQWEMAXASAXKCFUVFWFZWIAUUMWRMUUNQNAUUMUVGWJUUMXBOWLXCAXNXDMYFXNNAXNU
        UKXEXNXFOWLXG @.
    @}

    expt.3 @e |- ( ph -> X e. ( rRndVar ` P ) ) @.
    @{
      exptmulc.1 @e |- ( ph -> C e. RR ) @.
      @( The expected value of a random variable multiplied by a constant.
         (Contributed by Thierry Arnoux, 16-Jan-2017.) @)
      exptmulc   @p |- ( ph -> ( E ` ( X oFC x. C ) ) = ( ( E ` X ) x. C ) ) @=
        ( cdm cuni cmul cofc co citgm cfv probmeasd rrvf2 rrvdmss exptval
        unveldomd probtotrnd itgmmulc2TMP rrvmulc oveq1d 3eqtr4d ) ACJKZEBLMNZC
        OUGECOZBLNUHDPEDPZBLNAUGBECACFQACEFHRACEFHSACFUAACFUBIUCACDUHFGABCEFHIU
        DTAUJUIBLACDEFGHTUEUF @.
    @}

    @{
      exptadd.1 @e |- ( ph -> Y e. ( rRndVar ` P ) ) @.
      @( The sum of expected values is the expected value of the sum.
         (Contributed by Thierry Arnoux, 15-Jan-2017.) @)
      exptadd   @p |- ( ph ->
                          ( E ` ( X oF + Y ) ) = ( ( E ` X ) + ( E ` Y ) ) ) @=
        ( cdm cuni caddc cof co citgm cfv probmeasd rrvf2 rrvdmss exptval
        unveldomd probtotrnd itgmaddTMP rrvadd oveq12d 3eqtr4d ) ABJKZDELMNZBOU
        GDBOZUGEBOZLNUHCPDCPZECPZLNAUGDEBABFQABDFHRABEFIRABDFHSABEFISABFUAABFUB
        UCABCUHFGABDEFHIUDTAUKUIULUJLABCDFGHTABCEFGITUEUF @.

      exptle.1 @e |- ( ph -> X oR <_ Y ) @.
      @( If two random variables compare, so do their expected values.
         (Contributed by Thierry Arnoux, 15-Jan-2017.) @)
      exptle   @p |- ( ph -> ( E ` X ) <_ ( E ` Y ) ) @=
        ( cdm cuni citgm cfv cle cofr wbr itgmleTMP syl exptval 3brtr4d ) ABKLZ
        DBMZUBEBMZDCNECNOADEOPQUCUDOQJUBDEBRSABCDFGHTABCEFGITUA @.
    @}

    @{
      @d b x A @. @d b I @. @d b p x P @. @d b x X @. @d b p x ph @.
      markovneq.1 @e |- ( ph -> A e. RR+ ) @.
      markovneq.2 @e |- ( ( ph /\ b e. U. dom P ) -> 0 <_ ( X ` b ) ) @.
      markovneq.3 @e |- ( ph -> ( E ` X ) e. RR ) @.
      @{
        @( Lemma for Markov's Inequality
           (Contributed by Thierry Arnoux, 21-Jan-2017.)
           (Revised by Thierry Arnoux, 4-Feb-2017.) @)
        markovneqlem   @p |- ( ph ->
                 ( ( U. dom P _Ind ( X oRVC `' <_ A ) ) oFC x. A ) oR <_ X ) @=
          ( cle cmul wcel cc0 cvv cr ccnv corvc co cfv cofc cofr wbr cv cif cdm
          cuni wral wa crp elorrvc ifbid wn wo exmid a1i pm4.24 wb rpred brcnvg
          fvex sylancr adantr anbi2d syl5bb biantrud orbi12d mpbid breq1 elimif
          sylibr ralrimiva crrv cind cprb orvcgteel indrrv fveq1d eleq1d mpbird
          eqbrtrd syl2anc rrvfn csiga domprobsiga elex uniexb sylib ofcfn inidm
          crn 3syl c1 cmpt wss wceq elssuni syl indval eqtrd 1re ifclda fvmpt2d
          0re ofcval ovif rpcnd mulid2d mul02d ifeq12d syl5eq eqidd ofrfval ) A
          FBOUAZUBUCZEUDZBPUEUCZFOUFUGGUHZXSQZBRUIZYBFUDZOUGZGCUJZUKZULAYFGYHAY
          BYHQZUMZYDYEBXRUGZBRUIZYEOYJYCYKBRAGBCXRUNFHJKUOUPYJYKBYEOUGZUMZYKUQZ
          RYEOUGZUMZURZYLYEOUGZYJYKYOURZYRYTYJYKUSUTYJYKYNYOYQYKYKYKUMYJYNYKVAY
          JYKYMYKAYKYMVBZYIAYESQBTQUUAYBFVEABKVCZYEBSTOVDVFVGVHVIYJYPYOLVJVKVLY
          KYSYMYPBRYLBYEOVMYLRYEOVMVNVOWEVPAGYHYHYDYEOYHYAFSSAYHBPXTSTACXTHAXTC
          VQUDZQXSYHVRUDZUDZUUCQZACVSQZXSYGQZUUFHABCFHJUUBVTZXSCWAWFAXTUUEUUCAX
          SEUUDNWBZWCWDWGZAYGSQZYHSQZAUUGYGWHWOUKZQUULHCWIYGUUNWJWPYGWKWLZUUBWM
          ACFHJWGUUOUUOYHWNYJYBYAUDYCWQRUIZBPUCZYDAYHUUPBPXTSTYBUUKUUOUUBAGYHUU
          PXTTAXTUUEGYHUUPWRZUUJAUUMXSYHWSZUUEUURWTUUOAUUHUUSUUIXSYGXAXBGXSYHSX
          CWFXDAUUPTQYIAYCWQRTWQTQAYCUMXEUTRTQAYCUQUMXHUTXFVGXGXIAUUQYDWTYIAUUQ
          YCWQBPUCZRBPUCZUIYDYCWQRBPXJAYCUUTBUVARABABKXKZXLABUVBXMXNXOVGXDYJYEX
          PXQWD @.
      @}

      @( Markov's Inequality
         (Contributed by Thierry Arnoux, 21-Jan-2017.)
         (Revised by Thierry Arnoux, 4-Feb-2017.) @)
      markovneq   @p |- ( ph ->
                         ( P ` ( X oRVC `' <_ A ) ) <_ ( ( E `  X ) / A ) ) @=
        ( vx cle co cfv cmul wbr cr wcel ccnv corvc cdiv cpnf cico cv crab cioo
        rpred crn ctg ccld wb wal wceq wa elicopnf brcnvg expcom pm5.32d bitr4d
        syl rabid syl6bbr alrimiv nfcv nfrab1 cleqf icopnfcld eqeltrrd orrvccel
        sylibr probvalrnd remulcld cuni cind cofc cprb orvcgteel indrrv syl2anc
        crrv exptmulc eqidd exptind oveq1d rrvmulc markovneqlem exptle eqbrtrrd
        cdm eqtrd lediv1dd recnd rpne0d divcan4d breq1d mpbid ) AEBNUAZUBOZCPZB
        QOZBUCOZEDPZBUCOZNRXAXENRAXBXDBAXABAWTCGAMBCWSSEGIABJUIZABUDUEOZMUFZBWS
        RZMSUGZUHUJUKPULPZAXHXGTZXHXJTZUMZMUNXGXJUOAXNMAXLXHSTZXIUPZXMAXLXOBXHN
        RZUPZXPABSTZXLXRUMXFBXHUQVBAXSXPXRUMXFXSXOXIXQXOXSXIXQUMXHBSSNURUSUTVBV
        AXIMSVCVDVEMXGXJMXGVFXIMSVGVHVLAXSXGXKTXFBVIVBVJVKZVMZXFVNLJAWTCWKZVOVP
        PZPZBQVQOZDPZXBXDNAYFYDDPZBQOXBABCDYDGHACVRTWTYBTYDCWBPTGABCEGIXFVSWTCV
        TWAZXFWCAYGXABQAWTCDYCGHXTAYCWDZWEWFWLACDYEEGHABCYDGYHXFWGIABCDYCEFGHIJ
        KLYIWHWIWJWMAXCXAXENAXABAXAYAWNABXFWNABJWOWPWQWR @.
    @}

  @}

  @{
    exptsum.1 @e |- ( ph -> P e. Prob ) @.
    exptsum.2 @e |- ( ph -> E = ( Exp ` P ) ) @.
    exptsum.3 @e |- ( ph -> X : NN --> ( rRndVar ` P ) ) @.
    exptsum.4 @e |- ( ( ph /\ N e. NN ) -> S = ( seq 1 ( oF + , X ) ` N ) ) @.
    @( The expected value of an indexed sum of random variables is the sum
       of the expected values. (Contributed by Thierry Arnoux, XX-May-2017.) @)
    exptsum @p |- ( ( ph /\ N e. NN ) ->
                       ( E ` S ) = sum_ i e. ( 1 ... N ) ( E ` ( X ` i ) ) ) @=
      ? @.
  @}

@(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Variance and Covariance
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
@)

  @c Var @. @( Symbol for the variance, 'var' @)
  @c Cov @. @( Symbol for the covariance, 'cov' @)

  cvar @a class Var @.
  ccov @a class Cov @.

  @( Define the variance of a random variable.
     (Contributed by Thierry Arnoux, 15-Jan-2017.) @)
  df-var @a |- Var = ( p e. Prob |-> ( x e. ( rRndVar ` p ) |-> ( ( Exp ` p ) `
  ( ( x oFC - ( ( Exp ` p ) ` x ) ) oFC ^ 2 ) ) ) ) @.

  @( Define the covariance of two random variables.
     (Contributed by Thierry Arnoux, 18-May-2017.) @)
  df-cov @a |- Cov = ( p e. Prob |->
    ( x e. ( rRndVar ` p ) , y e. ( rRndVar ` p ) |-> ( ( Exp ` p ) `
    ( ( x oFC - ( ( Exp ` p ) ` x ) ) oFC x. ( y oFC - ( ( Exp ` p ) ` y ) ) )
    ) ) ) @.

  @{
    @d p x E @. @d p x P @. @d p x ph @. @d x X @.
    varval.1 @e |- ( ph -> P e. Prob ) @.
    varval.2 @e |- ( ph -> E = ( Exp ` P ) ) @.
    varval.3 @e |- ( ph -> V = ( Var ` P ) ) @.
    varval.4 @e |- ( ph -> X e. ( rRndVar ` P ) ) @.
    @( Value of the variance of the random variable ` X ` .
       (Contributed by Thierry Arnoux, 15-Jan-2017.) @)
    varval   @p |- ( ph -> ( V ` X ) =
      ( E ` ( ( X oFC - ( E ` X ) ) oFC ^ 2 ) ) ) @=
      ( vx vp cfv co c2 crrv cvv cvar cmpt wceq fveq2d cmin cofc cexp
      cv cexpt cprb df-var a1i wa adantr eqtr4d fveq1d oveq2d oveq1d
      simpr fveq12d mpteq12dv wcel fvex mptexg fvmptd eqtrd oveq12d
      syl ) AJEJUDZVECLZUAUBZMZNUCUBZMZCLZEECLZVGMZNVIMZCLZBOLZDPADBQ
      LJVPVKRZHAKBJKUDZOLZVEVEVRUELZLZVGMZNVIMZVTLZRZVQUFQPQKUFWERSAJ
      KUGUHAVRBSZUIZJVSWDVPVKWGVRBOAWFUOZTWGWCVJVTCWGVTBUELZCWGVRBUEW
      HTACWISWFGUJUKZWGWBVHNVIWGWAVFVEVGWGVEVTCWJULUMUNUPUQFAVPPURZVQ
      PURWKABOUSUHJVPVKPUTVDVAVBAVEESZUIZVJVNCWMVHVMNVIWMVEEVFVLVGAWL
      UOZWMVEECWNTVCUNTIVOPURAVNCUSUHVA @.

    @( Variances are real numbers.
       (Contributed by Thierry Arnoux, 18-May-2017.) @)
    varvrn   @p |- ( ph -> ( V ` X ) e. RR ) @=
      ? @.

    @( Variances are nonnegative.
       (Contributed by Thierry Arnoux, 18-May-2017.) @)
    varge0   @p |- ( ph -> 0 <_ ( V ` X ) ) @=
      ? @.

    @{
      @d b x A @. @d b I @. @d b p x P @. @d b x X @. @d b p x ph @.
      chebneq.1 @e |- ( ph -> A e. RR+ ) @.
      chebneq.2 @e |- ( ( ph /\ b e. U. dom P ) -> 0 <_ ( X ` b ) ) @.
      chebneq.3 @e |- ( ph -> ( E ` X ) e. RR ) @.
      @( Chebyshev's Inequality @)
      chebneq   @p |- ( ph ->
        ( P ` ( ( abs ` ( X oFC - ( E ` X ) ) ) oRVC `' <_ A ) )
                                              <_ ( ( V ` X ) / ( A ^ 2 ) ) ) @=
        ? @.
     @}
  @}

  @{
    @d p x E @. @d p x P @. @d p x ph @. @d x X @.
    covval.1 @e |- ( ph -> P e. Prob ) @.
    covval.2 @e |- ( ph -> E = ( Exp ` P ) ) @.
    covval.3 @e |- ( ph -> C = ( Cov ` P ) ) @.
    @{
      covval.4 @e |- ( ph -> X e. ( rRndVar ` P ) ) @.
      covval.5 @e |- ( ph -> Y e. ( rRndVar ` P ) ) @.
      @( Value of the variance of the random variable ` X ` .
         (Contributed by Thierry Arnoux, 15-Jan-2017.) @)
      covval   @p |- ( ph -> ( X C Y ) =
        ( E ` ( ( X oFC - ( E ` X ) ) oFC x. ( Y oFC - ( E ` Y ) ) ) ) ) @=
        ? @.

      @( Covariance is symmetric. @)
      covsym @p |- ( ph -> ( X C Y ) = ( Y C X ) ) @=
        ? @.
    @}

    @{
      covid.4 @e |- ( ph -> V = ( Var ` P ) ) @.
      covid.5 @e |- ( ph -> X e. ( rRndVar ` P ) ) @.
      @( The covariance of a random variable with itself is its variance. @)
      covid @p |- ( ph -> ( X C X ) = ( V ` X ) ) @=
        ? @.

    @}

    @{
      varsum.3 @e |- ( ph -> V = ( Var ` P ) ) @.
      varsum.5 @e |- ( ph -> X : NN --> ( rRndVar ` P ) ) @.
      varsum.6 @e |- ( ( ph /\ N e NN ) -> S = ( seq 1 ( oF + , X ) ` N ) ) @.
      @( Sum of the variance of a sequence of random variables ` X ` .
         (Contributed by Thierry Arnoux, XX-May-2017.) @)
      varsum @p |- ( ( ph /\ N e. NN ) -> ( V ` S ) =  sum_ i e. ( 1 ... N )
        sum_ j e. ( 1 ... N ) ( ( X ` i ) C ( X ` j ) ) ) @=
        ? @.

      @( Sum of the variance of a sequence of random variables ` X ` ,
         expressed using the sum of the variances.
         (Contributed by Thierry Arnoux, XX-May-2017.) @)
      varsum2 @p |- ( ( ph /\ N e. NN ) -> ( V ` S ) = (
        sum_ i e. ( 1 ... N ) ( V ` ( X ` i ) ) + ( 2 x. sum_ i e. ( 1 ... N )
        sum_ j e. ( 1 ..^ i ) ( ( X ` i ) C ( X ` j ) ) ) ) ) @=
        ? @.
    @}
  @}

$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Probabilities - example
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y H $.  $d x y T $.  $d y P $.  $d y X $.
    $( Coin-flip is a usual example in the probability theory.
       Here we use two sets ` H ` for heads, and ` T ` for tails.
       We assume a uniform probability for heads and tails.
       A random variable ` X ` is defined, yielding to a result of 1 for heads
       and 0 for tails. $)

    coinflip.h $e |- H e. _V $.
    coinflip.t $e |- T e. _V $.
    coinflip.th $e |- H =/= T $.
    coinflip.2 $e |- P = ( ( # |` ~P { H , T } ) oFC / 2 ) $.
    coinflip.3 $e |- X = { <. H , 1 >. , <. T , 0 >. } $.
    $( Division in the extended real numbers can be used for the coin-flip
       example.  (Contributed by Thierry Arnoux, 15-Jan-2017.) $)
    coinfliplem $p |- P = ( ( # |` ~P { H , T } ) oFC /e 2 ) $=
      ( vx chash c2 cdiv co cxdiv wcel wceq cr cfn a1i vy cpr cpw cres cofc cvv
      cv wa cfv simpr fvres syl cn0 wss prfi elpwid ssfi sylancr hashcl eqeltrd
      nn0red cc0 wne 2re 2ne0 rexdiv syl3anc hashresfn pwfi mpbi ofcfeqd2 ax-mp
      wfn eqtr4i ) AKCBUBZUCZUDZLMUENZVQLOUENZHCUFPZVSVRQEVTJUAVPRLMOVQSRVTJUGZ
      VPPZUHZWAVQUIZWAKUIZRWCWBWDWEQVTWBUJZWAVPKUKULWCWEWCWASPZWEUMPWCVOSPZWAVO
      UNWGCBUOZWCWAVOWFUPVOWAUQURWAUSULVAUTVTUAUGZRPZUHZWKLRPZLVBVCZWJLONWJLMNQ
      VTWKUJWMWLVDTWNWLVETWJLVFVGVQVPVMVTVPVHTVPSPZVTWHWOWIVOVIVJTWMVTVDTVKVLVN
      $.

    $( The ` P ` we defined for coin-flip is a probability law.  (Contributed
       by Thierry Arnoux, 15-Jan-2017.) $)
    coinflipprob $p |- P e. Prob $=
      ( chash cfv co cprb c2 wcel wceq eqeltri ax-mp cvv mp2an cres coinfliplem
      cpr cpw cuni cxdiv cofc unipw prex pwid fveq2i wne wb hashprg mpbi 3eqtri
      fvres oveq2i eqtr4i cmeas crp pwcntmeas 2rp probfinmeasb ) AJCBUCZUDZUAZV
      FUEZVGKZUFUGZLZMAVGNVJLVKABCDEFGHIUBVINVGVJVIVHJKZVEJKZNVHVFOVIVLPVHVEVFV
      EUHZVECBUIZUJQVHVFJUQRVHVEJVNUKCBULZVMNPZGCSOBSOVPVQUMEFCBSSUNTUOUPZURUSV
      GVFUTKOZVIVAOVKMOVESOVSVOVESVBRVINVAVRVCQVFVGVDTQ $.

    $( The space of our coin-flip probability.  (Contributed by Thierry Arnoux,
       15-Jan-2017.) $)
    coinflipspace $p |- dom P = ~P { H , T } $=
      ( cdm chash cpr cpw c2 cdiv cvv wcel wfn cr a1i cres cofc dmeqi hashresfn
      co wceq prex pwexg mp1i 2re ofcfn fndm mp2b eqtri ) AJKCBLZMZUAZNOUBUEZJZ
      UPAURHUCCPQZURUPRUSUPUFEUTUPNOUQPSUQUPRUTUPUDTUOPQUPPQUTCBUGUOPUHUINSQUTU
      JTUKUPURULUMUN $.

    $( The universe of our coin-flip probability is ` { H , T } ` .
       (Contributed by Thierry Arnoux, 15-Jan-2017.) $)
    coinflipuniv $p |- U. dom P = { H , T } $=
      ( cdm cuni cpr cpw coinflipspace unieqi unipw eqtri ) AJZKCBLZMZKSRTABCDE
      FGHINOSPQ $.

    $( The ` X ` we defined for coin-flip is a random variable.  (Contributed
       by Thierry Arnoux, 12-Jan-2017.) $)
    coinfliprv $p |- X e. ( rRndVar ` P ) $=
      ( vy wcel cdm cr wf cbrsiga c1 cc0 cpr wss cvv crrv cfv cuni ccnv cv cima
      wral cop wne 1ex c0ex fpr ax-mp feq1i mpbir coinflipuniv feq2i wa 1re 0re
      pm3.2i prss mpbi fss mp2an crn imassrn dfdm4 eqtr3i sseqtri coinflipspace
      fdmi cpw eleq2i prex cnvexg imaexg mp2b elpw bitr2i biimpi mp1i rgen cprb
      eqeltri wb coinflipprob a1i isrrvv mpbir2an ) DAUAUBKZALZUCZMDNZDUDZJUEZU
      FZWLKZJOUGZWMPQRZDNZWTMSZWNXACBRZWTDNZXDXCWTCPUHZBQUHZRZNZCBUIXHGCBPQEFUJ
      UKULUMXCWTDXGIUNUOZWMXCWTDABCDEFGHIUPUQUOPMKZQMKZURXBXJXKUSUTVAPQMUJUKVBV
      CWMWTMDVDVEWRJOWQXCSZWRWPOKWQWOVFZXCWOWPVGDLXMXCDVHXCWTDXIVLVIVJXLWRWRWQX
      CVMZKXLWLXNWQABCDEFGHIVKVNWQXCDTKWOTKWQTKDXGTIXEXFVOWEDTVPWOWPTVQVRVSVTWA
      WBWCCTKZWKWNWSURWFEXOJADAWDKXOABCDEFGHIWGWHWIUMWJ $.

    $( The probability of heads is one-half.  (Contributed by Thierry Arnoux,
       15-Jan-2017.) $)
    coinflippv $p |- ( P ` { H } ) = ( 1 / 2 ) $=
      ( vx cfv chash c2 cdiv c1 wcel wceq cvv cn0 a1i csn cpr cpw cres cofc wss
      co fveq1i snsspr1 prex elpw2 biimpri cv fveq2 hashsng ax-mp syl6eq oveq1d
      cmpt pwex 2nn0 wa cfn prfi elpwi ssfi sylancr adantl hashcl syl cun hashf
      cpnf wf ssv feqresmpt ofcfval2 ovex fvmpt mp2b eqtri ) CUAZAKWBLCBUBZUCZU
      DZMNUEUGZKZOMNUGZWBAWFHUHWBWCUFZWBWDPZWGWHQCBUIWJWIWBWCCBUJZUKULJWBJUMZLK
      ZMNUGZWHWDWFWLWBQZWMOMNWOWMWBLKZOWLWBLUNCRPZWPOQECRUOUPUQURWQWFJWDWNUSQEW
      QJWDWMMNWERSSWDRPWQWCWKUTTMSPWQVATWQWLWDPZVBWLVCPZWMSPWRWSWQWRWCVCPWLWCUF
      WSCBVDWLWCVEWCWLVFVGVHWLVIVJWQJRSVMUAVKZWDLRWTLVNWQVLTWDRUFWQWDVOTVPVQUPO
      MNVRVSVTWA $.

    $( The probability of tails is one-half.  (Contributed by Thierry Arnoux,
       5-Feb-2017.) $)
    coinflippvt $p |- ( P ` { T } ) = ( 1 / 2 ) $=
      ( csn cfv c1 c2 co cmin cdif wcel wceq ax-mp eqtri cdiv cuni coinflipprob
      cdm cprb cpr cpw prid1 snelpwi coinflipspace probdsb coinflipuniv difeq1i
      eleqtrri mp2an wne difprsn1 fveq2i coinflippv oveq2i 3eqtr3i 1mhlfehlf )
      BJZAKZLLMUANZONZVEAUDZUBZCJZPZAKZLVIAKZONZVDVFAUEQVIVGQVKVMRABCDEFGHIUCVI
      CBUFZUGZVGCVNQVIVOQCBEUHCVNUISABCDEFGHIUJUNVIAUKUOVJVCAVJVNVIPZVCVHVNVIAB
      CDEFGHIULUMCBUPVPVCRGCBUQSTURVLVELOABCDEFGHIUSUTVAVBT $.

$(
    @( The expectation of our gain is one-half.
       (Contributed by Thierry Arnoux, 12-Jan-2017.) @)
    coinflipexp @p |- ( ( Exp ` P ) ` X ) = ( 1 / 2 ) @=
      ( cfv c2 cxdiv co c1 cvv wcel wceq a1i ax-mp cc0 cexpt cpr chash cpw cres
      cofc citgm cdiv cuni cprb coinflipprob eqidd crrv coinfliprv coinflipuniv
      vy exptval coinfliplem itgmeq123dTMP eqtri itgmdiv3TMP cv prex itgmcntTMP
      cdm cesum oveq1i cxad fveq2 adantl cpnf cicc cop fveq1i wne 1ex fvpr1 cxr
      cle wbr cr ressxr 1re sselii 0le1 elxrge0 mpbir2an eqeltri c0ex fvpr2 0xr
      0le0 esumpr oveq12i xaddid1 3eqtri 2re 2ne0 rexdiv mp3an ) DAUAJZJZCBUBZD
      UCXCUDUEZKLUFMZUGZXCDXDUGZKLMZNKUHMZXBAVEUIZDAUGZXFCOPZXBXKQEXLAXADAUJPXL
      ABCDEFGHIUKRXLXAULDAUMJPXLABCDEFGHIUNRUQSXLXKXFQEXLXJXCXEDDAXJXCQXLABCDEF
      GHIUORXLDULAXEQXLABCDEFGHIURRUSSUTXCKDXDVAXHXCUPVBZDJZUPVFZKLMNKLMZXIXGXO
      KLXCOPXGXOQCBVCUPXCDXCOVDSVGXONKLXOCDJZBDJZVHMZNTVHMZNXLXOXSQEXLCBXNXQUPX
      ROOXMCQXNXQQXLXMCDVIVJXMBQXNXRQXLXMBDVIVJXLXLERBOPXLFRXQTVKVLMZPXLXQNYAXQ
      CCNVMBTVMUBZJZNCDYBIVNCBVOZYCNQGCBNTEVPVQSUTZNYAPNVRPZTNVSVTWAVRNWBWCWDZW
      ENWFWGWHRXRYAPXLXRTYAXRBYBJZTBDYBIVNYDYHTQGCBNTFWIWJSUTZTYAPTVRPTTVSVTWKW
      LTWFWGWHRYDXLGRWMSXQNXRTVHYEYIWNYFXTNQYGNWOSWPVGNWAPKWAPKTVOXPXIQWCWQWRNK
      WSWTWPWP @.
$)
  $}

$(
@(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Uncorrelated random sequences
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
@)

  @c UnCorr @. @( Symbol for uncorrelated random samples @)
  cuncor @a class UnCorr @.

  @( Define a random sample as an indexed set of ` n ` random variables of
     the same probability measure ` p ` , which are not correlated when taken
     pairwise. @)
  df-uncor @a |- UnCorr = ( p e. Prob |-> { x e. ( ( rRndVar ` p ) ^m NN ) |
    A. i e. NN A. j e. NN  ( ( Exp ` p ) ` ( ( x ` i ) oF * ( x ` j ) ) ) =
    ( ( ( Exp ` p ) ` ( x ` i ) ) * ( ( Exp ` p ) ` ( x ` j ) ) ) } ) @.

  @{
    uncorval.1 @e |- ( ph -> P e. Prob ) @.
    uncorval.2 @e |- ( ph -> E = ( Exp ` P ) ) @.
    uncorval.3 @e |- ( ph -> X e. ( UnCorr ` P ) ) @.

    @( Elements of a sequence of random variables are random variables. @)
    uncorrnd @p |- ( ph -> X : NN --> ( rRndVar ` P ) ) @=
      ? @.

    @( Property of a sequence of pairwise uncorrelated random variables. @)
    uncorval @p |- ( ( ph /\ i e. NN /\ j e. NN ) ->
      ( E ` ( ( X ` i ) oF * ( X ` j ) ) ) =
      ( ( E ` ( X ` i ) ) * ( E ` ( X ` j ) ) ) ) @=
      ? @.

  @}
@(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Convergence
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
@)

  @c ~ms~> @. @( Symbol for convergence in mean square @)
  @c ~p~> @. @( Symbol for convergence in probability @)
  cmsli @a class ~ms~> @.
  cprl @a class ~p~> @.

  @( Define convergence in probability @)
  df-prl @a |- ~p~> = ( p e. Prob |-> { <. x , y >. | A. e e. RR+ ( n e. NN |->
    ( p ` ( ( abs o. ( ( x ` n ) oFC - y ) ) oRVC `' <_ e  ) ) ) ~~> 0 } ) @.

  @( Define convergence in mean square @)
  df-msli @a |- ~ms~> = ( p e. Prob |-> { <. x , y >. | ( n e. NN |->
    ( ( Exp ` p ) ` ( ( ( x ` n ) oFC - y ) oFC ^ 2 ) ) ) ~~> 0 } ) @.

  @{
    plival.1 @e |- ( ph -> P e. Prob ) @.
    @( Convergence in mean square is a relation. @)
    plirel @p |- ( ph -> Rel ( ~p~> ` P ) ) @=
      ? @.
    @( Convergence in mean square is a relation. @)
    mslirel @p |- ( ph -> Rel ( ~ms~> ` P ) ) @=
      ? @.

    plival.2 @e |- ( ph -> X : NN --> ( rRndVar ` P ) ) @.
    plival.3 @e |- ( ph -> Y e. RR ) @.
    @( Express the predicate: ` X ` converges in probability to ` Y ` . @)
    plival @p |- ( ph -> ( X ( ~ms~> ` P ) Y <-> A. e e. RR+ ( n e. NN |->
      ( P ` ( ( abs o. ( ( X ` n ) oFC - Y ) ) oRVC `' <_ e  ) ) ) ~~> 0 ) ) @=
      ? @.

    mslival.1 @e |- ( ph -> E = ( Exp ` P ) ) @.
    @( Express the predicate: ` X ` converges in mean square to ` Y ` . @)
    mslival @p |- ( ph -> ( X ( ~ms~> ` P ) Y <-> ( n e. NN |->
      ( E ` ( ( ( X ` n ) oFC - Y ) oFC ^ 2 ) ) ) ~~> 0 ) ) @=
      ? @.
  @}

@(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Weak Law of Large Numbers
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
@)
  @{
    @( Hypothesis for the Weak Law of Large Numbers. ` X ` is a random sample.
       ~ wllnms.5 expresses the fact that the random variables ` X ` are
       uncorrelated. ~ wllnms.9 defines ` S ` as the partial sum of ` X ` over
       ` ( 1 ... n ) ` . @)
    wllnms.1 @e |- ( ph -> P e. Prob ) @.
    wllnms.2 @e |- ( ph -> E = ( Exp ` P ) ) @.
    wllnms.3 @e |- ( ph -> V = ( Var ` P ) ) @.
    wllnms.4 @e |- ( ph -> X e. ( UnCorr ` P ) ) @.
    wllnms.5 @e |- ( ph -> C e. RR+ ) @.
    wllnms.6 @e |- ( ( ph /\ N e. NN ) -> M = ( E ` ( X ` N ) ) ) @.
    wllnms.7 @e |- ( ( ph /\ N e. NN ) -> ( V ` ( X ` N ) ) <_ C ) @.
    wllnms.8 @e |- ( ( ph /\ n e NN ) -> S = ( seq 1 ( oF + , X ) ` n ) ) @.

    @( Weak Law of Large Numbers - convergence in mean square @)
    wllnms @p |- ( ph -> ( n e. NN |-> ( S oFC / n ) ) ( ~ms~> ` P ) M ) @=
      ? @.

    @( Weak Law of Large Numbers - convergence in probability @)
    wllnp @p |- ( ph -> ( n e. NN |-> ( S oFC / n ) ) ( ~p~> ` P ) M ) @=
      ? @.
  @}
$)

$( End $[ set-mbox-ta-proba.mm $] $)


$( Begin $[ set-mbox-ta-ballot.mm $] $)
$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Bertrand's Ballot Problem
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $(
    $d c k i $.
    $d c i M $.
    $d c i N $.
    $d b c i x O $.
    $d i j k C $.
    $d c i j k F $.
    $d b c x E $.
    $d i j k J $.
    $d b c i x O $.
    $d b R $.
    $d k ph $.
  $)

  ${
    $d c M $.  $d c N $.  $d c O $.  $d i M $.  $d i N $.  $d i O $.  $d j M $.
    $d j N $.  $d j O $.  $d k M $.  $d k N $.  $d k O $.

    $( Two candidates A and B participate to an election,
      where A receives ` M ` votes and B receives ` N ` votes.
      Ballots are counted by picking ballot papers one by one,
      and we're evaluating the probability that A is ahead throughout the count

      We number the ballots picked using integers in ` ( 1 ... ( M + N ) ) ` .
      We then characterise a counting ` c ` as the set of indices in the
      counting sequence where A was picked.
      Thus, for a counting ` c C_ ( 1 ... ( M + N ) ) ` :
        "The ith ballot paper picked is for A" is expressed as ` i e. c `
        "The ith ballot paper picked is for B" is expressed as ` -. i e. c `
        "The number of ballot papers for A" is expressed as ` ( # ` c ) `
    $)

    ballotth.m $e |- M e. NN $.
    ballotth.n $e |- N e. NN $.

    $( ` O ` is the universe, all countings where A receives ` M ` votes
       out of ` M + N ` $)
    ballotth.o $e |- O = { c e. ~P ( 1 ... ( M + N ) ) | ( # ` c ) = M } $.
    $( ` O ` is a set.  (Contributed by Thierry Arnoux, 7-Dec-2016.) $)
    ballotlemoex $p |- O e. _V $=
      ( cv chash cfv wceq c1 caddc co cfz cpw ovex pwex rabex2 ) DHIJAKDLABMNZO
      NZPCGUALTOQRS $.

    $( The size of the universe is a binomial coefficient.  (Contributed by
       Thierry Arnoux, 23-Nov-2016.) $)
    ballotlem1 $p |- ( # ` O ) = ( ( M + N ) _C M ) $=
      ( chash cfv cv wceq c1 caddc co cfz cpw crab cbc wcel cn fveq2i fzfi nnzi
      cfn cz hashbc mp2an cn0 wa pm3.2i nnaddcl nnnn0 mp2b hashfz1 ax-mp oveq1i
      3eqtr2i ) CHIDJHIAKDLABMNZONZPQZHIZUSHIZARNZURARNCUTHGUAUSUDSAUESVCVAKLUR
      UBAEUCDUSAUFUGVBURARURUHSZVBURKATSZBTSZUIURTSVDVEVFEFUJABUKURULUMURUNUOUP
      UQ $.

    ${
      $d c d $.  $d d C $.  $d d M $.  $d d N $.
      $( Elementhood in ` O ` .  (Contributed by Thierry Arnoux,
         17-Apr-2017.) $)
      ballotlemelo $p |- ( C e. O <->
                             ( C C_ ( 1 ... ( M + N ) ) /\ ( # ` C ) = M ) ) $=
        ( vd wcel c1 co cfz chash cfv wceq wa cv fveq2 eqeq1d caddc cpw cbvrabv
        wss crab eqtri elrab2 ovex elpw2 anbi1i bitri ) ADJAKBCUALZMLZUBZJZANOZ
        BPZQAUMUDZUQQIRZNOZBPZUQIAUNDUSAPUTUPBUSANSTDERZNOZBPZEUNUEVAIUNUEHVDVA
        EIUNVBUSPVCUTBVBUSNSTUCUFUGUOURUQAUMKULMUHUIUJUK $.
    $}

    $( Let ` P ` be the uniform discrete probability measure over ` O ` . $)
    ballotth.p $e |- P = ( x e. ~P O |-> ( ( # ` x ) / ( # ` O ) ) ) $.

    ${
      $d c i M $.  $d c i N $.  $d c i x O $.

      $( The probability that the first vote picked in a count is a B.
         (Contributed by Thierry Arnoux, 23-Nov-2016.) $)
      ballotlem2 $p |- ( P ` { c e. O | -. 1 e. c } ) = ( N / ( M + N ) ) $=
        ( vi c1 wcel cfv co c2 wa cle wbr mp2an cv wn crab caddc cmin cbc chash
        cdiv wceq ssrab2 ballotlemoex elpw2 mpbir fveq2 oveq1d ovex fvmpt ax-mp
        cpw wss cfz cab an32 cuz 2eluzge1 fzss1 sspwb mpbi sseli clt 1re ltnlei
        1lt2 2re elfzle1 mto elelpwi ancom mtbi imnani jca cin ssin wo wb 1p1e2
        1le2 cn nnge1 nnrei le2addi eqbrtrri readdcli nnaddcl nnzi eluz elfzp12
        letri cz biimpi orcanai oveq1i syl6eleq ss2abi inab abid2 ineq1i eqtr3i
        1z 3sstr3i sstr mpan2 sylbi selpw wi wal ssab wex df-ex con1bii df-clel
        bicomi notbii imnang albii bitr4i 3bitr4ri bitr2i anbi12i anbi1i df-rab
        3imtr4i cneg cc nncni 2cn ax-1cn 3eqtri eqtri cc0 rabeq2i 3bitr4i abbii
        impbii 3eqtr4i fveq2i cfn hashbc eluz1i mpbir2an hashfz addcli subadd23
        fzfi 2z mp3an negsubdi2i 2m1e1 negeqi oveq2i negsubi ballotlem1 oveq12i
        0le1 0re cr crp nngt0i elrpii ltaddrp w3a elfzm11 mpbir3an bcm1n pncan2
        0z ) LFUAZMZUBZFEUCZBNZCDUDOZLUEOZCUFOZUWBCUFOZUHOZUWBCUEOZUWBUHOZDUWBU
        HOUWAUVTUGNZEUGNZUHOZUWFUVTEUSZMZUWAUWKUIUWMUVTEUTUVSFEUJUVTECDEFGHIUKU
        LUMAUVTAUAZUGNZUWJUHOUWKUWLBUWNUVTUIUWOUWIUWJUHUWNUVTUGUNUOJUWIUWJUHUPU
        QURUWIUWDUWJUWEUHUVQUGNCUIZFPUWBVAOZUSZUCZUGNZUWIUWDUWSUVTUGUVQUWRMZUWP
        QZFVBUVQEMZUVSQZFVBUWSUVTUXBUXDFUVQLUWBVAOZUSZMZUVSQZUWPQUXGUWPQZUVSQUX
        BUXDUXGUVSUWPVCUXAUXHUWPUXAUXHUXAUXGUVSUWRUXFUVQUWQUXEUTZUWRUXFUTPLVDNZ
        MUXJVEPLUWBVFURUWQUXEVGVHVIUXAUVRUVRUXAQZUXAUVRQUXLLUWQMZUXMPLRSZLPVJSU
        XNUBVMLPVKVNVLVHLPUWBVOVPLUVQUWQVQVPUVRUXAVRVSVTWAUVQUXEUTZUVQKUAZLUIZU
        BZKVBZUTZQZUVQUWQUTZUXHUXAUYAUVQUXEUXSWBZUTZUYBUVQUXEUXSWCUYDUYCUWQUTUY
        BUXPUXEMZUXRQZKVBZUXPUWQMZKVBUYCUWQUYFUYHKUYFUXPLLUDOZUWBVAOZUWQUYEUXQU
        XPUYJMZUYEUXQUYKWDZUWBUXKMZUYEUYLWEUYMLUWBRSZLPRSPUWBRSZUYNWGUYIPUWBRWF
        LCRSZLDRSZUYIUWBRSCWHMZUYPGCWIURZDWHMZUYQHDWIURLLCDVKVKCGWJZDHWJZWKTWLZ
        LPUWBVKVNCDVUAVUBWMWRTLWSMUWBWSMZUYMUYNWEXIUWBUYRUYTUWBWHMZGHCDWNTZWOZL
        UWBWPTUMUXPLUWBWQURWTXAUYIPUWBVAWFXBXCXDUYEKVBZUXSWBUYGUYCUYEUXRKXEVUHU
        XEUXSKUXEXFXGXHKUWQXFXJUVQUYCUWQXKXLXMUXGUXOUVSUXTFUXEXNUXTUXPUVQMZUXRX
        OKXPZUVSUXRKUVQXQUXQVUIQZKXRZUBVUKUBZKXPZUVSVUJVUNVULVULVUNUBVUKKXSYBXT
        UVRVULKLUVQYAYCVUJVUIUXQQZUBZKXPVUNVUIUXQKYDVUMVUPKVUKVUOUXQVUIVRYCYEYF
        YGYHYIFUWQXNYLUUDYJUXCUXIUVSUWPFEUXFIUUAYJUUBUUCUWPFUWRYKUVSFEYKUUEUUFU
        WQUGNZCUFOZUWTUWDUWQUUGMCWSMZVURUWTUIPUWBUUNCGWOZFUWQCUUHTVUQUWCCUFVUQU
        WBLYMZUDOZUWCVUQUWBPUEOLUDOZUWBLPUEOZUDOZVVBUWBPVDNMZVUQVVCUIVVFVUDUYOV
        UGVUCPUWBUUOUUIUUJPUWBUUKURUWBYNMPYNMLYNMVVCVVEUICDCGYOZDHYOZUULZYPYQUW
        BPLUUMUUPVVDVVAUWBUDPLUEOZYMVVDVVAPLYPYQUUQVVJLUURUUSXHUUTYRUWBLVVIYQUV
        AYSXBXHXHCDEFGHIUVBUVCYSCYTUWCVAOMZVUEUWFUWHUIVVKVUSYTCRSZCUWBVJSZVUTYT
        LRSUYPVVLUVDUYSYTLCUVEVKVUAWRTCUVFMDUVGMVVMVUADVUBDHUVHUVICDUVJTYTWSMVU
        DVVKVUSVVLVVMUVKWEUVPVUGCYTUWBUVLTUVMVUFCUWBUVNTUWGDUWBUHCYNMDYNMUWGDUI
        VVGVVHCDUVOTXBYR $.
    $}

    $d c i F $.  $d j F $.  $d k F $.
    $( F is the difference between ballots for A and B
      among the i first ballots picked in a given count ` c ` .
      Those ballots for A are in ` c `, i.e. in ` ( ( 1 ... i ) i^i c ) `
      Those ballots for B are out of ` c `, i.e. in ` ( ( 1 ... i ) \ c ) ` $)
    ballotth.f $e |- F = ( c e. O |-> ( i e. ZZ |->
      ( ( # ` ( ( 1 ... i ) i^i c ) ) - ( # ` ( ( 1 ... i ) \ c ) ) ) ) ) $.

    $d i c $.  $d i C $.
    ${
      $d b O $.  $d b C $.  $d b c $.  $d b i $.  $d i J $.
      ballotlemfval.c $e |- ( ph -> C e. O ) $.
      ballotlemfval.j $e |- ( ph -> J e. ZZ ) $.

      $d i ph $.
      $( The value of F. (Contributed by Thierry Arnoux, 23-Nov-2016.) $)
      ballotlemfval $p |- ( ph -> ( ( F ` C ) ` J ) =
        ( ( # ` ( ( 1 ... J ) i^i C ) ) - ( # ` ( ( 1 ... J ) \ C ) ) ) ) $=
        ( chash cfv vb c1 cv cfz co cin cdif cmin cz cvv wcel cmpt simpl ineq2d
        wceq wa fveq2d difeq2d oveq12d mpteq2dva difeq2 mpteq2dv cbvmptv eqtr4i
        ineq2 zex mptex fvmpt syl oveq2 ineq1d difeq1d adantl ovexd fvmptd ) AE
        GUBEUCZUDUEZCUFZSTZVQCUGZSTZUHUEZUBGUDUEZCUFZSTZWCCUGZSTZUHUEZUICFTZUJA
        CJUKWIEUIWBULZUOQUACEUIVQUAUCZUFZSTZVQWKUGZSTZUHUEZULZWJJFWKCUOZEUIWPWB
        WRVPUIUKZUPZWMVSWOWAUHWTWLVRSWTWKCVQWRWSUMZUNUQWTWNVTSWTWKCVQXAURUQUSUT
        FKJEUIVQKUCZUFZSTZVQXBUGZSTZUHUEZULZULUAJWQULPUAKJWQXHWKXBUOZEUIWPXGXIW
        MXDWOXFUHXIWLXCSWKXBVQVEUQXIWNXESWKXBVQVAUQUSVBVCVDEUIWBVFVGVHVIVPGUOZW
        BWHUOAXJVSWEWAWGUHXJVRWDSXJVQWCCVPGUBUDVJZVKUQXJVTWFSXJVQWCCXKVLUQUSVMR
        AWEWGUHVNVO $.

      $( ` ( F `` C ) ` has values in ` ZZ ` .  (Contributed by Thierry Arnoux,
         23-Nov-2016.) $)
      ballotlemfelz $p |- ( ph -> ( ( F ` C ) ` J ) e. ZZ ) $=
        ( cfv wcel c1 cfz co cin chash cdif cmin ballotlemfval cfn cn0 wss fzfi
        cz inss1 ssfi mp2an hashcl ax-mp nn0zi difss zsubcl syl6eqel ) AGCFSSUA
        GUBUCZCUDZUESZVCCUFZUESZUGUCZUMABCDEFGHIJKLMNOPQRUHVEUMTVGUMTVHUMTVEVDU
        ITZVEUJTVCUITZVDVCUKVIUAGULZVCCUNVCVDUOUPVDUQURUSVGVFUITZVGUJTVJVFVCUKV
        LVKVCCUTVCVFUOUPVFUQURUSVEVGVAUPVB $.
    $}

    ${
      $d i J $.  $d i ph $.
      ballotlemfp1.c $e |- ( ph -> C e. O ) $.
      ballotlemfp1.j $e |- ( ph -> J e. NN ) $.
      $( If the ` J ` th ballot is for A, ` ( F `` C ) ` goes up 1.  If the
         ` J ` th ballot is for B, ` ( F `` C ) ` goes down 1.  (Contributed by
         Thierry Arnoux, 24-Nov-2016.) $)
      ballotlemfp1 $p |- ( ph -> (
         ( -. J e. C -> ( ( F ` C ) ` J ) = ( ( ( F ` C ) ` ( J - 1 ) ) - 1 ) )
      /\ ( J e. C -> ( ( F ` C ) ` J ) = ( ( ( F ` C ) ` ( J - 1 ) ) + 1 ) )
        ) ) $=
        ( c1 wceq wcel wn cfv cmin co wi caddc cfz cin chash cdif ballotlemfval
        wa nnzd adantr cc cfn cn0 wss fzfi inss1 ssfi mp2an hashcl ax-mp nn0cni
        a1i diffi 1cnd subsub4d 1zzd zsubcld oveq1d csn cun cuz cn elnnuz sylib
        fzspl ineq1d indir syl6eq syl c0 disjsn eqeq1i sylbb1 adantl uneq2d un0
        incom eqtrd fveq2d difeq1d difundir disj3 eqcomd sylan9eq cz uzid uznfz
        3syl difss sseli nsyl jctil hashunsng oveq12d 3eqtr4rd ex addsubd snssi
        sylc df-ss simpr 3eqtrd difin2 difid ineq1i 0in eqtri 3eqtr4d jca ) AGC
        UAZUBZGCFUCZUCZGSUDUEZYGUCZSUDUEZTZUFYEYHYJSUGUEZTZUFAYFYLAYFUMZYHSGUHU
        EZCUIZUJUCZYPCUKZUJUCZUDUEZYKAYHUUATZYFABCDEFGHIJKLMNOPQAGRUNZULZUOYOSY
        IUHUEZCUIZUJUCZUUECUKZUJUCZUDUEZSUDUEUUGUUISUGUEZUDUEYKUUAYOUUGUUISUUGU
        PUAZYOUUGUUFUQUAZUUGURUAUUEUQUAZUUFUUEUSUUMSYIUTZUUECVAZUUEUUFVBVCZUUFV
        DVEVFZVGUUIUPUAZYOUUIUUHUQUAZUUIURUAUUNUUTUUOUUECVHVEUUHVDVEVFZVGYOVIVJ
        YOYJUUJSUDAYJUUJTZYFABCDEFYIHIJKLMNOPQAGSUUCAVKVLULZUOVMYOYRUUGYTUUKUDY
        OYQUUFUJYOYQUUFGVNZCUIZVOZUUFAYQUVFTZYFAGSVPUCUAZUVGAGVQUAUVHRGVRVSZUVH
        YQUUEUVDVOZCUIUVFUVHYPUVJCSGVTZWAUUEUVDCWBWCWDZUOYOUVFUUFWEVOUUFYOUVEWE
        UUFYFUVEWETZACUVDUIZWETYFUVMCGWFUVNUVEWECUVDWLWGWHZWIWJUUFWKWCWMWNYOYTU
        UHUVDVOZUJUCZUUKYOYSUVPUJAYFYSUUHUVDCUKZVOZUVPAUVHYSUVSTUVIUVHYSUVJCUKU
        VSUVHYPUVJCUVKWOUUEUVDCWPWCWDZYFUVRUVDUUHYFUVDUVRYFUVMUVDUVRTUVOUVDCWQV
        SWRWJWSWNYOGWTUAZUUTGUUHUAZUBZUMUVQUUKTAUWAYFUUCUOYOUWCUUTYOGUUEUAZUWBA
        UWDUBZYFAUWAGGVPUCUAZUWEUUCGXAZGSGXBZXCUOUUHUUEGUUECXDZXEXFUUNUUHUUEUSU
        UTUUOUWIUUEUUHVBVCXGUUHGWTXHXNWMXIXJWMXKAYEYNAYEUMZYHUUAYMAUUBYEUUDUOUW
        JUUGSUGUEZUUIUDUEUUJSUGUEUUAYMUWJUUGSUUIUULUWJUURVGUWJVIUUSUWJUVAVGXLUW
        JYRUWKYTUUIUDUWJYRUVFUJUCZUUFUVDVOZUJUCZUWKAYRUWLTYEAYQUVFUJUVLWNUOYEUW
        LUWNTAYEUVFUWMUJYEUVEUVDUUFYEUVDCUSZUVEUVDTGCXMZUVDCXOVSWJWNWIUWJYEUUMG
        UUFUAZUBZUMUWNUWKTAYEXPUWJUWRUUMUWJUWDUWQUWJUWAUWFUWEAUWAYEUUCUOUWGUWHX
        CUUFUUEGUUPXEXFUUQXGUUFGCXHXNXQUWJYTUVSUJUCZUUHWEVOZUJUCZUUIAYTUWSTYEAY
        SUVSUJUVTWNUOYEUWSUXATAYEUVSUWTUJYEUVRWEUUHYEUWOUVRWETUWPUWOUVRCCUKZUVD
        UIZWEUVDCCXRUXCWEUVDUIWEUXBWEUVDCXSXTUVDYAYBWCWDWJWNWIUWJUWTUUHUJUWTUUH
        TUWJUUHWKVGWNXQXIUWJYJUUJSUGAUVBYEUVCUOVMYCWMXKYD $.

      $d k i j $.  $d j k J $.  $d j k C $.  $d ph k $.
      ballotlemfc0.3 $e |- ( ph ->
                                E. i e. ( 1 ... J ) ( ( F ` C ) ` i ) <_ 0 ) $.
      ballotlemfc0.4 $e |- ( ph -> 0 < ( ( F ` C ) ` J ) ) $.
      $( ` F ` takes value 0 between negative and positive values.
         (Contributed by Thierry Arnoux, 24-Nov-2016.) $)
      ballotlemfc0 $p |- ( ph -> E. k e. ( 1 ... J ) ( ( F ` C ) ` k ) = 0 ) $=
        ( vj cv cfv cc0 wceq cle wbr c1 cfz co crab wrex wral wcel fveq2 breq1d
        wa elrab anbi1i simprlr caddc wn simprl adantrr clt cr cuz fzssuz uzssz
        cz sstri zssre sseli ltp1d 1red readdcld ltnled mpbid syl simprr adantr
        wi simpr fveq2d breq2d wb cn elnnuz sylib eluzfz2 eleq1 anc2li 1eluzge0
        syl5ibrcom fzss1 sseld ax-mp 0red adantl ballotlemfelz zred sylan2 syl6
        elfzelz imp bitr3d ex con2d cmin wo nn1m1nn csn oveq1 nnzd fzsn rexeqdv
        eqtr3d rexsng pm2.65da biortn notnotb mpbird eleq2d eqeq2d sylibr 1z c2
        1cnd a1i wss mpd breq1 syl2anc simplrr sylan oveq1d 0z adantlrr cfn zre
        orbi1i elfzp1 nncnd npcand oveq2d orbi2d orcom syl6bb pm5.6 jctil jctir
        syl6bbr 3bitr3d biimpd fzaddel syl2an biimp3a 3anidm23 oveq12d 2eluzge1
        1p1e2 syl6bi syld sylan2d rspccva sylan2br con3d simpll mpsyl imdistani
        elfznn ballotlemfp1 simpld pncand zlem1lt sylancl bitr4d syl21anc ltled
        expr zcnd syl12anc condan simprd mpdan notbid syldan zleltp1 mpan bitrd
        letri3d mpbir2and sylan2b c0 wne ssrab2 fzfi ssfi mp2an fimaxre syl3anc
        rabn0 reximddv elrabi anim1i reximi2 ) AFUCZCGUDZUDZUEUFZFEUCZUXIUDZUEU
        GUHZEUIHUJUKZULZUMUXKFUXOUMAUBUCZUXHUGUHZUBUXPUNZUXKFUXPUXHUXPUOZUXSURA
        UXHUXOUOZUXJUEUGUHZURZUXSURZUXKUXTUYCUXSUXNUYBEUXHUXOUXLUXHUFUXMUXJUEUG
        UXLUXHUXIUPUQUSUTAUYDURZUXKUYBUEUXJUGUHZAUYAUYBUXSVAUYEUYFUXJUIVBUKZUEU
        GUHZVCZUYEUXHUIVBUKZUXIUDZUEUGUHZVCZUYIUYEUYJUXHUGUHZVCZUYMUYEUYAUYOAUY
        CUYAUXSAUYAUYBVDZVEUYAUXHUYJVFUHUYOUYAUXHUXOVGUXHUXOVKVGUXOUIVHUDZVKUIH
        VIUIVJVLVMVLZVNZVOUYAUXHUYJUYSUYAUXHUIUYSUYAVPVQVRVSVTZUYEUXSUYJUXOUOZU
        YOUYMWCAUYCUXSWAAUYCVUAUXSAUYCVUAAUYBUXHHUFZVCZUYAVUAAVUBUYBAVUBUYBVCZA
        VUBURZUEHUXIUDZVFUHZVUDAVUGVUBUAWBVUEUEUXJVFUHZVUGVUDVUEUXJVUFUEVFVUEUX
        HHUXIAVUBWDWEWFAVUBVUHVUDWGZAVUBAUYAURVUIAVUBUYAAUYAVUBHUXOUOZAHUYQUOZV
        UJAHWHUOZVUKSHWIWJUIHWKVTUXHHUXOWLWOWMUYAAUXHUEHUJUKZUOZVUIUIUEVHUDUOZU
        YAVUNWCWNVUOUXOVUMUXHUIUEHWPZWQWRZAVUNURZUEUXJVURWSVURUXJVURBCDEGUXHIJK
        LMNOPQACKUOZVUNRWBVUNUXHVKUOZAUXHUEHXEWTXAZXBVRXCXDXFXGVSXHXIAUYAVUCURZ
        UXHUIHUIXJUKZUJUKUOZVUAAUYAVUBVVDXKZWCVVBVVDWCAUYAVVEAUYAVVDVUBXKZVVEAU
        XHUIVVCUIVBUKZUJUKZUOZVVDUXHVVGUFZXKZUYAVVFAVVCUYQUOZVVIVVKWGAVVCWHUOZV
        VLAVVMHUIUFZVVMXKZAVULVVOSHXLVTAVVMVVNVCZVCZVVMXKZVVOAVVPVVMVVRWGAVVNVU
        FUEUGUHZAVVNURZUXNEHXMZUMZVVSVVTUXNEUXOUMZVWBAVWCVVNTWBVVTUXNEUXOVWAVVT
        HHUJUKZUXOVWAVVNVWDUXOUFAHUIHUJXNWTAVWDVWAUFZVVNAHVKUOVWEAHSXOZHXPVTWBX
        RXQVSAVWBVVSWGZVVNAVULVWGSUXNVVSEHWHUXLHUFUXMVUFUEUGUXLHUXIUPUQXSVTWBVS
        VVTVUGVVSVCZAVUGVVNUAWBAVUGVWHWGVVNAUEVUFAWSAVUFABCDEGHIJKLMNOPQRVWFXAX
        BVRWBVSXTVVPVVMYAVTVVNVVQVVMVVNYBUUBUUMYCZVVCWIWJUXHUIVVCUUCVTAVVHUXOUX
        HAVVGHUIUJAHUIAHSUUDAYIUUEZUUFYDAVVJVUBVVDAVVGHUXHVWJYEUUGUUNVVDVUBUUHU
        UIUUOUYAVUBVVDUUJYFAVVDVUAAVVDURUYJUIUIVBUKZVVGUJUKZUOZVUAAVVDVWMAVVDVV
        DVWMAUIVKUOZVVCVKUOZURVUTVWNURVVDVWMWGVVDAVWOVWNAVVCVWIXOYGUUKVVDVUTVWN
        UXHUIVVCXEYGUULUXHUIUIVVCUUPUUQUURUUSAVWMVUAWCVVDAVWMUYJYHHUJUKZUOVUAAV
        WLVWPUYJAVWKYHVVGHUJVWKYHUFAUVBYJVWJUUTYDVWPUXOUYJYHUYQUOVWPUXOYKUVAYHU
        IHWPWRVNUVCWBYLXHUVDUVEZXFZVEZUXSVUAURUYLUYNUXSVUAUYLUYNVUAUYLURUXSUYJU
        XPUOUYNUXNUYLEUYJUXOUXLUYJUFUXMUYKUEUGUXLUYJUXIUPUQUSUXRUYNUBUYJUXPUXQU
        YJUXHUGYMUVFUVGZUWAUVHYNYLUYEUYKUYGUFZUYMUYIWGUYEUYJCUOZVXAUYEVXBUYNUYE
        VXBVCZURUXSVUAUYLUYNAUYCUXSVXCYOUYEVUAVXCVWSWBAUYCVXCUYLUXSAUYCURZVXCUR
        ZUYKUEVXEAUYJVUMUOZUYKVGUOAUYCVXCUVIZVUOVXEVUAVXFWNVXDVUAVXCVWRWBVUOUXO
        VUMUYJVUPWQUVJAVXFURZUYKVXHBCDEGUYJIJKLMNOPQAVUSVXFRWBVXFUYJVKUOAUYJUEH
        XEWTXAXBYNVXEWSVXEUYBUYKUEVFUHZAUYAUYBVXCYOVXEAVUNUYKUXJUIXJUKZUFZUYBVX
        IWGVXGVXEUYAVUNVXDUYAVXCUYPWBZVUQVTVXEUYKUYJUIXJUKZUXIUDZUIXJUKZUFZVXKV
        XDAVUAURZVXCVXPAUYCVUAVWQUVKZVXQVXCVXPVXQVXCVXPWCZVXBUYKVXNUIVBUKZUFZWC
        ZVXQBCDEGUYJIJKLMNOPQAVUSVUARWBVUAUYJWHUOAUYJHUVLWTUVMZUVNXFYPVXEUYAVXP
        VXKWGVXLUYAVXOVXJUYKUYAVXNUXJUIXJUYAVXMUXHUXIUYAUXHUIUYAUXHUXHUIHXEUWBU
        YAYIUVOWEZYQYEVTVSVURVXKURUYBVXJUEVFUHZVXIVURUYBVYEWGZVXKVURUXJVKUOZUEV
        KUOZVYFVVAYRUXJUEUVPUVQWBVXKVXIVYEWGVURUYKVXJUEVFYMWTUVRUVSVSUVTYSVWTUW
        CUYEUYOVXCUYTWBUWDAUYCVXBVXAUXSVXDVXBURZVYAVXAVXDVXQVXBVYAVXRVXQVXBVYAV
        XQVXSVYBVYCUWEXFYPVYIUYAVYAVXAWGVXDUYAVXBUYPWBUYAVXTUYGUYKUYAVXNUXJUIVB
        VYDYQYEVTVSYSUWFVXAUYLUYHUYKUYGUEUGYMUWGVTVSUYEVYGUYFUYIWGAUYCVYGUXSAUY
        CVUNVYGVXDUYAVUNUYPVUQVTVVAUWHVEZVYGUYFUEUYGVFUHZUYIVYHVYGUYFVYKWGYRUEU
        XJUWIUWJVYGUEUYGVYGWSVYGUXJUIUXJUUAVYGVPVQVRUWKVTYCUYEUXJUEUYEUXJVYJXBU
        YEWSUWLUWMUWNAUXPVGYKZUXPYTUOZUXPUWOUWPZUXSFUXPUMVYLAUXPUXOVGUXNEUXOUWQ
        ZUYRVLYJVYMAUXOYTUOUXPUXOYKVYMUIHUWRVYOUXOUXPUWSUWTYJAVWCVYNTUXNEUXOUXC
        YFFUBUXPUXAUXBUXDUXKUXKFUXPUXOUXTUYAUXKUXNEUXHUXOUXEUXFUXGVT $.
    $}

    ${
      $d i J $.  $d i ph $.  $d k i j $.  $d j k J $.  $d j k C $.  $d ph k $.
      ballotlemfcc.c $e |- ( ph -> C e. O ) $.
      ballotlemfcc.j $e |- ( ph -> J e. NN ) $.
      ballotlemfcc.3 $e |- ( ph ->
                                E. i e. ( 1 ... J ) 0 <_ ( ( F ` C ) ` i ) ) $.
      ballotlemfcc.4 $e |- ( ph -> ( ( F ` C ) ` J ) < 0 ) $.
      $( ` F ` takes value 0 between positive and negative values.
         (Contributed by Thierry Arnoux, 2-Apr-2017.) $)
      ballotlemfcc $p |- ( ph -> E. k e. ( 1 ... J ) ( ( F ` C ) ` k ) = 0 ) $=
        ( vj cv cfv cc0 wceq cle wbr c1 cfz co crab wrex wral wcel fveq2 breq2d
        wa elrab anbi1i cmin wn caddc simprl adantrr clt cr cz cuz fzssuz uzssz
        sstri zssre sseli ltp1d 1red readdcld ltnled mpbid syl wi simprr adantr
        simpr fveq2d breq1d wb cn elnnuz sylib eleq1 syl5ibrcom anc2li 1eluzge0
        eluzfz2 fzss1 sseld ax-mp elfzelz adantl ballotlemfelz zred 0red sylan2
        syl6 imp bitr3d ex con2d wo nn1m1nn csn nnzd fzsn eqtr3d rexeqdv rexsng
        oveq1 pm2.65da biortn notnotb orbi1i mpbird eleq2d eqeq2d sylibr 1z a1i
        1cnd c2 wss mpd syl2anc simplrr sylan oveq1d 0z breq2 adantlrr cfn syld
        elfzp1 nncnd npcand oveq2d orbi2d orcom syl6bb biimpd pm5.6 jctil jctir
        syl6bbr 3bitr3d fzaddel syl2an biimp3a 3anidm23 oveq12d 2eluzge1 syl6bi
        1p1e2 sylan2d breq1 rspccva sylan2br expr con3d simpll imdistani elfznn
        mpsyl ballotlemfp1 simprd zcnd pncand zleltp1 sylancr syl21anc syl12anc
        bitr4d ltled mtand simpld mpdan notbid zlem1lt mpan2 zre resubcld bitrd
        syldan simprlr letri3d mpbir2and sylan2b c0 wne ssrab2 fzfi mp2an rabn0
        ssfi fimaxre syl3anc reximddv elrabi anim1i reximi2 ) AFUCZCGUDZUDZUEUF
        ZFUEEUCZUXKUDZUGUHZEUIHUJUKZULZUMUXMFUXQUMAUBUCZUXJUGUHZUBUXRUNZUXMFUXR
        UXJUXRUOZUYAURAUXJUXQUOZUEUXLUGUHZURZUYAURZUXMUYBUYEUYAUXPUYDEUXJUXQUXN
        UXJUFUXOUXLUEUGUXNUXJUXKUPUQUSUTAUYFURZUXMUXLUEUGUHZUYDUYGUYHUEUXLUIVAU
        KZUGUHZVBZUYGUEUXJUIVCUKZUXKUDZUGUHZVBZUYKUYGUYLUXJUGUHZVBZUYOUYGUYCUYQ
        AUYEUYCUYAAUYCUYDVDZVEUYCUXJUYLVFUHUYQUYCUXJUXQVGUXJUXQVHVGUXQUIVIUDZVH
        UIHVJUIVKVLVMVLZVNZVOUYCUXJUYLVUAUYCUXJUIVUAUYCVPVQVRVSVTZUYGUYAUYLUXQU
        OZUYQUYOWAAUYEUYAWBAUYEVUCUYAAUYEVUCAUYDUXJHUFZVBZUYCVUCAVUDUYDAVUDUYDV
        BZAVUDURZHUXKUDZUEVFUHZVUFAVUIVUDUAWCVUGUXLUEVFUHZVUIVUFVUGUXLVUHUEVFVU
        GUXJHUXKAVUDWDWEWFAVUDVUJVUFWGZAVUDAUYCURVUKAVUDUYCAUYCVUDHUXQUOZAHUYSU
        OZVULAHWHUOZVUMSHWIWJUIHWOVTUXJHUXQWKWLWMUYCAUXJUEHUJUKZUOZVUKUIUEVIUDU
        OZUYCVUPWAWNVUQUXQVUOUXJUIUEHWPZWQWRZAVUPURZUXLUEVUTUXLVUTBCDEGUXJIJKLM
        NOPQACKUOZVUPRWCVUPUXJVHUOZAUXJUEHWSWTXAZXBVUTXCVRXDXEXFXGVSXHXIAUYCVUE
        URZUXJUIHUIVAUKZUJUKUOZVUCAUYCVUDVVFXJZWAVVDVVFWAAUYCVVGAUYCVVFVUDXJZVV
        GAUXJUIVVEUIVCUKZUJUKZUOZVVFUXJVVIUFZXJZUYCVVHAVVEUYSUOZVVKVVMWGAVVEWHU
        OZVVNAVVOHUIUFZVVOXJZAVUNVVQSHXKVTAVVOVVPVBZVBZVVOXJZVVQAVVRVVOVVTWGAVV
        PUEVUHUGUHZAVVPURZUXPEHXLZUMZVWAVWBUXPEUXQUMZVWDAVWEVVPTWCVWBUXPEUXQVWC
        VWBHHUJUKZUXQVWCVVPVWFUXQUFAHUIHUJXRWTAVWFVWCUFZVVPAHVHUOVWGAHSXMZHXNVT
        WCXOXPVSAVWDVWAWGZVVPAVUNVWISUXPVWAEHWHUXNHUFUXOVUHUEUGUXNHUXKUPUQXQVTW
        CVSVWBVUIVWAVBZAVUIVVPUAWCAVUIVWJWGVVPAVUHUEAVUHABCDEGHIJKLMNOPQRVWHXAX
        BAXCVRWCVSXSVVRVVOXTVTVVPVVSVVOVVPYAYBUUMYCZVVEWIWJUXJUIVVEUUBVTAVVJUXQ
        UXJAVVIHUIUJAHUIAHSUUCAYIUUDZUUEYDAVVLVUDVVFAVVIHUXJVWLYEUUFUUNVVFVUDUU
        GUUHUUIUYCVUDVVFUUJYFAVVFVUCAVVFURUYLUIUIVCUKZVVIUJUKZUOZVUCAVVFVWOAVVF
        VVFVWOAUIVHUOZVVEVHUOZURVVBVWPURVVFVWOWGVVFAVWQVWPAVVEVWKXMYGUUKVVFVVBV
        WPUXJUIVVEWSYGUULUXJUIUIVVEUUOUUPUUQUURAVWOVUCWAVVFAVWOUYLYJHUJUKZUOVUC
        AVWNVWRUYLAVWMYJVVIHUJVWMYJUFAUVBYHVWLUUSYDVWRUXQUYLYJUYSUOVWRUXQYKUUTY
        JUIHWPWRVNUVAWCYLXHUUAUVCZXFZVEZUYAVUCURUYNUYPUYAVUCUYNUYPVUCUYNURUYAUY
        LUXRUOUYPUXPUYNEUYLUXQUXNUYLUFUXOUYMUEUGUXNUYLUXKUPUQUSUXTUYPUBUYLUXRUX
        SUYLUXJUGUVDUVEUVFZUVGUVHYMYLUYGUYMUYIUFZUYOUYKWGUYGUYLCUOZVBZVXCUYGVXD
        UYPVUBUYGVXDURUYAVUCUYNUYPAUYEUYAVXDYNUYGVUCVXDVXAWCAUYEVXDUYNUYAAUYEUR
        ZVXDURZUEUYMVXGXCVXGAUYLVUOUOZUYMVGUOAUYEVXDUVIZVUQVXGVUCVXHWNVXFVUCVXD
        VWTWCVUQUXQVUOUYLVURWQUVLAVXHURZUYMVXJBCDEGUYLIJKLMNOPQAVVAVXHRWCVXHUYL
        VHUOAUYLUEHWSWTXAXBYMVXGUYDUEUYMVFUHZAUYCUYDVXDYNVXGAVUPUYMUXLUIVCUKZUF
        ZUYDVXKWGVXIVXGUYCVUPVXFUYCVXDUYRWCZVUSVTVXGUYMUYLUIVAUKZUXKUDZUIVCUKZU
        FZVXMVXFAVUCURZVXDVXRAUYEVUCVWSUVJZVXSVXDVXRVXSVXEUYMVXPUIVAUKZUFZWAZVX
        DVXRWAZVXSBCDEGUYLIJKLMNOPQAVVAVUCRWCVUCUYLWHUOAUYLHUVKWTUVMZUVNXFYOVXG
        UYCVXRVXMWGVXNUYCVXQVXLUYMUYCVXPUXLUIVCUYCVXOUXJUXKUYCUXJUIUYCUXJUXJUIH
        WSUVOUYCYIUVPWEZYPYEVTVSVUTVXMURUYDUEVXLVFUHZVXKVUTUYDVYGWGZVXMVUTUEVHU
        OZUXLVHUOZVYHYQVVCUEUXLUVQUVRWCVXMVXKVYGWGVUTUYMVXLUEVFYRWTUWAUVSVSUWBY
        SVXBUVTUWCAUYEVXEVXCUYAVXFVXEURZVYBVXCVXFVXSVXEVYBVXTVXSVXEVYBVXSVYCVYD
        VYEUWDXFYOVYKUYCVYBVXCWGVXFUYCVXEUYRWCUYCVYAUYIUYMUYCVXPUXLUIVAVYFYPYEV
        TVSYSUWEVXCUYNUYJUYMUYIUEUGYRUWFVTVSUYGVYJUYHUYKWGAUYEVYJUYAAUYEVUPVYJV
        XFUYCVUPUYRVUSVTVVCUWLVEZVYJUYHUYIUEVFUHZUYKVYJVYIUYHVYMWGYQUXLUEUWGUWH
        VYJUYIUEVYJUXLUIUXLUWIVYJVPUWJVYJXCVRUWKVTYCAUYCUYDUYAUWMUYGUXLUEUYGUXL
        VYLXBUYGXCUWNUWOUWPAUXRVGYKZUXRYTUOZUXRUWQUWRZUYAFUXRUMVYNAUXRUXQVGUXPE
        UXQUWSZUYTVLYHVYOAUXQYTUOUXRUXQYKVYOUIHUWTVYQUXQUXRUXCUXAYHAVWEVYPTUXPE
        UXQUXBYFFUBUXRUXDUXEUXFUXMUXMFUXRUXQUYBUYCUXMUXPEUXJUXQUXGUXHUXIVT $.
    $}

    ${
      $d b c M $.  $d b C $.
      $( ` ( F `` C ) ` finishes counting at ` ( M - N ) ` .  (Contributed by
         Thierry Arnoux, 25-Nov-2016.) $)
      ballotlemfmpn $p |- ( C e. O ->
                                     ( ( F ` C ) ` ( M + N ) ) = ( M - N ) ) $=
        ( wcel co cfv chash cmin wceq vb caddc c1 cfz cin cdif id cz cn nnaddcl
        mp2an nnzi a1i ballotlemfval wss cpw crab ssrab2 eqsstri elpwid sseqin2
        cv sseli sylib fveq2d cab eleq2s fveq2 eqeq1d cbvabv elab2g mpbid eqtrd
        rabssab cfn fzfi hashssdif sylancr nnnn0i hashfz1 mp1i oveq12d cc nncni
        cn0 pncan2 3eqtrd ) BHOZFGUBPZBEQQUCWIUDPZBUEZRQZWJBUFRQZSPFGSPWHABCDEW
        IFGHIJKLMNWHUGWIUHOWHWIFUIOGUIOWIUIOJKFGUJUKZULUMUNWHWLFWMGSWHWLBRQZFWH
        WKBRWHBWJUOZWKBTWHBWJHWJUPZBHIVBZRQZFTZIWQUQZWQLWTIWQURUSVCUTZBWJVAVDVE
        WHBWTIVFZOZWOFTZXDBXAHXAXCBWTIWQVNVCLVGUAVBZRQZFTZXEUABXCHXFBTXGWOFXFBR
        VHVIWTXHIUAWRXFTWSXGFWRXFRVHVIVJVKVLZVMWHWMWJRQZWOSPZWIFSPZGWHWJVOOWPWM
        XKTUCWIVPXBWJBVQVRWHXJWIWOFSWIWEOXJWITWHWIWNVSWIVTWAXIWBXLGTZWHFWCOGWCO
        XMFJWDGKWDFGWFUKUMWGWBVM $.
    $}

    $( ` ( F `` C ) ` always starts counting at 0 .  (Contributed by Thierry
       Arnoux, 25-Nov-2016.) $)
    ballotlemfval0 $p |- ( C e. O -> ( ( F ` C ) ` 0 ) = 0 ) $=
      ( cc0 cfv co chash c0 eqtri wcel cfz cin cdif cmin 0zd ballotlemfval fz10
      c1 id ineq1i incom 3eqtr2i fveq2i hash0 difeq1i 0dif oveq12i 0m0e0 syl6eq
      in0 ) BHUAZOBEPPUIOUBQZBUCZRPZVCBUDZRPZUEQZOVBABCDEOFGHIJKLMNVBUJVBUFUGVH
      OOUEQOVEOVGOUEVESRPZOVDSRVDSBUCBSUCSVCSBUHUKBSULBVAUMUNUOTVGVIOVFSRVFSBUD
      SVCSBUHUPBUQTUNUOTURUSTUT $.

    $( E is the event where A is strictly ahead throughout the count. $)
    ballotth.e $e |- E = { c e. O | A. i e. ( 1 ... ( M + N ) )
      0 < ( ( F ` c ) ` i ) } $.

    ${
      $d c d $.  $d d i $.  $d d C $.  $d d F $.  $d d M $.  $d d N $.
      $d d O $.
      $( Elements of ` E ` .  (Contributed by Thierry Arnoux, 14-Dec-2016.) $)
      ballotleme $p |- ( C e. E <->
        ( C e. O /\ A. i e. ( 1 ... ( M + N ) ) 0 < ( ( F ` C ) ` i ) ) ) $=
        ( vd cc0 cfv clt cv wbr c1 caddc co cfz wral wceq fveq1d breq2d ralbidv
        fveq2 crab cbvrabv eqtri elrab2 ) RDUAZQUAZFSZSZTUBZDUCGHUDUEUFUEZUGZRU
        QBFSZSZTUBZDVBUGQBIEURBUHZVAVFDVBVGUTVERTVGUQUSVDURBFULUIUJUKERUQJUAZFS
        ZSZTUBZDVBUGZJIUMVCQIUMPVLVCJQIVHURUHZVKVADVBVMVJUTRTVMUQVIUSVHURFULUIU
        JUKUNUOUP $.
    $}

    ${
      $d i j C $.  $d c i F $.  $d j F $.  $d j M $.  $d j N $.  $d j O $.
      $( Elements of ` ( O \ E ) ` .  (Contributed by Thierry Arnoux,
         7-Dec-2016.) $)
      ballotlemodife $p |- ( C e. ( O \ E ) <->
        ( C e. O /\ E. i e. ( 1 ... ( M + N ) ) ( ( F ` C ) ` i ) <_ 0 ) ) $=
        ( vj wcel wa cc0 cdif wn cv cfv cle wbr c1 caddc co cfz wrex eldif wral
        clt wo wi df-or pm3.24 a1bi bitr4i ballotleme notbii anbi2i andi 3bitri
        ianor cr wss 0p1e1 oveq1i cz 0z fzp1ss ax-mp eqsstr3i a1i imdistani wsb
        sseld simpl elfzelz adantl ballotlemfelz zred sbimi nfv clelsb3 anbi12i
        sban sbf bitri weq fveq2 eleq1d sbie 3imtr3i syl lenltd rexbidva rexnal
        0red syl6bb pm5.32i 3bitr4i ) BIEUARBIRZBERZUBZSZXEDUCZBFUDZUDZTUEUFZDU
        GGHUHUIZUJUIZUKZSZBIEULXEXEUBZSZXETXKUNUFZDXNUMZUBZSZUOZYBXHXPYCXRUBZYB
        UPYBXRYBUQYDYBXEURUSUTXHXEXEXTSZUBZSXEXQYAUOZSYCXGYFXEXFYEABCDEFGHIJKLM
        NOPVAVBVCYFYGXEXEXTVFVCXEXQYAVDVEXEXOYAXEXOXSUBZDXNUKYAXEXLYHDXNXEXIXNR
        ZSZXKTYJXEXITXMUJUIZRZSZXKVGRZXEYIYLXEXNYKXIXNYKVHXEXNTUGUHUIZXMUJUIZYK
        YOUGXMUJVIVJTVKRYPYKVHVLTXMVMVNVOVPVSVQXEQUCZYKRZSZQDVRZYQXJUDZVGRZQDVR
        YMYNYSUUBQDYSUUAYSABCDFYQGHIJKLMNOXEYRVTYRYQVKRXEYQTXMWAWBWCWDWEYTXEQDV
        RZYRQDVRZSYMXEYRQDWIUUCXEUUDYLXEQDXEQWFWJDQYKWGWHWKUUBYNQDYNQWFQDWLUUAX
        KVGYQXIXJWMWNWOWPWQYJXAWRWSXSDXNWTXBXCXDWK $.
    $}

    $( If the first pick is a vote for B, A is not ahead throughout the count.
       (Contributed by Thierry Arnoux, 25-Nov-2016.) $)
    ballotlem4 $p |- ( C e. O -> ( -. 1 e. C -> -. C e. E ) ) $=
      ( wcel c1 cc0 clt wn wa cv cfv wbr caddc co cfz wral cuz cn nnaddcl mp2an
      wrex elnnuz mpbi eluzfz1 ax-mp cmin cle 0le1 0re 1re lenlti cr wb ltsub13
      mp3an 0m0e0 breq2i bitri mtbir fveq2i ballotlemfval0 syl5eq oveq1d breq2d
      1m1e0 mtbiri adantr wi simpl 1nn a1i ballotlemfp1 simpld mpan2 imp mtbird
      wceq fveq2 notbid rspcev sylancr rexnal sylib ballotleme simprbi nsyl ex
      ) BIQZRBQZUAZBEQZUAXAXCUBZSDUCZBFUDZUDZTUEZDRGHUFUGZUHUGZUIZXDXEXIUAZDXKU
      NZXLUAXERXKQZSRXGUDZTUEZUAZXNXJRUJUDQZXOXJUKQZXSGUKQHUKQXTKLGHULUMXJUOUPR
      XJUQURZXEXQSRRUSUGZXGUDZRUSUGZTUEZXAYEUAXCXAYESSRUSUGZTUEZYGRSTUEZSRUTUEY
      HUAVASRVBVCVDUPYGRSSUSUGZTUEZYHSVEQZYKRVEQYGYJVFVBVBVCSSRVGVHYISRTVIVJVKV
      LXAYDYFSTXAYCSRUSXAYCSXGUDSYBSXGVRVMABCDFGHIJKLMNOVNVOVPVQVSVTXEXPYDSTXAX
      CXPYDWJZXAXOXCYLWAZYAXAXOUBZYMXBXPYCRUFUGWJWAYNABCDFRGHIJKLMNOXAXOWBRUKQY
      NWCWDWEWFWGWHVQWIXMXRDRXKXFRWJZXIXQYOXHXPSTXFRXGWKVQWLWMWNXIDXKWOWPXDXAXL
      ABCDEFGHIJKLMNOPWQWRWSWT $.

    $( From now on, we assume that A wins the poll $)
    ballotth.mgtn $e |- N < M $.

    $d i k E $.  $d k C $.
    $( If A is not ahead throughout, there is a ` k ` where votes are tied.
       (Contributed by Thierry Arnoux, 1-Dec-2016.) $)
    ballotlem5 $p |- ( C e. ( O \ E ) ->
      E. k e. ( 1 ... ( M + N ) ) ( ( F ` C ) ` k ) = 0 ) $=
      ( wcel co cdif caddc eldifi cn a1i nnaddcld cv cfv cc0 cle ballotlemodife
      wbr cfz wrex simprbi cmin nnrei posdifi mpbi wceq ballotlemfmpn syl5breqr
      c1 clt syl ballotlemfc0 ) BJFUASZABCDEGHIUBTZHIJKLMNOPBJFUCZVGHIHUDSVGLUE
      IUDSVGMUEUFVGBJSZDUGBGUHZUHUIUJULDVCVHUMTUNABCDFGHIJKLMNOPQUKUOVGUIHIUPTZ
      VHVKUHZVDIHVDULUIVLVDULRIHIMUQHLUQURUSVGVJVMVLUTVIABCDGHIJKLMNOPVAVEVBVF
      $.

    $( Let I be the first time a tie is reached in a given count. $)
    ballotth.i $e |- I = ( c e. ( O \ E ) |-> inf ( { k e. ( 1 ... ( M + N ) )
      | ( ( F ` c ) ` k ) = 0 } , RR , < ) ) $.

    $d I k $.  $d c d k $.  $d c i k E $.
    ${
      $d d C $.  $d d E $.  $d d F $.  $d d M $.  $d d N $.  $d d O $.
      $( Value of ` I ` for a given counting ` C ` .  (Contributed by Thierry
         Arnoux, 1-Dec-2016.)  (Revised by AV, 6-Oct-2020.) $)
      ballotlemi $p |- ( C e. ( O \ E ) -> ( I ` C ) = inf (
       { k e. ( 1 ... ( M + N ) ) | ( ( F ` C ) ` k ) = 0 } , RR , < ) ) $=
        ( vd cv cfv cc0 wceq c1 caddc co cfz crab cr clt cinf cdif fveq2 fveq1d
        eqeq1d rabbidv infeq1d cmpt cbvmptv eqtri ltso infex fvmpt ) UABEUBZUAU
        BZGUCZUCZUDUEZEUFIJUGUHUIUHZUJZUKULUMZVFBGUCZUCZUDUEZEVKUJZUKULUMKFUNZH
        VGBUEZUKVLVQULVSVJVPEVKVSVIVOUDVSVFVHVNVGBGUOUPUQURUSHLVRVFLUBZGUCZUCZU
        DUEZEVKUJZUKULUMZUTUAVRVMUTTLUAVRWEVMVTVGUEZUKWDVLULWFWCVJEVKWFWBVIUDWF
        VFWAVHVTVGGUOUPUQURUSVAVBUKVQULVCVDVE $.
    $}

    $( Properties of ` ( I `` C ) ` .  (Contributed by Thierry Arnoux,
       12-Dec-2016.)  (Revised by AV, 6-Oct-2020.) $)
    ballotlemiex $p |- ( C e. ( O \ E ) -> ( ( I ` C ) e. ( 1 ... ( M + N ) )
      /\ ( ( F ` C ) ` ( I ` C ) ) = 0 ) ) $=
      ( cdif wcel cfv cv cc0 wceq c1 caddc co cfz crab wa cr clt ballotlemi wor
      cinf cfn c0 wne wss ltso a1i fzfi ssrab2 ssfi mp2an wrex ballotlem5 rabn0
      sylibr cuz fzssuz uzssz sstri zssre fiinfcl syl13anc eqeltrd fveq2 eqeq1d
      cz elrab sylib ) BKFUAUBZBHUCZEUDZBGUCZUCZUEUFZEUGIJUHUIZUJUIZUKZUBWFWLUB
      WFWHUCZUEUFZULWEWFWMUMUNUQZWMABCDEFGHIJKLMNOPQRSTUOWEUMUNUPZWMURUBZWMUSUT
      ZWMUMVAZWPWMUBWQWEVBVCWRWEWLURUBWMWLVAWRUGWKVDWJEWLVEZWLWMVFVGVCWEWJEWLVH
      WSABCDEFGIJKLMNOPQRSVIWJEWLVJVKWTWEWMWLUMXAWLWBUMWLUGVLUCWBUGWKVMUGVNVOVP
      VOVOVCUMWMUNVQVRVSWJWOEWFWLWGWFUFWIWNUEWGWFWHVTWAWCWD $.

    $d c E $.  $d i I $.
    ${
      $d c k y z $.  $d y z C $.  $d y z F $.  $d y z M $.  $d y z N $.
      $( The first tie cannot be reached at the first pick.  (Contributed by
         Thierry Arnoux, 12-Mar-2017.) $)
      ballotlemi1 $p |- ( ( C e. ( O \ E ) /\ -. 1 e. C ) ->
                                                           ( I ` C ) =/= 1 ) $=
        ( cdif wcel c1 wn wa cfv wceq cc0 cmin co 0re 1re resubcli clt wbr 0lt1
        cr wb ltsub23 mp3an 0m0e0 breq1i bitr2i mpbi gtneii nesymi caddc eldifi
        wi cn 1nn ballotlemfp1 simpld 1m1e0 fveq2i oveq1i ballotlemfval0 adantr
        a1i imp syl oveq1d 3eqtrrd eqeq1d mtbii cfz ballotlemiex ad2antrr fveq2
        simprd adantl mpbid mtand neqned ) BKFUAUBZUCBUBZUDZUEZBHUFZUCWRWSUCUGZ
        UCBGUFZUFZUHUGZWRUHUCUIUJZUHUGXCUHXDXDUHUHUCUKULUMUHUCUNUOZXDUHUNUOZUPX
        FUHUHUIUJZUCUNUOZXEUHUQUBZUCUQUBXIXFXHURUKULUKUHUCUHUSUTXGUHUCUNVAVBVCV
        DVEVFWRXDXBUHWRXBUCUCUIUJZXAUFZUCUIUJZUHXAUFZUCUIUJZXDWOWQXBXLUGZWOWQXO
        VIWPXBXKUCVGUJUGVIWOABCDGUCIJKLMNOPQBKFVHZUCVJUBWOVKVSVLVMVTXLXNUGWRXKX
        MUCUIXJUHXAVNVOVPVSWRXMUHUCUIWOXMUHUGZWQWOBKUBXQXPABCDGIJKLMNOPQVQWAVRW
        BWCWDWEWRWTUEWSXAUFZUHUGZXCWOXSWQWTWOWSUCIJVGUJWFUJUBXSABCDEFGHIJKLMNOP
        QRSTWGWJWHWTXSXCURWRWTXRXBUHWSUCXAWIWDWKWLWMWN $.

      $( The first tie cannot be reached at the first pick.  (Contributed by
         Thierry Arnoux, 4-Apr-2017.) $)
      ballotlemii $p |- ( ( C e. ( O \ E ) /\ 1 e. C ) -> ( I ` C ) =/= 1 ) $=
        ( cdif wcel c1 wa cfv wceq caddc co 1e0p1 ax-1ne0 eqnetrri neii cmin wn
        cc0 eldifi 1nn a1i ballotlemfp1 simprd imp fveq2i oveq1i ballotlemfval0
        wi cn 1m1e0 adantr oveq1d 3eqtrrd eqeq1d mtbii ballotlemiex ad2antrr wb
        syl cfz fveq2 adantl mpbid mtand neqned ) BKFUAUBZUCBUBZUDZBHUEZUCWEWFU
        CUFZUCBGUEZUEZUOUFZWEUOUCUGUHZUOUFWJWKUOUCWKUOUIUJUKULWEWKWIUOWEWIUCUCU
        MUHZWHUEZUCUGUHZUOWHUEZUCUGUHZWKWCWDWIWNUFZWCWDUNWIWMUCUMUHUFVEWDWQVEWC
        ABCDGUCIJKLMNOPQBKFUPZUCVFUBWCUQURUSUTVAWNWPUFWEWMWOUCUGWLUOWHVGVBVCURW
        EWOUOUCUGWCWOUOUFZWDWCBKUBWSWRABCDGIJKLMNOPQVDVPVHVIVJVKVLWEWGUDWFWHUEZ
        UOUFZWJWCXAWDWGWCWFUCIJUGUHVQUHUBXAABCDEFGHIJKLMNOPQRSTVMUTVNWGXAWJVOWE
        WGWTWIUOWFUCWHVRVKVSVTWAWB $.

      $d k w y z $.  $d w C $.  $d w F $.  $d w M $.  $d w N $.
      $( The set of zeroes of ` F ` satisfies the conditions to have a
         supremum.  (Contributed by Thierry Arnoux, 1-Dec-2016.)  (Revised by
         AV, 6-Oct-2020.) $)
      ballotlemsup $p |- ( C e. ( O \ E ) -> E. z e. RR ( A. w e.
        { k e. ( 1 ... ( M + N ) ) | ( ( F ` C ) ` k ) = 0 } -. w < z
        /\ A. w e. RR ( z < w -> E. y e.
        { k e. ( 1 ... ( M + N ) ) | ( ( F ` C ) ` k ) = 0 } y < w )
        ) ) $=
        ( cdif wcel cr clt wor cv cfv cc0 wceq c1 caddc co cfz crab cfn wne wss
        c0 w3a wa wbr wn wral wrex fzfi ssrab2 ssfi mp2an a1i ballotlem5 sylibr
        wi rabn0 cn fz1ssnn nnssre sstri 3jca ltso jctil fiinf2g anim1i reximi2
        sseli 3syl ) ENIUDUEZUFUGUHZHUIEJUJUJUKULZHUMLMUNUOZUPUOZUQZURUEZWNVAUS
        ZWNUFUTZVBZVCDUIZCUIZUGVDVEDWNVFWTWSUGVDBUIWSUGVDBWNVGVODUFVFVCZCWNVGXA
        CUFVGWIWRWJWIWOWPWQWOWIWMURUEWNWMUTWOUMWLVHWKHWMVIZWMWNVJVKVLWIWKHWMVGW
        PAEFGHIJLMNOPQRSTUAUBVMWKHWMVPVNWQWIWNWMUFXBWMVQUFWLVRVSVTVTZVLWAWBWCCD
        BUFWNUGWDXAXACWNUFWTWNUEWTUFUEXAWNUFWTXCWGWEWFWH $.

      $( ` ( I `` C ) ` is the first tie.  (Contributed by Thierry Arnoux,
         1-Dec-2016.)  (Revised by AV, 6-Oct-2020.) $)
      ballotlemimin $p |- ( C e. ( O \ E ) ->
        -. E. k e. ( 1 ... ( ( I ` C ) - 1 ) ) ( ( F ` C ) ` k ) = 0 ) $=
        ( vw vz vy cdif wcel cv cfv cc0 wceq c1 cmin co cfz clt wbr cle elfzle2
        wa adantl cz wb elfzelz caddc cn ballotlemiex simpld elfznn syl zltlem1
        nnzd syl2anr mpbird adantr wn cuz 1zzd zsubcld zred nnaddcl mp2an nnred
        wss a1i zlem1lt syl2anc mpbid ltled eluz fzss2 sseld crab rabid cr cinf
        wral wrex wi ballotlemsup wor id inflb ballotlemi breq2d notbid sylibrd
        ltso syl5bir syland imp biid sylnib anassrs pm2.65da nrexdv ) BKFUDUEZE
        UFZBGUGZUGUHUIZEUJBHUGZUJUKULZUMULZXOXPYAUEZURZXRXPXSUNUOZYCYDXRYCYDXPX
        TUPUOZYBYEXOXPUJXTUQUSYBXPUTUEXSUTUEZYDYEVAXOXPUJXTVBXOXSXOXSUJIJVCULZU
        MULZUEZXSVDUEXOYIXSXQUGUHUIABCDEFGHIJKLMNOPQRSTVEVFZXSYGVGVHVJZXPXSVIVK
        VLVMXOYBXRYDVNZXOYBXRURZURYDYDXOYMYLXOYBXPYHUEZXRYLXOYAYHXPXOYGXTVOUGUE
        ZYAYHWBXOYOXTYGUPUOZXOXTYGXOXTXOXSUJYKXOVPVQZVRXOYGYGVDUEZXOIVDUEJVDUEY
        RMNIJVSVTWCZWAXOXSYGUPUOZXTYGUNUOZXOYIYTYJXSUJYGUQVHXOYFYGUTUEZYTUUAVAY
        KXOYGYSVJZXSYGWDWEWFWGXOXTUTUEUUBYOYPVAYQUUCXTYGWHWEVLXTUJYGWIVHWJYNXRU
        RXPXREYHWKZUEZXOYLXREYHWLXOUUEXPUUDWMUNWNZUNUOZVNZYLXOUAUFZUBUFZUNUOVNU
        AUUDWOUUJUUIUNUOUCUFUUIUNUOUCUUDWPWQUAWMWOURUBWMWPZUUEUUHWQAUCUBUABCDEF
        GHIJKLMNOPQRSTWRUUKUBUAUCWMUUDXPUNWMUNWSUUKXFWCUUKWTXAVHXOYDUUGXOXSUUFX
        PUNABCDEFGHIJKLMNOPQRSTXBXCXDXEXGXHXIYDXJXKXLXMXN $.

      $( If the first vote is for B, the vote on the first tie is for A.
         (Contributed by Thierry Arnoux, 1-Dec-2016.) $)
      ballotlemic $p |- ( ( C e. ( O \ E ) /\ -. 1 e. C ) ->
                                                            ( I ` C ) e. C ) $=
        ( cdif wcel c1 wn wa cfv cv cc0 wceq cmin co wrex eldifi ad2antrr cn c2
        cfz cuz wne caddc ballotlemiex simpld elfznn adantr ballotlemi1 eluz2b3
        syl sylanbrc uz2m1nn cle wbr elnnuz biimpi eluzfz1 3syl wi ballotlemfp1
        1nn a1i imp 1m1e0 fveq2i oveq1i ballotlemfval0 oveq1d 3eqtrrd cr wb 0re
        0le1 1re suble0 mp2an mpbir syl6eqbrr fveq2 breq1d rspcev syl2anc 1p0e1
        0lt1 simprd eqtr3d cz nnzd 1zzd zsubcld ballotlemfelz zcnd 1cnd subaddd
        0cnd mpbid syl5eqr syl5breq adantlr ballotlemfc0 ballotlemimin condan
        clt ) BKFUAUBZUCBUBZUDZUEZBHUFZBUBZEUGBGUFZUFUHUIEUCYEUCUJUKZUQUKZULZYD
        YFUDZUEZABCDEGYHIJKLMNOPQYABKUBZYCYKBKFUMZUNYDYHUOUBZYKYDYEUPURUFUBZYOY
        DYEUOUBZYEUCUSYPYAYQYCYAYEUCIJUTUKZUQUKUBZYQYAYSYEYGUFZUHUIZABCDEFGHIJK
        LMNOPQRSTVAZVBYEYRVCVGZVDABCDEFGHIJKLMNOPQRSTVEYEVFVHYEVIVGZVDYLUCYIUBZ
        UCYGUFZUHVJVKZDUGZYGUFZUHVJVKZDYIULYDUUEYKYDYOYHUCURUFUBZUUEUUDYOUUKYHV
        LVMUCYHVNVOVDYDUUGYKYDUUFUHUCUJUKZUHVJYDUUFUCUCUJUKZYGUFZUCUJUKZUHYGUFZ
        UCUJUKZUULYAYCUUFUUOUIZYAYCUURVPYBUUFUUNUCUTUKUIVPYAABCDGUCIJKLMNOPQYNU
        CUOUBYAVRVSVQVBVTUUOUUQUIYDUUNUUPUCUJUUMUHYGWAWBWCVSYDUUPUHUCUJYAUUPUHU
        IZYCYAYMUUSYNABCDGIJKLMNOPQWDVGVDWEWFUULUHVJVKZUHUCVJVKZWJUHWGUBUCWGUBU
        UTUVAWHWIWKUHUCWLWMWNWOVDUUJUUGDUCYIUUHUCUIUUIUUFUHVJUUHUCYGWPWQWRWSYAY
        KUHYHYGUFZXTVKYCYAYKUEZUHUCUVBXTXAUVCUCUCUHUTUKZUVBWTUVCUVBUCUJUKZUHUIU
        VDUVBUIUVCYTUVEUHYAYKYTUVEUIZYAYKUVFVPYFYTUVBUCUTUKUIVPYAABCDGYEIJKLMNO
        PQYNUUCVQVBVTYAUUAYKYAYSUUAUUBXBVDXCUVCUVBUCUHUVCUVBUVCABCDGYHIJKLMNOPQ
        YAYMYKYNVDUVCYEUCYAYEXDUBYKYAYEUUCXEVDUVCXFXGXHXIUVCXJUVCXLXKXMXNXOXPXQ
        YAYJUDYCYKABCDEFGHIJKLMNOPQRSTXRUNXS $.

      $( If the first vote is for A, the vote on the first tie is for B.
         (Contributed by Thierry Arnoux, 4-Apr-2017.) $)
      ballotlem1c $p |- ( ( C e. ( O \ E ) /\ 1 e. C ) ->
                                                         -. ( I ` C ) e. C ) $=
        ( cdif wcel c1 wa cfv cv cc0 wceq cmin co cfz eldifi ad2antrr cn c2 cuz
        wrex wne ballotlemiex simpld elfznn adantr ballotlemii eluz2b3 sylanbrc
        caddc syl uz2m1nn cle wbr elnnuz biimpi eluzfz1 3syl 0le1 1e0p1 breqtri
        wn wi 1nn ballotlemfp1 simprd 1m1e0 fveq2i oveq1i ballotlemfval0 oveq1d
        a1i imp 3eqtrrd syl5breq fveq2 breq2d rspcev syl2anc cneg df-neg eqtr3d
        clt 0cnd 1cnd cz nnzd 1zzd zsubcld ballotlemfelz subadd2d mpbird syl5eq
        zcnd neg1lt0 syl6eqbrr adantlr ballotlemfcc ballotlemimin pm2.65da ) BK
        FUAUBZUCBUBZUDZBHUEZBUBZEUFBGUEZUEUGUHEUCXTUCUIUJZUKUJZUQZXSYAUDZABCDEG
        YCIJKLMNOPQXQBKUBZXRYABKFULZUMXSYCUNUBZYAXSXTUOUPUEUBZYIXSXTUNUBZXTUCUR
        YJXQYKXRXQXTUCIJVFUJZUKUJUBZYKXQYMXTYBUEZUGUHZABCDEFGHIJKLMNOPQRSTUSZUT
        XTYLVAVGZVBABCDEFGHIJKLMNOPQRSTVCXTVDVEXTVHVGZVBYFUCYDUBZUGUCYBUEZVIVJZ
        UGDUFZYBUEZVIVJZDYDUQXSYSYAXSYIYCUCUPUEUBZYSYRYIUUEYCVKVLUCYCVMVNVBXSUU
        AYAXSUGUGUCVFUJZYTVIUGUCUUFVIVOVPVQXSYTUCUCUIUJZYBUEZUCVFUJZUGYBUEZUCVF
        UJZUUFXQXRYTUUIUHZXQXRVRYTUUHUCUIUJUHVSXRUULVSXQABCDGUCIJKLMNOPQYHUCUNU
        BXQVTWHWAWBWIUUIUUKUHXSUUHUUJUCVFUUGUGYBWCWDWEWHXSUUJUGUCVFXQUUJUGUHZXR
        XQYGUUMYHABCDGIJKLMNOPQWFVGVBWGWJWKVBUUDUUADUCYDUUBUCUHUUCYTUGVIUUBUCYB
        WLWMWNWOXQYAYCYBUEZUGWSVJXRXQYAUDZUUNUCWPZUGWSUUOUUPUGUCUIUJZUUNUCWQUUO
        UUQUUNUHUUNUCVFUJZUGUHUUOYNUURUGXQYAYNUURUHZXQYAVRYNUUNUCUIUJUHVSYAUUSV
        SXQABCDGXTIJKLMNOPQYHYQWAWBWIXQYOYAXQYMYOYPWBVBWRUUOUGUCUUNUUOWTUUOXAUU
        OUUNUUOABCDGYCIJKLMNOPQXQYGYAYHVBUUOXTUCXQXTXBUBYAXQXTYQXCVBUUOXDXEXFXJ
        XGXHXIXKXLXMXNXQYEVRXRYAABCDEFGHIJKLMNOPQRSTXOUMXP $.
    $}

    $( For a given count ` c ` , ` S ` is the operation reflecting the index
       in a count, before a tie is reached. $)
    ballotth.s $e |- S = ( c e. ( O \ E ) |-> ( i e. ( 1 ... ( M + N ) ) |->
                   if ( i <_ ( I ` c ) , ( ( ( I ` c ) + 1 ) - i ) , i ) ) ) $.

    $d c I $.
    ${
      $d c d i k M $.  $d c d i k N $.  $d d E $.  $d d C $.  $d d I $.
      $d d O $.
      $( Value of ` S ` .  (Contributed by Thierry Arnoux, 12-Apr-2017.) $)
      ballotlemsval $p |- ( C e. ( O \ E ) ->
        ( S ` C ) = ( i e. ( 1 ... ( M + N ) ) |->
                   if ( i <_ ( I ` C ) , ( ( ( I ` C ) + 1 ) - i ) , i ) ) ) $=
        ( vd c1 caddc co cfz cv cfv cle wbr cmin cif cmpt cdif wceq wcel fveq2d
        simpl breq2d oveq1d ifbieq1d mpteq2dva cbvmptv eqtri ovex mptex fvmpt
        wa ) UCBEUDJKUEUFZUGUFZEUHZUCUHZIUIZUJUKZVNUDUEUFZVLULUFZVLUMZUNZEVKVLB
        IUIZUJUKZVTUDUEUFZVLULUFZVLUMZUNLGUOZDVMBUPZEVKVRWDWFVLVKUQZVIZVOWAVQWC
        VLWHVNVTVLUJWHVMBIWFWGUSURZUTWHVPWBVLULWHVNVTUDUEWIVAVAVBVCDMWEEVKVLMUH
        ZIUIZUJUKZWKUDUEUFZVLULUFZVLUMZUNZUNUCWEVSUNUBMUCWEWPVSWJVMUPZEVKWOVRWQ
        WGVIZWLVOWNVQVLWRWKVNVLUJWRWJVMIWQWGUSURZUTWRWMVPVLULWRWKVNUDUEWSVAVAVB
        VCVDVEEVKWDUDVJUGVFVGVH $.

      $d i j $.  $d j I $.  $d j C $.  $d j E $.  $d j F $.  $d j J $.
      $d j F $.  $d j M $.  $d j N $.  $d j O $.
      $( Value of ` S ` evaluated at ` J ` for a given counting ` C ` .
         (Contributed by Thierry Arnoux, 12-Apr-2017.) $)
      ballotlemsv $p |- ( ( C e. ( O \ E ) /\ J e. ( 1 ... ( M + N ) ) ) ->
        ( ( S ` C ) ` J ) =
                     if ( J <_ ( I ` C ) , ( ( ( I ` C ) + 1 ) - J ) , J ) ) $=
        ( vj cdif wcel c1 caddc co cfz wa cv cfv cle wbr cmin cif cvv cmpt wceq
        ballotlemsval breq1 oveq2 ifbieq12d cbvmptv syl6eq adantr breq1d oveq2d
        id simpr adantlr ovexd wn elex ad2antlr ifclda fvmptd ) BMGUEUFZJUGKLUH
        UIUJUIZUFZUKZUDJUDULZBIUMZUNUOZWDUGUHUIZWCUPUIZWCUQZJWDUNUOZWFJUPUIZJUQ
        ZVTBDUMZURVSWLUDVTWHUSZUTWAVSWLEVTEULZWDUNUOZWFWNUPUIZWNUQZUSWMABCDEFGH
        IKLMNOPQRSTUAUBUCVAEUDVTWQWHWNWCUTZWOWEWPWNWGWCWNWCWDUNVBWNWCWFUPVCWRVJ
        VDVEVFVGVSWCJUTZWHWKUTWAVSWSUKZWEWIWGWCWJJWTWCJWDUNVSWSVKZVHWTWCJWFUPXA
        VIXAVDVLVSWAVKWBWIWJJURWBWIUKWFJUPVMWAJURUFVSWIVNJVTVOVPVQVR $.
    $}

    $( ` S ` maps values less than ` ( I `` C ) ` to values greater than 1.
       (Contributed by Thierry Arnoux, 28-Apr-2017.) $)
    ballotlemsgt1 $p |- ( ( C e. ( O \ E ) /\ J e. ( 1 ... ( M + N ) )
      /\ J < ( I ` C ) ) -> 1 < ( ( S ` C ) ` J ) ) $=
      ( cdif wcel c1 caddc co cfz cfv clt wbr w3a cmin cz elfzelz 3ad2ant2 zred
      cc0 wceq ballotlemiex simpld syl 3ad2ant1 1red readdcld simp3 zcnd pncand
      1cnd breqtrrd ltsub13d cle cif ballotlemsv 3adant3 ltled iftrued eqtrd )
      BMGUDUEZJUFKLUGUHZUIUHZUEZJBIUJZUKULZUMZUFWDUFUGUHZJUNUHZJBDUJUJZUKWFJWGU
      FWFJWCVTJUOUEWEJUFWAUPUQURZWFWDUFWFWDVTWCWDUOUEZWEVTWDWBUEZWKVTWLWDBHUJUJ
      USUTABCEFGHIKLMNOPQRSTUAUBVAVBWDUFWAUPVCVDZURZWFVEZVFWOWFJWDWGUFUNUHUKVTW
      CWEVGZWFWDUFWFWDWMVHWFVJVIVKVLWFWIJWDVMULZWHJVNZWHVTWCWIWRUTWEABCDEFGHIJK
      LMNOPQRSTUAUBUCVOVPWFWQWHJWFJWDWJWNWPVQVRVSVK $.

    $( Domain of ` S ` for a given counting ` C ` .  (Contributed by Thierry
       Arnoux, 12-Apr-2017.) $)
    ballotlemsdom $p |- ( ( C e. ( O \ E ) /\ J e. ( 1 ... ( M + N ) ) ) ->
      ( ( S ` C ) ` J ) e. ( 1 ... ( M + N ) ) ) $=
      ( cdif wcel c1 caddc co cfz wa cfv cle wbr cmin cif ballotlemsv cz fzssuz
      wss cuz uzssz sstri cc0 wceq ballotlemiex simpld sseldi ad2antrr cn mp2an
      nnaddcl nnzi a1i elfzle2 syl w3a eluz2 sylbir syl3anc 1zzd simplr elfzle1
      fzss2 simpr elfz4 syl32anc fzrev3i 1cnd zcnd addcomd oveq1d eleq1d sseldd
      wb mpbid wn ifclda eqeltrd ) BMGUDUEZJUFKLUGUHZUIUHZUEZUJZJBDUKUKJBIUKZUL
      UMZXDUFUGUHZJUNUHZJUOXAABCDEFGHIJKLMNOPQRSTUAUBUCUPXCXEXGJXAXCXEUJZUFXDUI
      UHZXAXGXHXDUQUEZWTUQUEZXDWTULUMZXIXAUSZWSXJXBXEWSXAUQXDXAUFUTUKUQUFWTURUF
      VAVBZWSXDXAUEZXDBHUKUKVCVDABCEFGHIKLMNOPQRSTUAUBVEVFZVGZVHZXKXHWTKVIUELVI
      UEWTVIUEOPKLVKVJVLVMXHXOXLWSXOXBXEXPVHXDUFWTVNVOXJXKXLVPWTXDUTUKUEXMXDWTV
      QXDUFWTWCVRVSXHUFXDUGUHZJUNUHZXIUEZXGXIUEZXHJXIUEZYAXHUFUQUEXJJUQUEUFJULU
      MZXEYCXHVTXRXHXAUQJXNWSXBXEWAZVGXHXBYDYEJUFWTWBVOXCXEWDJUFXDWEWFJUFXDWGVO
      WSYAYBWNXBXEWSXTXGXIWSXSXFJUNWSUFXDWSWHWSXDXQWIWJWKWLVHWOWMWSXBXEWPWAWQWR
      $.

    $( The range ` ( 1 ... ( I `` C ) ) ` is invariant under ` ( S `` C ) ` .
       (Contributed by Thierry Arnoux, 28-Apr-2017.) $)
    ballotlemsel1i $p |- ( ( C e. ( O \ E ) /\ J e. ( 1 ... ( I ` C ) ) ) ->
      ( ( S ` C ) ` J ) e. ( 1 ... ( I ` C ) ) ) $=
      ( cdif wcel c1 cfv cfz co wa cz cle wbr 1zzd cc0 wceq ballotlemiex simpld
      caddc elfzelz syl adantr cuz wss nnaddcl mp2an nnzi a1i elfzle2 syl3anbrc
      cn eluz2 fzss2 sselda ballotlemsdom syldan cmin adantl zred 1red readdcld
      zcnd 1cnd pncand breqtrrd lesubd cif ballotlemsv iftrued elfznn ltesubnnd
      eqtrd eqbrtrd elfz4 syl32anc ) BMGUDUEZJUFBIUGZUHUIZUEZUJZUFUKUEWQUKUEZJB
      DUGUGZUKUEZUFXBULUMXBWQULUMXBWRUEWTUNWPXAWSWPWQUFKLUSUIZUHUIZUEZXAWPXFWQB
      HUGUGUOUPABCEFGHIKLMNOPQRSTUAUBUQURZWQUFXDUTVAZVBZWTXBXEUEZXCWPWSJXEUEZXJ
      WPWRXEJWPXDWQVCUGUEZWRXEVDWPXAXDUKUEZWQXDULUMZXLXHXMWPXDKVKUELVKUEXDVKUEO
      PKLVEVFVGVHWPXFXNXGWQUFXDVIVAWQXDVLVJWQUFXDVMVAVNZABCDEFGHIJKLMNOPQRSTUAU
      BUCVOVPXBUFXDUTVAWTUFWQUFUSUIZJVQUIZXBULWTJXPUFWTJWSJUKUEWPJUFWQUTVRVSWTW
      QUFWTWQXIVSWTVTZWAXRWTJWQXPUFVQUIULWSJWQULUMZWPJUFWQVIVRZWTWQUFWTWQXIWBWT
      WCWDWEWFWTXBXSXQJWGZXQWPWSXKXBYAUPXOABCDEFGHIJKLMNOPQRSTUAUBUCWHVPWTXSXQJ
      XTWIWLZWEWTXBXQWQULYBWPWSXKXQWQULUMXOWPXKUJWQJWPXAXKXHVBXKJVKUEWPJXDWJVRW
      KVPWMXBUFWQWNWO $.

    $d i j $.  $d j I $.  $d j C $.  $d j E $.  $d j F $.  $d j J $.  $d j F $.
    $d j M $.  $d j N $.  $d j O $.
    $( The defined ` S ` is a bijection, and an involution.  (Contributed by
       Thierry Arnoux, 14-Apr-2017.) $)
    ballotlemsf1o $p |- ( C e. ( O \ E ) ->
           ( ( S ` C ) : ( 1 ... ( M + N ) ) -1-1-onto-> ( 1 ... ( M + N ) ) /\
          `' ( S ` C ) = ( S ` C ) ) ) $=
      ( vj cdif wcel c1 caddc cfz cfv wf1o ccnv wceq cle wbr cmin ballotlemsval
      co cv cif cmpt wa ballotlemsv ballotlemsdom eqeltrrd oveq2 id breq1 cc cz
      cvv cc0 ballotlemiex simpld elfzelz peano2zd zcnd adantr nncand eqcomd cn
      syl ad2antll elfznn ltesubnnd vex a1i ovexd ifeqeqx simplrl impbida f1o3d
      ad2antrl ifbieq12d cbvmptv simprd 3eqtr4rd jca ) BLGUDUEZUFJKUGUQZUHUQZWT
      BDUIZUJZXAUKZXAULWRXBXCUCWTUCURZBIUIZUMUNZXEUFUGUQZXDUOUQZXDUSZUTZULZWREU
      CWTWTEURZXEUMUNZXGXLUOUQZXLUSZXIXAABCDEFGHIJKLMNOPQRSTUAUBUPZWRXLWTUEZVAX
      LXAUIXOWTABCDEFGHIXLJKLMNOPQRSTUAUBVBABCDEFGHIXLJKLMNOPQRSTUAUBVCVDWRXDWT
      UEZVAXDXAUIXIWTABCDEFGHIXDJKLMNOPQRSTUAUBVBABCDEFGHIXDJKLMNOPQRSTUAUBVCVD
      WRXQXRVAZVAZXLXIULXDXOULXTXFXMXHXEUMUNZEXNXLXGXHUOUQZVJVJXHXDUCXLXHXGUOVE
      XLXDULZVFZXLXHXEUMVGXLXDXEUMVGZXTYBXDXTXGXDWRXGVHUEXSWRXGWRXEWTUEZXGVIUEW
      RYFXEBHUIUIVKULABCEFGHIJKLMNOPQRSTUAVLVMZYFXEXEUFWSVNZVOWAVPVQZXRXDVHUEWR
      XQXRXDXDUFWSVNVPWBVRVSXTYAXFXTXEXDWRXEVIUEZXSWRYFYJYGYHWAVQZXRXDVTUEWRXQX
      DWSWCWBWDVQXDVJUEXTUCWEWFXTXGXDUOWGWHXTXMXFXNXEUMUNUCXHXDXGXNUOUQZVJVJXNX
      LEXDXNXGUOVEXDXLULVFXDXNXEUMVGXDXLXEUMVGXTYLXLXTXGXLYIXQXLVHUEWRXRXQXLXLU
      FWSVNVPWLVRVSXTXMVAZXEXLXTYJXMYKVQYMXQXLVTUEWRXQXRXMWIXLWSWCWAWDXLVJUEXTE
      WEWFXTXGXLUOWGWHWJWKZVMWREWTXOUTZXJXAXCYOXJULWREUCWTXOXIYCXMXFXNXLXHXDYEX
      LXDXGUOVEYDWMWNWFXPWRXBXKYNWOWPWQ $.

    $( The image by ` S ` of the first tie pick is the first pick.
       (Contributed by Thierry Arnoux, 14-Apr-2017.) $)
    ballotlemsi $p |- ( C e. ( O \ E ) -> ( ( S ` C ) ` ( I ` C ) ) = 1 ) $=
      ( cdif wcel cfv cle wbr c1 caddc co cmin cif cfz wceq ballotlemiex simpld
      cc0 ballotlemsv mpdan cr elfzelz zred syl leidd iftrued recnd 1cnd 3eqtrd
      pncan2d ) BLGUCUDZBIUEZBDUEUEZVKVKUFUGZVKUHUIUJVKUKUJZVKULZVNUHVJVKUHJKUI
      UJZUMUJUDZVLVOUNVJVQVKBHUEUEUQUNABCEFGHIJKLMNOPQRSTUAUOUPZABCDEFGHIVKJKLM
      NOPQRSTUAUBURUSVJVMVNVKVJVKVJVQVKUTUDVRVQVKVKUHVPVAVBVCZVDVEVJVKUHVJVKVSV
      FVJVGVIVH $.

    $d j k $.  $d j S $.  $d k J $.  $d k S $.
    $( The image by ` S ` of an interval before the first pick.  (Contributed
       by Thierry Arnoux, 5-May-2017.) $)
    ballotlemsima $p |- ( ( C e. ( O \ E ) /\ J e. ( 1 ... ( I ` C ) ) ) ->
         ( ( S ` C ) " ( 1 ... J ) ) = ( ( ( S ` C ) ` J ) ... ( I ` C ) ) ) $=
      ( vj cdif wcel c1 cfv cfz co wa cima cz cv wss caddc imassrn wf1o wf ccnv
      crn wceq ballotlemsf1o simpld f1of frn 3syl syl5ss cuz fzssuz uzssz sstri
      syl6ss adantr sselda elfzelz adantl wb wfn f1ofn syl ballotlemiex elfzuz3
      wrex cc0 uztrn syl2anc fzss2 fvelimab cmin cle wbr 1zzd nnzi zaddcl mp2an
      cif a1i elfzle1 zred letrd elfz4 syl32anc ballotlemsv syldan simpr iftrue
      elfzle2 eqtrd oveq1d eleq2d ad2antrr zcnd pncand oveq2d ad2antlr peano2zd
      1cnd fzrev syl22anc 3bitr2d risset eqcom cc adantlr addcld simplr syl3anc
      subsub23 syl5bbr simpll eqeq1d bitr4d rexbidva 3bitrd eqrdav ) BMGUEUFZJU
      GBIUHZUIUJUFZUKZFBDUHZUGJUIUJZULZJUUAUHZYRUIUJZUMYTUUCUMFUNZYQUUCUMUOYSYQ
      UUCUGKLUPUJZUIUJZUMYQUUCUUAVAZUUHUUAUUBUQYQUUHUUHUUAURZUUHUUHUUAUSUUIUUHU
      OYQUUJUUAUTUUAVBABCDEFGHIKLMNOPQRSTUAUBUCVCVDZUUHUUHUUAVEUUHUUHUUAVFVGVHU
      UHUGVIUHUMUGUUGVJUGVKVLVMVNVOUUFUUEUFZUUFUMUFZYTUUFUUDYRVPVQYTUUMUKZUUFUU
      CUFZUDUNZUUAUHZUUFVBZUDUUBWDZUULYTUUOUUSVRZUUMYTUUAUUHVSZUUBUUHUOZUUTYQUV
      AYSYQUUJUVAUUKUUHUUHUUAVTWAVNYTUUGJVIUHZUFZUVBYTUUGYRVIUHUFZYRUVCUFZUVDYT
      YRUUHUFZUVEYQUVGYSYQUVGYRBHUHUHWEVBABCEFGHIKLMNOPQRSTUAUBWBVDZVNYRUGUUGWC
      WAYSUVFYQJUGYRWCVQYRUUGJWFWGJUGUUGWHWAZUDUUHUUBUUFUUAWIWGVNUUNUULYRUGUPUJ
      ZUUFWJUJZUUBUFZUUPUVKVBZUDUUBWDZUUSUUNUULUUFUVJJWJUJZYRUIUJZUFZUUFUVOUVJU
      GWJUJZUIUJZUFZUVLYTUULUVQVRUUMYTUUEUVPUUFYTUUDUVOYRUIYTUUDJYRWKWLZUVOJWQZ
      UVOYQYSJUUHUFZUUDUWBVBYTUGUMUFZUUGUMUFZJUMUFZUGJWKWLZJUUGWKWLUWCYTWMUWEYT
      KUMUFLUMUFUWEKOWNLPWNKLWOWPWRZYSUWFYQJUGYRVPZVQZYSUWGYQJUGYRWSVQYTJYRUUGY
      TJUWJWTYTYRYQYRUMUFZYSYQUVGUWKUVHYRUGUUGVPWAZVNWTYTUUGUWHWTYSUWAYQJUGYRXH
      ZVQYQYRUUGWKWLZYSYQUVGUWNUVHYRUGUUGXHWAVNXAJUGUUGXBXCABCDEFGHIJKLMNOPQRST
      UAUBUCXDXEYTYSUWAUWBUVOVBYQYSXFUWMUWAUVOJXGVGXIXJXKVNUUNUVSUVPUUFUUNUVRYR
      UVOUIUUNYRUGUUNYRYQUWKYSUUMUWLXLZXMUUNXRXNXOXKUUNUWDUWFUVJUMUFUUMUVTUVLVR
      UUNWMYSUWFYQUUMUWIXPUUNYRUWOXQYTUUMXFUVJUUFUGJXSXTYAUVLUVNVRUUNUDUVKUUBYB
      WRUUNUVMUURUDUUBUUNUUPUUBUFZUKZUVMUVJUUPWJUJZUUFVBZUURUVMUVKUUPVBZUWQUWSU
      VKUUPYCUWQUVJYDUFUUFYDUFUUPYDUFUWTUWSVRUWQYRUGUWQYRYTUWPUWKUUMYQUWKYSUWPU
      WLXLZYEXMUWQXRYFUWQUUFYTUUMUWPYGXMUWQUUPUWPUUPUMUFZUUNUUPUGJVPZVQXMUVJUUF
      UUPYIYHYJYTUWPUURUWSVRUUMYTUWPUKZUUQUWRUUFUXDUUQUUPYRWKWLZUWRUUPWQZUWRUXD
      YQUUPUUHUFUUQUXFVBYQYSUWPYKYTUUBUUHUUPUVIVOABCDEFGHIUUPKLMNOPQRSTUAUBUCXD
      WGUXDUXEUXFUWRVBUXDUUPJYRUXDUUPUWPUXBYTUXCVQWTUXDJYSUWFYQUWPUWIXPWTUXDYRU
      XAWTUWPUUPJWKWLYTUUPUGJXHVQYSUWAYQUWPUWMXPXAUXEUWRUUPXGWAXIYLYEYMYNYOYMYP
      $.

    $d i k D $.
    $( If two countings share the same first tie, they also have the same swap
       function.  (Contributed by Thierry Arnoux, 18-Apr-2017.) $)
    ballotlemieq $p |- ( ( C e. ( O \ E ) /\ D e. ( O \ E ) /\
      ( I ` C ) = ( I ` D ) ) -> ( S ` C ) = ( S ` D ) ) $=
      ( cdif wcel cfv wceq w3a c1 caddc co cfz cv cle wbr cmin cif simpl breq2d
      cmpt wa oveq1d ifbieq1d mpteq2dva 3ad2ant3 ballotlemsval 3ad2ant1 3eqtr4d
      3ad2ant2 ) BMHUDZUEZCVJUEZBJUFZCJUFZUGZUHFUIKLUJUKULUKZFUMZVMUNUOZVMUIUJU
      KZVQUPUKZVQUQZUTZFVPVQVNUNUOZVNUIUJUKZVQUPUKZVQUQZUTZBEUFZCEUFZVOVKWBWGUG
      VLVOFVPWAWFVOVQVPUEZVAZVRWCVTWEVQWKVMVNVQUNVOWJURZUSWKVSWDVQUPWKVMVNUIUJW
      LVBVBVCVDVEVKVLWHWBUGVOABDEFGHIJKLMNOPQRSTUAUBUCVFVGVLVKWIWGUGVOACDEFGHIJ
      KLMNOPQRSTUAUBUCVFVIVH $.

    $( R is the operation reflecting the picks in a count,
       before a tie is reached. $)
    ballotth.r $e |- R = ( c e. ( O \ E ) |-> ( ( S ` c ) " c ) ) $.

    $d i S $.  $d c S $.
    ${
      $d d E $.  $d d O $.  $d d C $.  $d d S $.  $d c d i I $.
      $( Value of ` R ` .  (Contributed by Thierry Arnoux, 14-Apr-2017.) $)
      ballotlemrval $p |- ( C e. ( O \ E )
            -> ( R ` C ) = ( ( S ` C ) " C ) ) $=
        ( vd cv cfv cima cdif wceq fveq2 id imaeq12d cmpt cbvmptv cvv wcel fvex
        eqtri imaexg ax-mp fvmpt ) UEBUEUFZEUGZVCUHZBEUGZBUHZMHUIZDVCBUJZVDVFVC
        BVCBEUKVIULUMDNVHNUFZEUGZVJUHZUNUEVHVEUNUDNUEVHVLVEVJVCUJZVKVDVJVCVJVCE
        UKVMULUMUOUSVFUPUQVGUPUQBEURVFBUPUTVAVB $.
    $}

    $( The image of ` ( R `` C ) ` by ` ( S `` C ) ` .  (Contributed by Thierry
       Arnoux, 21-Apr-2017.) $)
    ballotlemscr $p |- ( C e. ( O \ E ) -> ( ( S ` C ) " ( R ` C ) ) = C ) $=
      ( cdif wcel cfv cima ccnv ballotlemrval imaeq2d c1 caddc co cfz wf1o wceq
      ballotlemsf1o simprd imaeq1d wf1 wss simpld f1of1 syl eldifi ballotlemelo
      chash simplbi f1imacnv syl2anc 3eqtr2d ) BMHUEUFZBEUGZBDUGZUHVNVNBUHZUHVN
      UIZVPUHZBVMVOVPVNABCDEFGHIJKLMNOPQRSTUAUBUCUDUJUKVMVQVNVPVMULKLUMUNUOUNZV
      SVNUPZVQVNUQZABCEFGHIJKLMNOPQRSTUAUBUCURZUSUTVMVSVSVNVAZBVSVBZVRBUQVMVTWC
      VMVTWAWBVCVSVSVNVDVEVMBMUFZWDBMHVFWEWDBVHUGKUQBKLMNOPQVGVIVEVSVSBVNVJVKVL
      $.

    ${
      $( Value of ` R ` evaluated at ` J ` .  (Contributed by Thierry Arnoux,
         17-Apr-2017.) $)
      ballotlemrv $p |- ( ( C e. ( O \ E ) /\ J e. ( 1 ... ( M + N ) ) ) ->
        ( J e. ( R ` C ) <->
              if ( J <_ ( I ` C ) , ( ( ( I ` C ) + 1 ) - J ) , J ) e. C ) ) $=
        ( cdif wcel c1 caddc co cfz wa cfv ccnv cima cle wbr cmin cif wfun wf1o
        cdm wb simpl wceq ballotlemsf1o simpld f1ofun 3syl simpr f1odm eleqtrrd
        fvimacnv syl2anc ballotlemsv eleq1d simprd imaeq1d ballotlemrval eqtr4d
        eleq2d syl 3bitr3rd ) BNHUFUGZKUHLMUIUJUKUJZUGZULZKBEUMZUMZBUGZKWHUNZBU
        OZUGZKBJUMZUPUQWNUHUIUJKURUJKUSZBUGKBDUMZUGZWGWHUTZKWHVBZUGWJWMVCWGWDWE
        WEWHVAZWRWDWFVDZWDWTWKWHVEZABCEFGHIJLMNOPQRSTUAUBUCUDVFZVGZWEWEWHVHVIWG
        KWEWSWDWFVJWGWDWTWSWEVEXAXDWEWEWHVKVIVLKBWHVMVNWGWIWOBABCEFGHIJKLMNOPQR
        STUAUBUCUDVOVPWGWDWMWQVCXAWDWLWPKWDWLWHBUOWPWDWKWHBWDWTXBXCVQVRABCDEFGH
        IJLMNOPQRSTUAUBUCUDUEVSVTWAWBWC $.

      $( Value of ` R ` before the tie.  (Contributed by Thierry Arnoux,
         11-Apr-2017.) $)
      ballotlemrv1 $p
       |- ( ( C e. ( O \ E ) /\ J e. ( 1 ... ( M + N ) ) /\ J <_ ( I ` C ) ) ->
                     ( J e. ( R ` C ) <-> ( ( ( I ` C ) + 1 ) - J ) e. C ) ) $=
  ( cdif wcel c1 caddc co cfz cfv cle wbr w3a cif wb ballotlemrv 3adant3 iftrue
  cmin eleq1d 3ad2ant3 bitrd ) BNHUFUGZKUHLMUIUJUKUJUGZKBJULZUMUNZUOKBDULUGZVHV
  GUHUIUJKVAUJZKUPZBUGZVJBUGZVEVFVIVLUQVHABCDEFGHIJKLMNOPQRSTUAUBUCUDUEURUSVHVE
  VLVMUQVFVHVKVJBVHVJKUTVBVCVD $.

      $( Value of ` R ` after the tie.  (Contributed by Thierry Arnoux,
         11-Apr-2017.) $)
      ballotlemrv2 $p |- ( ( C e. ( O \ E ) /\ J e. ( 1 ... ( M + N ) ) /\
        ( I ` C ) < J ) -> ( J e. ( R ` C ) <-> J e. C ) ) $=
        ( cdif wcel c1 caddc co cfz cfv clt wbr w3a cle cmin cif wb ballotlemrv
        3adant3 wn wa cz cuz fzssuz uzssz sstri wceq ballotlemiex simpld sseldi
        cc0 adantr zred simpr ltnled biimp3a iffalsed eleq1d bitrd ) BNHUFUGZKU
        HLMUIUJZUKUJZUGZBJULZKUMUNZUOZKBDULUGZKWFUPUNZWFUHUIUJKUQUJZKURZBUGZKBU
        GWBWEWIWMUSWGABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUTVAWHWLKBWHWJWKKWBWEWGWJVBW
        BWEVCZWFKWNWFWBWFVDUGWEWBWDVDWFWDUHVEULVDUHWCVFUHVGVHZWBWFWDUGWFBIULULV
        MVIABCFGHIJLMNOPQRSTUAUBUCVJVKVLVNVOWNKWNWDVDKWOWBWEVPVLVOVQVRVSVTWA $.

      $( Range of ` R ` is included in ` O ` .  (Contributed by Thierry Arnoux,
         17-Apr-2017.) $)
      ballotlemro $p |- ( C e. ( O \ E ) -> ( R ` C ) e. O ) $=
        ( cdif wcel cfv c1 caddc co cfz wss wceq cima ballotlemrval crn imassrn
        chash wf1o wfo ccnv ballotlemsf1o simpld forn 3syl syl5sseq eqsstrd cen
        f1ofo wbr wf1 f1of1 syl wa eldifi ballotlemelo sylib id syl3anc eqbrtrd
        f1imaeng hasheni simprd eqtrd sylanbrc ) BMHUEZUFZBDUGZUHKLUIUJUKUJZULW
        HURUGZKUMWHMUFWGWHBEUGZBUNZWIABCDEFGHIJKLMNOPQRSTUAUBUCUDUOZWGWKUPZWLWI
        WKBUQWGWIWIWKUSZWIWIWKUTWNWIUMWGWOWKVAWKUMABCEFGHIJKLMNOPQRSTUAUBUCVBVC
        ZWIWIWKVIWIWIWKVDVEVFVGWGWJBURUGZKWGWHBVHVJWJWQUMWGWHWLBVHWMWGWIWIWKVKZ
        BWIULZWGWLBVHVJWGWOWRWPWIWIWKVLVMWGWSWQKUMZWGBMUFWSWTVNBMHVOBKLMNOPQVPV
        QZVCWGVRWIWIBWKWFWAVSVTWHBWBVMWGWSWTXAWCWDWHKLMNOPQVPWE $.
    $}

    $d i R $.
    ${
      $d u v C $.  $d u v I $.  $d u v J $.  $d u v R $.  $d u v S $.
      $d u v U $.  $d u v V $.
      $( ` .^ ` is the difference of counts of elements of ` U ` in / out of
         set ` V ` . $)
      ballotlemg $e |- .^ = ( u e. Fin , v e. Fin |->
                               ( ( # ` ( v i^i u ) ) - ( # ` ( v \ u ) ) ) ) $.
      $( Expand the value of ` .^ ` .  (Contributed by Thierry Arnoux,
         21-Apr-2017.) $)
      ballotlemgval $p |- ( ( U e. Fin /\ V e. Fin ) ->
                  ( U .^ V ) = ( ( # ` ( V i^i U ) ) - ( # ` ( V \ U ) ) ) ) $=
        ( cfn cv cin chash cfv cdif cmin wceq ineq2 fveq2d difeq2 oveq12d ineq1
        co difeq1 ovex ovmpt2 ) CBGQUJUJBUKZCUKZULZUMUNZVGVHUOZUMUNZUPVCQGULZUM
        UNZQGUOZUMUNZUPVCKVGGULZUMUNZVGGUOZUMUNZUPVCVHGUQZVJVRVLVTUPWAVIVQUMVHG
        VGURUSWAVKVSUMVHGVGUTUSVAVGQUQZVRVNVTVPUPWBVQVMUMVGQGVBUSWBVSVOUMVGQGVD
        USVAUIVNVPUPVEVF $.

      ${
        $d u v U $.  $d u v V $.  $d u v W $.
        ballotlemgun.1 $e |- ( ph -> U e. Fin ) $.
        ballotlemgun.2 $e |- ( ph -> V e. Fin ) $.
        ballotlemgun.3 $e |- ( ph -> W e. Fin ) $.
        ballotlemgun.4 $e |- ( ph -> ( V i^i W ) = (/) ) $.
        $( A property of the defined ` .^ ` operator.  (Contributed by Thierry
           Arnoux, 26-Apr-2017.) $)
        ballotlemgun $p |- ( ph ->
                         ( U .^ ( V u. W ) ) = ( ( U .^ V ) + ( U .^ W ) ) ) $=
          ( cun cin chash cfv cdif cmin co caddc indir fveq2i wcel c0 wceq infi
          cfn syl ineq1d inindir 3eqtr3g hashun syl3anc syl5eq difundir difeq1d
          0in diffi difindir 0dif oveq12d cn0 hashcl 3syl nn0cnd addsub4d eqtrd
          unfi syl2anc ballotlemgval 3eqtr4d ) ARSUPZHUQZURUSZWOHUTZURUSZVAVBZR
          HUQZURUSZRHUTZURUSZVAVBZSHUQZURUSZSHUTZURUSZVAVBZVCVBZHWOLVBZHRLVBZHS
          LVBZVCVBAWTXBXGVCVBZXDXIVCVBZVAVBXKAWQXOWSXPVAAWQXAXFUPZURUSZXOWPXQUR
          RSHVDVEAXAVJVFZXFVJVFZXAXFUQZVGVHXRXOVHARVJVFZXSUMRHVIZVKASVJVFZXTUNS
          HVIZVKARSUQZHUQVGHUQYAVGAYFVGHUOVLRSHVMHVTVNXAXFVOVPVQAWSXCXHUPZURUSZ
          XPWRYGURRSHVRVEAXCVJVFZXHVJVFZXCXHUQZVGVHYHXPVHAYBYIUMRHWAZVKAYDYJUNS
          HWAZVKAYFHUTVGHUTYKVGAYFVGHUOVSRSHWBHWCVNXCXHVOVPVQWDAXBXGXDXIAXBAYBX
          SXBWEVFUMYCXAWFWGWHAXGAYDXTXGWEVFUNYEXFWFWGWHAXDAYBYIXDWEVFUMYLXCWFWG
          WHAXIAYDYJXIWEVFUNYMXHWFWGWHWIWJAHVJVFZWOVJVFZXLWTVHULAYBYDYOUMUNRSWK
          WLBCDEFGHIJKLMNOPQWOTUAUBUCUDUEUFUGUHUIUJUKWMWLAXMXEXNXJVCAYNYBXMXEVH
          ULUMBCDEFGHIJKLMNOPQRTUAUBUCUDUEUFUGUHUIUJUKWMWLAYNYDXNXJVHULUNBCDEFG
          HIJKLMNOPQSTUAUBUCUDUEUFUGUHUIUJUKWMWLWDWN $.
      $}

      $d i J $.
      $( Express the value of ` ( F `` C ) ` in terms of ` .^ ` .  (Contributed
         by Thierry Arnoux, 21-Apr-2017.) $)
      ballotlemfg $p |- ( ( C e. ( O \ E ) /\ J e. ( 0 ... ( M + N ) ) ) ->
                                  ( ( F ` C ) ` J ) = ( C .^ ( 1 ... J ) ) ) $=
        ( cdif wcel cc0 caddc co cfz wa cfv c1 chash cmin eldifi adantr elfzelz
        cin cz adantl ballotlemfval cfn wceq wss fzfi ballotlemelo simplbi ssfi
        sylancr syl fzfid ballotlemgval syl2anc eqtr4d ) DQJUJUKZNULOPUMUNZUOUN
        UKZUPZNDLUQUQURNUOUNZDVDUSUQWEDUJUSUQUTUNZDWEKUNZWDADEHLNOPQRSTUAUBUCWA
        DQUKZWCDQJVAVBZWCNVEUKWANULWBVCVFVGWDDVHUKZWEVHUKWGWFVIWDWHWJWIWHURWBUO
        UNZVHUKDWKVJZWJURWBVKWHWLDUSUQOVIDOPQRSTUAVLVMWKDVNVOVPWDURNVQABCEFGDHI
        JKLMOPQWERSTUAUBUCUDUEUFUGUHUIVRVSVT $.

      $( Express the value of ` ( F `` ( R `` C ) ) ` in terms of the newly
         defined ` .^ ` .  (Contributed by Thierry Arnoux, 21-Apr-2017.) $)
      ballotlemfrc $p |- ( ( C e. ( O \ E ) /\ J e. ( 1 ... ( I ` C ) ) ) ->
        ( ( F ` ( R ` C ) ) ` J ) =
                              ( C .^ ( ( ( S ` C ) ` J ) ... ( I ` C ) ) ) ) $=
        ( cdif wcel c1 cfv cfz co wa cin chash cmin cima cres wf1o cen wbr wceq
        caddc wf1 wss ccnv ballotlemsf1o simpld syl adantr cuz cc0 ballotlemiex
        f1of1 elfzuz3 adantl uztrn syl2anc fzss2 ssinss1 f1ores ovex inex1 3syl
        f1oen hasheni ssdifssd difexg oveq12d ballotlemro elfzelz ballotlemfval
        cvv ax-mp cz cfn fzfi eldifi ballotlemelo simplbi sylancr ballotlemgval
        ssfi fzfid wfun dff1o3 simprbi imain ballotlemsima ballotlemscr ineq12d
        wfo eqtrd fveq2d imadif difeq12d eqtr4d 3eqtr4d ) DQJUJUKZNULDMUMZUNUOU
        KZUPZULNUNUOZDFUMZUQZURUMZYFYGUJZURUMZUSUODGUMZYHUTZURUMZYLYJUTZURUMZUS
        UOZNYGLUMUMDNYLUMZYCUNUOZKUOZYEYIYNYKYPUSYEYHYMYLYHVAZVBZYHYMVCVDYIYNVE
        YEULOPVFUOZUNUOZUUDYLVGZYHUUDVHZUUBYBUUEYDYBUUDUUDYLVBZUUEYBUUGYLVIZYLV
        EADEGHIJLMOPQRSTUAUBUCUDUEUFUGVJVKZUUDUUDYLVQVLVMZYEYFUUDVHZUUFYEUUCNVN
        UMZUKZUUKYEUUCYCVNUMUKZYCUULUKZUUMYEYCUUDUKZUUNYBUUPYDYBUUPYCDLUMUMVOVE
        ADEHIJLMOPQRSTUAUBUCUDUEUFVPVKVMYCULUUCVRVLYDUUOYBNULYCVRVSYCUUCNVTWANU
        LUUCWBVLZYFYGUUDWCVLUUDUUDYHYLWDWAYHYMUUAYFYGULNUNWEZWFWHYHYMWIWGYEYJYO
        YLYJVAZVBZYJYOVCVDYKYPVEYEUUEYJUUDVHUUTUUJYEYFUUDYGUUQWJUUDUUDYJYLWDWAY
        JYOUUSYFWPUKYJWPUKUURYFYGWPWKWQWHYJYOWIWGWLYEAYGEHLNOPQRSTUAUBUCYBYGQUK
        YDADEFGHIJLMOPQRSTUAUBUCUDUEUFUGUHWMVMYDNWRUKYBNULYCWNVSWOYEYTYSDUQZURU
        MZYSDUJZURUMZUSUOZYQYEDWSUKZYSWSUKYTUVEVEYEUUDWSUKDUUDVHZUVFULUUCWTYBUV
        GYDYBDQUKZUVGDQJXAUVHUVGDURUMOVEDOPQRSTUAXBXCVLVMUUDDXFXDYEYRYCXGABCEFG
        DHIJKLMOPQYSRSTUAUBUCUDUEUFUGUHUIXEWAYEYNUVBYPUVDUSYEYMUVAURYEYMYLYFUTZ
        YLYGUTZUQZUVAYBYMUVKVEZYDYBUUGUUHXHZUVLUUIUUGUUDUUDYLXOUVMUUDUUDYLXIXJZ
        YFYGYLXKWGVMYEUVIYSUVJDADEGHIJLMNOPQRSTUAUBUCUDUEUFUGXLZYBUVJDVEYDADEFG
        HIJLMOPQRSTUAUBUCUDUEUFUGUHXMVMZXNXPXQYEYOUVCURYEYOUVIUVJUJZUVCYBYOUVQV
        EZYDYBUUGUVMUVRUUIUVNYFYGYLXRWGVMYEUVIYSUVJDUVOUVPXSXPXQWLXTYA $.

      $( Reverse counting preserves a tie at the first tie.  (Contributed by
         Thierry Arnoux, 21-Apr-2017.) $)
      ballotlemfrci $p |- ( C e. ( O \ E ) ->
                                     ( ( F ` ( R ` C ) ) ` ( I ` C ) ) = 0 ) $=
        ( cdif wcel cfv c1 cfz co cc0 wceq caddc cuz ballotlemiex simpld elfzuz
        eluzfz2 ballotlemfrc mpdan ballotlemsi oveq1d oveq2d eqtrd wss 1eluzge0
        3syl fzss1 ax-mp sseldi ballotlemfg simprd 3eqtr2d ) DPJUIUJZDMUKZDFUKL
        UKUKZDULVSUMUNZKUNZVSDLUKUKZUOVRVTDVSDGUKUKZVSUMUNZKUNZWBVRVSWAUJZVTWFU
        PVRVSULNOUQUNZUMUNZUJZVSULURUKUJWGVRWJWCUOUPZADEHIJLMNOPQRSTUAUBUCUDUEU
        SZUTZVSULWHVAULVSVBVKABCDEFGHIJKLMVSNOPQRSTUAUBUCUDUEUFUGUHVCVDVRWEWADK
        VRWDULVSUMADEGHIJLMNOPQRSTUAUBUCUDUEUFVEVFVGVHVRVSUOWHUMUNZUJWCWBUPVRWI
        WNVSULUOURUKUJWIWNVIVJULUOWHVLVMWMVNABCDEFGHIJKLMVSNOPQRSTUAUBUCUDUEUFU
        GUHVOVDVRWJWKWLVPVQ $.

      $( Value of ` F ` for a reverse counting ` ( R `` C ) ` .  (Contributed
         by Thierry Arnoux, 27-Apr-2017.) $)
      ballotlemfrceq $p |- ( ( C e. ( O \ E ) /\ J e. ( 1 ... ( I ` C ) ) )
        -> ( ( F ` C ) ` ( ( ( S ` C ) ` J ) - 1 ) )
                                            = -u ( ( F ` ( R ` C ) ) ` J ) ) $=
        ( cdif wcel c1 cfv cfz co wa cmin caddc cc0 wceq cneg ballotlemsel1i cz
        1zzd ballotlemiex adantr simpld elfzelz syl cuz wss elfzuz3 fzss2 simpr
        wb 3syl sseldd ballotlemsdom syldan fzsubel syl22anc mpbid 1m1e0 oveq1i
        syl6eleq cle wbr zsubcld nnaddcl mp2an nnzi a1i elfzle2 zlem1lt syl2anc
        cn clt cr zred ltle sylbid mpd eluz2 syl3anbrc ballotlemfg ballotlemfrc
        wi sselda oveq12d cun fzsplit3 oveq2d 1eluzge0 fzss1 ax-mp sseli sylan2
        simprd eqtr3d fzfi eldifi chash ballotlemelo simplbi ssfi sylancr fzfid
        cfn cin c0 fzdisj ballotlemgun 3eqtr3rd eqtrd ballotlemfelz ballotlemro
        ltm1 cc zcnd addeq0 ) DQJUJUKZNULDMUMZUNUOZUKZUPZNDGUMUMZULUQUOZDLUMZUM
        ZNDFUMZLUMUMZURUOZUSUTZUUIUUKVAUTZUUEUULDULUUGUNUOZKUOZDUUFUUBUNUOZKUOZ
        URUOZUSUUEUUIUUPUUKUURURUUAUUDUUGUSOPURUOZUNUOZUKZUUIUUPUTUUAUUDUUGUSUU
        BULUQUOZUNUOZUKUVBUUEUUGULULUQUOZUVCUNUOZUVDUUEUUFUUCUKZUUGUVFUKZADEGHI
        JLMNOPQRSTUAUBUCUDUEUFUGVBZUUEULVCUKZUUBVCUKZUUFVCUKZUVJUVGUVHVOUUEVDZU
        UEUUBULUUTUNUOZUKZUVKUUEUVOUUBUUHUMZUSUTZUUAUVOUVQUPUUDADEHIJLMOPQRSTUA
        UBUCUDUEUFVEZVFZVGZUUBULUUTVHZVIUUEUUFUVNUKZUVLUUAUUDNUVNUKUWBUUEUUCUVN
        NUUEUVOUUTUUBVJUMUKUUCUVNVKUVTUUBULUUTVLUUBULUUTVMVPUUAUUDVNZVQADEGHIJL
        MNOPQRSTUAUBUCUDUEUFUGVRVSUUFULUUTVHVIZUVMUUFULULUUBVTWAWBUVEUSUVCUNWCW
        DWEUUAUVDUVAUUGUUAUUTUVCVJUMUKZUVDUVAVKUUAUVCVCUKUUTVCUKZUVCUUTWFWGZUWE
        UUAUUBULUUAUVOUVKUUAUVOUVQUVRVGZUWAVIZUUAVDWHZUWFUUAUUTOWPUKPWPUKUUTWPU
        KSTOPWIWJWKWLZUUAUUBUUTWFWGZUWGUUAUVOUWLUWHUUBULUUTWMVIUUAUWLUVCUUTWQWG
        ZUWGUUAUVKUWFUWLUWMVOUWIUWKUUBUUTWNWOUUAUVCWRUKUUTWRUKUWMUWGXGUUAUVCUWJ
        WSUUAUUTUWKWSUVCUUTWTWOXAXBUVCUUTXCXDUVCUSUUTVMVIXHVSABCDEFGHIJKLMUUGOP
        QRSTUAUBUCUDUEUFUGUHUIXEVSABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIXFXIUUE
        DUUCKUOZDUUOUUQXJZKUOUSUUSUUEUUCUWODKUUEUVGUUCUWOUTUVIUUFULUUBXKVIXLUUE
        UVPUWNUSUUAUUDUVOUVPUWNUTZUVTUVOUUAUUBUVAUKUWPUVNUVAUUBULUSVJUMUKUVNUVA
        VKXMULUSUUTXNXOXPABCDEFGHIJKLMUUBOPQRSTUAUBUCUDUEUFUGUHUIXEXQVSUUEUVOUV
        QUVSXRXSUUEABCEFGDHIJKLMOPQUUOUUQRSTUAUBUCUDUEUFUGUHUIUUADYHUKZUUDUUAUV
        NYHUKDUVNVKZUWQULUUTXTUUADQUKZUWRDQJYAZUWSUWRDYBUMOUTDOPQRSTUAYCYDVIUVN
        DYEYFVFUUEULUUGYGUUEUUFUUBYGUUEUUFWRUKUUGUUFWQWGUUOUUQYIYJUTUUEUUFUWDWS
        UUFYQULUUGUUFUUBYKVPYLYMYNUUEUUIYRUKUUKYRUKUUMUUNVOUUEUUIUUEADEHLUUGOPQ
        RSTUAUBUCUUAUWSUUDUWTVFUUEUUFULUWDUVMWHYOYSUUEUUKUUEAUUJEHLNOPQRSTUAUBU
        CUUAUUJQUKUUDADEFGHIJLMOPQRSTUAUBUCUDUEUFUGUHYPVFUUEUUDNVCUKUWCNULUUBVH
        VIYOYSUUIUUKYTWOWB $.
    $}

    $d k S $.  $d k J $.
    ${
      $d u v C $.  $d u v I $.  $d u v J $.  $d u v R $.  $d u v S $.
      $d w y z $.  $d c k y z $.  $d y z C $.  $d y z F $.  $d y z M $.
      $d y z N $.  $d k w y z $.  $d w C $.  $d w F $.  $d w M $.  $d w N $.
      $d i J $.
      $( Value of ` F ` for a reversed counting ` ( R `` C ) ` , before the
         first tie, cannot be zero .  (Contributed by Thierry Arnoux,
         25-Apr-2017.)  (Revised by AV, 6-Oct-2020.) $)
      ballotlemfrcn0 $p |- ( ( C e. ( O \ E ) /\ J e. ( 1 ... ( M + N ) ) /\
        J < ( I ` C ) ) -> ( ( F ` ( R ` C ) ) ` J ) =/= 0 ) $=
        ( vz vw vy vv vu cdif wcel c1 caddc co cfz cfv clt wbr w3a cc0 wne cmin
        wceq wn cz cle 1zzd cn nnaddcl mp2an nnzi a1i ballotlemsdom elfzelz syl
        wa 3adant3 zsubcld ballotlemsgt1 zltlem1 biimpa syl21anc resubcld simp1
        zred 1red ballotlemiex 3syl 3ad2ant2 elfzle1 simp3 ltled elfz4 syl32anc
        simpld ballotlemsel1i syl2anc elfzle2 wb zlem1lt mpbid letrd wi cv crab
        cinf biid sylibr ballotlemi breq2d 3ad2ant1 wor ltso ballotlemsup inflb
        cr con2d sylc fveq2 eqeq1d elrab sylnib imnan neqned ballotlemro adantr
        mpd cneg adantl ballotlemfelz zcnd negeq0d cfn cin chash ballotlemfrceq
        cmpt2 eqid bitr4d necon3bid mpbird ) BNHUKULZKUMLMUNUOZUPUOZULZKBJUQZUR
        USZUTZKBDUQZIUQUQZVAVBZKBEUQUQZUMVCUOZBIUQZUQZVAVBZUUIUUPVAUUIUUNUUEULZ
        UUPVAVDZVEZUUIUMVFULZUUDVFULZUUNVFULUMUUNVGUSZUUNUUDVGUSUURUUIVHZUVBUUI
        UUDLVIULMVIULUUDVIULPQLMVJVKVLVMZUUIUUMUMUUCUUFUUMVFULZUUHUUCUUFVQUUMUU
        EULUVFABCEFGHIJKLMNOPQRSTUAUBUCUDVNUUMUMUUDVOVPVRZUVDVSUUIUVAUVFUMUUMUR
        USZUVCUVDUVGABCEFGHIJKLMNOPQRSTUAUBUCUDVTUVAUVFVQUVHUVCUMUUMWAWBWCUUIUU
        NUUGUUDUUIUUMUMUUIUUMUVGWFUUIWGWDZUUIUUGUUIUUCUUGUUEULZUUGVFULZUUCUUFUU
        HWEZUUCUVJUUGUUOUQVAVDABCFGHIJLMNOPQRSTUAUBUCWHWPZUUGUMUUDVOWIZWFZUUIUU
        DUVEWFUUIUUNUUGUVIUVOUUIUUMUUGVGUSZUUNUUGURUSZUUIUUMUMUUGUPUOZULZUVPUUI
        UUCKUVRULZUVSUVLUUIUVAUVKKVFULZUMKVGUSZKUUGVGUSUVTUVDUVNUUFUUCUWAUUHKUM
        UUDVOWJZUUFUUCUWBUUHKUMUUDWKWJUUIKUUGUUIKUWCWFUVOUUCUUFUUHWLWMKUMUUGWNW
        OZABCEFGHIJKLMNOPQRSTUAUBUCUDWQWRUUMUMUUGWSVPUUIUVFUVKUVPUVQWTUVGUVNUUM
        UUGXAWRXBZWMUUIUUCUVJUUGUUDVGUSUVLUVMUUGUMUUDWSWIXCUUNUMUUDWNWOUUIUURUU
        SVQZVEUURUUTXDUUIUUNGXEZUUOUQZVAVDZGUUEXFZULZUWFUUIUUCUUNUWJXQURXGZURUS
        ZUWKVEUVLUUIUVQUWMUUIUVQUVQUWEUVQXHXIUUCUUFUVQUWMWTUUHUUCUUGUWLUUNURABC
        FGHIJLMNOPQRSTUAUBUCXJXKXLXBUUCUWKUWMUUCUFUGUHXQUWJUUNURXQURXMUUCXNVMAU
        HUFUGBCFGHIJLMNOPQRSTUAUBUCXOXPXRXSUWIUUSGUUNUUEUWGUUNVDUWHUUPVAUWGUUNU
        UOXTYAYBYCUURUUSYDXIYHYEUUIUUCUVTUULUUQWTUVLUWDUUCUVTVQZUUKVAUUPVAUWNUU
        KVAVDUUKYIZVAVDUUSUWNUUKUWNUUKUWNAUUJCFIKLMNOPQRSTUUCUUJNULUVTABCDEFGHI
        JLMNOPQRSTUAUBUCUDUEYFYGUVTUWAUUCKUMUUGVOYJYKYLYMUWNUUPUWOVAAUIUJBCDEFG
        HUJUIYNYNUIXEZUJXEZYOYPUQUWPUWQUKYPUQVCUOYRZIJKLMNOPQRSTUAUBUCUDUEUWRYS
        YQYAYTUUAWRUUB $.

      $( Range of ` R ` .  (Contributed by Thierry Arnoux, 19-Apr-2017.) $)
      ballotlemrc $p |- ( C e. ( O \ E ) -> ( R ` C ) e. ( O \ E ) ) $=
        ( vv vu cdif wcel cfv cv cc0 cle wbr c1 caddc cfz wrex ballotlemro wceq
        co ballotlemiex simpld cfn cin chash cmin cmpt2 eqid ballotlemfrci 0le0
        syl6eqbr fveq2 breq1d rspcev syl2anc ballotlemodife sylanbrc ) BMHUGZUH
        ZBDUIZMUHFUJZVTIUIZUIZUKULUMZFUNKLUOUTUPUTZUQZVTVRUHABCDEFGHIJKLMNOPQRS
        TUAUBUCUDURVSBJUIZWEUHZWGWBUIZUKULUMZWFVSWHWGBIUIUIUKUSABCFGHIJKLMNOPQR
        STUAUBVAVBVSWIUKUKULAUEUFBCDEFGHUFUEVCVCUEUJZUFUJZVDVEUIWKWLUGVEUIVFUTV
        GZIJKLMNOPQRSTUAUBUCUDWMVHVIVJVKWDWJFWGWEWAWGUSWCWIUKULWAWGWBVLVMVNVOAV
        TCFHIKLMNOPQRSTVPVQ $.
    $}

    $d k i R $.
    ${
      $d k x y $.  $d x y C $.  $d y E $.  $d x y F $.  $d y I $.  $d x y M $.
      $d x y N $.  $d y O $.  $d y R $.  $d u v C $.  $d u v I $.  $d u v R $.
      $d u v S $.  $d u v y $.  $d i y $.
      $( Applying ` R ` does not change first ties.  (Contributed by Thierry
         Arnoux, 19-Apr-2017.)  (Revised by AV, 6-Oct-2020.) $)
      ballotlemirc $p |- ( C e. ( O \ E ) -> ( I ` ( R ` C ) ) = ( I ` C ) ) $=
        ( vy vv vu cdif wcel cfv cv cc0 wceq c1 caddc co cfz cr clt ballotlemrc
        crab cinf ballotlemi syl wor a1i cz ballotlemiex simpld elfzelz cfn cin
        ltso zred chash cmin cmpt2 ballotlemfrci fveq2 eqeq1d elrab sylanbrc wa
        eqid wbr wn elrabi anim2i simpr w3a ballotlemfrcn0 neneqd simprbi 3expa
        nsyl syldan ex con2d imp sylancom infmin eqtrd ) BMHUHZUIZBDUJZJUJZGUKZ
        XEIUJZUJZULUMZGUNKLUOUPZUQUPZVAZURUSVBZBJUJZXDXEXCUIXFXNUMABCDEFGHIJKLM
        NOPQRSTUAUBUCUDUTAXECFGHIJKLMNOPQRSTUAUBVCVDXDUEURXMXOUSURUSVEXDVMVFXDX
        OXDXOXLUIZXOVGUIXDXPXOBIUJUJULUMABCFGHIJKLMNOPQRSTUAUBVHVIZXOUNXKVJVDVN
        XDXPXOXHUJZULUMZXOXMUIXQAUFUGBCDEFGHUGUFVKVKUFUKZUGUKZVLVOUJXTYAUHVOUJV
        PUPVQZIJKLMNOPQRSTUAUBUCUDYBWDVRXJXSGXOXLXGXOUMXIXRULXGXOXHVSVTWAWBXDUE
        UKZXMUIZXDYCXLUIZWCZYCXOUSWEZWFZYDYEXDXJGYCXLWGWHYFYDYHYFYGYDYFYGYDWFZY
        FYGYGYIYFYGWIXDYEYGYIXDYEYGWJZYCXHUJZULUMZYDYJYKULABCDEFGHIJYCKLMNOPQRS
        TUAUBUCUDWKWLYDYEYLXJYLGYCXLXGYCUMXIYKULXGYCXHVSVTWAWMWOWNWPWQWRWSWTXAX
        B $.
    $}

    $( due to x used in ballotlemirc $)
    $d x c $.  $d x C $.  $d x F $.  $d x M $.  $d x N $.  $d c I $.  $d d S $.
    ${
      $d d i x k $.  $d d E $.  $d d I $.  $d d O $.
      $( Lemma for ~ ballotlemrinv .  (Contributed by Thierry Arnoux,
         18-Apr-2017.) $)
      ballotlemrinv0 $p |- ( ( C e. ( O \ E ) /\ D = ( ( S ` C ) " C ) ) ->
                             ( D e. ( O \ E ) /\ C = ( ( S ` D ) " D ) ) ) $=
        ( cdif wcel cfv cima wceq ballotlemrval adantr simpr eqtr4d ballotlemrc
        wa eqeltrrd ccnv c1 caddc cfz wf1o ballotlemsf1o simprd eqcomd imaeq12d
        co simpl ballotlemirc fveq2d eqtr3d ballotlemieq syl3anc imaeq1d simpld
        wf1 wss f1of1 3syl chash ballotlemelo simplbi f1imacnv syl2anc 3eqtr3rd
        eldifi jca ) BNIUFZUGZCBFUHZBUIZUJZUPZCWHUGZBCFUHZCUIZUJWMBEUHZCWHWMWQW
        KCWIWQWKUJWLABDEFGHIJKLMNOPQRSTUAUBUCUDUEUKULWIWLUMZUNZWIWQWHUGWLABDEFG
        HIJKLMNOPQRSTUAUBUCUDUEUOULUQZWMWJCUIWJURZWKUIZWPBWMWJXACWKWMXAWJWIXAWJ
        UJZWLWIUSLMUTVGVAVGZXDWJVBZXCABDFGHIJKLMNOPQRSTUAUBUCUDVCZVDULVEWRVFWMW
        JWOCWMWIWNBKUHZCKUHZUJWJWOUJWIWLVHZWTWMWQKUHZXGXHWIXJXGUJWLABDEFGHIJKLM
        NOPQRSTUAUBUCUDUEVIULWMWQCKWSVJVKABCDFGHIJKLMNOPQRSTUAUBUCUDVLVMVNWMXDX
        DWJVPZBXDVQZXBBUJWMWIXEXKXIWIXEXCXFVOXDXDWJVRVSWMWIBNUGZXLXIBNIWFXMXLBV
        TUHLUJBLMNOPQRWAWBVSXDXDBWJWCWDWEWG $.

      $( ` R ` is its own inverse : it is an involution.  (Contributed by
         Thierry Arnoux, 10-Apr-2017.) $)
      ballotlemrinv $p |- `' R = R $=
        ( vd cdif cv cfv cima cmpt ccnv wceq wtru wcel wa ballotlemrinv0 impbii
        wb a1i mptcnv trud fveq2 id imaeq12d cbvmptv eqtri cnveqi 3eqtr4i ) MLG
        UEZMUFZDUGZVIUHZUIZUJZVLCUJCVMUDVHUDUFZDUGZVNUHZUIZVLVMVQUKULMUDVHVKVHV
        PVIVHUMVNVKUKUNZVNVHUMVIVPUKUNZUQULVRVSAVIVNBCDEFGHIJKLMNOPQRSTUAUBUCUO
        AVNVIBCDEFGHIJKLMNOPQRSTUAUBUCUOUPURUSUTUDMVHVPVKVNVIUKZVOVJVNVIVNVIDVA
        VTVBVCVDVECVLUCVFUCVG $.
    $}

    ${
      $( When the vote on the first tie is for A, the first vote is also for A
         on the reverse counting.  (Contributed by Thierry Arnoux,
         18-Apr-2017.) $)
      ballotlem1ri $p |- ( C e. ( O \ E ) ->
                                     ( 1 e. ( R ` C ) <-> ( I ` C ) e. C ) ) $=
        ( cdif wcel c1 cfv caddc co cfz cle wbr wb cuz cn nnaddcl mp2an eleqtri
        cmin nnuz eluzfz1 mp1i cc0 ballotlemiex simpld elfzle1 syl ballotlemrv1
        wceq mpd3an23 cz elfzelz zcnd 1cnd pncand eleq1d bitrd ) BMHUEUFZUGBDUH
        UFZBJUHZUGUIUJUGUTUJZBUFZWABUFVSUGUGKLUIUJZUKUJZUFZUGWAULUMZVTWCUNWDUGU
        OUHZUFWFVSWDUPWHKUPUFLUPUFWDUPUFOPKLUQURVAUSUGWDVBVCVSWAWEUFZWGVSWIWABI
        UHUHVDVJABCFGHIJKLMNOPQRSTUAUBVEVFZWAUGWDVGVHABCDEFGHIJUGKLMNOPQRSTUAUB
        UCUDVIVKVSWBWABVSWAUGVSWAVSWIWAVLUFWJWAUGWDVMVHVNVSVOVPVQVR $.
    $}

    $d x k i $.  $d c k $.
    ${
      $d b E $.  $d b c O $.  $d b R $.

      $( ` R ` is a bijection between two subsets of ` ( O \ E ) ` : one where
         a vote for A is picked first, and one where a vote for B is picked
         first.  (Contributed by Thierry Arnoux, 12-Dec-2016.) $)
      ballotlem7 $p |- ( R |` { c e. ( O \ E ) | 1 e. c } ) :
      { c e. ( O \ E ) | 1 e. c } -1-1-onto-> { c e. ( O \ E ) | -. 1 e. c } $=
        ( vb c1 cv wcel cdif crab wn cfv cima funmpt2 ballotlemrinv wss wral wa
        rabid ballotlemrc adantr ballotlem1c ex ballotlem1ri notbid sylibrd imp
        jca sylbi rgen wceq eleq2 cbvrabv eleq2i bitr3i ralbii mpbi wfun cdm wb
        elrab ssrab2 cvv fvex imaexg ax-mp dmmpti sseqtr4i nfrab1 nfmpt1 nfcxfr
        cmpt funimass4f mp2an mpbir ballotlemic rinvf1o ) UEMUFZUGZMLGUHZUIZWRU
        JZMWSUIZCMWSWQDUKZWQULZCUCUMZABCDEFGHIJKLMNOPQRSTUAUBUCUNCWTULXBUOZWQCU
        KZXBUGZMWTUPZXGWSUGZUEXGUGZUJZUQZMWTUPXIXMMWTWQWTUGWQWSUGZWRUQZXMWRMWSU
        RXOXJXLXNXJWRAWQBCDEFGHIJKLMNOPQRSTUAUBUCUSZUTXNWRXLXNWRWQIUKWQUGZUJZXL
        XNWRXRAWQBEFGHIJKLMNOPQRSTUAVAVBXNXKXQAWQBCDEFGHIJKLMNOPQRSTUAUBUCVCZVD
        VEVFVGVHVIXMXHMWTXMXGUEUDUFZUGZUJZUDWSUIZUGXHYBXLUDXGWSXTXGVJYAXKXTXGUE
        VKZVDVTYCXBXGYBXAUDMWSXTWQVJYAWRXTWQUEVKZVDVLVMVNVOVPCVQZWTCVRZUOXFXIVS
        XEWTWSYGWRMWSWAMWSXDCXCWBUGXDWBUGWQDWCXCWQWBWDWEUCWFZWGZMWTXBCWRMWSWHZX
        AMWSWHZMCMWSXDWKUCMWSXDWIWJZWLWMWNCXBULWTUOZXGWTUGZMXBUPZXJXKUQZMXBUPYO
        YPMXBWQXBUGXNXAUQZYPXAMWSURYQXJXKXNXJXAXPUTXNXAXKXNXAXQXKXNXAXQAWQBEFGH
        IJKLMNOPQRSTUAWOVBXSVEVFVGVHVIYPYNMXBYPXGYAUDWSUIZUGYNYAXKUDXGWSYDVTYRW
        TXGYAWRUDMWSYEVLVMVNVOVPYFXBYGUOYMYOVSXEXBWSYGXAMWSWAYHWGZMXBWTCYKYJYLW
        LWMWNYIYSWP $.
    $}

    ${
      $( There are as many countings with ties starting with a ballot for A as
         there are starting with a ballot for B. (Contributed by Thierry
         Arnoux, 7-Dec-2016.) $)
      ballotlem8 $p |- ( # ` { c e. ( O \ E ) | 1 e. c } )
                     = ( # ` { c e. ( O \ E ) | -. 1 e. c } ) $=
        ( c1 cv wcel cdif crab wn cres wf1o cen wbr chash cfv wceq ballotlemoex
        ballotlem7 cvv difexg ax-mp rabex f1oen hasheni mp2b ) UDMUEUFZMLGUGZUH
        ZVFUIMVGUHZCVHUJZUKVHVIULUMVHUNUOVIUNUOUPABCDEFGHIJKLMNOPQRSTUAUBUCURVH
        VIVJVFMVGLUSUFVGUSUFJKLMNOPUQLGUSUTVAVBVCVHVIVDVE $.
    $}

    $d x c $.  $d x E $.  $d x O $.
    $( Bertrand's ballot problem : the probability that A is ahead throughout
       the counting.  This is Metamath 100 proof #30.  (Contributed by Thierry
       Arnoux, 7-Dec-2016.) $)
    ballotth $p |- ( P ` E ) = ( ( M - N ) / ( M + N ) ) $=
      ( cfv c1 cdif chash cdiv co cmin caddc cmul wss wceq cc0 clt wbr cfz wral
      c2 crab ssrab2 eqsstri cpw wcel cfn fzfi pwfi mpbi ssfi mp2an elexi fveq2
      cv elpw oveq1d ovex fvmpt sylbir ax-mp hashssdif eqcomi cn0 hashcl nn0cni
      difss subsub23i oveq1i eqtr4i cc wne wa cbc ballotlem1 cle nnnn0i nnaddcl
      cn nnrei nn0addge1i elfz2nn0 mpbir3an bccl2 nnne0i pm3.2i divsubdir mp3an
      eqnetri dividi 3eqtri wn ballotlem8 cun rabxm fveq2i c0 sstri rabnc eqtri
      hashun elpw2 mpbir ballotlem2 wi nfrab1 dfss2f ballotlem4 imdistani rabid
      cin eldif 3imtr4i simprbi sylanbrc oveq2i divassi 2timesi 3eqtr2i nncni
      2cn mpgbir rabss2 3eqtr3i 3eqtr4ri mulcli addsub4i subidi addid1i oveq12i
      eqssi subcli 3eqtr3ri ) GBUDZUELGUFZUGUDZLUGUDZUHUIZUJUIZUEUTKJKUKUIZUHUI
      ZULUIZUJUIZJKUJUIZUUSUHUIZUUMUUPUUOUJUIZUUPUHUIZUUPUUPUHUIZUUQUJUIZUURUUM
      GUGUDZUUPUHUIZUVFGLUMZUUMUVJUNZGUOEVNMVNZHUDUDUPUQEUEUUSURUIZUSZMLVALSUVO
      MLVBVCZUVKGLVDZVEUVLGLGVFLVFVEZUVKGVFVEZUVNVDZVFVEZLUVTUMUVRUVNVFVEUWAUEU
      USVGUVNVHVIZLUVMUGUDJUNZMUVTVAUVTPUWCMUVTVBVCZUVTLVJVKZUVPLGVJVKZVLVOAGAV
      NZUGUDZUUPUHUIZUVJUVQBUWGGUNUWHUVIUUPUHUWGGUGVMVPQUVIUUPUHVQVRVSVTUVEUVIU
      UPUHUUPUVIUJUIZUUOUNUVEUVIUNUUOUWJUVRUVKUUOUWJUNUWEUVPLGWAVKWBUUPUVIUUOUU
      PUVRUUPWCVEUWELWDVTWEZUVIUVSUVIWCVEUWFGWDVTWEUUOUUNVFVEZUUOWCVEUVRUUNLUMZ
      UWLUWELGWFZLUUNVJVKUUNWDVTWEZWGVIWHWIUUPWJVEZUUOWJVEUWPUUPUOWKZWLUVFUVHUN
      UWKUWOUWPUWQUWKUUPUUSJWMUIZUOJKLMNOPWNUWRJUOUUSURUIVEZUWRWRVEUWSJWCVEUUSW
      CVEJUUSWOUQJNWPUUSJWRVEKWRVEUUSWRVENOJKWQVKZWPJKJNWSKOWPWTJUUSXAXBJUUSXCV
      TXDXHZXEUUPUUOUUPXFXGUVGUEUUQUJUUPUWKUXAXIWHXJUVAUUQUEUJUEUVMVEZMUUNVAZUG
      UDZUXBXKZMUUNVAZUGUDZUKUIZUUPUHUIUXGUXGUKUIZUUPUHUIZUUQUVAUXHUXIUUPUHUXDU
      XGUXGUKABCDEFGHIJKLMNOPQRSTUAUBUCXLWHWHUUOUXHUUPUHUUOUXCUXFXMZUGUDZUXHUUN
      UXKUGUXBMUUNXNXOUXCVFVEZUXFVFVEZUXCUXFYJXPUNUXLUXHUNUWAUXCUVTUMUXMUWBUXCL
      UVTUXCUUNLUXBMUUNVBUWNXQUWDXQUVTUXCVJVKUWAUXFUVTUMUXNUWBUXFLUVTUXFUUNLUXE
      MUUNVBUWNXQUWDXQUVTUXFVJVKZUXBMUUNXRUXCUXFXTXGXSWHUVAUTUXGUUPUHUIZULUIUTU
      XGULUIZUUPUHUIUXJUUTUXPUTULUXEMLVAZBUDZUXRUGUDZUUPUHUIZUUTUXPUXRUVQVEZUXS
      UYAUNUYBUXRLUMUXEMLVBUXRLLVFUWEVLYAYBAUXRUWIUYAUVQBUWGUXRUNUWHUXTUUPUHUWG
      UXRUGVMVPQUXTUUPUHVQVRVTABJKLMNOPQYCUXTUXGUUPUHUXRUXFUGUXRUXFUXRUXFUMUVMU
      XRVEZUVMUXFVEZYDMMUXRUXFUXEMLYEUXEMUUNYEYFUYCUVMUUNVEZUXEUYDUVMLVEZUXEWLU
      YFUVMGVEXKZWLUYCUYEUYFUXEUYGAUVMBEGHJKLMNOPQRSYGYHUXEMLYIZUVMLGYKYLUYCUYF
      UXEUYHYMUXEMUUNYIYNUUAUWMUXFUXRUMUWNUXEMUUNLUUBVTUUJXOWHUUCYOUTUXGUUPYTUX
      GUXNUXGWCVEUXOUXFWDVTWEZUWKUXAYPUXQUXIUUPUHUXGUYIYQWHYRUUDYOUUSUTKULUIZUJ
      UIZUUSUHUIZUUSUUSUHUIZUYJUUSUHUIZUJUIZUVDUVBUUSWJVEZUYJWJVEUYPUUSUOWKZWLU
      YLUYOUNUUSUWTYSZUTKYTKOYSZUUEUYPUYQUYRUUSUWTXDZXEUUSUYJUUSXFXGUYKUVCUUSUH
      UYKUUSKKUKUIZUJUIZUVCUYJVUAUUSUJKUYSYQYOVUBUVCKKUJUIZUKUIUVCUOUKUIUVCJKKK
      JNYSZUYSUYSUYSUUFVUCUOUVCUKKUYSUUGYOUVCJKVUDUYSUUKUUHXJXSWHUYMUEUYNUVAUJU
      USUYRUYTXIUTKUUSYTUYSUYRUYTYPUUIUULYR $.
  $}

$( End $[ set-mbox-ta-ballot.mm $] $)


$( Begin $[ set-mbox-ta-signum.mm $] $)
$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Signum (sgn or sign) function - misc. additions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Closure of the signum.  (Contributed by Thierry Arnoux, 28-Sep-2018.) $)
  sgncl $p |- ( A e. RR* -> ( sgn ` A ) e. { -u 1 , 0 , 1 } ) $=
    ( cxr wcel csgn cfv c1 cneg cc0 ctp wceq wa simpr fveq2d sgn0 c0ex syl6eqel
    syl6eq clt wbr adantlr tpid2 wne sgnn negex tpid1 1ex tpid3 wo 0xr xrlttri2
    sgnp biimpa mpanl2 mpjaodan pm2.61dane ) ABCZADEZFGZHFIZCZAHUPAHJZKZUQHUSVB
    UQHDEHVBAHDUPVALMNQURHFOUAPUPAHUBZKAHRSZUTHARSZUPVDUTVCUPVDKUQURUSAUCURHFFU
    DUEPTUPVEUTVCUPVEKUQFUSAUKURHFUFUGPTUPHBCZVCVDVEUHZUIUPVFKVCVGAHUJULUMUNUO
    $.

  $( Closure of the signum.  (Contributed by Thierry Arnoux, 28-Sep-2018.) $)
  sgnclre $p |- ( A e. RR -> ( sgn ` A ) e. RR ) $=
    ( cr wcel c1 cneg cc0 ctp csgn cfv wss neg1rr 0re 1re tpssi mp3an cxr sgncl
    rexr syl sseldi ) ABCZDEZFDGZBAHIZUBBCFBCDBCUCBJKLMUBFDBNOUAAPCUDUCCARAQST
    $.

  $( Negation of the signum.  (Contributed by Thierry Arnoux, 1-Oct-2018.) $)
  sgnneg $p |- ( A e. RR -> ( sgn ` -u A ) = -u ( sgn ` A ) ) $=
    ( cr wcel cneg cc0 wceq clt wbr c1 cif csgn cfv wa wn biimpa wb adantr cmin
    cxr co recn negeq0d bicomd eqidd necon3bbid lt0neg2 wo 0red lttri2d ltnsym2
    wne id mpdan jca pm5.17 sylib con2bid bitr3d ifbid syl6eq syldan ifbieq12d2
    ifnot renegcl rexr sgnval 3syl df-neg a1i syl oveq2d ovif2 biid 0m0e0 caddc
    0cn ax-1cn subnegi 0p1e1 eqtr2i ifbieq12i eqtr4i eqtri 3eqtrd 3eqtr4d ) ABC
    ZADZEFZEWGEGHZIDZIJZJZAEFZEAEGHZIWJJZJZWGKLZAKLZDZWFWHWMEWKEWOWFWMWHWFAAUAU
    BUCZWFWHMEUDWFWHNZAEUKZWKWOFWFXAXBWFWHAEWTUEOWFXBMZWKWNNZWJIJWOXCWIXDWJIXCE
    AGHZWIXDWFXEWIPXBAUFQXCWNXEXCWNXEUGZWNXEMNZMWNXENPXCXFXGWFXBXFWFAEWFULWFUHZ
    UIOWFXGXBWFEBCXGXHAEUJUMQUNWNXEUOUPUQURUSWNWJIVCUTVAVBWFWGBCWGSCWQWLFAVDWGV
    EWGVFVGWFWSEWRRTZEWMEWNWJIJZJZRTZWPWSXIFWFWRVHVIWFWRXKERWFASCWRXKFAVEAVFVJV
    KXLWPFWFXLWMEERTZEXJRTZJWPWMEEXJRVLWMWMXMXNEWOWMVMVNXNWNEWJRTZEIRTZJWOWNEWJ
    IRVLWNWNIWJXOXPWNVMXOEIVOTIEIVPVQVRVSVTIVHWAWBWAWCVIWDWE $.

  ${
    sgn3da.0 $e |- ( ph -> A e. RR* ) $.
    sgn3da.1 $e |- ( ( sgn ` A ) = 0 -> ( ps <-> ch ) ) $.
    sgn3da.2 $e |- ( ( sgn ` A ) = 1 -> ( ps <-> th ) ) $.
    sgn3da.3 $e |- ( ( sgn ` A ) = -u 1 -> ( ps <-> ta ) ) $.
    sgn3da.4 $e |- ( ( ph /\ A = 0 ) -> ch ) $.
    sgn3da.5 $e |- ( ( ph /\ 0 < A ) -> th ) $.
    sgn3da.6 $e |- ( ( ph /\ A < 0 ) -> ta ) $.
    $( A conditional containing a signum is true if it is true in all three
       possible cases.  (Contributed by Thierry Arnoux, 1-Oct-2018.) $)
    sgn3da $p |- ( ph -> ps ) $=
      ( wi cc0 wceq wa wtru c1 wb clt wbr cneg cif csgn cfv cxr wcel sgnval syl
      wn eqeq2d pm5.32i eqcoms bicomd adantl sylbir expcom pm5.74d eqeq1 imbi1d
      adantr simp2 3expia impbida pm3.24 pm2.21i expr tbtru sylib anbi12d ancom
      w3a truan bitri syl6bb 3adant3 3ad2ant3 bitr4d 3adant2 pm3.35 adantll imp
      ifbothda ex simp1 wo wne df-ne 0xr xrlttri2 sylancl syl5bbr biimpa 3impia
      ord syl2anc jca trud ) ABNZFOPZACNZAFOUAUBZENZXCUKZDNZQZNZWTROXCSUCZSUDZO
      XAOXJUDZPZACBAXLCBTZAXLQAOFUEUFZPZQXMAXOXLAXNXKOAFUGUHZXNXKPGFUIUJZULUMXO
      XMAXOBCBCTXNOHUNUOUPUQURUSXJXKPZAXGBAXRXGBTZAXRQAXJXNPZQXSAXTXRAXNXKXJXQU
      LUMAXTXSXCXIXNPZXSNSXNPZXSNXTXSNAXISXIXJPYAXTXSXIXJXNUTVASXJPYBXTXSSXJXNU
      TVAAXCYAXSAXCYAVMXGEBAXCXGETYAAXCQZXGERQZEYCXDEXFRYCXDEYCEXDMVBYCEXCEYCEX
      CVCVDVEYCXFXFRTAXCXEDXCXEQZDAYEDXCVFVGUPVHXFVIVJVKYDREQEERVLEVNVOVPVQYAAB
      ETZXCYFXNXIJUNVRVSVDAXEYBXSAXEYBVMXGDBAXEXGDTYBAXEQZXGRDQDYGXDRXFDYGXDXDR
      TAXEXCEAXCEXEMVTVDXDVIVJYGXFDXEXFDAXEDWAWBYGDXEDYGDXEVCVDVEVKDVNVPVQYBABD
      TZXEYHXNSIUNVRVSVDWDWCUQURUSXAXBRAXACKURUPXAUKZXHRAYIXGAYIQZXDXFAXDYIAXCE
      MWEVBAYIXEDAYIXEVMAOFUAUBZDAYIXEWFAYIXEYKYJXCYKAYIXCYKWGZYIFOWHZAYLFOWIAX
      POUGUHYMYLTGWJFOWKWLWMWNWPWOLWQVDWRURUPWDWS $.
  $}

  $( Signum of a product.  (Contributed by Thierry Arnoux, 2-Oct-2018.) $)
  sgnmul $p |- ( ( A e. RR /\ B e. RR )
    -> ( sgn ` ( A x. B ) ) = ( ( sgn ` A ) x. ( sgn ` B ) ) ) $=
    ( cr wcel wa cmul co csgn cfv wceq cc0 c1 rexrd recnd oveq2d clt wbr eqeq2d
    simpr ad2antrr cneg remulcl eqeq1 fveq2 syl6eq oveq1d adantl sgnclre mul02d
    sgn0 ad3antlr eqtr2d mul01d ad3antrrr wo simpl biimpa mpjaodan simpll oveq1
    mul0ord wn cc adantr gt0ne0d mulne0bad neneqd pm2.21dd cxr cle 0red simplll
    ltled simplr prodgt0 syl12anc syl2anc 1t1e1 syl6req renegcld lt0neg1d mpbid
    sgnp wb mul2negd breqtrrd syl22anc mpbird sgnn neg1mulneg1e1 sgn3da lt0ne0d
    mulcomd breq1d mul2lt0rgt0 neg1cn mulid2i mul2lt0rlt0 mulid1i ) ACDZBCDZEZA
    BFGZHIZAHIZBHIZFGZJKXGJZLXGJZLUAZXGJZXCXBXCABUBMXDKXGUCXDLXGUCXDXJXGUCXBXCK
    JZEZAKJZXHBKJZXMXNEXGKXFFGZKXNXGXPJXMXNXEKXFFXNXEKHIZKAKHUDUJUEUFUGXAXPKJWT
    XLXNXAXFXAXFBUHNUIUKULXMXOEXGXEKFGZKXOXGXRJXMXOXFKXEFXOXFXQKBKHUDUJUEOUGWTX
    RKJXAXLXOWTXEWTXEAUHNUMUNULXBXLXNXOUOXBABXBAWTXAUPZNZXBBWTXASZNZVAUQURXBKXC
    PQZEZXILXPJZLLXFFGZJLXJXFFGZJAYDAWTXAYCUSMXEKJZXGXPLXEKXFFUTZRXELJZXGYFLXEL
    XFFUTZRXEXJJZXGYGLXEXJXFFUTZRYDXNEXNYEYDXNSYDXNVBXNYDAKYDABXBAVCDZYCXTVDXBB
    VCDZYCYBVDYDXCXBYCSVEVFVGVDVHYDKAPQZEZYFLLFGLYQXFLLFYQBVIDZKBPQZXFLJZYQBXBX
    AYCYPYATMYQXBKAVJQYCYSXBYCYPUSYQKAYQVKWTXAYCYPVLYDYPSVMXBYCYPVNABVOVPBWCZVQ
    OVRVSYDAKPQZEZYGXJXJFGLUUCXFXJXJFUUCYRBKPQZXFXJJZUUCBXBXAYCUUBYATZMUUCUUDKB
    UAZPQZUUCAUAZCDUUGCDKUUIVJQKUUIUUGFGZPQUUHUUCAWTXAYCUUBVLVTZUUCBUUFVTUUCKUU
    IUUCVKUUKUUCUUBKUUIPQZYDUUBSXBUUBUULWDYCUUBXBAXSWATWBVMUUCKXCUUJPXBYCUUBVNU
    UCABXBYNYCUUBXTTXBYOYCUUBYBTWEWFUUIUUGVOWGXBUUDUUHWDYCUUBXBBYAWATWHBWIZVQOW
    JVSWKXBXCKPQZEZXKXJXPJZXJYFJXJYGJAUUOAWTXAUUNUSZMYHXGXPXJYIRYJXGYFXJYKRYLXG
    YGXJYMRUUOXNEZXNUUPUUOXNSUURAKUURABXBYNUUNXNXTTXBYOUUNXNYBTUURXCXBUUNXNVNWL
    VFVGVHUUOYPEZYFLXJFGXJUUSXFXJLFUUSYRUUDUUEUUSBXBXAUUNYPYATMUUOBAWTXAUUNVNZU
    UQXBUUNBAFGZKPQXBXCUVAKPXBABXTYBWMWNUQZWOUUMVQOXJWPWQVSUUOUUBEZYGXJLFGXJUVC
    XFLXJFUVCYRYSYTUVCBUUOXAUUBUUTVDMUUOBAUUTUUQUVBWRUUAVQOXJWPWSVSWKWK $.

  $( Multiplication by a positive number does not affect signum.  (Contributed
     by Thierry Arnoux, 2-Oct-2018.) $)
  sgnmulrp2 $p |- ( ( A e. RR /\ B e. RR+ )
    -> ( sgn ` ( A x. B ) ) = ( sgn ` A ) ) $=
    ( cr wcel crp wa cmul co csgn cfv c1 wceq simpr rpred sgnmul syldan cxr cc0
    clt wbr rpxrd rpgt0d sgnp syl2anc oveq2d simpl sgnclre ax-1rid 3syl 3eqtrd
    ) ACDZBEDZFZABGHIJZAIJZBIJZGHZUOKGHZUOUKULBCDUNUQLUMBUKULMZNABOPUMUPKUOGUMB
    QDRBSTUPKLUMBUSUAUMBUSUBBUCUDUEUMUKUOCDURUOLUKULUFAUGUOUHUIUJ $.

  $( Subtraction of a number of opposite sign.  (Contributed by Thierry Arnoux,
     2-Oct-2018.) $)
  sgnsub $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( A x. B ) < 0 )
    -> ( sgn ` ( A - B ) ) = ( sgn ` A ) ) $=
    ( cr wcel wa co cc0 clt wbr cmin csgn cfv c1 rexrd eqeq2 simpr recnd adantr
    wceq cc cmul simpll simplr lt0ne0d mulne0bad pm2.21ddne cxr simplll simpllr
    cneg resubcld 0red mul2lt0lgt0 lttrd simpl posdifd syl21anc syl2anc subid1d
    biimpa sgnp mul2lt0llt0 eqbrtrd ltsub23d sgnn sgn3da ) ACDZBCDZEZABUAFZGHIZ
    EZABJFZKLZAKLZSVNGSZVNMSZVNMUJZSZAVLAVGVHVKUBZNVOGVNOVOMVNOVOVRVNOVLAGSZEZV
    PAGVLWAPWBABVLATDZWAVLAVTQZRVLBTDWAVLBVGVHVKUCZQRWBVJVIVKWAUCUDUEUFVLGAHIZE
    ZVMUGDZGVMHIZVQWGVMWGABVGVHVKWFUHZVGVHVKWFUIZUKNWGVGVHBAHIZWIWJWKWGBGAWKWGU
    LWJVLABVTWEVIVKPZUMVLWFPUNVIWLWIVIBAVGVHPVGVHUOUPUTUQVMVAURVLAGHIZEZWHVMGHI
    VSWOVMWOABVGVHVKWNUHZVGVHVKWNUIZUKNWOAGBWPWOULZWQWOAGJFABHWOAVLWCWNWDRUSWOA
    GBWPWRWQVLWNPVLABVTWEWMVBUNVCVDVMVEURVF $.

  $( Negative signum.  (Contributed by Thierry Arnoux, 2-Oct-2018.) $)
  sgnnbi $p |- ( A e. RR* -> ( ( sgn ` A ) = -u 1 <-> A < 0 ) ) $=
    ( cxr wcel csgn cfv c1 cneg wceq cc0 clt wi id eqeq1 imbi1d neg1ne0 pm2.21i
    wbr wa a1i neg1rr nesymi neg1lt0 0lt1 0re 1re lttri mp2an gtneii neii simp2
    3expia sgn3da imp sgnn impbida ) ABCZADEZFGZHZAIJQZUPUSUTUPUSUTKIURHZUTKZFU
    RHZUTKZURURHZUTKAUPLUQIHUSVAUTUQIURMNUQFHUSVCUTUQFURMNUSUSVEUTUQURURMNVBUPA
    IHRVAUTURIOUAPSVDUPIAJQRVCUTFURURFTURIJQIFJQURFJQUBUCURIFTUDUEUFUGUHUIPSUPU
    TVEUTUPUTVEUJUKULUMAUNUO $.

  $( Positive signum.  (Contributed by Thierry Arnoux, 2-Oct-2018.) $)
  sgnpbi $p |- ( A e. RR* -> ( ( sgn ` A ) = 1 <-> 0 < A ) ) $=
    ( cxr wcel csgn cfv c1 wceq cc0 clt wi cneg id eqeq1 imbi1d wa 0ne1 pm2.21i
    wbr a1i neg1rr neii simp2 3expia neg1lt0 0lt1 0re lttri mp2an gtneii nesymi
    1re sgn3da imp sgnp impbida ) ABCZADEZFGZHAIRZUPURUSUPURUSJHFGZUSJZFFGZUSJF
    KZFGZUSJZAUPLUQHGURUTUSUQHFMNURURVBUSUQFFMNUQVCGURVDUSUQVCFMNVAUPAHGOUTUSHF
    PUAQSUPUSVBUSUPUSVBUBUCVEUPAHIROVDUSFVCVCFTVCHIRHFIRVCFIRUDUEVCHFTUFUKUGUHU
    IUJQSULUMAUNUO $.

  $( Zero signum.  (Contributed by Thierry Arnoux, 10-Oct-2018.) $)
  sgn0bi $p |- ( A e. RR* -> ( ( sgn ` A ) = 0 <-> A = 0 ) ) $=
    ( cxr wcel csgn cfv cc0 wceq wb c1 cneg eqeq1 bibi1d wa clt wbr ax-1ne0 a1i
    simpr neneqd 2falsed eqcomd eqeq1d wne gt0ne0d 1cnd negne0d lt0ne0d sgn3da
    id ) ABCZADEZFGZAFGZHFFGZUMHIFGZUMHIJZFGZUMHAUJUIULULUNUMUKFFKLUKIGULUOUMUK
    IFKLUKUPGULUQUMUKUPFKLUJUMMZFAFURAFUJUMRUAUBUJFANOZMZUOUMUTIFIFUCZUTPQSUTAF
    UTAUJUSRUDSTUJAFNOZMZUQUMVCUPFVCIVCUEVAVCPQUFSVCAFVCAUJVBRUGSTUH $.

  $( Signum is idempotent.  (Contributed by Thierry Arnoux, 2-Oct-2018.) $)
  sgnsgn $p |- ( A e. RR* -> ( sgn ` ( sgn ` A ) ) = ( sgn ` A ) ) $=
    ( cxr wcel csgn cfv wceq cc0 c1 cneg id fveq2 eqeq12d sgn0 a1i clt wbr sgn1
    wa neg1rr rexri neg1lt0 sgnn mp2an sgn3da ) ABCZADEZDEZUFFGDEZGFZHDEZHFZHIZ
    DEZULFZAUEJUFGFZUGUHUFGUFGDKUOJLUFHFZUGUJUFHUFHDKUPJLUFULFZUGUMUFULUFULDKUQ
    JLUIUEAGFRMNUKUEGAOPRQNUNUEAGOPRULBCULGOPUNULSTUAULUBUCNUD $.

  $( If two real numbers are of different signs, so are their signs.
     (Contributed by Thierry Arnoux, 12-Oct-2018.) $)
  sgnmulsgn $p |- ( ( A e. RR /\ B e. RR )
    -> ( ( A x. B ) < 0 <-> ( ( sgn ` A ) x. ( sgn ` B ) ) < 0 ) ) $=
    ( cr wcel wa cmul co csgn cfv c1 cneg wceq cc0 clt wbr neg1lt0 breq1 mpbiri
    simpr simplr adantl lt0ne0d pm2.21ddne eqbrtrrd cn0 wn nn0nlt0 pm2.21dd cxr
    1nn0 mp1i ctp w3o remulcl rexrd adantr sgncl eltpi mpjao3dan impbida sgnnbi
    3syl wb syl sgnmul breq1d 3bitr3d ) ACDBCDEZABFGZHIZJKZLZVJMNOZVIMNOZAHIBHI
    FGZMNOVHVLVMVLVMVHVLVMVKMNOPVJVKMNQRUAVHVMEZVLVLVJMLZVJJLZVPVLSVPVQEZVLVJMV
    PVQSVSVJVHVMVQTUBUCVPVREZJMNOZVLVTVJJMNVPVRSVHVMVRTUDJUEDWAUFVTUJJUGUKUHVPV
    IUIDZVJVKMJULDVLVQVRUMVHWBVMVHVIABUNUOZUPVIUQVJVKMJURVBUSUTVHWBVLVNVCWCVIVA
    VDVHVJVOMNABVEVFVG $.

  $( If two real numbers are of different signs, so are their signs.
     (Contributed by Thierry Arnoux, 12-Oct-2018.) $)
  sgnmulsgp $p |- ( ( A e. RR /\ B e. RR )
    -> ( 0 < ( A x. B ) <-> 0 < ( ( sgn ` A ) x. ( sgn ` B ) ) ) ) $=
    ( cr wcel wa cmul co csgn cfv c1 wceq cc0 clt 0lt1 simplr simpr wn ax-mp wb
    wbr breq2 mpbiri adantl cneg breqtrd cn0 1nn0 nn0nlt0 lt0neg1 mtbi pm2.21dd
    1re a1i gt0ne0d pm2.21ddne cxr ctp w3o remulcl rexrd adantr sgncl mpjao3dan
    eltpi 3syl impbida sgnpbi syl sgnmul breq2d 3bitr3d ) ACDBCDEZABFGZHIZJKZLV
    NMTZLVMMTZLAHIBHIFGZMTVLVOVPVOVPVLVOVPLJMTNVNJLMUAUBUCVLVPEZVNJUDZKZVOVNLKZ
    VOVSWAEZLVTMTZVOWCLVNVTMVLVPWAOVSWAPUEWDQWCJLMTZWDJUFDWEQUGJUHRJCDWEWDSULJU
    IRUJUMUKVSWBEZVOVNLVSWBPWFVNVLVPWBOUNUOVSVOPVSVMUPDZVNVTLJUQDWAWBVOURVLWGVP
    VLVMABUSUTZVAVMVBVNVTLJVDVEVCVFVLWGVOVQSWHVMVGVHVLVNVRLMABVIVJVK $.
$( End $[ set-mbox-ta-signum.mm $] $)

$( Begin $[ set-mbox-ta-signs.mm $] $)
  $( Condition for an integer interval to be a subset of an half-open integer
     interval.  (Contributed by Thierry Arnoux, 8-Oct-2018.) $)
  fzssfzo $p |- ( K e. ( M ..^ N ) -> ( M ... K ) C_ ( M ..^ N ) ) $=
    ( cfzo co wcel cfz cmin cuz cfv wss wceq elfzoel2 fzoval syl eleq2d elfzuz3
    c1 cz ibi fzss2 3syl sseqtr4d ) ABCDEZFZBAGEZBCRHEZGEZUDUEAUHFZUGAIJFUFUHKU
    EUIUEUDUHAUECSFUDUHLABCMBCNOZPTABUGQABUGUAUBUJUC $.

  ${
    $d x y B $.  $d k x y K $.  $d x y M $.  $d k x y N $.  $d k x y P $.
    $d k x y ph $.
    gsumncl.k $e |- K = ( Base ` M ) $.
    gsumncl.w $e |- ( ph -> M e. Mnd ) $.
    gsumncl.p $e |- ( ph -> P e. ( ZZ>= ` N ) ) $.
    gsumncl.b $e |- ( ( ph /\ k e. ( N ... P ) ) -> B e. K ) $.
    $( Closure of a group sum in a non-commutative monoid.  (Contributed by
       Thierry Arnoux, 8-Oct-2018.) $)
    gsumncl $p |- ( ph -> ( M gsum ( k e. ( N ... P ) |-> B ) ) e. K ) $=
      ( vx vy co cfv cmnd eqid cv wcel wa cmpt cgsu cplusg cseq fmptd ffvelrnda
      cfz gsumval2 adantr simprl simprr mndcl syl3anc seqcl eqeltrd ) AFDGCUGNZ
      BUAZUBNCFUCOZUQGUDOEAEURUQFGCPHURQZIJADUPBEUQKUQQUEZUHALMUREUQGCJAUPELRZU
      QUTUFAVAESZMRZESZTZTFPSZVBVDVAVCURNESAVFVEIUIAVBVDUJAVBVDUKEURFVAVCHUSULU
      MUNUO $.

    $d i B $.  $d k C $.  $d i k N $.  $d i k P $.  $d i k ph $.
    gsumnunsn.a $e |- .+ = ( +g ` M ) $.
    gsumnunsn.l $e |- ( ph -> C e. K ) $.
    gsumnunsn.c $e |- ( ( ph /\ k = ( P + 1 ) ) -> B = C ) $.
    $( Closure of a group sum in a non-commutative monoid.  (Contributed by
       Thierry Arnoux, 8-Oct-2018.) $)
    gsumnunsn $p |- ( ph -> ( M gsum ( k e. ( N ... ( P + 1 ) ) |-> B ) )
      = ( ( M gsum ( k e. ( N ... P ) |-> B ) ) .+ C ) ) $=
      ( co cfv wcel wceq vi c1 caddc cfz cmpt cseq cgsu cuz seqp1 cmnd peano2uz
      cv wa adantlr ad2antrr eqeltrd wo wb elfzp1 biimpa mpjaodan eqid gsumval2
      syl fmptd cres wss fzssp1 resmpt ax-mp fveq1i fvres adantl seqfveq eqtr4d
      syl5reqr eqidd eluzfz2 fvmptd eqcomd oveq12d 3eqtr4d ) ADUBUCQZEFIWCUDQZB
      UEZIUFZRZDWFRZWCWERZEQZHWEUGQHFIDUDQZBUEZUGQZCEQADIUHRZSZWGWJTLEWEIDUIVDA
      GEWEHIWCUJJNKAWOWCWNSZLIDUKVDZAFWDBGWEAFULZWDSZUMZWRWKSZBGSZWRWCTZAXAXBWS
      MUNWTXCUMBCGAXCBCTWSPUNACGSWSXCOUOUPAWSXAXCUQZAWOWSXDURLWRIDUSVDUTVAWEVBV
      EVCAWMWHCWIEAWMDEWLIUFRWHAGEWLHIDUJJNKLAFWKBGWLMWLVBVEVCAEUAWEWLIDLAUAULZ
      WKSZUMXEWLRXEWEWKVFZRZXEWERZXEXGWLWKWDVGXGWLTIDVHFWDWKBVIVJVKXFXHXITAXEWK
      WEVLVMVPVNVOAWICAFWCBCWDWEGAWEVQPAWPWCWDSWQIWCVRVDOVSVTWAWB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Words over a set - misc additions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    wrdfd.n $e |- ( ph -> N = ( # ` W ) ) $.
    wrdfd.w $e |- ( ph -> W e. Word S ) $.
    $( A word is a zero-based sequence with a recoverable upper limit,
       deduction version.  (Contributed by Thierry Arnoux, 22-Dec-2021.) $)
    wrdfd $p |- ( ph -> W : ( 0 ..^ N ) --> S ) $=
      ( cc0 cfzo co wf chash cfv cword wcel wrdf syl oveq2d eqidd feq23d mpbird
      ) AGCHIZBDJGDKLZHIZBDJZADBMNUDFBDOPAUABUCBDACUBGHEQABRST $.
  $}

  $( Condition for the restriction of a word to be a word itself.  (Contributed
     by Thierry Arnoux, 5-Oct-2018.) $)
  wrdres $p |- ( ( W e. Word S /\ N e. ( 0 ... ( # ` W ) ) )
    -> ( W |` ( 0 ..^ N ) ) e. Word S ) $=
    ( cword wcel cc0 chash cfv cfz co cfzo cres wss wrdf cuz elfzuz3 fzoss2 syl
    wa wf fssres syl2an iswrdi ) CADZEZBFCGHZIJEZSFBKJZACUHLZTZUIUDEUEFUFKJZACT
    UHUKMZUJUGACNUGUFBOHEULBFUFPBFUFQRUKAUHCUAUBABUIUCR $.

  ${
    $d v N $.  $d v S $.  $d v W $.
    $( Existence of a split of a word at a given index.  (Contributed by
       Thierry Arnoux, 11-Oct-2018.) $)
    wrdsplex $p |- ( ( W e. Word S /\ N e. ( 0 ... ( # ` W ) ) )
      -> E. v e. Word S W = ( ( W |` ( 0 ..^ N ) ) ++ v ) ) $=
      ( cword wcel cc0 chash cfv cfz co wa cop csubstr cfzo cres cconcat adantr
      wceq 3syl cv wrex swrdcl simpl cuz simpr eluzfz1 elfzuz2 eluzfz2 ccatswrd
      elfzuz syl13anc swrd0val oveq1d swrdid 3eqtr3rd eqeq2d rspcev syl2anc
      oveq2 ) DBEZFZCGDHIZJKZFZLZDCVCMNKZVAFZDDGCOKPZVGQKZSZDVIAUAZQKZSZAVAUBVB
      VHVEBDCVCUCRVFDGCMNKZVGQKZDGVCMNKZVJDVFVBGGCJKFZVEVCVDFZVPVQSVBVEUDVFVECG
      UEIZFVRVBVEUFZCGVCUKGCUGTWAVFVEVCVTFVSWACGVCUHGVCUITBDGCVCUJULVFVOVIVGQBD
      CUMUNVBVQDSVEBDUORUPVNVKAVGVAVLVGSVMVJDVLVGVIQUTUQURUS $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Operations on words
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d i A $.  $d i B $.  $d i K $.  $d i M $.  $d i N $.  $d i ph $.
    ccatmulgnn0dir.a $e |- A = ( ( 0 ..^ M ) X. { K } ) $.
    ccatmulgnn0dir.b $e |- B = ( ( 0 ..^ N ) X. { K } ) $.
    ccatmulgnn0dir.c $e |- C = ( ( 0 ..^ ( M + N ) ) X. { K } ) $.
    ccatmulgnn0dir.k $e |- ( ph -> K e. S ) $.
    ccatmulgnn0dir.m $e |- ( ph -> M e. NN0 ) $.
    ccatmulgnn0dir.n $e |- ( ph -> N e. NN0 ) $.
    $( Concatenation of words follow the rule ~ mulgnn0dir (although applying
       ~ mulgnn0dir would require ` S ` to be a set).  In this case ` A ` is
       ` <" K "> ` to the power ` M ` in the free monoid.  (Contributed by
       Thierry Arnoux, 5-Oct-2018.) $)
    ccatmulgnn0dir $p |- ( ph -> ( A ++ B ) = C ) $=
      ( cc0 chash co cfzo wcel wceq vi cfv caddc cmin cif cmpt cconcat cmul csn
      cv c1 cxp fveq2i cfn fzofi snfi hashxp mp2an cn0 hashfzo0 hashsng oveq12d
      eqtri syl syl5eq nn0cnd mulid1d eqtrd oveq2d simpll simpr eleqtrd fconstg
      wa wf a1i feq1d mpbird fvconst sylan syl2anc wn cz eqeltrd nn0zd fzocatel
      simplr syl22anc ifeqda mpteq12dva ovex snex xpex eqeltri ccatfval 3eqtr4g
      cvv fconstmpt ) AUAOBPUBZCPUBZUCQZRQZUAUJZOWSRQZSZXCBUBZXCWSUDQZCUBZUEZUF
      ZUAOGHUCQZRQZFUFZBCUGQZDAUAXBXIXLFAXAXKORAWSGWTHUCAWSGUKUHQZGAWSOGRQZPUBZ
      FUIZPUBZUHQZXOWSXPXRULZPUBZXTBYAPIUMXPUNSXRUNSZYBXTTOGUOFUPZXPXRUQURVCAXQ
      GXSUKUHAGUSSXQGTMGUTVDAFESZXSUKTLFEVAVDZVBVEAGAGMVFVGVHZAWTHUKUHQZHAWTOHR
      QZPUBZXSUHQZYHWTYIXRULZPUBZYKCYLPJUMYIUNSYCYMYKTOHUOYDYIXRUQURVCAYJHXSUKU
      HAHUSSYJHTNHUTVDYFVBVEAHAHNVFVGVHZVBVIAXCXBSZVNZXEXFXHFYPXEVNZAXCXPSZXFFT
      ZAYOXEVJZYQXCXDXPYPXEVKYQAXDXPTYTAWSGORYGVIVDVLAXPXRBVOZYRYSAUUAXPXRYAVOZ
      AYEUUBLXPFEVMVDAXPXRBYABYATAIVPVQVRXPFXCBVSVTWAYPXEWBZVNZAXGYISZXHFTZAYOU
      UCVJZUUDXGOWTRQZYIUUDYOUUCWSWCSWTWCSXGUUHSAYOUUCWGYPUUCVKUUDWSUUDAWSUSSUU
      GAWSGUSYGMWDVDWEUUDWTUUDAWTUSSUUGAWTHUSYNNWDVDWEXCWSWTWFWHUUDAUUHYITUUGAW
      THORYNVIVDVLAYIXRCVOZUUEUUFAUUIYIXRYLVOZAYEUUJLYIFEVMVDAYIXRCYLCYLTAJVPVQ
      VRYIFXGCVSVTWAWIWJBWQSCWQSXNXJTBYAWQIXPXROGRWKFWLZWMWNCYLWQJYIXROHRWKUUKW
      MWNUABCWQWQWOURDXLXRULXMKUAXLFWRVCWP $.
  $}

  ${
    ofcccat.1 $e |- ( ph -> F e. Word S ) $.
    ofcccat.2 $e |- ( ph -> G e. Word S ) $.
    ofcccat.3 $e |- ( ph -> K e. T ) $.
    $( Letterwise operations on word concatenations.  (Contributed by Thierry
       Arnoux, 5-Oct-2018.) $)
    ofcccat $p |- ( ph -> ( ( F ++ G ) oFC R K )
      = ( ( F oFC R K ) ++ ( G oFC R K ) ) ) $=
      ( co cc0 chash cfv cfzo wcel cmul cfn wceq syl cconcat csn cxp cofc cword
      wf fconst6g iswrdi 3syl fzofi snfi hashxp mp2an c1 wrdfin hashcl hashfzo0
      cof cn0 hashsng oveq12d nn0cnd mulid1d syl5req ofccat ccatcl syl2anc wrdf
      eqtrd cvv ovexd ofcof caddc ccatlen oveq2d xpeq1d eqid ccatmulgnn0dir a1i
      eqtr4d 3eqtr4d ) AEFUAKZLEMNZOKZGUBZUCZLFMNZOKZWEUCZUAKZBURZKZEWFWKKZFWIW
      KKZUAKWBGBUDZKZEGWOKZFGWOKZUAKABCDEFWFWIHIAGDPZWDDWFUFWFDUEZPJWDGDUGDWCWF
      UHUIAWSWHDWIUFWIWTPJWHGDUGDWGWIUHUIAWFMNZWDMNZWEMNZQKZWCWDRPZWERPZXAXDSLW
      CUJZGUKZWDWEULUMAXDWCUNQKWCAXBWCXCUNQAWCUSPZXBWCSAECUEZPZERPXIHCEUOEUPUIZ
      WCUQTAWSXCUNSJGDUTTZVAAWCAWCXLVBVCVIVDAWIMNZWHMNZXCQKZWGWHRPZXFXNXPSLWGUJ
      ZXHWHWEULUMAXPWGUNQKWGAXOWGXCUNQAWGUSPZXOWGSAFXJPZFRPXSICFUOFUPUIZWGUQTXM
      VAAWGAWGYAVBVCVIVDVEAWPWBLWBMNZOKZWEUCZWKKWLAYCCGBWBVJDAWBXJPZYCCWBUFAXKX
      TYEHICEFVFVGCWBVHTALYBOVKJVLAYDWJWBWKAYDLWCWGVMKZOKZWEUCZWJAYCYGWEAYBYFLO
      AXKXTYBYFSHICEFVNVGVOVPAWFWIYHDGWCWGWFVQWIVQYHVQJXLYAVRVTVOVIAWQWMWRWNUAA
      WDCGBERDAXKWDCEUFHCEVHTXEAXGVSJVLAWHCGBFRDAXTWHCFUFICFVHTXQAXRVSJVLVAWA
      $.
  $}

  ${
    $d i A $.  $d i B $.  $d i R $.  $d i S $.  $d i T $.
    $( Letterwise operations on a single letter word.  (Contributed by Thierry
       Arnoux, 7-Oct-2018.) $)
    ofcs1 $p |- ( ( A e. S /\ B e. T )
      -> ( <" A "> oFC R B ) = <" ( A R B ) "> ) $=
      ( vi wcel wa cs1 co cc0 csn cmpt cvv wceq cop s1val cn0 0nn0 fmptsn simpr
      cofc snex a1i cv simpll mpan eqtrd adantr ofcfval2 ovex ax-mp mp2an eqtri
      syl6eqr ) ADGZBEGZHZAIZBCUBJFKLZABCJZMZVAIZURFUTABCUSNEDUTNGURKUCUDUPUQUA
      UPUQFUEUTGUFUPUSFUTAMZOUQUPUSKAPLZVDADQKRGZUPVEVDOSFKARDTUGUHUIUJVCKVAPLZ
      VBVANGZVCVGOABCUKZVANQULVFVHVGVBOSVIFKVARNTUMUNUO $.
  $}


  $( Letterwise operations on a double letter word.  (Contributed by Thierry
     Arnoux, 9-Oct-2018.) $)
  ofcs2 $p |- ( ( A e. S /\ B e. S /\ C e. T )
    -> ( <" A B "> oFC R C ) = <" ( A R C ) ( B R C ) "> ) $=
    ( wcel w3a cs2 cofc cs1 cconcat df-s2 oveq1i simp1 s1cld wceq ofcs1 syl2anc
    co simp2 simp3 ofcccat syl5eq oveq12d syl6eqr eqtrd ) AEGZBEGZCFGZHZABIZCDJ
    ZTZAKZCUMTZBKZCUMTZLTZACDTZBCDTZIZUKUNUOUQLTZCUMTUSULVCCUMABMNUKDEFUOUQCUKA
    EUHUIUJOZPUKBEUHUIUJUAZPUHUIUJUBZUCUDUKUSUTKZVAKZLTVBUKUPVGURVHLUKUHUJUPVGQ
    VDVFACDEFRSUKUIUJURVHQVEVFBCDEFRSUEUTVAMUFUG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Polynomials with real coefficients - misc additions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x F $.  $d x S $.
    $( Product of a polynomial with the zero polynomial.  (Contributed by
       Thierry Arnoux, 26-Sep-2018.) $)
    plymul02 $p |- ( F e. ( Poly ` S ) -> ( 0p oF x. F ) = 0p ) $=
      ( vx cply cfv wcel cc cc0 cv cmul co cmpt c0p cvv wfn df-0p ffn a1i wceq
      wf cof wa plyf ffvelrnda mul02d mpteq2dva csn cxp c0ex fconst feq1i mpbir
      mp1i syl cnex inidm 0pval adantl eqidd offval fconstmpt eqtri 3eqtr4d ) B
      ADEFZCGHCIZBEZJKZLCGHLZMBJUAKMVDCGVGHVDVEGFZUBZVFVDGGVEBABUCZUDUEUFVDCGGH
      VFJGMBNNGHUGZMTZMGOVDVMGVLGVLUHZTGHUIUJGVLMVNPUKULGVLMQUMVDGGBTBGOVKGGBQU
      NGNFVDUORZVOGUPVIVEMEHSVDVEUQURVJVFUSUTMVHSVDMVNVHPCGHVAVBRVC $.
  $}

  ${
    $d i n x y F $.
    $( Coefficients of a polynomial multiplyed by ` Xp ` .  (Contributed by
       Thierry Arnoux, 25-Sep-2018.) $)
    plymulx0 $p |- ( F e. ( ( Poly ` RR ) \ { 0p } ) ->
      ( coeff ` ( F oF x. Xp ) )
       = ( n e. NN0 |-> if ( n = 0 , 0 , ( ( coeff ` F ) ` ( n - 1 ) ) ) ) ) $=
      ( vi cr cfv wcel cidp cmul co ccoe cn0 cv cc0 wceq c1 cc a1i csu adantl
      wa vx vy cply c0p csn cdif cof cmpt cif wf eldifi wss ax-resscn 1re plyid
      cmin mp2an simprl simprr readdcld remulcld 0re eqid coef2 sylancl feqmptd
      plymul cvv cnex plyf syl ax-mp mulcomd caofcom fveq2d fveq1d adantr simpr
      coemul syl3anc elfznn0 coeidp oveq1d ovif syl6eq sumeq2dv wb velsn bicomi
      cfz ad2antrr fznn0sub ffvelrnd recnd mulid2d mul02d ifbieq12d eqeq2 oveq2
      cz 0z fzsn wn elsni ax-1ne0 nesymi eqeq1 mtbiri notbii iffalse sumeq12rdv
      biimpi 3syl cuz cfn wo snfi olci sumz cn simpll wne elnnne0 sylanbrc wral
      neqned cle wbr 1nn0 nnnn0d nnge1d elfz2nn0 syl3anbrc snssd sylbi ad2antlr
      nnm1nn0 eqeltrd ralrimiva eqtrd fzfi sumss2 syl21anc sumsn sylancr eqtr3d
      syl2anc ifbothda 3eqtrd mpteq2dva ) BDUCEZUDUEZUFFZBGHUGZIZJEZAKALZUUPEZU
      HAKUUQMNZMUUQOUPIZBJEZEZUIZUHUUMAKDUUPUUMUUOUUKFMDFZKDUUPUJUUMUAUBDBGBUUK
      UULUKZGUUKFZUUMDPULODFZUVFUMUNDUOUQZQUUMUALZDFZUBLZDFZTTZUVIUVKUUMUVJUVLU
      RZUUMUVJUVLUSZUTUVMUVIUVKUVNUVOVAVGVBUUPDUUOUUPVCVDVEVFUUMAKUURUVCUUMUUQK
      FZTZUURUUQGBUUNIZJEZEZUVCUUMUURUVTNUVPUUMUUQUUPUVSUUMUUOUVRJUUMUAUBPHPBGV
      HPVHFUUMVIQUUMBUUKFZPPBUJUVEDBVJVKPPGUJZUUMUVFUWBUVHDGVJVLQUUMUVIPFZUVKPF
      ZTTUVIUVKUUMUWCUWDURUUMUWCUWDUSVMVNVOVPVQUVQUVTMUUQWJIZCLZGJEZEZUUQUWFUPI
      ZUVAEZHIZCRZUWEUWFONZOUWJHIZMUWJHIZUIZCRZUVCUVQUVFUWAUVPUVTUWLNUVFUVQUVHQ
      UUMUWAUVPUVEVQUUMUVPVRZUWGUVADCGBUUQUWGVCUVAVCZVSVTUVQUWEUWKUWPCUWFUWEFZU
      WKUWPNUVQUWTUWKUWMOMUIZUWJHIUWPUWTUWHUXAUWJHUWTUWFKFUWHUXANUWFUUQWAUWFWBV
      KWCUWMOMUWJHWDWESWFUVQUWQUWEUWFOUEZFZUWJMUIZCRZUVCUVQUWEUWPUXDCUVQUWTTZUW
      MUXCUWNUWOUWJMUWMUXCWGUXFUXCUWMCOWHZWIZQUXFUWJUXFUWJUXFKDUWIUVAUUMKDUVAUJ
      ZUVPUWTUUMUWAUVDUXIUVEVBUVADBUWSVDVEZWKUWTUWIKFUVQUWFMUUQWLSWMWNZWOUXFUWJ
      UXKWPWQWFUUSUXEMNZUXEUVBNZUXEUVCNUVQMUVBMUVCUXEWRUVBUVCUXEWRUUSUXLUVQUUSU
      XEMUEZMCRZMUUSUWEUXNUXDMCUUSUWEMMWJIZUXNUUQMMWJWSMWTFUXPUXNNXAMXBVLWEUUSU
      WFUXNFZTZUWMXCZUXCXCZUXDMNUXRUWFMNZUXSUXQUYAUUSUWFMXDSUYAUWMMONOMXEXFUWFM
      OXGXHVKUXSUXTUWMUXCUXHXIXLUXCUWJMXJXMXKUXNMXNEZULZUXNXOFZXPUXOMNUYDUYCMXQ
      XRUXNCMXSVLWESUVQUUSXCZTZUUMUUQXTFZUXMUUMUVPUYEYAUYFUVPUUQMYBUYGUVQUVPUYE
      UWRVQUYFUUQMUVQUYEVRYFUUQYCYDUUMUYGTZUXBUWJCRZUXEUVBUYHUXBUWEULUWJPFZCUXB
      YEUWEUYBULZUWEXOFZXPZUYIUXENUYHOUWEUYHOKFZUVPOUUQYGYHOUWEFUYNUYHYIQUYHUUQ
      UUMUYGVRZYJUYHUUQUYOYKOUUQYLYMYNUYHUYJCUXBUYHUXCTZUWJUYPKDUWIUVAUUMUXIUYG
      UXCUXJWKUYPUWIUUTKUXCUWIUUTNZUYHUXCUWMUYQUXGUWFOUUQUPWSZYOSUYGUUTKFZUUMUX
      CUUQYQZYPYRWMWNYSUYMUYHUYLUYKMUUQUUAXRQUXBUWEUWJCMUUBUUCUYHUVGUVBPFUYIUVB
      NUNUYHUVBUYHKDUUTUVAUUMUXIUYGUXJVQUYGUYSUUMUYTSWMWNUWJUVBCODUWMUWIUUTUVAU
      YRVOUUDUUEUUFUUGUUHYTUUIYTUUJYT $.
  $}

  ${
    $d m n $.  $d n F $.
    $( Coefficients of a polynomial multiplyed by ` Xp ` .  (Contributed by
       Thierry Arnoux, 25-Sep-2018.) $)
    plymulx $p |- ( F e. ( Poly ` RR ) -> ( coeff ` ( F oF x. Xp ) )
       = ( n e. NN0 |-> if ( n = 0 , 0 , ( ( coeff ` F ) ` ( n - 1 ) ) ) ) ) $=
      ( vm cr cfv wcel c0p wceq cidp co ccoe cn0 cv cc0 c1 cif cmpt fveq2d wa
      wn cply cmul cof cmin cc wss ax-resscn 1re plyid mp2an plymul02 ax-mp csn
      cxp fconstmpt coe0 eqidd cn wne elnnne0 df-ne anbi2i bitr2i nnm1nn0 sylbi
      eqtri fvmpt syl ifeqda mpteq2ia 3eqtr4ri eqtr4i oveq1 simpl fveq1d ifeq2d
      c0ex mpteq2dva 3eqtr4a adantl cdif elsng notbid eldifd plymulx0 pm2.61dan
      biimpar ) BDUAEZFZBGHZBIUBUCZJZKEZALAMZNHZNWNOUDJZBKEZEZPZQZHZWJXAWIWJGIW
      KJZKEZALWONWPGKEZEZPZQZWMWTXCXDXGIWHFZXCXDHDUEUFODFXHUGUHDUIUJXHXBGKDIUKR
      ULLNUMUNZALNQXDXGALNUOUPALXFNWNLFZWONXENXJWOSNUQXJWOTZSZWPLFZXENHXLWNURFZ
      XMXNXJWNNUSZSXLWNUTXOXKXJWNNVAVBVCWNVDVECWPNNLXDCMWPHNUQXDXICLNQUPCLNUOVF
      VQVGVHVIVJVKVLWJWLXBKBGIWKVMRWJALWSXFWJXJSZWOWRXENXPWPWQXDXPBGKWJXJVNRVOV
      PVRVSVTWIWJTZSZBWHGUMZWAFXAXRBWHXSWIXQVNWIBXSFZTXQWIXTWJBGWHWBWCWGWDABWEV
      HWF $.
  $}

  ${
    plyrecld.1 $e |- ( ph -> F e. ( Poly ` RR ) ) $.
    plyrecld.2 $e |- ( ph -> X e. RR ) $.
    $( Closure of a polynomial with real coefficients.  (Contributed by Thierry
       Arnoux, 18-Sep-2018.) $)
    plyrecld $p |- ( ph -> ( F ` X ) e. RR ) $=
      ( cr cres cfv wcel wceq fvres syl cply wf plyreres ffvelrnd eqeltrrd ) AC
      BFGZHZCBHZFACFISTJECFBKLAFFCRABFMHIFFRNDBOLEPQ $.
  $}

  ${
    signsply0.d $e |- D = ( deg ` F ) $.
    signsply0.c $e |- C = ( coeff ` F ) $.
    signsply0.b $e |- B = ( C ` D ) $.

    ${
      $d k x C $.  $d k x D $.  $d k x F $.  $d x G $.
      signsplypnf.g $e |- G = ( x e. RR+ |-> ( x ^ D ) ) $.
      $( The quotient of a polynomial ` F ` by a monic monomial of same degree
         ` G ` converges to the highest coefficient of ` F ` .  (Contributed by
         Thierry Arnoux, 18-Sep-2018.) $)
      signsplypnf $p |- ( F e. ( Poly ` RR ) -> ( F oF / G ) ~~>r B ) $=
        ( vk cr wcel cdiv co crp cc0 cmpt cc cvv cply cfv cof cfzo cv cexp cmul
        csu csn caddc crli cfz wfn plyf ffn syl wral ovex rgenw fnmpt mp1i cnex
        wf a1i reex rpssre ssexi wss wceq ax-resscn sstri sseqin2 coeid2 fvmpt2
        cin mpbi mpan2 adantl offval wa fzfid sselda cdgr dgrcl syl5eqel adantr
        cn0 expcld coef3 ad2antrr elfznn0 ffvelrnd mulcld wne rpne0 cz fsumdivc
        nn0zd expne0d c0 c1 fzodisj fzosn ineq2d syl5reqr fzval3 nn0uz syl6eleq
        cun cuz fzosplitsn eqtrd fsumsplit mpteq2dva sumex fzofi ovexd elfzonn0
        cfn ad2antlr adantlr divassd fvexd wbr rlimconst sylancr cmin ccxp cneg
        divcld zsubcld cxpexpzd oveq2d expnegd nn0cnd negsubdi2d nn0red breqtrd
        zcnd eqbrtrd 3eqtr2d clt elfzolt2 difrp biimpa syl21anc cxplim eqbrtrrd
        expsubd rlimmul mul01d fsumrlim wo olcd sumz fveq2 oveq2 oveq12d oveq1d
        sumsn syl2anc divcan4d rlimadd addid2d syl6eqr ) ELUAUBMZEFNUCOZAPQDUDO
        ZKUEZCUBZAUEZUVIUFOZUGOZUVKDUFOZNOZKUHZDUIZUVOKUHZUJOZRZBUKUVFUVGAPQDUL
        OZUVMKUHZUVNNOZRUVTUVFASPUWBUVNNPEFTTUVFSSEVCESUMLEUNSSEUOUPUVNTMZAPUQF
        PUMUVFUWDAPUVKDUFURZUSAPUVNFTJUTVASTMUVFVBVDPTMUVFPLVEVFVGVDPSVHZSPVOPV
        IPLSVFVJVKZPSVLVPCLKEDUVKHGVMUVKPMZUVKFUBUVNVIZUVFUWHUWDUWIUWEAPUVNTFJV
        NVQVRVSUVFAPUWCUVSUVFUWHVTZUWCUWAUVOKUHUVSUWJUWAUVMUVNKUWJQDWAZUWJUVKDU
        VFPSUVKUWFUVFUWGVDWBZUVFDWGMZUWHUVFDEWCUBWGGLEWDWEZWFZWHZUWJUVIUWAMZVTZ
        UVJUVLUWRWGSUVICUVFWGSCVCZUWHUWQCLEHWIZWJUWQUVIWGMZUWJUVIDWKVRZWLUWRUVK
        UVIUWJUVKSMZUWQUWLWFZUXBWHWMZUWJUVKDUWLUWHUVKQWNZUVFUVKWOZVRZUVFDWPMZUW
        HUVFDUWNWRZWFZWSZWQUWJUVHUVQUVOUWAKUWJUXIUVHUVQVOZWTVIUXKUXIWTUVHDDXAUJ
        OZUDOZVOUXMQDUXNXBUXIUXOUVQUVHDXCXDXEUPUVFUWAUVHUVQXIZVIUWHUVFUWAQUXNUD
        OZUXPUVFUXIUWAUXQVIUXJQDXFUPUVFDQXJUBZMUXQUXPVIUVFDWGUXRUWNXGXHQDXKUPXL
        WFUWKUWRUVMUVNUXEUWJUVNSMZUWQUWPWFUWRUVKDUXDUWJUXFUWQUXHWFUWJUXIUWQUXKW
        FWSYJXMXLXNXLUVFUVTQDCUBZUJOZBUKUVFAPUVPUVRQUXTTUVPTMUWJUVHUVOKXOVDUVRT
        MUWJUVQUVOKXOVDUVFAPUVPRUVHQKUHZQUKUVFAPUVHUVOQKTPLVHZUVFVFVDUVHXSMZUVF
        QDXPVDZUVFUWHUVIUVHMZVTVTUVMUVNNXQUVFUYFVTZAPUVORAPUVJUVLUVNNOZUGOZRZQU
        KUYGAPUVOUYIUYGUWHVTZUVJUVLUVNUYKWGSUVICUVFUWSUYFUWHUWTWJUYFUXAUVFUWHUV
        IDXRZXTZWLUYKUVKUVIUVFUWHUXCUYFUWLYAZUYMWHUVFUWHUXSUYFUWPYAUYKUVKDUYNUW
        HUXFUYGUXGVRZUVFUWHUXIUYFUXKYAZWSYBXNUYGUYJUVJQUGOQUKUYGAPUVJUYHUVJQTUY
        KUVICYCUYKUVLUVNNXQUYGUYCUVJSMAPUVJRUVJUKYDVFUYGWGSUVICUVFUWSUYFUWTWFUY
        FUXAUVFUYLVRZWLZAPUVJYEYFUYGAPXAUVKDUVIYGOZYHOZNOZRZAPUYHRQUKUYGAPVUAUY
        HUYKVUAUVKUVIDYGOZUFOZUYHUYKVUAXAUVKUYSUFOZNOUVKUYSYIZUFOVUDUYKUYTVUEXA
        NUYKUVKUYSUYNUYOUYKDUVIUYPUYKUVIUYMWRZYKZYLYMUYKUVKUYSUYNUYOVUHYNUYKVUF
        VUCUVKUFUYKDUVIUYKDUYPYSUYKUVIUYMYOYPYMUUAUYKUVKUVIDUYNUYOUYPVUGUUIXLXN
        UYGUYSPMZVUBQUKYDUYGUVILMZDLMZUVIDUUBYDZVUIUYGUVIUYQYQUYGDUVFUWMUYFUWNW
        FYQUYFVULUVFUVIQDUUCVRVUJVUKVTVULVUIUVIDUUDUUEUUFUYSAUUGUPUUHUUJUYGUVJU
        YRUUKYRYTUULUVFUVHUXRVHZUYDUUMUYBQVIUVFUYDVUMUYEUUNUVHKQUUOUPYRUVFAPUVR
        RAPUXTRZUXTUKUVFAPUVRUXTUWJUVRUXTUVNUGOZUVNNOZUXTUWJUWMVUPSMUVRVUPVIUWO
        UWJVUOUVNUWJUXTUVNUVFUXTSMZUWHUVFWGSDCUWTUWNWLZWFZUWPWMUWPUXLYJUVOVUPKD
        WGUVIDVIZUVMVUOUVNNVUTUVJUXTUVLUVNUGUVIDCUUPUVIDUVKUFUUQUURUUSUUTUVAUWJ
        UXTUVNVUSUWPUXLUVBXLXNUVFUYCVUQVUNUXTUKYDVFVURAPUXTYEYFYTUVCUVFUYAUXTBU
        VFUXTVURUVDIUVEYRYT $.
    $}

    ${
      $d d e f x B $.  $d d x z B $.  $d f C $.  $d d e f x D $.
      $d d e f x z F $.  $d d e f x z ph $.
      signsply0.a $e |- A = ( C ` 0 ) $.
      signsply0.1 $e |- ( ph -> F e. ( Poly ` RR ) ) $.
      signsply0.2 $e |- ( ph -> F =/= 0p ) $.
      signsply0.3 $e |- ( ph -> ( A x. B ) < 0 ) $.
      $( Lemma for the rule of signs, based on Bolzano's intermediate value
         theorem for polynomials :  If the lowest and highest coefficient ` A `
         and ` B ` are of opposite signs, the polynomial admits a positive
         root.  (Contributed by Thierry Arnoux, 19-Sep-2018.) $)
      signsply0 $p |- ( ph -> E. z e. RR+ ( F ` z ) = 0 ) $=
        ( crp wcel cc0 wa wbr clt vd vf vx ve cneg cv cfv wceq wrex cle cexp co
        cdiv cmin cabs wi wral simplr simpr cxr rpxr xrleid syl ad2antlr breq2d
        id fveq2d oveq1d oveq12d breq1d imbi12d syl3c caddc cply ad2antrr rpred
        rspcdv cr plyrecld cdgr dgrcl syl5eqel reexpcld rpcnd rpne0d cz expne0d
        cn0 redivcld wf syl2anc absdifltd cc recnd adantr wb wn rpexpcld ltnled
        0re 0red mpbird syldan cioo rpgt0d wss sylancr ax-resscn syl6ss ad4antr
        ad3antrrr sselda simplll a1i ffvelrnd jca cpnf pnfge pnfxr ioorp ssrexv
        0xr 3syl mpd cmpt crli cvv wfn rpssre eqidd eqbrtrrd mpbid ax-mp imbi2d
        c1 cnex rexralbidv r19.29a wne c0p nn0zd coef2 mpan2 ffvelrnda renegcld
        simplbda negidd breqtrd ge0divd notbid 3bitr4d cicc iccssre ccncf plycn
        negelrp biimpa 0nn0 mul2lt0rlt0 syl6breq coefv0 breqtrrd ivth2 ioossioo
        sylancl 0le0 mpanl12 syl6sseq cico cof plyf ovex rgenw eqid fnmpt sstri
        ffn mp1i ssexi cin sseqin2 mpbi ovexd fvmptd offval cbvmptv signsplypnf
        oveq1 expcld divcld ralrimiva 1red rlim3 icossioo sseqtri ralimi subidd
        0lt1 simprbda gt0divd w3a simpr1 3anassrs mul2lt0rgt0 syl5eqbrr eqbrtrd
        mp4an ivth dgreq0 necon3bid neeq1i sylibr rpneg biimprd orrd mpjaodan
        wo ) ADUEZOPZBUFGUGQUHZBOUIZDOPZAUXSRZUAUFZUBUFZUJSZUYEGUGZUYEFUKULZUMU
        LZDUNULZUOUGZUXRTSZUPZUBOUQZUYAUAOUYCUYDOPZRZUYNUYDGUGZQTSZUYAUYPUYNUYQ
        UYDFUKULZUMULZDUNULZUOUGZUXRTSZUYRUYPUYNRUYOUYNUYDUYDUJSZVUCUYCUYOUYNUR
        UYPUYNUSUYOVUDUYCUYNUYOUYDUTPZVUDUYDVAZUYDVBVCZVDUYOUYMVUDVUCUPUBUYDOUY
        OVFZUYOUYEUYDUHZRZUYFVUDUYLVUCVUJUYEUYDUYDUJUYOVUIUSZVEZVUJUYKVUBUXRTVU
        JUYJVUAUOVUJUYIUYTDUNVUJUYGUYQUYHUYSUMVUJUYEUYDGVUKVGVUJUYEUYDFUKVUKVHV
        IVHVGZVJVKVQVLUYPVUCRZUYRUYTQTSZVUNUYTDUXRVMULZQTUYPVUCDUXRUNULUYTTSUYT
        VUPTSUYPUYTDUXRUYPUYQUYSUYPGUYDAGVRVNUGPZUXSUYOLVOUYPUYDUYCUYOUSZVPZVSZ
        UYPUYDFVUSAFWHPZUXSUYOAFGVTUGZWHHAVUQVVBWHPLVRGWAVCWBZVOWCUYPUYDFUYPUYD
        VURWDUYPUYDVURWEAFWFPZUXSUYOAFVVCUUAZVOZWGWIZADVRPZUXSUYOAVUQVVAVVHLVVC
        VUQVVARDFEUGZVRJVUQWHVRFEVUQQVRPZWHVREWJZWTEVRGIUUBZUUCUUDWBWKZVOZUYPDV
        VNUUEWLUUFUYPVUPQUHVUCUYPDADWMPZUXSUYOADVVMWNZVOUUGWOUUHUYPUYRVUOWPVUCU
        YPQUYQUJSZWQQUYTUJSZWQUYRVUOUYPVVQVVRUYPUYQUYSVUTUYPUYDFVURVVFWRUUIUUJU
        YPUYQQVUTUYPXAZWSUYPUYTQVVGVVSWSUUKWOXBXCUYPUYRRZUXTBQUYDXDULZUIZUYAVVT
        UCQUYDWMQGBVVTXAZVVTUYDUYCUYOUYRURZVPZVWCVVTUYDVWDXEVVTQUYDUULULZVRWMVV
        TVVJUYDVRPZVWFVRXFZWTVWEQUYDUUMZXGZXHXIAGWMWMUUNULPZUXSUYOUYRAVUQVWKLVR
        GUUOVCZXKVVTUCUFZVWFPZRGVWMAVUQUXSUYOUYRVWNLXJVVTVWFVRVWMVWJXLVSVVTUYRQ
        QGUGZTSUYPUYRUSVVTQQEUGZVWOTVVTADQTSZQVWPTSAUXSUYOUYRXMZVVTVVHUXSVWQVVT
        AVVHVWRVVMVCUYCUXSUYOUYRAUXSUSZVOVVHUXSVWQDUUPUUQWKAVWQRQCVWPTACDACVWPV
        RKAWHVRQEAVUQVVJVVKLWTVVLUVEQWHPAUURXNXOWBZVVMNUUSKUUTWKAVWOVWPUHZUXSUY
        OUYRAVUQVXALEVRGIUVAVCZXKUVBXPUVCVVTUYOVWAOXFZVWBUYAUPZVWDUYOVWAQXQXDUL
        ZOUYOQQUJSZUYDXQUJSZVWAVXEXFZUVFUYOVUEVXGVUFUYDXRVCQUTPZXQUTPZVXFVXGRVX
        HYBXSQXQQUYDUVDUVGXGXTUVHZUXTBVWAOYAZYCYDXCUYCUYFUYKUDUFZTSZUPZUBOUQZUA
        OUIZUDOUQZUYNUAOUIZAVXRUXSAVXPUAYOXQUVIULZUIZUDOUQZVXRAUBOUYIYEZDYFSVYB
        AGUCOVWMFUKULZYEZUMUVJULZVYCDYFAUBWMOUYGUYHUMOGVYEYGYGAWMWMGWJZGWMYHAVU
        QVYGLVRGUVKVCZWMWMGUVQVCVYDYGPZUCOUQVYEOYHAVYIUCOVWMFUKUVLUVMUCOVYDVYEY
        GVYEUVNUVOUVRWMYGPAYPXNOYGPAOWMYPOVRWMYIXHUVPZUVSXNOWMXFWMOUVTOUHVYJOWM
        UWAUWBAUYEWMPRUYGYJAUYEOPZRZUCUYEVYDUYHOVYEYGVYLVYEYJVYLVWMUYEUHZRVWMUY
        EFUKVYLVYMUSVHAVYKUSZVYLUYEFUKUWCUWDUWEAVUQVYFDYFSLUBDEFGVYEHIJUCUBOVYD
        UYHVWMUYEFUKUWHUWFUWGVCYKAUDUAUBOUYIDYOAUYIWMPUBOVYLUYGUYHVYLWMWMUYEGAV
        YGVYKVYHWOVYLUYEVYNWDZXOVYLUYEFVYOAVVAVYKVVCWOUWIVYLUYEFVYOVYLUYEVYNWEA
        VVDVYKVVEWOWGUWJUWKOVRXFZAYIXNVVPAUWLUWMYLVYAVXQUDOVXTOXFVYAVXQUPVXTVXE
        OVXIVXJQYOTSXQXQUJSZVXTVXEXFYBXSUWRVXJVYQXSXQXRYMQXQYOXQUWNUXGXTUWOVXPU
        AVXTOYAYMUWPVCZWOUYCVXQVXSUDUXROVWSUYCVXMUXRUHZRZVXOUYMUAUBOOVYTVXNUYLU
        YFVYTVXMUXRUYKTUYCVYSUSVEYNYQVQYDYRAUYBRZUYFUYKDTSZUPZUBOUQZUYAUAOWUAUY
        ORZWUDQUYQTSZUYAWUEWUDVUBDTSZWUFWUEWUDRUYOWUDVUDWUGWUAUYOWUDURWUEWUDUSU
        YOVUDWUAWUDVUGVDUYOWUCVUDWUGUPUBUYDOVUHVUJUYFVUDWUBWUGVULVUJUYKVUBDTVUM
        VJVKVQVLWUEWUGRZWUFQUYTTSZWUHDDUNULZQUYTTWUEWUJQUHWUGWUEDAVVOUYBUYOVVPV
        OUWQWOWUEWUGWUJUYTTSUYTDDVMULTSWUEUYTDDWUEUYQUYSWUEGUYDAVUQUYBUYOLVOWUA
        OVRUYDVYPWUAYIXNXLZVSZWUEUYDFWUKAVVAUYBUYOVVCVOWCWUEUYDFWUEUYDWUKWNWUEU
        YDWUAUYOUSZWEAVVDUYBUYOVVEVOZWGWIAVVHUYBUYOVVMVOZWUOWLUWSYKWUEWUFWUIWPW
        UGWUEUYQUYSWULWUEUYDFWUMWUNWRUWTWOXBXCWUEWUFRZVWBUYAWUPUCQUYDWMQGBWUPXA
        ZWUPUYDWUAUYOWUFURZVPZWUQWUPUYDWURXEWUPVWFVRWMWUPVVJVWGVWHWTWUSVWIXGZXH
        XIAVWKUYBUYOWUFVWLXKWUPVWNRGVWMAVUQUYBUYOWUFVWNLXJWUPVWFVRVWMWUTXLVSWUP
        VWOQTSWUFWUPVWOVWPQTAVXAUYBUYOWUFVXBXKWUPVWPCQTKWUPAQDTSZCQTSAUYBUYOWUF
        XMAUYBUYOWUFWVAAUYBUYOWUFUXARDAUYBUYOWUFUXBXEUXCACDVWTVVMNUXDWKUXEUXFWU
        EWUFUSXPUXHWUPUYOVXCVXDWURVXKVXLYCYDXCWUAVXRWUDUAOUIZAVXRUYBVYRWOWUAVXQ
        WVBUDDOAUYBUSWUAVXMDUHZRZVXOWUCUAUBOOWVDVXNWUBUYFWVDVXMDUYKTWUAWVCUSVEY
        NYQVQYDYRAVVHDQYSZUXSUYBUXQVVMAVVIQYSZWVEAGYTYSWVFMAGYTVVIQAVUQGYTUHVVI
        QUHWPLEVRGFHIUXIVCUXJYLDVVIQJUXKUXLVVHWVERZUXSUYBWVGUYBUXSWQDUXMUXNUXOW
        KUXP $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Descartes's rule of signs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Sign changes in a word over real numbers
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    signsw.p $e |- .+^ = ( a e. { -u 1 , 0 , 1 } , b e. { -u 1 , 0 , 1 }
      |-> if ( b = 0 , a , b ) ) $.

    ${
      $d a b X $.  $d a b Y $.
      $( The value of the skipping 0 sign operation.  (Contributed by Thierry
         Arnoux, 9-Sep-2018.) $)
      signspval $p |- ( ( X e. { -u 1 , 0 , 1 } /\ Y e. { -u 1 , 0 , 1 } )
        -> ( X .+^ Y ) = if ( Y = 0 , X , Y ) ) $=
        ( c1 cneg cc0 ctp wcel wceq cif co ifcl cv ifeq1 eqeq1 id ifbieq2d
        ovmpt2g mpd3an3 ) BGHIGJZKCUCKCILZBCMZUCKBCANUELUDBCUCODEBCUCUCEPZILZDP
        ZUFMUEAUGBUFMUCUGUHBUFQUFCLZUGUDUFCBUFCIRUISTFUAUB $.
    $}

    ${
      $d a b u $.
      $( Neutral element property of ` .+^ ` .  (Contributed by Thierry Arnoux,
         9-Sep-2018.) $)
      signsw0glem $p |-
        A. u e. { -u 1 , 0 , 1 } ( ( 0 .+^ u ) = u /\ ( u .+^ 0 ) = u ) $=
        ( cc0 cv co wceq wa cneg ctp wcel cif c0ex tpid2 signspval mpan syl6eq
        c1 iftrue id eqtr4d iffalse pm2.61i mpan2 eqid iftruei jca rgen ) FAGZB
        HZUKIZUKFBHZUKIZJATKZFTLZUKUQMZUMUOURULUKFIZFUKNZUKFUQMZURULUTIUPFTOPZB
        FUKCDEQRUSUTUKIUSUTFUKUSFUKUAUSUBUCUSFUKUDUESURUNFFIZUKFNZUKURVAUNVDIVB
        BUKFCDEQUFVCUKFFUGUHSUIUJ $.
    $}

    signsw.w $e |- W = { <. ( Base ` ndx ) , { -u 1 , 0 , 1 } >. ,
      <. ( +g ` ndx ) , .+^ >. } $.
    $( The base of ` W ` is the triplet reprensenting the possible signs.
       (Contributed by Thierry Arnoux, 9-Sep-2018.) $)
    signswbase $p |- { -u 1 , 0 , 1 } = ( Base ` W ) $=
      ( c1 cneg cc0 ctp cvv wcel cbs cfv wceq tpex grpbase ax-mp ) GHZIGJZKLTBM
      NOSIGPTABKFQR $.

    ${
      $d a b $.
      $( The operation of ` W ` .  (Contributed by Thierry Arnoux,
         9-Sep-2018.) $)
      signswplusg $p |- .+^ = ( +g ` W ) $=
        ( cvv wcel cplusg cfv wceq c1 cneg cc0 ctp cv cif cmpt2 tpex mpt2ex
        eqeltri grpplusg ax-mp ) AGHABIJKACDLMZNLOZUEDPZNKCPUFQZRGECDUEUEUGUDNL
        SZUHTUAUEABGFUBUC $.

      $d a b u $.  $d e u .+^ $.  $d e u W $.
      $( The neutral element of ` W ` .  (Contributed by Thierry Arnoux,
         9-Sep-2018.) $)
      signsw0g $p |- 0 = ( 0g ` W ) $=
        ( vu ve c0g cfv cc0 c1 cneg cv co wceq wa wral wtru eqeq1d tpid2 pm3.2i
        wcel c0ex signsw0glem wb signswbase eqid signswplusg wrex oveq1 anbi12d
        ctp oveq2 ralbidv rspcev mp2an a1i ismgmid trud mpbi eqcomi ) BIJZKKLMZ
        KLUMZUCZKGNZAOZVGPZVGKAOZVGPZQZGVERZQZVCKPZVFVMVDKLUDUAZGACDEUEZUBVNVOU
        FSGVEAKHBVCABCDEFUGVCUHABCDEFUIHNZVGAOZVGPZVGVRAOZVGPZQZGVERZHVEUJZSVFV
        MWEVPVQWDVMHKVEVRKPZWCVLGVEWFVTVIWBVKWFVSVHVGVRKVGAUKTWFWAVJVGVRKVGAUNT
        ULUOUPUQURUSUTVAVB $.

      $d a b e u v w .+^ $.  $d e u v w W $.
      $( ` W ` is a monoid structure on ` { -u 1 , 0 , 1 } ` which operation
         retains the right side, but skips zeroes.  This will be used for
         skipping zeroes when counting sign changes.  (Contributed by Thierry
         Arnoux, 9-Sep-2018.) $)
      signswmnd $p |- W e. Mnd $=
        ( vu vv vw ve wcel cv co cc0 wceq wral wa cif sylan9eq ad2antrr cmnd c1
        cneg ctp wrex signspval eqeltrd w3a stoic3 iftrue adantr 3adant3 adantl
        ifcl 3eqtrd simp1 3adant1 simpl2 wn simpl3 ifclda syl2anc iftrued eqtrd
        id eqtr4d ad2antlr iffalse simpr eqeq1d mtbird iffalsed pm2.61dan 3expa
        ralrimiva jca rgen2a c0ex tpid2 signsw0glem oveq1 oveq2 anbi12d ralbidv
        rspcev mp2an signswbase signswplusg ismnd mpbir2an ) BUAKGLZHLZAMZUBUCZ
        NUBUDZKZWMILZAMZWKWLWQAMZAMZOZIWOPZQZHWOPGWOPJLZWKAMZWKOZWKXDAMZWKOZQZG
        WOPZJWOUEZXCGHWOWKWOKZWLWOKZQZWPXBXNWMWLNOZWKWLRZWOAWKWLCDEUFZXOWKWLWOU
        NUGZXNXAIWOXLXMWQWOKZXAXLXMXSUHZWQNOZXAXTYAQZXOXAYBXOQZWRWKWTYCWRWMXPWK
        YBWRWMOXOXTYAWRYAWMWQRZWMXLXMWPXSWRYDOZXRAWMWQCDEUFUIZYAWMWQUJZSUKXTWMX
        POZYAXOXLXMYHXSXQULZTXOXPWKOYBXOWKWLUJUMUOYCWTWSNOZWKWSRZWKXTWTYKOZYAXO
        XTXLWSWOKYLXLXMXSUPXTWSYAWLWQRZWOXMXSWSYMOZXLAWLWQCDEUFUQZXTYAWLWQWOXLX
        MXSYAURXLXMXSYAUSZUTVAUGAWKWSCDEUFVBZTYCYJWKWSYBXOWSWLNXTYAWSYMWLYOYAWL
        WQUJZSXOVESVCVDVFYBXOUSZQZWRWLWTYTWRYDWMWLXTYEYAYSYFTYAYDWMOXTYSYGVGYTW
        MXPWLXTYHYAYSYITYSXPWLOYBXOWKWLVHUMVDUOYTWTYKWSWLXTYLYAYSYQTYTYJWKWSYTY
        JXOYBYSVIYTWSWLNYTWSYMWLXTYNYAYSYOTYAYMWLOXTYSYRVGVDZVJVKVLUUAUOVFVMXTY
        PQZWRWQWTXTYPWRYDWQYFYAWMWQVHSUUBWTYKWSWQXTYLYPYQUKUUBYJWKWSUUBYJYAXTYP
        VIUUBWSWQNXTYPWSYMWQYOYAWLWQVHSZVJVKVLUUCUOVFVMVNVOVPVQNWOKNWKAMZWKOZWK
        NAMZWKOZQZGWOPZXKWNNUBVRVSGACDEVTXJUUIJNWOXDNOZXIUUHGWOUUJXFUUEXHUUGUUJ
        XEUUDWKXDNWKAWAVJUUJXGUUFWKXDNWKAWBVJWCWDWEWFWOAJBGHIABCDEFWGABCDEFWHWI
        WJ $.
    $}

    $d a b X $.
    $( The zero-skipping operation propagages nonzeros.  (Contributed by
       Thierry Arnoux, 11-Oct-2018.) $)
    signswrid $p |- ( X e. { -u 1 , 0 , 1 } -> ( X .+^ 0 ) = X ) $=
      ( c1 cneg cc0 ctp wcel co wceq cif c0ex tpid2 signspval mpan2 eqid iftrue
      mp1i eqtrd ) CHIZJHKZLZCJAMZJJNZCJOZCUFJUELUGUINUDJHPQACJDEFRSUHUICNUFJTU
      HCJUAUBUC $.

    $d a b Y $.
    $( The zero-skipping operation keeps nonzeros.  (Contributed by Thierry
       Arnoux, 12-Oct-2018.) $)
    signswlid $p |- ( ( ( X e. { -u 1 , 0 , 1 } /\ Y e. { -u 1 , 0 , 1 } )
      /\ Y =/= 0 ) -> ( X .+^ Y ) = Y ) $=
      ( c1 cneg cc0 ctp wcel wa wne co wceq cif signspval adantr simpr iffalsed
      neneqd eqtrd ) CIJKILZMDUEMNZDKOZNZCDAPZDKQZCDRZDUFUIUKQUGACDEFGSTUHUJCDU
      HDKUFUGUAUCUBUD $.

    $( The zero-skipping operation propagages nonzeros.  (Contributed by
       Thierry Arnoux, 11-Oct-2018.) $)
    signswn0 $p |- ( ( ( X e. { -u 1 , 0 , 1 } /\ Y e. { -u 1 , 0 , 1 } )
      /\ X =/= 0 ) -> ( X .+^ Y ) =/= 0 ) $=
      ( c1 cneg cc0 ctp wcel wa wne co wceq cif signspval neeq1 adantr wn simpr
      simplr neqned ifbothda eqnetrd ) CIJKILZMDUHMNZCKOZNZCDAPZDKQZCDRZKUIULUN
      QUJACDEFGSUAUMUJDKOUNKOUKCDCUNKTDUNKTUIUJUMUDUKUMUBZNDKUKUOUCUEUFUG $.

    $( The zero-skipping operation changes value when the operands change
       signs.  (Contributed by Thierry Arnoux, 9-Oct-2018.) $)
    signswch $p |- ( ( X e. { -u 1 , 1 } /\ Y e. { -u 1 , 0 , 1 } )
      -> ( ( X .+^ Y ) =/= X <-> ( X x. Y ) < 0 ) ) $=
      ( c1 wcel cc0 wa co wne wceq cmul clt wbr wb breq1d cpr ctp cif csn df-pr
      cneg cun snsstp1 snsstp3 unssi eqsstri sseli signspval sylan neeq1d neeq1
      bibi1d wn neirr a1i 0re ltnri simpr oveq2d wss neg1cn ax-1cn prssi simpll
      cc mp2an sseldi mul01d eqtrd mtbiri 2falsed simplr tpcomb syl6eleq neqned
      jca cdif eldifsn neg1ne0 ax-1ne0 diftpsn3 eleq2i bitr3i sylib 0le1 lenlti
      cle 1re mpbi neg1mulneg1e1 breq1i mtbir 2false oveq2 mpbiri adantl neg1rr
      bibi12d neg1lt0 0lt1 lttri gtneii mulid1i 2th elpri mpjaodan adantr neeq2
      eqbrtri oveq1 mpbird necomi mulcomi wo ad2antrr ifbothda bitrd ) CIUFZIUA
      ZJZDYCKIUBZJZLZCDAMZCNDKOZCDUCZCNZCDPMZKQRZYHYIYKCYECYFJYGYIYKOYDYFCYDYCU
      DZIUDZUGYFYCIUEYOYPYFYCKIUHYCKIUIUJUKULACDEFGUMUNUOYJCCNZYNSDCNZYNSZYLYNS
      YHCDCYKOYQYLYNCYKCUPUQDYKOYRYLYNDYKCUPUQYHYJLZYQYNYQURYTCUSUTYTYNKKQRKVAV
      BYTYMKKQYTYMCKPMKYTDKCPYHYJVCVDYTCYTYDVJCYCVJJIVJJYDVJVEVFVGYCIVJVHVKYEYG
      YJVIVLVMVNTVOVPYHYJURZLZCYCOZYSCIOZUUBDYDJZUUCYSUUBDYCIKUBZJZDKNZLZUUEUUB
      UUGUUHUUBDYFUUFYEYGUUAVQYCKIVRVSUUBDKYHUUAVCVTWAUUIDUUFKUDWBZJUUEDUUFKWCU
      UJYDDYCKNIKNUUJYDOWDWEYCIKWFVKWGWHWIZUUEUUCLYSDYCNZYCDPMZKQRZSZUUEUUOUUCU
      UEDYCOZUUODIOZUUPUUOUUEUUPUUOYCYCNZYCYCPMZKQRZSUURUUTYCUSUUTIKQRZKIWLRUVA
      URWJKIVAWMWKWNZUUSIKQWOWPWQWRUUPUULUURUUNUUTDYCYCUPUUPUUMUUSKQDYCYCPWSTXC
      WTXAUUQUUOUUEUUQUUOIYCNZYCIPMZKQRZSUVCUVEYCIXBYCKQRKIQRYCIQRXDXEYCKIXBVAW
      MXFVKXGZUVDYCKQYCVFXHXDXNZXIUUQUULUVCUUNUVEDIYCUPUUQUUMUVDKQDIYCPWSTXCWTX
      ADYCIXJZXKXLUUCYSUUOSUUEUUCYRUULYNUUNCYCDXMUUCYMUUMKQCYCDPXOTXCXAXPUNUUBU
      UEUUDYSUUKUUEUUDLYSDINZIDPMZKQRZSZUUEUVLUUDUUEUUPUVLUUQUUPUVLUUEUUPUVLYCI
      NZIYCPMZKQRZSUVMUVOIYCUVFXQUVEUVOUVGUVDUVNKQYCIVFVGXRWPWNXIUUPUVIUVMUVKUV
      ODYCIUPUUPUVJUVNKQDYCIPWSTXCWTXAUUQUVLUUEUUQUVLIINZIIPMZKQRZSUVPUVRIUSUVR
      UVAUVBUVQIKQIVGXHWPWQWRUUQUVIUVPUVKUVRDIIUPUUQUVJUVQKQDIIPWSTXCWTXAUVHXKX
      LUUDYSUVLSUUEUUDYRUVIYNUVKCIDXMUUDYMUVJKQCIDPXOTXCXAXPUNYEUUCUUDXSYGUUACY
      CIXJXTXKYAYB $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Counting sign changes in a word over real numbers
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    signslema.1 $e |- ( ph -> E e. NN0 ) $.
    signslema.2 $e |- ( ph -> F e. NN0 ) $.
    signslema.3 $e |- ( ph -> G e. NN0 ) $.
    signslema.4 $e |- ( ph -> H e. NN0 ) $.
    signslema.5 $e |- ( ph -> ( E < G /\ -. 2 || ( G - E ) ) ) $.
    signslema.6 $e |- ( ph -> ( ( H - G ) - ( F - E ) ) e. { 0 , 2 } ) $.
    $( Computational part of signwlemn .  (Contributed by Thierry Arnoux,
       29-Sep-2018.) $)
    signslema $p |- ( ph -> ( F < H /\ -. 2 || ( H - F ) ) ) $=
      ( clt wbr c2 cmin co cdvds cc0 adantr wcel wn wceq simpld nn0cnd subeq0ad
      wa subcld biimpa breq2d wb nn0red posdifd 3bitr4rd mpbid 0red cr resubcld
      2pos breq2 mpbiri biimpar sylan2 lttrd mpbird wo sub4d eqeltrrd ovex elpr
      cpr sylib mpjaodan simprd mtbird caddc cz 2z nn0zd zsubcld dvdsaddr mtbid
      sylancr 2cnd subaddd jca ) ACELMZNECOPZQMZUAZAWGDBOPZOPZRUBZWFWKNUBZAWLUF
      ZBDLMZWFAWOWLAWONWJQMZUAZJUCZSWNRWGLMZRWJLMZWFWOWNWGWJRLAWLWGWJUBAWGWJAEC
      AEIUDZACGUDZUGZADBADHUDZABFUDZUGZUEUHZUIAWFWSUJZWLACEACGUKZAEIUKZULZSAWOW
      TUJZWLABDABFUKZADHUKZULZSUMUNAWMUFZWFWSXPRWJWGXPUOAWJUPTWMADBXNXMUQZSAWGU
      PTWMAECXJXIUQZSXPWOWTAWOWMWRSAXLWMXOSUNWMARWKLMZWJWGLMZWMXSRNLMURWKNRLUSU
      TAXTXSAWJWGXQXRULVAVBVCAXHWMXKSVDAWKRNVJZTWLWMVEAEDOPCBOPOPWKYAAEDCBXAXDX
      BXEVFKVGWKRNWGWJOVHVIVKZVLAWLWIWMWNWHWPAWQWLAWOWQJVMZSWNWGWJNQXGUIVNXPNWJ
      NVOPZQMZWHAYEUAWMAWPYEYCANVPTWJVPTWPYEUJVQADBADHVRABFVRVSNWJVTWBWASXPYDWG
      NQAWMYDWGUBAWGWJNXCXFAWCWDUHUIWAYBVLWE $.
  $}

  ${
    signsv.p $e |- .+^ = ( a e. { -u 1 , 0 , 1 } , b e. { -u 1 , 0 , 1 }
      |-> if ( b = 0 , a , b ) ) $.
    signsv.w $e |- W = { <. ( Base ` ndx ) , { -u 1 , 0 , 1 } >. ,
      <. ( +g ` ndx ) , .+^ >. } $.
    signsv.t $e |- T = ( f e. Word RR |-> ( n e. ( 0 ..^ ( # ` f ) ) |->
      ( W gsum ( i e. ( 0 ... n ) |-> ( sgn ` ( f ` i ) ) ) ) ) ) $.
    signsv.v $e |- V = ( f e. Word RR |-> sum_ j e. ( 1 ..^ ( # ` f ) )
      if ( ( ( T ` f ) ` j ) =/= ( ( T ` f ) ` ( j - 1 ) ) , 1 , 0 ) ) $.

    ${
      $d f i n F $.  $d f W $.
      $( Value of the zero-skipping sign word.  (Contributed by Thierry Arnoux,
         8-Oct-2018.) $)
      signstfv $p |- ( F e. Word RR -> ( T ` F ) = ( n e. ( 0 ..^ ( # ` F ) )
        |-> ( W gsum ( i e. ( 0 ... n ) |-> ( sgn ` ( F ` i ) ) ) ) ) ) $=
        ( cc0 cfv cfzo co cmpt cv chash cfz csgn cgsu cr cword wceq oveq2d wcel
        fveq2 wa simpl fveq1d fveq2d mpteq2dva mpteq12dv ovex mptex fvmpt ) CGF
        PCUAZUBQZRSZIDPFUAUCSZDUAZVAQZUDQZTZUESZTFPGUBQZRSZIDVDVEGQZUDQZTZUESZT
        UFUGBVAGUHZFVCVIVKVOVPVBVJPRVAGUBUKUIVPVHVNIUEVPDVDVGVMVPVEVDUJZULZVFVL
        UDVRVEVAGVPVQUMUNUOUPUIUQNFVKVOPVJRURUSUT $.
    $}

    ${
      $d f i n F $.  $d i n N $.  $d f n W $.
      $( Value of the zero-skipping sign word.  (Contributed by Thierry Arnoux,
         8-Oct-2018.) $)
      signstfval $p |- ( ( F e. Word RR /\ N e. ( 0 ..^ ( # ` F ) ) )
        -> ( ( T ` F ) ` N )
           = ( W gsum ( i e. ( 0 ... N ) |-> ( sgn ` ( F ` i ) ) ) ) ) $=
        ( cc0 cfv co cgsu cr cword wcel chash cfzo wa cv cfz csgn cmpt cvv wceq
        signstfv adantr simpr oveq2d mpteq1d ovexd fvmptd ) GUAUBUCZHQGUDRUESZU
        CZUFZFHJDQFUGZUHSZDUGGRUIRZUJZTSZJDQHUHSZVFUJZTSVAGBRZUKUTVKFVAVHUJULVB
        ABCDEFGIJKLMNOPUMUNVCVDHULZUFZVGVJJTVMDVEVIVFVMVDHQUHVCVLUOUPUQUPUTVBUO
        VCJVJTURUS $.
    $}

    ${
      $d a b .+^ $.  $d f i n F $.  $d i n N $.  $d f i n W $.
      $( Closure of the zero skipping sign word.  (Contributed by Thierry
         Arnoux, 9-Oct-2018.) $)
      signstcl $p |- ( ( F e. Word RR /\ N e. ( 0 ..^ ( # ` F ) ) )
        -> ( ( T ` F ) ` N ) e. { -u 1 , 0 , 1 } ) $=
        ( cr wcel cc0 cfv cword chash cfzo co wa cfz cv csgn cmpt cgsu cneg ctp
        c1 signstfval signswbase cmnd signswmnd a1i cuz wss cn0 fzo0ssnn0 nn0uz
        sseqtri sselda cxr wf wrdf ad2antrr fzssfzo adantl ffvelrnd rexrd sgncl
        syl gsumncl eqeltrd ) GQUARZHSGUBTZUCUDZRZUEZHGBTTJDSHUFUDZDUGZGTZUHTZU
        IUJUDUMUKSUMULZABCDEFGHIJKLMNOPUNWBWFHDWGJSAJKLMNUOJUPRWBAJKLMNUQURVRVT
        SUSTZHVTWHUTVRVTVAWHVSVBVCVDURVEWBWDWCRZUEZWEVFRWFWGRWJWEWJVTQWDGVRVTQG
        VGWAWIQGVHVIWBWCVTWDWAWCVTUTVRHSVSVJVKVEVLVMWEVNVOVPVQ $.

      $( The zero skipping sign word is a word.  (Contributed by Thierry
         Arnoux, 8-Oct-2018.) $)
      signstf $p |- ( F e. Word RR -> ( T ` F ) e. Word RR ) $=
        ( cr wcel cc0 cfv c1 cword chash cfzo co wf cfz csgn cmpt cgsu signstfv
        cv wa cneg ctp wss neg1rr 0re 1re tpssi mp3an signswbase cmnd signswmnd
        a1i cuz cn0 fzo0ssnn0 nn0uz sseqtri sselda wrdf ad2antrr fzssfzo adantl
        cxr ffvelrnd rexrd sgncl syl gsumncl sseldi fmpt3d iswrdi ) GPUAZQZRGUB
        SZUCUDZPGBSZUEWHWDQWEFWGIDRFUKZUFUDZDUKZGSZUGSZUHUIUDZPWHABCDEFGHIJKLMN
        OUJWEWIWGQZULZTUMZRTUNZPWNWQPQRPQTPQWRPUOUPUQURWQRTPUSUTWPWMWIDWRIRAIJK
        LMVAIVBQWPAIJKLMVCVDWEWGRVESZWIWGWSUOWEWGVFWSWFVGVHVIVDVJWPWKWJQZULZWLV
        OQWMWRQXAWLXAWGPWKGWEWGPGUEWOWTPGVKVLWPWJWGWKWOWJWGUOWEWIRWFVMVNVJVPVQW
        LVRVSVTWAWBPWFWHWCVS $.

      $( Length of the zero skipping sign word.  (Contributed by Thierry
         Arnoux, 8-Oct-2018.) $)
      signstlen $p |- ( F e. Word RR -> ( # ` ( T ` F ) ) = ( # ` F ) ) $=
        ( cr wcel cfv chash co cword cc0 cfzo wfn wceq csgn cmpt cgsu ovex eqid
        cfz fnmpti signstfv fneq1d mpbiri hashfn syl cn0 lencl hashfzo0 eqtrd
        cv ) GPUAQZGBRZSRZUBGSRZUCTZSRZVFVCVDVGUDZVEVHUEVCVIFVGIDUBFVBUKTDVBGRU
        FRUGZUHTZUGZVGUDFVGVKVLIVJUHUIVLUJULVCVGVDVLABCDEFGHIJKLMNOUMUNUOVGVDUP
        UQVCVFURQVHVFUEPGUSVFUTUQVA $.

      $d f i n K $.
      $( Sign of a single letter word.  (Contributed by Thierry Arnoux,
         8-Oct-2018.) $)
      signstf0 $p |- ( K e. RR -> ( T ` <" K "> ) = <" ( sgn ` K ) "> ) $=
        ( cr wcel cc0 cfv wceq cs1 chash cfzo co cv cfz csgn cmpt cgsu c1 s1len
        csn oveq2i fzo01 eqtri a1i wa simpr syl6eleq velsn sylib oveq2 cz ax-mp
        0z fzsn syl6eq mpteq1d oveq2d adantl cmnd cneg ctp signswmnd 0re cxr id
        s1fv eqeltrd rexrd sgncl signswbase fveq2d gsumsn syl3anc adantr 3eqtrd
        syl fveq2 syldan mpteq12dva cword signstfv sgnclre s1val fmptsn sylancr
        s1cl cop eqtrd 3eqtr4d ) GPQZFRGUAZUBSZUCUDZIDRFUEZUFUDZDUEZXCSZUGSZUHZ
        UIUDZUHZFRULZGUGSZUHZXCBSZXOUAZXBFXEXLXNXOXEXNTXBXERUJUCUDXNXDUJRUCGUKU
        MUNUOZUPXBXFXEQZXFRTZXLXOTXBXTUQZXFXNQYAYBXFXEXNXBXTURXSUSFRUTVAXBYAUQX
        LIDXNXJUHZUIUDZRXCSZUGSZXOYAXLYDTXBYAXKYCIUIYADXGXNXJYAXGRRUFUDZXNXFRRU
        FVBRVCQYGXNTVERVFVDVGVHVIVJXBYDYFTZYAXBIVKQZRPQZYFUJVLRUJVMZQZYHYIXBAIJ
        KLMVNUPYJXBVOUPXBYEVPQYLXBYEXBYEGPGPVRZXBVQVSVTYEWAWHXJYKYFDIRPAIJKLMWB
        XHRTXIYEUGXHRXCWIWCWDWEWFXBYFXOTYAXBYEGUGYMWCWFWGWJWKXBXCPWLQXQXMTGPWRA
        BCDEFXCHIJKLMNOWMWHXBXRRXOWSULZXPXBXOPQZXRYNTGWNZXOPWOWHXBYJYOYNXPTVOYP
        FRXOPPWPWQWTXA $.
    $}

    $d a b .+^ $.  $d f i n F $.  $d f i n K $.  $d f i n W $.
    $( Zero-skipping sign in a word compared to a shorter word.  (Contributed
       by Thierry Arnoux, 8-Oct-2018.) $)
    signstfvn $p |- ( ( F e. ( Word RR \ { (/) } ) /\ K e. RR )
      -> ( ( T ` ( F ++ <" K "> ) ) ` ( # ` F ) )
        = ( ( ( T ` F ) ` ( ( # ` F ) - 1 ) ) .+^ ( sgn ` K ) ) ) $=
      ( wcel cc0 cfv co cr cword c0 csn cdif wa chash cfz cs1 cconcat csgn cmpt
      cv cgsu c1 cmin caddc cneg ctp signswbase signswmnd a1i cn0 cuz cn eldifi
      cmnd wne lencl syl eldifsn hasheq0 necon3bid biimpar sylbi elnnne0 adantr
      sylanbrc nnm1nn0 nn0uz syl6eleq cxr cfzo wf s1cl ccatcl syl2an wrdf nn0zd
      wceq fzoval fzossfz syl6eqssr ccatlen s1len oveq2i syl6eq oveq2d peano2zd
      nn0cnd 1cnd pncand 3eqtrd sseqtr4d ffvelrnd rexrd sgncl signswplusg simpr
      cz sselda npcand eqtrd fveq2d c0ex snid eleqtrri ccatval3 syl3anc addid2d
      fzo01 3eqtr3d gsumnunsn mpteq1d eleq2d ccatval1 mpteq2dva oveq1d wo eqidd
      s1fv olcd fzosplitsni mpbird eleqtrrd signstfval syl2anc fzo0end 3eqtr4d
      wb ) GUAUBZUCUDZUEQZHUAQZUFZJDRGUGSZUHTZDUMZGHUIZUJTZSZUKSZULZUNTZJDRUUFU
      OUPTZUHTZUUHGSZUKSZULZUNTZHUKSZATZUUFUUJBSSZUUOGBSSZUVAATUUEJDRUUOUOUQTZU
      HTZUULULZUNTJDUUPUULULZUNTZUVAATUUNUVBUUEUULUVAUUOADUOURRUOUSZJRAJKLMNUTJ
      VGQUUEAJKLMNVAVBUUEUUOVCRVDSZUUEUUFVEQZUUOVCQUUCUVLUUDUUCUUFVCQZUUFRVHZUV
      LUUCGUUAQZUVMGUUAUUBVFZUAGVIVJZUUCUVOGUCVHZUFUVNGUUAUCVKUVOUVNUVRUVOUUFRG
      UCGUUAVLVMVNVOUUFVPVRZVQUUFVSVJVTWAUUEUUHUUPQZUFZUUKWBQUULUVJQUWAUUKUWARU
      UJUGSZWCTZUAUUHUUJUWAUUJUUAQZUWCUAUUJWDUUEUWDUVTUUCUVOUUIUUAQZUWDUUDUVPHU
      AWEZUAGUUIWFWGZVQUAUUJWHVJUUEUUPUWCUUHUUEUUPUUGUWCUUEUUPRUUFWCTZUUGUUEUUF
      XJQUWHUUPWJUUEUUFUUCUVMUUDUVQVQZWIZRUUFWKVJZRUUFWLWMUUEUWCRUUFUOUQTZWCTZR
      UWLUOUPTZUHTZUUGUUEUWBUWLRWCUUEUWBUUFUUIUGSZUQTZUWLUUCUVOUWEUWBUWQWJUUDUV
      PUWFUAGUUIWNWGUWPUOUUFUQHWOZWPWQWRZUUEUWLXJQUWMUWOWJUUEUUFUWJWSRUWLWKVJUU
      EUWNUUFRUHUUEUUFUOUUEUUFUWIWTZUUEXAZXBWRXCXDXKXEXFUUKXGVJAJKLMNXHUUEHWBQU
      VAUVJQUUEHUUCUUDXIZXFHXGVJUUEUUHUVEWJZUFZUUKHUKUXDUUKUUFUUJSZHUXDUUHUUFUU
      JUXDUUHUVEUUFUUEUXCXIUUEUVEUUFWJUXCUUEUUFUOUWTUXAXLZVQXMXNUUEUXEHWJUXCUUE
      RUUFUQTZUUJSZRUUISZUXEHUUEUVOUWERRUWPWCTZQZUXHUXIWJUUCUVOUUDUVPVQZUUEUUDU
      WEUXBUWFVJZUXKUUERRUOWCTZUXJRRUDUXNRXOXPYAXQUWPUORWCUWRWPXQVBUAGUUIRXRXSU
      UEUXGUUFUUJUUEUUFUWTXTXNUUEUUDUXIHWJUXBHUAYKVJYBVQXMXNYCUUEUVGUUMJUNUUEDU
      VFUUGUULUUEUVEUUFRUHUXFWRYDWRUUEUVIUUTUVAAUUEUVHUUSJUNUUEDUUPUULUURUWAUUK
      UUQUKUWAUVOUWEUUHUWHQZUUKUUQWJUUEUVOUVTUXLVQUUEUWEUVTUXMVQUUEUXOUVTUUEUWH
      UUPUUHUWKYEVNUAGUUIUUHYFXSXNYGWRYHYBUUEUWDUUFUWCQUVCUUNWJUWGUUEUUFUWMUWCU
      UEUUFUWMQZUUFUWHQZUUFUUFWJZYIZUUEUXRUXQUUEUUFYJYLUUEUUFUVKQUXPUXSYTUUEUUF
      VCUVKUWIVTWARUUFUUFYMVJYNUWSYOABCDEFUUJUUFIJKLMNOPYPYQUUEUVDUUTUVAAUUCUVD
      UUTWJZUUDUUCUVOUUOUWHQZUXTUVPUUCUVLUYAUVSUUFYRVJABCDEFGUUOIJKLMNOPYPYQVQY
      HYS $.

    ${
      $d a b F $.  $d a b f i n N $.  $d a b T $.
      signsvtn0.1 $e |- N = ( # ` F ) $.
      $( If the last letter is non zero, then this is the zero-skipping sign.
         (Contributed by Thierry Arnoux, 8-Oct-2018.) $)
      signsvtn0 $p |- ( ( F e. ( Word RR \ { (/) } ) /\ ( F ` ( N - 1 ) ) =/= 0
        ) -> ( ( T ` F ) ` ( N - 1 ) ) = ( sgn ` ( F ` ( N - 1 ) ) ) ) $=
        ( wcel cc0 wceq cr cword c0 csn cdif c1 cmin co cfv wne csgn chash cfzo
        wa cs1 wf eldifsn biimpi adantr simpld wrdf syl lennncl lbfzo0 ffvelrnd
        cn sylibr signstf0 simpr syl5eqr eqs1 syl2anc fveq2d oveq1 1m1e0 syl6eq
        s1eqd 3eqtr4d fveq12d cneg ctp oveq1i fzo0end 3syl syl5eqel rexrd sgncl
        cxr s1fv eqtrd cres cconcat cop csubstr clsw cfz sseldi swrd0val oveq1d
        fzossfz swrdccatwrd eqcomd oveq2i a1i reseq2d lsw eqtr4d oveq12d oveq2d
        wfn wss ffn fneq2d mpbird cn0 cz nnnn0d nn0z fzossrbm1 fnssres hashfzo0
        hashfn nnm1nn0 swrdcl eqeltrrd nncnd 1cnd subne0d eqnetrd fveq2 necon3i
        hash0 signstfvn signstcl sgn0bi necon3bid biimpar signswlid syl21anc
        jca 3eqtrd pm2.61dane ) GUAUBZUCUDUEZRZHUFUGUHZGUIZSUJZUNZUUFGBUIZUIZUU
        GUKUIZTHUFUUIHUFTZUNZUUKSUULUOZUIZUULUUNUUFSUUJUUOUUNSGUIZUOZBUIZUUQUKU
        IZUOZUUJUUOUUNUUQUARUUSUVATUUNSGULUIZUMUHZUASGUUNGUUCRZUVCUAGUPZUUIUVDU
        UMUUIUVDGUCUJZUUEUVDUVFUNZUUHUUEUVGGUUCUCUQURUSZUTZUSZUAGVAZVBUUNUVBVFR
        ZSUVCRUUIUVLUUMUUIUVGUVLUVHUAGVCZVBZUSUVBVDVGVEABCDEFUUQIJKLMNOPVHVBUUN
        GUURBUUNUVDUVBUFTGUURTUVJUUNUVBHUFQUUIUUMVIZVJUAGVKVLVMUUNUUMUUOUVATUVO
        UUMUULUUTUUMUUGUUQUKUUMUUFSGUUMUUFUFUFUGUHSHUFUFUGVNVOVPZVMVMVQVBVRUUNU
        UMUUFSTUVOUVPVBVSUUNUULUFVTSUFWAZRZUUPUULTUUIUVRUUMUUIUUGWHRZUVRUUIUUGU
        UIUVCUAUUFGUUIUVDUVEUVIUVKVBUUIUUFUVBUFUGUHZUVCHUVBUFUGQWBZUUIUVGUVLUVT
        UVCRUVHUVMUVBWCWDZWEVEZWFZUUGWGVBZUSUULUVQWIVBWJUUIHUFUJZUNZUUKGSUUFUMU
        HZWKZULUIZUWIUUGUOZWLUHZBUIZUIZUWJUFUGUHZUWIBUIUIZUULAUHZUULUUIUUKUWNTU
        WFUUIUUFUWJUUJUWMUUIGUWLBUUIGSUVTWMWNUHZGWOUIZUOZWLUHZGSUVTUMUHZWKZUWTW
        LUHGUWLUUIUWRUXCUWTWLUUIUVDUVTSUVBWPUHZRUWRUXCTUVIUUIUVCUXDUVTSUVBWTUWB
        WQUAGUVTWRVLZWSUUIUVGGUXATUVHUVGUXAGUAGXAXBVBUUIUWIUXCUWKUWTWLUUIUWHUXB
        GUWHUXBTUUIUUFUVTSUMUWAXCXDXEZUUIUUGUWSUUIUUGUVTGUIZUWSUUIUUFUVTGUUFUVT
        TUUIUWAXDVMUUEUWSUXGTUUHGUUDXFUSXGVQXHVRVMUUIUWJUUFUUIUWJUWHULUIZUUFUUI
        UWIUWHXJZUWJUXHTUUIGSHUMUHZXJZUWHUXJXKZUXIUUIUXKGUVCXJZUUIUVDUVEUXMUVIU
        VKUVCUAGXLWDUUIUXJUVCGUUIHUVBSUMHUVBTUUIQXDXIXMXNUUIHXORHXPRUXLUUIHUUIH
        UVBVFQUVNWEZXQHXRHXSWDUXJUWHGXTVLUWHUWIYBVBUUIHVFRZUUFXORUXHUUFTUXNHYCU
        UFYAWDWJZXBVSUSUWGUWIUUDRZUUGUARZUWNUWQTUWGUWIUUCRZUWIUCUJZUNZUXQUWGUXS
        UXTUUIUXSUWFUUIUWRUWIUUCUUIUWRUXCUWIUXEUXFXGUUIUVDUWRUUCRUVIUAGSUVTYDVB
        YEUSZUWGUWJSUJUXTUWGUWJUUFSUUIUWJUUFTUWFUXPUSUWGHUFUWGHUUIUXOUWFUXNUSYF
        UWGYGUUIUWFVIYHYIUWIUCUWJSUWIUCTUWJUCULUISUWIUCULYJYLVPYKVBYTZUWIUUCUCU
        QVGUUIUXRUWFUWCUSABCDEFUWIUUGIJKLMNOPYMVLUWGUWPUVQRZUVRUULSUJZUWQUULTUW
        GUXSUWOSUWJUMUHRZUYDUYBUWGUYAUWJVFRUYFUYCUAUWIVCUWJWCWDABCDEFUWIUWOIJKL
        MNOPYNVLUUIUVRUWFUWEUSUUIUYEUWFUUIUVSUUHUYEUWDUUEUUHVIUVSUYEUUHUVSUULSU
        UGSUUGYOYPYQVLUSAJUWPUULKLMNYRYSUUAUUB $.
    $}

    ${
      $d i n N $.
      $( Zero-skipping sign in a word compared to a shorter word.  (Contributed
         by Thierry Arnoux, 8-Oct-2018.) $)
      signstfvp $p |- ( ( F e. Word RR /\ K e. RR /\ N e. ( 0 ..^ ( # ` F ) ) )
        -> ( ( T ` ( F ++ <" K "> ) ) ` N ) = ( ( T ` F ) ` N ) ) $=
        ( wcel cfv co cr cword cc0 chash cfzo w3a cfz cv cconcat csgn cmpt cgsu
        cs1 wa wceq simp1 adantr 3ad2ant2 wss simp3 fzssfzo syl sselda ccatval1
        syl3anc fveq2d mpteq2dva oveq2d ccatcl syl2anc c1 caddc cuz lencl nn0zd
        s1cl cz uzid peano2uz fzoss2 4syl 3ad2ant1 sseldd ccatlen oveq2i syl6eq
        s1len eleqtrrd signstfval 3eqtr4d ) GUAUBZRZHUARZIUCGUDSZUETZRZUFZKDUCI
        UGTZDUHZGHUMZUITZSZUJSZUKZULTZKDWRWSGSZUJSZUKZULTZIXABSSZIGBSSZWQXDXHKU
        LWQDWRXCXGWQWSWRRZUNZXBXFUJXMWLWTWKRZWSWORXBXFUOWQWLXLWLWMWPUPZUQWQXNXL
        WMWLXNWPHUAVPURZUQWQWRWOWSWQWPWRWOUSWLWMWPUTZIUCWNVAVBVCUAGWTWSVDVEVFVG
        VHWQXAWKRZIUCXAUDSZUETZRXJXEUOWQWLXNXRXOXPUAGWTVIVJWQIUCWNVKVLTZUETZXTW
        QWOYBIWLWMWOYBUSZWPWLWNVQRWNWNVMSZRYAYDRYCWLWNUAGVNVOWNVRWNWNVSWNUCYAVT
        WAWBXQWCWQXSYAUCUEWQXSWNWTUDSZVLTZYAWQWLXNXSYFUOXOXPUAGWTWDVJYEVKWNVLHW
        GWEWFVHWHABCDEFXAIJKLMNOPQWIVJWQWLWPXKXIUOXOXQABCDEFGIJKLMNOPQWIVJWJ $.

      $d e f i k m n $.  $d g m F $.  $d m N $.  $d a b e g k m n T $.
      $( In case the first letter is not zero, the zero skipping sign is never
         zero.  (Contributed by Thierry Arnoux, 10-Oct-2018.) $)
      signstfvneq0 $p |- ( ( ( F e. ( Word RR \ { (/) } ) /\ ( F ` 0 ) =/= 0 )
        /\ N e. ( 0 ..^ ( # ` F ) ) ) -> ( ( T ` F ) ` N ) =/= 0 ) $=
        ( c0 cc0 cfv wa vm vg ve vk cr cword csn cdif wcel chash cfzo co simpll
        wne eldifad eldifsni ad2antrr simplr jca simpr cv simprr wi cs1 cconcat
        wral neeq1 fveq1 neeq1d anbi12d oveq2d fveq1d raleqbidv imbi12d intnanr
        wceq fveq2 neirr pm2.21i cbvralv imbi2i anbi2i noel hash0 syl6eq eleq2d
        wn mtbiri adantl pm2.21dd simp-6l simp-6r signstfvp syl3anc simplll w3a
        fzo0 simplrr 3anassrs s1cld cmin lennncl adantlr fzo0end elfzolt3b 3syl
        cn c1 ccatval1 biimpa syl21anc simp-5r mp2and rspcva syl2anc pm2.61dane
        eqnetrd fveq2d simp-4r simplrl simprd csgn s1cl ccatlid sylan9eq adantr
        oveq1 syl signstf0 eqtrd fveq12d sgnclre s1fv cxr rexr sgn0bi necon3bid
        wb simpllr adantllr biimpar velsn sylnibr eldifd signstfvn ctp signstcl
        cneg neqned rexrd sgncl signswn0 pm2.61dan anassrs caddc wo lencl nn0uz
        cuz cn0 syl6eleq ad4antr ccatws1len fzosplitsni ralrimiva sylanbr exp31
        mpjaodan wrdind imp adantrr syl12anc ) GUEUFZQUGZUHZUIZRGSZRUNZTZHRGUJS
        ZUKULZUIZTZGUVMUIZGQUNZUVRTZUWBHGBSZSZRUNZUWCGUVMUVNUVPUVRUWBUMUOUWCUWE
        UVRUVPUWEUVRUWBGUVMQUPUQUVPUVRUWBURUSUVSUWBUTUWDUWFUWBTTUWBUAVAZUWGSZRU
        NZUAUWAVFZUWIUWDUWFUWBVBUWDUWFUWMUWBUWDUWFUWMUBVAZQUNZRUWNSZRUNZTZUWJUW
        NBSZSZRUNZUARUWNUJSZUKULZVFZVCQQUNZRQSZRUNZTZUWJQBSZSZRUNZUARQUJSZUKULZ
        VFZVCUCVAZQUNZRUXOSZRUNZTZUWJUXOBSZSZRUNZUARUXOUJSZUKULZVFZVCZUXOUDVAZV
        DZVEULZQUNZRUYISZRUNZTZUWJUYIBSZSZRUNZUARUYIUJSZUKULZVFZVCUWFUWMVCUBUCU
        DGUEUWNQVPZUWRUXHUXDUXNUYTUWOUXEUWQUXGUWNQQVGUYTUWPUXFRRUWNQVHVIVJUYTUX
        AUXKUAUXCUXMUYTUXBUXLRUKUWNQUJVQVKUYTUWTUXJRUYTUWJUWSUXIUWNQBVQVLVIVMVN
        UWNUXOVPZUWRUXSUXDUYEVUAUWOUXPUWQUXRUWNUXOQVGVUAUWPUXQRRUWNUXOVHVIVJVUA
        UXAUYBUAUXCUYDVUAUXBUYCRUKUWNUXOUJVQVKVUAUWTUYARVUAUWJUWSUXTUWNUXOBVQVL
        VIVMVNUWNUYIVPZUWRUYMUXDUYSVUBUWOUYJUWQUYLUWNUYIQVGVUBUWPUYKRRUWNUYIVHV
        IVJVUBUXAUYPUAUXCUYRVUBUXBUYQRUKUWNUYIUJVQVKVUBUWTUYORVUBUWJUWSUYNUWNUY
        IBVQVLVIVMVNUWNGVPZUWRUWFUXDUWMVUCUWOUWEUWQUVRUWNGQVGVUCUWPUVQRRUWNGVHV
        IVJVUCUXAUWLUAUXCUWAVUCUXBUVTRUKUWNGUJVQVKVUCUWTUWKRVUCUWJUWSUWGUWNGBVQ
        VLVIVMVNUXHUXNUXEUXGQVRVOVSUXOUVMUIZUYGUEUIZTZUYFUYMUYSVUFUYFTVUFUXSFVA
        ZUXTSZRUNZFUYDVFZVCZTZUYMUYSVUKUYFVUFVUJUYEUXSVUIUYBFUAUYDVUGUWJVPVUHUY
        ARVUGUWJUXTVQVIZVTWAWBVULUYMTZUYPUAUYRVUNUWJUYRUIZTZUWJUYDUIZUYPUWJUYCV
        PZVUPVUQTZUYPUXOQVUSUXOQVPZTVUQUYPVUPVUQVUTURVUTVUQWGVUSVUTVUQUWJQUIUWJ
        WCVUTUYDQUWJVUTUYDRRUKULQVUTUYCRRUKVUTUYCUXLRUXOQUJVQWDWEZVKRWQWEWFWHWI
        WJVUSUXPTZUYOUYARVVBVUDVUEVUQUYOUYAVPVUDVUEVUKUYMVUOVUQUXPWKVUDVUEVUKUY
        MVUOVUQUXPWLVUPVUQUXPURZABCDEFUXOUYGUWJIJKLMNOPWMWNVVBVUQVUJUYBVVCVVBUX
        PUXRVUJVUSUXPUTZVVBVUFUXPUYLUXRVUPVUFVUQUXPVUFVUKUYMVUOWOZUQVVDVUNVUOVU
        QUXPUYLVULUYJUYLVUOVUQUXPWPWRWSVUFUXPTZUYLUXRVVFUYKUXQRVVFVUDUYHUVMUIZR
        UYDUIZUYKUXQVPVUDVUEUXPUMVVFUYGUEVUDVUEUXPURWTVVFUYCXGUIZUYCXHXAULZUYDU
        IZVVHVUDUXPVVIVUEUEUXOXBZXCUYCXDZVVJRUYCXEXFUEUXOUYHRXIWNVIXJZXKVUFVUKU
        YMVUOVUQUXPXLXMVUIUYBFUWJUYDVUMXNXOXQXPVUPVURTZUYOUYCUYNSZRVVOUWJUYCUYN
        VUPVURUTXRVUPVVPRUNZVURVULUYMVUOVVQVULUYMVUOTZTZVUTVVQVVSVUTTZVUTVUEUYL
        VVQVVSVUTUTVUDVUEVUKVVRVUTXSVVTUYJUYLVULUYMVUOVUTXTYAVUTVUETZUYLTZVVPUY
        GYBSZRVWBVVPRVWCVDZSZVWCVWBUYCRUYNVWDVWBUYNUYHBSZVWDVWAUYNVWFVPUYLVWAUY
        IUYHBVUTVUEUYIQUYHVEULZUYHUXOQUYHVEYGVUEVVGVWGUYHVPUYGUEYCUEUYHYDYHYEZX
        RYFVWBVUEVWFVWDVPVUTVUEUYLURZABCDEFUYGIJKLMNOPYIYHYJVUTUYCRVPVUEUYLVVAU
        QYKVWBVUEVWCUEUIVWEVWCVPVWIUYGYLVWCUEYMXFYJVWBVUEUYGRUNZVWCRUNZVWIVWAUY
        LVWJVWAUYKUYGRVWAUYKRUYHSZUYGVWARUYIUYHVWHVLVUEVWLUYGVPVUTUYGUEYMWIYJVI
        XJVUEVWKVWJVUEVWCRUYGRVUEUYGYNUIZVWCRVPUYGRVPYRUYGYOUYGYPYHYQUUAXOXQXKV
        VSVUTWGZTZVVPVVJUXTSZVWCAULZRVUFVVRVWNVVPVWQVPZVUKVUFVVRTZVWNTZUXOUVOUI
        VUEVWRVWTUXOUVMUVNVUDVUEVVRVWNWOZVWTVUTUXOUVNUIVWSVWNUTZUCQUUBUUCUUDVUD
        VUEVVRVWNYSZABCDEFUXOUYGIJKLMNOPUUEXOYTVWOVWPXHUUHRXHUUFZUIZVWCVXDUIZVW
        PRUNZVWQRUNVUFVVRVWNVXEVUKVWTVUDVVKVXEVXAVWTVVIVVKVWTVUDUXPVVIVXAVWTUXO
        QVXBUUIZVVLXOVVMYHZABCDEFUXOVVJIJKLMNOPUUGXOYTVUFVVRVWNVXFVUKVWTVWMVXFV
        WTUYGVXCUUJUYGUUKYHYTVWOVVKVUJVXGVUFVVRVWNVVKVUKVXIYTVWOUXPUXRVUJVUFVVR
        VWNUXPVUKVXHYTZVWOVUFUXPUYLUXRVUFVUKVVRVWNWOVXJVWOUYJUYLVULUYMVUOVWNXTY
        AVVNXKVUFVUKVVRVWNYSXMVUIVXGFVVJUYDVUGVVJVPVUHVWPRVUGVVJUXTVQVIXNXOAJVW
        PVWCKLMNUULXKXQUUMUUNYFXQVUPUYCRUUSSZUIZUWJRUYCXHUUOULZUKULZUIZVUQVURUU
        PZVUDVXLVUEVUKUYMVUOVUDUYCUUTVXKUEUXOUUQUURUVAUVBVUPVUFVUOVXOVVEVUNVUOU
        TVUFVUOVXOVUFUYRVXNUWJVUFUYQVXMRUKUEUXOUYGUVCVKWFXJXOVXLVXOVXPRUYCUWJUV
        DXJXOUVHUVEUVFUVGUVIUVJUVKUWLUWIUAHUWAUWJHVPUWKUWHRUWJHUWGVQVIXNXOUVL
        $.

      $( Closure of the zero skipping sign in case the first letter is not
         zero.  (Contributed by Thierry Arnoux, 10-Oct-2018.) $)
      signstfvcl $p |- ( ( ( F e. ( Word RR \ { (/) } ) /\ ( F ` 0 ) =/= 0 )
        /\ N e. ( 0 ..^ ( # ` F ) ) ) -> ( ( T ` F ) ` N ) e. { -u 1 , 1 } ) $=
        ( wcel cc0 cfv c1 cr cword c0 csn cdif wne wa chash cfzo co cneg simpll
        ctp cpr eldifad signstcl sylancom signstfvneq0 eldifsn sylanbrc difeq1i
        tpcomb wceq neg1ne0 ax-1ne0 diftpsn3 mp2an eqtri syl6eleq ) GUAUBZUCUDZ
        UEQZRGSRUFZUGZHRGUHSUIUJQZUGZHGBSSZTUKZRTUMZRUDZUEZVRTUNZVPVQVSQZVQRUFV
        QWAQVNVOGVJQWCVPGVJVKVLVMVOULUOABCDEFGHIJKLMNOPUPUQABCDEFGHIJKLMNOPURVQ
        VSRUSUTWAVRTRUMZVTUEZWBVSWDVTVRRTVBVAVRRUFTRUFWEWBVCVDVEVRTRVFVGVHVI $.
    $}

    ${
      $d e f g i k n F $.  $d g G $.  $d e g i k n N $.  $d e g k T $.
      $( Zero-skipping sign in a word compared to a shorter word.  (Contributed
         by Thierry Arnoux, 11-Oct-2018.) $)
      signstfvc $p |- ( ( F e. Word RR /\ G e. Word RR
        /\ N e. ( 0 ..^ ( # ` F ) ) )
        -> ( ( T ` ( F ++ G ) ) ` N ) = ( ( T ` F ) ` N ) ) $=
        ( wcel cfv wceq vg ve vk cr cword cc0 chash cfzo co cconcat wa cv wi c0
        cs1 oveq2 fveq2d fveq1d eqeq1d imbi2d adantr simprl simpll simplr s1cld
        ccatrid ccatass syl3anc ccatcl syl2anc cuz wss cz cle wbr cn0 lencl syl
        nn0zd caddc nn0red nn0addge1 ccatlen breqtrrd eluz2 syl3anbrc signstfvp
        fzoss2 simprr sseldd eqtr3d simpr eqtrd exp31 a2d wrdind 3impib 3com12
        ) HUDUEZRZGWSRZIUFGUGSZUHUIZRZIGHUJUIZBSZSZIGBSZSZTZWTXAXDXJXAXDUKZIGUA
        ULZUJUIZBSZSZXITZUMXKIGUNUJUIZBSZSZXITZUMXKIGUBULZUJUIZBSZSZXITZUMXKIGY
        AUCULZUOZUJUIZUJUIZBSZSZXITZUMXKXJUMUAUBUCHUDXLUNTZXPXTXKYMXOXSXIYMIXNX
        RYMXMXQBXLUNGUJUPUQURUSUTXLYATZXPYEXKYNXOYDXIYNIXNYCYNXMYBBXLYAGUJUPUQU
        RUSUTXLYHTZXPYLXKYOXOYKXIYOIXNYJYOXMYIBXLYHGUJUPUQURUSUTXLHTZXPXJXKYPXO
        XGXIYPIXNXFYPXMXEBXLHGUJUPUQURUSUTXAXTXDXAIXRXHXAXQGBUDGVFUQURVAYAWSRZY
        FUDRZUKZXKYEYLYSXKYEYLYSXKUKZYEUKYKYDXIYTYKYDTYEYTIYBYGUJUIZBSZSZYKYDYT
        IUUBYJYTUUAYIBYTXAYQYGWSRUUAYITYSXAXDVBZYQYRXKVCZYTYFUDYQYRXKVDZVEUDGYA
        YGVGVHUQURYTYBWSRZYRIUFYBUGSZUHUIZRUUCYDTYTXAYQUUGUUDUUEUDGYAVIVJZUUFYT
        XCUUIIYTUUHXBVKSRZXCUUIVLYTXBVMRUUHVMRXBUUHVNVOUUKYTXBYTXAXBVPRUUDUDGVQ
        VRZVSYTUUHYTUUGUUHVPRUUJUDYBVQVRVSYTXBXBYAUGSZVTUIZUUHVNYTXBUDRUUMVPRZX
        BUUNVNVOYTXBUULWAYTYQUUOUUEUDYAVQVRXBUUMWBVJYTXAYQUUHUUNTUUDUUEUDGYAWCV
        JWDXBUUHWEWFXBUFUUHWHVRYSXAXDWIWJABCDEFYBYFIJKLMNOPQWGVHWKVAYTYEWLWMWNW
        OWPWQWR $.
    $}

    ${
      $d g i m n F $.  $d f g i m n N $.  $d g m T $.
      $( Restriction of a zero skipping sign to a subword.  (Contributed by
         Thierry Arnoux, 11-Oct-2018.) $)
      signstres $p |- ( ( F e. Word RR /\ N e. ( 0 ... ( # ` F ) ) )
        -> ( ( T ` F ) |` ( 0 ..^ N ) ) = ( T ` ( F |` ( 0 ..^ N ) ) ) ) $=
        ( cr wcel cc0 cfv vm vg cword chash cfz co wa cfzo cres cin wfn signstf
        wf wrdf ffn signstlen oveq2d fneq2d mpbid fnresin syl adantr wss wb cuz
        3syl elfzuz3 fzoss2 adantl incom wceq df-ss biimpi syl5eqr wrdres wrdfn
        4syl fnssres syl2an hashfn cn0 elfznn0 hashfzo0 3eqtrd cv cconcat fvres
        ad3antlr simpr fveq2d fveq1d ad3antrrr simplr eleq2d ad2antrr signstfvc
        eqtrd biimpar syl3anc wrex wrdsplex r19.29a eqfnfvd ) GQUCZRZHSGUDTZUEU
        FRZUGZUASHUHUFZGBTZXIUIZGXIUIZBTZXHXKSXFUHUFZXIUJZUKZXKXIUKZXEXPXGXEXJX
        NUKZXPXEXJSXJUDTZUHUFZUKZXRXEXJXDRXTQXJUMYAABCDEFGIJKLMNOPULQXJUNXTQXJU
        OVFXEXTXNXJXEXSXFSUHABCDEFGIJKLMNOPUPUQURUSXNXIXJUTVAVBXHXIXNVCZXPXQVDX
        GYBXEXGXFHVETRYBHSXFVGHSXFVHVAZVIYBXOXIXKYBXOXIXNUJZXIXIXNVJYBYDXIVKXIX
        NVLVMVNURVAUSXHXMSXMUDTZUHUFZUKZXMXIUKXHXLXDRZXMXDRYFQXMUMYGQHGVOZABCDE
        FXLIJKLMNOPULQXMUNYFQXMUOVQXHYFXIXMXHYEHSUHXHYEXLUDTZXIUDTZHXHYHYEYJVKY
        IABCDEFXLIJKLMNOPUPVAXHXLXIUKZYJYKVKXEGXNUKYBYLXGQGVPYCXNXIGVRVSXIXLVTV
        AZXGYKHVKZXEXGHWARYNHXFWBHWCVAVIZWDUQURUSXHUAWEZXIRZUGZGXLUBWEZWFUFZVKZ
        YPXKTZYPXMTZVKUBXDYRYSXDRZUGZUUAUGZUUBYPXJTZYPYTBTZTZUUCYQUUBUUGVKXHUUD
        UUAYPXIXJWGWHUUFYPXJUUHUUFGYTBUUEUUAWIWJWKUUFYHUUDYPSYJUHUFZRZUUIUUCVKX
        HYHYQUUDUUAYIWLYRUUDUUAWMYRUUKUUDUUAXHUUKYQXHUUJXIYPXHYJHSUHXHYJYKHYMYO
        WQUQWNWRWOABCDEFXLYSYPIJKLMNOPWPWSWDXHUUAUBXDWTYQUBQHGXAVBXBXC $.
    $}

    ${
      $d a b F $.  $d a b f i n N $.  $d a b T $.
      signstfveq0.1 $e |- N = ( # ` F ) $.
      $( Lemma for ~ signstfveq0 .  (Contributed by Thierry Arnoux,
         11-Oct-2018.) $)
      signstfveq0a $p |- ( ( ( F e. ( Word RR \ { (/) } ) /\ ( F ` 0 ) =/= 0 )
        /\ ( F ` ( N - 1 ) ) = 0 ) -> N e. ( ZZ>= ` 2 ) ) $=
        ( cc0 wne c1 cr cword c0 csn cdif wcel cfv wa cmin co wceq cn c2 simpll
        cuz cn0 eldifad chash lencl syl eldifsn sylib hasheq0 necon3bid biimpar
        syl5eqel neeq1i sylibr elnnne0 sylanbrc simplr simpr necomd oveq1 1m1e0
        neeqtrrd syl6eq fveq2d necon3i eluz2b3 ) GUAUBZUCUDZUEUFZRGUGZRSZUHZHTU
        IUJZGUGZRUKZUHZHULUFZHTSZHUMUOUGUFWJHUPUFZHRSZWKWJGWAUFZWMWJGWAWBWCWEWI
        UNZUQWOHGURUGZUPQUAGUSVFUTWJWOGUCSZUHZWNWJWCWSWPGWAUCVAVBWSWQRSZWNWOWTW
        RWOWQRGUCGWAVCVDVEHWQRQVGVHUTHVIVJWJWHWDSWLWJWDWHWJWDRWHWCWEWIVKWFWIVLV
        PVMHTWHWDHTUKZWGRGXAWGTTUIUJRHTTUIVNVOVQVRVSUTHVTVJ $.

      $( In case the last letter is zero, the zero skipping sign is the same as
         the previous letter.  (Contributed by Thierry Arnoux, 11-Oct-2018.) $)
      signstfveq0 $p |- ( ( ( F e. ( Word RR \ { (/) } ) /\ ( F ` 0 ) =/= 0 )
          /\ ( F ` ( N - 1 ) ) = 0 )
        -> ( ( T ` F ) ` ( N - 1 ) ) = ( ( T ` F ) ` ( N - 2 ) ) ) $=
        ( wcel cc0 c1 cr cword c0 csn cdif cfv wne wa cmin co cop csubstr chash
        wceq cs1 cconcat csgn c2 simpll eldifad swrdcl syl cfz cn0 cle wbr 1nn0
        cn a1i nn0red 2re lencl syl5eqel 1le2 cuz w3a signstfveq0a eluz2 simp3d
        cz sylib letrd wb mpbir2and fznn0sub2 syl6eleq swrd0len syl2anc uz2m1nn
        fznn0 oveq2i eqeltrd nnne0 fveq2 hash0 syl6eq necon3i eldifsn simpr 0re
        sylanbrc syl6eqel signstfvn clsw oveq1i opeq2i lsw eqcomi fveq2i eqcomd
        ad2antrr s1eqd oveq12d swrdccatwrd eqtrd fveq2d fveq12d cfzo caddc 1cnd
        nn0cnd subsub4d 1p1e2 fzo0end eqeltrrd oveq2d eleqtrrd signstfvp fveq1d
        syl3anc oveq1d 3eqtr4rd sgn0 adantl cneg ctp clt uznn0sub eluz2nn crp
        2rp ltsubrpd elfzo0 syl3anbrc signstcl signswrid 3eqtr3d ) GUAUBZUCUDZU
        EZRZSGUFSUGZUHZHTUIUJZGUFZSUNZUHZGSUUNUKZULUJZUMUFZUUSUUOUOZUPUJZBUFZUF
        ZUUTTUIUJZUUSBUFZUFZUUOUQUFZAUJZUUNGBUFZUFHURUIUJZUVJUFZUUQUUSUUJRZUUOU
        ARZUVDUVIUNUUQUUSUUHRZUUSUCUGZUVMUUQGUUHRZUVOUUQGUUHUUIUUKUULUUPUSZUTZU
        AGSUUNVAVBZUUQUUTVHRZUVPUUQUUTUUNVHUUQUVQUUNSGUMUFZVCUJZRUUTUUNUNUVSUUQ
        UUNSHVCUJZUWCUUQTUWDRZUUNUWDRUUQUWETVDRZTHVEVFZUWFUUQVGVIZUUQTURHUUQTUW
        HVJURUARUUQVKVIUUQHUUQHUWBVDQUUQUVQUWBVDRUVSUAGVLVBVMZVJZTURVEVFUUQVNVI
        UUQURVTRZHVTRZURHVEVFZUUQHURVOUFRZUWKUWLUWMVPABCDEFGHIJKLMNOPQVQZURHVRW
        AVSWBUUQHVDRUWEUWFUWGUHWCUWITHWJVBWDTHWEVBHUWBSVCQWKWFUAGUUNWGWHZUUQUWN
        UUNVHRZUWOHWIVBZWLUWAUUTSUGUVPUUTWMUUSUCUUTSUUSUCUNUUTUCUMUFSUUSUCUMWNW
        OWPWQVBVBUUSUUHUCWRXAUUQUUOSUAUUMUUPWSWTXBZABCDEFUUSUUOIJKLMNOPXCWHUUQU
        UTUUNUVCUVJUUQUVBGBUUQUVBGSUWBTUIUJZUKZULUJZGXDUFZUOZUPUJZGUUQUUSUXBUVA
        UXDUPUUSUXBUNUUQUURUXAGULUUNUWTSHUWBTUIQXEXFWKVIUUQUXDUVAUUQUXCUUOUUQUX
        CUWTGUFZUUOUUKUXCUXFUNUULUUPGUUJXGXKUWTUUNGUWBHTUIHUWBQXHXEXIWPXLXJXMUU
        QUVQGUCUGUHZUXEGUNUUQUUKUXGUVRGUUHUCWRWAUAGXNVBXOZXPUWPXQUUQUVIUVLSAUJZ
        UVLUUQUVGUVLUVHSAUUQUVKUVCUFZUVKUVFUFZUVLUVGUUQUVOUVNUVKSUUTXRUJZRUXJUX
        KUNUVTUWSUUQUVKSUUNXRUJZUXLUUQUUNTUIUJZUVKUXMUUQUXNHTTXSUJZUIUJZUVKUUQH
        TTUUQHUWIYAUUQXTZUXQYBZUXOURHUIYCWKZWPUUQUWQUXNUXMRUWRUUNYDVBYEUUQUUTUU
        NSXRUWPYFYGABCDEFUUSUUOUVKIJKLMNOPYHYJUUQUVKUVJUVCUUQGUVBBUUQUVBGUXHXJX
        PYIUUQUVEUVKUVFUUQUVEUXPUVKUUQUVEUXNUXPUUQUUTUUNTUIUWPYKUXRXOUXSWPXPYLU
        UPUVHSUNUUMUUPUVHSUQUFSUUOSUQWNYMWPYNXMUUQUVLTYOSTYPRZUXIUVLUNUUQUVQUVK
        SUWBXRUJZRUXTUVSUUQUVKSHXRUJZUYAUUQUVKVDRZHVHRZUVKHYQVFUVKUYBRUUQUWNUYC
        UWOURHYRVBUUQUWNUYDUWOHYSVBUUQHURUWJURYTRUUQUUAVIUUBUVKHUUCUUDHUWBSXRQW
        KWFABCDEFGUVKIJKLMNOPUUEWHAJUVLKLMNUUFVBXOUUG $.
    $}

    ${
      $d f j F $.  $d f T $.
      $( The value of ` V ` , which represents the number of times the sign
         changes in a word.  (Contributed by Thierry Arnoux, 7-Oct-2018.) $)
      signsvvfval $p |- ( F e. Word RR -> ( V ` F ) =
        sum_ j e. ( 1 ..^ ( # ` F ) )
          if ( ( ( T ` F ) ` j ) =/= ( ( T ` F ) ` ( j - 1 ) ) , 1 , 0 ) ) $=
        ( c1 chash cfv cfzo co cv cmin wne cc0 cif csu cr cword wceq fveq2 wcel
        oveq2d fveq1d neeq12d ifbid adantr sumeq12dv sumex fvmpt ) CGPCUAZQRZST
        ZEUAZUTBRZRZVCPUBTZVDRZUCZPUDUEZEUFPGQRZSTZVCGBRZRZVFVLRZUCZPUDUEZEUFUG
        UHHUTGUIZVBVKVIVPEVQVAVJPSUTGQUJULVQVIVPUIVCVBUKVQVHVOPUDVQVEVMVGVNVQVC
        VDVLUTGBUJZUMVQVFVDVLVRUMUNUOUPUQOVKVPEURUS $.

      $( ` V ` is a function.  (Contributed by Thierry Arnoux, 8-Oct-2018.) $)
      signsvvf $p |- V : Word RR --> NN0 $=
        ( cn0 c1 cfv cc0 wcel a1i cr cword cv chash cfzo cmin wne cif csu fzofi
        co cfn wa 1nn0 wn 0nn0 ifclda fsumnn0cl fmpti ) CUAUBZOPCUCZUDQZUEUKZEU
        CZVABQZQVDPUFUKVEQUGZPRUHZEUIGNVAUTSZVCVGEVCULSVHPVBUJTVHVDVCSUMZVFPROP
        OSVIVFUMUNTROSVIVFUOUMUPTUQURUS $.

      $( There is no change of sign in the empty word.  (Contributed by Thierry
         Arnoux, 8-Oct-2018.) $)
      signsvf0 $p |- ( V ` (/) ) = 0 $=
        ( c0 cfv c1 cfzo co cc0 chash cv cmin wne cif cr cword wcel signsvvfval
        csu wceq wrd0 ax-mp hash0 oveq2i cle wbr 0le1 cz wb 1z fzon mp2an eqtri
        0z mpbi sumeq1i sum0 3eqtri ) OGPZQOUAPZRSZEUBZOBPZPVMQUCSVNPUDQTUEZEUJ
        ZOVOEUJTOUFUGUHVJVPUKUFULABCDEFOGHIJKLMNUIUMVLOVOEVLQTRSZOVKTQRUNUOTQUP
        UQZVQOUKZURQUSUHTUSUHVRVSUTVAVEQTVBVCVFVDVGVOEVHVI $.

      $d f j K $.
      $( In a single-letter word, which represents a constant polynomial, there
         is no change of sign.  (Contributed by Thierry Arnoux, 8-Oct-2018.) $)
      signsvf1 $p |- ( K e. RR -> ( V ` <" K "> ) = 0 ) $=
        ( cr cfv c1 cfzo co wcel cs1 chash cmin wne cc0 cif csu cword wceq s1cl
        cv signsvvfval syl c0 s1len oveq2i fzo0 eqtri sumeq1i sum0 syl6eq ) GPU
        AZGUBZHQZRVDUCQZSTZEULZVDBQZQVHRUDTVIQUERUFUGZEUHZUFVCVDPUIUAVEVKUJGPUK
        ABCDEFVDHIJKLMNOUMUNVKUOVJEUHUFVGUOVJEVGRRSTUOVFRRSGUPUQRURUSUTVJEVAUSV
        B $.
    $}

    ${
      $d a b i j n F $.  $d a b j n K $.  $d a b f j n T $.
      $( Number of changes in a word compared to a shorter word.  (Contributed
         by Thierry Arnoux, 12-Oct-2018.) $)
      signsvfn $p |- ( ( ( F e. ( Word RR \ { (/) } ) /\ ( F ` 0 ) =/= 0 )
        /\ K e. RR ) -> ( V ` ( F ++ <" K "> ) ) = ( ( V ` F ) +
        if ( ( ( ( T ` F ) ` ( ( # ` F ) - 1 ) ) x. K ) < 0 , 1 , 0 ) ) ) $=
        ( wcel cc0 cfv c1 cr cword c0 csn cdif wne wa cs1 cconcat co chash cfzo
        cmin cif csu caddc cmul clt wbr wceq simpl eldifad simpr ccatcl syl2anc
        cv s1cld signsvvfval syl ccatlen s1len oveq2i syl6eq oveq2d sumeq1d cuz
        cn eldifsn lennncl sylbi nnuz syl6eleq adantr cfz cc 1cnd wn 0cnd fveq2
        ifclda oveq1 fveq2d neeq12d ifbid 3eqtrd adantlr wss fzo0ss1 a1i sselda
        fzosump1 signstfvp syl3anc cz cn0 elfzoel2 adantl eluzmn sylancl fzoss2
        1nn0 wb elfzoelz elfzom1b mpbid sseldd sumeq2dv csgn signstfvn ad2antrr
        eqtr4d fzo0end cneg cpr ctp signstfvcl syldan cxr rexrd signswch sgnsgn
        sgncl breq1d neg1rr 1re prssi mp2an sseldi sgnclre sgnmulsgn 3bitr4d
        3bitrd oveq12d eqtrd ) GUAUBZUCUDZUEQZRGSRUFZUGZHUAQZUGZGHUHZUIUJZISZTG
        UKSZULUJZEVFZUUMBSZSZUUQTUMUJZUURSZUFZTRUNZEUOZUUOUURSZUUOTUMUJZUURSZUF
        ZTRUNZUPUJZGISZUVFGBSZSZHUQUJRURUSZTRUNZUPUJUUGUUJUUNUVJUTUUHUUGUUJUGZU
        UNTUUMUKSZULUJZUVCEUOZTUUOTUPUJZULUJZUVCEUOUVJUVPUUMUUEQZUUNUVSUTUVPGUU
        EQZUULUUEQZUWBUVPGUUEUUFUUGUUJVAVBZUVPHUAUUGUUJVCZVGZUAGUULVDVEABCDEFUU
        MIJKLMNOPVHVIUVPUVRUWAUVCEUVPUVQUVTTULUVPUVQUUOUULUKSZUPUJZUVTUVPUWCUWD
        UVQUWIUTUWEUWGUAGUULVJVEUWHTUUOUPHVKVLVMVNVOUVPUVCUVIETUUOUUGUUOTVPSZQU
        UJUUGUUOVQUWJUUGUWCGUCUFUGUUOVQQZGUUEUCVRUAGVSVTZWAWBWCUVPUUQTUUOWDUJQU
        GZUVBTRWEUWMUVBUGWFUWMUVBWGUGWHWJUUQUUOUTZUVBUVHTRUWNUUSUVEUVAUVGUUQUUO
        UURWIUWNUUTUVFUURUUQUUOTUMWKWLWMWNXAWOWPUUKUVDUVKUVIUVOUPUUGUUJUVDUVKUT
        UUHUVPUVDUUPUUQUVLSZUUTUVLSZUFZTRUNZEUOZUVKUVPUUPUVCUWREUVPUUQUUPQZUGZU
        VBUWQTRUXAUUSUWOUVAUWPUXAUWCUUJUUQRUUOULUJZQUUSUWOUTUVPUWCUWTUWEWCZUVPU
        UJUWTUWFWCZUVPUUPUXBUUQUUPUXBWQUVPUUOWRWSWTABCDEFGHUUQIJKLMNOPXBXCUXAUW
        CUUJUUTUXBQUVAUWPUTUXCUXDUXARUVFULUJZUXBUUTUXAUUOUVFVPSQZUXEUXBWQUXAUUO
        XDQZTXEQUXFUWTUXGUVPUUQTUUOXFXGZXKUUOTXHXIUVFRUUOXJVIUXAUWTUUTUXEQZUVPU
        WTVCUXAUUQXDQZUXGUWTUXIXLUWTUXJUVPUUQTUUOXMXGUXHUUQUUOXNVEXOXPABCDEFGHU
        UTIJKLMNOPXBXCWMWNXQUVPUWCUVKUWSUTUWEABCDEFGIJKLMNOPVHVIYAWPUUKUVHUVNTR
        UUKUVHUVMHXRSZAUJZUVMUFZUVMUXKUQUJRURUSZUVNUUKUVEUXLUVGUVMUUGUUJUVEUXLU
        TUUHABCDEFGHIJKLMNOPXSWPUUKUWCUUJUVFUXBQZUVGUVMUTUUGUUJUWCUUHUWEWPUUIUU
        JVCZUUKUWKUXOUUGUWKUUHUUJUWLXTUUOYBVIZABCDEFGHUVFIJKLMNOPXBXCWMUUKUVMTY
        CZTYDZQZUXKUXRRTYEQZUXMUXNXLUUIUUJUXOUXTUXQABCDEFGUVFIJKLMNOPYFYGZUUKHY
        HQZUYAUUKHUXPYIZHYLVIAJUVMUXKKLMNYJVEUUKUVMXRSZUXKXRSZUQUJZRURUSZUYEUXK
        UQUJZRURUSZUXNUVNUUKUYGUYIRURUUKUYFUXKUYEUQUUKUYCUYFUXKUTUYDHYKVIVNYMUU
        KUVMUAQZUXKUAQZUXNUYHXLUUKUXSUAUVMUXRUAQTUAQUXSUAWQYNYOUXRTUAYPYQUYBYRZ
        UUJUYLUUIHYSXGUVMUXKYTVEUUKUYKUUJUVNUYJXLUYMUXPUVMHYTVEUUAUUBWNUUCUUD
        $.
    $}

    ${
      signsvf.e $e |- ( ph -> E e. ( Word RR \ { (/) } ) ) $.
      signsvf.0 $e |- ( ph -> ( E ` 0 ) =/= 0 ) $.
      signsvf.f $e |- ( ph -> F = ( E ++ <" A "> ) ) $.
      signsvf.a $e |- ( ph -> A e. RR ) $.
      signsvf.n $e |- N = ( # ` E ) $.
      ${
        $d a b f i j $.  $d a b f i j n A $.  $d a b f i j n E $.
        $d a b f j n T $.
        signsvt.b $e |- B = ( ( T ` E ) ` ( N - 1 ) ) $.
        $( Adding a letter of the same sign as the highest coefficient does not
           change the sign.  (Contributed by Thierry Arnoux, 12-Oct-2018.) $)
        signsvtp $p |- ( ( ph /\ 0 < ( A x. B ) ) -> ( V ` F ) = ( V ` E ) ) $=
          ( cc0 cmul co clt wbr wa cfv chash c1 cmin cif caddc wceq cs1 cconcat
          fveq2d cr cword csn cdif wcel wne signsvfn syl21anc eqtrd adantr 0red
          c0 cfzo wf eldifad signstf wrdf 3syl cn eldifsn sylib lennncl fzo0end
          signstlen oveq2d eleqtrrd ffvelrnd remulcld simpr oveq1i fveq2i eqtri
          syl syl5eqel recnd mulcomd breqtrrd syl6breq ltnsymd iffalsed cn0 a1i
          signsvvf nn0cnd addid1d 3eqtrd ) AUGBCUHUIZUJUKZULZKMUMZJMUMZJUNUMZUO
          UPUIZJEUMZUMZBUHUIZUGUJUKZUOUGUQZURUIZXMUGURUIXMAXLYAUSXJAXLJBUTVAUIZ
          MUMZYAAKYBMUCVBAJVCVDZVNVEZVFVGZUGJUMUGVHBVCVGZYCYAUSUAUBUDDEFGHIJBMN
          OPQRSTVIVJVKVLXKXTUGXMURXKXSUOUGXKUGXRXKVMXKXQBXKUGXPUNUMZVOUIZVCXOXP
          XKJYDVGZXPYDVGYIVCXPVPXKJYDYEAYFXJUAVLVQZDEFGHIJMNOPQRSTVRVCXPVSVTXKX
          OUGXNVOUIZYIXKYJJVNVHULZXNWAVGXOYLVGAYMXJAYFYMUAJYDVNWBWCVLVCJWDXNWEV
          TXKYHXNUGVOXKYJYHXNUSYKDEFGHIJMNOPQRSTWFWOWGWHWIZAYGXJUDVLZWJXKUGCBUH
          UIZXRUJXKUGXIYPUJAXJWKXKCBXKCXKCXQVCCLUOUPUIZXPUMXQUFYQXOXPLXNUOUPUEW
          LWMWNZYNWPWQXKBYOWQWRWSCXQBUHYRWLWTXAXBWGXKXMXKXMXKYDXCJMYDXCMVPXKDEF
          GHIMNOPQRSTXEXDYKWIXFXGXH $.

        $( Adding a letter of a different sign as the highest coefficient
           changes the sign.  (Contributed by Thierry Arnoux, 12-Oct-2018.) $)
        signsvtn $p |- ( ( ph /\ ( A x. B ) < 0 ) -> ( ( V ` F ) - ( V ` E ) )
          = 1 ) $=
          ( cmul co cc0 clt wbr wa cfv cmin c1 wceq caddc chash cif cs1 cconcat
          fveq2d cr cword c0 csn cdif wne signsvfn syl21anc eqtrd adantr oveq1i
          wcel eqtri cfzo wf eldifad signstf wrdf 3syl cn eldifsn sylib lennncl
          fveq2i fzo0end signstlen syl eleqtrrd ffvelrnd syl5eqel recnd mulcomd
          oveq2d simpr eqbrtrd syl5eqbrr iftrued eqtr2d cn0 signsvvf a1i ccatcl
          s1cld syl2anc eqeltrd nn0cnd 1cnd subaddd mpbird ) ABCUGUHZUIUJUKZULZ
          KMUMZJMUMZUNUHUOUPXPUOUQUHZXOUPXNXOXPJURUMZUOUNUHZJEUMZUMZBUGUHZUIUJU
          KZUOUIUSZUQUHZXQAXOYEUPXMAXOJBUTZVAUHZMUMZYEAKYGMUCVBAJVCVDZVEVFZVGVN
          ZUIJUMUIVHBVCVNZYHYEUPUAUBUDDEFGHIJBMNOPQRSTVIVJVKVLXNYDUOXPUQXNYCUOU
          IXNYBCBUGUHZUIUJCYABUGCLUOUNUHZXTUMYAUFYNXSXTLXRUOUNUEVMWFVOZVMXNYMXL
          UIUJXNCBXNCXNCYAVCYOXNUIXTURUMZVPUHZVCXSXTXNJYIVNZXTYIVNYQVCXTVQXNJYI
          YJAYKXMUAVLVRZDEFGHIJMNOPQRSTVSVCXTVTWAXNXSUIXRVPUHZYQXNYRJVEVHULZXRW
          BVNXSYTVNAUUAXMAYKUUAUAJYIVEWCWDVLVCJWEXRWGWAXNYPXRUIVPXNYRYPXRUPYSDE
          FGHIJMNOPQRSTWHWIWOWJWKWLWMXNBAYLXMUDVLZWMWNAXMWPWQWRWSWOWTXNXOXPUOXN
          XOXNYIXAKMYIXAMVQXNDEFGHIMNOPQRSTXBXCZXNKYGYIAKYGUPXMUCVLXNYRYFYIVNYG
          YIVNYSXNBVCUUBXEVCJYFXDXFXGWKXHXNXPXNYIXAJMUUCYSWKXHXNXIXJXK $.
      $}

      ${
        $d a b f i j n A $.  $d a b f i j n E $.  $d a b f i n N $.
        $d a b f j n T $.
        signsvf.b $e |- B = ( E ` ( N - 1 ) ) $.
        $( Adding a letter of the same sign as the highest coefficient does not
           change the sign.  (Contributed by Thierry Arnoux, 12-Oct-2018.) $)
        signsvfpn $p |- ( ( ph /\ 0 < ( B x. A ) )
          -> ( V ` F ) = ( V ` E ) ) $=
          ( cc0 cmul co clt wbr c1 cmin cfv wceq wa csgn recnd cc chash cfzo cr
          cword wcel wf c0 csn eldifad wrdf syl oveq1i wne cdif eldifsn lennncl
          sylib fzo0end 3syl syl5eqel ffvelrnd mulcomd breq2d sgnmulsgp syl2anc
          cn wb bitr3d biimpa adantr simpr mulne0bad syl5eqner signsvtn0 fveq2i
          gt0ne0d syl6eqr fveq2d cxr rexrd sgnsgn eqtrd oveq2d breqtrrd sgnclre
          eqeltrd mpbird eqid signsvtp syldan ) AUGCBUHUIZUJUKZUGBLULUMUIZJEUNU
          NZUHUIUJUKZKMUNJMUNUOAXKUPZXNUGBUQUNZXMUQUNZUHUIZUJUKZXOUGXPCUQUNZUHU
          IZXRUJAXKUGYAUJUKZAUGBCUHUIZUJUKZXKYBAYCXJUGUJABCABUDURZACXLJUNZUSUFA
          YFAUGJUTUNZVAUIZVBXLJAJVBVCZVDZYHVBJVEAJYIVFVGZUAVHVBJVIVJAXLYGULUMUI
          ZYHLYGULUMUEVKAYJJVFVLUPZYGWEVDYLYHVDAJYIYKVMVDZYMUAJYIVFVNVPVBJVOYGV
          QVRVSVTZURVSZWAWBABVBVDZCVBVDZYDYBWFUDACYFVBUFYOVSZBCWCWDWGWHXOXQXTXP
          UHXOXQXTUQUNZXTXOXMXTUQXOYNYFUGVLZXMXTUOAYNXKUAWIXOYFCUGUFXOCBACUSVDX
          KYPWIABUSVDXKYEWIXOXJAXKWJWOWKWLYNUUAUPXMYFUQUNXTDEFGHIJLMNOPQRSTUEWM
          CYFUQUFWNWPWDZWQXOCWRVDYTXTUOXOCAYRXKYSWIZWSCWTVJXAXBXCXOYQXMVBVDXNXS
          WFAYQXKUDWIXOXMXTVBUUBXOYRXTVBVDUUCCXDVJXEBXMWCWDXFABXMDEFGHIJKLMNOPQ
          RSTUAUBUCUDUEXMXGXHXI $.

        $( Adding a letter of a different sign as the highest coefficient
           changes the sign.  (Contributed by Thierry Arnoux, 12-Oct-2018.) $)
        signsvfnn $p |- ( ( ph /\ ( B x. A ) < 0 )
          -> ( ( V ` F ) - ( V ` E ) ) = 1 ) $=
          ( cmul co cc0 clt wbr c1 cmin cfv wceq wa csgn cr cword csn cdif wcel
          c0 wne adantr cc chash cfzo wf eldifad wrdf oveq1i cn eldifsn lennncl
          syl sylib fzo0end syl5eqel ffvelrnd recnd lt0ne0d mulne0bad syl5eqner
          3syl simpr signsvtn0 fveq2i syl6eqr syl2anc fveq2d rexrd sgnsgn eqtrd
          cxr oveq2d mulcomd breq1d wb sgnmulsgn bitr3d eqbrtrd sgnclre eqeltrd
          biimpa mpbird eqid signsvtn syldan ) ACBUGUHZUIUJUKZBLULUMUHZJEUNUNZU
          GUHUIUJUKZKMUNJMUNUMUHULUOAXKUPZXNBUQUNZXMUQUNZUGUHZUIUJUKZXOXRXPCUQU
          NZUGUHZUIUJXOXQXTXPUGXOXQXTUQUNZXTXOXMXTUQXOJURUSZVCUTZVAVBZXLJUNZUIV
          DZXMXTUOAYEXKUAVEXOYFCUIUFXOCBACVFVBXKACYFVFUFAYFAUIJVGUNZVHUHZURXLJA
          JYCVBZYIURJVIAJYCYDUAVJURJVKVPAXLYHULUMUHZYILYHULUMUEVLAYJJVCVDUPZYHV
          MVBYKYIVBAYEYLUAJYCVCVNVQURJVOYHVRWEVSVTZWAVSZVEABVFVBXKABUDWAZVEXOXJ
          AXKWFWBWCWDYEYGUPXMYFUQUNXTDEFGHIJLMNOPQRSTUEWGCYFUQUFWHWIWJZWKXOCWOV
          BYBXTUOXOCACURVBZXKACYFURUFYMVSZVEZWLCWMVPWNWPAXKYAUIUJUKZABCUGUHZUIU
          JUKZXKYTAUUAXJUIUJABCYOYNWQWRABURVBZYQUUBYTWSUDYRBCWTWJXAXEXBXOUUCXMU
          RVBXNXSWSAUUCXKUDVEXOXMXTURYPXOYQXTURVBYSCXCVPXDBXMWTWJXFABXMDEFGHIJK
          LMNOPQRSTUAUBUCUDUEXMXGXHXI $.
      $}
    $}

$(
    @{
      @( Shifting the whole word to the right (i.e.  multiplying the
         corresponding polynomial by ` x ` ) does not change the parity of the
         sign changes.  (Contributed by Thierry Arnoux, 9-Sep-2018.) @)
      signwmulx @p |- ( ( F e. ( Word RR \ { (/) } ) /\ ( F ` 0 ) =/= 0 )
       -> ( V ` ( <" 0 "> ++ F ) ) = ( V ` F ) ) @=
      ? @.
    @}

    @{
      @( If the first and last coefficients in the word are of opposite sign,
         there is an odd number of sign changes.  (Contributed by Thierry
         Arnoux, 9-Sep-2018.) @)
      signwtog @p |- ( ( ( F e. ( Word RR \ { (/) } ) /\ ( F ` 0 ) =/= 0 )
          /\ ( ( F ` 0 ) x. ( F ` ( ( # ` F ) - 1 ) ) ) < 0 )
        -> -. 2 || ( V ` F ) ) @=
      ? @.
    @}
$)

    ${
      $d a b f i j $.  $d a b j F $.  $d a b f j n T $.
      $( Adding a zero as the highest coefficient does not change the parity of
         the sign changes.  (Contributed by Thierry Arnoux, 12-Oct-2018.) $)
      signlem0 $p |- ( ( F e. ( Word RR \ { (/) } ) /\ ( F ` 0 ) =/= 0 )
       -> ( V ` ( F ++ <" 0 "> ) ) = ( V ` F ) ) $=
        ( wcel cc0 cfv co c1 cr cword c0 csn cdif wne wa cs1 cconcat chash cmin
        cmul clt wbr cif caddc wceq 0re signsvfn mpan2 ltnri cneg cpr cc neg1cn
        wss ax-1cn prssi mp2an cfzo cn simpl eldifsn sylib lennncl fzo0end 3syl
        signstfvcl mpdan sseldi mul01d breq1d mtbiri iffalsed oveq2d cn0 wf a1i
        signsvvf eldifad ffvelrnd nn0cnd addid1d 3eqtrd ) GUAUBZUCUDZUEPZQGRQUF
        ZUGZGQUHUISHRZGHRZGUJRZTUKSZGBRRZQULSZQUMUNZTQUOZUPSZXAQUPSXAWSQUAPWTXH
        UQURABCDEFGQHIJKLMNOUSUTWSXGQXAUPWSXFTQWSXFQQUMUNQURVAWSXEQQUMWSXDWSTVB
        ZTVCZVDXDXIVDPTVDPXJVDVFVEVGXITVDVHVIWSXCQXBVJSPZXDXJPWSGWOPGUCUFUGZXBV
        KPXKWSWQXLWQWRVLZGWOUCVMVNUAGVOXBVPVQABCDEFGXCHIJKLMNOVRVSVTWAWBWCWDWEW
        SXAWSXAWSWOWFGHWOWFHWGWSABCDEFHIJKLMNOWIWHWSGWOWPXMWJWKWLWMWN $.
    $}

$(
    @{
      signlem.x @e |- ( ph -> X e. RR ) @.
      signlem.y @e |- ( ph -> Y e. RR ) @.
      signlem.z @e |- ( ph -> Z e. RR ) @.
      signlem.f @e |- ( ph -> G = ( F ++ <" Z "> ) ) @.
      signlem.g @e |- ( ph -> H = ( F ++ <" Y X "> ) ) @.
      signlem.h @e |- ( ph -> F e. ( Word RR \ { (/) } ) ) @.
      signlem.0 @e |- ( ph -> ( H ` 0 ) =/= 0 ) @.
      @( Inserting any coefficient just before the highest one does not change
         the parity.  @)
      signlem1 @p |- ( ( ph /\ 0 < ( Z x. X ) )
        -> ( ( V ` H ) - ( V ` G ) ) e. { 0 , 2 } ) @=
        ? @.

      @( Inserting a coefficient of opposed sign after the highest changes the
         parity.  @)
      signlem2 @p |- ( ( ( ph /\ ( Z x. X ) < 0 ) /\ 0 < ( Y x. Z ) )
        -> ( ( V ` H ) - ( V ` G ) ) = 1 ) @=
        ? @.

      signlem3.i @e |- ( ph -> J = ( ( T ` F ) ` ( ( # ` F ) - 1 ) ) ) @.
      @( Replacing a leading zero with two coefficients of opposed sign changes
         the parity.  @)
      signlem34 @p |- ( ( ph /\ Z = 0 /\ ( X x. Y ) < 0 )
        -> ( V ` H ) = ( ( V ` G ) + if ( ( sgn ` Y ) =/= J , 1 , 0 ) ) ) @=
        ? @.

      @( Replacing a leading zero with two coefficients of opposed sign changes
         the parity.  @)
      signlem3 @p |- ( ( ( ph /\ Z = 0 /\ ( X x. Y ) < 0 ) /\ ( Y x. J ) < 0 )
        -> ( ( V ` H ) - ( V ` G ) ) = 2 ) @=
        ? @.

      @( Replacing a leading zero with two coefficients of opposed sign changes
         the parity.  @)
      signlem4 @p |- ( ( ( ph /\ Z = 0 /\ ( X x. Y ) < 0 ) /\ 0 < ( Y x. J ) )
        -> ( ( V ` H ) - ( V ` G ) ) = 1 ) @=
        ? @.
    @}
$)
    signs.h $e |- H =
      ( ( <" 0 "> ++ F ) oF - ( ( F ++ <" 0 "> ) oFC x. C ) ) $.

    ${
      $d x y C $.  $d x y F $.
      $( ` H ` , corresponding to the word ` F ` multiplied by ` ( x - C ) ` ,
         as a function.  (Contributed by Thierry Arnoux, 29-Sep-2018.) $)
      signshf $p |- ( ( F e. Word RR /\ C e. RR+ )
        -> H : ( 0 ..^ ( ( # ` F ) + 1 ) ) --> RR ) $=
        ( cr co vx vy cword wcel crp wa cc0 chash cfv c1 caddc cfzo cs1 cconcat
        cmul cofc cmin cof wf cv resubcl adantl 0red s1cld simpl ccatcl syl2anc
        cvv wrdf syl wceq ccatlen oveq1i syl6eq 1cnd cfn cn0 wrdfin hashcl 3syl
        s1len nn0cnd addcomd eqtrd oveq2d feq2d mpbid syldan oveq2i ovexd simpr
        remulcl rpred ofcf inidm off feq1i sylibr ) HSUCZUDZAUEUDZUFZUGHUHUIZUJ
        UKTZULTZSUGUMZHUNTZHXFUNTZAUOUPTZUQURTZUSXESIUSXBUAUBXEXEXEUQSSSXGXIVHV
        HUAUTZSUDUBUTZSUDUFZXKXLUQTSUDXBXKXLVAVBXBUGXGUHUIZULTZSXGUSZXESXGUSXBX
        GWSUDZXPXBXFWSUDZWTXQXBUGSXBVCVDZWTXAVEZSXFHVFVGSXGVIVJXBXOXESXGXBXNXDU
        GULXBXNUJXCUKTZXDXBXNXFUHUIZXCUKTZYAXBXRWTXNYCVKXSXTSXFHVLVGYBUJXCUKUGW
        AZVMVNXBUJXCXBVOXBXCXBWTHVPUDXCVQUDXTSHVRHVSVTWBWCWDWEWFWGXBUAUBXEAUOSS
        SXHVHXMXKXLUOTSUDXBXKXLWLVBXBUGXHUHUIZULTZSXHUSZXESXHUSXBXHWSUDZYGWTXAX
        RYHXSSHXFVFWHSXHVIVJXBYFXESXHXBYEXDUGULXBYEXCYBUKTZXDWTXAXRYEYIVKXSSHXF
        VLWHYBUJXCUKYDWIVNWEWFWGXBUGXDULWJZXBAWTXAWKWMWNYJYJXEWOWPXESIXJRWQWR
        $.
    $}

    $( ` H ` , corresponding to the word ` F ` multiplied by ` ( x - C ) ` , is
       a word.  (Contributed by Thierry Arnoux, 29-Sep-2018.) $)
    signshwrd $p |- ( ( F e. Word RR /\ C e. RR+ ) -> H e. Word RR ) $=
      ( cr wcel cword crp wa cc0 chash cfv c1 caddc co cfzo signshf iswrdi syl
      wf ) HSUAZTAUBTUCUDHUEUFUGUHUIZUJUISIUNIUOTABCDEFGHIJKLMNOPQRUKSUPIULUM
      $.

    $( Length of ` H ` , corresponding to the word ` F ` multiplied by
       ` ( x - C ) ` .  (Contributed by Thierry Arnoux, 14-Oct-2018.) $)
    signshlen $p |- ( ( F e. Word RR /\ C e. RR+ ) ->
      ( # ` H ) = ( ( # ` F ) + 1 ) ) $=
      ( cr wcel cword crp wa chash cfv cc0 c1 caddc co cfzo wf wfn wceq signshf
      ffn hashfn 3syl cn0 lencl adantr 1nn0 a1i nn0addcld hashfzo0 syl eqtrd )
      HSUATZAUBTZUCZIUDUEZUFHUDUEZUGUHUIZUJUIZUDUEZVLVIVMSIUKIVMULVJVNUMABCDEFG
      HIJKLMNOPQRUNVMSIUOVMIUPUQVIVLURTVNVLUMVIVKUGVGVKURTVHSHUSUTUGURTVIVAVBVC
      VLVDVEVF $.

    $( ` H ` is not the empty word.  (Contributed by Thierry Arnoux,
       14-Oct-2018.) $)
    signshnz $p |- ( ( F e. Word RR /\ C e. RR+ ) -> H =/= (/) ) $=
      ( wcel cc0 cr cword crp wa chash cfv wne c0 c1 caddc signshlen cn0 adantr
      co cn lencl nn0p1nn eqeltrd nnne0d wceq signshwrd hasheq0 necon3bid mpbid
      syl wb ) HUAUBZSZAUCSZUDZIUEUFZTUGIUHUGVJVKVJVKHUEUFZUIUJUNZUOABCDEFGHIJK
      LMNOPQRUKVJVLULSZVMUOSVHVNVIUAHUPUMVLUQVEURUSVJVKTIUHVJIVGSVKTUTIUHUTVFAB
      CDEFGHIJKLMNOPQRVAIVGVBVEVCVD $.

$(
    @{
      @( Value of the coefficient of ` H ` , corresponding to the word ` F `
         multiplied by ` ( x - C ) ` .  @)
      signhv @p |- ( ( F e. Word RR /\ I e. ( 1 ..^ ( # ` F ) ) )
        -> ( H ` I ) = ( ( F ` ( I - 1 ) ) - ( ( F ` I ) x. C ) ) ) @=
        ? @.

      @( Value of the lowest coefficient of ` H ` , corresponding to the word
         ` F ` multiplied by ` ( x - C ) ` .  @)
      signhv0 @p |- ( F e. Word RR -> ( H ` 0 ) = -u ( ( F ` 0 ) x. C ) ) @=
        ? @.

      @( The lowest coefficient of ` H ` cannot be zero .  @)
      signshn0 @p |- ( ( F e. Word RR /\ C e. RR+ ) -> ( H ` 0 ) =/= 0 ) @=
        ? @.

      @( Value of the highest coefficient of ` H ` , corresponding to the word
         ` F ` multiplied by ` ( x - C ) ` .  @)
      signhvn @p |- ( F e. Word RR ->
        ( H ` ( ( # ` H ) - 1 ) ) = ( F ` ( ( # ` F ) - 1 ) ) ) @=
        ? @.
    @}

    @{
      signhtv.n @e |- N = ( # ` F ) @.
      signhtv.j @e |- J = ( ( T ` F ) ` ( N - 2 ) ) @.
      signhtv.k @e |- K = ( ( T ` H ) ` ( N - 1 ) ) @.
      @( Lemma for ~ signwlem @)
      signhtv @p |- ( ( ( F e. ( Word RR \ { (/) } ) /\ ( F ` 0 ) =/= 0 )
        /\ ( F ` ( N - 1 ) ) = 0 ) -> J = K ) @=
        ? @.
    @}

    @( The rule of signs for words : value of the coefficient word for a
       monomial with one positive root ` C `  (Contributed by Thierry Arnoux,
       28-Sep-2018.) @)
    signwlem0g @p |- ( ( ( K e. RR /\ C e. RR+ ) /\ F = <" K "> ) ->
      H = <" -u ( K x. C ) K "> ) @=
      ( co cr wcel crp cs1 wceq cc0 cconcat cmul cofc cmin cof cneg oveq2 oveq1
      cs2 oveq1d oveq12d syl5eq adantl df-s2 eqcomi a1i simpl s1cld simpr rpred
      wa ofcccat ofcs1 syldan syl2anc recnd mul02d s1eqd eqtrd syl6eqr remulcld
      0re ofs2 syl22anc df-neg subid1d s2eqd 3eqtrd adantr ) JUAUBZAUCUBZVGZHJU
      DZUEZVGIUFUDZWIUGTZWIWKUGTZAUHUIZTZUJUKZTZJAUHTZULZJUOZWJIWQUEWHWJIWKHUGT
      ZHWKUGTZAWNTZWPTWQSWJXAWLXCWOWPHWIWKUGUMWJXBWMAWNHWIWKUGUNUPUQURUSWHWQWTU
      EWJWHWQUFJUOZWRUFUOZWPTZUFWRUJTZJUFUJTZUOZWTWHWLXDWOXEWPWLXDUEWHXDWLUFJUT
      VAVBWHWOWIAWNTZWKAWNTZUGTZXEWHUHUAUAWIWKAWHJUAWFWGVCZVDWHUFUAUFUAUBZWHVRV
      BZVDWHAWFWGVEVFZVHWHXLWRUDZWKUGTXEWHXJXQXKWKUGWFWGAUAUBZXJXQUEXPJAUHUAUAV
      IVJWHXKUFAUHTZUDZWKWHXNXRXKXTUEXOXPUFAUHUAUAVIVKWHXSUFWHAWHAXPVLVMVNVOUQW
      RUFUTVPVOUQWHXNWFWRUAUBXNXFXIUEXOXMWHJAXMXPVQXOUFJWRUFUJUAUAVSVTWHXGXHWSJ
      XGWSUEWHWSXGWRWAVAVBWHJWHJXMVLWBWCWDWEVO @.

    @( The rule of signs for words : change of signs for a monomial with one
       positive root ` C ` .  (Contributed by Thierry Arnoux, 28-Sep-2018.) @)
    signwlem0gv @p |- ( ( K e. ( RR \ { 0 } ) /\ C e. RR+ /\ F = <" K "> )
      -> ( V ` H ) = 1 ) @=
      ( cc0 cr csn cdif wcel crp cs1 wceq w3a cfv cneg cmul co cconcat chash c1
      clt wbr cif caddc cs2 simp1 eldifad simp2 simp3 signwlem0g syl21anc df-s2
      cmin syl6eq fveq2d cword c0 wne renegcld s1cld s1nz a1i neneqd elsng syl
      wb mtbird eldifd s1fv recnd wa eldifsn sylib simprd negne0d eqnetrd rpred
      remulcld signsvfn signsvf1 csgn signstf0 s1len 1m1e0 fveq12d sgnclre 3syl
      oveq1d eqtrd eqeltrd sgnmul syl2anc cxr sgnsgn sgnmulrp2 oveq12d mulneg1d
      rexrd msqgt0d lt0neg2d mpbid sgnn 3eqtr3d 3eqtrd sgnnbi iftrue 0p1e1 ) JU
      ATUBZUCUDZAUEUDZHJUFUGZUHZIKUIJUJZUFZJAUKULZUFUMULZKUIZYIKUIZYIUNUIZUOVHU
      LZYICUIZUIZYJUKULZTUPUQZUOTURZUSULZUOYGIYKKYGIYHYJUTZYKYGJUAUDZYEYFIUUBUG
      YGJUAYCYDYEYFVAZVBZYDYEYFVCZYDYEYFVDABCDEFGHIJKLMNOPQRSVEVFYHYJVGVIVJYGYI
      UAVKZVLUBZUCUDTYIUIZTVMYJUAUDZYLUUAUGYGYIUUGUUHYGYHUAYGJUUEVNZVOZYGYIUUHU
      DZYIVLUGZYGYIVLYIVLVMYGYHVPVQVRYGYIUUGUDUUMUUNWAUULYIVLUUGVSVTWBWCYGUUIYH
      TYGYHUAUDZUUIYHUGUUKYHUAWDVTYGJYGJUUEWEZYGUUCJTVMZYGYDUUCUUQWFUUDJUATWGWH
      WIZWJWKYGJAUUEYGAUUFWLWMZBCDEFGYIYJKLMNOPQRWNVFYGUUATUOUSULUOYGYMTYTUOUSY
      GUUOYMTUGUUKBCDEFGYHKLMNOPQRWOVTYGYSYTUOUGYGYRWPUIZUOUJZUGZYSYGUUTYQWPUIZ
      YJWPUIZUKULZYHWPUIZJWPUIZUKULZUVAYGYQUAUDUUJUUTUVEUGYGYQUVFUAYGYQTUVFUFZU
      IZUVFYGYOTYPUVIYGUUOYPUVIUGUUKBCDEFGYHKLMNOPQRWQVTYGYOUOUOVHULTYGYNUOUOVH
      YNUOUGYGYHWRVQXCWSVIWTYGUUOUVFUAUDZUVJUVFUGUUKYHXAZUVFUAWDXBXDZYGUUOUVKUU
      KUVLVTXEZUUSYQYJXFXGYGUVCUVFUVDUVGUKYGUVCUVFWPUIZUVFYGYQUVFWPUVMVJYGYHXHU
      DUVOUVFUGYGYHUUKXMYHXIVTXDYGUUCYEUVDUVGUGUUEUUFJAXJXGXKYGYHJUKULZWPUIZJJU
      KULZUJZWPUIZUVHUVAYGUVPUVSWPYGJJUUPUUPXLVJYGUUOUUCUVQUVHUGUUKUUEYHJXFXGYG
      UVSXHUDUVSTUPUQZUVTUVAUGYGUVSYGUVRYGJJUUEUUEWMZVNXMYGTUVRUPUQUWAYGJUUEUUR
      XNYGUVRUWBXOXPUVSXQXGXRXSYGYRXHUDUVBYSWAYGYRYGYQYJUVNUUSWMXMYRXTVTXPYSUOT
      YAVTXKYBVIXS @.

    @( The rule of signs for words : initial step. (Contributed by Thierry
       Arnoux, 28-Sep-2018.) @)
    signwlem0 @p |- ( ( K e. ( RR \ { 0 } ) /\ C e. RR+ /\ F = <" K "> )
      -> ( ( V ` F ) < ( V ` H )  /\ -. 2 || ( ( V ` H ) - ( V ` F ) ) ) ) @=
      ( c2 cr cc0 csn cdif wcel crp cs1 wceq w3a cfv clt cmin co cdvds wn c1
      wbr 0lt1 simp3 fveq2d simp1 eldifad signsvf1 syl eqtrd signwlem0gv mpbiri
      breq12d cz 2z iddvds ax-mp caddc wb 1z oddp1even 1p1e2 breq2i bitri mpbir
      ax-1cn subid1i notbii oveq12d breq2d notbid jca ) JUAUBUCZUDUEZAUFUEZHJUG
      ZUHZUIZHKUJZIKUJZUKUQZTWOWNULUMZUNUQZUOZWMWPUBUPUKUQURWMWNUBWOUPUKWMWNWKK
      UJZUBWMHWKKWIWJWLUSUTWMJUAUEWTUBUHWMJUAWHWIWJWLVAVBBCDEFGJKLMNOPQRVCVDVEZ
      ABCDEFGHIJKLMNOPQRSVFZVHVGWMWSTUPUBULUMZUNUQZUOZXETUPUNUQZUOZXGTTUNUQZTVI
      UEXHVJTVKVLXGTUPUPVMUMZUNUQZXHUPVIUEXGXJVNVOUPVPVLXITTUNVQVRVSVTXDXFXCUPT
      UNUPWAWBVRWCVTWMWRXDWMWQXCTUNWMWOUPWNUBULXBXAWDWEWFVGWG @.

    @{
      signs.g @e |- G =
        ( ( <" 0 "> ++ E ) oF - ( ( E ++ <" 0 "> ) oFC x. C ) ) @.
      signs.n @e |- N = ( # ` E ) @.
      signs.j @e |- Z = ( E ` ( N - 1 ) ) @.

      signwlem.1 @e |- ( ph -> E e. ( Word RR \ { (/) } ) ) @.
      signwlem.2 @e |- ( ph -> ( E ` 0 ) =/= 0 ) @.
      signwlem.3 @e |- ( ph -> F = ( E ++ <" K "> ) ) @.
      signwlem.4 @e |- ( ph -> K e. RR ) @.
      signwlem.5 @e |- ( ph -> C e. RR+ ) @.
      @( The words with an additional positive root, ` G ` and ` H ` , have a
         common subword. @)
      signwlems @p |- ( ph -> ( G |` ( 0 ..^ N ) ) = ( H |` ( 0 ..^ N ) ) ) @=
        ? @.

      @( Decompose ` G ` into highest letter and common subword. @)
      signwlemg @p |- ( ph -> G = ( ( G |` ( 0 ..^ N ) ) ++ <" Z "> ) ) @=
        ? @.

      @( Decompose ` H ` into highest 2 letters and common subword. @)
      signwlemh @p |- ( ph -> H = ( ( G |` ( 0 ..^ N ) ) ++
        <" ( Z - ( K x. C ) ) K "> ) ) @=
        ? @.

      @( Main Lemma for fhe rule of signs : multiplying by a polynomial
         ` ( x .- C ) ` has the same effect on words of length ` ( N + 1 ) ` .
         (Contributed by Thierry Arnoux, 30-Sep-2018.) @)
      signwlem @p |- ( ph -> ( ( ( V ` H ) - ( V ` G ) )
        - ( ( V ` F ) - ( V ` E ) ) ) e. { 0 , 2 } ) @=
        ( cfv cmin co cc0 c2 wcel cmul wceq wa cn0 cr wf a1i cs1 cconcat c0 syl
        syl2anc eqeltrd signshwrd ffvelrnd adantr nn0cnd cfzo cres simpr oveq1d
        cs2 cc recnd mul02d eqtrd oveq2d c1 chash wrdf cn wne eldifsn sylib cfn
        wb wrdfin hashnncl 3syl mpbird syl5eqel syl6eq cfz caddc sseldi syl6eqr
        eleqtrrd s1cld 0re syl3anc fveq2d jca sylibr signlem0 subeq0bd syl6eqel
        oveq12d adantlr simpll wo biimpa imp remulcld ad2antrr mulne0d syl21anc
        mulcld clt simplll simplr cneg msqgt0d mulassd mpbid eqtr3d eqcomd csgn
        wbr eqid rexrd mpjaodan pm2.61dane cpr signsvvf crp eldifad s1cl ccatcl
        cword csn rpred cdif simprd fzo0end oveq2i syl6eleq subid1d s2eqd df-s2
        signwlemh cop csubstr fzssp1 hashcl eluzfz2 nn0uz eleq2s 4syl signshlen
        cuz oveq1i swrd0val swrdcl eqeltrrd ccatass signwlemg signshnz signshn0
        3eqtr4d eqtr4d ffvelrn sylancr s1eqd subidi c0ex prid1 wn df-ne mul0ord
        wi df-or syl5bi necon1d resubcld signstf fzossfz cz nnzd fzval3 eleqtrd
        0cn signstlen rpne0 necomd neeq1d subne0d signstfvneq0 pm2.21d mulneg2d
        neneqd w3a rpgt0 mulgt0d breqtrd lt0neg2d eqbrtrd 3jca swrd0len signhv0
        df-neg ccatlen eqcomi s1len oveq12i 3eqtrd lbfzo0 fveq1d eqnetrd mulne0
        peano2nnd ccatval1 syl22anc negne0d fvres cvv signstres sylancl fveq12d
        signlem3 sylancom syl5eqr signstfveq0 signhtv sgnmul sgnmulrp2 mulneg1d
        sgnclre sgnneg 3eqtr2rd negcon1ad ax-1cn cxr sgnnbi sgnpbi signsvtp 2cn
        subid1i 2re elexi prid2 signlem4 negeqd signsvtn 1m1e0 lttri2d ltmul1dd
        mulcomd 3brtr3d ltned mulne0bad lttrd posdifd subdird breqtrrd signlem2
        ovex mpdan signsvfnn signsvfpn signlem1 elpr ) ALOUMZKOUMZUNUOZJOUMZIOU
[encoded data, 7600 characters]
        VWAUNVVNVVSWLYSXPAXXIXXJXXKXRAVWIUPAQMWUCUKYAWVDVVCXSYSYT @.

      signwlemn.1 @e |- ( ph -> ( V ` E ) < ( V ` G ) ) @.
      signwlemn.2 @e |- ( ph -> -. 2 || ( ( V ` G ) - ( V ` E ) ) ) @.
      @( The rule of signs for words : induction step.  (Contributed by Thierry
         Arnoux, 27-Sep-2018.) @)
      signwlemn @p |- ( ph
        -> ( ( V ` F ) < ( V ` H )  /\ -. 2 || ( ( V ` H ) - ( V ` F ) ) ) ) @=
        ( cfv cr cword cn0 wf signsvvf a1i c0 csn eldifad ffvelrnd cconcat wcel
        cs1 s1cl syl ccatcl syl2anc eqeltrd crp signshwrd clt wbr cmin cdvds
        co c2 wn jca chash c1 eqid signwlem signslema ) AIOUOZJOUOKOUOZLOUOAUPU
        QZURIOWKUROUSACDEFGHOPRSTUAUBUCUTVAZAIWKVBVCUHVDZVEAWKURJOWLAJIMVHZVFVT
        ZWKUJAIWKVGZWNWKVGZWOWKVGWMAMUPVGWQUKMUPVIVJUPIWNVKVLVMZVEAWKURKOWLAWPB
        VNVGZKWKVGWMULBCDEFGHIKOPRSTUAUBUCUEVOVLVEAWKURLOWLAJWKVGWSLWKVGWRULBCD
        EFGHJLOPRSTUAUBUCUDVOVLVEAWIWJVPVQWAWJWIVRVTVSVQWBUMUNWCABCDEFGHIJKLMIW
        DUOZOPWTWEVRVTIUOZRSTUAUBUCUDUEWTWFXAWFUHUIUJUKULWGWH @.
    @}

    @{
      @d e f k C @.  @d e f k V @.  @d f F @.  @d f H @.
      @( The rule of signs for words : multiplying by a polynomial
         ` ( x .- C ) ` changes the parity of the number of sign changes.
         (Contributed by Thierry Arnoux, 27-Sep-2018.) @)
      signw @p |- ( ( F e. ( Word RR \ { (/) } ) /\ ( F ` 0 ) =/= 0 /\ C e. RR+
      ) -> ( ( V ` F ) < ( V ` H )  /\ -. 2 || ( ( V ` H ) - ( V ` F ) ) ) ) @=
        ( cc0 co ve vk cr cword c0 csn cdif cfv wne crp w3a clt wbr c2 cdvds
        wcel cmin wn simp1 eldifad eldifsn sylib simprd simp2 simp3 cs1 cconcat
        wa cv cmul cofc cof wceq neeq1 fveq1 neeq1d 3anbi12d imbi1d fveq2 oveq2
        oveq1 oveq1d oveq12d fveq2d breq12d breq2d notbid anbi12d imbi12d neirr
        syl6eqr con3i ax-mp pm2.21i simpllr simpr s1cl ccatlid 3syl fveq1d s1fv
        wi eqtrd syl simplr2 eqnetrrd jca sylibr simplr3 eqid signwlem0 syl3anc
        adantllr simplll velsn necon3bbii chash cfzo s1cld hashgt0 syl2anc cz
        wb
        eldifd 0z cfn wrdfin hashcl fzolb2 sylancr mpbird ccatval1 3jca simp-4r
        nn0zd mpd c1 simp11 simpl2 ex 3adant3 eqidd simp13 signwlemn pm2.61dane
        simp3l simp3r wrdind imp syl13anc ) HUCUDZUEUFZUGZUPZSHUHZSUIZAUJUPZUKZ
        HUUKUPZHUEUIZUUPUUQHJUHZIJUHZULUMZUNUVBUVAUQTZUOUMZURZVHZUURHUUKUULUUNU
        UPUUQUSZUTUURUUSUUTUURUUNUUSUUTVHUVHHUUKUEVAVBVCUUNUUPUUQVDUUNUUPUUQVEU
        USUUTUUPUUQUKZUVGDVIZUEUIZSUVJUHZSUIZUUQUKZUVJJUHZSVFZUVJVGTZUVJUVPVGTZ
        AVJVKZTZUQVLZTZJUHZULUMZUNUWCUVOUQTZUOUMZURZVHZXBUEUEUIZSUEUHZSUIZUUQUK
        ZUWHXBUAVIZUEUIZSUWMUHZSUIZUUQUKZUWMJUHZUVPUWMVGTZUWMUVPVGTZAUVSTZUWATZ
        JUHZULUMZUNUXCUWRUQTZUOUMZURZVHZXBZUWMUBVIZVFZVGTZUEUIZSUXLUHZSUIZUUQUK
        ZUXLJUHZUVPUXLVGTZUXLUVPVGTZAUVSTZUWATZJUHZULUMZUNUYBUXQUQTZUOUMZURZVHZ
        XBZUVIUVGXBDUAUBHUCUVJUEVMZUVNUWLUWHUYIUVKUWIUVMUWKUUQUVJUEUEVNUYIUVLUW
        JSSUVJUEVOVPVQVRUVJUWMVMZUVNUWQUWHUXHUYJUVKUWNUVMUWPUUQUVJUWMUEVNUYJUVL
        UWOSSUVJUWMVOVPVQUYJUWDUXDUWGUXGUYJUVOUWRUWCUXCULUVJUWMJVSZUYJUWBUXBJUY
        JUVQUWSUVTUXAUWAUVJUWMUVPVGVTUYJUVRUWTAUVSUVJUWMUVPVGWAWBWCWDZWEUYJUWFU
        XFUYJUWEUXEUNUOUYJUWCUXCUVOUWRUQUYLUYKWCWFWGWHWIUVJUXLVMZUVNUXPUWHUYGUY
        MUVKUXMUVMUXOUUQUVJUXLUEVNUYMUVLUXNSSUVJUXLVOVPVQUYMUWDUYCUWGUYFUYMUVOU
        XQUWCUYBULUVJUXLJVSZUYMUWBUYAJUYMUVQUXRUVTUXTUWAUVJUXLUVPVGVTUYMUVRUXSA
        UVSUVJUXLUVPVGWAWBWCWDZWEUYMUWFUYEUYMUWEUYDUNUOUYMUWCUYBUVOUXQUQUYOUYNW
        CWFWGWHWIUVJHVMZUVNUVIUWHUVGUYPUVKUUTUVMUUPUUQUVJHUEVNUYPUVLUUOSSUVJHVO
        VPVQUYPUWDUVCUWGUVFUYPUVOUVAUWCUVBULUVJHJVSZUYPUWBIJUYPUWBUVPHVGTZHUVPV
        GTZAUVSTZUWATIUYPUVQUYRUVTUYTUWAUVJHUVPVGVTUYPUVRUYSAUVSUVJHUVPVGWAWBWC
        RWKWDZWEUYPUWFUVEUYPUWEUVDUNUOUYPUWCUVBUVOUVAUQVUAUYQWCWFWGWHWIUWLUWHUW
        IURUWLURUEWJUWLUWIUWIUWKUUQUSWLWMWNUWMUUKUPZUXJUCUPZVHZUXIUYHVUDUXIVHZU
        XPUYGVUEUXPVHZUYGUWMUEVUDUXPUWMUEVMZUYGUXIVUDUXPVHZVUGVHZUXJUCSUFUGUPZU
        UQUXLUXKVMUYGVUIVUCUXJSUIZVHVUJVUIVUCVUKVUBVUCUXPVUGWOZVUIUXNUXJSVUIUXN
        SUXKUHZUXJVUISUXLUXKVUIUXLUEUXKVGTZUXKVUIUWMUEUXKVGVUHVUGWPWBVUIVUCUXKU
        UKUPZVUNUXKVMVULUXJUCWQUCUXKWRWSXCZWTVUIVUCVUMUXJVMVULUXJUCXAXDXCUXMUXO
        UUQVUDVUGXEXFXGUXJUCSVAXHUXMUXOUUQVUDVUGXIVUPABCDEFGUXLUYAUXJJKLMNOPQUY
        AXJZXKXLXMVUFUWNVHZUWMUUMUPZUWPUUQUKZVUCUXHUYGVUDUXPUWNVUTUXIVUHUWNVHZV
        USUWPUUQVVAUWMUUKUULVUBVUCUXPUWNXNZVVAUWNUWMUULUPZURVUHUWNWPZVVCUWMUEUA
        UEXOXPXHYDVVAUXNUWOSVVAVUBVUOSSUWMXQUHZXRTUPZUXNUWOVMVVBVVAUXJUCVUBVUCU
        XPUWNWOXSVVAVVFSVVEULUMZVVAVUBUWNVVGVVBVVDUWMUUKXTYAVVASYBUPVVEYBUPZVVF
        VVGYCYEVVAVUBUWMYFUPZVVHVVBUCUWMYGVVIVVEUWMYHYOWSSVVEYIYJYKUCUWMUXKSYLX
        LUXMUXOUUQVUDUWNXEXFZUXMUXOUUQVUDUWNXIZYMXMVUBVUCUXIUXPUWNYNVURUWQUXHVU
        RUWNUWPUUQVUDUXPUWNUWNUXIVVDXMVUDUXPUWNUWPUXIVVJXMVUDUXPUWNUUQUXIVVKXMY
        MVUDUXIUXPUWNWOYPVUTVUCUXHUKZABCDEFGUWMUXLUXBUYAUXJVVEJKVVEYQUQTUWMUHZL
        MNOPQVUQUXBXJVVEXJVVMXJVUSUWPUUQVUCUXHYRVUTVUCUWPUXHVUSUWPUUQVUCYSUUAVV
        LUXLUUBVUTVUCUXHVDVUSUWPUUQVUCUXHUUCVUTVUCUXDUXGUUFVUTVUCUXDUXGUUGUUDXL
        UUEYTYTUUHUUIUUJ @.
    @}
  $)
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Sign changes in a polynomial with real coefficients
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

$(
  @{
    signs.p @e |- .+^ = ( a e. { -u 1 , 0 , 1 } , b e. { -u 1 , 0 , 1 }
      |-> if ( b = 0 , a , b ) ) @.
    signs.w @e |- W = { <. ( Base ` ndx ) , { -u 1 , 0 , 1 } >. ,
      <. ( +g ` ndx ) , .+^ >. } @.
    signs.t @e |- T = ( w e. Word RR |-> ( n e. ( 0 ..^ ( # ` w ) ) |->
      ( W gsum ( i e. ( 0 ..^ n ) |-> ( sgn ` ( w ` i ) ) ) ) ) ) @.
    signs.u @e |- U = ( w e. Word RR |-> sum_ j e. ( 1 ..^ ( # ` w ) )
      if ( ( ( T ` w ) ` j ) =/= ( ( T ` w ) ` ( j - 1 ) ) , 1 , 0 ) ) @.
    signs.v @e |- V = ( f e. ( Poly ` RR ) |->
      ( U ` ( ( coeff ` f ) |` ( 0 ... ( deg ` f ) ) ) ) ) @.

    @( Sign changes for a polynomial.  (Contributed by Thierry Arnoux,
       20-Sep-2018.) @)
    signsvf @p |- V : ( Poly ` RR ) --> NN0 @=
      ? @.

    @( Sign changes for a polynomial.  (Contributed by Thierry Arnoux,
       20-Sep-2018.) @)
    signsvval @p |- ( F e. ( Poly ` RR )
      -> ( V ` F ) = ( U ` ( ( coeff ` F ) |` ( 0 ... ( deg ` F ) ) ) ) ) @=
      ? @.

    @( Multiplying a polynomial by ` Xp ` does not change the parity of the
       sign changes.  (Contributed by Thierry Arnoux, 20-Sep-2018.) @)
    signsmulx @p |- ( F e. ( ( Poly ` RR ) \ { 0p } )
      -> ( V ` ( F oF x. Xp ) ) = ( V ` F ) ) @=
      ? @.

    signs.z @e |- Z = ( ( `' F " { 0 } ) i^i RR+ ) @.
    signs.l @e |- L = ( ( V ` F ) - ( # ` Z ) ) @.

    @( Descartes's rule of signs, initial step.  @)
    signsz0 @p |- ( ( F e. ( ( Poly ` RR ) \ { 0p } ) /\ ( # ` Z ) = 0 )
      -> ( 0 <_ L /\ 2 || L ) ) @=
      ? @.

    @{
      signszn.y @e |- Y = ( ( `' G " { 0 } ) i^i RR+ ) @.
      signszn.k @e |- K = ( ( V ` G ) - ( # ` Y ) ) @.
      signszn.1 @e |- ( ( G e. ( ( Poly ` RR ) \ { 0p } )
        /\ ( # ` Y ) = N ) -> ( 0 <_ K /\ 2 || K ) ) @.
      @( Descartes's rule of signs, induction step.  @)
      signszn @p |- ( ( F e. ( ( Poly ` RR ) \ { 0p } )
        /\ ( # ` Z ) = ( N + 1 ) ) -> ( 0 <_ L /\ 2 || L ) ) @=
        ? @.
    @}

    @( Descartes's rule of signs.  The difference ` L ` between the number of
       changes of signs ` ( V `` F ) ` of a nonzero polynomial ` F ` and the
       number of nonnegative roots of ` F ` is positive and a multiple of 2.
       @)
    signs @p |- ( F e. ( ( Poly ` RR ) \ { 0p } ) -> ( 0 <_ L /\ 2 || L ) ) @=
      ? @.
  @}
$)

$( End $[ set-mbox-ta-signs.mm $] $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Number Theory
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    efcld.1 $e |- ( ph -> A e. CC ) $.
    $( Closure law for the exponential function, deduction version.
       (Contributed by Thierry Arnoux, 1-Dec-2021.) $)
    efcld $p |- ( ph -> ( exp ` A ) e. CC ) $=
      ( cc wcel ce cfv efcl syl ) ABDEBFGDECBHI $.
  $}

  ${
    $d A x $.  $d B x $.
    iblidicc.a $e |- ( ph -> A e. RR ) $.
    iblidicc.b $e |- ( ph -> B e. RR ) $.
    $( The identity function is integrable on any closed interval.
       (Contributed by Thierry Arnoux, 13-Dec-2021.) $)
    iblidicc $p |- ( ph -> ( x e. ( A [,] B ) |-> x ) e. L^1 ) $=
      ( cr wcel cicc co cv cmpt ccncf cibl wss iccssre syl2anc ax-resscn syl6ss
      cc ssid cncfmptid sylancl cniccibl syl3anc ) ACGHZDGHZBCDIJZBKLZUHTMJHZUI
      NHEFAUHTOTTOUJAUHGTAUFUGUHGOEFCDPQRSTUABUHTUBUCCDUIUDUE $.
  $}

  ${
    $( Continuity of the real positive square root function.  (Contributed by
       Thierry Arnoux, 20-Dec-2021.) $)
    rpsqrtcn $p |- ( sqrt |` RR+ ) e. ( RR+ -cn-> RR+ ) $=
      ( vx csqrt crp cres ccncf co wcel wf cv cdm cc cr wceq sqrtf ax-mp wb wss
      mpbir cc0 cpnf cfv wa wral rpssre ax-resscn sstri sseqtr4i sseli rpsqrtcl
      fdm jca rgen wfun ffun ffvresb cico cioo ioorp ioossico eqsstr3i resqrtcn
      resabs1 rescncf mp2 eqeltrri cncffvrn mp2an ) BCDZCCEFGZCCVHHZVJAIZBJZGZV
      KBUACGZUBZACUCZVOACVKCGVMVNCVLVKCKVLCLKUDUEUFZKKBHZVLKMNKKBUJOUGUHVKUIUKU
      LBUMZVJVPPVRVSNKKBUNOACCBUOORCKQVHCLEFZGVIVJPVQBSTUPFZDZCDZVHVTCWAQZWCVHM
      CSTUQFWAURSTUSUTZBCWAVBOWDWBWALEFGWCVTGWEVAWALCWBVCVDVECLCVHVFVGR $.
  $}

$(
  @{
    divsqrtid.a @e |- ( ph -> A e. RR ) @.
    divsqrtid.1 @e |- ( ph -> 0 <_ A ) @.
    @( A real number divided by its square root.  (Contributed by Thierry
       Arnoux, 29-Dec-2021.) @)
    divsqrtid @p |- ( ph -> ( A / ( sqrt ` A ) ) = ( sqrt ` A ) ) @=
      ? @.
  @}
$)

  ${
    $( A real number divided by its square root.  (Contributed by Thierry
       Arnoux, 1-Jan-2022.) $)
    divsqrtid $p |- ( A e. RR+ -> ( A / ( sqrt ` A ) ) = ( sqrt ` A ) ) $=
      ( crp wcel csqrt cfv cmul co cdiv cc0 cle wbr wceq rpre remsqsqrt syl2anc
      cr rpge0 oveq1d recnd sqrtcld rpsqrtcl rpne0d divcan4d eqtr3d ) ABCZADEZU
      FFGZUFHGAUFHGUFUEUGAUFHUEAPCIAJKUGALAMZAQANORUEUFUFUEAUEAUHSTZUIUEUFAUAUB
      UCUD $.
  $}

  ${
    $d A x y z $.  $d D x $.  $d ph x $.
    cxpcncf1.a $e |- ( ph -> A e. CC ) $.
    cxpcncf1.d $e |- ( ph -> D C_ ( CC \ ( -oo (,] 0 ) ) ) $.
    $( The power function on complex numbers, for fixed exponent A, is
       continuous.  Similar to ~ cxpcn .  (Contributed by Thierry Arnoux,
       20-Dec-2021.) $)
    cxpcncf1 $p |- ( ph -> ( x e. D |-> ( x ^c A ) ) e. ( D -cn-> CC ) ) $=
      ( vy vz cc co cv ccxp cmpt ccncf wss wceq wcel cfv eqid a1i cmnf cc0 cioc
      cdif cres resmpt syl ccnfld ctopn crest ctopon cnfldtopon difss resttopon
      ccn mp2an cnmptid cnmptc cmpt2 ctx cxpcn cnmpt12 ssid cvv elexi toponunii
      oveq12 restid ax-mp eqcomi cncfcn eleqtrd rescncf imp syl2anc eqeltrrd )
      ABIUAUBUCJZUDZBKZCLJZMZDUEZBDVTMZDINJZADVROZWBWCPFBVRDVTUFUGAWEWAVRINJZQZ
      WBWDQZFAWAUHUIRZVRUJJZWIUOJZWFABGHVSCGKZHKZLJZVTWJWJWIWIVRVRIWJVRUKRQZAWI
      IUKRZQZVRIOZWOWIWISZULZIVQUMZVRWIIUNUPTZABWJVRXBUQABCWJWIVRIXBWQAWTTZEURX
      BXCGHVRIWNUSWJWIUTJWIUOJQAGHVRWIWJVRSWSWJSZVATWLVSWMCLVGVBWKWFPAWFWKWRIIO
      WFWKPXAIVCVRIWIWJWIWSXDWIIUJJZWIWIVDQXEWIPWIWPWTVEWIVDIIWIWTVFVHVIVJVKUPV
      JTVLWEWGWHVRIDWAVMVNVOVP $.
  $}

  ${
    $d A x $.  $d ph x $.
    efmul2picn.1 $e |- ( ph -> ( x e. A |-> B ) e. ( A -cn-> CC ) ) $.
    $( Multiplying by ` ( _i x. ( 2 x. _pi ) ) ` and taking the exponential
       preserves continuity.  (Contributed by Thierry Arnoux, 13-Dec-2021.) $)
    efmul2picn $p |- ( ph -> ( x e. A |->
      ( exp ` ( ( _i x. ( 2 x. _pi ) ) x. B ) ) ) e. ( A -cn-> CC ) ) $=
      ( ci c2 cpi cmul co ce cc ccncf wcel efcn a1i wss cmpt ax-icn mulcli picn
      2cn cncfrss syl ssid cncfmptc syl3anc mulcncf cncfmpt1f ) ABFGHIJZIJZDIJK
      CKLLMJNAOPABUKDCAUKLNZCLQZLLQZBCUKRCLMJZNULAFUJSGHUBUATTPABCDRZUONUMECLUP
      UCUDUNALUEPBUKCLUFUGEUHUI $.
  $}

  ${
    $d t x y A $.  $d t x y B $.  $d x E $.  $d t x y F $.  $d t x y ph $.
    ftc2re.e $e |- E = ( C (,) D ) $.
    ftc2re.a $e |- ( ph -> A e. E ) $.
    ftc2re.b $e |- ( ph -> B e. E ) $.
    $( Lemma for ~ ftc2re .  (Contributed by Thierry Arnoux, 20-Dec-2021.) $)
    fct2relem $p |- ( ph -> ( A [,] B ) C_ E ) $=
      ( co cxr wcel clt wbr wa syl6eleq syl simpld simprd eliooord cicc eliooxr
      cioo wss iccssioo syl22anc syl6sseqr ) ABCUAJZDEUCJZFADKLZEKLZDBMNZCEMNZU
      HUIUDAUJUKABUILZUJUKOABFUIHGPZBDEUBQZRAUJUKUPSAULBEMNZAUNULUQOUOBDETQRADC
      MNZUMACUILURUMOACFUIIGPCDETQSDEBCUEUFGUG $.

    ftc2re.le $e |- ( ph -> A <_ B ) $.
    ftc2re.f $e |- ( ph -> F : E --> CC ) $.
    ftc2re.1 $e |- ( ph -> ( RR _D F ) e. ( E -cn-> CC ) ) $.
    $( The Fundamental Theorem of Calculus, part two, for functions continuous
       on ` D ` .  (Contributed by Thierry Arnoux, 1-Dec-2021.) $)
    ftc2re $p |- ( ph ->
      S. ( A (,) B ) ( ( RR _D F ) ` t ) _d t = ( ( F ` B ) - ( F ` A ) ) ) $=
      ( co cr cfv cc wceq wcel vy vx cioo cv cicc cres cdv citg ioossre eqsstri
      cmin wss a1i sseldd ccncf crn ctg cnt wf ax-resscn iccssre syl2anc ccnfld
      ctopn tgioo2 dvres syl22anc iccntr reseq2d eqtrd ioossicc fct2relem sstrd
      eqid rescncf sylc eqeltrd cibl cmbf cdm cvol cabs cle wbr wral wrex cnmbf
      ioombl cin dmres fveq2i cncff syl fdm ineq2d df-ss fveq2d volioo resubcld
      sylib syl3anc syl5eqel wi cniccbdd wa syl5eq eqsstrd ssralv adantr sselda
      fvres ad2antrr eleqtrd eqtr4d breq1d biimpd ralimdva syld reximdva bddibl
      mpd simpr dvcn syl31anc fveq1d sylan9eq ralrimiva itgeq2 cxr rexrd ubicc2
      ftc2 fvresd lbicc2 oveq12d 3eqtr3d ) ABCDUCOZBUDZPHCDUEOZUFZUGOZQZUHZDYTQ
      ZCYTQZUKOBYQYRPHUGOZQZUHZDHQZCHQZUKOABCDYTAGPCGPULZAGEFUCOPIEFUIUJUMZJUNZ
      AGPDUULKUNZLAUUAUUFYQUFZYQRUOOZAUUAUUFYSUCUPUQQZURQQZUFZUUOAPRULZGRHUSZUU
      KYSPULZUUAUUSSUUTAUTUMZMUULACPTZDPTZUVBUUMUUNCDVAVBGYSPUUQHVCVDQZUVFVNZUV
      FUVGVEVFVGAUURYQUUFAUVDUVEUURYQSUUMUUNCDVHVBVIVJZAYQGULZUUFGRUOOZTZUUOUUP
      TZAYQYSGYQYSULACDVKUMZACDEFGIJKVLZVMZNGRYQUUFVOVPZVQAUUAUUOVRUVHAUUOVSTZU
      UOVTZWAQZPTUAUDZUUOQZWBQZUBUDZWCWDZUAUVRWEZUBPWFZUUOVRTAYQWAVTTZUVLUVQUWG
      ACDWHUMUVPYQUUOWGVBAUVSYQUUFVTZWIZWAQZPUVRUWIWAUUFYQWJZWKAUWJYQWAQZPAUWIY
      QWAAUWIYQGWIZYQAUWHGYQAGRUUFUSZUWHGSZAUVKUWNNGRUUFWLWMGRUUFWNWMZWOAUVIUWM
      YQSUVOYQGWPWTVJZWQAUWLDCUKOZPAUVDUVECDWCWDZUWLUWRSUUMUUNLCDWRXAADCUUNUUMW
      SVQVQXBAUVTUUFYSUFZQZWBQZUWCWCWDZUAYSWEZUBPWFZUWFAUVDUVEUWTYSRUOOZTZUXEUU
      MUUNAUVKUXGNAYSGULZUVKUXGXCUVNGRYSUUFVOWMYAUBUACDUWTXDXAAUXDUWEUBPAUWCPTZ
      XEZUXDUXCUAUVRWEZUWEAUXDUXKXCZUXIAUVRYSULZUXLAUVRYQYSAUVRUWIYQUWKUWQXFZUV
      MXGZUXCUAUVRYSXHWMXIUXJUXCUWDUAUVRUXJUVTUVRTZXEZUXCUWDUXQUXBUWBUWCWCUXQUX
      AUWAWBUXQUXAUVTUUFQZUWAUXQUVTYSTUXAUXRSUXJUVRYSUVTAUXMUXIUXOXIXJUVTYSUUFX
      KWMUXQUVTYQTUWAUXRSUXQUVTUVRYQUXJUXPYBAUVRYQSUXIUXPUXNXLXMUVTYQUUFXKWMXNW
      QXOXPXQXRXSYAUBUAUUOXTXAVQAHUVJTZYTUXFTZAUUTUVAUUKUWOUXSUVCMUULUWPGPHYCYD
      AUXHUXSUXTXCUVNGRYSHVOWMYAYLAUUBUUGSZBYQWEUUCUUHSAUYABYQAYRYQTUUBYRUUOQUU
      GAYRUUAUUOUVHYEYRYQUUFXKYFYGBYQUUBUUGYHWMAUUDUUIUUEUUJUKADYSHACYITZDYITZU
      WSDYSTACUUMYJZADUUNYJZLCDYKXAYMACYSHAUYBUYCUWSCYSTUYDUYELCDYNXAYMYOYP $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d E x y $.  $d F x y $.  $d ph x y $.
    fdvposlt.d $e |- E = ( C (,) D ) $.
    fdvposlt.a $e |- ( ph -> A e. E ) $.
    fdvposlt.b $e |- ( ph -> B e. E ) $.
    fdvposlt.f $e |- ( ph -> F : E --> RR ) $.
    fdvposlt.c $e |- ( ph -> ( RR _D F ) e. ( E -cn-> RR ) ) $.
    ${
      fdvposlt.lt $e |- ( ph -> A < B ) $.
      fdvposlt.1 $e |- ( ( ph /\ x e. ( A (,) B ) ) -> 0 < ( ( RR _D F ) ` x )
        ) $.
      $( Functions with a positive derivative, i.e. monotonously growing
         functions, preserve strict ordering.  (Contributed by Thierry Arnoux,
         20-Dec-2021.) $)
      fdvposlt $p |- ( ph -> ( F ` A ) < ( F ` B ) ) $=
        ( clt co cr wcel cc cfv wbr cc0 cmin cioo cdv citg cvol ioossre eqsstri
        cv sseldi posdifd mpbid cle wceq ltled volioo syl3anc breqtrrd cicc wss
        ioossicc a1i cdm ioombl wa wf ccncf cncff syl adantr fct2relem ffvelrnd
        sselda cmpt cibl ax-resscn ssid cncfss mp2an feqresmpt rescncf eqeltrrd
        cres sylc cniccibl iblss crp syldan elrp sylanbrc itggt0 sylancl ftc2re
        fss breqtrd mpbird ) ACHUAZDHUAZPUBUCWTWSUDQZPUBAUCBCDUEQZBUKZRHUFQZUAZ
        UGXAPABXBXEAUCDCUDQZXBUHUAZPACDPUBUCXFPUBNACDAGRCGEFUEQRIEFUIUJZJULZAGR
        DXHKULZUMUNACRSZDRSZCDUOUBXGXFUPXIXJACDXIXJNUQZCDURUSUTABXBCDVAQZXERXBX
        NVBACDVCVDZXBUHVESACDVFVDAXCXNSZVGGRXCXDAGRXDVHZXPAXDGRVIQZSZXQMGRXDVJV
        KZVLAXNGXCACDEFGIJKVMZVOZVNAXKXLBXNXEVPZXNTVIQZSYCVQSXIXJAXNRVIQZYDYCRT
        VBZTTVBZYEYDVBVRTVSZXNRTVTWAAXDXNWEZYCYEABGRXNXDXTYAWBAXNGVBXSYIYESYAMG
        RXNXDWCWFWDULCDYCWGUSWHAXCXBSZVGZXERSUCXEPUBXEWISYKGRXCXDAXQYJXTVLAYJXP
        XCGSAXBXNXCXOVOYBWJVNOXEWKWLWMABCDEFGHIJKXMAGRHVHYFGTHVHLVRGRTHWPWNAXRG
        TVIQZXDYFYGXRYLVBVRYHGRTVTWAMULWOWQAWSWTAGRCHLJVNAGRDHLKVNUMWR $.
    $}

    ${
      fdvneggt.lt $e |- ( ph -> A < B ) $.
      fdvneggt.1 $e |- ( ( ph /\ x e. ( A (,) B ) ) -> ( ( RR _D F ) ` x ) < 0
        ) $.
      $( Functions with a negative derivative, i.e. monotonously decreasing
         functions, inverse strict ordering.  (Contributed by Thierry Arnoux,
         20-Dec-2021.) $)
      fdvneggt $p |- ( ph -> ( F ` B ) < ( F ` A ) ) $=
        ( vy cfv cr wcel cc clt wbr cneg cv cmpt wa ffvelrnda renegcld eqid cdv
        fmptd co ccncf cvv cpr reelprrecn ax-resscn sseldi fvexd feqmptd oveq2d
        a1i wf cncff syl eqtr3d dvmptneg wb ssid cncfss mp2an negfcncf cncffvrn
        sylancr mpbird eqeltrd cioo adantr cicc ioossicc fct2relem sstrd sselda
        wss cc0 ffvelrnd lt0neg1d mpbid fveq1d simpr fveq2d negeqd fvmptd eqtrd
        wceq breqtrrd fdvposlt eqidd 3brtr3d ltnegd ) ADHQZCHQZUAUBXBUCZXAUCZUA
        UBACPGPUDZHQZUCZUEZQDXHQXCXDUAABCDEFGXHIJKAPGXGRXHAXEGSUFZXFAGRXEHLUGZU
        HXHUIUKARXHUJULZPGXERHUJULZQZUCZUEZGRUMULZAPXFXMRUNGRRTUOSAUPVBXIRTXFUQ
        XJURXIXEXLUSAXLRPGXFUEZUJULPGXMUEAHXQRUJAPGRHLUTVAAPGRXLAXLXPSGRXLVCZMG
        RXLVDVEZUTVFVGZAXOXPSZGRXOVCZAPGXNRXOXIXMAGRXEXLXSUGUHXOUIZUKARTWDZXOGT
        UMULZSZYAYBVHUQAXLYESYFAXPYEXLYDTTWDXPYEWDUQTVIGRTVJVKMURPGXLXOYCVLVEGT
        RXOVMVNVOVPNABUDZCDVQULZSZUFZWEYGXLQZUCZYGXKQZUAYJYKWEUAUBWEYLUAUBOYJYK
        YJGRYGXLAXRYIXSVRAYHGYGAYHCDVSULZGYHYNWDACDVTVBACDEFGIJKWAWBWCZWFZWGWHY
        JYMYGXOQYLYJYGXKXOAXKXOWOYIXTVRWIYJPYGXNYLGXORXOXOWOYJYCVBYJXEYGWOZUFZX
        MYKYRXEYGXLYJYQWJWKWLYOYJYKYPUHWMWNWPWQAPCXGXCGXHRAXHWRZAXECWOZUFZXFXBU
        UAXECHAYTWJWKWLJAXBAGRCHLJWFZUHWMAPDXGXDGXHRYSAXEDWOZUFZXFXAUUDXEDHAUUC
        WJWKWLKAXAAGRDHLKWFZUHWMWSAXAXBUUEUUBWTVO $.
    $}

    ${
      fdvposle.le $e |- ( ph -> A <_ B ) $.
      fdvposle.1 $e |- ( ( ph /\ x e. ( A (,) B ) ) -> 0 <_ ( ( RR _D F ) ` x )
          ) $.
      $( Functions with a nonnegative derivative, i.e. monotonously growing
         functions, preserve ordering.  (Contributed by Thierry Arnoux,
         20-Dec-2021.) $)
      fdvposle $p |- ( ph -> ( F ` A ) <_ ( F ` B ) ) $=
        ( co cr wss wcel cc cc0 cfv cmin cle wbr cioo cv cdv citg cicc ioossicc
        a1i cvol cdm ioombl wa ccncf cncff syl adantr fct2relem sselda ffvelrnd
        wf cmpt cibl ioossre eqsstri sseldi ax-resscn ssid mp2an cres feqresmpt
        cncfss rescncf sylc eqeltrrd cniccibl syl3anc syldan itgge0 fss sylancl
        iblss ftc2re breqtrd subge0d mpbid ) AUADHUBZCHUBZUCPZUDUEWKWJUDUEAUABC
        DUFPZBUGZQHUHPZUBZUIWLUDABWMWPABWMCDUJPZWPQWMWQRACDUKULZWMUMUNSACDUOULA
        WNWQSZUPGQWNWOAGQWOVDZWSAWOGQUQPZSZWTMGQWOURUSZUTAWQGWNACDEFGIJKVAZVBZV
        CACQSDQSBWQWPVEZWQTUQPZSXFVFSAGQCGEFUFPQIEFVGVHZJVIAGQDXHKVIAWQQUQPZXGX
        FQTRZTTRZXIXGRVJTVKZWQQTVOVLAWOWQVMZXFXIABGQWQWOXCXDVNAWQGRXBXMXISXDMGQ
        WQWOVPVQVRVICDXFVSVTWEAWNWMSZUPGQWNWOAWTXNXCUTAXNWSWNGSAWMWQWNWRVBXEWAV
        COWBABCDEFGHIJKNAGQHVDXJGTHVDLVJGQTHWCWDAXAGTUQPZWOXJXKXAXORVJXLGQTVOVL
        MVIWFWGAWJWKAGQDHLKVCAGQCHLJVCWHWI $.
    $}

    ${
      fdvnegge.le $e |- ( ph -> A <_ B ) $.
      fdvnegge.1 $e |- ( ( ph /\ x e. ( A (,) B ) ) -> ( ( RR _D F ) ` x ) <_ 0
          ) $.
      $( Functions with a non-positive derivative, i.e. decreasing functions,
         preserve ordering.  (Contributed by Thierry Arnoux, 20-Dec-2021.) $)
      fdvnegge $p |- ( ph -> ( F ` B ) <_ ( F ` A ) ) $=
        ( vy cfv cr wcel cc cle wbr cneg cv cmpt wa ffvelrnda renegcld eqid cdv
        fmptd co ccncf cvv cpr reelprrecn ax-resscn sseldi fvexd feqmptd oveq2d
        a1i wf cncff syl eqtr3d dvmptneg wb ssid cncfss mp2an negfcncf cncffvrn
        sylancr mpbird eqeltrd cioo adantr cicc ioossicc fct2relem sstrd sselda
        wss cc0 ffvelrnd le0neg1d mpbid fveq1d simpr fveq2d negeqd fvmptd eqtrd
        wceq breqtrrd fdvposle eqidd 3brtr3d lenegd ) ADHQZCHQZUAUBXBUCZXAUCZUA
        UBACPGPUDZHQZUCZUEZQDXHQXCXDUAABCDEFGXHIJKAPGXGRXHAXEGSUFZXFAGRXEHLUGZU
        HXHUIUKARXHUJULZPGXERHUJULZQZUCZUEZGRUMULZAPXFXMRUNGRRTUOSAUPVBXIRTXFUQ
        XJURXIXEXLUSAXLRPGXFUEZUJULPGXMUEAHXQRUJAPGRHLUTVAAPGRXLAXLXPSGRXLVCZMG
        RXLVDVEZUTVFVGZAXOXPSZGRXOVCZAPGXNRXOXIXMAGRXEXLXSUGUHXOUIZUKARTWDZXOGT
        UMULZSZYAYBVHUQAXLYESYFAXPYEXLYDTTWDXPYEWDUQTVIGRTVJVKMURPGXLXOYCVLVEGT
        RXOVMVNVOVPNABUDZCDVQULZSZUFZWEYGXLQZUCZYGXKQZUAYJYKWEUAUBWEYLUAUBOYJYK
        YJGRYGXLAXRYIXSVRAYHGYGAYHCDVSULZGYHYNWDACDVTVBACDEFGIJKWAWBWCZWFZWGWHY
        JYMYGXOQYLYJYGXKXOAXKXOWOYIXTVRWIYJPYGXNYLGXORXOXOWOYJYCVBYJXEYGWOZUFZX
        MYKYRXEYGXLYJYQWJWKWLYOYJYKYPUHWMWNWPWQAPCXGXCGXHRAXHWRZAXECWOZUFZXFXBU
        UAXECHAYTWJWKWLJAXBAGRCHLJWFZUHWMAPDXGXDGXHRYSAXEDWOZUFZXFXAUUDXEDHAUUC
        WJWKWLKAXAAGRDHLKWFZUHWMWSAXAXBUUEUUBWTVO $.
    $}
  $}

  ${
    $d A k $.  $d B k $.  $d C k $.  $d k ph $.
    prodfzo03.1 $e |- ( k = 0 -> D = A ) $.
    prodfzo03.2 $e |- ( k = 1 -> D = B ) $.
    prodfzo03.3 $e |- ( k = 2 -> D = C ) $.
    prodfzo03.a $e |- ( ( ph /\ k e. ( 0 ..^ 3 ) ) -> D e. CC ) $.
    $( A product of three factors, indexed starting with zero.  (Contributed by
       Thierry Arnoux, 14-Dec-2021.) $)
    prodfzo03 $p |- ( ph -> prod_ k e. ( 0 ..^ 3 ) D = ( A x. ( B x. C ) ) ) $=
      ( cc0 c3 co c1 cmul c2 wceq a1i wcel cc cfzo cprod csn c0 fzodisjsn caddc
      cin cun 2p1e3 oveq2i cuz cfv fzosplitsn ax-mp eqtr3i cfn fzofi fprodsplit
      2eluzge0 wne 0ne1 disjsn2 mp1i cpr fzo0to2pr df-pr eqtri cv wss cz cle 2z
      wbr 3z 2re 3re 2lt3 ltleii eluz2 mpbir3an fzoss2 sseli sylan2 oveq1d snfi
      eqtrd velsn wa adantl simpr adantr eqeltrrd wrex ctp c0ex tpid1 fzo0to3tp
      eleqtrri eqid eqeq1d rspcev mp2an r19.29a eqeltrd sylan2b fprodcl 1ex 2ex
      tpid2 tpid3 mulassd cn0 0nn0 prodsn syl2anc 1nn0 2nn0 oveq12d 3eqtrd ) AK
      LUAMZEFUBZKUCZEFUBZNUCZEFUBZOMZPUCZEFUBZOMZYCYEYHOMZOMBCDOMZOMAYAKPUAMZEF
      UBZYHOMYIAYLYGEXTFYLYGUGUDQAKPUERXTYLYGUHZQAKPNUFMZUAMZXTYNYOLKUAUIUJPKUK
      ULSYPYNQUSKPUMUNUORXTUPSAKLUQRJURAYMYFYHOAYBYDEYLFKNUTYBYDUGUDQAVAKNVBVCY
      LYBYDUHZQAYLKNVDYQVEKNVFVGRYLUPSAKPUQRFVHZYLSAYRXTSZETSZYLXTYRLPUKULSZYLX
      TVIUUAPVJSLVJSPLVKVMVLVNPLVOVPVQVRPLVSVTPKLWAUNWBJWCURWDWFAYCYEYHAYBEFYBU
      PSAKWERYRYBSAYRKQZYTFKWGAUUBWHEBTUUBEBQZAGWIABTSZUUBAUUCUUDFXTAYSWHZUUCWH
      EBTUUEUUCWJUUEYTUUCJWKWLUUCFXTWMZAKXTSBBQZUUFKKNPWNZXTKNPWOWPWQWRBWSUUCUU
      GFKXTUUBEBBGWTXAXBRXCZWKXDXEXFAYDEFYDUPSANWERYRYDSAYRNQZYTFNWGAUUJWHECTUU
      JECQZAHWIACTSZUUJAUUKUULFXTUUEUUKWHECTUUEUUKWJUUEYTUUKJWKWLUUKFXTWMZANXTS
      CCQZUUMNUUHXTKNPXGXIWQWRCWSUUKUUNFNXTUUJECCHWTXAXBRXCZWKXDXEXFAYGEFYGUPSA
      PWERYRYGSAYRPQZYTFPWGAUUPWHEDTUUPEDQZAIWIADTSZUUPAUUQUURFXTUUEUUQWHEDTUUE
      UUQWJUUEYTUUQJWKWLUUQFXTWMZAPXTSDDQZUUSPUUHXTKNPXHXJWQWRDWSUUQUUTFPXTUUPE
      DDIWTXAXBRXCZWKXDXEXFXKAYCBYJYKOAKXLSZUUDYCBQUVBAXMRUUIEBFKXLGXNXOAYECYHD
      OANXLSZUULYECQUVCAXPRUUOECFNXLHXNXOAPXLSZUURYHDQUVDAXQRUVAEDFPXLIXNXOXRXR
      XS $.
  $}

  ${
    $d A x y z $.  $d B z $.  $d C f y z $.  $d F f y z $.  $d I k x y z $.
    $d f k x y z $.  $d ph f k y z $.
    actfunsn.1 $e |- ( ( ph /\ k e. C ) -> A C_ ( C ^m B ) ) $.
    actfunsn.2 $e |- ( ph -> C e. _V ) $.
    actfunsn.3 $e |- ( ph -> I e. V ) $.
    actfunsn.4 $e |- ( ph -> -. I e. B ) $.
    actfunsn.5 $e |- F = ( x e. A |-> ( x u. { <. I , k >. } ) ) $.
    $( The action ` F ` of extending function from ` B ` to ` C ` with new
       values at point ` I ` is a bijection.  (Contributed by Thierry Arnoux,
       9-Dec-2021.) $)
    actfunsnf1o $p |- ( ( ph /\ k e. C ) -> F : A -1-1-onto-> ran F ) $=
      ( vz cv wcel wa wceq adantr crn cop csn cun cres cmpt uneq1 cbvmptv eqtri
      vy cvv vex snex unex a1i resex wrex elrnmpti sylibr adantll simpr reseq1d
      rspe wfn cin c0 cmap co sselda elmapfn syl fnsng sylan wn disjsn fnunres1
      syl3anc eqtr2d jca anasss ad3antrrr simplr sseldd ad4antr simp-4r syl2anc
      wss eqeltrd sylib r19.29a uneq1d eqtrd eqtr4d impbida f1od ) AFPZEQZRZOUJ
      CGUAZOPZHWPUBZUCZUDZUJPZDUEZGUKUKGBCBPZXBUDZUFOCXCUFNBOCXGXCXFWTXBUGUHUIZ
      XCUKQWRWTCQZRZWTXBOULXAUMUNZUOXEUKQWRXDWSQZRZXDDUJULUPUOWRXIXDXCSZRZXLWTX
      ESZRZWRXIXNXQXJXNRZXLXPXIXNXLWRXOXNOCUQZXLXNOCVCOCXCXDGXHXKURZUSUTXRXEXCD
      UEZWTXRXDXCDXJXNVAVBXJYAWTSZXNXJWTDVDZXBHUCZVDZDYDVEVFSZYBXJWTEDVGVHZQZYC
      WRCYGWTJVIWTEDVJZVKWRYEXIAHIQZWQYELHWPIEVLZVMTWRYFXIAYFWQAHDQVNYFMDHVOUSZ
      TTDYDWTXBVPZVQTVRVSVTWRXLXPXOXMXPRZXIXNYNWTXECXMXPVAZXMXECQZXPXMXNYPOCXMX
      IRZXNRZXEYACYRXDXCDYQXNVAZVBZYRYAWTCYRYCYEYFYBYRYHYCYRCYGWTWRCYGWGXLXIXNJ
      WAXMXIXNWBZWCYIVKYRYJWQYEAYJWQXLXIXNLWDAWQXLXIXNWEYKWFAYFWQXLXIXNYLWDYMVQ
      ZUUAWHWHXMXLXSWRXLVAXTWIZWJTWHYNXCXEXBUDZXDYNWTXEXBYOWKXMUUDXDSZXPXMXNUUE
      OCYRUUDXCXDYRXEWTXBYRXEYAWTYTUUBWLWKYSWMUUCWJTVRVSVTWNWO $.

    $( The action ` F ` of extending function from ` B ` to ` C ` with new
       values at point ` I ` yields different functions.  (Contributed by
       Thierry Arnoux, 9-Dec-2021.) $)
    actfunsnrndisj $p |- ( ph -> Disj_ k e. C ran F ) $=
      ( vf vz cv wceq wcel wa cfv crn wdisj cop csn cun simpr fveq1d wfn cin c0
      wral cmap wss ad2antrr sseldd elmapfn syl ad3antrrr simpllr fnsng syl2anc
      co disjsn sylibr snidg fvun2 syl112anc fvsng eqtrd adantr wrex cmpt uneq1
      wn cbvmptv eqtri vex snex unex elrnmpti sylib r19.29a ralrimiva invdisj )
      AHOQZUAZFQZRZOGUBZULZFEULFEWJUCAWKFEAWHESZTZWIOWJWMWFWJSZTZWFPQZHWHUDZUEZ
      UFZRZWIPCWOWPCSZTZWTTZWGHWSUAZWHXCHWFWSXBWTUGUHXBXDWHRWTXBXDHWRUAZWHXBWPD
      UIZWRHUEZUIZDXGUJUKRZHXGSZXDXERXBWPEDUMVCZSXFXBCXKWPWMCXKUNWNXAJUOWOXAUGU
      PWPEDUQURXBHISZWLXHAXLWLWNXALUSZAWLWNXAUTZHWHIEVAVBAXIWLWNXAAHDSVOXIMDHVD
      VEUSXBXLXJXMHIVFURDXGWPWRHVGVHXBXLWLXEWHRXMXNHWHIEVIVBVJVKVJWOWNWTPCVLWMW
      NUGPCWSWFGGBCBQZWRUFZVMPCWSVMNBPCXPWSXOWPWRVNVPVQWPWRPVRWQVSVTWAWBWCWDWDF
      OEWJWGWEUR $.
  $}

  ${
    $d N x y z $.
    $( The basis for the circle method in the form of trigonometric sums.
       Proposition of [Nathanson] p. 123.  (Contributed by Thierry Arnoux,
       2-Dec-2021.) $)
    itgexpif $p |- ( N e. ZZ -> S. ( 0 (,) 1 ) ( exp ` ( ( _i x. ( 2 x. _pi ) )
      x. ( N x. x ) ) ) _d x = if ( N = 0 , 1 , 0 ) ) $=
      ( vy wcel cc0 wceq c1 co cmul ce cfv wa fveq2d cc cr cdiv cmpt a1i mulcld
      adantr vz cz cif cioo ci c2 cpi cv citg wral oveq1 oveq2d ax-resscn sstri
      ioossre sseli mul02d ax-icn 2cn picn mulcli mul01i ef0 sylan9eq ralrimiva
      syl6eq itgeq2 syl cdm ioombl 0re 1re ioovolcl mp2an ax-1cn itgconst mp3an
      cvol cmin cle wbr 0le1 volioo subid1i oveq2i mulid1i 3eqtri adantl eqcomd
      eqtri wn cdv cmnf cpnf ioomax eqcomi 0red 1red wss sselda 2cnd simpl zcnd
      simpr efcld syldan wne ine0 2ne0 pipos gtneii mulne0i neqned mulne0d eqid
      fmptd ccncf cpr reelprrecn cnelprrecn dvmptid dvmptcmul mulid1d mpteq2dva
      divcld eqtrd dvef wf eff feqmptd 3eqtr3a dvmptdivc fveq2 dvmptco divcan1d
      oveq1d efcn mp1i eqeltrrd fvmptd cres resmpt mulc1cncf wi rescncf eqeltrd
      cncfmpt1f ftc2re fveq1d oveq2 cbvmptv fvmpt2d mulassd sylan2 eqidd ef2kpi
      mpd sseldi mul01d oveq12d subidd 3eqtr3d ifeqda ) BUBDZBEFZGEUCAEGUDHZUEU
      FUGIHZIHZBAUHZIHZIHZJKZUIZUVDUVEGEUVMUVDUVELUVMGUVEUVMGFUVDUVEUVMAUVFGUIZ
      GUVEUVLGFZAUVFUJUVMUVNFUVEUVOAUVFUVEUVIUVFDZUVLUVHEUVIIHZIHZJKZGUVEUVKUVR
      JUVEUVJUVQUVHIBEUVIIUKULMUVPUVSEJKZGUVPUVREJUVPUVRUVHEIHEUVPUVQEUVHIUVPUV
      IUVFNUVIUVFONEGUOZUMUNUPUQULUVHUEUVGURUFUGUSUTVAZVAZVBVFMVCVFVDVEAUVFUVLG
      VGVHUVNGUVFVRKZIHZGGIHGUVFVRVIDUWDODZGNDZUVNUWEFEGVJEODZGODZUWFVKVLEGVMVN
      VOAUVFGVPVQUWDGGIUWDGEVSHZGUWHUWIEGVTWAZUWDUWJFVKVLWBEGWCVQGVOWDWJWEGVOWF
      WGVFWHWIUVDUVEWKZLZUVMEUWMAUVFUVIOCOUVHBIHZCUHZIHZJKZUWNPHZQZWLHZKZUIZGUW
      SKZEUWSKZVSHZUVMEUWMAEGWMWNOUWSWMWNUDHOWOWPUWMWQZUWMWRZUWKUWMWBRUWMCOUWRN
      UWSUWMUWOODZLZUWQUWNUWMUXHUWONDZUWQNDUWMONUWOONWSZUWMUMRZWTZUWMUXJLZUWPUX
      NUWNUWOUWMUWNNDZUXJUWMUVHBUWMUEUVGUENDUWMURRUWMUFUGUWMXAUGNDUWMUTRSSZUWMB
      UVDUWLXBZXCZSZTUWMUXJXDSXEXFZUWMUXOUXHUXSTZUWMUWNEXGZUXHUWMUVHBUXPUXRUVHE
      XGUWMUEUVGURUWBXHUFUGUSUTXIEUGVKXJXKXLXLRUWMBEUVDUWLXDXMXNZTZYEUWSXOXPUWM
      UWTCOUWQQZONXQHZUWMUWTCOUWRUWNIHZQUYEUWMCUAUWPUWNUAUHZJKZUWNPHZUYJONUWRUW
      RNNONOONXRZDUWMXSRZNUYKDUWMXTRZUXIUWNUWOUYAUXMSUYAUWMUYHNDZLZUYIUWNUYOUYH
      UWMUYNXDXEZUWMUXOUYNUXSTUWMUYBUYNUYCTYEZUYQUWMOCOUWPQZWLHCOUWNGIHZQCOUWNQ
      UWMCUWOGUWNOOOUYLUXMUWIUXIVLRUWMCOUYLYAUXSYBUWMCOUYSUWNUXIUWNUYAYCYDYFUWM
      UAUYIUYIUWNNNNUYMUYPUYPUWMNJWLHJNUANUYIQZWLHUYTYGUWMJUYTNWLUWMUANNJNNJYHU
      WMYIRYJZULVUAYKUXSUYCYLUYHUWPFUYIUWQUWNPUYHUWPJYMYPZVUBYNUWMCOUYGUWQUXIUW
      QUWNUXTUYAUYDYOYDYFZUWMCUWPJOJNNXQHZDUWMYQRUWMCNUWPQZOUUAZUYRUYFUXKVUFUYR
      FUWMUMCNOUWPUUBYRUWMVUEVUDDZVUFUYFDZUWMUXOVUGUXSCUWNVUEVUEXOUUCVHUXKVUGVU
      HUUDUWMUMNNOVUEUUEYRUUQYSUUGUUFUUHUWMUXAUVLFZAUVFUJUXBUVMFUWMVUIAUVFUVPUW
      MUVIODZVUIUVFOUVIUWAUPUWMVUJLZUXAUVIUYEKZUVLVUKUVIUWTUYEUWMUWTUYEFVUJVUCT
      UUIVUKVULUWNUVIIHZJKZUVLUWMAOVUNUYENUYEAOVUNQFUWMCAOUWQVUNUWOUVIFUWPVUMJU
      WOUVIUWNIUUJMUUKRVUKVUMVUKUWNUVIUWMUXOVUJUXSTUWMONUVIUXLWTZSXEUULVUKVUMUV
      KJVUKUVHBUVIUVHNDVUKUWCRUWMBNDVUJUXRTVUOUUMMYFYFUUNVEAUVFUXAUVLVGVHUWMUXE
      GUWNPHZVUPVSHEUWMUXCVUPUXDVUPVSUWMUXCUYSJKZUWNPHZVUPUWMCGUWRVUROUWSNUWMUW
      SUUOZUWMUWOGFZLZUWQVUQUWNPVVAUWPUYSJVVAUWOGUWNIUWMVUTXDULMYPUXGUWMVUQUWNU
      WMUYSUWMUWNGUXSUWGUWMVORSXEUXSUYCYEZYTUWMVUQGUWNPUWMVUQUWNJKZGUWMUYSUWNJU
      WMUWNUXSYCMUWMUVDVVCGFUXQBUUPVHYFYPZYFUWMUXDUWNEIHZJKZUWNPHZVUPUWMCEUWRVV
      GOUWSNVUSUWMUWOEFZLZUWQVVFUWNPVVIUWPVVEJVVIUWOEUWNIUWMVVHXDULMYPUXFUWMVVF
      UWNUWMVVEUWMUWNEUXSUWMONEUMUXFUURSXEUXSUYCYEYTUWMVVFGUWNPUWMVVFUVTGUWMVVE
      EJUWMUWNUXSUUSMVCVFYPYFUUTUWMVUPUWMVURVUPNVVDVVBYSUVAYFUVBWIUVCWI $.
  $}

  ${
    $d A k $.  $d B i $.  $d M i j k $.  $d N i j k $.  $d i j k ph $.
    fzsum2sub.m $e |- ( ph -> M e. NN0 ) $.
    fzsum2sub.n $e |- ( ph -> N e. NN0 ) $.
    fzsum2sub.1 $e |- ( i = ( k - j ) -> A = B ) $.
    fzsum2sub.2 $e |- ( ( ph /\ i e. ( ZZ>= ` -u j ) /\ j e. ( 1 ... N ) )
      -> A e. CC ) $.
    fzsum2sub.3 $e |- ( ( ( ph /\ j e. ( 1 ... N ) )
      /\ k e. ( ( ( M + j ) + 1 ) ... ( M + N ) ) ) -> B = 0 ) $.
    fzsum2sub.4 $e |- ( ( ( ph /\ j e. ( 1 ... N ) ) /\ k e. ( 0 ..^ j ) )
      -> B = 0 ) $.
    $( Lemma for ~ breprexp - Re-index a double sum, using difference of the
       initial indices.  (Contributed by Thierry Arnoux, 7-Dec-2021.) $)
    fsum2dsub $p |- ( ph -> sum_ i e. ( 0 ... M ) sum_ j e. ( 1 ... N ) A
      = sum_ k e. ( 0 ... ( M + N ) ) sum_ j e. ( 1 ... N ) B ) $=
      ( co cc0 csu caddc wcel adantr c1 cfz cv wa fzssz simpr sseldi nn0zd cneg
      cz 0zd cuz cfv cc simpll wss cn fz1ssnn nnssnn0 sstri nn0uz syl6eleq neg0
      cn0 uzneg syl5eqelr fzss1 3syl fzssuz syl6ss syl3anc fsumshft clt wbr cin
      sselda c0 wceq nnnn0d nn0addcld nn0red ltp1d fzdisj syl cun zaddcld nnred
      cr nn0addge2 syl2anc elfzle2 adantl leadd2dd elfz4 syl32anc fzsplit fzfid
      cle fz2ssnn0 sseldd cmin eleq1d wral simplr an32s ralrimiva nnsscn nn0cnd
      negsubdi2d eluzmn eqeltrrd rspcdva syl21anc fsumsplit zcnd addid2d oveq1d
      eqcomd sumeq1d sumeq2dv cfn fzfi sumz olcs syl6eq oveq12d elfzuz3 eluzadd
      ax-mp zsscn addcomd fsumcl 3eqtrrd cfzo fzval3 zred letrd 3eqtr4d fsumcom
      eqtrd fveq2d 3eltr3d fzss2 eleqtrd addid1d fzodisj peano2zd nn0ge0d lep1d
      ineq2d fzosplit uneq2d simpl adantrl fz0ssnn0 simprl fzofi anasss ancom2s
      anass1rs ) AUAHUBOZPGUBOZBDQZEQUVAPGHROZUBOZCFQZEQUVBUVABEQDQUVEUVACEQFQA
      UVAUVCUVFEAEUCZUVASZUDZUVCPUVGROZGUVGROZUBOZCFQZUVFUVIBCDFUVGPGUVIUVAUJUV
      GUAHUEZAUVHUFZUGZUVIUKZAGUJSZUVHAGIUHZTZUVIDUCZUVBSZUDAUWAUVGUIZULUMZSZUV
      HBUNSZAUVHUWBUOUVIUVBUWDUWAUVIUVBUWCGUBOZUWDUVIUVGPULUMZSZPUWDSUVBUWGUPUV
      IUVGVDUWHUVIUVAVDUVGUVAUQVDHURZUSUTZUVOUGVAVBUWIPPUIUWDVCPUVGVEVFPUWCGVGV
      HUWCGVIVJVPUVIUVHUWBUVOTLVKZKVLUVIUVMUVGUVDUBOZCFQZUVFUVIUWNUVGUVKUBOZCFQ
      ZUVKUAROZUVDUBOZCFQZROUVMPROUVMUVIUWOUWRCUWMFUVIUVKUWQVMVNUWOUWRVOVQVRUVI
      UVKUVIUVKUVIGUVGAGVDSZUVHITZUVIUVGUVIUVAUQUVGUWJUVOUGZVSZVTZWAWBUVGUVKUWQ
      UVDWCWDUVIUVKUWMSZUWMUWOUWRWEVRUVIUVGUJSZUVDUJSZUVKUJSUVGUVKWRVNZUVKUVDWR
      VNUXEUVPAUXGUVHAGHUVSAHJUHWFTZUVIUVKUXDUHUVIUVGWHSUWTUXHUVIUVGUXBWGZUXAUV
      GGWIWJUVIUVGHGUXJAHWHSZUVHAHJWAZTZUVIGUXAWAUVHUVGHWRVNAUVGUAHWKWLZWMUVKUV
      GUVDWNWOUVKUVGUVDWPWDUVIUVGUVDWQZUVIFUCZUWMSZUDZAUVHUXPVDSZCUNSZAUVHUXQUO
      UVIUVHUXQUVOTZUXRUWMVDUXPUXRUVGVDSUWMVDUPUXRUVAVDUVGUWKUYAUGUVGUVDWSWDUVI
      UXQUFWTZUVIUXSUDZUWFUXTDUWDUXPUVGXAOZUWAUYDVRBCUNKXBUVIUWFDUWDXCUXSUVIUWF
      DUWDAUWEUVHUWFAUWEUDZUVHUDAUWEUVHUWFAUWEUVHUOAUWEUVHXDUYEUVHUFLVKXEXFTUYC
      UVGUXPXAOZUIZUYDUWDUYCUVGUXPUYCUVAUNUVGUVAUQUNUWJXGUTAUVHUXSXDZUGUYCUXPUV
      IUXSUFZXHXIUYCUVGUYFULUMSZUYGUWDSUYCUXFUXSUYJUYCUVAUJUVGUVNUYHUGUYIUVGUXP
      XJWJUYFUVGVEWDXKXLZXMZXNUVIUWPUVMUWSPRUVIUWOUVLCFUVIUVLUWOUVIUVJUVGUVKUBU
      VIUVGUVIUVGUVPXOZXPXQZXRXSUVIUWSUWRPFQZPUVIUWRCPFMXTUWRYASZUYOPVRZUWQUVDY
      BUWRUWHUPUYPUYQUWRFPYCYDYIYEYFUVIUVMUVIUVLCFUVIUVJUVKWQUVIUXPUVLSZUDZAUVH
      UXSUXTAUVHUYRUOZUVIUVHUYRUVOTZUYSAUVHUXQUXSUYTVUAUYSUWOUWMUXPUYSUVDUVKULU
      MZSZUWOUWMUPUVIVUCUYRUVIHGROZUVGGROZULUMZUVDVUBUVIHUVGULUMSZUVRVUDVUFSUVH
      VUGAUVGUAHYGWLUVTGUVGHYHWJUVIHGAHUNSUVHAHJXHTUVIUJUNGYJUVTUGZYKUVIVUEUVKU
      LUVIUVGGUYMVUHYKUUAUUBTUVKUVGUVDUUCWDUYSUXPUVLUWOUVIUYRUFUVIUVLUWOVRUYRUY
      NTUUDWTUYBXMUYKXMYLUUEYMUVIUVFPUVGYNOZCFQZUWNROPUWNROUWNUVIVUIUWMCUVEFUVI
      VUIUWMVOVUIUVGUVDUAROZYNOZVOVQUVIUWMVULVUIUVIUXGUWMVULVRUXIUVGUVDYOWDZUUJ
      PUVGVUKUUFYEUVIPVUKYNOZVUIVULWEZUVEVUIUWMWEUVIUVGPVUKUBOSZVUNVUOVRUVIPUJS
      VUKUJSUXFPUVGWRVNUVGVUKWRVNVUPUVQUVIUVDUXIUUGZUVPUVIUVGUXCUUHUVIUVGHVUKUX
      JUXMUVIVUKVUQYPZUXNUVIHUVDVUKUXMUVIUVDUXIYPZVURAHUVDWRVNZUVHAUXKUWTVUTUXL
      IHGWIWJTUVIUVDVUSUUIYQYQUVGPVUKWNWOPVUKUVGUUKWDUVIUXGUVEVUNVRUXIPUVDYOWDU
      VIUWMVULVUIVUMUULYRAUVEYASUVHAPUVDWQZTAUXPUVESZUVHUXTAVVBUVHUDZUDZAUVHUXS
      UXTAVVCUUMAUVHUVHVVBUVOUUNVVDUVEVDUXPUVDUUOAVVBUVHUUPUGUYKXMZUUTXNUVIVUJP
      UWNRUVIVUJVUIPFQZPUVIVUICPFNXTVUIYASZVVFPVRZPUVGUUQVUIUWHUPVVGVVHVUIFPYCY
      DYIYEXQUVIUWNUVIUWMCFUXOUYLYLXPYMYTYTXTAUVBUVABDEAPGWQAUAHWQZAUVHUWBUWFAU
      VHUWBUWFUWLUURUUSYSAUVEUVACFEVVAVVIVVEYSYR $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Representations of a number as sums of integers
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c repr $.

  $( Representations of a number as a sum of nonnegative integers. $)
  crepr $a class repr $.

  ${
    $d a b c m s $.
    $( The representations of a nonnegative ` m ` as the sum of ` s `
       nonnegative integers from a set ` b ` .  Cf.  Definition of [Nathanson]
       p. 123.  (Contributed by Thierry Arnoux, 1-Dec-2021.) $)
    df-repr $a |- repr = ( s e. NN0 |-> ( b e. ~P NN , m e. ZZ
      |-> { c e. ( b ^m ( 0 ..^ s ) ) |
        sum_ a e. ( 0 ..^ s ) ( c ` a ) = m } ) ) $.
  $}

  ${
    $d A b c m $.  $d M b c m n $.  $d S a b c m n s $.  $d ph b c m n s $.
    reprval.a $e |- ( ph -> A C_ NN ) $.
    reprval.m $e |- ( ph -> M e. ZZ ) $.
    reprval.s $e |- ( ph -> S e. NN0 ) $.
    $( Value of the representations of ` M ` as the sum of ` S ` nonnegative
       integers in a given set ` A ` (Contributed by Thierry Arnoux,
       1-Dec-2021.) $)
    reprval $p |- ( ph -> ( A ( repr ` S ) M ) = { c e. ( A ^m ( 0 ..^ S ) ) |
      sum_ a e. ( 0 ..^ S ) ( c ` a ) = M } ) $=
      ( vb vm vs cn cz co cv wceq cmap cvv a1i cpw cc0 cfzo cfv csu crepr cmpt2
      crab cn0 cmpt df-repr oveq2 oveq2d eqeq1d rabeqbidv mpt2eq3dv adantl wcel
      sumeq1d nnex zex mpt2ex fvmptd wa simprl oveq1d simprr eqeq2d ssexd elpwd
      pwex ovex rabex ovmpt2d ) AJKBDMUAZNUBCUCOZEPFPUDZEUEZKPZQZFJPZVPROZUHZVR
      DQZFBVPROZUHZCUFUDSALCJKVONUBLPZUCOZVQEUEZVSQZFWAWHROZUHZUGZJKVONWCUGZUIU
      FSUFLUIWMUJQAKLEJFUKTWGCQZWMWNQAWOJKVONWLWCWOWJVTFWKWBWOWHVPWARWGCUBUCULZ
      UMWOWIVRVSWOWHVPVQEWPUSUNUOUPUQIWNSURAJKVONWCMUTVKVAVBTVCAWABQZVSDQZVDVDZ
      VTWDFWBWEWSWABVPRAWQWRVEVFWSVSDVRAWQWRVGVHUOABMSABMSMSURAUTTGVIGVJHWFSURA
      WDFWEBVPRVLVMTVN $.

    $( There is exactly one representation with no elements (an empty sum),
       only for ` M = 0 ` .  (Contributed by Thierry Arnoux, 2-Dec-2021.) $)
    repr0 $p |- ( ph -> ( A ( repr ` 0 ) M ) = if ( M = 0 , { (/) } , (/) ) )
      $=
      ( va vc cc0 cfv co wceq cmap c0 wcel a1i wa cvv eqcomd crepr cfzo cv crab
      csu csn cif cn0 0nn0 reprval fzo0 sumeq1i sum0 eqtri eqeq1i 0ex snid nnex
      wb ssexd mapdm0 syl syl5eleqr oveq2i syl6eleqr adantr simpr syl5eq eleq2d
      cn biimpa elsni ad4ant13 rabeqsnd wn wral simplr neqned eqnetrd ralrimiva
      necomd neneqd rabeq0 sylibr ifeqda eqtr4d ) ABDJUAKLJJUBLZHUCIUCZKZHUEZDM
      ZIBWGNLZUDZDJMZOUFZOUGABJDHIEFJUHPAUIQUJAWNWOOWMAWNRZWMWOWPWKJDMZIWLOWKWQ
      USWHOMZWJJDWJOWIHUEJWGOWIHJUKZULWIHUMUNZUOQAOWLPWNAOBONLZWLAOWOXAOUPUQABS
      PXAWOMABVJSVJSPAURQEUTBSVAVBZVCWGOBNWSVDZVEVFWPDJAWNVGTAWHWLPZWRWNWKAXDRW
      HWOPZWRAXDXEAWLWOWHAWLXAWOXCXBVHVIVKWHOVLVBVMVNTAWNVOZRZWMOXGWKVOZIWLVPWM
      OMXGXHIWLXGXDRZWJDXIWJJDWJJMXIWTQXIDJXIDJAXFXDVQVRWAVSWBVTWKIWLWCWDTWEWF
      $.

    ${
      $d C a c $.
      reprf.c $e |- ( ph -> C e. ( A ( repr ` S ) M ) ) $.
      $( Members of the representation of ` M ` as the sum of ` S ` nonnegative
         integers from set ` A ` as functions.  (Contributed by Thierry Arnoux,
         5-Dec-2021.) $)
      reprf $p |- ( ph -> C : ( 0 ..^ S ) --> A ) $=
        ( va vc cc0 cfzo co cv cfv csu wceq cmap wcel crab crepr reprval elrabi
        wf eleqtrd elmapi 3syl ) ACLDMNZJOKOPJQERZKBUISNZUAZTCUKTUIBCUEACBEDUBP
        NULIABDEJKFGHUCUFUJKCUKUDCBUIUGUH $.

      $( Sums of values of the members of the representation of ` M ` equal
         ` M ` .  (Contributed by Thierry Arnoux, 5-Dec-2021.) $)
      reprsum $p |- ( ph -> sum_ a e. ( 0 ..^ S ) ( C ` a ) = M ) $=
        ( vc cc0 cfzo co cmap wcel cv cfv csu wceq crab crepr reprval sumeq2sdv
        wa eleqtrd fveq1 eqeq1d elrab sylib simprd ) ACBLDMNZONZPZULFQZCRZFSZET
        ZACULUOKQZRZFSZETZKUMUAZPUNURUEACBEDUBRNVCJABDEFKGHIUCUFVBURKCUMUSCTZVA
        UQEVDULUTUPFUOUSCUGUDUHUIUJUK $.

      $d X a $.  $d ph a $.
      reprle.x $e |- ( ph -> X e. ( 0 ..^ S ) ) $.
      $( Upper bound to the terms in the representations of ` M ` as the sum of
         ` S ` nonnegative integers from set ` A ` .  (Contributed by Thierry
         Arnoux, 27-Dec-2021.) $)
      reprle $p |- ( ph -> ( C ` X ) <_ M ) $=
        ( va cc0 cfzo co cv cfv fveq2 wcel cn cfn fzofi reprsum wa adantr reprf
        a1i wss ffvelrnda sseldd nnrpd fsumub ) AMDNOZLPZCQZEFCQLFUNFCRUMUASAMD
        UBUGABCDELGHIJUCAUNUMSZUDZUOUQBTUOABTUHUPGUEAUMBUNCABCDEGHIJUFUIUJUKKUL
        $.
    $}

    ${
      $d A a d e $.  $d F e $.  $d M a d e $.  $d S a b d c e $.
      $d a d e ph $.
      reprsuc.f $e |- F = ( c e. ( A ( repr ` S ) ( M - b ) )
        |-> ( c u. { <. S , b >. } ) ) $.
      $( Express the representations recursively.  (Contributed by Thierry
         Arnoux, 5-Dec-2021.) $)
      reprsuc $p |- ( ph -> ( A ( repr ` ( S + 1 ) ) M ) = U_ b e. A ran F ) $=
        ( va co cfv wceq wcel wa ad2antrr adantr cc ve vd c1 caddc crepr cc0 cv
        cfzo csu cmap crab crn ciun cn0 1nn0 a1i nn0addcld reprval wrex cop csn
        cun cmin wf simplr elmapi fzonn0p1 ffvelrnd simpr oveq2d wb opeq2 sneqd
        syl uneq2d eqeq2d adantl rexeqbidv cres wss fzossfzop1 fssresd cvv nnex
        cn ssexd cfn fzofi elmapg sylancl mpbird nnsscn ffvelrnda sseldd fsumcl
        elexi sstrd pncand nfv nfcv wn fzonel sselda fsumsplitsn cuz fzosplitsn
        fveq2 nn0uz eleq2s sumeq1d fvresd sumeq2dv oveq1d 3eqtr4d jca sumeq2sdv
        eqtr3d fveq1 eqeq1d elrab sylibr cz syl6ss zsubcld eleqtrrd uneq1d cdif
        nnssz wfn ffnd fnsnsplit syl2anc syl6eleq fzodif2 eqtrd rspcedvd fveq1d
        reseq2d syl112anc 3eqtrd anasss reprf fsnd cin c0 fzodisjsn fun2d feq2d
        eqeltrd ad4antr feq1d elun1 ad3antrrr fvun1 sumeq2d reprsum snidg fvun2
        ovex ralrimiva fvsng oveq12d zsscn sseldi eqeltrrd npcand r19.29ffa vex
        impbida snex unex elrnmpti rexbii syl6bbr cbvrabv rabeq2i eliun 3bitr4g
        eqrdv ) ABECUCUDMZUENMUFUVTUHMZLUGZGUGZNZLUIZEOZGBUWAUJMZUKZFBDULZUMZAB
        UVTELGHIACUCJUCUNPAUOUPUQURAUAUWHUWJAUAUGZUWGPZUWAUWBUWKNZLUIZEOZQZUWKU
        WIPZFBUSZUWKUWHPUWKUWJPAUWPUWKUWCCFUGZUTZVAZVBZOZGBEUWSVCMZCUENZMZUSZFB
        USZUWRAUWPUXHAUWLUWOUXHAUWLQZUWOQZUXGUWKUWCCCUWKNZUTZVAZVBZOZGBEUXKVCMZ
        UXEMZUSFUXKBUXJUWABCUWKUXJUWLUWABUWKVDZAUWLUWOVEUWKBUWAVFZVNZUXJCUNPZCU
        WAPZAUYAUWLUWOJRZCVGZVNZVHZUXJUWSUXKOZQZUXCUXOGUXFUXQUYHUXDUXPBUXEUYHUW
        SUXKEVCUXJUYGVIVJVJUYGUXCUXOVKUXJUYGUXBUXNUWKUYGUXAUXMUWCUYGUWTUXLUWSUX
        KCVLVMVOVPVQVRUXJUXOUWKUWKUFCUHMZVSZUXMVBZOGUYJUXQUXJUYJUYIUWBUBUGZNZLU
        IZUXPOZUBBUYIUJMZUKZUXQUXJUYJUYPPZUYIUWBUYJNZLUIZUXPOZQUYJUYQPUXJUYRVUA
        UXJUYRUYIBUYJVDZUXIVUBUWOUXIUWABUYIUWKUWLUXRAUXSVQZUXIUYAUYIUWAVTAUYAUW
        LJSZCWAVNZWBZSAUYRVUBVKZUWLUWOABWCPZUYIWCPVUGABWEWCWEWCPAWDUPHWFZUYIWGU
        FCWHZWPBUYIUYJWCWCWIWJRWKUXJUYTUXKUDMZUXKVCMUYTUXPUXJUYTUXKUXIUYTTPUWOU
        XIUYIUYSLUYIWGPZUXIVUJUPZUXIUWBUYIPZQZBTUYSABTVTZUWLVUNABWETHWETVTAWLUP
        WQZRZUXIUYIBUWBUYJVUFWMWNWOSUXIUXKTPUWOUXIBTUXKAVUPUWLVUQSUXIUWABCUWKVU
        CUXIUYAUYBVUDUYDVNVHWNZSWRUXJVUKEUXKVCUXJUWNVUKEUXIUWNVUKOUWOUXIUYICVAZ
        VBZUWMLUIZUYIUWMLUIZUXKUDMZUWNVUKUXIUYICUWMUXKLUNUXILWSLUXKWTZVUMVUDCUY
        IPXAZUXIUFCXBZUPVUOBTUWMVURVUOUWABUWBUWKUXIUXRVUNVUCSUXIUYIUWAUWBVUEXCV
        HWNUWBCUWKXGZVUSXDUXIUWAVVAUWMLUXIUYAUWAVVAOZVUDVVICUFXENZUNUFCXFXHXIZV
        NXJUXIUYTVVCUXKUDUXIUYIUYSUWMLVUOUWBUYIUWKUXIVUNVIXKXLXMXNSUXIUWOVIXQXM
        XQXOUYOVUAUBUYJUYPUYLUYJOZUYNUYTUXPVVLUYIUYMUYSLUWBUYLUYJXRXPXSXTYAUXJB
        CUXPLUBABWEVTZUWLUWOHRUXJEUXKAEYBPZUWLUWOIRUXJBYBUXKABYBVTUWLUWOABWEYBH
        YHYCZRUYFWNYDUYCURYEUXJUWCUYJOZQZUXNUYKUWKVVQUWCUYJUXMUXJVVPVIYFVPUXJUW
        KUWKUWAVUTYGZVSZUXMVBZUYKUXJUWKUWAYIUYBUWKVVTOUXJUWABUWKUXTYJUYEUWAUWKC
        YKYLUXJVVSUYJUXMUXJVVRUYIUWKUXJCVVJPVVRUYIOUXJCUNVVJUYCXHYMUFCYNVNYRYFY
        OYPYPUUAAUXCUWPFGBUXFAUWSBPZQZUWCUXFPZQZUXCQZUWLUWOVWEUWKUXBUWGVWDUXCVI
        ZVWDUXBUWGPZUXCVWDVWGUWABUXBVDZVWDVWHVVABUXBVDVWDUYIVUTBUWCUXAVWDBUWCCU
        XDVWBVVMVWCAVVMVWAHSSZVWBUXDYBPZVWCVWBEUWSAVVNVWAISZABYBUWSVVOXCYDSZVWB
        UYAVWCAUYAVWAJSSZVWBVWCVIZUUBZVWDCUWSUNBVWMAVWAVWCVEZUUCZUYIVUTUUDUUEOZ
        VWDUFCUUFZUPUUGVWDUWAVVABUXBVWDUYAVVIVWMVVKVNZUUHWKZAVWGVWHVKZVWAVWCAVU
        HUWAWCPVXBVUIUFUVTUHUUSBUWAUXBWCWCWIWJRWKSUUIVWEUWNVVBVVDEVWEUWAVVAUWML
        VWDVVIUXCVWTSXJVWEUYICUWMUXKLUNVWELWSVVEVULVWEVUJUPVWDUYAUXCVWMSZVVFVWE
        VVGUPVWEVUNQZBTUWMAVUPVWAVWCUXCVUNVUQUUJVXDUWABUWBUWKVWEUXRVUNVWEUXRVWH
        VWDVWHUXCVXASVWEUWABUWKUXBVWFUUKWKZSVXDUWBVVAUWAVXDVUNUWBVVAPVWEVUNVIZU
        WBUYIVUTUULVNVWDVVIUXCVUNVWTRYEVHWNVVHVWEBTUXKAVUPVWAVWCUXCVUQUUMVWEUWA
        BCUWKVXEVWEUYAUYBVXCUYDVNVHWNZXDVWEVVDUXDUWSUDMEVWEVVCUXDUXKUWSUDVWEVVC
        UYIUWDLUIUXDVWEUYIUWMUWDLVWEUWMUWDOLUYIVXDUWMUWBUXBNZUWDVXDUWBUWKUXBVWD
        UXCVUNVEYQVXDUWCUYIYIZUXAVUTYIZVWRVUNVXHUWDOVWDVXIUXCVUNVWDUYIBUWCVWOYJ
        ZRVWDVXJUXCVUNVWDVUTBUXAVWQYJZRVWRVXDVWSUPVXFUYIVUTUWCUXAUWBUUNYSYOUUTU
        UOVWEBUWCCUXDLVWDVVMUXCVWISVWDVWJUXCVWLSVXCVWDVWCUXCVWNSUUPYOVWEUXKCUXB
        NZCUXANZUWSVWECUWKUXBVWFYQVWEVXIVXJVWRCVUTPZVXMVXNOVWDVXIUXCVXKSVWDVXJU
        XCVXLSVWRVWEVWSUPVWEUYAVXOVXCCUNUUQVNUYIVUTUWCUXACUURYSVWEUYAVWAVXNUWSO
        VXCVWDVWAUXCVWPSCUWSUNBUVAYLYTZUVBVWEEUWSVWEYBTEUVCVWBVVNVWCUXCVWKRUVDV
        WEUXKUWSTVXPVXGUVEUVFYOYTXOUVGUVIUWQUXGFBGUXFUXBUWKDKUWCUXAGUVHUWTUVJUV
        KUVLUVMUVNUWOUAUWHUWGUWFUWOGUAUWGUWCUWKOZUWEUWNEVXQUWAUWDUWMLUWBUWCUWKX
        RXPXSUVOUVPFUWKBUWIUVQUVRUVSYO $.
    $}

    ${
      reprfi.1 $e |- ( ph -> A e. Fin ) $.
      $( Bounded representations are finite sets.  (Contributed by Thierry
         Arnoux, 7-Dec-2021.) $)
      reprfi $p |- ( ph -> ( A ( repr ` S ) M ) e. Fin ) $=
        ( va vc crepr cfv co cc0 cfzo cv csu wceq cfn wcel cmap reprval sylancl
        crab fzofi mapfi rabfi syl eqeltrd ) ABDCKLMNCOMZIPJPLIQDRZJBUJUAMZUDZS
        ABCDIJEFGUBAULSTZUMSTABSTUJSTUNHNCUEBUJUFUCUKJULUGUHUI $.
    $}

    ${
      $d B c $.
      reprss.1 $e |- ( ph -> B C_ A ) $.
      $( Representations with terms in a subset.  (Contributed by Thierry
         Arnoux, 11-Dec-2021.) $)
      reprss $p |- ( ph -> ( B ( repr ` S ) M ) C_ ( A ( repr ` S ) M ) ) $=
        ( va vc co cv cfv cmap crab wcel cvv wss cn cc0 cfzo csu wceq crepr a1i
        nnex ssexd mapss syl2anc sselda adantrr rabss3d sstrd reprval 3sstr4d )
        AUADUBLZJMKMZNJUCEUDZKCUQOLZPUSKBUQOLZPCEDUENZLBEVBLAUSKUTVAAURUTQURVAQ
        USAUTVAURABRQCBSUTVASABTRTRQAUGUFFUHICBUQRUIUJUKULUMACDEJKACBTIFUNGHUOA
        BDEJKFGHUOUP $.
    $}

    ${
      $d B c $.
      $( Representations with term in an intersection.  (Contributed by Thierry
         Arnoux, 11-Dec-2021.) $)
      reprinrn $p |- ( ph -> ( c e. ( ( A i^i B ) ( repr ` S ) M )
        <-> ( c e. ( A ( repr ` S ) M ) /\ ran c C_ B ) ) ) $=
        ( va cv cc0 co wcel wa wf cvv cn anbi1d syl6bb cin cfzo cfv csu crn wss
        cmap wceq crepr fin wfn df-f adantl biantrurd bicomd syl5bb pm5.32da wb
        ffn nnex a1i ssexd inex1g ovex elmapg sylancl 3bitr4d crab inss1 syl5ss
        syl reprval eleq2d rabid an32 ) AFKZBCUAZLDUBMZUGMZNZVRJKVPUCJUDEUHZOZV
        PBVRUGMZNZVPUECUFZOZWAOZVPVQEDUIUCZMZNZVPBEWHMZNZWEOZAVTWFWAAVRVQVPPZVR
        BVPPZWEOZVTWFWNWOVRCVPPZOAWPVRBCVPUJAWOWQWEWQVPVRUKZWEOZAWOOZWEVRCVPULW
        TWEWSWTWRWEWOWRAVRBVPUSUMUNUOUPUQUPAVQQNZVRQNZVTWNURABQNZXAABRQRQNAUTVA
        GVBZBCQVCVKLDUBVDZVQVRVPQQVEVFAWDWOWEAXCXBWDWOURXDXEBVRVPQQVEVFSVGSAWJV
        PWAFVSVHZNWBAWIXFVPAVQDEJFAVQBRBCVIGVJHIVLVMWAFVSVNTAWMWDWAOZWEOWGAWLXG
        WEAWLVPWAFWCVHZNXGAWKXHVPABDEJFGHIVLVMWAFWCVNTSWDWAWEVOTVG $.
    $}

    ${
      $d A a $.  $d S a $.  $d ph a s $.
      reprlt.1 $e |- ( ph -> M < S ) $.
      $( There are no representations of ` M ` with more than ` M ` terms.
         Remark of [Nathanson] p. 123 (Contributed by Thierry Arnoux,
         7-Dec-2021.) $)
      reprlt $p |- ( ph -> ( A ( repr ` S ) M ) = (/) ) $=
        ( va vc cfv co wceq wcel cr adantr a1i cn cvv c1 crepr cc0 cfzo cv cmap
        csu crab c0 reprval wn wral wa zred nn0red cfn fzofi wss sstrd ad2antrr
        nnssre wf nnex ssexd elexi simpr elmapg biimpa syl21anc ffvelrnd sseldd
        fsumrecl clt wbr cle chash cmul ax-1cn fsumconst mp2an cn0 hashcl ax-mp
        cc nn0cni mulid1i eqtri hashfzo0 syl syl5eq 1red nnge1 eqbrtrrd ltletrd
        fsumle ltned necomd neneqd ralrimiva rabeq0 sylibr eqtrd ) ABDCUAKLUBCU
        CLZIUDZJUDZKZIUFZDMZJBXBUELZUGZUHABCDIJEFGUIAXGUJZJXHUKXIUHMAXJJXHAXDXH
        NZULZXFDXLDXFXLDXFADONXKADFUMPZXLDCXFXMACONXKACGUNPXLXBXEIXBUONZXLUBCUP
        ZQZXLXCXBNZULZBOXEABOUQXKXQABROEROUQAUTQURUSXRXBBXCXDXLXBBXDVAZXQXLBSNZ
        XBSNZXKXSAXTXKABRSRSNAVBQEVCPYAXLXBUOXOVDQAXKVEXTYAULXKXSBXBXDSSVFVGVHP
        XLXQVEVIZVJZVKADCVLVMXKHPXLXBTIUFZCXFVNAYDCMXKAYDXBVOKZCYDYETVPLZYEXNTW
        CNYDYFMXOVQXBTIVRVSYEYEXNYEVTNXOXBWAWBWDWEWFACVTNYECMGCWGWHWIPXLXBTXEIX
        PXRWJYCXRXERNTXEVNVMXRBRXEABRUQXKXQEUSYBVJXEWKWHWNWLWMWOWPWQWRXGJXHWSWT
        XA $.
    $}

    ${
      $d A a $.  $d B a c $.  $d M a $.  $d S a $.  $d ph a $.
      hashreprin.b $e |- ( ph -> B e. Fin ) $.
      hashreprin.1 $e |- ( ph -> B C_ NN ) $.
      $( Express a sum of representations over an intersection using a product
         of the indicator function (Contributed by Thierry Arnoux,
         11-Dec-2021.) $)
      hashreprin $p |- ( ph -> ( # ` ( ( A i^i B ) ( repr ` S ) M ) )
         = sum_ c e. ( B ( repr ` S ) M )
             prod_ a e. ( 0 ..^ S ) ( ( ( _Ind ` NN ) ` A ) ` ( c ` a ) ) ) $=
        ( cfv co c1 cc0 cn wcel wss adantr cin crepr chash cmul cfzo cind cprod
        csu cv cfn cc wceq reprfi inss2 a1i reprss ssfid 1cnd fsumconst syl2anc
        cif wral cuz wo ralrimivw olcd sumss2 syl21anc wa crn wb reprinrn incom
        wi oveq1i eleq2i bibi1i imbi2i mpbi baibd ifbid cvv nnex r19.21bi fzofi
        cz cn0 simpr reprf prodindf eqtr4d sumeq2dv eqtrd hashcl nn0cnd mulid1d
        fssd syl 3eqtr3rd ) ABCUAZEDUBMZNZOGUHZXBUCMZOUDNZCEXANZPDUENZFUIGUIZMB
        QUFMMMFUGZGUHZXDAXBUJRZOUKRZXCXEULAXFXBACDELIJKUMZACWTDELIJWTCSABCUNUOU
        PZUQZAURZXBOGUSUTAXCXFXHXBRZOPVAZGUHZXJAXBXFSXLGXBVBXFPVCMSZXFUJRZVDXCX
        SULXNAXLGXBXPVEAYAXTXMVFXBXFOGPVGVHAXFXRXIGAXHXFRZVIZXRXHVJBSZOPVAXIYCX
        QYDOPAXQYBYDAXHCBUAZEXANZRZYBYDVIZVKZVNAXQYHVKZVNACBDEGLIJVLYIYJAYGXQYH
        YFXBXHYEWTEXACBVMVOVPVQVRVSVTWAYCXGBFXHQWBAQWBRZGXFAYKGXFYKAWCUOVEWDXGU
        JRYCPDWEUOABQSYBHTYCXGCQXHYCCXHDEACQSYBLTZAEWFRYBITADWGRYBJTAYBWHWIYLWQ
        WJWKWLWMAXDAXDAXKXDWGRXOXBWNWRWOWPWS $.
    $}
  $}

  ${
    $d A a c $.  $d M c $.  $d N a $.  $d S a c $.  $d a c ph $.
    reprgt.n $e |- ( ph -> N e. NN0 ) $.
    reprgt.a $e |- ( ph -> A C_ ( 1 ... N ) ) $.
    reprgt.m $e |- ( ph -> M e. ZZ ) $.
    reprgt.s $e |- ( ph -> S e. NN0 ) $.
    reprgt.1 $e |- ( ph -> ( S x. N ) < M ) $.
    $( There are no representations of more than ` ( S x. N ) ` with only ` S `
       terms bounded by ` N ` .  Remark of [Nathanson] p. 123 (Contributed by
       Thierry Arnoux, 7-Dec-2021.) $)
    reprgt $p |- ( ph -> ( A ( repr ` S ) M ) = (/) ) $=
      ( va vc cfv co wceq c1 wcel cr cvv adantr crepr cc0 cfzo cv csu cmap crab
      c0 cfz cn fz1ssnn syl6ss reprval wn wa cfn fzofi a1i wss nnssre ralrimivw
      wral r19.21bi wf ssexd elexi simpr elmapg biimpa syl21anc ffvelrnd sseldd
      ovex fsumrecl cmul nn0red remulcld zred cle ad2antrr elfzle2 fsumle chash
      wbr syl recnd fsumconst sylancr cn0 hashfzo0 oveq1d eqtrd breqtrd lelttrd
      cc clt ltned neneqd ralrimiva rabeq0 sylibr ) ABDCUAMNUBCUCNZKUDZLUDZMZKU
      EZDOZLBXBUFNZUGZUHABCDKLABPEUINZUJGEUKULZHIUMAXGUNZLXHVBXIUHOAXLLXHAXDXHQ
      ZUOZXFDXNXFDXNXBXEKXBUPQZXNUBCUQZURZXNXCXBQZUOZBRXEXNBRUSZKXBAXTKXBVBZLXH
      AYALXHAXTKXBABUJRXKUTULVAVAVCVCXSXBBXCXDXNXBBXDVDZXRXNBSQZXBSQZXMYBAYCXMA
      BXJSXJSQAPEUIVMURGVETYDXNXBUPXPVFURAXMVGYCYDUOXMYBBXBXDSSVHVIVJTXNXRVGVKZ
      VLZVNZXNXFCEVONZDYGXNCEACRQXMACIVPTAERQZXMAEFVPZTVQADRQXMADHVRTXNXFXBEKUE
      ZYHVSXNXBXEEKXQYFAYIXMXRYJVTXSXEXJQXEEVSWDXSBXJXEABXJUSXMXRGVTYEVLXEPEWAW
      EWBAYKYHOXMAYKXBWCMZEVONZYHAXOEWOQYKYMOXPAEYJWFXBEKWGWHAYLCEVOACWIQYLCOIC
      WJWEWKWLTWMAYHDWPWDXMJTWNWQWRWSXGLXHWTXAWL $.
  $}

  ${
    $d A a b c $.  $d N a b c $.  $d S a b c $.  $d a b c ph $.
    reprinfz1.n $e |- ( ph -> N e. NN0 ) $.
    reprinfz1.s $e |- ( ph -> S e. NN0 ) $.
    reprinfz1.a $e |- ( ph -> A C_ NN ) $.
    $( For the representation of ` N ` , it is sufficient to consider
       nonnegative integers up to ` N ` .  Remark of [Nathanson] p. 123
       (Contributed by Thierry Arnoux, 13-Dec-2021.) $)
    reprinfz1 $p |- ( ph ->
      ( A ( repr ` S ) N ) = ( ( A i^i ( 1 ... N ) ) ( repr ` S ) N ) ) $=
      ( va vc vb cfv co cc0 wcel wa cvv cn wn ad3antrrr sylibr crepr c1 cfz cin
      cfzo cv csu wceq cmap crab wf wb nnex a1i ssexd ovex elmapg biimpa adantr
      sylancl wfn wral elmapfn ad2antlr wrex simplr wne cr nn0red simpllr mpbid
      wss ffvelrnd nnred cfn fzofi ad4antr ffvelrnda fsumrecl clt wbr cle simpr
      sseldd cz nn0zd syl biantrurd bitr4d notbid ltnled mpbird csn recnd fveq2
      fznn cc sumsn syl2anc nnnn0d nn0ge0 snssi fsumless eqbrtrrd ltletrd ltned
      cn0 necomd r19.29an neneqd adantlr pm2.65da dfral2 eleq1d cbvralv jca fin
      ffnfv inex2 elmap anasss rabss3d reprval inss1 sstrd 3sstr4d reprss eqssd
      ) ABDCUAKZLZBUBDUCLZUDZDYILZAMCUELZHUFZIUFZKZHUGZDUHZIBYNUILZUJYSIYLYNUIL
      ZUJYJYMAYSIYTUUAAYPYTNZYSYPUUANZAUUBOZYSOZYNYLYPUKZUUCUUEYNBYPUKZYNYKYPUK
      ZOUUFUUEUUGUUHUUDUUGYSAUUBUUGABPNYNPNUUBUUGULZABQPQPNAUMUNGUOMCUEUPZBYNYP
      PPUQUTZURUSUUEYPYNVAZYQYKNZHYNVBZOUUHUUEUULUUNUUBUULAYSYPBYNVCVDUUEJUFZYP
      KZYKNZJYNVBZUUNUUEUUQRZJYNVEZRUURUUEUUTYSUUDYSUUTVFUUDUUTYSRYSUUDUUTOYRDU
      UDUUSYRDVGJYNUUDUUOYNNZOZUUSOZDYRUVCDYRADVHNUUBUVAUUSADEVISZUVCDUUPYRUVDU
      VCUUPUVCBQUUPABQVLZUUBUVAUUSGSUVCYNBUUOYPUVCUUBUUGAUUBUVAUUSVJAUUIUUBUVAU
      USUUKSVKZUUDUVAUUSVFZVMWDZVNZUVCYNYQHYNVONUVCMCVPUNZUVCYOYNNZOZYQUVLBQYQA
      UVEUUBUVAUUSUVKGVQUVCYNBYOYPUVFVRWDZVNZVSUVCDUUPVTWAUUPDWBWAZRZUVCUUSUVPU
      VBUUSWCUVCUUQUVOUVCUUQUUPQNZUVOOZUVOUVCDWENZUUQUVRULAUVSUUBUVAUUSADEWFZSU
      UPDWPWGUVCUVQUVOUVHWHWIWJVKUVCDUUPUVDUVIWKWLUVCUUOWMZYQHUGZUUPYRWBUVCUVAU
      UPWQNUWBUUPUHUVGUVCUUPUVIWNYQUUPHUUOYNYOUUOYPWOZWRWSUVCYNYQUWAHUVJUVNUVLY
      QXGNMYQWBWAUVLYQUVMWTYQXAWGUVAUWAYNVLUUDUUSUUOYNXBVDXCXDXEXFXHXIXJXKXLUUQ
      JYNXMTUUMUUQHJYNYOUUOUHYQUUPYKUWCXNXOTXPHYNYKYPXRTXPYNBYKYPXQTYLYNYPYKBUB
      DUCUPXSUUJXTTYAYBABCDHIGUVTFYCAYLCDHIAYLBQYLBVLABYKYDUNZGYEUVTFYCYFABYLCD
      GUVTFUWDYGYH $.

    $( Corollary of ~ reprinfz1 .  (Contributed by Thierry Arnoux,
       15-Dec-2021.) $)
    reprfi2 $p |- ( ph -> ( A ( repr ` S ) N ) e. Fin ) $=
      ( crepr cfv co c1 cfz cin cfn reprinfz1 cn wss inss2 fz1ssnn a1i eqeltrd
      sstri nn0zd wcel fzfi ssfid reprfi ) ABDCHIZJBKDLJZMZDUHJNABCDEFGOAUJCDUJ
      PQAUJUIPBUIRZDSUBTADEUCFAUIUJUINUDAKDUETUJUIQAUKTUFUGUA $.
  $}

  ${
    $d N a b c $.  $d S a b c $.  $d a b c ph $.
    reprfz1.n $e |- ( ph -> N e. NN0 ) $.
    reprfz1.s $e |- ( ph -> S e. NN0 ) $.
    $( Corollary of ~ reprinfz1 .  (Contributed by Thierry Arnoux,
       14-Dec-2021.) $)
    reprfz1 $p |- ( ph ->
      ( NN ( repr ` S ) N ) = ( ( 1 ... N ) ( repr ` S ) N ) ) $=
      ( cn crepr cfv co cfz cin wss ssid a1i reprinfz1 wceq fz1ssnn dfss mpbi
      c1 incom eqtri oveq1i syl6eqr ) AFCBGHZIFTCJIZKZCUEIUFCUEIAFBCDEFFLAFMNOU
      FUGCUEUFUFFKZUGUFFLUFUHPCQUFFRSUFFUAUBUCUD $.
  $}

  ${
    $d A a c $.  $d M a c $.  $d S a c $.  $d a c ph $.
    hashrepr.a $e |- ( ph -> A C_ NN ) $.
    hashrepr.m $e |- ( ph -> M e. NN0 ) $.
    hashrepr.s $e |- ( ph -> S e. NN0 ) $.
    $( Develop the number of representations of an integer ` M ` as a sum of
       nonnegative integers in set ` A ` .  (Contributed by Thierry Arnoux,
       14-Dec-2021.) $)
    hashrepr $p |- ( ph -> ( # ` ( A ( repr ` S ) M ) )
       = sum_ c e. ( NN ( repr ` S ) M )
           prod_ a e. ( 0 ..^ S ) ( ( ( _Ind ` NN ) ` A ) ` ( c ` a ) ) ) $=
      ( c1 cfz co cin crepr cfv chash cc0 cv cn csu cfzo cind cprod nn0zd fzfid
      wss fz1ssnn a1i hashreprin reprinfz1 fveq2d reprfz1 sumeq1d 3eqtr4d ) ABJ
      DKLZMDCNOZLZPOUODUPLZQCUALERFROBSUBOOOEUCZFTBDUPLZPOSDUPLZUSFTABUOCDEFGAD
      HUDIAJDUEUOSUFADUGUHUIAUTUQPABCDHIGUJUKAVAURUSFACDHIULUMUN $.
  $}

  ${
    $d A a b c d $.  $d B c d $.  $d M a b c d $.  $d P a b c d $.
    $d S a b c d $.  $d T a b c d $.  $d X c $.  $d a b c d ph $.
    reprpmtf1o.s $e |- ( ph -> S e. NN ) $.
    reprpmtf1o.m $e |- ( ph -> M e. ZZ ) $.
    reprpmtf1o.a $e |- ( ph -> A C_ NN ) $.
    reprpmtf1o.x $e |- ( ph -> X e. ( 0 ..^ S ) ) $.
    reprpmtf1o.o $e |- O = { c e. ( A ( repr ` S ) M ) | -. ( c ` 0 ) e. B } $.
    reprpmtf1o.p $e |- P = { c e. ( A ( repr ` S ) M ) | -. ( c ` X ) e. B } $.
    reprpmtf1o.t $e |- T = if ( X = 0 , ( _I |` ( 0 ..^ S ) )
                                , ( ( pmTrsp ` ( 0 ..^ S ) ) ` { X , 0 } ) ) $.
    reprpmtf1o.f $e |- F = ( c e. P |-> ( c o. T ) ) $.
    $( Transposing ` 0 ` and ` X ` maps representations with a condition on the
       first index to transpositions with the same condition on the index
       ` X ` .  (Contributed by Thierry Arnoux, 27-Dec-2021.) $)
    reprpmtf1o $p |- ( ph -> F : P -1-1-onto-> O ) $=
      ( wcel va vd vb cc0 cfzo co cmap cv ccom cmpt cima cres wf1o wf1 wss eqid
      cvv ovexd nnex a1i ssexd lbfzo0 sylibr pmtridf1o fmptco1f1o f1of1 syl cfv
      cn csu wceq crab ssrab2 crepr ssrab3 nnnn0d reprval sseqtrd sselda sseldi
      wa wn ex ssrdv f1ores syl2anc resmpt syl6eqr eqidd wrex vex elimampt wral
      simpr f1of ad2antrr fmpt adantr rspa eqeltrd fveq1d wfun cdm f1ofun f1odm
      wf eleqtrrd adantlr eqtrd sumeq2dv fveq2 cfn fzofi cz cn0 reprf ffvelrnda
      fvco sseldd nncnd fsumf1o reprsum 3eqtr2d fveq1 sumeq2sdv eqeq1d sylanbrc
      elrab pmtridfv2 fveq2d syl6eleq rabid sylib simprd eqneltrd r19.29an 3syl
      jca eleq1d notbid ccnv f1ocnv fco wb elmapg mpbird f1ocnvfv imp syl6eleqr
      syl21anc anasss coeq1d eqeq2d f1ococnv1 coeq2d adantrr fcoi1 eqtr2d coass
      cid rspcedvd impbida bitrd syl6bbr eqrdv f1oeq123d mpbid ) ADKBUDEUEUFZUG
      UFZKUHZFUIZUJZDUKZUVLDULZUMZDIGUMAUVIUVIUVLUNZDUVIUOZUVOAUVIUVIUVLUMZUVPA
      UVIUVIUVHBFKUVHUVLUQUQUQUVIUPZUVSUVLUPZAUDEUEURZUWAABVIUQVIUQTAUSUTNVAZAU
      VHFUQJUDUWAOAEVITUDUVHTZLEVBVCZRVDZVEZUVIUVIUVLVFVGAKDUVIAUVJDTZUVJUVITZA
      UWGWAZUVHUAUHZUVJVHZUAVJZHVKZKUVIVLZUVIUVJUWMKUVIVMADUWNUVJADBHEVNVHUFZUW
      NDUWOUOAJUVJVHZCTZWBZKUWODQVOUTZABEHUAKNMAELVPZVQZVRVSVTZWCWDZUVIUVIDUVLW
      EWFADDUVMIUVNGAUVNKDUVKUJZGAUVQUVNUXDVKUXCKUVIDUVKWGVGSWHADWIAUVMUDUVJVHZ
      CTZWBZKUWOVLZIAUBUVMUXHAUBUHZUVMTZUXIUWOTZUDUXIVHZCTZWBZWAZUXIUXHTAUXJUXI
      UVKVKZKDWJZUXOAKUVIUVKUXIDUVLUQUVTUXIUQTAUBWKUTUXCWLAUXQUXOAUXPUXOKDUWIUX
      PWAZUXKUXNUXRUXIUWNUWOUXRUXIUVITUVHUWJUXIVHZUAVJZHVKZUXIUWNTUXRUXIUVKUVIU
      WIUXPWNZUXRUVKUVITZKUVIWMZUWHUYCUXRUVIUVIUVLXFZUYDAUYEUWGUXPAUVRUYEUWFUVI
      UVIUVLWOVGWPKUVIUVIUVKUVLUVTWQVCUWIUWHUXPUXBWRUYCKUVIWSWFWTUXRUXTUVHUWJFV
      HZUVJVHZUAVJZUVHUCUHZUVJVHZUCVJZHUXRUVHUXSUYGUAUXRUWJUVHTZWAZUXSUWJUVKVHZ
      UYGUYMUWJUXIUVKUXRUXPUYLUYBWRXAUWIUYLUYNUYGVKZUXPUWIUYLWAZFXBZUWJFXCZTUYO
      AUYQUWGUYLAUVHUVHFUMZUYQUWEUVHUVHFXDVGZWPUYPUWJUVHUYRUWIUYLWNAUYRUVHVKZUW
      GUYLAUYSVUAUWEUVHUVHFXEVGZWPXGUWJUVJFXRWFXHXIXJUWIUYKUYHVKUXPUWIUVHUYJUVH
      UYGUCUAFUYFUYIUYFUVJXKUVHXLTZUWIUDEXMZUTAUYSUWGUWEWRUYPUYFWIUWIUYIUVHTZWA
      ZUYJVUFBVIUYJABVIUOZUWGVUENWPUWIUVHBUYIUVJUWIBUVJEHAVUGUWGNWRZAHXNTZUWGMW
      RZAEXOTZUWGUWTWRZADUWOUVJUWSVSZXPXQXSXTYAWRUWIUYKHVKUXPUWIBUVJEHUCVUHVUJV
      ULVUMYBWRYCUWMUYAKUXIUVIUVJUXIVKZUWLUXTHVUNUVHUWKUXSUAUWJUVJUXIYDYEYFYHYG
      AUWOUWNVKZUWGUXPUXAWPXGUXRUXLUDUVKVHZCUXRUDUXIUVKUYBXAUXRVUPUDFVHZUVJVHZC
      UXRUYQUDUYRTZVUPVURVKAUYQUWGUXPUYTWPAVUSUWGUXPAUDUVHUYRUWDVUBXGWPUDUVJFXR
      WFUXRVURUWPCUXRVUQJUVJAVUQJVKZUWGUXPAUVHFUQJUDUWAOUWDRYIZWPYJUWIUWRUXPUWI
      UVJUWOTZUWRUWIUVJUWRKUWOVLZTVVBUWRWAUWIUVJDVVCAUWGWNQYKUWRKUWOYLYMYNWRYOY
      OYOYRYPAUXOWAZUXPUXIUXIFUUAZUIZFUIZVKKVVFDAUXKUXNVVFDTAUXKWAZUXNWAZVVFVVC
      DVVIVVFUWOTJVVFVHZCTZWBZVVFVVCTVVIVVFUWNUWOVVIVVFUVITZUVHUWJVVFVHZUAVJZHV
      KZVVFUWNTVVHVVMUXNVVHVVMUVHBVVFXFZVVHUVHBUXIXFZUVHUVHVVEXFZVVQVVHBUXIEHAV
      UGUXKNWRZAVUIUXKMWRZAVUKUXKUWTWRZAUXKWNZXPZAVVSUXKAUYSUVHUVHVVEUMZVVSUWEU
      VHUVHFUUBZUVHUVHVVEWOYQWRUVHUVHBUXIVVEUUCWFAVVMVVQUUDZUXKABUQTUVHUQTVWGUW
      BUWABUVHVVFUQUQUUEWFWRUUFWRVVHVVPUXNVVHVVOUVHUWJVVEVHZUXIVHZUAVJUVHUYIUXI
      VHZUCVJHVVHUVHVVNVWIUAVVHUYLWAZVVEXBZUWJVVEXCZTZVVNVWIVKAVWLUXKUYLAUYSVWE
      VWLUWEVWFUVHUVHVVEXDYQZWPAUYLVWNUXKAUYLWAUWJUVHVWMAUYLWNAVWMUVHVKZUYLAUYS
      VWEVWPUWEVWFUVHUVHVVEXEYQZWRXGXHUWJUXIVVEXRWFXJVVHUVHVWJUVHVWIUCUAVVEVWHU
      YIVWHUXIXKVUCVVHVUDUTAVWEUXKAUYSVWEUWEVWFVGWRVWKVWHWIVVHVUEWAZVWJVWRBVIVW
      JVVHVUGVUEVVTWRVVHUVHBUYIUXIVWDXQXSXTYAVVHBUXIEHUCVVTVWAVWBVWCYBYCWRUWMVV
      PKVVFUVIUVJVVFVKZUWLVVOHVWSUVHUWKVVNUAUWJUVJVVFYDYEYFYHYGAVUOUXKUXNUXAWPX
      GVVIVVJJVVEVHZUXIVHZCVVIVWLJVWMTZVVJVXAVKAVWLUXKUXNVWOWPAVXBUXKUXNAJUVHVW
      MOVWQXGWPJUXIVVEXRWFVVIVXAUXLCVVIVWTUDUXIAVWTUDVKZUXKUXNAUYSUWCVUTVXCUWEU
      WDVVAUYSUWCWAVUTVXCUVHUVHUDJFUUGUUHUUJWPYJVVHUXNWNYOYOUWRVVLKVVFUWOVWSUWQ
      VVKVWSUWPVVJCJUVJVVFYDYSYTYHYGQUUIUUKVVDVWSWAZUVKVVGUXIVXDUVJVVFFVVDVWSWN
      UULUUMVVDUXIUXIVVEFUIZUIZVVGVVDVXFUXIUUTUVHULZUIZUXIVVDVXEVXGUXIAVXEVXGVK
      ZUXOAUYSVXIUWEUVHUVHFUUNVGWRUUOVVDVVRVXHUXIVKAUXKVVRUXNVWDUUPUVHBUXIUUQVG
      UURUXIVVEFUUSWHUVAUVBUVCUXGUXNKUXIUWOVUNUXFUXMVUNUXEUXLCUDUVJUXIYDYSYTYHU
      VDUVEPWHUVFUVG $.
  $}

  ${
    $d A c d x $.  $d B c d x $.  $d M c d x $.  $d S a c d x $.  $d ph d x $.
    reprdifc.c $e |- C = { c e. ( A ( repr ` S ) M ) | -. ( c ` x ) e. B } $.
    reprdifc.a $e |- ( ph -> A C_ NN ) $.
    reprdifc.b $e |- ( ph -> B C_ NN ) $.
    reprdifc.m $e |- ( ph -> M e. NN0 ) $.
    reprdifc.s $e |- ( ph -> S e. NN0 ) $.
    $( Express the representations as a sum of integers in a difference of sets
       using conditions on each of the indices.  (Contributed by Thierry
       Arnoux, 27-Dec-2021.) $)
    reprdifc $p |- ( ph -> ( ( A ( repr ` S ) M ) \ ( B ( repr ` S ) M ) )
      = U_ x e. ( 0 ..^ S ) C ) $=
      ( va vd co cv wcel wa cvv cc0 cfzo cfv csu wceq cmap cdif crab crepr ciun
      wn nfv nfrab1 nfcv wrex nn0zd reprval eleq2d rabid syl6bb anbi1d wb eldif
      anbi1i an32 bitri a1i bitr4d wral wf cn ssexd ovexd elmapg syl2anc adantr
      nnex wfn wss cz cn0 simpr reprf ffn biantrurd ffnfv syl6rbbr bitrd notbid
      syl rexnal syl6bbr bitr3d fveq1 eleq1d elrab rexbii r19.42v eliun 3bitr4g
      pm5.32da eqrd difeq12d difrab2 syl6eq iuneq2d 3eqtr4d ) AUAFUBPZNQOQZUCNU
      DGUEZOCXHUFPZDXHUFPZUGZUHZBXHBQZHQZUCZDRZUKZHCGFUIUCZPZUHZUJZYADGXTPZUGZB
      XHEUJAOXNYCAOULXJOXMUMOYCUNAXIXMRZXJSZXIYBRZBXHUOZXIXNRXIYCRAYGXIYARZXOXI
      UCZDRZUKZBXHUOZSZYIAYJXIXLRZUKZSZYGYOAYRXIXKRZXJSZYQSZYGAYJYTYQAYJXIXJOXK
      UHZRYTAYAUUBXIACFGNOJAGLUPZMUQZURXJOXKUSUTVAYGUUAVBAYGYSYQSZXJSUUAYFUUEXJ
      XIXKXLVCVDYSYQXJVEVFVGVHAYJYQYNAYJSZYQYLBXHVIZUKYNUUFYPUUGUUFYPXHDXIVJZUU
      GAYPUUHVBZYJADTRXHTRUUIADVKTVKTRAVQVGKVLAUAFUBVMDXHXITTVNVOVPUUFUUGXIXHVR
      ZUUGSUUHUUFUUJUUGUUFXHCXIVJUUJUUFCXIFGACVKVSYJJVPAGVTRYJUUCVPAFWARYJMVPAY
      JWBWCXHCXIWDWJWEBXHDXIWFWGWHWIYLBXHWKWLXAWMYIYJYMSZBXHUOYOYHUUKBXHXSYMHXI
      YAXPXIUEZXRYLUULXQYKDXOXPXIWNWOWIWPWQYJYMBXHWRVFWLXJOXMUSBXIXHYBWSWTXBAYE
      UUBXJOXLUHZUGXNAYAUUBYDUUMUUDADFGNOKUUCMUQXCXJOXKXLXDXEABXHEYBEYBUEAIVGXF
      XG $.
  $}

  ${
    $d N n $.  $d i n $.
    $( Value of the second Chebyshev function, or summatory of the von Mangoldt
       function.  (Contributed by Thierry Arnoux, 28-Dec-2021.) $)
    chpvalz $p |- ( N e. ZZ -> ( psi ` N ) = sum_ n e. ( 1 ... N ) ( Lam ` n )
      ) $=
      ( cz wcel cchp cfv c1 cfl cfz co cvma csu wceq zre chpval syl flid oveq2d
      cv cr sumeq1d eqtrd ) BCDZBEFZGBHFZIJZASKFZALZGBIJZUGALUCBTDUDUHMBNBAOPUC
      UFUIUGAUCUEBGIBQRUAUB $.

    $( Value of the Chebyshev function for integers.  (Contributed by Thierry
       Arnoux, 28-Dec-2021.) $)
    chtvalz $p |- ( N e. ZZ ->
           ( theta ` N ) = sum_ n e. ( ( 1 ... N ) i^i Prime ) ( log ` n ) ) $=
      ( vi cz wcel cfv cc0 co cprime cin c1 cfz wceq syl c2 cdif c0 wss a1i wbr
      ccht cicc cv clog csu cr zre chtval cn nnz cfl ppisval flid oveq2d ineq1d
      eqtrd cuz 2nn nnuz eleqtri fzss1 ax-mp ssdif0 mpbi ineq1i 0in eqtri caddc
      wn csn eleq2i fzpred sylbi eqcomd 1p1e2 oveq1i difeq12d difun2 fzpreddisj
      cun disjdif2 syl5eq eqtr3d incom 1nprm disjsn mpbir eqtr3i syl6eq syl2anc
      difininv adantl clt znnnlt1 biimpa wa cpnf cico cdvds cmin isprm3 simplbi
      wral ssriv nnzi uzssico sstri cxr nnrei rexri 0le0 adantr 1red simpr 1lt2
      cle 0xr lttrd iccssico pnfxr icodisj mp3an ssdisj sylancl syl5eqr sylancr
      syl22anc 1zzd simpl fzn syl21anc eqtr4d syldan exmidd mpjaodan sumeq1d )
      BDEZBUAFZGBUBHZIJZAUCZUDFZAUEZKBLHZIJZUUBAUEYQBUFEZYRUUCMBUGZBAUHNYQYTUUE
      UUBAYQBUIEZYTUUEMZUUHVIZUUHUUIYQUUHYTOBLHZIJZUUEUUHYQYTUULMBUJYQYTOBUKFZL
      HZIJZUULYQUUFYTUUOMUUGBULNYQUUNUUKIYQUUMBOLBUMUNUOUPNUUHUUKUUDPZIJZQMZUUD
      UUKPZIJZQMUULUUEMUURUUHUUQQIJZQUUPQIUUKUUDRZUUPQMOKUQFZEUVBOUIUVCURUSUTOK
      BVAVBUUKUUDVCVDVEIVFZVGSUUHUUTKVJZIJZQUUHUUSUVEIUUHUVEKKVHHZBLHZVTZUVHPZU
      USUVEUUHUVIUUDUVHUUKUUHUUDUVIUUHBUVCEZUUDUVIMUIUVCBUSVKZKBVLVMVNUVHUUKMUU
      HUVGOBLVOVPSVQUUHUVJUVEUVHPZUVEUVEUVHVRUUHUVEUVHJQMZUVMUVEMUUHUVKUVNUVLKB
      VSVMUVEUVHWANWBWCUOIUVEJZUVFQIUVEWDUVOQMKIEVIWEIKWFWGWHWIUUKIUUDWKWJUPWLY
      QUUJBKWMTZUUIYQUUJUVPBWNWOYQUVPWPZYTQUUEUVQYTIYSJZQYSIWDUVQIOWQWRHZRUVSYS
      JZQMUVRQMIOUQFZUVSAIUWAUUAIEUUAUWAECUCUUAWSTVICOUUAKWTHLHXCCUUAXAXBXDODEU
      WAUVSROURXEOXFVBXGUVQUVTYSUVSJZQYSUVSWDUVQYSGOWRHZRZUWCUVSJQMZUWBQMUVQGXH
      EZOXHEZGGXPTZBOWMTUWDUWFUVQXQSUWGUVQOOURXIZXJZSUWHUVQXKSUVQBKOYQUUFUVPUUG
      XLUVQXMOUFEUVQUWISYQUVPXNZKOWMTUVQXOSXRGOGBXSYGUWFUWGWQXHEUWEXQUWJXTGOWQY
      AYBYSUWCUVSYCYDYEIUVSYSYCYFWBUVQUUEUVAQUVQUUDQIUVQKDEZYQUVPUUDQMZUVQYHYQU
      VPYIUWKUWLYQWPUVPUWMKBYJWOYKUOUVDWIYLYMYQUUHYNYOYPUP $.
  $}

  ${
    $d N c m s t $.  $d S a c m s t $.  $d Z c m s t $.  $d b c s t $.
    $d ph c s t $.
    breprexp.n $e |- ( ph -> N e. NN0 ) $.
    breprexp.s $e |- ( ph -> S e. NN0 ) $.
    ${
      $d L a b d e x y $.  $d M a b c d e v $.  $d N a b c d e s t v $.
      $d S a b c d e m s t v x y $.  $d Z c m s t $.
      $d ph a b c d e s t v x y $.
      breprexplema.m $e |- ( ph -> M e. NN0 ) $.
      breprexplema.1 $e |- ( ph -> M <_ ( ( S + 1 ) x. N ) ) $.
      breprexplema.l $e |- ( ( ( ph /\ x e. ( 0 ..^ ( S + 1 ) ) ) /\ y e. NN )
        -> ( ( L ` x ) ` y ) e. CC ) $.
      $( Lemma for ~ breprexp (induction step for weighted sums over
         representations) (Contributed by Thierry Arnoux, 7-Dec-2021.) $)
      breprexplema $p |- ( ph -> sum_ d e. ( ( 1 ... N ) ( repr ` ( S + 1 ) ) M
        ) prod_ a e. ( 0 ..^ ( S + 1 ) ) ( ( L ` a ) ` ( d ` a ) )
       = sum_ b e. ( 1 ... N ) sum_ d e. ( ( 1 ... N ) ( repr ` S ) ( M - b ) )
          ( prod_ a e. ( 0 ..^ S ) ( ( L ` a ) ` ( d ` a ) )
            x. ( ( L ` S ) ` b ) ) ) $=
        ( vv cfv a1i wcel wceq vc ve c1 cfz co caddc crepr cc0 cfzo cv csu cmin
        cprod cop csn cun cmpt crn ciun cmul fz1ssnn nn0zd eqid reprsuc sumeq1d
        cn wss fzfid wa cfn cz adantr fzssz simpr sseldi zsubcld cn0 reprfi syl
        mptfi rnfi cmap crab reprval ssrab2 syl6eqss elexd wn actfunsnrndisj cc
        fzonel fzofi wral ralrimiva ad3antrrr wi nfv nfcv nfmpt1 nfrn nfel nfan
        wf cin c0 simplr reprf fsnd fzodisjsn fun2 syl21anc syl6eleq fzosplitsn
        cuz nn0uz ad4antr feq12d mpbird wrex vex snex unex elrnmpti sylib fveq2
        fveq1d eleq1d rspc2v syl2anc mpd wfn syl112anc fveq2d eqeltrd prodeq2dv
        ad2antrr 3eqtrd sumeq2dv simpl cvv r19.29af ffvelrnd fprodcl anasss ffn
        fsumiun prodeq1d fnsng fvun1 sselda ffvelrnda fveq12d snidg fvun2 fvsng
        fzossfzop1 eqtrd fprodsplitsn oveq12d actfunsnf1o uneq1d fvmptd fsumf1o
        fzonn0p1 oveq1d cbvsumv 3eqtr4d ) AUCGUDUEZFDUCUFUEZUGQUEZUHUVIUIUEZHUJ
        ZJUJZQZUVLEQZQZHUMZJUKIUVHPUVHFIUJZULUEZDUGQUEZPUJZDUVRUNZUOZUPZUQZURZU
        SZUVQJUKUVHUWFUVQJUKZIUKUVHUVTUHDUIUEZUVPHUMZUVRDEQZQZUTUEZJUKZIUKAUVJU
        WGUVQJAUVHDUWEFIPUVHVFVGZAGVAZRAFMVBZLUWEVCZVDVEAIUVHUWFUVQJAUCGVHZAUVR
        UVHSZVIZUWEVJSZUWFVJSUXAUVTVJSUXBUXAUVHDUVSUWOUXAUWPRZUXAFUVRAFVKSUWTUW
        QVLUXAUVHVKUVRUCGVMAUWTVNZVOVPZADVQSZUWTLVLZAUVHVJSUWTUWSVLVRZPUVTUWDVT
        VSUWEWAVSAPUVTUWIUVHIUWEDVQUXAUVTUWIUVLUAUJQHUKUVSTZUAUVHUWIWBUEZWCUXJU
        XAUVHDUVSHUAUXCUXEUXGWDUXIUAUXJWEWFZAUVHVJUWSWGZLDUWISWHZAUHDWKZRZUWRWI
        AUWTUVMUWFSZUVQWJSUXAUXPVIZUVKUVPHUVKVJSUXQUHUVIWLRUXQUVLUVKSZVIZCUJZBU
        JZEQZQZWJSZCVFWMZBUVKWMZUVPWJSZAUYFUWTUXPUXRAUYEBUVKAUYAUVKSVIUYDCVFOWN
        WNZWOUXSUXRUVNVFSUYFUYGWPUXQUXRVNZUXSUVHVFUVNUWPUXSUVKUVHUVLUVMUXQUVKUV
        HUVMXCZUXRUXQUVMUWDTZUYJPUVTUXAUXPPUXAPWQPUVMUWFPUVMWRPUWEPUVTUWDWSWTXA
        XBUXQUWAUVTSZVIZUYKVIZUYJUWIDUOZUPZUVHUWDXCZUYNUWIUVHUWAXCUYOUVHUWCXCUW
        IUYOXDXETZUYQUYNUVHUWADUVSUWOUYNUWPRUXAUVSVKSZUXPUYLUYKUXEWOUXAUXFUXPUY
        LUYKUXGWOZUXQUYLUYKXFXGUYNDUVRVQUVHUYTUXAUWTUXPUYLUYKUXDWOXHUYRUYNUHDXI
        ZRUWIUYOUVHUWAUWCXJXKUYNUVKUYPUVHUVMUWDUYMUYKVNAUVKUYPTZUWTUXPUYLUYKADU
        HXNQZSVUBADVQVUCLXOXLUHDXMVSZXPXQXRUXQUXPUYKPUVTXSUXAUXPVNPUVTUWDUVMUWE
        UWRUWAUWCPXTUWBYAZYBYCYDUUAVLUYIUUBVOUYDUYGUXTUVOQZWJSZBCUVLUVNUVKVFUYA
        UVLTZUYCVUFWJVUHUXTUYBUVOUYAUVLEYEYFYGZUXTUVNTVUFUVPWJUXTUVNUVOYEYGYHYI
        YJUUCZUUDUUFAUVHUWHUWNIUXAUVTUVKUVLUBUJZUWCUPZQZUVOQZHUMZUBUKUVTUWIUVLV
        UKQZUVOQZHUMZUWLUTUEZUBUKZUWHUWNUXAUVTVUOVUSUBUXAVUKUVTSZVIZVUOUYPVUNHU
        MUWIVUNHUMZDVULQZUWKQZUTUEVUSVVBUVKUYPVUNHAVUBUWTVVAVUDYPUUGVVBUWIDVUNV
        VEHVQVVBHWQHVVEWRUWIVJSVVBUHDWLRUXAUXFVVAUXGVLZUXMVVBUXNRVVBUVLUWISZVIZ
        VUNVUQWJVVHVUMVUPUVOVVHVUKUWIYKZUWCUYOYKZUYRVVGVUMVUPTVVBVVIVVGVVBUWIUV
        HVUKXCVVIVVBUVHVUKDUVSUWOVVBUWPRUXAUYSVVAUXEVLVVFUXAVVAVNZXGZUWIUVHVUKU
        UEVSZVLVVBVVJVVGVVBUXFUWTVVJVVFUXAUWTVVAUXDVLZDUVRVQUVHUUHYIZVLUYRVVHVU
        ARVVBVVGVNUWIUYOVUKUWCUVLUUIYLYMZVVHUYFVUQWJSZVVBUYFVVGAUYFUWTVVAUYHYPZ
        VLVVHUXRVUPVFSUYFVVQWPVVBUWIUVKUVLAUWIUVKVGZUWTVVAAUXFVVSLDUUPVSYPUUJVV
        HUVHVFVUPUWPVVBUWIUVHUVLVUKVVLUUKVOUYDVVQVUGBCUVLVUPUVKVFVUIUXTVUPTVUFV
        UQWJUXTVUPUVOYEYGYHYIYJYNUVLDTVUMVVDUVOUWKUVLDEYEUVLDVULYEUULVVBVVEUWLW
        JVVBVVDUVRUWKVVBVVDDUWCQZUVRVVBVVIVVJUYRDUYOSZVVDVVTTVVMVVOUYRVVBVUARVV
        BUXFVWAVVFDVQUUMVSUWIUYOVUKUWCDUUNYLVVBUXFUWTVVTUVRTVVFVVNDUVRVQUVHUUOY
        IUUQYMZVVBUYFUWLWJSZVVRVVBDUVKSZUVRVFSUYFVWCWPAVWDUWTVVAAUXFVWDLDUVDVSY
        PVVBUVHVFUVRUWPVVNVOUYDVWCUXTUWKQZWJSBCDUVRUVKVFUYADTZUYCVWEWJVWFUXTUYB
        UWKUYADEYEYFYGUXTUVRTVWEUWLWJUXTUVRUWKYEYGYHYIYJYNUURVVBVVCVURVVEUWLUTV
        VBUWIVUNVUQHVVPYOVWBUUSYQYRUXAUWFUVQUVTVUOJUBUWEVULUVMVULTZUVKUVPVUNHVW
        GUXRVIZUVNVUMUVOVWHUVLUVMVULVWGUXRYSYFYMYOUXHAPUVTUWIUVHIUWEDVQUXKUXLLU
        XOUWRUUTVVBPVUKUWDVULUVTUWEYTUWEUWETVVBUWRRVVBUWAVUKTZVIUWAVUKUWCVVBVWI
        VNUVAVVKVULYTSVVBVUKUWCUBXTVUEYBRUVBVUJUVCUWNVUTTUXAUVTUWMVUSJUBUVMVUKT
        ZUWJVURUWLUTVWJUWIUVPVUQHVWJVVGVIZUVNVUPUVOVWKUVLUVMVUKVWJVVGYSYFYMYOUV
        EUVFRUVGYRYQ $.
    $}

    breprexp.z $e |- ( ph -> Z e. CC ) $.
    ${
      $d L c m s t $.
      breprexp.h $e |- ( ph -> L : ( 0 ..^ S ) --> ( CC ^m NN ) ) $.
      ${
        breprexplemb.x $e |- ( ph -> X e. ( 0 ..^ S ) ) $.
        breprexplemb.y $e |- ( ph -> Y e. NN ) $.
        $( Lemma for ~ breprexp (closure) (Contributed by Thierry Arnoux,
           7-Dec-2021.) $)
        breprexplemb $p |- ( ph -> ( ( L ` X ) ` Y ) e. CC ) $=
          ( cn cc cfv cmap co wcel ffvelrnd wf cc0 cfzo cnex nnex elmap sylib )
          ANOFECPZAUHONQRZSNOUHUAAUBBUCRUIECKLTONUHUDUEUFUGMT $.
      $}

      ${
        $d F d v $.  $d T a b d m n v x y $.  $d Z a b c d m n s t v $.
        $d S a c m s t $.  $d L a b c d m n s t v x y $.
        $d ph a b c d m n s t v x y $.  $d N a b c d m n s t v x y $.
        breprexplemc.t $e |- ( ph -> T e. NN0 ) $.
        breprexplemc.s $e |- ( ph -> ( T + 1 ) <_ S ) $.
        breprexplemc.1 $e |- ( ph -> prod_ a e. ( 0 ..^ T ) sum_ b e. ( 1 ... N
          ) ( ( ( L ` a ) ` b ) x. ( Z ^ b ) ) = sum_ m e. ( 0 ... ( T x. N ) )
          sum_ d e. ( ( 1 ... N ) ( repr ` T ) m ) ( prod_ a e. ( 0 ..^ T ) ( (
          L ` a ) ` ( d ` a ) ) x. ( Z ^ m ) ) ) $.
        $( Lemma for ~ breprexp (induction step) (Contributed by Thierry
           Arnoux, 6-Dec-2021.) $)
        breprexplemc $p |- ( ph -> prod_ a e. ( 0 ..^ ( T + 1 ) ) sum_ b e. ( 1
          ... N ) ( ( ( L ` a ) ` b ) x. ( Z ^ b ) ) = sum_ m e. ( 0 ... ( ( T
          + 1 ) x. N ) ) sum_ d e. ( ( 1 ... N ) ( repr ` ( T + 1 ) ) m ) (
          prod_ a e. ( 0 ..^ ( T + 1 ) ) ( ( L ` a ) ` ( d ` a ) ) x. ( Z ^ m )
          ) ) $=
          ( co cmul wcel vn vx vy cc0 c1 caddc cfzo cfz cv cfv cexp csu csn cun
          cprod crepr cuz wceq cn0 nn0uz syl6eleq fzosplitsn syl prodeq1d fzofi
          nfv cfn a1i wn wa fzfid ad2antrr cc cn wf adantr wss cz cle wbr nn0zd
          nn0red biimpar fzoss2 sselda breprexplemb expcld mulcld fsumcl oveq1d
          nfcv sstri sumeq2dv wb zltp1le mpbird fz0ssnn0 simpr sseldi ad3antrrr
          clt reprfi simplr reprf ffvelrnd fprodcl cmin zsubcld adantlr ad4antr
          fzssz fsummulc1 adantl syl21anc mulassd eqtrd 1nn0 nn0addcld 3eqtr2rd
          3eqtrd oveq1 oveq2d sumeq1d oveq2 oveq12d w3a 3ad2ant1 3adant2 biimpa
          zcnd c0 cr zred syl6eq npcand eqeltrd mul02d recnd nn0sscn ad4ant13
          fzonel cmap 1red readdcld lep1d letrd eluz1 fz1ssnn nnssnn0 ralrimivw
          syl12anc r19.21bi simpl fveq2d fveq1d nn0ge0d syl2anc elfzo mpbir2and
          0zd syl3anc fprodsplitsn fsum2mul ad5ant15 peano2zd eluz breprexplema
          elfzle2 sseldd cbvsumv syl6eqr cneg uzssz simp2 simp3 subnegd znegcld
          nn0mulcld znn0sub eqeltrrd remulcld fz2ssnn0 zmulcld zaddcld ltaddsub
          eluzle ssid elfzle1 syl31anc reprgt sum0 fzossfz 0red sublt0d ltletrd
          elfzolt2 reprlt fzo0ssnn0 fsum2dsub adddirp1d eqcomd sumeq12dv eqtr4d
          mulcomd expaddd 3eqtr4d eqtr3d 3eqtr4rd 3eqtr2d ) AUDCUEUFRZUGRZUEFUH
[encoded data, 7360 characters]
          XVGVWRVWDXIXRWGWHXURXLUXHWMWMXSUXIXT $.
      $}

      $d L a b c i j k n $.  $d N a b c i j k n $.  $d S b $.
      $d Z a b c i j k n $.  $d ph a b c m $.  $d a b c i j k m n s $.
      $( Express the ` S ` th power of the finite series in terms of the number
         of representations of integers ` m ` as sums of ` S ` terms.  This is
         a general formulation which allows logarithmic weighting of the sums
         (see https://mathoverflow.net/questions/253246) and a mix of different
         smoothing functions taken into account in ` L ` .  See ~ breprexpnat
         for the simple case presented in the proposition of [Nathanson]
         p. 123.  (Contributed by Thierry Arnoux, 6-Dec-2021.) $)
      breprexp $p |- ( ph -> prod_ a e. ( 0 ..^ S ) sum_ b e. ( 1 ... N )
         ( ( ( L ` a ) ` b ) x. ( Z ^ b ) )
      = sum_ m e. ( 0 ... ( S x. N ) ) sum_ c e. ( ( 1 ... N ) ( repr ` S ) m )
         ( prod_ a e. ( 0 ..^ S ) ( ( L ` a ) ` ( c ` a ) ) x. ( Z ^ m ) ) ) $=
        ( wcel cc0 co c1 cmul csu wceq vt vs vj vi vn vk cn0 cfzo cfz cfv cprod
        cv cexp crepr wa cle wbr cr wss nn0ssre a1i sselda leid syl caddc breq1
        oveq2 prodeq1d oveq1 oveq2d fveq2 oveqd oveq1d adantr sumeq12dv eqeq12d
        wi imbi12d csn c0 cc 0nn0 cfn cif fz1ssnn 0zd repr0 eqid iftruei syl6eq
        cn snfi syl6eqel fzo0 prodeq1i prod0 exp0 oveq12d ax-1cn mulid1i fsumcl
        eqtri simpl sumsn sylancr sumeq1d cvv 0ex mulcld fveq1 fveq2d ralrimivw
        prodeq2d 3eqtr2d eqtrd 3eqtrd nn0cnd mul02d 3eqtr4rd a1d simpll cbvsumv
        fz0sn simplr eqeq2i fveq1d sumeq2dv cbvprodv prodeq2i fveq12d prodeq2dv
        oveq1i sumeq2i eqeq12i bitri imbi2i simpr ad3antrrr sseldi mpd sylib wf
        cmap simpllr readdcld ltp1d ltled letrd sylibr breprexplemc syl21anc ex
        1red nn0indd mpdan ) ABUGNZOBUHPZQEUIPZHULZGULZDUJZUJZFUUSUMPZRPZHSZGUK
        ZOBERPZUIPZUURCULZBUNUJZPZUUQUUTIULZUJZUVAUJZGUKZFUVIUMPZRPZISZCSZTZKAU
        UPUOZBBUPUQZUVTUWABURNUWBAUGURBUGURUSAUTVAVBBVCVDAUAULZBUPUQZOUWCUHPZUV
        EGUKZOUWCERPZUIPZUURUVIUWCUNUJZPZUWEUVNGUKZUVPRPZISZCSZTZVQOBUPUQZOOUHP
        ZUVEGUKZOOERPZUIPZUURUVIOUNUJZPZUWQUVNGUKZUVPRPZISZCSZTZVQUBULZBUPUQZOU
        XHUHPZUVEGUKZOUXHERPZUIPZUURUVIUXHUNUJZPZUXJUVNGUKZUVPRPZISZCSZTZVQZUXH
        QVEPZBUPUQZOUYBUHPZUVEGUKZOUYBERPZUIPZUURUVIUYBUNUJZPZUYDUVNGUKZUVPRPZI
        SZCSZTZVQUWBUVTVQUAUBBUWCOTZUWDUWPUWOUXGUWCOBUPVFUYOUWFUWRUWNUXFUYOUWEU
        WQUVEGUWCOOUHVGZVHUYOUWHUWTUWMUXECUYOUWGUWSOUIUWCOERVIVJUYOUWMUXETUVIUW
        HNZUYOUWJUXBUWLUXDIUYOUWIUXAUURUVIUWCOUNVKVLUYOUWLUXDTUVLUWJNZUYOUWKUXC
        UVPRUYOUWEUWQUVNGUYPVHVMVNVOVNVOVPVRUWCUXHTZUWDUXIUWOUXTUWCUXHBUPVFUYSU
        WFUXKUWNUXSUYSUWEUXJUVEGUWCUXHOUHVGZVHUYSUWHUXMUWMUXRCUYSUWGUXLOUIUWCUX
        HERVIVJUYSUWMUXRTUYQUYSUWJUXOUWLUXQIUYSUWIUXNUURUVIUWCUXHUNVKVLUYSUWLUX
        QTUYRUYSUWKUXPUVPRUYSUWEUXJUVNGUYTVHVMVNVOVNVOVPVRUWCUYBTZUWDUYCUWOUYNU
        WCUYBBUPVFVUAUWFUYEUWNUYMVUAUWEUYDUVEGUWCUYBOUHVGZVHVUAUWHUYGUWMUYLCVUA
        UWGUYFOUIUWCUYBERVIVJVUAUWMUYLTUYQVUAUWJUYIUWLUYKIVUAUWIUYHUURUVIUWCUYB
        UNVKVLVUAUWLUYKTUYRVUAUWKUYJUVPRVUAUWEUYDUVNGVUBVHVMVNVOVNVOVPVRUWCBTZU
        WDUWBUWOUVTUWCBBUPVFVUCUWFUVFUWNUVSVUCUWEUUQUVEGUWCBOUHVGZVHVUCUWHUVHUW
        MUVRCVUCUWGUVGOUIUWCBERVIVJVUCUWMUVRTUYQVUCUWJUVKUWLUVQIVUCUWIUVJUURUVI
        UWCBUNVKVLVUCUWLUVQTUYRVUCUWKUVOUVPRVUCUWEUUQUVNGVUDVHVMVNVOVNVOVPVRAUX
        GUWPAOVSZUXECSZQUXFUWRAVUFUUROUXAPZUXCFOUMPZRPZISZVTVSZVUIISZQAOUGNVUJW
        ANVUFVUJTWBAVUGVUIIAVUGVUKWCAVUGOOTZVUKVTWDVUKAUUREOUURWKUSAEWEVAAWFJWG
        VUMVUKVTOWHWIWJZVTWLWMAVUIWANUVLVUGNAVUIQWAAVUIQQRPZQAUXCQVUHQRUXCQTAUX
        CVTUVNGUKQUWQVTUVNGOWNZWOUVNGWPXBVAAFWANZVUHQTLFWQVDZWRZQWSWTWJZWSWMVNX
        AUXEVUJCOUGUVIOTZUXBVUGUXDVUIIUVIOUURUXAVGVVAUVLUXBNZUOZUVPVUHUXCRVVCUV
        IOFUMVVAVVBXCVJVJVOXDXEAVUGVUKVUIIVUNXFAVULUWQUUTVTUJZUVAUJZGUKZVUHRPZQ
        AVTXGNVVGWANVULVVGTXHAVVFVUHAVVFQWAVVFQTAVVFVTVVEGUKQUWQVTVVEGVUPWOVVEG
        WPXBVAZWSWMAVUHQWAVURWSWMXIVUIVVGIVTXGUVLVTTZUXCVVFVUHRVVIUWQUVNVVEGVVI
        UVNVVETGUWQVVIUVMVVDUVAUUTUVLVTXJXKXLXMVMXDXEAVVGVUOVUIQAVVFQVUHQRVVHVU
        RWRVUSVUTXNXOXPAUWTVUEUXECAUWTOOUIPVUEAUWSOOUIAEAEJXQXRVJYCWJXFUWRQTAUW
        RVTUVEGUKQUWQVTUVEGVUPWOUVEGWPXBVAXSXTAUXHUGNZUOZUYAUOZUYCUYNVVLUYCUOZV
        VKUXIUXJUURUCULZUDULZDUJZUJZFVVNUMPZRPZUCSZUDUKZUXMUURUEULZUXNPZUXJVVOU
        FULZUJZVVPUJZUDUKZFVWBUMPZRPZUFSZUESZTZVQZUYCUYNVVKUYAUYCYAVVMUYAVWMVVK
        UYAUYCYDUXTVWLUXIUXTUXKUXMVWCUXPVWHRPZISZUESZTVWLUXSVWPUXKUXMUXRVWOCUEU
        VIVWBTZUXOVWCUXQVWNIUVIVWBUURUXNVGVWQUXQVWNTUVLUXONVWQUVPVWHUXPRUVIVWBF
        UMVGVJVNVOYBYEUXKVWAVWPVWKUXKUXJUURUUSVVPUJZUVCRPZHSZUDUKVWAUXJUVEVWTGU
        DUUTVVOTZUURUVDVWSHVXAUUSUURNZUOZUVBVWRUVCRVXCUUSUVAVVPVXCUUTVVODVXAVXB
        XCXKYFVMYGYHUXJVWTVVTUDVWTVVTTVVOUXJNZUURVWSVVSHUCUUSVVNTVWRVVQUVCVVRRU
        USVVNVVPVKUUSVVNFUMVGWRYBVAYIXBUXMVWOVWJUEVWOVWJTVWBUXMNVWOVWCUXJVVOUVL
        UJZVVPUJZUDUKZVWHRPZISVWJVWCVWNVXHIVWNVXHTUVLVWCNUXPVXGVWHRUXJUVNVXFGUD
        VXAUVMVXEUVAVVPUUTVVODVKUUTVVOUVLVKYJYHYLVAYMVWCVXHVWIIUFUVLVWDTZVXGVWG
        VWHRVXIUXJVXFVWFUDVXIVXDUOZVXEVWEVVPVXJVVOUVLVWDVXIVXDXCYFXKYKVMYBXBVAY
        MYNYOYPZUUAVVLUYCYQVVKVWMUOZUYCUOZBUXHCDEFGHIAEUGNVVJVWMUYCJYRAUUPVVJVW
        MUYCKYRZAVUQVVJVWMUYCLYRAUUQWAWKUUCPDUUBVVJVWMUYCMYRAVVJVWMUYCUUDZVXLUY
        CYQZVXMUXIUXTVXMUXHUYBBVXMUGURUXHUTVXOYSZVXMUXHQVXQVXMUUMUUEZVXMUGURBUT
        VXNYSVXMUXHUYBVXQVXRVXMUXHVXQUUFUUGVXPUUHVXMVWMUYAVVKVWMUYCYDVXKUUIYTUU
        JUUKUULUUNYTUUO $.
    $}

    ${
      $d A a b c m $.  $d N a b c m s t $.  $d S a b c m s t $.
      $d Z a b c m s t $.  $d ph a b c m s t $.
      breprexpnat.a $e |- ( ph -> A C_ NN ) $.
      breprexpnat.p $e |- P = sum_ b e. ( A i^i ( 1 ... N ) ) ( Z ^ b ) $.
      breprexpnat.r $e |- R = ( # ` ( ( A i^i ( 1 ... N ) ) ( repr ` S ) m ) )
        $.
      $( Express the ` S ` th power of the finite series in terms of the number
         of representations of integers ` m ` as sums of ` S ` terms of
         elements of ` A ` , bounded by ` N ` .  Proposition of [Nathanson]
         p. 123.  (Contributed by Thierry Arnoux, 11-Dec-2021.) $)
      breprexpnat $p |- ( ph
         -> ( P ^ S ) = sum_ m e. ( 0 ... ( S x. N ) ) ( R x. ( Z ^ m ) ) ) $=
        ( va co cmul cn wcel vc c1 cfz cin cv cexp csu cc0 crepr cfv chash cfzo
        cind csn cxp cprod wf cc cmap wss fvex fconst cpr cvv nnex indf sylancr
        0cn ax-1cn prssi mp2an sylancl cnex elmap sylibr snss sylib breprexp wa
        fss wceq fvconst2 ad2antlr fveq1d oveq1d sumeq2dv a1i cfn fzfi ad2antrr
        fz1ssnn adantr nnssnn0 sstri simpr sseldi expcld indsumin incom sumeq1d
        cn0 3eqtrd prodeq2dv fzofi inss2 fsumcl fprodconst syl2anc hashfzo0 syl
        ssfi oveq2d cz fzssz reprfi fz0ssnn0 ad3antrrr reprf ffvelrnda ffvelrnd
        fprodcl fsummulc1 hashreprin adantl 3eqtr4rd 3eqtr3d sumeq2i 3eqtr4g
        oveq1i ) ABUBGUCQZUDZHIUEZUFQZIUGZEUFQZUHEGRQZUCQZYKFUEZEUIUJZQUKUJZHYR
        UFQZRQZFUGZCEUFQYQDUUARQZFUGAUHEULQZYJYLPUEZUUEBSUMUJZUJZUNZUOZUJZUJZYM
        RQZIUGZPUPZYQYJYRYSQZUUEUUFUAUEZUJZUUKUJZPUPZUUARQZUAUGZFUGYOUUCAEFUUJG
        HPIUAJKLAUUEUUIUUJUQUUIURSUSQZUTZUUEUVCUUJUQUUEUUHBUUGVAZVBAUUHUVCTZUVD
        ASURUUHUQZUVFASUHUBVCZUUHUQZUVHURUTZUVGASVDTZBSUTZUVIVEMBSVDVFVGZUHURTU
        BURTUVJVHVIUHUBURVJVKZSUVHURUUHVTVLURSUUHVMVEVNVOUUHUVCUVEVPVQUUEUUIUVC
        UUJVTVGVRAUUOUUEYNPUPZYNUUEUKUJZUFQZYOAUUEUUNYNPAUUFUUETZVSZUUNYJYLUUHU
        JZYMRQZIUGYJBUDZYMIUGYNUVSYJUUMUWAIUVSYLYJTZVSZUULUVTYMRUWDYLUUKUUHUVRU
        UKUUHWAAUWCUUEUUHUUFUVEWBZWCWDWEWFUVSYJBYMISVDUVKUVSVEWGYJWHTZUVSUBGWIZ
        WGYJSUTZUVSGWKZWGAUVLUVRMWLUWDHYLAHURTZUVRUWCLWJUWDYJXAYLYJSXAUWIWMWNZU
        VSUWCWOWPWQWRUVSUWBYKYMIUWBYKWAUVSYJBWSWGWTXBXCAUUEWHTZYNURTUVOUVQWAUWL
        AUHEXDZWGAYKYMIYKWHTZAUWFYKYJUTUWNUWGBYJXEZYJYKXKVKWGAYLYKTZVSZHYLAUWJU
        WPLWLUWQYKXAYLYKYJXAUWOUWKWNAUWPWOWPWQXFUUEYNPXGXHAUVPEYNUFAEXATZUVPEWA
        KEXIXJXLXBAYQUVBUUBFAYRYQTZVSZUUPUUEUURUUHUJZPUPZUAUGZUUARQUUPUXBUUARQZ
        UAUGUUBUVBUWTUUPUXBUUAUAUWTYJEYRUWHUWTUWIWGZUWTYQXMYRUHYPXNAUWSWOZWPZAU
        WRUWSKWLZUWFUWTUWGWGZXOUWTHYRAUWJUWSLWLUWTYQXAYRYPXPUXFWPWQUWTUUQUUPTZV
        SZUUEUXAPUWLUXKUWMWGUXKUVRVSZUVHURUXAUVNUXLSUVHUURUUHAUVIUWSUXJUVRUVMXQ
        UXLYJSUURUWIUXKUUEYJUUFUUQUXKYJUUQEYRUWHUXKUWIWGUWTYRXMTUXJUXGWLUWTUWRU
        XJUXHWLUWTUXJWOXRXSWPXTWPYAYBUWTYTUXCUUARUWTBYJEYRPUAAUVLUWSMWLUXGUXHUX
        IUXEYCWEUWTUUPUVAUXDUAUXKUUTUXBUUARUWTUUTUXBWAUXJUWTUUEUUSUXAPUVRUUSUXA
        WAUWTUVRUURUUKUUHUWEWDYDXCWLWEWFYEWFYFCYNEUFNYIYQUUDUUBFUUDUUBWAUWSDYTU
        UAROYIWGYGYH $.
    $}
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Vinogradov Trigonometric Sums and the Circle Method
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c vts $.

  $( The Vinogradov trigonometric sums. $)
  cvts $a class vts $.

  ${
    $d a l n x $.
    $( Define the Vinogradov trigonometric sums.  (Contributed by Thierry
       Arnoux, 1-Dec-2021.) $)
    df-vts $a |- vts = ( l e. ( CC ^m NN ) , n e. NN0 |->
      ( x e. CC |-> sum_ a e. ( 1 ... n ) ( ( l ` a ) x.
        ( exp ` ( ( _i x. ( 2 x. _pi ) ) x. ( a x. x ) ) ) ) ) ) $.
  $}

  ${
    vtsval.n $e |- ( ph -> N e. NN0 ) $.
    vtsval.x $e |- ( ph -> X e. CC ) $.
    ${
      $d L a l n x $.  $d N a l n x $.  $d X a x $.  $d ph x $.
      vtsval.l $e |- ( ph -> L : NN --> CC ) $.
      $( Value of the Vinogradov trigonometric sums (Contributed by Thierry
         Arnoux, 1-Dec-2021.) $)
      vtsval $p |- ( ph -> ( ( L vts N ) ` X ) = sum_ a e. ( 1 ... N )
       ( ( L ` a ) x. ( exp ` ( ( _i x. ( 2 x. _pi ) ) x. ( a x. X ) ) ) ) ) $=
        ( vx vl vn c1 cfz co cv cfv cmul csu cc wceq ci c2 cpi ce cvts cvv cmap
        cn wcel cn0 cmpt cnex nnex elmap sylibr fveq1 oveq1d sumeq2sdv mpteq2dv
        wf oveq2 sumeq1d df-vts mptex ovmpt2 syl2anc oveq2d fveq2d adantl sumex
        a1i fvmptd ) AIDLCMNZEOZBPZUAUBUCQNQNZVNIOZQNZQNZUDPZQNZERZVMVOVPVNDQNZ
        QNZUDPZQNZERZSBCUENZUFABSUHUGNZUIZCUJUIWHISWBUKZTAUHSBUTWJHSUHBULUMUNUO
        FJKBCWIUJISLKOZMNZVNJOZPZVTQNZERZUKWKUEISWMWAERZUKWNBTZISWQWRWSWMWPWAEW
        SWOVOVTQVNWNBUPUQURUSWLCTZISWRWBWTWMVMWAEWLCLMVAVBUSIKEJVCISWBULVDVEVFV
        QDTZWBWGTAXAVMWAWFEXAVTWEVOQXAVSWDUDXAVRWCVPQVQDVNQVAVGVHVGURVIGWGUFUIA
        VMWFEVJVKVL $.

      $d ph a $.
      $( Closure of the Vinogradov trigonometric sums (Contributed by Thierry
         Arnoux, 14-Dec-2021.) $)
      vtscl $p |- ( ph -> ( ( L vts N ) ` X ) e. CC ) $=
        ( va co cfv c1 ci c2 cpi cmul cc wcel cn adantr mulcld cfz cv ce vtsval
        cvts csu fzfid wa wf wss fz1ssnn a1i sselda ffvelrnd ax-icn picn mulcli
        2cn nncnd efcld fsumcl eqeltrd ) ADBCUEIJKCUAIZHUBZBJZLMNOIZOIZVDDOIZOI
        ZUCJZOIZHUFPABCDHEFGUDAVCVKHAKCUGAVDVCQZUHZVEVJVMRPVDBARPBUIVLGSAVCRVDV
        CRUJACUKULUMZUNVMVIVMVGVHVGPQVMLVFUOMNURUPUQUQULVMVDDVMVDVNUSADPQVLFSTT
        UTTVAVB $.
    $}

    ${
      $d L a b c m $.  $d N a b c m $.  $d S a b c m $.  $d X a b c m $.
      $d a b c m ph $.
      vtsprod.s $e |- ( ph -> S e. NN0 ) $.
      vtsprod.l $e |- ( ph -> L : ( 0 ..^ S ) --> ( CC ^m NN ) ) $.
      $( Express the Vinogradov trigonometric sums to the power of ` S `
         (Contributed by Thierry Arnoux, 12-Dec-2021.) $)
      vtsprod $p |- ( ph -> prod_ a e. ( 0 ..^ S ) ( ( ( L ` a ) vts N ) ` X )
      = sum_ m e. ( 0 ... ( S x. N ) ) sum_ c e. ( ( 1 ... N ) ( repr ` S ) m )
            ( prod_ a e. ( 0 ..^ S ) ( ( L ` a ) ` ( c ` a ) )
            x. ( exp ` ( ( _i x. ( 2 x. _pi ) ) x. ( m x. X ) ) ) ) ) $=
        ( vb co cfv cmul ce csu cc wcel cc0 cfzo c1 cfz cv ci c2 cpi cexp cprod
        crepr cvts ax-icn a1i 2cnd picn mulcld efcld breprexp wa adantr cn cmap
        cn0 wf ffvelrnda elmapi syl vtsval cz fzssz sseldi zcnd ad2antrr mul12d
        simpr fveq2d wceq efexp syl2anc eqtr3d sumeq2dv eqtrd prodeq2dv 3eqtr4d
        oveq2d ) AUABUBNZUCEUDNZMUEZGUEZDOZOZUFUGUHPNZPNZFPNZQOZWIUINZPNZMRZGUJ
        UABEPNZUDNZWHCUEZBUKONZWGWJHUEZOWKOGUJZWPXBUINZPNZHRZCRWGFWKEULNOZGUJXA
        XCXEWNXBFPNPNZQOZPNZHRZCRABCDEWPGMHIKAWOAWNFAUFWMUFSTAUMUNAUGUHAUOUHSTA
        UPUNUQUQZJUQZURLUSAWGXIWSGAWJWGTZUTZXIWHWLWNWIFPNPNZQOZPNZMRWSXQWKEFMAE
        VDTXPIVAAFSTZXPJVAZXQWKSVBVCNZTVBSWKVEAWGYCWJDLVFWKSVBVGVHVIXQWHXTWRMXQ
        WIWHTZUTZXSWQWLPYEWIWOPNZQOZXSWQYEYFXRQYEWIWNFYEWIYEWHVJWIUCEVKXQYDVPVL
        ZVMAWNSTZXPYDXNVNXQYAYDYBVAVOVQYEWOSTZWIVJTYGWQVRAYJXPYDXOVNYHWOWIVSVTW
        AWFWBWCWDAXAXMXHCAXBXATZUTZXCXLXGHYLXDXCTZUTZXKXFXEPYNXBWOPNZQOZXKXFYNY
        OXJQYNXBWNFYNXBYLXBVJTZYMYLXAVJXBUAWTVKAYKVPVLVAZVMAYIYKYMXNVNAYAYKYMJV
        NVOVQYNYJYQYPXFVRAYJYKYMXOVNYRWOXBVSVTWAWFWBWBWE $.
    $}
  $}

  ${
    $d L a c m x $.  $d N a c m x $.  $d S a c m x $.  $d a c m ph x $.
    circlemeth.n $e |- ( ph -> N e. NN0 ) $.
    circlemeth.s $e |- ( ph -> S e. NN ) $.
    circlemeth.l $e |- ( ph -> L : ( 0 ..^ S ) --> ( CC ^m NN ) ) $.
    $( The Hardy, Littlewood and Ramanujan Circle Method, in a generic form,
       with different weighting / smoothing functions.  (Contributed by Thierry
       Arnoux, 13-Dec-2021.) $)
    circlemeth $p |- ( ph -> sum_ c e. ( NN ( repr ` S ) N )
             prod_ a e. ( 0 ..^ S ) ( ( L ` a ) ` ( c ` a ) )
       = S. ( 0 (,) 1 ) ( prod_ a e. ( 0 ..^ S ) ( ( ( L ` a ) vts N ) ` x )
         x. ( exp ` ( ( _i x. ( 2 x. _pi ) ) x. ( -u N x. x ) ) ) ) _d x ) $=
      ( vm cc0 c1 co cmul csu wcel adantr cc a1i cioo cfzo cv cfv cvts cprod ci
      c2 cpi cneg ce citg cfz crepr cmin cn wa cn0 wss ioossre ax-resscn sselda
      cr sstri nnnn0d cmap vtsprod oveq1d fzfid ax-icn 2cn mulcli nn0cnd negcld
      wf picn ralrimivw r19.21bi mulcld efcld fz1ssnn fzssz simpr sseldi reprfi
      cz adantlr cfn fzofi ad3antrrr zcnd ad2antrr reprf ffvelrnda breprexplemb
      adantl3r fprodcl fsumcl fsummulc1 mulassd wceq caddc efadd syl2anc adddid
      adddird eqtr3d oveq2d fveq2d eqtrd sumeq2dv 3eqtrd itgeq2dv cmpt cibl cvv
      negsubd cvol ioombl sumex adantllr subcld an32s anasss fvex cicc ioossicc
      cdm ccncf 0red syl3anc itgfsum simprd cif oveq2 nn0zd eqtr4d cle sumeq1d
      wbr 1red unitsscn cncfmptc cncfmptid mulcncf efmul2picn cniccibl iblmulc2
      ssid iblss simpld csn mulid1d mul01d ifeq3da subeq0ad velsn ifbid zsubcld
      syl6rbbr itgexpif syl 1cnd 0cnd ifcld 3eqtr4rd cuz wo 0zd zmulcld nn0ge0d
      wral nnmulge elfz4 syl32anc syldan ralrimiva olcd sumss2 syl21anc 3eqtr2d
      snssd sumsn itgmulc2 reprfz1 3eqtr4d 3eqtrrd ) ABLMUANZLCUBNZBUCZFUCZDUDZ
      EUENUDFUFZUGUHUIONZONZEUJZUWJONZONZUKUDZONZULBUWHLCEONZUMNZMEUMNZKUCZCUNU
      DZNZUWIUWKGUCZUDZUWLUDZFUFZUWOUXDEUONZUWJONZONZUKUDZONZGPZKPZULZUXBBUWHUX
      PULZKPZUPEUXENZUXJGPZABUWHUWTUXQAUWJUWHQZUQZUWTUXBUXFUXJUWOUXDUWJONZONZUK
      UDZONZGPZKPZUWSONUXBUYIUWSONZKPUXQUYDUWMUYJUWSOUYDCKDEUWJFGAEURQZUYCHRAUW
      HSUWJUWHSUSAUWHVCSLMUTVAVDTVBZACURQZUYCACIVEZRZAUWISUPVFNDVOZUYCJRVGVHUYD
      UXBUYIUWSKUYDLUXAVIUYDUWRUYDUWOUWQUWOSQZUYDUGUWNVJUHUIVKVPVLVLZTUYDUWPUWJ
      AUWPSQZBUWHAUYTBUWHAEAEHVMZVNVQVRZUYMVSZVSZVTZUYDUXDUXBQZUQZUXFUYHGVUGUXC
      CUXDUXCUPUSZVUGEWAZTAVUFUXDWFQZUYCAVUFUQZUXBWFUXDLUXAWBAVUFWCWDZWGZUYDUYN
      VUFUYPRVUGMEVIWEZVUGUXGUXFQZUQZUXJUYGVUPUWIUXIFUWIWHQZVUPLCWIZTAUYCVUFVUO
      UWKUWIQZUXISQZVUKVUOUQZVUSUQZCDEUWKUXHUXDAUYLVUFVUOVUSHWJAUYNVUFVUOVUSUYO
      WJVUKUXDSQVUOVUSVUKUXDVULWKZWLAUYQVUFVUOVUSJWJVVAVUSWCVVBUXCUPUXHVUIVVAUW
      IUXCUWKUXGVVAUXCUXGCUXDVUHVVAVUITVUKVUJVUOVULRZAUYNVUFVUOUYOWLVUKVUOWCWMW
      NWDWOZWPWQZVUGUYGSQVUOVUGUYFVUGUWOUYEUYRVUGUYSTZVUGUXDUWJVUGUXDVUMWKZUYDU
      WJSQVUFUYMRZVSZVSZVTRZVSZWRWSUYDUXBUYKUXPKVUGUYKUXFUYHUWSONZGPUXPVUGUXFUY
      HUWSGVUNUYDUWSSQZVUFVUERZVVMWSVUGUXFVVNUXOGVUPVVNUXJUYGUWSONZONZUXOVUPUXJ
      UYGUWSVVFVVLVUGVVOVUOVVPRWTVUGVVRUXOXAVUOVUGVVQUXNUXJOVUGUYFUWRXBNZUKUDZV
      VQUXNVUGUYFSQUWRSQZVVTVVQXAVVKUYDVWAVUFVUDRUYFUWRXCXDVUGVVSUXMUKVUGUWOUYE
      UWQXBNZONVVSUXMVUGUWOUYEUWQVVGVVJUYDUWQSQVUFVUCRXEVUGVWBUXLUWOOVUGUXDUWPX
      BNZUWJONVWBUXLVUGUXDUWPUWJVVHUYDUYTVUFVUBRVVIXFVUGVWCUXKUWJOVUGUXDEVVHAES
      QZUYCVUFVUAWLZXQVHXGXHXGXIXGXHRXJXKXJXKXLXMABUWHUXQXNXOQUXRUXTXAABUWHUXBU
      XPKXPUWHXRYHQZALMXSZTZALUXAVIZUXPXPQAUYCVUFUQUQUXFUXOGXTTVUKBUWHUXPXNXOQZ
      UXSUXFBUWHUXOULZGPZXAZVUKBUWHUXFUXOGSAVWFVUFVWHRVUKUXCCUXDVUHVUKVUITVULAU
      YNVUFUYORVUKMEVIWEZVUKUYCVUOUXOSQVUKUYCUQZVUOUQZUXJUXNVWPUWIUXIFVUQVWPVUR
      TVUKVUOVUSVUTUYCVVEYAWQVWPUXMVWOUXMSQZVUOAUYCVUFVWQVUGUWOUXLVVGVUGUXKUWJV
      UGUXDEVVHVWEYBVVIVSVSYCRVTZVSYDVVABUWHUXNUXJXPVVAUWIUXIFVUQVVAVURTVVEWQZU
      XNXPQZVVAUYCUQUXMUKYEZTVUKBUWHUXNXNXOQVUOVUKBUWHLMYFNZUXNXPUWHVXBUSVUKLMY
      GTVWFVUKVWGTVWTVUKUWJVXBQUQVXATVUKLVCQMVCQBVXBUXNXNZVXBSYINZQVXCXOQVUKYJV
      UKUUAVUKBVXBUXLVUKBUXKUWJVXBVUKUXKSQVXBSUSZSSUSZBVXBUXKXNVXDQVUKUXDEVVCAV
      WDVUFVUARZYBVXEVUKUUBTZVXFVUKSUUITZBUXKVXBSUUCYKVUKVXEVXFBVXBUWJXNVXDQVXH
      VXIBVXBSUUDXDUUEUUFLMVXCUUGYKUUJRZUUHYLZUUKYLYMAUXBUXFUXJBUWHUXNULZONZGPZ
      KPZUXCEUXENZUXJGPZUXTUYBAVXOUXBUXDEUULZQZUXFUXJGPZLYNZKPZVXRVXTKPZVXQAUXB
      VXNVYAKVUKUXKLXAZVXTLYNVXTVYDMLYNZONZVYAVXNVUKVYDVXTLVYFMLVXTMONVXTLONVYE
      MVXTOYOVYELVXTOYOVUKVXTVUKUXFUXJGVWNVWSWRZUUMVUKVXTVYGUUNUUOVUKVXSVYDVXTL
      VUKVYDUXDEXAZVXSVUKUXDEVVCVXGUUPKEUUQUUTUURVUKVXNUXFUXJVYEONZGPVYFVUKUXFV
      XMVYIGVVAVXLVYEUXJOVVAUXKWFQVXLVYEXAVVAUXDEVVDAEWFQZVUFVUOAEHYPZWLUUSBUXK
      UVAUVBXHXKVUKUXFUXJVYEGVWNVUKVYDMLSVUKUVCVUKUVDUVEVWSWSYQUVFXKAVXRUXBUSVX
      TSQZKVXRUVLUXBLUVGUDUSZUXBWHQZUVHVYCVYBXAAEUXBALWFQUXAWFQVYJLEYRYTEUXAYRY
      TZEUXBQAUVIACEACUYOYPVYKUVJVYKAEHUVKACUPQUYLVYOIHCEUVMXDELUXAUVNUVOUWBZAV
      YLKVXRAVXSVUFVYLAVXRUXBUXDVYPVBVYGUVPUVQAVYNVYMVWIUVRVXRUXBVXTKLUVSUVTAUY
      LVXQSQVYCVXQXAHAVXPUXJGAUXCCEVUHAVUITVYKUYOAMEVIWEAUXGVXPQZUQZUWIUXIFVUQV
      YRVURTVYRVUSUQZCDEUWKUXHEAUYLVYQVUSHWLAUYNVYQVUSUYOWLAVWDVYQVUSVUAWLAUYQV
      YQVUSJWLVYRVUSWCVYSUXCUPUXHVUIVYRUWIUXCUWKUXGVYRUXCUXGCEVUHVYRVUITAVYJVYQ
      VYKRAUYNVYQUYORAVYQWCWMWNWDWOWQWRVXTVXQKEURVYHUXFVXPUXJGUXDEUXCUXEYOYSUWC
      XDUWAAUXBUXSVXNKVUKUXSVWLVXNVUKVWJVWMVXKYMVUKUXFVXMVWKGVVABUWHUXNUXJSVWSV
      UKUYCVUOUXNSQVWRYCVXJUWDXKYQXKAUYAVXPUXJGACEHUYOUWEYSUWFUWG $.
  $}

  ${
    $d A a b c x $.  $d F a $.  $d N a b c x $.  $d S a c x $.
    circlemethnat.r $e |- R = ( # ` ( A ( repr ` S ) N ) ) $.
    circlemethnat.f $e |- F = ( ( ( ( _Ind ` NN ) ` A ) vts N ) ` x ) $.
    circlemethnat.n $e |- N e. NN0 $.
    circlemethnat.a $e |- A C_ NN $.
    circlemethnat.s $e |- S e. NN $.
    $( The Hardy, Littlewood and Ramanujan Circle Method, Chapter 5.1 of
       [Nathanson] p. 123.  This expresses ` R ` , the number of different ways
       a nonnegative integer ` N ` can be represented as the sum of at most
       ` S ` integers in the set ` A ` as an integral of Vinogradov
       trigonometric sums.  (Contributed by Thierry Arnoux, 13-Dec-2021.) $)
    circlemethnat $p |- R = S. ( 0 (,) 1 ) ( ( F ^ S )
        x. ( exp ` ( ( _i x. ( 2 x. _pi ) ) x. ( -u N x. x ) ) ) ) _d x $=
      ( va co cmul cfv wtru cn wcel cc a1i vc cc0 c1 cioo cexp ci c2 cneg cv ce
      cpi citg wceq crepr cfzo cind csn cxp cprod csu cvts chash wa cmap wf cpr
      wss cvv nnex indf mp2an cr pr01ssre ax-resscn sstri fss elmap mpbir elexi
      cnex fvconst2 adantl fveq1d prodeq2dv sumeq2dv cn0 nnnn0d hashrepr eqtr4d
      syl6reqr fconst6 circlemeth fzofi ioossre sselda vtscl fprodconst syl2anc
      cfn syl5eqel oveq1d adantr hashfzo0 oveq2d 3eqtr3d itgeq2dv 3eqtrd trud
      syl ) CAUBUCUDMZEDUEMZUFUGUKNMNMFUHAUIZNMNMUJOZNMZULZUMPCQFDUNOZMZUBDUOMZ
      LUIZUAUIZOZXSXRBQUPOOZUQURZOZOZLUSZUAUTZAXJXRXLYDFVAMZOZLUSZXMNMZULXOPYGB
      FXPMVBOZCPYGXQXRYAYBOZLUSZUAUTYLPXQYFYNUAPXTXQRVCZXRYEYMLYOXSXRRZVCYAYDYB
      YPYDYBUMZYOXRYBXSYBSQVDMZYBYRRQSYBVEZQUBUCVFZYBVEZYTSVGYSQVHRBQVGZUUAVIJB
      QVHVJVKYTVLSVMVNVOQYTSYBVPVKZSQYBVTVIVQVRZVSWAZWBWCWDWEPBDFLUAUUBPJTFWFRZ
      PITZPDDQRPKTZWGZWHWIGWJPADYCFLUAUUGUUHXRYRYCVEPXRYBYRUUDWKTWLPAXJYKXNPXLX
      JRZVCZYJXKXMNUUKXRELUSZEXRVBOZUEMZYJXKUUKXRWSRZESRUULUUNUMUUOUUKUBDWMTUUK
      EXLYBFVAMZOZSHUUKYBFXLUUFUUKITPXJSXLXJSVGPXJVLSUBUCWNVNVOTWOYSUUKUUCTWPWT
      XRELWQWRUUKXREYILUUKYPVCZYIUUQEUURXLYHUUPUURYDYBFVAYPYQUUKUUEWBXAWCHWJWDU
      UKUUMDEUEUUKDWFRZUUMDUMPUUSUUJUUIXBDXCXIXDXEXAXFXGXH $.
  $}

  ${
    $d N a n x $.  $d a n ph x $.
    circlevma.n $e |- ( ph -> N e. NN0 ) $.
    $( The Circle Method, where the Vinogradov sums are weighted using the von
       Mangoldt function, as it appears as proposition 1.1 of [Helfgott] p. 5.
       (Contributed by Thierry Arnoux, 13-Dec-2021.) $)
    circlevma $p |- ( ph -> sum_ n e. ( NN ( repr ` 3 ) N )
      ( ( Lam ` ( n ` 0 ) ) x. ( ( Lam ` ( n ` 1 ) ) x. ( Lam ` ( n ` 2 ) ) ) )
      = S. ( 0 (,) 1 ) ( ( ( ( Lam vts N ) ` x ) ^ 3 )
        x. ( exp ` ( ( _i x. ( 2 x. _pi ) ) x. ( -u N x. x ) ) ) ) _d x ) $=
      ( va cn c3 cfv co cc0 cvma c1 c2 cmul wcel a1i cc cr wceq cfzo cv csn cxp
      crepr cprod csu cioo cvts ci cpi cneg ce citg cexp 3nn cmap wss ax-resscn
      wf vmaf fss mp2an cvv wb cnex nnex elmapg mpbir fconst6 circlemeth wa ctp
      c0ex tpid1 fzo0to3tp eleqtrri eleq1 mpbiri elexi fvconst2 syl fveq12d 1ex
      fveq2 tpid2 2ex tpid3 fveq1d adantl ssid cz nn0zd adantr cn0 nnnn0i simpr
      reprf ffvelrnda ffvelrnd eqeltrd prodfzo03 sumeq2dv chash prodeq2dv fzofi
      oveq1d cfn ioossre sstri sselda fprodconst syl2anc hashfzo0 oveq2d 3eqtrd
      vtscl ax-mp itgeq2dv 3eqtr3d ) AGDHUEIJZKHUAJZFUBZCUBZIZYCYBLUCUDZIZIZFUF
      ZCUGBKMUHJZYBBUBZYGDUIJZIZFUFZUJNUKOJOJDULYKOJOJUMIZOJZUNYAKYDIZLIZMYDIZL
      IZNYDIZLIZOJOJZCUGBYJYKLDUIJZIZHUOJZYOOJZUNABHYFDFCEHGPAUPQYBRGUQJZYFUTAY
      BLUUHLUUHPZGRLUTZGSLUTSRURUUJVAUSGSRLVBVCZRVDPGVDPUUIUUJVEVFVGRGLVDVDVHVC
      VIZVJQVKAYAYIUUCCAYDYAPZVLZYRYTUUBYHFYCKTZYEYQYGLUUOYCYBPZYGLTZUUOUUPKYBP
      KKMNVMZYBKMNVNVOVPVQYCKYBVRVSYBLYCLUUHUULVTWAZWBYCKYDWEWCYCMTZYEYSYGLUUTU
      UPUUQUUTUUPMYBPMUURYBKMNWDWFVPVQYCMYBVRVSUUSWBYCMYDWEWCYCNTZYEUUAYGLUVAUU
      PUUQUVAUUPNYBPNUURYBKMNWGWHVPVQYCNYBVRVSUUSWBYCNYDWEWCUUNUUPVLZYHYELIZRUU
      PYHUVCTUUNUUPYEYGLUUSWIWJUVBGRYELUUJUVBUUKQUUNYBGYCYDUUNGYDHDGGURUUNGWKQA
      DWLPUUMADEWMWNHWOPZUUNHUPWPZQAUUMWQWRWSWTXAXBXCABYJYPUUGAYKYJPZVLZYNUUFYO
      OUVGYNYBUUEFUFZUUEYBXDIZUOJZUUFUVGYBYMUUEFUVGUUPVLZYKYLUUDUVKYGLDUIUUPUUQ
      UVGUUSWJXGWIXEUVGYBXHPZUUERPUVHUVJTUVLUVGKHXFQUVGLDYKADWOPUVFEWNAYJRYKYJR
      URAYJSRKMXIUSXJQXKUUJUVGUUKQXQYBUUEFXLXMUVGUVIHUUEUOUVIHTZUVGUVDUVMUVEHXN
      XRQXOXPXGXSXT $.
  $}

  ${
    $d H a n x y $.  $d K a n x y $.  $d N a n x $.  $d ph a n x y $.
    circlemethhgt.h $e |- ( ph -> H : NN --> RR ) $.
    circlemethhgt.k $e |- ( ph -> K : NN --> RR ) $.
    circlemethhgt.n $e |- ( ph -> N e. NN0 ) $.
    $( The circle method, where the Vinogradov sums are weighted using the Von
       Mangoldt function and smoothed using functions ` H ` and ` K ` .
       Statement 7.49 of [Helfgott] p. 69.  At this point there is no further
       constraint on the smoothing functions.  (Contributed by Thierry Arnoux,
       22-Dec-2021.) $)
    circlemethhgt $p |- ( ph -> sum_ n e. ( NN ( repr ` 3 ) N )
       ( ( ( Lam ` ( n ` 0 ) ) x. ( H ` ( n ` 0 ) ) )
    x. ( ( ( Lam ` ( n ` 1 ) ) x. ( K ` ( n ` 1 ) ) )
      x. ( ( Lam ` ( n ` 2 ) ) x. ( K ` ( n ` 2 ) ) ) ) )
      = S. ( 0 (,) 1 ) ( ( ( ( ( Lam oF x. H ) vts N ) ` x )
        x. ( ( ( ( Lam oF x. K ) vts N ) ` x ) ^ 2 ) )
        x. ( exp ` ( ( _i x. ( 2 x. _pi ) ) x. ( -u N x. x ) ) ) ) _d x ) $=
      ( cn c3 cfv co cc0 cmul c1 c2 wcel wceq cvv va vy crepr cfzo cvma cof cs3
      cv cprod csu cioo cvts ci cpi cneg ce citg cexp 3nn a1i cmap chash eqcomi
      cc s3len wf cr wa simprl simprr remulcld recnd vmaf nnex inidm cnex elmap
      off sylibr s3cld wrdfd circlemeth fveq12d adantr ffvelrnda elmapi syl wss
      fveq2 ssid cz nn0zd 3nn0 simpr reprf ffvelrnd prodfzo03 ovex s3fv0 fveq1d
      cn0 mp1i simpl ctp c0ex tpid1 fzo0to3tp eleqtrri wfn ffn ax-mp ffnd eqidd
      ofval syl2anc eqtrd s3fv1 1ex tpid2 s3fv2 2ex tpid3 oveq12d sumeq2dv nfcv
      csn cun nfv cfn fzofi wn wo eqid orci ad2antrr sselda vtscl oveq1d adantl
      3eqtr3d cfz 0elfz elfznelfzob mp2b mpbir ioossre ax-resscn fzo0ss1 syl6eq
      wb sstri fprodsplitsn fzo0sn0fzo1 eqtr4i prodeq1d cpr fzo13pr eleq2i elpr
      uncom vex bitri jaodan sylan2b adantlr prodeq2dv fprodconst cmin cuz nnuz
      eleqtri hashfzo 3m1e2 eqtri oveq2d 3eqtrd sqcld mulcomd eqtr4d itgeq2dv )
      AJFKUCLMZNKUDMZUAUHZCUHZLZUWCUEDOUFZMZUEEUWFMZUWHUGZLZLZUAUIZCUJBNPUKMZUW
      BBUHZUWJFULMZLZUAUIZUMQUNOMOMFUOUWNOMOMUPLZOMZUQUWANUWDLZUELZUWTDLZOMZPUW
      DLZUELZUXDELZOMZQUWDLZUELZUXHELZOMZOMZOMZCUJBUWMUWNUWGFULMZLZUWNUWHFULMZL
      ZQURMZOMZUWROMZUQABKUWIFUACIKJRZAUSUTAVDJVAMZKUWIKUWIVBLZSAUYCKUWGUWHUWHV
      EVCUTAUWGUWHUWHUYBAJVDUWGVFZUWGUYBRABUBJJJOVGVGVDUEDTTAUWNVGRZUBUHZVGRZVH
      VHZUWNUYFOMUYHUWNUYFAUYEUYGVIAUYEUYGVJVKVLZJVGUEVFZAVMUTZGJTRAVNUTZUYLJVO
      ZVRZVDJUWGVPVNVQVSAJVDUWHVFZUWHUYBRABUBJJJOVGVGVDUEETTUYIUYKHUYLUYLUYMVRZ
      VDJUWHVPVNVQVSZUYQVTWAZWBAUWAUWLUXMCAUWDUWARZVHZUWLUWTNUWILZLZUXDPUWILZLZ
      UXHQUWILZLZOMZOMUXMUYTVUBVUDVUFUWKUAUWCNSZUWEUWTUWJVUAUWCNUWIWIZUWCNUWDWI
      WCUWCPSZUWEUXDUWJVUCUWCPUWIWIZUWCPUWDWIWCUWCQSZUWEUXHUWJVUEUWCQUWIWIZUWCQ
      UWDWIWCUYTUWCUWBRVHZJVDUWEUWJVUNUWJUYBRZJVDUWJVFZUYTUWBUYBUWCUWIAUWBUYBUW
      IVFZUYSUYRWDWEUWJVDJWFZWGUYTUWBJUWCUWDUYTJUWDKFJJWHUYTJWJUTAFWKRUYSAFIWLW
      DKXARZUYTWMUTAUYSWNWOZWEWPWQUYTVUBUXCVUGUXLOUYTVUBUWTUWGLZUXCUYTUWTVUAUWG
      UWGTRZVUAUWGSZUYTUEDUWFWRZUWGUWHUWHTWSZXBWTUYTAUWTJRZVVAUXCSAUYSXCZUYTUWB
      JNUWDVUTNUWBRUYTNNPQXDZUWBNPQXEXFXGXHUTWPAJJUXAUXBOJUEDTTUWTUEJXIZAUYJVVI
      VMJVGUEXJXKUTZAJVGDGXLUYLUYLUYMAVVFVHZUXAXMVVKUXBXMXNXOXPUYTVUDUXGVUFUXKO
      UYTVUDUXDUWHLZUXGUYTUXDVUCUWHUWHTRZVUCUWHSZUYTUEEUWFWRZUWGUWHUWHTXQZXBWTU
      YTAUXDJRZVVLUXGSVVGUYTUWBJPUWDVUTPUWBRUYTPVVHUWBNPQXRXSXGXHUTWPAJJUXEUXFO
      JUEETTUXDVVJAJVGEHXLZUYLUYLUYMAVVQVHZUXEXMVVSUXFXMXNXOXPUYTVUFUXHUWHLZUXK
      UYTUXHVUEUWHVVMVUEUWHSZUYTVVOUWGUWHUWHTXTZXBWTUYTAUXHJRZVVTUXKSVVGUYTUWBJ
      QUWDVUTQUWBRUYTQVVHUWBNPQYAYBXGXHUTWPAJJUXIUXJOJUEETTUXHVVJVVRUYLUYLUYMAV
      WCVHZUXIXMVWDUXJXMXNXOXPYCYCXPYDABUWMUWSUXTAUWNUWMRZVHZUWQUXSUWROVWFPKUDM
      ZNYFZYGZUWPUAUIVWGUWPUAUIZUXOOMZUWQUXSVWFVWGNUWPUXOUATVWFUAYHUAUXOYEVWGYI
      RZVWFPKYJUTZNTRVWFXEUTNVWGRYKZVWFVWNNNSZNKSZYLZVWOVWPNYMYNVUSNNKUUAMRVWNV
      WQUUJWMKUUBKNUUCUUDUUEUTVWFUWCVWGRZVHZUWJFUWNAFXARZVWEVWRIYOVWFUWNVDRVWRA
      UWMVDUWNUWMVDWHAUWMVGVDNPUUFUUGUUKUTYPZWDVWSVUOVUPVWSUWBUYBUWCUWIAVUQVWEV
      WRUYRYOVWFVWGUWBUWCVWGUWBWHVWFKUUHUTYPWPVURWGYQVUHUWNUWOUXNVUHUWJUWGFULVU
      HUWJVUAUWGVUIVVBVVCVVDVVEXKUUIYRWTVWFUWGFUWNAVWTVWEIWDZVXAAUYDVWEUYNWDYQZ
      UULVWFVWIUWBUWPUAVWIUWBSVWFVWIVWHVWGYGZUWBVWGVWHUUTUYAUWBVXDSUSKUUMXKUUNU
      TUUOVWFVWKUXRUXOOMUXSVWFVWJUXRUXOOVWFVWJVWGUXQUAUIZUXQVWGVBLZURMZUXRVWFVW
      GUWPUXQUAVWSUWNUWOUXPVWSUWJUWHFULAVWRUWJUWHSZVWEVWRAVUJVULYLZVXHVWRUWCPQU
      UPZRVXIVWGVXJUWCUUQUURUWCPQUAUVAUUSUVBAVUJVXHVULAVUJVHZUWJVUCUWHVUJUWJVUC
      SAVUKYSVVMVVNVXKVVOVVPXBXPAVULVHZUWJVUEUWHVULUWJVUESAVUMYSVVMVWAVXLVVOVWB
      XBXPUVCUVDUVEYRWTUVFVWFVWLUXQVDRVXEVXGSVWMVWFUWHFUWNVXBVXAAUYOVWEUYPWDYQZ
      VWGUXQUAUVGXOVWFVXFQUXQURVXFQSVWFVXFKPUVHMZQKPUVILZRVXFVXNSKJVXOUSUVJUVKP
      KUVLXKUVMUVNUTUVOUVPYRVWFUXOUXRVXCVWFUXQVXMUVQUVRUVSYTYRUVTYT $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The Ternary Goldbach Conjecture: Final Statement
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d h k m n x z $.
    $( Statement 7.49 of [Helfgott] p. 70.  For a sufficiently big odd ` N ` ,
       this postulates the existence of smoothing functions ` h ` (eta star)
       and ` k ` (eta plus) such that the lower bound for the circle integral
       is big enough.  (Contributed by Thierry Arnoux, 15-Dec-2021.) $)
    ax-hgt749 $a |- A. n e. { z e. ZZ | -. 2 || z } ( ( ; 1 0 ^ ; 2 7 ) <_ n
      -> E. h e. ( ( 0 [,) +oo ) ^m NN ) E. k e. ( ( 0 [,) +oo ) ^m NN ) (
         A. m e. NN ( k ` m ) <_ ( 1 . _ 0 _ 7 _ 9 _ 9 _ 5 5 )
      /\ A. m e. NN ( h ` m ) <_ ( 1 . _ 4 _ 1 4 )
      /\ ( ( 0 . _ 0 _ 0 _ 0 _ 4 _ 2 _ 2 _ 4 8 ) x. ( n ^ 2 ) )
       <_ S. ( 0 (,) 1 ) ( ( ( ( ( Lam oF x. h ) vts n ) ` x )
        x. ( ( ( ( Lam oF x. k ) vts n ) ` x ) ^ 2 ) )
        x. ( exp ` ( ( _i x. ( 2 x. _pi ) ) x. ( -u n x. x ) ) ) ) _d x ) ) $.
  $}

  ${
    $( Theorem 12. of [RosserSchoenfeld] p. 71.  Theorem ~ chpo1ubb states that
       the ` psi ` function is bounded by a linear term; this axiom postulates
       an upper bound for that linear term.  This is stated as an axiom until a
       formal proof can be provided.  (Contributed by Thierry Arnoux,
       28-Dec-2021.) $)
    ax-ros335 $a |- A. x e. RR+ ( psi ` x )
                                        < ( ( 1 . _ 0 _ 3 _ 8 _ 8 3 ) x. x ) $.
  $}

  ${
    $( Theorem 13. of [RosserSchoenfeld] p. 71.  Theorem ~ chpchtlim states
       that the ` psi ` and ` theta ` function are asymtotic to each other;
       this axiom postulates an upper bound for their difference.  This is
       stated as an axiom until a formal proof can be provided.  (Contributed
       by Thierry Arnoux, 28-Dec-2021.) $)
    ax-ros336 $a |- A. x e. RR+ ( ( psi ` x ) - ( theta ` x ) )
                                 < ( ( 1 . _ 4 _ 2 _ 6 2 ) x. ( sqrt ` x ) ) $.
  $}

  ${
    $d N i j $.  $d N x $.  $d ph i x $.
    hgt750lemc.n $e |- ( ph -> N e. NN ) $.
    $( An upper bound to the summatory function of the von Mangoldt function.
       (Contributed by Thierry Arnoux, 29-Dec-2021.) $)
    hgt750lemc $p |- ( ph -> sum_ j e. ( 1 ... N ) ( Lam ` j )
      < ( ( 1 . _ 0 _ 3 _ 8 _ 8 3 ) x. N ) ) $=
      ( vx cchp cfv c1 cfz co cv cvma c3 c8 cdp2 cmul clt wceq wbr crp csu wcel
      cc0 cdp nnzd chpvalz syl fveq2 oveq2 breq12d wral ax-ros335 nnrpd rspcdva
      cz a1i eqbrtrrd ) ACFGZHCIJBKLGBUAZHUCMNNMOOOOUDJZCPJZQACUOUBURUSRACDUEBC
      UFUGAEKZFGZUTVBPJZQSZURVAQSETCVBCRVCURVDVAQVBCFUHVBCUTPUIUJVEETUKAEULUPAC
      DUMUNUQ $.

    hgt750lemd.0 $e |- ( ph -> ( ; 1 0 ^ ; 2 7 ) <_ N ) $.
    $( An upper bound to the summatory function of the von Mangoldt function on
       non-primes.  (Contributed by Thierry Arnoux, 29-Dec-2021.) $)
    hgt750lemd $p |- ( ph
      -> sum_ i e. ( ( ( 1 ... N ) \ Prime ) u. { 2 } ) ( Lam ` i )
       < ( ( 1 . _ 4 _ 2 _ 6 3 ) x. ( sqrt ` N ) ) ) $=
      ( c1 co cprime cfv c2 c4 c6 cmul cc0 clt wcel cr a1i 0nn0 wbr vx cfz cdif
      cv cvma csu clog caddc cdp2 cdp csqrt csn cun c3 cfn fzfid diffi wa cn wf
      syl vmaf wss fz1ssnn ssdifssd ffvelrnd fsumrecl crp 2rp relogcld cn0 1nn0
      sselda 4re 2re pm3.2i dp2cl ax-mp dpcl mp2an nnred nnrpd rpge0d resqrtcld
      6re remulcld 0re 1re cchp ccht cmin cin cz wceq nnzd chpvalz vmaprm recnd
      oveq12d fsumcl eqcomi fveq2 cdc cexp 10nn0 7nn0 nn0expcli nn0rei cdiv w3a
      c7 3pm3.2i 1lt10 ltexp2a cc wne 10pos 4z mp3an oveq2i 1rp oveq1i c5 nn0zi
      4nn0 dpexpp1 rpdp2cl 6nn0 2nn0 deccl cle eqtr3i expgt0 lttrd 2prm addid1i
      ltleii 3rp eqid dpadd2 chtvalz inss2 sumeq2dv infi inss1 sstri c0 inindif
      eqtr4d inundif fsumsplit comraddd eqtr2d oveq2d breq12d ax-ros336 rspcdva
      mvrraddd wral eqbrtrd log2le1 0z 3z 3pos numexp0 recni gtneii expm1 4m1e3
      nn0cni divrec2 3eqtr3ri 3brtr4i dp0h breqtrri 4p1e5 5p1e6 6p1e7 syl6breqr
      5nn0 3eqtrri rpdpcl nn0ge0i expmul 7t2e14 fveq2i sqrtsq 4lt10 1lt2 decltc
      wb sqrtlt mpbi eqbrtrri sqrtled mpbid ltletrd ltmul2dd lt2addd nfv elndif
      nfcv wn syl6eq 2cnd 2ne0 logcld fsumsplitsn 1p0e1 4cn 2cn 3nn0 6cn decadd
      2p1e3 dpadd adddird syl5eqr 3brtr4d ) AFCUBGZHUCZBUDZUEIZBUFZJUGIZUHGFKJL
      JUIZUIZUIZUJGZCUKIZMGZNNNNFUIZUIZUIZUJGZUYJMGZUHGZUYAJULUMUYCBUFFKJLUNUIZ
      UIZUIUJGZUYJMGZOAUYDUYEUYKUYPAUYAUYCBAUXTUOPZUYAUOPAFCUPZUXTHUQVAZAUYBUYA
      PURZUSQUYBUEUSQUEUTZVUEVBRAUYAUSUYBAUXTUSHUXTUSVCACVDZRZVEVMVFZVGAJJVHPAV
      IRVJZAUYIUYJUYIQPZAFVKPUYHQPZVUKVLKQPZUYGQPZURVULVUMVUNVNJQPZUYFQPZURVUNV
      UOVUPVOLQPZVUOURVUPVUQVUOWEVOVPLJVQVRVPJUYFVQVRVPKUYGVQVRFUYHVSVTRZACACDW
      AZACACDWBZWCZWDZWFAUYOUYJUYOQPZANVKPUYNQPZVVCSNQPZUYMQPZURVVDVVEVVFWGVVEU
      YLQPZURVVFVVEVVGWGVVEFQPZURVVGVVEVVHWGWHVPNFVQVRVPNUYLVQVRVPNUYMVQVRNUYNV
      SVTRZVVBWFZAUYDCWIIZCWJIZWKGZUYKOAVVMUXTUYCBUFZUXTHWLZUYCBUFZWKGUYDAVVKVV
      NVVLVVPWKACWMPZVVKVVNWNACDWOZBCWPVAAVVLVVOUYBUGIZBUFZVVPAVVQVVLVVTWNVVRBC
      UUAVAAVVOUYCVVSBAUYBVVOPURZUYBHPUYCVVSWNAVVOHUYBVVOHVCAUXTHUUBRVMUYBWQVAU
      UCUUIWSAVVNUYDVVPAUYAUYCBVUDVUEUYCVUIWRZWTZAVVOUYCBAVUBVVOUOPVUCUXTHUUDVA
      VWAUYCVWAUSQUYBUEVUFVWAVBRAVVOUSUYBVVOUSVCAVVOUXTUSUXTHUUEVUGUUFRVMVFWRWT
      ZAVVNVVPUYDVWDVWCAVVOUYAUYCUXTBVVOUYAWLUUGWNAUXTHUUHRUXTVVOUYAUMZWNAVWEUX
      TUXTHUUJXARVUCAUYBUXTPURZUYCVWFUSQUYBUEVUFVWFVBRAUXTUSUYBVUHVMVFWRUUKUULU
      URUUMAUAUDZWIIZVWGWJIZWKGZUYIVWGUKIZMGZOTZVVMUYKOTUAVHCVWGCWNZVWJVVMVWLUY
      KOVWNVWHVVKVWIVVLWKVWGCWIXBVWGCWJXBWSVWNVWKUYJUYIMVWGCUKXBUUNUUOVWMUAVHUU
      SAUAUUPRVUTUUQUUTAUYEFUYPVUJVVHAWHRZVVJUYEFOTAUVARAFUYOFNXCZXKXDGZMGZUYPV
      WOAUYOVWQVVIVWQQPZAVWQVWPXKXEXFXGXHZRZWFVVJAFNFUJGZVWPKXDGZMGZVWROFVXDOTA
      FFVWPXIGZVXCMGZVXDOVWPNXDGZVWPUNXDGZFVXFOVWPQPZNWMPZUNWMPZXJFVWPOTZNUNOTZ
      URVXGVXHOTVXIVXJVXKVWPXEXHZUVBUVCXLVXLVXMXMUVDVPVWPNUNXNVTVXGFVWPXEUVEXAV
      WPKFWKGZXDGZVXCVWPXIGZVXHVXFVWPXOPZVWPNXPZKWMPVXPVXQWNVWPVXNUVFZNVWPWGXQU
      VGZXRVWPKUVHXSVXOUNVWPXDUVIXTVXCXOPVXRVXSVXQVXFWNVXCVWPKXEYEXGUVJVXTVYAVX
      CVWPUVKXSUVLUVMVXBVXEVXCMFYAUVNYBUVORVXDNUYLUJGVWPYCXDGMGNUYMUJGVWPLXDGMG
      VWRNFKYCSYAUVPXRYCUVTYDZYFNUYLYCLSNFSYAYGZUVQVYBLYHYDZYFNUYMLXKSNUYLSVYCY
      GZUVRVYDXKXFYDZYFUWAUVSAVWQUYJUYOVXAVVBUYOVHPANUYNSNUYMSVYEYGUWBRAVWQVWPJ
      XKXCZXDGZUKIZUYJVXAAVYHVYHQPZAVYHVWPVYGXEJXKYIXFYJZXGZXHZRZNVYHYKTZAVYHVY
      LUWCZRZWDVVBVWQVYIOTAVWPFKXCZXDGZUKIZVWQVYIOVWQJXDGZUKIZVYTVWQWUAVYSUKVWP
      XKJMGZXDGZWUAVYSVXRXKVKPJVKPWUDWUAWNVXTXFYIVWPXKJUWDXSWUCVYRVWPXDUWEXTYLU
      WFVWSNVWQYKTWUBVWQWNVWTNVWQWGVWTVXIXKWMPNVWPOTZNVWQOTVXNVYFXQVWPXKYMXSYQV
      WQUWGVTYLVYSVYHOTZVYTVYIOTZVXIVYRWMPZVYGWMPZXJVXLVYRVYGOTZURWUFVXIWUHWUIV
      XNVYRFKVLYEYJZYDZVYGVYKYDXLVXLWUJXMFJKXKVLYIYEXFUWHUWIUWJVPVWPVYRVYGXNVTV
      YSQPZNVYSYKTZURVYJVYOURWUFWUGUWKWUMWUNVYSVWPVYRXEWUKXGXHZNVYSWGWUOVXIWUHW
      UENVYSOTVXNWULXQVWPVYRYMXSYQVPVYJVYOVYMVYPVPVYSVYHUWLVTUWMUWNRAVYHCYKTVYI
      UYJYKTEAVYHCVYNVYQVUSVVAUWOUWPUWQUWRYNYNUWSAUYAJUYCUYEBHABUWTBUYEUXBVUDJH
      PZAYORZAWUPJUYAPUXCWUQJHUXTUXAVAVWBUYBJWNUYCJUEIZUYEUYBJUEXBWUPWURUYEWNYO
      JWQVRUXDAJAUXEJNXPAUXFRUXGUXHAVUAUYIUYOUHGZUYJMGUYQWUSUYTUYJMKUYGNUYMKUYS
      FNFYEJUYFYILJYHVIYGZYGSVYEYEJUYRYILUNYHYRYGZYGVLSUXIJUYFNUYLJUYRKNKYIWUTS
      VYCYIWVAYESKUXJYPLJNFLUNJNJYHVISYAYHYRYISJUXKYPLJNFLUNYHYISVLYHUXLLJNFLUN
      LJXCZNFXCZYHYISVLWVBYSWVCYSLUXMYPUXOUXNUXPYTYTYTYBAUYIUYOUYJAUYIVURWRAUYO
      VVIWRAUYJVVBWRUXQUXRUXS $.
  $}

  ${
    $d N h k n x $.  $d h k m n x z $.  $d n ph $.
    hgt749d.o $e |- O = { z e. ZZ | -. 2 || z } $.
    hgt749d.n $e |- ( ph -> N e. O ) $.
    hgt749d.1 $e |- ( ph -> ( ; 1 0 ^ ; 2 7 ) <_ N ) $.
    $( A deduction version of ~ ax-hgt749 .  (Contributed by Thierry Arnoux,
       15-Dec-2021.) $)
    hgt749d $p |- ( ph
      -> E. h e. ( ( 0 [,) +oo ) ^m NN ) E. k e. ( ( 0 [,) +oo ) ^m NN ) (
         A. m e. NN ( k ` m ) <_ ( 1 . _ 0 _ 7 _ 9 _ 9 _ 5 5 )
      /\ A. m e. NN ( h ` m ) <_ ( 1 . _ 4 _ 1 4 )
      /\ ( ( 0 . _ 0 _ 0 _ 0 _ 4 _ 2 _ 2 _ 4 8 ) x. ( N ^ 2 ) )
       <_ S. ( 0 (,) 1 ) ( ( ( ( ( Lam oF x. h ) vts N ) ` x )
        x. ( ( ( ( Lam oF x. k ) vts N ) ` x ) ^ 2 ) )
        x. ( exp ` ( ( _i x. ( 2 x. _pi ) ) x. ( -u N x. x ) ) ) ) _d x ) ) $=
      ( cc0 c2 cexp co cle wbr cfv cdp2 cmul vn c1 cdc c7 cv c9 c5 cdp cn c4 c8
      wral cioo cvma cof cvts ci cpi cneg ce citg w3a cpnf cico cmap wrex cdvds
      wi wn crab wceq breq2 oveq1 oveq2d wcel oveq2 fveq1d oveq1d oveq12d negeq
      fveq2d adantr itgeq2dv breq12d 3anbi3d rexbidv imbi12d ax-hgt749 syl6eleq
      cz a1i rspcdva mpd ) AUBLUCMUDUCNOZGPQZFUEZEUEZRUBLUDUFUFUGUGSSSSSUHOPQFU
      IULZWPDUEZRUBUJUBUJSSUHOPQFUIULZLLLLUJMMUJUKSSSSSSSUHOZGMNOZTOZBLUBUMOZBU
      EZUNWSTUOZOZGUPOZRZXEUNWQXFOZGUPOZRZMNOZTOZUQMURTOTOZGUSZXETOZTOZUTRZTOZV
      AZPQZVBZELVCVDOUIVEOZVFZDYDVFZKAWNUAUEZPQZWRWTXAYGMNOZTOZBXDXEXGYGUPOZRZX
      EXJYGUPOZRZMNOZTOZXOYGUSZXETOZTOZUTRZTOZVAZPQZVBZEYDVFZDYDVFZVHZWOYFVHUAM
      CUEVGQVICWJVJZGYGGVKZYHWOUUFYFYGGWNPVLUUIUUEYEDYDUUIUUDYCEYDUUIUUCYBWRWTU
      UIYJXCUUBYAPUUIYIXBXATYGGMNVMVNUUIBXDUUAXTUUIUUAXTVKXEXDVOUUIYPXNYTXSTUUI
      YLXIYOXMTUUIXEYKXHYGGXGUPVPVQUUIYNXLMNUUIXEYMXKYGGXJUPVPVQVRVSUUIYSXRUTUU
      IYRXQXOTUUIYQXPXETYGGVTVRVNWAVSWBWCWDWEWFWFWGUUGUAUUHULABCDEFUAWHWKAGHUUH
      JIWIWLWM $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d ph x y $.
    logdivsqrle.a $e |- ( ph -> A e. RR+ ) $.
    logdivsqrle.b $e |- ( ph -> B e. RR+ ) $.
    logdivsqrle.1 $e |- ( ph -> ( exp ` 2 ) <_ A ) $.
    logdivsqrle.2 $e |- ( ph -> A <_ B ) $.
    $( Conditions for ` ( ( log ` x ) / ( sqrt ` x ) ) ` to be decreasing.
       (Contributed by Thierry Arnoux, 20-Dec-2021.) $)
    logdivsqrle $p |- ( ph
      -> ( ( log ` B ) / ( sqrt ` B ) ) <_ ( ( log ` A ) / ( sqrt ` A ) ) ) $=
      ( vx crp cfv co cle cc0 cr wcel c1 c2 cmul cc a1i vy clog csqrt cdiv cmpt
      cv cpnf ioorp eqcomi wa simpr relogcld rpsqrtcld rpred wne rpsqrtcl rpne0
      cioo syl adantl redivcld eqid fmptd cdv cneg ccxp cmin caddc ccncf logcld
      rpcn sqrtcld divrecd 2cnd adantr 2ne0 reccld cxpnegd cxpsqrt oveq2d eqtrd
      wceq eqtr4d mpteq2dva cpr reelprrecn rpreccld cres dvrelog csn crn logf1o
      cdif wf wf1o f1of ax-mp wn ssriv 0nrp ssdifsn mpbir2an feqresmpt syl5reqr
      wss halfcld negcld cxpcld subcld mulcld dvcxp1 dvmptmul ax-resscn syl3anc
      1cnd cncfmptc sylancl cxpcncf1 mulcncf recxpcld remulcld readdcld oveq12d
      sseldi 1re fveq1d cvv eqidd fveq2d fvmptd wbr ce 2re clt breqtrrd breqtrd
      wb mpbird eqbrtrd ovex ccnfld ctopn ctx ccn addcn difss cncfmptid divcncf
      ssid cmnf cioc ax-1 jca ellogdm sylibr cncfss relogcn syl6eqelr cncfmpt2f
      wi mp2an rereccld rpge0 halfre renegcli resubcli relogcl cncffvrn biimpar
      rpre eqeltrd cxpadd syl211anc mulid2d negsubd mulcomd cxpneg cxp1d eqtr2d
      syl21anc 3eqtr4rd mul32d adddird oveq1d cicc fct2relem sstrd sselda ovexd
      ioossicc rpcxpcl rpge0d 2cn mulid2i reefcld eliooord simpld ltled reeflog
      0red letrd sylancr syl5eqbr 2rp lemuldivd mpbid divrec2d mulneg1d subnegd
      efle addid2d 3eqtrd leaddsub lemul1ad mul02d fdvnegge 3brtr3d ) ACHIHUFZU
      BJZUXRUCJZUDKZUEZJBUYBJCUBJZCUCJZUDKZBUBJZBUCJZUDKZLAUABCMUGIUYBMUGURKIUH
      UIZDEAHIUYANUYBAUXRIOZUJZUXSUXTUYKUXRAUYJUKZULUYKUXTUYKUXRUYLUMUNUYJUXTMU
      OZAUYJUXTIOUYMUXRUPUXTUQUSUTZVAUYBVBVCANUYBVDKZHIPUXRUDKZUXRPQUDKZVEZVFKZ
      RKZUYRUXRUYRPVGKZVFKZRKZUXSRKZVHKZUEZINVIKZAUYONHIUXSUYSRKZUEZVDKVUFAUYBV
      UINVDAHIUYAVUHUYKUYAUXSPUXTUDKZRKVUHUYKUXSUXTUYKUXRUYJUXRSOZAUXRVKZUTZUYJ
      UXRMUOZAUXRUQZUTZVJZUYKUXRVUMVLUYNVMUYKUYSVUJUXSRUYKUYSPUXRUYQVFKZUDKVUJU
      YKUXRUYQVUMVUPUYKQAQSOZUYJAVNZVOQMUOZUYKVPTVQVRUYKVURUXTPUDUYKVUKVURUXTWB
      VUMUXRVSUSVTWAVTWCWDVTAHUXSUYPUYSVUCNISINNSWEOAWFTVUQUYKUXRUYLWGZAHIUYPUE
      NUBIWHZVDKNHIUXSUEZVDKHWIAVVCVVDNVDAHSMWJZWMZUBWKZIUBVVFVVGUBWNZAVVFVVGUB
      WOVVHWLVVFVVGUBWPWQTIVVFXEZAVVIISXEZMIOWRHISVULWSZWTISMXAXBTZXCZVTXDUYKUX
      RUYRVUMAUYRSOZUYJAUYQAPAXOZXFZXGZVOZXHZUYKUYRVUBVVRUYKUXRVUAVUMUYKUYRPVVR
      APSOZUYJVVOVOZXIXHZXJAVVNNHIUYSUEVDKHIVUCUEWBVVQHUYRXKUSXLWAZANSXEZVUFISV
      IKZOZINVUFWNZVUFVUGOZVWDAXMTAHUYTVUDVHUUAUUBJZIVWIVBZVHVWIVWIUUCKVWIUUDKO
      AVWIVWJUUETAHUYPUYSIAHPUXRIAVVTVVJSSXEZHIPUEVWEOVVOVVJAVVKTZVWKASUUIZTZHP
      ISXPXNAVVIVVFSXEHIUXRUEIVVFVIKOVVLSVVEUUFHIVVFUUGXQUUHAHUYRIVVQISUUJMUUKK
      WMZXEAHIVWOUYJVUKUXRNOZUYJUUTZUJUXRVWOOUYJVUKVWQVULUYJVWPUULUUMUXRVWOVWOV
      BUUNUUOWSTZXRXSAHVUCUXSIAHUYRVUBIAVVNVVJVWKHIUYRUEVWEOVVQVWLVWNHUYRISXPXN
      AHVUAIAUYRPVVQVVOXIVWRXRXSAVUGVWEVVDVWDVWKVUGVWEXEXMVWMINSUUPUVAAVVDVVCVU
      GVVMUUQUURYDXSUUSAHIVUENVUFUYJVUENOAUYJUYTVUDUYJUYPUYSUYJUXRUXRUVJZVUOUVB
      UYJUXRUYRVWSUXRUVCZUYRNOZUYJUYQUVDUVEZTZXTYAUYJVUCUXSUYJUYRVUBVXCUYJUXRVU
      AVWSVWTVUANOZUYJUYRPVXBYEUVFZTXTYAUXRUVGYAYBUTVUFVBVCVWDVWFUJVWHVWGISNVUF
      UVHUVIUVTUVKGAUAUFZBCURKZOZUJZVXFUYOJZVXFVUFJZMLAVXJVXKWBVXHAVXFUYOVUFVWC
      YFVOVXIVXKVXFHIPUYRUXSRKZVHKZVUBRKZUEZJZMLAVXKVXPWBVXHAVXFVUFVXOAHIVUEVXN
      UYKVUEPVUBRKZVXLVUBRKZVHKVXNUYKUYTVXQVUDVXRVHUYKUXRUYRPVEZVHKZVFKZUYSUXRV
      XSVFKZRKZVXQUYTUYKVUKVUNVVNVXSSOVYAVYCWBVUMVUPVVRUYKPVWAXGUXRUYRVXSUVLUVM
      UYKVXQVUBVYAUYKVUBVWBUVNUYKVXTVUAUXRVFUYKUYRPVVRVWAUVOVTWCUYKUYTUYSUYPRKV
      YCUYKUYPUYSUYKISUYPVVKVVBYDVVSUVPUYKUYPVYBUYSRUYKVYBPUXRPVFKZUDKZUYPUYKVU
      KVUNVVTVYBVYEWBVUMVUPVWAUXRPUVQXNUYKVYDUXRPUDUYKUXRVUMUVRVTUVSVTWAUWAUYKU
      YRVUBUXSVVRVWBVUQUWBYCUYKPVXLVUBVWAUYKUYRUXSVVRVUQXJVWBUWCWCWDYFVOVXIVXPP
      UYRVXFUBJZRKZVHKZVXFVUAVFKZRKZMLVXIHVXFVXNVYJIVXOYGVXIVXOYHVXIUXRVXFWBZUJ
      ZVXMVYHVUBVYIRVYLVXLVYGPVHVYLUXSVYFUYRRVYLUXRVXFUBVXIVYKUKZYIVTVTVYLUXRVX
      FVUAVFVYMUWDYCAVXGIVXFAVXGBCUWEKZIVXGVYNXEABCUWJTABCMUGIUYIDEUWFUWGUWHZVX
      IVYHVYIRUWIYJVXIVYJMVYIRKMLVXIVYHMVYIVXIPVYGPNOZVXIYETZVXIUYRVYFVXAVXIVXB
      TVXIVXFVYOULZYAZYBVXIUWTZVXIVYIVXIVXFIOZVXDVYIIOVYOVXEVXFVUAUWKXQZUNVXIVY
      IWUBUWLVXIVYHMLYKZPMVYGVGKZLYKZVXIPUYQVYFRKZWUDLVXIPVYFQUDKZWUFLVXIPQRKZV
      YFLYKPWUGLYKVXIWUHQVYFLQUWMUWNVXIQVYFLYKZQYLJZVYFYLJZLYKZVXIWUJVXFWUKLVXI
      WUJBVXFVXIQQNOZVXIYMTUWOABNOVXHABDUNVOZVXIVXFVYOUNZAWUJBLYKVXHFVOVXIBVXFW
      UNWUOVXHBVXFYNYKZAVXHWUPVXFCYNYKVXFBCUWPUWQUTUWRUXAVXIWUAWUKVXFWBVYOVXFUW
      SUSYOVXIWUMVYFNOWUIWULYQYMVYRQVYFUXJUXBYRUXCVXIPVYFQVYQVYRQIOVXIUXDTUXEUX
      FVXIVYFQVXINSVYFXMVYRYDZAVUSVXHVUTVOVVAVXIVPTUXGYPVXIWUDMWUFVEZVGKMWUFVHK
      WUFVXIVYGWURMVGVXIUYQVYFAUYQSOVXHVVPVOZWUQUXHVTVXIMWUFVXINSMXMVYTYDVXIUYQ
      VYFWUSWUQXJZUXIVXIWUFWUTUXKUXLYOVXIVYPVYGNOMNOWUCWUEYQVYQVYSVYTPVYGMUXMXN
      YRUXNVXIVYIVXIISVYIVVKWUBYDUXOYPYSYSYSUXPAHCUYAUYEIUYBYGAUYBYHZAUXRCWBZUJ
      ZUXSUYCUXTUYDUDWVCUXRCUBAWVBUKZYIWVCUXRCUCWVDYIYCEUYEYGOAUYCUYDUDYTTYJAHB
      UYAUYHIUYBYGWVAAUXRBWBZUJZUXSUYFUXTUYGUDWVFUXRBUBAWVEUKZYIWVFUXRBUCWVGYIY
      CDUYHYGOAUYFUYGUDYTTYJUXQ $.
  $}

  $( Lemma for ~ tgoldbachgtd .  (Contributed by Thierry Arnoux,
     17-Dec-2021.) $)
  hgt750lem $p |- ( ( N e. NN0 /\ ( ; 1 0 ^ ; 2 7 ) <_ N )
    -> ( ( 7 . _ 3 _ 4 8 ) x. ( ( log ` N ) / ( sqrt ` N ) ) )
      < ( 0 . _ 0 _ 0 _ 0 _ 4 _ 2 _ 2 _ 4 8 ) ) $=
    ( wcel c1 cc0 c2 c7 cexp co cle wbr wa c3 c4 c8 cmul cr ax-mp mp2an clt wb
    cn0 cdc cdp2 cdp clog cfv csqrt cdiv 7nn0 4re 8re pm3.2i dp2cl dpcl a1i 0re
    10re 2nn0 deccl reexpcl 1nn 0nn0 1nn0 c9 1re ltleii declei ltletri remulcld
    9re mp3an elrp mpbir2an relogcl gtneii redivcli cq qssre 4nn0 sselii dp2clq
    crp 8nn0 3nn0 rpdp2cl mpbi simpri 2nn nn0rei 2re eqbrtrri caddc ceu egt2lt3
    1p1e2 loge epr 3rp logltb cc wne wceq 3cn fveq2i 9pos 10pos logleb readdcli
    eqbrtri remulcli nn0zi relogexp mpbir 4lt10 8lt10 dp2lt10 lttri w3a 3pm3.2i
    1lt10 ltexp2a ltmul1i recni oveq2i eqtr3i expgt0 decltc 6nn nngt0i 6nn0 2rp
    cz c6 breqtri simpli 4pos ltmul2i 4cn ltdiv1i dpexpp1 3re nn0re adantr 0lt1
    1lt9 expge1 simpr ltletrd elrpd relogcld rpge0d resqrtcld sqrtgt0d redivcld
    gtned sqrtpclii sqrtgt0ii nn0ssq 8pos rpdpcl ce 2cn mulid2i lemul1i lt2addi
    2pos 3ne0 logmul2 3t3e9 9lt10 ltlei decltdi lemul2i eqeltrri relogef rpefcl
    letri 3brtr4i logdivsqrle lemul2ad 3lt10 7p1e8 dplti numexp0 loggt0b expmul
    0z divgt0i 7t2e14 sqrtsq 1lt2 sqrtlt ltdiv2 declt 2exp4 mulid1i 7lt10 2lt10
    declti 10nn decnncl2 nnrei cn 8nn dpgti mulcli nnne0i divdiv1 div23i oveq1i
    nnrp mulne0i divassi cmin expp1 sq10 mulcomi 3eqtrri 2p1e3 eqtri expsub 7cn
    4p3e7 addcomli subaddrii 3eqtr2i numexp1 nnzi 3p1e4 3eqtri 3eqtr3i breqtrri
    0dp2dp ltmuldiv2 ltdivmul2 lelttrd ) AUABZCDUBZEFUBZGHZAIJZKZFLMNUCZUCZUDHZ
[encoded data, 4880 characters]
    SVUEVUKVVGVWJXJUYRVUKUQVWJXJVWNXQRUOUYP $.

  $( Decimal multiplication galore!  (Contributed by Thierry Arnoux,
     26-Dec-2021.) $)
  hgt750lem2 $p |- ( 3 x. ( ( ( ( 1 . _ 0 _ 7 _ 9 _ 9 _ 5 5 ) ^ 2 )
    x. ( 1 . _ 4 _ 1 4 ) ) x. ( ( 1 . _ 4 _ 2 _ 6 3 )
    x. ( 1 . _ 0 _ 3 _ 8 _ 8 3 ) ) ) ) < ( 7 . _ 3 _ 4 8 ) $=
    ( c3 c1 cc0 c7 c9 c5 cdp co c2 c4 c6 c8 wcel 1nn0 4nn0 0nn0 eqid caddc 2nn0
    cdc cdp2 cmul clt wbr cr wa cle cn0 0re 7re 9re 5re pm3.2i dp2cl ax-mp dpcl
    mp2an crp cn nnrp rpdp2cl rpdpcl rpre remulcli 7nn0 9nn0 5nn0 5lt10 dp2lt10
    6re 7p1e8 dp2ltsuc 8nn0 dp2lt dplt rpge0 mpbi recni 6nn0 deccl 10pos nn0cni
    8re dec0h addid1i 6cn addid2i decadd 4cn 1t1e1 oveq12i oveq2i eqtri 3eqtr4i
    dp0u 10nn0 dec10p ax-1cn addcomi 6p1e7 oveq1i 8cn 8p1e9 3eqtri dpmul4 lttri
    decaddc 3nn0 3lt10 9cn 2cn eqtr3i mulid1i 4p1e5 dpmul 7cn addcomli decaddci
    2p1e3 decaddi 6p3e9 deceq1i 5p1e6 mulcomli 5cn 1p1e2 dpadd decsuc 4p2e6 4re
    dpadd3 2re 3re 3rp mul01i 3cn 3p1e4 6p4e10 0cn 2p2e4 resqcli 4nn 1re sqge0i
    rpgt0 ltleii mulge0i 5nn 8nn rpdp2cl2 9lt10 dp20u breqtrri wb lt2sqi sqvali
    cexp 4lt10 8t8e64 7p4e11 9t9e81 3eqtr4ri ltmul1ii 1lt10 8lt10 9p1e10 9p2e11
    eqbrtri addcli 6t4e24 7t4e28 7t2e14 8t7e56 8t2e16 6p6e12 6p2e8 4p4e8 9p5e14
    mulcomi 3eqtr3i 3eqtr2i 4p3e7 8p6e14 7nn ltmul12a 6lt10 3t2e6 9t2e18 7t3e21
    9t7e63 9p6e15 eqeltrri cc 4t4e16 9t4e36 5p5e10 8t5e40 5t3e15 mulid2i 8p5e13
    9t6e54 7t6e42 7t7e49 3p2e5 3pos ltmul2i dp2eq2i eqtr2i 4t3e12 mul02i eqtr4i
    9nn 5p4e9 eqeltri 9p4e13 3t3e9 wceq eqeq1i 7p2e9 00id ) ABCDEEFFUAZUAZUAZUA
[encoded data, 9600 characters]
    JVEAVUIXHJLOLUSMLURMUUILUTUOVAVAVBVUKVCUOXFUQ $.

  ${
    $d A m n $.  $d H m $.  $d K m $.  $d P m n $.  $d Q m n $.  $d m n ph $.
    hgt750lemf.a $e |- ( ph -> A e. Fin ) $.
    hgt750lemf.p $e |- ( ph -> P e. RR ) $.
    hgt750lemf.q $e |- ( ph -> Q e. RR ) $.
    hgt750lemf.h $e |- ( ph -> H : NN --> ( 0 [,) +oo ) ) $.
    hgt750lemf.k $e |- ( ph -> K : NN --> ( 0 [,) +oo ) ) $.
    hgt750lemf.0 $e |- ( ( ph /\ n e. A ) -> ( n ` 0 ) e. NN ) $.
    hgt750lemf.1 $e |- ( ( ph /\ n e. A ) -> ( n ` 1 ) e. NN ) $.
    hgt750lemf.2 $e |- ( ( ph /\ n e. A ) -> ( n ` 2 ) e. NN ) $.
    hgt750lemf.3 $e |- ( ( ph /\ m e. NN ) -> ( K ` m ) <_ P ) $.
    hgt750lemf.4 $e |- ( ( ph /\ m e. NN ) -> ( H ` m ) <_ Q ) $.
    $( Lemma for the statement 7.50 of [Helfgott] p. 69.  (Contributed by
       Thierry Arnoux, 1-Jan-2022.) $)
    hgt750lemf $p |- ( ph -> sum_ n e. A
       ( ( ( Lam ` ( n ` 0 ) ) x. ( H ` ( n ` 0 ) ) )
    x. ( ( ( Lam ` ( n ` 1 ) ) x. ( K ` ( n ` 1 ) ) )
      x. ( ( Lam ` ( n ` 2 ) ) x. ( K ` ( n ` 2 ) ) ) ) )
    <_ ( ( ( P ^ 2 ) x. Q ) x. sum_ n e. A ( ( Lam ` ( n ` 0 ) )
           x. ( ( Lam ` ( n ` 1 ) ) x. ( Lam ` ( n ` 2 ) ) ) ) ) ) $=
      ( cmul co cc0 cv cfv cvma c1 c2 csu cexp cle wcel wa cn vmaf a1i ffvelrnd
      cr cpnf cico rge0ssre adantr sseldi remulcld resqcld recnd mulcld mulcomd
      mul4d oveq2d 3eqtr3d wbr vmage0 syl mulge0d cxr 0xr pnfxr icogelb syl3anc
      wf wceq fveq2 breq1d ralrimiva rspcdva lemul12ad sqvald breqtrrd lemul1ad
      wral eqtrd eqbrtrrd fsumle fsummulc2 ) ABUAFUBZUCZUDUCZWOGUCZSTZUEWNUCZUD
      UCZWSHUCZSTZUFWNUCZUDUCZXCHUCZSTZSTZSTZFUGBCUFUHTZDSTZWPWTXDSTZSTZSTZFUGX
      JBXLFUGSTUIABXHXMFIAWNBUJZUKZWRXGXOWPWQXOULUPWOUDULUPUDVSXOUMUNZNUOZXOUAU
      QURTZUPWQUSXOULXRWOGAULXRGVSXNLUTNUOZVAZVBXOXBXFXOWTXAXOULUPWSUDXPOUOZXOX
      RUPXAUSXOULXRWSHAULXRHVSXNMUTZOUOZVAZVBXOXDXEXOULUPXCUDXPPUOZXOXRUPXEUSXO
      ULXRXCHYBPUOZVAZVBVBVBXOXJXLAXJUPUJXNAXIDACJVCZKVBZUTZXOWPXKXQXOWTXDYAYEV
      BZVBZVBXOWQXAXESTZSTZXLSTZXHXMUIXOXLYNSTWRXKYMSTZSTYOXHXOWPXKWQYMXOWPXQVD
      ZXOXKYKVDZXOWQXTVDZXOYMXOXAXEYDYGVBZVDZVGXOXLYNXOWPXKYQYRVEXOWQYMYSUUAVEV
      FXOYPXGWRSXOWTXDXAXEXOWTYAVDXOXDYEVDXOXAYDVDXOXEYGVDVGVHVIXOYNXJXLXOWQYMX
      TYTVBYJYLXOWPXKXQYKXOWOULUJUAWPUIVJNWOVKVLXOWTXDYAYEXOWSULUJUAWTUIVJOWSVK
      VLXOXCULUJUAXDUIVJPXCVKVLVMVMXOYNDCCSTZSTZXJUIXOWQDYMUUBXTADUPUJXNKUTYTAU
      UBUPUJXNACCJJVBUTXOUAVNUJZUQVNUJZWQXRUJUAWQUIVJUUDXOVOUNZUUEXOVPUNZXSUAUQ
      WQVQVRXOXAXEYDYGXOUUDUUEXAXRUJUAXAUIVJUUFUUGYCUAUQXAVQVRZXOUUDUUEXEXRUJUA
      XEUIVJUUFUUGYFUAUQXEVQVRZVMXOEUBZGUCZDUIVJZWQDUIVJEULWOUUJWOVTUUKWQDUIUUJ
      WOGWAWBAUULEULWIXNAUULEULRWCUTNWDXOXACXECYDACUPUJXNJUTZYGUUMUUHUUIXOUUJHU
      CZCUIVJZXACUIVJEULWSUUJWSVTUUNXACUIUUJWSHWAWBAUUOEULWIXNAUUOEULQWCUTZOWDX
      OUUOXECUIVJEULXCUUJXCVTUUNXECUIUUJXCHWAWBUUPPWDWEWEAXJUUCVTXNAXJDXISTUUCA
      XIDAXIYHVDADKVDVFAXIUUBDSACACJVDWFVHWJUTWGWHWKWLABXLXJFIAXJYIVDXOXLYLVDWM
      WG $.
  $}

  ${
    $d F b $.  $d L a b $.  $d N a b c $.  $d R c $.  $d T a b c $.
    $d ph a b c $.
    hgt750lemg.f $e |- F = ( c e. R |-> ( c o. T ) ) $.
    hgt750lemg.t $e |- ( ph -> T : ( 0 ..^ 3 ) -1-1-onto-> ( 0 ..^ 3 ) ) $.
    hgt750lemg.n $e |- ( ph -> N : ( 0 ..^ 3 ) --> NN ) $.
    hgt750lemg.l $e |- ( ph -> L : NN --> RR ) $.
    hgt750lemg.1 $e |- ( ph -> N e. R ) $.
    $( Lemma for the statement 7.50 of [Helfgott] p. 69.  Applying a
       permutation ` T ` to the three factors of a product does not change the
       result.  (Contributed by Thierry Arnoux, 1-Jan-2022.) $)
    hgt750lemg $p |- ( ph -> ( ( L ` ( ( F ` N ) ` 0 ) )
      x. ( ( L ` ( ( F ` N ) ` 1 ) ) x. ( L ` ( ( F ` N ) ` 2 ) ) ) )
     = ( ( L ` ( N ` 0 ) ) x. ( ( L ` ( N ` 1 ) ) x. ( L ` ( N ` 2 ) ) ) ) ) $=
      ( cc0 cfv c1 c2 wceq wcel cn ffvelrnd vb va cmul co cv cprod fveq2 fveq2d
      ctp cfn tpfi c3 cfzo wf1o wb fzo0to3tp f1oeq23 mp2an sylib wa eqidd cr wf
      a1i adantr simpr syl6eleqr recnd fprodf1o ccom cvv cmpt coeq1d f1of ovexd
      syl fex2 syl3anc coexg syl2anc fvmptd fveq1d wfun cdm f1ofun f1odm eleq2d
      biimpar fvco eqtr2d prodeq2dv c0ex tpid1 syl5eleqr eqtrd eleqtrri eqeltrd
      1ex tpid2 wne 0ne1 2ex tpid3 0ne2 1ne2 prodtp 3eqtr3d mulassd ) AMFDNZNZE
      NZOXINZENZUCUDPXINZENZUCUDZMFNZENZOFNZENZUCUDPFNZENZUCUDZXKXMXOUCUDUCUDXR
      XTYBUCUDUCUDAMOPUIZUAUEZXINZENZUAUFZYDUBUEZFNZENZUBUFZXPYCAYLYDYECNZFNZEN
      ZUAUFYHAYDYKYDYOUBUACYMYIYMQYJYNEYIYMFUGUHYDUJRAMOPUKVDAMULUMUDZYPCUNZYDY
      DCUNZIYPYDQZYSYQYRUOUPUPYPYDYPYDCUQURUSZAYEYDRZUTZYMVAAYIYDRZUTZYKUUDSVBY
      JEASVBEVCUUCKVEUUDYPSYIFAYPSFVCUUCJVEUUDYIYDYPAUUCVFUPVGTTVHVIAYDYOYGUAUU
      BYNYFEUUBYFYEFCVJZNZYNUUBYEXIUUEAXIUUEQUUAAGFGUEZCVJZUUEBDVKDGBUUHVLQAHVD
      AUUGFQZUTUUGFCAUUIVFVMLAFBRCVKRZUUEVKRLAYPYPCVCZYPVKRZUULUUJAYQUUKIYPYPCV
      NVPZAMULUMVOZUUNYPYPCVKVKVQVRFCBVKVSVTWAZVEWBUUBCWCZYECWDZRZUUFYNQAUUPUUA
      AYQUUPIYPYPCWEVPZVEAUURUUAAUUQYDYEAYRUUQYDQYTYDYDCWFVPZWGWHYEFCWIVTWJUHWK
      WJAMOPYGUAXKXMXOVKVKVKYEMQYFXJEYEMXIUGUHYEOQYFXLEYEOXIUGUHMVKRAWLVDZOVKRA
      WRVDZAXKASVBXJEKAXJMCNZFNZSAXJMUUENZUVDAMXIUUEUUOWBAUUPMUUQRUVEUVDQUUSAMY
      DUUQMOPWLWMZUUTWNMFCWIVTWOAYPSUVCFJAYPYPMCUUMMYPRAMYDYPUVFUPWPVDZTTWQTVHZ
      AXMASVBXLEKAXLOCNZFNZSAXLOUUENZUVJAOXIUUEUUOWBAUUPOUUQRUVKUVJQUUSAOYDUUQM
      OPWRWSZUUTWNOFCWIVTWOAYPSUVIFJAYPYPOCUUMOYPRAOYDYPUVLUPWPVDZTTWQTVHZMOWTA
      XAVDZYEPQYFXNEYEPXIUGUHPVKRAXBVDZAXOASVBXNEKAXNPCNZFNZSAXNPUUENZUVRAPXIUU
      EUUOWBAUUPPUUQRUVSUVRQUUSAPYDUUQMOPXBXCZUUTWNPFCWIVTWOAYPSUVQFJAYPYPPCUUM
      PYPRAPYDYPUVTUPWPVDZTTWQTVHZMPWTAXDVDZOPWTAXEVDZXFAMOPYKUBXRXTYBVKVKVKYIM
      QYJXQEYIMFUGUHYIOQYJXSEYIOFUGUHUVAUVBAXRASVBXQEKAYPSMFJUVGTTVHZAXTASVBXSE
      KAYPSOFJUVMTTVHZUVOYIPQYJYAEYIPFUGUHUVPAYBASVBYAEKAYPSPFJUWATTVHZUWCUWDXF
      XGAXKXMXOUVHUVNUWBXHAXRXTYBUWEUWFUWGXHXG $.
  $}

  ${
    $d O z $.
    hgt750leme.o $e |- O = { z e. ZZ | -. 2 || z } $.
    $( Two ways to write the set of odd primes.  (Contributed by Thierry
       Arnoux, 27-Dec-2021.) $)
    oddprm2 $p |- ( Prime \ { 2 } ) = ( O i^i Prime ) $=
      ( cprime c2 csn cdif cin cv wcel cdvds wbr wn wa ancom cz wb prmz rabeq2i
      baib syl pm5.32i bitr2i nnoddn2prmb elin 3bitr4i eqriv ) ADEFGZBDHZAIZDJZ
      EUJKLMZNZUJBJZUKNZUJUHJUJUIJUOUKUNNUMUNUKOUKUNULUKUJPJZUNULQUJRUNUPULULAB
      PCSTUAUBUCUJUDUJBDUEUFUG $.

    hgt750leme.n $e |- ( ph -> N e. NN ) $.
    ${
      $d A c d i j n u $.  $d N c i j n u $.  $d ph c i j n u $.
      hgt750lemb.2 $e |- ( ph -> 2 <_ N ) $.
      hgt750lemb.a $e |-
        A = { c e. ( NN ( repr ` 3 ) N ) | -. ( c ` 0 ) e. ( O i^i Prime ) } $.
      $( An upper bound on the contribution of the non-prime terms in the
         Statement 7.50 of [Helfgott] p. 69.  (Contributed by Thierry Arnoux,
         28-Dec-2021.) $)
      hgt750lemb $p |- ( ph -> sum_ n e. A ( ( Lam ` ( n ` 0 ) )
             x. ( ( Lam ` ( n ` 1 ) ) x. ( Lam ` ( n ` 2 ) ) ) )
      <_ ( ( log ` N ) x. (
               sum_ i e. ( ( ( 1 ... N ) \ Prime ) u. { 2 } ) ( Lam ` i )
            x. sum_ j e. ( 1 ... N ) ( Lam ` j ) ) ) ) $=
        ( cc0 cfv c1 c2 cn wcel a1i vd vu cv cvma cmul csu clog cfz cprime cdif
        co csn cun c3 crepr cfn wss nnnn0d cn0 3nn0 ssid reprfi2 wn ssrab3 ssfi
        cin sylancl wa cr wf vmaf cfzo adantr simpr sseldi reprf c0ex fzo0to3tp
        eleqtrri ffvelrnd 1ex 2ex remulcld fsumrecl relogcld cle wbr w3a elfz1b
        nnrpd biimpri syl3anc sselda crp syl vmage0 reprle letrd lemul2ad nncnd
        recnd fsummulc2 cc sumeq2dv cop cmpt wral wceq sylib fveq1 opeq12d fvex
        adantl op1std fveq2d op2ndd oveq12d opex ad2antrr ffnd ad4ant13 adantlr
        cvv 3eqtr4d caddc cmin sumeq1d ad4antr reprsum fveq2 wne sumtp 3eqtr3rd
        3jca addcld addrsub mpbid ad3antrrr vex syldan cz ctp tpid1 tpid2 tpid3
        nnzd fzfi diffi ax-mp snfi unfi mp2an difss 2nn snssd unssd sstrd fzfid
        fz1ssnn relogcl logleb biimpa fsumle nnne0d logcld mulcomd eqtrd eqtr2d
        vmalelog syl21anc mulassd breqtrd nnge1d logge0d crn c1st c2nd cxp xpfi
        nnred syl2anc xp1st sseldd xp2nd mulge0d rabeq2i simprbi oddprm2 eleq2i
        sylnibr eldif sylibr wb uncom undif3 eqtri ssequn1 syl5eq eleq2d mpbird
        jca difeq1d opelxpd ralrimiva cbvmptv rnmptss fsumless wf1o rgenw fnmpt
        wi mp1i eqidd fvmpt2d fvmptd 3eqtr3d opth2 simpld simprd oveq2d 3pm3.2i
        wfn 0ne1 0ne2 1ne2 ad5antr w3o syl6eleq mpjao3dan eqfnfvd ex ralrimivva
        anasss dff1o6 fsumf1o fsummulc1 adantrl anassrs adantrr 3eqtrrd 3brtr3d
        eltp fsumxp ) ACNFUCZOZUDOZPVUDOZUDOZQVUDOZUDOZUEUKZUEUKZFUFZGUGOZCVUFV
[encoded data, 5680 characters]
        R $.

      $d F e n $.  $d N a c d e n $.  $d O a c d e n $.  $d ph a d e i j n u $.
      hgt750lema.f $e |- F = ( d e. { c e. ( NN ( repr ` 3 ) N ) | -. ( c ` a )
        e. ( O i^i Prime ) } |-> ( d o. if ( a = 0 , ( _I |` ( 0 ..^ 3 ) ) , (
        ( pmTrsp ` ( 0 ..^ 3 ) ) ` { a , 0 } ) ) ) ) $.
      $( An upper bound on the contribution of the non-prime terms in the
         Statement 7.50 of [Helfgott] p. 69.  (Contributed by Thierry Arnoux,
         1-Jan-2022.) $)
      hgt750lema $p |- ( ph -> sum_ n e. ( ( NN ( repr ` 3 ) N )
         \ ( ( O i^i Prime ) ( repr ` 3 ) N ) )
      ( ( Lam ` ( n ` 0 ) ) x. ( ( Lam ` ( n ` 1 ) ) x. ( Lam ` ( n ` 2 ) ) ) )
      <_ ( 3 x. sum_ n e. A ( ( Lam ` ( n ` 0 ) )
             x. ( ( Lam ` ( n ` 1 ) ) x. ( Lam ` ( n ` 2 ) ) ) ) ) ) $=
        ( cc0 cfv cn cvma a1i ve c3 cfzo co cv cprime cin wcel wn crepr crab c1
        ciun c2 cmul csu cdif cle cfn fzofi nnnn0d cn0 3nn0 ssid reprfi2 ssrab2
        wss ssfid adantr wa cr wf vmaf cz nn0zd ad2antrr simpr sseldi reprf ctp
        c0ex tpid1 fzo0to3tp eleqtrri ffvelrnd 1ex tpid2 2ex tpid3 remulcld wbr
        vmage0 syl mulge0d fsumiunle inss2 prmssnn sstri reprdifc sumeq1d chash
        eqid cc wceq sselda fsumrecl recnd fsumconst syl2anc fveq2d oveq12d cid
        fveq1 cres cpr cpmtr cif 3nn ralrimivw eleq1d notbid cbvrabv reprpmtf1o
        r19.21bi eqidd adantlr fsumf1o fveq2 fveq1d cbvsumv cvv ovexd pmtridf1o
        hgt750lemg sumeq2dv 3eqtrrd hashfzo0 ax-mp eqcomd 3eqtr4rd 3brtr4d ) AH
        PUBUCUDZHUEZIUEZQZGUFUGZUHZUIZIRFUBUJQZUDZUKZUMZPDUEZQZSQZULUUMQZSQZUNU
        UMQZSQZUOUDZUOUDZDUPUUBUUKUVADUPZHUPZUUJUUFFUUIUDUQZUVADUPUBCUVADUPZUOU
        DZURAHUUBUUKUVADUUBUSUHZAPUBUTTZAUUKUSUHUUCUUBUHZAUUJUUKARUBFAFLVAZUBVB
        UHZAVCTZRRVGZARVDZTZVEZUUKUUJVGAUUHIUUJVFZTVHVIZAUVIVJZUUMUUKUHZVJZUUOU
        UTUWARVKUUNSRVKSVLZUWAVMTZUWAUUBRPUUMUWARUUMUBFUVMUWAUVNTAFVNUHZUVIUVTA
        FUVJVOZVPUVKUWAVCTUWAUUKUUJUUMUVQUVSUVTVQZVRVSZPUUBUHZUWAPPULUNVTZUUBPU
        LUNWAWBWCWDZTZWEZWEZUWAUUQUUSUWARVKUUPSUWCUWAUUBRULUUMUWGULUUBUHZUWAULU
        WIUUBPULUNWFWGWCWDZTWEZWEZUWARVKUURSUWCUWAUUBRUNUUMUWGUNUUBUHZUWAUNUWIU
        UBPULUNWHWIWCWDZTWEZWEZWJZWJUWAUUOUUTUWMUXBUWAUUNRUHPUUOURWKUWLUUNWLWMU
        WAUUQUUSUWQUXAUWAUUPRUHPUUQURWKUWPUUPWLWMUWAUURRUHPUUSURWKUWTUURWLWMWNW
        NWOAUVDUULUVADAHRUUFUUKUBFIUUKXBUVOUUFRVGAUUFUFRGUFWPWQWRTUVJUVLWSWTAUU
        BPUUDQZUUFUHZUIZIUUJUKZUVADUPZHUPZUUBXAQZUXGUOUDZUVCUVFAUVGUXGXCUHUXHUX
        JXDUVHAUXGAUXFUVADAUUJUXFUVPUXFUUJVGAUXEIUUJVFTZVHAUUMUXFUHZVJZUUOUUTUX
        MRVKUUNSUWBUXMVMTZUXMUUBRPUUMUXMRUUMUBFUVMUXMUVNTAUWDUXLUWEVIUVKUXMVCTA
        UXFUUJUUMUXKXEVSZUWHUXMUWJTWEWEUXMUUQUUSUXMRVKUUPSUXNUXMUUBRULUUMUXOUWN
        UXMUWOTWEWEUXMRVKUURSUXNUXMUUBRUNUUMUXOUWRUXMUWSTWEWEWJWJZXFXGUUBUXGHXH
        XIAUUBUVBUXGHUVSUXGUUKPUAUEZEQZQZSQZULUXRQZSQZUNUXRQZSQZUOUDZUOUDZUAUPZ
        UUKPUUMEQZQZSQZULUYHQZSQZUNUYHQZSQZUOUDZUOUDZDUPZUVBUVSUXFUVAUUKUYFDUAE
        UXRUUMUXRXDZUUOUXTUUTUYEUOUYRUUNUXSSPUUMUXRXMXJUYRUUQUYBUUSUYDUOUYRUUPU
        YASULUUMUXRXMXJUYRUURUYCSUNUUMUXRXMXJXKXKUVRUVSRUUFUUKUBUUCPXDXLUUBXNUU
        CPXOUUBXPQQXQZEFUXFUUCJAUBRUHZHUUBAUYTHUUBUYTAXRTXSYDAUWDUVIUWEVIUVMUVS
        UVNTAUVIVQZUXEPJUEZQZUUFUHZUIIJUUJUUDVUBXDZUXDVUDVUEUXCVUCUUFPUUDVUBXMX
        TYAYBUUHUUCVUBQZUUFUHZUIIJUUJVUEUUGVUGVUEUUEVUFUUFUUCUUDVUBXMXTYAYBUYSX
        BZOYCUVSUXQUUKUHVJUXRYEUVSUXLVJUVAAUXLUVAVKUHUVIUXPYFXGYGUYGUYQXDUVSUUK
        UYFUYPUADUXQUUMXDZUXTUYJUYEUYOUOVUIUXSUYISVUIPUXRUYHUXQUUMEYHZYIXJVUIUY
        BUYLUYDUYNUOVUIUYAUYKSVUIULUXRUYHVUJYIXJVUIUYCUYMSVUIUNUXRUYHVUJYIXJXKX
        KYJTUVSUUKUYPUVADUWAUUKUYSESUUMJOUWAUUBUYSYKUUCPUWAPUBUCYLUVSUVIUVTVUAV
        IUWKVUHYMUWGUWCUWFYNYOYPYOAUBUXIUVEUXGUOAUXIUBUXIUBXDZAUVKVUKVCUBYQYRTY
        SACUXFUVADCUXFXDANTWTXKYTUUA $.
    $}

    $d H m $.  $d K m $.  $d N a c d e i j m n $.  $d O a c d e i j m n z $.
    $d a c e i j m n ph $.
    hgt750leme.0 $e |- ( ph -> ( ; 1 0 ^ ; 2 7 ) <_ N ) $.
    hgt750leme.h $e |- ( ph -> H : NN --> ( 0 [,) +oo ) ) $.
    hgt750leme.k $e |- ( ph -> K : NN --> ( 0 [,) +oo ) ) $.
    hgt750leme.1 $e |- ( ( ph /\ m e. NN ) ->
              ( K ` m ) <_ ( 1 . _ 0 _ 7 _ 9 _ 9 _ 5 5 ) ) $.
    hgt750leme.2 $e |- ( ( ph /\ m e. NN ) ->
              ( H ` m ) <_ ( 1 . _ 4 _ 1 4 ) ) $.
    $( An upper bound on the contribution of the non-prime terms in the
       Statement 7.50 of [Helfgott] p. 69.  (Contributed by Thierry Arnoux,
       29-Dec-2021.) $)
    hgt750leme $p |- ( ph ->
       sum_ n e. ( ( NN ( repr ` 3 ) N ) \ ( ( O i^i Prime ) ( repr ` 3 ) N ) )
       ( ( ( Lam ` ( n ` 0 ) ) x. ( H ` ( n ` 0 ) ) )
    x. ( ( ( Lam ` ( n ` 1 ) ) x. ( K ` ( n ` 1 ) ) )
      x. ( ( Lam ` ( n ` 2 ) ) x. ( K ` ( n ` 2 ) ) ) ) )
    <_ ( ( ( 7 . _ 3 _ 4 8 ) x. ( ( log ` N ) / ( sqrt ` N ) ) )
         x. ( N ^ 2 ) ) ) $=
      ( co cmul wcel a1i cr vd vc ve va vi vj cn c3 cfv cprime cdif cc0 cv cvma
      c1 c2 csu c7 c9 c5 cdp2 cdp cexp c4 wn crab c8 cdiv cfn cn0 wss diffi syl
      3nn0 wa wf cz adantr fzo0to3tp eleqtrri ffvelrnd rge0ssre sseldi remulcld
      vmaf reprf fsumrecl 3re crp 1nn0 0nn0 7nn0 9nn0 nnrp ax-mp rpdp2cl rpdpcl
      rpred resqcld wceq sselda 4re 8re pm3.2i dp2cl dpcl mp2an cle 0re 9re 5re
      1re wbr cdc 2re 10nn0 2nn0 nn0rei ltleii declei clt 2nn rpexpcld rpmulcld
      letrd lemul2d mpbid mulcld cchp c6 vmage0 fsumge0 remulcli oveq2d mulcomd
      recnd eqtrd mulassd eqtr4d oveq1d crepr cin clog nnnn0d ssid reprfi2 cfzo
      csqrt nnzd simpr eldifad ctp c0ex tpid1 cpnf cico 1ex tpid2 2ex tpid3 5nn
      5nn0 4nn0 4nn fveq1 eleq1d notbid cbvrabv ssrab3 ssfi sylancl nnrpd nnred
      relogcld rpge0d resqrtcld rpsqrtcld rpne0d redivcld hgt750lemf cres cpmtr
      7re cid cpr cif ccom cmpt nn0expcli numexp1 eqeltri 1nn 2lt9 breqtrri w3a
      deccl 1z nn0zi 3pm3.2i 1lt10 1lt9 leexp2 biimpa eqid hgt750lema sqcld 3cn
      2z mul12d breqtrd cfz csn cun fzfi snfi unfi fz1ssnn ssdifssd snssd unssd
      cc chpvalz chpf eqeltrrd hgt750lemb hgt750lemd fzfid hgt750lemc ltmul12ad
      3rp ltled 1lt2 ltletrd rplogcld resqcli hgt750lem2 rpdivcld lemul1d mpbii
      6re mul4d div32d divcld sqvald divassd divsqrtid 3eqtrd 3eqtrrd 3brtr4d )
[encoded data, 5280 characters]
      NYQAVWNVWQVWSAVWNWUQYPAVWQWVDYPXXIYRVUIYEYEYE $.
  $}

  ${
    $d H m n x $.  $d K m n x $.  $d N m n x z $.  $d O m n z $.
    $d ph m n x $.
    tgoldbachgtda.o $e |- O = { z e. ZZ | -. 2 || z } $.
    tgoldbachgtda.n $e |- ( ph -> N e. O ) $.
    tgoldbachgtda.0 $e |- ( ph -> ( ; 1 0 ^ ; 2 7 ) <_ N ) $.
    $( Lemma for ~ tgoldbachgtd .  (Contributed by Thierry Arnoux,
       15-Dec-2021.) $)
    tgoldbachgnn $p |- ( ph -> N e. NN ) $=
      ( cz wcel c1 cle wbr cn c2 cv cdvds cdc c7 cr a1i wn crab syl6eleq elrabi
      syl cc0 cexp 1red cn0 10nn0 nn0rei 2nn0 7nn0 deccl reexpcl mp2an zred 1re
      co 1lt10 ltleii expge1 mp3an letrd elnnz1 sylanbrc ) ACHIZJCKLCMIACNBOPLU
      AZBHUBZIVGACDVIFEUCVHBCHUDUEZAJJUFQZNRQZUGUSZCAUHVMSIZAVKSIZVLUIIZVNVKUJU
      KZNRULUMUNZVKVLUOUPTACVJUQJVMKLZAVOVPJVKKLVSVQVRJVKURVQUTVAVKVLVBVCTGVDCV
      EVF $.

    tgoldbachgtda.h $e |- ( ph -> H : NN --> ( 0 [,) +oo ) ) $.
    tgoldbachgtda.k $e |- ( ph -> K : NN --> ( 0 [,) +oo ) ) $.
    tgoldbachgtda.1 $e |- ( ( ph /\ m e. NN ) ->
              ( K ` m ) <_ ( 1 . _ 0 _ 7 _ 9 _ 9 _ 5 5 ) ) $.
    tgoldbachgtda.2 $e |- ( ( ph /\ m e. NN ) ->
              ( H ` m ) <_ ( 1 . _ 4 _ 1 4 ) ) $.
    tgoldbachgtda.3 $e |- ( ph ->
        ( ( 0 . _ 0 _ 0 _ 0 _ 4 _ 2 _ 2 _ 4 8 ) x. ( N ^ 2 ) )
      <_ S. ( 0 (,) 1 ) ( ( ( ( ( Lam oF x. H ) vts N ) ` x )
          x. ( ( ( ( Lam oF x. K ) vts N ) ` x ) ^ 2 ) )
          x. ( exp ` ( ( _i x. ( 2 x. _pi ) ) x. ( -u N x. x ) ) ) ) _d x ) $.
    $( Lemma for ~ tgoldbachgtd .  (Contributed by Thierry Arnoux,
       15-Dec-2021.) $)
    tgoldbachgtde $p |- ( ph ->
      0 < sum_ n e. ( ( O i^i Prime ) ( repr ` 3 ) N )
       ( ( ( Lam ` ( n ` 0 ) ) x. ( H ` ( n ` 0 ) ) )
    x. ( ( ( Lam ` ( n ` 1 ) ) x. ( K ` ( n ` 1 ) ) )
      x. ( ( Lam ` ( n ` 2 ) ) x. ( K ` ( n ` 2 ) ) ) ) ) ) $=
      ( cc0 cn co c3 crepr cfv cv cvma cmul c1 csu cprime cin cdif cmin clt wbr
      c2 c4 c8 cdp2 cdp cexp cfn wcel tgoldbachgnn nnnn0d cn0 3nn0 a1i wss ssid
      reprfi2 diffi syl cr difssd sselda wa wf vmaf cz nn0zd adantr simpr reprf
      cfzo ctp c0ex tpid1 fzo0to3tp eleqtrri ffvelrnd cpnf rge0ssre fss sylancl
      cico remulcld 1ex tpid2 2ex tpid3 syldan fsumrecl 0nn0 cq qssre 4nn0 2nn0
      nn0ssq 8nn0 sselii dpcl mp2an nnred resqcld c7 clog csqrt cdiv 7nn0 nnrpd
      dp2clq relogcld nn0ge0d resqrtcld sqrtgt0d gt0ne0d redivcld hgt750leme 2z
      rpexpcld cdc cle hgt750lem syl2anc ltmul1dd lelttrd cioo cvts recnd wceq
      cof ci cpi cneg citg circlemethhgt breqtrrd ltletrd posdifd mpbid prmssnn
      ce inss2 sstri reprss ssfid cc fsumcl c0 cun undif sylib eqcomd fsumsplit
      disjdif mvrraddd breqtrd ) ARSHUAUBUCZTZREUDZUCZUEUCZUVKFUCZUFTZUGUVJUCZU
      EUCZUVOGUCZUFTZUOUVJUCZUEUCZUVSGUCZUFTZUFTZUFTZEUHZUVIIUIUJZHUVHTZUKZUWDE
      UHZULTZUWGUWDEUHZUMAUWIUWEUMUNRUWJUMUNAUWIRRRRUPUOUOUPUQURZURZURZURZURZUR
      ZURZUSTZHUOUTTZUFTZUWEAUWHUWDEAUVIVAVBUWHVAVBASUAHAHACHIJKLVCZVDZUAVEVBZA
      VFVGZSSVHZASVIZVGZVJZUVIUWGVKVLAUVJUWHVBUVJUVIVBZUWDVMVBAUWHUVIUVJAUVIUWG
      VNVOAUXJVPZUVNUWCUXKUVLUVMUXKSVMUVKUESVMUEVQUXKVRVGZUXKRUAWDTZSRUVJUXKSUV
      JUAHUXFUXKUXGVGAHVSVBUXJAHUXCVTZWAUXDUXKVFVGAUXJWBWCZRUXMVBUXKRRUGUOWEZUX
      MRUGUOWFWGWHWIVGWJZWJUXKSVMUVKFASVMFVQZUXJASRWKWOTZFVQUXSVMVHZUXRMWLSUXSV
      MFWMWNZWAUXQWJWPUXKUVRUWBUXKUVPUVQUXKSVMUVOUEUXLUXKUXMSUGUVJUXOUGUXMVBUXK
      UGUXPUXMRUGUOWQWRWHWIVGWJZWJUXKSVMUVOGASVMGVQZUXJASUXSGVQUXTUYCNWLSUXSVMG
      WMWNZWAZUYBWJWPUXKUVTUWAUXKSVMUVSUEUXLUXKUXMSUOUVJUXOUOUXMVBUXKUOUXPUXMRU
      GUOWSWTWHWIVGWJZWJUXKSVMUVSGUYEUYFWJWPWPWPZXAXBZAUWSUWTUWSVMVBZARVEVBUWRV
      MVBUYIXCXDVMUWRXERUWQXCRUWPXCRUWOXCUPUWNXFUOUWMXGUOUWLXGUPUQXFVEXDUQXHXIX
      JYAZYAYAYAYAYAYAXJRUWRXKXLVGZAHAHUXBXMZXNZWPZAUVIUWDEUXIUYGXBZAUWIXOUAUWL
      URZUSTZHXPUCZHXQUCZXRTZUFTZUWTUFTUXAUYHAVUAUWTAUYQUYTUYQVMVBZAXOVEVBUYPVM
      VBVUBXSXDVMUYPXEUAUWLVFUYJYAXJXOUYPXKXLVGAUYRUYSAHAHUXBXTZYBAHUYLAHUXCYCY
      DAUYSAHVUCYEYFYGWPZUYMWPUYNACDEFGHIJUXBLMNOPYHAVUAUWSUWTVUDUYKAHUOVUCUOVS
      VBAYIVGYJAHVEVBUGRYKUOXOYKUTTHYLUNVUAUWSUMUNUXCLHYMYNYOYPAUXABRUGYQTBUDZU
      EFUFUUAZTHYRTUCVUEUEGVUFTHYRTUCUOUTTUFTUUBUOUUCUFTUFTHUUDVUEUFTUFTUULUCUF
      TUUEUWEYLQABEFGHUYAUYDUXCUUFUUGUUHAUWIUWEUYHUYOUUIUUJAUWEUWKUWIAUWGUWDEAU
      VIUWGUXIASUWFUAHUXHUXNUXEUWFSVHAUWFUISIUIUUMUUKUUNVGUUOZUUPAUVJUWGVBUXJUW
      DUUQVBAUWGUVIUVJVUGVOUXKUWDUYGYSZXAUURAUWIUYHYSAUWGUWHUWDUVIEUWGUWHUJUUSY
      TAUWGUVIUVEVGAUWGUWHUUTZUVIAUWGUVIVHVUIUVIYTVUGUWGUVIUVAUVBUVCUXIVUHUVDUV
      FUVG $.

    $( Lemma for ~ tgoldbachgtd .  (Contributed by Thierry Arnoux,
       15-Dec-2021.) $)
    tgoldbachgtda $p |- ( ph
      -> 0 < ( # ` ( ( O i^i Prime ) ( repr ` 3 ) N ) ) ) $=
      ( vn cfv co cc0 cprime cin c3 crepr chash cn wcel clt wbr c0 tgoldbachgnn
      cfn wne nnnn0d cn0 3nn0 a1i inss2 prmssnn sstri reprfi2 wceq cv cvma cmul
      wss c1 c2 tgoldbachgtde gt0ne0d neneqd wa simpr sumeq1d sum0 syl6eq mtand
      csu neqned hashnncl biimpar syl2anc nngt0 syl ) AHUAUBZGUCUDRSZUERZUFUGZT
      WGUHUIAWFULUGZWFUJUMZWHAWEUCGAGACGHIJKUKUNUCUOUGAUPUQWEUFVFAWEUAUFHUAURUS
      UTUQVAAWFUJAWFUJVBZWFTQVCZRZVDRWMERVESVGWLRZVDRWNFRVESVHWLRZVDRWOFRVESVES
      VESZQVRZTVBAWQTAWQABCDQEFGHIJKLMNOPVIVJVKAWKVLZWQUJWPQVRTWRWFUJWPQAWKVMVN
      WPQVOVPVQVSWIWHWJWFVTWAWBWGWCWD $.
  $}

  ${
    $d N h k m n x y z $.  $d O h k m n z $.  $d h k m n x y ph $.
    tgoldbachgtd.o $e |- O = { z e. ZZ | -. 2 || z } $.
    tgoldbachgtd.n $e |- ( ph -> N e. O ) $.
    tgoldbachgtd.1 $e |- ( ph -> ( ; 1 0 ^ ; 2 7 ) <_ N ) $.
    $( Odd integers greater than ` ( ; 1 0 ^ ; 2 7 ) ` have at least a
       representation as a sum of three odd primes.  Final statement in section
       7.4 of [Helfgott] p. 70 (Contributed by Thierry Arnoux, 15-Dec-2021.) $)
    tgoldbachgtd $p |- ( ph -> 0 < ( # ` ( ( O i^i Prime ) ( repr ` 3 ) N ) ) )
      $=
      ( vm vn cv cfv c1 cc0 cdp2 co cle wbr cn c2 cmul vk vh vx vy c7 c9 c5 cdp
      wral c4 c8 cexp cioo cvma cof cvts ci cpi cneg ce w3a cprime cin c3 crepr
      citg chash clt cpnf cico cmap wcel ad3antrrr cdc elmapi ad3antlr ad2antlr
      wa wf simpr1 wceq fveq2 breq1d cbvralv sylib simpr2 simpr3 oveq1d oveq12d
      r19.21bi oveq2d fveq2d cbvitgv syl6breq tgoldbachgtda hgt749d r19.29vva
      oveq2 ) AHJZUAJZKZLMUEUFUFUGUGNNNNNUHOZPQZHRUIZWSUBJZKZLUJLUJNNUHOZPQZHRU
      IZMMMMUJSSUJUKNNNNNNNUHOCSULOTOZUCMLUMOZUCJZUNXETUOZOCUPOZKZXLUNWTXMOCUPO
      ZKZSULOZTOZUQSURTOTOZCUSZXLTOZTOZUTKZTOZVFZPQZVAZMDVBVCCVDVEKOVGKVHQUBUAM
      VIVJOZRVKOZYJAXEYJVLZVRZWTYJVLZVRZYHVRZUDBIXEWTCDEACDVLYKYMYHFVMALMVNSUEV
      NULOCPQYKYMYHGVMYKRYIXEVSAYMYHXEYIRVOVPYMRYIWTVSYLYHWTYIRVOVQYOIJZWTKZXBP
      QZIRYOXDYRIRUIYNXDXIYGVTXCYRHIRWSYPWAZXAYQXBPWSYPWTWBWCWDWEWJYOYPXEKZXGPQ
      ZIRYOXIUUAIRUIYNXDXIYGWFXHUUAHIRYSXFYTXGPWSYPXEWBWCWDWEWJYOXJYFUDXKUDJZXN
      KZUUBXPKZSULOZTOZXTYAUUBTOZTOZUTKZTOZVFPYNXDXIYGWGUCUDXKYEUUJXLUUBWAZXSUU
      FYDUUITUUKXOUUCXRUUETXLUUBXNWBUUKXQUUDSULXLUUBXPWBWHWIUUKYCUUHUTUUKYBUUGX
      TTXLUUBYATWRWKWLWIWMWNWOAUCBUBUAHCDEFGWPWQ $.
  $}

  ${
    $d G m $.  $d O c i m p q r z $.  $d c i m n p q r z $.
    tgoldbachgt.o $e |- O = { z e. ZZ | -. 2 || z } $.
    tgoldbachgt.g $e |- G = { z e. O | E. p e. Prime E. q e. Prime
                           E. r e. Prime ( ( p e. O /\ q e. O /\ r e. O )
                                           /\ z = ( ( p + q ) + r ) ) } $.
    $( Odd integers greater than ` ( ; 1 0 ^ ; 2 7 ) ` have at least a
       representation as a sum of three odd primes.  Final statement in section
       7.4 of [Helfgott] p. 70 , expressed using the set ` G ` of odd numbers
       which can be written as a sum of three odd primes.  (Contributed by
       Thierry Arnoux, 22-Dec-2021.) $)
    tgoldbachgt $p |- E. m e. NN ( m <_ ( ; 1 0 ^ ; 2 7 )
                          /\ A. n e. O ( m < n -> n e. G ) ) $=
      ( vc c1 cc0 c2 wcel wa caddc wceq cprime a1i vi cdc c7 cexp co cn cle wbr
      cv clt wral wrex cn0 10nn 2nn0 7nn0 deccl nnexpcl mp2an nnrei leidi simpl
      wi w3a wtru cin c3 crepr cfv cfzo wss inss2 prmssnn sstri cz cdvds eleq2i
      crab elrabi sylbi ad2antrr 3nn0 simpr reprf c0ex tpid1 fzo0to3tp eleqtrri
      wn ctp ffvelrnd elin2d 1ex tpid2 2ex tpid3 elin1d csu sumeq1d reprsum cvv
      3jca fveq2 cc sseldi nncnd wne 0ne1 0ne2 1ne2 sumtp 3eqtr3d eleq1 3anbi1d
      oveq1 oveq1d eqeq2d anbi12d 3anbi2d oveq2 3anbi3d rspc3ev syl31anc adantr
      jca wex c0 chash nnred cr zred ltled tgoldbachgtd wb ovex hashneq0 sylibr
      sylib rexbidv breq1 ax-mp neneqd neq0 jctil 19.42v exancom df-rex r19.29a
      tru eqeq1 anbi2d elrab3 syl5bb biimpar syl2anc rgen pm3.2i imbi1d ralbidv
      ex rspcev ) LMUBZNUCUBZUDUEZUFOZUVDUVDUGUHZUVDCUIZUJUHZUVGDOZVCZCEUKZPZBU
      IZUVDUGUHZUVMUVGUJUHZUVIVCZCEUKZPZBUFULUVBUFOUVCUMOUVEUNNUCUOUPUQUVBUVCUR
      USZUVFUVKUVDUVDUVSUTVAUVJCEUVGEOZUVHUVIUVTUVHPZUVTHUIZEOZGUIZEOZFUIZEOZVD
      ZUVGUWBUWDQUEZUWFQUEZRZPZFSULZGSULZHSULZUVIUVTUVHVBZUWAVEUWOKESVFZUVGVGVH
      VIZUEZUWAKUIZUWSOZPZUWOVEUXBMUWTVIZSOLUWTVIZSONUWTVIZSOUXCEOZUXDEOZUXEEOZ
      VDZUVGUXCUXDQUEZUXEQUEZRZPZUWOUXBESUXCUXBMVGVJUEZUWQMUWTUXBUWQUWTVGUVGUWQ
      UFVKUXBUWQSUFESVLVMVNZTZUVTUVGVOOZUVHUXAUVTUVGNAUIZVPUHWIZAVOVRZOUXQEUXTU
      VGIVQUXSAUVGVOVSVTZWAZVGUMOUXBWBTZUWAUXAWCZWDZMUXNOUXBMMLNWJZUXNMLNWEWFWG
      WHTWKZWLUXBESUXDUXBUXNUWQLUWTUYELUXNOUXBLUYFUXNMLNWMWNWGWHTWKZWLUXBESUXEU
      XBUXNUWQNUWTUYENUXNOUXBNUYFUXNMLNWOWPWGWHTWKZWLUXBUXIUXLUXBUXFUXGUXHUXBES
      UXCUYGWQUXBESUXDUYHWQUXBESUXEUYIWQXBUXBUXNUAUIZUWTVIZUAWRUYFUYKUAWRUVGUXK
      UXBUXNUYFUYKUAUXNUYFRUXBWGTWSUXBUWQUWTVGUVGUAUXPUYBUYCUYDWTUXBMLNUYKUAUXC
      UXDUXEXAXAXAUYJMUWTXCUYJLUWTXCUYJNUWTXCUXBUXCXDOUXDXDOUXEXDOUXBUXCUXBUWQU
      FUXCUXOUYGXEXFUXBUXDUXBUWQUFUXDUXOUYHXEXFUXBUXEUXBUWQUFUXEUXOUYIXEXFXBUXB
      MXAOZLXAOZNXAOZUYLUXBWETUYMUXBWMTUYNUXBWOTXBMLXGUXBXHTMNXGUXBXITLNXGUXBXJ
      TXKXLYEUWLUXMUXFUWEUWGVDZUVGUXCUWDQUEZUWFQUEZRZPUXFUXGUWGVDZUVGUXJUWFQUEZ
      RZPHGFUXCUXDUXESSSUWBUXCRZUWHUYOUWKUYRVUBUWCUXFUWEUWGUWBUXCEXMXNVUBUWJUYQ
      UVGVUBUWIUYPUWFQUWBUXCUWDQXOXPXQXRUWDUXDRZUYOUYSUYRVUAVUCUWEUXGUXFUWGUWDU
      XDEXMXSVUCUYQUYTUVGVUCUYPUXJUWFQUWDUXDUXCQXTXPXQXRUWFUXERZUYSUXIVUAUXLVUD
      UWGUXHUXFUXGUWFUXEEXMYAVUDUYTUXKUVGUWFUXEUXJQXTXQXRYBYCYDUWAUXAVEPKYFZVEK
      UWSULUWAVEUXAPKYFZVUEUWAVEUXAKYFZPVUFUWAVUGVEUWAUWSYGRWIVUGUWAUWSYGUWAMUW
      SYHVIUJUHZUWSYGXGZUWAAUVGEIUWPUWAUVDUVGUWAUVDUVEUWAUVSTYIUVTUVGYJOUVHUVTU
      VGUYAYKYDUVTUVHWCYLYMUWSXAOVUHVUIYNUWQUVGUWRYOUWSXAYPUUAYRUUBKUWSUUCYRUUI
      UUDVEUXAKUUEYQVEUXAKUUFYRVEKUWSUUGYQUUHUVTUVIUWOUVIUVGUWHUXRUWJRZPZFSULZG
      SULZHSULZAEVRZOUVTUWODVUOUVGJVQVUNUWOAUVGEUXRUVGRZVUMUWNHSVUPVULUWMGSVUPV
      UKUWLFSVUPVUJUWKUWHUXRUVGUWJUUJUUKYSYSYSUULUUMUUNUUOUUTUUPUUQUVRUVLBUVDUF
      UVMUVDRZUVNUVFUVQUVKUVMUVDUVDUGYTVUQUVPUVJCEVUQUVOUVHUVIUVMUVDUVGUJYTUURU
      USXRUVAUS $.
  $}


$( Begin $[ set-mbox-ta-geom.mm $] $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Elementary Geometry
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Two-dimension geometry
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
This definition has been superseded by ` TarskiGDim>= ` and is no longer needed
in the main part of set.mm. It is only kept here for reference.
$)

  $c TarskiG2D $.
  $( Extends class notation with the class of geometries fulfilling the
     planarity axioms. $)
  cstrkg2d $a class TarskiG2D $.

  ${
    $d d f i p u v x y z $.
    $( Define the class of geometries fulfilling the lower dimension axiom,
       Axiom A8 of [Schwabhauser] p. 12, and the upper dimension axiom, Axiom
       A9 of [Schwabhauser] p. 13, for dimension 2.  (Contributed by Thierry
       Arnoux, 14-Mar-2019.)  (New usage is discouraged.) $)
    df-trkg2d $a |- TarskiG2D = { f | [. ( Base ` f ) / p ].
          [. ( dist ` f ) / d ]. [. ( Itv ` f ) / i ].
          ( E. x e. p E. y e. p E. z e. p
            -. ( z e. ( x i y ) \/ x e. ( z i y ) \/ y e. ( x i z ) )
         /\ A. x e. p A. y e. p A. z e. p A. u e. p A. v e. p ( (
    ( ( x d u ) = ( x d v ) /\ ( y d u ) = ( y d v ) /\ ( z d u ) = ( z d v ) )
       /\ u =/= v ) -> ( z e. ( x i y ) \/ x e. ( z i y ) \/ y e. ( x i z ) ) )
      ) } $.
  $}

  ${
    $d .- d f i p u v x y z $.  $d G d f i p $.  $d I d f i p u v x y z $.
    $d P d f i p u v x y z $.
    istrkg2d.p $e |- P = ( Base ` G ) $.
    istrkg2d.d $e |- .- = ( dist ` G ) $.
    istrkg2d.i $e |- I = ( Itv ` G ) $.
    $( Property of fulfilling dimension 2 axiom.  (Contributed by Thierry
       Arnoux, 29-May-2019.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    istrkg2d $p |- ( G e. TarskiG2D <-> ( G e. _V /\
      ( E. x e. P E. y e. P E. z e. P
            -. ( z e. ( x I y ) \/ x e. ( z I y ) \/ y e. ( x I z ) )
         /\ A. x e. P A. y e. P A. z e. P A. u e. P A. v e. P ( ( ( ( x .- u )
         = ( x .- v ) /\ ( y .- u ) = ( y .- v ) /\ ( z .- u ) = ( z .- v ) )
       /\ u =/= v ) -> ( z e. ( x I y ) \/ x e. ( z I y ) \/ y e. ( x I z ) ) )
      ) ) ) $=
      ( cv co wcel wrex wceq wral oveqd raleqbidv vi vp vd vf w3o wn w3a wne wa
      citv cfv wsbc cds cbs cstrkg2d simp1 eqcomd simp3 eleq2d 3orbi123d notbid
      rexeqbidv simp2 eqeq12d 3anbi123d anbi1d imbi12d anbi12d df-trkg2d elab4g
      wi sbcie3s ) CMZAMZBMZUAMZNZOZVNVMVOVPNZOZVOVNVMVPNZOZUEZUFZCUBMZPZBWEPZA
      WEPZVNEMZUCMZNZVNDMZWJNZQZVOWIWJNZVOWLWJNZQZVMWIWJNZVMWLWJNZQZUGZWIWLUHZU
      IZWCVKZDWERZEWERZCWERZBWERZAWERZUIZUAUDMZUJUKULUCXKUMUKULUBXKUNUKULVMVNVO
      HNZOZVNVMVOHNZOZVOVNVMHNZOZUEZUFZCFPZBFPZAFPZVNWIINZVNWLINZQZVOWIINZVOWLI
      NZQZVMWIINZVMWLINZQZUGZXBUIZXRVKZDFRZEFRZCFRZBFRZAFRZUIZUDGUOYTXJUDFIHUNU
      MUJGUBUCUAJKLWEFQZWJIQZVPHQZUGZYBWHYSXIUUDYAWGAFWEUUDWEFUUAUUBUUCUPUQZUUD
      XTWFBFWEUUEUUDXSWDCFWEUUEUUDXRWCUUDXMVRXOVTXQWBUUDXLVQVMUUDHVPVNVOUUDVPHU
      UAUUBUUCURUQZSUSUUDXNVSVNUUDHVPVMVOUUFSUSUUDXPWAVOUUDHVPVNVMUUFSUSUTZVAVB
      VBVBUUDYRXHAFWEUUEUUDYQXGBFWEUUEUUDYPXFCFWEUUEUUDYOXEEFWEUUEUUDYNXDDFWEUU
      EUUDYMXCXRWCUUDYLXAXBUUDYEWNYHWQYKWTUUDYCWKYDWMUUDIWJVNWIUUDWJIUUAUUBUUCV
      CUQZSUUDIWJVNWLUUHSVDUUDYFWOYGWPUUDIWJVOWIUUHSUUDIWJVOWLUUHSVDUUDYIWRYJWS
      UUDIWJVMWIUUHSUUDIWJVMWLUUHSVDVEVFUUGVGTTTTTVHVLABCDEUDUAUBUCVIVJ $.

    ${
      axtglowdim2OLD.g $e |- ( ph -> G e. TarskiG2D ) $.
      $( Lower dimension axiom for dimension 2, Axiom A8 of [Schwabhauser]
         p. 13.  There exist 3 non-colinear points.  (Contributed by Thierry
         Arnoux, 29-May-2019.)  (New usage is discouraged.)
         (Proof modification is discouraged.) $)
      axtglowdim2OLD $p |- ( ph -> E. x e. P E. y e. P E. z e. P
            -. ( z e. ( x I y ) \/ x e. ( z I y ) \/ y e. ( x I z ) ) ) $=
        ( vu vv cv co wcel wrex wceq wral w3o wn w3a wa cstrkg2d istrkg2d sylib
        wne wi cvv simprd simpld ) ADOZBOZCOZGPQUNUMUOGPQUOUNUMGPQUAZUBDERCERBE
        RZUNMOZHPUNNOZHPSUOURHPUOUSHPSUMURHPUMUSHPSUCURUSUHUDUPUINETMETDETCETBE
        TZAFUJQZUQUTUDZAFUEQVAVBUDLBCDNMEFGHIJKUFUGUKUL $.
    $}

    ${
      $d u v x y z .- $.  $d u v x y z I $.  $d u v x y z P $.  $d u v z Z $.
      $d u v x y z X $.  $d u v y z Y $.  $d u v x y z U $.  $d v x y z V $.
      axtgupdim2OLD.x $e |- ( ph -> X e. P ) $.
      axtgupdim2OLD.y $e |- ( ph -> Y e. P ) $.
      axtgupdim2OLD.z $e |- ( ph -> Z e. P ) $.
      axtgupdim2OLD.u $e |- ( ph -> U e. P ) $.
      axtgupdim2OLD.v $e |- ( ph -> V e. P ) $.
      axtgupdim2OLD.0 $e |- ( ph -> U =/= V ) $.
      axtgupdim2OLD.1 $e |- ( ph -> ( X .- U ) = ( X .- V ) ) $.
      axtgupdim2OLD.2 $e |- ( ph -> ( Y .- U ) = ( Y .- V ) ) $.
      axtgupdim2OLD.3 $e |- ( ph -> ( Z .- U ) = ( Z .- V ) ) $.
      axtgupdim2OLD.g $e |- ( ph -> G e. TarskiG2D ) $.
      $( Upper dimension axiom for dimension 2, Axiom A9 of [Schwabhauser]
         p. 13.  (Contributed by Thierry Arnoux, 29-May-2019.)
         (New usage is discouraged.)  (Proof modification is discouraged.) $)
      axtgupdim2OLD $p |- ( ph ->
        ( Z e. ( X I Y ) \/ X e. ( Z I Y ) \/ Y e. ( X I Z ) ) ) $=
        ( vu vv vx vy vz co wceq w3a wne wcel w3o 3jca cv wa wi cvv wn cstrkg2d
        wral wrex istrkg2d sylib simprrd oveq1 eqeq12d 3anbi1d anbi1d 3orbi123d
        eleq2d eleq1 imbi12d 2ralbidv 3anbi2d 3anbi3d rspc3v syl3anc mpd eqeq1d
        oveq2 3anbi123d neeq1 anbi12d imbi1d eqeq2d neeq2 rspc2v syl2anc mp2and
        ) AHCFUIZHGFUIZUJZICFUIZIGFUIZUJZJCFUIZJGFUIZUJZUKZCGULZJHIEUIZUMZHJIEU
        IZUMZIHJEUIZUMZUNZAWNWQWTTUAUBUOSAHUDUPZFUIZHUEUPZFUIZUJZIXJFUIZIXLFUIZ
        UJZJXJFUIZJXLFUIZUJZUKZXJXLULZUQZXIURZUEBVBUDBVBZXAXBUQZXIURZAUFUPZXJFU
        IZYHXLFUIZUJZUGUPZXJFUIZYLXLFUIZUJZUHUPZXJFUIZYPXLFUIZUJZUKZYBUQZYPYHYL
        EUIZUMZYHYPYLEUIZUMZYLYHYPEUIZUMZUNZURZUEBVBUDBVBZUHBVBUGBVBUFBVBZYEADU
        SUMZUUHUTUHBVCUGBVCUFBVCZUUKADVAUMUULUUMUUKUQUQUCUFUGUHUEUDBDEFKLMVDVEV
        FAHBUMIBUMJBUMUUKYEURNOPUUJYEXNYOYSUKZYBUQZYPHYLEUIZUMZHUUDUMZYLHYPEUIZ
        UMZUNZURZUEBVBUDBVBXNXQYSUKZYBUQZYPXCUMZHYPIEUIZUMZIUUSUMZUNZURZUEBVBUD
        BVBUFUGUHHIJBBBYHHUJZUUIUVBUDUEBBUVKUUAUUOUUHUVAUVKYTUUNYBUVKYKXNYOYSUV
        KYIXKYJXMYHHXJFVGYHHXLFVGVHVIVJUVKUUCUUQUUEUURUUGUUTUVKUUBUUPYPYHHYLEVG
        VLYHHUUDVMUVKUUFUUSYLYHHYPEVGVLVKVNVOYLIUJZUVBUVJUDUEBBUVLUUOUVDUVAUVIU
        VLUUNUVCYBUVLYOXQXNYSUVLYMXOYNXPYLIXJFVGYLIXLFVGVHVPVJUVLUUQUVEUURUVGUU
        TUVHUVLUUPXCYPYLIHEWBVLUVLUUDUVFHYLIYPEWBVLYLIUUSVMVKVNVOYPJUJZUVJYDUDU
        EBBUVMUVDYCUVIXIUVMUVCYAYBUVMYSXTXNXQUVMYQXRYRXSYPJXJFVGYPJXLFVGVHVQVJU
        VMUVEXDUVGXFUVHXHYPJXCVMUVMUVFXEHYPJIEVGVLUVMUUSXGIYPJHEWBVLVKVNVOVRVSV
        TACBUMGBUMYEYGURQRYDYGWLXMUJZWOXPUJZWRXSUJZUKZCXLULZUQZXIURUDUECGBBXJCU
        JZYCUVSXIUVTYAUVQYBUVRUVTXNUVNXQUVOXTUVPUVTXKWLXMXJCHFWBWAUVTXOWOXPXJCI
        FWBWAUVTXRWRXSXJCJFWBWAWCXJCXLWDWEWFXLGUJZUVSYFXIUWAUVQXAUVRXBUWAUVNWNU
        VOWQUVPWTUWAXMWMWLXLGHFWBWGUWAXPWPWOXLGIFWBWGUWAXSWSWRXLGJFWBWGWCXLGCWH
        WEWFWIWJVTWK $.
    $}
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Morley's Miracle
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

$(
  @{
    morley.s @e |- S = ( Base ` G ) @.
    morley.l @e |- L = ( LineG ` G ) @.
    morley.e @e |- .~ = ( cgrA ` G ) @.
    morley.g @e |- ( ph -> G e. TarskiG ) @.
    morley.a @e |- ( ph -> A e. S ) @.
    morley.b @e |- ( ph -> B e. S ) @.
    morley.c @e |- ( ph -> C e. S ) @.
    morley.p @e |- ( ph -> P e. S ) @.
    morley.q @e |- ( ph -> Q e. S ) @.
    morley.r @e |- ( ph -> R e. S ) @.
    morley.0 @e |- ( ph -> -. ( C e. ( A L B ) \/ A = B ) ) @.
    morley.1 @e |- ( ph -> <" C A Q "> .~ <" Q A R "> ) @.
    morley.2 @e |- ( ph -> <" R A B "> .~ <" Q A R "> ) @.
    morley.3 @e |- ( ph -> <" A B R "> .~ <" R B P "> ) @.
    morley.4 @e |- ( ph -> <" P B C "> .~ <" R B P "> ) @.
    morley.5 @e |- ( ph -> <" B C P "> .~ <" P C Q "> ) @.
    morley.6 @e |- ( ph -> <" Q C A "> .~ <" P C Q "> ) @.
    @( Lemma for * morley .  (Contributed by Thierry Arnoux, 5-Oct-2020.) @)
    morleylemrneab @p |- ( ph -> -. R e. ( A L B ) ) @=
      ? @.

    @( Lemma for * morley .  (Contributed by Thierry Arnoux, 5-Oct-2020.) @)
    morleylemrnea @p |- ( ph -> R =/= A ) @=
      ( wceq co wcel wa simpr citv cfv eqid wo wn pm2.46 syl neqned tglinerflx1
      adantr eqeltrd morleylemrneab pm2.65da ) AHBAHBUIZHBCKUJZUKZAVGULHBVHAVGU
      MABVHUKVGAIBCJJUNUOZKLVJUPMOPQABCADVHUKZBCUIZUQURVLURUBVKVLUSUTVAVBVCVDAV
      IURVGABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHVEVCVFVA @.

    @( Lemma for * morley .  (Contributed by Thierry Arnoux, 5-Oct-2020.) @)
    morleylemrneb @p |- ( ph -> R =/= B ) @=
      ( wceq co wcel wa simpr citv cfv eqid wo wn pm2.46 syl neqned tglinerflx2
      adantr eqeltrd morleylemrneab pm2.65da ) AHCAHCUIZHBCKUJZUKZAVGULHCVHAVGU
      MACVHUKVGAIBCJJUNUOZKLVJUPMOPQABCADVHUKZBCUIZUQURVLURUBVKVLUSUTVAVBVCVDAV
      IURVGABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHVEVCVFVA @.

    @{
      morleylem2.i @e |- I = ( Itv ` G ) @.
      morleylem2.m @e |- M = ( ( ( lInvG ` G ) ` ( R L B ) ) ` P ) @.
      morleylem2.n @e |- N = ( ( ( lInvG ` G ) ` ( R L A ) ) ` Q ) @.
      @( @)
      morleylemmaib @p |- ( ph -> M e. ( A I B ) ) @=
        ? @.

      @( Lemma for * morley @)
      morleylemanen @p |- ( ph -> A =/= N ) @=
        ? @.

      @( The  @)
      morleylem2 @p |- ( ph -> <" B N R "> .~ <" A M R "> ) @=
        ? @.

      morleylem1.d @e |- .- = ( dist ` G ) @.
      @( Two of Morley's triangle sides are of same length.  (Contributed by
         Thierry Arnoux, 5-Oct-2020.) @)
      morleylem1 @p |- ( ph -> ( P .- R ) = ( Q .- R ) ) @=
        ( co wceq wa simpr oveq1d eqcomd wne cstrkg wcel adantr clmi cfv eqcomi
        a1i ncoltgdim2 eqid morleylemrnea tgelrnln lmicl eqeltrrd morleylemrneb
        wn wo morleylemrneab crn morleylemmaib chlg ccgra cs3 morleylem2 breqdi
        cgrane3 tgbtwnne btwnlng1 cgraswaplr tgbtwncom tglinethru eleq2d notbid
        ncolcom mpbird neneqd jca sylibr ncolrot1 ad2antrr morleylemanen necomd
        ioran wbr sacgr cgracom btwnhl1 cgrahl2 tgbtwnexch3 cgrane4 tgbtwnconn3
        mpjaodan isoas tgcgrcomlr pm2.61dane lmiiso tglinerflx1 lmicinv oveq12d
        eqtr3d 3eqtr4rd ) AOHNUQZMHNUQZFHNUQZEHNUQZAYDYEURMOAMOURZUSZYEYDYIMOHN
        AYHUTVAVBAMOVCZUSZHOHMIJKNPUPUMAJVDVEZYJSVFZAHIVEZYJUEVFZAOIVEZYJAFHBLU
        QZJVGVHZVHZVHZOIYTOURAOYTUOVIVJZAFYQIJKLYSNPUPUMSAIJKLBCDPQUMSTUAUBUFVK
        ZYSVLZQAIJKLHBPUMQSUETABCDEFGHIJLPQRSTUAUBUCUDUEUFUGUHUIUJUKULVMZVNZUDV
        OVPZVFZYOAMIVEZYJAEHCLUQZYRVHZVHZMIUUKMURAMUUKUNVIVJZAEUUIIJKLUUJNPUPUM
        SUUBUUJVLZQAIJKLHCPUMQSUEUAABCDEFGHIJLPQRSTUAUBUCUDUEUFUGUHUIUJUKULVQZV
        NZUCVOVPZVFZYKHOMIJKLNPUPUMQYMYOUUGUUQYKIJKLOHMPQUMYMUUGYOUUQYKIJKLMOHP
        QUMYMUUQUUGYOYKHMOLUQZVEZVRZYHVRZUSUUSYHVSVRYKUUTUVAYKUUTHBCLUQZVEZVRZA
        UVDYJABCDEFGHIJLPQRSTUAUBUCUDUEUFUGUHUIUJUKULVTVFYKUUSUVCYKUURUVBHYKUVB
        UURYKUVBIMOJKLPUMQYMUUQUUGAYJUTZUVEAUVBLWAVEYJAIJKLBCPUMQSTUAABMCIJKNPU
        PUMSTUUPUAABCDEFGHIJKLMOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOWBZACOHBIMHJ
        KJWCVHZPUMUVGVLZSUAUUFUETUUPUEAGJWDVHZCOHWEBMHWEGUVIURARVJZABCDEFGHIJKL
        MOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOWFWGZWHZWIZVNVFAMUVBVEYJAIJKLBCMPU
        MQSTUAUUPUVMUVFWJVFAOUVBVEYJAIJKLBCOPUMQSTUAUUFUVMACOBIJKNPUPUMSUAUUFTA
        CBDFEUVIHIJKLOMPQUVIVLZSUATUBUDUCUEAIJKLBCDPQUMSTUAUBUFWPZAECDHICEJKNPU
        MUPSUCUAUBUEUAUCAGUVIECDWEHCEWEZUVJUJWGWKZABCHHICEJKNPUMUPSTUAUEUEUAUCA
        GUVIBCHWEUVPUVJUIWGWKZAHBCFIBHJKNPUMUPSUETUAUDTUEAGUVIHBCWEFBHWEZUVJUHW
        GWKZADBFFIBHJKNPUMUPSUBTUDUDTUEAGUVIDBFWEUVSUVJUGWGWKZAFDBEIDFJKNPUMUPS
        UDUBTUCUBUDAGUVIFDBWEEDFWEZUVJULWGWKZACDEEIDFJKNPUMUPSUAUBUCUCUBUDAGUVI
        CDEWEUWBUVJUKWGWKZUMUOUNWBZWLZWJVFWMVBWNWOWQYKMOUVEWRWSUUSYHXEWTXAWPYKM
        BOKUQVEZHOMWEHMOWEUVIXFOBMKUQVEZYKUWGUSZHOMHIMCJKUVGOPUMUVHYKYLUWGYMVFZ
        YKYNUWGYOVFZYKYPUWGUUGVFZYKUUHUWGUUQVFZUWKUWMACIVEZYJUWGUAXBZUWIHMCHIOM
        JKUVGPUMUWJUVHUWKUWMUWOUWKUWLUWMUWIHMCHIOBJKUVGMPUMUVHUWJUWKUWMUWOUWKUW
        LABIVEZYJUWGTXBZAHMCWEHOBWEUVIXFYJUWGAHOBHIMCJKUVGPUMSUVHUEUUFTUEUUPUAA
        BOHCIMHJKNPUMUPSTUUFUEUAUUPUEACOHBIMHJKNBCPUMUPSUAUUFUETUUPUETUAUVKUWEU
        VFABOABCDEFGHIJKLMOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOXCXDZACMACBDFEUVI
        HIJKLOMPQUVNSUATUBUDUCUEUVOUVQUVRUVTUWAUWCUWDUMUOUNXCXDZXGWKXHXBUWMUWIO
        BMHIJKUVGPUMUVHUWLUWQUWMUWJUWKUWIBMOIJKNPUPUMUWJUWQUWMUWLYKUWGUTZWLAOBV
        CYJUWGUWRXBYKYJUWGUVEVFZXIXJXHUWLUWIMCOHIJKUVGPUMUVHUWMUWOUWLUWJUWKUWIB
        MOCIJKNPUPUMUWJUWQUWMUWLUWOUWTAOBCKUQZVEYJUWGUWFXBXKAMCVCYJUWGUWSXBUWIM
        OUXAXDXIXJYKUWHUSZHOMHIMBJKUVGOPUMUVHYKYLUWHYMVFZYKYNUWHYOVFZYKYPUWHUUG
        VFZYKUUHUWHUUQVFZUXEUXGAUWPYJUWHTXBZUXCHMBHIOMJKUVGPUMUXDUVHUXEUXGUXHUX
        EUXFUXGUXCHMBHIOCJKUVGMPUMUVHUXDUXEUXGUXHUXEUXFAUWNYJUWHUAXBZAHMBWEHOCW
        EUVIXFYJUWHABMHCIOHJKNPUMUPSTUUPUEUAUUFUEACOHBIMHJKUVGPUMSUVHUAUUFUETUU
        PUEUVKXHWKXBZUXGUXCOCMHIJKUVGPUMUVHUXFUXIUXGUXDUXEUXCBOMCIJKNPUPUMUXDUX
        HUXFUXGUXIYKUWHUTZAMUXBVEYJUWHUVFXBXKUXCHMBHIOCJKUVGPUMUVHUXDUXEUXGUXHU
        XEUXFUXIUXJXLYKYJUWHUVEVFZXIXJXHUXFUXCMBOHIJKUVGPUMUVHUXGUXHUXFUXDUXEUX
        CBOMIJKNPUPUMUXDUXHUXFUXGUXKWLAMBVCYJUWHUVLXBUXCMOUXLXDXIXJAUWGUWHVSYJA
        BMOCIJKPUMSTUUPUUFUAUVFUWFXMVFXNXOXPXQAYTHYSVHZNUQYFYDAFHYQIJKLYSNPUPUM
        SUUBUUCQUUEUDUEXRAYTOUXMHNUUAAHYQIJKLYSNPUPUMSUUBUUCQUUEUEAIHBJKLPUMQSU
        ETUUDXSXTYAYBAUUKHUUJVHZNUQYGYEAEHUUIIJKLUUJNPUPUMSUUBUUMQUUOUCUEXRAUUK
        MUXNHNUULAHUUIIJKLUUJNPUPUMSUUBUUMQUUOUEAIHCJKLPUMQSUEUAUUNXSXTYAYBYC
        @.
    @}

    @( Morley's theorem: The three points of intersection of the adjacent
       trisectors of the angles of any triangle form an equilateral triangle.

       Let ABC be any triangle, and PQR the points such that QR trisects BC
       when seen from A, and similarly for other sides.  Then, the triangle
       PQR is equilateral.

       This surprising results has become known as has as Morley's Miracle in
       mathematical folklore. @)
    morley @p |- ( ph -> <" P Q R "> e. ( eqltrG ` G ) ) @=
      ( citv cfv clng eqid co clmi ncolrot2 morleylem1 tgcgrcoml eqcomd iseqlgd
      cds eqtrd ) AEFHIJJUIUJZJUKUJZJUTUJZLVDULZVBULZVCULOSTUAAFHVDUMZEFVDUMZAH
      FEFIJVBVDLVEVFOUATSTADBCHEGFIJVBKHFBKUMJUNUJZUJUJZVDEFDKUMVIUJUJZLMNORPQU
      ASTAIJVBKBCDLMVFOPQRUBUOUGUHUCUDUEUFVFVJULVKULVEUPUQZURAHEVDUMZVGAEHFHIJV
      BVDLVEVFOSUATUAABCDEFGHIJVBKEHCKUMVIUJUJZVDFHBKUMVIUJUJZLMNOPQRSTUAUBUCUD
      UEUFUGUHVFVNULVOULVEUPUQZURAVMVGVHVPVLVAUS @.
  @}
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Outer Five Segment (not used, no need to move to main)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c AFS $.

  $( Declare the syntax for the outer five segment configuration. $)
  cafs $a class AFS $.

  ${
    $d a b c d x y z w e f g h i p $.
    $( The outer five segment configuration is an abbreviation for the
       conditions of the Five Segment Axiom ( ~ axtg5seg ).  See ~ df-ofs .
       Definition 2.10 of [Schwabhauser] p. 28.  (Contributed by Scott Fenton,
       21-Sep-2013.)  (Modified by Thierry Arnoux, 15-Mar-2019.) $)
    df-afs $a |- AFS = ( g e. TarskiG |-> { <. e , f >. |
      [. ( Base ` g ) / p ]. [. ( dist ` g ) / h ]. [. ( Itv ` g ) / i ].
         E. a e. p E. b e. p E. c e. p E. d e. p E. x e. p E. y e. p
         E. z e. p E. w e. p (
         e = <. <. a , b >. , <. c , d >. >. /\
         f = <. <. x , y >. , <. z , w >. >. /\
         ( ( b e. ( a i c ) /\ y e. ( x i z ) ) /\
           ( ( a h b ) = ( x h y ) /\ ( b h c ) = ( y h z ) ) /\
           ( ( a h d ) = ( x h w ) /\ ( b h d ) = ( y h w ) ) ) ) } ) $.
  $}

  ${
    brafs.p $e |- P = ( Base ` G ) $.
    brafs.d $e |- .- = ( dist ` G ) $.
    brafs.i $e |- I = ( Itv ` G ) $.
    brafs.g $e |- ( ph -> G e. TarskiG ) $.

    ${
      $d e f g h i p G $.  $d a b c d g h i p w x y z I $.
      $d a b c d e f g h i p w x y z P $.  $d a b c d g h i p w x y z .- $.
      $d e f g ph $.
      $( Value of the AFS relation for a given geometry structure.
         (Contributed by Thierry Arnoux, 20-Mar-2019.) $)
      afsval $p |- ( ph -> ( AFS ` G ) = { <. e , f >. | E. a e. P E. b e. P
           E. c e. P E. d e. P E. x e. P E. y e. P E. z e. P E. w e. P (
           e = <. <. a , b >. , <. c , d >. >. /\
           f = <. <. x , y >. , <. z , w >. >. /\
           ( ( b e. ( a I c ) /\ y e. ( x I z ) ) /\
             ( ( a .- b ) = ( x .- y ) /\ ( b .- c ) = ( y .- z ) ) /\
             ( ( a .- d ) = ( x .- w ) /\ ( b .- d ) = ( y .- w ) ) ) ) } ) $=
        ( wa vg vi vh vp cv cop wceq wcel w3a wrex citv cfv wsbc cds cbs cstrkg
        co copab cafs cvv cmpt df-afs a1i wb simp1 eqcomd ad7antr simp3 ad8antr
        adantr oveqd anbi12d simp2 eqeq12d 3anbi123d 3anbi3d rexeqbidva sbcie3s
        eleq2d adantl opabbidv cxp df-xp fvex xpex eqeltrri 3simpa reximi simpr
        eqeltri opelxpi simp-7r simp-6r syl2anc eqeltrd simp-5r simp-4r simpllr
        simplr anim12dan ex rexlimdva rexlimivv syl ssopab2i ssexi fvmptd ) AUA
        IGUEZLUEZMUEZUFZNUEZOUEZUFZUFZUGZHUEZBUEZCUEZUFZDUEZEUEZUFZUFZUGZXJXIXL
        UBUEZUQZUHZXSXRYAYFUQZUHZTZXIXJUCUEZUQZXRXSYLUQZUGZXJXLYLUQZXSYAYLUQZUG
        ZTZXIXMYLUQZXRYBYLUQZUGZXJXMYLUQZXSYBYLUQZUGZTZUIZUIZEUDUEZUJZDUUIUJZCU
        UIUJZBUUIUJZOUUIUJZNUUIUJZMUUIUJZLUUIUJZUBUAUEZUKULUMUCUURUNULUMUDUURUO
        ULUMZGHURZXPYEXJXIXLJUQZUHZXSXRYAJUQZUHZTZXIXJKUQZXRXSKUQZUGZXJXLKUQZXS
        YAKUQZUGZTZXIXMKUQZXRYBKUQZUGZXJXMKUQZXSYBKUQZUGZTZUIZUIZEFUJZDFUJZCFUJ
        ZBFUJZOFUJZNFUJZMFUJZLFUJZGHURZUPUSUTUSUAUPUUTVAUGABCDEGHUAUCUBUDLMNOVB
        VCAUURIUGZTUUSUWIGHUWKUUSUWIVDAUWIUUQUAFKJUOUNUKIUDUCUBPQRUUIFUGZYLKUGZ
        YFJUGZUIZUWHUUPLFUUIUWOUUIFUWLUWMUWNVEVFZUWOXIFUHZTZUWGUUOMFUUIUWOFUUIU
        GZUWQUWPVJZUWRXJFUHZTZUWFUUNNFUUIUWRUWSUXAUWTVJZUXBXLFUHZTZUWEUUMOFUUIU
        XBUWSUXDUXCVJZUXEXMFUHZTZUWDUULBFUUIUXEUWSUXGUXFVJZUXHXRFUHZTZUWCUUKCFU
        UIUXHUWSUXJUXIVJZUXKXSFUHZTZUWBUUJDFUUIUXKUWSUXMUXLVJUXNYAFUHZTZUWAUUHE
        FUUIUWOUWSUWQUXAUXDUXGUXJUXMUXOUWPVGUXPYBFUHZTZUVTUUGXPYEUXRUVEYKUVLYSU
        VSUUFUXRUVBYHUVDYJUXRUVAYGXJUXRJYFXIXLUXRYFJUWOUWNUWQUXAUXDUXGUXJUXMUXO
        UXQUWLUWMUWNVHVIVFZVKVSUXRUVCYIXSUXRJYFXRYAUXSVKVSVLUXRUVHYOUVKYRUXRUVF
        YMUVGYNUXRKYLXIXJUWOKYLUGUWQUXAUXDUXGUXJUXMUXOUXQUWOYLKUWLUWMUWNVMVFVIZ
        VKUXRKYLXRXSUXTVKVNUXRUVIYPUVJYQUXRKYLXJXLUXTVKUXRKYLXSYAUXTVKVNVLUXRUV
        OUUBUVRUUEUXRUVMYTUVNUUAUXRKYLXIXMUXTVKUXRKYLXRYBUXTVKVNUXRUVPUUCUVQUUD
        UXRKYLXJXMUXTVKUXRKYLXSYBUXTVKVNVLVOVPVQVQVQVQVQVQVQVQVRVTWASUWJUTUHAUW
        JXHFFWBZUYAWBZUHZXQUYBUHZTZGHURZUYBUYBWBUYFUTGHUYBUYBWCUYBUYBUYAUYAFFFI
        UOULUTPIUOWDWJZUYGWEZUYHWEZUYIWEWFUWIUYEGHUWIXPYETZEFUJZDFUJZCFUJZBFUJZ
        OFUJZNFUJZMFUJZLFUJUYEUWHUYQLFUWGUYPMFUWFUYONFUWEUYNOFUWDUYMBFUWCUYLCFU
        WBUYKDFUWAUYJEFXPYEUVTWGWHWHWHWHWHWHWHWHUYPUYELMFFUWQUXATZUYOUYENFUYRUX
        DTZUYNUYEOFUYSUXGTZUYMUYEBFUYTUXJTZUYLUYECFVUAUXMTZUYKUYEDFVUBUXOTZUYJU
        YEEFVUCUXQTZUYJUYEVUDXPUYCYEUYDVUDXPTZXHXOUYBVUDXPWIVUEXKUYAUHZXNUYAUHZ
        XOUYBUHUYRVUFUXDUXGUXJUXMUXOUXQXPXIXJFFWKVGVUEUXDUXGVUGUYRUXDUXGUXJUXMU
        XOUXQXPWLUYSUXGUXJUXMUXOUXQXPWMXLXMFFWKWNXKXNUYAUYAWKWNWOVUDYETZXQYDUYB
        VUDYEWIVUHXTUYAUHZYCUYAUHZYDUYBUHVUHUXJUXMVUIUYTUXJUXMUXOUXQYEWPVUAUXMU
        XOUXQYEWQXRXSFFWKWNVUHUXOUXQVUJVUBUXOUXQYEWRVUCUXQYEWSYAYBFFWKWNXTYCUYA
        UYAWKWNWOWTXAXBXBXBXBXBXBXCXDXEXFVCXG $.
    $}

    ${
      $d a b c d e f w x y z .- $.  $d a b c d e f w x y z A $.
      $d a b c d e f w x y z B $.  $d a b c d e f w x y z C $.
      $d a b c d e f w x y z D $.  $d a b c d e f w x y z I $.
      $d a b c d e f w x y z P $.  $d a b c d e f w x y z W $.
      $d a b c d e f w x y z X $.  $d a b c d e f w x y z Y $.
      $d a b c d e f w x y z Z $.  $d e f G $.  $d e f ph $.
      brafs.o $e |- O = ( AFS ` G ) $.
      brafs.1 $e |- ( ph -> A e. P ) $.
      brafs.2 $e |- ( ph -> B e. P ) $.
      brafs.3 $e |- ( ph -> C e. P ) $.
      brafs.4 $e |- ( ph -> D e. P ) $.
      brafs.5 $e |- ( ph -> X e. P ) $.
      brafs.6 $e |- ( ph -> Y e. P ) $.
      brafs.7 $e |- ( ph -> Z e. P ) $.
      brafs.8 $e |- ( ph -> W e. P ) $.
      $( Binary relation form of the outer five segment predicate.
         (Contributed by Scott Fenton, 21-Sep-2013.) $)
      brafs $p |- ( ph -> ( <. <. A , B >. , <. C , D >. >. O
        <. <. X , Y >. , <. Z , W >. >. <-> ( ( B e. ( A I C ) /\
                       Y e. ( X I Z ) ) /\
          ( ( A .- B ) = ( X .- Y ) /\ ( B .- C ) = ( Y .- Z ) ) /\
          ( ( A .- D ) = ( X .- W ) /\ ( B .- D ) = ( Y .- W ) ) ) ) ) $=
        ( vb va vc vy vx vz vd vw vf ve cv co wcel wceq w3a oveq1 eleq2d anbi1d
        eqeq1d 3anbi123d eleq1 oveq2 anbi12d anbi2d 3anbi12d 3anbi3d eqeq2d cfv
        wa cafs cop wrex copab afsval syl5eq br8d ) AUHURZUIURZUJURZHUSZUTZUKUR
        ZULURZUMURZHUSZUTZVPZWEWDIUSZWJWIIUSZVAZWDWFIUSZWIWKIUSZVAZVPZWEUNURZIU
        SZWJUOURZIUSZVAZWDXBIUSZWIXDIUSZVAZVPZVBZWDBWFHUSZUTZWMVPZBWDIUSZWPVAZW
        TVPZBXBIUSZXEVAZXIVPZVBCXLUTZWMVPZBCIUSZWPVAZCWFIUSZWSVAZVPZXSCXBIUSZXH
        VAZVPZVBCBDHUSZUTZWMVPZYDCDIUSZWSVAZVPZYJVBYMYPBEIUSZXEVAZCEIUSZXHVAZVP
        ZVBYLWILWKHUSZUTZVPZYCLWIIUSZVAZYOVPZYQLXDIUSZVAZYTVPZVBYLMUUBUTZVPZYCL
        MIUSZVAZYNMWKIUSZVAZVPZUUIYSMXDIUSZVAZVPZVBYLMLNHUSZUTZVPZUUNYNMNIUSZVA
        ZVPZUUTVBUVCUVFYQLKIUSZVAZYSMKIUSZVAZVPZVBBCDEFJULUKUMUOLMNKUPUQUIUHUJU
        NWEBVAZWNXNXAXQXJXTUVLWHXMWMUVLWGXLWDWEBWFHVCVDVEUVLWQXPWTUVLWOXOWPWEBW
        DIVCVFVEUVLXFXSXIUVLXCXRXEWEBXBIVCVFVEVGWDCVAZXNYBXQYGXTYJUVMXMYAWMWDCX
        LVHVEUVMXPYDWTYFUVMXOYCWPWDCBIVIVFUVMWRYEWSWDCWFIVCVFVJUVMXIYIXSUVMXGYH
        XHWDCXBIVCVFVKVGWFDVAZYBYMYGYPYJUVNYAYLWMUVNXLYKCWFDBHVIVDVEUVNYFYOYDUV
        NYEYNWSWFDCIVIVFVKVLXBEVAZYJUUAYMYPUVOXSYRYIYTUVOXRYQXEXBEBIVIVFUVOYHYS
        XHXBECIVIVFVJVMWJLVAZYMUUDYPUUGUUAUUJUVPWMUUCYLUVPWLUUBWIWJLWKHVCVDVKUV
        PYDUUFYOUVPWPUUEYCWJLWIIVCVNVEUVPYRUUIYTUVPXEUUHYQWJLXDIVCVNVEVGWIMVAZU
        UDUULUUGUUQUUJUUTUVQUUCUUKYLWIMUUBVHVKUVQUUFUUNYOUUPUVQUUEUUMYCWIMLIVIV
        NUVQWSUUOYNWIMWKIVCVNVJUVQYTUUSUUIUVQXHUURYSWIMXDIVCVNVKVGWKNVAZUULUVCU
        UQUVFUUTUVRUUKUVBYLUVRUUBUVAMWKNLHVIVDVKUVRUUPUVEUUNUVRUUOUVDYNWKNMIVIV
        NVKVLXDKVAZUUTUVKUVCUVFUVSUUIUVHUUSUVJUVSUUHUVGYQXDKLIVIVNUVSUURUVIYSXD
        KMIVIVNVJVMAJGVQVOUQURWEWDVRWFXBVRVRVAUPURWJWIVRWKXDVRVRVAXKVBUOFVSUMFV
        SUKFVSULFVSUNFVSUJFVSUHFVSUIFVSUQUPVTSAULUKUMUOFUQUPGHIUIUHUJUNOPQRWAWB
        TUAUBUCUDUEUFUGWC $.
    $}
  $}

  ${
    tg5segofs.p $e |- P = ( Base ` G ) $.
    tg5segofs.m $e |- .- = ( dist ` G ) $.
    tg5segofs.s $e |- I = ( Itv ` G ) $.
    tg5segofs.g $e |- ( ph -> G e. TarskiG ) $.
    tg5segofs.a $e |- ( ph -> A e. P ) $.
    tg5segofs.b $e |- ( ph -> B e. P ) $.
    tg5segofs.c $e |- ( ph -> C e. P ) $.
    tg5segofs.d $e |- ( ph -> D e. P ) $.
    tg5segofs.e $e |- ( ph -> E e. P ) $.
    tg5segofs.f $e |- ( ph -> F e. P ) $.
    tg5segofs.o $e |- O = ( AFS ` G ) $.
    tg5segofs.h $e |- ( ph -> H e. P ) $.
    tg5segofs.i $e |- ( ph -> I e. P ) $.
    tg5segofs.1 $e |- ( ph -> <. <. A , B >. , <. C , D >. >. O
          <. <. E , F >. , <. H , I >. >. ) $.
    tg5segofs.2 $e |- ( ph -> A =/= B ) $.
    $( Rephrase ~ axtg5seg using the outer five segment predicate.  Theorem
       2.10 of [Schwabhauser] p. 28.  (Contributed by Thierry Arnoux,
       23-Mar-2019.) $)
    tg5segofs $p |- ( ph -> ( C .- D ) = ( H .- I ) ) $=
      ( co wcel wceq cop wbr w3a brafs mpbid simp1d simpld simprd simp2d simp3d
      wa axtg5seg ) AGHJFEIKLKBCDNOPQRSTUBUCUEUAUFUHACBDKUIUJZHGJKUIUJZAVDVEVBZ
      BCLUIGHLUIUKZCDLUIHJLUIUKZVBZBELUIGKLUIUKZCELUIHKLUIUKZVBZABCULDEULULGHUL
      JKULULMUMVFVIVLUNUGABCDEFIKLMKGHJNOPQUDRSTUAUBUCUEUFUOUPZUQZURAVDVEVNUSAV
      GVHAVFVIVLVMUTZURAVGVHVOUSAVJVKAVFVIVLVMVAZURAVJVKVPUSVC $.
  $}

$( End $[ set-mbox-ta-geom.mm $] $)

$( (End of Thierry Arnoux's mathbox.) $)
$( End $[ set-mbox-ta.mm $] $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Jonathan Ben-Naim
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  Note:  On 4-Sep-2016 and after, 745 unused theorems were deleted from this
  mathbox, and 359 theorems used only once or twice were merged into their
  referencing theorems.  The originals can be recovered from set.mm versions
  prior to this date.

$)

  $v ph' $.
  $v ps' $.
  $v ch' $.
  $v th' $.
  $v ta' $.
  $v et' $.
  $v ze' $.
  $v si' $.
  $v rh' $.

  $v ph" $.
  $v ps" $.
  $v ch" $.
  $v th" $.
  $v ta" $.
  $v et" $.
  $v ze" $.
  $v si" $.
  $v rh" $.

  $v ph0 $.
  $v ps0 $.
  $v ch0_ $. $( because ch0 is already used $)
  $v th0 $.
  $v ta0 $.
  $v et0 $.
  $v ze0 $.
  $v si0 $.
  $v rh0 $.

  $v ph1 $.
  $v ps1 $.
  $v ch1 $.
  $v th1 $.
  $v ta1 $.
  $v et1 $.
  $v ze1 $.
  $v si1 $.
  $v rh1 $.

  bnjwphm $f wff ph' $.
  bnjwpsm $f wff ps' $.
  bnjwchm $f wff ch' $.
  bnjwthm $f wff th' $.
  bnjwtam $f wff ta' $.
  bnjwetm $f wff et' $.
  bnjwzem $f wff ze' $.
  bnjwsim $f wff si' $.
  bnjwrhm $f wff rh' $.

  bnjwphn $f wff ph" $.
  bnjwpsn $f wff ps" $.
  bnjwchn $f wff ch" $.
  bnjwthn $f wff th" $.
  bnjwtan $f wff ta" $.
  bnjwetn $f wff et" $.
  bnjwzen $f wff ze" $.
  bnjwsin $f wff si" $.
  bnjwrhn $f wff rh" $.

  bnjwph0 $f wff ph0 $.
  bnjwps0 $f wff ps0 $.
  bnjwch0- $f wff ch0_ $.
  bnjwth0 $f wff th0 $.
  bnjwta0 $f wff ta0 $.
  bnjwet0 $f wff et0 $.
  bnjwze0 $f wff ze0 $.
  bnjwsi0 $f wff si0 $.
  bnjwrh0 $f wff rh0 $.

  bnjwph1 $f wff ph1 $.
  bnjwps1 $f wff ps1 $.
  bnjwch1 $f wff ch1 $.
  bnjwth1 $f wff th1 $.
  bnjwta1 $f wff ta1 $.
  bnjwet1 $f wff et1 $.
  bnjwze1 $f wff ze1 $.
  bnjwsi1 $f wff si1 $.
  bnjwrh1 $f wff rh1 $.

$( -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- $)

  $v a' $.
  $v b' $.
  $v c' $.
  $v d' $.
  $v e' $.
  $v f' $.
  $v g' $.
  $v h' $.
  $v i' $.
  $v j' $.
  $v k' $.
  $v l' $.
  $v m' $.
  $v n' $.
  $v o'_ $.
  $v p' $.
  $v q' $.
  $v r' $.
  $v s'_ $.
  $v t' $.
  $v u' $.
  $v v'_ $.
  $v w' $.
  $v x' $.
  $v y' $.
  $v z' $.

  $v a" $.
  $v b" $.
  $v c" $.
  $v d" $.
  $v e" $.
  $v f" $.
  $v g" $.
  $v h" $.
  $v i" $.
  $v j" $.
  $v k" $.
  $v l" $.
  $v m" $.
  $v n" $.
  $v o"_ $.
  $v p" $.
  $v q" $.
  $v r" $.
  $v s"_ $.
  $v t" $.
  $v u" $.
  $v v"_ $.
  $v w" $.
  $v x" $.
  $v y" $.
  $v z" $.

  $v a0_ $.
  $v b0_ $.
  $v c0_ $. $( because c0 is already used $)
  $v d0 $.
  $v e0 $.
  $v f0_ $. $( because f0 is already used $)
  $v g0 $.
  $v h0 $.
  $v i0 $.
  $v j0 $.
  $v k0 $.
  $v l0 $.
  $v m0 $.
  $v n0_ $. $( because n0 is already used $)
  $v o0_ $. $( because o0 is already used $)
  $v p0 $.
  $v q0 $.
  $v r0 $.
  $v s0 $.
  $v t0 $.
  $v u0 $.
  $v v0 $.
  $v w0 $.
  $v x0 $.
  $v y0 $.
  $v z0 $.

  $v a1_ $.
  $v b1_ $.
  $v c1_ $. $( because c1 is already used $)
  $v d1 $.
  $v e1 $.
  $v f1 $.
  $v g1 $.
  $v h1 $.
  $v i1 $.
  $v j1 $.
  $v k1 $.
  $v l1 $.
  $v m1 $.
  $v n1 $.
  $v o1_ $. $( because o1 is already used $)
  $v p1 $.
  $v q1 $.
  $v r1 $.
  $v s1 $.
  $v t1 $.
  $v u1 $.
  $v v1 $.
  $v w1 $.
  $v x1 $.
  $v y1 $.
  $v z1 $.

  bnjvam $f setvar a' $.
  bnjvbm $f setvar b' $.
  bnjvcm $f setvar c' $.
  bnjvdm $f setvar d' $.
  bnjvem $f setvar e' $.
  bnjvfm $f setvar f' $.
  bnjvgm $f setvar g' $.
  bnjvhm $f setvar h' $.
  bnjvim $f setvar i' $.
  bnjvjm $f setvar j' $.
  bnjvkm $f setvar k' $.
  bnjvlm $f setvar l' $.
  bnjvmm $f setvar m' $.
  bnjvnm $f setvar n' $.
  bnjvom- $f setvar o'_ $.
  bnjvpm $f setvar p' $.
  bnjvqm $f setvar q' $.
  bnjvrm $f setvar r' $.
  bnjvsm- $f setvar s'_ $.
  bnjvtm $f setvar t' $.
  bnjvum $f setvar u' $.
  bnjvvm- $f setvar v'_ $.
  bnjvwm $f setvar w' $.
  bnjvxm $f setvar x' $.
  bnjvym $f setvar y' $.
  bnjvzm $f setvar z' $.

  bnjvan $f setvar a" $.
  bnjvbn $f setvar b" $.
  bnjvcn $f setvar c" $.
  bnjvdn $f setvar d" $.
  bnjven $f setvar e" $.
  bnjvfn $f setvar f" $.
  bnjvgn $f setvar g" $.
  bnjvhn $f setvar h" $.
  bnjvin $f setvar i" $.
  bnjvjn $f setvar j" $.
  bnjvkn $f setvar k" $.
  bnjvln $f setvar l" $.
  bnjvmn $f setvar m" $.
  bnjvnn $f setvar n" $.
  bnjvon- $f setvar o"_ $.
  bnjvpn $f setvar p" $.
  bnjvqn $f setvar q" $.
  bnjvrn $f setvar r" $.
  bnjvsn- $f setvar s"_ $.
  bnjvtn $f setvar t" $.
  bnjvun $f setvar u" $.
  bnjvvn- $f setvar v"_ $.
  bnjvwn $f setvar w" $.
  bnjvxn $f setvar x" $.
  bnjvyn $f setvar y" $.
  bnjvzn $f setvar z" $.

  bnjva0- $f setvar a0_ $.
  bnjvb0- $f setvar b0_ $.
  bnjvc0- $f setvar c0_ $.
  bnjvd0 $f setvar d0 $.
  bnjve0 $f setvar e0 $.
  bnjvf0- $f setvar f0_ $.
  bnjvg0 $f setvar g0 $.
  bnjvh0 $f setvar h0 $.
  bnjvi0 $f setvar i0 $.
  bnjvj0 $f setvar j0 $.
  bnjvk0 $f setvar k0 $.
  bnjvl0 $f setvar l0 $.
  bnjvm0 $f setvar m0 $.
  bnjvn0- $f setvar n0_ $.
  bnjvo0- $f setvar o0_ $.
  bnjvp0 $f setvar p0 $.
  bnjvq0 $f setvar q0 $.
  bnjvr0 $f setvar r0 $.
  bnjvs0 $f setvar s0 $.
  bnjvt0 $f setvar t0 $.
  bnjvu0 $f setvar u0 $.
  bnjvv0 $f setvar v0 $.
  bnjvw0 $f setvar w0 $.
  bnjvx0 $f setvar x0 $.
  bnjvy0 $f setvar y0 $.
  bnjvz0 $f setvar z0 $.

  bnjva1- $f setvar a1_ $.
  bnjvb1- $f setvar b1_ $.
  bnjvc1- $f setvar c1_ $.
  bnjvd1 $f setvar d1 $.
  bnjve1 $f setvar e1 $.
  bnjvf1 $f setvar f1 $.
  bnjvg1 $f setvar g1 $.
  bnjvh1 $f setvar h1 $.
  bnjvi1 $f setvar i1 $.
  bnjvj1 $f setvar j1 $.
  bnjvk1 $f setvar k1 $.
  bnjvl1 $f setvar l1 $.
  bnjvm1 $f setvar m1 $.
  bnjvn1 $f setvar n1 $.
  bnjvo1- $f setvar o1_ $.
  bnjvp1 $f setvar p1 $.
  bnjvq1 $f setvar q1 $.
  bnjvr1 $f setvar r1 $.
  bnjvs1 $f setvar s1 $.
  bnjvt1 $f setvar t1 $.
  bnjvu1 $f setvar u1 $.
  bnjvv1 $f setvar v1 $.
  bnjvw1 $f setvar w1 $.
  bnjvx1 $f setvar x1 $.
  bnjvy1 $f setvar y1 $.
  bnjvz1 $f setvar z1 $.

$( -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- $)

  $v A' $.
  $v B' $.
  $v C' $.
  $v D' $.
  $v E' $.
  $v F' $.
  $v G' $.
  $v H' $.
  $v I' $.
  $v J' $.
  $v K' $.
  $v L' $.
  $v M' $.
  $v N' $.
  $v O' $.
  $v P' $.
  $v Q' $.
  $v R' $.
  $v S' $.
  $v T' $.
  $v U' $.
  $v V' $.
  $v W' $.
  $v X' $.
  $v Y' $.
  $v Z' $.

  $v A" $.
  $v B" $.
  $v C" $.
  $v D" $.
  $v E" $.
  $v F" $.
  $v G" $.
  $v H" $.
  $v I" $.
  $v J" $.
  $v K" $.
  $v L" $.
  $v M" $.
  $v N" $.
  $v O" $.
  $v P" $.
  $v Q" $.
  $v R" $.
  $v S" $.
  $v T" $.
  $v U" $.
  $v V" $.
  $v W" $.
  $v X" $.
  $v Y" $.
  $v Z" $.

  $v A0 $.
  $v B0 $.
  $v C0 $.
  $v D0 $.
  $v E0 $.
  $v F0 $.
  $v G0 $.
  $v H0 $.
  $v I0 $.
  $v J0 $.
  $v K0 $.
  $v L0 $.
  $v M0 $.
  $v N0 $.
  $v O0 $.
  $v P0 $.
  $v Q0 $.
  $v R0 $.
  $v S0 $.
  $v T0 $.
  $v U0 $.
  $v V0 $.
  $v W0 $.
  $v X0 $.
  $v Y0 $.
  $v Z0 $.

  $v A1_ $. $( because A1 is already used $)
  $v B1_ $. $( because B1 is already used $)
  $v C1_ $. $( because C1 is already used $)
  $v D1_ $. $( because D1 is already used $)
  $v E1 $.
  $v F1_ $. $( because F1 is already used $)
  $v G1_ $. $( because G1 is already used $)
  $v H1_ $. $( because H1 is already used $)
  $v I1_ $. $( because I1 is already used $)
  $v J1 $.
  $v K1 $.
  $v L1_ $. $( because L1 is already used $)
  $v M1_ $. $( because M1 is already used $)
  $v N1 $.
  $v O1_ $. $( because O1 is already used $)
  $v P1 $.
  $v Q1 $.
  $v R1_ $. $( because R1 is already used $)
  $v S1_ $. $( because S1 is already used $)
  $v T1 $.
  $v U1 $.
  $v V1_ $. $( because V1 is already used $)
  $v W1 $.
  $v X1 $.
  $v Y1 $.
  $v Z1 $.

  bnjcAm $f class A' $.
  bnjcBm $f class B' $.
  bnjcCm $f class C' $.
  bnjcDm $f class D' $.
  bnjcEm $f class E' $.
  bnjcFm $f class F' $.
  bnjcGm $f class G' $.
  bnjcHm $f class H' $.
  bnjcIm $f class I' $.
  bnjcJm $f class J' $.
  bnjcKm $f class K' $.
  bnjcLm $f class L' $.
  bnjcMm $f class M' $.
  bnjcNm $f class N' $.
  bnjcOm $f class O' $.
  bnjcPm $f class P' $.
  bnjcQm $f class Q' $.
  bnjcRm $f class R' $.
  bnjcSm $f class S' $.
  bnjcTm $f class T' $.
  bnjcUm $f class U' $.
  bnjcVm $f class V' $.
  bnjcWm $f class W' $.
  bnjcXm $f class X' $.
  bnjcYm $f class Y' $.
  bnjcZm $f class Z' $.

  bnjcAn $f class A" $.
  bnjcBn $f class B" $.
  bnjcCn $f class C" $.
  bnjcDn $f class D" $.
  bnjcEn $f class E" $.
  bnjcFn $f class F" $.
  bnjcGn $f class G" $.
  bnjcHn $f class H" $.
  bnjcIn $f class I" $.
  bnjcJn $f class J" $.
  bnjcKn $f class K" $.
  bnjcLn $f class L" $.
  bnjcMn $f class M" $.
  bnjcNn $f class N" $.
  bnjcOn $f class O" $.
  bnjcPn $f class P" $.
  bnjcQn $f class Q" $.
  bnjcRn $f class R" $.
  bnjcSn $f class S" $.
  bnjcTn $f class T" $.
  bnjcUn $f class U" $.
  bnjcVn $f class V" $.
  bnjcWn $f class W" $.
  bnjcXn $f class X" $.
  bnjcYn $f class Y" $.
  bnjcZn $f class Z" $.

  bnjcA0 $f class A0 $.
  bnjcB0 $f class B0 $.
  bnjcC0 $f class C0 $.
  bnjcD0 $f class D0 $.
  bnjcE0 $f class E0 $.
  bnjcF0 $f class F0 $.
  bnjcG0 $f class G0 $.
  bnjcH0 $f class H0 $.
  bnjcI0 $f class I0 $.
  bnjcJ0 $f class J0 $.
  bnjcK0 $f class K0 $.
  bnjcL0 $f class L0 $.
  bnjcM0 $f class M0 $.
  bnjcN0 $f class N0 $.
  bnjcO0 $f class O0 $.
  bnjcP0 $f class P0 $.
  bnjcQ0 $f class Q0 $.
  bnjcR0 $f class R0 $.
  bnjcS0 $f class S0 $.
  bnjcT0 $f class T0 $.
  bnjcU0 $f class U0 $.
  bnjcV0 $f class V0 $.
  bnjcW0 $f class W0 $.
  bnjcX0 $f class X0 $.
  bnjcY0 $f class Y0 $.
  bnjcZ0 $f class Z0 $.

  bnjcA1 $f class A1_ $.
  bnjcB1 $f class B1_ $.
  bnjcC1 $f class C1_ $.
  bnjcD1 $f class D1_ $.
  bnjcE1 $f class E1 $.
  bnjcF1 $f class F1_ $.
  bnjcG1 $f class G1_ $.
  bnjcH1 $f class H1_ $.
  bnjcI1 $f class I1_ $.
  bnjcJ1 $f class J1 $.
  bnjcK1 $f class K1 $.
  bnjcL1 $f class L1_ $.
  bnjcM1 $f class M1_ $.
  bnjcN1 $f class N1 $.
  bnjcO1- $f class O1_ $.
  bnjcP1 $f class P1 $.
  bnjcQ1 $f class Q1 $.
  bnjcR1- $f class R1_ $.
  bnjcS1 $f class S1_ $.
  bnjcT1 $f class T1 $.
  bnjcU1 $f class U1 $.
  bnjcV1 $f class V1_ $.
  bnjcW1 $f class W1 $.
  bnjcX1 $f class X1 $.
  bnjcY1 $f class Y1 $.
  bnjcZ1 $f class Z1 $.

  $( Extend wff notation with the 4-way conjunction.
     (New usage is discouraged.) $)
  w-bnj17 $a wff ( ph /\ ps /\ ch /\ th ) $.

  ${
    $( Define the 4-way conjunction.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    df-bnj17 $a |- ( ( ph /\ ps /\ ch /\ th ) <-> ( ( ph /\ ps /\ ch ) /\ th )
        ) $.
  $}

$( -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- $)

$( Function meta-constant representing the function giving:
   the class of all elements of ` A ` that are "smaller" than ` X ` according
   to ` R `. $)

  $c _pred $.

  $( Extend class notation with the function giving: the class of all elements
     of ` A ` that are "smaller" than ` X ` according to ` R ` .
     (New usage is discouraged.) $)
  c-bnj14 $a class _pred ( X , A , R ) $.

  ${
    $d X y $.  $d A y $.  $d R y $.
    $( Define the function giving: the class of all elements of ` A ` that are
       "smaller" than ` X ` according to ` R ` .  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    df-bnj14 $a |- _pred ( X , A , R ) = { y e. A | y R X } $.
  $}

$( -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- $)

$( Predicate meta-constant representing the following predicate:
   ` R ` is set-like on ` A `. $)

  $c _Se $.

  $( Extend wff notation with the following predicate: ` R ` is set-like on
     ` A ` .  (New usage is discouraged.) $)
  w-bnj13 $a wff R _Se A $.

  ${
    $d R x $.  $d A x $.
    $( Define the following predicate: ` R ` is set-like on ` A ` .
       (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    df-bnj13 $a |- ( R _Se A <-> A. x e. A _pred ( x , A , R ) e. _V ) $.
  $}

$( -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- $)

$( Predicate meta-constant representing the following predicate:
   ` R ` is both well-founded and set-like on ` A `. $)

  $c _FrSe $.

  $( Extend wff notation with the following predicate: ` R ` is both
     well-founded and set-like on ` A ` .  (New usage is discouraged.) $)
  w-bnj15 $a wff R _FrSe A $.

  ${
    $( Define the following predicate: ` R ` is both well-founded and set-like
       on ` A ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    df-bnj15 $a |- ( R _FrSe A <-> ( R Fr A /\ R _Se A ) ) $.
  $}

$( -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- $)

$( Function meta-constant representing the function giving:
   the transitive closure of ` X ` in ` A ` by ` R `. $)

  $c _trCl $.

  $( Extend class notation with the function giving: the transitive closure of
     ` X ` in ` A ` by ` R ` .  (New usage is discouraged.) $)
  c-bnj18 $a class _trCl ( X , A , R ) $.

  ${
    $d X f n i y $.  $d A f n i y $.  $d R f n i y $.
    $( Define the function giving: the transitive closure of ` X ` in ` A ` by
       ` R ` .  This definition has been designed for facilitating verification
       that it is eliminable and that the $d restrictions are sound and
       complete.  For a more readable definition see ~ bnj882 .  (Contributed
       by Jonathan Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    df-bnj18 $a |- _trCl ( X , A , R )
      = U_ f e. { f | E. n e. ( _om \ { (/) } ) ( f Fn n /\ ( f ` (/) )
       = _pred ( X , A , R ) /\ A. i e. _om ( suc i e. n -> ( f ` suc i )
       = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) } U_ i e. dom f ( f ` i ) $.
  $}

$( -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- $)

$( Predicate meta-constant representing the following predicate:
   ` B ` is transitive for ` A ` and ` R `. $)

  $c _TrFo $.

  $( Extend wff notation with the following predicate: ` B ` is transitive for
     ` A ` and ` R ` .  (New usage is discouraged.) $)
  w-bnj19 $a wff _TrFo ( B , A , R ) $.

  ${
    $d B x $.  $d A x $.  $d R x $.
    $( Define the following predicate: ` B ` is transitive for ` A ` and
       ` R ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    df-bnj19 $a |- ( _TrFo ( B , A , R ) <-> A. x e. B _pred ( x , A , R ) C_ B
        ) $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  First-order logic and set theory
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (Proof shortened by Andrew Salmon, 14-Jun-2011.)
     (New usage is discouraged.) $)
  bnj170 $p |- ( ( ph /\ ps /\ ch ) <-> ( ( ps /\ ch ) /\ ph ) ) $=
    ( w3a wa 3anrot df-3an bitri ) ABCDBCADBCEAEABCFBCAGH $.

  ${
    bnj240.1 $e |- ( ps -> ps' ) $.
    bnj240.2 $e |- ( ch -> ch' ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj240 $p |- ( ( ph /\ ps /\ ch ) -> ( ps' /\ ch' ) ) $=
      ( wa w3a 3ad2ant1 3ad2ant2 jca 3comr ) BCADEHBCAIDEBCDAFJCBEAGKLM $.
  $}

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj248 $p |- ( ( ph /\ ps /\ ch /\ th ) <-> ( ( ( ph /\ ps ) /\ ch ) /\ th
      ) ) $=
    ( w-bnj17 w3a wa df-bnj17 df-3an anbi1i bitri ) ABCDEABCFZDGABGCGZDGABCDHLM
    DABCIJK $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj250 $p |- ( ( ph /\ ps /\ ch /\ th ) <-> ( ph /\ ( ( ps /\ ch ) /\ th )
      ) ) $=
    ( w-bnj17 w3a wa df-bnj17 3anass anbi1i anass 3bitri ) ABCDEABCFZDGABCGZGZD
    GANDGGABCDHMODABCIJANDKL $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj251 $p |- ( ( ph /\ ps /\ ch /\ th ) <-> ( ph /\ ( ps /\ ( ch /\ th ) )
      ) ) $=
    ( w-bnj17 wa bnj250 anass anbi2i bitri ) ABCDEABCFDFZFABCDFFZFABCDGKLABCDHI
    J $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj252 $p |- ( ( ph /\ ps /\ ch /\ th )
      <-> ( ph /\ ( ps /\ ch /\ th ) ) ) $=
    ( w-bnj17 wa w3a bnj250 df-3an anbi2i bitr4i ) ABCDEABCFDFZFABCDGZFABCDHMLA
    BCDIJK $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj253 $p |- ( ( ph /\ ps /\ ch /\ th )
      <-> ( ( ph /\ ps ) /\ ch /\ th ) ) $=
    ( w-bnj17 wa w3a bnj248 df-3an bitr4i ) ABCDEABFZCFDFKCDGABCDHKCDIJ $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj255 $p |- ( ( ph /\ ps /\ ch /\ th )
      <-> ( ph /\ ps /\ ( ch /\ th ) ) ) $=
    ( w-bnj17 wa w3a bnj251 3anass bitr4i ) ABCDEABCDFZFFABKGABCDHABKIJ $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj256 $p |- ( ( ph /\ ps /\ ch /\ th )
      <-> ( ( ph /\ ps ) /\ ( ch /\ th ) ) ) $=
    ( w-bnj17 wa bnj248 anass bitri ) ABCDEABFZCFDFJCDFFABCDGJCDHI $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj257 $p |- ( ( ph /\ ps /\ ch /\ th ) <-> ( ph /\ ps /\ th /\ ch ) ) $=
    ( wa w-bnj17 ancom anbi2i bnj256 3bitr4i ) ABEZCDEZEKDCEZEABCDFABDCFLMKCDGH
    ABCDIABDCIJ $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj258 $p |- ( ( ph /\ ps /\ ch /\ th )
      <-> ( ( ph /\ ps /\ th ) /\ ch ) ) $=
    ( w-bnj17 w3a wa bnj257 df-bnj17 bitri ) ABCDEABDCEABDFCGABCDHABDCIJ $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj268 $p |- ( ( ph /\ ps /\ ch /\ th ) <-> ( ph /\ ch /\ ps /\ th ) ) $=
    ( w3a wa w-bnj17 3ancomb anbi1i df-bnj17 3bitr4i ) ABCEZDFACBEZDFABCDGACBDG
    LMDABCHIABCDJACBDJK $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj290 $p |- ( ( ph /\ ps /\ ch /\ th ) <-> ( ph /\ ch /\ th /\ ps ) ) $=
    ( w3a wa w-bnj17 3anrot anbi2i bnj252 3bitr4i ) ABCDEZFACDBEZFABCDGACDBGLMA
    BCDHIABCDJACDBJK $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj291 $p |- ( ( ph /\ ps /\ ch /\ th )
      <-> ( ( ph /\ ch /\ th ) /\ ps ) ) $=
    ( w-bnj17 w3a wa bnj290 df-bnj17 bitri ) ABCDEACDBEACDFBGABCDHACDBIJ $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj312 $p |- ( ( ph /\ ps /\ ch /\ th ) <-> ( ps /\ ph /\ ch /\ th ) ) $=
    ( w3a wa w-bnj17 3ancoma anbi1i df-bnj17 3bitr4i ) ABCEZDFBACEZDFABCDGBACDG
    LMDABCHIABCDJBACDJK $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (Proof shortened by Andrew Salmon, 14-Jun-2011.)
     (New usage is discouraged.) $)
  bnj334 $p |- ( ( ph /\ ps /\ ch /\ th ) <-> ( ch /\ ph /\ ps /\ th ) ) $=
    ( w-bnj17 bnj290 bnj257 bnj312 3bitri ) ABCDEACDBEACBDECABDEABCDFACDBGACBDH
    I $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (Proof shortened by Andrew Salmon, 14-Jun-2011.)
     (New usage is discouraged.) $)
  bnj345 $p |- ( ( ph /\ ps /\ ch /\ th ) <-> ( th /\ ph /\ ps /\ ch ) ) $=
    ( w-bnj17 wa w3a bnj334 bnj250 3anass bitr4i 3anrev 3bitri ) ABCDECABDEZCAB
    FZDGZDABCEZABCDHNCODFFPCABDICODJKPDOCGZQCODLQDOCFFRDABCIDOCJKKM $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (Proof shortened by Andrew Salmon, 14-Jun-2011.)
     (New usage is discouraged.) $)
  bnj422 $p |- ( ( ph /\ ps /\ ch /\ th ) <-> ( ch /\ th /\ ph /\ ps ) ) $=
    ( w-bnj17 bnj345 bitri ) ABCDEDABCECDABEABCDFDABCFG $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj432 $p |- ( ( ph /\ ps /\ ch /\ th ) <-> ( ( ch /\ th ) /\ ( ph /\ ps )
      ) ) $=
    ( w-bnj17 wa bnj422 bnj256 bitri ) ABCDECDABECDFABFFABCDGCDABHI $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj446 $p |- ( ( ph /\ ps /\ ch /\ th ) <-> ( ( ps /\ ch /\ th ) /\ ph ) ) $=
    ( w-bnj17 w3a wa bnj345 df-bnj17 bitr3i ) ABCDEBCDAEBCDFAGBCDAHBCDAIJ $.

  ${
    $d A x $.  $d A y z $.  $d B w y z $.  $d R w y z $.
    bnj23.1 $e |- B = { x e. A | -. ph } $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Proof shortened by Mario Carneiro, 22-Dec-2016.)
       (New usage is discouraged.) $)
    bnj23 $p |- ( A. z e. B -. z R y
        -> A. w e. A ( w R y -> [. w / x ]. ph ) ) $=
      ( cv wbr wn wral wsbc wi wcel wa cvv wb syl5bir vex sbcng ax-mp crab nfcv
      eleq2i elrabsf bitri weq breq1 notbid rspccv expdimp con4d ralrimiva ) DJ
      ZCJZHKZLZDGMZEJZUQHKZABVANZOEFUTVAFPZQZVCVBVCLZALZBVANZVEVBLZVARPVHVFSEUA
      ABVARUBUCUTVDVHVIVDVHQZVAGPZUTVIVKVAVGBFUDZPVJGVLVAIUFVGBVAFBFUEUGUHUSVID
      VAGDEUIURVBUPVAUQHUJUKULTUMTUNUO $.
  $}

  ${
    bnj31.1 $e |- ( ph -> E. x e. A ps ) $.
    bnj31.2 $e |- ( ps -> ch ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj31 $p |- ( ph -> E. x e. A ch ) $=
      ( wrex reximi syl ) ABDEHCDEHFBCDEGIJ $.
  $}

  ${
    $d A x y $.  $d x y $.  $d y z $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj62 $p |- ( [. z / x ]. x Fn A <-> z Fn A ) $=
      ( vy cv wfn wsbc vex fneq1 sbcie sbcbii sbcco 3bitr3i ) AEZCFZADEZGZDBEZG
      PCFZDRGOARGRCFZQSDROSAPDHCNPIJKOADRLSTDRBHCPRIJM $.
  $}

  ${
    $d Z w x $.  $d ph w $.  $d w x y $.
    bnj89.1 $e |- Z e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj89 $p |- ( [. Z / y ]. E! x ph <-> E! x [. Z / y ]. ph ) $=
      ( vw weq wal wex wsbc weu sbcex2 sbcal exbii cvv wcel sbcbig ax-mp df-eu
      wb sbcg bibi2i bitri albii 3bitri sbcbii 3bitr4i ) ABFGZTZBHZFIZCDJZACDJZ
      UHTZBHZFIZABKZCDJUMBKULUJCDJZFIUICDJZBHZFIUPUJFCDLURUTFUIBCDMNUTUOFUSUNBU
      SUMUHCDJZTZUNDOPZUSVBTEAUHCDOQRVAUHUMVCVAUHTEUHCDOUARUBUCUDNUEUQUKCDABFSU
      FUMBFSUG $.
  $}

  ${
    $d Y y $.  $d x y z $.
    bnj90.1 $e |- Y e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Proof shortened by Mario Carneiro, 22-Dec-2016.)
       (New usage is discouraged.) $)
    bnj90 $p |- ( [. Y / x ]. z Fn x <-> z Fn Y ) $=
      ( vy cvv wcel cv wfn wsbc wb fneq2 sbcie2g ax-mp ) CFGBHZAHZIZACJOCIZKDQO
      EHZIRAECFPSOLSCOLMN $.
  $}

  ${
    bnj101.1 $e |- E. x ph $.
    bnj101.2 $e |- ( ph -> ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj101 $p |- E. x ps $=
      ( eximii ) ABCDEF $.
  $}

  ${
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj105 $p |- 1o e. _V $=
      ( c1o c0 csn cvv df1o2 p0ex eqeltri ) ABCDEFG $.
  $}

  ${
    bnj115.1 $e |- ( et <-> A. n e. D ( ta -> th ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj115 $p |- ( et <-> A. n ( ( n e. D /\ ta ) -> th ) ) $=
      ( wi wral cv wcel wal wa df-ral impexp bicomi albii 3bitri ) CBAGZEDHEIDJ
      ZRGZEKSBLAGZEKFREDMTUAEUATSBANOPQ $.
  $}

  ${
    $d ps x $.
    bnj132.1 $e |- ( ph <-> E. x ( ps -> ch ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.)
       (New usage is discouraged.) $)
    bnj132 $p |- ( ph <-> ( ps -> E. x ch ) ) $=
      ( wi wex 19.37v bitri ) ABCFDGBCDGFEBCDHI $.
  $}

  ${
    bnj133.1 $e |- ( ph <-> E. x ps ) $.
    bnj133.2 $e |- ( ch <-> ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj133 $p |- ( ph <-> E. x ch ) $=
      ( wex exbii bitr4i ) ABDGCDGECBDFHI $.
  $}

  ${
    bnj156.1 $e |- ( ze0 <-> ( f Fn 1o /\ ph' /\ ps' ) ) $.
    bnj156.2 $e |- ( ze1 <-> [. g / f ]. ze0 ) $.
    bnj156.3 $e |- ( ph1 <-> [. g / f ]. ph' ) $.
    bnj156.4 $e |- ( ps1 <-> [. g / f ]. ps' ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj156 $p |- ( ze1 <-> ( g Fn 1o /\ ph1 /\ ps1 ) ) $=
      ( cv wsbc c1o wfn w3a sbcbii bicomi bitri sbc3an bnj62 3anbi123i ) HEABMZ
      NZUDOPZFGQZJUEAMOPZCDQZAUDNZUGEUIAUDIRUJUHAUDNZCAUDNZDAUDNZQUGUHCDAUDUAUK
      UFULFUMGABOUBFULKSGUMLSUCTTT $.
  $}

  ${
    $d m p $.
    bnj158.1 $e |- D = ( _om \ { (/) } ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj158 $p |- ( m e. D -> E. p e. _om m = suc p ) $=
      ( cv wcel com c0 wne wa csuc wceq wrex csn cdif eldifsn bitri nnsuc sylbi
      eleq2i ) BEZAFZUAGFUAHIJZUACEKLCGMUBUAGHNOZFUCAUDUADTUAGHPQCUARS $.
  $}

  ${
    $d m n $.
    bnj168.1 $e |- D = ( _om \ { (/) } ) $.
    $( First-order logic and set theory.  Revised to remove dependence on
       ~ ax-reg .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)  (Revised by
       NM, 21-Dec-2016.)  (New usage is discouraged.) $)
    bnj168 $p |- ( ( n =/= 1o /\ n e. D ) -> E. m e. D n = suc m ) $=
      ( cv c1o wne wcel wa csuc wceq wex wrex com anim2i sylibr con0 syl sylib
      c0 bnj158 r19.42v neeq1 biimpac df-1o wb nnon 0elon suc11 sylancl syl5rbb
      eqeq2i necon3bid syl5ibr ancld reximia anass rexbii simpr df-rex csn cdif
      bnj31 eleq2i eldifsn bitr2i simprl jca eximi ) CEZFGZVJAHZIZBEZAHZVJVNJZK
      ZIZBLZVQBAMVMVNNHZVQVNTGZIZIZBLZVSVMWBBNMWDVMVKWBIZWBBNVMVKVQIZWAIZBNMZWE
      BNMVMWFBNMZWHVMVKVQBNMZIWIVLWJVKACBDUAOVKVQBNUBPWFWGBNVTWFWAWFWAVTVPFGZVQ
      VKWKVJVPFUCUDVTVNTVPFVPFKVPTJZKZVTVNTKZFWLVPUEULVTVNQHTQHWMWNUFVNUGUHVNTU
      IUJUKUMUNUOUPRWGWEBNVKVQWAUQURSVKWBUSVCWBBNUTSWCVRBWCVOVQWCVTWAIZVOWBWAVT
      VQWAUSOVOVNNTVAVBZHWOAWPVNDVDVNNTVEVFSVTVQWAVGVHVIRVQBAUTP $.
  $}

  ${
    bnj206.1 $e |- ( ph' <-> [. M / n ]. ph ) $.
    bnj206.2 $e |- ( ps' <-> [. M / n ]. ps ) $.
    bnj206.3 $e |- ( ch' <-> [. M / n ]. ch ) $.
    bnj206.4 $e |- M e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj206 $p |- ( [. M / n ]. ( ph /\ ps /\ ch )
         <-> ( ph' /\ ps' /\ ch' ) ) $=
      ( w3a wsbc sbc3an bicomi 3anbi123i bitri ) ABCMDENADENZBDENZCDENZMFGHMABC
      DEOSFTGUAHFSIPGTJPHUAKPQR $.
  $}

  ${
    bnj216.1 $e |- B e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj216 $p |- ( A = suc B -> B e. A ) $=
      ( csuc wceq wcel sucid eleq2 mpbiri ) ABDZEBAFBJFBCGAJBHI $.
  $}

  $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
     3-Jun-2011.)  (New usage is discouraged.) $)
  bnj219 $p |- ( n = suc m -> m _E n ) $=
    ( cv csuc wceq wel cep wbr vex bnj216 epel sylibr ) BCZACZDEABFNMGHMNAIJABK
    L $.

  ${
    $d C x $.
    bnj226.1 $e |- B C_ C $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj226 $p |- U_ x e. A B C_ C $=
      ( ciun wss wral rgenw iunss mpbir ) ABCFDGCDGZABHLABEIABCDJK $.
  $}

  ${
    bnj228.1 $e |- ( ph <-> A. x e. A ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.)
       (New usage is discouraged.) $)
    bnj228 $p |- ( ( x e. A /\ ph ) -> ps ) $=
      ( cv wcel wral wi rsp sylbi impcom ) ACFDGZBABCDHMBIEBCDJKL $.
  $}

  ${
    bnj519.1 $e |- A e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Revised by Mario Carneiro, 6-May-2015.)
       (New usage is discouraged.) $)
    bnj519 $p |- ( B e. _V -> Fun { <. A , B >. } ) $=
      ( cvv wcel cop csn wfun funsng mpan ) ADEBDEABFGHCABDDIJ $.
  $}

  ${
    $d A x $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj521 $p |- ( A i^i { A } ) = (/) $=
      ( vx csn cin c0 wne wn wceq cv wcel wex elirr wa elin velsn eleq1 biimpac
      sylan2b sylbi exlimiv mto n0 mtbir nne mpbi ) AACZDZEFZGUGEHUHBIZUGJZBKZU
      KAAJZALUJULBUJUIAJZUIUFJZMULUIAUFNUNUMUIAHZULBAOUOUMULUIAAPQRSTUABUGUBUCU
      GEUDUE $.
  $}

  ${
    bnj524.1 $e |- ( ph <-> ps ) $.
    bnj524.2 $e |- A e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj524 $p |- ( [. A / x ]. ph <-> [. A / x ]. ps ) $=
      ( sbcbii ) ABCDEG $.
  $}

  ${
    $d ph x $.
    bnj525.1 $e |- A e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj525 $p |- ( [. A / x ]. ph <-> ph ) $=
      ( cvv wcel wsbc wb sbcg ax-mp ) CEFABCGAHDABCEIJ $.
  $}

  ${
    $d ps x $.
    bnj534.1 $e |- ( ch -> ( E. x ph /\ ps ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj534 $p |- ( ch -> E. x ( ph /\ ps ) ) $=
      ( wex wa 19.41v sylibr ) CADFBGABGDFEABDHI $.
  $}

  ${
    $d A x $.  $d B y $.  $d x y $.
    bnj538.1 $e |- A e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.)  (Proof shortened by OpenAI,
       30-Mar-2020.) $)
    bnj538 $p |- ( [. A / y ]. A. x e. B ph
          <-> A. x e. B [. A / y ]. ph ) $=
      ( cvv wcel wral wsbc wb sbcralg ax-mp ) DGHABEICDJACDJBEIKFACBDEGLM $.
  $}

  ${
    $d A x $.  $d B y $.  $d x y $.
    bnj538OLD.1 $e |- A e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  Obsolete version of ~ bnj538 as of 30-Mar-2020.
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bnj538OLD $p |- ( [. A / y ]. A. x e. B ph
          <-> A. x e. B [. A / y ]. ph ) $=
      ( wral wsbc cv wcel wi wal df-ral sbcbii cvv wb sbcimg ax-mp bnj525 bitri
      imbi1i albii sbcal 3bitr4i ) ABEGZCDHBIEJZAKZBLZCDHZACDHZBEGZUEUHCDABEMNU
      GCDHZBLUFUJKZBLUIUKULUMBULUFCDHZUJKZUMDOJULUOPFUFACDOQRUNUFUJUFCDFSUATUBU
      GBCDUCUJBEMUDT $.
  $}

  ${
    bnj529.1 $e |- D = ( _om \ { (/) } ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj529 $p |- ( M e. D -> (/) e. M ) $=
      ( wcel com c0 wne wa word csn eldifsn biimpi eleq2s nnord anim1i ord0eln0
      cdif biimpar 3syl ) BADBEDZBFGZHZBIZUAHFBDZUBBEFJQZABUEDUBBEFKLCMTUCUABNO
      UCUDUABPRS $.
  $}

  $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
     3-Jun-2011.)  (New usage is discouraged.) $)
  bnj551 $p |- ( ( m = suc p /\ m = suc i ) -> p = i ) $=
    ( cv csuc wceq wa eqtr2 suc11reg sylib ) BDZCDZEZFKADZEZFGMOFLNFKMOHLNIJ $.

  ${
    bnj563.19 $e |- ( et <-> ( m e. D /\ n = suc m /\ p e. _om /\ m = suc p ) )
        $.
    bnj563.21 $e |- ( rh <-> ( i e. _om /\ suc i e. n /\ m =/= suc i ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj563 $p |- ( ( et /\ rh ) -> suc i e. m ) $=
      ( cv csuc wceq wcel wne wa com w-bnj17 w3a bnj312 wo bnj252 bitri simplbi
      sylbi simp2bi simp3bi jca necom eleq2 biimpa wi elsuci orcom bitr3i sylib
      neor imp stoic3 syl3an3b 3expb syl2an ) AFJZEJZKZLZDJZKZVBMZVCVGNZOVGVCMZ
      BAVCCMZVEGJZPMZVCVLKLZQZVEHVOVEVKVMVNRZVOVEVKVMVNQVEVPOVKVEVMVNSVEVKVMVNU
      AUBUCUDBVHVIBVFPMZVHVIIUEBVQVHVIIUFUGVEVHVIVJVIVEVHVGVCNZVJVCVGUHVEVHVGVD
      MZVRVJVEVHVSVBVDVGUIUJVSVRVJVSVJVGVCLZTZVRVJUKZVGVCULWAVTVJTWBVTVJUMVJVGV
      CUPUNUOUQURUSUTVA $.
  $}

  ${
    bnj564.17 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj564 $p |- ( ta -> dom f = m ) $=
      ( cv wfn cdm wceq simp1bi fndm syl ) ABGZCGZHZNIOJAPDEFKONLM $.
  $}

  ${
    bnj593.1 $e |- ( ph -> E. x ps ) $.
    bnj593.2 $e |- ( ps -> ch ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj593 $p |- ( ph -> E. x ch ) $=
      ( wex eximi syl ) ABDGCDGEBCDFHI $.
  $}

  ${
    bnj596.1 $e |- ( ph -> A. x ph ) $.
    bnj596.2 $e |- ( ph -> E. x ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj596 $p |- ( ph -> E. x ( ph /\ ps ) ) $=
      ( wex wa ancli nf5i 19.42-1 syl ) AABCFZGABGCFALEHABCACDIJK $.
  $}

  ${
    $d A y $.  $d ph y $.  $d ps y $.  $d ps' x $.  $d x y $.
    bnj610.1 $e |- A e. _V $.
    bnj610.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    bnj610.3 $e |- ( x = y -> ( ph <-> ps' ) ) $.
    bnj610.4 $e |- ( y = A -> ( ps' <-> ps ) ) $.
    $( Pass from equality ( ` x = A ` ) to substitution ( ` [. A / x ]. ` )
       without the distinct variable restriction ($d ` A ` ` x ` ).
       (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj610 $p |- ( [. A / x ]. ph <-> ps ) $=
      ( cv wsbc vex sbcie sbcbii sbcco 3bitr3i ) ACDKZLZDELFDELACELBSFDEAFCRDMI
      NOACDEPFBDEGJNQ $.
  $}

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj642 $p |- ( ( ph /\ ps /\ ch /\ th ) -> ph ) $=
    ( w-bnj17 w3a bnj446 simprbi ) ABCDEBCDFAABCDGH $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj643 $p |- ( ( ph /\ ps /\ ch /\ th ) -> ps ) $=
    ( w-bnj17 w3a bnj291 simprbi ) ABCDEACDFBABCDGH $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj645 $p |- ( ( ph /\ ps /\ ch /\ th ) -> th ) $=
    ( w-bnj17 w3a df-bnj17 simprbi ) ABCDEABCFDABCDGH $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj658 $p |- ( ( ph /\ ps /\ ch /\ th ) -> ( ph /\ ps /\ ch ) ) $=
    ( w-bnj17 w3a df-bnj17 simplbi ) ABCDEABCFDABCDGH $.

  $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj667 $p |- ( ( ph /\ ps /\ ch /\ th ) -> ( ps /\ ch /\ th ) ) $=
    ( w-bnj17 w3a bnj446 simplbi ) ABCDEBCDFAABCDGH $.

  ${
    bnj705.1 $e |- ( ph -> ta ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj705 $p |- ( ( ph /\ ps /\ ch /\ th ) -> ta ) $=
      ( w-bnj17 bnj642 syl ) ABCDGAEABCDHFI $.
  $}

  ${
    bnj706.1 $e |- ( ps -> ta ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj706 $p |- ( ( ph /\ ps /\ ch /\ th ) -> ta ) $=
      ( w-bnj17 bnj643 syl ) ABCDGBEABCDHFI $.
  $}

  ${
    bnj707.1 $e |- ( ch -> ta ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj707 $p |- ( ( ph /\ ps /\ ch /\ th ) -> ta ) $=
      ( w-bnj17 w3a bnj258 simprbi syl ) ABCDGZCELABDHCABCDIJFK $.
  $}

  ${
    bnj708.1 $e |- ( th -> ta ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj708 $p |- ( ( ph /\ ps /\ ch /\ th ) -> ta ) $=
      ( w-bnj17 bnj645 syl ) ABCDGDEABCDHFI $.
  $}

  ${
    bnj721.1 $e |- ( ( ph /\ ps /\ ch ) -> ta ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj721 $p |- ( ( ph /\ ps /\ ch /\ th ) -> ta ) $=
      ( w-bnj17 w3a bnj658 syl ) ABCDGABCHEABCDIFJ $.
  $}

  ${
    bnj832.1 $e |- ( et <-> ( ph /\ ps ) ) $.
    bnj832.2 $e |- ( ph -> ta ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj832 $p |- ( et -> ta ) $=
      ( wa adantr sylbi ) DABGCEACBFHI $.
  $}

  ${
    bnj835.1 $e |- ( et <-> ( ph /\ ps /\ ch ) ) $.
    bnj835.2 $e |- ( ph -> ta ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj835 $p |- ( et -> ta ) $=
      ( w3a 3ad2ant1 sylbi ) EABCHDFABDCGIJ $.
  $}

  ${
    bnj836.1 $e |- ( et <-> ( ph /\ ps /\ ch ) ) $.
    bnj836.2 $e |- ( ps -> ta ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj836 $p |- ( et -> ta ) $=
      ( w3a 3ad2ant2 sylbi ) EABCHDFBADCGIJ $.
  $}

  ${
    bnj837.1 $e |- ( et <-> ( ph /\ ps /\ ch ) ) $.
    bnj837.2 $e |- ( ch -> ta ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj837 $p |- ( et -> ta ) $=
      ( w3a 3ad2ant3 sylbi ) EABCHDFCADBGIJ $.
  $}

  ${
    bnj769.1 $e |- ( et <-> ( ph /\ ps /\ ch /\ th ) ) $.
    bnj769.2 $e |- ( ph -> ta ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj769 $p |- ( et -> ta ) $=
      ( w-bnj17 bnj705 sylbi ) FABCDIEGABCDEHJK $.
  $}

  ${
    bnj770.1 $e |- ( et <-> ( ph /\ ps /\ ch /\ th ) ) $.
    bnj770.2 $e |- ( ps -> ta ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj770 $p |- ( et -> ta ) $=
      ( w-bnj17 bnj706 sylbi ) FABCDIEGABCDEHJK $.
  $}

  ${
    bnj771.1 $e |- ( et <-> ( ph /\ ps /\ ch /\ th ) ) $.
    bnj771.2 $e |- ( ch -> ta ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj771 $p |- ( et -> ta ) $=
      ( w-bnj17 bnj707 sylbi ) FABCDIEGABCDEHJK $.
  $}

  ${
    bnj887.1 $e |- ( ph <-> ph' ) $.
    bnj887.2 $e |- ( ps <-> ps' ) $.
    bnj887.3 $e |- ( ch <-> ch' ) $.
    bnj887.4 $e |- ( th <-> th' ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj887 $p |- ( ( ph /\ ps /\ ch /\ th ) <-> ( ph' /\ ps' /\ ch' /\ th' ) )
        $=
      ( w3a wa w-bnj17 3anbi123i anbi12i df-bnj17 3bitr4i ) ABCMZDNEFGMZHNABCDO
      EFGHOTUADHAEBFCGIJKPLQABCDREFGHRS $.
  $}

  ${
    bnj918.1 $e |- G = ( f u. { <. n , C >. } ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj918 $p |- G e. _V $=
      ( cv cop csn cun cvv vex snex unex eqeltri ) DBFZCFAGZHZIJEOQBKPLMN $.
  $}

  ${
    $d D n $.  $d F n $.  $d P n $.
    bnj919.1 $e |- ( ch <-> ( n e. D /\ F Fn n /\ ph /\ ps ) ) $.
    bnj919.2 $e |- ( ph' <-> [. P / n ]. ph ) $.
    bnj919.3 $e |- ( ps' <-> [. P / n ]. ps ) $.
    bnj919.4 $e |- ( ch' <-> [. P / n ]. ch ) $.
    bnj919.5 $e |- P e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj919 $p |- ( ch' <-> ( P e. D /\ F Fn P /\ ph' /\ ps' ) ) $=
      ( wsbc wcel w3a wa nfxfr cv wfn w-bnj17 sbcbii cvv df-bnj17 nfsbc1v nf3an
      wb nfan wceq eleq1 fneq2 sbceq1a syl6bbr 3anbi123d anbi12d bnj252 3bitr4g
      nfv sbciegf ax-mp 3bitri ) JCFEPFUAZDQZGVDUBZABUCZFEPZEDQZGEUBZHIUCZNCVGF
      EKUDEUEQVHVKUIOVGVKFEUEVKVIVJHRZISFVIVJHIUFVLIFVIVJHFVIFUTVJFUTHAFEPZFLAF
      EUGTUHIBFEPZFMBFEUGTUJTVDEUKZVEVFABRZSVIVJHIRZSVGVKVOVEVIVPVQVDEDULVOVFVJ
      AHBIVDEGUMVOAVMHAFEUNLUOVOBVNIBFEUNMUOUPUQVEVFABURVIVJHIURUSVAVBVC $.
  $}

  ${
    bnj923.1 $e |- D = ( _om \ { (/) } ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj923 $p |- ( n e. D -> n e. _om ) $=
      ( cv com wcel c0 csn cdif eldifi eleq2s ) BDZEFLEGHZIALEMJCK $.
  $}

  ${
    bnj927.1 $e |- G = ( f u. { <. n , C >. } ) $.
    bnj927.2 $e |- C e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj927 $p |- ( ( p = suc n /\ f Fn n ) -> G Fn p ) $=
      ( cv csuc wceq wfn wa csn cun cop cin c0 simpr vex a1i fnsn fnun syl21anc
      bnj521 fneq1i sylibr df-suc eqeq2i biimpi adantr fneq2d mpbird ) EHZCHZIZ
      JZBHZUNKZLZDUMKDUNUNMZNZKZUSUQUNAOMZNZVAKZVBUSURVCUTKZUNUTPQJZVEUPURRVFUS
      UNACSGUATVGUSUNUDTUNUTUQVCUBUCVADVDFUEUFUSUMVADUPUMVAJZURUPVHUOVAUMUNUGUH
      UIUJUKUL $.
  $}

  ${
    bnj930.1 $e |- ( ph -> F Fn A ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj930 $p |- ( ph -> Fun F ) $=
      ( wfn wfun fnfun syl ) ACBECFDBCGH $.
  $}

  ${
    bnj931.1 $e |- A = ( B u. C ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj931 $p |- B C_ A $=
      ( cun ssun1 sseqtr4i ) BBCEABCFDG $.
  $}

  ${
    $d ps x $.
    bnj937.1 $e |- ( ph -> E. x ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj937 $p |- ( ph -> ps ) $=
      ( wex 19.9v sylib ) ABCEBDBCFG $.
  $}

  ${
    bnj941.1 $e |- G = ( f u. { <. n , C >. } ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj941 $p |- ( C e. _V -> ( ( p = suc n /\ f Fn n ) -> G Fn p ) ) $=
      ( cvv wcel cv csuc wceq wfn wa wi c0 cif cop csn cun opeq2 sneqd eqid 0ex
      uneq2d syl5eq fneq1d imbi2d elimel bnj927 dedth ) AGHZEIZCIZJKBIZUMLMZDUL
      LZNUOUNUMUKAOPZQZRZSZULLZNAOAUQKZUPVAUOVBULDUTVBDUNUMAQZRZSUTFVBVDUSUNVBV
      CURAUQUMTUAUDUEUFUGUQBCUTEUTUBAOGUCUHUIUJ $.
  $}

  ${
    bnj945.1 $e |- G = ( f u. { <. n , C >. } ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj945 $p |- ( ( C e. _V /\ f Fn n /\ p = suc n /\ A e. n ) -> ( G ` A ) =
        ( f ` A ) ) $=
      ( cvv wcel cv wfn csuc wceq w-bnj17 wfun wss w3a cfv wa bitri fndm eleq2d
      cdm ad2antll pm5.32i bnj941 imp bnj930 cop csn bnj931 jctir anim1i sylbir
      df-bnj17 3ancomb 3anass anbi1i df-3an 3imtr4i funssfv syl ) BHIZCJZDJZKZF
      JZVELMZAVEIZNZEOZVDEPZAVDUCZIZQZAERAVDRMVCVHVFSZSZVISZVKVLSZVNSZVJVOVRVQV
      NSVTVQVNVIVQVMVEAVFVMVEMVCVHVEVDUAUDUBUEVQVSVNVQVKVLVQVGEVCVPEVGKBCDEFGUF
      UGUHEVDVEBUIUJGUKULUMUNVJVCVFVHQZVISVRVCVFVHVIUOWAVQVIWAVCVHVFQVQVCVFVHUP
      VCVHVFUQTURTVKVLVNUSUTAEVDVAVB $.
  $}

  ${
    bnj946.1 $e |- ( ph <-> A. x e. A ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj946 $p |- ( ph <-> A. x ( x e. A -> ps ) ) $=
      ( wral cv wcel wi wal df-ral bitri ) ABCDFCGDHBICJEBCDKL $.
  $}

  ${
    bnj951.1 $e |- ( ta -> ph ) $.
    bnj951.2 $e |- ( ta -> ps ) $.
    bnj951.3 $e |- ( ta -> ch ) $.
    bnj951.4 $e |- ( ta -> th ) $.
    $( ` /\ ` -manipulation.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj951 $p |- ( ta -> ( ph /\ ps /\ ch /\ th ) ) $=
      ( w3a w-bnj17 3jca df-bnj17 sylanbrc ) EABCJDABCDKEABCFGHLIABCDMN $.
  $}

  ${
    $d A y $.  $d B y $.  $d C y $.  $d x y $.
    bnj956.1 $e |- ( A = B -> A. x A = B ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj956 $p |- ( A = B -> U_ x e. A C = U_ x e. B C ) $=
      ( vy wceq cv wcel wrex cab ciun wal wb wa wex eleq2 anbi1d df-rex df-iun
      alexbii 3bitr4g syl abbidv 3eqtr4g ) BCGZFHDIZABJZFKUGACJZFKABDLACDLUFUHU
      IFUFUFAMZUHUINEUJAHZBIZUGOZAPUKCIZUGOZAPUHUIUFUMUOAUFULUNUGBCUKQRUAUGABSU
      GACSUBUCUDAFBDTAFCDTUE $.
  $}

  ${
    $d D f h $.  $d G h $.  $d N f h $.  $d ch h $.  $d h ph $.  $d h ph' $.
    $d h ps $.  $d h ps' $.
    bnj976.1 $e |- ( ch <-> ( N e. D /\ f Fn N /\ ph /\ ps ) ) $.
    bnj976.2 $e |- ( ph' <-> [. G / f ]. ph ) $.
    bnj976.3 $e |- ( ps' <-> [. G / f ]. ps ) $.
    bnj976.4 $e |- ( ch' <-> [. G / f ]. ch ) $.
    bnj976.5 $e |- G e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj976 $p |- ( ch' <-> ( N e. D /\ G Fn N /\ ph' /\ ps' ) ) $=
      ( vh wsbc wfn w3a wa cv wcel w-bnj17 wceq bnj252 sbcbii vex bnj525 sbc3an
      sbcco bnj62 3anbi1i bitri anbi12i 3bitr4ri 3bitr4i sbceq1a bitr4i syl6bbr
      sbcan fneq1 3anbi123d anbi2d 3bitr4g syl5bb sbcie 3bitr2i ) JCEFQCEPUAZQZ
      PFQGDUBZFGRZHIUCZNCEPFUJVIVLPFOVIVJVHGRZAEVHQZBEVHQZUCZVHFUDZVLVJEUAGRZAB
      UCZEVHQVJVRABSZTZEVHQZVIVPVSWAEVHVJVRABUEUFCVSEVHKUFVJEVHQZVTEVHQZTVJVMVN
      VOSZTZWBVPWCVJWDWEVJEVHPUGUHWDVREVHQZVNVOSWEVRABEVHUIWGVMVNVOEPGUKULUMUNV
      JVTEVHUTVJVMVNVOUEZUOUPVQWFVJVKHISZTVPVLVQWEWIVJVQVMVKVNHVOIGVHFVAVQVNVNP
      FQZHVNPFUQHAEFQWJLAEPFUJURUSVQVOVOPFQZIVOPFUQIBEFQWKMBEPFUJURUSVBVCWHVJVK
      HIUEVDVEVFVG $.
  $}

  ${
    bnj982.1 $e |- ( ph -> A. x ph ) $.
    bnj982.2 $e |- ( ps -> A. x ps ) $.
    bnj982.3 $e |- ( ch -> A. x ch ) $.
    bnj982.4 $e |- ( th -> A. x th ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj982 $p |- ( ( ph /\ ps /\ ch /\ th ) -> A. x ( ph /\ ps /\ ch /\ th ) )
        $=
      ( w-bnj17 w3a wa df-bnj17 hb3an hban hbxfrbi ) ABCDJABCKZDLEABCDMQDEABCEF
      GHNIOP $.
  $}

  ${
    $d ch p $.  $d et p $.  $d p th $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1019 $p |- ( E. p ( th /\ ch /\ ta /\ et ) <-> ( th /\ ch /\ et /\ E. p
        ta ) ) $=
      ( w3a wa wex w-bnj17 19.42v bnj258 exbii df-bnj17 3bitr4i ) BADFZCGZEHOCE
      HZGBACDIZEHBADQIOCEJRPEBACDKLBADQMN $.
  $}

  ${
    bnj1023.1 $e |- E. x ( ph -> ps ) $.
    bnj1023.2 $e |- ( ps -> ch ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1023 $p |- E. x ( ph -> ch ) $=
      ( wi wa wal wex a1i ax-gen exintr mp2 pm3.33 bnj101 ) ABGZBCGZHZACGDQRGZD
      IQDJSDJTDRQFKLEQRDMNABCOP $.
  $}

  ${
    bnj1095.1 $e |- ( ph <-> A. x e. A ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1095 $p |- ( ph -> A. x ph ) $=
      ( wral hbra1 hbxfrbi ) ABCDFCEBCDGH $.
  $}

  ${
    $d ch x $.  $d ta x $.  $d th x $.
    bnj1096.1 $e |- ( ph -> A. x ph ) $.
    bnj1096.2 $e |- ( ps <-> ( ch /\ th /\ ta /\ ph ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1096 $p |- ( ps -> A. x ps ) $=
      ( w-bnj17 ax-5 bnj982 hbxfrbi ) BCDEAIFHCDEAFCFJDFJEFJGKL $.
  $}

  ${
    $d D j $.  $d i j $.  $d j n $.
    bnj1098.1 $e |- D = ( _om \ { (/) } ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1098 $p |- E. j ( ( i =/= (/) /\ i e. n /\ n e. D ) -> ( j e. n /\ i =
        suc j ) ) $=
      ( cv c0 wne wel wcel w3a com csuc wceq wa wi wrex wex 3anrev df-3an bitri
      simpr bnj923 adantr elnn syl2anc anim1i sylbi df-rex imbi2i 19.37v bitr4i
      syl mpbi ancr bnj101 vex bnj216 ad2antlr simpr2 word 3simpc ancomd adantl
      nnsuc nnord ordtr1 4syl mp2and simplr jca bnj1023 ) BFZGHZBDIZDFZAJZKZCFZ
      LJZVMVSMNZOZVROZCDIZWAOCVRWBPZVRWCPCVRWACLQZPZWECRZVRVMLJZVNOZWFVRVQVOOZV
      NOZWJVRVQVOVNKWLVNVOVQSVQVOVNTUAWKWIVNWKVOVPLJZWIVQVOUBVQWMVOADEUCUDZVMVP
      UEUFUGUHCVMVEUMWGVRWBCRZPWHWFWOVRWACLUIUJVRWBCUKULUNVRWBUOUPWCWDWAWCCBIZV
      OWDWAWPVTVRVMVSCUQURUSWBVNVOVQUTWCWKWMVPVAWPVOOWDPVRWKWBVRVOVQVNVOVQVBVCV
      DWNVPVFVSVMVPVGVHVIVTWAVRVJVKVL $.
  $}

  ${
    bnj1101.1 $e |- E. x ( ph -> ps ) $.
    bnj1101.2 $e |- ( ch -> ph ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1101 $p |- E. x ( ch -> ps ) $=
      ( wi wex wa pm3.42 bnj101 pm4.71i imbi1i exbii mpbir ) CBGZDHCAIZBGZDHABG
      RDECABJKPRDCQBCAFLMNO $.
  $}

  ${
    $d C x $.  $d D x $.
    bnj1113.1 $e |- ( A = B -> C = D ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1113 $p |- ( A = B -> U_ x e. C E = U_ x e. D E ) $=
      ( wceq iuneq1d ) BCHADEFGI $.
  $}

  ${
    bnj1109.1 $e |- E. x ( ( A =/= B /\ ph ) -> ps ) $.
    bnj1109.2 $e |- ( ( A = B /\ ph ) -> ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1109 $p |- E. x ( ph -> ps ) $=
      ( wceq wi wne wa wex wal ex a1i ax-gen impexp exbii mpbi exintr mp2 df-ne
      exancom wn imbi1i pm2.61 imp sylan2b bnj101 ) DEHZABIZIZDEJZUKIZKZUKCUNUL
      KCLZUOCLUNULIZCMUNCLZUPUQCULUNUJABGNOPUMAKBIZCLURFUSUNCUMABQRSUNULCTUAUNU
      LCUCSUNULUJUDZUKIZUKUMUTUKDEUBUEULVAUKUJUKUFUGUHUI $.
  $}

  ${
    bnj1131.1 $e |- ( ph -> A. x ph ) $.
    bnj1131.2 $e |- E. x ph $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1131 $p |- ph $=
      ( wex 19.9h mpbi ) ABEADABCFG $.
  $}

  ${
    bnj1138.1 $e |- A = ( B u. C ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1138 $p |- ( X e. A <-> ( X e. B \/ X e. C ) ) $=
      ( wcel cun wo eleq2i elun bitri ) DAFDBCGZFDBFDCFHALDEIDBCJK $.
  $}

  ${
    bnj1142.1 $e |- ( ph -> A. x ( x e. A -> ps ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1142 $p |- ( ph -> A. x e. A ps ) $=
      ( cv wcel wi wal wral df-ral sylibr ) ACFDGBHCIBCDJEBCDKL $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1143 $p |- U_ x e. A B C_ B $=
      ( vy vz c0 wceq cv wcel wrex cab df-iun wn wal notnotb neq0 xchbinx sylbi
      wex notbii ciun wss wa df-rex exsimpl con3i alrimiv eqeq1i eleq2i 3bitr3i
      exbii alnex abid albii 3bitr2i sylibr syl5eq 0ss syl6eqss iunconst eqimss
      wne syl pm2.61ine ) ABCUAZCUBZBFBFGZVEFCVGVEDHCIABJDKZFADBCLZVGEHZCIZABJZ
      MZENZVHFGZVGVMEVGAHBIZASZMVMVGVGMVQVGOABPQVLVQVLVPVKUCASVQVKABUDVPVKAUERU
      FRUGVOVJVLEKZIZESZMVSMZENVNVOVOMZVTVOOVEFGZMVJVEIZESWBVTEVEPWCVOVEVHFVIUH
      TWDVSEVEVRVJAEBCLUIUKUJQVSEULWAVMEVSVLVLEUMTUNUOUPUQCURUSBFVBVECGVFABCUTV
      ECVAVCVD $.
  $}

  ${
    $d A w y $.  $d B w x y $.
    bnj1146.1 $e |- ( y e. A -> A. x y e. A ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1146 $p |- U_ x e. A B C_ B $=
      ( vw ciun cv wcel wrex cab wa wex nfv nf5i nfan weq eleq1 df-rex df-iun
      anbi1d cbvex 3bitr4i abbii 3eqtr4i bnj1143 eqsstri ) ACDGZBCDGZDFHDIZACJZ
      FKUJBCJZFKUHUIUKULFAHZCIZUJLZAMBHZCIZUJLZBMUKULUOURABUOBNUQUJAUQAEOUJANPA
      BQUNUQUJUMUPCRUAUBUJACSUJBCSUCUDAFCDTBFCDTUEBCDUFUG $.
  $}

  ${
    bnj1149.1 $e |- ( ph -> A e. _V ) $.
    bnj1149.2 $e |- ( ph -> B e. _V ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1149 $p |- ( ph -> ( A u. B ) e. _V ) $=
      ( cvv wcel cun unexg syl2anc ) ABFGCFGBCHFGDEBCFFIJ $.
  $}

  ${
    $d B w y z $.  $d B x y z $.  $d R w y z $.  $d R x y z $.
    bnj1185.1 $e |- ( ph -> E. z e. B A. w e. B -. w R z ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1185 $p |- ( ph -> E. x e. B A. y e. B -. y R x ) $=
      ( cv wbr wn wral wrex weq breq1 notbid wcel wa wex df-rex cbvralv ralbidv
      rexbii sylib eleq1 breq2 anbi12d cbvexv 3bitr4ri sylibr ) ACIZDIZGJZKZCFL
      ZDFMZUKBIZGJZKZCFLZBFMZAEIZULGJZKZEFLZDFMUPHVEUODFVDUNECFECNVCUMVBUKULGOP
      UAUCUDULFQZUORZDSUQFQZUTRZBSUPVAVGVIDBDBNZVFVHUOUTULUQFUEVJUNUSCFVJUMURUL
      UQUKGUFPUBUGUHUODFTUTBFTUIUJ $.
  $}

  ${
    bnj1196.1 $e |- ( ph -> E. x e. A ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1196 $p |- ( ph -> E. x ( x e. A /\ ps ) ) $=
      ( wrex cv wcel wa wex df-rex sylib ) ABCDFCGDHBICJEBCDKL $.
  $}

  ${
    bnj1198.1 $e |- ( ph -> E. x ps ) $.
    bnj1198.2 $e |- ( ps' <-> ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1198 $p |- ( ph -> E. x ps' ) $=
      ( wex exbii sylibr ) ABCGDCGEDBCFHI $.
  $}

  ${
    $d ch x $.
    bnj1209.1 $e |- ( ch -> E. x e. B ph ) $.
    bnj1209.2 $e |- ( th <-> ( ch /\ x e. B /\ ph ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1209 $p |- ( ch -> E. x th ) $=
      ( cv wcel wa wex bnj1196 ancli 19.42v sylibr w3a 3anass bitri bnj1198 ) B
      BDHEIZAJZJZDCBBUADKZJUBDKBUCBADEFLMBUADNOCBTAPUBGBTAQRS $.
  $}

  ${
    bnj1211.1 $e |- ( ph -> A. x e. A ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1211 $p |- ( ph -> A. x ( x e. A -> ps ) ) $=
      ( wral cv wcel wi wal df-ral sylib ) ABCDFCGDHBICJEBCDKL $.
  $}

  ${
    bnj1213.1 $e |- A C_ B $.
    bnj1213.2 $e |- ( th -> x e. A ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1213 $p |- ( th -> x e. B ) $=
      ( cv sseldi ) ACDBGEFH $.
  $}

  ${
    $d A x $.
    bnj1212.1 $e |- B = { x e. A | ph } $.
    bnj1212.2 $e |- ( th <-> ( ch /\ x e. B /\ ta ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1212 $p |- ( th -> x e. A ) $=
      ( ssrab3 cv wcel simp2bi bnj1213 ) CEGFAEFGHJCBEKGLDIMN $.
  $}

  ${
    bnj1219.1 $e |- ( ch <-> ( ph /\ ps /\ ze ) ) $.
    bnj1219.2 $e |- ( th <-> ( ch /\ ta /\ et ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1219 $p |- ( th -> ps ) $=
      ( simp2bi bnj835 ) CEFBDICABGHJK $.
  $}

  ${
    bnj1224.1 $e |- -. ( th /\ ta /\ et ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1224 $p |- ( ( th /\ ta ) -> -. et ) $=
      ( wa w3a df-3an mtbi imnani ) ABEZCABCFJCEDABCGHI $.
  $}

  ${
    $d x y $.
    bnj1230.1 $e |- B = { x e. A | ph } $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1230 $p |- ( y e. B -> A. x y e. B ) $=
      ( crab nfrab1 nfcxfr nfcrii ) BCEBEABDGFABDHIJ $.
  $}

  ${
    bnj1232.1 $e |- ( ph <-> ( ps /\ ch /\ th /\ ta ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1232 $p |- ( ph -> ps ) $=
      ( w-bnj17 bnj642 sylbi ) ABCDEGBFBCDEHI $.
  $}

  ${
    bnj1235.1 $e |- ( ph <-> ( ps /\ ch /\ th /\ ta ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1235 $p |- ( ph -> ch ) $=
      ( id bnj770 ) BCDECAFCGH $.
  $}

  $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
     3-Jun-2011.)  (New usage is discouraged.) $)
  bnj1239 $p |- ( E. x e. A ( ps /\ ch ) -> E. x e. A ps ) $=
    ( wa simpl reximi ) ABEACDABFG $.

  ${
    bnj1238.1 $e |- ( ph <-> E. x e. A ( ps /\ ch ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1238 $p |- ( ph -> E. x e. A ps ) $=
      ( wa wrex bnj1239 sylbi ) ABCGDEHBDEHFBCDEIJ $.
  $}

  ${
    bnj1241.1 $e |- ( ph -> A C_ B ) $.
    bnj1241.2 $e |- ( ps -> C = A ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1241 $p |- ( ( ph /\ ps ) -> C C_ B ) $=
      ( wa wceq eqcomd adantl wss adantr eqsstr3d ) ABHECDBCEIABECGJKACDLBFMN
      $.
  $}

  ${
    bnj1247.1 $e |- ( ph <-> ( ps /\ ch /\ th /\ ta ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1247 $p |- ( ph -> th ) $=
      ( id bnj771 ) BCDEDAFDGH $.
  $}

  ${
    bnj1254.1 $e |- ( ph <-> ( ps /\ ch /\ th /\ ta ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1254 $p |- ( ph -> ta ) $=
      ( w-bnj17 id bnj708 sylbi ) ABCDEGEFBCDEEEHIJ $.
  $}

  ${
    bnj1262.1 $e |- A C_ B $.
    bnj1262.2 $e |- ( ph -> C = A ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1262 $p |- ( ph -> C C_ B ) $=
      ( syl6eqss ) ADBCFEG $.
  $}

  ${
    bnj1266.1 $e |- ( ch -> E. x ( ph /\ ps ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1266 $p |- ( ch -> E. x ps ) $=
      ( wa simpr bnj593 ) CABFBDEABGH $.
  $}

  ${
    $d ps x $.
    bnj1265.1 $e |- ( ph -> E. x e. A ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1265 $p |- ( ph -> ps ) $=
      ( cv wcel bnj1196 bnj1266 bnj937 ) ABCCFDGBACABCDEHIJ $.
  $}

  ${
    bnj1275.1 $e |- ( ph -> E. x ( ps /\ ch ) ) $.
    bnj1275.2 $e |- ( ph -> A. x ph ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1275 $p |- ( ph -> E. x ( ph /\ ps /\ ch ) ) $=
      ( wa w3a bnj596 3anass bnj1198 ) AABCGZGDABCHALDFEIABCJK $.
  $}

  ${
    bnj1276.1 $e |- ( ph -> A. x ph ) $.
    bnj1276.2 $e |- ( ps -> A. x ps ) $.
    bnj1276.3 $e |- ( ch -> A. x ch ) $.
    bnj1276.4 $e |- ( th <-> ( ph /\ ps /\ ch ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1276 $p |- ( th -> A. x th ) $=
      ( w3a hb3an hbxfrbi ) DABCJEIABCEFGHKL $.
  $}

  ${
    bnj1292.1 $e |- A = ( B i^i C ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1292 $p |- A C_ B $=
      ( cin inss1 eqsstri ) ABCEBDBCFG $.
  $}

  ${
    bnj1293.1 $e |- A = ( B i^i C ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1293 $p |- A C_ C $=
      ( cin inss2 eqsstri ) ABCECDBCFG $.
  $}

  ${
    bnj1294.1 $e |- ( ph -> A. x e. A ps ) $.
    bnj1294.2 $e |- ( ph -> x e. A ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1294 $p |- ( ph -> ps ) $=
      ( cv wcel wral wi wal df-ral sp impcom sylan2b syl2anc ) ACGDHZBCDIZBFERQ
      QBJZCKZBBCDLTQBSCMNOP $.
  $}

  ${
    bnj1299.1 $e |- ( ph -> E. x e. A ( ps /\ ch ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1299 $p |- ( ph -> E. x e. A ps ) $=
      ( wa wrex bnj1239 syl ) ABCGDEHBDEHFBCDEIJ $.
  $}

  ${
    bnj1304.1 $e |- ( ph -> E. x ps ) $.
    bnj1304.2 $e |- ( ps -> ch ) $.
    bnj1304.3 $e |- ( ps -> -. ch ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1304 $p |- -. ph $=
      ( wn wa wex wal notnotb anbi2i exbii ioran exnal 3bitr2ri notbii exancom
      wo 3bitri exmid mpgbi jca bnj593 mto ) ACCHZIZDJZCUGTZUIHZDUJDKZULHZHUGCI
      ZDJZHUKULLUMUOUOUGUGHZIZDJUJHZDJUMUNUQDCUPUGCLMNURUQDCUGONUJDPQRUOUIUGCDS
      RUACUBUCABUHDEBCUGFGUDUEUF $.
  $}

  ${
    $d A y $.  $d B y $.  $d x y $.
    bnj1316.1 $e |- ( y e. A -> A. x y e. A ) $.
    bnj1316.2 $e |- ( y e. B -> A. x y e. B ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1316 $p |- ( A = B -> U_ x e. A C = U_ x e. B C ) $=
      ( wceq nfcii nfeq nf5ri bnj956 ) ACDECDHAACDABCFIABDGIJKL $.
  $}

  ${
    $d x y $.
    bnj1317.1 $e |- A = { x | ph } $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1317 $p |- ( y e. A -> A. x y e. A ) $=
      ( cab hbab1 hbxfreq ) BCDABFEABCGH $.
  $}

  $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
     3-Jun-2011.)  (New usage is discouraged.) $)
  bnj1322 $p |- ( A = B -> ( A i^i B ) = A ) $=
    ( wceq wss cin eqimss df-ss sylib ) ABCABDABEACABFABGH $.

  ${
    bnj1340.1 $e |- ( ps -> E. x th ) $.
    bnj1340.2 $e |- ( ch <-> ( ps /\ th ) ) $.
    bnj1340.3 $e |- ( ps -> A. x ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1340 $p |- ( ps -> E. x ch ) $=
      ( wa bnj596 bnj1198 ) AACHDBACDGEIFJ $.
  $}

  ${
    bnj1345.1 $e |- ( ph -> E. x ( ps /\ ch ) ) $.
    bnj1345.2 $e |- ( th <-> ( ph /\ ps /\ ch ) ) $.
    bnj1345.3 $e |- ( ph -> A. x ph ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1345 $p |- ( ph -> E. x th ) $=
      ( w3a bnj1275 bnj1198 ) AABCIEDABCEFHJGK $.
  $}

  ${
    $d ph x $.  $d ps x $.
    bnj1350.1 $e |- ( ch -> A. x ch ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1350 $p |- ( ( ph /\ ps /\ ch ) -> A. x ( ph /\ ps /\ ch ) ) $=
      ( ax-5 hb3an ) ABCDADFBDFEG $.
  $}

  ${
    $d ps x $.
    bnj1351.1 $e |- ( ph -> A. x ph ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1351 $p |- ( ( ph /\ ps ) -> A. x ( ph /\ ps ) ) $=
      ( ax-5 hban ) ABCDBCEF $.
  $}

  ${
    $d ph x $.
    bnj1352.1 $e |- ( ps -> A. x ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1352 $p |- ( ( ph /\ ps ) -> A. x ( ph /\ ps ) ) $=
      ( ax-5 hban ) ABCACEDF $.
  $}

  ${
    $d A x $.  $d B x $.
    bnj1361.1 $e |- ( ph -> A. x ( x e. A -> x e. B ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1361 $p |- ( ph -> A C_ B ) $=
      ( cv wcel wi wal wss dfss2 sylibr ) ABFZCGMDGHBICDJEBCDKL $.
  $}

  ${
    $d A x y $.
    bnj1366.1 $e |- ( ps <-> ( A e. _V /\ A. x e. A E! y ph /\ B = { y | E. x
        e. A ph } ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Proof shortened by Mario Carneiro, 22-Dec-2016.)
       (New usage is discouraged.) $)
    bnj1366 $p |- ( ps -> B e. _V ) $=
      ( cio cmpt crn cvv wrex cab wcel weu wral wceq cv wb syl simp3bi wal nfcv
      simp2bi nfeu1 nfral nfra1 wa rspa iota1 syl6bb rexbida abid eqid elrnmpti
      eqcom iotaex 3bitr4g alrimi nfab1 nfiota1 nfmpt nfrn cleqf sylibr simp1bi
      eqtrd mptexg rnexg 3syl eqeltrd ) BFCEADHZIZJZKBFACELZDMZVNBEKNZADOZCEPZF
      VPQZGUABDRZVPNZWAVNNZSZDUBZVPVNQBVSWEBVQVSVTGUDVSWDDVRDCEDEUCZADUEUFVSVOW
      AVLQZCELWBWCVSAWGCEVRCEUGVSCRENUHVRAWGSVRCEUIVRAVLWAQWGADUJVLWAUPUKTULVOD
      UMCEVLWAVMVMUNADUQUOURUSTDVPVNVODUTDVMDCEVLWFADVAVBVCVDVEVGBVQVMKNVNKNBVQ
      VSVTGVFCEVLKVHVMKVIVJVK $.
  $}

  ${
    $d A f g x y z $.  $d D x $.  $d g ph $.  $d ps x y z $.
    bnj1379.1 $e |- ( ph <-> A. f e. A Fun f ) $.
    bnj1379.2 $e |- D = ( dom f i^i dom g ) $.
    bnj1379.3 $e |- ( ps <-> ( ph /\ A. f e. A A. g e. A ( f |` D ) = ( g |` D
        ) ) ) $.
    bnj1379.5 $e |- ( ch <-> ( ps /\ <. x , y >. e. U. A /\ <. x , z >. e. U. A
        ) ) $.
    bnj1379.6 $e |- ( th <-> ( ch /\ f e. A /\ <. x , y >. e. f ) ) $.
    bnj1379.7 $e |- ( ta <-> ( th /\ g e. A /\ <. x , z >. e. g ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1379 $p |- ( ps -> Fun U. A ) $=
      ( wcel bnj835 cuni wrel cv cop wa wceq wi wal wfun wral cres bnj1095 nf5i
      nfra1 nfan bnj946 biimpi 19.21bi bnj832 funrel syl6 ralrimi reluni sylibr
      nfxfr w3a wex eluni2 bnj1196 bnj836 nfv nf3an nf5ri bnj1345 simp3bi nfra2
      wrex syl cfv simprbi bnj1219 bnj1294 simp2bi fveq1d cdm cin opeldm bnj837
      vex elind syl6eleqr fvres 3eqtr3d funopfv sylc funeq cbvralv sylib bnj593
      bnj937 sylbir 3expib alrimivv alrimiv dffun4 sylanbrc ) BIUAZUBZFUCZGUCZU
      DZXGSZXIHUCZUDZXGSZUEXJXMUFZUGZHUHGUHZFUHXGUIBKUCZUBZKIUJXHBXTKIBAXSJUKZL
      UCZJUKZUFZLIUJZKIUJZUEZKOAYFKAKAXSUIZKIMULUMYEKIUNUOVEZBXSISZYHXTAYFYJYHU
      GZBOAYKKAYKKUHAYHKIMUPUQURUSXSUTVAVBKIVCVDBXRFBXQGHBXLXOXPBXLXOVFZCXPPCXP
      KCDXPKCYJXKXSSZDKBXLXOYJYMUEKVGCPXLYMKIXLYMKIVQKXKIVHUQVIVJQCKCYLKPBXLXOK
      YIXLKVKXOKVKVLVEVMVNDXPLDEXPLDYBISZXNYBSZELDXOYNYOUELVGCYJYMXODQCBXLXOPVO
      TXOYOLIXOYOLIVQLXNIVHUQVIVRRDLDCYJYMVFLQCYJYMLCYLLPBXLXOLBYGLOAYFLALVKYDK
      LIIVPUOVEXLLVKXOLVKVLVEYJLVKYMLVKVLVEVMVNEXIXSVSZXIYBVSZXJXMEXIYAVSZXIYCV
      SZYPYQEXIYAYCEYDLIEYEKIDYNYOYFERCYJYMYFDQBXLXOYFCPBAYFOVTTTTCYJDEYNYOYMQR
      WAZWBEDYNYORWCZWBWDEXIJSZYRYPUFEXIXSWEZYBWEZWFJEUUCUUDXIEYMXIUUCSDYNYOYME
      RDCYJYMQVOTZXIXJXSFWIZGWIWGVRDYNYOXIUUDSERXIXMYBUUFHWIWGWHWJNWKZXIJXSWLVR
      EUUBYSYQUFUUGXIJYBWLVRWMEYHYMYPXJUFEYHKIDYNYOYHKIUJZERCYJYMUUHDQBXLXOUUHC
      PAYFUUHBOAUUHMUQUSTTTZYTWBUUEXIXJXSWNWOEYBUIZYOYQXMUFEUUJLIEUUHUUJLIUJUUI
      YHUUJKLIXSYBWPWQWRUUAWBEDYNYORVOXIXMYBWNWOWMWSWTWSWTXAXBXCXDFGHXGXEXF $.
  $}

  ${
    $d A f g x y z $.  $d D x $.  $d g ph $.  $d ps x y z $.
    bnj1383.1 $e |- ( ph <-> A. f e. A Fun f ) $.
    bnj1383.2 $e |- D = ( dom f i^i dom g ) $.
    bnj1383.3 $e |- ( ps <-> ( ph /\ A. f e. A A. g e. A ( f |` D ) = ( g |` D
        ) ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1383 $p |- ( ps -> Fun U. A ) $=
      ( vx vy vz cv cop cuni wcel w3a biid bnj1379 ) ABBJMZKMNZCOZPTLMNZUBPQZUD
      EMZCPUAUEPQZUFFMZCPUCUGPQZJKLCDEFGHIUDRUFRUHRS $.
  $}

  ${
    $d A g h x $.  $d D h $.  $d E f $.  $d f g h x $.  $d g ph' $.
    bnj1385.1 $e |- ( ph <-> A. f e. A Fun f ) $.
    bnj1385.2 $e |- D = ( dom f i^i dom g ) $.
    bnj1385.3 $e |- ( ps <-> ( ph /\ A. f e. A A. g e. A ( f |` D ) = ( g |` D
        ) ) ) $.
    bnj1385.4 $e |- ( x e. A -> A. f x e. A ) $.
    bnj1385.5 $e |- ( ph' <-> A. h e. A Fun h ) $.
    bnj1385.6 $e |- E = ( dom h i^i dom g ) $.
    bnj1385.7 $e |- ( ps' <-> ( ph' /\ A. h e. A A. g e. A ( h |` E ) = ( g |`
        E ) ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1385 $p |- ( ps -> Fun U. A ) $=
      ( cres wral cuni wfun cv wceq wa wcel wi wal nfcii nfcri nfim eleq1 funeq
      nfv imbi12d cbval df-ral 3bitr4i nfral cdm cin dmeq ineq1d 3eqtr4g reseq1
      reseq2d eqtrd eqeq12d ralbidv anbi12i bnj1383 sylbi ) BKDUAUBAFUCZESZGUCZ
      ESZUDZGDTZFDTZUEJHUCZISZVOISZUDZGDTZHDTZUEBKAJVSWEVMUBZFDTZVTUBZHDTZAJVMD
      UFZWFUGZFUHVTDUFZWHUGZHUHWGWIWKWMFHWKHUNWLWHFFHDFCDOUIZUJZWHFUNUKVMVTUDZW
      JWLWFWHVMVTDULZVMVTUMUOUPWFFDUQWHHDUQURLPURWJVRUGZFUHWLWDUGZHUHVSWEWRWSFH
      WRHUNWLWDFWOWCFGDWNWCFUNUSUKWPWJWLVRWDWQWPVQWCGDWPVNWAVPWBWPVNVMISWAWPEIV
      MWPVMUTZVOUTZVAVTUTZXAVAEIWPWTXBXAVMVTVBVCMQVDZVFVMVTIVEVGWPEIVOXCVFVHVIU
      OUPVRFDUQWDHDUQURVJNRURJKDIHGPQRVKVL $.
  $}

  ${
    $d A g h x $.  $d D h $.  $d f g h x $.
    bnj1386.1 $e |- ( ph <-> A. f e. A Fun f ) $.
    bnj1386.2 $e |- D = ( dom f i^i dom g ) $.
    bnj1386.3 $e |- ( ps <-> ( ph /\ A. f e. A A. g e. A ( f |` D ) = ( g |` D
        ) ) ) $.
    bnj1386.4 $e |- ( x e. A -> A. f x e. A ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1386 $p |- ( ps -> Fun U. A ) $=
      ( vh cv cdm cin wfun wral cres wceq biid wa eqid bnj1385 ) ABCDEFGLLMZNGM
      ZNOZUDPLDQZUGUDUFRUEUFRSGDQLDQUAZHIJKUGTUFUBUHTUC $.
  $}

  ${
    bnj1397.1 $e |- ( ph -> E. x ps ) $.
    bnj1397.2 $e |- ( ps -> A. x ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1397 $p |- ( ph -> ps ) $=
      ( wex 19.9h sylib ) ABCFBDBCEGH $.
  $}

  ${
    $d A y z $.  $d x y z $.
    bnj1400.1 $e |- ( y e. A -> A. x y e. A ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1400 $p |- dom U. A = U_ x e. A dom x $=
      ( vz cuni cdm cv ciun dmuni wcel wrex cab df-iun nfcv nfv weq dmeq eqtr4i
      nfcii eleq2d cbvrexf abbii ) CFGECEHZGZIZACAHZGZIZECJUIBHZUHKZACLZBMZUFAB
      CUHNUFUJUEKZECLZBMUMEBCUENULUOBUKUNAECABCDTECOUKEPUNAPAEQUHUEUJUGUDRUAUBU
      CSSS $.
  $}

  ${
    $d X y $.
    bnj1405.1 $e |- ( ph -> X e. U_ y e. A B ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1405 $p |- ( ph -> E. y e. A X e. B ) $=
      ( ciun wcel wrex eliun sylib ) AEBCDGHEDHBCIFBECDJK $.
  $}

  ${
    bnj1422.1 $e |- ( ph -> Fun A ) $.
    bnj1422.2 $e |- ( ph -> dom A = B ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1422 $p |- ( ph -> A Fn B ) $=
      ( wfun cdm wceq wfn df-fn sylanbrc ) ABFBGCHBCIDEBCJK $.
  $}

  ${
    bnj1424.1 $e |- A = ( B u. C ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1424 $p |- ( D e. A -> ( D e. B \/ D e. C ) ) $=
      ( wcel wo bnj1138 biimpi ) DAFDBFDCFGABCDEHI $.
  $}

  ${
    bnj1436.1 $e |- A = { x | ph } $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1436 $p |- ( x e. A -> ph ) $=
      ( cv wcel abeq2i biimpi ) BECFAABCDGH $.
  $}

  ${
    $d y z $.
    bnj1441.1 $e |- ( x e. A -> A. y x e. A ) $.
    bnj1441.2 $e |- ( ph -> A. y ph ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1441 $p |- ( z e. { x e. A | ph } -> A. y z e. { x e. A | ph } ) $=
      ( crab cv wcel wa cab df-rab hban hbab hbxfreq ) CDABEHBIEJZAKZBLABEMRCBD
      QACFGNOP $.
  $}

  ${
    bnj1454.1 $e |- A = { x | ph } $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1454 $p |- ( B e. _V -> ( B e. A <-> [. B / x ]. ph ) ) $=
      ( cvv wcel wsbc cab wb df-sbc a1i eleq2i syl6rbbr ) DFGZABDHZDABIZGZDCGPR
      JOABDKLCQDEMN $.
  $}

  ${
    $d ph x $.
    bnj1459.1 $e |- ( ps <-> ( ph /\ x e. A ) ) $.
    bnj1459.2 $e |- ( ps -> ch ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1459 $p |- ( ph -> A. x e. A ch ) $=
      ( cv wcel wa sylbir ralrimiva ) ACDEADHEIJBCFGKL $.
  $}

  ${
    $d A x $.  $d V x $.
    bnj1464.1 $e |- ( ps -> A. x ps ) $.
    bnj1464.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj1464 $p |- ( A e. V -> ( [. A / x ]. ph <-> ps ) ) $=
      ( nf5i sbciegf ) ABCDEBCFHGI $.
  $}

  ${
    $d A x $.  $d V x $.
    bnj1465.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    bnj1465.2 $e |- ( ps -> A. x ps ) $.
    bnj1465.3 $e |- ( ch -> ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1465 $p |- ( ( ch /\ A e. V ) -> E. x ph ) $=
      ( wcel wa wsbc adantr wb bnj1464 adantl mpbird spesbcd ) CEFJZKZADETADELZ
      BCBSIMSUABNCABDEFHGOPQR $.
  $}

  ${
    $d A y $.  $d V y $.  $d ph y $.  $d ps y $.  $d x y $.
    bnj1468.1 $e |- ( ps -> A. x ps ) $.
    bnj1468.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    bnj1468.3 $e |- ( y e. A -> A. x y e. A ) $.
    $( Conversion of implicit substitution to explicit class substitution.
       (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj1468 $p |- ( A e. V -> ( [. A / x ]. ph <-> ps ) ) $=
      ( wsbc cv wcel sbcco ax-5 wceq wb wi nfcii nfeq2 nfsbc1v nf5i nf5ri ax6ev
      nfbi nfim weq eqeq1 syl6bir sbceq1a bibi1d sylibd bnj1131 bnj1464 syl5bbr
      bnj101 ) ACEJACDKZJZDEJEFLBACDEMUQBDEFBDNUPEOZUQBPZQZCUTCURUSCCUPECDEIRSU
      QBCACUPTBCGUAUDUEUBCDUFZUTCCDUCVAURABPZUSVAURCKZEOVBVCUPEUGHUHVAAUQBACUPU
      IUJUKUOULUMUN $.
  $}

  ${
    bnj1476.1 $e |- D = { x e. A | -. ph } $.
    bnj1476.2 $e |- ( ps -> D = (/) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1476 $p |- ( ps -> A. x e. A ph ) $=
      ( cv wcel wn wi c0 wceq wal crab nfrab1 nfcxfr eq0f sylib wa rabeq2i iman
      notbii sylbb2 sylg bnj1142 ) BACDBCHZEIZJZUGDIZAKZCBELMUICNGCECEAJZCDOFUL
      CDPQRSUIUJULTZJUKUHUMULCEDFUAUCUJAUBUDUEUF $.
  $}

  ${
    bnj1502.1 $e |- ( ph -> Fun F ) $.
    bnj1502.2 $e |- ( ph -> G C_ F ) $.
    bnj1502.3 $e |- ( ph -> A e. dom G ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1502 $p |- ( ph -> ( F ` A ) = ( G ` A ) ) $=
      ( wfun wss cdm wcel cfv wceq funssfv syl3anc ) ACHDCIBDJKBCLBDLMEFGBCDNO
      $.
  $}

  ${
    bnj1503.1 $e |- ( ph -> Fun F ) $.
    bnj1503.2 $e |- ( ph -> G C_ F ) $.
    bnj1503.3 $e |- ( ph -> A C_ dom G ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1503 $p |- ( ph -> ( F |` A ) = ( G |` A ) ) $=
      ( wfun wss cdm cres wceq fun2ssres syl3anc ) ACHDCIBDJICBKDBKLEFGBCDMN $.
  $}

  ${
    bnj1517.1 $e |- A = { x | ( ph /\ ps ) } $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1517 $p |- ( x e. A -> ps ) $=
      ( cv wcel wa bnj1436 simprd ) CFDGABABHCDEIJ $.
  $}

  ${
    bnj1521.1 $e |- ( ch -> E. x e. B ph ) $.
    bnj1521.2 $e |- ( th <-> ( ch /\ x e. B /\ ph ) ) $.
    bnj1521.3 $e |- ( ch -> A. x ch ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1521 $p |- ( ch -> E. x th ) $=
      ( cv wcel bnj1196 bnj1345 ) BDIEJACDBADEFKGHL $.
  $}

  ${
    bnj1533.1 $e |- ( th -> A. z e. B -. z e. D ) $.
    bnj1533.2 $e |- B C_ A $.
    bnj1533.3 $e |- D = { z e. A | C =/= E } $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1533 $p |- ( th -> A. z e. B C = E ) $=
      ( wceq cv wcel wn wi bnj1211 wne wa imbi2i impexp rabeq2i imnan nne sseli
      notbii 3bitr2i imim1i ax-1 anim1i simpr simpl mpd jca impbii 3bitr3i mpbi
      imbi1i sylbi sylg bnj1142 ) AEGKZBDABLZDMZVBFMZNZOZVCVAOZBAVEBDHPVFVCVBCM
      ZVAOZOZVGVEVIVCVEVHEGQZRZNVHVKNZOVIVDVLVKBFCJUAUEVHVKUBVMVAVHEGUCSUFSVIVG
      OZVJVGOZVCVHVADCVBIUDUGVIVCRZVAOVJVCRZVAOVNVOVPVQVAVPVQVIVJVCVIVCUHUIVQVI
      VCVQVCVIVJVCUJZVJVCUKULVRUMUNUQVIVCVATVJVCVATUOUPURUSUT $.
  $}

  ${
    $d A w x z $.  $d F w z $.  $d H w x z $.
    bnj1534.1 $e |- D = { x e. A | ( F ` x ) =/= ( H ` x ) } $.
    bnj1534.2 $e |- ( w e. F -> A. x w e. F ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1534 $p |- D = { z e. A | ( F ` z ) =/= ( H ` z ) } $=
      ( cv cfv wne crab nfcv nfv nfcii nffv nfne weq fveq2 neeq12d cbvrab eqtri
      ) EAJZFKZUDGKZLZADMBJZFKZUHGKZLZBDMHUGUKABDADNBDNUGBOAUIUJAUHFACFIPAUHNQA
      UJNRABSUEUIUFUJUDUHFTUDUHGTUAUBUC $.
  $}

  ${
    $d B x $.  $d F x $.  $d G x $.
    bnj1536.1 $e |- ( ph -> F Fn A ) $.
    bnj1536.2 $e |- ( ph -> G Fn A ) $.
    bnj1536.3 $e |- ( ph -> B C_ A ) $.
    bnj1536.4 $e |- ( ph -> A. x e. B ( F ` x ) = ( G ` x ) ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1536 $p |- ( ph -> ( F |` B ) = ( G |` B ) ) $=
      ( cres wceq cv cfv wral wfn wss wb fvreseq syl21anc mpbird ) AEDKFDKLZBMZ
      ENUCFNLBDOZJAECPFCPDCQUBUDRGHIBCDEFSTUA $.
  $}

  ${
    bnj1538.1 $e |- A = { x e. B | ph } $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1538 $p |- ( x e. A -> ph ) $=
      ( cv wcel rabeq2i simprbi ) BFZCGJDGAABCDEHI $.
  $}

  ${
    bnj1541.1 $e |- ( ph <-> ( ps /\ A =/= B ) ) $.
    bnj1541.2 $e |- -. ph $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1541 $p |- ( ps -> A = B ) $=
      ( wne wn wceq wa mtbi imnani nne sylib ) BCDGZHCDIBOABOJFEKLCDMN $.
  $}

  ${
    $d A x y $.  $d F w y $.  $d G w x y $.
    bnj1542.1 $e |- ( ph -> F Fn A ) $.
    bnj1542.2 $e |- ( ph -> G Fn A ) $.
    bnj1542.3 $e |- ( ph -> F =/= G ) $.
    bnj1542.4 $e |- ( w e. F -> A. x w e. F ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1542 $p |- ( ph -> E. x e. A ( F ` x ) =/= ( G ` x ) ) $=
      ( vy cv cfv wne wrex wfn wceq wn nfcv fveq2 wb wa eqfnfv necon3abid df-ne
      wral rexbii rexnal bitri syl6bbr syl2anc mpbid nfv nfcii nffv nfne cbvrex
      neeq12d sylibr ) AKLZEMZUTFMZNZKDOZBLZEMZVEFMZNZBDOAEFNZVDIAEDPZFDPZVIVDU
      AGHVJVKUBZVIVAVBQZKDUFZRZVDVLVNEFKDEFUCUDVDVMRZKDOVOVCVPKDVAVBUEUGVMKDUHU
      IUJUKULVHVCBKDVHKUMBVAVBBUTEBCEJUNBUTSUOBVBSUPVEUTQVFVAVGVBVEUTETVEUTFTUR
      UQUS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Well founded induction and recursion
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x y z w $.  $d R x y z w $.  $d ph y z w $.  $d ps z $.
    bnj110.1 $e |- A e. _V $.
    bnj110.2 $e |- ( ps <-> A. y e. A ( y R x -> [. y / x ]. ph ) ) $.
    $( Well-founded induction restricted to a set ( ` A e. _V ` ).  The proof
       has been taken from Chapter 4 of Don Monk's notes on Set Theory.  See
       ~ http://euclid.colorado.edu/~~monkd/setth.pdf .  (Contributed by
       Jonathan Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    bnj110 $p |- ( ( R Fr A /\ A. x e. A ( ps -> ph ) ) -> A. x e. A ph ) $=
      ( vz vw wi wral wa wn wsbc cvv wcel wb ax-mp bitri wfr cv crab ralnex vex
      wrex sbcng bicomi ralbii bitr3i df-rab eleq2i df-sbc sbcan sbcel1v anbi1i
      cab simprbi mprgbir wbr wss c0 wne rabex biantrur rexnal rabn0 ssrab2 fri
      syl2anb eqid bnj23 wal df-ral sbcbii sbcal sbcimg nfv csb sbcbr2g csbvarg
      sbcgf wceq breq2i nfsbc1v imbi12i albii 3bitr4i sylibr bnj31 nfim sbceq1a
      weq imbi12d cbvral elrabi imim1i ralimi2 sylbi rexim syl mpan9 an32s iman
      mto mpbir ) EFUAZBAKZCELZMZACELZKXJXKNZMZNXMACIUBZOZIANZCEUCZUFZXRNZXPCXN
      OZIXQXSXONZIXQLXTIXQLXOIXQUDYAXTIXQXTYAXNPQZXTYARIUEZACXNPUGSUHUIUJXNXQQZ
      XNEQZXTYDXNCUBZEQZXPMZCUQZQZYEXTMZXQYIXNXPCEUKULYJYHCXNOZYKYHCXNUMYLYGCXN
      OZXTMYKYGXPCXNUNYMYEXTCXNEUOUPTUJTURUSXGXLXIXRXGXLMZBCXNOZIXQUFZXIXRYNJUB
      XNFUTNJXQLZYOIXQXGXQPQZXGMXQEVAZXQVBVCZMZYQIXQUFXLYRXGXPCEGVDVEXLXPCEUFZU
      UAACEVFUUBYTUUAXPCEVGYSYTXPCEVHVEUJUJIJEXQPFVIVJYQDUBZXNFUTZACUUCOZKZDELZ
      YOACIJDEXQFXQVKVLUUCYFFUTZUUEKZDELZCXNOZUUCEQZUUFKZDVMZYOUUGUUKUULUUIKZDV
      MZCXNOZUUNUUJUUPCXNUUIDEVNVOUUQUUOCXNOZDVMUUNUUODCXNVPUURUUMDUURUULCXNOZU
      UICXNOZKZUUMYBUURUVARYCUULUUICXNPVQSUUSUULUUTUUFYBUUSUULRYCUULCXNPUULCVRW
      BSUUTUUHCXNOZUUECXNOZKZUUFYBUUTUVDRYCUUHUUECXNPVQSUVBUUDUVCUUEUVBUUCCXNYF
      VSZFUTZUUDYBUVBUVFRYCCXNUUCYFFPVTSUVEXNUUCFYBUVEXNWCYCCXNPWASWDTYBUVCUUER
      YCUUECXNPACUUCWEWBSWFTWFTWGTTBUUJCXNHVOUUFDEVNWHWIWJXIYOXOKZIXQLZYPXRKXIU
      VGIELUVHXHUVGCIEXHIVRYOXOCBCXNWEACXNWEWKCIWMBYOAXOBCXNWLACXNWLWNWOUVGUVGI
      EXQYDYEUVGXPCXNEWPWQWRWSYOXOIXQWTXAXBXCXEXJXKXDXF $.
  $}

  ${
    $d A x y $.  $d R x y $.  $d ph y $.
    bnj157.1 $e |- ( ps <-> A. y e. A ( y R x -> [. y / x ]. ph ) ) $.
    bnj157.2 $e |- A e. _V $.
    bnj157.3 $e |- R Fr A $.
    $( Well-founded induction restricted to a set ( ` A e. _V ` ).  The proof
       has been taken from Chapter 4 of Don Monk's notes on Set Theory.  See
       ~ http://euclid.colorado.edu/~~monkd/setth.pdf .  (Contributed by
       Jonathan Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    bnj157 $p |- ( A. x e. A ( ps -> ph ) -> A. x e. A ph ) $=
      ( wfr wi wral bnj110 mpan ) EFJBAKCELACELIABCDEFHGMN $.
  $}

  ${
    $d A f $.  $d B f g $.  $d G f g $.  $d R f $.  $d Y g $.  $d d f g $.
    $d f g x $.
    bnj66.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d ) }
        $.
    bnj66.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj66.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G ` Y
        ) ) } $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj66 $p |- ( g e. C -> Rel g ) $=
      ( cv wfn cfv cres cop wceq wrex wcel c-bnj14 wral wa wrel cab fneq1 fveq1
      reseq1 opeq2d syl6eqr fveq2d eqeq12d ralbidv anbi12d rexbidv cbvabv fnrel
      eqtr4i bnj1436 bnj1239 rexlimivw 3syl ) GNZDUAVDJNZOZANZVDPZVGVDBEVGUBZQZ
      RZHPZSZAVEUCZUDZJCTZVFJCTVDUEZVPGDDFNZVEOZVGVRPZIHPZSZAVEUCZUDZJCTZFUFVPG
      UFMVPWEGFVDVRSZVOWDJCWFVFVSVNWCVEVDVRUGWFVMWBAVEWFVHVTVLWAVGVDVRUHWFVKIHW
      FVKVGVRVIQZRIWFVJWGVGVDVRVIUIUJLUKULUMUNUOUPUQUSUTVFVNJCVAVFVQJCVEVDURVBV
      C $.
  $}

  ${
    $d A y $.  $d R y $.  $d f y $.  $d x y $.
    bnj91.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj91.2 $e |- Z e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj91 $p |- ( [. Z / y ]. ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $=
      ( wsbc c0 cv cfv c-bnj14 wceq sbcbii bnj525 bitri ) ACGJKFLMDEBLNOZCGJSAS
      CGHPSCGIQR $.
  $}

  ${
    $d A n $.  $d R n $.  $d Z i $.  $d f n $.  $d i n $.  $d n y $.
    bnj92.1 $e |- ( ps <-> A. i e. _om ( suc i e. n
        -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj92.2 $e |- Z e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj92 $p |- ( [. Z / n ]. ps
     <-> A. i e. _om ( suc i e. Z
          -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $=
      ( wsbc cv wcel cfv wi com wral cvv wb ax-mp csuc c-bnj14 ciun wceq sbcbii
      bnj538 sbcimg sbcel2gv bnj525 imbi12i bitri ralbii 3bitri ) AGHKFLZUAZGLM
      ZUOELZNBUNUQNCDBLUBUCUDZOZFPQZGHKUSGHKZFPQUOHMZUROZFPQAUTGHIUEUSFGHPJUFVA
      VCFPVAUPGHKZURGHKZOZVCHRMZVAVFSJUPURGHRUGTVDVBVEURVGVDVBSJGUOHRUHTURGHJUI
      UJUKULUM $.
  $}

  ${
    $d A x $.  $d R x $.
    $( Technical lemma for ~ bnj97 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj93 $p |- ( ( R _FrSe A /\ x e. A ) -> _pred ( x , A , R ) e. _V ) $=
      ( w-bnj15 cv c-bnj14 cvv wcel w-bnj13 wfr df-bnj15 simprbi df-bnj13 sylib
      wral r19.21bi ) BCDZBCAEFGHZABQBCIZRABOQBCJSBCKLABCMNP $.
  $}

  ${
    bnj95.1 $e |- F = { <. (/) , _pred ( x , A , R ) >. } $.
    $( Technical lemma for ~ bnj124 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj95 $p |- F e. _V $=
      ( c0 cv c-bnj14 cop csn cvv snex eqeltri ) DFBCAGHIZJKENLM $.
  $}

  ${
    $d x A $.  $d x R $.
    bnj96.1 $e |- F = { <. (/) , _pred ( x , A , R ) >. } $.
    $( Technical lemma for ~ bnj150 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Revised by Mario Carneiro, 6-May-2015.)
       (New usage is discouraged.) $)
    bnj96 $p |- ( ( R _FrSe A /\ x e. A ) -> dom F = 1o ) $=
      ( w-bnj15 cv wcel wa c-bnj14 cop csn cdm c1o cvv wceq bnj93 dmsnopg syl
      c0 dmeqi df1o2 3eqtr4g ) BCFAGZBHIZTBCUDJZKLZMZTLZDMNUEUFOHUHUIPABCQTUFOR
      SDUGEUAUBUC $.

    $( Technical lemma for ~ bnj150 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj97 $p |- ( ( R _FrSe A /\ x e. A ) -> ( F ` (/) ) = _pred ( x , A , R )
        ) $=
      ( w-bnj15 cv wcel wa wfun c-bnj14 cop cfv wceq cvv bnj93 csn 0ex bnj519
      c0 funeqi sylibr syl opex snid eleqtrri funopfv mpisyl ) BCFAGZBHIZDJZTBC
      UIKZLZDHTDMULNUJULOHZUKABCPUNUMQZJUKTULRSDUOEUAUBUCUMUODUMTULUDUEEUFTULDU
      GUH $.
  $}

  ${
    $d i x $.
    $( Technical lemma for ~ bnj150 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj98 $p |- A. i e. _om ( suc i e. 1o -> ( F ` suc i ) = U_ y e. ( F ` i )
        _pred ( y , A , R ) ) $=
      ( vx cv csuc c1o wcel cfv c-bnj14 ciun wceq wi com c0 vex sucid csn df-un
      n0ii wo cab cun df-suc eqtri df1o2 eleq12i elsni sylbi syl5eq mto pm2.21i
      rgenw ) DGZHZIJZUQEKAUPEKBCAGLMNZODPURUSURUQQNUPUQUPDRSUBURUQFGZUPJUTUPTZ
      JUCFUDZQUQUPVAUEVBUPUFFUPVAUAUGZURVBQTZJVBQNUQVBIVDVCUHUIVBQUJUKULUMUNUO
      $.
  $}

  ${
    $d A f n $.  $d F f i y $.  $d R f n $.  $d i n y $.
    bnj106.1 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj106.2 $e |- F e. _V $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj106 $p |- ( [. F / f ]. [. 1o / n ]. ps
        <-> A. i e. _om ( suc i e. 1o -> ( F ` suc i )
            = U_ y e. ( F ` i ) _pred ( y , A , R ) ) ) $=
      ( c1o wsbc cv cfv ciun wceq wi com wral fveq1 c-bnj14 bnj105 bnj92 sbcbii
      csuc wcel bnj1113 eqeq12d imbi2d ralbidv sbcie bitri ) AGKLZEHLFMZUEZKUFZ
      UOEMZNZBUNUQNZCDBMUAZOZPZQZFRSZEHLUPUOHNZBUNHNZUTOZPZQZFRSZUMVDEHABCDEFGK
      IUBUCUDVDVJEHJUQHPZVCVIFRVKVBVHUPVKURVEVAVGUOUQHTBUQHUSVFUTUNUQHTUGUHUIUJ
      UKUL $.
  $}

  ${
    $d A n $.  $d R n $.  $d f n $.  $d n x $.
    bnj118.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj118.2 $e |- ( ph' <-> [. 1o / n ]. ph ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj118 $p |- ( ph' <-> ( f ` (/) ) = _pred ( x , A , R ) ) $=
      ( c1o wsbc c0 cv cfv c-bnj14 wceq bnj105 bnj91 bitri ) GAFJKLEMNCDBMOPIAB
      FCDEJHQRS $.
  $}

  ${
    $d A n $.  $d R n $.  $d f n $.  $d n x $.
    bnj121.1 $e |- ( ze <-> ( ( R _FrSe A /\ x e. A ) -> ( f Fn n /\ ph /\ ps )
        ) ) $.
    bnj121.2 $e |- ( ze' <-> [. 1o / n ]. ze ) $.
    bnj121.3 $e |- ( ph' <-> [. 1o / n ]. ph ) $.
    bnj121.4 $e |- ( ps' <-> [. 1o / n ]. ps ) $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj121 $p |- ( ze' <-> ( ( R _FrSe A /\ x e. A )
         -> ( f Fn 1o /\ ph' /\ ps' ) ) ) $=
      ( c1o wsbc cv w3a wi w-bnj15 wcel wa sbcbii bnj105 bnj90 bicomi 3anbi123i
      wfn sbc3an bitr4i imbi2i cvv wb nfv sbc19.21g ax-mp 3bitr4i ) CHPQEFUADRE
      UBUCZGRZHRUIZABSZTZHPQZKUSUTPUIZIJSZTZCVCHPLUDMVGUSVBHPQZTZVDVFVHUSVFVAHP
      QZAHPQZBHPQZSVHVEVJIVKJVLVJVEHGPUEUFUGNOUHVAABHPUJUKULPUMUBVDVIUNUEUSVBHP
      UMUSHUOUPUQUKUR $.
  $}

  ${
    $d A f $.  $d R f $.  $d f x z $.  $d z F $.
    bnj124.1 $e |- F = { <. (/) , _pred ( x , A , R ) >. } $.
    bnj124.2 $e |- ( ph" <-> [. F / f ]. ph' ) $.
    bnj124.3 $e |- ( ps" <-> [. F / f ]. ps' ) $.
    bnj124.4 $e |- ( ze" <-> [. F / f ]. ze' ) $.
    bnj124.5 $e |- ( ze' <-> ( ( R _FrSe A /\ x e. A ) -> ( f Fn 1o /\ ph' /\
        ps' ) ) ) $.
    $( Technical lemma for ~ bnj150 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Proof shortened by Mario Carneiro, 22-Dec-2016.)
       (New usage is discouraged.) $)
    bnj124 $p |- ( ze"
          <-> ( ( R _FrSe A /\ x e. A ) -> ( F Fn 1o /\ ph" /\ ps" ) ) ) $=
      ( wsbc cv c1o wfn vz w-bnj15 wcel wa w3a wi sbcbii cvv wb bnj95 sbc19.21g
      nfv ax-mp fneq1 sbcie2g bicomi bnj206 imbi2i 3bitri bitri ) KHDEQZBCUBARB
      UCUDZESTZIJUEZUFZOVAVBDRZSTZFGUEZUFZDEQZVBVHDEQZUFZVEHVIDEPUGEUHUCZVJVLUI
      ABCELUJZVBVHDEUHVBDULUKUMVKVDVBVGFGDEVCIJVGDEQZVCVMVOVCUIVNVGUARZSTVCDUAE
      UHSVFVPUNSVPEUNUOUMUPMNVNUQURUSUT $.
  $}

  ${
    $d A f n $.  $d F f $.  $d R f n $.  $d f n x $.
    bnj125.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj125.2 $e |- ( ph' <-> [. 1o / n ]. ph ) $.
    bnj125.3 $e |- ( ph" <-> [. F / f ]. ph' ) $.
    bnj125.4 $e |- F = { <. (/) , _pred ( x , A , R ) >. } $.
    $( Technical lemma for ~ bnj150 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj125 $p |- ( ph" <-> ( F ` (/) ) = _pred ( x , A , R ) ) $=
      ( wsbc c0 cfv cv wceq c1o bitri c-bnj14 sbcbii bnj105 bnj91 bnj95 eqeq1d
      fveq1 sbcie ) IHEGNZOGPZCDBQUAZRZLUIAFSNZEGNZULHUMEGKUBUNOEQZPZUKRZEGNULU
      MUQEGABFCDESJUCUDUBUQULEGBCDGMUEUOGRUPUJUKOUOGUGUFUHTTT $.
  $}

  ${
    $d A f n $.  $d F f i y $.  $d R f n $.  $d i n y $.
    bnj126.1 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj126.2 $e |- ( ps' <-> [. 1o / n ]. ps ) $.
    bnj126.3 $e |- ( ps" <-> [. F / f ]. ps' ) $.
    bnj126.4 $e |- F = { <. (/) , _pred ( x , A , R ) >. } $.
    $( Technical lemma for ~ bnj150 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj126 $p |- ( ps" <-> A. i e. _om ( suc i e. 1o
        -> ( F ` suc i ) = U_ y e. ( F ` i ) _pred ( y , A , R ) ) ) $=
      ( wsbc c1o cv csuc cfv wcel c-bnj14 ciun wceq wi wral sbcbii bnj95 bnj106
      com 3bitri ) KJFIPAHQPZFIPGRZSZQUAUNITCUMITDECRUBUCUDUEGUJUFNJULFIMUGACDE
      FGHILBDEIOUHUIUK $.
  $}

  ${
    $d A n $.  $d R n $.  $d f n $.  $d n x $.
    bnj130.1 $e |- ( th <-> ( ( R _FrSe A /\ x e. A ) -> E! f ( f Fn n /\ ph /\
        ps ) ) ) $.
    bnj130.2 $e |- ( ph' <-> [. 1o / n ]. ph ) $.
    bnj130.3 $e |- ( ps' <-> [. 1o / n ]. ps ) $.
    bnj130.4 $e |- ( th' <-> [. 1o / n ]. th ) $.
    $( Technical lemma for ~ bnj151 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj130 $p |- ( th'
        <-> ( ( R _FrSe A /\ x e. A ) -> E! f ( f Fn 1o /\ ph' /\ ps' ) ) ) $=
      ( c1o wsbc cv w3a weu w-bnj15 wa wfn sbcbii bnj105 bnj90 bicomi 3anbi123i
      wcel wi sbc3an bitr4i eubii bnj89 imbi2i cvv nfv sbc19.21g ax-mp 3bitr4i
      wb ) CHPQEFUADREUIUBZGRZHRUCZABSZGTZUJZHPQZKVBVCPUCZIJSZGTZUJZCVGHPLUDOVL
      VBVFHPQZUJZVHVKVMVBVKVEHPQZGTVMVJVOGVJVDHPQZAHPQZBHPQZSVOVIVPIVQJVRVPVIHG
      PUEUFUGMNUHVDABHPUKULUMVEGHPUEUNULUOPUPUIVHVNVAUEVBVFHPUPVBHUQURUSULUT $.
  $}

  ${
    $d A f g x $.  $d R f g x $.  $d f ze1 $.  $d g ze0 $.
    bnj149.1 $e |- ( th1 <-> ( ( R _FrSe A /\ x e. A ) -> E* f ( f Fn 1o /\ ph'
        /\ ps' ) ) ) $.
    bnj149.2 $e |- ( ze0 <-> ( f Fn 1o /\ ph' /\ ps' ) ) $.
    bnj149.3 $e |- ( ze1 <-> [. g / f ]. ze0 ) $.
    bnj149.4 $e |- ( ph1 <-> [. g / f ]. ph' ) $.
    bnj149.5 $e |- ( ps1 <-> [. g / f ]. ps' ) $.
    bnj149.6 $e |- ( ph' <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    $( Technical lemma for ~ bnj151 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Proof shortened by Mario Carneiro, 22-Dec-2016.)
       (New usage is discouraged.) $)
    bnj149 $p |- th1 $=
      ( wcel c0 w-bnj15 cv wa c1o wfn w3a wmo c-bnj14 cop csn wceq wal cfv wral
      wi wf simpr1 df1o2 fneq2i sylib simpr2 fvex sylibr 0ex fveq2 eleq1d ralsn
      elsn ffnfv sylanbrc cvv wb bnj93 adantr fsng sylancr mpbid alrimiv mo2icl
      ex syl mpbir ) KBCUAAUBZBSUCZDUBZUDUEZFGUFZDUGZUOWDWGWETBCWCUHZUIUJZUKZUO
      ZDULWHWDWLDWDWGWKWDWGUCZTUJZWIUJZWEUPZWKWMWEWNUEZEUBZWEUMZWOSZEWNUNZWPWMW
      FWQWDWFFGUQUDWNWEURUSUTWMTWEUMZWOSZXAWMXBWIUKZXCWMFXDWDWFFGVARUTXBWITWEVB
      VHVCWTXCETVDWRTUKWSXBWOWRTWEVEVFVGVCEWNWOWEVIVJWMTVKSWIVKSZWPWKVLVDWDXEWG
      ABCVMVNTWIVKVKWEVOVPVQVTVRWGDWJVSWAMWB $.
  $}

  ${
    $d A f n x $.  $d F f i y $.  $d R f n x $.  $d f ze" $.  $d i n y $.
    bnj150.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj150.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj150.3 $e |- ( ze <-> ( ( R _FrSe A /\ x e. A ) -> ( f Fn n /\ ph /\ ps )
        ) ) $.
    bnj150.4 $e |- ( ph' <-> [. 1o / n ]. ph ) $.
    bnj150.5 $e |- ( ps' <-> [. 1o / n ]. ps ) $.
    bnj150.6 $e |- ( th0 <-> ( ( R _FrSe A /\ x e. A ) -> E. f ( f Fn 1o /\ ph'
        /\ ps' ) ) ) $.
    bnj150.7 $e |- ( ze' <-> [. 1o / n ]. ze ) $.
    bnj150.8 $e |- F = { <. (/) , _pred ( x , A , R ) >. } $.
    bnj150.9 $e |- ( ph" <-> [. F / f ]. ph' ) $.
    bnj150.10 $e |- ( ps" <-> [. F / f ]. ps' ) $.
    bnj150.11 $e |- ( ze" <-> [. F / f ]. ze' ) $.
    $( Technical lemma for ~ bnj151 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj150 $p |- th0 $=
      ( wex w-bnj15 cv wcel wa c1o wfn w3a wi c0 c-bnj14 cop csn wfun cvv bnj93
      0ex funsng sylancr funeqi sylibr bnj96 bnj1422 cfv wceq bnj97 bnj125 csuc
      jca ciun wral bnj98 bnj126 mpbir jctir df-3an bnj121 bnj124 bnj95 sbceq1a
      com wsbc syl6bbr spcev ax-mp 19.37v bitr4i bnj133 ) RNHUJZQWRQFGUKDULZFUM
      UNZKUOUPZOPUQZURWTXAOUNZPUNXBWTXCPWTXAOWTKUOWTUSFGWSUTZVAVBZVCZKVCWTUSVDU
      MXDVDUMXFVFDFGVEUSXDVDVDVGVHKXEUFVIVJDFGKUFVKVLWTUSKVMXDVNODFGKUFVOADFGHJ
      KLOSUBUGUFVPVJVRPIULZVQZUOUMXHKVMEXGKVMFGEULUTVSVNURIWJVTEFGIKWABDEFGHIJK
      MPTUCUHUFWBWCWDXAOPWEVJDFGHKLMNOPQUFUGUHUIABCDFGHJLMNUAUEUBUCWFZWGWCNQHKD
      FGKUFWHHULZKVNNNHKWKQNHKWIUIWLWMWNRWTXJUOUPLMUQZURZNHRWTXKHUJURXLHUJUDWTX
      KHWOWPXIWQWC $.
  $}

  ${
    $d A f g x $.  $d A f n x $.  $d F f i y $.  $d R f g x $.  $d R f n x $.
    $d f ze1 $.  $d f ze" $.  $d g ze0 $.  $d i n y $.  $d m n $.
    bnj151.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj151.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj151.3 $e |- D = ( _om \ { (/) } ) $.
    bnj151.4 $e |- ( th <-> ( ( R _FrSe A /\ x e. A ) -> E! f ( f Fn n /\ ph /\
        ps ) ) ) $.
    bnj151.5 $e |- ( ta <-> A. m e. D ( m _E n -> [. m / n ]. th ) ) $.
    bnj151.6 $e |- ( ze <-> ( ( R _FrSe A /\ x e. A ) -> ( f Fn n /\ ph /\ ps )
        ) ) $.
    bnj151.7 $e |- ( ph' <-> [. 1o / n ]. ph ) $.
    bnj151.8 $e |- ( ps' <-> [. 1o / n ]. ps ) $.
    bnj151.9 $e |- ( th' <-> [. 1o / n ]. th ) $.
    bnj151.10 $e |- ( th0 <-> ( ( R _FrSe A /\ x e. A ) -> E. f ( f Fn 1o /\
        ph' /\ ps' ) ) ) $.
    bnj151.11 $e |- ( th1 <-> ( ( R _FrSe A /\ x e. A ) -> E* f ( f Fn 1o /\
        ph' /\ ps' ) ) ) $.
    bnj151.12 $e |- ( ze' <-> [. 1o / n ]. ze ) $.
    bnj151.13 $e |- F = { <. (/) , _pred ( x , A , R ) >. } $.
    bnj151.14 $e |- ( ph" <-> [. F / f ]. ph' ) $.
    bnj151.15 $e |- ( ps" <-> [. F / f ]. ps' ) $.
    bnj151.16 $e |- ( ze" <-> [. F / f ]. ze' ) $.
    bnj151.17 $e |- ( ze0 <-> ( f Fn 1o /\ ph' /\ ps' ) ) $.
    bnj151.18 $e |- ( ze1 <-> [. g / f ]. ze0 ) $.
    bnj151.19 $e |- ( ph1 <-> [. g / f ]. ph' ) $.
    bnj151.20 $e |- ( ps1 <-> [. g / f ]. ps' ) $.
    $( Technical lemma for ~ bnj153 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj151 $p |- ( n = 1o -> ( ( n e. D /\ ta ) -> th ) ) $=
      ( cv c1o wceq wcel wa w-bnj15 wfn w3a weu wi wex wmo bnj150 bnj118 bnj149
      mpbi eu5 sylanbrc bnj130 mpbir wsbc sbceq1a syl6bbr mpbiri a1d ) OVJZVKVL
      ZCWOIVMDVNWPCSSHJVOFVJHVMVNZKVJVKVPQRVQZKVRZVSWQWRKVTZWRKWAZWSUDWQWTVSABE
      FGHJKMOPQRTUAUBUCUDUJUKUOUPUQUSVAVBVCVDVEWBUSWEUHWQXAVSFHJKLQRUEUFUGUHUIU
      TVFVGVHVIAFHJKOQUJUPWCWDUTWEWRKWFWGABCFHJKOQRSUMUPUQURWHWIWPCCOVKWJSCOVKW
      KURWLWMWN $.
  $}

  ${
    $d A f $.  $d R f $.  $d f g $.  $d f x $.
    bnj154.1 $e |- ( ph1 <-> [. g / f ]. ph' ) $.
    bnj154.2 $e |- ( ph' <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    $( Technical lemma for ~ bnj153 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj154 $p |- ( ph1 <-> ( g ` (/) ) = _pred ( x , A , R ) ) $=
      ( cv wsbc c0 cfv c-bnj14 wceq sbcbii vex weq fveq1 eqeq1d sbcie 3bitri )
      GFDEJZKLDJZMZBCAJNZOZDUCKLUCMZUFOZHFUGDUCIPUGUIDUCEQDERUEUHUFLUDUCSTUAUB
      $.
  $}

  ${
    $d A f $.  $d R f $.  $d f g i y $.
    bnj155.1 $e |- ( ps1 <-> [. g / f ]. ps' ) $.
    bnj155.2 $e |- ( ps' <-> A. i e. _om ( suc i e. 1o -> ( f ` suc i ) = U_ y
        e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    $( Technical lemma for ~ bnj153 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj155 $p |- ( ps1 <-> A. i e. _om ( suc i e. 1o
        -> ( g ` suc i ) = U_ y e. ( g ` i ) _pred ( y , A , R ) ) ) $=
      ( cv wsbc csuc cfv ciun wceq wi com wral fveq1 c1o c-bnj14 sbcbii vex weq
      wcel iuneq1d eqeq12d imbi2d ralbidv sbcie 3bitri ) HGDEKZLFKZMZUAUFZUODKZ
      NZAUNUQNZBCAKUBZOZPZQZFRSZDUMLUPUOUMNZAUNUMNZUTOZPZQZFRSZIGVDDUMJUCVDVJDU
      MEUDDEUEZVCVIFRVKVBVHUPVKURVEVAVGUOUQUMTVKAUSVFUTUNUQUMTUGUHUIUJUKUL $.
  $}

  ${
    $d A f g i x y $.  $d A f i n x y $.  $d R f g i x y $.  $d R f i n x y $.
    $d m n $.
    bnj153.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj153.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj153.3 $e |- D = ( _om \ { (/) } ) $.
    bnj153.4 $e |- ( th <-> ( ( R _FrSe A /\ x e. A ) -> E! f ( f Fn n /\ ph /\
        ps ) ) ) $.
    bnj153.5 $e |- ( ta <-> A. m e. D ( m _E n -> [. m / n ]. th ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj153 $p |- ( n = 1o -> ( ( n e. D /\ ta ) -> th ) ) $=
      ( wsbc biid vg w-bnj15 cv wcel wa wfn w3a wi c0 c-bnj14 cop csn wceq csuc
      cfv c1o ciun com wex wmo bnj118 bicomi bnj105 bnj92 bnj121 anbi2i anbi12i
      wral df-3an 3bitr4i imbi2i eqid sbcbii bnj124 bnj125 bnj126 bitr2i bnj156
      bitri bnj154 bnj155 bitr3i bnj151 ) ABCDGIUBEUCZGUDUEZJUCZMUCUFABUGUHZEFG
      HIJUAKLMUIGIWDUJZUKULZUIWFUOWHUMZKUCZUNZUPUDZWLWFUOFWKWFUOGIFUCUJZUQUMUHK
      URVHZCMUPSZWEWFUPUFZWJWOUGZUHZWJJWISZWOJWISZWEWIUPUFZUIWIUOWHUMZWMWLWIUOF
      WKWIUOWNUQUMUHKURVHZUGZUHZWEWRJUSUHZWRWJJUAUCZSZWOJXHSZWEWRJUTUHZXHUPUFZU
      IXHUOWHUMZWMWLXHUOFWKXHUOWNUQUMUHKURVHZUGZNOPQRWGTZAMUPSZWJAEGIJMXQNXQTZV
      AZVBBMUPSZWOBFGIJKMUPOVCVDZVBWPTXGTXKTWGMUPSZWSYBWEWQXQXTUGZUHWSABWGEGIJM
      XQXTYBXPYBTXRXTTZVEZYCWRWEWQXQUEZXTUEWQWJUEZWOUEYCWRYFYGXTWOXQWJWQXSVFYAV
      GWQXQXTVIWQWJWOVIVJZVKVSVBZWIVLZWTTXATWSJWISYBJWISZXFWSYBJWIYIVMYKWEXBXQJ
      WISZXTJWISZUGZUHXFEGIJWIXQXTYBYLYMYKYJYLTZYMTZYKTYEVNYNXEWEXBYLUEZYMUEXBX
      CUEZXDUEYNXEYQYRYMXDYLXCXBAEGIJMWIXQYLNXRYOYJVOVFBEFGIJKMWIXTYMOYDYPYJVPV
      GXBYLYMVIXBXCXDVIVJVKVSVQWRTXOYCJXHSZWRJXHSYSXLXQJXHSZXTJXHSZUGZXOJUAXQXT
      YCYTUUAYSYCTYSTYTTZUUATZVRXLYTUEZUUAUEXLXMUEZXNUEUUBXOUUEUUFUUAXNYTXMXLEG
      IJUAXQYTUUCXSVTVFFGIJUAKXTUUAUUDXTXTWOYDYAVSWAVGXLYTUUAVIXLXMXNVIVJVSYCWR
      JXHYHVMWBXITXJTWC $.
  $}

  ${
    $d A n $.  $d M f $.  $d R n $.  $d f n $.  $d n x $.
    bnj207.1 $e |- ( ch <-> ( ( R _FrSe A /\ x e. A ) -> E! f ( f Fn n /\ ph /\
        ps ) ) ) $.
    bnj207.2 $e |- ( ph' <-> [. M / n ]. ph ) $.
    bnj207.3 $e |- ( ps' <-> [. M / n ]. ps ) $.
    bnj207.4 $e |- ( ch' <-> [. M / n ]. ch ) $.
    bnj207.5 $e |- M e. _V $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj207 $p |- ( ch' <-> ( ( R _FrSe A /\ x e. A )
        -> E! f ( f Fn M /\ ph' /\ ps' ) ) ) $=
      ( wsbc cv bitri w-bnj15 wcel wa wfn w3a weu wi sbcbii cvv sbc19.21g ax-mp
      wb nfv bnj89 bnj90 bicomi bnj206 eubii imbi2i ) LCHIRZEFUADSEUBUCZGSZIUDZ
      JKUEZGUFZUGZPUTVAVBHSUDZABUEZGUFZUGZHIRZVFCVJHIMUHVKVAVIHIRZUGZVFIUIUBVKV
      MULQVAVIHIUIVAHUMUJUKVLVEVAVLVHHIRZGUFVEVHGHIQUNVNVDGVGABHIVCJKVGHIRVCHGI
      QUOUPNOQUQURTUSTTT $.
  $}

  ${
    $d A y $.  $d R y $.  $d X y $.
    $( First-order logic and set theory.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj213 $p |- _pred ( X , A , R ) C_ A $=
      ( vy cv wbr c-bnj14 df-bnj14 ssrab3 ) DECBFDAABCGDABCHI $.
  $}

  ${
    $d A i m $.  $d F i m y $.  $d N i m $.  $d R i m $.
    bnj222.1 $e |- ( ps <-> A. i e. _om ( suc i e. N -> ( F ` suc i ) = U_ y e.
        ( F ` i ) _pred ( y , A , R ) ) ) $.
    $( Technical lemma for ~ bnj229 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj222 $p |- ( ps <-> A. m e. _om ( suc m e. N -> ( F ` suc m ) = U_ y e. (
        F ` m ) _pred ( y , A , R ) ) ) $=
      ( cv csuc wcel cfv c-bnj14 ciun wceq wi com wral suceq eleq1d fveq2 bitri
      fveq2d bnj1113 eqeq12d imbi12d cbvralv ) AEJZKZHLZUJGMZBUIGMZCDBJNZOZPZQZ
      ERSFJZKZHLZUSGMZBURGMZUNOZPZQZFRSIUQVEEFRUIURPZUKUTUPVDVFUJUSHUIURTZUAVFU
      LVAUOVCVFUJUSGVGUDBUIURUMVBUNUIURGUBUEUFUGUHUC $.
  $}

  ${
    $d A i m y $.  $d F i m y $.  $d N i m $.  $d R i m $.
    bnj229.1 $e |- ( ps <-> A. i e. _om ( suc i e. N -> ( F ` suc i ) = U_ y e.
        ( F ` i ) _pred ( y , A , R ) ) ) $.
    $( Technical lemma for ~ bnj517 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj229 $p |- ( ( n e. N /\ ( suc m = n /\ m e. _om /\ ps ) )
        -> ( F ` n ) C_ A ) $=
      ( cv wcel csuc wceq com w3a wa cfv c-bnj14 wi bnj213 bnj226 bnj222 bnj228
      ciun adantl eleq1 fveq2 eqeq1d imbi12d adantr mpbid 3impb impcom bnj1262
      wb ) GKZILZFKZMZUQNZUSOLZAPZQBUSHRZCDBKZSZUEZCUQHRZBVDVFCCDVEUAUBVCURVHVG
      NZVAVBAURVITZVAVBAQZQUTILZUTHRZVGNZTZVJVKVOVAAVOFOABCDEFHIJUCUDUFVAVOVJUP
      VKVAVLURVNVIUTUQIUGVAVMVHVGUTUQHUHUIUJUKULUMUNUO $.
  $}

  ${
    $d i m n y A $.  $d i m n F $.  $d i m n N $.  $d m ph $.  $d m ps $.
    bnj517.1 $e |- ( ph <-> ( F ` (/) ) = _pred ( X , A , R ) ) $.
    bnj517.2 $e |- ( ps <-> A. i e. _om ( suc i e. N -> ( F ` suc i ) = U_ y e.
        ( F ` i ) _pred ( y , A , R ) ) ) $.
    $( Technical lemma for ~ bnj518 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Proof shortened by Mario Carneiro, 22-Dec-2016.)
       (New usage is discouraged.) $)
    bnj517 $p |- ( ( N e. _om /\ ph /\ ps ) -> A. n e. N ( F ` n ) C_ A ) $=
      ( vm com wcel cv cfv wss wral wceq w3a wa c0 csuc wrex fveq2 simpl2 sylib
      c-bnj14 sylan9eqr bnj213 syl6eqss wi ciun eleq1 biimpd eqeq1d rgenw iunss
      r19.29r mpbir sseq1 mpbiri syl6bir imim12d rexlimivw com3l sylbi 3ad2ant3
      imp syl ex imp31 wo simpr simpl1 syl2anc nn0suc mpjaodan ralrimiva sseq1d
      elnn cbvralv ) INOZABUAZMPZHQZDRZMISGPZHQZDRZGISWEWHMIWEWFIOZUBZWFUCTZWHW
      FFPZUDZTZFNUEZWMWNUBWGDEJUIZDWNWMWGUCHQZWSWFUCHUFWMAWTWSTWDABWLUGKUHUJDEJ
      UKULWEWLWRWHBWDWLWRWHUMUMZABWPIOZWPHQZCWOHQZDECPZUIZUNZTZUMZFNSZXALWRXJWL
      WHWRXJWLWHUMZWRXJUBWQXIUBZFNUEXKWQXIFNUTXLXKFNWQXIXKWQWLXBXHWHWQWLXBWFWPI
      UOUPWQXHWGXGTZWHWQWGXCXGWFWPHUFUQXMWHXGDRZXNXFDRZCXDSXOCXDDEXEUKURCXDXFDU
      SVAWGXGDVBVCVDVEVJVFVKVLVGVHVIVMWMWFNOZWNWRVNWMWLWDXPWEWLVOWDABWLVPWFIWBV
      QFWFVRVKVSVTWHWKMGIWFWITWGWJDWFWIHUFWAWCUH $.
  $}

  ${
    $d f i p y $.  $d i n p $.  $d i p y A $.  $d y R $.
    bnj518.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj518.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj518.3 $e |- ( ta <-> ( ph /\ ps /\ n e. _om /\ p e. n ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj518 $p |- ( ( R _FrSe A /\ ta ) -> A. y e. ( f ` p ) _pred ( y , A , R )
        e. _V ) $=
      ( w-bnj15 cv wcel w-bnj17 wa sylbi cfv wss c-bnj14 cvv wral com bitri w3a
      bnj334 df-bnj17 bnj517 r19.21bi ssel bnj93 ex sylan9r ralrimiv sylan2 ) C
      FGOZKPZHPZUAZFUBZFGEPZUCUDQZEVBUECJPZUFQZABUTVFQZRZVCCABVGVHRVINABVGVHUIU
      GVIVGABUHZVHSVCVGABVHUJVJVCKVFABEFGIKVAVFDPLMUKULTTUSVCSVEEVBVCVDVBQVDFQZ
      USVEVBFVDUMUSVKVEEFGUNUOUPUQUR $.
  $}

  ${
    $d A n $.  $d F n $.  $d R n $.  $d X n $.
    bnj523.1 $e |- ( ph <-> ( F ` (/) ) = _pred ( X , A , R ) ) $.
    bnj523.2 $e |- ( ph' <-> [. M / n ]. ph ) $.
    bnj523.3 $e |- M e. _V $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj523 $p |- ( ph' <-> ( F ` (/) ) = _pred ( X , A , R ) ) $=
      ( wsbc c0 cfv c-bnj14 wceq sbcbii bnj525 3bitri ) HADFLMENBCGOPZDFLTJATDF
      IQTDFKRS $.
  $}

  ${
    $d A f $.  $d G f $.  $d R f $.  $d X f $.
    bnj526.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj526.2 $e |- ( ph" <-> [. G / f ]. ph ) $.
    bnj526.3 $e |- G e. _V $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj526 $p |- ( ph" <-> ( G ` (/) ) = _pred ( X , A , R ) ) $=
      ( wsbc c0 cv cfv c-bnj14 wceq sbcbii fveq1 eqeq1d sbcie 3bitri ) GADEKLDM
      ZNZBCFOZPZDEKLENZUDPZIAUEDEHQUEUGDEJUBEPUCUFUDLUBERSTUA $.
  $}

  ${
    bnj528.1 $e |- G = ( f u. { <. m , U_ y e. ( f ` p ) _pred ( y , A , R ) >.
        } ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj528 $p |- G e. _V $=
      ( cv cfv c-bnj14 ciun bnj918 ) AGIDIJBCAIKLDEFHM $.
  $}

  ${
    $d A i p y $.  $d R i p y $.  $d f i p y $.  $d i m p $.  $d p ph' $.
    bnj535.1 $e |- ( ph' <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj535.2 $e |- ( ps' <-> A. i e. _om ( suc i e. m
        -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj535.3 $e |- G = ( f u. { <. m , U_ y e. ( f ` p ) _pred ( y , A , R ) >.
        } ) $.
    bnj535.4 $e |- ( ta <-> ( ph' /\ ps' /\ m e. _om /\ p e. m ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj535 $p |- ( ( R _FrSe A /\ ta /\ n = ( m u. { m } ) /\ f Fn m ) -> G Fn
        n ) $=
      ( cv wfn cvv w-bnj15 csn cun wceq w-bnj17 bnj422 bnj251 bitri cfv c-bnj14
      ciun cop wcel wfun wral fvex bnj518 iunexg sylancr vex bnj519 syl dmsnopg
      wa cdm bnj1422 cin c0 bnj521 mpan2 sylan2 fneq1i sylibr fneq2 syl5ibr imp
      fnun sylbi ) DEUAZAIRZHRZWAUBZUCZUDZFRZWASZUEZWDWFVSAVDZVDZVDZJVTSZWGWDWF
      VSAUEWJVSAWDWFUFWDWFVSAUGUHWDWIWKWIWKWDJWCSZWIWEWACKRZWEUIZDECRUJZUKZULUB
      ZUCZWCSZWLWHWFWQWBSZWSWHWQWBWHWPTUMZWQUNWHWNTUMWOTUMCWNUOXAWMWEUPLMABCDEF
      GHKNOQUQCWNWOTTURUSZWAWPHUTVAVBWHXAWQVEWBUDXBWAWPTVCVBVFWFWTVDWAWBVGVHUDW
      SWAVIWAWBWEWQVQVJVKWCJWRPVLVMVTWCJVNVOVPVR $.
  $}

  ${
    $d A n $.  $d F n $.  $d M i $.  $d R n $.  $d i n $.  $d n y $.
    bnj539.1 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( F ` suc i ) = U_ y e.
        ( F ` i ) _pred ( y , A , R ) ) ) $.
    bnj539.2 $e |- ( ps' <-> [. M / n ]. ps ) $.
    bnj539.3 $e |- M e. _V $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj539 $p |- ( ps' <-> A. i e. _om ( suc i e. M
        -> ( F ` suc i ) = U_ y e. ( F ` i ) _pred ( y , A , R ) ) ) $=
      ( wsbc cv wcel wi com wral cvv bitri csuc c-bnj14 ciun wceq sbcbii bnj538
      cfv wb sbcimg ax-mp sbcel2gv bnj525 imbi12i ralbii ) IAFHMZENZUAZHOZUQGUG
      BUPGUGCDBNUBUCUDZPZEQRZKUOUQFNOZUSPZEQRZFHMZVAAVDFHJUEVEVCFHMZEQRVAVCEFHQ
      LUFVFUTEQVFVBFHMZUSFHMZPZUTHSOZVFVIUHLVBUSFHSUIUJVGURVHUSVJVGURUHLFUQHSUK
      UJUSFHLULUMTUNTTT $.
  $}

  ${
    $d A f $.  $d G f i y $.  $d N f $.  $d R f $.
    bnj540.1 $e |- ( ps <-> A. i e. _om ( suc i e. N -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj540.2 $e |- ( ps" <-> [. G / f ]. ps ) $.
    bnj540.3 $e |- G e. _V $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj540 $p |- ( ps" <-> A. i e. _om ( suc i e. N
        -> ( G ` suc i ) = U_ y e. ( G ` i ) _pred ( y , A , R ) ) ) $=
      ( wsbc cv wcel cfv wceq wi com wral csuc c-bnj14 sbcbii bnj538 cvv sbcimg
      ciun wb ax-mp ralbii 3bitri bnj525 fveq1 bnj1113 eqeq12d sbcie imbi12i )
      IAEGMZFNZUAZHOZEGMZUTENZPZBUSVCPZCDBNUBZUGZQZEGMZRZFSTZVAUTGPZBUSGPZVFUGZ
      QZRZFSTKURVAVHRZFSTZEGMVQEGMZFSTVKAVREGJUCVQFEGSLUDVSVJFSGUEOVSVJUHLVAVHE
      GUEUFUIUJUKVJVPFSVBVAVIVOVAEGLULVHVOEGLVCGQVDVLVGVNUTVCGUMBVCGVEVMVFUSVCG
      UMUNUOUPUQUJUK $.
  $}

  ${
    $d A i p y $.  $d R i p y $.  $d f i p y $.  $d i m p $.  $d p ph' $.
    bnj543.1 $e |- ( ph' <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj543.2 $e |- ( ps' <-> A. i e. _om ( suc i e. m
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj543.3 $e |- G = ( f u. { <. m , U_ y e. ( f ` p ) _pred ( y , A , R ) >.
        } ) $.
    bnj543.4 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj543.5 $e |- ( si <-> ( m e. _om /\ n = suc m /\ p e. m ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj543 $p |- ( ( R _FrSe A /\ ta /\ si ) -> G Fn n ) $=
      ( wa w-bnj15 w3a cv com wcel w-bnj17 csuc wceq bnj257 bnj268 bitri bnj253
      wfn bnj256 3bitr3i 3anbi1i bnj170 3anan32 anbi12i 3bitr4ri anbi2i 3bitr4i
      3anass bnj252 csn cun df-suc eqeq2i 3anbi2i biid bnj535 sylbi ) EFUAZABUB
      ZVMMNIUCZUDUEZLUCVOUEZUFZJUCZVOUGZUHZGUCVOUMZUFZKVSUMZVMABTZTVMVRWAWBUBZT
      ZVNWCWEWFVMMNTZVPVQTZTZWAWBUBZWHWBTZWIWATZTZWFWEWHWIWAWBUFZWHWBWIWAUFZWKW
      NWOWHWIWBWAUFWPWHWIWAWBUIWHWIWBWAUJUKWHWIWAWBULWHWBWIWAUNUOVRWJWAWBMNVPVQ
      UNUPAWLBWMAWBMNUBWLRWBMNUQUKBVPWAVQUBWMSVPWAVQURUKUSUTVAVMABVCVMVRWAWBVDZ
      VBWCVMVRVSVOVOVEVFZUHZWBUFZWDWGVMVRWSWBUBZTWCWTWFXAVMWAWSVRWBVTWRVSVOVGVH
      VIVAWQVMVRWSWBVDVBVRCDEFGHIJKLMNOPQVRVJVKVLVL $.
  $}

  ${
    $d A i p y $.  $d R i p y $.  $d f i p y $.  $d i m p $.  $d p ph' $.
    bnj544.1 $e |- ( ph' <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj544.2 $e |- ( ps' <-> A. i e. _om ( suc i e. m
        -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj544.3 $e |- D = ( _om \ { (/) } ) $.
    bnj544.4 $e |- G = ( f u. { <. m , U_ y e. ( f ` p ) _pred ( y , A , R ) >.
        } ) $.
    bnj544.5 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj544.6 $e |- ( si <-> ( m e. D /\ n = suc m /\ p e. m ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj544 $p |- ( ( R _FrSe A /\ ta /\ si ) -> G Fn n ) $=
      ( w-bnj15 cv com wcel csuc wceq w3a wfn bnj923 3anim1i sylbi biid syl3an3
      bnj543 ) BEGUBAJUCZUDUEZKUCZUPUFUGZMUCUPUEZUHZLURUIBUPFUEZUSUTUHVAUAVBUQU
      SUTFJRUJUKULAVACDEGHIJKLMNOPQSTVAUMUOUN $.
  $}

  ${
    bnj545.1 $e |- ( ph' <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj545.2 $e |- D = ( _om \ { (/) } ) $.
    bnj545.3 $e |- G = ( f u. { <. m , U_ y e. ( f ` p ) _pred ( y , A , R ) >.
        } ) $.
    bnj545.4 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj545.5 $e |- ( si <-> ( m e. D /\ n = suc m /\ p e. m ) ) $.
    bnj545.6 $e |- ( ( R _FrSe A /\ ta /\ si ) -> G Fn n ) $.
    bnj545.7 $e |- ( ph" <-> ( G ` (/) ) = _pred ( x , A , R ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj545 $p |- ( ( R _FrSe A /\ ta /\ si ) -> ph" ) $=
      ( w-bnj15 w3a c0 cfv cv wceq wfun wss cdm wcel wa simp1bi anim12i 3adant1
      wfn csuc bnj529 fndm biimparc syl2anr syl bnj930 jca c-bnj14 ciun cop csn
      eleq2 bnj931 jctil df-3an 3anrot 3bitr3i funssfv simp2bi 3ad2ant2 sylan2b
      ancom sylibr eqtr syl2anc ) EGUCZABUDZUEKUFZUEHUGZUFZUHZMOWEKUIZWGKUJZUEW
      GUKZULZUDZWIWEWKWMWJUMZUMZWNWEWOWKWEWMWJWEWGIUGZUQZWQFULZUMZWMABWTWDAWRBW
      SAWRMNSUNBWSJUGZWQURUHLUGZWQULTUNUOUPWSUEWQULZWLWQUHZWMWRFWQQUSWQWGUTXDWM
      XCWLWQUEVJVAVBVCWEXAKUAVDVEKWGWQDXBWGUFEGDUGVFVGVHVIRVKVLWMWJWKUDWOWKUMWN
      WPWMWJWKVMWMWJWKVNWOWKVTVOWAUEKWGVPVCAWDMBAWRMNSVQVRWIMUMWFEGCUGVFZUHZOMW
      IWHXEUHXFPWFWHXEWBVSUBWAWC $.
  $}

  ${
    $d A i p y $.  $d R i p y $.  $d f i p y $.  $d i m p $.  $d p ph' $.
    bnj546.1 $e |- D = ( _om \ { (/) } ) $.
    bnj546.2 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj546.3 $e |- ( si <-> ( m e. D /\ n = suc m /\ p e. m ) ) $.
    bnj546.4 $e |- ( ph' <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj546.5 $e |- ( ps' <-> A. i e. _om ( suc i e. m
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj546 $p |- ( ( R _FrSe A /\ ta /\ si ) -> U_ y e. ( f ` p ) _pred ( y , A
        , R ) e. _V ) $=
      ( wcel w-bnj15 w3a cv com w-bnj17 wa c-bnj14 cvv cfv wral ciun wfn 3simpc
      sylbi csuc wceq bnj923 3ad2ant1 simp3 jca bnj256 sylibr anim2i 3impb biid
      anim12i bnj518 fvex iunexg mpan 3syl ) EGUAZABUBVLMNJUCZUDTZLUCZVMTZUEZUF
      ZEGDUCUGZUHTDVOHUCZUIZUJZDWAVSUKUHTZVLABVRABUFZVQVLWDMNUFZVNVPUFZUFVQAWEB
      WFAVTVMULZMNUBWEPWGMNUMUNBVMFTZKUCVMUOUPZVPUBZWFQWJVNVPWHWIVNVPFJOUQURWHW
      IVPUSUTUNVFMNVNVPVAVBVCVDMNVQCDEGHIJLRSVQVEVGWAUHTWBWCVOVTVHDWAVSUHUHVIVJ
      VK $.
  $}

  ${
    $d G y $.  $d f y $.  $d i y $.
    bnj548.1 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj548.2 $e |- B = U_ y e. ( f ` i ) _pred ( y , A , R ) $.
    bnj548.3 $e |- K = U_ y e. ( G ` i ) _pred ( y , A , R ) $.
    bnj548.4 $e |- G = ( f u. { <. m , C >. } ) $.
    bnj548.5 $e |- ( ( R _FrSe A /\ ta /\ si ) -> G Fn n ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj548 $p |- ( ( ( R _FrSe A /\ ta /\ si ) /\ i e. m ) -> B = K ) $=
      ( w-bnj15 w3a cv wcel wa wfun wss cdm cfv wceq bnj930 adantr simp1bi fndm
      wfn eleq2 biimpar sylan 3ad2antl2 jca cop csn bnj931 jctil 3anan12 sylibr
      funssfv c-bnj14 ciun iuneq1 eqcomd 3eqtr4g 3syl ) DGUAZABUBZIUCZJUCZUDZUE
      ZLUFZHUCZLUGZVPWAUHZUDZUBZVPLUIZVPWAUIZUJZEMUJVSWBVTWDUEZUEWEVSWIWBVSVTWD
      VOVTVRVOKUCLTUKULAVNVRWDBAWAVQUOZVRWDAWJNOPUMWJWCVQUJZVRWDVQWAUNWKWDVRWCV
      QVPUPUQURURUSUTLWAVQFVAVBSVCVDVTWBWDVEVFVPLWAVGWHCWGDGCUCVHZVIZCWFWLVIZEM
      WHWNWMCWFWGWLVJVKQRVLVM $.
  $}

  ${
    $d A i p y $.  $d G y $.  $d R i p y $.  $d f i p y $.  $d i m p $.
    $d p ph' $.
    bnj553.1 $e |- ( ph' <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj553.2 $e |- ( ps' <-> A. i e. _om ( suc i e. m
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj553.3 $e |- D = ( _om \ { (/) } ) $.
    bnj553.4 $e |- G = ( f u. { <. m , U_ y e. ( f ` p ) _pred ( y , A , R ) >.
        } ) $.
    bnj553.5 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj553.6 $e |- ( si <-> ( m e. D /\ n = suc m /\ p e. m ) ) $.
    bnj553.7 $e |- C = U_ y e. ( f ` p ) _pred ( y , A , R ) $.
    bnj553.8 $e |- G = ( f u. { <. m , C >. } ) $.
    bnj553.9 $e |- B = U_ y e. ( f ` i ) _pred ( y , A , R ) $.
    bnj553.10 $e |- K = U_ y e. ( G ` i ) _pred ( y , A , R ) $.
    bnj553.11 $e |- L = U_ y e. ( G ` p ) _pred ( y , A , R ) $.
    bnj553.12 $e |- ( ( R _FrSe A /\ ta /\ si ) -> G Fn n ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj553 $p |- ( ( ( R _FrSe A /\ ta /\ si ) /\ i e. m /\ p = i ) -> ( G ` m
        ) = L ) $=
      ( w-bnj15 w3a wcel wceq cfv wfun cop bnj930 csn cun opex snid elun2 ax-mp
      cv eleqtrri funopfv mpisyl 3ad2ant1 c-bnj14 ciun bnj1113 3eqtr4g 3ad2ant3
      fveq2 bnj548 3adant3 eqeq12i eqcom bitri sylibr 3eqtr2rd eqtrd ) EIULABUM
      ZKVFZLVFZUNZQVFZWFUOZUMZWGNUPZGPWEWHWLGUOZWJWENUQWGGURZNUNWMWEMVFNUKUSWNJ
      VFZWNUTZVAZNWNWPUNWNWQUNWNWGGVBVCWNWPWOVDVEUGVGWGGNVHVIVJWKPOFGWJWEPOUOWH
      WJDWINUPZEIDVFVKZVLDWFNUPZWSVLPODWIWFWRWTWSWIWFNVPVMUJUIVNVOWEWHFOUOWJABD
      EFDWIWOUPZWSVLZIJKLMNORSUDUHUIUCUKVQVRWJWEFGUOZWHWJXBDWFWOUPZWSVLZUOZXCDW
      IWFXAXDWSWIWFWOVPVMXCXEXBUOXFFXEGXBUHUFVSXEXBVTWAWBVOWCWD $.
  $}

  ${
    $d G y $.  $d i y $.  $d p y $.
    bnj554.19 $e |- ( et <-> ( m e. D /\ n = suc m /\ p e. _om /\ m = suc p ) )
        $.
    bnj554.20 $e |- ( ze <-> ( i e. _om /\ suc i e. n /\ m = suc i ) ) $.
    bnj554.21 $e |- K = U_ y e. ( G ` i ) _pred ( y , A , R ) $.
    bnj554.22 $e |- L = U_ y e. ( G ` p ) _pred ( y , A , R ) $.
    bnj554.23 $e |- K = U_ y e. ( G ` i ) _pred ( y , A , R ) $.
    bnj554.24 $e |- L = U_ y e. ( G ` p ) _pred ( y , A , R ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj554 $p |- ( ( et /\ ze ) -> ( ( G ` m ) = L <-> ( G ` suc i ) = K ) ) $=
      ( wceq cv csuc cfv wb wcel com bnj1254 simp3bi simpr bnj551 fveq2 c-bnj14
      wa ciun iuneq1 3eqtr4g syl eqeqan12d syl2anc syl2an ) AHUAZMUAZUBTZVAGUAZ
      UBZTZVAJUCZLTVEJUCZKTUDZBAVAEUEIUAZVAUBTVBUFUEVCNUGBVDUFUEVEVJUEVFOUHVCVF
      UMVFVBVDTZVIVCVFUIGHMUJVFVKVGVHLKVAVEJUKVKVBJUCZVDJUCZTZLKTVBVDJUKVNCVLDF
      CUAULZUNCVMVOUNLKCVLVMVOUOSRUPUQURUSUT $.
  $}

  ${
    bnj556.18 $e |- ( si <-> ( m e. D /\ n = suc m /\ p e. m ) ) $.
    bnj556.19 $e |- ( et <-> ( m e. D /\ n = suc m /\ p e. _om /\ m = suc p ) )
        $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj556 $p |- ( et -> si ) $=
      ( cv wcel csuc wceq w3a com wa vex bnj216 3anim3i adantr w-bnj17 3imtr4i
      bnj258 bitri ) DIZCJZEIUDKLZUDFIZKLZMZUGNJZOZUEUFUGUDJZMZABUIUMUJUHULUEUF
      UDUGFPQRSAUEUFUJUHTUKHUEUFUJUHUBUCGUA $.
  $}

  ${
    $d A i p y $.  $d G y $.  $d R i p y $.  $d f i p y $.  $d i m p $.
    $d p ph' $.
    bnj557.3 $e |- D = ( _om \ { (/) } ) $.
    bnj557.16 $e |- G = ( f u. { <. m , U_ y e. ( f ` p ) _pred ( y , A , R )
        >. } ) $.
    bnj557.17 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj557.18 $e |- ( si <-> ( m e. D /\ n = suc m /\ p e. m ) ) $.
    bnj557.19 $e |- ( et <-> ( m e. D /\ n = suc m /\ p e. _om /\ m = suc p ) )
        $.
    bnj557.20 $e |- ( ze <-> ( i e. _om /\ suc i e. n /\ m = suc i ) ) $.
    bnj557.21 $e |- B = U_ y e. ( f ` i ) _pred ( y , A , R ) $.
    bnj557.22 $e |- C = U_ y e. ( f ` p ) _pred ( y , A , R ) $.
    bnj557.23 $e |- K = U_ y e. ( G ` i ) _pred ( y , A , R ) $.
    bnj557.24 $e |- L = U_ y e. ( G ` p ) _pred ( y , A , R ) $.
    bnj557.25 $e |- G = ( f u. { <. m , C >. } ) $.
    bnj557.28 $e |- ( ph' <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj557.29 $e |- ( ps' <-> A. i e. _om ( suc i e. m -> ( f ` suc i ) = U_ y
        e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj557.36 $e |- ( ( R _FrSe A /\ ta /\ si ) -> G Fn n ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj557 $p |- ( ( R _FrSe A /\ ta /\ et /\ ze ) -> ( G ` m ) = L ) $=
      ( w-bnj15 w-bnj17 w3a wcel wceq cfv 3an4anass bnj556 3anim3i com csuc vex
      cv wa bnj216 bnj837 anim12i sylbir bnj551 syl2an adantl jca bnj256 df-3an
      bnj1254 simp3bi 3imtr4i bnj553 syl ) GKUPZABCUQZWEADURZMVHZNVHZUSZSVHZWHU
      TZURZWIPVARUTWEAVIZBCVIZVIZWGWJVIZWLVIWFWMWPWQWLWPWEABURZCVIWQWEABCVBWRWG
      CWJBDWEABDJNOSUEUFVCVDWHVEUSZWHVFZOVHZUSZWIWTUTZWJCUGWIWHMVGVJVKVLVMWOWLW
      NBWIWKVFUTZXCWLCBWIJUSXAWIVFUTWKVEUSXDUFVTCWSXBXCUGWAMNSVNVOVPVQWEABCVRWG
      WJWLVSWBADEFGHIJKLMNOPQRSTUAUMUNUBUCUDUEUIULUHUJUKUOWCWD $.
  $}

  ${
    $d A i p y $.  $d G y $.  $d R i p y $.  $d f i p y $.  $d i m p $.
    $d p ph' $.
    bnj558.3 $e |- D = ( _om \ { (/) } ) $.
    bnj558.16 $e |- G = ( f u. { <. m , U_ y e. ( f ` p ) _pred ( y , A , R )
        >. } ) $.
    bnj558.17 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj558.18 $e |- ( si <-> ( m e. D /\ n = suc m /\ p e. m ) ) $.
    bnj558.19 $e |- ( et <-> ( m e. D /\ n = suc m /\ p e. _om /\ m = suc p ) )
        $.
    bnj558.20 $e |- ( ze <-> ( i e. _om /\ suc i e. n /\ m = suc i ) ) $.
    bnj558.21 $e |- B = U_ y e. ( f ` i ) _pred ( y , A , R ) $.
    bnj558.22 $e |- C = U_ y e. ( f ` p ) _pred ( y , A , R ) $.
    bnj558.23 $e |- K = U_ y e. ( G ` i ) _pred ( y , A , R ) $.
    bnj558.24 $e |- L = U_ y e. ( G ` p ) _pred ( y , A , R ) $.
    bnj558.25 $e |- G = ( f u. { <. m , C >. } ) $.
    bnj558.28 $e |- ( ph' <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj558.29 $e |- ( ps' <-> A. i e. _om ( suc i e. m -> ( f ` suc i ) = U_ y
        e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj558.36 $e |- ( ( R _FrSe A /\ ta /\ si ) -> G Fn n ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj558 $p |- ( ( R _FrSe A /\ ta /\ et /\ ze ) -> ( G ` suc i ) = K ) $=
      ( w-bnj15 w-bnj17 cv cfv wceq csuc bnj557 wa wb w3a bnj422 bnj253 simp1bi
      bitri bnj554 syl mpbid ) GKUPZABCUQZNURPUSRUTZMURVAPUSQUTZABCDEFGHIJKLMNO
      PQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOVBVNBCVCZVOVPVDVNVQVMAVNBCVMAUQVQVMAVE
      VMABCVFBCVMAVGVIVHBCFGJKMNOPQRSUFUGUJUKUJUKVJVKVL $.
  $}

  ${
    bnj561.18 $e |- ( si <-> ( m e. D /\ n = suc m /\ p e. m ) ) $.
    bnj561.19 $e |- ( et <-> ( m e. D /\ n = suc m /\ p e. _om /\ m = suc p ) )
        $.
    bnj561.37 $e |- ( ( R _FrSe A /\ ta /\ si ) -> G Fn n ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj561 $p |- ( ( R _FrSe A /\ ta /\ et ) -> G Fn n ) $=
      ( w-bnj15 cv wfn bnj556 syl3an3 ) BDFNACIHOPBCEGHJKLQMR $.
  $}

  ${
    bnj562.18 $e |- ( si <-> ( m e. D /\ n = suc m /\ p e. m ) ) $.
    bnj562.19 $e |- ( et <-> ( m e. D /\ n = suc m /\ p e. _om /\ m = suc p ) )
        $.
    bnj562.38 $e |- ( ( R _FrSe A /\ ta /\ si ) -> ph" ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj562 $p |- ( ( R _FrSe A /\ ta /\ et ) -> ph" ) $=
      ( w-bnj15 bnj556 syl3an3 ) BDFNACJBCEGHIKLOMP $.
  $}

  ${
    $d G y $.  $d f y $.  $d i y $.
    bnj570.3 $e |- D = ( _om \ { (/) } ) $.
    bnj570.17 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj570.19 $e |- ( et <-> ( m e. D /\ n = suc m /\ p e. _om /\ m = suc p ) )
        $.
    bnj570.21 $e |- ( rh <-> ( i e. _om /\ suc i e. n /\ m =/= suc i ) ) $.
    bnj570.24 $e |- K = U_ y e. ( G ` i ) _pred ( y , A , R ) $.
    bnj570.26 $e |- G = ( f u. { <. m , C >. } ) $.
    bnj570.40 $e |- ( ( R _FrSe A /\ ta /\ et ) -> G Fn n ) $.
    bnj570.30 $e |- ( ps' <-> A. i e. _om ( suc i e. m -> ( f ` suc i ) = U_ y
        e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj570 $p |- ( ( R _FrSe A /\ ta /\ et /\ rh ) -> ( G ` suc i ) = K ) $=
      ( w-bnj15 w-bnj17 cv csuc cfv c-bnj14 ciun wa wceq bnj251 com wfn simp3bi
      wcel wne simp1bi adantl bnj563 jca wi wal bnj946 sp sylbi imp32 simplbiim
      syl2an w3a bnj930 bnj721 wss cop csn bnj931 a1i cdm bnj667 bnj564 biimpar
      wfun eleq2 3impb syl bnj1502 word bnj252 simplbi cdif eldifi eleq2s nnord
      c0 3syl adantr anim12i elelsuc ordsucelsuc sylan2 iuneq1d 3eqtr4d syl6eqr
      fndm ) EHUFZABCUGZJUHZUIZMUJZDXJMUJZEHDUHUKZULZNXIXKIUHZUJZDXJXPUJZXNULZX
      LXOXIXHABCUMZUMZXQXSUNZXHABCUOAQXJUPUSZXKKUHZUSZUMYBXTAXPYDUQZPQSURXTYCYE
      CYCBCYCXKLUHZUSYDXKUTUAVAVBBCGJKLOTUAVCZVDQYCYEYBQYCYEYBVEZVEZJVFYJQYIJUP
      UEVGYJJVHVIVJVLVKXIXKMXPXHABCMWEXHABVMYGMUDVNVOZXPMVPXIMXPYDFVQVRUCVSVTZX
      IABCVMZXKXPWAZUSZXHABCWBZABCYOAYNYDUNZYEYOXTAIKPQSWCYHYQYOYEYNYDXKWFWDVLW
      GWHWIXIDXMXRXNXIXJMXPYKYLXIYMXJYNUSZYPABCYRYAYFYDWJZYEUMZUMYQXJYDUSZUMYRA
      YFXTYTAYFPQSVAXTYSYEBYSCBYDGUSZYDUPUSZYSBUUBYGYDUIZUNZOUHZUPUSZYDUUFUIUNZ
      UGZUUBTUUIUUBUUEUUGUUHVMUUBUUEUUGUUHWKWLVIUUCYDUPWQVRZWMGYDUPUUJWNRWOYDWP
      WRWSYHVDWTYFYQYTUUAYDXPXGYEYSXKUUDUSZUUAXKYDXAYSUUAUUKXJYDXBWDXCWTYQYRUUA
      YNYDXJWFWDWRWGWHWIXDXEUBXF $.
  $}

  ${
    $d A i p y $.  $d G y $.  $d R i p y $.  $d et i $.  $d f i p y $.
    $d i m p $.  $d i p ph' $.
    bnj571.3 $e |- D = ( _om \ { (/) } ) $.
    bnj571.16 $e |- G = ( f u. { <. m , U_ y e. ( f ` p ) _pred ( y , A , R )
        >. } ) $.
    bnj571.17 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj571.18 $e |- ( si <-> ( m e. D /\ n = suc m /\ p e. m ) ) $.
    bnj571.19 $e |- ( et <-> ( m e. D /\ n = suc m /\ p e. _om /\ m = suc p ) )
        $.
    bnj571.20 $e |- ( ze <-> ( i e. _om /\ suc i e. n /\ m = suc i ) ) $.
    bnj571.22 $e |- B = U_ y e. ( f ` i ) _pred ( y , A , R ) $.
    bnj571.23 $e |- C = U_ y e. ( f ` p ) _pred ( y , A , R ) $.
    bnj571.24 $e |- K = U_ y e. ( G ` i ) _pred ( y , A , R ) $.
    bnj571.25 $e |- L = U_ y e. ( G ` p ) _pred ( y , A , R ) $.
    bnj571.26 $e |- G = ( f u. { <. m , C >. } ) $.
    bnj571.29 $e |- ( ph' <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj571.30 $e |- ( ps' <-> A. i e. _om ( suc i e. m -> ( f ` suc i ) = U_ y
        e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj571.38 $e |- ( ( R _FrSe A /\ ta /\ si ) -> G Fn n ) $.
    bnj571.21 $e |- ( rh <-> ( i e. _om /\ suc i e. n /\ m =/= suc i ) ) $.
    bnj571.40 $e |- ( ( R _FrSe A /\ ta /\ et ) -> G Fn n ) $.
    bnj571.33 $e |- ( ps" <-> A. i e. _om ( suc i e. n -> ( G ` suc i ) = U_ y
        e. ( G ` i ) _pred ( y , A , R ) ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj571 $p |- ( ( R _FrSe A /\ ta /\ et ) -> ps" ) $=
      ( w-bnj15 w3a cv com wcel csuc cfv c-bnj14 ciun wceq wi wal nfv wfn nfra1
      wral nfxfr nf3an wa w-bnj17 df-bnj17 3anass 3anrot df-3an anbi2i 3bitr4ri
      bitri bnj558 sylbir 3expib bnj570 pm2.61ine syl6eq alrimi bnj946 sylibr
      wne exp32 ) HLVAZABVBZNVCZVDVEZXAVFZPVCVEZXCQVGZGXAQVGHLGVCVHZVIZVJZVKZVK
      ZNVLUCWTXJNWSABNWSNVMAMVCZOVCZVNZUAUBVBNUFXMUAUBNXMNVMUANVMUBXCXLVEXCXKVG
      GXAXKVGXFVIVJVKZNVDVPNUPXNNVDVOVQVRVQBNVMVRWTXBXDXHWTXBXDVSZVSZXERXGXPXER
      VJZVKXLXCXLXCVJZWTXOXQXRWTXOVBZWSABCVTZXQXTWTCVSZXSWSABCWAWTXOXRVBWTXOXRV
      SZVSXSYAWTXOXRWBXRWTXOWCCYBWTCXBXDXRVBYBUIXBXDXRWDWGWEWFWGABCDFGHIJKLMNOP
      QRSTUAUBUDUEUFUGUHUIUJUKULUMUNUOUPUQWHWIWJXLXCWQZWTXOXQYCWTXOVBZWSABEVTZX
      QYEWTEVSZYDWSABEWAWTXOYCVBWTXOYCVSZVSYDYFWTXOYCWBYCWTXOWCEYGWTEXBXDYCVBYG
      URXBXDYCWDWGWEWFWGABEGHGTVCXKVGXFVIKLMNOPQRTUAUBUDUFUHURULUEUSUPWKWIWJWLU
      LWMWRWNUCXINVDUTWOWP $.
  $}

$( MARKER 4 - TODO DELETE $)
  ${
    $d A f m $.  $d A f p $.  $d R f m $.  $d R f p $.  $d et f $.  $d m n $.
    $d m ph $.  $d m ps $.  $d m x $.  $d n p $.  $d p ph $.  $d p ps $.
    $d p th $.  $d p x $.
    bnj605.5 $e |- ( th <-> A. m e. D ( m _E n -> [. m / n ]. ch ) ) $.
    bnj605.13 $e |- ( ph" <-> [. f / f ]. ph ) $.
    bnj605.14 $e |- ( ps" <-> [. f / f ]. ps ) $.
    bnj605.17 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj605.19 $e |- ( et <-> ( m e. D /\ n = suc m /\ p e. _om /\ m = suc p ) )
        $.
    bnj605.28 $e |- f e. _V $.
    bnj605.31 $e |- ( ch' <-> ( ( R _FrSe A /\ x e. A ) -> E! f ( f Fn m /\ ph'
        /\ ps' ) ) ) $.
    bnj605.32 $e |- ( ph" <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj605.33 $e |- ( ps" <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y
        e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj605.37 $e |- ( ( n =/= 1o /\ n e. D ) -> E. m E. p et ) $.
    bnj605.38 $e |- ( ( th /\ m e. D /\ m _E n ) -> ch' ) $.
    bnj605.41 $e |- ( ( R _FrSe A /\ ta /\ et ) -> f Fn n ) $.
    bnj605.42 $e |- ( ( R _FrSe A /\ ta /\ et ) -> ph" ) $.
    bnj605.43 $e |- ( ( R _FrSe A /\ ta /\ et ) -> ps" ) $.
    $( Technical lemma.  This lemma may no longer be used or have become an
       indirect lemma of the theorem in question (i.e. a lemma of a lemma... of
       the theorem).  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj605 $p |- ( ( n =/= 1o /\ n e. D /\ th )
        -> ( ( R _FrSe A /\ x e. A ) -> E. f ( f Fn n /\ ph /\ ps ) ) ) $=
      ( cv c1o wne wcel w-bnj15 wa wfn w3a wex wi anim1i nfv 19.41 cep wbr wsbc
      exbii bnj1095 nf5i bitr2i sylib csuc com bnj1232 bnj219 bnj770 jca bnj170
      wceq sylibr syl simpl 2eximi w-bnj17 bnj248 pm3.35 sylan2b bnj1198 bnj832
      weu euex 3jca 3com23 3expia eximdv adantlr sylbi mpd biid sbcid 3anbi123i
      bnj432 bitri 3imtr3i ex exlimivv 3syl 3impa ) OUPZUQURZXNJUSZDIKUTZGUPIUS
      ZVAZLUPZXNVBZABVCZLVDZVEZXOXPVAZDVAZFDVAZPVDZNVDZSFVAZPVDNVDYDYFFPVDZNVDZ
      DVAZYIYEYLDUKVFYIYKDVAZNVDYMYHYNNFDPDPVGVHVLYKDNDNDNUPZXNVIVJZCOYOVKVENJU
      BVMVNVHVOVPYGYJNPYGSFYGDYOJUSZYPVCZSYGYQYPVAZDVAYRFYSDFYQYPFYQXNYOVQWDZPU
      PZVRUSZYOUUAVQWDZUFVSYQYTUUBUUCYPFUFNOVTWAWBVFDYQYPWCWEULWFFDWGWBWHYJYDNP
      YJXSYCXQXRSFWIZYATUAVCZLVDZYJXSVAYCUUDELVDZUUFXSSVAZFUUGUUDXQXRSFWJZUUHXT
      YOVBQRVCZLEUUHUUJLWOZUUJLVDSXSXSUUKVEUUKUHXSUUKWKWLUUJLWPWFUEWMWNUUDUUHFV
      AUUGUUFVEZUUIXSFUULSXQFUULXRXQFVAEUUELXQFEUUEXQEFUUEXQEFVCYATUAUMUNUOWQWR
      WSWTXAXAXBXCXQXRSFXGUUEYBLYAYATAUABYAXDTALXTVKAUCALXEXHUABLXTVKBUDBLXEXHX
      FVLXIXJXKXLXM $.
  $}

  ${
    $d f n $.
    bnj581.3 $e |- ( ch <-> ( f Fn n /\ ph /\ ps ) ) $.
    bnj581.4 $e |- ( ph' <-> [. g / f ]. ph ) $.
    bnj581.5 $e |- ( ps' <-> [. g / f ]. ps ) $.
    bnj581.6 $e |- ( ch' <-> [. g / f ]. ch ) $.
    $( Technical lemma for ~ bnj580 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Unnecessary distinct variable restrictions
       were removed by Andrew Salmon, 9-Jul-2011.)  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    bnj581 $p |- ( ch' <-> ( g Fn n /\ ph' /\ ps' ) ) $=
      ( cv wsbc wfn w3a sbcbii sbc3an bnj62 bicomi 3anbi123i bitr4i 3bitri ) IC
      DENZODNFNZPZABQZDUEOZUEUFPZGHQZMCUHDUEJRUIUGDUEOZADUEOZBDUEOZQUKUGABDUESU
      JULGUMHUNULUJDEUFTUAKLUBUCUD $.
  $}

  ${
    $d A i k $.  $d R i k $.  $d f i k y $.  $d i k n $.
    bnj589.1 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj589 $p |- ( ps <-> A. k e. _om ( suc k e. n -> ( f ` suc k ) = U_ y e. (
        f ` k ) _pred ( y , A , R ) ) ) $=
      ( cv bnj222 ) ABCDFGEJHJIK $.
  $}

  ${
    bnj590.1 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj590 $p |- ( ( B = suc i /\ ps ) -> ( i e. _om -> ( B e. n -> ( f ` B ) =
        U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) ) $=
      ( cv csuc wceq com wcel cfv c-bnj14 ciun wi wral rsp sylbi eqeq1d imbi12d
      eleq1 fveq2 imbi2d syl5ibr imp ) DGJZKZLZAUIMNZDHJZNZDFJZOZBUIUOOCEBJPQZL
      ZRZRZAUTUKULUJUMNZUJUOOZUQLZRZRZAVDGMSVEIVDGMTUAUKUSVDULUKUNVAURVCDUJUMUD
      UKUPVBUQDUJUOUEUBUCUFUGUH $.
  $}

  ${
    $d D j $.  $d ch j $.  $d ch' j $.  $d f j $.  $d g j $.  $d j k $.
    $d j n $.
    bnj591.1 $e |- ( th <-> ( ( n e. D /\ ch /\ ch' ) -> ( f ` j ) = ( g ` j )
        ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj591 $p |- ( [. k / j ]. th
        <-> ( ( n e. D /\ ch /\ ch' ) -> ( f ` k ) = ( g ` k ) ) ) $=
      ( cv wsbc wcel w3a cfv wceq wi sbcbii vex fveq2 weq eqeq12d imbi2d sbcie
      bitri ) BFGKZLHKCMAINZFKZDKZOZUHEKZOZPZQZFUFLUGUFUIOZUFUKOZPZQZBUNFUFJRUN
      URFUFGSFGUAZUMUQUGUSUJUOULUPUHUFUITUHUFUKTUBUCUDUE $.
  $}

  ${
    $d A i k $.  $d D k $.  $d R i k $.  $d ch k $.  $d ch' k $.  $d f i k y $.
    $d g i k y $.  $d i k n $.  $d j k $.
    bnj594.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj594.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj594.3 $e |- ( ch <-> ( f Fn n /\ ph /\ ps ) ) $.
    bnj594.7 $e |- D = ( _om \ { (/) } ) $.
    bnj594.9 $e |- ( ph' <-> ( g ` (/) ) = _pred ( x , A , R ) ) $.
    bnj594.10 $e |- ( ps' <-> A. i e. _om ( suc i e. n -> ( g ` suc i ) = U_ y
        e. ( g ` i ) _pred ( y , A , R ) ) ) $.
    bnj594.11 $e |- ( ch' <-> ( g Fn n /\ ph' /\ ps' ) ) $.
    bnj594.15 $e |- ( th <-> ( ( n e. D /\ ch /\ ch' ) -> ( f ` j ) = ( g ` j )
        ) ) $.
    bnj594.16 $e |- ( [. k / j ]. th
        <-> ( ( n e. D /\ ch /\ ch' ) -> ( f ` k ) = ( g ` k ) ) ) $.
    bnj594.17 $e |- ( ta <-> A. k e. n ( k _E j -> [. k / j ]. th ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj594 $p |- ( ( j e. n /\ ta ) -> th ) $=
      ( wel wa wi cv wceq wcel w3a cfv c-bnj14 wfn simp2bi sylib syl2an 3adant1
      c0 eqtr3 fveq2 eqeq12d syl5ibr sylibr a1d wne w-bnj17 bnj253 bnj252 anidm
      3anbi1i 3bitr3i wex csuc df-bnj17 cep wsbc bnj1095 bnj1352 hbxfrbi bnj170
      wbr wrex bnj923 elnn sylan2 anim1i sylbi nnsuc rexex bnj721 bnj596 bnj667
      com 3syl bnj258 ciun bnj219 3ad2ant3 adantr vex bnj216 df-3an 3anrot word
      ancom csn cdif eldifi eleq2s nnord ordtr1 imp syl3an3 wral rsp mpd bnj446
      mpan9 pm3.35 sylan2b iuneq1 bnj658 bnj240 simpl anim2i simp3 simpl1 bitri
      simp3bi anim12i bnj589 bnj590 syldan simpr 3eqtr4d ex syl 3imtr3i expimpd
      bnj593 19.9v syl5bir 3expib pm2.61ine ) NPUJZEUKZDULNUMZVDUUMVDUNZDUULUUN
      PUMZIUOZCSUPZUUMKUMZUQZUUMLUMZUQZUNZULZDUUQUVBUUNVDUURUQZVDUUTUQZUNZCSUVF
      UUPCUVDHJFUMURZUNZUVEUVGUNZUVFSCAUVHCUURUUOUSZABUBUTTVASQUVISUUTUUOUSZQRU
      FUTUDVAUVDUVEUVGVEVBVCUUNUUSUVDUVAUVEUUMVDUURVFUUMVDUUTVFVGVHUGVIVJUUMVDV
      KZUUKEDUVLUUKEUPZUVCDUUQUUPUUQUKZUVMUVBUUPUUPCSVLUUPUUPUKZCSUPUVNUUQUUPUU
      PCSVMUUPUUPCSVNUVOUUPCSUUPVOVPVQUVMUUPUUQUVBUVLUUKUUPEVLZUVCOVRUVMUUPUKUV
      CUVPUVPUUMOUMZVSUNZUKZUVCOUVPUVROUVPUVLUUKUUPUPZEUKOUVLUUKUUPEVTUVTEOEUVQ
      UUMWAWGZDNUVQWBZULZOUUOUIWCWDWEUVLUUKUUPEUVROVRZUVTUUMWSUOZUVLUKZUVROWSWH
      UWDUVTUUKUUPUKZUVLUKUWFUVLUUKUUPWFUWGUWEUVLUUPUUKUUOWSUOZUWEIPUCWIUUMUUOW
      JWKZWLWMOUUMWNUVROWSWOWTWPWQUVSUUKUUPUVREVLZUVCUVSUUKUUPEUPZUVRUKUWJUVPUW
      KUVRUVLUUKUUPEWRWLUUKUUPUVREXAVIUWJUUQUVBUWJUUQUKZGUVQUURUQZHJGUMURZXBZGU
      VQUUTUQZUWNXBZUUSUVAUWLUWBUUPCSVLZUWMUWPUNZUWOUWQUNUWLUWBUUQUKUWRUWJUWBUU
      QUWJUUKUUPUVRUPZEUKZUWBUUKUUPUVREVTUXAUWAUWBUWTUWAEUVRUUKUWAUUPONXCXDXEUW
      TOPUJZEUWCUVRUUKUUPONUJZUXBUUMUVQOXFXGZUUKUUPUXCUPZUUPUXCUUKUKZUKZUXBUXCU
      UKUUPUPUXFUUPUKUXEUXGUXCUUKUUPXHUXCUUKUUPXIUXFUUPXKVQUUPUXFUXBUUPUWHUUOXJ
      UXFUXBULUWHUUOWSVDXLZXMIUUOWSUXHXNUCXOUUOXPUVQUUMUUOXQWTXRWMXSEUWCOUUOXTU
      XBUWCULUIUWCOUUOYAWMYDYBWMWLUWBUUPCSVNVIUWRUUQUWBUKUWSUWBUUPCSYCUWBUUQUUQ
      UWSULUWSUHUUQUWSYEYFWMGUWMUWPUWNYGWTUWLUWTBRUKZUKZUWTBUKUUSUWOUNZUWJUWTUU
      QUXIUUKUUPUVREYHUUPCSBRCUVJABUBYOSUVKQRUFYOYIYPZUXIBUWTBRYJYKUWTBUVRBUKZU
      XKUWTUVRBUUKUUPUVRYLZWLUWTUXMUKUUKUXKUUKUUPUVRUXMYMUWTUVQWSUOZUXMUUKUXKUL
      UWTUVRUWGUKZUXOUWTUWGUVRUKUXPUUKUUPUVRXHUWGUVRXKYNUVRUXCUWEUXOUWGUXDUWIUV
      QUUMWJVBWMZBGHUUMJKOPBGHJKMOPUAYQYRYDYBYSWTUWLUXJUWTRUKUVAUWQUNZUXLUXIRUW
      TBRYTYKUWTRUVRRUKZUXRUWTUVRRUXNWLUWTUXSUKUUKUXRUUKUUPUVRUXSYMUWTUXOUXSUUK
      UXRULUXQRGHUUMJLOPRGHJLMOPUEYQYRYDYBYSWTUUAUUBUUCUUFUVLUUKUUPEXAUVCOUUGUU
      DUUEUUHUGVIUUIUUJ $.
  $}

  ${
    $d A f i k $.  $d D f g j k $.  $d R f i k $.  $d ch g j k $.
    $d ch' j k $.  $d f g i k n $.  $d f x $.  $d f g i k y $.  $d j k n $.
    $d k th $.
    bnj580.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj580.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj580.3 $e |- ( ch <-> ( f Fn n /\ ph /\ ps ) ) $.
    bnj580.4 $e |- ( ph' <-> [. g / f ]. ph ) $.
    bnj580.5 $e |- ( ps' <-> [. g / f ]. ps ) $.
    bnj580.6 $e |- ( ch' <-> [. g / f ]. ch ) $.
    bnj580.7 $e |- D = ( _om \ { (/) } ) $.
    bnj580.8 $e |- ( th <-> ( ( n e. D /\ ch /\ ch' ) -> ( f ` j ) = ( g ` j )
        ) ) $.
    bnj580.9 $e |- ( ta <-> A. k e. n ( k _E j -> [. k / j ]. th ) ) $.
    $( Technical lemma for ~ bnj579 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj580 $p |- ( n e. D -> E* f ch ) $=
      ( cv wcel weq wal wmo w3a wfn cfv wceq wral simp1bi bnj581 bnj240 cep wfr
      wa wi wel bnj154 vex bnj540 bnj591 bnj594 ex bnj110 mpan2 ralbii r19.21be
      rgen sylib com word bnj923 nnord ordfr 3syl 3ad2ant1 pm4.71ri bitri mpbir
      imbi1i impexp r19.21v mpbi eqfnfv biimprd sylc 3expib alrimivv wsbc sbsbc
      wsb anbi2i 2albii nfv mo3 3bitr4i sylibr ) PUIZIUJZCSVDZKLUKZVEZLULKULZCK
      UMZXHXKKLXHCSXJXHCSUNZKUIZXGUOZLUIZXGUOZVDZNUIZXOUPXTXQUPUQZNXGURZXJXHCSX
      PXRCXPABUBUSSXRQRABCKLPQRSUBUCUDUEUTZUSVAXNYAVEZNXGURZXNYBVEYEXGVBVCZYDVE
      ZNXGURYFYDNXGYFDNXGURZYEYFEDVEZNXGURYHYINXGNPVFEDABCDEFGHIJKLMNOPQRSTUAUB
      UFFHJKLAQUCTVGBGHJKMXQXGRUAUDLVHVIYCUGCDIKLNOPSUGVJUHVKVLVQDENOXGVBPVHUHV
      MVNDYDNXGUGVOVRVPYDYGNXGYDYFXNVDZYAVEYGXNYJYAXNYFXHCYFSXHXGVSUJXGVTYFIPUF
      WAXGWBXGWCWDWEWFWIYFXNYAWJWGVOWHXNYANXGWKWLXSXJYBNXGXOXQWMWNWOWPWQCCKLWTZ
      VDZXJVEZLULKULCCKXQWRZVDZXJVEZLULKULXMXLYMYPKLYLYOXJYKYNCCKLWSXAWIXBCKLCL
      XCXDXKYPKLXIYOXJSYNCUEXAWIXBXEXF $.
  $}

  ${
    $d A f i k $.  $d D f g j k $.  $d R f i k $.  $d f g i k n $.  $d f x $.
    $d f g i k y $.  $d g j k ph $.  $d g j k ps $.  $d j k n $.
    bnj579.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj579.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj579.3 $e |- D = ( _om \ { (/) } ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj579 $p |- ( n e. D -> E* f ( f Fn n /\ ph /\ ps ) ) $=
      ( vg vj vk cv w3a wsbc biid wfn wcel cfv wceq wi cep wbr wral bnj580 ) AB
      HQZJQZUAABRZUKFUBULULHNQZSZROQZUJUCUOUMUCUDUEZPQZUOUFUGUPOUQSUEPUKUHZCDEF
      GHNIOPJAHUMSZBHUMSZUNKLULTUSTUTTUNTMUPTURTUI $.
  $}

  ${
    $d A y $.  $d R y $.  $d X y $.  $d Y y $.
    $( Equality theorem for the ` _pred ` function constant.  (Contributed by
       Jonathan Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    bnj602 $p |- ( X = Y -> _pred ( X , A , R ) = _pred ( Y , A , R ) ) $=
      ( vy wceq cv wbr crab c-bnj14 breq2 rabbidv df-bnj14 3eqtr4g ) CDFZEGZCBH
      ZEAIPDBHZEAIABCJABDJOQREACDPBKLEABCMEABDMN $.
  $}

  ${
    $d A f h $.  $d A f m $.  $d A f p $.  $d G h i y $.  $d R f h $.
    $d R f m $.  $d R f p $.  $d et f $.  $d f h i y $.  $d f h n $.
    $d f h x $.  $d h ph $.  $d h ps $.  $d m n $.  $d m ph $.  $d m ps $.
    $d m x $.  $d n p $.  $d p ph $.  $d p ps $.  $d p th $.  $d p x $.
    bnj607.5 $e |- ( th <-> A. m e. D ( m _E n -> [. m / n ]. ch ) ) $.
    bnj607.13 $e |- ( ph" <-> [. G / f ]. ph ) $.
    bnj607.14 $e |- ( ps" <-> [. G / f ]. ps ) $.
    bnj607.17 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj607.19 $e |- ( et <-> ( m e. D /\ n = suc m /\ p e. _om /\ m = suc p ) )
        $.
    bnj607.28 $e |- G e. _V $.
    bnj607.31 $e |- ( ch' <-> ( ( R _FrSe A /\ x e. A ) -> E! f ( f Fn m /\ ph'
        /\ ps' ) ) ) $.
    bnj607.32 $e |- ( ph" <-> ( G ` (/) ) = _pred ( x , A , R ) ) $.
    bnj607.33 $e |- ( ps" <-> A. i e. _om ( suc i e. n -> ( G ` suc i ) = U_ y
        e. ( G ` i ) _pred ( y , A , R ) ) ) $.
    bnj607.37 $e |- ( ( n =/= 1o /\ n e. D ) -> E. m E. p et ) $.
    bnj607.38 $e |- ( ( th /\ m e. D /\ m _E n ) -> ch' ) $.
    bnj607.41 $e |- ( ( R _FrSe A /\ ta /\ et ) -> G Fn n ) $.
    bnj607.42 $e |- ( ( R _FrSe A /\ ta /\ et ) -> ph" ) $.
    bnj607.43 $e |- ( ( R _FrSe A /\ ta /\ et ) -> ps" ) $.
    bnj607.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj607.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj607.400 $e |- ( ph0 <-> [. h / f ]. ph ) $.
    bnj607.401 $e |- ( ps0 <-> [. h / f ]. ps ) $.
    bnj607.300 $e |- ( ph1 <-> [. G / h ]. ph0 ) $.
    bnj607.301 $e |- ( ps1 <-> [. G / h ]. ps0 ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj607 $p |- ( ( n =/= 1o /\ n e. D /\ th )
        -> ( ( R _FrSe A /\ x e. A ) -> E. f ( f Fn n /\ ph /\ ps ) ) ) $=
      ( cv c1o wne wcel w-bnj15 wa wfn w3a wex wi anim1i nfv 19.41 cep wbr wsbc
      exbii bnj1095 nf5i bitr2i sylib csuc com bnj1232 bnj219 bnj770 jca bnj170
      wceq sylibr syl 2eximi weu biimpi euex syl6 impcom bnj1198 adantrr 3com23
      simpl id 3expia eximdv ad2ant2rl mpd 3jca eximi nfe1 cvv nfcv nfxfr nf3an
      nfsbc1v fneq1 sbceq1a syl6bbr 3anbi123d spcegf ax-mp c0 cfv bnj154 bnj526
      c-bnj14 bitr4i ciun wral vex bnj540 anbi12i 3anass 3syl 3bitr4i weq cbvex
      anbi2i 3imtr4i exlimi expcom exlimivv 3impa ) PVHZVIVJZUUJJVKZDIKVLZGVHZI
      VKZVMZLVHZUUJVNZABVOZLVPZVQZUUKUULVMZDVMZFDVMZRVPZOVPZUAFVMZRVPOVPUVAUVCF
      RVPZOVPZDVMZUVFUVBUVIDUQVRUVFUVHDVMZOVPUVJUVEUVKOFDRDRVSVTWDUVHDODODOVHZU
      UJWAWBZCPUVLWCVQOJUHWEWFVTWGWHUVDUVGORUVDUAFUVDDUVLJVKZUVMVOZUAUVDUVNUVMV
      MZDVMUVOFUVPDFUVNUVMFUVNUUJUVLWIWPZRVHZWJVKZUVLUVRWIWPZULWKUVNUVQUVSUVTUV
      MFULOPWLWMWNVRDUVNUVMWOWQURWRFDXHWNWSUVGUVAORUUPUVGUUTUUPUVGVMZUUMEFVOZLV
      PZQUUJVNZUBUCVOZLVPUUTUWAELVPZUWCUUPUAUWFFUUPUAVMUUQUVLVNSTVOZLEUAUUPUWGL
      VPZUAUUPUWGLWTZUWHUAUUPUWIVQUNXAUWGLXBXCXDUKXEXFUUMFUWFUWCVQUUOUAUUMFVMEU
      WBLUUMFEUWBUUMEFUWBUWBXIXGXJXKXLXMUWBUWELUWBUWDUBUCUSUTVAXNXOUWEUUTLUUSLX
      PUWDUFUGVOZMVHZUUJVNZUDUEVOZMVPZUWEUUTQXQVKUWJUWNVQUMUWMUWJMQXQMQXRUWDUFU
      GMUWDMVSUFUDMQWCZMVFUDMQYAXSUGUEMQWCZMVGUEMQYAXSXTUWKQWPZUWLUWDUDUFUEUGUU
      JUWKQYBUWQUDUWOUFUDMQYCVFYDUWQUEUWPUGUEMQYCVGYDYEYFYGUWDUBUCVMZVMUWDUFUGV
      MZVMUWEUWJUWRUWSUWDUBUFUCUGUBYHQYIIKUUNYLWPUFUOUDIKMQUUNUFGIKLMAUDVDVBYJV
      FUMYKYMUCNVHZWIZUUJVKUXAQYIHUWTQYIIKHVHYLYNWPVQNWJYOUGUPUEHIKMNQUUJUGBHIK
      LNUWKUUJUEVCVEMYPYQVGUMYQYMYRUUDUWDUBUCYSUWDUFUGYSUUAUUSUWMLMUUSMVSUWLUDU
      ELUWLLVSUDALUWKWCZLVDALUWKYAXSUEBLUWKWCZLVEBLUWKYAXSXTLMUUBZUURUWLAUDBUEU
      UJUUQUWKYBUXDAUXBUDALUWKYCVDYDUXDBUXCUEBLUWKYCVEYDYEUUCUUEUUFYTUUGUUHYTUU
      I $.
  $}

  ${
    $d A e f $.  $d G e $.  $d R e f $.  $d X e f $.  $d e ph $.
    bnj609.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj609.2 $e |- ( ph" <-> [. G / f ]. ph ) $.
    bnj609.3 $e |- G e. _V $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj609 $p |- ( ph" <-> ( G ` (/) ) = _pred ( X , A , R ) ) $=
      ( ve wsbc c0 cfv c-bnj14 wceq cv fveq1 eqeq1d bitri dfsbcq sbcbii vex weq
      sbcie vtoclb ) GADELZMENZBCFOZPZIADKQZLZMUKNZUIPZUGUJKEJADUKEUAUKEPUMUHUI
      MUKERSULMDQZNZUIPZDUKLUNAUQDUKHUBUQUNDUKKUCDKUDUPUMUIMUOUKRSUETUFT $.
  $}

  ${
    $d A e f $.  $d G e i y $.  $d N f $.  $d R e f $.  $d f i y $.
    bnj611.1 $e |- ( ps <-> A. i e. _om ( suc i e. N -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj611.2 $e |- ( ps" <-> [. G / f ]. ps ) $.
    bnj611.3 $e |- G e. _V $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj611 $p |- ( ps" <-> A. i e. _om ( suc i e. N
        -> ( G ` suc i ) = U_ y e. ( G ` i ) _pred ( y , A , R ) ) ) $=
      ( wsbc cv wcel cfv wceq wi com fveq1 ve csuc c-bnj14 ciun wral wal df-ral
      bicomi sbcbii cvv nfv sbc19.21g ax-mp bnj1113 eqeq12d bnj610 imbi2i bitri
      wb albii sbcal 3bitr4ri ) IAEGMZFNZUBZHOZVEGPZBVDGPZCDBNUCZUDZQZRZFSUEZKV
      DSOZVFVEENZPZBVDVOPZVIUDZQZRZRZFUFZEGMZVTFSUEZEGMVMVCWBWDEGWDWBVTFSUGUHUI
      WAEGMZFUFVNVLRZFUFWCVMWEWFFWEVNVTEGMZRZWFGUJOZWEWHUSLVNVTEGUJVNEUKULUMWGV
      LVNWGVFVSEGMZRZVLWIWGWKUSLVFVSEGUJVFEUKULUMWJVKVFVSVKEUAGVEUANZPZBVDWLPZV
      IUDZQLVOGQVPVGVRVJVEVOGTBVOGVQVHVIVDVOGTUNUOVOWLQVPWMVRWOVEVOWLTBVOWLVQWN
      VIVDVOWLTUNUOWLGQWMVGWOVJVEWLGTBWLGWNVHVIVDWLGTUNUOUPUQURUQURUTWAFEGVAVLF
      SUGVBAWDEGJUIVBUR $.
  $}

  ${
    $d A f i m n p z $.  $d A f i n p y $.  $d D f p $.  $d G i y z $.
    $d R f i m n p z $.  $d R f i n p y $.  $d et f i $.  $d f m n p x z $.
    $d i p ph' $.  $d m p ph z $.  $d m p ps z $.  $d p th $.
    bnj600.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj600.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj600.3 $e |- D = ( _om \ { (/) } ) $.
    bnj600.4 $e |- ( ch <-> ( ( R _FrSe A /\ x e. A )
        -> E! f ( f Fn n /\ ph /\ ps ) ) ) $.
    bnj600.5 $e |- ( th <-> A. m e. D ( m _E n -> [. m / n ]. ch ) ) $.
    bnj600.10 $e |- ( ph' <-> [. m / n ]. ph ) $.
    bnj600.11 $e |- ( ps' <-> [. m / n ]. ps ) $.
    bnj600.12 $e |- ( ch' <-> [. m / n ]. ch ) $.
    bnj600.13 $e |- ( ph" <-> [. G / f ]. ph ) $.
    bnj600.14 $e |- ( ps" <-> [. G / f ]. ps ) $.
    bnj600.15 $e |- ( ch" <-> [. G / f ]. ch ) $.
    bnj600.16 $e |- G = ( f u. { <. m , U_ y e. ( f ` p ) _pred ( y , A , R )
        >. } ) $.
    bnj600.17 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj600.18 $e |- ( si <-> ( m e. D /\ n = suc m /\ p e. m ) ) $.
    bnj600.19 $e |- ( et <-> ( m e. D /\ n = suc m /\ p e. _om /\ m = suc p ) )
        $.
    bnj600.20 $e |- ( ze <-> ( i e. _om /\ suc i e. n /\ m = suc i ) ) $.
    bnj600.21 $e |- ( rh <-> ( i e. _om /\ suc i e. n /\ m =/= suc i ) ) $.
    bnj600.22 $e |- B = U_ y e. ( f ` i ) _pred ( y , A , R ) $.
    bnj600.23 $e |- C = U_ y e. ( f ` p ) _pred ( y , A , R ) $.
    bnj600.24 $e |- K = U_ y e. ( G ` i ) _pred ( y , A , R ) $.
    bnj600.25 $e |- L = U_ y e. ( G ` p ) _pred ( y , A , R ) $.
    bnj600.26 $e |- G = ( f u. { <. m , C >. } ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj600 $p |- ( n =/= 1o -> ( ( n e. D /\ th ) -> ch ) ) $=
      ( vz cv c1o wne wcel w3a w-bnj15 wa wfn weu wi wex wmo wsbc bnj528 bnj207
      vex bnj609 bnj611 csuc wceq com w-bnj17 bnj168 df-rex sylib bnj158 adantr
      wrex ancri bnj534 bnj432 exbii sylibr eximi syl 2exbii cep wbr wral sylbi
      rsp 3imp bnj523 bnj539 bnj544 bnj561 bnj545 bnj562 bnj571 biid bnj607 a1d
      bnj579 3ad2ant2 jcad eu5 syl6ibr 3expib ) TVNZVOVPZYLOVQZDCYMYNDVRZLPVSJV
      NZLVQVTZQVNZYLWAABVRZQWBZWCCYOYQYSQWDZYSQWEZVTYTYOYQUUAUUBABCDEFJKLOPQVMR
      STUAUDUEUFUGUHUIAQVMVNZWFZBQUUCWFZUUDVMUAWFZUUEVMUAWFZUOUSUTVCVEKLPQSUAUD
      VBWGZABCJLPQTSVNZUEUFUGUNUPUQURSWIZWHALPQUAYPUHUKUSUUHWJZBKLPQRUAYLUIULUT
      UUHWKZYMYNVTZUUIOVQZYLUUIWLWMZUDVNZWNVQZUUIUUPWLWMZWOZUDWDZSWDZFUDWDSWDUU
      MUUNUUOVTZSWDZUVAUUMUUOSOXAUVCOSTUMWPUUOSOWQWRUVBUUTSUVBUUQUURVTZUVBVTZUD
      WDUUTUVDUVBUVBUDUVBUVDUDWDZUUNUVFUUOUUNUURUDWNXAUVFOSUDUMWSUURUDWNWQWRWTX
      BXCUUSUVEUDUUNUUOUUQUURXDXEXFXGXHFUUSSUDVEXIXFDUUNUUIYLXJXKZVRCTUUIWFZUGD
      UUNUVGUVHDUVGUVHWCZSOXLUUNUVIWCUOUVISOXNXMXOURXFEFHLOPSTUAUDVDVEEHJKLOPQR
      STUAUDUEUFALPTYRUUIYPUEUKUPUUJXPZBKLPRTYRUUIUFULUQUUJXQZUMVBVCVDXRZXSZEFH
      LOPSTUDUHVDVEEHJKLOPQSTUAUDUEUFUHUVJUMVBVCVDUVLUUKXTYAEFGHIJKLMNOPQRSTUAU
      BUCUDUEUFUIUMVBVCVDVEVFVHVIVJVKVLUVJUVKUVLVGUVMUULYBUKULUUDYCUUEYCUUFYCUU
      GYCYDYNYMYQUUBWCDYNUUBYQABJKLOPQRTUKULUMYFYEYGYHYSQYIYJUNXFYK $.
  $}

  ${
    $d A f i m n p y $.  $d A f i p y z $.  $d D f i p $.  $d R f i m n p y $.
    $d R f i p y z $.  $d f m n p x $.  $d i m p ph $.  $d m p ps $.
    $d p th $.
    bnj601.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj601.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj601.3 $e |- D = ( _om \ { (/) } ) $.
    bnj601.4 $e |- ( ch <-> ( ( R _FrSe A /\ x e. A ) -> E! f ( f Fn n /\ ph /\
        ps ) ) ) $.
    bnj601.5 $e |- ( th <-> A. m e. D ( m _E n -> [. m / n ]. ch ) ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj601 $p |- ( n =/= 1o -> ( ( n e. D /\ th ) -> ch ) ) $=
      ( wsbc biid vp vz wfn w3a wcel csuc wceq com w-bnj17 wel wne c-bnj14 ciun
      cv cfv cop csn cun bnj602 cbviunv opeq2i sneqi uneq2i dfsbcq ax-mp eqcomi
      wb eqid bnj600 ) ABCDJUNZLUNZUCAMVKSZBMVKSZUDZVKHUEZMUNZVKUFUGZUAUNZUHUEV
      KVRUFUGUIZKUNZUHUEZVTUFZVPUEZVKWBUGUDZVOVQUALUJUDZWAWCVKWBUKUDZEFGFVTVJUO
      GIFUNZULZUMZFVRVJUOZWHUMZHIJKLMVJVKUBWJGIUBUNZULZUMZUPZUQZURZFVTWQUOWHUMZ
      FVRWQUOWHUMZUAVLVMCMVKSZAJVJVKWKUPZUQZURZSZBJXCSZCJXCSZNOPQRVLTVMTWTTXCWQ
      UGZXDAJWQSVGXBWPVJXAWOWKWNVKFUBWJWHWMGIWGWLUSUTVAVBVCZAJXCWQVDVEXGXEBJWQS
      VGXHBJXCWQVDVEXGXFCJWQSVGXHCJXCWQVDVEXCWQXHVFZVNTWETVSTWDTWFTWIVHWKVHWRVH
      WSVHXIVI $.
  $}

  ${
    $d A f i n x y z $.  $d D f i n x z $.  $d R f i n x y z $.  $d X f n x $.
    $d ph x $.  $d ps x z $.
    bnj852.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj852.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj852.3 $e |- D = ( _om \ { (/) } ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj852 $p |- ( ( R _FrSe A /\ X e. A )
         -> A. n e. D E! f ( f Fn n /\ ph /\ ps ) ) $=
      ( vx vz wcel wa cv wral wi w-bnj15 wfn w3a weu wceq elisset adantl bnj534
      wex ancri cfv c-bnj14 eleq1 anbi2d biimpar cep wbr wsbc biid com csn cdif
      c0 cvv difexg ax-mp eqeltri zfregfr bnj157 c1o bnj153 bnj601 pm2.61ine ex
      omex mprg r19.21v mpbi syl wb bnj602 eqeq2d syl6bbr 3anbi2d eubidv adantr
      ralbidv mpbid bnj593 bnj937 ) DFUAZJDPZQZGRZIRZUBZABUCZGUDZIESZNWMNRZJUEZ
      WMQZWSNXAWMWMNWMXANUIZWLXCWKNJDUFUGUJUHXBWPVCWNUKZDFWTULZUEZBUCZGUDZIESZW
      SXBWKWTDPZQZXIXAXKWMXAXJWLWKWTJDUMUNUOXKXHTZIESZXKXITORZWOUPUQXLIXNURTOES
      ZXLTXMIEXLXOIOEUPXOUSZEUTVCVAZVBZVDMUTVDPXRVDPVOUTXQVDVEVFVGEVHVIWOEPZXOX
      LXSXOQXLTWOVJXFBXLXONCDEFGHOIXFUSZLMXLUSZXPVKXFBXLXONCDEFGHOIXTLMYAXPVLVM
      VNVPXKXHIEVQVRVSXAXIWSVTWMXAXHWRIEXAXGWQGXAXFAWPBXAXFXDDFJULZUEAXAXEYBXDD
      FWTJWAWBKWCWDWEWGWFWHWIWJ $.
  $}

  ${
    $d A f i n y $.  $d D f i n $.  $d R f i n y $.  $d X f n $.
    bnj864.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj864.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj864.3 $e |- D = ( _om \ { (/) } ) $.
    bnj864.4 $e |- ( ch <-> ( R _FrSe A /\ X e. A /\ n e. D ) ) $.
    bnj864.5 $e |- ( th <-> ( f Fn n /\ ph /\ ps ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj864 $p |- ( ch -> E! f th ) $=
      ( wcel wi wal w-bnj15 w3a wfn weu wral bnj852 df-ral imbi2i 19.21v impexp
      cv wa df-3an bicomi imbi1i bitr3i albii 3bitr2i mpbi spi eubii 3imtr4i )
      FHUAZLFRZKUKZGRZUBZIUKVEUCABUBZIUDZCDIUDVGVISZKVCVDULZVIKGUEZSZVJKTZABEFG
      HIJKLMNOUFVMVKVFVISZKTZSVKVOSZKTVNVLVPVKVIKGUGUHVKVOKUIVQVJKVQVKVFULZVISV
      JVKVFVIUJVRVGVIVGVRVCVDVFUMUNUOUPUQURUSUTPDVHIQVAVB $.
  $}

  ${
    $d A f i n y z $.  $d A f n w $.  $d D f i n z $.  $d D f n w $.
    $d R f i n y z $.  $d R f n w $.  $d X f n w z $.  $d ph w z $.
    $d ps w z $.
    bnj865.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj865.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj865.3 $e |- D = ( _om \ { (/) } ) $.
    bnj865.5 $e |- ( ch <-> ( R _FrSe A /\ X e. A /\ n e. D ) ) $.
    bnj865.6 $e |- ( th <-> ( f Fn n /\ ph /\ ps ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj865 $p |- E. w A. n ( ch -> E. f e. w th ) $=
      ( wi wex vz cv wrex wal wfn w3a w-bnj15 wcel wral weu bnj852 com csn cdif
      wa c0 cvv omex difexg ax-mp eqeltri raleq exbidv imbi12d zfrep6 vtocl syl
      wceq 19.37v mpbir df-ral imbi2i 19.21v bitr4i impexp df-3an bicomi imbi1i
      exbii bitr3i albii bitri mpbi rexbii ) CDJFUBZUCZSZLUDZFTCJUBLUBZUEABUFZJ
      WEUCZSZLUDZFTZGIUGZMGUHZWIHUHZUFZWKSZLUDZFTZWNWOWPUOZWKLHUIZSZFTZXAXEXBXC
      FTZSXBWJJUJZLHUIZXFABEGHIJKLMNOPUKXGLUAUBZUIZWKLXIUIZFTZSXHXFSUAHHULUPUMZ
      UNZUQPULUQUHXNUQUHURULXMUQUSUTVAXIHVHZXJXHXLXFXGLXIHVBXOXKXCFWKLXIHVBVCVD
      WJLJUAFVEVFVGXBXCFVIVJXEXBWQWKSZSZLUDZFTXAXDXRFXDXBXPLUDZSXRXCXSXBWKLHVKV
      LXBXPLVMVNVSXRWTFXQWSLXQXBWQUOZWKSWSXBWQWKVOXTWRWKWRXTWOWPWQVPVQVRVTWAVSW
      BWCWTWMFWSWLLWRCWKCWRQVQVRWAVSWCWHWMFWGWLLWFWKCDWJJWERWDVLWAVSVJ $.
  $}

$( MARKER 6 - TODO DELETE $)
  ${
    $d D f g $.  $d f g n $.  $d g ph $.  $d g ps $.
    bnj873.4 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj873.7 $e |- ( ph' <-> [. g / f ]. ph ) $.
    bnj873.8 $e |- ( ps' <-> [. g / f ]. ps ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj873 $p |- B = { g | E. n e. D ( g Fn n /\ ph' /\ ps' ) } $=
      ( cv wfn w3a wrex cab nfv wsbc nfsbc1v nfcv nfxfr nf3an nfrex weq sbceq1a
      fneq1 syl6bbr 3anbi123d rexbidv cbvab eqtri ) CEMZGMZNZABOZGDPZEQFMZUNNZH
      IOZGDPZFQJUQVAEFUQFRUTEGDEDUAUSHIEUSERHAEURSZEKAEURTUBIBEURSZELBEURTUBUCU
      DEFUEZUPUTGDVDUOUSAHBIUNUMURUGVDAVBHAEURUFKUHVDBVCIBEURUFLUHUIUJUKUL $.
  $}

  ${
    $d A f i n y $.  $d A f n w $.  $d B g w $.  $d D f g n w $.  $d D f i n $.
    $d R f i n y $.  $d R f n w $.  $d X f n w $.  $d ch f g $.  $d g ph w $.
    $d g ps w $.  $d g n ta w $.  $d g th $.
    bnj849.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj849.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj849.3 $e |- D = ( _om \ { (/) } ) $.
    bnj849.4 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj849.5 $e |- ( ch <-> ( R _FrSe A /\ X e. A /\ n e. D ) ) $.
    bnj849.6 $e |- ( th <-> ( f Fn n /\ ph /\ ps ) ) $.
    bnj849.7 $e |- ( ph' <-> [. g / f ]. ph ) $.
    bnj849.8 $e |- ( ps' <-> [. g / f ]. ps ) $.
    bnj849.9 $e |- ( th' <-> [. g / f ]. th ) $.
    bnj849.10 $e |- ( ta <-> ( R _FrSe A /\ X e. A ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Proof shortened by Mario Carneiro, 22-Dec-2016.)
       (New usage is discouraged.) $)
    bnj849 $p |- ( ( R _FrSe A /\ X e. A ) -> B e. _V ) $=
      ( vw w-bnj15 wcel wa cvv cv wrex wi wal wex bnj865 wss wfn w3a cab bnj873
      wel df-rex 19.29 an12 df-3an anbi1i 3bitr4i wsbc bnj581 bitr3i weu bnj864
      exancom sylbb nfeu1 nfe1 nfan nfsbc1v nfv nfim weq sbceq1a elequ1 imbi12d
      id imbi2d eupick chvar syl2an syl5bir embantd impd sylbir expimpd exlimdv
      ex syl5bi syl5 expdimp abssdv syl5eqss vex ssex syl mpi ) GJUJZOGUKZULZEH
      UMUKZUHECDKUIUNZUOZUPZNUQZUIURXMABCDFUIGIJKMNOSTUAUCUDUSEXQXMUIEXQXMEXQUL
      ZHXNUTXMXRHLUNZNUNZVAPQVBZNIUOZLVCXNABHIKLNPQUBUEUFVDXRYBLXNYBXTIUKZYAULZ
      NURZXRLUIVEZYANIVFEXQYEYFXQYEULXPYDULZNUREYFXPYDNVGEYGYFNYGYCXPYAULZULEYF
      XPYCYAVHEYCYHYFEYCULZCYHYFUPXJXKYCVBXLYCULCYIXJXKYCVIUCEXLYCUHVJVKCXPYAYF
      CCXOYAYFUPZCWICXOYJYADKXSVLZCXOULYFYKRYAUGABDKLNPQRUDUEUFUGVMVNCDKVOZDKUI
      VEZULZKURZYKYFUPZXOABCDFGIJKMNOSTUAUCUDVPXOYMDULKURYODKXNVFYMDKVQVRYLYOUL
      ZDYMUPZUPYQYPUPKLYQYPKYLYOKDKVSYNKVTWAYKYFKDKXSWBYFKWCWDWDKLWEZYRYPYQYSDY
      KYMYFDKXSWFKLUIWGWHWJDYMKWKWLWMWNWTWOWPWQWRXAWSXBXCXAXDXEHXNUIXFXGXHWTWSX
      IWQ $.
  $}

  ${
    $d A f i n y w $.  $d R f i n y w $.  $d X f i n y w $.  $d w B $.
    bnj882.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj882.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj882.3 $e |- D = ( _om \ { (/) } ) $.
    bnj882.4 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    $( Definition (using hypotheses for readability) of the function giving the
       transitive closure of ` X ` in ` A ` by ` R ` .  (Contributed by
       Jonathan Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    bnj882 $p |- _trCl ( X , A , R ) = U_ f e. B U_ i e. dom f ( f ` i ) $=
      ( vw cv wcel ciun wrex c-bnj18 wfn cfv c-bnj14 wceq csuc com wral w3a csn
      c0 wi cdif cab cdm df-bnj18 df-iun anbi12i anbi2i 3anass 3bitr4i rexeqbii
      wa abbii eqtri eleq2i anbi1i rexbii2 eqtr4i ) DGKUAHHQZJQZUBZUKVJUCDGKUDU
      EZIQZUFZVKRVOVJUCCVNVJUCZDGCQUDSUEULIUGUHZUIZJUGUKUJUMZTZHUNZIVJUOVPSZSZH
      EWBSZCDGHIJKUPWDPQWBRZHETZPUNZWCHPEWBUQWCWEHWATZPUNWGHPWAWBUQWFWHPWEWEHEW
      AVJERVJWARWEEWAVJEVLABUIZJFTZHUNWAOWJVTHWIVRJFVSNVLABVCZVCVLVMVQVCZVCWIVR
      WKWLVLAVMBVQLMURUSVLABUTVLVMVQUTVAVBVDVEVFVGVHVDVIVIVI $.
  $}

  ${
    $d f i n x y A $.  $d f i n x y R $.  $d f i n x y X $.  $d f i n x y Y $.
    $( Equality theorem for transitive closure.  (Contributed by Mario
       Carneiro, 22-Dec-2016.)  (New usage is discouraged.) $)
    bnj18eq1 $p |- ( X = Y -> _trCl ( X , A , R ) = _trCl ( Y , A , R ) ) $=
      ( vf vn vi vy vx wceq cv c0 cfv c-bnj14 wcel ciun com w3a wrex cab wfn wi
      csuc wral csn cdif cdm c-bnj18 bnj602 eqeq2d 3anbi2d abbidv eleq2d anbi1d
      rexbidv rexbidv2 df-iun 3eqtr4g df-bnj18 ) CDJZEEKZFKZUAZLVAMZABCNZJZGKZU
      CZVBOVHVAMHVGVAMZABHKNPJUBGQUDZRZFQLUEUFZSZETZGVAUGVIPZPZEVCVDABDNZJZVJRZ
      FVLSZETZVOPZABCUHABDUHUTIKVOOZEVNSZITWCEWASZITVPWBUTWDWEIUTWCWCEVNWAUTVAV
      NOVAWAOWCUTVNWAVAUTVMVTEUTVKVSFVLUTVFVRVCVJUTVEVQVDABCDUIUJUKUOULUMUNUPUL
      EIVNVOUQEIWAVOUQURHABEGFCUSHABEGFDUSUR $.
  $}

  ${
    $d A f g i n y w z $.  $d R f g i n y w z $.  $d X f g i n y w z $.
    $( Property of ` _trCl ` .  Under certain conditions, the transitive
       closure of ` X ` in ` A ` by ` R ` is a set.  (Contributed by Jonathan
       Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    bnj893 $p |- ( ( R _FrSe A /\ X e. A ) -> _trCl ( X , A , R ) e. _V ) $=
      ( vf vn vi vy vg vw wcel cv c0 cfv wceq ciun com wrex cvv biid wsbc vz wa
      w-bnj15 c-bnj18 wfn c-bnj14 csuc wi wral w3a csn cdif cab cdm eqid bnj882
      vex fveq1 eqeq1d sbcie bicomi iuneq1d eqeq12d imbi2d bnj873 eleq2i anbi1i
      ralbidv rexbii2 abbii df-iun 3eqtr4i bnj849 dmex fvex iunex rgenw sylancl
      weq iunexg syl5eqel ) ABUCZCAJZUBZABCUDDDKZEKZUELWEMZABCUFZNZFKZUGZWFJZWK
      WEMZGWJWEMZABGKUFZOZNZUHZFPUIZUJEPLUKULZQDUMZFWEUNZWNOZOZRWIWSGAXAWTBDFEC
      WISWSSWTUOZXAUOZUPWDXDDHKZWFUELXGMZWHNZWLWKXGMZGWJXGMZWOOZNZUHZFPUIZUJZEW
      TQHUMZXCOZRIKXCJZDXAQZIUMXSDXQQZIUMXDXRXTYAIXSXSDXAXQWEXAJWEXQJXSXAXQWEWI
      WSXAWTDHEXIXOXFWIDXGTXIWIXIDXGHUQZDHVSZWGXHWHLWEXGURUSUTVAWSDXGTXOWSXODXG
      YBYCWRXNFPYCWQXMWLYCWMXJWPXLWKWEXGURYCGWNXKWOWJWEXGURVBVCVDVHUTVAVEVFVGVI
      VJDIXAXCVKDIXQXCVKVLWDXQRJXCRJZDXQUIXRRJXIXOWBWCWFWTJUJZXPWDGAXQWTBHUAFEC
      XIHUAKZTZXOHYFTZXPHYFTZXISXOSXEXQUOYESXPSYGSYHSYISWDSVMYDDXQFXBWNWEDUQVNW
      JWEVOVPVQDXQXCRRVTVRWAWA $.
  $}

  ${
    $d f n $.
    bnj900.3 $e |- D = ( _om \ { (/) } ) $.
    bnj900.4 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj900 $p |- ( f e. B -> (/) e. dom f ) $=
      ( cv wcel cdm wceq wa wi wex c0 wfn w3a wrex reximi bnj1436 simp1 bnj1196
      fndm 3syl cab nfre1 nfab nfcxfr nfcri 19.37 mpbir nfv nfim eleq2 biimparc
      bnj529 sylan imim2i exlimi ax-mp ) EIZCJZFIZDJZVBKZVDLZMZNZFOZVCPVFJZNZVJ
      VCVHFONVCVGFDVCVBVDQZABRZFDSZVMFDSVGFDSVOECHUAVNVMFDVMABUBTVMVGFDVDVBUDTU
      EUCVCVHFFECFCVOEUFHVOFEVNFDUGUHUIUJZUKULVIVLFVCVKFVPVKFUMUNVHVKVCVEPVDJZV
      GVKDVDGUQVGVKVQVFVDPUOUPURUSUTVA $.
  $}

  ${
    $d A f i n y $.  $d R f i n y $.  $d X f i n y $.
    $( Property of ` _trCl ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj906 $p |- ( ( R _FrSe A /\ X e. A ) -> _pred ( X , A , R ) C_ _trCl ( X
        , A , R ) ) $=
      ( vf vn vi vy wcel wa cv c0 cfv c-bnj14 wceq ciun com wrex wex c1o syl wi
      w-bnj15 wfn csuc wral w3a csn cdif cab c-bnj18 wss weu wne 1onn 1n0 ne0ii
      eldifsn mpbir2an biid eqid bnj852 r19.2z sylancr euex bnj31 rexcom4 sylib
      bnj1198 simp2 reximi sylbi df-rex 19.41v simprbi cdm bnj900 fveq2 ssiun2s
      abid ssiun2 bnj882 syl6sseqr sstrd eqsstr3d exlimiv ) ABUBCAHIZDJZWGEJZUC
      ZKWGLZABCMZNZFJZUDZWHHWNWGLGWMWGLZABGJMONUAFPUEZUFZEPKUGUHZQZDUIZHZDRWKAB
      CUJZUKZWFWSDXAWFWQDRZEWRQWSDRWFWQDULZXDEWRWFWRKUMXEEWRUEXEEWRQSWRSWRHSPHS
      KUMUNUOSPKUQURUPWLWPGAWRBDFECWLUSZWPUSZWRUTZVAXEEWRVBVCWQDVDVEWQEDWRVFVGW
      SDVSZVHXAXCDXAWKWJXBXAWLEWRQZWLXAWSXJXIWQWLEWRWIWLWPVIVJVKXJWHWRHZWLIERZW
      LWLEWRVLXLXKERWLXKWLEVMVNVKTXAWJFWGVOZWOOZXBXAKXMHWJXNUKWLWPWTWRDEXHWTUTZ
      VPFXMWOKWJWMKWGVQVRTXAXNDWTXNOXBDWTXNVTWLWPGAWTWRBDFECXFXGXHXOWAWBWCWDWET
      $.
  $}

  ${
    $d A f i m n p $.  $d A f i n p y $.  $d D p $.  $d G i y $.
    $d R f i m n p $.  $d R f i n p y $.  $d et f i $.  $d f m n p x $.
    $d i p ph' $.  $d m p ph $.  $d m p ps $.  $d p th $.
    bnj908.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( x , A , R ) ) $.
    bnj908.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
        -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj908.3 $e |- D = ( _om \ { (/) } ) $.
    bnj908.4 $e |- ( ch <-> ( ( R _FrSe A /\ x e. A )
        -> E! f ( f Fn n /\ ph /\ ps ) ) ) $.
    bnj908.5 $e |- ( th <-> A. m e. D ( m _E n -> [. m / n ]. ch ) ) $.
    bnj908.10 $e |- ( ph' <-> [. m / n ]. ph ) $.
    bnj908.11 $e |- ( ps' <-> [. m / n ]. ps ) $.
    bnj908.12 $e |- ( ch' <-> [. m / n ]. ch ) $.
    bnj908.13 $e |- ( ph" <-> [. G / f ]. ph ) $.
    bnj908.14 $e |- ( ps" <-> [. G / f ]. ps ) $.
    bnj908.15 $e |- ( ch" <-> [. G / f ]. ch ) $.
    bnj908.16 $e |- G = ( f u. { <. m , U_ y e. ( f ` p ) _pred ( y , A , R )
        >. } ) $.
    bnj908.17 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj908.18 $e |- ( si <-> ( m e. D /\ n = suc m /\ p e. m ) ) $.
    bnj908.19 $e |- ( et <-> ( m e. D /\ n = suc m /\ p e. _om /\ m = suc p ) )
        $.
    bnj908.20 $e |- ( ze <-> ( i e. _om /\ suc i e. n /\ m = suc i ) ) $.
    bnj908.21 $e |- ( rh <-> ( i e. _om /\ suc i e. n /\ m =/= suc i ) ) $.
    bnj908.22 $e |- B = U_ y e. ( f ` i ) _pred ( y , A , R ) $.
    bnj908.23 $e |- C = U_ y e. ( f ` p ) _pred ( y , A , R ) $.
    bnj908.24 $e |- K = U_ y e. ( G ` i ) _pred ( y , A , R ) $.
    bnj908.25 $e |- L = U_ y e. ( G ` p ) _pred ( y , A , R ) $.
    bnj908.26 $e |- G = ( f u. { <. m , C >. } ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj908 $p |- ( ( R _FrSe A /\ x e. A /\ ch' /\ et )
        -> E. f ( G Fn n /\ ph" /\ ps" ) ) $=
      ( w-bnj15 cv wcel w-bnj17 w3a wfn wa wex bnj248 weu wi bnj207 biimpi euex
      vex syl6 impcom bnj832 bnj645 19.41v sylanbrc bnj642 bnj170 bnj523 bnj539
      bnj1198 bnj544 bnj561 bnj528 bnj609 bnj545 bnj562 bnj611 bnj571 bnj593
      3jca ) LPVMZJVNZLVOZUGFVPZXIEFVQZUATVNZVRZUHUIVQQXLEFVSZXIVSZQXMXLXPQVTZX
      IXQQVTXLEQVTZFXRXIXKVSZUGVSZFXSXLXIXKUGFWAYAQVNZSVNZVRUEUFVQZQEUGXTYDQVTZ
      UGXTYDQWBZYEUGXTYFWCABCJLPQTYCUEUFUGUNUPUQURSWGZWDWEYDQWFWHWIVCWRWJXIXKUG
      FWKEFQWLWMXIXKUGFWNXPXIQWLWMXIEFWOWRXMXOUHUIEFHLOPSTUAUDVDVEEHJKLOPQRSTUA
      UDUEUFALPTYBYCXJUEUKUPYGWPZBKLPRTYBYCUFULUQYGWQZUMVBVCVDWSZWTZEFHLOPSTUDU
      HVDVEEHJKLOPQSTUAUDUEUFUHYHUMVBVCVDYJALPQUAXJUHUKUSKLPQSUAUDVBXAZXBXCXDEF
      GHIJKLMNOPQRSTUAUBUCUDUEUFUIUMVBVCVDVEVFVHVIVJVKVLYHYIYJVGYKBKLPQRUAXNUIU
      LUTYLXEXFXHXG $.
  $}

  ${
    $d f i $.  $d i n $.  $d i ph $.
    bnj911.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj911.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj911 $p |- ( ( f Fn n /\ ph /\ ps ) -> A. i ( f Fn n /\ ph /\ ps ) ) $=
      ( cv wfn csuc wcel cfv c-bnj14 ciun wceq wi com bnj1095 bnj1350 ) FLZHLZM
      ABGBGLZNZUEOUGUDPCUFUDPDECLQRSTGUAKUBUC $.
  $}

  ${
    $d A f i n y $.  $d D i $.  $d R f i n y $.  $d X f i n y $.  $d i ph $.
    bnj916.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj916.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj916.3 $e |- D = ( _om \ { (/) } ) $.
    bnj916.4 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj916.5 $e |- ( ch <-> ( f Fn n /\ ph /\ ps ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj916 $p |- ( y e. _trCl ( X , A , R ) -> E. f E. n E. i ( n e. D /\ ch /\
        i e. n /\ y e. ( f ` i ) ) ) $=
      ( wcel wex wa cv c-bnj18 cdm cfv w-bnj17 wfn w3a bnj256 2exbii 19.41v nfv
      wrex bnj911 nf5i nfan 19.42 exbii df-rex anbi12i 3bitr4i 3anbi2i df-bnj17
      bitri anbi1i 3exbii bnj882 eleq2i rexbii 3bitri abeq2i 3bitr4ri wb bnj643
      ciun eliun bnj564 eleq2d anbi1 bnj334 bnj252 3bitr4g 3syl ibi eximi sylbi
      2eximi ) DUAZEHLUBZRZKUAZGRZCJUAZIUAZUCZRZWGWLWMUDZRZUEZJSKSZISZWKCWLWJRZ
      WQUEZJSKSZISWKWMWJUFABUGZWOWQUEZJSKSZISXDKGULZWQJWNULZTZISZWTWIXFXIIXFWKX
      DTZWOWQTZTZJSZKSZXIXEXMKJWKXDWOWQUHUIXKXLJSZTZKSXKKSZXPTXOXIXKXPKUJXNXQKX
      KXLJWKXDJWKJUKXDJABDEHIJKLMNUMUNUOUPUQXGXRXHXPXDKGURWQJWNURUSUTVCUQWRXEIK
      JWKCWOUGZWQTWKXDWOUGZWQTWRXEXSXTWQCXDWKWOQVAVDWKCWOWQVBWKXDWOWQVBUTVEWIXH
      IFULZWMFRZXHTZISXJWIWGIFJWNWPVNZVNZRWGYDRZIFULYAWHYEWGABDEFGHIJKLMNOPVFVG
      IWGFYDVOYFXHIFJWGWNWPVOVHVIXHIFURYCXIIYBXGXHXGIFPVJVDUQVIVKWSXCIWRXBKJWRX
      BWRCWOXAVLZWRXBVLWKCWOWQVMCWNWJWLCIKABQVPVQYGWOWKCWQUGZTZXAYHTZWRXBWOXAYH
      VRWRWOWKCWQUEYIWKCWOWQVSWOWKCWQVTVCXBXAWKCWQUEYJWKCXAWQVSXAWKCWQVTVCWAWBW
      CWFWDWE $.
  $}

  ${
    $d A f i n y $.  $d D i $.  $d R f i n y $.  $d X f i n y $.  $d i ph $.
    bnj917.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj917.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj917.3 $e |- D = ( _om \ { (/) } ) $.
    bnj917.4 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj917.5 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj917 $p |- ( y e. _trCl ( X , A , R ) -> E. f E. n E. i ( ch /\ i e. n /\
        y e. ( f ` i ) ) ) $=
      ( cv wcel wex c-bnj18 wfn w3a w-bnj17 biid bnj916 wa bnj252 bitri 3anbi1i
      cfv bnj253 bitr4i 3exbii sylibr ) DRZEHLUASKRZGSZIRZUQUBZABUCZJRZUQSZUPVB
      USUKSZUDZJTKTITCVCVDUCZJTKTITABVADEFGHIJKLMNOPVAUEUFVFVEIKJVFURVAUGZVCVDU
      CVECVGVCVDCURUTABUDVGQURUTABUHUIUJURVAVCVDULUMUNUO $.
  $}

  ${
    $d A f n $.  $d R f n $.  $d X f n $.
    bnj934.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj934.4 $e |- ( ph' <-> [. p / n ]. ph ) $.
    bnj934.7 $e |- ( ph" <-> [. G / f ]. ph' ) $.
    bnj934.50 $e |- G e. _V $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj934 $p |- ( ( ph /\ ( G ` (/) ) = ( f ` (/) ) ) -> ph" ) $=
      ( c0 cfv cv wceq wa wsbc c-bnj14 eqtr sylan2b bnj523 bitr4i sbcbii bnj609
      vex bitri sylibr ancoms ) OFPZODQZPZRZAJUOASULBCGUAZRZJAUOUNUPRZUQKULUNUP
      UBUCABCDFGJKJIDFTADFTMIADFIURAABCEUMHQGIKLHUHUDKUEUFUINUGUJUK $.
  $}

  ${
    $d A f n $.  $d R f n $.  $d X f n $.
    bnj929.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj929.4 $e |- ( ph' <-> [. p / n ]. ph ) $.
    bnj929.7 $e |- ( ph" <-> [. G / f ]. ph' ) $.
    bnj929.10 $e |- D = ( _om \ { (/) } ) $.
    bnj929.13 $e |- G = ( f u. { <. n , C >. } ) $.
    bnj929.50 $e |- C e. _V $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj929 $p |- ( ( n e. D /\ p = suc n /\ f Fn n /\ ph ) -> ph" ) $=
      ( w-bnj17 c0 cv wcel csuc wceq wfn cfv bnj645 wa wfun bnj334 bnj257 bitri
      w3a bnj345 bnj253 3bitri simp1bi bnj927 bnj930 syl wss cop csn bnj931 a1i
      cdm bnj268 bitr3i fndm bnj529 eleq2 biimpar syl2anr bnj1502 bnj918 bnj934
      syl2anc ) GUAZDUBZJUAZVRUCUDZFUAZVRUEZASZATHUFTWBUFUDLVSWAWCAUGWDTHWBWDWA
      WCUHZHUIWDWEVSAWDWCVSAWASZWAWCVSASWEVSAUMWDWCVSWAASWFVSWAWCAUJWCVSWAAUKUL
      WCVSAWAUNWAWCVSAUOUPUQWEVTHCFGHJQRURUSUTWBHVAWDHWBVRCVBVCQVDVEWDVSWCUHZTW
      BVFZUBZWDWGWAAWDVSWCWAASWGWAAUMVSWCWAAVGVSWCWAAUOVHUQWCWHVRUDZTVRUBZWIVSV
      RWBVIDVRPVJWJWIWKWHVRTVKVLVMUTVNABEFGHIJKLMNOCFGHQVOVPVQ $.
  $}

  ${
    $d A i p y $.  $d A p x y $.  $d R i p y $.  $d R p x y $.  $d X x $.
    $d f i p y $.  $d f p x y $.  $d i m p $.  $d si x $.  $d ta x $.
    bnj938.1 $e |- D = ( _om \ { (/) } ) $.
    bnj938.2 $e |- ( ta <-> ( f Fn m /\ ph' /\ ps' ) ) $.
    bnj938.3 $e |- ( si <-> ( m e. D /\ n = suc m /\ p e. m ) ) $.
    bnj938.4 $e |- ( ph' <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj938.5 $e |- ( ps' <-> A. i e. _om ( suc i e. m
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj938 $p |- ( ( R _FrSe A /\ X e. A /\ ta /\ si ) -> U_ y e. ( f ` p )
        _pred ( y , A , R ) e. _V ) $=
      ( vx cv wceq wex w-bnj15 wcel w-bnj17 cfv c-bnj14 ciun cvv elisset bnj706
      wi wfn c0 w3a bnj291 simplbi bnj602 eqeq2d syl6bbr 3anbi2d syl5ibr bnj546
      biid syl6 exlimiv mpcom ) TUAZKUBZTUCZDFUDZKDUEZABUFZCLUAGUAZUGDFCUAUHUIU
      JUEZVLVMABVKTKDUKULVJVNVPUMTVJVNVLVOIUAUNZUOVOUGZDFVIUHZUBZNUPZBUPZVPVNWB
      VJVLABUPZVNWCVMVLVMABUQURVJWAAVLBVJWAVQMNUPAVJVTMVQNVJVTVRDFKUHZUBMVJVSWD
      VRDFVIKUSUTRVAVBPVAVBVCWABTCDEFGHIJLVTNOWAVEQVTVESVDVFVGVH $.
  $}

  ${
    $d A f i m n $.  $d A f i m y $.  $d R f i m n $.  $d R f i m y $.
    $d X f n $.
    bnj944.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj944.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj944.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj944.4 $e |- ( ph' <-> [. p / n ]. ph ) $.
    bnj944.7 $e |- ( ph" <-> [. G / f ]. ph' ) $.
    bnj944.10 $e |- D = ( _om \ { (/) } ) $.
    bnj944.12 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj944.13 $e |- G = ( f u. { <. n , C >. } ) $.
    bnj944.14 $e |- ( ta <-> ( f Fn n /\ ph /\ ps ) ) $.
    bnj944.15 $e |- ( si <-> ( n e. D /\ p = suc n /\ m e. n ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj944 $p |- ( ( ( R _FrSe A /\ X e. A )
        /\ ( ch /\ n = suc m /\ p = suc n ) ) -> ph" ) $=
      ( w-bnj15 wcel wa csuc wceq w3a cvv wfn w-bnj17 simpl bnj667 sylbi sylibr
      cv 3ad2ant1 adantl bnj1232 vex bnj216 id 3anim123i bitri bnj253 syl3anbrc
      3ancomb cfv c-bnj14 ciun bnj938 syl5eqel syl bnj658 simp3 bnj291 sylanbrc
      wi c0 cif cop csn cun wsbc opeq2 uneq2d syl5eq sbceq1d syl5bb imbi2d biid
      sneqd eqid 0ex elimel bnj929 dedth sylc ) GJUJZPGUKZULZCNVCZMVCZUMUNZQVCX
      IUMUNZUOZULZHUPUKZXIIUKZXLKVCZXIUQZAURZSXNXFXGDEURZXOXNXHDEXTXHXMUSXMDXHC
      XKDXLCXRABUOZDCXPXRABURZYAUBXPXRABUTVAUHVBVDVEXMEXHXMXPXJXIUKZXLUOZECXPXK
      YCXLXLCXPXRABUBVFXIXJMVGVHXLVIVJEXPXLYCUOYDUIXPXLYCVNVKVBVEXFXGDEVLVMXTHF
      XJXQVOGJFVCVPVQUPUFDEFGIJKLNQPMABUEUHUITUAVRVSVTXMXSXHXMXPXRAUOZXLXSCXKYE
      XLCYBYEUBXPXRABWAVAVDCXKXLWBXPXLXRAWCWDVEXOXSSWEXSRKXQXIXOHWFWGZWHZWIZWJZ
      WKZWEHWFHYFUNZSYJXSSRKOWKYKYJUDYKRKOYIYKOXQXIHWHZWIZWJYIUGYKYMYHXQYKYLYGH
      YFXIWLWSWMWNWOWPWQAGYFIJKNYIPQRYJTUCYJWRUEYIWTHWFUPXAXBXCXDXE $.
  $}

  ${
    bnj953.1 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj953.2 $e |- ( ( G ` i ) = ( f ` i ) -> A. y ( G ` i ) = ( f ` i ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj953 $p |- ( ( ( G ` i ) = ( f ` i ) /\ ( G ` suc i ) = ( f ` suc i ) /\
        ( i e. _om /\ suc i e. n ) /\ ps ) -> ( G ` suc i ) = U_ y e. ( G ` i )
        _pred ( y , A , R ) ) $=
      ( cv cfv wceq csuc com wcel wa w-bnj17 c-bnj14 ciun bnj312 bnj251 sylan2b
      bitri wi wal bnj115 sp impcom bnj956 eqtr3 syl2anr eqtr sylan2 sylbi ) FK
      ZHLZUPEKZLZMZUPNZHLZVAURLZMZUPOPVAGKPZQZARZVDUTVFAQZQZQZVBBUQCDBKSZTZMZVG
      VDUTVFARVJUTVDVFAUAVDUTVFAUBUDVIVDVCVLMZVMVHVCBUSVKTZMZVLVOMVNUTAVFVFVPUE
      ZFUFZVPVPVEAOFIUGVRVFVPVQFUHUIUCBUQUSVKJUJVCVLVOUKULVBVCVLUMUNUO $.
  $}

  ${
    $d f y $.  $d i y $.  $d n y $.
    bnj958.1 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj958.2 $e |- G = ( f u. { <. n , C >. } ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj958 $p |- ( ( G ` i ) = ( f ` i ) -> A. y ( G ` i ) = ( f ` i ) ) $=
      ( cv cfv wceq cop csn cun nfcv c-bnj14 nfcxfr ciun nfiu1 nfop nfeq1 nf5ri
      nfsn nfun nffv ) FLZIMZUIELZMZNAAUJULAUIIAIUKHLZCOZPZQKAUKUOAUKRAUNAUMCAU
      MRACAGLUKMZBDALSZUAJAUPUQUBTUCUFUGTAUIRUHUDUE $.
  $}

  ${
    $d A e f $.  $d C w $.  $d G e i w $.  $d N f $.  $d R e f $.
    $d e f i w y $.  $d n w y $.
    bnj1000.1 $e |- ( ps <-> A. i e. _om ( suc i e. N
        -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1000.2 $e |- ( ps" <-> [. G / f ]. ps ) $.
    bnj1000.3 $e |- G e. _V $.
    bnj1000.15 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj1000.16 $e |- G = ( f u. { <. n , C >. } ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1000 $p |- ( ps" <-> A. i e. _om ( suc i e. N
        -> ( G ` suc i ) = U_ y e. ( G ` i ) _pred ( y , A , R ) ) ) $=
      ( cv cfv wceq ve vw wsbc csuc wcel c-bnj14 ciun wi com wral df-ral bicomi
      wal sbcbii cvv wb nfv sbc19.21g ax-mp fveq1 ax-5 cop csn cun nfiu1 nfcxfr
      nfcv nfop nfsn nfun nfcrii bnj1316 syl eqeq12d bnj956 bnj610 imbi2i bitri
      nffv albii sbcal 3bitr4ri ) LAFJUCZGRZUDZKUEZWEJSZBWDJSZCEBRUFZUGZTZUHZGU
      IUJZNWDUIUEZWFWEFRZSZBWDWOSZWIUGZTZUHZUHZGUMZFJUCZWTGUIUJZFJUCWMWCXBXDFJX
      DXBWTGUIUKULUNXAFJUCZGUMWNWLUHZGUMXCWMXEXFGXEWNWTFJUCZUHZXFJUOUEZXEXHUPOW
      NWTFJUOWNFUQURUSXGWLWNXGWFWSFJUCZUHZWLXIXGXKUPOWFWSFJUOWFFUQURUSXJWKWFWSW
      KFUAJWEUARZSZBWDXLSZWIUGZTOWOJTZWPWGWRWJWEWOJUTXPWQWHTWRWJTWDWOJUTBUBWQWH
      WIUBRZWQUEBVABUBWHBWDJBJWOIRZDVBZVCZVDQBWOXTBWOVGBXSBXRDBXRVGBDBHRWOSZWIU
      GPBYAWIVEVFVHVIVJVFBWDVGVSVKZVLVMVNWOXLTZWPXMWRXOWEWOXLUTYCWQXNTZWRXOTWDW
      OXLUTBWQXNWIYDBVAVOVMVNXLJTZXMWGXOWJWEXLJUTYEXNWHTXOWJTWDXLJUTBUBXNWHWIXQ
      XNUEBVAYBVLVMVNVPVQVRVQVRVTXAGFJWAWLGUIUKWBAXDFJMUNWBVR $.
  $}

  ${
    $d A f $.  $d G i $.  $d N f $.  $d R f $.  $d f i y $.  $d n y $.
    bnj965.1 $e |- ( ps <-> A. i e. _om ( suc i e. N -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj965.2 $e |- ( ps" <-> [. G / f ]. ps ) $.
    bnj965.12000 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj965.13000 $e |- G = ( f u. { <. n , C >. } ) $.
    $( Technical lemma for ~ bnj852 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj965 $p |- ( ps" <-> A. i e. _om ( suc i e. N
        -> ( G ` suc i ) = U_ y e. ( G ` i ) _pred ( y , A , R ) ) ) $=
      ( bnj918 bnj1000 ) ABCDEFGHIJKLMNDFIJPQOPR $.
  $}

  ${
    $d A f i n $.  $d D i $.  $d G i $.  $d R f i n $.  $d X i $.  $d f i p $.
    $d f i n y $.  $d i m $.  $d i ph $.
    bnj964.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj964.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj964.5 $e |- ( ps' <-> [. p / n ]. ps ) $.
    bnj964.8 $e |- ( ps" <-> [. G / f ]. ps' ) $.
    bnj964.12 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj964.13 $e |- G = ( f u. { <. n , C >. } ) $.
    bnj964.96 $e |- ( ( ( R _FrSe A /\ X e. A ) /\ ( ch /\ n = suc m /\ p = suc
        n ) /\ ( i e. _om /\ suc i e. p /\ suc i e. n ) ) -> ( G ` suc i ) = U_
        y e. ( G ` i ) _pred ( y , A , R ) ) $.
    bnj964.165 $e |- ( ( ( R _FrSe A /\ X e. A ) /\ ( ch /\ n = suc m /\ p =
        suc n ) /\ ( i e. _om /\ suc i e. p /\ n = suc i ) ) -> ( G ` suc i ) =
        U_ y e. ( G ` i ) _pred ( y , A , R ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj964 $p |- ( ( ( R _FrSe A /\ X e. A )
        /\ ( ch /\ n = suc m /\ p = suc n ) ) -> ps" ) $=
      ( w-bnj15 wcel wa cv csuc wceq w3a com cfv c-bnj14 wi wal nfv wfn bnj1095
      ciun bnj1096 nf5i nf3an nfan w-bnj17 bnj255 wo bnj645 simp3 eleq2 biimpac
      bnj706 elsuci eqcom orbi2i sylib syl syl2anc df-3an 3anbi3i bitr4i bnj345
      bnj252 3bitri anbi2i sylbir ex jaoi mpcom 3expia alrimi vex bnj539 bnj965
      bnj115 sylibr ) EHUFNEUGUHZCLUIZKUIUJUKZOUIZWSUJZUKZULZUHZJUIZUMUGZXFUJZX
      AUGZUHZXHMUNDXFMUNEHDUIUOZVAUKZUPZJUQQXEXMJWRXDJWRJURCWTXCJCJBCWSGUGIUIZW
      SUSAJBXHWSUGZXHXNUNDXFXNUNXKVAUKUPJUMRUTSVBVCWTJURXCJURVDVEWRXDXJXLWRXDXJ
      ULZWRXDXGXIVFZXLWRXDXGXIVGZXOWSXHUKZVHZXQXLXQXIXCXTWRXDXGXIVIWRXDXGXIXCCW
      TXCVJVMXIXCUHXHXBUGZXTXCXIYAXAXBXHVKVLYAXOXHWSUKZVHXTXHWSVNYBXSXOXHWSVOVP
      VQVRVSXOXQXLUPXSXOXQXLXOXQUHZWRXDXGXIXOULZULZXLYEXOXPUHZYCYEWRXDXJXOVFZXO
      WRXDXJVFYFYEWRXDXJXOUHZULYGYDYHWRXDXGXIXOVTWAWRXDXJXOVGWBWRXDXJXOWCXOWRXD
      XJWDWEXQXPXOXRWFWBUDWGWHXSXQXLXSXQUHZWRXDXGXIXSULZULZXLYKXSXPUHZYIYKWRXDX
      JXSVFZXSWRXDXJVFYLYKWRXDXJXSUHZULYMYJYNWRXDXGXIXSVTWAWRXDXJXSVGWBWRXDXJXS
      WCXSWRXDXJWDWEXQXPXSXRWFWBUEWGWHWIWJWGWKWLXLXIQUMJPDEFHIJKLMXAQBDEHJLXNXA
      PRTOWMWNUAUBUCWOWPWQ $.
  $}

  ${
    $d f y $.  $d i y $.  $d m y $.  $d n y $.
    bnj966.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj966.10 $e |- D = ( _om \ { (/) } ) $.
    bnj966.12 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj966.13 $e |- G = ( f u. { <. n , C >. } ) $.
    bnj966.44 $e |- ( ( ( R _FrSe A /\ X e. A ) /\ ( ch /\ n = suc m /\ p = suc
        n ) ) -> C e. _V ) $.
    bnj966.53 $e |- ( ( ( R _FrSe A /\ X e. A ) /\ ( ch /\ n = suc m /\ p = suc
        n ) ) -> G Fn p ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj966 $p |- ( ( ( R _FrSe A /\ X e. A ) /\ ( ch /\ n = suc m /\ p = suc n
        ) /\ ( i e. _om /\ suc i e. p /\ n = suc i ) ) -> ( G ` suc i ) = U_ y
        e. ( G ` i ) _pred ( y , A , R ) ) $=
      ( w-bnj15 wcel csuc wceq w3a com cfv c-bnj14 ciun wfun cop bnj930 3adant3
      wa cv csn cun opex snid elun2 ax-mp eleqtrri funopfv mpisyl simp22 simp33
      wb bnj551 syl2anc suceq eqeq2d biimpac fveq2d fveq2 bnj1113 syl5eq adantl
      eqeq12d cvv w-bnj17 bnj1235 3ad2ant1 3ad2ant2 simp23 bnj951 bnj923 bnj769
      mpbid wfn simp3 bnj240 bnj216 bnj658 anim1i df-bnj17 sylibr bnj945 bnj958
      vex syl bnj956 mpbird ) EHUBNEUCUOZCLUPZKUPZUDZUEZOUPZXEUDUEZUFZJUPZUGUCZ
      XLUDZXIUCZXEXNUEZUFZUFZXNMUHZDXLMUHZEHDUPUIZUJZUEZXSDXLIUPZUHZYAUJZUEZXRX
      EMUHZFUEZYGXRMUKZXEFULZMUCYIXDXKYJXQXDXKUOXIMUAUMUNYKYDYKUQZURZMYKYLUCYKY
      MUCYKXEFUSUTYKYLYDVAVBSVCXEFMVDVEXRXHXFXLUEZYIYGVHXDCXHXJXQVFZXRXHXPYNYOX
      DXKXMXOXPVGZJLKVIVJXHYNUOZYHXSFYFYQXEXNMYNXHXPYNXGXNXEXFXLVKVLVMVNYNFYFUE
      XHYNFDXFYDUHZYAUJYFRDXFXLYRYEYAXFXLYDVOVPVQVRVSVJWIXRXTYEUEZYCYGVHXRFVTUC
      ZYDXEWJZXJXPWAZXLXEUCZYSYTUUAXJXPXRXDXKYTXQTUNXKXDUUAXQCXHUUAXJCXEGUCZUUA
      ABPWBWCWDXDCXHXJXQWEYPWFXRXEUGUCZXPUOUUCXDXKXQUUEXPCXHUUEXJUUDUUAABUUECPG
      LQWGWHWCXMXOXPWKWLXPUUCUUEXEXLJWTWMVRXAUUBUUCUOZYTUUAXJUUCWAZYSUUFYTUUAXJ
      UFZUUCUOUUGUUBUUHUUCYTUUAXJXPWNWOYTUUAXJUUCWPWQXLFILMOSWRXAVJYSYBYFXSDXTY
      EYADEFHIJKLMRSWSXBVLXAXC $.
  $}

  ${
    $d f y $.  $d i y $.  $d n y $.
    bnj967.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj967.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj967.10 $e |- D = ( _om \ { (/) } ) $.
    bnj967.12 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj967.13 $e |- G = ( f u. { <. n , C >. } ) $.
    bnj967.44 $e |- ( ( ( R _FrSe A /\ X e. A ) /\ ( ch /\ n = suc m /\ p = suc
        n ) ) -> C e. _V ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj967 $p |- ( ( ( R _FrSe A /\ X e. A ) /\ ( ch /\ n = suc m /\ p = suc n
        ) /\ ( i e. _om /\ suc i e. p /\ suc i e. n ) ) -> ( G ` suc i ) = U_ y
        e. ( G ` i ) _pred ( y , A , R ) ) $=
      ( w-bnj15 wcel csuc wceq w3a com cfv w-bnj17 c-bnj14 ciun cvv wfn 3adant3
      wa cv 3ad2ant1 3ad2ant2 simp23 simp3 3ad2ant3 bnj951 bnj923 bnj769 bnj240
      bnj1235 wtr word nnord ordtr syl trsuc sylan bnj658 anim1i sylibr syl2anc
      df-bnj17 bnj945 3simpb bnj1254 bnj958 bnj953 ) EHUBNEUCUOZCLUPZKUPUDUEZOU
      PZWEUDUEZUFZJUPZUGUCZWJUDZWGUCZWLWEUCZUFZUFZWJMUHZWJIUPZUHUEZWLMUHZWLWRUH
      UEZWKWNUOZBUIWTDWQEHDUPUJUKUEWSXAXBBWPWPFULUCZWRWEUMZWHWJWEUCZUIZWSWPXCXD
      WHWNUIZXEXFXCXDWHWNWPWDWIXCWOUAUNWIWDXDWOCWFXDWHCWEGUCZXDABQVFUQURWDCWFWH
      WOUSWOWDWNWIWKWMWNUTZVAVBZWPWEUGUCZWNUOXEWDWIWOXKWNCWFXKWHXHXDABXKCQGLRVC
      VDUQXIVEXKWEVGZWNXEXKWEVHXLWEVIWEVJVKWEWJVLVMVKXGXEUOXCXDWHUFZXEUOXFXGXMX
      EXCXDWHWNVNVOXCXDWHXEVRVPVQWJFILMOTVSVKWPXGXAXJWLFILMOTVSVKWOWDXBWIWKWMWN
      VTVAWIWDBWOCWFBWHCXHXDABQWAUQURVBBDEHIJLMPDEFHIJKLMSTWBWCVK $.
  $}

  ${
    $d A i m y $.  $d R i m y $.  $d f i m y $.  $d i m n $.
    bnj969.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj969.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj969.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj969.10 $e |- D = ( _om \ { (/) } ) $.
    bnj969.12 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj969.14 $e |- ( ta <-> ( f Fn n /\ ph /\ ps ) ) $.
    bnj969.15 $e |- ( si <-> ( n e. D /\ p = suc n /\ m e. n ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj969 $p |- ( ( ( R _FrSe A /\ X e. A ) /\ ( ch /\ n = suc m /\ p = suc n
        ) ) -> C e. _V ) $=
      ( w-bnj15 wcel wa cv csuc wceq w3a w-bnj17 cvv simpl wfn 3imtr4i 3ad2ant1
      bnj667 adantl bnj1232 vex bnj216 id 3anim123i 3ancomb bitri sylibr bnj256
      jca32 cfv c-bnj14 ciun bnj938 syl5eqel syl ) GJUDZOGUEZUFZCNUGZMUGZUHUIZP
      UGVRUHUIZUJZUFZVOVPDEUKZHULUEWCVQDEUFUFWDWCVQDEVQWBUMWBDVQCVTDWAVRIUEZKUG
      ZVRUNZABUKWGABUJCDWEWGABUQSUBUOUPURWBEVQWBWEVSVRUEZWAUJZECWEVTWHWAWACWEWG
      ABSUSVRVSMUTVAWAVBVCEWEWAWHUJWIUCWEWAWHVDVEVFURVHVOVPDEVGVFWDHFVSWFVIGJFU
      GVJVKULUADEFGIJKLNPOMABTUBUCQRVLVMVN $.
  $}

  ${
    bnj970.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj970.10 $e |- D = ( _om \ { (/) } ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj970 $p |- ( ( ( R _FrSe A /\ X e. A ) /\ ( ch /\ n = suc m /\ p = suc n
        ) ) -> p e. D ) $=
      ( wcel wa cv wceq com c0 wne w-bnj15 csuc w3a wfn bnj1232 3ad2ant1 adantl
      simpr3 bnj923 wb peano2 eleq1 bianir syl2an sylan csn df-suc eqeq2i ssun2
      cun wss vex snnz ssn0 mp2an neeq1 mpbiri sylbi cdif eleq2i bitri sylanbrc
      eldifsn syl2anc ) DFUAJDNOZCIPZHPUBQZKPZVPUBZQZUCZOVPENZVTVRENZWAWBVOCVQW
      BVTCWBGPVPUDABLUEUFUGVOCVQVTUHWBVTOVRRNZVRSTZWCWBVPRNZVTWDEIMUIWFVSRNZWDW
      GUJWDVTVPUKVRVSRULWGWDUMUNUOVTWEWBVTVRVPVPUPZUTZQZWEVSWIVRVPUQURWJWEWISTZ
      WHWIVAWHSTWKWHVPUSVPIVBVCWHWIVDVEVRWISVFVGVHUGWCVRRSUPVIZNWDWEOEWLVRMVJVR
      RSVMVKVLVN $.
  $}

  ${
    $d A f i m n y $.  $d D f i n $.  $d G i $.  $d R f i m n y $.
    $d X f i n $.  $d f i n p $.  $d i ph $.
    bnj910.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj910.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj910.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj910.4 $e |- ( ph' <-> [. p / n ]. ph ) $.
    bnj910.5 $e |- ( ps' <-> [. p / n ]. ps ) $.
    bnj910.6 $e |- ( ch' <-> [. p / n ]. ch ) $.
    bnj910.7 $e |- ( ph" <-> [. G / f ]. ph' ) $.
    bnj910.8 $e |- ( ps" <-> [. G / f ]. ps' ) $.
    bnj910.9 $e |- ( ch" <-> [. G / f ]. ch' ) $.
    bnj910.10 $e |- D = ( _om \ { (/) } ) $.
    bnj910.11 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj910.12 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj910.13 $e |- G = ( f u. { <. n , C >. } ) $.
    bnj910.14 $e |- ( ta <-> ( f Fn n /\ ph /\ ps ) ) $.
    bnj910.15 $e |- ( si <-> ( n e. D /\ p = suc n /\ m e. n ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj910 $p |- ( ( ( R _FrSe A /\ X e. A )
        /\ ( ch /\ n = suc m /\ p = suc n ) ) -> ch" ) $=
      ( w-bnj15 wcel csuc wceq w3a wfn w-bnj17 bnj970 cvv bnj969 simpr3 bnj1235
      wa cv adantl bnj941 3impib syl3anc bnj944 bnj967 bnj966 bnj964 bnj951 vex
      3ad2ant1 bnj919 bnj918 bnj976 sylibr ) GKUTQGVAVLZCOVMZNVMVBVCZRVMZWJVBVC
      ZVDZVLZWLJVAZPWLVEZUBUCVFUDWPWQUBUCWOABCGJKLNOQRUGUNVGWOIVHVAZWMLVMZWJVEZ
      WQABCDEFGIJKLMNOQRUEUFUGUNUPURUSVIZWICWKWMVJWNWTWICWKWTWMCWJJVAWTABUGVKWD
      VNWRWMWTWQILOPRUQVOVPVQZABCDEFGIJKLMNOPQRSUBUEUFUGUHUKUNUPUQURUSVRABCFGIJ
      KLMNOPQRTUCUFUGUIULUPUQABCFGIJKLMNOPQRUFUGUNUPUQXAVSABCFGIJKLMNOPQRUGUNUP
      UQXAXBVTWAWBSTUAJLPWLUBUCUDABCJWLOWSSTUAUGUHUIUJRWCWEUKULUMILOPUQWFWGWH
      $.
  $}

  ${
    $d A y z $.  $d R y z $.  $d X y z $.
    bnj978.1 $e |- ( th <-> ( R _FrSe A /\ X e. A /\ y e. _trCl ( X , A , R )
        /\ z e. _pred ( y , A , R ) ) ) $.
    bnj978.2 $e |- ( th -> z e. _trCl ( X , A , R ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj978 $p |- ( ( R _FrSe A /\ X e. A ) -> _TrFo ( _trCl ( X , A , R ) , A ,
        R ) ) $=
      ( w-bnj15 wcel wa cv wral wi wal 2albii 19.21v imbi2i 3bitri sylibr bitri
      c-bnj14 c-bnj18 wss w-bnj19 w-bnj17 sylbir gen2 w3a bnj253 imbi1i 3impexp
      albii df-ral bicomi mpbi dfss2 ralbii df-bnj19 ) DEIZFDJZKZDEBLZUBZDEFUCZ
      UDZBVEMZDVEEUEVBCLZVDJZVHVEJZNZCOZBVEMZVGUTVAVCVEJZVIUFZVJNZCOBOZVBVMNZVP
      BCVOAVJGHUGUHVQVBVNVIUIZVJNZCOBOVBVNVKNZNZCOZBOZVRVPVTBCVOVSVJUTVAVNVIUJU
      KPVTWBBCVBVNVIVJULPWDVBVNVLNZNZBOVBWEBOZNVRWCWFBWCVBWACOZNWFVBWACQWHWEVBV
      NVKCQRUAUMVBWEBQWGVMVBVMWGVLBVEUNUORSSUPVFVLBVECVDVEUQURTBDVEEUST $.
  $}

  ${
    $d A f i n y $.  $d A f i y $.  $d D i y $.  $d R f i n y $.  $d R f i y $.
    $d X f i n y $.  $d Z f i n y $.  $d i ph y $.
    bnj981.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj981.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj981.3 $e |- D = ( _om \ { (/) } ) $.
    bnj981.4 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj981.5 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj981 $p |- ( Z e. _trCl ( X , A , R ) -> E. f E. n E. i ( ch /\ i e. n /\
        Z e. ( f ` i ) ) ) $=
      ( wcel wex c-bnj18 cv cfv w3a wi nfv wfn csuc c-bnj14 ciun wceq wral nfcv
      com nfiu1 nfeq2 nfim nfral nfxfr nf5ri bnj1096 nf5i nf3an 3anbi3d 3exbidv
      nfex eleq1 imbi12d bnj917 vtoclg1f pm2.43i ) MEHLUAZSZCJUBZKUBZSZMVNIUBZU
      CZSZUDZJTZKTZITZDUBZVLSZCVPWDVRSZUDZJTKTITZUEVMWCUEDMVLVMWCDVMDUFWBDIWADK
      VTDJCVPVSDCDBCVOGSVQVOUGADBDBVNUHZVOSZWIVQUCZDVREHWDUIZUJZUKZUEZJUNULDOWO
      DJUNDUNUMWJWNDWJDUFDWKWMDVRWLUOUPUQURUSUTRVAVBVPDUFVSDUFVCVFVFVFUQWDMUKZW
      EVMWHWCWDMVLVGWPWGVTIKJWPWFVSCVPWDMVRVGVDVEVHABCDEFGHIJKLNOPQRVIVJVK $.
  $}

  ${
    $d A f i n y $.  $d D i $.  $d R f i n y $.  $d X f i n y $.  $d Z f i n $.
    $d i ph $.
    bnj983.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj983.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj983.3 $e |- D = ( _om \ { (/) } ) $.
    bnj983.4 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj983.5 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj983 $p |- ( Z e. _trCl ( X , A , R ) <-> E. f E. n E. i ( ch /\ i e. n
        /\ Z e. ( f ` i ) ) ) $=
      ( wcel wex c-bnj18 cv cdm cfv wa w3a wrex ciun bnj882 eleq2i eliun rexbii
      wfn bitri df-rex abeq2i anbi1i exbii 3bitri w-bnj17 bnj252 anbi12i bitr4i
      bnj133 19.41v csuc c-bnj14 wceq wi com bnj1095 bnj1096 nf5i 2exbii 3anass
      19.42 3exbii wb fndm bnj770 eleq2 3anbi2d syl 3ad2ant1 ibi impbii 3bitr2i
      ibir ) MEHLUAZSZCJUBZIUBZUCZSZMWKWLUDZSZUEZUEZJTZKTITZCWNWPUFZJTKTITCWKKU
      BZSZWPUFZJTKTITWJCWQJTZUEZKTZITWTWJCKTZXEUEZXGIWJWLXBUMZABUFZKGUGZWPJWMUG
      ZUEZXIIWJMIFJWMWOUHZUHZSZXMIFUGZXNITZWIXPMABDEFGHIJKLNOPQUIUJXQMXOSZIFUGX
      RIMFXOUKXTXMIFJMWMWOUKULUNXRWLFSZXMUEZITXSXMIFUOYBXNIYAXLXMXLIFQUPUQURUNU
      SXIXBGSZXKUEZKTZXEUEXNXHYEXECYDKCYCXJABUTYDRYCXJABVAUNURUQXLYEXMXEXKKGUOW
      PJWMUOVBVCVDCXEKVEVDWSXFIKCWQJCJBCYCXJAJBWKVFZXBSYFWLUDDWOEHDUBVGUHVHVIJV
      JOVKRVLVMVPVNVCXAWRIKJCWNWPVOVQXAXDIKJXAXDXAXDCWNXAXDVRZWPCWMXBVHZYGYCXJA
      BYHCRXBWLVSVTYHWNXCCWPWMXBWKWAWBWCZWDWEXDXACXCYGWPYIWDWHWFVQWG $.
  $}

$( MARKER 1 - TODO DELETE $)

  ${
    bnj984.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj984.11 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj984 $p |- ( G e. A -> ( G e. B <-> [. G / f ]. E. n ch ) ) $=
      ( wcel cv wfn w3a wrex wsbc wex cab sbc8g eleq2i wa df-rex w-bnj17 bnj252
      syl6rbbr bitri bnj133 sbcbii syl6bb ) IDLZIELZGMHMZNZABOZHFPZGIQZCHRZGIQU
      KUQIUPGSZLULUPGIDTEUSIKUAUFUPURGIUPUMFLZUOUBZCHUOHFUCCUTUNABUDVAJUTUNABUE
      UGUHUIUJ $.
  $}

  ${
    $d G p $.  $d ch p $.  $d f p $.
    bnj985.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj985.6 $e |- ( ch' <-> [. p / n ]. ch ) $.
    bnj985.9 $e |- ( ch" <-> [. G / f ]. ch' ) $.
    bnj985.11 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj985.13 $e |- G = ( f u. { <. n , C >. } ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj985 $p |- ( G e. B <-> E. p ch" ) $=
      ( wcel wex wsbc cvv wb bnj918 bnj984 ax-mp sbcex2 cv wsb sb8e sbsbc exbii
      nfv bitri bnj133 sbcbii 3bitr4i ) IDRZCHSZGITZLJSZIUARUQUSUBEGHIQUCABCUAD
      FGHIMPUDUEKJSZGITKGITZJSUSUTKJGIUFURVAGIURCHJUGTZKJURCHJUHZJSVCJSCHJCJULU
      IVDVCJCHJUJUKUMNUNUOLVBJOUKUPUM $.
  $}

  ${
    $d m n p $.
    bnj986.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj986.10 $e |- D = ( _om \ { (/) } ) $.
    bnj986.15 $e |- ( ta <-> ( m e. _om /\ n = suc m /\ p = suc n ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj986 $p |- ( ch -> E. m E. p ta ) $=
      ( cv com wcel csuc wceq wa wex wfn bnj158 bnj769 bnj1196 vex sucex isseti
      wrex jctir exdistr 19.41v bitr2i sylib w3a df-3an bitri 2exbii sylibr ) C
      GMZNOZHMZURPQZRZIMUTPZQZRZISGSZDISGSCVBGSZVDISZRZVFCVGVHCVAGNUTEOFMUTTABV
      AGNUGCJEHGKUAUBUCIVCUTHUDUEUFUHVFVBVHRGSVIVBVDGIUIVBVHGUJUKULDVEGIDUSVAVD
      UMVELUSVAVDUNUOUPUQ $.
  $}

  ${
    $d A f i n y $.  $d D i $.  $d R f i n y $.  $d X f i n y $.  $d ch m p $.
    $d et m p $.  $d f i n th $.  $d i ph $.  $d m n p th $.
    bnj996.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj996.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj996.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj996.4 $e |- ( th <-> ( R _FrSe A /\ X e. A /\ y e. _trCl ( X , A , R )
        /\ z e. _pred ( y , A , R ) ) ) $.
    bnj996.5 $e |- ( ta <-> ( m e. _om /\ n = suc m /\ p = suc n ) ) $.
    bnj996.6 $e |- ( et <-> ( i e. n /\ y e. ( f ` i ) ) ) $.
    bnj996.13 $e |- D = ( _om \ { (/) } ) $.
    bnj996.14 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj996 $p |- E. f E. n E. i E. m E. p ( th -> ( ch /\ ta /\ et ) ) $=
      ( w3a wi wex wa wel cfv wcel w-bnj15 c-bnj18 c-bnj14 bnj917 bnj771 3anass
      cv anbi2i bitr4i 3exbii sylib bnj986 19.42vv sylibr anim1i 19.41vv df-3an
      ancli 2exbii 2eximi bnj593 19.37v exbii bnj132 mpbir ) DCEFUGZUHRUIZOUIZN
      UIZPUIZMUIZDVSRUIZOUIZNUIZPUIZMUIUHDCFUJZNUIPUIZWHMDCNPUKZGUTZNUTMUTULUMZ
      UGZNUIPUIMUIZWJMUIILUNQIUMWLILQUOUMHUTILWLUPUMWODUBABCGIJKLMNPQSTUEUFUAUQ
      URWNWIMPNWNCWKWMUJZUJWICWKWMUSFWPCUDVAVBVCVDWIWFPNWICEUJZFUJZRUIOUIZWFWIW
      QRUIOUIZFUJWSCWTFCCERUIOUIZUJWTCXAABCEKMOPRUAUEUCVEVKCEORVFVGVHWQFORVIVGV
      SWRORCEFVJVLVGVMVNWDDWHMWCDWHUHMWCDWGPWBDWGUHPWBDWFNWADWFUHNWADWEOVTDWEUH
      ODVSRVOVPVQVPVQVPVQVPVQVR $.
  $}

  ${
    $d A f i m n y $.  $d D f i n $.  $d G i $.  $d R f i m n y $.
    $d X f i n $.  $d f i n p $.  $d i ph $.
    bnj998.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj998.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj998.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj998.4 $e |- ( th <-> ( R _FrSe A /\ X e. A /\ y e. _trCl ( X , A , R )
        /\ z e. _pred ( y , A , R ) ) ) $.
    bnj998.5 $e |- ( ta <-> ( m e. _om /\ n = suc m /\ p = suc n ) ) $.
    bnj998.7 $e |- ( ph' <-> [. p / n ]. ph ) $.
    bnj998.8 $e |- ( ps' <-> [. p / n ]. ps ) $.
    bnj998.9 $e |- ( ch' <-> [. p / n ]. ch ) $.
    bnj998.10 $e |- ( ph" <-> [. G / f ]. ph' ) $.
    bnj998.11 $e |- ( ps" <-> [. G / f ]. ps' ) $.
    bnj998.12 $e |- ( ch" <-> [. G / f ]. ch' ) $.
    bnj998.13 $e |- D = ( _om \ { (/) } ) $.
    bnj998.14 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj998.15 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj998.16 $e |- G = ( f u. { <. n , C >. } ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj998 $p |- ( ( th /\ ch /\ ta /\ et ) -> ch" ) $=
      ( w-bnj17 w-bnj15 wcel wa cv csuc wceq w3a c-bnj18 c-bnj14 bnj253 simp1bi
      sylbi bnj705 bnj643 com 3simpc bnj707 bnj255 syl3anbrc bnj252 biid bnj910
      sylib wfn syl ) DCEFVBZIMVCZSIVDZVEZCQVFZPVFZVGVHZTVFWLVGVHZVIVEZUFWHWKCW
      NWOVBZWPWHWKCWNWOVEZWQDCEFWKDWIWJGVFZIMSVJVDZHVFIMWSVKVDZVBZWKUJXBWKWTXAW
      IWJWTXAVLVMVNVODCEFVPDCEFWREWMVQVDZWNWOVIWRUKXCWNWOVRVNVSWKCWNWOVTWAWKCWN
      WOWBWEABCNVFWLWFABVIZWLLVDWOWMWLVDVIZGIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIULUMU
      NUOUPUQURUSUTVAXDWCXEWCWDWG $.
  $}

  ${
    $d f i n y $.  $d A f n $.  $d D f n $.  $d G i $.  $d R f n $.
    $d X f n $.  $d f i n p $.
    bnj999.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj999.2 $e |- ( ps <-> A. i e. _om ( suc i e. n -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj999.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj999.7 $e |- ( ph' <-> [. p / n ]. ph ) $.
    bnj999.8 $e |- ( ps' <-> [. p / n ]. ps ) $.
    bnj999.9 $e |- ( ch' <-> [. p / n ]. ch ) $.
    bnj999.10 $e |- ( ph" <-> [. G / f ]. ph' ) $.
    bnj999.11 $e |- ( ps" <-> [. G / f ]. ps' ) $.
    bnj999.12 $e |- ( ch" <-> [. G / f ]. ch' ) $.
    bnj999.15 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj999.16 $e |- G = ( f u. { <. n , C >. } ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj999 $p |- ( ( ch" /\ i e. _om /\ suc i e. p /\ y e. ( G ` i ) )
        -> _pred ( y , A , R ) C_ ( G ` suc i ) ) $=
      ( cv com wcel cfv w-bnj17 c-bnj14 wss w3a wa wfn vex bnj919 bnj918 bnj976
      csuc bnj1254 anim1i bnj252 3imtr4i ciun ssiun2 bnj708 3simpa ancomd simp3
      wceq wi bnj539 bnj965 bnj228 sylc bnj721 sseqtr4d syl ) UAJUMZUNUOZWGVGZO
      UMZUOZDUMZWGMUPZUOZUQZTWHWKWNUQZEHWLURZWIMUPZUSUAWHWKWNUTZVATWSVAWOWPUATW
      SUAWJGUOMWJVBSTPQRGIMWJSTUAABCGWJLIUMZPQRUDUEUFUGOVCZVDUHUIUJFILMULVEVFVH
      VIUAWHWKWNVJTWHWKWNVJVKWPWQDWMWQVLZWRTWHWKWNWQXBUSDWMWQVMVNTWHWKWNWRXBVRZ
      TWHWKUTZWHTVAWKXCXDTWHTWHWKVOVPTWHWKVQTWKXCVSJUNQDEFHIJKLMWJTBDEHJLWTWJQU
      CUFXAVTUIUKULWAWBWCWDWEWF $.
  $}

  ${
    bnj1001.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1001.5 $e |- ( ta <-> ( m e. _om /\ n = suc m /\ p = suc n ) ) $.
    bnj1001.6 $e |- ( et <-> ( i e. n /\ y e. ( f ` i ) ) ) $.
    bnj1001.13 $e |- D = ( _om \ { (/) } ) $.
    bnj1001.27 $e |- ( ( th /\ ch /\ ta /\ et ) -> ch" ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1001 $p |- ( ( th /\ ch /\ ta /\ et ) -> ( ch" /\ i e. _om /\ suc i e. p
        ) ) $=
      ( wcel w-bnj17 com csuc cfv simplbi bnj708 wfn bnj1232 bnj706 bnj923 elnn
      cv syl syl2anc wb wceq simp3bi bnj707 word nnord ordsucelsuc biimpa eleq2
      wa 3syl anim12i syl21anc bianir 3jca ) DCEFUAZNJULZUBTZVKUCZMULZTZSVJVKLU
      LZTZVPUBTZVLDCEFVQFVQGULVKIULZUDTQUEUFZVJVPHTZVRDCEFWACWAVSVPUGABOUHUIZHL
      RUJZUMVKVPUKUNVJVMVPUCZTZVOWEUOZVDZVOVJWAVQVNWDUPZWGWBVTDCEFWHEKULZUBTVPW
      IUCUPWHPUQURWAVQVDWEWHWFWAVQWEWAVRVPUSVQWEUOWCVPUTVKVPVAVEVBVNWDVMVCVFVGW
      EVOVHUMVI $.
  $}

  ${
    $d A f i m n y $.  $d D f n $.  $d G i $.  $d R f i m n y $.  $d X f n $.
    $d f i n p $.
    bnj1006.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1006.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1006.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1006.4 $e |- ( th <-> ( R _FrSe A /\ X e. A /\ y e. _trCl ( X , A , R )
        /\ z e. _pred ( y , A , R ) ) ) $.
    bnj1006.5 $e |- ( ta <-> ( m e. _om /\ n = suc m /\ p = suc n ) ) $.
    bnj1006.6 $e |- ( et <-> ( i e. n /\ y e. ( f ` i ) ) ) $.
    bnj1006.7 $e |- ( ph' <-> [. p / n ]. ph ) $.
    bnj1006.8 $e |- ( ps' <-> [. p / n ]. ps ) $.
    bnj1006.9 $e |- ( ch' <-> [. p / n ]. ch ) $.
    bnj1006.10 $e |- ( ph" <-> [. G / f ]. ph' ) $.
    bnj1006.11 $e |- ( ps" <-> [. G / f ]. ps' ) $.
    bnj1006.12 $e |- ( ch" <-> [. G / f ]. ch' ) $.
    bnj1006.13 $e |- D = ( _om \ { (/) } ) $.
    bnj1006.15 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj1006.16 $e |- G = ( f u. { <. n , C >. } ) $.
    bnj1006.28 $e |- ( ( th /\ ch /\ ta /\ et )
      -> ( ch" /\ i e. _om /\ suc i e. p ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1006 $p |- ( ( th /\ ch /\ ta /\ et ) -> _pred ( y , A , R ) C_ ( G `
        suc i ) ) $=
      ( w-bnj17 cv cfv wcel c-bnj14 csuc wss wel simprbi bnj708 cvv wfn w-bnj15
      wceq wa w3a c-bnj18 bnj253 simp1bi bnj705 bnj643 com 3simpc bnj707 3anass
      sylanbrc biid bnj969 syl2anc bnj1235 bnj706 simp3bi simplbi bnj951 bnj945
      sylbi syl eleqtrrd anim1i df-bnj17 sylibr bnj999 mpdan ) DCEFVBZGVCZNVCZQ
      VDZVEZILXFVFZXGVGZQVDVHZXEXFXGMVCZVDZXHDCEFXFXNVEZFNPVIZXOUKVJVKXEJVLVEZX
      MPVCZVMZSVCZXRVGVOZXPVBXHXNVOXQXSYAXPXEXEILVNZRIVEZVPZCXROVCZVGVOZYAVQZXQ
      DCEFYDDYBYCXFILRVRVEZHVCXJVEZVBZYDUIYJYDYHYIYBYCYHYIVSVTWQWAXECYFYAVPZYGD
      CEFWBDCEFYKEYEWCVEZYFYAVQYKUJYLYFYAWDWQWECYFYAWFWGABCXSABVQZXRKVEZYAOPVIV
      QZGIJKLMNOPRSUFUGUHURUSYMWHYOWHWIWJDCEFXSCYNXSABUHWKWLDCEFYAEYLYFYAUJWMWE
      DCEFXPFXPXOUKWNVKWOXGJMPQSUTWPWRWSXEXIVPZUEXGWCVEZXKXTVEZXIVBZXLYPUEYQYRV
      QZXIVPYSXEYTXIVAWTUEYQYRXIXAXBABCGIJKLMNOPQRSTUAUBUCUDUEUFUGUHULUMUNUOUPU
      QUSUTXCWRXD $.
  $}

  ${
    $d A f i n y $.  $d D i $.  $d R f i n y $.  $d X f i n y $.  $d f g i $.
    $d i j $.  $d i ph $.
    bnj1014.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1014.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1014.13 $e |- D = ( _om \ { (/) } ) $.
    bnj1014.14 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1014 $p |- ( ( g e. B /\ j e. dom g ) -> ( g ` j ) C_ _trCl ( X , A , R
        ) ) $=
      ( cv wcel nfv cdm wa cfv c-bnj18 wss wi wfn w3a wrex cab nfcv bnj911 nf5i
      nfrex nfab nfcxfr nfcri nfan nfim nf5ri wb weq eleq1 anbi2d fveq2 imbi12d
      sseq1d equcoms bnj1317 dmeq eleq2d anbi12d fveq1 ciun syl6sseqr sylan9ssr
      ssiun2 bnj882 chvar spei bnj1131 ) IRZESZKRZWBUAZSZUBZWDWBUCZDGMUDZUEZUFZ
      JWKJWGWJJWCWFJJIEJEHRZLRUGABUHZLFUIZHUJQWNJHWMJLFJFUKWMJABCDGHJLMNOULUMUN
      UOUPUQWFJTURWJJTUSUTWKWCJRZWESZUBZWOWBUCZWIUEZUFZJKWKWTVAKJKJVBZWGWQWJWSX
      AWFWPWCWDWOWEVCVDXAWHWRWIWDWOWBVEVGVFVHWLESZWOWLUAZSZUBZWOWLUCZWIUEZUFWTH
      IWQWSHWCWPHWCHWNHIEQVIUMWPHTURWSHTUSHIVBZXEWQXGWSXHXBWCXDWPWLWBEVCXHXCWEW
      OWLWBVJVKVLXHXFWRWIWOWLWBVMVGVFXDXBXFJXCXFVNZWIJXCXFVQXBXIHEXIVNWIHEXIVQA
      BCDEFGHJLMNOPQVRVOVPVSVTWA $.
  $}

  ${
    $d A f g i $.  $d A g i j $.  $d A f i n y $.  $d B g j $.  $d D i $.
    $d G g j $.  $d J j $.  $d R f g i $.  $d R g i j $.  $d R f i n y $.
    $d X f g i $.  $d X g i j $.  $d X f i n y $.  $d i ph $.
    bnj1015.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1015.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1015.13 $e |- D = ( _om \ { (/) } ) $.
    bnj1015.14 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj1015.15 $e |- G e. V $.
    bnj1015.16 $e |- J e. V $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1015 $p |- ( ( G e. B /\ J e. dom G ) -> ( G ` J ) C_ _trCl ( X , A , R
        ) ) $=
      ( vj vg wcel cv cdm wa cfv c-bnj18 wss wi elexi eleq1 anbi2d fveq2 sseq1d
      wceq imbi12d dmeq eleq2d anbi12d fveq1 bnj1014 vtocl ) KEUCZUAUDZKUEZUCZU
      FZVEKUGZDGNUHZUIZUJZVDLVFUCZUFZLKUGZVJUIZUJUALLMTUKVELUPZVHVNVKVPVQVGVMVD
      VELVFULUMVQVIVOVJVELKUNUOUQUBUDZEUCZVEVRUEZUCZUFZVEVRUGZVJUIZUJVLUBKKMSUK
      VRKUPZWBVHWDVKWEVSVDWAVGVRKEULWEVTVFVEVRKURUSUTWEWCVIVJVEVRKVAUOUQABCDEFG
      HUBIUAJNOPQRVBVCVC $.
  $}

  ${
    $d A f i m n y $.  $d D f i n $.  $d G i p $.  $d R f i m n y $.
    $d X f i n y $.  $d ch p $.  $d et p $.  $d f i n p $.  $d i ph $.
    $d p th $.
    bnj1018.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1018.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
        -> ( f ` suc i ) = U_ y e.
        ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1018.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1018.4 $e |- ( th <-> ( R _FrSe A /\ X e. A /\ y e. _trCl ( X , A , R )
        /\ z e. _pred ( y , A , R ) ) ) $.
    bnj1018.5 $e |- ( ta <-> ( m e. _om /\ n = suc m /\ p = suc n ) ) $.
    bnj1018.7 $e |- ( ph' <-> [. p / n ]. ph ) $.
    bnj1018.8 $e |- ( ps' <-> [. p / n ]. ps ) $.
    bnj1018.9 $e |- ( ch' <-> [. p / n ]. ch ) $.
    bnj1018.10 $e |- ( ph" <-> [. G / f ]. ph' ) $.
    bnj1018.11 $e |- ( ps" <-> [. G / f ]. ps' ) $.
    bnj1018.12 $e |- ( ch" <-> [. G / f ]. ch' ) $.
    bnj1018.13 $e |- D = ( _om \ { (/) } ) $.
    bnj1018.14 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj1018.15 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj1018.16 $e |- G = ( f u. { <. n , C >. } ) $.
    bnj1018.26 $e |- ( ch" <-> ( p e. D /\ G Fn p /\ ph" /\ ps" ) ) $.
    bnj1018.29 $e |- ( ( th /\ ch /\ ta /\ et ) -> ch" ) $.
    bnj1018.30 $e |- ( ( th /\ ch /\ ta /\ et )
      -> ( ch" /\ i e. _om /\ suc i e. p ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1018 $p |- ( ( th /\ ch /\ et /\ E. p ta )
        -> ( G ` suc i ) C_ _trCl ( X , A , R ) ) $=
      ( wex w-bnj17 wcel cv csuc cdm cfv c-bnj18 wss w3a df-bnj17 bnj258 sylbir
      wa ex eximdv bnj985 syl6ibr imp sylbi bnj1019 com simp3d wfn wceq bnj1235
      fndm 3syl eleqtrrd exlimiv cvv bnj918 vex sucex bnj1015 syl2anc ) DCFETVE
      ZVFZRJVGZOVHZVIZRVJZVGZXERVKIMSVLVMXBDCFVNZXAVRXCDCFXAVOXHXAXCXHXAUFTVEXC
      XHEUFTXHEUFXHEVRDCEFVFZUFDCEFVPVCVQVSVTABCJKLNQRTUCUFUIUNUQUSVAWAWBWCWDXB
      XITVEXGCDEFTWEXIXGTXIXETVHZXFXIUFXDWFVGXEXJVGVDWGXIUFRXJWHZXFXJWIVCUFXJLV
      GXKUDUEVBWJXJRWKWLWMWNVQABGIJLMNOQRXEWOSUGUHURUSKNQRVAWPXDOWQWRWSWT $.
  $}

  ${
    $d A f i m n y $.  $d A f i n p y $.  $d D f i n $.  $d G i p $.
    $d R f i m n y $.  $d R f i n p y $.  $d X f i n y $.  $d ch p $.
    $d et p $.  $d i ph $.  $d p th $.
    bnj1020.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1020.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1020.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1020.4 $e |- ( th <-> ( R _FrSe A /\ X e. A /\ y e. _trCl ( X , A , R )
        /\ z e. _pred ( y , A , R ) ) ) $.
    bnj1020.5 $e |- ( ta <-> ( m e. _om /\ n = suc m /\ p = suc n ) ) $.
    bnj1020.6 $e |- ( et <-> ( i e. n /\ y e. ( f ` i ) ) ) $.
    bnj1020.7 $e |- ( ph' <-> [. p / n ]. ph ) $.
    bnj1020.8 $e |- ( ps' <-> [. p / n ]. ps ) $.
    bnj1020.9 $e |- ( ch' <-> [. p / n ]. ch ) $.
    bnj1020.10 $e |- ( ph" <-> [. G / f ]. ph' ) $.
    bnj1020.11 $e |- ( ps" <-> [. G / f ]. ps' ) $.
    bnj1020.12 $e |- ( ch" <-> [. G / f ]. ch' ) $.
    bnj1020.13 $e |- D = ( _om \ { (/) } ) $.
    bnj1020.14 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj1020.15 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj1020.16 $e |- G = ( f u. { <. n , C >. } ) $.
    bnj1020.26 $e |- ( ch" <-> ( p e. D /\ G Fn p /\ ph" /\ ps" ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1020 $p |- ( ( th /\ ch /\ et /\ E. p ta ) -> _pred ( y , A , R ) C_
        _trCl ( X , A , R ) ) $=
      ( wex w-bnj17 c-bnj14 csuc cfv c-bnj18 wss bnj1019 bnj998 bnj1001 bnj1006
      cv exlimiv sylbir bnj1018 sstrd ) DCFETVDVEZIMGVOVFZOVOVGRVHZIMSVIVTDCEFV
      EZTVDWAWBVJZCDEFTVKWCWDTABCDEFGHIKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUO
      UPUQURUSVAVBABCDEFGLNOPQTUFUIUKULUSABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUI
      UJUKUMUNUOUPUQURUSUTVAVBVLZVMZVNVPVQABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHU
      IUJUKUMUNUOUPUQURUSUTVAVBVCWEWFVRVS $.
  $}

  ${
    $d A f i n y $.  $d D i $.  $d R f i n y $.  $d X f i n y $.  $d ch m p $.
    $d et m p $.  $d f i n th $.  $d i ph $.  $d m n p th $.
    bnj1021.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1021.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1021.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1021.4 $e |- ( th <-> ( R _FrSe A /\ X e. A /\ y e. _trCl ( X , A , R )
        /\ z e. _pred ( y , A , R ) ) ) $.
    bnj1021.5 $e |- ( ta <-> ( m e. _om /\ n = suc m /\ p = suc n ) ) $.
    bnj1021.6 $e |- ( et <-> ( i e. n /\ y e. ( f ` i ) ) ) $.
    bnj1021.13 $e |- D = ( _om \ { (/) } ) $.
    bnj1021.14 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1021 $p |- E. f E. n E. i E. m ( th -> ( th /\ ch /\ et /\ E. p ta ) )
        $=
      ( w-bnj17 wi wex w3a bnj996 anclb bnj252 imbi2i bitr4i 2exbii 3exbii mpbi
      wa 19.37v bnj1019 bitri ) DDCEFUGZUHZRUIZOUIZNUIZPUIMUIZDDCFERUIUGZUHZOUI
      NUIZPUIMUIDCEFUJZUHZRUIOUIZNUIPUIMUIVHABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUKV
      NVFMPNVMVDORVMDDVLUSZUHVDDVLULVCVODDCEFUMUNUOUPUQURVGVKMPVEVJNOVEDVCRUIZU
      HVJDVCRUTVPVIDCDEFRVAUNVBUPUPUR $.
  $}

  ${
    $d A f i m n p y $.  $d A y z $.  $d D f i n $.  $d G i p $.
    $d R f i m n p y $.  $d R y z $.  $d X f i m n y $.  $d X y z $.
    $d ch m p $.  $d et m p $.  $d f i m n p th $.  $d i ph $.
    bnj907.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj907.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj907.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj907.4 $e |- ( th <-> ( R _FrSe A /\ X e. A /\ y e. _trCl ( X , A , R )
        /\ z e. _pred ( y , A , R ) ) ) $.
    bnj907.5 $e |- ( ta <-> ( m e. _om /\ n = suc m /\ p = suc n ) ) $.
    bnj907.6 $e |- ( et <-> ( i e. n /\ y e. ( f ` i ) ) ) $.
    bnj907.7 $e |- ( ph' <-> [. p / n ]. ph ) $.
    bnj907.8 $e |- ( ps' <-> [. p / n ]. ps ) $.
    bnj907.9 $e |- ( ch' <-> [. p / n ]. ch ) $.
    bnj907.10 $e |- ( ph" <-> [. G / f ]. ph' ) $.
    bnj907.11 $e |- ( ps" <-> [. G / f ]. ps' ) $.
    bnj907.12 $e |- ( ch" <-> [. G / f ]. ch' ) $.
    bnj907.13 $e |- D = ( _om \ { (/) } ) $.
    bnj907.14 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj907.15 $e |- C = U_ y e. ( f ` m ) _pred ( y , A , R ) $.
    bnj907.16 $e |- G = ( f u. { <. n , C >. } ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj907 $p |- ( ( R _FrSe A /\ X e. A )
        -> _TrFo ( _trCl ( X , A , R ) , A , R ) ) $=
      ( cv c-bnj14 c-bnj18 wss wex w-bnj17 bnj1021 wal vex bnj919 bnj918 bnj976
      wi bnj1020 ax-gen wa 19.29r pm3.33 bnj593 mpan2 2eximi 19.9v mpbi w-bnj15
      bnj101 wcel bnj1254 sseldd bnj978 ) DGHIMSUJDIMGVCZVDZIMSVEZHVCZDWMWNVFZV
      OZPVGZWQWROVGZWRWSQVGZWSWTNVGWTDDCFETVGVHZVOZPVGZOVGQVGWTNABCDEFGHIJLMNOP
      QSTUGUHUIUJUKULUSUTVIXCWRQOXCXAWPVOZPVJZWRXDPABCDEFGHIJKLMNOPQRSTUAUBUCUD
      UEUFUGUHUIUJUKULUMUNUOUPUQURUSUTVAVBUAUBUCLNRTVCZUDUEUFABCLXFQNVCUAUBUCUI
      UMUNUOTVKVLUPUQURKNQRVBVMVNVPVQXCXEVRXBXDVRWQPXBXDPVSDXAWPVTWAWBWCWGWTNWD
      WEWSQWDWEWROWDWEWQPWDWEDIMWFSIWHWLWNWHWOWMWHUJWIWJWK $.
  $}

  ${
    $d A f i m n p y z $.  $d R f i m n p y z $.  $d X f i m n p y z $.
    $( Property of ` _trCl ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj1029 $p |- ( ( R _FrSe A /\ X e. A )
        -> _TrFo ( _trCl ( X , A , R ) , A , R ) ) $=
      ( vf vi vn vy vz vm vp c0 cv cfv wceq csuc wcel com wsbc biid eqid wi csn
      c-bnj14 ciun wral cdif wfn w-bnj17 w-bnj15 c-bnj18 w3a wel wa cab cop cun
      wrex bnj907 ) KDLZMABCUCNZELZOZFLZPVBUSMGVAUSMZABGLZUCZUDNUAEQUEZVCQKUBUF
      ZPUSVCUGZUTVGUHZABUICAPVEABCUJPHLVFPUHZILZQPVCVLONJLZVCONUKZEFULVEVDPUMZG
      HAVIUTVGUKFVHUQDUNZGVLUSMVFUDZVHBDEIFUSVCVQUOUBUPZCJUTFVMRZVGFVMRZVJFVMRZ
      VSDVRRZVTDVRRZWADVRRZUTSVGSVJSVKSVNSVOSVSSVTSWASWBSWCSWDSVHTVPTVQTVRTUR
      $.
  $}

  ${
    $d A f i n y $.  $d A f i n z $.  $d B z $.  $d D i $.  $d R f i n y $.
    $d R f i n z $.  $d X f i n y $.  $d X f i n z $.  $d f i n ta z $.
    $d f i n th z $.  $d i ph $.
    bnj1033.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1033.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1033.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1033.4 $e |- ( th <-> ( R _FrSe A /\ X e. A ) ) $.
    bnj1033.5 $e |- ( ta <-> ( B e. _V /\ _TrFo ( B , A , R ) /\ _pred ( X , A
        , R ) C_ B ) ) $.
    bnj1033.6 $e |- ( et <-> z e. _trCl ( X , A , R ) ) $.
    bnj1033.7 $e |- ( ze <-> ( i e. n /\ z e. ( f ` i ) ) ) $.
    bnj1033.8 $e |- D = ( _om \ { (/) } ) $.
    bnj1033.9 $e |- K = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj1033.10 $e |- ( E. f E. n E. i ( th /\ ta /\ ch /\ ze ) -> z e. B ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1033 $p |- ( ( th /\ ta ) -> _trCl ( X , A , R ) C_ B ) $=
      ( wa c-bnj18 cv wcel wel cfv w3a bnj983 19.42v df-3an exbii 3bitr4i bitri
      w-bnj17 bnj255 anbi2i 3anass bitr4i 3anbi3i 3exbii sylbir syl3an3b 3expia
      wex ssrdv ) DEUIZIJMRUJZKDEIUKZVOULZVPKULZVQDECOPUMZVPOUKNUKUNULZUOZOVLZP
      VLZNVLZVRABCHJQLMNOPRVPSTUFUGUAUPDEWDUOZDEWAUOZOVLZPVLZNVLZVRWIDEWCUOZNVL
      ZWEWHWJNWHDEWBUOZPVLZWJWGWLPVNWAUIZOVLVNWBUIZWGWLVNWAOUQWFWNODEWAURUSDEWB
      URZUTUSWOPVLVNWCUIZWMWJVNWBPUQWLWOPWPUSDEWCURZUTVAUSWQNVLVNWDUIWKWEVNWCNU
      QWJWQNWRUSDEWDURUTVAWIDECGVBZOVLPVLNVLVRWSWFNPOWSDECGUIZUOWFDECGVCWTWADEW
      TCVSVTUIZUIWAGXACUEVDCVSVTVEVFVGVAVHUHVIVIVJVKVM $.
  $}

  ${
    $d A f i n y $.  $d A f i n z $.  $d B z $.  $d D i $.  $d R f i n y $.
    $d R f i n z $.  $d X f i n y $.  $d X f i n z $.  $d f i n ta z $.
    $d f i n th z $.  $d i ph $.
    bnj1034.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1034.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1034.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1034.4 $e |- ( th <-> ( R _FrSe A /\ X e. A ) ) $.
    bnj1034.5 $e |- ( ta <-> ( B e. _V /\ _TrFo ( B , A , R ) /\ _pred ( X , A
        , R ) C_ B ) ) $.
    bnj1034.7 $e |- ( ze <-> ( i e. n /\ z e. ( f ` i ) ) ) $.
    bnj1034.8 $e |- D = ( _om \ { (/) } ) $.
    bnj1034.9 $e |- K = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj1034.10 $e |- ( E. f E. n E. i ( th /\ ta /\ ch /\ ze ) -> z e. B ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1034 $p |- ( ( th /\ ta ) -> _trCl ( X , A , R ) C_ B ) $=
      ( cv c-bnj18 wcel biid bnj1033 ) ABCDEHUGILQUHUIZFGHIJKLMNOPQRSTUAUBULUJU
      CUDUEUFUK $.
  $}

  ${
    bnj1039.1 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1039.2 $e |- ( ps' <-> [. j / i ]. ps ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1039 $p |- ( ps' <-> A. i e. _om ( suc i e. n
        -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $=
      ( cv wsbc csuc wcel cfv c-bnj14 ciun com cvv wceq wi wral vex nfra1 nfxfr
      wb sbcgf ax-mp 3bitri ) IAFGLZMZAFLZNZHLOUNELZPBUMUOPCDBLQRUAUBZFSUCZKUKT
      OULAUGGUDAFUKTAUQFJUPFSUEUFUHUIJUJ $.
  $}

  ${
    $d D i $.  $d f i $.  $d i n $.
    bnj1040.1 $e |- ( ph' <-> [. j / i ]. ph ) $.
    bnj1040.2 $e |- ( ps' <-> [. j / i ]. ps ) $.
    bnj1040.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1040.4 $e |- ( ch' <-> [. j / i ]. ch ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1040 $p |- ( ch' <-> ( n e. D /\ f Fn n /\ ph' /\ ps' ) ) $=
      ( cv wsbc w-bnj17 sbcbii wa wcel wfn w3a df-bnj17 vex bnj525 bicomi sbcan
      bnj887 sbc3an anbi1i 3bitri 3bitr4ri ) KCFGPZQHPZDUAZEPUOUBZABRZFUNQZUPUQ
      IJRZOCURFUNNSUPFUNQZUQFUNQZAFUNQZBFUNQZRVAVBVCUCZVDTZUTUSVAVBVCVDUDUPUQIJ
      VAVBVCVDVAUPUPFUNGUEZUFUGVBUQUQFUNVGUFUGLMUIUSUPUQAUCZBTZFUNQVHFUNQZVDTVF
      URVIFUNUPUQABUDSVHBFUNUHVJVEVDUPUQAFUNUJUKULUMUL $.
  $}

  ${
    bnj1047.1 $e |- ( rh <-> A. j e. n ( j _E i -> [. j / i ]. et ) ) $.
    bnj1047.2 $e |- ( et' <-> [. j / i ]. et ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1047 $p |- ( rh <-> A. j e. n ( j _E i -> et' ) ) $=
      ( cv cep wbr wsbc wi wral imbi2i ralbii bitr4i ) BDIZCIJKZACRLZMZDEIZNSFM
      ZDUBNGUCUADUBFTSHOPQ $.
  $}

  ${
    bnj1049.1 $e |- ( ze <-> ( i e. n /\ z e. ( f ` i ) ) ) $.
    bnj1049.2 $e |- ( et <-> ( ( th /\ ta /\ ch /\ ze ) -> z e. B ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1049 $p |- ( A. i e. n et <-> A. i et ) $=
      ( cv wral wcel wi wal df-ral bitr4i bitri w-bnj17 wa imbi2i impexp bnj708
      cfv simplbi pm4.71ri bicomi imbi1i albii ) DIJMZNIMZULOZDPZIQDIQDIULRUODI
      UOBCAEUAZFMZGOZPZDUOUNUPUBZURPZUSUOUNUSPVADUSUNLUCUNUPURUDSUTUPURUPUTUPUN
      BCAEUNEUNUQUMHMUFOKUGUEUHUIUJTLSUKT $.
  $}

  ${
    $d A f i n y $.  $d A f i n z $.  $d B f i n z $.  $d D i $.
    $d R f i n y $.  $d R f i n z $.  $d X f i n y $.  $d X f i n z $.
    $d et j $.  $d f i n ta z $.  $d f i n th z $.  $d i j n $.  $d i ph $.
    bnj1052.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1052.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1052.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1052.4 $e |- ( th <-> ( R _FrSe A /\ X e. A ) ) $.
    bnj1052.5 $e |- ( ta <-> ( B e. _V /\ _TrFo ( B , A , R ) /\ _pred ( X , A
        , R ) C_ B ) ) $.
    bnj1052.6 $e |- ( ze <-> ( i e. n /\ z e. ( f ` i ) ) ) $.
    bnj1052.7 $e |- D = ( _om \ { (/) } ) $.
    bnj1052.8 $e |- K = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj1052.9 $e |- ( et <-> ( ( th /\ ta /\ ch /\ ze ) -> z e. B ) ) $.
    bnj1052.10 $e |- ( rh <-> A. j e. n ( j _E i -> [. j / i ]. et ) ) $.
    bnj1052.37 $e |- ( ( th /\ ta /\ ch /\ ze ) -> ( _E Fr n /\ A. i e. n ( rh
        -> et ) ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1052 $p |- ( ( th /\ ta ) -> _trCl ( X , A , R ) C_ B ) $=
      ( w-bnj17 cv wcel wi wal wex 19.23vv albii 19.23v bitri cep wfr wa bnj110
      wral vex bnj1049 sylib 19.21bi mpcom gen2 mpgbi bnj1034 ) ABCDEGIJKLMNOPR
      STUAUBUCUDUEUFUGUHDECGULZJUMLUNZUOZPUPRUPZVOPUQRUQZOUQVPUOZOVROUPVSVPUOZO
      UPVTVRWAOVOVPRPURUSVSVPOUTVAVQRPRUMZVBVCHFUOPWBVFVDZVOVPUKWCFVQWCFPWCFPWB
      VFFPUPFHPQWBVBRVGUJVECDEFGJLOPRUFUIVHVIVJUIVIVKVLVMVN $.
  $}

  ${
    $d A f i n y $.  $d A f i n z $.  $d B f i n z $.  $d D i $.
    $d R f i n y $.  $d R f i n z $.  $d X f i n y $.  $d X f i n z $.
    $d et j $.  $d f i n ta z $.  $d f i n th z $.  $d i j n $.  $d i ph $.
    bnj1053.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1053.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1053.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1053.4 $e |- ( th <-> ( R _FrSe A /\ X e. A ) ) $.
    bnj1053.5 $e |- ( ta <-> ( B e. _V /\ _TrFo ( B , A , R ) /\ _pred ( X , A
        , R ) C_ B ) ) $.
    bnj1053.6 $e |- ( ze <-> ( i e. n /\ z e. ( f ` i ) ) ) $.
    bnj1053.7 $e |- D = ( _om \ { (/) } ) $.
    bnj1053.8 $e |- K = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj1053.9 $e |- ( et <-> ( ( th /\ ta /\ ch /\ ze ) -> z e. B ) ) $.
    bnj1053.10 $e |- ( rh <-> A. j e. n ( j _E i -> [. j / i ]. et ) ) $.
    bnj1053.37 $e |- ( ( th /\ ta /\ ch /\ ze ) -> A. i e. n ( rh -> et ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1053 $p |- ( ( th /\ ta ) -> _trCl ( X , A , R ) C_ B ) $=
      ( w-bnj17 cv cep wfr wi wral wcel wfn word bnj923 nnord ordfr 3syl bnj769
      com bnj707 jca bnj1052 ) ABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJDECGULRU
      MZUNUOZHFUPPVJUQDECGVKVJMURZOUMVJUSABVKCUCVLVJVFURVJUTVKMRUGVAVJVBVJVCVDV
      EVGUKVHVI $.
  $}

  ${
    bnj1071.7 $e |- D = ( _om \ { (/) } ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1071 $p |- ( n e. D -> _E Fr n ) $=
      ( cv wcel com word cep wfr bnj923 nnord ordfr 3syl ) BDZAENFENGNHIABCJNKN
      LM $.
  $}

  ${
    bnj1083.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1083.8 $e |- K = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1083 $p |- ( f e. K <-> E. n ch ) $=
      ( cv wfn w3a wrex wcel wa wex df-rex abeq2i w-bnj17 bnj252 bitri 3bitr4i
      exbii ) EJZFJZKZABLZFDMZUEDNZUGOZFPUDGNCFPUGFDQUHEGIRCUJFCUIUFABSUJHUIUFA
      BTUAUCUB $.
  $}

  ${
    $d et j $.  $d i j $.  $d j n $.
    bnj1090.9 $e |- ( et <-> ( ( f e. K /\ i e. dom f ) -> ( f ` i ) C_ B ) )
        $.
    bnj1090.10 $e |- ( rh <-> A. j e. n ( j _E i -> [. j / i ]. et ) ) $.
    bnj1090.17 $e |- ( et' <-> [. j / i ]. et ) $.
    bnj1090.18 $e |- ( si <-> ( ( j e. n /\ j _E i ) -> et' ) ) $.
    bnj1090.19 $e |- ( ph0 <-> ( i e. n /\ si /\ f e. K /\ i e. dom f ) ) $.
    bnj1090.28 $e |- ( ( th /\ ta /\ ch /\ ze ) -> A. i E. j ( ph0 -> ( f ` i )
        C_ B ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1090 $p |- ( ( th /\ ta /\ ch /\ ze ) -> A. i e. n ( rh -> et ) ) $=
      ( w-bnj17 cv cfv wss wi wex wal wral wel wcel cdm wa impexp exbii cep wbr
      imbi1i imbi2i 19.37v wsbc bnj115 albii bitr4i 19.36v bitr2i bnj256 bnj133
      3bitr4i df-ral sylibr ) BCAEUBOJUCZIUCZUDHUEZUFZKUGZJUHZGDUFZJLUCZUIZUAJL
      UJZVRUFZJUHWAFVMMUKZVLVMULUKZUBZVNUFZKUGZJUHVTVQWBWGJWBWAFUMZDUFZWFKWIKUG
      WAFDUFZUFZKUGZWBWIWKKWAFDUNUOWAWJKUGZUFWAKLUJKUCZVLUPUQZUMZNUFZDUFZKUGZUF
      WLWBWMWSWAWJWRKFWQDSURUOUSWAWJKUTVRWSWAVRWQKUHZDUFWSGWTDGWPDJWNVAZUFZKUHW
      TXAWOGVSKQVBWQXBKNXAWPRUSVCVDURWQDKVEVDUSVIVFWHWCWDUMZUMZVNUFWHXCVNUFZUFW
      FWIWHXCVNUNWEXDVNWAFWCWDVGURDXEWHPUSVIVHVCVRJVSVJVPWGJVOWFKOWEVNTURUOVCVI
      VK $.
  $}

  ${
    $d ch j $.  $d i ta $.  $d i th $.  $d j ta $.  $d j th $.  $d D i $.
    $d f i $.  $d i n $.  $d i ph $.
    bnj1093.1 $e |- E. j ( ( ( th /\ ta /\ ch ) /\ ph0 ) -> ( f ` i ) C_ B ) $.
    bnj1093.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1093.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1093 $p |- ( ( th /\ ta /\ ch /\ ze ) -> A. i E. j ( ph0 -> ( f ` i ) C_
        B ) ) $=
      ( cv cfv wss wi wex wal w3a wcel wfn csuc c-bnj14 bnj1095 bnj1096 bnj1350
      ciun wceq com wa impexp exbii mpbi 19.37iv alrimih bnj721 ) DECFPMTZLTZUA
      ZIUBZUCZNUDZMUEDECUFZVIMDECMBCOTZJUGVEVKUHAMBVDUIZVKUGVLVEUAGVFHKGTUJUNUO
      UCMUPRUKSULUMVJVHNVJPUQVGUCZNUDVJVHUCZNUDQVMVNNVJPVGURUSUTVAVBVC $.
  $}

  ${
    bnj1097.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1097.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1097.5 $e |- ( ta <-> ( B e. _V /\ _TrFo ( B , A , R ) /\ _pred ( X , A
        , R ) C_ B ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1097 $p |- ( ( i = (/) /\ ( ( th /\ ta /\ ch ) /\ ph0 ) ) -> ( f ` i )
        C_ B ) $=
      ( cv c0 wa wceq w3a cfv c-bnj14 wss wfn biimpi bnj771 3ad2ant3 adantr cvv
      wcel w-bnj19 simp3bi 3ad2ant2 jca anim2i 3anass sylibr fveq2 eqeq1d simpr
      biimpar eqsstrd 3impa syl ) KRZSUAZDECUBZNTZTZVHSJRZUCZFIMUDZUAZVNGUEZUBZ
      VGVLUCZGUEZVKVHVOVPTZTVQVJVTVHVJVOVPVIVONCDVOELRZHULVLWAUFABVOCPAVOOUGUHU
      IUJVIVPNEDVPCEGUKULFGIUMVPQUNUOUJUPUQVHVOVPURUSVHVOVPVSVHVOTZVPTVRVNGWBVR
      VNUAZVPVHWCVOVHVRVMVNVGSVLUTVAVCUJWBVPVBVDVEVF $.
  $}

  ${
    $d D j $.  $d i j $.  $d j n $.
    bnj1110.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1110.7 $e |- D = ( _om \ { (/) } ) $.
    bnj1110.18 $e |- ( si <-> ( ( j e. n /\ j _E i ) -> et' ) ) $.
    bnj1110.19 $e |- ( ph0 <-> ( i e. n /\ si /\ f e. K /\ i e. dom f ) ) $.
    bnj1110.26 $e |- ( et' <-> ( ( f e. K /\ j e. dom f ) -> ( f ` j ) C_ B ) )
        $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1110 $p |- E. j ( ( i =/= (/) /\ ( ( th /\ ta /\ ch ) /\ ph0 ) )
        -> ( j e. n /\ i = suc j /\ ( f ` j ) C_ B ) ) $=
      ( cv c0 wne w3a wa cdm wcel wel csuc wceq cep wbr w-bnj17 cfv wss bnj1098
      wb wi wex bnj219 adantl ancli df-3an sylibr bnj1023 wfn 3ad2ant3 anim12ci
      bnj1232 anim2i 3anass bnj1101 3simpb ad2antll sylib syl5 a2i pm3.43 mpdan
      bnj1235 bnj101 bnj1247 pm3.43i ax-mp bnj770 ad2antrl eleq2d bnj268 bnj251
      bitr3i imbi2i exbii mpbir simp1 bnj706 simp2 bnj258 simprbi bnj642 mpbird
      fndm bnj645 mp2and 3jca ) JUAZUBUCZDECUDZOUEZUEZKUAZIUAZUFZUGZKLUHZUQZXNX
      EXJUIUJZXJXEUKULZUDZXKMUGZNUMZXNXPXJXKUNGUOZUDKXIXTURZKUSXIXOXSXRNUEZUEZU
      EZURZKUSXIYDURZYFKXIYCURZYGKXIXRURZYHKXFJLUHZLUAZHUGZUDZXRXIKYMXNXPUEZXRK
      HJKLQUPYNYNXQUEXRYNXQXPXQXNKJUTVAVBXNXPXQVCVDVEXIXFYJYLUEZUEYMXHYOXFXGYLO
      YJCDYLECYLXKYKVFZABPVIVGOYJFXSXEXLUGZSVIVHVJXFYJYLVKVDVLYIXINURYHXIXRNXRX
      NXQUEZXINXNXPXQVMXIFYRNUROFXFXGOYJFXSYQSVTVNRVOVPVQXIXRNVRVSWAXIXSURYHYGU
      ROXSXFXGOYJFXSYQSWBVNXIXSYCWCWDWAXIXOURYGYFURXIXLYKXJXGXLYKUJZXFOCDYSEYLY
      PABYSCPYKXKXAWEVGWFWGXIXOYDWCWDWAYBYFKXTYEXIXTXOXSXRNUMYEXOXSXRNWHXOXSXRN
      WIWJWKWLWMXTXNXPYAXOXRXSNXNXNXPXQWNWOZXOXRXSNXPXNXPXQWPWOXTXSXMYAXTXOXRNU
      DXSXOXRXSNWQWRXTXMXNYTXOXRXSNWSWTXTNXSXMUEYAURXOXRXSNXBTVOXCXDVE $.
  $}

  ${
    $d A i j $.  $d R i j $.  $d f i j y $.  $d i j n $.
    bnj1112.1 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1112 $p |- ( ps <-> A. j ( ( j e. _om /\ suc j e. n ) -> ( f ` suc j ) =
        U_ y e. ( f ` j ) _pred ( y , A , R ) ) ) $=
      ( cv com wcel csuc wa cfv c-bnj14 ciun wceq wi wal bnj115 anbi12d bnj1113
      eleq1 suceq eleq1d fveq2d fveq2 eqeq12d imbi12d cbvalv bitri ) AFJZKLZUMM
      ZHJZLZNZUOEJZOZBUMUSOZCDBJPZQZRZSZFTGJZKLZVFMZUPLZNZVHUSOZBVFUSOZVBQZRZSZ
      GTVDUQAKFIUAVEVOFGUMVFRZURVJVDVNVPUNVGUQVIUMVFKUDVPUOVHUPUMVFUEZUFUBVPUTV
      KVCVMVPUOVHUSVQUGBUMVFVAVLVBUMVFUSUHUCUIUJUKUL $.
  $}

  ${
    $d A i j y $.  $d B y $.  $d D j $.  $d R i j y $.  $d f i j y $.
    $d i j n $.
    bnj1118.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1118.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1118.5 $e |- ( ta <-> ( B e. _V /\ _TrFo ( B , A , R ) /\ _pred ( X , A
        , R ) C_ B ) ) $.
    bnj1118.7 $e |- D = ( _om \ { (/) } ) $.
    bnj1118.18 $e |- ( si <-> ( ( j e. n /\ j _E i ) -> et' ) ) $.
    bnj1118.19 $e |- ( ph0 <-> ( i e. n /\ si /\ f e. K /\ i e. dom f ) ) $.
    bnj1118.26 $e |- ( et' <-> ( ( f e. K /\ j e. dom f ) -> ( f ` j ) C_ B ) )
        $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1118 $p |- E. j ( ( i =/= (/) /\ ( ( th /\ ta /\ ch ) /\ ph0 ) ) -> ( f
        ` i ) C_ B ) $=
      ( cv c0 wne w3a wa wcel csuc wceq cfv wss bnj1110 ancl bnj101 com w-bnj17
      w-bnj19 simpr2 wfn bnj1254 3ad2ant3 ad2antrl adantr bnj1232 simpr1 bnj923
      anim1i ancomd syl2anc elnn syl cdm adantl ad2antlr bnj951 c-bnj14 simp2bi
      wi cvv 3ad2ant2 simp3 anim12i ciun bnj256 wal bnj1112 biimpi eleq1 anbi2d
      19.21bi fveq2 eqeq1d imbi12d syl5ibr imp31 sylbi wral ssralv syl5bi iunss
      df-bnj19 impcom sylibr sseq1 biimpar syl2an bnj1023 ) MUGZUHUIZDECUJZSUKZ
      UKZXQNUGZOUGZULZXMXRUMZUNZXRLUGZUOZIUPZUJZUKZXMYCUOZIUPZNXQYFWCXQYGWCNABC
      DEFIJLMNOPRSUAUCUDUEUFUQXQYFURUSYGYBBXRUTULZXMXSULZVAZHIKVBZYEUKZYIYBBYJY
      KYGXQXTYBYEVCXQBYFXOBXNSCDBECXSJULZYCXSVDZABUAVEVFVGVHYGXTXSUTULZUKZYJYGY
      OXTYRXQYOYFXOYOXNSCDYOECYOYPABUAVIVFVGVHXQXTYBYEVJYOXTUKYQXTYOYQXTJOUCVKV
      LVMVNXRXSVOVPXPYKXNYFSYKXOSYKFYCPULXMYCVQULUEVIVRVSVTXQYMYFYEXOYMXNSEDYMC
      EIWDULYMHKQWAIUPUBWBWEVGXTYBYEWFWGYLYHGYDHKGUGWAZWHZUNZYTIUPZYIYNYLYBBUKY
      JYKUKZUKUUAYBBYJYKWIYBBUUCUUABUUCUUAWCYBYJYAXSULZUKZYAYCUOZYTUNZWCZBUUHNB
      UUHNWJBGHKLMNOTWKWLWOYBUUCUUEUUAUUGYBYKUUDYJXMYAXSWMWNYBYHUUFYTXMYAYCWPWQ
      WRWSWTXAYNYSIUPZGYDXBZUUBYEYMUUJYMUUIGIXBYEUUJGHIKXFUUIGYDIXCXDXGGYDYSIXE
      XHUUAYIUUBYHYTIXIXJXKVNXL $.
  $}

  ${
    bnj1121.1 $e |- ( th <-> ( R _FrSe A /\ X e. A ) ) $.
    bnj1121.2 $e |- ( ta <-> ( B e. _V /\ _TrFo ( B , A , R ) /\ _pred ( X , A
        , R ) C_ B ) ) $.
    bnj1121.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1121.4 $e |- ( ze <-> ( i e. n /\ z e. ( f ` i ) ) ) $.
    bnj1121.5 $e |- ( et <-> ( ( f e. K /\ i e. dom f ) -> ( f ` i ) C_ B ) )
        $.
    bnj1121.6 $e |- ( ( th /\ ta /\ ch /\ ze ) -> A. i e. n et ) $.
    bnj1121.7 $e |- K = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1121 $p |- ( ( th /\ ta /\ ch /\ ze ) -> z e. B ) $=
      ( w-bnj17 cfv wcel cdm wss wex 19.8a bnj707 bnj1083 sylibr simplbi bnj708
      cv wfn wceq bnj1235 fndm syl eleqtrrd wa wi bnj1294 mp2and simprbi sseldd
      sylib ) DECGUEZNUQZMUQZUFZJHUQZVKVMPUGZVLVMUHZUGZVNJUIZVKCOUJZVPDECGVTCOU
      KULABCKMOPTUDUMUNVKVLOUQZVQDECGVLWAUGZGWBVOVNUGZUAUOUPZVKVMWAURZVQWAUSDEC
      GWECWAKUGWEABTUTULWAVMVAVBVCVKFVPVRVDVSVEVKFNWAUCWDVFUBVJVGDECGWCGWBWCUAV
      HUPVI $.
  $}

  ${
    $d B i $.  $d D i $.  $d f i $.  $d i j $.  $d i n $.  $d i ph $.
    bnj1123.4 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1123.3 $e |- K = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj1123.1 $e |- ( et <-> ( ( f e. K /\ i e. dom f ) -> ( f ` i ) C_ B ) )
        $.
    bnj1123.2 $e |- ( et' <-> [. j / i ]. et ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1123 $p |- ( et'
        <-> ( ( f e. K /\ j e. dom f ) -> ( f ` j ) C_ B ) ) $=
      ( cv wcel wsbc cdm wa cfv wss wi sbcbii cvv vex wfn w3a wrex cab nfcv nfv
      wb csuc c-bnj14 ciun wceq bnj1095 nf5i nf3an nfrex nfab nfcxfr nfcri nfan
      com nfim weq eleq1 anbi2d fveq2 sseq1d imbi12d sbciegf ax-mp 3bitri ) NCJ
      KSZUAISZMTZJSZWAUBZTZUCZWCWAUDZFUEZUFZJVTUAZWBVTWDTZUCZVTWAUDZFUEZUFZRCWI
      JVTQUGVTUHTWJWOUPKUIWIWOJVTUHWLWNJWBWKJJIMJMWALSZUJZABUKZLGULZIUMPWSJIWRJ
      LGJGUNWQABJWQJUOAJUOBJBWCUQZWPTWTWAUDDWGEHDSURUSUTUFJVIOVAVBVCVDVEVFVGWKJ
      UOVHWNJUOVJJKVKZWFWLWHWNXAWEWKWBWCVTWDVLVMXAWGWMFWCVTWAVNVOVPVQVRVS $.
  $}

  ${
    $d A f i j n y $.  $d A f i n z $.  $d B f i n y $.  $d B f i n z $.
    $d D i j $.  $d R f i j n y $.  $d R f i n z $.  $d X f i n y $.
    $d X f i n z $.  $d ch j $.  $d et j $.  $d f i j n ta $.  $d f i j n th $.
    $d i ph $.  $d ta z $.  $d th z $.
    bnj1030.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1030.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1030.3 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1030.4 $e |- ( th <-> ( R _FrSe A /\ X e. A ) ) $.
    bnj1030.5 $e |- ( ta <-> ( B e. _V /\ _TrFo ( B , A , R ) /\ _pred ( X , A
        , R ) C_ B ) ) $.
    bnj1030.6 $e |- ( ze <-> ( i e. n /\ z e. ( f ` i ) ) ) $.
    bnj1030.7 $e |- D = ( _om \ { (/) } ) $.
    bnj1030.8 $e |- K = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj1030.9 $e |- ( et <-> ( ( f e. K /\ i e. dom f ) -> ( f ` i ) C_ B ) )
        $.
    bnj1030.10 $e |- ( rh <-> A. j e. n ( j _E i -> [. j / i ]. et ) ) $.
    bnj1030.11 $e |- ( ph' <-> [. j / i ]. ph ) $.
    bnj1030.12 $e |- ( ps' <-> [. j / i ]. ps ) $.
    bnj1030.13 $e |- ( ch' <-> [. j / i ]. ch ) $.
    bnj1030.14 $e |- ( th' <-> [. j / i ]. th ) $.
    bnj1030.15 $e |- ( ta' <-> [. j / i ]. ta ) $.
    bnj1030.16 $e |- ( ze' <-> [. j / i ]. ze ) $.
    bnj1030.17 $e |- ( et' <-> [. j / i ]. et ) $.
    bnj1030.18 $e |- ( si <-> ( ( j e. n /\ j _E i ) -> et' ) ) $.
    bnj1030.19 $e |- ( ph0 <-> ( i e. n /\ si /\ f e. K /\ i e. dom f ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1030 $p |- ( ( th /\ ta ) -> _trCl ( X , A , R ) C_ B ) $=
      ( w-bnj17 cv wcel wal wex 19.23vv albii 19.23v bitri cep wfr wral bnj1071
      wfn bnj769 bnj707 w3a cfv bnj1123 bnj1118 bnj1097 bnj1109 bnj1093 bnj1090
      wi wa wss c0 vex bnj110 syl2anc bnj1121 gen2 mpgbi bnj1034 ) ABCDEGJKLMNO
      PQSTUAUJUKULUMUNUOUPUQDECGVIZKVJMVKZWMZQVLSVLZXDQVMSVMZPVMXEWMZPXGPVLXHXE
      WMZPVLXIXGXJPXDXESQVNVOXHXEPVPVQXFSQABCDEFGKLMNOPQSTUAUMUNULUOURXDSVJZVRV
      SZIFWMQXKVTFQXKVTDECGXLXKNVKPVJZXKWBABXLCULNSUPWAWCWDCDEFGHIMPQRSTUGUIURU
      SVFVGVHABCDEGJLMNOPQRSUIDECWEUIWNQVJZXMWFMWORXNWPABCDEHJLMNOPQRSTUAUGUIUK
      ULUNUPVGVHABFJLMNOPQRSTUGUKUQURVFWGWHABCDELMNOPQSUAUIUJULUNWIWJUKULWKWLFI
      QRXKVRSWQUSWRWSUQWTXAXBXC $.
  $}

  ${
    $d A f i j n y $.  $d A f i n z $.  $d B f i j n y $.  $d B f i n z $.
    $d R f i j n y $.  $d R f i n z $.  $d X f i j n y $.  $d X f i n z $.
    $d f i j n ta $.  $d f i j n th $.  $d ta z $.  $d th z $.
    bnj1124.4 $e |- ( th <-> ( R _FrSe A /\ X e. A ) ) $.
    bnj1124.5 $e |- ( ta <-> ( B e. _V /\ _TrFo ( B , A , R ) /\ _pred ( X , A
        , R ) C_ B ) ) $.
    $( Property of ` _trCl ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj1124 $p |- ( ( th /\ ta ) -> _trCl ( X , A , R ) C_ B ) $=
      ( vf vi vn vy vj cv cfv wcel wi wa wsbc biid vz c0 c-bnj14 wceq csuc ciun
      com wral csn cdif wfn w-bnj17 w3a wrex cab cdm wss wel cep eqid bnj1030
      wbr ) UBINZOCEFUCUDZJNZUEZKNZPVFVCOLVEVCOZCELNUCUFUDQJUGUHZVGUGUBUIUJZPVC
      VGUKZVDVIULZABVCVKVDVIUMKVJUNIUOZPZVEVCUPPZRVHDUQQZJKURZUANVHPRZMKURMNZVE
      USVBZRVPJVSSZQZVTWAQMVGUHZLUACDVJEIJMKVMFVDJVSSZVIJVSSZVLJVSSZAJVSSZBJVSS
      ZWAVRJVSSZVQWBVNVOULZVDTVITVLTGHVRTVJUTVMUTVPTWCTWDTWETWFTWGTWHTWITWATWBT
      WJTVA $.
  $}

  ${
    $d i j n $.  $d j th $.
    bnj1133.3 $e |- D = ( _om \ { (/) } ) $.
    bnj1133.5 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1133.7 $e |- ( ta <-> A. j e. n ( j _E i -> [. j / i ]. th ) ) $.
    bnj1133.8 $e |- ( ( i e. n /\ ta ) -> th ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1133 $p |- ( ch -> A. i e. n th ) $=
      ( cv cep wfr wi wral wcel wfn bnj769 wa impexp bicomi albii mpgbir df-ral
      bnj1071 wal mpbir vex bnj110 sylancl ) CJOZPQZEDRZHUOSZDHUOSUOFTGOUOUAABU
      PCLFJKUIUBURHOUOTZUQRZHUJZVAUSEUCDRZHUTVBHVBUTUSEDUDUEUFNUGUQHUOUHUKDEHIU
      OPJULMUMUN $.
  $}

  ${
    $d A f i j n y $.  $d D i j y $.  $d R f i j n y $.  $d X f i n y $.
    $d Y f i n y $.  $d ch j $.  $d i ph y $.  $d j th $.
    bnj1128.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1128.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1128.3 $e |- D = ( _om \ { (/) } ) $.
    bnj1128.4 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj1128.5 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1128.6 $e |- ( th <-> ( ch -> ( f ` i ) C_ A ) ) $.
    bnj1128.7 $e |- ( ta <-> A. j e. n ( j _E i -> [. j / i ]. th ) ) $.
    bnj1128.8 $e |- ( ph' <-> [. j / i ]. ph ) $.
    bnj1128.9 $e |- ( ps' <-> [. j / i ]. ps ) $.
    bnj1128.10 $e |- ( ch' <-> [. j / i ]. ch ) $.
    bnj1128.11 $e |- ( th' <-> [. j / i ]. th ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1128 $p |- ( Y e. _trCl ( X , A , R ) -> Y e. A ) $=
      ( c-bnj18 wcel wex wel cv cfv w3a bnj981 wss simp1 simp2 wral nfv cep wbr
      wi wa wsbc nfra1 nfxfr nf3an nfim nf5ri c0 csuc wceq bnj1098 simpl simpr1
      wne bnj1232 3ad2ant3 adantl 3jca bnj1101 bnj101 df-3an imbi2i exbii mpbir
      wfn ancl c-bnj14 ciun bnj213 bnj226 simp21 com simp3r w-bnj17 biid cvv wb
      vex sbcg ax-mp bitr2i bnj1039 bitr4i bnj887 bnj1040 3bitr4i bnj1254 sylbi
      3ad2ant2 simp3l bnj923 elnn sylan2 syl2anc bnj589 rsp eleq1 fveq2 imbi12d
      eqeq1d imbi2d syl5ibr mpd bnj1262 bnj1023 bnj1247 biimpi sylan9eq bnj1109
      syl3c bnj1131 sylib 19.9v 3expia sylibr ralbii simp3 sseldd 2eximi bnj593
      bnj1133 syl 3bitri ) PGJOULUMZPGUMZLUNZNUNZKUNZUULUUKCLNUOZPLUPZKUPZUQZUM
      ZURZLUNNUNUUNKABCFGHIJKLNOPUAUBUCUDUEUSUVAUULNLUVAUUSGPUVACUUPCUUSGUTZCUU
      PUUTVAZCUUPUUTVBUVCCCUVBVGZLNUPZVCZUUPUVDVGCDLUVEVCUVFABCDEIKLMNUCUEUGUUP
      EVHUVDDUUPECUVBUUPECURZUVBVGZMUVHMUVGUVBMUUPECMUUPMVDEMUPZUUQVEVFDLUVIVIV
      GZMUVEVCMUGUVJMUVEVJVKCMVDVLUVBMVDVMVNUVGUVBMUUQVOUUQVOWAZUVGVHZUVKUVGMNU
      OZUUQUVIVPZVQZVHZURZUVBMUVLUVQVGZMUNUVLUVLUVPVHZVGZMUNUVLUVPVGUVTMUVKUUPU
      VEIUMZURUVPUVLMILMNUCVRUVLUVKUUPUWAUVKUVGVSUVKUUPECVTUVGUWAUVKCUUPUWAECUW
      AUURUVEWLZABUEWBWCZWDWEWFUVLUVPWMWGUVRUVTMUVQUVSUVLUVKUVGUVPWHWIWJWKUVQFU
      VIUURUQZGJFUPZWNZWOZGUUSFUWDUWFGGJUWEWPWQUVQUUPUUSUWGVQZUVKUUPECUVPWRUVQU
      VORUVIWSUMZUUPUWHVGZUVKUVGUVMUVOWTUVGUVKRUVPCUUPRECSRUWAUWBABXAUWAUWBQRXA
      CSUWAUWBABUWAUWBQRUWAXBUWBXBQALUVIVIZAUHUVIXCUMUWKAXDMXEALUVIXCXFXGXHBUUQ
      VPZUVEUMUWLUURUQFUUSUWFWOVQVGLWSVCRUBBFGJKLMNRUBUIXIZXJXKUEABCIKLMNQRSUHU
      IUEUJXLZXMSUWAUWBQRUWNXNXOWCXPUVQUVMUWAUWIUVKUVGUVMUVOXQUVGUVKUWAUVPUWCXP
      UWAUVMUVEWSUMUWIINUCXRUVIUVEXSXTYARUWIUWJVGUVOUWIUVNUVEUMZUVNUURUQZUWGVQZ
      VGZVGZRUWRMWSVCUWSRFGJKLMNUWMYBUWRMWSYCXOUVOUWJUWRUWIUVOUUPUWOUWHUWQUUQUV
      NUVEYDUVOUUSUWPUWGUUQUVNUURYEYGYFYHYIYQYJYKYLUVGUUQVOVQZAUVBCUUPAECUWAUWB
      ABUEYMWCUWTAVHGJOWNZGUUSGJOWPUWTAUUSVOUURUQZUXAUUQVOUURYEAUXBUXAVQUAYNYOY
      KXTYPYRUUAUFUUBUUHDUVDLUVEUFUUCYSUVDLUVEYCUUIYQCUUPUUTUUDUUEUUFUUGUUOUUNU
      UMUULUUNKYTUUMNYTUULLYTUUJYS $.
  $}

  ${
    $d A f i j n y $.  $d R f i j n y $.  $d X f i j n y $.  $d Y f i n y $.
    $( Property of ` _trCl ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj1127 $p |- ( Y e. _trCl ( X , A , R ) -> Y e. A ) $=
      ( vf vi vn vy vj c0 cv cfv c-bnj14 wceq wcel wi com wral wsbc biid csuc
      ciun csn cdif wfn w-bnj17 wss cep wbr w3a wrex cab eqid bnj1128 ) JEKZLAB
      CMNZFKZUAZGKZOURUOLHUQUOLZABHKMUBNPFQRZUSQJUCUDZOUOUSUEZUPVAUFZVDUTAUGPZI
      KZUQUHUIVEFVFSZPIUSRZHAVCUPVAUJGVBUKEULZVBBEFIGCDUPFVFSZVAFVFSZVDFVFSZVGU
      PTVATVBUMVIUMVDTVETVHTVJTVKTVLTVGTUN $.
  $}

  ${
    $d A y $.  $d R y $.  $d X y $.  $d Y y $.
    $( Property of ` _trCl ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj1125 $p |- ( ( R _FrSe A /\ X e. A /\ Y e. _trCl ( X , A , R ) ) ->
        _trCl ( Y , A , R ) C_ _trCl ( X , A , R ) ) $=
      ( w-bnj15 wcel c-bnj18 w3a cvv w-bnj19 c-bnj14 wss simp1 bnj1127 3ad2ant3
      vy bnj893 3adant3 wi biid bnj1029 simp3 cv wceq wex elisset wral df-bnj19
      rsp sylbi syl eleq1 bnj602 sseq1d imbi12d syl5ib exlimiv mpcom wa bnj1124
      mpd syl23anc ) ABEZCAFZDABCGZFZHZVCDAFZVEIFZAVEBJZABDKZVELZABDGVELVCVDVFM
      VFVCVHVDABCDNOVCVDVIVFABCQRVCVDVJVFABCUARZVGVFVLVCVDVFUBPUCZDUDZPUEZVGVFV
      LSZVFVCVPVDPDVEUFOVOVGVQSPVGVNVEFZABVNKZVELZSZVOVQVGVJWAVMVJVTPVEUGWAPAVE
      BUHVTPVEUIUJUKVOVRVFVTVLVNDVEULVOVSVKVEABVNDUMUNUOUPUQURVAVCVHUSZVIVJVLHZ
      AVEBDWBTWCTUTVB $.
  $}

  ${
    $d A f i j n y $.  $d A f w $.  $d B w $.  $d D i j $.  $d R f i j n y $.
    $d X f i n y $.  $d ch j $.  $d i ph $.
    bnj1145.1 $e |- ( ph <-> ( f ` (/) ) = _pred ( X , A , R ) ) $.
    bnj1145.2 $e |- ( ps <-> A. i e. _om ( suc i e. n
      -> ( f ` suc i ) = U_ y e. ( f ` i ) _pred ( y , A , R ) ) ) $.
    bnj1145.3 $e |- D = ( _om \ { (/) } ) $.
    bnj1145.4 $e |- B = { f | E. n e. D ( f Fn n /\ ph /\ ps ) } $.
    bnj1145.5 $e |- ( ch <-> ( n e. D /\ f Fn n /\ ph /\ ps ) ) $.
    bnj1145.6 $e |- ( th <-> ( ( i =/= (/) /\ i e. n /\ ch ) /\ ( j e. n /\ i =
        suc j ) ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1145 $p |- _trCl ( X , A , R ) C_ A $=
      ( vw c-bnj18 cv cdm cfv ciun bnj882 wss ss2iun wcel wral wex bnj1083 csuc
      wfn c-bnj14 wceq wi com bnj1095 bnj1096 wa c0 wne bnj1098 bnj1232 3anim3i
      w3a bnj1101 bnj101 imbi2i exbii mpbir bnj213 bnj226 simpr simplbiim simp2
      ancl 3ad2ant3 bnj923 elnn sylan2 syl2anc bnj832 vex bnj216 sylan eqeltrrd
      w-bnj17 bnj589 biimpi bnj708 rsp syl sylbi wb fveq2 eqeq1d mpbird bnj1262
      mp2d bnj1023 3anass imbi1i mpbi bnj771 sseq1 mpbiri biimpar adantrl 19.9v
      syl2an bnj1109 expcom fndm bnj770 imbi1d hbralrimi exlimiv bnj1143 syl6ss
      eleq2 mprg wrex bnj1317 bnj1146 sstri eqsstri ) FINUBJGKJUCZUDZKUCZYJUEZU
      FZUFZFABEFGHIJKMNOPQRUGYOJGFUFZFYNFUHZYOYPUHJGJGYNFUIYJGUJZYMFUHZKYKUKZYQ
      YRCMULYTABCHJMGSRUMCYTMCYSKYKBCMUCZHUJZYJUUAUOZAKBYLUNZUUAUJUUDYJUEEYMFIE
      UCZUPZUFUQURKUSPUTSVACYLYKUJZYSURZYLUUAUJZYSURZUUICYSUUICVBZYSURZLULUULUU
      KYSLYLVCYLVCVDZUUICVHZYSURZLULUUMUUKVBZYSURZLULUUNDYSLUUNDURZLULUUNUUNLUC
      ZUUAUJZYLUUSUNZUQZVBZVBZURZLULUUNUVCURUVELUUMUUIUUBVHUVCUUNLHKLMQVECUUBUU
      MUUICUUBUUCABSVFZVGVIUUNUVCVSVJUURUVELDUVDUUNTVKVLVMDEUUSYJUEZUUFUFZFYMEU
      VGUUFFFIUUEVNVODYMUVHUQZUVAYJUEZUVHUQZDUUSUSUJZUVAUUAUJZUVKDUVBYLUSUJZUVL
      DUUNUVCUVBTUUTUVBVPVQZUUNUVCUVNDTUUNUUIUUBUVNUUMUUICVRZCUUMUUBUUIUVFVTUUB
      UUIUUAUSUJUVNHMQWAYLUUAWBWCWDWEUVBUUSYLUJUVNUVLYLUUSLWFWGUUSYLWBWHWDDYLUV
      AUUAUVOUUNUVCUUIDTUVPWEWIUUNUVCUVLUVMUVKURZURZDTCUUMUVRUUICUUBUUCABWJZUVR
      SUVSUVQLUSUKZUVRUUBUUCABUVTBUVTBEFIJKLMPWKWLWMUVQLUSWNWOWPVTWEXBDUVBUVIUV
      KWQUVOUVBYMUVJUVHYLUVAYJWRWSWOWTXAXCUUOUUQLUUNUUPYSUUMUUICXDXEVLXFYLVCUQZ
      CYSUUICUWAVCYJUEZFINUPZUQZYSUUBUUCABUWDCSAUWDOWLXGUWAYMUWBUQZUWBFUHZYSUWD
      YLVCYJWRUWDUWFUWCFUHFINVNUWBUWCFXHXIUWEYSUWFYMUWBFXHXJXMWCXKXNUULLXLXFXOC
      YKUUAUQZUUHUUJWQUUBUUCABUWGCSUUAYJXPXQUWGUUGUUIYSYKUUAYLYCXRWOWTXSXTWPYTY
      NKYKFUFFKYKYMFUIKYKFYAYBWOYDJUAGFUUCABVHMHYEJUAGRYFYGYHYI $.
  $}

  ${
    $d A f i j n y $.  $d R f i j n y $.  $d X f i j n y $.
    $( Property of ` _trCl ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj1147 $p |- _trCl ( X , A , R ) C_ A $=
      ( vf vi vn vy vj c0 cv cfv c-bnj14 wceq csuc wcel com w3a wa biid eqid wi
      ciun wral csn cdif wfn w-bnj17 wne wrex cab bnj1145 ) IDJZKABCLMZEJZNZFJZ
      OUOULKGUNULKABGJLUBMUAEPUCZUPPIUDUEZOULUPUFZUMUQUGZUNIUHUNUPOUTQHJZUPOUNV
      ANMRRZGAUSUMUQQFURUIDUJZURBDEHFCUMSUQSURTVCTUTSVBSUK $.
  $}

  ${
    $d v y A $.  $d v B $.  $d v y R $.  $d v y X $.
    bnj1137.1 $e |- B = ( _pred ( X , A , R ) u. U_ y e. _trCl ( X , A , R )
        _trCl ( y , A , R ) ) $.
    $( Property of ` _trCl ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (Proof shortened by Mario Carneiro, 22-Dec-2016.)
       (New usage is discouraged.) $)
    bnj1137 $p |- ( ( R _FrSe A /\ X e. A ) -> _TrFo ( B , A , R ) ) $=
      ( vv wcel wa cv c-bnj14 wss wral c-bnj18 sseli bnj906 sylan2 sselda sstrd
      syl w-bnj15 w-bnj19 ciun wo cun eleq2i elun bitri bnj213 adantlr bnj18eq1
      ssiun2s bnj1147 rgenw iunss mpbir bnj1125 3expia ralrimiv sylibr sseqtr4i
      jaodan ssun2 syl6ss sylan2b ralrimiva df-bnj19 ) BDUAZEBHZIZBDGJZKZCLZGCM
      BCDUBVJVMGCVKCHZVJVKBDEKZHZVKABDENZBDAJZNZUCZHZUDZVMVNVKVOVTUEZHWBCWCVKFU
      FVKVOVTUGUHVJWBIVLVTCVJVPVLVTLWAVJVPIZVLBDVKNZVTVPVJVKBHZVLWELZVOBVKBDEUI
      OVHWFWGVIBDVKPUJZQWDVKVQHZWEVTLZVJVOVQVKBDEPRAVQVSVKWEBDVRVKUKULZTSVJWAIZ
      VLWEVTWAVJWFWGVTBVKVTBLVSBLZAVQMWMAVQBDVRUMUNAVQVSBUOUPOWHQWLWIWJVJVTVQVK
      VJVSVQLZAVQMVTVQLVJWNAVQVHVIVRVQHWNBDEVRUQURUSAVQVSVQUOUTRWKTSVBVTWCCVTVO
      VCFVAVDVEVFGBCDVGUT $.
  $}

  ${
    $d A x $.  $d R x $.  $d X x $.
    $( Property of ` _pred ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj1148 $p |- ( ( R _FrSe A /\ X e. A ) -> _pred ( X , A , R ) e. _V ) $=
      ( vx w-bnj15 wcel wa c-bnj14 cvv wi cv wceq wex adantl bnj93 eleq1 anbi2d
      elisset bnj602 eleq1d imbi12d mpbii bnj593 bnj937 pm2.43i ) ABEZCAFZGZABC
      HZIFZUHUHUJJZDUHDKZCLZUKDUGUMDMUFDCARNUMUFULAFZGZABULHZIFZJUKDABOUMUOUHUQ
      UJUMUNUGUFULCAPQUMUPUIIABULCSTUAUBUCUDUE $.
  $}

  ${
    $d A y $.  $d R y $.  $d X y $.
    bnj1136.1 $e |- B = ( _pred ( X , A , R ) u. U_ y e. _trCl ( X , A , R )
        _trCl ( y , A , R ) ) $.
    bnj1136.2 $e |- ( th <-> ( R _FrSe A /\ X e. A ) ) $.
    bnj1136.3 $e |- ( ta <-> ( B e. _V /\ _TrFo ( B , A , R ) /\ _pred ( X , A
        , R ) C_ B ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1136 $p |- ( ( R _FrSe A /\ X e. A ) -> _trCl ( X , A , R ) = B ) $=
      ( wcel c-bnj18 wss cvv ciun wral bnj893 syl2anc 3expia ralrimiv wa cv cun
      w-bnj15 biimpri w-bnj19 c-bnj14 bnj1148 w3a simp1 bnj1127 3ad2ant3 iunexg
      bnj1149 syl5eqel bnj1137 bnj931 a1i bnj1124 bnj906 bnj1125 ss2iun bnj1143
      syl3anbrc syl6ss syl unssd syl5eqss eqssd ) DFUDZGDKZUAZDFGLZEVLABVMEMAVL
      IUEVLENKDEFUFDFGUGZEMZBVLEVNCVMDFCUBZLZOZUCZNHVLVNVRDFGUHVLVMNKVQNKZCVMPV
      RNKDFGQVLVTCVMVJVKVPVMKZVTVJVKWAUIVJVPDKZVTVJVKWAUJWAVJWBVKDFGVPUKULDFVPQ
      RSTCVMVQNNUMRUNUOCDEFGHUPVOVLEVNVRHUQURJVDABDEFGIJUSRVLEVSVMHVLVNVRVMDFGU
      TVLVQVMMZCVMPZVRVMMVLWCCVMVJVKWAWCDFGVPVASTWDVRCVMVMOVMCVMVQVMVBCVMVMVCVE
      VFVGVHVI $.
  $}

  ${
    $d A y $.  $d R y $.  $d X y $.  $d Y y $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1152 $p |- ( Y e. _pred ( X , A , R ) <-> ( Y e. A /\ Y R X ) ) $=
      ( vy cv wbr c-bnj14 breq1 df-bnj14 elrab2 ) EFZCBGDCBGEDAABCHLDCBIEABCJK
      $.
  $}

  ${
    $d A b x y $.  $d B b x y $.  $d R b x y $.
    $( Property of ` Fr ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj1154 $p |- ( ( R Fr A /\ B C_ A /\ B =/= (/) /\ B e. _V ) -> E. x e. B
        A. y e. B -. y R x ) $=
      ( vb wfr wss c0 wne cvv wcel w-bnj17 w3a cv wbr wn wral wrex wi bnj658 wa
      wceq wex elisset bnj708 wal df-fr biimpi 19.21bi 3impib sseq1 neeq1 raleq
      3anbi23d rexeqbi1dv imbi12d mpbii bnj593 bnj937 mpd ) CEGZDCHZDIJZDKLZMZV
      BVCVDNZBOAOEPQZBDRZADSZVBVCVDVEUAVFVGVJTZFVFFOZDUCZVKFVBVCVDVEVMFUDFDKUEU
      FVMVBVLCHZVLIJZNZVHBVLRZAVLSZTVKVBVNVOVRVBVNVOUBVRTZFVBVSFUGFABCEUHUIUJUK
      VMVPVGVRVJVMVNVCVOVDVBVLDCULVLDIUMUOVQVIAVLDVHBVLDUNUPUQURUSUTVA $.
  $}

  ${
    bnj1171.13 $e |- ( ( ph /\ ps ) -> B C_ A ) $.
    bnj1171.129 $e |- E. z A. w ( ( ph /\ ps ) -> ( z e. B /\ ( w e. A -> ( w R
        z -> -. w e. B ) ) ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1171 $p |- E. z A. w ( ( ph /\ ps ) -> ( z e. B /\ ( w e. B -> -. w R z
        ) ) ) $=
      ( wa cv wcel wbr wn wi wal wex sseld pm4.71rd imbi1d impexp syl6bb imbi2i
      con2b syl6bbr anbi2d pm5.74i albii exbii mpbir ) ABJZCKZFLZDKZFLZUNULGMZN
      ZOZJZOZDPZCQUKUMUNELZUPUONOZOZJZOZDPZCQIVAVGCUTVFDUKUSVEUKURVDUMUKURVBURO
      ZVDUKURVBUOJZUQOVHUKUOVIUQUKUOVBUKFEUNHRSTVBUOUQUAUBVCURVBUPUOUDUCUEUFUGU
      HUIUJ $.
  $}

  ${
    bnj1172.3 $e |- C = ( _trCl ( X , A , R ) i^i B ) $.
    bnj1172.96 $e |- E. z A. w ( ( ph /\ ps ) -> ( ( ph /\ ps /\ z e. C ) /\ (
        th -> ( w R z -> -. w e. B ) ) ) ) $.
    bnj1172.113 $e |- ( ( ph /\ ps /\ z e. C ) -> ( th <-> w e. A ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1172 $p |- E. z A. w ( ( ph /\ ps ) -> ( z e. B /\ ( w e. A -> ( w R z
        -> -. w e. B ) ) ) ) $=
      ( wa cv wcel w3a wi wal wex wbr wn imbi1d pm5.32i imbi2i albii exbii mpbi
      c-bnj18 cin simp3 syl6eleq elin2d anim1i imim2i alimi bnj101 ) ABNZABDOZH
      PZQZEOZFPZVBUSIUAVBGPUBRZRZNZRZESZURUSGPZVENZRZESDURVACVDRZNZRZESZDTVHDTL
      VOVHDVNVGEVMVFURVAVLVEVACVCVDMUCUDUEUFUGUHVGVKEVFVJURVAVIVEVAFIJUIZGUSVAU
      SHVPGUJABUTUKKULUMUNUOUPUQ $.
  $}

  ${
    bnj1173.3 $e |- C = ( _trCl ( X , A , R ) i^i B ) $.
    bnj1173.5 $e |- ( th <-> ( ( R _FrSe A /\ X e. A /\ z e. _trCl ( X , A , R
        ) ) /\ ( R _FrSe A /\ z e. A ) /\ w e. A ) ) $.
    bnj1173.9 $e |- ( ( ph /\ ps ) -> R _FrSe A ) $.
    bnj1173.17 $e |- ( ( ph /\ ps ) -> X e. A ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1173 $p |- ( ( ph /\ ps /\ z e. C ) -> ( th <-> w e. A ) ) $=
      ( cv wcel w3a w-bnj15 wa 3adant3 c-bnj18 3simpc cin elin simplbi 3ad2ant3
      wi eleq2s pm3.21 syl3anc bnj170 syl6ibr impbid2 bnj1147 bnj1213 biantrurd
      syl5bb jca bitr4d ) ABDOZHPZQZCFIRZUTFPZSZEOFPZSZVFCVCJFPZUTFIJUAZPZQZVEV
      FQZVBVGLVBVLVGVKVEVFUBVBVGVGVKSZVLVBVCVHVJVGVMUGABVCVAMTZABVHVANTVAAVJBVJ
      UTVIGUCZHUTVOPVJUTGPUTVIGUDUEKUHUFZVKVGUIUJVKVEVFUKULUMUQVBVEVFVBVCVDVNVB
      DVIFFIJUNVPUOURUPUS $.
  $}

  ${
    bnj1174.3 $e |- C = ( _trCl ( X , A , R ) i^i B ) $.
    bnj1174.59 $e |- E. z A. w ( ( ph /\ ps ) -> ( z e. C /\ ( th -> ( w R z ->
        -. w e. C ) ) ) ) $.
    bnj1174.74 $e |- ( th -> ( w R z -> w e. _trCl ( X , A , R ) ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1174 $p |- E. z A. w ( ( ph /\ ps ) -> ( ( ph /\ ps /\ z e. C ) /\ ( th
        -> ( w R z -> -. w e. B ) ) ) ) $=
      ( wa cv wcel wn wi wal wex wbr w-bnj17 w3a c-bnj18 eleq2i notbii wo ianor
      cin elin pm4.62 3bitr4i biimpi impcom sylan2b ex syl6 a2d biantru 3bitr2i
      df-3an 3anass imbi2i albii exbii pm3.35 anim2i imim2i alimi bnj101 bnj256
      mpbi imdi ancl syl6ibr df-bnj17 ) ABNZABDOZHPZCEOZVRIUAZVTGPZQZRZRZUBZRZE
      SZDTVQABVSUCWENZRZESZDTVQVSWENZRZESZWHDVQVSCWAVTHPZQZRZRZCWQWDRRZNZNZRZES
      ZWNDVQVSWRNZRZESZDTXCDTLXFXCDXEXBEXDXAVQXDXDWSNVSWRWSUCXAWSXDCWAWPWCCWAVT
      FIJUDZPZWPWCRMXHWPWCWPXHVTXGGUIZPZQZWCWOXJHXIVTKUEUFXKXHWCXKXHWCRZXHWBNZQ
      XHQWCUGXKXLXHWBUHXJXMVTXGGUJUFXHWBUKULUMUNUOUPUQURUSVSWRWSVAVSWRWSVBUTVCV
      DVEVLXBWMEXAWLVQWTWEVSWSWRWRWERWECWQWDVMWRWEVFUOVGVHVIVJWMWGEWMVQVQWLNWFV
      QWLVNABVSWEVKVOVIVJWHWKDWGWJEWFWIVQABVSWEVPVCVDVEVL $.
  $}

  ${
    bnj1175.3 $e |- C = ( _trCl ( X , A , R ) i^i B ) $.
    bnj1175.4 $e |- ( ch <-> ( ( R _FrSe A /\ X e. A /\ z e. _trCl ( X , A , R
        ) ) /\ ( R _FrSe A /\ z e. A ) /\ ( w e. A /\ w R z ) ) ) $.
    bnj1175.5 $e |- ( th <-> ( ( R _FrSe A /\ X e. A /\ z e. _trCl ( X , A , R
        ) ) /\ ( R _FrSe A /\ z e. A ) /\ w e. A ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1175 $p |- ( th -> ( w R z -> w e. _trCl ( X , A , R ) ) ) $=
      ( cv wbr c-bnj18 wcel wa w3a wss sseldd w-bnj15 w-bnj17 bnj255 3bitr2i ex
      anbi1i bitr4i bnj1125 bnj835 c-bnj14 bnj906 bnj836 bnj1152 biimpri bnj837
      df-bnj17 sylbir ) BDMZCMZHNZUREHIOZPZBUTQZAVBAEHUAZIEPUSVAPRZVDUSEPQZUREP
      ZRZUTQZVCAVEVFVGUTQZRVEVFVGUTUBVIKVEVFVGUTUCVEVFVGUTUPUDBVHUTLUFUGAEHUSOZ
      VAURVEVFVJVKVASAKEHIUSUHUIAEHUSUJZVKURVEVFVJVLVKSAKEHUSUKULVEVFVJURVLPZAK
      VMVJEHUSURUMUNUOTTUQUE $.
  $}

  ${
    $d C w $.  $d ph w z $.  $d ps w z $.
    bnj1176.51 $e |- ( ( ph /\ ps ) -> ( R Fr A /\ C C_ A /\ C =/= (/) /\ C e.
        _V ) ) $.
    bnj1176.52 $e |- ( ( R Fr A /\ C C_ A /\ C =/= (/) /\ C e. _V ) -> E. z e.
        C A. w e. C -. w R z ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1176 $p |- E. z A. w ( ( ph /\ ps ) ->
                            ( z e. C /\ ( th -> ( w R z -> -. w e. C ) ) ) ) $=
      ( wa cv wcel wn wi wal wex wrex sylib exbii wbr wfr wss c0 wne cvv df-ral
      wral w-bnj17 rexbii df-rex 19.28v sylibr 19.37v mpbir 19.21v con2b anbi2i
      syl imbi2i albii mpbi ax-1 anim2i imim2i alimi bnj101 ) ABKZDLZGMZELZVIHU
      AZVKGMZNOZKZOZEPZVHVJCVNOZKZOZEPDVHVJVMVLNZOZKZOZEPZDQZVQDQWFVHWCEPZOZDQZ
      WIVHWGDQZOVHVJWBEPZKZDQZWJVHWKDGRZWMVHWAEGUHZDGRZWNVHFHUBGFUCGUDUEGUFMUIW
      PIJUSWOWKDGWAEGUGUJSWKDGUKSWGWLDVJWBEULTUMVHWGDUNUOWEWHDVHWCEUPTUOWEVQDWD
      VPEWCVOVHWBVNVJVMVLUQURUTVATVBVPVTEVOVSVHVNVRVJVNCVCVDVEVFVG $.
  $}

  ${
    bnj1177.2 $e |- ( ps <-> ( X e. B /\ y e. B /\ y R X ) ) $.
    bnj1177.3 $e |- C = ( _trCl ( X , A , R ) i^i B ) $.
    bnj1177.9 $e |- ( ( ph /\ ps ) -> R _FrSe A ) $.
    bnj1177.13 $e |- ( ( ph /\ ps ) -> B C_ A ) $.
    bnj1177.17 $e |- ( ( ph /\ ps ) -> X e. A ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1177 $p |- ( ( ph /\ ps ) -> ( R Fr A /\ C C_ A /\ C =/= (/) /\ C e. _V
        ) ) $=
      ( wss c0 wne cvv wcel syl cin wa w-bnj15 w-bnj13 df-bnj15 simplbi c-bnj18
      wfr bnj1147 ssinss1 ax-mp eqsstri a1i cv c-bnj14 bnj906 syl2anc ssrin wbr
      simp2bi adantl sseldd simp3bi bnj1152 sylanbrc elind neeq1i sylibr bnj893
      ne0i inex1g syl5eqel bnj951 ) DGUGZFDNZFOPZFQRZABUAZVQDGUBZVMKVRVMDGUCDGU
      DUESVNVQFDGHUFZETZDJVSDNVTDNDGHUHVSEDUIUJUKULVQVTOPZVOVQCUMZVTRWAVQDGHUNZ
      ETZVTWBVQWCVSNZWDVTNVQVRHDRZWEKMDGHUOUPWCVSEUQSVQWCEWBVQWBDRWBHGURZWBWCRV
      QEDWBLBWBERZABHERZWHWGIUSUTZVABWGABWIWHWGIVBUTDGHWBVCVDWJVEVAVTWBVISFVTOJ
      VFVGVQVSQRZVPVQVRWFWKKMDGHVHUPWKFVTQJVSEQVJVKSVL $.
  $}

  ${
    $d B w $.  $d ph w z $.  $d ps w z $.
    bnj1186.1 $e |- E. z A. w ( ( ph /\ ps ) -> ( z e. B /\ ( w e. B -> -. w R
        z ) ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1186 $p |- ( ( ph /\ ps ) -> E. z e. B A. w e. B -. w R z ) $=
      ( wa cv wcel wbr wn wral wex wrex wi wal 19.21v exbii sylibr mpbi 19.37iv
      19.28v sylib df-ral anbi2i df-rex ) ABHZCIZEJZDIZUIFKLZDEMZHZCNZUMCEOUHUJ
      UKEJULPZDQZHZCNZUOUHUJUPHZDQZCNUSUHVACUHUTPDQZCNUHVAPZCNGVBVCCUHUTDRSUAUB
      VAURCUJUPDUCSUDUNURCUMUQUJULDEUEUFSTUMCEUGT $.
  $}

  ${
    $d B w x z v u $.  $d B x y z v u $.  $d R w x z v u $.  $d R x y z v u $.
    $d u v A $.  $d u v ph $.  $d u v ps $.
    bnj1190.1 $e |- ( ph <-> ( R _FrSe A /\ B C_ A /\ B =/= (/) ) ) $.
    bnj1190.2 $e |- ( ps <-> ( x e. B /\ y e. B /\ y R x ) ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1190 $p |- ( ( ph /\ ps ) -> E. w e. B A. z e. B -. z R w ) $=
      ( vu vv wa adantr cv wcel w3a simp1bi wbr wss w-bnj15 wne simp2bi c-bnj18
      c0 eqid ssel2 syl2an bnj1177 bnj1154 bnj1176 biid bnj1175 bnj1174 bnj1173
      cin bnj1172 bnj1171 bnj1186 bnj1185 ) ABNZFECDHIVBCDLMHIABLMHIABLMGHIAHGU
      AZBAGIUBZVCHUFUCZJUDZOZABVDCPZGQZLPZGIVHUEZQRZVDVJGQNZMPZGQZRZLMGHVKHUQZI
      VHVQUGZABVPLMGHVQIVHVRABVPLMGVQIABDGHVQIVHKVRAVDBAVDVCVEJSOZVGAVCVHHQZVIB
      VFBVTDPZHQWAVHITKSHGVHUHUIZUJLMGVQIUKULVLVMVOVNVJITNRZVPLMGHVQIVHVRWCUMVP
      UMZUNUOABVPLMGHVQIVHVRWDVSWBUPURUSUTVAVA $.
  $}

  ${
    $d B w x y z $.  $d R w x y z $.  $d ph x y $.
    bnj1189.1 $e |- ( ph <-> ( R _FrSe A /\ B C_ A /\ B =/= (/) ) ) $.
    bnj1189.2 $e |- ( ps <-> ( x e. B /\ y e. B /\ y R x ) ) $.
    bnj1189.3 $e |- ( ch <-> A. y e. B -. y R x ) $.
    $( Technical lemma for ~ bnj69 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1189 $p |- ( ph -> E. x e. B A. y e. B -. y R x ) $=
      ( vw vz cv wn wrex wex wa 19.42v w3a wbr wral wcel w-bnj15 wss wne biimpi
      c0 n0 bnj837 ancli sylibr wi 3simpc anbi2i sylib 19.8a df-rex 3comr simp1
      3expib simp2 rexnal bicomi xchnxbir notnotb rexbii bitr4i 3ad2ant3 3anass
      bnj1196 exbii bitri sylanbrc bnj1198 bnj1190 bnj593 bnj1185 pm2.61i nfre1
      syl bnj937 19.9 ) AENZDNZHUAZOZEGUBZDGPZDQWIAAWEGUCZRZWIDAAWJDQZRWKDQAWLF
      HUDGFUEGUHUFZWLAIWMWLDGUIUGUJUKAWJDSULCWKWIUMCAWJWIAWJCWIAWJCTZWJWHRZDQZW
      IWNWOWPWNWJCRWOAWJCUNCWHWJKUOUPWODUQWAWHDGURULUSVACOZAWJWIAWJWQWIAWJWQTZD
      ELMGHWRMNLNHUAOMGUBLGPZEWRABRZWSEWRABEQWTEQAWJWQUTWRWJWDGUCZWFTZEBWRWJXAW
      FRZEQZXBEQZAWJWQVBWQAXDWJWQWFEGWQWFEGPZWQWGOZEGPZXFWHXHCXHWHOWGEGVCVDKVEW
      FXGEGWFVFVGVHUGVKVIXEWJXCRZEQWJXDRXBXIEWJXAWFVJVLWJXCESVMVNJVOABESVNABDEM
      LFGHIJVPVQWBVRUSVAVSVQWIDWHDGVTWCUP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The existence of a minimal element in certain classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x y $.  $d B x y $.  $d R x y $.
    $( Existence of a minimal element in certain classes: if ` R ` is
       well-founded and set-like on ` A ` , then every nonempty subclass of
       ` A ` has a minimal element.  The proof has been taken from Chapter 4 of
       Don Monk's notes on Set Theory.  See
       ~ http://euclid.colorado.edu/~~monkd/setth.pdf .  (Contributed by
       Jonathan Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    bnj69 $p |- ( ( R _FrSe A /\ B C_ A /\ B =/= (/) ) -> E. x e. B A. y e. B
        -. y R x ) $=
      ( w-bnj15 wss c0 wne w3a cv wcel wbr wn wral biid bnj1189 ) CEFDCGDHIJZAK
      ZDLBKZDLTSEMZJZUANBDOZABCDERPUBPUCPQ $.
  $}

  ${
    $d A y z $.  $d B w y z $.  $d R x y z $.  $d w x y z $.
    bnj1228.1 $e |- ( w e. B -> A. x w e. B ) $.
    $( Existence of a minimal element in certain classes: if ` R ` is
       well-founded and set-like on ` A ` , then every nonempty subclass of
       ` A ` has a minimal element.  The proof has been taken from Chapter 4 of
       Don Monk's notes on Set Theory.  See
       ~ http://euclid.colorado.edu/~~monkd/setth.pdf .  (Contributed by
       Jonathan Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1228 $p |- ( ( R _FrSe A /\ B C_ A /\ B =/= (/) ) -> E. x e. B A. y e. B
        -. y R x ) $=
      ( vz w-bnj15 wss cv wbr wn wral wrex wcel wa wex nfv df-rex wne w3a bnj69
      c0 nfcii nfcri nfral weq eleq1 breq2 notbid ralbidv anbi12d cbvex 3bitr4i
      nfan sylibr ) DFIEDJEUDUAUBBKZHKZFLZMZBENZHEOZURAKZFLZMZBENZAEOZHBDEFUCVD
      EPZVGQZARUSEPZVBQZHRVHVCVJVLAHVJHSVKVBAAHEACEGUEZUFVAABEVMVAASUGUPAHUHZVI
      VKVGVBVDUSEUIVNVFVABEVNVEUTVDUSURFUJUKULUMUNVGAETVBHETUOUQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Well-founded induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x y z $.  $d R x y z $.  $d ph y z $.
    bnj1204.1 $e |- ( ps <-> A. y e. A ( y R x -> [. y / x ]. ph ) ) $.
    $( Well-founded induction.  The proof has been taken from Chapter 4 of Don
       Monk's notes on Set Theory.  See
       ~ http://euclid.colorado.edu/~~monkd/setth.pdf .  (Contributed by
       Jonathan Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1204 $p |- ( ( R _FrSe A /\ A. x e. A ( ps -> ph ) )
        -> A. x e. A ph ) $=
      ( vz wi wral wa wn wrex w3a cv wcel simp1 simp3 sylibr wal w-bnj15 wbr c0
      crab wss wne ssrab2 a1i rabn0 nfrab1 bnj1228 syl3anc biid nfv nfra1 nfre1
      nfcrii nf3an nf5ri bnj1521 eqid bnj1212 wsbc bnj1211 con2b albii sylib sp
      simp2 sylc nfcv elrabsf cvv wb vex sbcng ax-mp anbi2i bitri notbii sylbb2
      imnan imp notnotrd syl2anc 3expa expcom expd ralrimi 3ad2ant3 syl3c rabid
      simp12 simprbi 3ad2ant2 bnj1304 bnj1224 dfral2 ) EFUAZBAIZCEJZKALZCEMZLAC
      EJWSXAXCWSXAXCNZXDCOZXBCEUDZPZDOZXEFUBZLZDXFJZNZACXKXDXLCXFXDWSXFEUEZXFUC
      UFZXKCXFMWSXAXCQXMXDXBCEUGUHXDXCXNWSXAXCRXBCEUISCDHEXFFCHXFXBCEUJUQUKULXL
      UMZXDCWSXAXCCWSCUNWTCEUOXBCEUPURUSUTXLXEEPZBXAAXBXDXLXKCEXFXFVAXOVBXKXDBX
      GXKXIACXHVCZIZDEJBXKXRDEXJDXFUOXKXHEPZXIXQXSXIKXKXQXSXIXKXQXSXIXKNZXHXFPZ
      LZXSXQXTXIYBIZDTZXIYBXTYAXJIZDTYDXTXJDXFXSXIXKRVDYEYCDYAXIVEVFVGXSXIXKVIY
      CDVHVJXSXIXKQYBXSKXQYBXSXQLZLZYBXSYFKZLXSYGIYAYHYAXSXBCXHVCZKYHXBCXHECEVK
      VLYIYFXSXHVMPYIYFVNDVOACXHVMVPVQVRVSVTXSYFWBWAWCWDWEWFWGWHWIGSWJWSXAXCXGX
      KWMXPBXANZXPWTIZCTXPBAYJWTCEXPBXARVDXPBXAQXPBXAVIYKCVHWKULXGXDXBXKXGXPXBX
      BCEWLWNWOWPWQACEWRS $.
  $}

  ${
    $d B f g $.  $d G f g $.  $d Y g $.  $d Z f $.  $d d f g $.  $d f g x $.
    bnj1234.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1234.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1234.4 $e |- Z = <. x , ( g |` _pred ( x , A , R ) ) >. $.
    bnj1234.5 $e |- D = { g | E. d e. B ( g Fn d /\ A. x e. d ( g ` x ) = ( G `
        Z ) ) } $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1234 $p |- C = D $=
      ( cv wfn cfv wceq wral wa wrex cab fneq1 fveq1 c-bnj14 cres reseq1 opeq2d
      cop 3eqtr4g fveq2d eqeq12d ralbidv anbi12d rexbidv cbvabv 3eqtr4i ) GQZLQ
      ZRZAQZUTSZJISZTZAVAUAZUBZLCUCZGUDHQZVARZVCVJSZKISZTZAVAUAZUBZLCUCZHUDDEVI
      VQGHUTVJTZVHVPLCVRVBVKVGVOVAUTVJUEVRVFVNAVAVRVDVLVEVMVCUTVJUFVRJKIVRVCUTB
      FVCUGZUHZUKVCVJVSUHZUKJKVRVTWAVCUTVJVSUIUJMOULUMUNUOUPUQURNPUS $.
  $}

  ${
    $d A d $.  $d B f h $.  $d G f h $.  $d Y h $.  $d Z f $.  $d d f h $.
    $d f h x $.
    bnj1245.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1245.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1245.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1245.4 $e |- D = ( dom g i^i dom h ) $.
    bnj1245.5 $e |- E = { x e. D | ( g ` x ) =/= ( h ` x ) } $.
    bnj1245.6 $e |- ( ph <-> ( R _FrSe A /\ g e. C /\ h e. C /\ ( g |` D ) =/=
        ( h |` D ) ) ) $.
    bnj1245.7 $e |- ( ps <-> ( ph /\ x e. E /\ A. y e. E -. y R x ) ) $.
    bnj1245.8 $e |- Z = <. x , ( h |` _pred ( x , A , R ) ) >. $.
    bnj1245.9 $e |- K = { h | E. d e. B ( h Fn d /\ A. x e. d ( h ` x ) = ( G `
        Z ) ) } $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1245 $p |- ( ph -> dom h C_ A ) $=
      ( cv wcel cdm wss w-bnj15 cres wne bnj1247 bnj1234 syl6eleq wfn wceq wral
      wa wrex abeq2i bnj1238 bnj1196 c-bnj14 simplbi fndm bnj1241 bnj593 bnj937
      cfv syl ) ALUHZOUIZVNUJZEUKZAVNGOAEIULKUHZGUIVNGUIVRHUMVNHUMUNUDUOCEFGOIJ
      LNPQRTUAUFUGUPUQVOVQRVORUHZFUIZVNVSURZVAVQRVOWARFVOWACUHZVNVLQNVLUSCVSUTZ
      RFWAWCVARFVBLOUGVCVDVEVTWAVSEVPVTVSEUKZEIWBVFVSUKCVSUTZWDWEVARFSVCVGVSVNV
      HVIVJVKVM $.
  $}

  ${
    $d A f $.  $d B f g $.  $d G f g $.  $d R f $.  $d Y g $.  $d d f g $.
    $d f g x $.
    bnj1256.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1256.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1256.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1256.4 $e |- D = ( dom g i^i dom h ) $.
    bnj1256.5 $e |- E = { x e. D | ( g ` x ) =/= ( h ` x ) } $.
    bnj1256.6 $e |- ( ph <-> ( R _FrSe A /\ g e. C /\ h e. C /\ ( g |` D ) =/=
        ( h |` D ) ) ) $.
    bnj1256.7 $e |- ( ps <-> ( ph /\ x e. E /\ A. y e. E -. y R x ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1256 $p |- ( ph -> E. d e. B g Fn d ) $=
      ( w-bnj15 cv wcel cres wne wfn wrex cfv c-bnj14 cop wceq wral wa cab abid
      bnj1238 eqid bnj1234 eleq2s bnj770 ) EIUDKUEZGUFLUEZGUFVDHUGVEHUGUHVDPUEZ
      UIZPFUJZAUBVHVDVGCUEZVDUKVIVDEIVIULUGUMZNUKUNCVFUOZUPPFUJZKUQZGVDVMUFVGVK
      PFVLKURUSCEFGVMIJKNOVJPRSVJUTVMUTVAVBVC $.
  $}

  ${
    $d A f $.  $d B f h $.  $d G f h $.  $d R f $.  $d Y h $.  $d d f h $.
    $d f h x $.
    bnj1259.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1259.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1259.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1259.4 $e |- D = ( dom g i^i dom h ) $.
    bnj1259.5 $e |- E = { x e. D | ( g ` x ) =/= ( h ` x ) } $.
    bnj1259.6 $e |- ( ph <-> ( R _FrSe A /\ g e. C /\ h e. C /\ ( g |` D ) =/=
        ( h |` D ) ) ) $.
    bnj1259.7 $e |- ( ps <-> ( ph /\ x e. E /\ A. y e. E -. y R x ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1259 $p |- ( ph -> E. d e. B h Fn d ) $=
      ( w-bnj15 cv wcel cres wne wfn wrex cfv c-bnj14 cop wceq wral wa cab abid
      bnj1238 eqid bnj1234 eleq2s bnj771 ) EIUDKUEZGUFLUEZGUFVDHUGVEHUGUHVEPUEZ
      UIZPFUJZAUBVHVEVGCUEZVEUKVIVEEIVIULUGUMZNUKUNCVFUOZUPPFUJZLUQZGVEVMUFVGVK
      PFVLLURUSCEFGVMIJLNOVJPRSVJUTVMUTVAVBVC $.
  $}

  ${
    $d A f $.  $d B f g $.  $d B f h $.  $d D d $.  $d D x $.  $d G f g $.
    $d G f h $.  $d R f $.  $d Y g $.  $d Y h $.  $d d f g $.  $d d f h $.
    $d f g x $.  $d h x $.
    bnj1253.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1253.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1253.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1253.4 $e |- D = ( dom g i^i dom h ) $.
    bnj1253.5 $e |- E = { x e. D | ( g ` x ) =/= ( h ` x ) } $.
    bnj1253.6 $e |- ( ph <-> ( R _FrSe A /\ g e. C /\ h e. C /\ ( g |` D ) =/=
        ( h |` D ) ) ) $.
    bnj1253.7 $e |- ( ps <-> ( ph /\ x e. E /\ A. y e. E -. y R x ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1253 $p |- ( ph -> E =/= (/) ) $=
      ( cv cfv wne wrex c0 cres w-bnj15 wcel bnj1254 wceq wi wal wn wral wfn wb
      bnj1256 wss cdm bnj1292 fndm syl5sseq fnssres mpdan bnj31 bnj1265 bnj1259
      bnj1293 wa ssid fvreseq mpan2 syl2anc residm eqeq12i df-ral 3bitr3g fvres
      eqeq12d pm5.74i albii syl6bb necon3abid df-rex pm4.61 df-ne anbi2i bitr4i
      wex exbii exnal 3bitr2ri mpbid crab neeq1i rabn0 bitri sylibr ) ACUDZKUDZ
      UEZXBLUDZUEZUFZCHUGZMUHUFZAXCHUIZXEHUIZUFZXHAEIUJXCGUKXEGUKXLUBULAXLXBHUK
      ZXDXFUMZUNZCUOZUPZXHAXPXJXKAXJXKUMZXMXBXJUEZXBXKUEZUMZUNZCUOZXPAXJHUIZXKH
      UIZUMZYACHUQZXRYCAXJHURZXKHURZYFYGUSZAYHPFAXCPUDZURZYHPFABCDEFGHIJKLMNOPQ
      RSTUAUBUCUTYLHYKVAZYHYLXCVBZHYKHYNXEVBZTVCYKXCVDVEYKHXCVFVGVHVIAYIPFAXEYK
      URZYIPFABCDEFGHIJKLMNOPQRSTUAUBUCVJYPYMYIYPYOHYKHYNYOTVKYKXEVDVEYKHXEVFVG
      VHVIYHYIVLHHVAYJHVMCHHXJXKVNVOVPYDXJYEXKXCHVQXEHVQVRYACHVSVTYBXOCXMYAXNXM
      XSXDXTXFXBHXCWAXBHXEWAWBWCWDWEWFXHXMXGVLZCWLXOUPZCWLXQXGCHWGYRYQCYRXMXNUP
      ZVLYQXMXNWHXGYSXMXDXFWIWJWKWMXOCWNWOWEWPXIXGCHWQZUHUFXHMYTUHUAWRXGCHWSWTX
      A $.
  $}

  ${
    $d A y $.  $d E y $.  $d R y $.  $d x y $.
    bnj1279.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1279.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1279.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1279.4 $e |- D = ( dom g i^i dom h ) $.
    bnj1279.5 $e |- E = { x e. D | ( g ` x ) =/= ( h ` x ) } $.
    bnj1279.6 $e |- ( ph <-> ( R _FrSe A /\ g e. C /\ h e. C /\ ( g |` D ) =/=
        ( h |` D ) ) ) $.
    bnj1279.7 $e |- ( ps <-> ( ph /\ x e. E /\ A. y e. E -. y R x ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1279 $p |- ( ( x e. E /\ A. y e. E -. y R x ) -> ( _pred ( x , A , R )
        i^i E ) = (/) ) $=
      ( cv wcel wbr wn wral wa c-bnj14 cin c0 wne wceq w3a wex elin exbii sylbb
      n0 df-bnj14 bnj1538 anim1i bnj593 3ad2ant3 nfv nfra1 nf3an bnj1275 simp12
      nf5ri simp2 simp3 bnj1294 bnj1304 bnj1224 nne sylib ) CUDZMUEZDUDZVSIUFZU
      GZDMUHZUIEIVSUJZMUKZULUMZUGWFULUNVTWDWGVTWDWGUOZWHWBWAMUEZUOZWBDWHWBWIDWG
      VTWBWIUIZDUPWDWGWAWEUEZWIUIZWKDWGWAWFUEZDUPWMDUPDWFUTWNWMDWAWEMUQURUSWLWB
      WIWBDWEEDEIVSVAVBVCVDVEWHDVTWDWGDVTDVFWCDMVGWGDVFVHVKVIWHWBWIVLWJWCDMVTWD
      WGWBWIVJWHWBWIVMVNVOVPWFULVQVR $.
  $}

  ${
    $d A d f $.  $d B f g $.  $d B f h $.  $d D x $.  $d G f g $.  $d G f h $.
    $d R d f $.  $d Y g $.  $d Y h $.  $d d f g x $.  $d d f h x $.
    bnj1286.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1286.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1286.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1286.4 $e |- D = ( dom g i^i dom h ) $.
    bnj1286.5 $e |- E = { x e. D | ( g ` x ) =/= ( h ` x ) } $.
    bnj1286.6 $e |- ( ph <-> ( R _FrSe A /\ g e. C /\ h e. C /\ ( g |` D ) =/=
        ( h |` D ) ) ) $.
    bnj1286.7 $e |- ( ps <-> ( ph /\ x e. E /\ A. y e. E -. y R x ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1286 $p |- ( ps -> _pred ( x , A , R ) C_ D ) $=
      ( cv c-bnj14 cdm cin wss wcel wbr wral wfn bnj1256 bnj1196 bnj1517 adantr
      wn wa wb wceq sseq2 raleqbi1dv syl adantl mpbird bnj593 bnj937 bnj835 cfv
      ssrab3 bnj1292 sstri sseli bnj836 bnj1294 bnj1259 bnj1293 ssind syl6sseqr
      fndm wne ) BEICUDZUEZKUDZUFZLUDZUFZUGHBWCWEWGBWCWEUHZCWEAWBMUIZDUDWBIUJUQ
      DMUKZWHCWEUKZBUCAWKPAPUDZFUIZWDWLULZURZWKPAWNPFABCDEFGHIJKLMNOPQRSTUAUBUC
      UMUNWOWKWCWLUHZCWLUKZWMWQWNWLEUHWQPFQUOZUPWNWKWQUSZWMWNWEWLUTWSWLWDVTWHWP
      CWEWLWEWLWCVAVBVCVDVEVFVGVHAWIWJWBWEUIBUCMWEWBMHWEWBWDVIWBWFVIWACHMUAVJZH
      WEWGTVKVLVMVNVOBWCWGUHZCWGAWIWJXACWGUKZBUCAXBPAWMWFWLULZURZXBPAXCPFABCDEF
      GHIJKLMNOPQRSTUAUBUCVPUNXDXBWQWMWQXCWRUPXCXBWQUSZWMXCWGWLUTXEWLWFVTXAWPCW
      GWLWGWLWCVAVBVCVDVEVFVGVHAWIWJWBWGUIBUCMWGWBMHWGWTHWEWGTVQVLVMVNVOVRTVS
      $.
  $}

  ${
    $d A d f $.  $d A z $.  $d B f g $.  $d B f h $.  $d D d x $.  $d D x z $.
    $d E z $.  $d G f g $.  $d G f h $.  $d R d f $.  $d R z $.  $d Y g $.
    $d Y h $.  $d d f g x $.  $d d f h x $.  $d g x z $.  $d h x z $.
    $d ps z $.
    bnj1280.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1280.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1280.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1280.4 $e |- D = ( dom g i^i dom h ) $.
    bnj1280.5 $e |- E = { x e. D | ( g ` x ) =/= ( h ` x ) } $.
    bnj1280.6 $e |- ( ph <-> ( R _FrSe A /\ g e. C /\ h e. C /\ ( g |` D ) =/=
        ( h |` D ) ) ) $.
    bnj1280.7 $e |- ( ps <-> ( ph /\ x e. E /\ A. y e. E -. y R x ) ) $.
    bnj1280.17 $e |- ( ps -> ( _pred ( x , A , R ) i^i E ) = (/) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1280 $p |- ( ps -> ( g |` _pred ( x , A , R ) ) = ( h |` _pred ( x , A ,
        R ) ) ) $=
      ( vz cv c-bnj14 cres wceq cfv wral wcel wa bnj1286 sseld wn wi cin c0 wal
      disj1 sylib 19.21bi wne fveq2 neeq12d elrab2 notbii imbi2i 3bitr2i syl6ib
      imnan nne mpdd imp syl6 3eqtr4d ralrimiva resabs1d eqeq12d wfn wss wb wbr
      fvres bnj1256 cdm bnj1292 fndm fnssres mpdan bnj31 bnj1265 bnj835 bnj1259
      syl5sseq bnj1293 fvreseq syl21anc bitr3d mpbird ) BKUFZEICUFZUGZUHZLUFZXD
      UHZUIZUEUFZXBHUHZUJZXIXFHUHZUJZUIZUEXDUKZBXNUEXDBXIXDULZUMXIXBUJZXIXFUJZX
      KXMBXPXQXRUIZBXPXIHULZXSBXDHXIABCDEFGHIJKLMNOPQRSTUAUBUCUNZUOZBXPXIMULZUP
      ZXTXSUQZBXPYDUQZUEBXDMURUSUIYFUEUTUDUEXDMVAVBVCYDXTXQXRVDZUMZUPXTYGUPZUQY
      EYCYHXCXBUJZXCXFUJZVDYGCXIHMXCXIUIYJXQYKXRXCXIXBVEXCXIXFVEVFUAVGVHXTYGVLY
      IXSXTXQXRVMVIVJVKVNVOBXPXKXQUIZBXPXTYLYBXIHXBWEVPVOBXPXMXRUIZBXPXTYMYBXIH
      XFWEVPVOVQVRBXJXDUHZXLXDUHZUIZXHXOBYNXEYOXGBXBXDHYAVSBXFXDHYAVSVTBXJHWAZX
      LHWAZXDHWBYPXOWCAXCMULZDUFXCIWDUPDMUKZYQBUCAYQPFAXBPUFZWAZYQPFABCDEFGHIJK
      LMNOPQRSTUAUBUCWFUUBHUUAWBZYQUUBXBWGZHUUAHUUDXFWGZTWHUUAXBWIWPUUAHXBWJWKW
      LWMWNAYSYTYRBUCAYRPFAXFUUAWAZYRPFABCDEFGHIJKLMNOPQRSTUAUBUCWOUUFUUCYRUUFU
      UEHUUAHUUDUUETWQUUAXFWIWPUUAHXFWJWKWLWMWNYAUEHXDXJXLWRWSWTXA $.
  $}

  ${
    $d B f g $.  $d B f h $.  $d D x $.  $d G d f g $.  $d G d f h $.
    $d W d f $.  $d Y g $.  $d Y h $.  $d Z d f $.  $d d f g x $.  $d h x $.
    bnj1296.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1296.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1296.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1296.4 $e |- D = ( dom g i^i dom h ) $.
    bnj1296.5 $e |- E = { x e. D | ( g ` x ) =/= ( h ` x ) } $.
    bnj1296.6 $e |- ( ph <-> ( R _FrSe A /\ g e. C /\ h e. C /\ ( g |` D ) =/=
        ( h |` D ) ) ) $.
    bnj1296.7 $e |- ( ps <-> ( ph /\ x e. E /\ A. y e. E -. y R x ) ) $.
    bnj1296.18 $e |- ( ps -> ( g |` _pred ( x , A , R ) ) = ( h |` _pred ( x ,
        A , R ) ) ) $.
    bnj1296.9 $e |- Z = <. x , ( g |` _pred ( x , A , R ) ) >. $.
    bnj1296.10 $e |- K = { g | E. d e. B ( g Fn d /\ A. x e. d ( g ` x ) = ( G
        ` Z ) ) } $.
    bnj1296.11 $e |- W = <. x , ( h |` _pred ( x , A , R ) ) >. $.
    bnj1296.12 $e |- L = { h | E. d e. B ( h Fn d /\ A. x e. d ( h ` x ) = ( G
        ` W ) ) } $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1296 $p |- ( ps -> ( g ` x ) = ( h ` x ) ) $=
      ( cfv cv c-bnj14 cres cop opeq2d 3eqtr4g fveq2d wceq cdm wcel wbr wn wral
      w-bnj15 wne wa wrex bnj1436 fndm anim1i bnj31 raleq pm5.32i rexbii sylibr
      simpr bnj1265 bnj1234 eleq2s bnj770 bnj835 bnj1292 bnj1212 bnj1213 bnj771
      wfn bnj1294 bnj1293 3eqtr4d ) BSNUMZQNUMZCUNZKUNZUMZWOLUNZUMZBSQNBWOWPEIW
      OUOZUPZUQWOWRWTUPZUQSQBXAXBWOUHURUIUKUSUTBWQWMVAZCWPVBZAWOMVCZDUNWOIVDVED
      MVFZXCCXDVFZBUGEIVGZWPGVCZWRGVCZWPHUPWRHUPVHZXGAUFXGWPOGWPOVCZXGTFXLXDTUN
      ZVAZXGVIZXGTFXLXNXCCXMVFZVIZTFVJXOTFVJXLWPXMWIZXPVIZXQTFXSTFVJKOUJVKXRXNX
      PXMWPVLVMVNXOXQTFXNXGXPXCCXDXMVOVPVQVRXNXGVSVNVTCEFGOIJKNRSTUBUCUIUJWAWBW
      CWDBCHXDHXDWRVBZUDWEWQWSVHABXFCHMUEUGWFZWGWJBWSWNVAZCXTAXEXFYBCXTVFZBUGXH
      XIXJXKYCAUFYCWRPGWRPVCZYCTFYDXTXMVAZYCVIZYCTFYDYEYBCXMVFZVIZTFVJYFTFVJYDW
      RXMWIZYGVIZYHTFYJTFVJLPULVKYIYEYGXMWRVLVMVNYFYHTFYEYCYGYBCXTXMVOVPVQVRYEY
      CVSVNVTCEFGPIJLNRQTUBUCUKULWAWBWHWDBCHXTHXDXTUDWKYAWGWJWL $.
  $}

  ${
    $d A x $.  $d d x $.  $d w x $.
    bnj1309.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1309 $p |- ( w e. B -> A. x w e. B ) $=
      ( cv wss c-bnj14 wral wa cab hbra1 bnj1352 hbab hbxfreq ) ABDFHZCIZCEAHJR
      IZARKZLZFMGUBAFBSUAATARNOPQ $.
  $}

  ${
    $d B w $.  $d d w x $.  $d f x $.
    bnj1307.1 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1307.2 $e |- ( w e. B -> A. x w e. B ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1307 $p |- ( w e. C -> A. x w e. C ) $=
      ( cv wfn cfv wceq wral wa wrex cab nfcii nfv nfra1 nfan nfrex nfab nfcxfr
      nfcrii ) ABDADEKZHKZLZAKUGMGFMNZAUHOZPZHCQZERIUMAEULAHCABCJSUIUKAUIATUJAU
      HUAUBUCUDUEUF $.
  $}

  ${
    $d A d f x w z $.  $d A x y $.  $d B f g w z $.  $d B f h z $.  $d D d x $.
    $d D x y w z $.  $d G d f g $.  $d G d f h $.  $d R d f x $.  $d R x y $.
    $d Y g $.  $d Y h $.  $d g x y $.  $d h x y $.  $d w C $.
    bnj1311.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1311.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1311.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1311.4 $e |- D = ( dom g i^i dom h ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1311 $p |- ( ( R _FrSe A /\ g e. C /\ h e. C ) -> ( g |` D ) = ( h |` D
        ) ) $=
      ( vy cv wcel wceq vz vw w-bnj15 w3a cres wne wn w-bnj17 cfv crab wbr wral
      wa wss c0 wrex bnj1232 ssrab2 cdm cin wfn c-bnj14 cop cab bnj1235 bnj1234
      biid eqid syl6eleq abid bnj1238 bnj1196 abeq2i simplbi fndm bnj593 bnj937
      bnj1241 ssinss1 3syl syl5ss bnj1253 nfrab1 nfcrii bnj1228 syl3anc bnj1309
      syl5eqss ax-5 bnj1307 hblem bnj1521 simp2 bnj1279 3adant1 bnj1280 bnj1296
      bnj982 bnj1538 necon2bi syl bnj1304 df-bnj17 mtbi imnani nne sylib ) BFUC
      ZHRZDSZIRZDSZUDZXIEUEZXKEUEZUFZUGXNXOTXMXPXHXJXLXPUHZXMXPUMXQXQARZXRXIUIZ
      XRXKUIZUFZAEUJZSZQRXRFUKUGQYBULZUDZYCAYDXQYEAYBXQXHYBBUNYBUOUFYDAYBUPXQXH
      XJXLXPXQVGZUQXQYBEBYAAEURXQEXIUSZXKUSZUTZBPXQXIXILRZVAZXSXRXIBFXRVBZUEVCZ
      JUITAYJULZUMLCUPZHVDZSZYGBUNZYIBUNXQXIDYPXQXHXJXLXPYFVEABCDYPFGHJKYMLNOYM
      VHZYPVHZVFVIYQYRLYQYJCSZYKUMYRLYQYKLCYQYKYNLCYOHVJVKVLUUAYKYJBYGUUAYJBUNZ
      YLYJUNAYJULZUUBUUCUMLCMVMVNYJXIVOVRVPVQYGYHBVSVTWHWAXQYEAQBCDEFGHIYBJKLMN
      OPYBVHZYFYEVGZWBAQUABYBFAUAYBYAAEWCWDWEWFUUEXHXJXLXPAXHAWIAUBHDAUBCDGJKLO
      AUBBCFLMWGWJZWKAUBIDUUFWKXPAWIWRWLXQYCYDWMYEXSXTTYCUGXQYEAQBCDEFGHIYBJYPX
      KYJVAXTXRXKYLUEVCZJUITAYJULUMLCUPIVDZUUGKYMLMNOPUUDYFUUEXQYEAQBCDEFGHIYBJ
      KLMNOPUUDYFUUEYCYDYLYBUTUOTXQXQYEAQBCDEFGHIYBJKLMNOPUUDYFUUEWNWOWPYSYTUUG
      VHUUHVHWQYCXSXTYAAYBEUUDWSWTXAXBXHXJXLXPXCXDXEXNXOXFXG $.
  $}

  ${
    $d A f i n y z $.  $d R f i n y z $.  $d X f i n y z $.  $d Y f i n y z $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1318 $p |- ( X = Y -> _trCl ( X , A , R ) = _trCl ( Y , A , R ) ) $=
      ( vf vn vi vy vz wceq cv c0 cfv c-bnj14 ciun com w3a wrex biid eqid hbab1
      wfn csuc wcel wral csn cdif cab cdm c-bnj18 bnj602 eqeq2d 3anbi2d rexbidv
      wi abbidv bnj1316 syl bnj882 3eqtr4g ) CDJZEEKZFKZUBZLVBMZABCNZJZGKZUCZVC
      UDVIVBMHVHVBMZABHKNOJUOGPUEZQZFPLUFUGZRZEUHZGVBUIVJOZOZEVDVEABDNZJZVKQZFV
      MRZEUHZVPOZABCUJABDUJVAVOWBJVQWCJVAVNWAEVAVLVTFVMVAVGVSVDVKVAVFVRVEABCDUK
      ULUMUNUPEIVOWBVPVNEIUAWAEIUAUQURVGVKHAVOVMBEGFCVGSVKSZVMTZVOTUSVSVKHAWBVM
      BEGFDVSSWDWEWBTUSUT $.
  $}

  ${
    $d A d f p q x $.  $d B f p q $.  $d C p q $.  $d D q $.  $d G d f p q $.
    $d R d f p q x $.  $d Y p q $.  $d g p q $.  $d h q $.
    bnj1326.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1326.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1326.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1326.4 $e |- D = ( dom g i^i dom h ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1326 $p |- ( ( R _FrSe A /\ g e. C /\ h e. C ) -> ( g |` D ) = ( h |` D
        ) ) $=
      ( cv wcel cres wceq vq vp w-bnj15 w3a cdm wi eleq1 3anbi3d ineq2d reseq2d
      cin dmeq reseq2i syl6eqr reseq1 eqtrd eqeq12d imbi12d 3anbi2d ineq1d eqid
      bnj1311 chvarv ) BFUCZHQZDRZUAQZDRZUDZVEVEUEZVGUEZUKZSZVGVLSZTZUFZVDVFIQZ
      DRZUDZVEESZVQESZTZUFUAIVGVQTZVIVSVOWBWCVHVRVDVFVGVQDUGUHWCVMVTVNWAWCVMVEV
      JVQUEZUKZSVTWCVLWEVEWCVKWDVJVGVQULUIZUJEWEVEPUMUNWCVNVQWESZWAWCVNVGWESWGW
      CVLWEVGWFUJVGVQWEUOUPEWEVQPUMUNUQURVDUBQZDRZVHUDZWHWHUEZVKUKZSZVGWLSZTZUF
      VPUBHWHVETZWJVIWOVOWPWIVFVDVHWHVEDUGUSWPWMVMWNVNWPWMWHVLSVMWPWLVLWHWPWKVJ
      VKWHVEULUTZUJWHVEVLUOUPWPWLVLVGWQUJUQURABCDWLFGUBUAJKLMNOWLVAVBVCVC $.
  $}

  ${
    $d A d f g x z $.  $d B f g z $.  $d z C $.  $d G d f g z $.
    $d R d f g x $.  $d Y g z $.  $d g ta $.
    bnj1321.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1321.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1321.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1321.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1321 $p |- ( ( R _FrSe A /\ E. f ta ) -> E! f ta ) $=
      ( vg vz wa cv wceq cres w-bnj15 wex wsb wi wal weu simpr w3a cdm cin wcel
      simp1 csn c-bnj18 cun simplbi 3ad2ant2 wfn cfv wral wrex cab nfab1 nfcxfr
      nfcri nfan eleq1 dmeq eqeq1d anbi12d syl5bb sbie 3ad2ant3 bnj1326 syl3anc
      nfv eqid simprbi eqtr4d bnj1322 reseq2d syl wrel releq bnj66 vtoclga 3syl
      resdm eqtrd eqeq2 mpbid 3eqtr3d 3expib alrimivv adantr eu2 sylanbrc ) CFU
      AZAGUBZQWSAAGOUCZQGRZORZSZUDZOUEGUEZAGUFWRWSUGWRXEWSWRXDGOWRAWTXCWRAWTUHZ
      XAXAUIZXBUIZUJZTZXBXITZXAXBXFWRXAEUKZXBEUKZXJXKSWRAWTULAWRXLWTAXLXGBRZUMC
      FXNUNUOZSZNUPUQZWTWRXMAWTXMXHXOSZAXMXRQZGOXMXRGGOEGEXAJRZURXNXAUSIHUSSBXT
      UTQJDVAZGVBMYAGVCVDVEXRGVPVFAXLXPQXCXSNXCXLXMXPXRXAXBEVGXCXGXHXOXAXBVHVIV
      JVKVLZUPVMZBCDEXIFGGOHIJKLMXIVQVNVOXFXJXAXGTZXAXFXGXHSZXJYDSXFXGXOXHAWRXP
      WTAXLXPNVRUQWTWRXRAWTXMXRYBVRVMVSZYEXIXGXAXGXHVTZWAWBXFXLXAWCZYDXASXQPRZW
      CYHPXAEYIXAWDBCDEFGPHIJKLMWEWFXAWHWGWIXFXKXBXHTZXBXFYEXKYJSYFYEXIXHXBYEXI
      XGSXIXHSYGXGXHXIWJWKWAWBXFXMXBWCYJXBSYCBCDEFGOHIJKLMWEXBWHWGWIWLWMWNWOAGO
      AOVPWPWQ $.
  $}

  $( Property of ` _FrSe ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
     (New usage is discouraged.) $)
  bnj1364 $p |- ( R _FrSe A -> R _Se A ) $=
    ( w-bnj15 wfr w-bnj13 df-bnj15 simprbi ) ABCABDABEABFG $.

  ${
    $d d f $.  $d f y $.
    bnj1371.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1371.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1371.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1371.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1371.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1371.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1371.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1371.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1371.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1371.10 $e |- P = U. H $.
    bnj1371.11 $e |- ( ta' <-> ( f e. C /\ dom f = ( { y } u. _trCl ( y , A , R
        ) ) ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1371 $p |- ( f e. H -> Fun f ) $=
      ( cv wcel wfun cdm csn c-bnj18 cun wceq wa wex c-bnj14 wrex bnj1436 rexex
      syl exbii sylib exsimpl wfn cfv abeq2i bnj1238 fnfun bnj31 bnj1265 bnj593
      wral bnj937 ) LUIZNUJZVQUKZEVRVQHUJZVSEVRVTVQULEUIZUMFKWAUNUOUPZUQZEURZVT
      EURVRQEURZWDVRQEFKDUIZUSZUTZWEWHLNUFVAQEWGVBVCQWCEUHVDVEVTWBEVFVCVTVSPGVT
      VQPUIZVGZVSPGVTWJWFVQVHOMVHUPDWIVOZPGWJWKUQPGUTLHTVIVJWIVQVKVLVMVNVP $.
  $}

  ${
    $d A x $.  $d B f $.  $d R x $.  $d d f x $.  $d x y $.
    bnj1373.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1373.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1373.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1373.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1373.5 $e |- ( ta' <-> [. y / x ]. ta ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1373 $p |- ( ta'
        <-> ( f e. C /\ dom f = ( { y } u. _trCl ( y , A , R ) ) ) ) $=
      ( cv wcel csn wsbc cdm c-bnj18 cun wceq wa cvv wb bnj1309 bnj1307 bnj1351
      vex nf5i sneq bnj1318 uneq12d eqeq2d anbi2d syl5bb sbciegf ax-mp bitri
      weq ) LABCRZUAZHRZFSZVFUBZVDTZDGVDUCZUDZUEZUFZQVDUGSVEVMUHCULAVMBVDUGVMBV
      GVLBBHEFHIJKOBHDEGKMUIUJUKUMAVGVHBRZTZDGVNUCZUDZUEZUFBCVCZVMPVSVRVLVGVSVQ
      VKVHVSVOVIVPVJVNVDUNDGVNVDUOUPUQURUSUTVAVB $.
  $}

  ${
    $d A x $.  $d B f $.  $d C y $.  $d R x $.  $d d f x $.  $d f x y $.
    bnj1374.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1374.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1374.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1374.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1374.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1374.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1374.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1374.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1374.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1374 $p |- ( f e. H -> f e. C ) $=
      ( cv wcel cdm csn c-bnj18 cun wceq wex c-bnj14 wrex bnj1436 rexex bnj1373
      wa syl exbii sylib exsimpl bnj937 ) KUFZMUGZVEHUGZEVFVGVEUHEUFZUIFJVHUJUK
      ULZUSZEUMZVGEUMVFPEUMZVKVFPEFJDUFUNZUOZVLVNKMUEUPPEVMUQUTPVJECDEFGHJKLNOP
      QRSTUDURVAVBVGVIEVCUTVD $.
  $}

  ${
    $d A d f x z $.  $d A f g $.  $d B f $.  $d C g $.  $d C y $.  $d G d f $.
    $d H g z $.  $d R d f x $.  $d R f g $.  $d f x y $.
    bnj1384.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1384.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1384.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1384.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1384.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1384.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1384.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1384.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1384.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1384.10 $e |- P = U. H $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1384 $p |- ( R _FrSe A -> Fun P ) $=
      ( vg vz w-bnj15 cuni wfun cv wral cdm cres wceq bnj1373 bnj1371 rgen wcel
      cin id bnj1374 wi c-bnj14 wrex cab nfab1 nfcxfr nfcri wfn wa nfim imbi12d
      cfv eleq1 chvar eqid bnj1326 syl3an 3expib ralrimivv biid bnj1317 bnj1386
      sylancr funeqi sylibr ) FKUJZNUKZULZJULWJLUMZULZLNUNZWMWMUOUHUMZUOVBZUPWP
      WQUPUQZUHNUNLNUNZWLWNLNABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGCDEFGHKLMOPQRSTU
      AUEURUSUTWJWRLUHNNWJWMNVAZWPNVAZWRWJWJWTWMHVAZXAWPHVAZWRWJVCABCDEFGHIKLMN
      OPQRSTUAUBUCUDUEUFVDZWTXBVEXAXCVELUHXAXCLLUHNLNQEFKDUMZVFVGZLVHUFXFLVIVJV
      KLUHHLHWMPUMZVLXEWMVPOMVPUQDXGUNVMPGVGZLVHTXHLVIVJVKVNWMWPUQWTXAXBXCWMWPN
      VQWMWPHVQVOXDVRDFGHWQKLLUHMOPRSTWQVSZVTWAWBWCWOWOWSVMZUINWQLUHWOWDXIXJWDX
      FLUINUFWEWFWGJWKUGWHWI $.
  $}

  ${
    $d A x y $.  $d B f $.  $d D y $.  $d R x y $.  $d d f x $.  $d f x y $.
    $d ps y $.  $d ta y $.
    bnj1388.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1388.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1388.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1388.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1388.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1388.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1388.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1388.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1388 $p |- ( ch -> A. y e. _pred ( x , A , R ) E. f ta' ) $=
      ( wex cv c-bnj14 wcel wbr wn w3a nfv nfra1 nf3an nfxfr wa bnj1152 simplbi
      wral adantl wi biimpi simprd simp3bi adantr wal df-ral con2b albii impcom
      sp sylan2b syl2anc crab eleq2i nfcv wsbc nfsbc1v nfex nfn sbceq1a syl6bbr
      bitri weq exbidv notbid elrabf sylnib iman sylibr mpd ex ralrimi ) BOKUDZ
      EFJDUEZUFZBAWNIUGZEUEZWNJUHZUIZEIURZUJEUBAWPWTEAEUKWPEUKWSEIULUMUNBWQWOUG
      ZWMBXAUOZWQFUGZWMXAXCBXAXCWRFJWNWQUPZUQUSXBXCWMUIZUOZUIXCWMUTXBWQIUGZXFXB
      WRWTXGUIZXBXCWRXAXCWRUOZBXAXIXDVAUSVBBWTXABAWPWTUBVCVDWTWRWRXHUTZEVEZXHWT
      XGWSUTZEVEXKWSEIVFXLXJEXGWRVGVHWBXKWRXHXJEVJVIVKVLXGWQCKUDZUIZDFVMZUGXFIX
      OWQTVNXNXEDWQFDWQVODFVOWMDODKOCDWQVPZDUCCDWQVQUNVRVSDEWCZXMWMXQCOKXQCXPOC
      DWQVTUCWAWDWEWFWBWGXCWMWHWIWJWKWL $.
  $}

  ${
    $d A f x y z $.  $d B f $.  $d C y $.  $d D w y $.  $d H w z $.
    $d P w z $.  $d R f x y z $.  $d ch z $.  $d d f x $.  $d f w x y z $.
    $d ps y $.  $d ta y $.
    bnj1398.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1398.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1398.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1398.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1398.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1398.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1398.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1398.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1398.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1398.10 $e |- P = U. H $.
    bnj1398.11 $e |- ( th <-> ( ch /\ z e. U_ y e. _pred ( x , A , R ) ( { y }
        u. _trCl ( y , A , R ) ) ) ) $.
    bnj1398.12 $e |- ( et <-> ( th /\ y e. _pred ( x , A , R ) /\ z e. ( { y }
        u. _trCl ( y , A , R ) ) ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1398 $p |- ( ch -> U_ y e. _pred ( x , A , R )
        ( { y } u. _trCl ( y , A , R ) ) = dom P ) $=
      ( vw cv c-bnj14 csn c-bnj18 cun ciun cdm wcel wa df-iun bnj1436 simplbiim
      wrex wbr wn wral w3a nfv nfra1 nf3an nfxfr nfiu1 nfcri nfan nf5ri bnj1521
      wex w-bnj15 wne crab nfe1 nfn nfcv nfrab nfcxfr nfne nfral simplbi bnj835
      c0 simp2bi bnj1388 rsp syl sylc bnj596 wceq bnj1373 adantl simprbi syl2an
      wi rspe abeq2i rexbii r19.42v 3bitri sylanbrc simp3bi adantr eleqtrrd jca
      bnj593 df-rex sylibr dmeqi bnj1317 bnj1400 eqtri eleq2i eliun bitri nfre1
      cuni cab nfab nfuni nfdm nfcrii bnj1397 sylbir ex ssrdv wss simpr biimpac
      eleq2 reximi syl2anc rexlimiva 3imtr4i ssriv a1i eqssd ) BGINFUNZUOZGUNZU
      PINUUJUQURZUSZMUTZBHUULUUMBHUNZUULVAZUUNUUMVAZBUUOVBZCUUPUKCUUPGCEUUPGUUN
      UUKVAZCEGUUICBUUOUURGUUIVFZUKUUSHUULGHUUIUUKVCVDVEULCGCUUQGUKBUUOGBAUUHLV
      AZUUJUUHNVGVHZGLVIZVJZGUGAUUTUVBGAGVKUUTGVKUVAGLVLVMVNGHUULGUUIUUKVOVPVQV
      NVRVSEUUNOUNZUTZVAZOQVFZUUPEUVDQVAZUVFVBZOVTUVGEETVBZUVIOETOEOECUUJUUIVAZ
      UURVJOULCUVKUUROCUUQOUKBUUOOBUVCOUGAUUTUVBOAINWAZLWMWBZVBOUFUVLUVMOUVLOVK
      OLWMOLDOVTZVHZFIWCUEUVOOFIUVNODOWDWEOIWFWGWHZOWMWFWIVQVNOFLUVPVPUVAOGLUVP
      UVAOVKWJVMVNUUOOVKVQVNUVKOVKUUROVKVMVNVREBUVKTOVTZCUVKUURBEULCBUUOUKWKWLE
      CUVKUURULWNZBUVQGUUIVIUVKUVQXEABDFGIJKLNOPRSTUAUBUCUDUEUFUGUHWOUVQGUUIWPW
      QWRWSUVJUVHUVFUVJUVDKVAZUVEUUKWTZGUUIVFZUVHTUVSETUVSUVTDFGIJKNOPRSTUAUBUC
      UDUHXAZWKXBEUVKUVTUWATUVRTUVSUVTUWBXCZUVTGUUIXFXDUVHTGUUIVFZUVSUVTVBZGUUI
      VFUVSUWAVBUWDOQUIXGTUWEGUUIUWBXHUVSUVTGUUIXIXJZXKUVJUUNUUKUVEEUURTECUVKUU
      RULXLXMTUVTEUWCXBXNXOXPUVFOQXQXRUUPUUNOQUVEUSZVAUVGUUMUWGUUNUUMQYGZUTUWGM
      UWHUJXSOUMQUWDOUMQUIXTYAYBYCOUUNQUVEYDYEZXRXPGHUUMGMGMUWHUJGQGQUWDOYHUIUW
      DGOTGUUIYFYIWHYJWHYKYLYMYNYOYPUUMUULYQBHUUMUULUVGUUSUUPUUOUVFUUSOQUVIUVFU
      WAUUSUVHUVFYRUVHUWAUVFUVHUVSUWAUWFXCXMUVFUWAVBUVFUVTVBZGUUIVFUUSUVFUVTGUU
      IXIUWJUURGUUIUVTUVFUURUVEUUKUUNYTYSUUAYNUUBUUCUWIGUUNUUIUUKYDUUDUUEUUFUUG
      $.
  $}

  ${
    $d A y $.  $d R y $.  $d X y $.
    bnj1413.1 $e |- B = ( _pred ( X , A , R ) u. U_ y e. _pred ( X , A , R )
        _trCl ( y , A , R ) ) $.
    $( Property of ` _trCl ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj1413 $p |- ( ( R _FrSe A /\ X e. A ) -> B e. _V ) $=
      ( w-bnj15 wcel wa c-bnj14 c-bnj18 cv ciun cun bnj1148 wral bnj893 syl2anc
      cvv wss w3a bnj1127 3ad2ant3 3expia ralrimiv iunexg bnj1149 bnj906 iunss1
      simp1 unss2 3syl syl5eqss ssexd ) BDGZEBHZIZCBDEJZABDEKZBDALZKZMZNZSUQURV
      BBDEOUQUSSHVASHZAUSPVBSHBDEQUQVDAUSUOUPUTUSHZVDUOUPVEUAUOUTBHZVDUOUPVEUJV
      EUOVFUPBDEUTUBUCBDUTQRUDUEAUSVASSUFRUGUQCURAURVAMZNZVCFUQURUSTVGVBTVHVCTB
      DEUHAURUSVAUIVGVBURUKULUMUN $.
  $}

  ${
    $d A y z $.  $d z B $.  $d R y z $.  $d X y z $.
    bnj1408.1 $e |- B = ( _pred ( X , A , R ) u. U_ y e. _pred ( X , A , R )
        _trCl ( y , A , R ) ) $.
    bnj1408.2 $e |- C = ( _pred ( X , A , R ) u. U_ y e. _trCl ( X , A , R )
        _trCl ( y , A , R ) ) $.
    bnj1408.3 $e |- ( th <-> ( R _FrSe A /\ X e. A ) ) $.
    bnj1408.4 $e |- ( ta <-> ( B e. _V /\ _TrFo ( B , A , R ) /\ _pred ( X , A
        , R ) C_ B ) ) $.
    $( Technical lemma for ~ bnj1414 .  This lemma may no longer be used or
       have become an indirect lemma of the theorem in question (i.e. a lemma
       of a lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1408 $p |- ( ( R _FrSe A /\ X e. A ) -> _trCl ( X , A , R ) = B ) $=
      ( vz wcel wa c-bnj18 wss syl2anc sstrd biid w-bnj15 biimpri cvv wral ciun
      w-bnj19 c-bnj14 bnj1413 cv simplll bnj213 sseli adantl bnj906 bnj1318 cun
      ssiun2s ssun4 syl6sseqr syl w3a simpr bnj1405 nfv nfcv nfiu1 nfcxfr nfcri
      nf5ri bnj1521 3ad2ant1 bnj1147 simp3 bnj1213 simp2 bnj1125 syl3anc ssiun2
      nfun nfan 3ad2ant2 bnj593 nfss bnj1397 wo bnj1138 sylib mpjaodan df-bnj19
      ralrimiva sylibr bnj931 a1i syl3anbrc bnj1124 iunss1 3syl 3sstr4g bnj1136
      unss2 sseqtr4d eqssd ) DGUAZHDNZOZDGHPZEXEABXFEQAXEKUBXEEUCNDEGUFZDGHUGZE
      QZBCDEGHIUHXEDGMUIZUGZEQZMEUDXGXEXLMEXEXJENZOZXJXHNZXLXJCXHDGCUIZPZUEZNZX
      NXOOZXKDGXJPZEXTXCXJDNZXKYAQZXCXDXMXOUJXOYBXNXHDXJDGHUKZULUMDGXJUNZRXOYAE
      QZXNXOYAXRQZYFCXHXQXJYADGXPXJUOUQYGYAXHXRUPZEYAXRXHURIUSUTUMSXNXSOZXLCYIY
      IXPXHNZXJXQNZVAZXLCYKYIYLCXHYICXHXQXJXNXSVBVCYLTYICXNXSCXEXMCXECVDCMECEYH
      ICXHXRCXHVECXHXQVFZVSVGZVHVTCMXRYMVHVTVIVJYLXKXQEYLXKYAXQYLXCYBYCYIYJXCYK
      XCXDXMXSUJVKZYLMXQDDGXPVLYIYJYKVMZVNYERYLXCXPDNYKYAXQQYOYLCXHDYDYIYJYKVOV
      NYPDGXPXJVPVQSYLXQXRQZXQEQYJYIYQYKCXHXQVRWAYQXQYHEXQXRXHURIUSUTSWBXLCCXKE
      CXKVEYNWCVIWDXNXMXOXSWEXEXMVBEXHXRXJIWFWGWHWJMDEGWIWKXIXEEXHXRIWLWMLWNABD
      EGHKLWORXEEFXFXEYHXHCXFXQUEZUPZEFXEXHXFQXRYRQYHYSQDGHUNCXHXFXQWPXRYRXHWTW
      QIJWRXEFUCNDFGUFXHFQVAZCDFGHJXETYTTWSXAXB $.
  $}

  ${
    $d A y $.  $d R y $.  $d X y $.
    bnj1414.1 $e |- B = ( _pred ( X , A , R ) u. U_ y e. _pred ( X , A , R )
        _trCl ( y , A , R ) ) $.
    $( Property of ` _trCl ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj1414 $p |- ( ( R _FrSe A /\ X e. A ) -> _trCl ( X , A , R ) = B ) $=
      ( w-bnj15 wcel wa cvv w-bnj19 c-bnj14 wss w3a c-bnj18 ciun cun eqid biid
      cv bnj1408 ) BDGEBHIZCJHBCDKBDELZCMNZABCUCABDEOBDATOPQZDEFUERUBSUDSUA $.
  $}

  ${
    $d A f x y z $.  $d B f $.  $d C y $.  $d D y $.  $d z H $.  $d z P $.
    $d R f x y z $.  $d d f x $.  $d ps y $.  $d ta y $.  $d z ch $.
    bnj1415.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1415.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1415.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1415.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1415.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1415.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1415.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1415.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1415.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1415.10 $e |- P = U. H $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1415 $p |- ( ch -> dom P = _trCl ( x , A , R ) ) $=
      ( vz cv c-bnj18 c-bnj14 ciun cun cdm w-bnj15 wcel wceq wbr wn wral c0 wne
      simplbi bnj835 wex bnj1212 eqid bnj1414 syl2anc csn iunun iunid uneq1i wa
      eqtri w3a biid bnj1398 syl5eqr eqtr2d ) BFKDUIZUJZFKWAUKZEWCFKEUIZUJZULZU
      MZJUNZBFKUOZWAFUPWBWGUQAWAIUPWDWAKURUSEIUTZWIBUDAWIIVAVBUCVCVDCLVEUSABWJD
      FIUBUDVFEFWGKWAWGVGVHVIBWGEWCWDVJZWEUMZULZWHWMEWCWKULZWFUMWGEWCWKWEVKWNWC
      WFEWCVLVMVOABBUHUIZWMUPVNZCWPWDWCUPWOWLUPVPZDEUHFGHIJKLMNOPQRSTUAUBUCUDUE
      UFUGWPVQWQVQVRVSVT $.
  $}

  ${
    bnj1416.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1416.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1416.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1416.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1416.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1416.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1416.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1416.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1416.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1416.10 $e |- P = U. H $.
    bnj1416.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1416.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1416.28 $e |- ( ch -> dom P = _trCl ( x , A , R ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1416 $p |- ( ch -> dom Q = ( { x } u. _trCl ( x , A , R ) ) ) $=
      ( cdm csn cun c-bnj18 cfv cop dmeqi dmun fvex dmsnop uneq2i 3eqtri uneq1d
      cv uncom syl6eq syl5eq ) BKUMZJUMZDVFZUNZUOZVMFLVLUPZUOZVJJVLQNUQZURUNZUO
      ZUMVKVRUMZUOVNKVSUKUSJVRUTVTVMVKVLVQQNVAVBVCVDBVNVOVMUOVPBVKVOVMULVEVOVMV
      GVHVI $.
  $}

  ${
    $d A z $.  $d R z $.  $d x z $.  $d y z $.
    $( Property of ` _pred ` .  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)
       (New usage is discouraged.) $)
    bnj1418 $p |- ( y e. _pred ( x , A , R ) -> y R x ) $=
      ( vz cv wbr c-bnj14 breq1 df-bnj14 bnj1538 vtoclga ) EFZAFZDGZBFZNDGEPCDN
      HZMPNDIOEQCECDNJKL $.
  $}

  ${
    $d A x y $.  $d R x y $.  $d ph x y $.  $d ps y $.
    bnj1417.1 $e |- ( ph <-> R _FrSe A ) $.
    bnj1417.2 $e |- ( ps <-> -. x e. _trCl ( x , A , R ) ) $.
    bnj1417.3 $e |- ( ch <-> A. y e. A ( y R x -> [. y / x ]. ps ) ) $.
    bnj1417.4 $e |- ( th <-> ( ph /\ x e. A /\ ch ) ) $.
    bnj1417.5 $e |- B = ( _pred ( x , A , R ) u. U_ y e. _pred ( x , A , R )
        _trCl ( y , A , R ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Proof shortened by Mario Carneiro, 22-Dec-2016.)
       (New usage is discouraged.) $)
    bnj1417 $p |- ( ph -> A. x e. A -. x e. _trCl ( x , A , R ) ) $=
      ( wral cv wcel wn syl2anc sylib c-bnj18 w-bnj15 wi biimpi c-bnj14 ciun wo
      w3a wbr bnj1418 adantl bnj835 w-bnj13 df-bnj15 simplbi bnj213 sseli frirr
      wfr syl syl2an pm2.65da wrex nfv wsbc bnj1095 nf3an nfxfr wa wss ad2antrr
      simplr sseldi simpr bnj1125 syl3anc bnj1147 bnj906 sseldd bnj837 ad2antlr
      nf5i rsp syl3c vex eleq1 bnj1318 eleq2d bitrd notbid syl5bb sbcie ralrimi
      weq ex ralnex eliun sylnibr ioran sylanbrc simp2bi bnj1414 bnj1138 syl6bb
      wceq mtbird sylibr sylbir 3exp ralrimiv bnj1204 ralbii ) ABEGOZEPZGIXNUAZ
      QZRZEGOAGIUBZCBUCZEGOXMAXRJUDZAXSEGAXNGQZCBAYACUHZDBMDXQBDXPXNGIXNUEZQZXN
      FYCGIFPZUAZUFZQZUGZDYDRYHRYIRDYDXNXNIUIZYDYJDEEGIUJUKDGIUSZYAYJRYDDXRYKAY
      ACXRDMXTULZXRYKGIUMGIUNUOUTYCGXNGIXNUPZUQGXNIURVAVBDXNYFQZFYCVCZYHDYNRZFY
      COYORDYPFYCDYBFMAYACFAFVDYAFVDCFCYEXNIUIZBEYEVEZUCZFGLVFWBVGVHDYEYCQZYPDY
      TVIZYNYEYFQZUUAYNVIZXOYFYEUUCXRYEGQZYNXOYFVJDXRYTYNYLVKZUUCYCGYEYMDYTYNVL
      ZVMZUUAYNVNZGIYEXNVOVPUUCYCXOYEUUCXRYAYCXOVJUUEUUCYFGXNGIYEVQUUHVMGIXNVRS
      UUFVSVSUUCYRUUBRZUUCYSFGOZUUDYQYRDUUJYTYNAYACUUJDMCUUJLUDVTVKUUGYTYQDYNEF
      GIUJWAYSFGWCWDBUUIEYEFWEBXQEFWNZUUIKUUKXPUUBUUKXPYEXOQUUBXNYEXOWFUUKXOYFY
      EGIXNYEWGWHWIWJWKWLTVBWOWMYNFYCWPTFXNYCYFWQWRYDYHWSWTDXPXNHQYIDXOHXNDXRYA
      XOHXEYLDAYACMXAFGHIXNNXBSWHHYCYGXNNXCXDXFKXGXHXIXJBCEFGILXKSBXQEGKXLT $.
  $}

  ${
    $d A x z $.  $d R x z $.
    bnj1421.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1421.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1421.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1421.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1421.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1421.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1421.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1421.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1421.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1421.10 $e |- P = U. H $.
    bnj1421.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1421.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1421.13 $e |- ( ch -> Fun P ) $.
    bnj1421.14 $e |- ( ch -> dom Q = ( { x } u. _trCl ( x , A , R ) ) ) $.
    bnj1421.15 $e |- ( ch -> dom P = _trCl ( x , A , R ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1421 $p |- ( ch -> Fun Q ) $=
      ( vz cv cfv cop csn cun wfun wa cdm cin wceq vex fvex funsn jctir c-bnj18
      c0 dmsnop a1i ineq12d w-bnj15 wral wcel wbr wn wne simplbi bnj835 wsbc wi
      w3a c-bnj14 ciun biid eqid bnj1417 disjsn ralbii sylibr syl bnj1212 eqtrd
      wex bnj1294 funun syl2anc funeqi ) BJDUPZQNUQZURUSZUTZVAZKVABJVAZXDVAZVBJ
      VCZXDVCZVDZVKVEXFBXGXHULXBXCDVFQNVGZVHVIBXKFLXBVJZXBUSZVDZVKBXIXMXJXNUNXJ
      XNVEBXBXCXLVLVMVNBXOVKVEZDFBFLVOZXPDFVPZAXBIVQEUPXBLVRVSEIVPZXQBUFAXQIVKV
      TUEWAWBXQXBXMVQVSZDFVPXRXQXTUOUPZXBLVRXTDYAWCWDUOFVPZXQXBFVQYBWEZDUOFFLXB
      WFZUOYDFLYAVJWGUTZLXQWHXTWHYBWHYCWHYEWIWJXPXTDFXMXBWKWLWMWNCMWQVSABXSDFIU
      DUFWOWRWPJXDWSWTKXEUKXAWM $.
  $}

  ${
    $d A y $.  $d D y $.  $d E y $.  $d R y $.  $d f y $.  $d ps y $.
    $d x y $.  $d y z $.
    bnj1444.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1444.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1444.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1444.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1444.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1444.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1444.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1444.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1444.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1444.10 $e |- P = U. H $.
    bnj1444.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1444.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1444.13 $e |- W = <. z , ( Q |` _pred ( z , A , R ) ) >. $.
    bnj1444.14 $e |- E = ( { x } u. _trCl ( x , A , R ) ) $.
    bnj1444.15 $e |- ( ch -> P Fn _trCl ( x , A , R ) ) $.
    bnj1444.16 $e |- ( ch -> Q Fn ( { x } u. _trCl ( x , A , R ) ) ) $.
    bnj1444.17 $e |- ( th <-> ( ch /\ z e. E ) ) $.
    bnj1444.18 $e |- ( et <-> ( th /\ z e. { x } ) ) $.
    bnj1444.19 $e |- ( ze <-> ( th /\ z e. _trCl ( x , A , R ) ) ) $.
    bnj1444.20 $e |- ( rh <-> ( ze /\ f e. H /\ z e. dom f ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1444 $p |- ( rh -> A. y rh ) $=
      ( cv wcel cdm w3a c-bnj18 wa wbr wral nfra1 nf3an nfxfr nfan c-bnj14 wrex
      wn nfv cab nfre1 nfab nfcxfr nfcri nf5ri ) GIGFRVGZUAVHZJVGZWIVIVHZVJIVFF
      WJWLIFCWKKQHVGZVKVHZVLIVECWNICBWKSVHZVLIVCBWOIBAWMNVHZIVGWMQVMWAZINVNZVJI
      UMAWPWRIAIWBWPIWBWQINVOVPVQWOIWBVRVQWNIWBVRVQIRUAIUAUFIKQWMVSZVTZRWCUOWTI
      RUFIWSWDWEWFWGWLIWBVPVQWH $.
  $}

  ${
    $d A d x $.  $d B f $.  $d E d $.  $d R d x $.  $d d f x $.  $d d x y $.
    $d d z $.
    bnj1445.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1445.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1445.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1445.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1445.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1445.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1445.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1445.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1445.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1445.10 $e |- P = U. H $.
    bnj1445.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1445.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1445.13 $e |- W = <. z , ( Q |` _pred ( z , A , R ) ) >. $.
    bnj1445.14 $e |- E = ( { x } u. _trCl ( x , A , R ) ) $.
    bnj1445.15 $e |- ( ch -> P Fn _trCl ( x , A , R ) ) $.
    bnj1445.16 $e |- ( ch -> Q Fn ( { x } u. _trCl ( x , A , R ) ) ) $.
    bnj1445.17 $e |- ( th <-> ( ch /\ z e. E ) ) $.
    bnj1445.18 $e |- ( et <-> ( th /\ z e. { x } ) ) $.
    bnj1445.19 $e |- ( ze <-> ( th /\ z e. _trCl ( x , A , R ) ) ) $.
    bnj1445.20 $e |- ( rh <-> ( ze /\ f e. H /\ z e. dom f ) ) $.
    bnj1445.21 $e |- ( si <-> ( rh /\ y e. _pred ( x , A , R ) /\ f e. C /\ dom
        f = ( { y } u. _trCl ( y , A , R ) ) ) ) $.
    bnj1445.22 $e |- ( ph <-> ( si /\ d e. B /\ f Fn d /\ A. x e. d ( f ` x ) =
        ( G ` Y ) ) ) $.
    bnj1445.23 $e |- X = <. z , ( f |` _pred ( z , A , R ) ) >. $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1445 $p |- ( si -> A. d si ) $=
      ( cv c-bnj14 wcel cdm csn c-bnj18 cun wceq w-bnj17 w3a wa wn wral w-bnj15
      wbr c0 wne nfv wex crab wfn cfv wrex cab nfre1 nfab nfcri nfan nfxfr nfex
      nfcxfr nfn nfcv nfrab nfne nfral nf3an nf5ri bnj1351 nf5i wsbc nfsbc ax-5
      nfrex bnj982 hbxfrbi ) HIKVMZMSJVMZVNZVOZTVMZOVOZYCVPZXSVQMSXSVRVSVTZWAUH
      VJIYBYDYFUHIUHIGYCUCVOZLVMZYEVOZWBUHVIGYGYIUHGDYHMSXTVRZVOZWCUHVHDYKUHDCY
      HUAVOZWCZUHVFYMUHCYLUHCUHCBXTPVOZXSXTSWGWDZKPWEZWBUHUPBYNYPUHBMSWFZPWHWIZ
      WCUHUOYQYRUHYQUHWJUHPWHUHPETWKZWDZJMWLUNYTUHJMYSUHEUHTEYDYEXTVQYJVSVTZWCU
      HUMYDUUAUHUHTOUHOYCUHVMZWMXTYCWNUFUBWNVTJUUBWEWCZUHNWOZTWPULUUDUHTUUCUHNW
      QWRXCWSZUUAUHWJWTXAZXBXDUHMXEXFXCZUHWHXEXGWTXAUHJPUUGWSYOUHKPUUGYOUHWJXHX
      IXAXJXKXLXAYKUHWJWTXAUHTUCUHUCUIKYAWOZTWPURUUHUHTUIUHKYAUHYAXEUIEJXSXMUHU
      QEUHJXSUHXSXEUUFXNXAXPWRXCWSYIUHWJXIXAXJYBUHXOYDUHUUEXJYFUHXOXQXR $.
  $}

  ${
    $d A d x $.  $d B f $.  $d G d $.  $d R d x $.  $d d f x $.  $d d x y $.
    $d d z $.
    bnj1446.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1446.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1446.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1446.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1446.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1446.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1446.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1446.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1446.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1446.10 $e |- P = U. H $.
    bnj1446.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1446.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1446.13 $e |- W = <. z , ( Q |` _pred ( z , A , R ) ) >. $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1446 $p |- ( ( Q ` z ) = ( G ` W ) -> A. d ( Q ` z ) = ( G ` W ) ) $=
      ( cv cfv wceq cop csn cun cuni c-bnj14 wrex cab nfcv wsbc wcel c-bnj18 wa
      cdm wfn wral nfre1 nfab nfcri nfv nfan nfxfr nfsbc nfrex nfuni cres nfres
      nfcxfr nfop nffv nfsn nfun nfeq nf5ri ) FUOZLUPZQOUPZUQTTWLWMTWKLTLKDUOZS
      OUPZURZUSZUTUMTKWQTKPVAUKTPTPUAEGMWNVBZVCZNVDUJWSTNUATEWRTWRVEZUACDEUOZVF
      TUICTDXATXAVECNUOZIVGZXBVJWNUSGMWNVHUTUQZVITUEXCXDTTNITIXBTUOZVKWNXBUPROU
      PUQDXEVLVIZTHVCZNVDUDXGTNXFTHVMVNWDVOXDTVPVQVRVSVRVTVNWDWAWDZTWPTWNWOTWNV
      EZTSOTOVEZTSWNKWRWBZURULTWNXKXITKWRXHWTWCWEWDWFWEWGWHWDZTWKVEZWFTQOXJTQWK
      LGMWKVBZWBZURUNTWKXOXMTLXNXLTXNVEWCWEWDWFWIWJ $.
  $}

  ${
    $d A y $.  $d G y $.  $d R y $.  $d x y $.  $d y z $.
    bnj1447.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1447.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1447.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1447.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1447.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1447.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1447.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1447.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1447.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1447.10 $e |- P = U. H $.
    bnj1447.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1447.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1447.13 $e |- W = <. z , ( Q |` _pred ( z , A , R ) ) >. $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1447 $p |- ( ( Q ` z ) = ( G ` W ) -> A. y ( Q ` z ) = ( G ` W ) ) $=
      ( cfv wceq cop csn cun cuni c-bnj14 wrex cab nfre1 nfab nfcxfr nfuni nfcv
      cv cres nfres nfop nffv nfsn nfun nfeq nf5ri ) FVIZLUOZQOUOZUPEEVSVTEVRLE
      LKDVIZSOUOZUQZURZUSUMEKWDEKPUTUKEPEPUAEGMWAVAZVBZNVCUJWFENUAEWEVDVEVFVGVF
      ZEWCEWAWBEWAVHZESOEOVHZESWAKWEVJZUQULEWAWJWHEKWEWGEWEVHVKVLVFVMVLVNVOVFZE
      VRVHZVMEQOWIEQVRLGMVRVAZVJZUQUNEVRWNWLELWMWKEWMVHVKVLVFVMVPVQ $.
  $}

  ${
    $d A f w $.  $d G f w $.  $d H w $.  $d P w $.  $d Q w $.  $d R f w $.
    $d W w $.  $d Z w $.  $d f w x $.  $d f w z $.
    bnj1448.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1448.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1448.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1448.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1448.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1448.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1448.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1448.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1448.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1448.10 $e |- P = U. H $.
    bnj1448.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1448.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1448.13 $e |- W = <. z , ( Q |` _pred ( z , A , R ) ) >. $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1448 $p |- ( ( Q ` z ) = ( G ` W ) -> A. f ( Q ` z ) = ( G ` W ) ) $=
      ( vw cv cfv wceq cop csn cun cuni c-bnj14 wrex bnj1317 nfcii nfuni nfcxfr
      nfcv cres nfres nfop nffv nfsn nfun nfeq nf5ri ) FUPZLUQZQOUQZURNNVSVTNVR
      LNLKDUPZSOUQZUSZUTZVAUMNKWDNKPVBUKNPNUOPUAEGMWAVCZVDNUOPUJVEVFVGVHZNWCNWA
      WBNWAVIZNSONOVIZNSWAKWEVJZUSULNWAWIWGNKWEWFNWEVIVKVLVHVMVLVNVOVHZNVRVIZVM
      NQOWHNQVRLGMVRVCZVJZUSUNNVRWMWKNLWLWJNWLVIVKVLVHVMVPVQ $.
  $}

  ${
    $d A f $.  $d E f $.  $d R f $.  $d f x $.  $d f y $.  $d f z $.
    bnj1449.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1449.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1449.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1449.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1449.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1449.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1449.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1449.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1449.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1449.10 $e |- P = U. H $.
    bnj1449.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1449.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1449.13 $e |- W = <. z , ( Q |` _pred ( z , A , R ) ) >. $.
    bnj1449.14 $e |- E = ( { x } u. _trCl ( x , A , R ) ) $.
    bnj1449.15 $e |- ( ch -> P Fn _trCl ( x , A , R ) ) $.
    bnj1449.16 $e |- ( ch -> Q Fn ( { x } u. _trCl ( x , A , R ) ) ) $.
    bnj1449.17 $e |- ( th <-> ( ch /\ z e. E ) ) $.
    bnj1449.18 $e |- ( et <-> ( th /\ z e. { x } ) ) $.
    bnj1449.19 $e |- ( ze <-> ( th /\ z e. _trCl ( x , A , R ) ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1449 $p |- ( ze -> A. f ze ) $=
      ( cv c-bnj18 wcel wa wbr wn wral w3a w-bnj15 c0 wne nfv wex crab nfe1 nfn
      nfcv nfrab nfcxfr nfne nfan nfxfr nfcri nfral nf3an nf5ri ) FQFCIVEZJPGVE
      ZVFVGZVHQVDCWMQCBWKRVGZVHQVBBWNQBAWLMVGZHVEWLPVIVJZHMVKZVLQULAWOWQQAJPVMZ
      MVNVOZVHQUKWRWSQWRQVPQMVNQMDQVQZVJZGJVRUJXAQGJWTQDQVSVTQJWAWBWCZQVNWAWDWE
      WFQGMXBWGWPQHMXBWPQVPWHWIWFWNQVPWEWFWMQVPWEWFWJ $.
  $}

  ${
    $d A x $.
    bnj1442.1 $e |- B = { d | ( d C_ A
        /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1442.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1442.3 $e |- C = { f | E. d e. B
        ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1442.4 $e |- ( ta <-> ( f e. C
        /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1442.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1442.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1442.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1442.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1442.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1442.10 $e |- P = U. H $.
    bnj1442.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1442.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1442.13 $e |- W = <. z , ( Q |` _pred ( z , A , R ) ) >. $.
    bnj1442.14 $e |- E = ( { x } u. _trCl ( x , A , R ) ) $.
    bnj1442.15 $e |- ( ch -> P Fn _trCl ( x , A , R ) ) $.
    bnj1442.16 $e |- ( ch -> Q Fn ( { x } u. _trCl ( x , A , R ) ) ) $.
    bnj1442.17 $e |- ( th <-> ( ch /\ z e. E ) ) $.
    bnj1442.18 $e |- ( et <-> ( th /\ z e. { x } ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1442 $p |- ( et -> ( Q ` z ) = ( G ` W ) ) $=
      ( cfv csn wcel wceq wfun cop c-bnj18 cun bnj930 opex elun2 ax-mp eleqtrri
      cv snid funopfv mpisyl bnj832 elsni simplbiim fveq2d c-bnj14 cres reseq2d
      bnj602 syl wss bnj931 a1i cdm w-bnj15 wbr wral wne simplbi bnj835 bnj1212
      wn wex bnj906 syl2anc fndm sseqtr4d bnj1503 eqtrd opeq12d 3eqtr4g 3eqtr4d
      c0 wfn ) EFVPZNVCZUBRVCZHVPZNVCTRVCCXPXMVDZVEZXNXOVFZEVBBXPQVEZXSCVABNVGX
      MXOVHZNVEXSBXQIOXMVIZVJNUTVKZYAMYAVDZVJZNYAYDVEYAYEVEYAXMXOVLVQYAYDMVMVNU
      PVOXMXONVRVSVTVTEXPXMNECXRXPXMVFZVBXPXMWAWBZWCETUBREXPNIOXPWDZWEZVHXMMIOX
      MWDZWEZVHTUBEXPXMYIYKYGEYINYJWEZYKEYFYIYLVFYGYFYHYJNIOXPXMWGWFWHCXRYLYKVF
      ZEVBBXTYMCVABYJNMYCMNWIBNMYDUPWJWKBYJYBMWLZBIOWMZXMIVEYJYBWIAXMLVEGVPXMOW
      NWTGLWOZYOBUKAYOLXKWPUJWQWRDPXAWTABYPFILUIUKWSIOXMXBXCBMYBXLYNYBVFUSYBMXD
      WHXEXFVTVTXGXHUQUOXIWCXJ $.
  $}

  ${
    $d A d f x y z $.  $d B f $.  $d D y $.  $d E d f y $.  $d G d f x y z $.
    $d H w $.  $d R d f x y z $.  $d X x $.  $d Y z $.  $d f w $.  $d ps y $.
    bnj1450.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1450.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1450.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1450.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1450.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1450.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1450.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1450.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1450.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1450.10 $e |- P = U. H $.
    bnj1450.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1450.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1450.13 $e |- W = <. z , ( Q |` _pred ( z , A , R ) ) >. $.
    bnj1450.14 $e |- E = ( { x } u. _trCl ( x , A , R ) ) $.
    bnj1450.15 $e |- ( ch -> P Fn _trCl ( x , A , R ) ) $.
    bnj1450.16 $e |- ( ch -> Q Fn ( { x } u. _trCl ( x , A , R ) ) ) $.
    bnj1450.17 $e |- ( th <-> ( ch /\ z e. E ) ) $.
    bnj1450.18 $e |- ( et <-> ( th /\ z e. { x } ) ) $.
    bnj1450.19 $e |- ( ze <-> ( th /\ z e. _trCl ( x , A , R ) ) ) $.
    bnj1450.20 $e |- ( rh <-> ( ze /\ f e. H /\ z e. dom f ) ) $.
    bnj1450.21 $e |- ( si <-> ( rh /\ y e. _pred ( x , A , R ) /\ f e. C /\ dom
        f = ( { y } u. _trCl ( y , A , R ) ) ) ) $.
    bnj1450.22 $e |- ( ph <-> ( si /\ d e. B /\ f Fn d /\ A. x e. d ( f ` x ) =
        ( G ` Y ) ) ) $.
    bnj1450.23 $e |- X = <. z , ( f |` _pred ( z , A , R ) ) >. $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1450 $p |- ( ze -> ( Q ` z ) = ( G ` W ) ) $=
      ( vw cv cfv wceq cdm wcel cuni ciun c-bnj18 simprbi wfn fndm syl eleqtrrd
      bnj832 dmeqi syl6eleq c-bnj14 bnj1317 bnj1400 bnj1405 bnj1449 bnj1521 csn
      wrex cun w3a bnj1436 bnj836 bnj1373 rexbii bnj1196 3anass bnj1198 w-bnj17
      sylib bnj252 bitri bnj1444 bnj1340 wral bnj771 bnj1445 bnj1254 fveq2 cres
      cop bnj602 reseq2d opeq12d 3eqtr4g fveq2d eqeq12d cbvralv simp3bi eleqtrd
      wa bnj769 bnj1294 wfun bnj930 bnj835 wss simp2bi syl6sseqr bnj593 bnj1397
      id elssuni bnj1502 bnj1517 bnj770 sseq1d sseqtr4d bnj1503 3eqtr4d bnj1446
      ssun3 3syl opeq2d bnj1447 bnj1448 ) GLVNZRVOZUDUBVOZVPZTGIUURTUUOTVNZVQZV
      RZGITUCGTUCUUTUUOGUUOUCVSZVQZTUCUUTVTGUUOQVQZUVCGUUOMSJVNZWAZUVDGDUUOUVFV
      RZVHWBDUVGUVDUVFVPZGVHCUUOUAVRZUVHDVFCQUVFWCUVHVDUVFQWDWEWGWGWFQUVBUSWHWI
      TVMUCUIKMSUVEWJZWQZTVMUCURWKWLWIWMVIBCDEFGJKLMNOPQRSTUAUBUCUDUFUGUHUIUJUK
      ULUMUNUOUPUQURUSUTVAVBVCVDVEVFVGVHWNWOIUURKIHUURKIHKVNZUVJVRZUUSOVRZUUTUV
      LWPMSUVLWAWRVPZWSZKIUVMUVNUVOYIZYIKUVPIUVQKUVJIUVKUVQKUVJWQGUUSUCVRZUVAUV
      KIVIUVKTUCURWTXAUIUVQKUVJEJKMNOSTUBUFUHUIUJUKULUMUQXBXCXHXDUVMUVNUVOXEXFH
      IUVMUVNUVOXGIUVPYIVJIUVMUVNUVOXIXJBCDEFGIJKLMNOPQRSTUAUBUCUDUFUGUHUIUJUKU
      LUMUNUOUPUQURUSUTVAVBVCVDVEVFVGVHVIXKXLHUURUHHAUURUHHAUHVNZNVRZUUSUVSWCZU
      VEUUSVOZUFUBVOZVPZJUVSXMZWSZUHHUVTUWAUWEYIZYIUHUWFHUWGUHNIUVMUVNUVOUWGUHN
      WQZHVJUWHTOULWTXNXDUVTUWAUWEXEXFAHUVTUWAUWEXGHUWFYIVKHUVTUWAUWEXIXJABCDEF
      GHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTVAVBVCVDVEVFVGVHVIV
      JVKVLXOXLAUUOUUSVOZUEUBVOZUUPUUQAUWIUWJVPZLUVSAUWEUWKLUVSXMAHUVTUWAUWEVKX
      PUWDUWKJLUVSUVEUUOVPZUWBUWIUWCUWJUVEUUOUUSXQUWLUFUEUBUWLUVEUUSUVJXRZXSUUO
      UUSMSUUOWJZXRZXSZUFUEUWLUVEUUOUWMUWOUWLYTUWLUVJUWNUUSMSUVEUUOXTZYAYBUKVLY
      CYDYEYFXHAUUOUUTUVSHUVTUWAUWEUVAAVKIUVMUVNUVOUVAHVJIGUVRUVAVIYGYJYJZHUVTU
      WAUWEUUTUVSVPAVKUVSUUSWDXNZYHZYKAUUORUUSHUVTUWAUWERYLZAVKIUVMUVNUVOUXAHVJ
      GUVRUVAUXAIVIDUVGUXAGVHCUVIUXADVFCUVEWPUVFWRRVEYMWGWGYNYJYJZAUVRUUSQYOZUU
      SRYOHUVTUWAUWEUVRAVKIUVMUVNUVOUVRHVJIGUVRUVAVIYPYJYJUVRUUSUVBQUUSUCUUAUSY
      QUXCUUSQUVEUGUBVOXSWPZWRRUUSQUXDUUJVAYQUUKZUWRUUBAUDUEUBAUUORUWNXRZXSUWPU
      DUEAUXFUWOUUOAUWNRUUSUXBUXEAUWNUVSUUTAUWNUVSYOZLUVSAUVJUVSYOZJUVSXMZUXGLU
      VSXMHUVTUWAUWEUXIAVKUVSMYOUXIUHNUJUUCUUDUXHUXGJLUVSUWLUVJUWNUVSUWQUUEYFXH
      UWTYKUWSUUFUUGUULVBVLYCYDUUHYRBCEJKLMNOPQRSTUBUCUDUFUGUHUIUJUKULUMUNUOUPU
      QURUSUTVAVBUUIYSYRBCEJKLMNOPQRSTUBUCUDUFUGUHUIUJUKULUMUNUOUPUQURUSUTVAVBU
      UMYSYRBCEJKLMNOPQRSTUBUCUDUFUGUHUIUJUKULUMUNUOUPUQURUSUTVAVBUUNYS $.
  $}

  ${
    $d A d f x y z $.  $d B f $.  $d D y $.  $d E d f y $.  $d G d f x y z $.
    $d R d f x y z $.  $d Y z $.  $d ch z $.  $d ps y $.
    bnj1423.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1423.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1423.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1423.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1423.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1423.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1423.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1423.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1423.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1423.10 $e |- P = U. H $.
    bnj1423.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1423.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1423.13 $e |- W = <. z , ( Q |` _pred ( z , A , R ) ) >. $.
    bnj1423.14 $e |- E = ( { x } u. _trCl ( x , A , R ) ) $.
    bnj1423.15 $e |- ( ch -> P Fn _trCl ( x , A , R ) ) $.
    bnj1423.16 $e |- ( ch -> Q Fn ( { x } u. _trCl ( x , A , R ) ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1423 $p |- ( ch -> A. z e. E ( Q ` z ) = ( G ` W ) ) $=
      ( cv cfv wceq wcel wa csn c-bnj18 bnj1442 cdm w3a c-bnj14 cun w-bnj17 wfn
      biid wral cres cop eqid bnj1450 wo bnj1424 adantl mpjaodan ralrimiva ) BF
      USZLUTRPUTVAZFOBWDOVBZVCZWDDUSZVDZVBZWEWDGMWHVEZVBZABWGCWGWJVCZDEFGHIJKLM
      NOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURWGVMZWMVMZVFWGWLVCZNUSZQVBWDWQ
      VGZVBVHZEUSZGMWHVIVBWQIVBWRWTVDGMWTVEVJVAVKZUAUSZHVBWQXBVLWHWQUTSPUTVADXB
      VNVKZABWGCWMWPXAWSDEFGHIJKLMNOPQRWDWQGMWDVIVOVPZSTUAUBUCUDUEUFUGUHUIUJUKU
      LUMUNUOUPUQURWNWOWPVMWSVMXAVMXCVMXDVQVRWFWJWLVSBOWIWKWDUPVTWAWBWC $.
  $}

  ${
    $d A d x z $.  $d E d z $.  $d R d x z $.  $d ch z $.
    bnj1452.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1452.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1452.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1452.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1452.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1452.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1452.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1452.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1452.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1452.10 $e |- P = U. H $.
    bnj1452.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1452.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1452.13 $e |- W = <. z , ( Q |` _pred ( z , A , R ) ) >. $.
    bnj1452.14 $e |- E = ( { x } u. _trCl ( x , A , R ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1452 $p |- ( ch -> E e. B ) $=
      ( wcel wss cv c-bnj14 wral csn c-bnj18 cun wex wn wbr bnj1212 bnj1147 a1i
      snssd unssd syl5eqss wa elsni adantl bnj602 syl w-bnj15 c0 simplbi bnj835
      wne bnj906 syl2anc ad2antrr eqsstrd ssun4 syl6sseqr simpr bnj1213 bnj1125
      wceq syl3anc sstrd wo bnj1424 mpjaodan ralrimiva wsbc cvv wb snex bnj1149
      bnj893 syl5eqel bnj1454 weq sseq1d cbvralv anbi2i sbcbii sseq1 raleqbi1dv
      syl6bb sseq2 anbi12d sbcieg bitrd mpbir2and ) BOHUQZOGURZGMFUSZUTZOURZFOV
      AZBODUSZVBZGMYGVCZVDZGUPBYHYIGBYGGCNVEVFABEUSYGMVGVFEJVAZDGJUGUIVHZVKYIGU
      RBGMYGVIZVJVLVMBYEFOBYCOUQZVNZYCYHUQZYEYCYIUQZYOYPVNZYDYIURZYEYRYDGMYGUTZ
      YIYRYCYGWMZYDYTWMYPUUAYOYCYGVOVPGMYCYGVQVRBYTYIURZYNYPBGMVSZYGGUQZUUBAYGJ
      UQYKUUCBUIAUUCJVTWCUHWAWBZYLGMYGWDWEWFWGYSYDYJOYDYIYHWHUPWIZVRYOYQVNZYSYE
      UUGYDGMYCVCZYIUUGUUCYCGUQYDUUHURBUUCYNYQUUEWFZUUGFYIGYMYOYQWJZWKGMYCWDWEU
      UGUUCUUDYQUUHYIURUUIBUUDYNYQYLWFUUJGMYGYCWLWNWOUUFVRYNYPYQWPBOYHYIYCUPWQV
      PWRWSBYAUAUSZGURZYDUUKURZFUUKVAZVNZUAOWTZYBYFVNZBYAUULYTUUKURZDUUKVAZVNZU
      AOWTZUUPBOXAUQZYAUVAXBBOYJXAUPBYHYIYHXAUQBYGXCVJBUUCUUDYIXAUQUUEYLGMYGXEW
      EXDXFZUUTUAHOUCXGVRUUTUUOUAOUUSUUNUULUURUUMDFUUKDFXHYTYDUUKGMYGYCVQXIXJXK
      XLXOBUVBUUPUUQXBUVCUUOUUQUAOXAUUKOWMUULYBUUNYFUUKOGXMUUMYEFUUKOUUKOYDXPXN
      XQXRVRXSXT $.
  $}

  ${
    $d A f w $.  $d G f w $.  $d H w $.  $d P w $.  $d R f w $.  $d Z w $.
    $d f w x $.
    bnj1466.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1466.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1466.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1466.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1466.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1466.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1466.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1466.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1466.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1466.10 $e |- P = U. H $.
    bnj1466.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1466.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1466 $p |- ( w e. Q -> A. f w e. Q ) $=
      ( cfv cop csn cun cuni c-bnj14 wrex bnj1317 nfcii nfuni nfcxfr nfcv nfres
      cv cres nfop nffv nfsn nfun nfcrii ) NFLNLKDVFZROUMZUNZUOZUPULNKVPNKPUQUJ
      NPNFPTEGMVMURZUSNFPUIUTVAVBVCZNVONVMVNNVMVDZNRONOVDNRVMKVQVGZUNUKNVMVTVSN
      KVQVRNVQVDVEVHVCVIVHVJVKVCVL $.
  $}

  ${
    $d A d w x $.  $d B f $.  $d C w $.  $d G d w $.  $d H w $.  $d P w $.
    $d R d w x $.  $d Z w $.  $d d f w x $.  $d d x y $.
    bnj1467.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1467.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1467.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1467.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1467.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1467.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1467.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1467.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1467.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1467.10 $e |- P = U. H $.
    bnj1467.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1467.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1467 $p |- ( w e. Q -> A. d w e. Q ) $=
      ( cv cfv cop csn cun cuni c-bnj14 wrex cab nfcv wsbc wcel c-bnj18 wceq wa
      cdm wfn wral nfre1 nfab nfcri nfv nfan nfxfr nfsbc nfrex nfuni cres nfres
      nfcxfr nfop nffv nfsn nfun nfcrii ) SFLSLKDUMZROUNZUOZUPZUQULSKWKSKPURUJS
      PSPTEGMWHUSZUTZNVAUIWMSNTSEWLSWLVBZTCDEUMZVCSUHCSDWOSWOVBCNUMZIVDZWPVHWHU
      PGMWHVEUQVFZVGSUDWQWRSSNISIWPSUMZVIWHWPUNQOUNVFDWSVJVGZSHUTZNVAUCXASNWTSH
      VKVLWBVMWRSVNVOVPVQVPVRVLWBVSWBZSWJSWHWISWHVBZSROSOVBSRWHKWLVTZUOUKSWHXDX
      CSKWLXBWNWAWCWBWDWCWEWFWBWG $.
  $}

  ${
    $d A d f w x $.  $d B f w $.  $d C w $.  $d E d w z $.  $d G d f w x z $.
    $d H w $.  $d P w $.  $d Q w z $.  $d R d f w x $.  $d W w $.  $d Y z $.
    $d Z w $.  $d d x y $.
    bnj1463.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1463.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1463.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1463.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1463.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1463.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1463.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1463.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1463.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1463.10 $e |- P = U. H $.
    bnj1463.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1463.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1463.13 $e |- W = <. z , ( Q |` _pred ( z , A , R ) ) >. $.
    bnj1463.14 $e |- E = ( { x } u. _trCl ( x , A , R ) ) $.
    bnj1463.15 $e |- ( ch -> Q e. _V ) $.
    bnj1463.16 $e |- ( ch -> A. z e. E ( Q ` z ) = ( G ` W ) ) $.
    bnj1463.17 $e |- ( ch -> Q Fn E ) $.
    bnj1463.18 $e |- ( ch -> E e. B ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1463 $p |- ( ch -> Q e. C ) $=
      ( vw wcel cv wfn cfv wceq wral wrex wsbc c-bnj14 cres cop wex elexd eleq1
      cvv fneq2 raleq anbi12d wss bnj1317 nfcii nfel2 bnj1467 nfcv nffn bnj1446
      wa nf5i nfral nfan nf5ri jca32 bnj1465 mpdan df-rex bnj1466 bnj1448 nfrex
      sylibr wb nfeq2 fneq1 reseq1 opeq2d syl6eqr fveq2d eqeq12d ralbidv rexbid
      fveq1 bnj1468 mpbird fveq2 id bnj602 reseq2d opeq12d syl5eq anbi2i rexbii
      syl cbvralv sbcbii bnj1454 ) BLIVBZNVCZUAVCZVDZDVCZYGVEZSPVEZVFZDYHVGZWHZ
      UAHVHZNLVIZBYIFVCZYGVEZYRYGGMYRVJZVKZVLZPVEZVFZFYHVGZWHZUAHVHZNLVIZYQBUUH
      LYHVDZYRLVEZRPVEZVFZFYHVGZWHZUAHVHZBYHHVBZUUNWHZUAVMZUUOBOVPVBUURBOHUTVNU
      UQOHVBZLOVDZUULFOVGZWHZWHZBUAOVPYHOVFZUUPUUSUUNUVBYHOHVOUVDUUIUUTUUMUVAYH
      OLVQUULFYHOVRVSVSUVCUAUUSUVBUAUAOHUAVAHYHGVTGMYJVJZYHVTDYHVGWHUAVAHUCWAWB
      WCUUTUVAUAUAOLUAVALABCDEVAGHIJKLMNPQSTUAUBUCUDUEUFUGUHUIUJUKULUMUNWDWBZUA
      OWEZWFUULUAFOUVGUULUAABCDEFGHIJKLMNPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOWGW
      IWJWKWKWLBUUSUUTUVAUTUSURWMWNWOUUNUAHWPWTBLVPVBZUUHUUOXAUQUUGUUONVALVPUUO
      NUUNNUAHNHWEUUIUUMNNYHLNVALABCDEVAGHIJKLMNPQSTUAUBUCUDUEUFUGUHUIUJUKULUMU
      NWQZWBNYHWEZWFUULNFYHUVJUULNABCDEFGHIJKLMNPQRSTUAUBUCUDUEUFUGUHUIUJUKULUM
      UNUOWRWIWJWKWSWLYGLVFZUUFUUNUAHUAYGLUVFXBUVKYIUUIUUEUUMYHYGLXCUVKUUDUULFY
      HUVKYSUUJUUCUUKYRYGLXKUVKUUBRPUVKUUBYRLYTVKZVLRUVKUUAUVLYRYGLYTXDXEUOXFXG
      XHXIVSXJUVIXLYBXMYPUUGNLYOUUFUAHYNUUEYIYMUUDDFYHYJYRVFZYKYSYLUUCYJYRYGXNU
      VMSUUBPUVMSYJYGUVEVKZVLUUBUDUVMYJYRUVNUUAUVMXOUVMUVEYTYGGMYJYRXPXQXRXSXGX
      HYCXTYAYDWTBUVHYFYQXAUQYPNILUEYEYBXM $.
  $}

  ${
    $d A d f x $.  $d A f x y $.  $d B f $.  $d D y $.  $d G d f $.
    $d R d f x $.  $d R f x y $.  $d ps y $.  $d ta y $.
    bnj1489.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1489.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1489.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1489.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1489.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1489.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1489.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1489.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1489.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1489.10 $e |- P = U. H $.
    bnj1489.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1489.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1489 $p |- ( ch -> Q e. _V ) $=
      ( cv cfv cop csn cun cvv cuni wcel c-bnj14 weu wral wrex cab wceq w-bnj15
      wbr wn wne w-bnj13 bnj1364 df-bnj13 bnj832 bnj835 wex bnj1212 bnj1294 w3a
      c0 sylib nfv nfra1 nf3an nfxfr wa simplbi adantr bnj1388 r19.21bi c-bnj18
      cdm wi wsbc nfsbc1v nfex nfan nfeu nfim weq bnj1318 uneq12d eqeq2d anbi2d
      sneq bnj1373 syl6bbr exbidv imbi12d biid bnj1321 chvar syl2anc ex ralrimi
      eubidv a1i bnj1366 syl3anc uniexg syl syl5eqel snex bnj1149 ) BKJDULZQNUM
      UNZUOZUPUQUKBJYFBJOURZUQUIBOUQUSZYGUQUSBFLYDUTZUQUSZSMVAZEYIVBZOSEYIVCMVD
      VEZYHBYJDFAYDIUSZEULZYDLVGVHZEIVBZYJDFVBZBUFFLVFZIVSVIZYRAUEYSFLVJYRFLVKD
      FLVLVTVMVNCMVOVHABYQDFIUDUFVPVQBYKEYIBAYNYQVREUFAYNYQEAEWAYNEWAYPEIWBWCWD
      BYOYIUSZYKBUUAWEYSSMVOZYKBYSUUAAYNYQYSBUFAYSYTUEWFVNWGBUUBEYIABCDEFGHILMN
      PRSTUAUBUCUDUEUFUGWHWIYSMULZHUSZUUCWKZYDUOZFLYDWJZUPZVEZWEZMVOZWEZUUJMVAZ
      WLYSUUBWEZYKWLDEUUNYKDYSUUBDYSDWASDMSCDYOWMDUGCDYOWNWDZWOWPSDMUUOWQWRDEWS
      ZUULUUNUUMYKUUPUUKUUBYSUUPUUJSMUUPUUJUUDUUEYOUOZFLYOWJZUPZVEZWESUUPUUIUUT
      UUDUUPUUHUUSUUEUUPUUFUUQUUGUURYDYOXDFLYDYOWTXAXBXCCDEFGHLMNPRSTUAUBUCUGXE
      XFZXGXCUUPUUJSMUVAXOXHUUJDFGHLMNPRTUAUBUUJXIXJXKXLXMXNYMBUHXPSYJYLYMVRZEM
      YIOUVBXIXQXROUQXSXTYAYFUQUSBYEYBXPYCYA $.
  $}

  ${
    $d A f w $.  $d C w $.  $d G f w $.  $d H w $.  $d P w $.  $d Q w $.
    $d R f w $.  $d Z w $.  $d f w x $.
    bnj1491.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1491.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1491.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1491.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1491.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1491.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1491.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1491.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1491.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1491.10 $e |- P = U. H $.
    bnj1491.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1491.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1491.13 $e |- ( ch -> ( Q e. C /\ dom Q = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1491 $p |- ( ( ch /\ Q e. _V ) -> E. f ( f e. C /\ dom f = ( { x } u.
        _trCl ( x , A , R ) ) ) ) $=
      ( vw wcel cdm cv csn c-bnj18 cun wceq cvv wex bnj1466 nfcii wfn wral wrex
      cfv bnj1317 nfel nfdm nfeq1 nfan eleq1 dmeq eqeq1d anbi12d spcegf mpan9
      wa ) BKHUNZKUOZDUPZUQFLWCURUSZUTZVTZKVAUNMUPZHUNZWGUOZWDUTZVTZMVBULWKWFMK
      VAMUMKABCDEUMFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKVCVDZWAWEMMKHWLMUMHWGRU
      PZVEWCWGVHPNVHUTDWMVFVTRGVGMUMHUBVIVDVJMWBWDMKWLVKVLVMWGKUTZWHWAWJWEWGKHV
      NWNWIWBWDWGKVOVPVQVRVS $.
  $}

  ${
    $d A d f x y z $.  $d A w x y $.  $d B f $.  $d C y $.  $d D w y $.
    $d E d f y z $.  $d G d f x y z $.  $d Q z $.  $d R d f x y z $.
    $d R w x y $.  $d Y z $.  $d ch z $.  $d ps y $.  $d ta y $.
    bnj1312.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1312.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1312.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1312.4 $e |- ( ta <-> ( f e. C /\ dom f = ( { x } u. _trCl ( x , A , R )
        ) ) ) $.
    bnj1312.5 $e |- D = { x e. A | -. E. f ta } $.
    bnj1312.6 $e |- ( ps <-> ( R _FrSe A /\ D =/= (/) ) ) $.
    bnj1312.7 $e |- ( ch <-> ( ps /\ x e. D /\ A. y e. D -. y R x ) ) $.
    bnj1312.8 $e |- ( ta' <-> [. y / x ]. ta ) $.
    bnj1312.9 $e |- H = { f | E. y e. _pred ( x , A , R ) ta' } $.
    bnj1312.10 $e |- P = U. H $.
    bnj1312.11 $e |- Z = <. x , ( P |` _pred ( x , A , R ) ) >. $.
    bnj1312.12 $e |- Q = ( P u. { <. x , ( G ` Z ) >. } ) $.
    bnj1312.13 $e |- W = <. z , ( Q |` _pred ( z , A , R ) ) >. $.
    bnj1312.14 $e |- E = ( { x } u. _trCl ( x , A , R ) ) $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1312 $p |- ( R _FrSe A
        -> A. x e. A E. f e. C dom f = ( { x } u. _trCl ( x , A , R ) ) ) $=
      ( vw w-bnj15 wex wral cv cdm csn c-bnj18 cun wceq wrex c0 wcel wbr wn wss
      wne simplbi ssrab3 a1i simprbi bnj1230 bnj1228 syl3anc wa nfcii nfcv nfne
      nfv nfan nfxfr nf5ri bnj1521 simp2bi bnj1538 cvv bnj1489 wfun bnj1384 syl
      bnj835 bnj1415 bnj1422 bnj1416 bnj1421 bnj1423 wfn fneq2i bnj1452 bnj1463
      sylibr bnj1491 mpdan bnj1198 bnj1304 bnj1541 bnj1476 df-rex bitr4i ralbii
      jca nsyl3 exbii sylib ) GMURZCNUSZDGUTNVAZVBDVAZVCGMYDVDZVEZVFZNIVGZDGUTY
      BYADGJUGAYAJVHUHABYDJVIZDEVAYDMVJVKEJUTZABDJAYAJGVLZJVHVMZYJDJVGAYAYLUHVN
      ZYKAYBVKZDGJUGVOVPAYAYLUHVQDEUQGJMYNDUQGJUGVRZVSVTUIADAYAYLWADUHYAYLDYADW
      EDJVHDUQJYOWBDVHWCWDWFWGWHWIBAYIYJUIWJYIYBBYNDJGUGWKBYCIVIYGWAZNCBLWLVIYP
      NUSZABCDEGHIJKLMNPQSTUAUBUCUDUEUFUGUHUIUJUKULUMUNWMZABCDEGHIJKLMNPQSTUAUB
      UCUDUEUFUGUHUIUJUKULUMUNBLIVILVBYFVFABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHU
      IUJUKULUMUNUOUPYRABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPBKYE
      BYAKWNAYIYJYABUIYMWQABCDEGHIJKMNPQSUAUBUCUDUEUFUGUHUIUJUKULWOWPZABCDEGHIJ
      KMNPQSUAUBUCUDUEUFUGUHUIUJUKULWRZWSBLYFABCDEGHIJKLMNPQSTUAUBUCUDUEUFUGUHU
      IUJUKULUMUNYSABCDEGHIJKLMNPQSTUAUBUCUDUEUFUGUHUIUJUKULUMUNYTWTZYTXAUUAWSZ
      XBBLYFXCLOXCUUBOYFLUPXDXGABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUN
      UOUPXEXFUUAXQXHXIUFXJXRXKXLXMYBYHDGYBYQYHCYPNUFXSYGNIXNXOXPXT $.
  $}

  ${
    $d A d f x y z $.  $d B f $.  $d C y z $.  $d G d f x y z $.
    $d R d f x y z $.  $d Y z $.
    bnj1493.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1493.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1493.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1493 $p |- ( R _FrSe A -> A. x e. A E. f e. C dom f = ( { x } u. _trCl (
        x , A , R ) ) ) $=
      ( vy vz cv wcel csn cop biid eqid w-bnj15 cdm c-bnj18 cun wceq wa wn crab
      wex c0 wne wbr wral w3a wsbc c-bnj14 wrex cab cuni cres cfv bnj1312 ) BEU
      AFOZDPVCUBAOZQBEVDUCUDZUEUFZFUIUGABUHZUJUKUFZVHVDVGPMOZVDEULUGMVGUMUNZVFA
      MNBCDVGVFAVIUOZMBEVDUPZUQFURZUSZVNVDVDVNVLUTRZGVARQUDZEFVEGVMNOZVPBEVQUPU
      TRZHVOIVKJKLVFSVGTVHSVJSVKSVMTVNTVOTVPTVRTVETVB $.
  $}

  ${
    $d C g $.  $d d f $.  $d f g $.
    bnj1497.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1497.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1497.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1497 $p |- A. g e. C Fun g $=
      ( cv wfun wcel wi wfn cfv wceq wral wa wrex bnj1317 nf5i nfim eleq1 funeq
      nfv imbi12d bnj1436 bnj1299 fnfun bnj31 bnj1265 chvar rgen ) GNZOZGDFNZDP
      ZUTOZQURDPZUSQFGVCUSFVCFUTJNZRZANUTSIHSTAVDUAZUBJCUCZFGDMUDUEUSFUIUFUTURT
      VAVCVBUSUTURDUGUTURUHUJVAVBJCVAVEVBJCVAVEVFJCVGFDMUKULVDUTUMUNUOUPUQ $.
  $}

  ${
    $d A d f x t $.  $d A f z $.  $d B f t $.  $d C t w $.  $d F z $.
    $d G d f x $.  $d R d f x $.  $d f w $.
    bnj1498.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1498.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1498.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1498.4 $e |- F = U. C $.
    $( Technical lemma for ~ bnj60 .  This lemma may no longer be used or have
       become an indirect lemma of the theorem in question (i.e. a lemma of a
       lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1498 $p |- ( R _FrSe A -> dom F = A ) $=
      ( wss cv wcel wrex wa wral vz vw w-bnj15 cdm cuni ciun eliun wceq wfn cfv
      vt bnj1436 bnj1299 fndm bnj31 bnj1196 simpld anim1i bnj593 sseq1 biimparc
      c-bnj14 bnj937 sselda rexlimiva sylbi bnj1317 bnj1400 dmeqi ssriv a1i csn
      eleq2s c-bnj18 cun bnj1493 vsnid elun1 mpbiri reximi ralimi ralbii sylibr
      ax-mp eleq2 syl nfcv bnj1309 bnj1307 nfcii nfiun dfss3f syl6sseqr eqssd )
      BEUCZGUDZBWPBOWOUAWPBUAPZBQZWQDUEZUDZWPWRWQFDFPZUDZUFZWTWQXCQWQXBQZFDRWRF
      WQDXBUGXDWRFDXADQZXBBWQXEXBBOZJXEJPZBOZXBXGUHZSZXFJXEXGCQZXISXJJXEXIJCXEX
      AXGUIZXIJCXEXLAPZXAUJIHUJUHAXGTZJCXLXNSJCRZFDMULUMXGXAUNUOUPXKXHXIXKXHBEX
      MVBXGOAXGTZXHXPSJCKULUQURUSXIXFXHXBXGBUTVAUSVCVDVEVFFUBDXOFUBDMVGVHZVMGWS
      NVIZVMVJVKWOBWTWPWOBXCWTWOXMXCQZABTZBXCOWOXMXBQZFDRZABTZXTWOXBXMVLZBEXMVN
      ZVOZUHZFDRZABTYCABCDEFHIJKLMVPYHYBABYGYAFDYGYAXMYFQZXMYDQYIAVQXMYDYEVRWDX
      BYFXMWEVSVTWAWFXSYBABFXMDXBUGWBWCABXCABWGFADXBAUKDAUKCDFHIJMAUKBCEJKWHWIW
      JAXBWGWKWLWCXQWMXRWMWN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Well-founded recursion, part 1 of 3
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A d f g h x $.  $d B f g h $.  $d C g h $.  $d G d f g h x $.
    $d R d f g h x $.  $d Y g h $.
    bnj60.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d ) }
        $.
    bnj60.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj60.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G ` Y
        ) ) } $.
    bnj60.4 $e |- F = U. C $.
    $( Well-founded recursion, part 1 of 3.  The proof has been taken from
       Chapter 4 of Don Monk's notes on Set Theory.  See
       ~ http://euclid.colorado.edu/~~monkd/setth.pdf .  (Contributed by
       Jonathan Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    bnj60 $p |- ( R _FrSe A -> F Fn A ) $=
      ( vg vh wfun cv wral cdm w-bnj15 cuni cres wceq bnj1497 wcel eqid bnj1311
      cin 3expia ralrimiv ralrimiva biid bnj1383 sylancr funeqi bnj1498 bnj1422
      wa sylibr ) BEUAZGBVADUBZQZGQVAORZQODSZVDVDTPRZTUIZUCVFVGUCUDZPDSZODSZVCA
      BCDEFOHIJKLMUEVAVIODVAVDDUFZUSVHPDVAVKVFDUFVHABCDVGEFOPHIJKLMVGUGZUHUJUKU
      LVEVEVJUSZDVGOPVEUMVLVMUMUNUOGVBNUPUTABCDEFGHIJKLMNUQUR $.
  $}

  ${
    $d A x $.  $d G d $.  $d Y d $.  $d d f x $.
    bnj1514.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1514.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1514.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    $( Technical lemma for ~ bnj1500 .  This lemma may no longer be used or
       have become an indirect lemma of the theorem in question (i.e. a lemma
       of a lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1514 $p |- ( f e. C -> A. x e. dom f ( f ` x ) = ( G ` Y ) ) $=
      ( cv wcel cfv wceq cdm wral wfn wa w3a bnj1436 df-rex 3anass bnj133 sylib
      wrex wex simp3 fndm 3ad2ant2 raleqdv mpbird bnj593 bnj937 ) FMZDNZAMUPOHG
      OPZAUPQZRZIUQIMZCNZUPVASZURAVARZUAZUTIUQVCVDTZICUGZVEIUHVGFDLUBVGVBVFTVEI
      VFICUCVBVCVDUDUEUFVEUTVDVBVCVDUIVEURAUSVAVCVBUSVAPVDVAUPUJUKULUMUNUO $.
  $}

  ${
    $d d f $.  $d d ph $.  $d d x $.
    bnj1518.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1518.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1518.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1518.4 $e |- F = U. C $.
    bnj1518.5 $e |- ( ph <-> ( R _FrSe A /\ x e. A ) ) $.
    bnj1518.6 $e |- ( ps <-> ( ph /\ f e. C /\ x e. dom f ) ) $.
    $( Technical lemma for ~ bnj1500 .  This lemma may no longer be used or
       have become an indirect lemma of the theorem in question (i.e. a lemma
       of a lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1518 $p |- ( ps -> A. d ps ) $=
      ( cv wcel cdm w3a nfv wfn cfv wceq wral wrex cab nfre1 nfcxfr nfcri nf3an
      wa nfab nfxfr nf5ri ) BLBAHSZFTZCSZURUATZUBLRAUSVALALUCLHFLFURLSZUDUTURUE
      KJUEUFCVBUGUNZLEUHZHUIOVDLHVCLEUJUOUKULVALUCUMUPUQ $.
  $}

  ${
    $d A d $.  $d G d $.  $d R d $.  $d d x $.
    bnj1519.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1519.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1519.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1519.4 $e |- F = U. C $.
    $( Technical lemma for ~ bnj1500 .  This lemma may no longer be used or
       have become an indirect lemma of the theorem in question (i.e. a lemma
       of a lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1519 $p |- ( ( F ` x ) = ( G ` <. x , ( F |` _pred ( x , A , R ) ) >. )
        -> A. d ( F ` x ) = ( G ` <. x , ( F |` _pred ( x , A , R ) ) >. ) ) $=
      ( cv cfv wceq nfcxfr nfcv nffv c-bnj14 cres cop cuni wfn wral wa wrex cab
      nfre1 nfab nfuni nfres nfop nfeq nf5ri ) AOZGPZUQGBEUQUAZUBZUCZHPZQJJURVB
      JUQGJGDUDNJDJDFOZJOZUEUQVCPIHPQAVDUFUGZJCUHZFUIMVFJFVEJCUJUKRULRZJUQSZTJV
      AHJHSJUQUTVHJGUSVGJUSSUMUNTUOUP $.
  $}

  ${
    $d A f w $.  $d C w $.  $d F w $.  $d G f w $.  $d R f w $.  $d f w x $.
    bnj1520.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1520.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1520.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1520.4 $e |- F = U. C $.
    $( Technical lemma for ~ bnj1500 .  This lemma may no longer be used or
       have become an indirect lemma of the theorem in question (i.e. a lemma
       of a lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1520 $p |- ( ( F ` x ) = ( G ` <. x , ( F |` _pred ( x , A , R ) ) >. )
        -> A. f ( F ` x ) = ( G ` <. x , ( F |` _pred ( x , A , R ) ) >. ) ) $=
      ( vw cv cfv wceq nfcv nffv c-bnj14 cres cop cuni wfn wral wa wrex bnj1317
      nfcii nfuni nfcxfr nfres nfop nfeq nf5ri ) APZGQZUQGBEUQUAZUBZUCZHQZRFFUR
      VBFUQGFGDUDNFDFODFPZJPZUEUQVCQIHQRAVDUFUGJCUHFODMUIUJUKULZFUQSZTFVAHFHSFU
      QUTVFFGUSVEFUSSUMUNTUOUP $.
  $}

  ${
    $d A d f x $.  $d B f $.  $d C w $.  $d G d f x $.  $d R d f x $.
    $d Y d $.  $d d f ph $.  $d f w $.
    bnj1501.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1501.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1501.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1501.4 $e |- F = U. C $.
    bnj1501.5 $e |- ( ph <-> ( R _FrSe A /\ x e. A ) ) $.
    bnj1501.6 $e |- ( ps <-> ( ph /\ f e. C /\ x e. dom f ) ) $.
    bnj1501.7 $e |- ( ch <-> ( ps /\ d e. B /\ dom f = d ) ) $.
    $( Technical lemma for ~ bnj1500 .  This lemma may no longer be used or
       have become an indirect lemma of the theorem in question (i.e. a lemma
       of a lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1501 $p |- ( R _FrSe A -> A. x e. A ( F ` x ) = ( G ` <. x , ( F |`
        _pred ( x , A , R ) ) >. ) ) $=
      ( vw w-bnj15 cv cfv c-bnj14 cres cop wceq cdm wcel ciun simprbi wfn bnj60
      fndm syl bnj832 eleqtrrd cuni dmeqi wral wa wrex bnj1317 bnj1400 syl6eleq
      eqtri bnj1405 bnj1209 bnj1436 bnj1299 bnj31 bnj836 bnj1518 bnj1521 bnj930
      wfun bnj835 wss elssuni syl6sseqr simp3bi bnj1502 bnj1514 bnj1294 bnj1517
      eqtrd eleqtrd bnj1503 opeq2d syl6eqr fveq2d eqtr4d bnj593 bnj1519 bnj1397
      sseqtr4d bnj1520 bnj1459 ) EHUBZADUCZJUDZXAJEHXAUEZUFZUGZKUDZUHZDERAXGIAB
      XGIXAIUCZUIZUJZABIGAIGXIXAAXAJUIZIGXIUKZAXAEXKAWTXAEUJZRULWTXMXKEUHZARWTJ
      EUMXNDEFGHIJKLMNOPQUNZEJUOUPUQURXKGUSZUIXLJXPQUTIUAGXHMUCZUMZXAXHUDZLKUDZ
      UHZDXQVAZVBMFVCZIUAGPVDVEVGVFVHSVIBXGMBCXGMXIXQUHZBCMFAXHGUJZXJYDMFVCBSYE
      XRYDMFYEXRYBMFYCIGPVJVKXQXHUOVLVMTABDEFGHIJKLMNOPQRSVNVOCXBXTXFBXQFUJZYDX
      BXTUHCTBXBXSXTBXAJXHAYEXJJVQZBSWTXMYGARWTEJXOVPUQVRZAYEXJXHJVSZBSYEXHXPJX
      HGVTQWAVMZBAYEXJSWBZWCBYADXIAYEXJYADXIVABSDEFGHIKLMNOPWDVMYKWEWGVRCXELKCX
      EXAXHXCUFZUGLCXDYLXACXCJXHBYFYDYGCTYHVRBYFYDYICTYJVRCXCXQXICXCXQVSZDXQBYF
      YDYMDXQVAZCTXQEVSYNMFNWFVMCXAXIXQBYFYDXJCTYKVRCBYFYDTWBZWHWEYOWQWIWJOWKWL
      WMWNDEFGHIJKLMNOPQWOWPWNDEFGHIJKLMNOPQWRWPWS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Well-founded recursion, part 2 of 3
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A d f x $.  $d B f $.  $d G d f x $.  $d R d f x $.  $d Y d $.
    bnj1500.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1500.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1500.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1500.4 $e |- F = U. C $.
    $( Well-founded recursion, part 2 of 3.  The proof has been taken from
       Chapter 4 of Don Monk's notes on Set Theory.  See
       ~ http://euclid.colorado.edu/~~monkd/setth.pdf .  (Contributed by
       Jonathan Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1500 $p |- ( R _FrSe A -> A. x e. A ( F ` x ) = ( G ` <. x , ( F |`
        _pred ( x , A , R ) ) >. ) ) $=
      ( w-bnj15 cv wcel wa w3a biid cdm wceq bnj1501 ) BEOAPZBQRZUEFPZDQUDUFUAZ
      QSZUHJPZCQUGUIUBSZABCDEFGHIJKLMNUETUHTUJTUC $.
  $}

  ${
    $d A x $.  $d B w $.  $d C w $.  $d F w $.  $d H w x $.  $d R x $.
    $d d w x $.  $d f x $.
    bnj1525.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1525.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1525.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1525.4 $e |- F = U. C $.
    bnj1525.5 $e |- ( ph <-> ( R _FrSe A /\ H Fn A /\ A. x e. A ( H ` x ) = ( G
        ` <. x , ( H |` _pred ( x , A , R ) ) >. ) ) ) $.
    bnj1525.6 $e |- ( ps <-> ( ph /\ F =/= H ) ) $.
    $( Technical lemma for ~ bnj1522 .  This lemma may no longer be used or
       have become an indirect lemma of the theorem in question (i.e. a lemma
       of a lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1525 $p |- ( ps -> A. x ps ) $=
      ( vw wne wa w-bnj15 wfn cv cfv c-bnj14 cres cop wceq wral w3a nfra1 nf3an
      nfv nfxfr cuni bnj1309 bnj1307 nfcii nfuni nfcxfr nfcv nfne nfan nf5ri )
      BCBAIKUAZUBCSAVGCADGUCZKDUDZCUEZKUFVJKDGVJUGUHUIJUFUJZCDUKZULCRVHVIVLCVHC
      UOVICUOVKCDUMUNUPCIKCIFUQQCFCTFCTEFHJLMPCTDEGMNURUSUTVAVBCKVCVDVEUPVF $.
  $}

  ${
    $d A w x y $.  $d F w y $.  $d G w x y $.  $d R w x y $.
    bnj1529.1 $e |- ( ch -> A. x e. A ( F ` x ) = ( G ` <. x , ( F |` _pred ( x
        , A , R ) ) >. ) ) $.
    bnj1529.2 $e |- ( w e. F -> A. x w e. F ) $.
    $( Technical lemma for ~ bnj1522 .  This lemma may no longer be used or
       have become an indirect lemma of the theorem in question (i.e. a lemma
       of a lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1529 $p |- ( ch -> A. y e. A ( F ` y ) = ( G ` <. y , ( F |` _pred ( y ,
        A , R ) ) >. ) ) $=
      ( cv cfv c-bnj14 cres cop wceq wral nfv nfcv nffv nfcii nfres nfop bnj602
      nfeq fveq2 id reseq2d opeq12d fveq2d eqeq12d cbvral sylib ) ABKZGLZUNGEFU
      NMZNZOZHLZPZBEQCKZGLZVAGEFVAMZNZOZHLZPZCEQIUTVGBCEUTCRBVBVFBVAGBDGJUAZBVA
      SZTBVEHBHSBVAVDVIBGVCVHBVCSUBUCTUEUNVAPZUOVBUSVFUNVAGUFVJURVEHVJUNVAUQVDV
      JUGVJUPVCGEFUNVAUDUHUIUJUKULUM $.
  $}

  ${
    $d A d f v x $.  $d A d w x $.  $d A w x y z $.  $d B f $.  $d B w $.
    $d C w $.  $d D y z $.  $d F w y z $.  $d G d f v x $.  $d G d w x $.
    $d G w x y $.  $d H v w x y z $.  $d R d f x $.  $d R d w x $.
    $d R v w x y z $.  $d Y d $.  $d ch y $.
    bnj1523.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1523.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1523.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1523.4 $e |- F = U. C $.
    bnj1523.5 $e |- ( ph <-> ( R _FrSe A /\ H Fn A /\ A. x e. A ( H ` x ) = ( G
        ` <. x , ( H |` _pred ( x , A , R ) ) >. ) ) ) $.
    bnj1523.6 $e |- ( ps <-> ( ph /\ F =/= H ) ) $.
    bnj1523.7 $e |- ( ch <-> ( ps /\ x e. A /\ ( F ` x ) =/= ( H ` x ) ) ) $.
    bnj1523.8 $e |- D = { x e. A | ( F ` x ) =/= ( H ` x ) } $.
    bnj1523.9 $e |- ( th <-> ( ch /\ y e. D /\ A. z e. D -. z R y ) ) $.
    $( Technical lemma for ~ bnj1522 .  This lemma may no longer be used or
       have become an indirect lemma of the theorem in question (i.e. a lemma
       of a lemma... of the theorem).  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1523 $p |- ( ( R _FrSe A /\ H Fn A /\ A. x e. A ( H ` x ) = ( G ` <. x ,
        ( H |` _pred ( x , A , R ) ) >. ) ) -> F = H ) $=
      ( vw vv w-bnj15 wfn cv cfv c-bnj14 cres cop wceq wral w3a wex wcel wbr wn
      wne bnj60 bnj835 bnj832 simp2bi wss bnj213 a1i wi wal simp3bi con2b albii
      bnj1211 sylib bnj1418 imim1i alimi syl bnj1142 cuni bnj1309 bnj1307 nfcii
      nfuni nfcxfr nfcrii bnj1534 bnj1533 bnj1536 opeq2d fveq2d bnj1500 bnj1529
      ssrab3 bnj1213 bnj1294 ax-5 3eqtr4d bnj1538 bnj836 neneqd pm2.65i c0 wrex
      nex simp1bi rabeq2i sylanbrc ne0i syl3anc bnj1209 simprbi bnj1542 bnj1525
      bnj69 mto bnj1521 bnj1541 sylbir ) HLUJZPHUKZEULZPUMZYFPHLYFUNZUOUPOUMUQE
      HURZUSANPUQUCBANPUDBCEUTCECDFUTDFDFULZNUMZYJPUMZUQDYJNHLYJUNZUOZUPZOUMZYJ
      PYMUOZUPZOUMZYKYLDYOYRODYNYQYJDGHYMNPCYJKVAZGULZYJLVBZVCZGKURZNHUKZDUGBYF
      HVAZYFNUMZYGVDZUUECUEANPVDZUUEBUDYDYEYIUUEAUCEHIJLMNOQRSTUAUBVEVFVGZVFVFC
      YTUUDYEDUGBUUFUUHYECUEAUUIYEBUDAYDYEYIUCVHVGZVFVFYMHVIDHLYJVJZVKDGHYMUUAN
      UMKUUAPUMDUUAKVAZVCZGYMDUUBUUNVLZGVMZUUAYMVAZUUNVLZGVMDUUMUUCVLZGVMUUPDUU
      CGKDCYTUUDUGVNVQUUSUUOGUUMUUBVOVPVRUUOUURGUUQUUBUUNFGHLVSVTWAWBWCUULEGUHH
      KNPUFEUHNENJWDUBEJEUHJEUHIJMOQRUAEUHHILRSWEWFWGWHWIWJZWKWLWMWNWODYKYPUQZF
      HCYTUUDUVAFHURDUGCEFUHHLNOBUUFUUHUUGYFNYHUOUPOUMUQEHURZCUEAUUIUVBBUDYDYEY
      IUVBAUCEHIJLMNOQRSTUAUBWPVFVGVFUUTWQVFDFKHUUHEHKUFWRZDCYTUUDUGVHWSZWTDYLY
      SUQZFHCYTUUDUVEFHURDUGCEFUIHLPOBUUFUUHYICUEAUUIYIBUDAYDYEYIUCVNVGVFUIULPV
      AEXAWQVFUVDWTXBDYKYLCYTUUDYKYLVDZDUGUVFFKHEFUHHKNPUFUUTWKXCXDXEXFXIUUDCDF
      KCYDKHVIZKXGVDZUUDFKXHBUUFUUHYDCUEAUUIYDBUDAYDYEYIUCXJVGVFUVGCUVCVKCYFKVA
      ZUVHCUUFUUHUVICBUUFUUHUEVHCBUUFUUHUEVNUUHEKHUFXKXLKYFXMWBFGHKLXSXNUGXOXTX
      IUUHBCEHBEUHHNPUUJUUKBAUUIUDXPUUTXQUEABEHIJLMNOPQRSTUAUBUCUDXRYAXTYBYC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Well-founded recursion, part 3 of 3
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A d f x $.  $d A x y z $.  $d B f $.  $d F y z $.  $d G d f x $.
    $d G x y $.  $d H x y z $.  $d R d f x $.  $d R x y z $.  $d Y d $.
    bnj1522.1 $e |- B = { d | ( d C_ A /\ A. x e. d _pred ( x , A , R ) C_ d )
        } $.
    bnj1522.2 $e |- Y = <. x , ( f |` _pred ( x , A , R ) ) >. $.
    bnj1522.3 $e |- C = { f | E. d e. B ( f Fn d /\ A. x e. d ( f ` x ) = ( G `
        Y ) ) } $.
    bnj1522.4 $e |- F = U. C $.
    $( Well-founded recursion, part 3 of 3.  The proof has been taken from
       Chapter 4 of Don Monk's notes on Set Theory.  See
       ~ http://euclid.colorado.edu/~~monkd/setth.pdf .  (Contributed by
       Jonathan Ben-Naim, 3-Jun-2011.)  (New usage is discouraged.) $)
    bnj1522 $p |- ( ( R _FrSe A /\ H Fn A /\ A. x e. A ( H ` x ) = ( G ` <. x ,
        ( H |` _pred ( x , A , R ) ) >. ) ) -> F = H ) $=
      ( vz cv cfv w3a biid w-bnj15 wfn c-bnj14 cres cop wceq wral wne wcel crab
      vy wa wbr wn eqid bnj1523 ) BEUAIBUBAQZIRZUQIBEUQUCUDUEHRUFABUGSZUSGIUHUL
      ZUTUQBUIUQGRURUHZSZVBUKQZVAABUJZUIPQVCEUMUNPVDUGSZAUKPBCDVDEFGHIJKLMNOUST
      UTTVBTVDUOVETUP $.
  $}

$( (End of Jonathan Ben-Naim's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Mario Carneiro
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Predicate calculus with all distinct variables
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( Distinct variable version of ~ ax-11 .  (Contributed by Mario Carneiro,
       14-Aug-2015.) $)
    ax-7d $a |- ( A. x A. y ph -> A. y A. x ph ) $.

    $( Distinct variable version of ~ ax-7 .  (Contributed by Mario Carneiro,
       14-Aug-2015.) $)
    ax-8d $a |- ( x = y -> ( x = z -> y = z ) ) $.

    $( Distinct variable version of ~ ax-6 , equal variables case.
       (Contributed by Mario Carneiro, 14-Aug-2015.) $)
    ax-9d1 $a |- -. A. x -. x = x $.

    $( Distinct variable version of ~ ax-6 , distinct variables case.
       (Contributed by Mario Carneiro, 14-Aug-2015.) $)
    ax-9d2 $a |- -. A. x -. x = y $.

    $( Distinct variable version of ~ axc11n .  (Contributed by Mario Carneiro,
       14-Aug-2015.) $)
    ax-10d $a |- ( A. x x = y -> A. y y = x ) $.

    $( Distinct variable version of ~ ax-12 .  (Contributed by Mario Carneiro,
       14-Aug-2015.) $)
    ax-11d $a |- ( x = y -> ( A. y ph -> A. x ( x = y -> ph ) ) ) $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Miscellaneous stuff
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    quartfull.a $e |- ( ph -> A e. CC ) $.
    quartfull.b $e |- ( ph -> B e. CC ) $.
    quartfull.c $e |- ( ph -> C e. CC ) $.
    quartfull.d $e |- ( ph -> D e. CC ) $.
    quartfull.x $e |- ( ph -> X e. CC ) $.
    quartfull.t0 $e |- ( ph -> ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^
      2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 )
      / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. (
      ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ;
      ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - (
      ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) /
      2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x.
      ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) /
      ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( (
      ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x.
      A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. (
      A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) =/= 0 ) $.
    quartfull.m0 $e |- ( ph -> -u ( ( ( ( 2 x. ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) )
      ) ) + ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) -
      ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) )
      + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A )
      / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^
      4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^
      2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 )
      / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. (
      ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ;
      ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 )
      x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( (
      ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^
      3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) + ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 )
      ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x.
      B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) / ( ( ( ( ( -u
      ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C
      - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B
      - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( (
      A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) +
      ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) -
      ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) )
      + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A )
      / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^
      4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^
      2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) /
      ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 )
      ^c ( 1 / 3 ) ) ) ) / 3 ) =/= 0 ) $.
    $( The quartic equation, written out in full.  This actually makes a fairly
       good Metamath stress test.  Note that the length of this formula could
       be shortened significantly if the intermediate expressions were expanded
       and simplified, but it's not like this theorem will be used anyway.
       (Contributed by Mario Carneiro, 6-May-2015.) $)
    quartfull $p |- ( ph -> ( ( ( ( X ^ 4 ) + ( A x. ( X ^ 3 ) ) ) + ( ( B x. (
      X ^ 2 ) ) + ( ( C x. X ) + D ) ) ) = 0 <-> ( ( X = ( ( -u ( A / 4 ) - ( (
      sqrt ` -u ( ( ( ( 2 x. ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ) + ( ( ( ( (
      -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( (
      C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( (
      B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( (
      ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) )
      + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) )
      - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) )
      ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A
      ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A
      ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) )
      ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B )
      / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2
      ) ^c ( 1 / 3 ) ) ) + ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ;
      1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) -
      ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) / ( ( ( ( ( -u ( 2 x. ( ( B -
      ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B )
      / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 )
      x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B )
      / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( (
      ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( (
      ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. (
      ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( (
      ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) )
      ) ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2
      x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( (
      3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) )
      ) ) / 3 ) ) / 2 ) ) + ( sqrt ` ( ( -u ( ( ( sqrt ` -u ( ( ( ( 2 x. ( B -
      ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ) + ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 )
      x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + (
      ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 )
      ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) -
      ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x.
      ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A
      x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3
      / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 )
      x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - (
      4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D -
      ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5
      6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) + ( ( ( (
      B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A )
      / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^
      4 ) ) ) ) ) ) / ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) )
      ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) )
      ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - (
      ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6
      ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8
      ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) +
      ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2
      ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 )
      - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B -
      ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4
      ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 )
      ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) ) / 3 ) ) / 2 ) ^ 2 ) - (
      ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) / 2 ) ) + ( ( ( ( C - ( ( A x. B ) / 2
      ) ) + ( ( A ^ 3 ) / 8 ) ) / 4 ) / ( ( sqrt ` -u ( ( ( ( 2 x. ( B - ( ( 3
      / 8 ) x. ( A ^ 2 ) ) ) ) + ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A
      ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3
      ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x.
      ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 /
      ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B -
      ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B )
      / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 )
      x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B )
      / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. (
      ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C
      x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 )
      x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) + ( ( ( ( B -
      ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4
      ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 )
      ) ) ) ) ) / ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3
      ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2
      ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C
      x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 )
      x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 )
      x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + (
      ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 )
      ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) -
      ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - (
      ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 )
      ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) )
      ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) ) / 3 ) ) / 2 ) ) ) ) ) \/ X
      = ( ( -u ( A / 4 ) - ( ( sqrt ` -u ( ( ( ( 2 x. ( B - ( ( 3 / 8 ) x. ( A
      ^ 2 ) ) ) ) + ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^
      3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^
      2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( (
      C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 )
      x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 )
      x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + (
      ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 )
      ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) -
      ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - (
      ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 )
      ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) )
      ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) + ( ( ( ( B - ( ( 3 / 8 ) x.
      ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A
      ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) / ( (
      ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x.
      ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2
      x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) +
      ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) )
      ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^
      3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^
      2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( (
      C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 )
      x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^
      2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 )
      x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) )
      ) / 2 ) ^c ( 1 / 3 ) ) ) ) / 3 ) ) / 2 ) ) - ( sqrt ` ( ( -u ( ( ( sqrt `
      -u ( ( ( ( 2 x. ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ) + ( ( ( ( ( -u ( 2
      x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - (
      ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - (
      ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^
      2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + (
      sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - (
      ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) +
      ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) /
      4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4
      ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2
      ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ;
      1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c
      ( 1 / 3 ) ) ) + ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2
      x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( (
      3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) / ( ( ( ( ( -u ( 2 x. ( ( B - ( (
      3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2
      ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. (
      A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ;
      1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( (
      -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( (
      C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( (
      B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( (
      ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) )
      ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2
      x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( (
      3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) )
      ) ) / 3 ) ) / 2 ) ^ 2 ) - ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) / 2 ) ) +
      ( ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) / 4 ) / ( ( sqrt `
      -u ( ( ( ( 2 x. ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ) + ( ( ( ( ( -u ( 2
      x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - (
      ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - (
      ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^
      2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + (
      sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - (
      ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) +
      ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) /
      4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4
      ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2
      ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ;
      1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c
      ( 1 / 3 ) ) ) + ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2
      x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( (
      3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) / ( ( ( ( ( -u ( 2 x. ( ( B - ( (
      3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2
      ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. (
      A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ;
      1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( (
      -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( (
      C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( (
      B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( (
      ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) )
      ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2
      x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( (
      3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) )
      ) ) / 3 ) ) / 2 ) ) ) ) ) ) \/ ( X = ( ( -u ( A / 4 ) + ( ( sqrt ` -u ( (
      ( ( 2 x. ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ) + ( ( ( ( ( -u ( 2 x. ( ( B
      - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B
      ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8
      ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B
      ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( (
      ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. (
      ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x.
      ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + (
      ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) )
      ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1
      2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - (
      ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 )
      ) ) + ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D -
      ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5
      6 ) x. ( A ^ 4 ) ) ) ) ) ) / ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. (
      A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^
      3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) )
      x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( (
      3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( (
      B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x.
      B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 /
      8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x.
      B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4
      x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - (
      ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6
      ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) ) / 3 ) ) /
      2 ) ) + ( sqrt ` ( ( -u ( ( ( sqrt ` -u ( ( ( ( 2 x. ( B - ( ( 3 / 8 ) x.
      ( A ^ 2 ) ) ) ) + ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) )
      ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 )
      ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D -
      ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5
      6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 /
      8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) )
      + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^
      2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6
      ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B
      - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) /
      4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4
      ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) + ( ( ( ( B - ( ( 3 / 8
      ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( (
      ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) )
      / ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ;
      2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + (
      ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4
      ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 )
      ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 )
      ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8
      ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D
      - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2
      5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 ) x.
      ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A
      ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 )
      ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) ) / 3 ) ) / 2 ) ^ 2 ) - ( ( B - ( ( 3 / 8
      ) x. ( A ^ 2 ) ) ) / 2 ) ) - ( ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3
      ) / 8 ) ) / 4 ) / ( ( sqrt ` -u ( ( ( ( 2 x. ( B - ( ( 3 / 8 ) x. ( A ^ 2
      ) ) ) ) + ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 )
      ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 )
      ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x.
      A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. (
      A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. (
      A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^
      3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) )
      x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( (
      3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3
      / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) +
      ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) )
      ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) + ( ( ( ( B - ( ( 3 / 8 ) x. ( A
      ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2
      ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) / ( ( ( (
      ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( (
      ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. (
      ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( (
      ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) )
      ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 )
      ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 )
      ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x.
      A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. (
      A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) )
      ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B
      ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) /
      2 ) ^c ( 1 / 3 ) ) ) ) / 3 ) ) / 2 ) ) ) ) ) \/ X = ( ( -u ( A / 4 ) + (
      ( sqrt ` -u ( ( ( ( 2 x. ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ) + ( ( ( ( (
      -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( (
      C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( (
      B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( (
      ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) )
      + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) )
      - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) )
      ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A
      ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A
      ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) )
      ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B )
      / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2
      ) ^c ( 1 / 3 ) ) ) + ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ;
      1 2 x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) -
      ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) / ( ( ( ( ( -u ( 2 x. ( ( B -
      ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B )
      / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 )
      x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B )
      / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( (
      ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( (
      ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. (
      ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( (
      ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) )
      ) ^ 2 ) - ( 4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2
      x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( (
      3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) )
      ) ) / 3 ) ) / 2 ) ) - ( sqrt ` ( ( -u ( ( ( sqrt ` -u ( ( ( ( 2 x. ( B -
      ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ) + ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 )
      x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + (
      ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 )
      ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) -
      ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x.
      ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A
      x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3
      / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 )
      x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - (
      4 x. ( ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D -
      ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5
      6 ) x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) + ( ( ( (
      B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A )
      / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^
      4 ) ) ) ) ) ) / ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) )
      ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) )
      ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - (
      ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6
      ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8
      ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) +
      ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2
      ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 )
      - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B -
      ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4
      ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 )
      ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) ) / 3 ) ) / 2 ) ^ 2 ) - (
      ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) / 2 ) ) - ( ( ( ( C - ( ( A x. B ) / 2
      ) ) + ( ( A ^ 3 ) / 8 ) ) / 4 ) / ( ( sqrt ` -u ( ( ( ( 2 x. ( B - ( ( 3
      / 8 ) x. ( A ^ 2 ) ) ) ) + ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A
      ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3
      ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x.
      ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 /
      ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B -
      ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B )
      / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 )
      x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B )
      / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. (
      ( ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C
      x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 )
      x. ( A ^ 4 ) ) ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) + ( ( ( ( B -
      ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4
      ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 )
      ) ) ) ) ) / ( ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 3
      ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + ( ( A ^ 3 ) / 8 ) ) ^ 2
      ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 ) ) ) x. ( ( D - ( ( C
      x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 )
      x. ( A ^ 4 ) ) ) ) ) ) ) + ( sqrt ` ( ( ( ( -u ( 2 x. ( ( B - ( ( 3 / 8 )
      x. ( A ^ 2 ) ) ) ^ 3 ) ) - ( ; 2 7 x. ( ( ( C - ( ( A x. B ) / 2 ) ) + (
      ( A ^ 3 ) / 8 ) ) ^ 2 ) ) ) + ( ; 7 2 x. ( ( B - ( ( 3 / 8 ) x. ( A ^ 2 )
      ) ) x. ( ( D - ( ( C x. A ) / 4 ) ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) -
      ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) ) ) ) ) ) ) ^ 2 ) - ( 4 x. ( ( ( ( B - (
      ( 3 / 8 ) x. ( A ^ 2 ) ) ) ^ 2 ) + ( ; 1 2 x. ( ( D - ( ( C x. A ) / 4 )
      ) + ( ( ( ( A ^ 2 ) x. B ) / ; 1 6 ) - ( ( 3 / ; ; 2 5 6 ) x. ( A ^ 4 ) )
      ) ) ) ) ^ 3 ) ) ) ) ) / 2 ) ^c ( 1 / 3 ) ) ) ) / 3 ) ) / 2 ) ) ) ) ) ) )
      ) ) $=
      ( cdiv co c2 cexp cmul cmin eqidd c3 c8 caddc c4 c1 c6 cdc c5 cneg c7 cfv
      csqrt ccxp quart ) ABCDECUAUBNOBPQOZROSOZDBCROPNOSOBUAQOUBNOUCOZEDBROUDNO
      SOUOCROUEUFUGNOUAPUHUGUFUGNOBUDQOROSOUCOZPUPROPUPUAQOROUIPUJUGUQPQOROSOUJ
      PUGUPURROROUCOZUSPQOUDUPPQOUEPUGURROUCOZUAQOROSOULUKZUCOPNOUEUANOUMOZUCOU
      TVBNOUCOUANOUIZULUKPNOZVBUTBUDNOUIZVDPQOUIUPPNOSOZUQUDNOVDNOZUCOULUKZVFVG
      SOULUKZVCUSVAFGHIJKAVETAUPTAUQTAURTAUTTAUSTAVATAVDTAVCTAVBTLMAVHTAVITUN
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derangements and the Subfactorial
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d f g h m n s x y z A $.  $d b c f g x y F $.  $d c f g h k m n x y z N $.
    $d b k m n $.  $d b c f g h s x y z B $.  $d b c x y C $.  $d b c x y ph $.
    $d n D $.  $d c f n x y K $.  $d b f g x y M $.  $d m n x y S $.  $d f V $.
    $( Lemma for derangements.  (Contributed by Mario Carneiro,
       19-Jan-2015.) $)
    deranglem $p |- ( A e. Fin ->
      { f | ( f : A -1-1-onto-> A /\ ph ) } e. Fin ) $=
      ( cfn wcel cv wf1o wa cab cmap co wss mapfi wf f1of adantr elmapg syl5ibr
      abssdv ssfi syl2anc anidms ) BDEZBBCFZGZAHZCIZDEZUCUCHZBBJKZDEUGUJLUHBBMU
      IUFCUJUFUDUJEUIBBUDNZUEUKABBUDOPBBUDDDQRSUJUGTUAUB $.

    derang.d $e |- D = ( x e. Fin |-> ( # ` { f | ( f : x -1-1-onto-> x /\
      A. y e. x ( f ` y ) =/= y ) } ) ) $.
    $( Define the derangement function, which counts the number of bijections
       from a set to itself such that no element is mapped to itself.
       (Contributed by Mario Carneiro, 19-Jan-2015.) $)
    derangval $p |- ( A e. Fin -> ( D ` A ) =
      ( # ` { f | ( f : A -1-1-onto-> A /\ A. y e. A ( f ` y ) =/= y ) } ) ) $=
      ( cv wf1o cfv wne wral wa cab chash cfn wceq f1oeq2 f1oeq3 bitrd raleq
      anbi12d abbidv fveq2d fvex fvmpt ) ACAGZUFEGZHZBGZUGIUIJZBUFKZLZEMZNICCUG
      HZUJBCKZLZEMZNIODUFCPZUMUQNURULUPEURUHUNUKUOURUHCUFUGHUNUFCUFUGQUFCCUGRSU
      JBUFCTUAUBUCFUQNUDUE $.

    $( The derangement number is a function from finite sets to nonnegative
       integers.  (Contributed by Mario Carneiro, 19-Jan-2015.) $)
    derangf $p |- D : Fin --> NN0 $=
      ( cfn cn0 cv wf1o cfv wne wral cab chash wcel deranglem hashcl syl fmpti
      wa ) AFGAHZUADHZIBHZUBJUCKBUALZTDMZNJZCEUAFOUEFOUFGOUDUADPUEQRS $.

    $( The derangement number of the empty set.  (Contributed by Mario
       Carneiro, 19-Jan-2015.) $)
    derang0 $p |- ( D ` (/) ) = 1 $=
      ( c0 cfv cv wf1o wne wral wa cab chash csn c1 wcel wceq ax-mp cvv biantru
      cfn 0fin derangval ral0 eqid f1o00 mpbiran2 bitr3i abbii df-sn eqtr4i 0ex
      fveq2i hashsng 3eqtri ) FCGZFFDHZIZBHZURGUTJZBFKZLZDMZNGZFOZNGZPFUBQUQVER
      UCABFCDEUDSVDVFNVDURFRZDMVFVCVHDVCUSVHVBUSVABUEUAUSVHFFRFUFFURUGUHUIUJDFU
      KULUNFTQVGPRUMFTUOSUP $.

    $( The derangement number of a singleton.  (Contributed by Mario Carneiro,
       19-Jan-2015.) $)
    derangsn $p |- ( A e. V -> ( D ` { A } ) = 0 ) $=
      ( wcel csn cfv c0 chash cc0 cv wf1o wne wral wa wceq syl cab cfn snfi wss
      derangval ax-mp wf adantr snidg ffvelrn syl2anr wn simpr fveq2 id neeq12d
      f1of rspcva syl2an nelsn pm2.21dd abssdv ss0 fveq2d syl5eq hash0 syl6eq
      ex ) CFHZCIZDJZKLJZMVIVKVJVJENZOZBNZVMJZVOPZBVJQZRZEUAZLJZVLVJUBHVKWASCUC
      ABVJDEGUEUFVIVTKLVIVTKUDVTKSVIVSEKVIVSVMKHZVIVSRZCVMJZVJHZWBVSVJVJVMUGZCV
      JHZWEVIVNWFVRVJVJVMUQUHCFUIZVJVJCVMUJUKWCWDCPZWEULVIWGVRWIVSWHVNVRUMVQWIB
      CVJVOCSZVPWDVOCVOCVMUNWJUOUPURUSWDCUTTVAVHVBVTVCTVDVEVFVG $.

    $( One half of ~ derangen .  (Contributed by Mario Carneiro,
       22-Jan-2015.) $)
    derangenlem $p |- ( ( A ~~ B /\ B e. Fin ) -> ( D ` A ) <_ ( D ` B ) ) $=
      ( vs cfn wcel wa cv wf1o cfv wne wral ccom syl2anc wceq syl vg vh cen wbr
      vz cab chash cle cdom wex simpl bren sylib deranglem adantl wi ccnv f1oco
      ad2ant2lr f1ocnv ad2antlr coass fveq1i simprl f1of fvco3 syl5eq ffvelrnda
      wf sylan simplrr fveq2 neeq12d rspcv sylc eqnetrd necomd simpllr f1ocnvfv
      id necon3d mpd ralrimiva cbvralv jca ex vex f1oeq1 neeq1d ralbidv anbi12d
      fveq1 elab coex cnvex 3imtr4g anbi12i wfo wfn f1ofo adantrr f1ofn simprrl
      simplr cocan2 syl3anc wf1 f1of1 simprll cocan1 bitrd syl5bi dom2d exlimdv
      wb mp2d enfii ancoms hashdom mpbird derangval 3brtr4d ) CDUCUDZDIJZKZCCFL
      ZMZBLZYFNZYHOZBCPZKZFUFZUGNZDDYFMZYJBDPZKZFUFZUGNZCENZDENZUHYEYNYSUHUDZYM
      YRUIUDZYECDHLZMZHUJZYRIJZUUCYEYCUUFYCYDUKCDHULUMYDUUGYCYPDFUNUOZYEUUEUUGU
      UCUPZHYEUUEUUIYEUUEKZUAUBYMYRUUDUALZQZUUDUQZQZUUDUBLZQZUUMQZIUUJCCUUKMZYH
      UUKNZYHOZBCPZKZDDUUNMZYHUUNNZYHOZBDPZKZUUKYMJZUUNYRJUUJUVBUVGUUJUVBKZUVCU
      VFUVICDUULMZDCUUMMZUVCUUEUURUVJYEUVACCDUUDUUKURUSZUUEUVKYEUVBCDUUDUTZVAZD
      CDUULUUMURRUVIUELZUUNNZUVOOZUEDPUVFUVIUVQUEDUVIUVODJZKZUVPUVOUUKUUMQZNZUU
      DNZUVOUVSUVPUVOUUDUVTQZNZUWBUVOUUNUWCUUDUUKUUMVBVCUVIDCUVTVIZUVRUWDUWBSUV
      IDCUVTMZUWEUVIUURUVKUWFUUJUURUVAVDUVNDCCUUKUUMURRDCUVTVETZDCUVOUUDUVTVFVJ
      VGUVSUVOUUMNZUWAOUWBUVOOUVSUWAUWHUVSUWAUWHUUKNZUWHUVIDCUUMVIZUVRUWAUWISUV
      IUVKUWJUVNDCUUMVETZDCUVOUUKUUMVFVJUVSUWHCJUVAUWIUWHOZUVIDCUVOUUMUWKVHUUJU
      URUVAUVRVKUUTUWLBUWHCYHUWHSZUUSUWIYHUWHYHUWHUUKVLUWMVTVMVNVOVPVQUVSUWBUVO
      UWHUWAUVSUUEUWACJUWBUVOSUWHUWASUPYEUUEUVBUVRVRUVIDCUVOUVTUWGVHCDUWAUVOUUD
      VSRWAWBVPWCUVQUVEUEBDUVOYHSZUVPUVDUVOYHUVOYHUUNVLUWNVTVMWDUMWEWFYLUVBFUUK
      UAWGZYFUUKSZYGUURYKUVACCYFUUKWHUWPYJUUTBCUWPYIUUSYHYHYFUUKWLWIWJWKWMZYQUV
      GFUUNUULUUMUUDUUKHWGZUWOWNUUDUWRWOWNYFUUNSZYOUVCYPUVFDDYFUUNWHUWSYJUVEBDU
      WSYIUVDYHYHYFUUNWLWIWJWKWMWPUVHUUOYMJZKUVBCCUUOMZYHUUONZYHOZBCPZKZKZUUJUU
      NUUQSZUUKUUOSZXOZUVHUVBUWTUXEUWQYLUXEFUUOUBWGYFUUOSZYGUXAYKUXDCCYFUUOWHUX
      JYJUXCBCUXJYIUXBYHYHYFUUOWLWIWJWKWMWQUUJUXFUXIUUJUXFKZUXGUULUUPSZUXHUXKDC
      UUMWRZUULCWSZUUPCWSZUXGUXLXOUXKUVKUXMUUEUVKYEUXFUVMVADCUUMWTTUXKUVJUXNUUJ
      UVBUVJUXEUVLXACDUULXBTUXKCDUUPMZUXOUXKUUEUXAUXPYEUUEUXFXDUUJUVBUXAUXDXCZC
      CDUUDUUOURRCDUUPXBTDCUUMUULUUPXEXFUXKCDUUDXGZCCUUKVIZCCUUOVIZUXLUXHXOUUEU
      XRYEUXFCDUUDXHVAUXKUURUXSUUJUURUVAUXEXICCUUKVETUXKUXAUXTUXQCCUUOVETCCDUUD
      UUKUUOXJXFXKWFXLXMWFXNXPYEYMIJZUUGUUBUUCXOYECIJZUYAYDYCUYBCDXQXRZYKCFUNTU
      UHYMYRIXSRXTYEUYBYTYNSUYCABCEFGYATYDUUAYSSYCABDEFGYAUOYB $.

    $( The derangement number is a cardinal invariant, i.e. it only depends on
       the size of a set and not on its contents.  (Contributed by Mario
       Carneiro, 22-Jan-2015.) $)
    derangen $p |- ( ( A ~~ B /\ B e. Fin ) -> ( D ` A ) = ( D ` B ) ) $=
      ( cen wbr cfn wcel wa cfv cle derangenlem syl2anc cn0 ffvelrni cr nn0re
      wceq ensym adantr enfi biimpar derangf syl adantl letri3 syl2an mpbir2and
      wb ) CDHIZDJKZLZCEMZDEMZUAZUPUQNIZUQUPNIZABCDEFGOUODCHIZCJKZUTUMVAUNCDUBU
      CUMVBUNCDUDUEZABDCEFGOPUOUPQKZUQQKZURUSUTLULZUOVBVDVCJQCEABEFGUFZRUGUNVEU
      MJQDEVGRUHVDUPSKUQSKVFVEUPTUQTUPUQUIUJPUK $.

    subfac.n $e |- S = ( n e. NN0 |-> ( D ` ( 1 ... n ) ) ) $.
    $( The subfactorial is defined as the number of derangements (see
       ~ derangval ) of the set ` ( 1 ... N ) ` .  (Contributed by Mario
       Carneiro, 21-Jan-2015.) $)
    subfacval $p |- ( N e. NN0 -> ( S ` N ) = ( D ` ( 1 ... N ) ) ) $=
      ( c1 cv cfz co cfv cn0 wceq oveq2 fveq2d fvex fvmpt ) FGJFKZLMZCNJGLMZCNO
      DUAGPUBUCCUAGJLQRIUCCST $.

    $( Write the derangement number in terms of the subfactorial.  (Contributed
       by Mario Carneiro, 22-Jan-2015.) $)
    derangen2 $p |- ( A e. Fin -> ( D ` A ) = ( S ` ( # ` A ) ) ) $=
      ( cfn wcel chash cfv c1 cfz co cn0 wceq syl mpancom subfacval cen hashfz1
      hashcl wbr wb fzfid hashen mpbid derangen eqtr2d ) CJKZCLMZEMZNUMOPZDMZCD
      MZULUMQKZUNUPRCUDZABDEFGUMHIUASUOCUBUEZULUPUQRULUOLMUMRZUTULURVAUSUMUCSUO
      JKULVAUTUFULNUMUGUOCUHTUIABUOCDFHUJTUK $.

    $( The subfactorial is a function from nonnegative integers to nonnegative
       integers.  (Contributed by Mario Carneiro, 19-Jan-2015.) $)
    subfacf $p |- S : NN0 --> NN0 $=
      ( c1 cv cfz co cfv cn0 wcel wral wf cfn fzfi derangf ffvelrni ax-mp rgenw
      fmpt mpbi ) IFJZKLZCMZNOZFNPNNDQUIFNUGROUIIUFSRNUGCABCEGTUAUBUCFNNUHDHUDU
      E $.

    $( The subfactorial is less than the factorial.  (Contributed by Mario
       Carneiro, 19-Jan-2015.) $)
    subfaclefac $p |- ( N e. NN0 -> ( S ` N ) <_ ( ! ` N ) ) $=
      ( wcel c1 cv cfv wa cab chash cfa cle cfn syl cn0 cfz co wf1o wne wbr wss
      wral anidm abbii fzfid deranglem syl5eqelr simpl ss2abi ssdomg wb hashdom
      cdom mpisyl syl2anc mpbird subfacval wceq derangval eqtrd hashfac hashfz1
      fveq2d eqtr2d 3brtr4d ) GUAJZKGUBUCZVMELZUDZBLZVNMVPUEBVMUHZNZEOZPMZVOEOZ
      PMZGDMZGQMZRVLVTWBRUFZVSWAUSUFZVLWASJZVSWAUGWFVLWAVOVONZEOZSWHVOEVOUIUJVL
      VMSJZWISJVLKGUKZVOVMEULTUMZVRVOEVOVQUNUOVSWASUPUTVLVSSJZWGWEWFUQVLWJWMWKV
      QVMEULTWLVSWASURVAVBVLWCVMCMZVTABCDEFGHIVCVLWJWNVTVDWKABVMCEHVETVFVLWBVMP
      MZQMZWDVLWJWBWPVDWKVMEVGTVLWOGQGVHVIVJVK $.

    $( The subfactorial at zero.  (Contributed by Mario Carneiro,
       19-Jan-2015.) $)
    subfac0 $p |- ( S ` 0 ) = 1 $=
      ( cc0 cfv c1 cfz co c0 cn0 wcel wceq 0nn0 subfacval ax-mp fveq2i derang0
      fz10 3eqtri ) IDJZKILMZCJZNCJKIOPUEUGQRABCDEFIGHSTUFNCUCUAABCEGUBUD $.

    $( The subfactorial at one.  (Contributed by Mario Carneiro,
       19-Jan-2015.) $)
    subfac1 $p |- ( S ` 1 ) = 0 $=
      ( c1 cfv cfz co csn cc0 cn0 wcel wceq 1nn0 subfacval ax-mp cz fzsn fveq2i
      1z derangsn 3eqtri ) IDJZIIKLZCJZIMZCJZNIOPZUGUIQRABCDEFIGHSTUHUJCIUAPUHU
      JQUDIUBTUCULUKNQRABICEOGUETUF $.

    ${
      subfacp1lem.a $e |- A = { f |
        ( f : ( 1 ... ( N + 1 ) ) -1-1-onto-> ( 1 ... ( N + 1 ) ) /\
          A. y e. ( 1 ... ( N + 1 ) ) ( f ` y ) =/= y ) } $.
      ${
        subfacp1lem1.n $e |- ( ph -> N e. NN ) $.
        subfacp1lem1.m $e |- ( ph -> M e. ( 2 ... ( N + 1 ) ) ) $.
        subfacp1lem1.x $e |- M e. _V $.
        subfacp1lem1.k $e |- K = ( ( 2 ... ( N + 1 ) ) \ { M } ) $.
        $( Lemma for ~ subfacp1 .  The set ` K ` together with ` { 1 , M } `
           partitions the set ` 1 ... ( N + 1 ) ` .  (Contributed by Mario
           Carneiro, 23-Jan-2015.) $)
        subfacp1lem1 $p |- ( ph ->
          ( ( K i^i { 1 , M } ) = (/) /\
            ( K u. { 1 , M } ) = ( 1 ... ( N + 1 ) ) /\
            ( # ` K ) = ( N - 1 ) ) ) $=
          ( c1 wcel cpr cin c0 wceq cun caddc co cfz chash cfv cmin cv disj wne
          wn wo wa csn cdif cle wbr eldifi elfzle1 clt 1lt2 1re 2re ltnlei mpbi
          breq2 mtbiri necon2ai 3syl eldifsni jca eleq2s neanior sylib vex elpr
          c2 sylnibr mprgbir a1i uncom cz 1z ax-mp uneq1i undif1 eqtr2i uneq12i
          fzsn df-pr equncomi uneq2i unass eqtr4i 3eqtr4i wss snssd df-2 oveq1i
          ssequn2 syl6eq uneq2d peano2nnd nnuz syl6eleq eluzfz1 fzsplit syl5eqr
          cuz cn eqtr4d oveq2i cfn fzfi diffi eqeltri hashun mp3an fveq2d neeq1
          syl vtoclga necomd cvv wb 1ex hashprg mp2an oveq2d 3eqtr3a cn0 nnnn0d
          prfi hashfz1 eqtr3d nncnd 2cnd hashcl nn0cni subadd2d mpbird pnpcan2d
          cc 1cnd 3jca ) AISJUAZUBUCUDZIUUJUEZSKSUFUGZUHUGZUDIUIUJZKSUKUGZUDUUK
          AUUKBULZUUJTZUOBIBIUUJUMUUQITZUUQSUDZUUQJUDUPZUURUUSUUQSUNZUUQJUNZUQZ
          UVAUOUVDUUQWAUUMUHUGZJURZUSZIUUQUVGTZUVBUVCUVHUUQUVETZWAUUQUTVAZUVBUU
          QUVEUVFVBUUQWAUUMVCZUVJUUQSUUTUVJWASUTVAZSWAVDVAUVLUOVESWAVFVGVHVIUUQ
          SWAUTVJVKVLZVMUUQUVEJVNVORVPUUQSUUQJVQVRUUQSJBVSVTWBWCZWDAUULSSUHUGZU
          VEUVFUEZUEZUUNSURZIUVFUEZUEUVSUVRUEZUVQUULUVRUVSWEUVOUVRUVPUVSSWFTUVO
          UVRUDWGSWMWHUVSUVGUVFUEUVPIUVGUVFRWIUVEUVFWJWKWLUULIUVFUVRUEZUEUVTUUJ
          UWAIUUJUVRUVFSJWNWOWPIUVFUVRWQWRWSAUVQUVOSSUFUGZUUMUHUGZUEZUUNAUVPUWC
          UVOAUVPUVEUWCAUVFUVEWTUVPUVEUDAJUVEPXAUVFUVEXDVRWAUWBUUMUHXBXCXEXFAUU
          MSXMUJZTSUUNTUUNUWDUDAUUMXNUWEAKOXGZXHXISUUMXJSSUUMXKVMXOXLZAUUMWAUKU
          GZUUMUWBUKUGUUOUUPWAUWBUUMUKXBXPAUWHUUOUDUUOWAUFUGZUUMUDAUUNUIUJZUWIU
          UMAUULUIUJZUUOUUJUIUJZUFUGZUWJUWIIXQTZUUJXQTUUKUWKUWMUDIUVGXQRUVEXQTU
          VGXQTWAUUMXRUVEUVFXSWHXTZSJYQUVNIUUJYAYBAUULUUNUIUWGYCAUWLWAUUOUFASJU
          NZUWLWAUDZAJSAJUVETJSUNZPUVBUWRBJUVEUUQJSYDUVIUVJUVBUVKUVMYEYFYEYGSYH
          TJYHTUWPUWQYIYJQSJYHYHYKYLVRYMYNAUUMYOTUWJUUMUDAUUMUWFYPUUMYRYEYSAUUM
          WAUUOAUUMUWFYTAUUAUUOUUGTAUUOUWNUUOYOTUWOIUUBWHUUCWDUUDUUEAKSSAKOYTAU
          UHZUWSUUFYNUUI $.

        ${
          subfacp1lem2.5 $e |- F =
            ( G u. { <. 1 , M >. , <. M , 1 >. } ) $.
          subfacp1lem2.6 $e |- ( ph -> G : K -1-1-onto-> K ) $.
          $( Lemma for ~ subfacp1 .  Properties of a bijection on ` K `
             augmented with the two-element flip to get a bijection on
             ` K u. { 1 , M } ` .  (Contributed by Mario Carneiro,
             23-Jan-2015.) $)
          subfacp1lem2a $p |- ( ph ->
            ( F : ( 1 ... ( N + 1 ) ) -1-1-onto-> ( 1 ... ( N + 1 ) ) /\
              ( F ` 1 ) = M /\ ( F ` M ) = 1 ) ) $=
            ( c1 caddc co cfz wf1o cfv wceq cpr cun cop cin c0 cz cvv f1oprswap
            wcel mp2an a1i chash cmin subfacp1lem1 simp1d f1oun syl22anc simp2d
            1z wb f1oeq1 ax-mp f1oeq2 syl5bbr f1oeq3 bitrd syl mpbid csn f1ofun
            wfun wss cdm snsspr1 ssun2 sseqtr4i sstri 1ex snid eleqtrri funssfv
            dmsnop mp3an23 fvsn syl6eq snsspr2 3jca ) AUCMUCUDUEUFUEZWQIUGZUCIU
            HZLUILIUHZUCUIAKUCLUJZUKZXBJUCLULZLUCULZUJZUKZUGZWRAKKJUGXAXAXEUGZK
            XAUMUNUIZXIXGUBXHAUCUOURLUPURXHVHSUCLUOUPUQUSUTAXIXBWQUIZKVAUHMUCVB
            UEUIZABCDEFGHKLMNOPQRSTVCZVDZXMKKXAXAJXEVEVFAXJXGWRVIAXIXJXKXLVGXJX
            GWQXBIUGZWRXGXBXBIUGZXJXNIXFUIXOXGVIUAXBXBIXFVJVKXBWQXBIVLVMXBWQWQI
            VNVOVPVQZAWSUCXCVRZUHZLAIVTZWSXRUIZAWRXSXPWQWQIVSVPZXSXQIWAUCXQWBZU
            RXTXQXEIXCXDWCXEXFIXEJWDUAWEZWFUCUCVRYBUCWGWHUCLSWKWIUCIXQWJWLVPUCL
            WGSWMWNAWTLXDVRZUHZUCAXSWTYEUIZYAXSYDIWALYDWBZURYFYDXEIXCXDWOYCWFLL
            VRYGLSWHLUCWGWKWILIYDWJWLVPLUCSWGWMWNWP $.

          $( Lemma for ~ subfacp1 .  Properties of a bijection on ` K `
             augmented with the two-element flip to get a bijection on
             ` K u. { 1 , M } ` .  (Contributed by Mario Carneiro,
             23-Jan-2015.) $)
          subfacp1lem2b $p |- ( ( ph /\ X e. K ) -> ( F ` X ) = ( G ` X ) ) $=
            ( wcel wa wfun wss cdm cfv wceq caddc cfz wf1o subfacp1lem2a simp1d
            c1 co f1ofun syl adantr cop cpr cun ssun1 sseqtr4i a1i f1odm eleq2d
            biimpar funssfv syl3anc ) ANKUDZUEZIUFZJIUGZNJUHZUDZNIUINJUIUJAVNVL
            AUPMUPUKUQULUQZVRIUMZVNAVSUPIUILUJLIUIUPUJABCDEFGHIJKLMOPQRSTUAUBUC
            UNUOVRVRIURUSUTVOVMJJUPLVALUPVAVBZVCIJVTVDUBVEVFAVQVLAVPKNAKKJUMVPK
            UJUCKKJVGUSVHVINIJVJVK $.
        $}

        ${
          subfacp1lem3.b $e |- B = { g e. A |
            ( ( g ` 1 ) = M /\ ( g ` M ) = 1 ) } $.
          subfacp1lem3.c $e |- C = { f | ( f : K -1-1-onto-> K /\
            A. y e. K ( f ` y ) =/= y ) } $.
          $( Lemma for ~ subfacp1 .  In ~ subfacp1lem6 we cut up the set of all
             derangements on ` 1 ... ( N + 1 ) ` first according to the value
             at ` 1 ` , and then by whether or not
             ` ( f `` ( f `` 1 ) ) = 1 ` .  In this lemma, we show that the
             subset of all ` N + 1 ` derangements that satisfy this for fixed
             ` M = ( f `` 1 ) ` is in bijection with ` N - 1 ` derangements, by
             simply dropping the ` x = 1 ` and ` x = M ` points from the
             function to get a derangement on
             ` K = ( 1 ... ( N - 1 ) ) \ { 1 , M } ` .  (Contributed by Mario
             Carneiro, 23-Jan-2015.) $)
          subfacp1lem3 $p |- ( ph -> ( # ` B ) = ( S ` ( N - 1 ) ) ) $=
            ( vb vc chash cfv c1 cmin co cen wbr wceq cres cop cpr cun cvv wcel
            cv cfn wss cfz wf1o wne wral cab fzfi deranglem ax-mp eqeltri mp2an
            wa elexi a1i c2 cdif wfo simpr weq fveq1 eqeq1d elrab2 sylib simpld
            anbi12d vex f1oeq1 neeq1d ralbidv elab2 wf simprbi wfn wb f1ofn syl
            3syl wrex c0 simp2d syl5sseq adantr fnssres syl2anc simprd syl6eqel
            cin fveq2 eleq1d ralpr sylanbrc fvres ralbiia sylibr rspcev sylancr
            1ex eqeq2 rexbidv eqcom syl5eq simp1d mpbid ralbidva eqnetrd simp3d
            ex cn neeq12d ralunb raleqdv adantrr adantrl eqtr4d eqeq12d syl6bbr
            id eqeq2d eqfnfv caddc crab ssrab2 eqsstri ssfi csn diffi ccnv wfun
            wf1 f1of1 df-f1 fnresdm mpbird f1ofo ssun2 subfacp1lem1 prid2 prid1
            ffnfv syl5bb rexbiia ralbii dffo3 resdif syl3anc uncom incom reseq2
            f1oeq2 f1oeq3 3bitrd ssun1 ssralv sylc resex sylan9eq subfacp1lem2a
            uneqdifeq eqid subfacp1lem2b r19.21bi ralrimiva elfzuz eluz2b3 prex
            cuz necomd unex biantrud 3bitr3rd syl6bb 3bitr4d en3d hashen fveq2i
            jca derangval derangen2 3eqtr2ri fveq2d syl5eqr eqtrd ) AEUFUGZFUFU
[encoded data, 4880 characters]
            KOPUWSVJUWTAVWOUXFHAVWMVWNVWPVWQYGUXAUXBUXC $.
        $}

        ${
          subfacp1lem5.b $e |- B = { g e. A |
            ( ( g ` 1 ) = M /\ ( g ` M ) =/= 1 ) } $.
          subfacp1lem5.f $e |- F =
            ( ( _I |` K ) u. { <. 1 , M >. , <. M , 1 >. } ) $.
          $( Lemma for ~ subfacp1 .  The function ` F ` , which swaps ` 1 `
             with ` M ` and leaves all other elements alone, is a bijection of
             order ` 2 ` , i.e. it is its own inverse.  (Contributed by Mario
             Carneiro, 19-Jan-2015.) $)
          subfacp1lem4 $p |- ( ph -> `' F = F ) $=
            ( c1 caddc co cfz ccnv wf1o wfn cfv wceq cid cres a1i subfacp1lem2a
            f1oi simp1d f1ocnv f1ofn 3syl syl cv wcel wa cpr wo cun cin c0 cmin
            chash subfacp1lem1 simp2d eleq2d biimpar sylib subfacp1lem2b fvresi
            elun adantl eqtrd fveq2d vex elpr simp3d id eqeq12d syl5ibrcom jaod
            fveq2 imp sylan2b jaodan syldan wi adantr wf f1of ffvelrnda syl2anc
            f1ocnvfv mpd eqfnfvd ) ABUDNUDUEUFUGUFZKUHZKAXEXEKUIZXEXEXFUIXFXEUJ
            AXGUDKUKZMULZMKUKZUDULZABCDFGHJKUMLUNZLMNOPQRSTUAUCLLXLUIALUQUOZUPZ
            URZXEXEKUSXEXEXFUTVAAXGKXEUJXOXEXEKUTVBABVCZXEVDZVEZXPKUKZKUKZXPULZ
            XPXFUKXSULZAXQXPLVDZXPUDMVFZVDZVGZYAXRXPLYDVHZVDZYFAYHXQAYGXEXPALYD
            VIVJULYGXEULLVLUKNUDVKUFULABCDFGHJLMNOPQRSTUAVMVNVOVPXPLYDVTVQAYCYA
            YEAYCVEZXTXSXPYIXSXPKYIXSXPXLUKZXPABCDFGHJKXLLMNXPOPQRSTUAUCXMVRYCY
            JXPULALXPVSWAWBZWCYKWBYEAXPUDULZXPMULZVGZYAXPUDMBWDWEAYNYAAYLYAYMAY
            AYLXHKUKZUDULAYOXJUDAXHMKAXGXIXKXNVNZWCAXGXIXKXNWFZWBYLXTYOXPUDYLXS
            XHKXPUDKWKWCYLWGWHWIAYAYMXJKUKZMULAYRXHMAXJUDKYQWCYPWBYMXTYRXPMYMXS
            XJKXPMKWKWCYMWGWHWIWJWLWMWNWOXRXGXSXEVDYAYBWPAXGXQXOWQAXEXEXPKAXGXE
            XEKWRXOXEXEKWSVBWTXEXEXSXPKXBXAXCXD $.

          subfacp1lem5.c $e |- C = { f | ( f : ( 2 ... ( N + 1 ) ) -1-1-onto->
      ( 2 ... ( N + 1 ) ) /\ A. y e. ( 2 ... ( N + 1 ) ) ( f ` y ) =/= y ) } $.
          $( Lemma for ~ subfacp1 .  In ~ subfacp1lem6 we cut up the set of all
             derangements on ` 1 ... ( N + 1 ) ` first according to the value
             at ` 1 ` , and then by whether or not
             ` ( f `` ( f `` 1 ) ) = 1 ` .  In this lemma, we show that the
             subset of all ` N + 1 ` derangements with
             ` ( f `` ( f `` 1 ) ) =/= 1 ` for fixed ` M = ( f `` 1 ) ` is in
             bijection with derangements of ` 2 ... ( N + 1 ) ` , because
             pre-composing with the function ` F ` swaps ` 1 ` and ` M ` and
             turns the function into a bijection with ` ( f `` 1 ) = 1 ` and
             ` ( f `` x ) =/= x ` for all other ` x ` , so dropping the point
             at ` 1 ` yields a derangement on the ` N ` remaining points.
             (Contributed by Mario Carneiro, 23-Jan-2015.) $)
          subfacp1lem5 $p |- ( ph -> ( # ` B ) = ( S ` N ) ) $=
            ( vb vc chash cfv wbr wceq cv ccom c2 c1 caddc cfz cres cop csn cun
            co cvv wcel cfn wss wf1o wne wral wa cab fzfi deranglem ax-mp mp2an
            eqeltri elexi a1i cdif ccnv wfun wfo wf1 cid adantr simpr weq fveq1
            eqeq1d neeq1d anbi12d elrab2 sylib simpld vex ralbidv elab2 syl2anc
            f1oeq1 f1oco f1of1 wf wfn wb f1ofn f1ofo syl 1ex nnuz syl6eleq f1of
            cuz cn fvco3 simprd fveq2d 3eqtrd eqtrd syl3anc 1z sylancl ad2antrr
            c0 sseldi neeqtrrd fveq2 neeq12d syl5ibrcom adantrr necomd f1ocnvfv
            eqnetrd wi necon3d mpd sylanbrc ex funssfv adantrl cmin crab ssrab2
            cen eqsstri ssfi f1oi subfacp1lem2a df-f1 simprbi 3syl fnresdm 4syl
            simp1d mpbird peano2nnd eluzfz1 fnressn simp3d opeq2d mpbiri resdif
            f1osn sneqd fzsplit cz 1p1e2 oveq1i uneq12i syl6req cin snssd incom
            fzsn wn cle clt 1lt2 1re 2re ltnlei mpbi elfzle1 disjsn mpbir eqtri
            mto uneqdifeq mpbid reseq2 f1oeq2 f1oeq3 3bitrd fzp1ss subfacp1lem4
            eqsstr3i fveq1d r19.21bi sylan2 eleq2i eldifsn subfacp1lem2b fvresi
            sseli bitri adantl sylan2br adantlr expr pm2.61dne syl2an ralrimiva
            ffvelrn cpr difexg fex prex unex coex resex fvres sylan9eq ralbidva
            f1oun mpanr12 sylancr bitrd biimpa syldan wo eleqtrrd nelne2 simp2d
            sylan elun f1ofun ssun1 snid dmsnop eleqtrri mp3an23 syl6eq 3netr4d
            cdm fvsn elsni ssun2 f1odm eleq2d biimpar ffvelrnd jaodan ffvelrnda
            imp snex id rspcv sylc jca fco cocan1 coass coeq1d f1ococnv1 eqtr3d
            fcoi2 syl5eqr eqtr4d eqeq12d sylibr biantrurd ralunb syl6bbr eqcomd
            ralsn adantlrl raleqdv 3bitr3rd eqfnfv fnssres 3bitr4d eqcom syl6bb
            3bitr3d en3d hashen derangen2 derangval fveq2i eluzp1p1 df-2 hashfz
            syl6eqr syl6eleqr nncnd 2cnd 1cnd subsubd 2m1e1 oveq2i ax-1cn pncan
            cc syl5eq 3eqtr2d ) AEUHUIZFUHUIZOHUIZAEFUUCUJZVXEVXFUKZAUFUGEFLUFU
[encoded data, 8160 characters]
            VWNVWTOUOVXAYAVXCVXDXPVVFXR $.
        $}
      $}

      $( Lemma for ~ subfacp1 .  By induction, we cut up the set of all
         derangements on ` N + 1 ` according to the ` N ` possible values of
         ` ( f `` 1 ) ` (since ` ( f `` 1 ) =/= 1 ` ), and for each set for
         fixed ` M = ( f `` 1 ) ` , the subset of derangements with
         ` ( f `` M ) = 1 ` has size ` S ( N - 1 ) ` (by ~ subfacp1lem3 ),
         while the subset with ` ( f `` M ) =/= 1 ` has size ` S ( N ) ` (by
         ~ subfacp1lem5 ).  Adding it all up yields the desired equation
         ` N ( S ( N ) + S ( N - 1 ) ) ` for the number of derangements on
         ` N + 1 ` .  (Contributed by Mario Carneiro, 22-Jan-2015.) $)
      subfacp1lem6 $p |- ( N e. NN ->
        ( S ` ( N + 1 ) ) = ( N x. ( ( S ` N ) + ( S ` ( N - 1 ) ) ) ) ) $=
        ( vg wcel c1 caddc co cfv chash wceq wi vm vz vh cfz crab cmin cmul cn0
        cn cv peano2nn nnnn0d subfacval syl wf1o wne wa cab cfn fzfid derangval
        wral fveq2i syl6eqr wss cuz nnuz syl6eleq eluzfz1 adantr expcom ss2abdv
        weq fveq1 cbvabv 3sstr4g ssabral sylib sylibr fveq2d 3eqtrd eleq1 oveq2
        wf cc0 csn ax-mp syl6eq eleq2d elsn rabbidv oveq1 oveq1d eqeq12d imbi2d
        imbi12d c0 wn fveq2 id neeq12d neeq1d syl5bbr rabeq0 ffvelrni nn0cnd ex
        cun wo unrab cin ssrab2 ssfi mp2an inrab rgenw mpbir eqtri hashun mp3an
        wb cc nncn ad2antlr ax-1cn a1i sylancl mpbi cop mpd eqid eqeq1d anbi12d
        c2 cbvrabv f1oeq1 cbvralv ralbidv syl5bb a2d f1of ffvelrn syl2im eleq1d
        rabid2 elfz1end cz 1z fzsn syl6bb 1m1e0 hash0 rspcv adantld df-ne nnnn0
        fvex subfacf nnm1nn0 nn0addcld mul02d 3eqtr4a simplr peano2fzr sylancom
        imim1d elfzp1 fzfi deranglem eqeltri fzp1disj sylan2br necon2bi addsubd
        a1d inelcm subcl ad2antrr adddird mulid2d exmidne orcom biantru rabbiia
        andi bitri eqtr4i simpr necon3ai adantl imnan cid cdif cpr simpll nnne0
        cres 0p1e1 eqeq2i addcan2 mp3an23 necon3bbid mpbird elfzp12 biimpa df-2
        0cn ord oveq1i syl6eleqr subfacp1lem5 subfacp1lem3 syl5eq eqtr4d oveq2d
        ovex oveq12d syl5ibr syld nnind mpcom pncan ) HUIMZHNOPZEQZNLUJZQZNUYDU
[encoded data, 4560 characters]
        GUYCHYBMWUEUYLHSHYCYEHNUYBYGWMWA $.
    $}

    $( A two-term recurrence for the subfactorial.  This theorem allows us to
       forget the combinatorial definition of the derangement number in favor
       of the recursive definition provided by this theorem and ~ subfac0 ,
       ~ subfac1 .  (Contributed by Mario Carneiro, 23-Jan-2015.) $)
    subfacp1 $p |- ( N e. NN ->
      ( S ` ( N + 1 ) ) = ( N x. ( ( S ` N ) + ( S ` ( N - 1 ) ) ) ) ) $=
      ( vg vz c1 co cv wf1o cfv wne wral wa weq caddc cfz cab f1oeq1 id neeq12d
      fveq2 cbvralv fveq1 neeq1d ralbidv syl5bb anbi12d cbvabv subfacp1lem6 ) A
      BLGLUAMUBMZUPJNZOZKNZUQPZUSQZKUPRZSZJUCCDEFGHIVCUPUPENZOZBNZVDPZVFQZBUPRZ
      SJEJETZURVEVBVIUPUPUQVDUDVBVFUQPZVFQZBUPRVJVIVAVLKBUPKBTZUTVKUSVFUSVFUQUG
      VMUEUFUHVJVLVHBUPVJVKVGVFVFUQVDUIUJUKULUMUNUO $.

    $( A closed-form expression for the subfactorial.  (Contributed by Mario
       Carneiro, 23-Jan-2015.) $)
    subfacval2 $p |- ( N e. NN0 -> ( S ` N ) =
      ( ( ! ` N ) x. sum_ k e. ( 0 ... N ) ( ( -u 1 ^ k ) / ( ! ` k ) ) ) ) $=
      ( wcel cfv cfa cc0 cfz co c1 cmul wceq caddc vm cn0 cneg cv cexp cdiv csu
      wa fveq2 subfac0 syl6eq oveq2 sumeq1d oveq12d eqeq12d oveq1 0p1e1 subfac1
      fac0 fveq2d oveq2d anbi12d cz cc 0z ax-1cn neg1cn ax-mp div1i fsum1 mp2an
      fac1 exp0 oveq2i 1t1e1 eqtr2i wtru nn0uz 1e0p1 exp1 cr reexpcl mpan faccl
      neg1rr nndivred recnd adantl 0nn0 pm3.2i a1i 1pneg1e0 fsump1i trud simpri
      mul01i wi simpr oveq12 ancoms cn nn0p1nn subfacp1 syl nn0cn pncan sylancl
      cmin eqtrd peano2nn0 nncnd fzfid elfznn0 fsumcl sylancr nnne0d divcld cuz
      expcl adddid id syl6eleq fsump1 facp1 mulcomd oveq1d nn0cnd 3eqtrd div12d
      mulassd divcan3d mulcld negsub eqtr3d expp1 3eqtr4d addassd add32d eqcomd
      divcan2d mulid1d adddird syl5ibr jcad nn0ind simpld ) HUBKHDLZHMLZNHOPZQU
[encoded data, 4320 characters]
      UF $.

    $( The subfactorial converges rapidly to ` N ! / _e ` .  This is part of
       Metamath 100 proof #88.  (Contributed by Mario Carneiro,
       23-Jan-2015.) $)
    subfaclim $p |- ( N e. NN ->
      ( abs ` ( ( ( ! ` N ) / _e ) - ( S ` N ) ) ) < ( 1 / N ) ) $=
      ( vk wcel cfv cdiv co c1 caddc cmul cn0 syl cc0 cn cfa cmin cabs cc nnnn0
      ceu faccl nncnd wne ere recni epos gt0ne0ii divcl mp3an23 ffvelrni nn0cnd
      subfacf subcld abscld peano2nn peano2nnd nnred nnmulcld nndivred cuz cneg
      nnrecre cv cexp csu cle wbr cmpt eqid neg1cn a1i ax-1cn absnegi abs1 1le1
      eqtri eqbrtri eftlub wa wceq nnnn0d eluznn0 eftval sumeq2dv fveq2d oveq1i
      sylan cz nnzd 1exp syl5eq oveq1d recnd mulid2d eqtrd 3brtr3d cr clt eftcl
      wb mpan cseq cli cdm eftlcvg sylancr isumcl nngt0d lemul2 syl112anc mpbid
      subfacval2 nncn pncan sylancl oveq2d sumeq1d eqtr4d divrec ce df-e oveq2i
      cfz efneg ax-mp adantl 3eqtrd mulcld nnne0d adddird nnre nngt0 jca fsumcl
      efval 3eqtr2i nn0uz mp2an isumsplit elfznn0 adddid subaddd mpbird absmuld
      0nn0 fzfid nn0ge0d absidd mulassd eqtr2d divcan5d divassd 3eqtr3d 3brtr4d
      nnmulcl mpancom mulcomd oveq12d addassd breqtrrd 1red lt2mul2div syl22anc
      facp1 ltp1d lelttrd ) GUAKZGUBLZUGMNZGDLZUCNZUDLZGOPNZOPNZUVTUVTQNZMNZOGM
      NZUVNUVRUVNUVPUVQUVNUVOUEKZUVPUEKZUVNUVOUVNGRKZUVOUAKGUFZGUHSZUIZUWEUGUEK
      ZUGTUJZUWFUGUKULZUGUKUMUNZUVOUGUOUPSZUVNUVQUVNUWGUVQRKUWHRRGDABCDEFHIUSUQ
      SURZUTVAUVNUWAUWBUVNUWAUVNUVTGVBZVCZVDZUVNUVTUVTUWQUWQVEZVFGVIUVNUVOUVTVG
      LZOVHZJVJZVKNUXCUBLMNZJVLZUDLZQNZUVOUWAUVTUBLZUVTQNZMNZQNZUVSUWCVMUVNUXFU
      XJVMVNZUXGUXKVMVNZUVNUXAUXCFRUXBFVJZVKNUXNUBLZMNVOZLZJVLZUDLUXBUDLZUVTVKN
      ZUXJQNZUXFUXJVMUVNUXBJFUXPFRUXSUXNVKNUXOMNVOZFRUXTUXHMNOUWAMNUXNVKNQNVOZU
      VTUXPVPZUYBVPUYCVPUWQUXBUEKZUVNVQVRUXSOVMVNUVNUXSOOVMUXSOUDLOOVSVTWAWCZWB
      WDVRWEUVNUXRUXEUDUVNUXAUXQUXDJUVNUXCUXAKZWFZUXCRKZUXQUXDWGZUVNUVTRKZUYGUY
      IUVNUVTUWQWHZUXCUVTWIWNZUXBFUXPUXCUYDWJZSZWKWLUVNUYAOUXJQNUXJUVNUXTOUXJQU
      VNUXTOUVTVKNZOUXSOUVTVKUYFWMUVNUVTWOKUYPOWGUVNUVTUWQWPZUVTWQSWRWSUVNUXJUV
      NUXJUVNUWAUXIUWSUVNUXHUVTUVNUYKUXHUAKUYLUVTUHSUWQVEZVFZWTXAXBXCUVNUXFXDKU
      XJXDKUVOXDKTUVOXEVNUXLUXMXGUVNUXEUVNUXDJUXPUVTUXAUXAVPZUYQUYOUYHUYIUXDUEK
      ZUYMUYEUYIVUAVQUXBUXCXFZXHZSUVNUYEUYKPUXPUVTXIXJXKZKVQUYLUXBFUXPUVTUYDXLX
      MXNZVAUYSUVNUVOUWIVDZUVNUVOUWIXOUXFUXJUVOXPXQXRUVNUVSUVOUXEQNZUDLUVOUDLZU
      XFQNUXGUVNUVRVUGUDUVNUVRVUGWGUVQVUGPNZUVPWGUVNVUIUVOTUVTOUCNZYJNZUXDJVLZQ
      NZVUGPNZUVPUVNUVQVUMVUGPUVNUVQUVOTGYJNZUXDJVLZQNZVUMUVNUWGUVQVUQWGUWHABCD
      EJFGHIXSSUVNVULVUPUVOQUVNVUKVUOUXDJUVNVUJGTYJUVNGUEKOUEKZVUJGWGGXTZVSGOYA
      YBYCYDYCYEWSUVNUVPUVOOUGMNZQNZUVOVULUXEPNZQNVUNUVNUWEUVPVVAWGZUWJUWEUWKUW
      LVVCUWMUWNUVOUGYFUPSUVNVUTVVBUVOQUVNVUTRUXDJVLZVVBVUTOOYGLZMNZUXBYGLZVVDU
      GVVEOMYHYIVURVVGVVFWGVSOYKYLUYEVVGVVDWGVQUXBJUUBYLUUCUVNUXDJUXPTUVTUXARUU
      DUYTUYLUYIUYJUVNUYNYMUYIVUAUVNVUCYMPUXPTXIVUDKZUVNUYETRKVVHVQUULUXBFUXPTU
      YDXLUUEVRUUFWRYCUVNUVOVULUXEUWJUVNVUKUXDJUVNTVUJUUMUVNUXCVUKKZWFUYEUYIVUA
      VQVVIUYIUVNUXCVUJUUGYMVUBXMUUAVUEUUHYNYEUVNUVPUVQVUGUWOUWPUVNUVOUXEUWJVUE
      YOUUIUUJWLUVNUVOUXEUWJVUEUUKUVNVUHUVOUXFQUVNUVOVUFUVNUVOUVNUVOUWIWHUUNUUO
      WSYNUVNUVOUWAQNZUVOUWBQNZMNVVJUXIMNUWCUXKUVNVVKUXIVVJMUVNUXIUVOUVTQNZUVTQ
      NVVKUVNUXHVVLUVTQUVNUWGUXHVVLWGUWHGUVKSWSUVNUVOUVTUVTUWJUVNUVTUWQUIZVVMUU
      PUUQYCUVNUWAUWBUVOUVNUWAUWRUIZUVNUWBUWTUIZUWJUVNUWBUWTYPUVNUVOUWIYPUURUVN
      UVOUWAUXIUWJVVNUVNUXIUYRUIUVNUXIUYRYPUUSUUTUVAUVNUWAGQNZOUWBQNZXEVNZUWCUW
      DXEVNZUVNVVPVVPOPNZVVQXEUVNVVPUVNVVPUWAUAKUVNVVPUAKUWRUWAGUVBUVCVDUVLUVNV
      VQUWBGUVTQNZOUVTQNZPNZVVTUVNUWBVVOXAUVNGOUVTVUSVURUVNVSVRZVVMYQUVNVWCUVTG
      QNZUVTPNZVVTUVNVWAVWEVWBUVTPUVNGUVTVUSVVMUVDUVNUVTVVMXAUVEUVNVVTVWEOGQNZP
      NZOPNVWEGPNZOPNVWFUVNVVPVWHOPUVNUVTOGVVMVWDVUSYQWSUVNVWHVWIOPUVNVWGGVWEPU
      VNGVUSXAYCWSUVNVWEGOUVNUVTGVVMVUSYOVUSVWDUVFYNYEYNUVGUVNUWAXDKGXDKZTGXEVN
      ZWFOXDKUWBXDKZTUWBXEVNZWFZVVRVVSXGUWSUVNVWJVWKGYRGYSYTUVNUVHUVNUWBUAKZVWN
      UWTVWOVWLVWMUWBYRUWBYSYTSUWAGOUWBUVIUVJXRUVM $.

    $( Another closed form expression for the subfactorial.  The expression
       ` |_ `` ( x + 1 / 2 ) ` is a way of saying "rounded to the nearest
       integer".  (Contributed by Mario Carneiro, 23-Jan-2015.) $)
    subfacval3 $p |- ( N e. NN -> ( S ` N ) =
      ( |_ ` ( ( ( ! ` N ) / _e ) + ( 1 / 2 ) ) ) ) $=
      ( wcel cfv ceu co c1 c2 caddc wbr clt cr cc0 cn cfa cdiv cfl wceq cle cn0
      nnnn0 subfacf ffvelrni syl nn0zd crp faccl nnred rerpdivcl sylancl halfre
      zred epr readdcl cmin cabs wa cuz wo elnn1uz2 fveq2 syl6eq oveq1d subfac1
      fac1 oveq12d rpreccl ax-mp rpre recni subid1i fveq2d rpge0 absid mp2an c3
      egt2lt3 simpli 2re 2pos epos ltrecii mpbi syl6eqbr eluz2nn resubcld recnd
      ere cc abscld nnrecred a1i subfaclim eluzle wb nnre nngt0 mpanl12 syl2anc
      lerec mpbid ltletrd jaoi sylbi absdifltd simpld ltsubaddd simprd ltadd1dd
      ltled addassd ax-1cn 2halves oveq2i breqtrd cz flbi mpbir2and eqcomd ) GU
      AJZGUBKZLUCMZNOUCMZPMZUDKZGDKZYGYLYMUEZYMYKUFQZYKYMNPMZRQZYGYMYKYGYMYGYMY
      GGUGJZYMUGJGUHZUGUGGDABCDEFHIUIUJUKULZUSZYGYISJZYJSJZYKSJZYGYHSJLUMJZUUBY
      GYHYGYRYHUAJYSGUNUKUOUTYHLUPUQZURYIYJVAUQZYGYMYJVBMYIRQZYMYKRQYGUUHYIYMYJ
      PMZRQZYGYIYMVBMZVCKZYJRQZUUHUUJVDYGGNUEZGOVEKJZVFUUMGVGUUNUUMUUOUUNUULNLU
      CMZYJRUUNUULUUPVCKZUUPUUNUUKUUPVCUUNUUKUUPTVBMUUPUUNYIUUPYMTVBUUNYHNLUCUU
      NYHNUBKNGNUBVHVLVIVJUUNYMNDKTGNDVHABCDEFHIVKVIVMUUPUUPUUPUMJZUUPSJZUUEUUR
      UTLVNVOZUUPVPVOZVQVRVIVSUUSTUUPUFQZUUQUUPUEUVAUURUVBUUTUUPVTVOUUPWAWBVIOL
      RQZUUPYJRQUVCLWCRQWDWEOLWFWOWGWHWIWJWKUUOUULNGUCMZYJUUOUUKUUOYGUUKWPJGWLZ
      YGUUKYGYIYMUUFUUAWMWNUKWQUUOGUVEWRUUCUUOURWSUUOYGUULUVDRQUVEABCDEFGHIWTUK
      UUOOGUFQZUVDYJUFQZOGXAUUOYGUVFUVGXBZUVEYGGSJZTGRQZUVHGXCGXDOSJTORQUVIUVJV
      DUVHWFWGOGXGXEXFUKXHXIXJXKYGYIYMYJUUFUUAUUCYGURWSZXLXHZXMYGYMYJYIUUAUVKUU
      FXNXHXQYGYKUUIYJPMZYPRYGYIUUIYJUUFYGYMSJUUCUUISJUUAURYMYJVAUQUVKYGUUHUUJU
      VLXOXPYGUVMYMYJYJPMZPMYPYGYMYJYJYGYMUUAWNYGYJUVKWNZUVOXRUVNNYMPNWPJUVNNUE
      XSNXTVOYAVIYBYGUUDYMYCJYNYOYQVDXBUUGYTYKYMYDXFYEYF $.
  $}

  ${
    $d f m x y A $.  $d m n x y D $.
    derangfmla.d $e |- D = ( x e. Fin |-> ( # ` { f | ( f : x -1-1-onto-> x /\
      A. y e. x ( f ` y ) =/= y ) } ) ) $.
    $( The derangements formula, which expresses the number of derangements of
       a finite nonempty set in terms of the factorial.  The expression
       ` |_ `` ( x + 1 / 2 ) ` is a way of saying "rounded to the nearest
       integer".  This is part of Metamath 100 proof #88.  (Contributed by
       Mario Carneiro, 23-Jan-2015.) $)
    derangfmla $p |- ( ( A e. Fin /\ A =/= (/) ) ->
      ( D ` A ) = ( |_ ` ( ( ( ! ` ( # ` A ) ) / _e ) + ( 1 / 2 ) ) ) ) $=
      ( vn vm cfn wcel c0 wne cfv cn0 c1 cv cfz co cdiv wceq chash cmpt cfa ceu
      wa c2 caddc cfl oveq2 fveq2d cbvmptv derangen2 adantr cn hashnncl biimpar
      subfacval3 syl eqtrd ) CIJZCKLZUEZCDMZCUAMZGNOGPZQRZDMZUBZMZVDUCMUDSROUFS
      RUGRUHMZUTVCVITVAABCDVHEHFGHNVGOHPZQRZDMVEVKTVFVLDVEVKOQUIUJUKZULUMVBVDUN
      JZVIVJTUTVNVACUOUPABDVHEHVDFVMUQURUS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The Erd&#337;s-Szekeres theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y A $.  $d y F $.  $d y O $.  $d x S $.  $d y X $.
    erdszelem1.1 $e |- S = { y e. ~P ( 1 ... A ) | ( ( F |` y )
        Isom < , O ( y , ( F " y ) ) /\ A e. y ) } $.
    $( Lemma for ~ erdsze .  (Contributed by Mario Carneiro, 22-Jan-2015.) $)
    erdszelem1 $p |- ( X e. S <-> ( X C_ ( 1 ... A )
        /\ ( F |` X ) Isom < , O ( X , ( F " X ) ) /\ A e. X ) ) $=
      ( c1 cfz co cpw wcel cima clt cres wiso wa wceq wb syl wss w3a ovex elpw2
      anbi1i cv reseq2 isoeq1 isoeq4 imaeq2 isoeq5 3bitrd anbi12d elrab2 3anass
      eleq2 3bitr4i ) FHBIJZKZLZFDFMZNEDFOZPZBFLZQZQFURUAZVEQFCLVFVCVDUBUTVFVEF
      URHBIUCUDUEAUFZDVGMZNEDVGOZPZBVGLZQVEAFUSCVGFRZVJVCVKVDVLVJVGVHNEVBPZFVHN
      EVBPZVCVLVIVBRVJVMSVGFDUGVGVHNEVBVIUHTVGVHFNEVBUIVLVHVARVNVCSVGFDUJFVHVAN
      EVBUKTULVGFBUPUMGUNVFVCVDUOUQ $.

    $( Lemma for ~ erdsze .  (Contributed by Mario Carneiro, 22-Jan-2015.) $)
    erdszelem2 $p |- ( ( # " S ) e. Fin /\ ( # " S ) C_ NN ) $=
      ( vx chash cima cfn wcel cn wss cres c1 cv clt wiso mp2an cvv wfo cfz cpw
      co fzfi pwfi mpbi wa crab ssrab2 eqsstri ssfi wfun cdm cn0 cpnf csn hashf
      cun ffun ax-mp ssv fdmi sseqtr4i fores fofi cfv wral funimass4 erdszelem1
      wf wb w3a c0 wne 3ad2ant3 simp1 sylancr hashnncl syl mpbird sylbi mprgbir
      ne0i pm3.2i ) HCIZJKZWFLMZCJKZCWFHCNZUAZWGOBUBUDZUCZJKZCWMMWIWLJKZWNOBUEZ
      WLUFUGCAPZDWQIQEDWQNRBWQKUHZAWMUIWMFWRAWMUJUKWMCULSHUMZCHUNZMZWKTUOUPUQUS
      ZHVKWSURTXBHUTVAZCTWTCVBTXBHURVCVDZCHVESCWFWJVFSWHGPZHVGLKZGCWSXAWHXFGCVH
      VLXCXDGCLHVISXECKXEWLMZXEDXEIQEDXENRZBXEKZVMZXFABCDEXEFVJXJXFXEVNVOZXIXGX
      KXHXEBWDVPXJXEJKZXFXKVLXJWOXGXLWPXGXHXIVQWLXEULVRXEVSVTWAWBWCWE $.
  $}

  ${
    $d f w x y z B $.  $d f m n s w x y z F $.  $d n s x y I $.  $d f s z K $.
    $d f s w x y z A $.  $d n s x y J $.  $d f s w x y z O $.  $d m s x y R $.
    $d a b m n s w x y z N $.  $d a b f m n s w x y z ph $.  $d m s x y S $.
    $d a b m s w z T $.
    erdsze.n $e |- ( ph -> N e. NN ) $.
    erdsze.f $e |- ( ph -> F : ( 1 ... N ) -1-1-> RR ) $.
    ${
      erdszelem.k $e |- K = ( x e. ( 1 ... N ) |->
        sup ( ( # " { y e. ~P ( 1 ... x ) | ( ( F |` y )
          Isom < , O ( y , ( F " y ) ) /\ x e. y ) } ) , RR , < ) ) $.
      $( Lemma for ~ erdsze .  (Contributed by Mario Carneiro, 22-Jan-2015.) $)
      erdszelem3 $p |- ( A e. ( 1 ... N ) -> ( K ` A ) =
        sup ( ( # " { y e. ~P ( 1 ... A ) | ( ( F |` y )
          Isom < , O ( y , ( F " y ) ) /\ A e. y ) } ) , RR , < ) ) $=
        ( chash cv cima clt wcel c1 cfz co cr cres wiso wa crab csup wceq oveq2
        cpw pweqd eleq1 anbi2d rabeqbidv imaeq2d supeq1d ltso supex fvmpt ) BDL
        CMZEURNOHEURUAUBZBMZURPZUCZCQUTRSZUHZUDZNZTOUELUSDURPZUCZCQDRSZUHZUDZNZ
        TOUEQGRSFUTDUFZTVFVLOVMVEVKLVMVBVHCVDVJVMVCVIUTDQRUGUIVMVAVGUSUTDURUJUK
        ULUMUNKTVLOUOUPUQ $.

      erdszelem.o $e |- O Or RR $.
      $( Lemma for ~ erdsze .  (Contributed by Mario Carneiro, 22-Jan-2015.) $)
      erdszelem4 $p |- ( ( ph /\ A e. ( 1 ... N ) ) -> { A } e.
        { y e. ~P ( 1 ... A ) | ( ( F |` y )
          Isom < , O ( y , ( F " y ) ) /\ A e. y ) } ) $=
        ( c1 wcel wa wss clt adantl wbr cr cfz co csn cima cres wiso cv crab cn
        cpw elfznn elfz1end sylib snssd cfv wi wb elsni breqan12d cuz fzssuz cz
        wral uzssz zssre sstri simpr adantr sseldi pm2.21d sylbid ralrimivva wf
        ltnrd wf1 f1f syl wor ltso soss mp2 soisores mpanl12 syl2anc snidg eqid
        mpbird erdszelem1 syl3anbrc ) ADMGUAUBZNZOZDUCZMDUAUBZPWMEWMUDQHEWMUEUF
        ZDWMNZWMCUGZEWQUDQHEWQUEUFDWQNOCWNUJUHZNWLDWNWLDUINZDWNNWKWSADGUKRDULUM
        UNWLWOBUGZWQQSZWTEUOWQEUOHSZUPZCWMVCBWMVCZWLXCBCWMWMWLWTWMNZWQWMNZOZOZX
        ADDQSZXBXGXAXIUQWLXEXFWTDWQDQWTDURWQDURUSRXHXIXBXHDXHWJTDWJMUTUOZTMGVAX
        JVBTMVDVEVFVFZWLWKXGAWKVGZVHVIVNVJVKVLWLWJTEVMZWMWJPZWOXDUQZAXMWKAWJTEV
        OXMJWJTEVPVQVHWLDWJXLUNWJQVRZTHVRXMXNOXOWJTPTQVRXPXKVSWJTQVTWALBCWMWJTQ
        HEWBWCWDWGWKWPADWJWERCDWREHWMWRWFWHWI $.

      $( Lemma for ~ erdsze .  (Contributed by Mario Carneiro, 22-Jan-2015.) $)
      erdszelem5 $p |- ( ( ph /\ A e. ( 1 ... N ) ) -> ( K ` A ) e. ( # "
        { y e. ~P ( 1 ... A ) | ( ( F |` y )
          Isom < , O ( y , ( F " y ) ) /\ A e. y ) } ) ) $=
        ( c1 cfz co wcel chash clt cr c0 wa cfv cv cima cres wiso cpw crab csup
        wceq erdszelem3 adantl wne cdm cin csn cvv snex cn0 cpnf cun hashf fdmi
        eleqtrri erdszelem4 inelcm sylancr imadisj necon3bii sylibr cfn cn eqid
        wss erdszelem2 simpli simpri nnssre sstri wor ltso fisupcl mpan mp3an13
        w3a syl eqeltrd ) ADMGNOPZUAZDFUBZQCUCZEWKUDRHEWKUEUFDWKPUACMDNOUGUHZUD
        ZSRUIZWMWHWJWNUJAABCDEFGHIJKUKULWIWMTUMZWNWMPZWIQUNZWLUOZTUMZWOWIDUPZWQ
        PWTWLPWSWTUQWQDURUQUSUTUPVAQVBVCVDABCDEFGHIJKLVEWTWQWLVFVGWMTWRTQWLVHVI
        VJWMVKPZWOWMSVNZWPXAWMVLVNZCDWLEHWLVMVOZVPWMVLSXAXCXDVQVRVSSRVTXAWOXBWE
        WPWASWMRWBWCWDWFWG $.

      $( Lemma for ~ erdsze .  (Contributed by Mario Carneiro, 22-Jan-2015.) $)
      erdszelem6 $p |- ( ph -> K : ( 1 ... N ) --> NN ) $=
        ( c1 cfz co cv cima clt wcel wa cn vz chash cres wiso cpw crab csup cvv
        cr ltso supex a1i cmpt wceq cfv cfn erdszelem2 simpri erdszelem5 sseldi
        wss eqid fmpt2d ) ABUALFMNZUBCOZDVEPQGDVEUCUDZBOZVERSCLVGMNUEUFPZUIQUGZ
        TEUHVIUHRAVGVDRSUIVHQUJUKULEBVDVIUMUNAJULAUAOZVDRSUBVFVJVERSCLVJMNUEUFZ
        PZTVJEUOVLUPRVLTVACVJVKDGVKVBUQURABCVJDEFGHIJKUSUTVC $.

      erdszelem.a $e |- ( ph -> A e. ( 1 ... N ) ) $.
      ${
        erdszelem7.r $e |- ( ph -> R e. NN ) $.
        erdszelem7.m $e |- ( ph -> -. ( K ` A ) e. ( 1 ... ( R - 1 ) ) ) $.
        $( Lemma for ~ erdsze .  (Contributed by Mario Carneiro,
           22-Jan-2015.) $)
        erdszelem7 $p |- ( ph -> E. s e. ~P ( 1 ... N )
          ( R <_ ( # ` s ) /\ ( F |` s ) Isom < , O ( s , ( F " s ) ) ) ) $=
          ( chash wcel c1 cv cfv wceq cima clt cres wiso wa cfz co cpw crab cle
          wrex wbr wfun cvv cn0 cpnf csn wf hashf ffun ax-mp erdszelem5 fvelima
          cun mpdan sylancr wss w3a wi eqid erdszelem1 simprl1 cuz elfzuz3 3syl
          fzss2 adantr sstrd selpw sylibr wn cz wb erdszelem6 ffvelrnd syl6eleq
          cmin cn nnz peano2zm elfz5 syl2anc nnltlem1 bitr4d mtbid nnred cr cfn
          erdszelem2 simpri nnssre sseldi lenltd mpbird simprr breqtrrd simprl2
          nnuz sstri jca32 expr sylan2b expimpd reximdv2 mpd ) AJUAZRUBZDGUBZUC
          ZJCUAZFYCUDUEIFYCUFUGDYCSUHCTDUIUJZUKULZUNZEXTUMUOZXSFXSUDUEIFXSUFUGZ
          UHZJTHUIUJZUKZUNARUPZYARYEUDZSZYFUQURUSUTVGZRVAYLVBUQYORVCVDADYJSZYNO
          ABCDFGHIKLMNVEVHZJYAYERVFVIAYBYIJYEYKAXSYESZYBXSYKSZYIUHZYRAXSYDVJZYH
          DXSSZVKZYBYTVLCDYEFIXSYEVMZVNAUUCYBYTAUUCYBUHZUHZYSYGYHUUFXSYJVJYSUUF
          XSYDYJUUAYHUUBYBAVOAYDYJVJZUUEAYPHDVPUBSUUGODTHVQDTHVSVRVTWAJYJWBWCUU
          FEYAXTUMAEYAUMUOZUUEAUUHYAEUEUOZWDAYATETWJUJZUIUJSZUUIQAUUKYAUUJUMUOZ
          UUIAYATVPUBZSUUJWESZUUKUULWFAYAWKUUMAYJWKDGABCFGHIKLMNWGOWHZXKWIAEWKS
          ZEWESUUNPEWLEWMVRYATUUJWNWOAYAWKSUUPUUIUULWFUUOPYAEWPWOWQWRAEYAAEPWSA
          YMWTYAYMWKWTYMXASYMWKVJCDYEFIUUDXBXCXDXLYQXEXFXGVTAUUCYBXHXIUUAYHUUBY
          BAXJXMXNXOXPXQXR $.
      $}

      erdszelem.b $e |- ( ph -> B e. ( 1 ... N ) ) $.
      erdszelem.l $e |- ( ph -> A < B ) $.
      $( Lemma for ~ erdsze .  (Contributed by Mario Carneiro, 22-Jan-2015.) $)
      erdszelem8 $p |- ( ph ->
        ( ( K ` A ) = ( K ` B ) -> -. ( F ` A ) O ( F ` B ) ) ) $=
        ( wbr wcel c1 cr vf vw vz cfv cv chash wceq cima clt cres wa cfz co cpw
        wiso crab wrex wne wi wfun cvv cn0 cpnf csn hashf ffun ax-mp erdszelem5
        cun wf mpdan fvelima sylancr wss w3a eqid erdszelem1 fzfid simplr1 ssfi
        cfn syl2anc hashcl syl nn0red cle csup c0 wral erdszelem2 simpri nnssre
        caddc cn sstri a1i wn elfznn nnred ltnled elfzle2 nsyl ad2antrr ssneldd
        mpbid hashunsng mp2and cuz cz elfzelz ltled eluz2 syl3anbrc fzss2 sstrd
        elfz1end sylib snssd unssd simplr2 wb wf1 wor soisores sselda ad3antrrr
        mpanl12 lenltd adantr adantl ffvelrnd imbi2d syl5ibrcom ralrimiv ralunb
        fvres elsni sylanbrc ralrimiva mpbird f1f elfzuz3 3syl uzssz zssre ltso
        fzssuz soss mp2 r19.21bi sseldi simplr3 simpr isorel breqan12d syl12anc
        bitrd mtbid simplr sotr2 mpan syl3anc fveq2d breq2d zred syldan pm2.21d
        a1d breq1d imbi1d ralbidv ssun2 snssg mpbiri cdm vex snex unex eleqtrri
        fdmi funfvima eqeltrrd ne0i simpli fimaxre2 sylancl syl31anc erdszelem3
        mp2an suprub breqtrrd erdszelem6 nnnn0d nn0ltp1le ltned neeq1 syl5ibcom
        ex sylan2b rexlimdva mpd necon2bd ) ADFUDZEFUDZIQZDGUDZEGUDZAUAUEZUFUDZ
        UXFUGZUACUEZFUXKUHUIIFUXKUJUOZDUXKRUKCSDULUMZUNUPZUQZUXEUXFUXGURZUSZAUF
        UTZUXFUFUXNUHRZUXOVAVBVCVDVIZUFVJUXRVEVAUXTUFVFVGZADSHULUMZRZUXSNABCDFG
        HIJKLMVHVKUAUXFUXNUFVLVMAUXJUXQUAUXNUXHUXNRAUXHUXMVNZUXHFUXHUHZUIIFUXHU
        JZUOZDUXHRZVOZUXJUXQUSCDUXNFIUXHUXNVPVQAUYIUKZUXEUXIUXGURZUSUXJUXQUYJUX
        EUYKUYJUXEUKZUXIUXGUYLUXIUYLUXHWARZUXIVBRZUYLUXMWARUYDUYMUYLSDVRUYDUYGU
        YHAUXEVSZUXMUXHVTWBZUXHWCWDZWEUYLUXIUXGUIQZUXISWMUMZUXGWFQZUYLUYSUFUXLE
        UXKRUKCSEULUMZUNUPZUHZTUIWGZUXGWFUYLVUCTVNZVUCWHURZUBUEZUCUEZWFQUBVUCWI
        UCTUQZUYSVUCRZUYSVUDWFQVUEUYLVUCWNTVUCWARZVUCWNVNZCEVUBFIVUBVPZWJZWKWLW
        OWPZUYLVUJVUFUYLUXHEVDZVIZUFUDZUYSVUCUYLUYMEUXHRWQZVURUYSUGZUYPUYLUXHUX
        MEUYOAEUXMRZWQUYIUXEAEDWFQZVVAADEUIQVVBWQPADEADAUYCDWNRZNDHWRZWDWSZAEAE
        UYBRZEWNRZOEHWRWDZWSZWTXEESDXAXBXCXDUYLVVFUYMVUSUKVUTUSAVVFUYIUXEOXCZUX
        HEUYBXFWDXGUYLVUQVUBRZVURVUCRZUYLVUQVUAVNVUQFVUQUHUIIFVUQUJUOZEVUQRZVVK
        UYLUXHVUPVUAUYLUXHUXMVUAUYOAUXMVUAVNZUYIUXEAEDXHUDZRZVVOADXIRZEXIRZDEWF
        QVVQAUYCVVRNDSHXJWDAVVFVVSOESHXJWDADEVVEVVIPXKDEXLXMDSEXNWDXCXOUYLEVUAA
        EVUARZUYIUXEAVVGVVTVVHEXPXQXCZXRXSZUYLVVMVUHVUGUIQZVUHFUDZVUGFUDZIQZUSZ
        UBVUQWIZUCVUQWIZUYLVWHUCUXHWIVWHUCVUPWIVWIUYLVWHUCUXHUYLVUHUXHRZUKZVWGU
        BUXHWIZVWGUBVUPWIVWHUYLVWLUCUXHUYLUYGVWLUCUXHWIZUYDUYGUYHAUXEXTZUYLUYBT
        FVJZUXHUYBVNZUYGVWMYAZAVWOUYIUXEAUYBTFYBVWOKUYBTFUUAWDXCZUYLUXHUXMUYBUY
        OAUXMUYBVNZUYIUXEAUYCHVVPRVWSNDSHUUBDSHXNUUCXCXOZUYBUIYCZTIYCZVWOVWPUKV
        WQUYBTVNTUIYCVXAUYBSXHUDZTSHUUGVXCXITSUUDUUEWOWOZUUFUYBTUIUUHUUIZMUCUBU
        XHUYBTUIIFYDYGWBXEUUJVWKVWGUBVUPVWKVWGVUGVUPRZVWCVWDUXDIQZUSVWKVXGVWCVW
        KUXCVWDIQZWQZUXEVXGVWKDVUHUIQZVXHVWKVUHDWFQZVXJWQVWKVUHUXMRVXKUYLUXHUXM
        VUHUYOYEVUHSDXAWDVWKVUHDVWKUYBTVUHVXDUYLUXHUYBVUHVWTYEZUUKVWKDVWKUYCVVC
        AUYCUYIUXEVWJNYFZVVDWDWSYHXEVWKUYGUYHVWJVXJVXHYAUYLUYGVWJVWNYIUYLUYHVWJ
        UYDUYGUYHAUXEUULYIUYLVWJUUMUYGUYHVWJUKZUKVXJDUYFUDZVUHUYFUDZIQZVXHUXHUY
        EDVUHUIIUYFUUNVXNVXQVXHYAUYGUYHVWJVXOUXCVXPVWDIDUXHFYPVUHUXHFYPUUOYJUUQ
        UUPUURUYJUXEVWJUUSVWKVWDTRZUXCTRZUXDTRZVXIUXEUKVXGUSZVWKUYBTVUHFUYLVWOV
        WJVWRYIZVXLYKVWKUYBTDFVYBVXMYKVWKUYBTEFVYBUYLVVFVWJVVJYIYKVXBVXRVXSVXTV
        OVYAMTVWDUXCUXDIUUTUVAUVBXGUVHVXFVWFVXGVWCVXFVWEUXDVWDIVXFVUGEFVUGEYQUV
        CUVDYLYMYNVWGUBUXHVUPYOYRYSUYLVWHUCVUPUYLVWHVUHVUPRZEVUGUIQZVWFUSZUBVUQ
        WIUYLVYEUBVUQUYLVUGVUQRZUKVYDVWFUYLVYFVUGVUARZVYDWQZUYLVUQVUAVUGVWBYEUY
        LVYGUKZVUGEWFQZVYHVYGVYJUYLVUGSEXAYJVYIVUGEVYGVUGTRUYLVYGVUGVUGSEXJUVEY
        JAETRUYIUXEVYGVVIYFYHXEUVFUVGYSVYCVWGVYEUBVUQVYCVWCVYDVWFVYCVUHEVUGUIVU
        HEYQUVIUVJUVKYMYNVWHUCUXHVUPYOYRUYLVWOVUQUYBVNZVVMVWIYAZVWRUYLUXHVUPUYB
        VWTUYLEUYBVVJXRXSVXAVXBVWOVYKUKVYLVXEMUCUBVUQUYBTUIIFYDYGWBYTUYLVVNVUPV
        UQVNZVUPUXHUVLUYLVVTVVNVYMYAVWAEVUQVUAUVMWDUVNCEVUBFIVUQVUMVQXMUXRVUQUF
        UVOZRVVKVVLUSUYAVUQVAVYNUXHVUPUAUVPEUVQUVRVAUXTUFVEUVTUVSVUBVUQUFUWAUWI
        WDUWBZVUCUYSUWCWDUYLVUEVUKVUIVUOVUKVULVUNUWDUCUBVUCUWEUWFVYOUCUBVUCUYSU
        WJUWGAUXGVUDUGZUYIUXEAVVFVYPOABCEFGHIJKLUWHWDXCUWKUYLUYNUXGVBRUYRUYTYAU
        YQUYLUXGAUXGWNRUYIUXEAUYBWNEGABCFGHIJKLMUWLOYKXCUWMUXIUXGUWNWBYTUWOUWRU
        XJUYKUXPUXEUXIUXFUXGUWPYLUWQUWSUWTUXAUXB $.
    $}

    ${
      erdszelem.i $e |- I = ( x e. ( 1 ... N ) |->
        sup ( ( # " { y e. ~P ( 1 ... x ) | ( ( F |` y )
          Isom < , < ( y , ( F " y ) ) /\ x e. y ) } ) , RR , < ) ) $.
      erdszelem.j $e |- J = ( x e. ( 1 ... N ) |->
        sup ( ( # " { y e. ~P ( 1 ... x ) | ( ( F |` y )
          Isom < , `' < ( y , ( F " y ) ) /\ x e. y ) } ) , RR , < ) ) $.
      erdszelem.t $e |- T = ( n e. ( 1 ... N ) |->
        <. ( I ` n ) , ( J ` n ) >. ) $.
      $( Lemma for ~ erdsze .  (Contributed by Mario Carneiro, 22-Jan-2015.) $)
      erdszelem9 $p |- ( ph -> T : ( 1 ... N ) -1-1-> ( NN X. NN ) ) $=
        ( cn cfv wceq wcel wa cr vz vw va vb c1 cfz co cxp wf cv wi wf1 cop clt
        wral ltso erdszelem6 ffvelrnda ccnv gtso opelxpi fmptd eqeqan12d eqeq12
        syl2anc fveq2 imbi12d eqcom syl6bb wss elfzelz zred ssriv a1i biidd cle
        wbr w3a simpr1 opeq12d opex fvmpt syl simpr2 eqeq12d fvex wne wn sseldi
        opth simpr3 leltned wo wb adantr f1fveq syl6bbr necon3bid bitr4d biimpa
        syl12anc ad2antrr ffvelrnd lttri2d mpbid simpr erdszelem8 anim12d ioran
        f1f notbii anbi2i bitr4i syl6ibr mt2d ex sylbird necon4ad syl5bi sylbid
        brcnv syl6ib wlogle ralrimivva dff13 sylanbrc ) AUEIUFUGZOOUHZDUIUAUJZD
        PZUBUJZDPZQZYIYKQZUKZUBYGUOUAYGUOYGYHDULAEYGEUJZGPZYPHPZUMZYHDAYPYGRSYQ
        ORYRORYSYHRAYGOYPGABCFGIUNJKLUPUQURAYGOYPHABCFHIUNUSZJKMUTUQURYQYROOVAV
        ENVBAYOUAUBYGYGAUCUJZDPZUDUJZDPZQZUUAUUCQZUKYOYOUAUBUCUDYGUUAYIQZUUCYKQ
        ZSUUEYMUUFYNUUGUUHUUBYJUUDYLUUAYIDVFUUCYKDVFVCUUAYIUUCYKVDVGUUAYKQZUUCY
        IQZSZUUEYMUUFYNUUKUUEYLYJQYMUUIUUJUUBYLUUDYJUUAYKDVFUUCYIDVFVCYLYJVHVIU
        UKUUFYKYIQZYNUUAYKUUCYIVDYKYIVHZVIVGYGTVJAUAYGTYIYGRZYIYIUEIVKVLZVMZVNA
        UUNYKYGRZSSYOVOAUUNUUQYIYKVPVQZVRZSZYMUULYNUUTYMYIGPZYIHPZUMZYKGPZYKHPZ
        UMZQZUULUUTYJUVCYLUVFUUTUUNYJUVCQAUUNUUQUURVSZEYIYSUVCYGDYPYIQYQUVAYRUV
        BYPYIGVFYPYIHVFVTNUVAUVBWAWBWCUUTUUQYLUVFQAUUNUUQUURWDZEYKYSUVFYGDYPYKQ
        YQUVDYRUVEYPYKGVFYPYKHVFVTNUVDUVEWAWBWCWEUVGUVAUVDQZUVBUVEQZSZUUTUULUVA
        UVBUVDUVEYIGWFYIHWFWJUUTUVLYKYIUUTYKYIWGZYIYKUNVQZUVLWHZUUTYIYKUUTUUNYI
        TRUVHUUOWCUUTYGTYKUUPUVIWIAUUNUUQUURWKWLZUUTUVNUVOUUTUVNSZUVLYIFPZYKFPZ
        UNVQZUVSUVRUNVQZWMZUVQUVRUVSWGZUWBUUTUVNUWCUUTUVNUVMUWCUVPUUTUVRUVSYKYI
        UUTUVRUVSQZYNUULUUTYGTFULZUUNUUQUWDYNWNAUWEUUSKWOUVHUVIYGTYIYKFWPXAUUMW
        QWRWSWTUVQUVRUVSUVQYGTYIFAYGTFUIZUUSUVNAUWEUWFKYGTFXJWCXBZUUTUUNUVNUVHW
        OZXCUVQYGTYKFUWGUUTUUQUVNUVIWOZXCXDXEUVQUVLUVTWHZUVRUVSYTVQZWHZSZUWBWHZ
        UVQUVJUWJUVKUWLUVQBCYIYKFGIUNAIORUUSUVNJXBZAUWEUUSUVNKXBZLUPUWHUWIUUTUV
        NXFZXGUVQBCYIYKFHIYTUWOUWPMUTUWHUWIUWQXGXHUWNUWJUWAWHZSUWMUVTUWAXIUWLUW
        RUWJUWKUWAUVRUVSUNYIFWFYKFWFYAXKXLXMXNXOXPXQXRXSXTUUMYBYCYDUAUBYGYHDYEY
        F $.

      erdszelem.r $e |- ( ph -> R e. NN ) $.
      erdszelem.s $e |- ( ph -> S e. NN ) $.
      erdszelem.m $e |- ( ph -> ( ( R - 1 ) x. ( S - 1 ) ) < N ) $.
      $( Lemma for ~ erdsze .  (Contributed by Mario Carneiro, 22-Jan-2015.) $)
      erdszelem10 $p |- ( ph -> E. m e. ( 1 ... N )
        ( -. ( I ` m ) e. ( 1 ... ( R - 1 ) ) \/
          -. ( J ` m ) e. ( 1 ... ( S - 1 ) ) ) ) $=
        ( vs cv cfv c1 cmin co cfz cxp wcel wn wrex wo crn wss csdm wbr cdom wi
        cfn fzfi xpfi mp2an ssdomg ax-mp domnsym syl cen chash cmul wceq hashxp
        clt cn cn0 nnm1nn0 hashfz1 oveq12d syl5eq nnnn0d 3brtr4d fzfid hashsdom
        3syl wb sylancr mpbid wf1 wf1o erdszelem9 f1f1orn ovex sdomentr syl2anc
        f1oen nsyl3 wex nss df-rex bitr4i sylib wfn f1fn eleq1 notbid rexrn cop
        wa fveq2 opeq12d opex fvmpt adantl eleq1d opelxp syl6bb ianor rexbidva
        ) AGUBZFUCZUDDUDUEUFZUGUFZUDEUDUEUFZUGUFZUHZUIZUJZGUDLUGUFZUKZXRJUCZYAU
        IZUJXRKUCZYCUIZUJULZGYGUKAUAUBZYDUIZUJZUAFUMZUKZYHAYQYDUNZUJZYRYSYDYQUO
        UPZAYSYQYDUQUPZUUAUJYDUSUIZYSUUBURYAUSUIZYCUSUIZUUCUDXTUTZUDYBUTZYAYCVA
        VBZYQYDUSVCVDYQYDVEVFAYDYGUOUPZYGYQVGUPZUUAAYDVHUCZYGVHUCZVLUPZUUIAXTYB
        VIUFZLUUKUULVLTAUUKYAVHUCZYCVHUCZVIUFZUUNUUDUUEUUKUUQVJUUFUUGYAYCVKVBAU
        UOXTUUPYBVIADVMUIXTVNUIUUOXTVJRDVOXTVPWCAEVMUIYBVNUIUUPYBVJSEVOYBVPWCVQ
        VRALVNUIUULLVJALMVSLVPVFVTAUUCYGUSUIUUMUUIWDUUHAUDLWAYDYGWBWEWFAYGVMVMU
        HZFWGZYGYQFWHUUJABCFHIJKLMNOPQWIZYGUURFWJYGYQFUDLUGWKWNWCYDYGYQWLWMWOYT
        YNYQUIYPXGUAWPYRUAYQYDWQYPUAYQWRWSWTAUUSFYGXAYRYHWDUUTYGUURFXBYPYFUAGYG
        FYNXSVJYOYEYNXSYDXCXDXEWCWFAYFYMGYGAXRYGUIZXGZYFYJYLXGZUJYMUVBYEUVCUVBY
        EYIYKXFZYDUIUVCUVBXSUVDYDUVAXSUVDVJAHXRHUBZJUCZUVEKUCZXFUVDYGFUVEXRVJUV
        FYIUVGYKUVEXRJXHUVEXRKXHXIQYIYKXJXKXLXMYIYKYAYCXNXOXDYJYLXPXOXQWF $.

      $( Lemma for ~ erdsze .  (Contributed by Mario Carneiro, 22-Jan-2015.) $)
      erdszelem11 $p |- ( ph -> E. s e. ~P ( 1 ... N )
      ( ( R <_ ( # ` s ) /\ ( F |` s ) Isom < , < ( s , ( F " s ) ) ) \/
        ( S <_ ( # ` s ) /\ ( F |` s ) Isom < , `' < ( s , ( F " s ) ) ) ) ) $=
        ( vm cv chash cfv cle wbr cima clt cres wiso wa c1 cfz co cpw wrex ccnv
        wo cmin wcel wn erdszelem10 cn adantr wf1 ltso simprl simprr erdszelem7
        cr expr gtso orim12d rexlimdva mpd r19.43 sylibr ) ADLUBZUCUDZUEUFVRHVR
        UGZUHUHHVRUIZUJUKZLULKUMUNZUOZUPZEVSUEUFVRVTUHUHUQZWAUJUKZLWDUPZURZWBWG
        URLWDUPAUAUBZIUDULDULUSUNUMUNUTVAZWJJUDULEULUSUNUMUNUTVAZURZUAWCUPWIABC
        DEFUAGHIJKMNOPQRSTVBAWMWIUAWCAWJWCUTZUKWKWEWLWHAWNWKWEAWNWKUKZUKBCWJDHI
        KUHLAKVCUTZWOMVDAWCVJHVEZWONVDOVFAWNWKVGADVCUTWORVDAWNWKVHVIVKAWNWLWHAW
        NWLUKZUKBCWJEHJKWFLAWPWRMVDAWQWRNVDPVLAWNWLVGAEVCUTWRSVDAWNWLVHVIVKVMVN
        VOWBWGLWDVPVQ $.
    $}

    erdsze.r $e |- ( ph -> R e. NN ) $.
    erdsze.s $e |- ( ph -> S e. NN ) $.
    erdsze.l $e |- ( ph -> ( ( R - 1 ) x. ( S - 1 ) ) < N ) $.
    $( The Erd&#337;s-Szekeres theorem.  For any injective sequence ` F ` on
       the reals of length at least ` ( R - 1 ) x. ( S - 1 ) + 1 ` , there is
       either a subsequence of length at least ` R ` on which ` F ` is
       increasing (i.e. a ` < , < ` order isomorphism) or a subsequence of
       length at least ` S ` on which ` F ` is decreasing (i.e. a ` < , ``' < `
       order isomorphism, recalling that ` ``' < ` is the greater-than
       relation).  This is part of Metamath 100 proof #73.  (Contributed by
       Mario Carneiro, 22-Jan-2015.) $)
    erdsze $p |- ( ph -> E. s e. ~P ( 1 ... N )
    ( ( R <_ ( # ` s ) /\ ( F |` s ) Isom < , < ( s , ( F " s ) ) ) \/
      ( S <_ ( # ` s ) /\ ( F |` s ) Isom < , `' < ( s , ( F " s ) ) ) ) ) $=
      ( vx vy vz vw chash cima clt wiso wa vn c1 cfz co cv cres wel cpw crab cr
      csup cmpt cfv ccnv cop weq wceq wb reseq2 isoeq1 syl isoeq4 imaeq2 isoeq5
      3bitrd elequ2 anbi12d cbvrabv oveq2 pweqd elequ1 anbi2d rabeqbidv imaeq2d
      syl5eq supeq1d cbvmptv eqid erdszelem11 ) ALMBCUAUBEUCUDZUAUEZNVTPOUEZDWB
      QZRRDWBUFZSZNOUGZTZOUBNUEZUCUDZUHZUIZQZUJRUKZULZUMWANVTPWBWCRRUNZWDSZWFTZ
      OWJUIZQZUJRUKZULZUMUOULZUADWNXAEFGHNLVTWMPMUEZDXCQZRRDXCUFZSZLMUGZTZMUBLU
      EZUCUDZUHZUIZQZUJRUKNLUPZUJWLXMRXNWKXLPXNWKXFNMUGZTZMWJUIXLWGXPOMWJOMUPZW
      EXFWFXOXQWEWBWCRRXESZXCWCRRXESZXFXQWDXEUQZWEXRURWBXCDUSZWBWCRRXEWDUTVAWBW
      CXCRRXEVBXQWCXDUQZXSXFURWBXCDVCZXCWCXDRRXEVDVAVEOMNVFZVGVHXNXPXHMWJXKXNWI
      XJWHXIUBUCVIVJZXNXOXGXFNLMVKZVLVMVOVNVPVQNLVTWTPXCXDRWOXESZXGTZMXKUIZQZUJ
      RUKXNUJWSYJRXNWRYIPXNWRYGXOTZMWJUIYIWQYKOMWJXQWPYGWFXOXQWPWBWCRWOXESZXCWC
      RWOXESZYGXQXTWPYLURYAWBWCRWOXEWDUTVAWBWCXCRWOXEVBXQYBYMYGURYCXCWCXDRWOXEV
      DVAVEYDVGVHXNYKYHMWJXKYEXNXOXGYGYFVLVMVOVNVPVQXBVRIJKVS $.
  $}

  ${
    $d f s t A $.  $d f s t F $.  $d s t x y G $.  $d f s t R $.  $d f s t S $.
    $d f s t x y N $.  $d f s t x y ph $.
    erdsze2.r $e |- ( ph -> R e. NN ) $.
    erdsze2.s $e |- ( ph -> S e. NN ) $.
    erdsze2.f $e |- ( ph -> F : A -1-1-> RR ) $.
    erdsze2.a $e |- ( ph -> A C_ RR ) $.
    ${
      erdsze2lem.n $e |- N = ( ( R - 1 ) x. ( S - 1 ) ) $.
      erdsze2lem.l $e |- ( ph -> N < ( # ` A ) ) $.
      $( Lemma for ~ erdsze2 .  (Contributed by Mario Carneiro,
         22-Jan-2015.) $)
      erdsze2lem1 $p |- ( ph -> E. f ( f : ( 1 ... ( N + 1 ) ) -1-1-> A /\
        f Isom < , < ( ( 1 ... ( N + 1 ) ) , ran f ) ) ) $=
        ( c1 co clt wcel syl wb cr vs caddc cfz cv cen wbr wss wf1 crn wiso wex
        wa cdom cfn chash cfv cle wceq cn0 cmin cmul nnm1nn0 nn0mulcld syl5eqel
        cn peano2nn0 hashfz1 adantr hashcl nn0ltp1le syl2an mpbid eqbrtrd fzfid
        3syl simpr hashdom syl2anc isinffi cvv reex ssexg sylancl brdomg mpbird
        wn pm2.61dan domeng wor simprr ltso soss mpisyl simprl enfi fz1iso wf1o
        sstrd isof1o adantl hashen eqtr3d oveq2d f1oeq2 f1of1 simplrr wfo f1ofo
        f1ss forn isoeq5 4syl isoeq4 jca ex eximdv mpd exlimddv ) ANGNUBOZUCOZU
        AUDZUEUFZYABUGZULZXTBEUDZUHZXTYEUIZPPYEUJZULZEUKZUAAXTBUMUFZYDUAUKZABUN
        QZYKAYMULZXTUOUPZBUOUPZUQUFZYKYNYOXSYPUQAYOXSURZYMAGUSQZXSUSQYRAGCNUTOZ
        DNUTOZVAOUSLAYTUUAACVEQYTUSQHCVBRADVEQUUAUSQIDVBRVCVDZGVFXSVGVOZVHYNGYP
        PUFZXSYPUQUFZAUUDYMMVHAYSYPUSQUUDUUESYMUUBBVIGYPVJVKVLVMYNXTUNQZYMYQYKS
        YNNXSVNAYMVPXTBUNVQVRVLAYMWFZULZYKYFEUKZUUHUUGUUFUUIAUUGVPUUHNXSVNBXTEV
        SVRUUHBVTQZYKUUISAUUJUUGABTUGZTVTQUUJKWABTVTWBWCZVHXTBVTEWDRWEWGAUUJYKY
        LSUULUAXTBVTWHRVLAYDULZNYAUOUPZUCOZYAPPYEUJZEUKZYJUUMYAPWIZYAUNQZUUQUUM
        YATUGTPWIUURUUMYABTAYBYCWJAUUKYDKVHWRWKYATPWLWMUUMUUFUUSUUMNXSVNZUUMYBU
        UFUUSSAYBYCWNZXTYAWORVLZYAPEWPVRUUMUUPYIEUUMUUPYIUUMUUPULZYFYHUVCXTYAYE
        UHZYCYFUVCXTYAYEWQZUVDUVCUUOYAYEWQZUVEUUPUVFUUMUUOYAPPYEWSWTZUVCUUOXTUR
        ZUVFUVESUVCUUNXSNUCUUMUUNXSURUUPUUMYOUUNXSUUMYOUUNURZYBUVAUUMUUFUUSUVIY
        BSUUTUVBXTYAXAVRWEAYRYDUUCVHXBVHXCZUUOXTYAYEXDRVLXTYAYEXERAYBYCUUPXFXTY
        ABYEXIVRUVCUUOYGPPYEUJZYHUVCUVKUUPUUMUUPVPUVCUVFUUOYAYEXGYGYAURUVKUUPSU
        VGUUOYAYEXHUUOYAYEXJUUOYGYAPPYEXKXLWEUVCUVHUVKYHSUVJUUOYGXTPPYEXMRVLXNX
        OXPXQXR $.

      erdsze2lem.g $e |- ( ph -> G : ( 1 ... ( N + 1 ) ) -1-1-> A ) $.
      erdsze2lem.i $e |- ( ph ->
        G Isom < , < ( ( 1 ... ( N + 1 ) ) , ran G ) ) $.
      $( Lemma for ~ erdsze2 .  (Contributed by Mario Carneiro,
         22-Jan-2015.) $)
      erdsze2lem2 $p |- ( ph -> E. s e. ~P A
      ( ( R <_ ( # ` s ) /\ ( F |` s ) Isom < , < ( s , ( F " s ) ) ) \/
        ( S <_ ( # ` s ) /\ ( F |` s ) Isom < , `' < ( s , ( F " s ) ) ) ) ) $=
        ( clt wiso wcel syl vt vx vy cv chash cfv cle ccom cima cres wa ccnv wo
        wbr c1 caddc co cfz cpw wrex cn0 cn cmin cmul nnm1nn0 nn0mulcld nn0p1nn
        syl5eqel cr wf1 f1co syl2anc nn0red ltp1d syl5eqbrr erdsze wss wi selpw
        crn imassrn wf f1f frn syl5ss cvv wb ssexg sylancl elpw2g mpbird adantr
        reex wceq cen vex f1imaen sylan fzfid simpr enfii hashen breq2d biimprd
        cfn ad2antrr simprl sseldd simprr isorel syl12anc biimpd ralrimivva wor
        ssfi wral elfznn nnred ssriv a1i ltso soss mpisyl soisores isocnv isotr
        syl22anc ex resco coeq1i coass isoeq1 isoeq5 ax-mp syl6bb sylibd isoeq4
        anim12d 3bitrd anbi12d eqtri cid f1ores f1ococnv2 coeq2d coires1 syl6eq
        wf1o syl5eq imaco orim12d reseq2 imaeq2 orbi12d rspcev syl6an rexlimdva
        fveq2 sylan2b mpd ) ACUAUDZUEUFZUGUNZUVAEFUHZUVAUIZQQUVDUVAUJZRZUKZDUVB
        UGUNZUVAUVEQQULZUVFRZUKZUMZUAUOGUOUPUQZURUQZUSZUTCHUDZUEUFZUGUNZUVQEUVQ
        UIZQQEUVQUJZRZUKZDUVRUGUNZUVQUVTQUVJUWARZUKZUMZHBUSZUTZACDUVDUVNUAAGVAS
        UVNVBSAGCUOVCUQZDUOVCUQZVDUQZVAMAUWJUWKACVBSUWJVASICVETADVBSUWKVASJDVET
        VFVHZGVGTABVIEVJUVOBFVJZUVOVIUVDVJKOUVOBVIEFVKVLIJAUWLGUVNQMAGAGUWMVMVN
        VOVPAUVMUWIUAUVPUVAUVPSAUVAUVOVQZUVMUWIVRUAUVOVSAUWOUKZFUVAUIZUWHSZUVMC
        UWQUEUFZUGUNZUWQEUWQUIZQQEUWQUJZRZUKZDUWSUGUNZUWQUXAQUVJUXBRZUKZUMZUWIA
        UWRUWOAUWRUWQBVQZAUWQFVTZBFUVAWAAUVOBFWBZUXJBVQAUWNUXKOUVOBFWCTZUVOBFWD
        TWEABWFSZUWRUXIWGABVIVQZVIWFSUXMLWMBVIWFWHWIUWQBWFWJTWKWLUWPUVHUXDUVLUX
        GUWPUVCUWTUVGUXCUWPUWTUVCUWPUWSUVBCUGUWPUWSUVBWNZUWQUVAWOUNZAUWNUWOUXPO
        UVOBUVAFUAWPWQWRZUWPUWQXESZUVAXESZUXOUXPWGUWPUXSUXPUXRUWPUVOXESUWOUXSUW
        PUOUVNWSAUWOWTZUVOUVAXOVLZUXQUWQUVAXAVLUYAUWQUVAXBVLWKZXCXDUWPUVGUWQUVE
        QQUVFFUVAUJZULZUHZRZUXCUWPUWQUVAQQUYDRZUVGUYFVRUWPUVAUWQQQUYCRZUYGUWPUY
        HUBUDZUCUDZQUNZUYIFUFUYJFUFQUNZVRZUCUVAXPUBUVAXPZUWPUYMUBUCUVAUVAUWPUYI
        UVASZUYJUVASZUKZUKZUYKUYLUYRUVOUXJQQFRZUYIUVOSUYJUVOSUYKUYLWGAUYSUWOUYQ
        PXFUYRUVAUVOUYIUWPUWOUYQUXTWLZUWPUYOUYPXGXHUYRUVAUVOUYJUYTUWPUYOUYPXIXH
        UVOUXJUYIUYJQQFXJXKXLXMUWPUVOQXNZBQXNZUXKUWOUYHUYNWGUWPUVOVIVQZVIQXNZVU
        AVUCUWPUAUVOVIUVAUVOSUVAUVAUVNXQXRXSXTYAUVOVIQYBYCUWPUXNVUDVUBAUXNUWOLW
        LYABVIQYBYCAUXKUWOUXLWLUXTUBUCUVAUVOBQQFYDYGWKUVAUWQQQUYCYETZUYGUVGUYFU
        WQUVAUVEQQQUVFUYDYFYHTUWPUYFUWQUVEQQUXBRZUXCUWPUYEUXBWNZUYFVUFWGUWPUYEE
        UYCUYDUHZUHZUXBUYEEUYCUHZUYDUHVUIUVFVUJUYDEFUVAYIYJEUYCUYDYKUUAUWPVUIEU
        UBUWQUJZUHUXBUWPVUHVUKEUWPUVAUWQUYCUUHZVUHVUKWNAUWNUWOVULOUVOBUVAFUUCWR
        UVAUWQUYCUUDTUUEEUWQUUFUUGUUIZUWQUVEQQUXBUYEYLTUVEUXAWNZVUFUXCWGEFUVAUU
        JZUWQUVEUXAQQUXBYMYNYOYPYRUWPUVIUXEUVKUXFUWPUXEUVIUWPUWSUVBDUGUYBXCXDUW
        PUVKUWQUVEQUVJUYERZUXFUWPUYGUVKVUPVRVUEUYGUVKVUPUWQUVAUVEQQUVJUVFUYDYFY
        HTUWPVUPUWQUVEQUVJUXBRZUXFUWPVUGVUPVUQWGVUMUWQUVEQUVJUXBUYEYLTVUNVUQUXF
        WGVUOUWQUVEUXAQUVJUXBYMYNYOYPYRUUKUWGUXHHUWQUWHUVQUWQWNZUWCUXDUWFUXGVUR
        UVSUWTUWBUXCVURUVRUWSCUGUVQUWQUEUURZXCVURUWBUVQUVTQQUXBRZUWQUVTQQUXBRZU
        XCVURUWAUXBWNZUWBVUTWGUVQUWQEUULZUVQUVTQQUXBUWAYLTUVQUVTUWQQQUXBYQVURUV
        TUXAWNZVVAUXCWGUVQUWQEUUMZUWQUVTUXAQQUXBYMTYSYTVURUWDUXEUWEUXFVURUVRUWS
        DUGVUSXCVURUWEUVQUVTQUVJUXBRZUWQUVTQUVJUXBRZUXFVURVVBUWEVVFWGVVCUVQUVTQ
        UVJUXBUWAYLTUVQUVTUWQQUVJUXBYQVURVVDVVGUXFWGVVEUWQUVTUXAQUVJUXBYMTYSYTU
        UNUUOUUPUUSUUQUUT $.
    $}

    erdsze2.l $e |- ( ph -> ( ( R - 1 ) x. ( S - 1 ) ) < ( # ` A ) ) $.
    $( Generalize the statement of the Erd&#337;s-Szekeres theorem ~ erdsze to
       "sequences" indexed by an arbitrary subset of ` RR ` , which can be
       infinite.  This is part of Metamath 100 proof #73.  (Contributed by
       Mario Carneiro, 22-Jan-2015.) $)
    erdsze2 $p |- ( ph -> E. s e. ~P A
      ( ( R <_ ( # ` s ) /\ ( F |` s ) Isom < , < ( s , ( F " s ) ) ) \/
        ( S <_ ( # ` s ) /\ ( F |` s ) Isom < , `' < ( s , ( F " s ) ) ) ) ) $=
      ( vf c1 cmin co clt wiso wa wbr adantr caddc cfz cv wf1 crn chash cfv cle
      cmul cima cres ccnv wo cpw wrex eqid erdsze2lem1 cn wcel cr simprl simprr
      wss erdsze2lem2 exlimddv ) AMCMNODMNOUIOZMUAOUBOZBLUCZUDZVGVHUEPPVHQZRZCF
      UCZUFUGZUHSVLEVLUJZPPEVLUKZQRDVMUHSVLVNPPULVOQRUMFBUNUOLABCDLEVFGHIJVFUPZ
      KUQAVKRBCDEVHVFFACURUSVKGTADURUSVKHTABUTEUDVKITABUTVCVKJTVPAVFBUFUGPSVKKT
      AVIVJVAAVIVJVBVDVE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Euler's partition theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $(
  @{
    eulerpartlemm.f @e |- F = ( x e. NN0 , y e. { z e. NN | -. 2 || z } |->
      ( ( 2 ^ x ) x. y ) ) @.
    @( Lemma for ~ eulerpart .  The function ` F ` that decomposes a number
       into its "odd" and "even" parts, which is to say the largest power of
       two and largest odd divisor of a number, is a bijection from
       pairs of a positive integer and an odd number to positive integers. @)
    eulerpartlemm @p |- F : ( NN0 X. { z e. NN | -. 2 || z } ) -1-1-onto->
      NN ) @=
      ( cn0 cn cmap co wcel ccnv cima cfn cv cfv cmul csu wceq wa wf nn0ex nnex
      w3a elmap anbi1i cnveq eleq1d fveq1 oveq1d sumeq2sdv eqeq1d elrab2 3anass
      imaeq1d anbi12d 3bitr4i ) AGHIJZKZALZHMZNKZHDOZAPZVCQJZDRZESZTZTHGAUAZVHT
      ABKVIVBVGUDUSVIVHGHAUBUCUEUFCOZLZHMZNKZHVCVJPZVCQJZDRZESZTVHCAURBVJASZVMV
      BVQVGVRVLVANVRVKUTHVJAUGUOUHVRVPVFEVRHVOVEDVRVNVDVCQVCVJAUIUJUKULUPFUMVIV
      BVGUNUQ @.
      @( [26-Jan-2015] @)
  @}

  @{
    eulerpart.p @e |- P = { f e. ( NN0 ^m NN ) | ( ( `' f " NN ) e. Fin /\
      sum_ k e. NN ( ( f ` k ) x. k ) = N ) } @.
    @( Lemma for ~ eulerpart . @)
    eulerpartleme @p |- ( A e. P <-> ( A : NN --> NN0 /\ ( `' A " NN ) e. Fin
      /\ sum_ k e. NN ( ( A ` k ) x. k ) = N ) ) @=
      ( cn0 cn cmap co wcel ccnv cima cfn cv cfv cmul csu wceq wa wf nn0ex nnex
      w3a elmap anbi1i cnveq eleq1d fveq1 oveq1d sumeq2sdv eqeq1d elrab2 3anass
      imaeq1d anbi12d 3bitr4i ) AGHIJZKZALZHMZNKZHDOZAPZVCQJZDRZESZTZTHGAUAZVHT
      ABKVIVBVGUDUSVIVHGHAUBUCUEUFCOZLZHMZNKZHVCVJPZVCQJZDRZESZTVHCAURBVJASZVMV
      BVQVGVRVLVANVRVKUTHVJAUGUOUHVRVPVFEVRHVOVEDVRVNVDVCQVCVJAUIUJUKULUPFUMVIV
      BVGUNUQ @.
      @( [26-Jan-2015] @)

    @( Lemma for ~ eulerpart .  The set of all partitions of ` N ` is
       finite. @)
    eulerpartlemb @p |- P e. Fin @=
      ( vx cn c1 co wcel cc0 wa wceq adantl cn0 cle wbr syl wi adantr vg vy cfz
      cv csn cif cixp cfn wss wtru fzfid fzfi snfi keepel a1i wn eldifn iffalse
      cdif eqimss 3syl ixpfi2 trud ccnv cima cfv cmul csu w3a eulerpartleme wfn
      wf wral ffn 3ad2ant1 cr simp1 ffvelrn sylan nn0re idiALT remulcl syl2anc
      cdm cnvimass fdm syl5sseq cc sselda adantlr syldan nnnn0 nn0mulcl nn0cn
      simpl nnre cvv nn0supp suppssrOLD oveq1d eldifi nncn mul02 eqtrd cuz
      eqimssi sumss
      nnuz nn0sscn caddc nn0addcl simpr 0nn0 fsumcllem eqeltrrd eleq1 syl5ibcom
      3impia nn0ge0 nnge1 lemulge11 syl22anc fveq2 oveq12d simprr fsumge1 eldif
      id expr ralrimiva eqeq1d rspccva sylan2br fsumge0 breqtrd syl6eleq elfz5
      wb eleqtrrd syld adantrr eqbrtrd pm2.61d 3adantl3 simpl3 letrd nn0uz nn0z
      cz mpbird iftrue lemulge12 syl21anc letr syl3anc syl5 sylibrd con3d elnn0
      mpan2d sylib ord imp fvex elsn sylibr pm2.61dan vex elixp sylanbrc sylbi
      wo ssriv ssfi mp2an ) FGFUDZHDUCIZJZKDUCIZKUEZUFZUGZUHJZAUWBUIAUHJUWCUJFG
      UWAUVQKUJHDUKUWAUHJUJUVPGJZLUVRUVSUVTUHKDULKUMUNUOUJUVPGUVQUSJZLUVRUPZUWA
      UVTMZUWAUVTUIUWEUWFUJUVPGUVQUQNUVRUVSUVTURZUWAUVTUTVAVBVCUAAUWBUAUDZAJGOU
      WIVLZUWIVDZGVEZUHJZGCUDZUWIVFZUWNVGIZCVHZDMZVIZUWIUWBJZUWIABCDEVJUWSUWIGV
      KZUVPUWIVFZUWAJZFGVMUWTUWJUWMUXAUWRGOUWIVNVOUWSUXCFGUWSUWDLZUVRUXCUXDUVRL
      UXBUVSUWAUXDUXBUVSJZUVRUXDUXEUXBDPQZUXDUXBUXBUVPVGIZDUXDUXBOJZUXBVPJZUWSU
      WJUWDUXHUWJUWMUWRVQGOUVPUWIVRVSZUXBVTRZUXDUXIUVPVPJZUXGVPJZUXDUXISUXKWAUX
      DUXLSUWDUXLUWSUVPWPNZWAZUXBUVPWBWCZUXDDOJZDVPJZUWSUXQUWDUWJUWMUWRUXQUWJUW
      MLZUWQOJUWRUXQUXSUWLUWPCVHZUWQOUXSUWLGUWPCHUXSUWIWDZUWLGUWIGWEUWJUYAGMUWM
      GOUWIWFTWGZUXSUWNUWLJZLZUWPOJZUWPWHJUYDUWOOJZUWNOJZUYEUXSUYCUWNGJZUYFUXSU
      WLGUWNUYBWIZUWJUYHUYFUWMGOUWNUWIVRWJWKUYDUYHUYGUYIUWNWLRUWOUWNWMWCZUWPWNR
      UXSUWNGUWLUSZJZLZUWPKUWNVGIZKUYMUWOKUWNVGUXSGOUWIUWLUWNKUWJUWMWOUXSUWKWQU
      VTUSVEZUWLMZUYOUWLUIUWJUYPUWMUWIGWRTUYOUWLUTRWSWTUYMUYHUWNWHJUYNKMUYLUYHU
      XSUWNGUWLXANUWNXBUWNXCVAXDZGHXEVFZUIUXSGUYRXHXFUOXGZUXSFUBUWLUWPOCOWHUIUX
      SXIUOUVPOJZUBUDZOJLUVPVUAXJIOJUXSUVPVUAXKNUWJUWMXLZUYJKOJUXSXMUOXNXOUWQDO
      XPXQXRTZDVTRZUXDUXIUXLKUXBPQZHUVPPQZUXBUXGPQUXKUXNUXDUXHVUEUXDUXHSUXJWAUX
      BXSRUWDVUFUWSUVPXTNUXBUVPYAYBUXDUXGUWQDPUWJUWMUWDUXGUWQPQUWRUXSUWDLZUXGUX
      TUWQPVUGUVPUWLJZUXGUXTPQZUXSUWDVUHVUIUXSUWDVUHLZLUWLUWPUXGCUVPUXSUWMVUJVU
      BTUXSUYCUWPVPJZVUJUYDUYEVUKUYJUWPVTZRWJUXSUYCKUWPPQZVUJUYDUYEVUMUYJUWPXSZ
      RWJUWNUVPMZUWOUXBUWNUVPVGUWNUVPUWIYCVUOYHYDZUXSUWDVUHYEYFYIUXSUWDVUHUPZVU
      IUXSUWDVUQLZLUXGKUXTPVURUXSUVPUYKJZUXGKMZUVPGUWLYGUXSUWPKMZCUYKVMVUSVUTUX
      SVVACUYKUYQYJVVAVUTCUVPUYKVUOUWPUXGKVUPYKYLVSYMUXSUWDKUXTPQVUQVUGUWLUWPCU
      XSUWMUWDVUBTVUGUYCLZUYEVUKUXSUYCUYEUWDUYJWJZVULRVVBUYEVUMVVCVUNRYNUUAUUBY
      IUUCUXSUXTUWQMUWDUYSTYOUUDUWJUWMUWRUWDUUEYOZUUFUXDUXBKXEVFZJDUUIJZUXEUXFY
      RUXDUXBOVVEUXJUUGYPUXDUXQVVFVUCDUUHRZUXBKDYQWCUUJTUVRUWAUVSMUXDUVRUVSUVTU
      UKNYSUXDUWFLZUXBUVTUWAVVHUXBKMZUXBUVTJUXDUWFVVIUXDUWFUXBGJZUPVVIUXDVVJUVR
      UXDVVJUVPDPQZUVRVVJHUXBPQZUXDVVKUXBXTUXDVVLUVPUXGPQZVVKUXDUXLUXIKUVPPQZVV
      LVVMSUXNUXKUXDUYTVVNUWDUYTUWSUVPWLNUVPXSRUXLUXILVVNVVLVVMUVPUXBUULYIUUMUX
      DVVMUXGDPQZVVKVVDUXDUXLUXMUXRVVMVVOLVVKSUXOUXDUXMSUXPWAUXDUXRSVUDWAUVPUXG
      DUUNUUOUUTYTUUPUXDUVPUYRJVVFUVRVVKYRUXDUVPGUYRUWSUWDXLXHYPVVGUVPHDYQWCUUQ
      UURUXDVVJVVIUXDUXHVVJVVIUVLUXJUXBUUSUVAUVBYTUVCUXBKUVPUWIUVDUVEUVFUWFUWGU
      XDUWHNYSUVGYJFGUWAUWIUAUVHUVIUVJUVKUVMUWBAUVNUVO @.
      @( [26-Jan-2015] @)

    eulerpart.o @e |- O = { g e. P | A. n e. ( `' g " NN ) -. 2 || n } @.
    eulerpart.d @e |- D = { g e. P | A. n e. NN ( g ` n ) <_ 1 } @.
    @{
      eulerpart.f @e |- F = ( x e. ( ~P NN0 i^i Fin ) |->
        sum_ y e. x ( 2 ^ y ) ) @.
      @( Lemma for ~ eulerpart . @)
      eulerpartlemi @p |- ( A e. P -> { t e. NN |
      E. n e. ( `' F ` ( A ` t ) ) ( ( 2 ^ n ) x. t ) = M } C_ ( 1 ... M ) ) @=
        ( wcel cn0 c2 cv cexp co cmul wceq cfv ccnv wrex c1 cfz wi cn wral crab
        wss wa cle wbr cr cc0 nnre ad2antlr 2nn cpw cfn cin inss1 eulerpartleme
        wf cima csu simp1bi ffvelrn wf1o ackbijnn f1ocnv f1of mp2b ffvelrni syl
        sylan sseldi elpwi sselda nnexpcl sylancr simplr nnnn0 nn0ge0 lemulge12
        3syl nnge1 syl22anc cuz cz wb syl6eleq nnmulcl syl2anc nnz elfz5 mpbird
        nnuz oveq2 eleq2d syl5ibcom rexlimdva ralrimiva rabss sylibr ) DFSZUAJU
        BZUCUDZCUBZUEUDZLUFZJXODUGZKUHZUGZUIZXOUJLUKUDZSZULZCUMUNYACUMUOYBUPXLY
        DCUMXLXOUMSZUQZXQYCJXTYFXMXTSZUQZXOUJXPUKUDZSZXQYCYHYJXOXPURUSZYHXOUTSZ
        XNUTSZVAXOURUSZUJXNURUSZYKYEYLXLYGXOVBVCYHXNUMSZYMYHUAUMSXMTSYPVDYFXTTX
        MYFXTTVEZSXTTUPYFYQVFVGZYQXTYQVFVHYFXRTSZXTYRSXLUMTDVJZYEYSXLYTDUHUMVKV
        FSUMIUBZDUGUUAUEUDIVLMUFDFGIMOVIVMUMTXODVNWBTYRXRXSYRTKVOTYRXSVOTYRXSVJ
        ABKRVPYRTKVQTYRXSVRVSVTWAWCXTTWDWAWEUAXMWFWGZXNVBWAYHYEXOTSYNXLYEYGWHZX
        OWIXOWJWLYHYPYOUUBXNWMWAXOXNWKWNYHXOUJWOUGZSXPWPSZYJYKWQYHXOUMUUDUUCXDW
        RYHXPUMSZUUEYHYPYEUUFUUBUUCXNXOWSWTXPXAWAXOUJXPXBWTXCXQYIYBXOXPLUJUKXEX
        FXGXHXIYACUMYBXJXK @.
        @( [26-Jan-2015] @)

      eulerpart.g @e |- G = ( o e. P |-> ( m e. NN |-> ( # `
     { t e. NN | E. n e. ( `' F ` ( o ` t ) ) ( ( 2 ^ n ) x. t ) = m } ) ) ) @.
      @( Lemma for ~ eulerpart . @)
      eulerpartlemf @p |- ( A e. P -> ( G ` A ) = ( m e. NN |-> ( # `
     { t e. NN | E. n e. ( `' F ` ( A ` t ) ) ( ( 2 ^ n ) x. t ) = m } ) ) ) @=
        ( cn c2 cv cexp co cmul wceq cfv ccnv wrex crab chash cmpt fveq1 fveq2d
        rexeqdv rabbidv mpteq2dv nnex mptex fvmpt ) LDJUBUCKUDUEUFCUDZUGUFJUDUH
        ZKVCLUDZUIZMUJZUIZUKZCUBULZUMUIZUNJUBVDKVCDUIZVGUIZUKZCUBULZUMUIZUNFNVE
        DUHZJUBVKVPVQVJVOUMVQVIVNCUBVQVDKVHVMVQVFVLVGVCVEDUOUPUQURUPUSUAJUBVPUT
        VAVB @.
        @( [26-Jan-2015] @)

      @( Lemma for ~ eulerpart . @)
      eulerpartlema @p |- G : P --> P @=
        ? @.

      @( Lemma for ~ eulerpart . @)
      eulerpartlemh @p |- ( G |` O ) : O --> D @=
        ? @.

      @( Lemma for ~ eulerpart . @)
      eulerpartlemc @p |- ( G |` O ) : O -1-1-> D @=
        ? @.

      @( Lemma for ~ eulerpart . @)
      eulerpartlemg @p |- ( G |` O ) : O -1-1-onto-> D @=
        ? @.

      eulerpart.h @e |- H = ( d e. P |-> ( m e. NN |-> if ( 2 || m , 0 ,
    sum_ n e. NN0 ( ( d ` ( ( 2 ^ n ) x. m ) ) x. ( ( 2 ^ n ) x. m ) ) ) ) ) @.
      @( Lemma for ~ eulerpart . @)
      eulerpartlemj @p |- H : P --> O @=
        ? @.

      @( Lemma for ~ eulerpart . @)
      eulerpartlemk @p |- ( H |` D ) : D -1-1-> O @=
        ? @.

      @( Lemma for ~ eulerpart . @)
      eulerpartleml @p |- ( H |` D ) : D -1-1-onto-> O @=
        ? @.

    @}

    @( Euler's theorem on partitions, also known as a special case of
       Glaisher's theorem. Let ` P ` be the set of all partitions of ` N ` ,
       represented as multisets of positive integers, which is to say functions
       from ` NN ` to ` NN0 ` where the value of the function represents the
       number of repetitions of an individual element, and the sum of all the
       elements with repetition equals ` N ` . Then the set ` O ` of all
       partitions that only consist of odd numbers and the set ` D ` of all
       partitions which have no repeated elements have the same cardinality. @)
    eulerpart @p |- ( N e. NN0 -> ( # ` O ) = ( # ` D ) ) @=
      ? @.
  @}
  $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The Kuratowski closure-complement theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    kur14lem1.a $e |- A C_ X $.
    kur14lem1.c $e |- ( X \ A ) e. T $.
    kur14lem1.k $e |- ( K ` A ) e. T $.
    $( Lemma for ~ kur14 .  (Contributed by Mario Carneiro, 17-Feb-2015.) $)
    kur14lem1 $p |- ( N = A ->
      ( N C_ X /\ { ( X \ N ) , ( K ` N ) } C_ T ) ) $=
      ( wceq wss cdif cfv cpr sseq1 mpbiri difeq2 fveq2 preq12d wcel prssi jca
      mp2an syl6eqss ) DAIZDEJZEDKZDCLZMZBJUDUEAEJFDAENOUDUHEAKZACLZMZBUDUFUIUG
      UJDAEPDACQRUIBSUJBSUKBJGHUIUJBTUBUCUA $.
  $}

  ${
    $d s x A $.  $d s x K $.  $d s x y T $.  $d s x y X $.
    kur14lem.j $e |- J e. Top $.
    kur14lem.x $e |- X = U. J $.
    kur14lem.k $e |- K = ( cls ` J ) $.
    kur14lem.i $e |- I = ( int ` J ) $.
    kur14lem.a $e |- A C_ X $.
    $( Lemma for ~ kur14 .  Write interior in terms of closure and complement:
       ` i A = c k c A ` where ` c ` is complement and ` k ` is closure.
       (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    kur14lem2 $p |- ( I ` A ) = ( X \ ( K ` ( X \ A ) ) ) $=
      ( cnt cfv cdif ccl ctop wcel wss wceq ntrval2 fveq1i difeq2i 3eqtr4i
      mp2an ) ACKLZLZEEAMZCNLZLZMZABLEUFDLZMCOPAEQUEUIRFJACEGSUCABUDITUJUHEUFDU
      GHTUAUB $.

    $( Lemma for ~ kur14 .  A closure is a subset of the base set.
       (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    kur14lem3 $p |- ( K ` A ) C_ X $=
      ( cfv ccl fveq1i ctop wcel wss clsss3 mp2an eqsstri ) ADKACLKZKZEADTHMCNO
      AEPUAEPFJACEGQRS $.

    $( Lemma for ~ kur14 .  Complementation is an involution on the set of
       subsets of a topology.  (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    kur14lem4 $p |- ( X \ ( X \ A ) ) = A $=
      ( wss cdif wceq dfss4 mpbi ) AEKEEALLAMJAENO $.

    $( Lemma for ~ kur14 .  Closure is an idempotent operation in the set of
       subsets of a topology.  (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    kur14lem5 $p |- ( K ` ( K ` A ) ) = ( K ` A ) $=
      ( ccl cfv ctop wcel wss wceq clsidm mp2an fveq1i fveq12i 3eqtr4i ) ACKLZL
      ZUBLZUCADLZDLUECMNAEOUDUCPFJACEGQRUEUCDUBHADUBHSZTUFUA $.

    kur14lem.b $e |- B = ( X \ ( K ` A ) ) $.
    $( Lemma for ~ kur14 .  If ` k ` is the complementation operator and ` k `
       is the closure operator, this expresses the identity
       ` k c k A = k c k c k c k A ` for any subset ` A ` of the topological
       space.  This is the key result that lets us cut down long enough
       sequences of ` c k c k ... ` that arise when applying closure and
       complement repeatedly to ` A ` , and explains why we end up with a
       number as large as ` 1 4 ` , yet no larger.  (Contributed by Mario
       Carneiro, 11-Feb-2015.) $)
    kur14lem6 $p |- ( K ` ( I ` ( K ` B ) ) ) = ( K ` B ) $=
      ( cfv wss cdif eqsstri fveq1i clsss mp3an 3sstr4i ccl ctop wcel kur14lem3
      difss cnt ntrss2 mp2an kur14lem5 sseqtri kur14lem2 fveq2i difeq2i 3eqtr2i
      eqtr3i sscon ax-mp eqssi ) BEMZCMZEMZUSVAUSEMZUSUTDUAMZMZUSVCMZVAVBDUBUCZ
      USFNZUTUSNVDVENGBCDEFGHIJBFAEMZOZFLFVHUEPZUDZUTUSDUFMZMZUSUSCVLJQVFVGVMUS
      NGVKUSDFHUGUHPUSUTDFHRSUTEVCIQZUSEVCIQTBCDEFGHIJVJUIUJBVCMZVDUSVAVFUTFNBU
      TNVOVDNGUTFFUSOZEMZOZFUSCDEFGHIJVKUKZFVQUEPVIVRBUTVQVHNVIVRNVPVCMZVHVCMZV
      QVHVFVHFNZVPVHNVTWANGACDEFGHIJKUDZVPVHVLMZVHVPFVIEMZOVHCMWDUSWEFBVIELULUM
      VHCDEFGHIJWCUKVHCVLJQUNVFWBWDVHNGWCVHDFHUGUHPVHVPDFHRSVPEVCIQVHEMVHWAACDE
      FGHIJKUIVHEVCIQUOTVQVHFUPUQLVSTUTBDFHRSBEVCIQVNTUR $.

    kur14lem.c $e |- C = ( K ` ( X \ A ) ) $.
    kur14lem.d $e |- D = ( I ` ( K ` A ) ) $.
    kur14lem.t $e |- T = ( ( ( { A , ( X \ A ) , ( K ` A ) } u.
      { B , C , ( I ` A ) } ) u. { ( K ` B ) , D , ( K ` ( I ` A ) ) } ) u.
      ( { ( I ` C ) , ( K ` D ) , ( I ` ( K ` B ) ) } u.
      { ( K ` ( I ` C ) ) , ( I ` ( K ` ( I ` A ) ) ) } ) ) $.
    $( Lemma for ~ kur14 : main proof.  The set ` T ` here contains all the
       distinct combinations of ` k ` and ` c ` that can arise, and we prove
       here that applying ` k ` or ` c ` to any element of ` T ` yields another
       elemnt of ` T ` .  In operator shorthand, we have
       ` T = { A , c A , k A `
       ` , c k A , k c A , c k c A , k c k A , c k c k A , k c k c A , `
       ` c k c k c A , k c k c k A , c k c k c k A , k c k c k c A , `
       ` c k c k c k c A } ` .  From the identities ` c c A = A ` and
       ` k k A = k A ` , we can reduce any operator combination containing two
       adjacent identical operators, which is why the list only contains
       alternating sequences.  The reason the sequences don't keep going after
       a certain point is due to the identity ` k c k A = k c k c k c k A ` ,
       proved in ~ kur14lem6 .  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    kur14lem7 $p |- ( N e. T ->
      ( N C_ X /\ { ( X \ N ) , ( K ` N ) } C_ T ) ) $=
      ( cdif wss cfv cpr wa ctp cun wcel wo elun w3o eltpi ssun1 sseqtr4i sstri
      wceq ctop topopn ax-mp elexi difss ssexi tpid2 sselii kur14lem1 kur14lem4
      fvex tpid3 tpid1 eqeltri ssun2 kur14lem3 eqsstri eqeltrri kur14lem5 3jaoi
      syl difeq2i eqtri kur14lem2 eqtr4i fveq2i 3eqtr4i eqtr3i jaoi sylbi prid1
      kur14lem6 elpri prid2 eleq2s ) IJUAJITIHUBUCEUAUDZIAJATZAHUBZUEZBCAFUBZUE
      ZUFZBHUBZDWOHUBZUEZUFZCFUBZDHUBZWRFUBZUEZXBHUBZWSFUBZUCZUFZUFZEIXJUGIXAUG
      ZIXIUGZUHWKIXAXIUIXKWKXLXKIWQUGZIWTUGZUHWKIWQWTUIXMWKXNXMIWNUGZIWPUGZUHWK
      IWNWPUIXOWKXPXOIAUOZIWLUOZIWMUOZUJWKIAWLWMUKXQWKXRXSAEHIJOWNEWLWNWQEWNWPU
      LWQXAEWQWTULXAXJEXAXIULSUMZUNZUNZAWLWMWLJJGGUPUGJGUGKGJLUQURUSZJAUTZVAVBV
      CWNEWMYBAWLWMAHVFVGVCZVDWLEHIJYDJWLTAEAFGHJKLMNOVEWNEAYBAWLWMAJYCOVAVHVCV
      ICWLHUBZEQWPECWPWQEWPWNVJYAUNZBCWOCJYCCYFJQWLFGHJKLMNYDVKVLZVAVBVCZVMVDWM
      EHIJAFGHJKLMNOVKZBJWMTZEPWPEBYGBCWOBJYCBYKJPJWMUTVLZVAVHVCVMWMHUBWMEAFGHJ
      KLMNOVNYEVIVDVOVPXPIBUOZICUOZIWOUOZUJWKIBCWOUKYMWKYNYOBEHIJYLJBTZWMEYPJYK
      TWMBYKJPVQWMFGHJKLMNYJVEVRYEVIWTEWRWTXAEWTWQVJXTUNZWRDWSBHVFVHVCZVDCEHIJY
      HJCTZWOEYSJYFTZWOCYFJQVQAFGHJKLMNOVSZVTZWPEWOYGBCWOAFVFVGVCVICHUBZCEYFHUB
      YFUUCCWLFGHJKLMNYDVNCYFHQWAQWBYIVIVDWOEHIJWOYTJUUAJYFUTVLZJWOTZCEJYSTUUEC
      YSWOJUUBVQCFGHJKLMNYHVEWCYIVIWTEWSYQWRDWSWOHVFVGVCZVDVOVPWDWEXNIWRUOZIDUO
      ZIWSUOZUJWKIWRDWSUKUUGWKUUHUUIWREHIJBFGHJKLMNYLVKZDJWRTZEWMFUBZJYKHUBZTZD
      UUKWMFGHJKLMNYJVSZRWRUUMJBYKHPWAVQWBZWTEDYQWRDWSDJYCDUUNJDUULUUNRUUOVRJUU
      MUTVLZVAVBVCVMWRHUBWREBFGHJKLMNYLVNYRVIVDDEHIJUUQJDTZWREUURJUUKTWRDUUKJUU
      PVQWRFGHJKLMNUUJVEVRYRVIXEEXCXEXIEXEXHULXIXJEXIXAVJSUMZUNZXBXCXDDHVFVBVCZ
      VDWSEHIJWOFGHJKLMNUUDVKZXBJWSTZEXBJYSHUBZTZUVCCFGHJKLMNYHVSZUVDWSJYSWOHUU
      BWAVQVRZXEEXBUUTXBXCXDCFVFVHVCVMWSHUBWSEWOFGHJKLMNUUDVNUUFVIVDVOVPWDWEXLI
      XEUGZIXHUGZUHWKIXEXHUIUVHWKUVIUVHIXBUOZIXCUOZIXDUOZUJWKIXBXCXDUKUVJWKUVKU
      VLXBEHIJXBUVEJUVFJUVDUTVLZJXBTZWSEUVNJUVCTWSXBUVCJUVGVQWSFGHJKLMNUVBVEVRU
      UFVIXHEXFXHXIEXHXEVJUUSUNZXFXGXBHVFWFVCZVDXCEHIJDFGHJKLMNUUQVKZJXCTZXDEUV
      RJUUKHUBZTZXDXCUVSJDUUKHUUPWAVQWRFGHJKLMNUUJVSZVTZXEEXDUUTXBXCXDWRFVFVGVC
      VIXCHUBXCEDFGHJKLMNUUQVNUVAVIVDXDEHIJXDUVTJUWAJUVSUTVLJXDTZXCEJUVRTUWCXCU
      VRXDJUWBVQXCFGHJKLMNUVQVEWCUVAVIXDHUBWREABFGHJKLMNOPWGYRVIVDVOVPUVIIXFUOZ
      IXGUOZUHWKIXFXGWHUWDWKUWEXFEHIJXBFGHJKLMNUVMVKZJXFTZXGEUWGJUVCHUBZTZXGXFU
      WHJXBUVCHUVGWAVQWSFGHJKLMNUVBVSZVTZXHEXGUVOXFXGWSFVFWIVCVIXFHUBXFEXBFGHJK
      LMNUVMVNUVPVIVDXGEHIJXGUWIJUWJJUWHUTVLJXGTZXFEJUWGTUWLXFUWGXGJUWKVQXFFGHJ
      KLMNUWFVEWCUVPVIXGHUBWSEWLWOFGHJKLMNYDUUAWGUUFVIVDWDVPWDWEWDWESWJ $.

    $( Lemma for ~ kur14 .  Show that the set ` T ` contains at most ` 1 4 `
       elements.  (It could be less if some of the operators take the same
       value for a given set, but Kuratowski showed that this upper bound of
       ` 1 4 ` is tight in the sense that there exist topological spaces and
       subsets of these spaces for which all ` 1 4 ` generated sets are
       distinct, and indeed the real numbers form such a topological space.)
       (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    kur14lem8 $p |- ( T e. Fin /\ ( # ` T ) <_ ; 1 4 ) $=
      ( cfv ctp cdif cun cpr c9 c5 c1 c4 c6 eqid hashtplei 3nn0 3p3e6 hashunlei
      cdc c3 6nn0 6p3e9 c2 hashprlei 2nn0 3p2e5 9nn0 5nn0 9p5e14 ) AIAUAZAHSZTZ
      BCAFSZTZUBZBHSZDVHHSZTZUBZCFSZDHSZVKFSZTZVOHSZVLFSZUCZUBZEUDUEUFUGUNRVJVM
      VNUHUOUDVNUIVGVIVJUOUOUHVJUIAVEVFUJBCVHUJUKUKULUMVKDVLUJUPUKUQUMVRWAWBUOU
      RUEWBUIVOVPVQUJVSVTUSUKUTVAUMVBVCVDUM $.

    kur14lem.s $e |- S = |^| { x e. ~P ~P X |
      ( A e. x /\ A. y e. x { ( X \ y ) , ( K ` y ) } C_ x ) } $.
    $( Lemma for ~ kur14 .  Since the set ` T ` is closed under closure and
       complement, it contains the minimal set ` S ` as a subset, so ` S ` also
       has at most ` 1 4 ` elements.  (Indeed ` S = T ` , and it's not hard to
       prove this, but we don't need it for this proof.)  (Contributed by Mario
       Carneiro, 11-Feb-2015.) $)
    kur14lem9 $p |- ( S e. Fin /\ ( # ` S ) <_ ; 1 4 ) $=
      ( vs c1 c4 cdc cv wcel cdif cfv cpr wss wral wa cpw crab cint wi elintrab
      vex ctp cun ssun1 sseqtr4i sstri topopn ax-mp elexi ssexi tpid1 kur14lem7
      ctop sselii simprd simpld elpw2 sylibr ssriv mpbir eleq2 sseq2 raleqbi1dv
      rgen pwex wceq anbi12d imbi12d rspccv mp2ani sylbi eqsstri kur14lem8 1nn0
      mpi 4nn0 deccl hashsslei ) HGUDUEUFGCAUGZUHZLBUGZUIWTKUJUKZWRULZBWRUMZUNZ
      ALUOZUOZUPUQZHUBUCXGHUCUGZXGUHXDXHWRUHZURZAXFUMZXHHUHZXDAXHXFUCUTUSXKCHUH
      ZXAHULZBHUMZXLCLCUIZCKUJZVAZHCXRXRDECIUJZVAZVBZHXRXTVCYAYADKUJZFXSKUJZVAZ
      VBZHYAYDVCYEYEEIUJZFKUJYBIUJVAYFKUJYCIUJUKVBZVBHYEYGVCUAVDVEVECXPXQCLLJJV
      LUHLJUHMJLNVFVGVHZQVIVJVMXNBHWTHUHZWTLULZXNCDEFHIJKWTLMNOPQRSTUAVKZVNWCXK
      HXFUHZXMXOUNZXLURZYLHXEULBHXEYIYJWTXEUHYIYJXNYKVOWTLYHVPVQVRHXELYHWDVPVSX
      JYNAHXFWRHWEZXDYMXIXLYOWSXMXCXOWRHCVTXBXNBWRHWRHXAWAWBWFWRHXHVTWGWHWNWIWJ
      VRWKCDEFHIJKLMNOPQRSTUAWLUDUEWMWOWPWQ $.
  $}

  ${
    $d x y A $.  $d x y J $.  $d x y K $.  $d x y X $.
    kur14lem10.j $e |- J e. Top $.
    kur14lem10.x $e |- X = U. J $.
    kur14lem10.k $e |- K = ( cls ` J ) $.
    kur14lem10.s $e |- S = |^| { x e. ~P ~P X |
      ( A e. x /\ A. y e. x { ( X \ y ) , ( K ` y ) } C_ x ) } $.
    kur14lem10.a $e |- A C_ X $.
    $( Lemma for ~ kur14 .  Discharge the set ` T ` .  (Contributed by Mario
       Carneiro, 11-Feb-2015.) $)
    kur14lem10 $p |- ( S e. Fin /\ ( # ` S ) <_ ; 1 4 ) $=
      ( cfv cdif cnt ctp cun cpr eqid kur14lem9 ) ABCGCFMZNZGCNZFMZUAEOMZMZDCUC
      UAPUBUDCUEMZPQUBFMZUFUGFMZPQUDUEMZUFFMUHUEMPUJFMUIUEMRQQZUEEFGHIJUESLUBSU
      DSUFSUKSKT $.
  $}

  ${
    $d x y A $.  $d x y J $.  $d x X $.
    kur14.x $e |- X = U. J $.
    kur14.k $e |- K = ( cls ` J ) $.
    kur14.s $e |- S = |^| { x e. ~P ~P X |
      ( A e. x /\ A. y e. x { ( X \ y ) , ( K ` y ) } C_ x ) } $.
    $( Kuratowski's closure-complement theorem.  There are at most 14 sets
       which can be obtained by the application of the closure and complement
       operations to a set in a topological space.  (Contributed by Mario
       Carneiro, 11-Feb-2015.) $)
    kur14 $p |- ( ( J e. Top /\ A C_ X ) ->
      ( S e. Fin /\ ( # ` S ) <_ ; 1 4 ) ) $=
      ( wss ctop wcel cfn chash cfv cle wa c0 cpw c1 c4 cdc wbr cif cv cdif cpr
      wral crab cint csn cuni ccl wceq eleq1 anbi1d inteqd syl5eq eleq1d fveq2d
      rabbidv breq1d anbi12d unieq pweqd sseq2d cvv sn0top elimel ax-mp syl6bbr
      uniexg elpw2 ifbid difeq1d fveq2 fveq1d preq12d sseq1d ralbidv eqid 0elpw
      rabeqbidv elpwi kur14lem10 dedth2h ancoms ) CGKZELMZDNMZDOPZUAUBUCZQUDZRZ
      WIWJWOWICSUEZAUFZMZGBUFZUGZWSFPZUHZWQKZBWQUIZRZAGTZTZUJZUKZNMZXIOPZWMQUDZ
      RCWJESULZUEZUMZTZMZCSUEZWQMZXOWSUGZWSXNUNPZPZUHZWQKZBWQUIZRZAXPTZUJZUKZNM
      ZYIOPZWMQUDZRCESXMCWPUOZWKXJWNXLYMDXINYMDCWQMZXDRZAXGUJZUKXIJYMYPXHYMYOXE
      AXGYMYNWRXDCWPWQUPUQVBURUSZUTYMWLXKWMQYMDXIOYQVAVCVDEXNUOZXJYJXLYLYRXIYIN
      YRXHYHYRXEYFAXGYGYRXFXPYRGXOYRGEUMXOHEXNVEUSZVFVFYRWRXSXDYEYRWPXRWQYRWIXQ
      CSYRWICXOKXQYRGXOCYSVGCXOXNLMXOVHMEXMLVIVJZXNLVMVKVNVLVOUTYRXCYDBWQYRXBYC
      WQYRWTXTXAYBYRGXOWSYSVPYRWSFYAYRFEUNPYAIEXNUNVQUSVRVSVTWAVDWDURZUTYRXKYKW
      MQYRXIYIOUUAVAVCVDABXRYIXNYAXOYTXOWBYAWBYIWBXRXPMXRXOKCSXPXOWCVJXRXOWEVKW
      FWGWH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Retracts and sections
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Retr $.

  $( Extend class notation with the retract relation. $)
  cretr $a class Retr $.

  ${
    $d j k r s $.
    $( Define the set of retractions on two topological spaces.  We say that
       ` R ` is a retraction from ` J ` to ` K ` . or ` R e. ( J Retr K ) ` iff
       there is an ` S ` such that ` R : J --> K , S : K --> J ` are continuous
       functions called the retraction and section respectively, and their
       composite ` R o. S ` is homotopic to the identity map.  If a retraction
       exists, we say ` J ` is a retract of ` K ` .  (This terminology is
       borrowed from HoTT and appears to be nonstandard, although it has
       similaries to the concept of retract in the category of topological
       spaces and to a deformation retract in general topology.)  Two
       topological spaces that are retracts of each other are called homotopy
       equivalent.  (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    df-retr $a |- Retr = ( j e. Top , k e. Top |-> { r e. ( j Cn k ) |
   E. s e. ( k Cn j ) ( ( r o. s ) ( j Htpy j ) ( _I |` U. j ) ) =/= (/) } ) $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Path-connected and simply connected spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c PConn $.
  $c SConn $.

  $( Extend class notation with the class of path-connected topologies. $)
  cpconn $a class PConn $.

  $( Extend class notation with the class of simply connected topologies. $)
  csconn $a class SConn $.

  ${
    $d f j x y $.
    $( Define the class of path-connected topologies.  A topology is
       path-connected if there is a path (a continuous function from the unit
       interval) that goes from ` x ` to ` y ` for any points ` x , y ` in the
       space.  (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    df-pconn $a |- PConn = { j e. Top | A. x e. U. j A. y e. U. j
                    E. f e. ( II Cn j ) ( ( f ` 0 ) = x /\ ( f ` 1 ) = y ) } $.

    $( Define the class of simply connected topologies.  A topology is simply
       connected if it is path-connected and every loop (continuous path with
       identical start and endpoint) is contractible to a point (path-homotopic
       to a constant function).  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    df-sconn $a |- SConn = { j e. PConn | A. f e. ( II Cn j ) ( ( f ` 0 ) =
            ( f ` 1 ) -> f ( ~=ph ` j ) ( ( 0 [,] 1 ) X. { ( f ` 0 ) } ) ) } $.
  $}

  ${
    $d f x y A $.  $d f y B $.  $d f j x y J $.  $d j x y X $.
    ispconn.1 $e |- X = U. J $.
    $( The property of being a path-connected topological space.  (Contributed
       by Mario Carneiro, 11-Feb-2015.) $)
    ispconn $p |- ( J e. PConn <-> ( J e. Top /\ A. x e. X A. y e. X
      E. f e. ( II Cn J ) ( ( f ` 0 ) = x /\ ( f ` 1 ) = y ) ) ) $=
      ( vj cc0 cv cfv wceq c1 wa cii ccn co wrex cuni wral raleqbidv ctop unieq
      cpconn syl6eqr oveq2 rexeqdv df-pconn elrab2 ) HCIZJAIKLUIJBIKMZCNGIZOPZQ
      ZBUKRZSZAUNSUJCNDOPZQZBESZAESGDUAUCUKDKZUOURAUNEUSUNDREUKDUBFUDZUSUMUQBUN
      EUTUSUJCULUPUKDNOUEUFTTABCGUGUH $.

    $( The property of being a path-connected topological space.  (Contributed
       by Mario Carneiro, 11-Feb-2015.) $)
    pconncn $p |- ( ( J e. PConn /\ A e. X /\ B e. X ) ->
      E. f e. ( II Cn J ) ( ( f ` 0 ) = A /\ ( f ` 1 ) = B ) ) $=
      ( vx vy cpconn wcel cc0 cv cfv wceq c1 wa wrex wral eqeq2 rexbidv cii ccn
      co ctop ispconn simprbi anbi1d anbi2d rspc2v syl5com 3impib ) DIJZAEJZBEJ
      ZKCLZMZANZOUOMZBNZPZCUADUBUCZQZULUPGLZNZURHLZNZPZCVAQZHERGERZUMUNPVBULDUD
      JVIGHCDEFUEUFVHVBUQVFPZCVAQGHABEEVCANZVGVJCVAVKVDUQVFVCAUPSUGTVEBNZVJUTCV
      AVLVFUSUQVEBURSUHTUIUJUK $.
  $}

  ${
    $d f F $.  $d f j x y J $.
    $( A simply connected space is a topology.  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    pconntop $p |- ( J e. PConn -> J e. Top ) $=
      ( vf vx vy cpconn wcel ctop cc0 cv cfv wceq c1 wa cii wrex cuni wral eqid
      ccn co ispconn simplbi ) AEFAGFHBIZJCIKLUCJDIKMBNASTODAPZQCUDQCDBAUDUDRUA
      UB $.

    $( The property of being a simply connected topological space.
       (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    issconn $p |- ( J e. SConn <-> ( J e. PConn /\ A. f e. ( II Cn J )
     ( ( f ` 0 ) = ( f ` 1 ) ->
       f ( ~=ph ` J ) ( ( 0 [,] 1 ) X. { ( f ` 0 ) } ) ) ) ) $=
      ( vj cc0 cv cfv c1 wceq cicc co csn cxp cphtpc wbr wi cii ccn wral cpconn
      csconn oveq2 fveq2 breqd imbi2d raleqbidv df-sconn elrab2 ) DAEZFZGUHFHZU
      HDGIJUIKLZCEZMFZNZOZAPULQJZRUJUHUKBMFZNZOZAPBQJZRCBSTULBHZUOUSAUPUTULBPQU
      AVAUNURUJVAUMUQUHUKULBMUBUCUDUEACUFUG $.

    $( A simply connected space is path-connected.  (Contributed by Mario
       Carneiro, 11-Feb-2015.) $)
    sconnpconn $p |- ( J e. SConn -> J e. PConn ) $=
      ( vf csconn wcel cpconn cc0 cv cfv c1 wceq cicc co csn cxp cphtpc wbr cii
      wi ccn wral issconn simplbi ) ACDAEDFBGZHZIUCHJUCFIKLUDMNAOHPRBQASLTBAUAU
      B $.

    $( A simply connected space is a topology.  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    sconntop $p |- ( J e. SConn -> J e. Top ) $=
      ( csconn wcel cpconn ctop sconnpconn pconntop syl ) ABCADCAECAFAGH $.

    $( A closed path in a simply connected space is contractible to a point.
       (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    sconnpht $p |- ( ( J e. SConn /\ F e. ( II Cn J ) /\ ( F ` 0 ) =
            ( F ` 1 ) ) -> F ( ~=ph ` J ) ( ( 0 [,] 1 ) X. { ( F ` 0 ) } ) ) $=
      ( vf csconn wcel cii ccn co cc0 cfv c1 wceq cicc csn cxp cphtpc cpconn wi
      wbr fveq1 cv wral issconn eqeq12d xpeq2d breq12d imbi12d rspccv simplbiim
      id sneqd 3imp ) BDEZAFBGHZEZIAJZKAJZLZAIKMHZUPNZOZBPJZSZUMBQEICUAZJZKVDJZ
      LZVDUSVENZOZVBSZRZCUNUBUOURVCRZRCBUCVKVLCAUNVDALZVGURVJVCVMVEUPVFUQIVDATZ
      KVDATUDVMVDAVIVAVBVMUJVMVHUTUSVMVEUPVNUKUEUFUGUHUIUL $.
  $}

  ${
    $d f g u v x y F $.  $d g u v x y J $.  $d f g u v x y K $.  $d g u v X $.
    $d g u v x y Y $.
    cnpconn.2 $e |- Y = U. K $.
    $( An image of a path-connected space is path-connected.  (Contributed by
       Mario Carneiro, 24-Mar-2015.) $)
    cnpconn $p |- ( ( J e. PConn /\ F : X -onto-> Y /\ F e. ( J Cn K ) ) ->
                                                                K e. PConn ) $=
      ( vf vx vy vu vv vg wcel cc0 cv cfv wceq c1 wa wral cpconn wfo ccn co w3a
      ctop cii wrex cntop2 3ad2ant3 cuni pconncn 3expb 3ad2antl1 simprl simpll3
      eqid ccom cnco syl2anc cicc wf iiuni cnf syl 0elunit fvco3 sylancl fveq2d
      simprrl eqtrd 1elunit simprrr fveq1 anbi12d syl12anc rexlimddv ralrimivva
      eqeq1d rspcev crn forn 3ad2ant2 dffo2 sylanbrc eqeq2 anbi2d rexbidv cbvfo
      wb ralbidv mpbid anbi1d ispconn ) BUAMZDEAUBZABCUCUDMZUEZCUFMZNGOZPZHOZQZ
      RWTPZIOZQZSZGUGCUCUDZUHZIETZHETZCUAMWQWOWSWPABCUIUJWRXAJOZAPZQZXFSZGXHUHZ
      IETZJBUKZTZXKWRXNXDKOZAPZQZSZGXHUHZKXRTZJXRTXSWRYDJKXRXRWRXLXRMZXTXRMZSZS
      ZNLOZPZXLQZRYJPZXTQZSZYDLUGBUCUDZWOWPYHYOLYPUHZWQWOYFYGYQXLXTLBXRXRUQZULU
      MUNYIYJYPMZYOSZSZAYJURZXHMZNUUBPZXMQZRUUBPZYAQZYDUUAYSWQUUCYIYSYOUOZWOWPW
      QYHYTUPYJAUGBCUSUTUUAUUDYKAPZXMUUANRVAUDZXRYJVBZNUUJMUUDUUIQUUAYSUUKUUHYJ
      UGBUUJXRVCYRVDVEZVFUUJXRNAYJVGVHUUAYKXLAYIYSYLYNVJVIVKUUAUUFYMAPZYAUUAUUK
      RUUJMUUFUUMQUULVLUUJXRRAYJVGVHUUAYMXTAYIYSYLYNVMVIVKYCUUEUUGSGUUBXHWTUUBQ
      ZXNUUEYBUUGUUNXAUUDXMNWTUUBVNVSUUNXDUUFYARWTUUBVNVSVOVTVPVQVRWRYEXQJXRWRX
      REAUBZYEXQWJWRXREAVBZAWAEQZUUOWQWOUUPWPABCXREYRFVDUJWPWOUUQWQDEAWBWCXREAW
      DWEZYDXPKIXREAYAXEQZYCXOGXHUUSYBXFXNYAXEXDWFWGWHWIVEWKWLWRUUOXSXKWJUURXQX
      JJHXREAXMXBQZXPXIIEUUTXOXGGXHUUTXNXCXFXMXBXAWFWMWHWKWIVEWLHIGCEFWNWE $.
  $}

  ${
    $d a b f x y J $.  $d f g h t u v w x y z R $.  $d f g h t u v w x y z S $.
    $d f g i t x y z A $.  $d f g i t x y z F $.  $d g i t x y z V $.
    $( A path-connected space is connected.  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    pconnconn $p |- ( J e. PConn -> J e. Conn ) $=
      ( vx vy va vb vf wcel cv c0 wne wceq wa wex cc0 cfv c1 cii syl2anc adantr
      simplrr cpconn cconn cin w3a cun cuni wi wral df-3an anbi12i eeanv bitr4i
      n0 ccn co wrex simpll simprll simplrl elunii simprlr eqid pconncn syl3anc
      wn adantl cicc iiuni iiconn a1i cdif ccld uncom simprr syl5eq wss elssuni
      wf wb syl incom uneqdifeq ctop pconntop ad3antrrr opncld eqeltrrd 0elunit
      mpbid eqeltrd conncn 1elunit ffvelrn sylancl pm2.21ddne pm2.01d rexlimddv
      inelcm expr neqned exp32 exlimdvv syl5bi ralrimivva ctopon toptopon sylib
      impd dfconn2 mpbird ) AUAGZAUBGZBHZIJZCHZIJZXMXOUCZIKZUDZXMXOUEZAUFZJZUGZ
      CAUHBAUHZXKYCBCAAXSXNXPLZXRLXKXMAGZXOAGZLZLZYBXNXPXRUIYIYEXRYBYEDHZXMGZEH
      ZXOGZLZEMDMZYIXRYBUGZYEYKDMZYMEMZLYOXNYQXPYRDXMUMEXOUMUJYKYMDEUKULYIYNYPD
      EYIYNXRYBYIYNXRLZLZNFHZOZYJKZPUUAOZYLKZLZYBFQAUNUOZYTXKYJYAGZYLYAGZUUFFUU
      GUPXKYHYSUQYTYKYFUUHYIYKYMXRURZXKYFYGYSUSZYJXMAUTRYTYMYGUUIYIYKYMXRVAZXKY
      FYGYSTZYLXOAUTRYJYLFAYAYAVBZVCVDYTUUAUUGGZUUFLZLZXTYAUUQXTYAKZYTUUPUURUUR
      VEZYTUUPUURLZLZUUSXQIYIYNXRUUTTZUVAYLXMGYMXQIJUVAUUDYLXMUUTUUEYTUUOUUCUUE
      UURTVFUVANPVGUOZXMUUAVRPUVCGUUDXMGUVANXMUUAQAUVCVHQUBGUVAVIVJYTUUOUUFUURU
      RYTYFUUTUUKSUVAYAXOVKZXMAVLOZUVAXOXMUEZYAKZUVDXMKZUVAUVFXTYAXOXMVMYTUUPUU
      RVNVOUVAXOYAVPZXOXMUCZIKUVGUVHVSUVAYGUVIYTYGUUTUUMSZXOAVQVTUVAUVJXQIXOXMW
      AUVBVOXOXMYAWBRWIUVAAWCGZYGUVDUVEGXKUVLYHYSUUTAWDZWEUVKXOAYAUUNWFRWGNUVCG
      UVAWHVJUVAUUBYJXMUUTUUCYTUUOUUCUUEUURUSVFYTYKUUTUUJSWJWKWLUVCXMPUUAWMWNWG
      YTYMUUTUULSYLXMXOWRRWOWSWPWTWQXAXBXCXHXCXDXKAYAXEOGZXLYDVSXKUVLUVNUVMAYAU
      UNXFXGBCAYAXIVTXJ $.

    $( The topological product of two path-connected spaces is path-connected.
       (Contributed by Mario Carneiro, 12-Feb-2015.) $)
    txpconn $p |- ( ( R e. PConn /\ S e. PConn ) -> ( R tX S ) e. PConn ) $=
      ( vf vu vv vz vw vg vh vt wcel wa co cc0 cv cfv wceq c1 wrex wral vx ctop
      vy cpconn ctx cii ccn cuni pconntop txtop syl2an cxp cop w3a eqid pconncn
      an6 anim12i sylbir reeanv sylibr cicc cmpt iiuni txcnmpt ad2antrl 0elunit
      fveq2 opeq12d opex fvmpt ax-mp simprrl simpld simprrr syl5eq simprd fveq1
      1elunit eqeq1d rspcev syl12anc expr rexlimdvva mpd 3expa ralrimivva eqeq2
      anbi12d anbi2d rexbidv ralxp anbi1d 2ralbidv syl5bb txuni raleqbidv mpbid
      raleqdv ispconn sylanbrc ) AUDKZBUDKZLZABUEMZUBKZNCOZPZDOZQZRXGPZEOZQZLZC
      UFXEUGMZSZEXEUHZTZDXQTZXEUDKXBAUBKZBUBKZXFXCAUIZBUIZABUJUKXDXPEAUHZBUHZUL
      ZTZDYFTZXSXDXHUAOZUCOZUMZQZXKFOZGOZUMZQZLZCXOSZGYETFYDTZUCYETUAYDTYHXDYSU
      AUCYDYEXDYIYDKZYJYEKZLZLYRFGYDYEXDUUBYMYDKZYNYEKZLZYRXDUUBUUEUNZNHOZPZYIQ
      ZRUUGPZYMQZLZNIOZPZYJQZRUUMPZYNQZLZLZIUFBUGMZSHUFAUGMZSZYRUUFUULHUVASZUUR
      IUUTSZLZUVBUUFXBYTUUCUNZXCUUAUUDUNZLUVEXBYTUUCXCUUAUUDUQUVFUVCUVGUVDYIYMH
      AYDYDUOZUPYJYNIBYEYEUOZUPURUSUULUURHIUVAUUTUTVAUUFUUSYRHIUVAUUTUUFUUGUVAK
      UUMUUTKLZUUSYRUUFUVJUUSLLZJNRVBMZJOZUUGPZUVMUUMPZUMZVCZXOKZNUVQPZYKQZRUVQ
      PZYOQZYRUVJUVRUUFUUSJABUFUUGUUMUVQUVLVDUVQUOZVEVFUVKUVSUUHUUNUMZYKNUVLKUV
      SUWDQVGJNUVPUWDUVLUVQUVMNQUVNUUHUVOUUNUVMNUUGVHUVMNUUMVHVIUWCUUHUUNVJVKVL
      UVKUUHYIUUNYJUVKUUIUUKUUFUVJUULUURVMZVNUVKUUOUUQUUFUVJUULUURVOZVNVIVPUVKU
      WAUUJUUPUMZYORUVLKUWAUWGQVSJRUVPUWGUVLUVQUVMRQUVNUUJUVOUUPUVMRUUGVHUVMRUU
      MVHVIUWCUUJUUPVJVKVLUVKUUJYMUUPYNUVKUUIUUKUWEVQUVKUUOUUQUWFVQVIVPYQUVTUWB
      LCUVQXOXGUVQQZYLUVTYPUWBUWHXHUVSYKNXGUVQVRVTUWHXKUWAYORXGUVQVRVTWIWAWBWCW
      DWEWFWGWGYGYSDUAUCYDYEYGXJYPLZCXOSZGYETFYDTXIYKQZYSXPUWJEFGYDYEXLYOQZXNUW
      ICXOUWLXMYPXJXLYOXKWHWJWKWLUWKUWJYRFGYDYEUWKUWIYQCXOUWKXJYLYPXIYKXHWHWMWK
      WNWOWLVAXDYGXRDYFXQXBXTYAYFXQQXCYBYCABYDYEUVHUVIWPUKZXDXPEYFXQUWMWSWQWRDE
      CXEXQXQUOWTXA $.

    $( The topological product of a collection of path-connected spaces is
       path-connected.  The proof uses the axiom of choice.  (Contributed by
       Mario Carneiro, 17-Feb-2015.) $)
    ptpconn $p |- ( ( A e. V /\ F : A --> PConn ) -> ( Xt_ ` F ) e. PConn ) $=
      ( vf vx vt vz vi wcel cpconn wa cfv cc0 cv wceq c1 cii wral cmpt fveq2 vy
      vg wf cpt ctop ccn co wrex cuni wss pconntop ssriv fss mpan2 pttop sylan2
      cid wfn wex fvi ad2antrr eleq2d biimpa simplr ffvelrnda cixp simprl ptuni
      eqid adantr eleqtrrd vex elixp sylib simprd simprr pconncn syl3anc df-rex
      r19.21bi syldan ralrimiva fvex eleq1 fveq1 eqeq1d anbi12d syl cicc ctopon
      ac6s2 iitopon simplll biimpar oveq2d eleq12d fveq1d eqeq12d rspccva sylan
      a1i simpld iiuni cnf feqmptd eqeltrrd ptcn mpteq2dva cvv 0elunit mpteq2dv
      mptexg fvmptg sylancr 3eqtr4d 1elunit rspcev syl12anc exlimddv ralrimivva
      dffn5 ispconn sylanbrc ) ACIZAJBUCZKZBUDLZUEIZMDNZLZENZOZPYILZUANZOZKZDQY
      GUFUGZUHZUAYGUIZREYSRYGJIYEYDAUEBUCZYHYEJUEUJYTEJUEYKUKULAJUEBUMUNZABCUOU
      PYFYREUAYSYSYFYKYSIZYNYSIZKZKZUBNZAUQLZURZFNZUUFLZQUUIBLZUFUGZIZMUUJLZUUI
      YKLZOZPUUJLZUUIYNLZOZKZKZFUUGRZKZYRUBUUEYIUULIZYJUUOOZYMUUROZKZKZDUSZFUUG
      RUVCUBUSUUEUVIFUUGUUEUUIUUGIZUUIAIZUVIUUEUVJUVKUUEUUGAUUIYDUUGAOZYEUUDACU
      TVAZVBVCUUEUVKKZUVGDUULUHZUVIUVNUUKJIUUOUUKUIZIZUURUVPIZUVOUUEAJUUIBYDYEU
      UDVDZVEUUEUVQFAUUEYKAURZUVQFARZUUEYKFAUVPVFZIUVTUWAKUUEYKYSUWBYFUUBUUCVGY
      FUWBYSOZUUDYEYDYTUWCUUAFABYGCYGVIZVHUPVJZVKFAUVPYKEVLVMVNZVOVTUUEUVRFAUUE
      YNAURZUVRFARZUUEYNUWBIUWGUWHKUUEYNYSUWBYFUUBUUCVPUWEVKFAUVPYNUAVLVMVNZVOV
      TUUOUURDUUKUVPUVPVIVQVRUVGDUULVSVNWAWBUVHUVAFDUUGUBAUQWCYIUUJOZUVDUUMUVGU
      UTYIUUJUULWDUWJUVEUUPUVFUUSUWJYJUUNUUOMYIUUJWEWFUWJYMUUQUURPYIUUJWEWFWGWG
      WKWHUUEUVCKZGMPWIUGZHAGNZHNZUUFLZLZSZSZYQIMUWRLZYKOZPUWRLZYNOZYRUWKGUWPHB
      AQYGCUWLUWDQUWLWJLIUWKWLXAYDYEUUDUVCWMZUWKYEYTUUEYEUVCUVSVJUUAWHUWKUWNAIZ
      KZUWOGUWLUWPSQUWNBLZUFUGZUXEGUWLUXFUIZUWOUXEUWOUXGIZUWLUXHUWOUCUXEUXIMUWO
      LZUWNYKLZOZPUWOLZUWNYNLZOZKZUWKUXDUWNUUGIZUXIUXPKZUWKUXQUXDUWKUUGAUWNUUEU
      VLUVCUVMVJVBWNUWKUVBUXQUXRUUEUUHUVBVPUVAUXRFUWNUUGUUIUWNOZUUMUXIUUTUXPUXS
      UUJUWOUULUXGUUIUWNUUFTZUXSUUKUXFQUFUUIUWNBTWOWPUXSUUPUXLUUSUXOUXSUUNUXJUU
      OUXKUXSMUUJUWOUXTWQUUIUWNYKTWRUXSUUQUXMUURUXNUXSPUUJUWOUXTWQUUIUWNYNTWRWG
      WGWSWTWAZXBZUWOQUXFUWLUXHXCUXHVIXDWHXEUYBXFXGUWKHAUXJSZHAUXKSZUWSYKUWKHAU
      XJUXKUXEUXLUXOUXEUXIUXPUYAVOZXBXHUWKMUWLIUYCXIIZUWSUYCOXJUWKYDUYFUXCHAUXJ
      CXLWHGMUWQUYCUWLXIUWRUWMMOHAUWPUXJUWMMUWOTXKUWRVIZXMXNUWKUVTYKUYDOUUEUVTU
      VCUUEUVTUWAUWFXBVJHAYKYAVNXOUWKHAUXMSZHAUXNSZUXAYNUWKHAUXMUXNUXEUXLUXOUYE
      VOXHUWKPUWLIUYHXIIZUXAUYHOXPUWKYDUYJUXCHAUXMCXLWHGPUWQUYHUWLXIUWRUWMPOHAU
      WPUXMUWMPUWOTXKUYGXMXNUWKUWGYNUYIOUUEUWGUVCUUEUWGUWHUWIXBVJHAYNYAVNXOYPUW
      TUXBKDUWRYQYIUWROZYLUWTYOUXBUYKYJUWSYKMYIUWRWEWFUYKYMUXAYNPYIUWRWEWFWGXQX
      RXSXTEUADYGYSYSVIYBYC $.
  $}

  ${
    $d f x y z A $.  $d f g h s u w x y z J $.
    $( The indiscrete topology (or trivial topology) on any set is
       path-connected.  (Contributed by Mario Carneiro, 7-Jul-2015.)  (Revised
       by Mario Carneiro, 14-Aug-2015.) $)
    indispconn $p |- { (/) , A } e. PConn $=
      ( vf vx vy vz c0 wcel cc0 cv cfv wceq c1 wa cii co cuni wral cicc cun cvv
      cpr cpconn ctop ccn wrex indistop cif cmpt wf simpl 0ex n0i wn csn prprc2
      unieqd unisn syl6eq nsyl2 adantr uniprg sylancr uncom eqtri eleqtrd simpr
      cmap un0 ifcld eqid fmptd wb elmapg sylancl mpbird ctopon iitopon cnindis
      ovex eleqtrrd 0elunit iftrue vex fvmpt mp1i 1elunit wne ax-1ne0 ifnefalse
      neeq1 mpbiri fveq1 eqeq1d anbi12d rspcev syl12anc rgen2a ispconn mpbir2an
      syl ) FAUAZUBGXAUCGHBIZJZCIZKZLXBJZDIZKZMZBNXAUDOZUEZDXAPZQCXLQAUFXKCDXLX
      DXLGZXGXLGZMZEHLROZEIZHKZXDXGUGZUHZXJGHXTJZXDKZLXTJZXGKZXKXOXTAXPVGOZXJXO
      XTYEGZXPAXTUIZXOEXPXSAXTXOXSAGXQXPGXOXRXDXGAXOXDXLAXMXNUJXOXLFASZAXOFTGAT
      GZXLYHKUKXMYIXNXMXLFKYIXLXDULYIUMZXLFUNZPFYJXAYKFAUOUPFUKUQURUSUTZFATTVAV
      BYHAFSAFAVCAVHVDURZVEXOXGXLAXMXNVFYMVEVIUTXTVJZVKXOYIXPTGYFYGVLYLHLRVSAXP
      XTTTVMVNVOXONXPVPJGYIXJYEKVQYLANTXPVRVBVTHXPGYBXOWAEHXSXDXPXTXRXDXGWBYNCW
      CWDWELXPGYDXOWFELXSXGXPXTXQLKZXQHWGZXSXGKYOYPLHWGWHXQLHWJWKXQHXDXGWIWTYND
      WCWDWEXIYBYDMBXTXJXBXTKZXEYBXHYDYQXCYAXDHXBXTWLWMYQXFYCXGLXBXTWLWMWNWOWPW
      QCDBXAXLXLVJWRWS $.

    $( A connected and locally path-connected space is path-connected.
       (Contributed by Mario Carneiro, 7-Jul-2015.) $)
    connpconn $p |- ( ( J e. Conn /\ J e. N-Locally PConn ) -> J e. PConn ) $=
      ( vf vx vy vz vu vw vg wcel wa cc0 cv cfv wceq c1 adantr wss fveq1 eqeq1d
      wrex vs vh cconn cpconn cnlly ctop cii ccn co cuni wral conntop crab eqid
      simpll ccld cin inss1 wel crest w3a cpw simplr ad2antrr topopn syl simprr
      wi nlly2i syl3anc simprr1 weq eqeq2 rexbidv elrab simprbi simprr3 simprr2
      anbi2d simprll sseldd elpwi ad2antrl restuni syl2anc eleqtrd pconncn cpco
      simplrl ad2antlr cnrest2r simprl simplrr simprd simprrl eqtr4d pcocn pco0
      simpld eqtrd simprrr anbi12d rspcev syl12anc rexlimddv anassrs rexlimdvaa
      pco1 ralrimiva sstrd jctild cbvrexv ssrab 3imtr4g syl5 jca expr rexlimdva
      reximdv mpd wb ssrab2 isclo2 sylancl mpbird sseldi wne cicc csn cxp simpr
      c0 ctopon iitopon a1i toptopon sylib cnconst2 fvconst2 mp1i vex syl112anc
      0elunit 1elunit rspc2ev rabn0 sylibr inss2 connclo eqcomd rabid2 sylanbrc
      ispconn ) AUCIZAUDUEIZJZAUFIZKBLZMZCLZNZOUURMZDLZNZJZBUGAUHUIZTZDAUJZUKZC
      UVHUKAUDIUUNUUQUUOAULZPUUPUVICUVHUUPUUTUVHIZJZUVHUVGDUVHUMZNUVIUVLUVMUVHU
      VLUVMAUVHUVHUNZUUNUUOUVKUOUVLAAUPMZUQZAUVMAUVOURUVLUVMUVPIZEFUSZGLZUVMIZF
      LZUVMQZVHZGUWAUKZJZFATZEUVHUKZUVLUWFEUVHUUPUVKELZUVHIZUWFUUPUVKUWIJZJZUVR
      UWAUALZQZAUWLUTUIZUDIZVAZFATZUAUVHVBZTZUWFUWKUUOUVHAIZUWIUWSUUNUUOUWJVCUW
      KUUQUWTUUNUUQUUOUWJUVJVDZAUVHUVNVEVFUUPUVKUWIVGFUDUWHUVHAUAVIVJUWKUWQUWFU
      AUWRUWKUWLUWRIZJUWPUWEFAUWKUXBUWPUWEUWKUXBUWPJZJZUVRUWDUVRUWMUWOUXBUWKVKU
      XDUWCGUWAUVTUVAUVBUVSNZJZBUVFTZUXDGFUSZJZUWBUVTUVSUVHIUXGUVGUXGDUVSUVHDGV
      LZUVEUXFBUVFUXJUVDUXEUVAUVCUVSUVBVMVSVNVOVPUXIKHLZMZUUTNZOUXKMZUVSNZJZHUV
      FTZUWAUVHQZUVGDUWAUKZJUXGUWBUXIUXQUXSUXRUXIUXPUXSHUVFUXDUXHUXKUVFIZUXPJZU
      XSUXDUXHUYAJZJUVGDUWAUXDUYBDFUSZUVGUXDUYBUYCJZJZKUBLZMZUVSNZOUYFMZUVCNZJZ
      UVGUBUGUWNUHUIZUYEUWOUVSUWNUJZIUVCUYMIUYKUBUYLTUXDUWOUYDUVRUWMUWOUXBUWKVQ
      PUYEUVSUWLUYMUYEUWAUWLUVSUXDUWMUYDUVRUWMUWOUXBUWKVRZPZUXDUXHUYAUYCVTWAUYE
      UUQUWLUVHQZUWLUYMNUWKUUQUXCUYDUXAVDZUXDUYPUYDUXBUYPUWKUWPUWLUVHWBZWCPUWLA
      UVHUVNWDWEZWFUYEUVCUWLUYMUYEUWAUWLUVCUYOUXDUYBUYCVGWAUYSWFUVSUVCUBUWNUYMU
      YMUNWGVJUYEUYFUYLIZUYKJZJZUXKUYFAWHMUIZUVFIKVUCMZUUTNZOVUCMZUVCNZUVGVUBUX
      KUYFAUYDUXTUXDVUAUXHUXTUXPUYCWIWJZVUBUYLUVFUYFVUBUUQUYLUVFQUYEUUQVUAUYQPU
      WLUGAWKVFUYEUYTUYKWLWAZVUBUXNUVSUYGVUBUXMUXOUYDUXPUXDVUAUXHUXTUXPUYCWMWJZ
      WNUYEUYTUYHUYJWOWPWQVUBVUDUXLUUTVUBUXKUYFAVUHVUIWRVUBUXMUXOVUJWSWTVUBVUFU
      YIUVCVUBUXKUYFAVUHVUIXHUYEUYTUYHUYJXAWTUVEVUEVUGJBVUCUVFUURVUCNZUVAVUEUVD
      VUGVUKUUSVUDUUTKUURVUCRSVUKUVBVUFUVCOUURVUCRSXBXCXDXEXFXIXFXGUXIUWAUWLUVH
      UXDUWMUXHUYNPUXIUXBUYPUWKUXBUWPUXHWIUYRVFXJXKUXFUXPBHUVFBHVLZUVAUXMUXEUXO
      VULUUSUXLUUTKUURUXKRSVULUVBUXNUVSOUURUXKRSXBXLUVGDUVHUWAXMXNXOXIXPXQXSXRX
      TXFXIUVLUUQUVMUVHQUVQUWGYAUUNUUQUUOUVKUVJVDZUVGDUVHYBEFGUVMAUVHUVNYCYDYEZ
      YFUVLUVGDUVHTZUVMYLYGUVLUVKKOYHUIZUUTYIYJZUVFIZKVUQMZUUTNZOVUQMZUUTNZVUOU
      UPUVKYKZUVLUGVUPYMMIZAUVHYMMIZUVKVURVVDUVLYNYOUVLUUQVVEVUMAUVHUVNYPYQVVCU
      UTUGAVUPUVHYRVJKVUPIVUTUVLUUCVUPUUTKCUUAZYSYTOVUPIVVBUVLUUDVUPUUTOVVFYSYT
      UVEVUTVVBJUVAUVBUUTNZJDBUUTVUQUVHUVFDCVLUVDVVGUVAUVCUUTUVBVMVSUURVUQNZUVA
      VUTVVGVVBVVHUUSVUSUUTKUURVUQRSVVHUVBVVAUUTOUURVUQRSXBUUEUUBUVGDUVHUUFUUGU
      VLUVPUVOUVMAUVOUUHVUNYFUUIUUJUVGDUVHUUKYQXICDBAUVHUVNUUMUUL $.
  $}

  ${
    $d f h x y $.  $d f h y A $.  $d f P $.  $d f Q $.  $d f S $.
    $d f h y B $.  $d f h y J $.  $d f T $.  $d f h y X $.
    pconnpi1.x $e |- X = U. J $.
    $( A quotient of a path-connected space is path-connected.  (Contributed by
       Mario Carneiro, 24-Mar-2015.) $)
    qtoppconn $p |- ( ( J e. PConn /\ F Fn X ) -> ( J qTop F ) e. PConn ) $=
      ( cpconn pconntop cqtop co cuni eqid cnpconn qtopcmplem ) EABCDBFABBAGHZC
      MIZNJKL $.

    pconnpi1.p $e |- P = ( J pi1 A ) $.
    pconnpi1.q $e |- Q = ( J pi1 B ) $.
    pconnpi1.s $e |- S = ( Base ` P ) $.
    pconnpi1.t $e |- T = ( Base ` Q ) $.
    $( All fundamental groups in a path-connected space are isomorphic.
       (Contributed by Mario Carneiro, 12-Feb-2015.) $)
    pconnpi1 $p |- ( ( J e. PConn /\ A e. X /\ B e. X ) -> P ~=g Q ) $=
      ( wcel cv cfv c1 co cpi1 eqid vf vh vx vy cpconn w3a cc0 wceq wa cgic wbr
      cii ccn pconncn cbs cuni cphtpc cec cicc cmin cmpt cpco cop crn cgim ctop
      ctopon simpl1 pconntop syl toptopon sylib simprl fveq2d cbvmptv pi1xfrgim
      oveq2 simprrl oveq2d syl6eqr simprrr oveq12d eleqtrd brgici rexlimddv ) G
      UENZAHNZBHNZUFZUGUAOZPZAUHZQWJPZBUHZUIZCDUJUKZUAULGUMRZABUAGHIUNWIWJWQNZW
      OUIZUIZUBGWKSRZUOPZUPUBOZGUQPZURUCUGQUSRZQUCOZUTRZWJPZVAZXCWJGVBPZRXJRXDU
      RVCVAVDZCDVERZNWPWTXKXAGWMSRZVERXLWTUDXBXAXMUBWJXKXIGHXATXMTXBTXKTWTGVFNZ
      GHVGPNWTWFXNWFWGWHWSVHGVIVJGHIVKVLWIWRWOVMUCUDXEXHQUDOZUTRZWJPXFXOUHXGXPW
      JXFXOQUTVQVNVOVPWTXACXMDVEWTXAGASRCWTWKAGSWIWRWLWNVRVSJVTWTXMGBSRDWTWMBGS
      WIWRWLWNWAVSKVTWBWCCDXKWDVJWE $.
  $}

  ${
    $d x G $.  $d x J $.
    sconnpht2.1 $e |- ( ph -> J e. SConn ) $.
    sconnpht2.2 $e |- ( ph -> F e. ( II Cn J ) ) $.
    sconnpht2.3 $e |- ( ph -> G e. ( II Cn J ) ) $.
    sconnpht2.4 $e |- ( ph -> ( F ` 0 ) = ( G ` 0 ) ) $.
    sconnpht2.5 $e |- ( ph -> ( F ` 1 ) = ( G ` 1 ) ) $.
    $( Any two paths in a simply connected space with the same start and end
       point are path-homotopic.  (Contributed by Mario Carneiro,
       12-Feb-2015.) $)
    sconnpht2 $p |- ( ph -> F ( ~=ph ` J ) G ) $=
      ( vx cc0 c1 co cfv csn cxp wbr wcel wceq eqtr4d cicc cmin cmpt cphtpc cii
      cv cpco csconn ccn w3a eqid pcorevcl simp1d simp2d pcocn pco0 pco1 simp3d
      syl sconnpht syl3anc sneqd xpeq2d breqtrd pcophtb mpbid ) ABJKLUAMZLJUFUB
      MCNUCZDUGNMZVGKBNZOZPZDUDNZQBCVMQAVIVGKVINZOZPZVLVMADUHRVIUEDUIMZRVNLVINZ
      SVIVPVMQEABVHDFAVHVQRZKVHNZLCNZSZLVHNZKCNZSZACVQRVSWBWEUJGJCVHDVHUKZULUSZ
      UMZALBNWAVTIAVSWBWEWGUNTUOAVNVJVRABVHDFWHUPZAVRWCVJABVHDFWHUQAVJWDWCHAVSW
      BWEWGURTTTVIDUTVAAVOVKVGAVNVJWIVBVCVDAJVLBCVHDWFVLUKFGHIVEVF $.
  $}

  ${
    $d f x J $.  $d f x X $.  $d f x Y $.
    sconnpi1.1 $e |- X = U. J $.
    $( A path-connected topological space is simply connected iff its
       fundamental group is trivial.  (Contributed by Mario Carneiro,
       12-Feb-2015.) $)
    sconnpi1 $p |- ( ( J e. PConn /\ Y e. X ) ->
                           ( J e. SConn <-> ( Base ` ( J pi1 Y ) ) ~~ 1o ) ) $=
      ( vx vf wcel wa co cfv c1o cen wbr csn cc0 wceq c1 eqid syl2anc syl cv wb
      cpconn csconn cpi1 cbs c0g cphtpc cec cii wrex ctop sconntop adantl simpl
      ccn ctopon toptopon sylib simpr elpi1 cicc cxp wer phtpcer simpllr simplr
      simprl simprr eqtr4d sconnpht syl3anc sneqd xpeq2d breqtrd erthi ad2antrr
      a1i pi1id eqtrd velsn eqeq1 syl5bb syl5ibrcom rexlimdva sylbid ssrdv cgrp
      expimpd pi1grp grpidcl snssd eqssd fvex ensn1 syl6eqbr adantll wi simplll
      wral simpll pconntop wf iiuni 0elunit ffvelrn sylancl eqidd eqcomd elpi1i
      cnf pcoptcl simp1d simp2d simp3d cgic pconnpi1 gicen entr en1eqsn eleqtrd
      w3a elsni erth mpbird expr ralrimiva issconn sylanbrc impbida ) AUCGZCBGZ
      HZAUDGZACUEIZUFJZKLMZYLYNYQYKYLYNHZYPYOUGJZNZKLYRYPYTYREYPYTYREUAZYPGZOFU
      AZJZCPZQUUCJZCPZHZUUAUUCAUHJZUIZPZHZFUJAUPIZUKZUUAYTGZYRAULGZYLUUBUUNUBYN
      UUPYLAUMUNZYLYNUOZUUPYLHZYPFUUAYOABCYORZYPRZUUSUUPABUQJGZUUPYLUOABDURZUSU
      UPYLUTVASYRUULUUOFUUMYRUUCUUMGZHZUUHUUKUUOUVEUUHHZUUOUUKUUJYSPZUVFUUJOQVB
      IZCNZVCZUUIUIZYSUVFUUCUVJUUIUUMUUMUUIVDZUVFAVEZVRUVFUUCUVHUUDNZVCZUVJUUIU
      VFYNUVDUUDUUFPZUUCUVOUUIMZYLYNUVDUUHVFYRUVDUUHVGUVFUUDCUUFUVEUUEUUGVHZUVE
      UUEUUGVIVJUUCAVKVLUVFUVNUVIUVHUVFUUDCUVRVMVNVOVPYRUVKYSPZUVDUUHYRUVBYLUVS
      YRUUPUVBUUQUVCUSZUURYOABCUVJUUTUVJRVSSVQVTUUOUUAYSPUUKUVGEYSWAUUAUUJYSWBW
      CWDWIWEWFWGYRYSYPYRYOWHGZYSYPGYRUVBYLUWAUVTUURYOABCUUTWJSYPYOYSUVAYSRWKTW
      LWMYSYOUGWNWOWPWQYMYQHZYKUVPUVQWRZFUUMWTYNYKYLYQXAUWBUWCFUUMUWBUVDUVPUVQU
      WBUVDUVPHZHZUVQUUJUVOUUIUIZPZUWEUUJUWFNZGUWGUWEUUJAUUDUEIZUFJZUWHUWEUWJUU
      CUWIABUUDUWIRZUWJRZUWEUUPUVBUWEYKUUPYKYLYQUWDWSZAXBTUVCUSZUWEUVHBUUCXCZOU
      VHGUUDBGZUWEUVDUWOUWBUVDUVPVHZUUCUJAUVHBXDDXKTXEUVHBOUUCXFXGZUWQUWEUUDXHU
      WEUUDUUFUWBUVDUVPVIXIXJUWEUWFUWJGUWJKLMZUWJUWHPUWEUWJUVOUWIABUUDUWKUWLUWN
      UWRUWEUVOUUMGZOUVOJUUDPZQUVOJUUDPZUWEUVBUWPUWTUXAUXBYBUWNUWRUVOABUUDUVORX
      LSZXMUWEUWTUXAUXBUXCXNUWEUWTUXAUXBUXCXOXJUWEUWJYPLMZYQUWSUWEUWIYOXPMZUXDU
      WEYKUWPYLUXEUWMUWRYKYLYQUWDVFUUDCUWIYOUWJYPABDUWKUUTUWLUVAXQVLUWJYPUWIYOU
      WLUVAXRTYMYQUWDVGUWJYPKXSSUWFUWJXTSYAUUJUWFYCTUWEUUCUVOUUIUUMUVLUWEUVMVRU
      WQYDYEYFYGFAYHYIYJ $.
  $}

  ${
    $d s x y G $.  $d s x y H $.  $d s x y ph $.  $d s x y R $.  $d s x y S $.
    $d x A $.  $d x B $.  $d s x F $.
    txsconn.1 $e |- ( ph -> R e. Top ) $.
    txsconn.2 $e |- ( ph -> S e. Top ) $.
    txsconn.3 $e |- ( ph -> F e. ( II Cn ( R tX S ) ) ) $.
    txsconn.5 $e |- A = ( ( 1st |` ( U. R X. U. S ) ) o. F ) $.
    txsconn.6 $e |- B = ( ( 2nd |` ( U. R X. U. S ) ) o. F ) $.
    txsconn.7 $e |- ( ph ->
      G e. ( A ( PHtpy ` R ) ( ( 0 [,] 1 ) X. { ( A ` 0 ) } ) ) ) $.
    txsconn.8 $e |- ( ph ->
      H e. ( B ( PHtpy ` S ) ( ( 0 [,] 1 ) X. { ( B ` 0 ) } ) ) ) $.
    $( Lemma for ~ txsconn .  (Contributed by Mario Carneiro, 9-Mar-2015.) $)
    txsconnlem $p |- ( ph ->
      F ( ~=ph ` ( R tX S ) ) ( ( 0 [,] 1 ) X. { ( F ` 0 ) } ) ) $=
      ( co cc0 c1 cfv wceq vx vy vs cii ctx ccn wcel cicc csn cxp cphtpy c0 wne
      cphtpc wbr cmpt fconstmpt cuni ctopon iitopon a1i ctop eqid sylib txtopon
      toptopon syl2anc cnf2 syl3anc 0elunit ffvelrn sylancl cnmptc syl5eqel cop
      wf cmpt2 wfn c1st cres ccom tx1cn cnco iiuni cnf syl phtpycn sseldd iitop
      cv txunii ffn 3syl fnov eqeltrrd c2nd tx2cn cnmpt2t chtpy phtpyhtpy htpyi
      simpld fveq1i fvco3 sylan syl5eq fvres 3eqtrd opeq12d oveq12 opex ovmpt2a
      wa simpr 1st2nd2 3eqtr4d simprd fvex fvconst2 adantl eqtrd adantr 1elunit
      phtpyi sylancr isphtpy2d ne0i isphtpc syl3anbrc ) AFUDDEUEPZUFPZUGZQRUHPZ
      QFSZUIUJZYKUGFYOYJUKSPZULUMZFYOYJUNSUOKAYOUAYMYNUPYKUAYMYNUQAUAYNUDYJYMDU
      RZEURZUJZUDYMUSSUGZAUTVAZADYRUSSUGZEYSUSSUGZYJYTUSSUGZADVBUGUUCIDYRYRVCZV
      FVDZAEVBUGUUDJEYSYSVCZVFVDZDEYRYSVEVGZAYMYTFVPZQYMUGZYNYTUGZAUUAUUEYLUUKU
      UBUUJKFUDYJYMYTVHVIZVJYMYTQFVKVLZVMVNZAUAUBYMYMUAWJZUBWJZGPZUUQUURHPZVOZV
      QZYPUGYQAFYOUVBYJUCKUUPAUAUBUUSUUTUDUDDEYMYMUUBUUBAGUAUBYMYMUUSVQZUDUDUEP
      ZDUFPZAGYMYMUJZVRZGUVCTAGUVEUGUVFYRGVPUVGABYMQBSZUIUJZDUKSPZUVEGABUVIDABV
      SYTVTZFWAZUDDUFPZLAYLUVKYJDUFPUGZUVLUVMUGKAUUCUUDUVNUUGUUIDEYRYSWBVGFUVKU
      DYJDWCVGVNZAUVIUAYMUVHUPUVMUAYMUVHUQAUAUVHUDDYMYRUUBUUGAYMYRBVPZUULUVHYRU
      GABUVMUGUVPUVOBUDDYMYRWDUUFWEWFVJYMYRQBVKVLVMVNZWGNWHZGUVDDUVFYRUDUDYMYMW
      IWIWDWDWKZUUFWEUVFYRGWLWMUAUBYMYMGWNVDUVRWOAHUAUBYMYMUUTVQZUVDEUFPZAHUVFV
      RZHUVTTAHUWAUGUVFYSHVPUWBACYMQCSZUIUJZEUKSPZUWAHACUWDEACWPYTVTZFWAZUDEUFP
      ZMAYLUWFYJEUFPUGZUWGUWHUGKAUUCUUDUWIUUGUUIDEYRYSWQVGFUWFUDYJEWCVGVNZAUWDU
      AYMUWCUPUWHUAYMUWCUQAUAUWCUDEYMYSUUBUUIAYMYSCVPZUULUWCYSUGACUWHUGUWKUWJCU
      DEYMYSWDUUHWEWFVJYMYSQCVKVLVMVNZWGOWHZHUVDEUVFYSUVSUUHWEUVFYSHWLWMUAUBYMY
      MHWNVDUWMWOWRAUCWJZYMUGZXMZUWNQGPZUWNQHPZVOZUWNFSZVSSZUWTWPSZVOZUWNQUVBPZ
      UWTUWPUWQUXAUWRUXBUWPUWQUWNBSZUWTUVKSZUXAUWPUWQUXETZUWNRGPZUWNUVISZTZAUWN
      BUVIGUDDYMUUBUVOUVQAUVJBUVIUDDWSPPGABUVIDUVOUVQWTNWHXAZXBUWPUXEUWNUVLSZUX
      FUWNBUVLLXCAUUKUWOUXLUXFTUUNYMYTUWNUVKFXDXEXFUWPUWTYTUGZUXFUXATAUUKUWOUXM
      UUNYMYTUWNFVKXEZUWTYTVSXGWFXHUWPUWRUWNCSZUWTUWFSZUXBUWPUWRUXOTZUWNRHPZUWN
      UWDSZTZAUWNCUWDHUDEYMUUBUWJUWLAUWECUWDUDEWSPPHACUWDEUWJUWLWTOWHXAZXBUWPUX
      OUWNUWGSZUXPUWNCUWGMXCAUUKUWOUYBUXPTUUNYMYTUWNUWFFXDXEXFUWPUXMUXPUXBTUXNU
      WTYTWPXGWFXHXIUWPUWOUULUXDUWSTAUWOXNZVJUAUBUWNQYMYMUVAUWSUVBUUQUWNTZUURQT
      XMUUSUWQUUTUWRUUQUWNUURQGXJUUQUWNUURQHXJXIUVBVCZUWQUWRXKXLVLUWPUXMUWTUXCT
      UXNUWTYRYSXOWFXPUWPUXHUXRVOZYNVSSZYNWPSZVOZUWNRUVBPZUWNYOSZUWPUXHUYGUXRUY
      HUWPUXHUXIUVHUYGUWPUXGUXJUXKXQUWOUXIUVHTAYMUVHUWNQBXRXSXTAUVHUYGTUWOAUVHQ
      UVLSZUYGQBUVLLXCAUYLYNUVKSZUYGAUUKUULUYLUYMTUUNVJYMYTQUVKFXDVLAUUMUYMUYGT
      UUOYNYTVSXGWFYAXFYBZXHUWPUXRUXSUWCUYHUWPUXQUXTUYAXQUWOUXSUWCTAYMUWCUWNQCX
      RXSXTAUWCUYHTUWOAUWCQUWGSZUYHQCUWGMXCAUYOYNUWFSZUYHAUUKUULUYOUYPTUUNVJYMY
      TQUWFFXDVLAUUMUYPUYHTUUOYNYTWPXGWFYAXFYBZXHXIUWPUWORYMUGZUYJUYFTUYCYCUAUB
      UWNRYMYMUVAUYFUVBUYDUURRTXMUUSUXHUUTUXRUUQUWNUURRGXJUUQUWNUURRHXJXIUYEUXH
      UXRXKXLVLUWPUYKYNUYIUWOUYKYNTAYMYNUWNQFXRXSXTUWPUUMYNUYITAUUMUWOUUOYBYNYR
      YSXOWFZYAXPUWPQUWNGPZQUWNHPZVOZUYIQUWNUVBPZYNUWPUYTUYGVUAUYHUWPUYTUVHUYGU
      WPUYTUVHTZRUWNGPZRBSZTZAUWNBUVIGDUVOUVQNYDZXBUYNYAUWPVUAUWCUYHUWPVUAUWCTZ
      RUWNHPZRCSZTZAUWNCUWDHEUWJUWLOYDZXBUYQYAXIUWPUULUWOVUCVUBTVJUYCUAUBQUWNYM
      YMUVAVUBUVBUUQQTUURUWNTZXMUUSUYTUUTVUAUUQQUURUWNGXJUUQQUURUWNHXJXIUYEUYTV
      UAXKXLYEUYSXPUWPVUEVUJVOZRFSZVSSZVUPWPSZVOZRUWNUVBPZVUPUWPVUEVUQVUJVURUWP
      VUEVUFVUQUWPVUDVUGVUHXQAVUFVUQTUWOAVUFVUPUVKSZVUQAVUFRUVLSZVVARBUVLLXCAUU
      KUYRVVBVVATUUNYCYMYTRUVKFXDVLXFAVUPYTUGZVVAVUQTAUUKUYRVVCUUNYCYMYTRFVKVLZ
      VUPYTVSXGWFYAYBYAUWPVUJVUKVURUWPVUIVULVUMXQAVUKVURTUWOAVUKVUPUWFSZVURAVUK
      RUWGSZVVERCUWGMXCAUUKUYRVVFVVETUUNYCYMYTRUWFFXDVLXFAVVCVVEVURTVVDVUPYTWPX
      GWFYAYBYAXIUWPUYRUWOVUTVUOTYCUYCUAUBRUWNYMYMUVAVUOUVBUUQRTVUNXMUUSVUEUUTV
      UJUUQRUURUWNGXJUUQRUURUWNHXJXIUYEVUEVUJXKXLYEUWPVVCVUPVUSTAVVCUWOVVDYBVUP
      YRYSXOWFXPYFYPUVBYGWFFYOYJYHYI $.
  $}

  ${
    $d f g h R $.  $d f g h S $.
    $( The topological product of two simply connected spaces is simply
       connected.  (Contributed by Mario Carneiro, 12-Feb-2015.) $)
    txsconn $p |- ( ( R e. SConn /\ S e. SConn ) -> ( R tX S ) e. SConn ) $=
      ( vf vg vh wcel wa co cc0 cfv c1 wceq cxp cii ccn wex ctopon eqid syl2anc
      sylib csconn ctx cpconn cv cicc csn cphtpc wbr wi wral sconnpconn txpconn
      syl2an c1st cuni cres ccom cphtpy c2nd c0 wne simpll simprl ctop sconntop
      w3a ad2antrr toptopon ad2antlr tx1cn simprr fveq2d wf iitopon a1i txtopon
      cnco cnf2 syl3anc 0elunit sylancl 1elunit 3eqtr4d sconnpht isphtpc simp3d
      fvco3 n0 simplr tx2cn eeanv adantr txsconnlem ex syl5bir mp2and ralrimiva
      exlimdvv expr issconn sylanbrc ) AUAFZBUAFZGZABUBHZUCFZICUDZJZKXGJZLZXGIK
      UEHZXHUFMXEUGJUHZUIZCNXEOHZUJXEUAFXBAUCFBUCFXFXCAUKBUKABULUMXDXMCXNXDXGXN
      FZXJXLXDXOXJGZGZDUDZUNAUOZBUOZMZUPZXGUQZXKIYCJZUFMZAURJHZFZDPZEUDZUSYAUPZ
      XGUQZXKIYKJZUFMZBURJHZFZEPZXLXQYFUTVAZYHXQYCNAOHZFZYEYRFZYQXQYCYEAUGJUHZY
      SYTYQVFXQXBYSYDKYCJZLUUAXBXCXPVBXQXOYBXEAOHFZYSXDXOXJVCZXQAXSQJFZBXTQJFZU
      UCXQAVDFZUUEXBUUGXCXPAVEVGZAXSXSRVHTZXQBVDFZUUFXCUUJXBXPBVEVIZBXTXTRVHTZA
      BXSXTVJSXGYBNXEAVQSXQXHYBJZXIYBJZYDUUBXQXHXIYBXDXOXJVKZVLXQXKYAXGVMZIXKFZ
      YDUUMLXQNXKQJFZXEYAQJFZXOUUPUURXQVNVOXQUUEUUFUUSUUIUULABXSXTVPSUUDXGNXEXK
      YAVRVSZVTXKYAIYBXGWGWAXQUUPKXKFZUUBUUNLUUTWBXKYAKYBXGWGWAWCYCAWDVSYCYEAWE
      TWFDYFWHTXQYNUTVAZYPXQYKNBOHZFZYMUVCFZUVBXQYKYMBUGJUHZUVDUVEUVBVFXQXCUVDY
      LKYKJZLUVFXBXCXPWIXQXOYJXEBOHFZUVDUUDXQUUEUUFUVHUUIUULABXSXTWJSXGYJNXEBVQ
      SXQXHYJJZXIYJJZYLUVGXQXHXIYJUUOVLXQUUPUUQYLUVILUUTVTXKYAIYJXGWGWAXQUUPUVA
      UVGUVJLUUTWBXKYAKYJXGWGWAWCYKBWDVSYKYMBWETWFEYNWHTYHYPGYGYOGZEPDPXQXLYGYO
      DEWKXQUVKXLDEXQUVKXLXQUVKGYCYKABXGXRYIXQUUGUVKUUHWLXQUUJUVKUUKWLXQXOUVKUU
      DWLYCRYKRXQYGYOVCXQYGYOVKWMWNWRWOWPWSWQCXEWTXA $.
  $}

  ${
    $d t z J $.  $d f s t x y z K $.  $d f s t x y z ph $.  $d t x y z S $.
    cvxpconn.1 $e |- ( ph -> S C_ CC ) $.
    cvxpconn.2 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ t e. ( 0 [,] 1 ) ) ) ->
      ( ( t x. x ) + ( ( 1 - t ) x. y ) ) e. S ) $.
    cvxpconn.3 $e |- J = ( TopOpen ` CCfld ) $.
    cvxpconn.4 $e |- K = ( J |`t S ) $.
    $( A convex subset of the complex numbers is path-connected.  (Contributed
       by Mario Carneiro, 12-Feb-2015.) $)
    cvxpconn $p |- ( ph -> K e. PConn ) $=
      ( wcel cc0 wceq c1 co cc cmul cmin caddc vf ctop cv cfv cii ccn wrex cuni
      wa wral cpconn crest cvv cnfldtop wss cnex ssexg sylancl resttop syl5eqel
      sylancr cicc cmpt dfii3 ctopon cnfldtopon a1i cr unitssre ax-resscn sstri
      cnmptid adantr simprr sseldd cnmptc ctx mulcn cnmpt12f subcn simprl addcn
      1cnd cnmpt1res crn wb wf 3exp2 com23 imp42 eqid fmptd frn cnrest2 syl3anc
      wi mpbid oveq2i syl6eleqr 0elunit oveq1 oveq2 1m0e1 syl6eq oveq1d oveq12d
      syl fvmpt ax-mp mul02d mulid2d addid2d eqtrd syl5eq 1elunit 1m1e0 addid1d
      ovex eqeq1d anbi12d rspcev syl12anc ralrimivva resttopon toponuni raleqdv
      fveq1 raleqbidv ispconn sylanbrc ) AGUBLMUAUCZUDZCUCZNZOYKUDZBUCZNZUIZUAU
      EGUFPZUGZBGUHZUJZCUUAUJZGUKLAGFEULPZUBKAFUBLEUMLZUUDUBLFJUNAEQUOZQUMLUUEH
      UPEQUMUQUREFUMUSVAUTAYTBEUJZCEUJUUCAYTCBEEAYMELZYPELZUIZUIZDMOVBPZDUCZYPR
      PZOUUMSPZYMRPZTPZVCZYSLMUURUDZYMNZOUURUDZYPNZYTUUKUURUEUUDUFPZYSUUKUURUEF
      UFPLZUURUVCLZUUKDUUQFUEFQUULFJVDFQVEUDLZUUKFJVFZVGZUULQUOUUKUULVHQVIVJVKV
      GUUKDUUNUUPTFFFFQUVHUUKDUUMYPRFFFFQUVHUUKDFQUVHVLZUUKDYPFFQQUVHUVHUUKEQYP
      AUUFUUJHVMZAUUHUUIVNVOZVPRFFVQPFUFPZLUUKFJVRVGZVSUUKDUUOYMRFFFFQUVHUUKDOU
      UMSFFFFQUVHUUKDOFFQQUVHUVHUUKWCVPUVISUVLLUUKFJVTVGVSUUKDYMFFQQUVHUVHUUKEQ
      YMUVJAUUHUUIWAVOZVPUVMVSTUVLLUUKFJWBVGVSWDUUKUVFUURWEEUOZUUFUVDUVEWFUVHUU
      KUULEUURWGUVOUUKDUULUUQEUURAUUHUUIUUMUULLZUUQELZAUUIUUHUVPUVQWPAUUIUUHUVP
      UVQIWHWIWJUURWKZWLUULEUURWMXGUVJEUURUEFQWNWOWQGUUDUEUFKWRWSUUKUUSMYPRPZOY
      MRPZTPZYMMUULLUUSUWANWTDMUUQUWAUULUURUUMMNZUUNUVSUUPUVTTUUMMYPRXAUWBUUOOY
      MRUWBUUOOMSPOUUMMOSXBXCXDXEXFUVRUVSUVTTXRXHXIUUKUWAMYMTPYMUUKUVSMUVTYMTUU
      KYPUVKXJUUKYMUVNXKXFUUKYMUVNXLXMXNUUKUVAOYPRPZMYMRPZTPZYPOUULLUVAUWENXODO
      UUQUWEUULUURUUMONZUUNUWCUUPUWDTUUMOYPRXAUWFUUOMYMRUWFUUOOOSPMUUMOOSXBXPXD
      XEXFUVRUWCUWDTXRXHXIUUKUWEYPMTPYPUUKUWCYPUWDMTUUKYPUVKXKUUKYMUVNXJXFUUKYP
      UVKXQXMXNYRUUTUVBUIUAUURYSYKUURNZYNUUTYQUVBUWGYLUUSYMMYKUURYGXSUWGYOUVAYP
      OYKUURYGXSXTYAYBYCAUUGUUBCEUUAAGEVEUDZLEUUANAGUUDUWHKAUVFUUFUUDUWHLUVGHEF
      QYDVAUTEGYEXGZAYTBEUUAUWIYFYHWQCBUAGUUAUUAWKYIYJ $.

    $( A convex subset of the complex numbers is simply connected.
       (Contributed by Mario Carneiro, 12-Feb-2015.) $)
    cvxsconn $p |- ( ph -> K e. SConn ) $=
      ( vz wcel cc0 c1 co cii cmul caddc cc vf vs cpconn cv cfv wceq csn cphtpc
      cicc cxp wbr wi ccn wral csconn cvxpconn wa cphtpy wne simprl cuni ctopon
      c0 w3a ctop pconntop syl adantr eqid toptopon sylib iiuni 0elunit ffvelrn
      cnf sylancl pcoptcl syl2anc simp1d cmin cmpt2 ctx crest iitopon a1i dfii3
      wf cnfldtopon wss cr unitssre ax-resscn sstri cnmpt2res resttopon sylancr
      cnmpt2nd syl5eqel toponuni eleqtrrd sseldd mulcn cnmpt22f ax-1cn cnmpt1st
      cnmpt2c subcn cnfldtop cnrest2r ax-mp oveq2i syl6eleq sseldi cnmpt21f crn
      addcn wb ffvelrnd 3exp2 imp42 an32s ralrimivva oveq2 oveq1d eleq1d oveq2d
      simpr weq syl6eq simpl fveq2d oveq12d ovex ovmpt2a mul02d mulid2d 1elunit
      3eqtrd 3eqtr3d eqtrd ad2ant2rl rspc2va syl21anc fmpt2 frn cnrest2 syl3anc
      mpbid syl6eleqr 1m0e1 toponunii ffvelrnda addid2d addid1d fvconst2 adantl
      1m1e0 fvex eqtr4d pncan3 adddird simplrr isphtpy2d ne0i isphtpc syl3anbrc
      subcl expr ralrimiva issconn sylanbrc ) AGUCMZNUAUDZUEZOUVMUEZUFZUVMNOUIP
      ZUVNUGUJZGUHUEUKZULZUAQGUMPZUNGUOMABCDEFGHIJKUPZAUVTUAUWAAUVMUWAMZUVPUVSA
      UWCUVPUQZUQZUWCUVRUWAMZUVMUVRGURUEPZVCUSZUVSAUWCUVPUTZUWEUWFNUVRUEUVNUFZO
      UVRUEUVNUFZUWEGGVAZVBUEMZUVNUWLMZUWFUWJUWKVDUWEGVEMZUWMAUWOUWDAUVLUWOUWBG
      VFVGVHGUWLUWLVIZVJVKUWEUVQUWLUVMWGZNUVQMZUWNUWEUWCUWQUWIUVMQGUVQUWLVLUWPV
      OVGZVMUVQUWLNUVMVNVPZUVRGUWLUVNUVRVIVQVRVSZUWELDUVQUVQDUDZUVNRPZOUXBVTPZL
      UDZUVMUEZRPZSPZWAZUWGMUWHUWEUVMUVRUXIGUBUWIUXAUWEUXIQQWBPZFEWCPZUMPZUXJGU
      MPUWEUXIUXJFUMPMZUXIUXLMZUWELDUXCUXGSQQFFFUVQUVQQUVQVBUEMUWEWDWEZUXOUWELD
      UXBUVNRQQFFFUVQUVQUXOUXOUWELDUXBFQFFQUVQTUVQTFJWFZFTVBUEMZUWEFJWHZWEZUVQT
      WIUWEUVQWJTWKWLWMZWEZUXPUXSUYAUWELDFFTTUXSUXSWQZWNUWELDUVNQQFUVQUVQTUXOUX
      OUXSUWEETUVNAETWIZUWDHVHZUWEUVNUWLEUWTAEUWLUFZUWDAGEVBUEZMUYEAGUXKUYFKAUX
      QUYCUXKUYFMUXRHEFTWOWPWREGWSVGVHZWTZXAZXFRFFWBPFUMPZMUWEFJXBWEZXCUWELDUXD
      UXFRQQFFFUVQUVQUXOUXOUWELDUXDFQFFQUVQTUVQTUXPUXSUYAUXPUXSUYAUWELDOUXBVTFF
      FFFTTUXSUXSUWELDOFFFTTTUXSUXSUXSOTMZUWEXDWEXFUYBVTUYJMUWEFJXGWEXCWNUWELDU
      XEUVMQQQFUVQUVQUXOUXOUWELDQQUVQUVQUXOUXOXEUWEQUXKUMPZQFUMPZUVMFVEMUYMUYNW
      IFJXHEQFXIXJUWEUVMUWAUYMUWIGUXKQUMKXKXLXMZXNUYKXCSUYJMUWEFJXPWEXCUWEUXQUX
      IXOEWIZUYCUXMUXNXQUXSUWEUVQUVQUJZEUXIWGZUYPUWEUXHEMZDUVQUNLUVQUNUYRUWEUYS
      LDUVQUVQUWEUXEUVQMZUXBUVQMZUQZUQZUVNEMZUXFEMUXBBUDZRPZUXDCUDZRPZSPZEMZCEU
      NBEUNZUYSUWEVUDVUBUYHVHVUCUXFUWLEVUCUVQUWLUXEUVMUWEUWQVUBUWSVHUWEUYTVUAUT
      XRUWEUYEVUBUYGVHWTAVUAVUKUWDUYTAVUAUQVUJBCEEAVUEEMZVUGEMZUQVUAVUJAVULVUMV
      UAVUJAVULVUMVUAVUJIXSXTYAYBUUAVUJUYSUXCVUHSPZEMBCUVNUXFEEVUEUVNUFZVUIVUNE
      VUOVUFUXCVUHSVUEUVNUXBRYCYDYEVUGUXFUFZVUNUXHEVUPVUHUXGUXCSVUGUXFUXDRYCYFY
      EUUBUUCYBLDUVQUVQUXHEUXIUXIVIZUUDVKUYQEUXIUUEVGUYDEUXIUXJFTUUFUUGUUHGUXKU
      XJUMKXKUUIUWEUBUDZUVQMZUQZVURNUXIPZNUVNRPZOVURUVMUEZRPZSPZNVVCSPVVCVUTVUS
      UWRVVAVVEUFUWEVUSYGZVMLDVURNUVQUVQUXHVVEUXILUBYHZUXBNUFZUQZUXCVVBUXGVVDSV
      VIUXBNUVNRVVGVVHYGZYDVVIUXDOUXFVVCRVVIUXDONVTPOVVIUXBNOVTVVJYFUUJYIVVIUXE
      VURUVMVVGVVHYJYKYLYLVUQVVBVVDSYMYNVPVUTVVBNVVDVVCSVUTUVNUWEUVNTMVUSUYIVHZ
      YOVUTVVCUWEUVQTVURUVMUWEUVMUYNMUVQTUVMWGUYOUVMQFUVQTVLTFUXRUUKVOVGUULZYPY
      LVUTVVCVVLUUMYRVUTVUROUXIPZOUVNRPZNVVCRPZSPZUVNNSPZVURUVRUEZVUTVUSOUVQMZV
      VMVVPUFVVFYQLDVUROUVQUVQUXHVVPUXIVVGUXBOUFZUQZUXCVVNUXGVVOSVWAUXBOUVNRVVG
      VVTYGZYDVWAUXDNUXFVVCRVWAUXDOOVTPNVWAUXBOOVTVWBYFUUQYIVWAUXEVURUVMVVGVVTY
      JYKYLYLVUQVVNVVOSYMYNVPVUTVVNUVNVVONSVUTUVNVVKYPZVUTVVCVVLYOYLVUTVVQUVNVV
      RVUTUVNVVKUUNVUSVVRUVNUFUWEUVQUVNVURNUVMUURUUOUUPUUSYRVUTNVURUXIPZVURUVNR
      PZOVURVTPZUVNRPZSPZUVNVUTUWRVUSVWDVWHUFVMVVFLDNVURUVQUVQUXHVWHUXIUXENUFZD
      UBYHZUQZUXCVWEUXGVWGSVWKUXBVURUVNRVWIVWJYGZYDVWKUXDVWFUXFUVNRVWKUXBVUROVT
      VWLYFVWKUXENUVMVWIVWJYJYKYLYLVUQVWEVWGSYMYNWPVUTVURVWFSPZUVNRPVVNVWHUVNVU
      TVWMOUVNRVUTVURTMZUYLVWMOUFVUTUVQTVURUXTVVFXMZXDVUROUUTVPYDVUTVURVWFUVNVW
      OVUTUYLVWNVWFTMXDVWOOVURUVGWPVVKUVAVWCYSZYTVUTOVURUXIPZVWEVWFUVORPZSPZUVO
      VUTVVSVUSVWQVWSUFYQVVFLDOVURUVQUVQUXHVWSUXIUXEOUFZVWJUQZUXCVWEUXGVWRSVXAU
      XBVURUVNRVWTVWJYGZYDVXAUXDVWFUXFUVORVXAUXBVUROVTVXBYFVXAUXEOUVMVWTVWJYJYK
      YLYLVUQVWEVWRSYMYNWPVUTVWHUVNVWSUVOVWPVUTVWGVWRVWESVUTUVNUVOVWFRAUWCUVPVU
      SUVBZYFYFVXCYSYTUVCUWGUXIUVDVGUVMUVRGUVEUVFUVHUVIUAGUVJUVK $.
  $}

  ${
    $d t J $.  $d t x y K $.  $d t x y P $.  $d t x y R $.  $d t x y S $.
    blsconn.j $e |- J = ( TopOpen ` CCfld ) $.
    blsconn.s $e |- S = ( P ( ball ` ( abs o. - ) ) R ) $.
    blsconn.k $e |- K = ( J |`t S ) $.
    $( An open ball in the complex numbers is simply connected.  (Contributed
       by Mario Carneiro, 12-Feb-2015.) $)
    blsconn $p |- ( ( P e. CC /\ R e. RR* ) -> K e. SConn ) $=
      ( vx vy vt cc wcel cxr wa cabs cmin ccom cfv cv cbl cxmt wss cnxmet blssm
      co mp3an1 syl5eqss blcvx cvxsconn ) ALMZBNMZOZIJKCDEUMCABPQRZUASUFZLGUNLU
      BSMUKULUOLUCUDUNABLUEUGUHITJTABCKTGUIFHUJ $.
  $}

  ${
    $d r u x y J $.
    cnllysconn.j $e |- J = ( TopOpen ` CCfld ) $.
    $( The topology of the complex numbers is locally simply connected.
       (Contributed by Mario Carneiro, 2-Mar-2015.) $)
    cnllysconn $p |- J e. Locally SConn $=
      ( vy vu vx vr csconn wcel cv crest co wa wrex wral cfv wss crp cc syl3anc
      cnxmet clly ctop cpw cnfldtop cabs cmin ccom cxmt cnfldtopn mopni2 mp3an1
      cin cbl cxr ctopon cnfldtopon simpll toponss sylancr simplr rpxr ad2antrl
      a1i sseldd blopn simprr vex elpw2 sylibr elind simprl blcntr eqid blsconn
      syl2anc wceq eleq2 oveq2 eleq1d anbi12d syl12anc rexlimddv rgen2 mpbir2an
      rspcev islly ) AGUAHAUBHCIZDIZHZAWHJKZGHZLZDAEIZUCZULZMZCWMNEANABUDWPECAW
      MWMAHZWGWMHZLZWGFIZUEUFUGZUMOKZWMPZWPFQXARUHOHZWQWRXCFQMTFWMXAWGARABUIZUJ
      UKWSWTQHZXCLZLZXBWOHWGXBHZAXBJKZGHZWPXHAWNXBXHXDWGRHZWTUNHZXBAHXDXHTVCZXH
      WMRWGXHARUOOHWQWMRPABUPWQWRXGUQWMARURUSWQWRXGUTVDZXFXMWSXCWTVAVBZXAWGWTAR
      XEVESXHXCXBWNHWSXFXCVFXBWMEVGVHVIVJXHXDXLXFXIXNXOWSXFXCVKXAWGWTRVLSXHXLXM
      XKXOXPWGWTXBAXJBXBVMXJVMVNVOWLXIXKLDXBWOWHXBVPZWIXIWKXKWHXBWGVQXQWJXJGWHX
      BAJVRVSVTWEWAWBWCECDGAWFWD $.
  $}

  ${
    $d s t w x y z A $.  $d s t w x y z J $.
    resconn.1 $e |- J = ( ( topGen ` ran (,) ) |`t A ) $.
    $( A subset of ` RR ` is simply connected iff it is connected.
       (Contributed by Mario Carneiro, 9-Mar-2015.) $)
    resconn $p |- ( A C_ RR -> ( J e. SConn <-> J e. Conn ) ) $=
      ( vx vy vt cr wcel wa co adantr cc cv c1 cmul caddc wral oveq2 cle wbr vz
      vw vs wss csconn cconn cpconn sconnpconn pconnconn syl ccnfld ctopn crest
      cfv wceq cioo crn ctg eqid rerest syl6eqr simpl ax-resscn syl6ss cc0 cicc
      w3a cmin df-3an weq oveqan12d eleq1d ralbidv unitssre sstri sseldi simpr2
      simpr sseldd mulcld ax-1cn subcl sylancr simpr1 nncan oveq1d oveq2d iirev
      addcomd eqtr4d adantl eleq1i reconn syl5bb biimpa r19.21bi anasss simplll
      3adantr3 remulcld resubcl readdcld pncan3 sylancl adddird mulid2d 3eqtr3d
      1re recnd elicc2i sylib simp3d wb subge0 mpbird simplr3 lemul2ad leadd2dd
      eqbrtrrd simp2d leadd1dd breqtrd elicc2 syl2anc mpbir3and ralrimiva oveq1
      oveq12d sylc eqeltrd cbvralv wloglei sylan2b cvxsconn eqeltrrd ex impbid2
      0re rspcv ) AGUDZBUEHZBUFHZUUABUGHUUBBUHBUIUJYTUUBUUAYTUUBIZUKULUNZAUMJZB
      UEYTUUEBUOUUBYTUUEUPUQURUNZAUMJZBAUUFUUDUUDUSZUUFUSUTCVAKUUCDEFAUUDUUEUUC
      AGLYTUUBVBZVCVDZDMZAHZEMZAHZFMZVENVFJZHZVGUUCUULUUNIZUUQIUUOUUKOJZNUUOVHJ
      ZUUMOJZPJZAHZUULUUNUUQVIUUCUURUUQUVCUUCUURIUVCFUUPUUCUUOUAMZOJZUUTUBMZOJZ
      PJZAHZFUUPQUVCFUUPQZUUOUUMOJZUUTUUKOJZPJZAHZFUUPQZDEUAUBAUADVJZUBEVJZIZUV
      IUVCFUUPUVRUVHUVBAUVPUVQUVEUUSUVGUVAPUVDUUKUUOORUVFUUMUUTORVKVLVMUAEVJZUB
      DVJZIZUVIUVNFUUPUWAUVHUVMAUVSUVTUVEUVKUVGUVLPUVDUUMUUOORUVFUUKUUTORVKVLVM
      UUIUUCUULUUNUUKUUMSTZVGZIZUCMZUUMOJZNUWEVHJZUUKOJZPJZAHZUCUUPQUVOUWDUWJUC
      UUPUWDUWEUUPHZIZUWIUWHNUWGVHJZUUMOJZPJZAUWLUWIUWHUWFPJUWOUWLUWFUWHUWLUWEU
      UMUWLUUPLUWEUUPGLVNVCVOUWDUWKVRVPZUWDUUMLHZUWKUWDALUUMUUCALUDUWCUUJKZUUCU
      ULUUNUWBVQZVSZKVTUWLUWGUUKUWLNLHZUWELHZUWGLHWAUWPNUWEWBWCUWDUUKLHZUWKUWDA
      LUUKUWRUUCUULUUNUWBWDZVSZKVTWIUWLUWNUWFUWHPUWLUWMUWEUUMOUWLUXAUXBUWMUWEUO
      WAUWPNUWEWEWCWFWGWJUWLUWGUUPHZUVJUWOAHZUWKUXFUWDUWEWHWKUWDUVJUWKUWDUVCFUU
      PUWDUUQIZUUKUUMVFJZAUVBUWDUXIAUDZUUQUUCUULUUNUXJUWBUUCUULUUNUXJUUCUULIUXJ
      EAUUCUXJEAQZDAYTUUBUXKDAQZUUBUUGUFHYTUXLBUUGUFCWLDEAWMWNWOWPWPWQWSKUXHUVB
      UXIHZUVBGHZUUKUVBSTZUVBUUMSTZUXHUUSUVAUXHUUOUUKUXHUUPGUUOVNUWDUUQVRZVPZUX
      HAGUUKYTUUBUWCUUQWRZUWDUULUUQUXDKVSZWTZUXHUUTUUMUXHNGHZUUOGHZUUTGHXHUXRNU
      UOXAWCZUXHAGUUMUXSUWDUUNUUQUWSKVSZWTZXBUXHUUSUVLPJZUUKUVBSUXHUUOUUTPJZUUK
      OJNUUKOJUYGUUKUXHUYHNUUKOUXHUUOLHUXAUYHNUOUXHUUOUXRXIZWAUUONXCXDZWFUXHUUO
      UUTUUKUYIUXHUUTUYDXIZUWDUXCUUQUXEKZXEUXHUUKUYLXFXGUXHUVLUVAUUSUXHUUTUUKUY
      DUXTWTUYFUYAUXHUUKUUMUUTUXTUYEUYDUXHVEUUTSTZUUONSTZUXHUYCVEUUOSTZUYNUXHUU
      QUYCUYOUYNVGUXQVENUUOYRXHXJXKZXLUXHUYBUYCUYMUYNXMXHUXRNUUOXNWCXOUULUUNUWB
      UUCUUQXPZXQXRXSUXHUVBUVKUVAPJZUUMSUXHUUSUVKUVAUYAUXHUUOUUMUXRUYEWTUYFUXHU
      UKUUMUUOUXTUYEUXRUXHUYCUYOUYNUYPXTUYQXQYAUXHUYHUUMOJNUUMOJUYRUUMUXHUYHNUU
      MOUYJWFUXHUUOUUTUUMUYIUYKUWDUWQUUQUWTKZXEUXHUUMUYSXFXGYBUXHUUKGHUUMGHUXMU
      XNUXOUXPVGXMUXTUYEUUKUUMUVBYCYDYEVSYFZKUVCUXGFUWGUUPUUOUWGUOZUVBUWOAVUAUU
      SUWHUVAUWNPUUOUWGUUKOYGVUAUUTUWMUUMOUUOUWGNVHRWFYHVLYSYIYJYFUWJUVNUCFUUPU
      CFVJZUWIUVMAVUBUWFUVKUWHUVLPUWEUUOUUMOYGVUBUWGUUTUUKOUWEUUONVHRWFYHVLYKXK
      UYTYLWPWQYMUUHUUEUSYNYOYPYQ $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( An open interval is simply connected.  (Contributed by Mario Carneiro,
       9-Mar-2015.) $)
    ioosconn $p |- ( ( topGen ` ran (,) ) |`t ( A (,) B ) ) e. SConn $=
      ( vx vy cv cicc co cioo wss wral crn ctg cfv csconn wcel iccssioo2 rgen2a
      crest cr wb ioossre cconn eqid resconn reconn bitr2d ax-mp mpbi ) CEZDEZF
      GABHGZIZDUKJCUKJZHKLMUKRGZNOZULCDUKABUIUJPQUKSIZUMUOTABUAUPUOUNUBOUMUKUNU
      NUCUDCDUKUEUFUGUH $.
  $}

  $( A closed interval is simply connected.  (Contributed by Mario Carneiro,
     9-Mar-2015.) $)
  iccsconn $p |- ( ( A e. RR /\ B e. RR ) ->
                         ( ( topGen ` ran (,) ) |`t ( A [,] B ) ) e. SConn ) $=
    ( cr wcel wa cioo crn ctg cfv cicc co crest csconn cconn iccconn wb iccssre
    wss eqid resconn syl mpbird ) ACDBCDEZFGHIABJKZLKZMDZUENDZABOUCUDCRUFUGPABQ
    UDUEUESTUAUB $.

  $( The real numbers are simply connected.  (Contributed by Mario Carneiro,
     9-Mar-2015.) $)
  retopsconn $p |- ( topGen ` ran (,) ) e. SConn $=
    ( cioo crn ctg cfv cmnf cpnf co crest csconn ctop wcel wceq retop cr ioomax
    cuni uniretop eqtri restid ax-mp ioosconn eqeltrri ) ABCDZEFAGZHGZUCIUCJKUE
    UCLMUCJUDUDNUCPOQRSTEFUAUB $.

  ${
    $d a b u v x y z A $.  $d a b u v x y z B $.
    $( A closed interval is locally simply connected.  (Contributed by Mario
       Carneiro, 10-Mar-2015.) $)
    iccllysconn $p |- ( ( A e. RR /\ B e. RR ) ->
                 ( ( topGen ` ran (,) ) |`t ( A [,] B ) ) e. Locally SConn ) $=
      ( vz vx vy vu vv cr wcel wa cv co wss cioo crest csconn wrex wral cxr wb
      va vb cicc cin crn ctg cfv w3a clly simprl simprr sseldi tg2 syl2anc wceq
      inss1 wi cxp cpw wf wfn ioof ffn ovelrn mp2b simprrr syl5ss ineq1d oveq2d
      simprrl ioossre cconn eqid resconn reconn bitrd ax-mp mpbi ssralv ralimdv
      ioosconn syld mp1i inss2 iccconn iccssre syl mpbid ad2antrr mpsyl 2ralbii
      ssin r19.26-2 bitr3i sylanbrc sstri sylibr eqeltrd exp32 rexlimdvw syl5bi
      3jca reximdvai ctb retopbas bastg syl6 mpd ralrimivva ctop cvv retop ovex
      ssrexv subislly mp2an ) AHIBHIJZCKZABUCLZUDZDKZMZEKZXRIZNUEZUFUGZXTOLZPIZ
      UHZCYFQZEYAXSUDZRDYFRZYFXSOLZPUIIZXQYJDEYFYKXQYAYFIZYCYKIZJZJZYDXRYAMZJZC
      YEQZYJYRYOYCYAIUUAXQYOYPUJYRYKYAYCYAXSUPXQYOYPUKULCYAYEYCUMUNYRUUAYICYEQZ
      YJYRYTYICYEXRYEIZXRUAKZUBKZNLZUOZUBSQZUASQZYRYTYIUQZSSURZHUSZNUTNUUKVAUUC
      UUITVBUUKUULNVCUAUBSSXRNVDVEYRUUHUUJUASYRUUGUUJUBSYRUUGYTYIYRUUGYTJZJZYBY
      DYHUUNXTXRYAXRXSUPYRUUGYDYSVFVGYRUUGYDYSVJUUNYGYFUUFXSUDZOLZPUUNXTUUOYFOU
      UNXRUUFXSYRUUGYTUJVHVIUUNFKGKUCLZUUOMZGUUORFUUORZUUPPIZUUNUUQUUFMZGUUORZF
      UUORZUUQXSMZGUUORZFUUORZUUSUVAGUUFRZFUUFRZUVCUUNYFUUFOLZPIZUVHUUDUUEWAUUF
      HMZUVJUVHTUUDUUEVKZUVKUVJUVIVLIUVHUUFUVIUVIVMVNFGUUFVOVPVQVRUUOUUFMZUVHUV
      CUQUUFXSUPZUVMUVHUVBFUUFRUVCUVMUVGUVBFUUFUVAGUUOUUFVSVTUVBFUUOUUFVSWBVQWC
      UUOXSMZUUNUVDGXSRZFXSRZUVFUUFXSWDXQUVQYQUUMXQYMVLIZUVQABWEXQXSHMUVRUVQTAB
      WFFGXSVOWGWHWIUVOUVQUVEFXSRUVFUVOUVPUVEFXSUVDGUUOXSVSVTUVEFUUOXSVSWBWJUUS
      UVAUVDJZGUUORFUUORUVCUVFJUVSUURFGUUOUUOUUQUUFXSWLWKUVAUVDFGUUOUUOWMWNWOUU
      OHMZUUTUUSTUUOUUFHUVNUVLWPUVTUUTUUPVLIUUSUUOUUPUUPVMVNFGUUOVOVPVQWQWRXBWS
      WTWTXAXCYEXDIYEYFMUUBYJUQXEYEXDXFYICYEYFXNVEXGXHXIYFXJIXSXKIYNYLTXLABUCXM
      DECPXSYFXKXOXPWQ $.

    $( The real numbers are locally simply connected.  (Contributed by Mario
       Carneiro, 10-Mar-2015.) $)
    rellysconn $p |- ( topGen ` ran (,) ) e. Locally SConn $=
      ( vy vz vx va vb cioo csconn wcel wel cv crest co wa cpw wrex wss ctb cxr
      wral rexlimivw crn ctg cfv clly cin retop tg2 retopbas bastg ax-mp simprl
      ctop sseldi simprrr selpw sylibr elind simprrl wceq cxp cr wf wfn wb ioof
      ffn ovelrn mp2b oveq2 ioosconn syl6eqel sylbi ad2antrl jca32 reximdv2 mpd
      ex rgen2 islly mpbir2an ) FUAZUBUCZGUDHWBULHABIZWBBJZKLZGHZMZBWBCJZNZUEZO
      ZAWHSCWBSUFWKCAWBWHWHWBHACIMZWCWDWHPZMZBWAOWKBWHWAAJUGWLWNWGBWAWJWLWDWAHZ
      WNMZWDWJHZWGMWLWPMZWQWCWFWRWBWIWDWRWAWBWDWAQHWAWBPUHWAQUIUJWLWOWNUKUMWRWM
      WDWIHWLWOWCWMUNBWHUOUPUQWLWOWCWMURWOWFWLWNWOWDDJZEJZFLZUSZEROZDROZWFRRUTZ
      VANZFVBFXEVCWOXDVDVEXEXFFVFDERRWDFVGVHXCWFDRXBWFERXBWEWBXAKLGWDXAWBKVIWSW
      TVJVKTTVLVMVNVQVOVPVRCABGWBVSVT $.
  $}

  $( The unit interval is simply connected.  (Contributed by Mario Carneiro,
     9-Mar-2015.) $)
  iisconn $p |- II e. SConn $=
    ( cii cioo crn ctg cfv cc0 c1 cicc crest csconn dfii2 wcel 0re 1re iccsconn
    co cr mp2an eqeltri ) ABCDEFGHPIPZJKFQLGQLTJLMNFGORS $.

  $( The unit interval is locally simply connected.  (Contributed by Mario
     Carneiro, 10-Mar-2015.) $)
  iillysconn $p |- II e. Locally SConn $=
    ( cii cioo crn ctg cfv cc0 c1 cicc crest csconn clly dfii2 wcel iccllysconn
    co cr 0re 1re mp2an eqeltri ) ABCDEFGHOIOZJKZLFPMGPMUAUBMQRFGNST $.

  $( The unit interval is locally connected.  (Contributed by Mario Carneiro,
     6-Jul-2015.) $)
  iinllyconn $p |- II e. N-Locally Conn $=
    ( vx csconn cnlly cconn cii wss wcel cpconn sconnpconn pconnconn syl nllyss
    cv ssriv ax-mp clly llyssnlly iillysconn sselii ) BCZDCZEBDFTUAFABDAMZBGUBH
    GUBDGUBIUBJKNBDLOBPTEBQRSS $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Covering maps
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c CovMap $.

  $( Extend class notation with the class of covering maps. $)
  ccvm $a class CovMap $.

  ${
    $d c j f x k s u v $.
    $( Define the class of covering maps on two topological spaces.  A function
       ` f : c --> j ` is a covering map if it is continuous and for every
       point ` x ` in the target space there is a neighborhood ` k ` of ` x `
       and a decomposition ` s ` of the preimage of ` k ` as a disjoint union
       such that ` f ` is a homeomorphism of each set ` u e. s ` onto ` k ` .
       (Contributed by Mario Carneiro, 13-Feb-2015.) $)
    df-cvm $a |- CovMap = ( c e. Top , j e. Top |-> { f e. ( c Cn j ) |
      A. x e. U. j E. k e. j ( x e. k /\ E. s e. ( ~P c \ { (/) } )
       ( U. s = ( `' f " k ) /\ A. u e. s
         ( A. v e. ( s \ { u } ) ( u i^i v ) = (/) /\
           ( f |` u ) e. ( ( c |`t u ) Homeo ( j |`t k ) ) ) ) ) } ) $.

    $( Lemma for covering maps.  (Contributed by Mario Carneiro,
       13-Feb-2015.) $)
    fncvm $p |- CovMap Fn ( Top X. Top ) $=
      ( vc vj vx vk vs vf vu vv ctop cv wcel cuni wceq c0 cdif wral crest co wa
      csn ccnv cima cin cres chmeo cpw wrex crab ccvm df-cvm ovex rabex fnmpt2i
      ccn ) ABIICJDJZKEJZLFJZUAUOUBMGJZHJUCNMHUPURTOPUQURUDAJZURQRBJZUOQRUERKSG
      UPPSEUSUFNTOUGSDUTUGCUTLPZFUSUTUNRZUHUICHGFBDEAUJVAFVBUSUTUNUKULUM $.
  $}

  ${
    $d a b c d f j k s u v x $.  $d a b c f j k s u x C $.  $d c f j x X $.
    $d a b c f k s u x F $.  $d a b c f j k s u x J $.
    iscvm.1 $e |- S = ( k e. J |->
      { s e. ( ~P C \ { (/) } ) | ( U. s = ( `' F " k ) /\
        A. u e. s ( A. v e. ( s \ { u } ) ( u i^i v ) = (/) /\
           ( F |` u ) e. ( ( C |`t u ) Homeo ( J |`t k ) ) ) ) } ) $.
    $( Change bound variables in the set of even coverings.  (Contributed by
       Mario Carneiro, 17-Feb-2015.) $)
    cvmscbv $p |- S = ( a e. J |->
      { b e. ( ~P C \ { (/) } ) | ( U. b = ( `' F " a ) /\
        A. c e. b ( A. d e. ( b \ { c } ) ( c i^i d ) = (/) /\
           ( F |` c ) e. ( ( C |`t c ) Homeo ( J |`t a ) ) ) ) } ) $=
      ( cv wceq c0 wral crest co wa cuni ccnv cima cin csn cdif cres chmeo wcel
      cpw crab cmpt weq unieq eqeq1d ineq2 cbvralv sneq difeq2d ineq1 raleqbidv
      syl5bb reseq2 oveq1d eleq12d anbi12d difeq1 raleqdv anbi1d cbvrabv imaeq2
      oveq2 raleqbi1dv eqeq2d oveq2d eleq2d anbi2d ralbidv rabbidv syl5eq eqtri
      cbvmptv ) DEGHNZUAZFUBZENZUCZOZBNZANZUDZPOZAWCWIUEZUFZQZFWIUGZCWIRSZGWFRS
      ZUHSZUIZTZBWCQZTZHCUJPUEUFZUKZULIGJNZUAZWEINZUCZOZKNZLNZUDZPOZLXFXKUEZUFZ
      QZFXKUGZCXKRSZGXHRSZUHSZUIZTZKXFQZTZJXDUKZULMEIGXEYFEIUMZXEXGWGOZXQXRXSWR
      UHSZUIZTZKXFQZTZJXDUKYFXCYMHJXDHJUMZWHYHXBYLYNWDXGWGWCXFUNUOXBXNLWCXOUFZQ
      ZYJTZKWCQYNYLXAYQBKWCBKUMZWOYPWTYJWOWIXLUDZPOZLWNQYRYPWLYTALWNALUMWKYSPWJ
      XLWIUPUOUQYRYTXNLWNYOYRWMXOWCWIXKURUSYRYSXMPWIXKXLUTUOVAVBYRWPXRWSYIWIXKF
      VCYRWQXSWRUHWIXKCRVLVDVEVFUQYQYKKWCXFYNYPXQYJYNXNLYOXPWCXFXOVGVHVIVMVBVFV
      JYGYMYEJXDYGYHXJYLYDYGWGXIXGWFXHWEVKVNYGYKYCKXFYGYJYBXQYGYIYAXRYGWRXTXSUH
      WFXHGRVLVOVPVQVRVFVSVTWBWA $.

    iscvm.2 $e |- X = U. J $.
    $( The property of being a covering map.  (Contributed by Mario Carneiro,
       13-Feb-2015.) $)
    iscvm $p |- ( F e. ( C CovMap J ) <->
      ( ( C e. Top /\ J e. Top /\ F e. ( C Cn J ) ) /\ A. x e. X E. k e. J
        ( x e. k /\ ( S ` k ) =/= (/) ) ) ) $=
      ( vf ctop wcel wa co cv wrex wral vc vj ccn cfv wne w3a ccvm anass df-3an
      c0 anbi1i cuni ccnv cima wceq cin csn cdif cres crest chmeo crab elmpt2cl
      cpw df-cvm oveq12 simpr unieqd syl6eqr simpl pweqd oveq1 oveqan12d eleq2d
      difeq1d anbi2d ralbidv rexeqbidv raleqbidv rabeqbidv rabex ovmpt2a cvv id
      ovex pwexg adantr difexg rabexg 3syl fvmpt2 syl2anr neeq1d rabn0 rexbidva
      syl6bb cnveq imaeq1d eqeq2d reseq1 eleq1d anbi12d rexbidv syl6bbr biadan2
      elrab bitr4d 3bitr4ri ) DNOZHNOZPZGDHUCQZOZPZARFRZOZXOEUDZUJUEZPZFHSZAITZ
      PXKXMYAPZPXIXJXMUFZYAPGDHUGQZOZXKXMYAUHYCXNYAXIXJXMUIUKYEXKYBUAUBNNXPJRZU
      LZMRZUMZXOUNZUOZCRZBRUPUJUOBYFYLUQURTZYHYLUSZUARZYLUTQZUBRZXOUTQZVAQZOZPZ
      CYFTZPZJYOVDZUJUQZURZSZPZFYQSZAYQULZTZMYOYQUCQZVBZDHUGGABCMUBFJUAVEZVCXKY
      EGXPYKYMYNDYLUTQZHXOUTQZVAQZOZPZCYFTZPZJDVDZUUEURZSZPZFHSZAITZMXLVBZOZYBX
      KYDUVHGUAUBDHNNUUMUVHUGYODUOZYQHUOZPZUUKUVGMUULXLYODYQHUCVFUVLUUIUVFAUUJI
      UVLUUJHULIUVLYQHUVJUVKVGZVHLVIUVLUUHUVEFYQHUVMUVLUUGUVDXPUVLUUCUVAJUUFUVC
      UVLUUDUVBUUEUVLYODUVJUVKVJVKVOUVLUUBUUTYKUVLUUAUUSCYFUVLYTUURYMUVLYSUUQYN
      UVJUVKYPUUOYRUUPVAYODYLUTVLYQHXOUTVLVMVNVPVQVPVRVPVRVSVTUUNUVGMXLDHUCWEWA
      WBVNXKYBXMXPYGGUMZXOUNZUOZYMGYLUSZUUQOZPZCYFTZPZJUVCSZPZFHSZAITZPUVIXKYAU
      WEXMXKXTUWDAIXKXSUWCFHXKXOHOZPZXRUWBXPUWGXRUWAJUVCVBZUJUEUWBUWGXQUWHUJUWF
      UWFUWHWCOZXQUWHUOXKUWFWDXKUVBWCOZUVCWCOUWIXIUWJXJDNWFWGUVBUUEWCWHUWAJUVCW
      CWIWJFHUWHWCEKWKWLWMUWAJUVCWNWPVPWOVQVPUVGUWEMGXLYHGUOZUVFUWDAIUWKUVEUWCF
      HUWKUVDUWBXPUWKUVAUWAJUVCUWKYKUVPUUTUVTUWKYJUVOYGUWKYIUVNXOYHGWQWRWSUWKUU
      SUVSCYFUWKUURUVRYMUWKYNUVQUUQYHGYLWTXAVPVQXBXCVPXCVQXFXDXGXEXH $.
  $}

  ${
    $d k s u v x C $.  $d k s u x F $.  $d k s u x J $.
    $( Reverse closure for a covering map.  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    cvmtop1 $p |- ( F e. ( C CovMap J ) -> C e. Top ) $=
      ( ccvm co wcel ctop c0 wceq n0i cxp wfn cdm fncvm fndm ax-mp ndmov simpld
      wa nsyl2 ) BACDEZFZAGFZCGFZUBUAHIUCUDSUABJACGDDGGKZLDMUEINUEDOPQTR $.

    $( Reverse closure for a covering map.  (Contributed by Mario Carneiro,
       13-Feb-2015.) $)
    cvmtop2 $p |- ( F e. ( C CovMap J ) -> J e. Top ) $=
      ( ccvm co wcel ctop c0 wceq n0i cxp wfn cdm fncvm fndm ax-mp ndmov simprd
      wa nsyl2 ) BACDEZFZAGFZCGFZUBUAHIUCUDSUABJACGDDGGKZLDMUEINUEDOPQTR $.

    $( A covering map is a continuous function.  (Contributed by Mario
       Carneiro, 13-Feb-2015.) $)
    cvmcn $p |- ( F e. ( C CovMap J ) -> F e. ( C Cn J ) ) $=
      ( vx vk vs vu vv co wcel ctop cv cuni wceq c0 csn cdif wral crest wa ccvm
      ccn w3a ccnv cima cin cres chmeo cpw crab cmpt cfv wne wrex iscvm simplbi
      eqid simp3d ) BACUAIJZAKJZCKJZBACUBIJZUSUTVAVBUCDLELZJVCECFLZMBUDVCUENGLZ
      HLUFONHVDVEPQRBVEUGAVESICVCSIUHIJTGVDRTFAUIOPQUJUKZULOUMTECUNDCMZRDHGAVFE
      BCVGFVFUQVGUQUOUPUR $.
  $}

  ${
    $d a b k s t u v w x y z C $.  $d a b k s t u v w x y z F $.  $d k x y P $.
    $d a b k s t u v w x y z J $.  $d t w x y z S $.  $d k s t u v w x y z U $.
    $d s u v x z T $.  $d a b k s t u v w x y z V $.  $d v W $.  $d x y z X $.
    $d t u v w x y z A $.  $d t v w x y z B $.
    cvmcov.1 $e |- S = ( k e. J |->
      { s e. ( ~P C \ { (/) } ) | ( U. s = ( `' F " k ) /\
        A. u e. s ( A. v e. ( s \ { u } ) ( u i^i v ) = (/) /\
           ( F |` u ) e. ( ( C |`t u ) Homeo ( J |`t k ) ) ) ) } ) $.
    ${
      cvmcov.2 $e |- X = U. J $.
      $( Property of a covering map.  In order to make the covering property
         more manageable, we define here the set ` S ( k ) ` of all even
         coverings of an open set ` k ` in the range.  Then the covering
         property states that every point has a neighborhood which has an even
         covering.  (Contributed by Mario Carneiro, 13-Feb-2015.) $)
      cvmcov $p |- ( ( F e. ( C CovMap J ) /\ P e. X ) ->
        E. x e. J ( P e. x /\ ( S ` x ) =/= (/) ) ) $=
        ( co wcel wa cv c0 wrex wceq ccvm cfv wne wral ctop ccn w3a iscvm eleq1
        simprbi anbi1d rexbidv rspcv mpan9 nfv cuni ccnv cima cin csn cdif cres
        crest chmeo cpw crab cmpt nfmpt1 nfcxfr nfcv nffv nfne nfan eleq2 fveq2
        neeq1d anbi12d cbvrex sylibr ) HDIUANOZEJOZPEGQZOZWBFUBZRUCZPZGISZEAQZO
        ZWHFUBZRUCZPZAISVTWHWBOZWEPZGISZAJUDZWAWGVTDUEOIUEOHDIUFNOUGWPABCDFGHIJ
        KLMUHUJWOWGAEJWHETZWNWFGIWQWMWCWEWHEWBUIUKULUMUNWLWFAGIWIWKGWIGUOGWJRGW
        HFGFGIKQZUPHUQWBURTCQZBQUSRTBWRWSUTVAUDHWSVBDWSVCNIWBVCNVDNOPCWRUDPKDVE
        RUTVAVFZVGLGIWTVHVIGWHVJVKGRVJVLVMWFAUOWHWBTZWIWCWKWEWHWBEVNXAWJWDRWHWB
        FVOVPVQVRVS $.
    $}

    $( Reverse closure for an even covering.  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    cvmsrcl $p |- ( T e. ( S ` U ) -> U e. J ) $=
      ( wcel cv wceq c0 csn cdif wral crest co cfv cdm cuni ccnv cima cin chmeo
      cres wa cpw crab dmmptss elfvdm sseldi ) EFDUALDUBIFGIJMZUCHUDGMZUENBMZAM
      UFONAUOUQPQRHUQUHCUQSTIUPSTUGTLUIBUORUIJCUJOPQUKDKULEFDUMUN $.

    $( One direction of ~ cvmsval .  (Contributed by Mario Carneiro,
       13-Feb-2015.) $)
    cvmsi $p |- ( T e. ( S ` U ) ->
      ( U e. J /\ ( T C_ C /\ T =/= (/) ) /\ ( U. T = ( `' F " U ) /\
        A. u e. T ( A. v e. ( T \ { u } ) ( u i^i v ) = (/) /\
           ( F |` u ) e. ( ( C |`t u ) Homeo ( J |`t U ) ) ) ) ) ) $=
      ( wcel c0 wa wceq cv cdif wral crest co cfv wss cuni ccnv cima cres chmeo
      wne cin csn cvmsrcl crab imaeq2 eqeq2d oveq2 oveq2d eleq2d anbi2d ralbidv
      cpw anbi12d rabbidv fvmptss2 sseli unieq eqeq1d difeq1 raleqdv raleqbi1dv
      anbi1d elrab sylib simpld eldifsn elpwi anim1i syl simprd 3jca ) EFDUAZLZ
      FILECUBZEMUHZNZEUCZHUDZFUEZOZBPZAPUIMOZAEWIUJZQZRZHWIUFZCWISTZIFSTZUGTZLZ
      NZBERZNZABCDEFGHIJKUKWAECUTZLZWCNZWDWAEXBMUJQZLZXDWAXFXAWAEJPZUCZWGOZWJAX
      GWKQZRZWRNZBXGRZNZJXEULZLXFXANVTXOEGIXHWFGPZUEZOZXKWNWOIXPSTZUGTZLZNZBXGR
      ZNZJXEULXOFDXPFOZYDXNJXEYEXRXIYCXMYEXQWGXHXPFWFUMUNYEYBXLBXGYEYAWRXKYEXTW
      QWNYEXSWPWOUGXPFISUOUPUQURUSVAVBKVCVDXNXAJEXEXGEOZXIWHXMWTYFXHWEWGXGEVEVF
      XLWSBXGEYFXKWMWRYFWJAXJWLXGEWKVGVHVJVIVAVKVLZVMEXBMVNVLXCWBWCECVOVPVQWAXF
      XAYGVRVS $.

    $( Elementhood in the set ` S ` of all even coverings of an open set in
       ` J ` . ` S ` is an even covering of ` U ` if it is a nonempty
       collection of disjoint open sets in ` C ` whose union is the preimage of
       ` U ` , such that each set ` u e. S ` is homeomorphic under ` F ` to
       ` U ` .  (Contributed by Mario Carneiro, 13-Feb-2015.) $)
    cvmsval $p |- ( C e. V -> ( T e. ( S ` U ) <->
      ( U e. J /\ ( T C_ C /\ T =/= (/) ) /\ ( U. T = ( `' F " U ) /\
        A. u e. T ( A. v e. ( T \ { u } ) ( u i^i v ) = (/) /\
           ( F |` u ) e. ( ( C |`t u ) Homeo ( J |`t U ) ) ) ) ) ) ) $=
      ( wcel c0 wa wceq cv wral co cvv cfv wss wne cuni ccnv cima cin cdif cres
      csn crest chmeo w3a cvmsi 3anass cpw crab pwexg difexg rabexg 3syl imaeq2
      id eqeq2d oveq2 oveq2d eleq2d anbi2d ralbidv anbi12d rabbidv fvmptg unieq
      syl2anr eqeq1d difeq1 raleqdv anbi1d raleqbi1dv elrab elpw2g adantr bitrd
      eldifsn wb syl5bb biimprd expimpd syl5bi impbid2 ) CJMZEFDUAZMZFIMZECUBZE
      NUCZOZEUDZHUEZFUFZPZBQZAQUGNPZAEXBUJZUHZRZHXBUIZCXBUKSZIFUKSZULSZMZOZBERZ
      OZUMZABCDEFGHIKLUNXOWNWQXNOZOWKWMWNWQXNUOWKWNXPWMWKWNOZWMXPXQWMEKQZUDZWTP
      ZXCAXRXDUHZRZXKOZBXRRZOZKCUPZNUJZUHZUQZMZXPXQWLYIEWNWNYITMZWLYIPWKWNVCWKY
      FTMYHTMYKCJURYFYGTUSYEKYHTUTVAGFXSWSGQZUFZPZYBXGXHIYLUKSZULSZMZOZBXRRZOZK
      YHUQYIITDYLFPZYTYEKYHUUAYNXTYSYDUUAYMWTXSYLFWSVBVDUUAYRYCBXRUUAYQXKYBUUAY
      PXJXGUUAYOXIXHULYLFIUKVEVFVGVHVIVJVKLVLVNVGYJEYHMZXNOXQXPYEXNKEYHXREPZXTX
      AYDXMUUCXSWRWTXREVMVOYCXLBXREUUCYBXFXKUUCXCAYAXEXREXDVPVQVRVSVJVTXQUUBWQX
      NUUBEYFMZWPOXQWQEYFNWDXQUUDWOWPWKUUDWOWEWNECJWAWBVRWFVRWFWCWGWHWIWJ $.

    $( An even covering is a subset of the topology of the domain (i.e. a
       collection of open sets).  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    cvmsss $p |- ( T e. ( S ` U ) -> T C_ C ) $=
      ( cfv wcel c0 wa wceq cv wral crest co wss cuni ccnv cima cdif cres chmeo
      wne cin csn cvmsi simp2d simpld ) EFDLMZECUAZENUHZUNFIMUOUPOEUBHUCFUDPBQZ
      AQUINPAEUQUJUERHUQUFCUQSTIFSTUGTMOBEROABCDEFGHIJKUKULUM $.

    $( An even covering is nonempty.  (Contributed by Mario Carneiro,
       11-Feb-2015.) $)
    cvmsn0 $p |- ( T e. ( S ` U ) -> T =/= (/) ) $=
      ( cfv wcel c0 wa wceq cv wral crest co wss cuni ccnv cima cdif cres chmeo
      wne cin csn cvmsi simp2d simprd ) EFDLMZECUAZENUHZUNFIMUOUPOEUBHUCFUDPBQZ
      AQUINPAEUQUJUERHUQUFCUQSTIFSTUGTMOBEROABCDEFGHIJKUKULUM $.

    $( An even covering of ` U ` has union equal to the preimage of ` U ` by
       ` F ` .  (Contributed by Mario Carneiro, 11-Feb-2015.) $)
    cvmsuni $p |- ( T e. ( S ` U ) -> U. T = ( `' F " U ) ) $=
      ( cfv wcel wceq cv c0 wral crest co wa cuni ccnv cima cin cdif cres chmeo
      csn wss wne cvmsi simp3d simpld ) EFDLMZEUAHUBFUCNZBOZAOUDPNAEUPUHUEQHUPU
      FCUPRSIFRSUGSMTBEQZUNFIMECUIEPUJTUOUQTABCDEFGHIJKUKULUM $.

    $( An even covering of ` U ` is a disjoint union.  (Contributed by Mario
       Carneiro, 13-Feb-2015.) $)
    cvmsdisj $p |- ( ( T e. ( S ` U ) /\ A e. T /\ B e. T ) ->
      ( A = B \/ ( A i^i B ) = (/) ) ) $=
      ( wcel wceq cin c0 wne wa wral cfv w3a wn df-ne wi cv csn cdif cres crest
      co chmeo cuni ccnv cima wss cvmsi simp3d simprd simpl ralimi sneq difeq2d
      ineq1 eqeq1d raleqbidv rspccva sylan necom eldifsn biimpri sylan2b rspccv
      syl ineq2 syl2im expd 3impia syl5bir orrd ) GHFUANZCGNZDGNZUBZCDOZCDPZQOZ
      WEUCCDRZWDWGCDUDWAWBWCWHWGUEWAWBSZWCWHWGWICAUFZPZQOZAGCUGZUHZTZWCWHSDWNNZ
      WGWABUFZWJPZQOZAGWQUGZUHZTZBGTZWBWOWAXBJWQUIEWQUJUKKHUJUKULUKNZSZBGTZXCWA
      GUMJUNHUOOZXFWAHKNGEUPGQRSXGXFSABEFGHIJKLMUQURUSXEXBBGXBXDUTVAVNXBWOBCGWQ
      COZWSWLAXAWNXHWTWMGWQCVBVCXHWRWKQWQCWJVDVEVFVGVHWHWCDCRZWPCDVIWPWCXISDGCV
      JVKVLWLWGADWNWJDOWKWFQWJDCVOVEVMVPVQVRVSVT $.

    $( Every element of an even covering of ` U ` is homeomorphic to ` U ` via
       ` F ` .  (Contributed by Mario Carneiro, 13-Feb-2015.) $)
    cvmshmeo $p |- ( ( T e. ( S ` U ) /\ A e. T ) ->
      ( F |` A ) e. ( ( C |`t A ) Homeo ( J |`t U ) ) ) $=
      ( wcel cv crest co chmeo wral wceq wa cfv cres cin c0 cdif cuni ccnv cima
      csn wss wne cvmsi simp3d simprd simpr ralimi reseq2 oveq2 eleq12d rspccva
      syl oveq1d sylan ) FGEUAMZIBNZUBZDVEOPZJGOPZQPZMZBFRZCFMICUBZDCOPZVHQPZMZ
      VDVEANUCUDSAFVEUIUERZVJTZBFRZVKVDFUFIUGGUHSZVRVDGJMFDUJFUDUKTVSVRTABDEFGH
      IJKLULUMUNVQVJBFVPVJUOUPVAVJVOBCFVECSZVFVLVIVNVECIUQVTVGVMVHQVECDOURVBUSU
      TVC $.

    $( ` F ` , localized to an element of an even covering of ` U ` , is a
       bijection.  (Contributed by Mario Carneiro, 14-Feb-2015.) $)
    cvmsf1o $p |- ( ( F e. ( C CovMap J ) /\ T e. ( S ` U ) /\ A e. T ) ->
      ( F |` A ) : A -1-1-onto-> U ) $=
      ( co wcel cfv crest ctopon cuni wss ctop ccvm w3a cres chmeo wf1o cvmtop1
      3ad2ant1 eqid toptopon sylib cvmsss 3ad2ant2 sseldd elssuni syl resttopon
      simp3 syl2anc cvmtop2 cvmsrcl cvmshmeo 3adant1 hmeof1o2 syl3anc ) IDJUAMN
      ZFGEONZCFNZUBZDCPMZCQONZJGPMZGQONZICUCZVIVKUDMNZCGVMUEVHDDRZQONZCVOSZVJVH
      DTNZVPVEVFVRVGDIJUFUGDVOVOUHUIUJVHCDNVQVHFDCVFVEFDSVGABDEFGHIJKLUKULVEVFV
      GUQUMCDUNUOCDVOUPURVHJJRZQONZGVSSZVLVHJTNZVTVEVFWBVGDIJUSUGJVSVSUHUIUJVHG
      JNZWAVFVEWCVGABDEFGHIJKLUTULGJUNUOGJVSUPURVFVGVNVEABCDEFGHIJKLVAVBVMVIVKC
      GVCVD $.

    $( The sets of an even covering are clopen in the subspace topology on
       ` T ` .  (Contributed by Mario Carneiro, 14-Feb-2015.) $)
    cvmscld $p |- ( ( F e. ( C CovMap J ) /\ T e. ( S ` U ) /\ A e. T ) ->
      A e. ( Clsd ` ( C |`t ( `' F " U ) ) ) ) $=
      ( vx wcel cuni wss wceq syl2anc cin c0 ccvm co cfv w3a ccnv cima csn cdif
      crest ccld ctop cvmtop1 3ad2ant1 cvmsuni 3ad2ant2 cvmsss eqsstr3d restuni
      unissd eqid difeq1d cun unisng 3ad2ant3 uneq2d uniun undif1 simp3 ssequn2
      snssd sylib syl5eq unieqd eqtrd syl5eqr eqtr3d difss unissi syl5sseq ciun
      wb cv uniiun ineq2i incom iunin2 3eqtr4i wa wne eldifsn wn nesym cvmsdisj
      wo 3expa syl5bi impr sylan2b iuneq2dv 3adant1 iun0 syl6eq uneqdifeq mpbid
      ord cvv uniexg resttop elssuni adantl adantr sseqtrd df-ss sselda elrestr
      eqeltrrd syl3anc ex ssrdv ssdifssd uniopn opncld ) IDJUAUBNZFGEUCZNZCFNZU
      DZDIUEGUFZUIUBZOZFCUGZUHZOZUHZCYIUJUCZYGYHYMUHZYNCYGYHYJYMYGDUKNZYHDOZPYH
      YJQYCYEYQYFDIJULUMZYGYHFOZYRYEYCYTYHQZYFABDEFGHIJKLUNUOZYGFDYEYCFDPYFABDE
      FGHIJKLUPUOZUSUQYHDYRYRUTURRVAYGYMCVBZYHQZYPCQZYGYMYKOZVBZUUDYHYGUUGCYMYF
      YCUUGCQYECFVCVDVEYGUUHYLYKVBZOZYHYLYKVFYGUUJYTYHYGUUIFYGUUIFYKVBZFFYKVGYG
      YKFPUUKFQYGCFYCYEYFVHVJYKFVIVKVLVMUUBVNVOVPYGYMYHPYMCSZTQUUEUUFWAYGYTYMYH
      YLFFYKVQVRUUBVSYGUULMYLCMWBZSZVTZTCYMSCMYLUUMVTZSUULUUOYMUUPCMYLWCWDYMCWE
      MYLCUUMWFWGYGUUOMYLTVTZTYEYFUUOUUQQYCYEYFWHZMYLUUNTUUMYLNUURUUMFNZUUMCWIZ
      WHUUNTQZUUMFCWJUURUUSUUTUVAUUTCUUMQZWKUURUUSWHZUVAUUMCWLUVCUVBUVAYEYFUUSU
      VBUVAWNABCUUMDEFGHIJKLWMWOXEWPWQWRWSWTMYLXAXBVLYMCYHXCRXDVPYGYIUKNZYMYINZ
      YNYONYGYQYHXFNZUVDYSYGYTYHXFUUBYEYCYTXFNYFFYDXGUOXPZYHDXFXHRZYGUVDYLYIPUV
      EUVHYGFYIYKYGMFYIYGUUSUUMYINYGUUSWHZUUMYHSZUUMYIUVIUUMYHPUVJUUMQUVIUUMYTY
      HUUSUUMYTPYGUUMFXIXJYGUUAUUSUUBXKXLUUMYHXMVKUVIYQUVFUUMDNUVJYINYGYQUUSYSX
      KYGUVFUUSUVGXKYGFDUUMUUCXNUUMYHDUKXFXOXQXPXRXSXTYLYIYARYMYIYJYJUTYBRXP $.

    $( An open subset of an evenly covered set is evenly covered.  (Contributed
       by Mario Carneiro, 7-Jul-2015.) $)
    cvmsss2 $p |- ( ( F e. ( C CovMap J ) /\ V e. J /\ V C_ U ) ->
      ( ( S ` U ) =/= (/) -> ( S ` V ) =/= (/) ) ) $=
      ( vy vz vt c0 wcel co wss wa wceq vx vw va vb cfv wne cv wex ccvm n0 ccnv
      w3a cima cin cmpt crn cuni csn cdif wral cres crest chmeo simpl2 wel ctop
      wf simpl1 cvmtop1 syl adantr cvmsss adantl sselda ccn cvmcn cnima syl2anc
      inopn syl3anc fmptd frn cvmsn0 cdm cvv dmmptg inex1g eqeq1i dm0rn0 bitr3i
      eqid necon3bii sylib jca cpw inss2 wb elpw2g mpbiri sspwuni simpl3 imass2
      mprg cvmsuni sseqtr4d wrex weq ineq1 eqeq2d rspcev mpan2 ad2antrl elrnmpt
      inex1 ax-mp sylibr simprr simplr elind eleq2 rexlimdvaa eluni2 3imtr4g ex
      vex mpd ssrdv eqssd eldifsn wi wn equcoms necon3ai wo simpllr simpr inss1
      eqeq1d syl5bi restabs cvmsdisj ord sseq0 mpan syl56 neeq1 inindir syl6eqr
      ineq2 imbi12d syl5ibrcom rexlimdva impd ralrimiv resabs1 cvmshmeo adantll
      elssuni restuni syl5sseq hmeores syl5eqelr incom cnvresima eqtr4i imaeq2i
      a1i wfo wf1o cvmsf1o f1ofo foimacnv syl5eq oveq2d cvmtop2 cvmsrcl oveq12d
      eqtrd eleqtrd ralrimiva rgenw cbvmptv sneq difeq2d raleqbidv reseq2 oveq2
      oveq1d eleq12d anbi12d ralrnmpt cvmscbv cvmsval mpbir3and ne0i exlimdv )
      EDUEZOUFUAUGZUWQPZUAUHGCHUIQPZIHPZIERZULZIDUEZOUFZUAUWQUJUXCUWSUXEUAUXCUW
      SUXEUXCUWSSZLUWRLUGZGUKZIUMZUNZUOZUPZUXDPZUXEUXFUXMUXAUXLCRZUXLOUFZSZUXLU
      QZUXITZUBUGZMUGZUNZOTZMUXLUXSURZUSZUTZGUXSVAZCUXSVBQZHIVBQZVCQZPZSZUBUXLU
      TZSZUWTUXAUXBUWSVDZUXFUXNUXOUXFUWRCUXKVGUXNUXFLUWRUXJCUXKUXFLUAVEZSZCVFPZ
      UXGCPUXICPZUXJCPUXFUYQUYOUXFUWTUYQUWTUXAUXBUWSVHZCGHVIVJZVKUXFUWRCUXGUWSU
      WRCRUXCABCDUWREFGHJKVLVMZVNUXFUYRUYOUXFGCHVOQPZUXAUYRUXFUWTVUBUYSCGHVPVJU
      YNIGCHVQVRVKZUXGUXICVSVTUXKWKZWAUWRCUXKWBVJUXFUWROUFZUXOUWSVUEUXCABCDUWRE
      FGHJKWCVMUWROUXLOUWROTUXKWDZOTUXLOTVUFUWROUXJWEPVUFUWRTLUWRLUWRUXJWEWFUXG
      UXIUWRWGXCWHUXKWIWJWLWMWNUXFUXRUYLUXFUXQUXIUXFUXLUXIWOZRZUXQUXIRUXFUWRVUG
      UXKVGVUHUXFLUWRUXJVUGUXKUYPUXJVUGPZUXJUXIRZUXGUXIWPUYPUYRVUIVUJWQVUCUXJUX
      ICWRVJWSVUDWAUWRVUGUXKWBVJUXLUXIWTWMUXFMUXIUXQUXFUXTUXIPZUXTUXQPZUXFVUKSZ
      UXTUWRUQZPZVULUXFUXIVUNUXTUXFUXIUXHEUMZVUNUXFUXBUXIVUPRUWTUXAUXBUWSXAZIEU
      XHXBVJUWSVUNVUPTUXCABCDUWREFGHJKXDVMXEVNVUMMNVEZNUWRXFMUBVEZUBUXLXFZVUOVU
      LVUMVURVUTNUWRVUMNUAVEZVURSZSZNUGZUXIUNZUXLPZUXTVVEPZVUTVVCVVEUXJTZLUWRXF
      ZVVFVVAVVIVUMVURVVAVVEVVETZVVIVVEWKVVHVVJLVVDUWRLNXGUXJVVEVVEUXGVVDUXIXHZ
      XIXJXKXLVVEWEPZVVFVVIWQVVDUXINYEXNZLUWRUXJVVEUXKWEVUDXMXOXPVVCVVDUXIUXTVU
      MVVAVURXQUXFVUKVVBXRXSVUSVVGUBVVEUXLUXSVVEUXTXTXJVRYANUXTUWRYBUBUXTUXLYBY
      CYFYDYGYHUXFVVEUXTUNZOTZMUXLVVEURZUSZUTZGVVEVAZCVVEVBQZUYHVCQZPZSZNUWRUTZ
      UYLUXFVWCNUWRUXFVVASZVVRVWBVWEVVOMVVQUXTVVQPUXTUXLPZUXTVVEUFZSVWEVVOUXTUX
      LVVEYIVWEVWFVWGVVOVWFUXTUXJTZLUWRXFZVWEVWGVVOYJZUXTWEPVWFVWIWQMYELUWRUXJU
      XTUXKWEVUDXMXOVWEVWHVWJLUWRVWEUYOSZVWJVWHUXJVVEUFZVVDUXGUNZUXIUNZOTZYJVWL
      NLXGZYKVWKVWMOTZVWOVWPUXJVVEUXJVVETLNVVKYLYMVWKVWPVWQVWKUWSVVAUYOVWPVWQYN
      UXCUWSVVAUYOYOUXFVVAUYOXRVWEUYOYPABVVDUXGCDUWREFGHJKUUAVTUUBVWNVWMRVWQVWO
      VWMUXIYQVWNVWMUUCUUDUUEVWHVWGVWLVVOVWOUXTUXJVVEUUFVWHVVNVWNOVWHVVNVVEUXJU
      NVWNUXTUXJVVEUUIVVDUXGUXIUUGUUHYRUUJUUKUULYSUUMYSUUNVWEVVSCVVDVBQZVVEVBQZ
      HEVBQZGVVDVAZVVEUMZVBQZVCQZVWAVWEVVSVXAVVEVAZVXDVVEVVDRZVXEVVSTVVDUXIYQZG
      VVEVVDUUOXOVWEVXAVWRVWTVCQPZVVEVWRUQZRVXEVXDPUWSVVAVXHUXCABVVDCDUWREFGHJK
      UUPUUQVWEVVDVVEVXIVXGVWEUYQVVDCUQZRZVVDVXITUXFUYQVVAUYTVKZVWEVVDCPVXKUXFU
      WRCVVDVUAVNVVDCUURVJVVDCVXJVXJWKUUSVRUUTVXAVWRVWTVXIVVEVXIWKUVAVRUVBVWEVW
      SVVTVXCUYHVCVWEUYQVXFVVAVWSVVTTVXLVXFVWEVXGUVGUXFVVAYPZVVEVVDCVFUWRYTVTVW
      EVXCVWTIVBQZUYHVWEVXBIVWTVBVWEVXBVXAVXAUKIUMZUMZIVVEVXOVXAVVEUXIVVDUNVXOV
      VDUXIUVCVVDIGUVDUVEUVFVWEVVDEVXAUVHZUXBVXPITVWEVVDEVXAUVIZVXQVWEUWTUWSVVA
      VXRUXFUWTVVAUYSVKUXCUWSVVAXRVXMABVVDCDUWREFGHJKUVJVTVVDEVXAUVKVJUXFUXBVVA
      VUQVKVVDEIVXAUVLVRUVMUVNUXFVXNUYHTZVVAUXFHVFPZUXBEHPZVXSUXFUWTVXTUYSCGHUV
      OVJVUQUWSVYAUXCABCDUWREFGHJKUVPVMIEHVFHYTVTVKUVRUVQUVSWNUVTVVLNUWRUTUYLVW
      DWQVVLNUWRVVMUWAUYKVWCNUBUWRVVEUXKWELNUWRUXJVVEVVKUWBUXSVVETZUYEVVRUYJVWB
      VYBUYBVVOMUYDVVQVYBUYCVVPUXLUXSVVEUWCUWDVYBUYAVVNOUXSVVEUXTXHYRUWEVYBUYFV
      VSUYIVWAUXSVVEGUWFVYBUYGVVTUYHVCUXSVVECVBUWGUWHUWIUWJUWKXOXPWNUXFUYQUXMUX
      AUXPUYMULWQUYTMUBCDUXLIUCGHVFUDABCDFGHJUCUDUBMKUWLUWMVJUWNUXDUXLUWOVJYDUW
      PYS $.

    $( The covering map property can be restricted to an open subset.
       (Contributed by Mario Carneiro, 7-Jul-2015.) $)
    cvmcov2 $p |- ( ( F e. ( C CovMap J ) /\ U e. J /\ P e. U ) ->
      E. x e. ~P U ( P e. x /\ ( S ` x ) =/= (/) ) ) $=
      ( vy wcel cv cfv c0 wne wa adantr ccvm co w3a wrex cuni simp1 simp3 simp2
      cpw elunii syl2anc eqid cvmcov cin wss inss2 vex inex1 elpw mpbir simprrl
      a1i elind simprrr ctop cvmtop2 syl simprl inopn syl3anc inss1 cvmsss2 mpd
      wi wceq eleq2 fveq2 neeq1d anbi12d rspcev syl12anc rexlimddv ) IDJUAUBNZG
      JNZEGNZUCZEMOZNZWGFPQRZSZEAOZNZWKFPZQRZSZAGUIZUDZMJWFWCEJUEZNZWJMJUDWCWDW
      EUFZWFWEWDWSWCWDWEUGZWCWDWEUHZEGJUJUKMBCDEFHIJWRKLWRULUMUKWFWGJNZWJSZSZWG
      GUNZWPNZEXFNZXFFPZQRZWQXGXEXGXFGUOWGGUPXFGWGGMUQURUSUTVBXEWGGEWFXCWHWIVAW
      FWEXDXATVCXEWIXJWFXCWHWIVDXEWCXFJNZXFWGUOZWIXJVNWFWCXDWTTZXEJVENZXCWDXKXE
      WCXNXMDIJVFVGWFXCWJVHWFWDXDXBTWGGJVIVJXLXEWGGVKVBBCDFWGHIJXFKLVLVJVMWOXHX
      JSAXFWPWKXFVOZWLXHWNXJWKXFEVPXOWMXIQWKXFFVQVRVSVTWAWB $.

    cvmseu.1 $e |- B = U. C $.
    $( Every element in ` U. T ` is a member of a unique element of ` T ` .
       (Contributed by Mario Carneiro, 14-Feb-2015.) $)
    cvmseu $p |- ( ( F e. ( C CovMap J ) /\
      ( T e. ( S ` U ) /\ A e. B /\ ( F ` A ) e. U ) ) -> E! x e. T A e. x ) $=
      ( vz wcel wa wceq c0 ccvm co cfv w3a wrex wral wreu cuni ccnv cima simpr2
      cv wi simpr3 ccn wf wfn cvmcn adantr eqid cnf ffn elpreima 4syl mpbir2and
      wb simpr1 cvmsuni syl eleqtrrd eluni2 sylib cin wne inelcm cvmsdisj 3expb
      wo sylan ord necon1ad syl5 ralrimivva eleq2 reu4 sylanbrc ) KFLUAUBQZHIGU
      CQZDEQZDKUCIQZUDZRZDAULZQZAHUEZWNDPULZQZRZWMWPSZUMZPHUFAHUFWNAHUGWLDHUHZQ
      WOWLDKUIIUJZXAWLDXBQZWIWJWGWHWIWJUKWGWHWIWJUNWLKFLUOUBQZELUHZKUPKEUQXCWIW
      JRVFWGXDWKFKLURUSKFLEXEOXEUTVAEXEKVBEDIKVCVDVEWLWHXAXBSWGWHWIWJVGZBCFGHIJ
      KLMNVHVIVJADHVKVLWLWTAPHHWRWMWPVMZTVNWLWMHQZWPHQZRZRZWSDWMWPVOXKWSXGTXKWS
      XGTSZWLWHXJWSXLVRZXFWHXHXIXMBCWMWPFGHIJKLMNVPVQVSVTWAWBWCWNWQAPHWMWPDWDWE
      WF $.

    ${
      cvmsiota.2 $e |- W = ( iota_ x e. T A e. x ) $.
      $( Identify the unique element of ` T ` containing ` A ` .  (Contributed
         by Mario Carneiro, 14-Feb-2015.) $)
      cvmsiota $p |- ( ( F e. ( C CovMap J ) /\
        ( T e. ( S ` U ) /\ A e. B /\ ( F ` A ) e. U ) ) ->
          ( W e. T /\ A e. W ) ) $=
        ( wcel cfv wa ccvm co w3a crab crio wreu cvmseu riotacl2 syl5eqel eleq2
        cv syl cbvrabv elrab2 sylib ) KFLUAUBRHIGSRDERDKSIRUCTZMDAUKZRZAHUDZRMH
        RDMRZTUPMURAHUEZUSQUPURAHUFVAUSRABCDEFGHIJKLNOPUGURAHUHULUIDBUKZRZUTBMH
        USVBMDUJURVCABHUQVBDUJUMUNUO $.
    $}

    $( Lemma for ~ cvmopn .  (Contributed by Mario Carneiro, 7-May-2015.) $)
    cvmopnlem $p |- ( ( F e. ( C CovMap J ) /\ A e. C ) -> ( F " A ) e. J ) $=
      ( vx vy co wcel wa cv wss adantr vz vt vw ccvm cima wrex wral cfv c0 cuni
      wne simpll wf ccn cvmcn eqid cnf elssuni syl6sseqr adantl sselda ffvelrnd
      syl cvmcov syl2anc wex crio cin crest cres wceq inss2 resima2 ax-mp chmeo
      n0 simprr simprl cvmsiota syl13anc simpld cvmtop1 simpllr elrestr syl3anc
      cvmshmeo ctop hmeoima wb cvmtop2 ad2antrr cvmsrcl ad2antll restopn2 mpbid
      syl5eqelr wfn inss1 syl5ss simplr simprd elind fnfvima imass2 eleq2 sseq1
      ffn mp1i anbi12d rspcev syl12anc expr exlimdv expimpd rexlimdvw ralrimiva
      syl5bi mpd eleq1 anbi1d rexbidv ralima mpbird eltop2 ) HEIUDOPZCEPZQZHCUE
      ZIPZMRZNRZPZYKYHSZQZNIUFZMYHUGZYGYPUARZHUHZYKPZYMQZNIUFZUACUGZYGUUAUACYGY
      QCPZQZYRUBRZPZUUEFUHZUIUKZQZUBIUFZUUAUUDYEYRIUJZPUUJYEYFUUCULZUUDDUUKYQHY
      GDUUKHUMZUUCYGHEIUNOPZUUMYEUUNYFEHIUOTHEIDUUKLUUKUPZUQVCZTYGCDYQYFCDSZYEY
      FCEUJDCEURLUSZUTZVAZVBUBABEYRFGHIUUKJKUUOVDVEUUDUUIUUAUBIUUDUUFUUHUUAUUHU
      CRZUUGPZUCVFUUDUUFQZUUAUCUUGVPUVCUVBUUAUCUUDUUFUVBUUAUUDUUFUVBQZQZHCYQYJP
      MUVAVGZVHZUEZIPZYRUVHPZUVHYHSZUUAUVEUVIUVHUUESZUVEUVHIUUEVIOZPZUVIUVLQZUV
      EUVHHUVFVJZUVGUEZUVMUVGUVFSUVQUVHVKCUVFVLHUVGUVFVMVNUVEUVPEUVFVIOZUVMVOOP
      ZUVGUVRPZUVQUVMPUVEUVBUVFUVAPZUVSUUDUUFUVBVQZUVEUWAYQUVFPZUVEYEUVBYQDPZUU
      FUWAUWCQUUDYEUVDUULTZUWBUUDUWDUVDUUTTUUDUUFUVBVRMABYQDEFUVAUUEGHIUVFJKLUV
      FUPVSVTZWAZABUVFEFUVAUUEGHIJKWFVEUVEEWGPZUWAYFUVTUVEYEUWHUWEEHIWBVCUWGYEY
      FUUCUVDWCZCUVFEWGUVAWDWEUVGUVPUVRUVMWHVEWPUVEIWGPZUUEIPZUVNUVOWIYGUWJUUCU
      VDYEUWJYFEHIWJTZWKUVBUWKUUDUUFABEFUVAUUEGHIJKWLWMUUEUVHIWNVEWOWAUVEHDWQZU
      VGDSYQUVGPUVJYGUWMUUCUVDYGUUMUWMUUPDUUKHXGVCZWKUVEUVGCDCUVFWRZUVEYFUUQUWI
      UURVCWSUVECUVFYQYGUUCUVDWTUVEUWAUWCUWFXAXBDUVGHYQXCWEUVGCSUVKUVEUWOUVGCHX
      DXHYTUVJUVKQNUVHIYKUVHVKYSUVJYMUVKYKUVHYRXEYKUVHYHXFXIXJXKXLXMXQXNXOXRXPY
      GUWMUUQYPUUBWIUWNUUSYOUUAMUADCHYJYRVKZYNYTNIUWPYLYSYMYJYRYKXSXTYAYBVEYCYG
      UWJYIYPWIUWLMNYHIYDVCYC $.

    cvmfolem.2 $e |- X = U. J $.
    $( Lemma for ~ cvmfo .  (Contributed by Mario Carneiro, 13-Feb-2015.) $)
    cvmfolem $p |- ( F e. ( C CovMap J ) -> F : B -onto-> X ) $=
      ( vx vy wcel cv cfv wceq wa vz vw vt ccvm co wf wrex wral wfo ccn cnf syl
      cvmcn c0 wne cvmcov ex wex n0 cvmsn0 ad2antll sylib cres ccnv wss simprlr
      cuni cvmsss simprr sseldd elssuni syl6sseqr simpll cvmsf1o syl3anc f1ocnv
      wf1o f1of 3syl simprll f1ocnvfv2 syl2anc fvres eqtr3d fveq2 eqeq2d rspcev
      ffvelrnd expr exlimdv mpd syl5bi expimpd rexlimdva syld ralrimiv sylanbrc
      dffo3 ) GDHUDUEPZCIGUFZNQZOQZGRZSZOCUGZNIUHCIGUIWSGDHUJUEPWTDGHUMGDHCILMU
      KULWSXENIWSXAIPZXAUAQZPZXGERZUNUOZTZUAHUGZXEWSXFXLUAABDXAEFGHIJKMUPUQWSXK
      XEUAHWSXGHPZTZXHXJXEXJUBQZXIPZUBURXNXHTZXEUBXIUSXQXPXEUBXNXHXPXEXNXHXPTZT
      ZUCQZXOPZUCURZXEXSXOUNUOZYBXPYCXNXHABDEXOXGFGHJKUTVAUCXOUSVBXSYAXEUCXNXRY
      AXEXNXRYATZTZXAGXTVCZVDZRZCPXAYHGRZSZXEYEXTCYHYEXTDVGZCYEXTDPXTYKVEYEXODX
      TYEXPXODVEXNXHXPYAVFZABDEXOXGFGHJKVHULXNXRYAVIZVJXTDVKULLVLYEXGXTXAYGYEXT
      XGYFVQZXGXTYGVQXGXTYGUFYEWSXPYAYNWSXMYDVMYLYMABXTDEXOXGFGHJKVNVOZXTXGYFVP
      XGXTYGVRVSXNXHXPYAVTZWHZVJYEYHYFRZXAYIYEYNXHYRXASYOYPXTXGXAYFWAWBYEYHXTPY
      RYISYQYHXTGWCULWDXDYJOYHCXBYHSXCYIXAXBYHGWEWFWGWBWIWJWKWIWJWLWMWNWOWPONCI
      GWRWQ $.
  $}

  ${
    $d u v A $.  $d k s u v C $.  $d k s u v F $.  $d k s u v J $.
    $( A covering map is an open map.  (Contributed by Mario Carneiro,
       7-May-2015.) $)
    cvmopn $p |- ( ( F e. ( C CovMap J ) /\ A e. C ) -> ( F " A ) e. J ) $=
      ( vv vu vk vs cuni cv ccnv wceq c0 csn cdif wral crest co wa eqid cin cpw
      cima cres chmeo wcel crab cmpt cvmopnlem ) EFABIZBGDHJZICKGJZUCLFJZEJUAML
      EUKUMNOPCUMUDBUMQRDULQRUERUFSFUKPSHBUBMNOUGUHZGCDHUNTUJTUI $.
  $}

  ${
    $d a b f g k m r s u v w C $.  $d f g G $.  $d a b k m r s t u v w y z J $.
    $d b v w B $.  $d a f g m s t x y z K $.  $d a b k m r s t u v w x y z M $.
    $d a m s t x y z N $.  $d f g x O $.  $d a f g m s t x y z ph $.  $d x Q $.
    $d a b f g k m r s t u v w y z F $.  $d a b m s t y z S $.  $d k s u v U $.
    $d f g P $.  $d x R $.  $d s u v T $.  $d u v W $.  $d a m s t x y z Y $.
    cvmliftmo.b $e |- B = U. C $.
    cvmliftmo.y $e |- Y = U. K $.
    cvmliftmo.f $e |- ( ph -> F e. ( C CovMap J ) ) $.
    cvmliftmo.k $e |- ( ph -> K e. Conn ) $.
    cvmliftmo.l $e |- ( ph -> K e. N-Locally Conn ) $.
    cvmliftmo.o $e |- ( ph -> O e. Y ) $.
    ${
      cvmliftmoi.m $e |- ( ph -> M e. ( K Cn C ) ) $.
      cvmliftmoi.n $e |- ( ph -> N e. ( K Cn C ) ) $.
      cvmliftmoi.g $e |- ( ph -> ( F o. M ) = ( F o. N ) ) $.
      cvmliftmoi.p $e |- ( ph -> ( M ` O ) = ( N ` O ) ) $.
      ${
        cvmliftmolem.1 $e |- S = ( k e. J |->
          { s e. ( ~P C \ { (/) } ) | ( U. s = ( `' F " k ) /\
            A. u e. s ( A. v e. ( s \ { u } ) ( u i^i v ) = (/) /\
               ( F |` u ) e. ( ( C |`t u ) Homeo ( J |`t k ) ) ) ) } ) $.
        ${
          cvmliftmolem.2 $e |- ( ( ph /\ ps ) -> T e. ( S ` U ) ) $.
          cvmliftmolem.3 $e |- ( ( ph /\ ps ) -> W e. T ) $.
          cvmliftmolem.4 $e |- ( ( ph /\ ps ) -> I C_ ( `' M " W ) ) $.
          cvmliftmolem.5 $e |- ( ( ph /\ ps ) -> ( K |`t I ) e. Conn ) $.
          cvmliftmolem.6 $e |- ( ( ph /\ ps ) -> X e. I ) $.
          cvmliftmolem.7 $e |- ( ( ph /\ ps ) -> Q e. I ) $.
          cvmliftmolem.8 $e |- ( ( ph /\ ps ) -> R e. I ) $.
          cvmliftmolem.9 $e |- ( ( ph /\ ps ) -> ( F ` ( M ` X ) ) e. U ) $.
          $( Lemma for ~ cvmliftmo .  (Contributed by Mario Carneiro,
             10-Mar-2015.) $)
          cvmliftmolem1 $p |- ( ( ph /\ ps ) ->
            ( Q e. dom ( M i^i N ) -> R e. dom ( M i^i N ) ) ) $=
            ( vx wa cv cfv wceq crab wcel cin cres ccom adantr fveq1d ccnv cima
            cdm sseldd wfn wb wf ccn cnf syl ffn elpreima simprbda syldan fvco3
            sylan 3eqtr3d simplbda fvres crest cuni eqid cconn wss cnvimass fdm
            syl5sseq sstrd cnrest syl2anc ctopon crn ctop ccvm cvmtop1 toptopon
            co sylib df-ima elssuni cvmsuni sseqtrd imass2 cnveqd cnvco 3eqtr3g
            imaeq1d imaco wfun ffun sseqtr4d funimass3 mpbird syl5eqssr cnrest2
            cvmcn syl3anc mpbid df-ss cvv eqeltrrd fveq2 eqeq12d elrab3 3imtr4d
            eleq2d topopn ssexd elrestr cvmscld conntop restuni eleqtrd eqeltrd
            cvmsss ccld simpr conncn feq2d ffvelrnd 3eqtr4d wf1o cvmsf1o f1fveq
            wf1 f1of1 syl12anc ex fndmin ) ABVDZGVCVEZQVFZUVERVFZVGZVCUBVHZVIZH
            UVIVIZGQRVJVQZVIHUVLVIUVDGQVFZGRVFZVGZHQVFZHRVFZVGZUVJUVKUVDUVOUVRU
            VDUVOVDZUVPMTVKZVFZUVQUVTVFZVGZUVRUVSUVPMVFZUVQMVFZUWAUWBUVDUWDUWEV
            GUVOUVDHMQVLZVFZHMRVLZVFZUWDUWEUVDHUWFUWHAUWFUWHVGBULVMZVNABHUBVIZU
            WGUWDVGZABHQVOZTVPZVIZUWKUVDNUWNHUQVAVRZAUWOUWKUVPTVIZAQUBVSZUWOUWK
            UWQVDVTAUBEQWAZUWRAQPFWBXKZVIUWSUJQPFUBEUEUDWCWDZUBEQWEWDZUBHTQWFWD
            ZWGWHZAUWSUWKUWLUXAUBEHMQWIWJWHABUWKUWIUWEVGZUXDAUBERWAZUWKUXEARUWT
            VIZUXFUKRPFUBEUEUDWCWDZUBEHMRWIWJWHWKVMUVSUWQUWAUWDVGUVDUWQUVOABUWO
            UWQUWPAUWOUWKUWQUXCWLWHVMZUVPTMWMWDUVSUVQTVIZUWBUWEVGUVSHRNVKZVFZUV
            QTUVSHNVIZUXLUVQVGUVDUXMUVOVAVMZHNRWMWDUVSNTHUXKUVSNTUXKWAPNWNXKZWO
            ZTUXKWAUVSGTUXKUXOFMVOZKVPZWNXKZUXPUXPWPUVDUXOWQVIUVOURVMUVDUXKUXOU
            XSWBXKVIZUVOUVDUXKUXOFWBXKVIZUXTUVDUXGNUBWRZUYAAUXGBUKVMUVDNUWNUBUQ
            AUWNUBWRBAQVQZUWNUBQTWSAUWSUYCUBVGUXAUBEQWTWDXAVMXBZNRPFUBUEXCXDUVD
            FEXEVFVIZUXKXFZUXRWRUXREWRUYAUXTVTUVDFXGVIZUYEUVDMFOXHXKVIZUYGAUYHB
            UFVMZFMOXIWDZFEUDXJXLUVDUYFRNVPZUXRRNXMUVDUYKUXRWRZNRVOZUXRVPZWRZUV
            DNUWMUXRVPZUYNUVDNUWNUYPUQUVDTUXRWRZUWNUYPWRUVDTJWOZUXRUVDTJVIZTUYR
            WRUPTJXNWDUVDJKIVFVIZUYRUXRVGUOCDFIJKLMOUCUNXOWDXPZTUXRUWMXQWDXBUVD
            UWMUXQVLZKVPUYMUXQVLZKVPUYPUYNUVDVUBVUCKUVDUWFVOUWHVOVUBVUCUVDUWFUW
            HUWJXRMQXSMRXSXTYAUWMUXQKYBUYMUXQKYBXTXPUVDRYCZNRVQZWRUYLUYOVTUVDUX
            FVUDAUXFBUXHVMZUBERYDWDUVDNUBVUEUYDUVDUXFVUEUBVGVUFUBERWTWDYENUXRRY
            FXDYGYHUVDMVQZUXREMKWSAVUGEVGZBAEOWOZMWAZVUHAMFOWBXKVIZVUJAUYHVUKUF
            FMOYJWDMFOEVUIUDVUIWPWCWDEVUIMWTWDVMXAZUXRUXKUXOFEYIYKYLVMUVDTUXSVI
            UVOUVDTUXRVJZTUXSUVDUYQVUMTVGVUATUXRYMXLUVDUYGUXRYNVITFVIVUMUXSVIUY
            JUVDUXREFUVDUYGEFVIUYJFEUDUUAWDVULUUBUVDJFTUVDUYTJFWRUOCDFIJKLMOUCU
            NUUIWDUPVRTUXRFXGYNUUCYKYOVMUVDTUXSUUJVFVIZUVOUVDUYHUYTUYSVUNUYIUOU
            PCDTFIJKLMOUCUNUUDYKVMUVDGUXPVIUVOUVDGNUXPUTUVDPXGVIZUYBNUXPVGZAVUO
            BAPWQVIVUOUGPUUEWDVMUYDNPUBUEUUFXDZUUGVMUVSGUXKVFZUVNTUVSGNVIZVURUV
            NVGUVDVUSUVOUTVMGNRWMWDUVSUVMUVNTUVDUVOUUKUVDUVMTVIZUVOABGUWNVIZVUT
            UVDNUWNGUQUTVRZAVVAGUBVIZVUTAUWRVVAVVCVUTVDVTUXBUBGTQWFWDZWLWHVMYOU
            UHUULUVSNUXPTUXKUVDVUPUVOVUQVMUUMYGUXNUUNYOZUVQTMWMWDUUOUVSTKUVTUUS
            ZUWQUXJUWCUVRVTUVDVVFUVOUVDTKUVTUUPZVVFUVDUYHUYTUYSVVGUYIUOUPCDTFIJ
            KLMOUCUNUUQYKTKUVTUUTWDVMUXIVVETKUVPUVQUVTUURUVAYLUVBUVDVVCUVJUVOVT
            ABVVAVVCVVBAVVAVVCVUTVVDWGWHUVHUVOVCGUBUVEGVGUVFUVMUVGUVNUVEGQYPUVE
            GRYPYQYRWDUVDUWKUVKUVRVTUXDUVHUVRVCHUBUVEHVGUVFUVPUVGUVQUVEHQYPUVEH
            RYPYQYRWDYSUVDUVLUVIGAUVLUVIVGZBAUWRRUBVSZVVHUXBAUXFVVIUXHUBERWEWDV
            CUBQRUVCXDVMZYTUVDUVLUVIHVVJYTYS $.
        $}

        $( Lemma for ~ cvmliftmo .  (Contributed by Mario Carneiro,
           10-Mar-2015.) $)
        cvmliftmolem2 $p |- ( ph -> M = N ) $=
          ( vx vy vz va vt vb ccn co wcel wf wfn cnf ffn 3syl cv wceq crab wral
          cfv cin cdm ccld inss1 wb wa wrex c0 ccvm cuni adantr ffvelrnda cvmcn
          wne syl eqid syldan cvmcov syl2anc wi wex n0 wss crest cconn w3a ccnv
          crio cima cpw cnlly simprrr cvmsss simprll ffvelrnd cvmsiota syl13anc
          simprrl simpld sseldd cnima simprd elpreima mpbir2and syl3anc simprr1
          nlly2i simplrr adantl adantrr simplll ad2antll elpwid simplr3 simplr2
          adantrrr cvmliftmolem1 impbid anassrs ralrimiva jca expr reximdva mpd
          rexlimdva exlimdv syl5bi expimpd conntop fndmin ssrab2 syl6eqss fveq2
          ctop sseldi isclo mpbird eqeq12d elrab sylanbrc eleqtrrd ne0i connclo
          inss2 eqtr3d rabid2 sylib r19.21bi eqfnfvd ) AUGNKLAKJEUMUNZUOZNDKUPZ
          KNUQZUBKJENDQPURZNDKUSZUTZALUUOUONDLUPLNUQZUCLJENDQPURNDLUSUTZAUGVAZK
          VEZUVDLVEZVBZUGNANUVGUGNVCZVBUVGUGNVDAKLVFVGZNUVHAUVIJNQSAJJVHVEZVFZJ
          UVIJUVJVIAUVIUVKUOZUVDUHVAZUOZUVDUVIUOZUIVAZUVIUOZVJZUIUVMVDZVKZUHJVL
          ZUGNVDZAUWAUGNAUVDNUOZVKZUVEHVEZUJVAZUOZUWFFVEZVMVSZVKZUJIVLZUWAUWDHE
          IVNUNUOZUWEIVOZUOZUWKAUWLUWCRVPAUWCUVEDUOZUWNANDUVDKAUUPUUQUBUUSVTZVQ
          ADUWMUVEHAUWLHEIUMUNUODUWMHUPREHIVRHEIDUWMPUWMWAZURUTVQWBUJBCEUWEFGHI
          UWMOUFUWQWCWDUWDUWJUWAUJIAUWCUWFIUOZUWJUWAWEAUWCUWRVKZVKZUWGUWIUWAUWI
          UKVAZUWHUOZUKWFUWTUWGVKZUWAUKUWHWGUXCUXBUWAUKUWTUWGUXBUWAAUWSUWGUXBVK
          ZUWAAUWSUXDVKZVKZUVNUVMOVAZWHZJUXGWIUNWJUOZWKZUHJVLZOKWLUVEULVAUOULUX
          AWMZWNZWOZVLZUWAUXFJWJWPUOZUXMJUOZUVDUXMUOZUXOAUXPUXETVPUXFUUPUXLEUOU
          XQAUUPUXEUBVPUXFUXAEUXLUXFUXBUXAEWHAUWSUWGUXBWQZBCEFUXAUWFGHIOUFWRVTU
          XFUXLUXAUOZUVEUXLUOZUXFUWLUXBUWOUWGUXTUYAVKAUWLUXERVPUXSUXFNDUVDKAUUQ
          UXEUWPVPZAUWCUWRUXDWSZWTAUWSUWGUXBXCZULBCUVEDEFUXAUWFGHIUXLOUFPUXLWAX
          AXBZXDZXEUXLKJEXFWDUXFUXRUWCUYAUYCUXFUXTUYAUYEXGUXFUUQUURUXRUWCUYAVKV
          JUYBUUTNUVDUXLKXHUTXIUHWJUVDUXMJOXLXJUXFUXKUWAOUXNUXFUXGUXNUOZVKUXJUV
          TUHJUXFUYGUVMJUOZUXJUVTWEUXFUYGUYHVKZUXJUVTUXFUYIUXJVKZVKZUVNUVSUVNUX
          HUXIUYIUXFXKUYKUVRUIUVMUXFUYJUVPUVMUOZUVRAUXEUYJUYLVKZUVRAUXEUYMVKZVK
          ZUVOUVQAUYNBCDEUVDUVPFUXAUWFGHUXGIJKLMUXLUVDNOPQRSTUAUBUCUDUEUFUYNUXB
          AUWSUWGUXBUYMXMXNZAUXEUXTUYMUYFXOZUYOUXGUXMUYMUYGAUXEUYGUYHUXJUYLXPXQ
          XRZUYMUXIAUXEUVNUXHUXIUYIUYLXSXQZUYOUVMUXGUVDUYMUXHAUXEUVNUXHUXIUYIUY
          LXTXQZAUXEUYJUVNUYLUXEUYJVKUVNAUVNUXHUXIUYIUXEXKXNYAXEZVUAUYOUVMUXGUV
          PUYTAUXEUYJUYLWQXEZAUXEUWGUYMUYDXOZYBAUYNBCDEUVPUVDFUXAUWFGHUXGIJKLMU
          XLUVDNOPQRSTUAUBUCUDUEUFUYPUYQUYRUYSVUAVUBVUAVUCYBYCYDYDYEYFYGYDYHYJY
          IYDYGYKYLYMYDYJYIYEAJYSUOZUVINWHUVLUWBVJAJWJUOVUDSJYNVTAUVIUVHNAUURUV
          BUVIUVHVBUVAUVCUGNKLYOWDZUVGUGNYPYQUGUHUIUVIJNQUUAWDUUBZYTAMUVIUOUVIV
          MVSAMUVHUVIAMNUOMKVEZMLVEZVBZMUVHUOUAUEUVGVUIUGMNUVDMVBUVEVUGUVFVUHUV
          DMKYRUVDMLYRUUCUUDUUEVUEUUFUVIMUUGVTAUVKUVJUVIJUVJUUIVUFYTUUHVUEUUJUV
          GUGNUUKUULUUMUUN $.
      $}

      $( A lift of a continuous function from a connected and locally connected
         space over a covering map is unique when it exists.  (Contributed by
         Mario Carneiro, 10-Mar-2015.) $)
      cvmliftmoi $p |- ( ph -> M = N ) $=
        ( vw vr vk vs vu vv vb vm cv cuni ccnv cima wceq cin csn cdif wral cres
        c0 crest co chmeo wcel wa cpw crab cmpt eqid cvmscbv cvmliftmolem2 ) AU
        AUBBCUCEUDUIZUJDUKUCUIZULUMUEUIZUFUIUNUSUMUFVKVMUOUPUQDVMURCVMUTVAEVLUT
        VAVBVAVCVDUEVKUQVDUDCVEUSUOUPVFVGZUGDEFGHIJUHKLMNOPQRSTUFUECVNUCDEUDUGU
        HUBUAVNVHVIVJ $.
    $}

    cvmliftmo.g $e |- ( ph -> G e. ( K Cn J ) ) $.
    cvmliftmo.p $e |- ( ph -> P e. B ) $.
    cvmliftmo.e $e |- ( ph -> ( F ` P ) = ( G ` O ) ) $.
    $( A lift of a continuous function from a connected and locally connected
       space over a covering map is unique when it exists.  (Contributed by
       Mario Carneiro, 10-Mar-2015.)  (Revised by NM, 17-Jun-2017.) $)
    cvmliftmo $p |- ( ph ->
        E* f e. ( K Cn C ) ( ( F o. f ) = G /\ ( f ` O ) = P ) ) $=
      ( vg cv ccom wceq cfv wa weq wi ccn co wral wrmo wcel ccvm ad2antrr cconn
      cnlly simplrl simplrr simprll simprrl simprlr simprrr cvmliftmoi ex coeq2
      eqtr4d ralrimivva eqeq1d fveq1 anbi12d rmo4 sylibr ) AFEUBZUCZGUDZJVNUEZD
      UDZUFZFUAUBZUCZGUDZJVTUEZDUDZUFZUFZEUAUGZUHZUAICUIUJZUKEWIUKVSEWIULAWHEUA
      WIWIAVNWIUMZVTWIUMZUFZUFZWFWGWMWFUFZBCFHIVNVTJKLMAFCHUNUJUMWLWFNUOAIUPUMW
      LWFOUOAIUPUQUMWLWFPUOAJKUMWLWFQUOAWJWKWFURAWJWKWFUSWNVOGWAWMVPVRWEUTWMVSW
      BWDVAVGWNVQDWCWMVPVRWEVBWMVSWBWDVCVGVDVEVHVSWEEUAWIWGVPWBVRWDWGVOWAGVNVTF
      VFVIWGVQWCDJVNVTVJVIVKVLVM $.
  $}

  ${
    $d b v y z B $.  $d a b c f g j k m n s t u v w x y z F $.  $d n y z L $.
    $d f y K $.  $d a b c j k m s u v x y z M $.  $d b f g k m n u v x z P $.
    $d a b c f g j k n s u v y z C $.  $d a f g j n s x y z ph $.  $d z ps $.
    $d b c k m n u v x y z N $.  $d a b f g j k n s u v x z S $.  $d a j X $.
    $d a b f g j k m n s t u v w x y z G $.  $d a b c j k m s u v x y z T $.
    $d a b c f g j k n s u v x z J $.  $d b c k m n u v x y z Q $.
    $d k m x z W $.
    cvmliftlem.1 $e |- S = ( k e. J |->
      { s e. ( ~P C \ { (/) } ) | ( U. s = ( `' F " k ) /\
        A. u e. s ( A. v e. ( s \ { u } ) ( u i^i v ) = (/) /\
           ( F |` u ) e. ( ( C |`t u ) Homeo ( J |`t k ) ) ) ) } ) $.
    cvmliftlem.b $e |- B = U. C $.
    cvmliftlem.x $e |- X = U. J $.
    cvmliftlem.f $e |- ( ph -> F e. ( C CovMap J ) ) $.
    cvmliftlem.g $e |- ( ph -> G e. ( II Cn J ) ) $.
    cvmliftlem.p $e |- ( ph -> P e. B ) $.
    cvmliftlem.e $e |- ( ph -> ( F ` P ) = ( G ` 0 ) ) $.
    ${
      cvmliftlem.n $e |- ( ph -> N e. NN ) $.
      cvmliftlem.t $e |- ( ph ->
        T : ( 1 ... N ) --> U_ j e. J ( { j } X. ( S ` j ) ) ) $.
      cvmliftlem.a $e |- ( ph -> A. k e. ( 1 ... N )
        ( G " ( ( ( k - 1 ) / N ) [,] ( k / N ) ) ) C_ ( 1st ` ( T ` k ) ) ) $.
      cvmliftlem.l $e |- L = ( topGen ` ran (,) ) $.
      ${
        cvmliftlem1.m $e |- ( ( ph /\ ps ) -> M e. ( 1 ... N ) ) $.
        $( Lemma for ~ cvmlift .  In ~ cvmliftlem15 , we picked an ` N ` large
           enough so that the sections ` ( G " [ ( k - 1 ) / N , k / N ] ) `
           are all contained in an even covering, and the function ` T `
           enumerates these even coverings.  So ` 1st `` ( T `` M ) ` is a
           neighborhood of ` ( G " [ ( M - 1 ) / N , M / N ] ) ` , and
           ` 2nd `` ( T `` M ) ` is an even covering of ` 1st `` ( T `` M ) ` ,
           which is to say a disjoint union of open sets in ` C ` whose image
           is ` 1st `` ( T `` M ) ` .  (Contributed by Mario Carneiro,
           14-Feb-2015.) $)
        cvmliftlem1 $p |- ( ( ph /\ ps ) ->
          ( 2nd ` ( T ` M ) ) e. ( S ` ( 1st ` ( T ` M ) ) ) ) $=
          ( wa cfv c1st c2nd cop csn cxp ciun wcel wrel wceq relxp rgenw reliun
          cv wral mpbir c1 cfz co adantr ffvelrnd 1st2nd sylancr eqeltrrd fveq2
          wf opeliunxp2 simprbi syl ) ABULZPIUMZUNUMZWCUOUMZUPZJNJVFZUQZWGHUMZU
          RZUSZUTZWEWDHUMZUTZWBWCWFWKWBWKVAZWCWKUTWCWFVBWOWJVAZJNVGWPJNWHWIVCVD
          JNWJVEVHWBVIQVJVKZWKPIAWQWKIVRBUHVLUKVMZWCWKVNVOWRVPWLWDNUTWNJNWIWDWE
          WMWGWDHVQVSVTWA $.

        cvmliftlem3.3 $e |- W = ( ( ( M - 1 ) / N ) [,] ( M / N ) ) $.
        $( Lemma for ~ cvmlift . ` W = [ ( k - 1 ) / N , k / N ] ` is a subset
           of ` [ 0 , 1 ] ` for each ` M e. ( 1 ... N ) ` .  (Contributed by
           Mario Carneiro, 16-Feb-2015.) $)
        cvmliftlem2 $p |- ( ( ph /\ ps ) -> W C_ ( 0 [,] 1 ) ) $=
          ( wa c1 cmin co cdiv cicc cc0 cr wcel cle wbr wss 0red clt cfz elfznn
          1red cn syl nnred peano2rem cn0 nnm1nn0 adantr nngt0d divge0 syl22anc
          nn0ge0d cmul elfzle2 nncnd mulid1d breqtrrd ledivmul syl112anc mpbird
          wb iccss syl5eqss ) ABUNZRPUOUPUQZQURUQZPQURUQZUSUQZUTUOUSUQZUMWMUTVA
          VBUOVAVBZUTWOVCVDZWPUOVCVDZWQWRVEWMVFWMVJZWMWNVAVBZUTWNVCVDQVAVBZUTQV
          GVDZWTWMPVAVBZXCWMPWMPUOQVHUQVBZPVKVBZULPQVIVLZVMZPVNVLWMWNWMXHWNVOVB
          XIPVPVLWAWMQAQVKVBBUHVQZVMZWMQXKVRZWNQVSVTWMXAPQUOWBUQZVCVDZWMPQXNVCW
          MXGPQVCVDULPUOQWCVLWMQWMQXKWDWEWFWMXFWSXDXEXAXOWJXJXBXLXMPUOQWGWHWIUT
          UOWOWPWKVTWL $.

        cvmliftlem3.m $e |- ( ( ph /\ ps ) -> A e. W ) $.
        $( Lemma for ~ cvmlift .  Since ` 1st `` ( T `` M ) ` is a neighborhood
           of ` ( G " W ) ` , every element ` A e. W ` satisfies
           ` ( G `` A ) e. ( 1st `` ( T `` M ) ) ` .  (Contributed by Mario
           Carneiro, 16-Feb-2015.) $)
        cvmliftlem3 $p |- ( ( ph /\ ps ) ->
          ( G ` A ) e. ( 1st ` ( T ` M ) ) ) $=
          ( wa cima cfv c1st c1 cfz co wcel cmin cdiv cicc wss wral adantr wceq
          cv oveq1 oveq1d oveq12d syl6eqr imaeq2d fveq2 sseq12d rspcv sylc wfun
          fveq2d cdm wi cc0 cii ccn iiuni cnf syl ffun cvmliftlem2 fdm sseqtr4d
          wf funfvima2 syl2anc mpd sseldd ) ABUPZNSUQZQJURZUSURZENURZWTQUTRVAVB
          ZVCNLVKZUTVDVBZRVEVBZXFRVEVBZVFVBZUQZXFJURZUSURZVGZLXEVHZXAXCVGZUMAXO
          BUKVIXNXPLQXEXFQVJZXKXAXMXCXQXJSNXQXJQUTVDVBZRVEVBZQRVEVBZVFVBSXQXHXS
          XIXTVFXQXGXRRVEXFQUTVDVLVMXFQRVEVLVNUNVOVPXQXLXBUSXFQJVQWBVRVSVTWTESV
          CZXDXAVCZUOWTNWAZSNWCZVGYAYBWDWTWEUTVFVBZTNWOZYCAYFBANWFOWGVBVCYFUFNW
          FOYETWHUDWIWJVIZYETNWKWJWTSYEYDABCDFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIU
          JUKULUMUNWLWTYFYDYEVJYGYETNWMWJWNSENWPWQWRWS $.
      $}

      cvmliftlem.q $e |- Q = seq 0 ( ( x e. _V , m e. NN |->
        ( z e. ( ( ( m - 1 ) / N ) [,] ( m / N ) ) |->
          ( `' ( F |` ( iota_ b e. ( 2nd ` ( T ` m ) )
            ( x ` ( ( m - 1 ) / N ) ) e. b ) ) ` ( G ` z ) ) ) ) ,
          ( ( _I |` NN ) u. { <. 0 , { <. 0 , P >. } >. } ) ) $.
      $( Lemma for ~ cvmlift .  The function ` Q ` will be our lifted path,
         defined piecewise on each section ` [ ( M - 1 ) / N , M / N ] ` for
         ` M e. ( 1 ... N ) ` .  For ` M = 0 ` , it is a "seed" value which
         makes the rest of the recursion work, a singleton function mapping
         ` 0 ` to ` P ` .  (Contributed by Mario Carneiro, 15-Feb-2015.) $)
      cvmliftlem4 $p |- ( Q ` 0 ) = { <. 0 , P >. } $=
        ( cc0 cfv cop csn cid cn cres cun cvv cv c1 cmin co cdiv cicc wcel c2nd
        crio ccnv cmpt cmpt2 cseq fveq1i cz wceq 0z seq1 ax-mp eqtri wfn cin c0
        wa fnresi c0ex snex fnsn 0nnn disjsn mpbir snid pm3.2i fvun2 mp3an fvsn
        wn ) UOIUPZUOUOUOHUQZURZUQURZUPZXCXAUOUSUTVAZXDVBZUPZXEXAUOBNVCUTCNVDZV
        EVFVGSVHVGZXISVHVGVIVGCVDPUPOXJBVDUPUBVDVJUBXIKUPVKUPVLVAVMUPVNVOZXGUOV
        PZUPZXHUOIXLUNVQUOVRVJXMXHVSVTXKXGUOWAWBWCXFUTWDXDUOURZWDUTXNWEWFVSZUOX
        NVJZWGXHXEVSUTWHUOXCWIXBWJZWKXOXPXOUOUTVJWTWLUTUOWMWNUOWIWOWPUTXNXFXDUO
        WQWRWCUOXCWIXQWSWC $.

      ${
        cvmliftlem5.3 $e |- W = ( ( ( M - 1 ) / N ) [,] ( M / N ) ) $.
        $( Lemma for ~ cvmlift .  Definition of ` Q ` at a successor.  This is
           a function defined on ` W ` as ` ``' ( T |`` I ) o. G ` where ` I `
           is the unique covering set of ` 2nd `` ( T `` M ) ` that contains
           ` Q ( M - 1 ) ` evaluated at the last defined point, namely
           ` ( M - 1 ) / N ` (note that for ` M = 1 ` this is using the seed
           value ` Q ( 0 ) ( 0 ) = P ` ).  (Contributed by Mario Carneiro,
           15-Feb-2015.) $)
        cvmliftlem5 $p |- ( ( ph /\ M e. NN ) -> ( Q ` M ) = ( z e. W |->
            ( `' ( F |` ( iota_ b e. ( 2nd ` ( T ` M ) )
        ( ( Q ` ( M - 1 ) ) ` ( ( M - 1 ) / N ) ) e. b ) ) ` ( G ` z ) ) ) ) $=
          ( cn wcel wa cfv c1 cmin co cid cres cc0 cop csn cun cvv cv cdiv cicc
          c2nd crio ccnv cmpt cmpt2 cseq cz caddc cuz wceq 0z simpr nnuz fveq2i
          1e0p1 eqtri syl6eleq seqm1 sylancr fveq1i oveq1i 3eqtr4g c0 wn disjsn
          cin 0nnn mpbir wfn fnresi c0ex snex fvun1 mp3an12 fvresi adantl eqtrd
          oveq2d fvexd oveq1d oveq12d syl6eqr fveq2d fveq12d eleq1d riotaeqbidv
          fnsn simpl reseq2d cnveqd fveq1d mpteq12dv eqid eqeltri mptex ovmpt2a
          ovex sylan 3eqtrd ) ASURUSZUTZSIVAZSVBVCVDZIVAZSVEURVFZVGVGHVHZVIZVHV
          IZVJZVAZBNVKURCNVLZVBVCVDZTVMVDZUUETVMVDZVNVDZCVLPVAZOUUGBVLZVAZUDVLZ
          USZUDUUEKVAZVOVAZVPZVFZVQZVAZVRZVSZVDZYRSUVBVDZCUAUUJOYQTVMVDZYRVAZUU
          MUSZUDSKVAZVOVAZVPZVFZVQZVAZVRZYOSUVBUUCVGVTZVAZYQUVOVAZUUDUVBVDZYPUV
          CYOVGWAUSSVGVBWBVDZWCVAZUSUVPUVRWDWEYOSURUVTAYNWFZURVBWCVAUVTWGVBUVSW
          CWIWHWJWKUVBUUCVGSWLWMSIUVOUPWNYRUVQUUDUVBYQIUVOUPWNWOWPYOUUDSYRUVBYO
          UUDSYSVAZSYOURVGVIZWTWQWDZYNUUDUWBWDZUWDVGURUSWRXAURVGWSXBUWAYSURXCUU
          BUWCXCUWDYNUTUWEURXDVGUUAXEYTXFYAURUWCYSUUBSXGXHWMYNUWBSWDAURSXIXJXKX
          LAYRVKUSYNUVDUVNWDAYQIXMBNYRSVKURUVAUVNUVBUUKYRWDZUUESWDZUTZCUUIUUTUA
          UVMUWHUUIUVESTVMVDZVNVDZUAUWHUUGUVEUUHUWIVNUWHUUFYQTVMUWHUUESVBVCUWFU
          WGWFZXNXNZUWHUUESTVMUWKXNXOUQXPUWHUUJUUSUVLUWHUURUVKUWHUUQUVJOUWHUUNU
          VGUDUUPUVIUWHUUOUVHVOUWHUUESKUWKXQXQUWHUULUVFUUMUWHUUGUVEUUKYRUWFUWGY
          BUWLXRXSXTYCYDYEYFUVBYGCUAUVMUAUWJVKUQUVEUWIVNYKYHYIYJYLYM $.

        ${
          cvmliftlem6.1 $e |- ( ( ph /\ ps ) -> M e. ( 1 ... N ) ) $.
          cvmliftlem6.2 $e |- ( ( ph /\ ps ) ->
            ( ( Q ` ( M - 1 ) ) ` ( ( M - 1 ) / N ) ) e.
              ( `' F " { ( G ` ( ( M - 1 ) / N ) ) } ) ) $.
          $( Lemma for ~ cvmlift .  Induction step for ~ cvmliftlem7 .
             Assuming that ` Q ( M - 1 ) ` is defined at ` ( M - 1 ) / N ` and
             is a preimage of ` G ( ( M - 1 ) / N ) ` , the next segment
             ` Q ( M ) ` is also defined and is a function on ` W ` which is a
             lift ` G ` for this segment.  This follows explicitly from the
             definition ` Q ( M ) = ``' ( F |`` I ) o. G ` since ` G ` is in
             ` 1st `` ( F `` M ) ` for the entire interval so that
             ` ``' ( F |`` I ) ` maps this into ` I ` and ` F o. Q ` maps back
             to ` G ` .  (Contributed by Mario Carneiro, 16-Feb-2015.) $)
          cvmliftlem6 $p |- ( ( ph /\ ps ) ->
            ( ( Q ` M ) : W --> B /\ ( F o. ( Q ` M ) ) = ( G |` W ) ) ) $=
            ( vy wa cfv wf ccom cres wceq cv cmin cdiv wcel c2nd crio ccnv cmpt
            c1 cuni wss c1st cfz adantrr cvmliftlem1 cvmsss syl ccvm adantr csn
            co cima wfn wb ccn cvmcn cnf 3syl fniniseg mpbid simpld simprd cicc
            ffn cxr cle wbr cr cn elfznn nnred peano2rem nndivred rexrd clt cc0
            ltm1d nngt0d ltdiv1 syl112anc syl3anc syl6eleqr cvmliftlem3 eqeltrd
            lbicc2 eqid cvmsiota syl13anc sseldd elssuni syl6sseqr wf1o cvmsf1o
            ltled f1ocnv f1of simprr ffvelrnd anassrs fmptd fvres feqmptd cii
            cvmliftlem5 syldan feq1d f1ocnvfv2 syl2anc 3eqtr2rd mpteq2dva fveq2
            mpbird fmptco iiuni cvmliftlem2 fssresd 3eqtr4d jca ) ABVBZUBGTJVCZ
            VDZPUUQVEZQUBVFZVGUUPUURUBGDUBDVHZQVCZPTVPVIWHZUAVJWHZUVCJVCVCZUEVH
            VKUETLVCZVLVCZVMZVFZVNZVCZVOZVDUUPDUBUVKGUVLABUVAUBVKZUVKGVKABUVMVB
            ZVBZUVHGUVKUVOUVHHVQZGUVOUVHHVKUVHUVPVRUVOUVGHUVHUVOUVGUVFVSVCZKVCV
            KZUVGHVRAUVNEFGHIKLMNPQRSTUAUCUDUFUGUHUIUJUKULUMUNUOUPABTVPUAVTWHVK
            ZUVMUSWAZWBZEFHKUVGUVQNPRUDUFWCWDUVOUVHUVGVKZUVEUVHVKZUVOPHRWEWHVKZ
            UVRUVEGVKZUVEPVCZUVQVKUWBUWCVBAUWDUVNUIWFZUWAUVOUWEUWFUVDQVCZVGZUVO
            UVEPVNUWHWGWIVKZUWEUWIVBZABUWJUVMUTWAUVOGUCPVDZPGWJUWJUWKWKUVOUWDPH
            RWLWHVKZUWLUWGHPRWMZPHRGUCUGUHWNZWOGUCPXAGUWHUVEPWPWOWQZWRUVOUWFUWH
            UVQUVOUWEUWIUWPWSAUVNEFUVDGHIKLMNPQRSTUAUBUCUDUFUGUHUIUJUKULUMUNUOU
            PUVTURUVOUVDUVDTUAVJWHZWTWHZUBUVOUVDXBVKUWQXBVKUVDUWQXCXDUVDUWRVKUV
            OUVDUVOUVCUAUVOTXEVKZUVCXEVKZUVOTUVOUVSTXFVKZUVTTUAXGZWDXHZTXIWDZAU
            AXFVKUVNUMWFZXJZXKUVOUWQUVOTUAUXCUXEXJZXKUVOUVDUWQUXFUXGUVOUVCTXLXD
            ZUVDUWQXLXDZUVOTUXCXNUVOUWTUWSUAXEVKXMUAXLXDUXHUXIWKUXDUXCUVOUAUXEX
            HUVOUAUXEXOUVCTUAXPXQWQYKUVDUWQYBXRURXSXTYAUEEFUVEGHKUVGUVQNPRUVHUD
            UFUGUVHYCYDYEWRZYFUVHHYGWDUGYHUVOUVQUVHUVBUVJUVOUVHUVQUVIYIZUVQUVHU
            VJYIUVQUVHUVJVDUVOUWDUVRUWBUXKUWGUWAUXJEFUVHHKUVGUVQNPRUDUFYJXRZUVH
            UVQUVIYLUVQUVHUVJYMWOAUVNEFUVAGHIKLMNPQRSTUAUBUCUDUFUGUHUIUJUKULUMU
            NUOUPUVTURABUVMYNZXTZYOZYFYPZUVLYCYQUUPUBGUUQUVLABUXAUUQUVLVGUUPUVS
            UXAUSUXBWDACDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUU
            AUUBZUUCUUIUUPDUBUVKPVCZVODUBUVAUUTVCZVOUUSUUTUUPDUBUXRUXSABUVMUXRU
            XSVGUVOUXSUVBUVKUVIVCZUXRUVOUVMUXSUVBVGUXMUVAUBQYRWDUVOUXKUVBUVQVKU
            XTUVBVGUXLUXNUVHUVQUVBUVIUUDUUEUVOUVKUVHVKUXTUXRVGUXOUVKUVHPYRWDUUF
            YPUUGUUPDVAUBGUVKVAVHZPVCUXRUUQPUXPUXQUUPVAGUCPAUWLBAUWDUWMUWLUIUWN
            UWOWOWFYSUYAUVKPUUHUUJUUPDUBUCUUTUUPXMVPWTWHZUCUBQAUYBUCQVDZBAQYTRW
            LWHVKUYCUJQYTRUYBUCUUKUHWNWDWFABEFGHIKLMNPQRSTUAUBUCUDUFUGUHUIUJUKU
            LUMUNUOUPUSURUULUUMYSUUNUUO $.
        $}

        $( Lemma for ~ cvmlift .  Prove by induction that every ` Q ` function
           is well-defined (we can immediately follow this theorem with
           ~ cvmliftlem6 to show functionality and lifting of ` Q ` ).
           (Contributed by Mario Carneiro, 14-Feb-2015.) $)
        cvmliftlem7 $p |- ( ( ph /\ M e. ( 1 ... N ) ) ->
          ( ( Q ` ( M - 1 ) ) ` ( ( M - 1 ) / N ) ) e.
            ( `' F " { ( G ` ( ( M - 1 ) / N ) ) } ) ) $=
          ( vy vn c1 cfz co wcel cmin cc0 cdiv cfv ccnv cima wa caddc fzssp1 cc
          csn wceq nncnd adantr ax-1cn npcan sylancl oveq2d syl5sseq cz elfzelz
          simpr wb nnzd elfzm1b syl2anr mpbid sseldd elfznn0 adantl cv wi eleq1
          fveq2 oveq1 fveq12d fveq2d imaeq2d eleq12d imbi12d imbi2d cvmliftlem4
          cn0 sneqd cop a1i nnne0d div0d 0nn0 fvsng sylancr eqtrd eqtr4d wfn wf
          ccn ccvm syl fniniseg mpbir2and cuz syl6eleq cicc cres cle cn syl2anc
          cvmcn wbr oveq1d cxr nndivred rexrd cr clt expr a2d cnf eqeltrd nn0uz
          ffn 3syl a1d id peano2fzr ex imim1d ccom eqid simprlr elfzle2 simprll
          nn0p1nn elfz5 mpbird simprr nn0cnd pncan 3eltr4d cvmliftlem6 peano2re
          nnuz simpld nn0red ltp1d nnred nngt0d ltdiv1 syl112anc ubicc2 syl3anc
          ltled eleqtrrd ffvelrnd simprd reseq2d feq2d fvco3 fvres 3eqtr3d syld
          fveq1d expcom nn0ind impd mpcom syldan ) ASUTTVAVBZVCZSUTVDVBZVETVAVB
          ZVCZUWMTVFVBZUWMIVGZVGZOVHZUWPPVGZVNZVIZVCZAUWLVJZVETUTVDVBZVAVBZUWNU
          WMUXDVEUXEUTVKVBZVAVBUXFUWNVEUXEVLUXDUXGTVEVAUXDTVMVCZUTVMVCZUXGTVOAU
          XHUWLATULVPZVQVRTUTVSVTWAWBUXDUWLUWMUXFVCZAUWLWEUWLSWCVCTWCVCZUWLUXKW
          FASUTTWDATULWGZSTWHWIWJWKUWMXFVCZAUWOVJUXCUWOUXNAUWMTWLWMUXNAUWOUXCAU
          RWNZUWNVCZUXOTVFVBZUXOIVGZVGZUWSUXQPVGZVNZVIZVCZWOZWOAVEUWNVCZVETVFVB
          ZVEIVGZVGZUWSUYFPVGZVNZVIZVCZWOZWOAUSWNZUWNVCZUYNTVFVBZUYNIVGZVGZUWSU
          YPPVGZVNZVIZVCZWOZWOAUYNUTVKVBZUWNVCZVUDTVFVBZVUDIVGZVGZUWSVUFPVGZVNZ
          VIZVCZWOZWOAUWOUXCWOZWOURUSUWMUXOVEVOZUYDUYMAVUOUXPUYEUYCUYLUXOVEUWNW
          PVUOUXSUYHUYBUYKVUOUXQUYFUXRUYGUXOVEIWQUXOVETVFWRZWSVUOUYAUYJUWSVUOUX
          TUYIVUOUXQUYFPVUPWTXGXAXBXCXDUXOUYNVOZUYDVUCAVUQUXPUYOUYCVUBUXOUYNUWN
          WPVUQUXSUYRUYBVUAVUQUXQUYPUXRUYQUXOUYNIWQUXOUYNTVFWRZWSVUQUYAUYTUWSVU
          QUXTUYSVUQUXQUYPPVURWTXGXAXBXCXDUXOVUDVOZUYDVUMAVUSUXPVUEUYCVULUXOVUD
          UWNWPVUSUXSVUHUYBVUKVUSUXQVUFUXRVUGUXOVUDIWQUXOVUDTVFWRZWSVUSUYAVUJUW
          SVUSUXTVUIVUSUXQVUFPVUTWTXGXAXBXCXDUXOUWMVOZUYDVUNAVVAUXPUWOUYCUXCUXO
          UWMUWNWPVVAUXSUWRUYBUXBVVAUXQUWPUXRUWQUXOUWMIWQUXOUWMTVFWRZWSVVAUYAUX
          AUWSVVAUXTUWTVVAUXQUWPPVVBWTXGXAXBXCXDAUYLUYEAUYHHUYKAUYHVEVEHXHVNZVG
          ZHAUYFVEUYGVVCUYGVVCVOAABCDEFGHIJKLMNOPQRTUBUCUDUEUFUGUHUIUJUKULUMUNU
          OUPXEXIATUXJATULXJXKZWSAVEXFVCHFVCZVVDHVOXLUJVEHXFFXMXNXOAHUYKVCZVVFH
          OVGZUYIVOZUJAVVHVEPVGUYIUKAUYFVEPVVEWTXPAOFXQZVVGVVFVVIVJWFAOGQXSVBVC
          ZFUBOXRVVJAOGQXTVBVCVVKUHGOQYKYAOGQFUBUFUGUUAFUBOUUDUUEZFUYIHOYBYAYCU
          UBUUFUYNXFVCZAVUCVUMAVVMVUCVUMWOAVVMVJZVUCVUEVUBWOVUMVVNVUEUYOVUBVVNU
          YNVEYDVGZVCZVUEUYOWOVVMVVPAVVMUYNXFVVOVVMUUGUUCYEWMVVPVUEUYOUYNVETUUH
          UUIYAUUJVVNVUEVUBVULAVVMVUEVUBVULWOAVVMVUEVJZVUBVULAVVQVUBVJZVJZVULVU
          HFVCZVUHOVGZVUIVOZVVSVUDUTVDVBZTVFVBZVUFYFVBZFVUFVUGVVSVWEFVUGXRZOVUG
          UUKZPVWEYGZVOZAVVRBCDEFGHIJKLMNOPQRVUDTVWEUBUCUDUEUFUGUHUIUJUKULUMUNU
          OUPVWEUULVVSVUDUWKVCZVUDTYHYLZVVSVUEVWKAVVMVUEVUBUUMVUDVETUUNYAVVSVUD
          UTYDVGZVCUXLVWJVWKWFVVSVUDYIVWLVVSVVMVUDYIVCAVVMVUEVUBUUOZUYNUUPYAUVE
          YEAUXLVVRUXMVQVUDUTTUUQYJUURVVSUYRVUAVWDVWCIVGZVGUWSVWDPVGZVNZVIAVVQV
          UBUUSVVSVWDUYPVWNUYQVVSVWCUYNIVVSUYNVMVCUXIVWCUYNVOVVSUYNVWMUUTVRUYNU
          TUVAVTZWTVVSVWCUYNTVFVWQYMZWSVVSVWPUYTUWSVVSVWOUYSVVSVWDUYPPVWRWTXGXA
          UVBUVCZUVFZVVSVUFUYPVUFYFVBZVWEVVSUYPYNVCVUFYNVCUYPVUFYHYLVUFVXAVCZVV
          SUYPVVSUYNTVVSUYNVWMUVGZATYIVCVVRULVQZYOZYPVVSVUFVVSVUDTVVSUYNYQVCZVU
          DYQVCZVXCUYNUVDYAZVXDYOZYPVVSUYPVUFVXEVXIVVSUYNVUDYRYLZUYPVUFYRYLZVVS
          UYNVXCUVHVVSVXFVXGTYQVCVETYRYLVXJVXKWFVXCVXHVVSTVXDUVIVVSTVXDUVJUYNVU
          DTUVKUVLWJUVOUYPVUFUVMUVNZVVSVWDUYPVUFYFVWRYMZUVPUVQVVSVUFVWGVGZVUFPV
          XAYGZVGZVWAVUIVVSVUFVWGVXOVVSVWGVWHVXOVVSVWFVWIVWSUVRVVSVWEVXAPVXMUVS
          XOUWEVVSVXAFVUGXRZVXBVXNVWAVOVVSVWFVXQVWTVVSVWEVXAFVUGVXMUVTWJVXLVXAF
          VUFOVUGUWAYJVVSVXBVXPVUIVOVXLVUFVXAPUWBYAUWCVVSVVJVULVVTVWBVJWFAVVJVV
          RVVLVQFVUIVUHOYBYAYCYSYSYTUWDUWFYTUWGUWHUWIUWJ $.

        $( Lemma for ~ cvmlift .  The functions ` Q ` are continuous functions
           because they are defined as ` ``' ( F |`` I ) o. G ` where ` G ` is
           continuous and ` ( F |`` I ) ` is a homeomorphism.  (Contributed by
           Mario Carneiro, 16-Feb-2015.) $)
        cvmliftlem8 $p |- ( ( ph /\ M e. ( 1 ... N ) ) ->
          ( Q ` M ) e. ( ( L |`t W ) Cn C ) ) $=
          ( c1 cfz co wcel wa cfv cv cmin cdiv c2nd crio cres ccnv crest ccn cn
          cmpt wceq elfznn cvmliftlem5 sylan2 ccvm ctop adantr cvmtop1 cnrest2r
          wss 3syl c1st cr ctopon cioo crn ctg retopon eqeltri cicc cvmliftlem2
          cc0 simpr unitssre syl6ss resttopon sylancr cii eqid iitopon wf iiuni
          a1i cnf syl feqmptd eqeltrrd cnmpt1res dfii2 oveq1i cvv retop restabs
          eqtr4i ovexd syl3anc syl5eq oveq1d eleqtrd wb cvmtop2 toptopon simprl
          sylib simprr cvmliftlem3 anassrs mpbid simpld cxr wbr nnred rexrd clt
          nndivred eqeltrd fmptd frn cuni cvmliftlem1 cvmsrcl elssuni syl6sseqr
          cnrest2 chmeo csn cima cvmliftlem7 wfn ffn fniniseg simprd cle adantl
          cvmcn peano2rem ltm1d nngt0d ltdiv1 syl112anc ltled cvmsiota syl13anc
          lbicc2 syl6eleqr cvmshmeo syl2anc hmeocnvcn cnmpt11f sseldd ) ASURTUS
          UTVAZVBZSIVCZCUACVDZPVCZOSURVEUTZTVFUTZUVTIVCVCZUDVDVAUDSKVCZVGVCZVHZ
          VIZVJZVCVNZRUAVKUTZGVLUTZUVOASVMVAZUVQUWHVOSTVPZABCDEFGHIJKLMNOPQRSTU
          AUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQVQVRUVPUWIGUWEVKUTZVLUTZUWJUWHUVPOGQ
          VSUTVAZGVTVAUWNUWJWDAUWOUVOUHWAZGOQWBUWEUWIGWCWEUVPCUVSUWGUWIQUWCWFVC
          ZVKUTZUWMUAUVPRWGWHVCZVAUAWGWDUWIUAWHVCVARWIWJWKVCZUWSUOWLWMUVPUAWPUR
          WNUTZWGAUVODEFGHJKLMOPQRSTUAUBUCUEUFUGUHUIUJUKULUMUNUOAUVOWQZUQWOZWRW
          SUARWGWTXAUVPCUAUVSVNZUWIQVLUTZVAZUXDUWIUWRVLUTVAZUVPUXDXBUAVKUTZQVLU
          TUXEUVPCUVSXBUXHQUXAUAUXHXCXBUXAWHVCVAUVPXDXGUXCUVPPCUXAUVSVNXBQVLUTZ
          UVPCUXAUBPUVPPUXIVAZUXAUBPXEAUXJUVOUIWAZPXBQUXAUBXFUGXHXIXJUXKXKXLUVP
          UXHUWIQVLUVPUXHRUXAVKUTZUAVKUTZUWIXBUXLUAVKXBUWTUXAVKUTUXLXMRUWTUXAVK
          UOXNXRXNUVPRVTVAZUAUXAWDUXAXOVAUXMUWIVOUXNUVPRUWTVTUOXPWMXGUXCUVPWPUR
          WNXSUAUXARVTXOXQXTYAYBYCUVPQUBWHVCVAZUXDWJUWQWDZUWQUBWDUXFUXGYDUVPQVT
          VAZUXOUVPUWOUXQUWPGOQYEXIQUBUGYFYHUVPUAUWQUXDXEUXPUVPCUAUVSUWQUXDAUVO
          UVRUAVAZUVSUWQVAAUVOUXRVBDEUVRFGHJKLMOPQRSTUAUBUCUEUFUGUHUIUJUKULUMUN
          UOAUVOUXRYGUQAUVOUXRYIYJYKUXDXCUUAUAUWQUXDUUBXIUVPUWQQUUCZUBUVPUWDUWQ
          JVCVAZUWQQVAUWQUXSWDAUVODEFGHJKLMOPQRSTUBUCUEUFUGUHUIUJUKULUMUNUOUXBU
          UDZDEGJUWDUWQMOQUCUEUUEUWQQUUFWEUGUUGUWQUXDUWIQUBUUHXTYLUVPUWFUWMUWRU
          UIUTVAZUWGUWRUWMVLUTVAUVPUXTUWEUWDVAZUYBUYAUVPUYCUWBUWEVAZUVPUWOUXTUW
          BFVAZUWBOVCZUWQVAUYCUYDVBUWPUYAUVPUYEUYFUWAPVCZVOZUVPUWBOVJUYGUUJUUKV
          AZUYEUYHVBZABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQUULU
          VPFUBOXEZOFUUMUYIUYJYDUVPUWOOGQVLUTVAUYKUWPGOQUUSOGQFUBUFUGXHWEFUBOUU
          NFUYGUWBOUUOWEYLZYMUVPUYFUYGUWQUVPUYEUYHUYLUUPAUVODEUWAFGHJKLMOPQRSTU
          AUBUCUEUFUGUHUIUJUKULUMUNUOUXBUQUVPUWAUWASTVFUTZWNUTZUAUVPUWAYNVAUYMY
          NVAUWAUYMUUQYOUWAUYNVAUVPUWAUVPUVTTUVPSWGVAZUVTWGVAZUVPSUVOUWKAUWLUUR
          YPZSUUTXIZATVMVAUVOULWAZYSZYQUVPUYMUVPSTUYQUYSYSZYQUVPUWAUYMUYTVUAUVP
          UVTSYRYOZUWAUYMYRYOZUVPSUYQUVAUVPUYPUYOTWGVAWPTYRYOVUBVUCYDUYRUYQUVPT
          UYSYPUVPTUYSUVBUVTSTUVCUVDYLUVEUWAUYMUVHXTUQUVIYJYTUDDEUWBFGJUWDUWQMO
          QUWEUCUEUFUWEXCUVFUVGYMDEUWEGJUWDUWQMOQUCUEUVJUVKUWFUWMUWRUVLXIUVMUVN
          YT $.
      $}

      $( Lemma for ~ cvmlift .  The ` Q ( M ) ` functions are defined on almost
         disjoint intervals, but they overlap at the edges.  Here we show that
         at these points the ` Q ` functions agree on their common domain.
         (Contributed by Mario Carneiro, 14-Feb-2015.) $)
      cvmliftlem9 $p |- ( ( ph /\ M e. ( 1 ... N ) ) ->
          ( ( Q ` M ) ` ( ( M - 1 ) / N ) ) =
          ( ( Q ` ( M - 1 ) ) ` ( ( M - 1 ) / N ) ) ) $=
        ( c1 cfz co wcel wa cmin cdiv cfv cv c2nd crio cres ccnv cicc cmpt wceq
        cvv cn elfznn eqid cvmliftlem5 sylan2 simpr fveq2d cxr cle wbr cr nnred
        adantl peano2rem syl adantr rexrd clt ltm1d cc0 nngt0d ltdiv1 syl112anc
        nndivred wb mpbid ltled lbicc2 syl3anc fvmptd ccvm c1st cvmliftlem1 csn
        fvexd cima cvmliftlem7 wf wfn ccn cvmcn cnf 3syl fniniseg simpld simprd
        cvmliftlem3 eqeltrd cvmsiota syl13anc fvres eqtrd wf1o cvmsf1o f1ocnvfv
        ffn wi syl2anc mpd ) ASUPTUQURUSZUTZSUPVAURZTVBURZSIVCZVCYOPVCZOYOYNIVC
        VCZUCVDUSUCSKVCZVEVCZVFZVGZVHZVCZYRYMCYOCVDZPVCZUUCVCZUUDYOSTVBURZVIURZ
        YPVLYLASVMUSZYPCUUIUUGVJVKSTVNZABCDEFGHIJKLMNOPQRSTUUIUAUBUCUDUEUFUGUHU
        IUJUKULUMUNUOUUIVOZVPVQYMUUEYOVKZUTZUUFYQUUCUUNUUEYOPYMUUMVRVSVSYMYOVTU
        SUUHVTUSYOUUHWAWBYOUUIUSYMYOYMYNTYMSWCUSZYNWCUSZYMSYLUUJAUUKWEWDZSWFWGZ
        ATVMUSYLUKWHZWPZWIYMUUHYMSTUUQUUSWPZWIYMYOUUHUUTUVAYMYNSWJWBZYOUUHWJWBZ
        YMSUUQWKYMUUPUUOTWCUSWLTWJWBUVBUVCWQUURUUQYMTUUSWDYMTUUSWMYNSTWNWOWRWSY
        OUUHWTXAZYMYQUUCXGXBYMYRUUBVCZYQVKZUUDYRVKZYMUVEYROVCZYQYMYRUUAUSZUVEUV
        HVKYMUUAYTUSZUVIYMOGQXCURUSZYTYSXDVCZJVCUSZYRFUSZUVHUVLUSUVJUVIUTAUVKYL
        UGWHZAYLDEFGHJKLMOPQRSTUAUBUDUEUFUGUHUIUJUKULUMUNAYLVRZXEZYMUVNUVHYQVKZ
        YMYROVHYQXFXHUSZUVNUVRUTZABCDEFGHIJKLMNOPQRSTUUIUAUBUCUDUEUFUGUHUIUJUKU
        LUMUNUOUULXIYMFUAOXJZOFXKUVSUVTWQYMUVKOGQXLURUSUWAUVOGOQXMOGQFUAUEUFXNX
        OFUAOYHFYQYROXPXOWRZXQYMUVHYQUVLYMUVNUVRUWBXRZAYLDEYOFGHJKLMOPQRSTUUIUA
        UBUDUEUFUGUHUIUJUKULUMUNUVPUULUVDXSXTUCDEYRFGJYTUVLMOQUUAUBUDUEUUAVOYAY
        BZXRZYRUUAOYCWGUWCYDYMUUAUVLUUBYEZUVIUVFUVGYIYMUVKUVMUVJUWFUVOUVQYMUVJU
        VIUWDXQDEUUAGJYTUVLMOQUBUDYFXAUWEUUAUVLYRYQUUBYGYJYKYD $.

      cvmliftlem.k $e |- K = U_ k e. ( 1 ... N ) ( Q ` k ) $.
      ${
        cvmliftlem10.1 $e |- ( ch <-> ( ( n e. NN /\ ( n + 1 ) e. ( 1 ... N ) )
          /\ ( U_ k e. ( 1 ... n ) ( Q ` k ) e.
            ( ( L |`t ( 0 [,] ( n / N ) ) ) Cn C ) /\ ( F o.
        U_ k e. ( 1 ... n ) ( Q ` k ) ) = ( G |` ( 0 [,] ( n / N ) ) ) ) ) ) $.
        $( Lemma for ~ cvmlift .  The function ` K ` is going to be our
           complete lifted path, formed by unioning together all the ` Q `
           functions (each of which is defined on one segment
           ` [ ( M - 1 ) / N , M / N ] ` of the interval).  Here we prove by
           induction that ` K ` is a continuous function and a lift of ` G ` by
           applying ~ cvmliftlem6 , ~ cvmliftlem7 (to show it is a function and
           a lift), ~ cvmliftlem8 (to show it is continuous), and ~ cvmliftlem9
           (to show that different ` Q ` functions agree on the intersection of
           their domains, so that the pasting lemma ~ paste gives that ` K ` is
           well-defined and continuous).  (Contributed by Mario Carneiro,
           14-Feb-2015.) $)
        cvmliftlem10 $p |- ( ph ->
          ( K e. ( ( L |`t ( 0 [,] ( N / N ) ) ) Cn C ) /\
            ( F o. K ) = ( G |` ( 0 [,] ( N / N ) ) ) ) ) $=
          ( vy c1 cfz co wcel cc0 cdiv cicc crest ccn ccom cres wceq wa eluzfz2
          cfv cn syl wi cv ciun caddc eleq1 csn oveq2 syl6eq fveq2 iunxsn oveq1
          iuneq1d oveq2d oveq1d eleq12d coeq2d reseq2d eqeq12d imbi2d cmin eqid
          anbi12d imbi12d cvmliftlem8 mpdan nncnd simpr cvmliftlem7 cvmliftlem6
          eleqtrd wf simprd eqtrd jca adantl cuni cr wss ccld 0re nnred iccssre
          nndivred sylancr simpld icccld syl6eleqr cun a1i cle wbr clt wb mpbid
          syl3anc syl2anc ctop eqtr3d feq2d syldan cxr rexrd cvv cuz nnuz cz 1z
          syl6eleq fzsn ax-mp 1ex syl6eqr eluzfz1 1m1e0 oveq1i nnne0d div0d a1d
          syl5eq elnnuz biimpi peano2fzr ex imim1d simplbi elfznn adantr fveq2i
          cioo crn ctg ssun1 nnnn0d nn0ge0d nngt0d divge0 syl22anc ltp1d ltdiv1
          syl112anc ltled w3a elicc2 mpbir3and iccsplit syl5sseqr unieqi eqtr4i
          uniretop restcldi ssun2 eqeltri restuni cin simprbi cnf mpbird ax-1cn
          retop cc pncan sylancl cop wfun cdm ffun ssiun2s peano2rem ubicc2 fdm
          ltm1d funssfv fveq2d fveq12d cvmliftlem9 3eqtr2d opeq2d sneqd wfn ffn
          eleqtrrd 0xr fnressn lbicc2 3eqtr4d cif xrmaxle xrlemin ixxin iftrued
          df-icc oveq12d iccid 3eqtrd fresaun fzsuc iunxun uneq2i eqtri syl6req
          feq1d reseq1d fresaunres1 restabs 3eltr4d fresaunres2 uneq12d resundi
          ovex paste coundi 3eqtr4g 3eqtr2rd sylan2br expr a2d syld nnind mpcom
          expcom mpd ) AUBVAUBVBVCZVDZTUAVEUBUBVFVCZVGVCZVHVCZHVIVCZVDZQTVJZRVV
[encoded data, 6880 characters]
          ULVUMVUNVUQVUMVUOVUPVUR $.
      $}

      $( Lemma for ~ cvmlift .  (Contributed by Mario Carneiro,
         14-Feb-2015.) $)
      cvmliftlem11 $p |- ( ph -> ( K e. ( II Cn C ) /\ ( F o. K ) = G ) ) $=
        ( vn cii ccn co wcel ccom wceq cc0 cdiv cicc crest cres cv cn caddc cfz
        c1 wa cfv ciun biid cvmliftlem10 simpld crn ctg a1i nncnd nnne0d dividd
        oveq2d oveq12d dfii2 syl6eqr oveq1d eleqtrd simprd reseq2d wf wfn iiuni
        cioo cnf ffn fnresdm 4syl 3eqtrd jca ) ARURGUSUTZVAORVBZPVCARSVDTTVEUTZ
        VFUTZVGUTZGUSUTZXDARXIVAZXEPXGVHZVCZAUQVIZVJVAXMVMVKUTVMTVLUTVAVNMVMXMV
        LUTMVIIVOVPZSVDXMTVEUTVFUTZVGUTGUSUTVAOXNVBPXOVHVCVNVNZBCDEFGHIJKLMNUQO
        PQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPXPVQVRZVSAXHURGUSAXHWQVTWAVOZVDVMV
        FUTZVGUTURASXRXGXSVGSXRVCAUNWBAXFVMVDVFATATUKWCATUKWDWEWFZWGWHWIWJWKAXE
        XKPXSVHZPAXJXLXQWLAXGXSPXTWMAPURQUSUTVAXSUAPWNPXSWOYAPVCUHPURQXSUAWPUFW
        RXSUAPWSXSPWTXAXBXC $.

      $( Lemma for ~ cvmlift .  The initial value of ` K ` is ` P ` because
         ` Q ( 1 ) ` is a subset of ` K ` which takes value ` P ` at ` 0 ` .
         (Contributed by Mario Carneiro, 16-Feb-2015.) $)
      cvmliftlem13 $p |- ( ph -> ( K ` 0 ) = P ) $=
        ( cc0 cfv c1 cop csn wfun wss cdm wcel wceq cicc co wf cii cvmliftlem11
        ccn ccom simpld iiuni cnf syl ffun cfz cv ciun cn nnuz syl6eleq eluzfz1
        cuz fveq2 ssiun2s syl6sseqr cmin cdiv cxr cle wbr 0xr nnrecred rexrd cr
        a1i clt 1red 0le1 nnred nngt0d divge0 lbicc2 syl3anc 1m1e0 oveq1i nncnd
        syl22anc nnne0d div0d syl5eq oveq1d eleqtrrd wa cvmliftlem7 cvmliftlem6
        cres eqid simpr mpdan fdm funssfv cvmliftlem9 fveq2d fveq2i cvmliftlem4
        eqtri fveq12d 3eqtr3d cn0 0nn0 fvsng sylancr 3eqtrd ) AUQRURZUQUSIURZUR
        ZUQUQHUTVAZURZHARVBZYSRVCUQYSVDZVEYRYTVFAUQUSVGVHZFRVIZUUCARVJGVLVHVEZU
        UFAUUGORVMPVFABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPVKVNRV
        JGUUEFVOUEVPVQUUEFRVRVQAYSMUSTVSVHZMVTZIURZWAZRAUSUUHVEZYSUUKVCATUSWFUR
        ZVEUULATWBUUMUKWCWDUSTWEVQZMUUHUUJUSYSUUIUSIWGWHVQUPWIAUQUSUSWJVHZTWKVH
        ZUSTWKVHZVGVHZUUDAUQUQUUQVGVHZUURAUQWLVEZUUQWLVEUQUUQWMWNZUQUUSVEUUTAWO
        WSAUUQATUKWPWQAUSWRVEUQUSWMWNZTWRVEUQTWTWNUVAAXAUVBAXBWSATUKXCATUKXDUST
        XEXKUQUUQXFXGAUUPUQUUQVGAUUPUQTWKVHUQUUOUQTWKXHXIATATUKXJATUKXLXMXNZXOX
        PAUURFYSVIZUUDUURVFAUVDOYSVMPUURXTVFZAUULUVDUVEXQUUNAUULBCDEFGHIJKLMNOP
        QSUSTUURUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUURYAZAUULYBABCDEFGHIJKLMNOPQSUST
        UURUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUVFXRXSYCVNUURFYSYDVQXPUQRYSYEXGAUUPYS
        URZUUPUUOIURZURZYTUUBAUULUVGUVIVFUUNABCDEFGHIJKLMNOPQSUSTUAUBUCUDUEUFUG
        UHUIUJUKULUMUNUOYFYCAUUPUQYSUVCYGAUUPUQUVHUUAUVHUUAVFAUVHUQIURUUAUUOUQI
        XHYHABCDEFGHIJKLMNOPQSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOYIYJWSUVCYKYLAUQYM
        VEHFVEUUBHVFYNUIUQHYMFYOYPYQ $.

      $( Lemma for ~ cvmlift .  Putting the results of ~ cvmliftlem11 ,
         ~ cvmliftlem13 and ~ cvmliftmo together, we have that ` K ` is a
         continuous function, satisfies ` F o. K = G ` and ` K ( 0 ) = P ` ,
         and is equal to any other function which also has these properties, so
         it follows that ` K ` is the unique lift of ` G ` .  (Contributed by
         Mario Carneiro, 16-Feb-2015.) $)
      cvmliftlem14 $p |- ( ph ->
          E! f e. ( II Cn C ) ( ( F o. f ) = G /\ ( f ` 0 ) = P ) ) $=
        ( cv ccom wceq cc0 cfv wa cii ccn co wrex wrmo wreu cvmliftlem11 simpld
        simprd cvmliftlem13 coeq2 eqeq1d fveq1 anbi12d rspcev syl12anc c1 iiuni
        wcel cicc cconn iiconn cnlly iinllyconn 0elunit cvmliftmo reu5 sylanbrc
        a1i ) APLURZUSZQUTZVAWMVBZHUTZVCZLVDGVEVFZVGZWRLWSVHWRLWSVIASWSWBZPSUSZ
        QUTZVASVBZHUTZWTAXAXCABCDEFGHIJKMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOU
        PUQVJZVKAXAXCXFVLABCDEFGHIJKMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQV
        MWRXCXEVCLSWSWMSUTZWOXCWQXEXGWNXBQWMSPVNVOXGWPXDHVAWMSVPVOVQVRVSAFGHLPQ
        RVDVAVAVTWCVFZUFWAUHVDWDWBAWEWLVDWDWFWBAWGWLVAXHWBAWHWLUIUJUKWIWRLWSWJW
        K $.
    $}

    $( Lemma for ~ cvmlift .  Discharge the assumptions of ~ cvmliftlem14 .
       The set of all open subsets ` u ` of the unit interval such that
       ` G " u ` is contained in an even covering of some open set in ` J ` is
       a cover of ` II ` by the definition of a covering map, so by the
       Lebesgue number lemma ~ lebnumii , there is a subdivision of the unit
       interval into ` N ` equal parts such that each part is entirely
       contained within one such open set of ` J ` .  Then using finite choice
       ~ ac6sfi to uniformly select one such subset and one even covering of
       each subset, we are ready to finish the proof with ~ cvmliftlem14 .
       (Contributed by Mario Carneiro, 14-Feb-2015.) $)
    cvmliftlem15 $p |- ( ph ->
        E! f e. ( II Cn C ) ( ( F o. f ) = G /\ ( f ` 0 ) = P ) ) $=
      ( vn vj vx vg vz vy vw vt vc va vm vb cv cmin cdiv cicc wss cima cfv wrex
      c1 co cii crab cfz wral cn ccom wceq cc0 wa ccn wreu cuni ssrab2 wcel wne
      c0 ccnv ad2antrr simprl cnima syl2anc simplr simprrl wf wfn iiuni cnf syl
      ffn elpreima 3syl mpbir2and simprrr crn cin wfun funimacnv inss1 syl6eqss
      wb ffun ralrimivw r19.2z eleq2 imaeq2 sseq1d rexbidv anbi12d rspcev sylib
      ex sylancr csn cxp ciun c1st weq cop vex sseq2d fveq2 c2nd crio cres cmpt
      cmpt2 cseq ax-mp eqid fveq2d eleq1d syl5eq reseq2d cnveqd fveq1d oveq1
      cvv syl12anc ccvm adantr ffvelrnda cvmcov reximddv rexbii rexcom elunirab
      r19.42v 3bitr4i ssrdv uniss mp1i syl6sseqr lebnumii wex cfn fzfi 2rexbidv
      eqssd rexrab op1std rexiunxp wi imass2 sstr2 reximdv syl5bir impcom sylbi
      rexlimivw ralimi ac6sfi cid cun cioo ctg sneq xpeq12d cbviunv feq3 simprr
      cbvmptv cbvriotav riotabidv mpteq2dv oveq1d oveq12d riotaeqbidv mpteq12dv
      fveq1 cbvmpt2v seqeq2 cvmliftlem14 exlimdv syl5 rexlimdva mpd ) AIUNZVBUO
      VCUBUNZUPVCUWTUXAUPVCUQVCZBUNZURZBKCUNZUSZUCUNZURZNUXGGUTZVAZUCLVAZCVDVEZ
      VAZIVBUXAVFVCZVGZUBVHVAZJHUNZVIKVJVKUXQUTFVJVLHVDEVMVCVNZAUXLVDURZVKVBUQV
      CZUXLVOZVJUXPUXKCVDVPZAUXTUYAAUDUXTUYAAUDUNZUXTVQZUYCUYAVQZAUYDVLZUYCUXEV
      QZUXJVLZCVDVAZUCLVAZUYEUYFUYCKUTZUXGVQZUXIVSVRZVLZUYIUCLUYFUXGLVQZUYNVLZV
      LZKVTUXGUSZVDVQZUYCUYRVQZKUYRUSZUXGURZNUXIVAZUYIUYQKVDLVMVCVQZUYOUYSAVUDU
      YDUYPSWAUYFUYOUYNWBUXGKVDLWCWDUYQUYTUYDUYLAUYDUYPWEUYFUYOUYLUYMWFUYQUXTMK
      WGZKUXTWHUYTUYDUYLVLXCAVUEUYDUYPAVUDVUESKVDLUXTMWIQWJWKZWAZUXTMKWLUXTUYCU
      XGKWMWNWOUYQUYMVUBNUXIVGVUCUYFUYOUYLUYMWPUYQVUBNUXIUYQVUAUXGKWQZWRZUXGUYQ
      VUEKWSVUAVUIVJVUGUXTMKXDUXGKWTWNUXGVUHXAXBXEVUBNUXIXFWDUYHUYTVUCVLCUYRVDU
      XEUYRVJZUYGUYTUXJVUCUXEUYRUYCXGVUJUXHVUBNUXIVUJUXFVUAUXGUXEUYRKXHXIXJXKXL
      UUAUYFJELUUBVCVQZUYKMVQUYNUCLVAAVUKUYDRUUCAUXTMUYCKVUFUUDUCBCEUYKGIJLMNOQ
      UUEWDUUFUYHUCLVAZCVDVAUYGUXKVLZCVDVAUYJUYEVULVUMCVDUYGUXJUCLUUJUUGUYHUCCL
      VDUUHUXKCUYCVDUUIUUKXMXNUULAUYAVDVOZUXTUXSUYAVUNURAUYBUXLVDUUMUUNWIUUOUVA
      BUXLIUBUUPXOAUXOUXRUBVHUXOUXNUCLUXGXPZUXIXQZXRZUEUNZWGZKUXBUSZUWTVURUTZXS
      UTZURZIUXNVGZVLZUEUUQZAUXAVHVQZVLZUXRUXOUXNUURVQVUTUXEXSUTZURZCVUQVAZIUXN
      VGVVFVBUXAUUSUXMVVKIUXNUXMKUXCUSZUXGURZNUXIVAUCLVAZUXDVLZBVDVAVVKUXKVVNUX
      DBCVDCBXTZUXHVVMUCNLUXIVVPUXFVVLUXGUXEUXCKXHXIUUTUVBVVOVVKBVDUXDVVNVVKVVN
      VVLVVIURZCVUQVAUXDVVKVVQVVMCUCNLUXIUXEUXGNUNZYAVJVVIUXGVVLUXGVVRUXEUCYBNY
      BUVCYCUVDUXDVVQVVJCVUQUXDVUTVVLURVVQVVJUVEUXBUXCKUVFVUTVVLVVIUVGWKUVHUVIU
      VJUVLUVKUVMVVJVVCICUXNVUQUEUXEVVAVJVVIVVBVUTUXEVVAXSYDYCUVNXOVVHVVEUXRUEV
      VHVVEUXRVVHVVEVLZUDUFBCDEFUGUHYTVHUIUHUNZVBUOVCZUXAUPVCZVVTUXAUPVCZUQVCZU
      IUNZKUTZJVWBUGUNZUTZUJUNZVQZUJVVTVURUTZYEUTZYFZYGZVTZUTZYHZYIZUVOVHYGVKVK
      FYAXPYAXPUVPZVKYJZGVURHUKIULJKLIUXNUWTVWTUTXRZUVQWQUVRUTZUXAMNUMOPQAVUKVV
      GVVERWAAVUDVVGVVESWAAFDVQVVGVVETWAAFJUTVKKUTVJVVGVVEUAWAAVVGVVEWEVVSVUSUX
      NUKLUKUNZXPZVXCGUTZXQZXRZVURWGZVVHVUSVVDWBVUQVXGVJVUSVXHXCUCUKLVUPVXFUCUK
      XTVUOVXDUXIVXEUXGVXCUVSUXGVXCGYDUVTUWAVUQVXGUXNVURUWBYKXMVVHVUSVVDUWCVXBY
      LVWRUDULYTVHUFULUNZVBUOVCZUXAUPVCZVXIUXAUPVCZUQVCZUFUNZKUTZJVXKUYCUTZUMUN
      ZVQZUMVXIVURUTZYEUTZYFZYGZVTZUTZYHZYIZVJVWTVYFVWSVKYJVJUGUHUDULYTVHVWQVYE
      UFVWDVXOJVWBUYCUTZVXQVQZUMVWLYFZYGZVTZUTZYHZUGUDXTZVWQUFVWDVXOVWOUTZYHVYM
      UIUFVWDVWPVYOUIUFXTVWFVXOVWOVWEVXNKYDYMUWDVYNUFVWDVYOVYLVYNVXOVWOVYKVYNVW
      NVYJVYNVWMVYIJVYNVWMVWHVXQVQZUMVWLYFVYIVWJVYPUJUMVWLVWIVXQVWHXGUWEVYNVYPV
      YHUMVWLVYNVWHVYGVXQVWBVWGUYCUWLYNUWFYOYPYQYRUWGYOUHULXTZUFVWDVYLVXMVYDVYQ
      VWBVXKVWCVXLUQVYQVWAVXJUXAUPVVTVXIVBUOYSUWHZVVTVXIUXAUPYSUWIVYQVXOVYKVYCV
      YQVYJVYBVYQVYIVYAJVYQVYHVXRUMVWLVXTVYQVWKVXSYEVVTVXIVURYDYMVYQVYGVXPVXQVY
      QVWBVXKUYCVYRYMYNUWJYPYQYRUWKUWMVWRVYFVWSVKUWNYKVXAYLUWOXNUWPUWQUWRUWS $.
  $}

  $(
  @{
    iscvm2.1 @e |- X = U. J @.
    iscvm2.2 @e |- A = { j e. Top | E. y
      E. g e. ( ( j tX ~P y ) Homeo ( C |`t ( `' F " U. j ) ) )
       ( g o. ( F |` ( `' F " U. j ) ) ) = ( 1st |` ( U. j X. y ) ) } @.
    @{
      iscvm2.s @e |- S = ( k e. J |->
        { s e. ( ~P C \ { (/) } ) | ( U. s = ( `' F " k ) /\
          A. u e. s ( A. v e. ( s \ { u } ) ( u i^i v ) = (/) /\
             ( F |` u ) e. ( ( C |`t u ) Homeo ( J |`t k ) ) ) ) } ) @.
      @( An alternative characterisation of covering maps using the
         ` Locally A `
         predicate. A continuous function ` F ` is a covering map iff ` J ` is
         locally evenly covered, where " ` x ` is evenly covered" means that
         ` ``' F " x ` is homeomorphic to the product of ` x ` with a discrete
         space, and such that ` F ` looks like the first projection function
         under this homeomorphism. @)
      iscvm2lem @p |- ( ( C e. Top /\ J e. Top /\ F e. ( C Cn J ) ) ->
        ( F e. ( C CovMap J ) <-> J e. Locally A ) ) @=
        ? @.
        @( [13-Feb-2015] @)
    @}

    @( An alternative characterisation of covering maps using the ` Locally A `
       predicate. A continuous function ` F ` is a covering map iff ` J ` is
       locally evenly covered, where " ` x ` is evenly covered" means that
       ` ``' F " x ` is homeomorphic to the product of ` x ` with a discrete
       space, and such that ` F ` looks like the first projection function
       under this homeomorphism. @)
    iscvm2 @p |- ( ( C e. Top /\ J e. Top /\ F e. ( C Cn J ) ) ->
      ( F e. ( C CovMap J ) <-> J e. Locally A ) ) @=
      ? @.
      @( [13-Feb-2015] @)
  @}
  $)

  ${
    $d a b c d f k s u v C $.  $d a b c d f G $.  $d a b c d f P $.  $d a X $.
    $d a b c d f k s u v F $.  $d a b c d f k s u v J $.  $d b c d f B $.
    cvmlift.1 $e |- B = U. C $.
    $( One of the important properties of covering maps is that any path ` G `
       in the base space "lifts" to a path ` f ` in the covering space such
       that ` F o. f = G ` , and given a starting point ` P ` in the covering
       space this lift is unique.  The proof is contained in ~ cvmliftlem1 thru
       ~ cvmliftlem15 .  (Contributed by Mario Carneiro, 16-Feb-2015.) $)
    cvmlift $p |- ( ( ( F e. ( C CovMap J ) /\ G e. ( II Cn J ) ) /\
      ( P e. B /\ ( F ` P ) = ( G ` 0 ) ) ) ->
        E! f e. ( II Cn C ) ( ( F o. f ) = G /\ ( f ` 0 ) = P ) ) $=
      ( vd vc vk vs vu vv va co wcel wa wceq cv ccvm cii ccn cfv cuni ccnv cima
      vb cc0 cin c0 csn cdif wral cres crest chmeo cpw crab cmpt cvmscbv simpll
      eqid simplr simprl simprr cvmliftlem15 ) EBGUAPQZFUBGUCPQZRZCAQZCEUDUIFUD
      SZRZRIJABCKGLTZUEEUFKTZUGSMTZNTUJUKSNVNVPULUMUNEVPUOBVPUPPGVOUPPUQPQRMVNU
      NRLBURUKULUMUSUTZDOEFGGUEZUHNMBVQKEGLOUHJIVQVCVAHVRVCVHVIVMVBVHVIVMVDVJVK
      VLVEVJVKVLVFVG $.

    cvmfo.2 $e |- X = U. J $.
    $( A covering map is an onto function.  (Contributed by Mario Carneiro,
       13-Feb-2015.) $)
    cvmfo $p |- ( F e. ( C CovMap J ) -> F : B -onto-> X ) $=
      ( vd vc vk vs vu vv va vb cv wceq c0 csn co cuni ccnv cima cdif wral cres
      cin crest chmeo wcel wa cpw crab cmpt eqid cvmscbv cvmfolem ) HIABJDKPZUA
      CUBJPZUCQLPZMPUGRQMURUTSUDUECUTUFBUTUHTDUSUHTUITUJUKLURUEUKKBULRSUDUMUNZN
      CDEOMLBVAJCDKNOIHVAUOUPFGUQ $.
  $}

  ${
    $d g B $.  $d f g C $.  $d f g F $.  $d f g G $.  $d g H $.  $d f g P $.
    $d g J $.
    cvmliftiota.b $e |- B = U. C $.
    cvmliftiota.h $e |- H =
      ( iota_ f e. ( II Cn C ) ( ( F o. f ) = G /\ ( f ` 0 ) = P ) ) $.
    cvmliftiota.f $e |- ( ph -> F e. ( C CovMap J ) ) $.
    cvmliftiota.g $e |- ( ph -> G e. ( II Cn J ) ) $.
    cvmliftiota.p $e |- ( ph -> P e. B ) $.
    cvmliftiota.e $e |- ( ph -> ( F ` P ) = ( G ` 0 ) ) $.
    $( Write out a function ` H ` that is the unique lift of ` F ` .
       (Contributed by Mario Carneiro, 16-Feb-2015.) $)
    cvmliftiota $p |- ( ph ->
        ( H e. ( II Cn C ) /\ ( F o. H ) = G /\ ( H ` 0 ) = P ) ) $=
      ( vg wceq cc0 cfv wcel cv ccom wa cii ccn co crab crio coeq2 eqeq1d fveq1
      w3a anbi12d cbvriotav eqtri wreu ccvm cvmlift syl22anc riotacl2 syl elrab
      syl5eqel 3anass bitr4i sylib ) AHFPUAZUBZGQZRVGSZDQZUCZPUDCUEUFZUGZTZHVMT
      ZFHUBZGQZRHSZDQZULZAHVLPVMUHZVNHFEUAZUBZGQZRWCSZDQZUCZEVMUHWBKWHVLEPVMWCV
      GQZWEVIWGVKWIWDVHGWCVGFUIUJWIWFVJDRWCVGUKUJUMUNUOAVLPVMUPZWBVNTAFCIUQUFTG
      UDIUEUFTDBTDFSRGSQWJLMNOBCDPFGIJURUSVLPVMUTVAVCVOVPVRVTUCZUCWAVLWKPHVMVGH
      QZVIVRVKVTWLVHVQGVGHFUIUJWLVJVSDRVGHUKUJUMVBVPVRVTVDVEVF $.
  $}

  ${
    $d t u x y z $.  $d u y z M $.
    $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro, 1-Jun-2015.) $)
    cvmlift2lem1 $p |- ( A. y e. ( 0 [,] 1 ) E. u e. ( ( nei ` II ) ` { y } )
        ( ( u X. { x } ) C_ M <-> ( u X. { t } ) C_ M ) ->
      ( ( ( 0 [,] 1 ) X. { x } ) C_ M ->
        ( ( 0 [,] 1 ) X. { t } ) C_ M ) ) $=
      ( vz cv csn cxp wss wb cii cfv wral cop wcel iitop mpan adantl vex cc0 c1
      cnei wrex cicc co wi wa biimp ctop iiuni neii1 xpss1 syl simpl sstrd snss
      ssnei sylibr vsnid opelxpi sylancl ssel syl5com embantd rexlimdva ralimdv
      syl5 com12 dfss3 eleq1 ralxp weq opeq2 eleq1d ralsn ralbii 3bitri syl6ibr
      ) CGZAGHZIZEJZVTDGZHZIZEJZKZCBGZHZLUCMMZUDZBUAUBUEUFZNZWMWAIZEJZWIWDOZEPZ
      BWMNZWMWEIZEJZWPWNWSWPWLWRBWMWPWHWRCWKWHWCWGUGWPVTWKPZUHZWRWCWGUIXCWCWGWR
      XCWBWOEXCVTWMJZWBWOJXBXDWPLUJPZXBXDQWJLVTWMUKULRSVTWMWAUMUNWPXBUOUPXCWQWF
      PZWGWRXCWIVTPZWDWEPXFXCWJVTJZXGXBXHWPXEXBXHQWJLVTURRSWIVTBTUQUSDUTWIWDVTW
      EVAVBWFEWQVCVDVEVHVFVGVIXAFGZEPZFWTNWIVTOZEPZCWENZBWMNWSFWTEVJXJXLFBCWMWE
      XIXKEVKVLXMWRBWMXLWRCWDDTCDVMXKWQEVTWDWIVNVOVPVQVRVS $.
  $}

  ${
    $d c d k s A $.  $d c d k s F $.  $d x H $.  $d c d k s J $.  $d c d s T $.
    $d c d k s x C $.  $d x K $.  $d x M $.  $d x ph $.  $d c d x W $.
    cvmlift2lem9a.b $e |- B = U. C $.
    cvmlift2lem9a.y $e |- Y = U. K $.
    cvmlift2lem9a.s $e |- S = ( k e. J |->
      { s e. ( ~P C \ { (/) } ) | ( U. s = ( `' F " k ) /\
        A. c e. s ( A. d e. ( s \ { c } ) ( c i^i d ) = (/) /\
           ( F |` c ) e. ( ( C |`t c ) Homeo ( J |`t k ) ) ) ) } ) $.
    cvmlift2lem9a.f $e |- ( ph -> F e. ( C CovMap J ) ) $.
    cvmlift2lem9a.h $e |- ( ph -> H : Y --> B ) $.
    cvmlift2lem9a.g $e |- ( ph -> ( F o. H ) e. ( K Cn J ) ) $.
    cvmlift2lem9a.k $e |- ( ph -> K e. Top ) $.
    cvmlift2lem9a.1 $e |- ( ph -> X e. Y ) $.
    cvmlift2lem9a.2 $e |- ( ph -> T e. ( S ` A ) ) $.
    cvmlift2lem9a.3 $e |- ( ph -> ( W e. T /\ ( H ` X ) e. W ) ) $.
    cvmlift2lem9a.4 $e |- ( ph -> M C_ Y ) $.
    cvmlift2lem9a.6 $e |- ( ph -> ( H " M ) C_ W ) $.
    $( Lemma for ~ cvmlift2 and ~ cvmlift3 .  (Contributed by Mario Carneiro,
       9-Jul-2015.) $)
    cvmlift2lem9a $p |- ( ph -> ( H |` M ) e. ( ( K |`t M ) Cn C ) ) $=
      ( vx crest co ccn cres ctop wcel wss ccvm cvmtop1 syl cnrest2r wf ccnv cv
      cima wral wfn crn ffn fnssres syl2anc df-ima syl5eqssr df-f sylanbrc ccom
      wa wf1 wceq cfv simpld cvmsf1o syl3anc adantr f1of1 ctopon toptopon sylib
      wf1o cvmsss sseldd toponss sylan f1imacnv imaeq2d imaco cnvco cores resco
      resttopon syl6eqr cnveqd syl5eqr imaeq1d eqtr3d resima2 restopn2 simprbda
      cnrest wb cvmopn eqeltrd cnima ralrimiva iscn mpbir2and ) AKLULUMZDMULUMZ
      UNUMZXRDUNUMZILUOZADUPUQZXTYAURAHDJUSUMUQZYCUBDHJUTVAZMXRDVBVAAYBXTUQZLMY
      BVCZYBVDZUKVEZVFZXRUQZUKXSVGZAYBLVHZYBVIZMURZYGAIOVHZLOURZYMAOCIVCYPUCOCI
      VJVAUIOLIVKVLAYNILVFMILVMUJVNZLMYBVOVPAYKUKXSAYIXSUQZVRZYJHIVQZLUOZVDZHMU
      OZYIVFZVFZXRYTYHUUDVDZUUEVFZVFZYJUUFYTUUHYIYHYTMBUUDVSZYIMURZUUHYIVTYTMBU
      UDWJZUUJAUULYSAYDFBEWAUQZMFUQZUULUBUGAUUNNIWAMUQUHWBZRQMDEFBGHJPUAWCWDWEM
      BUUDWFVAAXSMWGWAUQZYSUUKADCWGWAUQZMCURZUUPAYCUUQYEDCSWHWIZAUUQMDUQZUURUUS
      AFDMAUUMFDURUGRQDEFBGHJPUAWKVAUUOWLZMDCWMVLMDCXAVLZYIXSMWMWNZMBYIUUDWOVLW
      PYTUUIYHUUGVQZUUEVFUUFYHUUGUUEWQYTUVDUUCUUEYTUVDUUDYBVQZVDUUCUUDYBWRYTUVE
      UUBAUVEUUBVTYSAUVEHYBVQZUUBAYOUVEUVFVTYRHYBMWSVAHILWTXBWEXCXDXEXDXFYTUUBX
      RJUNUMUQZUUEJUQUUFXRUQAUVGYSAUUAKJUNUMUQYQUVGUDUILUUAKJOTXJVLWEYTUUEHYIVF
      ZJYTUUKUUEUVHVTUVCHYIMXGVAYTYDYIDUQZUVHJUQAYDYSUBWEAYSUVIUUKAYCUUTYSUVIUU
      KVRXKYEUVAMYIDXHVLXIYIDHJXLVLXMUUEUUBXRJXNVLXMXOAXRLWGWAUQZUUPYFYGYLVRXKA
      KOWGWAUQZYQUVJAKUPUQUVKUEKOTWHWIUILKOXAVLUVBUKYBXRXSLMXPVLXQWL $.
  $}

  ${
    $d b c d f g h k m s u v w x y z F $.  $d a b f g m n r t u v w x y z ph $.
    $d a t v x A $.  $d a b c d k r s u x y z M $.  $d b f m t u v w x y z S $.
    $d b c d f g k m s u v w x y z J $.  $d b c d s u v T $.  $d m n u w z U $.
    $d a b c f g h k m t u v w x y z G $.  $d m n u w V $.  $d c d m n u v W $.
    $d b c f u v w x y z H $.  $d a b c d f k m t u v w x y z X $.  $d z Z $.
    $d a b c d f g h k m r s t u v w x y z C $.  $d f g h k u v x y z P $.
    $d b c d v w x y z B $.  $d a b c d f k m t u v w x y z Y $.
    cvmlift2.b $e |- B = U. C $.
    cvmlift2.f $e |- ( ph -> F e. ( C CovMap J ) ) $.
    cvmlift2.g $e |- ( ph -> G e. ( ( II tX II ) Cn J ) ) $.
    cvmlift2.p $e |- ( ph -> P e. B ) $.
    cvmlift2.i $e |- ( ph -> ( F ` P ) = ( 0 G 0 ) ) $.
    ${
      cvmlift2.h $e |- H = ( iota_ f e. ( II Cn C )
      ( ( F o. f ) = ( z e. ( 0 [,] 1 ) |-> ( z G 0 ) ) /\ ( f ` 0 ) = P ) ) $.
      $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
         7-May-2015.) $)
      cvmlift2lem2 $p |- ( ph -> ( H e. ( II Cn C ) /\
        ( F o. H ) = ( z e. ( 0 [,] 1 ) |-> ( z G 0 ) ) /\ ( H ` 0 ) = P ) ) $=
        ( cc0 co cii cfv c1 cicc cv cmpt ctopon wcel iitopon a1i cnmptid cnmptc
        0elunit cnmpt12f wceq oveq1 eqid ovex fvmpt ax-mp syl6eqr cvmliftiota )
        ACDEFGBQUAUBRZBUCZQHRZUDZIJKPLABVBQHSSSJVASVAUETUFAUGUHZABSVAVEUIABQSSV
        AVAVEVEQVAUFZAUKUHUJMULNAEGTQQHRZQVDTZOVFVHVGUMUKBQVCVGVAVDVBQQHUNVDUOQ
        QHUPUQURUSUT $.

      ${
        cvmlift2lem3.1 $e |- K = ( iota_ f e. ( II Cn C ) ( ( F o. f ) =
     ( z e. ( 0 [,] 1 ) |-> ( X G z ) ) /\ ( f ` 0 ) = ( H ` X ) ) ) $.
        $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
           7-May-2015.) $)
        cvmlift2lem3 $p |- ( ( ph /\ X e. ( 0 [,] 1 ) ) ->
      ( K e. ( II Cn C ) /\ ( F o. K ) = ( z e. ( 0 [,] 1 ) |-> ( X G z ) ) /\
        ( K ` 0 ) = ( H ` X ) ) ) $=
          ( cii cc0 c1 cicc co wcel wa cv cmpt ccvm adantr ctopon iitopon simpr
          cfv a1i cnmptc cnmptid ctx ccn cnmpt12f ccom wceq cvmlift2lem2 simp1d
          wf iiuni cnf syl ffvelrnda 0elunit oveq2 eqid ovex mp1i simp2d fveq1d
          fvmpt oveq1 sylan9eq fvco3 sylan 3eqtr2rd cvmliftiota ) ALUAUBUCUDZUE
          ZUFZCDLIUNZFGBWDLBUGZHUDZUHZKJMSAGDJUIUDUEWENUJWFBLWHHTTTJWDTWDUKUNUE
          WFULUOZWFBLTTWDWDWKWKAWEUMUPWFBTWDWKUQAHTTURUDJUSUDUEWEOUJUTAWDCLIAIT
          DUSUDUEZWDCIVEZAWLGIVAZBWDWHUAHUDZUHZVBZUAIUNEVBZABCDEFGHIJMNOPQRVCZV
          DITDWDCVFMVGVHZVIWFUAWJUNZLUAHUDZLWNUNZWGGUNZUAWDUEXAXBVBWFVJBUAWIXBW
          DWJWHUALHVKWJVLLUAHVMZVQVNAWEXCLWPUNXBALWNWPAWLWQWRWSVOVPBLWOXBWDWPWH
          LUAHVRWPVLXEVQVSAWMWEXCXDVBWTWDCLGIVTWAWBWC $.
      $}

      $d a b c d f g m n r t u v w x y z K $.
      cvmlift2.k $e |- K = ( x e. ( 0 [,] 1 ) , y e. ( 0 [,] 1 ) |->
          ( ( iota_ f e. ( II Cn C ) ( ( F o. f ) =
     ( z e. ( 0 [,] 1 ) |-> ( x G z ) ) /\ ( f ` 0 ) = ( H ` x ) ) ) ` y ) ) $.
      $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
         1-Jun-2015.) $)
      cvmlift2lem4 $p |- ( ( X e. ( 0 [,] 1 ) /\ Y e. ( 0 [,] 1 ) ) ->
      ( X K Y ) = ( ( iota_ f e. ( II Cn C ) ( ( F o. f ) =
     ( z e. ( 0 [,] 1 ) |-> ( X G z ) ) /\ ( f ` 0 ) = ( H ` X ) ) ) ` Y ) ) $=
        ( cc0 c1 cicc co cv ccom cmpt wceq cfv wa cii ccn oveq1 mpteq2dv eqeq2d
        crio fveq2 anbi12d riotabidv fveq1d fvex ovmpt2 ) BCNOUCUDUEUFZVECUGZIH
        UGZUHZDVEBUGZDUGZJUFZUIZUJZUCVGUKZVIKUKZUJZULZHUMFUNUFZURZUKOVHDVENVJJU
        FZUIZUJZVNNKUKZUJZULZHVRURZUKMVFWFUKVINUJZVFVSWFWGVQWEHVRWGVMWBVPWDWGVL
        WAVHWGDVEVKVTVINVJJUOUPUQWGVOWCVNVINKUSUQUTVAVBVFOWFUSUBOWFVCVD $.

      $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
         7-May-2015.) $)
      cvmlift2lem5 $p |- ( ph -> K : ( ( 0 [,] 1 ) X. ( 0 [,] 1 ) ) --> B ) $=
        ( cv ccom cc0 c1 cicc co cmpt wceq cfv wa cii ccn crio wcel wral cxp wf
        w3a eqid cvmlift2lem3 adantrr simp1d cnf syl simprr ffvelrnd ralrimivva
        iiuni fmpt2 sylib ) ACUAZIHUAZUBDUCUDUEUFZBUAZDUAJUFUGZUHUCVLUIVNKUIZUH
        UJHUKFULUFZUMZUIZEUNZCVMUOBVMUOVMVMUPEMUQAVTBCVMVMAVNVMUNZVKVMUNZUJUJZV
        MEVKVRWCVRVQUNZVMEVRUQWCWDIVRUBVOUHZUCVRUIVPUHZAWAWDWEWFURWBADEFGHIJKLV
        RVNNOPQRSVRUSUTVAVBVRUKFVMEVHNVCVDAWAWBVEVFVGBCVMVMVSEMTVIVJ $.

      $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
         7-May-2015.) $)
      cvmlift2lem6 $p |- ( ( ph /\ X e. ( 0 [,] 1 ) ) ->
        ( K |` ( { X } X. ( 0 [,] 1 ) ) ) e.
          ( ( ( II tX II ) |`t ( { X } X. ( 0 [,] 1 ) ) ) Cn C ) ) $=
        ( vu vv cc0 c1 cicc co wcel wa csn cxp cres ccom cmpt wceq cfv cii crio
        cv ccn cmpt2 ctx crest wfn wf cvmlift2lem5 adantr ffn syl sylib reseq1d
        fnov wss simpr snssd ssid resmpt2 sylancl w3a elsni oveq1d simp1r simp3
        3ad2ant2 cvmlift2lem4 syl2anc eqtrd mpt2eq3dva eqid ctopon a1i cnmpt2nd
        iitopon cvmlift2lem3 simp1d cnmpt21f cnmpt2res ctop cvv iitop snex ovex
        txrest mp4an oveq1i syl6eleqr eqeltrd ) ANUDUEUFUGZUHZUIZMNUJZXHUKZULZU
        BUCXKXHUCUSZIHUSZUMDXHNDUSJUGUNZUOUDXOUPNKUPZUOUIHUQFUTUGZURZUPZVAZUQUQ
        VBUGXLVCUGZFUTUGZXJXMUBUCXHXHUBUSZXNMUGZVAZXLULZYAXJMYFXLXJMXHXHUKZVDZM
        YFUOXJYHEMVEZYIAYJXIABCDEFGHIJKLMOPQRSTUAVFVGYHEMVHVIUBUCXHXHMVLVJVKXJY
        GUBUCXKXHYEVAZYAXJXKXHVMXHXHVMZYGYKUOXJNXHAXIVNVOZXHVPZUBUCXHXHXKXHYEVQ
        VRXJUBUCXKXHYEXTXJYDXKUHZXNXHUHZVSZYENXNMUGZXTYQYDNXNMYOXJYDNUOYPYDNVTW
        DWAYQXIYPYRXTUOAXIYOYPWBXJYOYPWCABCDEFGHIJKLMNXNOPQRSTUAWEWFWGWHWGWGXJY
        AUQXKVCUGZUQXHVCUGZVBUGZFUTUGYCXJUBUCXTUQYSFUQYTXHXHXKXHYSWIUQXHWJUPUHX
        JWMWKZYMYTWIUUBYLXJYNWKXJUBUCXNXSUQUQUQFXHXHUUBUUBXJUBUCUQUQXHXHUUBUUBW
        LXJXSXRUHIXSUMXPUOUDXSUPXQUOADEFGHIJKLXSNOPQRSTXSWIWNWOWPWQYBUUAFUTUQWR
        UHZUUCXKWSUHXHWSUHYBUUAUOWTWTNXAUDUEUFXBXKXHUQUQWRWRWSWSXCXDXEXFXG $.

      $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
         7-May-2015.) $)
      cvmlift2lem7 $p |- ( ph -> ( F o. K ) = G ) $=
        ( vw cc0 c1 cicc co cv ccom cmpt wceq cfv wa cii ccn crio wcel w3a eqid
        cmpt2 cvmlift2lem3 adantrr simp2d fveq1d wf simp1d iiuni cnf syl simprr
        fvco3 syl2anc oveq2 ovex fvmpt 3impb mpt2eq3dva ffvelrnd a1i cuni cvmcn
        3eqtr3d ccvm 3syl feqmptd fveq2 fmpt2co cxp wfn iitop txunii fnov sylib
        ctx ffn 3eqtr4d ) ABCUBUCUDUEZWOCUFZIHUFZUGDWOBUFZDUFZJUEZUHZUIUBWQUJWR
        KUJZUIUKHULFUMUEZUNZUJZIUJZURBCWOWOWRWPJUEZURZIMUGJABCWOWOXFXGAWRWOUOZW
        PWOUOZXFXGUIAXIXJUKUKZWPIXDUGZUJZWPXAUJZXFXGXKWPXLXAXKXDXCUOZXLXAUIZUBX
        DUJXBUIZAXIXOXPXQUPXJADEFGHIJKLXDWRNOPQRSXDUQUSUTZVAVBXKWOEXDVCZXJXMXFU
        IXKXOXSXKXOXPXQXRVDXDULFWOEVENVFVGZAXIXJVHZWOEWPIXDVIVJXKXJXNXGUIYADWPW
        TXGWOXAWSWPWRJVKXAUQWRWPJVLVMVGVTVNVOABCUAWOWOEXEUAUFZIUJXFMIXKWOEWPXDX
        TYAVPMBCWOWOXEURUIATVQAUAELVRZIAIFLWAUEUOIFLUMUEUOEYCIVCOFILVSIFLEYCNYC
        UQZVFWBWCYBXEIWDWEAJWOWOWFZWGZJXHUIAJULULWLUEZLUMUEUOYEYCJVCYFPJYGLYEYC
        ULULWOWOWHWHVEVEWIYDVFYEYCJWMWBBCWOWOJWJWKWN $.

      $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
         9-Mar-2015.) $)
      cvmlift2lem8 $p |- ( ( ph /\ X e. ( 0 [,] 1 ) ) ->
          ( X K 0 ) = ( H ` X ) ) $=
        ( cc0 c1 cicc co wcel wa ccom cmpt wceq cfv cii crio simpr cvmlift2lem4
        cv ccn 0elunit sylancl eqid cvmlift2lem3 simp3d eqtrd ) ANUBUCUDUEZUFZU
        GZNUBMUEZUBIHUPZUHDVDNDUPJUEUIZUJUBVHUKNKUKZUJUGHULFUQUEZUMZUKZVJVFVEUB
        VDUFVGVMUJAVEUNURABCDEFGHIJKLMNUBOPQRSTUAUOUSVFVLVKUFIVLUHVIUJVMVJUJADE
        FGHIJKLVLNOPQRSTVLUTVAVBVC $.

      ${
        $d a S $.
        cvmlift2lem10.s $e |- S = ( k e. J |->
          { s e. ( ~P C \ { (/) } ) | ( U. s = ( `' F " k ) /\
            A. c e. s ( A. d e. ( s \ { c } ) ( c i^i d ) = (/) /\
               ( F |` c ) e. ( ( C |`t c ) Homeo ( J |`t k ) ) ) ) } ) $.
        ${
          cvmlift2lem9.1 $e |- ( ph -> ( X G Y ) e. M ) $.
          cvmlift2lem9.2 $e |- ( ph -> T e. ( S ` M ) ) $.
          cvmlift2lem9.3 $e |- ( ph -> U e. II ) $.
          cvmlift2lem9.4 $e |- ( ph -> V e. II ) $.
          cvmlift2lem9.5 $e |- ( ph -> ( II |`t U ) e. Conn ) $.
          cvmlift2lem9.6 $e |- ( ph -> ( II |`t V ) e. Conn ) $.
          cvmlift2lem9.7 $e |- ( ph -> X e. U ) $.
          cvmlift2lem9.8 $e |- ( ph -> Y e. V ) $.
          cvmlift2lem9.9 $e |- ( ph -> ( U X. V ) C_ ( `' G " M ) ) $.
          cvmlift2lem9.10 $e |- ( ph -> Z e. V ) $.
          cvmlift2lem9.11 $e |- ( ph -> ( K |` ( U X. { Z } ) ) e.
            ( ( ( II tX II ) |`t ( U X. { Z } ) ) Cn C ) ) $.
          cvmlift2lem9.w $e |- W = ( iota_ b e. T ( X K Y ) e. b ) $.
          $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
             1-Jun-2015.) $)
          cvmlift2lem9 $p |- ( ph ->
           ( K |` ( U X. V ) ) e. ( ( ( II tX II ) |`t ( U X. V ) ) Cn C ) ) $=
            ( vm vn cii ctx co cxp cop iitop ccn eqeltrd ctop wcel a1i wss cuni
            iiuni elssuni syl sseldd opelxpi syl2anc wa fovrnd wceq df-ov sylib
            cfv cima csn cres snidg ovres crest ccnv eqid cconn cvv snex adantr
            wf txrest syl22anc cpw iitopon restsn2 sylancr c0 indisconn eqeltri
            cpr pwsn syl6eqel txconn xpss2 snssd restuni sseqtrd syl3anc crn wb
            xpss1 df-ima imass2 3syl syl5eqr mpbird sstrd cnrest2 mpbid eleqtrd
            syl5eqssr conncn feq2d cc0 c1 cicc txunii cvmlift2lem5 cvmlift2lem7
            ccom txtopi syl6sseqr fvco3 fveq1d eqtr3d 3eqtr4g cvmsiota syl13anc
            ccvm fveq2i eleq1i anbi2i xpss12 wral ad2antrl simprr ctopon sselda
            cv adantrr cvmlift2lem6 syldan cnrest resabs1d ovex restabs 3eltr3d
            xpex oveq1d cvmtop1 toptopon simprl imaco cnvco cnveqd imaeq1d wfun
            sseqtr4d cdm ffun fdm funimass3 cnvimass cnf syl5sseq cvmsss simpld
            cvmcn cvmsuni cvmsrcl cnima restopn2 mpbir2and cvmscld eqtr4d mpdan
            ccld simprd eqeltrrd ralrimivva funimassov cvmlift2lem9a ) AREFHILM
[encoded data, 5600 characters]
            HVVIWJUXFUXGAVXTVYBVUMVURYGVYCVYDVHVIJSTQUXHWHYMUXI $.
        $}

        cvmlift2lem10.1 $e |- ( ph -> X e. ( 0 [,] 1 ) ) $.
        cvmlift2lem10.2 $e |- ( ph -> Y e. ( 0 [,] 1 ) ) $.
        $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
           1-Jun-2015.) $)
        cvmlift2lem10 $p |- ( ph -> E. u e. II E. v e. II ( X e. u /\ Y e. v /\
            ( E. w e. v ( K |` ( u X. { w } ) ) e.
              ( ( ( II tX II ) |`t ( u X. { w } ) ) Cn C ) ->
       ( K |` ( u X. v ) ) e. ( ( ( II tX II ) |`t ( u X. v ) ) Cn C ) ) ) ) $=
          ( vm vt va vb cop cfv cv wcel c0 wne wa wrex csn cxp cii ctx co crest
          cres ccn wi w3a ccvm cuni cc0 c1 cicc iitop iiuni txunii eqid cnf syl
          wf opelxpd ffvelrnd cvmcov syl2anc wex n0 ccnv cima csconn wceq eleq1
          opelxp syl6bb anbi1d 2rexbidv wral adantr cvmsrcl ad2antll cnima ctop
          wss wb eltx mp2an simprl wfn ffn elpreima 3syl mpbir2and rspcdva clly
          iillysconn simplrl simprll llyi mp3an2i simplrr simprlr reeanv simpl2
          sylib a1i simpr2 simp3 reximdv mpd cpconn cconn sconnpconn pconnconn
          ex simprl1 simprr1 xpss12 sstrd 3jcad anim12i jca2 syl5bir rexlimdvva
          mp2and simp3l1 simp3l2 simpl1l simpl1r simpld syl5eqel simprd simpl2l
          crio df-ov simpl2r simp3rl simp3rr simp3l3 simprr cvmlift2lem9 3expia
          rexlimdvaa 3jca reximdvva expr exlimdv syl5bi expimpd rexlimdvw ) AST
          URZOUSZUNUTZVAZUVRKUSZVBVCZVDZUNQVEZSGUTZVAZTFUTZVAZRUWDEUTZVFVGZVLVH
          VHVIVJZUWIVKVJIVMVJVAZEUWFVERUWDUWFVGZVLUWJUWLVKVJIVMVJVAZVNZVOZFVHVE
          GVHVEZANIQVPVJVAZUVQQVQZVAUWCUEAVRVSVTVJZUWSVGZUWRUVPOAOUWJQVMVJVAZUW
          TUWROWGZUFOUWJQUWTUWRVHVHUWSUWSWAWAWBWBWCUWRWDZWEWFZASTUWSUWSULUMWHZW
          IUNUCUBIUVQKMNQUWRUAUKUXCWJWKAUWBUWPUNQAUVSUWAUWPUWAUOUTZUVTVAZUOWLAU
          VSVDZUWPUOUVTWMUXHUXGUWPUOAUVSUXGUWPAUVSUXGVDZVDZUWEUWGUWLOWNUVRWOZXI
          ZVOZVHUWDVKVJZWPVAZVHUWFVKVJZWPVAZVDZVDZFVHVEZGVHVEZUWPUXJSUPUTZVAZTU
          QUTZVAZVDZUYBUYDVGZUXKXIZVDZUQVHVEUPVHVEZUYAUXJDUTZUYGVAZUYHVDZUQVHVE
          UPVHVEZUYJDUXKUVPUYKUVPWQZUYMUYIUPUQVHVHUYOUYLUYFUYHUYOUYLUVPUYGVAUYF
          UYKUVPUYGWRSTUYBUYDWSWTXAXBUXJUXKUWJVAZUYNDUXKXCZUXJUXAUVRQVAZUYPAUXA
          UXIUFXDUXGUYRAUVSUCUBIKUXFUVRMNQUAUKXEXFUVROUWJQXGWKVHXHVAZUYSUYPUYQX
          JWAWAUPUQUXKVHVHXHXHDXKXLYJUXJUVPUXKVAZUVPUWTVAZUVSAVUAUXIUXEXDAUVSUX
          GXMUXJUXBOUWTXNUYTVUAUVSVDXJAUXBUXIUXDXDUWTUWROXOUWTUVPUVROXPXQXRXSUX
          JUYIUYAUPUQVHVHUXJUYBVHVAZUYDVHVAZVDVDZUYIUYAVUDUYIVDZUWDUYBXIZUWEUXO
          VOZGVHVEZUWFUYDXIZUWGUXQVOZFVHVEZUYAVHWPXTVAZVUEVUBUYCVUHYAUXJVUBVUCU
          YIYBVUDUYCUYEUYHYCGWPSUYBVHYDYEVULVUEVUCUYEVUKYAUXJVUBVUCUYIYFVUDUYCU
          YEUYHYGFWPTUYDVHYDYEVUHVUKVDVUGVUJVDZFVHVEZGVHVEVUEUYAVUGVUJGFVHVHYHV
          UEVUNUXTGVHVUEVUMUXSFVHVUEVUMUXMUXRVUEVUMUWEUWGUXLVUMUWEVNVUEVUFUWEUX
          OVUJYIYKVUMUWGVNVUEVUGVUIUWGUXQYLYKVUEVUMUXLVUEVUMVDZUWLUYGUXKVUOVUFV
          UIUWLUYGXIVUFUWEUXOVUJVUEUUAVUIUWGUXQVUGVUEUUBUWDUYBUWFUYDUUCWKVUDUYF
          UYHVUMYFUUDYTUUEVUGUXOVUJUXQVUFUWEUXOYMVUIUWGUXQYMUUFUUGYNYNUUHUUJYTU
          UIYOUXJUXSUWOGFVHVHUXJUWDVHVAZUWFVHVAZVDZUXSUWOUXJVURUXSVOZUWEUWGUWNU
          WEUWGUXLUXRUXJVURUUKZUWEUWGUXLUXRUXJVURUULZVUSUWKUWMEUWFVUSUWHUWFVAZU
          WKVDZVDZBCDHIJKUXFUWDLMNOPQRUVRUWFSTRVJUYDVAUQUXFUUSZSTUWHUAUQUBUCUDV
          VDAUWQAUXIVURUXSVVCUUMZUEWFVVDAUXAVVFUFWFVVDAJHVAVVFUGWFVVDAJNUSVRVRO
          VJWQVVFUHWFUIUJUKVVDSTOVJUVQUVRSTOUUTVVDUVSUXGAUXIVURUXSVVCUUNZUUOUUP
          VVDUVSUXGVVGUUQVUPVUQUXJUXSVVCUURVUPVUQUXJUXSVVCUVAVVDUXOUXNYPVAUXNYQ
          VAVUSUXOVVCUXOUXQUXMUXJVURUVBXDUXNYRUXNYSXQVVDUXQUXPYPVAUXPYQVAVUSUXQ
          VVCUXOUXQUXMUXJVURUVCXDUXPYRUXPYSXQVUSUWEVVCVUTXDVUSUWGVVCVVAXDVUSUXL
          VVCUWEUWGUXLUXRUXJVURUVDXDVUSVVBUWKXMVUSVVBUWKUVEVVEWDUVFUVHUVIUVGUVJ
          YOUVKUVLUVMUVNUVOYO $.
      $}

      ${
        cvmlift2.m $e |- M = { z e. ( ( 0 [,] 1 ) X. ( 0 [,] 1 ) ) |
          K e. ( ( ( II tX II ) CnP C ) ` z ) } $.
        ${
          cvmlift2lem11.1 $e |- ( ph -> U e. II ) $.
          cvmlift2lem11.2 $e |- ( ph -> V e. II ) $.
          cvmlift2lem11.3 $e |- ( ph -> Y e. V ) $.
          cvmlift2lem11.4 $e |- ( ph -> Z e. V ) $.
          cvmlift2lem11.5 $e |- ( ph -> ( E. w e. V
     ( K |` ( U X. { w } ) ) e. ( ( ( II tX II ) |`t ( U X. { w } ) ) Cn C ) ->
       ( K |` ( U X. V ) ) e. ( ( ( II tX II ) |`t ( U X. V ) ) Cn C ) ) ) $.
          $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
             1-Jun-2015.) $)
          cvmlift2lem11 $p |- ( ph ->
              ( ( U X. { Y } ) C_ M -> ( U X. { Z } ) C_ M ) ) $=
            ( csn cxp wss wa cv cii ctx ccnp cfv wcel cc0 cicc crab adantr cuni
            co c1 elssuni iiuni syl6sseqr elunii syl6eleqr syl2anc snssd xpss12
            syl cres crest ccn wrex wf wral cvmlift2lem5 fssresd simpr syl6sseq
            sseldd ssrab simprbi r19.21bi ctopon iitopon txtopon mp2an cnpresti
            toponunii syl3anc ralrimiva wb resttopon sylancr ctop ccvm toptopon
            cvmtop1 sylib cncnp mpbir2and wceq sneq xpeq2d oveq2d oveq1d rspcev
            reseq2d eleq12d imp syldan xpss2 txtopi restuni sseqtrd sselda eqid
            iitop cncnpi cnt a1i txopn syl22anc isopn3i sseqtr4d cnprest mpbird
            ad2antrr ssrabdv ex ) AIRUMZUNZPUOZISUMZUNZPUOAUUBUPZUUDODUQZURURUS
            VHZGUTVHVAVBZDVCVIVDVHZUUIUNZVEZPUUEUUHDUUJUUDUUEIUUIUOZUUCUUIUOUUD
            UUJUOUUEIURVBZUULAUUMUUBUHVFZUUMIURVGZUUIIURVJVKVLVRZUUESUUIASUUIVB
            ZUUBASQVBZQURVBZUUQUKUIUURUUSUPSUUOUUISQURVMVKVNVOVFVPIUUIUUCUUIVQV
            OUUEUUFUUDVBZUPZUUHOIQUNZVSZUUFUUGUVBVTVHZGUTVHVAVBZUVAUVCUVDGWAVHV
            BZUUFUVDVGZVBUVEUUEUVFUUTAUUBOIEUQZUMZUNZVSZUUGUVJVTVHZGWAVHZVBZEQW
            BZUVFUUERQVBZOUUAVSZUUGUUAVTVHZGWAVHZVBZUVOAUVPUUBUJVFZUUEUVTUUAFUV
            QWCZUVQUUFUVRGUTVHVAVBZDUUAWDZUUEUUJFUUAOAUUJFOWCZUUBABCDFGHJKLMNOT
            UAUBUCUDUEUFWEZVFUUEUULYTUUIUOUUAUUJUOZUUPUUERUUIUUEQUUIRUUEUUSQUUI
            UOZAUUSUUBUIVFZUUSQUUOUUIQURVJVKVLVRZUWAWIVPIUUIYTUUIVQVOZWFUUEUWCD
            UUAUUEUUFUUAVBZUPUWGUWLUUHUWCUUEUWGUWLUWKVFUUEUWLWGUUEUUHDUUAUUEUUA
            UUKUOZUUHDUUAWDZUUEUUAPUUKAUUBWGUGWHUWMUWGUWNUUHDUUJUUAWJWKVRWLUUAU
            UFOUUGGUUJUUJUUGURUUIWMVAVBZUWOUUGUUJWMVAVBZWNWNURURUUIUUIWOWPZWRZW
            QWSWTUUEUVRUUAWMVAVBZGFWMVAVBZUVTUWBUWDUPXAUUEUWPUWGUWSUWQUWKUUAUUG
            UUJXBXCUUEGXDVBZUWTAUXAUUBAKGNXEVHVBUXAUAGKNXGVRVFGFTXFXHDUVQUVRGUU
            AFXIVOXJUVNUVTERQUVHRXKZUVKUVQUVMUVSUXBUVJUUAOUXBUVIYTIUVHRXLXMZXQU
            XBUVLUVRGWAUXBUVJUUAUUGVTUXCXNXOXRXPVOAUVOUVFULXSXTVFUUEUUDUVGUUFUU
            EUUDUVBUVGUUEUUCQUOUUDUVBUOUUESQAUURUUBUKVFVPUUCQIYAVRZUUEUUGXDVBZU
            VBUUJUOZUVBUVGXKURURYGYGYBZUUEUULUWHUXFUUPUWJIUUIQUUIVQVOZUVBUUGUUJ
            UWRYCXCYDYEUUFUVCUVDGUVGUVGYFYHVOUVAUXEUXFUUFUVBUUGYIVAVAZVBUWEUUHU
            VEXAUXEUVAUXGYJUUEUXFUUTUXHVFUUEUUDUXIUUFUUEUUDUVBUXIUXDUUEUXEUVBUU
            GVBZUXIUVBXKUXGUUEURXDVBZUXKUUMUUSUXJUXKUUEYGYJZUXLUUNUWIIQURURXDXD
            YKYLUVBUUGYMXCYNYEAUWEUUBUUTUWFYQUVBUUFOUUGGUUJFUWRTYOYLYPYRUGVLYS
            $.
        $}

        $d c ph $.
        cvmlift2.a $e |- A =
          { a e. ( 0 [,] 1 ) | ( ( 0 [,] 1 ) X. { a } ) C_ M } $.
        cvmlift2.s $e |- S = { <. r , t >. |
          ( t e. ( 0 [,] 1 ) /\ E. u e. ( ( nei ` II ) ` { r } )
            ( ( u X. { a } ) C_ M <-> ( u X. { t } ) C_ M ) ) } $.
        $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
           1-Jun-2015.) $)
        cvmlift2lem12 $p |- ( ph -> K e. ( ( II tX II ) Cn C ) ) $=
          ( vv vb vw vk vs vc vd cii ctx co ccn wcel cc0 cxp ccnp cfv wral crab
          cv wss csn ciun wceq iiuni a1i cin wb wa wrex ctop iitop copab sylibr
          wel vex adantl jca df-xp mp2an cop cres crest wi w3a cuni cdif adantr
          c0 cmpt eqid simprr simprl cvmlift2lem10 simplrl simplrr syl22anc wal
          syl6eleqr syl2anr ad3antrrr sneq xpeq2d reseq2d oveq2d oveq1d eleq12d
          simpr syl5bi cvmlift2lem11 impbid syl2anc ex sseq12i ssopab2b opelxpi
          weq bitri rexlimdvva eleq1d ralrimiva sylib cvmlift2lem1 elrab2 cmpt2
          mpd syl ctopon iitopon cvv sylancr c1 cicc cvmlift2lem5 iunid xpiundi
          wf xpeq2i eqtr3i cconn iiconn ccld inss1 cnt ccmp iicmp txtopi neiss2
          cnei mpan snss a1d rexlimiv simpl ssopab2i 3sstr4i txunii ntropn ccnv
          cima chmeo cpw ccvm txopn elunii opnneip syl3anc simplr2 cbvrexv rspe
          simplr3 alrimivv ssntr simpr1 simpr2 sseldd opeq2 ralsn anassrs dfss3
          eleq1 ralxp txtube ntrss2 sstr mpan2 r2al ralcom 3bitr2i ralimi bicom
          rexbii ralbii sylbi rabeq2i ad3antlr elssuni syl6sseqr sselda bibi12d
          baib sseq1d syl5ibr ralimdva syl5 anim2d reximdva ssrab2 isclo sseldi
          eqsstri wne 0elunit wrel relxp opelxp id df-3an wfn ffn reseq1d snssd
          fnov resmpt2 cvmlift2lem8 sylan syldan elsni eqeq1d syl5ibrcom 3impia
          simplll mpt2eq3dva 3eqtrd cnmpt1st ccom cvmlift2lem2 simp1d cnmpt2res
          snex txrest mp4an oveq1i eqeltrd rspcev xpss12 restuni eleqtrd cncnpi
          cnmpt21f expcom isopn3i eleqtrrd cnprest sylibrd embantd fveq2 eleq2d
          expimpd sylanbrc opeq2d relssdv ne0i connclo syl5reqr rabid2 syl5eqss
          inss2 iunss syl6sseq ssrab simprbi txtopon cvmtop1 toptopon mpbir2and
          cncnp ) AQURURUSUTZIVAUTVBZVCUUAUUBUTZVWIVDZHQUUFZQDVIZVWGIVEUTZVFZVB
[encoded data, 6160 characters]
          $.
      $}

      $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
         7-May-2015.) $)
      cvmlift2lem13 $p |- ( ph -> E! g e. ( ( II tX II ) Cn C )
        ( ( F o. g ) = G /\ ( 0 g 0 ) = P ) ) $=
        ( vu vt va vd vv vb vc vr cv ccom wceq cc0 co wa cii ctx wrex wrmo wreu
        ccn wcel c1 cicc csn cxp ccnp cfv crab wss cnei copab weq fveq2 cbvrabv
        wb eleq2d xpeq2d sseq1d simpr eleq1d xpeq1 bibi12d cbvrexv simpl fveq2d
        sneq sneqd bibi2d rexeqbidv anbi12d cbvopabv cvmlift2lem12 cvmlift2lem7
        syl5bb 0elunit cvmlift2lem8 mpan2 cmpt cvmlift2lem2 simp3d eqtrd eqeq1d
        coeq2 oveq rspcev syl12anc iitop iiuni txunii cconn iiconn txconn mp2an
        cop a1i iinllyconn txnlly opelxpi syl6eq cvmliftmo eqeq1i anbi2i rmobii
        cnlly df-ov sylibr reu5 sylanbrc ) AJIUJZUKZKULZUMUMYJUNZGULZUOZIUPUPUQ
        UNZFVAUNZURZYOIYQUSZYOIYQUTANYQVBJNUKZKULZUMUMNUNZGULZYRABCDUBUCUMVCVDU
        NZDUJZVEZVFZNUDUJZYPFVGUNZVHZVBZUDUUDUUDVFZVIZVJZDUUDVIEFGUEUJZUUDVBZUF
        UJZUGUJZVEZVFZUUMVJZUUQUUOVEZVFZUUMVJZVPZUFUHUJZVEZUPVKVHZVHZURZUOZUHUE
        VLHJKLMNUUMUIUGOPQRSTUAUUKNUUEUUIVHZVBUDDUULUDDVMUUJUVLNUUHUUEUUIVNVQVO
        UUNUUDUUSVFZUUMVJDUGUUDDUGVMZUUGUVMUUMUVNUUFUUSUUDUUEUURWGVRVSVOUVKUCUJ
        ZUUDVBZUBUJZUUSVFZUUMVJZUVQUVOVEZVFZUUMVJZVPZUBUIUJZVEZUVHVHZURZUOUHUEU
        IUCUHUIVMZUEUCVMZUOZUUPUVPUVJUWGUWJUUOUVOUUDUWHUWIVTZWAUVJUVSUVQUVBVFZU
        UMVJZVPZUBUVIURUWJUWGUVEUWNUFUBUVIUFUBVMZUVAUVSUVDUWMUWOUUTUVRUUMUUQUVQ
        UUSWBVSUWOUVCUWLUUMUUQUVQUVBWBVSWCWDUWJUWNUWCUBUVIUWFUWJUVGUWEUVHUWJUVF
        UWDUWHUWIWEWHWFUWJUWMUWBUVSUWJUWLUWAUUMUWJUVBUVTUVQUWJUUOUVOUWKWHVRVSWI
        WJWOWKWLWMABCDEFGHJKLMNOPQRSTUAWNAUUBUMLVHZGAUMUUDVBZUUBUWPULWPABCDEFGH
        JKLMNUMOPQRSTUAWQWRALUPFVAUNVBJLUKDUUDUUEUMKUNWSULUWPGULADEFGHJKLMOPQRS
        TWTXAXBYOUUAUUCUOINYQYJNULZYLUUAYNUUCUWRYKYTKYJNJXDXCUWRYMUUBGUMUMYJNXE
        XCWKXFXGAYLUMUMXOZYJVHZGULZUOZIYQUSYSAEFGIJKMYPUWSUULOUPUPUUDUUDXHXHXIX
        IXJPYPXKVBZAUPXKVBZUXDUXCXLXLUPUPXMXNXPYPXKYEZVBZAUPUXEVBZUXGUXFXQXQXKU
        PUPBCBUJCUJXMXRXNXPUWSUULVBZAUWQUWQUXHWPWPUMUMUUDUUDXSXNXPQRAGJVHUMUMKU
        NUWSKVHSUMUMKYFXTYAYOUXBIYQYNUXAYLYMUWTGUMUMYJYFYBYCYDYGYOIYQYHYI $.
    $}

    $( A two-dimensional version of ~ cvmlift .  There is a unique lift of
       functions on the unit square ` II tX II ` which commutes with the
       covering map.  (Contributed by Mario Carneiro, 1-Jun-2015.) $)
    cvmlift2 $p |- ( ph -> E! f e. ( ( II tX II ) Cn C )
      ( ( F o. f ) = G /\ ( 0 f 0 ) = P ) ) $=
      ( vz vg cv cc0 co wceq cfv vx vy vh vw vu vv vk ccom c1 cicc cmpt cii ccn
      crio cmpt2 coeq2 oveq1 cbvmptv a1i eqeq12d fveq1 eqeq1d anbi12d cbvriotav
      wa oveq2 mpteq2dv eqeq2d riotabidv syl5eq fveq1d cbvmpt2v cvmlift2lem13
      fveq2 ) AUAUBNBCDOEFGFUCPZUHZUDQUIUJRZUDPZQGRZUKZSZQVOTZDSZVEZUCULCUMRZUN
      ZHUEUFVQVQUFPZFUGPZUHZUDVQUEPZVRGRZUKZSZQWHTZWJWFTZSZVEZUGWEUNZTZUOIJKLMW
      DFOPZUHZNVQNPZQGRZUKZSZQWTTZDSZVEUCOWEVOWTSZWAXEWCXGXHVPXAVTXDVOWTFUPVTXD
      SXHUDNVQVSXCVRXBQGUQURUSUTXHWBXFDQVOWTVAVBVCVDUEUFUAUBVQVQWSUBPZXANVQUAPZ
      XBGRZUKZSZXFXJWFTZSZVEZOWEUNZTWGXQTWJXJSZWGWRXQXRWRXANVQWJXBGRZUKZSZXFWOS
      ZVEZOWEUNXQWQYCUGOWEWHWTSZWMYAWPYBYDWIXAWLXTWHWTFUPWLXTSYDUDNVQWKXSVRXBWJ
      GVFURUSUTYDWNXFWOQWHWTVAVBVCVDXRYCXPOWEXRYAXMYBXOXRXTXLXAXRNVQXSXKWJXJXBG
      UQVGVHXRWOXNXFWJXJWFVNVHVCVIVJVKWGXIXQVNVLVM $.
  $}

  ${
    $d f s x A $.  $d f s x B $.  $d f h s x F $.  $d f g h J $.  $d g h s M $.
    $d f g h s x C $.  $d f g h s x G $.  $d f g h s x H $.  $d g h s ph $.
    $d g h s N $.  $d f h x P $.
    cvmliftpht.b $e |- B = U. C $.
    cvmliftpht.m $e |- M =
      ( iota_ f e. ( II Cn C ) ( ( F o. f ) = G /\ ( f ` 0 ) = P ) ) $.
    cvmliftpht.n $e |- N =
      ( iota_ f e. ( II Cn C ) ( ( F o. f ) = H /\ ( f ` 0 ) = P ) ) $.
    cvmliftpht.f $e |- ( ph -> F e. ( C CovMap J ) ) $.
    cvmliftpht.p $e |- ( ph -> P e. B ) $.
    cvmliftpht.e $e |- ( ph -> ( F ` P ) = ( G ` 0 ) ) $.
    ${
      cvmliftphtlem.g $e |- ( ph -> G e. ( II Cn J ) ) $.
      cvmliftphtlem.h $e |- ( ph -> H e. ( II Cn J ) ) $.
      cvmliftphtlem.k $e |- ( ph -> K e. ( G ( PHtpy ` J ) H ) ) $.
      cvmliftphtlem.a $e |- ( ph -> A e. ( ( II tX II ) Cn C ) ) $.
      cvmliftphtlem.c $e |- ( ph -> ( F o. A ) = K ) $.
      cvmliftphtlem.0 $e |- ( ph -> ( 0 A 0 ) = P ) $.
      $( Lemma for ~ cvmliftpht .  (Contributed by Mario Carneiro,
         6-Jul-2015.) $)
      cvmliftphtlem $p |- ( ph -> A e. ( M ( PHtpy ` C ) N ) ) $=
        ( vs vx cii ccn co wcel ccom wceq cc0 cfv cvmliftiota simp1d c1 phtpy01
        simpld eqtrd cv cmpt wral wa cop cxp wf iitop iiuni cnf 0elunit opelxpi
        syl mpan2 fvco3 syl2an adantr fveq1d eqtr3d df-ov fveq2i 3eqtr4g ctopon
        crio a1i mpteq2dva fovrn mp3an3 sylan eqidd eqid feqmptd fmptco 3eqtr4d
        fveq2 wreu wb cnmptc cnmpt12f cvmlift syl22anc coeq2 eqeq1d fveq1 oveq1
        ovex fvmpt ax-mp syl6eq anbi12d riota2 mpbi2and syl5eq cvv mpteqb ovexd
        syl2anc mprg sylib r19.21bi 1elunit simprd csn ffvelrn sylancl cnconst2
        cconn syl3anc mpan fconstmpt syl6eqr fcoconst oveq2 fvconst2 cvmliftmoi
        mp3an2 fvex rspcv mpsyl cicc ctx txunii iitopon cphtpy phtpyhtpy sseldd
        chtpy htpyi cuni cvmcn cnmptid iiconn cnlly iinllyconn cvmtop1 toptopon
        ccvm ctop phtpyi simp3d fveq2d wfn ffn eqtr4d simp2d eqeq12d isphtpy2d
        3eqtrd ) ALMBDUFALUHDUIUJZUKZGLULZHUMZUNLUOZEUMZACDEFGHLJNOQTRSUPZUQZAM
[encoded data, 4720 characters]
        FUWIVYFYKXJVYEXOUKVYJVYKWRUFUWIUFUWIVYEVYFXOXPUXHURUWEBXQXSXTYAUVH $.
    $}

    cvmliftpht.g $e |- ( ph -> G ( ~=ph ` J ) H ) $.
    $( If ` G ` and ` H ` are path-homotopic, then their lifts ` M ` and ` N `
       are also path-homotopic.  (Contributed by Mario Carneiro,
       6-Jul-2015.) $)
    cvmliftpht $p |- ( ph -> M ( ~=ph ` C ) N ) $=
      ( co cc0 vg vh cii ccn wcel cphtpy cfv c0 wne cphtpc wbr ccom w3a isphtpc
      wceq sylib simp1d cvmliftiota simp2d c1 wa phtpc01 simpld eqtrd cv simp3d
      syl wex n0 wreu wrex ccvm adantr phtpycn sselda cicc 0elunit simpr phtpyi
      mpan2 eqtr4d cvmlift2 reurex ad2antrr simplr simprl simprrl cvmliftphtlem
      ctx simprrr ne0i rexlimddv exlimddv syl3anbrc ) AJUCCUDSZUEZKWOUEZJKCUFUG
      SZUHUIZJKCUJUGUKAWPFJULGUOTJUGDUOABCDEFGJILMOAGUCIUDSZUEZHWTUEZGHIUFUGSZU
      HUIZAGHIUJUGUKZXAXBXDUMRGHIUNUPZUQZPQURUQAWQFKULHUOTKUGDUOABCDEFHKILNOAXA
      XBXDXFUSZPADFUGZTGUGZTHUGZQAXJXKUOZUTGUGZUTHUGUOZAXEXLXNVARGHIVBVGVCVDURU
      QAUAVEZXCUEZWSUAAXDXPUAVHAXAXBXDXFVFUAXCVIUPAXPVAZFUBVEZULXOUOZTTXRSDUOZV
      AZWSUBUCUCWISZCUDSZXQYAUBYCVJYAUBYCVKXQBCDUBFXOILAFCIVLSUEZXPOVMAXCYBIUDS
      XOAGHIXGXHVNVOADBUEZXPPVMXQXIXJTTXOSZAXIXJUOZXPQVMXQYFXJUOZUTTXOSXMUOZXQT
      TUTVPSUEYHYIVAVQXQTGHXOIAXAXPXGVMAXBXPXHVMAXPVRVSVTVCWAWBYAUBYCWCVGXQXRYC
      UEZYAVAZVAZXRWRUEWSYLXRBCDEFGHIXOJKLMNAYDXPYKOWDAYEXPYKPWDAYGXPYKQWDAXAXP
      YKXGWDAXBXPYKXHWDAXPYKWEXQYJYAWFXQYJXSXTWGXQYJXSXTWJWHWRXRWKVGWLWMJKCUNWN
      $.
  $}

  ${
    $d b c d f k s w z A $.  $d f g w z I $.  $d a b c d f g k s u v w x y J $.
    $d a b c d f g h k n s u v w x y z F $.  $d f g h n x y M $.  $d f g w N $.
    $d a b c d f g h m n t v w x y z H $.  $d f g w Q $.  $d a b f m t v x S $.
    $d a b d f g h u v w x y z B $.  $d g w R $.  $d a b c d f g h n w x z X $.
    $d a b c d f g h k m n t u v w x y z G $.  $d b c d s T $.  $d f g x z Z $.
    $d a b c d f g h k m n s t u v w x y z C $.  $d a f h m n t v w x y ph $.
    $d a b c f g h m n t u v w x y z K $.  $d a b c d f g h n u v w x z P $.
    $d a b c f g h n u v w x z O $.  $d a f g h m t u v w x y z Y $.
    $d c d f h n x y W $.
    cvmlift3.b $e |- B = U. C $.
    cvmlift3.y $e |- Y = U. K $.
    cvmlift3.f $e |- ( ph -> F e. ( C CovMap J ) ) $.
    cvmlift3.k $e |- ( ph -> K e. SConn ) $.
    cvmlift3.l $e |- ( ph -> K e. N-Locally PConn ) $.
    cvmlift3.o $e |- ( ph -> O e. Y ) $.
    cvmlift3.g $e |- ( ph -> G e. ( K Cn J ) ) $.
    cvmlift3.p $e |- ( ph -> P e. B ) $.
    cvmlift3.e $e |- ( ph -> ( F ` P ) = ( G ` O ) ) $.
    ${
      cvmlift3lem1.1 $e |- ( ph -> M e. ( II Cn K ) ) $.
      cvmlift3lem1.2 $e |- ( ph -> ( M ` 0 ) = O ) $.
      cvmlift3lem1.3 $e |- ( ph -> N e. ( II Cn K ) ) $.
      cvmlift3lem1.4 $e |- ( ph -> ( N ` 0 ) = O ) $.
      cvmlift3lem1.5 $e |- ( ph -> ( M ` 1 ) = ( N ` 1 ) ) $.
      $( Lemma for ~ cvmlift3 .  (Contributed by Mario Carneiro,
         6-Jul-2015.) $)
      cvmlift3lem1 $p |- ( ph ->
        ( ( iota_ g e. ( II Cn C )
          ( ( F o. g ) = ( G o. M ) /\ ( g ` 0 ) = P ) ) ` 1 ) =
        ( ( iota_ g e. ( II Cn C )
          ( ( F o. g ) = ( G o. N ) /\ ( g ` 0 ) = P ) ) ` 1 ) ) $=
        ( cc0 cv ccom wceq cfv wa cii ccn co crio cphtpc wbr eqid fveq2d eqtr4d
        c1 cicc wf wcel iiuni cnf syl 0elunit fvco3 sylancl phtpcco2 cvmliftpht
        sconnpht2 phtpc01 simprd ) AUHFEUIZUJZGJUJZUKUHVRULDUKZUMEUNCUOUPZUQZUL
        UHVSGKUJZUKWAUMEWBUQZULUKZVCWCULVCWEULUKZAWCWECURULUSWFWGUMABCDEFVTWDHW
        CWENWCUTWEUTPUAADFULZUHJULZGULZUHVTULZAWHLGULWJUBAWILGUDVAVBAUHVCVDUPZM
        JVEZUHWLVFWKWJUKAJUNIUOUPVFWMUCJUNIWLMVGOVHVIVJWLMUHGJVKVLVBAGJKIHAJKIQ
        UCUEAWILUHKULUDUFVBUGVOTVMVNWCWECVPVIVQ $.
    $}

    $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro, 6-Jul-2015.) $)
    cvmlift3lem2 $p |- ( ( ph /\ X e. Y ) -> E! z e. B E. f e. ( II Cn K )
      ( ( f ` 0 ) = O /\ ( f ` 1 ) = X /\ ( ( iota_ g e. ( II Cn C )
        ( ( F o. g ) = ( G o. f ) /\ ( g ` 0 ) = P ) ) ` 1 ) = z ) ) $=
      ( va vh vw wcel wa cc0 cv cfv wceq cii ccn wrex ccom crio w3a wreu cpconn
      c1 co csconn adantr sconnpconn simpr pconncn syl3anc wi wral cicc wf eqid
      syl ccvm ad2antrr simprl syl2anc simprrl fveq2d iiuni cnf 0elunit sylancl
      cnco fvco3 3eqtr4rd cvmliftiota simp1d 1elunit ffvelrn eqidd fveq1 eqeq1d
      simprrr eqeq2d anbi1d riotabidv fveq1d 3anbi123d syl13anc ad4antr simprr1
      coeq2 rspcev cnlly simprr2 eqtr4d cvmlift3lem1 eqtrd rexlimdvaa ralrimiva
      simprr3 eqeq2 3anbi3d rexbidv eqeq1 imbi2d ralbidv anbi12d cbvrexv syl5bb
      syl12anc reu8 sylibr mpd ) AMNUGZUHZUIUDUJZUKZLULZVAYIUKZMULZUHZUDUMKUNVB
      ZUOZUIFUJZUKZLULZVAYQUKZMULZVAHGUJZUPZIYQUPZULZUIUUBUKEULZUHZGUMDUNVBZUQZ
      UKZBUJZULZURZFYOUOZBCUSZYHKUTUGZLNUGZYGYPYHKVCUGZUUPAUURYGRVDKVEVNAUUQYGT
      VDAYGVFLMUDKNPVGVHYHYNUUOUDYOYHYIYOUGZYNUHZUHZUUNUIUEUJZUKZLULZVAUVBUKZMU
      LZVAUUCIUVBUPZULZUUFUHZGUUHUQZUKZUFUJZULZURZUEYOUOZUUKUVLULZVIZUFCVJZUHZB
      CUOZUUOUVAVAUUCIYIUPZULZUUFUHZGUUHUQZUKZCUGZYSUUAUUJUWEULZURZFYOUOZUVOUWE
      UVLULZVIZUFCVJZUVTUVAUIVAVKVBZCUWDVLZVAUWMUGUWFUVAUWDUUHUGZUWNUVAUWOHUWDU
      PUWAULUIUWDUKEULUVACDEGHUWAUWDJOUWDVMAHDJVOVBUGZYGUUTQVPUVAUUSIKJUNVBUGZU
      WAUMJUNVBUGYHUUSYNVQZAUWQYGUUTUAVPYIIUMKJWEVRAECUGZYGUUTUBVPUVAYJIUKZLIUK
      ZUIUWAUKZEHUKZUVAYJLIYHUUSYKYMVSZVTUVAUWMNYIVLZUIUWMUGUXBUWTULUVAUUSUXEUW
      RYIUMKUWMNWAPWBVNWCUWMNUIIYIWFWDAUXCUXAULZYGUUTUCVPWGWHWIUWDUMDUWMCWAOWBV
      NWJUWMCVAUWDWKWDUVAUUSYKYMUWEUWEULZUWIUWRUXDYHUUSYKYMWOZUVAUWEWLUWHYKYMUX
      GURFYIYOYQYIULZYSYKUUAYMUWGUXGUXIYRYJLUIYQYIWMWNUXIYTYLMVAYQYIWMWNUXIUUJU
      WEUWEUXIVAUUIUWDUXIUUGUWCGUUHUXIUUEUWBUUFUXIUUDUWAUUCYQYIIXDWPWQWRWSWNWTX
      EXAUVAUWKUFCUVAUVLCUGZUHZUVNUWJUEYOUXKUVBYOUGZUVNUHZUHZUWEUVKUVLUXNCDEGHI
      JKYIUVBLNOPAUWPYGUUTUXJUXMQXBAUURYGUUTUXJUXMRXBAKUTXFUGYGUUTUXJUXMSXBAUUQ
      YGUUTUXJUXMTXBAUWQYGUUTUXJUXMUAXBAUWSYGUUTUXJUXMUBXBAUXFYGUUTUXJUXMUCXBUV
      AUUSUXJUXMUWRVPUVAYKUXJUXMUXDVPUXKUXLUVNVQUVDUVFUVMUXLUXKXCUXNYLMUVEUVAYM
      UXJUXMUXHVPUVDUVFUVMUXLUXKXGXHXIUVDUVFUVMUXLUXKXMXJXKXLUVSUWIUWLUHBUWECUU
      KUWEULZUUNUWIUVRUWLUXOUUMUWHFYOUXOUULUWGYSUUAUUKUWEUUJXNXOXPUXOUVQUWKUFCU
      XOUVPUWJUVOUUKUWEUVLXQXRXSXTXEYCUUNUVOBUFCUUNUVDUVFUVKUUKULZURZUEYOUOUVPU
      VOUUMUXQFUEYOYQUVBULZYSUVDUUAUVFUULUXPUXRYRUVCLUIYQUVBWMWNUXRYTUVEMVAYQUV
      BWMWNUXRUUJUVKUUKUXRVAUUIUVJUXRUUGUVIGUUHUXRUUEUVHUUFUXRUUDUVGUUCYQUVBIXD
      WPWQWRWSWNWTYAUVPUXQUVNUEYOUVPUXPUVMUVDUVFUUKUVLUVKXNXOXPYBYDYEXKYF $.

    ${
      cvmlift3.h $e |- H = ( x e. Y |-> ( iota_ z e. B E. f e. ( II Cn K )
        ( ( f ` 0 ) = O /\ ( f ` 1 ) = x /\ ( ( iota_ g e. ( II Cn C )
          ( ( F o. g ) = ( G o. f ) /\ ( g ` 0 ) = P ) ) ` 1 ) = z ) ) ) $.
      $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
         6-Jul-2015.) $)
      cvmlift3lem3 $p |- ( ph -> H : Y --> B ) $=
        ( cc0 cv cfv wceq c1 ccom wa cii ccn co crio w3a wrex wcel cvmlift3lem2
        wreu riotacl syl fmptd ) ABOUFGUGZUHNUIUJVEUHBUGZUIUJIHUGZUKJVEUKUIUFVG
        UHFUIULHUMEUNUOUPUHCUGUIUQGUMMUNUOURZCDUPZDKAVFOUSULVHCDVAVIDUSACDEFGHI
        JLMNVFOPQRSTUAUBUCUDUTVHCDVBVCUEVD $.

      $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
         6-Jul-2015.) $)
      cvmlift3lem4 $p |- ( ( ph /\ X e. Y ) -> ( ( H ` X ) = A <-> E. f e.
    ( II Cn K ) ( ( f ` 0 ) = O /\ ( f ` 1 ) = X /\ ( ( iota_ g e. ( II Cn C )
      ( ( F o. g ) = ( G o. f ) /\ ( g ` 0 ) = P ) ) ` 1 ) = A ) ) ) $=
        ( wcel wa cfv wceq cc0 cv c1 ccom cii ccn co crio w3a wrex cvmlift3lem3
        ffvelrnda eleq1 syl5ibcom wi cicc eqid ccvm ad2antrr simprl cnco simprr
        syl2anc fveq2d iiuni cnf syl 0elunit fvco3 sylancl 3eqtr4rd cvmliftiota
        wf simp1d 1elunit ffvelrn expr 3impd rexlimdva wb eqeq2 3anbi2d rexbidv
        a1dd riotabidv riotaex adantl eqeq1d cvmlift3lem2 3anbi3d riota2 sylan2
        fvmpt wreu bitr4d expcom pm5.21ndd ) APQUHZUIZDEUHZPLUJZDUKZULHUMZUJZOU
        KZUNXNUJZPUKZUNJIUMZUOKXNUOZUKULXSUJGUKUIIUPFUQURZUSZUJZDUKZUTZHUPNUQUR
        ZVAZXJXLEUHXMXKAQEPLABCEFGHIJKLMNOQRSTUAUBUCUDUEUFUGVBVCXLDEVDVEXJYEXKH
        YFXJXNYFUHZUIZXPXRYDXKYIXPYDXKVFZXRXJYHXPYJXJYHXPUIZUIZYCEUHZYDXKYLULUN
        VGURZEYBWDZUNYNUHYMYLYBYAUHZYOYLYPJYBUOXTUKULYBUJGUKYLEFGIJXTYBMRYBVHAJ
        FMVIURUHXIYKTVJYLYHKNMUQURUHZXTUPMUQURUHXJYHXPVKZAYQXIYKUDVJXNKUPNMVLVN
        AGEUHXIYKUEVJYLXOKUJZOKUJZULXTUJZGJUJZYLXOOKXJYHXPVMVOYLYNQXNWDZULYNUHU
        UAYSUKYLYHUUCYRXNUPNYNQVPSVQVRVSYNQULKXNVTWAAUUBYTUKXIYKUFVJWBWCWEYBUPF
        YNEVPRVQVRWFYNEUNYBWGWAYCDEVDVEWHWOWIWJXKXJXMYGWKXKXJUIXMXPXRYCCUMZUKZU
        TZHYFVAZCEUSZDUKZYGXJXMUUIWKXKXJXLUUHDXIXLUUHUKABPXPXQBUMZUKZUUEUTZHYFV
        AZCEUSUUHQLUUJPUKZUUMUUGCEUUNUULUUFHYFUUNUUKXRXPUUEUUJPXQWLWMWNWPUGUUGC
        EWQXDWRWSWRXJXKUUGCEXEYGUUIWKACEFGHIJKMNOPQRSTUAUBUCUDUEUFWTUUGYGCEDUUD
        DUKZUUFYEHYFUUOUUEYDXPXRUUDDYCWLXAWNXBXCXFXGXH $.

      $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
         6-Jul-2015.) $)
      cvmlift3lem5 $p |- ( ph -> ( F o. H ) = G ) $=
        ( vy vw cv cfv cmpt ccom wcel wa cc0 wceq c1 cii ccn crio w3a wrex eqid
        co cvmlift3lem4 df-3an ccvm ad3antrrr simplr cnco syl2anc simprl fveq2d
        mpbii cicc wf iiuni cnf syl 0elunit sylancl 3eqtr4rd cvmliftiota simp2d
        fvco3 fveq1d simp1d 1elunit simprr eqtrd 3eqtr3d fveq2 eqeq1d syl5ibcom
        expimpd syl5bi rexlimdva mpteq2dva cvmlift3lem3 ffvelrnda feqmptd cvmcn
        mpd cuni 3syl fmptco 3eqtr4d ) AUFOUFUHZKUIZIUIZUJUFOXGJUIZUJIKUKJAUFOX
        IXJAXGOULZUMZUNGUHZUIZNUOZUPXMUIZXGUOZUPIHUHZUKJXMUKZUOUNXRUIFUOUMHUQEU
        RVCZUSZUIZXHUOZUTZGUQMURVCZVAZXIXJUOZXLXHXHUOYFXHVBABCXHDEFGHIJKLMNXGOP
        QRSTUAUBUCUDUEVDVMXLYDYGGYEYDXOXQUMZYCUMXLXMYEULZUMZYGXOXQYCVEYJYHYCYGY
        JYHUMZYBIUIZXJUOYCYGYKUPIYAUKZUIZUPXSUIZYLXJYKUPYMXSYKYAXTULZYMXSUOZUNY
        AUIFUOZYKDEFHIXSYALPYAVBAIELVFVCULZXKYIYHRVGYKYIJMLURVCULZXSUQLURVCULXL
        YIYHVHZAYTXKYIYHUBVGXMJUQMLVIVJAFDULXKYIYHUCVGYKXNJUIZNJUIZUNXSUIZFIUIZ
        YKXNNJYJXOXQVKVLYKUNUPVNVCZOXMVOZUNUUFULUUDUUBUOYKYIUUGUUAXMUQMUUFOVPQV
        QVRZVSUUFOUNJXMWDVTAUUEUUCUOXKYIYHUDVGWAWBZWCWEYKUUFDYAVOZUPUUFULZYNYLU
        OYKYPUUJYKYPYQYRUUIWFYAUQEUUFDVPPVQVRWGUUFDUPIYAWDVTYKYOXPJUIZXJYKUUGUU
        KYOUULUOUUHWGUUFOUPJXMWDVTYKXPXGJYJXOXQWHVLWIWJYCYLXIXJYBXHIWKWLWMWNWOW
        PXBWQAUFUGODXHUGUHZIUIXIKIAODXGKABCDEFGHIJKLMNOPQRSTUAUBUCUDUEWRZWSAUFO
        DKUUNWTAUGDLXCZIAYSIELURVCULDUUOIVOREILXAIELDUUOPUUOVBZVQXDWTUUMXHIWKXE
        AUFOUUOJAYTOUUOJVOUBJMLOUUOQUUPVQVRWTXF $.

      cvmlift3lem7.s $e |- S = ( k e. J |->
        { s e. ( ~P C \ { (/) } ) | ( U. s = ( `' F " k ) /\
          A. c e. s ( A. d e. ( s \ { c } ) ( c i^i d ) = (/) /\
             ( F |` c ) e. ( ( C |`t c ) Homeo ( J |`t k ) ) ) ) } ) $.
      ${
        cvmlift3lem7.1 $e |- ( ph -> ( G ` X ) e. A ) $.
        cvmlift3lem7.2 $e |- ( ph -> T e. ( S ` A ) ) $.
        cvmlift3lem7.3 $e |- ( ph -> M C_ ( `' G " A ) ) $.
        cvmlift3lem7.w $e |- W = ( iota_ b e. T ( H ` X ) e. b ) $.
        ${
          cvmlift3lem6.x $e |- ( ph -> X e. M ) $.
          cvmlift3lem6.z $e |- ( ph -> Z e. M ) $.
          cvmlift3lem6.q $e |- ( ph -> Q e. ( II Cn K ) ) $.
          cvmlift3lem6.r $e |- R = ( iota_ g e. ( II Cn C )
            ( ( F o. g ) = ( G o. Q ) /\ ( g ` 0 ) = P ) ) $.
          cvmlift3lem6.1 $e |- ( ph ->
            ( ( Q ` 0 ) = O /\ ( Q ` 1 ) = X /\ ( R ` 1 ) = ( H ` X ) ) ) $.
          cvmlift3lem6.n $e |- ( ph -> N e. ( II Cn ( K |`t M ) ) ) $.
          cvmlift3lem6.2 $e |- ( ph ->
            ( ( N ` 0 ) = X /\ ( N ` 1 ) = Z ) ) $.
          cvmlift3lem6.i $e |- I = ( iota_ g e. ( II Cn C )
            ( ( F o. g ) = ( G o. N ) /\ ( g ` 0 ) = ( H ` X ) ) ) $.
          $( Lemma for ~ cvmlift3 .  (Contributed by Mario Carneiro,
             9-Jul-2015.) $)
          cvmlift3lem6 $p |- ( ph -> ( H ` Z ) e. W ) $=
            ( cfv c1 wceq cc0 cv ccom wa cii ccn co crio w3a cpco wcel ctop wss
            crest syl sseldd simp2d simpld eqtr4d pcocn pco0 simp1d pco1 simprd
            eqtrd syl2anc fveq2d wf iiuni cnf 0elunit fvco3 sylancl cvmliftiota
            cnco 3eqtr4rd ccnv cima cdm cnvimass cuni fdm syl5sseq sstrd fveq1d
            simp3d copco coeq2 eqeq1d fveq1 syl13anc mpbird a1i ctopon toptopon
            wb crn sylib rnco2 syl3anc frn wfun eqeltrd wrex sconntop cicc eqid
            csconn cnrest2r cvmlift3lem3 cvmlift3lem5 eqtr3d oveq12d ccvm cvmcn
            ffvelrnd 3eqtr4d wreu cvmlift syl22anc anbi12d riota2 eqeq2d anbi1d
            mpbi2and riotabidv 3anbi123d rspcev cvmlift3lem4 mpdan cconn iiconn
            cvmtop1 rneqd 3eqtr3g iitopon resttopon cnf2 ffun funimass3 eqsstrd
            syl6ss sseqtr4d mpbid cnrest2 cvmsss cvmsiota elssuni cvmsuni cnima
            sseqtrd cvmsrcl restopn2 mpbir2and cvmscld conncn 1elunit ffvelrn
            ccld ) AUGQVOZVPRVOZUDAUWQUWRVQZVRLVSZVOZUCVQZVPUWTVOZUGVQZVPOMVSZV
            TZPUWTVTZVQZVRUXEVOZGVQZWAZMWBFWCWDZWEZVOZUWRVQZWFZLWBTWCWDZUUAZAHU
            BTWGVOWDZUXQWHZVRUXSVOZUCVQZVPUXSVOZUGVQZVPUXFPUXSVTZVQZUXJWAZMUXLW
            EZVOZUWRVQZUXRAHUBTVIAWBTUAWKWDZWCWDZUXQUBATWIWHZUYLUXQWJATUUEWHUYM
            UOTUUBWLZUAWBTUUFWLVLWMZAVPHVOZUEVRUBVOZAVRHVOZUCVQZUYPUEVQZVPIVOZU
            EQVOZVQZVKWNAUYQUEVQZVPUBVOZUGVQZVMWOZWPZWQZAUYAUYRUCAHUBTVIUYOWRAU
            YSUYTVUCVKWSZXBZAUYCVUEUGAHUBTVIUYOWTAVUDVUFVMXAXBAUYIVPIRFWGVOWDZV
            OUWRAVPUYHVULAOVULVTZUYEVQZVRVULVOZGVQZUYHVULVQZAOIVTZORVTZSWGVOZWD
            PHVTZPUBVTZVUTWDVUMUYEAVURVVAVUSVVBVUTAIUXLWHZVURVVAVQZVRIVOZGVQZAE
            FGMOVVAISULVJUNAHUXQWHZPTSWCWDWHZVVAWBSWCWDZWHVIURHPWBTSXLXCUSAUYRP
            VOZUCPVOZVRVVAVOZGOVOZAUYRUCPVUJXDAVRVPUUCWDZUFHXEZVRVVNWHZVVLVVJVQ
            AVVGVVOVIHWBTVVNUFXFUMXGWLXHVVNUFVRPHXIXJUTXMXKZWNARUXLWHZVUSVVBVQZ
            VRRVOZVUBVQZAEFVUBMOVVBRSULVNUNAUBUXQWHZVVHVVBVVIWHUYOURUBPWBTSXLXC
            AUFEUEQABCEFGLMOPQSTUCUFULUMUNUOUPUQURUSUTVAUUGZAUAUFUEAUAPXNDXOZUF
            VEAPXPZVWDUFPDXQZAUFSXRZPXEZVWEUFVQAVVHVWHURPTSUFVWGUMVWGUUDZXGWLZU
            FVWGPXSWLXTYAZVGWMZUUMZAUYQPVOZUEPVOZVRVVBVOZVUBOVOZAUYQUEPVUGXDAVV
            NUFUBXEZVVPVWPVWNVQAVWBVWRUYOUBWBTVVNUFXFUMXGWLXHVVNUFVRPUBXIXJAUEO
            QVTZVOZVWQVWOAUFEQXEUEUFWHVWTVWQVQVWCVWLUFEUEOQXIXCAUEVWSPABCEFGLMO
            PQSTUCUFULUMUNUOUPUQURUSUTVAUUHYBUUIZXMXKZWNZUUJAIROFSAVVCVVDVVFVVQ
            WSZAVVRVVSVWAVXBWSZAVUAVUBVVTAUYSUYTVUCVKYCAVVRVVSVWAVXBYCZWPZAOFSU
            UKWDWHZOFSWCWDWHZUNFOSUULWLZYDAHUBPTSVIUYOVUHURYDUUNAVUOVVEGAIRFVXD
            VXEWRAVVCVVDVVFVVQYCXBAVULUXLWHUYGMUXLUUOZVUNVUPWAZVUQYMAIRFVXDVXEV
            XGWQAVXHUYEVVIWHZGEWHVVMVRUYEVOZVQVXKUNAUXTVVHVXMVUIURUXSPWBTSXLXCU
            SAUYAPVOZVVKVXNVVMAUYAUCPVUKXDAVVNUFUXSXEZVVPVXNVXOVQAUXTVXPVUIUXSW
            BTVVNUFXFUMXGWLXHVVNUFVRPUXSXIXJUTXMEFGMOUYESULUUPUUQUYGVXLMUXLVULU
            XEVULVQZUYFVUNUXJVUPVXQUXFVUMUYEUXEVULOYEYFVXQUXIVUOGVRUXEVULYGYFUU
            RUUSXCUVBYBAIRFVXDVXEWTXBUXPUYBUYDUYJWFLUXSUXQUWTUXSVQZUXBUYBUXDUYD
            UXOUYJVXRUXAUYAUCVRUWTUXSYGYFVXRUXCUYCUGVPUWTUXSYGYFVXRUXNUYIUWRVXR
            VPUXMUYHVXRUXKUYGMUXLVXRUXHUYFUXJVXRUXGUYEUXFUWTUXSPYEUUTUVAUVCYBYF
            UVDUVEYHAUGUFWHUWSUXRYMAUAUFUGVWKVHWMABCUWREFGLMOPQSTUCUGUFULUMUNUO
            UPUQURUSUTVAUVFUVGYIAVVNUDRXEVPVVNWHUWRUDWHAVRUDRWBFOXNDXOZWKWDZVVN
            XFWBUVHWHAUVIYJAVVRRWBVXTWCWDWHZVXEAFEYKVOWHZRYNZVXSWJZVXSEWJVVRVYA
            YMAFWIWHZVYBAVXHVYEUNFOSUVJWLZFEULYLYOAOVYCXOZDWJZVYDAVYGPUBYNZXOZD
            AVUSYNVVBYNVYGVYJAVUSVVBVXCUVKORYPPUBYPUVLAVYJDWJZVYIVWDWJZAVYIUAVW
            DAVVNUAUBXEZVYIUAWJAWBVVNYKVOWHZUYKUAYKVOWHZUBUYLWHVYMVYNAUVMYJATUF
            YKVOWHZUAUFWJVYOAUYMVYPUYNTUFUMYLYOVWKUATUFUVNXCVLUBWBUYKVVNUAUVOYQ
            VVNUAUBYRWLVEYAZAPYSZVYIVWEWJVYKVYLYMAVWHVYRVWJUFVWGPUVPWLAVYIVWDVW
            EVYQVWFUVSVYIDPUVQXCYIUVRAOYSZVYCOXPZWJVYHVYDYMAEVWGOXEZVYSAVXIWUAV
            XJOFSEVWGULVWIXGWLZEVWGOUVPWLAVYCEVYTAVVNERXEZVYCEWJAVVRWUCVXERWBFV
            VNEXFULXGWLVVNERYRWLAWUAVYTEVQWUBEVWGOXSWLZUVTVYCDOUVQXCUWAAVYTVXSE
            ODXQWUDXTVXSRWBFEUWBYQUWAAUDVXTWHZUDFWHZUDVXSWJZAKFUDAKDJVOWHZKFWJV
            DUKUJFJKDNOSUHVBUWCWLAUDKWHZVUBUDWHZAVXHWUHVUBEWHVWQDWHWUIWUJWAUNVD
            VWMAVWQVWODVXAVCYTUIUKUJVUBEFJKDNOSUDUHVBULVFUWDYHZWOZWMAUDKXRZVXSA
            WUIUDWUMWJWULUDKUWEWLAWUHWUMVXSVQVDUKUJFJKDNOSUHVBUWFWLUWHAVYEVXSFW
            HZWUEWUFWUGWAYMVYFAVXIDSWHZWUNVXJAWUHWUOVDUKUJFJKDNOSUHVBUWIWLDOFSU
            WGXCVXSUDFUWJXCUWKAVXHWUHWUIUDVXTUWPVOWHUNVDWULUKUJUDFJKDNOSUHVBUWL
            YQVVPAXHYJAVVTVUBUDVXFAWUIWUJWUKXAYTUWMUWNVVNUDVPRUWOXJYT $.
        $}

        cvmlift3lem7.7 $e |- ( ph -> ( K |`t M ) e. PConn ) $.
        cvmlift3lem7.4 $e |- ( ph -> V e. K ) $.
        cvmlift3lem7.5 $e |- ( ph -> V C_ M ) $.
        cvmlift3lem7.6 $e |- ( ph -> X e. V ) $.
        $( Lemma for ~ cvmlift3 .  (Contributed by Mario Carneiro,
           9-Jul-2015.) $)
        cvmlift3lem7 $p |- ( ph -> H e. ( ( K CnP C ) ` X ) ) $=
          ( vy vh va vn ccnp cfv wcel cres crest cuni cvmlift3lem3 cvmlift3lem5
          ccn ccom eqeltrd csconn ctop sconntop syl ccnv cima cdm cnvimass wceq
          co wf eqid cnf 3syl syl5sseq sstrd sseldd ccvm ffvelrnd fvco3 syl2anc
          fdm wa fveq1d eqtr3d cvmsiota syl13anc wss wral cc0 cii crio w3a wrex
          cv cvmlift3lem4 mpbii mpdan adantr weq eqeq1d eqeq2d anbi1d riotabidv
          fveq1 coeq2 anbi12d cbvriotav syl6eqr 3anbi123d cbvrexv sylib restuni
          c1 cpconn ad3antrrr wb mpbird syl22anc eleqtrd eleq2d pconncn syl3anc
          biimpa reeanv cnlly simpllr simplrl simprl cvmlift3lem6 ex rexlimdvva
          simplrr simprr mp2and ralrimiva wfun sseqtr4d funimass4 cvmlift2lem9a
          syl5bir ffun cncnpi cnt ssntr cnprest ) AOUBQFVKWKVLVMZORVNZUBQRVOWKZ
          FVKWKVLVMZAUVIUVJFVSWKVMUBUVJVPZVMZUVKADEFHILMOPQRUAUBUCUDUFUGUHUIURU
          JABCEFGJKMNOPQSUCUHUIUJUKULUMUNUOUPUQVQZAMOVTZNQPVSWKZABCEFGJKMNOPQSU
          CUHUIUJUKULUMUNUOUPUQVRZUNWAAQWBVMZQWCVMZUKQWDWEZARUCUBARNWFDWGZUCVAA
          NWHZUWAUCNDWIANUVPVMZUCPVPZNWLUWBUCWJUNNQPUCUWDUIUWDWMWNUCUWDNXCWOWPW
          QZATRUBVEVFWRZWRZUTAMFPWSWKVMZIDHVLVMZUBOVLZEVMUWJMVLZDVMUAIVMUWJUAVM
          XDUJUTAUCEUBOUVNUWGWTAUWKUBNVLZDAUBUVOVLZUWKUWLAUCEOWLZUBUCVMZUWMUWKW
          JUVNUWGUCEUBMOXAXBAUBUVONUVQXEXFUSWAUEUGUFUWJEFHIDLMPUAUDURUHVBXGXHUW
          EAORWGUAXIZVGXPZOVLUAVMZVGRXJZAUWRVGRAUWQRVMZXDZXKVHXPZVLZSWJZYOUXBVL
          ZUBWJZYOMVIXPZVTZNUXBVTZWJZXKUXGVLZGWJZXDZVIXLFVSWKZXMZVLZUWJWJZXNZVH
          XLQVSWKZXOZXKVJXPZVLUBWJYOUYAVLUWQWJXDZVJXLUVJVSWKZXOZUWRUXAXKJXPZVLZ
          SWJZYOUYEVLZUBWJZYOMKXPZVTZNUYEVTZWJZXKUYJVLZGWJZXDZKUXNXMZVLZUWJWJZX
          NZJUXSXOZUXTAVUAUWTAUWOVUAUWGAUWOXDUWJUWJWJVUAUWJWMABCUWJEFGJKMNOPQSU
          BUCUHUIUJUKULUMUNUOUPUQXQXRXSXTUYTUXRJVHUXSJVHYAZUYGUXDUYIUXFUYSUXQVU
          BUYFUXCSXKUYEUXBYFYBVUBUYHUXEUBYOUYEUXBYFYBVUBUYRUXPUWJVUBYOUYQUXOVUB
          UYQUYKUXIWJZUYOXDZKUXNXMUXOVUBUYPVUDKUXNVUBUYMVUCUYOVUBUYLUXIUYKUYEUX
          BNYGYCYDYEUXMVUDVIKUXNVIKYAZUXJVUCUXLUYOVUEUXHUYKUXIUXGUYJMYGZYBVUEUX
          KUYNGXKUXGUYJYFZYBYHYIZYJXEYBYKYLYMUXAUVJYPVMZUVMUWQUVLVMZUYDAVUIUWTV
          CXTAUVMUWTAUBRUVLUWFAUVSRUCXIZRUVLWJUVTUWERQUCUIYNXBZUUAZXTAUWTVUJARU
          VLUWQVULUUBUUEUBUWQVJUVJUVLUVLWMZUUCUUDUXTUYDXDUXRUYBXDZVJUYCXOVHUXSX
          OUXAUWRUXRUYBVHVJUXSUYCUUFUXAVUOUWRVHVJUXSUYCUXAUXBUXSVMZUYAUYCVMZXDZ
          XDZVUOUWRVUSVUOXDBCDEFGUXBUXOHIJKLMNOUXHNUYAVTZWJZUXKUWJWJZXDZVIUXNXM
          PQRUYASUAUBUCUWQUDUEUFUGUHUIAUWHUWTVURVUOUJYQAUVRUWTVURVUOUKYQAQYPUUG
          VMUWTVURVUOULYQASUCVMUWTVURVUOUMYQAUWCUWTVURVUOUNYQAGEVMUWTVURVUOUOYQ
          AGMVLSNVLWJUWTVURVUOUPYQUQURAUWLDVMUWTVURVUOUSYQAUWIUWTVURVUOUTYQARUW
          AXIUWTVURVUOVAYQVBAUBRVMUWTVURVUOUWFYQAUWTVURVUOUUHUXAVUPVUQVUOUUIVUH
          VUSUXRUYBUUJUXAVUPVUQVUOUUNVUSUXRUYBUUOVVCUYKVUTWJZUYNUWJWJZXDVIKUXNV
          UEVVAVVDVVBVVEVUEUXHUYKVUTVUFYBVUEUXKUYNUWJVUGYBYHYIUUKUULUUMUVBUUPUU
          QAOUURZROWHZXIUWPUWSYRAUWNVVFUVNUCEOUVCWEARUCVVGUWEAUWNVVGUCWJUVNUCEO
          XCWEUUSVGRUAOUUTXBYSUVAVUMUBUVIUVJFUVLVUNUVDXBAUVSVUKUBRQUVEVLVLZVMUW
          NUVHUVKYRUVTUWEATVVHUBAUVSVUKTQVMTRXITVVHXIUVTUWEVDVERQTUCUIUVFYTVFWR
          UVNRUBOQFUCEUIUHUVGYTYS $.
      $}

      $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
         6-Jul-2015.) $)
      cvmlift3lem8 $p |- ( ph -> H e. ( K Cn C ) ) $=
        ( vy va vt vv vm vb ccn co wcel wf cv ccnp cfv wral cvmlift3lem3 wa wne
        c0 wrex ccvm cuni adantr eqid cnf syl ffvelrnda cvmcov syl2anc n0 crest
        wex wss cpconn w3a ccnv cima cnlly ad2antrr simprr cvmsrcl cnima simplr
        cpw simprl wfn wb elpreima 4syl mpbir2and nlly2i syl3anc crio ad3antrrr
        csconn wceq simprll elpwid simprr3 simprlr simprr2 simprr1 cvmlift3lem7
        ffn expr rexlimdvva mpd exlimdv syl5bi expimpd rexlimdvw ralrimiva ctop
        ctopon sconntop toptopon sylib cvmtop1 cncnp ) AMOEURUSUTZQDMVAZMULVBZO
        EVCUSVDUTZULQVEZABCDEFHIKLMNOPQUAUBUCUDUEUFUGUHUIUJVFAYMULQAYLQUTZVGZYL
        LVDZUMVBZUTZYRGVDZVIVHZVGZUMNVJZYMYPKENVKUSUTZYQNVLZUTUUCAUUDYOUCVMAQUU
        EYLLALONURUSUTZQUUELVAZUGLONQUUEUBUUEVNZVOZVPVQUMTSEYQGJKNUUERUKUUHVRVS
        YPUUBYMUMNYPYSUUAYMUUAUNVBZYTUTZUNWBYPYSVGZYMUNYTVTUULUUKYMUNYPYSUUKYMY
        PYSUUKVGZVGZYLUOVBZUTZUUOUPVBZWCZOUUQWAUSWDUTZWEZUOOVJUPLWFYRWGZWNZVJZY
        MUUNOWDWHUTZUVAOUTZYLUVAUTZUVCAUVDYOUUMUEWIUUNUUFYRNUTZUVEAUUFYOUUMUGWI
        ZUUNUUKUVGYPYSUUKWJZTSEGUUJYRJKNRUKWKVPYRLONWLVSUUNUVFYOYSAYOUUMWMYPYSU
        UKWOZUUNUUFUUGLQWPUVFYOYSVGWQUVHUUIQUUELXNQYLYRLWRWSWTUOWDYLUVAOUPXAXBU
        UNUUTYMUPUOUVBOUUNUUQUVBUTZUUOOUTZVGZUUTYMUUNUVMUUTVGZVGZBCYRDEFGUUJHIJ
        KLMNOUUQPUUOYLMVDUQVBUTUQUUJXCZYLQRUQSTUAUBAUUDYOUUMUVNUCXDAOXEUTZYOUUM
        UVNUDXDAUVDYOUUMUVNUEXDAPQUTYOUUMUVNUFXDAUUFYOUUMUVNUGXDAFDUTYOUUMUVNUH
        XDAFKVDPLVDXFYOUUMUVNUIXDUJUKUUNYSUVNUVJVMUUNUUKUVNUVIVMUVOUUQUVAUUNUVK
        UVLUUTXGXHUVPVNUUPUURUUSUVMUUNXIUUNUVKUVLUUTXJUUPUURUUSUVMUUNXKUUPUURUU
        SUVMUUNXLXMXOXPXQXOXRXSXTYAXQYBAOQYDVDUTZEDYDVDUTZYJYKYNVGWQAOYCUTZUVRA
        UVQUVTUDOYEVPOQUBYFYGAEYCUTZUVSAUUDUWAUCEKNYHVPEDUAYFYGULMOEQDYIVSWT $.

      $( Lemma for ~ cvmlift2 .  (Contributed by Mario Carneiro,
         7-May-2015.) $)
      cvmlift3lem9 $p |- ( ph ->
                    E. f e. ( K Cn C ) ( ( F o. f ) = G /\ ( f ` O ) = P ) ) $=
        ( ccn co wcel ccom wceq cfv cv wa wrex cvmlift3lem8 cvmlift3lem5 cc0 c1
        cii crio w3a cicc csn cxp ctopon iitopon a1i ctop sconntop syl toptopon
        csconn sylib syl3anc 0elunit fvconst2g sylancl 1elunit sneqd xpeq2d wfn
        cnconst2 ccvm cuni wf cvmcn eqid cnf 4syl fcoconst syl2anc 3eqtr4d wreu
        ffn wb cvmtop1 cvmtop2 ffvelrnd eqeltrd 3eqtr4rd cvmlift syl22anc coeq2
        fveq1d eqeq1d anbi12d riota2 mpbi2and eqeq2d anbi1d riotabidv 3anbi123d
        fveq1 eqtrd rspcev syl13anc cvmlift3lem4 mpdan mpbird syl12anc ) AMOEUL
        UMZUNKMUOZLUPZPMUQZFUPZKHURZUOZLUPZPYLUQZFUPZUSZHYGUTABCDEFGHIJKLMNOPQR
        STUAUBUCUDUEUFUGUHUIUJUKVAABCDEFHIKLMNOPQUAUBUCUDUEUFUGUHUIUJVBAYKVCYLU
        QZPUPZVDYLUQZPUPZVDKIURZUOZLYLUOZUPZVCUUBUQZFUPZUSZIVEEULUMZVFZUQZFUPZV
        GZHVEOULUMZUTZAVCVDVHUMZPVIVJZUUNUNZVCUUQUQZPUPZVDUUQUQZPUPZVDUUCLUUQUO
        ZUPZUUGUSZIUUIVFZUQZFUPZUUOAVEUUPVKUQUNZOQVKUQUNZPQUNZUURUVIAVLVMZAOVNU
        NZUVJAOVRUNUVMUDOVOVPOQUBVQVSUFPVEOUUPQWHVTAUVKVCUUPUNZUUTUFWAUUPPVCQWB
        WCAUVKVDUUPUNZUVBUFWDUUPPVDQWBWCAUVGVDUUPFVIVJZUQZFAVDUVFUVPAKUVPUOZUVC
        UPZVCUVPUQZFUPZUVFUVPUPZAUUPFKUQZVIZVJZUUPPLUQZVIZVJZUVRUVCAUWDUWGUUPAU
        WCUWFUIWEWFAKDWGZFDUNZUVRUWEUPAKENWIUMUNZKENULUMUNDNWJZKWKUWIUCEKNWLKEN
        DUWLUAUWLWMZWNDUWLKWTWOUHKUUPDFWPWQALQWGZUVKUVCUWHUPAQUWLLWKZUWNALONULU
        MUNUWOUGLONQUWLUBUWMWNVPZQUWLLWTVPUFLUUPQPWPWQZWRAUWJUVNUWAUHWAUUPFVCDW
        BWCAUVPUUIUNZUVEIUUIWSZUVSUWAUSZUWBXAAUVIEDVKUQUNZUWJUWRUVLAEVNUNZUXAAU
        WKUXBUCEKNXBVPEDUAVQVSUHFVEEUUPDWHVTAUWKUVCVENULUMZUNUWJUWCVCUVCUQZUPUW
        SUCAUVCUWHUXCUWQAUVINUWLVKUQUNZUWFUWLUNZUWHUXCUNUVLANVNUNZUXEAUWKUXGUCE
        KNXCVPNUWLUWMVQVSAQUWLPLUWPUFXDZUWFVENUUPUWLWHVTXEUHAVCUWHUQZUWFUXDUWCA
        UXFUVNUXIUWFUPUXHWAUUPUWFVCUWLWBWCAVCUVCUWHUWQXJUIXFDEFIKUVCNUAXGXHUVEU
        WTIUUIUVPUUBUVPUPZUVDUVSUUGUWAUXJUUCUVRUVCUUBUVPKXIXKUXJUUFUVTFVCUUBUVP
        XSXKXLXMWQXNXJAUWJUVOUVQFUPUHWDUUPFVDDWBWCXTUUMUUTUVBUVHVGHUUQUUNYLUUQU
        PZYSUUTUUAUVBUULUVHUXKYRUUSPVCYLUUQXSXKUXKYTUVAPVDYLUUQXSXKUXKUUKUVGFUX
        KVDUUJUVFUXKUUHUVEIUUIUXKUUEUVDUUGUXKUUDUVCUUCYLUUQLXIXOXPXQXJXKXRYAYBA
        UVKYKUUOXAUFABCFDEFHIKLMNOPPQUAUBUCUDUEUFUGUHUIUJYCYDYEYQYIYKUSHMYGYLMU
        PZYNYIYPYKUXLYMYHLYLMKXIXKUXLYOYJFPYLMXSXKXLYAYF $.
    $}

    $( A general version of ~ cvmlift .  If ` K ` is simply connected and
       weakly locally path-connected, then there is a unique lift of functions
       on ` K ` which commutes with the covering map.  (Contributed by Mario
       Carneiro, 9-Jul-2015.) $)
    cvmlift3 $p |- ( ph ->
        E! f e. ( K Cn C ) ( ( F o. f ) = G /\ ( f ` O ) = P ) ) $=
      ( vx vz vk vs vc vd vg va vb vv vu cv ccom wceq cfv wa ccn wrex wrmo wreu
      co cuni ccnv cima cin c0 csn cdif wral cres crest chmeo wcel cpw crab cc0
      cmpt c1 cii crio w3a eqeq2 3anbi3d rexbidv cbvriotav fveq1 eqeq1d anbi12d
      weq coeq2 eqeq2d anbi1d riotabidv syl5eq fveq1d 3anbi123d cbvrexv 3anbi2d
      syl5bb cbvmptv eqid cvmlift3lem9 csconn cpconn cconn sconnpconn pconnconn
      cvmscbv 3syl cnlly wss ssriv nllyss ax-mp sseldi cvmliftmo reu5 sylanbrc
      ) AFEULZUMGUNJXSUODUNUPZEICUQVAZURXTEYAUSXTEYAUTAUAUBBCDUCHUDULZVBFVCUCUL
      ZVDUNUEULZUFULZVEVFUNUFYBYDVGVHVIFYDVJCYDVKVAHYCVKVAVLVAVMUPUEYBVIUPUDCVN
      VFVGVHVOVQZEUGUHFGUHKVPYDUOZJUNZVRYDUOZUHULZUNZVRFYEUMZGYDUMZUNZVPYEUOZDU
      NZUPZUFVSCUQVAZVTZUOZUIULZUNZWAZUEVSIUQVAZURZUIBVTZVQHIJKUIUJUKLMNOPQRSTU
      HUAKUUFVPXSUOZJUNZVRXSUOZUAULZUNZVRFUGULZUMZGXSUMZUNZVPUULUOZDUNZUPZUGYRV
      TZUOZUBULZUNZWAZEUUDURZUBBVTZUHUAWIZUUFYHYKYTUVAUNZWAZUEUUDURZUBBVTUVEUUE
      UVIUIUBBUIUBWIZUUCUVHUEUUDUVJUUBUVGYHYKUUAUVAYTWBWCWDWEUVFUVIUVDUBBUVIUUH
      UUIYJUNZUVBWAZEUUDURUVFUVDUVHUVLUEEUUDUEEWIZYHUUHYKUVKUVGUVBUVMYGUUGJVPYD
      XSWFWGUVMYIUUIYJVRYDXSWFWGUVMYTUUTUVAUVMVRYSUUSUVMYSUUMYMUNZUUQUPZUGYRVTU
      USYQUVOUFUGYRUFUGWIZYNUVNYPUUQUVPYLUUMYMYEUULFWJWGUVPYOUUPDVPYEUULWFWGWHW
      EUVMUVOUURUGYRUVMUVNUUOUUQUVMYMUUNUUMYDXSGWJWKWLWMWNWOWGWPWQUVFUVLUVCEUUD
      UVFUVKUUKUUHUVBYJUUJUUIWBWRWDWSWMWNWTUFUECYFUCFHUDUHUIUJUKYFXAXHXBABCDEFG
      HIJKLMNAIXCVMIXDVMIXEVMOIXFIXGXIAXDXJZXEXJZIXDXEXKUVQUVRXKUAXDXEUUJXGXLXD
      XEXMXNPXOQRSTXPXTEYAXQXR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Normal numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d n A $.  $d n B $.  $d k n N $.  $d n R $.
    snmlff.f $e |- F = ( n e. NN |-> ( ( # ` { k e. ( 1 ... n ) |
      ( |_ ` ( ( A x. ( R ^ k ) ) mod R ) ) = B } ) / n ) ) $.
    $( The function ` F ` from ~ snmlval is a mapping from positive integers to
       real numbers in the range ` [ 0 , 1 ] ` .  (Contributed by Mario
       Carneiro, 6-Apr-2015.) $)
    snmlff $p |- F : NN --> ( 0 [,] 1 ) $=
      ( cn cc0 c1 co cv cmul cfv wceq wcel cr cle wbr cfn cicc cexp cmo cfl cfz
      crab chash cdiv cn0 wss ssrab2 ssfi sylancl hashcl nn0red nndivre mpancom
      fzfid syl clt nn0ge0d nnre nngt0 divge0 syl22anc ssdomg mpisyl wb hashdom
      cdom syl2anc mpbird nnnn0 hashfz1 breqtrd nncn mulid1d breqtrrd syl112anc
      1red ledivmul 0re 1re elicc2i syl3anbrc fmpti ) EHIJUAKZACDLUBKMKCUCKUDNB
      OZDJELZUEKZUFZUGNZWIUHKZFGWIHPZWMQPZIWMRSZWMJRSZWMWGPWLQPZWNWOWNWLWNWKTPZ
      WLUIPWNWJTPZWKWJUJZWSWNJWIURZWHDWJUKZWJWKULUMZWKUNUSZUOZWLWIUPUQWNWRIWLRS
      WIQPZIWIUTSZWPXFWNWLXEVAWIVBZWIVCZWLWIVDVEWNWQWLWIJMKZRSZWNWLWIXKRWNWLWJU
      GNZWIRWNWLXMRSZWKWJVJSZWNWTXAXOXBXCWKWJTVFVGWNWSWTXNXOVHXDXBWKWJTVIVKVLWN
      WIUIPXMWIOWIVMWIVNUSVOWNWIWIVPVQVRWNWRJQPXGXHWQXLVHXFWNVTXIXJWLJWIWAVSVLI
      JWMWBWCWDWEWF $.

    $( The function ` F ` from ~ snmlval maps ` N ` to the relative density of
       ` B ` in the first ` N ` digits of the digit string of ` A ` in base
       ` R ` .  (Contributed by Mario Carneiro, 6-Apr-2015.) $)
    snmlfval $p |- ( N e. NN -> ( F ` N ) = ( ( # ` { k e. ( 1 ... N ) |
      ( |_ ` ( ( A x. ( R ^ k ) ) mod R ) ) = B } ) / N ) ) $=
      ( cv cexp co cmul cmo cfv wceq c1 cfz crab chash cdiv cfl oveq2 rabeq syl
      cn fveq2d id oveq12d ovex fvmpt ) EGACDIJKLKCMKUANBOZDPEIZQKZRZSNZULTKUKD
      PGQKZRZSNZGTKUEFULGOZUOURULGTUSUNUQSUSUMUPOUNUQOULGPQUBUKDUMUPUCUDUFUSUGU
      HHURGTUIUJ $.
  $}

  ${
    $d b k n x A $.  $d b k n B $.  $d b F $.  $d b k n r x R $.
    snml.s $e |- S = ( r e. ( ZZ>= ` 2 ) |->
      { x e. RR | A. b e. ( 0 ... ( r - 1 ) ) ( n e. NN |-> ( ( # `
      { k e. ( 1 ... n ) | ( |_ ` ( ( x x. ( r ^ k ) ) mod r ) ) = b } )
        / n ) ) ~~> ( 1 / r ) } ) $.
    $( The property " ` A ` is simply normal in base ` R ` ".  A number is
       simply normal if each digit ` 0 <_ b < R ` occurs in the base- ` R `
       digit string of ` A ` with frequency ` 1 / R ` (which is consistent with
       the expectation in an infinite random string of numbers selected from
       ` 0 ... R - 1 ` ).  (Contributed by Mario Carneiro, 6-Apr-2015.) $)
    snmlval $p |- ( A e. ( S ` R ) <-> ( R e. ( ZZ>= ` 2 ) /\ A e. RR /\
      A. b e. ( 0 ... ( R - 1 ) ) ( n e. NN |-> ( ( # `
      { k e. ( 1 ... n ) | ( |_ ` ( ( A x. ( R ^ k ) ) mod R ) ) = b } )
        / n ) ) ~~> ( 1 / R ) ) ) $=
      ( cfv cr cn cv co cmul cmo cfl wceq c1 cdiv c2 cuz wcel wa cexp cfz chash
      crab cmpt cli wbr cc0 cmin wral w3a oveq1 oveq2d id oveq12d fveq2d eqeq1d
      rabbidv oveq1d mpteq2dv oveq2 breq12d raleqbidv rabex fvmpt eleq2d breq1d
      reex ralbidv syl6bb pm5.32i dmmptss elfvdm sseldi pm4.71ri 3anass 3bitr4i
      elrab cdm ) CUAUBJZUCZBCDJZUCZUDWEBKUCZFLBCEMZUENZONZCPNZQJZHMZRZESFMZUFN
      ZUHZUGJZWPTNZUIZSCTNZUJUKZHULCSUMNZUFNZUNZUDZUDWGWEWHXFUOWEWGXGWEWGBFLAMZ
      WJONZCPNZQJZWNRZEWQUHZUGJZWPTNZUIZXBUJUKZHXEUNZAKUHZUCXGWEWFXSBGCFLXHGMZW
      IUENZONZXTPNZQJZWNRZEWQUHZUGJZWPTNZUIZSXTTNZUJUKZHULXTSUMNZUFNZUNZAKUHZXS
      WDDXTCRZYNXRAKYPYKXQHYMXEYPYLXDULUFXTCSUMUPUQYPYIXPYJXBUJYPFLYHXOYPYGXNWP
      TYPYFXMUGYPYEXLEWQYPYDXKWNYPYCXJQYPYBXIXTCPYPYAWJXHOXTCWIUEUPUQYPURUSUTVA
      VBUTVCVDXTCSTVEVFVGVBIXRAKVLVHVIVJXRXFABKXHBRZXQXCHXEYQXPXAXBUJYQFLXOWTYQ
      XNWSWPTYQXMWRUGYQXLWOEWQYQXKWMWNYQXJWLQYQXIWKCPXHBWJOUPVCUTVAVBUTVCVDVKVM
      WBVNVOWGWEWGDWCWDCGWDYODIVPBCDVQVRVSWEWHXFVTWA $.

    ${
      snml.f $e |- F = ( n e. NN |-> ( ( # `
        { k e. ( 1 ... n ) | ( |_ ` ( ( A x. ( R ^ k ) ) mod R ) ) = B } )
          / n ) ) $.
      $( If ` A ` is simply normal, then the function ` F ` of relative density
         of ` B ` in the digit string converges to ` 1 / R ` , i.e. the set of
         occurrences of ` B ` in the digit string has natural density
         ` 1 / R ` .  (Contributed by Mario Carneiro, 6-Apr-2015.) $)
      snmlflim $p |- ( ( A e. ( S ` R ) /\ B e. ( 0 ... ( R - 1 ) ) ) ->
        F ~~> ( 1 / R ) ) $=
        ( cfv wcel cn cv co wceq c1 cdiv cexp cmul cmo cfl cfz crab cli wbr cc0
        chash cmpt cmin wral c2 cuz snmlval simp3bi eqeq2 rabbidv fveq2d oveq1d
        cr mpteq2dv syl6eqr breq1d rspccva sylan ) BDEMNZGOBDFPUAQUBQDUCQUDMZJP
        ZRZFSGPZUEQZUFZUJMZVLTQZUKZSDTQZUGUHZJUIDSULQUEQZUMZCVTNHVRUGUHZVHDUNUO
        MNBVBNWAABDEFGIJKUPUQVSWBJCVTVJCRZVQHVRUGWCVQGOVICRZFVMUFZUJMZVLTQZUKHW
        CGOVPWGWCVOWFVLTWCVNWEUJWCVKWDFVMVJCVIURUSUTVAVCLVDVEVFVG $.
    $}

  $(
    @( Almost all numbers (in the sense of Lebesgue measure) are simply normal
       in base ` R ` . @)
    snmlnul @p |- ( R e. ( ZZ>= ` 2 ) -> ( vol* ` ( RR \ ( S ` R ) ) ) = 0 ) @=
      ? @.

    @( Almost all numbers (in the sense of Lebesgue measure) are normal
       in every base. @)
    nmlnul @p |- ( vol* ` ( RR \ { x e. RR | A. r e. ( ZZ>= ` 2 ) A. n e. NN0
      A. k e. NN ( x x. ( r ^ n ) ) e. ( S ` ( r ^ k ) ) } ) ) = 0 @=
      ( cfv cn0 cn co wcel cr crab covol wral cc0 wceq wbr syl c2 cuz cexp cmul
      cv wn ciun cdif wrex wa iunrab a1i iuneq2dv syl6eq iuneq2i wtru wb rexnal
      rexbii bitri tru biantrur 3bitri rabbiia difrab rgenw rabid2 mpbir eqcomi
      difeq1i 3eqtr2i 3eqtri fveq2i cdom wss cvv fvex clt eluz2b2 simplbi ssriv
      c1 ssdomg mp2 ssrab2 iunss cen nn0ennn endom ax-mp nnex domrefg difss crp
      cdiv ad2antrr simplr nnexpcl syl2anc nnrp simpr adantr nnre remulcl eldif
      baibr cc recnd mulcom eleq1d bitrd rabbidva nnnn0 adantl exp0 nnz simprbi
      cz 0z nngt0 ltexp2a syl32anc eqbrtrrd sylanbrc snmlnul 0re ovolsca oveq1d
      syl6eqel wne nncn nnne0 div0 3eqtrd jca ralrimiva ovoliunnul sylancr rgen
      mp2an eqtr3i ) EUAUBHZDICJAUEZEUEZDUEZUCKZUDKZUUDCUEZUCKZBHZLZUFZAMNZUGZU
      GZUGZOHZMUUKCJPZDIPZEUUBPZAMNZUHZOHQUUPUVBOUUPEUUBUULCJUIZDIUIZAMNZUGUVDE
      UUBUIZAMNZUVBEUUBUUOUVEUUDUUBLZUUODIUVCAMNZUGUVEUVHDIUUNUVIUUNUVIRUVHUUEI
      LZUJZUULCAJMUKULUMUVCDAIMUKUNUOUVDEAUUBMUKUVGUPUUTUFZUJZAMNUPAMNZUVAUHUVB
      UVFUVMAMUVFUVMUQUUCMLZUVFUUSUFZEUUBUIUVLUVMUVDUVPEUUBUVDUURUFZDIUIUVPUVCU
      VQDIUUKCJURUSUURDIURUTUSUUSEUUBURUPUVLVAVBVCULVDUPUUTAMVEUVNMUVAMUVNMUVNR
      UPAMPUPAMVAVFUPAMVGVHVIVJVKVLVMUUBJVNSZUUOMVOZUUOOHQRZUJZEUUBPUUQQRUUBVPL
      UUBJVOUVRUAUBVQEUUBJUVHUUDJLZWBUUDVRSZUUDVSZVTZWAUUBJVPWCWDUWAEUUBUVHUVSU
      VTUVSUVHUVSUUNMVOZDIPUWFDIUWFUUMMVOZCJPUWGCJUULAMWEZVFCJUUMMWFVHZVFDIUUNM
      WFVHULUVHIJVNSZUWFUUNOHQRZUJZDIPUVTIJWGSUWJWHIJWIWJUVHUWLDIUVKUWFUWKUWFUV
      KUWIULUVKJJVNSZUWGUUMOHZQRZUJZCJPUWKJVPLUWMWKJVPWLWJUVKUWPCJUVKUUHJLZUJZU
      WGUWOUWGUWRUWHULUWRUWNMUUJUHZOHZUUFWOKQUUFWOKZQUWRAUWSUUMUUFUWSMVOUWRMUUJ
      WMULUWRUUFJLZUUFWNLUWRUWBUVJUXBUVHUWBUVJUWQUWEWPZUVHUVJUWQWQUUDUUEWRWSZUU
      FWTTUWRUULUUFUUCUDKZUWSLZAMUWRUVOUJZUULUUGUWSLZUXFUXGUUGMLZUULUXHUQUXGUVO
      UUFMLZUXIUWRUVOXAZUXGUXBUXJUWRUXBUVOUXDXBUUFXCTZUUCUUFXDWSUXHUXIUULUUGMUU
      JXEXFTUXGUUGUXEUWSUXGUUCXGLUUFXGLZUUGUXERUXGUUCUXKXHUXGUUFUXLXHUUCUUFXIWS
      XJXKXLUWRUWTQMUWRUUIUUBLZUWTQRUWRUUIJLZWBUUIVRSUXNUWRUWBUUHILZUXOUXCUWQUX
      PUVKUUHXMXNUUDUUHWRWSUWRUUDQUCKZWBUUIVRUWRUUDXGLUXQWBRUWRUUDUWRUWBUUDMLZU
      XCUUDXCTZXHUUDXOTUWRUXRQXRLZUUHXRLZUWCQUUHVRSZUXQUUIVRSUXSUXTUWRXSULUWQUY
      AUVKUUHXPXNUVHUWCUVJUWQUVHUWBUWCUWDXQWPUWQUYBUVKUUHXTXNUUDQUUHYAYBYCUUIVS
      YDAUUIBCDEFGYETZYFYIYGUWRUWTQUUFWOUYCYHUWRUXMUUFQYJZUXAQRUWRUXBUXMUXDUUFY
      KTUWRUXBUYDUXDUUFYLTUUFYMWSYNYOYPJUUMCYQYRYOYPIUUNDYQYRYOYSUUBUUOEYQYTUUA
      @.
      @( [8-Apr-2015] @)

    @( Since almost all numbers are normal in every base, there must exist a
       normal number. @)
    nmlex @p |- E. x e. RR A. r e. ( ZZ>= ` 2 ) A. n e. NN0
      A. k e. NN ( x x. ( r ^ n ) ) e. ( S ` ( r ^ k ) ) @=
      ( cv cexp co cfv wcel wral cr c0 cdif covol cpnf mpbi syl6eq cmul cn0 cuz
      cn c2 crab wne wrex cc0 nmlnul 0re eqeltri wceq wnel pnfnre df-nel difeq2
      wn dif0 fveq2d ovolre eleq1d mtbiri necon2ai ax-mp rabn0 ) AHEHZDHIJUAJVG
      CHIJBKLCUDMDUBMEUEUCKMZANUFZOUGZVHANUHNVIPZQKZNLZVJVLUINABCDEFGUJUKULVMVI
      OVIOUMZVMRNLZRNUNVOURUORNUPSVNVLRNVNVLNQKRVNVKNQVNVKNOPNVIONUQNUSTUTVATVB
      VCVDVEVHANVFS @.
      @( [6-Apr-2015] @)
  $)
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Compactification
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $(
  @{
    @d k n s S @.
    alextop.1 @e |- X = U. J @.
    alextop.2 @e |- O = ~P U. X @.
    alextop.3 @e |- K = ( J u. { x | E. y e. J ( x = ( y u. { O } ) /\
                        ( J |`t ( X \ y ) ) e. Comp ) } ) @.
    @( The domain of the Alexandroff extension. @)
    alexuni @p |- ( J e. Top -> ( X u. { O } ) = U. K ) @=
      ? @.

    @( The Alexandroff extension is a compactification of the original
       topology. @)
    alextop @p |- ( J e. Top -> K e. Comp ) @=
      ? @.
  @}
  $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Godel-sets of formulas
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c e.g $. $( Godel-set of membership $)
  $c |g $. $( Godel-set for Sheffer stroke $)
  $c A.g $. $( Godel-set of universal quantification $)
  $c =g $. $( Godel-set of equality $)
  $c /\g $. $( Godel-set of conjunction $)
  $c -.g $. $( Godel-set of negation $)
  $c ->g $. $( Godel-set of implication $)
  $c <->g $. $( Godel-set of equivalence $)
  $c \/g $. $( Godel-set of disjunction $)
  $c E.g $. $( Godel-set of existential quantification $)
  $c Fmla $. $( Formula predicate $)
  $c Sat $. $( Satisfaction predicate $)
  $c SatE $. $( Satisfaction predicate $)
  $c |= $. $( Proves relation $)

  $( The Godel-set of membership. $)
  cgoe $a class e.g $.

  $( The Godel-set for the Sheffer stroke. $)
  cgna $a class |g $.

  $( The Godel-set of universal quantification.  (Note that this is not a
     wff.) $)
  cgol $a class A.g N U $.

  $( The satisfaction function. $)
  csat $a class Sat $.

  $( The formula set predicate. $)
  cfmla $a class Fmla $.

  $( The ` e. ` -satisfaction function. $)
  csate $a class SatE $.

  $( The "proves" relation. $)
  cprv $a class |= $.

  $( Define the Godel-set of membership.  Here the arguments
     ` x = <. N , P >. ` correspond to v_N and v_P , so ` ( (/) e.g 1o ) `
     actually means v_0 ` e. ` v_1 , not ` 0 e. 1 ` .  (Contributed by Mario
     Carneiro, 14-Jul-2013.) $)
  df-goel $a |- e.g = ( x e. ( _om X. _om ) |-> <. (/) , x >. ) $.

  $( Define the Godel-set for the Sheffer stroke NAND. Here the arguments
     ` x = <. U , V >. ` are also Godel-sets corresponding to smaller formulae.
     (Contributed by Mario Carneiro, 14-Jul-2013.) $)
  df-gona $a |- |g = ( x e. ( _V X. _V ) |-> <. 1o , x >. ) $.

  $( Define the Godel-set of universal quantification.  Here ` N e. _om `
     corresponds to v_N , and ` U ` represents another formula, and this
     expression is ` [ A. x ph ] = A.g N U ` where ` x ` is the ` N ` -th
     variable, ` U = [ ph ] ` is the code for ` ph ` .  Note that this is a
     _class_ expression, not a wff.  (Contributed by Mario Carneiro,
     14-Jul-2013.) $)
  df-goal $a |- A.g N U = <. 2o , <. N , U >. >. $.

  ${
    $d a e f i j m u v x y z $.
    $( Define the satisfaction predicate. This recursive construction builds up
       a function over wff codes and simultaneously defines the set of
       assignments to all variables from ` M ` that makes the coded wff true in
       the model ` M ` , where ` e. ` is interpreted as the binary relation ` E
       ` on ` M ` .

       The interpretation of the statement ` S e. ( ( ( M Sat E ) `` n ) `` U )
       ` is that for the model ` <. M , E >. ` , ` S : _om --> M ` is a
       valuation of the variables (v_0 ` = ( S `` (/) ) ` , v_1 ` = ( S `` 1o
       ) ` , etc.) and ` U ` is a code for a wff using ` e. , -/\ , A. ` that
       is true under the assignment ` S ` . The function is defined by finite
       recursion; ` ( ( M Sat E ) `` n ) ` only operates on wffs of depth at
       most ` n e. _om ` , and ` ( ( M Sat E ) `` _om ) = U_ n e. _om
       ( ( M Sat E ) `` n ) ` operates on all wffs.

       The coding scheme for the wffs is defined so that <HTML><ul>
       <li>v<sub>i</sub> ` e. ` v<sub>j</sub> is coded as
       ` <. (/) , <. i , j >. >. ` ,</li>
       <li> ` ( ph -/\ ps ) ` is coded as ` <. 1o , <. ph , ps >. >. ` ,
       and</li>
       <li> ` A. ` v<sub>i</sub> ` ph ` is coded as
       ` <. 2o , <. i , ph >. >. ` .</li></ul></HTML>

       (Contributed by Mario Carneiro, 14-Jul-2013.) $)
    df-sat $a |- Sat = ( m e. _V , e e. _V |->
       ( rec ( ( f e. _V |-> ( f u.
           { <. x , y >. | E. u e. f ( E. v e. f
      ( x = ( ( 1st ` u ) |g ( 1st ` v ) ) /\
        y = ( ( m ^m _om ) \ ( ( 2nd ` u ) i^i ( 2nd ` v ) ) ) ) \/ E. i e. _om
      ( x = A.g i ( 1st ` u ) /\
        y = { a e. ( m ^m _om ) | A. z e. m ( { <. i , z >. } u.
          ( a |` ( _om \ { i } ) ) ) e. ( 2nd ` u ) } ) ) } ) ) ,
           { <. x , y >. | E. i e. _om E. j e. _om
      ( x = ( i e.g j ) /\
        y = { a e. ( m ^m _om ) | ( a ` i ) e ( a ` j ) } ) } )
         |` suc _om ) ) $.
  $}

  ${
    $d m u $.
    $( A simplified version of the satisfaction predicate, using the standard
       membership relation and eliminating the extra variable ` n ` .
       (Contributed by Mario Carneiro, 14-Jul-2013.) $)
    df-sate $a |- SatE = ( m e. _V , u e. _V |->
       ( ( ( m Sat ( _E i^i ( m X. m ) ) ) ` _om ) ` u ) ) $.
  $}

  $( Define the predicate which defines the set of valid Godel formulas.  The
     parameter ` n ` defines the maximum height of the formulas: the set
     ` ( Fmla `` (/) ) ` is all formulas of the form ` x = y ` or ` x e. y `
     (which in our coding scheme is the set
     ` ( { (/) , 1o } X. ( _om X. _om ) ) ` ; see ~ df-sat for the full coding
     scheme), and each extra level adds to the complexity of the formulas in
     ` ( Fmla `` n ) ` . ` ( Fmla `` _om ) = U_ n e. _om ( Fmla `` n ) ` is the
     set of all valid formulas.  (Contributed by Mario Carneiro,
     14-Jul-2013.) $)
  df-fmla $a |- Fmla = ( n e. suc _om |-> dom ( ( (/) Sat (/) ) ` n ) ) $.

  $( The Godel-set of negation.  (Note that this is not a wff.) $)
  cgon $a class -.g U $.

  $( The Godel-set of conjunction. $)
  cgoa $a class /\g $.

  $( The Godel-set of implication. $)
  cgoi $a class ->g $.

  $( The Godel-set of disjunction. $)
  cgoo $a class \/g $.

  $( The Godel-set of equivalence. $)
  cgob $a class <->g $.

  $( The Godel-set of equality. $)
  cgoq $a class =g $.

  $( The Godel-set of existential quantification.  (Note that this is not a
     wff.) $)
  cgox $a class E.g N U $.

  $( Define the Godel-set of negation.  Here the argument ` U ` is also a
     Godel-set corresponding to smaller formulae.  Note that this is a _class_
     expression, not a wff.  (Contributed by Mario Carneiro, 14-Jul-2013.) $)
  df-gonot $a |- -.g U = ( U |g U ) $.

  ${
    $d u v w $.
    $( Define the Godel-set of conjunction.  Here the arguments ` U ` and ` V `
       are also Godel-sets corresponding to smaller formulae.  (Contributed by
       Mario Carneiro, 14-Jul-2013.) $)
    df-goan $a |- /\g = ( u e. _V , v e. _V |-> -.g ( u |g v ) ) $.

    $( Define the Godel-set of implication.  Here the arguments ` U ` and ` V `
       are also Godel-sets corresponding to smaller formulae.  Note that this
       is a _class_ expression, not a wff.  (Contributed by Mario Carneiro,
       14-Jul-2013.) $)
    df-goim $a |- ->g = ( u e. _V , v e. _V |-> ( u |g -.g v ) ) $.

    $( Define the Godel-set of disjunction.  Here the arguments ` U ` and ` V `
       are also Godel-sets corresponding to smaller formulae.  Note that this
       is a _class_ expression, not a wff.  (Contributed by Mario Carneiro,
       14-Jul-2013.) $)
    df-goor $a |- \/g = ( u e. _V , v e. _V |-> ( -.g u ->g v ) ) $.

    $( Define the Godel-set of equivalence.  Here the arguments ` U ` and ` V `
       are also Godel-sets corresponding to smaller formulae.  Note that this
       is a _class_ expression, not a wff.  (Contributed by Mario Carneiro,
       14-Jul-2013.) $)
    df-gobi $a |- <->g = ( u e. _V , v e. _V |->
                           ( ( u ->g v ) /\g ( v ->g u ) ) ) $.

    $( Define the Godel-set of equality.  Here the arguments
       ` x = <. N , P >. ` correspond to v_N and v_P , so ` ( (/) =g 1o ) `
       actually means v_0 ` = ` v_1 , not ` 0 = 1 ` .  Here we use the trick
       mentioned in ~ ax-ext to introduce equality as a defined notion in terms
       of ` e.g ` .  The expression ` suc ( u u. v ) = ` max ` ( u , v ) + 1 `
       here is a convenient way of getting a dummy variable distinct from ` u `
       and ` v ` .  (Contributed by Mario Carneiro, 14-Jul-2013.) $)
    df-goeq $a |- =g = ( u e. _om , v e. _om |-> [_ suc ( u u. v ) / w ]_
                         A.g w ( ( w e.g u ) <->g ( w e.g v ) ) ) $.
  $}

  $( Define the Godel-set of existential quantification.  Here ` N e. _om `
     corresponds to v_N , and ` U ` represents another formula, and this
     expression is ` [ E. x ph ] = E.g N U ` where ` x ` is the ` N ` -th
     variable, ` U = [ ph ] ` is the code for ` ph ` .  Note that this is a
     _class_ expression, not a wff.  (Contributed by Mario Carneiro,
     14-Jul-2013.) $)
  df-goex $a |- E.g N U = -.g A.g N -.g U $.

  ${
    $d m u $.
    $( Define the "proves" relation on a set.  A wff is true in a model ` M `
       if for every valuation ` s e. ( M ^m _om ) ` , the interpretation of the
       wff using the membership relation on ` M ` is true.  (Contributed by
       Mario Carneiro, 14-Jul-2013.) $)
    df-prv $a |- |= = { <. m , u >. | ( m SatE u ) = ( m ^m _om ) } $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Models of ZF
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c AxExt $. $( The Axiom of Extensionality $)
  $c AxRep $. $( The Axiom Scheme of Replacement $)
  $c AxPow $. $( The Axiom of Power Sets $)
  $c AxUn $. $( The Axiom of Unions $)
  $c AxReg $. $( The Axiom of Regularity $)
  $c AxInf $. $( The Axiom of Infinity $)
  $c ZF $. $( The set of models of ZF $)

  $( The Axiom of Extensionality. $)
  cgze $a class AxExt $.

  $( The Axiom Scheme of Replacement. $)
  cgzr $a class AxRep $.

  $( The Axiom of Power Sets. $)
  cgzp $a class AxPow $.

  $( The Axiom of Unions. $)
  cgzu $a class AxUn $.

  $( The Axiom of Regularity. $)
  cgzg $a class AxReg $.

  $( The Axiom of Infinity. $)
  cgzi $a class AxInf $.

  $( The set of models of ZF. $)
  cgzf $a class ZF $.

  $( The Godel-set version of the Axiom of Extensionality.  (Contributed by
     Mario Carneiro, 14-Jul-2013.) $)
  df-gzext $a |- AxExt =
    ( A.g 2o ( ( 2o e.g (/) ) <->g ( 2o e.g 1o ) ) ->g ( (/) =g 1o ) ) $.

  $( The Godel-set version of the Axiom Scheme of Replacement.  Since this is a
     scheme and not a single axiom, it manifests as a function on wffs, each
     giving rise to a different axiom.  (Contributed by Mario Carneiro,
     14-Jul-2013.) $)
  df-gzrep $a |- AxRep = ( u e. ( Fmla ` _om ) |->
    ( A.g 3o E.g 1o A.g 2o ( A.g 1o u ->g ( 2o =g 1o ) ) ->g A.g 1o A.g 2o
      ( ( 2o e.g 1o ) <->g E.g 3o ( ( 3o e.g (/) ) /\g A.g 1o u ) ) ) ) $.

  $( The Godel-set version of the Axiom of Power Sets.  (Contributed by Mario
     Carneiro, 14-Jul-2013.) $)
  df-gzpow $a |- AxPow =
    E.g 1o A.g 2o ( A.g 1o ( ( 1o e.g 2o ) <->g ( 1o e.g (/) ) ) ->g
                    ( 2o e.g 1o ) ) $.

  $( The Godel-set version of the Axiom of Unions.  (Contributed by Mario
     Carneiro, 14-Jul-2013.) $)
  df-gzun $a |- AxUn =
    E.g 1o A.g 2o ( E.g 1o ( ( 2o e.g 1o ) /\g ( 1o e.g (/) ) ) ->g
                    ( 2o e.g 1o ) ) $.

  $( The Godel-set version of the Axiom of Regularity.  (Contributed by Mario
     Carneiro, 14-Jul-2013.) $)
  df-gzreg $a |- AxReg = ( E.g 1o ( 1o e.g (/) ) ->g
      E.g 1o ( ( 1o e.g (/) ) /\g
               A.g 2o ( ( 2o e.g 1o ) ->g -.g ( 2o e.g (/) ) ) ) ) $.

  $( The Godel-set version of the Axiom of Infinity.  (Contributed by Mario
     Carneiro, 14-Jul-2013.) $)
  df-gzinf $a |- AxInf = E.g 1o ( ( (/) e.g 1o ) /\g A.g 2o ( ( 2o e.g 1o ) ->g
      E.g (/) ( ( 2o e.g (/) ) /\g ( (/) e.g 1o ) ) ) ) $.

  ${
    $d m u $.
    $( Define the class of all (transitive) models of ZF. (Contributed by Mario
       Carneiro, 14-Jul-2013.) $)
    df-gzf $a |- ZF = { m | ( ( Tr m /\ m |= AxExt /\ m |= AxPow ) /\
                              ( m |= AxUn /\ m |= AxReg /\ m |= AxInf ) /\
                              A. u e. ( Fmla ` _om ) m |= ( AxRep ` u ) ) } $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Metamath formal systems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This is a formalization of Appendix C of the Metamath book, which describes
  the mathematical representation of a formal system, of which set.mm (this
  file) is one.

$)

  $c mCN $.
  $c mVR $.
  $c mType $.
  $c mTC $.
  $c mAx $.
  $c mVT $.
  $c mREx $.
  $c mEx $.
  $c mDV $.
  $c mVars $.
  $c mRSubst $.
  $c mSubst $.
  $c mVH $.
  $c mPreSt $.
  $c mStRed $.
  $c mStat $.
  $c mFS $.
  $c mCls $.
  $c mPPSt $.
  $c mThm $.

  $( The set of constants. $)
  cmcn $a class mCN $.

  $( The set of variables. $)
  cmvar $a class mVR $.

  $( The type function. $)
  cmty $a class mType $.

  $( The set of variable typecodes. $)
  cmvt $a class mVT $.

  $( The set of typecodes. $)
  cmtc $a class mTC $.

  $( The set of axioms. $)
  cmax $a class mAx $.

  $( The set of raw expressions. $)
  cmrex $a class mREx $.

  $( The set of expressions. $)
  cmex $a class mEx $.

  $( The set of distinct variables. $)
  cmdv $a class mDV $.

  $( The variables in an expression. $)
  cmvrs $a class mVars $.

  $( The set of raw substitutions. $)
  cmrsub $a class mRSubst $.

  $( The set of substitutions. $)
  cmsub $a class mSubst $.

  $( The set of variable hypotheses. $)
  cmvh $a class mVH $.

  $( The set of pre-statements. $)
  cmpst $a class mPreSt $.

  $( The reduct of a pre-statement. $)
  cmsr $a class mStRed $.

  $( The set of statements. $)
  cmsta $a class mStat $.

  $( The set of formal systems. $)
  cmfs $a class mFS $.

  $( The closure of a set of statements. $)
  cmcls $a class mCls $.

  $( The set of provable pre-statements. $)
  cmpps $a class mPPSt $.

  $( The set of theorems. $)
  cmthm $a class mThm $.

  $( Define the set of constants in a Metamath formal system.  (Contributed by
     Mario Carneiro, 14-Jul-2016.) $)
  df-mcn $a |- mCN = Slot 1 $.

  $( Define the set of variables in a Metamath formal system.  (Contributed by
     Mario Carneiro, 14-Jul-2016.) $)
  df-mvar $a |- mVR = Slot 2 $.

  $( Define the type function in a Metamath formal system.  (Contributed by
     Mario Carneiro, 14-Jul-2016.) $)
  df-mty $a |- mType = Slot 3 $.

  $( Define the set of typecodes in a Metamath formal system.  (Contributed by
     Mario Carneiro, 14-Jul-2016.) $)
  df-mtc $a |- mTC = Slot 4 $.

  $( Define the set of axioms in a Metamath formal system.  (Contributed by
     Mario Carneiro, 14-Jul-2016.) $)
  df-mmax $a |- mAx = Slot 5 $.

  $( Define the set of variable typecodes in a Metamath formal system.
     (Contributed by Mario Carneiro, 14-Jul-2016.) $)
  df-mvt $a |- mVT = ( t e. _V |-> ran ( mType ` t ) ) $.

  $( Define the set of "raw expressions", which are expressions without a
     typecode attached.  (Contributed by Mario Carneiro, 14-Jul-2016.) $)
  df-mrex $a |- mREx = ( t e. _V |-> Word ( ( mCN ` t ) u. ( mVR ` t ) ) ) $.

  $( Define the set of expressions, which are strings of constants and
     variables headed by a typecode constant.  (Contributed by Mario Carneiro,
     14-Jul-2016.) $)
  df-mex $a |- mEx = ( t e. _V |-> ( ( mTC ` t ) X. ( mREx ` t ) ) ) $.

  ${
    $d a c d e f h m o p s t v x y z $.
    $( Define the set of distinct variable conditions, which are pairs of
       distinct variables.  (Contributed by Mario Carneiro, 14-Jul-2016.) $)
    df-mdv $a |- mDV = ( t e. _V |->
      ( ( ( mVR ` t ) X. ( mVR ` t ) ) \ _I ) ) $.

    $( Define the set of variables in an expression.  (Contributed by Mario
       Carneiro, 14-Jul-2016.) $)
    df-mvrs $a |- mVars = ( t e. _V |-> ( e e. ( mEx ` t ) |->
        ( ran ( 2nd ` e ) i^i ( mVR ` t ) ) ) ) $.

    $( Define a substitution of raw expressions given a mapping from variables
       to expressions.  (Contributed by Mario Carneiro, 14-Jul-2016.) $)
    df-mrsub $a |- mRSubst = ( t e. _V |->
      ( f e. ( ( mREx ` t ) ^pm ( mVR ` t ) ) |-> ( e e. ( mREx ` t ) |->
        ( ( freeMnd ` ( ( mCN ` t ) u. ( mVR ` t ) ) ) gsum
    ( ( v e. ( ( mCN ` t ) u. ( mVR ` t ) ) |->
      if ( v e. dom f , ( f ` v ) , <" v "> ) ) o. e ) ) ) ) ) $.

    $( Define a substitution of expressions given a mapping from variables to
       expressions.  (Contributed by Mario Carneiro, 14-Jul-2016.) $)
    df-msub $a |- mSubst = ( t e. _V |->
      ( f e. ( ( mREx ` t ) ^pm ( mVR ` t ) ) |-> ( e e. ( mEx ` t ) |->
        <. ( 1st ` e ) , ( ( ( mRSubst ` t ) ` f ) ` ( 2nd ` e ) ) >. ) ) ) $.

    $( Define the mapping from variables to their variable hypothesis.
       (Contributed by Mario Carneiro, 14-Jul-2016.) $)
    df-mvh $a |- mVH = ( t e. _V |->
      ( v e. ( mVR ` t ) |-> <. ( ( mType ` t ) ` v ) , <" v "> >. ) ) $.

    $( Define the set of all pre-statements.  (Contributed by Mario Carneiro,
       14-Jul-2016.) $)
    df-mpst $a |- mPreSt = ( t e. _V |-> ( ( { d e. ~P ( mDV ` t ) | `' d = d }
      X. ( ~P ( mEx ` t ) i^i Fin ) ) X. ( mEx ` t ) ) ) $.

    $( Define the reduct of a pre-statement.  (Contributed by Mario Carneiro,
       14-Jul-2016.) $)
    df-msr $a |- mStRed = ( t e. _V |-> ( s e. ( mPreSt ` t ) |->
       [_ ( 2nd ` ( 1st ` s ) ) / h ]_ [_ ( 2nd ` s ) / a ]_
       <. ( ( 1st ` ( 1st ` s ) ) i^i
 [_ U. ( ( mVars ` t ) " ( h u. { a } ) ) / z ]_ ( z X. z ) ) , h , a >. ) ) $.

    $( Define the set of all statements.  (Contributed by Mario Carneiro,
       14-Jul-2016.) $)
    df-msta $a |- mStat = ( t e. _V |-> ran ( mStRed ` t ) ) $.

    $( Define the set of all formal systems.  (Contributed by Mario Carneiro,
       14-Jul-2016.) $)
    df-mfs $a |- mFS = { t |
      ( ( ( ( mCN ` t ) i^i ( mVR ` t ) ) = (/) /\
          ( mType ` t ) : ( mVR ` t ) --> ( mTC ` t ) ) /\
        ( ( mAx ` t ) C_ ( mStat ` t ) /\
          A. v e. ( mVT ` t ) -. ( `' ( mType ` t ) " { v } ) e. Fin ) ) } $.

    $( Define the closure of a set of statements relative to a set of
       disjointness constraints.  (Contributed by Mario Carneiro,
       14-Jul-2016.) $)
    df-mcls $a |- mCls = ( t e. _V |->
      ( d e. ~P ( mDV ` t ) , h e. ~P ( mEx ` t ) |->
        |^| { c | ( ( h u. ran ( mVH ` t ) ) C_ c /\
          A. m A. o A. p ( <. m , o , p >. e. ( mAx ` t ) ->
            A. s e. ran ( mSubst ` t )
      ( ( ( s " ( o u. ran ( mVH ` t ) ) ) C_ c /\
      A. x A. y ( x m y ->
        ( ( ( mVars ` t ) ` ( s ` ( ( mVH ` t ) ` x ) ) ) X.
          ( ( mVars ` t ) ` ( s ` ( ( mVH ` t ) ` y ) ) ) ) C_ d ) ) ->
        ( s ` p ) e. c ) ) ) } ) ) $.

    $( Define the set of provable pre-statements.  (Contributed by Mario
       Carneiro, 14-Jul-2016.) $)
    df-mpps $a |- mPPSt = ( t e. _V |-> { <. <. d , h >. , a >. |
      ( <. d , h , a >. e. ( mPreSt ` t ) /\ a e. ( d ( mCls ` t ) h ) ) } ) $.

    $( Define the set of theorems.  (Contributed by Mario Carneiro,
       14-Jul-2016.) $)
    df-mthm $a |- mThm = ( t e. _V |->
      ( `' ( mStRed ` t ) " ( ( mStRed ` t ) " ( mPPSt ` t ) ) ) ) $.
  $}

  ${
    $d t T $.
    mvtval.f $e |- V = ( mVT ` T ) $.
    mvtval.y $e |- Y = ( mType ` T ) $.
    $( The set of variable typecodes.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    mvtval $p |- V = ran Y $=
      ( vt cmvt cfv cmty crn cvv wcel wceq cv fveq2 rneqd df-mvt fvex c0 fvprc
      rnex fvmpt wn rn0 eqcomi 3eqtr4a pm2.61i rneqi 3eqtr4i ) AGHZAIHZJZBCJAKL
      ZUJULMFAFNZIHZJULKGUNAMUOUKUNAIOPFQUKAIRUAUBUMUCZSSJZUJULUQSUDUEAGTUPUKSA
      ITPUFUGDCUKEUHUI $.
  $}

  ${
    $d t C $.  $d t T $.  $d t V $.
    mrexval.c $e |- C = ( mCN ` T ) $.
    mrexval.v $e |- V = ( mVR ` T ) $.
    mrexval.r $e |- R = ( mREx ` T ) $.
    $( The set of "raw expressions", which are expressions without a typecode,
       that is, just sequences of constants and variables.  (Contributed by
       Mario Carneiro, 18-Jul-2016.) $)
    mrexval $p |- ( T e. W -> R = Word ( C u. V ) ) $=
      ( vt wcel cmrex cfv cun cword cvv wceq cmcn cmvar fveq2 syl6eqr wrdeq syl
      elex cv uneq12d df-mrex fvex unex wrdexi fvmpt3i syl5eq ) CEJZBCKLZADMZNZ
      HULCOJUMUOPCEUCICIUDZQLZUPRLZMZNZUOOKUPCPZUSUNPUTUOPVAUQAURDVAUQCQLAUPCQS
      FTVAURCRLDUPCRSGTUEUSUNUAUBIUFUSUQURUPQUGUPRUGUHUIUJUBUK $.
  $}

  ${
    $d t K $.  $d t R $.  $d t T $.
    mexval.k $e |- K = ( mTC ` T ) $.
    mexval.e $e |- E = ( mEx ` T ) $.
    ${
      mexval.r $e |- R = ( mREx ` T ) $.
      $( The set of expressions, which are pairs whose first element is a
         typecode, and whose second element is a raw expression.  (Contributed
         by Mario Carneiro, 18-Jul-2016.) $)
      mexval $p |- E = ( K X. R ) $=
        ( vt cmex cfv cxp cvv wceq cmtc cmrex fveq2 syl6eqr fvex c0 fvprc cv wn
        wcel xpeq12d df-mex xpex fvmpt3i xp0 eqcomi syl5eq xpeq2d 3eqtr4a eqtri
        pm2.61i ) CBIJZDAKZFBLUCZUOUPMHBHUAZNJZUROJZKUPLIURBMZUSDUTAVAUSBNJDURB
        NPEQVAUTBOJZAURBOPGQUDHUEUSUTURNRURORUFUGUQUBZSDSKZUOUPVDSDUHUIBITVCASD
        VCAVBSGBOTUJUKULUNUM $.
    $}

    mexval2.c $e |- C = ( mCN ` T ) $.
    mexval2.v $e |- V = ( mVR ` T ) $.
    $( The set of expressions, which are pairs whose first element is a
       typecode, and whose second element is a list of constants and variables.
       (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mexval2 $p |- E = ( K X. Word ( C u. V ) ) $=
      ( cvv wcel cun cword cxp cfv syl5eq c0 cmex fvprc cmtc wceq cmrex mrexval
      eqid mexval xpeq2d wn 0xp eqcomi xpeq1d 3eqtr4a pm2.61i ) BJKZCDAELMZNZUA
      UMCDBUBOZNUOUPBCDFGUPUDZUEUMUPUNDAUPBEJHIUQUCUFPUMUGZQQUNNZCUOUSQUNUHUIUR
      CBROQGBRSPURDQUNURDBTOQFBTSPUJUKUL $.
  $}

  ${
    $d t T $.  $d t V $.
    mdvval.v $e |- V = ( mVR ` T ) $.
    mdvval.d $e |- D = ( mDV ` T ) $.
    $( The set of disjoint variable conditions, which are pairs of distinct
       variables.  (This definition differs from appendix C, which uses
       unordered pairs instead.  We use ordered pairs, but all sets of dv
       conditions of interest will be symmetric, so it does not matter.)
       (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mdvval $p |- D = ( ( V X. V ) \ _I ) $=
      ( vt cmdv cfv cxp cid cdif cvv wcel wceq cv cmvar fveq2 difeq1d c0 fvprc
      syl6eqr sqxpeqd df-mdv fvex xpex difexg fvmpt3i 0dif eqcomi syl5eq xpeq2d
      ax-mp wn xp0 syl6eq 3eqtr4a pm2.61i eqtri ) ABGHZCCIZJKZEBLMZUSVANFBFOZPH
      ZVDIZJKZVALGVCBNZVEUTJVGVDCVGVDBPHZCVCBPQDUAUBRFUCVELMVFLMVDVDVCPUDZVIUEV
      EJLUFULUGVBUMZSSJKZUSVAVKSJUHUIBGTVJUTSJVJUTCSISVJCSCVJCVHSDBPTUJUKCUNUOR
      UPUQUR $.
  $}

  ${
    $d e t E $.  $d e t T $.  $d e t V $.  $d e X $.
    mvrsval.v $e |- V = ( mVR ` T ) $.
    mvrsval.e $e |- E = ( mEx ` T ) $.
    mvrsval.w $e |- W = ( mVars ` T ) $.
    $( The set of variables in an expression.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    mvrsval $p |- ( X e. E -> ( W ` X ) = ( ran ( 2nd ` X ) i^i V ) ) $=
      ( ve vt wcel cv c2nd cfv cin cvv wceq cmex cmvar fveq2 cmpt elfvex eleq2s
      crn cmvrs syl6eqr ineq2d mpteq12dv df-mvrs eqeltri mptex fvmpt syl syl5eq
      fvex rneqd ineq1d adantl id rnex inex1 a1i fvmptd ) EBKZIEILZMNZUDZCOZEMN
      ZUDZCOZBDPVDDAUENZIBVHUAZHVDAPKZVLVMQVNEARNZBEARUBGUCJAIJLZRNZVGVPSNZOZUA
      VMPUEVPAQZIVQVSBVHVTVQVOBVPARTGUFVTVRCVGVTVRASNCVPASTFUFUGUHJIUIIBVHBVOPG
      ARUOUJUKULUMUNVEEQZVHVKQVDWAVGVJCWAVFVIVEEMTUPUQURVDUSVKPKVDVJCVIEMUOUTVA
      VBVC $.

    $( The set of variables in an expression is a finite subset of ` V ` .
       (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mvrsfpw $p |- ( X e. E -> ( W ` X ) e. ( ~P V i^i Fin ) ) $=
      ( wcel cfv c2nd crn cin cpw cfn mvrsval wss inss2 cc0 eqid a1i chash cfzo
      co wfo fzofi wfn cmcn cun cword wf cmtc cxp xp2nd mexval2 eleq2s wrdf ffn
      3syl dffn4 sylib fofi sylancr inss1 ssfi sylancl elfpw sylanbrc eqeltrd )
      EBIZEDJEKJZLZCMZCNOMZABCDEFGHPVJVMCQZVMOIZVMVNIVOVJVLCRUAVJVLOIZVMVLQVPVJ
      SVKUBJZUCUDZOIVSVLVKUEZVQSVRUFVJVKVSUGZVTVJVKAUHJZCUIZUJZIZVSWCVKUKWAWEEA
      ULJZWDUMBEWFWDUNWBABWFCWFTGWBTFUOUPWCVKUQVSWCVKURUSVSVKUTVAVSVLVKVBVCVLCV
      DVLVMVEVFVMCVGVHVI $.
  $}

  ${
    $d e f v A $.  $d e f t v C $.  $d e f v F $.  $d e f t v R $.  $d e v X $.
    $d e f t G $.  $d e f t v T $.  $d e f t v V $.
    mrsubffval.c $e |- C = ( mCN ` T ) $.
    mrsubffval.v $e |- V = ( mVR ` T ) $.
    mrsubffval.r $e |- R = ( mREx ` T ) $.
    mrsubffval.s $e |- S = ( mRSubst ` T ) $.
    ${
      mrsubffval.g $e |- G = ( freeMnd ` ( C u. V ) ) $.
      $( The substitution of some variables for expressions in a raw
         expression.  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
      mrsubffval $p |- ( T e. W -> S = ( f e. ( R ^pm V ) |-> ( e e. R |->
        ( G gsum ( ( v e. ( C u. V ) |->
          if ( v e. dom f , ( f ` v ) , <" v "> ) ) o. e ) ) ) ) ) $=
        ( cfv cpm co cv cmpt vt wcel cmrsub cun cdm cs1 cif ccom cgsu wceq elex
        cvv cmrex cmvar cmcn cfrmd fveq2 syl6eqr oveq12d uneq12d fveq2d mpteq1d
        coeq1d mpteq12dv df-mrsub ovex mptex fvmpt syl syl5eq ) EJUBZDEUCPZGCIQ
        RZFCHABIUDZASZGSZUEUBVOVPPVOUFUGZTZFSZUHZUIRZTZTZNVKEULUBVLWCUJEJUKUAEG
        UASZUMPZWDUNPZQRZFWEWDUOPZWFUDZUPPZAWIVQTZVSUHZUIRZTZTWCULUCWDEUJZGWGWN
        VMWBWOWECWFIQWOWEEUMPCWDEUMUQMURZWOWFEUNPIWDEUNUQLURZUSWOFWEWMCWAWPWOWJ
        HWLVTUIWOWJVNUPPHWOWIVNUPWOWHBWFIWOWHEUOPBWDEUOUQKURWQUTZVAOURWOWKVRVSW
        OAWIVNVQWRVBVCUSVDVDAUAFGVEGVMWBCIQVFVGVHVIVJ $.

      $( The substitution of some variables for expressions in a raw
         expression.  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
      mrsubfval $p |- ( ( F : A --> R /\ A C_ V ) -> ( S ` F ) = ( e e. R |->
        ( G gsum ( ( v e. ( C u. V ) |->
          if ( v e. A , ( F ` v ) , <" v "> ) ) o. e ) ) ) ) $=
        ( cvv wcel cfv cmpt c0 vf wf wss wa cun cv cs1 cif ccom cgsu co wceq wi
        cdm cpm mrsubffval adantr dmeq ad2antrl sylan9eqr eleq2d simpr ifbieq1d
        fdm fveq1d mpteq2dv coeq1d oveq2d cmrex eqeltri a1i cmvar simprl simprr
        fvex elpm2r syl22anc mptex fvmptd ex wn 0fv cmrsub fvprc syl5eq mpteq1d
        mpt0 syl6eq 3eqtr4a a1d pm2.61i ) FPQZBDHUBZBJUCZUDZHERZGDIACJUEZAUFZBQ
        ZWRHRZWRUGZUHZSZGUFZUIZUJUKZSZULZUMWLWOXHWLWOUDZUAHGDIAWQWRUAUFZUNZQZWR
        XJRZXAUHZSZXDUIZUJUKZSZXGDJUOUKZEPWLEUAXSXRSULWOACDEFGUAIJPKLMNOUPUQXIX
        JHULZUDZGDXQXFYAXPXEIUJYAXOXCXDYAAWQXNXBYAXLWSXMWTXAYAXKBWRXTXIXKHUNZBX
        JHURWMYBBULWLWNBDHVDUSUTVAYAWRXJHXIXTVBVEVCVFVGVHVFXIDPQZJPQZWMWNHXSQYC
        XIDFVIRZPMFVIVOVJZVKYDXIJFVLRPLFVLVOVJVKWLWMWNVMWLWMWNVNDJBHPPVPVQXGPQX
        IGDXFYFVRVKVSVTWLWAZXHWOYGHTRTWPXGHWBYGHETYGEFWCRTNFWCWDWEVEYGXGGTXFSTY
        GGDTXFYGDYETMFVIWDWEWFGXFWGWHWIWJWK $.

      $( The substitution of some variables for expressions in a raw
         expression.  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
      mrsubval $p |- ( ( F : A --> R /\ A C_ V /\ X e. R ) ->
        ( ( S ` F ) ` X ) = ( G gsum ( ( v e. ( C u. V ) |->
          if ( v e. A , ( F ` v ) , <" v "> ) ) o. X ) ) ) $=
        ( ve wcel cv cfv cgsu wf wss w3a cun cs1 cif cmpt ccom co cvv mrsubfval
        wceq 3adant3 wa simpr coeq2d oveq2d simp3 ovexd fvmptd ) BDGUAZBIUBZJDQ
        ZUCZPJHACIUDARZBQVEGSVEUEUFUGZPRZUHZTUIZHVFJUHZTUIDGESZUJVAVBVKPDVIUGUL
        VCABCDEFPGHIKLMNOUKUMVDVGJULZUNZVHVJHTVMVGJVFVDVLUOUPUQVAVBVCURVDHVJTUS
        UT $.
    $}

    $( The value of a substituted singleton.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    mrsubcv $p |- ( ( F : A --> R /\ A C_ V /\ X e. ( C u. V ) ) ->
      ( ( S ` F ) ` <" X "> ) = if ( X e. A , ( F ` X ) , <" X "> ) ) $=
      ( vv wcel cs1 cfv cgsu wceq cvv cmcn wf wss cun w3a cfrmd cv cmpt ccom co
      cword simp3 s1cld wo elun elfvex eleq2s cmvar jaoi sylbi 3ad2ant3 mrexval
      cif syl eleqtrrd eqid mrsubval syld3an3 simpl1 ffvelrnda ad2antrr eleqtrd
      wa simplr ifclda fmptd s1co syl2anc eleq1 fveq2 s1eq ifbieq12d fvex s1cli
      wn elexi ifex fvmpt s1eqd eqtrd oveq2d ffvelrnd eqeltrrd cbs eqeltri unex
      frmdbas ax-mp eqcomi gsumws1 3eqtrd ) ACFUAZAGUBZHBGUCZNZUDZHOZFDPPZXCUEP
      ZMXCMUFZANZXIFPZXIOZVBZUGZXFUHZQUIZXHHANZHFPZXFVBZOZQUIZXSXAXBXDXFCNXGXPR
      XEXFXCUJZCXEHXCXAXBXDUKZULXEESNZCYBRZXDXAYDXBXDHBNZHGNZUMYDHBGUNYFYDYGYDH
      ETPZBHETUOIUPYDHEUQPZGHEUQUOJUPURUSUTBCEGSIJKVAVCZVDMABCDEFXHGXFIJKLXHVEZ
      VFVGXEXOXTXHQXEXOHXNPZOZXTXEXDXCYBXNUAXOYMRYCXEMXCXMYBXNXEXIXCNZVLZXJXKXL
      YBYOXJVLXKCYBYOACXIFXAXBXDYNVHVIXEYEYNXJYJVJVKYOXJWDZVLXIXCXEYNYPVMULVNXN
      VEZVOZXCYBHXNVPVQXEYLXSXDXAYLXSRXBMHXMXSXCXNXIHRXJXQXKXLXRXFXIHAVRXIHFVSX
      IHVTWAYQXQXRXFHFWBXFSUJHWCWEWFWGUTZWHWIWJXEXSYBNYAXSRXEYLXSYBYSXEXCYBHXNY
      RYCWKWLYBXSXHXHWMPZYBXCSNYTYBRBGBYHSIETWBWNGYISJEUQWBWNWOYTXCXHSYKYTVEWPW
      QWRWSVCWT $.
  $}

  ${
    $d e f g v x R $.  $d e f g v x T $.  $d e f g v x V $.  $d e f g v W $.
    $d f g v S $.
    mrsubvr.v $e |- V = ( mVR ` T ) $.
    mrsubvr.r $e |- R = ( mREx ` T ) $.
    mrsubvr.s $e |- S = ( mRSubst ` T ) $.
    $( The value of a substituted variable.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    mrsubvr $p |- ( ( F : A --> R /\ A C_ V /\ X e. A ) ->
      ( ( S ` F ) ` <" X "> ) = ( F ` X ) ) $=
      ( wf wss wcel w3a cs1 cfv cif cmcn cun wceq ssun2 simp2 simp3 sseldd eqid
      sseldi mrsubcv syld3an3 iftrue 3ad2ant3 eqtrd ) ABEKZAFLZGAMZNZGOZECPPZUN
      GEPZUPQZURULUMUNGDRPZFSZMUQUSTUOFVAGFUTUAUOAFGULUMUNUBULUMUNUCUDUFAUTBCDE
      FGUTUEHIJUGUHUNULUSURTUMUNURUPUIUJUK $.

    $( A substitution is a function from ` R ` to ` R ` .  (Contributed by
       Mario Carneiro, 18-Jul-2016.) $)
    mrsubff $p |- ( T e. W -> S : ( R ^pm V ) --> ( R ^m R ) ) $=
      ( vf ve vv wcel co wf cfv cv cmpt wa cvv eqid cpm cmap cmcn cun cfrmd cdm
      cs1 cif ccom cgsu cword cmnd fvex cmvar eqeltri unex frmdmnd mp1i mrexval
      simpr wceq ad2antrr eleqtrd wss elpmi simpld ad3antlr ffvelrnda wn simplr
      s1cld ifclda fmptd wrdco syl2anc cbs frmdbas ax-mp gsumwcl eleqtrrd cmrex
      eqcomi elmap sylibr mrsubffval feq1d mpbird ) CELZADUAMZAAUBMZBNWIWJIWIJA
      CUCOZDUDZUEOZKWLKPZIPZUFZLZWNWOOZWNUGZUHZQZJPZUIZUJMZQZQZNWHIWIXEWJXFWHWO
      WILZRZAAXENXEWJLXHJAXDAXEXHXBALZRZXDWLUKZAXJWMULLZXCXKUKLZXDXKLWLSLZXLXJW
      KDCUCUMDCUNOSFCUNUMUOUPZWLWMSWMTZUQURXJXBXKLWLXKXANXMXJXBAXKXHXIUTWHAXKVA
      ZXGXIWKACDEWKTZFGUSVBZVCXJKWLWTXKXAXJWNWLLZRZWQWRWSXKYAWQRWRAXKYAWPAWNWOX
      GWPAWONZWHXIXTXGYBWPDVDADWOVEVFVGVHXJXQXTWQXSVBVCYAWQVIZRWNWLXJXTYCVJVKVL
      XATVMWLXKXAXBVNVOXKWMXCWMVPOZXKXNYDXKVAXOYDWLWMSXPYDTVQVRWBVSVOXSVTXETVMA
      AXEACWAOSGCWAUMUOZYEWCWDXFTVMWHWIWJBXFKWKABCJIWMDEXRFGHXPWEWFWG $.

    $( Although it is defined for partial mappings of variables, every partial
       substitution is a substitution on some complete mapping of the
       variables.  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mrsubrn $p |- ran S = ( S " ( R ^m V ) ) $=
      ( vf vx ve vv co cvv wcel cfv wa cif cmpt wceq c0 crn cmap wss cpm wf wfn
      cima cv wral mrsubff ffn syl cdm cs1 cmcn cun cfrmd ccom cgsu eleq1 fveq2
      s1eq ifbieq12d eqid fvex cword s1cli elexi ifex fvmpt adantl ifeq1da ifan
      elpmi simprd sseld pm4.71rd bicomd ifbid eqtr2d mpteq2dv coeq1d mrsubfval
      syl6eqr oveq2d simpld ffvelrnda wn elun2 ad2antlr s1cld mrexval ad3antrrr
      adantr eleqtrrd ifclda fmptd ssid sylancl 3eqtr4d mapsspm a1i cmrex cmvar
      eqeltri elmap sylibr fnfvima syl3anc eqeltrd ralrimiva ffnfv sylanbrc frn
      cmrsub fvprc syl5eq rneqd rn0 syl6eq 0ss syl6eqss pm2.61i imassrn eqssi )
      BUAZBADUBLZUGZCMNZYFYHUCZYIADUDLZYHBUEZYJYIBYKUFZHUHZBOZYHNZHYKUIYLYIYKAA
      UBLZBUEYMABCDMEFGUJYKYQBUKULZYIYPHYKYIYNYKNZPZYOIDIUHZYNUMZNZUUAYNOZUUAUN
      ZQZRZBOZYHYTJACUOOZDUPZUQOZKUUJKUHZUUBNZUULYNOZUULUNZQZRZJUHZURZUSLZRZJAU
      UKKUUJUULDNZUULUUGOZUUOQZRZUURURZUSLZRZYOUUHYTJAUUTUVGYTUUSUVFUUKUSYTUUQU
      VEUURYTKUUJUUPUVDYTUVDUVBUUMPZUUNUUOQZUUPYTUVDUVBUUPUUOQUVJYTUVBUVCUUPUUO
      UVBUVCUUPSYTIUULUUFUUPDUUGUUAUULSUUCUUMUUDUUEUUNUUOUUAUULUUBUTUUAUULYNVAU
      UAUULVBVCUUGVDZUUMUUNUUOUULYNVEUUOMVFUULVGVHVIVJVKVLUVBUUMUUNUUOVMWDYTUVI
      UUMUUNUUOYTUUMUVIYTUUMUVBYTUUBDUULYTUUBAYNUEZUUBDUCZYSUVLUVMPZYIADYNVNVKZ
      VOVPVQVRVSVTWAWBWEWAYTUVNYOUVASUVOKUUBUUIABCJYNUUKDUUIVDZEFGUUKVDZWCULYTD
      AUUGUEZDDUCUUHUVHSYTIDUUFAUUGYTUUADNZPZUUCUUDUUEAUVTUUBAUUAYNYTUVLUVSYTUV
      LUVMUVOWFWNWGUVTUUCWHZPZUUEUUJVFZAUWBUUAUUJUVSUUAUUJNYTUWAUUADUUIWIWJWKYI
      AUWCSYSUVSUWAUUIACDMUVPEFWLWMWOWPUVKWQZDWRKDUUIABCJUUGUUKDUVPEFGUVQWCWSWT
      YTYMYGYKUCZUUGYGNZUUHYHNYIYMYSYRWNUWEYTADXAXBYTUVRUWFUWDADUUGACXCOMFCXCVE
      XEDCXDOMECXDVEXEXFXGYKYGBUUGXHXIXJXKHYKYHBXLXMYKYHBXNULYIWHZYFTYHUWGYFTUA
      TUWGBTUWGBCXOOTGCXOXPXQXRXSXTYHYAYBYCBYGYDYE $.

    $( When restricted to complete mappings, the substitution-producing
       function is one-to-one.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    mrsubff1 $p |- ( T e. W ->
      ( S |` ( R ^m V ) ) : ( R ^m V ) -1-1-> ( R ^m R ) ) $=
      ( vf vg vv wcel cmap co wf cv cfv wceq wral wa wi wf1 cpm mrsubff mapsspm
      cres wss a1i fssresd cs1 fveq1 simplrl elmapi syl mrsubvr syl3anc simplrr
      ssid simpr eqeq12d syl5ib ralrimdva fvres eqeqan12d adantl wfn ffn eqfnfv
      wb syl2an 3imtr4d ralrimivva dff13 sylanbrc ) CELZADMNZAAMNZBVPUFZOIPZVRQ
      ZJPZVRQZRZVSWARZUAZJVPSIVPSVPVQVRUBVOADUCNZVQVPBABCDEFGHUDVPWFUGVOADUEUHU
      IVOWEIJVPVPVOVSVPLZWAVPLZTZTZVSBQZWABQZRZKPZVSQZWNWAQZRZKDSZWCWDWJWMWQKDW
      MWNUJZWKQZWSWLQZRWJWNDLZTZWQWSWKWLUKXCWTWOXAWPXCDAVSOZDDUGZXBWTWORXCWGXDV
      OWGWHXBULVSADUMZUNXEXCDURUHZWJXBUSZDABCVSDWNFGHUOUPXCDAWAOZXEXBXAWPRXCWHX
      IVOWGWHXBUQWAADUMZUNXGXHDABCWADWNFGHUOUPUTVAVBWIWCWMVIVOWGWHVTWKWBWLVSVPB
      VCWAVPBVCVDVEWIWDWRVIZVOWGXDXIXKWHXFXJXDVSDVFWADVFXKXIDAVSVGDAWAVGKDVSWAV
      HVJVJVEVKVLIJVPVQVRVMVN $.

    $( When restricted to complete mappings, the substitution-producing
       function is bijective to the set of all substitutions.  (Contributed by
       Mario Carneiro, 18-Jul-2016.) $)
    mrsubff1o $p |- ( T e. W ->
      ( S |` ( R ^m V ) ) : ( R ^m V ) -1-1-onto-> ran S ) $=
      ( wcel cmap co cres crn wf1o wf1 mrsubff1 f1f1orn syl wceq wb cima df-ima
      mrsubrn eqtri f1oeq3 ax-mp sylibr ) CEIZADJKZBUILZMZUJNZUIBMZUJNZUHUIAAJK
      ZUJOULABCDEFGHPUIUOUJQRUMUKSUNULTUMBUIUAUKABCDFGHUCBUIUBUDUMUKUIUJUEUFUG
      $.
  $}

  ${
    $d c f r v x y C $.  $d f r v x y R $.  $d c f x y S $.  $d f r v x y T $.
    $d c f r v w x y F $.  $d c f r v w x y V $.  $d r v x y W $.  $d f v X $.
    $d f v Y $.
    mrsubccat.s $e |- S = ( mRSubst ` T ) $.
    $( The value of the substituted empty string.  (Contributed by Mario
       Carneiro, 18-Jul-2016.) $)
    mrsub0 $p |- ( F e. ran S -> ( F ` (/) ) = (/) ) $=
      ( vf vv crn wcel cvv cv cfv wceq cmap co c0 cmrsub syl6eq wf eqid cgsu wn
      cmrex cmvar wrex n0i fvprc syl5eq rneqd rn0 nsyl2 wfun cima cpm ffun 3syl
      mrsubff mrsubrn eleq2i biimpi fvelima syl2anc cmcn cun cfrmd cs1 cif cmpt
      wa ccom wss elmapi adantl ssid a1i wrd0 mrexval adantr syl5eleqr mrsubval
      cword co02 oveq2i frmd0 gsum0 eqtri fveq1 eqeq1d syl5ibcom rexlimdva sylc
      syl3anc ) CAGZHZBIHZEJZAKZCLZEBUBKZBUCKZMNZUDZOCKZOLZWMWLOLWNWLCUEWNUAZWL
      OGOXDAOXDABPKODBPUFUGUHUIQUJZWMAUKZCAWTULZHZXAWMWNWRWSUMNZWRWRMNZARXFXEWR
      ABWSIWSSZWRSZDUPXIXJAUNUOWMXHWLXGCWRABWSXKXLDUQURUSECWTAUTVAWNWQXCEWTWNWO
      WTHZVHZOWPKZOLWQXCXNXOBVBKZWSVCZVDKZFXQFJZWSHXSWOKXSVEVFVGZOVIZTNZOXNWSWR
      WORZWSWSVJZOWRHXOYBLXMYCWNWOWRWSVKVLYDXNWSVMVNXNOXQVTZWRXQVOWNWRYELXMXPWR
      BWSIXPSZXKXLVPVQVRFWSXPWRABWOXRWSOYFXKXLDXRSZVSWKYBXROTNOYAOXRTXTWAWBXROX
      QXRYGWCWDWEQWQXOXBOOWPCWFWGWHWIWJ $.

    mrsubccat.r $e |- R = ( mREx ` T ) $.
    $( A substitution is a function.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    mrsubf $p |- ( F e. ran S -> F : R --> R ) $=
      ( crn wcel cmap co wf cvv cmvar cfv cpm wss c0 wceq n0i cmrsub syl5eq rn0
      wn fvprc rneqd syl6eq nsyl2 eqid mrsubff frn 3syl id sseldd elmapi syl )
      DBGZHZDAAIJZHAADKUQUPURDUQCLHZACMNZOJZURBKUPURPUQUPQRUSUPDSUSUCZUPQGQVBBQ
      VBBCTNQECTUDUAUEUBUFUGABCUTLUTUHFEUIVAURBUJUKUQULUMDAAUNUO $.

    $( Substitution distributes over concatenation.  (Contributed by Mario
       Carneiro, 18-Jul-2016.) $)
    mrsubccat $p |- ( ( F e. ran S /\ X e. R /\ Y e. R ) ->
      ( F ` ( X ++ Y ) ) = ( ( F ` X ) ++ ( F ` Y ) ) ) $=
      ( vv wcel cconcat co cfv wceq wa cvv c0 eqid syl2anc cgsu vf crn cv cmvar
      cmap wrex wi wfun cima cpm wf n0i wn cmrsub fvprc syl5eq rneqd rn0 syl6eq
      nsyl2 mrsubff ffun 3syl mrsubrn eleq2i biimpi fvelima cmcn cun cfrmd cmpt
      cs1 cplusg cword simprl cmrex elfvex eleq2s mrexval eleqtrd simprr elmapi
      cif ccom adantr ffvelrnda simplr s1cld ifclda fmptd ccatco syl3anc oveq2d
      ad2antrr cmnd fvex unex frmdmnd mp1i wrdco frmdbas ax-mp gsumccat gsumwcl
      cbs eqcomi frmdadd 3eqtrd wss ssid ccatcl eleqtrrd mrsubval oveq12d fveq1
      a1i 3eqtr4d eqeq12d syl5ibcom ex com23 rexlimiv syl 3impib ) DBUBZJZEAJZF
      AJZEFKLZDMZEDMZFDMZKLZNZYFUAUCZBMZDNZUAACUDMZUELZUFZYGYHOZYNUGZYFBUHZDBYS
      UIZJZYTYFCPJZAYRUJLZAAUELZBUKUUCYFYEQNUUFYEDULUUFUMZYEQUBQUUIBQUUIBCUNMQG
      CUNUOUPUQURUSUTABCYRPYRRZHGVAUUGUUHBVBVCYFUUEYEUUDDABCYRUUJHGVDVEVFUADYSB
      VGSYQUUBUAYSYOYSJZUUAYQYNUUKUUAYQYNUGUUKUUAOZYIYPMZEYPMZFYPMZKLZNYQYNUULC
      VHMZYRVIZVJMZIUURIUCZYRJZUUTYOMZUUTVLZWCZVKZYIWDZTLZUUSUVEEWDZTLZUUSUVEFW
      DZTLZKLZUUMUUPUULUVGUUSUVHUVJKLZTLZUVIUVKUUSVMMZLZUVLUULUVFUVMUUSTUULEUUR
      VNZJZFUVQJZUURUVQUVEUKZUVFUVMNUULEAUVQUUKYGYHVOZUULYGUUFAUVQNZUWAUUFECVPM
      AECVPVQHVRUUQACYRPUUQRZUUJHVSVCZVTZUULFAUVQUUKYGYHWAZUWDVTZUULIUURUVDUVQU
      VEUULUUTUURJZOZUVAUVBUVCUVQUWIUVAOUVBAUVQUWIYRAUUTYOUULYRAYOUKZUWHUUKUWJU
      UAYOAYRWBWEZWEWFUULUWBUWHUVAUWDWNVTUWIUVAUMZOUUTUURUULUWHUWLWGWHWIUVERWJZ
      UURUVQEFUVEWKWLWMUULUUSWOJZUVHUVQVNZJZUVJUWOJZUVNUVPNUURPJZUWNUULUUQYRCVH
      WPCUDWPWQZUURUUSPUUSRZWRWSZUULUVRUVTUWPUWEUWMUURUVQUVEEWTSZUULUVSUVTUWQUW
      GUWMUURUVQUVEFWTSZUVQUVOUUSUVHUVJUUSXEMZUVQUWRUXDUVQNUWSUXDUURUUSPUWTUXDR
      XAXBXFZUVORZXCWLUULUVIUVQJZUVKUVQJZUVPUVLNUULUWNUWPUXGUXAUXBUVQUUSUVHUXEX
      DSUULUWNUWQUXHUXAUXCUVQUUSUVJUXEXDSUVQUVOUURUUSUVIUVKUWTUXEUXFXGSXHUULUWJ
      YRYRXIZYIAJUUMUVGNUWKUXIUULYRXJXPZUULYIUVQAUULUVRUVSYIUVQJUWEUWGUUREFXKSU
      WDXLIYRUUQABCYOUUSYRYIUWCUUJHGUWTXMWLUULUUNUVIUUOUVKKUULUWJUXIYGUUNUVINUW
      KUXJUWAIYRUUQABCYOUUSYREUWCUUJHGUWTXMWLUULUWJUXIYHUUOUVKNUWKUXJUWFIYRUUQA
      BCYOUUSYRFUWCUUJHGUWTXMWLXNXQYQUUMYJUUPYMYIYPDXOYQUUNYKUUOYLKEYPDXOFYPDXO
      XNXRXSXTYAYBYCYD $.

    mrsubcn.v $e |- V = ( mVR ` T ) $.
    mrsubcn.c $e |- C = ( mCN ` T ) $.
    $( A substitution does not change the value of constant substrings.
       (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mrsubcn $p |- ( ( F e. ran S /\ X e. ( C \ V ) ) ->
      ( F ` <" X "> ) = <" X "> ) $=
      ( vf crn wcel cfv wceq cmap co cvv c0 cv wrex cdif cs1 wfun cpm wf n0i wn
      cima cmrsub fvprc syl5eq rneqd rn0 syl6eq nsyl2 mrsubff ffun 3syl mrsubrn
      eleq2i biimpi fvelima syl2anc wa cif wss cun elmapi adantl ssid a1i elun1
      eldifi syl adantr mrsubcv eldifn iffalsed eqtrd fveq1 syl5ibcom rexlimdva
      syl3anc eqeq1d mpan9 ) ECMZNZLUAZCOZEPZLBFQRZUBZGAFUCNZGUDZEOZWPPZWICUEZE
      CWMUJZNZWNWIDSNZBFUFRZBBQRZCUGWSWIWHTPXBWHEUHXBUIZWHTMTXECTXECDUKOTHDUKUL
      UMUNUOUPUQBCDFSJIHURXCXDCUSUTWIXAWHWTEBCDFJIHVAVBVCLEWMCVDVEWOWLWRLWMWOWJ
      WMNZVFZWPWKOZWPPWLWRXGXHGFNZGWJOZWPVGZWPXGFBWJUGZFFVHZGAFVINZXHXKPXFXLWOW
      JBFVJVKXMXGFVLVMWOXNXFWOGANXNGAFVOGAFVNVPVQFABCDWJFGKJIHVRWEXGXIXJWPWOXIU
      IXFGAFVSVQVTWAWLXHWQWPWPWKEWBWFWCWDWG $.

    $( Characterization of the substitutions as functions from expressions to
       expressions that distribute under concatenation and map constants to
       themselves.  (The constant part uses ` ( C \ V ) ` because we don't know
       that ` C ` and ` V ` are disjoint until we get to ~ ismfs .)
       (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    elmrsubrn $p |- ( T e. W -> ( F e. ran S <-> ( F : R --> R /\
      A. c e. ( C \ V ) ( F ` <" c "> ) = <" c "> /\
      A. x e. R A. y e. R ( F ` ( x ++ y ) ) =
        ( ( F ` x ) ++ ( F ` y ) ) ) ) ) $=
      ( wcel cfv wceq co cvv c0 vw vr vv crn wf cv cs1 cdif wral cconcat mrsubf
      w3a mrsubcn ralrimiva mrsubccat 3expb ralrimivva 3jca cmpt cun cfrmd ccom
      wa cgsu cword mrexval adantr s1eq fveq2d eqid fvex fvmpt adantl wn difun2
      eleq2i eldif bitr3i simpr2 eqeq12d rspccva sylan2br anassrs eqcomd ifeqda
      sylan mpteq2dva coeq1d oveq2d mpteq12dv elun2 simpr1 simpr s1cld ad2antrr
      cif wss eleqtrrd ffvelrnd sylan2 cbvmptv ssid mrsubfval sylancl cmnd cmhm
      fmptd cvrmd cmcn eqeltri cmvar unex frmdmnd ax-mp a1i cplusg feq23d mpbid
      eleqtrd simpr3 simprl simprr cbs frmdbas eqcomi frmdadd syl2anc ad2ant2lr
      wb ffvelrn ad2ant2l 2ralbidva raleqdv raleqbidv chash cc0 syl caddc fveq2
      cmrex bitr3d 3ad2antr1 cn0 wrd0 lencl nn0cnd 0cnd addid1d syl5eleqr oveq1
      oveq1d oveq2 ccatlid syl6eq rspc2va syl21anc ccatlen 3eqtrrd sylib pm3.2i
      addcanad hasheq0 frmd0 ismhm mpbiran syl3anbrc vrmdf fcompt vrmdval eqtrd
      frmdup3lem syl32anc 3eqtr4rd cpm wfn cmap mrsubff elpm2r mpanl12 fnfvelrn
      ffn eqeltrd ex impbid2 ) FIOZGEUDZOZDDGUEZJUFZUGZGPZUWJQZJCHUHZUIZAUFZBUF
      ZUJRZGPZUWOGPZUWPGPZUJRZQZBDUIADUIZULZUWGUWHUWNUXCDEFGKLUKUWGUWLJUWMCDEFG
      HUWIKLMNUMUNUWGUXBABDDUWGUWODOZUWPDOZUXBDEFGUWOUWPKLUOUPUQURUWEUXDUWGUWEU
      XDVCZGUAHUAUFZUGZGPZUSZEPZUWFUXGUBDCHUTZVAPZUCUXMUCUFZHOZUXOUXKPZUXOUGZWP
      ZUSZUBUFZVBZVDRZUSZUBUXMVEZUXNUCUXMUXRGPZUSZUYAVBZVDRZUSZUXLGUXGUBDUYCUYE
      UYIUWEDUYEQZUXDCDFHINMLVFZVGZUXGUYBUYHUXNVDUXGUXTUYGUYAUXGUCUXMUXSUYFUXGU
      XOUXMOZVCZUXPUXQUXRUYFUXPUXQUYFQUYOUAUXOUXJUYFHUXKUXHUXOQUXIUXRGUXHUXOVHV
      IZUXKVJUXRGVKVLVMUYOUXPVNZVCUYFUXRUXGUYNUYQUYFUXRQZUYNUYQVCZUXGUXOUWMOZUY
      RUYTUXOUXMHUHZOUYSVUAUWMUXOCHVOVPUXOUXMHVQVRUXGUWNUYTUYRUWEUWHUWNUXCVSUWL
      UYRJUXOUWMUWIUXOQZUWKUYFUWJUXRVUBUWJUXRGUWIUXOVHZVIVUCVTWAWFWBWCWDWEWGWHW
      IWJUXGHDUXKUEZHHWQZUXLUYDQUXGUCHUYFDUXKUXPUXGUYNUYFDOUXOHCWKUYODDUXRGUXGU
      WHUYNUWEUWHUWNUXCWLZVGUYOUXRUYEDUYOUXOUXMUXGUYNWMWNUWEUYKUXDUYNUYLWOZWRWS
      ZWTUAUCHUXJUYFUYPXAXGZHXBZUCHCDEFUBUXKUXNHNMLKUXNVJZXCXDUXGUXNXEOZUXMSOZU
      XMUYEUYGUEGUXNUXNXFROZGUXMXHPZVBZUYGQGUYJQVULUXGVUMVULCHCFXIPSNFXIVKXJHFX
      KPSMFXKVKXJZXLZUXMUXNSVUKXMXNZXOVUMUXGVURXOZUXGUCUXMUYFUYEUYGUYOUYFDUYEVU
      HVUGXSUYGVJXGUXGUYEUYEGUEZUWOUWPUXNXPPZRZGPZUWSUWTVVBRZQZBUYEUIZAUYEUIZTG
      PZTQZVUNUXGUWHVVAVUFUXGDDUYEUYEGUYMUYMXQXRZUXGUXCVVHUWEUWHUWNUXCXTZUWEUWN
      UWHUXCVVHYIUXCUWEUWHVCZVVFBDUIZADUIUXCVVHVVMVVFUXBABDDVVMUXEUXFVCZVCZVVDU
      WRVVEUXAVVPVVCUWQGVVPUWOUYEOUWPUYEOVVCUWQQVVPUWODUYEVVMUXEUXFYAVVMUYKVVOU
      WEUYKUWHUYLVGZVGZXSVVPUWPDUYEVVMUXEUXFYBVVRXSUYEVVBUXMUXNUWOUWPVUKUXNYCPZ
      UYEVUMVVSUYEQVURVVSUXMUXNSVUKVVSVJYDXNYEZVVBVJZYFYGVIVVPUWSUYEOUWTUYEOVVE
      UXAQVVPUWSDUYEUWHUXEUWSDOUWEUXFDDUWOGYJYHVVRXSVVPUWTDUYEUWHUXFUWTDOUWEUXE
      DDUWPGYJYKVVRXSUYEVVBUXMUXNUWSUWTVUKVVTVWAYFYGVTYLVVMVVNVVGADUYEVVQVVMVVF
      BDUYEVVQYMYNUUAUUBXRUXGVVIYOPZYPQZVVJUXGVWBVWBYPUXGVWBUXGVVIUYEOZVWBUUCOU
      XGVVATUYEOZVWDVVKUXMUUDZUYEUYETGYJXDZUXMVVIUUEYQUUFZVWHUXGUUGUXGVWBYPYRRV
      WBVVIVVIUJRZYOPZVWBVWBYRRZUXGVWBVWHUUHUXGVVIVWIYOUXGTDOZVWLUXCVVIVWIQZUXG
      TUYEDVWFUYMUUIZVWNVVLUXBVWMTUWPUJRZGPZVVIUWTUJRZQABTTDDUWOTQZUWRVWPUXAVWQ
      VWRUWQVWOGUWOTUWPUJUUJVIVWRUWSVVIUWTUJUWOTGYSUUKVTUWPTQZVWPVVIVWQVWIVWSVW
      OTGVWSVWOTTUJRZTUWPTTUJUULVWEVWTTQVWFUXMTUUMXNUUNVIVWSUWTVVIVVIUJUWPTGYSW
      IVTUUOUUPVIUXGVWDVWDVWJVWKQVWGVWGUXMVVIVVIUUQYGUURUVAVVISOVWCVVJYITGVKVVI
      SUVBXNUUSVUNVULVULVCVVAVVHVVJULVULVULVUSVUSUUTABUYEUYEVVBVVBUXNUXNGTTVVTV
      VTVWAVWAUXMUXNVUKUVCZVXAUVDUVEUVFUXGVUPUCUXMUXOVUOPZGPZUSZUYGUXGVVAUXMUYE
      VUOUEZVUPVXDQVVKVUMVXEVURVUOUXMSVUOVJZUVGXNUCGVUOUXMUYEUYEUVHXDUXGUCUXMVX
      CUYFUYOVXBUXRGUXGVUMUYNVXBUXRQVUTUXOVUOUXMSVXFUVIWFVIWGUVJUBUYGUYEVUOGUXN
      UXMUXNSVUKVVTVXFUVKUVLUVMUXGEDHUVNRZUVOZUXKVXGOZUXLUWFOUWEVXHUXDUWEVXGDDU
      VPRZEUEVXHDEFHIMLKUVQVXGVXJEUWAYQVGUXGVUDVUEVXIVUIVUJDSOHSOVUDVUEVCVXIDFY
      TPSLFYTVKXJVUQDHHUXKSSUVRUVSXDVXGUXKEUVTYGUWBUWCUWD $.
  $}

  ${
    $d c v x y z F $.  $d c v x y z S $.  $d c v x y z T $.  $d v x y z V $.
    $d c x y G $.  $d v x X $.
    mrsubco.s $e |- S = ( mRSubst ` T ) $.
    $( The composition of two substitutions is a substitution.  (Contributed by
       Mario Carneiro, 18-Jul-2016.) $)
    mrsubco $p |- ( ( F e. ran S /\ G e. ran S ) -> ( F o. G ) e. ran S ) $=
      ( vc vx vy wcel wa cfv wf wceq cconcat co adantr syl2anc syl c0 fvco3 crn
      ccom cmrex cv cs1 cmcn cmvar cdif wral mrsubf adantl fco cun cword eldifi
      elun1 s1cld cvv n0i wn cmrsub fvprc syl5eq rneqd rn0 syl6eq nsyl2 mrexval
      eleqtrrd mrsubcn adantll fveq2d adantlr 3eqtrd ralrimiva mrsubccat simpll
      3expb simprl ffvelrnd simprr syl3anc eqtrd eleqtrd ccatcl oveq12d 3eqtr4d
      eqid ralrimivva w3a wb elmrsubrn mpbir3and ) CAUAZIZDWNIZJZCDUBZWNIZBUCKZ
      WTWRLZFUDZUEZWRKZXCMZFBUFKZBUGKZUHZUIZGUDZHUDZNOZWRKZXJWRKZXKWRKZNOZMZHWT
      UIGWTUIZWQWTWTCLZWTWTDLZXAWOXSWPWTABCEWTWHZUJPWPXTWOWTABDEYAUJUKZWTWTWTCD
      ULQWQXEFXHWQXBXHIZJZXDXCDKZCKZXCCKZXCYDXTXCWTIXDYFMWQXTYCYBPYDXCXFXGUMZUN
      ZWTYDXBYHYCXBYHIZWQYCXBXFIYJXBXFXGUOXBXFXGUPRUKUQYDBURIZWTYIMZWQYKYCWOYKW
      PWOWNSMYKWNCUSYKUTZWNSUASYMASYMABVAKSEBVAVBVCVDVEVFVGPZPXFWTBXGURXFWHZXGW
      HZYAVHZRVIWTWTXCCDTQYDYEXCCWPYCYEXCMWOXFWTABDXGXBEYAYPYOVJVKVLWOYCYGXCMWP
      XFWTABCXGXBEYAYPYOVJVMVNVOWQXQGHWTWTWQXJWTIZXKWTIZJZJZXLDKZCKZXJDKZCKZXKD
      KZCKZNOZXMXPUUAUUCUUDUUFNOZCKZUUHUUAUUBUUICWPYTUUBUUIMZWOWPYRYSUUKWTABDXJ
      XKEYAVPVRVKVLUUAWOUUDWTIUUFWTIUUJUUHMWOWPYTVQUUAWTWTXJDWQXTYTYBPZWQYRYSVS
      ZVTUUAWTWTXKDUULWQYRYSWAZVTWTABCUUDUUFEYAVPWBWCUUAXTXLWTIXMUUCMUULUUAXLYI
      WTUUAXJYIIXKYIIXLYIIUUAXJWTYIUUMWQYLYTWQYKYLYNYQRPZWDUUAXKWTYIUUNUUOWDYHX
      JXKWEQUUOVIWTWTXLCDTQUUAXNUUEXOUUGNUUAXTYRXNUUEMUULUUMWTWTXJCDTQUUAXTYSXO
      UUGMUULUUNWTWTXKCDTQWFWGWIWQYKWSXAXIXRWJWKYNGHXFWTABWRXGURFEYAYPYOWLRWM
      $.

    mrsubvrs.v $e |- V = ( mVR ` T ) $.
    mrsubvrs.r $e |- R = ( mREx ` T ) $.
    $( The set of variables in a substitution is the union, indexed by the
       variables in the original expression, of the variables in the
       substitution to that variable.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    mrsubvrs $p |- ( ( F e. ran S /\ X e. R ) -> ( ran ( F ` X ) i^i V ) =
      U_ x e. ( ran X i^i V ) ( ran ( F ` <" x "> ) i^i V ) ) $=
      ( crn wcel cfv cin ciun wceq c0 rneqd syl6eq ineq1d vv vy vz cs1 cmcn cun
      cv cword cvv n0i wn cmrsub fvprc syl5eq rn0 nsyl2 eqid mrexval syl eleq2d
      wi cconcat co fveq2 rneq 0in iuneq1d eqeq12d imbi2d mrsub0 wa uneq1 simpl
      0iun simprl adantr eleqtrrd simprr s1cld mrsubccat syl3anc mrsubf eleqtrd
      ffvelrnd ccatrn syl2anc eqtrd indir csn s1rn ad2antll uneq2d iunxun simpr
      wf wss snssd df-ss sylib vex s1eq fveq2d iunxsn incom disjsn sylibr eldif
      cdif biimpri difun2 syl6eleq mrsubcn 3eqtr4a pm2.61dan syl5ibr expcom a2d
      sylan wrdind com12 sylbid imp ) ECKZLZGBLZGEMZKZFNZAGKZFNZAUGZUDZEMZKZFNZ
      OZPZYDYEGDUEMZFUFZUHZLZYQYDBYTGYDDUILZBYTPZYDYCQPUUBYCEUJUUBUKZYCQKZQUUDC
      QUUDCDULMQHDULUMUNRUOSUPYRBDFUIYRUQZIJURUSZUTUUAYDYQYDUAUGZEMZKZFNZAUUHKZ
      FNZYOOZPZVAYDQEMZKZFNZQPZVAYDUBUGZEMZKZFNZAUUTKZFNZYOOZPZVAYDUUTUCUGZUDZV
      BVCZEMZKZFNZAUVJKZFNZYOOZPZVAYDYQVAUAUBUCGYSUUHQPZUUOUUSYDUVRUUKUURUUNQUV
      RUUJUUQFUVRUUIUUPUUHQEVDRTUVRUUNAQYOOZQUVRAUUMQYOUVRUUMQFNZQUVRUULQFUVRUU
      LUUEQUUHQVEUOSTFVFZSVGAYOVNZSVHVIUUHUUTPZUUOUVGYDUWCUUKUVCUUNUVFUWCUUJUVB
      FUWCUUIUVAUUHUUTEVDRTUWCAUUMUVEYOUWCUULUVDFUUHUUTVETVGVHVIUUHUVJPZUUOUVQY
      DUWDUUKUVMUUNUVPUWDUUJUVLFUWDUUIUVKUUHUVJEVDRTUWDAUUMUVOYOUWDUULUVNFUUHUV
      JVETVGVHVIUUHGPZUUOYQYDUWEUUKYHUUNYPUWEUUJYGFUWEUUIYFUUHGEVDRTUWEAUUMYJYO
      UWEUULYIFUUHGVETVGVHVIYDUURUVTQYDUUQQFYDUUQUUEQYDUUPQCDEHVJRUOSTUWASUUTYT
      LZUVHYSLZVKZYDUVGUVQYDUWHUVGUVQVAUVGUVQYDUWHVKZUVCUVIEMZKZFNZUFZUVFUWLUFZ
      PUVCUVFUWLVLUWIUVMUWMUVPUWNUWIUVMUVBUWKUFZFNUWMUWIUVLUWOFUWIUVLUVAUWJVBVC
      ZKZUWOUWIUVKUWPUWIYDUUTBLUVIBLUVKUWPPYDUWHVMZUWIUUTYTBYDUWFUWGVOZYDUUCUWH
      UUGVPZVQZUWIUVIYTBUWIUVHYSYDUWFUWGVRZVSZUWTVQZBCDEUUTUVIHJVTWARUWIUVAYTLU
      WJYTLUWQUWOPUWIUVABYTUWIBBUUTEYDBBEWOUWHBCDEHJWBVPZUXAWDUWTWCUWIUWJBYTUWI
      BBUVIEUXEUXDWDUWTWCYSUVAUWJWEWFWGTUVBUWKFWHSUWIUVPUVFAUVHWIZFNZYOOZUFZUWN
      UWIUVPAUVEUXGUFZYOOUXIUWIAUVOUXJYOUWIUVOUVDUXFUFZFNUXJUWIUVNUXKFUWIUVNUVD
      UVIKZUFZUXKUWIUWFUVIYTLUVNUXMPUWSUXCYSUUTUVIWEWFUWIUXLUXFUVDUWGUXLUXFPZYD
      UWFUVHYSWJWKZWLWGTUVDUXFFWHSVGAUVEUXGYOWMSUWIUXHUWLUVFUWIUVHFLZUXHUWLPUWI
      UXPVKZUXHAUXFYOOUWLUXQAUXGUXFYOUXQUXFFWPUXGUXFPUXQUVHFUWIUXPWNWQUXFFWRWSV
      GAUVHYOUWLUCWTYKUVHPZYNUWKFUXRYMUWJUXRYLUVIEYKUVHXAXBRTXCSUWIUXPUKZVKZUVS
      QUXHUWLUWBUXTAUXGQYOUXTUXGFUXFNZQUXFFXDUXTUXSUYAQPUWIUXSWNFUVHXEXFUNZVGUX
      TUWLUXGQUXTUWKUXFFUXTUWKUXLUXFUXTUWJUVIUXTYDUVHYRFXHZLUWJUVIPUWIYDUXSUWRV
      PUXTUVHYSFXHZUYCUWIUWGUXSUVHUYDLZUXBUYEUWGUXSVKUVHYSFXGXIXRYRFXJXKYRBCDEF
      UVHHJIUUFXLWFRUWIUXNUXSUXOVPWGTUYBWGXMXNWLWGVHXOXPXQXSXTYAYB $.
  $}

  ${
    $d e f t E $.  $d e f t O $.  $d e f t R $.  $d e f t T $.  $d e f t V $.
    $d e f A $.  $d e f F $.  $d e X $.
    msubffval.v $e |- V = ( mVR ` T ) $.
    msubffval.r $e |- R = ( mREx ` T ) $.
    msubffval.s $e |- S = ( mSubst ` T ) $.
    msubffval.e $e |- E = ( mEx ` T ) $.
    ${
      msubffval.o $e |- O = ( mRSubst ` T ) $.
      $( A substitution applied to an expression.  (Contributed by Mario
         Carneiro, 18-Jul-2016.) $)
      msubffval $p |- ( T e. W -> S = ( f e. ( R ^pm V ) |-> ( e e. E |->
        <. ( 1st ` e ) , ( ( O ` f ) ` ( 2nd ` e ) ) >. ) ) ) $=
        ( vt cpm cfv cmpt fveq2 syl6eqr wcel cvv co cv c1st c2nd cop wceq cmsub
        elex cmrex cmvar cmex cmrsub oveq12d fveq1d opeq2d mpteq12dv ovex mptex
        df-msub fvmpt syl5eq syl ) CIUACUBUAZBEAHPUCZDFDUDZUEQZVGUFQZEUDZGQZQZU
        GZRZRZUHCIUJVEBCUIQVOLOCEOUDZUKQZVPULQZPUCZDVPUMQZVHVIVJVPUNQZQZQZUGZRZ
        RVOUBUIVPCUHZEVSWEVFVNWFVQAVRHPWFVQCUKQAVPCUKSKTWFVRCULQHVPCULSJTUOWFDV
        TWDFVMWFVTCUMQFVPCUMSMTWFWCVLVHWFVIWBVKWFVJWAGWFWACUNQGVPCUNSNTUPUPUQUR
        URODEVAEVFVNAHPUSUTVBVCVD $.

      $( A substitution applied to an expression.  (Contributed by Mario
         Carneiro, 18-Jul-2016.) $)
      msubfval $p |- ( ( F : A --> R /\ A C_ V ) -> ( S ` F ) = ( e e. E |->
      <. ( 1st ` e ) , ( ( O ` F ) ` ( 2nd ` e ) ) >. ) ) $=
        ( vf cvv wcel wa cfv c0 wf wss cv c1st c2nd cop cmpt wceq cpm msubffval
        wi co adantr simplr fveq2d fveq1d opeq2d mpteq2dva cmrex eqeltri pm3.2i
        fvex cmvar a1i elpm2r sylan cmex mptex fvmptd ex 0fv eqtr4i cmsub fvprc
        wn mpt0 syl5eq mpteq1d 3eqtr4a a1d pm2.61i ) DPQZABGUAAIUBRZGCSZEFEUCZU
        DSZWEUESZGHSZSZUFZUGZUHZUKWBWCWLWBWCRZOGEFWFWGOUCZHSZSZUFZUGZWKBIUIULZC
        PWBCOWSWRUGUHWCBCDEOFHIPJKLMNUJUMWMWNGUHZRZEFWQWJXAWEFQZRZWPWIWFXCWGWOW
        HXCWNGHWMWTXBUNUOUPUQURWBBPQZIPQZRZWCGWSQXFWBXDXEBDUSSPKDUSVBUTIDVCSPJD
        VCVBUTVAVDBIAGPPVEVFWKPQWMEFWJFDVGSZPMDVGVBUTVHVDVIVJWBVOZWLWCXHGTSZETW
        JUGZWDWKXITXJGVKEWJVPVLXHGCTXHCDVMSTLDVMVNVQUPXHEFTWJXHFXGTMDVGVNVQVRVS
        VTWA $.

      $( A substitution applied to an expression.  (Contributed by Mario
         Carneiro, 18-Jul-2016.) $)
      msubval $p |- ( ( F : A --> R /\ A C_ V /\ X e. E ) ->
      ( ( S ` F ) ` X ) = <. ( 1st ` X ) , ( ( O ` F ) ` ( 2nd ` X ) ) >. ) $=
        ( ve wcel c1st cfv c2nd fveq2d wf wss w3a cv cop cvv cmpt wceq msubfval
        3adant3 wa simpr opeq12d simp3 opex a1i fvmptd ) ABFUAZAHUBZIEPZUCZOIOU
        DZQRZVBSRZFGRZRZUEZIQRZISRZVERZUEZEFCRZUFURUSVLOEVGUGUHUTABCDOEFGHJKLMN
        UIUJVAVBIUHZUKZVCVHVFVJVNVBIQVAVMULZTVNVDVIVEVNVBISVOTTUMURUSUTUNVKUFPV
        AVHVJUOUPUQ $.

      $( A substitution applied to an expression.  (Contributed by Mario
         Carneiro, 18-Jul-2016.) $)
      msubrsub $p |- ( ( F : A --> R /\ A C_ V /\ X e. E ) ->
        ( 2nd ` ( ( S ` F ) ` X ) ) = ( ( O ` F ) ` ( 2nd ` X ) ) ) $=
        ( wf cfv c1st c2nd wceq fvex wss wcel w3a cop msubval op2ndd syl ) ABFO
        AHUAIEUBUCIFCPPZIQPZIRPZFGPZPZUDSUHRPULSABCDEFGHIJKLMNUEUIULUHIQTUJUKTU
        FUG $.
    $}

    $( The type of a substituted expression is the same as the original type.
       (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    msubty $p |- ( ( F : A --> R /\ A C_ V /\ X e. E ) ->
      ( 1st ` ( ( S ` F ) ` X ) ) = ( 1st ` X ) ) $=
      ( wf wss wcel w3a cfv c1st wceq fvex c2nd cmrsub cop eqid msubval op1std
      syl ) ABFMAGNHEOPHFCQQZHRQZHUAQZFDUBQZQZQZUCSUHRQUISABCDEFUKGHIJKLUKUDUEU
      IUMUHHRTUJULTUFUG $.
  $}

  ${
    $d e f g E $.  $d e f g O $.  $d e g T $.
    elmsubrn.e $e |- E = ( mEx ` T ) $.
    elmsubrn.o $e |- O = ( mRSubst ` T ) $.
    elmsubrn.s $e |- S = ( mSubst ` T ) $.
    $( Characterization of substitution in terms of raw substitution, without
       reference to the generating functions.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    elmsubrn $p |- ran S = ran ( f e. ran O |-> ( e e. E |->
      <. ( 1st ` e ) , ( f ` ( 2nd ` e ) ) >. ) ) $=
      ( vg cvv wcel crn cv cfv cop cmpt wceq rneqd c0 c1st c2nd cmrex cmvar cpm
      ccom co eqid msubffval wfn cmap wf mrsubff ffn syl fnfvelrn sylan feqmptd
      eqidd fveq1 opeq2d mpteq2dv fmptco eqtr4d cres rnco wss ssid resmpt ax-mp
      rneqi eqtri syl6eq wn mpt0 eqcomi cmsub syl5eq cmrsub rn0 mpteq1d 3eqtr4a
      fvprc pm2.61i ) BKLZAMZDFMZCECNZUAOZWHUBOZDNZOZPZQZQZMZRWEWFWOFUFZMZWPWEA
      WQWEAJBUCOZBUDOZUEUGZCEWIWJJNZFOZOZPZQZQWQWSABCJEFWTKWTUHZWSUHZIGHUIWEJDX
      AWGXCWNXFFWOWEFXAUJZXBXALXCWGLWEXAWSWSUKUGZFULXIWSFBWTKXGXHHUMZXAXJFUNUOX
      AXBFUPUQWEJXAXJFXKURWEWOUSWKXCRZCEWMXEXLWLXDWIWJWKXCUTVAVBVCVDSWRWOWGVEZM
      WPWOFVFXMWOWGWGVGXMWORWGVHDWGWGWNVIVJVKVLVMWEVNZAWOXNTDTWNQZAWOXOTDWNVOVP
      XNABVQOTIBVQWCVRXNDWGTWNXNWGTMTXNFTXNFBVSOTHBVSWCVRSVTVMWAWBSWD $.
  $}

  ${
    $d e f E $.  $d e f g R $.  $d f g S $.  $d e f g T $.  $d e f g V $.
    $d e f W $.
    msubff.v $e |- V = ( mVR ` T ) $.
    msubff.r $e |- R = ( mREx ` T ) $.
    msubff.s $e |- S = ( mSubst ` T ) $.
    $( Although it is defined for partial mappings of variables, every partial
       substitution is a substitution on some complete mapping of the
       variables.  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    msubrn $p |- ran S = ( S " ( R ^m V ) ) $=
      ( vf ve vg crn co cvv wcel wss cfv cv cmpt eqid c0 cmap cima cpm cmex cop
      c1st c2nd cmrsub msubffval rneqd wf wa wceq wrex wfun mrsubff adantr ffun
      syl wfn ffn fnfvelrn sylan mrsubrn syl6eleq fvelima syl2anc elmapi adantl
      ssid msubfval sylancl fvex mptex fnmpti fneq1d mpbiri mapsspm a1i fnfvima
      simpr syl3anc eqeltrrd adantlr opeq2d mpteq2dv eleq1d syl5ibcom rexlimdva
      fveq1 mpd fmptd frn eqsstrd wn cmsub fvprc syl5eq rn0 syl6eq 0ss syl6eqss
      pm2.61i imassrn eqssi ) BKZBADUALZUBZCMNZXFXHOXIXFHADUCLZICUDPZIQZUFPZXLU
      GPZHQZCUHPZPZPZUEZRZRZKZXHXIBYAABCIHXKXPDMEFGXKSZXPSZUIZUJXIXJXHYAUKYBXHO
      XIHXJXTXHYAXIXOXJNZULZJQZXPPZXQUMZJXGUNZXTXHNZYGXPUOZXQXPXGUBZNYKYGXJAAUA
      LZXPUKZYMXIYPYFAXPCDMEFYDUPZUQXJYOXPURUSYGXQXPKZYNXIXPXJUTZYFXQYRNXIYPYSY
      QXJYOXPVAUSXJXOXPVBVCAXPCDEFYDVDVEJXQXGXPVFVGYGYJYLJXGYGYHXGNZULIXKXMXNYI
      PZUEZRZXHNZYJYLXIYTUUDYFXIYTULZYHBPZUUCXHUUEDAYHUKZDDOUUFUUCUMYTUUGXIYHAD
      VHVIDVJDABCIXKYHXPDEFGYCYDVKVLUUEBXJUTZXGXJOZYTUUFXHNXIUUHYTXIUUHYAXJUTHX
      JXTYAIXKXSCUDVMVNYASZVOXIXJBYAYEVPVQUQUUIUUEADVRVSXIYTWAXJXGBYHVTWBWCWDYJ
      UUCXTXHYJIXKUUBXSYJUUAXRXMXNYIXQWJWEWFWGWHWIWKUUJWLXJXHYAWMUSWNXIWOZXFTXH
      UUKXFTKTUUKBTUUKBCWPPTGCWPWQWRUJWSWTXHXAXBXCBXGXDXE $.

    msubff.e $e |- E = ( mEx ` T ) $.
    $( A substitution is a function from ` E ` to ` E ` .  (Contributed by
       Mario Carneiro, 18-Jul-2016.) $)
    msubff $p |- ( T e. W -> S : ( R ^pm V ) --> ( E ^m E ) ) $=
      ( vf ve wcel co cmap wf cv cfv cmpt eqid cpm c1st c2nd cmrsub cop wa cmtc
      cxp xp1st mexval eleq2s adantl mrsubff ffvelrnda elmapi syl xp2nd ffvelrn
      syl2an opelxp sylanbrc syl6eleqr fmptd cmex cvv fvex eqeltri elmap sylibr
      msubffval feq1d mpbird ) CFMZAEUANZDDONZBPVNVOKVNLDLQZUBRZVPUCRZKQZCUDRZR
      ZRZUEZSZSZPVMKVNWDVOWEVMVSVNMUFZDDWDPWDVOMWFLDWCDWDWFVPDMZUFZWCCUGRZAUHZD
      WHVQWIMZWBAMZWCWJMWGWKWFWKVPWJDVPWIAUIACDWIWITJHUJZUKULWFAAWAPZVRAMZWLWGW
      FWAAAONZMWNVMVNWPVSVTAVTCEFGHVTTZUMUNWAAAUOUPWOVPWJDVPWIAUQWMUKAAVRWAURUS
      VQWBWIAUTVAWMVBWDTVCDDWDDCVDRVEJCVDVFVGZWRVHVIWETVCVMVNVOBWEABCLKDVTEFGHI
      JWQVJVKVL $.
  $}

  ${
    $d f g F $.  $d f g G $.  $d f g S $.  $d f g h x y T $.
    msubco.s $e |- S = ( mSubst ` T ) $.
    $( The composition of two substitutions is a substitution.  (Contributed by
       Mario Carneiro, 18-Jul-2016.) $)
    msubco $p |- ( ( F e. ran S /\ G e. ran S ) -> ( F o. G ) e. ran S ) $=
      ( vx vf vy vg vh crn wcel cfv cv cop cmpt wceq wrex ccom eqid cmex cmrsub
      c1st c2nd elmsubrn eleq2i fvex mptex elrnmpti bitri reeanv cmtc cmrex cxp
      wa simpr mexval syl6eleq xp1st syl mrsubf ad2antlr xp2nd ffvelrnd opelxpi
      wf syl2anc syl6eleqr op1std op2ndd fveq2d opeq12d fmptco opeq2d mpteq2dva
      eqidd fvco3 eqtr4d mrsubco fveq1 mpteq2dv elrnmpt1s sylancl eqeltrd coeq1
      cvv coeq2 sylan9eq eleq1d syl5ibrcom rexlimivv sylbir syl2anb ) CAKZLZCFB
      UAMZFNZUCMZWQUDMZGNZMZOZPZQZGBUBMZKZRZDHWPHNZUCMZXHUDMZINZMZOZPZQZIXFRZCD
      SZWNLZDWNLZWOCGXFXCPZKZLXGWNYACABFGWPXEWPTZXETZEUEUFGXFXCCXTXTTFWPXBBUAUG
      ZUHUIUJXSDIXFXNPZKZLXPWNYFDABHIWPXEYBYCEUEUFIXFXNDYEYETHWPXMYDUHUIUJXGXPU
      OXDXOUOZIXFRGXFRXRXDXOGIXFXFUKYGXRGIXFXFWTXFLZXKXFLZUOZXRYGXCXNSZWNLYJYKH
      WPXIXJWTXKSZMZOZPZWNYJYKHWPXIXLWTMZOZPYOYJHFWPWPXMXBYQXNXCYJXHWPLZUOZXMBU
      LMZBUMMZUNZWPYSXIYTLZXLUUALXMUUBLYSXHUUBLZUUCYSXHWPUUBYJYRUPUUABWPYTYTTYB
      UUATZUQZURZXHYTUUAUSUTYSUUAUUAXJXKYIUUAUUAXKVFZYHYRUUAXEBXKYCUUEVAVBZYSUU
      DXJUUALZUUGXHYTUUAVCUTZVDXIXLYTUUAVEVGUUFVHYJXNVPYJXCVPWQXMQZWRXIXAYPXIXL
      WQXHUCUGZXJXKUGZVIUULWSXLWTXIXLWQUUMUUNVJVKVLVMYJHWPYNYQYSYMYPXIYSUUHUUJY
      MYPQUUIUUKUUAUUAXJWTXKVQVGVNVOVRYJYOJXFHWPXIXJJNZMZOZPZPZKZWNYJYLXFLYOWFL
      YOUUTLXEBWTXKYCVSHWPYNYDUHJXFUURYOYLUUSWFUUSTUUOYLQZHWPUUQYNUVAUUPYMXIXJU
      UOYLVTVNWAWBWCABHJWPXEYBYCEUEVHWDYGXQYKWNXDXOXQXCDSYKCXCDWEDXNXCWGWHWIWJW
      KWLWM $.

    msubf.e $e |- E = ( mEx ` T ) $.
    $( A substitution is a function.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    msubf $p |- ( F e. ran S -> F : E --> E ) $=
      ( crn wcel cmap co wf cvv cmrex cfv cmvar cpm wss c0 cmsub eqid n0i fvprc
      wceq wn syl5eq rneqd rn0 syl6eq nsyl2 msubff frn 3syl sseldd elmapi syl
      id ) DAGZHZDCCIJZHCCDKURUQUSDURBLHZBMNZBONZPJZUSAKUQUSQURUQRUCUTUQDUAUTUD
      ZUQRGRVDARVDABSNREBSUBUEUFUGUHUIVAABCVBLVBTVATEFUJVCUSAUKULURUPUMDCCUNUO
      $.
  $}

  ${
    $d t v T $.  $d t v V $.  $d v X $.  $d t v Y $.
    mvhfval.v $e |- V = ( mVR ` T ) $.
    mvhfval.y $e |- Y = ( mType ` T ) $.
    mvhfval.h $e |- H = ( mVH ` T ) $.
    $( Value of the function mapping variables to their corresponding variable
       expressions.  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mvhfval $p |- H = ( v e. V |-> <. ( Y ` v ) , <" v "> >. ) $=
      ( vt cmvh cfv cv cop cmpt cvv wceq cmvar cmty fveq2 c0 cs1 syl6eqr fveq1d
      wcel opeq1d mpteq12dv df-mvh fvex eqeltri mptex fvmpt eqcomi fvprc syl5eq
      wn mpt0 mpteq1d 3eqtr4a pm2.61i eqtri ) CBJKZADALZEKZVBUAZMZNZHBOUDZVAVFP
      IBAILZQKZVBVHRKZKZVDMZNVFOJVHBPZAVIVLDVEVMVIBQKZDVHBQSFUBVMVKVCVDVMVBVJEV
      MVJBRKEVHBRSGUBUCUEUFAIUGADVEDVNOFBQUHUIUJUKVGUOZTATVENZVAVFVPTAVEUPULBJU
      MVOADTVEVODVNTFBQUMUNUQURUSUT $.

    $( Value of the function mapping variables to their corresponding variable
       expressions.  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mvhval $p |- ( X e. V -> ( H ` X ) = <. ( Y ` X ) , <" X "> >. ) $=
      ( vv cv cfv cs1 cop wceq fveq2 s1eq opeq12d mvhfval opex fvmpt ) IDIJZEKZ
      UALZMDEKZDLZMCBUADNUBUDUCUEUADEOUADPQIABCEFGHRUDUEST $.
  $}

  ${
    $d d D $.  $d t E $.  $d d t T $.  $d d t V $.
    mpstval.v $e |- V = ( mDV ` T ) $.
    mpstval.e $e |- E = ( mEx ` T ) $.
    mpstval.p $e |- P = ( mPreSt ` T ) $.
    $( A pre-statement is an ordered triple, whose first member is a symmetric
       set of dv conditions, whose second member is a finite set of
       expressions, and whose third member is an expression.  (Contributed by
       Mario Carneiro, 18-Jul-2016.) $)
    mpstval $p |- P =
      ( ( { d e. ~P V | `' d = d } X. ( ~P E i^i Fin ) ) X. E ) $=
      ( vt cmpst cfv cv wceq cpw cfn cxp cvv cmdv cmex c0 ccnv crab cin syl6eqr
      wcel fveq2 pweqd rabeqdv ineq1d xpeq12d df-mpst eqeltri rabex inex1 fvmpt
      fvex pwex xpex wn xp0 eqcomi fvprc syl5eq xpeq2d 3eqtr4a pm2.61i eqtri )
      ABJKZELZUAVIMZEDNZUBZCNZOUCZPZCPZHBQUEZVHVPMIBVJEILZRKZNZUBZVRSKZNZOUCZPZ
      WBPVPQJVRBMZWEVOWBCWFWAVLWDVNWFVJEVTVKWFVSDWFVSBRKZDVRBRUFFUDUGUHWFWCVMOW
      FWBCWFWBBSKZCVRBSUFGUDZUGUIUJWIUJIEUKVOCVLVNVJEVKDDWGQFBRUPULUQUMVMOCCWHQ
      GBSUPULZUQUNURWJURUOVQUSZTVOTPZVHVPWLTVOUTVABJVBWKCTVOWKCWHTGBSVBVCVDVEVF
      VG $.

    $( Property of being a pre-statement.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    elmpst $p |- ( <. D , H , A >. e. P <->
      ( ( D C_ V /\ `' D = D ) /\ ( H C_ E /\ H e. Fin ) /\ A e. E ) ) $=
      ( vd cop ccnv wceq cpw cfn cxp wcel wa bitri crab cin wss cotp w3a opelxp
      cv cnveq id eqeq12d elrab cmdv cfv cvv eqeltri elpw2 anbi1i elfpw anbi12i
      fvex df-ot mpstval eleq12i df-3an 3bitr4i ) BFLZALZKUGZMZVHNZKGOZUAZEOPUB
      ZQZEQZRZBGUCZBMZBNZSZFEUCFPRSZSZAERZSZBFAUDZCRVTWAWCUEVPVFVNRZWCSWDVFAVNE
      UFWFWBWCWFBVLRZFVMRZSWBBFVLVMUFWGVTWHWAWGBVKRZVSSVTVJVSKBVKVHBNZVIVRVHBVH
      BUHWJUIUJUKWIVQVSBGGDULUMUNHDULUTUOUPUQTFEURUSTUQTWEVGCVOBFAVACDEGKHIJVBV
      CVTWAWCVDVE $.
  $}

  ${
    $d a h s z A $.  $d a h s z D $.  $d a h s z H $.  $d a h s t z P $.
    $d a h s t T $.  $d t z V $.  $d a h s z Z $.
    msrfval.v $e |- V = ( mVars ` T ) $.
    msrfval.p $e |- P = ( mPreSt ` T ) $.
    msrfval.r $e |- R = ( mStRed ` T ) $.
    $( Value of the reduct of a pre-statement.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    msrfval $p |- R = ( s e. P |->
       [_ ( 2nd ` ( 1st ` s ) ) / h ]_ [_ ( 2nd ` s ) / a ]_
       <. ( ( 1st ` ( 1st ` s ) ) i^i
          [_ U. ( V " ( h u. { a } ) ) / z ]_ ( z X. z ) ) , h , a >. ) $=
      ( vt cmsr cfv cv csb cmpt cvv cmpst c0 c1st c2nd cima cuni cotp wcel wceq
      csn cun cxp cin cmvrs fveq2 syl6eqr imaeq1d unieqd ineq2d oteq1d csbeq2dv
      csbeq1d mpteq12dv df-msr fvex eqeltri mptex fvmpt wn eqcomi fvprc mpteq1d
      mpt0 syl5eq 3eqtr4a pm2.61i eqtri ) CDMNZGBEGOZUANZUBNZHVQUBNZVRUANZAFEOZ
      HOZUHUIZUCZUDZAOZWGUJZPZUKZWBWCUEZPZPZQZKDRUFZVPWNUGLDGLOZSNZEVSHVTWAAWPU
      LNZWDUCZUDZWHPZUKZWBWCUEZPZPZQWNRMWPDUGZGWQXEBWMXFWQDSNZBWPDSUMJUNXFEVSXD
      WLXFHVTXCWKXFXBWJWBWCXFXAWIWAXFAWTWFWHXFWSWEXFWRFWDXFWRDULNFWPDULUMIUNUOU
      PUTUQURUSUSVAALEGHVBGBWMBXGRJDSVCVDVEVFWOVGZTGTWMQZVPWNXITGWMVKVHDMVIXHGB
      TWMXHBXGTJDSVIVLVJVMVNVO $.

    msrval.z $e |- Z = U. ( V " ( H u. { A } ) ) $.
    $( Value of the reduct of a pre-statement.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    msrval $p |- ( <. D , H , A >. e. P -> ( R ` <. D , H , A >. ) =
       <. ( D i^i ( Z X. Z ) ) , H , A >. ) $=
      ( vs wcel c1st cfv c2nd cvv wceq wa vh va vz cotp cv csn cun cima cxp csb
      cuni cin cmpt msrfval a1i fvexd simpllr fveq2d cmex cmdv ccnv eqid elmpst
      cfn wss simp1bi simpld ad3antrrr fvex ssex simp2bi simprd simp3bi syl3anc
      syl ot1stg eqtrd cmvrs eqeltri imaexg ax-mp uniex id simplr ot2ndg 3eqtrd
      simpr ot3rdg sneqd uneq12d imaeq2d unieqd syl6eqr sqxpeqd csbied oteq123d
      sylan9eqr ineq12d otex fvmptd ) BFAUDZCNZMXAUAMUEZOPZQPZUBXCQPZXDOPZUCGUA
      UEZUBUEZUFZUGZUHZUKZUCUEZXNUIZUJZULZXHXIUDZUJZUJZBHHUIZULZFAUDZCDRDMCXTUM
      SXBUCCDEUAGMUBIJKUNUOXBXCXASZTZUAXEXSYCRYEXDQUPYEXHXESZTZUBXFXRYCRYGXCQUP
      YGXIXFSZTZXQYBXHFXIAYIXGBXPYAYIXGXAOPZOPZBYIXDYJOYIXCXAOXBYDYFYHUQZURZURY
      IBRNZFVDNZAEUSPZNZYKBSYIBEUTPZVEZYNXBYSYDYFYHXBYSBVABSZXBYSYTTZFYPVEZYOTZ
      YQABCEYPFYRYRVBYPVBJVCZVFVGVHBYREUTVIVJVOZXBYOYDYFYHXBUUBYOXBUUAUUCYQUUDV
      KVLVHZXBYQYDYFYHXBUUAUUCYQUUDVMVHZBFARVDYPVPVNVQYIUCXMXOYARXMRNYIXLGRNXLR
      NGEVRPRIEVRVIVSGXKRVTWAWBUOYIXNXMSZTXNHUUHYIXNXMHUUHWCYIXMGFAUFZUGZUHZUKH
      YIXLUUKYIXKUUJGYIXHFXJUUIYIXHXEYJQPZFYEYFYHWDYIXDYJQYMURYIYNYOYQUULFSUUEU
      UFUUGBFARVDYPWEVNWFZYIXIAYIXIXFXAQPZAYGYHWGYIXCXAQYLURYIYQUUNASUUGBFAYPWH
      VOWFZWIWJWKWLLWMWQWNWOWRUUMUUOWPWOWOXBWCYCRNXBYBFAWSUOWT $.
  $}

  ${
    $d a h s z P $.  $d s R $.  $d a d h s z T $.
    mpstssv.p $e |- P = ( mPreSt ` T ) $.
    $( A pre-statement is an ordered triple.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    mpstssv $p |- P C_ ( ( _V X. _V ) X. _V ) $=
      ( vd cv ccnv wceq cmdv cfv cpw crab cmex cfn cin cxp cvv eqid mpstval wss
      xpss ssv xpss12 mp2an eqsstri ) ADEZFUEGDBHIZJKZBLIZJMNZOZUHOZPPOZPOZABUH
      UFDUFQUHQCRUJULSUHPSUKUMSUGUITUHUAUJULUHPUBUCUD $.

    $( Decompose a pre-statement into a triple of values.  (Contributed by
       Mario Carneiro, 18-Jul-2016.) $)
    mpst123 $p |- ( X e. P -> X =
      <. ( 1st ` ( 1st ` X ) ) , ( 2nd ` ( 1st ` X ) ) , ( 2nd ` X ) >. ) $=
      ( wcel cvv cxp c1st cfv c2nd cotp wceq mpstssv sseli 1st2nd2 xp1st opeq1d
      cop syl eqtrd df-ot syl6eqr ) CAECFFGZFGZEZCCHIZHIZUFJIZCJIZKZLAUDCABDMNU
      ECUGUHRZUIRZUJUECUFUIRULCUCFOUEUFUKUIUEUFUCEUFUKLCUCFPUFFFOSQTUGUHUIUAUBS
      $.

    $( The elements of a pre-statement are sets.  (Contributed by Mario
       Carneiro, 18-Jul-2016.) $)
    mpstrcl $p |- ( <. D , H , A >. e. P ->
      ( D e. _V /\ H e. _V /\ A e. _V ) ) $=
      ( cotp cop cvv cxp w3a df-ot mpstssv sseli syl5eqelr opelxp anbi1i df-3an
      wcel wa 3bitr4i sylib ) BEAGZCSZBEHZAHZIIJZIJZSZBISZEISZAISZKZUDUFUCUHBEA
      LCUHUCCDFMNOUEUGSZULTUJUKTZULTUIUMUNUOULBEIIPQUEAUGIPUJUKULRUAUB $.

    msrf.r $e |- R = ( mStRed ` T ) $.
    $( The reduct of a pre-statement is a pre-statement.  (Contributed by Mario
       Carneiro, 18-Jul-2016.) $)
    msrf $p |- R : P --> P $=
      ( vs vh va vz cv cfv wcel csb cin cotp eqid wceq wss ccnv wa wf wral c1st
      wfn c2nd cmvrs csn cun cima cuni otex csbex msrfval fnmpti mpst123 fveq2d
      cxp eqeltrrd msrval syl eqtrd cmdv cmex cfn inss1 w3a elmpst sylib simp1d
      simpld syl5ss cnvin simprd a1i ineq12d syl5eq jca simp2d simp3d syl3anbrc
      id cnvxp eqeltrd rgen ffnfv mpbir2an ) AABUABAUDFJZBKZALZFAUBFAGWGUCKZUEK
      ZHWGUEKZWJUCKZICUFKZGJZHJZUGUHUIUJIJZWQUQMNZWOWPOZMZMBGWKWTHWLWSWRWOWPUKU
      LULIABCGWNFHWNPZDEUMUNWIFAWGALZWHWMWNWKWLUGUHUIUJZXCUQZNZWKWLOZAXBWHWMWKW
      LOZBKZXFXBWGXGBACWGDUOZUPXBXGALZXHXFQXBWGXGAXIXBWAURZWLWMABCWKWNXCXADEXCP
      USUTVAXBXECVBKZRZXESZXEQZTWKCVCKZRWKVDLTZWLXPLZXFALXBXMXOXBXEWMXLWMXDVEXB
      WMXLRZWMSZWMQZXBXSYATZXQXRXBXJYBXQXRVFXKWLWMACXPWKXLXLPZXPPZDVGVHZVIZVJVK
      XBXNXTXDSZNXEWMXDVLXBXTWMYGXDXBXSYAYFVMYGXDQXBXCXCWBVNVOVPVQXBYBXQXRYEVRX
      BYBXQXRYEVSWLXEACXPWKXLYCYDDVGVTWCWDFAABWEWF $.

    $( If ` X ` and ` Y ` have the same reduct, then one is a pre-statement iff
       the other is.  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    msrrcl $p |- ( ( R ` X ) = ( R ` Y ) -> ( X e. P <-> Y e. P ) ) $=
      ( cfv wceq wcel wi msrf ffvelrni a1i eleq1 syl5ibr c0 cvv cxp ndmfvrcl wb
      wa fdmi 0nelxp mpstssv sseli mto adantl biimpa syl 2thd ex pm5.21ndd ) DB
      HZEBHZIZUNAJZDAJZEAJZURUQKUPAADBABCFGLZMNUSUQUPUOAJZAAEBUTMUNUOAOZPUPUQUR
      USUAUPUQUBZURUSUQURUPDABAABUTUCZQAJQRRSZRSZJVERUDAVFQACFUEUFUGZTUHVCVAUSU
      PUQVAVBUIEABVDVGTUJUKULUM $.
  $}

  ${
    $d s t R $.  $d s t T $.  $d s X $.
    mstaval.r $e |- R = ( mStRed ` T ) $.
    mstaval.s $e |- S = ( mStat ` T ) $.
    $( Value of the set of statements.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    mstaval $p |- S = ran R $=
      ( vt cmsta cfv crn wcel wceq cv cmsr fveq2 syl6eqr rneqd df-msta c0 fvprc
      cvv fvex eqeltri rnex fvmpt wn rn0 eqcomi syl5eq 3eqtr4a pm2.61i eqtri )
      BCGHZAIZECTJZULUMKFCFLZMHZIUMTGUOCKZUPAUQUPCMHZAUOCMNDOPFQAAURTDCMUAUBUCU
      DUNUEZRRIZULUMUTRUFUGCGSUSARUSAURRDCMSUHPUIUJUK $.

    $( The reduct of a statement is itself.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    msrid $p |- ( X e. S -> ( R ` X ) = X ) $=
      ( vs cfv wceq wcel eqid c1st c2nd cin cotp fveq2d id eqeltrrd msrval syl
      crn cv cmpst wrex wf wfn wb msrf ffn fvelrnb mp2b cmvrs csn cun cima cuni
      cxp mpst123 eqtrd ffvelrni inass inidm ineq2i eqtri 3eqtr4d fveq2 eqeq12d
      a1i oteq1d syl5ibcom rexlimiv sylbi mstaval eleq2s ) DAHZDIZDAUAZBDVQJZGU
      BZAHZDIZGCUCHZUDZVPWBWBAUEAWBUFVRWCUGWBACWBKZEUHZWBWBAUIGWBDAUJUKWAVPGWBV
      SWBJZVTAHZVTIWAVPWFVSLHZLHZCULHZWHMHZVSMHZUMUNUOUPZWMUQZNZWKWLOZAHZWPWGVT
      WFWQWOWNNZWKWLOZWPWFWPWBJWQWSIWFVTWPWBWFVTWIWKWLOZAHZWPWFVSWTAWBCVSWDURZP
      WFWTWBJXAWPIWFVSWTWBXBWFQRWLWIWBACWKWJWMWJKZWDEWMKZSTUSZWBWBVSAWEUTRWLWOW
      BACWKWJWMXCWDEXDSTWFWRWOWKWLWRWOIWFWRWIWNWNNZNWOWIWNWNVAXFWNWIWNVBVCVDVHV
      IUSWFVTWPAXEPXEVEWAWGVOVTDVTDAVFWAQVGVJVKVLABCEFVMVN $.

    msrfo.p $e |- P = ( mPreSt ` T ) $.
    $( The reduct of a pre-statement is a statement.  (Contributed by Mario
       Carneiro, 18-Jul-2016.) $)
    msrfo $p |- R : P -onto-> S $=
      ( wfo crn wfn wf msrf ffn ax-mp dffn4 mpbi wceq wb mstaval foeq3 mpbir )
      ACBHZABIZBHZBAJZUDAABKUEABDGELAABMNABOPCUCQUBUDRBCDEFSCUCABTNUA $.
  $}

  ${
    mstapst.p $e |- P = ( mPreSt ` T ) $.
    mstapst.s $e |- S = ( mStat ` T ) $.
    $( A statement is a pre-statement.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    mstapst $p |- S C_ P $=
      ( cmsr cfv crn eqid mstaval wf wss msrf frn ax-mp eqsstri ) BCFGZHZAQBCQI
      ZEJAAQKRALAQCDSMAAQNOP $.

    elmsta.v $e |- V = ( mVars ` T ) $.
    elmsta.z $e |- Z = U. ( V " ( H u. { A } ) ) $.
    $( Property of being a statement.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    elmsta $p |- ( <. D , H , A >. e. S <->
                   ( <. D , H , A >. e. P /\ D C_ ( Z X. Z ) ) ) $=
      ( cotp wcel wss c1st cfv wceq syl cvv cxp wa mstapst cin cmsr eqid msrval
      sseli msrid eqtr3d fveq2d inss1 mpstrcl simp1d ssexg simp2d simp3d ot1stg
      w3a sylancr syl3anc 3eqtr3d inss2 syl6eqssr jca adantr simpr df-ss oteq1d
      crn sylib eqtrd wfn wf msrf ffn ax-mp fnfvelrn eqeltrrd mstaval syl6eleqr
      simpl impbii ) BFAMZDNZWDCNZBHHUAZOZUBZWEWFWHDCWDCDEIJUCUHZWEBBWGUDZWGWEW
      KFAMZPQZPQZWDPQZPQZWKBWEWMWOPWEWLWDPWEWDEUEQZQZWLWDWEWFWRWLRZWJABCWQEFGHK
      IWQUFZLUGZSWQDEWDWTJUIUJUKUKWEWKTNZFTNZATNZWNWKRWEWKBOBTNZXBBWGULWEXEXCXD
      WEWFXEXCXDUSZWJABCEFIUMSZUNWKBTUOUTWEXEXCXDXGUPWEXEXCXDXGUQWKFATTTURVAWEX
      FWPBRXGBFATTTURSVBBWGVCVDVEWIWDWQVJZDWIWRWDXHWIWRWLWDWFWSWHXAVFWIWKBFAWIW
      HWKBRWFWHVGBWGVHVKVIVLWIWQCVMZWFWRXHNCCWQVNXICWQEIWTVOCCWQVPVQWFWHWBCWDWQ
      VRUTVSWQDEWTJVTWAWC $.
  $}

  ${
    $d t A $.  $d t C $.  $d t v F $.  $d t K $.  $d t S $.  $d t v T $.
    $d t V $.  $d t Y $.
    ismfs.c $e |- C = ( mCN ` T ) $.
    ismfs.v $e |- V = ( mVR ` T ) $.
    ismfs.y $e |- Y = ( mType ` T ) $.
    ismfs.f $e |- F = ( mVT ` T ) $.
    ismfs.k $e |- K = ( mTC ` T ) $.
    ismfs.a $e |- A = ( mAx ` T ) $.
    ismfs.s $e |- S = ( mStat ` T ) $.
    $( A formal system is a tuple ` <. mCN , mVR , mType , mVT , mTC , mAx >. `
       such that: ` mCN ` and ` mVR ` are disjoint; ` mType ` is a function
       from ` mVR ` to ` mVT ` ; ` mVT ` is a subset of ` mTC ` ; ` mAx ` is a
       set of statements; and for each variable typecode, there are infinitely
       many variables of that type.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    ismfs $p |- ( T e. W -> ( T e. mFS <->
      ( ( ( C i^i V ) = (/) /\ Y : V --> K ) /\ ( A C_ S /\
          A. v e. F -. ( `' Y " { v } ) e. Fin ) ) ) ) $=
      ( cfv fveq2 syl6eqr vt cv cmcn cmvar cin c0 wceq cmtc cmty wf wa cmax wss
      cmsta ccnv csn cima wcel wn cmvt wral cmfs ineq12d eqeq1d feq123d anbi12d
      cfn sseq12d cnveqd imaeq1d eleq1d notbid raleqbidv df-mfs elab2g ) UAUBZU
      CRZVPUDRZUEZUFUGZVRVPUHRZVPUIRZUJZUKZVPULRZVPUNRZUMZWBUOZAUBUPZUQZVGURZUS
      ZAVPUTRZVAZUKZUKCHUEZUFUGZHGJUJZUKZBDUMZJUOZWIUQZVGURZUSZAFVAZUKZUKUAEVBI
      VPEUGZWDWSWOXFXGVTWQWCWRXGVSWPUFXGVQCVRHXGVQEUCRCVPEUCSKTXGVREUDRHVPEUDSL
      TZVCVDXGVRHWAGWBJXGWBEUIRJVPEUISMTZXHXGWAEUHRGVPEUHSOTVEVFXGWGWTWNXEXGWEB
      WFDXGWEEULRBVPEULSPTXGWFEUNRDVPEUNSQTVHXGWLXDAWMFXGWMEUTRFVPEUTSNTXGWKXCX
      GWJXBVGXGWHXAWIXGWBJXIVIVJVKVLVMVFVFAUAVNVO $.
  $}

  ${
    $d v T $.
    mfsdisj.c $e |- C = ( mCN ` T ) $.
    mfsdisj.v $e |- V = ( mVR ` T ) $.
    $( The constants and variables of a formal system are disjoint.
       (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mfsdisj $p |- ( T e. mFS -> ( C i^i V ) = (/) ) $=
      ( vv cmfs wcel cin c0 wceq cmtc cfv cmty wf cmax cmsta wss wa eqid cv csn
      ccnv cima cfn wn cmvt wral ismfs ibi simplld ) BGHZACIJKZCBLMZBNMZOZBPMZB
      QMZRUOUCFUAUBUDUEHUFFBUGMZUHSZULUMUPSUTSFUQAURBUSUNCGUODEUOTUSTUNTUQTURTU
      IUJUK $.
  $}

  ${
    $d v T $.
    mtyf2.v $e |- V = ( mVR ` T ) $.
    mvtf2.k $e |- K = ( mTC ` T ) $.
    mtyf2.y $e |- Y = ( mType ` T ) $.
    $( The type function maps variables to typecodes.  (Contributed by Mario
       Carneiro, 18-Jul-2016.) $)
    mtyf2 $p |- ( T e. mFS -> Y : V --> K ) $=
      ( vv cmfs wcel cmcn cfv cin c0 wceq wf cmax cmsta wa eqid wss ccnv cv csn
      cima cfn wn cmvt wral ismfs ibi simplrd ) AIJZAKLZCMNOZCBDPZAQLZARLZUADUB
      HUCUDUEUFJUGHAUHLZUISZUMUOUPSUTSHUQUNURAUSBCIDUNTEGUSTFUQTURTUJUKUL $.
  $}

  ${
    mtyf.v $e |- V = ( mVR ` T ) $.
    mtyf.f $e |- F = ( mVT ` T ) $.
    mtyf.y $e |- Y = ( mType ` T ) $.
    $( The type function maps variables to variable typecodes.  (Contributed by
       Mario Carneiro, 18-Jul-2016.) $)
    mtyf $p |- ( T e. mFS -> Y : V --> F ) $=
      ( cmfs wcel crn wf cmtc cfv wfo eqid mtyf2 wfn ffn dffn4 sylib fof mvtval
      3syl wceq wb feq3 ax-mp sylibr ) AHIZCDJZDKZCBDKZUICALMZDKZCUJDNZUKAUMCDE
      UMOGPUNDCQUOCUMDRCDSTCUJDUAUCBUJUDULUKUEABDFGUBBUJCDUFUGUH $.
  $}

  ${
    mvtss.f $e |- F = ( mVT ` T ) $.
    mvtss.k $e |- K = ( mTC ` T ) $.
    $( The set of variable typecodes is a subset of all typecodes.
       (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mvtss $p |- ( T e. mFS -> F C_ K ) $=
      ( cmfs wcel cmty cfv crn eqid mvtval cmvar wf wss mtyf2 frn syl syl5eqss
      ) AFGZBAHIZJZCABUADUAKZLTAMIZCUANUBCOACUDUAUDKEUCPUDCUAQRS $.
  $}

  ${
    $d v T $.
    maxsta.a $e |- A = ( mAx ` T ) $.
    maxsta.s $e |- S = ( mStat ` T ) $.
    $( An axiom is a statement.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    maxsta $p |- ( T e. mFS -> A C_ S ) $=
      ( vv cmfs wcel cmcn cfv cmvar cin c0 wceq cmtc cmty wf wa wss eqid cv csn
      ccnv cima cfn wn cmvt wral ismfs ibi simprld ) CGHZCIJZCKJZLMNUNCOJZCPJZQ
      RZABSZUPUCFUAUBUDUEHUFFCUGJZUHZULUQURUTRRFAUMBCUSUOUNGUPUMTUNTUPTUSTUOTDE
      UIUJUK $.
  $}

  ${
    $d v F $.  $d v T $.  $d v X $.  $d v Y $.
    mvtinf.f $e |- F = ( mVT ` T ) $.
    mvtinf.y $e |- Y = ( mType ` T ) $.
    $( Each variable typecode has infinitely many variables.  (Contributed by
       Mario Carneiro, 18-Jul-2016.) $)
    mvtinf $p |- ( ( T e. mFS /\ X e. F ) -> -. ( `' Y " { X } ) e. Fin ) $=
      ( vv cmfs wcel ccnv cv csn cima cfn wn wral cfv wceq wa eqid cmvar cin c0
      cmcn cmtc wf cmax cmsta wss ismfs ibi simprrd sneq imaeq2d eleq1d rspccva
      notbid sylan ) AHIZDJZGKZLZMZNIZOZGBPZCBIUTCLZMZNIZOZUSAUDQZAUAQZUBUCRVLA
      UEQZDUFSZAUGQZAUHQZUIZVFUSVNVQVFSSGVOVKVPABVMVLHDVKTVLTFEVMTVOTVPTUJUKULV
      EVJGCBVACRZVDVIVRVCVHNVRVBVGUTVACUMUNUOUQUPUR $.
  $}

  ${
    $d f g r v R $.  $d f g r v S $.  $d f g r v T $.  $d f g r v V $.
    msubff1.v $e |- V = ( mVR ` T ) $.
    msubff1.r $e |- R = ( mREx ` T ) $.
    msubff1.s $e |- S = ( mSubst ` T ) $.
    ${
      msubff1.e $e |- E = ( mEx ` T ) $.
      $( When restricted to complete mappings, the substitution-producing
         function is one-to-one.  (Contributed by Mario Carneiro,
         18-Jul-2016.) $)
      msubff1 $p |- ( T e. mFS ->
        ( S |` ( R ^m V ) ) : ( R ^m V ) -1-1-> ( E ^m E ) ) $=
        ( vf vg vv cmfs wcel co wf cfv wceq wa wb vr cmap cres cv wi wf1 msubff
        wral cpm wss mapsspm a1i fssresd cmrsub wfn eqid mrsubff simplrl sseldi
        ad2antrr ffvelrnd elmapi ffn 3syl simplrr cmty cop c2nd c1st fveq1d syl
        adantr ssid cmtc cxp mtyf2 ad3antrrr opelxpi sylancom syl6eleqr msubval
        mexval syl3anc 3eqtr3d fvex opth simprbi op2nd 3eqtr3g eqfnfvd mrsubff1
        fveq2i f1fveq sylan fvres eqeqan12d adantl bitr3d mpbird expr ralrimdva
        vex eqfnfv syl2an 3imtr4d ralrimivva dff13 sylanbrc ) CMNZAEUBOZDDUBOZB
        XJUCZPJUDZXLQZKUDZXLQZRZXMXORZUEZKXJUHJXJUHXJXKXLUFXIAEUIOZXKXJBABCDEMF
        GHIUGXJXTUJXIAEUKZULUMXIXSJKXJXJXIXMXJNZXOXJNZSZSZXMBQZXOBQZRZLUDZXMQYI
        XOQRZLEUHZXQXRYEYHYJLEYEYIENZYHYJYEYLYHSZSZYIXMXOYNXRXMCUNQZQZXOYOQZRZY
        NUAAYPYQYNYPAAUBOZNAAYPPYPAUOYNXTYSXMYOXIXTYSYOPYDYMAYOCEMFGYOUPZUQUTZY
        NXJXTXMYAXIYBYCYMURZUSVAYPAAVBAAYPVCVDYNYQYSNAAYQPYQAUOYNXTYSXOYOUUAYNX
        JXTXOYAXIYBYCYMVEZUSVAYQAAVBAAYQVCVDYNUAUDZANZSZYICVFQZQZUUDVGZVHQZYPQZ
        UUJYQQZUUDYPQUUDYQQUUFUUIVIQZUUKVGZUUMUULVGZRZUUKUULRZUUFUUIYFQZUUIYGQZ
        UUNUUOUUFUUIYFYGYEYLYHUUEVEVJUUFEAXMPZEEUJZUUIDNZUURUUNRUUFYBUUTYNYBUUE
        UUBVLXMAEVBZVKUVAUUFEVMULZUUFUUICVNQZAVOZDYNUUEUUHUVENUUIUVFNUUFEUVEYIU
        UGXIEUVEUUGPYDYMUUECUVEEUUGFUVEUPZUUGUPVPVQYEYLYHUUEURVAUUHUUDUVEAVRVSA
        CDUVEUVGIGWBVTZEABCDXMYOEUUIFGHIYTWAWCUUFEAXOPZUVAUVBUUSUUORUUFYCUVIYNY
        CUUEUUCVLXOAEVBZVKUVDUVHEABCDXOYOEUUIFGHIYTWAWCWDUUPUUMUUMRUUQUUMUUKUUM
        UULUUIVIWEUUJYPWEWFWGVKUUJUUDYPUUHUUDYIUUGWEUAXBWHZWLUUJUUDYQUVKWLWIWJY
        EXRYRTYMYEXMYOXJUCZQZXOUVLQZRZXRYRXIXJYSUVLUFYDUVOXRTAYOCEMFGYTWKXJYSXM
        XOUVLWMWNYDUVOYRTXIYBYCUVMYPUVNYQXMXJYOWOXOXJYOWOWPWQWRVLWSVJWTXAYDXQYH
        TXIYBYCXNYFXPYGXMXJBWOXOXJBWOWPWQYDXRYKTZXIYBUUTUVIUVPYCUVCUVJUUTXMEUOX
        OEUOUVPUVIEAXMVCEAXOVCLEXMXOXCXDXDWQXEXFJKXJXKXLXGXH $.
    $}

    $( When restricted to complete mappings, the substitution-producing
       function is bijective to the set of all substitutions.  (Contributed by
       Mario Carneiro, 18-Jul-2016.) $)
    msubff1o $p |- ( T e. mFS ->
      ( S |` ( R ^m V ) ) : ( R ^m V ) -1-1-onto-> ran S ) $=
      ( cmfs wcel cmap co cres crn wf1o cmex cfv wf1 eqid msubff1 f1f1orn eqtri
      syl wceq wb cima msubrn df-ima f1oeq3 ax-mp sylibr ) CHIZADJKZBULLZMZUMNZ
      ULBMZUMNZUKULCOPZURJKZUMQUOABCURDEFGURRSULUSUMTUBUPUNUCUQUOUDUPBULUEUNABC
      DEFGUFBULUGUAUPUNULUMUHUIUJ $.
  $}

  ${
    $d v E $.  $d v w H $.  $d v w T $.  $d v w V $.
    mvhf.v $e |- V = ( mVR ` T ) $.
    mvhf.e $e |- E = ( mEx ` T ) $.
    mvhf.h $e |- H = ( mVH ` T ) $.
    $( The function mapping variables to variable expressions is a function.
       (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mvhf $p |- ( T e. mFS -> H : V --> E ) $=
      ( vv cmfs wcel cv cmty cfv cs1 cop wa cmtc cmrex cxp eqid mtyf2 ffvelrnda
      cmcn cun cword elun2 adantl s1cld mrexval adantr eleqtrrd opelxpi syl2anc
      wceq mexval syl6eleqr mvhfval fmptd ) AIJZHDHKZALMZMZUTNZOZBCUSUTDJZPZVDA
      QMZARMZSZBVFVBVGJVCVHJVDVIJUSDVGUTVAAVGDVAEVGTZVATZUAUBVFVCAUCMZDUDZUEZVH
      VFUTVMVEUTVMJUSUTDVLUFUGUHUSVHVNUNVEVLVHADIVLTEVHTZUIUJUKVBVCVGVHULUMVHAB
      VGVJFVOUOUPHACDVAEVKGUQUR $.

    $( The function mapping variables to variable expressions is one-to-one.
       (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mvhf1 $p |- ( T e. mFS -> H : V -1-1-> E ) $=
      ( vv vw wcel cv cfv wceq wral wa cs1 cop wb mvhval adantl cmfs wf wi mvhf
      wf1 cmty eqid eqeqan12d fvex cword s1cli elexi opth simprbi syl5ib sylbid
      cvv s111 ralrimivva dff13 sylanbrc ) AUAJZDBCUBHKZCLZIKZCLZMZVCVEMZUCZIDN
      HDNDBCUEABCDEFGUDVBVIHIDDVBVCDJZVEDJZOZOZVGVCAUFLZLZVCPZQZVEVNLZVEPZQZMZV
      HVLVGWARVBVJVKVDVQVFVTACDVCVNEVNUGZGSACDVEVNEWBGSUHTWAVPVSMZVMVHWAVOVRMWC
      VOVPVRVSVCVNUIVPUQUJVCUKULUMUNVLWCVHRVBDVCVEURTUOUPUSHIDBCUTVA $.
  $}

  ${
    $d e f x E $.  $d f x F $.  $d e f H $.  $d e f x T $.  $d e f x X $.
    $d f x V $.
    msubvrs.s $e |- S = ( mSubst ` T ) $.
    msubvrs.e $e |- E = ( mEx ` T ) $.
    msubvrs.v $e |- V = ( mVars ` T ) $.
    msubvrs.h $e |- H = ( mVH ` T ) $.
    $( The set of variables in a substitution is the union, indexed by the
       variables in the original expression, of the variables in the
       substitution to that variable.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    msubvrs $p |- ( ( T e. mFS /\ F e. ran S /\ X e. E ) -> ( V ` ( F ` X ) ) =
      U_ x e. ( V ` X ) ( V ` ( F ` ( H ` x ) ) ) ) $=
      ( wcel crn cfv wceq c2nd eqid syl fveq2d ve vf cmfs cv ciun c1st cop cmpt
      cmrsub wrex wi elmsubrn eleq2i cmex cvv fvex eqeltri mptex elrnmpti bitri
      wa w3a cmvar cin cs1 cmrex simp2 cxp simp3 mexval syl6eleq xp2nd mrsubvrs
      cmtc syl2anc fveq2 opeq12d opex fvmpt3i wf mrsubf eleq2s ffvelrnd opelxpi
      xp1st syl6eleqr mvrsval op2nd a1i rneqd ineq1d iuneq1d cmty mvhf 3ad2ant1
      3eqtrd inss2 sseli ffvelrn syl2an adantl mvhval cword s1cli op1std op2ndd
      elexi eqtrd simpl1 mtyf2 adantr cun elun2 s1cld mrexval eleqtrrd iuneq2dv
      cmcn 3eqtr4d fveq1 iuneq2d eqeq12d syl5ibrcom 3expia com23 rexlimdva 3imp
      syl5bi ) CUCMZEBNZMZHDMZHEOZGOZAHGOZAUDZFOZEOZGOZUEZPZYKEUADUAUDZUFOZUUBQ
      OZUBUDZOZUGZUHZPZUBCUIOZNZUJZYIYLUUAUKZYKEUBUUKUUHUHZNZMUULYJUUOEBCUAUBDU
      UJJUUJRZIULUMUBUUKUUHEUUNUUNRUADUUGDCUNOUOJCUNUPUQURUSUTYIUUIUUMUBUUKYIUU
      EUUKMZVAYLUUIUUAYIUUQYLUUIUUAUKYIUUQYLVBZUUAUUIHUUHOZGOZAYOYQUUHOZGOZUEZP
      UURHQOZUUEOZNZCVCOZVDZAUVDNZUVGVDZYPVEZUUEOZNZUVGVDZUEZUUTUVCUURUUQUVDCVF
      OZMZUVHUVOPYIUUQYLVGZUURHCVNOZUVPVHZMZUVQUURHDUVTYIUUQYLVIZUVPCDUVSUVSRZJ
      UVPRZVJZVKZHUVSUVPVLZSAUVPUUJCUUEUVGUVDUUPUVGRZUWDVMVOUURUUTHUFOZUVEUGZGO
      ZUWJQOZNZUVGVDZUVHUURUUSUWJGUURYLUUSUWJPUWBUAHUUGUWJDUUHUUBHPZUUCUWIUUFUV
      EUUBHUFVPUWOUUDUVDUUEUUBHQVPTVQUUHRZUUCUUFVRZVSSTUURUWJDMUWKUWNPUURUWJUVT
      DUURUWIUVSMZUVEUVPMUWJUVTMUURUWAUWRUWFHUVSUVPWESUURUVPUVPUVDUUEUURUUQUVPU
      VPUUEVTZUVRUVPUUJCUUEUUPUWDWASZUURYLUVQUWBUVQHUVTDUWGUWEWBSWCUWIUVEUVSUVP
      WDVOUWEWFCDUVGGUWJUWHJKWGSUURUWMUVFUVGUURUWLUVEUWLUVEPUURUWIUVEHUFUPUVDUU
      EUPWHWIWJWKWPUURUVCAUVJUVBUEUVOUURAYOUVJUVBUURYLYOUVJPUWBCDUVGGHUWHJKWGSW
      LUURAUVJUVBUVNUURYPUVJMZVAZUVBYPCWMOZOZUVLUGZGOZUXEQOZNZUVGVDZUVNUXBUVAUX
      EGUXBUVAYQUFOZYQQOZUUEOZUGZUXEUXBYQDMZUVAUXMPUURUVGDFVTZYPUVGMZUXNUXAYIUU
      QUXOYLCDFUVGUWHJLWNWOUVJUVGYPUVIUVGWQWRZUVGDYPFWSWTUAYQUUGUXMDUUHUUBYQPZU
      UCUXJUUFUXLUUBYQUFVPUXRUUDUXKUUEUUBYQQVPTVQUWPUWQVSSUXBUXJUXDUXLUVLUXBYQU
      XDUVKUGPZUXJUXDPUXBUXPUXSUXAUXPUURUXQXAZCFUVGYPUXCUWHUXCRZLXBSZUXDUVKYQYP
      UXCUPZUVKUOXCYPXDXGZXESUXBUXKUVKUUEUXBUXSUXKUVKPUYBUXDUVKYQUYCUYDXFSTVQXH
      TUXBUXEDMUXFUXIPUXBUXEUVTDUXBUXDUVSMUVLUVPMUXEUVTMUXBUVGUVSYPUXCUXBYIUVGU
      VSUXCVTYIUUQYLUXAXIZCUVSUVGUXCUWHUWCUYAXJSUXTWCUXBUVPUVPUVKUUEUURUWSUXAUW
      TXKUXBUVKCXROZUVGXLZXCZUVPUXBYPUYGUXBUXPYPUYGMUXTYPUVGUYFXMSXNUXBYIUVPUYH
      PUYEUYFUVPCUVGUCUYFRUWHUWDXOSXPWCUXDUVLUVSUVPWDVOUWEWFCDUVGGUXEUWHJKWGSUX
      BUXHUVMUVGUXBUXGUVLUXGUVLPUXBUXDUVLUYCUVKUUEUPWHWIWJWKWPXQXHXSUUIYNUUTYTU
      VCUUIYMUUSGHEUUHXTTUUIAYOYSUVBUUIYRUVAGYQEUUHXTTYAYBYCYDYEYFYHYG $.
  $}

  ${
    $d d h t D $.  $d c d h m o p s t v E $.  $d a b c d h m o p s t v x z H $.
    $d c d h m o p s t v x y B $.  $d m o p s t v x C $.  $d c m o p s x y L $.
    $d c d h m o p s t A $.  $d m o p s x y O $.  $d a b c d h s t v x y z S $.
    $d a b m o p s x y M $.  $d c m o p s x y P $.  $d c d h m o p s t x y T $.
    $d a b c d h m o p s v x y ph $.  $d c m o p s v Q $.  $d c d h t v x V $.
    $d a b c m o p s x z W $.  $d c m o p s x y X $.  $d c m o p s x y Y $.
    $d a b c d h m o p s t v x y z K $.
    mclsval.d $e |- D = ( mDV ` T ) $.
    mclsval.e $e |- E = ( mEx ` T ) $.
    mclsval.c $e |- C = ( mCls ` T ) $.
    $( Reverse closure for the closure function.  (Contributed by Mario
       Carneiro, 18-Jul-2016.) $)
    mclsrcl $p |- ( A e. ( K C B ) -> ( T e. _V /\ K C_ D /\ B C_ E ) ) $=
      ( vt vd vh wcel cvv wss c0 cmcls cfv cv vc vm vo vp vs vx vy co n0i fvprc
      wceq wn syl5eq oveqd 0ov syl6eq nsyl2 wa cmdv cpw wi fveq2 syl6eqr eleq2d
      cmex fvex elpw2 sseq2d syl5bb anbi12d imbi12d cmvh crn cun cotp cmax cima
      wbr cmvrs cxp wal cmsub wral cab cint cmpt2 vex pwex mpt2ex df-mcls mp2an
      fvmpt2 elmpt2cl vtoclg mpcom simpld simprd 3jca ) AGBCUHZNZEONZGDPZBFPZWT
      WSQUKXAWSAUIXAULZWSGBQUHQXDCQGBXDCERSZQJERUJUMUNGBUOUPUQZWTXBXCXAWTXBXCUR
      ZXFAGBKTZRSZUHZNZGXHUSSZUTZNZBXHVESZUTZNZURZVAWTXGVAKEOXHEUKZXKWTXRXGXSXJ
      WSAXSXICGBXSXIXECXHERVBJVCUNVDXSXNXBXQXCXNGXLPXSXBGXLXHUSVFZVGXSXLDGXSXLE
      USSDXHEUSVBHVCVHVIXQBXOPXSXCBXOXHVEVFZVGXSXOFBXSXOEVESFXHEVEVBIVCVHVIVJVK
      LMXMXPMTXHVLSZVMZVNUATZPUBTZUCTZUDTZVOXHVPSNUETZYFYCVNVQYDPUFTZUGTZYEVRYI
      YBSYHSXHVSSZSYJYBSYHSYKSVTLTPVAUGWAUFWAURYGYHSYDNVAUEXHWBSVMWCVAUDWAUCWAU
      BWAURUAWDWEZGBXIAXHONLMXMXPYLWFZONXIYMUKKWGLMXMXPYLXLXTWHXOYAWHWIKOYMORUF
      UGKMUBUCUEUDUALWJWLWKWMWNWOZWPWTXBXCYNWQWR $.

    mclsval.1 $e |- ( ph -> T e. mFS ) $.
    mclsval.2 $e |- ( ph -> K C_ D ) $.
    mclsval.3 $e |- ( ph -> B C_ E ) $.
    ${
      mclsval.h $e |- H = ( mVH ` T ) $.
      mclsval.a $e |- A = ( mAx ` T ) $.
      mclsval.s $e |- S = ( mSubst ` T ) $.
      mclsval.v $e |- V = ( mVars ` T ) $.
      $( Lemma for ~ mclsssv .  (Contributed by Mario Carneiro,
         18-Jul-2016.) $)
      mclsssvlem $p |- ( ph -> |^| { c | ( ( B u. ran H ) C_ c /\
            A. m A. o A. p ( <. m , o , p >. e. A ->
              A. s e. ran S ( ( ( s " ( o u. ran H ) ) C_ c /\
       A. x A. y ( x m y ->
         ( ( V ` ( s ` ( H ` x ) ) ) X. ( V ` ( s ` ( H ` y ) ) ) ) C_ K ) ) ->
         ( s ` p ) e. c ) ) ) } C_ E ) $=
        ( crn cun cv wss cotp wcel cima wbr cfv cxp wi wal wa wral cab cmvar wf
        cint cmfs eqid syl unssd msubf cmpst cmsta maxsta mstapst syl6ss sselda
        mvhf frn ccnv wceq cfn elmpst simp3bi ffvelrn syl2anr ralrimiva alrimiv
        a1d ex alrimivv cmex cvv fvex eqeltri sseq2 anbi1d eleq2 imbi12d imbi2d
        ralbidv albidv 2albidv anbi12d elab sylanbrc intss1 ) ALEMUIZUJZRUKZULZ
        JUKZKUKZQUKZUMZDUNZPUKZXMXHUJUOZXJULZBUKZCUKZXLUPXTMUQXQUQOUQYAMUQXQUQO
        UQURNULUSCUTBUTZVAZXNXQUQZXJUNZUSZPHUIZVBZUSZQUTZKUTJUTZVAZRVCZUNZYMVFL
        ULAXILULZXPXRLULZYBVAZYDLUNZUSZPYGVBZUSZQUTZKUTJUTZYNAEXHLUDAIVDUQZLMVE
        ZXHLULAIVGUNZUUEUBILMUUDUUDVHTUEVRVIUUDLMVSVIVJAUUBJKAUUAQAXPYTAXPVAZYS
        PYGUUGXQYGUNZVAYRYQUUHLLXQVEXNLUNZYRUUGHILXQUGTVKUUGXOIVLUQZUNZUUIADUUJ
        XOADIVMUQZUUJAUUFDUULULUBDUULIUFUULVHZVNVIUUJUULIUUJVHZUUMVOVPVQUUKXLGU
        LXLVTXLWAVAXMLULXMWBUNVAUUIXNXLUUJILXMGSTUUNWCWDVILLXNXQWEWFWIWGWJWHWKY
        LYOUUCVARLLIWLUQWMTIWLWNWOXJLWAZXKYOYKUUCXJLXIWPUUOYJUUBJKUUOYIUUAQUUOY
        HYTXPUUOYFYSPYGUUOYCYQYEYRUUOXSYPYBXJLXRWPWQXJLYDWRWSXAWTXBXCXDXEXFLYMX
        GVI $.

      $( The function mapping variables to variable expressions is one-to-one.
         (Contributed by Mario Carneiro, 18-Jul-2016.) $)
      mclsval $p |- ( ph -> ( K C B ) = |^| { c | ( ( B u. ran H ) C_ c /\
            A. m A. o A. p ( <. m , o , p >. e. A ->
              A. s e. ran S ( ( ( s " ( o u. ran H ) ) C_ c /\
       A. x A. y ( x m y ->
         ( ( V ` ( s ` ( H ` x ) ) ) X. ( V ` ( s ` ( H ` y ) ) ) ) C_ K ) ) ->
         ( s ` p ) e. c ) ) ) } ) $=
        ( vd vh vt cpw cv crn cun wss cotp wcel cima wbr cfv cxp wi wal wa wral
        cab cint cvv cmcls cmpt2 cmfs wceq elex cmdv cmex cmvh cmax cmvrs cmsub
        fveq2 syl6eqr pweqd uneq2d sseq1d eleq2d imaeq2d fveq1d fveq12d xpeq12d
        rneqd fveq2d imbi2d 2albidv anbi12d imbi1d imbi12d albidv abbidv inteqd
        raleqbidv mpt2eq123dv df-mcls fvex pwex mpt2ex fvmpt 3syl syl5eq simprr
        eqeltri uneq1d simprl sseq2d anbi2d ralbidv elpw2 sylibr mclsssvlem syl
        ssex ovmpt2d ) AUIUJNEGULZLULZUJUMZMUNZUOZRUMZUPZJUMZKUMZQUMZUQZDURZPUM
        ZYKYFUOZUSZYHUPZBUMZCUMZYJUTZYSMVAZYOVAZOVAZYTMVAZYOVAZOVAZVBZUIUMZUPZV
        CZCVDBVDZVEZYLYOVAYHURZVCZPHUNZVFZVCZQVDZKVDJVDZVEZRVGZVHZEYFUOZYHUPZYN
        YRUUAUUHNUPZVCZCVDBVDZVEZUUNVCZPUUPVFZVCZQVDZKVDJVDZVEZRVGZVHZFVIAFIVJV
        AZUIUJYCYDUVCVKZUAAIVLURIVIURUVRUVSVMUBIVLVNUKIUIUJUKUMZVOVAZULZUVTVPVA
        ZULZYEUVTVQVAZUNZUOZYHUPZYMUVTVRVAZURZYOYKUWFUOZUSZYHUPZUUAYSUWEVAZYOVA
        ZUVTVSVAZVAZYTUWEVAZYOVAZUWPVAZVBZUUIUPZVCZCVDBVDZVEZUUNVCZPUVTVTVAZUNZ
        VFZVCZQVDZKVDJVDZVEZRVGZVHZVKUVSVIVJUVTIVMZUIUJUWBUWDUXOYCYDUVCUXPUWAGU
        XPUWAIVOVAZGUVTIVOWASWBWCUXPUWCLUXPUWCIVPVAZLUVTIVPWATWBWCUXPUXNUVBUXPU
        XMUVARUXPUWHYIUXLUUTUXPUWGYGYHUXPUWFYFYEUXPUWEMUXPUWEIVQVAMUVTIVQWAUEWB
        ZWKZWDWEUXPUXKUUSJKUXPUXJUURQUXPUWJYNUXIUUQUXPUWIDYMUXPUWIIVRVADUVTIVRW
        AUFWBWFUXPUXFUUOPUXHUUPUXPUXGHUXPUXGIVTVAHUVTIVTWAUGWBWKUXPUXEUUMUUNUXP
        UWMYRUXDUULUXPUWLYQYHUXPUWKYPYOUXPUWFYFYKUXTWDWGWEUXPUXCUUKBCUXPUXBUUJU
        UAUXPUXAUUHUUIUXPUWQUUDUWTUUGUXPUWOUUCUWPOUXPUWPIVSVAOUVTIVSWAUHWBZUXPU
        WNUUBYOUXPYSUWEMUXSWHWLWIUXPUWSUUFUWPOUYAUXPUWRUUEYOUXPYTUWEMUXSWHWLWIW
        JWEWMWNWOWPXAWQWRWNWOWSWTXBBCUKUJJKPQRUIXCUIUJYCYDUVCGGUXQVISIVOXDXKZXE
        LLUXRVITIVPXDXKZXEXFXGXHXIAUUINVMZYEEVMZVEVEZUVBUVPUYFUVAUVORUYFYIUVEUU
        TUVNUYFYGUVDYHUYFYEEYFAUYDUYEXJXLWEUYFUUSUVMJKUYFUURUVLQUYFUUQUVKYNUYFU
        UOUVJPUUPUYFUUMUVIUUNUYFUULUVHYRUYFUUKUVGBCUYFUUJUVFUUAUYFUUINUUHAUYDUY
        EXMXNWMWNXOWPXPWMWRWNWOWSWTANGUPNYCURUCNGUYBXQXRAELUPEYDURUDELUYCXQXRAU
        VQLUPUVQVIURABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHXSUVQLUYCYAXTYB $.
    $}

    $( The closure of a set of expressions is a set of expressions.
       (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mclsssv $p |- ( ph -> ( K C B ) C_ E ) $=
      ( vc vm vo vp cfv cv wal vs vx vy co cmvh crn cun wss cotp cmax wcel cima
      wbr cmvrs cxp wi wa cmsub wral cab cint eqid mclsval mclsssvlem eqsstrd )
      AGBCUDBEUERZUFZUGNSZUHOSZPSZQSZUIEUJRZUKUASZVJVGUGULVHUHUBSZUCSZVIUMVNVFR
      VMREUNRZRVOVFRVMRVPRUOGUHUPUCTUBTUQVKVMRVHUKUPUAEURRZUFUSUPQTPTOTUQNUTVAF
      AUBUCVLBCDVQEOPFVFGVPUAQNHIJKLMVFVBZVLVBZVQVBZVPVBZVCAUBUCVLBCDVQEOPFVFGV
      PUAQNHIJKLMVRVSVTWAVDVE $.

    ${
      ssmclslem.h $e |- H = ( mVH ` T ) $.
      $( Lemma for ~ ssmcls .  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
      ssmclslem $p |- ( ph -> ( B u. ran H ) C_ ( K C B ) ) $=
        ( vc cv wss cfv wal vm vo vp vs vx vy crn cun cotp cmax wcel cima cmvrs
        wbr cxp wi wa cmsub wral cab cint simpl a1i alrimiv ssintab sylibr eqid
        co mclsval sseqtr4d ) ABGUGZUHZVLPQZRZUAQZUBQZUCQZUIEUJSZUKUDQZVPVKUHUL
        VMRUEQZUFQZVOUNVTGSVSSEUMSZSWAGSVSSWBSUOHRUPUFTUETUQVQVSSVMUKUPUDEURSZU
        GUSUPUCTUBTUATZUQZPUTVAZHBCVHAWEVNUPZPTVLWFRAWGPWGAVNWDVBVCVDWEPVLVEVFA
        UEUFVRBCDWCEUAUBFGHWBUDUCPIJKLMNOVRVGWCVGWBVGVIVJ $.

      vhmcls.v $e |- V = ( mVR ` T ) $.
      vhmcls.3 $e |- ( ph -> X e. V ) $.
      $( All variable hypotheses are in the closure.  (Contributed by Mario
         Carneiro, 18-Jul-2016.) $)
      vhmcls $p |- ( ph -> ( H ` X ) e. ( K C B ) ) $=
        ( wcel crn cfv ssmclslem unssbd wfn cmfs mvhf ffn 3syl fnfvelrn syl2anc
        co wf sseldd ) AGUAZHBCULZJGUBZABUOUPABCDEFGHKLMNOPQUCUDAGIUEZJITUQUOTA
        EUFTIFGUMURNEFGIRLQUGIFGUHUISIJGUJUKUN $.
    $}

    $( The original expressions are also in the closure.  (Contributed by Mario
       Carneiro, 18-Jul-2016.) $)
    ssmcls $p |- ( ph -> B C_ ( K C B ) ) $=
      ( cmvh cfv crn co eqid ssmclslem unssad ) ABENOZPGBCQABCDEFUAGHIJKLMUARST
      $.

    ${
      ss2mcls.4 $e |- ( ph -> X C_ K ) $.
      ss2mcls.5 $e |- ( ph -> Y C_ B ) $.
      $( The closure is monotonic under subsets of the original set of
         expressions and the set of disjoint variable conditions.  (Contributed
         by Mario Carneiro, 18-Jul-2016.) $)
      ss2mcls $p |- ( ph -> ( X C Y ) C_ ( K C B ) ) $=
        ( cfv wss wal vc vm vo vp vs vx vy cmvh crn cun cotp cmax wcel cima wbr
        cv cmvrs cxp wi wa cmsub wral cab cint unss1 sstr2 3syl syl5com 2alimdv
        co imim2d anim2d imim1d ralimdv alimdv anim12d ss2abdv intss sstrd eqid
        syl mclsval 3sstr4d ) AIEUHRZUIZUJZUAUPZSZUBUPZUCUPZUDUPZUKEULRZUMZUEUP
        ZWJWEUJUNWGSZUFUPZUGUPZWIUOZWPWDRWNREUQRZRWQWDRWNRWSRURZHSZUSZUGTUFTZUT
        ZWKWNRWGUMZUSZUEEVARZUIZVBZUSZUDTZUCTUBTZUTZUAVCZVDZBWEUJZWGSZWMWOWRWTG
        SZUSZUGTUFTZUTZXEUSZUEXHVBZUSZUDTZUCTUBTZUTZUAVCZVDZHICVJGBCVJAYHXNSXOY
        ISAYGXMUAAXQWHYFXLAIBSWFXPSXQWHUSQIBWEVEWFXPWGVFVGAYEXKUBUCAYDXJUDAYCXI
        WMAYBXFUEXHAXDYAXEAXCXTWOAXBXSUFUGAXAXRWRAHGSXAXRPWTHGVFVHVKVIVLVMVNVKV
        OVIVPVQYHXNVRWAAUFUGWLICDXGEUBUCFWDHWSUEUDUAJKLMAHGDPNVSAIBFQOVSWDVTZWL
        VTZXGVTZWSVTZWBAUFUGWLBCDXGEUBUCFWDGWSUEUDUAJKLMNOYJYKYLYMWBWC $.
    $}

    mclsax.a $e |- A = ( mAx ` T ) $.
    mclsax.l $e |- L = ( mSubst ` T ) $.
    mclsax.v $e |- V = ( mVR ` T ) $.
    mclsax.h $e |- H = ( mVH ` T ) $.
    mclsax.w $e |- W = ( mVars ` T ) $.
    ${
      mclsax.4 $e |- ( ph -> <. M , O , P >. e. A ) $.
      mclsax.5 $e |- ( ph -> S e. ran L ) $.
      mclsax.6 $e |- ( ( ph /\ x e. O ) -> ( S ` x ) e. ( K C B ) ) $.
      mclsax.7 $e |- ( ( ph /\ v e. V ) -> ( S ` ( H ` v ) ) e. ( K C B ) ) $.
      mclsax.8 $e |- ( ( ph /\ ( x M y /\ a e. ( W ` ( S ` ( H ` x ) ) ) /\
        b e. ( W ` ( S ` ( H ` y ) ) ) ) ) -> a K b ) $.
      $( The closure is closed under axiom application.  (Contributed by Mario
         Carneiro, 18-Jul-2016.) $)
      mclsax $p |- ( ph -> ( S ` P ) e. ( K C B ) ) $=
        ( vc vm vo vp vs vz cfv crn cun cv wss cotp wcel cima wbr cxp wi wal wa
        wral cab cint co abid intss1 sylbir mclsval sseq1d syl5ibr sstr2 anim1d
        com12 imim1d ralimdv imim2d alimdv 2alimdv adantl sylcom cmpst cvv eqid
        w3a cmsta mstapst cmfs maxsta syl sseldd mpstrcl wceq simp1 simp2 simp3
        sseldi eleq1d uneq1d imaeq2d breqd imbi1d 2albidv anbi12d fveq2d spc3gv
        oteq123d imbi12d ralbidv 3syl wo elun ralrimiva wf wfn mvhf fveq2 ralrn
        wb ffn mpbird r19.21bi sseqtr4d sylibr fveq1 jaodan wfun cdm msubf ffun
        sylan2b cfn ccnv elmpst sylib simp2d simpld fdm unssd funimass4 syl2anc
        frn 3exp2 imp4b ralrimivv dfss3 cop eleq1 df-br ralxp bitri ex alrimivv
        syl6bbr jca imaeq1 xpeq12d imbi2d rspcv mpid embantd 3syld alrimiv fvex
        elintab eleqtrrd ) AIJVDZFMVEZVFURVGZVHZUSVGZUTVGZVAVGZVIZEVJZVBVGZUWGU
        WCVFZVKZUWDVHZBVGZCVGZUWFVLZUWOMVDZUWKVDZSVDZUWPMVDZUWKVDZSVDZVMZNVHZVN
        ZCVOBVOZVPZUWHUWKVDZUWDVJZVNZVBOVEZVQZVNZVAVOZUTVOUSVOZVPZURVRZVSZNFGVT
        ZAUXQUWBUWDVJZVNZURVOUWBUXSVJAUYBURAUXQUWJUWMUXTVHZUXGVPZUXJVNZVBUXLVQZ
        VNZVAVOZUTVOUSVOZPQIVIZEVJZUWKQUWCVFZVKZUXTVHZUWOUWPPVLZUXEVNZCVOBVOZVP
        ZIUWKVDZUWDVJZVNZVBUXLVQZVNZUYAAUXQUXTUWDVHZUYIUXQVUDAUXSUWDVHZUXQUWDUX
        RVJVUEUXQURWAUWDUXRWBWCAUXTUXSUWDABCEFGHOKUSUTLMNSVBVAURUBUCUDUEUFUGUKU
        HUIULWDZWEWFUXPVUDUYIVNUWEVUDUXPUYIVUDUXOUYHUSUTVUDUXNUYGVAVUDUXMUYFUWJ
        VUDUXKUYEVBUXLVUDUYDUXHUXJVUDUYCUWNUXGUYCVUDUWNUWMUXTUWDWGWIWHWJWKWLWMW
        NWIWOWPAUYJKWQVDZVJZPWRVJQWRVJIWRVJWTUYIVUCVNAKXAVDZVUGUYJVUGVUIKVUGWSZ
        VUIWSZXBAEVUIUYJAKXCVJZEVUIVHUEEVUIKUHVUKXDXEUMXFXLZIPVUGKQVUJXGUYGVUCU
        SUTVAPQIWRWRWRUWFPXHZUWGQXHZUWHIXHZWTZUWJUYKUYFVUBVUQUWIUYJEVUQUWFPUWGQ
        UWHIVUNVUOVUPXIZVUNVUOVUPXJZVUNVUOVUPXKZYBXMVUQUYEVUAVBUXLVUQUYDUYRUXJU
        YTVUQUYCUYNUXGUYQVUQUWMUYMUXTVUQUWLUYLUWKVUQUWGQUWCVUSXNXOWEVUQUXFUYPBC
        VUQUWQUYOUXEVUQUWFPUWOUWPVURXPXQXRXSVUQUXIUYSUWDVUQUWHIUWKVUTXTXMYCYDYC
        YAYEAUYKVUBUYAUMAVUBJUYLVKZUXTVHZUYOUWRJVDZSVDZUXAJVDZSVDZVMZNVHZVNZCVO
        BVOZVPZUYAAVVBVVJAVVBUWOJVDZUXTVJZBUYLVQZAVVMBUYLUWOUYLVJAUWOQVJZUWOUWC
        VJZYFVVMUWOQUWCYGAVVOVVMVVPUOAVVMBUWCAVVMBUWCVQZDVGMVDZJVDZUXTVJZDRVQZA
        VVTDRUPYHARLMYIZMRYJVVQVWAYNAVULVWBUEKLMRUJUCUKYKXEZRLMYOVVMVVTBDRMUWOV
        VRXHVVLVVSUXTUWOVVRJYLXMYMYEYPYQUUAUUFYHAJUUBZUYLJUUCZVHVVBVVNYNALLJYIZ
        VWDAJUXLVJZVWFUNOKLJUIUCUUDXEZLLJUUEXEAQUWCVWEAQLVWEAQLVHZQUUGVJZAPHVHP
        UUHPXHVPZVWIVWJVPZILVJZAVUHVWKVWLVWMWTVUMIPVUGKLQHUBUCVUJUUIUUJUUKUULAV
        WFVWELXHVWHLLJUUMXEZYRAUWCLVWEAVWBUWCLVHVWCRLMUUQXEVWNYRUUNBUYLUXTJUUOU
        UPYPAVVIBCAUYOVVHAUYOVPZTVGZUAVGZNVLZUAVVFVQTVVDVQZVVHVWOVWRTUAVVDVVFAU
        YOVWPVVDVJZVWQVVFVJZVWRAUYOVWTVXAVWRUQUURUUSUUTVVHVCVGZNVJZVCVVGVQVWSVC
        VVGNUVAVXCVWRVCTUAVVDVVFVXBVWPVWQUVBZXHVXCVXDNVJVWRVXBVXDNUVCVWPVWQNUVD
        UVIUVEUVFYSUVGUVHUVJAVWGVUBVVKUYAVNZVNUNVUAVXEVBJUXLUWKJXHZUYRVVKUYTUYA
        VXFUYNVVBUYQVVJVXFUYMVVAUXTUWKJUYLUVKWEVXFUYPVVIBCVXFUXEVVHUYOVXFUXDVVG
        NVXFUWTVVDUXCVVFVXFUWSVVCSUWRUWKJYTXTVXFUXBVVESUXAUWKJYTXTUVLWEUVMXRXSV
        XFUYSUWBUWDIUWKJYTXMYCUVNXEUVOUVPUVQUVRUXQURUWBIJUVSUVTYSVUFUWA $.
    $}

    mclsind.4 $e |- ( ph -> B C_ Q ) $.
    mclsind.5 $e |- ( ( ph /\ v e. V ) -> ( H ` v ) e. Q ) $.
    mclsind.6 $e |- ( ( ph /\ ( <. m , o , p >. e. A /\
      s e. ran L /\ ( s " ( o u. ran H ) ) C_ Q ) /\
      A. x A. y ( x m y ->
       ( ( W ` ( s ` ( H ` x ) ) ) X. ( W ` ( s ` ( H ` y ) ) ) ) C_ K ) )
    -> ( s ` p ) e. Q ) $.
    $( Induction theorem for closure: any other set ` Q ` closed under the
       axioms and the hypotheses contains all the elements of the closure.
       (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mclsind $p |- ( ph -> ( K C B ) C_ Q ) $=
      ( vc co crn cun cv wss cotp wcel cima wbr cfv cxp wi wal wa wral cab cint
      mclsval cin ssind wf wfn cmfs mvhf syl ffvelrnda elind ralrimiva sylanbrc
      ffn ffnfv frn unssd id inss2 syl6ss w3a cmap cmrex cpm adantr eqid msubff
      3syl simpr2 sseldd elmapi cmpst cmsta maxsta mstapst simpr1 ccnv wceq cfn
      elmpst simp3bi ffvelrnd 3adant3 3exp 3expd imp31 syl5 ex alrimiv alrimivv
      impd cmex cvv fvex eqeltri inex1 sseq2 anbi1d eleq2 imbi12d imbi2d albidv
      ralbidv 2albidv anbi12d elab intss1 eqsstrd ) AOFGUPFNUQZURZUOUSZUTZKUSZL
      USZTUSZVAZEVBZSUSZUUEYTURVCZUUBUTZBUSZCUSZUUDVDUULNVEUUIVERVEUUMNVEUUIVER
      VEVFOUTVGCVHBVHZVIZUUFUUIVEZUUBVBZVGZSPUQZVJZVGZTVHZLVHKVHZVIZUOVKZVLZIAB
      CEFGHPJKLMNORSTUOUAUBUCUDUEUFUJUGUHUKVMAUVFMIVNZIAUVGUVEVBZUVFUVGUTAUUAUV
      GUTZUUHUUJUVGUTZUUNVIZUUPUVGVBZVGZSUUSVJZVGZTVHZLVHKVHZUVHAFYTUVGAFMIUFUL
      VOAQUVGNVPZYTUVGUTANQVQZDUSZNVEZUVGVBZDQVJUVRAQMNVPZUVSAJVRVBZUWCUDJMNQUI
      UBUJVSVTZQMNWEVTAUWBDQAUVTQVBVIMIUWAAQMUVTNUWEWAUMWBWCDQUVGNWFWDQUVGNWGVT
      WHAUVPKLAUVOTAUUHUVNAUUHVIZUVMSUUSUWFUUIUUSVBZVIZUVJUUNUVLUVJUUJIUTZUWHUU
      NUVLVGZUVJUUJUVGIUVJWIMIWJZWKAUUHUWGUWIUWJVGAUUHUWGUWIUWJAUUHUWGUWIWLZUUN
      UVLAUWLUUNWLMIUUPAUWLUUPMVBUUNAUWLVIZMMUUFUUIUWMUUIMMWMUPZVBMMUUIVPUWMUUS
      UWNUUIUWMUWDJWNVEZQWOUPZUWNPVPUUSUWNUTAUWDUWLUDWPZUWOPJMQVRUIUWOWQUHUBWRU
      WPUWNPWGWSAUUHUWGUWIWTXAUUIMMXBVTUWMUUGJXCVEZVBZUUFMVBZUWMEUWRUUGUWMEJXDV
      EZUWRUWMUWDEUXAUTUWQEUXAJUGUXAWQZXEVTUWRUXAJUWRWQZUXBXFWKAUUHUWGUWIXGXAUW
      SUUDHUTUUDXHUUDXIVIUUEMUTUUEXJVBVIUWTUUFUUDUWRJMUUEHUAUBUXCXKXLVTXMXNUNWB
      XOXPXQXRYBWCXSXTYAUVDUVIUVQVIUOUVGMIMJYCVEYDUBJYCYEYFYGUUBUVGXIZUUCUVIUVC
      UVQUUBUVGUUAYHUXDUVBUVPKLUXDUVAUVOTUXDUUTUVNUUHUXDUURUVMSUUSUXDUUOUVKUUQU
      VLUXDUUKUVJUUNUUBUVGUUJYHYIUUBUVGUUPYJYKYNYLYMYOYPYQWDUVGUVEYRVTUWKWKYS
      $.
  $}

  ${
    $d a d h A $.  $d a d h t x C $.  $d a d h t x P $.  $d a d h t x T $.
    $d a d h D $.  $d a d h H $.
    mppsval.p $e |- P = ( mPreSt ` T ) $.
    mppsval.j $e |- J = ( mPPSt ` T ) $.
    ${
      mppsval.c $e |- C = ( mCls ` T ) $.
      $( Lemma for ~ mppspst .  (Contributed by Mario Carneiro,
         18-Jul-2016.) $)
      mppspstlem $p |- { <. <. d , h >. , a >. |
        ( <. d , h , a >. e. P /\ a e. ( d C h ) ) } C_ P $=
        ( vx cv cotp wcel co wa coprab cop wceq wex cab df-oprab eqeq2i biimpri
        df-ot eleq1d biimpar adantrr exlimiv exlimivv abssi eqsstri ) GLZDLZFLZ
        MZBNZUOUMUNAONZPZGDFQKLZUMUNRUORZSZUSPZFTZDTGTZKUABUSGDFKUBVEKBVDUTBNZG
        DVCVFFVBUQVFURVBVFUQVBUTUPBUTUPSVBUPVAUTUMUNUOUEUCUDUFUGUHUIUJUKUL $.

      $( Definition of a provable pre-statement, essentially just a
         reorganization of the arguments of df-mcls .  (Contributed by Mario
         Carneiro, 18-Jul-2016.) $)
      mppsval $p |- J = { <. <. d , h >. , a >. |
        ( <. d , h , a >. e. P /\ a e. ( d C h ) ) } $=
        ( vt vx cmpps cfv cv wcel wa cmpst c0 wex cotp co coprab cvv wceq cmcls
        fveq2 syl6eqr eleq2d oveqd anbi12d oprabbidv df-mpps eqeltri mppspstlem
        fvex ssexi fvmpt fvprc cop cab df-oprab wne abn0 elfvex eleq2s ad2antrl
        wn exlimivv sylbi necon1bi syl5eq eqtr4d pm2.61i eqtri ) ECMNZGOZDOZFOZ
        UAZBPZVSVQVRAUBZPZQZGDFUCZICUDPZVPWEUEKCVTKOZRNZPZVSVQVRWGUFNZUBZPZQZGD
        FUCWEUDMWGCUEZWMWDGDFWNWIWAWLWCWNWHBVTWNWHCRNZBWGCRUGHUHUIWNWKWBVSWNWJA
        VQVRWNWJCUFNAWGCUFUGJUHUJUIUKULKDFGUMWEBBWOUDHCRUPUNABCDEFGHIJUOUQURWFV
        HZVPSWECMUSWPWELOVQVRUTVSUTUEZWDQZFTDTZGTZLVAZSWDGDFLVBWFXASXASVCWTLTWF
        WTLVDWSWFLGWRWFDFWAWFWQWCWFVTWOBVTCRVEHVFVGVIVIVJVKVLVMVNVO $.

      $( Definition of a provable pre-statement, essentially just a
         reorganization of the arguments of df-mcls .  (Contributed by Mario
         Carneiro, 18-Jul-2016.) $)
      elmpps $p |- ( <. D , H , A >. e. J <->
        ( <. D , H , A >. e. P /\ A e. ( D C H ) ) ) $=
        ( vd vh va cotp wcel cop cv wa cvv wceq co coprab df-ot mppsval eleq12i
        cxp oprabss sseli mpstssv syl5eqelr adantr opelxp w3a simp1 simp2 simp3
        wb oteq123d eleq1d oveq12d eleq12d anbi12d eloprabga 3expa sylanb sylbi
        pm5.21nii bitri ) CFANZGOCFPZAPZKQZLQZMQZNZDOZVNVLVMBUAZOZRZKLMUBZOZVID
        OZACFBUAZOZRZVIVKGVTCFAUCZBDELGMKHIJUDUEWAVKSSUFZSUFZOZWEVTWHVKVSKLMUGU
        HWBWIWDWBVKVIWHWFDWHVIDEHUIUHUJUKWIVJWGOZASOZRWAWEUQZVJAWGSULWJCSOZFSOZ
        RWKWLCFSSULWMWNWKWLVSWEKLMCFASSSVLCTZVMFTZVNATZUMZVPWBVRWDWRVOVIDWRVLCV
        MFVNAWOWPWQUNZWOWPWQUOZWOWPWQUPZURUSWRVNAVQWCXAWRVLCVMFBWSWTUTVAVBVCVDV
        EVFVGVH $.
    $}

    $( A provable pre-statement is a pre-statement.  (Contributed by Mario
       Carneiro, 18-Jul-2016.) $)
    mppspst $p |- J C_ P $=
      ( vd vh va cv cotp wcel cmcls cfv co wa coprab mppsval mppspstlem eqsstri
      eqid ) CFIZGIZHIZJAKUCUAUBBLMZNKOFGHPAUDABGCHFDEUDTZQUDABGCHFDEUERS $.
  $}

  ${
    $d t x J $.  $d t x R $.  $d t x T $.  $d x X $.  $d x Y $.
    mthmval.r $e |- R = ( mStRed ` T ) $.
    mthmval.j $e |- J = ( mPPSt ` T ) $.
    mthmval.u $e |- U = ( mThm ` T ) $.
    $( A theorem is a pre-statement, whose reduct is also the reduct of a
       provable pre-statement.  Unlike the difference between pre-statement and
       statement, this application of the reduct is not necessarily trivial:
       there are theorems that are not themselves provable but are provable
       once enough "dummy variables" are introduced.  (Contributed by Mario
       Carneiro, 18-Jul-2016.) $)
    mthmval $p |- U = ( `' R " ( R " J ) ) $=
      ( vt cmthm cfv ccnv cima cvv wcel wceq cmsr cmpps fveq2 syl6eqr c0 cnveqd
      cv imaeq12d df-mthm fvex cnvex imaexg ax-mp fvmpt3i wn 0ima eqcomi syl5eq
      fvprc cnv0 syl6eq imaeq1d 3eqtr4a pm2.61i eqtri ) CBIJZAKZADLZLZGBMNZVAVD
      OHBHUBZPJZKZVGVFQJZLZLZVDMIVFBOZVHVBVJVCVLVGAVLVGBPJZAVFBPRESZUAVLVGAVIDV
      NVLVIBQJDVFBQRFSUCUCHUDVHMNVKMNVGVFPUEUFVHVJMUGUHUIVEUJZTTVCLZVAVDVPTVCUK
      ULBIUNVOVBTVCVOVBTKTVOATVOAVMTEBPUNUMUAUOUPUQURUSUT $.

    $( A theorem is a pre-statement, whose reduct is also the reduct of a
       provable pre-statement.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    elmthm $p |- ( X e. U <-> E. x e. J ( R ` x ) = ( R ` X ) ) $=
      ( wcel ccnv cima cmpst cfv wa cv wceq wrex wb ax-mp mthmval eleq2i wfn wf
      eqid msrf ffn elpreima wss mppspst fvelimab mp2an anbi2i msrrcl syl5ibcom
      sseli rexlimiv pm4.71ri bitr4i 3bitri ) FDJFBKBELZLZJZFCMNZJZFBNZVAJZOZAP
      ZBNVFQZAERZDVBFBCDEGHIUAUBBVDUCZVCVHSVDVDBUDVLVDBCVDUEZGUFVDVDBUGTZVDFVAB
      UHTVHVEVKOVKVGVKVEVLEVDUIVGVKSVNVDCEVMHUJZAVDEVFBUKULUMVKVEVJVEAEVIEJVIVD
      JVJVEEVDVIVOUPVDBCVIFVMGUNUOUQURUSUT $.

    $( A statement whose reduct is the reduct of a provable pre-statement is a
       theorem.  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mthmi $p |- ( ( X e. J /\ ( R ` X ) = ( R ` Y ) ) -> Y e. U ) $=
      ( vx wcel cfv wceq wa cv wrex fveq2 eqeq1d rspcev elmthm sylibr ) EDKEALZ
      FALZMZNJOZALZUCMZJDPFCKUGUDJEDUEEMUFUBUCUEEAQRSJABCDFGHITUA $.
  $}

  ${
    mthmsta.u $e |- U = ( mThm ` T ) $.
    mthmsta.s $e |- S = ( mPreSt ` T ) $.
    $( A theorem is a pre-statement.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    mthmsta $p |- U C_ S $=
      ( cmsr cfv ccnv cmpps cima eqid mthmval cdm cnvimass msrf sseqtri eqsstri
      fdmi ) CBFGZHSBIGZJZJZASBCTSKZTKDLUBSMASUANAASASBEUCORPQ $.
  $}

  ${
    $d x J $.  $d x U $.
    mppsthm.j $e |- J = ( mPPSt ` T ) $.
    mppsthm.u $e |- U = ( mThm ` T ) $.
    $( A provable pre-statement is a theorem.  (Contributed by Mario Carneiro,
       18-Jul-2016.) $)
    mppsthm $p |- J C_ U $=
      ( vx cv wcel cmsr cfv wceq eqid mthmi mpan2 ssriv ) FCBFGZCHPAIJZJZRKPBHR
      LQABCPPQLDEMNO $.
  $}

  ${
    $d x R $.  $d x T $.  $d x U $.  $d x Y $.
    mthmb.r $e |- R = ( mStRed ` T ) $.
    mthmb.u $e |- U = ( mThm ` T ) $.
    $( Lemma for ~ mthmb .  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mthmblem $p |- ( ( R ` X ) = ( R ` Y ) -> ( X e. U -> Y e. U ) ) $=
      ( vx wcel cmpst cfv cmpps cima wa wceq ccnv eqid mthmval eleq2i ax-mp wfn
      wb wf msrf ffn elpreima bitri eleq1 wrex wfun ffun fvelima mpan rexlimiva
      cv mthmi syl syl6bi adantld syl5bi ) DCIZDBJKZIZDAKZABLKZMZIZNZVDEAKZOZEC
      IZVADAPVFMZIZVHCVLDABCVEFVEQZGRSAVBUAZVMVHUBVBVBAUCZVOVBABVBQFUDZVBVBAUET
      VBDVFAUFTUGVJVGVKVCVJVGVIVFIZVKVDVIVFUHVRHUOZAKVIOZHVEUIZVKAUJZVRWAVPWBVQ
      VBVBAUKTHVIVEAULUMVTVKHVEABCVEVSEFVNGUPUNUQURUSUT $.

    $( If two statements have the same reduct then one is a theorem iff the
       other is.  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mthmb $p |- ( ( R ` X ) = ( R ` Y ) -> ( X e. U <-> Y e. U ) ) $=
      ( cfv wceq wcel mthmblem wi eqcoms impbid ) DAHZEAHZIDCJZECJZABCDEFGKRQLP
      OABCEDFGKMN $.
  $}

  ${
    $d x A $.  $d x C $.  $d x H $.  $d x J $.  $d x M $.  $d x R $.  $d x T $.
    $d x U $.
    mthmpps.r $e |- R = ( mStRed ` T ) $.
    mthmpps.j $e |- J = ( mPPSt ` T ) $.
    mthmpps.u $e |- U = ( mThm ` T ) $.
    mthmpps.d $e |- D = ( mDV ` T ) $.
    mthmpps.v $e |- V = ( mVars ` T ) $.
    mthmpps.z $e |- Z = U. ( V " ( H u. { A } ) ) $.
    mthmpps.m $e |- M = ( C u. ( D \ ( Z X. Z ) ) ) $.
    $( Given a theorem, there is an explicitly definable witnessing provable
       pre-statement for the provability of the theorem.  (However, this
       pre-statement requires infinitely many dv conditions, which is sometimes
       inconvenient.)  (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mthmpps $p |- ( T e. mFS -> ( <. C , H , A >. e. U <->
      ( <. M , H , A >. e. J /\
        ( R ` <. M , H , A >. ) = ( R ` <. C , H , A >. ) ) ) ) $=
      ( wcel wceq vx cmfs cotp cfv wa cmpst cmcls co wss ccnv cmex cfn cxp cdif
      cun w3a eqid mthmsta simpr sseldi elmpst sylib simp1d simpld difssd unssd
      syl5eqss simprd cnvdif cmvar cid cnvxp cnvi difeq12i eqtri mdvval 3eqtr4i
      cnveqi a1i uneq12d cnvun 3eqtr4g jca simp2d simp3d syl3anbrc cv wrex c1st
      elmthm simpll adantr cin c2nd csn cima cuni mppspst simprl mpst123 fveq2d
      syl simprr eqtr3d eqeltrrd msrval 3eqtr3d fvex inex1 sneqd imaeq2d unieqd
      otth syl6eqr sqxpeqd ineq2d inss1 syl6eqssr eqidd oteq123d simp1bi ssdifd
      eqtrd unss12 syl2anc inundif eqcomi 3sstr4g ss2mcls elmpps simprbi sseldd
      ssid rexlimddv sylanbrc ineq1i indir c0 incom disjdif 0ss eqsstri ssequn2
      mpbi 3eqtri oteq1d 3eqtr4d ex mthmi impbid1 ) EUBSZBGAUCZFSZIGAUCZHSZUUND
      UDZUULDUDZTZUEZUUKUUMUUSUUKUUMUEZUUOUURUUTUUNEUFUDZSZAIGEUGUDZUHZSZUUOUUT
      ICUIZIUJZITZUEGEUKUDZUIZGULSZUEZAUVISZUVBUUTUVFUVHUUTIBCKKUMZUNZUOZCRUUTB
      UVOCUUTBCUIZBUJZBTZUUTUVQUVSUEZUVLUVMUUTUULUVASZUVTUVLUVMUPUUTFUVAUULUVAE
      FNUVAUQZURUUKUUMUSZUTZABUVAEUVIGCOUVIUQZUWBVAVBZVCZVDUUTCUVNVEVFVGZUUTUVR
      UVOUJZUOZUVPUVGIUUTUVRBUWIUVOUUTUVQUVSUWGVHUWIUVOTUUTUWICUJZUVNUJZUNUVOCU
      VNVIUWKCUWLUVNEVJUDZUWMUMZVKUNZUJZUWOUWKCUWPUWNUJZVKUJZUNUWOUWNVKVIUWQUWN
      UWRVKUWMUWMVLVMVNVOCUWOCEUWMUWMUQOVPZVRUWSVQKKVLVNVOVSVTUVGUVPUJUWJIUVPRV
      RBUVOWAVORWBWCUUTUVTUVLUVMUWFWDZUUTUVTUVLUVMUWFWEAIUVAEUVIGCOUWEUWBVAWFZU
      UTUAWGZDUDZUUQTZUVEUAHUUTUUMUXDUAHWHUWCUADEFHUULLMNWJVBUUTUXBHSZUXDUEZUEZ
      UXBWIUDZWIUDZGUVCUHZUVDAUXGGUVCCEUVIIUXIGOUWEUVCUQZUUKUUMUXFWKUUTUVFUXFUW
      HWLUUTUVJUXFUUTUVJUVKUWTVDWLUXGUXIUVNWMZUXIUVNUNZUOZUVPUXIIUXGUXLBUIUXMUV
      OUIUXNUVPUIUXGUXLBUVNWMZBUXGUXIJUXHWNUDZUXBWNUDZWOZUOZWPZWQZUYAUMZWMZUXOU
      XLUXGUYCUXOTZUXPGTZUXQATZUXGUYCUXPUXQUCZUXOGAUCZTUYDUYEUYFUPUXGUXIUXPUXQU
      CZDUDZUUQUYGUYHUXGUXCUYJUUQUXGUXBUYIDUXGUXBUVASUXBUYITUXGHUVAUXBUVAEHUWBM
      WRUUTUXEUXDWSZUTZUVAEUXBUWBWTXBZXAUUTUXEUXDXCXDUXGUYIUVASUYJUYGTUXGUXBUYI
      UVAUYMUYLXEUXQUXIUVADEUXPJUYAPUWBLUYAUQXFXBUUTUUQUYHTZUXFUUTUWAUYNUWDABUV
      ADEGJKPUWBLQXFXBZWLXGUYCUXPUXOGUXQAUXIUYBUXHWIXHXIUXHWNXHUXBWNXHXMVBZVCUX
      GUYBUVNUXIUXGUYAKUXGUYAJGAWOZUOZWPZWQKUXGUXTUYSUXGUXSUYRJUXGUXPGUXRUYQUXG
      UYDUYEUYFUYPWDZUXGUXQAUXGUYDUYEUYFUYPWEZXJVTXKXLQXNXOXPXDBUVNXQXRUXGUXICU
      VNUXGUXIGAUCZUVASZUXICUIZUXGUXBVUBUVAUXGUXBUYIVUBUYMUXGUXIUXIUXPGUXQAUXGU
      XIXSUYTVUAXTYCZUYLXEVUCVUDUXIUJUXITZVUCVUDVUFUEUVLUVMAUXIUVAEUVIGCOUWEUWB
      VAYAVDXBYBUXLBUXMUVOYDYEUXNUXIUXIUVNYFYGRYHGGUIUXGGYMVSYIUXGVUBHSZAUXJSZU
      XGUXBVUBHVUEUYKXEVUGVUCVUHAUVCUXIUVAEGHUWBMUXKYJYKXBYLYNAUVCIUVAEGHUWBMUX
      KYJYOUUTIUVNWMZGAUCZUYHUUPUUQUUTVUIUXOGAVUIUXOTUUTVUIUVPUVNWMUXOUVOUVNWMZ
      UOZUXOIUVPUVNRYPBUVOUVNYQVUKUXOUIVULUXOTVUKYRUXOVUKUVNUVOWMYRUVOUVNYSUVNC
      YTVOUXOUUAUUBVUKUXOUUCUUDUUEVSUUFUUTUVBUUPVUJTUXAAIUVADEGJKPUWBLQXFXBUYOU
      UGWCUUHDEFHUUNUULLMNUUIUUJ $.
  $}

  $(
  @{
    mclsppsfi.r @e |- R = ( mStRed ` T ) @.
    mclsppsfi.j @e |- J = ( mPPSt ` T ) @.
    mclsppsfi.u @e |- C = ( mCls ` T ) @.
    @( Any theorem has a proof using a _finite_ number of dv conditions and
       using only finitely many of the provided hypotheses, to reach the same
       conclusion.  This variation on ~ mclsppsfi also allows specifying a
       subset ` B ` of the hypotheses that will not be dropped.
       (Contributed by Mario Carneiro, 18-Jul-2016.) @)
    mclsppsfi2 @p |- ( ( T e. mFS /\ A e. ( D C H ) /\ B e. ( ~P H i^i Fin ) )
    -> E. d e. Fin E. h e. ( ~P H i^i Fin ) ( B C_ h /\ <. d , h , A >. e. J /\
        ( R ` <. d , h , A >. ) = ( R ` <. D , h , A >. ) ) ) @=
      ? @.
      @( [18-Jul-2016] @)

    @( Any theorem has a proof using a _finite_ number of dv conditions and
       using only finitely many of the provided hypotheses, to reach the same
       conclusion.
       (Contributed by Mario Carneiro, 18-Jul-2016.) @)
    mclsppsfi @p |- ( ( T e. mFS /\ A e. ( D C H ) ) ->
      E. d e. Fin E. h e. ( ~P H i^i Fin ) ( <. d , h , A >. e. J /\
        ( R ` <. d , h , A >. ) = ( R ` <. D , h , A >. ) ) ) @=
      ( wcel wa c0 cv wss cotp cfn wrex cmfs co cfv wceq w3a cpw cin 0fin elfpw
      0ss mpbir2an mclsppsfi2 mp3an3 3simpc reximi syl ) EUAMZACGBUBMZNOFPZQZIP
      USARZHMZVADUCCUSARDUCUDZUEZFGUFSUGZTZISTZVBVCNZFVETZISTUQUROVEMZVGVJOGQOS
      MGUJUHOGUIUKAOBCDEFGHIJKLULUMVFVIISVDVHFVEUTVBVCUNUOUOUP @.
      @( [18-Jul-2016] @)
  @}

  @{
    mthmppsfi.r @e |- R = ( mStRed ` T ) @.
    mthmppsfi.j @e |- J = ( mPPSt ` T ) @.
    mthmppsfi.u @e |- U = ( mThm ` T ) @.
    @( Any theorem has a proof using a _finite_ number of dv conditions.
       (Unlike ~ mclsppsfi , we don't need to prove that there is a finite
       subset of the hypotheses because ` H ` is already finite.)
       (Contributed by Mario Carneiro, 18-Jul-2016.) @)
    mthmppsfi @p |- ( ( T e. mFS /\ <. D , H , A >. e. U ) ->
      E. d e. Fin ( <. d , H , A >. e. J /\
        ( R ` <. d , H , A >. ) = ( R ` <. D , H , A >. ) ) ) @=
      ( vx wcel cotp wa cfv wceq cfn wss eqid vh cmfs cv wrex simpr elmthm c1st
      sylib w3a cpw cin cmcls co simpll cmpst mppspst simprl sseldi mpst123 syl
      c2nd eqidd csn cun cima cuni fveq2d simprr eqtr3d eqeltrrd msrval mthmsta
      cmvrs simplr 3eqtr3d fvex inex1 otth simp2d simp3d oteq123d eqtrd simprbi
      cxp elmpps ssid a1i cmex cmdv ccnv elmpst simprd elfpw mclsppsfi2 syl3anc
      sylanbrc wi simpld eqssd oteq2d eleq1d adantr eqeq12d anbi12d biimpd expr
      expd 3impd rexlimdva reximdv mpd ) DUBMZBFANZEMZOZLUCZCPZXMCPZQZLGUDZHUC
      ZFANZGMZYBCPZXRQZOZHRUDZXOXNXTXLXNUELCDEGXMIJKUFUHXOXSYGLGXOXPGMZXSYGXOYH
      XSOZOZFUAUCZSZYAYKANZGMZYMCPZXPUGPZUGPZYKANZCPZQZUIZUAFUJRUKZUDZHRUDZYGYJ
      XLAYQFDULPZUMMZFUUBMZUUDXLXNYIUNYJYQFANZGMZUUFYJXPUUHGYJXPYQYPVAPZXPVAPZN
      ZUUHYJXPDUOPZMXPUULQYJGUUMXPUUMDGUUMTZJUPXOYHXSUQZURZUUMDXPUUNUSUTZYJYQYQ
      UUJFUUKAYJYQVBYJYQDVMPZUUJUUKVCVDVEVFZUUSWDZUKZBUURFAVCVDVEVFZUVBWDUKZQZU
      UJFQZUUKAQZYJUVAUUJUUKNZUVCFANZQUVDUVEUVFUIYJUULCPZXRUVGUVHYJXQUVIXRYJXPU
      ULCUUQVGXOYHXSVHZVIYJUULUUMMUVIUVGQYJXPUULUUMUUQUUPVJUUKYQUUMCDUUJUURUUSU
      URTZUUNIUUSTVKUTYJXMUUMMZXRUVHQYJEUUMXMUUMDEKUUNVLXLXNYIVNURZABUUMCDFUURU
      VBUVKUUNIUVBTVKUTVOUVAUUJUVCFUUKAYQUUTYPUGVPVQYPVAVPXPVAVPVRUHZVSYJUVDUVE
      UVFUVNVTWAWBZUUOVJUUIUUHUUMMUUFAUUEYQUUMDFGUUNJUUETZWEWCUTYJFFSZFRMZUUGUV
      QYJFWFWGYJFDWHPZSZUVRYJBDWIPZSBWJBQOZUVTUVROZAUVSMZYJUVLUWBUWCUWDUIUVMABU
      UMDUVSFUWAUWATUVSTUUNWKUHVSWLFFWMWPAFUUEYQCDUAFGHIJUVPWNWOYJUUCYFHRYJUUAY
      FUAUUBYJYKUUBMZOYLYNYTYFYJUWEYLYNYTYFWQWQYJUWEYLOZOZYNYTYFUWGYNYTOYFUWGYN
      YCYTYEUWGYMYBGUWGYKFYAAUWGYKFUWGYKFSZYKRMZUWGUWEUWHUWIOYJUWEYLUQYKFWMUHWR
      YJUWEYLVHWSZWTZXAUWGYOYDYSXRUWGYMYBCUWKVGUWGYSUUHCPZXRUWGYRUUHCUWGYKFYQAU
      WJWTVGYJUWLXRQUWFYJXQUWLXRYJXPUUHCUVOVGUVJVIXBWBXCXDXEXGXFXHXIXJXKXFXIXK
      @.
      @( [18-Jul-2016] @)
  @}
  $)

  ${
    $d m o p s t u v E $.  $d a b c m o p s t u v w x y z H $.  $d c t v z V $.
    $d a b c d m o p s t u v x y K $.  $d a b c d m o p s u v w x y z T $.
    $d a b c d m o p s v w x y z L $.  $d a b c d m o p s t u v x y S $.
    $d a b c d m o p s t v x y B $.  $d a b c m o p s u v w x y z W $.
    $d a b c m o p s t v x y z C $.  $d a b m o p s v w x y z M $.
    $d m o p s v w x z O $.  $d a b c d t u v x y ph $.
    mclspps.d $e |- D = ( mDV ` T ) $.
    mclspps.e $e |- E = ( mEx ` T ) $.
    mclspps.c $e |- C = ( mCls ` T ) $.
    mclspps.1 $e |- ( ph -> T e. mFS ) $.
    mclspps.2 $e |- ( ph -> K C_ D ) $.
    mclspps.3 $e |- ( ph -> B C_ E ) $.
    mclspps.j $e |- J = ( mPPSt ` T ) $.
    mclspps.l $e |- L = ( mSubst ` T ) $.
    mclspps.v $e |- V = ( mVR ` T ) $.
    mclspps.h $e |- H = ( mVH ` T ) $.
    mclspps.w $e |- W = ( mVars ` T ) $.
    mclspps.4 $e |- ( ph -> <. M , O , P >. e. J ) $.
    mclspps.5 $e |- ( ph -> S e. ran L ) $.
    mclspps.6 $e |- ( ( ph /\ x e. O ) -> ( S ` x ) e. ( K C B ) ) $.
    mclspps.7 $e |- ( ( ph /\ v e. V ) -> ( S ` ( H ` v ) ) e. ( K C B ) ) $.
    mclspps.8 $e |- ( ( ph /\ ( x M y /\ a e. ( W ` ( S ` ( H ` x ) ) ) /\
      b e. ( W ` ( S ` ( H ` y ) ) ) ) ) -> a K b ) $.
    ${
      mclsppslem.9 $e |- ( ph -> <. m , o , p >. e. ( mAx ` T ) ) $.
      mclsppslem.10 $e |- ( ph -> s e. ran L ) $.
      mclsppslem.11 $e |- ( ph ->
        ( s " ( o u. ran H ) ) C_ ( `' S " ( K C B ) ) ) $.
      mclsppslem.12 $e |- ( ph -> A. z A. w ( z m w ->
        ( ( W ` ( s ` ( H ` z ) ) ) X. ( W ` ( s ` ( H ` w ) ) ) ) C_ M ) ) $.
      $( The closure is closed under application of provable pre-statements.
         (Compare ~ mclsax .)  This theorem is what justifies the treatment of
         theorems as "equivalent" to axioms once they have been proven: the
         composition of one theorem in the proof of another yields a theorem.
         (Contributed by Mario Carneiro, 18-Jul-2016.) $)
      mclsppslem $p |- ( ph -> ( s ` p ) e. ( `' S " ( K C B ) ) ) $=
        ( vc vd vt vu cv cfv ccnv co cima wcel crn wf msubf syl wss wceq wa cfn
        cotp cmpst w3a cmax cmsta cmfs eqid maxsta mstapst syl6ss sseldd elmpst
        sylib simp3d ffvelrnd ccom fvco3 syl2anc msubco wfn fco ffn adantr wfun
        cun cdm wb ffun simpld 3syl elpreima simplbda wbr wrex ciun cxp cid imp
        ssbrd brxp fveq2d msubvrs syl3anc eqtrd eleq2d eliun syl6bb wal cvv vex
        wi breq12 simpl simpr syl5bir simp2bi mvhf frn unssd sseqtr4d funimass3
        mpbid cnvco imaeq1i imaco eqtri syl6sseqr unssad sselda unssbd fnfvelrn
        fdm sylan simp1d cdif mdvval difss eqsstri simprd anbi12d reeanv simpll
        xpeq12d sseq1d imbi12d spc2gv mp2an 3anbi123d anbi2d imbi1d 3exp2 imp4b
        vtocl2 rexlimdvva sylbid exp4b 3imp2 mclsax eqeltrrd mpbir2and ) AUEVLZ
        UDVLZVMZKVNZRGHVOZVPZVQZUWHOVQZUWHKVMZUWJVQZAOOUWFUWGAUWGSVRZVQZOOUWGVS
        ZVESLOUWGUOUIVTWAZAMVLZIWBZUWTVNUWTWCZWDZNVLZOWBZUXDWEVQZWDZUWFOVQZAUWT
        UXDUWFWFZLWGVMZVQZUXCUXGUXHWHALWIVMZUXJUXIAUXLLWJVMZUXJALWKVQZUXLUXMWBU
        KUXLUXMLUXLWLZUXMWLZWMWAUXJUXMLUXJWLZUXPWNWOVDWPZUWFUWTUXJLOUXDIUHUIUXQ
        WQZWRZWSZWTAUWFKUWGXAZVMZUWNUWJAUWRUXHUYCUWNWCUWSUYAOOUWFKUWGXBXCAVHVIV
        JUXLGHIUWFUYBLOPRSUWTUXDUBUCUFUGUHUIUJUKULUMUXOUOUPUQURVDAKUWPVQZUWQUYB
        UWPVQUTVESLKUWGUOXDXCAVHVLZUXDVQZWDUYBOXEZUYEUYBVNZUWJVPZVQZUYEUYBVMUWJ
        VQZAUYGUYFAOOUYBVSZUYGAOOKVSZUWRUYLAUYDUYMUTSLOKUOUIVTWAZUWSOOOKUWGXFXC
        OOUYBXGWAZXHAUXDUYIUYEAUXDPVRZUYIAUXDUYPXJZUWGVNZUWKVPZUYIAUWGUYQVPUWKW
        BZUYQUYSWBZVFAUWGXIZUYQUWGXKZWBUYTVUAXLAUWRVUBUWSOOUWGXMWAAUYQOVUCAUXDU
        YPOAUXEUXFAUXKUXGUXRUXKUXCUXGUXHUXSUUAWAXNAUXNUBOPVSZUYPOWBUKLOPUBUPUIU
        QUUBZUBOPUUCXOUUDAUWRVUCOWCUWSOOUWGUUQWAUUEUYQUWKUWGUUFXCUUGUYIUYRUWIXA
        ZUWJVPUYSUYHVUFUWJKUWGUUHUUIUYRUWIUWJUUJUUKUULZUUMUUNUYGUYJUYEOVQUYKOUY
        EUWJUYBXPXQXCAVJVLZUBVQZWDZUYGVUHPVMZUYIVQZVUKUYBVMUWJVQZAUYGVUIUYOXHVU
        JUYPUYIVUKAUYPUYIWBVUIAUXDUYPUYIVUGUUOXHAPUBXEZVUIVUKUYPVQAUXNVUDVUNUKV
        UEUBOPXGXOUBVUHPUUPUURWPUYGVULVUKOVQVUMOVUKUWJUYBXPXQXCAUYEVIVLZUWTXRZU
        FVLZUYEPVMZUYBVMZUCVMZVQZUGVLZVUOPVMZUYBVMZUCVMZVQZVUQVVBRXRZAVUPVVAVVF
        VVGAVUPWDZVVAVVFWDVUQVKVLZPVMZKVMZUCVMZVQZVKVURUWGVMZUCVMZXSZVVBFVLZPVM
        ZKVMZUCVMZVQZFVVCUWGVMZUCVMZXSZWDZVVGVVHVVAVVPVVFVWDVVHVVAVUQVKVVOVVLXT
        ZVQVVPVVHVUTVWFVUQVVHVUTVVNKVMZUCVMZVWFVVHVUSVWGUCVVHUWRVUROVQVUSVWGWCA
        UWRVUPUWSXHZVVHUBOUYEPAVUDVUPAUXNVUDUKVUEWAXHZVVHUYEUBVQZVUOUBVQZVVHUYE
        VUOUBUBYAZXRZVWKVWLWDAVUPVWNAUWTVWMUYEVUOAUWTIVWMAUXAUXBAUXCUXGUXHUXTUU
        SXNIVWMYBUUTVWMILUBUPUHUVAVWMYBUVBUVCWOYDYCUYEVUOUBUBYEWRZXNWTZOOVURKUW
        GXBXCYFVVHUXNUYDVVNOVQVWHVWFWCAUXNVUPUKXHZAUYDVUPUTXHZVVHOOVURUWGVWIVWP
        WTVKSLOKPUCVVNUOUIURUQYGYHYIYJVKVUQVVOVVLYKYLVVHVVFVVBFVWCVVTXTZVQVWDVV
        HVVEVWSVVBVVHVVEVWBKVMZUCVMZVWSVVHVVDVWTUCVVHUWRVVCOVQVVDVWTWCVWIVVHUBO
        VUOPVWJVVHVWKVWLVWOUVDWTZOOVVCKUWGXBXCYFVVHUXNUYDVWBOVQVXAVWSWCVWQVWRVV
        HOOVVCUWGVWIVXBWTFSLOKPUCVWBUOUIURUQYGYHYIYJFVVBVWCVVTYKYLUVEVWEVVMVWAW
        DZFVWCXSVKVVOXSVVHVVGVVMVWAVKFVVOVWCUVFVVHVXCVVGVKFVVOVWCVVHVVIVVOVQVVQ
        VWCVQWDZWDAVVIVVQTXRZVXCVVGYPAVUPVXDUVGVVHVXDVXEVXDVVIVVQVVOVWCYAZXRVVH
        VXEVVIVVQVVOVWCYEVVHVXFTVVIVVQAVUPVXFTWBZADVLZEVLZUWTXRZVXHPVMZUWGVMZUC
        VMZVXIPVMZUWGVMZUCVMZYAZTWBZYPZEYMDYMZVUPVXGYPZVGUYEYNVQVUOYNVQVXTVYAYP
        VHYOVIYOVXSVYADEUYEVUOYNYNVXHUYEWCZVXIVUOWCZWDZVXJVUPVXRVXGVXHUYEVXIVUO
        UWTYQVYDVXQVXFTVYDVXMVVOVXPVWCVYDVXLVVNUCVYDVXKVURUWGVYDVXHUYEPVYBVYCYR
        YFYFYFVYDVXOVWBUCVYDVXNVVCUWGVYDVXIVUOPVYBVYCYSYFYFYFUVHUVIUVJUVKUVLWAY
        CYDYTYCAVXEVVMVWAVVGAVXEVVMVWAVVGABVLZCVLZTXRZVUQVYEPVMZKVMZUCVMZVQZVVB
        VYFPVMZKVMZUCVMZVQZWHZWDZVVGYPAVXEVVMVWAWHZWDZVVGYPBCVVIVVQVKYOFYOVYEVV
        IWCZVYFVVQWCZWDZVYQVYSVVGWUBVYPVYRAWUBVYGVXEVYKVVMVYOVWAVYEVVIVYFVVQTYQ
        WUBVYJVVLVUQWUBVYIVVKUCWUBVYHVVJKWUBVYEVVIPVYTWUAYRYFYFYFYJWUBVYNVVTVVB
        WUBVYMVVSUCWUBVYLVVRKWUBVYFVVQPVYTWUAYSYFYFYFYJUVMUVNUVOVCUVRUVPUVQXCUV
        SYTUVTUWAUWBUWCUWDAKOXEZUWLUWMUWOWDXLAUYMWUCUYNOOKXGWAOUWHUWJKXPWAUWE
        $.
    $}

    $d m o p s w z ph $.
    $( The closure is closed under application of provable pre-statements.
       (Compare ~ mclsax .)  This theorem is what justifies the treatment of
       theorems as "equivalent" to axioms once they have been proven: the
       composition of one theorem in the proof of another yields a theorem.
       (Contributed by Mario Carneiro, 18-Jul-2016.) $)
    mclspps $p |- ( ph -> ( S ` P ) e. ( K C B ) ) $=
      ( vz vw vm vo vs vp wfn ccnv co cima wcel cfv crn msubf syl ffn cmax wceq
      wf wss cfn cotp cmpst w3a eqid mppspst sseldi elmpst simp1d simpld simp2d
      wa sylib cv wral ralrimiva wfun cdm wb ffun fdm sseqtr4d funimass5 mpbird
      syl2anc cmfs mvhf ffvelrnda elpreima adantr mpbir2and cun wbr wi 3ad2ant1
      cxp 3ad2antl1 simp21 simp22 simp23 simp3 mclsppslem mclsind elmpps sseldd
      wal simprbi simplbda ) AIKVDZHIVENEFVFZVGZVHZHIVIYGVHZAKKIVPZYFAIOVJZVHZY
      KUNOJKIUIUCVKVLZKKIVMVLZAPQFVFZYHHAURUSDJVNVIZQFGYHJUTVAKLPORSVBVCUBUCUDU
      EAPGVQZPVEPVOZAYRYSWIZQKVQZQVRVHZWIZHKVHZAPQHVSZJVTVIZVHZYTUUCUUDWAAMUUFU
      UEUUFJMUUFWBZUHWCUMWDHPUUFJKQGUBUCUUHWEWJZWFWGAUUAUUBAYTUUCUUDUUIWHWGZYQW
      BUIUJUKULAQYHVQZBWKZIVIYGVHZBQWLZAUUMBQUOWMAIWNZQIWOZVQUUKUUNWPAYKUUOYNKK
      IWQVLAQKUUPUUJAYKUUPKVOYNKKIWRVLWSBQYGIWTXBXAADWKZRVHZWIUUQLVIZYHVHZUUSKV
      HZUUSIVIYGVHZARKUUQLAJXCVHZRKLVPUEJKLRUJUCUKXDVLXEUPAUUTUVAUVBWIWPZUURAYF
      UVDYOKUUSYGIXFVLXGXHAUTWKZVAWKZVCWKVSYQVHZVBWKZYLVHZUVHUVFLVJXIVGYHVQZWAZ
      URWKZUSWKZUVEXJUVLLVIUVHVISVIUVMLVIUVHVISVIXMPVQXKUSYCURYCZWABCURUSDEFGHI
      JUTVAKLMNOPQRSVBVCTUAUBUCUDAUVKUVCUVNUEXLAUVKNGVQUVNUFXLAUVKEKVQUVNUGXLUH
      UIUJUKULAUVKUUEMVHZUVNUMXLAUVKYMUVNUNXLAUVKUULQVHUUMUVNUOXNAUVKUURUVBUVNU
      PXNAUVKUULCWKZPXJTWKZUULLVIIVISVIVHUAWKZUVPLVIIVISVIVHWAUVQUVRNXJUVNUQXNA
      UVGUVIUVJUVNXOAUVGUVIUVJUVNXPAUVGUVIUVJUVNXQAUVKUVNXRXSXTAUVOHYPVHZUMUVOU
      UGUVSHFPUUFJQMUUHUHUDYAYDVLYBYFYIUUDYJKHYGIXFYEXB $.
  $}

  $(
  @{
    mthmco.d @e |- D = ( mDV ` T ) @.
    mthmco.e @e |- E = ( mEx ` T ) @.
    mthmco.1 @e |- ( ph -> T e. mFS ) @.
    mthmco.2 @e |- ( ph -> K C_ D ) @.
    mthmco.3 @e |- ( ph -> B C_ E ) @.
    mthmco.j @e |- U = ( mThm ` T ) @.
    mthmco.l @e |- L = ( mSubst ` T ) @.
    mthmco.v @e |- V = ( mVR ` T ) @.
    mthmco.h @e |- H = ( mVH ` T ) @.
    mthmco.w @e |- W = ( mVars ` T ) @.
    mthmco.4 @e |- ( ph -> <. M , O , P >. e. U ) @.
    mthmco.5 @e |- ( ph -> S e. ran L ) @.
    mthmco.6 @e |- ( ( ph /\ x e. O ) ->
      <. K , B , ( S ` x ) >. e. U ) @.
    mthmco.7 @e |- ( ( ph /\ v e. V ) ->
      <. K , B , ( S ` ( H ` v ) ) >. e. U ) @.
    mthmco.8 @e |- ( ( ph /\ ( x M y /\ a e. ( W ` ( S ` ( H ` x ) ) ) /\
      b e. ( W ` ( S ` ( H ` y ) ) ) ) ) -> a K b ) @.
    @( The application of a theorem to a collection of theorems is a theorem.
       (Compare ~ mclsax .)  This is what justifies the treatment of
       theorems as "equivalent" to axioms once they have been proven: the
       composition of one theorem in the proof of another yields a theorem.

       This theorem has a similar statement to ~ mclspps , but deals with the
       elimination of dummy variables instead of raw composition. The
       assumption ~ mfsinf that there are enough variables of each type is
       essential for this proof. @)
    mthmco @p |- ( ph -> <. K , B , ( S ` P ) >. e. U ) @=
      ? @.
  @}
  $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Grammatical formal systems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c m0St $.
  $c mSA $.
  $c mWGFS $.
  $c mSyn $.
  $c mESyn $.
  $c mGFS $.
  $c mTree $.
  $c mST $.
  $c mSAX $.
  $c mUFS $.

  $( Mapping expressions to statements. $)
  cm0s $a class m0St $.

  $( The set of syntax axioms. $)
  cmsa $a class mSA $.

  $( The set of weakly grammatical formal systems. $)
  cmwgfs $a class mWGFS $.

  $( The syntax typecode function. $)
  cmsy $a class mSyn $.

  $( The syntax typecode function for expressions. $)
  cmesy $a class mESyn $.

  $( The set of grammatical formal systems. $)
  cmgfs $a class mGFS $.

  $( The set of proof trees. $)
  cmtree $a class mTree $.

  $( The set of syntax trees. $)
  cmst $a class mST $.

  $( The indexing set for a syntax axiom. $)
  cmsax $a class mSAX $.

  $( The set of unambiguous formal sytems. $)
  cmufs $a class mUFS $.

  $( Define a function mapping expressions to statements.  (Contributed by
     Mario Carneiro, 14-Jul-2016.) $)
  df-m0s $a |- m0St = ( a e. _V |-> <. (/) , (/) , a >. ) $.

  ${
    $d a d e h m o p r s t x y $.
    $( Define the set of syntax axioms.  (Contributed by Mario Carneiro,
       14-Jul-2016.) $)
    df-msa $a |- mSA = ( t e. _V |-> { a e. ( mEx ` t ) |
      ( ( m0St ` a ) e. ( mAx ` t ) /\ ( 1st ` a ) e. ( mVT ` t ) /\
        Fun ( `' ( 2nd ` a ) |` ( mVR ` t ) ) ) } ) $.

    $( Define the set of weakly grammatical formal systems.  (Contributed by
       Mario Carneiro, 14-Jul-2016.) $)
    df-mwgfs $a |- mWGFS = { t e. mFS | A. d A. h A. a
      ( ( <. d , h , a >. e. ( mAx ` t ) /\ ( 1st ` a ) e. ( mVT ` t ) ) ->
        E. s e. ran ( mSubst ` t ) a e. ( s " ( mSA ` t ) ) ) } $.

    $( Define the syntax typecode function.  (Contributed by Mario Carneiro,
       14-Jul-2016.) $)
    df-msyn $a |- mSyn = Slot 6 $.

    $( Define the set of proof trees.  (Contributed by Mario Carneiro,
       14-Jul-2016.) $)
    df-mtree $a |- mTree = ( t e. _V |->
      ( d e. ~P ( mDV ` t ) , h e. ~P ( mEx ` t ) |->
        |^| { r | ( A. e e. ran ( mVH ` t ) e r <. ( m0St ` e ) , (/) >. /\
          A. e e. h e r <. ( ( mStRed ` t ) ` <. d , h , e >. ) , (/) >. /\
        A. m A. o A. p ( <. m , o , p >. e. ( mAx ` t ) ->
            A. s e. ran ( mSubst ` t ) ( A. x A. y ( x m y ->
        ( ( ( mVars ` t ) ` ( s ` ( ( mVH ` t ) ` x ) ) ) X.
          ( ( mVars ` t ) ` ( s ` ( ( mVH ` t ) ` y ) ) ) ) C_ d ) ->
           ( { ( s ` p ) } X. X_ e e. ( o u. ( ( mVH ` t ) "
        U. ( ( mVars ` t ) " ( o u. { p } ) ) ) ) ( r " { ( s ` e ) } ) ) C_ r
      ) ) ) } ) ) $.

    $( Define the function mapping syntax expressions to syntax trees.
       (Contributed by Mario Carneiro, 14-Jul-2016.) $)
    df-mst $a |- mST = ( t e. _V |->
      ( ( (/) ( mTree ` t ) (/) ) |` ( ( mEx ` t ) |` ( mVT ` t ) ) ) ) $.

    $( Define the indexing set for a syntax axiom's representation in a tree.
       (Contributed by Mario Carneiro, 14-Jul-2016.) $)
    df-msax $a |- mSAX = ( t e. _V |->
      ( p e. ( mSA ` t ) |-> ( ( mVH ` t ) " ( ( mVars ` t ) ` p ) ) ) ) $.
  $}

  $( Define the set of unambiguous formal systems.  (Contributed by Mario
     Carneiro, 14-Jul-2016.) $)
  df-mufs $a |- mUFS = { t e. mGFS | Fun ( mST ` t ) } $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Models of formal systems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c mUV $.
  $c mVL $.
  $c mVSubst $.
  $c mFresh $.
  $c mFRel $.
  $c mEval $.
  $c mMdl $.
  $c mUSyn $.
  $c mGMdl $.
  $c mItp $.
  $c mFromItp $.

  $( The universe of a model. $)
  cmuv $a class mUV $.

  $( The set of valuations. $)
  cmvl $a class mVL $.

  $( Substitution for a valuation. $)
  cmvsb $a class mVSubst $.

  $( The freshness relation of a model. $)
  cmfsh $a class mFresh $.

  $( The set of freshness relations. $)
  cmfr $a class mFRel $.

  $( The evaluation function of a model. $)
  cmevl $a class mEval $.

  $( The set of models. $)
  cmdl $a class mMdl $.

  $( The syntax function applied to elements of the model. $)
  cusyn $a class mUSyn $.

  $( The set of models in a grammatical formal system. $)
  cgmdl $a class mGMdl $.

  $( The interpretation function of the model. $)
  cmitp $a class mItp $.

  $( The evaluation function derived from the interpretation. $)
  cmfitp $a class mFromItp $.

  $( Define the universe of a model.  (Contributed by Mario Carneiro,
     14-Jul-2016.) $)
  df-muv $a |- mUV = Slot 7 $.

  $( Define the freshness relation of a model.  (Contributed by Mario Carneiro,
     14-Jul-2016.) $)
  df-mfsh $a |- mFresh = Slot 8 $.

  $( Define the evaluation function of a model.  (Contributed by Mario
     Carneiro, 14-Jul-2016.) $)
  df-mevl $a |- mEval = Slot 9 $.

  ${
    $d a c d e f g h i m n p r s t u v w x y z $.
    $( Define the set of valuations.  (Contributed by Mario Carneiro,
       14-Jul-2016.) $)
    df-mvl $a |- mVL = ( t e. _V |-> X_ v e. ( mVR ` t )
      ( ( mUV ` t ) " { ( ( mType ` t ) ` v ) } ) ) $.

    $( Define substitution applied to a valuation.  (Contributed by Mario
       Carneiro, 14-Jul-2016.) $)
    df-mvsb $a |- mVSubst = ( t e. _V |-> { <. <. s , m >. , x >. |
      ( ( s e. ran ( mSubst ` t ) /\ m e. ( mVL ` t ) ) /\
         A. v e. ( mVR ` t ) m dom ( mEval ` t ) ( s ` ( ( mVH ` t ) ` v ) ) /\
      x = ( v e. ( mVR ` t ) |->
        ( m ( mEval ` t ) ( s ` ( ( mVH ` t ) ` v ) ) ) ) ) } ) $.

    $( Define the set of freshness relations.  (Contributed by Mario Carneiro,
       14-Jul-2016.) $)
    df-mfrel $a |- mFRel = ( t e. _V |->
      { r e. ~P ( ( mUV ` t ) X. ( mUV ` t ) ) | ( `' r = r /\
        A. c e. ( mVT ` t ) A. w e. ( ~P ( mUV ` t ) i^i Fin )
          E. v e. ( ( mUV ` t ) " { c } ) w C_ ( r " { v } ) ) } ) $.

    $( Define the set of models of a formal system.  (Contributed by Mario
       Carneiro, 14-Jul-2016.) $)
    df-mdl $a |- mMdl = { t e. mFS |
      [. ( mUV ` t ) / u ]. [. ( mEx ` t ) / x ].
      [. ( mVL ` t ) / v ]. [. ( mEval ` t ) / n ]. [. ( mFresh ` t ) / f ].
   ( ( u C_ ( ( mTC ` t ) X. _V ) /\ f e. ( mFRel ` t ) /\
       n e. ( u ^pm ( v X. ( mEx ` t ) ) ) ) /\ A. m e. v
  ( ( A. e e. x ( n " { <. m , e >. } ) C_ ( u " { ( 1st ` e ) } ) /\
      A. y e. ( mVR ` t ) <. m , ( ( mVH ` t ) ` y ) >. n ( m ` y ) /\
      A. d A. h A. a ( <. d , h , a >. e. ( mAx ` t ) ->
        ( ( A. y A. z ( y d z -> ( m ` y ) f ( m ` z ) ) /\
            h C_ ( dom n " { m } ) ) -> m dom n a ) ) ) /\
    ( A. s e. ran ( mSubst ` t ) A. e e. ( mEx ` t )
        A. y ( <. s , m >. ( mVSubst ` t ) y ->
        ( n " { <. m , ( s ` e ) >. } ) = ( n " { <. y , e >. } ) ) /\
      A. p e. v A. e e. x
        ( ( m |` ( ( mVars ` t ) ` e ) ) = ( p |` ( ( mVars ` t ) ` e ) ) ->
          ( n " { <. m , e >. } ) = ( n " { <. p , e >. } ) ) /\
      A. y e. u A. e e. x ( ( m " ( ( mVars ` t ) ` e ) ) C_ ( f " { y } ) ->
          ( n " { <. m , e >. } ) C_ ( f " { y } ) ) ) ) ) } $.

    $( Define the syntax typecode function for the model universe.
       (Contributed by Mario Carneiro, 14-Jul-2016.) $)
    df-musyn $a |- mUSyn = ( t e. _V |-> ( v e. ( mUV ` t ) |->
      <. ( ( mSyn ` t ) ` ( 1st ` v ) ) , ( 2nd ` v ) >. ) ) $.

    $( Define the set of models of a grammatical formal system.  (Contributed
       by Mario Carneiro, 14-Jul-2016.) $)
    df-gmdl $a |- mGMdl = { t e. ( mGFS i^i mMdl ) |
     ( A. c e. ( mTC ` t ) ( ( mUV ` t ) " { c } ) C_
          ( ( mUV ` t ) " { ( ( mSyn ` t ) ` c ) } ) /\
       A. v e. ( mUV ` c ) A. w e. ( mUV ` c ) ( v ( mFresh ` t ) w <->
          v ( mFresh ` t ) ( ( mUSyn ` t ) ` w ) ) /\
       A. m e. ( mVL ` t ) A. e e. ( mEx ` t )
          ( ( mEval ` t ) " { <. m , e >. } ) =
          ( ( ( mEval ` t ) " { <. m , ( ( mESyn ` t ) ` e ) >. } ) i^i
            ( ( mUV ` t ) " { ( 1st ` e ) } ) ) ) } $.

    $( Define the interpretation function for a model.  (Contributed by Mario
       Carneiro, 14-Jul-2016.) $)
    df-mitp $a |- mItp = ( t e. _V |-> ( a e. ( mSA ` t ) |->
      ( g e. X_ i e. ( ( mVars ` t ) ` a )
          ( ( mUV ` t ) " { ( ( mType ` t ) ` i ) } ) |->
        ( iota x E. m e. ( mVL ` t ) ( g = ( m |` ( ( mVars ` t ) ` a ) ) /\
          x = ( m ( mEval ` t ) a ) ) ) ) ) ) $.

    $( Define a function that produces the evaluation function, given the
       interpretation function for a model.  (Contributed by Mario Carneiro,
       14-Jul-2016.) $)
    df-mfitp $a |- mFromItp = ( t e. _V |-> ( f e. X_ a e. ( mSA ` t )
    ( ( ( mUV ` t ) " { ( ( 1st ` t ) ` a ) } ) ^m
        X_ i e. ( ( mVars ` t ) ` a )
          ( ( mUV ` t ) " { ( ( mType ` t ) ` i ) } ) ) |->
    ( iota_ n e. ( ( mUV ` t ) ^pm ( ( mVL ` t ) X. ( mEx ` t ) ) )
      A. m e. ( mVL ` t )
        ( A. v e. ( mVR ` t ) <. m , ( ( mVH ` t ) ` v ) >. n ( m ` v ) /\
          A. e A. a A. g ( e ( mST ` t ) <. a , g >. ->
            <. m , e >. n ( f ` ( i e. ( ( mVars ` t ) ` a ) |->
              ( m n ( g ` ( ( mVH ` t ) ` i ) ) ) ) ) ) /\
          A. e e. ( mEx ` t ) ( n " { <. m , e >. } ) =
            ( ( n " { <. m , ( ( mESyn ` t ) ` e ) >. } ) i^i
              ( ( mUV ` t ) " { ( 1st ` e ) } ) ) ) ) ) ) $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Splitting fields
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c IntgRing $. $( Integral subring of a ring $)
  $c cplMetSp $. $( Completion of a metric space $)
  $c HomLimB $. $( Direct limit auxiliaries $)
  $c HomLim $. $( Direct limit structure $)
  $c polyFld $. $( Polynomial extension field $)
  $c splitFld1 $. $( Splitting field for a polynomial auxiliary $)
  $c splitFld $. $( Splitting field for a polynomial $)
  $c polySplitLim $. $( Splitting field for a sequence of polynomials $)

  $( Integral subring of a ring. $)
  citr $a class IntgRing $.

  $( Completion of a metric space. $)
  ccpms $a class cplMetSp $.

  $( Embeddings for a direct limit. $)
  chlb $a class HomLimB $.

  $( Direct limit structure. $)
  chlim $a class HomLim $.

  $( Polynomial extension field. $)
  cpfl $a class polyFld $.

  $( Splitting field for a single polynomial (auxiliary). $)
  csf1 $a class splitFld1 $.

  $( Splitting field for a finite set of polynomials. $)
  csf $a class splitFld $.

  $( Splitting field for a sequence of polynomials. $)
  cpsl $a class polySplitLim $.

  ${
    $d b e f g h i j m n p q r s t v w x y z $.
    $( Define the subring of elements of ` r ` integral over ` s ` in a ring.
       (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    df-irng $a |- IntgRing = ( r e. _V , s e. _V |->
      U_ f e. ( Monic1p ` ( r |`s s ) ) ( `' f " { ( 0g ` r ) } ) ) $.

    $( A function which completes the given metric space.  (Contributed by
       Mario Carneiro, 2-Dec-2014.) $)
    df-cplmet $a |- cplMetSp = ( w e. _V |->
      [_ ( ( w ^s NN ) |`s ( Cau ` ( dist ` w ) ) ) / r ]_
      [_ ( Base ` r ) / v ]_ [_ { <. f , g >. | ( { f , g } C_ v /\
        A. x e. RR+ E. j e. ZZ ( f |` ( ZZ>= ` j ) ) :
          ( ZZ>= ` j ) --> ( ( g ` j ) ( ball ` ( dist ` w ) ) x ) ) } / e ]_
      ( ( r /s e ) sSet { <. ( dist ` ndx ) , { <. <. x , y >. , z >. |
        E. p e. v E. q e. v ( ( x = [ p ] e /\ y = [ q ] e ) /\
          ( p oF ( dist ` r ) q ) ~~> z ) } >. } ) ) $.

    $( The input to this function is a sequence (on ` NN ` ) of homomorphisms
       ` F ( n ) : R ( n ) --> R ( n + 1 ) ` .  The resulting structure is the
       direct limit of the direct system so defined.  This function returns the
       pair ` <. S , G >. ` where ` S ` is the terminal object and ` G ` is a
       sequence of functions such that ` G ( n ) : R ( n ) --> S ` and
       ` G ( n ) = F ( n ) o. G ( n + 1 ) ` .  (Contributed by Mario Carneiro,
       2-Dec-2014.) $)
    df-homlimb $a |- HomLimB = ( f e. _V |->
     [_ U_ n e. NN ( { n } X. dom ( f ` n ) ) / v ]_
     [_ |^| { s | ( s Er v /\ ( x e. v |-> <. ( ( 1st ` x ) + 1 ) ,
          ( ( f ` ( 1st ` x ) ) ` ( 2nd ` x ) ) >. ) C_ s ) } / e ]_
    <. ( v /. e ) , ( n e. NN |->
       ( x e. dom ( f ` n ) |-> [ <. n , x >. ] e ) ) >. ) $.

    $( The input to this function is a sequence (on ` NN ` ) of structures
       ` R ( n ) ` and homomorphisms ` F ( n ) : R ( n ) --> R ( n + 1 ) ` .
       The resulting structure is the direct limit of the direct system so
       defined, and maintains any structures that were present in the original
       objects.  TODO: generalize to directed sets?  (Contributed by Mario
       Carneiro, 2-Dec-2014.) $)
    df-homlim $a |- HomLim = ( r e. _V , f e. _V |->
     [_ ( HomLimB ` f ) / e ]_ [_ ( 1st ` e ) / v ]_ [_ ( 2nd ` e ) / g ]_
    ( { <. ( Base ` ndx ) , v >. ,
        <. ( +g ` ndx ) , U_ n e. NN ran ( x e. dom ( g ` n ) ,
        y e. dom ( g ` n ) |-> <. <. ( ( g ` n ) ` x ) , ( ( g ` n ) ` y ) >. ,
          ( ( g ` n ) ` ( x ( +g ` ( r ` n ) ) y ) ) >. ) >. ,
        <. ( .r ` ndx ) , U_ n e. NN ran ( x e. dom ( g ` n ) ,
        y e. dom ( g ` n ) |-> <. <. ( ( g ` n ) ` x ) , ( ( g ` n ) ` y ) >. ,
          ( ( g ` n ) ` ( x ( .r ` ( r ` n ) ) y ) ) >. ) >. } u.
      { <. ( TopOpen ` ndx ) , { s e. ~P v |
           A. n e. NN ( `' ( g ` n ) " s ) e. ( TopOpen ` ( r ` n ) ) } >. ,
        <. ( dist ` ndx ) , U_ n e. NN ran ( x e. dom ( ( g ` n ) ` n ) ,
        y e. dom ( ( g ` n ) ` n ) |-> <. <. ( ( g ` n ) ` x ) ,
             ( ( g ` n ) ` y ) >. , ( x ( dist ` ( r ` n ) ) y ) >. ) >. ,
        <. ( le ` ndx ) , U_ n e. NN ( `' ( g ` n ) o.
           ( ( le ` ( r ` n ) ) o. ( g ` n ) ) ) >. } ) ) $.

    $( Define the field extension that augments a field with the root of the
       given irreducible polynomial, and extends the norm if one exists and the
       extension is unique.  (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    df-plfl $a |- polyFld = ( r e. _V , p e. _V |-> [_ ( Poly1 ` r ) / s ]_
      [_ ( ( RSpan ` s ) ` { p } ) / i ]_
      [_ ( z e. ( Base ` r ) |->
           [ ( z ( .s ` s ) ( 1r ` s ) ) ] ( s ~QG i ) ) / f ]_
      <. [_ ( s /s ( s ~QG i ) ) / t ]_ ( ( t toNrmGrp ( iota_ n e.
        ( AbsVal ` t ) ( n o. f ) = ( norm ` r ) ) ) sSet <. ( le ` ndx ) ,
          [_ ( z e. ( Base ` t ) |->
            ( iota_ q e. z ( r deg1 q ) < ( r deg1 p ) ) ) / g ]_
          ( `' g o. ( ( le ` s ) o. g ) ) >. ) , f >. ) $.

    $( Temporary construction for the splitting field of a polynomial.  The
       inputs are a field ` r ` and a polynomial ` p ` that we want to split,
       along with a tuple ` j ` in the same format as the output.  The output
       is a tuple ` <. S , F >. ` where ` S ` is the splitting field and ` F `
       is an injective homomorphism from the original field ` r ` .

       The function works by repeatedly finding the smallest monic irreducible
       factor, and extending the field by that factor using the ` polyFld `
       construction.  We keep track of a total order in each of the splitting
       fields so that we can pick an element definably without needing global
       choice.  (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    df-sfl1 $a |- splitFld1 = ( r e. _V , j e. _V |-> ( p e. ( Poly1 ` r ) |->
        ( rec ( ( s e. _V , f e. _V |-> [_ ( mPoly ` s ) / m ]_
        [_ { g e. ( ( Monic1p ` s ) i^i ( Irred ` m ) ) |
             ( g ( ||r ` m ) ( p o. f ) /\ 1 < ( s deg1 g ) ) } / b ]_
        if ( ( ( p o. f ) = ( 0g ` m ) \/ b = (/) ) , <. s , f >. ,
          [_ ( glb ` b ) / h ]_ [_ ( s polyFld h ) / t ]_
          <. ( 1st ` t ) , ( f o. ( 2nd ` t ) ) >. ) ) , j ) `
        ( card ` ( 1 ... ( r deg1 p ) ) ) ) ) ) $.

    $( Define the splitting field of a finite collection of polynomials, given
       a total ordered base field.  The output is a tuple ` <. S , F >. ` where
       ` S ` is the totally ordered splitting field and ` F ` is an injective
       homomorphism from the original field ` r ` .  (Contributed by Mario
       Carneiro, 2-Dec-2014.) $)
    df-sfl $a |- splitFld = ( r e. _V , p e. _V |->
        ( iota x E. f ( f Isom < , ( lt ` r ) ( ( 1 ... ( # ` p ) ) , p ) /\
          x = ( seq 0 ( ( e e. _V , g e. _V |->
            ( ( r splitFld1 e ) ` g ) ) , ( f u.
        { <. 0 , <. r , ( _I |` ( Base ` r ) ) >. >. } ) ) `
          ( # ` p ) ) ) ) ) $.

    $( Define the direct limit of an increasing sequence of fields produced by
       pasting together the splitting fields for each sequence of polynomials.
       That is, given a ring ` r ` , a strict order on ` r ` , and a sequence
       ` p : NN --> ( ~P r i^i Fin ) ` of finite sets of polynomials to split,
       we construct the direct limit system of field extensions by splitting
       one set at a time and passing the resulting construction to ` HomLim ` .
       (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    df-psl $a |- polySplitLim = ( r e. _V ,
      p e. ( ( ~P ( Base ` r ) i^i Fin ) ^m NN ) |->
    [_ ( 1st o. seq 0 ( ( g e. _V , q e. _V |->
      [_ ( 1st ` g ) / e ]_ [_ ( 1st ` e ) / s ]_
      [_ ( s splitFld ran ( x e. q |-> ( x o. ( 2nd ` g ) ) ) ) / f ]_
        <. f , ( ( 2nd ` g ) o. ( 2nd ` f ) ) >. ) ,
        ( p u. { <. 0 , <. <. r , (/) >. ,
          ( _I |` ( Base ` r ) ) >. >. } ) ) ) / f ]_
      ( ( 1st o. ( f shift 1 ) ) HomLim ( 2nd o. f ) ) ) $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  <i>p</i>-adic number fields
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c ZRing $. $( Integral elements of a ring $)
  $c GF $. $( Galois finite field $)
  $c GF_oo $. $( Galois limit field $)
  $c ~Qp $. $( Equivalence relation for Qp $)
  $c /Qp $. $( Representative of equivalence relation $)
  $c Qp QpOLD $. $( p-adic rational numbers $)
  $c Zp $. $( p-adic integers $)
  $c _Qp $. $( Algebraic completion of Qp $)
  $c Cp $. $( Metric completion of _Qp $)

  $( Integral elements of a ring. $)
  czr $a class ZRing $.

  $( Galois finite field. $)
  cgf $a class GF $.

  $( Galois limit field. $)
  cgfo $a class GF_oo $.

  $( Equivalence relation for ~ df-qp . $)
  ceqp $a class ~Qp $.

  $( Equivalence relation representatives for ~ df-qp . $)
  crqp $a class /Qp $.

  $( The set of ` p ` -adic rational numbers. $)
  cqp $a class Qp $.

  $( The set of ` p ` -adic rational numbers.  (New usage is discouraged.) $)
  cqpOLD $a class QpOLD $.

  $( The set of ` p ` -adic integers.  (Not to be confused with ~ czn .) $)
  czp $a class Zp $.

  $( Algebraic completion of the ` p ` -adic rational numbers. $)
  cqpa $a class _Qp $.

  $( Metric completion of ` _Qp ` . $)
  ccp $a class Cp $.

  ${
    $d b d f g h k n p r s x y $.
    $( Define the subring of integral elements in a ring.  (Contributed by
       Mario Carneiro, 2-Dec-2014.) $)
    df-zrng $a |- ZRing = ( r e. _V |->
      ( r IntgRing ran ( ZRHom ` r ) ) ) $.

    $( Define the Galois finite field of order ` p ^ n ` .  (Contributed by
       Mario Carneiro, 2-Dec-2014.) $)
    df-gf $a |- GF = ( p e. Prime , n e. NN |-> [_ ( Z/nZ ` p ) / r ]_
    ( 1st ` ( r splitFld { [_ ( Poly1 ` r ) / s ]_ [_ ( var1 ` r ) / x ]_
        ( ( ( p ^ n ) ( .g ` ( mulGrp ` s ) ) x ) ( -g ` s ) x ) } ) ) ) $.

    $( Define the Galois field of order ` p ^ +oo ` , as a direct limit of the
       Galois finite fields.  (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    df-gfoo $a |- GF_oo = ( p e. Prime |-> [_ ( Z/nZ ` p ) / r ]_
      ( r polySplitLim ( n e. NN |->
      { [_ ( Poly1 ` r ) / s ]_ [_ ( var1 ` r ) / x ]_
        ( ( ( p ^ n ) ( .g ` ( mulGrp ` s ) ) x ) ( -g ` s ) x ) } ) ) ) $.

    $( Define an equivalence relation on ` ZZ ` -indexed sequences of integers
       such that two sequences are equivalent iff the difference is equivalent
       to zero, and a sequence is equivalent to zero iff the sum
       ` sum_ k <_ n f ( k ) ( p ^ k ) ` is a multiple of ` p ^ ( n + 1 ) ` for
       every ` n ` .  (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    df-eqp $a |- ~Qp = ( p e. Prime |->
      { <. f , g >. | ( { f , g } C_ ( ZZ ^m ZZ ) /\
       A. n e. ZZ sum_ k e. ( ZZ>= ` -u n ) ( ( ( f ` -u k ) - ( g ` -u k ) ) /
        ( p ^ ( k + ( n + 1 ) ) ) ) e. ZZ ) } ) $.

    $( There is a unique element of ` ( ZZ ^m ( 0 ... ( p - 1 ) ) ) ` ` ~Qp `
       -equivalent to any element of ` ( ZZ ^m ZZ ) ` , if the sequences are
       zero for sufficiently large negative values; this function selects that
       element.  (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    df-rqp $a |- /Qp = ( p e. Prime |-> ( ~Qp i^i [_ { f e. ( ZZ ^m ZZ ) |
      E. x e. ran ZZ>= ( `' f " ( ZZ \ { 0 } ) ) C_ x } / y ]_
        ( y X. ( y i^i ( ZZ ^m ( 0 ... ( p - 1 ) ) ) ) ) ) ) $.

    $( Define the ` p ` -adic completion of the rational numbers, as a normed
       field structure with a total order (that is not compatible with the
       operations).  (Contributed by Mario Carneiro, 2-Dec-2014.)  (Revised by
       AV, 10-Oct-2021.) $)
    df-qp $a |- Qp = ( p e. Prime |->
        [_ { h e. ( ZZ ^m ( 0 ... ( p - 1 ) ) ) |
          E. x e. ran ZZ>= ( `' h " ( ZZ \ { 0 } ) ) C_ x } / b ]_
  ( ( { <. ( Base ` ndx ) , b >. ,
        <. ( +g ` ndx ) ,
          ( f e. b , g e. b |-> ( ( /Qp ` p ) ` ( f oF + g ) ) ) >. ,
        <. ( .r ` ndx ) ,
          ( f e. b , g e. b |-> ( ( /Qp ` p ) ` ( n e. ZZ |->
           sum_ k e. ZZ ( ( f ` k ) x. ( g ` ( n - k ) ) ) ) ) ) >. } u.
      { <. ( le ` ndx ) , { <. f , g >. | ( { f , g } C_ b /\
        sum_ k e. ZZ ( ( f ` -u k ) x. ( ( p + 1 ) ^ -u k ) ) <
        sum_ k e. ZZ ( ( g ` -u k ) x. ( ( p + 1 ) ^ -u k ) ) ) } >. } )
        toNrmGrp ( f e. b |-> if ( f = ( ZZ X. { 0 } ) , 0 ,
        ( p ^ -u inf ( ( `' f " ( ZZ \ { 0 } ) ) , RR , < ) ) ) ) ) ) $.

    $( Define the ` p ` -adic completion of the rational numbers, as a normed
       field structure with a total order (that is not compatible with the
       operations).  (Contributed by Mario Carneiro, 2-Dec-2014.)  Obsolete
       version of ~ df-qp as of 10-Oct-2021.  (New usage is discouraged.) $)
    df-qpOLD $a |- QpOLD = ( p e. Prime |->
        [_ { h e. ( ZZ ^m ( 0 ... ( p - 1 ) ) ) |
          E. x e. ran ZZ>= ( `' h " ( ZZ \ { 0 } ) ) C_ x } / b ]_
  ( ( { <. ( Base ` ndx ) , b >. ,
        <. ( +g ` ndx ) ,
          ( f e. b , g e. b |-> ( ( /Qp ` p ) ` ( f oF + g ) ) ) >. ,
        <. ( .r ` ndx ) ,
          ( f e. b , g e. b |-> ( ( /Qp ` p ) ` ( n e. ZZ |->
           sum_ k e. ZZ ( ( f ` k ) x. ( g ` ( n - k ) ) ) ) ) ) >. } u.
      { <. ( le ` ndx ) , { <. f , g >. | ( { f , g } C_ b /\
        sum_ k e. ZZ ( ( f ` -u k ) x. ( ( p + 1 ) ^ -u k ) ) <
        sum_ k e. ZZ ( ( g ` -u k ) x. ( ( p + 1 ) ^ -u k ) ) ) } >. } )
        toNrmGrp ( f e. b |-> if ( f = ( ZZ X. { 0 } ) , 0 ,
        ( p ^ -u sup ( ( `' f " ( ZZ \ { 0 } ) ) , RR , `' < ) ) ) ) ) ) $.

    $( Define the ` p ` -adic integers, as a subset of the ` p ` -adic
       rationals.  (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    df-zp $a |- Zp = ( ZRing o. Qp ) $.

    $( Define the completion of the ` p ` -adic rationals.  Here we simply
       define it as the splitting field of a dense sequence of polynomials
       (using as the ` n ` -th set the collection of polynomials with degree
       less than ` n ` and with coefficients ` < ( p ^ n ) ` ).  Krasner's
       lemma will then show that all monic polynomials have splitting fields
       isomorphic to a sufficiently close Eisenstein polynomial from the list,
       and unramified extensions are generated by the polynomial
       ` x ^ ( p ^ n ) - x ` , which is in the list.  Thus, every finite
       extension of ` Qp ` is a subfield of this field extension, so it is
       algebraically closed.  (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    df-qpa $a |- _Qp = ( p e. Prime |-> [_ ( Qp ` p ) / r ]_
      ( r polySplitLim ( n e. NN |-> { f e. ( Poly1 ` r ) |
        ( ( r deg1 f ) <_ n /\ A. d e. ran ( coe1 ` f )
          ( `' d " ( ZZ \ { 0 } ) ) C_ ( 0 ... n ) ) } ) ) ) $.

    $( Define the metric completion of the algebraic completion of the ` p `
       -adic rationals.  (Contributed by Mario Carneiro, 2-Dec-2014.) $)
    df-cp $a |- Cp = ( cplMetSp o. _Qp ) $.
  $}

  $( TODO list $)

  $( change *mpt2* -> *mpo* $)
  $( use more symbol variables like .+ $)
  $( Uniform spaces $)
  $( Characterization of perfectly normal spaces $)
  $( Hausdorff quotient $)
  $( Make SymGrp a subgroup of EndoMnd (the TopMnd of functions X --> X) $)
  $( add mpt2mptf, fmpt2i $)

$( (End of Mario Carneiro's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Filip Cernatescu
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  I hope someone will enjoy solving (proving) the simple equations,
  inequalities, and calculations from this mathbox.  I have proved these
  problems (theorems) using the Milpgame proof assistant.  (It can be
  downloaded from ~ http://us.metamath.org/other/milpgame/milpgame.html .)

$)

  $( Practice problem 1.  Clues: ~ 5p4e9 ~ 3p2e5 ~ eqtri ~ oveq1i .
     (Contributed by Filip Cernatescu, 16-Mar-2019.)
     (Proof modification is discouraged.) $)
  problem1 $p |- ( ( 3 + 2 ) + 4 ) = 9 $=
    ( c3 c2 caddc co c4 c5 c9 3p2e5 oveq1i 5p4e9 eqtri ) ABCDZECDFECDGLFECHIJK
    $.

  $( Practice problem 2.  Clues: ~ oveq12i ~ adddiri ~ add4i ~ mulcli ~ recni
     ~ 2re ~ 3eqtri ~ 10re ~ 5re ~ 1re ~ 4re ~ eqcomi ~ 5p4e9 ~ oveq1i ~ df-3 .
     (Contributed by Filip Cernatescu, 16-Mar-2019.)  (Revised by AV,
     9-Sep-2021.)  (Proof modification is discouraged.) $)
  problem2 $p |- ( ( ( 2 x. ; 1 0 ) + 5 ) + ( ( 1 x. ; 1 0 ) + 4 ) )
          = ( ( 3 x. ; 1 0 ) + 9 ) $=
    ( c2 c1 cc0 cdc cmul co c5 caddc c4 c9 c3 2re recni 10re mulcli 5re 1re 4re
    eqcomi oveq1i add4i adddiri 5p4e9 oveq12i df-3 3eqtri ) ABCDZEFZGHFBUGEFZIH
    FHFUHUIHFZGIHFZHFABHFZUGEFZJHFKUGEFZJHFUHGUIIAUGALMZUGNMZOGPMBUGBQMZUPOIRMU
    AUJUMUKJHUMUJABUGUOUQUPUBSUCUDUMUNJHULKUGEKULUESTTUF $.

  $( Practice problem 2.  Clues: ~ oveq12i ~ adddiri ~ add4i ~ mulcli ~ recni
     ~ 2re ~ 3eqtri ~ 10re ~ 5re ~ 1re ~ 4re ~ eqcomi ~ 5p4e9 ~ oveq1i ~ df-3 .
     (Contributed by Filip Cernatescu, 16-Mar-2019.)  Obsolete version of
     ~ problem2 as of 9-Sep-2021.  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  problem2OLD $p |- ( ( ( 2 x. 10 ) + 5 ) + ( ( 1 x. 10 ) + 4 ) )
          = ( ( 3 x. 10 ) + 9 ) $=
    ( c2 c10 co c5 caddc c1 c4 c9 c3 2re recni 10reOLD mulcli 5re 1re 4re add4i
    cmul eqcomi oveq1i adddiri 5p4e9 oveq12i df-3 3eqtri ) ABRCZDECFBRCZGECECUF
    UGECZDGECZECAFECZBRCZHECIBRCZHECUFDUGGABAJKZBLKZMDNKFBFOKZUNMGPKQUHUKUIHEUK
    UHAFBUMUOUNUASUBUCUKULHEUJIBRIUJUDSTTUE $.

  ${
    problem3.1 $e |- A e. CC $.
    problem3.2 $e |- ( A + 3 ) = 4 $.
    $( Practice problem 3.  Clues: ~ eqcomi ~ eqtri ~ subaddrii ~ recni ~ 4re
       ~ 3re ~ 1re ~ df-4 ~ addcomi .  (Contributed by Filip Cernatescu,
       16-Mar-2019.)  (Proof modification is discouraged.) $)
    problem3 $p |- A = 1 $=
      ( c1 c4 c3 cmin co 4re recni 3re 1re caddc eqcomi subaddrii addcomi eqtri
      df-4 ) DADEFGHZASDEFDEIJZFKJZDLJEFDMHRNONEFATUABFAMHAFMHEFAUABPCQOQN $.
  $}

  ${
    problem4.1 $e |- A e. CC $.
    problem4.2 $e |- B e. CC $.
    problem4.3 $e |- ( A + B ) = 3 $.
    problem4.4 $e |- ( ( 3 x. A ) + ( 2 x. B ) ) = 7 $.
    $( Practice problem 4.  Clues: ~ pm3.2i ~ eqcomi ~ eqtri ~ subaddrii
       ~ recni ~ 7re ~ 6re ~ ax-1cn ~ df-7 ~ ax-mp ~ oveq1i ~ 3cn ~ 2cn ~ df-3
       ~ mulid2i ~ subdiri ~ mp3an ~ mulcli ~ subadd23 ~ oveq2i ~ oveq12i
       ~ 3t2e6 ~ mulcomi ~ subcli ~ biimpri ~ subadd2i .  (Contributed by Filip
       Cernatescu, 16-Mar-2019.)  (Proof modification is discouraged.) $)
    problem4 $p |- ( A = 1 /\ B = 2 ) $=
      ( c1 wceq c2 c7 c6 cmin co caddc eqcomi c3 cmul 3cn 2cn eqtri ax-1cn df-7
      7re recni 6re subaddrii df-3 oveq1i mulid2i subdiri mulcli subadd23 mp3an
      cc wcel 3t2e6 mulcomi oveq12i subcli oveq2i subadd2i biimpri ax-mp pm3.2i
      ) AGHBIHGAGJKLMZAVEGJKGJUCUDZKUEUDZUAJKGNMUBOUFOAKNMZJHZVEAHZVHPAQMZIBQMZ
      NMZJVHVKIAQMZLMZKNMZVMAVOKNAPILMZAQMZVOVRAVRGAQMAVQGAQPIGRSUAPIGNMZUGOZUF
      UHACUITOPIARSCUJTUHVPVKKVNLMZNMZVMVKUNUOVNUNUOKUNUOVPWBHPARCUKIASCUKVGVKV
      NKULUMVMWBVLWAVKNWAVLWAPIQMZAIQMZLMZVLWEWAWCKWDVNLUPAICSUQUROWEPALMZIQMZV
      LWGWEPAIRCSUJOWGIWFQMZVLWHWGIWFSPARCUSUQOVLWHBWFIQWFBPABRCDEUFOZUTOTTTOUT
      OTTFTVJVIJKAVFVGCVAVBVCTOZBWFIWIWFPGLMZIAGPLWJUTVSPHZWKIHZVTWMWLPGIRUASVA
      VBVCTTVD $.
  $}

  ${
    problem5.1 $e |- A e. RR $.
    problem5.2 $e |- ( ( 2 x. A ) + 3 ) < 9 $.
    $( Practice problem 5.  Clues: ~ 3brtr3i ~ mpbi ~ breqtri ~ ltaddsubi
       ~ remulcli ~ 2re ~ 3re ~ 9re ~ eqcomi ~ mvlladdi 3cn ~ 6cn ~ eqtr3i
       ~ 6p3e9 ~ addcomi ~ ltdiv1ii ~ 6re ~ nngt0i ~ 2nn ~ divcan3i ~ recni
       ~ 2cn ~ 2ne0 ~ mpbir ~ eqtri ~ mulcomi ~ 3t2e6 ~ divmuli .  (Contributed
       by Filip Cernatescu, 16-Mar-2019.)
       (Proof modification is discouraged.) $)
    problem5 $p |- A < 3 $=
      ( c2 cmul co cdiv c6 c3 clt wbr c9 caddc 2re mpbi 3cn 6cn eqcomi 2cn 2ne0
      cmin remulcli 3re 9re ltaddsubi 6p3e9 addcomi eqtr3i mvlladdi breqtri 6re
      2nn nngt0i ltdiv1ii recni divcan3i wceq mulcomi 3t2e6 eqtri divmuli mpbir
      3brtr3i ) DAEFZDGFZHDGFZAIJVDHJKVEVFJKVDLIUAFZHJVDIMFLJKVDVGJKCVDILDANBUB
      ZUCUDUEOHVGIHLPQLIHMFZHIMFLVIUFHIQPUGUHRUIRUJVDHDVHUKNDULUMUNOADABUOSTUPV
      FIUQDIEFZHUQVJIDEFHDISPURUSUTHDIQSPTVAVBVC $.
  $}

  ${
    quad3.1 $e |- X e. CC $.
    quad3.2 $e |- A e. CC $.
    quad3.3 $e |- A =/= 0 $.
    quad3.4 $e |- B e. CC $.
    quad3.5 $e |- C e. CC $.
    quad3.6 $e |- ( ( A x. ( X ^ 2 ) ) + ( ( B x. X ) + C ) ) = 0 $.
    $( Variant of quadratic equation with discriminant expanded.  (Contributed
       by Filip Cernatescu, 19-Oct-2019.) $)
    quad3 $p |- ( X = ( ( -u B + ( sqrt ` ( ( B ^ 2 ) - ( 4 x. ( A x. C ) ) )
              ) ) / ( 2 x. A ) ) \/ X = ( ( -u B - ( sqrt ` ( ( B ^ 2 ) -
              ( 4 x. ( A x. C ) ) ) ) ) / ( 2 x. A ) ) ) $=
      ( c2 cmul co cdiv caddc cmin wceq 2cn oveq2i oveq1i cexp c4 csqrt cneg wo
      cfv mulcli 2ne0 mulne0i divcli addcli sqmuli binom2i sqcli divdiri div23i
      divcan3i oveq12i eqtr2i mulcomi divcan2i divassi cc cc0 wa pm3.2i divdiv1
      wcel wne mp3an eqtri 3eqtr2i addassi eqcomi pncan3oi df-neg eqtr4i negcli
      3eqtr3i addcomi sqdivi 4cn 4ne0 divmuldivi c1 dividi eqtr3i mulm1i neg1cn
      mulid2i mulassi 3eqtri 2t2e4 sqvali eqnetri negsubi subcli eqsqrtor ax-mp
      wb mpbi sqrtcl divmuli eqcom bitr3i subadd2i divneg eqeq2i 3bitri orbi12i
      ) KALMZDBXKNMZOMZLMZBKUAMZUBACLMZLMZPMZUCUFZQZXNXSUDZQZUEZDBUDZXSOMXKNMZQ
      ZDYDXSPMZXKNMZQZUEXNKUAMZXRQZYCYJXKKUAMZXMKUAMZLMYLXRYLNMZLMXRXKXMKARFUGZ
      DXLEBXKHYOKARFUHGUIZUJZUKZULYMYNYLLYMCUDZANMZXLKUAMZOMZUUAYTOMZYNYMDKUAMZ
      KDXLLMZLMZOMZUUAOMUUBDXLEYQUMUUGYTUUAOUUDBANMZDLMZOMZAUUDLMZBDLMZOMZANMZU
      UGYTUUNUUKANMZUULANMZOMUUJUUKUULAAUUDFDEUNZUGZBDHEUGZFGUOUUOUUDUUPUUIOUUD
      AUUQFGUQBDAHEFGUPURUSUUIUUFUUDOUUIDUUHLMZKUUTKNMZLMUUFUUHDBAHFGUJZEUTUUTK
      DUUHEUVBUGRUHVAUVAUUEKLUVADUUHKNMZLMUUEDUUHKEUVBRUHVBUVCXLDLUVCBAKLMZNMZX
      LBVCVHZAVCVHZAVDVIZVEKVCVHZKVDVIZVEUVCUVEQHUVGUVHFGVFUVIUVJRUHVFBAKVGVJUV
      DXKBNAKFRUTSVKSVKSVLSUUMYSANUUMUUKUULCOMOMZCPMZYSUVLUUMCOMZCPMUUMUVKUVMCP
      UVMUVKUUKUULCUURUUSIVMVNTUUMCUUKUULUURUUSUKIVOUSUVLVDCPMYSUVKVDCPJTCVPVQV
      KTVSTVKYTUUAYSACIVRZFGUJZXLYQUNVTUUCXOYLNMZXQUDZYLNMZOMXOUVQOMZYLNMYNUUAU
      VPYTUVROBXKHYOYPWAUBALMZUVTNMZYTLMZUVTYSLMZUVTALMZNMYTUVRUVTUVTYSAUBAWBFU
      GZUWEUVNFUBAWBFWCGUIZGWDWEYTLMUWBYTWEUWAYTLUWAWEUVTUWEUWFWFVNTYTUVOWJWGUW
      CUVQUWDYLNUWCWEUDZUVTCLMZLMZUWGXQLMUVQUWCUVTUWGLMZCLMZUWGUVTLMZCLMUWIUWCU
      VTUWGCLMZLMUWKYSUWMUVTLUWMYSCIWHVNSUVTUWGCUWEWIIWKVQUWJUWLCLUVTUWGUWEWIUT
      TUWGUVTCWIUWEIWKWLUWHXQUWGLUBACWBFIWKSXQUBXPWBACFIUGUGZWHWLUWDXKXKLMZYLUW
      DKXKLMZALMZXKKLMZALMUWOUWDKKLMZALMZALMUWQUVTUWTALUBUWSALUWSUBWMVNTTUWTUWP
      ALKKARRFWKTVKUWPUWRALKXKRYOUTTXKKAYORFWKWLXKYOWNZVQURVSURXOUVQYLBHUNZXQUW
      NVRXKYOUNZYLUWOVDUXAXKXKYOYOYPYPUIWOZUOUVSXRYLNXOXQUXBUWNWPTVLWLSXRYLXOXQ
      UXBUWNWQZUXCUXDVAWLXNVCVHZXRVCVHZVEYKYCWTUXFUXGXKXMYOYRUGUXEVFXNXRWRWSXAX
      TYFYBYIXTXMXSXKNMZQZDUXHXLPMZQZYFXTUXHXMQUXIXSXKXMUXGXSVCVHUXEXRXBWSZYOYR
      YPXCUXHXMXDXEUXIUXJDQUXKUXHXLDXSXKUXLYOYPUJZYQEXFUXJDXDXEUXJYEDUXJYDXKNMZ
      UXHOMZYEUXHXLUDZOMUXHUXNOMUXJUXOUXPUXNUXHOUVFXKVCVHXKVDVIUXPUXNQHYOYPBXKX
      GVJZSUXHXLUXMYQWPUXHUXNUXMYDXKBHVRZYOYPUJZVTVSYDXSXKUXRUXLYOYPUOVQXHXIYBX
      MYAXKNMZQZDUXTXLPMZQZYIYBUXTXMQUYAYAXKXMXSUXLVRZYOYRYPXCUXTXMXDXEUYAUYBDQ
      UYCUXTXLDYAXKUYDYOYPUJZYQEXFUYBDXDXEUYBYHDUYBUXNUXTOMZYDYAOMZXKNMYHUXTUXP
      OMUXTUXNOMUYBUYFUXPUXNUXTOUXQSUXTXLUYEYQWPUXTUXNUYEUXSVTVSYDYAXKUXRUYDYOY
      PUOUYGYGXKNYDXSUXRUXLWPTVLXHXIXJXA $.
  $}


$( (End of Filip Cernatescu's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Paul Chapman
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Propositional calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Prime numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finite set induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The ` # ` (set size) function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Real and complex numbers (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d k m $.
    $( Utility lemma to convert between ` m <_ k ` and ` k e. ( ZZ>= `` m ) `
       in limit theorems.  (Contributed by Paul Chapman, 10-Nov-2012.) $)
    climuzcnv $p |- ( m e. NN -> ( ( k e. ( ZZ>= ` m ) -> ph ) <->
                                   ( k e. NN -> ( m <_ k -> ph ) ) ) ) $=
      ( cv cn wcel cuz cfv wi cle wbr wa elnnuz uztrn sylan2b sylibr expcom nnz
      c1 cz eluzle a1i jcad biimpri syl3an1 syl3an2 3expib impbid imbi1d impexp
      w3a eluz2 syl6bb ) CDZEFZBDZUNGHFZAIUPEFZUNUPJKZLZAIURUSAIIUOUQUTAUOUQUTU
      OUQURUSUQUOURUQUOLUPSGHZFZURUOUQUNVAFVBUNMUNUPSNOUPMPQUQUSIUOUNUPUAUBUCUO
      URUSUQURUOUPTFZUSUQUPRUOUNTFZVCUSUQUNRUQVDVCUSUKUNUPULUDUEUFUGUHUIURUSAUJ
      UM $.
  $}

  ${
    $d k w x y z F $.  $d k w y z H $.  $d k z M $.  $d k w y z ph $.
    $d k G $.
    sinccvg.1 $e |- ( ph -> F : NN --> ( RR \ { 0 } ) ) $.
    sinccvg.2 $e |- ( ph -> F ~~> 0 ) $.
    sinccvg.3 $e |- G = ( x e. ( RR \ { 0 } ) |-> ( ( sin ` x ) / x ) ) $.
    sinccvg.4 $e |- H = ( x e. CC |-> ( 1 - ( ( x ^ 2 ) / 3 ) ) ) $.
    sinccvg.5 $e |- ( ph -> M e. NN ) $.
    sinccvg.6 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) ->
                      ( abs ` ( F ` k ) ) < 1 ) $.
    $( ` ( ( sin `` x ) / x ) ~~> 1 ` as (real) ` x ~~> 0 ` .  (Contributed by
       Paul Chapman, 10-Nov-2012.)  (Revised by Mario Carneiro,
       21-May-2014.) $)
    sinccvglem $p |- ( ph -> ( G o. F ) ~~> 1 ) $=
      ( c1 cc0 wcel cc co c3 cdiv vy vz vw ccom cvv cuz cfv eqid nnzd cli cv c2
      wfun cexp cmin funmpt2 cn cr csn cdif wf nnex sylancl cofunexg sylancr wa
      fex wne adantr eluznn sylan ffvelrnd eldifsn sylib simpld ax-1cn sqcl 3cn
      recnd 3ne0 divcl mp3an23 syl subcl fmpti ccncf crp cabs clt wbr wral wrex
      cmpt ccnfld ctopn ccn wtru ctopon cnfldtopon a1i 1cnd cnmptc divccn mp2an
      wi sqcn oveq1 cnmpt11 ctx subcn cnmpt12f trud cncfcn1 3eltr4i mp3an1 wceq
      cncfi fvco3 syldan climcn1lem 0cn oveq1d syl6eq fvmpt csin ovex eqtrd 1re
      oveq2d eqeltrd fveq2 oveq12d resincld simprd cle cmul eqbrtrd cneg ltled
      id sq0i div0i 1m0e1 1ex ax-mp syl6breq resqcld 3nn nndivre resubcl abscld
      redivcld subdird mulid2d caddc df-3 oveq2i cn0 2nn0 absresq syl5eq div23d
      expp1 eqtr2d cioc absrpcld rpgt0d ltle mpd cxr w3a wb 0xr elioc2 sin01bnd
      syl3anbrc ltmuldivd mpbid sinneg div2negd eqeq1d syl5ibrcom absord mpjaod
      breqtrd 3brtr4d mulid1d breqtrrd ltdivmuld mpbird eqbrtrrd climsqz ) ANCF
      DUDZEDUDZGUEGUFUGZUWOUHZAGLUIZAUWMOFUGZNUJAUAUBUCOCDUWMFGUEUWOUWPIAFUMDUE
      PZUWMUEPBQNBUKZULUNRZSTRZUORZFKUPAUQUROUSUTZDVAZUQUEPUWSHVBUQUXDUEDVGVCZF
      DUEVDVEUWQACUKZUWOPZVFZUXGDUGZUXIUXJURPZUXJOVHZUXIUXJUXDPZUXKUXLVFUXIUQUX
      DUXGDAUXEUXHHVIAGUQPUXHUXGUQPZLUXGGVJVKZVLZUXJUROVMVNZVOZVSZBQQUXCFKUWTQP
      ZNQPUXBQPZUXCQPVPUXTUXAQPZUYAUWTVQUYBSQPZSOVHZUYAVRVTUXASWAWBWCNUXBWDVEWE
      FQQWFRZPOQPZUAUKZWGPUCUKZOUORWHUGUBUKWIWJUYHFUGUWRUORWHUGUYGWIWJXEUCQWKUB
      WGWLBQUXCWMZWNWOUGZUYJWPRZFUYEUYIUYKPWQBNUXBUOUYJUYJUYJUYJQUYJQWRUGPWQUYJ
      UYJUHZWSWTZWQBNUYJUYJQQUYMUYMWQXAXBWQBUAUXAUYGSTRZUXBUYJUYJUYJQQUYMBQUXAW
      MUYKPWQBUYJUYLXFWTUYMUAQUYNWMUYKPZWQUYCUYDUYOVRVTUASUYJUYLXCXDWTUYGUXASTX
      GXHUOUYJUYJXIRUYJWPRPWQUYJUYLXJWTXKXLKUYJUYLXMXNUBUCQQOUYGFXQXOAUXHUXNUXG
      UWMUGZUXJFUGZXPZUXOAUXEUXNUYRHUQUXDUXGFDXRVKXSZXTUYFUWRNXPYABOUXCNQFUWTOX
      PZUXCNOUORNUYTUXBONUOUYTUXBOSTROUYTUXAOSTUWTUUAYBSVRVTUUBYCYIUUCYCKUUDYDU
      UEUUFAEUMUWSUWNUEPBUXDUWTYEUGZUWTTRZEJUPUXFEDUEVDVEUXIUYPNUXJULUNRZSTRZUO
      RZURUXIUYPUYQVUEUYSUXIUXJQPZUYQVUEXPUXSBUXJUXCVUEQFUWTUXJXPZUXBVUDNUOVUGU
      XAVUCSTUWTUXJULUNXGYBYIKNVUDUOYFYDWCYGZUXINURPZVUDURPZVUEURPYHUXIVUCURPSU
      QPVUJUXIUXJUXRUUGZUUHVUCSUUIVCZNVUDUUJVEZYJUXIUXGUWNUGZUXJYEUGZUXJTRZURUX
      IVUNUXJEUGZVUPAUXHUXNVUNVUQXPZUXOAUXEUXNVURHUQUXDUXGEDXRVKXSUXIUXMVUQVUPX
      PUXPBUXJVUBVUPUXDEVUGVUAVUOUWTUXJTUWTUXJYEYKVUGYTYLJVUOUXJTYFYDWCYGZUXIVU
      OUXJUXIUXJUXRYMZUXRUXIUXKUXLUXQYNZUULZYJUXIVUEVUPUYPVUNYOUXIVUEVUPVUMVVBU
      XIVUEUXJWHUGZYEUGZVVCTRZVUPWIUXIVUEVVCYPRZVVDWIWJVUEVVEWIWJUXIVVFVVCVVCSU
      NRZSTRZUORZVVDWIUXIVVFNVVCYPRZVUDVVCYPRZUORVVIUXINVUDVVCUXIXAUXIVUDVULVSU
      XIVVCUXIUXJUXSUUKZVSZUUMUXIVVJVVCVVKVVHUOUXIVVCVVMUUNUXIVVHVUCVVCYPRZSTRV
      VKUXIVVGVVNSTUXIVVGVVCULNUUORZUNRZVVNSVVOVVCUNUUPUUQUXIVVPVVCULUNRZVVCYPR
      ZVVNUXIVVCQPULUURPVVPVVRXPVVMUUSVVCULUVCVCUXIVVQVUCVVCYPUXIUXKVVQVUCXPUXR
      UXJUUTWCYBYGUVAYBUXIVUCVVCSUXIVUCVUKVSVVMUYCUXIVRWTUYDUXIVTWTUVBUVDYLYGUX
      IVVIVVDWIWJZVVDVVCWIWJZUXIVVCONUVERPZVVSVVTVFUXIVVCURPZOVVCWIWJZVVCNYOWJZ
      VWAVVLUXIVVCUXIUXJUXSVVAUVFZUVGUXIVVCNWIWJZVWDMUXIVWBVUIVWFVWDXEVVLYHVVCN
      UVHVCUVIOUVJPVUIVWAVWBVWCVWDUVKUVLUVMYHONVVCUVNXDUVPVVCUVOWCZVOYQUXIVUEVV
      DVVCVUMUXIVVCVVLYMZVWEUVQUVRUXIVVCUXJXPZVVEVUPXPZVVCUXJYRZXPZVWIVWJXEUXIV
      WIVVDVUOVVCUXJTVVCUXJYEYKVWIYTYLWTUXIVWJVWLVWKYEUGZVWKTRZVUPXPUXIVWNVUOYR
      ZVWKTRVUPUXIVWMVWOVWKTUXIVUFVWMVWOXPUXSUXJUVSWCYBUXIVUOUXJUXIVUOVUTVSUXSV
      VAUVTYGVWLVVEVWNVUPVWLVVDVWMVVCVWKTVVCVWKYEYKVWLYTYLUWAUWBUXIUXJUXRUWCUWD
      ZUWEYSVUHVUSUWFUXIVUNVUPNYOVUSUXIVUPNVVBVUIUXIYHWTZUXIVVEVUPNWIVWPUXIVVEN
      WIWJVVDVVCNYPRZWIWJUXIVVDVVCVWRWIUXIVVSVVTVWGYNUXIVVCVVMUWGUWHUXIVVDNVVCV
      WHVWQVWEUWIUWJUWKYSYQUWL $.
  $}

  ${
    $d j k n x F $.
    $( ` ( ( sin `` x ) / x ) ~~> 1 ` as (real) ` x ~~> 0 ` .  (Contributed by
       Paul Chapman, 10-Nov-2012.)  (Proof shortened by Mario Carneiro,
       21-May-2014.) $)
    sinccvg $p |- ( ( F : NN --> ( RR \ { 0 } ) /\ F ~~> 0 ) ->
      ( ( x e. ( RR \ { 0 } ) |-> ( ( sin ` x ) / x ) ) o. F ) ~~> 1 ) $=
      ( vk vj vn cn cc0 cli wbr wa cv cfv cabs c1 clt cdiv co cmpt wcel eqid cr
      csn cdif wf cuz wral csin ccom nnuz 1zzd crp 1rp eqidd simpr climi0 cc c2
      a1i cexp cmin simpll simplr simprl simprr weq fveq2 fveq2d breq1d rspccva
      c3 sylan sinccvglem rexlimddv ) FUAGUBUCZBUDZBGHIZJZCKZBLZMLZNOIZCDKZUELZ
      UFZAVNAKZUGLWEPQRZBUHNHIDFVQVSNDCBNFUIVQUJNUKSVQULURVQVRFSJVSUMVOVPUNUOVQ
      WBFSZWDJZJZAEBWFAUPNWEUQUSQVJPQUTQRZWBVOVPWHVAVOVPWHVBWFTWJTVQWGWDVCWIWDE
      KZWCSWKBLZMLZNOIZVQWGWDVDWAWNCWKWCCEVEZVTWMNOWOVSWLMVRWKBVFVGVHVIVKVLVM
      $.
  $}

  ${
    $d n y $.  $d k P $.  $d k n R $.
    circum.1 $e |- A = ( ( 2 x. _pi ) / n ) $.
    circum.2 $e |-
      P = ( n e. NN |-> ( ( 2 x. n ) x. ( R x. ( sin ` ( A / 2 ) ) ) ) ) $.
    circum.3 $e |- R e. RR $.
    $( The circumference of a circle of radius ` R ` , defined as the limit as
       ` n ~~> +oo ` of the perimeter of an inscribed n-sided isogons, is
       ` ( ( 2 x. _pi ) x. R ) ` .  (Contributed by Paul Chapman, 10-Nov-2012.)
       (Proof shortened by Mario Carneiro, 21-May-2014.) $)
    circum $p |- P ~~> ( ( 2 x. _pi ) x. R ) $=
      ( c2 cpi cmul co wtru cn cdiv csin cfv cr cc0 wcel cc vk vy c1 cli wbr cv
      cmpt cvv nnuz 1zzd csn cdif ccom wne wa crp pirp rpdivcl sylancr rprene0d
      nnrp eldifsn sylibr adantl eqidd wceq fveq2 id oveq12d wf eqid fmpti pire
      fmptco recni divcnv mp1i sinccvg eqbrtrrd 2re remulcli nnex mptex eqeltri
      a1i eldifi resincld eldifsni redivcld fco mp2an trud feq1i ffvelrni recnd
      mpbi nncn nnne0 divassd oveq1d simpr nndivre divcan3d eqtrd fveq2d rpne0d
      2ne0 divcan2d eqtr4d oveq2d oveq2 ovex fvmpt eqeltrrd mulassd mulcl mul4d
      mul32d 3eqtr2d syl5eq 3eqtr4d climmulc2 mulid1i breqtri ) BHIJKZCJKZUCJKZ
      YFUDBYGUDUELUCYFUADMIDUFZNKZOPZYINKZUGZBUCUHMUILUJLUBQRUKZULZUBUFZOPZYONK
      ZUGZDMYIUGZUMZYLUCUDLDUBMYNYIYQYKYSYRYHMSZYIYNSZLUUAYIQSYIRUNUOUUBUUAYIUU
      AIUPSZYHUPSYIUPSUQYHVAIYHURUSUTYIQRVBVCZVDLYSVELYRVEYOYIVFZYPYJYOYINYOYIO
      VGUUEVHVIVNZLMYNYSVJZYSRUDUEZYTUCUDUEDMYNYIYSYSVKUUDVLZITSZUUHLIVMVOZIDVP
      VQUBYSVRUSVSYFTSLYFYECHIVTVMWAGWAVOZWEBUHSLBDMHYHJKZCAHNKZOPZJKZJKZUGUHFD
      MUUQWBWCWDWELUAUFZMSZUOZUURYLPZUUSUVAQSLMQUURYLMQYTVJZMQYLVJYNQYRVJUUGUVB
      UBYNQYQYRYRVKYOYNSZYPYOUVCYOYOQYMWFZWGUVDYOQRWHWIVLUUIMYNQYRYSWJWKMQYTYLY
      TYLVFUUFWLWMWPWNVDWOZUUTHUURJKZCYEUURNKZHNKZOPZJKZJKZYFIUURNKZOPZUVLNKZJK
      ZUURBPZYFUVAJKUUTUVKUVFCUVLJKZUVNJKZJKUVFUVQJKZUVNJKUVOUUTUVJUVRUVFJUUTUV
      JCUVLUVNJKZJKUVRUUTUVIUVTCJUUTUVIUVMUVTUUTUVHUVLOUUTUVHHUVLJKZHNKUVLUUTUV
      GUWAHNUUTHIUURHTSZUUTHVTVOZWEZUUJUUTUUKWEZUUSUURTSZLUURWQVDZUUSUURRUNLUUR
      WRVDZWSWTUUTUVLHUUTUVLUUTIQSUUSUVLQSVMLUUSXAIUURXBUSZWOZUWDHRUNUUTXGWEXCX
      DXEUUTUVMUVLUUTUVMUUTUVLUWIWGWOUWJUUTUVLUUTUUCUURUPSZUVLUPSUQUUSUWKLUURVA
      VDIUURURUSXFXHXIXJUUTCUVLUVNCTSZUUTCGVOZWEZUWJUUTUVAUVNTUUSUVAUVNVFLDUURY
      KUVNMYLYHUURVFZYJUVMYIUVLNUWOYIUVLOYHUURINXKZXEUWPVIYLVKUVMUVLNXLXMVDZUVE
      XNZXOXIXJUUTUVFUVQUVNUUTUWBUWFUVFTSUWCUWGHUURXPUSUUTUWLUVLTSUVQTSUWMUWJCU
      VLXPUSUWRXOUUTUVSYFUVNJUUTUVSHCJKZUURUVLJKZJKZYFUUTHUURCUVLUWDUWGUWNUWJXQ
      UUTUXAUWSIJKYFUUTUWTIUWSJUUTIUURUWEUWGUWHXHXJUUTHCIUWDUWNUWEXRXDXDWTXSUUS
      UVPUVKVFLDUURUUQUVKMBUWOUUMUVFUUPUVJJYHUURHJXKUWOUUOUVICJUWOUUNUVHOUWOAUV
      GHNUWOAYEYHNKUVGEYHUURYENXKXTWTXEXJVIFUVFUVJJXLXMVDUUTUVAUVNYFJUWQXJYAYBW
      LYFUULYCYD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Miscellaneous theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Membership in a curtailed finite sequence of integers.  (Contributed by
     Paul Chapman, 17-Nov-2012.) $)
  elfzm12 $p |- ( N e. NN ->
                  ( M e. ( 1 ... ( N - 1 ) ) -> M e. ( 1 ... N ) ) ) $=
    ( cn wcel c1 cmin co cfz cz cuz cfv wss nnz cle wbr zre lem1d peano2zm eluz
    wb mpancom mpbird fzss2 3syl sseld ) BCDZEBEFGZHGZEBHGZAUFBIDZBUGJKDZUHUILB
    MUJUKUGBNOZUJBBPQUGIDUJUKULTBRUGBSUAUBUGEBUCUDUE $.

  ${
    $d F k $.  $d N k $.
    nn0seqcvg.1 $e |- F : NN0 --> NN0 $.
    nn0seqcvg.2 $e |- N = ( F ` 0 ) $.
    nn0seqcvg.3 $e |- ( k e. NN0 -> ( ( F ` ( k + 1 ) ) =/= 0 ->
                                      ( F ` ( k + 1 ) ) < ( F ` k ) ) ) $.
    $( A strictly-decreasing nonnegative integer sequence with initial term
       ` N ` reaches zero by the ` N ` th term.  Inference version.
       (Contributed by Paul Chapman, 31-Mar-2011.) $)
    nn0seqcvg $p |- ( F ` N ) = 0 $=
      ( c1 wceq cfv cc0 eqid cn0 wf a1i cv wcel caddc co wne clt wbr nn0seqcvgd
      wi adantl ax-mp ) GGHZCBIJHGKUFABCLLBMUFDNCJBIHUFENAOZLPUGGQRBIZJSUHUGBIT
      UAUCUFFUDUBUE $.
  $}

  ${
    $( Division of both sides of 'less than or equal to' by a nonnegative
       number.  (Contributed by Paul Chapman, 7-Sep-2007.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    lediv2aALT $p |- ( ( ( A e. RR /\ 0 < A ) /\ ( B e. RR /\ 0 < B ) /\
                       ( C e. RR /\ 0 <_ C ) ) ->
                     ( A <_ B -> ( C / B ) <_ ( C / A ) ) ) $=
      ( cr wcel cc0 clt wbr wa cle w3a c1 cdiv co anim12i ancoms cc recn adantr
      syl wi wne gt0ne0 rereccl syldan 3adant3 simp3 df-3an sylanbrc lemul2a ex
      cmul lerec wceq jca 3anass sylibr divrec 3adant1 3adant2 breq12d 3imtr4d
      wb ) ADEZFAGHZIZBDEZFBGHZIZCDEZFCJHZIZKZLBMNZLAMNZJHZCVNULNZCVOULNZJHZABJ
      HZCBMNZCAMNZJHVMVNDEZVODEZVLKZVPVSUAVMWCWDIZVLWEVFVIWFVLVIVFWFVIWCVFWDVGV
      HBFUBZWCBUCZBUDUEVDVEAFUBZWDAUCZAUDUEOPUFVFVIVLUGWCWDVLUHUIWEVPVSVNVOCUJU
      KTVFVIVTVPVCVLABUMUFVMWAVQWBVRJVIVLWAVQUNZVFVLVIWKVLVIIZCQEZBQEZWGKZWKWLW
      MWNWGIZIWOVLWMVIWPVJWMVKCRSZVIWNWGVGWNVHBRSWHUOOWMWNWGUPUQCBURTPUSVFVLWBV
      RUNZVIVLVFWRVLVFIZWMAQEZWIKZWRWSWMWTWIIZIXAVLWMVFXBWQVFWTWIVDWTVEARSWJUOO
      WMWTWIUPUQCAURTPUTVAVB $.
  $}

  ${
    abs2sqlei.1 $e |- A e. CC $.
    abs2sqlei.2 $e |- B e. CC $.
    $( The absolute values of two numbers compare as their squares.
       (Contributed by Paul Chapman, 7-Sep-2007.) $)
    abs2sqlei $p |- ( ( abs ` A ) <_ ( abs ` B ) <->
                     ( ( abs ` A ) ^ 2 ) <_ ( ( abs ` B ) ^ 2 ) ) $=
      ( cc0 cabs cfv cle wbr c2 cexp co wb absge0i abscli le2sqi mp2an ) EAFGZH
      IEBFGZHIRSHIRJKLSJKLHIMACNBDNRSACOBDOPQ $.
  $}

  ${
    abs2sqlti.1 $e |- A e. CC $.
    abs2sqlti.2 $e |- B e. CC $.
    $( The absolute values of two numbers compare as their squares.
       (Contributed by Paul Chapman, 7-Sep-2007.) $)
    abs2sqlti $p |- ( ( abs ` A ) < ( abs ` B ) <->
                     ( ( abs ` A ) ^ 2 ) < ( ( abs ` B ) ^ 2 ) ) $=
      ( cc0 cabs cfv cle wbr clt c2 cexp co wb absge0i abscli lt2sqi mp2an ) EA
      FGZHIEBFGZHISTJISKLMTKLMJINACOBDOSTACPBDPQR $.
  $}

  ${
    $( The absolute values of two numbers compare as their squares.
       (Contributed by Paul Chapman, 7-Sep-2007.) $)
    abs2sqle $p |- ( ( A e. CC /\ B e. CC ) ->
                      ( ( abs ` A ) <_ ( abs ` B ) <->
                        ( ( abs ` A ) ^ 2 ) <_ ( ( abs ` B ) ^ 2 ) ) ) $=
      ( cc wcel cabs cfv cle wbr c2 cexp co wb cc0 cif wceq fveq2 breq1d breq2d
      bibi12d 0cn oveq1d oveq1 syl elimel abs2sqlei dedth2h ) ACDZBCDZAEFZBEFZG
      HZUIIJKZUJIJKZGHZLUGAMNZEFZUJGHZUPIJKZUMGHZLUPUHBMNZEFZGHZURVAIJKZGHZLABM
      MAUOOZUKUQUNUSVEUIUPUJGAUOEPZQVEULURUMGVEUIUPIJVFUAQSBUTOZUQVBUSVDVGUJVAU
      PGBUTEPZRVGUJVAOZUSVDLVHVIUMVCURGUJVAIJUBRUCSUOUTAMCTUDBMCTUDUEUF $.
  $}

  ${
    $( The absolute values of two numbers compare as their squares.
       (Contributed by Paul Chapman, 7-Sep-2007.) $)
    abs2sqlt $p |- ( ( A e. CC /\ B e. CC ) ->
                      ( ( abs ` A ) < ( abs ` B ) <->
                        ( ( abs ` A ) ^ 2 ) < ( ( abs ` B ) ^ 2 ) ) ) $=
      ( cc wcel cabs cfv clt wbr c2 cexp co wb cc0 cif wceq fveq2 breq1d breq2d
      bibi12d 0cn oveq1d oveq1 syl elimel abs2sqlti dedth2h ) ACDZBCDZAEFZBEFZG
      HZUIIJKZUJIJKZGHZLUGAMNZEFZUJGHZUPIJKZUMGHZLUPUHBMNZEFZGHZURVAIJKZGHZLABM
      MAUOOZUKUQUNUSVEUIUPUJGAUOEPZQVEULURUMGVEUIUPIJVFUAQSBUTOZUQVBUSVDVGUJVAU
      PGBUTEPZRVGUJVAOZUSVDLVHVIUMVCURGUJVAIJUBRUCSUOUTAMCTUDBMCTUDUEUF $.
  $}

  ${
    abs2difi.1 $e |- A e. CC $.
    abs2difi.2 $e |- B e. CC $.
    $( Difference of absolute values.  (Contributed by Paul Chapman,
       7-Sep-2007.) $)
    abs2difi $p |- ( ( abs ` A ) - ( abs ` B ) ) <_ ( abs ` ( A - B ) ) $=
      ( cc wcel cabs cfv cmin co cle wbr abs2dif mp2an ) AEFBEFAGHBGHIJABIJGHKL
      CDABMN $.
  $}

  ${
    abs2difabsi.1 $e |- A e. CC $.
    abs2difabsi.2 $e |- B e. CC $.
    $( Absolute value of difference of absolute values.  (Contributed by Paul
       Chapman, 7-Sep-2007.) $)
    abs2difabsi $p |- ( abs ` ( ( abs ` A ) - ( abs ` B ) ) ) <_
                     ( abs ` ( A - B ) ) $=
      ( cc wcel cabs cfv cmin co cle wbr abs2difabs mp2an ) AEFBEFAGHBGHIJGHABI
      JGHKLCDABMN $.
  $}

$( (End of Paul Chapman's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Drahflow
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  This is the mathbox of Jens-Wolfhard Schicke-Uffmann, reachable at
  drahflow@gmx.de / drahflow.name

$)

$( (End of Drahflow's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Scott Fenton
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  ZFC Axioms in primitive form
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( ~ ax-ext without distinct variable conditions or defined symbols.
     (Contributed by Scott Fenton, 13-Oct-2010.) $)
  axextprim $p |- -. A. x -. ( ( x e. y -> x e. z ) ->
               ( ( x e. z -> x e. y ) -> y = z ) ) $=
    ( wel wb weq wi wex wn wal axextnd wa dfbi2 imbi1i impexp bitri exbii df-ex
    mpbi ) ABDZACDZEZBCFZGZAHZTUAGZUATGZUCGGZIAJIZABCKUEUHAHUIUDUHAUDUFUGLZUCGU
    HUBUJUCTUAMNUFUGUCOPQUHARPS $.

  $( ~ ax-rep without distinct variable conditions or defined symbols.
     (Contributed by Scott Fenton, 13-Oct-2010.) $)
  axrepprim $p |- -. A. x -. ( -. A. y -. A. z ( ph -> z = y ) ->
               A. z -. ( ( A. y z e. x -> -. A. x ( A. z x e. y ->
               -. A. y ph ) ) -> -. ( -. A. x ( A. z x e. y -> -. A. y ph )
               -> A. y z e. x ) ) ) $=
    ( weq wi wal wex wel wa wb wn axrepnd df-ex df-an exbii exnal bitri bibi2i
    dfbi1 albii imbi12i mpbi ) ADCEFDGZCHZDBICGZBCIDGZACGZJZBHZKZDGZFZBHZUDLCGL
    ZUFUGUHLFZBGLZFUQUFFLFLZDGZFZLBGLZABCDMUNUTBHVAUMUTBUEUOULUSUDCNUKURDUKUFUQ
    KURUJUQUFUJUPLZBHUQUIVBBUGUHOPUPBQRSUFUQTRUAUBPUTBNRUC $.

  $( ~ ax-un without distinct variable conditions or defined symbols.
     (Contributed by Scott Fenton, 13-Oct-2010.) $)
  axunprim $p |- -. A. x -. A. y ( -. A. x ( y e. x -> -. x e. z )
               -> y e. x ) $=
    ( wel wa wex wi wal axunnd df-an exbii exnal bitri imbi1i albii df-ex mpbi
    wn ) BADZACDZEZAFZSGZBHZAFZSTRGZAHRZSGZBHZRAHRZABCIUEUIAFUJUDUIAUCUHBUBUGSU
    BUFRZAFUGUAUKASTJKUFALMNOKUIAPMQ $.

  $( ~ ax-pow without distinct variable conditions or defined symbols.
     (Contributed by Scott Fenton, 13-Oct-2010.) $)
  axpowprim $p |- ( A. x -. A. y ( A. x ( -. A. z -. x e. y -> A. y x e. z )
               -> y e. x ) -> x = y ) $=
    ( weq wel wn wal wi wex axpownd df-ex imbi1i albii exbii bitri sylib con4i
    ) ABDZABEZFCGFZACEBGZHZAGZBAEZHZBGZFAGZRFSCIZUAHZAGZUDHZBGZAIZUGFZABCJUMUFA
    IUNULUFAUKUEBUJUCUDUIUBAUHTUASCKLMLMNUFAKOPQ $.

  $( ~ ax-reg without distinct variable conditions or defined symbols.
     (Contributed by Scott Fenton, 13-Oct-2010.) $)
  axregprim $p |- ( x e. y ->
               -. A. x ( x e. y -> -. A. z ( z e. x -> -. z e. y ) ) ) $=
    ( wel wn wi wal wa wex axregnd df-an exbii exnal bitri sylib ) ABDZPCADCBDE
    FCGZHZAIZPQEFZAGEZABCJSTEZAIUARUBAPQKLTAMNO $.

  $( ~ ax-inf without distinct variable conditions or defined symbols.
     (New usage is discouraged.)  (Contributed by Scott Fenton,
     13-Oct-2010.) $)
  axinfprim $p |- -. A. x -. ( y e. z -> -. ( y e. x ->
               -. A. y ( y e. x -> -. A. z ( y e. z -> -. z e. x ) ) ) ) $=
    ( wel wa wex wi wn axinfnd df-an exbii exnal bitri imbi2i albii anbi2i mpbi
    wal df-ex ) BCDZBADZUATCADZEZCFZGZBRZEZGZAFZTUAUATUBHGZCRHZGZBRZHGHZGZHARHZ
    ABCIUIUOAFUPUHUOAUGUNTUGUAUMEUNUFUMUAUEULBUDUKUAUDUJHZCFUKUCUQCTUBJKUJCLMNO
    PUAUMJMNKUOASMQ $.

  $( ~ ax-ac without distinct variable conditions or defined symbols.
     (New usage is discouraged.)  (Contributed by Scott Fenton,
     26-Oct-2010.) $)
  axacprim $p |- -. A. x -. A. y A. z ( A. x -. ( y e. z -> -. z e. w ) ->
                  -. A. w -. A. y -. ( ( -. A. w ( y e. z -> ( z e. w ->
                  ( y e. w -> -. w e. x ) ) ) -> y = w ) -> -. ( y = w ->
                  -. A. w ( y e. z -> ( z e. w -> ( y e. w -> -. w e. x )
                  ) ) ) ) ) $=
    ( wel wa wal wex wb wi wn axacnd df-an albii annim anbi2i exbii bitri df-ex
    weq anass pm4.63 bitr3i 3bitr2i exnal bibi1i dfbi1 imbi12i 2albii mpbi ) BC
    EZCDEZFZAGZUMBDEZDAEZFZFZDHZBDTZIZBGZDHZJZCGBGZAHZUKULKJKZAGZUKULUOUPKJZJZJ
    ZDGKZUTJUTVLJKJKZBGZKDGKZJZCGBGZKAGKZABCDLVFVQAHVRVEVQAVDVPBCUNVHVCVOUMVGAU
    KULMNVCVNDHVOVBVNDVAVMBVAVLUTIVMUSVLUTUSVKKZDHVLURVSDURUKULUQFZFUKVJKZFVSUK
    ULUQUAWAVTUKWAULVIKZFVTULVIOWBUQULUOUPUBPUCPUKVJOUDQVKDUERUFVLUTUGRNQVNDSRU
    HUIQVQASRUJ $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Untangled classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.
    $( We call a class "untanged" if all its members are not members of
       themselves.  The term originates from Isbell (see citation in ~ dfon2 ).
       Using this concept, we can avoid a lot of the uses of the Axiom of
       Regularity.  Here, we prove a series of properties of untanged classes.
       First, we prove that an untangled class is not a member of itself.
       (Contributed by Scott Fenton, 28-Feb-2011.) $)
    untelirr $p |- ( A. x e. A -. x e. x -> -. A e. A ) $=
      ( wel wn wral wcel cv wceq eleq1 eleq2 bitrd notbid rspccv pm2.01d ) AACZ
      DZABEBBFZPQDABBAGZBHZOQSOBRFQRBRIRBBJKLMN $.
  $}

  ${
    $d x y A $.
    $( The union of a class is untangled iff all its members are untangled.
       (Contributed by Scott Fenton, 28-Feb-2011.) $)
    untuni $p |- ( A. x e. U. A -. x e. x
        <-> A. y e. A A. x e. y -. x e. x ) $=
      ( cv cuni wcel wel wn wal wral wrex r19.23v albii ralcom4 eluni2 3bitr4ri
      wi imbi1i df-ral ralbii 3bitr4i ) ADZCEZFZAAGHZQZAIZABGZUEQZAIZBCJZUEAUCJ
      UEABDZJZBCJUIBCJZAIUHBCKZUEQZAIUKUGUNUPAUHUEBCLMUIBACNUFUPAUDUOUEBUBCORMP
      UEAUCSUMUJBCUEAULSTUA $.
  $}

  ${
    $d x A $.  $d x y $.
    untsucf.1 $e |- F/_ y A $.
    $( If a class is untangled, then so is its successor.  (Contributed by
       Scott Fenton, 28-Feb-2011.)  (Revised by Mario Carneiro,
       11-Dec-2016.) $)
    untsucf $p |- ( A. x e. A -. x e. x -> A. y e. suc A -. y e. y ) $=
      ( wel wn wral csuc nfral cv wcel wceq wo elsuc elequ1 elequ2 bitrd notbid
      nfv vex rspccv untelirr eleq1 eleq2 syl5ibrcom jaod syl5bi ralrimi ) AAEZ
      FZACGZBBEZFZBCHZUJBACDUJBSIBJZUNKUOCKZUOCLZMUKUMUOCBTNUKUPUMUQUJUMAUOCAJU
      OLZUIULURUIBAEULABAOABBPQRUAUKUMUQCCKZFACUBUQULUSUQULCUOKUSUOCUOUCUOCCUDQ
      RUEUFUGUH $.
  $}

  $( The null set is untangled.  (Contributed by Scott Fenton, 10-Mar-2011.)
     (Proof shortened by Andrew Salmon, 27-Aug-2011.) $)
  unt0 $p |- A. x e. (/) -. x e. x $=
    ( wel wn ral0 ) AABCAD $.

  ${
    $d x y A $.
    $( If there is an untangled element of a class, then the intersection of
       the class is untangled.  (Contributed by Scott Fenton, 1-Mar-2011.) $)
    untint $p |- ( E. x e. A A. y e. x -. y e. y ->
                    A. y e. |^| A -. y e. y ) $=
      ( wel wn cv wral cint wcel wss wi intss1 ssralv syl rexlimiv ) BBDEZBAFZG
      ZPBCHZGZACQCISQJRTKQCLPBSQMNO $.
  $}

  ${
    $d x A $.
    $( If ` A ` is well-founded by ` _E ` , then it is untangled.  (Contributed
       by Scott Fenton, 1-Mar-2011.) $)
    efrunt $p |- ( _E Fr A -> A. x e. A -. x e. x ) $=
      ( cep wfr cv wcel wn wa wbr frirr epel sylnib ralrimiva ) BCDZAEZOFZGABNO
      BFHOOCIPBOCJAAKLM $.
  $}

  ${
    $d x y A $.
    $( A transitive class is untangled iff its elements are.  (Contributed by
       Scott Fenton, 7-Mar-2011.) $)
    untangtr $p |- ( Tr A ->
                   ( A. x e. A -. x e. x <->
                     A. x e. A A. y e. x -. y e. y ) ) $=
      ( wtr wel wn wral cv cuni wss df-tr ssralv sylbi weq elequ1 elequ2 notbid
      wi bitrd cbvralv untuni bitri syl6ib untelirr ralimi impbid1 ) CDZAAEZFZA
      CGZBBEZFZBAHZGZACGZUGUJUIACIZGZUOUGUPCJUJUQRCKUIAUPCLMUQULBUPGUOUIULABUPA
      BNZUHUKURUHBAEUKABAOABBPSQTBACUAUBUCUNUIACBUMUDUEUF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Extra propositional calculus theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Partial elimination of a triple disjunction by denial of a disjunct.
     (Contributed by Scott Fenton, 26-Mar-2011.)  (Proof shortened by Andrew
     Salmon, 25-May-2011.) $)
  3orel2 $p |- ( -. ps -> ( ( ph \/ ps \/ ch ) -> ( ph \/ ch ) ) ) $=
    ( w3o wn wo 3orrot 3orel1 orcom syl6ib syl5bi ) ABCDBCADZBEZACFZABCGMLCAFNB
    CAHCAIJK $.

  $( Partial elimination of a triple disjunction by denial of a disjunct.
     (Contributed by Scott Fenton, 26-Mar-2011.) $)
  3orel3 $p |- ( -. ch -> ( ( ph \/ ps \/ ch ) -> ( ph \/ ps ) ) ) $=
    ( w3o wo wn df-3or orel2 syl5bi ) ABCDABEZCECFJABCGCJHI $.

  ${
    3pm3.2ni.1 $e |- -. ph $.
    3pm3.2ni.2 $e |- -. ps $.
    3pm3.2ni.3 $e |- -. ch $.
    $( Triple negated disjunction introduction.  (Contributed by Scott Fenton,
       20-Apr-2011.) $)
    3pm3.2ni $p |- -. ( ph \/ ps \/ ch ) $=
      ( w3o wo pm3.2ni df-3or mtbir ) ABCGABHZCHLCABDEIFIABCJK $.
  $}

  ${
    3jaodd.1 $e |- ( ph -> ( ps -> ( ch -> et ) ) ) $.
    3jaodd.2 $e |- ( ph -> ( ps -> ( th -> et ) ) ) $.
    3jaodd.3 $e |- ( ph -> ( ps -> ( ta -> et ) ) ) $.
    $( Double deduction form of ~ 3jaoi .  (Contributed by Scott Fenton,
       20-Apr-2011.) $)
    3jaodd $p |- ( ph -> ( ps -> ( ( ch \/ th \/ ta ) -> et ) ) ) $=
      ( w3o wi com3r 3jaoi com3l ) CDEJABFCABFKKDEABCFGLABDFHLABEFILMN $.
  $}

  $( Closed form of ~ 3ori .  (Contributed by Scott Fenton, 20-Apr-2011.) $)
  3orit $p |- ( ( ph \/ ps \/ ch ) <-> ( ( -. ph /\ -. ps ) -> ch ) ) $=
    ( w3o wo wn wi wa df-3or df-or ioran imbi1i 3bitri ) ABCDABEZCENFZCGAFBFHZC
    GABCINCJOPCABKLM $.

  $( A biconditional in the antecedent is the same as two implications.
     (Contributed by Scott Fenton, 12-Dec-2010.) $)
  biimpexp $p |- ( ( ( ph <-> ps ) -> ch )
                   <-> ( ( ph -> ps ) -> ( ( ps -> ph ) -> ch ) ) ) $=
    ( wb wi wa dfbi2 imbi1i impexp bitri ) ABDZCEABEZBAEZFZCELMCEEKNCABGHLMCIJ
    $.

  $( Elimination of two disjuncts in a triple disjunction.  (Contributed by
     Scott Fenton, 9-Jun-2011.) $)
  3orel13 $p |- ( ( -. ph /\ -. ch ) -> ( ( ph \/ ps \/ ch ) -> ps ) ) $=
    ( wn w3o wo 3orel3 orel1 sylan9r ) CDABCEABFADBABCGABHI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Misc. Useful Theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Two classes are inequal iff their intersection is a proper subset of one
     of them.  (Contributed by Scott Fenton, 23-Feb-2011.) $)
  nepss $p |- ( A =/= B <-> ( ( A i^i B ) C. A \/ ( A i^i B ) C. B ) ) $=
    ( wne cin wss wa wo wpss wn wceq nne neeq1 biimprcd orrd jctl inidm necon3i
    syl5bi adantl df-pss inss1 inss2 orim12i ineq2 syl5reqr ineq1 syl6eq impbii
    syl jaoi orbi12i bitr4i ) ABCZABDZAEZUNACZFZUNBEZUNBCZFZGZUNAHZUNBHZGUMVAUM
    UPUSGVAUMUPUSUPIUNAJZUMUSUNAKVDUSUMUNABLMRNUPUQUSUTUPUOABUAOUSURABUBOUCUIUQ
    UMUTUPUMUOABUNAABJZAAADUNAPABAUDUEQSUSUMURABUNBVEUNBBDBABBUFBPUGQSUJUHVBUQV
    CUTUNATUNBTUKUL $.

  ${
    3ccased.1 $e |- ( ph -> ( ( ch /\ et ) -> ps ) ) $.
    3ccased.2 $e |- ( ph -> ( ( ch /\ ze ) -> ps ) ) $.
    3ccased.3 $e |- ( ph -> ( ( ch /\ si ) -> ps ) ) $.
    3ccased.4 $e |- ( ph -> ( ( th /\ et ) -> ps ) ) $.
    3ccased.5 $e |- ( ph -> ( ( th /\ ze ) -> ps ) ) $.
    3ccased.6 $e |- ( ph -> ( ( th /\ si ) -> ps ) ) $.
    3ccased.7 $e |- ( ph -> ( ( ta /\ et ) -> ps ) ) $.
    3ccased.8 $e |- ( ph -> ( ( ta /\ ze ) -> ps ) ) $.
    3ccased.9 $e |- ( ph -> ( ( ta /\ si ) -> ps ) ) $.
    $( Triple disjunction form of ~ ccased .  (Contributed by Scott Fenton,
       27-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    3ccased $p |- ( ph -> ( ( ( ch \/ th \/ ta ) /\ ( et \/ ze \/ si ) ) ->
                     ps ) ) $=
      ( wa com12 3jaodan w3o wi 3jaoian ) CDEUAFGHUAZRABCUDABUBZDECFUEGHACFRBIS
      ACGRBJSACHRBKSTDFUEGHADFRBLSADGRBMSADHRBNSTEFUEGHAEFRBOSAEGRBPSAEHRBQSTUC
      S $.
  $}

  ${
    $d R x y z $.  $d A x y z $.
    $( Expansion of the definition of a strict order.  (Contributed by Scott
       Fenton, 6-Jun-2016.) $)
    dfso3 $p |- ( R Or A <->
       A. x e. A A. y e. A A. z e. A
       ( -. x R x /\
         ( ( x R y /\ y R z ) -> x R z ) /\
         ( x R y \/ x = y \/ y R x ) ) ) $=
      ( cv wbr wn wa wi weq w3o wral w3a wor wcel c0 wne wb ralbii r19.27zv syl
      ne0i ralbiia df-3an 2ralbii df-po anbi1i df-so r19.26-2 3bitr4i 3bitr4ri
      wpo ) AFZUNEGHZUNBFZEGZUPCFZEGIUNUREGJZIZUQABKUPUNEGLZIZCDMZBDMZADMUTCDMZ
      VAIZBDMZADMZUOUSVANZCDMZBDMADMDEOZVDVGADVCVFBDUPDPDQRVCVFSDUPUCUTVACDUAUB
      UDTVJVCABDDVIVBCDUOUSVAUETUFDEUMZVABDMADMZIVEBDMADMZVMIVKVHVLVNVMABCDEUGU
      HABDEUIVEVAABDDUJUKUL $.
  $}

  $( A binary relation involving unordered triplets.  (Contributed by Scott
     Fenton, 7-Jun-2016.) $)
  brtpid1 $p |- A { <. A , B >. , C , D } B $=
    ( cop ctp wbr wcel opex tpid1 df-br mpbir ) ABABEZCDFZGMNHMCDABIJABNKL $.

  $( A binary relation involving unordered triplets.  (Contributed by Scott
     Fenton, 7-Jun-2016.) $)
  brtpid2 $p |- A { C , <. A , B >. , D } B $=
    ( cop ctp wbr wcel opex tpid2 df-br mpbir ) ABCABEZDFZGMNHCMDABIJABNKL $.

  $( A binary relation involving unordered triplets.  (Contributed by Scott
     Fenton, 7-Jun-2016.) $)
  brtpid3 $p |- A { C , D , <. A , B >. } B $=
    ( cop ctp wbr wcel opex tpid3 df-br mpbir ) ABCDABEZFZGMNHCDMABIJABNKL $.

  ${
    $d A x $.  $d B x $.  $d ps x $.
    ceqsrexv2.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Alternate elimitation of a restricted existential quantifier, using
       implicit substitution.  (Contributed by Scott Fenton, 5-Sep-2017.) $)
    ceqsrexv2 $p |- ( E. x e. B ( x = A /\ ph ) <-> ( A e. B /\ ps ) ) $=
      ( ceqsrexbv ) ABCDEFG $.
  $}

  ${
    $d x V $.  $d A y $.  $d ps y $.  $d x y $.
    iota5f.1 $e |- F/ x ph $.
    iota5f.2 $e |- F/_ x A $.
    iota5f.3 $e |- ( ( ph /\ A e. V ) -> ( ps <-> x = A ) ) $.
    $( A method for computing iota.  (Contributed by Scott Fenton,
       13-Dec-2017.) $)
    iota5f $p |- ( ( ph /\ A e. V ) -> ( iota x ps ) = A ) $=
      ( vy wcel wa cv wceq wb wal cio nfel1 nfan wi eqeq2 alrimi bibi2d imbi12d
      weq nfeq2 albid iotaval vtoclg adantl mpd ) ADEJZKZBCLZDMZNZCOZBCPZDMZULU
      OCAUKCFCDEGQRHUAUKUPURSZABCIUDZNZCOZUQILZMZSUSIDEVCDMZVBUPVDURVEVAUOCCVCD
      GUEVEUTUNBVCDUMTUBUFVCDUQTUCBCIUGUHUIUJ $.
  $}

  ${
    $d x A $.  $d x B $.  $d ps x $.
    ceqsralv2.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Alternate elimination of a restricted universal quantifier, using
       implicit substitution.  (Contributed by Scott Fenton, 7-Dec-2020.) $)
    ceqsralv2 $p |- ( A. x e. B ( x = A -> ph ) <-> ( A e. B -> ps ) ) $=
      ( cv wceq wi wral wcel wn wa wrex notbid ceqsrexv2 rexanali annim 3bitr3i
      con4bii ) CGDHZAICEJZDEKZBIZUAALZMCENUCBLZMUBLUDLUEUFCDEUAABFOPUAACEQUCBR
      ST $.
  $}

  ${
    $( A class is ordinal iff it is a subclass of ` On ` and transitive.
       (Contributed by Scott Fenton, 21-Nov-2021.) $)
    dford5 $p |- ( Ord A <-> ( A C_ On /\ Tr A ) ) $=
      ( word con0 wss wtr wa ordsson jca cep wwe epweon wess mpi df-ord biimpri
      ordtr ancoms sylan impbii ) ABZACDZAEZFTUAUBAGAPHUAAIJZUBTUACIJUCKACILMUB
      UCTTUBUCFANOQRS $.
  $}

  $( Closed form of ~ ja .  Proved using the completeness script.
     (Proof modification is discouraged.)  (Contributed by Scott Fenton,
     13-Dec-2021.) $)
  jath $p |- ( ( -. ph -> ch ) -> ( ( ps -> ch ) ->
  ( ( ph -> ps ) -> ch ) ) ) $=
    ( wn wi mth8 pm2.21 imim2 ax-mp ax-1 pm2.61 ) ADZLCEZBCEZABEZCEZEZEZEZRLCDZ
    REZEZSLTMDZEZEZUBLCFUDUAEZUEUBEUCREUFMQGUCRTHIUDUALHIIUAREZUBSECREZUGCQEZUH
    CPEZUICOJPQEZUJUIEPNJZPQCHIIQREZUIUHEQMJZQRCHIICRKIZUARLHIIAREZSREABDZREZEZ
    UPAUQQEZEZUSAUQPEZEZVAAUQODZEZEZVCABFVEVBEZVFVCEVDPEVGOCGVDPUQHIVEVBAHIIVBU
    TEZVCVAEUKVHULPQUQHIVBUTAHIIUTUREZVAUSEUMVIUNQRUQHIUTURAHIIURREZUSUPEBREZVJ
    BUAEZVKBTQEZEZVLBTNDZEZEZVNBCFVPVMEZVQVNEVOQEVRNPGVOQTHIVPVMBHIIVMUAEZVNVLE
    UMVSUNQRTHIVMUABHIIUGVLVKEUOUARBHIIBRKIURRAHIIARKII $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Properties of real and complex numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    sqdivzi.1 $e |- A e. CC $.
    sqdivzi.2 $e |- B e. CC $.
    $( Distribution of square over division.  (Contributed by Scott Fenton,
       7-Jun-2013.) $)
    sqdivzi $p |- ( B =/= 0 ->
            ( ( A / B ) ^ 2 ) = ( ( A ^ 2 ) / ( B ^ 2 ) ) ) $=
      ( cc0 wne cdiv co c2 cexp c1 cif oveq2 oveq1d oveq1 oveq2d eqeq12d ax-1cn
      wceq cc keepel elimne0 sqdivi dedth ) BEFZABGHZIJHZAIJHZBIJHZGHZSAUEBKLZG
      HZIJHZUHUKIJHZGHZSBKBUKSZUGUMUJUOUPUFULIJBUKAGMNUPUIUNUHGBUKIJOPQAUKCUEBK
      TDRUABUBUCUD $.
  $}

  $( Bring a term in a subtraction into the numerator.  (Contributed by Scott
     Fenton, 3-Jul-2013.) $)
  subdivcomb1 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) ) ->
     ( ( ( C x. A ) - B ) / C ) = ( A - ( B / C ) ) ) $=
    ( cc wcel cc0 wne wa cmul co cmin cdiv wceq simp3l simp1 divsubdir syld3an1
    w3a mulcld divcan3 3expb 3adant2 oveq1d eqtrd ) ADEZBDEZCDEZCFGZHZRZCAIJZBK
    JCLJZUKCLJZBCLJZKJZAUNKJUKDEUFUEUIULUOMUJCAUEUFUGUHNUEUFUIOSUKBCPQUJUMAUNKU
    EUIUMAMZUFUEUGUHUPACTUAUBUCUD $.

  $( Bring a term in a subtraction into the numerator.  (Contributed by Scott
     Fenton, 3-Jul-2013.) $)
  subdivcomb2 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C =/= 0 ) ) ->
     ( ( A - ( C x. B ) ) / C ) = ( ( A / C ) - B ) ) $=
    ( cc wcel cc0 wne wa w3a cmul co cmin cdiv simp3l simp2 mulcld divsubdir c1
    wceq eqtrd syld3an2 simprl simpl simpr div23 syl3anc divid oveq1d sylan9eqr
    mulid2 3adant1 oveq2d ) ADEZBDEZCDEZCFGZHZIZACBJKZLKCMKZACMKZUSCMKZLKZVABLK
    UMUSDEUNUQUTVCSURCBUMUNUOUPNUMUNUQOPAUSCQUAURVBBVALUNUQVBBSUMUNUQHZVBCCMKZB
    JKZBVDUOUNUQVBVFSUNUOUPUBUNUQUCUNUQUDCBCUEUFUQUNVFRBJKBUQVERBJCUGUHBUJUITUK
    ULT $.

  ${
    $d N x $.  $d M x $.
    $( The supremum of a finite sequence of integers.  (Contributed by Scott
       Fenton, 8-Aug-2013.) $)
    supfz $p |- ( N e. ( ZZ>= ` M ) -> sup ( ( M ... N ) , ZZ , < ) = N ) $=
      ( vx cuz cfv wcel cz cfz co clt wor cr wss zssre ltso mp2 a1i eluzelz wbr
      soss eluzfz2 cv wa cle wn elfzle2 adantl wb elfzelz zred eluzelre syl2anr
      lenlt mpbid supmax ) BADEFZCGABHIZBJGJKZUPGLMLJKURNOGLJTPQABRABUAUPCUBZUQ
      FZUCUSBUDSZBUSJSUEZUTVAUPUSABUFUGUTUSLFBLFVAVBUHUPUTUSUSABUIUJABUKUSBUMUL
      UNUO $.

    $( The infimum of a finite sequence of integers.  (Contributed by Scott
       Fenton, 8-Aug-2013.)  (Revised by AV, 10-Oct-2021.) $)
    inffz $p |- ( N e. ( ZZ>= ` M ) -> inf ( ( M ... N ) , ZZ , < ) = M ) $=
      ( vx cuz cfv wcel cz cfz co clt wor wss zssre ltso soss mp2 a1i wbr zred
      cr eluzel2 eluzfz1 cv wa cle wn elfzle1 adantl elfzelz lenlt syl2an mpbid
      wb infmin ) BADEFZCGABHIZAJGJKZUOGTLTJKUQMNGTJOPQABUAZABUBUOCUCZUPFZUDAUS
      UERZUSAJRUFZUTVAUOUSABUGUHUOATFUSTFVAVBUMUTUOAURSUTUSUSABUISAUSUJUKULUN
      $.

    $( The infimum of a finite sequence of integers.  (Contributed by Scott
       Fenton, 8-Aug-2013.)  Obsolete version of ~ inffz as of 10-Oct-2021.
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    inffzOLD $p |- ( N e. ( ZZ>= ` M )
                     -> sup ( ( M ... N ) , ZZ , `' < ) = M ) $=
      ( vx cuz cfv wcel cz cfz co clt ccnv wor cr wss zssre wa wbr wn wb zred
      ltso soss mp2 cnvso mpbi a1i eluzel2 eluzfz1 cv cle elfzle1 elfzelz lenlt
      adantl syl2an mpbid brcnvg notbid sylan mpbird supmax ) BADEFZCGABHIZAJKZ
      GVDLZVBGJLZVEGMNMJLVFOUAGMJUBUCGJUDUEUFABUGZABUHVBCUIZVCFZPZAVHVDQZRZVHAJ
      QZRZVJAVHUJQZVNVIVOVBVHABUKUNVBAMFVHMFVOVNSVIVBAVGTVIVHVHABULTAVHUMUOUPVB
      AGFZVIVLVNSVGVPVIPVKVMAVHGVCJUQURUSUTVA $.
  $}

  $( The sequence ` ( 0 ... ( N - 1 ) ) ` is empty iff ` N ` is zero.
     (Contributed by Scott Fenton, 16-May-2014.) $)
  fz0n $p |- ( N e. NN0 -> ( ( 0 ... ( N - 1 ) ) = (/) <-> N = 0 ) ) $=
    ( cn0 wcel c1 cmin co cc0 clt wbr cfz c0 wceq cz wb nn0z sylancr cle bitr3d
    0z cr peano2zm syl fzn cn wo elnn0 wn nnge1 1re wa subge0 0re resubcl lenlt
    nnre sylancl mpbid nnne0 neneqd 2falsed cneg oveq1 syl6eqr neg1lt0 syl6eqbr
    df-neg id 2thd jaoi sylbi ) ABCZADEFZGHIZGVLJFKLZAGLZVKGMCVLMCZVMVNNSVKAMCV
    PAOAUAUBGVLUCPVKAUDCZVOUEVMVONZAUFVQVRVOVQVMVOVQDAQIZVMUGZAUHVQATCZDTCZVSVT
    NAUOUIWAWBUJZGVLQIZVSVTADUKWCGTCVLTCWDVTNULADUMGVLUNPRUPUQVQAGAURUSUTVOVMVO
    VOVLDVAZGHVOVLGDEFWEAGDEVBDVFVCVDVEVOVGVHVIVJR $.

  ${
    $d F f $.  $d A f $.  $d B f $.
    $( Value of a sequence shifted by ` A ` .  (Contributed by Scott Fenton,
       16-Dec-2017.) $)
    shftvalg $p |- ( ( F e. V /\ A e. CC /\ B e. CC ) ->
      ( ( F shift A ) ` B ) = ( F ` ( B - A ) ) ) $=
      ( vf wcel cc cshi co cmin wceq wa cv wi oveq1 fveq1d fveq1 eqeq12d imbi2d
      cfv vex shftval vtoclg 3impib ) CDFAGFZBGFZBCAHIZTZBAJIZCTZKZUEUFLZBEMZAH
      IZTZUIUMTZKZNULUKNECDUMCKZUQUKULURUOUHUPUJURBUNUGUMCAHOPUIUMCQRSABUMEUAUB
      UCUD $.
  $}

  ${
    $d A k $.  $d A m $.  $d B k $.  $d B m $.  $d F k $.  $d k m $.
    $d k ph $.  $d M k $.  $d m ph $.  $d Z k $.
    divcnvlin.1 $e |- Z = ( ZZ>= ` M ) $.
    divcnvlin.2 $e |- ( ph -> M e. ZZ ) $.
    divcnvlin.3 $e |- ( ph -> A e. CC ) $.
    divcnvlin.4 $e |- ( ph -> B e. ZZ ) $.
    divcnvlin.5 $e |- ( ph -> F e. V ) $.
    divcnvlin.6 $e |- ( ( ph /\ k e. Z ) ->
        ( F ` k ) = ( ( k + A ) / ( k + B ) ) ) $.
    $( Limit of the ratio of two linear functions.  (Contributed by Scott
       Fenton, 17-Dec-2017.) $)
    divcnvlin $p |- ( ph -> F ~~> 1 ) $=
      ( vm c1 co caddc cn wcel cli wbr cz cv cmin cdiv cmpt cc0 wa cc nncn zcnd
      adantl subcld adantr wne nnne0 divdird dividd oveq1d eqtrd mpteq2dva nnuz
      cvv 1zzd divcnv syl 1cnd nnex mptex a1i eqid fmptd ffvelrnda cfv wceq weq
      divcld oveq2 oveq2d ovex fvmpt eqtr4d climaddc2 eqbrtrd cres nnssz resmpt
      cuz wss ax-mp reseq2i eqtr3i 1p0e1 breq12i wb climres mp2an bitri eluzelz
      1z sylib eleq2s ppncand zaddcld oveq1 id oveq12d 3eqtr4d climshft2 mpbird
      zex ) AEPUAUBOUCOUDZBCUEQZRQZXMUFQZUGZPUAUBZAOSXPUGZPUHRQZUAUBZXRAXSOSPXN
      XMUFQZRQZUGZXTUAAOSXPYCAXMSTZUIZXPXMXMUFQZYBRQYCYFXMXNXMYEXMUJTAXMUKUMZAX
      NUJTZYEABCKACLULUNZUOZYHYEXMUHUPAXMUQUMZURYFYGPYBRYFXMYHYLUSUTVAVBAUHPDOS
      YBUGZYDPVDSVCAVEAYIYMUHUAUBYJXNOVFVGAVHYDVDTAOSYCVIVJVKASUJDUDZYMAOSYBUJY
      MYFXNXMYKYHYLVRYMVLZVMVNYNSTZYNYDVOZPYNYMVOZRQZVPAYPYQPXNYNUFQZRQZYSOYNYC
      UUASYDODVQYBYTPRXMYNXNUFVSZVTYDVLPYTRWAWBYPYRYTPROYNYBYTSYMUUBYOXNYNUFWAW
      BVTWCUMWDWEYAXQPWIVOZWFZPUAUBZXRXSUUDXTPUAXQSWFZXSUUDSUCWJUUFXSVPWGOUCSXP
      WHWKSUUCXQVCWLWMWNWOPUCTXQVDTZUUEXRWPXAOUCXPXLVJZPXQPVDWQWRWSXBAPDEXQCFGV
      DHIJLMUUGAUUHVKAYNHTZUIZYNCRQZXNRQZUUKUFQZYNBRQZUUKUFQUUKXQVOZYNEVOUUJUUL
      UUNUUKUFUUJYNCBUUIYNUJTAUUIYNYNUCTZYNFWIVOHFYNWTIXCZULUMUUJCACUCTUUILUOZU
      LABUJTUUIKUOXDUTUUJUUKUCTUUOUUMVPUUJYNCUUIUUPAUUQUMUURXEOUUKXPUUMUCXQXMUU
      KVPZXOUULXMUUKUFXMUUKXNRXFUUSXGXHXQVLUULUUKUFWAWBVGNXIXJXK $.
  $}

  ${
    $d A k $.  $d B k $.  $d F k $.  $d F m $.  $d k m $.  $d k ph $.
    $d M k $.  $d Z k $.  $d Z m $.
    climlec3.1 $e |- Z = ( ZZ>= ` M ) $.
    climlec3.2 $e |- ( ph -> M e. ZZ ) $.
    climlec3.3 $e |- ( ph -> B e. RR ) $.
    climlec3.4 $e |- ( ph -> F ~~> A ) $.
    climlec3.5 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
    climlec3.6 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) <_ B ) $.
    $( Comparison of a constant to the limit of a sequence.  (Contributed by
       Scott Fenton, 5-Jan-2018.) $)
    climlec3 $p |- ( ph -> A <_ B ) $=
      ( vm cle wbr cneg cfv wcel cr cv cmpt renegcld cc0 cmin cli cvv 0cnd fvex
      co cuz eqeltri mptex a1i wa recnd wceq simpr weq fveq2 negeqd eqid fvmptg
      syl2anc df-neg syl6eq climsubc2 syl6breqr adantr lenegd breqtrrd climlec2
      eqeltrd mpbid climrecl mpbird ) ABCOPCQZBQZOPAVQVRDNGNUAZERZQZUBZFGHIACJU
      CAWBUDBUEUJVRUFABUDDEWBFUGGHIKAUHWBUGSANGWAGFUKRUGHFUKUIULUMUNADUAZGSZUOZ
      WCERZLUPWEWCWBRZWFQZUDWFUEUJWEWDWHTSWGWHUQAWDURWEWFLUCZNWCWAWHGTWBNDUSVTW
      FVSWCEUTVAWBVBVCVDZWFVEVFVGBVEVHWEWGWHTWJWIVMWEVQWHWGOWEWFCOPVQWHOPMWEWFC
      LACTSWDJVIVJVNWJVKVLABCABDEFGHIKLVOJVJVP $.
  $}

  $( Calculate the logarithm of ` _i ` .  (Contributed by Scott Fenton,
     13-Apr-2020.) $)
  logi $p |- ( log ` _i ) = ( _i x. ( _pi / 2 ) ) $=
    ( ci clog cfv cpi c2 co cmul wceq cc wcel cc0 ax-icn clt wbr halfpire pipos
    wb pire ax-mp wtru cdiv ce efhalfpi wne crn ine0 cneg cim cle recni lt0neg2
    mulcli mpbi halfpos2 renegcli 0re lttri mp2an cre reim rere eqtr3i breqtrri
    cr caddc a1i ltaddposd mpbii picn times2i syl6breqr crp 2rp ltdivmul2d trud
    mpbird ltleii eqbrtri ellogrn mpbir3an logeftb mp3an mpbir ) ABCADEUAFZGFZH
    ZWEUBCAHZUCAIJAKUDWEBUEJZWFWGQLUFWHWEIJDUGZWEUHCZMNWJDUINAWDLWDOUJZULWIWDWJ
    MWIKMNZKWDMNZWIWDMNKDMNZWLPDVDJZWNWLQRDUKSUMWNWMPWOWNWMQRDUNSUMWIKWDDRUOUPO
    UQURWDUSCZWJWDWDIJWPWJHWKWDUTSWDVDJWPWDHOWDVASVBZVCWJWDDUIWQWDDORWDDMNZTWRD
    DEGFZMNTDDDVEFZWSMTWNDWTMNPTDDWOTRVFZXAVGVHDVIVJVKTDDEXAXAEVLJTVMVFVNVPVOVQ
    VRWEVSVTAWEWAWBWC $.

  $( ` _i ` raised to itself is real.  (Contributed by Scott Fenton,
     13-Apr-2020.) $)
  iexpire $p |- ( _i ^c _i ) e. RR $=
    ( ci ccxp co c1 cneg cpi c2 cdiv cmul ce cfv cr clog cc wcel cc0 wne ax-icn
    wceq halfpire ine0 cxpef mp3an logi oveq2i recni mulassi ixi oveq1i 3eqtr2i
    fveq2i eqtri neg1rr remulcli reefcl ax-mp eqeltri ) AABCZDEZFGHCZICZJKZLURA
    AMKZICZJKZVBANOZAPQVFURVESRUARAAUBUCVDVAJVDAAUTICZICAAICZUTICVAVCVGAIUDUEAA
    UTRRUTTUFUGVHUSUTIUHUIUJUKULVALOVBLOUSUTUMTUNVAUOUPUQ $.

  $( The binomial coefficent over negative one is zero.  (Contributed by Scott
     Fenton, 29-May-2020.) $)
  bcneg1 $p |- ( N e. NN0 -> ( N _C -u 1 ) = 0 ) $=
    ( cn0 wcel c1 cneg cbc co cc0 cfz cfa cfv cmin cmul cdiv cif wceq neg1z cle
    cz wbr bcval mpan2 wa clt wn neg1lt0 neg1rr 0re ltnlei mpbi intnanr wb nn0z
    0z elfz mp3an12 syl mtbiri iffalsed eqtrd ) ABCZADEZFGZVBHAIGCZAJKAVBLGJKVB
    JKMGNGZHOZHVAVBSCZVCVFPQVBAUAUBVAVDVEHVAVDHVBRTZVBARTZUCZVHVIVBHUDTVHUEUFVB
    HUGUHUIUJUKVAASCZVDVJULZAUMVGHSCVKVLQUNVBHAUOUPUQURUSUT $.

  $( The proportion of one bionmial coefficient to another with ` N ` decreased
     by 1.  (Contributed by Scott Fenton, 23-Jun-2020.) $)
  bcm1nt $p |- ( ( N e. NN /\ K e. ( 0 ... ( N - 1 ) ) ) ->
    ( N _C K ) = ( ( ( N - 1 ) _C K ) x. ( N / ( N - K ) ) ) ) $=
    ( cn wcel cc0 c1 cmin co cfz wa caddc cbc cdiv cmul wceq bcp1n adantl simpl
    nncnd oveq1d 1cnd npcand oveq12d oveq2d 3eqtr3d ) BCDZAEBFGHZIHDZJZUGFKHZAL
    HZUGALHZUJUJAGHZMHZNHZBALHULBBAGHZMHZNHUHUKUOOUFAUGPQUIUJBALUIBFUIBUFUHRSUI
    UAUBZTUIUNUQULNUIUJBUMUPMURUIUJBAGURTUCUDUE $.

  ${
    $d N n m j k $.
    $( A product identity for binomial coefficents.  (Contributed by Scott
       Fenton, 23-Jun-2020.) $)
    bcprod $p |- ( N e. NN ->
     prod_ k e. ( 1 ... ( N - 1 ) ) ( ( N - 1 ) _C k ) =
     prod_ k e. ( 1 ... ( N - 1 ) ) ( k ^ ( ( 2 x. k ) - N ) ) ) $=
      ( c1 cmin co cfz cbc cprod c2 cmul cexp wceq cc0 oveq2d oveq1d prodeq12dv
      wcel adantr cn cdiv vm vn vj cv c0 caddc oveq1 1m1e0 syl6eq oveq2 eqeq12d
      fz10 weq prod0 eqtr4i wa cfa cfv simpr nncn 1cnd pncand cuz elnnuz biimpi
      cn0 cz nnnn0 elfzelz bccl syl2an nn0cnd fprodm1 syl fzfid fprodcl mulid1d
      wss 1eluzge0 fzss1 ax-mp sseli bcm1nt sylan2 prodeq2dv nnm1nn0 cc clt wbr
      bcnn elfznn adantl nnred nn0red cr nnre elfzle2 ltm1d lelttrd simpl nnsub
      cle wb syl2anc mpbid nncnd nnne0d divcld fprodmul fproddiv chash cfn fzfi
      fprodconst sylancr hashfz1 eqtr2d fprodfac nnz 1zzd nn0zd fprodrev nncand
      prodeq1d 3eqtrd oveq12d eqtr4d 2nn nnmulcld nnzd peano2nn zsubcld expclzd
      id a1i subsub4d expm1d eqtr3d 3eqtr4d eqtrd 2timesd faccl expcld ex nnind
      div32d ) CUAUDZCDEZFEZUUHAUDZGEZAHZUUIUUJIUUJJEZUUGDEZKEZAHZLUEMUUJGEZAHZ
      UEUUJUUMCDEZKEZAHZLCUBUDZCDEZFEZUVCUUJGEZAHZUVDUUJUUMUVBDEZKEZAHZLZCUVBCU
      FEZCDEZFEZUVLUUJGEZAHZUVMUUJUUMUVKDEZKEZAHZLZCBCDEZFEZUVTUUJGEZAHZUWAUUJU
      UMBDEZKEZAHZLUAUBBUUGCLZUULUURUUPUVAUWGUUIUEUUKUUQAUWGUUICMFEUEUWGUUHMCFU
      WGUUHCCDEMUUGCCDUGUHUIZNULUIZUWGUUKUUQLUUJUUIQZUWGUUHMUUJGUWHORPUWGUUIUEU
      UOUUTAUWIUWGUUOUUTLUWJUWGUUNUUSUUJKUUGCUUMDUJNRPUKUAUBUMZUULUVFUUPUVIUWKU
      UIUVDUUKUVEAUWKUUHUVCCFUUGUVBCDUGZNZUWKUUKUVELUWJUWKUUHUVCUUJGUWLORPUWKUU
      IUVDUUOUVHAUWMUWKUUOUVHLUWJUWKUUNUVGUUJKUUGUVBUUMDUJNRPUKUUGUVKLZUULUVOUU
      PUVRUWNUUIUVMUUKUVNAUWNUUHUVLCFUUGUVKCDUGZNZUWNUUKUVNLUWJUWNUUHUVLUUJGUWO
      ORPUWNUUIUVMUUOUVQAUWPUWNUUOUVQLUWJUWNUUNUVPUUJKUUGUVKUUMDUJNRPUKUUGBLZUU
      LUWCUUPUWFUWQUUIUWAUUKUWBAUWQUUHUVTCFUUGBCDUGZNZUWQUUKUWBLUWJUWQUUHUVTUUJ
      GUWRORPUWQUUIUWAUUOUWEAUWSUWQUUOUWELUWJUWQUUNUWDUUJKUUGBUUMDUJNRPUKUURCUV
      AUUQAUNUUTAUNUOUVBSQZUVJUVSUWTUVJUPZUVFUVBUVCKEZUVCUQURZTEZJEZUVIUXDJEZUV
      OUVRUXAUVFUVIUXDJUWTUVJUSOUWTUVOUXELUVJUWTUVOCUVBFEZUVBUUJGEZAHUVDUXHAHZU
      VBUVBGEZJEZUXEUWTUVMUXGUVNUXHAUWTUVLUVBCFUWTUVBCUVBUTZUWTVAZVBZNZUWTUVNUX
      HLUUJUVMQUWTUVLUVBUUJGUXNORPUWTUXHUXJACUVBUWTUVBCVCURQUVBVDVEZUWTUUJUXGQZ
      UPZUXHUWTUVBVFQZUUJVGQZUXHVFQZUXQUVBVHZUUJCUVBVIUUJUVBVJZVKVLUUJUVBUVBGUJ
      VMUWTUXKUXICJEUXIUXEUWTUXJCUXIJUWTUXSUXJCLUYBUVBWJVNNUWTUXIUWTUVDUXHAUWTC
      UVCVOZUWTUUJUVDQZUPZUXHUWTUXSUXTUYAUYEUYBUUJCUVCVIZUYCVKVLVPVQUWTUXIUVDUV
      EUVBUVBUUJDEZTEZJEZAHUVFUVDUYIAHZJEUXEUWTUVDUXHUYJAUYEUWTUUJMUVCFEZQUXHUY
      JLUVDUYLUUJCMVCURQUVDUYLVRVSCMUVCVTWAWBUUJUVBWCWDWEUWTUVDUVEUYIAUYDUYFUVE
      UWTUVCVFQZUXTUVEVFQUYEUVBWFZUYGUUJUVCVJVKVLUYFUVBUYHUWTUVBWGQZUYEUXLRZUYF
      UYHUYFUUJUVBWHWIZUYHSQZUYFUUJUVCUVBUYFUUJUYEUUJSQZUWTUUJUVCWKWLZWMUYFUVCU
      WTUYMUYEUYNRWNUWTUVBWOQUYEUVBWPRZUYEUUJUVCXBWIUWTUUJCUVCWQWLUYFUVBVUAWRWS
      UYFUYSUWTUYQUYRXCUYTUWTUYEWTUUJUVBXAXDXEZXFZUYFUYHVUBXGZXHXIUWTUYKUXDUVFJ
      UWTUYKUVDUVBAHZUVDUYHAHZTEUXDUWTUVDUVBUYHAUYDUYPVUCVUDXJUWTUXBVUEUXCVUFTU
      WTVUEUVBUVDXKURZKEZUXBUWTUVDXLQUYOVUEVUHLCUVCXMUXLUVDUVBAXNXOUWTVUGUVCUVB
      KUWTUYMVUGUVCLUYNUVCXPVNNXQUWTUXCUVDUCUDZUCHZUVBUVCDEZUVCFEZUYHAHVUFUWTUY
      MUXCVUJLUYNUVCUCXRVNUWTVUIUYHUCAUVBCUVCUVBXSZUWTXTUWTUVCUYNYAUWTVUIUVDQZU
      PVUIVUNVUISQUWTVUIUVCWKWLXFVUIUYHLYNYBUWTVULUVDUYHAUWTVUKCUVCFUWTUVBCUXLU
      XMYCOYDYEYFYGNYEYEYERUWTUVRUXFLUVJUWTUVRUXGUVQAHUVDUVQAHZUVBIUVBJEZUVKDEZ
      KEZJEZUXFUWTUVMUXGUVQAUXOYDUWTUVQVURACUVBUXPUXRUUJUVPUXRUUJUXQUYSUWTUUJUV
      BWKWLZXFUXRUUJVUTXGUXRUUMUVKUXRUUMUXRIUUJISQZUXRYHYOVUTYIYJUXRUVKUWTUVKSQ
      UXQUVBYKRYJYLYMAUBUMZUUJUVBUVPVUQKVVBYNVVBUUMVUPUVKDUUJUVBIJUJOYFVMUWTVUS
      UVIUXCTEZUXBJEUXFUWTVUOVVCVURUXBJUWTUVDUVHUUJTEZAHUVIUVDUUJAHZTEVUOVVCUWT
      UVDUVHUUJAUYDUYFUUJUVGUYFUUJUYTXFZUYFUUJUYTXGZUYFUUMUVBUYFUUMUYFIUUJVVAUY
      FYHYOUYTYIZYJUWTUVBVGQUYEVUMRYLZYMZVVFVVGXJUWTUVDUVQVVDAUYFUUJUVGCDEZKEUV
      QVVDUYFVVKUVPUUJKUYFUUMUVBCUYFUUMVVHXFUYPUYFVAYPNUYFUUJUVGVVFVVGVVIYQYRWE
      UWTUXCVVEUVITUWTUYMUXCVVELUYNUVCAXRVNNYSUWTVUQUVCUVBKUWTVUPUVBDEZCDEVUQUV
      CUWTVUPUVBCUWTVUPUWTIUVBVVAUWTYHYOUWTYNYIXFUXLUXMYPUWTVVLUVBCDUWTVVLUVBUV
      BUFEZUVBDEUVBUWTVUPVVMUVBDUWTUVBUXLUUAOUWTUVBUVBUXLUXLVBYTOYRNYFUWTUVIUXC
      UXBUWTUVDUVHAUYDVVJVPUWTUXCUWTUYMUXCSQUYNUVCUUBVNZXFUWTUVBUVCUXLUYNUUCUWT
      UXCVVNXGUUFYTYERYSUUDUUE $.
  $}

  ${
    $d N n m k $.  $d C n m k $.
    $( A column-sum rule for binomial coefficents.  (Contributed by Scott
       Fenton, 24-Jun-2020.) $)
    bccolsum $p |- ( ( N e. NN0 /\ C e. NN0 ) ->
    sum_ k e. ( 0 ... N ) ( k _C C ) = ( ( N + 1 ) _C ( C + 1 ) ) ) $=
      ( cn0 wcel cc0 cfz co cbc csu c1 caddc wceq wi oveq2 sumeq1d oveq1 oveq1d
      eqeq12d imbi2d vm vn cv 0p1e1 syl6eq weq cz 0nn0 nn0z bccl sylancr nn0cnd
      cc 0z fsum1 cn wo elnn0 cfa cfv cmin cmul cdiv cif cle wbr 1red ltaddrp2d
      wn nnrp peano2nn nnred ltnled mpbid elfzle2 nsyl iffalsed 1nn0 nnzd bcval
      clt bc0k 3eqtr4rd bcnn ax-mp eqtr4i oveq2d 3eqtr4a sylbi eqtrd wa elnn0uz
      jaoi cuz biimpi adantr elfznn0 adantl simplr nn0zd syl2anc fsump1 id 1cnd
      nn0cn pncand eqcomd oveqan12rd peano2nn0 bcpasc syl2an 3eqtrd a2d nn0ind
      exp31 imp ) CDEADEZFCGHZBUCZAIHZBJZCKLHZAKLHZIHZMZXQFUAUCZGHZXTBJZYFKLHZY
      CIHZMZNXQFFGHZXTBJZKYCIHZMZNXQFUBUCZGHZXTBJZYPKLHZYCIHZMZNXQFYSGHZXTBJZYS
      KLHZYCIHZMZNXQYENUAUBCYFFMZYKYOXQUUGYHYMYJYNUUGYGYLXTBYFFFGOPUUGYIKYCIUUG
      YIFKLHZKYFFKLQUDUERSTUAUBUFZYKUUAXQUUIYHYRYJYTUUIYGYQXTBYFYPFGOPUUIYIYSYC
      IYFYPKLQRSTYFYSMZYKUUFXQUUJYHUUCYJUUEUUJYGUUBXTBYFYSFGOPUUJYIUUDYCIYFYSKL
      QRSTYFCMZYKYEXQUUKYHYAYJYDUUKYGXRXTBYFCFGOPUUKYIYBYCIYFCKLQRSTXQYMFAIHZYN
      XQFUGEUULUMEYMUULMUNXQUULXQFDEZAUGEZUULDEUHAUIAFUJUKULXTUULBFXSFAIQUOUKXQ
      AUPEZAFMZUQUULYNMZAURUUOUUQUUPUUOYCFKGHEZKUSUTKYCVAHUSUTYCUSUTVBHVCHZFVDZ
      FYNUULUUOUURUUSFUUOYCKVEVFZUURUUOKYCWAVFUVAVIUUOKAUUOVGZAVJVHUUOKYCUVBUUO
      YCAVKZVLVMVNYCFKVOVPVQUUOKDEZYCUGEZYNUUTMVRUUOYCUVCVSYCKVTUKAWBWCUUPFFIHZ
      KKIHZUULYNUVFKUVGUUMUVFKMUHFWDWEUVDUVGKMVRKWDWEWFAFFIOUUPYCKKIUUPYCUUHKAF
      KLQUDUEWGWHWMWIWJYPDEZXQUUAUUFUVHXQUUAUUFUVHXQWKZUUAWKUUCYRYSAIHZLHZYTYSY
      CKVAHZIHZLHZUUEUVIUUCUVKMUUAUVIXTUVJBFYPUVHYPFWNUTEZXQUVHUVOYPWLWOWPUVIXS
      UUBEZWKZXTUVQXSDEZUUNXTDEUVPUVRUVIXSYSWQWRUVQAUVHXQUVPWSWTAXSUJXAULXSYSAI
      QXBWPUUAUVIYRYTUVJUVMLUUAXCUVIUVMUVJUVIUVLAYSIUVIAKXQAUMEUVHAXEWRUVIXDXFW
      GXGXHUVIUVNUUEMZUUAUVHYSDEUVEUVSXQYPXIXQYCAXIWTYCYSXJXKWPXLXOXMXNXP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Infinite products
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $(
  @{
    @d A w x @. @d B w x @. @d C w x @. @d ph x @. @d R w x @.
    @d w z @. @d X w y @. @d x y @. @d x z @. @d X z @. @d Y w x @.
    ntrivcvgvaulem1.1 @e |- ( ( ph /\ x e. A ) ->
      E. y e. B A. z e. C Y R x ) @.
    @( Lemma for ~ ntrivcvgcau .  Specialization of a particular form
       while avoiding a distinctness requirement between ` x ` and ` X ` .
       (Contributed by Scott Fenton, 30-Dec-2017.) @)
    ntrivcvgcaulem1 @p |- ( ( ph /\ X e. A ) ->
      E. y e. B A. z e. C Y R X ) @=
      ( vw cv wbr wral wrex wcel breq2 ralbidv rexbidv ralrimiva weq sylib wceq
      cbvralv rspcv mpan9 ) AJLMZHNZDGOZCFPZLEOZIEQJIHNZDGOZCFPZAJBMZHNZDGOZCFP
      ZBEOULAUSBEKUAUSUKBLEBLUBZURUJCFUTUQUIDGUPUHJHRSTUEUCUKUOLIEUHIUDZUJUNCFV
      AUIUMDGUHIJHRSTUFUG @.
  @}

  @{
    ntrivcvgcaulem2.1 @e |- Z = ( ZZ>= `  M ) @.
    ntrivcvgcaulem2.2 @e |- ( ph -> K e. Z ) @.
    ntrivcvgcaulem2.3 @e |- ( ( ph /\ k e. Z ) -> A e. CC ) @.
    ntrivcvgcaulem2.4 @e |- ( ( ph /\ m e. ( ZZ>= ` K ) ) ->
       ( abs ` ( prod_ k e. ( K ... m ) A - 1 ) ) < ( 1 / 2 ) ) @.

    @{
      @d K k @. @d k m @. @d k ph @.
    @( Lemma for ~ ntrivcvgcau .  A product whose absolute difference
       from one is less than one half has an absolute value less than two.
       (Contributed by Scott Fenton, 30-Dec-2017.) @)
    ntrivcvgcaulem2 @p |- ( ( ph /\ m e. ( ZZ>= ` K ) ) ->
     ( abs ` prod_ k e. ( K ... m ) A ) < 2 ) @=
      ( cfv wcel co c1 caddc cabs c2 a1i cr cv cuz wa cfz cprod cmin clt elfzuz
      fzfid cc uztrn2 syl2an syldan adantlr fprodcl ax-1cn npcand fveq2d abscld
      eqeltrd subcld abs1 1re eqeltri readdcld 2re abstrid rereccli wbr halflt1
      cdiv 2ne0 lttrd ltadd1dd oveq2i df-2 3brtr4g lelttrd eqbrtrrd ) ADUAZEUBL
      ZMZUCZEVTUDNZBCUEZOUFNZOPNZQLZWEQLRUGWCWGWEQWCWEOWCWDBCWCEVTUIACUAZWDMZBU
      JMZWBAWJWIGMZWKAEGMWIWAMWLWJIWIEVTUHFWIEGHUKULJUMUNUOZOUJMWCUPSZUQZURWCWH
      WFQLZOQLZPNZRWCWGWCWGWEUJWOWMUTUSWCWPWQWCWFWCWEOWMWNVAZUSZWQTMWCWQOTVBVCV
      DSVERTMWCVFSWCWFOWSWNVGWCWPOPNOOPNWRRUGWCWPOOWTOTMWCVCSZXAWCWPORVKNZOWTXB
      TMWCRVFVLVHSXAKXBOUGVIWCVJSVMVNWQOWPPVBVOVPVQVRVS @.
    @}

    @{
      @d A m @. @d K k @. @d k m @. @d K m @. @d k ph @. @d m ph @.
    @( Lemma for ~ ntrivcvgcau .  A product whose absolute difference from
       one is less than one half has no zero values.  (Contributed
       by Scott Fenton, 30-Dec-2017.) @)
    ntrivcvgcaulem3 @p |- ( ( ph /\ k e. ( ZZ>= ` K ) ) -> A =/= 0 ) @=
      ( cfv wcel cc0 wceq co c1 cmin cabs clt cv cuz wne csb wi wa cfz cprod c2
      wral cdiv wbr fzfid elfzuz uztrn2 syl2an syldan fprodcl adantr ax-1cn a1i
      cc subcld abscld cr 2re 2ne0 rereccli ltnsymd halflt1 cneg absnegi df-neg
      fveq2i abs1 3eqtr3i breqtrri oveq1 fveq2d syl5breqr nsyl adantlr fprodm1s
      cmul simpr oveq2 sylan9eqr eqtrd mtand neqned ralrimiva nfv nfcsb1v nfcv
      mul01d nfne weq csbeq1a neeq1d cbvral rsp sylbir syl imp ) ACUAZEUBLZMZBN
      UCZACDUAZBUDZNUCZDXFUJZXGXHUEZAXKDXFAXIXFMZUFZXJNXOXJNOZEXIUGPZBCUHZNOZXO
      QUIUKPZXRQRPZSLZTULXSXOYBXTXOYAXOXRQAXRVBMXNAXQBCAEXIUMAXEXQMZXEGMZBVBMZA
      EGMZXGYDYCIXEEXIUNFXEEGHUOZUPJUQZURUSQVBMXOUTVAVCVDXTVEMXOUIVFVGVHVAKVIXS
      XTNQRPZSLZYBTXTQYJTVJQVKZSLQSLYJQQUTVLYKYISQVMVNVOVPVQXSYAYISXRNQRVRVSVTW
      AXOXPUFXREXIQRPZUGPZBCUHZXJWDPZNXOXRYOOXPXOBCEXIAXNWEAYCYEXNYHWBWCUSXPXOY
      OYNNWDPNXJNYNWDWFXOYNXOYMBCXOEYLUMAXEYMMZYEXNAYPYDYEAYFXGYDYPIXEEYLUNYGUP
      JUQWBURWOWGWHWIWJWKXLXHCXFUJXMXHXKCDXFXHDWLCXJNCXIBWMCNWNWPCDWQBXJNCXIBWR
      WSWTXHCXFXAXBXCXD @.
    @}

    ntrivcvgcaulem4.5 @e |- ( ( ph /\ x e. RR+ ) ->
      E. n e. Z A. q e. ( ZZ>= ` n )
       ( abs ` ( prod_ k e. ( n ... q ) A - 1 ) ) < x ) @.

    ntrivcvgcaulem4 @p |- ( ( ph /\ x e. RR+ ) ->
      E. j e. ( ZZ>= ` K ) A. p e. ( ZZ>= ` j )
      ( abs ` ( prod_ k e. ( ( j + 1 ) ... p ) A - 1 ) ) < ( x / 2 ) ) @= ? @.

    @{
    @d j p @. @d j ph @. @d j x @. @d K p @. @d p ph @. @d p x @. @d A m @.
    @d j k @. @d j m @. @d K k @. @d k m @. @d K m @. @d k p @. @d k ph @.
    @d k x @. @d m ph @.

    @( Lemma for ~ ntrivcvgcau .  Translate final hypothesis into
       a Cauchy-like criterion.  (Contributed by Scott Fenton, 30-Dec-2017.) @)
    ntrivcvgcaulem5 @p |- ( ( ph /\ x e. RR+ ) ->
     E. j e. Z A. p e. ( ZZ>= ` j )
       ( abs ` ( prod_ k e. ( K ... p ) A - prod_ k e. ( K ... j ) A ) )
                 < x ) @=
      ( wcel wa co cv crp c1 caddc cfz cprod cmin cabs cfv c2 cdiv clt wbr wral
      cuz wrex ntrivcvgcaulem4 wss syl6eleq uzss syl6sseqr adantr sseld adantrd
      syl wi w3a cmul fzfid simplll simpll elfzuz uztrn2 syl2an syl2anc fprodcl
      cr cc abscld 3adant3 simpl peano2uzs ax-1cn subcld simplr rphalfcld rpred
      2re a1i cc0 cle absge0d simprl eleq1 anbi2d prodeq1d oveq1d fveq2d breq1d
      weq oveq2 imbi12d chvarv ntrivcvgcaulem2 simp3 ltmul12ad wceq c0 eluzelre
      cin ad2antrl fzdisj cun simprr elfzuzb sylanbrc fzsplit fprodsplit muls1d
      ltp1d eqtr4d absmuld eqtr2d simp1r rpcn 2cn 2ne0 divcan2d 3brtr3d anassrs
      wne 3expia ralimdva expimpd jcad reximdv2 mpd ) ABUAZUBRZSZDUAZUCUDTZLUAZ
      UETZCEUFZUCUGTZUHUIZYRUJUKTZULUMZLUUAUOUIZUNZDHUOUIZUPHUUCUETZCEUFZHUUAUE
      TZCEUFZUGTZUHUIZYRULUMZLUUJUNZDJUPABCDEFGHIJKLMNOPQUQYTUUKUUTDUULJYTUUAUU
      LRZUUKSUUAJRZUUTYTUVAUVBUUKYTUULJUUAAUULJURYSAUULIUOUIZJAHUVCRUULUVCURAHJ
      UVCNMUSIHUTVEMVAVBVCVDYTUVAUUKUUTYTUVASUUIUUSLUUJYTUVAUUCUUJRZUUIUUSVFYTU
      VAUVDSZUUIUUSYTUVEUUIVGZUUPUHUIZUUGVHTZUJUUHVHTZUURYRULUVFUVGUJUUGUUHYTUV
      EUVGVQRUUIYTUVESZUUPUVJUUOCEUVJHUUAVIUVJEUAZUUORZSAUVKJRZCVRRZAYSUVEUVLVJ
      UVJHJRZUVKUULRZUVMUVLUVJAUVOAYSUVEVKZNVEZUVKHUUAVLIUVKHJMVMZVNOVOVPZVSVTU
      JVQRUVFWHWIYTUVEUUGVQRUUIUVJUUFUVJUUEUCUVJUUDCEUVJUUBUUCVIUVJUVKUUDRZSAUV
      MUVNAYSUVEUWAVJUVJUUBJRZUVKUUBUOUIRUVMUWAUVJUVBUWBYTUVOUVAUVBUVEAUVOYSNVB
      UVAUVDWAIUUAHJMVMVNIUUAJMWBVEUVKUUBUUCVLIUVKUUBJMVMVNOVOVPZUCVRRUVJWCWIWD
      ZVSVTYTUVEUUHVQRUUIUVJUUHUVJYRAYSUVEWEWFWGVTYTUVEWJUVGWKUMUUIUVJUUPUVTWLV
      TYTUVEUVGUJULUMZUUIUVJAUVAUWEUVQYTUVAUVDWMZACEDHIJMNOAFUAZUULRZSZHUWGUETZ
      CEUFZUCUGTZUHUIZUCUJUKTZULUMZVFAUVASZUUPUCUGTZUHUIZUWNULUMZVFFDFDWTZUWIUW
      PUWOUWSUWTUWHUVAAUWGUUAUULWNWOUWTUWMUWRUWNULUWTUWLUWQUHUWTUWKUUPUCUGUWTUW
      JUUOCEUWGUUAHUEXAWPWQWRWSXBPXCXDVOVTYTUVEWJUUGWKUMUUIUVJUUFUWDWLVTYTUVEUU
      IXEXFYTUVEUVHUURXGUUIUVJUURUUPUUFVHTZUHUIUVHUVJUUQUXAUHUVJUUQUUPUUEVHTZUU
      PUGTUXAUVJUUNUXBUUPUGUVJUUOUUDCUUMEUVJUUAUUBULUMUUOUUDXJXHXGUVJUUAUVAUUAV
      QRYTUVDHUUAXIXKXTHUUAUUBUUCXLVEUVJUUAUUMRZUUMUUOUUDXMXGUVJUVAUVDUXCUWFYTU
      VAUVDXNUUAHUUCXOXPUUAHUUCXQVEUVJHUUCVIUVJUVKUUMRZSAUVMUVNAYSUVEUXDVJUVJUV
      OUVPUVMUXDUVRUVKHUUCVLUVSVNOVOXRWQUVJUUPUUEUVTUWCXSYAWRUVJUUPUUFUVTUWDYBY
      CVTUVFYSUVIYRXGAYSUVEUUIYDYSYRUJYRYEUJVRRYSYFWIUJWJYKYSYGWIYHVEYIYLYJYMYN
      YOYPYQ @.
    @}
  @}
  $)

  ${
    $d F j $.  $d F k $.  $d F n $.  $d j k $.  $d j n $.  $d j ph $.
    $d k ph $.  $d M j $.  $d M k $.  $d M n $.  $d n ph $.  $d Z k $.
    iprodefisumlem.1 $e |- Z = ( ZZ>= ` M ) $.
    iprodefisumlem.2 $e |- ( ph -> M e. ZZ ) $.
    iprodefisumlem.3 $e |- ( ph -> F : Z --> CC ) $.
    $( Lemma for ~ iprodefisum .  (Contributed by Scott Fenton,
       11-Feb-2018.) $)
    iprodefisumlem $p |- ( ph -> seq M ( x. , ( exp o. F ) ) =
       ( exp o. seq M ( + , F ) ) ) $=
      ( vk cmul ce caddc cc wcel cfv wceq syl wi co fveq2 fveq2d vj vn ccom wfn
      cseq wf cv wa fvco3 sylan ffvelrnda efcl eqeltrd prodf ffn eff ax-mp serf
      fnfco sylancr cuz c1 eqeq12d imbi2d weq cz uzid syl6eleqr syl2anc 3eqtr4d
      a1i w3a oveq1 3ad2ant3 adantl peano2uz adantr oveq2d expcom eqcomi eleq2s
      seq1 imp ffvelrnd efadd eqtr4d 3adant3 eqtrd seqp1 3exp a2d uzind4 impcom
      eqfnfvd ) AHDIJBUCZCUEZJKBCUEZUCZADLWPUFWPDUDAHWOCDEFAHUGZDMZUHZWSWONZWSB
      NZJNZLADLBUFZWTXBXDOGDLWSJBUIUJXAXCLMXDLMADLWSBGUKZXCULPUMUNDLWPUOPAJLUDZ
      DLWQUFZWRDUDLLJUFXGUPLLJUOUQAHBCDEFXFURZLDJWQUSUTXAWSWPNZWSWQNZJNZWSWRNZW
      TAXJXLOZAXNQZWSCVANZDAUAUGZWPNZXQWQNZJNZOZQACWPNZCWQNZJNZOZQZAUBUGZWPNZYG
      WQNZJNZOZQAYGVBKRZWPNZYLWQNZJNZOZQXOUAUBCWSXQCOZYAYEAYQXRYBXTYDXQCWPSYQXS
      YCJXQCWQSTVCVDUAUBVEZYAYKAYRXRYHXTYJXQYGWPSYRXSYIJXQYGWQSTVCVDXQYLOZYAYPA
      YSXRYMXTYOXQYLWPSYSXSYNJXQYLWQSTVCVDUAHVEZYAXNAYTXRXJXTXLXQWSWPSYTXSXKJXQ
      WSWQSTVCVDYFCVFMZACWONZCBNZJNZYBYDAXECDMUUBUUDOGACXPDAUUACXPMFCVGPEVHDLCJ
      BUIVIAUUAYBUUBOFIWOCWBPAYCUUCJAUUAYCUUCOFKBCWBPTVJVKYGXPMZAYKYPUUEAYKYPUU
      EAYKVLZYHYLWONZIRZYIYLBNZKRZJNZYMYOUUFUUHYJUUGIRZUUKYKUUEUUHUULOAYHYJUUGI
      VMVNUUEAUULUUKOYKUUEAUHZUULYJUUIJNZIRZUUKUUMUUGUUNYJIUUMXEYLDMZUUGUUNOAXE
      UUEGVOZUUEUUPAUUEYLXPDCYGVPEVHVQZDLYLJBUIVIVRUUMYILMZUUILMUUKUUOOUUEAUUSA
      UUSQYGDXPAYGDMUUSADLYGWQXIUKVSDXPEVTWAWCUUMDLYLBUUQUURWDYIUUIWEVIWFWGWHUU
      EAYMUUHOZYKUUEUUTAIWOCYGWIVQWGUUEAYOUUKOYKUUMYNUUJJUUEYNUUJOAKBCYGWIVQTWG
      VJWJWKWLEWAWMAXHWTXMXLOXIDLWSJWQUIUJWFWN $.
  $}

  ${
    $d F k $.  $d k ph $.  $d M k $.  $d Z k $.  $d F j $.  $d j k $.
    $d Z j $.  $d j ph $.  $d M j $.
    iprodefisum.1 $e |- Z = ( ZZ>= ` M ) $.
    iprodefisum.2 $e |- ( ph -> M e. ZZ ) $.
    iprodefisum.3 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = B ) $.
    iprodefisum.4 $e |- ( ( ph /\ k e. Z ) -> B e. CC ) $.
    iprodefisum.5 $e |- ( ph -> seq M ( + , F ) e. dom ~~> ) $.
    $( Applying the exponential function to an infinite sum yields an infinite
       product.  (Contributed by Scott Fenton, 11-Feb-2018.) $)
    iprodefisum $p |- ( ph -> prod_ k e. Z ( exp ` B ) =
       ( exp ` sum_ k e. Z B ) ) $=
      ( vj ce cfv cc wcel syl caddc cseq cli cmpt ccom csu cc0 wne isumcl efne0
      cv cmul ccncf co efcn a1i wa wceq fveq2 eqid fvex adantl eqeltrd serf cuz
      fvmpt eqcomi eleq2s seqfeq cdm wbr climdm eqbrtrd climcl climcncf cbvmptv
      sylib fmptd iprodefisumlem isum fveq2d 3brtr4d wf fvco3 sylan 3eqtrd efcl
      iprodn0 ) ABMNZCMLFLUHZDNZUAZUBZEFBCUCZMNZFGHAWKOPWLUDUEABCDEFGHIJKUFWKUG
      QAMRWIESZUBRDESZTNZMNUIWJESWLTAOOWOMWMEFGHMOOUJUKPAULUMACWIEFGHACUHZFPZUN
      ZWPWINZWPDNZOWQWSWTUOZALWPWHWTFWIWGWPDUPZWIUQWPDURVCZUSZWRWTBOIJUTZUTVAAW
      MWNWOTARCWIDEHWPEVBNZPXAAXAWPFXFXCFXFGVDVEUSVFAWNTVGPWNWOTVHZKWNVIVNZVJAX
      GWOOPXHWOWNVKQVLAWIEFGHACFWTOWIXELCFWHWTXBVMVOZVPAWKWOMABCDEFGHIJVQVRVSWR
      WPWJNZWSMNZWTMNWFAFOWIVTWQXJXKUOXIFOWPMWIWAWBWRWSWTMXDVRWRWTBMIVRWCWRBOPW
      FOPJBWDQWE $.
  $}

  ${
    $d A j $.  $d A k $.  $d A z $.  $d j k $.  $d j ph $.  $d k ph $.
    $d k z $.
    iprodgam.1 $e |- ( ph -> A e. ( CC \ ( ZZ \ NN ) ) ) $.
    $( An infinite product version of Euler's gamma function.  (Contributed by
       Scott Fenton, 12-Feb-2018.) $)
    iprodgam $p |- ( ph -> ( _G ` A ) =
    ( prod_ k e. NN ( ( ( 1 + ( 1 / k ) ) ^c A ) / ( 1 + ( A / k ) ) ) /
      A ) ) $=
      ( vj cfv ce cn c1 cdiv co caddc wcel wceq clog cmul cmin fveq2d oveq12d
      cc vz clgam cgam cv ccxp cprod cdif eflgam syl csu oveq1 oveq1d sumeq2sdv
      cz fveq2 df-lgam ovex fvmpt cmpt nnuz 1zzd id oveq2d oveq2 eqid adantl wa
      weq eldifad adantr peano2nn nncnd nncn cc0 wne nnne0 divcld nnne0d logcld
      divne0d mulcld 1cnd addcld simpr dmgmdivn0 cseq cli wbr cdm lgamcvg seqex
      subcld breldm isumcl dmgmn0 efsub syl2anc iprodefisum divdird crp 1rp a1i
      dividd eqtrd nnrpd rpreccld rpaddcld rpcnd rpne0d cxpefd eqtr4d prodeq2dv
      eflog addcomd eqtr3d ) ABUBFZGFZBUCFZHIICUDZJKZLKZBUEKZIBXSJKZLKZJKZCUFZB
      JKZABTUNHUGZUGZMZXQXRNDBUHUIAXQHBXSILKZXSJKZOFZPKZYCILKZOFZQKZCUJZBOFZQKZ
      GFZYGAXPYTGAYJXPYTNDUABHUAUDZYMPKZUUBXSJKZILKZOFZQKZCUJZUUBOFZQKYTYIUBUUB
      BNZUUHYRUUIYSQUUJHUUGYQCUUJUUCYNUUFYPQUUBBYMPUKUUJUUEYOOUUJUUDYCILUUBBXSJ
      UKULRSUMUUBBOUOSUACUPYRYSQUQURUIRAUUAYRGFZYSGFZJKZYGAYRTMYSTMUUAUUMNAYQCE
      HBEUDZILKZUUNJKZOFZPKZBUUNJKZILKZOFZQKZUSZIHUTAVAZXSHMZXSUVCFYQNAEXSUVBYQ
      HUVCECVHZUURYNUVAYPQUVFUUQYMBPUVFUUPYLOUVFUUOYKUUNXSJUUNXSILUKUVFVBSRVCUV
      FUUTYOOUVFUUSYCILUUNXSBJVDULRSUVCVEZYNYPQUQURVFZAUVEVGZYNYPUVIBYMABTMZUVE
      ABTYHDVIZVJZUVIYLUVIYKXSUVIYKUVEYKHMAXSVKVFZVLZUVEXSTMAXSVMVFZUVEXSVNVOAX
      SVPVFZVQUVIYKXSUVNUVOUVIYKUVMVRUVPVTVSWAZUVIYOUVIYCIUVIBXSUVLUVOUVPVQZUVI
      WBZWCZUVIBXSAYJUVEDVJAUVEWDZWEZVSZWLZALUVCIWFZXPYSLKZWGWHUWEWGWIMABEUVCUV
      GDWJUWEUWFWGLUVCIWKXPYSLUQWMUIZWNABUVKABDWOZVSYRYSWPWQAUUKYFUULBJAHYQGFZC
      UFUUKYFAYQCUVCIHUTUVDUVHUWDUWGWRAHUWIYECUVIUWIYNGFZYPGFZJKZYEUVIYNTMYPTMU
      WIUWLNUVQUWCYNYPWPWQUVIUWJYBUWKYDJUVIUWJBYAOFZPKZGFYBUVIYNUWNGUVIYMUWMBPU
      VIYLYAOUVIYLXSXSJKZXTLKYAUVIXSIXSUVOUVSUVOUVPWSUVIUWOIXTLUVIXSUVOUVPXCULX
      DRVCRUVIYABUVIYAUVIIXTIWTMUVIXAXBUVIXSUVIXSUWAXEXFXGZXHUVIYAUWPXIUVLXJXKU
      VIUWKYOYDUVIYOTMYOVNVOUWKYONUVTUWBYOXMWQUVIYCIUVRUVSXNXDSXDXLXOAUVJBVNVOU
      ULBNUVKUWHBXMWQSXDXDXO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Factorial limits
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d a b $.  $d a k $.  $d a n $.  $d b n $.  $d b x $.  $d k n $.  $d M a $.
    $d M b $.  $d M k $.  $d M n $.  $d M x $.
    $( Lemma for ~ faclim .  Closed form for a particular sequence.
       (Contributed by Scott Fenton, 15-Dec-2017.) $)
    faclimlem1 $p |- ( M e. NN0 ->
     seq 1 ( x. , ( n e. NN |-> ( ( ( 1 + ( M / n ) ) x. ( 1 + ( 1 / n ) ) ) /
     ( 1 + ( ( M + 1 ) / n ) ) ) ) ) =
     ( x e. NN |-> ( ( M + 1 ) x. ( ( x + 1 ) / ( x + ( M + 1 ) ) ) ) ) ) $=
      ( vb wcel cv cmul cn c1 cdiv co caddc cfv wceq oveq1 oveq12d oveq2d oveq2
      3eqtrd rpcnd va vk cn0 cmpt cseq wral wa wi fveq2 cz 1z seq1 ax-mp syl6eq
      eqeq12d imbi2d weq 1nn eqid ovex fvmpt nn0cn div1d 1div1e1 oveq2i nn0p1nn
      nncnd 1cnd addcomd oveq1d cc ax-1cn addcli nnaddcld nnne0d divassd syl5eq
      a1i cuz seqp1 nnuz eleq2s adantr adantl peano2nn syl nnrpd simpl rpaddcld
      rpdivcld crp cr nn0re nndivred recnd cc0 cle wbr divge0d ge0p1rpd eqeltrd
      nn0ge0 1rp rpreccld rpmulcld mulassd rpne0d divcan5d mul12d mulid1d simpr
      adddid nn0cnd divcan2d addassd eqtrd eqtr3d divcan1d 3eqtr3rd exp31 nnind
      a2d impcom eqtr4d ralrimiva wfn wb seqfn fneq2i mpbir fnmpti eqfnfv mp2an
      sylibr ) CUCEZDFZGBHICBFZJKZLKZIIYQJKZLKZGKZICILKZYQJKZLKZJKZUDZIUEZMZYPA
      HUUCAFZILKZUUJUUCLKZJKZGKZUDZMZNZDHUFZUUHUUONZYOUUQDHYOYPHEZUGUUIUUCYPILK
      ZYPUUCLKZJKZGKZUUPUUTYOUUIUVDNZYOUAFZUUHMZUUCUVFILKZUVFUUCLKZJKZGKZNZUHYO
      IUUGMZUUCIILKZIUUCLKZJKZGKZNZUHYOUBFZUUHMZUUCUVSILKZUVSUUCLKZJKZGKZNZUHYO
      UWAUUHMZUUCUWAILKZUWAUUCLKZJKZGKZNZUHYOUVEUHUAUBYPUVFINZUVLUVRYOUWLUVGUVM
      UVKUVQUWLUVGIUUHMZUVMUVFIUUHUIIUJEZUWMUVMNUKGUUGIULUMUNUWLUVJUVPUUCGUWLUV
      HUVNUVIUVOJUVFIILOUVFIUUCLOPQUOUPUAUBUQZUVLUWEYOUWOUVGUVTUVKUWDUVFUVSUUHU
      IUWOUVJUWCUUCGUWOUVHUWAUVIUWBJUVFUVSILOUVFUVSUUCLOPQUOUPUVFUWANZUVLUWKYOU
      WPUVGUWFUVKUWJUVFUWAUUHUIUWPUVJUWIUUCGUWPUVHUWGUVIUWHJUVFUWAILOUVFUWAUUCL
      OPQUOUPUADUQZUVLUVEYOUWQUVGUUIUVKUVDUVFYPUUHUIUWQUVJUVCUUCGUWQUVHUVAUVIUV
      BJUVFYPILOUVFYPUUCLOPQUOUPYOUVMICIJKZLKZIIIJKZLKZGKZIUUCIJKZLKZJKZUVQIHEZ
      UVMUXENURBIUUFUXEHUUGYQINZUUBUXBUUEUXDJUXGYSUWSUUAUXAGUXGYRUWRILYQICJRQUX
      GYTUWTILYQIIJRQPUXGUUDUXCILYQIUUCJRQPUUGUSZUXBUXDJUTVAUMYOUXEICLKZUVNGKZU
      VOJKUUCUVNGKZUVOJKUVQYOUXBUXJUXDUVOJYOUWSUXIUXAUVNGYOUWRCILYOCCVBZVCQUXAU
      VNNYOUWTIILVDVEVRPYOUXCUUCILYOUUCYOUUCCVFZVGZVCQPYOUXJUXKUVOJYOUXIUUCUVNG
      YOICYOVHUXLVIVJVJYOUUCUVNUVOUXNUVNVKEYOIIVLVLVMVRYOUVOYOIUUCUXFYOURVRUXMV
      NZVGYOUVOUXOVOVPSVQUVSHEZYOUWEUWKUXPYOUWEUWKUXPYOUGZUWEUGUWFUVTUWAUUGMZGK
      ZUWDUXRGKZUWJUXQUWFUXSNZUWEUXPUYAYOUYAUVSIVSMZHGUUGIUVSVTWAWBWCWCUWEUXSUX
      TNUXQUVTUWDUXRGOWDUXQUXTUWJNUWEUXQUXTUWDICUWAJKZLKZIIUWAJKZLKZGKZIUUCUWAJ
      KZLKZJKZGKZUUCUWCUYJGKZGKUWJUXPUXTUYKNYOUXPUXRUYJUWDGUXPUWAHEZUXRUYJNUVSW
      EZBUWAUUFUYJHUUGYQUWANZUUBUYGUUEUYIJUYOYSUYDUUAUYFGUYOYRUYCILYQUWACJRQUYO
      YTUYEILYQUWAIJRQPUYOUUDUYHILYQUWAUUCJRQPUXHUYGUYIJUTVAWFQWCUXQUUCUWCUYJUX
      QUUCYOUUCHEUXPUXMWDZVGZUXQUWCUXQUWAUWBUXQUWAUXPUYMYOUYNWCZWGZUXQUVSUUCUXQ
      UVSUXPYOWHZWGUXQUUCUYPWGZWIZWJZTZUXQUYJUXQUYGUYIUXQUYDUYFUXQUYDUYCILKWKUX
      QIUYCUXQVHZUXQUYCUXQCUWAYOCWLEUXPCWMWDZUYRWNZWOZVIUXQUYCVUGUXQCUWAVUFUYSY
      OWPCWQWRUXPCXBWDWSWTXAZUXQIUYEIWKEUXQXCVRZUXQUWAUYSXDZWIZXEZUXQIUYHVUJUXQ
      UUCUWAVUAUYSWJZWIZWJTXFUXQUYLUWIUUCGUXQUWAUWCUYGGKZGKZUWAUYIGKZJKVUPUYIJK
      UWIUYLUXQVUPUYIUWAUXQVUPUXQUWCUYGVUCVUMXETUXQUYIVUOTZUXQUWAUYRVGZUXQUYIVU
      OXGZUXQUWAUYRVOZXHUXQVUQUWGVURUWHJUXQVUQUWCUWAUYGGKZGKUWCUWBUYFGKZGKZUWGU
      XQUWAUWCUYGVUTVUDUXQUYGVUMTZXIUXQVVCVVDUWCGUXQUWAUYDGKZUYFGKVVCVVDUXQUWAU
      YDUYFVUTUXQUYDVUITUXQUYFVULTZXFUXQVVGUWBUYFGUXQVVGUWAIGKZUWAUYCGKZLKUWACL
      KZUWBUXQUWAIUYCVUTVUEVUHXLUXQVVIUWAVVJCLUXQUWAVUTXJZUXQCUWAUXQCUXPYOXKXMZ
      VUTVVBXNPUXQVVKUVSUXILKUWBUXQUVSICUXQUVSUYTVGVUEVVMXOUXQUXIUUCUVSLUXQICVU
      EVVMVIQXPSVJXQQUXQUWCUWBGKZUYFGKZVVEUWGUXQUWCUWBUYFVUDUXQUWBVUBTZVVHXFUXQ
      VVOUWAUYFGKVVIUWAUYEGKZLKUWGUXQVVNUWAUYFGUXQUWAUWBVUTVVPUXQUWBVUBXGXRVJUX
      QUWAIUYEVUTVUEUXQUYEVUKTXLUXQVVIUWAVVQILVVLUXQIUWAVUEVUTVVBXNPSXQSUXQVURV
      VIUWAUYHGKZLKUWHUXQUWAIUYHVUTVUEUXQUYHVUNTXLUXQVVIUWAVVRUUCLVVLUXQUUCUWAU
      YQVUTVVBXNPXPPUXQUWCUYGUYIVUDVVFVUSVVAVPXSQSWCSXTYBYAYCUUTUUPUVDNYOAYPUUN
      UVDHUUOADUQZUUMUVCUUCGVVSUUKUVAUULUVBJUUJYPILOUUJYPUUCLOPQUUOUSZUUCUVCGUT
      VAWDYDYEUUHHYFZUUOHYFUUSUURYGVWAUUHUYBYFZUWNVWBUKGUUGIYHUMHUYBUUHWAYIYJAH
      UUNUUOUUCUUMGUTVVTYKDHUUHUUOYLYMYN $.
  $}

  ${
    $d k m $.  $d M k $.  $d M m $.  $d M n $.
    $( Lemma for ~ faclim .  Show a limit for the inductive step.  (Contributed
       by Scott Fenton, 15-Dec-2017.) $)
    faclimlem2 $p |- ( M e. NN0 ->
     seq 1 ( x. ,
     ( n e. NN |-> ( ( ( 1 + ( M / n ) ) x. ( 1 + ( 1 / n ) ) ) /
     ( 1 + ( ( M + 1 ) / n ) ) ) ) ) ~~> ( M + 1 ) ) $=
      ( vm vk wcel cmul cn c1 cv cdiv co caddc cmpt cli cvv nnuz nnex mptex a1i
      adantl cn0 cseq faclimlem1 1zzd 1cnd nn0p1nn nnzd cfv wceq weq oveq1 eqid
      oveq12d ovex fvmpt divcnvlin nncnd cc wa peano2nn nnred nnaddcld nndivred
      simpr adantr recnd fmptd ffvelrnda oveq2d eqtr4d mulid1d breqtrd eqbrtrd
      climmulc2 ) BUAEZFAGHBAIZJKLKHHVPJKLKFKHBHLKZVPJKLKJKMHUBCGVQCIZHLKZVRVQL
      KZJKZFKZMZVQNCABUCVOWCVQHFKVQNVOHVQDCGWAMZWCHOGPVOUDZVOHVQDWDHOGPWEVOUEVO
      VQBUFZUGWDOEVOCGWAQRSDIZGEZWGWDUHZWGHLKZWGVQLKZJKZUIVOCWGWAWLGWDCDUJZVSWJ
      VTWKJVRWGHLUKVRWGVQLUKUMZWDULZWJWKJUNUOZTUPVOVQWFUQZWCOEVOCGWBQRSVOGURWGW
      DVOCGWAURWDVOVRGEZUSZWAWSVSVTWSVSWRVSGEVOVRUTTVAWSVRVQVOWRVDVOVQGEWRWFVEV
      BVCVFWOVGVHWHWGWCUHZVQWIFKZUIVOWHWTVQWLFKZXACWGWBXBGWCWMWAWLVQFWNVIWCULVQ
      WLFUNUOWHWIWLVQFWPVIVJTVNVOVQWQVKVLVM $.
  $}

  $( Lemma for ~ faclim .  Algebraic manipulation for the final induction.
     (Contributed by Scott Fenton, 15-Dec-2017.) $)
  faclimlem3 $p |- ( ( M e. NN0 /\ B e. NN ) ->
  ( ( ( 1 + ( 1 / B ) ) ^ ( M + 1 ) ) / ( 1 + ( ( M + 1 ) / B ) ) ) =
  ( ( ( ( 1 + ( 1 / B ) ) ^ M ) / ( 1 + ( M / B ) ) ) x.
    ( ( ( 1 + ( M / B ) ) x. ( 1 + ( 1 / B ) ) ) / ( 1 + ( ( M + 1 ) / B ) ) )
    ) ) $=
    ( cn0 wcel cn c1 cdiv co caddc cexp cmul crp 1rp a1i adantl rpaddcld rpne0d
    rpcnd oveq1d rpdivcld wa nnrp rpreccld simpl expp1d cz nn0z rpexpcl syl2anr
    1cnd nn0nndivcl addcomd nn0ge0div ge0p1rpd eqeltrd divcan1d mulassd 3eqtr2d
    recnd rpmulcld nn0p1nn nnrpd adantr divassd eqtrd ) BCDZAEDZUAZFFAGHZIHZBFI
    HZJHZFVKAGHZIHZGHVJBJHZFBAGHZIHZGHZVQVJKHZKHZVNGHVRVSVNGHKHVHVLVTVNGVHVLVOV
    JKHVRVQKHZVJKHVTVHVJBVHVJVHFVIFLDZVHMNZVGVILDVFVGAAUBZUCZOPZRZVFVGUDUEVHWAV
    OVJKVHVOVQVHVOVGVJLDBUFDVOLDVFVGFVIWBVGMNWEPBUGVJBUHUIZRVHVQVHVQVPFIHLVHFVP
    VHUJVHVPBAUKZUSULVHVPWIBAUMUNUOZRZVHVQWJQUPSVHVRVQVJVHVRVHVOVQWHWJTRZWKWGUQ
    URSVHVRVSVNWLVHVSVHVQVJWJWFUTRVHVNVHFVMWCVHVKAVFVKLDVGVFVKBVAVBVCVGALDVFWDO
    TPZRVHVNWMQVDVE $.

  ${
    $d A a b m n x $.
    faclim.1 $e |- F =
         ( n e. NN |-> ( ( ( 1 + ( 1 / n ) ) ^ A ) / ( 1 + ( A / n ) ) ) ) $.
    $( An infinite product expression relating to factorials.  Originally due
       to Euler.  (Contributed by Scott Fenton, 22-Nov-2017.) $)
    faclim $p |- ( A e. NN0 -> seq 1 ( x. , F ) ~~> ( ! ` A ) ) $=
      ( wcel cmul c1 cseq cn cdiv co caddc cexp cfa cfv cli wceq cc0 oveq12d cc
      va vm vb vx cn0 cmpt seqeq3 ax-mp wbr oveq2 oveq1 oveq2d mpteq2dv seqeq3d
      cv fveq2 fac0 syl6eq breq12d weq csn cxp 1red nnrecre readdcld recnd nncn
      exp0d nnne0 div0d 1p0e1 1div1e1 fconstmpt eqtr4i wtru nnuz 1zzd climprod1
      mpteq2ia trud eqbrtri wa cvv simpr seqex a1i faclimlem2 adantr cuz elnnuz
      biimpi adantl cfz wf crp 1rp nnrp rpreccld rpaddcld cz nn0z rpexpcld 1cnd
      nn0nndivcl addcomd nn0ge0div ge0p1rpd eqeltrd rpdivcld rpcnd fmptd elfznn
      eqid ffvelrn syl2an adantlr mulcl seqcl rpmulcld nn0p1nn nnrpd faclimlem3
      rpdivcl oveq1d ovex fvmpt 3eqtr4d sylan2 prodfmul climmul breqtrrd nn0ind
      facp1 ex syl5eqbr ) AUEEFCGHZFBIGGBUOZJKZLKZAMKZGAYQJKZLKZJKZUFZGHZANOZPC
      UUDQYPUUEQDFCUUDGUGUHFBIYSUAUOZMKZGUUGYQJKZLKZJKZUFZGHZUUGNOZPUIFBIYSRMKZ
      GRYQJKZLKZJKZUFZGHZGPUIFBIYSUBUOZMKZGUVAYQJKZLKZJKZUFZGHZUVANOZPUIZFBIYSU
      VAGLKZMKZGUVJYQJKZLKZJKZUFZGHZUVJNOZPUIZUUEUUFPUIUAUBAUUGRQZUUMUUTUUNGPUV
      SUULUUSFGUVSBIUUKUURUVSUUHUUOUUJUUQJUUGRYSMUJUVSUUIUUPGLUUGRYQJUKULSUMUNU
      VSUUNRNOGUUGRNUPUQURUSUAUBUTZUUMUVGUUNUVHPUVTUULUVFFGUVTBIUUKUVEUVTUUHUVB
      UUJUVDJUUGUVAYSMUJUVTUUIUVCGLUUGUVAYQJUKULSUMUNUUGUVANUPUSUUGUVJQZUUMUVPU
      UNUVQPUWAUULUVOFGUWABIUUKUVNUWAUUHUVKUUJUVMJUUGUVJYSMUJUWAUUIUVLGLUUGUVJY
      QJUKULSUMUNUUGUVJNUPUSUUGAQZUUMUUEUUNUUFPUWBUULUUDFGUWBBIUUKUUCUWBUUHYTUU
      JUUBJUUGAYSMUJUWBUUIUUAGLUUGAYQJUKULSUMUNUUGANUPUSUUTFIGVAVBZGHZGPUUSUWCQ
      UUTUWDQUUSBIGUFUWCBIUURGYQIEZUURGGJKGUWEUUOGUUQGJUWEYSUWEYSUWEGYRUWEVCYQV
      DVEVFVHUWEUUQGRLKGUWEUUPRGLUWEYQYQVGYQVIVJULVKURSVLURVSBIGVMVNFUUSUWCGUGU
      HUWDGPUIVOGIVPVOVQVRVTWAUVAUEEZUVIUVRUWFUVIWBZUVPUVHUVJFKZUVQPUWGUVHUVJUA
      UVGFBIUVDYSFKZUVMJKZUFZGHZUVPGWCIVPUWGVQUWFUVIWDUVPWCEUWGFUVOGWEWFUWFUWLU
      VJPUIUVIBUVAWGWHUWFUUGIEZUUGUVGOZTEUVIUWFUWMWBZUCUDFTUVFGUUGUWMUUGGWIOEZU
      WFUWMUWPUUGWJWKWLZUWFUCUOZGUUGWMKEZUWRUVFOZTEZUWMUWFITUVFWNUWRIEZUXAUWSUW
      FBIUVETUVFUWFUWEWBZUVEUXCUVBUVDUXCYSUVAUXCGYRGWOEUXCWPWFZUWEYRWOEUWFUWEYQ
      YQWQZWRWLWSZUWFUVAWTEUWEUVAXAWHXBUXCUVDUVCGLKWOUXCGUVCUXCXCUXCUVCUVAYQXDZ
      VFXEUXCUVCUXGUVAYQXFXGXHZXIXJUVFXMZXKUWRUUGXLZITUWRUVFXNXOXPZUWRTEUDUOZTE
      WBUWRUXLFKTEUWOUWRUXLXQWLZXRXPUWFUWMUUGUWLOZTEUVIUWOUCUDFTUWKGUUGUWQUWFUW
      SUWRUWKOZTEZUWMUWFITUWKWNUXBUXPUWSUWFBIUWJTUWKUXCUWJUXCUWIUVMUXCUVDYSUXHU
      XFXSUXCGUVLUXDUWFUVJWOEYQWOEUVLWOEUWEUWFUVJUVAXTYAUXEUVJYQYCXOWSXIXJUWKXM
      ZXKUXJITUWRUWKXNXOXPZUXMXRXPUWFUWMUUGUVPOUWNUXNFKQUVIUWOUCUVFUWKUVOGUUGUW
      QUXKUXRUWFUWSUWRUVOOZUWTUXOFKZQZUWMUWSUWFUXBUYAUXJUWFUXBWBGGUWRJKZLKZUVJM
      KZGUVJUWRJKZLKZJKZUYCUVAMKZGUVAUWRJKZLKZJKZUYJUYCFKZUYFJKZFKZUXSUXTUWRUVA
      YBUXBUXSUYGQUWFBUWRUVNUYGIUVOBUCUTZUVKUYDUVMUYFJUYOYSUYCUVJMUYOYRUYBGLYQU
      WRGJUJULZYDUYOUVLUYEGLYQUWRUVJJUJULZSUVOXMUYDUYFJYEYFWLUXBUXTUYNQUWFUXBUW
      TUYKUXOUYMFBUWRUVEUYKIUVFUYOUVBUYHUVDUYJJUYOYSUYCUVAMUYPYDUYOUVCUYIGLYQUW
      RUVAJUJULZSUXIUYHUYJJYEYFBUWRUWJUYMIUWKUYOUWIUYLUVMUYFJUYOUVDUYJYSUYCFUYR
      UYPSUYQSUXQUYLUYFJYEYFSWLYGYHXPYIXPYJUWFUVQUWHQUVIUVAYMWHYKYNYLYO $.
  $}

  ${
    $d A k x $.
    $( An infinite product expression for factorial.  (Contributed by Scott
       Fenton, 15-Dec-2017.) $)
    iprodfac $p |- ( A e. NN0 -> ( ! ` A ) =
      prod_ k e. NN ( ( ( 1 + ( 1 / k ) ) ^ A ) / ( 1 + ( A / k ) ) ) ) $=
      ( vx cn0 wcel cn c1 cv cdiv co caddc cexp cprod cfa cfv cmpt oveq2 oveq2d
      nnuz crp 1zzd facne0 eqid faclim wceq oveq1d oveq12d ovex fvmpt adantl wa
      weq 1rp a1i simpr nnrpd rpreccld rpaddcld nn0z adantr rpexpcld nn0nndivcl
      cz recnd addcomd nn0ge0div ge0p1rpd eqeltrd rpdivcld rpcnd iprodn0 eqcomd
      1cnd ) ADEZFGGBHZIJZKJZALJZGAVOIJZKJZIJZBMANOZVNWABCFGGCHZIJZKJZALJZGAWCI
      JZKJZIJZPZGWBFSVNUAAUBACWJWJUCZUDVOFEZVOWJOWAUEVNCVOWIWAFWJCBULZWFVRWHVTI
      WMWEVQALWMWDVPGKWCVOGIQRUFWMWGVSGKWCVOAIQRUGWKVRVTIUHUIUJVNWLUKZWAWNVRVTW
      NVQAWNGVPGTEWNUMUNWNVOWNVOVNWLUOUPUQURVNAVCEWLAUSUTVAWNVTVSGKJTWNGVSWNVMW
      NVSAVOVBZVDVEWNVSWOAVOVFVGVHVIVJVKVL $.
  $}

  ${
    $d a m $.  $d a n $.  $d k m $.  $d k n $.  $d M a $.  $d m n $.  $d M n $.
    faclim2.1 $e |- F =
     ( n e. NN |->
     ( ( ( ! ` n ) x. ( ( n + 1 ) ^ M ) ) / ( ! ` ( n + M ) ) ) ) $.
    $( Another factorial limit due to Euler.  (Contributed by Scott Fenton,
       17-Dec-2017.) $)
    faclim2 $p |- ( M e. NN0 -> F ~~> 1 ) $=
      ( wcel cn cfa cfv c1 caddc co cexp cmul cdiv cli cc0 fveq2d oveq12d nncnd
      wceq va vm vk cn0 cmpt wbr oveq2 oveq2d mpteq2dv breq1d weq wtru cvv nnuz
      cv 1zzd nnex mptex 1cnd fveq2 oveq1 oveq1d eqid ovex fvmpt peano2nn exp0d
      a1i nnnn0 faccl mulid1d eqtrd nncn addid1d nnne0d dividd 3eqtrd climconst
      syl adantl trud wa simpr nn0p1nn divcnvlin adantr cc nnnn0d nnexpcl sylan
      nnzd ancoms nnmulcld nnred nnnn0addcl nndivred ffvelrnda adantlr nnaddcld
      recnd fmptd simpl expp1d mulassd eqtr4d nn0addcld facp1 nn0cnd divmuldivd
      addassd 3eqtr3d 3eqtr4d climmul 1t1e1 syl6breq ex nn0ind syl5eqbr ) CUDEB
      AFAUOZGHZXSIJKZCLKZMKZXSCJKZGHZNKZUEZIODAFXTYAUAUOZLKZMKZXSYHJKZGHZNKZUEZ
      IOUFAFXTYAPLKZMKZXSPJKZGHZNKZUEZIOUFZAFXTYAUBUOZLKZMKZXSUUBJKZGHZNKZUEZIO
      UFZAFXTYAUUBIJKZLKZMKZXSUUJJKZGHZNKZUEZIOUFZYGIOUFUAUBCYHPTZYNYTIOUURAFYM
      YSUURYJYPYLYRNUURYIYOXTMYHPYALUGUHUURYKYQGYHPXSJUGQRUIUJUAUBUKZYNUUHIOUUS
      AFYMUUGUUSYJUUDYLUUFNUUSYIUUCXTMYHUUBYALUGUHUUSYKUUEGYHUUBXSJUGQRUIUJYHUU
      JTZYNUUPIOUUTAFYMUUOUUTYJUULYLUUNNUUTYIUUKXTMYHUUJYALUGUHUUTYKUUMGYHUUJXS
      JUGQRUIUJYHCTZYNYGIOUVAAFYMYFUVAYJYCYLYENUVAYIYBXTMYHCYALUGUHUVAYKYDGYHCX
      SJUGQRUIUJUUAULIUBYTIUMFUNULUPYTUMEULAFYSUQURVHULUSUUBFEZUUBYTHZITULUVBUV
      CUUBGHZUUJPLKZMKZUUBPJKZGHZNKZUVDUVDNKIAUUBYSUVIFYTAUBUKZYPUVFYRUVHNUVJXT
      UVDYOUVEMXSUUBGUTUVJYAUUJPLXSUUBIJVAVBRUVJYQUVGGXSUUBPJVAQRYTVCUVFUVHNVDV
      EUVBUVFUVDUVHUVDNUVBUVFUVDIMKUVDUVBUVEIUVDMUVBUUJUVBUUJUUBVFSVGUHUVBUVDUV
      BUVDUVBUUBUDEZUVDFEUUBVIUUBVJVSZSZVKVLUVBUVGUUBGUVBUUBUUBVMVNQRUVBUVDUVMU
      VBUVDUVLVOVPVQVTVRWAUVKUUIUUQUVKUUIWBZUUPIIMKIOUVNIIUCUUHAFYAUUMNKZUEZUUP
      IUMFUNUVNUPUVKUUIWCUUPUMEUVNAFUUOUQURVHUVKUVPIOUFUUIUVKIUUJUCUVPIUMFUNUVK
      UPUVKUSUVKUUJUUBWDZWKUVPUMEUVKAFUVOUQURVHUCUOZFEZUVRUVPHZUVRIJKZUVRUUJJKZ
      NKZTUVKAUVRUVOUWCFUVPAUCUKZYAUWAUUMUWBNXSUVRIJVAZXSUVRUUJJVAZRUVPVCZUWAUW
      BNVDVEZVTWEWFUVKUVSUVRUUHHZWGEUUIUVKFWGUVRUUHUVKAFUUGWGUUHUVKXSFEZWBZUUGU
      WKUUDUUFUWKUUDUWKXTUUCUWKXSUDEXTFEUWKXSUVKUWJWCZWHXSVJVSUWJUVKUUCFEZUWJYA
      FEZUVKUWMXSVFZYAUUBWIWJWLWMWNUWKUUEUDEUUFFEUWKUUEUWJUVKUUEFEXSUUBWOWLWHUU
      EVJVSWPWTUUHVCZXAWQWRUVKUVSUVTWGEUUIUVKFWGUVRUVPUVKAFUVOWGUVPUWKUVOUWKYAU
      UMUWKYAUWJUWNUVKUWOVTWNUWKXSUUJUWLUVKUUJFEZUWJUVQWFWSWPWTUWGXAWQWRUVKUVSU
      VRUUPHZUWIUVTMKZTUUIUVKUVSWBZUVRGHZUWAUUJLKZMKZUWBGHZNKZUXAUWAUUBLKZMKZUV
      RUUBJKZGHZNKZUWCMKZUWRUWSUWTUXEUXGUWAMKZUXIUWBMKZNKUXKUWTUXCUXLUXDUXMNUWT
      UXCUXAUXFUWAMKZMKUXLUWTUXBUXNUXAMUWTUWAUUBUWTUWAUVSUWAFEZUVKUVRVFZVTSZUVK
      UVSXBZXCUHUWTUXAUXFUWAUWTUXAUWTUVRUDEUXAFEUWTUVRUVKUVSWCZWHZUVRVJVSZSUWTU
      XFUVSUVKUXFFEZUVSUXOUVKUYBUXPUWAUUBWIWJWLZSUXQXDXEUWTUXHIJKZGHZUXIUYDMKZU
      XDUXMUWTUXHUDEZUYEUYFTUWTUVRUUBUXTUXRXFZUXHXGVSUWTUYDUWBGUWTUVRUUBIUWTUVR
      UXSSUWTUUBUXRXHUWTUSXJZQUWTUYDUWBUXIMUYIUHXKRUWTUXGUXIUWAUWBUWTUXGUWTUXAU
      XFUYAUYCWMSUWTUXIUWTUYGUXIFEUYHUXHVJVSZSUXQUWTUWBUWTUVRUUJUXSUVKUWQUVSUVQ
      WFWSZSUWTUXIUYJVOUWTUWBUYKVOXIXEUVSUWRUXETUVKAUVRUUOUXEFUUPUWDUULUXCUUNUX
      DNUWDXTUXAUUKUXBMXSUVRGUTZUWDYAUWAUUJLUWEVBRUWDUUMUWBGUWFQRUUPVCUXCUXDNVD
      VEVTUVSUWSUXKTUVKUVSUWIUXJUVTUWCMAUVRUUGUXJFUUHUWDUUDUXGUUFUXINUWDXTUXAUU
      CUXFMUYLUWDYAUWAUUBLUWEVBRUWDUUEUXHGXSUVRUUBJVAQRUWPUXGUXINVDVEUWHRVTXLWR
      XMXNXOXPXQXR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Greatest common divisor and divisibility
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Condition for a prime dividing a square.  (Contributed by Scott Fenton,
     8-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  pdivsq $p |- ( ( P e. Prime /\ M e. ZZ )
      -> ( P || M <-> P || ( M ^ 2 ) ) ) $=
    ( cprime wcel cz wa c2 cexp co cdvds wbr cmul wb zcn sqvald breq2d euclemma
    adantl wo 3anidm23 oridm syl6bb bitr2d ) ACDZBEDZFZABGHIZJKZABBLIZJKZABJKZU
    EUHUJMUDUEUGUIAJUEBBNOPRUFUJUKUKSZUKUDUEUJULMABBQTUKUAUBUC $.

  ${
    $d K m $.  $d M m $.  $d N m $.
    $( Exponentiation law for divisibility.  (Contributed by Scott Fenton,
       7-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    dvdspw $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. NN )
        -> ( K || M -> K || ( M ^ N ) ) ) $=
      ( vm cz wcel cn w3a cdvds wbr cv cmul co cexp wa syl2anc adantr zexpcl cc
      zcn wceq wrex wb divides simpl1 simpl3 iddvdsexp cn0 simpr nnnn0 3ad2ant3
      3adant3 dvdsmul2 wi zmulcld dvdstr syl3anc mp2and adantl 3ad2ant1 mulexpd
      breqtrrd oveq1 breq2d syl5ibcom rexlimdva sylbid ) AEFZBEFZCGFZHZABIJZDKZ
      ALMZBUAZDEUBZABCNMZIJZVHVIVLVPUCVJDABUDULVKVOVRDEVKVMEFZOZAVNCNMZIJVOVRVT
      AVMCNMZACNMZLMZWAIVTAWCIJZWCWDIJZAWDIJZVTVHVJWEVHVIVJVSUEZVHVIVJVSUFACUGP
      VTWBEFZWCEFZWFVTVSCUHFZWIVKVSUIVKWKVSVJVHWKVICUJUKQZVMCRPZVTVHWKWJWHWLACR
      PZWBWCUMPVTVHWJWDEFWEWFOWGUNWHWNVTWBWCWMWNUOAWCWDUPUQURVTVMACVSVMSFVKVMTU
      SVKASFZVSVHVIWOVJATUTQWLVAVBVOWAVQAIVNBCNVCVDVEVFVG $.
  $}

  $( Swap the second and third arguments of a gcd.  (Contributed by Scott
     Fenton, 8-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  gcd32 $p |- ( ( A e. ZZ /\ B e. ZZ /\ C e. ZZ ) ->
    ( ( A gcd B ) gcd C ) = ( ( A gcd C ) gcd B ) ) $=
    ( cz wcel w3a cgcd co wceq wa gcdcom oveq2d 3adant1 gcdass 3com23 3eqtr4d )
    ADEZBDEZCDEZFABCGHZGHZACBGHZGHZABGHCGHACGHBGHZRSUAUCIQRSJTUBAGBCKLMCBANQSRU
    DUCIBCANOP $.

  $( Absorption law for gcd.  (Contributed by Scott Fenton, 8-Apr-2014.)
     (Revised by Mario Carneiro, 19-Apr-2014.) $)
  gcdabsorb $p |- ( ( A e. ZZ /\ B e. ZZ ) -> ( ( A gcd B ) gcd B ) = ( A gcd B
      ) ) $=
    ( cz wcel wa cgcd cabs cfv wceq gcdass 3anidm23 gcdid oveq2d adantl gcdabs2
    co 3eqtrd ) ACDZBCDZEABFPZBFPZABBFPZFPZABGHZFPZTRSUAUCIBBAJKSUCUEIRSUBUDAFB
    LMNBAOQ $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Properties of relationships
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    brtp.1 $e |- X e. _V $.
    brtp.2 $e |- Y e. _V $.
    $( A condition for a binary relation over an unordered triple.
       (Contributed by Scott Fenton, 8-Jun-2011.) $)
    brtp $p |- ( X { <. A , B >. , <. C , D >. , <. E , F >. } Y <->
                 ( ( X = A /\ Y = B ) \/
                   ( X = C /\ Y = D ) \/
                   ( X = E /\ Y = F ) ) ) $=
      ( cop ctp wbr wcel wceq w3o wa df-br opex opth eltp 3orbi123i 3bitri ) GH
      ABKZCDKZEFKZLZMGHKZUGNUHUDOZUHUEOZUHUFOZPGAOHBOQZGCOHDOQZGEOHFOQZPGHUGRUH
      UDUEUFGHSUAUIULUJUMUKUNGHABIJTGHCDIJTGHEFIJTUBUC $.
  $}

  ${
    $d A x y $.
    dftr6.1 $e |- A e. _V $.
    $( A potential definition of transitivity for sets.  (Contributed by Scott
       Fenton, 18-Mar-2012.) $)
    dftr6 $p |- ( Tr A <-> A e. ( _V \ ran ( ( _E o. _E ) \ _E ) ) ) $=
      ( vx vy wel cv wcel wa wi wal cep cdif wn cvv wbr wex epelc anbi12i exbii
      3bitri ccom crn wtr elrn brdif vex brco epel notbii 19.41v exanali bitr3i
      bitri exnal con2bii dftr2 eldif mpbiran 3bitr4i ) CDEZDFZAGZHZCFZAGZIDJZC
      JZAKKUAZKLZUBZGZMZAUCANVJLGZVKVGVKVDAVIOZCPVFMZCPVGMCAVIBUDVNVOCVNVDAVHOZ
      VDAKOZMZHVCDPZVEMZHZVOVDAVHKUEVPVSVRVTVPVDVAKOZVAAKOZHZDPVSDVDAKKCUFBUGWD
      VCDWBUTWCVBCDUHVAABQRSUMVQVEVDABQUIRWAVCVTHDPVOVCVTDUJVCVEDUKULTSVFCUNTUO
      CDAUPVMANGVLBANVJUQURUS $.
  $}

  ${
    $d A x $.  $d B x $.  $d R x $.
    coep.1 $e |- A e. _V $.
    coep.2 $e |- B e. _V $.
    $( Composition with epsilon.  (Contributed by Scott Fenton,
       18-Feb-2013.) $)
    coep $p |- ( A ( _E o. R ) B <-> E. x e. B A R x ) $=
      ( cv wbr cep wa wex wcel ccom wrex epelc anbi2i ancom bitri exbii brco
      df-rex 3bitr4i ) BAGZDHZUCCIHZJZAKUCCLZUDJZAKBCIDMHUDACNUFUHAUFUDUGJUHUEU
      GUDUCCFOPUDUGQRSABCIDEFTUDACUAUB $.

    $( Composition with the converse of epsilon.  (Contributed by Scott Fenton,
       18-Feb-2013.) $)
    coepr $p |- ( A ( R o. `' _E ) B <-> E. x e. A x R B ) $=
      ( cv cep ccnv wbr wa wex wcel ccom wrex vex brcnv epelc bitri anbi1i brco
      exbii df-rex 3bitr4i ) BAGZHIZJZUECDJZKZALUEBMZUHKZALBCDUFNJUHABOUIUKAUGU
      JUHUGUEBHJUJBUEHEAPQUEBERSTUBABCDUFEFUAUHABUCUD $.
  $}

  ${
    $d R x y z $.  $d A x y z $.
    $( A quantifier free definition of a well-founded relationship.
       (Contributed by Scott Fenton, 11-Apr-2011.) $)
    dffr5 $p |- ( R Fr A <->
                  ( ~P A \ { (/) } ) C_ ran ( _E \ ( _E o. `' R ) ) ) $=
      ( vx vz vy cv c0 cdif wcel cep wi wal wss wa wbr wrex anbi12i bitri vex
      wn cpw csn ccnv ccom crn wne wral wfr eldif selpw necon3bbii wex wel epel
      velsn brdif coep brcnv rexbii dfrex2 3bitrri con1bii exbii df-rex 3bitr4i
      elrn imbi12i albii dfss2 df-fr 3bitr4ri ) CFZAUAZGUBZHZIZVLJJBUCZUDZHZUEZ
      IZKZCLVLAMZVLGUFZNZDFZEFZBOZTDVLUGZEVLPZKZCLVOVTMABUHWBWKCVPWEWAWJVPVLVMI
      ZVLVNIZTZNWEVLVMVNUIWLWCWNWDCAUJWMVLGCGUOUKQRWGVLVSOZEULECUMZWINZEULWAWJW
      OWQEWOWGVLJOZWGVLVROZTZNWQWGVLJVRUPWRWPWTWIECUNWIWSWSWGWFVQOZDVLPWHDVLPWI
      TDWGVLVQESZCSZUQXAWHDVLWGWFBXBDSURUSWHDVLUTVAVBQRVCEVLVSXCVFWIEVLVDVEVGVH
      CVOVTVICEDABVJVK $.
  $}

  ${
    $d A x y $.  $d R x y $.
    $( Quantifier free definition of a strict order.  (Contributed by Scott
       Fenton, 22-Feb-2013.) $)
    dfso2 $p |- ( R Or A <->
              ( R Po A /\ ( A X. A ) C_ ( R u. ( _I u. `' R ) ) ) ) $=
      ( vx vy wor wpo cv wbr wral wa cid cun wcel wi wal wo brun bitr2i 3bitr4i
      vex weq w3o cxp ccnv wss df-so cop opelxp ideq brcnv orbi12i orbi2i df-br
      3orass imbi12i 2albii wrel wb relxp ssrel ax-mp r2al anbi2i bitr4i ) ABEA
      BFZCGZDGZBHZCDUAZVGVFBHZUBZDAICAIZJVEAAUCZBKBUDZLZLZUEZJCDABUFVQVLVEVFVGU
      GZVMMZVRVPMZNZDOCOZVFAMVGAMJZVKNZDOCOVQVLWAWDCDVSWCVTVKVFVGAAUHVKVFVGVPHZ
      VTVHVIVJPZPVHVFVGVOHZPVKWEWFWGVHWGVFVGKHZVFVGVNHZPWFVFVGKVNQWHVIWIVJVFVGD
      TZUIVFVGBCTWJUJUKRULVHVIVJUNVFVGBVOQSVFVGVPUMRUOUPVMUQVQWBURAAUSCDVMVPUTV
      AVKCDAAVBSVCVD $.
  $}

  ${
    $d R x y z w $.  $d A x y z w $.
    $( Quantifier free definition of a partial ordering.  (Contributed by Scott
       Fenton, 22-Feb-2013.) $)
    dfpo2 $p |- ( R Po A <-> ( ( R i^i ( _I |` A ) ) = (/) /\
           ( ( R i^i ( A X. A ) ) o. ( R i^i ( A X. A ) ) ) C_ R ) ) $=
      ( vx vy vz vw cid cin c0 wceq wa wb wbr wn wi wral wcel wal eleq1 df-br
      wpo cres cxp ccom wss po0 res0 ineq2i in0 eqtri xp0 coeq2i eqsstri pm3.2i
      0ss poeq2 reseq2 ineq2d eqeq1d xpeq2 coeq2d sseq1d anbi12d bibi12d mpbiri
      co02 2th wne cv r19.28zv ralbidv bitrd r19.26 syl6bb disj df-ral cop opex
      df-po syl6bbr cvv vex ididg ax-mp brres mpbiran bitr3i imbi12d spcv con2d
      notbid alrimiv wex wrel relres elrel ancri weq breq12 anidms breq2 imbi2d
      mpan spv biimpcd impd syl ideq anbi1i 3bitr3ri syl5ibrcom exlimdvv impbii
      syl5 bitr4i 3bitri wrex ralcom r19.23v ralbii bitri brin anbi12i an4 brxp
      ancom anandi 3bitr4i anass brco df-rex r19.42v imbi12i 2albii r2al impexp
      exbii relco ssrel bitr2i 3bitr4g pm2.61ine ) ABUAZBGAUBZHZIJZBAAUCZHZUUHU
      DZBUEZKZLZAIAIJZUULIBUAZBGIUBZHZIJZUUHBAIUCZHZUDZBUEZKZLUUNUVBBUFUUQUVAUU
      PBIHZIUUOIBGUGUHBUIZUJUUTIBUUTUUHIUDIUUSIUUHUUSUVCIUURIBAUKUHUVDUJULUUHVF
      UJBUOUMUNVGUUMUUCUUNUUKUVBAIBUPUUMUUFUUQUUJUVAUUMUUEUUPIUUMUUDUUOBAIGUQUR
      USUUMUUIUUTBUUMUUHUUSUUHUUMUUGUURBAIAUTURVAVBVCVDVEAIVHZCVIZUVFBMZNZUVFDV
      IZBMZUVIEVIZBMZKZUVFUVKBMZOZKEAPZDAPZCAPZUVHCAPZUVOEAPZDAPZCAPZKZUUCUUKUV
      EUVRUVHUWAKZCAPUWCUVEUVQUWDCAUVEUVQUVHUVTKZDAPUWDUVEUVPUWEDAUVHUVOEAVJVKU
      VHUVTDAVJVLVKUVHUWACAVMVNCDEABVSUUFUVSUUJUWBUUFFVIZUUDQZNZFBPUWFBQZUWHOZF
      RZUVSFBUUDVOUWHFBVPUWKUVFAQZUVHOZCRZUVSUWKUWNUWKUWMCUWKUVGUWLUWJUVGUWLNZO
      FUVFUVFVQZUVFUVFVRUWFUWPJZUWIUVGUWHUWOUWQUWIUWPBQUVGUWFUWPBSUVFUVFBTVTUWQ
      UWGUWLUWQUWGUWPUUDQZUWLUWFUWPUUDSUWLUVFUVFUUDMZUWRUWSUVFUVFGMZUWLUVFWAQUW
      TCWBZUVFWAWCWDUVFUVFGAUXAWEWFUVFUVFUUDTWGVTWKWHWIWJWLUWNUWJFUWNUWGUWIUWGU
      WFUVIUVKVQZJZEWMDWMZUWGKUWNUWINZUWGUXDUUDWNUWGUXDGAWODEUWFUUDWPXCWQUWNUXD
      UWGUXEUWNUXCUWGUXEOZDEUWNUXFUXCDEWRZUVIAQZKZUVLNZOZUWNUXHUVIUVIBMZNZOZUXK
      UWMUXNCDCDWRZUWLUXHUVHUXMUVFUVIASUXOUVGUXLUXOUVGUXLLUVFUVIUVFUVIBWSWTWKWH
      XDUXNUXGUXHUXJUXGUXNUXHUXJOUXGUXMUXJUXHUXGUXLUVLUVIUVKUVIBXAWKXBXEXFXGUXC
      UWGUXIUXEUXJUXCUWGUXBUUDQZUXIUWFUXBUUDSUVIUVKUUDMUVIUVKGMZUXHKUXPUXIUVIUV
      KGAEWBZWEUVIUVKUUDTUXQUXGUXHUVIUVKUXRXHXIXJVTUXCUWIUVLUXCUWIUXBBQUVLUWFUX
      BBSUVIUVKBTVTWKWHXKXLXFXNWJWLXMUVHCAVPXOXPUWBUVMDAXQZUVNOZEAPZCAPZUUJUWAU
      YACAUWAUVODAPZEAPUYAUVODEAAXRUYCUXTEAUVMUVNDAXSXTYAXTUWLUVKAQZKZUXSKZUVNO
      ZERCRZUVFUVKVQZUUIQZUYIBQZOZERCRZUYBUUJUYGUYLCEUYFUYJUVNUYKUVFUVIUUHMZUVI
      UVKUUHMZKZDWMZUXHUYEUVMKZKZDWMZUYJUYFUYPUYSDUYPUVJUVFUVIUUGMZKZUVLUVIUVKU
      UGMZKZKZUXHUYEKZUVMKZUYSUYNVUBUYOVUDUVFUVIBUUGYBUVIUVKBUUGYBYCVUEUVMVUAVU
      CKZKVUHUVMKVUGUVJVUAUVLVUCYDUVMVUHYFVUHVUFUVMUWLUXHKZUXHUYDKZKUXHUWLKZVUJ
      KVUHVUFVUIVUKVUJUWLUXHYFXIVUAVUIVUCVUJUVFUVIAAYEUVIUVKAAYEYCUXHUWLUYDYGYH
      XIXPUXHUYEUVMYIXPYQUYQUVFUVKUUIMUYJDUVFUVKUUHUUHUXAUXRYJUVFUVKUUITWGUYTUY
      RDAXQUYFUYRDAYKUYEUVMDAYLWGXJUVFUVKBTYMYNUYBUYEUXTOZERCRUYHUXTCEAAYOUYGVU
      LCEUYEUXSUVNYPYNXOUUIWNUUJUYMLUUHUUHYRCEUUIBYSWDYHYTYCUUAUUB $.
  $}

  ${
    $d b ch $.  $d e et $.  $d a b c d e f g h p q P $.  $d a ps $.  $d g si $.
    $d a b c d e f g h p q x A $.  $d p q x ph $.  $d a b c d e f g h x rh $.
    $d a b c d e f g h p q x B $.  $d a b c d e f g h p q x C $.  $d d ta $.
    $d a b c d e f g h p q x D $.  $d a b c d e f g h p q x E $.  $d c th $.
    $d a b c d e f g h p q x F $.  $d a b c d e f g h p q x G $.  $d f ze $.
    $d a b c d e f g h p q x H $.  $d a b c d e f g h p q x S $.
    $d a b c d e f g h x Q $.  $d a b c d e f g h x X $.
    br8.1 $e |- ( a = A -> ( ph <-> ps ) ) $.
    br8.2 $e |- ( b = B -> ( ps <-> ch ) ) $.
    br8.3 $e |- ( c = C -> ( ch <-> th ) ) $.
    br8.4 $e |- ( d = D -> ( th <-> ta ) ) $.
    br8.5 $e |- ( e = E -> ( ta <-> et ) ) $.
    br8.6 $e |- ( f = F -> ( et <-> ze ) ) $.
    br8.7 $e |- ( g = G -> ( ze <-> si ) ) $.
    br8.8 $e |- ( h = H -> ( si <-> rh ) ) $.
    br8.9 $e |- ( x = X -> P = Q ) $.
    br8.10 $e |- R = { <. p , q >. |
       E. x e. S E. a e. P E. b e. P E. c e. P E. d e. P E. e e. P
       E. f e. P E. g e. P E. h e. P ( p = <. <. a , b >. , <. c , d >. >. /\
       q = <. <. e , f >. , <. g , h >. >. /\ ph ) } $.
    $( Substitution for an eight-place predicate.  (Contributed by Scott
       Fenton, 26-Sep-2013.)  (Revised by Mario Carneiro, 3-May-2015.) $)
    br8 $p |- ( ( ( X e. S /\ A e. Q /\ B e. Q ) /\
                   ( C e. Q /\ D e. Q /\ E e. Q ) /\
                   ( F e. Q /\ G e. Q /\ H e. Q ) ) ->
      ( <. <. A , B >. , <. C , D >. >. R <. <. E , F >. , <. G , H >. >. <->
        rh ) ) $=
      ( cop wbr wceq wrex wcel opex eqeq1 3anbi1d rexbidv 2rexbidv 3anbi2d brab
      cv w3a wa wi wb opth vex sylan9bb eqcoms biimp3a a1i rexlimdva rexlimdvva
      sylbi simpl11 simpl12 simpl13 simpl21 simpl22 simpl23 simpl31 eqidd simpr
      simpl32 simpl33 opeq2d eqeq2d 3anbi23d rspc2ev syl113anc 3anbi13d rspc3ev
      opeq1 opeq1d syl31anc rexeqdv rexeqbidv rspcev syl2anc ex impbid syl5bb
      opeq2 ) KLVDZMNVDZVDZUCUDVDZUEUFVDZVDZQVEYAUJVPZUKVPZVDZULVPZUMVPZVDZVDZV
      FZYDSVPZTVPZVDZUAVPZUBVPZVDZVDZVFZAVQZUBOVGZUAOVGZTOVGZSOVGZUMOVGZULOVGZU
      KOVGZUJOVGZJRVGZUGRVHZKPVHZLPVHZVQZMPVHZNPVHZUCPVHZVQZUDPVHZUEPVHZUFPVHZV
      QZVQZIUIVPZYKVFZUHVPZYSVFZAVQZUBOVGZUAOVGTOVGZSOVGUMOVGZULOVGUKOVGZUJOVGJ
      RVGYLUVGAVQZUBOVGZUAOVGTOVGZSOVGUMOVGZULOVGUKOVGZUJOVGJRVGUUJUIUHYAYDQXSX
      TVIYBYCVIUVDYAVFZUVLUVQJUJROUVRUVKUVPUKULOOUVRUVJUVOUMSOOUVRUVIUVNTUAOOUV
      RUVHUVMUBOUVRUVEYLUVGAUVDYAYKVJVKVLVMVMVMVMUVFYDVFZUVQUUHJUJROUVSUVPUUFUK
      ULOOUVSUVOUUDUMSOOUVSUVNUUBTUAOOUVSUVMUUAUBOUVSUVGYTYLAUVFYDYSVJVNVLVMVMV
      MVMVCVOUVCUUJIUVCUUHIJUJROUVCJVPZRVHYEOVHVRVRZUUFIUKULOOUWAYFOVHYHOVHVRVR
      ZUUDIUMSOOUWBYIOVHYMOVHVRVRZUUBITUAOOUWCYNOVHYPOVHVRVRZUUAIUBOUUAIVSUWDYQ
      OVHVRYLYTAIYLAEYTIAEVTZYKYAYKYAVFYGXSVFZYJXTVFZVRUWEYGYJXSXTYEYFVIYHYIVIW
      AUWFACUWGEUWFYEKVFZYFLVFZVRACVTYEYFKLUJWBUKWBWAUWHABUWICUNUOWCWIUWGYHMVFZ
      YINVFZVRCEVTYHYIMNULWBUMWBWAUWJCDUWKEUPUQWCWIWCWIWDEIVTZYSYDYSYDVFYOYBVFZ
      YRYCVFZVRUWLYOYRYBYCYMYNVIYPYQVIWAUWMEGUWNIUWMYMUCVFZYNUDVFZVREGVTYMYNUCU
      DSWBTWBWAUWOEFUWPGURUSWCWIUWNYPUEVFZYQUFVFZVRGIVTYPYQUEUFUAWBUBWBWAUWQGHU
      WRIUTVAWCWIWCWIWDWCWEWFWGWHWHWHWHUVCIUUJUVCIVRZUUKUUAUBPVGZUAPVGZTPVGZSPV
      GZUMPVGZULPVGZUKPVGZUJPVGZUUJUUKUULUUMUURUVBIWJUWSUULUUMUUOYAXSMYIVDZVDZV
      FZYTDVQZUBPVGZUAPVGZTPVGZSPVGUMPVGZUXGUUKUULUUMUURUVBIWKUUKUULUUMUURUVBIW
      LUUOUUPUUQUUNUVBIWMUWSUUPUUQUUSYAYAVFZYDYBYRVDZVFZGVQZUBPVGUAPVGZUXOUUOUU
      PUUQUUNUVBIWNUUOUUPUUQUUNUVBIWOUUSUUTUVAUUNUURIWPUWSUUTUVAUXPYDYDVFZIUXTU
      USUUTUVAUUNUURIWSUUSUUTUVAUUNUURIWTUWSYAWQUWSYDWQUVCIWRUXSUXPUYAIVQUXPYDY
      BUEYQVDZVDZVFZHVQUAUBUEUFPPUWQUXRUYDGHUXPUWQUXQUYCYDUWQYRUYBYBYPUEYQXHXAX
      BUTXCUWRUYDUYAHIUXPUWRUYCYDYDUWRUYBYCYBYQUFUEXRXAXBVAXCXDXEUXMUXTUXPYTEVQ
      ZUBPVGUAPVGUXPYDUCYNVDZYRVDZVFZFVQZUBPVGUAPVGUMSTNUCUDPPPUWKUXKUYEUAUBPPU
      WKUXJUXPDEYTUWKUXIYAYAUWKUXHXTXSYINMXRXAXBUQXFVMUWOUYEUYIUAUBPPUWOYTUYHEF
      UXPUWOYSUYGYDUWOYOUYFYRYMUCYNXHXIXBURXCVMUWPUYIUXSUAUBPPUWPUYHUXRFGUXPUWP
      UYGUXQYDUWPUYFYBYRYNUDUCXRXIXBUSXCVMXGXJUXDUXOYAKYFVDZYJVDZVFZYTBVQZUBPVG
      ZUAPVGTPVGZSPVGUMPVGYAXSYJVDZVFZYTCVQZUBPVGZUAPVGTPVGZSPVGUMPVGUJUKULKLMP
      PPUWHUXBUYOUMSPPUWHUWTUYNTUAPPUWHUUAUYMUBPUWHYLUYLABYTUWHYKUYKYAUWHYGUYJY
      JYEKYFXHXIXBUNXFVLVMVMUWIUYOUYTUMSPPUWIUYNUYSTUAPPUWIUYMUYRUBPUWIUYLUYQBC
      YTUWIUYKUYPYAUWIUYJXSYJYFLKXRXIXBUOXFVLVMVMUWJUYTUXNUMSPPUWJUYSUXLTUAPPUW
      JUYRUXKUBPUWJUYQUXJCDYTUWJUYPUXIYAUWJYJUXHXSYHMYIXHXAXBUPXFVLVMVMXGXJUUIU
      XGJUGRUVTUGVFZUUHUXFUJOPVBVUAUUGUXEUKOPVBVUAUUFUXDULOPVBVUAUUEUXCUMOPVBVU
      AUUDUXBSOPVBVUAUUCUXATOPVBVUAUUBUWTUAOPVBVUAUUAUBOPVBXKXLXLXLXLXLXLXLXMXN
      XOXPXQ $.
  $}

  ${
    $d b ch $.  $d e et $.  $d a b c d e f p q P $.  $d p q x ph $.  $d a ps $.
    $d a b c d e f p q x A $.  $d a b c d e f p q x B $.  $d a b c d e f x Q $.
    $d a b c d e f p q x C $.  $d a b c d e f p q x D $.  $d a b c d e f x X $.
    $d a b c d e f p q x E $.  $d d ta $.  $d c th $.  $d a b c d e f x ze $.
    $d a b c d e f p q x F $.  $d a b c d e f p q x S $.
    br6.1 $e |- ( a = A -> ( ph <-> ps ) ) $.
    br6.2 $e |- ( b = B -> ( ps <-> ch ) ) $.
    br6.3 $e |- ( c = C -> ( ch <-> th ) ) $.
    br6.4 $e |- ( d = D -> ( th <-> ta ) ) $.
    br6.5 $e |- ( e = E -> ( ta <-> et ) ) $.
    br6.6 $e |- ( f = F -> ( et <-> ze ) ) $.
    br6.7 $e |- ( x = X -> P = Q ) $.
    br6.8 $e |- R = { <. p , q >. |
       E. x e. S E. a e. P E. b e. P E. c e. P E. d e. P E. e e. P
       E. f e. P ( p = <. a , <. b , c >. >. /\
       q = <. d , <. e , f >. >. /\ ph ) } $.
    $( Substitution for a six-place predicate.  (Contributed by Scott Fenton,
       4-Oct-2013.)  (Revised by Mario Carneiro, 3-May-2015.) $)
    br6 $p |- ( ( X e. S /\
                   ( A e. Q /\ B e. Q /\ C e. Q ) /\
                   ( D e. Q /\ E e. Q /\ F e. Q ) ) ->
      ( <. A , <. B , C >. >. R <. D , <. E , F >. >. <-> ze ) ) $=
      ( cop wbr cv wceq w3a wrex wcel opex eqeq1 eqcom 3anbi1d rexbidv 2rexbidv
      syl6bb 3anbi2d brab wa wi wb vex opth sylan9bb sylbi rexlimdva rexlimdvva
      biimp3a a1i simpl1 simpl2 opeq1 eqeq1d 3anbi23d opeq2d eqid pm3.2i df-3an
      opeq2 mpbiran rspc3ev 3ad2antl3 3anbi13d syl2anc rexeqdv rexeqbidv rspcev
      ex impbid syl5bb ) IJKUPZUPZLSTUPZUPZOUQUDURZUEURZUFURZUPZUPZXEUSZUGURZQU
      RZRURZUPZUPZXGUSZAUTZRMVAZQMVAZUGMVAZUFMVAZUEMVAZUDMVAZHPVAZUAPVBZINVBJNV
      BKNVBUTZLNVBSNVBTNVBUTZUTZGUCURZXLUSZUBURZXRUSZAUTZRMVAZQMVAUGMVAZUFMVAUE
      MVAZUDMVAHPVAXMYOAUTZRMVAZQMVAUGMVAZUFMVAUEMVAZUDMVAHPVAYGUCUBXEXGOIXDVCL
      XFVCYLXEUSZYSUUCHUDPMUUDYRUUBUEUFMMUUDYQUUAUGQMMUUDYPYTRMUUDYMXMYOAUUDYMX
      EXLUSXMYLXEXLVDXEXLVEVIVFVGVHVHVHYNXGUSZUUCYEHUDPMUUEUUBYCUEUFMMUUEUUAYAU
      GQMMUUEYTXTRMUUEYOXSXMAUUEYOXGXRUSXSYNXGXRVDXGXRVEVIVJVGVHVHVHUOVKYKYGGYK
      YEGHUDPMYKHURZPVBXHMVBVLVLZYCGUEUFMMUUGXIMVBXJMVBVLVLZYAGUGQMMUUHXNMVBXOM
      VBVLVLZXTGRMXTGVMUUIXPMVBVLXMXSAGXMADXSGXMXHIUSZXKXDUSZVLADVNXHXKIXDUDVOX
      IXJVCVPUUJABUUKDUHUUKXIJUSZXJKUSZVLBDVNXIXJJKUEVOUFVOVPUULBCUUMDUIUJVQVRV
      QVRXSXNLUSZXQXFUSZVLDGVNXNXQLXFUGVOXOXPVCVPUUNDEUUOGUKUUOXOSUSZXPTUSZVLEG
      VNXOXPSTQVORVOVPUUPEFUUQGULUMVQVRVQVRVQWAWBVSVTVTVTYKGYGYKGVLZYHXTRNVAZQN
      VAZUGNVAZUFNVAZUENVAZUDNVAZYGYHYIYJGWCUURYIXEXEUSZXSDUTZRNVAZQNVAUGNVAZUV
      DYHYIYJGWDYJYHGUVHYIUVFGUVELXQUPZXGUSZEUTUVELSXPUPZUPZXGUSZFUTZUGQRLSTNNN
      UUNXSUVJDEUVEUUNXRUVIXGXNLXQWEWFUKWGUUPUVJUVMEFUVEUUPUVIUVLXGUUPXQUVKLXOS
      XPWEWHWFULWGUUQUVNUVEXGXGUSZGUTZGUUQUVMUVOFGUVEUUQUVLXGXGUUQUVKXFLXPTSWLW
      HWFUMWGUVPUVEUVOVLGUVEUVOXEWIXGWIWJUVEUVOGWKWMVIWNWOUVAUVHIXKUPZXEUSZXSBU
      TZRNVAZQNVAUGNVAIJXJUPZUPZXEUSZXSCUTZRNVAZQNVAUGNVAUDUEUFIJKNNNUUJUUSUVTU
      GQNNUUJXTUVSRNUUJXMUVRABXSUUJXLUVQXEXHIXKWEWFUHWPVGVHUULUVTUWEUGQNNUULUVS
      UWDRNUULUVRUWCBCXSUULUVQUWBXEUULXKUWAIXIJXJWEWHWFUIWPVGVHUUMUWEUVGUGQNNUU
      MUWDUVFRNUUMUWCUVECDXSUUMUWBXEXEUUMUWAXDIXJKJWLWHWFUJWPVGVHWNWQYFUVDHUAPU
      UFUAUSZYEUVCUDMNUNUWFYDUVBUEMNUNUWFYCUVAUFMNUNUWFYBUUTUGMNUNUWFYAUUSQMNUN
      UWFXTRMNUNWRWSWSWSWSWSWTWQXAXBXC $.
  $}

  ${
    $d a b c d p q x A $.  $d a b c d p q x B $.  $d b ch $.  $d a b c d x Q $.
    $d a b c d p q x C $.  $d a b c d p q x D $.  $d a ps $.  $d a b c d x X $.
    $d a b c d p q P $.  $d a b c d p q x S $.  $d a b c d x ta $.  $d c th $.
    $d p q x ph $.
    br4.1 $e |- ( a = A -> ( ph <-> ps ) ) $.
    br4.2 $e |- ( b = B -> ( ps <-> ch ) ) $.
    br4.3 $e |- ( c = C -> ( ch <-> th ) ) $.
    br4.4 $e |- ( d = D -> ( th <-> ta ) ) $.
    br4.5 $e |- ( x = X -> P = Q ) $.
    br4.6 $e |- R = { <. p , q >. |
       E. x e. S E. a e. P E. b e. P E. c e. P E. d e. P
       ( p = <. a , b >. /\ q = <. c , d >. /\ ph ) } $.
    $( Substitution for a four-place predicate.  (Contributed by Scott Fenton,
       9-Oct-2013.)  (Revised by Mario Carneiro, 14-Oct-2013.) $)
    br4 $p |- ( ( X e. S /\
                   ( A e. Q /\ B e. Q ) /\
                   ( C e. Q /\ D e. Q ) ) ->
      ( <. A , B >. R <. C , D >. <-> ta ) ) $=
      ( cop wbr cv wceq w3a wrex wcel wa eqeq1 3anbi1d rexbidv 2rexbidv 3anbi2d
      opex brab wi wb vex opth sylan9bb eqcoms biimp3a a1i rexlimdva rexlimdvva
      sylbi simpl1 simpl2l simpl2r simpl3l simpl3r eqidd simpr 3anbi23d rspc2ev
      opeq1 eqeq2d opeq2 syl113anc 3anbi13d syl3anc rexeqdv rexeqbidv rspcev ex
      syl2anc impbid syl5bb ) GHUHZIJUHZMUIWPRUJZSUJZUHZUKZWQTUJZUAUJZUHZUKZAUL
      ZUAKUMZTKUMZSKUMZRKUMZFNUMZONUNZGLUNZHLUNZUOZILUNZJLUNZUOZULZEQUJZWTUKZPU
      JZXDUKZAULZUAKUMZTKUMSKUMZRKUMFNUMXAYCAULZUAKUMZTKUMSKUMZRKUMFNUMXKQPWPWQ
      MGHVAIJVAXTWPUKZYFYIFRNKYJYEYHSTKKYJYDYGUAKYJYAXAYCAXTWPWTUPUQURUSUSYBWQU
      KZYIXIFRNKYKYHXGSTKKYKYGXFUAKYKYCXEXAAYBWQXDUPUTURUSUSUGVBXSXKEXSXIEFRNKX
      SFUJZNUNWRKUNUOUOZXGESTKKYMWSKUNXBKUNUOUOZXFEUAKXFEVCYNXCKUNUOXAXEAEXAACX
      EEACVDZWTWPWTWPUKWRGUKZWSHUKZUOYOWRWSGHRVESVEVFYPABYQCUBUCVGVMVHCEVDZXDWQ
      XDWQUKXBIUKZXCJUKZUOYRXBXCIJTVEUAVEVFYSCDYTEUDUEVGVMVHVGVIVJVKVLVLXSEXKXS
      EUOZXLXFUALUMZTLUMZSLUMZRLUMZXKXLXOXREVNUUAXMXNWPWPUKZXECULZUALUMTLUMZUUE
      XMXNXLXREVOXMXNXLXREVPUUAXPXQUUFWQWQUKZEUUHXPXQXLXOEVQXPXQXLXOEVRUUAWPVSU
      UAWQVSXSEVTUUGUUFUUIEULUUFWQIXCUHZUKZDULTUAIJLLYSXEUUKCDUUFYSXDUUJWQXBIXC
      WCWDUDWAYTUUKUUIDEUUFYTUUJWQWQXCJIWEWDUEWAWBWFUUCUUHWPGWSUHZUKZXEBULZUALU
      MTLUMRSGHLLYPXFUUNTUALLYPXAUUMABXEYPWTUULWPWRGWSWCWDUBWGUSYQUUNUUGTUALLYQ
      UUMUUFBCXEYQUULWPWPWSHGWEWDUCWGUSWBWHXJUUEFONYLOUKZXIUUDRKLUFUUOXHUUCSKLU
      FUUOXGUUBTKLUFUUOXFUAKLUFWIWJWJWJWKWMWLWNWO $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    $( Another distributive law of converse over class composition.
       (Contributed by Scott Fenton, 3-May-2014.) $)
    cnvco1 $p |- `' ( `' A o. B ) = ( `' B o. A ) $=
      ( vx vy vz ccnv ccom relcnv relco cv wbr wa wex cop wcel vex brcnv bicomi
      anbi12ci opelco exbii opelcnv bitri 3bitr4i eqrelriiv ) CDAFZBGZFZBFZAGZU
      GHUIAIDJZEJZBKZULCJZUFKZLZEMZUNULAKZULUKUIKZLZEMUNUKNZUHOZVAUJOUPUTEUMUSU
      OURUSUMULUKBEPZDPZQRULUNAVCCPZQSUAVBUKUNNUGOUQUNUKUGVEVDUBEUKUNUFBVDVETUC
      EUNUKUIAVEVDTUDUE $.

    $( Another distributive law of converse over class composition.
       (Contributed by Scott Fenton, 3-May-2014.) $)
    cnvco2 $p |- `' ( A o. `' B ) = ( B o. `' A ) $=
      ( vx vy vz ccnv ccom relcnv relco cv wbr wa wex cop wcel vex brcnv bicomi
      anbi12ci opelco exbii opelcnv bitri 3bitr4i eqrelriiv ) CDABFZGZFZBAFZGZU
      GHBUIIDJZEJZUFKZULCJZAKZLZEMZUNULUIKZULUKBKZLZEMUNUKNZUHOZVAUJOUPUTEUMUSU
      OURUKULBDPZEPZQURUOUNULACPZVDQRSUAVBUKUNNUGOUQUNUKUGVEVCUBEUKUNAUFVCVETUC
      EUNUKBUIVEVCTUDUE $.
  $}

  ${
    $d A x y z p $.  $d B x y z p $.
    $( Quantifier-free definition of membership in a domain.  (Contributed by
       Scott Fenton, 21-Jan-2017.) $)
    eldm3 $p |- ( A e. dom B <-> ( B |` { A } ) =/= (/) ) $=
      ( vx vy vp vz cdm wcel cvv csn cres c0 wne wceq cv eleq1 cop wex wa exbii
      elex wn snprc reseq2 res0 syl6eq necon1ai sneq reseq2d neeq1d df-clel vex
      sylbi eldm2 n0 elres weq pm5.32i opeq1 eqeq2d anbi1d syl5bbr exbidv rexsn
      wrex bitri excom 3bitri 3bitr4i vtoclbg pm5.21nii ) ABGZHZAIHZBAJZKZLMZAV
      LUAVNVPLVNUBVOLNZVPLNAUCVRVPBLKLVOLBUDBUEUFUMUGCOZVLHZBVSJZKZLMZVMVQCAIVS
      AVLPVSANZWBVPLWDWAVOBVSAUHUIUJVSDOZQZBHZDREOZWFNZWHBHZSZERZDRZVTWCWGWLDEW
      FBUKTDVSBCULZUNWCWHWBHZERWKDRZERWMEWBUOWOWPEWOWHFOZWEQZNZWRBHZSZDRZFWAVEW
      PFDWHBWAUPXBWPFVSWNFCUQZXAWKDXAWSWJSXCWKWSWJWTWHWRBPURXCWSWIWJXCWRWFWHWQV
      SWEUSUTVAVBVCVDVFTWKEDVGVHVIVJVK $.
  $}

  $( Quantifier-free definition of membership in a range.  (Contributed by
     Scott Fenton, 21-Jan-2017.) $)
  elrn3 $p |- ( A e. ran B <-> ( B i^i ( _V X. { A } ) ) =/= (/) ) $=
    ( crn wcel ccnv cdm csn cres wne cvv cxp cin df-rn eleq2i eldm3 wceq ineq2i
    c0 cnvxp wrel cnvin df-res 3eqtr4ri eqeq1i wss inss2 relxp relss mp2 cnveq0
    wb ax-mp bitr4i necon3bii 3bitri ) ABCZDABEZFZDUQAGZHZRIBJUSKZLZRIUPURABMNA
    UQOUTRVBRUTRPVBEZRPZVBRPZUTVCRUQVAEZLUQUSJKZLVCUTVFVGUQJUSSQBVAUAUQUSUBUCUD
    VBTZVEVDUKVBVAUEVATVHBVAUFJUSUGVBVAUHUIVBUJULUMUNUO $.

  ${
    $d R x y z $.  $d A x y z $.

    $( The converse of a partial ordering is still a partial ordering.
       (Contributed by Scott Fenton, 13-Jun-2018.) $)
    pocnv $p |- ( R Po A -> `' R Po A ) $=
      ( vx vy vz wpo ccnv cv wcel wa wbr poirr vex brcnv sylnibr wi 3anrev potr
      w3a sylan2b anbi12ci 3imtr4g ispod ) ABFZCDEABGZUDCHZAIZJUFUFBKUFUFUEKAUF
      BLUFUFBCMZUHNOUDUGDHZAIZEHZAIZSZJUKUIBKZUIUFBKZJZUKUFBKZUFUIUEKZUIUKUEKZJ
      UFUKUEKUMUDULUJUGSUPUQPUGUJULQAUKUIUFBRTURUOUSUNUFUIBUHDMZNUIUKBUTEMZNUAU
      FUKBUHVANUBUC $.

    $( The converse of a strict ordering is still a strict ordering.
       (Contributed by Scott Fenton, 13-Jun-2018.) $)
    socnv $p |- ( R Or A -> `' R Or A ) $=
      ( wor ccnv cnvso biimpi ) ABCABDCABEF $.
  $}

  ${
    sotrd.1 $e |- ( ph -> R Or A ) $.
    sotrd.2 $e |- ( ph -> X e. A ) $.
    sotrd.3 $e |- ( ph -> Y e. A ) $.
    sotrd.4 $e |- ( ph -> Z e. A ) $.
    sotrd.5 $e |- ( ph -> X R Y ) $.
    sotrd.6 $e |- ( ph -> Y R Z ) $.
    $( Transitivity law for strict orderings, deduction form.  (Contributed by
       Scott Fenton, 24-Nov-2021.) $)
    sotrd $p |- ( ph -> X R Z ) $=
      ( wbr wor wcel wa wi sotr syl13anc mp2and ) ADECMZEFCMZDFCMZKLABCNDBOEBOF
      BOUAUBPUCQGHIJBDEFCRST $.
  $}

  $( Transitivity law for strict orderings.  (Contributed by Scott Fenton,
     24-Nov-2021.) $)
  sotr3 $p |- ( ( R Or A /\ ( X e. A /\ Y e. A /\ Z e. A ) ) ->
  ( ( X R Y /\ -. Z R Y ) -> X R Z ) ) $=
    ( wor wcel w3a wa wbr wn wceq wo wb simp3 simp2 jca sotric sylan2 con2bid
    adantr wi breq2 biimprcd adantl sotr expdimp jaod sylbird expimpd ) ABFZCAG
    ZDAGZEAGZHZIZCDBJZEDBJZKZCEBJZUPUQIZUSEDLZDEBJZMZUTUPVDUSNUQUPURVDUOUKUNUMI
    URVDKNUOUNUMULUMUNOULUMUNPQAEDBRSTUAVAVBUTVCUQVBUTUBUPVBUTUQEDCBUCUDUEUPUQV
    CUTACDEBUFUGUHUIUJ $.

  $( Asymmetry law for strict orderings.  (Contributed by Scott Fenton,
     24-Nov-2021.) $)
  soasym $p |- ( ( R Or A /\ ( X e. A /\ Y e. A ) ) ->
  ( X R Y -> -. Y R X ) ) $=
    ( wor wcel wa wbr wceq wo wn sotric pm2.46 syl6bi ) ABECAFDAFGGCDBHCDIZDCBH
    ZJKPKACDBLOPMN $.

  $( Trichotomy law for strict orderings.  (Contributed by Scott Fenton,
     8-Dec-2021.) $)
  sotrine $p |- ( ( R Or A /\ ( B e. A /\ C e. A ) ) ->
    ( B =/= C <-> ( B R C \/ C R B ) ) ) $=
    ( wor wcel wa wbr wo wceq wn sotrieq bicomd necon1abid ) ADEBAFCAFGGZBCDHCB
    DHIZBCOBCJPKABCDLMN $.

  ${
    $d F x y $.  $d G x y $.  $d X x y $.  $d Y x y $.
    $( Law for adjoining an element to restrictions of functions.  (Contributed
       by Scott Fenton, 6-Dec-2021.) $)
    eqfunresadj $p |- ( ( ( Fun F /\ Fun G ) /\ ( F |` X ) = ( G |` X ) /\
     ( Y e. dom F /\ Y e. dom G /\ ( F ` Y ) = ( G ` Y ) ) ) ->
     ( F |` ( X u. { Y } ) ) = ( G |` ( X u. { Y } ) ) ) $=
      ( vx vy wfun wa cres wceq cdm wcel cfv w3a cun relres cv wbr wo wb simp33
      breq 3ad2ant2 eqeq1d simp1l simp31 funbrfvb syl2anc simp1r simp32 3bitr3d
      csn velsn breq1 bibi12d syl5ibrcom pm5.32rd brres 3bitr4g orbi12d resundi
      syl5bi vex breqi brun bitri eqbrrdiv ) AGZBGZHZACIZBCIZJZDAKLZDBKLZDAMZDB
      MZJZNZNZEFACDULZOZIZBWBIZAWBPBWBPVTEQZFQZVKRZWEWFAWAIZRZSZWEWFVLRZWEWFBWA
      IZRZSZWEWFWCRZWEWFWDRZVTWGWKWIWMVMVJWGWKTVSWEWFVKVLUBUCVTWEWFARZWEWALZHWE
      WFBRZWRHWIWMVTWRWQWSWRWEDJZVTWQWSTZEDUMVTXAWTDWFARZDWFBRZTVTVPWFJZVQWFJZX
      BXCVTVPVQWFVJVMVNVOVRUAUDVTVHVNXDXBTVHVIVMVSUEVJVMVNVOVRUFDWFAUGUHVTVIVOX
      EXCTVHVIVMVSUIVJVMVNVOVRUJDWFBUGUHUKWTWQXBWSXCWEDWFAUNWEDWFBUNUOUPVBUQWEW
      FAWAFVCZURWEWFBWAXFURUSUTWOWEWFVKWHOZRWJWEWFWCXGACWAVAVDWEWFVKWHVEVFWPWEW
      FVLWLOZRWNWEWFWDXHBCWAVAVDWEWFVLWLVEVFUSVG $.
  $}

  $( Law for equality of restriction to successors.  This is primarily useful
     when ` X ` is an ordinal, but it does not require that.  (Contributed by
     Scott Fenton, 6-Dec-2021.) $)
  eqfunressuc $p |- ( ( ( Fun F /\ Fun G ) /\ ( F |` X ) = ( G |` X ) /\
   ( X e. dom F /\ X e. dom G /\ ( F ` X ) = ( G ` X ) ) ) ->
   ( F |` suc X ) = ( G |` suc X ) ) $=
    ( wfun wa cres wceq cdm wcel cfv w3a csn eqfunresadj df-suc reseq2i 3eqtr4g
    cun csuc ) ADBDEACFBCFGCAHICBHICAJCBJGKKACCLQZFBSFACRZFBTFABCCMTSACNZOTSBUA
    OP $.

  $( If ` (/) ` is not part of the range of a function ` F ` , then ` A ` is in
     the domain of ` F ` iff ` ( F `` A ) =/= (/) ` .  (Contributed by Scott
     Fenton, 7-Dec-2021.) $)
  funeldmb $p |- ( ( Fun F /\ -. (/) e. ran F ) ->
  ( A e. dom F <-> ( F ` A ) =/= (/) ) ) $=
    ( wfun c0 crn wcel wn wa cdm cfv wi fvelrn ex adantr wb eleq1 adantl sylibd
    wceq con3d impancom ndmfv impbid1 necon2abid ) BCZDBEZFZGZHZABIFZABJZDUIUKD
    SZUJGZUEULUHUMUEULHZUJUGUNUJUKUFFZUGUEUJUOKULUEUJUOABLMNULUOUGOUEUKDUFPQRTU
    AABUBUCUD $.

  ${
    $d A y z $.  $d B y z $.  $d F y z $.  $d X y z $.
    elintfv.1 $e |- X e. _V $.
    $( Membership in an intersection of function values.  (Contributed by Scott
       Fenton, 9-Dec-2021.) $)
    elintfv $p |- ( ( F Fn A /\ B C_ A ) ->
       ( X e. |^| ( F " B ) <-> A. y e. B X e. ( F ` y ) ) ) $=
      ( vz cima cint wcel cv wi wal wfn wss wa cfv wral wceq wrex elint fnbrfvb
      wbr wb ssel2 sylan2 anassrs rexbidva elima syl6rbbr imbi1d r19.23v albidv
      syl6bbr ralcom4 eqcom imbi1i albii fvex eleq2 ceqsalv bitri ralbii bitr3i
      vex syl6bb syl5bb ) EDCHZIJGKZVHJZEVIJZLZGMZDBNZCBOZPZEAKZDQZJZACRZGEVHFU
      AVPVMVRVISZVKLZACRZGMZVTVPVLWCGVPVLWAACTZVKLWCVPVJWEVKVPWEVQVIDUCZACTVJVP
      WAWFACVNVOVQCJZWAWFUDZVOWGPVNVQBJWHCBVQUEBVQVIDUBUFUGUHAVIDCGVEUIUJUKWAVK
      ACULUNUMWDWBGMZACRVTWBAGCUOWIVSACWIVIVRSZVKLZGMVSWBWKGWAWJVKVRVIUPUQURVKV
      SGVRVQDUSVIVREUTVAVBVCVDVFVG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Properties of functions and mappings
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( A condition for subset trichotomy for functions.  (Contributed by Scott
     Fenton, 19-Apr-2011.) $)
  funpsstri $p |- ( ( Fun H /\ ( F C_ H /\ G C_ H ) /\
                      ( dom F C_ dom G \/ dom G C_ dom F ) ) ->
                    ( F C. G \/ F = G \/ G C. F ) ) $=
    ( wfun wss wa cdm wo w3a wpss wceq w3o cres funssres anim12d ssres2 orim12i
    wi ex sseq12 wb ancoms orbi12d syl5ib syl6 3imp sspsstri sylib ) CDZACEZBCE
    ZFZAGZBGZEZUNUMEZHZIABEZBAEZHZABJABKBAJLUIULUQUTUIULCUMMZAKZCUNMZBKZFZUQUTR
    UIUJVBUKVDUIUJVBCANSUIUKVDCBNSOUQVAVCEZVCVAEZHVEUTUOVFUPVGUMUNCPUNUMCPQVEVF
    URVGUSVAAVCBTVDVBVGUSUAVCBVAATUBUCUDUEUFABUGUH $.

  ${
    $d F p x y z $.  $d G p x y z $.
    $( If a class ` F ` is a proper subset of a function ` G ` , then
       ` dom F C. dom G ` .  (Contributed by Scott Fenton, 20-Apr-2011.) $)
    fundmpss $p |- ( Fun G -> ( F C. G -> dom F C. dom G ) ) $=
      ( vx vy vz vp wpss wss wn wa wi syl cv wbr wex wcel adantl ex wal exlimdv
      wfun cdm pssss dmss a1i cdif c0 wne pssdif n0 wrel funrel reldif cop wceq
      sylib elrel eleq1 df-br syl6bbr biimpcd 2eximdv difss ssbri eximi simprbi
      mpd adantr brdif ssbrd ad2antlr simplbi weq dffun2 2sp breq2 biimprd syl6
      sps expd syl5 imp adantlr com23 mpdd mtod jcad eximdv syld nss vex notbii
      eldm anbi12i exbii bitri sylibr dfpss3 syl6ibr ) BUAZABGZAUBZBUBZHZXCXBHI
      ZJXBXCGWTXAXDXEXAXDKWTXAABHXDABUCZABUDLUEWTXAXEWTXAJZCMZDMZBNZDOZXHEMZANZ
      EOZIZJZCOZXEXGFMZBAUFZPZFOZXQXAYAWTXAXSUGUHYAABUIFXSUJUPQXGXTXQFXGXTXHXIX
      SNZDOZCOZXQWTXTYDKZXAWTXSUKZYEWTBUKZYFBULBAUMLYFXTYDYFXTJZXRXHXIUNZUOZDOC
      OYDCDXRXSUQYHYJYBCDXTYJYBKYFYJXTYBYJXTYIXSPYBXRYIXSURXHXIXSUSUTVAQVBVGRLV
      HXGYCXPCXGYCXKXOYCXKKXGYBXJDXSBXHXIBAVCVDVEUEXGYBXODXGYBXOXGYBJZXNXHXIANZ
      YBYLIZXGYBXJYMXHXIBAVIZVFQYKXMYLEYKXMXHXLBNZYLXAXMYOKWTYBXAABXHXLXFVJVKYK
      YOXMYLWTYBYOXMYLKZKZXAWTYBYQYBXJWTYQYBXJYMYNVLWTXJYOYPWTXJYOJZDEVMZYPWTYR
      YSKZESDSZCSZYTWTYGUUBCDEBVNVFUUAYTCYTDEVOVSLYSYLXMXIXLXHAVPVQVRVTWAWBWCWD
      WETWFRTWGWHWITVGXEXHXCPZXHXBPZIZJZCOXQCXCXBWJUUFXPCUUCXKUUEXODXHBCWKZWMUU
      DXNEXHAUUGWMWLWNWOWPWQRWGXBXCWRWS $.
  $}

  $( The value of a function at a restriction is either null or the same as the
     function itself.  (Contributed by Scott Fenton, 4-Sep-2011.) $)
  fvresval $p |- ( ( ( F |` B ) ` A ) = ( F ` A ) \/
                   ( ( F |` B ) ` A ) = (/) ) $=
    ( wcel wn wo cres cfv wceq c0 exmid fvres nfvres orim12i ax-mp ) ABDZPEZFAC
    BGHZACHIZRJIZFPKPSQTABCLABCMNO $.

  $( Given two functions with equal domains, equality only requires one
     direction of the subset relationship.  (Contributed by Scott Fenton,
     24-Apr-2012.)  (Proof shortened by Mario Carneiro, 3-May-2015.) $)
  funsseq $p |- ( ( Fun F /\ Fun G /\ dom F = dom G ) ->
                  ( F = G <-> F C_ G ) ) $=
    ( wfun cdm wceq w3a eqimss wa cres simpl3 reseq2d funssres 3ad2antl2 simpl2
    wss wrel funrel resdm 3syl 3eqtr3d ex impbid2 ) ACZBCZADZBDZEZFZABEZABOZABG
    UHUJUIUHUJHZBUEIZBUFIZABUKUEUFBUCUDUGUJJKUDUCUJULAEUGBALMUKUDBPUMBEUCUDUGUJ
    NBQBRSTUAUB $.

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d F x y z $.
    fununiq.1 $e |- A e. _V $.
    fununiq.2 $e |- B e. _V $.
    fununiq.3 $e |- C e. _V $.
    $( The uniqueness condition of functions.  (Contributed by Scott Fenton,
       18-Feb-2013.) $)
    fununiq $p |- ( Fun F -> ( ( A F B /\ A F C ) -> B = C ) ) $=
      ( vx vy vz cv wbr wa wi wal wceq cvv wcel wb breq12 wfun wrel weq 3adant3
      dffun2 3adant2 anbi12d eqeq12 3adant1 imbi12d spc3gv mp3an adantl sylbi
      w3a ) DUADUBZHKZIKZDLZUQJKZDLZMZIJUCZNZJOIOHOZMABDLZACDLZMZBCPZNZHIJDUEVE
      VJUPAQRBQRCQRVEVJNEFGVDVJHIJABCQQQUQAPZURBPZUTCPZUOZVBVHVCVIVNUSVFVAVGVKV
      LUSVFSVMUQAURBDTUDVKVMVAVGSVLUQAUTCDTUFUGVLVMVCVISVKURBUTCUHUIUJUKULUMUN
      $.
  $}

  ${
    funbreq.1 $e |- A e. _V $.
    funbreq.2 $e |- B e. _V $.
    funbreq.3 $e |- C e. _V $.
    $( An equality condition for functions.  (Contributed by Scott Fenton,
       18-Feb-2013.) $)
    funbreq $p |- ( ( Fun F /\ A F B ) -> ( A F C <-> B = C ) ) $=
      ( wfun wbr wa wceq fununiq expdimp wi breq2 biimpcd adantl impbid ) DHZAB
      DIZJACDIZBCKZSTUAUBABCDEFGLMTUBUANSUBTUABCADOPQR $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d F x y $.  $d R x y $.
    fprb.1 $e |- A e. _V $.
    fprb.2 $e |- B e. _V $.
    $( A condition for functionhood over a pair.  (Contributed by Scott Fenton,
       16-Sep-2013.) $)
    fprb $p |- ( A =/= B -> ( F : { A , B } --> R <->
       E. x e. R E. y e. R F = { <. A , x >. , <. B , y >. } ) ) $=
      ( cpr wf cv cop wceq wrex wa cfv wcel ffvelrn mpan2 fveq2 wne prid1 prid2
      adantr wral fvpr1 fvpr2 eqeq12d eqcom syl6bb ralpr sylanbrc adantl wfn wb
      fvex ffn fpr syl eqfnfv syl2an mpbird opeq2 preq1d eqeq2d rspc2ev syl3anc
      preq2d expcom wi wss vex prssi fss ex feq1 biimprcd syl6 rexlimdvv impbid
      ) CDUAZCDIZEFJZFCAKZLZDBKZLZIZMZBENAENZWCWAWJWCWAOZCFPZEQZDFPZEQZFCWLLZDW
      NLZIZMZWJWCWMWAWCCWBQWMCDGUBWBECFRSUDWCWOWAWCDWBQWOCDHUCWBEDFRSUDWKWSWDFP
      ZWDWRPZMZAWBUEZWAXCWCWACWRPZWLMZDWRPZWNMZXCCDWLWNGCFUPZUFCDWLWNHDFUPZUGXB
      XEXGACDGHWDCMZXBWLXDMXEXJWTWLXAXDWDCFTWDCWRTUHWLXDUIUJWDDMZXBWNXFMXGXKWTW
      NXAXFWDDFTWDDWRTUHWNXFUIUJUKULUMWCFWBUNWRWBUNZWSXCUOWAWBEFUQWAWBWLWNIZWRJ
      XLCDWLWNGHXHXIURWBXMWRUQUSAWBFWRUTVAVBWIWSFWPWGIZMABWLWNEEWDWLMZWHXNFXOWE
      WPWGWDWLCVCVDVEWFWNMZXNWRFXPWGWQWPWFWNDVCVHVEVFVGVIWAWIWCABEEWAWDEQWFEQOZ
      WBEWHJZWIWCVJWAXQXRWAWBWDWFIZWHJXSEVKXRXQCDWDWFGHAVLBVLURWDWFEVMWBXSEWHVN
      VAVOWIWCXRWBEFWHVPVQVRVSVT $.
  $}

  ${
    br1steq.1 $e |- A e. _V $.
    br1steq.2 $e |- B e. _V $.
    $( Uniqueness condition for the binary relation ` 1st ` .  (Contributed by
       Scott Fenton, 11-Apr-2014.)  (Proof shortened by Mario Carneiro,
       3-May-2015.) $)
    br1steq $p |- ( <. A , B >. 1st C <-> C = A ) $=
      ( cvv wcel cop c1st wbr wceq wb br1steqg mp2an ) AFGBFGABHCIJCAKLDEABCFFM
      N $.

    $( Uniqueness condition for the binary relation ` 2nd ` .  (Contributed by
       Scott Fenton, 11-Apr-2014.)  (Proof shortened by Mario Carneiro,
       3-May-2015.) $)
    br2ndeq $p |- ( <. A , B >. 2nd C <-> C = B ) $=
      ( cvv wcel cop c2nd wbr wceq wb br2ndeqg mp2an ) AFGBFGABHCIJCBKLDEABCFFM
      N $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d X x y z $.
    $( Obsolete version of ~ br1steqg as of 9-Feb-2022.  (Contributed by Scott
       Fenton, 2-Jul-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    br1steqgOLD $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
       ( <. A , B >. 1st C <-> C = A ) ) $=
      ( vx vy vz wcel cop c1st wbr wceq wb cv wi breq1d imbi2d vex opeq1 bibi1d
      eqeq2 bibi12d opeq2 weq breq2 eqeq1 br1steq vtoclbg vtocl2g 3impia ) ADJB
      EJCFJZABKZCLMZCANZOZUMGPZHPZKZCLMZCURNZOZQUMAUSKZCLMZUPOZQUMUQQGHABDEURAN
      ZVCVFUMVGVAVEVBUPVGUTVDCLURAUSUARURACUCUDSUSBNZVFUQUMVHVEUOUPVHVDUNCLUSBA
      UERUBSUTIPZLMIGUFVAVBICFVICUTLUGVICURUHURUSVIGTHTUIUJUKUL $.

    $( Obsolete version of ~ br2ndeqg as of 9-Feb-2022.  (Contributed by Scott
       Fenton, 2-Jul-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    br2ndeqgOLD $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
       ( <. A , B >. 2nd C <-> C = B ) ) $=
      ( vx vy vz wcel cop c2nd wbr wceq wb cv wi breq1d imbi2d vex opeq1 bibi1d
      opeq2 eqeq2 bibi12d weq breq2 eqeq1 br2ndeq vtoclbg vtocl2g 3impia ) ADJB
      EJCFJZABKZCLMZCBNZOZUMGPZHPZKZCLMZCUSNZOZQUMAUSKZCLMZVBOZQUMUQQGHABDEURAN
      ZVCVFUMVGVAVEVBVGUTVDCLURAUSUARUBSUSBNZVFUQUMVHVEUOVBUPVHVDUNCLUSBAUCRUSB
      CUDUESUTIPZLMIHUFVAVBICFVICUTLUGVICUSUHURUSVIGTHTUIUJUKUL $.
  $}

  ${
    $d A p x y z $.
    $( Definition of domain in terms of ` 1st ` and image.  (Contributed by
       Scott Fenton, 11-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    dfdm5 $p |- dom A = ( ( 1st |` ( _V X. _V ) ) " A ) $=
      ( vx vy vp vz c1st cvv cv cop wex wbr wa excom weq vex bitri anbi1i exbii
      wcel 3bitr4i cdm cres cima wceq breq1 eleq1 anbi12d br1steq equcom syl6bb
      opex ceqsexv opeq1 eleq1d 3bitr3ri ancom anass brres 19.41vv eldm2 elima2
      cxp elvv eqriv ) BAUAZFGGVBZUBZAUCZBHZCHZIZASZCJZDHZASZVNVIVGKZLZDJZVIVES
      VIVHSVNEHZVJIZUDZVNVIFKZVOLZLZEJZDJZCJWECJZDJVMVRWECDMVLWFCWDDJZEJEBNZVTA
      SZLZEJWFVLWHWKEWCWKDVTVSVJUKWAWCVTVIFKZWJLWKWAWBWLVOWJVNVTVIFUEVNVTAUFUGW
      LWIWJWLBENWIVSVJVIEOCOUHBEUIPQUJULRWDEDMWJVLEVIBOZWIVTVKAVSVIVJUMUNULUORV
      QWGDVQVPVOLZWGVOVPUPWAEJCJZWBLZVOLWOWCLWNWGWOWBVOUQVPWPVOVPWBVNVFSZLZWPVN
      VIFVFWMURWRWQWBLWPWBWQUPWQWOWBWQWACJEJWOECVNVCWAECMPQPPQWAWCCEUSTPRTCVIAW
      MUTDVIVGAWMVATVD $.

    $( Definition of range in terms of ` 2nd ` and image.  (Contributed by
       Scott Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    dfrn5 $p |- ran A = ( ( 2nd |` ( _V X. _V ) ) " A ) $=
      ( vx vy vp vz c2nd cvv cv cop wex wbr wa excom weq vex bitri anbi1i exbii
      wcel 3bitr4i crn cres cima wceq breq1 eleq1 anbi12d br2ndeq equcom syl6bb
      opex ceqsexv opeq2 eleq1d 3bitr3ri ancom anass brres 19.41vv elrn2 elima2
      cxp elvv eqriv ) BAUAZFGGVBZUBZAUCZCHZBHZIZASZCJZDHZASZVNVJVGKZLZDJZVJVES
      VJVHSVNVIEHZIZUDZVNVJFKZVOLZLZEJZDJZCJWECJZDJVMVRWECDMVLWFCWDDJZEJEBNZVTA
      SZLZEJWFVLWHWKEWCWKDVTVIVSUKWAWCVTVJFKZWJLWKWAWBWLVOWJVNVTVJFUEVNVTAUFUGW
      LWIWJWLBENWIVIVSVJCOEOUHBEUIPQUJULRWDEDMWJVLEVJBOZWIVTVKAVSVJVIUMUNULUORV
      QWGDVQVPVOLZWGVOVPUPWAEJCJZWBLZVOLWOWCLWNWGWOWBVOUQVPWPVOVPWBVNVFSZLZWPVN
      VJFVFWMURWRWQWBLWPWBWQUPWQWOWBCEVNVCQPPQWAWCCEUSTPRTCVJAWMUTDVJVGAWMVATVD
      $.
  $}

  ${
    $d A z $.  $d B z $.  $d C z $.  $d D z $.
    $( Alternate way of saying that an ordered pair is in a composition.
       (Contributed by Scott Fenton, 6-May-2018.) $)
    opelco3 $p |- ( <. A , B >. e. ( C o. D ) <->
       B e. ( C " ( D " { A } ) ) ) $=
      ( vz cop ccom wcel wbr csn cima df-br cvv wa wrel wn c0 ima0 wex wb relco
      brrelex12 mpan wceq snprc noel imaeq2 imaeq2d imaeq2i eqtri syl6eq eleq2d
      mtbiri sylbi con4i elex jca wrex df-rex vex elimasng mpan2 syl6bbr adantr
      cv anbi1d exbidv syl5rbb brcog elimag adantl 3bitr4d pm5.21nii bitr3i ) A
      BFCDGZHABVOIZBCDAJZKZKZHZABVOLVPAMHZBMHZNZVTVOOVPWCCDUAABVOUBUCVTWAWBWAVT
      WAPVQQUDZVTPAUEWDVTBQHBUFWDVSQBWDVSCDQKZKZQWDVRWECVQQDUGUHWFCQKQWEQCDRUIC
      RUJUKULUMUNUOBVSUPUQWCAEVEZDIZWGBCIZNZESZWIEVRURZVPVTWLWGVRHZWINZESWCWKWI
      EVRUSWCWNWJEWCWMWHWIWAWMWHTWBWAWMAWGFDHZWHWAWGMHWMWOTEUTDAWGMMVAVBAWGDLVC
      VDVFVGVHEABCDMMVIWBVTWLTWAEBCVRMVJVKVLVMVN $.
  $}

  ${
    $d A x $.  $d B p x y z $.  $d R p x y z $.
    $( Quantifier-free expression saying that a class is a member of an image.
       (Contributed by Scott Fenton, 8-May-2018.) $)
    elima4 $p |- ( A e. ( R " B ) <-> ( R i^i ( B X. { A } ) ) =/= (/) ) $=
      ( vx vp vy vz wcel cvv csn cxp cin c0 wne wceq cv wex wa 3bitri exbii xp0
      cima elex xpeq2 syl6eq ineq2d in0 necon3i snnzb sylibr sneq xpeq2d neeq1d
      eleq1 cop elin ancom anbi1i anass 2exbii 19.41vv bitr3i exrot3 weq anbi2d
      elxp opex ceqsexv an12 velsn vex opeq2 eleq1d n0 elima3 vtoclbg pm5.21nii
      3bitr4ri ) ACBUBZHZAIHZCBAJZKZLZMNZAVSUCWEWBMNWAWBMWDMWBMOZWDCMLMWFWCMCWF
      WCBMKMWBMBUDBUAUEUFCUGUEUHAUIUJDPZVSHZCBWGJZKZLZMNZVTWEDAIWGAVSUNWGAOZWKW
      DMWMWJWCCWMWIWBBWGAUKULUFUMEPZWKHZEQZFPZBHZWQWGUOZCHZRZFQZWLWHWPWNWQGPZUO
      ZOZWRXCWIHZRZRZGQFQZWNCHZRZEQZXEXGXJRZRZEQZGQZFQZXBWOXKEWOXJWNWJHZRXRXJRX
      KWNCWJUPXJXRUQXRXIXJFGWNBWIVFURSTXLXNGQFQZEQXQXSXKEXSXHXJRZGQFQXKXTXNFGXE
      XGXJUSUTXHXJFGVAVBTXNEFGVCVBXPXAFXPXGXDCHZRZGQGDVDZWRYARZRZGQXAXOYBGXMYBE
      XDWQXCVGXEXJYAXGWNXDCUNVEVHTYBYEGYBWRXFYARRXFYDRYEWRXFYAUSWRXFYAVIXFYCYDG
      WGVJURSTYDXAGWGDVKZYCYAWTWRYCXDWSCXCWGWQVLVMVEVHSTSEWKVNFWGCBYFVOVRVPVQ
      $.
  $}

  $( The value of the converse of ` 1st ` restricted to a singleton.
     (Contributed by Scott Fenton, 2-Jul-2020.) $)
  fv1stcnv $p |- ( ( X e. A /\ Y e. V ) ->
       ( `' ( 1st |` ( A X. { Y } ) ) ` X ) = <. X , Y >. ) $=
    ( wcel wa c1st csn cxp cres ccnv cfv cop wceq wbr wb cvv bitrd mpbird wf1o
    snidg anim2i jctil brcnvg mpan2 brresg adantr opelxp anbi2i br1steqg anbi1d
    eqid opex syl5bb wfn 1stconst f1ocnv f1ofn 3syl simpl fnbrfvb syl2an2 ) CAE
    ZDBEZFZCGADHZIZJZKZLCDMZNZCVJVIOZVEVLCCNZVCDVFEZFZFZVEVOVMVDVNVCDBUAUBCULUC
    VEVLVJCGOZVJVGEZFZVPVCVLVSPVDVCVLVJCVHOZVSVCVJQEVLVTPCDUMCVJAQVHUDUEVJCGVGA
    UFRUGVSVQVOFVEVPVRVOVQCDAVFUHUIVEVQVMVOCDCABUJUKUNRSVDVIAUOZVCVCVKVLPVDVGAV
    HTAVGVITWAADBUPVGAVHUQAVGVIURUSVCVDUTACVJVIVAVBS $.

  $( The value of the converse of ` 2nd ` restricted to a singleton.
     (Contributed by Scott Fenton, 2-Jul-2020.) $)
  fv2ndcnv $p |- ( ( X e. V /\ Y e. A ) ->
       ( `' ( 2nd |` ( { X } X. A ) ) ` Y ) = <. X , Y >. ) $=
    ( wcel wa c2nd csn cxp cres ccnv cfv cop wceq wbr wb wf1o cvv adantl bitrd
    snidg anim1i eqid jctil wfn 2ndconst adantr f1ocnv f1ofn 3syl sylancom opex
    fnbrfvb brcnvg mpan2 brresg opelxp anbi2i br2ndeqg anbi1d syl5bb mpbird ) C
    BEZDAEZFZDGCHZAIZJZKZLCDMZNZDDNZCVFEZVDFZFZVEVNVLVCVMVDCBUAUBDUCUDVEVKDVJVI
    OZVOVCVDVIAUEZVKVPPVEVGAVHQZAVGVIQVQVCVRVDCABUFUGVGAVHUHAVGVIUIUJADVJVIUMUK
    VEVPVJDVHOZVOVDVPVSPZVCVDVJREVTCDULDVJARVHUNUOSVEVSVJDGOZVJVGEZFZVOVDVSWCPV
    CVJDGVGAUPSWCWAVNFVEVOWBVNWACDVFAUQURVEWAVLVNCDDBAUSUTVATTTVB $.

  ${
    $d R x y $.  $d A x y $.
    $( The image is unaffected by intersection with the domain.  (Contributed
       by Scott Fenton, 17-Dec-2021.) $)
    imaindm $p |- ( R " A ) = ( R " ( A i^i dom R ) ) $=
      ( vx vy cima cdm cin wbr wrex wcel vex breldm pm4.71ri rexbii elin anbi1i
      cv wa anass elima bitri rexbii2 bitr4i 3bitr4i eqriv ) CBAEZBABFZGZEZDQZC
      QZBHZDAIZULDUHIZUKUFJUKUIJUMUJUGJZULRZDAIUNULUPDAULUOUJUKBDKCKZLMNULUPDUH
      AUJUHJZULRUJAJZUORZULRUSUPRURUTULUJAUGOPUSUOULSUAUBUCDUKBAUQTDUKBUHUQTUDU
      E $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Epsilon induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d ph y z $.  $d x y z $.
    setinds.1 $e |- ( A. y e. x [. y / x ]. ph -> ph ) $.
    $( Principle of ` _E ` induction (set induction).  If a property passes
       from all elements of ` x ` to ` x ` itself, then it holds for all
       ` x ` .  (Contributed by Scott Fenton, 10-Mar-2011.) $)
    setinds $p |- ph $=
      ( vz cv cvv wcel vex cab wss wi wceq setind wsbc wral dfss3 df-sbc ralbii
      nfsbc1v nfcv nfral nfim raleq sbceq1a chvar sylbir sylbi sylib mpg eqcomi
      imbi12d abeq2i mpbi ) BFZGHABIABGABJZGEFZUPKZUQUPHZLUPGMEEUPNURABUQOZUSUR
      CFZUPHZCUQPZUTCUQUPQVCABVAOZCUQPZUTVDVBCUQABVARSVDCUOPZALVEUTLBEVEUTBVDBC
      UQBUQUAABVATUBABUQTUCUOUQMVFVEAUTVDCUOUQUDABUQUEULDUFUGUHABUQRUIUJUKUMUN
      $.
  $}

  ${
    $d x y $.  $d ph y $.
    setinds2f.1 $e |- F/ x ps $.
    setinds2f.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    setinds2f.3 $e |- ( A. y e. x ps -> ph ) $.
    $( ` _E ` induction schema, using implicit substitution.  (Contributed by
       Scott Fenton, 10-Mar-2011.)  (Revised by Mario Carneiro,
       11-Dec-2016.) $)
    setinds2f $p |- ph $=
      ( cv wsbc wral wsb sbsbc sbie bitr3i ralbii sylbi setinds ) ACDACDHIZDCHZ
      JBDSJARBDSRACDKBACDLABCDEFMNOGPQ $.
  $}

  ${
    $d x y $.  $d ph y $.  $d ps x $.
    setinds2.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    setinds2.2 $e |- ( A. y e. x ps -> ph ) $.
    $( ` _E ` induction schema, using implicit substitution.  (Contributed by
       Scott Fenton, 10-Mar-2011.) $)
    setinds2 $p |- ph $=
      ( nfv setinds2f ) ABCDBCGEFH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordinal numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z A $.
    $( A class of transitive sets is partially ordered by ` _E ` .
       (Contributed by Scott Fenton, 15-Oct-2010.) $)
    elpotr $p |- ( A. z e. A Tr z -> _E Po A ) $=
      ( vx vy wel wa wi wal wral wtr cep wpo alral alimi syl ralcom ralbii epel
      cv wbr ralimi bitri sylib dftr2 df-po anbi12i imbi12i elirrv mtbir bitr3i
      wn biantrur 2ralbii bitr4i 3imtr4i ) CDEZDAEZFZCAEZGZDHZCHZABIZUTABIZDBIZ
      CBIZASZJZABIBKLZVCUTDBIZCBIZABIZVFVBVKABVBVJCHVKVAVJCUTDBMNVJCBMOUAVLVJAB
      IZCBIVFVJACBBPVMVECBUTADBBPQUBUCVHVBABCDVGUDQVICSZVNKTZUKZVNDSZKTZVQVGKTZ
      FZVNVGKTZGZFZABIZDBICBIVFCDABKUEVDWDCDBBUTWCABUTWBWCVTURWAUSVRUPVSUQCDRDA
      RUFCARUGVPWBVOCCECUHCCRUIULUJQUMUNUO $.
  $}

  ${
    $( Given ~ ax-reg , an ordinal is a transitive class totally ordered by
       epsilon.  (Contributed by Scott Fenton, 28-Jan-2011.) $)
    dford5reg $p |- ( Ord A <-> ( Tr A /\ _E Or A ) ) $=
      ( word wtr cep wwe wa wor df-ord wfr zfregfr df-we mpbiran anbi2i bitri )
      ABACZADEZFOADGZFAHPQOPADIQAJADKLMN $.
  $}

  ${
    $d x y $.  $d y ph $.  $d y ps $.
    $( Lemma for ~ dfon2 .  (Contributed by Scott Fenton, 28-Feb-2011.) $)
    dfon2lem1 $p |- Tr U. { x | ( ph /\ Tr x /\ ps ) } $=
      ( vy cv wtr w3a cab cuni truni wcel wsbc nfsbc1v nfv vex weq sbceq1a treq
      nf3an 3anbi123d elabf simp2bi mprg ) DEZFZACEZFZBGZCHZIFDUIDUIJUDUIKACUDL
      ZUEBCUDLZUHUJUEUKGCUDUJUEUKCACUDMUECNBCUDMSDOCDPAUJUGUEBUKACUDQUFUDRBCUDQ
      TUAUBUC $.
  $}

  ${
    $d x A $.
    $( Lemma for ~ dfon2 .  (Contributed by Scott Fenton, 28-Feb-2011.) $)
    dfon2lem2 $p |- U. { x | ( x C_ A /\ ph /\ ps ) } C_ A $=
      ( cv wss w3a cab cpw cuni simp1 ss2abi df-pw sseqtr4i sspwuni mpbi ) CEDF
      ZABGZCHZDIZFSJDFSQCHTRQCQABKLCDMNSDOP $.
  $}

  ${
    $d A x z w t $.

    $( Lemma for ~ dfon2 .  All sets satisfying the new definition are
       transitive and untangled.  (Contributed by Scott Fenton,
       25-Feb-2011.) $)
    dfon2lem3 $p |- ( A e. V -> ( A. x ( ( x C. A /\ Tr x ) -> x e. A ) ->
                                        ( Tr A /\ A. z e. A -. z e. z ) ) ) $=
      ( vw vt wcel cv wtr wa wi wel wn wral wss w3a wceq sseq1 treq cvv wal cab
      wpss cuni untelirr wrex eluni2 raleq 3anbi123d elequ1 elequ2 bitrd notbid
      vex elab cbvralv biimpi 3ad2ant3 sylbi rsp rexlimiv mprg dfon2lem2 dfpss2
      syl dfon2lem1 ssexg mpan psseq1 anbi12d eleq1 imbi12d spcgv imp sylan csn
      csuc snssi cun unss df-suc sseq1i sylbb2 sylancr suctr untuni mprgbir nfv
      ax-mp nfra1 nf3an nfuni untsucf nfsuc raleqf cbvabv elab2g biimprd sucexg
      nfab nfcv syl11 mp3an23 elssuni sucssel syl5 syld mpd syl6 mpan2i syl5bir
      com12 mpani mt3i pm3.2i mpbii ex ) CDGZAHZCUCZXSIZJZXSCGZKZAUAZCIZBBLZMZB
      CNZJZXRYEJZEHZCOZYLIZFFLZMZFYLNZPZEUBZUDZCQZYJYKUUAYTYTGZYHUUBMBYTBYTUEBH
      ZYTGBALZAYSUFYHAUUCYSUGUUDYHAYSXSYSGZYHBXSNZUUDYHKUUEXSCOZYAYPFXSNZPZUUFY
      RUUIEXSAUNYLXSQYMUUGYNYAYQUUHYLXSCRYLXSSYPFYLXSUHUIUOUUHUUGUUFYAUUHUUFYPY
      HFBXSFHUUCQZYOYGUUJYOBFLYGFBFUJFBBUKULUMUPUQURUSZYHBXSUTVEVAUSVBYKYTCOZUU
      AMZUUBYNYQECVCZUULUUMJYTCUCZYKUUBYTCVDYKUUOYTIZUUBYMYQEVFZYKUUOUUPJZYTCGZ
      UUBXRYTTGZYEUURUUSKZUULXRUUTUUNYTCDVGVHUUTYEUVAYDUVAAYTTXSYTQZYBUURYCUUSU
      VBXTUUOYAUUPXSYTCVIXSYTSVJXSYTCVKVLVMVNVOUUSYTVQZCOZUUBUUSUULYTVPZCOZUVDU
      UNYTCVRUULUVFJYTUVEVSZCOUVDYTUVECVTUVCUVGCYTWAWBWCWDUUSUVDUVCYSGZUUBUVDUU
      SUVHUVDUVCIZYPFUVCNZUUSUVHKUUPUVIUUQYTWEWIYHBYTNZUVJUVKUUFAYSBAYSWFUUKWGZ
      BFYTFYSYRFEYMYNYQFYMFWHYNFWHYPFYLWJWKWTWLZWMWIUVCTGZUVDUVIUVJPZUVHUUSUVNU
      VHUVOUUCCOZUUCIZYPFUUCNZPZUVOBUVCYSTUUCUVCQUVPUVDUVQUVIUVRUVJUUCUVCCRUUCU
      VCSYPFUUCUVCFUUCXAFYTUVMWNWOUIYRUVSEBYLUUCQYMUVPYNUVQYQUVRYLUUCCRYLUUCSYP
      FYLUUCUHUIWPWQWRYTCWSXBXCXLUVHUVCYTOUUSUUBUVCYSXDYTYTCXEXFXGXHXIXJXKXMXNU
      UAUUPUVKJYJUUPUVKUUQUVLXOUUAUUPYFUVKYIYTCSYHBYTCUHVJXPVEXQ $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    dfon2lem4.1 $e |- A e. _V $.
    dfon2lem4.2 $e |- B e. _V $.
    $( Lemma for ~ dfon2 .  If two sets satisfy the new definition, then one is
       a subset of the other.  (Contributed by Scott Fenton, 25-Feb-2011.) $)
    dfon2lem4 $p |- ( ( A. x ( ( x C. A /\ Tr x ) -> x e. A ) /\
                         A. y ( ( y C. B /\ Tr y ) -> y e. B ) ) ->
                         ( A C_ B \/ B C_ A ) ) $=
      ( vz cv wpss wtr wa wcel wi wal wceq wo wss wn cvv eleq1 inss1 sseli wral
      cin wel dfon2lem3 ax-mp simprd eleq2 bitrd notbid rspccv syl syl5 pm2.01d
      adantr elin sylnib simpld trin syl2an inex1 psseq1 anbi12d imbi12d mpan2d
      treq spcv adantl anim12d mtod ianor sylib sspss mpbi inss2 orel1 orc syl6
      olc jaoa mp2ani df-ss sseqin2 orbi12i sylibr ) AHZCIZWGJZKZWGCLZMZANZBHZD
      IZWNJZKZWNDLZMZBNZKZCDUDZCOZXBDOZPZCDQZDCQZPXAXBCIZRZXBDIZRZPZXEXAXHXJKZR
      XLXAXMXBCLZXBDLZKZXAXBXBLZXPXAXQXQXNXAXQRZXBCXBCDUAZUBWMXNXRMZWTWMGGUEZRZ
      GCUCZXTWMCJZYCCSLWMYDYCKMEAGCSUFUGZUHYBXRGXBCGHZXBOZYAXQYGYAXBYFLXQYFXBYF
      TYFXBXBUIUJUKULUMUPUNUOXBCDUQURXAXHXNXJXOXAXHXBJZXNWMYDDJZYHWTWMYDYCYEUSW
      TYIYBGDUCZDSLWTYIYJKMFBGDSUFUGUSCDUTVAZWMXHYHKZXNMZWTWLYMAXBCDEVBZWGXBOZW
      JYLWKXNYOWHXHWIYHWGXBCVCWGXBVGVDWGXBCTVEVHUPVFXAXJYHXOYKWTXJYHKZXOMZWMWSY
      QBXBYNWNXBOZWQYPWRXOYRWOXJWPYHWNXBDVCWNXBVGVDWNXBDTVEVHVIVFVJVKXHXJVLVMXL
      XHXCPZXJXDPZXEXBCQYSXSXBCVNVOXBDQYTCDVPXBDVNVOXIYSXEXKYTXIYSXCXEXHXCVQXCX
      DVRVSXKYTXDXEXJXDVQXDXCVTVSWAWBUMXFXCXGXDCDWCDCWDWEWF $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    dfon2lem5.1 $e |- A e. _V $.
    dfon2lem5.2 $e |- B e. _V $.
    $( Lemma for ~ dfon2 .  Two sets satisfying the new definition also satisfy
       trichotomy with respect to ` e. ` .  (Contributed by Scott Fenton,
       25-Feb-2011.) $)
    dfon2lem5 $p |- ( ( A. x ( ( x C. A /\ Tr x ) -> x e. A ) /\
                         A. y ( ( y C. B /\ Tr y ) -> y e. B ) ) ->
                       ( A e. B \/ A = B \/ B e. A ) ) $=
      ( vz cv wpss wtr wa wcel wi wal wceq wn wo w3o bitri cvv dfon2lem4 dfpss2
      wss eqcom notbii anbi2i orbi12i andir bitr4i orcom dfon2lem3 ax-mp simpld
      wel wral psseq1 treq anbi12d eleq1 imbi12d spcv expcomd imp mpan9 orim12d
      sylan2 syl5bi syl5bir mpand 3orrot 3orass df-or sylibr ) AHZCIZVNJZKZVNCL
      ZMZANZBHZDIZWAJZKZWADLZMZBNZKZCDOZPZDCLZCDLZQZMZWLWIWKRZWHCDUCZDCUCZQZWJW
      MABCDEFUAWRWJKZCDIZDCIZQZWHWMXBWPWJKZWQWJKZQWSWTXCXAXDCDUBXAWQDCOZPZKXDDC
      UBXFWJWQXEWIDCUDUEUFSUGWPWQWJUHUIXBXAWTQWHWMWTXAUJWHXAWKWTWLWGVTDJZXAWKMZ
      WGXGGGUNPZGDUOZDTLWGXGXJKMFBGDTUKULUMVTXGXHVTXAXGWKVSXAXGKZWKMADFVNDOZVQX
      KVRWKXLVOXAVPXGVNDCUPVNDUQURVNDCUSUTVAVBVCVFVTCJZWGWTWLMVTXMXIGCUOZCTLVTX
      MXNKMEAGCTUKULUMWGWTXMWLWFWTXMKZWLMBCEWACOZWDXOWEWLXPWBWTWCXMWACDUPWACUQU
      RWACDUSUTVAVBVDVEVGVHVIWOWIWKWLRZWNWLWIWKVJXQWIWMQWNWIWKWLVKWIWMVLSSVM $.
  $}

  ${
    $d S x y z w s t $.
    $( Lemma for ~ dfon2 .  A transitive class of sets satisfying the new
       definition satisfies the new definition.  (Contributed by Scott Fenton,
       25-Feb-2011.) $)
    dfon2lem6 $p |- ( ( Tr S /\
                         A. x e. S A. z ( ( z C. x /\ Tr z ) -> z e. x ) ) ->
                       A. y ( ( y C. S /\ Tr y ) -> y e. S ) ) $=
      ( vs vw vt wtr cv wpss wa wel wi wal wral wcel weq wn syl imbi12d wo cdif
      wss pssss ssralv impcom adantrr ad2ant2lr psseq2 anbi1d elequ2 albidv imp
      rspccv eldifi rspcv psseq1 treq anbi12d elequ1 cbvalv syl6ib ad2ant2l w3o
      adantr vex dfon2lem5 3orrot 3orass bitri eleq1a elndif nsyli adantll trss
      orel1 eldifn ssel con3d syl5com syl9 adantl imp31 syl9r mpd syl5bi mp2and
      syl5 ex ssrdv dfpss2 spv expd com23 syl6 com3l adantld imp32 syl5bir orrd
      mpand anassrs ralrimiva wrex wne pssdif r19.2z ad2antrl eleq1 syl5ibr a1i
      c0 trel syl7 ad2antrr jaod rexlimdv syld alrimiv ) DHZCIZAIZJZYAHZKZCALZM
      ZCNZADOZKZBIZDJZYKHZKZYKDPZMBYJYNYOYJYNKZBEQZBELZUAZEDYKUBZOZYOYPYSEYTYJY
      NEIZYTPZYSYJYNUUCKZKZYQYRUUEYKUUBUCZYQRZYRUUEFYKUUBUUEFBLZFELZUUEUUHKZYAF
      IZJZYDKZCFLZMZCNZGIZUUBJZUUQHZKZGELZMZGNZUUIUUEUUHUUPUUEYHAYKOZUUHUUPMYIY
      NUVDXTUUCYIYLUVDYMYLYIUVDYLYKDUCYIUVDMYKDUDYHAYKDUESUFUGUHYHUUPAUUKYKAFQZ
      YGUUOCUVEYEUUMYFUUNUVEYCUULYDYBUUKYAUIUJAFCUKTULUNSUMUUEUVCUUHYIUUCUVCXTY
      NUUCYIUVCUUCYIYAUUBJZYDKZCELZMZCNZUVCUUCUUBDPZYIUVJMUUBDYKUOZYHUVJAUUBDAE
      QZYGUVICUVMYEUVGYFUVHUVMYCUVFYDYBUUBYAUIUJAECUKTULUPSZUVIUVBCGCGQZUVGUUTU
      VHUVAUVOUVFUURYDUUSYAUUQUUBUQYAUUQURUSCGEUTTVAVBUFVCVEUUPUVCKUUIFEQZEFLZV
      DZUUJUUICGUUKUUBFVFEVFVGUVRUVPUVQUUIUAZUAZUUJUUIUVRUVPUVQUUIVDUVTUUIUVPUV
      QVHUVPUVQUUIVIVJUUJUVPRZUVTUUIMUUDUUHUWAYJUUCUUHUWAYNUUCUUHUWAUUCUVPUUKYT
      PUUHUUBYTUUKVKUUKYKDVLVMUMVNVNUWAUVTUVSUUJUUIUVPUVSVPUUJUVQRZUVSUUIMUUDUU
      HUWBYJYNUUCUUHUWBYMUUCUUHUWBMMYLYMUUHUUKYKUCZUUCUWBYKUUKVOUUCEBLZRUWCUWBU
      UBDYKVQUWCUVQUWDUUKYKUUBVRVSVTWAWBWCVNUVQUUIVPSWDWEWFWHWGWIWJUUFUUGKYKUUB
      JZUUEYRYKUUBWKYJYNUUCUWEYRMZYIYNUUCUWFMZMXTYIYMUWGYLUUCYIYMUWFUUCYIUVJYMU
      WFMUVNUVJUWEYMYRUVJUWEYMYRUVIUWEYMKZYRMCBCBQZUVGUWHUVHYRUWIUVFUWEYDYMYAYK
      UUBUQYAYKURUSCBEUTTWLWMWNWOWPWQWBWRWSXAWTXBXCYPUUAYSEYTXDZYOYLUUAUWJMZYJY
      MYLYTXLXEZUWKYKDXFUWLUUAUWJYSEYTXGWISXHYPYSYOEYTYPYSUUCYOYPYQUUCYOMZYRYQU
      WMMYPUUCYOYQUVKUVLYKUUBDXIXJXKXTYRUWMMYIYNUUCUVKXTYRYOUVLXTYRUVKYODYKUUBX
      MWMXNXOXPWNXQXRWEWIXS $.
  $}

  ${
    $d A x y z w s t u $.  $d B x y z w t $.
    dfon2lem7.1 $e |- A e. _V $.
    $( Lemma for ~ dfon2 .  All elements of a new ordinal are new ordinals.
       (Contributed by Scott Fenton, 25-Feb-2011.) $)
    dfon2lem7 $p |- ( A. x ( ( x C. A /\ Tr x ) -> x e. A ) ->
                       ( B e. A -> A. y ( ( y C. B /\ Tr y ) -> y e. B ) ) ) $=
      ( vw vt vz vu wpss wtr wa wcel wi wal wss wel wral sylbi imbi12d w3a cuni
      vs cv cab wceq csuc csn wn weq elequ1 elequ2 notbid cbvralv biimpi ralimi
      bitrd untuni sylibr vex sseq1 treq raleq 3anbi123d dfon2lem3 ax-mp simprd
      elab cvv untelirr 3ad2ant3 mprg psseq2 anbi1d albidv 3anbi3i abbii unieqi
      syl eleq2i sylnib dfon2lem2 ssexi snss mtbi intnan cun df-suc sseq1i unss
      bitr4i mtbir dfon2lem1 suctr elsuc wrex eluni2 nfa1 rspccv psseq1 anbi12d
      wo cbvalv syl6ib rexlimi rexlimiv rgen dfon2lem6 mp2an eleq2 mpbiri sucex
      elssuni sylbir mp3an23 ralbii syl6bb cbvabv syl6sseq syl5bir mpani syl5bi
      jaoi a1i mtoi eleq1 spcv mpan2i mtod dfpss2 biimpri mpan nsyl2 mpbii 3syl
      rsp ) AUDZCJZYQKZLZYQCMZNZAOZFUDZCPZUUDKZBUDZGUDZJZUUGKZLZBGQZNZBOZGUUDRZ
      UAZFUEZUBZCUFZUUGHUDZJZUUJLZBHQZNZBOZHCRZDCMUUGDJZUUJLZUUGDMZNZBOZNUUCUUR
      CJZUUSUUCUVLUURCMZUUCUVMUURUGZUUEUUFUUGIUDZJZUUJLZBIQZNZBOZIUUDRZUAZFUEZU
      BZPZUWEUURUWDPZUURUHZUWDPZLZUWHUWFUURUWDMZUWHHHQZUIZHUURRZUWJUIGGQZUIZGYQ
      RZUWMAUUQUWPAUUQRUWLHYQRZAUUQRUWMUWPUWQAUUQUWPUWQUWOUWLGHYQGHUJZUWNUWKUWR
      UWNHGQUWKGHGUKGHHULUQUMUNUOUPHAUUQURUSYQUUQMZYQCPZYSUUNGYQRZUAZUWPUUPUXBF
      YQAUTZFAUJZUUEUWTUUFYSUUOUXAUUDYQCVAZUUDYQVBZUUNGUUDYQVCZVDVHZUXAUWTUWPYS
      UUNUWOGYQUUNIIQUIIUUHRZUWOUUNUUHKZUXIUUHVIMUUNUXJUXILNGUTBIUUHVIVEVFVGIUU
      HVJVSUPVKSVLUWMUURUURMUWJHUURVJUURUWDUURUUQUWCUUPUWBFUUOUWAUUEUUFUUNUVTGI
      UUDGIUJZUUMUVSBUXKUUKUVQUULUVRUXKUUIUVPUUJUUHUVOUUGVMVNGIBULTVOZUNVPVQVRV
      TWAVFUURUWDUURCEUUFUUOFCWBZWCZWDWEWFUWEUURUWGWGZUWDPUWIUVNUXOUWDUURWHZWIU
      URUWGUWDWJWKWLUVMUWGCPZUUCUWEUURCUXNWDUUCUURCPZUXQUWEUXMUXRUXQLZUVNCPZUUC
      UWEUXTUXOCPUXSUVNUXOCUXPWIUURUWGCWJWKUXTUWENUUCUXTUVNUCUDZCPZUYAKZYQUVOJZ
      YSLZAIQZNZAOZIUYARZUAZUCUEZUBZUWDUXTUVNKZUYHIUVNRZUVNUYLPZUURKZUYMUUEUUOF
      WMZUURWNVFUYHIUVNUVOUVNMUVOUURMZUVOUURUFZXBUYHUVOUURIUTWOUYRUYHUYSUYRIAQZ
      AUUQWPZUYHAUVOUUQWQZUYTUYHAUUQUYGAWRUWSUXBUYTUYHNZUXHUXAUWTVUCYSUXAUYTUVT
      UYHUUNUVTGUVOYQUXLWSZUVSUYGBABAUJZUVQUYEUVRUYFVUEUVPUYDUUJYSUUGYQUVOWTUUG
      YQVBXABAIUKTXCXDVKSXESUYSUYHYQUURJZYSLZYQUURMZNZAOZUYPUUTUVOJZUUTKZLZHIQZ
      NZHOZIUURRVUJUYQVUPIUURUYRVUAVUPVUBUYTVUPAUUQUWSUXBUYTVUPNZUXHUXAUWTVUQYS
      UXAUYTUVTVUPVUDUVSVUOBHBHUJZUVQVUMUVRVUNVURUVPVUKUUJVULUUGUUTUVOWTUUGUUTV
      BXABHIUKTXCXDVKSXFSXGIAHUURXHXIUYSUYGVUIAUYSUYEVUGUYFVUHUYSUYDVUFYSUVOUUR
      YQVMVNUVOUURYQXJTVOXKYCSXGUXTUYMUYNUAZUVNUYKMUYOUYJVUSUCUVNUURUXNXLUYAUVN
      UFUYBUXTUYCUYMUYIUYNUYAUVNCVAUYAUVNVBUYHIUYAUVNVCVDVHUVNUYKXMXNXOUYKUWCUY
      JUWBUCFUCFUJZUYBUUEUYCUUFUYIUWAUYAUUDCVAUYAUUDVBVUTUYIUYHIUUDRUWAUYHIUYAU
      UDVCUYHUVTIUUDUYGUVSABABUJZUYEUVQUYFUVRVVAUYDUVPYSUUJYQUUGUVOWTYQUUGVBXAA
      BIUKTXCXPXQVDXRVRXSYDXTYAYBYEUUCUVLUYPUVMUYQUUBUVLUYPLZUVMNAUURUXNYQUURUF
      ZYTVVBUUAUVMVVCYRUVLYSUYPYQUURCWTYQUURVBXAYQUURCYFTYGYHYIUXRUUSUIZUVLUXMU
      VLUXRVVDLUURCYJYKYLYMUUSUVEHUURRUVFUVEHUURUUTUURMHAQZAUUQWPUVEAUUTUUQWQVV
      EUVEAUUQUWSUWTYSUVEHYQRZUAZVVEUVENZUUPVVGFYQUXCUXDUUEUWTUUFYSUUOVVFUXEUXF
      UXDUUOUXAVVFUXGUUNUVEGHYQUWRUUMUVDBUWRUUKUVBUULUVCUWRUUIUVAUUJUUHUUTUUGVM
      VNGHBULTVOUNXQVDVHVVFUWTVVHYSUVEHYQYPVKSXFSXGUVEHUURCVCYNUVEUVKHDCUUTDUFZ
      UVDUVJBVVIUVBUVHUVCUVIVVIUVAUVGUUJUUTDUUGVMVNUUTDUUGXJTVOWSYO $.
  $}

  ${
    $d A x y z w t $.
    $( Lemma for ~ dfon2 .  The intersection of a nonempty class ` A ` of new
       ordinals is itself a new ordinal and is contained within ` A `
       (Contributed by Scott Fenton, 26-Feb-2011.) $)
    dfon2lem8 $p |- ( ( A =/= (/) /\
                         A. x e. A A. y ( ( y C. x /\ Tr y ) -> y e. x ) ) ->
                       ( A. z ( ( z C. |^| A /\ Tr z ) -> z e. |^| A ) /\
                         |^| A e. A ) ) $=
      ( vt vw cv wpss wtr wa wel wi wal wral wcel wn cvv syl sylbi wceq c0 cint
      wne vex dfon2lem3 ax-mp simpld ralimi trint adantl cuni dfon2lem7 alrimiv
      df-ral 19.21v albii bitr4i impexp 2albii eluni2 biimpi imim1i alimi alcom
      wrex wex 19.23v df-rex imbi1i bitri 3imtr4i sylbir intssuni ssralv adantr
      wss mpd dfon2lem6 imp simprd untelirr adantlr risset notbii ralnex psseq2
      intex eqcom anbi1d elequ2 imbi12d albidv rspccv intss1 dfpss2 psseq1 treq
      anbi12d eleq1 spcgv expd exp4b com45 com23 syl5 mpdd mpid syl7bi ralrimiv
      syl5bir ralim syl5bi wb elintg ad2antrr sylibrd mt3d ex ancld mp2and ) DU
      AUCZBGZAGZHZYBIZJZBAKZLZBMZADNZJZDUBZIZEGZFGZHYNIJEFKLEMZFYLNZCGZYLHYRIJY
      RYLOLCMZYLDOZJZYJYMYAYJYCIZADNYMYIUUBADYIUUBCCKPCYCNZYCQOYIUUBUUCJLAUDZBC
      YCQUEUFUGUHADUIRUJYKYPFDUKZNZYQYJUUFYAYJFAKZYPLZFMZADNZUUFYIUUIADYIUUHFBE
      YCYOUUDULUMUHUUJYCDOZUUHLZFMZAMZUUFUUJUUKUUILZAMUUNUUIADUNUUMUUOAUUKUUHFU
      OUPUQUUNUUKUUGJZYPLZFMAMZUUFUUQUULAFUUKUUGYPURUSUUGADVEZYPLZFMZYOUUEOZYPL
      ZFMUURUUFUUTUVCFUVBUUSYPUVBUUSAYODUTVAVBVCUURUUQAMZFMUVAUUQAFVDUVDUUTFUVD
      UUPAVFZYPLUUTUUPYPAVGUUSUVEYPUUGADVHVIUQUPVJYPFUUEUNVKVLSRUJYAUUFYQLZYJYA
      YLUUEVPUVFDVMYPFYLUUEVNRVOVQYMYQJYSYKUUAFCEYLVRYKYSYTYKYSYTYKYSJZYTYLYLOZ
      YAYSUVHPZYJYAYSJZEEKPEYLNZUVIUVJYMUVKYAYSYMUVKJZYAYLQOZYSUVLLDWGZCEYLQUES
      VSZVTEYLWARWBUVGYTPZYLYNOZEDNZUVHUVPYNYLTZPZEDNZUVGUVRUVPUVSEDVEZPUWAYTUW
      BEYLDWCWDUVSEDWEUQUVGUVTUVQLZEDNUWAUVRLUVGUWCEDUVTYLYNTZPZUVGYNDOZUVQUVSU
      WDYNYLWHWDUVGUWFYMUWEUVQLZYAYSYMYJUVJYMUVKUVOUGWBYKUWFYMUWGLZLYSYKUWFYBYN
      HZYEJZBEKZLZBMZUWHYJUWFUWMLYAYIUWMAYNDYCYNTZYHUWLBUWNYFUWJYGUWKUWNYDUWIYE
      YCYNYBWFWIAEBWJWKWLWMUJYAUWFUWMUWHLZLYJUWFYLYNVPZYAUWOYNDWNYAUWMUWPUWHYAU
      WMUWPUWEYMUVQYAUWMUWPUWEYMUVQLZUWPUWEJYLYNHZYAUWMJZUWQYLYNWOUWSUWRYMUVQYA
      UWMUWRYMJZUVQLZYAUVMUWMUXALUVNUWLUXABYLQYBYLTZUWJUWTUWKUVQUXBUWIUWRYEYMYB
      YLYNWPYBYLWQWRYBYLYNWSWKWTSVSXAXJXBXCXDXEVOXFVOXGXHXIUVTUVQEDXKRXLYAUVHUV
      RXMZYJYSYAUVMUXCUVNEYLDQXNSXOXPXQXRXSXEXT $.
  $}

  ${
    $d A x y z w t u $.
    $( Lemma for ~ dfon2 .  A class of new ordinals is well-founded by ` _E ` .
       (Contributed by Scott Fenton, 3-Mar-2011.) $)
    dfon2lem9 $p |- ( A. x e. A A. y ( ( y C. x /\ Tr y ) -> y e. x )
                         -> _E Fr A ) $=
      ( vz vt vw vu cv wpss wtr wa wel wi wal wral wss wn wrex cep wcel wne wfr
      c0 ssralv cint dfon2lem8 simprd intss1 simpld cvv wceq dfon2lem3 untelirr
      intex imp syl eleq1 notbid syl5ibcom a1dd trss eqss simplbi2com syl6 con3
      com23 pm2.61d sylanb syldan ralrimiv eleq2 ralbidv rspcev syl2anc syl6com
      syl5 expcom impd alrimiv wbr df-fr epel notbii ralbii rexbii imbi2i albii
      bitri sylibr ) BHZAHIWJJKBALMBNZACOZDHZCPZWMUCUAZKZEFLZQZEWMOZFWMRZMZDNZC
      SUBZWLXADWLWNWOWTWNWLWKAWMOZWOWTMWKAWMCUDWOXDWTWOXDKZWMUEZWMTZEHZXFTZQZEW
      MOZWTXEGHZXFIXLJKXLXFTMGNZXGABGWMUFZUGXEXJEWMEDLXFXHPZXEXJXHWMUHWOXDXMXOX
      JMZXEXMXGXNUIWOXFUJTZXMXPWMUNXQXMKZXFXHUKZXPXRXSXJXOXRXFXFTZQZXSXJXRAALQA
      XFOZYAXRXFJZYBXQXMYCYBKGAXFUJULUOZUGAXFUMUPXSXTXIXFXHXFUQURUSUTXRXOXSQZXJ
      XRXOXIXSMYEXJMXRXIXOXSXRXIXHXFPZXOXSMXRYCXIYFMXRYCYBYDUIXFXHVAUPXSXOYFXFX
      HVBVCVDVFXIXSVEVDVFVGVHVIVPVJWSXKFXFWMFHZXFUKZWRXJEWMYHWQXIYGXFXHVKURVLVM
      VNVQVOVRVSXCWPXHYGSVTZQZEWMOZFWMRZMZDNXBDFECSWAYMXADYLWTWPYKWSFWMYJWREWMY
      IWQEFWBWCWDWEWFWGWHWI $.
  $}

  ${
    $d x y z w t u v $.
    $( ` On ` consists of all sets that contain all its transitive proper
       subsets.  This definition comes from J. R. Isbell, "A Definition of
       Ordinal Numbers," American Mathematical Monthly, vol 67 (1960), pp.
       51-52.  (Contributed by Scott Fenton, 20-Feb-2011.) $)
    dfon2 $p |- On = { x | A. y ( ( y C. x /\ Tr y ) -> y e. x ) } $=
      ( vz vw vu vt vv cv cab wpss wtr wa wel wi wal cep wral vex weq imbi12d
      con0 word df-on wss wne tz7.7 df-pss syl6bbr exbiri com23 impd alrimiv wn
      wwe cvv wcel dfon2lem3 simpld wfr w3o dfon2lem7 ralrimiv dfon2lem9 psseq2
      anbi1d elequ2 albidv psseq1 anbi12d elequ1 cbvalv syl6bb rspccv dfon2lem5
      ax-mp treq anim12d syl6 ralrimivv jca syl wbr epel biid 3orbi123i 2ralbii
      dfwe2 anbi2i bitri sylibr df-ord sylanbrc impbii abbii eqtri ) UAAHZUBZAI
      BHZWPJZWRKZLBAMZNZBOZAIAUCWQXCAWQXCWQXBBWQWSWTXAWQWTWSXAWQWTXAWSWQWTLXAWR
      WPUDWRWPUELWSWPWRUFWRWPUGUHUIUJUKULXCWPKZWPPUNZWQXCXDCCMUMCWPQZWPUOUPXCXD
      XFLNARZBCWPUOUQVOURXCWPPUSZCDMZCDSZDCMZUTZDWPQCWPQZLZXEXCEHZFHZJZXOKZLZEF
      MZNZEOZFWPQZXNXCYBFWPBEWPXPXGVAVBYCXHXMFEWPVCYCXLCDWPWPYCCAMZDAMZLGHZCHZJ
      ZYFKZLZGCMZNZGOZWRDHZJZWTLZBDMZNZBOZLXLYCYDYMYEYSYBYMFYGWPFCSZYBXOYGJZXRL
      ZECMZNZEOYMYTYAUUDEYTXSUUBXTUUCYTXQUUAXRXPYGXOVDVEFCEVFTVGUUDYLEGEGSZUUBY
      JUUCYKUUEUUAYHXRYIXOYFYGVHXOYFVPVIEGCVJTVKVLVMYBYSFYNWPFDSZYBXOYNJZXRLZED
      MZNZEOYSUUFYAUUJEUUFXSUUHXTUUIUUFXQUUGXRXPYNXOVDVEFDEVFTVGUUJYREBEBSZUUHY
      PUUIYQUUKUUGYOXRWTXOWRYNVHXOWRVPVIEBDVJTVKVLVMVQGBYGYNCRDRVNVRVSVTWAXEXHY
      GYNPWBZXJYNYGPWBZUTZDWPQCWPQZLXNCDWPPWGUUOXMXHUUNXLCDWPWPUULXIXJXJUUMXKCD
      WCXJWDDCWCWEWFWHWIWJWPWKWLWMWNWO $.
  $}

  ${
    $d x y $.
    $( The domain of the epsilon relation is the universe.  (Contributed by
       Scott Fenton, 27-Oct-2010.) $)
    domep $p |- dom _E = _V $=
      ( vx vy weq cab cv cep wbr wex cvv cdm equid wel el exbii mpbir 2th abbii
      epel df-v df-dm 3eqtr4ri ) AACZADAEBEFGZBHZADIFJUBUDAUBUDAKUDABLZBHABMUCU
      EBABRNOPQASABFTUA $.
  $}

  ${
    $d F g $.  $d I g $.
    $( The value of the recursive definition generator at ` (/) ` when the base
       value is a proper class.  (Contributed by Scott Fenton, 26-Mar-2014.)
       (Revised by Mario Carneiro, 19-Apr-2014.) $)
    rdgprc0 $p |- ( -. I e. _V -> ( rec ( F , I ) ` (/) ) = (/) ) $=
      ( vg cvv wcel wn crdg cfv wceq cdm wlim crn cuni cif cmpt syl unieqd eqid
      c0 cv cres con0 0elon rdgval ax-mp res0 eqtri wa eqeq1 wb dmeq limeq rneq
      fveq2i fveq12d fveq2d ifbieq12d eleq1d dmmpt elrab2 iftruei eleq1i biimpi
      id ifbieq2d adantl sylbi con3i ndmfv syl5eq ) BDEZFZSABGZHZSCDCTZSIZBVOJZ
      KZVOLZMZVQMZVOHZAHZNZNZOZHZSVNVMSUAZWFHZWGSUBEVNWIIUCBSCAUDUEWHSWFVMUFUNU
      GVLSWFJZEZFWGSIWKVKWKSDEZSSIZBSJZKZSLZMZWNMZSHZAHZNZNZDEZUHVKWEDEXCCSDWJV
      PWEXBDVPVPWMWDXABVOSSUIVPVRWOVTWCWQWTVPVQWNIVRWOUJVOSUKZVQWNULPVPVSWPVOSU
      MQVPWBWSAVPWAWRVOSVPVDVPVQWNXDQUOUPUQVEURCDWEWFWFRUSUTXCVKWLXCVKXBBDWMBXA
      SRVAVBVCVFVGVHSWFVIPVJ $.
  $}

  ${
    $d F x y z $.  $d I x y z $.
    $( The value of the recursive definition generator when ` I ` is a proper
       class.  (Contributed by Scott Fenton, 26-Mar-2014.)  (Revised by Mario
       Carneiro, 19-Apr-2014.) $)
    rdgprc $p |- ( -. I e. _V -> rec ( F , I ) = rec ( F , (/) ) ) $=
      ( vx vz vy cvv wcel cv crdg cfv c0 wceq con0 wral wi fveq2 eqeq12d imbi2d
      weq wb csuc rdgprc0 0ex rdg0 syl6eqr rdgsuc syl5ibr imim2d wlim cres word
      r19.21v wss limord ordsson wfn rdgfnon fvreseq mpanl12 3syl cima cuni crn
      wn rneq df-ima 3eqtr4g unieqd vex rdglim mpan sylbird syl5bi tfinds com12
      wa ralrimiv eqfnfv mp2an sylibr ) BFGVDZCHZABIZJZWBAKIZJZLZCMNZWCWELZWAWG
      CMWBMGWAWGWADHZWCJZWJWEJZLZOZWAKWCJZKWEJZLZOWAEHZWCJZWRWEJZLZOZWAWRUAZWCJ
      ZXCWEJZLZOWAWGODEWBWJKLZWMWQWAXGWKWOWLWPWJKWCPWJKWEPQRDESZWMXAWAXHWKWSWLW
      TWJWRWCPWJWRWEPQRWJXCLZWMXFWAXIWKXDWLXEWJXCWCPWJXCWEPQRDCSZWMWGWAXJWKWDWL
      WFWJWBWCPWJWBWEPQRWAWOKWPABUBKAUCUDUEWRMGZXAXFWAXAXFXKWSAJZWTAJZLWSWTAPXK
      XDXLXEXMBWRAUFKWRAUFQUGUHXBEWJNWAXAEWJNZOWJUIZWNWAXAEWJULXOXNWMWAXOXNWCWJ
      UJZWEWJUJZLZWMXOWJUKWJMUMZXRXNTZWJUNWJUOWCMUPZWEMUPZXSXTBAUQZKAUQZEMWJWCW
      EURUSUTXRWMXOWCWJVAZVBZWEWJVAZVBZLZXRYEYGXRXPVCXQVCYEYGXPXQVEWCWJVFWEWJVF
      VGVHWJFGZXOWMYITDVIYJXOVPWKYFWLYHBWJFAVJKWJFAVJQVKUGVLUHVMVNVOVQYAYBWIWHT
      YCYDCMWCWEVRVSVT $.
  $}

  ${
    $d F f $.  $d f g $.  $d F g $.  $d f i $.  $d F i $.  $d f x $.  $d F x $.
    $d f y $.  $d F y $.  $d g i $.  $d g x $.  $d g y $.  $d I f $.  $d I i $.
    $d i x $.  $d I x $.  $d i y $.  $d I y $.  $d x y $.  $d f z $.  $d F z $.
    $d i z $.  $d y z $.
    $( Alternate definition of the recursive function generator when ` I ` is a
       set.  (Contributed by Scott Fenton, 26-Mar-2014.)  (Revised by Mario
       Carneiro, 19-Apr-2014.) $)
    dfrdg2 $p |- ( I e. V -> rec ( F , I ) =
       U. { f | E. x e. On ( f Fn x /\
            A. y e. x ( f ` y ) =
              if ( y = (/) , I ,
                   if ( Lim y , U. ( f " y ) ,
                        ( F ` ( f ` U. y ) ) ) ) ) } ) $=
      ( vg vz cv cfv c0 wceq cuni cif wa con0 cvv wcel fveq2d ifbieq2d crdg wfn
      wlim cima wral wrex cab rdgeq2 ifeq1 eqeq2d ralbidv anbi2d rexbidv abbidv
      vi unieqd eqeq12d cdm crn cmpt crecs cres df-rdg dfrecs3 wb w3a vex resex
      eqeq1 wrel relres reldm0 ax-mp syl6bb dmeq limeq syl rneq syl6eqr fveq12d
      df-ima id ifbieq12d eqid imaexg uniex fvex fvmpt cin dmres wss onelss imp
      ifex 3adant2 fndm 3ad2ant2 sseqtr4d df-ss sylib syl5eq unieq onelon eloni
      word csuc ordzsl iftrue eqtr4d sucid fvres ordunisuc 3eqtr4a nsuceq0 neii
      w3o iffalsei wn nlimsucg iffalse eqtri 3eqtr4g reseq2 syl5ibrcom rexlimiv
      mp2b wne df-lim simp2bi neneqd iffalsed 3jaoi sylbi sylan9eqr mpdan 3expa
      3eqtr4d ralbidva pm5.32da rexbiia abbii unieqi 3eqtri vtoclg ) DUOIZUAZCI
      ZAIZUBZBIZUUGJZUUJKLZUUEUUJUCZUUGUUJUDZMZUUJMZUUGJZDJZNZNZLZBUUHUEZOZAPUF
      ZCUGZMZLDEUAZUUIUUKUULEUUSNZLZBUUHUEZOZAPUFZCUGZMZLUOEFUUEELZUUFUVGUVFUVN
      UUEEDUHUVOUVEUVMUVOUVDUVLCUVOUVCUVKAPUVOUVBUVJUUIUVOUVAUVIBUUHUVOUUTUVHUU
      KUULUUEEUUSUIUJUKULUMUNUPUQUUFGQGIZKLZUUEUVPURZUCZUVPUSZMZUVRMZUVPJZDJZNZ
      NZUTZVAUUIUUKUUGUUJVBZUWGJZLZBUUHUEZOZAPUFZCUGZMUVFGDUUEVCABCUWGVDUWNUVEU
      WMUVDCUWLUVCAPUUHPRZUUIUWKUVBUWOUUIOUWJUVABUUHUWOUUIUUJUUHRZUWJUVAVEUWOUU
      IUWPVFZUWIUUTUUKUWQUWIUWHURZKLZUUEUWRUCZUUOUWRMZUWHJZDJZNZNZUUTUWHQRUWIUX
      ELUUGUUJCVGZVHGUWHUWFUXEQUWGUVPUWHLZUVQUWSUWEUXDUUEUXGUVQUWHKLZUWSUVPUWHK
      VIUWHVJUXHUWSVEUUGUUJVKUWHVLVMVNUXGUVSUWTUWAUWDUUOUXCUXGUVRUWRLUVSUWTVEUV
      PUWHVOZUVRUWRVPVQUXGUVTUUNUXGUVTUWHUSUUNUVPUWHVRUUGUUJWAVSUPUXGUWCUXBDUXG
      UWBUXAUVPUWHUXGWBUXGUVRUWRUXIUPVTSWCTUWGWDUWSUUEUXDUOVGUWTUUOUXCUUNUUGQRU
      UNQRUXFUUGUUJQWEVMWFUXBDWGWNWNWHVMUWQUWRUUJLZUXEUUTLUWQUWRUUJUUGURZWIZUUJ
      UUGUUJWJUWQUUJUXKWKUXLUUJLUWQUUJUUHUXKUWOUWPUUJUUHWKZUUIUWOUWPUXMUUHUUJWL
      WMWOUUIUWOUXKUUHLUWPUUHUUGWPWQWRUUJUXKWSWTXAUXJUWQUXEUULUUEUUMUUOUUPUWHJZ
      DJZNZNZUUTUXJUWSUULUXDUXPUUEUWRUUJKVIUXJUWTUUMUXCUXOUUOUWRUUJVPUXJUXBUXND
      UXJUXAUUPUWHUWRUUJXBSSTTUWQUUJXEZUXQUUTLZUWOUWPUXRUUIUWOUWPOUUJPRUXRUUHUU
      JXCUUJXDVQWOUXRUULUUJHIZXFZLZHPUFZUUMXPUXSHUUJXGUULUXSUYCUUMUULUXQUUEUUTU
      ULUUEUXPXHUULUUEUUSXHXIUYBUXSHPUXTPRZUXSUYBUYAKLZUUEUYAUCZUUOUYAMZUUGUYAV
      BZJZDJZNZNZUYEUUEUYFUUOUYGUUGJZDJZNZNZLUYDUYJUYNUYLUYPUYDUYIUYMDUYDUXTUYH
      JZUXTUUGJZUYIUYMUXTUYARUYQUYRLUXTHVGZXJUXTUYAUUGXKVMUYDUYGUXTUYHUYDUXTXEU
      YGUXTLUXTXDUXTXLVQZSUYDUYGUXTUUGUYTSXMSUYLUYKUYJUYEUUEUYKUYAKUXTXNXOZXQUX
      TQRZUYFXRZUYKUYJLUYSUXTQXSZUYFUUOUYJXTYFYAUYPUYOUYNUYEUUEUYOVUAXQVUBVUCUY
      OUYNLUYSVUDUYFUUOUYNXTYFYAYBUYBUXQUYLUUTUYPUYBUULUYEUXPUYKUUEUUJUYAKVIZUY
      BUUMUYFUXOUYJUUOUUJUYAVPZUYBUXNUYIDUYBUUPUYGUWHUYHUUJUYAUUGYCUUJUYAXBZVTS
      TTUYBUULUYEUUSUYOUUEVUEUYBUUMUYFUURUYNUUOVUFUYBUUQUYMDUYBUUPUYGUUGVUGSSTT
      UQYDYEUUMUXQUUSUUTUUMUXPUUOUXQUUSUUMUUOUXOXHUUMUULUUEUXPUUMUUJKUUMUXRUUJK
      YGUUJUUPLUUJYHYIYJZYKUUMUUOUURXHYQUUMUULUUEUUSVUHYKXIYLYMVQYNYOXAUJYPYRYS
      YTUUAUUBUUCUUD $.
  $}

  ${
    $d F f $.  $d f x $.  $d F x $.  $d f y $.  $d F y $.  $d I f $.  $d I x $.
    $d I y $.  $d x y $.
    $( Generalization of ~ dfrdg2 to remove sethood requirement.  (Contributed
       by Scott Fenton, 27-Mar-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    dfrdg3 $p |- rec ( F , I ) =
       U. { f | E. x e. On ( f Fn x /\
            A. y e. x ( f ` y ) =
              if ( y = (/) , if ( I e. _V , I , (/) ) ,
                   if ( Lim y , U. ( f " y ) ,
                        ( F ` ( f ` U. y ) ) ) ) ) } $=
      ( cvv wcel crdg cv cfv c0 wceq cif cuni wral wa con0 wrex cab dfrdg2 wlim
      wfn cima iftrue ifeq1d eqeq2d ralbidv anbi2d rexbidv abbidv unieqd eqtr4d
      wn 0ex ax-mp rdgprc iffalse 3eqtr4a pm2.61i ) EFGZDEHZCIZAIZUBZBIZVBJZVEK
      LZUTEKMZVEUAVBVEUCNVENVBJDJMZMZLZBVCOZPZAQRZCSZNZLUTVAVDVFVGEVIMZLZBVCOZP
      ZAQRZCSZNVPABCDEFTUTVOWBUTVNWACUTVMVTAQUTVLVSVDUTVKVRBVCUTVJVQVFUTVGVHEVI
      UTEKUDUEUFUGUHUIUJUKULUTUMZDKHZVDVFVGKVIMZLZBVCOZPZAQRZCSZNZVAVPKFGWDWKLU
      NABCDKFTUODEUPWCVOWJWCVNWICWCVMWHAQWCVLWGVDWCVKWFBVCWCVJWEVFWCVGVHKVIUTEK
      UQUEUFUGUHUIUJUKURUS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Defined equality axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( A version of ~ ax-ext for use with defined equality.  (Contributed by
     Scott Fenton, 12-Dec-2010.) $)
  axextdfeq $p |- E. z ( ( z e. x -> z e. y )
                    -> ( ( z e. y -> z e. x ) -> ( x e. w -> y e. w ) ) ) $=
    ( wel wb wi wex weq axextnd ax8 imim2i eximii biimpexp exbii mpbi ) CAEZCBE
    ZFZADEBDEGZGZCHQRGRQGTGGZCHSABIZGUACCABJUCTSABDKLMUAUBCQRTNOP $.

  $( A version of ~ ax-8 for use with defined equality.  (Contributed by Scott
     Fenton, 12-Dec-2010.) $)
  ax8dfeq $p |- E. z ( ( z e. x -> z e. y ) -> ( w e. x -> w e. y ) ) $=
    ( weq wel wi ax6e ax8 equcoms imim12d eximii ) CDEZCAFZCBFZGDAFZDBFZGGCCDHM
    PNOQPNGDCDCAIJCDBIKL $.

  ${
    $d w x $.  $d w y $.  $d z w $.
    $( ~ ax-ext with distinctors instead of distinct variable restrictions.
       (Contributed by Scott Fenton, 13-Dec-2010.) $)
    axextdist $p |- ( ( -. A. z z = x /\ -. A. z z = y )
                      -> ( A. z ( z e. x <-> z e. y ) -> x = y ) ) $=
      ( vw weq wal wn wa wel wb nfnae nfan wnfc nfcvf adantr nfcrd adantl nfbid
      cv elequ1 wi bibi12d a1i cbvald axext3 syl6bir ) CAECFGZCBECFGZHZCAIZCBIZ
      JZCFDAIZDBIZJZDFABEUIUOULDCUGUHCCACKCBCKLUIUMUNCUICDASZUGCUPMUHCANOPUICDB
      SZUHCUQMUGCBNQPRDCEZUOULJUAUIURUMUJUNUKDCATDCBTUBUCUDABDUEUF $.

    $( ~ axext4 with distinctors instead of distinct variable restrictions.
       (Contributed by Scott Fenton, 13-Dec-2010.) $)
    axext4dist $p |- ( ( -. A. z z = x /\ -. A. z z = y )
                      -> ( x = y <-> A. z ( z e. x <-> z e. y ) ) ) $=
      ( weq wal wn wa wel wb wi axc9 imp nfnae nfan elequ2 alimd syld axextdist
      a1i impbid ) CADCEFZCBDCEFZGZABDZCAHCBHIZCEZUCUDUDCEZUFUAUBUDUGJABCKLUCUD
      UECUAUBCCACMCBCMNUDUEJUCABCOSPQABCRT $.
  $}

  ${
    $d x y $.
    19.12b.1 $e |- F/ y ph $.
    19.12b.2 $e |- F/ x ps $.
    $( Version of ~ 19.12vv with not-free hypotheses, instead of distinct
       variable conditions.  (Contributed by Scott Fenton, 13-Dec-2010.)
       (Revised by Mario Carneiro, 11-Dec-2016.) $)
    19.12b $p |- ( E. x A. y ( ph -> ps ) <-> A. y E. x ( ph -> ps ) ) $=
      ( wi wal wex 19.21 exbii nfal 19.36 albii bitr2i 3bitri ) ABGZDHZCIABDHZG
      ZCIACHZSGZQCIZDHZRTCABDEJKASCBCDFLMUDUABGZDHUBUCUEDABCFMNUABDADCELJOP $.
  $}

  $( There is always a set not in ` y ` .  (Contributed by Scott Fenton,
     13-Dec-2010.) $)
  exnel $p |- E. x -. x e. y $=
    ( wel wn wex elirrv nfth weq ax8 con3d spime ax-mp ) BBCZDZABCZDZAEBFZNPABN
    AQGABHOMABBIJKL $.

  ${
    $d x z $.  $d y z $.
    $( Distinctors in terms of membership.  (NOTE: this only works with
       relations where we can prove ~ el and ~ elirrv .)  (Contributed by Scott
       Fenton, 15-Dec-2010.) $)
    distel $p |- ( -. A. y y = x <-> -. A. y -. x e. y ) $=
      ( vz weq wal wn wel wex el df-ex nfnae dveel1 nf5d nfnd elequ2 notbid a1i
      wb wi cbvald syl5bb mpbii elirrv elequ1 mtbii alimi con3i impbii ) BADZBE
      ZFZABGZFZBEZFZUKACGZCHZUOACIUQUPFZCEZFUKUOUPCJUKUSUNUKURUMCBBABKZUKUPBUKU
      PBUTBACLMNCBDZURUMRSUKVAUPULCBAOPQTPUAUBUJUNUIUMBUIBBGULBUCBABUDUEUFUGUH
      $.
  $}

  $( ~ axextnd as a biconditional.  (Contributed by Scott Fenton,
     14-Dec-2010.) $)
  axextndbi $p |- E. z ( x = y <-> ( z e. x <-> z e. y ) ) $=
    ( weq wel wb wex wi wa axextnd elequ2 jctl eximii dfbi2 exbii mpbir ) ABDZC
    AECBEFZFZCGQRHZRQHZIZCGUAUBCCABJUATABCKLMSUBCQRNOP $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Hypothesis builders
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( A more general form of ~ hbnt .  (Contributed by Scott Fenton,
     13-Dec-2010.) $)
  hbntg $p |- ( A. x ( ph -> A. x ps ) -> ( -. ps -> A. x -. ph ) ) $=
    ( wn wal wi axc7 con1i con3 al2imi syl5 ) BDBCEZDZCEZALFZCEADZCENBBCGHOMPCA
    LIJK $.

  $( A more general and closed form of ~ hbim .  (Contributed by Scott Fenton,
     13-Dec-2010.) $)
  hbimtg $p |- ( ( A. x ( ph -> A. x ch ) /\ ( ps -> A. x th ) ) ->
                ( ( ch -> ps ) -> A. x ( ph -> th ) ) ) $=
    ( wal wi wa wn hbntg pm2.21 alimi syl6 adantr ala1 imim2i adantl jad ) ACEF
    GEFZBDEFZGZHCBADGZEFZSCIZUCGUASUDAIZEFUCACEJUEUBEADKLMNUABUCGSTUCBDAEOPQR
    $.

  $( A more general and closed form of ~ hbal .  (Contributed by Scott Fenton,
     13-Dec-2010.) $)
  hbaltg $p |- ( A. x ( ph -> A. y ps ) -> ( A. x ph -> A. y A. x ps ) ) $=
    ( wal wi alim ax-11 syl6 ) ABDEZFCEACEJCEBCEDEAJCGBCDHI $.

  ${
    hbg.1 $e |- ( ph -> A. x ps ) $.
    $( A more general form of ~ hbn .  (Contributed by Scott Fenton,
       13-Dec-2010.) $)
    hbng $p |- ( -. ps -> A. x -. ph ) $=
      ( wal wi wn hbntg mpg ) ABCEFBGAGCEFCABCHDI $.

    ${
      hbg.2 $e |- ( ch -> A. x th ) $.
      $( A more general form of ~ hbim .  (Contributed by Scott Fenton,
         13-Dec-2010.) $)
      hbimg $p |- ( ( ps -> ch ) -> A. x ( ph -> th ) ) $=
        ( wal wi ax-gen hbimtg mp2an ) ABEHIZEHCDEHIBCIADIEHIMEFJGACBDEKL $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  (Trans)finite Recursion Theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d ph y z $.  $d x y z $.
    $( A closed form of ~ tfis .  (Contributed by Scott Fenton, 8-Jun-2011.) $)
    tfisg $p |- ( A. x e. On ( A. y e. x [. y / x ]. ph -> ph ) ->
                 A. x e. On ph ) $=
      ( vz cv wsbc wral wi con0 crab wceq wss wcel ssrab2 wa dfss3 nfcv elrabsf
      simprbi nfsbc1v ralimi sylbi nfral nfim raleq sbceq1a imbi12d rspc impcom
      syl5 simpr jctild syl6ibr ralrimiva tfi sylancr eqcomd rabid2 sylib ) ABC
      EZFZCBEZGZAHZBIGZIABIJZKABIGVEVFIVEVFILDEZVFLZVGVFMZHZDIGVFIKABINVEVJDIVE
      VGIMZOZVHVKABVGFZOVIVLVHVMVKVHVACVGGZVLVMVHUTVFMZCVGGVNCVGVFPVOVACVGVOUTI
      MVAABUTIBIQZRSUAUBVKVEVNVMHZVDVQBVGIVNVMBVABCVGBVGQABUTTUCABVGTUDVBVGKVCV
      NAVMVACVBVGUEABVGUFUGUHUIUJVEVKUKULABVGIVPRUMUNDVFUOUPUQABIURUS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Transitive closure under a relationship
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c TrPred $.
  $( Define the transitive predecessor class as a class. $)
  ctrpred $a class TrPred ( R , A , X ) $.

  ${
    $d R a y $.  $d A a y $.  $d X a y $.
    $( Define the transitive predecessors of a class ` X ` under a relationship
       ` R ` and a class ` A ` .  This class can be thought of as the
       "smallest" class containing all elements of ` A ` that are linked to
       ` X ` by a chain of ` R ` relationships (see ~ trpredtr and
       ~ trpredmintr ).  Definition based off of Lemma 4.2 of Don Monk's notes
       for Advanced Set Theory, which can be found at
       ~ http://euclid.colorado.edu/~~monkd/settheory (check The Internet
       Archive for it now as Prof.  Monk appears to have rewritten his
       website).  (Contributed by Scott Fenton, 2-Feb-2011.) $)
    df-trpred $a |- TrPred ( R , A , X ) =
                        U. ran ( rec ( ( a e. _V |->
                                         U_ y e. a Pred ( R , A , y ) ) ,
                                       Pred ( R , A , X ) ) |` _om ) $.
  $}

  ${
    $d R a i y $.  $d A a i y $.  $d X a i y $.
    $( A definition of the transitive predecessors of a class in terms of
       indexed union.  (Contributed by Scott Fenton, 28-Apr-2012.) $)
    dftrpred2 $p |- TrPred ( R , A , X ) =
        U_ i e. _om ( ( rec ( ( a e. _V |-> U_ y e. a Pred ( R , A , y ) ) ,
                             Pred ( R , A , X ) ) |` _om ) ` i ) $=
      ( ctrpred cvv cv cpred ciun cmpt crdg com cres crn cuni cfv df-trpred wfn
      wceq frfnom fniunfv ax-mp eqtr4i ) BCEGFHAFIBCAIJKLZBCEJZMNOZPQZDNDIUHRKZ
      ABCEFSUHNTUJUIUAUGUFUBDNUHUCUDUE $.
  $}

  ${
    $d R a y $.  $d S a y $.  $d A a y $.  $d B a y $.  $d X a y $.
    $d Y a y $.

    $( Equality theorem for transitive predecessors.  (Contributed by Scott
       Fenton, 2-Feb-2011.) $)
    trpredeq1 $p |- ( R = S -> TrPred ( R , A , X ) = TrPred ( S , A , X ) ) $=
      ( va vy wceq cvv cpred ciun cmpt crdg com cres crn cuni ctrpred df-trpred
      cv predeq1 iuneq2d mpteq2dv rdgeq12 syl2anc reseq1d rneqd unieqd 3eqtr4g
      ) BCGZEHFESZABFSZIZJZKZABDIZLZMNZOZPEHFUJACUKIZJZKZACDIZLZMNZOZPABDQACDQU
      IURVEUIUQVDUIUPVCMUIUNVAGUOVBGUPVCGUIEHUMUTUIFUJULUSABCUKTUAUBABCDTUOVBUN
      VAUCUDUEUFUGFABDERFACDERUH $.

    $( Equality theorem for transitive predecessors.  (Contributed by Scott
       Fenton, 2-Feb-2011.) $)
    trpredeq2 $p |- ( A = B -> TrPred ( R , A , X ) = TrPred ( R , B , X ) ) $=
      ( va vy wceq cvv cpred ciun cmpt crdg com cres crn cuni ctrpred df-trpred
      cv predeq2 iuneq2d mpteq2dv rdgeq12 reseq1d syl2anc rneqd unieqd 3eqtr4g
      wa ) ABGZEHFESZACFSZIZJZKZACDIZLZMNZOZPEHFUKBCULIZJZKZBCDIZLZMNZOZPACDQBC
      DQUJUSVFUJURVEUJUOVBGZUPVCGZURVEGUJEHUNVAUJFUKUMUTABCULTUAUBABCDTVGVHUIUQ
      VDMUPVCUOVBUCUDUEUFUGFACDERFBCDERUH $.

    $( Equality theorem for transitive predecessors.  (Contributed by Scott
       Fenton, 2-Feb-2011.) $)
    trpredeq3 $p |- ( X = Y -> TrPred ( R , A , X ) = TrPred ( R , A , Y ) ) $=
      ( va vy wceq cvv cpred ciun cmpt crdg com cres crn cuni ctrpred df-trpred
      cv predeq3 rdgeq2 syl reseq1d rneqd unieqd 3eqtr4g ) CDGZEHFESABFSIJKZABC
      IZLZMNZOZPUHABDIZLZMNZOZPABCQABDQUGULUPUGUKUOUGUJUNMUGUIUMGUJUNGABCDTUIUM
      UHUAUBUCUDUEFABCERFABDERUF $.
  $}

  ${
    trpredeq1d.1 $e |- ( ph -> R = S ) $.
    $( Equality deduction for transitive predecessors.  (Contributed by Scott
       Fenton, 2-Feb-2011.) $)
    trpredeq1d $p |- ( ph -> TrPred ( R , A , X ) = TrPred ( S , A , X ) ) $=
      ( wceq ctrpred trpredeq1 syl ) ACDGBCEHBDEHGFBCDEIJ $.
  $}

  ${
    trpredeq2d.1 $e |- ( ph -> A = B ) $.
    $( Equality deduction for transitive predecessors.  (Contributed by Scott
       Fenton, 2-Feb-2011.) $)
    trpredeq2d $p |- ( ph -> TrPred ( R , A , X ) = TrPred ( R , B , X ) ) $=
      ( wceq ctrpred trpredeq2 syl ) ABCGBDEHCDEHGFBCDEIJ $.
  $}

  ${
    trpredeq3d.1 $e |- ( ph -> X = Y ) $.
    $( Equality deduction for transitive predecessors.  (Contributed by Scott
       Fenton, 2-Feb-2011.) $)
    trpredeq3d $p |- ( ph -> TrPred ( R , A , X ) = TrPred ( R , A , Y ) ) $=
      ( wceq ctrpred trpredeq3 syl ) ADEGBCDHBCEHGFBCDEIJ $.
  $}

  ${
    $d R a y i $.  $d A a y i $.  $d X a y i $.  $d Y a y i $.
    $( A class is a transitive predecessor iff it is in some value of the
       underlying function.  This theorem is not really meant to be used
       directly: instead refer to ~ trpredpred and ~ trpredmintr .
       (Contributed by Scott Fenton, 28-Apr-2012.) $)
    eltrpred $p |- ( Y e. TrPred ( R , A , X ) <->
                    E. i e. _om Y e. ( ( rec ( ( a e. _V |->
     U_ y e. a Pred ( R , A , y ) ) , Pred ( R , A , X ) ) |` _om ) ` i ) ) $=
      ( ctrpred wcel com cv cvv cpred ciun cmpt crdg cres cfv wrex dftrpred2
      eleq2i eliun bitri ) FBCEHZIFDJDKGLAGKBCAKMNOBCEMPJQRZNZIFUEIDJSUDUFFABCD
      EGTUADFJUEUBUC $.
  $}

  ${
    $d A a e j $.  $d A a e y $.  $d B j $.  $d i j $.  $d j y $.
    $d R a e j $.  $d R y $.  $d X a e j $.
    $( Technical lemma for transitive predecessors properties.  All values of
       the transitive predecessors' underlying function are subsets of the base
       set.  (Contributed by Scott Fenton, 28-Apr-2012.) $)
    trpredlem1 $p |- ( Pred ( R , A , X ) e. B ->
                      ( ( rec ( ( a e. _V |-> U_ y e. a Pred ( R , A , y ) ) ,
                                Pred ( R , A , X ) ) |` _om ) ` i ) C_ A ) $=
      ( vj ve cv com wcel cpred cvv cfv wss c0 wceq syl6eqss nfcv nn0suc predss
      ciun cmpt crdg cres wi csuc wrex wo fr0g fveq2 sseq1d syl5ibr nfrdg nfres
      wa nfmpt1 nffv predeq3 cbviunv mpteq2i rdgeq1 reseq1 mp2b iuneq1 frsucmpt
      nfiun iunss a1i mprgbir wn frsucmptn adantl pm2.61dan adantr wb rexlimiva
      0ss mpbird a1d jaoi syl nfvres pm2.61i ) EJZKLZBDFMZCLZWFGNAGJZBDAJZMZUCZ
      UDZWHUEZKUFZOZBPZUGZWGWFQRZWFHJZUHZRZHKUIZUJWSHWFUAWTWSXDWIWRWTQWPOZBPWIX
      EWHBWHCWNUKBDFUBSWTWQXEBWFQWPULUMUNXDWRWIXCWRHKXAKLZXCUQWRXBWPOZBPZXFXHXC
      XFIXAWPOZBDIJZMZUCZNLZXHXFXMUQXGXLBGWHXAIWJXKUCZXLWPNGWHTZGXATZIGXIXKGXAW
      PGWOKGWHWNGNWMURXOUOGKTUPXPUSGXKTVHZWNGNXNUDZRWOXRWHUEZRWPXSKUFRGNWMXNAIW
      JWLXKBDWKXJUTVAVBWHWNXRVCWOXSKVDVEZIWJXIXKVFZVGXLBPXKBPZIXIIXIXKBVIYBXJXI
      LBDXJUBVJVKSXFXMVLZUQXGQBYCXGQRXFGWHXAXNXLWPXOXPXQXTYAVMVNBVSZSVOVPXCWRXH
      VQXFXCWQXGBWFXBWPULUMVNVTVRWAWBWCWGVLZWRWIYEWQQBWFKWOWDYDSWAWE $.
  $}

  ${
    $d R a y z $.  $d A a y z $.  $d X a y z $.
    $( Assuming it exists, the predecessor class is a subset of the transitive
       predecessors.  (Contributed by Scott Fenton, 18-Feb-2011.) $)
    trpredpred $p |- ( Pred ( R , A , X ) e. B
         -> Pred ( R , A , X ) C_ TrPred ( R , A , X ) ) $=
      ( va vy vz cpred wcel cvv cv ciun cmpt crdg com cres crn wbr c0 syl mp2an
      cuni ctrpred wss wex cfv wceq fr0g wfn wb frfnom peano1 fnbrfvb sylib 0ex
      breq1 spcev elrng mpbird elssuni df-trpred syl6sseqr ) ACDHZBIZVCEJFEKACF
      KHLMZVCNOPZQZUBZACDUCVDVCVGIZVCVHUDVDVIGKZVCVFRZGUEZVDSVCVFRZVLVDSVFUFVCU
      GZVMVCBVEUHVFOUISOIVNVMUJVCVEUKULOSVCVFUMUAUNVKVMGSUOVJSVCVFUPUQTGVCVFBUR
      USVCVGUTTFACDEVAVB $.
  $}

  ${
    $d R a i y $.  $d A a i y $.  $d B i $.  $d X a i y $.
    $( The transitive predecessors form a subset of the base class.
       (Contributed by Scott Fenton, 20-Feb-2011.) $)
    trpredss $p |- ( Pred ( R , A , X ) e. B -> TrPred ( R , A , X ) C_ A ) $=
      ( vi va vy cpred wcel ctrpred com cv cvv ciun cmpt crdg cfv dftrpred2 wss
      cres wral trpredlem1 ralrimivw iunss sylibr syl5eqss ) ACDHZBIZACDJEKELFM
      GFLACGLHNOUGPKTQZNZAGACEDFRUHUIASZEKUAUJASUHUKEKGABCEDFUBUCEKUIAUDUEUF $.
  $}

  ${
    $d A a f i j t y $.  $d R a f i j t y $.  $d X a f i j t y $.
    $d Y a f i j t y $.
    $( The transitive predecessors are transitive in ` R ` and ` A `
       (Contributed by Scott Fenton, 20-Feb-2011.)  (Revised by Mario Carneiro,
       26-Jun-2015.) $)
    trpredtr $p |- ( ( X e. A /\ R Se A ) -> ( Y e. TrPred ( R , A , X )
        -> Pred ( R , A , Y ) C_ TrPred ( R , A , X ) ) ) $=
      ( vi va vy vt vf vj wcel cv cvv cpred ciun com wa wss syl wceq cfv simplr
      ctrpred cmpt crdg cres wrex wse eltrpred csuc peano2 simpr predeq3 sseq2d
      ssid rspcev ssiun sylancl wral setlikespec trpredlem1 sseld expcom adantl
      fvex wi syld ralrimiv ad2antrr iunexg sylancr nfcv cbviunv iuneq1 cbvmptv
      syl5eq rdgeq1 mp2b frsucmpt syl2anc sseqtr4d fveq2 dftrpred2 syl6sseqr ex
      reseq1 rexlimdva syl5bi ) DABCUCZKDELZFMGFLZABGLZNZOZUDZABCNZUEZPUFZUAZKZ
      EPUGCAKZABUHZQZABDNZWIRZGABECDFUIXCWTXEEPXCWJPKZQZWTXEXGWTQZWJUJZPKZXDXIW
      RUAZRZXEXHXFXJXCXFWTUBZWJUKSXHXDHWSABHLZNZOZXKXHWTXDXDRZXDXPRZXGWTULXDUOW
      TXQQXDXORZHWSUGXRXSXQHDWSXNDTXOXDXDABXNDUMUNUPHWSXOXDUQSURXHXFXPMKZXKXPTX
      MXHWSMKXOMKZHWSUSZXTWJWRVEXCYBXFWTXCYAHWSXCXNWSKXNAKZYAXCWSAXNXCWPMKWSARA
      BCUTGAMBECFVASVBXBYCYAVFXAYCXBYAABXNUTVCVDVGVHVIHWSXOMMVJVKIWPWJHILZXOOZX
      PWRMIWPVLIWJVLIXPVLWOIMYEUDZTWQYFWPUEZTWRYGPUFTFIMWNYEWKYDTWNHWKXOOYEGHWK
      WMXOABWLXNUMVMHWKYDXOVNVPVOWPWOYFVQWQYGPWFVRHYDWSXOVNVSVTWAXJXLQZXDJPJLZW
      RUAZOZWIYHXDYJRZJPUGXDYKRYLXLJXIPYIXITYJXKXDYIXIWRWBUNUPJPYJXDUQSGABJCFWC
      WDVTWEWGWH $.
  $}

  ${
    $d A y a c d i j k $.  $d B y i j k $.  $d R y a c d i j k $.
    $d X y a c i j k $.
    $( The transitive predecessors form the smallest class transitive in ` R `
       and ` A ` .  That is, if ` B ` is another ` R ` , ` A ` transitive class
       containing ` Pred ( R , A , X ) ` , then ` TrPred ( R , A , X ) C_ B `
       (Contributed by Scott Fenton, 25-Apr-2012.)  (Revised by Mario Carneiro,
       26-Jun-2015.) $)
    trpredmintr $p |- ( ( ( X e. A /\ R Se A ) /\
                         ( A. y e. B Pred ( R , A , y ) C_ B /\
                           Pred ( R , A , X ) C_ B ) ) ->
                       TrPred ( R , A , X ) C_ B ) $=
      ( vi va vc vd wcel wa cv wss wral com cvv ciun cfv wi wceq vj wse ctrpred
      vk cpred cmpt crdg cres dftrpred2 c0 csuc fveq2 sseq1d imbi2d setlikespec
      fr0g syl adantr simprr eqsstrd fvex trpredlem1 sseld expcom syld ralrimiv
      adantl ad2antrr iunexg sylancr nfcv predeq3 cbviunv iuneq1 syl5eq cbvmptv
      eqid rdgeq1 reseq1 mp2b fveq1i eqeq2i sylbi frsucmpt sylan2 sseq1i anbi2i
      nfv nfra1 nfan ssel rsp ad2antrl sylan9r ralrimi sylan2b iunss sylibr a2d
      exp32 finds com12 syl5eqss ) EBJZBDUBZKZBDALZUEZCMZACNZBDEUEZCMZKZKZBDEUC
      FOFLZGPAGLZXHQZUFZXKUGZOUHZRZQZCABDFEGUIXNYACMZFONYBCMXNYCFOXOOJXNYCXNUAL
      ZXTRZCMZSXNUJXTRZCMZSXNUDLZXTRZCMZSXNYIUKZXTRZCMZSXNYCSUAUDXOYDUJTZYFYHXN
      YOYEYGCYDUJXTULUMUNYDYITZYFYKXNYPYEYJCYDYIXTULUMUNYDYLTZYFYNXNYQYEYMCYDYL
      XTULUMUNYDXOTZYFYCXNYRYEYACYDXOXTULUMUNXNYGXKCXFYGXKTZXMXFXKPJZYSBDEUOZXK
      PXRUPUQURXFXJXLUSUTYIOJZXNYKYNUUBXNYKYNUUBXNYKKZKZYMAYIHPIHLZBDILZUEZQZUF
      ZXKUGZOUHZRZXHQZCUUCUUBUUMPJZYMUUMTUUCUULPJXHPJZAUULNZUUNYIUUKVAXFUUPXMYK
      XFUUOAUULXFXGUULJZXGBJZUUOXFUULBXGXFYTUULBMUUAIBPDUDEHVBUQVCXEUURUUOSXDUU
      RXEUUOBDXGUOVDVGVEVFVHAUULXHPPVIVJGXKYIXQUUMXTPGXKVKGYIVKGUUMVKXTVQXPYJTX
      PUULTXQUUMTYJUULXPYIXTUUKXRUUITXSUUJTXTUUKTGHPXQUUHXPUUETXQIXPUUGQUUHAIXP
      XHUUGBDXGUUFVLVMIXPUUEUUGVNVOVPXKXRUUIVRXSUUJOVSVTWAZWBAXPUULXHVNWCWDWEUU
      DXIAUULNZUUMCMUUCUUBXNUULCMZKZUUTYKUVAXNYJUULCUUSWFWGUVBUUTUUBUVBXIAUULXN
      UVAAXFXMAXFAWHXJXLAXIACWIXLAWHWJWJUVAAWHWJUVAUUQXGCJZXNXIUULCXGWKXJUVCXIS
      XFXLXIACWLWMWNWOVGWPAUULXHCWQWRUTWTWSXAXBVFFOYACWQWRXC $.
  $}

  ${
    $d A y $.  $d R y $.  $d X y $.  $d Y y $.
    $( Given a transitive predecessor ` Y ` of ` X ` , the transitive
       predecessors of ` Y ` are a subset of the transitive predecessors of
       ` X ` .  (Contributed by Scott Fenton, 25-Apr-2012.)  (Revised by Mario
       Carneiro, 26-Jun-2015.) $)
    trpredelss $p |- ( ( X e. A /\ R Se A ) ->
                      ( Y e. TrPred ( R , A , X ) ->
                        TrPred ( R , A , Y ) C_ TrPred ( R , A , X ) ) ) $=
      ( vy wcel wse wa ctrpred wss cv cpred cvv setlikespec trpredss syl sselda
      wral simplr trpredtr ralrimiv adantr imp trpredmintr syl22anc ex ) CAFZAB
      GZHZDABCIZFZABDIUJJZUIUKHDAFUHABEKZLUJJZEUJRZABDLUJJZULUIUJADUIABCLMFUJAJ
      ABCNAMBCOPQUGUHUKSUIUOUKUIUNEUJABCUMTUAUBUIUKUPABCDTUCEAUJBDUDUEUF $.
  $}

  ${
    $d A y z $.  $d R y z $.  $d X y z $.
    $( The transitive predecessors of ` X ` are equal to the predecessors of
       ` X ` together with their transitive predecessors.  (Contributed by
       Scott Fenton, 26-Apr-2012.)  (Revised by Mario Carneiro,
       26-Jun-2015.) $)
    dftrpred3g $p |- ( ( X e. A /\ R Se A ) ->
                    TrPred ( R , A , X ) =
                    ( Pred ( R , A , X ) u.
                      U_ y e. Pred ( R , A , X ) TrPred ( R , A , y ) ) ) $=
      ( vz wcel wa ctrpred cpred wss wral predel cvv setlikespec trpredpred syl
      cv wi expcom syl6 wse ciun cun wo elun adantl syl5 ancld trpredeq3 sseq2d
      wrex rspcev ssiun eliun ancoms adantll trpredss sseld ad2antlr syld simpr
      weq imp simplr trpredelss syl2anc sstrd exp31 reximdvai syl5bi jaod ssun4
      ralrimiv ssun1 jctir trpredmintr mpdan iunss sylibr unssd eqssd ) DBFZBCU
      AZGZBCDHZBCDIZAWFBCAQZHZUBZUCZWDBCEQZIZWJJZEWJKZWFWJJZGWEWJJWDWNWOWDWMEWJ
      WKWJFWKWFFZWKWIFZUDZWDWMWKWFWIUEWDWRWLWIJZWMWDWPWSWQWDWPWPWLBCWKHZJZGZWSW
      DWPXAWPWKBFZWDXABCDWKLWCXCXARWBXCWCXAXCWCGWLMFZXABCWKNZBMCWKOZPSUFUGUHXBW
      LWHJZAWFUKZWSXGXAAWKWFAEVBWHWTWLBCWGWKUIUJULAWFWHWLUMZPTWQWKWHFZAWFUKZWDW
      SAWKWFWHUNWDXKXHWSWDXJXGAWFWGWFFZWGBFZWDXJXGRBCDWGLWDXMXJXGWDXMGZXJGZWLWT
      WHXOXDXAXNXJXDXNXJXCXDXNWHBWKXNBCWGIMFZWHBJWCXMXPWBXMWCXPBCWGNUOUPBMCWGUQ
      PURWCXCXDRWBXMXCWCXDXESUSUTVCXFPXNXJWTWHJZXNXMWCXJXQRWDXMVAWBWCXMVDBCWGWK
      VEVFVCVGVHUGVIXITVJVKWLWIWFVLTVJVMWFWIVNVOEBWJCDVPVQWDWFWIWEWDWFMFWFWEJBC
      DNBMCDOPZWDWHWEJZAWFKWIWEJWDXSAWFWDXLWGWEFXSWDWFWEWGXRURBCDWGVEUTVMAWFWHW
      EVRVSVTWA $.
  $}

  ${
    $d A y $.  $d R y $.  $d X y $.
    $( Another recursive expression for the transitive predecessors.
       (Contributed by Scott Fenton, 27-Apr-2012.)  (Revised by Mario Carneiro,
       26-Jun-2015.) $)
    dftrpred4g $p |- ( ( X e. A /\ R Se A ) ->
        TrPred ( R , A , X ) =
        U_ y e. Pred ( R , A , X ) ( { y } u. TrPred ( R , A , y ) ) ) $=
      ( wcel wse wa ctrpred cpred cv ciun cun csn dftrpred3g iunun iunid uneq1i
      eqtri syl6eqr ) DBEBCFGBCDHBCDIZATBCAJZHZKZLZATUAMZUBLKZABCDNUFATUEKZUCLU
      DATUEUBOUGTUCATPQRS $.
  $}

  ${
    $d A y $.  $d R y $.  $d X y $.
    $( If ` R ` partially orders ` A ` , then the transitive predecessors are
       the same as the immediate predecessors .  (Contributed by Scott Fenton,
       28-Apr-2012.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    trpredpo $p |- ( ( R Po A /\ X e. A /\ R Se A ) ->
                      TrPred ( R , A , X ) = Pred ( R , A , X ) ) $=
      ( vy wpo wcel wse w3a ctrpred cpred cv wss simp2 simp3 wa predpo ralrimiv
      wral 3adant3 cvv ssid a1i trpredmintr syl22anc setlikespec trpredpred syl
      3adant1 eqssd ) ABEZCAFZABGZHZABCIZABCJZUMUKULABDKZJUOLZDUORZUOUOLZUNUOLU
      JUKULMUJUKULNUJUKURULUJUKOUQDUOABCUPPQSUSUMUOUAUBDAUOBCUCUDUKULUOUNLZUJUK
      ULOUOTFUTABCUEATBCUFUGUHUI $.
  $}

  ${
    $d R a i j y $.  $d X a i j y $.
    $( The class of transitive predecessors is empty when ` A ` is empty.
       (Contributed by Scott Fenton, 30-Apr-2012.) $)
    trpred0 $p |- TrPred ( R , (/) , X ) = (/) $=
      ( vi va vy vj c0 com cv cvv cpred ciun cmpt crdg cres cfv wcel wceq pred0
      iuneq2i ctrpred dftrpred2 iun0 eqtri mpteq2i rdgeq12 mp2an reseq1i fveq1i
      a1i csuc wrex nn0suc fveq2 0ex fr0g ax-mp syl6eq nfcv eqid eqidd frsucmpt
      wo mpan2 eqeq1d syl5ibrcom rexlimiv jaoi syl syl5eq 3eqtri ) GABUACHCIZDJ
      EDIZGAEIZKZLZMZGABKZNZHOZPZLCHGLGEGACBDUBCHWAGVLHQZWAVLDJGMZGNZHOZPZGVLVT
      WEVSWDHVQWCRVRGRVSWDRDJVPGVPEVMGLGEVMVOGVOGRVNVMQAVNSUJTEVMUCUDUEABSVRGVQ
      WCUFUGUHUIWBVLGRZVLFIZUKZRZFHULZVCWFGRZFVLUMWGWLWKWGWFGWEPZGVLGWEUNGJQZWM
      GRUOGJWCUPUQURWJWLFHWHHQZWLWJWIWEPZGRZWOWNWQUODGWHGGWEJDGUSZDWHUSWRWEUTVM
      WHWEPRGVAVBVDWJWFWPGVLWIWEUNVEVFVGVHVIVJTCHUCVK $.
  $}

  ${
    $d R a y $.  $d A a y $.  $d X a y $.
    $( The transitive predecessors of a relation form a set (NOTE: this is the
       first theorem in the transitive predecessor series that requires
       infinity).  (Contributed by Scott Fenton, 18-Feb-2011.) $)
    trpredex $p |- TrPred ( R , A , X ) e. _V $=
      ( va vy ctrpred cvv cpred ciun cmpt crdg com cres crn cuni df-trpred wcel
      cv wfn frfnom omex fnex mp2an rnex uniex eqeltri ) ABCFDGEDRABERHIJZABCHZ
      KLMZNZOGEABCDPUJUIUILSLGQUIGQUHUGTUALGUIUBUCUDUEUF $.
  $}

  ${
    $d A z $.  $d R z $.  $d X z $.  $d Y z $.  $d A a i j y z $.
    $d R a i j y $.  $d X a i j y $.  $d Y a i j y $.
    $( If ` Y ` is an ` R ` , ` A ` transitive predecessor, then it is either
       an immediate predecessor or there is a transitive predecessor between
       ` Y ` and ` X ` .  (Contributed by Scott Fenton, 9-May-2012.)  (Revised
       by Mario Carneiro, 26-Jun-2015.) $)
    trpredrec $p |- ( ( X e. A /\ R Se A ) ->
       ( Y e. TrPred ( R , A , X ) -> ( Y e. Pred ( R , A , X ) \/
         E. z e. TrPred ( R , A , X ) Y R z ) ) ) $=
      ( vi va vy vj wcel cv cvv ciun com cfv wrex wa wceq wi eleq2d ctrpred wse
      cpred cmpt crdg cres wbr wo eltrpred csuc nn0suc fveq2 anbi2d setlikespec
      c0 biimpd fr0g syl biimpa syl6com wral wss trpredlem1 sseld expcom adantl
      fvex syld ralrimiv iunexg sylancr nfcv nfmpt1 nfrdg nfres nffv nfiun eqid
      predeq3 cbviunv iuneq1 syl5eq frsucmpt sylan2 expimpd dftrpred2 syl6sseqr
      eliun ssiun2 vex elpredim a1i anim12d reximdv2 com12 sylbi com23 rexlimdv
      pm2.43d orim12d ex syl5 syl5bi ) EBCDUAZJEFKZGLHGKZBCHKZUCZMZUDZBCDUCZUEZ
      NUFZOZJZFNPDBJZBCUBZQZEXKJZEAKZCUGZAXDPZUHZHBCFDEGUIXRXOYCFNXENJXEUORZXEI
      KZUJZRZINPZUHZXRXOYCSIXEUKXRXOYIYCXRXOYIYCSXRXOQZYDXSYHYBYDYJXREUOXMOZJZQ
      ZXSYDYJYMYDXOYLXRYDXNYKEXEUOXMULTUMUPXRYLXSXRYKXKEXRXKLJZYKXKRBCDUNZXKLXJ
      UQURTUSUTYJYGYBINYJYGYENJZYBYGYJXREYFXMOZJZQZYPYBSZYGYJYSYGXOYRXRYGXNYQEX
      EYFXMULTUMUPYSYPYBYPYSEAYEXMOZBCXTUCZMZJZYTYPXRYRUUDYPXRQZYRUUDUUEYQUUCEX
      RYPUUCLJZYQUUCRXRUUALJUUBLJZAUUAVAUUFYEXMVGXRUUGAUUAXRXTUUAJZXTBJZUUGXRUU
      ABXTXRYNUUABVBYOHBLCIDGVCURVDXQUUIUUGSXPUUIXQUUGBCXTUNVEVFVHVIAUUAUUBLLVJ
      VKGXKYEXIUUCXMLGXKVLZGYEVLZAGUUAUUBGYEXMGXLNGXKXJGLXIVMUUJVNGNVLVOUUKVPGU
      UBVLVQXMVRXFUUARXIAXFUUBMUUCHAXFXHUUBBCXGXTVSVTAXFUUAUUBWAWBWCWDTUPWEUUDE
      UUBJZAUUAPZYTAEUUAUUBWHYPUUMYBYPUULYAAUUAXDYPUUHXTXDJUULYAYPUUAXDXTYPUUAI
      NUUAMXDINUUAWIHBCIDGWFWGVDUULYASYPBCXTEAWJWKWLWMWNWOWPUTWSUTWQWRWTXAWQXBW
      RXC $.
  $}

  $(
  @{
     @( Membership in transitive predecessor set expressed via a sequence of
        (ordinal number) naturals.  (Contributed by Scott Fenton,
        25-Dec-2021.) @)
     trpredchain @p |- ( Y e. TrPred ( R , A , X ) <->
     E. i e. _om E. f ( f : suc i --> A /\
     ( A. j e. i ( f ` j ) R ( f ` suc j ) /\ ( f ` (/) ) = X /\
     ( f ` j ) = Y ) ) ) @=
       ( vk va vz ctrpred wcel cv cvv cpred com cfv wrex csuc wceq ciun cmpt wf
       crdg cres wbr wral c0 w3a wa wex eltrpred exlimdv rexlimiv impbii bitri
       ex ) GABFKLGHMINJIMABJMOUAUBABFOUDPUEQLHPRZDMZSACMZUCEMZUTQZVASUTQBUFEUS
       UGUHUTQFTVBGTUIUJZCUKZDPRZJABHFGIULURVE?VDURDPUSPLZVCURCVFVCUR?UQUMUNUOU
       P @.
  @}
  $)

  $(
  @{ @d R x z @. @d A x z @. @d X x z @.
     trpredfrirr.1 @e |- R Fr A @.
     trpredfrirr.2 @e |- A. x e. A Pred ( R , A , x ) e. _V @.

     @( If ` R ` is founded and set-like over ` A ` , then the transitive
        predecessor set is irreflexive @)
     trpredfrirr @p |- ( X e. A -> -. X e. TrPred ( R , A , X ) ) @=
       ( vz wcel ctrpred cpred cv wbr wrex wo wn wa nrexdv wfr predfrirr ax-mp
       jctil ioran sylibr cvv wral wi trpredrec mpan2 mtod ) DBHZDBCDIZHZDBCDJH
       ZDGKCLZGUKMZNZUJUMOZUOOZPUPOUJURUQUJUNGUK?QBCRUQEBCDSTUAUMUOUBUCUJBCAKJU
       DHABUEULUPUFFAGBCDDUGUHUI @.
       @( [12-May-2012] @) @( [10-May-2012] @)
  @}
  $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Founded Induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x y z w $.  $d R x y z w $.  $d B x y z w $.
    $( Every (possibly proper) subclass of a class ` A ` with a founded,
       partial-ordering, set-like relation ` R ` has a minimal element.  The
       additional condition of partial ordering over ~ frmin enables avoiding
       infinity.  (Contributed by Scott Fenton, 11-Feb-2022.) $)
    frpomin $p |- ( ( ( R Fr A /\ R Po A /\ R Se A ) /\
                      ( B C_ A /\ B =/= (/) ) ) ->
                   E. x e. B A. y e. B -. y R x ) $=
      ( vz vw c0 cv wbr wn wral wrex wcel wa wi breq1 syl5bi expr ad2antrr crab
      wfr wpo wse w3a wss wne wex wceq rabeq0 simprr weq notbid cbvralv ralbidv
      n0 breq2 syl5bb rspcev ex syl cvv simprl simpl3 sess2 sylc syl2anc simpl1
      seex ssrab2 syl5ss fri syl21anc rexrab ralrab simplr simplrl simpll2 poss
      simpllr simplrr potr syl13anc mp2and con3d idd jad ralimdva reximdva syld
      expimpd pm2.61dne exlimdv impr ) CEUBZCEUCZCEUDZUEZDCUFZDHUGZBIZAIZEJZKZB
      DLZADMZWTFIZDNZFUHWRWSOZXFFDUPXIXHXFFWRWSXHXFWRWSXHOZOZXFGIZXGEJZGDUAZHXN
      HUIXMKZGDLZXKXFXMGDUJXKXHXPXFPWRWSXHUKZXHXPXFXEXPAXGDXEXLXBEJZKZGDLAFULZX
      PXDXSBGDBGULXCXRXAXLXBEQUMUNXTXSXOGDXTXRXMXBXGXLEUQUMUOURUSUTVARXKXNHUGZX
      DBXNLZAXNMZXFXKXNVBNZWOXNCUFZYAYCPXKDEUDZXHYDXKWSWQYFWRWSXHVCZWOWPWQXJVDD
      CEVEVFXQGDXGEVIVGWOWPWQXJVHXKXNDCXMGDVJYGVKYDWOOYEYAYCABCXNVBEVLSVMYCXBXG
      EJZYBOZADMXKXFXMYHYBAGDXLXBXGEQVNXKYIXEADXKXBDNZOZYHYBXEYBXAXGEJZXDPZBDLY
      KYHOZXEXMYLXDBGDXLXAXGEQVOYNYMXDBDYNXADNZOZYLXDXDYPXCYLYNYOXCYLYNYOXCOZOZ
      XCYHYLYNYOXCUKYKYHYQVPYRDEUCZYOYJXHXCYHOYLPYRWSWPYSYKWSYHYQWRWSXHYJVQTYKW
      PYHYQWOWPWQXJYJVRTDCEVSVFYNYOXCVCXKYJYHYQVTYKXHYHYQWRWSXHYJWATDXAXBXGEWBW
      CWDSWEYPXDWFWGWHRWKWIRWJWLSWMRWN $.

    $( Every (possibly proper) subclass of a class ` A ` with a founded,
       partial-ordering, set-like relation ` R ` has a minimal element.  The
       additional condition of partial ordering over ~ frmin enables avoiding
       infinity.  (Contributed by Scott Fenton, 11-Feb-2022.) $)
    frpomin2 $p |- ( ( ( R Fr A /\ R Po A /\ R Se A ) /\
                      ( B C_ A /\ B =/= (/) ) ) ->
                   E. x e. B Pred ( R , B , x ) = (/) ) $=
      ( vy wfr wpo wse w3a wss c0 wne wa cv wbr wn wral wrex cpred wceq frpomin
      crab vex dfpred3 eqeq1i rabeq0 bitri rexbii sylibr ) BDFBDGBDHICBJCKLMMEN
      ANZDOZPECQZACRCDUJSZKTZACRAEBCDUAUNULACUNUKECUBZKTULUMUOKECDUJAUCUDUEUKEC
      UFUGUHUI $.

  $}

  ${
    $d A y $.  $d B y $.  $d R y $.
    $( The principle of founded induction over a partial ordering.  This
       theorem is a version of ~ frind that does not require infinity, and can
       be used to prove ~ wfi and ~ tfi .  (Contributed by Scott Fenton,
       11-Feb-2022.) $)
    frpoind $p |- ( ( ( R Fr A /\ R Po A /\ R Se A ) /\ ( B C_ A /\
                       A. y e. A ( Pred ( R , A , y ) C_ B -> y e. B ) ) ) ->
                   A = B ) $=
      ( wss cpred wcel wa wn cdif c0 ssdif0 wceq cin df-pred incom eqtri anbi2i
      wrex bitri wfr wpo wse w3a cv wi wral wne necon3bbii difss frpomin2 eldif
      anbi1i anass ccnv cima indif2 difeq1i 3eqtr4i eqeq1i bitr4i ancom rexbii2
      csn 3bitri rexanali sylib ex mpani syl5bi con4d imp adantrl simprl eqssd
      ) BDUABDUBBDUCUDZCBEZBDAUEZFZCEZVRCGZUFABUGZHHBCVPWBBCEZVQVPWBWCVPWCWBWCI
      BCJZKUHZVPWBIZWCWDKBCLUIVPWDBEZWEWFBCUJVPWGWEHZWFVPWHHWDDVRFZKMZAWDSZWFAB
      WDDUKWKVTWAIZHZABSWFWJWMAWDBVRWDGZWJHVRBGZWLHZWJHWOWLWJHZHWOWMHWNWPWJVRBC
      ULUMWOWLWJUNWQWMWOWQWLVTHWMWJVTWLWJVSCJZKMVTWIWRKDUOVRVDUPZWDNZWSBNZCJWIW
      RWSBCUQWIWDWSNWTWDDVROWDWSPQVSXACVSBWSNXABDVROBWSPQURUSUTVSCLVARWLVTVBTRV
      EVCVTWAABVFTVGVHVIVJVKVLVMVPVQWBVNVO $.
  $}

  ${
    $d A w y z $.  $d ph w z $.  $d R w y z $.
    frpoinsg.1 $e |- ( ( ( R Fr A /\ R Po A /\ R Se A ) /\ y e. A ) ->
                       ( A. z e. Pred ( R , A , y ) [. z / y ]. ph -> ph ) ) $.
    $( Founded, Partial-Ordering Induction Schema.  If a property passes from
       all elements less than ` y ` of a founded, partially-ordered class ` A `
       to ` y ` itself (induction hypothesis), then the property holds for all
       elements of ` A ` .  (Contributed by Scott Fenton, 11-Feb-2022.) $)
    frpoinsg $p |- ( ( R Fr A /\ R Po A /\ R Se A ) -> A. y e. A ph ) $=
      ( vw wral wss cv cpred wcel wi wa wsbc nfcv elrabsf nfsbc1v nfim imbi12d
      wfr wpo wse w3a crab wceq dfss3 simprbi ralimi sylbi nfv nfral weq eleq1w
      anbi2d predeq3 raleqdv sbceq1a chvar syl5 jctild syl6ibr ralrimiva ssrab2
      simpr jctil frpoind mpdan rabid2 sylib ) DEUADEUBDEUCUDZDABDUEZUFZABDHVKV
      LDIZDEGJZKZVLIZVOVLLZMZGDHZNVMVKVTVNVKVSGDVKVODLZNZVQWAABVOOZNVRWBVQWCWAV
      QABCJZOZCVPHZWBWCVQWDVLLZCVPHWFCVPVLUGWGWECVPWGWDDLWEABWDDBDPZQUHUIUJVKBJ
      ZDLZNZWECDEWIKZHZAMZMWBWFWCMZMBGWBWOBWBBUKWFWCBWEBCVPBVPPABWDRULABVORSSBG
      UMZWKWBWNWOWPWJWAVKBGDUNUOWPWMWFAWCWPWECWLVPDEWIVOUPUQABVOURTTFUSUTVKWAVE
      VAABVODWHQVBVCABDVDVFGDVLEVGVHABDVIVJ $.
  $}


  ${
    $d A b $.  $d B b c y $.  $d R b c $.  $d R y $.
    $( Every (possibly proper) subclass of a class ` A ` with a founded,
       set-like relation ` R ` has a minimal element.  Lemma 4.3 of Don Monk's
       notes for Advanced Set Theory, which can be found at
       ~ http://euclid.colorado.edu/~~monkd/settheory .  This is a very strong
       generalization of ~ tz6.26 and ~ tz7.5 .  (Contributed by Scott Fenton,
       4-Feb-2011.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    frmin $p |- ( ( ( R Fr A /\ R Se A ) /\ ( B C_ A /\ B =/= (/) ) ) ->
                   E. y e. B Pred ( R , B , y ) = (/) ) $=
      ( vb vc wa wss c0 wne cv cpred wceq wrex wi wcel eqeq1d ex cvv syl wfr n0
      wse frss anim12d wex predeq3 rspcev adantl ctrpred setlikespec trpredpred
      sess2 ssn0 trpredss jctild adantr trpredex sseq1 neeq1 anbi12d rexeqbi1dv
      predeq2 imbi12d imbi2d wal dffr4 sylbi vtocl trpredtr imp syl2anc biimprd
      sp sspred reximdva ssrexv sylsyld sylan9r an31s pm2.61dne exlimdv syl6com
      syld syl5bi imp32 ) BDUAZBDUCZGZCBHZCIJZCDAKZLZIMZACNZWJWICDUAZCDUCZGZWKW
      OOWJWGWPWHWQCBDUDCBDUMUEWKEKZCPZEUFWRWOECUBWRWTWOEWRWTWOWRWTGWOCDWSLZIWTX
      AIMZWOOWRWTXBWOWNXBAWSCWLWSMWMXAICDWLWSUGQUHRUIWTWQWPXAIJZWOOWTWQGZWPGXCC
      DWSUJZCHZXEIJZGZWOXDXCXHOZWPXDXASPZXICDWSUKZXJXCXGXFXJXAXEHZXCXGOCSDWSULX
      LXCXGXAXEUNRTCSDWSUOZUPTUQWPXHXEDWLLZIMZAXENZXDWOWPFKZCHZXQIJZGZXQDWLLZIM
      ZAXQNZOZOWPXHXPOZOFXECDWSURXQXEMZYDYEWPYFXTXHYCXPYFXRXFXSXGXQXECUSXQXEIUT
      VAYBXOAXQXEYFYAXNIXQXEDWLVCQVBVDVEWPYDFVFYDFACDVGYDFVNVHVIXDXFXPWNAXENWOX
      DXJXFXKXMTZXDXOWNAXEXDWLXEPZGZWNXOYIWMXNIYIXFWMXEHZWMXNMXDXFYHYGUQXDYHYJC
      DWSWLVJVKCXEDWLVOVLQVMVPWNAXECVQVRVSWDVTWARWBWEWCWF $.
  $}

  ${
    $d A y $.  $d B y $.  $d R y $.
    $( The principle of founded induction.  Theorem 4.4 of Don Monk's notes
       (see ~ frmin ).  This principle states that if ` B ` is a subclass of a
       founded class ` A ` with the property that every element of ` B ` whose
       initial segment is included in ` A ` is itself equal to ` A ` .  Compare
       ~ wfi and ~ tfi , which are special cases of this theorem that do not
       require the axiom of infinity to prove.  (Contributed by Scott Fenton,
       6-Feb-2011.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    frind $p |- ( ( ( R Fr A /\ R Se A ) /\ ( B C_ A /\
                       A. y e. A ( Pred ( R , A , y ) C_ B -> y e. B ) ) ) ->
                   A = B ) $=
      ( wa wss cpred wcel wn cdif c0 ssdif0 wceq anbi1i cin df-pred incom eqtri
      wrex bitri wfr wse cv wi wral wne necon3bbii difss frmin eldif anass ccnv
      ancom csn cima indif2 difeq1i 3eqtr4i eqeq1i bitr4i anbi2i 3bitri rexbii2
      rexanali sylib ex mpani syl5bi con4d imp adantrl simprl eqssd ) BDUABDUBE
      ZCBFZBDAUCZGZCFZVPCHZUDABUEZEEBCVNVTBCFZVOVNVTWAVNWAVTWAIBCJZKUFZVNVTIZWA
      WBKBCLUGVNWBBFZWCWDBCUHVNWEWCEZWDVNWFEWBDVPGZKMZAWBSZWDABWBDUIWIVRVSIZEZA
      BSWDWHWKAWBBVPWBHZWHEVPBHZWJEZWHEWMWJWHEZEWMWKEWLWNWHVPBCUJNWMWJWHUKWOWKW
      MWOWHWJEWKWJWHUMWHVRWJWHVQCJZKMVRWGWPKDULVPUNUOZWBOZWQBOZCJWGWPWQBCUPWGWB
      WQOWRWBDVPPWBWQQRVQWSCVQBWQOWSBDVPPBWQQRUQURUSVQCLUTNTVAVBVCVRVSABVDTVEVF
      VGVHVIVJVKVNVOVTVLVM $.

    ${
      frind.1 $e |- R Fr A $.
      frind.2 $e |- R Se A $.
      $( The principle of founded induction.  Theorem 4.4 of Don Monk's notes
         (see ~ frmin ).  This principle states that if ` B ` is a subclass of
         a founded class ` A ` with the property that every element of ` B `
         whose initial segment is included in ` A ` is itself equal to ` A ` .
         (Contributed by Scott Fenton, 6-Feb-2011.)  (Revised by Mario
         Carneiro, 26-Jun-2015.) $)
      frindi $p |- ( ( B C_ A /\
                         A. y e. A ( Pred ( R , A , y ) C_ B -> y e. B ) ) ->
                        A = B ) $=
        ( wfr wse wss cv cpred wcel wi wral wa wceq frind mpanl12 ) BDGBDHCBIBD
        AJZKCISCLMABNOBCPEFABCDQR $.
    $}
  $}

  ${
    $d A w y z $.  $d ph w z $.  $d R w y z $.
    frinsg.1 $e |- ( y e. A ->
                       ( A. z e. Pred ( R , A , y ) [. z / y ]. ph -> ph ) ) $.
    $( Founded Induction Schema.  If a property passes from all elements less
       than ` y ` of a founded class ` A ` to ` y ` itself (induction
       hypothesis), then the property holds for all elements of ` A ` .
       (Contributed by Scott Fenton, 7-Feb-2011.)  (Revised by Mario Carneiro,
       26-Jun-2015.) $)
    frinsg $p |- ( ( R Fr A /\ R Se A ) -> A. y e. A ph ) $=
      ( vw wa wceq wral wss cv cpred wcel wi wsbc nfcv elrabsf nfsbc1v nfim wfr
      wse ssrab2 dfss3 simprbi ralimi sylbi nfral eleq1 predeq3 raleqdv sbceq1a
      crab imbi12d chvar syl5 anc2li syl6ibr rgen frind mpanr12 rabid2 sylib
      nfv ) DEUADEUBHZDABDUMZIZABDJVEVFDKDEGLZMZVFKZVHVFNZOZGDJVGABDUCVLGDVHDNZ
      VJVMABVHPZHVKVMVJVNVJABCLZPZCVIJZVMVNVJVOVFNZCVIJVQCVIVFUDVRVPCVIVRVODNVP
      ABVODBDQZRUEUFUGBLZDNZVPCDEVTMZJZAOZOVMVQVNOZOBGVMWEBVMBVDVQVNBVPBCVIBVIQ
      ABVOSUHABVHSTTVTVHIZWAVMWDWEVTVHDUIWFWCVQAVNWFVPCWBVIDEVTVHUJUKABVHULUNUN
      FUOUPUQABVHDVSRURUSGDVFEUTVAABDVBVC $.
  $}

  ${
    $d A y z $.  $d ph z $.  $d R y z $.
    frins.1 $e |- R Fr A $.
    frins.2 $e |- R Se A $.
    frins.3 $e |- ( y e. A ->
                      ( A. z e. Pred ( R , A , y ) [. z / y ]. ph -> ph ) ) $.
    $( Founded Induction Schema.  If a property passes from all elements less
       than ` y ` of a founded class ` A ` to ` y ` itself (induction
       hypothesis), then the property holds for all elements of ` A ` .
       (Contributed by Scott Fenton, 6-Feb-2011.)  (Revised by Mario Carneiro,
       26-Jun-2015.) $)
    frins $p |- ( y e. A -> ph ) $=
      ( wfr wse wral frinsg mp2an rspec ) ABDDEIDEJABDKFGABCDEHLMN $.
  $}

  ${
    $d A y z $.  $d ph z $.  $d R y z $.
    frins2fg.1 $e |- ( y e. A ->
                         ( A. z e. Pred ( R , A , y ) ps -> ph ) ) $.
    frins2fg.2 $e |- F/ y ps $.
    frins2fg.3 $e |- ( y = z -> ( ph <-> ps ) ) $.
    $( Founded Induction schema, using implicit substitution.  (Contributed by
       Scott Fenton, 7-Feb-2011.)  (Revised by Mario Carneiro, 11-Dec-2016.) $)
    frins2fg $p |- ( ( R Fr A /\ R Se A ) -> A. y e. A ph ) $=
      ( cv wsbc cpred wral wcel wsb sbsbc sbie bitr3i ralbii syl5bi frinsg ) AC
      DEFACDJKZDEFCJZLZMBDUDMUCENAUBBDUDUBACDOBACDPABCDHIQRSGTUA $.
  $}

  ${
    $d A y z $.  $d ph z $.  $d R y z $.
    frins2f.1 $e |- R Fr A $.
    frins2f.2 $e |- R Se A $.
    frins2f.3 $e |- F/ y ps $.
    frins2f.4 $e |- ( y = z -> ( ph <-> ps ) ) $.
    frins2f.5 $e |- ( y e. A -> ( A. z e. Pred ( R , A , y ) ps -> ph ) ) $.
    $( Founded Induction schema, using implicit substitution.  (Contributed by
       Scott Fenton, 6-Feb-2011.)  (Revised by Mario Carneiro, 11-Dec-2016.) $)
    frins2f $p |- ( y e. A -> ph ) $=
      ( wfr wse wral frins2fg mp2an rspec ) ACEEFLEFMACENGHABCDEFKIJOPQ $.
  $}

  ${
    $d A y z $.  $d ph z $.  $d R y z $.  $d ps y $.
    frins2g.1 $e |- ( y e. A ->
                         ( A. z e. Pred ( R , A , y ) ps -> ph ) ) $.
    frins2g.3 $e |- ( y = z -> ( ph <-> ps ) ) $.
    $( Founded Induction schema, using implicit substitution.  (Contributed by
       Scott Fenton, 8-Feb-2011.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    frins2g $p |- ( ( R Fr A /\ R Se A ) -> A. y e. A ph ) $=
      ( nfv frins2fg ) ABCDEFGBCIHJ $.
  $}

  ${
    $d A y z $.  $d ph z $.  $d ps y $.  $d R y z $.
    frins2.1 $e |- R Fr A $.
    frins2.2 $e |- R Se A $.
    frins2.3 $e |- ( y = z -> ( ph <-> ps ) ) $.
    frins2.4 $e |- ( y e. A -> ( A. z e. Pred ( R , A , y ) ps -> ph ) ) $.
    $( Founded Induction schema, using implicit substitution.  (Contributed by
       Scott Fenton, 6-Feb-2011.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    frins2 $p |- ( y e. A -> ph ) $=
      ( nfv frins2f ) ABCDEFGHBCKIJL $.
  $}

  ${
    $d A y z $.  $d B y $.  $d ph z $.  $d ps y $.  $d ch y $.  $d R y z $.
    frins3.1 $e |- R Fr A $.
    frins3.2 $e |- R Se A $.
    frins3.3 $e |- ( y = z -> ( ph <-> ps ) ) $.
    frins3.4 $e |- ( y = B -> ( ph <-> ch ) ) $.
    frins3.5 $e |- ( y e. A -> ( A. z e. Pred ( R , A , y ) ps -> ph ) ) $.
    $( Founded Induction schema, using implicit substitution.  (Contributed by
       Scott Fenton, 6-Feb-2011.)  (Revised by Mario Carneiro, 26-Jun-2015.) $)
    frins3 $p |- ( B e. A -> ch ) $=
      ( frins2 vtoclga ) ACDGFLABDEFHIJKMNO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordering Ordinal Sequences
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A f x $.  $d G f x $.  $d X x $.
    orderseqlem.1 $e |- F = { f | E. x e. On f : x --> A } $.
    $( Lemma for ~ poseq and ~ soseq .  The function value of a sequene is
       either in ` A ` or null.  (Contributed by Scott Fenton, 8-Jun-2011.) $)
    orderseqlem $p |- ( G e. F -> ( G ` X ) e. ( A u. { (/) } ) ) $=
      ( wcel cv wf con0 wrex cfv c0 csn cun wceq feq1 wss syl rexbidv ibi unss1
      elab2g crn frn fvrn0 ssel mpisyl rexlimivw ) EDHZAIZBEJZAKLZFEMZBNOZPZHZU
      KUNULBCIZJZAKLUNCEDDUSEQUTUMAKULBUSERUAGUDUBUMURAKUMEUEZUPPZUQSZUOVBHURUM
      VABSVCULBEUFVABUPUCTEFUGVBUQUOUHUIUJT $.
  $}

  ${
    $d A b f x $.  $d a b c f g t w x y z $.  $d F a b c f g t w x z $.
    $d R f g t w x z $.  $d S a b c $.
    poseq.1 $e |- R Po ( A u. { (/) } ) $.
    poseq.2 $e |- F = { f | E. x e. On f : x --> A } $.
    poseq.3 $e |- S = { <. f , g >. | ( ( f e. F /\ g e. F ) /\
                        E. x e. On ( A. y e. x ( f ` y ) = ( g ` y ) /\
                           ( f ` x ) R ( g ` x ) ) ) } $.
    $( A partial ordering of sequences of ordinals.  (Contributed by Scott
       Fenton, 8-Jun-2011.) $)
    poseq $p |- S Po F $=
      ( vz vw wbr wa wral cfv con0 wrex anbi12d va vb vc vt wpo cv wn wcel wceq
      wi w3a c0 csn cun wf feq2 cbvrexv abbii eqtri orderseqlem sylancr intnand
      cab poirr adantr nrexdv imnan mpbi vex eleq1 anbi1d eqeq1d ralbidv breq1d
      fveq1 rexbidv anbi2d eqeq2d breq2d brab mtbir raleq fveq2 breq12d simplll
      weq syl5bb simplrr an4 2rexbii reeanv bitri wel w3o word ordtri3or syl2an
      eloni simp1l wss onelss imp adantll ssralv anim2d r19.26 eqtr ralimi syl6
      syl6ibr adantrd 3impia eqeq12d rspcv breq2 biimpd com3l ad2ant2lr 3adant1
      syl impcom syl12anc a1d 3exp ad2antrr ad2antlr ad2antll 3jca potr anim12i
      rspcev anassrs sylan2 exp32 imbi1d syl5ibcom simp1r adantlr anim1d sylbir
      breq1 biimprd ad2ant2rl 3jaod mpd rexlimivv jca31 an4s syl2anb sylibr a1i
      pm3.2i rgen3 df-po mpbir ) HEUEUAUFZUUPENZUGZUUPUBUFZENZUUSUCUFZENZOZUUPU
[encoded data, 4320 characters]
      NVRVMVVLVYFUXTUXSDUXQUWJUVAVOVSTVPTKVTUUJUULUUKUUMUAUBUCHEUUNUUO $.
  $}

  ${
    $d a b p q y $.  $d A f p q x $.  $d A y $.  $d F a b f g x $.
    $d f g x y $.  $d R f g x $.  $d S a b $.
    soseq.1 $e |- R Or ( A u. { (/) } ) $.
    soseq.2 $e |- F = { f | E. x e. On f : x --> A } $.
    soseq.3 $e |- S = { <. f , g >. | ( ( f e. F /\ g e. F ) /\
                        E. x e. On ( A. y e. x ( f ` y ) = ( g ` y ) /\
                           ( f ` x ) R ( g ` x ) ) ) } $.
    soseq.4 $e |- -. (/) e. A $.
    $( A linear ordering of sequences of ordinals.  (Contributed by Scott
       Fenton, 8-Jun-2011.) $)
    soseq $p |- S Or F $=
      ( wral wcel wa cfv wceq con0 wrex wi va vb vp wor wpo wbr weq w3o csn cun
      vq cv c0 sopo ax-mp poseq wo wn eleq1 anbi1d fveq1 eqeq1d ralbidv anbi12d
      breq1d rexbidv anbi2d eqeq2d breq2d brabg bianabs ancoms orbi12d ralinexa
      wb notbid andi eqcom ralbii anbi1i orbi2i bitri rexbii r19.43 xchbinx cab
      feq2 cbvrexv abbii eqtri orderseqlem sotrieq mpan syl2an imbi2d vex fveq2
      wf wsbc eqeq12d sbcie imbi1i tfisg sylbir elab2 anbi12i reeanv bitr4i wss
      feq1 onss ssralv syl ad2antlr rspcv a1i ffvelrn cdm fdm word eloni ordirr
      eleq2 biimparc sylan ndmfv eqtr2 com23 sylan2 syl5 exp4b imp32 syldd mtoi
      ex imp syld jcad wfn ffn biimprd 3syl adantlr ad2antrr eqtr biimpd expcom
      adantll ordtri3or adantr 3orel13 syl6ci eqfnfv2 sylibrd rexlimivv sylbird
      adantl sylbi syl5bir sylbid orrd 3orcomb df-3or bitr2i sylib rgen2a df-so
      mpbir2an ) HEUDHEUEUAULZUBULZEUFZUAUBUGZUVJUVIEUFZUHZUBHMUAHMABCDEFGHCUMU
      IUJZDUDZUVODUEIUVODUNUOJKUPUVNUAUBHUVIHNZUVJHNZOZUVKUVMUQZUVLUQZUVNUVSUVT
      UVLUVSUVTURBULZUVIPZUWBUVJPZQZBAULZMZUWFUVIPZUWFUVJPZDUFZOZARSZUWDUWCQZBU
      WFMZUWIUWHDUFZOZARSZUQZURZUVLUVSUVTUWRUVSUVKUWLUVMUWQUVSUVKUWLFULZHNZGULZ
      HNZOZUWBUWTPZUWBUXBPZQZBUWFMZUWFUWTPZUWFUXBPZDUFZOZARSZOZUVQUXCOZUWCUXFQZ
      BUWFMZUWHUXJDUFZOZARSZOUVSUWLOFGUVIUVJHHEFUAUGZUXDUXOUXMUXTUYAUXAUVQUXCUW
      TUVIHUSUTUYAUXLUXSARUYAUXHUXQUXKUXRUYAUXGUXPBUWFUYAUXEUWCUXFUWBUWTUVIVAVB
      VCUYAUXIUWHUXJDUWFUWTUVIVAVEVDVFVDGUBUGZUXOUVSUXTUWLUYBUXCUVRUVQUXBUVJHUS
      VGUYBUXSUWKARUYBUXQUWGUXRUWJUYBUXPUWEBUWFUYBUXFUWDUWCUWBUXBUVJVAVHVCUYBUX
      JUWIUWHDUWFUXBUVJVAVIVDVFVDKVJVKUVRUVQUVMUWQVOUVRUVQOZUVMUWQUXNUVRUXCOZUW
      DUXFQZBUWFMZUWIUXJDUFZOZARSZOUYCUWQOFGUVJUVIHHEFUBUGZUXDUYDUXMUYIUYJUXAUV
      RUXCUWTUVJHUSUTUYJUXLUYHARUYJUXHUYFUXKUYGUYJUXGUYEBUWFUYJUXEUWDUXFUWBUWTU
      VJVAVBVCUYJUXIUWIUXJDUWFUWTUVJVAVEVDVFVDGUAUGZUYDUYCUYIUWQUYKUXCUVQUVRUXB
      UVIHUSVGUYKUYHUWPARUYKUYFUWNUYGUWOUYKUYEUWMBUWFUYKUXFUWCUWDUWBUXBUVIVAVHV
      CUYKUXJUWHUWIDUWFUXBUVIVAVIVDVFVDKVJVKVLVMVPUWSUWGUWJUWOUQZURZTZARMZUVSUV
      LUYOUWGUYLOZARSZUWRUWGUYLARVNUYQUWKUWPUQZARSUWRUYPUYRARUYPUWKUWGUWOOZUQUY
      RUWGUWJUWOVQUYSUWPUWKUWGUWNUWOUWEUWMBUWFUWCUWDVRVSVTWAWBWCUWKUWPARWDWBWEU
      VSUYOUWGUWHUWIQZTZARMZUVLUVSVUAUYNARUVSUYTUYMUWGUVQUWHUVONZUWIUVONZUYTUYM
      VOZUVRBCFHUVIUWFHUWFCUWTWRZARSZFWFUWBCUWTWRZBRSZFWFJVUGVUIFVUFVUHABRUWFUW
      BCUWTWGWHWIWJZWKBCFHUVJUWFVUJWKUVPVUCVUDOVUEIUVOUWHUWIDWLWMWNWOVCVUBUYTAR
      MZUVSUVLVUBUYTAUWBWSZBUWFMZUYTTZARMVUKVUNVUAARVUMUWGUYTVULUWEBUWFUYTUWEAU
      WBBWPABUGUWHUWCUWIUWDUWFUWBUVIWQUWFUWBUVJWQWTXAVSXBVSUYTABXCXDUVSUCULZCUV
      IWRZUKULZCUVJWRZOZUKRSUCRSZVUKUVLTZUVSVUPUCRSZVURUKRSZOVUTUVQVVBUVRVVCUVQ
      UWFCUVIWRZARSZVVBVUGVVEFUVIHUAWPUYAVUFVVDARUWFCUWTUVIXJVFJXEVVDVUPAUCRUWF
      VUOCUVIWGWHWBUVRUWFCUVJWRZARSZVVCVUGVVGFUVJHUBWPUYJVUFVVFARUWFCUWTUVJXJVF
      JXEVVFVURAUKRUWFVUQCUVJWGWHWBXFVUPVURUCUKRRXGXHVUSVVAUCUKRRVUORNZVUQRNZOZ
      VUSVVAVVJVUSOZVUKUCUKUGZUYTAVUOMZOZUVLVVKVUKVVLVVMVVKVUKVUOVUQNZURZVUQVUO
      NZURZOVVOVVLVVQUHZVVLVVKVUKVVPVVRVVKVUKUYTAVUQMZVVPVVIVUKVVTTZVVHVUSVVIVU
      QRXIVWAVUQXKUYTAVUQRXLXMXNVVKVVTVVPVVKVVTOVVOUMCNZLVVKVVTVVOVWBTVVKVVOVVT
      VWBVVKVVOVVTVUOUVIPZVUOUVJPZQZVWBVVOVVTVWETTVVKUYTVWEAVUOVUQAUCUGUWHVWCUW
      IVWDUWFVUOUVIWQUWFVUOUVJWQWTXOXPVVJVUPVURVVOVWEVWBTZTVVJVUPVURVVOVWFVURVV
      OOVWDCNZVVJVUPOVWFVUQCVUOUVJXQVVHVUPVWGVWFTZVVIVUPVVHUVIXRZVUOQZVWHVUOCUV
      IXSVVHVWJOZVWEVWGVWBVWKVUOVWINZURZVWCUMQZVWEVWGVWBTZTVVHVUOVUONZURZVWJVWM
      VVHVUOXTZVWQVUOYAZVUOYBXMVWJVWMVWQVWJVWLVWPVWIVUOVUOYCVPYDYEVUOUVIYFVWNVW
      EVWOVWNVWEOUMVWDQZVWOVWCUMVWDYGVWTVWBVWGUMVWDCUSUUAXMYOUUBYHYIUUCYJYKYLYM
      YHYPYNYOYQVVKVUKVVMVVRVVHVUKVVMTZVVIVUSVVHVUORXIVXAVUOXKUYTAVUORXLXMUUDZV
      VKVVMVVRVVKVVMOVVQVWBLVVKVVMVVQVWBTVVKVVQVVMVWBVVKVVQVVMVUQUVIPZVUQUVJPZQ
      ZVWBVVQVVMVXETTVVKUYTVXEAVUQVUOAUKUGUWHVXCUWIVXDUWFVUQUVIWQUWFVUQUVJWQWTX
      OXPVVJVUPVURVVQVXEVWBTZTZVVJVURVUPVXGVVJVURVUPVVQVXFVUPVVQOVXCCNZVVJVUROV
      XFVUOCVUQUVIXQVURVVJUVJXRZVUQQZVXHVXFTZVUQCUVJXSVVIVXJVXKVVHVVIVXJOVXDUMQ
      ZVXKVVIVUQVUQNZURZVXJVXLVVIVUQXTZVXNVUQYAZVUQYBXMVXNVXJOVUQVXINZURZVXLVXJ
      VXRVXNVXJVXQVXMVXIVUQVUQYCVPYDVUQUVJYFXMYEVXLVXEVXHVWBVXEVXLVXHVWBTZVXEVX
      LOVXCUMQZVXSVXCVXDUMUUEVXTVXHVWBVXCUMCUSUUFXMUUGYHXMUUHYIYJYKYHYLYMYHYPYN
      YOYQYRVVJVVSVUSVVHVWRVXOVVSVVIVWSVXPVUOVUQUUIWNUUJVVOVVLVVQUUKUULVXBYRVUS
      UVLVVNVOZVVJVUPUVIVUOYSUVJVUQYSVYAVURVUOCUVIYTVUQCUVJYTAVUOVUQUVIUVJUUMWN
      UUQUUNYOUUOUURYJUUPUUSUUTUVAUVNUVKUVMUVLUHUWAUVKUVLUVMUVBUVKUVMUVLUVCUVDU
      VEUVFUAUBHEUVGUVH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Well-founded zero, successor, and limits
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c wsuc WLim $.

  $( Declare the syntax for well-founded successor. $)
  cwsuc $a class wsuc ( R , A , X ) $.

  $( Declare the syntax for well-founded limit class. $)
  cwlim $a class WLim ( R , A ) $.

  ${
    $( Define the concept of a successor in a well-founded set.  (Contributed
       by Scott Fenton, 13-Jun-2018.)  (Revised by AV, 10-Oct-2021.) $)
    df-wsuc $a |- wsuc ( R , A , X ) =
             inf ( Pred ( `' R , A , X ) , A , R ) $.
  $}

  ${
    $d R x $.  $d A x $.
    $( Define the class of limit points of a well-founded set.  (Contributed by
       Scott Fenton, 15-Jun-2018.)  (Revised by AV, 10-Oct-2021.) $)
    df-wlim $a |- WLim ( R , A ) =
       { x e. A | ( x =/= inf ( A , A , R ) /\
           x = sup ( Pred ( R , A , x ) , A , R ) ) } $.
  $}

  $( Equality theorem for well-founded successor.  (Contributed by Scott
     Fenton, 13-Jun-2018.)  (Proof shortened by AV, 10-Oct-2021.) $)
  wsuceq123 $p |- ( ( R = S /\ A = B /\ X = Y ) ->
     wsuc ( R , A , X ) = wsuc ( S , B , Y ) ) $=
    ( wceq w3a ccnv cpred cwsuc simp1 cnveqd predeq123 syld3an1 simp2 infeq123d
    cinf df-wsuc 3eqtr4g ) CDGZABGZEFGZHZACIZEJZACRBDIZFJZBDRACEKBDFKUDUFACUHBD
    UEUGGUBUAUCUFUHGUDCDUAUBUCLZMABUEUGEFNOUAUBUCPUIQACESBDFST $.

  $( Equality theorem for well-founded successor.  (Contributed by Scott
     Fenton, 13-Jun-2018.) $)
  wsuceq1 $p |- ( R = S -> wsuc ( R , A , X ) = wsuc ( S , A , X ) ) $=
    ( wceq cwsuc eqid wsuceq123 mp3an23 ) BCEAAEDDEABDFACDFEAGDGAABCDDHI $.

  $( Equality theorem for well-founded successor.  (Contributed by Scott
     Fenton, 13-Jun-2018.) $)
  wsuceq2 $p |- ( A = B -> wsuc ( R , A , X ) = wsuc ( R , B , X ) ) $=
    ( wceq cwsuc eqid wsuceq123 mp3an13 ) CCEABEDDEACDFBCDFECGDGABCCDDHI $.

  $( Equality theorem for well-founded successor.  (Contributed by Scott
     Fenton, 13-Jun-2018.) $)
  wsuceq3 $p |- ( X = Y -> wsuc ( R , A , X ) = wsuc ( R , A , Y ) ) $=
    ( wceq cwsuc eqid wsuceq123 mp3an12 ) BBEAAECDEABCFABDFEBGAGAABBCDHI $.

  ${
    nfwsuc.1 $e |- F/_ x R $.
    nfwsuc.2 $e |- F/_ x A $.
    nfwsuc.3 $e |- F/_ x X $.
    $( Bound-variable hypothesis builder for well-founded successor.
       (Contributed by Scott Fenton, 13-Jun-2018.)  (Proof shortened by AV,
       10-Oct-2021.) $)
    nfwsuc $p |- F/_ x wsuc ( R , A , X ) $=
      ( cwsuc ccnv cpred cinf df-wsuc nfcnv nfpred nfinf nfcxfr ) ABCDHBCIZDJZB
      CKBCDLARBCABQDACEMFGNFEOP $.
  $}

  ${
    $d R x $.  $d S x $.  $d A x $.  $d B x $.
    $( Equality theorem for the limit class.  (Contributed by Scott Fenton,
       15-Jun-2018.)  (Proof shortened by AV, 10-Oct-2021.) $)
    wlimeq12 $p |- ( ( R = S /\ A = B ) ->
        WLim ( R , A ) = WLim ( S , B ) ) $=
      ( vx wceq wa cv cinf wne cpred csup crab cwlim simpr infeq123d neeq2d weq
      simpl df-wlim predeq123 mp3an3 supeq123d eqeq2d anbi12d rabeqbidv 3eqtr4g
      equid ) CDFZABFZGZEHZAACIZJZULACULKZACLZFZGZEAMULBBDIZJZULBDULKZBDLZFZGZE
      BMACNBDNUKURVDEABUIUJOZUKUNUTUQVCUKUMUSULUKAACBBDVEVEUIUJSZPQUKUPVBULUKUO
      ACVABDUIUJEERUOVAFEUHABCDULULUAUBVEVFUCUDUEUFEACTEBDTUG $.
  $}

  $( Equality theorem for the limit class.  (Contributed by Scott Fenton,
     15-Jun-2018.) $)
  wlimeq1 $p |- ( R = S -> WLim ( R , A ) = WLim ( S , A ) ) $=
    ( wceq cwlim eqid wlimeq12 mpan2 ) BCDAADABEACEDAFAABCGH $.

  $( Equality theorem for the limit class.  (Contributed by Scott Fenton,
     15-Jun-2018.) $)
  wlimeq2 $p |- ( A = B -> WLim ( R , A ) = WLim ( R , B ) ) $=
    ( wceq cwlim eqid wlimeq12 mpan ) CCDABDACEBCEDCFABCCGH $.

  ${
    $d R y $.  $d A y $.  $d x y $.
    nfwlim.1 $e |- F/_ x R $.
    nfwlim.2 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for the limit class.  (Contributed by
       Scott Fenton, 15-Jun-2018.)  (Proof shortened by AV, 10-Oct-2021.) $)
    nfwlim $p |- F/_ x WLim ( R , A ) $=
      ( vy cwlim cv cinf cpred csup wceq wa crab df-wlim nfcv nfinf nfne nfpred
      wne nfsup nfeq2 nfan nfrab nfcxfr ) ABCGFHZBBCIZTZUFBCUFJZBCKZLZMZFBNFBCO
      ULAFBUHUKAAUFUGAUFPZABBCEEDQRAUFUJAUIBCABCUFDEUMSEDUAUBUCEUDUE $.
  $}

  ${
    $d R x $.  $d A x $.  $d X x $.
    $( Membership in the limit class.  (Contributed by Scott Fenton,
       15-Jun-2018.)  (Revised by AV, 10-Oct-2021.) $)
    elwlim $p |- ( X e. WLim ( R , A ) <-> ( X e. A /\
        X =/= inf ( A , A , R ) /\
        X = sup ( Pred ( R , A , X ) , A , R ) ) ) $=
      ( vx cwlim wcel cinf wne cpred csup wceq wa neeq1 predeq3 supeq1d eqeq12d
      w3a cv id anbi12d df-wlim elrab2 3anass bitr4i ) CABEZFCAFZCAABGZHZCABCIZ
      ABJZKZLZLUFUHUKQDRZUGHZUMABUMIZABJZKZLULDCAUEUMCKZUNUHUQUKUMCUGMURUMCUPUJ
      URSURAUOUIBABUMCNOPTDABUAUBUFUHUKUCUD $.
  $}

  ${
    $d R x y z $.  $d A x y z $.
    $( The zero of a well-founded set is a member of that set.  (Contributed by
       Scott Fenton, 13-Jun-2018.)  (Revised by AV, 10-Oct-2021.) $)
    wzel $p |- ( ( R We A /\ R Se A /\ A =/= (/) ) ->
       inf ( A , A , R ) e. A ) $=
      ( vx vy vz wwe wse c0 wne cv wrex wbr wn wral wi wa wcel wal cvv vex weso
      w3a wor 3ad2ant1 cpred wceq wss simp1 simp2 ssid simp3 tz6.26 syl22anc wb
      elpred ax-mp notbii imnan bitr4i pm2.27 ad2antll breq1 rspcev ex ad2antrl
      a1i jctird syl5bi expr com23 alimdv r19.26 df-ral bitr3i 3imtr4g reximdva
      eq0 mpd infcl ) ABFZABGZAHIZUBZCDEAABVTWAABUCWBABUAUDWCABCJZUEZHUFZCAKZDJ
      ZWDBLZMZDANWDWHBLZEJZWHBLZEAKZOZDANPZCAKWCVTWAAAUGZWBWGVTWAWBUHVTWAWBUIWQ
      WCAUJVFVTWAWBUKCAABULUMWCWFWPCAWCWDAQZPZWHWEQZMZDRWHAQZWJWOPZOZDRZWFWPWSX
      AXDDWSXBXAXCWCWRXBXAXCOXAXBWJOZWCWRXBPPZXCXAXBWIPZMXFWTXHWDSQWTXHUNCTASBW
      DWHDTUOUPUQXBWIURUSXGXFWJWOXBXFWJOWCWRXBWJUTVAWRWOWCXBWRWKWNWMWKEWDAWLWDW
      HBVBVCVDVEVGVHVIVJVKDWEVQWPXCDANXEWJWODAVLXCDAVMVNVOVPVRVS $.
  $}

  ${
    $d A x y z w $.  $d ph x y $.  $d R x y z w $.  $d X x y z w $.
    wsuclem.1 $e |- ( ph -> R We A ) $.
    wsuclem.2 $e |- ( ph -> R Se A ) $.
    wsuclem.3 $e |- ( ph -> X e. V ) $.
    wsuclem.4 $e |- ( ph -> E. w e. A X R w ) $.
    $( Lemma for the supremum properties of well-founded successor.
       (Contributed by Scott Fenton, 15-Jun-2018.)  (Revised by AV,
       10-Oct-2021.) $)
    wsuclem $p |- ( ph -> E. x e. A
         ( A. y e. Pred ( `' R , A , X ) -. y R x /\
           A. y e. A ( x R y -> E. z e. Pred ( `' R , A , X ) z R y ) ) ) $=
      ( cv c0 wrex wbr wa wcel cvv ccnv cpred wceq wn wi wwe wse wss wne predss
      wral a1i crab dfpred3g syl elexd wb brcnvg ancoms rexbidva syl5bb biimpar
      rabn0 syl2anc eqnetrd tz6.26 syl22anc breq1 rexrab w3a noel simp2r eleq2d
      rexeqdv mtbiri simp3 elpredg mtbid 3expa ralrimiva simp1rl simp1rr adantr
      vex expr 3ad2ant1 elpred mpbir2and rspcev 3expia anim12d ancomsd reximdva
      syl5bi sylbid mpd ) AFGUAZIUBZGBNZUBZOUCZBWRPZCNZWSGQZUDZCWRUKZWSXCGQZDNZ
      XCGQZDWRPZUEZCFUKZRZBFPZAFGUFFGUGWRFUHZWROUIXBJKXOAFWQIUJULAWRENZIWQQZEFU
      MZOAIHSZWRXRUCLEFWQHIUNUOAITSZIXPGQZEFPZXROUIZAIHLUPMXTYCYBYCXQEFPXTYBXQE
      FVCXTXQYAEFXPFSXTXQYAUQXPIFTGURUSUTVAVBVDVEBFWRGVFVGAXBXABXCIWQQZCFUMZPZX
      NAXABWRYEAXSWRYEUCLCFWQHIUNUOVNYFWSIWQQZXARZBFPAXNYDYGXABCFXCWSIWQVHVIAYH
      XMBFAWSFSZRZXAYGXMYJXAXFYGXLAYIXAXFAYIXARZRXECWRAYKXCWRSZXEAYKYLVJZXCWTSZ
      XDYMYNXCOSXCVKYMWTOXCAYIXAYLVLVMVOYMWSTSZYLYNXDUQYOYMBWDZULAYKYLVPWRTGWSX
      CVQVDVRVSVTWEAYIYGXLAYIYGRZRZXKCFYRXCFSZXGXJYRYSXGVJZWSWRSZXGXJYTUUAYIYGY
      IYGAYSXGWAYIYGAYSXGWBYTXSUUAYQUQYRYSXSXGAXSYQLWCWFFHWQIWSYPWGUOWHYRYSXGVP
      XIXGDWSWRXHWSXCGVHWIVDWJVTWEWKWLWMWNWOWP $.

  $}

  ${
    wsucex.1 $e |- ( ph -> R Or A ) $.
    $( Existence theorem for well-founded successor.  (Contributed by Scott
       Fenton, 16-Jun-2018.)  (Proof shortened by AV, 10-Oct-2021.) $)
    wsucex $p |- ( ph -> wsuc ( R , A , X ) e. _V ) $=
      ( cwsuc ccnv cpred cinf cvv df-wsuc infexd syl5eqel ) ABCDFBCGDHZBCIJBCDK
      ABNCELM $.
  $}

  ${
    $d R a b c y $.  $d A a b c y $.  $d X a b c y $.  $d ph a b $.
    wsuccl.1 $e |- ( ph -> R We A ) $.
    wsuccl.2 $e |- ( ph -> R Se A ) $.
    wsuccl.3 $e |- ( ph -> X e. V ) $.
    wsuccl.4 $e |- ( ph -> E. y e. A X R y ) $.
    $( If ` X ` is a set with an ` R ` successor in ` A ` , then its
       well-founded successor is a member of ` A ` .  (Contributed by Scott
       Fenton, 15-Jun-2018.)  (Proof shortened by AV, 10-Oct-2021.) $)
    wsuccl $p |- ( ph -> wsuc ( R , A , X ) e. A ) $=
      ( va vb vc cwsuc ccnv cpred cinf df-wsuc wwe wor weso syl infcl syl5eqel
      wsuclem ) ACDFNCDOFPZCDQCCDFRAKLMCUFDACDSCDTGCDUAUBAKLMBCDEFGHIJUEUCUD $.
  $}

  ${
    $d R a b c y $.  $d A a b c y $.  $d X a b c y $.  $d ph a b c $.
    $d Y y $.
    wsuclb.1 $e |- ( ph -> R We A ) $.
    wsuclb.2 $e |- ( ph -> R Se A ) $.
    wsuclb.3 $e |- ( ph -> X e. V ) $.
    wsuclb.4 $e |- ( ph -> Y e. A ) $.
    wsuclb.5 $e |- ( ph -> X R Y ) $.
    $( A well-founded successor is a lower bound on points after ` X ` .
       (Contributed by Scott Fenton, 16-Jun-2018.)  (Proof shortened by AV,
       10-Oct-2021.) $)
    wsuclb $p |- ( ph -> -. Y R wsuc ( R , A , X ) ) $=
      ( va vb vc vy wbr wcel wb syl2anc mpbird ccnv cpred cinf cwsuc wn elpredg
      brcnvg wwe wor weso syl cv wrex breq2 rspcev wsuclem inflb df-wsuc breq2i
      mpd sylnibr ) AFBCUAZEUBZBCUCZCPZFBCEUDZCPAFVCQZVEUEAVGFEVBPZAVHEFCPZKAFB
      QZEDQZVHVIRJIFEBDCUGSTAVKVJVGVHRIJBDVBEFUFSTALMNBVCFCABCUHBCUIGBCUJUKALMN
      OBCDEGHIAVJVIEOULZCPZOBUMJKVMVIOFBVLFECUNUOSUPUQUTVFVDFCBCEURUSVA $.
  $}

  ${
    $d R x $.  $d A x $.
    $( The class of limit points is a subclass of the base class.  (Contributed
       by Scott Fenton, 16-Jun-2018.) $)
    wlimss $p |- WLim ( R , A ) C_ A $=
      ( vx cwlim cv cinf wne cpred csup wceq wa crab df-wlim ssrab2 eqsstri ) A
      BDCEZAABFGPABPHABIJKZCALACABMQCANO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Founded Recursion
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constant symbols. $)
  $c frecs $.

  $( Declare the syntax for the founded recursion generator.  See
     ~ df-frecs . $)
  cfrecs $a class frecs ( R , A , F ) $.

  ${
    $d R f x y $.  $d A f x y $.  $d F f x y $.
    $( This is the definition for the founded recursion generator.  Similar to
       ~ df-wrecs and ~ df-recs , it is a direct definition form of normally
       recursive relationships.  Unlike the former two definitions, it only
       requires a founded set-like relationship for its properties, not a
       well-founded relationship.  However, the proof of this requires the
       Axiom of Infinity, so we retain the other definitions since their
       properties do not require it.  (Contributed by Scott Fenton,
       23-Dec-2021.) $)
    df-frecs $a |- frecs ( R , A , F ) = U. { f | E. x ( f Fn x /\ ( x C_ A /\
               A. y e. x Pred ( R , A , y ) C_ x ) /\
               A. y e. x ( f ` y ) = ( y F ( f |` Pred ( R , A , y ) ) ) ) } $.
  $}

  ${
    $d R f x y $.  $d S f x y $.  $d A f x y $.  $d B f x y $.  $d F f x y $.
    $d G f x y $.
    $( Equality theorem for founded recursion generator.  (Contributed by Scott
       Fenton, 23-Dec-2021.) $)
    frecseq123 $p |- ( ( R = S /\ A = B /\ F = G ) ->
      frecs ( R , A , F ) = frecs ( S , B , G ) ) $=
      ( vf vx vy wceq w3a cv wss cpred wral wa cres co wex cab wfn cfrecs simp2
      cfv cuni sseq2d weq equid predeq123 mp3an3 3adant3 sseq1d ralbidv anbi12d
      simp3 oveqd reseq2d oveq2d eqeq2d 3anbi23d exbidv abbidv df-frecs 3eqtr4g
      eqtrd unieqd ) CDJZABJZEFJZKZGLZHLZUAZVLAMZACILZNZVLMZIVLOZPZVOVKUDZVOVKV
      PQZERZJZIVLOZKZHSZGTZUEVMVLBMZBDVONZVLMZIVLOZPZVTVOVKWIQZFRZJZIVLOZKZHSZG
      TZUEACEUBBDFUBVJWGWSVJWFWRGVJWEWQHVJVSWLWDWPVMVJVNWHVRWKVJABVLVGVHVIUCUFV
      JVQWJIVLVJVPWIVLVGVHVPWIJZVIVGVHIIUGWTIUHABCDVOVOUIUJUKZULUMUNVJWCWOIVLVJ
      WBWNVTVJWBVOWAFRWNVJEFVOWAVGVHVIUOUPVJWAWMVOFVJVPWIVKXAUQURVEUSUMUTVAVBVF
      HIACGEVCHIBDGFVCVD $.
  $}

  ${
    $d R f y z $.  $d A f y z $.  $d F f y z $.  $d x f y z $.
    nffrecs.1 $e |- F/_ x R $.
    nffrecs.2 $e |- F/_ x A $.
    nffrecs.3 $e |- F/_ x F $.
    $( Bound-variable hypothesis builder for the founded recursion generator.
       (Contributed by Scott Fenton, 23-Dec-2021.) $)
    nffrecs $p |- F/_ x frecs ( R , A , F ) $=
      ( vf vy vz cfrecs cv wfn wss cpred wral wa nfcv nfss nfral cfv co w3a wex
      cres wceq cab cuni df-frecs nfpred nfan nfres nfov nfeq2 nf3an nfex nfuni
      nfv nfab nfcxfr ) ABCDKHLZILZMZVBBNZBCJLZOZVBNZJVBPZQZVEVAUAZVEVAVFUEZDUB
      ZUFZJVBPZUCZIUDZHUGZUHIJBCHDUIAVQVPAHVOAIVCVIVNAVCAURVDVHAAVBBAVBRZFSVGAJ
      VBVRAVFVBABCVEEFAVERZUJZVRSTUKVMAJVBVRAVJVLAVEVKDVSGAVAVFAVARVTULUMUNTUOU
      PUSUQUT $.
  $}

  ${
    $d A w y z $.  $d F w y z $.  $d G w y z $.  $d H w y z $.  $d R w y z $.
    $( Functions defined by founded recursion are identical up to relation,
       domain, and characteristic function.  General version of frr3.
       (Contributed by Scott Fenton, 10-Feb-2011.)  (Revised by Mario Carneiro,
       26-Jun-2015.) $)
    frr3g $p |- ( ( ( R Fr A /\ R Se A ) /\
                     ( F Fn A /\
                       A. y e. A ( F ` y ) =
                                 ( y H ( F |` Pred ( R , A , y ) ) ) ) /\
                     ( G Fn A /\
                       A. y e. A ( G ` y ) =
                                 ( y H ( G |` Pred ( R , A , y ) ) ) ) )
                   -> F = G ) $=
      ( vz vw wa wfn cv cfv cres co wceq wral wi fveq2 eqeq12d syl wfr wse wcel
      cpred w3a ra4v r19.26 anbi2i predeq3 reseq2d oveq12d anbi12d rspcva eqtr3
      id eqcomd ex expimpd wss wb predss fvreseq mpan2 biimpar syl11 expd com23
      oveq2d impd syl5bir a2d syl5 imbi2d frins2g rsp com3r an4s com12 ralrimiv
      3impib eqid jctil eqfnfv2 ad2ant2r 3adant1 mpbird ) BCUABCUBIZDBJZAKZDLZW
      IDBCWIUDZMZFNZOZABPZIZEBJZWIELZWIEWKMZFNZOZABPZIZUEZDEOZBBOZGKZDLZXGELZOZ
      GBPZIZXDXKXFXDXJGBWGWPXCXGBUCZXJQZWPXCIWGXNWHWQWOXBWGXNQWGXMWHWQIZWOXBIZI
      ZXJWGXQXJQZGBPXMXRQXRXQHKZDLZXSELZOZQZGHBCYCHBCXGUDZPXQYBHYDPZQXMXRXQYBHY
      DUFXMXQYEXJXQXOWNXAIZABPZIXMYEXJQZYGXPXOWNXAABUGUHXMXOYGYHXMYGXOYHXMYGXOY
      HQZXMYGIXHXGDYDMZFNZOZXIXGEYDMZFNZOZIZYIYFYPAXGBWIXGOZWNYLXAYOYQWJXHWMYKW
      IXGDRYQWIXGWLYJFYQUOZYQWKYDDBCWIXGUIZUJUKSYQWRXIWTYNWIXGERYQWIXGWSYMFYRYQ
      WKYDEYSUJUKSULUMYPXOYEXJYNYKOZYPXJXOYEIZYTYLYOXJYTYLIZXHYNOZYOXJQUUBYNXHY
      NXHYKUNUPUUCYOXJXHXIYNUNUQTURUUAYKYNUUAYJYMXGFXOYJYMOZYEXOYDBUSUUDYEUTBCX
      GVAHBYDDEVBVCVDVHUPVEVFTUQVGVIVJVKVLXGXSOZXJYBXQUUEXHXTXIYAXGXSDRXGXSERSV
      MVNXRGBVOTVPVQVRVTVSBWAWBWPXCXEXLUTZWGWHWQUUFWOXBGBBDEWCWDWEWF $.
  $}

  ${
    $d A f g w x y z $.  $d f G g w x y z $.  $d R f g w x y z $.
    frrlem1.1 $e |- B = { f |
                           E. x ( f Fn x /\
                                  ( x C_ A /\
                                    A. y e. x Pred ( R , A , y ) C_ x ) /\
                                  A. y e. x ( f ` y ) =
                                            ( y G ( f |` Pred ( R , A , y ) ) )
                                 ) } $.
    $( Lemma for founded recursion.  The final item we are interested in is the
       union of acceptable functions ` B ` .  This lemma just changes bound
       variables for later use.  (Contributed by Paul Chapman, 21-Apr-2012.) $)
    frrlem1 $p |- B = { g |
                         E. z ( g Fn z /\
                                ( z C_ A /\
                                  A. w e. z Pred ( R , A , w ) C_ z ) /\
                                  A. w e. z ( g ` w ) =
                                            ( w G ( g |` Pred ( R , A , w ) ) )
                        ) } $=
      ( cv wfn wss wral cfv cres co wceq w3a cpred wa wex cab weq reseq1 oveq2d
      fneq1 fveq1 eqeq12d ralbidv 3anbi13d fneq2 sseq1 sseq2 raleqbi1dv predeq3
      exbidv sseq1d cbvralv syl6bb anbi12d raleq fveq2 reseq2d 3anbi123d cbvexv
      id oveq12d cbvabv eqtri ) FHLZALZMZVMENZEGBLZUAZVMNZBVMOZUBZVPVLPZVPVLVQQ
      ZJRZSZBVMOZTZAUCZHUDILZCLZMZWIENZEGDLZUAZWINZDWIOZUBZWLWHPZWLWHWMQZJRZSZD
      WIOZTZCUCZIUDKWGXCHIHIUEZWGWHVMMZVTVPWHPZVPWHVQQZJRZSZBVMOZTZAUCXCXDWFXKA
      XDVNXEWEXJVTVMVLWHUHXDWDXIBVMXDWAXFWCXHVPVLWHUIXDWBXGVPJVLWHVQUFUGUJUKULU
      RXKXBACACUEZXEWJVTWPXJXAVMWIWHUMXLVOWKVSWOVMWIEUNXLVSVQWINZBWIOWOVRXMBVMW
      IVMWIVQUOUPXMWNBDWIBDUEZVQWMWIEGVPWLUQZUSUTVAVBXLXJXIBWIOXAXIBVMWIVCXIWTB
      DWIXNXFWQXHWSVPWLWHVDXNVPWLXGWRJXNVHXNVQWMWHXOVEVIUJUTVAVFVGVAVJVK $.

    $( Lemma for founded recursion.  An acceptable function is a function.
       (Contributed by Paul Chapman, 21-Apr-2012.) $)
    frrlem2 $p |- ( g e. B -> Fun g ) $=
      ( vz vw cv wcel wfn wss cpred wral wa cfv cres co wceq w3a frrlem1 abeq2i
      wex wfun fnfun 3ad2ant1 exlimiv sylbi ) GLZDMULJLZNZUMCOCEKLZPZUMOKUMQRZU
      OULSUOULUPTHUAUBKUMQZUCZJUFZULUGZUTGDABJKCDEFGHIUDUEUSVAJUNUQVAURUMULUHUI
      UJUK $.

    $( Lemma for founded recursion.  An acceptable function's domain is a
       subset of ` A ` .  (Contributed by Paul Chapman, 21-Apr-2012.) $)
    frrlem3 $p |- ( g e. B -> dom g C_ A ) $=
      ( vz vw cv wcel wfn wss cpred wral wa cfv cres co wceq w3a wex cdm abeq2i
      frrlem1 fndm sseq1d biimpar adantrr 3adant3 exlimiv sylbi ) GLZDMUOJLZNZU
      PCOZCEKLZPZUPOKUPQZRZUSUOSUSUOUTTHUAUBKUPQZUCZJUDZUOUEZCOZVEGDABJKCDEFGHI
      UGUFVDVGJUQVBVGVCUQURVGVAUQVGURUQVFUPCUPUOUHUIUJUKULUMUN $.
  $}

  ${
    $d A a f g $.  $d A a h x y $.  $d B a $.  $d f h x y $.  $d G a f g $.
    $d G h $.  $d G g x y $.  $d R a f g $.  $d R h x y $.  $d A a f g b c $.
    $d h x y b c $.  $d G b c $.  $d R b c $.
    frrlem4.1 $e |- B = { f |
                           E. x ( f Fn x /\
                                  ( x C_ A /\
                                    A. y e. x Pred ( R , A , y ) C_ x ) /\
                                  A. y e. x ( f ` y ) =
                                            ( y G ( f |` Pred ( R , A , y ) ) )
                                 ) } $.
    $( Lemma for founded recursion.  Properties of the restriction of an
       acceptable function to the domain of another acceptable function.
       (Contributed by Paul Chapman, 21-Apr-2012.) $)
    frrlem4 $p |- ( ( g e. B /\ h e. B ) ->
       ( ( g |` ( dom g i^i dom h ) ) Fn ( dom g i^i dom h ) /\
         A. a e. ( dom g i^i dom h ) ( ( g |` ( dom g i^i dom h ) ) ` a ) =
            ( a G ( ( g |` ( dom g i^i dom h ) ) |`
                    Pred ( R , ( dom g i^i dom h ) , a ) ) ) ) ) $=
      ( vb vc cv wcel wa cres wceq wral wss cdm cin wfn cfv cpred co wfun funfn
      frrlem2 sylib fnresin1 syl adantr w3a wex wi frrlem1 abeq2i fndm biimp3ar
      raleqdv rsp exlimiv sylbi elinel1 impel adantlr fvresd resres predss mpbi
      simpr sseqin2 eeanv inss1 simpl2l syl5ss simp2r nfra1 wel syl5com elinel2
      nfan anim12d biimpi syl6com ralrimi syl2an wb simpl1 simpr1 ineq12 sseq1d
      ssin sseq2d raleqbidv anbi12d syl2anc mpbir2and sylbir syl2anb preddowncl
      exlimivv sylc syl5eq reseq2d oveq2d 3eqtr4d ralrimiva jca ) GNZDOZHNZDOZP
      ZXKXKUAZXMUAZUBZQZXRUCZJNZXSUDZYAXSXREYAUEZQZIUFZRZJXRSXLXTXNXLXKXPUCZXTX
      LXKUGYGABCDEFGIKUIXKUHUJXPXQXKUKULUMXOYFJXRXOYAXROZPZYAXKUDZYAXKCEYAUEZQZ
      IUFZYBYEXLYHYJYMRZXNXLYAXPOZYNYHXLXKLNZUCZYPCTZYKYPTZJYPSZPZYNJYPSZUNZLUO
      ZYOYNUPZUUDGDABLJCDEFGIKUQURZUUCUUELUUCYNJXPSZUUEYQUUAUUGUUBYQUUAPYNJXPYP
      YQXPYPRZUUAYPXKUSZUMVAUTYNJXPVBULVCVDYAXPXQVEVFVGYIYAXRXKXOYHVLZVHYIYDYLY
      AIYIYDXKXRYCUBZQYLXKXRYCVIYIUUKYKXKYIUUKYCYKYCXRTUUKYCRXREYAVJYCXRVMVKYIX
      RCTZYKXRTZJXRSZPZYHYCYKRXOUUOYHXLUUDXMMNZUCZUUPCTZYKUUPTZJUUPSZPZYAXMUDYA
      XMYKQIUFRJUUPSZUNZMUOZUUOXNUUFUVDHDABMJCDEFHIKUQURUUDUVDPUUCUVCPZMUOLUOUU
      OUUCUVCLMVNUVEUUOLMUVEUUOYPUUPUBZCTZYKUVFTZJUVFSZUVEUVFYPCYPUUPVOYRYTYQUU
      BUVCVPVQUUCYTUUTUVIUVCYQYRYTUUBVRUUQUURUUTUVBVRYTUUTPZUVHJUVFYTUUTJYSJYPV
      SUUSJUUPVSWCYAUVFOZUVJYSUUSPZUVHUVKYTYSUUTUUSUVKJLVTYTYSYAYPUUPVEYSJYPVBW
      AUVKJMVTUUTUUSYAYPUUPWBUUSJUUPVBWAWDUVLUVHYKYPUUPWNWEWFWGWHUVEUUHXQUUPRZU
      UOUVGUVIPWIUVEYQUUHYQUUAUUBUVCWJUUIULUVEUUQUVMUUCUUQUVAUVBWKUUPXMUSULUUHU
      VMPZUULUVGUUNUVIUVNXRUVFCXPYPXQUUPWLZWMUVNUUMUVHJXRUVFUVOUVNXRUVFYKUVOWOW
      PWQWRWSXCWTXAUMUUJJCXREYAXBXDXEXFXEXGXHXIXJ $.
  $}

  ${
    $d A f g $.  $d A h x y $.  $d f g $.  $d f h x y G $.  $d g G $.
    $d h G $.  $d u g v x $.  $d x G $.  $d y g G $.  $d u h v x $.  $d y h $.
    $d R f g $.  $d R h x y $.  $d v u x $.  $d A z $.  $d B z $.  $d C z $.
    $d f z $.  $d G z $.  $d R z $.  $d x z $.  $d y z $.  $d C g $.
    $d B g h u v $.  $d B x $.  $d A a $.  $d f h x y a $.  $d g a $.
    $d B a $.  $d G a $.  $d R a $.
    frrlem5.1 $e |- R Fr A $.
    frrlem5.2 $e |- R Se A $.
    frrlem5.3 $e |- B = { f |
                           E. x ( f Fn x /\
                                  ( x C_ A /\
                                    A. y e. x Pred ( R , A , y ) C_ x ) /\
                                  A. y e. x ( f ` y ) =
                                            ( y G ( f |` Pred ( R , A , y ) ) )
                                 ) } $.
    $( Lemma for founded recursion.  The values of two acceptable functions
       agree within their domains.  (Contributed by Paul Chapman, 21-Apr-2012.)
       (Revised by Mario Carneiro, 26-Jun-2015.) $)
    frrlem5 $p |- ( ( g e. B /\ h e. B ) -> ( ( x g u /\ x h v )
             -> u = v ) ) $=
      ( va cv wbr wa cres wceq cdm cin wcel breldm anim12i sylibr anandir brres
      vex elin anbi12i sylbb2 mpdan wfr wse wfn cfv co wral wss frrlem3 ssinss1
      cpred frss mpi sess2 jca 3syl adantr frrlem4 ancoms reseq2i fneq1i fneq2i
      incom bitri fveq1i predeq2 ax-mp reseq12i oveq2i eqeq12i raleqbii syl3anc
      frr3g biimprd wi wfun wal frrlem2 funres wrel dffun2 simprbi 2sp sps 4syl
      breqd sylan2d syl5 ) APZDPZIPZQZXACPZJPZQZRZXAXBXCXCUAZXFUAZUBZSZQZXAXEXF
      XKSZQZRZXCFUCZXFFUCZRZXBXETZXHXAXKUCZXPXHXAXIUCZXAXJUCZRYAXDYBXGYCXAXBXCA
      UIZDUIZUDXAXEXFYDCUIZUDUEXAXIXJUJUFXHYARXDYARZXGYARZRXPXDXGYAUGXMYGXOYHXA
      XBXCXKYEUHXAXEXFXKYFUHUKULUMXSXOXAXEXLQZXMXTXSYIXOXSXLXNXAXEXSXKGUNZXKGUO
      ZRZXLXKUPOPZXLUQYMXLXKGYMVCZSKURTOXKUSRXNXKUPZYMXNUQZYMXNYNSZKURZTZOXKUSZ
      RZXLXNTXQYLXRXQXIEUTXKEUTZYLABEFGHIKNVAXIXJEVBUUBYJYKUUBEGUNYJLXKEGVDVEUU
      BEGUOYKMXKEGVFVEVGVHVIABEFGHIJKONVJXSXFXJXIUBZSZUUCUPZYMUUDUQZYMUUDUUCGYM
      VCZSZKURZTZOUUCUSZRZUUAXRXQUULABEFGHJIKONVJVKYOUUEYTUUKYOUUDXKUPUUEXKXNUU
      DXKUUCXFXIXJVOZVLZVMXKUUCUUDUUMVNVPYSUUJOXKUUCUUMYPUUFYRUUIYMXNUUDUUNVQYQ
      UUHYMKXNUUDYNUUGUUNXKUUCTYNUUGTUUMXKUUCGYMVRVSVTWAWBWCUKUFOXKGXLXNKWEWDWR
      WFXQXMYIRXTWGZXRXQXCWHXLWHZUUOCWIDWIZAWIZUUOABEFGHIKNWJXKXCWKUUPXLWLUURAD
      CXLWMWNUUQUUOAUUODCWOWPWQVIWSWT $.

    $( Lemma for founded recursion.  The union of a subclass of ` B ` is a
       relationship.  (Contributed by Paul Chapman, 29-Apr-2012.) $)
    frrlem5b $p |- ( C C_ B -> Rel U. C ) $=
      ( vz wss cv wrel wral cuni wcel ssel wfun funrel syl syl6 ralrimiv reluni
      frrlem2 sylibr ) EDMZLNZOZLEPEQOUHUJLEUHUIERUIDRZUJEDUISUKUITUJABCDFGLHKU
      FUIUAUBUCUDLEUEUG $.

    $( Lemma for founded recursion.  The union of a subclass of ` B ` is a
       function.  (Contributed by Paul Chapman, 29-Apr-2012.) $)
    frrlem5c $p |- ( C C_ B -> Fun U. C ) $=
      ( vu vv vg vh cv wbr wa wcel wex wss cuni wfun uniss wrel weq wi wal ssid
      frrlem5b ax-mp cop eluni df-br anbi1i exbii 3bitr4i anbi12i eeanv frrlem5
      bitr4i impcom an4s exlimivv sylbi ax-gen dffun2 mpbir2an funss mpisyl
      gen2 ) EDUAEUBZDUBZUAVMUCZVLUCEDUDVNVMUEZAPZLPZVMQZVPMPZVMQZRZLMUFZUGZMUH
      ZLUHAUHDDUAVODUIABCDDFGHIJKUJUKWDALWCMWAVPVQNPZQZWEDSZRZVPVSOPZQZWIDSZRZR
      ZOTNTZWBWAWHNTZWLOTZRWNVRWOVTWPVPVQULZVMSWQWESZWGRZNTVRWONWQDUMVPVQVMUNWH
      WSNWFWRWGVPVQWEUNUOUPUQVPVSULZVMSWTWISZWKRZOTVTWPOWTDUMVPVSVMUNWLXBOWJXAW
      KVPVSWIUNUOUPUQURWHWLNOUSVAWMWBNOWFWJWGWKWBWGWKRWFWJRWBABMLCDFGNOHIJKUTVB
      VCVDVEVFVKALMVMVGVHVLVMVIVJ $.

    $( Lemma for founded recursion.  The domain of the union of a subset of
       ` B ` is a subset of ` A ` .  (Contributed by Paul Chapman,
       29-Apr-2012.) $)
    frrlem5d $p |- ( C C_ B -> dom U. C C_ A ) $=
      ( vg wss cuni cdm cv ciun dmuni wral wcel ssel syl6 ralrimiv iunss sylibr
      frrlem3 syl5eqss ) EDMZENOLELPZOZQZCLERUHUJCMZLESUKCMUHULLEUHUIETUIDTULED
      UIUAABCDFGLHKUFUBUCLEUJCUDUEUG $.

    ${
      $d A t w z $.  $d f t w z $.  $d G t w z $.  $d R t w z $.
      $d x y t w z $.  $d X t w z $.  $d C w $.
      $( Lemma for founded recursion.  The domain of the union of a subset of
         ` B ` is closed under predecessors.  (Contributed by Paul Chapman,
         1-May-2012.) $)
      frrlem5e $p |- ( C C_ B -> ( X e. dom U. C ->
                    Pred ( R , A , X ) C_ dom U. C ) ) $=
        ( vz vw vt cdm wcel cv wss wa cuni wrex cpred ciun dmuni eliun bitri wi
        eleq2i ssel2 wfn wral cfv cres co w3a wex frrlem1 abeq2i predeq3 sseq1d
        wceq rspccv ad2antlr eleq2d sseq2d imbi12d syl5ibr 3impib exlimiv sylbi
        fndm syl weq dmeq rspcev ssiun syl6sseqr adantl syld rexlimdva syl5bi
        ex ) IEUAPZQZIMRZPZQZMEUBZEDSZCFIUCZWDSZWEIMEWGUDZQWIWDWMIMEUEUIMIEWGUF
        UGWJWHWLMEWJWFEQZTZWHWKWGSZWLWOWFDQZWHWPUHZEDWFUJWQWFNRZUKZWSCSZCFORZUC
        ZWSSZOWSULZTZXBWFUMXBWFXCUNHUOVBOWSULZUPZNUQZWRXIMDABNOCDFGMHLURUSXHWRN
        WTXFXGWRXFXGTWRWTIWSQZWKWSSZUHZXEXLXAXGXDXKOIWSXBIVBXCWKWSCFXBIUTVAVCVD
        WTWHXJWPXKWTWGWSIWSWFVLZVEWTWGWSWKXMVFVGVHVIVJVKVMWNWPWLUHWJWNWPWLWNWPT
        ZWKNEWSPZUDZWDXNWKXOSZNEUBWKXPSXQWPNWFENMVNXOWGWKWSWFVOVFVPNEXOWKVQVMNE
        UEVRWCVSVTWAWB $.
    $}
  $}

  ${
    $d A f g x y $.  $d G f g x y $.  $d R f g x y $.  $d B g $.
    frrlem6.1 $e |- B = { f |
                           E. x ( f Fn x /\
                                  ( x C_ A /\
                                    A. y e. x Pred ( R , A , y ) C_ x ) /\
                                  A. y e. x ( f ` y ) =
                                            ( y G ( f |` Pred ( R , A , y ) ) )
                                 ) } $.
    frrlem6.2 $e |- F = frecs ( R , A , G ) $.
    $( Lemma for founded recursion.  The union of all acceptable functions is a
       relationship.  (Contributed by Paul Chapman, 21-Apr-2012.)  (Revised by
       Scott Fenton, 23-Dec-2021.) $)
    frrlem6 $p |- Rel F $=
      ( vg wrel cuni cv reluni wcel wfun frrlem2 wss wral syl mprgbir wfn cpred
      funrel wa cfv cres co wceq w3a cfrecs df-frecs eqtri unieqi eqtr4i releqi
      wex cab mpbir ) GLDMZLZVBKNZLZKDKDOVCDPVCQVDABCDEFKHIRVCUEUAUBGVAGFNZANZU
      CVFCSCEBNZUDZVFSBVFTUFVGVEUGVGVEVHUHHUIUJBVFTUKAURFUSZMZVAGCEHULVJJABCEFH
      UMUNDVIIUOUPUQUT $.

    $( Lemma for founded recursion.  The domain of ` F ` is a subclass of
       ` A ` .  (Contributed by Paul Chapman, 21-Apr-2012.)  (Revised by Scott
       Fenton, 23-Dec-2021.) $)
    frrlem7 $p |- dom F C_ A $=
      ( vg cdm cv ciun cuni cfrecs wfn wss cpred wral cfv cres wceq w3a wex cab
      wa co df-frecs unieqi 3eqtr4i dmeqi dmuni eqtri frrlem3 mprgbir eqsstri
      iunss ) GLZKDKMLZNZCUSDOZLVAGVBCEHPFMZAMZQVDCRCEBMZSZVDRBVDTUGVEVCUAVEVCV
      FUBHUHUCBVDTUDAUEFUFZOGVBABCEFHUIJDVGIUJUKULKDUMUNVACRUTCRKDKDUTCURABCDEF
      KHIUOUPUQ $.
  $}

  ${
    $d A f x y $.  $d F x $.  $d G f x y $.  $d R f x y $.  $d B x $.
    frrlem10.1 $e |- R Fr A $.
    frrlem10.2 $e |- R Se A $.
    frrlem10.3 $e |- B = { f |
                           E. x ( f Fn x /\
                                  ( x C_ A /\
                                    A. y e. x Pred ( R , A , y ) C_ x ) /\
                                  A. y e. x ( f ` y ) =
                                            ( y G ( f |` Pred ( R , A , y ) ) )
                                 ) } $.
    frrlem10.4 $e |- F = frecs ( R , A , G ) $.
    $( Lemma for founded recursion.  The union of all acceptable functions is a
       function.  (Contributed by Paul Chapman, 21-Apr-2012.)  (Revised by
       Scott Fenton, 23-Dec-2021.) $)
    frrlem10 $p |- Fun F $=
      ( wfun cuni wss ssid frrlem5c ax-mp cv wral cfrecs wfn cpred wa cres wceq
      cfv co w3a wex cab df-frecs unieqi 3eqtr4i funeqi mpbir ) GMDNZMZDDOURDPA
      BCDDEFHIJKQRGUQCEHUAFSZASZUBUTCOCEBSZUCZUTOBUTTUDVAUSUGVAUSVBUEHUHUFBUTTU
      IAUJFUKZNGUQABCEFHULLDVCKUMUNUOUP $.

    ${
      $d A z $.  $d F f $.  $d F z $.  $d G z $.  $d R z $.  $d x y z $.
      $d f z $.
      $( Lemma for founded recursion.  Here, we calculate the value of ` F `
         (the union of all acceptable functions).  (Contributed by Paul
         Chapman, 21-Apr-2012.)  (Revised by Scott Fenton, 23-Dec-2021.) $)
      frrlem11 $p |- ( y e. dom F ->
              ( F ` y ) = ( y G ( F |` Pred ( R , A , y ) ) ) ) $=
        ( vz cv cdm wcel wex wceq wss wa cop cfv cpred cres co vex wfn wral w3a
        eldm2 cab cuni cfrecs df-frecs eqtri eleq2i eluniab bitri simpr3 simpr1
        wel simpl fnop syl2anc rsp sylc wfun 19.8a abeq2i sylibr adantl elssuni
        frrlem10 unieqi eqtr4i syl6sseqr fndm eleqtrrd funssfv mp3an2i sseqtr4d
        syl simpr2r fun2ssres oveq2d 3eqtr4d ex exlimdv imp exlimiv sylbi ) BNZ
        GOPWLMNZUAZGPZMQWLGUBZWLGCEWLUCZUDZHUEZRZMWLGBUFUJWOWTMWOWNFNZPZXAANZUG
        ZXCCSZWQXCSZBXCUHZTZWLXAUBZWLXAWQUDZHUEZRZBXCUHZUIZAQZTZFQZWTWOWNXOFUKZ
        ULZPXQGXSWNGCEHUMXSLABCEFHUNUOZUPXOFWNUQURXPWTFXBXOWTXBXNWTAXBXNWTXBXNT
        ZXIXKWPWSYAXMBAVAZXLXBXDXHXMUSYAXDXBYBXBXDXHXMUTZXBXNVBXCWLWMXAVCVDZXLB
        XCVEVFGVGZYAXAGSZWLXAOZPWPXIRABCDEFGHIJKLVMZYAXADULZGYAXADPZXAYISXNYJXB
        XNXOYJXNAVHXOFDKVIVJVKXADVLWBGXSYIXTDXRKVNVOVPZYAWLXCYGYDYAXDYGXCRYCXCX
        AVQWBZVRWLGXAVSVTYAWRXJWLHYEYAYFWQYGSWRXJRYHYKYAWQXCYGYAXGYBXFXEXGXDXMX
        BWCYDXFBXCVEVFYLWAWQGXAWDVTWEWFWGWHWIWJWKWJWK $.
    $}
  $}

  $(
  @{
    @d A f @. @d A j @. @d A t @. @d A w @. @d A x @. @d A y @. @d f j @.
    @d f t @. @d f w @. @d f x @. @d f y @. @d G f @. @d G j @. @d G t @.
    @d G w @. @d G x @. @d G y @. @d J j @. @d j t @. @d J t @. @d j w @.
    @d J w @. @d j x @. @d j y @. @d R f @. @d R j @. @d R t @. @d R w @.
    @d R x @. @d R y @. @d t w @. @d t x @. @d t y @. @d t z @. @d w x @.
    @d w y @. @d w z @. @d x y @.
    frrlem12.1 @e |- R Fr A @.
    frrlem12.2 @e |- R Se A @.
    frrlem12.3 @e |- B = { f |
                           E. x ( f Fn x /\
                                  ( x C_ A /\
                                    A. y e. x Pred ( R , A , y ) C_ x ) /\
                                  A. y e. x ( f ` y ) =
                                            ( y G ( f |` Pred ( R , A , y ) ) )
                                 ) } @.
    frrlem12.4 @e |- F = frecs ( R , A , G ) @.
    frrlem12.5 @e |- J =
    ( H u. { <. z , ( z G ( F |` Pred ( R , A , z ) ) ) >. } ) @.

    @( Lemma for founded recursion.  If there is an acceptable function
       over a transitive predecessor, then it can be extended by one to
       the element itself.  (Contributed by Scott Fenton, 25-Dec-2021.) @)
    frrlem12 @p |- ( ( z e. A /\ H Fn TrPred ( R , A , z ) /\ H e. B ) ->
    J e. B ) @=
      ( vw vt wcel wfn vj cv ctrpred w3a wss cpred wral wa cfv cres co wceq wex
      cab csn cun trpredex snex unex fneq2 sseq1 sseq2 raleqbi1dv anbi12d raleq
      jca 3anbi123d spcev syl3anc cvv wb cop cin simp2 vex ovex fnsn a1i disjsn
      c0 sylibr fnun syl21anc fneq1i fnex mpan2 syl fneq1 reseq1 oveq2d eqeq12d
      wn fveq1 ralbidv 3anbi13d exbidv elabg mpbird frrlem1 syl6eleqr ) CUBZDSZ
      JDFXAUCZTZJESZUDZKUAUBZQUBZTZXHDUEZDFRUBZUFZXHUEZRXHUGZUHZXKXGUIZXKXGXLUJ
      ZIUKZULZRXHUGZUDZQUMZUAUNZEXFKYCSZKXHTZXOXKKUIZXKKXLUJZIUKZULZRXHUGZUDZQU
      MZXFKXCXAUOZUPZTZYNDUEZXLYNUEZRYNUGZUHZYIRYNUGZYL?XFYPYR??VF?YKYOYSYTUDQY
      NXCYMDFXAUQXAURUSZXHYNULZYEYOXOYSYJYTXHYNKUTUUBXJYPXNYRXHYNDVAXMYQRXHYNXH
      YNXLVBVCVDYIRXHYNVEVGVHVIXFKVJSZYDYLVKXFYOUUCXFJXAXAHDFXAUFUJZIUKZVLUOZUP
      ZYNTZYOXFXDUUFYMTZXCYMVMVTULZUUHXBXDXEVNUUIXFXAUUECVOXAUUDIVPVQVRXFXAXCSW
      LUUJ?XCXAVSWAXCYMJUUFWBWCYNKUUGPWDWAYOYNVJSUUCUUAYNVJKWEWFWGYBYLUAKVJXGKU
      LZYAYKQUUKXIYEXTYJXOXHXGKWHUUKXSYIRXHUUKXPYFXRYHXKXGKWMUUKXQYGXKIXGKXLWIW
      JWKWNWOWPWQWGWRABQRDEFGUAINWSWT @.
  @}
  $)

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Surreal Numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Set up the new syntax for surreal numbers $)
  $c No <s bday $.
  $( Declare the class of all surreal numbers (see ~ df-no ). $)
  csur $a class No $.
  $( Declare the less than relationship over surreal numbers (see
     ~ df-slt ). $)
  cslt $a class <s $.
  $( Declare the birthday function for surreal numbers (see ~ df-bday ). $)
  cbday $a class bday $.

  ${
    $d f a $.
    $( Define the class of surreal numbers.  The surreal numbers are a proper
       class of numbers developed by John H. Conway and introduced by Donald
       Knuth in 1975.  They form a proper class into which all ordered fields
       can be embedded.  The approach we take to defining them was first
       introduced by Hary Goshnor, and is based on the conception of a "sign
       expansion" of a surreal number.  We define the surreals as
       ordinal-indexed sequences of ` 1o ` and ` 2o ` , analagous to Goshnor's
       ` ( - ) ` and ` ( + ) ` .

       After introducing this definition, we will abstract away from it using
       axioms that Norman Alling developed in "Foundations of Analysis over
       Surreal Number Fields."  This is done in an effort to be agnostic
       towards the exact implementation of surreals.  (Contributed by Scott
       Fenton, 9-Jun-2011.) $)
    df-no $a |- No = { f | E. a e. On f : a --> { 1o , 2o } } $.
  $}

  ${
    $d f g x y $.
    $( Next, we introduce surreal less-than, a comparison relationship over the
       surreals by lexicographically ordering them.  (Contributed by Scott
       Fenton, 9-Jun-2011.) $)
    df-slt $a |- <s = { <. f , g >. | ( ( f e. No /\ g e. No ) /\
                         E. x e. On (
                            A. y e. x ( f ` y ) = ( g ` y ) /\
                              ( f ` x ) { <. 1o , (/) >. ,
                                          <. 1o , 2o >. ,
                                          <. (/) , 2o >. } ( g ` x ) ) ) } $.
  $}

  $( Finally, we introduce the birthday function.  This function maps each
     surreal to an ordinal.  In our implementation, this is the domain of the
     sign function.  The important properties of this function are established
     later.  (Contributed by Scott Fenton, 11-Jun-2011.) $)
  df-bday $a |- bday = ( x e. No |-> dom x ) $.

  ${
    $d A f x $.
    $( Membership in the surreals.  (Shortened proof on 2012-Apr-14, SF).
       (Contributed by Scott Fenton, 11-Jun-2011.) $)
    elno $p |- ( A e. No <-> E. x e. On A : x --> { 1o , 2o } ) $=
      ( vf csur wcel cvv cv c1o c2o cpr wf con0 wrex elex ancoms rexlimiva wceq
      fex feq1 rexbidv df-no elab2g pm5.21nii ) BDEBFEZAGZHIJZBKZALMZBDNUGUDALU
      GUELEUDUEUFLBROPUEUFCGZKZALMUHCBDFUIBQUJUGALUEUFUIBSTCAUAUBUC $.
  $}

  ${
    $d A f g x y $.  $d B f g x y $.
    $( The value of the surreal less than relationship.  (Contributed by Scott
       Fenton, 14-Jun-2011.) $)
    sltval $p |- ( ( A e. No /\ B e. No ) ->
            ( A <s B <-> E. x e. On ( A. y e. x ( A ` y ) = ( B ` y ) /\
                         ( A ` x ) { <. 1o , (/) >. , <. 1o , 2o >. ,
                                     <. (/) , 2o >. } ( B ` x ) ) ) ) $=
      ( vf vg csur wcel wa cslt wbr cfv wceq wral cop con0 wrex fveq1 anbi12d
      cv c1o c0 c2o ctp eleq1 anbi1d eqeq1d ralbidv breq1d anbi2d eqeq2d breq2d
      rexbidv df-slt brabg bianabs ) CGHZDGHZIZCDJKBTZCLZUTDLZMZBATZNZVDCLZVDDL
      ZUAUBOUAUCOUBUCOUDZKZIZAPQZETZGHZFTZGHZIZUTVLLZUTVNLZMZBVDNZVDVLLZVDVNLZV
      HKZIZAPQZIUQVOIZVAVRMZBVDNZVFWBVHKZIZAPQZIUSVKIEFCDGGJVLCMZVPWFWEWKWLVMUQ
      VOVLCGUEUFWLWDWJAPWLVTWHWCWIWLVSWGBVDWLVQVAVRUTVLCRUGUHWLWAVFWBVHVDVLCRUI
      SUMSVNDMZWFUSWKVKWMVOURUQVNDGUEUJWMWJVJAPWMWHVEWIVIWMWGVCBVDWMVRVBVAUTVND
      RUKUHWMWBVGVFVHVDVNDRULSUMSABEFUNUOUP $.
  $}

  ${
    $d A x $.
    $( The value of the birthday function within the surreals.  (Contributed by
       Scott Fenton, 14-Jun-2011.) $)
    bdayval $p |- ( A e. No -> ( bday ` A ) = dom A ) $=
      ( vx csur wcel cdm cvv cbday cfv wceq dmexg cv dmeq df-bday fvmptg mpdan
      ) ACDAEZFDAGHPIACJBABKZEPCFGQALBMNO $.
  $}

  ${
    $d A x $.
    $( A surreal is a function.  (Contributed by Scott Fenton, 16-Jun-2011.) $)
    nofun $p |- ( A e. No -> Fun A ) $=
      ( vx csur wcel cv c1o c2o cpr wf con0 wrex wfun elno ffun rexlimivw sylbi
      ) ACDBEZFGHZAIZBJKALZBAMSTBJQRANOP $.

    $( The domain of a surreal is an ordinal.  (Contributed by Scott Fenton,
       16-Jun-2011.) $)
    nodmon $p |- ( A e. No -> dom A e. On ) $=
      ( vx csur wcel cv c1o c2o cpr wf con0 wrex cdm elno fdm biimprcd rexlimiv
      eleq1d sylbi ) ACDBEZFGHZAIZBJKALZJDZBAMUAUCBJUAUCSJDUAUBSJSTANQOPR $.

    $( The range of a surreal is a subset of the surreal signs.  (Contributed
       by Scott Fenton, 16-Jun-2011.) $)
    norn $p |- ( A e. No -> ran A C_ { 1o , 2o } ) $=
      ( vx csur wcel cv c1o c2o cpr con0 wrex crn wss elno frn rexlimivw sylbi
      wf ) ACDBEZFGHZAQZBIJAKSLZBAMTUABIRSANOP $.
  $}

  $( A surreal is a function over its birthday.  (Contributed by Scott Fenton,
     16-Jun-2011.) $)
  nofnbday $p |- ( A e. No -> A Fn ( bday ` A ) ) $=
    ( csur wcel wfun cdm cbday cfv wceq wfn nofun bdayval eqcomd df-fn sylanbrc
    ) ABCZADAEZAFGZHAQIAJOQPAKLAQMN $.

  $( The domain of a surreal has the ordinal property.  (Contributed by Scott
     Fenton, 16-Jun-2011.) $)
  nodmord $p |- ( A e. No -> Ord dom A ) $=
    ( csur wcel cdm con0 word nodmon eloni syl ) ABCADZECJFAGJHI $.

  ${
    $d x A $.
    $( An alternative condition for membership in ` No ` .  (Contributed by
       Scott Fenton, 21-Mar-2012.) $)
    elno2 $p |- ( A e. No <->
              ( Fun A /\ dom A e. On /\ ran A C_ { 1o , 2o } ) ) $=
      ( vx csur wcel wfun cdm con0 crn c1o c2o cpr wss w3a nofun nodmon norn wf
      3jca wa sylibr cv wrex simp2 wceq simpl eqidd df-fn sylanbrc anim1i 3impa
      wfn df-f feq2 rspcev syl2anc elno impbii ) ACDZAEZAFZGDZAHIJKZLZMZURUSVAV
      CANAOAPRVDBUAZVBAQZBGUBZURVDVAUTVBAQZVGUSVAVCUCVDAUTUKZVCSZVHUSVAVCVJUSVA
      SZVIVCVKUSUTUTUDVIUSVAUEVKUTUFAUTUGUHUIUJUTVBAULTVFVHBUTGVEUTVBAUMUNUOBAU
      PTUQ $.
  $}

  $( Another condition for membership in ` No ` .  (Contributed by Scott
     Fenton, 14-Apr-2012.) $)
  elno3 $p |- ( A e. No <-> ( A : dom A --> { 1o , 2o } /\ dom A e. On ) ) $=
    ( wfun cdm con0 wcel crn c1o c2o cpr wss w3a wa csur 3anan32 elno2 wfn df-f
    wf funfn anbi1i bitr4i 3bitr4i ) ABZACZDEZAFGHIZJZKUCUGLZUELAMEUDUFARZUELUC
    UEUGNAOUIUHUEUIAUDPZUGLUHUDUFAQUCUJUGASTUATUB $.

  ${
    $d A a x y $.  $d B a x y $.
    $( Alternate expression for surreal less than.  Two surreals obey surreal
       less than iff they obey the sign ordering at the first place they
       differ.  (Contributed by Scott Fenton, 17-Jun-2011.) $)
    sltval2 $p |- ( ( A e. No /\ B e. No ) ->
                     ( A <s B <->
                       ( A ` |^| { a e. On | ( A ` a ) =/= ( B ` a ) } )
                       { <. 1o , (/) >. , <. 1o , 2o >. , <. (/) , 2o >. }
                       ( B ` |^| { a e. On | ( A ` a ) =/= ( B ` a ) } )
                     ) ) $=
      ( vy vx wcel wa wbr cfv wceq c1o c0 c2o con0 wne fvex mtbiri adantl fveq2
      wn csur cslt cv wral cop ctp wrex crab cint sltval cvv w3o brtp 1n0 eqeq1
      neii fvprc nsyl2 adantr 2on0 3jaoi sylbi sylib onelon expcom syl5 neeq12d
      onintrab onnminsb com12 syldc df-ne con2bii syl6ibr ralrimiv jca ex impac
      anass raleq breq12d anbi12d rspcev syl wi eqeq12 csuc 1on 0elon necon3bid
      suc11 mp2an mpbir df-2o df-1o eqeq12i nemtbir eqcom syl6bb nesymi 3imtr4i
      wb elrab biimpri adantlr ssrab2 ne0i onint sylancr nfrab1 nfint nfcv nffv
      nfne elrabf simprbi eqeq12d rspccv ad2antlr simpll oninton ontri1 syl2anc
      wss mtod mpbird intss1 eqssd syldan sylan2 fveq2d biimpd pm2.43d rexlimiv
      expimpd impbid1 bitr4d ) AUAFBUAFGZABUBHDUCZAIZYSBIZJZDEUCZUDZUUCAIZUUCBI
      ZKLUEKMUELMUEUFZHZGZENUGZCUCZAIZUUKBIZOZCNUHZUIZAIZUUPBIZUUGHZEDABUJYRUUS
      UUJYRUUSUUJYRUUSGZUUPNFZUUBDUUPUDZUUSGZGZUUJUUTUVAUVBGZUUSGUVDYRUUSUVEYRU
      USUVEUUTUVAUVBUUSUVAYRUUSUUPUKFZUVAUUSUUQKJZUURLJZGZUVGUURMJZGZUUQLJZUVJG
      ZULUVFKLKMLMUUQUURUUPAPUUPBPUMUVIUVFUVKUVMUVGUVFUVHUVGUVLUVFUVGUVLKLJZKLU
      NUPZUUQKLUOQUUPAUQURZUSUVGUVFUVJUVPUSUVJUVFUVLUVJUVHUVFUVJUVHMLJMLUTUPUUR
      MLUOQUUPBUQURRVAVBUUNCVHVCRZUUTUUBDUUPUUTYSUUPFZYTUUAOZTZUUBUVRUUTYSNFZUV
      TUUTUVAUVRUWAUVQUVAUVRUWAUUPYSVDVEVFUWAUVRUVTUUNUVSCYSUUKYSJUULYTUUMUUAUU
      KYSASUUKYSBSVGVIVJVKUVSUUBYTUUAVLVMVNVOVPVQVRUVAUVBUUSVSVCUUIUVCEUUPNUUCU
      UPJZUUDUVBUUHUUSUUBDUUCUUPVTUWBUUEUUQUUFUURUUGUUCUUPASUUCUUPBSWAWBWCWDVQU
      UIUUSENUUCNFZUUDUUHUUSUWCUUDGZUUHUUSUWDUUHUUHUUSWEUWDUUHGZUUHUUSUWEUUEUUQ
      UUFUURUUGUWEUUCUUPAUUHUWDUUEUUFOZUWBUUEKJZUUFLJGZUWGUUFMJZGZUUELJUWIGZULU
      UEUUFJZTZUUHUWFUWHUWMUWJUWKUWHUWLUVNUVOUUEKUUFLWFQUWJUWLMKJZUWNKWGZLWGZUW
      OUWPOZKLOZUNKNFZLNFZUWQUWRXBWHWIUWSUWTGUWOUWPKLKLWKWJWLWMMUWOKUWPWNWOWPWQ
      UWJUWLKMJUWNUUEKUUFMWFKMWRWSQUWKUWLLMJMLUTWTUUELUUFMWFQVAKLKMLMUUEUUFUUCA
      PUUCBPUMUUEUUFVLXAUWDUWFUUCUUOFZUWBUWCUWFUXAUUDUXAUWCUWFGUUNUWFCUUCNUUKUU
      CJUULUUEUUMUUFUUKUUCASUUKUUCBSVGXCXDXEUWDUXAGZUUCUUPUXBUUCUUPYDZUUPUUCFZT
      ZUXBUXDUUQUURJZUXBUUQUUROZUXFTUXBUUPUUOFZUXGUXBUUONYDZUUOLOZUXHUUNCNXFZUX
      AUXJUWDUUOUUCXGZRUUOXHXIUXHUVAUXGUUNUXGCUUPNCUUOUUNCNXJXKZCNXLCUUQUURCUUP
      ACAXLUXMXMCUUPBCBXLUXMXMXNUUKUUPJUULUUQUUMUURUUKUUPASUUKUUPBSVGXOXPWDUUQU
      URVLVCUUDUXDUXFWEUWCUXAUUBUXFDUUPUUCYSUUPJYTUUQUUAUURYSUUPASYSUUPBSXQXRXS
      YEUXBUWCUVAUXCUXEXBUWCUUDUXAXTUXAUVAUWDUXAUXIUXJUVAUXKUXLUUOYAXIRUUCUUPYB
      YCYFUXAUUPUUCYDUWDUUCUUOYGRYHYIYJZYKUWEUUCUUPBUXNYKWAYLVQYMYOYNYPYQ $.
  $}

  ${
    $( The function value of a surreal is either a sign or the empty set.
       (Contributed by Scott Fenton, 22-Jun-2011.) $)
    nofv $p |- ( A e. No -> ( ( A ` X ) = (/) \/ ( A ` X ) = 1o \/
                               ( A ` X ) = 2o ) ) $=
      ( csur wcel cfv c0 wceq c1o c2o wo w3o cdm wn pm2.1 wi ndmfv a1i wa elexi
      con0 wfun crn cpr wss nofun norn fvelrn syl5com impancom 1on elpr2 syl6ib
      ssel 2on syl2anc orim12d mpi 3orass sylibr ) ACDZBAEZFGZVAHGZVAIGZJZJZVBV
      CVDKUTBALDZMZVGJVFVGNUTVHVBVGVEVHVBOUTBAPQUTAUAZAUBZHIUCZUDZVGVEOAUEAUFVI
      VLRVGVAVKDZVEVIVGVLVMVIVGRVAVJDVLVMBAUGVJVKVAUMUHUIVAHIHTUJSITUNSUKULUOUP
      UQVBVCVDURUS $.
  $}

  ${
    $( ` (/) ` is not a surreal sign.  (Contributed by Scott Fenton,
       16-Jun-2011.) $)
    nosgnn0 $p |- -. (/) e. { 1o , 2o } $=
      ( c0 c1o c2o cpr wcel wceq 1n0 nesymi csuc wne nsuceq0 necom df-2o neeq2i
      wo bitr4i mpbi neii pm3.2ni 0ex elpr mtbir ) ABCDEABFZACFZOUCUDBAGHACBIZA
      JZACJZBKUFAUEJUGUEALCUEAMNPQRSABCTUAUB $.
  $}

  ${
    nosgnn0i.1 $e |- X e. { 1o , 2o } $.
    $( If ` X ` is a surreal sign, then it is not null.  (Contributed by Scott
       Fenton, 3-Aug-2011.) $)
    nosgnn0i $p |- (/) =/= X $=
      ( c0 wceq c1o c2o cpr wcel nosgnn0 eleq1 mpbiri mto neir ) CACADZCEFGZHZI
      NPAOHBCAOJKLM $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( The restriction of a surreal to an ordinal is still a surreal.
       (Contributed by Scott Fenton, 4-Sep-2011.) $)
    noreson $p |- ( ( A e. No /\ B e. On ) -> ( A |` B ) e. No ) $=
      ( vy vx csur wcel con0 wa cv c1o c2o cpr cres wf wrex elno wi onin fresin
      cin feq2 rspcev syl2an an32s ex rexlimiva imp sylanb sylibr ) AEFZBGFZHCI
      ZJKLZABMZNZCGOZUNEFUJDIZUMANZDGOZUKUPDAPUSUKUPURUKUPQDGUQGFZURHUKUPUTUKUR
      UPUTUKHUQBTZGFVAUMUNNZUPURUQBRUQUMABSUOVBCVAGULVAUMUNUAUBUCUDUEUFUGUHCUNP
      UI $.
  $}

  ${
    $d A a $.  $d B a $.
    $( If ` A <s B ` , then the intersection of all the ordinals that have
       differing signs in ` A ` and ` B ` exists.  (Contributed by Scott
       Fenton, 22-Feb-2012.) $)
    sltintdifex $p |- ( ( A e. No /\ B e. No ) ->
       ( A <s B -> |^| { a e. On | ( A ` a ) =/= ( B ` a ) } e. _V ) ) $=
      ( csur wcel wa wbr cfv c1o c0 cop c2o wceq fvex wn fvprc neii eqeq1 eqcom
      syl6bb cslt cv wne con0 crab cint ctp cvv sltval2 w3o brtp 1n0 mtbiri syl
      con4i adantr 2on0 adantl 3jaoi sylbi syl6bi ) ADEBDEFABUAGCUBZAHVBBHUCCUD
      UEUFZAHZVCBHZIJKILKJLKUGGZVCUHEZABCUIVFVDIMZVEJMZFZVHVELMZFZVDJMZVKFZUJVG
      IJILJLVDVEVCANVCBNUKVJVGVLVNVHVGVIVGVHVGOZVMVHOVCAPVMVHIJMZIJULQVMVHJIMVP
      VDJIRJISTUMUNUOZUPVHVGVKVQUPVKVGVMVGVKVOVIVKOVCBPVIVKLJMZLJUQQVIVKJLMVRVE
      JLRJLSTUMUNUOURUSUTVA $.
  $}

  ${
    $d A a x y $.  $d B a x y $.  $d X a x y $.
    $( If the restrictions of two surreals to a given ordinal obey surreal less
       than, then so do the two surreals themselves.  (Contributed by Scott
       Fenton, 4-Sep-2011.) $)
    sltres $p |- ( ( A e. No /\ B e. No /\ X e. On ) ->
                      ( ( A |` X ) <s ( B |` X ) -> A <s B ) ) $=
      ( vy va wcel con0 wbr wa cfv wceq c1o c0 c2o wi imp syl sylc wn ex vx w3a
      csur cres cslt cv wral cop ctp wrex wne crab cint noreson 3adant2 3adant1
      cvv sltintdifex onintrab syl6ib syl2anc wss simpl3 cdm wo wb sltval2 fvex
      w3o brtp 1n0 neii eqeq1 mtbiri ndmfv nsyl2 adantr orcd 2on elexi nosgnn0i
      prid2 eqcom syl6bb adantl olcd 3jaoi sylbi syl6bi dmres elin2 jaoi onelss
      simplbi sselda onelon sylan intss1 ontri1 syl5ib con2d impancom mpd fveq2
      neeq12d elrab simplbi2 con3d df-ne con2bii sylibr fvres eqeq12d ralrimiva
      biimpd fvresval ori eqcomd eqeq2 mpbid a1i ad2antrl cpr wfun nofun fvelrn
      norn sseld syld nosgnn0 eleq1 nsyli adantrl jcad anim12i ad2antll adantrr
      crn syl6 3orim123d 3imtr4g sylbid breq12d anbi12d rspcev syl12anc 3adant3
      raleq sltval mpbird ) AUCFZBUCFZCGFZUBZACUDZBCUDZUEHZABUEHZUUNUUQIZUURDUF
      ZAJZUUTBJZKZDUAUFZUGZUVDAJZUVDBJZLMUHLNUHMNUHUIZHZIZUAGUJZUUSEUFZUUOJZUVL
      UUPJZUKZEGULZUMZGFZUVCDUVQUGZUVQAJZUVQBJZUVHHZUVKUUNUUQUVRUUNUUOUCFZUUPUC
      FZUUQUVROUUKUUMUWCUULACUNUOZUULUUMUWDUUKBCUNUPZUWCUWDIUUQUVQUQFUVRUUOUUPE
      URUVOEUSUTVAPZUUSUVCDUVQUUSUUTUVQFZIZUUTCFZUUTUUOJZUUTUUPJZKZUVCUUSUVQCUU
      TUUSUUMUVQCFZUVQCVBUUKUULUUMUUQVCUUSUVQUUOVDZFZUVQUUPVDZFZVEZUWNUUNUUQUWS
      UUNUUQUVQUUOJZUVQUUPJZUVHHZUWSUUNUWCUWDUUQUXBVFUWEUWFUUOUUPEVGVAZUXBUWTLK
      ZUXAMKZIZUXDUXANKZIZUWTMKZUXGIZVIZUWSLMLNMNUWTUXAUVQUUOVHUVQUUPVHVJZUXFUW
      SUXHUXJUXFUWPUWRUXDUWPUXEUXDUXIUWPUXDUXILMKLMVKVLUWTLMVMVNZUVQUUOVOVPZVQV
      RUXHUWPUWRUXDUWPUXGUXNVQVRUXJUWRUWPUXGUWRUXIUXGUXEUWRUXGUXEMNKZMNNLNNGVSV
      TWBWAVLUXGUXENMKUXOUXANMVMNMWCWDVNZUVQUUPVOVPZWEWFWGWHWIPUWPUWNUWRUWPUWNU
      VQAVDZFZUVQCUXRUWOACWJWKZWNZUWRUWNUVQBVDZFZUVQCUYBUWQBCWJWKZWNZWLQCUVQWMR
      WOUWIUWKUWLUKZSZUWMUWIUUTGFZUUTUVPFZSZUYGUUSUVRUWHUYHUWGUVQUUTWPWQZUWIUYH
      UYJUYKUUSUYHUWHUYJUUSUVRUYHUWHUYJOUWGUVRUYHIZUYIUWHUYIUVQUUTVBUYLUWHSUUTU
      VPWRUVQUUTWSWTXAWQXBXCUYHUYFUYIUYIUYHUYFUVOUYFEUUTGUVLUUTKUVMUWKUVNUWLUVL
      UUTUUOXDUVLUUTUUPXDXEXFXGXHRUYFUWMUWKUWLXIXJXKUWJUWMUVCUWJUWKUVAUWLUVBUUT
      CAXLUUTCBXLXMXORXNUUNUUQUWBUUNUUQUXBUWBUXCUUNUXKUVTLKZUWAMKZIZUYMUWANKZIZ
      UVTMKZUYPIZVIUXBUWBUUNUXFUYOUXHUYQUXJUYSUUNUXFUYMUYNUXFUYMOUUNUXDUYMUXEUX
      DUVTUWTKUYMUXDUWTUVTUXDUXIUWTUVTKZUXMUYTUXIUVQCAXPXQVPXRUWTLUVTXSXTZVQYAU
      UNUXFUYNUUNUXFIZUYCSZUYNVUBUWNUWRSZVUCVUBUWPUWNUXDUWPUUNUXEUXNYBUYAQUUNUX
      EVUDUXDUUNUXEVUDUUNUWDUXEVUDOUWFUWDUWRUXALNYCZFZUXEUWDUWRUXAUUPYRZFZVUFUW
      DUUPYDZUWRVUHOUUPYEVUIUWRVUHUVQUUPYFTQUWDVUGVUEUXAUUPYGYHYIUXEVUFMVUEFZYJ
      UXAMVUEYKVNYLQPYMUWNUYCUWRUWRUWNUYCUYDXGXHRUVQBVOQTYNUXHUYQOUUNUXDUYMUXGU
      YPVUAUXGUWAUXAKUYPUXGUXAUWAUXGUXEUXAUWAKZUXPVUKUXEUVQCBXPXQVPXRUXANUWAXSX
      TZYOYAUUNUXJUYRUYPUUNUXJUXSSZUYRUUNUXJVUMUUNUXJIZUWNUWPSZVUMVUNUWRUWNUXGU
      WRUUNUXIUXQYPUYEQUUNUXIVUOUXGUUNUXIVUOUUNUWCUXIVUOOUWEUWCUWPUWTVUEFZUXIUW
      CUWPUWTUUOYRZFZVUPUWCUUOYDZUWPVUROUUOYEVUSUWPVURUVQUUOYFTQUWCVUQVUEUWTUUO
      YGYHYIUXIVUPVUJYJUWTMVUEYKVNYLQPYQUWNUXSUWPUWPUWNUXSUXTXGXHRTUVQAVOYSUXJU
      YPOUUNUXGUYPUXIVULWEYAYNYTUXLLMLNMNUVTUWAUVQAVHUVQBVHVJUUAUUBPUVJUVSUWBIU
      AUVQGUVDUVQKZUVEUVSUVIUWBUVCDUVDUVQUUHVUTUVFUVTUVGUWAUVHUVDUVQAXDUVDUVQBX
      DUUCUUDUUEUUFUUNUURUVKVFZUUQUUKUULVVAUUMUADABUUIUUGVQUUJT $.
  $}

  $( The Cartesian product of an ordinal and ` { 1o } ` is a surreal.
     (Contributed by Scott Fenton, 12-Jun-2011.) $)
  noxp1o $p |- ( A e. On -> ( A X. { 1o } ) e. No ) $=
    ( con0 wcel c1o csn cxp cdm c2o cpr wf csur 1on elexi prid1 fconst6 c0 wceq
    wne snnz dmxp ax-mp feq2i mpbir a1i eleq1i biimpri elno3 sylanbrc ) ABCZADE
    ZFZGZDHIZUKJZULBCZUKKCUNUIUNAUMUKJADUMDHDBLMZNOULAUMUKUJPRULAQDUPSAUJTUAZUB
    UCUDUOUIULABUQUEUFUKUGUH $.

  ${
    $d A x $.  $d B x $.
    $( Lemma for ~ nosepon .  Consider a case of proper subset domain.
       (Contributed by Scott Fenton, 21-Sep-2020.) $)
    noseponlem $p |- ( ( A e. No /\ B e. No /\ dom A e. dom B ) ->
       -. A. x e. On ( A ` x ) = ( B ` x ) ) $=
      ( csur wcel cdm w3a cv cfv wne con0 wrex wceq wral wn nodmon 3ad2ant1 syl
      c0 fveq2 word nodmord ordirr ndmfv c1o c2o nosgnn0 elno3 simplbi 3ad2ant2
      cpr wf simp3 ffvelrnd syl5ibcom mtoi neqned necomd eqnetrd neeq12d rspcev
      eleq1 syl2anc df-ne rexbii rexnal bitri sylib ) BDEZCDEZBFZCFZEZGZAHZBIZV
      OCIZJZAKLZVPVQMZAKNOZVNVKKEZVKBIZVKCIZJZVSVIVJWBVMBPQVNWCSWDVNVKVKEOZWCSM
      VIVJWFVMVIVKUAWFBUBVKUCRQVKBUDRVNWDSVNWDSVNWDSMZSUEUFUKZEZUGVNWDWHEWGWIVN
      VLWHVKCVJVIVLWHCULZVMVJWJVLKECUHUIUJVIVJVMUMUNWDSWHVBUOUPUQURUSVRWEAVKKVO
      VKMVPWCVQWDVOVKBTVOVKCTUTVAVCVSVTOZAKLWAVRWKAKVPVQVDVEVTAKVFVGVH $.

    $( Given two unequal surreals, the minimal ordinal at which they differ is
       an ordinal.  (Contributed by Scott Fenton, 21-Sep-2020.) $)
    nosepon $p |- ( ( A e. No /\ B e. No /\ A =/= B ) ->
       |^| { x e. On | ( A ` x ) =/= ( B ` x ) } e. On ) $=
      ( csur wcel wne w3a cfv con0 wrex wa wn wceq wral cdm word nodmord 3expia
      wo 3impia cv crab cint df-ne rexbii notbii dfral2 bitr4i ordtri3or syl2an
      w3o 3orass or12 bitri sylib ord noseponlem wi eqcom ralbii sylnibr ancoms
      jaod syld con4d wss ordsson ssralv 3syl adantr wb nofun 3ad2ant1 3ad2ant2
      wfun eqfunfv syl2anc mpbir2and syl5bi necon1ad onintrab2 ) BDEZCDEZBCFZGA
      UAZBHZWECHZFZAIJZWHAIUBUCIEWBWCWDWIWBWCKZWIBCWILZWFWGMZAINZWJBCMZWKWLLZAI
      JZLWMWIWPWHWOAIWFWGUDUEUFWLAIUGUHWBWCWMWNWBWCWMGZWNBOZCOZMZWLAWRNZWBWCWMW
      TWJWTWMWJWTLWRWSEZWSWREZSZWMLZWJWTXDWJXBWTXCUKZWTXDSZWBWRPZWSPXFWCBQZCQWR
      WSUIUJXFXBWTXCSSXGXBWTXCULXBWTXCUMUNUOUPWJXBXEXCWBWCXBXEABCUQRWCWBXCXEURW
      CWBXCXEWCWBXCGWGWFMZAINWMACBUQWLXJAIWFWGUSUTVARVBVCVDVETWBWCWMXAWBWMXAURZ
      WCWBXHWRIVFXKXIWRVGWLAWRIVHVIVJTWQBVOZCVOZWNWTXAKVKWBWCXLWMBVLVMWCWBXMWMC
      VLVNABCVPVQVRRVSVTTWHAWAUO $.
  $}

  ${
    noextend.1 $e |- X e. { 1o , 2o } $.
    $( Extending a surreal by one sign value results in a new surreal.
       (Contributed by Scott Fenton, 22-Nov-2021.) $)
    noextend $p |- ( A e. No -> ( A u. { <. dom A , X >. } ) e. No ) $=
      ( csur wcel cdm cop csn cun wfun con0 crn c1o wss cin wceq cvv syl syl5eq
      c0 c2o cpr nofun dmexg funsng sylancl elexi dmsnop ineq2i wn word nodmord
      ordirr disjsn sylibr funun syl21anc uneq2i df-suc 3eqtr4i nodmon suceloni
      csuc dmun syl5eqel rnun rnsnopg uneq2d norn snssi unssd eqsstrd syl3anbrc
      mp1i elno2 ) ADEZAAFZBGHZIZJZVSFZKEVSLZMUAUBZNVSDEVPAJVRJZVQVRFZOZTPVTAUC
      VPVQQEZBWCEZWDADUDZCVQBQWCUEUFVPWFVQVQHZOZTWEWJVQVQBBWCCUGUHZUIVPVQVQEUJZ
      WKTPVPVQUKWMAULVQUMRVQVQUNUOSAVRUPUQVPWAVQVCZKVQWEIVQWJIWAWNWEWJVQWLURAVR
      VDVQUSUTVPVQKEWNKEAVAVQVBRVEVPWBALZBHZIZWCVPWBWOVRLZIWQAVRVFVPWRWPWOVPWGW
      RWPPWIVQBQVGRVHSVPWOWPWCAVIWHWPWCNVPCBWCVJVNVKVLVSVOVM $.

    $( Extend a surreal by a sequence of ordinals.  (Contributed by Scott
       Fenton, 30-Nov-2021.) $)
    noextendseq $p |- ( ( A e. No /\ B e. On ) ->
       ( A u. ( ( B \ dom A ) X. { X } ) ) e. No ) $=
      ( csur wcel con0 wa cdm cun wfun crn wss mp2b cin wceq eqtri mpan2 adantr
      c0 cdif csn cxp c1o c2o cpr nofun wfn fnconstg fnfun snnzg ineq2i disjdif
      wne dmxp funun syl dmun uneq2i nodmon undif wi eleq1a adantl syl5bi uneq2
      ssdif0 un0 syl6eq eleq1d biimprcd wo eloni ordtri2or2 syl2an mpjaod sylan
      word syl5eqel rnun norn rnxpss snssi ax-mp sstri sylanblc elno2 syl3anbrc
      unss syl5eqss ) AEFZBGFZHZABAIZUAZCUBZUCZJZKZWRIZGFWRLZUDUEUFZMWREFWKWSWL
      WKAKZWSAUGXCWQKZWSCXBFZWQWOUHXDDWOCXBUIWOWQUJNXCXDHWNWQIZOZTPWSXGWNWOOTXF
      WOWNXEWPTUNXFWOPDCXBUKWOWPUONZULWNBUMQAWQUPRRUQSWMWTWNWOJZGWTWNXFJXIAWQUR
      XFWOWNXHUSQWKWNGFZWLXIGFZAUTXJWLHZWNBMZXKBWNMZXMXIBPZXLXKWNBVAWLXOXKVBXJB
      GXIVCVDVEXNWOTPZXLXKBWNVGXJXPXKVBWLXPXKXJXPXIWNGXPXIWNTJWNWOTWNVFWNVHVIVJ
      VKSVEXJWNVRBVRXMXNVLWLWNVMBVMWNBVNVOVPVQVSWMXAALZWQLZJZXBAWQVTWMXQXBMZXRX
      BMXSXBMWKXTWLAWASXRWPXBWOWPWBXEWPXBMDCXBWCWDWEXQXRXBWIWFWJWRWGWH $.

    $d A x y $.  $d X x y $.
    $( Calculate the place where a surreal and its extension differ.
       (Contributed by Scott Fenton, 22-Nov-2021.) $)
    noextenddif $p |- ( A e. No ->
     |^| { x e. On | ( A ` x ) =/= ( ( A u. { <. dom A , X >. } ) ` x ) } =
     dom A ) $=
      ( vy wcel cv cfv wne con0 wss c0 wn wceq syl sylibr fveq2 wa wo 3ad2ant1
      csur cdm cop csn cun crab cint nodmon nosgnn0i a1i word nodmord ndmfv wfn
      ordirr cin nofun funfn sylib c1o c2o cpr fnsng sylancl disjsn snidg fvun2
      wfun syl112anc fvsng eqtrd 3netr4d neeq12d onintss sylc wi wb eloni eqcom
      ordtri2 orbi1i orcom notbii syl6bb ordsseleq notbid ancoms bitr4d syl2anr
      bitri w3a simp3 fvun1 eqcomd 3expia sylbird necon1ad ralrimiva weq ralrab
      wral ssint eqssd ) BUAFZAGZBHZXEBBUBZCUCUDZUEZHZIZAJUFZUGZXGXDXGJFZXGBHZX
      GXIHZIZXMXGKBUHZXDLCXOXPLCIXDCDUIUJXDXGXGFMZXOLNXDXGUKZXSBULZXGUOOZXGBUMO
      XDXPXGXHHZCXDBXGUNZXHXGUDZUNZXGYEUPLNZXGYEFZXPYCNXDBVHYDBUQBURUSZXDXNCUTV
      AVBZFZYFXRDXGCJYJVCVDZXDXSYGYBXGXGVEPZXDXNYHXRXGJVFOXGYEBXHXGVGVIXDXNYKYC
      CNXRDXGCJYJVJVDVKVLXKXQAXGXEXGNXFXOXJXPXEXGBQXEXGXIQVMVNVOXDXGEGZKZEXLXAZ
      XGXMKXDYNBHZYNXIHZIZYOVPZEJXAYPXDYTEJXDYNJFZRZYOYQYRUUBYOMZYNXGFZYQYRNZUU
      AYNUKZXTUUDUUCVQXDYNVRYAUUFXTRZUUDXGYNFZXGYNNZSZMZUUCUUGUUDYNXGNZUUHSZMUU
      KYNXGVTUUMUUJUUMUUIUUHSUUJUULUUIUUHYNXGVSWAUUIUUHWBWJWCWDXTUUFUUCUUKVQXTU
      UFRYOUUJXGYNWEWFWGWHWIXDUUAUUDUUEXDUUAUUDWKZYRYQUUNYDYFYGUUDYRYQNXDUUAYDU
      UDYITXDUUAYFUUDYLTXDUUAYGUUDYMTXDUUAUUDWLXGYEBXHYNWMVIWNWOWPWQWRXKYSYOEAJ
      AEWSXFYQXJYRXEYNBQXEYNXIQVMWTPEXGXLXBPXC $.
  $}


  ${
    $d A x $.
    $( Extending a surreal with a negative sign results in a smaller surreal.
       (Contributed by Scott Fenton, 22-Nov-2021.) $)
    noextendlt $p |- ( A e. No -> ( A u. { <. dom A , 1o >. } ) <s A ) $=
      ( vx csur wcel c1o cop csn wbr cfv wne con0 crab cint c0 c2o wceq wfn 1on
      wa syl cdm cun cslt cv ctp w3o cin nofun funfn sylib nodmon fnsng sylancl
      wfun wn word ordirr disjsn sylibr snidg fvun2 syl112anc fvsng eqtrd ndmfv
      nodmord jca 3mix1d fvex brtp wb necom a1i rabbiia elexi prid1 noextenddif
      inteqi syl5eq fveq2d 3brtr4d noextend sltval2 mpancom mpbird ) ACDZAAUAZE
      FGZUBZAUCHZBUDZWIIZWKAIZJZBKLZMZWIIZWPAIZENFEOFNOFUEZHZWFWGWIIZWGAIZWQWRW
      SWFXAEPZXBNPZSZXCXBOPZSZXANPXFSZUFXAXBWSHWFXEXGXHWFXCXDWFXAWGWHIZEWFAWGQZ
      WHWGGZQZWGXKUGNPZWGXKDZXAXIPWFAUNXJAUHAUIUJWFWGKDZEKDZXLAUKZRWGEKKULUMWFW
      GWGDUOZXMWFWGUPXRAVFWGUQTZWGWGURUSWFXOXNXQWGKUTTWGXKAWHWGVAVBWFXOXPXIEPXQ
      RWGEKKVCUMVDWFXRXDXSWGAVETVGVHENEONOXAXBWGWIVIWGAVIVJUSWFWPWGWIWFWPWMWLJZ
      BKLZMWGWOYAWNXTBKWNXTVKWKKDWLWMVLVMVNVRBAEEOEKRVOVPZVQVSZVTWFWPWGAYCVTWAW
      ICDWFWJWTVKAEYBWBWIABWCWDWE $.


    $( Extending a surreal with a positive sign results in a bigger surreal.
       (Contributed by Scott Fenton, 22-Nov-2021.) $)
    noextendgt $p |- ( A e. No -> A <s ( A u. { <. dom A , 2o >. } ) ) $=
      ( vx csur wcel c2o cop csn wbr cfv con0 c1o c0 wceq wa syl wfn 2on sylibr
      sylancl fvex cdm cun cslt cv wne crab cint ctp w3o wn word nodmord ordirr
      ndmfv cin wfun nofun funfn sylib nodmon fnsng snidg fvun2 syl112anc fvsng
      disjsn eqtrd jca 3mix3d brtp elexi noextenddif fveq2d 3brtr4d wb noextend
      prid2 sltval2 mpdan mpbird ) ACDZAAAUAZEFGZUBZUCHZBUDZAIWFWDIUEBJUFUGZAIZ
      WGWDIZKLFKEFLEFUHZHZWAWBAIZWBWDIZWHWIWJWAWLKMZWMLMNZWNWMEMZNZWLLMZWPNZUIW
      LWMWJHWAWSWOWQWAWRWPWAWBWBDUJZWRWAWBUKWTAULWBUMOZWBAUNOWAWMWBWCIZEWAAWBPZ
      WCWBGZPZWBXDUOLMZWBXDDZWMXBMWAAUPXCAUQAURUSWAWBJDZEJDZXEAUTZQWBEJJVASWAWT
      XFXAWBWBVFRWAXHXGXJWBJVBOWBXDAWCWBVCVDWAXHXIXBEMXJQWBEJJVESVGVHVIKLKELEWL
      WMWBATWBWDTVJRWAWGWBABAEKEEJQVKVQZVLZVMWAWGWBWDXLVMVNWAWDCDWEWKVOAEXKVPAW
      DBVRVSVT $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d X x y $.
    $( Given ` A ` less than or equal to ` B ` , equal to ` B ` up to ` X ` ,
       and ` A ( X ) = 2o ` , then ` B ( X ) = 2o ` .  (Contributed by Scott
       Fenton, 6-Dec-2021.) $)
    nolesgn2o $p |- ( ( ( A e. No /\ B e. No /\ X e. On ) /\
    ( ( A |` X ) = ( B |` X ) /\ ( A ` X ) = 2o ) /\ -. B <s A ) ->
    ( B ` X ) = 2o ) $=
      ( vy vx csur wcel con0 w3a cres wceq cfv c2o wa wbr wn c0 c1o wo cop cslt
      w3o simpl2 nofv syl 3orel3 syl5com cv wral ctp simp13 fveq1 eqcomd adantr
      simpr fvresd 3eqtr3d ralrimiva 3ad2ant2 simprr ancld orim12d 3impia 3mix3
      wrex a1d 3mix2 jaoi fvex brtp sylibr raleq fveq2 breq12d anbi12d syl12anc
      rspcev wb simp12 simp11 sltval syl2anc mpbird 3expia syld con1d ) AFGZBFG
      ZCHGZIZACJZBCJZKZCALZMKZNZBAUAOZPCBLZMKZWJWPNZWSWQWTWSPZWRQKZWRRKZSZWQWTX
      BXCWSUBZXAXDWTWHXEWGWHWIWPUCBCUDUEXBXCWSUFUGWJWPXDWQWJWPXDIZWQDUHZBLZXGAL
      ZKZDEUHZUIZXKBLZXKALZRQTRMTQMTUJZOZNZEHVEZXFWIXJDCUIZWRWNXOOZXRWGWHWIWPXD
      UKWPWJXSXDWMXSWOWMXJDCWMXGCGZNZXGWLLZXGWKLZXHXIWMYCYDKYAWMYDYCXGWKWLULUMU
      NYBXGCBWMYAUOZUPYBXGCAYEUPUQURUNUSXFXCWNQKNZXCWONZXBWONZUBZXTXFYHYGSZYIWJ
      WPXDYJWTXBYHXCYGWTXBWOWTWOXBWJWMWOUTZVFVAWTXCWOWTWOXCYKVFVAVBVCYHYIYGYHYF
      YGVDYGYFYHVGVHUERQRMQMWRWNCBVICAVIVJVKXQXSXTNECHXKCKZXLXSXPXTXJDXKCVLYLXM
      WRXNWNXOXKCBVMXKCAVMVNVOVQVPXFWHWGWQXRVRWGWHWIWPXDVSWGWHWIWPXDVTEDBAWAWBW
      CWDWEWFVC $.

    $( Given ` A ` less than or equal to ` B ` , equal to ` B ` up to ` X ` ,
       and ` A ( X ) = 2o ` , then ` ( A |`` suc X ) = ( B |`` suc X ) ` .
       (Contributed by Scott Fenton, 6-Dec-2021.) $)
    nolesgn2ores $p |- ( ( ( A e. No /\ B e. No /\ X e. On ) /\
    ( ( A |` X ) = ( B |` X ) /\ ( A ` X ) = 2o ) /\ -. B <s A ) ->
    ( A |` suc X ) = ( B |` suc X ) ) $=
      ( vx csur wcel con0 w3a cres wceq cfv c2o wa wn cdm syl wne fvresd wfun
      c0 cslt wbr csuc cv wral cin dmres wss simp11 nodmord ndmfv c1o 2on elexi
      word prid2 nosgnn0i neeq1 mpbiri neneqd con4i adantl 3ad2ant2 df-ss sylib
      ordsucss syl5eq simp12 nolesgn2o eqtr4d eleq2d wo vex elsuc simp2l fveq1d
      sylc adantr simpr 3eqtr3d simp2r fveq2 eqeq12d syl5ibrcom jaod syl5bi imp
      ex 3eqtr4d sylbid ralrimiv wb nofun funres 3syl eqfunfv syl2anc mpbir2and
      ) AEFZBEFZCGFZHZACIZBCIZJZCAKZLJZMZBAUAUBNZHZACUCZIZBXKIZJZXLOZXMOZJZDUDZ
      XLKZXRXMKZJZDXOUEZXJXOXKXPXJXOXKAOZUFZXKAXKUGXJXKYCUHZYDXKJXJYCUOZCYCFZYE
      XJWSYFWSWTXAXHXIUIZAUJPXHXBYGXIXGYGXEYGXGYGNXFTJZXGNCAUKYIXFLYIXFLQTLQZLU
      LLLGUMUNUPUQZXFTLURUSUTPVAVBVCCYCVFVQXKYCVDVEVGZXJXPXKBOZUFZXKBXKUGXJXKYM
      UHZYNXKJXJYMUOZCYMFZYOXJWTYPWSWTXAXHXIVHZBUJPXJCBKZLJZYQABCVIZYQYTYQNYSTJ
      ZYTNCBUKUUBYSLUUBYSLQYJYKYSTLURUSUTPVAPCYMVFVQXKYMVDVEVGVJXJYADXOXJXRXOFX
      RXKFZYAXJXOXKXRYLVKXJUUCYAXJUUCMZXRAKZXRBKZXSXTXJUUCUUEUUFJZUUCXRCFZXRCJZ
      VLXJUUGXRCDVMVNXJUUHUUGUUIXJUUHUUGXJUUHMZXRXCKZXRXDKZUUEUUFXJUUKUULJUUHXJ
      XRXCXDXBXEXGXIVOVPVRUUJXRCAXJUUHVSZRUUJXRCBUUMRVTWHXJUUGUUIXFYSJXJXFLYSXB
      XEXGXIWAUUAVJUUIUUEXFUUFYSXRCAWBXRCBWBWCWDWEWFWGUUDXRXKAXJUUCVSZRUUDXRXKB
      UUNRWIWHWJWKXJXLSZXMSZXNXQYBMWLXJWSASUUOYHAWMXKAWNWOXJWTBSUUPYRBWMXKBWNWO
      DXLXMWPWQWR $.

  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Surreal Numbers: Ordering
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( Lemma for ~ sltso .  The sign expansion relationship totally orders the
       surreal signs.  (Contributed by Scott Fenton, 8-Jun-2011.) $)
    sltsolem1 $p |- { <. 1o , (/) >. , <. 1o , 2o >. , <. (/) , 2o >. }
                      Or ( { 1o , 2o } u. { (/) } ) $=
      ( vx vy vz c1o c2o c0 cop cv wbr wcel wceq wa w3o eqtr2 brtp expcom 3jaod
      mto ex ad2ant2lr ctp wor cpr csn cun wn 1n0 neii con0 wb 0elon csuc df-2o
      1on df-1o eqeq12i suc11 syl5bb nemtbir ancoms nsuceq0 eqeq1i 3pm3.2ni vex
      mp2an mtbir a1i w3a pm2.21i ad2ant2rl 3mix2 3jaoi imp syl2anb sylibr eltp
      wi eqtr3 3mix2d 3mix1d 3mix1 3mix3 biid 3orbi123i issoi df-tp soeq2 ax-mp
      3mix3d mpbi ) DEFUAZDFGDEGFEGUAZUBZDEUCFUDUEZWLUBZABCWKWLAHZWPWLIZUFWPWKJ
      ZWQWPDKZWPFKZLZWSWPEKZLZWTXBLZMXAXCXDXADFKZDFUGUHZWPDFNRXCEDKZXGDFUGDUIJZ
      FUIJZXGXEUJUNUKXGDULZFULZKXHXILXEEXJDXKUMUOUPDFUQURVEUSZXBWSXGWPEDNUTRXDE
      FKZXMXJFDVAEXJFUMVBUSZXBWTXMWPEFNUTRVCDFDEFEWPWPAVDZXOOVFVGWPBHZWLIZXPCHZ
      WLIZLZWPXRWLIZVQWRXPWKJZXRWKJVHXTWSXRFKZLZWSXREKZLZWTYELZMZYAXQWSXPFKZLZW
      SXPEKZLZWTYKLZMZXPDKZYCLZYOYELZYIYELZMZYHXSDFDEFEWPXPXOBVDZOZDFDEFEXPXRYT
      CVDZOYNYSYHYJYSYHVQYLYMYJYPYHYQYRYPYJYHYOYIYHYCWSYOYILZYHUUCXEXFXPDFNRVIZ
      VJPYQYJYHYOYIYHYEWSUUDVJPYJYRYHWSYEYHYIYIYFYDYGVKVJSQYLYPYHYQYRYLYPYHYKYO
      YHWSYCYKYOLZYHUUEXGXLXPEDNRVIZTSYLYQYHYKYOYHWSYEUUFTSYLYRYHYKYIYHWSYEYKYI
      LZYHUUGXMXNXPEFNRVIZTSQYMYPYHYQYRYMYPYHYKYOYHWTYCUUFTSYMYQYHYKYOYHWTYEUUF
      TSYMYRYHYKYIYHWTYEUUHTSQVLVMVNDFDEFEWPXRXOUUBOVOVGWRYBLYNWPXPKZYOWTLZYOXB
      LZYIXBLZMZMZXQUUIXPWPWLIZMWRWSXBWTMZYOYKYIMZUUNYBWPDEFXOVPXPDEFYTVPUUPUUQ
      UUNWSUUQUUNVQXBWTWSYOUUNYKYIWSYOUUNWSYOLUUIYNUUMWPXPDVRVSSWSYKUUNYLYNUUIU
      UMYLYJYMVKVTSWSYIUUNYJYNUUIUUMYJYLYMWAVTSQXBYOUUNYKYIYOXBUUNUUKUUMYNUUIUU
      KUUJUULVKWIPXBYKUUNXBYKLUUIYNUUMWPXPEVRVSSYIXBUUNUULUUMYNUUIUULUUJUUKWBWI
      PQWTYOUUNYKYIYOWTUUNUUJUUMYNUUIUUJUUKUULWAWIPWTYKUUNYMYNUUIUUMYMYJYLWBVTS
      WTYIUUNWTYILUUIYNUUMWPXPFVRVSSQVLVMVNXQYNUUIUUIUUOUUMUUAUUIWCDFDEFEXPWPYT
      XOOWDVOWEWKWNKWMWOUJDEFWFWKWNWLWGWHWJ $.
  $}

  ${
    $d f g x y $.
    $( Surreal less than totally orders the surreals.  Alling's axiom (O).
       (Contributed by Scott Fenton, 9-Jun-2011.) $)
    sltso $p |- <s Or No $=
      ( vx vy vf vg c1o c2o cpr c0 cop cslt csur sltsolem1 df-no df-slt nosgnn0
      ctp soseq ) ABEFGEHIEFIHFIPJCDKLCAMABCDNOQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Surreal Numbers: Birthday Function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    $( The birthday function maps the surreals onto the ordinals.  Alling's
       axiom (B).  (Shortened proof on 2012-Apr-14, SF).  (Contributed by Scott
       Fenton, 11-Jun-2011.) $)
    bdayfo $p |- bday : No -onto-> On $=
      ( vx vy csur con0 cbday wfo wfn crn wceq cdm wcel wral dmexg rgen df-bday
      cv cvv mptfng mpbi c1o wrex cab rnmpt csn cxp noxp1o c0 wne 1on snnz dmxp
      elexi ax-mp eqcomi dmeq eqeq2d rspcev sylancl wi nodmon eleq1a syl impbii
      rexlimiv abbi2i eqtr4i df-fo mpbir2an ) CDEFECGZEHZDIAPZJZQKZACLVIVMACVKC
      MNACVLEAOZRSVJBPZVLIZACUAZBUBDABCVLEVNUCVQBDVODKZVQVRVOTUDZUEZCKVOVTJZIZV
      QVOUFWAVOVSUGUHWAVOITTDUIULUJVOVSUKUMUNVPWBAVTCVKVTIVLWAVOVKVTUOUPUQURVPV
      RACVKCKVLDKVPVRUSVKUTVLDVOVAVBVDVCVEVFCDEVGVH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Surreal Numbers: Density
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The value of a surreal at its birthday is ` (/) ` .  (Contributed by Scott
     Fenton, 14-Jun-2011.)  (Proof shortened by SF, 14-Apr-2012.) $)
  fvnobday $p |- ( A e. No -> ( A ` ( bday ` A ) ) = (/) ) $=
    ( csur wcel cbday cfv wn c0 wceq bdayval word nodmord ordirr eqneltrd ndmfv
    cdm syl ) ABCZADEZAOZCFRAEGHQRSSAIQSJSSCFAKSLPMRANP $.


  ${
    $d A x $.  $d B x $.
    $( Lemma for ~ nosepne .  (Contributed by Scott Fenton, 24-Nov-2021.) $)
    nosepnelem $p |- ( ( A e. No /\ B e. No /\ A <s B ) ->
       ( A ` |^| { x e. On | ( A ` x ) =/= ( B ` x ) } ) =/=
       ( B ` |^| { x e. On | ( A ` x ) =/= ( B ` x ) } ) ) $=
      ( csur wcel wbr cfv wne con0 wa c1o cop c2o wceq fvex simpl simpr neeq12d
      c0 mpbiri cslt cv crab cint ctp sltval2 w3o brtp csuc df-2o df-1o eqeq12i
      1n0 wb 1on 0elon suc11 mp2an bitri necon3bii mpbir necomi 2on elexi prid2
      nosgnn0i 3jaoi sylbi syl6bi 3impia ) BDEZCDEZBCUAFZAUBZBGVNCGHAIUCUDZBGZV
      OCGZHZVKVLJVMVPVQKSLKMLSMLUEFZVRBCAUFVSVPKNZVQSNZJZVTVQMNZJZVPSNZWCJZUGVR
      KSKMSMVPVQVOBOVOCOUHWBVRWDWFWBVRKSHZUMWBVPKVQSVTWAPVTWAQRTWDVRKMHMKMKHWGU
      MMKKSMKNKUIZSUIZNZKSNZMWHKWIUJUKULKIESIEWJWKUNUOUPKSUQURUSUTVAVBWDVPKVQMV
      TWCPVTWCQRTWFVRSMHMKMMIVCVDVEVFWFVPSVQMWEWCPWEWCQRTVGVHVIVJ $.

    $( The value of two non-equal surreals at the first place they differ is
       different.  (Contributed by Scott Fenton, 24-Nov-2021.) $)
    nosepne $p |- ( ( A e. No /\ B e. No /\ A =/= B ) ->
       ( A ` |^| { x e. On | ( A ` x ) =/= ( B ` x ) } ) =/=
       ( B ` |^| { x e. On | ( A ` x ) =/= ( B ` x ) } ) ) $=
      ( csur wcel wne cv cfv con0 crab cint wa cslt wbr wo wb nosepnelem 3expia
      necom fveq2i wor sltso sotrine mpan w3a a1i rabbiia inteqi neeq12i sylibr
      wi bitri ancoms jaod sylbid 3impia ) BDEZCDEZBCFZAGZBHZUTCHZFZAIJZKZBHZVE
      CHZFZUQURLZUSBCMNZCBMNZOZVHDMUAVIUSVLPUBDBCMUCUDVIVJVHVKUQURVJVHABCQRURUQ
      VKVHUKURUQVKVHURUQVKUEVBVAFZAIJZKZCHZVOBHZFZVHACBQVHVQVPFVRVFVQVGVPVEVOBV
      DVNVCVMAIVCVMPUTIEVAVBSUFUGUHZTVEVOCVSTUIVQVPSULUJRUMUNUOUP $.
  $}


  ${
    $d A x $.  $d B x $.
    $( If the value of a surreal at a separator is ` 1o ` then the surreal is
       lesser.  (Contributed by Scott Fenton, 7-Dec-2021.) $)
    nosep1o $p |- ( ( ( A e. No /\ B e. No /\ A =/= B ) /\
     ( A ` |^| { x e. On | ( A ` x ) =/= ( B ` x ) } ) = 1o ) ->
     A <s B ) $=
      ( csur wcel wne w3a cv cfv con0 c1o wceq wa wbr c0 cop c2o w3o wo syl ctp
      crab cint cslt simpr wn nosepne adantr eqnetrrd necomd neneqd simpl2 nofv
      3orel2 sylc eqid jctil andi sylib 3mix1 3mix2 jaoi elexi fvex brtp sylibr
      1on eqbrtrd wb simpl1 sltval2 syl2anc mpbird ) BDEZCDEZBCFZGZAHZBIVRCIFAJ
      UBUCZBIZKLZMZBCUDNZVTVSCIZKOPKQPOQPUAZNZWBVTKWDWEVQWAUEZWBKKLZWDOLZMZWHWD
      QLZMZKOLWKMZRZKWDWENWBWJWLSZWNWBWHWIWKSZMWOWBWPWHWBWDKLZUFWIWQWKRZWPWBWDK
      WBKWDWBVTKWDWGVQVTWDFWAABCUGUHUIUJUKWBVOWRVNVOVPWAULZCVSUMTWIWQWKUNUOKUPU
      QWHWIWKURUSWJWNWLWJWLWMUTWLWJWMVAVBTKOKQOQKWDKJVGVCVSCVDVEVFVHWBVNVOWCWFV
      IVNVOVPWAVJWSBCAVKVLVM $.
  $}


  ${
    $d A x $.  $d B x $.
    $( Lemma for ~ nosepdm .  (Contributed by Scott Fenton, 24-Nov-2021.) $)
    nosepdmlem $p |- ( ( A e. No /\ B e. No /\ A <s B ) ->
       |^| { x e. On | ( A ` x ) =/= ( B ` x ) } e. ( dom A u. dom B ) ) $=
      ( csur wcel wbr cfv wne con0 cdm wo wn wi wa c1o c0 cop c2o wceq syl cslt
      w3a cv crab cint cun ctp sltval2 w3o fvex df-3or ndmfv 1on elexi nosgnn0i
      prid1 neeq1 mpbiri neneqd intnanrd ioran sylanbrc adantl orel1 syl5bi 2on
      brtp prid2 con4i syl6 ex com23 sylbid 3impia orrd elun sylibr ) BDEZCDEZB
      CUAFZUBZAUCZBGWBCGHAIUDUEZBJZEZWCCJZEZKWCWDWFUFEWAWEWGVRVSVTWELZWGMZVRVSN
      ZVTWCBGZWCCGZOPQORQPRQUGFZWIBCAUHWMWKOSZWLPSZNZWNWLRSZNZWKPSZWQNZUIZWJWIO
      PORPRWKWLWCBUJWCCUJVGWJWHXAWGWJWHXAWGMWJWHNZXAWTWGXAWPWRKZWTKZXBWTWPWRWTU
      KXBXCLZXDWTMWHXEWJWHWSXEWCBULWSWPLWRLXEWSWNWOWSWKOWSWKOHPOHOOROIUMUNUPUOW
      KPOUQURUSZUTWSWNWQXFUTWPWRVAVBTVCXCWTVDTVEWQWGWSWGWQWGLZWLRXGWOWLRHZWCCUL
      WOXHPRHRORRIVFUNVHUOWLPRUQURTUSVIVCVJVKVLVEVMVNVOWCWDWFVPVQ $.

    $( The first place two surreals differ is an element of the larger of their
       domains.  (Contributed by Scott Fenton, 24-Nov-2021.) $)
    nosepdm $p |- ( ( A e. No /\ B e. No /\ A =/= B ) ->
       |^| { x e. On | ( A ` x ) =/= ( B ` x ) } e. ( dom A u. dom B ) ) $=
      ( csur wcel wne cv cfv con0 crab cint cdm cun wa wbr wo wor wb nosepdmlem
      cslt sltso sotrine 3expa simplr simpll simpr syl3anc necom rabbiia inteqi
      mpan a1i uncom 3eltr4g jaodan ex sylbid 3impia ) BDEZCDEZBCFZAGZBHZVBCHZF
      ZAIJZKZBLZCLZMZEZUSUTNZVABCTOZCBTOZPZVKDTQVLVAVORUADBCTUBUKVLVOVKVLVMVKVN
      USUTVMVKABCSUCVLVNNZVDVCFZAIJZKZVIVHMZVGVJVPUTUSVNVSVTEUSUTVNUDUSUTVNUEVL
      VNUFACBSUGVFVRVEVQAIVEVQRVBIEVCVDUHULUIUJVHVIUMUNUOUPUQUR $.
  $}

  ${
    $d A x $.  $d B x $.  $d X x $.
    $( The values of two surreals at a point less than their separators are
       equal.  (Contributed by Scott Fenton, 6-Dec-2021.) $)
    nosepeq $p |- ( ( ( A e. No /\ B e. No /\ A =/= B ) /\
     X e. |^| { x e. On | ( A ` x ) =/= ( B ` x ) } ) ->
     ( A ` X ) = ( B ` X ) ) $=
      ( csur wcel wne w3a cv cfv con0 crab cint wa wn wceq nosepon onelon sylan
      fveq2 simpr neeq12d onnminsb sylc df-ne con2bii sylibr ) BEFCEFBCGHZDAIZB
      JZUICJZGZAKLMZFZNZDBJZDCJZGZOZUPUQPZUODKFZUNUSUHUMKFUNVAABCQUMDRSUHUNUAUL
      URADUIDPUJUPUKUQUIDBTUIDCTUBUCUDURUTUPUQUEUFUG $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( Given two non-equal surreals, their separator is less than or equal to
       the domain of one of them.  Part of Lemma 2.1.1 of [Lipparini] p. 3.
       (Contributed by Scott Fenton, 6-Dec-2021.) $)
    nosepssdm $p |- ( ( A e. No /\ B e. No /\ A =/= B ) ->
      |^| { x e. On | ( A ` x ) =/= ( B ` x ) } C_ dom A ) $=
      ( csur wcel wne cfv con0 cdm wn wceq wa c0 wi word nodmord 3ad2ant1 ndmfv
      wss syl w3a cv crab cint nosepne neneqd ordn2lp sylibr imp nosepeq simpl1
      imnan ordirr 3syl eqeq1d eqcom syl6bb crn wb simpl2 nofun c1o c2o nosgnn0
      wfun cpr norn sseld mtoi funeldmb syl2anc necon2bbid ordtr1 expdimp con3d
      3ad2ant2 sylbid mpd eqtr4d mtand nosepon nodmon ontri1 mpbird ) BDEZCDEZB
      CFZUAZAUBZBGWICGFAHUCUDZBIZSZWKWJEZJZWHWMWJBGZWJCGZKWHWOWPABCUEUFWHWMLZWO
      MWPWQWJWKEZJZWOMKWHWMWSWHWMWRLJZWMWSNWHWKOZWTWEWFXAWGBPZQWKWJUGTWMWRULUHU
      IWJBRTWQWJCIZEZJZWPMKWQWKBGZWKCGZKZXEABCWKUJWQXHXGMKZXEWQXHMXGKXIWQXFMXGW
      QXAWKWKEJXFMKWQWEXAWEWFWGWMUKXBTWKUMWKBRUNUOMXGUPUQWQXIWKXCEZJXEWQXJXGMWQ
      CVEZMCURZEZJXJXGMFUSWQWFXKWEWFWGWMUTZCVATWQXMMVBVCVFZEVDWQXLXOMWQWFXLXOSX
      NCVGTVHVIWKCVJVKVLWQXDXJWHWMXDXJWHXCOZWMXDLXJNWFWEXPWGCPVPWKWJXCVMTVNVOVQ
      VQVRWJCRTVSVTWHWJHEWKHEZWLWNUSABCWAWEWFXQWGBWBQWJWKWCVKWD $.
  $}

  ${
    $d A a $.  $d B a $.
    $( Lemma for ~ nodense .  Show that a particular abstraction is an ordinal.
       (Contributed by Scott Fenton, 16-Jun-2011.) $)
    nodenselem4 $p |- ( ( ( A e. No /\ B e. No ) /\ A <s B ) ->
                        |^| { a e. On | ( A ` a ) =/= ( B ` a ) } e. On ) $=
      ( csur wcel wa cslt wbr wne cv con0 crab cint simpll simplr wn wceq sltso
      cfv wor sonr mpan adantr breq2 notbid syl5ibcom necon2ad nosepon syl3anc
      imp ) ADEZBDEZFZABGHZFUKULABIZCJZASUPBSICKLMKEUKULUNNUKULUNOUMUNUOUMUNABU
      MAAGHZPZABQZUNPUKURULDGTUKURRDAGUAUBUCUSUQUNABAGUDUEUFUGUJCABUHUI $.
  $}

  ${
    $d A a x $.  $d B a x $.
    $( Lemma for ~ nodense .  If the birthdays of two distinct surreals are
       equal, then the ordinal from ~ nodenselem4 is an element of that
       birthday.  (Contributed by Scott Fenton, 16-Jun-2011.) $)
    nodenselem5 $p |- ( ( ( A e. No /\ B e. No ) /\
                            ( ( bday ` A ) = ( bday ` B ) /\ A <s B ) ) ->
                          |^| { a e. On | (
                                     A ` a ) =/= ( B ` a ) } e.
                          ( bday ` A ) ) $=
      ( csur wcel wa cbday cfv wceq cslt wbr cv wne con0 cdm cun wn bdayval syl
      crab cint simpll simplr wi wor sltso sonr breq2 notbid syl5ibcom necon2ad
      mpan adantr adantrl nosepdm syl3anc unidm simprl syl5reqr uneq12d 3eqtr3d
      imp uneq2d eleqtrd eleqtrrd ) ADEZBDEZFZAGHZBGHZIZABJKZFZFZCLZAHVOBHMCNTU
      AZAOZVIVNVPVQBOZPZVQVNVFVGABMZVPVSEVFVGVMUBZVFVGVMUCZVHVLVTVKVHVLVTVFVLVT
      UDVGVFVLABVFAAJKZQZABIZVLQDJUEVFWDUFDAJUGULWEWCVLABAJUHUIUJUKUMVBUNCABUOU
      PVNVIVJPZVIVSVQVNVIVIVIPWFVIUQVNVIVJVIVHVKVLURVCUSVNVIVQVJVRVNVFVIVQIWAAR
      SZVNVGVJVRIWBBRSUTWGVAVDWGVE $.
  $}

  ${
    $d A a x $.  $d B a x $.
    $( The restriction of a surreal to the abstraction from ~ nodenselem4 is
       still a surreal.  (Contributed by Scott Fenton, 16-Jun-2011.) $)
    nodenselem6 $p |- ( ( ( A e. No /\ B e. No ) /\
                        ( ( bday ` A ) = ( bday ` B ) /\ A <s B ) ) ->
                        ( A |` |^| { a e. On | (
                                     A ` a ) =/= ( B ` a ) } ) e. No ) $=
      ( csur wcel wa cbday cfv wceq cslt wbr cv con0 crab cint cres nodenselem4
      wne simpll adantrl noreson syl2anc ) ADEZBDEZFZAGHBGHIZABJKZFZFUCCLZAHUIB
      HRCMNOZMEZAUJPDEUCUDUHSUEUGUKUFABCQTAUJUAUB $.
  $}

  ${
    $d A a $.  $d B a $.  $d C a $.
    $( Lemma for ~ nodense . ` A ` and ` B ` are equal at all elements of the
       abstraction.  (Contributed by Scott Fenton, 17-Jun-2011.) $)
    nodenselem7 $p |- ( ( ( A e. No /\ B e. No ) /\
                        ( ( bday ` A ) = ( bday ` B ) /\ A <s B ) ) ->
                        ( C e. |^| { a e. On | ( A ` a ) =/= ( B ` a ) }
                          -> ( A ` C ) = ( B ` C ) ) ) $=
      ( csur wcel wa cbday cfv wceq cslt wbr cv wne con0 crab cint w3a simpll
      wn simplr wor sltso sonr mpan breq2 syl5ibcom necon2ad imp ad2ant2rl 3jca
      notbid nosepeq sylan ex ) AEFZBEFZGAHIBHIJZABKLZGZGZCDMZAIVBBINDOPQFZCAIC
      BIJZVAUPUQABNZRVCVDVAUPUQVEUPUQUTSUPUQUTUAUPUSVEUQURUPUSVEUPUSABUPAAKLZTZ
      ABJZUSTEKUBUPVGUCEAKUDUEVHVFUSABAKUFULUGUHUIUJUKDABCUMUNUO $.
  $}

  ${
    $d A a $.  $d B a $.
    $( Lemma for ~ nodense .  Give a condition for surreal less than when two
       surreals have the same birthday.  (Contributed by Scott Fenton,
       19-Jun-2011.) $)
    nodenselem8 $p |- ( ( A e. No /\ B e. No /\
                            ( bday ` A ) = ( bday ` B ) ) ->
                          ( A <s B <->
                            ( ( A `
                                |^| { a e. On | ( A ` a ) =/= ( B ` a ) } ) =
                              1o /\
                              ( B `
                                |^| { a e. On | ( A ` a ) =/= ( B ` a ) } ) =
                              2o ) ) ) $=
      ( csur wcel cbday cfv wceq wbr c1o c2o wa wi 3impia c0 cop wn nosgnn0 crn
      fvex w3a cslt cv wne con0 crab cint nodenselem5 exp32 ctp sltval2 3adant3
      wb w3o brtp eleq2 biimpd cpr nofnbday fnfvelrn eleq1 syl5ibcom sylan norn
      wfn sseld adantr syld mtoi ex adantl syl9r imp intnand 3ad2antl1 intnanrd
      3orel13 syl2anc com23 syl5bi sylbid mpdd 3mix2 sylibr syl5ibr impbid ) AD
      EZBDEZAFGZBFGZHZUAZABUBIZCUCZAGWNBGUDCUEUFUGZAGZJHZWOBGZKHZLZWLWMWOWIEZWT
      WGWHWKWMXAMWGWHLZWKWMXAABCUHUINWLWMWPWRJOPJKPOKPUJIZXAWTMZWGWHWMXCUMWKABC
      UKULZXCWQWROHZLZWTWPOHZWSLZUNZWLXDJOJKOKWPWRWOATWOBTUOZWLXAXJWTWLXAXJWTMZ
      WLXALZXGQXIQXLXMXFWQWLXAXFQZWGWHWKXAXNMWKXAWOWJEZXBXNWKXAXOWIWJWOUPUQWHXO
      XNMWGWHXOXNWHXOLZXFOJKURZEZRXPXFOBSZEZXRWHBWJVEZXOXFXTMBUSYAXOLWRXSEXFXTW
      JWOBUTWROXSVAVBVCWHXTXRMXOWHXSXQOBVDVFVGVHVIVJVKVLNVMVNXMXHWSWGWHXAXHQWKW
      GXALZXHXRRYBXHOASZEZXRWGAWIVEZXAXHYDMAUSYEXALWPYCEXHYDWIWOAUTWPOYCVAVBVCW
      GYDXRMXAWGYCXQOAVDVFVGVHVIVOVPXGWTXIVQVRVJVSVTWAWBWTWMWLXCWTXJXCWTXGXIWCX
      KWDXEWEWF $.
  $}

  ${
    $d A a x y $.  $d B a x y $.
    $( Given two distinct surreals with the same birthday, there is an older
       surreal lying between the two of them.  Alling's axiom (SD).
       (Contributed by Scott Fenton, 16-Jun-2011.) $)
    nodense $p |- ( ( ( A e. No /\ B e. No ) /\
                      ( ( bday ` A ) = ( bday ` B ) /\ A <s B ) ) ->
                    E. x e. No ( ( bday ` x ) e. ( bday ` A ) /\
                                 A <s x /\ x <s B ) ) $=
      ( va vy csur wcel wa cbday cfv wceq cslt wbr cv con0 wral c1o c2o fveq2
      c0 wne crab cint cres w3a nodenselem6 cdm bdayval syl cin wss nodenselem5
      wrex dmres wfo wf bdayfo ax-mp 0elon f0cli onelssi ad2antrr sseqtrd df-ss
      fof sylib syl5eq eqtrd eqeltrd cop ctp nodenselem4 adantrl wi nodenselem8
      w3o biimpd 3expia imp32 simpld eqid jctir 3mix1d fvex 0ex sylibr fvnobday
      brtp fveq2d eqtr3d breqtrrd fvres eqcomd rgen jctil raleq breq12d anbi12d
      rspcev wb simpll sltval mpbird adantl nodenselem7 ralrimiva simprd 3mix3d
      syl2anc imp eqbrtrd syl12anc simplr eleq1d breq2 breq1 3anbi123d syl13anc
      ) BFGZCFGZHZBIJZCIJKZBCLMZHZHZBDNZBJYGCJUADOUBUCZUDZFGZYIIJZYBGZBYILMZYIC
      LMZANZIJZYBGZBYOLMZYOCLMZUEZAFUMBCDUFZYFYKYHYBYFYKYIUGZYHYFYJYKUUBKUUAYIU
      HUIYFUUBYHBUGZUJZYHBYHUNYFYHUUCUKUUDYHKYFYHYBUUCYFYHYBGYHYBUKBCDULZYBYHFO
      BIFOIUOFOIUPUQFOIVEURUSUTVAUIXSYBUUCKXTYEBUHVBVCYHUUCVDVFVGVHZUUEVIYFYMEN
      ZBJZUUGYIJZKZEYOPZYOBJZYOYIJZQTVJQRVJTRVJVKZMZHZAOUMZYFYHOGZUUJEYHPZYHBJZ
      YHYIJZUUNMZHZUUQYAYDUURYCBCDVLVMZYFUVBUUSYFUUTTUVAUUNYFUUTQKZTTKZHZUVETRK
      ZHZUUTTKUVHHZVPUUTTUUNMYFUVGUVIUVJYFUVEUVFYFUVEYHCJZRKZYAYCYDUVEUVLHZXSXT
      YCYDUVMVNXSXTYCUEYDUVMBCDVOVQVRVSZVTTWAZWBWCQTQRTRUUTTYHBWDWEWHWFYFYKYIJZ
      UVATYFYKYHYIUUFWIYFYJUVPTKUUAYIWGUIWJZWKUUJEYHUUGYHGZUUIUUHUUGYHBWLWMZWNW
      OUUPUVCAYHOYOYHKZUUKUUSUUOUVBUUJEYOYHWPUVTUULUUTUUMUVAUUNYOYHBSYOYHYISZWQ
      WRWSXIYFXSYJYMUUQWTXSXTYEXAUUAAEBYIXBXIXCYFYNUUIUUGCJZKZEYOPZUUMYOCJZUUNM
      ZHZAOUMZYFUURUWCEYHPZUVAUVKUUNMZUWHUVDYFUWCEYHYFUVRHUUHUUIUWBUVRUUJYFUVSX
      DYFUVRUUHUWBKBCUUGDXEXJWJXFYFUVATUVKUUNUVQYFTQKZUVKTKHZUWKUVLHZUVFUVLHZVP
      TUVKUUNMYFUWNUWLUWMYFUVLUVFYFUVEUVLUVNXGUVOWOXHQTQRTRTUVKWEYHCWDWHWFXKUWG
      UWIUWJHAYHOUVTUWDUWIUWFUWJUWCEYOYHWPUVTUUMUVAUWEUVKUUNUWAYOYHCSWQWRWSXLYF
      YJXTYNUWHWTUUAXSXTYEXMAEYICXBXIXCYTYLYMYNUEAYIFYOYIKZYQYLYRYMYSYNUWOYPYKY
      BYOYIISXNYOYIBLXOYOYICLXPXQWSXR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Surreal Numbers: Full-Eta Property
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The theorems in this section are derived from "A clean way to separate
     sets of surreals" by Paolo Lipparini at
     ~ https://arxiv.org/abs/1712.03500 . $)

  $( Lemma for full-eta properties.  The successor of the union of the image of
     the birthday function under a set is an ordinal.  (Contributed by Scott
     Fenton, 20-Aug-2011.) $)
  bdayimaon $p |- ( A e. V -> suc U. ( bday " A ) e. On ) $=
    ( wcel cbday cima cuni word cvv wa csuc con0 wfun csur wfo bdayfo funimaexg
    fofun ax-mp mpan uniexg syl wss crn imassrn wceq forn sseqtri jctil sucelon
    ssorduni elon2 bitr3i sylib ) ABCZDAEZFZGZUPHCZIZUPJKCZUNURUQUNUOHCZURDLZUN
    VAMKDNZVBOMKDQRDABPSUOHTUAUOKUBUQUODUCZKDAUDVCVDKUEOMKDUFRUGUOUJRUHUSUPKCUT
    UPUKUPUIULUM $.

  $( Lemma for ~ nolt02o .  If ` A ( X ) ` is undefined with ` A ` surreal and
     ` X ` ordinal, then ` dom A C_ X ` .  (Contributed by Scott Fenton,
     6-Dec-2021.) $)
  nolt02olem $p |- ( ( A e. No /\ X e. On /\ ( A ` X ) = (/) ) ->
     dom A C_ X ) $=
    ( csur wcel con0 cfv c0 wceq w3a cdm wss wn c1o c2o cpr nosgnn0 wa 3ad2ant1
    a1i simpl3 crn simpl1 norn wfun nofun fvelrn sylan sseldd eqeltrrd mtand wb
    syl nodmon simp2 ontri1 syl2anc mpbird ) ACDZBEDZBAFZGHZIZAJZBKZBVCDZLZVBVE
    GMNOZDZVHLVBPSVBVEQZUTGVGURUSVAVETVIAUAZVGUTVIURVJVGKURUSVAVEUBAUCULVBAUDZV
    EUTVJDURUSVKVAAUERBAUFUGUHUIUJVBVCEDZUSVDVFUKURUSVLVAAUMRURUSVAUNVCBUOUPUQ
    $.

  ${
    $d A x y $.  $d B x y $.  $d X x y $.
    $( Given ` A ` less than ` B ` , equal to ` B ` up to ` X ` , and undefined
       at ` X ` , then ` B ( X ) = 2o ` .  (Contributed by Scott Fenton,
       6-Dec-2021.) $)
    nolt02o $p |- ( ( ( A e. No /\ B e. No /\ X e. On ) /\
        ( ( A |` X ) = ( B |` X ) /\ A <s B ) /\ ( A ` X ) = (/) ) ->
        ( B ` X ) = 2o ) $=
      ( vy vx csur wcel con0 wceq cslt wbr wa cfv c0 c2o c1o syl2anc bitri w3o
      wn w3a cres simp11 wor sltso sonr mpan syl simp2r syl5ibrcom mtod simpl2l
      breq2 wrel cdm wss simpl11 nofun funrel simpl13 simpl3 nolt02olem syl3anc
      wfun 3syl relssres simpl12 simpr 3eqtr3d mtand cv wral cop ctp wi wrex wb
      simp12 sltval mpbid df-an rexbii rexnal sylib elexi nosgnn0i neii simpll3
      1on prid1 simplr eqeq1 anbi1d eqtr2 syl6bi com12 mtoi simplrr fveq2 rspcv
      eqeq12d sylc simprl adantr ontri1 mpbird onsseleq ancoms csuc df-1o df-2o
      mto eqeq12i 0elon suc11 mp2an nemtbir 2on prid2 3pm3.2i fvex brtp con2bii
      wo 3oran mpbi fveq1d breq2d mtbii breq12d notbid syl5ibcom intnanr intnan
      fvres 0ex mtbiri jaod sylbid 3orrot mpd expr ralrimiva nofv ecase23d ) AF
      GZBFGZCHGZUAZACUBZBCUBZIZABJKZLZCAMZNIZUAZCBMZOIZUURNIZUURPIZUUQUUTABIZUU
      QUVBAAJKZUUQUUFUVCTZUUFUUGUUHUUNUUPUCZFJUDUUFUVDUEFAJUFUGUHUUQUVCUVBUUMUU
      IUULUUMUUPUIZABAJUMUJUKUUQUUTLZUUJUUKABUULUUMUUIUUPUUTULUVGAUNZAUOCUPZUUJ
      AIUVGUUFAVDUVHUUFUUGUUHUUNUUPUUTUQZAURAUSVEUVGUUFUUHUUPUVIUVJUUFUUGUUHUUN
      UUPUUTUTZUUIUUNUUPUUTVAACVBVCACVFQUVGBUNZBUOCUPZUUKBIUVGUUGBVDUVLUUFUUGUU
      HUUNUUPUUTVGZBURBUSVEUVGUUGUUHUUTUVMUVNUVKUUQUUTVHBCVBVCBCVFQVIVJUUQUVADV
      KZAMZUVOBMZIZDEVKZVLZUVSAMZUVSBMZPNVMPOVMNOVMVNZKZTZVOZEHVLZUUQUVTUWDLZEH
      VPZUWGTZUUQUUMUWIUVFUUQUUFUUGUUMUWIVQUVEUUFUUGUUHUUNUUPVRZEDABVSQVTUWIUWF
      TZEHVPUWJUWHUWLEHUVTUWDWAWBUWFEHWCRWDUUQUVALZUWFEHUWMUVSHGZUVTUWEUWMUWNUV
      TLZLZUVSCUPZUWEUWPUWQCUVSGZTZUWPUWRUUOUURIZUWPUWTNPIZNPPPOPHWIWEZWJWFZWGZ
      UWPUUPUVAUWTUXAVOUUIUUNUUPUVAUWOWHZUUQUVAUWOWKZUWTUUPUVALZUXAUWTUXGUUTUVA
      LUXAUWTUUPUUTUVAUUOUURNWLWMUURNPWNWOWPQWQUWPUWRLUWRUVTUWTUWPUWRVHUWMUWNUV
      TUWRWRUVRUWTDCUVSUVOCIUVPUUOUVQUURUVOCAWSUVOCBWSXAWTXBVJUWPUWNUUHUWQUWSVQ
      UWMUWNUVTXCZUWMUUHUWOUUFUUGUUHUUNUUPUVAUTXDZUVSCXEQXFUWPUWQUVSCGZUVSCIZYD
      ZUWEUWPUWNUUHUWQUXLVQUXHUXIUVSCXGQUWPUXJUWEUXKUWPUVSUUJMZUVSUUKMZUWCKZTUX
      JUWEUWPUXMUXMUWCKZUXOUXMPIZUXMNIZLZTZUXQUXMOIZLZTZUXRUYALZTZUAZUXPTUXTUYC
      UYEUXSUXAUXDUXRUXQUXAUXMNPWNXHXLUYBPOIZUYGNPUXCUYGNXIZPXIZIZUXAPUYHOUYIXJ
      XKXMNHGPHGUYJUXAVQXNWINPXOXPRXQZUXMPOWNXLUYDNOINOOPOOHXRWEXSWFWGUXMNOWNXL
      XTUXPUYFUXPUXSUYBUYDSUYFTPNPONOUXMUXMUVSUUJYAZUYLYBUXSUYBUYDYERYCYFUWPUXM
      UXNUXMUWCUWPUVSUUJUUKUWMUULUWOUULUUMUUIUUPUVAULXDYGYHYIUXJUXOUWDUXJUXMUWA
      UXNUWBUWCUVSCAYOUVSCBYOYJYKYLUWPUWEUXKUUOUURUWCKZTUWPUYMNPUWCKZUXAPNIZLZT
      ZUXAUYGLZTZNNIZUYGLZTZUAZUYNTUYQUYSVUBUXAUYOUXDYMUXAUYGUXDYMUYGUYTUYKYNXT
      UYNVUCUYNUYPUYRVUASVUCTPNPONONPYPUXBYBUYPUYRVUAYERYCYFUWPUUONUURPUWCUXEUX
      FYJYQUXKUWDUYMUXKUWAUUOUWBUURUWCUVSCAWSUVSCBWSYJYKUJYRYSUUAUUBUUCVJUUQUUT
      UVAUUSSZUUSUUTUVASZUUQUUGVUDUWKBCUUDUHVUDUVAUUSUUTSVUEUUTUVAUUSYTUVAUUSUU
      TYTRWDUUE $.
  $}

  ${
    $d S g x $.  $d U g x $.  $d A g x $.
    $( Restriction law for surreals.  Lemma 2.1.4 of [Lipparini] p. 3.
       (Contributed by Scott Fenton, 5-Dec-2021.) $)
    noresle $p |- ( ( ( U e. No /\ S e. No ) /\
      ( dom U C_ A /\ dom S C_ A /\
        A. g e. A -. ( S |` suc g ) <s ( U |` suc g ) ) ) ->
      -. S <s U ) $=
      ( vx wss cres cslt wbr wn csur wcel wa wceq sltso mpan cfv con0 syl3anc
      wi cdm csuc wral w3a cun unss ssralv sylbi 3impia breq1 notbid biimpd wor
      cv sonr adantr impel adantrr wne simprl crab cint simprll simprlr nosepne
      ex simpl nosepon sucidg syl fvresd 3netr4d neneqd fveq1 nsyl simprr suceq
      nosepdm reseq2d breq12d rspcv w3o suceloni noreson syl2anc solin ecase23d
      sylc sltres mpd soasym pm2.61ine sylan2 ) CUAZAFZBUAZAFZBDUNZUBZGZCWSGZHI
      ZJZDAUCZUDCKLZBKLZMZXCDWNWPUEZUCZBCHIZJZWOWQXDXIWOWQMXHAFXDXITWNWPAUFXCDX
      HAUGUHUIXGXIMZXKTCBCBNZXLXKXMXGXKXIXMCCHIZJZXKXGXMXOXKXMXNXJCBCHUJUKULXEX
      OXFKHUMZXEXOOKCHUOPUPUQURVFCBUSZXLXKXQXLMZXGCBHIZXKXQXGXIUTXRCEUNZCQXTBQU
      SERVAVBZUBZGZBYBGZHIZXSXRYEYCYDNZYDYCHIZXRYAYCQZYAYDQZNYFXRYHYIXRYACQZYAB
      QZYHYIXRXEXFXQYJYKUSXQXEXFXIVCZXQXEXFXIVDZXQXLVGZECBVESXRYAYBCXRYARLZYAYB
      LXRXEXFXQYOYLYMYNECBVHSZYARVIVJZVKXRYAYBBYQVKVLVMYAYCYDVNVOXRYAXHLZXIYGJZ
      XRXEXFXQYRYLYMYNECBVRSXQXGXIVPXCYSDYAXHWRYANZXBYGYTWTYDXAYCHYTWSYBBWRYAVQ
      ZVSYTWSYBCUUAVSVTUKWAWHXRYCKLZYDKLZYEYFYGWBZXRXEYBRLZUUBYLXRYOUUEYPYAWCVJ
      ZCYBWDWEXRXFUUEUUCYMUUFBYBWDWEXPUUBUUCMUUDOKYCYDHWFPWEWGXRXEXFUUEYEXSTYLY
      MUUFCBYBWISWJXPXGXSXKTOKHCBWKPWHVFWLWM $.
  $}

  ${
    $d S x y $.
    $( A class of surreals has at most one maximum.  (Contributed by Scott
       Fenton, 5-Dec-2021.) $)
    nomaxmo $p |- ( S C_ No -> E* x e. S A. y e. S -. x <s y ) $=
      ( csur wss cv cslt ccnv wbr wral wrmo wor sltso soss mpi cnvso sylib somo
      wn vex syl brcnv notbii ralbii rmobii ) CDEZBFZAFZGHZIZSZBCJZACKZUHUGGIZS
      ZBCJZACKUFCUILZUMUFCGLZUQUFDGLURMCDGNOCGPQABCUIRUAULUPACUKUOBCUJUNUGUHGBT
      ATUBUCUDUEQ $.

    $d A p u v x y $.  $d G p u v x y $.
    $( In any class of surreals, there is at most one value of the prefix
       property.  (Contributed by Scott Fenton, 26-Nov-2021.) $)
    noprefixmo $p |- ( A C_ No ->
       E* x E. u e. A ( G e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc G ) = ( v |` suc G ) ) /\
       ( u ` G ) = x ) ) $=
      ( vp vy csur cv wcel cslt wbr wn cres wceq wi cfv w3a wrex wa wss cdm weq
      csuc wal wmo reeanv cif simplrr simplrl ifcld iftrue adantr simpll sseldd
      wral wor sltso soasym mpan syl2anc impcom eqnbrtrd iffalse sonr pm2.61ian
      syl adantl simpl simpr1 simprl2 simpr2 breq1 notbid reseq1 eqeq2d imbi12d
      rspcv syl3c simprr2 simpr3 eqtr4d ex mp3and fveq1d simprl1 sucidg simprl3
      fvresd simprr3 3eqtr3d rexlimdvva syl5bir alrimivv 3anbi3d rexbidv eleq2d
      eqtrd eqeq2 dmeq breq2 eqeq1d ralbidv 3anbi123d cbvrexv syl6bb mo4 sylibr
      fveq1 ) DHUAZECIZUBZJZBIZXKKLZMZXKEUDZNZXNXQNZOZPZBDUPZEXKQZAIZOZRZCDSZEF
      IZUBZJZXNYHKLZMZYHXQNZXSOZPZBDUPZEYHQZGIZOZRZFDSZTZAGUCZPZGUEAUEYGAUFXJUU
      DAGUUBYFYTTZFDSCDSXJUUCYFYTCFDDUGXJUUEUUCCFDDXJXKDJZYHDJZTZTZUUEUUCUUIUUE
      TZEXRQZEYMQZYDYRUUJEXRYMUUJXKYHKLZYHXKUHZDJZUUNXKKLZMZUUNYHKLZMZXRYMOZUUJ
      UUMYHXKDXJUUFUUGUUEUIZXJUUFUUGUUEUJZUKUUMUUJUUQUUMUUJTZUUNYHXKKUUMUUNYHOU
      UJUUMYHXKULUMZUUJUUMYHXKKLMZUUJXKHJZYHHJZUUMUVEPZUUJDHXKXJUUHUUEUNZUVBUOZ
      UUJDHYHUVIUVAUOZHKUQZUVFUVGTUVHURHKXKYHUSUTVAVBVCUUMMZUUJTZUUNXKXKKUVMUUN
      XKOUUJUUMYHXKVDUMZUUJXKXKKLMZUVMUUJUVFUVPUVJUVLUVFUVPURHXKKVEUTVGVHVCVFUU
      MUUJUUSUVCUUNYHYHKUVDUUJYHYHKLMZUUMUUJUVGUVQUVKUVLUVGUVQURHYHKVEUTVGVHVCU
      VNUUNXKYHKUVOUVMUUJVIVCVFUUJUUOUUQUUSRZUUTUUJUVRTZXRUUNXQNZYMUVSUUOYBUUQX
      RUVTOZUUJUUOUUQUUSVJZUUJYBUVRXMYBYEYTUUIVKUMUUJUUOUUQUUSVLYAUUQUWAPBUUNDX
      NUUNOZXPUUQXTUWAUWCXOUUPXNUUNXKKVMVNUWCXSUVTXRXNUUNXQVOZVPVQVRVSUVSUUOYPU
      USYMUVTOZUWBUUJYPUVRYJYPYSYFUUIVTUMUUJUUOUUQUUSWAYOUUSUWEPBUUNDUWCYLUUSYN
      UWEUWCYKUURXNUUNYHKVMVNUWCXSUVTYMUWDVPVQVRVSWBWCWDWEUUJUUKYCYDUUJEXQXKUUJ
      XMEXQJXMYBYEYTUUIWFEXLWGVGZWIXMYBYEYTUUIWHWRUUJUULYQYRUUJEXQYHUWFWIYJYPYS
      YFUUIWJWRWKWCWLWMWNYGUUAAGUUCYGXMYBYCYROZRZCDSUUAUUCYFUWHCDUUCYEUWGXMYBYD
      YRYCWSWOWPUWHYTCFDCFUCZXMYJYBYPUWGYSUWIXLYIEXKYHWTWQUWIYAYOBDUWIXPYLXTYNU
      WIXOYKXKYHXNKXAVNUWIXRYMXSXKYHXQVOXBVQXCUWIYCYQYREXKYHXIXBXDXEXFXGXH $.
  $}

  ${
    $d A a b x y z g v u $.
    nosupno.1 $e |- S = if ( E. x e. A A. y e. A -. x <s y ,
       ( ( iota_ x e. A A. y e. A -. x <s y ) u.
         { <. dom ( iota_ x e. A A. y e. A -. x <s y ) , 2o >. } ) ,
       ( g e. { y | E. u e. A ( y e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc y ) = ( v |` suc y ) ) ) }
       |-> ( iota x E. u e. A ( g e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc g ) = ( v |` suc g ) ) /\
       ( u ` g ) = x ) ) ) ) $.
    $( The next several theorems deal with a surreal "supremum".  This surreal
       will ultimately be shown to bound ` A ` below and bound the restriction
       of any surreal above.  We begin by showing that the given expression
       actually defines a surreal number.  (Contributed by Scott Fenton,
       5-Dec-2021.) $)
    nosupno $p |- ( ( A C_ No /\ A e. V ) -> S e. No ) $=
      ( wcel csur wss cvv wa wrex cres wceq syl con0 cbday va vb vz elex cv wbr
      cslt wn wral crio cdm c2o cop csn cun csuc wi cab cfv w3a cio cmpt iftrue
      cif adantr simprl wreu wrmo nomaxmo ad2antrl reu5 sylanbrc riotacl sseldd
      simpl c1o 2on elexi prid2 noextend eqeltrd iffalse wfun crn funmpt iotaex
      cpr a1i eqid dmmpti word ssel2 nodmon onss sseld adantrd rexlimdva abssdv
      wtr wel wal simplr adantlr ontr1 mpand reseq1 onelon sylan suceloni eloni
      simpllr ordsucelsuc mpbid onelss sylc resabs1d eqeq12d syl5ib expimpd vex
      wb weq eleq1 suceq reseq2d imbi2d ralbidv anbi12d rexbidv elab ax-mp mpan
      bdayfo adantl reximi eqeltrrd syl5eqel wex eqeq2 3anbi3d ralimdv reximdva
      imim2d jcad anbi2i 3imtr4g alrimivv sylibr dford5 cima cuni wfo funimaexg
      dftr2 fofun uniexg ss2abi bdayval wfn fnfvima mp3an1 elssuni syl5ss ssexd
      fofn elong mpbird rnmpt weu wmo spcev mp3an3 rexcom4 sylib noprefixmo eu5
      fvex iota2 eqcom syl6bb simprr3 adantrr norn nofun simprr1 fvelrn syl2anc
      rexlimdvaa sylbird sylan2b syl5eqss elno2 syl3anbrc pm2.61ian sylan2 ) EH
      JEKLZEMJZFKJEHUDUWPUWQNZFAUEZBUEZUGUFUHBEUIZAEOZUXAAEUJZUXCUKULUMUNUOZGUW
      TDUEZUKZJZCUEZUXEUGUFUHZUXEUWTUPZPZUXHUXJPZQZUQZCEUIZNZDEOZBURZGUEZUXFJZU
      XIUXEUXSUPZPZUXHUYAPZQZUQZCEUIZUXSUXEUSZUWSQZUTZDEOZAVAZVBZVDZKIUXBUWRUYM
      KJUXBUWRNZUYMUXDKUXBUYMUXDQUWRUXBUXDUYLVCVEUYNUXCKJUXDKJUYNEKUXCUXBUWPUWQ
      VFUYNUXAAEVGZUXCEJUYNUXBUXAAEVHZUYOUXBUWRVOUWPUYPUXBUWQABEVIVJUXAAEVKVLUX
      AAEVMRVNUXCULVPULULSVQVRVSVTRWAUXBUHZUWRNZUYMUYLKUYQUYMUYLQUWRUXBUXDUYLWB
      VEUYRUYLWCZUYLUKZSJZUYLWDZVPULWGZLZUYLKJUYSUYRGUXRUYKWEWHUWRVUAUYQUWRUYTU
      XRSGUXRUYKUYLUYJAWFUYLWIZWJUWRUXRSJZUXRWKZUWPVUGUWQUWPUXRSLUXRWSZVUGUWPUX
      QBSUWPUXPUWTSJZDEUWPUXEEJZNZUXGVUIUXOVUKUXFSUWTVUKUXFSJZUXFSLVUKUXEKJZVUL
      EKUXEWLZUXEWMRZUXFWNRWOWPWQWRUWPUAUBWTZUBUEZUXRJZNZUAUEZUXRJZUQZUBXAUAXAV
      UHUWPVVBUAUBUWPVUPVUQUXFJZUXIUXEVUQUPZPZUXHVVDPZQZUQZCEUIZNZDEOZNVUTUXFJZ
      UXIUXEVUTUPZPZUXHVVMPZQZUQZCEUIZNZDEOZVUSVVAUWPVUPVVKVVTUWPVUPNZVVJVVSDEV
      WAVUJNZVVJVVLVVRVWBVVCVVLVVIVWBVUPVVCVVLUWPVUPVUJXBVWBVULVUPVVCNVVLUQUWPV
      UJVULVUPVUOXCZVUTVUQUXFXDRXEWPVWBVVCVVIVVRVWBVVCNZVVHVVQCEVWDVVGVVPUXIVVG
      VVEVVMPZVVFVVMPZQVWDVVPVVEVVFVVMXFVWDVWEVVNVWFVVOVWDUXEVVMVVDVWDVVDSJZVVM
      VVDJZVVMVVDLVWDVUQSJZVWGVWBVULVVCVWIVWCUXFVUQXGXHZVUQXIRVWDVUPVWHUWPVUPVU
      JVVCXKVWDVUQWKZVUPVWHYAVWDVWIVWKVWJVUQXJRVUTVUQXLRXMVVDVVMXNXOZXPVWDUXHVV
      MVVDVWLXPXQXRUUCUUAXSUUDUUBXSVURVVKVUPUXQVVKBVUQUBXTBUBYBZUXPVVJDEVWMUXGV
      VCUXOVVIUWTVUQUXFYCVWMUXNVVHCEVWMUXMVVGUXIVWMUXKVVEUXLVVFVWMUXJVVDUXEUWTV
      UQYDZYEVWMUXJVVDUXHVWNYEXQYFYGYHYIYJUUEUXQVVTBVUTUAXTBUAYBZUXPVVSDEVWOUXG
      VVLUXOVVRUWTVUTUXFYCVWOUXNVVQCEVWOUXMVVPUXIVWOUXKVVNUXLVVOVWOUXJVVMUXEUWT
      VUTYDZYEVWOUXJVVMUXHVWPYEXQYFYGYHYIYJUUFUUGUAUBUXRUUNUUHUXRUUIVLVEUWRUXRM
      JVUFVUGYAUWRUXRTEUUJZUUKZMUWQVWRMJZUWPUWQVWQMJZVWSTWCZUWQVWTKSTUULZVXAYMK
      STUUOYKTEMUUMYLVWQMUUPRYNUWRUXRUXGDEOZBURZVWRUXQVXCBUXPUXGDEUXGUXOVOYOUUQ
      UWPVXDVWRLUWQUWPVXCBVWRUWPUXGUWTVWRJDEVUKUXFVWRUWTVUKUXFVWQJUXFVWRLVUKUXE
      TUSZUXFVWQVUKVUMVXEUXFQVUNUXEUURRTKUUSZUWPVUJVXEVWQJVXBVXFYMKSTUVEYKKETUX
      EUUTUVAYPUXFVWQUVBRWOWQWRVEUVCUVDUXRMUVFRUVGYQYNUWPVUDUYQUWQUWPVUBUCUEZUY
      KQZGUXROZUCURVUCGUCUXRUYKUYLVUEUVHUWPVXIUCVUCUWPVXHVXGVUCJZGUXRUXSUXRJUWP
      UXTUYFNZDEOZVXHVXJUQUXQVXLBUXSGXTBGYBZUXPVXKDEVXMUXGUXTUXOUYFUWTUXSUXFYCV
      XMUXNUYECEVXMUXMUYDUXIVXMUXKUYBUXLUYCVXMUXJUYAUXEUWTUXSYDZYEVXMUXJUYAUXHV
      XNYEXQYFYGYHYIYJUWPVXLNZVXHUXTUYFUYGVXGQZUTZDEOZVXJVXOVXRUYKVXGQZVXHVXOUY
      JAUVIZVXRVXSYAZVXOUYJAYRZUYJAUVJZVXTVXLVYBUWPVXLUYIAYRZDEOVYBVXKVYDDEUXTU
      YFUYGUYGQZVYDUYGWIUYIUXTUYFVYEUTAUYGUXSUXEUVQUWSUYGQUYHVYEUXTUYFUWSUYGUYG
      YSYTUVKUVLYOUYIDAEUVMUVNYNUWPVYCVXLACDEUXSUVOVEUYJAUVPVLVXGMJVXTVYAUCXTUY
      JVXRAVXGMAUCYBZUYIVXQDEVYFUYHVXPUXTUYFUWSVXGUYGYSYTYIUVRYLRUYKVXGUVSUVTUW
      PVXRVXJUQVXLUWPVXQVXJDEUWPVUJVXQNNZUYGVXGVUCUXTUYFVXPVUJUWPUWAVYGUXEWDZVU
      CUYGVYGVUMVYHVUCLUWPVUJVUMVXQVUNUWBZUXEUWCRVYGUXEWCZUXTUYGVYHJVYGVUMVYJVY
      IUXEUWDRUXTUYFVXPVUJUWPUWEUXSUXEUWFUWGVNYPUWHVEUWIUWJWQWRUWKVJUYLUWLUWMWA
      UWNYQUWO $.
  $}

  ${
    $d A g $.  $d A p $.  $d A q $.  $d A u $.  $d A v $.  $d A y $.  $d A z $.
    $d g u $.  $d g v $.  $d g y $.  $d p q $.  $d p u $.  $d p v $.  $d p y $.
    $d p z $.  $d q u $.  $d q v $.  $d q y $.  $d q z $.  $d u v $.  $d u y $.
    $d u z $.  $d v y $.  $d v z $.  $d y z $.
    nosupdm.1 $e |- S = if ( E. x e. A A. y e. A -. x <s y ,
       ( ( iota_ x e. A A. y e. A -. x <s y ) u.
         { <. dom ( iota_ x e. A A. y e. A -. x <s y ) , 2o >. } ) ,
       ( g e. { y | E. u e. A ( y e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc y ) = ( v |` suc y ) ) ) }
       |-> ( iota x E. u e. A ( g e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc g ) = ( v |` suc g ) ) /\
       ( u ` g ) = x ) ) ) ) $.
    $( The domain of the surreal supremum when there is no maximum.  The
       primary point of this theorem is to change bound variable.  (Contributed
       by Scott Fenton, 6-Dec-2021.) $)
    nosupdm $p |- ( -. E. x e. A A. y e. A -. x <s y ->
      dom S = { z | E. p e. A ( z e. dom p /\
       A. q e. A ( -. q <s p -> ( p |` suc z ) = ( q |` suc z ) ) ) } ) $=
      ( cv cslt wn wral wrex cdm cres wceq wi wbr wcel csuc wa cab cfv w3a cmpt
      cio crio c2o cop csn cun cif iffalse syl5eq iotaex eqid dmmpti syl6eq weq
      dmeqd dmeq eleq2d breq1 notbid reseq1 eqeq2d imbi12d cbvralv breq2 eqeq1d
      ralbidv syl5bb anbi12d cbvrexv eleq1 suceq reseq2d eqeq12d imbi2d rexbidv
      cbvabv ) ALZBLZMUANBFOZAFPZNZGQZWFELZQZUBZDLZWKMUAZNZWKWFUCZRZWNWQRZSZTZD
      FOZUDZEFPZBUEZCLZJLZQZUBZILZXGMUAZNZXGXFUCZRZXJXMRZSZTZIFOZUDZJFPZCUEWIWJ
      HXEHLZWLUBWPWKYAUCZRWNYBRSTDFOYAWKUFWESUGEFPZAUIZUHZQXEWIGYEWIGWHWGAFUJZY
      FQUKULUMUNZYEUOYEKWHYGYEUPUQVCHXEYDYEYCAURYEUSUTVAXDXTBCXDWFXHUBZXLXGWQRZ
      XJWQRZSZTZIFOZUDZJFPBCVBZXTXCYNEJFEJVBZWMYHXBYMYPWLXHWFWKXGVDVEXBXJWKMUAZ
      NZWRYJSZTZIFOYPYMXAYTDIFDIVBZWPYRWTYSUUAWOYQWNXJWKMVFVGUUAWSYJWRWNXJWQVHV
      IVJVKYPYTYLIFYPYRXLYSYKYPYQXKWKXGXJMVLVGYPWRYIYJWKXGWQVHVMVJVNVOVPVQYOYNX
      SJFYOYHXIYMXRWFXFXHVRYOYLXQIFYOYKXPXLYOYIXNYJXOYOWQXMXGWFXFVSZVTYOWQXMXJU
      UBVTWAWBVNVPWCVOWDVA $.
  $}

  ${
    $d A g u v x y $.
    nosupbday.1 $e |- S = if ( E. x e. A A. y e. A -. x <s y ,
       ( ( iota_ x e. A A. y e. A -. x <s y ) u.
         { <. dom ( iota_ x e. A A. y e. A -. x <s y ) , 2o >. } ) ,
       ( g e. { y | E. u e. A ( y e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc y ) = ( v |` suc y ) ) ) }
       |-> ( iota x E. u e. A ( g e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc g ) = ( v |` suc g ) ) /\
       ( u ` g ) = x ) ) ) ) $.
    $( Birthday bounding law for surreal supremum.  (Contributed by Scott
       Fenton, 5-Dec-2021.) $)
    nosupbday $p |- ( ( A C_ No /\ A e. _V ) ->
    ( bday ` S ) C_ suc U. ( bday " A ) ) $=
      ( csur wss wcel wa cbday cfv cdm csuc wceq syl cv con0 cvv cima cuni cslt
      nosupno bdayval wbr wn wral wrex crio c2o cop csn cun cres wi cab w3a cio
      cmpt cif iftrue syl5eq dmeqd 2on dmsnop uneq2i dmun df-suc 3eqtr4i syl6eq
      elexi adantr simprl wreu wrmo nomaxmo adantl reu5 sylanbrc riotacl sseldd
      simpl wfn bdayfo fofn ax-mp fnfvima mp3an2i eqeltrrd elssuni word nodmord
      wfo crn imassrn forn sseqtri ssorduni ordsucsssuc sylancl eqsstrd iffalse
      wb mpbid iotaex eqid dmmpti ssel2 mp3an1 adantlr sssucid syl6ss rexlimdva
      sseld adantrd abssdv pm2.61ian ) EIJZEUAKZLZFMNZFOZMEUBZUCZPZYBFIKYCYDQAB
      CDEFGUAHUEFUFRASZBSZUDUGUHBEUIZAEUJZYBYDYGJYKYBLZYDYJAEUKZOZPZYGYKYDYOQYB
      YKYDYMYNULUMUNZUOZOZYOYKFYQYKFYKYQGYIDSZOZKZCSZYSUDUGUHZYSYIPZUPUUBUUDUPQ
      UQCEUIZLZDEUJZBURZGSZYTKUUCYSUUIPZUPUUBUUJUPQUQCEUIUUIYSNYHQUSDEUJZAUTZVA
      ZVBZYQHYKYQUUMVCVDVEYNYPOZUOYNYNUNZUOYRYOUUOUUPYNYNULULTVFVMVGVHYMYPVIYNV
      JVKVLVNYLYNYFJZYOYGJZYLYNYEKUUQYLYMMNZYNYEYLYMIKZUUSYNQYLEIYMYKXTYAVOZYLY
      JAEVPZYMEKZYLYKYJAEVQZUVBYKYBWDYBUVDYKXTUVDYAABEVRVNVSYJAEVTWAYJAEWBRZWCZ
      YMUFRMIWEZYLXTUVCUUSYEKITMWOZUVGWFITMWGWHZUVAUVEIEMYMWIWJWKYNYEWLRYLYNWMZ
      YFWMZUUQUURXEYLUUTUVJUVFYMWNRYETJUVKYEMWPZTMEWQUVHUVLTQWFITMWRWHWSYEWTWHY
      NYFXAXBXFXCYKUHZYBLYDUUHYGUVMYDUUHQYBUVMYDUUMOUUHUVMFUUMUVMFUUNUUMHYKYQUU
      MXDVDVEGUUHUULUUMUUKAXGUUMXHXIVLVNYBUUHYGJUVMYBUUGBYGYBUUFYIYGKZDEYBYSEKZ
      LZUUAUVNUUEUVPYTYGYIUVPYTYFYGUVPYTYEKZYTYFJXTUVOUVQYAXTUVOLZYSMNZYTYEUVRY
      SIKUVSYTQEIYSXJYSUFRUVGXTUVOUVSYEKUVIIEMYSWIXKWKXLYTYEWLRYFXMXNXPXQXOXRVS
      XCXSXC $.
  $}

  ${
    $d A g $.  $d A p $.  $d A u $.  $d A v $.  $d A x $.  $d A y $.  $d G g $.
    $d G p $.  $d g u $.  $d G u $.  $d g v $.  $d G v $.  $d g x $.  $d G x $.
    $d g y $.  $d G y $.  $d p u $.  $d p v $.  $d U p $.  $d U u $.  $d u v $.
    $d U v $.  $d u x $.  $d U x $.  $d u y $.  $d v x $.  $d v y $.
    nosupfv.1 $e |- S = if ( E. x e. A A. y e. A -. x <s y ,
       ( ( iota_ x e. A A. y e. A -. x <s y ) u.
         { <. dom ( iota_ x e. A A. y e. A -. x <s y ) , 2o >. } ) ,
       ( g e. { y | E. u e. A ( y e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc y ) = ( v |` suc y ) ) ) }
       |-> ( iota x E. u e. A ( g e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc g ) = ( v |` suc g ) ) /\
       ( u ` g ) = x ) ) ) ) $.
    $( The value of surreal supremum when there is no maximum.  (Contributed by
       Scott Fenton, 5-Dec-2021.) $)
    nosupfv $p |- ( ( -. E. x e. A A. y e. A -. x <s y /\
      ( A C_ No /\ A e. _V ) /\ ( U e. A /\ G e. dom U /\
      A. v e. A ( -. v <s U -> ( U |` suc G ) = ( v |` suc G ) ) ) ) ->
      ( S ` G ) = ( U ` G ) ) $=
      ( vp cv cslt wn wral wrex wcel cres wceq w3a wbr csur wss cvv wa cdm csuc
      wi cfv cab cio cmpt crio c2o cop csn cun cif iffalse syl5eq 3ad2ant1 dmeq
      fveq1d eleq2d breq2 notbid reseq1 eqeq1d imbi12d ralbidv rspcev 3impb weq
      anbi12d cbvrexv sylibr 3ad2ant3 simp32 eleq1 suceq reseq2d eqeq12d imbi2d
      rexbidv elabg syl mpbird fveq2 3anbi123d iotabidv eqid iotaex fvmpt simp1
      wb simp2 simp3 eqidd fveq1 syl13anc weu fvex wex wmo eqeq2 3anbi3d mp3an3
      spcev reximi rexcom4 sylib noprefixmo 3ad2ant2 eu5 sylanbrc iota2 sylancr
      adantr mpbid 3eqtrd ) ALZBLZMUANBEOZAEPZNZEUBUCZEUDQZUEZGEQZIGUFZQZCLZGMU
      AZNZGIUGZRZYLYORZSZUHZCEOZTZTZIFUIZIHYBDLZUFZQZYLUUDMUAZNZUUDYBUGZRZYLUUI
      RZSZUHZCEOZUEZDEPZBUJZHLZUUEQZUUHUUDUURUGZRZYLUUTRZSZUHZCEOZUURUUDUIZYASZ
      TZDEPZAUKZULZUIZIUUEQZUUHUUDYORZYQSZUHZCEOZIUUDUIZYASZTZDEPZAUKZIGUIZYEYH
      UUCUVLSUUAYEIFUVKYEFYDYCAEUMZUWDUFUNUOUPUQZUVKURUVKJYDUWEUVKUSUTVCVAUUBIU
      UQQZUVLUWBSUUBUWFUVMUVQUEZDEPZUUAYEUWHYHUUAIKLZUFZQZYLUWIMUAZNZUWIYORZYQS
      ZUHZCEOZUEZKEPZUWHYIYKYTUWSUWRYKYTUEKGEUWIGSZUWKYKUWQYTUWTUWJYJIUWIGVBVDU
      WTUWPYSCEUWTUWMYNUWOYRUWTUWLYMUWIGYLMVEVFUWTUWNYPYQUWIGYOVGVHVIVJVNVKVLUW
      GUWRDKEDKVMZUVMUWKUVQUWQUXAUUEUWJIUUDUWIVBVDUXAUVPUWPCEUXAUUHUWMUVOUWOUXA
      UUGUWLUUDUWIYLMVEVFUXAUVNUWNYQUUDUWIYOVGVHVIVJVNVOVPZVQUUBYKUWFUWHWOYEYHY
      IYKYTVRUUPUWHBIYJYBISZUUOUWGDEUXCUUFUVMUUNUVQYBIUUEVSUXCUUMUVPCEUXCUULUVO
      UUHUXCUUJUVNUUKYQUXCUUIYOUUDYBIVTZWAUXCUUIYOYLUXDWAWBWCVJVNWDWEWFWGHIUVJU
      WBUUQUVKUURISZUVIUWAAUXEUVHUVTDEUXEUUSUVMUVEUVQUVGUVSUURIUUEVSUXEUVDUVPCE
      UXEUVCUVOUUHUXEUVAUVNUVBYQUXEUUTYOUUDUURIVTZWAUXEUUTYOYLUXFWAWBWCVJUXEUVF
      UVRYAUURIUUDWHVHWIWDWJUVKWKUWAAWLWMWFUUBUVMUVQUVRUWCSZTZDEPZUWBUWCSZUUAYE
      UXIYHUUAYIYKYTUWCUWCSZUXIYIYKYTWNYIYKYTWPYIYKYTWQUUAUWCWRUXHYKYTUXKTDGEUU
      DGSZUVMYKUVQYTUXGUXKUXLUUEYJIUUDGVBVDUXLUVPYSCEUXLUUHYNUVOYRUXLUUGYMUUDGY
      LMVEVFUXLUVNYPYQUUDGYOVGVHVIVJUXLUVRUWCUWCIUUDGWSVHWIVKWTVQUUBUWCUDQUWAAX
      AZUXIUXJWOIGXBUUBUWAAXCZUWAAXDZUXMUUAYEUXNYHUUAUWHUXNUXBUWHUVTAXCZDEPUXNU
      WGUXPDEUVMUVQUVRUVRSZUXPUVRWKUVTUVMUVQUXQTAUVRIUUDXBYAUVRSUVSUXQUVMUVQYAU
      VRUVRXEXFXHXGXIUVTDAEXJXKWFVQYHYEUXOUUAYFUXOYGACDEIXLXRXMUWAAXNXOUWAUXIAU
      WCUDYAUWCSZUVTUXHDEUXRUVSUXGUVMUVQYAUWCUVRXEXFWDXPXQXSXT $.
  $}

  ${
    $d A a $.  $d a g $.  $d A g $.  $d A p $.  $d a u $.  $d A u $.  $d a v $.
    $d A v $.  $d a x $.  $d A x $.  $d a y $.  $d A y $.  $d G a $.  $d G p $.
    $d g u $.  $d G u $.  $d g v $.  $d G v $.  $d g x $.  $d g y $.  $d G y $.
    $d p u $.  $d p v $.  $d S a $.  $d U a $.  $d U p $.  $d U u $.  $d u v $.
    $d U v $.  $d u x $.  $d U x $.  $d u y $.  $d v x $.  $d v y $.  $d x y $.
    nosupres.1 $e |- S = if ( E. x e. A A. y e. A -. x <s y ,
       ( ( iota_ x e. A A. y e. A -. x <s y ) u.
         { <. dom ( iota_ x e. A A. y e. A -. x <s y ) , 2o >. } ) ,
       ( g e. { y | E. u e. A ( y e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc y ) = ( v |` suc y ) ) ) }
       |-> ( iota x E. u e. A ( g e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc g ) = ( v |` suc g ) ) /\
       ( u ` g ) = x ) ) ) ) $.
    $( A restriction law for surreal supremum when there is no maximum.
       (Contributed by Scott Fenton, 5-Dec-2021.) $)
    nosupres $p |- ( ( -. E. x e. A A. y e. A -. x <s y /\
      ( A C_ No /\ A e. _V ) /\ ( U e. A /\ G e. dom U /\
      A. v e. A ( -. v <s U -> ( U |` suc G ) = ( v |` suc G ) ) ) ) ->
      ( S |` suc G ) = ( U |` suc G ) ) $=
      ( vp cv cslt wral wcel wa cdm cres wceq wi wbr wrex csur wss cvv csuc w3a
      va cfv cin dmres word nosupno 3ad2ant2 nodmord syl cab dmeq eleq2d notbid
      wn breq2 reseq1 eqeq1d imbi12d ralbidv anbi12d rspcev 3impb weq sylibr wb
      cbvrexv eleq1 suceq reseq2d eqeq12d imbi2d elabg mpbird 3ad2ant3 cio cmpt
      rexbidv crio c2o cop csn cun cif iffalse syl5eq iotaex eqid dmmpti syl6eq
      dmeqd 3ad2ant1 eleqtrrd ordsucss df-ss simp2l simp31 sseldd simp32 eqtr4d
      sylc sylib simpl1 simpl2 simpl31 sselda con0 nodmon onelon syl2anc ordsuc
      eloni imp simpl33 resabs1 syl5ib imim2d ralimdv nosupfv syl113anc 3eqtr4d
      simpr fvresd ex sylbid ralrimiv wfun nofun funres 3syl eqfunfv mpbir2and
      ) ALZBLZMUAVABENZAEUBZVAZEUCUDZEUEOZPZGEOZIGQZOZCLZGMUAZVAZGIUFZRZUUJUUMR
      ZSZTZCENZUGZUGZFUUMRZUUNSZUVAQZUUNQZSZUHLZUVAUIZUVFUUNUIZSZUHUVCNZUUTUVCU
      UMUVDUUTUVCUUMFQZUJZUUMFUUMUKUUTUUMUVKUDZUVLUUMSUUTUVKULZIUVKOUVMUUTFUCOZ
      UVNUUFUUCUVOUUSABCDEFHUEJUMUNZFUOUPUUTIYTDLZQZOZUUJUVQMUAZVAZUVQYTUFZRZUU
      JUWBRZSZTZCENZPZDEUBZBUQZUVKUUSUUCIUWJOZUUFUUSUWKIUVROZUWAUVQUUMRZUUOSZTZ
      CENZPZDEUBZUUSIKLZQZOZUUJUWSMUAZVAZUWSUUMRZUUOSZTZCENZPZKEUBZUWRUUGUUIUUR
      UXIUXHUUIUURPKGEUWSGSZUXAUUIUXGUURUXJUWTUUHIUWSGURUSUXJUXFUUQCEUXJUXCUULU
      XEUUPUXJUXBUUKUWSGUUJMVBUTUXJUXDUUNUUOUWSGUUMVCVDVEVFVGVHVIUWQUXHDKEDKVJZ
      UWLUXAUWPUXGUXKUVRUWTIUVQUWSURUSUXKUWOUXFCEUXKUWAUXCUWNUXEUXKUVTUXBUVQUWS
      UUJMVBUTUXKUWMUXDUUOUVQUWSUUMVCVDVEVFVGVMVKUUIUUGUWKUWRVLUURUWIUWRBIUUHYT
      ISZUWHUWQDEUXLUVSUWLUWGUWPYTIUVRVNUXLUWFUWOCEUXLUWEUWNUWAUXLUWCUWMUWDUUOU
      XLUWBUUMUVQYTIVOZVPUXLUWBUUMUUJUXMVPVQVRVFVGWDVSUNVTWAUUCUUFUVKUWJSUUSUUC
      UVKHUWJHLZUVROUWAUVQUXNUFZRUUJUXORSTCENUXNUVQUIYSSUGDEUBZAWBZWCZQUWJUUCFU
      XRUUCFUUBUUAAEWEZUXSQWFWGWHWIZUXRWJUXRJUUBUXTUXRWKWLWQHUWJUXQUXRUXPAWMUXR
      WNWOWPWRWSIUVKWTXGUUMUVKXAXHWLZUUTUVDUUMUUHUJZUUMGUUMUKUUTUUMUUHUDZUYBUUM
      SUUTUUHULZUUIUYCUUTGUCOZUYDUUTEUCGUUCUUDUUEUUSXBUUCUUFUUGUUIUURXCXDZGUOUP
      UUCUUFUUGUUIUURXEZIUUHWTXGZUUMUUHXAXHWLXFUUTUVIUHUVCUUTUVFUVCOUVFUUMOZUVI
      UUTUVCUUMUVFUYAUSUUTUYIUVIUUTUYIPZUVFFUIZUVFGUIZUVGUVHUYJUUCUUFUUGUVFUUHO
      UULGUVFUFZRZUUJUYMRZSZTZCENZUYKUYLSUUCUUFUUSUYIXIUUCUUFUUSUYIXJUUGUUIUURU
      UCUUFUYIXKUUTUUMUUHUVFUYHXLUYJUYMUUMUDZUURUYRUUTUYIUYSUUTUUMULZUYIUYSTUUT
      IULZUYTUUTIXMOZVUAUUTUUHXMOZUUIVUBUUTUYEVUCUYFGXNUPUYGUUHIXOXPIXRUPIXQXHU
      VFUUMWTUPXSUUGUUIUURUUCUUFUYIXTUYSUUQUYQCEUYSUUPUYPUULUUPUUNUYMRZUUOUYMRZ
      SUYSUYPUUNUUOUYMVCUYSVUDUYNVUEUYOGUYMUUMYAUUJUYMUUMYAVQYBYCYDXGABCDEFGHUV
      FJYEYFUYJUVFUUMFUUTUYIYHZYIUYJUVFUUMGVUFYIYGYJYKYLUUTUVAYMZUUNYMZUVBUVEUV
      JPVLUUTUVOFYMVUGUVPFYNUUMFYOYPUUTUYEGYMVUHUYFGYNUUMGYOYPUHUVAUUNYQXPYR $.
  $}

  ${
    nosupbnd1.1 $e |- S = if ( E. x e. A A. y e. A -. x <s y ,
       ( ( iota_ x e. A A. y e. A -. x <s y ) u.
         { <. dom ( iota_ x e. A A. y e. A -. x <s y ) , 2o >. } ) ,
       ( g e. { y | E. u e. A ( y e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc y ) = ( v |` suc y ) ) ) }
       |-> ( iota x E. u e. A ( g e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc g ) = ( v |` suc g ) ) /\
       ( u ` g ) = x ) ) ) ) $.

    ${
      $d A g $.  $d A h $.  $d A p $.  $d A u $.  $d A v $.  $d A x $.
      $d A y $.  $d g u $.  $d g v $.  $d g x $.  $d g y $.  $d h p $.
      $d h u $.  $d h v $.  $d h x $.  $d h y $.  $d p u $.  $d p v $.
      $d p x $.  $d p y $.  $d S h $.  $d S p $.  $d U h $.  $d U p $.
      $d u v $.  $d U v $.  $d u x $.  $d u y $.  $d v x $.  $d v y $.
      $d x y $.
      $( Lemma for ~ nosupbnd1 .  Establish a soft upper bound.  (Contributed
         by Scott Fenton, 5-Dec-2021.) $)
      nosupbnd1lem1 $p |- ( ( -. E. x e. A A. y e. A -. x <s y /\
    ( A C_ No /\ A e. _V ) /\ U e. A ) -> -. S <s ( U |` dom S ) ) $=
        ( cv cslt wbr wn csur wcel wa cdm cres wceq wi vh wral wrex wss cvv w3a
        vp csuc simp2l simp3 sseldd nosupno 3ad2ant2 nodmon syl noreson syl2anc
        con0 cin dmres inss1 eqsstri a1i ssid cab cfv cio cmpt crio c2o cop csn
        cun cif iffalse syl5eq dmeqd iotaex eqid dmmpti syl6eq eleq2d vex eleq1
        wb weq suceq reseq2d eqeq12d imbi2d ralbidv anbi12d rexbidv dmeq notbid
        reseq1 eqeq1d imbi12d cbvrexv syl6bb elab 3ad2ant1 simpl1 simpl2 simprl
        breq2 simprrl simprrr nosupres syl113anc simpl2l adantr wor soasym mpan
        sltso simpl3 breq1 eqeq2d rspcv sylc syld imp onelon sucelon sylib sonr
        eqnbrtrd ex sltres syl3anc con3d pm2.61d rexlimdvaa sylbid word nodmord
        ordsucss 3syl resabs1d breq2d mtbird ralrimiva noresle syl23anc ) AJZBJ
        ZKLMBEUBZAEUCZMZENUDZEUEOZPZGEOZUFZGFQZRZNOZFNOZUUQQZUUPUDZUUPUUPUDZFUA
        JZUHZRZUUQUVDRZKLZMZUAUUPUBFUUQKLMUUOGNOZUUPUROZUURUUOENGUUJUUKUULUUNUI
        UUJUUMUUNUJUKZUUOUUSUVJUUMUUJUUSUUNABCDEFHUEIULUMZFUNUOGUUPUPUQUVLUVAUU
        OUUTUUPGQZUSUUPGUUPUTUUPUVMVAVBVCUVBUUOUUPVDVCUUOUVHUAUUPUUOUVCUUPOZPZU
        VGUVEGUVDRZKLZUUOUVNUVQMZUUOUVNUVCUGJZQZOZCJZUVSKLZMZUVSUVDRZUWBUVDRZSZ
        TZCEUBZPZUGEUCZUVRUUJUUMUVNUWKWEUUNUUJUVNUVCUUGDJZQZOZUWBUWLKLZMZUWLUUG
        UHZRZUWBUWQRZSZTZCEUBZPZDEUCZBVEZOUWKUUJUUPUXEUVCUUJUUPHUXEHJZUWMOUWPUW
        LUXFUHZRUWBUXGRSTCEUBUXFUWLVFUUFSUFDEUCZAVGZVHZQUXEUUJFUXJUUJFUUIUUHAEV
        IZUXKQVJVKVLVMZUXJVNUXJIUUIUXLUXJVOVPVQHUXEUXIUXJUXHAVRUXJVSVTWAWBUXDUW
        KBUVCUAWCBUAWFZUXDUVCUWMOZUWPUWLUVDRZUWFSZTZCEUBZPZDEUCUWKUXMUXCUXSDEUX
        MUWNUXNUXBUXRUUGUVCUWMWDUXMUXAUXQCEUXMUWTUXPUWPUXMUWRUXOUWSUWFUXMUWQUVD
        UWLUUGUVCWGZWHUXMUWQUVDUWBUXTWHWIWJWKWLWMUXSUWJDUGEDUGWFZUXNUWAUXRUWIUY
        AUWMUVTUVCUWLUVSWNWBUYAUXQUWHCEUYAUWPUWDUXPUWGUYAUWOUWCUWLUVSUWBKXFWOUY
        AUXOUWEUWFUWLUVSUVDWPWQWRWKWLWSWTXAWTXBUUOUWJUVRUGEUUOUVSEOZUWJPZPZUVEU
        WEUVPKUYDUUJUUMUYBUWAUWIUVEUWESUUJUUMUUNUYCXCUUJUUMUUNUYCXDUUOUYBUWJXEZ
        UUOUYBUWAUWIXGZUUOUYBUWAUWIXHZABCDEFUVSHUVCIXIXJUYDUVSGKLZUWEUVPKLZMZUY
        DUYHUYJUYDUYHPUWEUVPUVPKUYDUYHUWEUVPSZUYDUYHGUVSKLZMZUYKUYDUVSNOZUVIUYH
        UYMTZUYDENUVSUUKUULUUJUUNUYCXKUYEUKZUUOUVIUYCUVKXLZNKXMZUYNUVIPUYOXPNKU
        VSGXNXOUQUYDUUNUWIUYMUYKTZUUJUUMUUNUYCXQUYGUWHUYSCGEUWBGSZUWDUYMUWGUYKU
        YTUWCUYLUWBGUVSKXRWOUYTUWFUVPUWEUWBGUVDWPXSWRXTYAYBYCUYDUVPUVPKLMZUYHUY
        DUVPNOZVUAUYDUVIUVDUROZVUBUYQUYDUVCUROZVUCUYDUVTUROZUWAVUDUYDUYNVUEUYPU
        VSUNUOUYFUVTUVCYDUQUVCYEYFZGUVDUPUQUYRVUBVUAXPNUVPKYGXOUOXLYHYIUYDUYIUY
        HUYDUYNUVIVUCUYIUYHTUYPUYQVUFUVSGUVDYJYKYLYMYHYNYOYCUVOUVFUVPUVEKUVOGUV
        DUUPUUOUVNUVDUUPUDZUUOUUSUUPYPUVNVUGTUVLFYQUVCUUPYRYSYCYTUUAUUBUUCUUPFU
        UQUAUUDUUE $.
    $}

    ${
      $d A g $.  $d A u $.  $d A v $.  $d A x $.  $d A y $.  $d g u $.
      $d g v $.  $d g x $.  $d g y $.  $d u v $.  $d u x $.  $d u y $.
      $d v x $.  $d v y $.  $d W v $.  $d x y $.
      $( Lemma for ~ nosupbnd1 .  When there is no maximum, if any member of
         ` A ` is a prolongment of ` S ` , then so are all elements of ` A `
         above it.  (Contributed by Scott Fenton, 5-Dec-2021.) $)
      nosupbnd1lem2 $p |- ( ( -. E. x e. A A. y e. A -. x <s y /\
    ( A C_ No /\ A e. _V ) /\
    ( ( U e. A /\ ( U |` dom S ) = S ) /\ ( W e. A /\ -. W <s U ) ) ) ->
    ( W |` dom S ) = S ) $=
        ( cv cslt wbr wn csur cvv wcel wa cres wceq wral wss cdm w3a simp3rr wi
        wrex con0 simp2l simp3rl sseldd simp3ll nosupno 3ad2ant2 nodmon syl3anc
        sltres mtod simp3lr breq2d mtbid nosupbnd1lem1 syld3an3 noreson syl2anc
        syl wb wor sltso sotrieq2 mpan mpbir2and ) AKBKLMNBEUAAEUGNZEOUBZEPQZRZ
        GEQZGFUCZSZFTZRZIEQZIGLMZNZRZRZUDZIVRSZFTZWHFLMZNZFWHLMNZWGWHVSLMZWJWGW
        MWCWBWDWAVMVPUEWGIOQZGOQVRUHQZWMWCUFWGEOIVMVNVOWFUIZWBWDWAVMVPUJZUKZWGE
        OGWPVQVTWEVMVPULUKWGFOQZWOVPVMWSWFABCDEFHPJUMUNZFUOVFZIGVRUQUPURWGVSFWH
        LVQVTWEVMVPUSUTVAVMVPWFWBWLWQABCDEFIHJVBVCWGWHOQZWSWIWKWLRVGZWGWNWOXBWR
        XAIVRVDVEWTOLVHXBWSRXCVIOWHFLVJVKVEVL $.
    $}

    ${
      $d A g $.  $d A p $.  $d A q $.  $d A u $.  $d A v $.  $d A x $.
      $d A y $.  $d A z $.  $d g u $.  $d g v $.  $d g x $.  $d g y $.
      $d p q $.  $d p u $.  $d p v $.  $d p y $.  $d p z $.  $d q u $.
      $d q v $.  $d q x $.  $d q y $.  $d q z $.  $d S p $.  $d S q $.
      $d S z $.  $d U p $.  $d U q $.  $d u v $.  $d u x $.  $d u y $.
      $d u z $.  $d v x $.  $d v y $.  $d v z $.  $d x y $.  $d y z $.
      $( Lemma for ~ nosupbnd1 .  If ` U ` is a prolongment of ` S ` and in
         ` A ` , then ` ( U `` dom S ) ` is not ` 2o ` .  (Contributed by Scott
         Fenton, 6-Dec-2021.) $)
      nosupbnd1lem3 $p |- ( ( -. E. x e. A A. y e. A -. x <s y /\
    ( A C_ No /\ A e. _V ) /\ ( U e. A /\ ( U |` dom S ) = S ) ) ->
    ( U ` dom S ) =/= 2o ) $=
        ( vp vq cv wn csur wcel wa cres wceq c2o adantr vz cslt wbr wss cvv cdm
        wral wrex w3a word nosupno 3ad2ant2 nodmord ordirr 3syl csuc wi simpl3l
        cfv ndmfv wne c1o con0 2on elexi prid2 nosgnn0i neeq1 mpbiri neneqd syl
        con4i adantl simpl2l sseldd simprl nodmon simpl3r simpll1 simpll2 simpr
        c0 simpll3 nosupbnd1lem2 syl112anc eqtr4d simplr nolesgn2ores syl321anc
        simprr expr ralrimiva eleq2d breq2 notbid reseq1 eqeq1d imbi12d ralbidv
        dmeq anbi12d rspcev syl12anc cab nosupdm 3ad2ant1 eleq1 reseq2d eqeq12d
        wb suceq imbi2d rexbidv elabg bitrd mpbird mtand neqned ) ALBLUBUCMBEUG
        AEUHMZENUDZEUEOZPZGEOZGFUFZQZFRZPZUIZYDGUSZSYHYISRZYDYDOZYHFNOZYDUJYKMY
        BXSYLYGABCDEFHUEIUKULZFUMYDUNUOYHYJPZYKYDJLZUFZOZKLZYOUBUCZMZYOYDUPZQZY
        RUUAQZRZUQZKEUGZPZJEUHZYNYCYDGUFZOZYRGUBUCZMZGUUAQZUUCRZUQZKEUGZUUHYCYF
        XSYBYJURZYJUUJYHUUJYJUUJMYIWBRZYJMYDGUTUURYISUURYISVAWBSVASVBSSVCVDVEVF
        VGYIWBSVHVIVJVKVLVMYNUUOKEYNYREOZUULUUNYNUUSUULPZPZGNOYRNOYDVCOZYEYRYDQ
        ZRYJUULUUNUVAENGYNXTUUTXTYAXSYGYJVNTZYNYCUUTUUQTVOUVAENYRUVDYNUUSUULVPV
        OUVAYLUVBYNYLUUTYHYLYJYMTTFVQZVKUVAYEFUVCYNYFUUTYCYFXSYBYJVRTUVAXSYBYGU
        UTUVCFRXSYBYGYJUUTVSXSYBYGYJUUTVTXSYBYGYJUUTWCYNUUTWAABCDEFGHYRIWDWEWFY
        HYJUUTWGYNUUSUULWJGYRYDWHWIWKWLUUGUUJUUPPJGEYOGRZYQUUJUUFUUPUVFYPUUIYDY
        OGWTWMUVFUUEUUOKEUVFYTUULUUDUUNUVFYSUUKYOGYRUBWNWOUVFUUBUUMUUCYOGUUAWPW
        QWRWSXAXBXCYHYKUUHXJYJYHYKYDUALZYPOZYTYOUVGUPZQZYRUVIQZRZUQZKEUGZPZJEUH
        ZUAXDZOZUUHXSYBYKUVRXJYGXSYDUVQYDABUACDEFHKJIXEWMXFYHYLUVBUVRUUHXJYMUVE
        UVPUUHUAYDVCUVGYDRZUVOUUGJEUVSUVHYQUVNUUFUVGYDYPXGUVSUVMUUEKEUVSUVLUUDY
        TUVSUVJUUBUVKUUCUVSUVIUUAYOUVGYDXKZXHUVSUVIUUAYRUVTXHXIXLWSXAXMXNUOXOTX
        PXQXR $.
    $}

    ${
      $d A g $.  $d A u $.  $d A v $.  $d A w $.  $d A x $.  $d A y $.
      $d g u $.  $d g v $.  $d g x $.  $d g y $.  $d S w $.  $d U u $.
      $d u v $.  $d u w $.  $d U w $.  $d u x $.  $d u y $.  $d v w $.
      $d v x $.  $d v y $.  $d w x $.  $d w y $.  $d x y $.
      $( Lemma for ~ nosupbnd1 .  If ` U ` is a prolongment of ` S ` and in
         ` A ` , then ` ( U `` dom S ) ` is not undefined.  (Contributed by
         Scott Fenton, 6-Dec-2021.) $)
      nosupbnd1lem4 $p |- ( ( -. E. x e. A A. y e. A -. x <s y /\
    ( A C_ No /\ A e. _V ) /\ ( U e. A /\ ( U |` dom S ) = S ) ) ->
    ( U ` dom S ) =/= (/) ) $=
        ( vw cv cslt wbr wn wrex csur wcel wa wceq adantr wral wss cvv cdm cres
        w3a cfv c2o wne simpl1 simpl2 simprl simpl3 simprr simp2l simp3l sseldd
        c0 wi simpl2l wor sltso soasym syl2an2r mpd jca nosupbnd1lem2 syl112anc
        mpan nosupbnd1lem3 neneqd expr imnan sylib nrexdv simpl3l breq2 cbvrexv
        weq breq1 rexbidv syl5bb cbvralv dfrex2 ralbii ralnex 3bitri rspcv sylc
        sylibr con0 nosupno 3ad2ant2 nodmon syl simpl3r simpll1 simpll2 simpll3
        eqtr4d simplr nolt02o syl321anc ancld reximdva mtand neqned ) AKZBKZLMZ
        NBEUAZAEONZEPUBZEUCQZRZGEQZGFUDZUEZFSZRZUFZXQGUGZURYAYBURSZGJKZLMZXQYDU
        GZUHSZRZJEOZYAYHJEYAYDEQZRYEYGNZUSYHNYAYJYEYKYAYJYERZRZYFUHYMXLXOYJYDXQ
        UEZFSZYFUHUIXLXOXTYLUJZXLXOXTYLUKZYAYJYEULZYMXLXOXTYJYDGLMNZRZYOYPYQXLX
        OXTYLUMYMYJYSYRYMYEYSYAYJYEUNYAGPQZYLYDPQZYEYSUSZYAEPGXLXMXNXTUOXLXOXPX
        SUPUQYMEPYDXMXNXLXTYLUTYRUQPLVAUUAUUBRUUCVBPLGYDVCVIZVDVEVFABCDEFGHYDIV
        GZVHABCDEFYDHIVJVHVKVLYEYGVMVNVOYAYCRZYEJEOZYIUUFXPDKZYDLMZJEOZDEUAZUUG
        XPXSXLXOYCVPZUUFXLUUKXLXOXTYCUJUUKXJBEOZAEUAXKNZAEUAXLUUJUUMDAEUUJUUHXI
        LMZBEODAVSZUUMUUIUUOJBEYDXIUUHLVQVRUUPUUOXJBEUUHXHXILVTWAWBWCUUMUUNAEXJ
        BEWDWEXKAEWFWGWJUUJUUGDGEUUHGSUUIYEJEUUHGYDLVTWAWHWIUUFYEYHJEUUFYJRYEYG
        UUFYJYEYGUUFYLRZUUAUUBXQWKQZXRYNSYEYCYGUUFUUAYLUUFEPGXMXNXLXTYCUTZUULUQ
        ZTUUQEPYDUUFXMYLUUSTUUFYJYEULZUQZUUQFPQZUURUUFUVCYLYAUVCYCXOXLUVCXTABCD
        EFHUCIWLWMTTFWNWOUUQXRFYNUUFXSYLXPXSXLXOYCWPTUUQXLXOXTYTYOXLXOXTYCYLWQX
        LXOXTYCYLWRXLXOXTYCYLWSUUQYJYSUVAUUQYEYSUUFYJYEUNZUUFUUAYLUUBUUCUUTUVBU
        UDVDVEVFUUEVHWTUVDYAYCYLXAGYDXQXBXCVLXDXEVEXFXG $.
    $}

    ${
      $d A a $.  $d a b $.  $d A b $.  $d A g $.  $d a p $.  $d A p $.
      $d a u $.  $d A u $.  $d a v $.  $d A v $.  $d a x $.  $d A x $.
      $d a y $.  $d A y $.  $d a z $.  $d A z $.  $d b x $.  $d b y $.
      $d b z $.  $d g u $.  $d g v $.  $d g x $.  $d g y $.  $d p u $.
      $d p v $.  $d p y $.  $d p z $.  $d S a $.  $d S b $.  $d S p $.
      $d S z $.  $d U a $.  $d U b $.  $d U p $.  $d u v $.  $d u x $.
      $d u y $.  $d u z $.  $d U z $.  $d v x $.  $d v y $.  $d v z $.
      $d x y $.  $d x z $.  $d y z $.
      $( Lemma for ~ nosupbnd1 .  If ` U ` is a prolongment of ` S ` and in
         ` A ` , then ` ( U `` dom S ) ` is not ` 1o ` .  (Contributed by Scott
         Fenton, 6-Dec-2021.) $)
      nosupbnd1lem5 $p |- ( ( -. E. x e. A A. y e. A -. x <s y /\
    ( A C_ No /\ A e. _V ) /\ ( U e. A /\ ( U |` dom S ) = S ) ) ->
    ( U ` dom S ) =/= 1o ) $=
        ( vz vp wn c1o wceq wi csur wcel wa cres c0 va cv cslt wbr cdm cfv wral
        wrex wss cvv w3a word nosupno 3ad2ant2 adantl nodmord 3syl csuc simpr3l
        wne ordirr adantr ndmfv c2o con0 1on elexi prid1 nosgnn0i mpbiri neneqd
        neeq1 con4i wfun simp2l simp3l sseldd nofun simpl2l simpll ssel2 syl2an
        syl simpl3r simpll1 simprl nosupbnd1lem2 syl112anc eqtr4d simplr simprr
        simpll2 simpll3 eqfunressuc syl213anc expr ralimdva impcom anassrs dmeq
        a2d eleq2d notbid reseq1 eqeq1d imbi12d ralbidv anbi12d rspcev syl12anc
        breq2 cab wb simplr1 nosupdm nodmon eleq1 suceq reseq2d eqeq12d rexbidv
        imbi2d elabg bitrd mpbird mtand neqned rexanali wo simpl 3orel2 syl5com
        w3o nofv imdistanda simpl1 simpl2 simpl3 simpr pm2.21d anasss rexlimiva
        nosupbnd1lem4 nosupbnd1lem3 jaod expimpd syldc imp sylanbr pm2.61ian )
        JUBZGUCUDZLZFUEZUUKUFZMNZOZJEUGZAUBBUBUCUDLBEUGAEUHLZEPUIZEUJQZRZGEQZGU
        UNSZFNZRZUKZUUNGUFZMUTZUURUVGRZUVHMUVJUVHMNZUUNUUNQZUVJFPQZUUNULUVLLUVG
        UVMUURUVBUUSUVMUVFABCDEFHUJIUMUNUOZFUPUUNVAUQUVJUVKRZUVLUUNKUBZUEZQZUUK
        UVPUCUDZLZUVPUUNURZSZUUKUWASZNZOZJEUGZRZKEUHZUVOUVCUUNGUEZQZUUMGUWASZUW
        CNZOZJEUGZUWHUVJUVCUVKUVCUVEUUSUVBUURUSVBUVKUWJUVJUWJUVKUWJLUVHTNZUVKLU
        UNGVCUWOUVHMUWOUVITMUTZMMVDMVEVFVGVHVIZUVHTMVLVJVKWCVMZUOUURUVGUVKUWNUV
        GUVKRZUURUWNUWSUUQUWMJEUWSUUKEQZRUUMUUPUWLUWSUWTUUMUUPUWLOUWSUWTUUMRZUU
        PUWLUWSUXAUUPRZRZGVNZUUKVNZUVDUUKUUNSZNUWJUUNUUKUEQZUVHUUONUWLUXCGPQZUX
        DUWSUXHUXBUVGUXHUVKUVGEPGUUSUUTUVAUVFVOZUUSUVBUVCUVEVPVQVBVBGVRWCUXCUUK
        PQZUXEUWSUUTUWTUXJUXBUUTUVAUUSUVFUVKVSUWTUUMUUPVTEPUUKWAZWBUUKVRWCUXCUV
        DFUXFUWSUVEUXBUVCUVEUUSUVBUVKWDVBUXCUUSUVBUVFUXAUXFFNZUUSUVBUVFUVKUXBWE
        UUSUVBUVFUVKUXBWLUUSUVBUVFUVKUXBWMUWSUXAUUPWFABCDEFGHUUKIWGZWHWIUWSUWJU
        XBUVKUWJUVGUWRUOVBUXBUXGUWSUUPUXGUXAUXGUUPUXGLUUOTNZUUPLZUUNUUKVCUXNUUO
        MUXNUUOMUTUWPUWQUUOTMVLVJVKWCVMUOUOUXCUVHMUUOUVGUVKUXBWJUWSUXAUUPWKWIGU
        UKUUNWNWOWPWPXAWQWRWSUWGUWJUWNRKGEUVPGNZUVRUWJUWFUWNUXPUVQUWIUUNUVPGWTX
        BUXPUWEUWMJEUXPUVTUUMUWDUWLUXPUVSUULUVPGUUKUCXKXCUXPUWBUWKUWCUVPGUWAXDX
        EXFXGXHXIXJUVOUVLUUNUAUBZUVQQZUVTUVPUXQURZSZUUKUXSSZNZOZJEUGZRZKEUHZUAX
        LZQZUWHUVOUUSUVLUYHXMUUSUVBUVFUURUVKXNUUSUUNUYGUUNABUACDEFHJKIXOXBWCUVO
        UVMUUNVEQUYHUWHXMUVJUVMUVKUVNVBFXPUYFUWHUAUUNVEUXQUUNNZUYEUWGKEUYIUXRUV
        RUYDUWFUXQUUNUVQXQUYIUYCUWEJEUYIUYBUWDUVTUYIUXTUWBUYAUWCUYIUXSUWAUVPUXQ
        UUNXRZXSUYIUXSUWAUUKUYJXSXTYBXGXHYAYCUQYDYEYFYGUURLUUMUXORZJEUHZUVGUVIU
        UMUUPJEYHUYLUVGUVIUYKUVGUVIOZJEUWTUUMUXOUYMUVGUXAUXORUXAUXNUUOVDNZYIZRU
        VIUVGUXAUXOUYOUVGUXARZUXNUUPUYNYMZUXOUYOUYPUXJUYQUVGUUTUWTUXJUXAUXIUWTU
        UMYJUXKWBUUKUUNYNWCUXNUUPUYNYKYLYOUVGUXAUYOUVIUYPUXNUVIUYNUYPUXNUVIUYPU
        UOTUYPUUSUVBUWTUXLUUOTUTUUSUVBUVFUXAYPZUUSUVBUVFUXAYQZUVGUWTUUMWFZUYPUU
        SUVBUVFUXAUXLUYRUYSUUSUVBUVFUXAYRUVGUXAYSUXMWHZABCDEFUUKHIUUCWHVKYTUYPU
        YNUVIUYPUUOVDUYPUUSUVBUWTUXLUUOVDUTUYRUYSUYTVUAABCDEFUUKHIUUDWHVKYTUUEU
        UFUUGUUAUUBUUHUUIUUJ $.
    $}

    ${
      $d A g $.  $d A u $.  $d A v $.  $d A x $.  $d A y $.  $d g u $.
      $d g v $.  $d g x $.  $d g y $.  $d U u $.  $d u v $.  $d U v $.
      $d u x $.  $d u y $.  $d v x $.  $d v y $.  $d x y $.
      $( Lemma for ~ nosupbnd1 .  Establish a hard upper bound when there is no
         maximum.  (Contributed by Scott Fenton, 6-Dec-2021.) $)
      nosupbnd1lem6 $p |- ( ( -. E. x e. A A. y e. A -. x <s y /\
    ( A C_ No /\ A e. _V ) /\ U e. A ) -> ( U |` dom S ) <s S ) $=
        ( cslt wbr wn csur wcel wa wceq c0 c1o c2o wne cv wral wrex wss cvv w3a
        cdm cres cfv w3o simp2l simp3 sseldd nofv syl 3oran sylib simpl1 simpl2
        simpl3 simpr nosupbnd1lem4 syl112anc neneqd nosupbnd1lem5 nosupbnd1lem3
        3jca mtand nosupbnd1lem1 con0 nosupno 3ad2ant2 nodmon noreson wor sltso
        syl2anc solin mpan ecase23d ) AUABUAJKLBEUBAEUCLZEMUDZEUENZOZGENZUFZGFU
        GZUHZFJKZWHFPZFWHJKZWFWJWGGUIZQPZLZWLRPZLZWLSPZLZUFZWFWMWOWQUJZWSLWFGMN
        ZWTWFEMGWAWBWCWEUKWAWDWEULUMZGWGUNUOWMWOWQUPUQWFWJOZWNWPWRXCWLQXCWAWDWE
        WJWLQTWAWDWEWJURZWAWDWEWJUSZWAWDWEWJUTZWFWJVAZABCDEFGHIVBVCVDXCWLRXCWAW
        DWEWJWLRTXDXEXFXGABCDEFGHIVEVCVDXCWLSXCWAWDWEWJWLSTXDXEXFXGABCDEFGHIVFV
        CVDVGVHABCDEFGHIVIWFWHMNZFMNZWIWJWKUJZWFXAWGVJNZXHXBWFXIXKWDWAXIWEABCDE
        FHUEIVKVLZFVMUOGWGVNVQXLMJVOXHXIOXJVPMWHFJVRVSVQVT $.
    $}

    ${
      $d A g $.  $d A u $.  $d A v $.  $d A x $.  $d A y $.  $d g u $.
      $d g v $.  $d g x $.  $d g y $.  $d U u $.  $d u v $.  $d U v $.
      $d u x $.  $d U x $.  $d u y $.  $d U y $.  $d v x $.  $d v y $.
      $d x y $.
      $( Bounding law from below for the surreal supremum.  Proposition 4.2 of
         [Lipparini] p. 6.  (Contributed by Scott Fenton, 6-Dec-2021.) $)
      nosupbnd1 $p |- ( ( A C_ No /\ A e. _V /\ U e. A ) ->
    ( U |` dom S ) <s S ) $=
        ( cv cslt wbr wn csur wcel cdm cres wa nfcv wceq wral wrex wss cvv crio
        w3a csuc c2o cop csn cun simpr3 nfv nfriota1 nfbr nfral nfim simpl wreu
        wi nfn wb wrmo rspe adantr nomaxmo 3ad2ant1 adantl reu5 sylanbrc riota1
        syl mpbid simplr nfra1 nfriota nfeq breq1 notbid ralbid biimprd rexlimi
        sylc exp31 breq2 rspc wrel wfun simpr1 riotacl sseldd nofun funrel 3syl
        imp sssucid relssres sylancl breq1d nodmon sucelon sylib sltres syl3anc
        con0 sylbird mtod noextendgt noreson syl2anc c1o 2on elexi noextend wor
        prid2 sltso sotr2 mpan mp2and cab cfv cio cmpt cif iftrue syl5eq dmsnop
        dmeqd uneq2i df-suc 3eqtr4i syl6eq reseq2d 3brtr4d simpr2 nosupbnd1lem6
        dmun syl121anc pm2.61ian ) AJZBJZKLZMZBEUAZAEUBZENUCZEUDOZGEOZUFZGFPZQZ
        FKLZUUFUUJRZGUUEAEUEZPZUGZQZUUOUUPUHUIUJZUKZUULFKUUNUUOUURKLZMZUUOUUTKL
        ZUURUUTKLZUUNUVAUUOGKLZUUNUUIUUOUUBKLZMZBEUAZUVEMZUUFUUGUUHUUIULZUUFUUJ
        UVHUUEUUJUVHUTAEUUJUVHAUUJAUMUVGABEAESUVFAAUUOUUBKUUEAEUNAKSAUUBSUOVAUP
        UQUUAEOZUUEUUJUVHUVKUUERZUUJRZUUOUUATZUUEUVHUVMUVLUVNUVLUUJURUVMUUEAEUS
        ZUVLUVNVBUVMUUFUUEAEVCZUVOUVLUUFUUJUUEAEVDVEUUJUVPUVLUUGUUHUVPUUIABEVFV
        GZVHUUEAEVIZVJUUEAEVKVLVMUVKUUEUUJVNUVNUVHUUEUVNUVGUUDBEBUUOUUAUUEBAEUU
        DBEVOBESVPZBUUASVQUVNUVFUUCUUOUUAUUBKVRVSVTWAWCWDWBWOUVGUVIBGEUVEBBUUOG
        KUVSBKSBGSUOVAUUBGTUVFUVEUUBGUUOKWEVSWFWCUUNUVAUUOUUQQZUURKLZUVEUUNUVTU
        UOUURKUUNUUOWGZUUPUUQUCUVTUUOTUUNUUONOZUUOWHUWBUUNENUUOUUFUUGUUHUUIWIZU
        UNUVOUUOEOUUNUUFUVPUVOUUFUUJURUUJUVPUUFUVQVHUVRVJUUEAEWJVLWKZUUOWLUUOWM
        WNUUPWPUUOUUQWQWRWSUUNUWCGNOZUUQXEOZUWAUVEUTUWEUUNENGUWDUVJWKZUUNUUPXEO
        ZUWGUUNUWCUWIUWEUUOWTVLUUPXAXBZUUOGUUQXCXDXFXGUUNUWCUVCUWEUUOXHVLUUNUUR
        NOZUWCUUTNOZUVBUVCRUVDUTZUUNUWFUWGUWKUWHUWJGUUQXIXJUWEUUNUWCUWLUWEUUOUH
        XKUHUHXEXLXMZXPXNVLNKXOUWKUWCUWLUFUWMXQNUURUUOUUTKXRXSXDXTUUNUUKUUQGUUF
        UUKUUQTUUJUUFUUKUUTPZUUQUUFFUUTUUFFUUFUUTHUUBDJZPZOCJZUWPKLMZUWPUUBUGZQ
        UWRUWTQTUTCEUARDEUBBYAHJZUWQOUWSUWPUXAUGZQUWRUXBQTUTCEUAUXAUWPYBUUATUFD
        EUBAYCYDZYEUUTIUUFUUTUXCYFYGZYIUUPUUSPZUKUUPUUPUJZUKUWOUUQUXEUXFUUPUUPU
        HUWNYHYJUUOUUSYRUUPYKYLYMVEYNUUFFUUTTUUJUXDVEYOUUFMZUUJRUXGUUGUUHUUIUUM
        UXGUUJURUXGUUGUUHUUIWIUXGUUGUUHUUIYPUXGUUGUUHUUIULABCDEFGHIYQYSYT $.
    $}
  $}

  ${
    $d A a $.  $d a q $.  $d A q $.  $d p q $.  $d p x $.  $d q x $.  $d q y $.
    $d U a $.  $d U p $.  $d U q $.  $d U x $.  $d Z a $.  $d Z p $.  $d Z q $.
    $d Z x $.
    $( Bounding law from above when a set of surreals has a maximum.
       (Contributed by Scott Fenton, 6-Dec-2021.) $)
    nosupbnd2lem1 $p |- ( ( ( U e. A /\ A. y e. A -. U <s y ) /\
     ( A C_ No /\ A e. _V /\ Z e. No ) /\
     A. a e. A a <s Z ) ->
     -. ( Z |` suc dom U ) <s ( U u. { <. dom U , 2o >. } ) ) $=
      ( vx vq wcel cslt wbr wn wa csur c2o cfv con0 wceq syl c1o c0 vp wral wss
      cvv w3a cdm csuc cres cop csn cun simp1l simp3 breq1 rspcv sylc crab cint
      cv wne simpl21 simpl1l sseldd simpl23 simp21 sltso sonr mpan breq2 notbid
      wor syl5ibcom con2d neqned nosepssdm syl3anc wo wb nosepon nodmon syl2anc
      imp onsseleq ctp wrex adantr sylan simpr weq fveq2 neeq12d onnminsb df-ne
      onelon con2bii sylibr simplr ontr1 mp2and fvresd eqtr4d ralrimiva sltval2
      wi mpbid breqtrrd raleq breq12d anbi12d rspcev syl12anc sltval mpbird cxp
      noreson cin df-res xpsng sylancl 3syl syl5eq wfun nofun eqtrd elexi sylib
      2on mpd eleq2d ex sylbid nosgnn0i ndmfv mpbiri neneqd intnanrd w3o adantl
      fvex 3orrot ineq1d incom word nodmord ordirr disjsn xpdisj1 eqtr3d uneq2d
      resundir un0 eqcomi 3eqtr4g wrel resdm sssucid resabs1 mp1i 3brtr4d prid2
      funrel sucelon sltres soasym df-suc reseq2i resundi eqtri dmres necom a1i
      noextend rabbiia inteqi necomd syl5eqss eqsstr3d biimpar ralrimiv eqfunfv
      df-ss nesym funres mpbir2and wfn funfn prid1 neeq1d 3brtr3d brtp ecase23d
      1on 3bitri simprd neeq1 con4i fnressn opeq2d sneqd uneq12d eqnbrtrd mpdan
      jaodan ) CBHZCAUSIJKABUBZLZBMUCZBUDHZDMHZUEZEUSZDIJZEBUBZUEZCDIJZDCUFZUGZ
      UHZCUXPNUIZUJZUKZIJKZUXNUXDUXMUXOUXDUXEUXJUXMULZUXFUXJUXMUMUXLUXOECBUXKCD
      IUNUOUPUXNUXOLZFUSZCOZUYEDOZUTZFPUQZURZUXPUCZUYBUYDCMHZUXICDUTZUYKUYDBMCU
      XGUXHUXIUXFUXMUXOVAUXDUXEUXJUXMUXOVBVCZUXGUXHUXIUXFUXMUXOVDZUYDCDUXNUXOCD
      QZKUXNUYPUXOUXNCCIJZKZUYPUXOKUXNUYLUYRUXNBMCUXFUXGUXHUXIUXMVEUYCVCMIVKZUY
      LUYRVFMCIVGVHRUYPUYQUXOCDCIVIVJVLVMWBVNZFCDVOVPUYDUYKUYJUXPHZUYJUXPQZVQZU
      YBUYDUYJPHZUXPPHZUYKVUCVRUYDUYLUXIUYMVUDUYNUYOUYTFCDVSZVPUYDUYLVUEUYNCVTZ
      RZUYJUXPWCWAUYDVUCUYBUYDVUAUYBVUBUYDVUALZUYAUXRIJZUYBVUIUYAUXPUHZUXRUXPUH
      ZIJZVUJVUICDUXPUHZVUKVULIVUICVUNIJZGUSZCOZVUPVUNOZQZGUAUSZUBZVUTCOZVUTVUN
      OZSTUISNUITNUIWDZJZLZUAPWEZVUIVUDVUSGUYJUBZUYJCOZUYJVUNOZVVDJZVVGVUIUYLUX
      IUYMVUDUYDUYLVUAUYNWFZUYDUXIVUAUYOWFZUYDUYMVUAUYTWFVUFVPZVUIVUSGUYJVUIVUP
      UYJHZLZVUQVUPDOZVURVVPVUQVVQUTZKZVUQVVQQZVVPVUPPHZVVOVVSVUIVUDVVOVWAVVNUY
      JVUPWNWGVUIVVOWHZUYHVVRFVUPFGWIUYFVUQUYGVVQUYEVUPCWJUYEVUPDWJWKWLZUPVVRVV
      TVUQVVQWMWOWPVVPVUPUXPDVVPVVOVUAVUPUXPHZVWBUYDVUAVVOWQVVPVUEVVOVUALVWDXDV
      UIVUEVVOUYDVUEVUAVUHWFZWFVUPUYJUXPWRRWSWTXAXBVUIVVIUYJDOZVVJVVDVUIUXOVVIV
      WFVVDJZUXNUXOVUAWQVUIUYLUXIUXOVWGVRZVVLVVMCDFXCZWAXEVUIUYJUXPDUYDVUAWHWTX
      FVVFVVHVVKLUAUYJPVUTUYJQZVVAVVHVVEVVKVUSGVUTUYJXGVWJVVBVVIVVCVVJVVDVUTUYJ
      CWJVUTUYJVUNWJXHXIXJXKVUIUYLVUNMHZVUOVVGVRVVLVUIUXIVUEVWKVVMVWEDUXPXOWAUA
      GCVUNXLWAXMVUIVUKCUXPUHZCVUIVWLUXTUXPUHZUKVWLTUKZVUKVWLVUIVWMTVWLVUIVWMUX
      TUXPUDXNZXPZTUXTUXPXQVUIUXPUJZNUJZXNZVWOXPZVWPTVUIVWSUXTVWOVUIVUENPHVWSUX
      TQVWEYGUXPNPPXRXSUUAVUIVWQUXPXPZTQVWTTQVUIVXAUXPVWQXPZTVWQUXPUUBVUIUXPUXP
      HKZVXBTQVUIUYLUXPUUCZVXCVVLCUUDZUXPUUEZXTUXPUXPUUFWPYAVWQUXPVWRUDUUGRUUHY
      AUUICUXTUXPUUJVWNVWLVWLUUKUULUUMVUICYBZCUUNVWLCQVUIUYLVXGVVLCYCZRCUVACUUO
      XTYDUXPUXQUCVULVUNQVUIUXPUUPDUXPUXQUUQUURUUSVUIUYAMHZUXRMHZVUEVUMVUJXDUYD
      VXIVUAUYDUYLVXIUYNCNSNNPYGYEUUTZUVLZRWFZUYDVXJVUAUYDUXIUXQPHZVXJUYOUYDVUE
      VXNVUHUXPUVBYFDUXQXOWAWFZVWEUYAUXRUXPUVCVPYHVUIVXIVXJVUJUYBXDZVXMVXOUYSVX
      IVXJLVXPVFMIUYAUXRUVDVHWAYHUYDVUBLZUXRUYAUYAIVXQUXRVUNDVWQUHZUKZUYAUXRDUX
      PVWQUKZUHVXSUXQVXTDUXPUVEUVFDUXPVWQUVGUVHVXQVUNCVXRUXTVXQVUNCQZVUNUFZUXPQ
      ZVURVUQQZGVYBUBZVXQVYBUXPDUFZXPZUXPDUXPUVIVXQUXPVYFUCVYGUXPQVXQUXPUYJVYFU
      YDVUBWHZVXQUYJUYGUYFUTZFPUQZURZVYFUYIVYJUYHVYIFPUYHVYIVRUYEPHUYFUYGUVJUVK
      UVMUVNVXQUXIUYLDCUTVYKVYFUCUYDUXIVUBUYOWFZUYDUYLVUBUYNWFZVXQCDUYDUYMVUBUY
      TWFUVOFDCVOVPUVPUVQUXPVYFUWAYFYAZVXQVYDGVYBVXQVUPVYBHVWDVYDVXQVYBUXPVUPVY
      NYIVXQVWDVYDVXQVWDLZVURVVQVUQVYOVUPUXPDVXQVWDWHWTVYOVVSVVQVUQQZVYOVWAVVOV
      VSVXQVUEVWDVWAVXQUYLVUEVYMVUGRUXPVUPWNWGVXQVVOVWDVXQUYJUXPVUPVYHYIUVRVWCU
      PVVRVYPVUQVVQUWBWOWPYDYJYKUVSVXQVUNYBZVXGVYAVYCVYELVRVXQUXIDYBZVYQVYLDYCZ
      UXPDUWCXTVXQUYLVXGVYMVXHRGVUNCUVTWAUWDVXQVXRUXPUXPDOZUIZUJZUXTVXQDVYFUWEZ
      UXPVYFHZVXRWUBQVXQVYRWUCVXQUXIVYRVYLVYSRDUWFYFVXQVYTNQZWUDVXQUXPCOZTQZWUE
      VXQWUGWUELZWUFSQZVYTTQZLZWUIWUELZVXQWUIWUJVXQWUFSVXQWUFSUTTSUTSSNSPUWLYEU
      WGYLVXQWUFTSVXQVXDVXCWUGVXQUYLVXDVYMVXERVXFUXPCYMXTUWHYNYOZYPVXQWUIWUEWUM
      YPVXQWUFVYTVVDJZWUHWUKWULYQZVXQVVIVWFWUFVYTVVDVXQUXOVWGUXNUXOVUBWQVXQUYLU
      XIVWHVYMVYLVWIWAXEVUBVVIWUFQUYDUYJUXPCWJYRVUBVWFVYTQUYDUYJUXPDWJYRUWIWUNW
      UKWULWUHYQWULWUHWUKYQWUOSTSNTNWUFVYTUXPCYSUXPDYSUWJWUKWULWUHYTWULWUHWUKYT
      UWMYFUWKUWNZWUDWUEWUDKWUJWUEKUXPDYMWUJVYTNWUJVYTNUTTNUTNVXKYLVYTTNUWOYNYO
      RUWPRVYFUXPDUWQWAVXQWUAUXSVXQVYTNUXPWUPUWRUWSYDUWTYAVXQUYLVXIUYAUYAIJKZVY
      MVXLUYSVXIWUQVFMUYAIVGVHXTUXAUXCYJYKYHUXB $.
  $}

  ${
    nosupbnd2.1 $e |- S = if ( E. x e. A A. y e. A -. x <s y ,
       ( ( iota_ x e. A A. y e. A -. x <s y ) u.
         { <. dom ( iota_ x e. A A. y e. A -. x <s y ) , 2o >. } ) ,
       ( g e. { y | E. u e. A ( y e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc y ) = ( v |` suc y ) ) ) }
       |-> ( iota x E. u e. A ( g e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc g ) = ( v |` suc g ) ) /\
       ( u ` g ) = x ) ) ) ) $.

    ${
      $d A a $.  $d a g $.  $d A g $.  $d a p $.  $d A p $.  $d A q $.
      $d a u $.  $d A u $.  $d a v $.  $d A v $.  $d a x $.  $d A x $.
      $d a y $.  $d A y $.  $d g p $.  $d g q $.  $d g u $.  $d g v $.
      $d g x $.  $d g y $.  $d p q $.  $d p u $.  $d p v $.  $d p x $.
      $d p y $.  $d q u $.  $d q v $.  $d q y $.  $d S a $.  $d S g $.
      $d S p $.  $d u v $.  $d u x $.  $d u y $.  $d v x $.  $d v y $.
      $d x y $.  $d Z a $.  $d Z g $.  $d Z p $.  $d Z x $.

      $( Bounding law from above for the surreal supremum.  Proposition 4.3 of
         [Lipparini] p. 6.  (Contributed by Scott Fenton, 6-Dec-2021.) $)
      nosupbnd2 $p |- ( ( A C_ No /\ A e. _V /\ Z e. No ) ->
     ( A. a e. A a <s Z <-> -. ( Z |` dom S ) <s S ) ) $=
        ( csur wcel cslt wbr cdm cres wn wa wi wceq vp vq wss cvv w3a wral wrex
        nfv nfcv crio c2o cop csn cun csuc cab cfv cio cmpt nfre1 nfriota1 nfdm
        cif nfop nfsn nfun nfiota1 nfmpt nfif nfcxfr nfres nfbr nfim simpl wreu
        nfn wrmo rspe adantr nomaxmo 3ad2ant1 ad2antrl reu5 sylanbrc riota1 syl
        cv wb mpbid nosupbnd2lem1 3expb dmeq suceq reseq2d opeq1d sneqd uneq12d
        breq12d notbid syl5ibrcom mpd iftrue syl5eq dmeqd con0 2on elexi dmsnop
        id uneq2i dmun df-suc 3eqtr4i syl6eq mtbird rexlimi imp nosupno 3adant3
        exp31 nodmon noreson syl2anc simprl3 cin dmres inss2 eqsstri inss1 sylc
        a1i breq1 sltso mpan sltres syl3anc breq2d simpr resabs1d ralrimiva wor
        nosupdm abeq2d simprl simplrr rspcv simprl1 sseldd soasym simprrl sylib
        onelon sucelon simpll simprl2 jca simprrr reseq1 eqeq2d imbi12d cbvralv
        mtod sylibr nosupres syl113anc rexlimdvaa word nodmord ordsucss noresle
        weq sylbid syl23anc wfun wrel nofun funrel resdm 3syl pm2.61ian simpll1
        mtbid simpll2 nosupbnd1 simplr simpl1 sselda simpll3 mp2and impbida
        sotr3 ) EKUCZEUDLZHKLZUEZIWGZHMNZIEUFZHFOZPZFMNZQZAWGZBWGZMNQBEUFZAEUGZ
        UWOUWRRZUXBUXFUXGUXBUXEUXGUXBSAEUXGUXBAUXGAUHUXAAAUWTFMAHUWSAHUIAFAFUXF
        UXEAEUJZUXHOZUKULZUMZUNZGUXDDWGZOZLCWGZUXMMNQZUXMUXDUOZPUXOUXQPTSCEUFRD
        EUGBUPZGWGZUXNLUXPUXMUXSUOZPUXOUXTPZTSCEUFUXSUXMUQUXCTUEDEUGZAURZUSZVCZ
        JUXFAUXLUYDUXEAEUTAUXHUXKUXEAEVAZAUXJAUXIUKAUXHUYFVBAUKUIVDVEVFAGUXRUYC
        AUXRUIUYBAVGVHVIVJZVBVKAMUIUYGVLVPVMUXCELZUXEUXGUXBUYHUXERZUXGRZUXAHUXI
        UOZPZUXLMNZUYJUXHUXCTZUYMQZUYJUYIUYNUYIUXGVNUYJUXEAEVOZUYIUYNWHUYJUXFUX
        EAEVQZUYPUYIUXFUXGUXEAEVRZVSUWOUYQUYIUWRUWLUWMUYQUWNABEVTWAWBUXEAEWCWDU
        XEAEWEWFWIUYJUYOUYNHUXCOZUOZPZUXCUYSUKULZUMZUNZMNZQZUYIUWOUWRVUFBEUXCHI
        WJWKUYNUYMVUEUYNUYLVUAUXLVUDMUYNUYKUYTHUYNUXIUYSTUYKUYTTUXHUXCWLZUXIUYS
        WMWFWNUYNUXHUXCUXKVUCUYNXIUYNUXJVUBUYNUXIUYSUKVUGWOWPWQWRWSWTXAUYJUWTUY
        LFUXLMUYIUWTUYLTUXGUYIUWSUYKHUYIUWSUXLOZUYKUYIFUXLUYIUXFFUXLTZUYRUXFFUY
        EUXLJUXFUXLUYDXBXCWFZXDUXIUXKOZUNUXIUXIUMZUNVUHUYKVUKVULUXIUXIUKUKXEXFX
        GXHXJUXHUXKXKUXIXLXMXNWNVSUYIVUIUXGVUJVSWRXOXTXPXQUXFQZUXGRZUWTFUWSPZMN
        ZUXAVUNVUOKLZUWTKLZVUOOZUWSUCZUWTOZUWSUCZUWTUXTPZVUOUXTPZMNZQZGUWSUFVUP
        QVUNFKLZUWSXELZVUQUWOVVGVUMUWRUWLUWMVVGUWNABCDEFGUDJXRZXSWBZVUNVVGVVHVV
        JFYAZWFZFUWSYBYCVUNUWNVVHVURUWLUWMUWNUWRVUMYDZVVLHUWSYBZYCVUTVUNVUSUWSU
        WSYEUWSFUWSYFUWSUWSYGYHYKVVBVUNVVAUWSHOZYEUWSHUWSYFUWSVVOYIYHYKVUNVVFGU
        WSVUNUXSUWSLZRZVVEHUXTPZFUXTPZMNZVUNVVPVVTQZVUNVVPUXSUAWGZOZLZUBWGZVWBM
        NZQZVWBUXTPZVWEUXTPZTZSZUBEUFZRZUAEUGZVWAVUMVVPVWNWHUXGVUMVWNGUWSABGCDE
        FGUBUAJUUBUUCVSVUNVWMVWAUAEVUNVWBELZVWMRZRZVVTVVRVWHMNZVWQVWRHVWBMNZVWQ
        VWBHMNZVWSQZVWQVWOUWRVWTVUNVWOVWMUUDZVUMUWOUWRVWPUUEUWQVWTIVWBEUWPVWBHM
        YLUUFYJVWQVWBKLZUWNVWTVXASZVWQEKVWBVUNUWLVWPUWLUWMUWNUWRVUMUUGZVSVXBUUH
        ZVUNUWNVWPVVMVSZKMUUAZVXCUWNRVXDYMKMVWBHUUIYNYCXAVWQUWNVXCUXTXELZVWRVWS
        SVXGVXFVWQUXSXELZVXIVWQVWCXELZVWDVXJVWQVXCVXKVXFVWBYAWFVUNVWOVWDVWLUUJZ
        VWCUXSUULYCUXSUUMUUKHVWBUXTYOYPUVBVWQVVSVWHVVRMVWQVUMUWLUWMRZVWOVWDUXOV
        WBMNZQZVWHUYATZSZCEUFZVVSVWHTVUMUXGVWPUUNVUNVXMVWPVUNUWLUWMVXEUWLUWMUWN
        UWRVUMUUOUUPVSVXBVXLVWQVWLVXRVUNVWOVWDVWLUUQVXQVWKCUBECUBUVKZVXOVWGVXPV
        WJVXSVXNVWFUXOVWEVWBMYLWSVXSUYAVWIVWHUXOVWEUXTUURUUSUUTUVAUVCABCDEFVWBG
        UXSJUVDUVEYQXOUVFUVLXQVVQVVCVVRVVDVVSMVVQHUXTUWSVVQUWSUVGZVVPUXTUWSUCVV
        QVVGVXTVUNVVGVVPVVJVSFUVHWFVUNVVPYRUXSUWSUVIYJZYSVVQFUXTUWSVYAYSWRXOYTU
        WSUWTVUOGUVJUVMVUNVUOFUWTMVUNFUVNZFUVOVUOFTVUNVVGVYBVVJFUVPWFFUVQFUVRUV
        SYQUWBUVTUWOUXBRZUWQIEVYCUWPELZRZUWPUWSPZUWTMNZUWQVYEVYFFMNZUXBVYGVYEUW
        LUWMVYDVYHUWLUWMUWNUXBVYDUWAZUWLUWMUWNUXBVYDUWCZVYCVYDYRABCDEFUWPGJUWDY
        PUWOUXBVYDUWEVYEVYFKLZVVGVURVYHUXBRVYGSZVYEUWPKLZVVHVYKVYCEKUWPUWLUWMUW
        NUXBUWFUWGZVYEVVGVVHVYEUWLUWMVVGVYIVYJVVIYCZVVKWFZUWPUWSYBYCVYOVYEUWNVV
        HVURUWLUWMUWNUXBVYDUWHZVYPVVNYCVXHVYKVVGVURUEVYLYMKMVYFFUWTUWKYNYPUWIVY
        EVYMUWNVVHVYGUWQSVYNVYQVYPUWPHUWSYOYPXAYTUWJ $.
    $}
  $}

  ${
    noetalem.1 $e |- S = if ( E. x e. A A. y e. A -. x <s y ,
       ( ( iota_ x e. A A. y e. A -. x <s y ) u.
         { <. dom ( iota_ x e. A A. y e. A -. x <s y ) , 2o >. } ) ,
       ( g e. { y | E. u e. A ( y e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc y ) = ( v |` suc y ) ) ) }
       |-> ( iota x E. u e. A ( g e. dom u /\
       A. v e. A ( -. v <s u -> ( u |` suc g ) = ( v |` suc g ) ) /\
       ( u ` g ) = x ) ) ) ) $.
    noetalem.2 $e |- Z =
    ( S u. ( ( suc U. ( bday " B ) \ dom S ) X. { 1o } ) ) $.

    ${
      $d A g $.  $d A u $.  $d A v $.  $d A x $.  $d A y $.  $d g u $.
      $d g v $.  $d g x $.  $d g y $.  $d u v $.  $d u x $.  $d u y $.
      $d v x $.  $d v y $.  $d x y $.
      $( Lemma for ~ noeta .  Establish that our final surreal really is a
         surreal.  (Contributed by Scott Fenton, 6-Dec-2021.) $)
      noetalem1 $p |- ( ( A C_ No /\ A e. _V /\ B e. _V ) -> Z e. No ) $=
        ( csur wss cvv wcel w3a cbday cima c1o con0 cdm csn cxp nosupno 3adant3
        cuni csuc cdif cun bdayimaon 3ad2ant3 c2o 1on elexi noextendseq syl2anc
        prid1 syl5eqel ) ELMZENOZFNOZPZIGQFRUFUGZGUAUHSUBUCUIZLKVBGLOZVCTOZVDLO
        USUTVEVAABCDEGHNJUDUEVAUSVFUTFNUJUKGVCSSULSTUMUNUQUOUPUR $.
    $}

    ${
      $d A g $.  $d A u $.  $d A v $.  $d A x $.  $d A y $.  $d g u $.
      $d g v $.  $d g x $.  $d g y $.  $d u v $.  $d u x $.  $d u y $.
      $d v x $.  $d v y $.  $d X u $.  $d X v $.  $d X x $.  $d x y $.
      $d X y $.
      $( Lemma for ~ noeta . ` Z ` is an upper bound for ` A ` .  Part of
         Theorem 5.1 of [Lipparini] p. 7-8.  (Contributed by Scott Fenton,
         4-Dec-2021.) $)
      noetalem2 $p |- ( ( ( A C_ No /\ A e. _V /\ B e. _V ) /\ X e. A ) ->
      X <s Z ) $=
        ( csur cvv wcel cres cslt wbr cun c0 wss w3a wa cdm simpl1 simpl2 simpr
        nosupbnd1 syl3anc cbday cima cuni csuc c1o csn cxp reseq1i resundir cin
        cdif df-res wceq incom disjdif eqtri xpdisj1 ax-mp uneq2i un0 wfun wrel
        3eqtri nosupno syl2anc nofun syl funrel resdm 3syl syl5eq breqtrrd con0
        wi simp1 sselda noetalem1 adantr nodmon sltres mpd ) EMUAZENOZFNOZUBZIE
        OZUCZIGUDZPZJWQPZQRZIJQRZWPWRGWSQWPWKWLWOWRGQRWKWLWMWOUEZWKWLWMWOUFZWNW
        OUGABCDEGIHKUHUIWPWSGWQPZGWSGUJFUKULUMZWQUTZUNUOZUPZSZWQPZXDJXIWQLUQXJX
        DXHWQPZSXDTSXDGXHWQURXKTXDXKXHWQNUPUSZTXHWQVAXFWQUSZTVBXLTVBXMWQXFUSTXF
        WQVCWQXEVDVEXFWQXGNVFVGVEVHXDVIVLVEWPGVJZGVKXDGVBWPGMOZXNWPWKWLXOXBXCAB
        CDEGHNKVMVNZGVOVPGVQGVRVSVTWAWPIMOJMOZWQWBOZWTXAWCWNEMIWKWLWMWDWEWNXQWO
        ABCDEFGHJKLWFWGWPXOXRXPGWHVPIJWQWIUIWJ $.
    $}

    ${
      $d A a $.  $d a b $.  $d A b $.  $d a g $.  $d A g $.  $d a u $.
      $d A u $.  $d a v $.  $d A v $.  $d a x $.  $d A x $.  $d a y $.
      $d A y $.  $d B a $.  $d B b $.  $d b g $.  $d b p $.  $d b q $.
      $d b x $.  $d g u $.  $d g v $.  $d g x $.  $d g y $.  $d p q $.
      $d S a $.  $d S g $.  $d S q $.  $d u v $.  $d u x $.  $d u y $.
      $d v x $.  $d v y $.  $d x y $.  $d Z p $.  $d Z q $.
      $( Lemma for ~ noeta .  When ` A ` and ` B ` are separated, then ` Z ` is
         a lower bound for ` B ` .  Part of Theorem 5.1 of [Lipparini] p. 7-8.
         (Contributed by Scott Fenton, 7-Dec-2021.) $)
      noetalem3 $p |- ( ( ( A C_ No /\ A e. _V ) /\ ( B C_ No /\ B e. _V ) /\
      A. a e. A A. b e. B a <s b ) -> A. b e. B Z <s b ) $=
        ( csur wcel wa wn wceq cfv con0 vp vq wss cvv cslt wbr wral ralcom cres
        cv cdm wb simplll simpllr simprl nosupbnd2 syl3anc cbday cima cuni csuc
        sselda cun word simpl ssel2 syl2an nodmord ordirr ssun2 bdayval syl wfn
        3syl wfo bdayfo fofn fnfvima mp3an1 eqeltrrd elssuni nodmon crn imassrn
        ax-mp forn sseqtri ssorduni ordsssuc mpan2 mpbid sseldi eleq2 syl5ibcom
        mtod cdif c1o csn cxp dmeqi dmun eqtri wne 1on elexi snnz uneq2i undif2
        c0 dmxp 3eqtri dmeq syl5eqr nsyl df-ne crab cint wo notnotr wrex fvresd
        simpr reseq1i resundir df-res wfun adantr syl5eq simp-4l simplrr simplr
        cin nofun fveq2 necom syl2anc con2bid wi a1i simplrl incom disjdif wrel
        xpdisj1 un0 nosupno funrel resdm fveq1d eqtr3d simp-4r nosepne eqnetrrd
        noetalem1 neeqtrrd neeq12d 3bitr3g rspcev syl5ibrcom rexnal syl6ib syl5
        rexeq orrd funres eqfunfv con1bii syl6bbr pm2.21d breq1d sltres sylbird
        ianor noreson wor sltso sotric mpan mpbird mpjaod fveq1i funfn sylib wf
        fconst ffn rabbiia inteqi necomd nosepssdm syl5eqss nosepon ordsuc mpbi
        eloni ordtr2 mp2and ontri1 eldifd fvun2 fvconst2 eqtrd nosep1o syl31anc
        syl112anc ordtri2or mpjaodan ex syl5bir mpd expr sylbid ralimdva syl5bi
        3impia ) ENUCZEUDOZPZFNUCZFUDOZPZJUJKUJZUEUFZKFUGJEUGZIUYBUEUFZKFUGZUYD
        UYCJEUGZKFUGUXRUYAPZUYFUYCJKEFUHUYHUYGUYEKFUYHUYBFOZPZUYGUYBGUKZUIZGUEU
        FZQZUYEUYJUXPUXQUYBNOZUYGUYNULUXPUXQUYAUYIUMUXPUXQUYAUYIUNUYHFNUYBUXRUX
        SUXTUOZVBABCDEGHUYBJLUPUQUYHUYIUYNUYEUYHUYIUYNPZPZIUYBRZQZUYEUYRUYKURFU
        SZUTZVAZVCZUYBUKZRZUYSUYRVUFVUEVUEOZUYRUYOVUEVDVUGQUYHUXSUYIUYOUYQUYPUY
        IUYNVEZFNUYBVFVGZUYBVHVUEVIVNUYRVUEVUDOVUFVUGUYRVUCVUDVUEVUCUYKVJUYRVUE
        VUBUCZVUEVUCOZUYRVUEVUAOZVUJUYRUYBURSZVUEVUAUYRUYOVUMVUERZVUIUYBVKZVLUY
        HUXSUYIVUMVUAOZUYQUYPVUHURNVMZUXSUYIVUPNTURVOZVUQVPNTURVQWENFURUYBVRVSZ
        VGVTVUEVUAWAZVLUYRUYOVUETOZVUJVUKULZVUIUYBWBZVVAVUBVDZVVBVUATUCVVDVUAUR
        WCZTURFWDVURVVETRVPNTURWFWEWGVUAWHWEZVUEVUBWIWJZVNWKWLVUDVUEVUEWMWNWOUY
        SVUDIUKZVUEVVHUYKVUCUYKWPZWQWRZWSZUKZVCZUYKVVIVCVUDVVHGVVKVCZUKVVMIVVNM
        WTGVVKXAXBVVLVVIUYKVVJXIXCVVLVVIRWQWQTXDXEZXFVVIVVJXJWEXGUYKVUCXHXKIUYB
        XLXMXNUYTIUYBXCZUYRUYEIUYBXOUYRVVPUYEUYRVVPPZUAUJZISZVVRUYBSZXCZUATXPZX
        QZUYKOZUYEUYKVWCUCZVVQVWDPZUYLGRZUYEGUYLUEUFZVWFVWGUYEVWFUYLUKZUYKRZQZU
        BUJZUYLSZVWLGSZRZUBVWIUGZQZXRZVWGQVWFVWKVWQVWKQVWJVWFVWQVWJXSVWFVWJVWOQ
        ZUBVWIXTZVWQVWFVWTVWJVWSUBUYKXTZVWFVWDVWCGSZVWCUYLSZXCZVXAVVQVWDYBZVWFV
        XBVWCUYBSZVXCVWFVWCISZVXBVXFVWFVWCIUYKUIZSVXGVXBVWFVWCUYKIVXEYAVWFVWCVX
        HGVWFVXHGUYKUIZGVXHVVNUYKUIVXIVVKUYKUIZVCZVXIIVVNUYKMYCGVVKUYKYDVXKVXIX
        IVCVXIVXJXIVXIVXJVVKUYKUDWSYLZXIVVKUYKYEVVIUYKYLZXIRVXLXIRVXMUYKVVIYLZX
        IVVIUYKUUAUYKVUCUUBZXBVVIUYKVVJUDUUDWEXBXGVXIUUEXBXKVWFGYFZGUUCVXIGRVWF
        GNOZVXPVVQVXQVWDVVQUXRVXQUXRUYAUYQVVPUMZABCDEGHUDLUUFZVLYGZGYMZVLZGUUGG
        UUHVNYHZUUIUUJVWFINOZUYOVVPVXGVXFXCVVQVYDVWDVVQUXPUXQUXTVYDUXPUXQUYAUYQ
        VVPYIUXPUXQUYAUYQVVPUUKUYRUXTVVPUXRUXSUXTUYQYJYGABCDEFGHILMUUNUQZYGZVVQ
        UYOVWDUYRUYOVVPVUIYGZYGZUYRVVPVWDYKUAIUYBUULUQUUMVWFVWCUYKUYBVXEYAUUOVW
        SVXDUBVWCUYKVWLVWCRZVWMVWNXCVXCVXBXCVWSVXDVYIVWMVXCVWNVXBVWLVWCUYLYNVWL
        VWCGYNUUPVWMVWNXOVXCVXBYOUUQUURYPVWSUBVWIUYKUVCUUSVWOUBVWIUUTUVAUVBUVDV
        WFVWGVWRVWFVWGVWJVWPPZVWRQVWFUYLYFZVXPVWGVYJULVWFUYOUYBYFVYKVYHUYBYMUYK
        UYBUVEVNVYBUBUYLGUVFYPVYJVWRVWJVWPUVMUVGUVHYQWKUVIVWFVWHVXHUYLUEUFZUYEV
        WFVXHGUYLUEVYCUVJVWFVYDUYOUYKTOZVYLUYEYRVYFVYHVWFVXQVYMVXTGWBZVLZIUYBUY
        KUVKUQUVLVWFVWGVWHXRZUYNVVQUYNVWDUYHUYIUYNVVPYJYGVWFUYMVYPVWFUYLNOZVXQU
        YMVYPQULZVWFUYOVYMVYQVYHVYOUYBUYKUVNYPVXTNUEUVOVYQVXQPVYRUVPNUYLGUEUVQU
        VRYPYQUVSUVTVVQVWEPZVYDUYOVVPVXGWQRUYEVVQVYDVWEVYEYGZVVQUYOVWEVYGYGZUYR
        VVPVWEYKZVYSVXGVWCVVKSZWQVYSVXGVWCVVNSZWUCVWCIVVNMUWAVYSGUYKVMZVVKVVIVM
        ZVXNXIRZVWCVVIOZWUDWUCRVYSVXPWUEVYSUXRVXQVXPUXRUYAUYQVVPVWEYIZVXSVYAVNG
        UWBUWCWUFVYSVVIVVJVVKUWDWUFVVIWQVVOUWEVVIVVJVVKUWFWEYSWUGVYSVXOYSVYSVWC
        VUCUYKVYSVWCVUEUCZVUKVWCVUCOZVYSVWCVVTVVSXCZUATXPZXQZVUEVWBWUMVWAWULUAT
        VWAWULULVVRTOVVSVVTYOYSUWGUWHVYSUYOVYDUYBIXCWUNVUEUCWUAVYTVYSIUYBWUBUWI
        UAUYBIUWJUQUWKVYSVUJVUKVYSVULVUJVYSVUMVUEVUAVYSUYOVUNWUAVUOVLVYSUXSUYIV
        UPVVQUXSVWEUYRUXSVVPUXRUXSUXTUYQYTYGYGVVQUYIVWEUYHUYIUYNVVPYTYGVUSYPVTV
        UTVLVYSUYOVVAVVBWUAVVCVVGVNWKVYSVWCTOZVWCVDZWUJVUKPWUKYRZVYSVYDUYOVVPWU
        OVYTWUAWUBUAIUYBUWLZUQZVWCUWOZWUPVUCVDZWUQVVDWVAVVFVUBUWMUWNVWCVUEVUCUW
        PWJVNUWQVYSVWEVWDQZVVQVWEYBVYSVYMWUOVWEWVBULVYSUXRVXQVYMWUIVXSVYNVNWUSU
        YKVWCUWRYPWKUWSZUYKVVIGVVKVWCUWTUXEYHVYSWUHWUCWQRWVCVVIWQVWCVVOUXAVLUXB
        UAIUYBUXCUXDVVQWUPUYKVDZVWDVWEXRVVQWUOWUPVVQVYDUYOVVPWUOVYEVYGUYRVVPYBW
        URUQWUTVLVVQUXRVXQWVDVXRVXSGVHVNVWCUYKUXFYPUXGUXHUXIUXJUXKUXLUXMUXNUXO
        $.
    $}

    ${
      $d A g $.  $d A u $.  $d A v $.  $d A x $.  $d A y $.  $d g u $.
      $d g v $.  $d g x $.  $d g y $.  $d u v $.  $d u x $.  $d u y $.
      $d v x $.  $d v y $.  $d x y $.
      $( Lemma for ~ noeta .  Bound the birthday of ` Z ` above.  (Contributed
         by Scott Fenton, 6-Dec-2021.) $)
      noetalem4 $p |- ( ( ( A C_ No /\ A e. _V ) /\ ( B C_ No /\ B e. _V ) ) ->
    ( bday ` Z ) C_ suc U. ( bday " ( A u. B ) ) ) $=
        ( csur wss wcel cbday cun wceq con0 ax-mp eqtri cvv wa cdm cima nosupno
        cuni csuc cfv bdayval syl nosupbday eqsstr3d adantr unss1 simpll simplr
        simprr noetalem1 syl3anc cdif c1o csn cxp dmeqi dmun wne 1on elexi snnz
        c0 dmxp uneq2i undif2 syl6eq imaundi unieqi uniun suceq crn imassrn wfo
        word bdayfo forn sseqtri ssorduni ordsucun mp2an a1i 3sstr4d ) ELMZEUAN
        ZUBZFLMZFUANZUBZUBZGUCZOFUDZUFZUGZPZOEUDZUFZUGZXAPZIOUHZOEFPUDZUFZUGZWQ
        WRXEMZXBXFMWMXKWPWMWRGOUHZXEWMGLNXLWRQABCDEGHUAJUEGUIUJABCDEGHJUKULUMWR
        XEXAUNUJWQXGIUCZXBWQILNZXGXMQWQWKWLWOXNWKWLWPUOWKWLWPUPWMWNWOUQABCDEFGH
        IJKURUSIUIUJXMGXAWRUTZVAVBZVCZPZUCZXBIXRKVDXSWRXQUCZPZXBGXQVEYAWRXOPXBX
        TXOWRXPVJVFXTXOQVAVARVGVHVIXOXPVKSVLWRXAVMTTTVNXJXFQWQXJXDWTPZUGZXFXIYB
        QXJYCQXIXCWSPZUFYBXHYDOEFVOVPXCWSVQTXIYBVRSXDWBZWTWBZYCXFQXCRMYEXCOVSZR
        OEVTLROWAYGRQWCLROWDSZWEXCWFSWSRMYFWSYGROFVTYHWEWSWFSXDWTWGWHTWIWJ $.
    $}

    ${
      $d A a $.  $d a b $.  $d A b $.  $d a g $.  $d A g $.  $d a u $.
      $d A u $.  $d a v $.  $d A v $.  $d a x $.  $d A x $.  $d a y $.
      $d A y $.  $d a z $.  $d A z $.  $d B a $.  $d B b $.  $d b g $.
      $d b x $.  $d b z $.  $d B z $.  $d g u $.  $d g v $.  $d g x $.
      $d g y $.  $d S a $.  $d S g $.  $d u v $.  $d u x $.  $d u y $.
      $d v x $.  $d v y $.  $d x y $.  $d Z a $.  $d Z b $.  $d Z z $.
      $( Lemma for ~ noeta .  The full statement of the theorem with
         hypotheses.  (Contributed by Scott Fenton, 7-Dec-2021.) $)
      noetalem5 $p |- ( ( ( A C_ No /\ A e. V ) /\ ( B C_ No /\ B e. W ) /\
            A. a e. A A. b e. B a <s b ) ->
          E. z e. No ( A. a e. A a <s z /\ A. b e. B z <s b /\
                       ( bday ` z ) C_ suc U. ( bday " ( A u. B ) ) ) ) $=
        ( wcel wa cslt wral csur wss cvv cv wbr cfv cun cima cuni csuc w3a wrex
        cbday anim2i id simp1l simp1r noetalem1 syl3anc simplll simpllr simplrr
        elex simp2r simpr noetalem2 syl31anc ralrimiva noetalem3 noetalem4 wceq
        3adant3 breq2 ralbidv breq1 sseq1d 3anbi123d rspcev syl13anc syl3an
        fveq2 ) FUAUBZFJQZRWBFUCQZRZGUAUBZGKQZRWFGUCQZRZMUDZNUDZSUENGTMFTZWLWJC
        UDZSUEZMFTZWMWKSUEZNGTZWMUMUFZUMFGUGUHUIUJZUBZUKZCUAULZWCWDWBFJVCUNWGWH
        WFGKVCUNWLUOWEWIWLUKZLUAQZWJLSUEZMFTZLWKSUEZNGTZLUMUFZWSUBZXBXCWBWDWHXD
        WBWDWIWLUPWBWDWIWLUQWEWFWHWLVDABDEFGHILOPURUSWEWIXFWLWEWIRZXEMFXKWJFQZR
        WBWDWHXLXEWBWDWIXLUTWBWDWIXLVAWEWFWHXLVBXKXLVEABDEFGHIWJLOPVFVGVHVLABDE
        FGHILMNOPVIWEWIXJWLABDEFGHILOPVJVLXAXFXHXJUKCLUAWMLVKZWOXFWQXHWTXJXMWNX
        EMFWMLWJSVMVNXMWPXGNGWMLWKSVOVNXMWRXIWSWMLUMWAVPVQVRVSVT $.
    $}
  $}

  ${
    $d A a b c d e f x y z $.  $d B x y z $.
    $( The full-eta axiom for the surreal numbers.  This is the single most
       important property of the surreals.  It says that, given two sets of
       surreals such that one comes completely before the other, there is a
       surreal lying strictly between the two.  Furthermore, there is an upper
       bound on the birthday of that surreal.  Alling's axiom FE. (Contributed
       by Scott Fenton, 7-Dec-2021.) $)
    noeta $p |- ( ( ( A C_ No /\ A e. V ) /\ ( B C_ No /\ B e. W ) /\
            A. x e. A A. y e. B x <s y ) ->
          E. z e. No ( A. x e. A x <s z /\ A. y e. B z <s y /\
                       ( bday ` z ) C_ suc U. ( bday " ( A u. B ) ) ) ) $=
      ( va vb ve vd vf vc cv wral wrex cdm csuc cres wceq cslt wbr crio c2o cop
      wn csn cun wcel wi wa cab cfv w3a cio cmpt cif cima cuni cdif c1o cxp weq
      cbday eleq1 suceq reseq2d eqeq12d imbi2d ralbidv eqeq1d 3anbi123d rexbidv
      fveq2 iotabidv cbvmptv ifeq2 ax-mp eqid noetalem5 ) HICJKDEHNZINZUAUBUFID
      OZHDPZWCHDUCZWEQUDUEUGUHZLWBKNZQZUIJNZWGUAUBUFZWGWBRZSWIWKSTUJJDOUKKDPIUL
      ZLNZWHUIZWJWGWMRZSZWIWOSZTZUJZJDOZWMWGUMZWATZUNZKDPZHUOZUPZUQZMFGXGVDEURU
      SRXGQUTVAUGVBUHZABXFMWLMNZWHUIZWJWGXIRZSZWIXKSZTZUJZJDOZXIWGUMZWATZUNZKDP
      ZHUOZUPZTXGWDWFYBUQTLMWLXEYALMVCZXDXTHYCXCXSKDYCWNXJWTXPXBXRWMXIWHVEYCWSX
      OJDYCWRXNWJYCWPXLWQXMYCWOXKWGWMXIVFZVGYCWOXKWIYDVGVHVIVJYCXAXQWAWMXIWGVNV
      KVLVMVOVPWDXFYBWFVQVRXHVSVT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Surreal numbers - ordering theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare a new constant for surreal less than or equal. $)
  $c <_s $.

  $( Declare the syntax for surreal less than or equal. $)
  csle $a class <_s $.

  $( Define the surreal less than or equal predicate.  Compare ~ df-le .
     (Contributed by Scott Fenton, 8-Dec-2021.) $)
  df-sle $a |- <_s = ( ( No X. No ) \ `' <s ) $.

  $( Surreal less than is irreflexive.  (Contributed by Scott Fenton,
     16-Jun-2011.) $)
  sltirr $p |- ( A e. No -> -. A <s A ) $=
    ( csur cslt wor wcel wbr wn sltso sonr mpan ) BCDABEAACFGHBACIJ $.

  $( Surreal less than is transitive.  (Contributed by Scott Fenton,
     16-Jun-2011.) $)
  slttr $p |- ( ( A e. No /\ B e. No /\ C e. No ) ->
                ( ( A <s B /\ B <s C ) -> A <s C ) ) $=
    ( csur cslt wor wcel w3a wbr wa wi sltso sotr mpan ) DEFADGBDGCDGHABEIBCEIJ
    ACEIKLDABCEMN $.

  $( Surreal less than is asymmetric.  (Contributed by Scott Fenton,
     16-Jun-2011.) $)
  sltasym $p |- ( ( A e. No /\ B e. No ) -> ( A <s B -> -. B <s A ) ) $=
    ( csur cslt wor wcel wa wbr wn wi sltso soasym mpan ) CDEACFBCFGABDHBADHIJK
    CDABLM $.

  $( Surreal less than obeys trichotomy.  (Contributed by Scott Fenton,
     16-Jun-2011.) $)
  sltlin $p |- ( ( A e. No /\ B e. No ) -> ( A <s B \/ A = B \/ B <s A ) ) $=
    ( csur cslt wor wcel wa wbr wceq w3o sltso solin mpan ) CDEACFBCFGABDHABIBA
    DHJKCABDLM $.

  $( Trichotomy law for surreal less than.  (Contributed by Scott Fenton,
     22-Apr-2012.) $)
  slttrieq2 $p |- ( ( A e. No /\ B e. No ) ->
                    ( A = B <-> ( -. A <s B /\ -. B <s A ) ) ) $=
    ( csur cslt wor wcel wa wceq wbr wn wb sltso sotrieq2 mpan ) CDEACFBCFGABHA
    BDIJBADIJGKLCABDMN $.

  $( Trichotomy law for surreals.  (Contributed by Scott Fenton,
     23-Nov-2021.) $)
  slttrine $p |- ( ( A e. No /\ B e. No ) ->
    ( A =/= B <-> ( A <s B \/ B <s A ) ) ) $=
    ( csur cslt wor wcel wa wne wbr wo wb sltso sotrine mpan ) CDEACFBCFGABHABD
    IBADIJKLCABDMN $.

  $( Surreal less than or equal in terms of less than.  (Contributed by Scott
     Fenton, 8-Dec-2021.) $)
  slenlt $p |- ( ( A e. No /\ B e. No ) -> ( A <_s B <-> -. B <s A ) ) $=
    ( csle wbr csur wcel wa cslt ccnv cxp cdif df-sle breqi brdif anbi1i 3bitri
    wn brxp ibar brcnvg notbid bitr3d syl5bb ) ABCDZAEFBEFGZABHIZDZQZGZUEBAHDZQ
    ZUDABEEJZUFKZDABULDZUHGUIABCUMLMABULUFNUNUEUHABEEROPUEUHUIUKUEUHSUEUGUJABEE
    HTUAUBUC $.

  $( Surreal less than in terms of less than or equal.  (Contributed by Scott
     Fenton, 8-Dec-2021.) $)
  sltnle $p |- ( ( A e. No /\ B e. No ) -> ( A <s B <-> -. B <_s A ) ) $=
    ( csur wcel wa csle wbr cslt wn wb slenlt ancoms con2bid ) ACDZBCDZEBAFGZAB
    HGZONPQIJBAKLM $.

  $( Surreal less than or equal in terms of less than.  (Contributed by Scott
     Fenton, 8-Dec-2021.) $)
  sleloe $p |- ( ( A e. No /\ B e. No ) -> ( A <_s B <->
  ( A <s B \/ A = B ) ) ) $=
    ( csur wcel wa csle wbr cslt wn wceq wo slenlt orcom eqcom orbi1i bitri wor
    wb sltso sotric mpan ancoms con2bid syl5bb bitr4d ) ACDZBCDZEZABFGBAHGZIZAB
    HGZABJZKZABLUMBAJZUKKZUHUJUMULUKKUOUKULMULUNUKABNOPUHUIUOUGUFUIUOIRZCHQUGUF
    EUPSCBAHTUAUBUCUDUE $.

  $( Trichotomy law for surreal less than or equal.  (Contributed by Scott
     Fenton, 8-Dec-2021.) $)
  sletri3 $p |- ( ( A e. No /\ B e. No ) ->
  ( A = B <-> ( A <_s B /\ B <_s A ) ) ) $=
    ( csur wcel wa wceq cslt wbr wn csle slttrieq2 slenlt ancoms anbi12d syl6bb
    wb ancom bitr4d ) ACDZBCDZEZABFABGHIZBAGHIZEZABJHZBAJHZEZABKUAUGUCUBEUDUAUE
    UCUFUBABLTSUFUBPBALMNUCUBQOR $.

  $( Surreal transitive law.  (Contributed by Scott Fenton, 8-Dec-2021.) $)
  sltletr $p |- ( ( A e. No /\ B e. No /\ C e. No ) ->
  ( ( A <s B /\ B <_s C ) -> A <s C ) ) $=
    ( csur wcel w3a cslt wbr csle wa wn wb slenlt 3adant1 anbi2d wi sltso sotr3
    wor mpan sylbid ) ADEZBDEZCDEZFZABGHZBCIHZJUFCBGHKZJZACGHZUEUGUHUFUCUDUGUHL
    UBBCMNODGSUEUIUJPQDGABCRTUA $.

  $( Surreal transitive law.  (Contributed by Scott Fenton, 8-Dec-2021.) $)
  slelttr $p |- ( ( A e. No /\ B e. No /\ C e. No ) ->
  ( ( A <_s B /\ B <s C ) -> A <s C ) ) $=
    ( csur wcel w3a csle wbr cslt wa wn wb slenlt 3adant3 anbi1d wi sltso sotr2
    wor mpan sylbid ) ADEZBDEZCDEZFZABGHZBCIHZJBAIHKZUGJZACIHZUEUFUHUGUBUCUFUHL
    UDABMNODISUEUIUJPQDABCIRTUA $.

  $( Surreal transitive law.  (Contributed by Scott Fenton, 8-Dec-2021.) $)
  sletr $p |- ( ( A e. No /\ B e. No /\ C e. No ) ->
  ( ( A <_s B /\ B <_s C ) -> A <_s C ) ) $=
    ( csur wcel w3a csle wbr cslt wn wa sltletr 3coml expcomd imp con3d expimpd
    wi wb slenlt 3adant1 anbi2d 3adant2 3imtr4d ) ADEZBDEZCDEZFZABGHZCBIHZJZKCA
    IHZJZUIBCGHZKACGHZUHUIUKUMUHUIKULUJUHUIULUJRUHULUIUJUGUEUFULUIKUJRCABLMNOPQ
    UHUNUKUIUFUGUNUKSUEBCTUAUBUEUGUOUMSUFACTUCUD $.

  ${
    slttrd.1 $e |- ( ph -> A e. No ) $.
    slttrd.2 $e |- ( ph -> B e. No ) $.
    slttrd.3 $e |- ( ph -> C e. No ) $.
    ${
      slttrd.4 $e |- ( ph -> A <s B ) $.
      slttrd.5 $e |- ( ph -> B <s C ) $.
      $( Surreal less than is transitive.  (Contributed by Scott Fenton,
         8-Dec-2021.) $)
      slttrd $p |- ( ph -> A <s C ) $=
        ( cslt wbr csur wcel wa wi slttr syl3anc mp2and ) ABCJKZCDJKZBDJKZHIABL
        MCLMDLMSTNUAOEFGBCDPQR $.
    $}

    ${
      sltletrd.4 $e |- ( ph -> A <s B ) $.
      sltletrd.5 $e |- ( ph -> B <_s C ) $.
      $( Surreal less than is transitive.  (Contributed by Scott Fenton,
         8-Dec-2021.) $)
      sltletrd $p |- ( ph -> A <s C ) $=
        ( cslt wbr csle csur wcel wa wi sltletr syl3anc mp2and ) ABCJKZCDLKZBDJ
        KZHIABMNCMNDMNTUAOUBPEFGBCDQRS $.
    $}

    ${
      slelttrd.4 $e |- ( ph -> A <_s B ) $.
      slelttrd.5 $e |- ( ph -> B <s C ) $.
      $( Surreal less than is transitive.  (Contributed by Scott Fenton,
         8-Dec-2021.) $)
      slelttrd $p |- ( ph -> A <s C ) $=
        ( csle wbr cslt csur wcel wa wi slelttr syl3anc mp2and ) ABCJKZCDLKZBDL
        KZHIABMNCMNDMNTUAOUBPEFGBCDQRS $.
    $}

    ${
      sletrd.4 $e |- ( ph -> A <_s B ) $.
      sletrd.5 $e |- ( ph -> B <_s C ) $.
      $( Surreal less than or equal is transitive.  (Contributed by Scott
         Fenton, 8-Dec-2021.) $)
      sletrd $p |- ( ph -> A <_s C ) $=
        ( csle wbr csur wcel wa wi sletr syl3anc mp2and ) ABCJKZCDJKZBDJKZHIABL
        MCLMDLMSTNUAOEFGBCDPQR $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Surreal numbers - birthday theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The birthday function is a function.  (Contributed by Scott Fenton,
     14-Jun-2011.) $)
  bdayfun $p |- Fun bday $=
    ( csur con0 cbday wfo wfun bdayfo fofun ax-mp ) ABCDCEFABCGH $.

  $( The birthday function is a function over ` No ` .  (Contributed by Scott
     Fenton, 30-Jun-2011.) $)
  bdayfn $p |- bday Fn No $=
    ( csur con0 cbday wfo wfn bdayfo fofn ax-mp ) ABCDCAEFABCGH $.

  $( The birthday function's domain is ` No ` .  (Contributed by Scott Fenton,
     14-Jun-2011.) $)
  bdaydm $p |- dom bday = No $=
    ( csur con0 cbday wfo wf bdayfo fof ax-mp fdmi ) ABCABCDABCEFABCGHI $.

  $( The birthday function's range is ` On ` .  (Contributed by Scott Fenton,
     14-Jun-2011.) $)
  bdayrn $p |- ran bday = On $=
    ( csur con0 cbday wfo crn wceq bdayfo forn ax-mp ) ABCDCEBFGABCHI $.

  $( The value of the birthday function is always an ordinal.  (Contributed by
     Scott Fenton, 14-Jun-2011.)  (Proof shortened by Scott Fenton,
     8-Dec-2021.) $)
  bdayelon $p |- ( bday ` A ) e. On $=
    ( csur con0 cbday wfo wf bdayfo fof ax-mp 0elon f0cli ) BCADBCDEBCDFGBCDHIJ
    K $.

  ${
    $d A w x y z $.  $d X w x y z $.  $d Y w y z $.
    $( Lemma for ~ nocvxmin .  Given two birthday-minimal elements of a convex
       class of surreals, they are not comparable.  (Contributed by Scott
       Fenton, 30-Jun-2011.) $)
    nocvxminlem $p |- ( ( A C_ No /\ A. x e. A A. y e. A
                           A. z e. No ( ( x <s z /\ z <s y ) -> z e. A ) ) ->
                         ( ( ( X e. A /\ Y e. A ) /\
                             ( ( bday ` X ) = |^| ( bday " A ) /\
                               ( bday ` Y ) = |^| ( bday " A ) ) ) ->
                           -. X <s Y ) ) $=
      ( vw csur wss cv cslt wbr wa wcel wi wral cbday wceq wn con0 cfv cima w3a
      cint wrex breq1 anbi1d imbi1d ralbidv breq2 anbi2d rspc2v anbi12d imbi12d
      weq eleq1 cdm bdaydm sseq2i wfun bdayfun funfvima2 mpan sylbir imp intss1
      rspcv syl wb wne crn imassrn bdayrn sseqtri ne0i oninton sylancr bdayelon
      c0 ontri1 sylancl mpbid ex eleq2 notbid biimprcd syl6 com3l adantrd com35
      com4l impcom imp42 con2d 3anass notbii imnan bitr4i sylibr nrexdv anim12d
      syl8 ssel eqtr3 anim12i anasss adantlr nodense anassrs sylan mtand ) DHIZ
      AJZCJZKLZXNBJZKLZMZXNDNZOZCHPZBDPADPZMZEDNZFDNZMZEQUAZQDUBZUDZRZFQUAZYIRZ
      MZMZEFKLZSYCYNMZYOGJZQUAZYGNZEYQKLZYQFKLZUCZGHUEZYPUUBGHYPYQHNZMZYSYTUUAM
      ZSOZUUBSZUUEUUFYSYCYFYMUUDUUFYSSZOZYBXLYFYMUUDUUJOOZOYFYBXLUUKYFYBEXNKLZX
      NFKLZMZXSOZCHPZXLUUKOYAUUPUULXQMZXSOZCHPABEFDDXMERZXTUURCHUUSXRUUQXSUUSXO
      UULXQXMEXNKUFUGUHUIXPFRZUURUUOCHUUTUUQUUNXSUUTXQUUMUULXPFXNKUJUKUHUIULUUD
      UUPXLYMUUJUUDUUPUUFYMXLUUIUUDUUPUUFYQDNZYMXLUUIOZOUUOUUFUVAOCYQHCGUOZUUNU
      UFXSUVAUVCUULYTUUMUUAXNYQEKUJXNYQFKUFUMXNYQDUPUNVGUVAYJUVBYLXLUVAYJUUIXLU
      VAYRYINZSZYJUUIOXLUVAUVEXLUVAMZYIYRIZUVEUVFYRYHNZUVGXLUVAUVHXLDQUQZIZUVAU
      VHOZUVIHDURUSQUTUVJUVKVADYQQVBVCVDVEZYRYHVFVHUVFYITNZYRTNUVGUVEVIUVFYHTIY
      HVSVJZUVMYHQVKTQDVLVMVNUVFUVHUVNUVLYHYRVOVHYHVPVQYQVRYIYRVTWAWBWCYJUUIUVE
      YJYSUVDYGYIYRWDWEWFWGWHWIXBWJWKWGWHWLWMWNUUHYSUUFMZSUUGUUBUVOYSYTUUAWOWPY
      SUUFWQWRWSWTYPEHNZFHNZMZYGYKRZMZYOUUCXLYNUVTYBXLYFYMUVTXLYFMUVRYMUVSXLYFU
      VRXLYDUVPYEUVQDHEXCDHFXCXAVEYGYKYIXDXEXFXGUVRUVSYOUUCGEFXHXIXJXKWC $.
  $}

  ${
    $d A t w x y z $.
    $( Given a nonempty convex class of surreals, there is a unique
       birthday-minimal element of that class.  (Contributed by Scott Fenton,
       30-Jun-2011.) $)
    nocvxmin $p |- ( ( A =/= (/) /\ A C_ No /\
                        A. x e. A A. y e. A
                           A. z e. No ( ( x <s z /\ z <s y ) -> z e. A ) ) ->
                      E! w e. A ( bday ` w ) = |^| ( bday " A ) ) $=
      ( vt c0 wne csur wss cv cslt wbr wa wcel wi wral cbday cfv imp w3a bdayrn
      cima cint wceq wrex weq wreu con0 crn imassrn sseqtri wex cdm bdaydm wfun
      sseq2i bdayfun funfvima2 mpan sylbir elex2 syl6 exlimdv n0 3imtr4g impcom
      onint sylancr wb wfn bdayfn fvelimab adantl mpbid 3adant3 wn ssel anim12d
      ad2ant2r nocvxminlem ancom anbi12i syl5bi slttrieq2 biimpar exp32 3adant1
      syl12anc ralrimivv fveq2 eqeq1d reu4 sylanbrc ) EGHZEIJZAKZCKZLMWRBKLMNWR
      EOPCIQBEQAEQZUADKZRSZREUCZUDZUEZDEUFZXDFKZRSZXCUEZNZDFUGZPZFEQDEQZXDDEUHW
      OWPXEWSWOWPNZXCXBOZXEXMXBUIJXBGHZXNXBRUJUIREUKUBULWPWOXOWPWQEOZAUMWTXBODU
      MZWOXOWPXPXQAWPXPWQRSZXBOZXQWPERUNZJZXPXSPZXTIEUOUQRUPYAYBUREWQRUSUTVADXR
      XBVBVCVDAEVEDXBVEVFVGXBVHVIWPXNXEVJZWORIVKWPYCVLDIEXCRVMUTVNVOVPWPWSXLWOW
      PWSNZXKDFEEYDWTEOZXFEOZNZXIXJYDYGXINZNWTIOZXFIOZNZWTXFLMVQZXFWTLMVQZXJWPY
      GYKWSXIWPYGYKWPYEYIYFYJEIWTVREIXFVRVSTVTYDYHYLABCEWTXFWATYDYHYMYHYFYENZXH
      XDNZNYDYMYGYNXIYOYEYFWBXDXHWBWCABCEXFWTWAWDTYKXJYLYMNWTXFWEWFWIWGWJWHXDXH
      DFEXJXAXGXCWTXFRWKWLWMWN $.
  $}

  $( The surreal numbers are a proper class.  (Contributed by Scott Fenton,
     16-Jun-2011.) $)
  noprc $p |- -. No e. _V $=
    ( csur cvv wcel con0 onprc cbday wfo bdayfo fornex mpi mto ) ABCZDBCZELADFG
    MHADBFIJK $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Surreal numbers: Conway cuts
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constant symbols. $)
  $c <<s |s $.

  $( Declare the syntax for surreal set less than. $)
  csslt $a class <<s $.
  ${
    $d a b x y $.
    $( Define the relationship that holds iff one set of surreals completely
       precedes another.  (Contributed by Scott Fenton, 7-Dec-2021.) $)
    df-sslt $a |- <<s = { <. a , b >. | ( a C_ No /\ b C_ No /\
        A. x e. a A. y e. b x <s y ) } $.
  $}

  $( Declare the syntax for the surreal cut operator. $)
  cscut $a class |s $.
  ${
    $d a b x y $.
    $( Define the cut operator on surreal numbers.  This operator, which Conway
       takes as the primitive operator over surreals, picks the surreal lying
       between two sets of surreals of minimal birthday.  (Contributed by Scott
       Fenton, 7-Dec-2021.) $)
    df-scut $a |- |s = ( a e. ~P No , b e. ( <<s " { a } ) |->
      ( iota_ x e. { y e. No | ( a <<s { y } /\ { y } <<s b ) }
        ( bday ` x ) =
        |^| ( bday " { y e. No | ( a <<s { y } /\ { y } <<s b ) } ) ) ) $.
  $}

  ${
    $d A a b x y $.  $d B a b x y $.
    $( Binary relation form of the surreal set less-than relation.
       (Contributed by Scott Fenton, 8-Dec-2021.) $)
    brsslt $p |- ( A <<s B <-> ( ( A e. _V /\ B e. _V ) /\
     ( A C_ No /\ B C_ No /\ A. x e. A A. y e. B x <s y ) ) ) $=
      ( va vb csslt wbr cvv wcel wa csur wss cv cslt wral w3a wceq sseq1 raleq
      df-sslt bropaex12 3anbi13d ralbidv 3anbi23d brabg biadan2 ) CDGHCIJDIJKCL
      MZDLMZANBNOHZBDPZACPZQZENZLMZFNZLMZUJBUPPZAUNPZQZEFCDGABEFUAZUBUTUHUQURAC
      PZQUMEFCDIIGUNCRUOUHUSVBUQUNCLSURAUNCTUCUPDRZUQUIVBULUHUPDLSVCURUKACUJBUP
      DTUDUEVAUFUG $.

    $( The first argument of surreal set less than exists.  (Contributed by
       Scott Fenton, 8-Dec-2021.) $)
    ssltex1 $p |- ( A <<s B -> A e. _V ) $=
      ( vx vy csslt wbr cvv wcel wa csur wss cslt wral w3a brsslt simpll sylbi
      cv ) ABEFAGHZBGHZIAJKBJKCRDRLFDBMCAMNZISCDABOSTUAPQ $.

    $( The second argument of surreal set less than exists.  (Contributed by
       Scott Fenton, 8-Dec-2021.) $)
    ssltex2 $p |- ( A <<s B -> B e. _V ) $=
      ( vx vy csslt wbr cvv wcel wa csur wss cslt wral w3a brsslt simplr sylbi
      cv ) ABEFAGHZBGHZIAJKBJKCRDRLFDBMCAMNZITCDABOSTUAPQ $.

    $( The first argument of surreal set is a set of surreals.  (Contributed by
       Scott Fenton, 8-Dec-2021.) $)
    ssltss1 $p |- ( A <<s B -> A C_ No ) $=
      ( vx vy csslt wbr cvv wcel wa csur wss cslt wral w3a brsslt simpr1 sylbi
      cv ) ABEFAGHBGHIZAJKZBJKZCRDRLFDBMCAMZNITCDABOSTUAUBPQ $.

    $( The second argument of surreal set is a set of surreals.  (Contributed
       by Scott Fenton, 8-Dec-2021.) $)
    ssltss2 $p |- ( A <<s B -> B C_ No ) $=
      ( vx vy csslt wbr cvv wcel wa csur wss cslt wral w3a brsslt simpr2 sylbi
      cv ) ABEFAGHBGHIZAJKZBJKZCRDRLFDBMCAMZNIUACDABOSTUAUBPQ $.

    $( The separation property of surreal set less than.  (Contributed by Scott
       Fenton, 8-Dec-2021.) $)
    ssltsep $p |- ( A <<s B -> A. x e. A A. y e. B x <s y ) $=
      ( csslt wbr cvv wcel wa csur wss cv cslt wral w3a brsslt simpr3 sylbi ) C
      DEFCGHDGHIZCJKZDJKZALBLMFBDNACNZOIUBABCDPSTUAUBQR $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C x y $.
    $( Relationship between surreal set less than and subset.  (Contributed by
       Scott Fenton, 9-Dec-2021.) $)
    sssslt1 $p |- ( ( A <<s B /\ C C_ A ) -> C <<s B ) $=
      ( vx vy csslt wbr wss wa cvv wcel csur cslt wral w3a ssltex1 adantr simpr
      cv ssexd ssltex2 ssltss1 sstrd ssltss2 ssltsep ssralv mpan9 3jca sylanbrc
      jca brsslt ) ABFGZCAHZIZCJKZBJKZICLHZBLHZDSESMGEBNZDCNZOCBFGUNUOUPUNCAJUL
      AJKUMABPQULUMRZTULUPUMABUAQUJUNUQURUTUNCALVAULALHUMABUBQUCULURUMABUDQULUS
      DANUMUTDEABUEUSDCAUFUGUHDECBUKUI $.

    $( Relationship between surreal set less than and subset.  (Contributed by
       Scott Fenton, 9-Dec-2021.) $)
    sssslt2 $p |- ( ( A <<s B /\ C C_ B ) -> A <<s C ) $=
      ( vx vy csslt wbr wss wa cvv wcel csur cv cslt w3a ssltex1 adantr ssltex2
      wral simpr ssexd jca ssltss1 ssltss2 sstrd ssltsep ssralv syl ralimdv mpd
      wi 3jca brsslt sylanbrc ) ABFGZCBHZIZAJKZCJKZIALHZCLHZDMEMNGZECSZDASZOACF
      GUQURUSUOURUPABPQUQCBJUOBJKUPABRQUOUPTZUAUBUQUTVAVDUOUTUPABUCQUQCBLVEUOBL
      HUPABUDQUEUQVBEBSZDASZVDUOVGUPDEABUFQUQVFVCDAUQUPVFVCUKVEVBECBUGUHUIUJULD
      EACUMUN $.
  $}

  ${
    $d A x y $.
    $( The empty set is less than any set of surreals.  (Contributed by Scott
       Fenton, 8-Dec-2021.) $)
    nulsslt $p |- ( A e. ~P No -> (/) <<s A ) $=
      ( vx vy csur cpw wcel c0 cvv wa wss cv cslt wbr wral w3a csslt elex jctil
      0ex a1i 0ss elpwi ral0 3jca brsslt sylanbrc ) ADEZFZGHFZAHFZIGDJZADJZBKCK
      LMCANZBGNZOGAPMUHUJUIAUGQSRUHUKULUNUKUHDUATADUBUNUHUMBUCTUDBCGAUEUF $.

    $( The empty set is greater than any set of surreals.  (Contributed by
       Scott Fenton, 8-Dec-2021.) $)
    nulssgt $p |- ( A e. ~P No -> A <<s (/) ) $=
      ( vx vy csur cpw wcel cvv c0 wa wss cv cslt wbr wral w3a csslt elex jctir
      0ex a1i elpwi 0ss ral0 rgenw 3jca brsslt sylanbrc ) ADEZFZAGFZHGFZIADJZHD
      JZBKCKLMZCHNZBANZOAHPMUIUJUKAUHQSRUIULUMUPADUAUMUIDUBTUPUIUOBAUNCUCUDTUEB
      CAHUFUG $.
  $}

  ${
    $d A x y p q r $.  $d B x y p q r $.
    $( Conway's Simplicity Theorem.  Given ` A ` preceeding ` B ` , there is a
       unique surreal of minimal length separating them.  This is a fundamental
       property of surreals and will be used (via surreal cuts) to prove many
       properties later on.  (Contributed by Scott Fenton, 8-Dec-2021.) $)
    conway $p |- ( A <<s B ->
     E! x e. { y e. No | ( A <<s { y } /\ { y } <<s B ) }
     ( bday ` x ) =
     |^| ( bday " { y e. No | ( A <<s { y } /\ { y } <<s B ) } ) ) $=
      ( vp vr vq csslt wbr wa csur wss cslt wcel wi wral ad2antrr adantr ralbii
      w3a cv csn crab c0 wne cfv cima cint wceq wreu wrex cun cuni csuc ssltss1
      cbday cvv ssltex1 ssltss2 ssltex2 noeta syl221anc 3simpa snex jctir snssi
      ssltsep adantl vex breq2 ralsn biimpri brsslt sylanbrc jctil ralcom breq1
      3jca sylbbr anim12d syl5 reximdva mpd rabn0 sylibr ssrab2 a1i simplr3 syl
      ex sselda simplr1 simplll r19.21bi sylib simprrl slttrd ralrimiva simplr2
      simprrr simplrr weq ralbidv jca32 exp44 ralrimivvva breq2d breq1d anbi12d
      sneq ralrab elrab imbi2i r19.21v 3bitr4i bitri nocvxmin syl3anc ) CDHIZCB
      UAZUBZHIZYADHIZJZBKUCZUDUEZYEKLZEUAZFUAZMIZYIGUAZMIZJZYIYENZOZFKPZGYEPZEY
      EPZAUAZUPUFUPYEUGUHUIAYEUJXSYDBKUKZYFXSYHXTMIZECPZXTYKMIZGDPZXTUPUFUPCDUL
      UGUMUNLZTZBKUKZYTXSCKLZCUQNZDKLZDUQNZYHYKMIZGDPZECPUUGCDUOZCDURZCDUSZCDUT
      ZEGCDVGEGBCDUQUQVAVBXSUUFYDBKUUFUUBUUDJXSXTKNZJZYDUUBUUDUUEVCUUSUUBYBUUDY
      CUUSUUBYBUUSUUBJZUUIYAUQNZJUUHYAKLZUULGYAPZECPZTYBUUTUUIUVAXSUUIUURUUBUUO
      QXTVDZVEUUTUUHUVBUVDXSUUHUURUUBUUNQUUSUVBUUBUURUVBXSXTKVFVHZRUUBUVDUUSUVD
      UUBUVCUUAECUULUUAGXTBVIZYKXTYHMVJVKSVLVHVREGCYAVMVNWJUUSUUDYCUUSUUDJZUVAU
      UKJUVBUUJUUMEYAPZTYCUVHUUKUVAXSUUKUURUUDUUQQUVEVOUVHUVBUUJUVIUUSUVBUUDUVF
      RXSUUJUURUUDUUPQUUDUVIUUSUVIUULEYAPZGDPUUDUULEGYADVPUVJUUCGDUULUUCEXTUVGY
      HXTYKMVQVKSVSVHVREGYADVMVNWJVTWAWBWCYDBKWDWEYGXSYDBKWFWGXSCYHUBZHIZUVKDHI
      ZJZCYKUBZHIZUVODHIZJZYMYIKNZCYIUBZHIZUVTDHIZJZJZOZOZOZFKPZGKPZEKPZYRXSUWG
      EGFKKKXSYHKNZYKKNZUVSTZJZUVNUVRYMUWDUWNUVNUVRJZYMJZJZUVSUWAUWBUWKUWLUVSXS
      UWPWHZUWQUUIUVTUQNZJUUHUVTKLZYSXTMIZBUVTPZACPZTUWAUWQUUIUWSXSUUIUWMUWPUUO
      QYIVDZVEUWQUUHUWTUXCXSUUHUWMUWPUUNQZUWQUVSUWTUWRYIKVFWIZUWQUXBACUWQYSCNZJ
      ZYSYIMIZUXBUXHYSYHYIUWQCKYSUXEWKUWQUWKUXGUWKUWLUVSXSUWPWLRUWQUVSUXGUWRRUX
      HUXABUVKPZYSYHMIZUWQUXJACUWQUVLUXJACPUWPUVLUWNUVLUVMUVRYMWMVHABCUVKVGWIWN
      UXAUXKBYHEVIXTYHYSMVJVKWOUWQYJUXGUWNUWOYJYLWPRWQUXAUXIBYIFVIZXTYIYSMVJVKW
      EWRVRABCUVTVMVNUWQUWSUUKJUWTUUJUXABDPZAUVTPZTUWBUWQUUKUWSXSUUKUWMUWPUUQQU
      XDVOUWQUWTUUJUXNUXFXSUUJUWMUWPUUPQZUWQYIXTMIZBDPZUXNUWQUXPBDUWQXTDNZJYIYK
      XTUWQUVSUXRUWRRUWQUWLUXRUWKUWLUVSXSUWPWSRUWQDKXTUXOWKUWQYLUXRUWNUWOYJYLWT
      RUWQYKXTMIZBDUWQUXMAUVOPZUXSBDPZUWQUVQUXTUWPUVQUWNUVNUVPUVQYMXAVHABUVODVG
      WIUXMUYAAYKGVIAGXBUXAUXSBDYSYKXTMVQXCVKWOWNWQWRUXMUXQAYIUXLAFXBUXAUXPBDYS
      YIXTMVQXCVKWEVRABUVTDVMVNXDXEXFUWFFKPZGKPZEYEPUVNUYCOZEKPYRUWJYDUVNUYCEBK
      BEXBZYBUVLYCUVMUYEYAUVKCHXTYHXJZXGUYEYAUVKDHUYFXHXIXKYQUYCEYEUWEFKPZGYEPU
      VRUYGOZGKPYQUYCYDUVRUYGGBKBGXBZYBUVPYCUVQUYIYAUVOCHXTYKXJZXGUYIYAUVODHUYJ
      XHXIXKYPUYGGYEYOUWEFKYNUWDYMYDUWCBYIKBFXBZYBUWAYCUWBUYKYAUVTCHXTYIXJZXGUY
      KYAUVTDHUYLXHXIXLXMSSUYBUYHGKUVRUWEFKXNSXOSUWIUYDEKUWIUVNUYBOZGKPUYDUWHUY
      MGKUVNUWFFKXNSUVNUYBGKXNXPSXOWEEGFAYEXQXR $.
  $}

  ${
    $d A a b x y $.  $d B a b x y $.
    $( The value of the surreal cut operation.  (Contributed by Scott Fenton,
       8-Dec-2021.) $)
    scutval $p |- ( A <<s B -> ( A |s B ) =
     ( iota_ x e. { y e. No | ( A <<s { y } /\ { y } <<s B ) }
      ( bday ` x ) =
      |^| ( bday " { y e. No | ( A <<s { y } /\ { y } <<s B ) } ) ) ) $=
      ( va vb csslt wbr csur wcel csn cima cscut cv cbday wa crab cint wceq cvv
      cpw co cfv crio ssltex1 ssltss1 elpwd cop df-br biimpi wb ssltex2 syl2anc
      elimasng mpbird riotaex breq1 bi2anan9 rabbidv imaeq2d inteqd riotaeqbidv
      breq2 eqeq2d sneq df-scut ovmpt2x mp3an3 ) CDGHZCIUAZJZDGCKZLZJZCDMUBANOU
      CZOCBNKZGHZVPDGHZPZBIQZLZRZSZAVTUDZSZVICITCDUEZCDUFUGVIVNCDUHGJZVIWGCDGUI
      UJVICTJDTJVNWGUKWFCDULGCDTTUNUMUOVKVNWDTJWEWCAVTUPEFCDVJGENZKZLVOOWHVPGHZ
      VPFNZGHZPZBIQZLZRZSZAWNUDWDMTVMWHCSZWKDSZPZWQWCAWNVTWTWMVSBIWRWJVQWSWLVRW
      HCVPGUQWKDVPGVCURUSZWTWPWBVOWTWOWAWTWNVTOXAUTVAVDVBWRWIVLGWHCVEUTABEFVFVG
      VHUM $.

    $( Cut properties of the surreal cut operation.  (Contributed by Scott
       Fenton, 8-Dec-2021.) $)
    scutcut $p |- ( A <<s B ->
     ( ( A |s B ) e. No /\ A <<s { ( A |s B ) } /\ { ( A |s B ) } <<s B ) ) $=
      ( vy vx csslt wbr cscut co cv csn csur crab wcel w3a cbday cima cint wceq
      wa cfv crio scutval wreu conway riotacl syl eqeltrd breq2d breq1d anbi12d
      sneq elrab 3anass bitr4i sylib ) ABEFZABGHZACIZJZEFZUSBEFZSZCKLZMZUQKMZAU
      QJZEFZVFBEFZNZUPUQDIOTOVCPQRZDVCUAZVCDCABUBUPVJDVCUCVKVCMDCABUDVJDVCUEUFU
      GVDVEVGVHSZSVIVBVLCUQKURUQRZUTVGVAVHVMUSVFAEURUQUKZUHVMUSVFBEVNUIUJULVEVG
      VHUMUNUO $.

    $( The birthday of the surreal cut is equal to the minimum birthday in the
       gap.  (Contributed by Scott Fenton, 8-Dec-2021.) $)
    scutbday $p |- ( A <<s B ->
     ( bday ` ( A |s B ) ) =
     |^| ( bday " { x e. No | ( A <<s { x } /\ { x } <<s B ) } ) ) $=
      ( vy csslt wbr cscut co cbday cfv cv csn wa csur crab cima cint wceq crio
      wcel scutval eqcomd wreu wb w3a scutcut sneq breq2d breq1d anbi12d 3anass
      elrab bitr4i sylibr conway fveq2 eqeq1d riota2 syl2anc mpbird ) BCEFZBCGH
      ZIJZIBAKZLZEFZVECEFZMZANOZPQZRZDKZIJZVJRZDVISZVBRZVAVBVODABCUAUBVAVBVITZV
      NDVIUCVKVPUDVAVBNTZBVBLZEFZVSCEFZUEZVQBCUFVQVRVTWAMZMWBVHWCAVBNVDVBRZVFVT
      VGWAWDVEVSBEVDVBUGZUHWDVEVSCEWEUIUJULVRVTWAUKUMUNDABCUOVNVKDVIVBVLVBRVMVC
      VJVLVBIUPUQURUSUT $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( Transitive law for surreal set less than.  (Contributed by Scott Fenton,
       9-Dec-2021.) $)
    sslttr $p |- ( ( A <<s B /\ B <<s C /\ B =/= (/) ) -> A <<s C ) $=
      ( vy vx vz csslt wbr wa cv wcel csur wss cslt wral ad2antll adantr sseldd
      rsp sylc c0 wne wex wi n0 cvv w3a ssltex1 ssltex2 anim12i adantl ad2antrl
      ssltss1 ssltss2 simprl simpll simprr slttrd ralrimivva brsslt sylanbrc ex
      ssltsep 3jca exlimiv sylbi com12 3impia ) ABGHZBCGHZBUAUBZACGHZVKVIVJIZVL
      VKDJZBKZDUCVMVLUDZDBUEVOVPDVOVMVLVOVMIZAUFKZCUFKZIZALMZCLMZEJZFJZNHZFCOEA
      OZUGVLVMVTVOVIVRVJVSABUHBCUIUJUKVQWAWBWFVIWAVOVJABUMULZVJWBVOVIBCUNPZVQWE
      EFACVQWCAKZWDCKZIZIZWCVNWDWLALWCVQWAWKWGQVQWIWJUOZRWLBLVNVQBLMZWKVJWNVOVI
      BCUMPQVOVMWKUPZRWLCLWDVQWBWKWHQVQWIWJUQZRWLWCVNNHZDBOZVOWQWLWREAOZWIWRVQW
      SWKVIWSVOVJEDABVCULQWMWREASTWOWQDBSTWLVNWDNHZFCOZWJWTWLXADBOZVOXAVQXBWKVJ
      XBVOVIDFBCVCPQWOXADBSTWPWTFCSTURUSVDEFACUTVAVBVEVFVGVH $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C x y $.
    $( Union law for surreal set less than.  (Contributed by Scott Fenton,
       9-Dec-2021.) $)
    ssltun1 $p |- ( ( A <<s C /\ B <<s C ) -> ( A u. B ) <<s C ) $=
      ( vx vy csslt wbr wa cvv wcel csur wss wral ssltex1 adantr ssltss1 adantl
      cv ssltsep sylanbrc cun w3a unexg syl2an ssltex2 jca unssd ssltss2 ralunb
      cslt 3jca brsslt ) ACFGZBCFGZHZABUAZIJZCIJZHUPKLZCKLZDRERUJGECMZDUPMZUBUP
      CFGUOUQURUMAIJBIJUQUNACNBCNABIIUCUDUMURUNACUEOUFUOUSUTVBUOABKUMAKLUNACPOU
      NBKLUMBCPQUGUNUTUMBCUHQUOVADAMZVADBMZVBUMVCUNDEACSOUNVDUMDEBCSQVADABUITUK
      DEUPCULT $.

    $( Union law for surreal set less than.  (Contributed by Scott Fenton,
       9-Dec-2021.) $)
    ssltun2 $p |- ( ( A <<s B /\ A <<s C ) -> A <<s ( B u. C ) ) $=
      ( vx vy csslt wbr wa cvv wcel csur wss wral adantr ssltex2 ssltss2 adantl
      cv ssltsep sylanbrc cun w3a ssltex1 unexg syl2an jca ssltss1 unssd ralunb
      cslt ralbii r19.26 bitri 3jca brsslt ) ABFGZACFGZHZAIJZBCUAZIJZHAKLZUTKLZ
      DRERUJGZEUTMZDAMZUBAUTFGURUSVAUPUSUQABUCNUPBIJCIJVAUQABOACOBCIIUDUEUFURVB
      VCVFUPVBUQABUGNURBCKUPBKLUQABPNUQCKLUPACPQUHURVDEBMZDAMZVDECMZDAMZVFUPVHU
      QDEABSNUQVJUPDEACSQVFVGVIHZDAMVHVJHVEVKDAVDEBCUIUKVGVIDAULUMTUNDEAUTUOT
      $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d D x y z $.
    $( Union law for surreal cuts.  (Contributed by Scott Fenton,
       9-Dec-2021.) $)
    scutun12 $p |- ( ( A <<s B /\ C <<s { ( A |s B ) } /\
     { ( A |s B ) } <<s D ) -> ( ( A u. C ) |s ( B u. D ) ) = ( A |s B ) ) $=
      ( vx vy vz csslt wbr cscut csn cv cbday wa csur wceq wcel syl syl2anc wss
      w3a cun cfv crab cima cint crio simp1 scutcut simp2d simp2 ssltun1 simp3d
      co simp3 ssltun2 c0 wne ovex snnz sslttr mp3an3 scutval wral wrex vex weq
      elima sneq breq2d breq1d anbi12d rexrab bitri wi wb simplr bdayfn fnbrfvb
      wfn mpan simpll1 scutbday simprl ssun1 sssslt1 mpan2 simprr sssslt2 elrab
      sylanbrc ssrab2 fnfvima mp3an12 intss1 eqsstrd sseq2 biimpd com12 sylbird
      jca impd rexlimdva syl5bi ralrimiv ssint sylibr simp1d eqssd conway fveq2
      ex wreu eqeq1d riota2 mpbid eqcomd eqtr4d ) ABHIZCABJUNZKZHIZYADHIZUAZACU
      BZBDUBZJUNZELZMUCZMYEFLZKZHIZYKYFHIZNZFOUDZUEZUFZPZEYOUGZXTYDYEYFHIZYGYSP
      YDYEYAHIZYAYFHIZYTYDAYAHIZYBUUAYDXTOQZUUCYABHIZYDXSUUDUUCUUEUAXSYBYCUHABU
      IRZUJXSYBYCUKACYAULSZYDUUEYCUUBYDUUDUUCUUEUUFUMXSYBYCUOYABDUPSZUUAUUBYAUQ
      URYTXTABJUSUTYEYAYFVAVBSZEFYEYFVCRYDYSXTYDXTMUCZYQPZYSXTPZYDUUJYQYDUUJYHT
      ZEYPVDUUJYQTYDUUMEYPYHYPQZYEGLZKZHIZUUPYFHIZNZUUOYHMIZNZGOVEZYDUUMUUNUUTG
      YOVEUVBGYHMYOEVFVHYNUUSUUTGFOFGVGZYLUUQYMUURUVCYKUUPYEHYJUUOVIZVJUVCYKUUP
      YFHUVDVKVLVMVNYDUVAUUMGOYDUUOOQZNZUUSUUTUUMUVFUUSUUTUUMVOUVFUUSNZUUTUUOMU
      CZYHPZUUMUVGUVEUVIUUTVPZYDUVEUUSVQZMOVTZUVEUVJVROUUOYHMVSWARUVGUUJUVHTZUV
      IUUMVOUVGUUJMAYKHIZYKBHIZNZFOUDZUEZUFZUVHUVGXSUUJUVSPXSYBYCUVEUUSWBFABWCR
      UVGUVHUVRQZUVSUVHTUVGUUOUVQQZUVTUVGUVEAUUPHIZUUPBHIZNZUWAUVKUVGUWBUWCUVGU
      UQUWBUVFUUQUURWDUUQAYETUWBACWEYEUUPAWFWGRUVGUURUWCUVFUUQUURWHUURBYFTUWCBD
      WEUUPYFBWIWGRXAUVPUWDFUUOOUVCUVNUWBUVOUWCUVCYKUUPAHUVDVJUVCYKUUPBHUVDVKVL
      WJWKUVLUVQOTUWAUVTVRUVPFOWLOUVQMUUOWMWNRUVHUVRWORWPUVIUVMUUMUVIUVMUUMUVHY
      HUUJWQWRWSRWTXLXBXCXDXEEUUJYPXFXGYDUUJYPQZYQUUJTYDXTYOQZUWEYDUUDUUAUUBNZU
      WFYDUUDUUCUUEUUFXHYDUUAUUBUUGUUHXAYNUWGFXTOYJXTPZYLUUAYMUUBUWHYKYAYEHYJXT
      VIZVJUWHYKYAYFHUWIVKVLWJWKZUVLYOOTUWFUWEVRYNFOWLOYOMXTWMWNRUUJYPWORXIYDUW
      FYREYOXMZUUKUULVPUWJYDYTUWKUUIEFYEYFXJRYRUUKEYOXTYHXTPYIUUJYQYHXTMXKXNXOS
      XPXQXR $.
  $}

  ${
    $d a b c x y $.
    $( The domain of the surreal cut operation is all separated surreal sets.
       (Contributed by Scott Fenton, 8-Dec-2021.) $)
    dmscut $p |- dom |s = <<s $=
      ( va vb vc vx vy cv csur wcel csslt csn cima cbday wbr wceq cdm wex cscut
      wa wtru wss cpw crab cint crio coprab copab dmoprab cmpt2 df-scut df-mpt2
      cfv eqtri dmeqi cslt wral w3a df-sslt relopabi cop wb 19.42v ssltss1 elpw
      vex sylibr pm4.71ri elimasn df-br bitr4i anbi2i cvv riotaex isset biantru
      mpbi 3bitr2i 3bitr2ri a1i opabbi2dv trud 3eqtr4i ) AFZGUAZHZBFZIWBJKZHZRZ
      CFDFZLUKLWBEFZJZIMWKWEIMREGUBZKUCNZDWLUDZNZRZABCUEZOWPCPZABUFZQOIWPABCUGQ
      WQQABWCWFWNUHWQDEABUIABCWCWFWNUJULUMIWSNSWRABIWBGTZWEGTWIWJUNMEWEUODWBUOU
      PABIDEABUQURWBWEUSIHZWRUTSWRWHWOCPZRZWBWEIMZXAWHWOCVAXDWDXDRWHXCXDWDXDWTW
      DWBWEVBWBGAVDZVCVEVFWGXDWDWGXAXDIWBWEXEBVDVGWBWEIVHZVIVJXBWHWNVKHXBWMDWLV
      LCWNVMVOVNVPXFVQVRVSVTWA $.
  $}

  ${
    $d a b x y z $.
    $( Functionhood statement for the surreal cut operator.  (Contributed by
       Scott Fenton, 15-Dec-2021.) $)
    scutf $p |- |s : <<s --> No $=
      ( va vb vx vy vz csslt csur cscut wf wfn wceq csn cima cbday wbr mpbir2an
      cv wrex wcel vex crn wss wfun cdm cpw wa crab cint df-scut mpt2fun dmscut
      cfv crio df-fn cab rnmpt2 cop elimasn df-br bitr4i scutval scutcut simp1d
      wi co eqeltrrd sylbi eleq1a syl adantl rexlimivv abssi eqsstri df-f ) FGH
      IHFJZHUAZGUBVOHUCHUDFKABGUEZFAQZLMZCQNULNVRDQLZFOVTBQZFOUFDGUGZMUHKCWBUMZ
      HCDABUIZUJUKHFUNPVPEQZWCKZBVSRAVQRZEUOGABEVQVSWCHWDUPWGEGWFWEGSZABVQVSWAV
      SSZWFWHVDZVRVQSWIWCGSZWJWIVRWAFOZWKWIVRWAUQFSWLFVRWAATBTURVRWAFUSUTWLVRWA
      HVEZWCGCDVRWAVAWLWMGSVRWMLZFOWNWAFOVRWAVBVCVFVGWCGWEVHVIVJVKVLVMFGHVNP $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    $( A restatement of ~ noeta using set less than.  (Contributed by Scott
       Fenton, 10-Dec-2021.) $)
    etasslt $p |- ( A <<s B ->
       E. x e. No ( A <<s { x } /\ { x } <<s B /\
       ( bday ` x ) C_ suc U. ( bday " ( A u. B ) ) ) ) $=
      ( vy vz csslt wbr cv cbday wss w3a csur wrex cslt wral cvv wcel wa brsslt
      adantr csn cfv cun cima cuni csuc ssltss1 ssltex1 ssltss2 ssltex2 ssltsep
      noeta syl221anc df-3an bianass bitri snex jctir snssi adantl jca32 bicomd
      biantrurd vex breq2 ralsn ralbii syl6bb syl5bb jctil weq ralbidv 3anbi12d
      breq1 rexbidva mpbird ) BCFGZBAHZUAZFGZVSCFGZVRIUBIBCUCUDUEUFJZKZALMDHZVR
      NGZDBOZVREHZNGZECOZWBKZALMZVQBLJZBPQZCLJZCPQZWDWGNGZECOZDBOWKBCUGZBCUHZBC
      UIZBCUJZDEBCUKDEABCPPULUMVQWCWJALVQVRLQZRZVTWFWAWIWBVTWMVSPQZRZWLVSLJZRZR
      ZWPEVSOZDBOZRZXCWFVTXEWLXFXJKZRXKDEBVSSXLXGXJXEWLXFXJUNUOUPXCXKXJWFXCXJXK
      XCXHXJXCXEWLXFXCWMXDVQWMXBWSTVRUQZURVQWLXBWRTXBXFVQVRLUSUTZVAVCVBXIWEDBWP
      WEEVRAVDZWGVRWDNVEVFVGVHVIXCWAWQDVSOZWIWAXDWORZXFWNRZRZXPRZXCXPWAXQXFWNXP
      KZRXTDEVSCSYAXRXPXQXFWNXPUNUOUPXCXPXTXCXSXPXCXQXFWNXCWOXDVQWOXBXATXMVJXNV
      QWNXBWTTVAVCVBVIWQWIDVRXODAVKWPWHECWDVRWGNVNVLVFVHVMVOVP $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( An upper bound on the birthday of a surreal cut.  (Contributed by Scott
       Fenton, 10-Dec-2021.) $)
    scutbdaybnd $p |- ( A <<s B ->
     ( bday ` ( A |s B ) ) C_ suc U. ( bday " ( A u. B ) ) ) $=
      ( vx vy csslt wbr csn cbday cfv cun cima cuni csuc wss w3a csur wrex wcel
      cv wa cscut co etasslt crab cint scutbday adantr wfn bdayfn ssrab2 simprl
      wceq simprr1 simprr2 jca weq breq2d breq1d anbi12d elrab sylanbrc fnfvima
      sneq mp3an12i intss1 syl eqsstrd simprr3 sstrd rexlimdvaa mpd ) ABEFZACSZ
      GZEFZVNBEFZVMHIZHABJKLMZNZOZCPQABUAUBHIZVRNZCABUCVLVTWBCPVLVMPRZVTTZTZWAV
      QVRWEWAHADSZGZEFZWGBEFZTZDPUDZKZUEZVQVLWAWMULWDDABUFUGWEVQWLRZWMVQNHPUHWK
      PNWEVMWKRZWNUIWJDPUJWEWCVOVPTZWOVLWCVTUKWEVOVPVOVPVSWCVLUMVOVPVSWCVLUNUOW
      JWPDVMPDCUPZWHVOWIVPWQWGVNAEWFVMVCZUQWQWGVNBEWRURUSUTVAPWKHVMVBVDVQWLVEVF
      VGVOVPVSWCVLVHVIVJVK $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d X x y $.
    $( If a surreal lies in a gap and is not equal to the cut, its birthday is
       greater than the cut's.  (Contributed by Scott Fenton, 11-Dec-2021.) $)
    scutbdaylt $p |- ( ( X e. No /\ ( A <<s { X } /\ { X } <<s B ) /\
       X =/= ( A |s B ) ) -> ( bday ` ( A |s B ) ) e. ( bday ` X ) ) $=
      ( vy vx csur wcel csn csslt wbr wa wne cbday cfv cv wceq syl3anc sylanbrc
      wss syl cscut co w3a crab cima cint simp2l simp2r snnzg 3ad2ant1 scutbday
      c0 sslttr wfn bdayfn ssrab2 simp1 simp2 sneq breq2d anbi12d elrab fnfvima
      breq1d mp3an12i intss1 crio simprl simprr adantr eqeq1d eqcom syl6bb wreu
      eqsstrd biimpa biimpri conway fveq2 riota2 syl2an2r mpbid scutval necon3d
      wb eqtr4d ex 3impia con0 bdayelon onelpss mp2an ) CFGZACHZIJZWNBIJZKZCABU
      AUBZLZUCZWRMNZCMNZSZXAXBLZXAXBGZWTXAMADOZHZIJZXGBIJZKZDFUDZUEZUFZXBWTABIJ
      ZXAXMPZWTWOWPWNULLZXNWMWOWPWSUGWMWOWPWSUHWMWQXPWSCFUIZUJAWNBUMZQDABUKZTWT
      XBXLGZXMXBSMFUNXKFSWTCXKGZXTUOXJDFUPWTWMWQYAWMWQWSUQWMWQWSURXJWQDCFXFCPZX
      HWOXIWPYBXGWNAIXFCUSZUTYBXGWNBIYCVDVAVBZRFXKMCVCVEXBXLVFTVOWMWQWSXDWMWQKZ
      XAXBCWRYEXAXBPZCWRPYEYFKZCEOZMNZXMPZEXKVGZWRYGXBXMPZCYKPZYEYFYLYEYFXMXBPY
      LYEXAXMXBYEXNXOYEWOWPXPXNWMWOWPVHWMWOWPVIWMXPWQXQVJXRQZXSTVKXMXBVLVMVPYEY
      AYFYJEXKVNZYLYMWEYAYEYDVQYGXNYOYEXNYFYNVJZEDABVRTYAYOKYLYKCPYMYJYLEXKCYHC
      PYIXBXMYHCMVSVKVTYKCVLVMWAWBYGXNWRYKPYPEDABWCTWFWGWDWHXAWIGXBWIGXEXCXDKWE
      WRWJCWJXAXBWKWLR $.
  $}

  ${
    $d A a b c d $.  $d B a b c d $.  $d C a b c d $.  $d D a b c d $.
    $d X a d $.  $d Y a d $.
    $( A comparison law for surreals considered as cuts of sets of surreals.
       In Conway's treatment, this is the definition of less than or equal.
       (Contributed by Scott Fenton, 11-Dec-2021.) $)
    slerec $p |- ( ( ( A <<s B /\ C <<s D ) /\
     ( X = ( A |s B ) /\ Y = ( C |s D ) ) ) ->
     ( X <_s Y <-> ( A. d e. D X <s d /\ A. a e. A a <s Y ) ) ) $=
      ( vb wa csslt wbr cslt wral wcel csur ad3antrrr ad3antlr ralsn adantr csn
      vc cscut co wceq csle cv wb scutcut simp1d ssltss2 ad2antlr sselda simplr
      wss simp3d ssltsep syl ovex breq1 ralbidv sylib r19.21bi slelttrd ssltss1
      ralrimiva simp2d breq2 sltletrd jca cbday word wn bdayelon onordi ordn2lp
      cfv ax-mp sltnle syl2anc wne cvv ssltex1 snex jctir simplrr ralbii sylibr
      snssd 3jca brsslt sylanbrc ssltex2 jctil slttrd sltirr syl5ibcom necon2ad
      w3a notbid imp necomd scutbdaylt syl121anc simplrl ex sylbird mt3i breq12
      impbida bi2anan9 bibi12d syl5ibr impcom ) EABUCUDZUEZFCDUCUDZUEZJZABKLZCD
      KLZJZEFUFLZEHUGZMLZHDNZGUGZFMLZGANZJZUHZYBYKXSXOXQUFLZXOYDMLZHDNZYGXQMLZG
      ANZJZUHYBYLYQYBYLJZYNYPYRYMHDYRYDDOZJXOXQYDXTXOPOZYAYLYSXTYTAXOUAZKLZUUAB
      KLZABUIZUJZQYAXQPOZXTYLYSYAUUFCXQUAZKLZUUGDKLZCDUIZUJZRYRDPYDYADPUOZXTYLC
      DUKZULUMYBYLYSUNYRXQYDMLZHDYRYGYDMLZHDNZGUUGNZUUNHDNZYRUUIUUQYAUUIXTYLYAU
      UFUUHUUIUUJUPULGHUUGDUQURUUPUURGXQCDUCUSZYGXQUEZUUOUUNHDYGXQYDMUTVASVBVCV
      DVFYRYOGAYRYGAOZJZYGXOXQYRAPYGYBAPUOZYLXTUVCYAABVEZTTUMXTYTYAYLUVAUUEQYAU
      UFXTYLUVAUUKRUVBUUOHUUANZYGXOMLZYRUVEGAYRUUBUVEGANYBUUBYLXTUUBYAXTYTUUBUU
      CUUDVGTTGHAUUAUQURVCUUOUVFHXOABUCUSZYDXOYGMVHSVBYBYLUVAUNVIVFVJYBYQJZYLXO
      VKVQZXQVKVQZOZUVJUVIOZJZUVIVLUVMVMUVIXOVNVOUVIUVJVPVRUVHYLVMZXQXOMLZUVMUV
      HUUFYTUVOUVNUHYAUUFXTYQUUKULYBYTYQXTYTYAUUETZTZXQXOVSVTUVHUVOUVMUVHUVOJZU
      VKUVLUVRUUFAUUGKLZUUGBKLZXQXOWAUVKYAUUFXTYQUVOUUKRZUVRAWBOZUUGWBOZJUVCUUG
      PUOZUUOHUUGNZGANZWSUVSUVRUWBUWCXTUWBYAYQUVOABWCQXQWDZWEUVRUVCUWDUWFXTUVCY
      AYQUVOUVDQUVRXQPUWAWIZUVRYPUWFYBYNYPUVOWFUWEYOGAUUOYOHXQUUSYDXQYGMVHSWGWH
      WJGHAUUGWKWLUVRUWCBWBOZJUWDBPUOZYGIUGZMLZIBNZGUUGNZWSUVTUVRUWIUWCXTUWIYAY
      QUVOABWMQUWGWNUVRUWDUWJUWNUWHXTUWJYAYQUVOABUKQZUVRXQUWKMLZIBNZUWNUVRUWPIB
      UVRUWKBOZJXQXOUWKUVRUUFUWRUWATYBYTYQUVOUWRUVPQUVRBPUWKUWOUMUVHUVOUWRUNUVR
      XOUWKMLZIBUVRUWMGUUANZUWSIBNZUVRUUCUWTXTUUCYAYQUVOXTYTUUBUUCUUDUPQGIUUABU
      QURUWMUXAGXOUVGYGXOUEZUWLUWSIBYGXOUWKMUTVASVBVCWOVFUWMUWQGXQUUSUUTUWLUWPI
      BYGXQUWKMUTVASWHWJGIUUGBWKWLUVRXOXQUVHUVOXOXQWAZUVHUVOXOXQUVHXOXOMLZVMZXO
      XQUEZUVOVMUVHYTUXEUVQXOWPURUXFUXDUVOXOXQXOMUTWTWQWRXAZXBABXQXCXDUVRYTCUUA
      KLZUUADKLZUXCUVLXTYTYAYQUVOUUEQZUVRCWBOZUUAWBOZJCPUOZUUAPUOZUBUGZYGMLZGUU
      ANZUBCNZWSUXHUVRUXKUXLYAUXKXTYQUVOCDWCRXOWDZWEUVRUXMUXNUXRYAUXMXTYQUVOCDV
      ERZUVRXOPUXJWIZUVRUXQUBCUVRUXOCOZJZUXOXOMLZUXQUYCUXOXQXOUVRCPUXOUXTUMUVRU
      UFUYBUWATYBYTYQUVOUYBUVPQUYCUXOYDMLZHUUGNZUXOXQMLZUVRUYFUBCUVRUUHUYFUBCNY
      AUUHXTYQUVOYAUUFUUHUUIUUJVGRUBHCUUGUQURVCUYEUYGHXQUUSYDXQUXOMVHSVBUVHUVOU
      YBUNWOUXPUYDGXOUVGYGXOUXOMVHSWHVFWJUBGCUUAWKWLUVRUXLDWBOZJUXNUULUUPGUUANZ
      WSUXIUVRUYHUXLYAUYHXTYQUVOCDWMRUXSWNUVRUXNUULUYIUYAYAUULXTYQUVOUUMRUVRYNU
      YIYBYNYPUVOXEUUPYNGXOUVGUXBUUOYMHDYGXOYDMUTVASWHWJGHUUADWKWLUXGCDXOXCXDVJ
      XFXGXHXJXSYCYLYJYQEXOFXQUFXIXPYFYNXRYIYPXPYEYMHDEXOYDMUTVAXRYHYOGAFXQYGMV
      HVAXKXLXMXN $.
  $}

  ${
    $d A b c $.  $d B b c $.  $d C b c $.  $d D b c $.  $d X b c $.
    $d Y b c $.
    $( A comparison law for surreals considered as cuts of sets of surreals.
       (Contributed by Scott Fenton, 11-Dec-2021.) $)
    sltrec $p |- ( ( ( A <<s B /\ C <<s D ) /\
     ( X = ( A |s B ) /\ Y = ( C |s D ) ) ) ->
     ( X <s Y <-> ( E. c e. C X <_s c \/ E. b e. B b <_s Y ) ) ) $=
      ( csslt wbr wa cscut cslt csle wral wn wb csur wcel syl2anc co wceq cv wo
      wrex simplr simpll simprr simprl slerec syl22anc ancom syl6bb csn scutcut
      simp1d ad2antlr eqeltrd ad2antrr slenlt wss sselda adantr sltnle ralbidva
      ssltss1 ssltss2 anbi12d ralnex anbi12i ioran bitr4i 3bitr3d con4bid ) ABI
      JZCDIJZKZEABLUAZUBZFCDLUAZUBZKZKZEFMJZEHUCZNJZHCUEZGUCZFNJZGBUEZUDZWCFENJ
      ZWEEMJZHCOZFWHMJZGBOZKZWDPZWKPZWCWLWPWNKZWQWCVPVOWAVSWLWTQVOVPWBUFVOVPWBU
      GVQVSWAUHZVQVSWAUIZCDABFEHGUJUKWPWNULUMWCFRSZERSZWLWRQWCFVTRXAVPVTRSZVOWB
      VPXECVTUNZIJXFDIJCDUOUPUQURZWCEVRRXBVOVRRSZVPWBVOXHAVRUNZIJXIBIJABUOUPUSU
      RZFEUTTWCWQWFPZHCOZWIPZGBOZKZWSWCWNXLWPXNWCWMXKHCWCWECSZKWERSXDWMXKQWCCRW
      EVPCRVAVOWBCDVFUQVBWCXDXPXJVCWEEVDTVEWCWOXMGBWCWHBSZKXCWHRSWOXMQWCXCXQXGV
      CWCBRWHVOBRVAVPWBABVGUSVBFWHVDTVEVHXOWGPZWJPZKWSXLXRXNXSWFHCVIWIGBVIVJWGW
      JVKVLUMVMVN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Surreal numbers - cuts and options
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constants. $)
  $c _M _Old _N _L _R $.

  $( Declare the symbol for the made by function. $)
  cmade $a class _M $.

  $( Declare the symbol for the older than function. $)
  cold $a class _Old $.

  $( Declare the symbol for the new on function. $)
  cnew $a class _N $.

  $( Declare the symbol for the left option function. $)
  cleft $a class _L $.

  $( Declare the symbol for the right option function. $)
  cright $a class _R $.

  $( Define the made by function.  This function carries an ordinal to all
     surreals made by sections of surreals older than it.  (Contributed by
     Scott Fenton, 17-Dec-2021.) $)
  df-made $a |- _M = recs ( ( f e. _V |->
  ( |s " ( ~P U. ran f X. ~P U. ran f ) ) ) ) $.

  $( Define the older than function.  This function carries an ordinal to all
     surreals made by a previous ordinal.  (Contributed by Scott Fenton,
     17-Dec-2021.) $)
  df-old $a |- _Old = ( x e. On |-> U. ( _M " x ) ) $.

  $( Define the newer than function.  This function carries an ordinal to all
     surreals made on that day.  (Contributed by Scott Fenton, 17-Dec-2021.) $)
  df-new $a |- _N = ( x e. On |-> ( ( _Old ` x ) \ ( _M ` x ) ) ) $.

  ${
    $d x y z $.
    $( Define the left options of a surreal.  This is the set of surreals that
       are "closest" on the left to the given surreal.  (Contributed by Scott
       Fenton, 17-Dec-2021.) $)
    df-left $a |- _L = ( x e. No |-> { y e. ( _Old ` ( bday ` x ) ) |
     A. z e. No ( ( y <s z /\ z <s x ) -> ( bday ` y ) e. ( bday ` z ) ) } )
     $.

    $( Define the left options of a surreal.  This is the set of surreals that
       are "closest" on the right to the given surreal.  (Contributed by Scott
       Fenton, 17-Dec-2021.) $)
    df-right $a |- _R = ( x e. No |-> { y e. ( _Old ` ( bday ` x ) ) |
     A. z e. No ( ( x <s z /\ z <s y ) -> ( bday ` y ) e. ( bday ` z ) ) } )
     $.
  $}

  ${
    $d A x $.
    $( The value of the made by function.  (Contributed by Scott Fenton,
       17-Dec-2021.) $)
    madeval $p |- ( A e. On -> ( _M ` A ) =
    ( |s " ( ~P U. ( _M " A ) X. ~P U. ( _M " A ) ) ) ) $=
      ( vx con0 wcel cmade cfv cvv cscut crn cuni cpw cima wceq wfun ax-mp mpan
      cxp csslt csur funimaexg cres cv cmpt df-made tfr2 wfn fnfun resfunexg wf
      tfr1 scutf ffun uniexg pwexg 3syl xpexg syl2anc sylancr rneq df-ima pweqd
      syl6eqr unieqd sqxpeqd imaeq2d eqid fvmptg eqtrd ) ACDZAEFEAUAZBGHBUBZIZJ
      ZKZVNQZLZUCZFZHEALZJZKZWAQZLZAEVQBUDZUEVIVJGDZWCGDZVRWCMENZVIWEECUFWGEVQW
      DUJCEUGOZEACUHPVIHNZWBGDZWFRSHUIWIUKRSHULOVIWAGDZWKWJVIVSGDZVTGDWKWGVIWLW
      HEACTPVSGUMVTGUNUOZWMWAWAGGUPUQHWBGTURBVJVPWCGGVQVKVJMZVOWBHWNVNWAWNVMVTW
      NVLVSWNVLVJIVSVKVJUSEAUTVBVCVAVDVEVQVFVGUQVH $.

    $d A a b x y $.
    $( Alternative characterization of the made by function.  (Contributed by
       Scott Fenton, 17-Dec-2021.) $)
    madeval2 $p |- ( A e. On -> ( _M ` A ) =
   { x e. No |
     E. a e. ~P U. ( _M " A ) E. b e. ~P U. ( _M " A )
     ( a <<s b /\ ( a |s b ) = x ) } ) $=
      ( vy wcel cmade cfv cscut cima cv csslt wceq wa wrex csur eleq1 rexlimivw
      wbr cab con0 cuni cpw cxp co crab madeval csn scutcut simp1d biimpd mpan9
      abbii cop breq1 anbi12d rexxp cin cdm imaindm dmscut ineq2i imaeq2i eqtri
      pm4.71ri eleq2i elima elin anbi1i anass bitri rexbii2 3bitri df-br eqeq1i
      vex df-ov wfn wb wf scutf ffn fnbrfvb mpan syl5bb pm5.32i 2rexbii 3bitr4i
      ax-mp abbi2i df-rab 3eqtr4i syl6eq ) BUAFBGHIGBJUBUCZWNUDZJZCKZDKZLSZWQWR
      IUEZAKZMZNZDWNOZCWNOZAPUFZBUGXEATXAPFZXENZATWPXFXEXHAXEXGXDXGCWNXCXGDWNWS
      WTPFZXBXGWSXIWQWTUHZLSXJWRLSWQWRUIUJXBXIXGWTXAPQUKULRRVEUMXEAWPEKZLFZXKXA
      ISZNZEWOOZWQWRUNZLFZXPXAISZNZDWNOCWNOXAWPFZXEXNXSECDWNWNXKXPMXLXQXMXRXKXP
      LQXKXPXAIUOUPUQXTXAIWOLURZJZFXMEYAOXOWPYBXAWPIWOIUSZURZJYBWOIUTYDYAIYCLWO
      VAVBVCVDVFEXAIYAAVPVGXMXNEYAWOXKYAFZXMNXKWOFZXLNZXMNYFXNNYEYGXMXKWOLVHVIY
      FXLXMVJVKVLVMXCXSCDWNWNXCXQXBNXSWSXQXBWQWRLVNVIXQXBXRXBXPIHZXAMZXQXRWTYHX
      AWQWRIVQVOILVRZXQYIXRVSLPIVTYJWALPIWBWILXPXAIWCWDWEWFVKWGWHWJXEAPWKWLWM
      $.
  $}

  $(
  @{
     @( A surreal is in the made set of an ordinal iff its birthday is
        less than or equal to that ordinal.  (Contributed by Scott Fenton,
        17-Dec-2021.) @)
     elmade @p |- ( ( A e. On /\ X e. No ) -> ( X e. ( _M ` A ) <->
     ( bday ` X ) C_ A ) ) @= ? @.
  @}
  $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Quantifier-free definitions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c (x) Bigcup SSet Trans Limits Fix Funs Singleton Singletons Image Cart $.
  $c Img Domain Range pprod Apply Cup Cap Succ Funpart FullFun Restrict $.
  $c UB LB $.
  $( Declare the syntax for tail Cartesian product. $)
  ctxp $a class ( A (x) B ) $.
  $( Declare the syntax for the parallel product. $)
  cpprod $a class pprod ( R , S ) $.
  $( Declare the subset relationship class. $)
  csset $a class SSet $.
  $( Declare the transitive set class. $)
  ctrans $a class Trans $.
  $( Declare the set union relationship. $)
  cbigcup $a class Bigcup $.
  $( Declare the syntax for the fixpoints of a class. $)
  cfix $a class Fix A $.
  $( Declare the class of limit ordinals. $)
  climits $a class Limits $.
  $( Declare the syntax for the class of all function. $)
  cfuns $a class Funs $.
  $( Declare the syntax for the singleton function. $)
  csingle $a class Singleton $.
  $( Declare the syntax for the class of all singletons. $)
  csingles $a class Singletons $.
  $( Declare the syntax for the image functor. $)
  cimage $a class Image A $.
  $( Declare the syntax for the cartesian function. $)
  ccart $a class Cart $.
  $( Declare the syntax for the image function. $)
  cimg $a class Img $.
  $( Declare the syntax for the domain function. $)
  cdomain $a class Domain $.
  $( Declare the syntax for the range function. $)
  crange $a class Range $.
  $( Declare the syntax for the application function. $)
  capply $a class Apply $.
  $( Declare the syntax for the cup function. $)
  ccup $a class Cup $.
  $( Declare the syntax for the cap function. $)
  ccap $a class Cap $.
  $( Declare the syntax for the successor function. $)
  csuccf $a class Succ $.
  $( Declare the syntax for the functional part functor. $)
  cfunpart $a class Funpart F $.
  $( Declare the syntax for the full function functor. $)
  cfullfn $a class FullFun F $.
  $( Declare the syntax for the restriction function. $)
  crestrict $a class Restrict $.
  $( Declare the syntax for the upper bound relationship functor. $)
  cub $a class UB R $.
  $( Declare the syntax for the lower bound relationship functor. $)
  clb $a class LB R $.

  $( Define the tail cross of two classes.  Membership in this class is defined
     by ~ txpss3v and ~ brtxp .  (Contributed by Scott Fenton, 31-Mar-2012.) $)
  df-txp $a |- ( A (x) B ) = ( ( `' ( 1st |` ( _V X. _V ) ) o. A ) i^i
                               ( `' ( 2nd |` ( _V X. _V ) ) o. B ) ) $.

  $( Define the parallel product of two classes.  Membership in this class is
     defined by ~ pprodss4v and ~ brpprod .  (Contributed by Scott Fenton,
     11-Apr-2014.) $)
  df-pprod $a |- pprod ( A , B ) =
     ( ( A o. ( 1st |` ( _V X. _V ) ) ) (x)
       ( B o. ( 2nd |` ( _V X. _V ) ) ) ) $.

  $( Define the subset class.  For the value, see ~ brsset .  (Contributed by
     Scott Fenton, 31-Mar-2012.) $)
  df-sset $a |- SSet = ( ( _V X. _V ) \ ran ( _E (x) ( _V \ _E ) ) ) $.

  $( Define the class of all transitive sets.  (Contributed by Scott Fenton,
     31-Mar-2012.) $)
  df-trans $a |- Trans = ( _V \ ran ( ( _E o. _E ) \ _E ) ) $.

  $( Define the Bigcup function, which, per ~ fvbigcup , carries a set to its
     union.  (Contributed by Scott Fenton, 11-Apr-2012.) $)
  df-bigcup $a |- Bigcup = ( ( _V X. _V ) \
     ran ( ( _V (x) _E ) /_\ ( ( _E o. _E ) (x) _V ) ) ) $.

  $( Define the class of all fixpoints of a relationship.  (Contributed by
     Scott Fenton, 11-Apr-2012.) $)
  df-fix $a |- Fix A = dom ( A i^i _I ) $.

  $( Define the class of all limit ordinals.  (Contributed by Scott Fenton,
     11-Apr-2012.) $)
  df-limits $a |- Limits = ( ( On i^i Fix Bigcup ) \ { (/) } ) $.

  $( Define the class of all functions.  See ~ elfuns for membership.
     (Contributed by Scott Fenton, 18-Feb-2013.) $)
  df-funs $a |- Funs =
    ( ~P ( _V X. _V ) \
      Fix ( _E o. ( ( 1st (x) ( ( _V \ _I ) o. 2nd ) ) o. `' _E ) ) ) $.

  $( Define the singleton function.  See ~ brsingle for its value.
     (Contributed by Scott Fenton, 4-Apr-2014.) $)
  df-singleton $a |- Singleton =
     ( ( _V X. _V ) \ ran ( ( _V (x) _E ) /_\ ( _I (x) _V ) ) ) $.

  $( Define the class of all singletons.  See ~ elsingles for membership.
     (Contributed by Scott Fenton, 19-Feb-2013.) $)
  df-singles $a |- Singletons = ran Singleton $.

  $( Define the image functor.  This function takes a set ` A ` to a function
     ` x |-> ( A " x ) ` , providing that the latter exists.  See ~ imageval
     for the derivation.  (Contributed by Scott Fenton, 27-Mar-2014.) $)
  df-image $a |- Image A = ( ( _V X. _V ) \
           ran ( ( _V (x) _E ) /_\ ( ( _E o. `' A ) (x) _V ) ) ) $.

  $( Define the cartesian product function.  See ~ brcart for its value.
     (Contributed by Scott Fenton, 11-Apr-2014.) $)
  df-cart $a |- Cart = ( ( ( _V X. _V ) X. _V ) \
    ran ( ( _V (x) _E ) /_\ ( pprod ( _E , _E ) (x) _V ) ) ) $.

  $( Define the image function.  See ~ brimg for its value.  (Contributed by
     Scott Fenton, 12-Apr-2014.) $)
  df-img $a |- Img = ( Image ( ( 2nd o. 1st ) |` ( 1st |` ( _V X. _V ) ) )
                       o. Cart ) $.

  $( Define the domain function.  See ~ brdomain for its value.  (Contributed
     by Scott Fenton, 11-Apr-2014.) $)
  df-domain $a |- Domain = Image ( 1st |` ( _V X. _V ) ) $.

  $( Define the range function.  See ~ brrange for its value.  (Contributed by
     Scott Fenton, 11-Apr-2014.) $)
  df-range $a |- Range = Image ( 2nd |` ( _V X. _V ) ) $.

  $( Define the little cup function.  See ~ brcup for its value.  (Contributed
     by Scott Fenton, 14-Apr-2014.) $)
  df-cup $a |- Cup = ( ( ( _V X. _V ) X. _V ) \
  ran ( ( _V (x) _E ) /_\
        ( ( ( `' 1st o. _E ) u. ( `' 2nd o. _E ) ) (x) _V ) ) ) $.

  $( Define the little cap function.  See ~ brcap for its value.  (Contributed
     by Scott Fenton, 17-Apr-2014.) $)
  df-cap $a |- Cap = ( ( ( _V X. _V ) X. _V ) \
  ran ( ( _V (x) _E ) /_\
        ( ( ( `' 1st o. _E ) i^i ( `' 2nd o. _E ) ) (x) _V ) ) ) $.

  $( Define the restriction function.  See ~ brrestrict for its value.
     (Contributed by Scott Fenton, 17-Apr-2014.) $)
  df-restrict $a |- Restrict = ( Cap o.
    ( 1st (x) ( Cart o. ( 2nd (x) ( Range o. 1st ) ) ) ) ) $.

  $( Define the successor function.  See ~ brsuccf for its value.  (Contributed
     by Scott Fenton, 14-Apr-2014.) $)
  df-succf $a |- Succ = ( Cup o. ( _I (x) Singleton ) ) $.

  $( Define the application function.  See ~ brapply for its value.
     (Contributed by Scott Fenton, 12-Apr-2014.) $)
  df-apply $a |- Apply = ( ( Bigcup o. Bigcup ) o.
  ( ( ( _V X. _V ) \
      ran ( ( _V (x) _E ) /_\ ( ( _E |` Singletons ) (x) _V ) ) ) o.
  ( ( Singleton o. Img ) o. pprod ( _I , Singleton ) ) ) ) $.

  $( Define the functional part of a class ` F ` .  This is the maximal part of
     ` F ` that is a function.  See ~ funpartfun and ~ funpartfv for the
     meaning of this statement.  (Contributed by Scott Fenton, 16-Apr-2014.) $)
  df-funpart $a |- Funpart F =
             ( F |` dom ( ( Image F o. Singleton ) i^i ( _V X. Singletons ) ) )
      $.

  $( Define the full function over ` F ` .  This is a function with domain
     ` _V ` that always agrees with ` F ` for its value.  (Contributed by Scott
     Fenton, 17-Apr-2014.) $)
  df-fullfun $a |- FullFun F = ( Funpart F u. ( ( _V \ dom Funpart F ) X. { (/)
      } ) ) $.

  $( Define the upper bound relationship functor.  See ~ brub for value.
     (Contributed by Scott Fenton, 3-May-2018.) $)
  df-ub $a |- UB R = ( ( _V X. _V ) \ ( ( _V \ R ) o. `' _E ) ) $.

  $( Define the lower bound relationship functor.  See ~ brlb for value.
     (Contributed by Scott Fenton, 3-May-2018.) $)
  df-lb $a |- LB R = UB `' R $.

  ${
    $d A x y z $.  $d B x y z $.
    $( A tail Cartesian product is a subset of the class of ordered triples.
       (Contributed by Scott Fenton, 31-Mar-2012.) $)
    txpss3v $p |- ( A (x) B ) C_ ( _V X. ( _V X. _V ) ) $=
      ( vx vy vz ctxp c1st cvv cxp cres ccnv ccom c2nd cin df-txp inss1 cv wcel
      wbr vex relco wa wex cop brcnv brres simprbi adantl exlimiv opelco opelxp
      sylbi mpbiran 3imtr4i relssi sstri eqsstri ) ABFGHHIZJZKZALZMURJKBLZNZHUR
      IZABOVCVAVDVAVBPCDVAVDUTAUACQZEQZASZVFDQZUTSZUBZEUCVHURRZVEVHUDZVARVLVDRZ
      VJVKEVIVKVGVIVHVFUSSZVKVFVHUSETZDTZUEVNVHVFGSVKVHVFGURVOUFUGULUHUIEVEVHUT
      ACTZVPUJVMVEHRVKVQVEVHHURUKUMUNUOUPUQ $.
  $}

  $( A tail Cartesian product is a relationship.  (Contributed by Scott Fenton,
     31-Mar-2012.) $)
  txprel $p |- Rel ( A (x) B ) $=
    ( ctxp wrel cvv cxp wss txpss3v xpss sstri df-rel mpbir ) ABCZDMEEFZGMENFNA
    BHENIJMKL $.

  ${
    $d A y z $.  $d B y z $.  $d X y z $.  $d Y y z $.  $d Z y z $.
    brtxp.1 $e |- X e. _V $.
    brtxp.2 $e |- Y e. _V $.
    brtxp.3 $e |- Z e. _V $.
    $( Characterize a ternary relation over a tail Cartesian product.  Together
       with ~ txpss3v , this completely defines membership in a tail cross.
       (Contributed by Scott Fenton, 31-Mar-2012.) $)
    brtxp $p |- ( X ( A (x) B ) <. Y , Z >. <-> ( X A Y /\ X B Z ) ) $=
      ( vy vz wbr c1st cvv cres ccnv ccom c2nd wa wex 3bitri cop cxp cin df-txp
      ctxp breqi brin wceq opex brco ancom vex brcnv wcel opelvv brres mpbiran2
      cv br1steq anbi1i bitri exbii breq2 ceqsexv br2ndeq anbi12i ) CDEUAZABUEZ
      KCVGLMMUBZNZOZAPZQVINZOZBPZUCZKCVGVLKZCVGVOKZRCDAKZCEBKZRCVGVHVPABUDUFCVG
      VLVOUGVQVSVRVTVQCIURZAKZWAVGVKKZRZISWADUHZWBRZISVSICVGVKAFDEUIZUJWDWFIWDW
      CWBRWFWBWCUKWCWEWBWCVGWAVJKZVGWALKZWEWAVGVJIULZWGUMWHWIVGVIUNZDEGHUOZVGWA
      LVIWJUPUQDEWAGHUSTUTVAVBWBVSIDGWADCAVCVDTVRCJURZBKZWMVGVNKZRZJSWMEUHZWNRZ
      JSVTJCVGVNBFWGUJWPWRJWPWOWNRWRWNWOUKWOWQWNWOVGWMVMKZVGWMQKZWQWMVGVMJULZWG
      UMWSWTWKWLVGWMQVIXAUPUQDEWMGHVETUTVAVBWNVTJEHWMECBVCVDTVFT $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d R x y $.  $d S x y $.
    brtxp2.1 $e |- A e. _V $.
    $( The binary relation over a tail cross when the second argument is not an
       ordered pair.  (Contributed by Scott Fenton, 14-Apr-2014.)  (Revised by
       Mario Carneiro, 3-May-2015.) $)
    brtxp2 $p |- ( A ( R (x) S ) B <->
            E. x E. y ( B = <. x , y >. /\ A R x /\ A S y ) ) $=
      ( ctxp wbr cv cop wceq wa wex w3a cvv wcel bitr4i 2exbii vex txpss3v brel
      cxp simprd elvv sylib pm4.71ri 19.41vv breq2 pm5.32i anbi2i 3anass 3bitri
      brtxp ) CDEFHZIZDAJZBJZKZLZUPMZBNANZUTCUSUOIZMZBNANUTCUQEIZCURFIZOZBNANUP
      UTBNANZUPMVBUPVHUPDPPUCZQZVHUPCPQVJCDPVIUOEFUAUBUDABDUEUFUGUTUPABUHRVAVDA
      BUTUPVCDUSCUOUIUJSVDVGABVDUTVEVFMZMVGVCVKUTEFCUQURGATBTUNUKUTVEVFULRSUM
      $.
  $}

  $( Expanded definition of parallel product.  (Contributed by Scott Fenton,
     3-May-2014.) $)
  dfpprod2 $p |- pprod ( A , B ) =
     ( ( `' ( 1st |` ( _V X. _V ) ) o. ( A o. ( 1st |` ( _V X. _V ) ) ) ) i^i
       ( `' ( 2nd |` ( _V X. _V ) ) o. ( B o. ( 2nd |` ( _V X. _V ) ) ) ) ) $=
    ( cpprod c1st cvv cxp cres ccom c2nd ctxp ccnv cin df-pprod df-txp eqtri )
    ABCADEEFZGZHZBIPGZHZJQKRHSKTHLABMRTNO $.

  $( A converse law for parallel product.  (Contributed by Scott Fenton,
     3-May-2014.) $)
  pprodcnveq $p |- pprod ( R , S ) = `' pprod ( `' R , `' S ) $=
    ( cpprod c1st cvv cxp cres ccnv ccom c2nd cin dfpprod2 cnveqi cnvco1 coeq1i
    cnvin coass 3eqtri ineq12i eqtr4i ) ABCDEEFZGZHZAUBIIZJUAGZHZBUEIIZKZAHZBHZ
    CZHZABLULUCUIUBIZIZUFUJUEIZIZKZHUNHZUPHZKUHUKUQUIUJLMUNUPPURUDUSUGURUMHZUBI
    UCAIZUBIUDUBUMNUTVAUBAUBNOUCAUBQRUSUOHZUEIUFBIZUEIUGUEUONVBVCUEBUENOUFBUEQR
    SRT $.

  ${
    $d A x y z w $.  $d B x y z w $.
    $( The parallel product is a subclass of
       ` ( ( _V X. _V ) X. ( _V X. _V ) ) ` .  (Contributed by Scott Fenton,
       11-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    pprodss4v $p |- pprod ( A , B ) C_ ( ( _V X. _V ) X. ( _V X. _V ) ) $=
      ( vx vy vz vw c1st cvv cxp cres ccom cv cop wcel wex wbr vex adantr sylbi
      wa cpprod c2nd ctxp df-pprod txprel txpss3v sseli opelxp2 wceq elvv opeq2
      syl wi eleq1d df-br brtxp brco brres simprbi sylbir syl6bi exlimivv mpcom
      exlimiv opelxp sylanbrc relssi eqsstri ) ABUAAGHHIZJZKZBUBVIJKZUCZVIVIIZA
      BUDCDVMVNVKVLUECLZDLZMZVMNZVOVINZVPVINZVQVNNVTVRVSVRVQHVIIZNVTVMWAVQVKVLU
      FUGVOVPHVIUHULZVTVPELZFLZMZUIZFOEOVRVSUMZEFVPUJWFWGEFWFVRVOWEMZVMNZVSWFVQ
      WHVMVPWEVOUKUNWIVOWEVMPZVSVOWEVMUOWJVOWCVKPZVOWDVLPZTVSVKVLVOWCWDCQZEQZFQ
      UPWKVSWLWKVOVPVJPZVPWCAPZTZDOVSDVOWCAVJWMWNUQWQVSDWOVSWPWOVOVPGPVSVOVPGVI
      DQURUSRVDSRSUTVAVBSVCWBVOVPVIVIVEVFVGVH $.
  $}

  ${
    $d A x $.  $d B y $.  $d W y $.  $d X x $.  $d X y $.  $d Y x $.  $d Y y $.
    $d Z x $.
    brpprod.1 $e |- X e. _V $.
    brpprod.2 $e |- Y e. _V $.
    brpprod.3 $e |- Z e. _V $.
    brpprod.4 $e |- W e. _V $.
    $( Characterize a quaternary relation over a tail Cartesian product.
       Together with ~ pprodss4v , this completely defines membership in a
       parallel product.  (Contributed by Scott Fenton, 11-Apr-2014.)  (Revised
       by Mario Carneiro, 19-Apr-2014.) $)
    brpprod $p |- ( <. X , Y >. pprod ( A , B ) <. Z , W >. <->
            ( X A Z /\ Y B W ) ) $=
      ( vx vy cop wbr c1st cvv c2nd wa wex 3bitri cpprod cxp cres ccom df-pprod
      ctxp breqi opex brtxp cv wceq brco wcel opelvv vex brres mpbiran2 br1steq
      bitri anbi1i exbii breq1 ceqsexv br2ndeq anbi12i ) DEMZFCMZABUAZNVFVGAOPP
      UBZUCZUDZBQVIUCZUDZUFZNVFFVKNZVFCVMNZRDFANZECBNZRVFVGVHVNABUEUGVKVMVFFCDE
      UHZIJUIVOVQVPVRVOVFKUJZVJNZVTFANZRZKSVTDUKZWBRZKSVQKVFFAVJVSIULWCWEKWAWDW
      BWAVFVTONZWDWAWFVFVIUMZDEGHUNZVFVTOVIKUOUPUQDEVTGHURUSUTVAWBVQKDGVTDFAVBV
      CTVPVFLUJZVLNZWICBNZRZLSWIEUKZWKRZLSVRLVFCBVLVSJULWLWNLWJWMWKWJVFWIQNZWMW
      JWOWGWHVFWIQVILUOUPUQDEWIGHVDUSUTVAWKVRLEHWIECBVBVCTVET $.
  $}

  ${
    $d w z $.  $d R w $.  $d R z $.  $d S w $.  $d S z $.  $d X w $.  $d X z $.
    $d Y w $.  $d Y z $.  $d Z w $.  $d Z z $.
    brpprod3.1 $e |- X e. _V $.
    brpprod3.2 $e |- Y e. _V $.
    brpprod3.3 $e |- Z e. _V $.
    $( Condition for parallel product when the last argument is not an ordered
       pair.  (Contributed by Scott Fenton, 11-Apr-2014.)  (Revised by Mario
       Carneiro, 19-Apr-2014.) $)
    brpprod3a $p |- ( <. X , Y >. pprod ( R , S ) Z <->
       E. z E. w ( Z = <. z , w >. /\ X R z /\ Y S w ) ) $=
      ( cop wbr cv wa wex cvv wcel bitr4i 2exbii vex cpprod wceq pprodss4v brel
      w3a cxp simprd sylib pm4.71ri 19.41vv breq2 pm5.32i brpprod anbi2i 3anass
      elvv 3bitri ) EFKZGCDUAZLZGAMZBMZKZUBZUTNZBOAOZVDURVCUSLZNZBOAOVDEVACLZFV
      BDLZUEZBOAOUTVDBOAOZUTNVFUTVLUTGPPUFZQZVLUTURVMQVNURGVMVMUSCDUCUDUGABGUPU
      HUIVDUTABUJRVEVHABVDUTVGGVCURUSUKULSVHVKABVHVDVIVJNZNVKVGVOVDCDVBEFVAHIAT
      BTUMUNVDVIVJUORSUQ $.

    $( Condition for parallel product when the first argument is not an ordered
       pair.  (Contributed by Scott Fenton, 3-May-2014.) $)
    brpprod3b $p |- ( X pprod ( R , S ) <. Y , Z >. <->
       E. z E. w ( X = <. z , w >. /\ z R Y /\ w S Z ) ) $=
      ( cop cpprod wbr ccnv cv w3a wex brcnv bitri vex wceq opex brpprod3a biid
      pprodcnveq breqi 3anbi123i 2exbii ) EFGKZCDLZMEUICNZDNZLZNZMZEAOZBOZKUAZU
      PFCMZUQGDMZPZBQAQZEUIUJUNCDUEUFUOURFUPUKMZGUQULMZPZBQAQZVBUOUIEUMMVFEUIUM
      HFGUBRABUKULFGEIJHUCSVEVAABURURVCUSVDUTURUDFUPCIATRGUQDJBTRUGUHSS $.
  $}

  $( The subset class is a binary relation.  (Contributed by Scott Fenton,
     31-Mar-2012.) $)
  relsset $p |- Rel SSet $=
    ( csset wrel cvv cxp wss cep cdif ctxp df-sset difss eqsstri df-rel mpbir
    crn ) ABACCDZEAOFCFGHNZGOIOPJKALM $.

  ${
    $d A x y $.  $d B x y $.
    brsset.1 $e |- B e. _V $.
    $( For sets, the ` SSet ` binary relation is equivalent to the subset
       relationship.  (Contributed by Scott Fenton, 31-Mar-2012.) $)
    brsset $p |- ( A SSet B <-> A C_ B ) $=
      ( vx vy csset wbr cvv wcel wss relsset cv cep wn wex wa vex mpbiran bitri
      cdif brrelexi ssex breq1 sseq1 cop ctxp crn wi opex elrn brtxp epel brdif
      wal brv epelc xchbinx anbi12i exbii exanali 3bitrri con1bii df-br df-sset
      cxp eleq2i opelvv eldif dfss2 3bitr4i vtoclbg pm5.21nii ) ABFGZAHIABJZABF
      KUAABCUBDLZBFGZVOBJZVMVNDAHVOABFUCVOABUDVOBUEZMHMTZUFZUGZIZNZELZVOIZWDBIZ
      UHEUNZVPVQWGWBWBWDVRVTGZEOWEWFNZPZEOWGNEVRVTVOBUIUJWHWJEWHWDVOMGZWDBVSGZP
      WJMVSWDVOBEQDQZCUKWKWEWLWIEDULWLWDBMGZWFWLWDBHGWNNWDBUOWDBHMUMRWDBCUPUQUR
      SUSWEWFEUTVAVBVPVRFIZWCVOBFVCWOVRHHVEZWATZIZWCFWQVRVDVFWRVRWPIWCVOBWMCVGV
      RWPWAVHRSSEVOBVIVJVKVL $.
  $}

  ${
    $d y z $.
    $( ` _I ` is equal to the intersection of ` SSet ` and its converse.
       (Contributed by Scott Fenton, 31-Mar-2012.) $)
    idsset $p |- _I = ( SSet i^i `' SSet ) $=
      ( vy vz cid csset ccnv cin reli wrel relsset relin1 ax-mp weq cv wss eqss
      wa wbr vex brsset bitri ideq brin brcnv anbi12i 3bitr4i eqbrriv ) ABCDDEZ
      FZGDHUHHIDUGJKABLAMZBMZNZUJUINZPZUIUJCQUIUJUHQZUIUJOUIUJBRZUAUNUIUJDQZUIU
      JUGQZPUMUIUJDUGUBUPUKUQULUIUJUOSUQUJUIDQULUIUJDARZUOUCUJUIURSTUDTUEUF $.
  $}

  ${
    eltrans.1 $e |- A e. _V $.
    $( Membership in the class of all transitive sets.  (Contributed by Scott
       Fenton, 31-Mar-2012.) $)
    eltrans $p |- ( A e. Trans <-> Tr A ) $=
      ( ctrans wcel cvv cep ccom cdif crn wtr df-trans eleq2i dftr6 bitr4i ) AC
      DAEFFGFHIHZDAJCOAKLABMN $.
  $}

  ${
    $d x y $.

    $( A quantifier-free definition of ` On ` .  (Contributed by Scott Fenton,
       5-Apr-2012.) $)
    dfon3 $p |- On =
     ( _V \ ran ( ( SSet i^i ( Trans X. _V ) ) \ ( _I u. _E ) ) ) $=
      ( vy vx cv wa wcel cvv csset ctrans cid cep cdif wceq wbr wex vex anbi12i
      wn bitri wo anbi1i con0 wpss wtr wi wal cab cxp cin cun crn dfon2 wb elrn
      abeq1 wss brin brsset brxp mpbiran2 eltrans ioran brun ideq epel xchnxbir
      orbi12i brdif dfpss2 an32 anass 3bitr4i exbii exanali eldif bitr4i mpgbir
      con2bii mpbiran eqtri ) UAACZBCZUBZVTUCZDZVTWAEZUDAUEZBUFZFGHFUGZUHZIJUIZ
      KZUJZKZBAUKWGWMLWFWAWMEZULBWFBWMUNWFWAWLEZQZWNWOWFWOVTWAWKMZANZWFQZAWAWKB
      OZUMWRWDWEQZDZANWSWQXBAVTWAWIMZVTWAWJMZQZDVTWAUOZWCDZVTWALZQZXADZDZWQXBXC
      XGXEXJXCVTWAGMZVTWAWHMZDXGVTWAGWHUPXLXFXMWCVTWAWTUQXMVTHEZWCXMXNWAFEZWTVT
      WAHFURUSVTAOUTRPRXHWESZXJXDXHWEVAXDVTWAIMZVTWAJMZSXPVTWAIJVBXQXHXRWEVTWAW
      TVCABVDVFRVEPVTWAWIWJVGXBXGXIDZXADXKWDXSXAWDXFXIDZWCDXSWBXTWCVTWAVHTXFXIW
      CVIRTXGXIXAVJRVKVLWDWEAVMRRVQWNXOWPWTWAFWLVNVRVOVPVS $.
  $}

  $( Another quantifier-free definition of ` On ` .  (Contributed by Scott
     Fenton, 4-May-2014.) $)
  dfon4 $p |- On = ( _V \ ( ( SSet \ ( _I u. _E ) ) " Trans ) ) $=
    ( con0 cvv csset ctrans cxp cin cid cep cun cdif crn cima dfon3 cres df-ima
    df-res indif1 eqtri rneqi difeq2i eqtr4i ) ABCDBEZFGHIZJZKZJBCUCJZDLZJMUGUE
    BUGUFDNZKUEUFDOUHUDUHUFUBFUDUFDPCUBUCQRSRTUA $.

  ${
    $d A x $.  $d B x $.  $d R x $.
    brtxpsd.1 $e |- A e. _V $.
    brtxpsd.2 $e |- B e. _V $.
    $( Expansion of a common form used in quantifier-free definitions.
       (Contributed by Scott Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    brtxpsd $p |- ( -. A ran ( ( _V (x) _E ) /_\ ( R (x) _V ) ) B <->
       A. x ( x e. B <-> x R A ) ) $=
      ( cv wcel wbr wb wal cvv cep ctxp csymdif wn wex brv brtxp bitri crn opex
      cop df-br brsymdif vex mpbiran epelc mpbiran2 bibi12i xchbinx exbii exnal
      elrn 3bitrri con1bii ) AGZCHZUQBDIZJZAKZBCLMNZDLNZOZUAZIZVFBCUCZVEHZUTPZA
      QZVAPBCVEUDVHUQVGVDIZAQVJAVGVDBCUBUNVKVIAVKUQVGVBIZUQVGVCIZJUTUQVGVBVCUEV
      LURVMUSVLUQCMIZURVLUQBLIVNUQBRLMUQBCAUFZEFSUGUQCFUHTVMUSUQCLIUQCRDLUQBCVO
      EFSUIUJUKULTUTAUMUOUP $.
  $}

  ${
    $d A x $.  $d B x $.  $d S x $.
    brtxpsd2.1 $e |- A e. _V $.
    brtxpsd2.2 $e |- B e. _V $.
    brtxpsd2.3 $e |- R = ( C \ ran ( ( _V (x) _E ) /_\ ( S (x) _V ) ) ) $.
    brtxpsd2.4 $e |- A C B $.
    $( Another common abbreviation for quantifier-free definitions.
       (Contributed by Scott Fenton, 21-Apr-2014.) $)
    brtxpsd2 $p |- ( A R B <-> A. x ( x e. B <-> x S A ) ) $=
      ( wbr cvv cep ctxp csymdif crn wn cv wcel bitri wb wal cdif breqi mpbiran
      wa brdif brtxpsd ) BCEKZBCLMNFLNOPZKQZARZCSULBFKUAAUBUIBCDKZUKJUIBCDUJUCZ
      KUMUKUFBCEUNIUDBCDUJUGTUEABCFGHUHT $.

    ${
      $d X x $.
      brtxpsd3.5 $e |- ( x e. X <-> x S A ) $.
      $( A third common abbreviation for quantifier-free definitions.
         (Contributed by Scott Fenton, 3-May-2014.) $)
      brtxpsd3 $p |- ( A R B <-> B = X ) $=
        ( cv wcel wb wal wbr wceq bibi2i albii dfcleq brtxpsd2 3bitr4ri ) AMZCN
        ZUDGNZOZAPUEUDBFQZOZAPCGRBCEQUGUIAUFUHUELSTACGUAABCDEFHIJKUBUC $.
    $}
  $}

  $( The ` Bigcup ` relationship is a relationship.  (Contributed by Scott
     Fenton, 11-Apr-2012.) $)
  relbigcup $p |- Rel Bigcup $=
    ( cbigcup wrel cvv cxp cep ctxp ccom csymdif crn cdif relxp ax-mp df-bigcup
    reldif releqi mpbir ) ABCCDZCEFEEGCFHIZJZBZQBTCCKQRNLASMOP $.

  ${
    $d A x y z $.  $d B x y z $.
    brbigcup.1 $e |- B e. _V $.
    $( Binary relation over ` Bigcup ` .  (Contributed by Scott Fenton,
       11-Apr-2012.) $)
    brbigcup $p |- ( A Bigcup B <-> U. A = B ) $=
      ( vx vy vz cbigcup wbr cvv wcel cuni wceq relbigcup brrelexi eleq1 mpbiri
      cv cep vex wrex uniexb sylibr breq1 unieq eqeq1d ccom df-bigcup brxp epel
      cxp mpbir2an rexbii coep eluni2 3bitr4ri brtxpsd3 eqcom vtoclbg pm5.21nii
      bitri ) ABGHZAIJZAKZBLZABGMNVDVCIJZVBVDVEBIJZCVCBIOPAUAUBDQZBGHZVGKZBLZVA
      VDDAIVGABGUCVGALVIVCBVGAUDUEVHBVILVJEVGBIIUJZGRRUFZVIDSZCUGVGBVKHVGIJVFVM
      CVGBIIUHUKEQZFQZRHZFVGTVNVOJZFVGTVNVGVLHVNVIJVPVQFVGEFUIULFVNVGRESVMUMFVN
      VGUNUOUPBVIUQUTURUS $.
  $}

  ${
    $d x y z t $.
    $( ` Bigcup ` using maps-to notation.  (Contributed by Scott Fenton,
       16-Apr-2012.) $)
    dfbigcup2 $p |- Bigcup = ( x e. _V |-> U. x ) $=
      ( vy vz vt cbigcup cvv cuni cmpt relbigcup mptrel wceq wbr eqcom brbigcup
      cv vex wcel wa weq eleq1 unieq eqeq2d anbi12d biantrur syl6bbr eqeq1 brab
      df-mpt 3bitr4i eqbrriv ) BCEAFAOZGZHZIAFULJBOZGZCOZKUPUOKZUNUPELUNUPUMLUO
      UPMUNUPCPZNUKFQZDOZULKZRZUTUOKZUQADUNUPUMBPZURABSZVBUNFQZVCRVCVEUSVFVAVCU
      KUNFTVEULUOUTUKUNUAUBUCVFVCVDUDUEUTUPUOUFADFULUHUGUIUJ $.
  $}

  ${
    $d x y $.
    $( ` Bigcup ` maps the universe onto itself.  (Contributed by Scott Fenton,
       16-Apr-2012.) $)
    fobigcup $p |- Bigcup : _V -onto-> _V $=
      ( vx vy cvv cbigcup wfo wfn crn wceq cuni wcel wral uniexg rgen dfbigcup2
      cv mptfng mpbi wrex cab rnmpt snex unisn eqcomi unieq eqeq2d rspcev mp2an
      vex csn 2th abbi2i eqtr4i df-fo mpbir2an ) CCDEDCFZDGZCHAOZIZCJZACKUOUSAC
      UQCLMACURDANZPQUPBOZURHZACRZBSCABCURDUTTVCBCVACJVCBUHZVAUIZCJVAVEIZHZVCVA
      UAVFVAVAVDUBUCVBVGAVECUQVEHURVFVAUQVEUDUEUFUGUJUKULCCDUMUN $.
  $}

  $( ` Bigcup ` is a function over the universal class.  (Contributed by Scott
     Fenton, 11-Apr-2012.) $)
  fnbigcup $p |- Bigcup Fn _V $=
    ( cvv cbigcup wfo wfn fobigcup fofn ax-mp ) AABCBADEAABFG $.

  ${
    fvbigcup.1 $e |- A e. _V $.
    $( For sets, ` Bigcup ` yields union.  (Contributed by Scott Fenton,
       11-Apr-2012.) $)
    fvbigcup $p |- ( Bigcup ` A ) = U. A $=
      ( cbigcup cfv cuni wceq wbr eqid uniex brbigcup mpbir cvv wfn wb fnbigcup
      wcel fnbrfvb mp2an ) ACDAEZFZASCGZUASSFSHASABIJKCLMALPTUANOBLASCQRK $.
  $}

  ${
    $d A x $.  $d R x $.
    elfix.1 $e |- A e. _V $.
    $( Membership in the fixpoints of a class.  (Contributed by Scott Fenton,
       11-Apr-2012.) $)
    elfix $p |- ( A e. Fix R <-> A R A ) $=
      ( vx cfix wcel cid cin cdm cv wceq wbr wex df-fix eleq2i eldm brin 3bitri
      wa bitri ancom vex ideq eqcom anbi1i exbii breq2 ceqsexv ) ABEZFABGHZIZFZ
      DJZAKZAUMBLZSZDMZAABLZUIUKABNOULAUMUJLZDMUQDAUJCPUSUPDUSUOAUMGLZSUTUOSUPA
      UMBGQUOUTUAUTUNUOUTAUMKUNAUMDUBUCAUMUDTUERUFTUOURDACUMAABUGUHR $.
  $}

  ${
    $d A x $.  $d R x $.
    elfix2.1 $e |- Rel R $.
    $( Alternative membership in the fixpoint of a class.  (Contributed by
       Scott Fenton, 11-Apr-2012.) $)
    elfix2 $p |- ( A e. Fix R <-> A R A ) $=
      ( vx cfix wcel cvv wbr elex brrelexi cv eleq1 wceq wb breq12 anidms elfix
      vex vtoclbg pm5.21nii ) ABEZFZAGFAABHZAUAIAABCJDKZUAFUDUDBHZUBUCDAGUDAUAL
      UDAMUEUCNUDAUDABOPUDBDRQST $.
  $}

  ${
    $d A x y $.
    $( The fixpoints of a class in terms of its range.  (Contributed by Scott
       Fenton, 16-Apr-2012.) $)
    dffix2 $p |- Fix A = ran ( A i^i _I ) $=
      ( vx vy cfix cid cin crn cv wcel wbr vex elfix wex weq wa elrn brin ancom
      ideq 3bitri anbi1i exbii breq1 ceqsexv bitr4i eqriv ) BADZAEFZGZBHZUGIUJU
      JAJZUJUIIZUJABKZLULCHZUJUHJZCMCBNZUNUJAJZOZCMUKCUJUHUMPUOURCUOUQUNUJEJZOU
      SUQOURUNUJAEQUQUSRUSUPUQUNUJUMSUATUBUQUKCUJUMUNUJUJAUCUDTUEUF $.
  $}

  $( The fixpoints of a class are a subset of its domain.  (Contributed by
     Scott Fenton, 16-Apr-2012.) $)
  fixssdm $p |- Fix A C_ dom A $=
    ( cfix cid cin cdm df-fix wss inss1 dmss ax-mp eqsstri ) ABACDZEZAEZAFLAGMN
    GACHLAIJK $.

  $( The fixpoints of a class are a subset of its range.  (Contributed by Scott
     Fenton, 16-Apr-2012.) $)
  fixssrn $p |- Fix A C_ ran A $=
    ( cfix cid cin crn dffix2 wss inss1 rnss ax-mp eqsstri ) ABACDZEZAEZAFLAGMN
    GACHLAIJK $.

  ${
    $d A x $.
    $( The fixpoints of a class are the same as those of its converse.
       (Contributed by Scott Fenton, 16-Apr-2012.) $)
    fixcnv $p |- Fix A = Fix `' A $=
      ( vx cfix ccnv cv wbr wcel vex brcnv elfix 3bitr4ri eqriv ) BACZADZCZBEZP
      NFPPAFPOGPMGPPABHZQIPNQJPAQJKL $.
  $}

  $( The fixpoint operator distributes over union.  (Contributed by Scott
     Fenton, 16-Apr-2012.) $)
  fixun $p |- Fix ( A u. B ) = ( Fix A u. Fix B ) $=
    ( cun cid cin cdm cfix indir dmeqi dmun eqtri df-fix uneq12i 3eqtr4i ) ABCZ
    DEZFZADEZFZBDEZFZCZOGAGZBGZCQRTCZFUBPUEABDHIRTJKOLUCSUDUAALBLMN $.

  ${
    ellimits.1 $e |- A e. _V $.
    $( Membership in the class of all limit ordinals.  (Contributed by Scott
       Fenton, 11-Apr-2012.) $)
    ellimits $p |- ( A e. Limits <-> Lim A ) $=
      ( climits wcel con0 cbigcup cfix cin c0 csn cdif wn wlim df-limits eleq2i
      wa eldif wceq 3bitri anbi12i word wne cuni 3anan32 df-lim elin elon elfix
      w3a wbr brbigcup eqcom bitri elsn necon3bbii 3bitr4ri ) ACDAEFGZHZIJZKZDA
      URDZAUSDZLZPZAMZCUTANOAURUSQAUAZAIUBZAAUCZRZUIVFVIPZVGPVEVDVFVGVIUDAUEVAV
      JVCVGVAAEDZAUQDZPVJAEUQUFVKVFVLVIABUGVLAAFUJVHARVIAFBUHAABUKVHAULSTUMVBAI
      AIBUNUOTUPS $.
  $}

  $( The class of all limit ordinals is a subclass of the class of all
     ordinals.  (Contributed by Scott Fenton, 11-Apr-2012.) $)
  limitssson $p |- Limits C_ On $=
    ( climits con0 cbigcup cfix cin c0 cdif df-limits difss inss1 sstri eqsstri
    csn ) ABCDZEZFMZGZBHQOBOPIBNJKL $.

  ${
    $d x y $.
    $( A quantifier-free definition of ` _om ` that does not depend on
       ~ ax-inf .  (Note: label was changed from ~ dfom5 to ~ dfom5b to prevent
       naming conflict.  NM, 12-Feb-2013.)  (Contributed by Scott Fenton,
       11-Apr-2012.) $)
    dfom5b $p |- _om = ( On i^i |^| Limits ) $=
      ( vx vy com con0 climits cint cin cv wcel wlim wi wal wa vex elint imbi1i
      ellimits albii bitr2i anbi2i elom elin 3bitr4i eqriv ) ACDEFZGZAHZDIZBHZJ
      ZUGUIIZKZBLZMUHUGUEIZMUGCIUGUFIUMUNUHUNUIEIZUKKZBLUMBUGEANOUPULBUOUJUKUIB
      NQPRSTBUGUAUGDUEUBUCUD $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    $( A condition for subset and composition with identity.  (Contributed by
       Scott Fenton, 13-Apr-2018.) $)
    sscoid $p |- ( A C_ ( _I o. B ) <-> ( Rel A /\ A C_ B ) ) $=
      ( vx vy vz cid wss wrel cv wcel wi wal wa wex wbr vex bitri eleq1 df-br
      wb ccom relco relss mpi cop wceq elrel brco ancom ideq anbi1i exbii breq2
      weq ceqsexv a1i syl6bbr 3bitr4d exlimivv syl albidv dfss2 3bitr4g biadan2
      pm5.74da ) AFBUAZGZAHZABGZVGVFHVHFBUBAVFUCUDVHCIZAJZVJVFJZKZCLVKVJBJZKZCL
      VGVIVHVMVOCVHVKVLVNVHVKMVJDIZEIZUEZUFZENDNVLVNTZDEVJAUGVSVTDEVSVPVQVFOZVP
      VQBOZVLVNWAWBTVSWAVPVJBOZVJVQFOZMZCNZWBCVPVQFBDPEPZUHWFCEUNZWCMZCNWBWEWIC
      WEWDWCMWIWCWDUIWDWHWCVJVQWGUJUKQULWCWBCVQWGVJVQVPBUMUOQQUPVSVLVRVFJWAVJVR
      VFRVPVQVFSUQVSVNVRBJWBVJVRBRVPVQBSUQURUSUTVEVACAVFVBCABVBVCVD $.
  $}

  ${
    $d F x y z $.
    $( Another potential definition of functionhood.  Based on statements in
~ http://people.math.gatech.edu/~~belinfan/research/autoreas/otter/sum/fs/ .
       (Contributed by Scott Fenton, 30-Aug-2017.) $)
    dffun10 $p |- ( Fun F <-> F C_ ( _I o. ( _V \ ( ( _V \ _I ) o. F ) ) ) ) $=
      ( vx vy vz cv cop wcel wa weq wi wal cvv cid cdif ccom wss wn wbr wex vex
      wrel wfun ssrel impexp albii 19.21v opelco df-br brv brdif mpbiran equcom
      ideq bitri xchbinx anbi12i exbii exanali 3bitri con2bii opex eldif bitr4i
      imbi2i 2albii syl6rbbr pm5.32i dffun4 sscoid 3bitr4i ) AUAZBEZCEZFZAGZVLD
      EZFAGZHCDIZJZDKZCKBKZHVKALLMNZAOZNZPZHAUBAMWDOPVKWAWEVKWEVOVNWDGZJZCKBKWA
      BCAWDUCVTWGBCVTVOVQVRJZJZDKVOWHDKZJWGVSWIDVOVQVRUDUEVOWHDUFWJWFVOWJVNWCGZ
      QZWFWKWJWKVLVPARZVPVMWBRZHZDSVQVRQZHZDSWJQDVLVMWBABTCTZUGWOWQDWMVQWNWPVLV
      PAUHWNVPVMMRZVRWNVPVMLRWSQVPVMUIVPVMLMUJUKWSDCIVRVPVMWRUMDCULUNUOUPUQVQVR
      DURUSUTWFVNLGWLVLVMVAVNLWCVBUKVCVDUSVEVFVGBCDAVHAWDVIVJ $.
  $}

  ${
    $d F a x y z p q $.
    elfuns.1 $e |- F e. _V $.
    $( Membership in the class of all functions.  (Contributed by Scott Fenton,
       18-Feb-2013.) $)
    elfuns $p |- ( F e. Funs <-> Fun F ) $=
      ( vx vy vz vp vq va cv wcel wa weq cvv wbr wex wn syl6bb vex bitri 3bitri
      wrel cop wi wal c1st cdif c2nd ccom ctxp wfun cfuns wceq elrel ex anim12d
      cid adantrd pm4.71rd 19.41vvvv ee4anv anbi1i bitr2i 2exbidv excom13 excom
      exrot4 df-3an 2exbii opex eleq1 anbi1d breq2 anbi12d anbi2d breq1 br1steq
      w3a brtxp equcom brco br2ndeq exbii brv brdif mpbiran ideq notbii anbi12i
      equsexvw an12 ceqsex2v bitr3i opeq1 eleq1d exanali con2bid pm5.32i dffun4
      exnal cxp cpw cep ccnv cfix df-funs eleq2i eldif elpw df-rel bitr4i elfix
      wss wrex coep coepr rexbii r2ex 3bitr4ri ) AUAZCIZDIZUBZAJZXTEIZUBZAJZKZD
      ELZUCEUDZDUDZCUDZKXSFIZAJZGIZAJZKZYNYLUEMUPUFZUGUHZUIZNZKZGOFOZPZKZAUJAUK
      JZXSYKUUCXSUUBYKXSUUBYLYBULZYNHIZYDUBZULZKZUUAKZEOHOZDOZCOZGOFOZYKPZXSUUA
      UUNFGXSUUAUUFDOCOZUUIEOHOZKZUUAKZUUNXSUUAUUSXSYPUUSYTXSYMUUQYOUURXSYMUUQC
      DYLAUMUNXSYOUURHEYNAUMUNUOUQURUUNUUJEOHODOCOZUUAKUUTUUJUUADHECUSUVAUUSUUA
      UUFUUICDHEUTVAVBQVCUUOUUMFOGOZCOYJPZCOUUPUUMFGCVDUVBUVCCUVBUULGOFOZDOYIPZ
      DOUVCUULGFDVDUVDUVEDUVDUUKGOFOZEOHOUVFHOZEOZUVEUUKFGHEVFUVFHEVEUVHYGYHPZK
      ZEOUVEUVGUVJEUVGHCLZYCUUHAJZKZUVIKZKZHOUVJUVFUVOHUVFUUFUUIUUAVQZGOFOUVOUV
      PUUKFGUUFUUIUUAVGVHUUAYCYOKZYNYBYSNZKZUVOFGYBUUHXTYAVIUUGYDVIZUUFYPUVQYTU
      VRUUFYMYCYOYLYBAVJVKYLYBYNYSVLVMUUIUVSUVMUVKUVIKZKUVOUUIUVQUVMUVRUWAUUIYO
      UVLYCYNUUHAVJVNUUIUVRUUHYBYSNZUWAYNUUHYBYSVOUWBUUHXTUENZUUHYAYRNZKUWAUEYR
      UUHXTYAUVTCRDRZVRUWCUVKUWDUVIUWCCHLUVKUUGYDXTHRZERZVPCHVSSUWDUUHXTUGNZXTY
      AYQNZKZCOCELZUWIKZCOUVICUUHYAYQUGUVTUWEVTUWJUWLCUWHUWKUWIUUGYDXTUWFUWGWAV
      AWBUWIUVICEUWKUWIYDYAYQNZUVIXTYDYAYQVOUWMYDYAUPNZPZUVIUWMYDYAMNUWOYDYAWCY
      DYAMUPWDWEUWNYHUWNEDLYHYDYAUWEWFEDVSSWGSQWITWHSQVMUVMUVKUVIWJQWKWLWBUVNUV
      JHCUVKUVMYGUVIUVKUVLYFYCUVKUUHYEAUUGXTYDWMWNVNVKWISWBYGYHEWOSTWBYIDWSTWBY
      JCWSTQWPWQCDEAWRUUEAMMWTZXAZXBYSXBXCUHZUHZXDZUFZJAUWQJZAUWTJZPZKUUDUKUXAA
      XEXFAUWQUWTXGUXBXSUXDUUCUXBAUWPXLXSAUWPBXHAXIXJUXCUUBUXCAAUWSNZYTGAXMZFAX
      MZUUBAUWSBXKUXEAYLUWRNZFAXMUXGFAAUWRBBXNUXHUXFFAGAYLYSBFRXOXPSYTFGAAXQTWG
      WHTXR $.
  $}

  ${
    $d F f $.
    $( Closed form of ~ elfuns .  (Contributed by Scott Fenton, 2-May-2014.) $)
    elfunsg $p |- ( F e. V -> ( F e. Funs <-> Fun F ) ) $=
      ( vf cv cfuns wcel wfun eleq1 funeq vex elfuns vtoclbg ) CDZEFMGAEFAGCABM
      AEHMAIMCJKL $.
  $}

  ${
    $d A x $.  $d B x $.
    brsingle.1 $e |- A e. _V $.
    brsingle.2 $e |- B e. _V $.
    $( The binary relation form of the singleton function.  (Contributed by
       Scott Fenton, 4-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    brsingle $p |- ( A Singleton B <-> B = { A } ) $=
      ( vx cvv cxp csingle cid csn df-singleton wbr wcel brxp mpbir2an cv velsn
      wceq ideq bitr4i brtxpsd3 ) EABFFGZHIAJZCDKABUBLAFMBFMCDABFFNOEPZUCMUDARU
      DAILEAQUDACSTUA $.
  $}

  ${
    $d A x y $.
    $( Membership in the class of all singletons.  (Contributed by Scott
       Fenton, 19-Feb-2013.) $)
    elsingles $p |- ( A e. Singletons <-> E. x A = { x } ) $=
      ( vy csingles wcel cvv csn wceq wex elex snex eleq1 mpbiri exlimiv exbidv
      cv eqeq1 csingle crn vex wbr df-singles eleq2i elrn brsingle exbii 3bitri
      vtoclbg pm5.21nii ) BDEZBFEZBAPZGZHZAIZBDJUNUKAUNUKUMFEULKBUMFLMNCPZDEZUP
      UMHZAIZUJUOCBFUPBDLUPBHURUNAUPBUMQOUQUPRSZEULUPRUAZAIUSDUTUPUBUCAUPRCTZUD
      VAURAULUPATVBUEUFUGUHUI $.
  $}

  ${
    $d x y z $.
    $( The singleton relationship is a function over the universe.
       (Contributed by Scott Fenton, 4-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    fnsingle $p |- Singleton Fn _V $=
      ( vx vy vz csingle cvv wfn wfun cdm wceq wrel cv wbr wa weq wal mpbir vex
      ctxp brsingle mpbir2an wi cxp cep cid csymdif crn cdif difss df-singleton
      wss df-rel releqi csn eqtr3 syl2anb ax-gen gen2 dffun2 wcel eqv eqid snex
      wex breq2 spcev ax-mp eldm mpgbir df-fn ) DEFDGZDHZEIZVJDJZAKZBKZDLZVNCKZ
      DLZMBCNZUAZCOZBOAOVMEEUBZEUCRUDERUEUFZUGZJZWEWDWBUJWBWCUHWDUKPDWDUIULPWAA
      BVTCVPVOVNUMZIVQWFIVSVRVNVOAQZBQSVNVQWGCQSVOVQWFUNUOUPUQABCDURTVLVNVKUSZA
      AVKUTWHVPBVCZVNWFDLZWIWJWFWFIWFVAVNWFWGVNVBZSPVPWJBWFWKVOWFVNDVDVEVFBVNDW
      GVGPVHDEVIT $.
  $}

  ${
    $d A x $.
    $( The value of the singleton function.  (Contributed by Scott Fenton,
       4-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.)  (Revised by
       Scott Fenton, 13-Apr-2018.) $)
    fvsingle $p |- ( Singleton ` A ) = { A } $=
      ( vx cvv wcel csingle cfv csn wceq cv fveq2 sneq eqeq12d wbr vex brsingle
      eqid snex mpbir wfn c0 wb fnsingle mp2an vtoclg fvprc snprc biimpi eqtr4d
      fnbrfvb wn pm2.61i ) ACDZAEFZAGZHZBIZEFZUPGZHZUOBACUPAHUQUMURUNUPAEJUPAKL
      USUPUREMZUTURURHURPUPURBNZUPQORECSUPCDUSUTUAUBVACUPUREUIUCRUDULUJZUMTUNAE
      UEVBUNTHAUFUGUHUK $.
  $}

  ${
    $d x y $.
    $( Alternate definition of the class of all singletons.  (Contributed by
       Scott Fenton, 20-Nov-2013.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    dfsingles2 $p |- Singletons = { x | E. y x = { y } } $=
      ( cv csn wceq wex csingles elsingles abbi2i ) ACZBCDEBFAGBJHI $.
  $}

  ${
    $d A x $.
    snelsingles.1 $e |- A e. _V $.
    $( A singleton is a member of the class of all singletons.  (Contributed by
       Scott Fenton, 19-Feb-2013.) $)
    snelsingles $p |- { A } e. Singletons $=
      ( vx csn csingles wcel cv wceq wex cvv isset eqcom exbii mpbi sneq eximii
      bitri elsingles mpbir ) ADZEFTCGZDHZCIAUAHZUBCAJFZUCCIZBUDUAAHZCIUECAKUFU
      CCUAALMQNAUAOPCTRS $.
  $}

  ${
    $d x y z w $.  $d ph y z w $.
    $( A definiton of iota using minimal quantifiers.  (Contributed by Scott
       Fenton, 19-Feb-2013.) $)
    dfiota3 $p |- ( iota x ph ) = U. U. ( { { x | ph } } i^i Singletons ) $=
      ( vy vz vw cab cv csn wceq cuni csingles cin wex wcel ceqsexv bitri exbii
      wa weq eqtri cio df-iota wb abeq1 wel exdistr vex sneq eqeq2d eqeq1 eleq2
      snex anbi12d eqcom velsn equcom anbi12ci syl6bb an13 bitr3i excom eluniab
      3bitr4i mpgbir df-sn dfsingles2 ineq12i 19.42v bicomi abbii unieqi eqtr4i
      inab ) ABUAABFZCGZHZIZCFZJVNHZKLZJZJABCUBVRWAVRDGZVNIZWBEGZHZIZRZEMZDFZJZ
      WAVRWJIVQVOWJNZUCCVQCWJUDCDUEZWGRZEMDMZWLWHRDMVQWKWLWGDEUFVQWMDMZEMZWNVQE
      CSZVNWEIZRZEMWPWRVQEVOCUGWQWEVPVNWDVOUHUIOWSWOEWSWFWCWLRZRZDMWOWTWSDWEWDU
      LWFWTWEVNIZVOWENZRWSWFWCXBWLXCWBWEVNUJWBWEVOUKUMXBWRXCWQWEVNUNXCCESWQCWDU
      OCEUPPUQUROXAWMDWFWCWLUSQUTQUTWMEDVAPWHDVOVBVCVDVTWIVTWCDFZWFEMZDFZLZWIVS
      XDKXFDVNVEDEVFVGXGWCXERZDFWIWCXEDVMXHWHDWHXHWCWFEVHVIVJTTVKVLVKT $.
  $}

  ${
    $d F x $.  $d A x $.
    $( Another quantifier free definition of function value.  (Contributed by
       Scott Fenton, 19-Feb-2013.) $)
    dffv5 $p |- ( F ` A ) = U. U. ( { ( F " { A } ) } i^i Singletons ) $=
      ( vx cfv cv csn cima wcel cio cab csingles cuni dffv3 dfiota3 abid2 sneqi
      cin ineq1i unieqi 3eqtri ) ABDCEBAFGZHZCIUBCJZFZKQZLZLUAFZKQZLZLCABMUBCNU
      FUIUEUHUDUGKUCUACUAOPRSST $.
  $}

  $( Express union of singleton in terms of ` if ` .  (Contributed by Scott
     Fenton, 27-Mar-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  unisnif $p |- U. { A } = if ( A e. _V , A , (/) ) $=
    ( cvv wcel c0 cif csn cuni wceq iftrue unisng eqtr4d wn snprc biimpi unieqd
    iffalse uni0 syl6eq pm2.61i eqcomi ) ABCZADEZAFZGZUAUBUDHUAUBAUDUAADIABJKUA
    LZUBDUDUAADPUEUDDGDUEUCDUEUCDHAMNOQRKST $.

  ${
    $d A x y $.  $d B x y $.  $d R x y $.
    brimage.1 $e |- A e. _V $.
    brimage.2 $e |- B e. _V $.
    $( Binary relation form of the Image functor.  (Contributed by Scott
       Fenton, 4-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    brimage $p |- ( A Image R B <-> B = ( R " A ) ) $=
      ( vx vy cvv cxp cimage cep ccnv ccom cima df-image wbr wcel cv wrex vex
      brxp mpbir2an brcnv rexbii coep elima 3bitr4ri brtxpsd3 ) FABHHIZCJKCLZMZ
      CANZDECOABUIPAHQBHQDEABHHUAUBFRZGRZUJPZGASUNUMCPZGASUMAUKPUMULQUOUPGAUMUN
      CFTZGTUCUDGUMAUJUQDUEGUMCAUQUFUGUH $.
  $}

  ${
    $d R x y $.  $d A x y $.  $d B x y $.
    $( Closed form of ~ brimage .  (Contributed by Scott Fenton, 4-Apr-2014.)
       (Revised by Mario Carneiro, 19-Apr-2014.) $)
    brimageg $p |- ( ( A e. V /\ B e. W ) ->
               ( A Image R B <-> B = ( R " A ) ) ) $=
      ( vx vy cv cimage wbr cima wb breq1 imaeq2 eqeq2d bibi12d breq2 eqeq1 vex
      wceq brimage vtocl2g ) FHZGHZCIZJZUDCUCKZTZLAUDUEJZUDCAKZTZLABUEJZBUJTZLF
      GABDEUCATZUFUIUHUKUCAUDUEMUNUGUJUDUCACNOPUDBTUIULUKUMUDBAUEQUDBUJRPUCUDCF
      SGSUAUB $.
  $}

  ${
    $d A x y z $.
    $( ` Image A ` is a function.  (Contributed by Scott Fenton, 27-Mar-2014.)
       (Revised by Mario Carneiro, 19-Apr-2014.) $)
    funimage $p |- Fun Image A $=
      ( vx vy vz cimage wfun wrel cv wbr wa weq wal cvv cep ctxp mpbir wceq vex
      wi brimage cxp ccnv ccom csymdif crn cdif wss df-rel df-image releqi cima
      difss eqtr3 syl2anb gen2 ax-gen dffun2 mpbir2an ) AEZFUSGZBHZCHZUSIZVADHZ
      USIZJCDKZSZDLCLZBLUTMMUAZMNONAUBUCMOUDUEZUFZGZVLVKVIUGVIVJULVKUHPUSVKAUIU
      JPVHBVGCDVCVBAVAUKZQVDVMQVFVEVAVBABRZCRTVAVDAVNDRTVBVDVMUMUNUOUPBCDUSUQUR
      $.
  $}

  ${
    $d R x y $.
    $( ` Image R ` is a function over the set-like portion of ` R ` .
       (Contributed by Scott Fenton, 4-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    fnimage $p |- Image R Fn { x | ( R " x ) e. _V } $=
      ( cimage cima cvv wcel cab wfn wfun cdm wceq funimage wbr wex vex brimage
      vy cv eqvisset sylbi exlimiv eqid brimageg mpbiri breq2 spcegv mpd impbii
      wb mpan eldm weq imaeq2 eleq1d elab 3bitr4i eqriv df-fn mpbir2an ) BCZBAR
      ZDZEFZAGZHUTIUTJZVDKBLQVEVDQRZVAUTMZANZBVFDZEFZVFVEFVFVDFVHVJVGVJAVGVAVIK
      VJVFVABQOZAOPAVISTUAVJVFVIUTMZVHVJVLVIVIKZVIUBVFEFVJVLVMUIVKVFVIBEEUCUJUD
      VGVLAVIEVAVIVFUTUEUFUGUHAVFUTVKUKVCVJAVFVKAQULVBVIEVAVFBUMUNUOUPUQUTVDURU
      S $.
  $}

  ${
    $d R x y z $.
    $( The image functor in maps-to notation.  (Contributed by Scott Fenton,
       4-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    imageval $p |- Image R = ( x e. _V |-> ( R " x ) ) $=
      ( vy vz cimage cvv cv cima wfun wbr wcel cdm vex breldm wfn wceq syl6eleq
      ax-mp wb syl5bb cmpt wrel funimage funrel mptrel cab fndm crab eqid dmmpt
      fnimage rabab eqtri imaeq2 eleq1d elab brimage eqcom fvmptg eqeq1d funmpt
      cfv df-fn mpbir2an biimpri fnbrfvb sylancr bitr3d sylbi pm5.21nii eqbrriv
      mpan ) CDBEZAFBAGZHZUAZVMIVMUBBUCVMUDRAFVOUECGZDGZVMJZVQVOFKZAUFZKZVQVRVP
      JZVSVQVMLZWAVQVRVMCMZDMZNVMWAOWDWAPABUKWAVMUGRQWCVQVPLZWAVQVRVPWEWFNWGVTA
      FUHWAAFVOVPVPUIZUJVTAULUMZQWBBVQHZFKZVSWCSVTWKAVQWEVNVQPVOWJFVNVQBUNZUOUP
      ZVSVRWJPZWKWCVQVRBWEWFUQWNWJVRPZWKWCVRWJURWKVQVPVBZVRPZWOWCWKWPWJVRVQFKWK
      WPWJPWEAVQVOWJFFVPWLWHUSVLUTWKVPWAOZWBWQWCSWRVPIWGWAPAFVOVAWIVPWAVCVDWBWK
      WMVEWAVQVRVPVFVGVHTTVIVJVK $.
  $}

  ${
    $d R x $.  $d A x $.
    $( Value of the image functor.  (Contributed by Scott Fenton, 4-Apr-2014.)
       (Revised by Mario Carneiro, 19-Apr-2014.) $)
    fvimage $p |- ( ( A e. V /\ ( R " A ) e. W ) ->
             ( Image R ` A ) = ( R " A ) ) $=
      ( vx wcel cvv cima cimage cfv wceq elex cv imaeq2 imageval fvmptg sylan )
      ACFAGFBAHZDFABIZJRKACLEABEMZHRGDSTABNEBOPQ $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    brcart.1 $e |- A e. _V $.
    brcart.2 $e |- B e. _V $.
    brcart.3 $e |- C e. _V $.
    $( Binary relation form of the cartesian product operator.  (Contributed by
       Scott Fenton, 11-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    brcart $p |- ( <. A , B >. Cart C <-> C = ( A X. B ) ) $=
      ( vx vy vz cop cvv cxp ccart cep wbr wcel cv wex wa epelc cpprod mpbir2an
      opex df-cart opelvv brxp w3a 3anass anbi12i anbi2i bitri 2exbii brpprod3b
      wceq vex elxp 3bitr4ri brtxpsd3 ) GABJZCKKLZKLZMNNUAZABLZABUCFUDUSCVAOUSU
      TPCKPABDEUEFUSCUTKUFUBGQZHQZIQZJUNZVEANOZVFBNOZUGZIRHRVGVEAPZVFBPZSZSZIRH
      RVDUSVBOVDVCPVJVNHIVJVGVHVISZSVNVGVHVIUHVOVMVGVHVKVIVLVEADTVFBETUIUJUKULH
      INNVDABGUODEUMHIVDABUPUQUR $.
  $}

  ${
    brdomain.1 $e |- A e. _V $.
    brdomain.2 $e |- B e. _V $.
    $( Binary relation form of the domain function.  (Contributed by Scott
       Fenton, 11-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    brdomain $p |- ( A Domain B <-> B = dom A ) $=
      ( c1st cvv cxp cres cimage wbr cima cdomain brimage df-domain breqi dfdm5
      wceq cdm eqeq2i 3bitr4i ) ABEFFGHZIZJBUAAKZQABLJBARZQABUACDMABLUBNOUDUCBA
      PST $.

    $( Binary relation form of the range function.  (Contributed by Scott
       Fenton, 11-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    brrange $p |- ( A Range B <-> B = ran A ) $=
      ( c2nd cvv cxp cres cimage wbr cima wceq crn brimage df-range breqi dfrn5
      crange eqeq2i 3bitr4i ) ABEFFGHZIZJBUAAKZLABRJBAMZLABUACDNABRUBOPUDUCBAQS
      T $.
  $}

  ${
    $d A a b $.  $d B a b $.
    $( Closed form of ~ brdomain .  (Contributed by Scott Fenton,
       2-May-2014.) $)
    brdomaing $p |- ( ( A e. V /\ B e. W ) ->
               ( A Domain B <-> B = dom A ) ) $=
      ( va vb cv cdomain wbr cdm wceq breq1 dmeq eqeq2d bibi12d breq2 eqeq1 vex
      wb brdomain vtocl2g ) EGZFGZHIZUCUBJZKZSAUCHIZUCAJZKZSABHIZBUHKZSEFABCDUB
      AKZUDUGUFUIUBAUCHLULUEUHUCUBAMNOUCBKUGUJUIUKUCBAHPUCBUHQOUBUCERFRTUA $.

    $( Closed form of ~ brrange .  (Contributed by Scott Fenton,
       3-May-2014.) $)
    brrangeg $p |- ( ( A e. V /\ B e. W ) ->
               ( A Range B <-> B = ran A ) ) $=
      ( va vb cv crange wbr crn wceq wb breq1 rneq eqeq2d bibi12d breq2 brrange
      eqeq1 vex vtocl2g ) EGZFGZHIZUCUBJZKZLAUCHIZUCAJZKZLABHIZBUHKZLEFABCDUBAK
      ZUDUGUFUIUBAUCHMULUEUHUCUBANOPUCBKUGUJUIUKUCBAHQUCBUHSPUBUCETFTRUA $.
  $}

  ${
    $d A a $.  $d a b $.  $d A b $.  $d a p $.  $d A p $.  $d a q $.  $d A q $.
    $d a x $.  $d A x $.  $d B a $.  $d B b $.  $d b p $.  $d B p $.  $d b q $.
    $d B q $.  $d b x $.  $d B x $.  $d C a $.  $d p q $.  $d p x $.  $d q x $.
    brimg.1 $e |- A e. _V $.
    brimg.2 $e |- B e. _V $.
    brimg.3 $e |- C e. _V $.
    $( Binary relation form of the ` Img ` function.  (Contributed by Scott
       Fenton, 12-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    brimg $p |- ( <. A , B >. Img C <-> C = ( A " B ) ) $=
      ( va vx vb vp vq cop wbr c1st wceq wa wex 3bitri wcel bitri cimg c2nd cvv
      ccom cres cimage ccart cima df-img breqi cv opex brco brcart anbi1i exbii
      cxp vex xpex breq1 ceqsexv brimage 19.42v anass an12 anbi2i 2exbii anbi2d
      excom wrex df-br risset brres ancom 3bitr3ri weq w3a opeq1 breq1d anbi12d
      elvv br1steq equcom br2ndeq anbi12i syl6bb pm5.32i df-3an 3bitr4i 19.41vv
      eqeq2d opeq2 ceqsex2v 3bitr4ri rexbii df-rex elima2 bitr4i exrot3 eqeq2i
      elxp eqriv ) ABLZCUAMXCCUBNUDZNUCUCUQZUEZUEZUFZUGUDZMZABUQZCXHMZCABUHZOZX
      CCUAXIUIUJXJXCGUKZUGMZXOCXHMZPZGQXOXKOZXQPZGQXLGXCCXHUGABULFUMXRXTGXPXSXQ
      ABXODEGURUNUOUPXQXLGXKABDEUSZXOXKCXHUTVARXLCXGXKUHZOXNXKCXGYAFVBYBXMCHYBX
      MIUKZBSZYCHUKZAMZPZIQJUKZXOYCLZOZXOASZYDPZPZYHYEXGMZPZGQJQZIQZYEXMSYEYBSZ
      YGYPIYDYKYIYEXGMZPZPZGQZYDYTGQZPYPYGYDYTGVCYPYJYDYKYNPZPZPZGQJQUUFJQZGQUU
      BYOUUFJGYOYJYLYNPZPUUFYJYLYNVDUUHUUEYJUUHYKYDYNPPUUEYKYDYNVDYKYDYNVETVFTV
      GUUFJGVIUUGUUAGUUEUUAJYIXOYCULYJUUDYTYDYJYNYSYKYHYIYEXGUTVHVHVAUPRYFUUCYD
      YFYCYELZASZYSGAVJZUUCYCYEAVKUUJXOUUIOZGAVJUUKGUUIAVLUULYSGAYIYEXDMZXOXESZ
      XOYCNMZPZPZUUMYIXFSZPUULYSUUPUURUUMXOYCXFMUUOUUNPUURUUPXOYCNXEIURZVMXOYCX
      FVKUUOUUNVNVOVFUULUUPUUMPZUUQUUNUUOUUMPZPXOYHKUKZLZOZKQJQZUVAPZUUTUULUUNU
      VEUVAJKXOWAUOUUNUUOUUMVDUVDUVAPZKQJQJIVPZKHVPZUVDVQZKQJQUVFUULUVGUVJJKUVD
      UVHUVIPZPUVKUVDPUVGUVJUVDUVKVNUVDUVAUVKUVDUVAUVCYCNMZUVCYCLZYEXDMZPUVKUVD
      UUOUVLUUMUVNXOUVCYCNUTUVDYIUVMYEXDXOUVCYCVRVSVTUVLUVHUVNUVIUVLIJVPUVHYHUV
      BYCJURZKURZWBIJWCTUVNUVDXOYEUBMZPZGQZHKVPZUVIUVNUVMXONMZUVQPZGQUVSGUVMYEU
      BNUVCYCULHURZUMUWBUVRGUWAUVDUVQUVCYCXOYHUVBULZUUSWBUOUPTUVSUVCYEUBMZUVTUV
      QUWEGUVCUWDXOUVCYEUBUTVAYHUVBYEUVOUVPWDTHKWCRWEWFWGUVHUVIUVDWHWIVGUVDUVAJ
      KWJUVDXOYCUVBLZOUULJKYCYEUUSUWCUVHUVCUWFXOYHYCUVBVRWKUVIUWFUUIXOUVBYEYCWL
      WKWMVOWNUUPUUMVNTYIYEXDXFUWCVMWIWOTYSGAWPRVFWNUPIYEABUWCWQYRYHXKSZYNPZJQY
      OIQGQZJQZYQJYEXGXKUWCWQUWHUWIJUWHYMIQGQZYNPUWIUWGUWKYNGIYHABXAUOYMYNGIWJW
      RUPUWJYOJQIQGQYQYOJGIWSYOGIJWSTRWNXBWTTR $.
  $}

  ${
    $d A a $.  $d a b $.  $d A b $.  $d a x $.  $d A x $.  $d A y $.  $d B a $.
    $d B b $.  $d b x $.  $d B x $.  $d B y $.  $d C x $.  $d C y $.  $d x y $.
    $d x z $.  $d y z $.  $d a z $.  $d A z $.  $d b z $.  $d B z $.
    brapply.1 $e |- A e. _V $.
    brapply.2 $e |- B e. _V $.
    brapply.3 $e |- C e. _V $.
    $( Binary relation form of the ` Apply ` function.  (Contributed by Scott
       Fenton, 12-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    brapply $p |- ( <. A , B >. Apply C <-> C = ( A ` B ) ) $=
      ( vx vy vz va vb csingles wceq wa wex wbr eqeq2d cbigcup cvv wcel cv cima
      csn cin cuni cop capply cfv snex inex1 unieq unieqd ceqsexv ccom cxp ctxp
      cep cres csymdif crn cdif csingle cimg cid cpprod df-apply breqi opex vex
      brco w3a brpprod3a 3anrot ideq eqcom bitri brsingle biid 3anbi123i 2exbii
      opeq1 opeq2 ceqsex2v 3bitri anbi1i exbii breq1 brimg anbi12i imaexg ax-mp
      sneq eqid brxp mpbir2an epel brres elin 3bitr4ri brtxpsd3 brbigcup vuniex
      ineq1 dffv5 eqeq2i 3bitr4i ) GUAZABUCZUBZUCZLUDZMZCXGUEZUEZMZNZGOZCXKUEZU
      EZMZABUFZCUGPZCBAUHZMXOXTGXKXJLXIUIZUJXLXNXSCXLXMXRXGXKUKULQUMYBYACRRUNZS
      SUOZSUQUPUQLURZSUPUSUTVAZVBVCUNZVDVBVEZUNZUNZUNZPYAXGYLPZXGCYEPZNZGOXQYAC
      UGYMVFVGGYACYEYLABVHZFVJYPXPGYNXLYOXOYNYAHUAZYKPZYRXGYHPZNZHOYRXJMZXGYRLU
      DZMZNZHOXLHYAXGYHYKYQGVIZVJUUAUUEHYSUUBYTUUDYSYAIUAZYJPZUUGYRYIPZNZIOUUGA
      XHUFZMZUUINZIOZUUBIYAYRYIYJYQHVIZVJUUJUUMIUUHUULUUIUUHUUGJUAZKUAZUFZMZAUU
      PVDPZBUUQVBPZVKZKOJOUUPAMZUUQXHMZUUSVKZKOJOUULJKVDVBABUUGDEIVIVLUVBUVEJKU
      VBUUTUVAUUSVKUVEUUSUUTUVAVMUUTUVCUVAUVDUUSUUSUUTAUUPMUVCAUUPJVIVNAUUPVOVP
      BUUQEKVIVQUUSVRVSVPVTUUSUUGAUUQUFZMUULJKAXHDBUIZUVCUURUVFUUGUUPAUUQWAQUVD
      UVFUUKUUGUUQXHAWBQWCWDWEWFUUNUUKYRYIPZUUKXGVCPZXGYRVBPZNZGOZUUBUUIUVHIUUK
      AXHVHZUUGUUKYRYIWGUMGUUKYRVBVCUVMUUOVJUVLXGXIMZYRXGUCZMZNZGOUUBUVKUVQGUVI
      UVNUVJUVPAXHXGDUVGUUFWHXGYRUUFUUOVQWIWFUVPUUBGXIASTXISTDAXHSWJWKUVNUVOXJY
      RXGXIWLQUMVPWDWDIYRXGYFYHYGUUCUUOUUFYHWMYRXGYFPYRSTXGSTUUOUUFYRXGSSWNWOUU
      GYRUQPZUUGLTZNUUGYRTZUVSNUUGYRYGPUUGUUCTUVRUVTUVSIHWPWEUUGYRUQLUUOWQUUGYR
      LWRWSWTWIWFUUDXLHXJYDUUBUUCXKXGYRXJLXCQUMWDYOXGYRRPZYRCRPZNZHOYRXMMZCYRUE
      ZMZNZHOXOHXGCRRUUFFVJUWCUWGHUWAUWDUWBUWFUWAXMYRMUWDXGYRUUOXAXMYRVOVPUWBUW
      ECMUWFYRCFXAUWECVOVPWIWFUWFXOHXMGXBUWDUWEXNCYRXMUKQUMWDWIWFWDYCXSCBAXDXEX
      F $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C x y $.
    brcup.1 $e |- A e. _V $.
    brcup.2 $e |- B e. _V $.
    brcup.3 $e |- C e. _V $.
    $( Binary relation form of the ` Cup ` function.  (Contributed by Scott
       Fenton, 14-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    brcup $p |- ( <. A , B >. Cup C <-> C = ( A u. B ) ) $=
      ( vx vy cvv cxp c1st ccnv cep ccom c2nd cun wbr wcel wa wex cop ccup opex
      df-cup opelvv brxp mpbir2an cv wceq wel epel brcnv br1steq bitri anbi12ci
      vex exbii brco clel3 3bitr4i br2ndeq orbi12i brun elun 3bitr4ri brtxpsd3
      wo ) GABUAZCIIJZIJZUBKLZMNZOLZMNZPZABPZABUCZFUDVHCVJQVHVIRCIRABDEUEFVHCVI
      IUFUGGUHZVHVLQZVRVHVNQZVGVRARZVRBRZVGVRVHVOQVRVPRVSWAVTWBVRHUHZMQZWCVHVKQ
      ZSZHTWCAUIZGHUJZSZHTVSWAWFWIHWDWHWEWGGHUKZWEVHWCKQWGWCVHKHUPZVQULABWCDEUM
      UNUOUQHVRVHVKMGUPZVQURHVRADUSUTWDWCVHVMQZSZHTWCBUIZWHSZHTVTWBWNWPHWDWHWMW
      OWJWMVHWCOQWOWCVHOWKVQULABWCDEVAUNUOUQHVRVHVMMWLVQURHVRBEUSUTVBVRVHVLVNVC
      VRABVDVEVF $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C x $.
    brcap.1 $e |- A e. _V $.
    brcap.2 $e |- B e. _V $.
    brcap.3 $e |- C e. _V $.
    $( Binary relation form of the ` Cap ` function.  (Contributed by Scott
       Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    brcap $p |- ( <. A , B >. Cap C <-> C = ( A i^i B ) ) $=
      ( vx vy cvv cxp c1st ccnv cep ccom c2nd cin wbr wcel wa wex cop ccap opex
      df-cap opelvv brxp mpbir2an cv wceq wel epel brcnv br1steq bitri anbi12ci
      vex exbii brco clel3 3bitr4i br2ndeq anbi12i brin elin 3bitr4ri brtxpsd3
      ) GABUAZCIIJZIJZUBKLZMNZOLZMNZPZABPZABUCZFUDVGCVIQVGVHRCIRABDEUEFVGCVHIUF
      UGGUHZVGVKQZVQVGVMQZSVQARZVQBRZSVQVGVNQVQVORVRVTVSWAVQHUHZMQZWBVGVJQZSZHT
      WBAUIZGHUJZSZHTVRVTWEWHHWCWGWDWFGHUKZWDVGWBKQWFWBVGKHUPZVPULABWBDEUMUNUOU
      QHVQVGVJMGUPZVPURHVQADUSUTWCWBVGVLQZSZHTWBBUIZWGSZHTVSWAWMWOHWCWGWLWNWIWL
      VGWBOQWNWBVGOWJVPULABWBDEVAUNUOUQHVQVGVLMWKVPURHVQBEUSUTVBVQVGVKVMVCVQABV
      DVEVF $.
  $}

  ${
    $d A a b x $.  $d B a b x $.
    brsuccf.1 $e |- A e. _V $.
    brsuccf.2 $e |- B e. _V $.
    $( Binary relation form of the ` Succ ` function.  (Contributed by Scott
       Fenton, 14-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    brsuccf $p |- ( A Succ B <-> B = suc A ) $=
      ( vx va vb csuccf wbr ccup cid csingle cv wex wceq cop bitri w3a anbi1i
      wa ctxp ccom csuc df-succf breqi brco csn opex breq1 ceqsexv brcup brtxp2
      cun snex 3anass an32 vex ideq eqcom brsingle anbi12i ancom df-3an 3bitr4i
      3bitri 2exbii 19.41vv opeq1 eqeq2d anbi1d ceqsex2v 3bitr3i df-suc eqeq2i
      opeq2 exbii ) ABHIABJKLUAZUBZIAEMZVQIZVSBJIZTZENZBAUCZOZABHVRUDUEEABJVQCD
      UFVSAAUGZPZOZWATZENZBAWFUMZOZWCWEWJWGBJIZWLWAWMEWGAWFUHVSWGBJUIUJAWFBCAUN
      ZDUKQWBWIEWBVSFMZGMZPZOZAWOKIZAWPLIZRZGNFNZWATZWIVTXBWAFGAVSKLCULSXAWATZG
      NFNWOAOZWPWFOZWRWATZRZGNFNXCWIXDXHFGXDWRWSWTTZTZWATXGXITZXHXAXJWAWRWSWTUO
      SWRXIWAUPXIXGTXEXFTZXGTXKXHXIXLXGWSXEWTXFWSAWOOXEAWOFUQURAWOUSQAWPCGUQUTV
      ASXGXIVBXEXFXGVCVDVEVFXAWAFGVGXGVSAWPPZOZWATWIFGAWFCWNXEWRXNWAXEWQXMVSWOA
      WPVHVIVJXFXNWHWAXFXMWGVSWPWFAVOVIVJVKVLQVPWDWKBAVMVNVDVE $.
  $}

  ${
    $d A x y z $.  $d F x y z $.
    $( Lemma for ~ funpartfun .  Show membership in the restriction.
       (Contributed by Scott Fenton, 4-Dec-2017.) $)
    funpartlem $p |- (
    A e. dom ( ( Image F o. Singleton ) i^i ( _V X. Singletons ) ) <->
    E. x ( F " { A } ) = { x } ) $=
      ( vy vz csingle cvv csingles wcel csn cima cv wex c0 imaeq2d wbr wa exbii
      wceq 3bitri cimage ccom cxp cin cdm elex vsnid eleq2 mpbiri n0i wn biimpi
      snprc ima0 syl6eq nsyl2 syl exlimiv eleq1 sneq eqeq1d exbidv eldm mpbiran
      vex brxp elsingles bitri anbi2i brin 19.42v 3bitr4i excom exancom ceqsexv
      snex breq2 brco brsingle anbi1i breq1 brimage eqcom vtoclbg pm5.21nii ) B
      CUAZFUBZGHUCZUDZUEZIZBGIZCBJZKZALZJZSZAMZBWJUFWQWLAWQWOWNIZWLWQWSWOWPIAUG
      WNWPWOUHUIWSWNNSWLWNWOUJWLUKZWNCNKNWTWMNCWTWMNSBUMULOCUNUOUPUQURDLZWJIZCX
      AJZKZWPSZAMZWKWRDBGXABWJUSXABSZXEWQAXGXDWNWPXGXCWMCXABUTOVAVBXBXAELZWIPZE
      MZXAXHWGPZXHWPSZQZEMZAMZXFEXAWIDVEZVCXJXMAMZEMXOXIXQEXKXAXHWHPZQXKXLAMZQX
      IXQXRXSXKXRXHHIZXSXRXAGIXTXPXAXHGHVFVDAXHVGVHVIXAXHWGWHVJXKXLAVKVLRXMEAVM
      VHXNXEAXNXLXKQEMXAWPWGPZXEXKXLEVNXKYAEWPWOVPZXHWPXAWGVQVOYAXAXHFPZXHWPWFP
      ZQZEMXHXCSZYDQZEMZXEEXAWPWFFXPYBVRYEYGEYCYFYDXAXHXPEVEVSVTRYHXCWPWFPZWPXD
      SXEYDYIEXCXAVPZXHXCWPWFWAVOXCWPCYJYBWBWPXDWCTTTRTWDWE $.
  $}

  ${
    $d F x y z w $.
    $( The functional part of ` F ` is a function.  (Contributed by Scott
       Fenton, 16-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    funpartfun $p |- Fun Funpart F $=
      ( vx vy vz vw wfun cv wbr wa weq wal wcel vex brres csn bitri cop anbi12i
      wi df-br cfunpart csingle ccom cvv csingles cxp cin cdm cres wrel simplbi
      cimage relres cima wceq wex ancom funpartlem anbi1i elimasn eleq2 anbi12d
      bitr4i velsn equtr2 syl2anb syl6bi syl5bi exlimiv impl sylanb sylan2 gen2
      ax-gen df-funpart funeqi dffun2 mpbir2an ) AUAZFZAAULUBUCUDUEUFUGUHZUIZUJ
      ZBGZCGZWBHZWDDGZWBHZICDJZSZDKCKZBKZAWAUMWKBWJCDWHWFWDWGAHZWIWHWMWDWALZWDW
      GAWADMZNUKWFAWDOUNZEGZOZUOZEUPZWDWEAHZIZWMWIWFXAWNIZXBWDWEAWACMZNXCWNXAIX
      BXAWNUQWNWTXAEWDAURUSPPWTXAWMWIWSXAWMIZWISEXEWEWPLZWGWPLZIZWSWIXEWDWEQALZ
      WDWGQALZIXHXAXIWMXJWDWEATWDWGATRXFXIXGXJAWDWEBMZXDUTAWDWGXKWOUTRVCWSXHWEW
      RLZWGWRLZIWIWSXFXLXGXMWPWRWEVAWPWRWGVAVBXLCEJDEJWIXMCWQVDDWQVDCDEVEVFVGVH
      VIVJVKVLVMVNVTWBFWCWLIVSWBAVOVPBCDWBVQPVR $.
  $}

  $( The functional part of ` F ` is a subset of ` F ` .  (Contributed by Scott
     Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  funpartss $p |- Funpart F C_ F $=
    ( cfunpart cimage csingle ccom cvv csingles cxp cin cres df-funpart eqsstri
    cdm resss ) ABAACDEFGHIMZJAAKAONL $.

  ${
    $d A x $.  $d F x $.
    $( The function value of the functional part is identical to the original
       functional value.  (Contributed by Scott Fenton, 17-Apr-2014.)  (Revised
       by Mario Carneiro, 19-Apr-2014.) $)
    funpartfv $p |- ( Funpart F ` A ) = ( F ` A ) $=
      ( vx cfunpart cfv cimage csingle ccom cvv csingles cxp cin cdm wcel wn c0
      wceq weu csn pm2.61i cres df-funpart fveq1i fvres nfvres wi cv funpartlem
      wbr cima wex bitr4i cop wb vex elimasng mpan2 df-br syl6bbr eubidv syl5bb
      eusn notbid tz6.12-2 syl6bi fvprc a1d eqtr4d eqtri ) ABDZEABBFGHIJKLMZUAZ
      EZABEZAVJVLBUBUCAVKNZVMVNQAVKBUDVOOZVMPVNAVKBUEAINZVPVNPQZUFVQVPACUGZBUIZ
      CRZOVRVQVOWAVOVSBASUJZNZCRZVQWAVOWBVSSQCUKWDCABUHCWBVBULVQWCVTCVQWCAVSUMB
      NZVTVQVSINWCWEUNCUOBAVSIIUPUQAVSBURUSUTVAVCCABVDVEVQOVRVPABVFVGTVHTVI $.
  $}

  ${
    $( The full functional part of ` F ` is a function over ` _V ` .
       (Contributed by Scott Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    fullfunfnv $p |- FullFun F Fn _V $=
      ( cfullfn cvv wfn cfunpart cdm cdif c0 csn cxp cun wa cin wceq funpartfun
      wfun funfn mpbi wf 0ex fconst ax-mp pm3.2i disjdif fnun df-fullfun fneq1i
      ffn mp2an unvdif eqcomi fneq2i bitri mpbir ) ABZCDZAEZCUQFZGZHIZJZKZURUSK
      ZDZUQURDZVAUSDZLURUSMHNVDVEVFUQPVEAOUQQRUSUTVASVFUSHTUAUSUTVAUHUBUCURCUDU
      RUSUQVAUEUIUPVBCDVDCUOVBAUFUGCVCVBVCCURUJUKULUMUN $.
  $}

  ${
    $d F x $.  $d A x $.
    $( The function value of the full function of ` F ` agrees with ` F ` .
       (Contributed by Scott Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    fullfunfv $p |- ( FullFun F ` A ) = ( F ` A ) $=
      ( vx cvv wcel cfullfn cfv wceq cv fveq2 c0 wfn wa 0ex mp3an12 mpan eqtr4d
      wn pm2.61i fvprc eqeq12d cfunpart cdm cdif csn cxp cun df-fullfun disjdif
      fveq1i cin wfun funpartfun funfn mpbi wf fconst ffn ax-mp fvun1 vex eldif
      mpbiran fvun2 fvconst2 eqtrd sylbir ndmfv funpartfv 3eqtri vtoclg ) ADEZA
      BFZGZABGZHZCIZVMGZVQBGZHVPCADVQAHVRVNVSVOVQAVMJVQABJUAVRVQBUBZDVTUCZUDZKU
      EZUFZUGZGZVQVTGZVSVQVMWEBUHUJVQWAEZWFWGHZWAWBUKKHZWHWIWADUIZVTWALZWDWBLZW
      JWHMWIVTULWLBUMVTUNUOZWBWCWDUPWMWBKNUQWBWCWDURUSZWAWBVTWDVQUTOPWHRZWFKWGW
      PVQWBEZWFKHWQVQDEWPCVAVQDWAVBVCWQWFVQWDGZKWJWQWFWRHZWKWLWMWJWQMWSWNWOWAWB
      VTWDVQVDOPWBKVQNVEVFVGVQVTVHQSVQBVIVJVKVLRVNKVOAVMTABTQS $.
  $}

  ${
    brfullfun.1 $e |- A e. _V $.
    brfullfun.2 $e |- B e. _V $.
    $( A binary relation form condition for the full function.  (Contributed by
       Scott Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    brfullfun $p |- ( A FullFun F B <-> B = ( F ` A ) ) $=
      ( cfullfn cfv wceq wbr eqcom cvv wfn wcel wb fullfunfnv fnbrfvb fullfunfv
      mp2an eqeq2i 3bitr3i ) ACFZGZBHZBUBHABUAIZBACGZHUBBJUAKLAKMUCUDNCODKABUAP
      RUBUEBACQST $.
  $}

  ${
    $d A a b x $.  $d B a b x $.  $d C x $.
    brrestrict.1 $e |- A e. _V $.
    brrestrict.2 $e |- B e. _V $.
    brrestrict.3 $e |- C e. _V $.
    $( Binary relation form of the ` Restrict ` function.  (Contributed by
       Scott Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    brrestrict $p |- ( <. A , B >. Restrict C <-> C = ( A |` B ) ) $=
      ( vx va vb cop ccap c1st ccart crange wbr wceq wa wex w3a bitri c2nd ccom
      ctxp crn cxp cin crestrict cres cv opex brtxp2 3anrot br1steq vex br2ndeq
      brco anbi1i exbii breq1 ceqsexv brrange 3bitri biid 3anbi123i 2exbii rnex
      opeq1 eqeq2d opeq2 ceqsex2v brcart brcap df-restrict breqi dfres3 3bitr4i
      xpex eqeq2i ) ABJZCKLMUANLUBZUCZUBZUCZUBZOZCABAUDZUEZUFZPZVSCUGOCABUHZPWE
      GUIZAWGJZPZWKCKOZQZGRZWLCKOZWIWEVSWKWCOZWNQZGRWPGVSCKWCABUJZFUPWSWOGWRWMW
      NWRWKHUIZIUIZJZPZVSXALOZVSXBWBOZSZIRHRXAAPZXBWGPZXDSZIRHRWMHIVSWKLWBWTUKX
      GXJHIXGXEXFXDSXJXDXEXFULXEXHXFXIXDXDABXADEUMXFVSWKWAOZWKXBMOZQZGRZBWFJZXB
      MOZXIGVSXBMWAWTIUNZUPXNWKXOPZXLQZGRXPXMXSGXKXRXLXKXDVSXAUAOZVSXBVTOZSZIRH
      RXABPZXBWFPZXDSZIRHRXRHIVSWKUAVTWTUKYBYEHIYBXTYAXDSYEXDXTYAULXTYCYAYDXDXD
      ABXADEUOYAVSWKLOZWKXBNOZQZGRZAXBNOZYDGVSXBNLWTXQUPYIWKAPZYGQZGRYJYHYLGYFY
      KYGABWKDEUMUQURYGYJGADWKAXBNUSUTTAXBDXQVAVBXDVCZVDTVEXDWKBXBJZPXRHIBWFEAD
      VFZYCXCYNWKXABXBVGVHYDYNXOWKXBWFBVIVHVJVBUQURXLXPGXOBWFUJWKXOXBMUSUTTBWFX
      BEYOXQVKVBYMVDTVEXDWKAXBJZPWMHIAWGDBWFEYOVQZXHXCYPWKXAAXBVGVHXIYPWLWKXBWG
      AVIVHVJVBUQURTWNWQGWLAWGUJWKWLCKUSUTAWGCDYQFVLVBVSCUGWDVMVNWJWHCABVOVRVP
      $.
  $}

  ${
    $d F f x y $.
    $( A quantifier-free definition of ` recs ` .  (Contributed by Scott
       Fenton, 17-Jul-2020.) $)
    dfrecs2 $p |- recs ( F ) = U. ( ( Funs i^i ( `' Domain " On ) ) \
         dom ( ( `' _E o. Domain ) \
         Fix ( `' Apply o. ( FullFun F o. Restrict ) ) ) ) $=
      ( vf vx vy cv wceq wa con0 wrex cfuns cdomain wcel wn wex wbr bitri exbii
      anbi1i ceqsexv 3bitri crecs wfn cfv cres wral cab cuni ccnv cima cin ccom
      cep capply cfullfn crestrict cfix cdif cdm dfrecs3 wfun elin elfuns brcnv
      vex brdomain rexbii elima risset 3bitr4i eldm brdif brco dmex breq1 epelc
      anbi12i df-br opex elfix ancom brapply fvex breq2 brrestrict resex notbii
      brfullfun df-rex rexnal 3bitr2ri con1bii anass eleq1 raleq anbi12d anbi2d
      cop df-fn eqcom anbi2i an12 3bitr3ri 3bitr2i eldif abbi2i unieqi eqtr4i )
      AUABEZCEZUBZDEZXHUCZXHXKUDZAUCFZDXIUEZGZCHIZBUFZUGJKUHZHUIZUJZULUHZKUKZUM
      UHZAUNZUOUKZUKZUPZUQZURZUQZUGCDBAUSYKXRXQBYKXHYALZXHYJLZMZGZXIHLZXPGZCNZX
      HYKLXQYOXHUTZXHURZHLZXNDYTUEZGZGZXIYTFZYSYPXOGZGZGZCNYRYOYSUUAGZUUBGUUDYL
      UUIYNUUBYLXHJLZXHXTLZGUUIXHJXTVAUUJYSUUKUUAXHBVDZVBXIXHXSOZCHIUUECHIUUKUU
      AUUMUUECHUUMXHXIKOZUUEXIXHKCVDZUULVCXHXIUULUUOVEZPVFCXHXSHUULVGCYTHVHVIVP
      PUUBYMYMXKYTLZXNMZGZDNZUURDYTIUUBMYMXHXKYIOZDNUUTDXHYIUULVJUVAUUSDUVAXHXK
      YCOZXHXKYHOZMZGUUSXHXKYCYHVKUVBUUQUVDUURUVBUUNXIXKYBOZGZCNZYTXKYBOZUUQCXH
      XKYBKUULDVDZVLUVGUUEUVEGZCNUVHUVFUVJCUUNUUEUVEUUPRQUVEUVHCYTXHUULVMZXIYTX
      KYBVNSPUVHXKYTULOUUQYTXKULUVKUVIVCXKYTUVKVOPTUVCXNUVCXHXKWQZYHLUVLUVLYGOZ
      XNXHXKYHVQUVLYGXHXKVRZVSUVMUVLXIYFOZXIUVLYDOZGZCNZUVLXLYFOZXNCUVLUVLYDYFU
      VNUVNVLUVRXIXLFZUVOGZCNUVSUVQUWACUVQUVPUVOGUWAUVOUVPVTUVPUVTUVOUVPUVLXIUM
      OUVTXIUVLUMUUOUVNVCXHXKXIUULUVIUUOWAPRPQUVOUVSCXLXKXHWBZXIXLUVLYFWCSPUVSU
      VLXIUOOZXIXLYEOZGZCNZXMXLYEOZXNCUVLXLYEUOUVNUWBVLUWFXIXMFZUWDGZCNUWGUWEUW
      ICUWCUWHUWDXHXKXIUULUVIUUOWDRQUWDUWGCXMXHXKUULWEZXIXMXLYEVNSPXMXLAUWJUWBW
      GTTTWFVPPQPUURDYTWHXNDYTWIWJWKVPYSUUAUUBWLPUUGUUDCYTUVKUUEUUFUUCYSUUEYPUU
      AXOUUBXIYTHWMXNDXIYTWNWOWPSUUHYQCXJUUFGUUEYSGZUUFGYQUUHXJUWKUUFXJYSYTXIFZ
      GYSUUEGUWKXHXIWRUWLUUEYSYTXIWSWTYSUUEVTTRXJYPXOXAUUEYSUUFWLXBQXCXHYAYJXDX
      PCHWHVIXEXFXG $.
  $}

  ${
    $d A a b f x y z $.  $d F a b f x y z $.
    $( A quantifier-free definition of the recursive definition generator.
       (Contributed by Scott Fenton, 17-Apr-2014.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    dfrdg4 $p |- rec ( F , A ) = U.
       ( ( Funs i^i ( `' Domain " On ) ) \
         dom ( ( `' _E o. Domain ) \
         Fix ( `' Apply o.
               ( ( ( _V X. { (/) } ) X. { U. { A } } ) u.
                 ( ( ( Bigcup o. Img ) |` ( _V X. Limits ) ) u.
                   ( ( FullFun F o. ( Apply o. pprod ( _I , Bigcup ) ) ) |`
                     ( _V X. ran Succ ) ) ) ) ) ) ) $=
      ( vf vx vy vz va vb c0 wceq cvv wcel wa con0 capply wex 3bitri bitri wbr
      wn crdg cv wfn cfv cif wlim cima cuni wral wrex cab cfuns cdomain cin cep
      ccnv ccom csn cxp cbigcup cimg climits cres cfullfn cid cpprod csuccf crn
      cun cfix cdif cdm dfrdg3 wfun an12 df-fn ancom eqcom anass exbii vex dmex
      anbi1i eleq1 raleq anbi12d ceqsexv df-rex brcnv anbi12i wi brco breq1 w3a
      wb cop brun opelxp mpbiran velsn brres opex brbigcup ax-mp unieq anbi12ci
      wo weq eqeq2d brapply fvex orbi12i limeq mtbiri intnanrd wne mpbiri orel2
      neneqd syl iftrue biimprd adantld biimpd anc2li orc syl6 impbid rexlimivw
      orel1 fveq2d ifbieq2d 3syld con2i adantl syl5bb syl6bb exbidv syl6bbr
      olcd anbi2d eldif elin elfuns elima brdomain wal brdif epelc 3adant1 csuc
      onelon brxp imaexg eqeq1d ellimits brpprod3a 3anrot ideq equcom 3anbi123i
      brimg biid 2exbii vuniex opeq1 opeq2 ceqsex2v brfullfun fveq2 brsuccf w3o
      elrn onzsl nlim0 nsuceq0 neeq2 necomd nexdv sylanbrc unisnif syl6eqr syld
      ioran neeq1 nlimsucg neii iffalsei iffalse mp2b eqtri eqeq1 3eqtr4a rexex
      olc syl6an exlimiv iffalsed eqtrd 3jaoi sylbi df-br eqvinc 3bitr4g notbid
      a1i elfix 3expia pm5.32d annim exnal syl6rbb eldm con1bid df-ral 3bitr4ri
      pm5.32i abbi2i unieqi eqtr4i ) BAUACUBZDUBZUCZEUBZUYAUDZUYDIJZAKLAIUEZUYD
[encoded data, 4560 characters]
      UXKUXLEUYAVVFVWEUXMYSUXNUYPEVVMUXOYSUXQVVLVVNVVOVSRQUXPUXRUXSUXT $.
  $}

  ${
    $d A x y $.
    $( Quantifier-free definition of class intersection.  (Contributed by Scott
       Fenton, 13-Apr-2018.) $)
    dfint3 $p |- |^| A = ( _V \ ( `' ( _V \ _E ) " A ) ) $=
      ( vx vy cint wel wral cab cvv cep cdif ccnv cima dfint2 cv wbr wn mpbiran
      wcel vex bitr2i wrex ralnex brcnv brdif con1bii epel ralbii eldif xchbinx
      brv elima 3bitr4ri abbi2i eqtr4i ) ADBCEZCAFZBGHHIJZKZALZJZBCAMUPBUTCNZBN
      ZUROZPZCAFVCCAUAZPUPVBUTRZVCCAUBUOVDCAVDVBVAIOZUOVGVCVCVBVAUQOZVGPZVAVBUQ
      CSBSZUCVHVBVAHOVIVBVAUJVBVAHIUDQTUEBCUFTUGVFVBUSRZVEVFVBHRVKPVJVBHUSUHQCV
      BURAVJUKUIULUMUN $.
  $}

  ${
    $d x y z $.
    $( The Image functor applied to the converse of the subset relationship
       yields a subset of the subset relationship.  (Contributed by Scott
       Fenton, 14-Apr-2018.) $)
    imagesset $p |- Image `' SSet C_ SSet $=
      ( vx vy vz csset ccnv cimage wss cv cop wcel wi wal wrex sseq2 wbr brsset
      vex bitri df-br bitr3i cima wceq wel ssid rspcev mpan2 elima brcnv rexbii
      sylibr ssriv mpbiri brimage 3imtr3i gen2 wfun wrel wb funimage ssrel mp2b
      funrel mpbir ) DEZFZDGZAHZBHZIZVEJZVIDJZKZBLALZVLABVHVDVGUAZUBZVGVHGZVJVK
      VOVPVGVNGBVGVNBAUCZVHCHZGZCVGMZVHVNJZVQVHVHGZVTVHUDVSWBCVHVGVRVHVHNUEUFWA
      VRVHVDOZCVGMVTCVHVDVGBQZUGWCVSCVGWCVHVRDOVSVRVHDCQZWDUHVHVRWEPRUIRUJUKVHV
      NVGNULVOVGVHVEOVJVGVHVDAQWDUMVGVHVESTVPVGVHDOVKVGVHWDPVGVHDSTUNUOVEUPVEUQ
      VFVMURVDUSVEVBABVEDUTVAVC $.
  $}

  ${
    $d A x $.  $d R x $.  $d S x $.
    brub.1 $e |- S e. _V $.
    brub.2 $e |- A e. _V $.
    $( Binary relation form of the upper bound functor.  (Contributed by Scott
       Fenton, 3-May-2018.) $)
    brub $p |- ( S UB R A <-> A. x e. S x R A ) $=
      ( cvv cxp cdif cep ccnv ccom wbr cv wrex wn cub wcel brdif mpbiran rexbii
      wral brxp mpbir2an coepr xchbinx df-ub breqi rexnal bitri con2bii 3bitr4i
      brv ) DBGGHZGCIZJKLZIZMZANZBUOMZADOZPDBCQZMUSBCMZADUBZURDBUPMZVAURDBUNMZV
      EPVFDGRBGREFDBGGUCUDDBUNUPSTADBUOEFUEUFDBVBUQCUGUHVAVDVAVCPZADOVDPUTVGADU
      TUSBGMVGUSBUMUSBGCSTUAVCADUIUJUKUL $.

    $( Binary relation form of the lower bound functor.  (Contributed by Scott
       Fenton, 3-May-2018.) $)
    brlb $p |- ( S LB R A <-> A. x e. S A R x ) $=
      ( clb wbr ccnv cub cv wral df-lb breqi brub vex brcnv ralbii 3bitri ) DBC
      GZHDBCIZJZHAKZBUAHZADLBUCCHZADLDBTUBCMNABUADEFOUDUEADUCBCAPFQRS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Alternate ordered pairs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c << >> XX. $.
  $( Declare the syntax for an alternate ordered pair. $)
  caltop $a class << A , B >> $.
  $( Declare the syntax for an alternate Cartesian product. $)
  caltxp $a class ( A XX. B ) $.

  $( An alternative definition of ordered pairs.  This definition removes a
     hypothesis from its defining theorem (see ~ altopth ), making it more
     convenient in some circumstances.  (Contributed by Scott Fenton,
     22-Mar-2012.) $)
  df-altop $a |- << A , B >> = { { A } , { A , { B } } } $.

  ${
    $d A x y z $.  $d B x y z $.
    $( Define Cartesian products of alternative ordered pairs.  (Contributed by
       Scott Fenton, 23-Mar-2012.) $)
    df-altxp $a |- ( A XX. B ) = { z | E. x e. A E. y e. B z = << x , y >> } $.
  $}

  $( Alternative ordered pairs always exist.  (Contributed by Scott Fenton,
     22-Mar-2012.) $)
  altopex $p |- << A , B >> e. _V $=
    ( caltop csn cpr cvv df-altop prex eqeltri ) ABCADZABDEZEFABGJKHI $.

  $( Two alternate ordered pairs are equal iff the singletons of their
     respective elements are equal.  Note that this holds regardless of sethood
     of any of the elements.  (Contributed by Scott Fenton, 16-Apr-2012.) $)
  altopthsn $p |- ( << A , B >> = << C , D >> <->
                    ( { A } = { C } /\ { B } = { D } ) ) $=
    ( caltop wceq csn cpr wa df-altop eqeq12i snex prex wss snsspr1 sseq2 df-pr
    cun preq2d preqr2 preq12b simpl mpbii adantl mpbiri adantr eqssd jaoi sylbi
    wo uneq1 3eqtr4g preq1 eqtrd eqeq1d biimpd syl syl6com jcai sylan9eq impbii
    preq2 bitri ) ABEZCDEZFAGZABGZHZHZCGZCDGZHZHZFZVFVJFZVGVKFZIZVDVIVEVMABJCDJ
    KVNVQVNVOVPVNVOVHVLFZIZVFVLFZVHVJFZIZUJVOVFVHVJVLALAVGMCLCVKMZUAVSVOWBVOVRU
    BWBVFVJWAVFVJNZVTWAVFVHNWDAVGOVHVJVFPUCUDVTVJVFNZWAVTWEVJVLNCVKOVFVLVJPUEUF
    UGUHUIVOVNVJCVGHZHZVMFZVPVOVNWHVOVIWGVMVOVIVFWFHWGVOVHWFVFVOVFVGGZRVJWIRVHW
    FVFVJWIUKAVGQCVGQULSVFVJWFUMUNZUOUPWHWFVLFVPWFVLVJCVGMWCTVGVKCBLDLTUQURUSVO
    VPVIWGVMWJVPWFVLVJVGVKCVBSUTVAVC $.

  $( Equality for alternate ordered pairs.  (Contributed by Scott Fenton,
     22-Mar-2012.) $)
  altopeq12 $p |- ( ( A = B /\ C = D ) -> << A , C >> = << B , D >> ) $=
    ( wceq wa csn caltop sneq anim12i altopthsn sylibr ) ABEZCDEZFAGBGEZCGDGEZF
    ACHBDHEMONPABICDIJACBDKL $.

  $( Equality for alternate ordered pairs.  (Contributed by Scott Fenton,
     22-Mar-2012.) $)
  altopeq1 $p |- ( A = B -> << A , C >> = << B , C >> ) $=
    ( wceq caltop eqid altopeq12 mpan2 ) ABDCCDACEBCEDCFABCCGH $.

  $( Equality for alternate ordered pairs.  (Contributed by Scott Fenton,
     22-Mar-2012.) $)
  altopeq2 $p |- ( A = B -> << C , A >> = << C , B >> ) $=
    ( wceq caltop eqid altopeq12 mpan ) CCDABDCAECBEDCFCCABGH $.

  $( Equality of the first members of equal alternate ordered pairs, which
     holds regardless of the second members' sethood.  (Contributed by Scott
     Fenton, 22-Mar-2012.) $)
  altopth1 $p |- ( A e. V -> ( << A , B >> = << C , D >> -> A = C ) ) $=
    ( caltop wceq csn wa wcel altopthsn sneqrg adantrd syl5bi ) ABFCDFGAHCHGZBH
    DHGZIAEJZACGZABCDKQORPACELMN $.

  $( Equality of the second members of equal alternate ordered pairs, which
     holds regardless of the first members' sethood.  (Contributed by Scott
     Fenton, 22-Mar-2012.) $)
  altopth2 $p |- ( B e. V -> ( << A , B >> = << C , D >> -> B = D ) ) $=
    ( caltop wceq csn wa wcel altopthsn sneqrg adantld syl5bi ) ABFCDFGAHCHGZBH
    DHGZIBEJZBDGZABCDKQPROBDELMN $.

  $( Alternate ordered pair theorem.  (Contributed by Scott Fenton,
     22-Mar-2012.) $)
  altopthg $p |- ( ( A e. V /\ B e. W ) ->
                   ( << A , B >> = << C , D >> <-> ( A = C /\ B = D ) ) ) $=
    ( caltop wceq csn wa wcel altopthsn sneqbg bi2anan9 syl5bb ) ABGCDGHAICIHZB
    IDIHZJAEKZBFKZJACHZBDHZJABCDLRPTSQUAACEMBDFMNO $.

  $( Alternate ordered pair theorem.  (Contributed by Scott Fenton,
     14-Apr-2012.) $)
  altopthbg $p |- ( ( A e. V /\ D e. W ) ->
                   ( << A , B >> = << C , D >> <-> ( A = C /\ B = D ) ) ) $=
    ( caltop wceq csn wa wcel altopthsn sneqbg eqcom 3bitr4g bi2anan9 syl5bb )
    ABGCDGHAICIHZBIZDIZHZJAEKZDFKZJACHZBDHZJABCDLUBRUDUCUAUEACEMUCTSHDBHUAUEDBF
    MSTNBDNOPQ $.

  ${
    altopth.1 $e |- A e. _V $.
    altopth.2 $e |- B e. _V $.
    $( The alternate ordered pair theorem.  If two alternate ordered pairs are
       equal, their first elements are equal and their second elements are
       equal.  Note that ` C ` and ` D ` are not required to be a set due to a
       peculiarity of our specific ordered pair definition, as opposed to the
       regular ordered pairs used here, which (as in ~ opth ), requires ` D `
       to be a set.  (Contributed by Scott Fenton, 23-Mar-2012.) $)
    altopth $p |- ( << A , B >> = << C , D >> <-> ( A = C /\ B = D ) ) $=
      ( cvv wcel caltop wceq wa wb altopthg mp2an ) AGHBGHABICDIJACJBDJKLEFABCD
      GGMN $.
  $}

  ${
    altopthb.1 $e |- A e. _V $.
    altopthb.2 $e |- D e. _V $.
    $( Alternate ordered pair theorem with different sethood requirements.  See
       ~ altopth for more comments.  (Contributed by Scott Fenton,
       14-Apr-2012.) $)
    altopthb $p |- ( << A , B >> = << C , D >> <-> ( A = C /\ B = D ) ) $=
      ( cvv wcel caltop wceq wa wb altopthbg mp2an ) AGHDGHABICDIJACJBDJKLEFABC
      DGGMN $.
  $}

  ${
    altopthc.1 $e |- B e. _V $.
    altopthc.2 $e |- C e. _V $.
    $( Alternate ordered pair theorem with different sethood requirements.  See
       ~ altopth for more comments.  (Contributed by Scott Fenton,
       14-Apr-2012.) $)
    altopthc $p |- ( << A , B >> = << C , D >> <-> ( A = C /\ B = D ) ) $=
      ( caltop wceq wa eqcom altopthb anbi12i 3bitri ) ABGZCDGZHONHCAHZDBHZIACH
      ZBDHZINOJCDABFEKPRQSCAJDBJLM $.
  $}

  ${
    altopthd.1 $e |- C e. _V $.
    altopthd.2 $e |- D e. _V $.
    $( Alternate ordered pair theorem with different sethood requirements.  See
       ~ altopth for more comments.  (Contributed by Scott Fenton,
       14-Apr-2012.) $)
    altopthd $p |- ( << A , B >> = << C , D >> <-> ( A = C /\ B = D ) ) $=
      ( caltop wceq wa eqcom altopth anbi12i 3bitri ) ABGZCDGZHONHCAHZDBHZIACHZ
      BDHZINOJCDABEFKPRQSCAJDBJLM $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( Equality for alternate Cartesian products.  (Contributed by Scott
       Fenton, 24-Mar-2012.) $)
    altxpeq1 $p |- ( A = B -> ( A XX. C ) = ( B XX. C ) ) $=
      ( vz vx vy wceq cv caltop wrex cab caltxp rexeq abbidv df-altxp 3eqtr4g )
      ABGZDHEHFHIGFCJZEAJZDKREBJZDKACLBCLQSTDREABMNEFDACOEFDBCOP $.

    $( Equality for alternate Cartesian products.  (Contributed by Scott
       Fenton, 24-Mar-2012.) $)
    altxpeq2 $p |- ( A = B -> ( C XX. A ) = ( C XX. B ) ) $=
      ( vz vx vy wceq cv caltop wrex cab caltxp rexbidv abbidv df-altxp 3eqtr4g
      rexeq ) ABGZDHEHFHIGZFAJZECJZDKSFBJZECJZDKCALCBLRUAUCDRTUBECSFABQMNEFDCAO
      EFDCBOP $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d X x y z $.
    $( Membership in alternate Cartesian products.  (Contributed by Scott
       Fenton, 23-Mar-2012.) $)
    elaltxp $p |- ( X e. ( A XX. B ) <->
                     E. x e. A E. y e. B X = << x , y >> ) $=
      ( vz caltxp wcel cvv cv caltop wceq wrex elex wi altopex eleq1 mpbiri a1i
      wa rexlimivv eqeq1 2rexbidv df-altxp elab2g pm5.21nii ) ECDGZHEIHZEAJZBJZ
      KZLZBDMACMZEUGNULUHABCDULUHOUICHUJDHTULUHUKIHUIUJPEUKIQRSUAFJZUKLZBDMACMU
      MFEUGIUNELUOULABCDUNEUKUBUCABFCDUDUEUF $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d X x y $.  $d Y x y $.
    $( Alternate ordered pair membership in a Cartesian product.  Note that,
       unlike ~ opelxp , there is no sethood requirement here.  (Contributed by
       Scott Fenton, 22-Mar-2012.) $)
    altopelaltxp $p |- ( << X , Y >> e. ( A XX. B ) <->
                          ( X e. A /\ Y e. B ) ) $=
      ( vx vy caltop caltxp wcel cv wceq wrex wa elaltxp reeanv eqcom vex bitri
      altopth risset 2rexbii anbi12i 3bitr4i ) CDGZABHIUDEJZFJZGZKZFBLEALZCAIZD
      BIZMZEFABUDNUECKZUFDKZMZFBLEALUMEALZUNFBLZMUIULUMUNEFABOUHUOEFABUHUGUDKUO
      UDUGPUEUFCDEQFQSRUAUJUPUKUQECATFDBTUBUCR $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    $( An inclusion rule for alternate Cartesian products.  (Contributed by
       Scott Fenton, 24-Mar-2012.) $)
    altxpsspw $p |- ( A XX. B ) C_ ~P ~P ( A u. ~P B ) $=
      ( vz vx vy caltxp cpw cun cv wcel wrex wa csn cpr wss snssi syl snex elpw
      prex caltop wceq elaltxp df-altop ssun3 adantr elun1 elun2 sylbir anim12i
      wi prss sylib prsspw bitri sylanbrc syl5eqel eleq1a rexlimivv sylbi ssriv
      vex ) CABFZABGZHZGZGZCIZVCJVHDIZEIZUAZUBZEBKDAKVHVGJZDEABVHUCVLVMDEABVIAJ
      ZVJBJZLZVKVGJVLVMUKVPVKVIMZVIVJMZNZNZVGVIVJUDVPVQVEOZVSVEOZVTVGJZVNWAVOVN
      VQAOWAVIAPVQAVDUEQUFVPVIVEJZVRVEJZLWBVNWDVOWEVIAVDUGVOVRBOZWEVJBPWFVRVDJW
      EVRBVJRZSVRVDAUHUIQUJVIVRVEDVBWGULUMWCVTVFOWAWBLVTVFVQVSTSVQVSVEVIRVIVRTU
      NUOUPUQVKVGVHURQUSUTVA $.
  $}

  $( The alternate Cartesian product of two sets is a set.  (Contributed by
     Scott Fenton, 24-Mar-2012.) $)
  altxpexg $p |- ( ( A e. V /\ B e. W ) -> ( A XX. B ) e. _V ) $=
    ( wcel wa caltxp cpw cun wss cvv altxpsspw pwexg unexg sylan2 ssexg sylancr
    3syl ) ACEZBDEZFZABGZABHZIZHZHZJUFKEZUBKEABLUAUDKEZUEKEUGTSUCKEUHBDMAUCCKNO
    UDKMUEKMRUBUFKPQ $.

  $( Compute the rank of an alternate ordered pair.  (Contributed by Scott
     Fenton, 18-Dec-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  rankaltopb $p |- ( ( A e. U. ( R1 " On ) /\ B e. U. ( R1 " On ) ) -> ( rank
    ` << A , B >> ) = suc suc ( ( rank ` A ) u. suc ( rank ` B ) ) ) $=
    ( cr1 con0 cima wcel wa crnk cfv csn cun csuc wceq snwf cpr rankprb syl2anc
    fveq2i suceq eqtrd cuni caltop df-altop adantr prwf syl5eq wss snsspr1 mpbi
    ssequn1 rankunb 3eqtr3a syl sylan2 ranksnb uneq2d 3syl adantl ) ACDEUAZFZBU
    SFZGABUBZHIZAHIZBJZHIZKZLZLZVDBHILZKZLZLZVAUTVEUSFZVCVIMBNUTVNGZVCAJZHIAVEO
    ZHIZKZLZVIVOVCVPVQOZHIZVTVBWAHABUCRVOVPUSFZVQUSFZWBVTMUTWCVNANUDZAVEUEZVPVQ
    PQUFVOVSVHMVTVIMVOVPVQKZHIZVRVSVHWGVQHVPVQUGWGVQMAVEUHVPVQUJUIRVOWCWDWHVSMW
    EWFVPVQUKQAVEPULVSVHSUMTUNVAVIVMMZUTVAVGVKMVHVLMWIVAVFVJVDBUOUPVGVKSVHVLSUQ
    URT $.

  ${
    nfaltop.1 $e |- F/_ x A $.
    nfaltop.2 $e |- F/_ x B $.
    $( Bound-variable hypothesis builder for alternate ordered pairs.
       (Contributed by Scott Fenton, 25-Sep-2015.) $)
    nfaltop $p |- F/_ x << A , B >> $=
      ( caltop csn cpr df-altop nfsn nfpr nfcxfr ) ABCFBGZBCGZHZHBCIAMOABDJABND
      ACEJKKL $.
  $}

  ${
    $d x A $.
    $( Distribution of class substitution over alternate ordered pairs.
       (Contributed by Scott Fenton, 25-Sep-2015.) $)
    sbcaltop $p |- ( A e. _V -> [_ A / x ]_ << C , D >> =
                                << [_ A / x ]_ C , [_ A / x ]_ D >> ) $=
      ( caltop csb cvv wnfc wcel nfcsb1v nfaltop wceq csbeq1a altopeq1 altopeq2
      a1i cv syl eqtrd csbiegf ) ABCDEZABCFZABDFZEZGAUDHBGIAUBUCABCJABDJKPAQBLZ
      UAUBDEZUDUECUBLUAUFLABCMCUBDNRUEDUCLUFUDLABDMDUCUBORST $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Geometry in the Euclidean space
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Congruence properties
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c OuterFiveSeg $.

  $( Declare the syntax for the outer five segment configuration. $)
  cofs $a class OuterFiveSeg $.

  ${
    $d a b c d x y z w p q n $.
    $( The outer five segment configuration is an abbreviation for the
       conditions of the Five Segment Axiom ( ~ ax5seg ).  See ~ brofs and
       ~ 5segofs for how it is used.  Definition 2.10 of [Schwabhauser] p. 28.
       (Contributed by Scott Fenton, 21-Sep-2013.) $)
    df-ofs $a |- OuterFiveSeg =
        { <. p , q >. |
           E. n e. NN E. a e. ( EE ` n ) E. b e. ( EE ` n ) E. c e. ( EE ` n )
           E. d e. ( EE ` n ) E. x e. ( EE ` n ) E. y e. ( EE ` n )
           E. z e. ( EE ` n ) E. w e. ( EE ` n ) (
           p = <. <. a , b >. , <. c , d >. >. /\
           q = <. <. x , y >. , <. z , w >. >. /\
           ( ( b Btwn <. a , c >. /\ y Btwn <. x , z >. ) /\
             ( <. a , b >. Cgr <. x , y >. /\
               <. b , c >. Cgr <. y , z >. ) /\
             ( <. a , d >. Cgr <. x , w >. /\
               <. b , d >. Cgr <. y , w >. ) ) ) } $.
  $}

  ${
    cgrrflx2d.1 $e |- ( ph -> N e. NN ) $.
    cgrrflx2d.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
    cgrrflx2d.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
    $( Deduction form of ~ axcgrrflx .  (Contributed by Scott Fenton,
       13-Oct-2013.) $)
    cgrrflx2d $p |- ( ph -> <. A , B >. Cgr <. B , A >. ) $=
      ( cn wcel cee cfv cop ccgr wbr axcgrrflx syl3anc ) ADHIBDJKZICQIBCLCBLMNE
      FGBCDOP $.
  $}

  ${
    cgrtr4d.1 $e |- ( ph -> N e. NN ) $.
    cgrtr4d.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
    cgrtr4d.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
    cgrtr4d.4 $e |- ( ph -> C e. ( EE ` N ) ) $.
    cgrtr4d.5 $e |- ( ph -> D e. ( EE ` N ) ) $.
    cgrtr4d.6 $e |- ( ph -> E e. ( EE ` N ) ) $.
    cgrtr4d.7 $e |- ( ph -> F e. ( EE ` N ) ) $.
    cgrtr4d.8 $e |- ( ph -> <. A , B >. Cgr <. C , D >. ) $.
    cgrtr4d.9 $e |- ( ph -> <. A , B >. Cgr <. E , F >. ) $.
    $( Deduction form of ~ axcgrtr .  (Contributed by Scott Fenton,
       13-Oct-2013.) $)
    cgrtr4d $p |- ( ph -> <. C , D >. Cgr <. E , F >. ) $=
      ( cop ccgr wcel wbr cn cee cfv wa wi axcgrtr syl133anc mp2and ) ABCRZDERZ
      SUAZUJFGRZSUAZUKUMSUAZPQAHUBTBHUCUDZTCUPTDUPTEUPTFUPTGUPTULUNUEUOUFIJKLMN
      OBCDEFGHUGUHUI $.
  $}

  ${
    cgrtr4and.1 $e |- ( ph -> N e. NN ) $.
    cgrtr4and.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
    cgrtr4and.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
    cgrtr4and.4 $e |- ( ph -> C e. ( EE ` N ) ) $.
    cgrtr4and.5 $e |- ( ph -> D e. ( EE ` N ) ) $.
    cgrtr4and.6 $e |- ( ph -> E e. ( EE ` N ) ) $.
    cgrtr4and.7 $e |- ( ph -> F e. ( EE ` N ) ) $.
    cgrtr4and.8 $e |- ( ( ph /\ ps ) -> <. A , B >. Cgr <. C , D >. ) $.
    cgrtr4and.9 $e |- ( ( ph /\ ps ) -> <. A , B >. Cgr <. E , F >. ) $.
    $( Deduction form of ~ axcgrtr .  (Contributed by Scott Fenton,
       13-Oct-2013.) $)
    cgrtr4and $p |- ( ( ph /\ ps ) -> <. C , D >. Cgr <. E , F >. ) $=
      ( wcel adantr wa cn cee cfv cgrtr4d ) ABUACDEFGHIAIUBSBJTACIUCUDZSBKTADUF
      SBLTAEUFSBMTAFUFSBNTAGUFSBOTAHUFSBPTQRUE $.
  $}

  $( Reflexivity law for congruence.  Theorem 2.1 of [Schwabhauser] p. 27.
     (Contributed by Scott Fenton, 12-Jun-2013.) $)
  cgrrflx $p |- ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
    <. A , B >. Cgr <. A , B >. ) $=
    ( wcel cee cfv w3a simp1 simp3 simp2 cop ccgr wbr axcgrrflx 3com23 cgrtr4d
    cn ) CQDZACEFZDZBSDZGBAABABCRTUAHRTUAIZRTUAJZUCUBUCUBRUATBAKABKLMBACNOZUDP
    $.

  ${
    cgrrflxd.1 $e |- ( ph -> N e. NN ) $.
    cgrrflxd.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
    cgrrflxd.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
    $( Deduction form of ~ cgrrflx .  (Contributed by Scott Fenton,
       13-Oct-2013.) $)
    cgrrflxd $p |- ( ph -> <. A , B >. Cgr <. A , B >. ) $=
      ( cn wcel cee cfv cop ccgr wbr cgrrflx syl3anc ) ADHIBDJKZICQIBCLZRMNEFGB
      CDOP $.
  $}

  $( Congruence commutes on the two sides.  Implication version.  Theorem 2.2
     of [Schwabhauser] p. 27.  (Contributed by Scott Fenton, 12-Jun-2013.) $)
  cgrcomim $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
    ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
    ( <. A , B >. Cgr <. C , D >. ->
      <. C , D >. Cgr <. A , B >. ) ) $=
    ( cn wcel cee cfv w3a cop ccgr wbr simp1 simp2l simp2r simp3l simp3r simpr
    wa simpl1 simpl2l simpl2r cgrrflxd cgrtr4and ex ) EFGZAEHIZGZBUHGZTZCUHGZDU
    HGZTZJZABKZCDKZLMZUQUPLMUOURABCDABEUGUKUNNUGUIUJUNOZUGUIUJUNPZUGUKULUMQUGUK
    ULUMRUSUTUOURSUOURTABEUGUKUNURUAUIUJUGUNURUBUIUJUGUNURUCUDUEUF $.

  $( Congruence commutes between the two sides.  (Contributed by Scott Fenton,
     12-Jun-2013.) $)
  cgrcom $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
    ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
    ( <. A , B >. Cgr <. C , D >. <->
      <. C , D >. Cgr <. A , B >. ) ) $=
    ( cn wcel cee cfv wa w3a cop ccgr wbr cgrcomim wi 3com23 impbid ) EFGZAEHIZ
    GBTGJZCTGDTGJZKABLZCDLZMNZUDUCMNZABCDEOSUBUAUFUEPCDABEOQR $.

  ${
    cgrcomand.1 $e |- ( ph -> N e. NN ) $.
    cgrcomand.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
    cgrcomand.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
    cgrcomand.4 $e |- ( ph -> C e. ( EE ` N ) ) $.
    cgrcomand.5 $e |- ( ph -> D e. ( EE ` N ) ) $.
    cgrcomand.6 $e |- ( ( ph /\ ps ) -> <. A , B >. Cgr <. C , D >. ) $.
    $( Deduction form of ~ cgrcom .  (Contributed by Scott Fenton,
       13-Oct-2013.) $)
    cgrcomand $p |- ( ( ph /\ ps ) -> <. C , D >. Cgr <. A , B >. ) $=
      ( wa cop ccgr wbr wb cn wcel cee cfv cgrcom syl122anc adantr mpbid ) ABNC
      DOZEFOZPQZUHUGPQZMAUIUJRZBAGSTCGUAUBZTDULTEULTFULTUKHIJKLCDEFGUCUDUEUF $.
  $}

  $( Transitivity law for congruence.  Theorem 2.3 of [Schwabhauser] p. 27.
     (Contributed by Scott Fenton, 24-Sep-2013.) $)
  cgrtr $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
       ( ( <. A , B >. Cgr <. C , D >. /\
           <. C , D >. Cgr <. E , F >. ) ->
         <. A , B >. Cgr <. E , F >. ) ) $=
    ( cn wcel cee cfv w3a cop ccgr wbr wa simp1 simp23 simp31 simp21 cgrcomand
    simp22 simp32 simp33 simprl simprr cgrtr4and ex ) GHIZAGJKZIZBUJIZCUJIZLZDU
    JIZEUJIZFUJIZLZLZABMZCDMZNOZVAEFMZNOZPZUTVCNOUSVECDABEFGUIUNURQZUIUKULUMURR
    ZUIUNUOUPUQSZUIUKULUMURTZUIUKULUMURUBZUIUNUOUPUQUCUIUNUOUPUQUDUSVEABCDGVFVI
    VJVGVHUSVBVDUEUAUSVBVDUFUGUH $.

  ${
    cgrtrand.1 $e |- ( ph -> N e. NN ) $.
    cgrtrand.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
    cgrtrand.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
    cgrtrand.4 $e |- ( ph -> C e. ( EE ` N ) ) $.
    cgrtrand.5 $e |- ( ph -> D e. ( EE ` N ) ) $.
    cgrtrand.6 $e |- ( ph -> E e. ( EE ` N ) ) $.
    cgrtrand.7 $e |- ( ph -> F e. ( EE ` N ) ) $.
    cgrtrand.8 $e |- ( ( ph /\ ps ) -> <. A , B >. Cgr <. C , D >. ) $.
    cgrtrand.9 $e |- ( ( ph /\ ps ) -> <. C , D >. Cgr <. E , F >. ) $.
    $( Deduction form of ~ cgrtr .  (Contributed by Scott Fenton,
       13-Oct-2013.) $)
    cgrtrand $p |- ( ( ph /\ ps ) -> <. A , B >. Cgr <. E , F >. ) $=
      ( cop wcel wa ccgr wbr wi cn cee cfv cgrtr syl133anc adantr mp2and ) ABUA
      CDSZEFSZUBUCZUMGHSZUBUCZULUOUBUCZQRAUNUPUAUQUDZBAIUETCIUFUGZTDUSTEUSTFUST
      GUSTHUSTURJKLMNOPCDEFGHIUHUIUJUK $.
  $}

  $( Transitivity law for congruence.  (Contributed by Scott Fenton,
     7-Oct-2013.) $)
  cgrtr3 $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
       ( ( <. A , B >. Cgr <. E , F >. /\
           <. C , D >. Cgr <. E , F >. ) ->
         <. A , B >. Cgr <. C , D >. ) ) $=
    ( cn wcel cee cfv w3a cop ccgr wbr wa simp1 simp21 simp22 simp32 cgrcomand
    simp33 simp23 simp31 simprl simprr cgrtrand ex ) GHIZAGJKZIZBUJIZCUJIZLZDUJ
    IZEUJIZFUJIZLZLZABMZEFMZNOZCDMZVANOZPZUTVCNOUSVEABEFCDGUIUNURQZUIUKULUMURRU
    IUKULUMURSUIUNUOUPUQTZUIUNUOUPUQUBZUIUKULUMURUCZUIUNUOUPUQUDZUSVBVDUEUSVECD
    EFGVFVIVJVGVHUSVBVDUFUAUGUH $.

  ${
    cgrtr3and.1 $e |- ( ph -> N e. NN ) $.
    cgrtr3and.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
    cgrtr3and.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
    cgrtr3and.4 $e |- ( ph -> C e. ( EE ` N ) ) $.
    cgrtr3and.5 $e |- ( ph -> D e. ( EE ` N ) ) $.
    cgrtr3and.6 $e |- ( ph -> E e. ( EE ` N ) ) $.
    cgrtr3and.7 $e |- ( ph -> F e. ( EE ` N ) ) $.
    cgrtr3and.8 $e |- ( ( ph /\ ps ) -> <. A , B >. Cgr <. E , F >. ) $.
    cgrtr3and.9 $e |- ( ( ph /\ ps ) -> <. C , D >. Cgr <. E , F >. ) $.
    $( Deduction form of ~ cgrtr3 .  (Contributed by Scott Fenton,
       13-Oct-2013.) $)
    cgrtr3and $p |- ( ( ph /\ ps ) -> <. A , B >. Cgr <. C , D >. ) $=
      ( cop wcel wa ccgr wbr wi cn cee cfv cgrtr3 syl133anc adantr mp2and ) ABU
      ACDSZGHSZUBUCZEFSZUMUBUCZULUOUBUCZQRAUNUPUAUQUDZBAIUETCIUFUGZTDUSTEUSTFUS
      TGUSTHUSTURJKLMNOPCDEFGHIUHUIUJUK $.
  $}

  $( Congruence commutes on the left.  Biconditional version of Theorem 2.4 of
     [Schwabhauser] p. 27.  (Contributed by Scott Fenton, 12-Jun-2013.) $)
  cgrcoml $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
    ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
    ( <. A , B >. Cgr <. C , D >. <->
      <. B , A >. Cgr <. C , D >. ) ) $=
    ( cn wcel cee cfv wa w3a cop wbr simp1 cgrrflx2d wi axcgrtr syl133anc mpand
    ccgr simp2l simp2r simp3l simp3r impbid ) EFGZAEHIZGZBUGGZJZCUGGZDUGGZJZKZA
    BLZCDLZTMZBALZUPTMZUNUOURTMZUQUSUNABEUFUJUMNZUFUHUIUMUAZUFUHUIUMUBZOUNUFUHU
    IUIUHUKULUTUQJUSPVAVBVCVCVBUFUJUKULUCZUFUJUKULUDZABBACDEQRSUNURUOTMZUSUQUNB
    AEVAVCVBOUNUFUIUHUHUIUKULVFUSJUQPVAVCVBVBVCVDVEBAABCDEQRSUE $.

  $( Congruence commutes on the right.  Biconditional version of Theorem 2.5 of
     [Schwabhauser] p. 27.  (Contributed by Scott Fenton, 12-Jun-2013.) $)
  cgrcomr $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
    ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
    ( <. A , B >. Cgr <. C , D >. <->
      <. A , B >. Cgr <. D , C >. ) ) $=
    ( cn wcel cee cfv wa w3a cop ccgr wbr wb cgrcoml 3com23 cgrcom simp1 simp2l
    simp2r simp3r simp3l syl122anc 3bitr4d ) EFGZAEHIZGZBUGGZJZCUGGZDUGGZJZKZCD
    LZABLZMNZDCLZUPMNZUPUOMNUPURMNZUFUMUJUQUSOCDABEPQABCDERUNUFUHUIULUKUTUSOUFU
    JUMSUFUHUIUMTUFUHUIUMUAUFUJUKULUBUFUJUKULUCABDCERUDUE $.

  $( Congruence commutes on both sides.  (Contributed by Scott Fenton,
     12-Jun-2013.) $)
  cgrcomlr $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
    ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
    ( <. A , B >. Cgr <. C , D >. <->
      <. B , A >. Cgr <. D , C >. ) ) $=
    ( cn wcel cee cfv wa w3a cop ccgr wbr cgrcoml ancom cgrcomr syl3an2b bitrd
    wb ) EFGZAEHIZGZBUBGZJZCUBGDUBGJZKABLCDLZMNBALZUGMNZUHDCLMNZABCDEOUEUAUDUCJ
    UFUIUJTUCUDPBACDEQRS $.

  ${
    cgrcomlrand.1 $e |- ( ph -> N e. NN ) $.
    cgrcomlrand.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
    cgrcomlrand.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
    cgrcomlrand.4 $e |- ( ph -> C e. ( EE ` N ) ) $.
    cgrcomlrand.5 $e |- ( ph -> D e. ( EE ` N ) ) $.
    cgrcomlrand.6 $e |- ( ( ph /\ ps ) -> <. A , B >. Cgr <. C , D >. ) $.
    $( Deduction form of ~ cgrcoml .  (Contributed by Scott Fenton,
       14-Oct-2013.) $)
    cgrcomland $p |- ( ( ph /\ ps ) -> <. B , A >. Cgr <. C , D >. ) $=
      ( wa cop ccgr wbr wb cn wcel cee cfv cgrcoml syl122anc adantr mpbid ) ABN
      CDOEFOZPQZDCOUGPQZMAUHUIRZBAGSTCGUAUBZTDUKTEUKTFUKTUJHIJKLCDEFGUCUDUEUF
      $.

    $( Deduction form of ~ cgrcoml .  (Contributed by Scott Fenton,
       14-Oct-2013.) $)
    cgrcomrand $p |- ( ( ph /\ ps ) -> <. A , B >. Cgr <. D , C >. ) $=
      ( wa cop ccgr wbr wb cn wcel cee cfv cgrcomr syl122anc adantr mpbid ) ABN
      CDOZEFOPQZUGFEOPQZMAUHUIRZBAGSTCGUAUBZTDUKTEUKTFUKTUJHIJKLCDEFGUCUDUEUF
      $.

    $( Deduction form of ~ cgrcomlr .  (Contributed by Scott Fenton,
       14-Oct-2013.) $)
    cgrcomlrand $p |- ( ( ph /\ ps ) -> <. B , A >. Cgr <. D , C >. ) $=
      ( cgrcomrand cgrcomland ) ABCDFEGHIJLKABCDEFGHIJKLMNO $.
  $}

  ${
    $d A x $.  $d B x $.  $d N x $.
    $( Degenerate segments are congruent.  Theorem 2.8 of [Schwabhauser] p. 28.
       (Contributed by Scott Fenton, 12-Jun-2013.) $)
    cgrtriv $p |- ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
    <. A , A >. Cgr <. B , B >. ) $=
      ( vx cn wcel cee cfv w3a cv cop cbtwn wbr ccgr simp1 simp2 simp3 axsegcon
      wa wrex syl122anc wceq simpl1 simpl2 simpr simpl3 axcgrid syl13anc breq1d
      wi opeq2 biimprd syli adantld rexlimdva mpd ) CEFZACGHZFZBURFZIZAADJZKZLM
      ZVCBBKZNMZSZDURTZAAKZVENMZVAUQUSUSUTUTVHUQUSUTOUQUSUTPZVKUQUSUTQZVLDAABBC
      RUAVAVGVJDURVAVBURFZSZVFVJVDVFVNAVBUBZVJVNUQUSVMUTVFVOUJUQUSUTVMUCUQUSUTV
      MUDVAVMUEUQUSUTVMUFAVBBCUGUHVOVJVFVOVIVCVENAVBAUKUIULUMUNUOUP $.
  $}

  $( Identity law for congruence.  (Contributed by Scott Fenton,
     12-Jun-2013.) $)
  cgrid2 $p |- ( ( N e. NN /\
    ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
    ( <. A , A >. Cgr <. B , C >. -> B = C ) ) $=
    ( cn wcel cee cfv w3a wa cop ccgr wceq wb simpl simpr1 simpr2 simpr3 cgrcom
    wbr syl122anc wi 3anrot axcgrid sylan2b sylbid ) DEFZADGHZFZBUHFZCUHFZIZJZA
    AKZBCKZLTZUOUNLTZBCMZUMUGUIUIUJUKUPUQNUGULOUGUIUJUKPZUSUGUIUJUKQUGUIUJUKRAA
    BCDSUAULUGUJUKUIIUQURUBUIUJUKUCBCADUDUEUF $.

  $( Two congruent segments are either both degenerate or both non-degenerate.
     (Contributed by Scott Fenton, 12-Jun-2013.) $)
  cgrdegen $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
    ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
      ( <. A , B >. Cgr <. C , D >. -> ( A = B <-> C = D ) ) ) $=
    ( cn wcel cee cfv wa cop ccgr wbr wceq opeq1 biimpac syl13anc syl5 expdimp
    wi wb breq1d simp1 simp2r simp3l simp3r cgrid2 breq2d simp2l axcgrid impbid
    w3a ex ) EFGZAEHIZGZBUOGZJZCUOGZDUOGZJZULZABKZCDKZLMZABNZCDNZUAVBVEJVFVGVBV
    EVFVGVEVFJBBKZVDLMZVBVGVFVEVIVFVCVHVDLABBOUBPVBUNUQUSUTVIVGTUNURVAUCZUNUPUQ
    VAUDZUNURUSUTUEUNURUSUTUFZBCDEUGQRSVBVEVGVFVEVGJVCDDKZLMZVBVFVGVEVNVGVDVMVC
    LCDDOUHPVBUNUPUQUTVNVFTVJUNUPUQVAUIVKVLABDEUJQRSUKUM $.

  ${
    $d N a b c d e f g h p q n $.  $d A a b c d e f g h p q n $.
    $d B a b c d e f g h p q n $.  $d C a b c d e f g h p q n $.
    $d D a b c d e f g h p q n $.  $d E a b c d e f g h p q n $.
    $d F a b c d e f g h p q n $.  $d G a b c d e f g h p q n $.
    $d H a b c d e f g h p q n $.
    $( Binary relation form of the outer five segment predicate.  (Contributed
       by Scott Fenton, 21-Sep-2013.) $)
    brofs $p |- ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
        ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ E e. ( EE ` N ) ) /\
        ( F e. ( EE ` N ) /\ G e. ( EE ` N ) /\ H e. ( EE ` N ) ) ) ->
    ( <. <. A , B >. , <. C , D >. >. OuterFiveSeg
      <. <. E , F >. , <. G , H >. >. <-> ( ( B Btwn <. A , C >. /\
                     F Btwn <. E , G >. ) /\
        ( <. A , B >. Cgr <. E , F >. /\
          <. B , C >. Cgr <. F , G >. ) /\
        ( <. A , D >. Cgr <. E , H >. /\
          <. B , D >. Cgr <. F , H >. ) ) ) ) $=
      ( cv cop cbtwn wbr wa ccgr w3a wceq opeq1 breq2d opeq2 vb va vc vf ve cee
      vg vd vh vn vq vp cfv cofs anbi1d breq1d 3anbi123d breq1 anbi12d 3anbi12d
      cn anbi2d 3anbi3d fveq2 df-ofs br8 ) UAJZUBJZUCJZKZLMZUDJZUEJZUGJZKZLMZNZ
      VHVGKZVMVLKZOMZVGVIKZVLVNKZOMZNZVHUHJZKZVMUIJZKZOMZVGWEKZVLWGKZOMZNZPVGAV
      IKZLMZVPNZAVGKZVSOMZWCNZAWEKZWHOMZWLNZPBWNLMZVPNZABKZVSOMZBVIKZWBOMZNZXAB
      WEKZWKOMZNZPBACKZLMZVPNZXFBCKZWBOMZNZXLPXOXRADKZWHOMZBDKZWKOMZNZPXNVLEVNK
      ZLMZNZXEEVLKZOMZXQNZXSEWGKZOMZYBNZPXNFYDLMZNZXEEFKZOMZXPFVNKZOMZNZYKYAFWG
      KZOMZNZPXNFEGKZLMZNZYPXPFGKZOMZNZUUBPUUEUUHXSEHKZOMZYAFHKZOMZNZPUJABCDUJJ
      ZUFUMIUFUMUNVAUEUDUGUIEFGHIUKULUBUAUCUHVHAQZVQWPWDWSWMXBUUOVKWOVPUUOVJWNV
      GLVHAVIRSUOUUOVTWRWCUUOVRWQVSOVHAVGRUPUOUUOWIXAWLUUOWFWTWHOVHAWERUPUOUQVG
      BQZWPXDWSXIXBXLUUPWOXCVPVGBWNLURUOUUPWRXFWCXHUUPWQXEVSOVGBATUPUUPWAXGWBOV
      GBVIRUPUSUUPWLXKXAUUPWJXJWKOVGBWERUPVBUQVICQZXDXOXIXRXLUUQXCXNVPUUQWNXMBL
      VICATSUOUUQXHXQXFUUQXGXPWBOVICBTUPVBUTWEDQZXLYCXOXRUURXAXTXKYBUURWTXSWHOW
      EDATUPUURXJYAWKOWEDBTUPUSVCVMEQZXOYFXRYIYCYLUUSVPYEXNUUSVOYDVLLVMEVNRSVBU
      USXFYHXQUUSVSYGXEOVMEVLRSUOUUSXTYKYBUUSWHYJXSOVMEWGRSUOUQVLFQZYFYNYIYSYLU
      UBUUTYEYMXNVLFYDLURVBUUTYHYPXQYRUUTYGYOXEOVLFETSUUTWBYQXPOVLFVNRSUSUUTYBU
      UAYKUUTWKYTYAOVLFWGRSVBUQVNGQZYNUUEYSUUHUUBUVAYMUUDXNUVAYDUUCFLVNGETSVBUV
      AYRUUGYPUVAYQUUFXPOVNGFTSVBUTWGHQZUUBUUMUUEUUHUVBYKUUJUUAUULUVBYJUUIXSOWG
      HETSUVBYTUUKYAOWGHFTSUSVCUUNIUFVDUEUDUGUIUJUKULUBUAUCUHVEVF $.
  $}

  $( Rephrase ~ ax5seg using the outer five segment predicate.  Theorem 2.10 of
     [Schwabhauser] p. 28.  (Contributed by Scott Fenton, 21-Sep-2013.) $)
  5segofs $p |- ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
        ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ E e. ( EE ` N ) ) /\
        ( F e. ( EE ` N ) /\ G e. ( EE ` N ) /\ H e. ( EE ` N ) ) ) ->
    ( ( <. <. A , B >. , <. C , D >. >. OuterFiveSeg
        <. <. E , F >. , <. G , H >. >. /\ A =/= B ) ->
        <. C , D >. Cgr <. G , H >. ) ) $=
    ( cn wcel cee cfv w3a cop wbr wa cbtwn ccgr 3jca brofs anbi1d simpr simpl1l
    cofs wne simpl1r simpl2 simpl3 syl6bi ax5seg syld ) IJKAILMZKBUMKNCUMKDUMKE
    UMKNFUMKGUMKHUMKNNZABOZCDOZOEFOZGHOZOUEPZABUFZQZUTBACORPZFEGORPZNZUOUQSPBCO
    FGOSPQZADOEHOSPBDOFHOSPQZNZUPURSPUNVAVBVCQZVEVFNZUTQZVGUNUSVIUTABCDEFGHIUAU
    BVJVDVEVFVJUTVBVCVIUTUCVBVCVEVFUTUDVBVCVEVFUTUGTVHVEVFUTUHVHVEVFUTUITUJABCD
    EFGHIUKUL $.

  $( The outer five segment predicate commutes.  (Contributed by Scott Fenton,
     26-Sep-2013.) $)
  ofscom $p |- ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
        ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ E e. ( EE ` N ) ) /\
        ( F e. ( EE ` N ) /\ G e. ( EE ` N ) /\ H e. ( EE ` N ) ) ) ->
    ( <. <. A , B >. , <. C , D >. >. OuterFiveSeg
      <. <. E , F >. , <. G , H >. >. <->
      <. <. E , F >. , <. G , H >. >. OuterFiveSeg
      <. <. A , B >. , <. C , D >. >. ) ) $=
    ( wcel w3a cop cbtwn wbr wa ccgr cofs wb cgrcom syl122anc cee cfv ancom a1i
    cn simp11 simp12 simp13 simp23 simp31 simp21 simp32 simp22 simp33 3anbi123d
    anbi12d brofs syl333anc 3bitr4d ) IUEJZAIUAUBZJZBVAJZKZCVAJZDVAJZEVAJZKZFVA
    JZGVAJZHVAJZKZKZBACLMNZFEGLMNZOZABLZEFLZPNZBCLZFGLZPNZOZADLZEHLZPNZBDLZFHLZ
    PNZOZKVOVNOZVRVQPNZWAVTPNZOZWEWDPNZWHWGPNZOZKZVQCDLLZVRGHLLZQNWTWSQNZVMVPWK
    WCWNWJWQVPWKRVMVNVOUCUDVMVSWLWBWMVMUTVBVCVGVIVSWLRUTVBVCVHVLUFZUTVBVCVHVLUG
    ZUTVBVCVHVLUHZVDVEVFVGVLUIZVDVHVIVJVKUJZABEFISTVMUTVCVEVIVJWBWMRXBXDVDVEVFV
    GVLUKZXFVDVHVIVJVKULZBCFGISTUPVMWFWOWIWPVMUTVBVFVGVKWFWORXBXCVDVEVFVGVLUMZX
    EVDVHVIVJVKUNZADEHISTVMUTVCVFVIVKWIWPRXBXDXIXFXJBDFHISTUPUOABCDEFGHIUQVMUTV
    GVIVJVKVBVCVEVFXAWRRXBXEXFXHXJXCXDXGXIEFGHABCDIUQURUS $.

  $( Link congruence over a pair of line segments.  Theorem 2.11 of
     [Schwabhauser] p. 29.  (Contributed by Scott Fenton, 12-Jun-2013.) $)
  cgrextend $p |- ( ( N e. NN /\
    ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
    ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
    ( ( ( B Btwn <. A , C >. /\ E Btwn <. D , F >. ) /\
        ( <. A , B >. Cgr <. D , E >. /\
          <. B , C >. Cgr <. E , F >. ) ) ->
      <. A , C >. Cgr <. D , F >. ) ) $=
    ( wcel w3a cop cbtwn wbr wa ccgr wi wceq wb opeq1 adantr 3jca cn cee breq1d
    cfv simp1 simp22 simp31 simp32 cgrid2 syl13anc adantl sylbid breqan12d syld
    exbiri impd adantld wne cofs simpl1 simpl21 simpl22 simpl23 simpl31 simpl32
    simpl33 simprrl simprrr cgrtriv syl3anc simpld cgrcomlr syl122anc mpbid jca
    ex brofs syl333anc mpbir3and simprl 5segofs sylc exp32 com12 pm2.61ine ) GU
    AHZAGUBUDZHZBWGHZCWGHZIZDWGHZEWGHZFWGHZIZIZBACJZKLEDFJZKLMZABJZDEJZNLZBCJZE
    FJZNLZMZMZWQWRNLZOZOABABPZWPXIXJWPMZXFXHWSXKXBXEXHXKXBDEPZXEXHOZXKXBBBJZXAN
    LZXLXJXBXOQWPXJWTXNXANABBRUCSWPXOXLOZXJWPWFWIWLWMXPWFWKWOUEWFWHWIWJWOUFWFWK
    WLWMWNUGWFWKWLWMWNUHBDEGUIUJUKULXJXLXMOWPXJXLXHXEXJXLWQXCWRXDNABCRDEFRUMUOS
    UNUPUQVPWPABURZXIWPXQXGXHWPXQXGMZMZCAJZFDJZNLZXHXSWFWHWIIZWJWHWLIZWMWNWLIZI
    WTXTJXAYAJUSLZXQMYBXSYCYDYEXSWFWHWIWFWKWOXRUTZWHWIWJWFWOXRVAZWHWIWJWFWOXRVB
    ZTXSWJWHWLWHWIWJWFWOXRVCZYHWLWMWNWFWKXRVDZTXSWMWNWLWLWMWNWFWKXRVEZWLWMWNWFW
    KXRVFZYKTTXSYFXQXSYFWSXFAAJDDJNLZBAJEDJNLZMZWPXQWSXFVGWPXQWSXFVHZXSYNYOXSWF
    WHWLYNYGYHYKADGVIVJXSXBYOXSXBXEYQVKXSWFWHWIWLWMXBYOQYGYHYIYKYLABDEGVLVMVNVO
    XSWFWHWIWJWHWLWMWNWLYFWSXFYPIQYGYHYIYJYHYKYLYMYKABCADEFDGVQVRVSWPXQXGVTVOAB
    CADEFDGWAWBXSWFWJWHWNWLYBXHQYGYJYHYMYKCAFDGVLVMVNWCWDWE $.

  ${
    cgrextendand.1 $e |- ( ph -> N e. NN ) $.
    cgrextendand.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
    cgrextendand.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
    cgrextendand.4 $e |- ( ph -> C e. ( EE ` N ) ) $.
    cgrextendand.5 $e |- ( ph -> D e. ( EE ` N ) ) $.
    cgrextendand.6 $e |- ( ph -> E e. ( EE ` N ) ) $.
    cgrextendand.7 $e |- ( ph -> F e. ( EE ` N ) ) $.
    cgrextendand.8 $e |- ( ( ph /\ ps ) -> B Btwn <. A , C >. ) $.
    cgrextendand.9 $e |- ( ( ph /\ ps ) -> E Btwn <. D , F >. ) $.
    cgrextendand.10 $e |- ( ( ph /\ ps ) -> <. A , B >. Cgr <. D , E >. ) $.
    cgrextendand.11 $e |- ( ( ph /\ ps ) -> <. B , C >. Cgr <. E , F >. ) $.
    $( Deduction form of ~ cgrextend .  (Contributed by Scott Fenton,
       14-Oct-2013.) $)
    cgrextendand $p |- ( ( ph /\ ps ) -> <. A , C >. Cgr <. D , F >. ) $=
      ( wa cop cbtwn wbr ccgr jca wi cn wcel cee cfv cgrextend syl133anc adantr
      mp2and ) ABUAZDCEUBZUCUDZGFHUBZUCUDZUAZCDUBFGUBUEUDZDEUBGHUBUEUDZUAZUQUSU
      EUDZUPURUTQRUFUPVBVCSTUFAVAVDUAVEUGZBAIUHUICIUJUKZUIDVGUIEVGUIFVGUIGVGUIH
      VGUIVFJKLMNOPCDEFGHIULUMUNUO $.
  $}

  $( Two points that satsify the conclusion of ~ axsegcon are identical.
     Uniqueness portion of Theorem 2.12 of [Schwabhauser] p. 29.  (Contributed
     by Scott Fenton, 12-Jun-2013.) $)
  segconeq $p |- ( ( N e. NN /\
   ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
   ( Q e. ( EE ` N ) /\ X e. ( EE ` N ) /\ Y e. ( EE ` N ) ) ) ->
   ( ( Q =/= A /\
     ( A Btwn <. Q , X >. /\ <. A , X >. Cgr <. B , C >. ) /\
     ( A Btwn <. Q , Y >. /\ <. A , Y >. Cgr <. B , C >. ) )
   -> X = Y ) ) $=
    ( wcel w3a cop cbtwn wbr ccgr wa jca cgrrflxd 3jca wb cgrcom wi cee cfv wne
    cn cofs wceq simpr2l simpl1 simpl31 simpl21 simpl32 simpl33 simpr3l simpl22
    simpl23 simpr3r syl122anc mpbid simpr2r cgrtr4d jca32 cgrextend sylc simp31
    simp1 simp21 simp32 simp33 brofs syl333anc sylibrd a1i jcad 5segofs axcgrid
    ex syl13anc 3syld ) EUDHZAEUAUBZHZBVTHZCVTHZIZDVTHZFVTHZGVTHZIZIZDAUCZADFJZ
    KLZAFJZBCJZMLZNZADGJZKLZAGJZWNMLZNZIZDAJZFGJZJXCFFJZJUELZWJNZXDXEMLZFGUFZWI
    XBXFWJWIXBWLWLNZXCXCMLZWMWMMLZNZWQWKMLZWSWMMLZNZIZXFWIXBXQWIXBNZXJXMXPXRWLW
    LWLWOWJXAWIUGZXSOXRXKXLXRDAEVSWDWHXBUHZWEWFWGVSWDXBUIZWAWBWCVSWHXBUJZPZXRAF
    EXTYBWEWFWGVSWDXBUKZPOXRXNXOXRVSWEWAWGIZWEWAWFIZIWRWLNZXKXONNXNXRVSYEYFXTXR
    WEWAWGYAYBWEWFWGVSWDXBULZQXRWEWAWFYAYBYDQQXRYGXKXOXRWRWLWRWTWJWPWIUMXSOYCXR
    BCAGAFEXTWAWBWCVSWHXBUNZWAWBWCVSWHXBUOZYBYHYBYDXRWTWNWSMLZWRWTWJWPWIUPXRVSW
    AWGWBWCWTYKRXTYBYHYIYJAGBCESUQURXRWOWNWMMLZWLWOWJXAWIUSXRVSWAWFWBWCWOYLRXTY
    BYDYIYJAFBCESUQURUTZVADAGDAFEVBVCYMOQVPWIVSWEWAWFWGWEWAWFWFXFXQRVSWDWHVEZVS
    WDWEWFWGVDZVSWAWBWCWHVFZVSWDWEWFWGVGZVSWDWEWFWGVHZYOYPYQYQDAFGDAFFEVIVJVKXB
    WJTWIWJWPXAVEVLVMWIVSWEWAWFWGWEWAWFWFXGXHTYNYOYPYQYRYOYPYQYQDAFGDAFFEVNVJWI
    VSWFWGWFXHXITYNYQYRYQFGFEVOVQVR $.

  ${
    $d N r s $.  $d A r s $.  $d B r s $.  $d C r s $.  $d D r s $.
    $( Existential uniqueness version of ~ segconeq .  (Contributed by Scott
       Fenton, 19-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    segconeu $p |- ( ( N e. NN /\
       ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) /\
         C =/= D ) ) ->
       E! r e. ( EE ` N ) ( D Btwn <. C , r >. /\
       <. D , r >. Cgr <. A , B >. ) ) $=
      ( vs cn wcel cee wa w3a cv cop cbtwn wbr ccgr wi wral opeq2 cfv wrex wreu
      wne simpl simpr2 simpr1 axsegcon syl3anc simpl23 simprl simprr 3jca simp1
      weq simp22r simp21l simp21r simp22l simp3l simp3r segconeq syl133anc syld
      ex 3expa ralrimivva breq2d breq1d anbi12d reu4 sylanbrc ) EHIZAEJUAZIZBVN
      IZKZCVNIZDVNIZKZCDUDZLZKZDCFMZNZOPZDWDNZABNZQPZKZFVNUBZWJDCGMZNZOPZDWLNZW
      HQPZKZKZFGUOZRZGVNSFVNSWJFVNUCWCVMVTVQWKVMWBUEVMVQVTWAUFVMVQVTWAUGFCDABEU
      HUIWCWTFGVNVNVMWBWDVNIZWLVNIZKZWTVMWBXCLZWRWAWJWQLZWSXDWRXEXDWRKWAWJWQVQV
      TWAVMXCWRUJXDWJWQUKXDWJWQULUMVEXDVMVSVOVPVRXAXBXEWSRVMWBXCUNVRVSVQWAVMXCU
      PVOVPVTWAVMXCUQVOVPVTWAVMXCURVRVSVQWAVMXCUSVMWBXAXBUTVMWBXAXBVADABCEWDWLV
      BVCVDVFVGWJWQFGVNWSWFWNWIWPWSWEWMDOWDWLCTVHWSWGWOWHQWDWLDTVIVJVKVL $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Betweenness properties
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d A x $.  $d B x $.  $d N x $.
    $( Betweenness always holds for the second endpoint.  Theorem 3.1 of
       [Schwabhauser] p. 30.  (Contributed by Scott Fenton, 12-Jun-2013.) $)
    btwntriv2 $p |- ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
      B Btwn <. A , B >. ) $=
      ( vx cn wcel cee cfv w3a cv cop cbtwn wbr ccgr wa wrex simp1 simp2 simp3
      wi axsegcon syl122anc simpl1 simpl3 simpr axcgrid syl13anc breq2d biimprd
      wceq opeq2 syl6 impd ancomsd rexlimdva mpd ) CEFZACGHZFZBURFZIZBADJZKZLMZ
      BVBKBBKNMZOZDURPZBABKZLMZVAUQUSUTUTUTVGUQUSUTQUQUSUTRUQUSUTSZVJVJDABBBCUA
      UBVAVFVIDURVAVBURFZOZVEVDVIVLVEVDVIVLVEBVBUJZVDVITVLUQUTVKUTVEVMTUQUSUTVK
      UCUQUSUTVKUDZVAVKUEVNBVBBCUFUGVMVIVDVMVHVCBLBVBAUKUHUIULUMUNUOUP $.
  $}

  ${
    $d N x $.  $d A x $.  $d B x $.  $d C x $.
    $( Betweenness commutes.  Implication version.  Theorem 3.2 of
       [Schwabhauser] p. 30.  (Contributed by Scott Fenton, 12-Jun-2013.) $)
    btwncomim $p |- ( ( N e. NN /\
      ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
      ( A Btwn <. B , C >. -> A Btwn <. C , B >. ) ) $=
      ( vx cn wcel cee cfv w3a wa cop cbtwn wbr cv btwntriv2 3adant3r2 wi simpl
      wrex simpr2 simpr1 simpr3 axpasch syl132anc mpan2d simpr simplr1 axbtwnid
      wceq simpll syl3anc breq1 biimpd syl6 impd rexlimdva syld ) DFGZADHIZGZBU
      TGZCUTGZJZKZABCLMNZEOZAALMNZVGCBLZMNZKZEUTTZAVIMNZVEVFCACLMNZVLUSVAVCVNVB
      ACDPQVEUSVBVAVCVAVCVFVNKVLRUSVDSUSVAVBVCUAUSVAVBVCUBZUSVAVBVCUCZVOVPEBACA
      CDUDUEUFVEVKVMEUTVEVGUTGZKZVHVJVMVRVHVGAUJZVJVMRVRUSVQVAVHVSRUSVDVQUKVEVQ
      UGVAVBVCUSVQUHVGADUIULVSVJVMVGAVIMUMUNUOUPUQUR $.
  $}

  $( Betweenness commutes.  (Contributed by Scott Fenton, 12-Jun-2013.) $)
  btwncom $p |- ( ( N e. NN /\
      ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
      ( A Btwn <. B , C >. <-> A Btwn <. C , B >. ) ) $=
    ( cn wcel cee cfv w3a wa cop cbtwn wbr btwncomim wi 3ancomb sylan2b impbid
    ) DEFZADGHZFZBTFZCTFZIZJABCKLMZACBKLMZABCDNUDSUAUCUBIUFUEOUAUBUCPACBDNQR $.

  ${
    btwncomand.1 $e |- ( ph -> N e. NN ) $.
    btwncomand.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
    btwncomand.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
    btwncomand.4 $e |- ( ph -> C e. ( EE ` N ) ) $.
    btwncomand.5 $e |- ( ( ph /\ ps ) -> A Btwn <. B , C >. ) $.
    $( Deduction form of ~ btwncom .  (Contributed by Scott Fenton,
       14-Oct-2013.) $)
    btwncomand $p |- ( ( ph /\ ps ) -> A Btwn <. C , B >. ) $=
      ( wa cop cbtwn wbr wb cn wcel cee cfv btwncom syl13anc adantr mpbid ) ABL
      CDEMNOZCEDMNOZKAUEUFPZBAFQRCFSTZRDUHREUHRUGGHIJCDEFUAUBUCUD $.
  $}

  $( Betweenness always holds for the first endpoint.  Theorem 3.3 of
     [Schwabhauser] p. 30.  (Contributed by Scott Fenton, 12-Jun-2013.) $)
  btwntriv1 $p |- ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
      A Btwn <. A , B >. ) $=
    ( cn wcel cee cfv w3a cop cbtwn wbr btwntriv2 3com23 wb simp1 simp2 btwncom
    simp3 syl13anc mpbird ) CDEZACFGZEZBUBEZHZAABIJKZABAIJKZUAUDUCUGBACLMUEUAUC
    UCUDUFUGNUAUCUDOUAUCUDPZUHUAUCUDRAABCQST $.

  ${
    $d N x $.  $d A x $.  $d B x $.  $d C x $.
    $( If you can swap the first two arguments of a betweenness statement, then
       those arguments are identical.  Theorem 3.4 of [Schwabhauser] p. 30.
       (Contributed by Scott Fenton, 12-Jun-2013.) $)
    btwnswapid $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
       ( ( A Btwn <. B , C >. /\ B Btwn <. A , C >. ) ->
         A = B ) ) $=
      ( vx cn wcel cee cfv w3a wa cop cbtwn wbr cv wrex wceq axbtwnid syl3anc
      wi simpl simpr2 simpr1 simpr3 axpasch simpr simplr1 simplr2 anim12d eqtr2
      syl132anc simpll syl6 rexlimdva syld ) DFGZADHIZGZBUQGZCUQGZJZKZABCLMNBAC
      LMNKZEOZAALMNZVDBBLMNZKZEUQPZABQZVBUPUSURUTURUSVCVHTUPVAUAUPURUSUTUBZUPUR
      USUTUCZUPURUSUTUDVKVJEBACABDUEUKVBVGVIEUQVBVDUQGZKZVGVDAQZVDBQZKVIVMVEVNV
      FVOVMUPVLURVEVNTUPVAVLULZVBVLUFZURUSUTUPVLUGVDADRSVMUPVLUSVFVOTVPVQURUSUT
      UPVLUHVDBDRSUIVDABUJUMUNUO $.
  $}

  $( If you can swap arguments one and three of a betweenness statement, then
     those arguments are identical.  (Contributed by Scott Fenton,
     7-Oct-2013.) $)
  btwnswapid2 $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
       ( ( A Btwn <. B , C >. /\ C Btwn <. B , A >. ) ->
         A = C ) ) $=
    ( cn wcel cee cfv w3a wa cop cbtwn wbr btwncom wb 3anrev sylan2b anbi12d wi
    wceq 3ancomb btwnswapid sylbid ) DEFZADGHZFZBUEFZCUEFZIZJZABCKLMZCBAKLMZJAC
    BKLMZCABKLMZJZACTZUJUKUMULUNABCDNUIUDUHUGUFIULUNOUFUGUHPCBADNQRUIUDUFUHUGIU
    OUPSUFUGUHUAACBDUBQUC $.

  ${
    $d N x $.  $d A x $.  $d B x $.  $d C x $.  $d D x $.
    $( Inner transitivity law for betweenness.  Left-hand side of Theorem 3.5
       of [Schwabhauser] p. 30.  (Contributed by Scott Fenton, 12-Jun-2013.) $)
    btwnintr $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
       ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
       ( ( B Btwn <. A , D >. /\ C Btwn <. B , D >. ) ->
         B Btwn <. A , C >. ) ) $=
      ( vx cn wcel cee cfv wa w3a cop cbtwn wbr cv wrex wi simp1 simp2l axpasch
      simp2r simp3r simp3l syl132anc wceq simpl1 simpr simpl2r axbtwnid syl3anc
      breq1 biimpa wb simpl3l simpl2l btwncom syl13anc syl5ib syland rexlimdva
      syld ) EGHZAEIJZHZBVDHZKZCVDHZDVDHZKZLZBADMNOCBDMNOKZFPZBBMNOZVMCAMZNOZKZ
      FVDQZBACMNOZVKVCVEVFVIVFVHVLVRRVCVGVJSVCVEVFVJTVCVEVFVJUBZVCVGVHVIUCVTVCV
      GVHVIUDFABDBCEUAUEVKVQVSFVDVKVMVDHZKZVNVMBUFZVPVSWBVCWAVFVNWCRVCVGVJWAUGZ
      VKWAUHVEVFVCVJWAUIZVMBEUJUKWCVPKBVONOZWBVSWCVPWFVMBVONULUMWBVCVFVHVEWFVSU
      NWDWEVHVIVCVGWAUOVEVFVCVJWAUPBCAEUQURUSUTVAVB $.

    $( Exchange the first endpoint in betweenness.  Left-hand side of Theorem
       3.6 of [Schwabhauser] p. 30.  (Contributed by Scott Fenton,
       12-Jun-2013.) $)
    btwnexch3 $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
       ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
       ( ( B Btwn <. A , C >. /\ C Btwn <. A , D >. ) ->
         C Btwn <. B , D >. ) ) $=
      ( vx cn wcel cee cfv wa w3a cop cbtwn wbr cv wb btwncom syl13anc wi simp1
      wrex simp3l simp2l simp3r simp2r anbi12d axpasch syl132anc sylbid ancomsd
      wceq simpl1 simpr simpl3l axbtwnid syl3anc breq1 syl6 impd rexlimdva syld
      biimpd ) EGHZAEIJZHZBVEHZKZCVEHZDVEHZKZLZBACMNOZCADMNOZKFPZCCMNOZVOBDMZNO
      ZKZFVEUBZCVQNOZVLVNVMVTVLVNVMKCDAMNOZBCAMNOZKZVTVLVNWBVMWCVLVDVIVFVJVNWBQ
      VDVHVKUAZVDVHVIVJUCZVDVFVGVKUDZVDVHVIVJUEZCADERSVLVDVGVFVIVMWCQWEVDVFVGVK
      UFZWGWFBACERSUGVLVDVJVIVFVIVGWDVTTWEWHWFWGWFWIFDCACBEUHUIUJUKVLVSWAFVEVLV
      OVEHZKZVPVRWAWKVPVOCULZVRWATWKVDWJVIVPWLTVDVHVKWJUMVLWJUNVIVJVDVHWJUOVOCE
      UPUQWLVRWAVOCVQNURVCUSUTVAVB $.

    ${
      btwnexch3and.1 $e |- ( ph -> N e. NN ) $.
      btwnexch3and.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
      btwnexch3and.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
      btwnexch3and.4 $e |- ( ph -> C e. ( EE ` N ) ) $.
      btwnexch3and.5 $e |- ( ph -> D e. ( EE ` N ) ) $.
      btwnexch3and.6 $e |- ( ( ph /\ ps ) -> B Btwn <. A , C >. ) $.
      btwnexch3and.7 $e |- ( ( ph /\ ps ) -> C Btwn <. A , D >. ) $.
      $( Deduction form of ~ btwnexch3 .  (Contributed by Scott Fenton,
         13-Oct-2013.) $)
      btwnexch3and $p |- ( ( ph /\ ps ) -> C Btwn <. B , D >. ) $=
        ( wa cop cbtwn wbr wi wcel cn cee cfv btwnexch3 syl122anc adantr mp2and
        ) ABODCEPQRZECFPQRZEDFPQRZMNAUHUIOUJSZBAGUATCGUBUCZTDULTEULTFULTUKHIJKL
        CDEFGUDUEUFUG $.
    $}

    $( Outer transitivity law for betweenness.  Left-hand side of Theorem 3.1
       of [Schwabhauser] p. 30.  (Contributed by Scott Fenton, 12-Jun-2013.) $)
    btwnouttr2 $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
       ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
       ( ( B =/= C /\
           B Btwn <. A , C >. /\ C Btwn <. B , D >. ) ->
         C Btwn <. A , D >. ) ) $=
      ( vx cn wcel cee wa w3a cop cbtwn wbr ccgr syl122anc adantr wi jca mpd cv
      cfv wne simp1 simp2l simp3l simp3r axsegcon simprrl simprl1 simpl2 simprl
      wrex wceq adantl simpl1 simpl2l simpl2r simpl3l btwnexch3 simprrr simprl3
      simpr simpl3r cgrrflxd segconeq syl133anc mp3and opeq2d breqtrd rexlimdva
      expr an32s ex ) EGHZAEIUBZHZBVPHZJZCVPHZDVPHZJZKZBCUCZBACLMNZCBDLMNZKZCAD
      LZMNZWCWGJZCAFUAZLZMNZCWKLCDLZONZJZFVPUMZWIWCWQWGWCVOVQVTVTWAWQVOVSWBUDVO
      VQVRWBUEVOVSVTWAUFZWRVOVSVTWAUGFACCDEUHPQWJWPWIFVPWCWKVPHZWGWPWIRWCWSJZWG
      WPWIWTWGWPJZJZCWLWHMWTWGWMWOUIXBWKDAXBWDCBWKLMNZWOJZWFWNWNONZJZWKDUNZWDWE
      WFWPWTUJXBXCWOXBWEWMJZXCXAXHWTXAWEWMWDWEWFWPUKWGWMWOULSUOWTXHXCRZXAWTVOVQ
      VRVTWSXIVOVSWBWSUPZVQVRVOWBWSUQVQVRVOWBWSURZVTWAVOVSWSUSZWCWSVCZABCWKEUTP
      QTWTWGWMWOVASXBWFXEWDWEWFWPWTVBWTXEXAWTCDEXJXLVTWAVOVSWSVDZVEQSWTWDXDXFKX
      GRZXAWTVOVTVTWAVRWSWAXOXJXLXLXNXKXMXNCCDBEWKDVFVGQVHVIVJVLVMVKTVN $.
  $}

  $( Exchange the outer point of two betweenness statements.  Right-hand side
     of Theorem 3.5 of [Schwabhauser] p. 30.  (Contributed by Scott Fenton,
     14-Jun-2013.) $)
  btwnexch2 $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
   ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
   ( ( B Btwn <. A , D >. /\ C Btwn <. B , D >. ) ->
     C Btwn <. A , D >. ) ) $=
    ( cn wcel cee cfv wa w3a cop cbtwn wbr wi wceq breq1 biimpd adantrd adantr
    a1i wne simprl simprr btwnintr simprrr btwnouttr2 mp3and exp32 pm2.61dne
    mpd ) EFGAEHIZGBULGJCULGDULGJKZBADLZMNZCBDLMNZJZCUNMNZOZBCBCPZUSOUMUTUOURUP
    UTUOURBCUNMQRSUAUMBCUBZUQURUMVAUQJZJZVABACLMNZUPURUMVAUQUCVCUQVDUMVAUQUDUMU
    QVDOVBABCDEUETUKUMVAUOUPUFUMVAVDUPKUROVBABCDEUGTUHUIUJ $.

  $( Outer transitivity law for betweenness.  Right-hand side of Theorem 3.7 of
     [Schwabhauser] p. 30.  (Contributed by Scott Fenton, 14-Jun-2013.) $)
  btwnouttr $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
   ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
   ( ( B =/= C /\
       B Btwn <. A , C >. /\ C Btwn <. B , D >. ) ->
     B Btwn <. A , D >. ) ) $=
    ( cn wcel cee cfv wa w3a wne cop cbtwn wbr simp1 simp2r wb btwncom syl13anc
    simp3r simp2l necom a1i simp3l 3anbi123d 3ancomb syl6bb biimpa wi syl122anc
    btwnouttr2 adantr mpd btwncomand ex ) EFGZAEHIZGZBURGZJZCURGZDURGZJZKZBCLZB
    ACMNOZCBDMNOZKZBADMNOVEVIBDAEUQVAVDPZUQUSUTVDQZUQVAVBVCUAZUQUSUTVDUBZVEVIJC
    BLZCDBMNOZBCAMNOZKZBDAMNOZVEVIVQVEVIVNVPVOKVQVEVFVNVGVPVHVOVFVNRVEBCUCUDVEU
    QUTUSVBVGVPRVJVKVMUQVAVBVCUEZBACESTVEUQVBUTVCVHVORVJVSVKVLCBDESTUFVNVPVOUGU
    HUIVEVQVRUJZVIVEUQVCVBUTUSVTVJVLVSVKVMDCBAEULUKUMUNUOUP $.

  $( Outer transitivity law for betweenness.  Right-hand side of Theorem 3.6 of
     [Schwabhauser] p. 30.  (Contributed by Scott Fenton, 24-Sep-2013.) $)
  btwnexch $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
  ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
  ( ( B Btwn <. A , C >. /\ C Btwn <. A , D >. ) -> B Btwn <. A , D >. ) ) $=
    ( cn wcel cee cfv wa w3a cop cbtwn wbr simp1 simp2r simp2l btwncom syl13anc
    wb simp3l simp3r anbi12d ancom syl6bb wi btwnexch2 syl122anc sylbid sylibd
    ) EFGZAEHIZGZBULGZJZCULGZDULGZJZKZBACLMNZCADLZMNZJZBDALZMNZBVAMNZUSVCCVDMNZ
    BCALMNZJZVEUSVCVHVGJVIUSUTVHVBVGUSUKUNUMUPUTVHTUKUOUROZUKUMUNURPZUKUMUNURQZ
    UKUOUPUQUAZBACERSUSUKUPUMUQVBVGTVJVMVLUKUOUPUQUBZCADERSUCVHVGUDUEUSUKUQUPUN
    UMVIVEUFVJVNVMVKVLDCBAEUGUHUIUSUKUNUQUMVEVFTVJVKVNVLBDAERSUJ $.

  ${
    btwnexchand.1 $e |- ( ph -> N e. NN ) $.
    btwnexchand.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
    btwnexchand.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
    btwnexchand.4 $e |- ( ph -> C e. ( EE ` N ) ) $.
    btwnexchand.5 $e |- ( ph -> D e. ( EE ` N ) ) $.
    btwnexchand.6 $e |- ( ( ph /\ ps ) -> B Btwn <. A , C >. ) $.
    btwnexchand.7 $e |- ( ( ph /\ ps ) -> C Btwn <. A , D >. ) $.
    $( Deduction form of ~ btwnexch .  (Contributed by Scott Fenton,
       13-Oct-2013.) $)
    btwnexchand $p |- ( ( ph /\ ps ) -> B Btwn <. A , D >. ) $=
      ( wa cop cbtwn wbr wi wcel cn cee cfv btwnexch syl122anc adantr mp2and )
      ABODCEPQRZECFPZQRZDUIQRZMNAUHUJOUKSZBAGUATCGUBUCZTDUMTEUMTFUMTULHIJKLCDEF
      GUDUEUFUG $.
  $}

  ${
    $d A c u v $.  $d B c u v $.  $d N c u v $.
    $( There is always a ` c ` distinct from ` B ` such that ` B ` lies between
       ` A ` and ` c ` .  Theorem 3.14 of [Schwabhauser] p. 32.  (Contributed
       by Scott Fenton, 24-Sep-2013.) $)
    btwndiff $p |- ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
       E. c e. ( EE ` N ) ( B Btwn <. A , c >. /\ B =/= c ) ) $=
      ( vu vv cn wcel cee cfv w3a cv wne wrex cop wbr wa syl122anc wi mpd cbtwn
      axlowdim1 3ad2ant1 ccgr simp11 simp12 simp13 simp2l axsegcon wceq simpl11
      simp2r weq wb simpl13 simpr simpl2l simpl2r cgrdegen biimp com12 3ad2ant3
      necon3d adantr syld anim2d reximdva 3exp rexlimdvv ) CGHZACIJZHZBVKHZKZEL
      ZFLZMZFVKNEVKNZBADLZOUAPZBVSMZQZDVKNZVJVLVRVMEFCUBUCVNVQWCEFVKVKVNVOVKHZV
      PVKHZQZVQWCVNWFVQKZVTBVSOVOVPOUDPZQZDVKNZWCWGVJVLVMWDWEWJVJVLVMWFVQUEVJVL
      VMWFVQUFVJVLVMWFVQUGVNWDWEVQUHVNWDWEVQULDABVOVPCUIRWGWIWBDVKWGVSVKHZQZWHW
      AVTWLWHBVSUJZEFUMZUNZWAWLVJVMWKWDWEWHWOSVJVLVMWFVQWKUKVJVLVMWFVQWKUOWGWKU
      PWDWEVNVQWKUQWDWEVNVQWKURBVSVOVPCUSRWGWOWASZWKVQVNWPWFWOVQWAWOBVSVOVPWMWN
      UTVCVAVBVDVEVFVGTVHVIT $.
  $}

  ${
    $d A q r $.  $d B q r $.  $d C q r $.  $d D q r $.  $d E q r $.
    $d N q r $.  $d P q r $.
    $( A line segment between two sides of a triange intersects a segment
       crossing from the remaining side to the opposite vertex.  Theorem 3.17
       of [Schwabhauser] p. 33.  (Contributed by Scott Fenton, 24-Sep-2013.) $)
    trisegint $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ P e. ( EE ` N ) ) ) ->
       ( ( B Btwn <. A , C >. /\ E Btwn <. D , C >. /\ P Btwn <. A , D >. ) ->
       E. q e. ( EE ` N ) ( q Btwn <. P , C >. /\ q Btwn <. B , E >. ) ) ) $=
      ( vr wcel w3a cop cbtwn wbr wa wrex 3jca jca sylc 3ad2ant1 cee cfv simpl1
      cn simpl23 simpl21 simpl31 simpl32 simpl33 simpr2 btwncom syl13anc simpr3
      cv mpbid axpasch simp1l1 simp2 simpl22 simp3l simp1r1 simpll1 syl simpll2
      wb simplr simpl3r anim1i btwnexch2 ex anim1d reximdva mpd rexlimdv3a ) GU
      DJZAGUAUBZJZBVPJZCVPJZKZDVPJZFVPJZEVPJZKZKZBACLMNZFDCLMNZEADLMNZKZHUNZECL
      ZMNZWJBFLMNZOZHVPPZWEWIOZIUNZFALMNZWQWKMNZOZIVPPZWOWPVOVSVQWAKZWBWCOZKFCD
      LMNZWHOXAWPVOXBXCVOVTWDWIUCZWPVSVQWAVQVRVSVOWDWIUEZVQVRVSVOWDWIUFZWAWBWCV
      OVTWIUGZQWPWBWCWAWBWCVOVTWIUHZWAWBWCVOVTWIUIZRQWPXDWHWPWGXDWEWFWGWHUJWPVO
      WBWAVSWGXDVEXEXIXHXFFDCGUKULUOWEWFWGWHUMRICADFEGUPSWPWTWOIVPWPWQVPJZWTKZW
      JWQCLMNZWMOZHVPPZWOXLVOWBVSVQKZXKVROZKWRBCALMNZOXOXLVOXPXQVOVTWDWIXKWTUQZ
      XLWBVSVQWPXKWBWTXITWPXKVSWTXFTZWPXKVQWTXGTZQXLXKVRWPXKWTURWPXKVRWTVQVRVSV
      OWDWIUSTZRQXLWRXRWPXKWRWSUTXLWFXRWFWGWHWEXKWTVAXLVOVRVQVSWFXRVEXSYBYAXTBA
      CGUKULUORHFCAWQBGUPSXLXNWNHVPXLWJVPJZOZXMWLWMYDXMWLYDXMOZVOWCXKOZYCVSOZKW
      SXMOWLYEVOYFYGYEWPVOWPXKWTYCXMVBZXEVCYEWCXKYEWPWCYHXJVCWPXKWTYCXMVDRYEYCV
      SXLYCXMVFYEWPVSYHXFVCRQYDWSXMWRWSWPXKYCVGVHEWQWJCGVISVJVKVLVMVNVMVJ $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Segment Transportation
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c TransportTo $.

  $( Declare the syntax for the segment transport function. $)
  ctransport $a class TransportTo $.

  ${
    $d n p q r x $.
    $( Define the segment transport function.  See ~ fvtransport for an
       explanation of the function.  (Contributed by Scott Fenton,
       18-Oct-2013.) $)
    df-transport $a |- TransportTo =
       { <. <. p , q >. , x >. |
         E. n e. NN ( ( p e. ( ( EE ` n ) X. ( EE ` n ) ) /\
                        q e. ( ( EE ` n ) X. ( EE ` n ) ) /\
                        ( 1st ` q ) =/= ( 2nd ` q ) ) /\
                      x = ( iota_ r e. ( EE ` n )
                        ( ( 2nd ` q ) Btwn <. ( 1st ` q ) , r >. /\
                        <. ( 2nd ` q ) , r >. Cgr p ) ) ) } $.
  $}

  ${
    $d m n p q r x y $.
    $( The ` TransportTo ` relationship is a function.  (Contributed by Scott
       Fenton, 18-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    funtransport $p |- Fun TransportTo $=
      ( vp vn vq vx vr vm vy ctransport wfun cv cee cfv cxp wcel c1st w3a wa cn
      wceq wrex c2nd wne cop cbtwn wbr ccgr crio coprab wmo weq wi reeanv simp1
      anim12i anim1i an4s xp1st axdimuniq fveq2 riotaeqdv eqeq2d anbi2d syl6bir
      wal eqtr3 syl ex syl2ani impd syl5 rexlimivv sylbir eqeq1 rexbidv sqxpeqd
      gen2 eleq2d 3anbi12d anbi12d cbvrexv syl6bb mo4 mpbir df-transport funeqi
      funoprab ) HIAJZBJZKLZWIMZNZCJZWJNZWLOLZWLUALZUBZPZDJZWOWNEJZUCUDUEWOWSUC
      WGUFUEQZEWIUGZSZQZBRTZACDUHZIXDACDXDDUIXDWGFJZKLZXGMZNZWLXHNZWPPZGJZWTEXG
      UGZSZQZFRTZQZDGUJZUKZGVDDVDXSDGXQXCXOQZFRTBRTXRXCXOBFRRULXTXRBFRRXTWKXIQZ
      XBXNQZQZWHRNZXFRNZQZXRWQXKXBXNYCWQXKQYAYBWQWKXKXIWKWMWPUMXIXJWPUMUNUOUPYF
      YAYBXRWKYFWGOLZWINZYGXGNZYBXRUKZXIWGWIWIUQWGXGXGUQYFYHYIQYJYDYHYEYIYJYDYH
      QYEYIQQBFUJZYJYGXFWHURYKYBXBXLXASZQXRYKYLXNXBYKXAXMXLYKWTEWIXGWHXFKUSZUTV
      AZVBWRXLXAVEVCVFUPVGVHVIVJVKVLVPXDXPDGXRXDWQYLQZBRTXPXRXCYOBRXRXBYLWQWRXL
      XAVMVBVNYOXOBFRYKWQXKYLXNYKWKXIWMXJWPYKWJXHWGYKWIXGYMVOZVQYKWJXHWLYPVQVRY
      NVSVTWAWBWCWFHXEDBECAWDWEWC $.
  $}

  ${
    $d N n p q r x $.  $d A n p q r x $.  $d B n p q r x $.  $d C n p q r x $.
    $d D n p q r x $.
    $( Calculate the value of the ` TransportTo ` function.  This function
       takes four points, ` A ` through ` D ` , where ` C ` and ` D ` are
       distinct.  It then returns the point that extends ` C D ` by the length
       of ` A B ` .  (Contributed by Scott Fenton, 18-Oct-2013.)  (Revised by
       Mario Carneiro, 19-Apr-2014.) $)
    fvtransport $p |- ( ( N e. NN /\
       ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) /\
         C =/= D ) ) ->
       ( <. A , B >. TransportTo <. C , D >. ) =
       ( iota_ r e. ( EE ` N ) ( D Btwn <. C , r >. /\
         <. D , r >. Cgr <. A , B >. ) ) ) $=
      ( vn cn wcel cfv wa w3a cop ctransport cv cbtwn wbr ccgr wceq cvv cee wne
      vp vq vx co crio df-ov cxp c1st c2nd wrex opelxpi 3ad2ant1 3ad2ant2 simp3
      op1stg op2ndg 3netr4d 3jca opeq1d breq12d breq1d anbi12d riotabidv eqcomd
      fveq2 sqxpeqd eleq2d 3anbi12d riotaeqdv eqeq2d rspcev sylan2 coprab df-br
      jca df-transport eleq2i opex riotaex eleq1 3anbi1d anbi2d rexbidv neeq12d
      wb breq2 3anbi23d eqeq1 eloprabg mp3an wfun wi funtransport funbrfv ax-mp
      3bitri sylbir syl syl5eq ) EHIZAEUAJZIBXCIKZCXCIDXCIKZCDUBZLZKZABMZCDMZNU
      FXIXJMZNJZDCFOZMZPQZDXMMZXIRQZKZFXCUGZXIXJNUHXHXIGOZUAJZYAUIZIZXJYBIZXJUJ
      JZXJUKJZUBZLZXSYFYEXMMZPQZYFXMMZXIRQZKZFYAUGZSZKZGHULZXLXSSZXGXBXIXCXCUIZ
      IZXJYSIZYGLZXSYMFXCUGZSZKZYQXGUUBUUDXGYTUUAYGXDXEYTXFABXCXCUMUNXEXDUUAXFC
      DXCXCUMUOXGCDYEYFXDXEXFUPXEXDYECSXFCDXCXCUQUOZXEXDYFDSXFCDXCXCURUOZUSUTXG
      UUCXSXGYMXRFXCXGYJXOYLXQXGYFDYIXNPUUGXGYECXMUUFVAVBXGYKXPXIRXGYFDXMUUGVAV
      CVDVEVFVQYPUUEGEHXTESZYHUUBYOUUDUUHYCYTYDUUAYGUUHYBYSXIUUHYAXCXTEUAVGZVHZ
      VIUUHYBYSXJUUJVIVJUUHYNUUCXSUUHYMFYAXCUUIVKVLVDVMVNYQXKXSNQZYRUUKXKXSMZNI
      UULUCOZYBIZUDOZYBIZUUOUJJZUUOUKJZUBZLZUEOZUURUUQXMMZPQZUURXMMZUUMRQZKZFYA
      UGZSZKZGHULZUCUDUEVOZIZYQXKXSNVPNUVKUULUEGFUDUCVRVSXITIXJTIXSTIUVLYQWGABV
      TCDVTXRFXCWAUVJYCUUPUUSLZUVAUVCUVDXIRQZKZFYAUGZSZKZGHULYHUVAYNSZKZGHULYQU
      CUDUEXIXJXSTTTUUMXISZUVIUVRGHUWAUUTUVMUVHUVQUWAUUNYCUUPUUSUUMXIYBWBWCUWAU
      VGUVPUVAUWAUVFUVOFYAUWAUVEUVNUVCUUMXIUVDRWHWDVEVLVDWEUUOXJSZUVRUVTGHUWBUV
      MYHUVQUVSUWBUUPYDUUSYGYCUUOXJYBWBUWBUUQYEUURYFUUOXJUJVGZUUOXJUKVGZWFWIUWB
      UVPYNUVAUWBUVOYMFYAUWBUVCYJUVNYLUWBUURYFUVBYIPUWDUWBUUQYEXMUWCVAVBUWBUVDY
      KXIRUWBUURYFXMUWDVAVCVDVEVLVDWEUVAXSSZUVTYPGHUWEUVSYOYHUVAXSYNWJWDWEWKWLW
      RNWMUUKYRWNWOXKXSNWPWQWSWTXA $.
  $}

  ${
    $d N r $.  $d A r $.  $d B r $.  $d C r $.  $d D r $.
    $( Closure law for segment transport.  (Contributed by Scott Fenton,
       19-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    transportcl $p |- ( ( N e. NN /\
       ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) /\
         C =/= D ) ) ->
       ( <. A , B >. TransportTo <. C , D >. ) e. ( EE ` N ) ) $=
      ( vr cn wcel cee cfv wa wne w3a cop ctransport co cv cbtwn wbr ccgr crio
      fvtransport wreu segconeu riotacl syl eqeltrd ) EGHAEIJZHBUHHKCUHHDUHHKCD
      LMKZABNZCDNOPDCFQZNRSDUKNUJTSKZFUHUAZUHABCDEFUBUIULFUHUCUMUHHABCDEFUDULFU
      HUEUFUG $.

    $( Calculate the defining properties of the transport function.
       (Contributed by Scott Fenton, 19-Oct-2013.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    transportprops $p |- ( ( N e. NN /\
       ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) /\
         C =/= D ) ) ->
         ( D Btwn <. C , ( <. A , B >. TransportTo <. C , D >. ) >. /\
           <. D , ( <. A , B >. TransportTo <. C , D >. ) >. Cgr
           <. A , B >. ) ) $=
      ( vr cn wcel cee cfv wa wne w3a cop ctransport cbtwn wbr ccgr wceq opeq2
      co cv crio fvtransport eqcomd wreu wb transportcl segconeu breq2d anbi12d
      breq1d riota2 syl2anc mpbird ) EGHAEIJZHBUPHKCUPHDUPHKCDLMKZDCABNZCDNOUAZ
      NZPQZDUSNZURRQZKZDCFUBZNZPQZDVENZURRQZKZFUPUCZUSSZUQUSVKABCDEFUDUEUQUSUPH
      VJFUPUFVDVLUGABCDEUHABCDEFUIVJVDFUPUSVEUSSZVGVAVIVCVMVFUTDPVEUSCTUJVMVHVB
      URRVEUSDTULUKUMUNUO $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Properties relating betweenness and congruence
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c InnerFiveSeg Cgr3 Colinear FiveSeg $.

  $( Declare the syntax for the inner five segment predicate. $)
  cifs $a class InnerFiveSeg $.

  $( Declare the syntax for the three place congruence predicate. $)
  ccgr3 $a class Cgr3 $.

  $( Declare the syntax for the colinearity predicate. $)
  ccolin $a class Colinear $.

  $( Declare the syntax for the five segment predicate. $)
  cfs $a class FiveSeg $.

  ${
    $d a b c n $.
    $( The colinearity predicate states that the three points in its arguments
       sit on one line.  Definition 4.10 of [Schwabhauser] p. 36.  (Contributed
       by Scott Fenton, 25-Oct-2013.) $)
    df-colinear $a |- Colinear = `' { <. <. b , c >. , a >. |
       E. n e. NN ( ( a e. ( EE ` n ) /\ b e. ( EE ` n ) /\ c e. ( EE ` n ) )
         /\
         ( a Btwn <. b , c >. \/ b Btwn <. c , a >. \/
           c Btwn <. a , b >. ) ) } $.
  $}

  ${
    $d a b c d x y z w p q n $.
    $( The inner five segment configuration is an abbreviation for another
       congruence condition.  See ~ brifs and ~ ifscgr for how it is used.
       Definition 4.1 of [Schwabhauser] p. 34.  (Contributed by Scott Fenton,
       26-Sep-2013.) $)
    df-ifs $a |- InnerFiveSeg =
        { <. p , q >. |
           E. n e. NN E. a e. ( EE ` n ) E. b e. ( EE ` n ) E. c e. ( EE ` n )
           E. d e. ( EE ` n ) E. x e. ( EE ` n ) E. y e. ( EE ` n )
           E. z e. ( EE ` n ) E. w e. ( EE ` n ) (
           p = <. <. a , b >. , <. c , d >. >. /\
           q = <. <. x , y >. , <. z , w >. >. /\
           ( ( b Btwn <. a , c >. /\ y Btwn <. x , z >. ) /\
             ( <. a , c >. Cgr <. x , z >. /\
               <. b , c >. Cgr <. y , z >. ) /\
             ( <. a , d >. Cgr <. x , w >. /\
               <. c , d >. Cgr <. z , w >. ) ) ) } $.
  $}

  ${
    $d a b c d e f n p q $.
    $( The three place congruence predicate.  This is an abbreviation for
       saying that all three pair in a triple are congruent with each other.
       Three place form of Definition 4.4 of [Schwabhauser] p. 35.
       (Contributed by Scott Fenton, 4-Oct-2013.) $)
    df-cgr3 $a |- Cgr3 = { <. p , q >. |
       E. n e. NN E. a e. ( EE ` n ) E. b e. ( EE ` n ) E. c e. ( EE ` n )
       E. d e. ( EE ` n ) E. e e. ( EE ` n ) E. f e. ( EE ` n )
       ( p = <. a , <. b , c >. >. /\
       q = <. d , <. e , f >. >. /\
       ( <. a , b >. Cgr <. d , e >. /\ <. a , c >. Cgr <. d , f >. /\
         <. b , c >. Cgr <. e , f >. ) ) } $.
  $}

  ${
    $d a b c d x y z w p q n $.
    $( The general five segment configuration is a generalization of the outer
       and inner five segment configurations.  See ~ brfs and ~ fscgr for its
       use.  Definition 4.15 of [Schwabhauser] p. 37.  (Contributed by Scott
       Fenton, 5-Oct-2013.) $)
    df-fs $a |- FiveSeg =
        { <. p , q >. |
           E. n e. NN E. a e. ( EE ` n ) E. b e. ( EE ` n ) E. c e. ( EE ` n )
           E. d e. ( EE ` n ) E. x e. ( EE ` n ) E. y e. ( EE ` n )
           E. z e. ( EE ` n ) E. w e. ( EE ` n ) (
           p = <. <. a , b >. , <. c , d >. >. /\
           q = <. <. x , y >. , <. z , w >. >. /\
           ( a Colinear <. b , c >. /\
             <. a , <. b , c >. >. Cgr3 <. x , <. y , z >. >. /\
             ( <. a , d >. Cgr <. x , w >. /\
               <. b , d >. Cgr <. y , w >. ) ) ) } $.
  $}

  ${
    $d N a b c d e f g h p q n $.  $d A a b c d e f g h p q n $.
    $d B a b c d e f g h p q n $.  $d C a b c d e f g h p q n $.
    $d D a b c d e f g h p q n $.  $d E a b c d e f g h p q n $.
    $d F a b c d e f g h p q n $.  $d G a b c d e f g h p q n $.
    $d H a b c d e f g h p q n $.
    $( Binary relation form of the inner five segment predicate.  (Contributed
       by Scott Fenton, 26-Sep-2013.) $)
    brifs $p |- ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
        ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ E e. ( EE ` N ) ) /\
        ( F e. ( EE ` N ) /\ G e. ( EE ` N ) /\ H e. ( EE ` N ) ) ) ->
    ( <. <. A , B >. , <. C , D >. >. InnerFiveSeg
      <. <. E , F >. , <. G , H >. >. <-> ( ( B Btwn <. A , C >. /\
                     F Btwn <. E , G >. ) /\
        ( <. A , C >. Cgr <. E , G >. /\
          <. B , C >. Cgr <. F , G >. ) /\
        ( <. A , D >. Cgr <. E , H >. /\
          <. C , D >. Cgr <. G , H >. ) ) ) ) $=
      ( cv cop cbtwn wbr wa ccgr w3a wceq opeq1 breq2d breq1d vb va vc vf ve vg
      vd vh vn vq vp cee cifs cn anbi1d 3anbi123d breq1 anbi2d 3anbi12d anbi12d
      cfv opeq2 3anbi3d fveq2 df-ifs br8 ) UAJZUBJZUCJZKZLMZUDJZUEJZUFJZKZLMZNZ
      VJVOOMZVGVIKZVLVNKZOMZNZVHUGJZKZVMUHJZKZOMZVIWCKZVNWEKZOMZNZPVGAVIKZLMZVP
      NZWLVOOMZWANZAWCKZWFOMZWJNZPBWLLMZVPNZWOBVIKZVTOMZNZWSPBACKZLMZVPNZXEVOOM
      ZBCKZVTOMZNZWRCWCKZWIOMZNZPXGXKADKZWFOMZCDKZWIOMZNZPXFVLEVNKZLMZNZXEXTOMZ
      XJNZXOEWEKZOMZXRNZPXFFXTLMZNZYCXIFVNKZOMZNZYGPXFFEGKZLMZNZXEYMOMZXIFGKZOM
      ZNZYFXQGWEKZOMZNZPYOYSXOEHKZOMZXQGHKZOMZNZPUIABCDUIJZULVAIULVAUMUNUEUDUFU
      HEFGHIUJUKUBUAUCUGVHAQZVQWNWBWPWKWSUUIVKWMVPUUIVJWLVGLVHAVIRZSUOUUIVRWOWA
      UUIVJWLVOOUUJTUOUUIWGWRWJUUIWDWQWFOVHAWCRTUOUPVGBQZWNXAWPXDWSUUKWMWTVPVGB
      WLLUQUOUUKWAXCWOUUKVSXBVTOVGBVIRTURUSVICQZXAXGXDXKWSXNUULWTXFVPUULWLXEBLV
      ICAVBZSUOUULWOXHXCXJUULWLXEVOOUUMTUULXBXIVTOVICBVBTUTUULWJXMWRUULWHXLWIOV
      ICWCRTURUPWCDQZXNXSXGXKUUNWRXPXMXRUUNWQXOWFOWCDAVBTUUNXLXQWIOWCDCVBTUTVCV
      MEQZXGYBXKYDXSYGUUOVPYAXFUUOVOXTVLLVMEVNRZSURUUOXHYCXJUUOVOXTXEOUUPSUOUUO
      XPYFXRUUOWFYEXOOVMEWERSUOUPVLFQZYBYIYDYLYGUUQYAYHXFVLFXTLUQURUUQXJYKYCUUQ
      VTYJXIOVLFVNRSURUSVNGQZYIYOYLYSYGUUBUURYHYNXFUURXTYMFLVNGEVBZSURUURYCYPYK
      YRUURXTYMXEOUUSSUURYJYQXIOVNGFVBSUTUURXRUUAYFUURWIYTXQOVNGWERSURUPWEHQZUU
      BUUGYOYSUUTYFUUDUUAUUFUUTYEUUCXOOWEHEVBSUUTYTUUEXQOWEHGVBSUTVCUUHIULVDUEU
      DUFUHUIUJUKUBUAUCUGVEVF $.
  $}

  ${
    $d A e f $.  $d B e f $.  $d C e f $.  $d D e f $.  $d E e f $.
    $d F e f $.  $d G e f $.  $d H e f $.  $d N e f $.
    $( Inner five segment congruence.  Take two triangles, ` A D C ` and
       ` E H G ` , with ` B ` between ` A ` and ` C ` and ` F ` between ` E `
       and ` G ` .  If the other components of the triangles are congruent,
       then so are ` B D ` and ` F H ` .  Theorem 4.2 of [Schwabhauser] p. 34.
       (Contributed by Scott Fenton, 27-Sep-2013.) $)
    ifscgr $p |- ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
        ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ E e. ( EE ` N ) ) /\
        ( F e. ( EE ` N ) /\ G e. ( EE ` N ) /\ H e. ( EE ` N ) ) ) ->
    ( <. <. A , B >. , <. C , D >. >. InnerFiveSeg
      <. <. E , F >. , <. G , H >. >. -> <. B , D >. Cgr <. F , H >. ) ) $=
      ( wcel w3a cop wbr cbtwn wa ccgr wi jca wb adantr ve vf cn cee cifs brifs
      cfv wceq simp1l simp11 simp13 simp21 axbtwnid syl3anc simp2r simp3r opeq2
      syl5 breq1d opeq1 anbi12d mpan9 simp31 simp32 cgrid2 syl13anc breq2d syl6
      biimprd impd expd mpdd anbi1d 3anbi12d imbi1d syl5ibr wne simp12 btwndiff
      cv simpl11 simpl23 simpl32 simpl21 simpr axsegcon syl122anc anass simplrl
      wrex adantl simplll simpr2l simpllr ad2antrr simplrr cgrcom mpbid simprr3
      cofs 3jca simpl12 simprl simpl22 simprr simpl33 syl333anc sylibrd 5segofs
      ex brofs syland simpr1l simpr1r simpl13 btwnexch3 simpl31 anim12d btwncom
      jca32 imp ad2antrl cgrcomlr bitrd simpr2r cgrcomlrand simpr3r necomd jcad
      a1i syld adantrd syl5bir anassrs rexlimdva mpd com3r pm2.61ine sylbid ) I
      UCJZAIUDUGZJZBUUAJZKZCUUAJZDUUAJZEUUAJZKZFUUAJZGUUAJZHUUAJZKZKZABLCDLZLEF
      LGHLZLUEMBACLZNMZFEGLZNMZOZUUPUURPMZBCLZFGLZPMZOZADLEHLPMZUUNUUOPMZOZKZBD
      LZFHLZPMZABCDEFGHIUFUUMUVIUVLQZQACUUMUVMACUHZBCCLZNMZUUSOZUVOUURPMZUVDOZU
      VHKZUVLQUUMUVTBCUHZUVLUVTUVPUUMUWAUVPUUSUVSUVHUIUUMYTUUCUUEUVPUWAQYTUUBUU
      CUUHUULUJZYTUUBUUCUUHUULUKZUUDUUEUUFUUGUULULZBCIUMUNURUUMUVTUWAUVLUVTUWAO
      BBLZUVCPMZUVJUUOPMZOZUUMUVLUVTUVDUVGOZUWAUWHUVTUVDUVGUVQUVRUVDUVHUOUVQUVS
      UVFUVGUPRUWAUWHUWIUWAUWFUVDUWGUVGUWAUWEUVBUVCPBCBUQUSUWAUVJUUNUUOPBCDUTUS
      VAVIVBUUMUWFUWGUVLUUMUWFFGUHZUWGUVLQUUMYTUUCUUIUUJUWFUWJQUWBUWCUUDUUHUUIU
      UJUUKVCUUDUUHUUIUUJUUKVDZBFGIVEVFUWJUVLUWGUWJUVKUUOUVJPFGHUTVGVIVHVJURVKV
      LUVNUVIUVTUVLUVNUUTUVQUVEUVSUVHUVNUUQUVPUUSUVNUUPUVOBNACCUTZVGVMUVNUVAUVR
      UVDUVNUUPUVOUURPUWLUSVMVNVOVPUUMUVIACVQZUVLUUMUVIUWMUVLUUMCAUAVTZLNMZCUWN
      VQZOZUAUUAWJZUVIUWMOZUVLQZUUMYTUUBUUEUWRUWBYTUUBUUCUUHUULVRUWDACIUAVSUNUU
      MUWQUWTUAUUAUUMUWNUUAJZOZUWQUWSUVLUXBGEUBVTZLNMZGUXCLZCUWNLZPMZOZUBUUAWJZ
      UWQUWSOZUVLQZUXBYTUUGUUJUUEUXAUXIYTUUBUUCUUHUULUXAWAUUEUUFUUGUUDUULUXAWBU
      UIUUJUUKUUDUUHUXAWCUUEUUFUUGUUDUULUXAWDUUMUXAWEUBEGCUWNIWFWGUXBUXHUXKUBUU
      AUUMUXAUXCUUAJZUXHUXKQUUMUXAUXLOZOZUXHUXJUVLUXHUXJOUXHUWQOZUWSOZUXNUVLUXH
      UWQUWSWHUXPUXOUVIOZUWMOZUXNUVLUXOUVIUWMWHUXNUXRUWNDLZUXCHLZPMZUVLUXNUXQUU
      PUXSLUURUXTLWTMZUWMUYAUXNUXQUWOUXDOZUVAUXFUXEPMZOZUVHKZUYBUXNUXQUYFUXNUXQ
      OZUYCUYEUVHUYGUWOUXDUXQUWOUXNUXHUWOUWPUVIWIZWKUXQUXDUXNUXDUXGUWQUVIWLZWKR
      UYGUVAUYDUXQUVAUXNUVAUVDUUTUVHUXOWMWKUYGUXGUYDUXQUXGUXNUXDUXGUWQUVIWNZWKU
      YGYTUUJUXLUUEUXAUXGUYDSZUUMYTUXMUXQUWBWOUUMUUJUXMUXQUWKWOUUMUXAUXLUXQWPUU
      MUUEUXMUXQUWDWOUUMUXAUXLUXQWIGUXCCUWNIWQZWGWRRUUTUVEUVHUXOUXNWSXAXJUXNYTU
      UBUUEUXAUUFUUGUUJUXLUUKUYBUYFSYTUUBUUCUUHUULUXMWAZYTUUBUUCUUHUULUXMXBZUUE
      UUFUUGUUDUULUXMWDZUUMUXAUXLXCZUUEUUFUUGUUDUULUXMXDZUUEUUFUUGUUDUULUXMWBZU
      UIUUJUUKUUDUUHUXMWCZUUMUXAUXLXEZUUIUUJUUKUUDUUHUXMXFZACUWNDEGUXCHIXKXGXHU
      XNYTUUBUUEUXAUUFUUGUUJUXLUUKUYBUWMOUYAQUYMUYNUYOUYPUYQUYRUYSUYTVUAACUWNDE
      GUXCHIXIXGXLUXNUXQUYAUVLQUWMUXNUXQUYAUVLUXNUXQUYAOZUWNCLZUVJLUXCGLZUVKLWT
      MZUWNCVQZOZUVLUXNVUBVUEVUFUXNVUBCUWNBLNMZGUXCFLNMZOZVUCVUDPMZCBLGFLPMZOZU
      YAUVGOZKZVUEUXNVUBVUOUXNVUBOZVUJVUMVUNVUPCBUWNLNMZGFUXCLNMZOZVUJUXNVUBVUS
      VUBUUQUWOOZUUSUXDOZOUXNVUSVUBVUTUUSUXDVUBUUQUWOUXQUUQUYAUUQUUSUVEUVHUXOXM
      TUXQUWOUYAUYHTRUXQUUSUYAUUQUUSUVEUVHUXOXNTUXQUXDUYAUYITXTUXNVUTVUQVVAVURU
      XNYTUUBUUCUUEUXAVUTVUQQUYMUYNYTUUBUUCUUHUULUXMXOZUYOUYPABCUWNIXPWGUXNYTUU
      GUUIUUJUXLVVAVURQUYMUYRUUIUUJUUKUUDUUHUXMXQZUYSUYTEFGUXCIXPWGXRURYAUXNVUS
      VUJSVUBUXNVUQVUHVURVUIUXNYTUUEUUCUXAVUQVUHSUYMUYOVVBUYPCBUWNIXSVFUXNYTUUJ
      UUIUXLVURVUISUYMUYSVVCUYTGFUXCIXSVFVATWRVUPVUKVULVUPUXGVUKUXQUXGUXNUYAUYJ
      YBUXNUXGVUKSVUBUXNUXGUYDVUKUXNYTUUJUXLUUEUXAUYKUYMUYSUYTUYOUYPUYLWGUXNYTU
      UEUXAUUJUXLUYDVUKSUYMUYOUYPUYSUYTCUWNGUXCIYCWGYDTWRUXNVUBBCFGIUYMVVBUYOVV
      CUYSUXQUVDUXNUYAUVAUVDUUTUVHUXOYEYBYFRVUPUYAUVGUXNUXQUYAXEUXQUVGUXNUYAUVF
      UVGUUTUVEUXOYGYBRXAXJUXNYTUXAUUEUUCUUFUXLUUJUUIUUKVUEVUOSUYMUYPUYOVVBUYQU
      YTUYSVVCVUAUWNCBDUXCGFHIXKXGXHVUBVUFQUXNVUBCUWNUXQUWPUYAUXHUWOUWPUVIWPTYH
      YJYIUXNYTUXAUUEUUCUUFUXLUUJUUIUUKVUGUVLQUYMUYPUYOVVBUYQUYTUYSVVCVUAUWNCBD
      UXCGFHIXIXGYKVKYLVLYMYMVKYNYOYPVKYOYPVKYQYRYS $.
  $}

  $( Removing identical parts from the end of a line segment preserves
     congruence.  Theorem 4.3 of [Schwabhauser] p. 35.  (Contributed by Scott
     Fenton, 4-Oct-2013.) $)
  cgrsub $p |- ( ( N e. NN /\
         ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
         ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
         ( ( ( B Btwn <. A , C >. /\ E Btwn <. D , F >. ) /\
             ( <. A , C >. Cgr <. D , F >. /\ <. B , C >. Cgr <. E , F >. ) )
           -> <. A , B >. Cgr <. D , E >. ) ) $=
    ( cn wcel cee w3a cop cbtwn wbr wa ccgr wb cgrcomlr syl122anc mpbid simpl21
    cfv simprl simprr simpl1 simpl31 cgrtriv syl3anc simprrl simpl23 simpl33 wi
    jca simpl22 simpl32 cifs brifs ifscgr sylbird syl333anc mp3and ex ) GHIZAGJ
    UBZIZBVDIZCVDIZKZDVDIZEVDIZFVDIZKZKZBACLZMNEDFLZMNOZVNVOPNZBCLEFLPNZOZOZABL
    ZDELZPNZVMVTOZBALEDLPNZWCWDVPVSAALDDLPNZCALZFDLZPNZOZWEVMVPVSUCVMVPVSUDWDWF
    WIWDVCVEVIWFVCVHVLVTUEZVEVFVGVCVLVTUAZVIVJVKVCVHVTUFZADGUGUHWDVQWIVMVPVQVRU
    IWDVCVEVGVIVKVQWIQWKWLVEVFVGVCVLVTUJZWMVIVJVKVCVHVTUKZACDFGRSTUMWDVCVEVFVGV
    EVIVJVKVIVPVSWJKZWEULWKWLVEVFVGVCVLVTUNZWNWLWMVIVJVKVCVHVTUOZWOWMVCVEVFKVGV
    EVIKVJVKVIKKWPWAWGLWBWHLUPNWEABCADEFDGUQABCADEFDGURUSUTVAWDVCVFVEVJVIWEWCQW
    KWQWLWRWMBAEDGRSTVB $.

  ${
    $d A a b c d e f n p q $.  $d B a b c d e f n p q $.
    $d C a b c d e f n p q $.  $d D a b c d e f n p q $.
    $d E a b c d e f n p q $.  $d F a b c d e f n p q $.
    $d N a b c d e f n p q $.
    $( Binary relation form of the three-place congruence predicate.
       (Contributed by Scott Fenton, 4-Oct-2013.) $)
    brcgr3 $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
       ( <. A , <. B , C >. >. Cgr3 <. D , <. E , F >. >. <->
         ( <. A , B >. Cgr <. D , E >. /\ <. A , C >. Cgr <. D , F >. /\
           <. B , C >. Cgr <. E , F >. ) ) ) $=
      ( va vb vd cv cop ccgr wbr w3a wceq opeq1 breq1d opeq2 breq2d ve vc vf vn
      vq vp cee cfv ccgr3 cn 3anbi12d 3anbi13d 3anbi23d fveq2 df-cgr3 br6 ) HKZ
      IKZLZJKZUAKZLZMNZUQUBKZLZUTUCKZLZMNZURVDLZVAVFLZMNZOAURLZVBMNZAVDLZVGMNZV
      KOABLZVBMNZVOBVDLZVJMNZOVQACLZVGMNZBCLZVJMNZOVPDVALZMNZVTDVFLZMNZWCOVPDEL
      ZMNZWGWBEVFLZMNZOWIVTDFLZMNZWBEFLZMNZOUDABCDUDKZUGUHGUGUHUIUJUAUCEFGUEUFH
      IUBJUQAPZVCVMVHVOVKWQUSVLVBMUQAURQRWQVEVNVGMUQAVDQRUKURBPZVMVQVKVSVOWRVLV
      PVBMURBASRWRVIVRVJMURBVDQRULVDCPZVOWAVSWCVQWSVNVTVGMVDCASRWSVRWBVJMVDCBSR
      UMUTDPZVQWEWAWGWCWTVBWDVPMUTDVAQTWTVGWFVTMUTDVFQTUKVAEPZWEWIWCWKWGXAWDWHV
      PMVAEDSTXAVJWJWBMVAEVFQTULVFFPZWGWMWKWOWIXBWFWLVTMVFFDSTXBWJWNWBMVFFESTUM
      WPGUGUNUAUCUDUEUFHIUBJUOUP $.
  $}

  $( Permutation law for three-place congruence.  (Contributed by Scott Fenton,
     5-Oct-2013.) $)
  cgr3permute3 $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
       ( <. A , <. B , C >. >. Cgr3 <. D , <. E , F >. >. <->
         <. B , <. C , A >. >. Cgr3 <. E , <. F , D >. >. ) ) $=
    ( wcel w3a cop ccgr wbr ccgr3 wa wb 3simpa cgrcomlr syl3an 3simpb 3anrot cn
    cee cfv id 3anbi12d syl6bbr brcgr3 biid syl3anb 3bitr4d ) GUAHZAGUBUCZHZBUL
    HZCULHZIZDULHZEULHZFULHZIZIZABJDEJKLZACJDFJKLZBCJZEFJZKLZIZVFBAJEDJKLZCAJZF
    DJZKLZIZAVDJDVEJMLBVIJEVJJMLZVAVGVHVKVFIVLVAVBVHVCVKVFUKUKUPUMUNNUTUQURNVBV
    HOUKUDZUMUNUOPUQURUSPABDEGQRUKUKUPUMUONUTUQUSNVCVKOVNUMUNUOSUQURUSSACDFGQRU
    EVFVHVKTUFABCDEFGUGUKUKUPUNUOUMIUTURUSUQIVMVLOUKUHUMUNUOTUQURUSTBCAEFDGUGUI
    UJ $.

  $( Permutation law for three-place congruence.  (Contributed by Scott Fenton,
     5-Oct-2013.) $)
  cgr3permute1 $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
       ( <. A , <. B , C >. >. Cgr3 <. D , <. E , F >. >. <->
         <. A , <. C , B >. >. Cgr3 <. D , <. F , E >. >. ) ) $=
    ( cn wcel cee w3a cop ccgr wbr ccgr3 wa wb 3simpc brcgr3 3ancomb cfv syl3an
    id cgrcomlr 3anbi3d 3ancoma syl6bb biid syl3anb 3bitr4d ) GHIZAGJUAZIZBULIZ
    CULIZKZDULIZEULIZFULIZKZKZABLDELMNZACLDFLMNZBCLZEFLZMNZKZVCVBCBLZFELZMNZKZA
    VDLDVELONAVHLDVILONZVAVGVBVCVJKVKVAVFVJVBVCUKUKUPUNUOPUTURUSPVFVJQUKUCUMUNU
    ORUQURUSRBCEFGUDUBUEVBVCVJUFUGABCDEFGSUKUKUPUMUOUNKUTUQUSURKVLVKQUKUHUMUNUO
    TUQURUSTACBDFEGSUIUJ $.

  $( Permutation law for three-place congruence.  (Contributed by Scott Fenton,
     5-Oct-2013.) $)
  cgr3permute2 $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
       ( <. A , <. B , C >. >. Cgr3 <. D , <. E , F >. >. <->
         <. B , <. A , C >. >. Cgr3 <. E , <. D , F >. >. ) ) $=
    ( cn wcel cee cfv w3a cop ccgr3 wbr cgr3permute3 biid 3anrot cgr3permute1
    wb syl3anb bitrd ) GHIZAGJKZIZBUDIZCUDIZLZDUDIZEUDIZFUDIZLZLABCMMDEFMMNOBCA
    MMEFDMMNOZBACMMEDFMMNOZABCDEFGPUCUCUHUFUGUELULUJUKUILUMUNTUCQUEUFUGRUIUJUKR
    BCAEFDGSUAUB $.

  $( Permutation law for three-place congruence.  (Contributed by Scott Fenton,
     5-Oct-2013.) $)
  cgr3permute4 $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
       ( <. A , <. B , C >. >. Cgr3 <. D , <. E , F >. >. <->
         <. C , <. A , B >. >. Cgr3 <. F , <. D , E >. >. ) ) $=
    ( cn wcel cee cfv w3a cop ccgr3 wbr cgr3permute3 wb biid 3anrot syl3anb
    bitrd ) GHIZAGJKZIZBUCIZCUCIZLZDUCIZEUCIZFUCIZLZLABCMMDEFMMNOBCAMMEFDMMNOZC
    ABMMFDEMMNOZABCDEFGPUBUBUGUEUFUDLUKUIUJUHLULUMQUBRUDUEUFSUHUIUJSBCAEFDGPTUA
    $.

  $( Permutation law for three-place congruence.  (Contributed by Scott Fenton,
     5-Oct-2013.) $)
  cgr3permute5 $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
       ( <. A , <. B , C >. >. Cgr3 <. D , <. E , F >. >. <->
         <. C , <. B , A >. >. Cgr3 <. F , <. E , D >. >. ) ) $=
    ( cn wcel cee cfv w3a cop ccgr3 wbr cgr3permute3 biid 3anrot cgr3permute2
    wb syl3anb bitrd ) GHIZAGJKZIZBUDIZCUDIZLZDUDIZEUDIZFUDIZLZLABCMMDEFMMNOBCA
    MMEFDMMNOZCBAMMFEDMMNOZABCDEFGPUCUCUHUFUGUELULUJUKUILUMUNTUCQUEUFUGRUIUJUKR
    BCAEFDGSUAUB $.

  $( Transitivity law for three-place congruence.  (Contributed by Scott
     Fenton, 5-Oct-2013.) $)
  cgr3tr4 $p |- ( ( N e. NN /\
    ( ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
      ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) /\
      ( G e. ( EE ` N ) /\ H e. ( EE ` N ) /\ I e. ( EE ` N ) ) ) ) ->
    ( ( <. A , <. B , C >. >. Cgr3 <. D , <. E , F >. >. /\
        <. A , <. B , C >. >. Cgr3 <. G , <. H , I >. >. ) ->
      <. D , <. E , F >. >. Cgr3 <. G , <. H , I >. >. ) ) $=
    ( wcel w3a wa cop ccgr wbr ccgr3 wi axcgrtr syl133anc cn cee cfv 3an6 simpl
    simpr11 simpr12 simpr21 simpr22 simpr31 simpr32 simpr13 3anim123d wb brcgr3
    simpr23 simpr33 syl5bir 3adant3r3 3adant3r2 anbi12d 3adant3r1 3imtr4d ) JUA
    KZAJUBUCZKZBVEKZCVEKZLZDVEKZEVEKZFVEKZLZGVEKZHVEKZIVEKZLZLZMZABNZDENZOPZACN
    ZDFNZOPZBCNZEFNZOPZLZVTGHNZOPZWCGINZOPZWFHINZOPZLZMZWAWJOPZWDWLOPZWGWNOPZLZ
    AWFNZDWGNZQPZXBGWNNZQPZMXCXEQPZWQWBWKMZWEWMMZWHWOMZLVSXAWBWKWEWMWHWOUDVSXHW
    RXIWSXJWTVSVDVFVGVJVKVNVOXHWRRVDVRUEZVFVGVHVMVQVDUFZVFVGVHVMVQVDUGZVJVKVLVI
    VQVDUHZVJVKVLVIVQVDUIZVNVOVPVIVMVDUJZVNVOVPVIVMVDUKZABDEGHJSTVSVDVFVHVJVLVN
    VPXIWSRXKXLVFVGVHVMVQVDULZXNVJVKVLVIVQVDUPZXPVNVOVPVIVMVDUQZACDFGIJSTVSVDVG
    VHVKVLVOVPXJWTRXKXMXRXOXSXQXTBCEFHIJSTUMURVSXDWIXFWPVDVIVMXDWIUNVQABCDEFJUO
    USVDVIVQXFWPUNVMABCGHIJUOUTVAVDVMVQXGXAUNVIDEFGHIJUOVBVC $.

  $( Commutativity law for three-place congruence.  (Contributed by Scott
     Fenton, 5-Oct-2013.) $)
  cgr3com $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
       ( <. A , <. B , C >. >. Cgr3 <. D , <. E , F >. >. <->
         <. D , <. E , F >. >. Cgr3 <. A , <. B , C >. >. ) ) $=
    ( wcel w3a cop ccgr wbr ccgr3 wa wb 3simpa cgrcom syl3an 3simpb 3simpc cee
    cn cfv id 3anbi123d brcgr3 3com23 3bitr4d ) GUBHZAGUAUCZHZBUJHZCUJHZIZDUJHZ
    EUJHZFUJHZIZIZABJZDEJZKLZACJZDFJZKLZBCJZEFJZKLZIVAUTKLZVDVCKLZVGVFKLZIZAVFJ
    ZDVGJZMLVNVMMLZUSVBVIVEVJVHVKUIUIUNUKULNURUOUPNVBVIOUIUDZUKULUMPUOUPUQPABDE
    GQRUIUIUNUKUMNURUOUQNVEVJOVPUKULUMSUOUPUQSACDFGQRUIUIUNULUMNURUPUQNVHVKOVPU
    KULUMTUOUPUQTBCEFGQRUEABCDEFGUFUIURUNVOVLODEFABCGUFUGUH $.

  $( Identity law for three-place congruence.  (Contributed by Scott Fenton,
     6-Oct-2013.) $)
  cgr3rflx $p |- ( ( N e. NN /\
    ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
    <. A , <. B , C >. >. Cgr3 <. A , <. B , C >. >. ) $=
    ( cn wcel cee cfv w3a wa cop wbr ccgr cgrrflx 3adant3r3 3adant3r2 3adant3r1
    ccgr3 wb brcgr3 3anidm23 mpbir3and ) DEFZADGHZFZBUDFZCUDFZIZJABCKZKZUJRLZAB
    KZULMLZACKZUNMLZUIUIMLZUCUEUFUMUGABDNOUCUEUGUOUFACDNPUCUFUGUPUEBCDNQUCUHUKU
    MUOUPISABCABCDTUAUB $.

  ${
    $d A e f g $.  $d B e f g $.  $d C e f g $.  $d D e f g $.  $d F e f g $.
    $d N e f g $.
    $( A line segment can be divided at the same place as a congruent line
       segment is divided.  Theorem 4.5 of [Schwabhauser] p. 35.  (Contributed
       by Scott Fenton, 4-Oct-2013.) $)
    cgrxfr $p |- ( ( N e. NN /\
            ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
            ( D e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
            ( ( B Btwn <. A , C >. /\ <. A , C >. Cgr <. D , F >. ) ->
              E. e e. ( EE ` N ) ( e Btwn <. D , F >. /\
               <. A , <. B , C >. >. Cgr3 <. D , <. e , F >. >. ) ) ) $=
      ( vg vf wcel w3a wa cop cbtwn wbr ccgr wrex simpl1 wi ad2antrl cn cee cfv
      ccgr3 wne simpl3r simpl3l btwndiff syl3anc simpr simpl21 simpl22 axsegcon
      cv syl122anc adantr anass simprl simprr simpl23 df-3an anbi2i bitr4i wceq
      simplrr necomd simpr1 simpr2 simpr3 btwnexchand btwnexch3and cgrextendand
      simprrl simplll simprrr jca simplrl btwncomand simpllr cgrcomand segconeq
      3jca ex syl133anc syld opeq2 breq2d breq1d anbi12d biimpa simpl btwnexch3
      imp syl2ani adantl wb brcgr3 mpbir3and expr syl5 expcomd mpd sylanb an32s
      impr rexlimdva reximdva ) GUAJZAGUBUCZJZBXIJZCXIJZKZDXIJZFXIJZLZKZBACMZNO
      ZXRDFMZPOZLZEUNZXTNOZABCMZMDYCFMZMUDOZLZEXIQZXQYBLZDFHUNZMNOZDYKUEZLZHXIQ
      ZYIYJXHXOXNYOXHXMXPYBRXNXOXHXMYBUFXNXOXHXMYBUGFDGHUHUIYJYNYIHXIXQYKXIJZYB
      YNYISXQYPLZYBYNYIYQYBYNLZLZDYKYCMNOZDYCMZABMZPOZLZEXIQZYIYQUUEYRYQXHYPXNX
      JXKUUEXHXMXPYPRXQYPUJXNXOXHXMYPUGXJXKXLXHXPYPUKXJXKXLXHXPYPULEYKDABGUMUOU
      PYSUUDYHEXIYQYCXIJZYRUUDYHSZYQUUFLXQYPUUFLZLZYRUUGXQYPUUFUQUUIYRUUDYHUUIY
      RUUDLZLZYCYKIUNZMZNOZYCUULMZYEPOZLZIXIQZYHUUIUURUUJUUIXHYPUUFXKXLUURXHXMX
      PUUHRXQYPUUFURXQYPUUFUSXJXKXLXHXPUUHULXJXKXLXHXPUUHUTIYKYCBCGUMUOUPUUKUUQ
      YHIXIUUIUULXIJZUUJUUQYHSZUUIUUSLZXQYPUUFUUSKZLZUUJUUTUVAXQUUHUUSLZLUVCXQU
      UHUUSUQUVBUVDXQYPUUFUUSVAVBVCUVCUUJUUQYHUVCUUJUUQLZLZUULFVDZYHUVCUVEUVGUV
      CUVEYKDUEZDUUMNOZDUULMXRPOZLZDYKFMZNOZXTXRPOZLZKZUVGUVCUVEUVPUVFUVHUVKUVO
      UVFDYKUUJYMUVCUUQYBYLYMUUDVETVFUVFUVIUVJUVCUVEYKDYCUULGXHXMXPUVBRZXQYPUUF
      UUSVGZXNXOXHXMUVBUGZXQYPUUFUUSVHZXQYPUUFUUSVIZUUJYTUVCUUQYRYTUUCURZTZUVCU
      UJUUNUUPVMZVJUVCUVEDYCUULABCGUVQUVSUVTUWAXJXKXLXHXPUVBUKZXJXKXLXHXPUVBULZ
      XJXKXLXHXPUVBUTZUVCUVEYKDYCUULGUVQUVRUVSUVTUWAUWCUWDVKUUJXSUVCUUQXSYAYNUU
      DVNTUUJUUCUVCUUQYRYTUUCUSTUVCUUJUUNUUPVOVLVPUVFUVMUVNUVCUVEDFYKGUVQUVSXNX
      OXHXMUVBUFZUVRUUJYLUVCUUQYBYLYMUUDVQTVRUVCUVEACDFGUVQUWEUWGUVSUWHUUJYAUVC
      UUQXSYAYNUUDVSZTVTVPWBWCUVCXHXNXJXLYPUUSXOUVPUVGSUVQUVSUWEUWGUVRUWAUWHDAC
      YKGUULFWAWDWEWMUVCUUJUUQUVGYHSUVCUUJLZUVGUUQYHUVGUUQLYCUVLNOZYFYEPOZLZUWJ
      YHUVGUUQUWMUVGUUNUWKUUPUWLUVGUUMUVLYCNUULFYKWFWGUVGUUOYFYEPUULFYCWFWHWIWJ
      UVCUUJUWMYHUVCUUJUWMLZLZYDYGUVCUWNYDUUJUVCYTUWKYDUWMUWBUWKUWLWKUVCXHYPXNU
      UFXOYTUWKLYDSUVQUVRUVSUVTUWHYKDYCFGWLUOWNWMUWOYGUUBUUAPOZYAYEYFPOZUVCUWND
      YCABGUVQUVSUVTUWEUWFUWNUUCUVCYRYTUUCUWMVEWOVTUUJYAUVCUWMUWITUVCUWNYCFBCGU
      VQUVTUWHUWFUWGUVCUUJUWKUWLVOVTUVCYGUWPYAUWQKWPZUWNUVCXHXJXKXLXNUUFXOUWRUV
      QUWEUWFUWGUVSUVTUWHABCDYCFGWQWDUPWRVPWSWTXAXEXBWSXCXDXFXBWSXCXDXGXBWSXDXF
      XBWC $.
  $}

  ${
    $d N e $.  $d A e $.  $d B e $.  $d C e $.  $d D e $.  $d E e $.  $d F e $.
    $( A condition for extending betweenness to a new set of points based on
       congruence with another set of points.  Theorem 4.6 of [Schwabhauser]
       p. 36.  (Contributed by Scott Fenton, 4-Oct-2013.) $)
    btwnxfr $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
       ( ( B Btwn <. A , C >. /\
           <. A , <. B , C >. >. Cgr3 <. D , <. E , F >. >. ) ->
         E Btwn <. D , F >. ) ) $=
      ( ve wcel w3a cop cbtwn wbr ccgr3 wa ccgr wi imp jca simpr cn cee cv wrex
      cfv brcgr3 simp2 syl6bi simp21 simp22 simp23 simp31 simp33 cgrxfr sylan2d
      simp1 syl132anc wceq simprrl simpl1 simpl31 cgrrflxd adantr simpl2 simpl3
      simpl33 3jca cgr3tr4 wb cgr3com syl113anc simpl32 syl133anc simpr1 simpr3
      syl13anc cgrcomlrand ex sylbid syld syl2ani cifs ifscgr sylbird syl333anc
      brifs cgrid2 eqbrtrrd expr an32s rexlimdva mpd ) GUAIZAGUBUEZIZBWNIZCWNIZ
      JZDWNIZEWNIZFWNIZJZJZBACKZLMZABCKZKZDEFKZKZNMZOZEDFKZLMZXCXKOZHUCZXLLMZXG
      DXOFKZKZNMZOZHWNUDZXMXCXKYAXCXJXDXLPMZXEYAXCXJABKDEKZPMZYBXFXHPMZJYBABCDE
      FGUFYDYBYEUGUHXCWMWOWPWQWSXAXEYBOYAQWMWRXBUPWMWOWPWQXBUIWMWOWPWQXBUJWMWOW
      PWQXBUKWMWRWSWTXAULWMWRWSWTXAUMABCDHFGUNUQUORXNXTXMHWNXCXOWNIZXKXTXMQXCYF
      OZXKXTXMYGXKXTOZOZXOEXLLYGYHXOEURZYGYHXOXOKXOEKPMZYJYGYHXPXPOZXLXLPMZXQXQ
      PMZOZDXOKZYCPMZFXOKZFEKZPMZOZJZYKYGYHUUBYIYLYOUUAYIXPXPYGXKXPXSUSZUUCSYGY
      OYHYGYMYNYGDFGWMWRXBYFUTZWSWTXAWMWRYFVAZWSWTXAWMWRYFVFZVBYGXOFGUUDXCYFTZU
      UFVBSVCYGYHUUAXKYGXJXSUUAXTXEXJTXPXSTYGXJXSOZXIXRNMZUUAYGWMWRXBWSYFXAJUUH
      UUIQUUDWMWRXBYFVDWMWRXBYFVEZYGWSYFXAUUEUUGUUFVGABCDEFDXOFGVHVPYGUUIXRXINM
      ZUUAYGWMXBWSYFXAUUIUUKVIUUDUUJUUEUUGUUFDEFDXOFGVJVKYGUUKYQYMXQXHPMZJZUUAY
      GWMWSYFXAWSWTXAUUKUUMVIUUDUUEUUGUUFUUEWSWTXAWMWRYFVLZUUFDXOFDEFGUFVMYGUUM
      UUAYGUUMOYQYTYGYQYMUULVNYGUUMXOFEFGUUDUUGUUFUUNUUFYGYQYMUULVOVQSVRVSVSVTW
      ARVGVRYGWMWSYFXAYFWSYFXAWTUUBYKQUUDUUEUUGUUFUUGUUEUUGUUFUUNWMWSYFJXAYFWSJ
      YFXAWTJJUUBYPYRKYPYSKWBMYKDXOFXODXOFEGWFDXOFXODXOFEGWCWDWEVTYGWMYFYFWTYKY
      JQUUDUUGUUGUUNXOXOEGWGVPVTRUUCWHWIWJWKWLVR $.
  $}

  ${
    $d p q r n $.
    $( Colinearity is a relationship.  (Contributed by Scott Fenton,
       7-Nov-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    colinrel $p |- Rel Colinear $=
      ( vp vn vq vr ccolin wrel cv cee cfv wcel w3a cop cbtwn wbr w3o wa coprab
      cn wrex ccnv relcnv df-colinear releqi mpbir ) EFAGZBGHIZJCGZUFJDGZUFJKUE
      UGUHLMNUGUHUELMNUHUEUGLMNOPBRSCDAQZTZFUIUAEUJBACDUBUCUD $.
  $}

  ${
    $d n p $.  $d n q $.  $d n r $.  $d P n $.  $d P p $.  $d p q $.  $d P q $.
    $d p r $.  $d P r $.  $d Q n $.  $d Q p $.  $d Q q $.  $d q r $.  $d Q r $.
    $d R n $.  $d R p $.  $d R q $.  $d R r $.

    $( Alternate colinearity binary relation.  (Contributed by Scott Fenton,
       7-Nov-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    brcolinear2 $p |- ( ( Q e. V /\ R e. W ) ->
        ( P Colinear <. Q , R >. <-> E. n e. NN
          ( ( P e. ( EE ` n ) /\ Q e. ( EE ` n ) /\ R e. ( EE ` n ) ) /\
            ( P Btwn <. Q , R >. \/ Q Btwn <. R , P >. \/
              R Btwn <. P , Q >. ) ) ) ) $=
      ( vp vq vr wcel wa cvv cop ccolin wbr cv w3a cbtwn cn breq2d cee cfv wrex
      w3o wi colinrel brrelexi a1i elex 3ad2ant1 adantr rexlimivw wb ccnv df-br
      coprab df-colinear eleq2i bitri opex opelcnvg mpan2 3ad2ant3 syl5bb eleq1
      wceq 3anbi2d opeq1 breq1 opeq2 3orbi123d anbi12d rexbidv 3anbi3d eloprabg
      3anbi1d bitrd 3expia pm5.21ndd ) BEJZCFJZKZALJZABCMZNOZADPUAUBZJZBWFJZCWF
      JZQZAWDROZBCAMZROZCABMZROZUDZKZDSUCZWEWCUEWBAWDNUFUGUHWRWCUEWBWQWCDSWJWCW
      PWGWHWCWIAWFUIUJUKULUHVTWAWCWEWRUMVTWAWCQZWEWDAMGPZWFJZHPZWFJZIPZWFJZQZWT
      XBXDMZROZXBXDWTMZROZXDWTXBMZROZUDZKZDSUCZHIGUPZJZWRWEAWDMZXPUNZJZWSXQWEXR
      NJXTAWDNUONXSXRDGHIUQURUSWCVTXTXQUMZWAWCWDLJYABCUTAWDLLXPVAVBVCVDXOXAWHXE
      QZWTBXDMZROZBXIROZXDWTBMZROZUDZKZDSUCXAWHWIQZWTWDROZBCWTMZROZCYFROZUDZKZD
      SUCWRHIGBCAEFLXBBVFZXNYIDSYQXFYBXMYHYQXCWHXAXEXBBWFVEVGYQXHYDXJYEXLYGYQXG
      YCWTRXBBXDVHTXBBXIRVIYQXKYFXDRXBBWTVJTVKVLVMXDCVFZYIYPDSYRYBYJYHYOYRXEWIX
      AWHXDCWFVEVNYRYDYKYEYMYGYNYRYCWDWTRXDCBVJTYRXIYLBRXDCWTVHTXDCYFRVIVKVLVMW
      TAVFZYPWQDSYSYJWJYOWPYSXAWGWHWIWTAWFVEVPYSYKWKYMWMYNWOWTAWDRVIYSYLWLBRWTA
      CVJTYSYFWNCRWTABVHTVKVLVMVOVQVRVS $.
  $}

  ${
    $d A n $.  $d B n $.  $d C n $.  $d N n $.
    $( The binary relation form of the colinearity predicate.  (Contributed by
       Scott Fenton, 5-Oct-2013.) $)
    brcolinear $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
       ( A Colinear <. B , C >. <->
         ( A Btwn <. B , C >. \/ B Btwn <. C , A >. \/
           C Btwn <. A , B >. ) ) ) $=
      ( vn cn wcel cee cfv w3a wa cop ccolin wbr cv cbtwn w3o wrex wb eleq2d
      brcolinear2 3adant1 adantl simpr rexlimivw fveq2 3anbi123d anbi1d impbid2
      wceq rspcev expr bitrd ) DFGZADHIZGZBUOGZCUOGZJZKZABCLZMNZAEOZHIZGZBVDGZC
      VDGZJZAVAPNBCALPNCABLPNQZKZEFRZVIUSVBVKSZUNUQURVLUPABCEUOUOUAUBUCUTVKVIVJ
      VIEFVHVIUDUEUNUSVIVKVJUSVIKEDFVCDUJZVHUSVIVMVEUPVFUQVGURVMVDUOAVCDHUFZTVM
      VDUOBVNTVMVDUOCVNTUGUHUKULUIUM $.
  $}

  ${
    $d a b $.  $d a c $.  $d a n $.  $d a x $.  $d b c $.  $d b n $.  $d b x $.
    $d c n $.  $d c x $.  $d n x $.
    $( The colinear predicate exists.  (Contributed by Scott Fenton,
       25-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    colinearex $p |- Colinear e. _V $=
      ( va vn vb vc vx ccolin cv cee cfv wcel cop cbtwn wbr wa cn wrex cxp xpex
      wex opelxpi w3a w3o coprab ccnv cvv df-colinear ciun nnex fvex iunex wceq
      cab 3adant1 simp1 syl2anc adantr reximi eliun sylibr eleq1 biimpar sylan2
      df-oprab exlimiv exlimivv abssi eqsstri ssexi cnvex eqeltri ) FAGZBGZHIZJ
      ZCGZVMJZDGZVMJZUAZVKVOVQKZLMVOVQVKKLMVQVKVOKLMUBZNZBOPZCDAUCZUDUEBACDUFWD
      WDBOVMVMQZVMQZUGZBOWFUHWEVMVMVMVLHUIZWHRWHRUJWDEGZVTVKKZUKZWCNZASZDSCSZEU
      LWGWCCDAEVCWNEWGWMWIWGJZCDWLWOAWCWKWJWGJZWOWCWJWFJZBOPWPWBWQBOVSWQWAVSVTW
      EJZVNWQVPVRWRVNVOVQVMVMTUMVNVPVRUNVTVKWEVMTUOUPUQBWJOWFURUSWKWOWPWIWJWGUT
      VAVBVDVEVFVGVHVIVJ $.
  $}

  ${
    $d A a $.  $d a b $.  $d A b $.  $d a c $.  $d A c $.  $d a n $.  $d A n $.
    $d B a $.  $d B b $.  $d b c $.  $d B c $.  $d b n $.  $d B n $.  $d C a $.
    $d C b $.  $d C c $.  $d c n $.  $d C n $.  $d N n $.  $d V n $.  $d W n $.
    $( If ` A ` is colinear with ` B ` and ` C ` , then ` A ` is in the same
       space as ` B ` .  (Contributed by Scott Fenton, 25-Oct-2013.)  (Revised
       by Mario Carneiro, 19-Apr-2014.) $)
    colineardim1 $p |- (
       ( N e. NN /\ ( A e. V /\ B e. ( EE ` N ) /\ C e. W ) ) ->
       ( A Colinear <. B , C >. ->
       A e. ( EE ` N ) ) ) $=
      ( va vn vb vc cop wbr cv wcel w3a cbtwn w3o wa cn breq2d ccolin wrex ccnv
      cee cfv coprab df-colinear breqi wb simpr1 opex brcnvg sylancl df-br wceq
      eleq1 3anbi2d opeq1 breq1 opeq2 3orbi123d anbi12d rexbidv 3anbi3d 3anbi1d
      eloprabg 3comr adantl simpl simp2 anim2i axdimuniq adantrrl simprrl fveq2
      cvv 3simpa eleq2d syl5ibrcom mpd syl2an exp32 syl7 rexlimdv sylbid syl5bi
      ) ABCKZUALAWGGMZHMZUDUEZNZIMZWJNZJMZWJNZOZWHWLWNKZPLZWLWNWHKZPLZWNWHWLKZP
      LZQZRZHSUBZIJGUFZUCZLZDSNZAENZBDUDUEZNZCFNZOZRZAXKNZAWGUAXGHGIJUGUHXOXHWG
      AXFLZXPXOXJWGVPNXHXQUIXIXJXLXMUJBCUKAWGEVPXFULUMXQWGAKXFNZXOXPWGAXFUNXOXR
      AWJNZBWJNZCWJNZOZAWGPLZBCAKZPLZCABKZPLZQZRZHSUBZXPXNXRYJUIZXIXLXMXJYKXEWK
      XTWOOZWHBWNKZPLZBWSPLZWNWHBKZPLZQZRZHSUBWKXTYAOZWHWGPLZBCWHKZPLZCYPPLZQZR
      ZHSUBYJIJGBCAXKFEWLBUOZXDYSHSUUGWPYLXCYRUUGWMXTWKWOWLBWJUPUQUUGWRYNWTYOXB
      YQUUGWQYMWHPWLBWNURTWLBWSPUSUUGXAYPWNPWLBWHUTTVAVBVCWNCUOZYSUUFHSUUHYLYTY
      RUUEUUHWOYAWKXTWNCWJUPVDUUHYNUUAYOUUCYQUUDUUHYMWGWHPWNCBUTTUUHWSUUBBPWNCW
      HURTWNCYPPUSVAVBVCWHAUOZUUFYIHSUUIYTYBUUEYHUUIWKXSXTYAWHAWJUPVEUUIUUAYCUU
      CYEUUDYGWHAWGPUSUUIUUBYDBPWHACUTTUUIYPYFCPWHABURTVAVBVCVFVGVHXOYIXPHSYIYB
      XOWISNZXPYBYHVIXOUUJYBXPXOXIXLRZUUJXSXTRZRZXPUUJYBRXNXLXIXJXLXMVJVKYBUULU
      UJXSXTYAVQVKUUKUUMRZDWIUOZXPUUKUUJXTUUOXSBWIDVLVMUUNXPUUOXSUUKUUJXSXTVNUU
      OXKWJADWIUDVOVRVSVTWAWBWCWDWEWFWEWF $.
  $}

  $( Permutation law for colinearity.  Part of theorem 4.11 of [Schwabhauser]
     p. 36.  (Contributed by Scott Fenton, 5-Oct-2013.) $)
  colinearperm1 $p |- ( ( N e. NN /\
      ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
      ( A Colinear <. B , C >. <-> A Colinear <. C , B >. ) ) $=
    ( cn wcel cee cfv w3a wa cop cbtwn wbr w3o ccolin btwncom wb 3anrot sylan2b
    brcolinear sylan2br 3orbi123d 3orcomb syl6bb 3ancomb 3bitr4d ) DEFZADGHZFZB
    UHFZCUHFZIZJZABCKZLMZBCAKLMZCABKLMZNZACBKZLMZCBAKLMZBACKLMZNZAUNOMAUSOMZUMU
    RUTVBVANVCUMUOUTUPVBUQVAABCDPULUGUJUKUIIUPVBQUIUJUKRBCADPSULUGUKUIUJIUQVAQU
    KUIUJRCABDPUAUBUTVBVAUCUDABCDTULUGUIUKUJIVDVCQUIUJUKUEACBDTSUF $.

  $( Permutation law for colinearity.  Part of theorem 4.11 of [Schwabhauser]
     p. 36.  (Contributed by Scott Fenton, 5-Oct-2013.) $)
  colinearperm3 $p |- ( ( N e. NN /\
      ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
      ( A Colinear <. B , C >. <-> B Colinear <. C , A >. ) ) $=
    ( cn wcel cee cfv w3a cop cbtwn wbr w3o ccolin 3orrot a1i brcolinear 3anrot
    wa wb sylan2b 3bitr4d ) DEFZADGHZFZBUDFZCUDFZIZSZABCJZKLZBCAJZKLZCABJKLZMZU
    MUNUKMZAUJNLBULNLZUOUPTUIUKUMUNOPABCDQUHUCUFUGUEIUQUPTUEUFUGRBCADQUAUB $.

  $( Permutation law for colinearity.  Part of theorem 4.11 of [Schwabhauser]
     p. 36.  (Contributed by Scott Fenton, 5-Oct-2013.) $)
  colinearperm2 $p |- ( ( N e. NN /\
      ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
      ( A Colinear <. B , C >. <-> B Colinear <. A , C >. ) ) $=
    ( cn wcel cee cfv w3a wa cop ccolin wbr colinearperm3 colinearperm1 sylan2b
    wb 3anrot bitrd ) DEFZADGHZFZBUAFZCUAFZIZJABCKLMBCAKLMZBACKLMZABCDNUETUCUDU
    BIUFUGQUBUCUDRBCADOPS $.

  $( Permutation law for colinearity.  Part of theorem 4.11 of [Schwabhauser]
     p. 36.  (Contributed by Scott Fenton, 5-Oct-2013.) $)
  colinearperm4 $p |- ( ( N e. NN /\
      ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
      ( A Colinear <. B , C >. <-> C Colinear <. A , B >. ) ) $=
    ( cn wcel cee cfv w3a wa cop ccolin wbr colinearperm3 3anrot sylan2b bitrd
    wb ) DEFZADGHZFZBTFZCTFZIZJABCKLMBCAKLMZCABKLMZABCDNUDSUBUCUAIUEUFRUAUBUCOB
    CADNPQ $.

  $( Permutation law for colinearity.  Part of theorem 4.11 of [Schwabhauser]
     p. 36.  (Contributed by Scott Fenton, 5-Oct-2013.) $)
  colinearperm5 $p |- ( ( N e. NN /\
      ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
      ( A Colinear <. B , C >. <-> C Colinear <. B , A >. ) ) $=
    ( cn wcel cee cfv w3a wa cop ccolin colinearperm4 wb colinearperm1 sylan2br
    wbr 3anrot bitrd ) DEFZADGHZFZBUAFZCUAFZIZJABCKLQCABKLQZCBAKLQZABCDMUETUDUB
    UCIUFUGNUDUBUCRCABDOPS $.

  $( Trivial case of colinearity.  Theorem 4.12 of [Schwabhauser] p. 37.
     (Contributed by Scott Fenton, 5-Oct-2013.) $)
  colineartriv1 $p |- ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
    A Colinear <. A , B >. ) $=
    ( cn wcel cee cfv w3a cop ccolin wbr cbtwn w3o btwntriv1 3mix1d simp1 simp2
    wb simp3 brcolinear syl13anc mpbird ) CDEZACFGZEZBUDEZHZAABIZJKZAUHLKZABAIL
    KZBAAILKZMZUGUJUKULABCNOUGUCUEUEUFUIUMRUCUEUFPUCUEUFQZUNUCUEUFSAABCTUAUB $.

  $( Trivial case of colinearity.  (Contributed by Scott Fenton, 18-Oct-2013.)
     (Revised by Mario Carneiro, 19-Apr-2014.) $)
  colineartriv2 $p |- ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
    A Colinear <. B , B >. ) $=
    ( cn wcel cee cfv w3a cop ccolin wbr cbtwn btwntriv1 3mix2d 3com23 wb simp1
    w3o simp2 simp3 brcolinear syl13anc mpbird ) CDEZACFGZEZBUEEZHZABBIZJKZAUIL
    KZBBAILKZBABILKZRZUDUGUFUNUDUGUFHULUKUMBACMNOUHUDUFUGUGUJUNPUDUFUGQUDUFUGSU
    DUFUGTZUOABBCUAUBUC $.

  $( Betweenness implies colinearity.  (Contributed by Scott Fenton,
     7-Oct-2013.) $)
  btwncolinear1 $p |- ( ( N e. NN /\
    ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
    ( C Btwn <. A , B >. -> A Colinear <. B , C >. ) ) $=
    ( cop cbtwn wbr ccolin cn wcel cee cfv w3a wa w3o 3mix3 brcolinear syl5ibr
    ) CABEFGZABCEZHGDIJADKLZJBUAJCUAJMNATFGZBCAEFGZSOSUBUCPABCDQR $.

  $( Betweenness implies colinearity.  (Contributed by Scott Fenton,
     15-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  btwncolinear2 $p |- ( ( N e. NN /\
    ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
    ( C Btwn <. A , B >. -> A Colinear <. C , B >. ) ) $=
    ( cn cee cfv w3a wa cop cbtwn wbr ccolin btwncolinear1 colinearperm1 sylibd
    wcel ) DEQADFGZQBRQCRQHICABJKLABCJMLACBJMLABCDNABCDOP $.

  $( Betweenness implies colinearity.  (Contributed by Scott Fenton,
     15-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  btwncolinear3 $p |- ( ( N e. NN /\
    ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
    ( C Btwn <. A , B >. -> B Colinear <. A , C >. ) ) $=
    ( cn cee cfv w3a wa cop cbtwn wbr ccolin btwncolinear1 colinearperm2 sylibd
    wcel ) DEQADFGZQBRQCRQHICABJKLABCJMLBACJMLABCDNABCDOP $.

  $( Betweenness implies colinearity.  (Contributed by Scott Fenton,
     15-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  btwncolinear4 $p |- ( ( N e. NN /\
    ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
    ( C Btwn <. A , B >. -> B Colinear <. C , A >. ) ) $=
    ( cn cee cfv w3a wa cop cbtwn wbr ccolin btwncolinear1 colinearperm3 sylibd
    wcel ) DEQADFGZQBRQCRQHICABJKLABCJMLBCAJMLABCDNABCDOP $.

  $( Betweenness implies colinearity.  (Contributed by Scott Fenton,
     15-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  btwncolinear5 $p |- ( ( N e. NN /\
    ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
    ( C Btwn <. A , B >. -> C Colinear <. A , B >. ) ) $=
    ( cn cee cfv w3a wa cop cbtwn wbr ccolin btwncolinear1 colinearperm4 sylibd
    wcel ) DEQADFGZQBRQCRQHICABJZKLABCJMLCSMLABCDNABCDOP $.

  $( Betweenness implies colinearity.  (Contributed by Scott Fenton,
     15-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  btwncolinear6 $p |- ( ( N e. NN /\
    ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
    ( C Btwn <. A , B >. -> C Colinear <. B , A >. ) ) $=
    ( cn cee cfv w3a wa cop cbtwn wbr ccolin btwncolinear1 colinearperm5 sylibd
    wcel ) DEQADFGZQBRQCRQHICABJKLABCJMLCBAJMLABCDNABCDOP $.

  $( Transfer law for colinearity.  Theorem 4.13 of [Schwabhauser] p. 37.
     (Contributed by Scott Fenton, 5-Oct-2013.) $)
  colinearxfr $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
       ( ( B Colinear <. A , C >. /\
           <. A , <. B , C >. >. Cgr3 <. D , <. E , F >. >. ) ->
         E Colinear <. D , F >. ) ) $=
    ( wcel w3a cop ccolin wbr ccgr3 wi wa cbtwn btwnxfr expcomd imp 3anrot biid
    cn cee cfv w3o cgr3permute4 syl3anbr sylbid cgr3permute3 3orim123d wb simp1
    syl3anb simp22 simp21 simp23 brcolinear adantr simp32 simp31 simp33 3imtr4d
    syl13anc ex com23 impd ) GUBHZAGUCUDZHZBVHHZCVHHZIZDVHHZEVHHZFVHHZIZIZBACJZ
    KLZABCJJDEFJJMLZEDFJZKLZVQVTVSWBVQVTVSWBNVQVTOZBVRPLZACBJPLZCBAJPLZUEZEWAPL
    ZDFEJPLZFEDJPLZUEZVSWBWCWDWHWEWIWFWJVQVTWDWHNVQWDVTWHABCDEFGQRSVQVTWEWINZVQ
    VTCABJJFDEJJMLZWLABCDEFGUFVQWEWMWIVGVGVLVKVIVJIVPVOVMVNIWEWMOWINVGUAZVKVIVJ
    TVOVMVNTCABFDEGQUGRUHSVQVTWFWJNZVQVTBCAJJEFDJJMLZWOABCDEFGUIVQWFWPWJVGVGVLV
    JVKVIIVPVNVOVMIWFWPOWJNWNVIVJVKTVMVNVOTBCAEFDGQUMRUHSUJVQVSWGUKZVTVQVGVJVIV
    KWQVGVLVPULZVGVIVJVKVPUNVGVIVJVKVPUOVGVIVJVKVPUPBACGUQVCURVQWBWKUKZVTVQVGVN
    VMVOWSWRVGVLVMVNVOUSVGVLVMVNVOUTVGVLVMVNVOVAEDFGUQVCURVBVDVEVF $.

  ${
    $d N f $.  $d A f $.  $d B f $.  $d C f $.  $d D f $.  $d E f $.
    $( Extend a line with a missing point.  Theorem 4.14 of [Schwabhauser]
       p. 37.  (Contributed by Scott Fenton, 6-Oct-2013.) $)
    lineext $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) ) ) ->
       ( ( A Colinear <. B , C >. /\ <. A , B >. Cgr <. D , E >. ) ->
         E. f e. ( EE ` N )
            <. A , <. B , C >. >. Cgr3 <. D , <. E , f >. >. ) ) $=
      ( wcel w3a wa cop wbr ccgr cbtwn wrex wb wi 3jca adantr anbi2d cn cee cfv
      ccolin w3o ccgr3 brcolinear 3adant3 anbi1d simp1 simp3r simp3l jca simp21
      cv simp23 axsegcon syl simprlr simprrr an4 simpl1 simpl21 simpl22 simpl3l
      simpl3r cgrcomlr syl122anc simpl23 cgrextend syl133anc sylbid syl5bi expr
      simpr imp cgrcom simpl2 brcgr3 syl113anc 3imtr4d an32s reximdva mpd exp32
      3ancoma btwncom simp3 simp22 syl112anc simpll simplr adantl sylcom syl5bb
      sylan2b ex expdimp sylbird cgrxfr cgr3permute1 biimprd adantld syld 3jaod
      syl131anc expd impd ) GUAHZAGUBUCZHZBXJHZCXJHZIZDXJHZFXJHZJZIZABCKZUDLZAB
      KZDFKZMLZJAXSNLZBCAKNLZCYANLZUEZYCJAXSKDFEUOZKZKUFLZEXJOZXRXTYGYCXIXNXTYG
      PXQABCGUGUHUIXRYGYCYKXRYDYCYKQZYEYFXRYDYCYKXRYDYCJZJZDYINLZDYHKZACKZMLZJZ
      EXJOZYKYNXIXPXOJZXKXMJZIZYTXRUUCYMXRXIUUAUUBXIXNXQUJZXRXPXOXIXNXOXPUKXIXN
      XOXPULUMXRXKXMXIXKXLXMXQUNZXIXKXLXMXQUPZUMRSEFDACGUQURYNYSYJEXJXRYHXJHZYM
      YSYJQXRUUGJZYMJYOYQYPMLZJZYCUUIXSYIMLZIZYSYJUUHYMUUJUULUUHYMUUJJZJYCUUIUU
      KUUHYDYCUUJUSUUHYMYOUUIUTUUHUUMUUKUUMYDYOJZYCUUIJZJZUUHUUKYDYCYOUUIVAUUHU
      UPUUNBAKFDKMLZUUIJZJZUUKUUHUUOUURUUNUUHYCUUQUUIUUHXIXKXLXOXPYCUUQPXIXNXQU
      UGVBZXKXLXMXIXQUUGVCZXKXLXMXIXQUUGVDZXOXPXIXNUUGVEZXOXPXIXNUUGVFZABDFGVGV
      HUITUUHXIXLXKXMXPXOUUGUUSUUKQUUTUVBUVAXKXLXMXIXQUUGVIZUVDUVCXRUUGVOZBACFD
      YHGVJVKVLVMVPRVNUUHYSUUJPYMUUHYRUUIYOUUHXIXOUUGXKXMYRUUIPUUTUVCUVFUVAUVED
      YHACGVQVHTSUUHYJUULPZYMUUHXIXNXOXPUUGUVGUUTXIXNXQUUGVRZUVCUVDUVFABCDFYHGV
      SVTZSWAWBWCWDWEXRYEBYQNLZYLXIXNUVJYEPZXQXNXIXLXKXMIUVKXKXLXMWFBACGWGWPUHX
      RUVJYCYKXRUVJYCJZJZFYPNLZYIXSMLZJZEXJOZYKXRUVQUVLXRXIXQXLXMUVQUUDXIXNXQWH
      ZXIXKXLXMXQWIZUUFEDFBCGUQWJSUVMUVPYJEXJXRUUGUVLUVPYJQUUHUVLUVPYJUUHUVJUVN
      JZYCUUKJZJZUULUVLUVPJZYJUUHUWBUUIUULUUHXIXNXOXPUUGUWBUUIQUUTUVHUVCUVDUVFA
      BCDFYHGVJVTUWAUUIUULQUVTUWAUUIUULUWAUUIJYCUUIUUKYCUUKUUIWKUWAUUIVOYCUUKUU
      IWLRWQWMWNUWCUVTYCUVOJZJUUHUWBUVJYCUVNUVOVAUUHUWDUWAUVTUUHUVOUUKYCUUHXIXP
      UUGXLXMUVOUUKPUUTUVDUVFUVBUVEFYHBCGVQVHTTWOUVIWAWRWBWCWDWEWSXRYFYCYKXRYFY
      CJZYHYBNLZACBKKDYHFKKUFLZJZEXJOZYKXRXIXKXMXLXQUWEUWIQUUDUUEUUFUVSUVRACBDE
      FGWTXFXRUWHYJEXJUUHUWGYJUWFUUHYJUWGUUHXIXNXOXPUUGYJUWGPUUTUVHUVCUVDUVFABC
      DFYHGXAVTXBXCWCXDXGXEXHVL $.
  $}

  $( Change some conditions for outer five segment predicate.  (Contributed by
     Scott Fenton, 6-Oct-2013.) $)
  brofs2 $p |- ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
        ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ E e. ( EE ` N ) ) /\
        ( F e. ( EE ` N ) /\ G e. ( EE ` N ) /\ H e. ( EE ` N ) ) ) ->
    ( <. <. A , B >. , <. C , D >. >. OuterFiveSeg
      <. <. E , F >. , <. G , H >. >. <->
      ( B Btwn <. A , C >. /\
        <. A , <. B , C >. >. Cgr3 <. E , <. F , G >. >. /\
        ( <. A , D >. Cgr <. E , H >. /\
          <. B , D >. Cgr <. F , H >. ) ) ) ) $=
    ( wcel w3a cop wbr cbtwn wa ccgr simpr1 syl133anc imp 3jca cn cee cfv ccgr3
    cofs brofs simpr1l simpr2l simpr2 jca ex simp11 simp12 simp13 simp21 simp23
    wi simp31 simp32 cgrextend syld simpr2r brcgr3 sylibrd simpr3 3simpa 3simpb
    wb btwnxfr syl5 syl6bi 3ad2antr2 impbida bitrd ) IUAJZAIUBUCZJZBVPJZKZCVPJZ
    DVPJZEVPJZKZFVPJZGVPJZHVPJZKZKZABLZCDLLEFLZGHLLUEMBACLZNMZFEGLZNMZOZWIWJPMZ
    BCLZFGLZPMZOZADLEHLPMBDLFHLPMOZKZWLAWQLEWRLUDMZXAKZABCDEFGHIUFWHXBXDWHXBOZW
    LXCXAWLWNWTXAWHUGWHXBXCWHXBWPWKWMPMZWSKZXCWHXBXGXEWPXFWSWPWSWOXAWHUHWHXBXFW
    HXBWOWTOZXFWHXBXHXEWOWTWHWOWTXAQWHWOWTXAUIUJUKWHVOVQVRVTWBWDWEXHXFUQVOVQVRW
    CWGULZVOVQVRWCWGUMZVOVQVRWCWGUNZVSVTWAWBWGUOZVSVTWAWBWGUPZVSWCWDWEWFURZVSWC
    WDWEWFUSZABCEFGIUTRVASWPWSWOXAWHVBTUKWHVOVQVRVTWBWDWEXCXGVHXIXJXKXLXMXNXOAB
    CEFGIVCRZVDSWHWOWTXAVETWHXDOZWOWTXAXQWLWNWHWLXCXAQWHXDWNXDWLXCOZWHWNWLXCXAV
    FWHVOVQVRVTWBWDWEXRWNUQXIXJXKXLXMXNXOABCEFGIVIRVJSUJWHWLXCWTXAWHXCWTWHXCXGW
    TXPWPXFWSVGVKSVLWHWLXCXAVETVMVN $.

  $( Change some conditions for inner five segment predicate.  (Contributed by
     Scott Fenton, 6-Oct-2013.) $)
  brifs2 $p |- ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
        ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ E e. ( EE ` N ) ) /\
        ( F e. ( EE ` N ) /\ G e. ( EE ` N ) /\ H e. ( EE ` N ) ) ) ->
    ( <. <. A , B >. , <. C , D >. >. InnerFiveSeg
      <. <. E , F >. , <. G , H >. >. <->
      ( B Btwn <. A , C >. /\
        <. A , <. B , C >. >. Cgr3 <. E , <. F , G >. >. /\
        ( <. A , D >. Cgr <. E , H >. /\
          <. C , D >. Cgr <. G , H >. ) ) ) ) $=
    ( wcel w3a cop wbr cbtwn wa ccgr 3simpa syl133anc imp 3jca cn cee cfv ccgr3
    cifs brifs simpr1l wi simp11 simp12 simp13 simp21 simp23 simp31 simp32 syl5
    cgrsub simpr2l simpr2r ex wb brcgr3 sylibrd simpr3 simpr1 jca 3simpc syl6bi
    btwnxfr 3ad2antr2 impbida bitrd ) IUAJZAIUBUCZJZBVNJZKZCVNJZDVNJZEVNJZKZFVN
    JZGVNJZHVNJZKZKZABLZCDLZLEFLZGHLZLUEMBACLZNMZFEGLZNMZOZWKWMPMZBCLZFGLZPMZOZ
    ADLEHLPMWHWJPMOZKZWLAWQLEWRLUDMZXAKZABCDEFGHIUFWFXBXDWFXBOZWLXCXAWLWNWTXAWF
    UGWFXBXCWFXBWGWIPMZWPWSKZXCWFXBXGXEXFWPWSWFXBXFXBWOWTOZWFXFWOWTXAQWFVMVOVPV
    RVTWBWCXHXFUHVMVOVPWAWEUIZVMVOVPWAWEUJZVMVOVPWAWEUKZVQVRVSVTWEULZVQVRVSVTWE
    UMZVQWAWBWCWDUNZVQWAWBWCWDUOZABCEFGIUQRUPSWPWSWOXAWFURWPWSWOXAWFUSTUTWFVMVO
    VPVRVTWBWCXCXGVAXIXJXKXLXMXNXOABCEFGIVBRZVCSWFWOWTXAVDTWFXDOZWOWTXAXQWLWNWF
    WLXCXAVEWFXDWNXDWLXCOZWFWNWLXCXAQWFVMVOVPVRVTWBWCXRWNUHXIXJXKXLXMXNXOABCEFG
    IVIRUPSVFWFWLXCWTXAWFXCWTWFXCXGWTXPXFWPWSVGVHSVJWFWLXCXAVDTVKVL $.

  ${
    $d N a b c d e f g h p q n $.  $d A a b c d e f g h p q n $.
    $d B a b c d e f g h p q n $.  $d C a b c d e f g h p q n $.
    $d D a b c d e f g h p q n $.  $d E a b c d e f g h p q n $.
    $d F a b c d e f g h p q n $.  $d G a b c d e f g h p q n $.
    $d H a b c d e f g h p q n $.
    $( Binary relation form of the general five segment predicate.
       (Contributed by Scott Fenton, 5-Oct-2013.) $)
    brfs $p |- ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
        ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ E e. ( EE ` N ) ) /\
        ( F e. ( EE ` N ) /\ G e. ( EE ` N ) /\ H e. ( EE ` N ) ) ) ->
    ( <. <. A , B >. , <. C , D >. >. FiveSeg <. <. E , F >. , <. G , H >. >.
      <->
      ( A Colinear <. B , C >. /\
        <. A , <. B , C >. >. Cgr3 <. E , <. F , G >. >. /\
        ( <. A , D >. Cgr <. E , H >. /\ <. B , D >. Cgr <. F , H >. ) ) ) ) $=
      ( cv cop ccolin wbr ccgr3 ccgr wa w3a wceq opeq1 breq2d va vb vc ve vf vg
      vd vh vn vq vp cee cfv cfs cn breq1 breq1d anbi1d 3anbi123d opeq2d anbi2d
      opeq2 3anbi12d anbi12d 3anbi3d 3anbi23d 3anbi2d fveq2 df-fs br8 ) UAJZUBJ
      ZUCJZKZLMZVKVNKZUDJZUEJZUFJZKZKZNMZVKUGJZKZVQUHJZKZOMZVLWCKZVRWEKZOMZPZQA
      VNLMZAVNKZWANMZAWCKZWFOMZWJPZQABVMKZLMZAWRKZWANMZWPBWCKZWIOMZPZQABCKZLMZA
      XEKZWANMZXDQXFXHADKZWFOMZBDKZWIOMZPZQXFXGEVTKZNMZXIEWEKZOMZXLPZQXFXGEFVSK
      ZKZNMZXQXKFWEKZOMZPZQXFXGEFGKZKZNMZYDQXFYGXIEHKZOMZXKFHKZOMZPZQUIABCDUIJZ
      ULUMIULUMUNUOUDUEUFUHEFGHIUJUKUAUBUCUGVKARZVOWLWBWNWKWQVKAVNLUPYNVPWMWANV
      KAVNSUQYNWGWPWJYNWDWOWFOVKAWCSUQURUSVLBRZWLWSWNXAWQXDYOVNWRALVLBVMSZTYOWM
      WTWANYOVNWRAYPUTUQYOWJXCWPYOWHXBWIOVLBWCSUQVAUSVMCRZWSXFXAXHXDYQWRXEALVMC
      BVBZTYQWTXGWANYQWRXEAYRUTUQVCWCDRZXDXMXFXHYSWPXJXCXLYSWOXIWFOWCDAVBUQYSXB
      XKWIOWCDBVBUQVDVEVQERZXHXOXMXRXFYTWAXNXGNVQEVTSTYTXJXQXLYTWFXPXIOVQEWESTU
      RVFVRFRZXOYAXRYDXFUUAXNXTXGNUUAVTXSEVRFVSSUTTUUAXLYCXQUUAWIYBXKOVRFWESTVA
      VFVSGRZYAYGXFYDUUBXTYFXGNUUBXSYEEVSGFVBUTTVGWEHRZYDYLXFYGUUCXQYIYCYKUUCXP
      YHXIOWEHEVBTUUCYBYJXKOWEHFVBTVDVEYMIULVHUDUEUFUHUIUJUKUAUBUCUGVIVJ $.
  $}

  $( Congruence law for the general five segment configuration.  Theorem 4.16
     of [Schwabhauser] p. 37.  (Contributed by Scott Fenton, 5-Oct-2013.) $)
  fscgr $p |- ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
      ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ E e. ( EE ` N ) ) /\
      ( F e. ( EE ` N ) /\ G e. ( EE ` N ) /\ H e. ( EE ` N ) ) ) ->
   ( ( <. <. A , B >. , <. C , D >. >. FiveSeg <. <. E , F >. , <. G , H >. >.
       /\ A =/= B ) -> <. C , D >. Cgr <. G , H >. ) ) $=
    ( wcel w3a cop wbr wa ccgr3 wi cbtwn wb syl333anc sylbid cn cee cfv cfs wne
    ccolin ccgr brfs anbi1d w3o simp11 simp12 simp13 simp21 brcolinear syl13anc
    cofs simp23 simp31 simp32 cgr3permute2 syl133anc a1i 3anbi23d simp22 simp33
    ancom brofs2 bitr4d necom anbi12d 5segofs expd btwncom 3anbi1d cgr3permute1
    3expd cifs 3anbi2d brifs2 ifscgr a1dd 3jaod 3impd impd ) IUAJZAIUBUCZJZBWGJ
    ZKZCWGJZDWGJZEWGJZKZFWGJZGWGJZHWGJZKZKZABLZCDLZLZEFLGHLZLZUDMZABUEZNABCLZUF
    MZAXGLEFGLLOMZADLEHLUGMZBDLZFHLZUGMZNZKZXFNXAXCUGMZWSXEXOXFABCDEFGHIUHUIWSX
    OXFXPWSXHXIXNXFXPPZWSXHAXGQMZBCALQMZCWTQMZUJZXIXNXQPPZWSWFWHWIWKXHYARWFWHWI
    WNWRUKZWFWHWIWNWRULZWFWHWIWNWRUMZWJWKWLWMWRUNZABCIUOUPWSXRYBXSXTWSXRXIXNXQW
    SXRXIXNKZXFXPWSYGXFNBALXALFELXCLUQMZBAUEZNZXPWSYGYHXFYIWSYGXRBACLZLFEGLZLOM
    ZXMXJNZKZYHWSXIYMXNYNXRWSWFWHWIWKWMWOWPXIYMRYCYDYEYFWJWKWLWMWRURZWJWNWOWPWQ
    USZWJWNWOWPWQUTZABCEFGIVAVBXNYNRWSXJXMVGVCVDWSWFWIWHWKWLWOWMWPWQYHYORYCYEYD
    YFWJWKWLWMWRVEZYQYPYRWJWNWOWPWQVFZBACDFEGHIVHSVIXFYIRWSABVJVCVKWSWFWIWHWKWL
    WOWMWPWQYJXPPYCYEYDYFYSYQYPYRYTBACDFEGHIVLSTVMVQWSXSXIXNXQWSXSXIXNKZXFXPWSU
    UAXFNXBXDUQMZXFNXPWSUUAUUBXFWSUUABYKQMZXIXNKUUBWSXSUUCXIXNWSWFWIWKWHXSUUCRY
    CYEYFYDBCAIVNUPVOABCDEFGHIVHVIUIABCDEFGHIVLTVMVQWSXTXIXNXQWSXTXIXNKZXPXFWSU
    UDYKXKLYLXLLVRMZXPWSUUDXTACBLLEGFLLOMZXNKZUUEWSXIUUFXTXNWSWFWHWIWKWMWOWPXIU
    UFRYCYDYEYFYPYQYRABCEFGIVPVBVSWSWFWHWKWIWLWMWPWOWQUUEUUGRYCYDYFYEYSYPYRYQYT
    ACBDEGFHIVTSVIWSWFWHWKWIWLWMWPWOWQUUEXPPYCYDYFYEYSYPYRYQYTACBDEGFHIWASTWBVQ
    WCTWDWET $.

  $( Congruence rule for lines.  Theorem 4.17 of [Schwabhauser] p. 37.
     (Contributed by Scott Fenton, 6-Oct-2013.) $)
  linecgr $p |- ( ( N e. NN /\
    ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
    ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) ) ) ->
    ( ( ( A =/= B /\ A Colinear <. B , C >. ) /\
        ( <. A , P >. Cgr <. A , Q >. /\ <. B , P >. Cgr <. B , Q >. ) ) ->
      <. C , P >. Cgr <. C , Q >. ) ) $=
    ( cn wcel cee cfv w3a wa wne cop ccolin wbr ccgr ccgr3 simprlr cgr3rflx jca
    3adant3 adantr simprr 3jca simprll ex wi simp21 simp22 simp23 simp3l simp3r
    simp1 cfs brfs anbi1d fscgr sylbird syl333anc syld ) FGHZAFIJZHZBVCHZCVCHZK
    ZDVCHZEVCHZLZKZABMZABCNZOPZLZADNAENQPBDNBENQPLZLZVNAVMNZVRRPZVPKZVLLZCDNZCE
    NZQPZVKVQWAVKVQLZVTVLWEVNVSVPVKVLVNVPSVKVSVQVBVGVSVJABCFTUBUCVKVOVPUDUEVKVL
    VNVPUFUAUGVKVBVDVEVFVHVDVEVFVIWAWDUHVBVGVJUNVBVDVEVFVJUIZVBVDVEVFVJUJZVBVDV
    EVFVJUKZVBVGVHVIULWFWGWHVBVGVHVIUMVBVDVEKVFVHVDKVEVFVIKKZWAABNZWBNWJWCNUOPZ
    VLLWDWIWKVTVLABCDABCEFUPUQABCDABCEFURUSUTVA $.

  ${
    linecgrand.1 $e |- ( ph -> N e. NN ) $.
    linecgrand.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
    linecgrand.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
    linecgrand.4 $e |- ( ph -> C e. ( EE ` N ) ) $.
    linecgrand.5 $e |- ( ph -> P e. ( EE ` N ) ) $.
    linecgrand.6 $e |- ( ph -> Q e. ( EE ` N ) ) $.
    linecgrand.7 $e |- ( ( ph /\ ps ) -> A =/= B ) $.
    linecgrand.8 $e |- ( ( ph /\ ps ) -> A Colinear <. B , C >. ) $.
    linecgrand.9 $e |- ( ( ph /\ ps ) -> <. A , P >. Cgr <. A , Q >. ) $.
    linecgrand.10 $e |- ( ( ph /\ ps ) -> <. B , P >. Cgr <. B , Q >. ) $.
    $( Deduction form of ~ linecgr .  (Contributed by Scott Fenton,
       14-Oct-2013.) $)
    linecgrand $p |- ( ( ph /\ ps ) -> <. C , P >. Cgr <. C , Q >. ) $=
      ( cop wcel wa wne ccolin wbr ccgr jca wi cee cfv linecgr syl132anc adantr
      cn mp2and ) ABUAZCDUBZCDESUCUDZUAZCFSCGSUEUDZDFSDGSUEUDZUAZEFSEGSUEUDZUOU
      PUQOPUFUOUSUTQRUFAURVAUAVBUGZBAHUMTCHUHUIZTDVDTEVDTFVDTGVDTVCIJKLMNCDEFGH
      UJUKULUN $.
  $}

  $( Identity law for points on lines.  Theorem 4.18 of [Schwabhauser] p. 38.
     (Contributed by Scott Fenton, 7-Oct-2013.) $)
  lineid $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
    ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
    ( ( ( A =/= B /\ A Colinear <. B , C >. ) /\
        ( <. A , C >. Cgr <. A , D >. /\ <. B , C >. Cgr <. B , D >. ) ) ->
      C = D ) ) $=
    ( cn wcel cee cfv wa w3a wne cop ccolin wbr ccgr wceq wi simp2l simp2r 3jca
    simp3l linecgr syld3an2 simp1 simp3r cgrid2 syl13anc syld ) EFGZAEHIZGZBUKG
    ZJZCUKGZDUKGZJZKZABLABCMZNOJACMADMPOUSBDMPOJJZCCMCDMPOZCDQZUJULUMUOKUNUQUTV
    ARURULUMUOUJULUMUQSUJULUMUQTUJUNUOUPUBZUAABCCDEUCUDURUJUOUOUPVAVBRUJUNUQUEV
    CVCUJUNUOUPUFCCDEUGUHUI $.

  $( Law for finding a point inside a segment.  Theorem 4.19 of [Schwabhauser]
     p. 38.  (Contributed by Scott Fenton, 7-Oct-2013.) $)
  idinside $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
   ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
   ( ( C Btwn <. A , B >. /\ <. A , C >. Cgr <. A , D >. /\
       <. B , C >. Cgr <. B , D >. ) -> C = D ) ) $=
    ( cn wcel wa w3a cop cbtwn wbr ccgr wceq wi simp1 syl13anc opeq1 imbi1d idd
    cee simp3l simp3r cgrid2 axbtwnid syl3anc breq12d biimpcd ax-1 syl8 sylsyld
    cfv simp2l 3impd opeq2 breq2d 3anbi1d syl5ib ccolin simpr2l simpr2r simpr3l
    simpr1 btwncolinear1 3anim123d anim2i 3simpc adantl lineid syl5 expd impcom
    wne jca syld ex pm2.61ine ) EFGZAEUAULZGZBVSGZHZCVSGZDVSGZHZIZCABJZKLZACJZA
    DJZMLZBCJZBDJMLZIZCDNZOZOABWFCAAJZKLZWKWMIZWOOABNZWPWFWRWKWMWOWFCCJZCDJZMLZ
    WOOZWRCANZWKWMWOOZOWFVRWCWCWDXDVRWBWEPZVRWBWCWDUBZXHVRWBWCWDUCCCDEUDQWFVRWC
    VTWRXEOXGXHVRVTWAWEUMCAEUEUFXDXEWKWOXFXEXDWKWOOXEXCWKWOXEXAWIXBWJMCACRCADRU
    GSUHWOWMUIUJUKUNWTWSWNWOWTWRWHWKWMWTWQWGCKABAUOUPUQSURABVMZWFWPXIWFHZWNAWLU
    SLZWKWMIZWOXJWHXKWKWKWMWMXJVRVTWAWCWHXKOXIVRWBWEVCVTWAVRWEXIUTVTWAVRWEXIVAW
    CWDVRWBXIVBABCEVDQXJWKTXJWMTVEWFXIXLWOOWFXIXLWOXIXLHZXIXKHZWKWMHZHWFWOXMXNX
    OXLXKXIXKWKWMPVFXLXOXIXKWKWMVGVHVNABCDEVIVJVKVLVOVPVQ $.

  $( If ` A ` , ` B ` , and ` C ` fall in order on a line, and ` A B ` and
     ` A C ` are congruent, then ` C = B ` .  (Contributed by Scott Fenton,
     7-Oct-2013.) $)
  endofsegid $p |- ( ( N e. NN /\
    ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
    ( ( B Btwn <. A , C >. /\ <. A , C >. Cgr <. A , B >. ) ->
      C = B ) ) $=
    ( cn wcel cee cfv w3a wa cop cbtwn ccgr wceq wb simpl syl3an3br 3anidm23 wi
    wbr ccgr3 simpr1 simpr3 simpr2 cgrcom syl122anc idd axcgrrflx 3adant3r1 a1d
    biimpd 3jcad 3ancomb brcgr3 sylibrd btwnxfr sylan2d jcad 3anrot btwnswapid2
    a1i sylan2br syld ) DEFZADGHZFZBVEFZCVEFZIZJZBACKZLTZVKABKZMTZJZCVMLTZVLJZC
    BNZVJVOVPVLVJVNABCKZKACBKZKUATZVLVPVJVNVMVKMTZVNVSVTMTZIZWAVJVNWBVNWCVJVNWB
    VJVDVFVHVFVGVNWBOVDVIPVDVFVGVHUBZVDVFVGVHUCWEVDVFVGVHUDACABDUEUFUKVJVNUGVJW
    CVNVDVGVHWCVFBCDUHUIUJULVDVIWAWDOZVIVDVIVFVHVGIZWFVFVHVGUMZABCACBDUNQRUOVDV
    IVLWAJVPSZVIVDVIWGWIWHABCACBDUPQRUQVOVLSVJVLVNPVAURVIVDVHVFVGIVQVRSVHVFVGUS
    CABDUTVBVC $.

  ${
    endofsegidand.1 $e |- ( ph -> N e. NN ) $.
    endofsegidand.2 $e |- ( ph -> A e. ( EE ` N ) ) $.
    endofsegidand.3 $e |- ( ph -> B e. ( EE ` N ) ) $.
    endofsegidand.4 $e |- ( ph -> C e. ( EE ` N ) ) $.
    endofsegidand.5 $e |- ( ( ph /\ ps ) -> C Btwn <. A , B >. ) $.
    endofsegidand.6 $e |- ( ( ph /\ ps ) -> <. A , B >. Cgr <. A , C >. ) $.
    $( Deduction form of ~ endofsegid .  (Contributed by Scott Fenton,
       15-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    endofsegidand $p |- ( ( ph /\ ps ) -> B = C ) $=
      ( wa cop cbtwn wbr ccgr wceq wi wcel cn endofsegid syl13anc adantr mp2and
      cee cfv ) ABMECDNZOPZUHCENQPZDERZKLAUIUJMUKSZBAFUATCFUFUGZTEUMTDUMTULGHJI
      CEDFUBUCUDUE $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Connectivity of betweenness
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Lemma for ~ btwnconn1 .  The next several lemmas introduce various
     properties of hypothetical points that end up eliminating alternatives to
     connectivity.  We begin by showing a congruence property of those
     hypothetical points.  (Contributed by Scott Fenton, 8-Oct-2013.) $)
  btwnconn1lem1 $p |- (
     ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ c e. ( EE ` N ) ) /\
         ( d e. ( EE ` N ) /\ b e. ( EE ` N ) /\ X e. ( EE ` N ) ) ) /\
         ( ( ( A =/= B /\ B =/= C ) /\
             ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) /\
           ( ( D Btwn <. A , c >. /\ <. D , c >. Cgr <. C , D >. ) /\
             ( C Btwn <. A , d >. /\ <. C , d >. Cgr <. C , D >. ) ) /\
           ( ( c Btwn <. A , b >. /\ <. c , b >. Cgr <. C , B >. ) /\
             ( d Btwn <. A , X >. /\ <. d , X >. Cgr <. D , B >. ) ) ) ) ->
     <. B , c >. Cgr <. X , C >. ) $=
    ( wcel w3a cv wne wa cop cbtwn wbr ccgr adantl btwnexch3and cee cfv simp1rr
    cn simp11 simp13 simp22 simp23 simp33 simp31 simp21 simp2ll simp2rl simp3rl
    simp12 btwncomand simp3rr cgrcomand simp2lr simp2rr cgrcomland cgrextendand
    cgrcomlrand cgrtr3and ) EUDJZAEUAUBZJZBVFJZKZCVFJZDVFJZHLZVFJZKZILZVFJZGLZV
    FJZFVFJZKZKZABMBCMNZBACOPQZBADOPQZNNZDAVLOPQZDVLOCDOZRQZNZCAVOOPQZCVOOWGRQZ
    NZNZVLAVQOPQVLVQOCBORQNZVOAFOPQZVOFODBORQZNNZKZBDVLFVOCEVEVGVHVNVTUEZVEVGVH
    VNVTUFZVIVJVKVMVTUGZVIVJVKVMVTUHZVIVNVPVRVSUIZVIVNVPVRVSUJZVIVJVKVMVTUKZWAW
    RABDVLEWSVEVGVHVNVTUOZWTXAXBWRWDWAWCWDWBWMWQUCSWRWFWAWFWHWLWEWQULSTWAWRVOCF
    EWSXDXEXCWAWRACVOFEWSXFXEXDXCWRWJWAWJWKWIWEWQUMSWRWOWAWOWPWNWEWMUNSTUPWAWRD
    BVOFEWSXAWTXDXCWAWRVOFDBEWSXDXCXAWTWRWPWAWOWPWNWEWMUQSURVCWAWRDVLVOCCDEWSXA
    XBXDXEXEXAWRWHWAWFWHWLWEWQUSSWAWRCVOCDEWSXEXDXEXAWRWKWAWJWKWIWEWQUTSVAVDVB
    $.

  $( Lemma for ~ btwnconn1 .  Now, we show that two of the hypotheticals we
     introduced in the first lemma are identical.  (Contributed by Scott
     Fenton, 8-Oct-2013.) $)
  btwnconn1lem2 $p |- (
     ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ c e. ( EE ` N ) ) /\
         ( d e. ( EE ` N ) /\ b e. ( EE ` N ) /\ X e. ( EE ` N ) ) ) /\
         ( ( ( A =/= B /\ B =/= C ) /\
             ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) /\
           ( ( D Btwn <. A , c >. /\ <. D , c >. Cgr <. C , D >. ) /\
             ( C Btwn <. A , d >. /\ <. C , d >. Cgr <. C , D >. ) ) /\
           ( ( c Btwn <. A , b >. /\ <. c , b >. Cgr <. C , B >. ) /\
             ( d Btwn <. A , X >. /\ <. d , X >. Cgr <. D , B >. ) ) ) ) ->
     X = b ) $=
    ( wcel w3a cv wa cop cbtwn wbr ccgr adantl jca adantr cn cee cfv wne simp11
    simp1ll simp12 simp13 simp21 simp33 simp1rl simp2rl simp3rl simp31 btwnexch
    wi syl122anc mpd btwnexchand cgrrflx2d simp23 simp32 simp1rr simp2ll simp22
    simp3ll btwnexch3and btwncomand btwnconn1lem1 simp3lr cgrextendand segconeq
    wceq syl133anc mp3and ) EUAJZAEUBUCZJZBVQJZKZCVQJZDVQJZHLZVQJZKZILZVQJZGLZV
    QJZFVQJZKZKZABUDZBCUDZMZBACNOPZBADNOPZMZMZDAWCNZOPZDWCNCDNZQPZMZCAWFNOPZCWF
    NXBQPZMZMZWCAWHNZOPZWCWHNCBNQPZMZWFAFNZOPZWFFNDBNQPZMZMZKZMZWMBXMOPZBFNFBNZ
    QPZMZBXIOPZBWHNYAQPZMZFWHVMZXRWMWLWMWNWRXHXQUFRXSXTYBWLXRABCFEVPVRVSWEWKUEZ
    VPVRVSWEWKUGZVPVRVSWEWKUHZVTWAWBWDWKUIZVTWEWGWIWJUJZXRWPWLWPWQWOXHXQUKRZXSX
    EXNMZCXMOPZXRYNWLXRXEXNXEXFXDWSXQULXNXOXLWSXHUMSRWLYNYOUPZXRWLVPVRWAWGWJYPY
    HYIYKVTWEWGWIWJUNYLACWFFEUOUQTURZUSWLYBXRWLBFEYHYJYLUTTSXSYDYEWLXRABWCWHEYH
    YIYJVTWAWBWDWKVAZVTWEWGWIWJVBZXSWQXAMZBWTOPZXRYTWLXRWQXAWPWQWOXHXQVCXAXCXGW
    SXQVDSRWLYTUUAUPZXRWLVPVRVSWBWDUUBYHYIYJVTWAWBWDWKVEYRABDWCEUOUQTURZXRXJWLX
    JXKXPWSXHVFRZUSWLXRBWCWHFCBEYHYJYRYSYLYKYJWLXRABWCWHEYHYIYJYRYSUUCUUDVGWLXR
    CBFEYHYKYJYLWLXRABCFEYHYIYJYKYLYMYQVGVHABCDEFGHIVIXRXKWLXJXKXPWSXHVJRVKSWLW
    MYCYFKYGUPZXRWLVPVSWJVSVRWJWIUUEYHYJYLYJYIYLYSBFBAEFWHVLVNTVO $.

  $( Lemma for ~ btwnconn1 .  Establish the next congruence in the series.
     (Contributed by Scott Fenton, 8-Oct-2013.) $)
  btwnconn1lem3 $p |- (
     ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ c e. ( EE ` N ) ) /\
         ( d e. ( EE ` N ) /\ b e. ( EE ` N ) ) ) /\
         ( ( ( A =/= B /\ B =/= C ) /\
             ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) /\
           ( ( D Btwn <. A , c >. /\ <. D , c >. Cgr <. C , D >. ) /\
             ( C Btwn <. A , d >. /\ <. C , d >. Cgr <. C , D >. ) ) /\
           ( ( c Btwn <. A , b >. /\ <. c , b >. Cgr <. C , B >. ) /\
             ( d Btwn <. A , b >. /\ <. d , b >. Cgr <. D , B >. ) ) ) ) ->
     <. B , d >. Cgr <. b , D >. ) $=
    ( wcel w3a cv wa cop cbtwn wbr ccgr adantl syl122anc adantr wb cn simp11 wi
    cee cfv simp13 simp21 simp3l simp3r simp23 simp22 simp1rl simp2rl btwnexch3
    wne jca simp12 mpd simp2ll simp3ll btwncomand simp3lr cgrcomlr cgrcom bitrd
    mpbid simp2rr simp2lr cgrcomland cgrtr3and cgrextendand ) EUAIZAEUDUEZIZBVM
    IZJZCVMIZDVMIZGKZVMIZJZHKZVMIZFKZVMIZLZJZABUOBCUOLZBACMNOZBADMNOZLLZDAVSMNO
    ZDVSMCDMZPOZLZCAWBMNOZCWBMWMPOZLZLZVSAWDMZNOZVSWDMCBMPOZLWBWTNOWBWDMDBMPOLZ
    LZJZBCWBWDVSDEVLVNVOWAWFUBZVLVNVOWAWFUFZVPVQVRVTWFUGZVPWAWCWEUHZVPWAWCWEUIZ
    VPVQVRVTWFUJZVPVQVRVTWFUKZWGXELZWIWPLZCBWBMNOZXEXNWGXEWIWPWIWJWHWSXDULWPWQW
    OWKXDUMUPQWGXNXOUCZXEWGVLVNVOVQWCXPXFVLVNVOWAWFUQZXGXHXIABCWBEUNRSURWGXEVSD
    WDEXFXKXLXJXMWLXALZVSDWDMNOZXEXRWGXEWLXAWLWNWRWKXDUSXAXBXCWKWSUTUPQWGXRXSUC
    ZXEWGVLVNVRVTWEXTXFXQXLXKXJADVSWDEUNRSURVAXMXBBCMZWDVSMZPOZXEXBWGXAXBXCWKWS
    VBQWGXBYCTXEWGXBYBYAPOZYCWGVLVTWEVQVOXBYDTXFXKXJXHXGVSWDCBEVCRWGVLWEVTVOVQY
    DYCTXFXJXKXGXHWDVSBCEVDRVESVFWGXECWBVSDCDEXFXHXIXKXLXHXLXEWQWGWPWQWOWKXDVGQ
    WGXEDVSCDEXFXLXKXHXLXEWNWGWLWNWRWKXDVHQVIVJVK $.

  $( Lemma for ~ btwnconn1 .  Assuming ` C =/= c ` , we now attempt to force
     ` D = d ` from here out via a series of congruences.  (Contributed by
     Scott Fenton, 8-Oct-2013.) $)
  btwnconn1lem4 $p |- (
     ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ c e. ( EE ` N ) ) /\
         ( d e. ( EE ` N ) /\ b e. ( EE ` N ) ) ) /\
         ( ( ( A =/= B /\ B =/= C /\ C =/= c ) /\
             ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) /\
           ( ( D Btwn <. A , c >. /\ <. D , c >. Cgr <. C , D >. ) /\
             ( C Btwn <. A , d >. /\ <. C , d >. Cgr <. C , D >. ) ) /\
           ( ( c Btwn <. A , b >. /\ <. c , b >. Cgr <. C , B >. ) /\
             ( d Btwn <. A , b >. /\ <. d , b >. Cgr <. D , B >. ) ) ) ) ->
     <. d , c >. Cgr <. D , C >. ) $=
    ( wcel w3a cv wa wne cop cbtwn wbr ccgr adantl adantr wb cn cee cfv simp1rl
    ccgr3 simp2rl jca wi simp11 simp12 simp13 simp21 simp3l btwnexch3 syl122anc
    mpd simp3lr simp23 simp3r cgrcomlr cgrcom bitrd 3simpa anim1i btwnconn1lem3
    mpbid syl3anr1 simp22 simp2rr simp2lr cgrcomland cgrtr3and brcgr3 syl133anc
    mpbir3and simpl 3jca 3anim3i 3anim1i btwnconn1lem1 syl2an cgrrflx2d simp1l2
    simpr cofs brofs2 anbi1d 5segofs sylbird syl333anc mp2and ) EUAIZAEUBUCZIZB
    WMIZJZCWMIZDWMIZGKZWMIZJZHKZWMIZFKZWMIZLZJZABMZBCMZCWSMZJZBACNOPZBADNOPZLZL
    ZDAWSNOPZDWSNCDNZQPZLZCAXBNOPZCXBNZXQQPZLZLZWSAXDNZOPZWSXDNCBNQPZLXBYEOPXBX
    DNDBNQPLZLZJZLZCBXBNZOPZBYANXDWSDNZNUEPZBWSNXDCNQPZCWSNWSCNQPZLZJZXIXBWSNZD
    CNZQPZYKYMYOYRYKXLXTLZYMYJUUCXGYJXLXTXLXMXKYDYIUDXTYBXSXOYIUFUGRXGUUCYMUHZY
    JXGWLWNWOWQXCUUDWLWNWOXAXFUIZWLWNWOXAXFUJWLWNWOXAXFUKZWPWQWRWTXFULZWPXAXCXE
    UMZABCXBEUNUOSUPYKYOBCNZXDWSNZQPZYLXDDNQPZYAYNQPZYKYGUUKYJYGXGYFYGYHXOYDUQR
    XGYGUUKTYJXGYGUUJUUIQPZUUKXGWLWTXEWQWOYGUUNTUUEWPWQWRWTXFURZWPXAXCXEUSZUUGU
    UFWSXDCBEUTUOXGWLXEWTWOWQUUNUUKTUUEUUPUUOUUFUUGXDWSBCEVAUOVBSVFXOXHXILZXNLZ
    XGYDYIUULXKUUQXNXHXIXJVCVDZABCDEFGHVEVGXGYJCXBWSDCDEUUEUUGUUHUUOWPWQWRWTXFV
    HZUUGUUTYJYBXGXTYBXSXOYIVIRXGYJDWSCDEUUEUUTUUOUUGUUTYJXRXGXPXRYCXOYIVJRVKVL
    XGYOUUKUULUUMJTZYJXGWLWOWQXCXEWTWRUVAUUEUUFUUGUUHUUPUUOUUTBCXBXDWSDEVMVNSVO
    YKYPYQXGWPXAXCXEXEJZJUURYDYIJYPYJXFUVBWPXAXFXCXEXEXCXEVPXCXEWDZUVCVQVRXOUUR
    YDYIUUSVSABCDEXDFGHVTWAXGYQYJXGCWSEUUEUUGUUOWBSUGVQYJXIXGXHXIXJXNYDYIWCRXGY
    SXILZUUBUHZYJXGWLWOWQXCWTXEWTWRWQUVEUUEUUFUUGUUHUUOUUPUUOUUTUUGWLWOWQJXCWTX
    EJWTWRWQJJZUVDUUIYTNUUJUUANWEPZXILUUBUVFUVGYSXIBCXBWSXDWSDCEWFWGBCXBWSXDWSD
    CEWHWIWJSWK $.

  $( Lemma for ~ btwnconn1 .  Now, we introduce ` E ` , the intersection of
     ` C c ` and ` D d ` .  We begin by showing that it is the midpoint of
     ` C ` and ` c ` .  (Contributed by Scott Fenton, 8-Oct-2013.) $)
  btwnconn1lem5 $p |- (
     ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ c e. ( EE ` N ) ) /\
         ( d e. ( EE ` N ) /\ b e. ( EE ` N ) /\ E e. ( EE ` N ) ) ) /\
         ( ( ( ( A =/= B /\ B =/= C /\ C =/= c ) /\
               ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) /\
             ( ( D Btwn <. A , c >. /\ <. D , c >. Cgr <. C , D >. ) /\
               ( C Btwn <. A , d >. /\ <. C , d >. Cgr <. C , D >. ) ) /\
             ( ( c Btwn <. A , b >. /\ <. c , b >. Cgr <. C , B >. ) /\
               ( d Btwn <. A , b >. /\ <. d , b >. Cgr <. D , B >. ) ) ) /\
           ( E Btwn <. C , c >. /\ E Btwn <. D , d >. ) ) ) ->
         <. E , C >. Cgr <. E , c >. ) $=
    ( wcel w3a cv wne cop cbtwn wbr wa ccgr adantr wb cn cee cfv simprrr simp11
    ccgr3 simp22 simp33 simp31 cgr3rflx syl13anc simp2lr ad2antrl simp23 simp21
    cgrcomr cgrcom bitrd mpbid simp2rr cgrcomlrand 3simpa 3anim3i btwnconn1lem4
    syl122anc simpl syl2an cgrtr3and jca wi cifs brifs2 ifscgr syl333anc mp3and
    sylbird ) FUAJZAFUBUCZJZBVRJZKZCVRJZDVRJZHLZVRJZKZILZVRJZGLZVRJZEVRJZKZKZAB
    MBCMCWDMKBACNOPBADNOPQQZDAWDNOPZDWDNZCDNZRPZQZCAWGNOPZCWGNWQRPZQZQWDAWINZOP
    WDWINCBNRPQWGXCOPWGWINDBNRPQQZKZECWDNOPZEDWGNOPZQZQZQZXGDEWGNNZXKUFPZDCNZWP
    RPZWGCNZWGWDNZRPZQZECNEWDNRPZWMXEXFXGUDWMXLXIWMVQWCWKWHXLVQVSVTWFWLUEZWAWBW
    CWEWLUGZWAWFWHWJWKUHZWAWFWHWJWKUIZDEWGFUJUKSXJXNXQXJWRXNXEWRWMXHWOWRXBWNXDU
    LUMWMWRXNTXIWMWRWPXMRPZXNWMVQWCWEWBWCWRYDTXTYAWAWBWCWEWLUNZWAWBWCWEWLUOZYAD
    WDCDFUPVEWMVQWCWEWCWBYDXNTXTYAYEYAYFDWDDCFUQVEURSUSWMXIWGCWGWDDCFXTYCYFYCYE
    YAYFWMXICWGCDFXTYFYCYFYAXEXAWMXHWTXAWSWNXDUTUMVAWMWAWFWHWJQZKXEXPXMRPXIWLYG
    WAWFWHWJWKVBVCXEXHVFABCDFGHIVDVGVHVIWMXGXLXRKZXSVJZXIWMVQWCWKWHWBWCWKWHWEYI
    XTYAYBYCYFYAYBYCYEVQWCWKKWHWBWCKWKWHWEKKYHDENZXONYJXPNVKPXSDEWGCDEWGWDFVLDE
    WGCDEWGWDFVMVPVNSVO $.

  $( Lemma for ~ btwnconn1 .  Next, we show that ` E ` is the midpoint of ` D `
     and ` d ` .  (Contributed by Scott Fenton, 8-Oct-2013.) $)
  btwnconn1lem6 $p |- (
     ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ c e. ( EE ` N ) ) /\
         ( d e. ( EE ` N ) /\ b e. ( EE ` N ) /\ E e. ( EE ` N ) ) ) /\
         ( ( ( ( A =/= B /\ B =/= C /\ C =/= c ) /\
               ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) /\
             ( ( D Btwn <. A , c >. /\ <. D , c >. Cgr <. C , D >. ) /\
               ( C Btwn <. A , d >. /\ <. C , d >. Cgr <. C , D >. ) ) /\
             ( ( c Btwn <. A , b >. /\ <. c , b >. Cgr <. C , B >. ) /\
               ( d Btwn <. A , b >. /\ <. d , b >. Cgr <. D , B >. ) ) ) /\
           ( E Btwn <. C , c >. /\ E Btwn <. D , d >. ) ) ) ->
         <. E , D >. Cgr <. E , d >. ) $=
    ( wcel w3a cv wne cop cbtwn wbr wa ccgr jca cgrrflxd cee cfv simprrl simp11
    cn simp21 simp23 simp33 adantr simp31 simp2rr ad2antrl cgrcomand cgrcomrand
    simp22 simp2lr 3simpa 3anim3i btwnconn1lem4 syl2an cgrtr3and cgrcomlrand wi
    simpl cifs brifs ifscgr sylbird syl333anc mp3and ) FUEJZAFUAUBZJZBVLJZKZCVL
    JZDVLJZHLZVLJZKZILZVLJZGLZVLJZEVLJZKZKZABMBCMCVRMKBACNOPBADNOPQQZDAVRNOPZDV
    RNCDNZRPZQZCAWANOPZCWANZWJRPZQZQVRAWCNZOPVRWCNCBNRPQWAWQOPWAWCNDBNRPQQZKZEC
    VRNZOPZEDWANOPZQZQZQZXAXAQZWTWTRPZEVRNZXHRPZQZWJWNRPZVRDNZVRWANZRPZQZEDNEWA
    NRPZXEXAXAWGWSXAXBUCZXQSWGXJXDWGXGXIWGCVRFVKVMVNVTWFUDZVOVPVQVSWFUFZVOVPVQV
    SWFUGZTWGEVRFXRVOVTWBWDWEUHZXTTSUIXEXKXNWGXDCWACDFXRXSVOVTWBWDWEUJZXSVOVPVQ
    VSWFUOZWSWOWGXCWMWOWLWHWRUKULUMWGXDDVRWAVRFXRYCXTYBXTWGXDDVRWAVRDCFXRYCXTYB
    XTYCXSWGXDDVRCDFXRYCXTXSYCWSWKWGXCWIWKWPWHWRUPULUNWGVOVTWBWDQZKWSWAVRNDCNRP
    XDWFYDVOVTWBWDWEUQURWSXCVDABCDFGHIUSUTVAVBSWGXFXJXOKZXPVCZXDWGVKVPWEVSVQVPW
    EVSWBYFXRXSYAXTYCXSYAXTYBVKVPWEKVSVQVPKWEVSWBKKYECENZXLNYGXMNVEPXPCEVRDCEVR
    WAFVFCEVRDCEVRWAFVGVHVIUIVJ $.

  $( Lemma for ~ btwnconn1 .  Under our assumptions, ` C ` and ` d ` are
     distinct.  (Contributed by Scott Fenton, 8-Oct-2013.) $)
  btwnconn1lem7 $p |- (
     ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ c e. ( EE ` N ) ) /\
         ( d e. ( EE ` N ) /\ b e. ( EE ` N ) /\ E e. ( EE ` N ) ) ) /\
         ( ( ( ( A =/= B /\ B =/= C /\ C =/= c ) /\
               ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) /\
             ( ( D Btwn <. A , c >. /\ <. D , c >. Cgr <. C , D >. ) /\
               ( C Btwn <. A , d >. /\ <. C , d >. Cgr <. C , D >. ) ) /\
             ( ( c Btwn <. A , b >. /\ <. c , b >. Cgr <. C , B >. ) /\
               ( d Btwn <. A , b >. /\ <. d , b >. Cgr <. D , B >. ) ) ) /\
           ( E Btwn <. C , c >. /\ E Btwn <. D , d >. ) ) ) ->
        C =/= d ) $=
    ( wcel w3a cv wne cop cbtwn wbr wa ccgr wi syl5 cee simp1l3 simp2rr simp2lr
    cfv adantr 3jca simp11 simp21 simp22 simp23 simp31 simpr1 wceq opeq2 breq1d
    cn 3anbi2d biimparc simp2 simp1 simp2l simp2r cgrid2 syl13anc opeq1 breq12d
    imp simp3l axcgrid expdimp 3ad2antr3 mpd ex necon3d syl122anc ) FUQJZAFUAUE
    ZJZBVRJZKZCVRJZDVRJZHLZVRJZKZILZVRJZGLZVRJZEVRJZKZKZABMZBCMZCWDMZKBACNOPBAD
    NOPQZQZDAWDNOPZDWDNZCDNZRPZQZCAWGNOPZCWGNZXARPZQZQZWDAWINZOPWDWINCBNRPQWGXI
    OPWGWINDBNRPQQZKZECWDNZOPEDWGNOPQZQZCWGMZXNWPXFXBKZWMXOXNWPXFXBXKWPXMWNWOWP
    WQXHXJUBUFXKXFXMXDXFXCWRXJUCUFXKXBXMWSXBXGWRXJUDUFUGWMVQWBWCWEWHXPXOSVQVSVT
    WFWLUHWAWBWCWEWLUIWAWBWCWEWLUJWAWBWCWEWLUKWAWFWHWJWKULVQWBWCQZWEWHQZKZXPXOX
    SXPQZWPXOXSWPXFXBUMXTCWGCWDXSXPCWGUNZCWDUNZXPYAQWPCCNZXARPZXBKZXSYBYAYEXPYA
    YDXFWPXBYAYCXEXARCWGCUOUPURUSXSYEYBXSYEQCDUNZYBXSYEYFYEYDXSYFWPYDXBUTXSVQWB
    WBWCYDYFSVQXQXRVAZVQWBWCXRVBZYHVQWBWCXRVCCCDFVDVETVHXSWPXBYFYBSYDXSXBYFYBXB
    YFQXLYCRPZXSYBYFYIXBYFXLWTYCXARCDWDVFCDCUOVGUSXSVQWBWEWBYIYBSYGYHVQXQWEWHVI
    YHCWDCFVJVETVKVLVMVNTVKVOVMVNVPTVH $.

  $( Lemma for ~ btwnconn1 .  Now, we introduce the last three points used in
     the construction: ` P ` , ` Q ` , and ` R ` will turn out to be equal
     further down, and will provide us with the key to the final statement.  We
     begin by establishing congruence of ` R P ` and ` E d ` .  (Contributed by
     Scott Fenton, 8-Oct-2013.) $)
  btwnconn1lem8 $p |- (
     ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ c e. ( EE ` N ) ) /\
           ( d e. ( EE ` N ) /\ b e. ( EE ` N ) /\ E e. ( EE ` N ) ) ) /\
         ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) /\ R e. ( EE ` N ) ) ) /\
         ( ( ( ( A =/= B /\ B =/= C /\ C =/= c ) /\
               ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) /\
             ( ( D Btwn <. A , c >. /\ <. D , c >. Cgr <. C , D >. ) /\
               ( C Btwn <. A , d >. /\ <. C , d >. Cgr <. C , D >. ) ) /\
             ( ( c Btwn <. A , b >. /\ <. c , b >. Cgr <. C , B >. ) /\
               ( d Btwn <. A , b >. /\ <. d , b >. Cgr <. D , B >. ) ) ) /\
           ( ( E Btwn <. C , c >. /\ E Btwn <. D , d >. ) /\
             ( ( C Btwn <. c , P >. /\ <. C , P >. Cgr <. C , d >. ) /\
               ( C Btwn <. d , R >. /\ <. C , R >. Cgr <. C , E >. ) /\
               ( R Btwn <. P , Q >. /\ <. R , Q >. Cgr <. R , P >. ) ) ) ) ) ->
       <. R , P >. Cgr <. E , d >. ) $=
    ( wcel w3a wa wne cop cbtwn wbr ccgr cn cee cfv cv simpr2l ad2antll simpr1r
    ccgr3 wb simp11 simp2l1 simp31 cgrcomlr syl122anc cgrcom bitrd adantr mpbid
    simp2r1 simp33 simp2r3 simp2l3 simpr1l btwncomand adantl wi btwnintr mp2and
    simprll simpr2r cgrextendand brcgr3 syl133anc mpbir3and cgrrflx2d jca simp1
    3jca simp2l simp2r simprl btwnconn1lem7 syl2an necomd brofs2 anbi1d 5segofs
    simpl cofs sylbird syl333anc ) IUAMZAIUBUCZMZBWMMZNZCWMMZDWMMZKUDZWMMZNZLUD
    ZWMMZJUDZWMMZHWMMZNZOZEWMMZFWMMZGWMMZNZNZABPBCPCWSPNBACQRSBADQRSOODAWSQRSDW
    SQCDQZTSOCAXBQRSCXBQZXNTSOOWSAXDQZRSWSXDQCBQTSOXBXPRSXBXDQDBQTSOONZHCWSQRSZ
    HDXBQRSZOZCWSEQRSZCEQXOTSZOZCXBGQZRSZCGQZCHQZTSZOZGEFQRSGFQGEQZTSOZNZOZOZOZ
    YEXBYFQEYGQUHSZXBEQEXBQTSZYBOZNZXBCPZYJHXBQZTSZYOYEYPYRYMYEXMXQYEYHYCYKXTUE
    UFZYOYPXBCQZECQZTSZYDEHQZTSZYHYOYBUUFYMYBXMXQYAYBYIYKXTUGUFZXMYBUUFUIYNXMYB
    UUEUUDTSZUUFXMWLWQXIWQXCYBUUJUIWLWNWOXHXLUJZWQWRWTXGWPXLUKZWPXHXIXJXKULZUUL
    XCXEXFXAWPXLUSZCECXBIUMUNXMWLXIWQXCWQUUJUUFUIUUKUUMUULUUNUULECXBCIUOUNUPUQU
    RZXMYNXBCGECHIUUKUUNUULWPXHXIXJXKUTZUUMUULXCXEXFXAWPXLVAZUUCYOCEWSQRSZXRCUU
    GRSZXMYNCWSEIUUKUULWQWRWTXGWPXLVBZUUMYMYAXMXQYAYBYIYKXTVCUFVDYNXRXMXQXRXSYL
    VIVEXMUURXROUUSVFZYNXMWLXIWQXFWTUVAUUKUUMUULUUQUUTECHWSIVGUNUQVHUUOYMYHXMXQ
    YEYHYCYKXTVJUFZVKUVBXMYPUUFUUHYHNUIZYNXMWLXCWQXKXIWQXFUVCUUKUUNUULUUPUUMUUL
    UUQXBCGECHIVLVMUQVNYOYQYBXMYQYNXMXBEIUUKUUNUUMVOUQUUIVPVRYOCXBXMWPXAXGNXQXT
    OCXBPYNXMWPXAXGWPXHXLVQWPXAXGXLVSWPXAXGXLVTVRYNXQXTXQYMWHXQXTYLWAVPABCDHIJK
    LWBWCWDXMYSYTOZUUBVFZYNXMWLXCWQXKXIXIWQXFXCUVEUUKUUNUULUUPUUMUUMUULUUQUUNWL
    XCWQNXKXIXINWQXFXCNNZUVDUUDYJQUUEUUAQWISZYTOUUBUVFUVGYSYTXBCGEECHXBIWEWFXBC
    GEECHXBIWGWJWKUQVH $.

  $( Lemma for ~ btwnconn1 .  Now, a quick use of transitivity to establish
     congruence on ` R Q ` and ` E D ` .  (Contributed by Scott Fenton,
     8-Oct-2013.) $)
  btwnconn1lem9 $p |- (
     ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ c e. ( EE ` N ) ) /\
           ( d e. ( EE ` N ) /\ b e. ( EE ` N ) /\ E e. ( EE ` N ) ) ) /\
         ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) /\ R e. ( EE ` N ) ) ) /\
         ( ( ( ( A =/= B /\ B =/= C /\ C =/= c ) /\
               ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) /\
             ( ( D Btwn <. A , c >. /\ <. D , c >. Cgr <. C , D >. ) /\
               ( C Btwn <. A , d >. /\ <. C , d >. Cgr <. C , D >. ) ) /\
             ( ( c Btwn <. A , b >. /\ <. c , b >. Cgr <. C , B >. ) /\
               ( d Btwn <. A , b >. /\ <. d , b >. Cgr <. D , B >. ) ) ) /\
           ( ( E Btwn <. C , c >. /\ E Btwn <. D , d >. ) /\
             ( ( C Btwn <. c , P >. /\ <. C , P >. Cgr <. C , d >. ) /\
               ( C Btwn <. d , R >. /\ <. C , R >. Cgr <. C , E >. ) /\
               ( R Btwn <. P , Q >. /\ <. R , Q >. Cgr <. R , P >. ) ) ) ) ) ->
       <. R , Q >. Cgr <. E , D >. ) $=
    ( wcel w3a cv wa cop cbtwn wbr ccgr cn cee cfv simp11 simp33 simp32 simp2r3
    simp2l2 simp2r1 simp31 simpr3r ad2antll btwnconn1lem8 cgrtrand simp1 simp2l
    wne simp2r 3jca simpl simprl jca btwnconn1lem6 syl2an cgrtr3and ) IUAMZAIUB
    UCZMZBVGMZNZCVGMZDVGMZKOZVGMZNZLOZVGMZJOZVGMZHVGMZNZPZEVGMZFVGMZGVGMZNZNZAB
    UQBCUQCVMUQNBACQRSBADQRSPPDAVMQRSDVMQCDQZTSPCAVPQRSCVPQZWHTSPPVMAVRQZRSVMVR
    QCBQTSPVPWJRSVPVRQDBQTSPPNZHCVMQRSHDVPQRSPZCVMEQRSCEQWITSPZCVPGQRSCGQCHQTSP
    ZGEFQRSZGFQGEQTSZPNZPZPZGFHDHVPIVFVHVIWBWFUDZVJWBWCWDWEUEZVJWBWCWDWEUFZVQVS
    VTVOVJWFUGZVKVLVNWAVJWFUHXCVQVSVTVOVJWFUIZWGWSGFGEHVPIWTXAXBXAVJWBWCWDWEUJX
    CXDWRWPWGWKWOWPWMWNWLUKULABCDEFGHIJKLUMUNWGVJVOWANWKWLPHDQHVPQTSWSWGVJVOWAV
    JWBWFUOVJVOWAWFUPVJVOWAWFURUSWSWKWLWKWRUTWKWLWQVAVBABCDHIJKLVCVDVE $.

  $( Lemma for ~ btwnconn1 .  Now we establish a congruence that will give us
     ` D = d ` when we compute ` P = Q ` later on.  (Contributed by Scott
     Fenton, 8-Oct-2013.) $)
  btwnconn1lem10 $p |- (
     ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ c e. ( EE ` N ) ) /\
           ( d e. ( EE ` N ) /\ b e. ( EE ` N ) /\ E e. ( EE ` N ) ) ) /\
         ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) /\ R e. ( EE ` N ) ) ) /\
         ( ( ( ( A =/= B /\ B =/= C /\ C =/= c ) /\
               ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) /\
             ( ( D Btwn <. A , c >. /\ <. D , c >. Cgr <. C , D >. ) /\
               ( C Btwn <. A , d >. /\ <. C , d >. Cgr <. C , D >. ) ) /\
             ( ( c Btwn <. A , b >. /\ <. c , b >. Cgr <. C , B >. ) /\
               ( d Btwn <. A , b >. /\ <. d , b >. Cgr <. D , B >. ) ) ) /\
           ( ( E Btwn <. C , c >. /\ E Btwn <. D , d >. ) /\
             ( ( C Btwn <. c , P >. /\ <. C , P >. Cgr <. C , d >. ) /\
               ( C Btwn <. d , R >. /\ <. C , R >. Cgr <. C , E >. ) /\
               ( R Btwn <. P , Q >. /\ <. R , Q >. Cgr <. R , P >. ) ) ) ) ) ->
       <. d , D >. Cgr <. P , Q >. ) $=
    ( wcel w3a cv wa cop cbtwn wbr ccgr cn cee cfv simp11 simp2r1 simp31 simp33
    wne simp2r3 simp2l2 simp32 simprlr adantl btwncomand ad2antll btwnconn1lem8
    simpr3l wb cgrcomlr syl122anc cgrcom bitrd mpbid btwnconn1lem9 cgrextendand
    adantr cgrcomand ) IUAMZAIUBUCZMZBVIMZNZCVIMZDVIMZKOZVIMZNZLOZVIMZJOZVIMZHV
    IMZNZPZEVIMZFVIMZGVIMZNZNZABUHBCUHCVOUHNBACQRSBADQRSPPDAVOQRSDVOQCDQZTSPCAV
    RQRSCVRQZWJTSPPVOAVTQZRSVOVTQCBQTSPVRWLRSVRVTQDBQTSPPNZHCVOQRSZHDVRQRSZPZCV
    OEQRSCEQWKTSPZCVRGQRSCGQCHQTSPZGEFQRSZGFQGEQZTSZPNZPZPZVRHDEGFIVHVJVKWDWHUD
    ZVSWAWBVQVLWHUEZVSWAWBVQVLWHUIZVMVNVPWCVLWHUJZVLWDWEWFWGUFZVLWDWEWFWGUGZVLW
    DWEWFWGUKZWIXDHDVRIXEXGXHXFXDWOWIWMWNWOXBULUMUNXCWSWIWMWSXAWQWRWPUQUOWIXDPW
    THVRQTSZVRHQZEGQZTSZABCDEFGHIJKLUPWIXLXOURXDWIXLXNXMTSZXOWIVHWGWEWBVSXLXPUR
    XEXJXIXGXFGEHVRIUSUTWIVHWEWGVSWBXPXOURXEXIXJXFXGEGVRHIVAUTVBVFVCWIXDGFHDIXE
    XJXKXGXHABCDEFGHIJKLVDVGVE $.

  $( Lemma for ~ btwnconn1 .  Now, we establish that ` D ` and ` Q ` are
     equidistant from ` C ` .  (Contributed by Scott Fenton, 8-Oct-2013.) $)
  btwnconn1lem11 $p |- (
     ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ c e. ( EE ` N ) ) /\
           ( d e. ( EE ` N ) /\ b e. ( EE ` N ) /\ E e. ( EE ` N ) ) ) /\
         ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) /\ R e. ( EE ` N ) ) ) /\
         ( ( ( ( A =/= B /\ B =/= C /\ C =/= c ) /\
               ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) /\
             ( ( D Btwn <. A , c >. /\ <. D , c >. Cgr <. C , D >. ) /\
               ( C Btwn <. A , d >. /\ <. C , d >. Cgr <. C , D >. ) ) /\
             ( ( c Btwn <. A , b >. /\ <. c , b >. Cgr <. C , B >. ) /\
               ( d Btwn <. A , b >. /\ <. d , b >. Cgr <. D , B >. ) ) ) /\
           ( ( E Btwn <. C , c >. /\ E Btwn <. D , d >. ) /\
             ( ( C Btwn <. c , P >. /\ <. C , P >. Cgr <. C , d >. ) /\
               ( C Btwn <. d , R >. /\ <. C , R >. Cgr <. C , E >. ) /\
               ( R Btwn <. P , Q >. /\ <. R , Q >. Cgr <. R , P >. ) ) ) ) ) ->
       <. D , C >. Cgr <. Q , C >. ) $=
    ( wcel w3a wa cop cbtwn wbr ccgr wb cee cfv wne btwnconn1lem8 btwnconn1lem9
    cn cv wceq btwnconn1lem10 adantr wi simpr3r adantl simpr2r jca opeq2 breq2d
    anbi2d 3anbi12d anbi12d biimpar simpr1 simp11 simp33 simp31 simp2r1 axcgrid
    3jca opeq1 syl5 breq12d breq1d biimpac simpll simp32 simprlr simpr3 simp2l2
    syl13anc imp opeq2d simp2l1 cgrcomlr syl122anc cgrcom bitrd mpbid ex anbi1d
    3anbi23d imbi12d syl5ibcom com23 mpdd expd exp4d imp31 mpd ccgr3 btwncomand
    simp2r3 cgrcomand brcgr3 syl133anc mpbir3and simpr1r ad2antll simpr 5segofs
    cofs brofs2 sylbird syl333anc ad2antrr mp2and pm2.61dane ) IUFMZAIUAUBZMZBX
    RMZNZCXRMZDXRMZKUGZXRMZNZLUGZXRMZJUGZXRMZHXRMZNZOZEXRMZFXRMZGXRMZNZNZABUCBC
    UCCYDUCNBACPQRBADPQROODAYDPQRDYDPCDPZSROCAYGPQRCYGPZYSSROOYDAYIPZQRYDYIPCBP
    SROYGUUAQRYGYIPDBPSROONZHCYDPQRZHDYGPQRZOZCYDEPQRZCEPZYTSRZOZCYGGPQRZCGPZCH
    PZSRZOZGEFPZQRZGFPZGEPZSRZOZNZOZOZOZDCPZFCPZSRZYGHUVDYGHUHZOUURHYGPZSRZUUQH
    DPZSRZYGDPZUUOSRZNZUVGUVDUVOUVHUVDUVJUVLUVNABCDEFGHIJKLUDZABCDEFGHIJKLUEZAB
    CDEFGHIJKLUIZVHUJYRUVCUVHUVOUVGUKZUVCUUSUUMOZYRUVHUVSUKUVCUUSUUMUVBUUSUUBUU
    PUUSUUIUUNUUEULUMUVBUUMUUBUUJUUMUUIUUTUUEUNZUMUOYRUVHUVTUVSYRUVHUVTUVOUVGUV
    HUVTUVOOZOUUSUUKYTSRZOZUURYGYGPZSRZUUQUVMSRZUVNNZOZYRUVGUVHUWIUWBUVHUWDUVTU
    WHUVOUVHUWCUUMUUSUVHYTUULUUKSYGHCUPUQURUVHUWFUVJUWGUVLUVNUVHUWEUVIUURSYGHYG
    VIUQUVHUVMUVKUUQSYGHDVIUQUSUTVAYRUWIGEUHZUVGUWIUWFYRUWJUWDUWFUWGUVNVBYRXQYP
    YNYHUWFUWJUKXQXSXTYMYQVCZYAYMYNYOYPVDZYAYMYNYOYPVEZYHYJYKYFYAYQVFZGEYGIVGVS
    VJYRUWIUWJUVGUWIUWJOUUOEEPZSRZUUHOZUWOUWESRZUUOUVMSRZUVNNZOZYRUVGUWJUWIUXAU
    WJUWDUWQUWHUWTUWJUUSUWPUWCUUHUWJUUQUUOUURUWOSGEFVIZGEEVIZVKUWJUUKUUGYTSGECU
    PVLUTUWJUWFUWRUWGUWSUVNUWJUURUWOUWESUXCVLUWJUUQUUOUVMSUXBVLUSUTVMYRUXAEFUHZ
    UVGUXAUWPYRUXDUWPUUHUWTVNYRXQYNYOYNUWPUXDUKUWKUWMYAYMYNYOYPVOZUWMEFEIVGVSVJ
    YRUXDUXAUVGYRUWOUWOSRZUUHOZUWRUWOUVMSRZUVMUWOSRZNZOZUVEECPZSRZUKUXDUXAUVGUK
    YRUXKUXMYRUXKOZUUHUXMYRUXFUUHUXJVPUXNUUHUUGYSSRZUXMUXNYTYSUUGSUXNYGDCYRUXKY
    GDUHZUXKUXIYRUXPUXGUWRUXHUXIVQYRXQYHYCYNUXIUXPUKUWKUWNYBYCYEYLYAYQVRZUWMYGD
    EIVGVSVJVTWAUQYRUXOUXMTUXKYRUXOUXLUVESRZUXMYRXQYBYNYBYCUXOUXRTUWKYBYCYEYLYA
    YQWBZUWMUXSUXQCECDIWCWDYRXQYNYBYCYBUXRUXMTUWKUWMUXSUXQUXSECDCIWEWDWFUJWFWGW
    HUXDUXKUXAUXMUVGUXDUXGUWQUXJUWTUXDUXFUWPUUHUXDUWOUUOUWOSEFEUPZVLWIUXDUXHUWS
    UXIUVNUWRUXDUWOUUOUVMSUXTVLUXDUWOUUOUVMSUXTUQWJUTUXDUXLUVFUVESEFCVIUQWKWLWM
    WNVJWOWNVJWPWMVJWQWRUVDYGHUCZOHUVMQRZYGUVKPEUUQPWSRZYGCPZUXLSRZHCPZGCPZSRZO
    ZNZUYAUVGUVDUYJUYAUVDUYBUYCUYIYRUVCHDYGIUWKYHYJYKYFYAYQXAZUXQUWNUVCUUDYRUUB
    UUCUUDUVAVPUMWTUVDUYCYGHPZEGPZSRZUVNUVKUUQSRZUVDUVJUYNUVPYRUVJUYNTUVCYRUVJU
    YMUYLSRZUYNYRXQYPYNYKYHUVJUYPTUWKUWLUWMUYKUWNGEHYGIWCWDYRXQYNYPYHYKUYPUYNTU
    WKUWMUWLUWNUYKEGYGHIWEWDWFUJWGUVRYRUVCGFHDIUWKUWLUXEUYKUXQUVQXBYRUYCUYNUVNU
    YONTZUVCYRXQYHYKYCYNYPYOUYQUWKUWNUYKUXQUWMUWLUXEYGHDEGFIXCXDUJXEUVDUYEUYHUV
    DUUHUYEUVBUUHYRUUBUUFUUHUUNUUTUUEXFXGYRUUHUYETUVCYRUUHUXLUYDSRZUYEYRXQYBYNY
    BYHUUHUYRTUWKUXSUWMUXSUWNCECYGIWCWDYRXQYNYBYHYBUYRUYETUWKUWMUXSUWNUXSECYGCI
    WEWDWFUJWGUVDUUMUYHUVBUUMYRUUBUWAXGYRUUMUYHTUVCYRUUMUYGUYFSRZUYHYRXQYBYPYBY
    KUUMUYSTUWKUXSUWLUXSUYKCGCHIWCWDYRXQYPYBYKYBUYSUYHTUWKUWLUXSUYKUXSGCHCIWEWD
    WFUJWGUOVHUJUVDUYAXHYRUYJUYAOZUVGUKZUVCUYAYRXQYHYKYCYBYNYPYOYBVUAUWKUWNUYKU
    XQUXSUWMUWLUXEUXSXQYHYKNYCYBYNNYPYOYBNNZUYTUYLUVEPUYMUVFPXJRZUYAOUVGVUBVUCU
    YJUYAYGHDCEGFCIXKWIYGHDCEGFCIXIXLXMXNXOXP $.

  $( Lemma for ~ btwnconn1 .  Using a long string of invocations of ~ linecgr ,
     we show that ` D = d ` .  (Contributed by Scott Fenton, 9-Oct-2013.) $)
  btwnconn1lem12 $p |- (
     ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ c e. ( EE ` N ) ) /\
           ( d e. ( EE ` N ) /\ b e. ( EE ` N ) /\ E e. ( EE ` N ) ) ) /\
         ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) /\ R e. ( EE ` N ) ) ) /\
         ( ( ( ( A =/= B /\ B =/= C /\ C =/= c ) /\
               ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) /\
             ( ( D Btwn <. A , c >. /\ <. D , c >. Cgr <. C , D >. ) /\
               ( C Btwn <. A , d >. /\ <. C , d >. Cgr <. C , D >. ) ) /\
             ( ( c Btwn <. A , b >. /\ <. c , b >. Cgr <. C , B >. ) /\
               ( d Btwn <. A , b >. /\ <. d , b >. Cgr <. D , B >. ) ) ) /\
           ( ( E Btwn <. C , c >. /\ E Btwn <. D , d >. ) /\
             ( ( C Btwn <. c , P >. /\ <. C , P >. Cgr <. C , d >. ) /\
               ( C Btwn <. d , R >. /\ <. C , R >. Cgr <. C , E >. ) /\
               ( R Btwn <. P , Q >. /\ <. R , Q >. Cgr <. R , P >. ) ) ) ) ) ->
       D = d ) $=
    ( wcel w3a wa cop cbtwn wbr ccgr wi cee cfv wne wceq simp11 simp2l1 simp2l3
    cn cv simp31 simp32 simp1l3 ad2antrl ccolin ad2antll btwncolinear5 syl13anc
    simpr1l simp2l2 simp2r1 simpr1r simp2rr cgrtrand btwnconn1lem11 cgrcomlrand
    adantr mpd weq simp12 simp13 simp2r2 simp1rr btwnexchand btwnexch3and opeq1
    simp2ll simp3ll breq2d biimpac axbtwnid syl3anc syl5 expd simp1 simp2l 3jca
    simp2r simprl jca btwnconn1lem7 syl2an simp2rl simp3rl btwncolinear2 simp33
    simpr2r btwnconn1lem5 breq1d anbi1d simp2r3 breq12d biimpar necon3d simpr2l
    simpl opeq2 cgrid2 syland mp2and btwncolinear4 simpr3r cgrcomand linecgrand
    biimprd syl6ci com12 adantrl btwncolinear1 btwncolinear6 an12s ex pm2.61ine
    simp1rl btwnconn1lem10 biimpa axcgrid eqcomd ) IUHMZAIUAUBZMZBYIMZNZCYIMZDY
    IMZKUIZYIMZNZLUIZYIMZJUIZYIMZHYIMZNZOZEYIMZFYIMZGYIMZNZNZABUCZBCUCZCYOUCZNZ
    BACPQRZBADPQRZOZOZDAYOPQRZDYOPCDPZSRZOZCAYRPQRZCYRPZUUSSRZOZOZYOAYTPZQRZYOY
    TPCBPSRZOZYRUVGQRZYRYTPZDBPSRZOZOZNZHCYOPZQRHDYRPQROZCYOEPZQRZCEPUVCSRZOZCY
    RGPQRZCGPZCHPZSRZOZGEFPZQRZGFPGEPSRZOZNZOZOZOZYRDUWOEFUDZYRDPZUWHSRZYRDUDZU
    WOEEPUWHSRZUWPUUIUWNCYOEEFIYHYJYKUUDUUHUEZYMYNYPUUCYLUUHUFZYMYNYPUUCYLUUHUG
    ZYLUUDUUEUUFUUGUJZUXDYLUUDUUEUUFUUGUKZUVPUULUUIUWMUUJUUKUULUUPUVFUVOULUMZUW
    OUVTCUVSUNRZUWMUVTUUIUVPUVTUWAUWGUWKUVRURUOUUIUVTUXGTZUWNUUIYHYPUUEYMUXHUXA
    UXCUXDUXBYOECIUPUQVFVGUUIUWNCECDCFIUXAUXBUXDUXBYMYNYPUUCYLUUHUSZUXBUXEUUIUW
    NCECYRCDIUXAUXBUXDUXBYSUUAUUBYQYLUUHUTZUXBUXIUWMUWAUUIUVPUVTUWAUWGUWKUVRVAU
    OUVPUVDUUIUWMUVBUVDUVAUUQUVOVBUMVCUUIUWNDCFCIUXAUXIUXBUXEUXBABCDEFGHIJKLVDV
    EVCZUWOUVSYOFPZSRZTBYTUWOBYTUDZUXMUWOUXNKJVHZYTEPZYTFPZSRZUXMUWOYOBYTPZQRZU
    XNUXOTZUUIUWNABYOYTIUXAYHYJYKUUDUUHVIZYHYJYKUUDUUHVJZUXCYSUUAUUBYQYLUUHVKZU
    UIUWNABDYOIUXAUYBUYCUXIUXCUVPUUOUUIUWMUUNUUOUUMUVFUVOVLUMUVPUURUUIUWMUURUUT
    UVEUUQUVOVPUMVMUVPUVHUUIUWMUVHUVIUVNUUQUVFVQUMVNZUUIUXTUYATUWNUUIUXTUXNUXOU
    XTUXNOYOYTYTPZQRZUUIUXOUXNUXTUYGUXNUXSUYFYOQBYTYTVOVRVSUUIYHYPUUAUYGUXOTUXA
    UXCUYDYOYTIVTWAWBWCVFVGUUIUWNCYRYTEFIUXAUXBUXJUYDUXDUXEUUIYLYQUUCNZUVPUVROZ
    CYRUCUWNUUIYLYQUUCYLUUDUUHWDYLYQUUCUUHWEYLYQUUCUUHWGWFZUWNUVPUVRUVPUWMXEUVP
    UVRUWLWHWIZABCDHIJKLWJWKZUWOYRCYTPQRZCUVLUNRZUUIUWNACYRYTIUXAUYBUXBUXJUYDUV
    PUVBUUIUWMUVBUVDUVAUUQUVOWLUMZUVPUVKUUIUWMUVKUVMUVJUUQUVFWMUMVNUUIUYMUYNTZU
    WNUUIYHYMUUAYSUYPUXAUXBUYDUXJCYTYRIWNUQVFVGUXKUUIUWNGCYREFIUXAYLUUDUUEUUFUU
    GWOZUXBUXJUXDUXEUWOUULGCUCUXFUWOGCCYOUWOUWFHCPZHYOPZSRZGCUDZCYOUDZTZUWMUWFU
    UIUVPUWCUWFUWBUWKUVRWPUOUUIUYHUYIUYTUWNUYJUYKABCDHIJKLWQWKUUIUWFUYTOZVUCTUW
    NUUIVUDVUAVUBVUDVUAOCCPZUWESRZUYTOZUUIVUBVUAVUDVUGVUAUWFVUFUYTVUAUWDVUEUWES
    GCCXFWRWSVSUUIVUFCHUDZUYTVUBUUIYHYMYMUUBVUFVUHTUXAUXBUXBYSUUAUUBYQYLUUHWTCC
    HIXGUQVUHUYTOVUEUVQSRZUUIVUBVUHVUIUYTVUHVUEUYRUVQUYSSCHCVOCHYOVOXAXBUUIYHYM
    YMYPVUIVUBTUXAUXBUXBUXCCCYOIXGUQWBXHWBWCVFXIXCVGUWOUWCGUVCUNRZUWMUWCUUIUVPU
    WCUWFUWBUWKUVRXDUOUUIUWCVUJTZUWNUUIYHYSUUGYMVUKUXAUXJUYQUXBYRGCIXJUQVFVGUUI
    UWNGFGEIUXAUYQUXEUYQUXDUWMUWJUUIUVPUWIUWJUWBUWGUVRXKUOXLUXKXMZXMZUXOUXMUXRU
    XOUVSUXPUXLUXQSYOYTEVOYOYTFVOXAXNXOXPBYTUCZUWOUXMUUIVUNUWNUXMUUIVUNUWNOZBYT
    YOEFIUXAUYCUYDUXCUXDUXEUUIVUNUWNWHUUIVUOOUXTBYTYOPUNRZUUIUWNUXTVUNUYEXQUUIU
    XTVUPTZVUOUUIYHYKUUAYPVUQUXAUYCUYDUXCBYTYOIXRUQVFVGUUIUWNBEPBFPSRVUNUUIUWNC
    YRBEFIUXAUXBUXJUYCUXDUXEUYLUWOCBYRPQRZCYRBPUNRZUUIUWNABCYRIUXAUYBUYCUXBUXJU
    VPUUNUUIUWMUUNUUOUUMUVFUVOYCUMUYOVNUUIVURVUSTZUWNUUIYHYKYSYMVUTUXAUYCUXJUXB
    BYRCIXSUQVFVGUXKVULXMXQUUIUWNUXRVUNVUMXQXMXTYAYBXMUUIUWTUWPTZUWNUUIYHUUEUUE
    UUFVVAUXAUXDUXDUXEEEFIXGUQVFVGABCDEFGHIJKLYDUUIUWPUWROZUWSTUWNVVBUWQFFPZSRZ
    UUIUWSUWPUWRVVDUWPUWHVVCUWQSEFFVOVRYEUUIYHYSYNUUFVVDUWSTUXAUXJUXIUXEYRDFIYF
    UQWBVFXIYG $.

  ${
    $d A e p q r $.  $d B e p q r $.  $d C e p q r $.  $d D e p q r $.
    $d N e p q r $.  $d b e p q r $.  $d c e p q r $.  $d d e p q r $.
    $( Lemma for ~ btwnconn1 .  Begin back-filling and eliminating hypotheses.
       (Contributed by Scott Fenton, 9-Oct-2013.) $)
    btwnconn1lem13 $p |- (
     ( ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ c e. ( EE ` N ) ) /\
           ( d e. ( EE ` N ) /\ b e. ( EE ` N ) ) ) ) /\
         ( ( ( A =/= B /\ B =/= C ) /\
               ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) /\
             ( ( D Btwn <. A , c >. /\ <. D , c >. Cgr <. C , D >. ) /\
               ( C Btwn <. A , d >. /\ <. C , d >. Cgr <. C , D >. ) ) /\
             ( ( c Btwn <. A , b >. /\ <. c , b >. Cgr <. C , B >. ) /\
               ( d Btwn <. A , b >. /\ <. d , b >. Cgr <. D , B >. ) ) ) ) ->
       ( C = c \/ D = d ) ) $=
      ( vp vr wcel w3a cv wa cop cbtwn wbr ccgr adantr ad3antrrr ve cee cfv wne
      vq cn wceq wn df-ne wrex simp2rl simp2ll wb simpl1 simprl1 simpl2 simprrl
      btwncom syl13anc simprl2 simprl3 anbi12d syl5ib wi axpasch syl132anc syld
      jca imp simpll1 axsegcon syl122anc reeanv sylanbrc ad2antrr simprl simprr
      simpr simp-4l simplrl simprrr simpllr 3jca simplrr simp1ll btwnconn1lem12
      simp1lr simpl1r simpll2 simpl3l simpl3r jca32 syl2an an4s rexlimddv exp32
      rexlimdvv mpd expr syl5bir orrd ) EUFKZAEUBUCZKZBXCKZLZCXCKZDXCKZGMZXCKZL
      ZHMZXCKZFMZXCKZNZNZNZABUDZBCUDZNZBACOPQBADOPQNZNZDAXIOPQZDXIOCDOZRQZNZCAX
      LOPQZCXLOZYERQZNZNZXIAXNOZPQXIXNOCBORQNZXLYMPQXLXNODBORQNZNZLZNZCXIUGZDXL
      UGZYSUHCXIUDZYRYTCXIUIXRYQUUAYTXRYQUUANZNUAMZCXIOPQUUCDXLOPQNZYTUAXCXRUUB
      UUDUAXCUJZXRUUBCXLAOPQZDXIAOPQZNZUUEUUBYHYDNXRUUHUUBYHYDYQYHUUAYHYJYGYCYP
      UKSYQYDUUAYDYFYKYCYPULSVHXRYHUUFYDUUGXRXBXGXDXMYHUUFUMXBXDXEXQUNZXGXHXJXP
      XFUOZXBXDXEXQUPZXFXKXMXOUQZCAXLEURUSXRXBXHXDXJYDUUGUMUUIXGXHXJXPXFUTZUUKX
      GXHXJXPXFVAZDAXIEURUSVBVCXRXBXMXJXDXGXHUUHUUEVDUUIUULUUNUUKUUJUUMUAXLXIAC
      DEVEVFVGVIXRUUCXCKZUUBUUDYTXRUUONZUUBUUDNZNZCXIIMZOPQCUUSOYIRQNZCXLJMZOPQ
      CUVAOCUUCORQNZNZJXCUJIXCUJZYTUUPUVDUUQUUPUUTIXCUJZUVBJXCUJZUVDUUPXBXJXGXG
      XMUVEXBXDXEXQUUOVJZXRXJUUOUUNSXRXGUUOUUJSZUVHXRXMUUOUULSZIXICCXLEVKVLUUPX
      BXMXGXGUUOUVFUVGUVIUVHUVHXRUUOVRJXLCCUUCEVKVLUUTUVBIJXCXCVMVNSUURUVCYTIJX
      CXCUURUUSXCKZUVAXCKZNZUVCYTUUPUVLUUQUVCYTUUPUVLNZUUQUVCNZNUVAUUSUEMZOPQUV
      AUVOOUVAUUSORQNZYTUEXCUVMUVPUEXCUJZUVNUVMXBUVJUVKUVKUVJUVQXRXBUUOUVLUUIVO
      UUPUVJUVKVPZUUPUVJUVKVQZUVSUVRUEUUSUVAUVAUUSEVKVLSUVMUVOXCKZUVNUVPYTUVMUV
      TNZXFXKXMXOUUOLZNZUVJUVTUVKLZLXSXTUUALZYBNZYLYPLZUUDUUTUVBUVPLZNNYTUVNUVP
      NZUWAXFUWCUWDXFXQUUOUVLUVTVSUWAXKUWBUUPXKUVLUVTXFXKXPUUOVTVOUWAXMXOUUOXRX
      MUUOUVLUVTUULTXRXOUUOUVLUVTXFXKXMXOWATXRUUOUVLUVTWBWCVHUWAUVJUVTUVKUUPUVJ
      UVKUVTVTUVMUVTVRUUPUVJUVKUVTWDWCWCUWIUWGUUDUWHUWIUWFYLYPUWIUWEYBUWIXSXTUU
      AUVNXSUVPYQXSUUAUUDUVCXSXTYBYLYPWETSUVNXTUVPYQXTUUAUUDUVCXSXTYBYLYPWGTSUV
      NUUAUVPYQUUAUUDUVCWBSWCUUBYBUUDUVCUVPYAYBYLYPUUAWHTVHUUQYLUVCUVPYCYLYPUUA
      UUDWIVOUWIYNYOUUBYNUUDUVCUVPYNYOYCYLUUAWJTUUBYOUUDUVCUVPYNYOYCYLUUAWKTVHW
      CUUBUUDUVCUVPWBUWIUUTUVBUVPUUQUUTUVBUVPVTUUQUUTUVBUVPWDUVNUVPVRWCWLABCDUU
      SUVOUVAUUCEFGHWFWMWNWOWNWPWQWRWNWOWSWTXA $.
  $}

  ${
    $d A b c d x $.  $d B b c d x $.  $d C b c d x $.  $d D b c d x $.
    $d N b c d x $.
    $( Lemma for ~ btwnconn1 .  Final statement of the theorem when
       ` B =/= C ` .  (Contributed by Scott Fenton, 9-Oct-2013.) $)
    btwnconn1lem14 $p |- ( (
     ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
       ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) /\
       ( ( A =/= B /\ B =/= C ) /\
         ( B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ) ) ->
         ( C Btwn <. A , D >. \/ D Btwn <. A , C >. ) ) $=
      ( vc vd vb vx wcel wa w3a cop cbtwn wbr cv ccgr wrex axsegcon 3jca cn cee
      cfv wne simp1 simp2l simp3r simp3 syl121anc simp3l reeanv sylanbrc adantr
      wo wceq simpl1 simpl2l simprl simpl3l simpl2r syl122anc simprr jca sylibr
      simpl3r weq simplrr simpll simplr simpr btwnconn1lem2 syl2an opeq2 breq2d
      breq1d anbi12d anbi2d biimpac jca32 btwnconn1lem13 syl5 expdimp mpd exp32
      ex an4s rexlimdvv orcom simprrl adantl syl5ibrcom simprll orim12d syl5bi
      ) EUAJZAEUBUCZJZBWPJZKZCWPJZDWPJZKZLZABUDBCUDKBACMZNOBADMZNOKKZKZDAFPZMZN
      OZDXHMCDMZQOZKZCAGPZMZNOZCXNMXKQOZKZKZGWPRFWPRZCXENOZDXDNOZUNZXCXTXFXCXMF
      WPRZXRGWPRZXTXCWOWQXAXBYDWOWSXBUEZWOWQWRXBUFZWOWSWTXAUGWOWSXBUHZFADCDESUI
      XCWOWQWTXBYEYFYGWOWSWTXAUJYHGACCDESUIXMXRFGWPWPUKULUMXGXSYCFGWPWPXGXHWPJZ
      XNWPJZKZXSYCXCYKXFXSYCXCYKKZXFXSKZKZCXHUOZDXNUOZUNZYCYNXHAHPZMZNOXHYRMCBM
      QOKZXNAIPZMZNOZXNUUAMZDBMZQOZKZKZIWPRHWPRZYQYNYTHWPRZUUGIWPRZKZUUIYLUULYM
      YLUUJUUKYLWOWQYIWTWRUUJWOWSXBYKUPZWQWRWOXBYKUQZXCYIYJURZWTXAWOWSYKUSZWQWR
      WOXBYKUTZHAXHCBESVAYLWOWQYJXAWRUUKUUMUUNXCYIYJVBWTXAWOWSYKVEZUUQIAXNDBESV
      AVCUMYTUUGHIWPWPUKVDYNUUHYQHIWPWPYNYRWPJZUUAWPJZKZUUHYQYLUVAYMUUHYQYLUVAK
      ZYMUUHKZKIHVFZYQUVBWOWQWRLZWTXAYILZYJUUSUUTLZLXFXSUUHLUVDUVCUVBUVEUVFUVGY
      LUVEUVAYLWOWQWRUUMUUNUUQTUMZYLUVFUVAYLWTXAYIUUPUURUUOTUMZUVBYJUUSUUTXCYIY
      JUVAVGZYLUUSUUTURZYLUUSUUTVBTTUVCXFXSUUHXFXSUUHVHXFXSUUHVIYMUUHVJTABCDEUU
      AHFGVKVLUVBUVCUVDYQUVCUVDKYMYTXNYSNOZXNYRMZUUEQOZKZKZKZUVBYQUVDUVCUVQUVDU
      UHUVPYMUVDUUGUVOYTUVDUUCUVLUUFUVNUVDUUBYSXNNUUAYRAVMVNUVDUUDUVMUUEQUUAYRX
      NVMVOVPVQVQVRUVBUVQYQUVBUVEUVFYJUUSKZKKXFXSUVPLYQUVQUVBUVEUVFUVRUVHUVIUVB
      YJUUSUVJUVKVCVSUVQXFXSUVPXFXSUVPVHXFXSUVPVIYMUVPVJTABCDEHFGVTVLWEWAWBWCWF
      WDWGWCYQYPYOUNYNYCYOYPWHYNYPYAYOYBYNYAYPXPYMXPYLXFXMXPXQWIWJYPXEXOCNDXNAV
      MVNWKYNYBYOXJYMXJYLXFXJXLXRWLWJYOXDXIDNCXHAVMVNWKWMWNWCWFWDWGWC $.
  $}

  $( Connectitivy law for betweenness.  Theorem 5.1 of [Schwabhauser] p. 39-41.
     (Contributed by Scott Fenton, 9-Oct-2013.) $)
  btwnconn1 $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
     ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
     ( ( A =/= B /\ B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ->
       ( C Btwn <. A , D >. \/ D Btwn <. A , C >. ) ) ) $=
    ( cn wcel cee cfv wa w3a wne cop cbtwn wbr wo wi wceq breq1 ex orc 3ad2ant3
    3anbi3d syl6bi simpr1 simpl 3simpc adantl jca31 btwnconn1lem14 sylan2 an12s
    adantld pm2.61ine ) EFGAEHIZGBUOGJCUOGDUOGJKZABLZBACMZNOZBADMZNOZKZCUTNOZDU
    RNOZPZUPVBJZVEQBCBCRZVBVEUPVGVBUQUSVCKVEVGVAVCUQUSBCUTNSUCVCUQVEUSVCVDUAUBU
    DUMBCLZVFVEUPVHVBVEVHVBJZUPUQVHJUSVAJZJVEVIUQVHVJVHUQUSVAUEVHVBUFVBVJVHUQUS
    VAUGUHUIABCDEUJUKULTUNT $.

  $( Another connectivity law for betweenness.  Theorem 5.2 of [Schwabhauser]
     p. 41.  (Contributed by Scott Fenton, 9-Oct-2013.) $)
  btwnconn2 $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
    ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
    ( ( A =/= B /\ B Btwn <. A , C >. /\ B Btwn <. A , D >. ) ->
      ( C Btwn <. B , D >. \/ D Btwn <. B , C >. ) ) ) $=
    ( cn wcel cee cfv wa w3a wne cop cbtwn wbr wo btwnconn1 wi btwnexch3 ex mpd
    simpr2 anim1i ad2antrr simpr3 simp3r simp3l jca syld3an3 mpand orim12d mpdd
    adantr ) EFGZAEHIZGBUOGJZCUOGZDUOGZJZKZABLZBACMZNOZBADMZNOZKZCVDNOZDVBNOZPZ
    CBDMNOZDBCMNOZPZABCDEQUTVFVIVLRUTVFJZVGVJVHVKVMVGVJVMVGJVCVGJZVJVMVCVGUTVAV
    CVEUBUCUTVNVJRVFVGABCDESUDUATVMVEVHVKUTVAVCVEUEUTVEVHJVKRZVFUNUPUSURUQJVOUT
    URUQUNUPUQURUFUNUPUQURUGUHABDCESUIUMUJUKTUL $.

  ${
    $d N p $.  $d A p $.  $d B p $.  $d C p $.  $d D p $.
    $( Inner connectivity law for betweenness.  Theorem 5.3 of [Schwabhauser]
       p. 41.  (Contributed by Scott Fenton, 9-Oct-2013.) $)
    btwnconn3 $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
    ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
    ( ( B Btwn <. A , D >. /\ C Btwn <. A , D >. ) ->
      ( B Btwn <. A , C >. \/ C Btwn <. A , B >. ) ) ) $=
      ( vp cn wcel cee cfv wa w3a cv cop cbtwn wbr wne btwncomand btwnexch3and
      wi wo simp1 simp3r simp2l btwndiff syl3anc simprlr necomd simpl2l simpl2r
      wrex simpr simpl3r simprrl simprll simpl3l simprrr ex btwnconn2 syl122anc
      simpl1 3jca syld expd rexlimdva mpd ) EGHZAEIJZHZBVHHZKZCVHHZDVHHZKZLZADF
      MZNOPZAVPQZKZFVHUKZBADNZOPZCWAOPZKZBACNOPCABNOPUAZTZVOVGVMVIVTVGVKVNUBVGV
      KVLVMUCVGVIVJVNUDDAEFUEUFVOVSWFFVHVOVPVHHZKZVSWDWEWHVSWDKZVPAQZAVPBNOPZAV
      PCNOPZLZWEWHWIWMWHWIKZWJWKWLWNAVPWHVQVRWDUGUHWHWIABVPEVGVKVNWGVAZVIVJVGVN
      WGUIZVIVJVGVNWGUJZVOWGULZWHWIDBAVPEWOVLVMVGVKWGUMZWQWPWRWHWIBADEWOWQWPWSW
      HVSWBWCUNRWHVQVRWDUOZSRWHWIACVPEWOWPVLVMVGVKWGUPZWRWHWIDCAVPEWOWSXAWPWRWH
      WICADEWOXAWPWSWHVSWBWCUQRWTSRVBURWHVGWGVIVJVLWMWETWOWRWPWQXAVPABCEUSUTVCV
      DVEVF $.
  $}

  $( If two points fall in the same place in the middle of a segment, then they
     are identical.  (Contributed by Scott Fenton, 16-Oct-2013.)  (Revised by
     Mario Carneiro, 19-Apr-2014.) $)
  midofsegid $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
   ( D e. ( EE ` N ) /\ E e. ( EE ` N ) ) ) ->
   ( ( D Btwn <. A , B >. /\ E Btwn <. A , B >. /\
       <. A , D >. Cgr <. A , E >. ) -> D = E ) ) $=
    ( cn wcel cee cfv wa w3a cop cbtwn wbr ccgr wceq simprl3 endofsegidand expr
    simprr simp2l simp3r simp3l cgrcomand eqcomd 3simpa adantl simp2r btwnconn3
    simp1 wo wi syl122anc adantr mpd mpjaod ex ) EFGZAEHIZGZBUSGZJZCUSGZDUSGZJZ
    KZCABLZMNZDVGMNZACLZADLZONZKZCDPZVFVMJZCVKMNZVNDVJMNZVFVMVPVNVFVMVPJZJDCVFV
    RADCEURVBVEUJZURUTVAVEUAZURVBVCVDUBZURVBVCVDUCZVFVMVPTVFVRACADEVSVTWBVTWAVH
    VIVLVPVFQUDRUESVFVMVQVNVFVMVQJACDEVSVTWBWAVFVMVQTVHVIVLVQVFQRSVOVHVIJZVPVQU
    KZVMWCVFVHVIVLUFUGVFWCWDULZVMVFURUTVCVDVAWEVSVTWBWAURUTVAVEUHACDBEUIUMUNUOU
    PUQ $.

  ${
    $d Q a x $.  $d N a x $.  $d A a x $.  $d B a x $.  $d C a x $.
    $( Generalization of ~ axsegcon .  This time, we generate an endpoint for a
       segment on the ray ` Q A ` congruent to ` B C ` and starting at ` Q ` ,
       as opposed to ~ axsegcon , where the segment starts at ` A `
       (Contributed by Scott Fenton, 14-Oct-2013.)  (Removed unneeded
       inequality, 15-Oct-2013.) $)
    segcon2 $p |- ( ( N e. NN /\
       ( Q e. ( EE ` N ) /\ A e. ( EE ` N ) ) /\
       ( B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
         E. x e. ( EE ` N ) ( ( A Btwn <. Q , x >. \/ x Btwn <. Q , A >. ) /\
           <. Q , x >. Cgr <. B , C >. ) ) $=
      ( va wcel wa w3a cv cop cbtwn wbr wrex wne axsegcon adantr wi mpd cee cfv
      cn ccgr wceq breq1 orbi1d anbi1d rexbidv simp1 simp2 ancomd syl3anc simpr
      wo simpl1 simpl2l simpl3 syl121anc anass df-3an simpr1 wb simpr2r simpl2r
      simprl syl122anc necon3bid mpbird necomd simpr2l btwncomand simpr3 simprr
      cgrdegen btwnconn2 mp3and sylan2br anim1d sylanb an32s reximdva rexlimdva
      expr simp2l simp3 orc anim1i reximi syl pm2.61ne ) FUCHZEFUAUBZHZBWMHZIZC
      WMHDWMHIZJZBEAKZLZMNZWSEBLMNZUOZWTCDLUDNZIZAWMOZEWTMNZXBUOZXDIZAWMOZBEBEU
      EZXEXIAWMXKXCXHXDXKXAXGXBBEWTMUFUGUHUIWRBEPZIZEBGKZLMNZEXNLBELUDNZIZGWMOZ
      XFWRXRXLWRWLWOWNIZXSXRWLWPWQUJZWRWNWOWLWPWQUKULZYAGBEBEFQUMRXMXQXFGWMWRXN
      WMHZXLXQXFSWRYBIZXLXQXFYCXLXQIZIZEXNWSLMNZXDIZAWMOZXFYCYHYDYCWLYBWNWQYHWL
      WPWQYBUPWRYBUNWNWOWLWQYBUQWLWPWQYBURAXNECDFQUSRYEYGXEAWMYCWSWMHZYDYGXESZY
      CYIIWRYBYIIZIZYDYJWRYBYIUTYLYDIYFXCXDYLYDYFXCYDYFIYLXLXQYFJZXCXLXQYFVAYLY
      MIZXNEPZEXNBLMNZYFXCYNEXNYNEXNPXLYLXLXQYFVBYNEXNBEYNXPEXNUEXKVCZXOXPXLYFY
      LVDYLXPYQSZYMYLWLWNYBWOWNYRWLWPWQYKUPZWNWOWLWQYKUQZWRYBYIVFZWNWOWLWQYKVEZ
      YTEXNBEFVOVGRTVHVIVJYLYMEBXNFYSYTUUBUUAXOXPXLYFYLVKVLYLXLXQYFVMYLYOYPYFJX
      CSZYMYLWLYBWNWOYIUUCYSUUAYTUUBWRYBYIVNXNEBWSFVPVGRVQVRWDVSVTWAWBTWDWAWCTW
      RXGXDIZAWMOZXJWRWLWNWNWQUUEXTWLWNWOWQWEZUUFWLWPWQWFAEECDFQUSUUDXIAWMXGXHX
      DXGXBWGWHWIWJWK $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Segment less than or equal to
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c Seg<_ $.

  $( Declare the constant for the segment less than or equal to
     relationship. $)
  csegle $a class Seg<_ $.

  ${
    $d p q n a b c d y $.
    $( Define the segment length comparison relationship.  This relationship
       expresses that the segment ` A B ` is no longer than ` C D ` .  In this
       section, we establish various properties of this relationship showing
       that it is a transitive, reflexive relationship on pairs of points that
       is substitutive under congruence.  Definition 5.4 of [Schwabhauser]
       p. 41.  (Contributed by Scott Fenton, 11-Oct-2013.) $)
    df-segle $a |- Seg<_ = { <. p , q >. |
       E. n e. NN E. a e. ( EE ` n ) E. b e. ( EE ` n ) E. c e. ( EE ` n )
       E. d e. ( EE ` n ) ( p = <. a , b >. /\ q = <. c , d >. /\
         E. y e. ( EE ` n ) ( y Btwn <. c , d >. /\
                              <. a , b >. Cgr <. c , y >. ) ) } $.
  $}

  ${
    $d A a $.  $d a b $.  $d A b $.  $d a c $.  $d A c $.  $d a d $.  $d A d $.
    $d a n $.  $d A n $.  $d a p $.  $d A p $.  $d a q $.  $d A q $.  $d a y $.
    $d A y $.  $d B a $.  $d B b $.  $d b c $.  $d B c $.  $d b d $.  $d B d $.
    $d b n $.  $d B n $.  $d b p $.  $d B p $.  $d b q $.  $d B q $.  $d b y $.
    $d B y $.  $d C a $.  $d C b $.  $d C c $.  $d c d $.  $d C d $.  $d c n $.
    $d C n $.  $d c p $.  $d C p $.  $d c q $.  $d C q $.  $d c y $.  $d C y $.
    $d D a $.  $d D b $.  $d D c $.  $d D d $.  $d d n $.  $d D n $.  $d d p $.
    $d D p $.  $d d q $.  $d D q $.  $d d y $.  $d D y $.  $d N a $.  $d N b $.
    $d N c $.  $d N d $.  $d N n $.  $d n p $.  $d n q $.  $d n y $.  $d N y $.
    $d p q $.  $d p y $.  $d q y $.
    $( Binary relation form of the segment comparison relationship.
       (Contributed by Scott Fenton, 11-Oct-2013.) $)
    brsegle $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
        ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
        ( <. A , B >. Seg<_ <. C , D >. <->
          E. y e. ( EE ` N ) ( y Btwn <. C , D >. /\
                  <. A , B >. Cgr <. C , y >. ) ) ) $=
      ( va vb vc vd vn cop wbr cv wceq wa wrex w3a cn wcel vp csegle cbtwn ccgr
      cee cfv opex eqeq1 eqcom syl6bb 3anbi1d rexbidv 2rexbidv 3anbi2d df-segle
      vq brab vex opth biid 3anbi123i 2rexbii rexbii wi simpl2l ad2antrl eleenn
      syl simprlr simprll adantl axdimuniq syl22anc fveq2d rexeqdv exbiri eleq1
      anassrs bi2anan9 anbi2d opeq12 breq1d breq2d opeq1 adantr sylan9bb imbi1d
      wb anbi12d 3imtr4d com12 expd 3impd rexlimdvv rexlimdvva rexlimdva syl5bi
      simpl1 simpl2r simpl3l simpl3r eqidd simpr eqeq1d 3anbi23d anbi1d rspc2ev
      expr opeq2 syl113anc 3anbi13d syl3anc 3anbi3d rexeqbidv rspcev syl2anc ex
      fveq2 impbid syl5bb ) BCLZDELZUBMGNZHNZLZYAOZINZJNZLZYBOZANZYIUCMZYEYGYKL
      ZUDMZPZAKNZUEUFZQZRZJYQQZIYQQZHYQQZGYQQZKSQZFSTZBFUEUFZTZCUUFTZPZDUUFTZEU
      UFTZPZRZYKYBUCMZYADYKLZUDMZPZAUUFQZUANZYEOZUPNZYIOZYRRZJYQQZIYQQHYQQZGYQQ
      KSQYFUVBYRRZJYQQZIYQQHYQQZGYQQKSQUUDUAUPYAYBUBBCUGDEUGUUSYAOZUVEUVHKGSYQU
      VIUVDUVGHIYQYQUVIUVCUVFJYQUVIUUTYFUVBYRUVIUUTYAYEOYFUUSYAYEUHYAYEUIUJUKUL
      UMUMUVAYBOZUVHUUBKGSYQUVJUVGYTHIYQYQUVJUVFYSJYQUVJUVBYJYFYRUVJUVBYBYIOYJU
      VAYBYIUHYBYIUIUJUNULUMUMAKUPUAGHIJUOUQUUMUUDUURUUDYCBOZYDCOZPZYGDOZYHEOZP
      ZYRRZJYQQIYQQZHYQQGYQQZKSQUUMUURUUCUVSKSUUAUVRGHYQYQYSUVQIJYQYQYFUVMYJUVP
      YRYRYCYDBCGURHURUSYGYHDEIURJURUSYRUTVAVBVBVCUUMUVSUURKSUUMYPSTZPZUVRUURGH
      YQYQUWAYCYQTZYDYQTZPZPUVQUURIJYQYQUWAUWDYGYQTZYHYQTZPZUVQUURVDUWAUWDUWGPZ
      PZUVMUVPYRUURUWIUVMUVPYRUURVDZUVMUVPPZUWIUWJUWKUWABYQTZCYQTZPZDYQTZEYQTZP
      ZPZPZUUQAYQQZUURVDZUWIUWJUVKUVLUVPUWSUXAVDUVKUVLUVPPPZUWSUURUWTUXBUWSPZUU
      QAUUFYQUXCFYPUEUXCUUEUUGUVTUWLFYPOUXCUUGUUEUWAUUGUXBUWRUUGUUHUUEUULUVTVEV
      FZBFVGVHUXDUXBUUMUVTUWRVIUWSUWLUXBUWAUWLUWMUWQVJVKBYPFVLVMVNVOVPVRUWKUWHU
      WRUWAUVMUWDUWNUVPUWGUWQUVKUWBUWLUVLUWCUWMYCBYQVQYDCYQVQVSUVNUWEUWOUVOUWFU
      WPYGDYQVQYHEYQVQVSVSVTUWKYRUWTUURUWKYOUUQAYQUVMYOYLYAYMUDMZPZUVPUUQUVMYNU
      XEYLUVMYEYAYMUDYCYDBCWAWBVTUVPYLUUNUXEUUPUVPYIYBYKUCYGYHDEWAWCUVNUXEUUPWH
      UVOUVNYMUUOYAUDYGDYKWDWCZWEWIWFULWGWJWKWLWMXHWNWOWPWQUUMUURUUDUUMUURPZUUE
      YFYJYOAUUFQZRZJUUFQZIUUFQZHUUFQZGUUFQZUUDUUEUUIUULUURWRUXHUUGUUHYAYAOZYJU
      XFAUUFQZRZJUUFQIUUFQZUXNUUGUUHUUEUULUURVEUUGUUHUUEUULUURWSUXHUUJUUKUXOYBY
      BOZUURUXRUUJUUKUUEUUIUURWTUUJUUKUUEUUIUURXAUXHYAXBUXHYBXBUUMUURXCUXQUXOUX
      SUURRUXODYHLZYBOZYKUXTUCMZUUPPZAUUFQZRIJDEUUFUUFUVNYJUYAUXPUYDUXOUVNYIUXT
      YBYGDYHWDZXDUVNUXFUYCAUUFUVNYLUYBUXEUUPUVNYIUXTYKUCUYEWCUXGWIULXEUVOUYAUX
      SUYDUURUXOUVOUXTYBYBYHEDXIZXDUVOUYCUUQAUUFUVOUYBUUNUUPUVOUXTYBYKUCUYFWCXF
      ULXEXGXJUXLUXRBYDLZYAOZYJYLUYGYMUDMZPZAUUFQZRZJUUFQIUUFQGHBCUUFUUFUVKUXJU
      YLIJUUFUUFUVKYFUYHUXIUYKYJUVKYEUYGYAYCBYDWDZXDUVKYOUYJAUUFUVKYNUYIYLUVKYE
      UYGYMUDUYMWBVTULXKUMUVLUYLUXQIJUUFUUFUVLUYHUXOUYKUXPYJUVLUYGYAYAYDCBXIZXD
      UVLUYJUXFAUUFUVLUYIUXEYLUVLUYGYAYMUDUYNWBVTULXKUMXGXLUUCUXNKFSYPFOZUUBUXM
      GYQUUFYPFUEXRZUYOUUAUXLHYQUUFUYPUYOYTUXKIYQUUFUYPUYOYSUXJJYQUUFUYPUYOYRUX
      IYFYJUYOYOAYQUUFUYPVOXMXNXNXNXNXOXPXQXSXT $.
  $}

  ${
    $d N x y $.  $d A x y $.  $d B x y $.  $d C x y $.  $d D x y $.
    $( Alternate characterization of segment comparison.  Theorem 5.5 of
       [Schwabhauser] p. 41-42.  (Contributed by Scott Fenton, 11-Oct-2013.) $)
    brsegle2 $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
        ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
        ( <. A , B >. Seg<_ <. C , D >. <->
          E. x e. ( EE ` N ) ( B Btwn <. A , x >. /\
                  <. A , x >. Cgr <. C , D >. ) ) ) $=
      ( vy wcel wa w3a cop wbr ccgr wrex wi adantr mpd mp2and wb 3ad2ant1 cn cv
      cee csegle cbtwn brsegle ccgr3 ccolin simprl simpl1 simpl3l simpl3r simpr
      btwncolinear2 syl13anc simpl2l simpl2r simprr cgrcomand lineext syl131anc
      simpl2 simpll1 simplr brcgr3 syl133anc simp2l simp3 mpbird btwnxfr simp32
      an32 cgrcom syl122anc mpbid 3expia sylbid sylanb an32s reximdva rexlimdva
      cfv jca btwncolinear1 simpl3 3jca syl113anc simp2r simp33 cgrcomlr impbid
      ex bitrd ) FUAHZBFUCWBZHZCWOHZIZDWOHZEWOHZIZJZBCKZDEKZUDLGUBZXDUELZXCDXEK
      ZMLZIZGWONZCBAUBZKZUELZXLXDMLZIZAWONZGBCDEFUFXBXJXPXBXIXPGWOXBXEWOHZIZXIX
      PXRXIIZDXEEKZKZBCXKKZKZUGLZAWONZXPXSDXTUHLZXGXCMLZYEXSXFYFXRXFXHUIXRXFYFO
      ZXIXRWNWSWTXQYHWNWRXAXQUJZWSWTWNWRXQUKZWSWTWNWRXQULZXBXQUMZDEXEFUNUOPQXRX
      IBCDXEFYIWPWQWNXAXQUPWPWQWNXAXQUQYJYLXRXFXHURUSXRYFYGIYEOZXIXRWNWSXQWTWRY
      MYIYJYLYKWNWRXAXQVBDXEEBACFUTVAPRXSYDXOAWOXRXKWOHZXIYDXOOZXRYNIXBYNIZXQIZ
      XIYOXBXQYNVLYQXIIYDYGXDXLMLZXTYBMLZJZXOYQYDYTSZXIYQWNWSXQWTWPWQYNUUAWNWRX
      AYNXQVCZYPWSXQWSWTWNWRYNUKPZYPXQUMZYPWTXQWSWTWNWRYNULPZYPWPXQWPWQWNXAYNUP
      ZPZYPWQXQWPWQWNXAYNUQZPZXBYNXQVDZDXEEBCXKFVEVFZPYQXIYTXOYQXIYTJZXMXNUULXF
      YDXMYQXFXHYTVGUULYDYTYQXIYTVHYQXIUUAYTUUKTVIYQXIXFYDIXMOZYTYQWNWSXQWTWPWQ
      YNUUMUUBUUCUUDUUEUUGUUIUUJDXEEBCXKFVJVFTRUULYRXNYQXIYGYRYSVKYQXIYRXNSZYTY
      QWNWSWTWPYNUUNUUBUUCUUEUUGUUJDEBXKFVMVNTVOWCVPVQVRVSVTQWLWAXBXOXJAWOYPXOX
      JYPXOIZBXKCKZKDEXEKZKUGLZGWONZXJUUOBUUPUHLZXNUUSUUOXMUUTYPXMXNUIUUOWNWPYN
      WQXMUUTOWNWRXAYNXOVCYPWPXOUUFPXBYNXOVDYPWQXOUUHPBXKCFWDUOQYPXMXNURYPUUTXN
      IUUSOZXOYPWNWPYNWQXAUVAWNWRXAYNUJUUFXBYNUMZUUHWNWRXAYNWEBXKCDGEFUTVAPRUUO
      UURXIGWOYPXQXOUURXIOYQXOIUURXNXHUUPUUQMLZJZXIYQUURUVDSZXOYQWNWPYNWQJZWSWT
      XQUVEUUBYPUVFXQYPWPYNWQUUFUVBUUHWFPUUCUUEUUDBXKCDEXEFVEWGPYQXOUVDXIYQXOUV
      DJZXFXHUVGXMYCYAUGLZXFYQXMXNUVDVGUVGUVHXHXNYBXTMLZJZUVGXHXNUVIYQXOXNXHUVC
      VKZYQXMXNUVDWHUVGUVCUVIYQXOXNXHUVCWIYQXOUVCUVISZUVDYQWNYNWQWTXQUVLUUBUUJU
      UIUUEUUDXKCEXEFWJVNTVOWFYQXOUVHUVJSZUVDYQWNWPWQYNWSXQWTUVMUUBUUGUUIUUJUUC
      UUDUUEBCXKDXEEFVEVFTVIYQXOXMUVHIXFOZUVDYQWNWPWQYNWSXQWTUVNUUBUUGUUIUUJUUC
      UUDUUEBCXKDXEEFVJVFTRUVKWCVPVQVSVTQWLWAWKWM $.
  $}

  ${
    $d N y z $.  $d A y z $.  $d B y z $.  $d C y z $.  $d D y z $.
    $d E y z $.  $d F y z $.  $d G y z $.  $d H y z $.
    $( Substitution law for segment comparison under congruence.  Theorem 5.6
       of [Schwabhauser] p. 42.  (Contributed by Scott Fenton, 11-Oct-2013.) $)
    seglecgr12im $p |- (
       ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ E e. ( EE ` N ) ) /\
         ( F e. ( EE ` N ) /\ G e. ( EE ` N ) /\ H e. ( EE ` N ) ) ) ->
       ( ( <. A , B >. Cgr <. E , F >. /\ <. C , D >. Cgr <. G , H >. /\
           <. A , B >. Seg<_ <. C , D >. ) ->
           <. E , F >. Seg<_ <. G , H >. ) ) $=
      ( vy vz wcel w3a cop ccgr wbr wi wa wrex adantr cn cee csegle cbtwn ccgr3
      cv simprrl simprlr simpl11 simpl21 simpr simpl22 simpl32 cgrxfr syl132anc
      cfv simpl33 mp2and anass wb simprl simprr brcgr3 syl133anc df-3an simpl23
      simpl31 simpl12 simpl13 simpr1l simpr2r cgrtr4and simpr31 cgrtrand sylbid
      sylan2br expr anim2d sylanb an32s reximdva rexlimdva simp11 simp12 simp13
      simp21 simp22 brsegle syl122anc simp23 simp31 simp32 simp33 3imtr4d exp32
      mpd 3impd ) IUALZAIUBUPZLZBWSLZMZCWSLZDWSLZEWSLZMZFWSLZGWSLZHWSLZMZMZABNZ
      EFNZOPZCDNZGHNZOPZXLXOUCPZXMXPUCPZXKXNXQXRXSQXKXNXQRZRZJUFZXOUDPZXLCYBNZO
      PZRZJWSSZKUFZXPUDPZXMGYHNZOPZRZKWSSZXRXSYAYFYMJWSXKYBWSLZXTYFYMQXKYNRZXTY
      FYMYOXTYFRZRZYICYBDNZNGYHHNZNUEPZRZKWSSZYMYQYCXQUUBYOXTYCYEUGYOXNXQYFUHYO
      YCXQRUUBQZYPYOWRXCYNXDXHXIUUCWRWTXAXFXJYNUIXCXDXEXBXJYNUJXKYNUKXCXDXEXBXJ
      YNULXGXHXIXBXFYNUMXGXHXIXBXFYNUQCYBDGKHIUNUOTURYQUUAYLKWSYOYHWSLZYPUUAYLQ
      ZYOUUDRXKYNUUDRZRZYPUUEXKYNUUDUSUUGYPRZYTYKYIUUHYTYDYJOPZXQYRYSOPZMZYKUUG
      YTUUKUTZYPUUGWRXCYNXDXHUUDXIUULWRWTXAXFXJUUFUIZXCXDXEXBXJUUFUJZXKYNUUDVAZ
      XCXDXEXBXJUUFULXGXHXIXBXFUUFUMZXKYNUUDVBZXGXHXIXBXFUUFUQCYBDGYHHIVCVDTUUG
      YPUUKYKYPUUKRUUGXTYFUUKMZYKXTYFUUKVEUUGUUREFCYBGYHIUUMXCXDXEXBXJUUFVFZXGX
      HXIXBXFUUFVGZUUNUUOUUPUUQUUGUURABEFCYBIUUMWRWTXAXFXJUUFVHWRWTXAXFXJUUFVIU
      USUUTUUNUUOXNXQYFUUKUUGVJYCYEXTUUKUUGVKVLUUIXQUUJXTYFUUGVMVNVPVQVOVRVSVTW
      AWPVQVTWBXKXRYGUTZXTXKWRWTXAXCXDUVAWRWTXAXFXJWCZWRWTXAXFXJWDWRWTXAXFXJWEX
      BXCXDXEXJWFXBXCXDXEXJWGJABCDIWHWITXKXSYMUTZXTXKWRXEXGXHXIUVCUVBXBXCXDXEXJ
      WJXBXFXGXHXIWKXBXFXGXHXIWLXBXFXGXHXIWMKEFGHIWHWITWNWOWQ $.
  $}

  $( Substitution law for segment comparison under congruence.  Biconditional
     version.  (Contributed by Scott Fenton, 15-Oct-2013.)  (Revised by Mario
     Carneiro, 19-Apr-2014.) $)
  seglecgr12 $p |- (
       ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
         ( C e. ( EE ` N ) /\ D e. ( EE ` N ) /\ E e. ( EE ` N ) ) /\
         ( F e. ( EE ` N ) /\ G e. ( EE ` N ) /\ H e. ( EE ` N ) ) ) ->
       ( ( <. A , B >. Cgr <. E , F >. /\ <. C , D >. Cgr <. G , H >. ) ->
           ( <. A , B >. Seg<_ <. C , D >. <->
             <. E , F >. Seg<_ <. G , H >. ) ) ) $=
    ( wcel w3a cop ccgr wbr wa csegle df-3an seglecgr12im syl5bir expd cn wi wb
    simp11 simp12 simp13 simp23 simp31 cgrcom syl122anc simp21 simp22 syl333anc
    cee cfv simp32 simp33 anbi12d sylbid impbidd ) IUAJZAIUNUOZJZBVBJZKZCVBJZDV
    BJZEVBJZKZFVBJZGVBJZHVBJZKZKZABLZEFLZMNZCDLZGHLZMNZOZVOVRPNZVPVSPNZVNWAWBWC
    WAWBOVQVTWBKVNWCVQVTWBQABCDEFGHIRSTVNWAVPVOMNZVSVRMNZOZWCWBUBVNVQWDVTWEVNVA
    VCVDVHVJVQWDUCVAVCVDVIVMUDZVAVCVDVIVMUEZVAVCVDVIVMUFZVEVFVGVHVMUGZVEVIVJVKV
    LUHZABEFIUIUJVNVAVFVGVKVLVTWEUCWGVEVFVGVHVMUKZVEVFVGVHVMULZVEVIVJVKVLUPZVEV
    IVJVKVLUQZCDGHIUIUJURVNWFWCWBWFWCOWDWEWCKZVNWBWDWEWCQVNVAVHVJVKVLVCVDVFVGWP
    WBUBWGWJWKWNWOWHWIWLWMEFGHABCDIRUMSTUSUT $.

  ${
    $d A y $.  $d B y $.  $d N y $.
    $( Segment comparison is reflexive.  Theorem 5.7 of [Schwabhauser] p. 42.
       (Contributed by Scott Fenton, 11-Oct-2013.) $)
    seglerflx $p |- ( ( N e. NN /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ->
        <. A , B >. Seg<_ <. A , B >. ) $=
      ( vy cn wcel cee cfv w3a cop csegle cv cbtwn ccgr wa wrex simp3 btwntriv2
      wbr cgrrflx wceq breq1 opeq2 breq2d anbi12d rspcev syl12anc simp1 brsegle
      wb simp2 syl122anc mpbird ) CEFZACGHZFZBUOFZIZABJZUSKSZDLZUSMSZUSAVAJZNSZ
      OZDUOPZURUQBUSMSZUSUSNSZVFUNUPUQQZABCRABCTVEVGVHODBUOVABUAZVBVGVDVHVABUSM
      UBVJVCUSUSNVABAUCUDUEUFUGURUNUPUQUPUQUTVFUJUNUPUQUHUNUPUQUKZVIVKVIDABABCU
      IULUM $.
  $}

  ${
    $d N y $.  $d A y $.  $d B y $.  $d C y $.
    $( Any segment is at least as long as a degenerate segment.  Theorem 5.11
       of [Schwabhauser] p. 42.  (Contributed by Scott Fenton, 11-Oct-2013.) $)
    seglemin $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
       <. A , A >. Seg<_ <. B , C >. ) $=
      ( vy cn wcel cee cfv w3a wa cop csegle wbr cv cbtwn ccgr simpr2 btwntriv1
      wrex 3adant3r1 cgrtriv 3adant3r3 wceq breq1 opeq2 breq2d anbi12d syl12anc
      rspcev wb simpl simpr1 simpr3 brsegle syl122anc mpbird ) DFGZADHIZGZBUSGZ
      CUSGZJZKZAALZBCLZMNZEOZVFPNZVEBVHLZQNZKZEUSTZVDVABVFPNZVEBBLZQNZVMURUTVAV
      BRZURVAVBVNUTBCDSUAURUTVAVPVBABDUBUCVLVNVPKEBUSVHBUDZVIVNVKVPVHBVFPUEVRVJ
      VOVEQVHBBUFUGUHUJUIVDURUTUTVAVBVGVMUKURVCULURUTVAVBUMZVSVQURUTVAVBUNEAABC
      DUOUPUQ $.
  $}

  ${
    $d N y z w $.  $d A y z w $.  $d B y z w $.  $d C y z w $.  $d D y z w $.
    $d E y z w $.  $d F y z w $.
    $( Segment less than is transitive.  Theorem 5.8 of [Schwabhauser] p. 42.
       (Contributed by Scott Fenton, 11-Oct-2013.) $)
    segletr $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) /\
       ( D e. ( EE ` N ) /\ E e. ( EE ` N ) /\ F e. ( EE ` N ) ) ) ->
       ( ( <. A , B >. Seg<_ <. C , D >. /\ <. C , D >. Seg<_ <. E , F >. ) ->
         <. A , B >. Seg<_ <. E , F >. ) ) $=
      ( vy vz vw wcel w3a cv cop cbtwn wbr ccgr wa wrex wb cee cfv csegle ccgr3
      cn simprll simprrr wi simpl1 simpl23 simprl simpl31 simpl32 simprr cgrxfr
      jca syl132anc adantr mpd df-3an anbi2i bitr4i simpr1 simpr3 simpr2 brcgr3
      anass simpl33 simpr3l simpr2l btwnexchand simpl21 simpl22 simpr1r simp3r1
      syl133anc anbi2d adantl cgrtrand sylan2br sylbid an32s reximdva rexlimdvv
      expr sylanb exp31 simp1 simp21 simp22 simp23 simp31 brsegle simp32 simp33
      syl122anc anbi12d reeanv syl6bbr 3imtr4d ) GUEKZAGUAUBZKZBXBKZCXBKZLZDXBK
      ZEXBKZFXBKZLZLZHMZCDNZOPZABNZCXLNZQPZRZIMZEFNZOPZXMEXSNZQPZRZRZIXBSHXBSZJ
      MZXTOPZXOEYGNZQPZRZJXBSZXOXMUCPZXMXTUCPZRZXOXTUCPZXKYEYLHIXBXBXKXLXBKZXSX
      BKZRZYEYLXKYSRZYERZYGYBOPZCXLDNZNEYGXSNZNUDPZRZJXBSZYLUUAXNYCRZUUGUUAXNYC
      YTXNXQYDUFYTXRYAYCUGUPYTUUHUUGUHZYEYTXAXEYQXGXHYRUUIXAXFXJYSUIXCXDXEXAXJY
      SUJXKYQYRUKXGXHXIXAXFYSULXGXHXIXAXFYSUMXKYQYRUNCXLDEJXSGUOUQURUSUUAUUFYKJ
      XBYTYGXBKZYEUUFYKUHZYTUUJRZXKYQYRUUJLZRZYEUUKUULXKYSUUJRZRUUNXKYSUUJVGUUM
      UUOXKYQYRUUJUTVAVBUUNYERUUFUUBXPYIQPZYCUUCUUDQPZLZRZYKUUNUUFUUSTYEUUNUUEU
      URUUBUUNXAXEYQXGXHUUJYRUUEUURTXAXFXJUUMUIZXCXDXEXAXJUUMUJZXKYQYRUUJVCZXGX
      HXIXAXFUUMULXGXHXIXAXFUUMUMZXKYQYRUUJVDZXKYQYRUUJVEZCXLDEYGXSGVFVPVQURUUN
      YEUUSYKYEUUSRUUNXRYDUUSLZYKXRYDUUSUTUUNUVFRYHYJUUNUVFEYGXSFGUUTUVCUVDUVEX
      GXHXIXAXFUUMVHUUBUURXRYDUUNVIYAYCXRUUSUUNVJVKUUNUVFABCXLEYGGUUTXCXDXEXAXJ
      UUMVLXCXDXEXAXJUUMVMUVAUVBUVCUVDXNXQYDUUSUUNVNUVFUUPUUNUUPYCUUQUUBXRYDVOV
      RVSUPVTWEWAWFWBWCUSWGWDXKYOXRHXBSZYDIXBSZRYFXKYMUVGYNUVHXKXAXCXDXEXGYMUVG
      TXAXFXJWHZXAXCXDXEXJWIZXAXCXDXEXJWJZXAXCXDXEXJWKZXAXFXGXHXIWLZHABCDGWMWPX
      KXAXEXGXHXIYNUVHTUVIUVLUVMXAXFXGXHXIWNZXAXFXGXHXIWOZICDEFGWMWPWQXRYDHIXBX
      BWRWSXKXAXCXDXHXIYPYLTUVIUVJUVKUVNUVOJABEFGWMWPWT $.
  $}

  ${
    $d N y t $.  $d A y t $.  $d B y t $.  $d C y t $.  $d D y t $.
    $( Antisymmetry law for segment comparison.  Theorem 5.9 of [Schwabhauser]
       p. 42.  (Contributed by Scott Fenton, 14-Oct-2013.) $)
    segleantisym $p |- ( ( N e. NN /\
        ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
        ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
        ( ( <. A , B >. Seg<_ <. C , D >. /\ <. C , D >. Seg<_ <. A , B >. ) ->
          <. A , B >. Cgr <. C , D >. ) ) $=
      ( vy vt wcel wa cop csegle wbr cv cbtwn ccgr wrex anbi12d simprll simprrl
      simprlr cn cee cfv w3a brsegle brsegle2 3com23 reeanv syl6bbr weq simpl3l
      simpl1 simprr simprl simpl3r btwnexchand simpl2l simpl2r simprrr cgrtrand
      wb endofsegidand opeq2 breq2d breq1d anbi2d wceq btwncomand wi btwnswapid
      syl13anc adantr mp2and syl5ibrcom mpd syl6bi mpcom exp31 rexlimdvv sylbid
      ) EUAHZAEUBUCZHZBWBHZIZCWBHZDWBHZIZUDZABJZCDJZKLZWKWJKLZIZFMZWKNLZWJCWOJZ
      OLZIZDCGMZJZNLZXAWJOLZIZIZGWBPFWBPZWJWKOLZWIWNWSFWBPZXDGWBPZIXFWIWLXHWMXI
      FABCDEUEWAWHWEWMXIVAGCDABEUFUGQWSXDFGWBWBUHUIWIXEXGFGWBWBWIWOWBHZWTWBHZIZ
      XEXGGFUJZWIXLIZXEIZXGXNXECWTWOEWAWEWHXLULZWFWGWAWEXLUKZWIXJXKUMZWIXJXKUNZ
      XNXECWODWTEXPXQXSWFWGWAWEXLUOZXRXNWPWRXDRXNWSXBXCSUPXNXECWTABCWOEXPXQXRWC
      WDWAWHXLUQWCWDWAWHXLURXQXSXNWSXBXCUSXNWPWRXDTUTVBXMXOXNWSDWQNLZWQWJOLZIZI
      ZIZXGXMXEYDXNXMXDYCWSXMXBYAXCYBXMXAWQDNWTWOCVCZVDXMXAWQWJOYFVEQVFVFYEDWOV
      GZXGYEDWOCJNLZWODCJNLZYGXNYDDCWOEXPXTXQXSXNWSYAYBSVHXNYDWOCDEXPXSXQXTXNWP
      WRYCRVHXNYHYIIYGVIZYDXNWAWGXJWFYJXPXTXSXQDWOCEVJVKVLVMYEXGYGWRXNWPWRYCTYG
      WKWQWJODWOCVCVDVNVOVPVQVRVSVT $.
  $}

  ${
    $d N x $.  $d A x $.  $d B x $.  $d C x $.  $d D x $.
    $( Linearity law for segment comparison.  Theorem 5.10 of [Schwabhauser]
       p. 42.  (Contributed by Scott Fenton, 14-Oct-2013.) $)
    seglelin $p |- ( ( N e. NN /\
     ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
     ( C e. ( EE ` N ) /\ D e. ( EE ` N ) ) ) ->
     ( <. A , B >. Seg<_ <. C , D >. \/ <. C , D >. Seg<_ <. A , B >. ) ) $=
      ( vx cn wcel cee cfv wa w3a cop cbtwn wbr wo ccgr wrex csegle wb cv andir
      segcon2 simpl1 simpl2l simpr simpl3 cgrcom syl121anc anbi2d orbi2d syl5bb
      rexbidva brsegle2 brsegle 3com23 orbi12d r19.43 syl6bbr bitr4d mpbid ) EG
      HZAEIJZHZBVCHZKZCVCHDVCHKZLZBAFUAZMZNOZVIABMZNOZPVJCDMZQOZKZFVCRZVLVNSOZV
      NVLSOZPZFBCDAEUCVHVQVKVOKZVMVNVJQOZKZPZFVCRZVTVHVPWDFVCVPWAVMVOKZPVHVIVCH
      ZKZWDVKVMVOUBWHWFWCWAWHVOWBVMWHVBVDWGVGVOWBTVBVFVGWGUDVDVEVBVGWGUEVHWGUFV
      BVFVGWGUGAVICDEUHUIUJUKULUMVHVTWAFVCRZWCFVCRZPWEVHVRWIVSWJFABCDEUNVBVGVFV
      SWJTFCDABEUOUPUQWAWCFVCURUSUTVA $.
  $}

  ${
    $d N x $.  $d A x $.  $d B x $.  $d C x $.
    $( If ` B ` falls between ` A ` and ` C ` , then ` A B ` is no longer than
       ` A C ` .  (Contributed by Scott Fenton, 16-Oct-2013.)  (Revised by
       Mario Carneiro, 19-Apr-2014.) $)
    btwnsegle $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
       ( B Btwn <. A , C >. -> <. A , B >. Seg<_ <. A , C >. ) ) $=
      ( vx cn wcel cee cfv w3a wa cop cbtwn wbr csegle ccgr wrex simplr2 adantr
      cv simpr simpl simpr1 simpr2 cgrrflxd breq1 opeq2 breq2d anbi12d syl12anc
      wceq rspcev wb simpr3 brsegle syl122anc mpbird ex ) DFGZADHIZGZBUTGZCUTGZ
      JZKZBACLZMNZABLZVFONZVEVGKZVIETZVFMNZVHAVKLZPNZKZEUTQZVJVBVGVHVHPNZVPVAVB
      VCUSVGRVEVGUAVEVQVGVEABDUSVDUBZUSVAVBVCUCZUSVAVBVCUDZUESVOVGVQKEBUTVKBUKZ
      VLVGVNVQVKBVFMUFWAVMVHVHPVKBAUGUHUIULUJVEVIVPUMZVGVEUSVAVBVAVCWBVRVSVTVSU
      SVAVBVCUNEABACDUOUPSUQUR $.
  $}

  $( Given three colinear points ` A ` , ` B ` , and ` C ` , ` B ` falls in the
     middle iff the two segments to ` B ` are no longer than ` A C ` .  Theorem
     5.12 of [Schwabhauser] p. 42.  (Contributed by Scott Fenton, 15-Oct-2013.)
     (Revised by Mario Carneiro, 19-Apr-2014.) $)
  colinbtwnle $p |- ( ( N e. NN /\
      ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
      ( A Colinear <. B , C >. ->
        ( B Btwn <. A , C >. <->
          ( <. A , B >. Seg<_ <. A , C >. /\
            <. B , C >. Seg<_ <. A , C >. ) ) ) ) $=
    ( wcel w3a wa cop wbr cbtwn csegle btwnsegle sylan2b ccgr mp2and adantr imp
    wb wi ex cn cee ccolin 3anrev 3ancoma btwncom simpl simpr2 simpr3 cgrrflx2d
    cfv simpr1 seglecgr12 syl333anc 3imtr4d jcad w3o brcolinear wceq btwncomand
    simprl biimpa adantrl 3anrot sylan2br sylbid adantrr segleantisym syl122anc
    endofsegidand btwntriv1 3adant3r2 breq1 syl5ibrcom mpd expr adantld biimprd
    a1dd simprr 3ancomb btwntriv2 adantrd 3jaod impbid ) DUAEZADUBUKZEZBWGEZCWG
    EZFZGZABCHZUCIZBACHZJIZABHZWOKIZWMWOKIZGZRWLWNGWPWTWLWPWTSWNWLWPWRWSABCDLWL
    BCAHZJIZCBHZXAKIZWPWSWKWFWJWIWHFXBXDSWHWIWJUDCBADLMWKWFWIWHWJFWPXBRWHWIWJUE
    BACDUFMZWLWMXCNIZWOXANIZWSXDRZWLBCDWFWKUGZWFWHWIWJUHZWFWHWIWJUIZUJWLACDXIWF
    WHWIWJULZXKUJWLWFWIWJWHWJWJWIWJWHXFXGGXHSXIXJXKXLXKXKXJXKXLBCACCBCADUMUNOZU
    OUPPWLWNWTWPSZWLWNAWMJIZXBCWQJIZUQXNABCDURWLXOXNXBXPWLXOXNWLXOGWSWPWRWLXOWS
    WPWLXOWSGZGZBAUSZWPWLXQCBADXIXKXJXLWLXQABCDXIXLXJXKWLXOWSVAUTXRXDXAXCKIZXCX
    ANIZWLWSXDXOWLWSXDXMVBVCWLXOXTWSWLXOXTWLXOAXCJIZXTABCDUFWKWFWJWHWIFYBXTSWJW
    HWIVDCABDLVEVFQVGWLXDXTGYASZXQWLWFWJWIWJWHYCXIXKXJXKXLCBCADVHVIPOVJWLXSWPSX
    QWLWPXSAWOJIZWFWHWJYDWIACDVKVLBAWOJVMVNPVOVPVQTWLXBWPWTWLWPXBXEVRVSWLXPXNWL
    XPGWRWPWSWLXPWRWPWLXPWRGZGZBCUSZWPWLYEABCDXIXLXJXKWLXPWRVAYFWRWOWQKIZWQWONI
    ZWLXPWRVTWLXPYHWRWLXPYHWKWFWHWJWIFXPYHSWHWIWJWAACBDLMQVGWLWRYHGYISZYEWLWFWH
    WIWHWJYJXIXLXJXLXKABACDVHVIPOVJWLYGWPSYEWLWPYGCWOJIZWFWHWJYKWIACDWBVLBCWOJV
    MVNPVOVPWCTWDVFQWET $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Outside-of relationship
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c OutsideOf $.

  $( Declare the syntax for the outside of constant. $)
  coutsideof $a class OutsideOf $.

  $( The outside of relationship.  This relationship expresses that ` P ` ,
     ` A ` , and ` B ` fall on a line, but ` P ` is not on the segment
     ` A B ` .  This definition is taken from theorem 6.4 of [Schwabhauser]
     p. 43, since it requires no dummy variables.  (Contributed by Scott
     Fenton, 17-Oct-2013.) $)
  df-outsideof $a |- OutsideOf = ( Colinear \ Btwn ) $.

  $( Binary relation form of ` OutsideOf ` .  Theorem 6.4 of [Schwabhauser]
     p. 43.  (Contributed by Scott Fenton, 17-Oct-2013.)  (Revised by Mario
     Carneiro, 19-Apr-2014.) $)
  broutsideof $p |- ( P OutsideOf <. A , B >. <->
    ( P Colinear <. A , B >. /\ -. P Btwn <. A , B >. ) ) $=
    ( cop coutsideof wbr ccolin cbtwn cdif wn wa df-outsideof breqi brdif bitri
    ) CABDZEFCPGHIZFCPGFCPHFJKCPEQLMCPGHNO $.

  $( Alternate form of ` OutsideOf ` .  Definition 6.1 of [Schwabhauser] p. 43.
     (Contributed by Scott Fenton, 17-Oct-2013.)  (Revised by Mario Carneiro,
     19-Apr-2014.) $)
  broutsideof2 $p |- ( ( N e. NN /\
    ( P e. ( EE ` N ) /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ) ->
    ( P OutsideOf <. A , B >. <->
      ( A =/= P /\ B =/= P /\
        ( A Btwn <. P , B >. \/ B Btwn <. P , A >. ) ) ) ) $=
    ( cop wbr cbtwn wa wcel w3a wne wceq 3adant3r1 breq1 syl5ibcom necon3bd imp
    adantrl wi a1i coutsideof ccolin wn cee cfv broutsideof btwntriv1 btwntriv2
    cn wo w3o brcolinear pm2.24 wb 3anrot btwncom sylan2b orc syl6bi a1dd 3jaod
    olc sylbid imp32 3jca simp3 3ancomb btwncolinear2 btwncolinear1 jaod simpr2
    a1d syl5 neneqd simprl1 simprr simpl simpr1 simpr3 btwnswapid adantr mp2and
    syl13anc expr mtod 3exp2 btwncomand sylan2br com12 com4l jca impbida syl5bb
    3imp2 ) CABEZUAFCWOUBFZCWOGFZUCZHZDUIIZCDUDUEZIZAXAIZBXAIZJZHZACKZBCKZACBEG
    FZBCAEGFZUJZJZABCUFXFWSXLXFWSHXGXHXKXFWRXGWPXFWRXGXFWQACXFAWOGFZACLZWQWTXCX
    DXMXBABDUGMACWOGNOPQRXFWRXHWPXFWRXHXFWQBCXFBWOGFZBCLZWQWTXCXDXOXBABDUHMBCWO
    GNOPQRXFWPWRXKXFWPWQABCEGFZXJUKWRXKSZCABDULXFWQXRXQXJWQXRSXFWQXKUMTXFXQXKWR
    XFXQXIXKXEWTXCXDXBJXQXIUNXBXCXDUOABCDUPUQXIXJURUSUTXJXRSXFXJXKWRXJXIVBVLTVA
    VCVDVEXFXLHWPWRXFXLWPXLXKXFWPXGXHXKVFXFXIWPXJXEWTXBXDXCJXIWPSXBXCXDVGCBADVH
    UQCABDVIVJVMQXFXGXHXKWRXKXFXGXHWRXFXKXGXHWRSSZXFXIXSXJXFXIXGXHWRXFXIXGXHJZH
    ZWQXNYAACXFXIXGXHVKVNXFXTWQXNXFXTWQHZHXIWQXNXIXGXHWQXFVOXFXTWQVPXFXIWQHXNSZ
    YBXFWTXCXBXDYCWTXEVQZWTXBXCXDVKZWTXBXCXDVRZWTXBXCXDVSZACBDVTWCWAWBWDWEWFXFX
    JXGXHWRXFXJXGXHJZHZWQXPYIBCXFXJXGXHVSVNXFYHWQXPXFYHWQHZHXJCBAEGFZXPXJXGXHWQ
    XFVOXFYJCABDYDYFYEYGXFYHWQVPWGXFXJYKHXPSZYJXEWTXDXBXCJYLXDXBXCUOBCADVTWHWAW
    BWDWEWFVJWIWJWNWKWLWM $.

  $( Outsideness implies inequality.  (Contributed by Scott Fenton,
     18-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  outsidene1 $p |- ( ( N e. NN /\
   ( P e. ( EE ` N ) /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ) ->
   ( P OutsideOf <. A , B >. -> A =/= P ) ) $=
    ( cn wcel cee cfv w3a wa cop coutsideof wbr wne cbtwn wo broutsideof2 simp1
    syl6bi ) DEFCDGHZFATFBTFIJCABKLMACNZBCNZACBKOMBCAKOMPZIUAABCDQUAUBUCRS $.

  $( Outsideness implies inequality.  (Contributed by Scott Fenton,
     18-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  outsidene2 $p |- ( ( N e. NN /\
   ( P e. ( EE ` N ) /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ) ->
   ( P OutsideOf <. A , B >. -> B =/= P ) ) $=
    ( cn wcel cee cfv w3a wa cop coutsideof wbr wne cbtwn wo broutsideof2 simp2
    syl6bi ) DEFCDGHZFATFBTFIJCABKLMACNZBCNZACBKOMBCAKOMPZIUBABCDQUAUBUCRS $.

  $( A principle linking outsideness to betweenness.  Theorem 6.2 of
     [Schwabhauser] p. 43.  (Contributed by Scott Fenton, 18-Oct-2013.)
     (Revised by Mario Carneiro, 19-Apr-2014.) $)
  btwnoutside $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
    ( C e. ( EE ` N ) /\ P e. ( EE ` N ) ) ) ->
    ( ( ( A =/= P /\ B =/= P /\ C =/= P ) /\ P Btwn <. A , C >. ) ->
      ( P Btwn <. B , C >. <-> P OutsideOf <. A , B >. ) ) ) $=
    ( wcel wa w3a wne cop cbtwn wbr wb df-3an simpr2 btwncomand simpr3 sylan2br
    adantr expr cee cfv coutsideof simpr11 simpr12 simpr13 simp3r simp2l simp3l
    cn wo simp1 simp2r wi btwnconn2 3com23 mp3and simp3 btwnouttr2 btwnexch3and
    3jca syl122anc jaod syl5 impbid broutsideof2 syl13anc bitr4d ex ) EUJFZAEUA
    UBZFZBVKFZGZCVKFZDVKFZGZHZADIZBDIZCDIZHZDACJKLZGZDBCJKLZDABJUCLZMVRWDGZWEVS
    VTADBJKLZBDAJKLZUKZHZWFWGWEWKVRWDWEWKWDWEGVRWBWCWEHZWKWBWCWENVRWLGZVSVTWJVS
    VTWAWCWEVRUDVSVTWAWCWEVRUEWMWADCAJKLZDCBJKLZWJVSVTWAWCWEVRUFVRWLDACEVJVNVQU
    LZVJVNVOVPUGZVJVLVMVQUHZVJVNVOVPUIZVRWBWCWEOPVRWLDBCEWPWQVJVLVMVQUMZWSVRWBW
    CWEQPVRWAWNWOHWJUNZWLVJVQVNXACDABEUOUPSUQVARTWKWJWGWEVSVTWJURWGWHWEWIVRWDWH
    WEWDWHGVRWBWCWHHZWEWBWCWHNVRXBGVSABDJKLZWCWEVSVTWAWCWHVRUDVRXBADBEWPWRWQWTV
    RWBWCWHQPVRWBWCWHOVRVSXCWCHWEUNZXBVRVJVMVLVPVOXDWPWTWRWQWSBADCEUSVBSUQRTVRW
    DWIWEWDWIGVRWBWCWIHZWEWBWCWINVRXEABDCEWPWRWTWQWSVRXEBDAEWPWTWQWRVRWBWCWIQPV
    RWBWCWIOUTRTVCVDVEVRWFWKMZWDVRVJVPVLVMXFWPWQWRWTABDEVFVGSVHVI $.

  ${
    $d N c $.  $d A c $.  $d B c $.  $d P c $.
    $( Characterization of outsideness in terms of relationship to a fourth
       point.  Theorem 6.3 of [Schwabhauser] p. 43.  (Contributed by Scott
       Fenton, 18-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    broutsideof3 $p |- ( ( N e. NN /\
       ( P e. ( EE ` N ) /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ) ->
       ( P OutsideOf <. A , B >. <->
         ( A =/= P /\ B =/= P /\
           E. c e. ( EE ` N ) ( c =/= P /\ P Btwn <. A , c >. /\
                                P Btwn <. B , c >. ) ) ) ) $=
      ( wcel w3a wa cop wbr wne cbtwn simpr3 adantr wi df-3an btwncomand simpr2
      wrex expr cn cee cfv coutsideof wo cv broutsideof2 simpl btwndiff syl3anc
      simpr1 3anass necomd simp1 simp23 simp22 simp21 simpr1r btwnexch3and 3jca
      simp3 syl2anbr an32s reximdva jaod simprr1 simpll simplr1 simplr2 simprr2
      simpr simplr3 simprr3 btwnconn2 syl122anc mp3and rexlimdva impbid 3bitr4g
      mpd pm5.32da bitrd ) DUAFZCDUBUCZFZAWDFZBWDFZGZHZCABIUDJACKZBCKZACBILJZBC
      AILJZUEZGZWJWKEUFZCKZCAWPILJZCBWPILJZGZEWDSZGZABCDUGWIWJWKHZWNHXCXAHWOXBW
      IXCWNXAWIXCHZWNXAXDWLXAWMWIXCWLXAWIXCWLHZHZWSCWPKZHZEWDSZXAWIXIXEWIWCWGWE
      XIWCWHUHZWCWEWFWGMWCWEWFWGUKZBCDEUIUJNXFXHWTEWDWIWPWDFZXEXHWTOWIXLHZXEXHW
      TXMWCWHXLGZXEWSXGGZWTXEXHHWCWHXLPZXEWSXGULXNXOHZWQWRWSXQCWPXNXEWSXGMUMXNX
      OBACWPDWCWHXLUNZWCWEWFWGXLUOZWCWEWFWGXLUPZWCWEWFWGXLUQZWCWHXLVAZXNXOACBDX
      RXTYAXSXCWLWSXGXNURQXNXEWSXGRZUSYCUTVBTVCVDVTTWIXCWMXAWIXCWMHZHZWRXGHZEWD
      SZXAWIYGYDWIWCWFWEYGXJWCWEWFWGRXKACDEUIUJNYEYFWTEWDWIXLYDYFWTOXMYDYFWTXMX
      NYDWRXGGZWTYDYFHXPYDWRXGULXNYHHZWQWRWSYICWPXNYDWRXGMUMXNYDWRXGRZXNYHABCWP
      DXRXTXSYAYBXNYHBCADXRXSYAXTXCWMWRXGXNURQYJUSUTVBTVCVDVTTVEXDWTWNEWDWIXLXC
      WTWNOXMXCWTWNXMXCWTHZHWQCWPAILJZCWPBILJZWNWQWRWSXCXMVFXMYKCAWPDWCWHXLVGZW
      EWFWGWCXLVHZWEWFWGWCXLVIZWIXLVKZWQWRWSXCXMVJQXMYKCBWPDYNYOWEWFWGWCXLVLZYQ
      WQWRWSXCXMVMQXMWQYLYMGWNOZYKXMWCXLWEWFWGYSYNYQYOYPYRWPCABDVNVONVPTVCVQVRW
      AWJWKWNPWJWKXAPVSWB $.
  $}

  $( Reflexitivity of outsideness.  Theorem 6.5 of [Schwabhauser] p. 44.
     (Contributed by Scott Fenton, 18-Oct-2013.)  (Revised by Mario Carneiro,
     19-Apr-2014.) $)
  outsideofrflx $p |- ( ( N e. NN /\ P e. ( EE ` N ) /\ A e. ( EE ` N ) ) ->
    ( A =/= P -> P OutsideOf <. A , A >. ) ) $=
    ( cn wcel cee cfv w3a wne cop ccolin wbr cbtwn wn coutsideof axbtwnid eqcom
    wa wceq syl6ib necon3ad colineartriv2 jctild broutsideof syl6ibr ) CDEBCFGZ
    EAUFEHZABIZBAAJZKLZBUIMLZNZRBUIOLUGUHULUJUGUKABUGUKBASABSBACPBAQTUABACUBUCA
    ABUDUE $.

  $( Commutitivity law for outsideness.  Theorem 6.6 of [Schwabhauser] p. 44.
     (Contributed by Scott Fenton, 18-Oct-2013.)  (Revised by Mario Carneiro,
     19-Apr-2014.) $)
  outsideofcom $p |- ( ( N e. NN /\
    ( P e. ( EE ` N ) /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ) ->
    ( P OutsideOf <. A , B >. <-> P OutsideOf <. B , A >. ) ) $=
    ( cn cee cfv w3a wa wne cop cbtwn wbr wo coutsideof wb 3ancoma broutsideof2
    wcel orcom 3anbi3i bitri a1i 3ancomb sylan2b 3bitr4d ) DESZCDFGZSZAUHSZBUHS
    ZHZIZACJZBCJZACBKLMZBCAKLMZNZHZUOUNUQUPNZHZCABKOMCBAKOMZUSVAPUMUSUOUNURHVAU
    NUOURQURUTUOUNUPUQTUAUBUCABCDRULUGUIUKUJHVBVAPUIUJUKUDBACDRUEUF $.

  ${
    $( Transitivity law for outsideness.  Theorem 6.7 of [Schwabhauser] p. 44.
       (Contributed by Scott Fenton, 18-Oct-2013.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    outsideoftr $p |- ( ( N e. NN /\ ( A e. ( EE ` N ) /\ B e. ( EE ` N ) )
          /\
    ( C e. ( EE ` N ) /\ P e. ( EE ` N ) ) ) ->
    ( ( P OutsideOf <. A , B >. /\ P OutsideOf <. B , C >. ) ->
      P OutsideOf <. A , C >. ) ) $=
      ( wcel wa w3a wne cop cbtwn wbr wo coutsideof wi simprr df-3an expr jaod
      wb cee cfv simpll simplr 3jca simplr1 simplr3 simp3r simp2l simp2r simp3l
      simp1 simpr2 simpr3 btwnexchand orcd sylan2br simprlr btwnconn3 syl122anc
      adantr mp2and simpll2 adantl necomd btwnconn1 mp3and olcd imp32 syl5 impd
      cn exp31 broutsideof2 syl13anc anbi12d anbi12i an4 bitr4i syl6bb 3imtr4d
      ) EVLFZAEUAUBZFZBWCFZGZCWCFZDWCFZGZHZADIZBDIZGZWLCDIZGZGZADBJZKLZBDAJZKLZ
      MZBDCJZKLZCWQKLZMZGZGZWKWNAXBKLZCWSKLZMZHZDABJNLZDBCJNLZGZDACJNLZWJWPXFXK
      WPWKWLWNHZWJXFXKOWPWKWLWNWKWLWOUCWKWLWOUDWMWLWNPUEWJXPXFXKWJXPGZXFGWKWNXJ
      WKWLWNWJXFUFWKWLWNWJXFUGXQXAXEXJXQWRXEXJOZWTWJXPWRXRWJXPWRGZGXCXJXDWJXSXC
      XJXSXCGWJXPWRXCHZXJXPWRXCQWJXTGXHXIWJXTDABCEWBWFWIULZWBWFWGWHUHZWBWDWEWIU
      IZWBWDWEWIUJZWBWFWGWHUKZWJXPWRXCUMWJXPWRXCUNUOUPUQRWJXSXDXJWJXSXDGZGWRXDX
      JWJXPWRXDURWJXSXDPWJWRXDGXJOZYFWJWBWHWDWGWEYGYAYBYCYEYDDACBEUSUTVAVBRSRWJ
      XPWTXRWJXPWTGZGXCXJXDWJYHXCXJWJYHXCGZGZDBIZWTXCXJYJBDYIWLWJWKWLWNWTXCVCVD
      VEWJXPWTXCURWJYHXCPWJYKWTXCHXJOZYIWJWBWHWEWDWGYLYAYBYDYCYEDBACEVFUTVAVGRW
      JYHXDXJYHXDGWJXPWTXDHZXJXPWTXDQWJYMGXIXHWJYMDCBAEYAYBYEYDYCWJXPWTXDUNWJXP
      WTXDUMUOVHUQRSRSVIUEVMVJVKWJXNWKWLXAHZWLWNXEHZGZXGWJXLYNXMYOWJWBWHWDWEXLY
      NTYAYBYCYDABDEVNVOWJWBWHWEWGXMYOTYAYBYDYEBCDEVNVOVPYPWMXAGZWOXEGZGXGYNYQY
      OYRWKWLXAQWLWNXEQVQWMWOXAXEVRVSVTWJWBWHWDWGXOXKTYAYBYCYEACDEVNVOWA $.
  $}

  $( Uniqueness law for ` OutsideOf ` .  Analogue of ~ segconeq .  (Contributed
     by Scott Fenton, 24-Oct-2013.)  (Revised by Mario Carneiro,
     19-Apr-2014.) $)
  outsideofeq $p |- ( ( N e. NN /\
    ( A e. ( EE ` N ) /\ R e. ( EE ` N ) /\ B e. ( EE ` N ) ) /\
    ( C e. ( EE ` N ) /\ X e. ( EE ` N ) /\ Y e. ( EE ` N ) ) ) ->
    ( ( ( A OutsideOf <. X , R >. /\ <. A , X >. Cgr <. B , C >. ) /\
        ( A OutsideOf <. Y , R >. /\ <. A , Y >. Cgr <. B , C >. ) ) ->
      X = Y ) ) $=
    ( wcel w3a cop wbr wa wne cbtwn simprlr simprrr simprll exp32 endofsegidand
    adantl cn cee cfv coutsideof ccgr wo wceq simp21 simp32 simp22 broutsideof2
    wb syl13anc anbi1d simp33 anbi12d simpll3 simprl3 jca simpll2 simp23 simp31
    simp1 cgrtr3and wi midofsegid syl122anc adantr mp3and btwnexchand cgrcomand
    jca32 eqcomd simprr simplrr simprrl necomd btwnconn1 mpjaod ccased imp32 ex
    expr syldan sylbid ) EUAHZAEUBUCZHZDWGHZBWGHZIZCWGHZFWGHZGWGHZIZIZAFDJUDKZA
    FJZBCJZUEKZLZAGDJUDKZAGJZWSUEKZLZLFAMZDAMZFADJZNKZDWRNKZUFZIZWTLZGAMZXGGXHN
    KZDXCNKZUFZIZXDLZLZFGUGZWPXAXMXEXSWPWQXLWTWPWFWHWMWIWQXLULWFWKWOVCZWFWHWIWJ
    WOUHZWFWKWLWMWNUIZWFWHWIWJWOUJZFDAEUKUMUNWPXBXRXDWPWFWHWNWIXBXRULYBYCWFWKWL
    WMWNUOZYEGDAEUKUMUNUPWPXTYAWPXTXKXQLZXGWRXCUEKZLZLYAWPXTLYGXGYHXTYGWPXTXKXQ
    XFXGXKWTXSUQXNXGXQXDXMURUSTXTXGWPXFXGXKWTXSUTTWPXTAFAGBCEYBYCYDYCYFWFWHWIWJ
    WOVAWFWKWLWMWNVBWPXLWTXSOWPXMXRXDPVDVLWPYGYIYAWPXIXOXJXPYIYAVEWPXIXOLZYIYAW
    PYJYILZLXIXOYHYAWPXIXOYIQWPXIXOYIOWPYJXGYHPWPXIXOYHIYAVEZYKWPWFWHWIWMWNYLYB
    YCYEYDYFADFGEVFVGVHVIRWPXJXOLZYIYAWPYMYILZAFGEYBYCYDYFWPYNAGDFEYBYCYFYEYDWP
    XJXOYIOWPXJXOYIQVJWPYMXGYHPSRWPXIXPLZYIYAWPYOYILZLGFWPYPAGFEYBYCYFYDWPYPAFD
    GEYBYCYDYEYFWPXIXPYIQWPXIXPYIOVJWPYPAFAGEYBYCYDYCYFWPYOXGYHPVKSVMRWPXJXPLZY
    IYAWPYQYILZLZFXCNKZYAGWRNKZWPYRYTYAWPYRYTLZLGFWPUUBAGFEYBYCYFYDWPYRYTVNWPUU
    BAFAGEYBYCYDYCYFUUBYHWPYQXGYHYTVOTVKSVMWCWPYRUUAYAWPYRUUALZAFGEYBYCYDYFWPYR
    UUAVNUUCYHWPYQXGYHUUAVOTSWCYSADMZXJXPYTUUAUFZYSDAWPYQXGYHVPVQWPXJXPYIQWPXJX
    PYIOWPUUDXJXPIUUEVEZYRWPWFWHWIWMWNUUFYBYCYEYDYFADFGEVRVGVHVIVSRVTWAWDWBWE
    $.

  ${
    $d A x $.  $d A y $.  $d B x $.  $d B y $.  $d C x $.  $d C y $.  $d N x $.
    $d N y $.  $d R x $.  $d R y $.  $d x y $.
    $( Given a non-degenerate ray, there is a unique point congruent to the
       segment ` B C ` lying on the ray ` A R ` .  Theorem 6.11 of
       [Schwabhauser] p. 44.  (Contributed by Scott Fenton, 23-Oct-2013.)
       (Revised by Mario Carneiro, 19-Apr-2014.) $)
    outsideofeu $p |- ( ( N e. NN /\
      ( A e. ( EE ` N ) /\ R e. ( EE ` N ) ) /\
      ( B e. ( EE ` N ) /\ C e. ( EE ` N ) ) ) ->
      ( ( R =/= A /\ B =/= C ) ->
        E! x e. ( EE ` N ) ( A OutsideOf <. x , R >. /\
         <. A , x >. Cgr <. B , C >. ) ) ) $=
      ( vy wcel wa w3a wne cv cop coutsideof wbr ccgr wrex adantr wb 3jca cn wi
      cee cfv wreu weq wral cbtwn wo segcon2 simpl2l simpr simpl2r broutsideof2
      simpl1 syl13anc simpllr adantl wceq simprlr simp2l anim1i simpl3 cgrdegen
      simp3 syl3anc mpd necon3bid mpbird necomd simplll simprr expr bitrd orcom
      impbid2 syl6bb pm5.32rd an32s rexbidva simpl3l simpl3r simprl outsideofeq
      imp syl2an an4s exp32 ralrimivv opeq1 breq2d breq1d anbi12d reu4 sylanbrc
      opeq2 ex ) FUAHZBFUCUDZHZEWSHZIZCWSHZDWSHZIZJZEBKZCDKZIZBALZEMZNOZBXJMZCD
      MZPOZIZAWSUEZXFXIIZXPAWSQZXPBGLZEMZNOZBXTMZXNPOZIZIZAGUFZUBZGWSUGAWSUGXQX
      RXSEXMUHOZXJBEMUHOZUIZXOIZAWSQZXFYMXIAECDBFUJRXRXPYLAWSXFXJWSHZXIXPYLSXFY
      NIZXIIXOXLYKYOXIXOXLYKSYOXIXOIZIZXLYJYIUIZYKYQXLXJBKZXGYRJZYRYOXLYTSZYPYO
      WRWTYNXAUUAWRXBXEYNUOZWTXAWRXEYNUKXFYNULWTXAWRXEYNUMXJEBFUNUPRYQYTYRYSXGY
      RVEYOYPYRYTYOYPYRIZIZYSXGYRUUDBXJUUDBXJKXHUUCXHYOXGXHXOYRUQURUUDBXJCDUUDX
      OBXJUSCDUSSZYOXIXOYRUTYOXOUUEUBZUUCYOWRWTYNIXEUUFUUBXFWTYNWRWTXAXEVAVBWRX
      BXEYNVCBXJCDFVDVFRVGVHVIVJUUCXGYOXGXHXOYRVKURYOYPYRVLTVMVPVNYJYIVOVQVMVRV
      SVTVIXRYHAGWSWSXRYNXTWSHZIZYFYGXFUUHXIYFYGXFUUHIZWRWTXAXCJZXDYNUUGJZJZYFY
      GXIYFIUUIWRUUJUUKWRXBXEUUHUOUUIWTXAXCWTXAWRXEUUHUKWTXAWRXEUUHUMXCXDWRXBUU
      HWATUUIXDYNUUGXCXDWRXBUUHWBXFYNUUGWCXFYNUUGVLTTXIYFULUULYFYGBCDEFXJXTWDWE
      WFWGWHWIXPYEAGWSYGXLYBXOYDYGXKYABNXJXTEWJWKYGXMYCXNPXJXTBWPWLWMWNWOWQ $.
  $}

  ${
    $d A y $.  $d B y $.  $d P y $.  $d N y $.
    $( Relate ` OutsideOf ` to ` Seg<_ ` .  Theorem 6.13 of [Schwabhauser]
       p. 45.  (Contributed by Scott Fenton, 24-Oct-2013.)  (Revised by Mario
       Carneiro, 19-Apr-2014.) $)
    outsidele $p |- ( ( N e. NN /\
    ( P e. ( EE ` N ) /\ A e. ( EE ` N ) /\ B e. ( EE ` N ) ) ) ->
    ( P OutsideOf <. A , B >. ->
      ( <. P , A >. Seg<_ <. P , B >. <-> A Btwn <. P , B >. ) ) ) $=
      ( vy wcel w3a wa cop coutsideof cbtwn wb ccgr simpr3 adantr wceq ad2antrr
      wbr wi mpd cn cee cfv csegle cv wrex simpl simpr1 simpr2 syl122anc simprl
      brsegle2 outsideofcom mpbid simpll simplr1 simplr3 cgrrflxd jca ccolin wn
      simprrl simpr simplr2 btwncolinear1 syl13anc wne outsidene1 neneqd df-3an
      simpr2l btwncomand btwnswapid2 mp2and sylan2br expr mtod sylanbrc simprrr
      broutsideof outsideofeq syl133anc opeq2 breq2d syl5ibrcom an4s rexlimdvaa
      sylbid btwnsegle impbid ex ) DUAFZCDUBUCZFZAWMFZBWMFZGZHZCABIJRZCAICBIZUD
      RZAWTKRZLWRWSHZXAXBXCXAACEUEZIZKRZXEWTMRZHZEWMUFZXBWRXAXILZWSWRWLWNWOWNWP
      XJWLWQUGWLWNWOWPUHZWLWNWOWPUIXKWLWNWOWPNECACBDULUJOXCXHXBEWMWRXDWMFZWSXHX
      BWRXLHZWSXHHZHZBXDPZXBXOCBAIJRZWTWTMRZHZCXDAIZJRZXGHZXPXOXQXRXOWSXQXMWSXH
      UKZWRWSXQLXLXNABCDUMQUNXMXRXNXMCBDWLWQXLUOZWNWOWPWLXLUPZWNWOWPWLXLUQZUROU
      SXOYAXGXOCXTUTRZCXTKRZVAYAXOXFYGXMWSXFXGVBZXMXFYGSZXNXMWLWNXLWOYJYDYEWRXL
      VCZWNWOWPWLXLVDZCXDADVEVFOTXOYHACPZXOACXOWSACVGZYCWRWSYNSXLXNABCDVHQTVIXM
      XNYHYMXNYHHXMWSXHYHGZYMWSXHYHVJXMYOHAXDCIKRZYHYMXMYOACXDDYDYLYEYKXFXGWSYH
      XMVKVLXMWSXHYHNXMYPYHHYMSZYOXMWLWOXLWNYQYDYLYKYEAXDCDVMVFOVNVOVPVQXDACVTV
      RXMWSXFXGVSUSXMXSYBHXPSZXNXMWLWNWOWNWPWPXLYRYDYEYLYEYFYFYKCCBADBXDWAWBOVN
      XOXBXPXFYIXPWTXEAKBXDCWCWDWETWFWGWHWRXBXASWSCABDWIOWJWK $.
  $}

  $( Outside of implies colinearity.  (Contributed by Scott Fenton,
     26-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
  outsideofcol $p |- ( P OutsideOf <. Q , R >. -> P Colinear <. Q , R >. ) $=
    ( cop coutsideof wbr ccolin cbtwn wn broutsideof simplbi ) ABCDZEFALGFALHFI
    BCAJK $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Lines and Rays
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c Line LinesEE Ray $.

  $( Declare the constant for the line function. $)
  cline2 $a class Line $.

  $( Declare the constant for the ray function. $)
  cray $a class Ray $.

  $( Declare the constant for the set of all lines. $)
  clines2 $a class LinesEE $.

  ${
    $d a b l n $.
    $( Define the ` Line ` function.  This function generates the line passing
       through the distinct points ` a ` and ` b ` .  Adapted from definition
       6.14 of [Schwabhauser] p. 45.  (Contributed by Scott Fenton,
       25-Oct-2013.) $)
    df-line2 $a |- Line = { <. <. a , b >. , l >. |
       E. n e. NN ( ( a e. ( EE ` n ) /\ b e. ( EE ` n ) /\ a =/= b ) /\
         l = [ <. a , b >. ] `' Colinear ) } $.
  $}

  ${
    $d p a r n x $.
    $( Define the ` Ray ` function.  This function generates the set of all
       points that lie on the ray starting at ` p ` and passing through ` a ` .
       Definition 6.8 of [Schwabhauser] p. 44.  (Contributed by Scott Fenton,
       21-Oct-2013.) $)
    df-ray $a |- Ray = { <. <. p , a >. , r >. |
       E. n e. NN ( ( p e. ( EE ` n ) /\ a e. ( EE ` n ) /\ p =/= a ) /\
         r = { x e. ( EE ` n ) | p OutsideOf <. a , x >. } ) } $.
  $}

  $( Define the set of all lines.  Definition 6.14, part 2 of [Schwabhauser]
     p. 45.  See ~ ellines for membership.  (Contributed by Scott Fenton,
     28-Oct-2013.) $)
  df-lines2 $a |- LinesEE = ran Line $.

  ${
    $d a m $.  $d a n $.  $d a p $.  $d a r $.  $d a s $.  $d a x $.  $d m n $.
    $d m p $.  $d m r $.  $d m s $.  $d m x $.  $d n p $.  $d n r $.  $d n s $.
    $d n x $.  $d p r $.  $d p s $.  $d p x $.  $d r s $.  $d r x $.  $d s x $.

    $( Show that the ` Ray ` relationship is a function.  (Contributed by Scott
       Fenton, 21-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    funray $p |- Fun Ray $=
      ( vp vn va vr vx vm vs cray wfun cv cee cfv wcel w3a crab wceq wa cn wrex
      wi wne cop coutsideof wbr coprab wmo weq wal reeanv simp1 axdimuniq fveq2
      rabeq syl eqeq2d anbi1d eqtr3 syl6bi an4s ex com3l syl2an com12 rexlimivv
      imp sylbir gen2 anbi2d rexbidv eleq2d 3anbi12d anbi12d cbvrexv syl6bb mo4
      eqeq1 mpbir funoprab df-ray funeqi ) HIAJZBJZKLZMZCJZWCMZWAWEUAZNZDJZWAWE
      EJUBUCUDZEWCOZPZQZBRSZACDUEZIWNACDWNDUFWNWAFJZKLZMZWEWQMZWGNZGJZWJEWQOZPZ
      QZFRSZQZDGUGZTZGUHDUHXHDGXFWMXDQZFRSBRSXGWMXDBFRRUIXIXGBFRRXIWBRMZWPRMZQZ
      XGWHWTWLXCXLXGTZWHWTQWLXCQZXMWHWDWRXNXMTWTWDWFWGUJWRWSWGUJXLWDWRQZXNXGXLX
      OXNXGTZXJWDXKWRXPXJWDQXKWRQQBFUGZXPWAWPWBUKXQXNWIXBPZXCQXGXQWLXRXCXQWKXBW
      IXQWCWQPWKXBPWBWPKULZWJEWCWQUMUNZUOUPWIXAXBUQURUNUSUTVAVBVEUSVCVDVFVGWNXE
      DGXGWNWHXAWKPZQZBRSXEXGWMYBBRXGWLYAWHWIXAWKVPVHVIYBXDBFRXQWHWTYAXCXQWDWRW
      FWSWGXQWCWQWAXSVJXQWCWQWEXSVJVKXQWKXBXAXTUOVLVMVNVOVQVRHWOEBDACVSVTVQ $.
  $}

  ${
    $d A a $.  $d a n $.  $d A n $.  $d a p $.  $d A p $.  $d a r $.  $d A r $.
    $d a x $.  $d A x $.  $d N a $.  $d N n $.  $d n p $.  $d N p $.  $d n r $.
    $d N r $.  $d n x $.  $d N x $.  $d P a $.  $d P n $.  $d P p $.  $d p r $.
    $d P r $.  $d p x $.  $d P x $.  $d r x $.
    $( Calculate the value of the ` Ray ` function.  (Contributed by Scott
       Fenton, 21-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    fvray $p |- ( ( N e. NN /\
           ( P e. ( EE ` N ) /\ A e. ( EE ` N ) /\ P =/= A ) ) ->
           ( P Ray A ) =
             { x e. ( EE ` N ) | P OutsideOf <. A , x >. } ) $=
      ( vp vn va vr cn wcel cee w3a wa cray cop cv coutsideof wbr crab wceq cfv
      wne df-ov wrex coprab eqid fveq2 eleq2d 3anbi12d rabeq syl eqeq2d anbi12d
      co rspcev mpanr2 wb simpr1 simpr2 fvex rabex eleq1 neeq1 3anbi13d rabbidv
      cvv breq1 rexbidv neeq2 3anbi23d opeq1 breq2d eqeq1 anbi2d mp3an3 syl2anc
      eloprabg mpbird df-br df-ray eleq2i bitri wi funray funbrfv sylbir syl5eq
      wfun ax-mp ) DIJZCDKUAZJZBWKJZCBUBZLZMZCBNUNCBOZNUAZCBAPZOZQRZAWKSZCBNUCW
      PWQXBOZEPZFPZKUAZJZGPZXFJZXDXHUBZLZHPZXDXHWSOZQRZAXFSZTZMZFIUDZEGHUEZJZWR
      XBTZWPXTCXFJZBXFJZWNLZXBXAAXFSZTZMZFIUDZWJWOXBXBTZYHXBUFYGWOYIMFDIXEDTZYD
      WOYFYIYJYBWLYCWMWNYJXFWKCXEDKUGZUHYJXFWKBYKUHUIYJYEXBXBYJXFWKTYEXBTYKXAAX
      FWKUJUKULUMUOUPWPWLWMXTYHUQZWJWLWMWNURWJWLWMWNUSWLWMXBVFJYLXAAWKDKUTVAXRY
      BXICXHUBZLZXLCXMQRZAXFSZTZMZFIUDYDXLYETZMZFIUDYHEGHCBXBWKWKVFXDCTZXQYRFIU
      UAXKYNXPYQUUAXGYBXJYMXIXDCXFVBXDCXHVCVDUUAXOYPXLUUAXNYOAXFXDCXMQVGVEULUMV
      HXHBTZYRYTFIUUBYNYDYQYSUUBXIYCYMWNYBXHBXFVBXHBCVIVJUUBYPYEXLUUBYOXAAXFUUB
      XMWTCQXHBWSVKVLVEULUMVHXLXBTZYTYGFIUUCYSYFYDXLXBYEVMVNVHVQVOVPVRXTWQXBNRZ
      YAUUDXCNJXTWQXBNVSNXSXCAFHEGVTWAWBNWHUUDYAWCWDWQXBNWEWIWFUKWG $.
  $}

  ${
    $d a b $.  $d a k $.  $d a l $.  $d a m $.  $d a n $.  $d b k $.  $d b l $.
    $d b m $.  $d b n $.  $d k l $.  $d k m $.  $d k n $.  $d l m $.  $d l n $.
    $d m n $.
    $( Show that the ` Line ` relationship is a function.  (Contributed by
       Scott Fenton, 25-Oct-2013.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    funline $p |- Fun Line $=
      ( va vn vb vl vm vk cline2 wfun cv cee cfv wcel w3a wceq wa cn weq wi wal
      wrex wne cop ccolin cec coprab wmo reeanv eqtr3 ad2ant2l rexlimivv sylbir
      ccnv a1i eqeq1 anbi2d rexbidv fveq2 eleq2d 3anbi12d anbi1d cbvrexv syl6bb
      gen2 mo4 mpbir funoprab df-line2 funeqi ) GHAIZBIZJKZLZCIZVKLZVIVMUAZMZDI
      ZVIVMUBUCULUDZNZOZBPTZACDUEZHWAACDWADUFWAVIEIZJKZLZVMWDLZVOMZFIZVRNZOZEPT
      ZOZDFQZRZFSDSWNDFWLVTWJOZEPTBPTWMVTWJBEPPUGWOWMBEPPWOWMRVJPLWCPLOVSWIWMVP
      WGVQWHVRUHUIUMUJUKVCWAWKDFWMWAVPWIOZBPTWKWMVTWPBPWMVSWIVPVQWHVRUNUOUPWPWJ
      BEPBEQZVPWGWIWQVLWEVNWFVOWQVKWDVIVJWCJUQZURWQVKWDVMWRURUSUTVAVBVDVEVFGWBB
      ACDVGVHVE $.
  $}

  ${
    $d A l $.  $d A n $.  $d A x $.  $d A y $.  $d l n $.  $d l x $.  $d l y $.
    $d n x $.  $d n y $.  $d x y $.
    $( When ` Line ` is applied with the same argument, the result is the empty
       set.  (Contributed by Scott Fenton, 29-Oct-2013.)  (Revised by Mario
       Carneiro, 19-Apr-2014.) $)
    linedegen $p |- ( A Line A ) = (/) $=
      ( vx vn vy vl cline2 cop cfv wcel wn wceq cv wne w3a cec wa wrex wex cvv
      cn co c0 df-ov cdm cee ccolin ccnv copab neirr simp3 mto intnanr a1i nrex
      nex eleq1 neeq1 3anbi13d opeq1 eceq1d eqeq2d anbi12d rexbidv exbidv neeq2
      wb 3anbi23d opeq2 opelopabg anidms mtbiri cxp elopaelxp opelxp1 syl con3i
      pm2.61i coprab df-line2 dmeqi dmoprab eqtri eleq2i mtbir ndmfv ax-mp ) AA
      FUAAAGZFHZUBAAFUCWGFUDZIZJWHUBKWJWGBLZCLZUEHZIZDLZWMIZWKWOMZNZELZWKWOGZUF
      UGZOZKZPZCTQZERZBDUHZIZASIZXHJXIXHAWMIZXJAAMZNZWSWGXAOZKZPZCTQZERZXPEXOCT
      XOJWLTIXLXNXLXKAUIXJXJXKUJUKULUMUNUOXIXHXQVFXFXJWPAWOMZNZWSAWOGZXAOZKZPZC
      TQZERXQBDAASSWKAKZXEYDEYEXDYCCTYEWRXSXCYBYEWNXJWQXRWPWKAWMUPWKAWOUQURYEXB
      YAWSYEWTXTXAWKAWOUSUTVAVBVCVDWOAKZYDXPEYFYCXOCTYFXSXLYBXNYFWPXJXRXKXJWOAW
      MUPWOAAVEVGYFYAXMWSYFXTWGXAWOAAVHUTVAVBVCVDVIVJVKXHXIXHWGSSVLIXIXFBDWGVMA
      ASSVNVOVPVQWIXGWGWIXEBDEVRZUDXGFYGCBDEVSVTXEBDEWAWBWCWDWGFWEWFWB $.
  $}

  ${
    $d A a $.  $d a b $.  $d A b $.  $d a l $.  $d A l $.  $d a n $.  $d A n $.
    $d A x $.  $d B a $.  $d B b $.  $d b l $.  $d B l $.  $d b n $.  $d B n $.
    $d B x $.  $d l n $.  $d N n $.
    $( Calculate the value of the ` Line ` function.  (Contributed by Scott
       Fenton, 25-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    fvline $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ A =/= B ) ) ->
       ( A Line B ) = { x | x Colinear <. A , B >. } ) $=
      ( va vn vb vl cn wcel cee w3a wa cline2 cop ccolin cv wceq wrex cvv fveq2
      cfv wne ccnv cec wbr cab coprab eqid eleq2d 3anbi12d anbi1d rspcev mpanr2
      co simpr1 simpr2 colinearex cnvex ecexg ax-mp eleq1 neeq1 3anbi13d eceq1d
      wb opeq1 eqeq2d anbi12d neeq2 3anbi23d opeq2 eqeq1 anbi2d eloprabg mp3an3
      rexbidv syl2anc mpbird df-ov df-br df-line2 bitri wfun wi funline funbrfv
      eleq2i sylbir syl5eq syl opex dfec2 vex brcnv abbii eqtri syl6eq ) DIJZBD
      KUBZJZCWTJZBCUCZLZMZBCNUOZBCOZPUDZUEZAQZXGPUFZAUGZXEXGXIOZEQZFQZKUBZJZGQZ
      XPJZXNXRUCZLZHQZXNXROZXHUEZRZMZFISZEGHUHZJZXFXIRXEYIBXPJZCXPJZXCLZXIXIRZM
      ZFISZWSXDYMYOXIUIYNXDYMMFDIXODRZYLXDYMYPYJXAYKXBXCYPXPWTBXODKUAZUJYPXPWTC
      YQUJUKULUMUNXEXAXBYIYOVFZWSXAXBXCUPWSXAXBXCUQXAXBXITJZYRXHTJYSPURUSXGTXHU
      TVAYGYJXSBXRUCZLZYBBXROZXHUEZRZMZFISYLYBXIRZMZFISYOEGHBCXIWTWTTXNBRZYFUUE
      FIUUHYAUUAYEUUDUUHXQYJXTYTXSXNBXPVBXNBXRVCVDUUHYDUUCYBUUHYCUUBXHXNBXRVGVE
      VHVIVQXRCRZUUEUUGFIUUIUUAYLUUDUUFUUIXSYKYTXCYJXRCXPVBXRCBVJVKUUIUUCXIYBUU
      IUUBXGXHXRCBVLVEVHVIVQUUFUUGYNFIUUFUUFYMYLYBXIXIVMVNVQVOVPVRVSYIXFXGNUBZX
      IBCNVTYIXGXINUFZUUJXIRZUUKXMNJYIXGXINWANYHXMFEGHWBWHWCNWDUUKUULWEWFXGXINW
      GVAWIWJWKXIXGXJXHUFZAUGZXLXGTJXIUUNRBCWLZAXGXHTWMVAUUMXKAXGXJPUUOAWNWOWPW
      QWR $.
  $}

  ${
    $d N x $.  $d A x $.  $d B x $.
    $( A line is a subset of the space its two points lie in.  (Contributed by
       Scott Fenton, 25-Oct-2013.)  (Revised by Mario Carneiro,
       19-Apr-2014.) $)
    liness $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ A =/= B ) ) ->
       ( A Line B ) C_ ( EE ` N ) ) $=
      ( vx cn wcel cee cfv wne w3a wa cline2 co cop ccolin wbr cab fvline cvv
      cv wi vex a1i simp1 simp2 3jca colineardim1 sylan2 abssdv eqsstrd ) CEFZA
      CGHZFZBULFZABIZJZKZABLMDTZABNOPZDQULDABCRUQUSDULUPUKURSFZUMUNJUSURULFUAUP
      UTUMUNUTUPDUBUCUMUNUOUDUMUNUOUEUFURABCSULUGUHUIUJ $.

    $( Alternate definition of a line.  (Contributed by Scott Fenton,
       25-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    fvline2 $p |- ( ( N e. NN /\
       ( A e. ( EE ` N ) /\ B e. ( EE ` N ) /\ A =/= B ) ) ->
       ( A Line B ) = { x e. ( EE ` N ) | x Colinear <. A , B >. } ) $=
      ( cn wcel cee cfv wne w3a wa cline2 co cv cop ccolin wbr cab cin crab wss
      fvline wceq liness eqsstr3d df-ss sylib eqtr4d dfrab2 syl6eqr ) DEFBDGHZF
      CUKFBCIJKZBCLMZANBCOPQZARZUKSZUNAUKTULUMUOUPABCDUBZULUOUKUAUPUOUCULUOUMUK
      UQBCDUDUEUOUKUFUGUHUNAUKUIUJ $.
  $}

  ${
    $d N x $.  $d P x $.  $d Q x $.  $d R x $.
    $( A line is composed of a point and the two rays emerging from it.
       Theorem 6.15 of [Schwabhauser] p. 45.  (Contributed by Scott Fenton,
       26-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    lineunray $p |- ( ( N e. NN /\
       ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) /\ R e. ( EE ` N ) ) /\
       ( P =/= Q /\ P =/= R ) ) ->
       ( P Btwn <. Q , R >. ->
       ( P Line Q ) = ( ( ( P Ray Q ) u. { P } ) u. ( P Ray R ) ) ) ) $=
      ( vx wcel w3a wne wa cop cbtwn wbr cun wceq crab wo wb syl13anc adantr wi
      cn cee cfv cline2 co cray csn cv ccolin coutsideof simpl1 simpl21 simpl22
      w3o simpr brcolinear olc orcd simpl3l necomd simprl simprr 3jca btwnconn2
      a1i simpl23 syl122anc olcd expr btwncom syl6bi 3jaod sylbid colineartriv1
      mpd orc syl6 syl3anc breq1 syl5ibrcom btwncolinear3 btwncolinear5 simpl3r
      jaod btwnouttr btwncolinear4 btwncomand btwnexch3and btwncolinear2 impbid
      pm5.63 df-ne anbi1i andi bitr3i orbi2i syl6bb broutsideof2 3simpc simprrl
      wn bitri simprrr impbid2 bitrd orbi12d orbi2d bitr4d orcom an32s rabbidva
      or32 simp1 simp21 simp22 simp3l fvline2 fvray rabsn eqcomd uneq12d simp23
      syl simp3r unrab uneq1i eqtri syl6eq 3eqtr4d ex ) DUAFZADUBUCZFZBYLFZCYLF
      ZGZABHZACHZIZGZABCJKLZABUDUEZABUFUEZAUGZMZACUFUEZMZNYTUUAIZEUHZABJZUILZEY
      LOZABUUIJZUJLZUUIANZPZACUUIJUJLZPZEYLOZUUBUUGUUHUUKUUREYLYTUUIYLFZUUAUUKU
      URQYTUUTIZUUAIZUUKUUOUUNUUQPZPZUURUVBUUKUUOUUIAHZBAUUIJZKLZUUIUUJKLZPZIZU
      VECUVFKLZUUIACJKLZPZIZPZPZUVDUVBUUKUUOUVIUVMPZPZUVPUVBUUKUVRUVBUUKUVQUVRU
      VBUUKUVHAUUMKLZBUUIAJKLZUNZUVQUVAUUKUWAQZUUAUVAYKUUTYMYNUWBYKYPYSUUTUKZYT
      UUTUOZYMYNYOYKYSUUTULZYMYNYOYKYSUUTUMZUUIABDUPRSUVBUVHUVQUVSUVTUVHUVQTUVB
      UVHUVIUVMUVHUVGUQURVEUVAUUAUVSUVQUVAUUAUVSIZIZUVMUVIUWHBAHZUUAUVSGZUVMUWH
      UWIUUAUVSUVAUWIUWGUVAABYQYRYKYPUUTUSUTSUVAUUAUVSVAUVAUUAUVSVBVCUVAUWJUVMT
      ZUWGUVAYKYNYMYOUUTUWKUWCUWFUWEYMYNYOYKYSUUTVFZUWDBACUUIDVDVGSVOVHVIUVAUVT
      UVQTUUAUVAUVTUVGUVQUVAYKYNUUTYMUVTUVGQUWCUWFUWDUWEBUUIADVJRUVGUVIUVMUVGUV
      HVPURVKSVLVMUVQUUOUQVQUVBUUOUUKUVQUVAUUOUUKTUUAUVAUUKUUOAUUJUILZUVAYKYMYN
      UWMUWCUWEUWFABDVNVRUUIAUUJUIVSVTSUVBUVIUUKUVMUVAUVIUUKTUUAUVAUVGUUKUVHUVA
      YKYMUUTYNUVGUUKTUWCUWEUWDUWFAUUIBDWARUVAYKYMYNUUTUVHUUKTUWCUWEUWFUWDABUUI
      DWBRWDSUVBUVKUUKUVLUVAUUAUVKUUKUVAUUAUVKIZIZUVSUUKUWOYRUUAUVKGZUVSUWOYRUU
      AUVKUVAYRUWNYQYRYKYPUUTWCSUVAUUAUVKVAUVAUUAUVKVBVCUVAUWPUVSTZUWNUVAYKYNYM
      YOUUTUWQUWCUWFUWEUWLUWDBACUUIDWEVGSVOUVAUVSUUKTZUWNUVAYKYNUUTYMUWRUWCUWFU
      WDUWEBUUIADWFRSVOVIUVAUUAUVLUUKUVAUUAUVLIZIAUUIBJKLZUUKUVAUWSCUUIABDUWCUW
      LUWDUWEUWFUVAUWSUUIACDUWCUWDUWEUWLUVAUUAUVLVBWGUVAUWSABCDUWCUWEUWFUWLUVAU
      UAUVLVAWGWHUVAUWTUUKTZUWSUVAYKUUTYNYMUXAUWCUWDUWFUWEUUIBADWIRSVOVIWDWDWDW
      JUVRUUOUUOXAZUVQIZPUVPUUOUVQWKUXCUVOUUOUXCUVEUVQIUVOUVEUXBUVQUUIAWLWMUVEU
      VIUVMWNWOWPXBWQUVBUVCUVOUUOUVAUVCUVOQUUAUVAUUNUVJUUQUVNUVAUUNUWIUVEUVIGZU
      VJUVAYKYMYNUUTUUNUXDQUWCUWEUWFUWDBUUIADWRRUVAUXDUVJUWIUVEUVIWSYTUUTUVJUXD
      YTUUTUVJIZIZUWIUVEUVIUXFABYQYRYKYPUXEUSUTYTUUTUVEUVIWTYTUUTUVEUVIXCVCVIXD
      XEUVAUUQCAHZUVEUVMGZUVNUVAYKYMYOUUTUUQUXHQUWCUWEUWLUWDCUUIADWRRUVAUXHUVNU
      XGUVEUVMWSYTUUTUVNUXHYTUUTUVNIZIZUXGUVEUVMUXJACYQYRYKYPUXIWCUTYTUUTUVEUVM
      WTYTUUTUVEUVMXCVCVIXDXEXFSXGXHUVDUVCUUOPUURUUOUVCXIUUNUUQUUOXLXBWQXJXKYTU
      UBUULNZUUAYTYKYMYNYQUXKYKYPYSXMZYKYMYNYOYSXNZYKYMYNYOYSXOZYKYPYQYRXPZEABD
      XQRSUUHUUGUUNEYLOZUUOEYLOZMZUUQEYLOZMZUUSYTUUGUXTNUUAYTUUEUXRUUFUXSYTUUCU
      XPUUDUXQYTYKYMYNYQUUCUXPNUXLUXMUXNUXOEBADXRRYTUXQUUDYTYMUXQUUDNUXMEYLAXSY
      CXTYAYTYKYMYOYRUUFUXSNUXLUXMYKYMYNYOYSYBYKYPYQYRYDECADXRRYASUXTUUPEYLOZUX
      SMUUSUXRUYAUXSUUNUUOEYLYEYFUUPUUQEYLYEYGYHYIYJ $.
  $}

  ${
    $d N x $.  $d P x $.  $d Q x $.  $d S x $.
    $( If ` S ` lies on ` P Q ` , then ` P Q = P S ` .  Theorem 6.16 of
       [Schwabhauser] p. 45.  (Contributed by Scott Fenton, 27-Oct-2013.)
       (Revised by Mario Carneiro, 19-Apr-2014.) $)
    lineelsb2 $p |- ( ( N e. NN /\
      ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) /\ P =/= Q ) /\
      ( S e. ( EE ` N ) /\ P =/= S ) ) ->
        ( S e. ( P Line Q ) -> ( P Line Q ) = ( P Line S ) ) ) $=
      ( vx w3a wa cop wbr cbtwn syl13anc adantr syl122anc mpd simprl btwncomand
      wi expr simprr mp3and cn wcel cee cfv wne ccolin cv crab cline2 co wb w3o
      wceq simpl1 simpl3l simpl21 simpl22 brcolinear biimpa simpr btwnconn3 imp
      btwncolinear3 btwncolinear5 btwnexch3and btwncolinear4 btwnexchand sylbid
      wo 3jaod simpl3r necomd btwnouttr2 btwnconn1 impbid btwncolinear2 simpl23
      jaod btwnconn2 btwnouttr mp2and 3jaodan adantrl an32s rabbidva ex fvline2
      syldan 3adant3 eleq2d breq1 syl6bb simp21 simp3l simp3r eqeq12d 3imtr4d
      elrab simp1 ) DUAUBZADUCUDZUBZBXAUBZABUEZFZCXAUBZACUEZGZFZXFCABHZUFIZGZEU
      GZXJUFIZEXAUHZXMACHZUFIZEXAUHZUMZCABUIUJZUBZXTACUIUJZUMXIXLXSXIXLGXNXQEXA
      XIXMXAUBZXLXNXQUKZXIYCGZXKYDXFYEXKCXJJIZABCHJIZBCAHJIZULZYDYEXKYIYEWTXFXB
      XCXKYIUKWTXEXHYCUNZXFXGWTXEYCUOZXBXCXDWTXHYCUPZXBXCXDWTXHYCUQZCABDURKUSYE
      YFYDYGYHYEYFGZXNXQYNXNXMXJJIZABXMHJIZBXMAHZJIZULZXQYEXNYSUKZYFYEWTYCXBXCY
      TYJXIYCUTZYLYMXMABDURKZLYNYOXQYPYRYEYFYOXQYEYFYOGZGCAXMHZJIZXMXPJIZVIZXQY
      EUUCUUGYEWTXBXFYCXCUUCUUGQYJYLYKUUAYMACXMBDVAMVBYEUUGXQQZUUCYEUUEXQUUFYEW
      TXBYCXFUUEXQQZYJYLUUAYKAXMCDVCKZYEWTXBXFYCUUFXQQZYJYLYKUUAACXMDVDKZVRZLNR
      YEYFYPXQYEYFYPGZGACXMHJIZXQYEUUNBCAXMDYJYMYKYLUUAYEUUNCABDYJYKYLYMYEYFYPO
      PYEYFYPSVEYEUUOXQQZUUNYEWTXFYCXBUUPYJYKUUAYLCXMADVFKZLNRYEYFYRXQYEYFYRGZG
      UUEXQYEUURACBXMDYJYLYKYMUUAYEYFYROYEUURBXMADYJYMUUAYLYEYFYRSPVGYEUUIUURUU
      JLNRVJVHYNXQUUFUUOCYQJIZULZXNYEXQUUTUKZYFYEWTYCXBXFUVAYJUUAYLYKXMACDURKZL
      YNUUFXNUUOUUSYEYFUUFXNYEYFUUFGZGYOXNYEUVCAXMCBDYJYLUUAYKYMYEYFUUFSYEYFUUF
      OVGYEYOXNQZUVCYEWTXBXCYCUVDYJYLYMUUAABXMDVDKZLNRYEYFUUOXNYEYFUUOGZGZYPXNU
      VGCAUEZCBAHJIZUUOYPYEUVHUVFYEACXFXGWTXEYCVKZVLZLYEUVFCABDYJYKYLYMYEYFUUOO
      PYEYFUUOSYEUVHUVIUUOFYPQZUVFYEWTXCXFXBYCUVLYJYMYKYLUUABCAXMDVMMLTYEYPXNQZ
      UVFYEWTXCYCXBUVMYJYMUUAYLBXMADVFKZLNRYEYFUUSXNYEYFUUSGZGZBUUDJIZYOVIZXNUV
      PXGYFUUEUVRYEXGUVOUVJLYEYFUUSOYEUVOCXMADYJYKUUAYLYEYFUUSSPYEXGYFUUEFUVRQZ
      UVOYEWTXBXFXCYCUVSYJYLYKYMUUAACBXMDVNMLTYEUVRXNQZUVOYEUVQXNYOYEWTXBYCXCUV
      QXNQZYJYLUUAYMAXMBDVCKZUVEVRZLNRVJVHVOYEYGGZXNXQUWDXNYSXQYEYTYGUUBLUWDYOX
      QYPYRYEYGYOXQYEYGYOGZGAXMCHJIZXQYEUWEBXMACDYJYMUUAYLYKYEUWEXMABDYJUUAYLYM
      YEYGYOSPYEYGYOOVEYEUWFXQQZUWEYEWTYCXFXBUWGYJUUAYKYLXMCADVPKLNRYEYGYPXQYEY
      GYPGZGZUUGXQUWIBAUEZYGYPUUGYEUWJUWHYEABXBXCXDWTXHYCVQZVLZLYEYGYPOYEYGYPSY
      EUWJYGYPFUUGQZUWHYEWTXCXBXFYCUWMYJYMYLYKUUABACXMDVSMLTYEUUHUWHUUMLNRYEYGY
      RXQYEYGYRGZGZUUOXQUWOXDACBHJIZUVQUUOYEXDUWNUWKLYEUWNABCDYJYLYMYKYEYGYROPY
      EUWNBXMADYJYMUUAYLYEYGYRSPYEXDUWPUVQFUUOQZUWNYEWTXFXBXCYCUWQYJYKYLYMUUACA
      BXMDVTMLTYEUUPUWNUUQLNRVJVHUWDXQUUTXNYEUVAYGUVBLUWDUUFXNUUOUUSYEYGUUFXNYE
      YGUUFGZGAXMBHJIZXNYEUWRCXMABDYJYKUUAYLYMYEUWRXMACDYJUUAYLYKYEYGUUFSPYEUWR
      ABCDYJYLYMYKYEYGUUFOPVEYEUWSXNQZUWRYEWTYCXCXBUWTYJUUAYMYLXMBADVPKLNRYEYGU
      UOXNYEYGUUOGZGZUVRXNUXBUVHUWPUUOUVRYEUVHUXAUVKLYEUXAABCDYJYLYMYKYEYGUUOOP
      YEYGUUOSYEUVHUWPUUOFUVRQZUXAYEWTXFXBXCYCUXCYJYKYLYMUUACABXMDVSMLTYEUVTUXA
      UWCLNRYEYGUUSXNYEYGUUSGZGZYPXNUXEXGYGUUEYPYEXGUXDUVJLYEYGUUSOYEUXDCXMADYJ
      YKUUAYLYEYGUUSSPYEXGYGUUEFYPQZUXDYEWTXCXBXFYCUXFYJYMYLYKUUABACXMDVTMLTYEU
      VMUXDUVNLNRVJVHVOYEYHGZXNXQUXGXNYSXQYEYTYHUUBLUXGYOXQYPYRYEYHYOXQYEYHYOGZ
      GUUFXQYEUXHAXMBCDYJYLUUAYMYKYEYHYOSYEUXHBCADYJYMYKYLYEYHYOOPVGYEUUKUXHUUL
      LNRYEYHYPXQYEYHYPGZGZUUOXQUXJUWJYHYPUUOYEUWJUXIUWLLYEYHYPOYEYHYPSYEUWJYHY
      PFUUOQZUXIYEWTXFXCXBYCUXKYJYKYMYLUUACBAXMDVMMLTYEUUPUXIUUQLNRYEYHYRXQYEYH
      YRGZGZUUGXQUXMXDBXPJIZUVQUUGYEXDUXLUWKLYEUXLBCADYJYMYKYLYEYHYROPYEUXLBXMA
      DYJYMUUAYLYEYHYRSPYEXDUXNUVQFUUGQZUXLYEWTXBXCXFYCUXOYJYLYMYKUUAABCXMDVNML
      TYEUUHUXLUUMLNRVJVHUXGXQUUTXNYEUVAYHUVBLUXGUUFXNUUOUUSYEYHUUFXNYEYHUUFGZG
      ZUVRXNUXQUXNUUFUVRYEUXPBCADYJYMYKYLYEYHUUFOPYEYHUUFSYEUXNUUFGUVRQZUXPYEWT
      XBXCYCXFUXRYJYLYMUUAYKABXMCDVAMLWAYEUVTUXPUWCLNRYEYHUUOXNYEYHUUOGZGYPXNYE
      UXSCBAXMDYJYKYMYLUUAYEYHUUOOYEYHUUOSVEYEUVMUXSUVNLNRYEYHUUSXNYEYHUUSGZGUV
      QXNYEUXTABCXMDYJYLYMYKUUAYEUXTBCADYJYMYKYLYEYHUUSOPYEUXTCXMADYJYKUUAYLYEY
      HUUSSPVGYEUWAUXTUWBLNRVJVHVOWBWHWCWDWEWFXIYACXOUBXLXIXTXOCWTXEXTXOUMXHEAB
      DWGWIZWJXNXKECXAXMCXJUFWKWRWLXIXTXOYBXRUYAXIWTXBXFXGYBXRUMWTXEXHWSWTXBXCX
      DXHWMWTXEXFXGWNWTXEXFXGWOEACDWGKWPWQ $.
  $}

  ${
    $d N x $.  $d P x $.  $d Q x $.
    $( Reflexivity law for line membership.  Part of theorem 6.17 of
       [Schwabhauser] p. 45.  (Contributed by Scott Fenton, 28-Oct-2013.)
       (Revised by Mario Carneiro, 19-Apr-2014.) $)
    linerflx1 $p |- ( ( N e. NN /\
        ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) /\ P =/= Q ) ) ->
        P e. ( P Line Q ) ) $=
      ( vx cn wcel cee cfv wne w3a wa cv cop ccolin wbr cline2 co colineartriv1
      crab simpr1 3adant3r3 breq1 elrab sylanbrc fvline2 eleqtrrd ) CEFZACGHZFZ
      BUHFZABIZJKZADLZABMZNOZDUHSZABPQULUIAUNNOZAUPFUGUIUJUKTUGUIUJUQUKABCRUAUO
      UQDAUHUMAUNNUBUCUDDABCUEUF $.

    $( Commutativity law for lines.  Part of theorem 6.17 of [Schwabhauser]
       p. 45.  (Contributed by Scott Fenton, 28-Oct-2013.)  (Revised by Mario
       Carneiro, 19-Apr-2014.) $)
    linecom $p |- ( ( N e. NN /\
        ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) /\ P =/= Q ) ) ->
        ( P Line Q ) = ( Q Line P ) ) $=
      ( vx cn wcel cee cfv wne w3a wa cv cop ccolin wbr crab cline2 co fvline2
      wb simp1 simp3 simp21 simp22 colinearperm1 syl13anc rabbidva wceq 3anbi3i
      3expa necom 3ancoma bitri sylan2b 3eqtr4d ) CEFZACGHZFZBUQFZABIZJZKZDLZAB
      MNOZDUQPVCBAMNOZDUQPZABQRBAQRZVBVDVEDUQUPVAVCUQFZVDVETZUPVAVHJUPVHURUSVIU
      PVAVHUAUPVAVHUBUPURUSUTVHUCUPURUSUTVHUDVCABCUEUFUJUGDABCSVAUPUSURBAIZJZVG
      VFUHVAURUSVJJVKUTVJURUSABUKUIURUSVJULUMDBACSUNUO $.
  $}

  $( Reflexivity law for line membership.  Part of theorem 6.17 of
     [Schwabhauser] p. 45.  (Contributed by Scott Fenton, 28-Oct-2013.)
     (Revised by Mario Carneiro, 19-Apr-2014.) $)
  linerflx2 $p |- ( ( N e. NN /\
        ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) /\ P =/= Q ) ) ->
        Q e. ( P Line Q ) ) $=
    ( cn wcel cee cfv wne w3a wa cline2 necom 3anbi3i 3ancoma linerflx1 sylan2b
    co bitri linecom eleqtrrd ) CDEZACFGZEZBUBEZABHZIZJBBAKQZABKQUFUAUDUCBAHZIZ
    BUGEUFUCUDUHIUIUEUHUCUDABLMUCUDUHNRBACOPABCST $.

  ${
    $d A n $.  $d A p $.  $d A q $.  $d A x $.  $d n p $.  $d n q $.  $d n x $.
    $d p q $.  $d p x $.  $d q x $.
    $( Membership in the set of all lines.  (Contributed by Scott Fenton,
       28-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    ellines $p |- ( A e. LinesEE <->
             E. n e. NN E. p e. ( EE ` n ) E. q e. ( EE ` n )
                ( p =/= q /\ A = ( p Line q ) ) ) $=
      ( vx clines2 wcel cvv cv cline2 wceq wa wrex cn ccolin bitr3i bitri anass
      wex cab wne co cee cfv elex wi ovex mpbiri adantl rexlimivw a1i rexlimivv
      eleq1 eqeq1 anbi2d rexbidv 2rexbidv w3a cop ccnv cec crn coprab df-lines2
      df-line2 rneqi rnoprab 3eqtri eleq2i df-rex 2exbii exrot3 r19.42v simplrl
      abid r2ex simplrr simpll simpr 3jca jca simpr2 simpl simpr1 simpr3 impbii
      jca32 anbi1i wbr fvline opex dfec2 ax-mp brcnv abbii eqtri syl6eqr eqeq2d
      vex pm5.32i 3bitrri 3exbii 3bitr4ri vtoclbg pm5.21nii ) AFGZAHGZDIZCIZUAZ
      AXHXIJUBZKZLZCBIZUCUDZMZDXOMBNMZAFUEXPXGBDNXOXPXGUFXNNGZXHXOGZLZXMXGCXOXL
      XGXJXLXGXKHGXHXIJUGAXKHUMUHUIUJUKULEIZFGZXJYAXKKZLZCXOMZDXOMBNMZXFXQEAHYA
      AFUMYAAKZYEXPBDNXOYGYDXMCXOYGYCXLXJYAAXKUNUOUPUQYBYAXSXIXOGZXJURZYAXHXIUS
      ZOUTZVAZKZLZBNMZCSDSZETZGZYFFYQYAFJVBYODCEVCZVBYQVDJYSBDCEVEVFYODCEVGVHVI
      YRYPYFYPEVOYPXRYNLZBSZCSDSZYFYOUUADCYNBNVJVKYHXTYDLZLZCSZDSBSZUUDBSCSDSYF
      UUBUUDBDCVLYFXTYELZDSBSUUFYEBDNXOVPUUGUUEBDUUGUUCCXOMUUEXTYDCXOVMUUCCXOVJ
      PVKQYTUUDDCBUUDXRYILZYCLZUUHYMLYTUUDYHXTLZYDLZUUIYHXTYDRUUKUUJXJLZYCLUUIU
      UJXJYCRUULUUHYCUULUUHUULXRYIYHXRXSXJVNUULXSYHXJYHXRXSXJVQYHXTXJVRUUJXJVSV
      TWAUUHUUJXJUUHYHXRXSXRXSYHXJWBXRYIWCXRXSYHXJWDWGXRXSYHXJWEWAWFWHPPUUHYCYM
      UUHXKYLYAUUHXKYAYJOWIZETZYLEXHXIXNWJYLYJYAYKWIZETZUUNYJHGYLUUPKXHXIWKZEYJ
      YKHWLWMUUOUUMEYJYAOUUQEWSWNWOWPWQWRWTXRYIYMRXAXBXCQQQXDXE $.
  $}

  ${
    $d A a $.  $d a b $.  $d A b $.  $d a n $.  $d A n $.  $d b n $.  $d P a $.
    $d P b $.  $d P n $.  $d Q a $.  $d Q b $.  $d Q n $.
    $( If ` A ` is a line containing two distinct points ` P ` and ` Q ` , then
       ` A ` is the line through ` P ` and ` Q ` .  Theorem 6.18 of
       [Schwabhauser] p. 45.  (Contributed by Scott Fenton, 28-Oct-2013.)
       (Revised by Mario Carneiro, 19-Apr-2014.) $)
    linethru $p |- ( ( A e. LinesEE /\ ( P e. A /\ Q e. A ) /\ P =/= Q ) ->
       A = ( P Line Q ) ) $=
      ( va vb vn wcel wa cline2 co wceq cv wrex cn wi syl13anc necomd lineelsb2
      wne syl132anc clines2 cee cfv ellines w3a simpll1 simpll2 simpll3 simprll
      wss simplr liness sseldd simprlr simplll adantl simprrl mpd linecom eqtrd
      neeq2 anbi2d anbi1d eqeq2d imbi12d mpbiri syl2anc simp1l1 simp1l2 simp1l3
      oveq2 simp2l simp1r simp2rr simplld eleqtrd simp2rl simp2lr 3eqtrd expcom
      simp1 simp3 3expa pm2.61ine expr mp2and ex eleq2 anbi12d eqeq1 syl5ibrcom
      expimpd rexlimdva rexlimivv sylbi 3impib ) AUAGZBAGZCAGZHZBCSZABCIJZKZWQD
      LZELZSZAXDXEIJZKZHZEFLZUBUCZMZDXKMFNMWTXAHZXCOZAFEDUDXLXNFDNXKXJNGZXDXKGZ
      HXIXNEXKXOXPXEXKGZXIXNOXOXPXQUEZXFXHXNXRXFHZXNXHBXGGZCXGGZHZXAHZXGXBKZOXS
      YCYDXSYCHZBXKGZCXKGZYDYEXGXKBYEXOXPXQXFXGXKUJXOXPXQXFYCUFXOXPXQXFYCUGXOXP
      XQXFYCUHXRXFYCUKXDXEXJULPZXSXTYAXAUIUMYEXGXKCYHXSXTYAXAUNZUMXSYCYFYGHZYDX
      SYCYJHZHZYDOZCXDCXDKZYMXSYBBXDSZHZYJHZHZXGBXDIJZKZOYRXGXDBIJZYSYRXTXGUUAK
      ZYQXTXSXTYAYOYJUOUPYRXOXPXQXFYFXDBSZXTUUBOXOXPXQXFYQUFZXOXPXQXFYQUGZXOXPX
      QXFYQUHXRXFYQUKXSYPYFYGUQZYRBXDXSYBYOYJUNQZXDXEBXJRTURYRXOXPYFUUCUUAYSKUU
      DUUEUUFUUGXDBXJUSPUTYNYLYRYDYTYNYKYQXSYNYCYPYJYNXAYOYBCXDBVAVBVCVBYNXBYSX
      GCXDBIVKVDVEVFYLCXDSZYDXSYKUUHYDXSYKUUHUEZXGCXDIJZCBIJZXBUUIXGXDCIJZUUJUU
      IYAXGUULKZUUIXSYCYAXSYKUUHWAXSYCYJUUHVLZYIVGUUIXOXPXQXFYGXDCSZYAUUMOXOXPX
      QXFYKUUHVHZXOXPXQXFYKUUHVIZXOXPXQXFYKUUHVJXRXFYKUUHVMYFYGYCXSUUHVNZUUICXD
      XSYKUUHWBZQZXDXECXJRTURUUIXOXPYGUUOUULUUJKUUPUUQUURUUTXDCXJUSPUTZUUIBUUJG
      ZUUJUUKKZUUIBXGUUJUUIXTYAXAUUNVOUVAVPUUIXOYGXPUUHYFCBSZUVBUVCOUUPUURUUQUU
      SYFYGYCXSUUHVQZUUIBCYBXAYJXSUUHVRQZCXDBXJRTURUUIXOYGYFUVDUUKXBKUUPUURUVEU
      VFCBXJUSPVSWCVTWDWEWFWGXHXMYCXCYDXHWTYBXAXHWRXTWSYAAXGBWHAXGCWHWIVCAXGXBW
      JVEWKWLWCWMWNWOWP $.
  $}

  ${
    $d N n $.  $d n p $.  $d N p $.  $d n q $.  $d N q $.  $d P n $.  $d P p $.
    $d p q $.  $d P q $.  $d P x $.  $d Q n $.  $d Q p $.  $d Q q $.  $d Q x $.
    $( There is a line through any two distinct points.  Hilbert's axiom I.1
       for geometry.  (Contributed by Scott Fenton, 29-Oct-2013.)  (Revised by
       Mario Carneiro, 19-Apr-2014.) $)
    hilbert1.1 $p |- ( ( N e. NN /\
       ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) /\ P =/= Q ) ) ->
       E. x e. LinesEE ( P e. x /\ Q e. x ) ) $=
      ( vp vq vn cn wcel cee cfv wne wa cline2 co clines2 cv wrex wceq anbi12d
      simp1 simp2 simp3 eqidd neeq1 oveq1 neeq2 oveq2 rspc2ev syl112anc rexeqdv
      w3a eqeq2d fveq2 rexeqbidv rspcev sylan2 sylibr linerflx1 linerflx2 eleq2
      ellines syl12anc ) DHIZBDJKZIZCVEIZBCLZULZMZBCNOZPIZBVKIZCVKIZBAQZIZCVOIZ
      MZAPRVJEQZFQZLZVKVSVTNOZSZMZFGQZJKZRZEWFRZGHRZVLVIVDWDFVERZEVERZWIVIVFVGV
      HVKVKSZWKVFVGVHUAVFVGVHUBVFVGVHUCVIVKUDWDVHWLMBVTLZVKBVTNOZSZMEFBCVEVEVSB
      SZWAWMWCWOVSBVTUEWPWBWNVKVSBVTNUFUMTVTCSZWMVHWOWLVTCBUGWQWNVKVKVTCBNUHUMT
      UIUJWHWKGDHWEDSZWGWJEWFVEWEDJUNZWRWDFWFVEWSUKUOUPUQVKGFEVBURBCDUSBCDUTVRV
      MVNMAVKPVOVKSVPVMVQVNVOVKBVAVOVKCVATUPVC $.
  $}

  ${
    $d P x $.  $d P y $.  $d Q x $.  $d Q y $.  $d x y $.
    $( There is at most one line through any two distinct points.  Hilbert's
       axiom I.2 for geometry.  (Contributed by Scott Fenton, 29-Oct-2013.)
       (Revised by NM, 17-Jun-2017.) $)
    hilbert1.2 $p |- ( P =/= Q -> E* x e. LinesEE ( P e. x /\ Q e. x ) ) $=
      ( vy wne cv wcel wa weq wi clines2 wral wceq simprl simprr simpl linethru
      syl3anc ex eleq2 wrmo an4 cline2 anim12d eqtr3 syl6 syl5bi expd ralrimivv
      co anbi12d rmo4 sylibr ) BCEZBAFZGZCUOGZHZBDFZGZCUSGZHZHZADIZJZDKLAKLURAK
      UAUNVEADKKUNUOKGZUSKGZHZVCVDVHVCHVFURHZVGVBHZHZUNVDVFVGURVBUBUNVKUOBCUCUJ
      ZMZUSVLMZHVDUNVIVMVJVNUNVIVMUNVIHVFURUNVMUNVFURNUNVFUROUNVIPUOBCQRSUNVJVN
      UNVJHVGVBUNVNUNVGVBNUNVGVBOUNVJPUSBCQRSUDUOUSVLUEUFUGUHUIURVBADKVDUPUTUQV
      AUOUSBTUOUSCTUKULUM $.
  $}

  ${
    $d P x $.  $d Q x $.
    $( There is a unique line going through any two distinct points.  Theorem
       6.19 of [Schwabhauser] p. 46.  (Contributed by Scott Fenton,
       29-Oct-2013.)  (Revised by Mario Carneiro, 19-Apr-2014.) $)
    linethrueu $p |- ( ( N e. NN /\
       ( P e. ( EE ` N ) /\ Q e. ( EE ` N ) /\ P =/= Q ) ) ->
       E! x e. LinesEE ( P e. x /\ Q e. x ) ) $=
      ( cn wcel cee cfv wne w3a wa clines2 wrex wrmo wreu hilbert1.1 hilbert1.2
      cv simpr3 syl reu5 sylanbrc ) DEFZBDGHZFZCUDFZBCIZJKZBARZFCUIFKZALMUJALNZ
      UJALOABCDPUHUGUKUCUEUFUGSABCQTUJALUAUB $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( Two distinct lines intersect in at most one point.  Theorem 6.21 of
       [Schwabhauser] p. 46.  (Contributed by Scott Fenton, 29-Oct-2013.)
       (Revised by Mario Carneiro, 19-Apr-2014.) $)
    lineintmo $p |- ( ( A e. LinesEE /\ B e. LinesEE /\ A =/= B ) ->
       E* x ( x e. A /\ x e. B ) ) $=
      ( vy clines2 wcel wne w3a cv wa weq wi wal wmo an4 wceq linethru 3expa ex
      eleq1 cline2 co eqtr3 syl2an anandirs necon1d an4s sylan2b com23 alrimivv
      3impia anbi12d mo4 sylibr ) BEFZCEFZBCGZHZAIZBFZUSCFZJZDIZBFZVCCFZJZJZADK
      ZLZDMAMVBANURVIADUOUPUQVIUOUPJZVGUQVHVJVGUQVHLZVGVJUTVDJZVAVEJZJVKUTVAVDV
      EOUOVLUPVMVKUOVLJZUPVMJZJZUSVCBCVPUSVCGZBCPZVNVOVQVRVNVQJBUSVCUAUBZPZCVSP
      ZVRVOVQJUOVLVQVTBUSVCQRUPVMVQWACUSVCQRBCVSUCUDUESUFUGUHSUIUKUJVBVFADVHUTV
      DVAVEUSVCBTUSVCCTULUMUN $.
  $}

  $(
  @{
    @d a n @.  @d a p @.  @d a q @.  @d n p @.  @d n q @.  @d P a @.  @d P n @.
    @d P p @.  @d p q @.  @d P q @.  @d p x @.  @d P x @.  @d Q a @.  @d Q n @.
    @d Q p @.  @d Q q @.  @d q x @.  @d Q x @.  @d R a @.  @d R n @.  @d R p @.
    @d R q @.  @d R x @.
    @( Three points are colinear iff there is a line through all three of
       them.  Theorem 6.23 of [Schwabhauser] p. 46.  (Contributed by Scott
       Fenton, 7-Nov-2013). @)
    colinline @p |- ( ( Q e. V /\ R e. W ) -> ( P Colinear <. Q , R >. <->
          E. a e. LinesEE ( P e. a /\ Q e. a /\ R e. a ) ) ) @=
      ( vp vq vn vx wcel wa cop ccolin wbr cv w3a clines2 wrex wne cline2 co
      wceq cee cfv cn wi ellines df-3an cab fvline eqeq2d cvv eleq2 3anbi123d
      breq1 eqid elab4g 3anbi123i syl6bb pm5.32i 3an6 syl5bi adantld expd
      sylbid sylan2br expr impd anassrs rexlimdva rexlimivv sylbi rexlimiv
      impbid1 ) BDKCEKLABCMNOZAFPZKZBVQKZCVQKZQZFRS?WAVPFRVQRKGPZHPZTZVQWBWCUAU
      BZUCZLZHIPZUDUEZSZGWISIUFSWAVPUGZVQIHGUHWJWKIGUFWIWHUFKZWBWIKZLWGWKHWIWLW
      MWCWIKZWGWKUGWLWMWNLZLWDWFWKWLWOWDWFWKUGZWOWDLWLWMWNWDQZWPWMWNWDUIWLWQLZW
      FVQJPZWBWCMZNOZJUJZUCZWKWRWEXBVQJWBWCWHUKULWRXCWAVPXCWALXCAUMKZAWTNOZLZBU
      MKZBWTNOZLZCUMKZCWTNOZLZQZLWRVPXCWAXMXCWAAXBKZBXBKZCXBKZQXMXCVRXNVSXOVTXP
      VQXBAUNVQXBBUNVQXBCUNUOXNXFXOXIXPXLXAXEJAXBWSAWTNUPXBUQZURXAXHJBXBWSBWTNU
      PXQURXAXKJCXBWSCWTNUPXQURUSUTVAWRXMVPXCXMXDXGXJQXEXHXKQLWRVPXDXEXGXHXJXKV
      B?VCVDVCVEVFVGVHVIVJVKVLVMVNVO @.
      @( [19-Apr-2014] @) @( [7-Nov-2013] @)
  @}
  $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Forward difference
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare the constant for the forward difference operator. $)
  $c _/_\ $.

  $( Declare the syntax for the forward difference operator. $)
  cfwddif $a class _/_\ $.

  ${
    $d f x y $.
    $( Define the forward difference operator.  This is a discrete analogue of
       the derivative operator.  Definition 2.42 of [GramKnuthPat], p. 47.
       (Contributed by Scott Fenton, 18-May-2020.) $)
    df-fwddif $a |- _/_\ = ( f e. ( CC ^pm CC ) |->
       ( x e. { y e. dom f | ( y + 1 ) e. dom f } |->
       ( ( f ` ( x + 1 ) ) - ( f ` x ) ) ) ) $.
  $}

  $( Declare the constant for the nth forward difference operator. $)
  $c _/_\^n $.

  $( Declare the syntax for the nth forward difference operator. $)
  cfwddifn $a class _/_\^n $.

  ${
    $d n f x y k $.
    $( Define the nth forward difference operator.  This works out to be the
       forward difference operator iterated ` n ` times.  (Contributed by Scott
       Fenton, 28-May-2020.) $)
    df-fwddifn $a |- _/_\^n = ( n e. NN0 , f e. ( CC ^pm CC ) |->
        ( x e. { y e. CC | A. k e. ( 0 ... n ) ( y + k ) e. dom f } |->
          sum_ k e. ( 0 ... n )
          ( ( n _C k ) x. ( ( -u 1 ^ ( n - k ) ) x. ( f ` ( x + k ) ) ) ) ) )
          $.
  $}

  ${
    $d F x y f $.  $d X x y f $.  $d A x y f $.  $d ph x y f $.
    fwddifval.1 $e |- ( ph -> A C_ CC ) $.
    fwddifval.2 $e |- ( ph -> F : A --> CC ) $.
    fwddifval.3 $e |- ( ph -> X e. A ) $.
    fwddifval.4 $e |- ( ph -> ( X + 1 ) e. A ) $.
    $( Calculate the value of the forward difference operator at a point.
       (Contributed by Scott Fenton, 18-May-2020.) $)
    fwddifval $p |- ( ph ->
     ( ( _/_\ ` F ) ` X ) = ( ( F ` ( X + 1 ) ) - ( F ` X ) ) ) $=
      ( vx vy vf c1 caddc co cfv cmin wcel cvv cc wceq cv crab cfwddif cdm cmpt
      cpm df-fwddif a1i dmeq eleq2d rabeqbidv fveq1 oveq12d mpteq12dv adantl wf
      wss wa cnex elpm2r mpanl12 syl2anc fdm ssexd eqeltrd rabexg mptexg fvmptd
      syl 3syl mpteq1d eqtrd oveq1 fveq2d fveq2 eleq1d elrab sylanbrc ovexd ) A
      IDIUAZLMNZCOZVTCOZPNZDLMNZCOZDCOZPNZJUAZLMNZBQZJBUBZCUCOZRAWMIWJCUDZQZJWN
      UBZWDUEZIWLWDUEAKCIWJKUAZUDZQZJWSUBZWAWROZVTWROZPNZUEZWQSSUFNZUCRUCKXFXEU
      ETAIJKUGUHWRCTZXEWQTAXGIXAXDWPWDXGWTWOJWSWNWRCUIZXGWSWNWJXHUJUKXGXBWBXCWC
      PWAWRCULVTWRCULUMUNUOABSCUPZBSUQZCXFQZFESRQZXLXIXJURXKUSUSSSBCRRUTVAVBAWN
      RQWPRQWQRQAWNBRAXIWNBTFBSCVCVIZABSRXLAUSUHEVDVEWOJWNRVFIWPWDRVGVJVHAIWPWL
      WDAWOWKJWNBXMAWNBWJXMUJUKVKVLVTDTZWDWHTAXNWBWFWCWGPXNWAWECVTDLMVMVNVTDCVO
      UMUOADBQWEBQZDWLQGHWKXOJDBWIDTWJWEBWIDLMVMVPVQVRAWFWGPVSVH $.
  $}

  ${
    $d N n f k x y $.  $d A n f k x y $.  $d X n f k x y $.  $d F n f k x y $.
    $d ph n f k x y $.
    fwddifnval.1 $e |- ( ph -> N e. NN0 ) $.
    fwddifnval.2 $e |- ( ph -> A C_ CC ) $.
    fwddifnval.3 $e |- ( ph -> F : A --> CC ) $.
    fwddifnval.4 $e |- ( ph -> X e. CC ) $.
    fwddifnval.5 $e |- ( ( ph /\ k e. ( 0 ... N ) ) -> ( X + k ) e. A ) $.
    $( The value of the forward difference operator at a point.  (Contributed
       by Scott Fenton, 28-May-2020.) $)
    fwddifnval $p |- ( ph -> ( ( N _/_\^n F ) ` X ) =
       sum_ k e. ( 0 ... N )
       ( ( N _C k ) x. ( ( -u 1 ^ ( N - k ) ) x. ( F ` ( X + k ) ) ) ) ) $=
      ( vx vy co cv cmul wcel cc cvv wceq vn vf cc0 cfz c1 cneg cmin cexp caddc
      cbc cfv csu cdm wral crab cfwddifn cn0 cpm cmpt cmpt2 df-fwddifn wa oveq2
      a1i adantr wb dmeq eleq2d adantl raleqbidv rabbidv oveq1 oveq2d oveqan12d
      fveq1 oveq12d sumeq12dv mpteq12dv wf cnex elpm2r mpanl12 syl2anc mptrabex
      wss ovmpt2d fveq2d sumeq2sdv fdm eleqtrrd ralrimiva eleq1d elrab sylanbrc
      syl ralbidv sumex fvmptd ) ALFUCEUDNZECOZUJNZUEUFZEWTUGNZUHNZLOZWTUINZDUK
      ZPNZPNZCULZWSXAXDFWTUINZDUKZPNZPNZCULZMOZWTUINZDUMZQZCWSUNZMRUOZEDUPNSAUA
      UBEDUQRRURNZLXQUBOZUMZQZCUCUAOZUDNZUNZMRUOZYGYFWTUJNZXBYFWTUGNZUHNZXFYCUK
      ZPNZPNZCULZUSZLYAXJUSZUPSUPUAUBUQYBYQUTTALMUBCUAVAVDYFETZYCDTZVBZYQYRTAUU
      ALYIYPYAXJUUAYHXTMRUUAYEXSCYGWSYSYGWSTYTYFEUCUDVCVEZYTYEXSVFYSYTYDXRXQYCD
      VGVHVIVJVKUUAYGWSYOXICUUBUUAYOXITWTYGQUUAYJXAYNXHPYSYJXATYTYFEWTUJVLVEYSY
      TYLXDYMXGPYSYKXCXBUHYFEWTUGVLVMXFYCDVOVNVPVEVQVRVIGABRDVSZBRWEZDYBQZIHRSQ
      ZUUFUUCUUDVBUUEVTVTRRBDSSWAWBWCYRSQAXTLMRXJVTWDVDWFXEFTZXJXOTAUUGWSXIXNCU
      UGXHXMXAPUUGXGXLXDPUUGXFXKDXEFWTUIVLWGVMVMWHVIAFRQXKXRQZCWSUNZFYAQJAUUHCW
      SAWTWSQZVBXKBXRKAXRBTZUUJAUUCUUKIBRDWIWOVEWJWKXTUUIMFRXPFTZXSUUHCWSUULXQX
      KXRXPFWTUIVLWLWPWMWNXOSQAWSXNCWQVDWR $.
  $}

  ${
    $d A k $.  $d F k $.  $d X k $.  $d ph k $.
    fwddifn0.1 $e |- ( ph -> A C_ CC ) $.
    fwddifn0.2 $e |- ( ph -> F : A --> CC ) $.
    fwddifn0.3 $e |- ( ph -> X e. A ) $.
    $( The value of the n-iterated forward difference operator at zero is just
       the function value.  (Contributed by Scott Fenton, 28-May-2020.) $)
    fwddifn0 $p |- ( ph -> ( ( 0 _/_\^n F ) ` X ) = ( F ` X ) ) $=
      ( vk cc0 co cfv cbc c1 cmin cexp cmul wcel cc wceq eqtrd cfwddifn cv cneg
      cfz caddc csu cn0 0nn0 a1i sseldd csn cz 0z fzsn ax-mp eleq2i velsn bitri
      wa oveq2 adantl addid1d eqeltrd adantr sylan2b fwddifnval fveq2d ffvelrnd
      oveq2d mulid2d bcnn syl6eq 0m0e0 neg1cn exp0 oveq12d fsum1 sylancr ) ADIC
      UAJKIIUDJZIHUBZLJZMUCZIVTNJZOJZDVTUEJZCKZPJZPJZHUFZDCKZABHCIDIUGQZAUHUIEF
      ABRDEGUJZVTVSQZAVTISZWEBQWMVTIUKZQWNVSWOVTIULQZVSWOSUMIUNUOUPHIUQURAWNUSW
      EDIUEJZBWNWEWQSAVTIDUEUTZVAAWQBQWNAWQDBADWLVBZGVCVDVCVEVFAWIMMWQCKZPJZPJZ
      WJAWPXBRQWIXBSUMAXBWJRAXBMWJPJZWJAXAWJMPAXAXCWJAWTWJMPAWQDCWSVGVIAWJABRDC
      FGVHZVJZTVIXETZXDVCWHXBHIWNWAMWGXAPWNWAIILJZMVTIILUTWKXGMSUHIVKUOVLWNWDMW
      FWTPWNWDWBIOJZMWNWCIWBOWNWCIINJIVTIINUTVMVLVIWBRQXHMSVNWBVOUOVLWNWEWQCWRV
      GVPVPVQVRXFTT $.
  $}

  ${
    $d A k j $.  $d F k j $.  $d X k j $.  $d N k j $.  $d ph k j $.
    fwddifnp1.1 $e |- ( ph -> N e. NN0 ) $.
    fwddifnp1.2 $e |- ( ph -> A C_ CC ) $.
    fwddifnp1.3 $e |- ( ph -> F : A --> CC ) $.
    fwddifnp1.4 $e |- ( ph -> X e. CC ) $.
    fwddifnp1.5 $e |- ( ( ph /\ k e. ( 0 ... ( N + 1 ) ) ) ->
     ( X + k ) e. A ) $.
    $( The value of the n-iterated forward difference at a successor.
       (Contributed by Scott Fenton, 28-May-2020.) $)
    fwddifnp1 $p |- ( ph -> ( ( ( N + 1 ) _/_\^n F ) ` X ) =
      ( ( ( N _/_\^n F ) ` ( X + 1 ) ) - ( ( N _/_\^n F ) ` X ) ) ) $=
      ( cc0 c1 caddc co cmin cmul wcel cz oveq2d cfz cbc cneg cexp cfv cfwddifn
      vj csu cn0 wceq elfzelz bcpasc syl2an oveq1d bccl nn0cnd peano2zm addcomd
      cv wa syl peano2nn0 nn0zd zsubcl m1expcl zcnd cc wf adantr mulcld adddird
      ffvelrnd eqtrd adantl 1cnd subsub3d eqcomd addsubd neg1cn a1i wne neg1ne0
      expp1zd mulcomd mulm1d mulneg1d mulneg2d oveq12d negsubd sumeq2dv fsumsub
      3eqtrd eqtr3d fzfid cuz nn0uz syl6eleq fveq2d fsum1p df-neg oveq2i bcneg1
      oveq1 oveq2 syl5eqr 0z mp2an zsubcld wral eluzfz1 ralrimiva eleq1d rspcva
      1z syl2anc mul02d wo olc wb elfzp12 biimpar sylan2 syldan addid2d ppncand
      fsumcl weq cbvsumv 1zzd 0zd addassd fzp1elp1 rspccv imp fsumshft syl5reqr
      wi eqeltrd cfa fwddifnval 3eqtr2d fsump1 cdiv cif fzp1nel iffalsei syl6eq
      bcval eluzfz2 rspcv fzelp1 addid1d peano2cn anbi2d imbi12d chvarv 3eqtr4d
      sylc ) ALEMNOZUAOZUUSCUSZUBOZMUCZUUSUVAPOZUDOZFUVANOZDUEZQOZQOZCUHZLEUAOZ
      EUVAUBOZUVCEUVAPOZUDOZFMNOZUVANOZDUEZQOZQOZCUHZUVKUVLUVNUVGQOZQOZCUHZPOZF
      UUSDUFOUEUVOEDUFOZUEZFUWEUEZPOAUVJUUTEUVAMPOZUBOZUVCEUWHPOZUDOZUVGQOZQOZU
      WBPOZCUHUUTUWMCUHZUUTUWBCUHZPOUWDAUUTUVIUWNCAUVAUUTRZUTZUVLUWINOZUVHQOZUV
      IUWNUWRUWSUVBUVHQAEUIRZUVASRZUWSUVBUJUWQGUVALUUSUKZUVAEULUMUNUWRUWTUWIUVH
      QOZUVLUVHQOZNOZUWMUWBUCZNOUWNUWRUWTUWIUVLNOZUVHQOUXFUWRUWSUXHUVHQUWRUVLUW
      IUWRUVLAUXAUXBUVLUIRUWQGUXCUVAEUOUMUPZUWRUWIAUXAUWHSRZUWIUIRUWQGUWQUXBUXJ
      UXCUVAUQVAZUWHEUOUMUPZURUNUWRUWIUVLUVHUXLUXIUWRUVEUVGUWRUVEUWRUVDSRZUVESR
      AUUSSRZUXBUXMUWQAUUSAUXAUUSUIRGEVBVAZVCZUXCUUSUVAVDUMUVDVEVAVFUWRBVGUVFDA
      BVGDVHZUWQIVIKVLZVJVKVMUWRUXDUWMUXEUXGNUWRUVHUWLUWIQUWRUVEUWKUVGQUWRUVDUW
      JUVCUDUWRUWJUVDUWREUVAMUWREAUXAUWQGVIUPZUWRUVAUWQUXBAUXCVNVFZUWRVOZVPVQTU
      NTUWRUXEUVLUWAUCZQOUXGUWRUVHUYBUVLQUWRUVHUVNUCZUVGQOUYBUWRUVEUYCUVGQUWRUV
      EUVNUVCQOZUVCUVNQOUYCUWRUVEUVCUVMMNOZUDOUYDUWRUVDUYEUVCUDUWREMUVAUXSUYAUX
      TVRTUWRUVCUVMUVCVGRUWRVSVTZUVCLWAUWRWBVTAESRZUXBUVMSRZUWQAEGVCZUXCEUVAVDU
      MZWCVMUWRUVNUVCUWRUVNUWRUYHUVNSRUYJUVMVEVAVFZUYFWDUWRUVNUYKWEWLUNUWRUVNUV
      GUYKUXRWFVMTUWRUVLUWAUXIUWRUVNUVGUYKUXRVJZWGVMWHUWRUWMUWBUWRUWIUWLUXLUWRU
      WKUVGUWRUWKUWRUWJSRZUWKSRAUYGUXJUYMUWQUYIUXKEUWHVDUMUWJVEVAVFUXRVJVJZUWRU
      VLUWAUXIUYLVJZWIWLWMWJAUUTUWMUWBCALUUSWNUYNUYOWKAUWOUVTUWPUWCPAUWOLMNOZUU
      SUAOZUWMCUHZUYQUWIUWKUVOUWHNOZDUEZQOZQOZCUHZUVTAUWOELMPOZUBOZUVCEVUDPOZUD
      OZFLNOZDUEZQOZQOZUYRNOLUYRNOUYRAUWMVUKCLUUSAUUSUILWOUEZUXOWPWQZUYNUVALUJZ
      UWIVUEUWLVUJQVUNUWHVUDEUBUVALMPXCZTVUNUWKVUGUVGVUIQVUNUWJVUFUVCUDVUNUWHVU
      DEPVUOTTVUNUVFVUHDUVALFNXDZWRWHWHWSAVUKLUYRNAVUKLVUJQOLAVUELVUJQAVUEEUVCU
      BOZLUVCVUDEUBMWTXAAUXAVUQLUJGEXBVAXEUNAVUJAVUGVUIAVUGAVUFSRVUGSRAEVUDUYIV
      UDSRZALSRMSRVURXFXNLMVDXGVTXHVUFVEVAVFABVGVUHDIALUUTRZUVFBRZCUUTXIZVUHBRZ
      AUUSVULRZVUSVUMLUUSXJVAAVUTCUUTKXKZVUTVVBCLUUTVUNUVFVUHBVUPXLXMXOVLVJXPVM
      UNAUYRAUYQUWMCAUYPUUSWNAUVAUYQRZUWQUWMVGRVVEAVUNVVEXQZUWQVVEVUNXRAUWQVVFA
      VVCUWQVVFXSVUMUVALUUSXTVAYAYBUYNYCYFYDWLAUYQVUBUWMCAVVEUTZVUAUWLUWIQVVGUY
      TUVGUWKQVVGUYSUVFDVVGFMUVAAFVGRZVVEJVIVVGVOVVEUVAVGRZAVVEUVAUVAUYPUUSUKVF
      VNYEWRTTWJAUVTUVKEUGUSZUBOZUVCEVVJPOZUDOZUVOVVJNOZDUEZQOZQOZUGUHVUCUVKVVQ
      UVSUGCUGCYGZVVKUVLVVPUVRQVVJUVAEUBXDVVRVVMUVNVVOUVQQVVRVVLUVMUVCUDVVJUVAE
      PXDTVVRVVNUVPDVVJUVAUVONXDWRWHWHYHAVVQVUBUGCMLEAYIAYJUYIAVVJUVKRZUTZVVKVV
      PAUXAVVJSRZVVKVGRVVSGVVJLEUKZUXAVWAUTVVKVVJEUOUPUMVVTVVMVVOVVTVVMVVTVVLSR
      ZVVMSRAUYGVWAVWCVVSUYIVWBEVVJVDUMVVLVEVAVFVVTBVGVVNDAUXQVVSIVIVVTVVNFVVJM
      NOZNOZBVVTVVNFMVVJNOZNOVWEVVTFMVVJAVVHVVSJVIVVTVOZVVSVVJVGRAVVSVVJVWBVFVN
      ZYKVVTVWFVWDFNVVTMVVJVWGVWHURTVMVVSAVWDUUTRZVWEBRZVVJLEYLAVWIVWJAVVAVWIVW
      JYQVVDVUTVWJCVWDUUTUVAVWDUJUVFVWEBUVAVWDFNXDXLYMVAYNZYBYRVLVJVJVVJUWHUJZV
      VKUWIVVPVUAQVVJUWHEUBXDVWLVVMUWKVVOUYTQVWLVVLUWJUVCUDVVJUWHEPXDTVWLVVNUYS
      DVVJUWHUVONXDWRWHWHYOYPUUAAUWPUWCEUUSUBOZUVCEUUSPOZUDOZFUUSNOZDUEZQOZQOZN
      OUWCLNOUWCAUWBVWSCLEAEUIVULGWPWQUYOUVAUUSUJZUVLVWMUWAVWRQUVAUUSEUBXDVWTUV
      NVWOUVGVWQQVWTUVMVWNUVCUDUVAUUSEPXDTVWTUVFVWPDUVAUUSFNXDZWRWHWHUUBAVWSLUW
      CNAVWSLVWRQOLAVWMLVWRQAVWMUUSUVKRZEYSUEVWNYSUEUUSYSUEQOUUCOZLUUDZLAUXAUXN
      VWMVXDUJGUXPUUSEUUHXOVXBVXCLLEUUEUUFUUGUNAVWRAVWOVWQAVWNSRZVWOVGRAEUUSUYI
      UXPXHVXEVWOVWNVEVFVAABVGVWPDIAUUSUUTRZVVAVWPBRZAVVCVXFVUMLUUSUUIVAVVDVUTV
      XGCUUSUUTVWTUVFVWPBVXAXLUUJUURVLVJXPVMTAUWCAUVKUWBCALEWNUVAUVKRZAUWQUWBVG
      RUVALEUUKZUYOYBYFUULWLWHWLABCDUUSFUXOHIJKYTAUWFUVTUWGUWCPABCDEUVOGHIAVVHU
      VOVGRJFUUMVAAVXHUTZUVPFUVAMNOZNOZBVXJUVPFMUVANOZNOVXLVXJFMUVAAVVHVXHJVIVX
      JVOZVXHVVIAVXHUVAUVALEUKVFVNZYKVXJVXMVXKFNVXJMUVAVXNVXOURTVMVXHAVXKUUTRZV
      XLBRZUVALEYLAVWIUTZVWJYQAVXPUTZVXQYQUGCVVRVXRVXSVWJVXQVVRVWIVXPAVVRVWDVXK
      UUTVVJUVAMNXCZXLUUNVVRVWEVXLBVVRVWDVXKFNVXTTXLUUOVWKUUPYBYRYTABCDEFGHIJVX
      HAUWQVUTVXIKYBYTWHUUQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Rank theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x $.  $d A y $.  $d B y $.  $d x y $.
    $( The rank of the union of two sets.  Closed form of ~ rankun .
       (Contributed by Scott Fenton, 15-Jul-2015.) $)
    rankung $p |- ( ( A e. V /\ B e. W ) ->
          ( rank ` ( A u. B ) ) = ( ( rank ` A ) u. ( rank ` B ) ) ) $=
      ( vx vy cv cun crnk cfv wceq uneq1 fveq2d fveq2 uneq1d eqeq12d uneq2d vex
      uneq2 rankun vtocl2g ) EGZFGZHZIJZUBIJZUCIJZHZKAUCHZIJZAIJZUGHZKABHZIJZUK
      BIJZHZKEFABCDUBAKZUEUJUHULUQUDUIIUBAUCLMUQUFUKUGUBAINOPUCBKZUJUNULUPURUIU
      MIUCBASMURUGUOUKUCBINQPUBUCERFRTUA $.

    $( The rank of a singleton.  Closed form of ~ ranksn .  (Contributed by
       Scott Fenton, 15-Jul-2015.) $)
    ranksng $p |- ( A e. V -> ( rank ` { A } ) = suc ( rank ` A ) ) $=
      ( vx cv csn crnk cfv csuc wceq sneq fveq2d fveq2 suceq syl eqeq12d ranksn
      vex vtoclg ) CDZEZFGZSFGZHZIAEZFGZAFGZHZICABSAIZUAUEUCUGUHTUDFSAJKUHUBUFI
      UCUGISAFLUBUFMNOSCQPR $.

    $( The membership relation is inherited by the rank function.  Closed form
       of ~ rankel .  (Contributed by Scott Fenton, 16-Jul-2015.) $)
    rankelg $p |- ( ( B e. V /\ A e. B ) -> ( rank ` A ) e. ( rank ` B ) ) $=
      ( vy wcel crnk cfv cv wi eleq2 fveq2 eleq2d imbi12d vex rankel vtoclg imp
      wceq ) BCEABEZAFGZBFGZEZADHZEZTUCFGZEZISUBIDBCUCBRZUDSUFUBUCBAJUGUEUATUCB
      FKLMAUCDNOPQ $.

    $( The rank of a power set.  Closed form of ~ rankpw .  (Contributed by
       Scott Fenton, 16-Jul-2015.) $)
    rankpwg $p |- ( A e. V -> ( rank ` ~P A ) = suc ( rank ` A ) ) $=
      ( vx cv cpw crnk cfv csuc wceq pweq fveq2d fveq2 suceq syl eqeq12d rankpw
      vex vtoclg ) CDZEZFGZSFGZHZIAEZFGZAFGZHZICABSAIZUAUEUCUGUHTUDFSAJKUHUBUFI
      UCUGISAFLUBUFMNOSCQPR $.
  $}

  $( The rank of the empty set is ` (/) ` .  (Contributed by Scott Fenton,
     17-Jul-2015.) $)
  rank0 $p |- ( rank ` (/) ) = (/) $=
    ( c0 wceq crnk cfv eqid 0ex rankeq0 mpbi ) AABACDABAEAFGH $.

  ${
    $d A x $.  $d x y $.
    $( The only set with rank ` 1o ` is the singleton of the empty set.
       (Contributed by Scott Fenton, 17-Jul-2015.) $)
    rankeq1o $p |- ( ( rank ` A ) = 1o <-> A = { (/) } ) $=
      ( vx vy crnk cfv c1o wceq c0 cvv wcel wne mpbiri wi csuc con0 df1o2 ax-mp
      cr1 cpw pweqi csn 1n0 neeq1 neneqd fvprc nsyl2 fveq2 eqeq1d eqeq1 imbi12d
      cv vex rankeq0 necon3bii sylibr crab cint rankval eqeq1i cpr wa wss elirr
      ssrab2 p0ex eqeltri id syl5eleq inteq int0 syl6eq mtbiri necon2ai sylancr
      mto onint eleq1 mpbid suceq fveq2d df-1o fveq2i 0elon r1suc r10 pw0 pwpw0
      3eqtri 3eqtrri 1on eqtr4i syl6eqr eleq2d elrab sylib wo df-ne orel1 sylbi
      elpr wn eqeq2 eqcomd syl6com adantl syl mpd vtoclg mpcom cdm wf1 eleqtrri
      r111 f1dm rankonid mpbi impbii eqeq2i bitri ) ADEZFGZAFGZAHUAZGYAYBAIJZYA
      YBYAXTHGYDYAXTHYAXTHKFHKZUBXTFHUCLUDADUEUFBUKZDEZFGZYFFGZMYAYBMBAIYFAGZYH
      YAYIYBYJYGXTFYFADUGUHYFAFUIUJYHYFHKZYIYHYGHKZYKYHYLYEUBYGFHUCLYFHYGHYFBUL
      ZUMUNUOYHYFCUKZNZREZJZCOUPZUQZFGZYKYIMZYGYSFCYFYMURUSYTFOJZYFHYCUTZJZVAZU
      UAYTFYRJZUUEYTYSYRJZUUFYTYROVBYRHKUUGYQCOVDYTYRHYRHGZYTIFGZUUIFFJFVCUUIFI
      FFYCIPVEVFUUIVGVHVOUUHYSIFUUHYSHUQIYRHVIVJVKUHVLVMYRVPVNYSFYRVQVRYQUUDCFO
      YNFGZYPUUCYFUUJYPFNZREZUUCUUJYOUUKRYNFVSVTUUCFREZSZUULUUNHSZSYCSUUCUUMUUO
      UUMHNZREZHREZSZUUOFUUPRWAWBHOJUUQUUSGWCHWDQUURHWETWHTUUOYCWFTWGWIUUBUULUU
      NGWJFWDQWKWLWMWNWOUUDUUAUUBUUDYFHGZYFYCGZWPZUUAYFHYCYMWTYKUVBUVAYIYKUUTXA
      UVBUVAMYFHWQUUTUVAWRWSUVAFYFUVAFYFGFYCGPYFYCFXBLXCXDWSXEXFWSXGXHXIYBXTFDE
      ZFAFDUGFRXJZJUVCFGFOUVDWJOIRXKUVDOGXMOIRXNQXLFXOXPVKXQFYCAPXRXS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Hereditarily Finite Sets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare the constants for HF sets. $)
  $c Hf $.

  $( The constant ` Hf ` is a class. $)
  chf $a class Hf $.

  $( Define the hereditarily finite sets.  These are the finite sets whose
     elements are finite, and so forth.  (Contributed by Scott Fenton,
     9-Jul-2015.) $)
  df-hf $a |- Hf = U. ( R1 " _om ) $.

  ${
    $d A x $.
    $( Membership in the hereditarily finite sets.  (Contributed by Scott
       Fenton, 9-Jul-2015.) $)
    elhf $p |- ( A e. Hf <-> E. x e. _om A e. ( R1 ` x ) ) $=
      ( chf wcel cr1 com cima cuni cfv wrex df-hf eleq2i con0 cvv wf1 wfun r111
      cv wb f1fun eluniima mp2b bitri ) BCDBEFGHZDZBAREIDAFJZCUDBKLMNEOEPUEUFSQ
      MNETAFBEUAUBUC $.
  $}

  ${
    $d A x $.
    elhf2.1 $e |- A e. _V $.
    $( Alternate form of membership in the hereditarily finite sets.
       (Contributed by Scott Fenton, 13-Jul-2015.) $)
    elhf2 $p |- ( A e. Hf <-> ( rank ` A ) e. _om ) $=
      ( vx chf wcel cv cr1 cfv com wrex con0 wceq nnon syl adantl expcom adantr
      wb wa cvv crnk elhf wo omon rankr1a elnn sylbid rexlimdva csuc peano2 cpw
      wss r1rankid mp1i elpw sylibr r1suc eleqtrrd eleq2d rspcev syl2anc impbid
      wi fveq2 tz9.13 rankon 2th rexeq eleq2 bibi12d mpbiri jaoi ax-mp bitri )
      ADEACFZGHZEZCIJZAUAHZIEZCAUBIKEZIKLZUCVRVTRZUDWAWCWBWAVRVTWAVQVTCIWAVOIEZ
      SVQVSVOEZVTWDVQWERZWAWDVOKEWFVOMAVOBUENOWDWEVTVCWAWEWDVTVSVOUFPOUGUHVTWAV
      RVTWASZVSUIZIEZAWHGHZEZVRVTWIWAVSUJQWGAVSGHZUKZWJWGAWLULZAWMEATEWNWGBATUM
      UNAWLBUOUPVTWJWMLZWAVTVSKEZWOVSMVSUQNQURVQWKCWHIVOWHLVPWJAVOWHGVDUSUTVAPV
      BWBWCVQCKJZWPRWQWPCABVEAVFVGWBVRWQVTWPVQCIKVHIKVSVIVJVKVLVMVN $.
  $}

  ${
    $d A x $.
    $( Hereditarily finiteness via rank.  Closed form of ~ elhf2 .
       (Contributed by Scott Fenton, 15-Jul-2015.) $)
    elhf2g $p |- ( A e. V -> ( A e. Hf <-> ( rank ` A ) e. _om ) ) $=
      ( vx cv chf wcel crnk cfv com eleq1 wceq fveq2 eleq1d vex elhf2 vtoclbg )
      CDZEFQGHZIFAEFAGHZIFCABQAEJQAKRSIQAGLMQCNOP $.
  $}

  ${
    $( The empty set is a hereditarily finite set.  (Contributed by Scott
       Fenton, 9-Jul-2015.) $)
    0hf $p |- (/) e. Hf $=
      ( vx c0 chf wcel cr1 cfv com wrex csuc peano1 peano2 ax-mp cpw 0elpw con0
      cv wceq 0elon r1suc eleqtrri fveq2 eleq2d rspcev mp2an elhf mpbir ) BCDBA
      PZEFZDZAGHZBIZGDZBUKEFZDZUJBGDULJBKLBBEFZMZUMUONBODUMUPQRBSLTUIUNAUKGUGUK
      QUHUMBUGUKEUAUBUCUDABUEUF $.
  $}

  $( The union of two HF sets is an HF set.  (Contributed by Scott Fenton,
     15-Jul-2015.) $)
  hfun $p |- ( ( A e. Hf /\ B e. Hf ) -> ( A u. B ) e. Hf ) $=
    ( chf wcel wa cun crnk cfv com elhf2g ibi wceq wi wss wo word nnord ssequn1
    syl2an cvv rankung eleq1a adantl uncom eqeq1i biimpi eleq1d biimprcd adantr
    ordtri2or2 orbi12i sylib mpjaod eqeltrd wb unexg syl mpbird ) ACDZBCDZEZABF
    ZCDZVBGHZIDZVAVDAGHZBGHZFZIABCCUAUSVFIDZVGIDZVHIDZUTUSVIACJKUTVJBCJKVIVJEZV
    HVGLZVKVGVFFZVFLZVJVMVKMVIVGIVHUBUCVIVOVKMVJVOVKVIVOVHVFIVOVHVFLVNVHVFVGVFU
    DUEUFUGUHUIVLVFVGNZVGVFNZOZVMVOOVIVFPVGPVRVJVFQVGQVFVGUJSVPVMVQVOVFVGRVGVFR
    UKULUMSUNVAVBTDVCVEUOABCCUPVBTJUQUR $.

  $( The singleton of an HF set is an HF set.  (Contributed by Scott Fenton,
     15-Jul-2015.) $)
  hfsn $p |- ( A e. Hf -> { A } e. Hf ) $=
    ( chf wcel csn crnk cfv com csuc ranksng elhf2g ibi peano2 syl eqeltrd snex
    elhf2 sylibr ) ABCZADZEFZGCSBCRTAEFZHZGABIRUAGCZUBGCRUCABJKUALMNSAOPQ $.

  $( Adjoining one HF element to an HF set preserves HF status.  (Contributed
     by Scott Fenton, 15-Jul-2015.) $)
  hfadj $p |- ( ( A e. Hf /\ B e. Hf ) -> ( A u. { B } ) e. Hf ) $=
    ( chf wcel csn cun hfsn hfun sylan2 ) BCDACDBEZCDAJFCDBGAJHI $.

  $( Any member of an HF set is itself an HF set.  (Contributed by Scott
     Fenton, 16-Jul-2015.) $)
  hfelhf $p |- ( ( A e. B /\ B e. Hf ) -> A e. Hf ) $=
    ( wcel chf wa crnk cfv rankelg ancoms com wi elhf2g ibi syl5ibr expcomd imp
    elnn sylan2 mpd ) ABCZBDCZEAFGZBFGZCZADCZUATUDABDHIUATUCJCZUDUEKZUAUFBDLMTU
    FUGTUDUFUEUDUFEUETUBJCUBUCQABLNOPRS $.

  ${
    $d x y $.
    $( The class of all hereditarily finite sets is transitive.  (Contributed
       by Scott Fenton, 16-Jul-2015.) $)
    hftr $p |- Tr Hf $=
      ( vx vy chf wtr wel cv wcel wa wi wal dftr2 hfelhf ax-gen mpgbir ) CDABEB
      FZCGHAFZCGIZBJAABCKQBPOLMN $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Extensionality for HF sets depends only on comparison of HF elements.
       (Contributed by Scott Fenton, 16-Jul-2015.) $)
    hfext $p |- ( ( A e. Hf /\ B e. Hf ) ->
       ( A = B <-> A. x e. Hf ( x e. A <-> x e. B ) ) ) $=
      ( chf wcel wa cv wb wral cvv cdif wceq vex mpbiran hfelhf stoic1b adantlr
      wn eldif adantll 2falsed sylan2b ralrimiva biantrud wal cun dfcleq unvdif
      raleqi ralv bitr2i ralunb 3bitri syl6rbbr ) BDEZCDEZFZAGZBEZURCEZHZADIZVB
      VAAJDKZIZFZBCLZUQVDVBUQVAAVCURVCEZUQURDEZRZVAVGURJEVIAMURJDSNUQVIFUSUTUOV
      IUSRUPUSUOVHURBOPQUPVIUTRUOUTUPVHURCOPTUAUBUCUDVFVAAUEZVAADVCUFZIZVEABCUG
      VLVAAJIVJVAAVKJDUHUIVAAUJUKVAADVCULUMUN $.
  $}

  $( The union of an HF set is itself hereditarily finite.  (Contributed by
     Scott Fenton, 16-Jul-2015.) $)
  hfuni $p |- ( A e. Hf -> U. A e. Hf ) $=
    ( chf wcel cuni crnk cfv com rankuni wss wtr rankon ontrci df-tr elhf2g ibi
    mpbi word wa wi cvv con0 eqeltrri onordi ordom ordtr2 mp2an syl5eqel uniexg
    sylancr wb syl mpbird ) ABCZADZBCZUNEFZGCZUMUPAEFZDZGAHZUMUSURIZURGCZUSGCZU
    RJVAURAKLURMPUMVBABNOUSQGQVAVBRVCSUSUPUSUAUTUNKUBUCUDUSURGUEUFUIUGUMUNTCUOU
    QUJABUHUNTNUKUL $.

  $( The power class of an HF set is hereditarily finite.  (Contributed by
     Scott Fenton, 16-Jul-2015.) $)
  hfpw $p |- ( A e. Hf -> ~P A e. Hf ) $=
    ( chf wcel cpw crnk cfv com rankpwg elhf2g ibi peano2 syl eqeltrd cvv pwexg
    csuc wb mpbird ) ABCZADZBCZTEFZGCZSUBAEFZPZGABHSUDGCZUEGCSUFABIJUDKLMSTNCUA
    UCQABOTNILR $.

  $( ` _om ` is not hereditarily finite.  (Contributed by Scott Fenton,
     16-Jul-2015.) $)
  hfninf $p |- -. _om e. Hf $=
    ( com chf wcel wn wi elirr crnk cfv elhf2g con0 wceq ordom elong mpbiri cr1
    word cdm cvv wf1 ax-mp r111 f1dm eleq2i rankonid bitr3i sylib eleq1d mtbiri
    bitrd pm2.01 ) ABCZUKDZEULUKUKAACZAFUKUKAGHZACUMABIUKUNAAUKAJCZUNAKZUKUOAPL
    ABMNUOAOQZCUPUQJAJROSUQJKUAJROUBTUCAUDUEUFUGUIUHUKUJT $.

  $(
  @{ @d t y @. @d t z @. @d x y @.
     @( The hereditarily finite sets are a subset of the finite sets. @)
     hfssfin @p |- Hf C_ Fin @=
       ( vx vy vt vz cr1 com cfn wss cv wcel cfv wceq con0 cvv fveq2 sseq1d weq
       c0 eqsstri syl chf cima cuni df-hf wral wrex wfun wf1 r111 f1fun fvelima
       ax-mp mpan wi csuc r10 0ss cpw r1suc sylibrd finds sseq1 biimpd rexlimiv
       nnon com12 rgen unissb mpbir ) UAEFUBZUCZGUDVKGHAIZGHZAVJUEVMAVJVLVJJZBI
       ZEKZVLLZBFUFZVMEUGZVNVRMNEUHVSUIMNEUJULBVLFEUKUMVQVMBFVOFJVPGHZVQVMUNCIZ
       EKZGHREKZGHDIZEKZGHZWDUOZEKZGHZVTCDVOWARLWBWCGWAREOPCDQWBWEGWAWDEOPWAWGL
       WBWHGWAWGEOPCBQWBVPGWAVOEOPWCRGUPGUQSWDFJZWFWEURZGHWI?WJWHWKGWJWDMJWHWKL
       WDVEWDUSTPUTVAVQVTVMVQVTVMVPVLGVBVCVFTVDTVGAVJGVHVIS @.
       @( [20-Jul-2015] @)

     @( Any finite set of HF sets is itself an HF set. @)
     hffinhf @p |- ( ( A C_ Hf /\ A e. Fin ) -> A e. Hf ) @= ? @.

  @}

  @{ @d A z @. @d x z @. @d y z @. @d A a @. @d a b @. @d A b @. @d a c @.
     @d A c @. @d a w @. @d A w @. @d a x @. @d a y @. @d a z @. @d b c @.
     @d b x @. @d b y @. @d b z @. @d c x @. @d c y @. @d c z @. @d w x @.
     @d w y @. @d w z @.

     @( Induction rule for hereditarily finite sets.  If the empty class
        is in a class ` A ` , and ` A ` is closed under adjunction of HF sets,
        then all HF sets are elements of ` A ` . @)
     hfind @p |- ( ( (/) e. A /\ A. x e. A A. y e. A ( ( x e. Hf /\ y e. Hf )
           -> ( x u. { y } ) e. A ) ) -> Hf C_ A ) @=
       ( vz vw va vb vc c0 wcel cv chf wa wi wral crnk cfv com wceq wal csn cun
       wrex risset eqeq1 imbi1d albidv fveq2 eqeq2d eleq1 imbi2d imbi12d cbvalv
       weq syl6bb nn0suc eqcom vex rankeq0 bicomi bitr3i biimprd syl6bi adantrd
       com23 a1dd a1i jaod mpd bi2.04 albii 19.21v bitri ralbii r19.21v 3imtr4g
       a2d alrimdv omsinds sp syl com12 rexlimdv syl5bi elhf2 anbi12i 2ralbii
       imbi1i anbi2i 3imtr4i ssrdv ) ICJZAKZLJZBKZLJZMZWMWOUAUBCJZNZBCOACOZMZDL
       CWLWMPQRJZWOPQRJZMZWRNZBCOACOZMZDKZPQZRJZXHCJZNXAXHLJZXKNXJEKZXISZERUCXG
       XKEXIRUDXGXNXKERXMRJZXGXNXKNXOXNXGXKXOXNXGXKNZNZDTZXQFKZXISZXPNZDTZGKZHK
       ZPQZSZXGYDCJZNZNZHTZXRFGXMFGUNZYBYCXISZXPNZDTYJYKYAYMDYKXTYLXPXSYCXIUEUF
       UGYMYIDHDHUNZYLYFXPYHYNXIYEYCXHYDPUHUIYNXKYGXGXHYDCUJUKULUMUOFEUNZYAXQDY
       OXTXNXPXSXMXIUEUFUGXSRJZYJGXSOZYADYPXGYFYGNZHTZGXSOZNZXGXTXKNZNYQYAYPXGY
       TUUBYP?XGYTUUBNNZ?XSUPYPXSISZUUC?UUDUUCNYPUUDXGUUBYTUUDWLUUBXFUUDXTWLXKU
       UDXTXHISZWLXKNUUDXTIXISZUUEXSIXIUEUUFXIISZUUEXIIUQUUEUUGXHDURZUSUTVAUOUU
       EXKWLXHICUJVBVCVEVDVFVG?VHVIVQYQXGYSNZGXSOUUAYJUUIGXSYJXGYRNZHTUUIYIUUJH
       YFXGYGVJVKXGYRHVLVMVNXGYSGXSVOVMXTXGXKVJVPVRVSXQDVTWAVEWBWCWDWTXFWLWSXEA
       BCCWQXDWRWNXBWPXCWMAURWEWOBURWEWFWHWGWIXLXJXKXHUUHWEWHWJWK @.
       @( [17-Jul-2015] @)
  @}
  $)


$( (End of Scott Fenton's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Jeff Hankins
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Miscellany
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    a1i14.1 $e |- ( ps -> ( ch -> ta ) ) $.
    $( Add two antecedents to a wff.  (Contributed by Jeff Hankins,
       4-Aug-2009.) $)
    a1i14 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi a1dd a1i ) BCDEGGGABCEDFHI $.
  $}

  ${
    a1i24.1 $e |- ( ph -> ( ch -> ta ) ) $.
    $( Add two antecedents to a wff.  (Contributed by Jeff Hankins,
       5-Aug-2009.) $)
    a1i24 $p |- ( ph -> ( ps -> ( ch -> ( th -> ta ) ) ) ) $=
      ( wi a1dd a1d ) ACDEGGBACEDFHI $.
  $}

  ${
    exp5d.1 $e |- ( ( ( ph /\ ps ) /\ ch ) -> ( ( th /\ ta ) -> et ) ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    exp5d $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wi wa expd exp31 ) ABCDEFHHABICIDEFGJK $.
  $}

  ${
    exp5g.1 $e |- ( ( ph /\ ps ) -> ( ( ( ch /\ th ) /\ ta ) -> et ) ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    exp5g $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wi wa exp4c ex ) ABCDEFHHHABICDEFGJK $.
  $}

  ${
    exp5k.1 $e |- ( ph -> ( ( ( ps /\ ( ch /\ th ) ) /\ ta ) -> et ) ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    exp5k $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wi wa expd exp4d ) ABCDEFHABCDIIEFGJK $.
  $}

  ${
    exp56.1 $e |- ( ( ( ( ph /\ ps ) /\ ch ) /\ ( th /\ ta ) ) -> et ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    exp56 $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wa ex exp5d ) ABCDEFABHCHDEHFGIJ $.
  $}

  ${
    exp58.1 $e |- ( ( ( ph /\ ps ) /\ ( ( ch /\ th ) /\ ta ) ) -> et ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    exp58 $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wa ex exp5g ) ABCDEFABHCDHEHFGIJ $.
  $}

  ${
    exp510.1 $e |- ( ( ph /\ ( ( ( ps /\ ch ) /\ th ) /\ ta ) ) -> et ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    exp510 $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wa ex exp5j ) ABCDEFABCHDHEHFGIJ $.
  $}

  ${
    exp511.1 $e |- ( ( ph /\ ( ( ps /\ ( ch /\ th ) ) /\ ta ) ) -> et ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    exp511 $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wa ex exp5k ) ABCDEFABCDHHEHFGIJ $.
  $}

  ${
    exp512.1 $e |- ( ( ph /\ ( ( ps /\ ch ) /\ ( th /\ ta ) ) ) -> et ) $.
    $( An exportation inference.  (Contributed by Jeff Hankins, 7-Jul-2009.) $)
    exp512 $p |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $=
      ( wa ex exp5l ) ABCDEFABCHDEHHFGIJ $.
  $}

  ${
    3com12d.1 $e |- ( ph -> ( ps /\ ch /\ th ) ) $.
    $( Commutation in consequent.  Swap 1st and 2nd.  (Contributed by Jeff
       Hankins, 17-Nov-2009.) $)
    3com12d $p |- ( ph -> ( ch /\ ps /\ th ) ) $=
      ( w3a id 3com12 syl ) ABCDFCBDFZECBDJJGHI $.
  $}

  ${
    3imp5.1 $e |- ( ph -> ( ps -> ( ch -> ( th -> ( ta -> et ) ) ) ) ) $.
    $( A triple importation inference.  (Contributed by Jeff Hankins,
       8-Jul-2009.) $)
    imp5p $p |- ( ph -> ( ps -> ( ( ch /\ th /\ ta ) -> et ) ) ) $=
      ( w3a wi com52l 3imp com3l ) CDEHABFCDEABFIIABCDEFGJKL $.

    $( A triple importation inference.  (Contributed by Jeff Hankins,
       8-Jul-2009.) $)
    imp5q $p |- ( ( ph /\ ps ) -> ( ( ch /\ th /\ ta ) -> et ) ) $=
      ( wa wi imp 3impd ) ABHCDEFABCDEFIIIGJK $.
  $}

  ${
    ecase13d.1 $e |- ( ph -> -. ch ) $.
    ecase13d.2 $e |- ( ph -> -. th ) $.
    ecase13d.3 $e |- ( ph -> ( ch \/ ps \/ th ) ) $.
    $( Deduction for elimination by cases.  (Contributed by Jeff Hankins,
       18-Aug-2009.) $)
    ecase13d $p |- ( ph -> ps ) $=
      ( wn wo wi w3o 3orass df-or bitri sylib mpd orcom ) ADHZBFABDIZRBJZACHZSE
      ACBDKZUASJZGUBCSIUCCBDLCSMNOPSDBITBDQDBMNOP $.
  $}

  ${
    subtr.1 $e |- F/_ x A $.
    subtr.2 $e |- F/_ x B $.
    ${
      subtr.3 $e |- F/_ x Y $.
      subtr.4 $e |- F/_ x Z $.
      subtr.5 $e |- ( x = A -> X = Y ) $.
      subtr.6 $e |- ( x = B -> X = Z ) $.
      $( Transitivity of implicit substitution.  (Contributed by Jeff Hankins,
         13-Sep-2009.)  (Proof shortened by Mario Carneiro, 11-Dec-2016.) $)
      subtr $p |- ( ( A e. C /\ B e. D ) -> ( A = B -> Y = Z ) ) $=
        ( wcel wceq wi cv nfeq nfim eqeq1 eqeq1d imbi12d vtoclgf adantr ) BDOBC
        PZGHPZQZCEOARZCPZFHPZQUHABDIUFUGAABCIJSAGHKLSTUIBPZUJUFUKUGUIBCUAULFGHM
        UBUCNUDUE $.
    $}

    ${
      subtr2.3 $e |- F/ x ps $.
      subtr2.4 $e |- F/ x ch $.
      subtr2.5 $e |- ( x = A -> ( ph <-> ps ) ) $.
      subtr2.6 $e |- ( x = B -> ( ph <-> ch ) ) $.
      $( Transitivity of implicit substitution into a wff.  (Contributed by
         Jeff Hankins, 19-Sep-2009.)  (Proof shortened by Mario Carneiro,
         11-Dec-2016.) $)
      subtr2 $p |- ( ( A e. C /\ B e. D ) -> ( A = B -> ( ps <-> ch ) ) ) $=
        ( wcel wceq wb wi cv nfeq nfbi nfim eqeq1 bibi1d imbi12d vtoclgf adantr
        ) EGOEFPZBCQZRZFHODSZFPZACQZRUJDEGIUHUIDDEFIJTBCDKLUAUBUKEPZULUHUMUIUKE
        FUCUNABCMUDUENUFUG $.
    $}
  $}

  ${
    $d a b c r s t .<_ $.
    $( A relation intersected with its converse is an equivalence relation if
       the relation is transitive.  (Contributed by Jeff Hankins, 6-Oct-2009.)
       (Revised by Mario Carneiro, 12-Aug-2015.) $)
    trer $p |- ( A. a A. b A. c ( ( a .<_ b /\ b .<_ c ) -> a .<_ c ) ->
      ( .<_ i^i `' .<_ ) Er dom ( .<_ i^i `' .<_ ) ) $=
      ( vr vs vt cv wbr wa wi wal brin vex brcnv weq breq1 imbi12d spv breq2
      ccnv cin wrel cdm wer wss inss2 relcnv relss mp2 a1i eqidd anbi2i anbi12i
      wceq bitri anbi1d 2albidv anbi12d imbi1d albidv anbi2d pm3.3 adantrd impd
      com23 4syl adantld jcad bitr2i syl6ib syl5bi bicomi anbi12ci biimpi jctil
      3bitr4i alrimiv alrimivv dfer2 syl3anbrc ) BHZCHZAIZWCDHZAIZJZWBWEAIZKZDL
      CLZBLZAAUAZUBZUCZWMUDZWOUOEHZFHZWMIZWQWPWMIZKZWRWQGHZWMIZJZWPXAWMIZKZJZGL
      ZFLELWOWMUEWNWKWMWLUFWLUCWNAWLUGAUHWMWLUIUJUKWKWOULWKXGEFWKXFGWKXEWTXCWPW
      QAIZWQWPAIZJZWQXAAIZXAWQAIZJZJZWKXDWRXJXBXMWRXHWPWQWLIZJZXJWPWQAWLMZXOXIX
      HWPWQAENZFNZOZUMUPXBXKWQXAWLIZJXMWQXAAWLMYAXLXKWQXAAXSGNZOUMUPUNWKXNWPXAA
      IZXAWPAIZJZXDWKXNYCYDWKWPWCAIZWFJZWPWEAIZKZDLZCLZXHWQWEAIZJZYHKZDLZXHXKJZ
      YCKZXNYCKWJYKBEBEPZWIYICDYRWGYGWHYHYRWDYFWFWBWPWCAQUQWBWPWEAQRURSYJYOCFCF
      PZYIYNDYSYGYMYHYSYFXHWFYLWCWQWPATWCWQWEAQZUSUTVASYNYQDGDGPZYMYPYHYCUUAYLX
      KXHWEXAWQATVBWEXAWPATRSYQXJXMYCYQXHXMYCKXIYQXMXHYCYQXKXHYCKXLYQXHXKYCXHXK
      YCVCVFVDVFVDVEVGWKXAWCAIZWFJZXAWEAIZKZDLZCLZXLYLJZUUDKZDLZXLXIJZYDKZXNYDK
      WJUUGBGBGPZWIUUECDUUMWGUUCWHUUDUUMWDUUBWFWBXAWCAQUQWBXAWEAQRURSUUFUUJCFYS
      UUEUUIDYSUUCUUHUUDYSUUBXLWFYLWCWQXAATYTUSUTVASUUIUULDEDEPZUUHUUKUUDYDUUNY
      LXIXLWEWPWQATVBWEWPXAATRSUULXJXMYDUULXIXMYDKXHUULXMXIYDUULXLXIYDKXKXLXIYD
      VCVHVFVHVEVGVIXDYCWPXAWLIZJYEWPXAAWLMUUOYDYCWPXAAXRYBOUMVJVKVLWRWSXPXIWQW
      PWLIZJWRWSXHUUPXOXIUUPXHWQWPAXSXROVMXTVNXQWQWPAWLMVQVOVPVRVSEFGWOWMVTWA
      $.
  $}

  $( An equivalent membership condition for closed intervals.  (Contributed by
     Jeff Hankins, 14-Jul-2009.) $)
  elicc3 $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. ( A [,] B ) <-> ( C e. RR*
  /\ A <_ B /\ ( C = A \/ ( A < C /\ C < B ) \/ C = B ) ) ) ) $=
    ( cxr wcel wa cle wbr w3a wceq clt wi simp1 a1i xrleltne biimprd syl5ibrcom
    wn wne wo cicc co w3o elicc1 xrletr exp5o com23 imp5q df-ne syl5bir adantlr
    3adant3r3 eqcom necon3bbii syl5bi 3exp com12 imp32 3adantr2 adantll anim12d
    ex df-or 3orass pm5.6 orcom imbi2i bitri 3bitr4ri syl6ib 3jcad xrleid breq2
    xrltle adantr adantllr adantrd simpr 3jaod exp31 3impd breq1 ancoms adantld
    ad3antrrr ad3antlr impbid bitrd ) ADEZBDEZFZCABUAUBECDEZACGHZCBGHZIZWLABGHZ
    CAJZACKHZCBKHZFZCBJZUCZIZABCUDWKWOXCWKWOWLWPXBWOWLLWKWLWMWNMNWIWJWLWMWNWPWI
    WLWJWMWNWPLLWIWLWJWMWNWPACBUEUFUGUHWKWOWQRZXARZFWTLZXBWKWOXFWKWOFXDWRXEWSWI
    WOXDWRLZWJWIWLWMXGWNXDCASZWIWLWMIZWRCAUIXIWRXHACOPUJULUKWJWOXEWSLZWIWJWLWNX
    JWMWJWLWNXJWLWJWNXJLWLWJWNXJXEBCSZWLWJWNIZWSXABCCBUMUNXLWSXKCBOPUOUPUQURUSU
    TVAVBWQWTXATZTXDXMLZXBXFWQXMVCWQWTXAVDXFXDXAWTTZLXNXDXAWTVEXOXMXDXAWTVFVGVH
    VIVJVKWKXCWLWMWNXCWLLWKWLWPXBMNWKWLWPXBWMWKWLWPXBWMLWKWLFZWPFZWQWMWTXAXQWMW
    QAAGHZWIXRWJWLWPAVLWECAAGVMQXQWRWMWSWIWLWPWRWMLZWJWIWLFXSWPACVNVOVPVQXQWMXA
    WPXPWPVRZCBAGVMQVSVTWAWKWLWPXBWNWKWLWPXBWNLXQWQWNWTXAXQWNWQWPXTCABGWBQXPWTW
    NLZWPWJWLYAWIWJWLFWSWNWRWLWJWSWNLCBVNWCWDUTVOXQWNXABBGHZWJYBWIWLWPBVLWFCBBG
    WBQVSVTWAVKWGWH $.

  ${
    $d k m n y ph $.  $d k m n x ps $.  $d x y $.
    finminlem.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( A useful lemma about finite sets.  If a property holds for a finite set,
       it holds for a minimal set.  (Contributed by Jeff Hankins,
       4-Dec-2009.) $)
    finminlem $p |- ( E. x e. Fin ph -> E. x ( ph /\ A. y ( ( y C_ x /\ ps ) ->
    x = y ) ) ) $=
      ( vn vm vk cfn wrex cv cen wbr wa wex com c0 wi wcel ex crab wne cin wceq
      wss weq wal nfe1 nfcv nfrab nfne isfi w3a 19.8a anim2i 3impb breq2 anbi1d
      exbidv elrab sylibr ne0i syl 3exp rexlimiv rexlimi con0 cep epweon ssrab2
      sylbi wwe omsson sstri wefrc mp3an12 nfin nfeq1 nfan simprr wpss wo sspss
      nfv wn rspe pssss sylan2 sylbir adantrr simprll simprlr simplrr vex breq1
      ssfi anbi12d spcev syl2anc csdm adantr php3 cdom cvv ssdomg ax-mp endomtr
      ad2antrr ad2antlr ensym domentr expcom syld syl5 domnsym con2i nsyli impr
      ad2antll word wb nnord ad2antrl ordtri1 con2bid mpbird jca31 anbi1i bitri
      elin exp44 rexlimdv syl5bi com23 mpdd necon2bd imp31 pm2.21d equcomi a1i
      jaod expr impd alrimiv jca eximd impancom 3syl ) ACIJCKZFKZLMZANZCOZFPUAZ
      QUBZUUNGKZUCZQUDZGUUNJZADKZUUIUEZBNCDUFZRZDUGZNZCOZAUUOCICUUNQUUMCFPUULCU
      HCPUIUJZCQUIUKUUIISZUUIUUPLMZGPJZAUUORZGUUIULZUVIUVKGPUUPPSZUVIAUUOUVMUVI
      AUMZUUPUUNSZUUOUVNUVMUVIANZCOZNZUVOUVMUVIAUVRUVPUVQUVMUVPCUNUOUPUUMUVQFUU
      PPFGUFZUULUVPCUVSUUKUVIAUUJUUPUUILUQURUSUTZVAUUNUUPVBVCVDVEVKVFVGVHVLUUNV
      GUEUUOUUSVIUUNPVGUUMFPVJVMVNGVGUUNVOVPUURUVFGUUNUVOUVRUURUVFRUVTUVMUURUVQ
      UVFUVMUURNZUVPUVECUVMUURCUVMCWDCUUQQCUUNUUPUVGCUUPUIVQVRVSUWAUVPUVEUWAUVP
      NZAUVDUWAUVIAVTUWBUVCDUWBUVABUVBUWBBUVAUVBUWAUVPBUVAUVBRUVAUUTUUIWAZDCUFZ
      WBUWAUVPBNZNZUVBUUTUUIWCUWFUWCUVBUWDUWFUWCUVBUVMUURUWEUWCWEZUVMUWEUURUWGU
      VMUWEUURUWGRUVMUWENZUWCUUQQUWHUWCUUTISZUUQQUBZUVMUVPUWCUWIRZBUVMUVIUWKAUV
      MUVINZUVJUWKUVIGPWFZUVJUVHUWKUVLUVHUWCUWIUWCUVHUVAUWIUUTUUIWGUUIUUTWPWHTW
      IVCWJWJUWHUWIUWCUWJUWIUUTHKZLMZHPJUWHUWCUWJRZHUUTULUWHUWOUWPHPUWHUWNPSZUW
      OUWCUWJUWHUWQUWONZUWCNZNZUWNUUQSZUWJUWTUWQUUIUWNLMZANZCOZNZUWNUUPSZNZUXAU
      WTUWQUXDUXFUWHUWQUWOUWCWKUWTUWOBUXDUWHUWQUWOUWCWLUVMUVPBUWSWMUXCUWOBNCUUT
      DWNUVBUXBUWOABUUIUUTUWNLWOEWQWRWSUWTUXFUUPUWNUEZWEZUWHUWRUWCUXIUWHUWRNZUW
      CUUTUUIWTMZUXIUXJUVHUWCUXKRUWHUVHUWRUVMUVPUVHBUVMUVIUVHAUWLUVJUVHUWMUVLVA
      WJWJXAUVHUWCUXKUUIUUTXBTVCUXJUXHUUIUUTXCMZUXKUXHUUPUWNXCMZUXJUXLUWNXDSUXH
      UXMRHWNUUPUWNXDXEXFUXJUXMUUIUWNXCMZUXLUWEUXMUXNRZUVMUWRUVIUXOABUVIUXMUXNU
      UIUUPUWNXGTXHXIUWOUXNUXLRUWHUWQUXNUWOUXLUWOUXNUWNUUTLMUXLUUTUWNXJUUIUWNUU
      TXKWHXLXSXMXNUXLUXKUUIUUTXOXPXQXMXRUWTUUPXTZUWNXTZUXFUXIYAUVMUXPUWEUWSUUP
      YBXHUWRUXQUWHUWCUWQUXQUWOUWNYBXAYCUXPUXQNUXHUXFUUPUWNYDYEWSYFYGUXAUWNUUNS
      ZUXFNUXGUWNUUNUUPYJUXRUXEUXFUUMUXDFUWNPFHUFZUULUXCCUXSUUKUXBAUUJUWNUUILUQ
      URUSUTYHYIVAUUQUWNVBVCYKYLYMYNYOYPTYNYQYRUWDUVBRUWFDCYSYTUUAYMUUBYNUUCUUD
      UUETUUFUUGVKVEUUH $.
  $}

  ${
    $d z A $.  $d x y z S $.
    $( Any number greater than an infimum is greater than some element of the
       set.  (Contributed by Jeff Hankins, 29-Sep-2013.)  (Revised by AV,
       10-Oct-2021.) $)
    gtinf $p |- ( ( ( S C_ RR /\ S =/= (/) /\ E. x e. RR A. y e. S x <_ y ) /\
    ( A e. RR /\ inf ( S , RR , < ) < A ) ) -> E. z e. S z < A ) $=
      ( cr wss c0 wne cv cle wbr wral wrex w3a wcel clt cinf wa simprl wor ltso
      simprr a1i wn wi infm3 adantr infglb mp2and ) EFGEHIAJZBJZKLBEMAFNOZDFPZE
      FQRDQLZSZSZUNUOCJZDQLCENUMUNUOTUMUNUOUCUQABCFEDQFQUAUQUBUDUMULUKQLUEBEMUK
      ULQLURULQLCENUFBFMSAFNUPABCEUGUHUIUJ $.
  $}

  ${
    $d z A $.  $d x y z S $.
    $( Any number greater than an infimum is greater than some element of the
       set.  (Contributed by Jeff Hankins, 29-Sep-2013.)  Obsolete version of
       ~ gtinf as of 10-Oct-2021.  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    gtinfOLD $p |- ( ( ( S C_ RR /\ S =/= (/) /\ E. x e. RR A. y e. S x <_ y )
          /\ ( A e. RR /\ sup ( S , RR , `' < ) < A ) ) -> E. z e. S z < A ) $=
      ( cr cv wbr wral wrex wcel clt wa cvv wb gtso brcnvg mpan2 vex brcnv ccnv
      wss c0 wne cle w3a simprl supex biimpar adantl wor a1i wn wi infm3 notbii
      ralbii rexbii imbi12i anbi12i sylibr adantr suplub rexbidv ad2antrl mpbid
      csup mp2and ) EFUBEUCUDAGZBGZUEHBEIAFJUFZDFKZEFLUAZVGZDLHZMZMZDCGZVMHZCEJ
      ZVRDLHZCEJZVQVLDVNVMHZVTVKVLVOUGVPWCVKVLWCVOVLVNNKWCVOOFEVMPUHDVNFNLQRUIU
      JVQABCFEDVMFVMUKVQPULVKVIVJVMHZUMZBEIZVJVIVMHZVJVRVMHZCEJZUNZBFIZMZAFJZVP
      VKVJVILHZUMZBEIZVIVJLHZVRVJLHZCEJZUNZBFIZMZAFJWMABCEUOWLXBAFWFWPWKXAWEWOB
      EWDWNVIVJLASZBSZTUPUQWJWTBFWGWQWIWSVJVILXDXCTWHWRCEVJVRLXDCSZTURUSUQUTURV
      AVBVCVHVLVTWBOVKVOVLVSWACEVLVRNKVSWAOXEDVRFNLQRVDVEVF $.
  $}

  ${
    $d x y A $.
    $( A set is open in the standard topology of the reals precisely when every
       point can be enclosed in an open ball.  (Contributed by Jeff Hankins,
       23-Sep-2013.)  (Proof shortened by Mario Carneiro, 30-Jan-2014.) $)
    opnrebl $p |- ( A e. ( topGen ` ran (,) ) <-> ( A C_ RR /\ A. x e. A E. y
    e. RR+ ( ( x - y ) (,) ( x + y ) ) C_ A ) ) $=
      ( cioo crn ctg cfv wcel cr wss cv cabs cmin co crp wrex wral wa wb eqid
      ccom cxp cres caddc cxmt rexmet cmopn tgioo elmopn2 ax-mp ssel2 wceq rpre
      cbl bl2ioo sylan2 sseq1d rexbidva syl ralbidva pm5.32i bitri ) CDEFGZHZCI
      JZAKZBKZLMUAIIUBUCZUNGNZCJZBOPZACQZRZVEVFVGMNVFVGUDNDNZCJZBOPZACQZRVHIUEG
      HVDVMSVHVHTZUFABCVHVCIVHVHUGGZVRVSTUHUIUJVEVLVQVEVKVPACVEVFCHRVFIHZVKVPSC
      IVFUKVTVJVOBOVTVGOHZRVIVNCWAVTVGIHVIVNULVGUMVFVGVHVRUOUPUQURUSUTVAVB $.
  $}

  ${
    $d x y z A $.
    $( A set is open in the standard topology of the reals precisely when every
       point can be enclosed in an arbitrarily small ball.  (Contributed by
       Jeff Hankins, 22-Sep-2013.)  (Proof shortened by Mario Carneiro,
       30-Jan-2014.) $)
    opnrebl2 $p |- ( A e. ( topGen ` ran (,) ) <-> ( A C_ RR /\ A. x e. A A. y
    e. RR+ E. z e. RR+ ( z <_ y /\ ( ( x - z ) (,) ( x + z ) ) C_ A ) ) ) $=
      ( cioo cfv wcel cr wss cv wbr cmin co wa crp wrex wral eqid wi c1 crn ctg
      cle caddc cabs ccom cxp cres cxmt rexmet cmopn mopnss mpan clt cbl mopni3
      tgioo w3a ex mp3an1 sselda wceq rpre bl2ioo sylan2 sseq1d anbi2d rexbidva
      biimpd ltle syl2anr anim1d reximdva syl9 syl mpdd expimpd ralrimivv ssel2
      jca 1rp simpr reximi biidd rspcv mpsyl syl5ibr ralimdva imdistani elmopn2
      ralimi wb ax-mp sylibr impbii ) DEUAUBFZGZDHIZCJZBJZUCKZAJZWSLMXBWSUDMEMZ
      DIZNZCOPZBOQZADQZNZWQWRXHUELUFHHUGUHZHUIFGZWQWRXJXJRZUJZDXJWPHXJXJUKFZXLX
      NRUQZULUMZWQXFABDOWQXBDGZWTOGZXFWQXQNZXRWSWTUNKZXBWSXJUOFMZDIZNZCOPZXFXKW
      QXQXRYDSXMXKWQXQURXRYDCDXJXBWTWPHXOUPUSUTXSXBHGZXRYDXFSSWQDHXBXPVAYEYDXTX
      DNZCOPZXRXFYEYDYGYEYCYFCOYEWSOGZNZYBXDXTYIYAXCDYHYEWSHGZYAXCVBWSVCZXBWSXJ
      XLVDVEVFZVGVHVIXRYFXECOXRYHNXTXAXDYHYJWTHGXTXASXRYKWTVCWSWTVJVKVLVMVNVOVP
      VQVRVTXIWRYBCOPZADQZNZWQWRXHYNWRXGYMADWRXQNYEXGYMSDHXBVSXGYMYEXDCOPZTOGXG
      YPBOQYPWAXFYPBOXEXDCOXAXDWBWCWKYPYPBTOWTTVBYPWDWEWFYEYBXDCOYLVHWGVOWHWIXK
      WQYOWLXMACDXJWPHXOWJWMWNWO $.
  $}

  ${
    $d k m n p q r t x y A $.  $d k m n p q r t x y B $.
    $( Lemma for ~ nn0prpw .  Use strong induction to show that every positive
       integer has unique prime power divisors.  (Contributed by Jeff Hankins,
       28-Sep-2013.) $)
    nn0prpwlem $p |- ( A e. NN -> A. k e. NN ( k < A -> E. p e. Prime E. n e.
    NN -. ( ( p ^ n ) || k <-> ( p ^ n ) || A ) ) ) $=
      ( clt wbr cexp co cdvds wb wn cn wrex cprime wi notbid c1 wcel wa breq1d
      vx vy vq vt vr vm cv wral wceq bibi2d 2rexbidv imbi12d ralbidv weq nnnlt1
      breq2 pm2.21d rgen c2 cuz cfv exprmfct w3a cdiv cc0 wne prmz adantr prmnn
      cz nnne0d adantl dvdsval2 syl3anc biimpd 3ad2antl2 adantrl simprr cr nnre
      nnz nngt0 jca divgt0 syl2anr adantrr elnnz sylanbrc expr eluzelz eluzelre
      syl 2z breq1 rspcv 3ad2ant1 cmul ad2antrr ad2antlr syl112anc mpbid bibi1d
      cle 3ad2ant2 3ad2ant3 biimpa ad2antrl ad4antlr syl2anc ad3antlr dvdsmulcr
      zexpcl cc divcan1d breq12d bitr3d ad4antr bibi12d impr oveq2 rspcev oveq1
      anbi2d rexbidv dvdsmultr2 simp-4r syl6bb coprmdvds mpan2d impbid divcan2d
      cgcd breq2d bitrd ex com23 pm2.61d embantd syld biimpar eluz1i zre ltletr
      2pos 0re 2re mp3an12 mpani imp sylbi ancld syl6ibr sylbid ancoms eluzelcn
      a1d mulid2d prmgt1 1red nnred ltmul1 eqbrtrrd mpbird ltdiv1 simprll caddc
      ltdivmul peano2nn nnnn0 ad2antll nncnd expp1d eqcomd mpbiri simplr gcdcom
      cn0 nncn com12 simprl prmdvdsexpb con3d coprm eqtrd exp32 rexlimdvv 3exp2
      equcom 3impia com24 imp32 3syld simpl2 1nn exp1d 3adant1 mpid mtod biimpr
      a1i idd nsyl rspc2ev ralrimiv cbvrex2v cbvralv sylib rexlimdv mpd indstr2
      expd 3exp1 vtoclga ) BUGZUAUGZEFZDUGZCUGZGHZUXNIFZUXSUXOIFZJZKZCLMDNMZOZB
[encoded data, 6080 characters]
      NIWYHTWYIXRPUXEYGULUXFUXGUXLUXHUXIUXJUXM $.

    $( Two nonnegative integers are the same if and only if they are divisible
       by the same prime powers.  (Contributed by Jeff Hankins,
       29-Sep-2013.) $)
    nn0prpw $p |- ( ( A e. NN0 /\ B e. NN0 ) -> ( A = B <-> A. p e. Prime A. n
    e. NN ( ( p ^ n ) || A <-> ( p ^ n ) || B ) ) ) $=
      ( vk wcel wa wceq cdvds wbr wb cn wral cprime cc0 wi wn wrex clt c1 cv co
      cn0 cexp breq2 a1d ralrimivv wo elnn0 wne lttri2 syl2an ancoms nn0prpwlem
      nnre breq1 bibi1d notbid 2rexbidv imbi12d rspcv mpan9 bicom syl6bb impcom
      cr syl5com jaod sylbid df-ne rexnal2 3imtr3g con4d ex prmunb w3a 1nn prmz
      cle 1nn0 zexpcl sylancl dvdsle sylan prmnn syl reexpcl lenlt nncnd adantr
      cz exp1d breq2d bitrd sylibd con2d 3impia dvds0 3ad2ant2 mpid mtod biimpr
      idd oveq2 breq1d bibi12d rspcev sylancr 3expia reximdva mpd sylib pm2.21d
      bibi2d 2ralbidv eqeq2 syl5ibr sylbi com12 orcom df-or 3bitri biimp imim2i
      nsyl jaoi eqcom syl6ib eqeq1 imp sylanb impbid2 ) AUCFZBUCFZGABHZDUAZCUAZ
      UDUBZAIJZYRBIJZKZCLMDNMZYOUUADCNLYOUUAYPNFZYQLFGABYRIUEUFUGYMALFZAOHZUHZY
      NUUBYOPZAUIUUFYNUUGUUDYNUUGPUUEYNUUDUUGYNBLFZBOHZUHZUUDUUGPZBUIZUUHUUKUUI
      UUHUUDUUGUUHUUDGZYOUUBUUMABUJZUUAQZCLRDNRZYOQUUBQUUMUUNABSJZBASJZUHZUUPUU
      DUUHUUNUUSKZUUDAVFFZBVFFZUUTUUHAUOZBUOZABUKULUMUUMUUQUUPUURUUHEUAZBSJZYRU
      VEIJZYTKZQZCLRDNRZPZELMUUDUUQUUPPZBECDUNUVKUVLEALUVEAHZUVFUUQUVJUUPUVEABS
      UPUVMUVIUUODCNLUVMUVHUUAUVMUVGYSYTUVEAYRIUEUQURUSUTVAVBUUDUUHUURUUPPZUUDU
      VEASJZUVGYSKZQZCLRDNRZPZELMUUHUVNAECDUNUVSUVNEBLUVEBHZUVOUURUVRUUPUVEBASU
      PUVTUVQUUODCNLUVTUVPUUAUVTUVPYTYSKUUAUVTUVGYTYSUVEBYRIUEUQYTYSVCVDURUSUTV
      AVGVEVHVIABVJUUADCNLVKVLVMVNUUDUUGUUIYSYROIJZKZCLMDNMZUUEPUUDUWCUUEUUDUWB
      QZCLRZDNRZUWCQUUDAYPSJZDNRUWFADVOUUDUWGUWEDNUUDUUCUWGUWEUUDUUCUWGVPZTLFZY
      PTUDUBZAIJZUWJOIJZKZQZUWEVQUWHUWLUWKPZUWMUWHUWOUWKUUDUUCUWGUWKQUUDUUCGUWK
      UWGUUCUUDUWKUWGQZPUUCUUDGZUWKUWJAVSJZUWPUUCUWJWKFZUUDUWKUWRPUUCYPWKFTUCFZ
      UWSYPVRVTYPTWAWBZUWJAWCWDUWQUWRAUWJSJZQZUWPUUCUWJVFFZUVAUWRUXCKUUDUUCYPVF
      FZUWTUXDUUCYPLFUXEYPWEZYPUOWFVTYPTWGWBZUVCUWJAWHULUWQUXBUWGUWQUWJYPASUUCU
      WJYPHZUUDUUCYPUUCYPUXFWIWLZWJWMURWNWOUMWPWQUWHUWOUWLUWKUUCUUDUWLUWGUUCUWS
      UWLUXAUWJWRWFZWSUWHUWOXCWTXAUWKUWLXBYEUWDUWNCTLYQTHZUWBUWMUXKYSUWKUWAUWLU
      XKYRUWJAIYQTYPUDXDZXEUXKYRUWJOIUXLXEZXFURXGXHXIXJXKUWBDCNLVKXLXMUUIUUBUWC
      YOUUEUUIUUAUWBDCNLUUIYTUWAYSBOYRIUEXNXOBOAXPUTXQYFXRXSYNUUGUUEUWAYTKZCLMD
      NMZOBHZPYNUXOUUIUXPYNUUIUXOYNUUIQZUUHPZUXQUXOQZPYNUUJUUIUUHUHUXRUULUUHUUI
      XTUUIUUHYAYBUUHUXSUXQUUHUXNQZCLRZDNRZUXSUUHBYPSJZDNRUYBBDVOUUHUYCUYADNUUH
      UUCUYCUYAUUHUUCUYCVPZUWIUWLUWJBIJZKZQZUYAVQUYDUWLUYEPZUYFUYDUYHUYEUUHUUCU
      YCUYEQUUHUUCGUYEUYCUUCUUHUYEUYCQZPUUCUUHGZUYEUWJBVSJZUYIUUCUWSUUHUYEUYKPU
      XAUWJBWCWDUYJUYKBUWJSJZQZUYIUUCUXDUVBUYKUYMKUUHUXGUVDUWJBWHULUYJUYLUYCUYJ
      UWJYPBSUUCUXHUUHUXIWJWMURWNWOUMWPWQUYDUYHUWLUYEUUCUUHUWLUYCUXJWSUYDUYHXCW
      TXAUWLUYEYCYEUXTUYGCTLUXKUXNUYFUXKUWAUWLYTUYEUXMUXKYRUWJBIUXLXEXFURXGXHXI
      XJXKUXNDCNLVKXLYDXRVMBOYGYHUUEUUBUXOYOUXPUUEUUAUXNDCNLUUEYSUWAYTAOYRIUEUQ
      XOAOBYIUTXQYFYJYKYL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Basic topological facts
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    topbnd.1 $e |- X = U. J $.
    $( Two equivalent expressions for the boundary of a topology.  (Contributed
       by Jeff Hankins, 23-Sep-2009.) $)
    topbnd $p |- ( ( J e. Top /\ A C_ X ) -> ( ( ( cls ` J ) ` A ) i^i ( ( cls
    ` J ) ` ( X \ A ) ) ) = ( ( ( cls ` J ) ` A ) \ ( ( int ` J ) ` A ) ) ) $=
      ( ctop wcel wss wa ccl cfv cdif cin cnt clsdif ineq2d indif2 syl6eq df-ss
      wceq clsss3 sylib difeq1d eqtrd ) BEFACGHZABIJZJZCAKUEJZLZUFCLZABMJJZKZUF
      UJKUDUHUFCUJKZLUKUDUGULUFABCDNOUFCUJPQUDUIUFUJUDUFCGUIUFSABCDTUFCRUAUBUC
      $.
  $}

  ${
    opnbnd.1 $e |- X = U. J $.
    $( A set is open iff it is disjoint from its boundary.  (Contributed by
       Jeff Hankins, 23-Sep-2009.) $)
    opnbnd $p |- ( ( J e. Top /\ A C_ X ) -> ( A e. J <-> ( A i^i ( ( ( cls ` J
    ) ` A ) i^i ( ( cls ` J ) ` ( X \ A ) ) ) ) = (/) ) ) $=
      ( ctop wcel wss wa cnt cfv wceq ccl cdif cin disjdif a1i eqeq1d syl5ibcom
      c0 ineq1 ntrss2 adantr inssdif0 sscls df-ss sylib eqcomd eqimss syl sylan
      sstr sylan2br eqssd ex impbid isopn3 topbnd ineq2d 3bitr4d ) BEFACGHZABIJ
      JZAKZAABLJZJZVAMZNZSKZABFAVDCAMVCJNZNZSKUTVBVGUTVAVENZSKZVBVGVKUTVAVDOPVB
      VJVFSVAAVETQRUTVGVBUTVGHVAAUTVAAGVGABCDUAUBVGUTAVDNZVAGZAVAGZAVDVAUCUTAVL
      GZVMVNUTAVLKVOUTVLAUTAVDGVLAKABCDUDAVDUEUFUGAVLUHUIAVLVAUKUJULUMUNUOABCDU
      PUTVIVFSUTVHVEAABCDUQURQUS $.

    $( A set is closed iff it contains its boundary.  (Contributed by Jeff
       Hankins, 1-Oct-2009.) $)
    cldbnd $p |- ( ( J e. Top /\ A C_ X ) -> ( A e. ( Clsd ` J ) <-> ( ( ( cls
    ` J ) ` A ) i^i ( ( cls ` J ) ` ( X \ A ) ) ) C_ A ) ) $=
      ( ctop wcel wss wa cfv cdif cin c0 adantl incom ex sylbi ineq2d wb adantr
      wceq ccld ccl iscld3 eqimss syl6bi ssinss1 syl6 sslin disjdif eqtri sseq0
      sylancl dfss4 fveq2 eqcomd syl5eq eqeq1d difss opnbnd mpan2 bitr4d opncld
      wi eleq1 sylibd sylbid syld impbid ) BEFZACGZHZABUAIZFZABUBIZIZCAJZVNIZKZ
      AGZVKVMVOAGZVSVKVMVOATVTABCDUCVOAUDUEVOVQAUFUGVKVSVPVRKZLTZVMVKVSWBVKVSHW
      AVPAKZGZWCLTWBVSWDVKVRAVPUHMWCAVPKLVPANACUIUJWAWCUKULOVKWBVPBFZVMVKWBVPVQ
      CVPJZVNIZKZKZLTZWEVKWAWILVKVRWHVPVKVRVQVOKWHVOVQNVKVOWGVQVJVOWGTZVIVJWFAT
      ZWKACUMZWLWGVOWFAVNUNUOPMQUPQUQVIWEWJRZVJVIVPCGWNCAURVPBCDUSUTSVAVKWEWFVL
      FZVMVIWEWOVCVJVIWEWOVPBCDVBOSVJWOVMRZVIVJWLWPWMWFAVLVDPMVEVFVGVH $.
  $}

  ${
    $d o J $.  $d o O $.  $d o X $.
    ntruni.1 $e |- X = U. J $.
    $( A union of interiors is a subset of the interior of the union.  The
       reverse inclusion may not hold.  (Contributed by Jeff Hankins,
       31-Aug-2009.) $)
    ntruni $p |- ( ( J e. Top /\ O C_ ~P X ) -> U_ o e. O ( ( int ` J ) ` o
    ) C_ ( ( int ` J ) ` U. O ) ) $=
      ( ctop wcel cpw wss wa cv cnt cfv cuni wral ciun elssuni wi sspwuni ntrss
      3expia sylan2b syl5 ralrimiv iunss sylibr ) BFGZCDHIZJZAKZBLMZMZCNZUKMZIZ
      ACOACULPUNIUIUOACUJCGUJUMIZUIUOUJCQUHUGUMDIZUPUORCDSUGUQUPUOUMUJBDETUAUBU
      CUDACULUNUEUF $.
  $}

  ${
    clsun.1 $e |- X = U. J $.
    $( A pairwise union of closures is the closure of the union.  (Contributed
       by Jeff Hankins, 31-Aug-2009.) $)
    clsun $p |- ( ( J e. Top /\ A C_ X /\ B C_ X ) -> ( ( cls ` J ) ` ( A u. B
    ) ) = ( ( ( cls ` J ) ` A ) u. ( ( cls ` J ) ` B ) ) ) $=
      ( wcel wss cun cfv cdif difundi wceq difss wa unss ntrdif syl2anc 3adant3
      cin 3adant2 w3a ccl cnt fveq2i ntrin mp3an23 3ad2ant1 syl5eq simp1 biimpi
      ctop 3adant1 ineq12d syl6eqr 3eqtr3d difeq2d clscld cldss syl dfss4 sylib
      ccld clsss3 jca bitri ) CUKFZADGZBDGZUAZDDABHZCUBIZIZJZJZDDAVKIZBVKIZHZJZ
      JZVLVQVIVMVRDVIDVJJZCUCIZIZDAJZWAIZDBJZWAIZSZVMVRVIWBWCWESZWAIZWGVTWHWADA
      BKUDVFVGWIWGLZVHVFWCDGWEDGWJDAMDBMWCWECDEUEUFUGUHVIVFVJDGZWBVMLVFVGVHUIZV
      GVHWKVFVGVHNWKABDOUJULZVJCDEPQVIWGDVOJZDVPJZSVRVIWDWNWFWOVFVGWDWNLVHACDEP
      RVFVHWFWOLVGBCDEPTUMDVOVPKUNUOUPVIVLDGZVNVLLVIVLCVBIFZWPVIVFWKWQWLWMVJCDE
      UQQVLCDEURUSVLDUTVAVIVODGZVPDGZNZVSVQLZVIWRWSVFVGWRVHACDEVCRVFVHWSVGBCDEV
      CTVDWTVQDGXAVOVPDOVQDUTVEVAUO $.
  $}

  ${
    $d c C $.  $d c J $.  $d c X $.
    clsint2.1 $e |- X = U. J $.
    $( The closure of an intersection is a subset of the intersection of the
       closures.  (Contributed by Jeff Hankins, 31-Aug-2009.) $)
    clsint2 $p |- ( ( J e. Top /\ C C_ ~P X ) -> ( ( cls ` J ) ` |^| C ) C_
    |^|_ c e. C ( ( cls ` J ) ` c ) ) $=
      ( ctop wcel cpw wss wa cint ccl cfv cv wral ciin cuni wi sspwuni elssuni
      sstr2 syl adantl intss1 clsss syl3an3 3com23 3expia syld impancom sylan2b
      ralrimiv ssiin sylibr ) BFGZACHIZJZAKZBLMZMZDNZUSMZIZDAOUTDAVBPIUQVCDAUPU
      OAQZCIZVAAGZVCRACSUOVFVEVCUOVFJVEVACIZVCVFVEVGRZUOVFVAVDIVHVAATVAVDCUAUBU
      CUOVFVGVCUOVGVFVCVFUOVGURVAIVCVAAUDVAURBCEUEUFUGUHUIUJUKULDAVBUTUMUN $.
  $}

  ${
    $d c o A $.  $d c o J $.  $d c o X $.
    opnregcld.1 $e |- X = U. J $.
    $( A set is regularly closed iff it is the closure of some open set.
       (Contributed by Jeff Hankins, 27-Sep-2009.) $)
    opnregcld $p |- ( ( J e. Top /\ A C_ X ) -> ( ( ( cls ` J ) ` ( ( int ` J )
    ` A ) ) = A <-> E. o e. J A = ( ( cls ` J ) ` o ) ) ) $=
      ( ctop wcel wss wa cnt cfv wceq cv wrex ntropn fveq2 syldan clsss syl3anc
      ccl eqcom biimpi eqeq2d rspcev syl2an simpl eltopss clsss3 ntrss2 sseqtrd
      clsidm ntrss3 simpr sscls ssntr syl22anc eqssd adantlr eqeq12d syl5ibrcom
      ex fveq2d id rexlimdva impbid ) CFGZADHZIZACJKZKZCTKZKZALZABMZVKKZLZBCNZV
      HVMVQVHVJCGAVLLZVQVMACDEOVMVRVLAUAUBVPVRBVJCVNVJLVOVLAVNVJVKPUCUDUEVAVHVP
      VMBCVHVNCGZIVMVPVOVIKZVKKZVOLZVFVSWBVGVFVSIZWAVOWCWAVOVKKZVOWCVFVODHZVTVO
      HZWAWDHVFVSUFZVFVSVNDHZWEVNCDEUGZVNCDEUHQZVFVSWEWFWJVOCDEUIQVOVTCDERSVFVS
      WHWDVOLWIVNCDEUKQUJWCVFVTDHZVNVTHZVOWAHWGVFVSWEWKWJVOCDEULQWCVFWEVSVNVOHZ
      WLWGWJVFVSUMVFVSWHWMWIVNCDEUNQVOCVNDEUOUPVTVNCDERSUQURVPVLWAAVOVPVJVTVKAV
      OVIPVBVPVCUSUTVDVE $.

    $( A set if regularly open iff it is the interior of some closed set.
       (Contributed by Jeff Hankins, 27-Sep-2009.) $)
    cldregopn $p |- ( ( J e. Top /\ A C_ X ) -> ( ( ( int ` J ) ` ( ( cls ` J )
    ` A ) ) = A <-> E. c e. ( Clsd ` J ) A = ( ( int ` J ) ` c ) ) ) $=
      ( ctop wcel wss wa ccl cfv cnt wceq ccld wrex fveq2 syl2anc ntrss syl3anc
      cv clscld eqcom biimpi eqeq2d rspcev syl2an ex cldrcl cldss ntrss2 clsss2
      mpdan ntridm ntrss3 clsss3 sscls eqsstr3d eqssd adantl eqeq12d syl5ibrcom
      fveq2d id rexlimdva impbid ) BFGZACHIZABJKZKZBLKZKZAMZADTZVJKZMZDBNKZOZVG
      VLVQVGVIVPGAVKMZVQVLABCEUAVLVRVKAUBUCVOVRDVIVPVMVIMVNVKAVMVIVJPUDUEUFUGVG
      VOVLDVPVGVMVPGZIVLVOVNVHKZVJKZVNMZVSWBVGVSWAVNVSVFVMCHZVTVMHZWAVNHVMBUHZV
      MBCEUIZVSVNVMHZWDVSVFWCWGWEWFVMBCEUJQVMVNBCEUKULVMVTBCERSVSVNVNVJKZWAVSVF
      WCWHVNMWEWFVMBCEUMQVSVFVTCHZVNVTHZWHWAHWEVSVFVNCHZWIWEVSVFWCWKWEWFVMBCEUN
      QZVNBCEUOQVSVFWKWJWEWLVNBCEUPQVTVNBCERSUQURUSVOVKWAAVNVOVIVTVJAVNVHPVBVOV
      CUTVAVDVE $.
  $}

  $( Two neighborhoods intersect to form a neighborhood of the intersection.
     (Contributed by Jeff Hankins, 31-Aug-2009.) $)
  neiin $p |- ( ( J e. Top /\ M e. ( ( nei ` J ) ` A ) /\ N e. ( ( nei ` J ) `
  B ) ) -> ( M i^i N ) e. ( ( nei ` J ) ` ( A i^i B ) ) ) $=
    ( cfv cin wss wa simpr wb simpl neiss2 neii1 neiint syl3anc ssinss1 3adant3
    wcel syl ctop cnei w3a cnt cuni eqid mpbid inss2 3adant2 syl5ss ssind simp1
    wceq ntrin sseqtr4d mpbird ) CUASZDACUBFZFSZEBURFSZUCZDEGZABGZURFSZVCVBCUDF
    ZFZHZVAVCDVEFZEVEFZGZVFVAVCVHVIUQUSVCVHHZUTUQUSIZAVHHZVKVLUSVMUQUSJVLUQACUE
    ZHZDVNHZUSVMKUQUSLZACDVNVNUFZMZACDVNVRNZACDVNVROPUGABVHQTRVAVCBVIABUHUQUTBV
    IHZUSUQUTIZUTWAUQUTJWBUQBVNHEVNHZUTWAKUQUTLBCEVNVRMBCEVNVRNZBCEVNVROPUGUIUJ
    UKVAUQVPWCVFVJUMUQUSUTULUQUSVPUTVTRUQUTWCUSWDUIDECVNVRUNPUOUQUSVDVGKZUTVLUQ
    VCVNHZVBVNHZWEVQVLVOWFVSABVNQTVLVPWGVTDEVNQTVCCVBVNVROPRUP $.

  $( Homeomorphisms preserve closedness.  (Contributed by Jeff Hankins,
     3-Jul-2009.)  (Revised by Mario Carneiro, 3-Jun-2014.) $)
  hmeoclda $p |- ( ( ( J e. Top /\ K e. Top /\ F e. ( J Homeo K ) ) /\ S e. (
  Clsd ` J ) ) -> ( F " S ) e. ( Clsd ` K ) ) $=
    ( ctop wcel chmeo co w3a ccnv ccn ccld cima hmeocnvcn 3ad2ant3 wa imacnvcnv
    cfv cnclima syl5eqelr sylan ) CEFZDEFZBCDGHFZIBJZDCKHFZACLRFZBAMZDLRZFUDUBU
    FUCBCDNOUFUGPUHUEJAMUIBAQAUEDCSTUA $.

  $( Homeomorphisms preserve closedness.  (Contributed by Jeff Hankins,
     3-Jul-2009.) $)
  hmeocldb $p |- ( ( ( J e. Top /\ K e. Top /\ F e. ( J Homeo K ) ) /\ S e. (
  Clsd ` K ) ) -> ( `' F " S ) e. ( Clsd ` J ) ) $=
    ( ctop wcel chmeo w3a ccn ccld cfv ccnv cima hmeocn 3ad2ant3 cnclima sylan
    co ) CEFZDEFZBCDGRFZHBCDIRFZADJKFBLAMCJKFUASUBTBCDNOABCDPQ $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Topology of the real numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y A $.  $d x y B $.  $d x y D $.  $d x y F $.  $d x y U $.
    $( An alternate proof of the Intermediate Value Theorem ~ ivth using
       topology.  (Contributed by Jeff Hankins, 17-Aug-2009.)  (Revised by
       Mario Carneiro, 15-Dec-2013.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    ivthALT $p |- ( ( ( A e. RR /\ B e. RR /\ U e. RR ) /\ A < B /\ ( ( A [,] B
    ) C_ D /\ D C_ CC /\ ( F e. ( D -cn-> CC ) /\ ( F " ( A [,] B ) ) C_ RR /\
    U e. ( ( F ` A ) (,) ( F ` B ) ) ) ) ) -> E. x e. ( A (,) B ) ( F ` x ) = U
    ) $=
      ( cr wcel w3a wbr co wss cc cfv wceq syl 3ad2ant3 crest ccn wa cicc ccncf
      vy clt cima cioo cv wrex wfun wf simp31 cncff ffun wral crn ctg cuni cres
      cconn iccconn 3adant3 3ad2ant1 simpr1 anim2i 3impb adantl sseq2d biimparc
      wfo cdm fdm fores ctop retop simp332 uniretop restuni sylancr foeq3 mpbid
      jca wb ccnfld ctopn simp331 ssid eqid cnfldtop cnfldtopon toponunii ax-mp
      restid eqcomi cncfcn mpan2 3ad2ant2 eleqtrd ctopon simp32 toponuni cnrest
      resttopon sseqtrd syl2anc cvv cnex sylancl restabs syl3anc iccssre rerest
      ssexg eqtrd oveq1d df-ima eqimss2i ax-resscn syl6ss cnrest2 oveq2d cnconn
      a1i reconn wi cxr rexrd funfvima2 sseq1d mpd sseldd adantr eqnetrd neneqd
      sylc wne fveq2 nsyl jcad rexr syl2an cle simp11 simp12 ltle lbicc2 ubicc2
      imp 3adantl3 oveq1 oveq2 rspc2v ioossicc sseli fvelima w3o simpl1 simp333
      simprr elioo2 simp2d gtned simp13 simp3d ltned simprl3 ecase13d ex 3anass
      syl6ibr elicc3 anbi1d elioo1 3imtr4d simpr reximdv2 ) BGHZCGHZEGHZIZBCUDJ
      ZBCUAKZDLZDMLZFDMUBKZHZFUWAUEZGLZEBFNZCFNZUFKZHZIZIZIZAUGZFNZEOZAUWAUHZUW
      QABCUFKZUHUWNFUIZEUWFHUWRUWMUVSUWTUVTUWMDMFUJZUWTUWMUWEUXAUWBUWCUWEUWGUWK
      UKDMFULZPDMFUMZPQUWNUWHUWIUAKZUWFEUWNUWOUCUGZUAKZUWFLZUCUWFUNAUWFUNZUXDUW
      FLZUWNUFUOUPNZUWFRKZUSHZUXHUWNUXJUWARKZUSHZUWAUXKUQZFUWAURZVIZUXPUXMUXKSK
      ZHUXLUVSUVTUXNUWMUVPUVQUXNUVRBCUTVAVBUWNUWAUWFUXPVIZUXQUWNUWTUWAFVJZLZTZU
      XSUWNUWBUXATZUYBUWMUVSUYCUVTUWBUWCUWLUYCUWCUWLTZUXAUWBUYDUWEUXAUWCUWEUWGU
      WKVCUXBPVDVEQUYCUWTUYAUXAUWTUWBUXCVFUXAUYAUWBUXAUXTDUWADMFVKVGVHWAPZUWAFV
      LPUWNUWFUXOOZUXSUXQWBUWNUXJVMHUWGUYFVNUWEUWGUWKUWBUWCUVSUVTVOZUWFUXJGVPVQ
      VRUWFUXOUWAUXPVSPVTUWNUXPUXMWCWDNZUWFRKZSKZUXRUWNUXPUXMUYHSKZHZUXPUYJHZUW
      NUXPUYHDRKZUWARKZUYHSKZUYKUWNFUYNUYHSKZHUWAUYNUQZLUXPUYPHUWNFUWDUYQUWEUWG
      UWKUWBUWCUVSUVTWEUWMUVSUWDUYQOZUVTUWCUWBUYSUWLUWCMMLUYSMWFDMUYHUYNUYHUYHW
      GZUYNWGUYHMRKZUYHUYHVMHZVUAUYHOUYHUYTWHZUYHVMMMUYHUYHUYTWIZWJWLWKWMWNWOWP
      QWQUWNUWADUYRUVSUVTUWBUWCUWLUKZUWNUYNDWRNHZDUYROUWNUYHMWRNHZUWCVUFVUDUVSU
      VTUWBUWCUWLWSZDUYHMXBVRDUYNWTPXCUWAFUYNUYHUYRUYRWGXAXDUWNUYOUXMUYHSUWNUYO
      UYHUWARKZUXMUWNVUBUWBDXEHZUYOVUIOVUBUWNVUCYBVUEUWNUWCMXEHVUJVUHXFDMXEXLXG
      UWADUYHVMXEXHXIUWNUWAGLZVUIUXMOUVSUVTVUKUWMUVPUVQVUKUVRBCXJVAVBUWAUXJUYHU
      YTUXJWGZXKPXMXNWQUWNVUGUXPUOZUWFLZUWFMLUYLUYMWBVUGUWNVUDYBVUNUWNUWFVUMFUW
      AXOXPYBUWNUWFGMUYGXQXRUWFUXPUXMUYHMXSXIVTUWNUYIUXKUXMSUWNUWGUYIUXKOUYGUWF
      UXJUYHUYTVULXKPXTWQUXPUXMUXKUWAUXOUXOWGYAXIUWMUVSUXLUXHWBZUVTUWLUWBVUOUWC
      UWGUWEVUOUWKAUCUWFYCWPQQVTUWNUWHUWFHZUWIUWFHZUXHUXIYDUWNUYBBUWAHZVUPUYEUW
      NBYEHZCYEHZBCUUAJZVURUWNBUVPUVQUVRUVTUWMUUBYFZUWNCUVPUVQUVRUVTUWMUUCYFZUV
      SUVTVVAUWMUVPUVQUVTVVAUVRUVPUVQTUVTVVABCUUDUUGUUHVAZBCUUEXIUWABFYGYNZUWNU
      YBCUWAHZVUQUYEUWNVUSVUTVVAVVFVVBVVCVVDBCUUFXIUWACFYGYNZUXGUXIUWHUXEUAKZUW
      FLAUCUWHUWIUWFUWFUWOUWHOUXFVVHUWFUWOUWHUXEUAUUIYHUXEUWIOVVHUXDUWFUXEUWIUW
      HUAUUJYHUUKXDYIUWMUVSEUXDHZUVTUWLUWBVVIUWCUWKUWEVVIUWGUWJUXDEUWHUWIUULUUM
      QQQYJAEUWAFUUNXDUWNUWQUWQAUWAUWSUWNUWOUWAHZUWQTZUWOUWSHZUWQUWNUWOYEHZVVAU
      WOBOZBUWOUDJZUWOCUDJZTZUWOCOZUUOZIZUWQTZVVMVVOVVPIZVVKVVLUWNVWAVVMVVQTVWB
      UWNVWAVVMVVQVWAVVMYDUWNVVMVVAVVSUWQUUPYBUWNVWAVVQUWNVWATZVVQVVNVVRVWCUWPU
      WHOVVNVWCUWPUWHVWCUWPEUWHUWNVVTUWQUURZUWNEUWHYOVWAUWNUWHEUWNUWFGUWHUYGVVE
      YJZUWNUVRUWHEUDJZEUWIUDJZUWNUWKUVRVWFVWGIZUWEUWGUWKUWBUWCUVSUVTUUQUWNUWHY
      EHUWIYEHUWKVWHWBUWNUWHVWEYFUWNUWIUWNUWFGUWIUYGVVGYJYFUWHUWIEUUSXDVTZUUTUV
      AYKYLYMUWOBFYPYQVWCUWPUWIOVVRVWCUWPUWIVWCUWPEUWIVWDUWNEUWIYOVWAUWNEUWIUVP
      UVQUVRUVTUWMUVBUWNUVRVWFVWGVWIUVCUVDYKYLYMUWOCFYPYQVVMVVAVVSUWQUWNUVEUVFU
      VGYRVVMVVOVVPUVHUVIUWNVVJVVTUWQUVSUVTVVJVVTWBZUWMUVPUVQVWJUVRUVPVUSVUTVWJ
      UVQBYSZCYSZBCUWOUVJYTVAVBUVKUVSUVTVVLVWBWBZUWMUVPUVQVWMUVRUVPVUSVUTVWMUVQ
      VWKVWLBCUWOUVLYTVAVBUVMVVKUWQYDUWNVVJUWQUVNYBYRUVOYI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Refinements
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Fne $.
  $( Extend class definition to include the "finer than" relation. $)
  cfne $a class Fne $.

  ${
    $d x y z $.
    $( Define the fineness relation for covers.  (Contributed by Jeff Hankins,
       28-Sep-2009.) $)
    df-fne $a |- Fne = { <. x , y >. | ( U. x = U. y /\ A. z e. x z C_ U. ( y
    i^i ~P z ) ) } $.
  $}

  ${
    $d x y z $.
    $( Fineness is a relation.  (Contributed by Jeff Hankins, 28-Sep-2009.) $)
    fnerel $p |- Rel Fne $=
      ( vx vy vz cv cuni wceq cpw cin wss wral wa cfne df-fne relopabi ) ADZEBD
      ZEFCDZPQGHEICOJKABLABCMN $.
  $}

  ${
    $d r s x y z A $.  $d r s x y z B $.  $d x y z C $.  $d r s X $.
    $d r s Y $.
    isfne.1 $e |- X = U. A $.
    isfne.2 $e |- Y = U. B $.
    $( The predicate " ` B ` is finer than ` A ` ."  This property is, in a
       sense, the opposite of refinement, as refinement requires every element
       to be a subset of an element of the original and fineness requires that
       every element of the original have a subset in the finer cover
       containing every point.  I do not know of a literature reference for
       this.  (Contributed by Jeff Hankins, 28-Sep-2009.) $)
    isfne $p |- ( B e. C -> ( A Fne B <-> ( X = Y /\ A. x e. A x C_ U. ( B i^i
    ~P x ) ) ) ) $=
      ( vr vs wcel cfne wceq cv cin cuni wss wral wa cvv fnerel brrelexi anim1i
      wbr ancoms simpr 3eqtr3g uniexg adantr eqeltrd uniexb sylibr simpl syldan
      cpw adantrr unieq syl6eqr eqeq1d raleq anbi12d eqeq2d ineq1 unieqd sseq2d
      jca ralbidv df-fne brabg pm5.21nd ) CDKZBCLUDZEFMZANZCVNUOZOZPZQZABRZSZBT
      KZVKSZVLVKWBVLWAVKBCLUAUBUCUEVKVMWBVSVKVMBPZCPZMZWBVKVMSEFWCWDVKVMUFGHUGV
      KWESZWAVKWFWCTKWAWFWCWDTVKWEUFVKWDTKWECDUHUIUJBUKULVKWEUMVFUNUPINZPZJNZPZ
      MZVNWIVOOZPZQZAWGRZSEWJMZWNABRZSVTIJBCTDLWGBMZWKWPWOWQWRWHEWJWRWHWCEWGBUQ
      GURUSWNAWGBUTVAWICMZWPVMWQVSWSWJFEWSWJWDFWICUQHURVBWSWNVRABWSWMVQVNWSWLVP
      WICVOVCVDVEVGVAIJAVHVIVJ $.

    $( The predicate " ` B ` is finer than ` A ` " in terms of the topology
       generation function.  (Contributed by Mario Carneiro, 11-Sep-2015.) $)
    isfne4 $p |- ( A Fne B <-> ( X = Y /\ A C_ ( topGen ` B ) ) ) $=
      ( vx cfne wbr cvv wcel wceq ctg cfv wss wa fnerel cuni uniexb wral adantl
      brrelex2i simpl 3eqtr3g fvex sylib eqeltrrd sylibr cv cpw cin isfne dfss3
      ssex eltg ralbidv syl5bb anbi2d bitr4d pm5.21nii ) ABHIZBJKZCDLZABMNZOZPZ
      ABHQUBVFBRZJKVBVFARZVGJVFCDVHVGVCVEUCEFUDVFAJKZVHJKVEVIVCAVDBMUEUNUAASUFU
      GBSUHVBVAVCGUIZBVJUJUKROZGATZPVFGABJCDEFULVBVEVLVCVEVJVDKZGATVBVLGAVDUMVB
      VMVKGAVJBJUOUPUQURUSUT $.

    $( A condition for a topology to be finer than another.  (Contributed by
       Jeff Hankins, 28-Sep-2009.)  (Revised by Mario Carneiro,
       11-Sep-2015.) $)
    isfne4b $p |- ( B e. V -> ( A Fne B <-> ( X = Y /\
        ( topGen ` A ) C_ ( topGen ` B ) ) ) ) $=
      ( wcel wceq ctg cfv wss wa cfne wbr cvv wb cuni simpr 3eqtr3g simpl tgss3
      uniexg adantr eqeltrd uniexb sylibr syl2anc pm5.32da isfne4 syl6rbbr ) BC
      HZDEIZAJKBJKZLZMUMAUNLZMABNOULUMUOUPULUMMZAPHZULUOUPQUQARZPHURUQUSBRZPUQD
      EUSUTULUMSFGTULUTPHUMBCUCUDUEAUFUGULUMUAABPCUBUHUIABDEFGUJUK $.

    $( The predicate " ` B ` is finer than ` A ` ."  (Contributed by Jeff
       Hankins, 28-Sep-2009.)  (Proof shortened by Mario Carneiro,
       11-Sep-2015.) $)
    isfne2 $p |- ( B e. C -> ( A Fne B <-> ( X = Y /\ A. x e. A A. y e. x E. z
    e. B ( y e. z /\ z C_ x ) ) ) ) $=
      ( cfne wbr wceq ctg wss wa wcel cv wral syl5bb wrex isfne4 eltg2b ralbidv
      cfv dfss3 anbi2d ) DEKLGHMZDENUEZOZPEFQZUHBRCRZQULARZOPCEUABUMSZADSZPDEGH
      IJUBUKUJUOUHUJUMUIQZADSUKUOADUIUFUKUPUNADBCUMEFUCUDTUGT $.

    $( The predicate " ` B ` is finer than ` A ` ."  (Contributed by Jeff
       Hankins, 11-Oct-2009.)  (Proof shortened by Mario Carneiro,
       11-Sep-2015.) $)
    isfne3 $p |- ( B e. C -> ( A Fne B <-> ( X = Y /\ A. x e. A E. y ( y C_ B
    /\ x = U. y ) ) ) ) $=
      ( cfne wbr wceq ctg cfv wss wa wcel cv wral syl5bb wex isfne4 dfss3 eltg3
      cuni ralbidv anbi2d ) CDJKFGLZCDMNZOZPDEQZUHBRZDOARZULUELPBUAZACSZPCDFGHI
      UBUKUJUOUHUJUMUIQZACSUKUOACUIUCUKUPUNACBUMDEUDUFTUGT $.
  $}

  ${
    fnebas.1 $e |- X = U. A $.
    fnebas.2 $e |- Y = U. B $.
    $( A finer cover covers the same set as the original.  (Contributed by Jeff
       Hankins, 28-Sep-2009.) $)
    fnebas $p |- ( A Fne B -> X = Y ) $=
      ( cfne wbr wceq ctg cfv wss isfne4 simplbi ) ABGHCDIABJKLABCDEFMN $.
  $}

  $( A finer cover generates a topology finer than the original set.
     (Contributed by Mario Carneiro, 11-Sep-2015.) $)
  fnetg $p |- ( A Fne B -> A C_ ( topGen ` B ) ) $=
    ( cfne wbr cuni wceq ctg cfv wss eqid isfne4 simprbi ) ABCDAEZBEZFABGHIABMN
    MJNJKL $.

  ${
    $d x A $.  $d x B $.  $d x P $.  $d x S $.
    $( If ` B ` is finer than ` A ` and ` S ` is an element of ` A ` , every
       point in ` S ` is an element of a subset of ` S ` which is in ` B ` .
       (Contributed by Jeff Hankins, 28-Sep-2009.) $)
    fnessex $p |- ( ( A Fne B /\ S e. A /\ P e. S ) -> E. x e. B
        ( P e. x /\ x C_ S ) ) $=
      ( cfne wbr wcel ctg cfv cv wss wa wrex fnetg sselda tg2 stoic3 ) BCFGZEBH
      ECIJZHDEHDAKZHUAELMACNSBTEBCOPAECDQR $.
  $}

  ${
    $d x A $.  $d x B $.  $d x S $.
    $( If ` B ` is finer than ` A ` , every element of ` A ` is a union of
       elements of ` B ` .  (Contributed by Jeff Hankins, 11-Oct-2009.) $)
    fneuni $p |- ( ( A Fne B /\ S e. A ) -> E. x ( x C_ B /\ S = U. x ) ) $=
      ( cfne wbr wcel wa ctg cfv cv wss cuni wceq wex fnetg sselda cdm wb syl
      elfvdm eltg3 ibi ) BCEFZDBGHDCIJZGZAKZCLDUGMNHAOZUDBUEDBCPQUFUHUFCIRZGUFU
      HSDCIUAADCUIUBTUCT $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z P $.
    $( If a cover is finer than another, every point can be approached more
       closely by intersections.  (Contributed by Jeff Hankins,
       11-Oct-2009.) $)
    fneint $p |- ( A Fne B -> |^| { x e. B | P e. x }
    C_ |^| { x e. A | P e. x } ) $=
      ( vy vz cfne wbr cv wcel crab cint wral wa eleq2 elrab wrex fnessex 3expb
      wss intminss sstr sylan expl rexlimiv syl ex syl5bi ralrimiv ssint sylibr
      ) BCGHZDAIZJZACKLZEIZTZEUNABKZMUOURLTULUQEURUPURJUPBJZDUPJZNZULUQUNUTAUPB
      UMUPDOPULVAUQULVANDFIZJZVBUPTZNZFCQZUQULUSUTVFFBCDUPRSVEUQFCVBCJZVCVDUQVG
      VCNUOVBTVDUQUNVCAVBCUMVBDOUAUOVBUPUBUCUDUEUFUGUHUIEUOURUJUK $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    fness.1 $e |- X = U. A $.
    fness.2 $e |- Y = U. B $.
    $( A cover is finer than its subcovers.  (Contributed by Jeff Hankins,
       11-Oct-2009.) $)
    fness $p |- ( ( B e. C /\ A C_ B /\ X = Y ) -> A Fne B ) $=
      ( vy vz vx wcel wss wceq w3a cfne wel cv wa wral simp3 wrex ssel2 3adant3
      wbr ssid jctir elequ2 anbi12d rspcev syl2anc 3expib ralrimivv 3ad2ant2 wb
      sseq1 isfne2 3ad2ant1 mpbir2and ) BCKZABLZDEMZNABOUDZVAHIPZIQZJQZLZRZIBUA
      ZHVESJASZUSUTVATUTUSVIVAUTVHJHAVEUTVEAKZHJPZVHUTVJVKNZVEBKZVKVEVELZRZVHUT
      VJVMVKABVEUBUCVLVKVNUTVJVKTVEUEUFVGVOIVEBVDVEMVCVKVFVNIJHUGVDVEVEUOUHUIUJ
      UKULUMUSUTVBVAVIRUNVAJHIABCDEFGUPUQUR $.
  $}

  ${
    $d x y z A $.  $d x y z V $.
    $( Reflexivity of the fineness relation.  (Contributed by Jeff Hankins,
       12-Oct-2009.) $)
    fneref $p |- ( A e. V -> A Fne A ) $=
      ( vy vz vx wcel cfne wbr cuni wceq wel cv wss wrex wral eqid elequ2 sseq1
      wa ssid anbi12d rspcev mpanr2 rgen2 pm3.2i isfne2 mpbiri ) ABFAAGHAIZUHJZ
      CDKZDLZELZMZSZDANZCULOEAOZSUIUPUHPZUOECAULULAFCEKZULULMZUOULTUNURUSSDULAU
      KULJUJURUMUSDECQUKULULRUAUBUCUDUEECDAABUHUHUQUQUFUG $.
  $}

  $( Transitivity of the fineness relation.  (Contributed by Jeff Hankins,
     5-Oct-2009.)  (Proof shortened by Mario Carneiro, 11-Sep-2015.) $)
  fnetr $p |- ( ( A Fne B /\ B Fne C ) -> A Fne C ) $=
    ( cfne wbr wa cuni wceq ctg cfv wss eqid fnebas cvv wcel brrelex2i simplbda
    fnerel isfne4b mpancom sylan9eq sylan9ss wb adantl syl mpbir2and ) ABDEZBCD
    EZFZACDEZAGZCGZHZAIJZCIJZKZUGUHUKBGZULABUKUQUKLZUQLZMBCUQULUSULLZMUAUGUHUNB
    IJZUOBNOZUGUNVAKZABDRPVBUGUKUQHVCABNUKUQURUSSQTCNOZUHVAUOKZBCDRPZVDUHUQULHV
    EBCNUQULUSUTSQTUBUIVDUJUMUPFUCUHVDUGVFUDACNUKULURUTSUEUF $.

  ${
    fneval.1 $e |- .~ = ( Fne i^i `' Fne ) $.
    $( Two covers are finer than each other iff they are both bases for the
       same topology.  (Contributed by Mario Carneiro, 11-Sep-2015.) $)
    fneval $p |- ( ( A e. V /\ B e. W ) ->
      ( A .~ B <-> ( topGen ` A ) = ( topGen ` B ) ) ) $=
      ( wbr cfne wa wcel ctg cfv wceq anbi2i bitri cuni wss eqid isfne4b unitg
      ccnv breqi brin fnerel relbrcnv eqcom anbi1i syl6bb bi2anan9r eqss anandi
      cin syl6bbr unieq eqeqan12d syl5ib pm4.71rd bitr4d syl5bb ) ABCGZABHGZBAH
      GZIZADJZBEJZIZAKLZBKLZMZUTABHHUAZULZGZVCABCVKFUBVLVAABVJGZIVCABHVJUCVMVBV
      AABHUDUENOOVFVCAPZBPZMZVIIZVIVFVCVPVGVHQZIZVPVHVGQZIZIZVQVEVAVSVDVBWAABEV
      NVOVNRZVORZSVDVBVOVNMZVTIWABADVOVNWDWCSWEVPVTVOVNUFUGUHUIVQVPVRVTIZIWBVIW
      FVPVGVHUJNVPVRVTUKOUMVFVIVPVIVGPZVHPZMVFVPVGVHUNVDVEWGVNWHVOADTBETUOUPUQU
      RUS $.

    $d x y .~ $.
    $( Fineness intersected with its converse is an equivalence relation.
       (Contributed by Jeff Hankins, 6-Oct-2009.)  (Revised by Mario Carneiro,
       11-Sep-2015.) $)
    fneer $p |- .~ Er _V $=
      ( vx vy cv ctg cfv fveq2 wbr copab wceq wrel cfne wss ccnv cin inss1 wcel
      cvv vex eqsstri fnerel relss mp2 dfrel4v mpbi wb mp2an opabbii eqtri eqer
      fneval ) CDCEZFGZDEZFGZAUMUOFHAUMUOAIZCDJZUNUPKZCDJALZAURKAMNMLUTAMMOZPMB
      MVAQUAUBAMUCUDCDAUEUFUQUSCDUMSRUOSRUQUSUGCTDTUMUOASSBULUHUIUJUK $.
  $}

  ${
    topfne.1 $e |- X = U. J $.
    topfne.2 $e |- Y = U. K $.
    $( Fineness for covers corresponds precisely with fineness for topologies.
       (Contributed by Jeff Hankins, 29-Sep-2009.) $)
    topfne $p |- ( ( K e. Top /\ X = Y ) -> ( J C_ K <-> J Fne K ) ) $=
      ( ctop wcel wss ctg cfv wceq cfne wbr tgtop sseq2d bicomd isfne4 sylan9bb
      baibr ) BGHZABIZABJKZIZCDLZABMNZUAUDUBUAUCBABOPQUFUEUDABCDEFRTS $.
  $}

  ${
    topfneec.1 $e |- .~ = ( Fne i^i `' Fne ) $.
    $( A cover is equivalent to a topology iff it is a base for that topology.
       (Contributed by Jeff Hankins, 8-Oct-2009.)  (Proof shortened by Mario
       Carneiro, 11-Sep-2015.) $)
    topfneec $p |- ( J e. Top -> ( A e. [ J ] .~ <-> ( topGen ` A ) = J ) ) $=
      ( cec wcel wbr ctop ctg cfv wceq wrel wb cvv wer fneer ax-mp wa ctb ex wi
      errel relelec brrelex2i a1i eleq1 biimparc tgclb sylibr elex fneval tgtop
      syl eqeq1d eqcom syl6bb adantr bitrd pm5.21ndd syl5bb ) ACBEFZCABGZCHFZAI
      JZCKZBLZVAVBMNBOVFBDPNBUBQZACBUCQVCANFZVBVEVBVHUAVCCABVGUDUEVCVEVHVCVERZA
      SFZVHVIVDHFZVJVEVKVCVDCHUFUGAUHUIASUJUMTVCVHVBVEMVCVHRVBCIJZVDKZVECABHNDU
      KVCVMVEMVHVCVMCVDKVEVCVLCVDCULUNCVDUOUPUQURTUSUT $.
  $}

  ${
    topfneec2.1 $e |- .~ = ( Fne i^i `' Fne ) $.
    $( A topology is precisely identified with its equivalence class.
       (Contributed by Jeff Hankins, 12-Oct-2009.) $)
    topfneec2 $p |- ( ( J e. Top /\ K e. Top ) ->
      ( [ J ] .~ = [ K ] .~ <-> J = K ) ) $=
      ( ctop wcel wa wbr ctg cfv wceq cec fneval cvv wer fneer a1i adantr tgtop
      elex erth eqeqan12d 3bitr3d ) BEFZCEFZGZBCAHBIJZCIJZKBALCALKBCKBCAEEDMUFB
      CANNAOUFADPQUDBNFUEBETRUAUDUEUGBUHCBSCSUBUC $.
  $}

  ${
    $d c t w x y z A $.  $d c t w x y z B $.  $d c t w x y z X $.
    $d c t w x y z Y $.
    fnessref.1 $e |- X = U. A $.
    fnessref.2 $e |- Y = U. B $.
    $( A cover is finer iff it has a subcover which is both finer and a
       refinement.  (Contributed by Jeff Hankins, 18-Jan-2010.)  (Revised by
       Thierry Arnoux, 3-Feb-2020.) $)
    fnessref $p |- ( X = Y ->
      ( A Fne B <-> E. c ( c C_ B /\ ( A Fne c /\ c Ref A ) ) ) ) $=
      ( vx vy vw vz wceq cfne wbr wss wa wrex cvv wcel wi vt cv cref wex fnerel
      crab brrelex2i adantl rabexg syl ssrab2 a1i cuni wral eluni bitri fnessex
      eleq2i 3expia adantll sseq2 rspcev anim2d reximdv syld com23 impd exlimdv
      ex syl5bi elunirab syl6ibr ssrdv unissi simpl syl5sseq eqssd 3expb expcom
      syl6req ad2antll com12 ad2antrl jcad sseq1 rexbidv elrab simpr ralrimivva
      reximdv2 mpd wb eqid isfne2 mpbir2and cbvrexv biimpi ralrimiv isref jca32
      3syl breq2 anbi12d spcegv sylc simprrl fnebas eqtr3d syl6eq vuniex uniexb
      breq1 syl6eqelr sylibr simprl fness syl3anc fnetr syl2anc impbid ) CDLZAB
      MNZEUBZBOZAYCMNZYCAUCNZPZPZEUDZYAYBYIYAYBPZHUBZIUBZOZIAQZHBUFZRSZYOBOZAYO
      MNZYOAUCNZPZPZYIYJBRSZYPYBUUBYAABMUEUGUHZYNHBRUIZUJYJYQYRYSYQYJYNHBUKZULY
      JYRCYOUMZLZUAUBZJUBZSZUUIKUBZOZPZJYOQZUAUUKUNKAUNZYJCUUFYJUACUUFYJUUHCSZU
      UHYKSZYNPZHBQZUUHUUFSUUPUUHUUKSZUUKASZPZKUDZYJUUSUUPUUHAUMZSUVCCUVDUUHFUR
      KUUHAUOUPYJUVBUUSKYJUUTUVAUUSYJUVAUUTUUSYJUVAUUTUUSTYJUVAPZUUTUUQYKUUKOZP
      ZHBQZUUSYBUVAUUTUVHTYAYBUVAUUTUVHHABUUHUUKUQUSUTUVEUVGUURHBUVEUVFYNUUQUVA
      UVFYNTYJUVAUVFYNYMUVFIUUKAYLUUKYKVAVBVIUHVCVDVEVIVFVGVHVJYNHUUHBVKVLVMYJB
      UMZUUFCYOBUUEVNYJCDUVIYAYBVOGVTVPVQZYJUUNKUAAUUKYJUVAUUTPZPZUUMJBQZUUNYBU
      VKUVMYAYBUVAUUTUVMJABUUHUUKUQVRUTUVLUUMUUMJBYOUVLUUIBSZUUMPZUUIYOSZUUMUVL
      UVOUVNUUIYLOZIAQZPUVPUVLUVOUVNUVRUVOUVNTUVLUVNUUMVOULUVAUVOUVRTYJUUTUVOUV
      AUVRUULUVAUVRTUVNUUJUVAUULUVRUVQUULIUUKAYLUUKUUIVAVBVSWAWBWCWDYNUVRHUUIBY
      KUUILYMUVQIAYKUUIYLWEWFWGVLUVOUUMTUVLUVNUUMWHULWDWJWKWIYJUUBYPYRUUGUUOPWL
      UUCUUDKUAJAYORCUUFFUUFWMZWNXAWOYJYSUUGUUKUUIOZJAQZKYOUNZUVJYJUWAKYOUUKYOS
      UUKBSZUUKYLOZIAQZPZYJUWAYNUWEHUUKBYKUUKLYMUWDIAYKUUKYLWEWFWGUWFUWATYJUWEU
      WAUWCUWEUWAUWDUVTIJAYLUUIUUKVAWPWQUHULVJWRYJUUBYPYSUUGUWBPWLUUCUUDKJYOARU
      UFCUVSFWSXAWOWTYHUUAEYORYCYOLZYDYQYGYTYCYOBWEUWGYEYRYFYSYCYOAMXBYCYOAUCXL
      XCXCXDXEVIYAYHYBEYAYHYBYAYHPZYEYCBMNZYBYAYDYEYFXFZUWHUUBYDYCUMZDLUWIUWHUV
      IRSUUBUWHUVIUWKRUWHUWKDUVIUWHCUWKDUWHYECUWKLUWJAYCCUWKFUWKWMZXGUJYAYHVOXH
      ZGXIEXJXMBXKXNYAYDYGXOUWMYCBRUWKDUWLGXPXQAYCBXRXSVIVHXT $.
  $}

  ${
    $d c x y A $.  $d c x y B $.  $d c x y X $.  $d c x y Y $.
    refssfne.1 $e |- X = U. A $.
    refssfne.2 $e |- Y = U. B $.
    $( A cover is a refinement iff it is a subcover of something which is both
       finer and a refinement.  (Contributed by Jeff Hankins, 18-Jan-2010.)
       (Revised by Thierry Arnoux, 3-Feb-2020.) $)
    refssfne $p |- ( X = Y -> ( B Ref A <->
      E. c ( B C_ c /\ ( A Fne c /\ c Ref A ) ) ) ) $=
      ( vx vy wceq cref wbr cv wss cfne wa cvv wcel adantl cuni refrel brrelexi
      wex cun brrelex2i unexg syl2anc ssun2 ssun1 eqimss2 adantr ssequn2 eqcomd
      a1i sylib uneq12i uniun eqtr4i fness syl3anc wrex wral wo elun ssid sseq2
      wi rspcev mpan2 refssex ex jaod syl5bi ralrimiv isref syl mpbir2and jca32
      wb breq2 breq1 anbi12d spcegv sylc ssex ad2antrl simprl simpl eqid refbas
      vex ad2antll eqtr3d ssref simprrr reftr exlimdv impbid ) CDJZBAKLZBEMZNZA
      XAOLZXAAKLZPZPZEUCZWSWTXGWSWTPZABUDZQRZBXINZAXIOLZXIAKLZPZPZXGXHAQRZBQRZX
      JWTXPWSBAKUAUESWTXQWSBAKUAUBSABQQUFUGZXHXKXLXMXKXHBAUHUNXHXJAXINZCCDUDZJZ
      XLXRXSXHABUIUNXHXTCXHDCNZXTCJWSYBWTDCUJUKDCULUOUMZAXIQCXTFXTATZBTZUDXITCY
      DDYEFGUPABUQURZUSUTXHXMYAHMZIMZNZIAVAZHXIVBZYCXHYJHXIYGXIRYGARZYGBRZVCXHY
      JYGABVDXHYLYJYMYLYJVGXHYLYGYGNZYJYGVEYIYNIYGAYHYGYGVFVHVIUNWTYMYJVGWSWTYM
      YJIBAYGVJVKSVLVMVNXHXJXMYAYKPVSXRHIXIAQXTCYFFVOVPVQVRXFXOEXIQXAXIJZXBXKXE
      XNXAXIBVFYOXCXLXDXMXAXIAOVTXAXIAKWAWBWBWCWDVKWSXFWTEWSXFWTWSXFPZBXAKLZXDW
      TYPXQXBDXATZJYQXBXQWSXEBXAEWKWEWFWSXBXEWGYPCDYRWSXFWHXECYRJZWSXBXDYSXCXAA
      YRCYRWIZFWJSWLWMBXAQDYRGYTWNUTWSXBXCXDWOBXAAWPUGVKWQWR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Neighborhood bases determine topologies
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d f k n t v y z G $.  $d j n s u v x y z J $.  $d f o s t u v w x y z P $.
    $d f k o s t u v w x y z N $.  $d f k o t u v x y S $.  $d f k n x y z U $.
    $d a b f g j k n o s t u v w x y z F $.  $d f j k n o s t v w x y z ph $.
    $d a b f g j k n o s t u v w x y z X $.
    neibastop1.1 $e |- ( ph -> X e. V ) $.
    neibastop1.2 $e |- ( ph -> F : X --> ( ~P ~P X \ { (/) } ) ) $.
    neibastop1.3 $e |- ( ( ph /\ ( x e. X /\ v e. ( F ` x ) /\
      w e. ( F ` x ) ) ) -> ( ( F ` x ) i^i ~P ( v i^i w ) ) =/= (/) ) $.
    neibastop1.4 $e |- J = { o e. ~P X |
      A. x e. o ( ( F ` x ) i^i ~P o ) =/= (/) } $.
    $( A collection of neighborhood bases determines a topology.  Part of
       Theorem 4.5 of Stephen Willard's _General Topology_.  (Contributed by
       Jeff Hankins, 8-Sep-2009.)  (Proof shortened by Mario Carneiro,
       11-Sep-2015.) $)
    neibastop1 $p |- ( ph -> J e. ( TopOn ` X ) ) $=
      ( vy wcel wss cin wral wa c0 vz ctop cuni wceq ctopon cfv cv wi wal simpr
      cpw wne crab ssrab2 eqsstri syl6ss sspwuni vuniex elpw sylibr wrex eluni2
      sylib elssuni ad2antrl sspwb sslin syl sselda adantrr weq pweq raleqbi1dv
      ineq2d neeq1d elrab2 simprbi simprr sylc ssn0 syl2anc rexlimdvaa ralrimiv
      rsp syl5bi sylanbrc ex alrimiv anbi12i an4 bitri inss1 elpwi syl5ss inex1
      vex ssralv ax-mp inss2 anim12i r19.26 n0 eeanv simprl sseldi elpwid ss2in
      simplll ad2antrr simplr sseldd syl13anc exlimdvv syl5bir ralimdva sylan2b
      wex syl5 impr ralrimivva cvv mpbi a1i ssexd uniexb istopg mpbir2and pwidg
      wb csn cdif ffvelrnda 3syl df-ss eldifsni eqnetrd ralrimiva eqssd istopon
      eldifi ) AGUBOZIGUCZUDGIUEUFOAUUANUGZGPZUUCUCZGOZUHZNUIZUUCUAUGZQZGOZUAGR
      NGRZAUUGNAUUDUUFAUUDSZUUEIUKZOZBUGZFUFZUUEUKZQZTULZBUUERZUUFUUMUUEIPZUUOU
      UMUUCUUNPUVBUUMUUCGUUNAUUDUJZGUUQEUGZUKZQZTULZBUVDRZEUUNUMUUNMUVHEUUNUNUO
      ZUPUUCIUQVCUUEINURUSUTUUMUUTBUUEUUPUUEOUUPUUIOZUAUUCVAUUMUUTUAUUPUUCVBUUM
      UVJUUTUAUUCUUMUUIUUCOZUVJSSZUUQUUIUKZQZUUSPZUVNTULZUUTUVLUVMUURPZUVOUVLUU
      IUUEPZUVQUVKUVRUUMUVJUUIUUCVDVEUUIUUEVFVCUVMUURUUQVGVHUVLUVPBUUIRZUVJUVPU
      VLUUIGOZUVSUUMUVKUVTUVJUUMUUCGUUIUVCVIVJUVTUUIUUNOZUVSUVHUVSEUUIUUNGUVGUV
      PBUVDUUIEUAVKZUVFUVNTUWBUVEUVMUUQUVDUUIVLVNVOVMMVPZVQVHUUMUVKUVJVRUVPBUUI
      WDVSUVNUUSVTWAWBWEWCUVHUVAEUUEUUNGUVGUUTBUVDUUEUVDUUEUDZUVFUUSTUWDUVEUURU
      UQUVDUUEVLVNVOVMMVPWFWGWHAUUKNUAGGUUCGOZUVTSZAUUCUUNOZUWASZUUQUUCUKZQZTUL
      ZBUUCRZUVSSZSZUUKUWFUWGUWLSZUWAUVSSZSUWNUWEUWOUVTUWPUVHUWLEUUCUUNGUVGUWKB
      UVDUUCENVKZUVFUWJTUWQUVEUWIUUQUVDUUCVLVNVOVMMVPUWCWIUWGUWLUWAUVSWJWKAUWNS
      ZUUJUUNOZUUQUUJUKZQZTULZBUUJRZUUKUWRUUJIPZUWSAUWHUXDUWMUWGUXDAUWAUWGUUJUU
      CIUUCUUIWLZUUCIWMWNVEZVJUUJIUUCUUINWPWOUSUTAUWHUWMUXCUWMUWKUVPSZBUUJRZAUW
      HSZUXCUWMUWKBUUJRZUVPBUUJRZSUXHUWLUXJUVSUXKUUJUUCPUWLUXJUHUXEUWKBUUJUUCWQ
      WRUUJUUIPUVSUXKUHUUCUUIWSUVPBUUJUUIWQWRWTUWKUVPBUUJXAUTUXIUXGUXBBUUJUXGDU
      GZUWJOZDXQZCUGZUVNOZCXQZSZUXIUUPUUJOZSZUXBUWKUXNUVPUXQDUWJXBCUVNXBWIUXRUX
      MUXPSZCXQDXQUXTUXBUXMUXPDCXCUXTUYAUXBDCUXTUYAUXBUXTUYASZUUQUXLUXOQZUKZQZU
      XAPZUYETULZUXBUYBUYDUWTPZUYFUYBUYCUUJPZUYHUYBUXLUUCPUXOUUIPUYIUYBUXLUUCUY
      BUWJUWIUXLUUQUWIWSUXTUXMUXPXDZXEXFUYBUXOUUIUYBUVNUVMUXOUUQUVMWSUXTUXMUXPV
      RZXEXFUXLUUCUXOUUIXGWAUYCUUJVFVCUYDUWTUUQVGVHUYBAUUPIOZUXLUUQOUXOUUQOUYGA
      UWHUXSUYAXHUYBUUJIUUPUXIUXDUXSUYAUXFXIUXIUXSUYAXJXKUYBUWJUUQUXLUUQUWIWLUY
      JXEUYBUVNUUQUXOUUQUVMWLUYKXELXLUYEUXAVTWAWGXMXNWEXOXRXSUVHUXCEUUJUUNGUVGU
      XBBUVDUUJUVDUUJUDZUVFUXATUYMUVEUWTUUQUVDUUJVLVNVOVMMVPWFXPXTAGYAOZUUAUUHU
      ULSYIAUUBYAOUYNAUUBIHJUUBIPZAGUUNPUYOUVIGIUQYBYCZYDGYEUTNUAYAGYFVHYGAIUUB
      AIGOZIUUBPAIUUNOZUUQUUNQZTULZBIRZUYQAIHOUYRJIHYHVHAUYTBIAUYLSZUYSUUQTVUBU
      UQUUNPZUYSUUQUDVUBUUQUUNUKZTYJZYKZOZUUQVUDOVUCAIVUFUUPFKYLZUUQVUDVUEYTUUQ
      UUNWMYMUUQUUNYNVCVUBVUGUUQTULVUHUUQVUDTYOVHYPYQUVHVUAEIUUNGUVGUYTBUVDIUVD
      IUDZUVFUYSTVUIUVEUUNUUQUVDIVLVNVOVMMVPWFIGVDVHUYPYRIGYSWF $.

    neibastop1.5 $e |- ( ( ph /\ ( x e. X /\ v e. ( F ` x ) ) ) -> x e. v ) $.
    neibastop1.6 $e |- ( ( ph /\ ( x e. X /\ v e. ( F ` x ) ) ) ->
      E. t e. ( F ` x ) A. y e. t ( ( F ` y ) i^i ~P v ) =/= (/) ) $.
    ${
      neibastop2.p $e |- ( ph -> P e. X ) $.
      neibastop2.n $e |- ( ph -> N C_ X ) $.
      neibastop2.f $e |- ( ph -> U e. ( F ` P ) ) $.
      neibastop2.u $e |- ( ph -> U C_ N ) $.
      neibastop2.g $e |- G = ( rec ( ( a e. _V |-> U_ z e. a U_ x e. X
        ( ( F ` x ) i^i ~P z ) ) , { U } ) |` _om ) $.
      neibastop2.s $e |- S = { y e. X |
        E. f e. U. ran G ( ( F ` y ) i^i ~P f ) =/= (/) } $.
      $( Lemma for ~ neibastop2 .  (Contributed by Jeff Hankins,
         12-Sep-2009.) $)
      neibastop2lem $p |- ( ph -> E. u e. J ( P e. u /\ u C_ N ) ) $=
        ( vk vn wcel wss cv wa wrex cpw cfv cin c0 wne wral cuni ssrab2 eqsstri
        crn crab wb elpw2g syl mpbiri weq fveq2 ineq1d neeq1d rexbidv elrab2 wi
        com wfn cvv ciun cmpt csn crdg frfnom fneq1i mpbir fnunirn ax-mp wex n0
        inss1 sseli anassrs sylan2 simprl wel fvssunirn wf frn sspwuni ad2antrr
        cres sylib syl5ss sselda elpwid adantrr eliun pweq ineq2d eleq2d rspcev
        syl2anc sylibr wceq sseq1d adantr adantl ralrimiva iuneq1 expr ralrimiv
        iunss syl12anc fnfvelrn elunii sylanbrc inelcm exlimdv syl5bi ad3antrrr
        impr rexlimdv eleq2 sseldd adantrl cdif difss2d simprlr ad2ant2l syl5bb
        csuc rspe simpll simprll fveq1i snex fr0g eqtri pwidg snssd pwexg inss2
        syl6eq elpwi sspwb ralrimivw ssralv mpan9 ssexd frsucmpt2 expcom finds2
        eqsstrd fvex syl6ibr com12 ffnfv mpbiran eleqtrrd peano2 sylancr simprr
        elpw rabeq2i ralimdva dfss3 selpw rexlimddv rexlimdvaa raleqbi1dv snidg
        expimpd peano1 mp2an eqeltrri sylancl eluni2 rexrn ffvelrnda sstrd elin
        simprrr simpllr simprrl elequ1 imbi12d rspcv syl3c exp32 3impia rabssdv
        rexlimdva syl5eqss sseq1 anbi12d ) AJPUOZIJUOZJQUPZIGUQZUOZUXOQUPZURZGP
        USAJSUTZUOZBUQZNVAZJUTZVBZVCVDZBJVEZUXLAUXTJSUPZJCUQZNVAZLUQZUTZVBZVCVD
        ZLOVIZVFZUSZCSVJZSULUYPCSVGVHASRUOUXTUYGVKUAJSRVLVMVNAUYEBJUYAJUOUYASUO
        ZUYBUYKVBZVCVDZLUYOUSZURAUYEUYPVUACUYASJCBVOZUYMUYTLUYOVUBUYLUYSVCVUBUY
        IUYBUYKUYHUYANVPVQVRVSULVTAUYRVUAUYEAUYRURZUYTUYELUYOUYJUYOUOZUYJUMUQZO
        VAZUOZUMWBUSZVUCUYTUYEWAZOWBWCZVUDVUHVKVUJTWDDTUQZBSUYBDUQZUTZVBZWEZWEZ
        WFZKWGZWHWBXGZWBWCVURVUQWIWBOVUSUKWJWKZUMUYJOWBWLWMVUCVUGVUIUMWBUYTFUQZ
        UYSUOZFWNVUCVUEWBUOZVUGURZURZUYEFUYSWOVVEVVBUYEFVUCVVDVVBUYEVUCVVDVVBUR
        ZURZUYIVVAUTZVBZVCVDZCHUQZVEZUYEHUYBVUCVVBVVLHUYBUSZVVDVVBVUCVVAUYBUOZV
        VMUYSUYBVVAUYBUYKWPWQAUYRVVNVVMUFWRWSUUAVVGVVKUYBUOZVVLURURZVVOVVKUYCUO
        ZUYEVVGVVOVVLWTVVPVVKJUPZVVQVVPUYHJUOZCVVKVEZVVRVVGVVOVVLVVTVVGVVOURZVV
        JVVSCVVKVWACHXAZVVJVVSVWAVWBVVJURZURZUYHSUOZUYPVVSVWAVWBVWEVVJVWAVVKSUY
        HVWAVVKSVVGUYBUXSVVKVVGUYBNVIZVFZUXSNUYAXBAVWGUXSUPZUYRVVFAVWFUXSUTZUPV
        WHAVWFVWIVCWGZASVWIVWJUUBZNXCVWFVWKUPUBSVWKNXDVMUUCVWFUXSXEXHXFXIXJXKXJ
        XLVWDVVAUYOUOZVVJUYPVVGVWLVVOVWCVVGVVAVUEUUGZOVAZUOVWNUYNUOZVWLVVGVVADV
        UFVUOWEZVWNVVGVVAVUOUOZDVUFUSZVVAVWPUOVVGVUGVVBBSUSZVWRVUCVVCVUGVVBUUDU
        YRVVBVWSAVVDVVBBSUUHUUEVWQVWSDUYJVUFVWQVVAVUNUOZBSUSDLVOZVWSBVVASVUNXMV
        XAVWTVVBBSVXAVUNUYSVVAVXAVUMUYKUYBVULUYJXNXOXPVSUUFXQXRDVVAVUFVUOXMXSVV
        GAVVCVUFKUTZUPZVWNVWPXTZAUYRVVFUUIVUCVVCVUGVVBUUJZVVGVUFUYOVXBOVUEXBAUY
        OVXBUPZUYRVVFAUYNVXBUTZUPZVXFAWBVXGOXCZVXHAUNUQZOVAZVXGUOZUNWBVEZVXIAVX
        LUNWBVXJWBUOZAVXLVXNAVXKVXBUPZVXLVXOVURVXBUPVXCVWNVXBUPZAUNUMVXJVCXTZVX
        KVURVXBVXQVXKVCOVAZVURVXJVCOVPVXRVCVUSVAZVURVCOVUSUKUUKVURWDUOVXSVURXTK
        UULVURWDVUQUUMWMUUNZUUSYAUNUMVOVXKVUFVXBVXJVUEOVPYAVXJVWMXTVXKVWNVXBVXJ
        VWMOVPYAAKVXBAKINVAZUOZKVXBUOZUIKVYAUUOVMZUUPAVVCVXCVXPWAAVVCVXCVXPAVVC
        VXCURZURZVWNVWPVXBVYFVVCVWPWDUOVXDAVVCVXCWTVYFVWPVXBWDVYFVYBVXBWDUOAVYB
        VYEUIYBKVYAUUQVMVYFVUOVXBUPZDVUFVEZVWPVXBUPAVYGDVXBVEZVYEVYHAVYGDVXBAVU
        LVXBUOZURZVUNVXBUPZBSVEVYGVYKVYLBSVYKVUNVUMVXBUYBVUMUURVYKVULKUPZVUMVXB
        UPVYJVYMAVULKUUTYCVULKUVAXHXIUVBBSVUNVXBYHXSYDVXCVYIVYHWAVVCVYGDVUFVXBU
        VCYCUVDDVUFVUOVXBYHXSZUVETCVURVUEVUPVWPDUYHVUOWEOWDUKDUYHVUKVUOYEDUYHVU
        FVUOYEUVFXRZVYNUVIYFUVGUVHVXKVXBVXJOUVJUVSUVKUVLYGVXIVUJVXMVUTUNWBVXGOU
        VMUVNXSZWBVXGOXDVMUYNVXBXEXHXFXIVYOYIUVOVVGVUJVWMWBUOZVWOVUTVVGVVCVYQVX
        EVUEUVPVMWBVWMOYJUVQVVAVWNUYNYKXRXFVWAVWBVVJUVRUYMVVJLVVAUYOLFVOZUYLVVI
        VCVYRUYKVVHUYIUYJVVAXNXOVRXQXRUYPCJSULUVTYLYFUWAYQCVVKJUWBXSHJUWCXSVVKU
        YBUYCYMXRUWDYFYNYOUWEYOYRUWHYOYGUYBMUQZUTZVBZVCVDZBVYSVEUYFMJUXSPWUBUYE
        BVYSJVYSJXTZWUAUYDVCWUCVYTUYCUYBVYSJXNXOVRUWFUDVTYLAISUOVYAUYKVBZVCVDZL
        UYOUSZUXMUGAKUYOUOZVYAVXBVBZVCVDZWUFAKVURUOZVURUYNUOWUGAVYBWUJUIKVYAUWG
        VMVXRVURUYNVXTVUJVCWBUOVXRUYNUOVUTUWIWBVCOYJUWJUWKKVURUYNYKUWLAVYBVYCWU
        IUIVYDKVYAVXBYMXRWUEWUILKUYOUYJKXTZWUDWUHVCWUKUYKVXBVYAUYJKXNXOVRXQXRUY
        PWUFCISJUYHIXTZUYMWUELUYOWULUYLWUDVCWULUYIVYAUYKUYHINVPVQVRVSULVTYLAJUY
        QQULAUYPCSQAVWEUYPUYHQUOZAVWEURZUYMWUMLUYOVUDLDXAZDUYNUSZWUNUYMWUMWAZDU
        YJUYNUWMWUPVUHWUNWUQVUJWUPVUHVKVUTWUOVUGDUMWBOVULVUFUYJYSUWNWMWUNVUGWUQ
        UMWBWUNVVCURZVUGUYMWUMWURVUGUYMURZURZUYJQUYHWUTUYJKQWUTUYJKWURVUGUYJVXB
        UOUYMWURVUFVXBUYJWURVUFVXBWUNWBVXGVUEOAVXIVWEVYPYBUWOXKXJXLXKAKQUPVWEVV
        CWUSUJYPUWPWURVUGUYMCLXAZUYMVVAUYLUOZFWNWURVUGURZWVAFUYLWOWVCWVBWVAFWVB
        VVAUYIUOZVVAUYKUOZURZWVCWVAVVAUYIUYKUWQWURVUGWVFWVAWURVUGWVFURZURZVVAUY
        JUYHWVHVVAUYJWURVUGWVDWVEUWRXKWVHVWEVVNBFXAZWAZBSVEZWVDCFXAZAVWEVVCWVGU
        WSAWVKVWEVVCWVGAWVJBSAUYRVVNWVIUEYFYDYPWURVUGWVDWVEUWTWVJWVDWVLWABUYHSB
        CVOZVVNWVDWVIWVLWVMUYBUYIVVAUYAUYHNVPXPBCFUXAUXBUXCUXDYTYFYOYNYOYQYTUXE
        UXHYOYOYRUXFUXGUXIUXRUXMUXNURGJPUXOJXTUXPUXMUXQUXNUXOJIYSUXOJQUXJUXKXQY
        I $.
    $}

    $( In the topology generated by a neighborhood base, a set is a
       neighborhood of a point iff it contains a subset in the base.
       (Contributed by Jeff Hankins, 9-Sep-2009.)  (Proof shortened by Mario
       Carneiro, 11-Sep-2015.) $)
    neibastop2 $p |- ( ( ph /\ P e. X ) -> ( N e. ( ( nei ` J ) ` { P } ) <->
        ( N C_ X /\ ( ( F ` P ) i^i ~P N ) =/= (/) ) ) ) $=
      ( wcel vs vu vz vg va vb vn vf wa csn cnei cfv wss cpw cin c0 cuni ctopon
      wne ctop neibastop1 topontop syl adantr eqid neii1 wceq toponuni ad2antrr
      sylan sseqtr4d cv wrex neii2 wral wi pweq ineq2d neeq1d raleqbi1dv elrab2
      weq simprrr sspwb sylib sslin wb snssg ad3antlr mpbird fveq2 ineq1d rspcv
      simprrl ssn0 syl6an expr com23 expimpd syl5bi rexlimdv mpd jca ex n0 elin
      wex simprl sseqtrd cvv ciun cmpt crdg com cres crab cdif wf simpll simplr
      crn w3a elpwid cbviunv iuneq2d syl5eq mpteq2i rdgeq1 ax-mp reseq1i syl5bb
      cbvrexv rexbidv cbvrabv neibastop2lem eleqtrd syl2anc mpbir2and exlimdv
      isneip impbid ) AGMTZUIZKGUJZJUKULULTZKMUMZGIULZKUNZUOZUPUSZUIZUUCUUEUUKU
      UCUUEUIZUUFUUJUULKJUQZMUUCJUTTZUUEKUUMUMZAUUNUUBAJMURULTZUUNABDEHIJLMNOPQ
      VAZMJVBVCZVDZUUDJKUUMUUMVEZVFVJAMUUMVGZUUBUUEAUUPUVAUUQMJVHVCZVIVKUULUUDC
      VLZUMZUVCKUMZUIZCJVMZUUJUUCUUNUUEUVGUUSUUDCJKVNVJUULUVFUUJCJUVCJTUVCMUNZT
      ZBVLZIULZUVCUNZUOZUPUSZBUVCVOZUIUULUVFUUJVPZUVKHVLZUNZUOZUPUSZBUVQVOUVOHU
      VCUVHJUVTUVNBUVQUVCHCWBZUVSUVMUPUWAUVRUVLUVKUVQUVCVQVRVSVTQWAUULUVIUVOUVP
      UULUVIUIUVFUVOUUJUULUVIUVFUVOUUJVPUULUVIUVFUIZUIZUUGUVLUOZUUIUMZUVOUWDUPU
      SZUUJUWCUVLUUHUMZUWEUWCUVEUWGUULUVIUVDUVEWCUVCKWDWEUVLUUHUUGWFVCUWCGUVCTZ
      UVOUWFVPUWCUWHUVDUULUVIUVDUVEWNUUBUWHUVDWGAUUEUWBGUVCMWHWIWJUVNUWFBGUVCUV
      JGVGZUVMUWDUPUWIUVKUUGUVLUVJGIWKWLVSWMVCUWDUUIWOWPWQWRWSWTXAXBXCXDUUCUUFU
      UJUUEUUJUAVLZUUITZUAXGUUCUUFUIZUUEUAUUIXEUWLUWKUUEUAUWKUWJUUGTZUWJUUHTZUI
      ZUWLUUEUWJUUGUUHXFUUCUUFUWOUUEUUCUUFUWOUIZUIZUUEUUOGUBVLZTUWRKUMUIUBJVMZU
      WQKMUUMUUCUUFUWOXHZAUVAUUBUWPUVBVIZXIUWQBCUCDEUBFGDVLZIULZUDVLZUNZUOZUPUS
      ZUDUEXJUFUEVLZUGMUGVLZIULZUFVLZUNZUOZXKZXKZXLZUWJUJZXMZXNXOZYAUQZVMZDMXPU
      WJUHHIUXSJKLMUEAMLTUUBUWPNVIAMUVHUNUPUJXQIXRUUBUWPOVIUWQAUVJMTZEVLZUVKTZU
      XBUVKTYBUVKUYCUXBUOUNUOUPUSAUUBUWPXSZPVJQUWQAUYBUYDUIZUVJUYCTUYERVJUWQAUY
      FUVCIULZUYCUNUOUPUSCFVLVOFUVKVMUYESVJAUUBUWPXTZUWTUUCUUFUWMUWNWNUWQUWJKUU
      CUUFUWMUWNWCYCUXRUEXJUCUXHBMUVKUCVLZUNZUOZXKZXKZXLZUXQXMZXNUXPUYNVGUXRUYO
      VGUEXJUXOUYMUFUCUXHUXNUYLUFUCWBZUXNBMUVKUXLUOZXKUYLUGBMUXMUYQUGBWBUXJUVKU
      XLUXIUVJIWKWLYDUYPBMUYQUYKUYPUXLUYJUVKUXKUYIVQVRYEYFYDYGUXQUXPUYNYHYIYJUY
      AUYGUHVLZUNZUOZUPUSZUHUXTVMZDCMUYAUXCUYSUOZUPUSZUHUXTVMDCWBZVUBUXGVUDUDUH
      UXTUDUHWBZUXFVUCUPVUFUXEUYSUXCUXDUYRVQVRVSYLVUEVUDVUAUHUXTVUEVUCUYTUPVUEU
      XCUYGUYSUXBUVCIWKWLVSYMYKYNYOUWQUUNGUUMTUUEUUOUWSUIWGAUUNUUBUWPUURVIUWQGM
      UUMUYHUXAYPGUBJKUUMUUTYTYQYRWQWTYSWTWSUUA $.

    $( The topology generated by a neighborhood base is unique.  (Contributed
       by Jeff Hankins, 16-Sep-2009.)  (Proof shortened by Mario Carneiro,
       11-Sep-2015.) $)
    neibastop3 $p |- ( ph -> E! j e. ( TopOn ` X )
      A. x e. X ( ( nei ` j ) ` { x } ) =
        { n e. ~P X | ( ( F ` x ) i^i ~P n ) =/= (/) } ) $=
      ( wcel vz cv ctopon cfv csn cnei cpw cin c0 wne crab wceq wral wa wreu wi
      weu wal neibastop1 cab wss neibastop2 selpw anbi1i syl6bbr abbi2dv df-rab
      syl6eqr ralrimiva sneq fveq2d fveq2 ineq1d neeq1d rabbidv eqeq12d cbvralv
      sylibr cuni toponuni eqimss2 syl sspwuni ad2antlr sseqin2 sylib wrex ctop
      topontop ad3antlr eltop2 ssralv adantl simprr eleq2d sseq2d biimpa sylan2
      elpwi sselda adantrr adantr eqid isneip baibd syl21anc pweq ineq2d elrab3
      wb 3bitr3d expr ralimdva syld imp an32s ralbi bitrd rabbi2dva eqtr3d expl
      alrimiv eleq1 fveq1d eqeq1d ralbidv anbi12d eqeu syl121anc df-reu ) AGUBZ
      MUCUDZTZBUBZUEZYKUFUDZUDZYNJUDZHUBZUGZUHZUIUJZHMUGZUKZULZBMUMZUNZGUQZUUFG
      YLUOAKYLTZUUIYOKUFUDZUDZUUDULZBMUMZUUGYKKULZUPZGURUUHABDEIJKLMNOPQUSZUUPA
      UAUBZUEZUUJUDZUUQJUDZYTUHZUIUJZHUUCUKZULZUAMUMUUMAUVDUAMAUUQMTUNZUUSYSUUC
      TZUVBUNZHUTUVCUVEUVGHUUSUVEYSUUSTYSMVAZUVBUNUVGABCDEFUUQIJKYSLMNOPQRSVBUV
      FUVHUVBHMVCVDVEVFUVBHUUCVGVHVIUULUVDBUAMYNUUQULZUUKUUSUUDUVCUVIYOUURUUJYN
      UUQVJVKUVIUUBUVBHUUCUVIUUAUVAUIUVIYRUUTYTYNUUQJVLVMVNVOVPVQVRAUUOGAYMUUFU
      UNAYMUNZUUFUNZUUCYKUHZYKKUVKYKUUCVAZUVLYKULYMUVMAUUFYMYKVSZMVAZUVMYMMUVNU
      LZUVOMYKVTZUVNMWAWBYKMWCVRWDYKUUCWEWFUVKUVLYRIUBZUGZUHZUIUJZBUVRUMZIUUCUK
      KUVKUWBIUUCYKUVKUVRUUCTZUNZUVRYKTZYNUUQTUUQUVRVAUNUAYKWGZBUVRUMZUWBUWDYKW
      HTZUWEUWGXJYMUWHAUUFUWCMYKWIZWJBUAUVRYKWKWBUWDUWFUWAXJZBUVRUMZUWGUWBXJUVJ
      UWCUUFUWKUVJUWCUNZUUFUWKUWLUUFUUEBUVRUMZUWKUWCUUFUWMUPZUVJUWCUVRMVAZUWNUV
      RMWSZUUEBUVRMWLWBWMUWLUUEUWJBUVRUWLYNUVRTZUUEUWJUWLUWQUUEUNZUNZUVRYQTZUVR
      UUDTZUWFUWAUWSYQUUDUVRUWLUWQUUEWNWOUWSUWHYNUVNTZUVRUVNVAZUWTUWFXJYMUWHAUW
      CUWRUWIWJUWLUWQUXBUUEUWLUVRUVNYNUWCUVJUWOUXCUWPUVJUWOUXCUVJMUVNUVRYMUVPAU
      VQWMWPWQWRZWTXAUWLUXCUWRUXDXBUWHUXBUNUWTUXCUWFYNUAYKUVRUVNUVNXCXDXEXFUWCU
      XAUWAXJUVJUWRUUBUWAHUVRUUCYSUVRULZUUAUVTUIUXEYTUVSYRYSUVRXGXHVNXIWDXKXLXM
      XNXOXPUWFUWABUVRXQWBXRXSQVHXTYAYBUUGUUIUUMUNGKYLUUNYMUUIUUFUUMYKKYLYCUUNU
      UEUULBMUUNYQUUKUUDUUNYOYPUUJYKKUFVLYDYEYFYGYHYIUUFGYLYJVR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Lattice structure of topologies
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d t y A $.  $d j k t x y S $.  $d j k t x V $.  $d j k t x y X $.
    $d t x T $.
    $( The meet of a collection of topologies on ` X ` is again a topology on
       ` X ` .  (Contributed by Jeff Hankins, 5-Oct-2009.)  (Proof shortened by
       Mario Carneiro, 12-Sep-2015.) $)
    topmtcl $p |- ( ( X e. V /\ S C_ ( TopOn ` X ) ) ->
      ( ~P X i^i |^| S ) e. ( TopOn ` X ) ) $=
      ( wcel ctopon cfv cpw cmre wss cint cin toponmre mrerintcl sylan ) CBDCEF
      ZCGZHFDAOIPAJKODCBLOAPMN $.

    $( Two equivalent formulations of the meet of a collection of topologies.
       (Contributed by Jeff Hankins, 4-Oct-2009.)  (Proof shortened by Mario
       Carneiro, 12-Sep-2015.) $)
    topmeet $p |- ( ( X e. V /\ S C_ ( TopOn ` X ) ) ->
      ( ~P X i^i |^| S ) = U. { k e. ( TopOn ` X ) | A. j e. S k C_ j } ) $=
      ( wcel ctopon cfv wss wa cpw cint cin wral cuni wceq sylibr syl sspwuni
      cv crab topmtcl inss2 intss1 syl5ss rgen sseq1 ralbidv elrab mpbiran2 w3a
      elssuni toponuni eqimss2 3ad2ant2 simp3 ssint ssind selpw rabssdv sylib
      eqssd ) EDFAEGHZIJZEKZALZMZCTZBTZIZBANZCVCUAZOZVDVGVLFZVGVMIVDVGVCFZVNADE
      UBVNVOVGVIIZBANZVPBAVIAFVGVFVIVEVFUCVIAUDUEUFVKVQCVGVCVHVGPVJVPBAVHVGVIUG
      UHUIUJQVGVLULRVDVLVGKZIVMVGIVDVKCVCVRVDVHVCFZVKUKZVHVGIVHVRFVTVHVEVFVSVDV
      HVEIZVKVSVHOZEIZWAVSEWBPWCEVHUMWBEUNRVHESQUOVTVKVHVFIVDVSVKUPBVHAUQQURCVG
      USQUTVLVGSVAVB $.

    $( Two equivalent formulations of the join of a collection of topologies.
       (Contributed by Jeff Hankins, 6-Oct-2009.)  (Proof shortened by Mario
       Carneiro, 12-Sep-2015.) $)
    topjoin $p |- ( ( X e. V /\ S C_ ( TopOn ` X ) ) ->
      ( topGen ` ( fi ` ( { X } u. U. S ) ) ) =
        |^| { k e. ( TopOn ` X ) | A. j e. S j C_ k } ) $=
      ( wcel ctopon cfv wss wa cuni cun wral sylibr wceq syl sspwuni syl6ss cvv
      sylib csn cfi ctg cv crab cint wi topontop ad2antrl toponmax snssd simprr
      ctop unissb unssd syl2anc expr ralrimiva ssintrab ctb fibas tgtopon ax-mp
      tgfiss uniun unisng adantr syl5req cpw simpr toponuni eqimss2 selpw ssriv
      uneq1d ssequn2 snex fvex adantl uniexg unexg sylancr fiuni 3eqtr3d fveq2d
      ssex syl5eleqr elssuni ssun2 ssfii sylan9ssr bastg sseq2 ralbidv sylanbrc
      elrab intss1 eqssd ) EDFZAEGHZIZJZEUAZAKZLZUBHZUCHZBUDZCUDZIZBAMZCWTUEZUF
      ZXBXKXGXIIZUGZCWTMXGXMIXBXOCWTXBXIWTFZXKXNXBXPXKJJZXIUMFZXEXIIXNXPXRXBXKE
      XIUHUIXQXCXDXIXQEXIXPEXIFXBXKEXIUJUIUKXQXKXDXIIXBXPXKULBAXIUNNUOXEXIVDUPU
      QURXKCXGWTUSNXBXGXLFZXMXGIXBXGWTFXHXGIZBAMZXSXBXGXFKZGHZWTXFUTFZXGYCFXEVA
      ZXFVBVCXBEYBGXBEXDKZLZXEKZEYBXBYHXCKZYFLYGXCXDVEXBYIEYFWSYIEOXAEDVFVGVOVH
      XBYFEIZYGEOXBXDEVIZIZYJXBAYKVIZIYLXBAWTYMWSXAVJCWTYMXPXIYKIZXIYMFXPXIKZEI
      ZYNXPEYOOYPEXIVKYOEVLPXIEQNCYKVMNVNRAYKQTXDEQTYFEVPTXBXESFZYHYBOXBXCSFXDS
      FZYQEVQXBASFZYRXAYSWSAWTEGVRWFVSASVTPXCXDSSWAWBZXESWCPWDWEWGXBXTBAXBXHAFZ
      JXHXFXGUUAXBXHXEXFUUAXHXDXEXHAWHXDXCWIRXBYQXEXFIYTXESWJPWKYDXFXGIYEXFUTWL
      VCRURXKYACXGWTXIXGOXJXTBAXIXGXHWMWNWPWOXGXLWQPWR $.

    $( The meet of a collection of equivalence classes of covers with respect
       to fineness.  (Contributed by Jeff Hankins, 5-Oct-2009.)  (Proof
       shortened by Mario Carneiro, 12-Sep-2015.) $)
    fnemeet1 $p |- ( ( X e. V /\ A. y e. S X = U. y /\ A e. S ) ->
      ( ~P X i^i |^|_ t e. S ( topGen ` t ) ) Fne A ) $=
      ( wcel cv cuni wceq wral ctg cfv cfne wss unitg unieq eqeq2d syl 3ad2ant3
      w3a cpw ciin cin c0 wne wa adantl rspccva 3ad2antl2 eqtr4d eqimss sspwuni
      sylibr ralrimiva ne0i riinn0 syl2anc wrex simp3 ssid fveq2 sseq1d sylancl
      rspcev iinss unissd sseqtrd 3adant1 adantr eqtr3d simpr eltg3i eqeltrd wb
      wbr cvv uniexg eliin mpbird elssuni eqssd eqid isfne4 sylanbrc eqbrtrd )
      FEGZFAHZIZJZADKZCDGZUAZFUBZBDBHZLMZUCZUDZWQCNWMWPWNOZBDKDUEUFZWRWQJWMWSBD
      WMWODGZUGZWPIZFOZWSXBXCFJXDXBXCWOIZFXAXCXEJWMWODPUHWKWGXAFXEJZWLWJXFAWODW
      HWOJWIXEFWHWOQRUIUJZUKXCFULSWPFUMUNUOWLWGWTWKDCUPTBWNWPDUQURWMWQIZCIZJWQC
      LMZOZWQCNVPWMXHXIWMXHXJIZXIWMWQXJWMWPXJOZBDUSZXKWMWLXJXJOZXNWGWKWLUTXJVAX
      MXOBCDWOCJWPXJXJWOCLVBVCVEVDBDWPXJVFSZVGWLWGXLXIJWKCDPTVHWMXIWQGZXIXHOWMX
      QXIWPGZBDKZWMXRBDXBXIXEWPXBFXIXEWMFXIJZXAWKWLXTWGWJXTACDWHCJWIXIFWHCQRUIV
      IVJXGVKXBXAWOWOOXEWPGWMXAVLWOVAWOWODVMVDVNUOWMXIVQGZXQXSVOWLWGYAWKCDVRTBX
      IDWPVQVSSVTXIWQWASWBXPWQCXHXIXHWCXIWCWDWEWF $.

    $( The meet of equivalence classes under the fineness relation-part two.
       (Contributed by Jeff Hankins, 6-Oct-2009.)  (Proof shortened by Mario
       Carneiro, 12-Sep-2015.) $)
    fnemeet2 $p |- ( ( X e. V /\ A. y e. S X = U. y ) ->
      ( T Fne ( ~P X i^i |^|_ t e. S ( topGen ` t ) ) <->
        ( X = U. T /\ A. x e. S T Fne x ) ) ) $=
      ( wcel cv cuni wceq wral wa cfne wbr c0 eqid syl wss cvv cpw ctg cfv ciin
      cin wi riin0 unieqd unipw syl6req a1i wne wex n0 w3a unieq eqeq2d rspccva
      3adant1 fnebas eqtr4d 3expia exlimdv syl5bi pm2.61dne adantr adantl fnetr
      fnemeet1 ex expcom 3expa ralrimdva simprl eqtr3d eqimss2 ad2antrl sspwuni
      sylibr breq2 cbvralv fnetg ralimi sylbi ad2antll ssiin ssind pwexg inex1g
      jcad ad2antrr bastg sstrd isfne4 sylanbrc impbid ) GFHZGBIZJZKZBDLZMZEGUA
      ZCDCIZUBUCZUDZUEZNOZGEJZKZEAIZNOZADLZMZXBXHXJXMXBXHXJXBXHMGXGJZXIXBGXOKZX
      HXBXPDPDPKZXPUFXBXQXOXCJGXQXGXCCXCXEDUGUHGUIUJUKDPULXKDHZAUMXBXPADUNXBXRX
      PAWQXAXRXPWQXAXRUOZGXKJZXOXAXRGXTKZWQWTYABXKDWRXKKWSXTGWRXKUPUQURUSXSXGXK
      NOZXOXTKBCXKDFGVIZXGXKXOXTXOQZXTQUTRVAVBVCVDVEZVFXHXIXOKZXBEXGXIXOXIQZYDU
      TVGVAVJXBXHXLADWQXAXRXHXLUFZXSYBYHYCXHYBXLEXGXKVHVKRVLVMWJXBXNXHXBXNMZYFE
      XGUBUCZSXHYIGXIXOXBXJXMVNXBXPXNYEVFVOYIEXGYJYIEXCXFYIXIGSZEXCSXJYKXBXMXIG
      VPVQEGVRVSYIEXESZCDLZEXFSXMYMXBXJXMEXDNOZCDLYMXLYNACDXKXDENVTWAYNYLCDEXDW
      BWCWDWECDXEEWFVSWGYIXGTHZXGYJSWQYOXAXNWQXCTHYOGFWHXCXFTWIRWKXGTWLRWMEXGXI
      XOYGYDWNWOVJWP $.

    $( Join of equivalence classes under the fineness relation-part one.
       (Contributed by Jeff Hankins, 8-Oct-2009.)  (Proof shortened by Mario
       Carneiro, 12-Sep-2015.) $)
    fnejoin1 $p |- ( ( X e. V /\ A. y e. S X = U. y /\ A e. S ) ->
      A Fne if ( S = (/) , { X } , U. S ) ) $=
      ( wcel cv cuni wceq wral w3a c0 cfne wss 3ad2ant3 sspwuni sylibr cvv eqid
      syl csn cif ctg cfv wbr elssuni unissd cpw eqimss2 ralimi 3ad2ant2 unissb
      sylib unieq eqeq2d rspccva 3adant1 eqssd pwexg 3ad2ant1 ssexd bastg sstrd
      sseqtrd isfne4 sylanbrc wne ne0i ifnefalse breqtrrd ) EDFZEAGZHZIZACJZBCF
      ZKZBCHZCLIEUAZVRUBZMVQBHZVRHZIBVRUCUDZNBVRMUEVQWAWBVQBVRVPVKBVRNVOBCUFOZU
      GVQWBEWAVQVREUHZNZWBENVQVLWENZACJZWFVOVKWHVPVNWGACVNVMENWGVMEUIVLEPQUJUKA
      CWEULQZVREPUMVOVPEWAIZVKVNWJABCVLBIVMWAEVLBUNUOUPUQVDURVQBVRWCWDVQVRRFVRW
      CNVQVRWERVKVOWERFVPEDUSUTWIVAVRRVBTVCBVRWAWBWASWBSVEVFVQCLVGZVTVRIVPVKWKV
      OCBVHOCLVSVRVITVJ $.

    $( Join of equivalence classes under the fineness relation-part two.
       (Contributed by Jeff Hankins, 8-Oct-2009.)  (Proof shortened by Mario
       Carneiro, 12-Sep-2015.) $)
    fnejoin2 $p |- ( ( X e. V /\ A. y e. S X = U. y ) ->
      ( if ( S = (/) , { X } , U. S ) Fne T <->
        ( X = U. T /\ A. x e. S x Fne T ) ) ) $=
      ( wcel cuni wceq wral wa c0 cfne wbr adantr eqid syl ex wss cvv cv unisng
      csn cif eqcomd iftrue unieqd eqeq2d syl5ibrcom wne wex n0 rspccva 3adant1
      w3a unieq fnejoin1 fnebas eqtrd 3expia syl5bi pm2.61dne sylan9eq wi fnetr
      exlimdv 3expa ralrimdva jcad ctg cfv simprl eqtr3d elex ad2antrr eqeltrrd
      sseq1 uniexb sylibr eltg3i sylancl eqeltrd snssd wn simplrr ralimi unissb
      ssid fnetg ifbothda isfne4 sylanbrc impbid ) FEGZFBUAZHZIZBCJZKZCLIZFUCZC
      HZUDZDMNZFDHZIZAUAZDMNZACJZKZWSXDXFXIWSXDXFWSXDFXCHZXEWSFXKIZCLWSXLWTFXAH
      ZIZWNXNWRWNXMFFEUBUEOWTXKXMFWTXCXAWTXAXBUFUGUHUICLUJXGCGZAUKWSXLACULWSXOX
      LAWNWRXOXLWNWRXOUOZFXGHZXKWRXOFXQIZWNWQXRBXGCWOXGIWPXQFWOXGUPUHUMUNXPXGXC
      MNZXQXKIBXGCEFUQZXGXCXQXKXQPXKPZURQUSUTVFVAVBZXCDXKXEYAXEPZURVCRWSXDXHACW
      NWRXOXDXHVDZXPXSYDXTXSXDXHXGXCDVERQVGVHVIWSXJXDWSXJKZXKXEIXCDVJVKZSZXDYEF
      XKXEWSXLXJYBOWSXFXIVLZVMWTXAYFSZXBYFSZYGYEXAXBXAXCYFVQXBXCYFVQYEYIWTYEFYF
      YEFXEYFYHYEDTGZDDSXEYFGYEXETGYKYEFXETYHWNFTGWRXJFEVNVOVPDVRVSDWHDDTVTWAWB
      WCOYEWTWDZKZXGYFSZACJZYJYMXIYOWSXFXIYLWEXHYNACXGDWIWFQACYFWGVSWJXCDXKXEYA
      YCWKWLRWM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Filter bases
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d t x B $.  $d t x F $.  $d t x X $.
    $( Minimality property of a generated filter: every filter that contains
       ` B ` contains its generated filter.  (Contributed by Jeff Hankins,
       5-Sep-2009.)  (Revised by Mario Carneiro, 7-Aug-2015.) $)
    fgmin $p |- ( ( B e. ( fBas ` X ) /\ F e. ( Fil ` X ) ) ->
        ( B C_ F <-> ( X filGen B ) C_ F ) ) $=
      ( vt vx cfbas cfv wcel cfil wa wss cfg co cv wrex wb elfg adantr ssrexv
      wi adantl filss 3exp2 com34 rexlimdv ad2antlr syld com23 impd sylbid ssfg
      ssrdv ex sstr2 syl impbid ) ACFGHZBCIGHZJZABKZCALMZBKZUSUTVBUSUTJZDVABVCD
      NZVAHZVDCKZENZVDKZEAOZJZVDBHZUSVEVJPZUTUQVLUREVDACQRRVCVFVIVKVCVIVFVKVCVI
      VHEBOZVFVKTZUTVIVMTUSVHEABSUAURVMVNTUQUTURVHVNEBURVGBHZVFVHVKURVOVFVHVKVG
      VDBCUBUCUDUEUFUGUHUIUJULUMUQVBUTTZURUQAVAKVPACUKAVABUNUORUP $.
  $}

  ${
    $d t u x z J $.  $d t u x z S $.  $d t u x z X $.
    neifg.1 $e |- X = U. J $.
    $( The neighborhood filter of a nonempty set is generated by its open
       supersets.  See comments for ~ opnfbas .  (Contributed by Jeff Hankins,
       3-Sep-2009.) $)
    neifg $p |- ( ( J e. Top /\ S C_ X /\ S =/= (/) ) ->
        ( X filGen { x e. J | S C_ x } ) = ( ( nei ` J ) ` S ) ) $=
      ( vt vu vz wcel wss c0 wne cv crab cpw cin cfv wa wex wb ctop w3a co cnei
      cfg cfbas wceq opnfbas fgval syl pweq ineq2d neeq1d elrab selpw a1i sseq2
      n0 elin anbi12i bitri exbii anbi12d wrex isnei anass df-rex bitr4i anbi2i
      3adant3 syl6rbbr bitrd syl5bb eqrdv eqtrd ) CUAIZBDJZBKLZUBZDBAMZJZACNZUE
      UCZWBFMZOZPZKLZFDOZNZBCUDQQZVSWBDUFQIWCWIUGABCDEUHFWBDUIUJVSGWIWJGMZWIIWK
      WHIZWBWKOZPZKLZRZVSWKWJIZWGWOFWKWHWDWKUGZWFWNKWRWEWMWBWDWKUKULUMUNVSWPWKD
      JZHMZCIZBWTJZRZWTWKJZRZHSZRZWQVSWLWSWOXFWLWSTVSGDUOUPWOXFTVSWOWTWNIZHSXFH
      WNURXHXEHXHWTWBIZWTWMIZRXEWTWBWMUSXIXCXJXDWAXBAWTCVTWTBUQUNHWKUOUTVAVBVAU
      PVCVSWQWSXBXDRZHCVDZRZXGVPVQWQXMTVRBHCWKDEVEVJXFXLWSXFXAXKRZHSXLXEXNHXAXB
      XDVFVBXKHCVGVHVIVKVLVMVNVO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Directed sets, nets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d d x D $.  $d x X $.  $d x A $.
    tailfval.1 $e |- X = dom D $.
    $( The tail function for a directed set.  (Contributed by Jeff Hankins,
       25-Nov-2009.)  (Revised by Mario Carneiro, 24-Nov-2013.) $)
    tailfval $p |- ( D e. DirRel -> ( tail ` D ) =
                     ( x e. X |-> ( D " { x } ) ) ) $=
      ( vd cdir wcel ctail cfv cuni cv csn cima cmpt cvv wceq uniexg 3syl unieq
      mptexg unieqd imaeq1 mpteq12dv df-tail fvmptg mpdan dirdm syl5req mpteq1d
      cdm eqtrd ) BFGZBHIZABJZJZBAKLZMZNZACUQNULUROGZUMURPULUNOGUOOGUSBFQUNOQAU
      OUQOTREBAEKZJZJZUTUPMZNURFOHUTBPZAVBVCUOUQVDVAUNUTBSUAUTBUPUBUCAEUDUEUFUL
      AUOCUQULCBUJUODBUGUHUIUK $.

    $( The tail of an element in a directed set.  (Contributed by Jeff Hankins,
       25-Nov-2009.)  (Revised by Mario Carneiro, 24-Nov-2013.) $)
    tailval $p |- ( ( D e. DirRel /\ A e. X ) ->
                   ( ( tail ` D ) ` A ) = ( D " { A } ) ) $=
      ( vx cdir wcel wa ctail cfv csn cima cmpt wceq tailfval fveq1d adantr cvv
      cv id imaexg sneq imaeq2d eqid fvmptg syl2anr eqtrd ) BFGZACGZHABIJZJZAEC
      BESZKZLZMZJZBAKZLZUHUKUPNUIUHAUJUOEBCDOPQUIUIURRGUPURNUHUITBUQFUAEAUNURCR
      UOULANUMUQBULAUBUCUOUDUEUFUG $.

    $( An element of a tail.  (Contributed by Jeff Hankins, 25-Nov-2009.)
       (Revised by Mario Carneiro, 24-Nov-2013.) $)
    eltail $p |- ( ( D e. DirRel /\ A e. X /\ B e. C ) ->
                   ( B e. ( ( tail ` D ) ` A ) <-> A D B ) ) $=
      ( cdir wcel w3a ctail cfv csn cima wbr wb wa tailval eleq2d 3adant3 cop
      elimasng df-br syl6bbr 3adant1 bitrd ) DGHZAEHZBCHZIBADJKKZHZBDALMZHZABDN
      ZUFUGUJULOUHUFUGPUIUKBADEFQRSUGUHULUMOUFUGUHPULABTDHUMDABECUAABDUBUCUDUE
      $.
  $}

  ${
    $d x D $.  $d x X $.
    tailf.1 $e |- X = dom D $.
    $( The tail function of a directed set sends its elements to its subsets.
       (Contributed by Jeff Hankins, 25-Nov-2009.)  (Revised by Mario Carneiro,
       24-Nov-2013.) $)
    tailf $p |- ( D e. DirRel -> ( tail ` D ) : X --> ~P X ) $=
      ( vx cdir wcel cpw ctail cfv wf cv csn cima cmpt wral wss cuni cvv mpbird
      sstri crn imassrn cdm cun ssun2 dmrnssfld dirdm syl5req syl5sseq wb dmexg
      syl5eqel elpw2g syl ralrimivw eqid fmpt sylib tailfval feq1d ) AEFZBBGZAH
      IZJBVBDBADKLZMZNZJZVAVEVBFZDBOVGVAVHDBVAVHVEBPZVAAQQZVEBVEAUAZVJAVDUBVKAU
      CZVKUDVJVKVLUEAUFTTVABVLVJCAUGUHUIVABRFVHVIUJVABVLRCAEUKULVEBRUMUNSUODBVB
      VEVFVFUPUQURVABVBVCVFDABCUSUTS $.
  $}

  ${
    tailini.1 $e |- X = dom D $.
    $( A tail contains its initial element.  (Contributed by Jeff Hankins,
       25-Nov-2009.) $)
    tailini $p |- ( ( D e. DirRel /\ A e. X ) -> A e. ( ( tail ` D ) ` A ) ) $=
      ( cdir wcel wa ctail cfv wbr dirref wb eltail 3anidm23 mpbird ) BEFZACFZG
      AABHIIFZAABJZABCDKPQRSLAACBCDMNO $.
  $}

  ${
    $d u v w x y z D $.  $d u v w x y z X $.
    tailfb.1 $e |- X = dom D $.
    $( The collection of tails of a directed set is a filter base.
       (Contributed by Jeff Hankins, 25-Nov-2009.)  (Revised by Mario Carneiro,
       8-Aug-2015.) $)
    tailfb $p |- ( ( D e. DirRel /\ X =/= (/) )
          -> ran ( tail ` D ) e. ( fBas ` X ) ) $=
      ( vz vx vy vu vv wcel c0 wa cfv wss cv wrex adantr wi wb wbr cvv cdir wne
      vw ctail crn cfbas cpw wnel cin wral w3a wf tailf frn syl wex n0 fnfvelrn
      wfn ffn 3syl ne0i syl6 exlimdv syl5bi imp wceq tailini n0i nrexdv fvelrnb
      ex wn mtbird df-nel sylibr anbi12d dirge 3expb sylan ad2ant2r dirtr exp32
      reeanv vex mpan2 com23 ad2ant2rl anim12d expr impr eltail adantrr adantrl
      mp3an3 3imtr4d syl6ibr ssrdv sseq1 rspcev syl2anc rexlimddv ineq1 rexbidv
      elin sseq2d ineq2 sylan9bb syl5ibcom rexlimdvva sylbid ralrimivv 3jca cdm
      syl5bir dmexg syl5eqel isfbas2 mpbir2and ) AUAIZBJUBZKZAUDLZUEZBUFLIZYDBU
      GZMZYDJUBZJYDUHZDNZENZFNZUIZMZDYDOZFYDUJEYDUJZUKZXTYGYAXTBYFYCULZYGABCUMZ
      BYFYCUNUOPYBYHYIYPXTYAYHYAYKBIZEUPXTYHEBUQXTYTYHEXTYTYKYCLZYDIZYHXTYRYCBU
      SZYTUUBQYSBYFYCUTZUUCYTUUBBYKYCURVLVAYDUUAVBVCVDVEVFYBJYDIZVMYIYBUUEUUAJV
      GZEBOZXTUUGVMYAXTUUFEBXTYTKYKUUAIUUFVMYKABCVHUUAYKVIUOVJPXTUUEUUGRZYAXTYR
      UUCUUHYSUUDEBJYCVKVAPVNJYDVOVPYBYOEFYDYDXTYKYDIZYLYDIZKZYOQYAXTUUKGNZYCLZ
      YKVGZGBOZHNZYCLZYLVGZHBOZKZYOXTYRUUCUUKUUTRYSUUDUUCUUIUUOUUJUUSGBYKYCVKHB
      YLYCVKVQVAUUTUUNUURKZHBOGBOXTYOUUNUURGHBBWDXTUVAYOGHBBXTUULBIZUUPBIZKZKZY
      JUUMUUQUIZMZDYDOZUVAYOUVEUULUCNZASZUUPUVIASZKZUVHUCBXTUVBUVCUVLUCBOUCUULU
      UPABCVRVSUVEUVIBIZUVLKZKZUVIYCLZYDIZUVPUVFMZUVHXTUVMUVQUVDUVLXTUUCUVMUVQX
      TYRUUCYSUUDUOBUVIYCURVTWAUVOEUVPUVFUVOYKUVPIZYKUUMIZYKUUQIZKZYKUVFIUVOUVI
      YKASZUULYKASZUUPYKASZKZUVSUWBUVEUVMUVLUWCUWFQUVEUVMKUWCUVLUWFUVEUVMUWCUVL
      UWFQUVEUVMUWCKKUVJUWDUVKUWEXTUWCUVJUWDQZUVDUVMXTUWCUWGXTUVJUWCUWDXTYKTIZU
      VJUWCUWDQQEWEZXTUWHKZUVJUWCUWDUULUVIYKATWBWCWFWGVFWHXTUWCUVKUWEQZUVDUVMXT
      UWCUWKXTUVKUWCUWEXTUWHUVKUWCUWEQQUWIUWJUVKUWCUWEUUPUVIYKATWBWCWFWGVFWHWIW
      JWGWKXTUVMUVSUWCRZUVDUVLXTUVMUWHUWLUWIUVIYKTABCWLWOWAUVEUWBUWFRUVNUVEUVTU
      WDUWAUWEXTUVBUVTUWDRZUVCXTUVBUWHUWMUWIUULYKTABCWLWOWMXTUVCUWAUWERZUVBXTUV
      CUWHUWNUWIUUPYKTABCWLWOWNVQPWPYKUUMUUQXEWQWRUVGUVRDUVPYDYJUVPUVFWSWTXAXBU
      UNUVHYJYKUUQUIZMZDYDOUURYOUUNUVGUWPDYDUUNUVFUWOYJUUMYKUUQXCXFXDUURUWPYNDY
      DUURUWOYMYJUUQYLYKXGXFXDXHXIXJXOXKPXLXMYBBTIZYEYGYQKRXTUWQYAXTBAXNTCAUAXP
      XQPEFDTBYDXRUOXS $.
  $}

  ${
    $d x y A $.  $d d f k m n t u v w x y z F $.  $d d f m t u v w x y z H $.
    $d x y B $.  $d d f t u v w z D $.  $d d f n t u v z X $.
    ${
      filnet.h $e |- H = U_ n e. F ( { n } X. n ) $.
      filnet.d $e |- D = { <. x , y >. |
          ( ( x e. H /\ y e. H ) /\ ( 1st ` y ) C_ ( 1st ` x ) ) } $.
      ${
        filnetlem1.a $e |- A e. _V $.
        filnetlem1.b $e |- B e. _V $.
        $( Lemma for ~ filnet .  Change variables.  (Contributed by Jeff
           Hankins, 13-Dec-2009.)  (Revised by Mario Carneiro, 8-Aug-2015.) $)
        filnetlem1 $p |- ( A D B <-> ( ( A e. H /\ B e. H ) /\
            ( 1st ` B ) C_ ( 1st ` A ) ) ) $=
          ( cv c1st cfv wss wceq fveq2 sseq2d sseq1d sylan9bb brab2a ) BMZNOZAM
          ZNOZPZDNOZCNOZPZABCDHHEUECQZUGUDUIPUCDQZUJUKUFUIUDUECNRSULUDUHUIUCDNR
          TUAJUB $.
      $}

      $( Lemma for ~ filnet .  The field of the direction.  (Contributed by
         Jeff Hankins, 13-Dec-2009.)  (Revised by Mario Carneiro,
         8-Aug-2015.) $)
      filnetlem2 $p |- ( ( _I |` H ) C_ D /\ D C_ ( H X. H ) ) $=
        ( vz cid cres wss cxp cv wbr idref wcel wa c1st cfv ssid vex filnetlem1
        mpbiran2 biimpri anidms mprgbir copab opabssxp eqsstri pm3.2i ) JFKCLZC
        FFMZLULINZUNCOZIFIFCPUNFQZUOUOUPUPRZUOUQUNSTZURLURUAABUNUNCDEFGHIUBZUSU
        CUDUEUFUGCANZFQBNZFQRVASTUTSTLZRABUHUMHVBABFFUIUJUK $.

      $( Lemma for ~ filnet .  (Contributed by Jeff Hankins, 13-Dec-2009.)
         (Revised by Mario Carneiro, 8-Aug-2015.) $)
      filnetlem3 $p |- ( H = U. U. D /\
        ( F e. ( Fil ` X ) -> ( H C_ ( F X. X ) /\ D e. DirRel ) ) ) $=
        ( vv vw vz cfv wcel wss wa cv c1st wbr cvv vu cuni wceq cfil cxp wi cdm
        cdir crn cun cid cres dmresi filnetlem2 dmss ax-mp eqsstr3i ssun1 sstri
        simpli dmrnssfld simpri uniss mp2b unixpss unidm sseqtri eqssi csn ciun
        wral filelss xpss2 syl ralrimiva iunxpconst syl6sseq syl5eqss wrel ccom
        ss2iun ccnv a1i relopabi jctil wex cin c0 wne simpl adantr simprl xp1st
        sseldd simprr filinn0 syl3anc sylib cop filin simpr opeliunxp2 sylanbrc
        n0 id syl6eleqr fvex inex1 op1st inss1 eqsstri opex filnetlem1 mpbiran2
        vex inss2 breq2 anbi12d spcev syl2anc exlimddv ralrimivva codir simplbi
        sylibr wal simpld simprd anim12i simprbi sylan9ssr ax-gen gen2 mpbir wb
        cotr filtop xpexg mpdan ssexd ssexg sylancr isdir mpbir2and jca pm3.2i
        ) FCUBZUBZUCEGUDMZNZFEGUEZOZCUHNZPUFFUUHFCUGZCUIZUJZUUHFUUNUUPFUKFULZUG
        ZUUNFUMUUQCOZUURUUNOUUSCFFUEZOZABCDEFHIUNZUTZUUQCUOUPUQUUNUUOURUSCVAUSU
        UHUUTUBZUBZFUVAUUGUVDOUUHUVEOUUSUVAUVBVBZCUUTVCUUGUVDVCVDUVEFFUJFFFVEFV
        FVGUSVHZUUJUULUUMUUJFDEDQZVIZUVHUEZVJZUUKHUUJUVKDEUVIGUEZVJZUUKUUJUVJUV
        LOZDEVKUVKUVMOUUJUVNDEUUJUVHENPUVHGOUVNUVHEGVLUVHGUVIVMVNVODEUVJUVLWAVN
        DEGVPVQVRZUUJUUMCVSZUUSPZCCVTCOZUUTCWBCVTOZPZUUJUUSUVPUUSUUJUVCWCAQZFNB
        QZFNPUWBRMUWARMOPABCIWDWEUUJUVSUVRUUJJQZKQZCSZLQZUWDCSZPZKWFZLFVKJFVKUV
        SUUJUWIJLFFUUJUWCFNZUWFFNZPZPZUAQZUWCRMZUWFRMZWGZNZUWIUAUWMUWQWHWIZUWRU
        AWFUWMUUJUWOENZUWPENZUWSUUJUWLWJZUWMUWCUUKNUWTUWMFUUKUWCUUJUULUWLUVOWKZ
        UUJUWJUWKWLZWNUWCEGWMVNZUWMUWFUUKNUXAUWMFUUKUWFUXCUUJUWJUWKWOZWNUWFEGWM
        VNZUWOUWPEGWPWQUAUWQXDWRUWMUWRPZUWCUWQUWNWSZCSZUWFUXICSZUWIUXHUWJUXIFNZ
        UXJUWMUWJUWRUXDWKUXHUXIUVKFUXHUWQENZUWRUXIUVKNUWMUXMUWRUWMUUJUWTUXAUXMU
        XBUXEUXGUWOUWPEGWTWQWKUWMUWRXADEUVHUWQUWNUWQUVHUWQUCXEXBXCHXFZUXJUWJUXL
        PUXIRMZUWOOUXOUWQUWOUWQUWNUWOUWPUWCRXGXHUAXOXIZUWOUWPXJXKABUWCUXICDEFHI
        JXOZUWQUWNXLZXMXNXCUXHUWKUXLUXKUWMUWKUWRUXFWKUXNUXKUWKUXLPUXOUWPOUXOUWQ
        UWPUXPUWOUWPXPXKABUWFUXICDEFHILXOZUXRXMXNXCUWHUXJUXKPKUXIUXRUWDUXIUCUWE
        UXJUWGUXKUWDUXIUWCCXQUWDUXIUWFCXQXRXSXTYAYBJLKFFCYCYEUVRUWEUWDUWFCSZPZU
        WCUWFCSZUFZLYFZKYFJYFUYDJKUYCLUYAUWLUWPUWOOUYBUWEUWJUXTUWKUWEUWJUWDFNZU
        WEUWJUYEPZUWDRMZUWOOZABUWCUWDCDEFHIUXQKXOZXMZYDYGUXTUYEUWKUXTUYEUWKPZUW
        PUYGOZABUWDUWFCDEFHIUYIUXSXMZYDYHYIUXTUWEUWPUYGUWOUXTUYKUYLUYMYJUWEUYFU
        YHUYJYJYKABUWCUWFCDEFHIUXQUXSXMXCYLYMJKLCYPYNWEUUJCTNZUUMUVQUVTPYOUUJUV
        AUUTTNZUYNUVFUUJFTNZUYPUYOUUJFUUKTUUJGENUUKTNEGYQEGUUIEYRYSUVOYTZUYQFFT
        TYRXTCUUTTUUAUUBFCTUVGUUCVNUUDUUEUUF $.

      $( Lemma for ~ filnet .  (Contributed by Jeff Hankins, 15-Dec-2009.)
         (Revised by Mario Carneiro, 8-Aug-2015.) $)
      filnetlem4 $p |- ( F e. ( Fil ` X ) -> E. d e. DirRel E. f ( f : dom d
          --> X
       /\ F = ( ( X FilMap f ) ` ran ( tail ` d ) ) ) ) $=
        ( vk cfv wcel wceq wa wss wi cvv c0 vt vm vv cfil cdir cdm cv ctail crn
        cfm wex wrex cxp cuni filnetlem3 simpri simprd c2nd cres f2ndres simpld
        wf co fssres2 sylancr filtop xpexg mpdan ssexd fex syl2anc dirdm simpli
        syl syl6reqr feq2d mpbid cfg cima c1st wral cpw wfn tailf mpbird adantr
        eqid ffn imaeq2 sseq1d rexrn 3syl wfun wfo fo2nd fofn ax-mp ssv fnssres
        mp2an fnfun ffvelrnda elpwid ad2antrr sseqtr4d fndm syl6sseqr funimass4
        wb wbr simpr eleqtrd vex a1i eltail syl3anc biantrurd anbi1d filnetlem1
        syl6bbr bitr4d imbi1d eleq1d bitri rexbidva csn ciun cop op1std imbi12d
        weq wne sseq1 cfbas wn sylib ss0b dmss eqeq2d anbi12d ralbidv2 raliunxp
        fvres pm5.74i impexp syl6bb bitrd op2ndd sneq id xpeq12d cbviunv raleqi
        eqtri imbi2i r19.21v bitr4i ralbii 3bitr4i rexbii rexeqi sseq2d ralbidv
        dfss3 rexiunxp 3bitri fileln0 adantlr r19.9rzv rspcv adantl sstr2 com12
        ssid mpii ralrimivw impbid1 bitr3d syl5bb 3bitrd pm5.32da filn0 wo snnz
        jctil neanior sylnibr ralrimiva r19.2z rexnal sseq1i 3bitr3i necon3abii
        xpeq0 iunss sylibr cid dmresi filnetlem2 eqsstr3i dmxpid sseqtri tailfb
        eqssi elfm filfbas elfg eqrdv fgfil eqtr2d jca feq1 oveq2 fveq1d spcegv
        3bitr4d sylc dmeq fveq2 rneqd fveq2d exbidv rspcev ) FHUDMZNZCUENZCUFZH
        DUGZVBZFCUHMZUIZHUYHUJVCZMZOZPZDUKZIUGZUFZHUYHVBZFUYQUHMZUIZUYLMZOZPZDU
        KZIUEULUYEGFHUMZQZUYFGCUNUNZOZUYEVUGUYFPRZABCEFGHJKUOZUPZUQZUYEURGUSZSN
        ZUYGHVUNVBZFUYKHVUNUJVCZMZOZPZUYPUYEGHVUNVBZGSNVUOUYEVUFHURVUFUSVBVUGVV
        AFHUTUYEVUGUYFVULVAZVUFHGURVDVEZUYEGVUFSUYEHFNZVUFSNFHVFZFHUYDFVGVHVVBV
        IGHSVUNVJVKUYEVUPVUSUYEVVAVUPVVCUYEGUYGHVUNUYEUYGVUHGUYEUYFUYGVUHOVUMCV
        LVNVUIVUJVUKVMVOZVPVQUYEVURHFVRVCZFUYEUAVURVVGUYEUAUGZHQZVUNUYQVSZVVHQZ
        IUYKULZPZVVIEUGZVVHQZEFULZPZVVHVURNZVVHVVGNZUYEVVIVVLVVPUYEVVIPZVVLVUNU
        YHUYJMZVSZVVHQZDGULZUYQVTMZUYHVTMZQZUYQURMZVVHNZRZIGWAZDGULZVVPVVTGUYGW
        BZUYJVBZUYJGWCVVLVWDXIUYEVWNVVIUYEVWNUYGVWMUYJVBZUYEUYFVWOVUMCUYGUYGWGZ
        WDVNUYEGUYGVWMUYJVVFVPWEWFZGVWMUYJWHVVKVWCIDGUYJUYQVWAOVVJVWBVVHUYQVWAV
        UNWIWJWKWLVVTVWCVWKDGVVTUYHGNZPZVWCUYQVUNMZVVHNZIVWAWAZVWKVWSVUNWMZVWAV
        UNUFZQVWCVXBXIVUNGWCZVXCURSWCZGSQVXESSURWNVXFWOSSURWPWQGWRSGURWSWTZGVUN
        XAWQVWSVWAGVXDVWSVWAUYGGVWSVWAUYGVVTGVWMUYHUYJVWQXBXCUYEGUYGOVVIVWRVVFX
        DZXEVXEVXDGOVXGGVUNXFWQXGIVWAVVHVUNXHVEVWSVXAVWJIVWAGVWSUYQVWANZVXARUYQ
        GNZVWGPZVXARZVXJVWJRZVWSVXIVXKVXAVWSVXIUYHUYQCXJZVXKVWSUYFUYHUYGNUYQSNZ
        VXIVXNXIUYEUYFVVIVWRVUMXDVWSUYHGUYGVVTVWRXKZVXHXLVXOVWSIXMZXNUYHUYQSCUY
        GVWPXOXPVWSVXKVWRVXJPZVWGPVXNVWSVXJVXRVWGVWSVWRVXJVXPXQXRABUYHUYQCEFGJK
        DXMVXQXSXTYAYBVXLVXKVWIRVXMVXKVXAVWIVXJVXAVWIXIVWGVXJVWTVWHVVHUYQGURUUC
        YCWFUUDVXJVWGVWIUUEYDUUFUUAUUGYEVWLLUGZVVNQZVXSVVHQZRZLFWAZUBVVNULZEFUL
        ZVVTVVPVWLVXSVWFQZVYARZLFWAZDGULVYHDEFVVNYFZVVNUMZYGZULVYEVWKVYHDGVWJIL
        FVXSYFZVXSUMZYGZWAVYFUCUGZVVHNZRZUCVXSWAZLFWAVWKVYHVWJVYQILUCFVXSUYQVXS
        VYOYHOZVWGVYFVWIVYPVYSVWEVXSVWFVXSVYOUYQLXMZUCXMZYIWJVYSVWHVYOVVHVXSVYO
        UYQVYTWUAUUHYCYJUUBVWJIGVYNGVYKVYNJELFVYJVYMELYKZVYIVYLVVNVXSVVNVXSUUIW
        UBUUJUUKUULUUNUUMVYGVYRLFVYGVYFVYPUCVXSWAZRVYRVYAWUCVYFUCVXSVVHUVDUUOVY
        FVYPUCVXSUUPUUQUURUUSUUTVYHDGVYKJUVAVYHVYCDEUBFVVNUYHVVNUBUGZYHOZVYGVYB
        LFWUEVYFVXTVYAWUEVWFVVNVXSVVNWUDUYHEXMZUBXMYIUVBYBUVCUVEUVFVVTVYDVVOEFV
        VTVVNFNZPZVYCVYDVVOWUHVVNTYLZVYCVYDXIUYEWUGWUIVVIVVNFHUVGZUVHVYCUBVVNUV
        IVNWUHVYCVVOWUGVYCVVORVVTWUGVYCVVNVVNQZVVOVVNUVNVYBWUKVVORLVVNFLEYKVXTW
        UKVYAVVOVXSVVNVVNYMVXSVVNVVHYMYJUVJUVOUVKVVOVYBLFVXTVVOVYAVXSVVNVVHUVLU
        VMUVPUVQUVRYEUVSUVTUWAUYEVVDUYKGYNMNZVVAVVRVVMXIVVEUYEUYFGTYLZWULVUMUYE
        VYJTQZEFWAZYOZWUMUYEWUNYOZEFULZWUPUYEFTYLWUQEFWAWURFHUWBUYEWUQEFUYEWUGP
        ZVYITOVVNTOUWCZWUNWUSVYITYLZWUIPWUTYOWUSWUIWVAWUJVVNWUFUWDUWEVYITVVNTUW
        FYPWUNVYJTOWUTVYJYQVYIVVNUWNYDUWGUWHWUQEFUWIVKWUNEFUWJYPWUOGTGTQVYKTQGT
        OWUOGVYKTJUWKGYQEFVYJTUWOUWLUWMUWPCGGUYGGUWQGUSZUFZUYGGUWRWVBCQZWVCUYGQ
        WVDCGGUMZQZABCEFGJKUWSZVMWVBCYRWQUWTUYGWVEUFZGWVFUYGWVHQWVDWVFWVGUPCWVE
        YRWQGUXAUXBUXDUXCVKVVCIVVHUYKFVUNHGUXEXPUYEFHYNMNVVSVVQXIFHUXFEVVHFHUXG
        VNUXPUXHFHUXIUXJUXKUYOVUTDVUNSUYHVUNOZUYIVUPUYNVUSUYGHUYHVUNUXLWVIUYMVU
        RFWVIUYKUYLVUQUYHVUNHUJUXMUXNYSYTUXOUXQVUEUYPICUEUYQCOZVUDUYODWVJUYSUYI
        VUCUYNWVJUYRUYGHUYHUYQCUXRVPWVJVUBUYMFWVJVUAUYKUYLWVJUYTUYJUYQCUHUXSUXT
        UYAYSYTUYBUYCVK $.
    $}

    $( A filter has the same convergence and clustering properties as some net.
       (Contributed by Jeff Hankins, 12-Dec-2009.)  (Revised by Mario Carneiro,
       8-Aug-2015.) $)
    filnet $p |- ( F e. ( Fil ` X ) -> E. d e. DirRel E. f ( f : dom d --> X
       /\ F = ( ( X FilMap f ) ` ran ( tail ` d ) ) ) ) $=
      ( vx vy vn cv csn cxp ciun wcel wa c1st cfv wss copab eqid filnetlem4 ) E
      FEHZGBGHZIUAJKZLFHZUBLMUCNOTNOPMEFQZAGBUBCDUBRUDRS $.
  $}

$( (End of Jeff Hankins' mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Anthony Hart
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Propositional Calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The first of three axioms in the Tarski-Bernays axiom system.
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  tb-ax1 $p |- ( ( ph -> ps ) -> ( ( ps -> ch ) -> ( ph -> ch ) ) ) $=
    ( imim1 ) ABCD $.

  $( The second of three axioms in the Tarski-Bernays axiom system.
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  tb-ax2 $p |- ( ph -> ( ps -> ph ) ) $=
    ( ax-1 ) ABC $.

  $( The third of three axioms in the Tarski-Bernays axiom system.

     This axiom, along with ~ ax-mp , ~ tb-ax1 , and ~ tb-ax2 , can be used to
     derive any theorem or rule that uses only ` -> ` .  (Contributed by
     Anthony Hart, 16-Aug-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  tb-ax3 $p |- ( ( ( ph -> ps ) -> ph ) -> ph ) $=
    ( peirce ) ABC $.

  ${
    tbsyl.1 $e |- ( ph -> ps ) $.
    tbsyl.2 $e |- ( ps -> ch ) $.
    $( The weak syllogism from Tarski-Bernays'.  (Contributed by Anthony Hart,
       16-Aug-2011.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    tbsyl $p |- ( ph -> ch ) $=
      ( wi tb-ax1 ax-mp ) BCFZACFZEABFIJFDABCGHH $.
  $}

  $( Lemma for ~ re1ax2 .  (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  re1ax2lem $p |- ( ( ph -> ( ps -> ch ) ) -> ( ps -> ( ph -> ch ) ) ) $=
    ( wi tb-ax2 tb-ax1 tbsyl tb-ax3 mpsyl ) BBCDZCDZDAJDKACDZDBLDBJKDZKBJBDMBJE
    JBCFGMKCDKDKJKCFKCHGGAJCFBKLFI $.

  $( ~ ax-2 rederived from the Tarski-Bernays axiom system.  Often ~ tb-ax1 is
     replaced with this theorem to make a "standard" system.  This is because
     this theorem is easier to work with, despite it being longer.
     (Contributed by Anthony Hart, 16-Aug-2011.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  re1ax2 $p |- ( ( ph -> ( ps -> ch ) ) -> ( ( ph -> ps )
     -> ( ph -> ch ) ) ) $=
    ( wi re1ax2lem tb-ax1 tb-ax3 tbsyl ax-mp mpsyl ) ABCDDBACDZDZABDZKDZABCEAKD
    ZKDZLMODZNOKCDKDKAKCFKCGHMLODDLQDABKFMLOEIQPNDDPQNDDMOKFQPNEIJH $.

  $( Constructor theorem for ` -/\ ` .  (Contributed by Anthony Hart,
     1-Sep-2011.) $)
  naim1 $p |- ( ( ph -> ps ) -> ( ( ps -/\ ch ) -> ( ph -/\ ch ) ) ) $=
    ( wi wn wo wnan con3 orim1d wa pm3.13 pm3.14 imim12i df-nan 3imtr4g syl ) A
    BDZBEZCEZFZAEZSFZDZBCGZACGZDQRUASABHIUCBCJEZACJEZUDUEUFTUBUGBCKACLMBCNACNOP
    $.

  $( Constructor theorem for ` -/\ ` .  (Contributed by Anthony Hart,
     1-Sep-2011.) $)
  naim2 $p |- ( ( ph -> ps ) -> ( ( ch -/\ ps ) -> ( ch -/\ ph ) ) ) $=
    ( wi wn wo wnan con3 orim2d wa pm3.13 pm3.14 imim12i df-nan 3imtr4g syl ) A
    BDZCEZBEZFZRAEZFZDZCBGZCAGZDQSUARABHIUCCBJEZCAJEZUDUEUFTUBUGCBKCALMCBNCANOP
    $.

  ${
    naim1i.1 $e |- ( ph -> ps ) $.
    naim1i.2 $e |- ( ps -/\ ch ) $.
    $( Constructor rule for ` -/\ ` .  (Contributed by Anthony Hart,
       2-Sep-2011.) $)
    naim1i $p |- ( ph -/\ ch ) $=
      ( wi wnan naim1 mp2 ) ABFBCGACGDEABCHI $.
  $}

  ${
    naim2i.1 $e |- ( ph -> ps ) $.
    naim2i.2 $e |- ( ch -/\ ps ) $.
    $( Constructor rule for ` -/\ ` .  (Contributed by Anthony Hart,
       2-Sep-2011.) $)
    naim2i $p |- ( ch -/\ ph ) $=
      ( wi wnan naim2 mp2 ) ABFCBGCAGDEABCHI $.
  $}

  ${
    naim12i.1 $e |- ( ph -> ps ) $.
    naim12i.2 $e |- ( ch -> th ) $.
    naim12i.3 $e |- ( ps -/\ th ) $.
    $( Constructor rule for ` -/\ ` .  (Contributed by Anthony Hart,
       2-Sep-2011.) $)
    naim12i $p |- ( ph -/\ ch ) $=
      ( naim1i naim2i ) CDAFABDEGHI $.
  $}

  $( Constructor theorem for ` -/\ ` .  (Contributed by Anthony Hart,
     1-Sep-2011.) $)
  nabi1 $p |- ( ( ph <-> ps ) -> ( ( ph -/\ ch ) <-> ( ps -/\ ch ) ) ) $=
    ( nanbi1 ) ABCD $.

  $( Constructor theorem for ` -/\ ` .  (Contributed by Anthony Hart,
     1-Sep-2011.) $)
  nabi2 $p |- ( ( ph <-> ps ) -> ( ( ch -/\ ph ) <-> ( ch -/\ ps ) ) ) $=
    ( nanbi2 ) ABCD $.

  ${
    nabi1i.1 $e |- ( ph <-> ps ) $.
    nabi1i.2 $e |- ( ps -/\ ch ) $.
    $( Constructor rule for ` -/\ ` .  (Contributed by Anthony Hart,
       2-Sep-2011.) $)
    nabi1i $p |- ( ph -/\ ch ) $=
      ( wnan bicomi nanbi1i mpbi ) BCFACFEBACABDGHI $.
  $}

  ${
    nabi2i.1 $e |- ( ph <-> ps ) $.
    nabi2i.2 $e |- ( ch -/\ ps ) $.
    $( Constructor rule for ` -/\ ` .  (Contributed by Anthony Hart,
       2-Sep-2011.) $)
    nabi2i $p |- ( ch -/\ ph ) $=
      ( wnan bicomi nanbi2i mpbi ) CBFCAFEBACABDGHI $.
  $}

  ${
    nabi12i.1 $e |- ( ph <-> ps ) $.
    nabi12i.2 $e |- ( ch <-> th ) $.
    nabi12i.3 $e |- ( ps -/\ th ) $.
    $( Constructor rule for ` -/\ ` .  (Contributed by Anthony Hart,
       2-Sep-2011.) $)
    nabi12i $p |- ( ph -/\ ch ) $=
      ( nabi1i nabi2i ) CDAFABDEGHI $.
  $}

  $( The double nand. $)
  w3nand $a wff ( ph -/\ ps -/\ ch ) $.

  $( The double nand.  This definition allows us to express the input of three
     variables only being false if all three are true.  (Contributed by Anthony
     Hart, 2-Sep-2011.) $)
  df-3nand $a |- ( ( ph -/\ ps -/\ ch ) <-> ( ph -> ( ps -> -. ch ) ) ) $.

  $( The double nand expressed in terms of pure nand.  (Contributed by Anthony
     Hart, 2-Sep-2011.) $)
  df3nandALT1 $p |- ( ( ph -/\ ps -/\ ch ) <-> ( ph -/\ ( ( ps -/\ ch )
    -/\ ( ps -/\ ch ) ) ) ) $=
    ( wn wi wnan wa w3nand iman biimpi jca biimpri adantl impbii df-nan anbi12i
    imnan bitr4i imbi2i 3bitr4i anbi2i notbii df-3nand ) ABCDEZEZABCFZUFFZGZDZA
    BCHAUGFAUFUFGZEAUJDZGZDUEUIAUJIUDUJAUDBCGDZUMGZUJUDUNUDUMUMUDUMBCQZJZUPKUMU
    DUMUDUMUOLMNUFUMUFUMBCOZUQPRSUHULUGUKAUFUFOUAUBTABCUCAUGOT $.

  $( The double nand expressed in terms of negation and and not.  (Contributed
     by Anthony Hart, 13-Sep-2011.) $)
  df3nandALT2 $p |- ( ( ph -/\ ps -/\ ch ) <-> -. ( ph /\ ps /\ ch ) ) $=
    ( w3nand wn wi wa w3a df-3nand imnan imbi2i 3anass xchbinxr 3bitri ) ABCDAB
    CEFZFABCGZEZFZABCHZEABCIOQABCJKRAPGSAPJABCLMN $.

  $( Double and in terms of double nand.  (Contributed by Anthony Hart,
     2-Sep-2011.) $)
  andnand1 $p |- ( ( ph /\ ps /\ ch ) <-> ( ( ph -/\ ps -/\ ch ) -/\
    ( ph -/\ ps -/\ ch ) ) ) $=
    ( w3a wn wi w3nand wnan wa 3anass pm4.63 anbi2i annim 3bitr2i notbii nannot
    df-3nand ) ABCDZABCEFZFZEZABCGZEUBUBHRABCIZIASEZIUAABCJUDUCABCKLASMNUBTABCQ
    OUBPN $.

  $( An ` -> ` nand relation.  (Contributed by Anthony Hart, 2-Sep-2011.) $)
  imnand2 $p |- ( ( -. ph -> ps ) <-> ( ( ph -/\ ph ) -/\ ( ps -/\ ps ) ) ) $=
    ( wn wa wnan wi nannot anbi12i notbii iman df-nan 3bitr4i ) ACZBCZDZCAAEZBB
    EZDZCMBFPQEORMPNQAGBGHIMBJPQKL $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Predicate Calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( For all sets, ` T. ` is true.  (Contributed by Anthony Hart,
     13-Sep-2011.) $)
  allt $p |- A. x T. $=
    ( wtru tru ax-gen ) BACD $.

  $( For all sets, ` F. ` is not true.  (Contributed by Anthony Hart,
     13-Sep-2011.) $)
  alnof $p |- A. x -. F. $=
    ( wfal wn fal ax-gen ) BCADE $.

  $( Not all sets hold ` F. ` as true.  (Contributed by Anthony Hart,
     13-Sep-2011.) $)
  nalf $p |- -. A. x F. $=
    ( wfal wal wn alnof falim sps mt2 ) BACBDACZAEBIDZAJFGH $.

  $( There exists a set that holds ` T. ` as true.  (Contributed by Anthony
     Hart, 13-Sep-2011.) $)
  extt $p |- E. x T. $=
    ( wtru wal wex allt 19.2 ax-mp ) BACBADAEBAFG $.

  $( There does not exist a set, such that ` T. ` is not true.  (Contributed by
     Anthony Hart, 13-Sep-2011.) $)
  nextnt $p |- -. E. x -. T. $=
    ( wtru wn tru notnoti nex ) BCABDEF $.

  $( There does not exist a set, such that ` F. ` is true.  (Contributed by
     Anthony Hart, 13-Sep-2011.) $)
  nextf $p |- -. E. x F. $=
    ( wfal fal nex ) BACD $.

  $( There does not exist exactly one set, such that ` F. ` is true.
     (Contributed by Anthony Hart, 13-Sep-2011.) $)
  unnf $p |- -. E! x F. $=
    ( wfal weu wex nextf euex mto ) BACBADAEBAFG $.

  $( There does not exist exactly one set, such that ` T. ` is true.
     (Contributed by Anthony Hart, 13-Sep-2011.) $)
  unnt $p |- -. E! x T. $=
    ( wtru weu wn wex nextnt eunex mto ) BACBDAEAFBAGH $.

  $( There does not exist at most one set, such that ` T. ` is true.
     (Contributed by Anthony Hart, 13-Sep-2011.) $)
  mont $p |- -. E* x T. $=
    ( wtru wmo wex weu wi wn extt unnt mth8 mp2 df-mo mtbir ) BACBADZBAEZFZNOGP
    GAHAINOJKBALM $.

  $( There exist at most one set, such that ` F. ` is true.  (Contributed by
     Anthony Hart, 13-Sep-2011.) $)
  mof $p |- E* x F. $=
    ( wfal wex wmo nextf exmo mtpor ) BACBADAEBAFG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Misc. Single Axiom Systems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( A single axiom for propositional calculus offered by Meredith.
     (Contributed by Anthony Hart, 13-Aug-2011.) $)
  meran1 $p |- ( -. ( -. ( -. ph \/ ps ) \/ ( ch \/ ( th \/ ta ) ) ) \/
          ( -. ( -. th \/ ph ) \/ ( ch \/ ( ta \/ ph ) ) ) ) $=
    ( wn wo wi orc olc imim1i pm2.24 idd jaod com12 pm1.5 imor 3imtr3i orim2i
    ja pm2.3 pm2.21 mth8 imim12i pm2.43d con4d 4syl 3syl 3imtr4i syl2im imori )
    AFZBGZFCDEGZGZGZDFZAGZFCEAGZGZGZUMUOHZURUTHUPVAVBABHZUOHZURDAHZUTVCUMUOABUM
    ULBIBULJTKDURADUQAADALDAMNOVCFZUOGZVEFZUTGZVDVEUTHVGCVFUNGZGCVHUSGZGVIVFCUN
    PVJVKCVJVFEDGGEVFDGZGEVHAGZGVKVFDEUAVFEDPVLVMEVCDHZVEAHVLVMVNAVEVNULVHULVCD
    ULVHHABUBDAUCUDUEUFVCDQVEAQRSEVHAPUGSCVHUSPUHVCUOQVEUTQUIUJUMUOQURUTQRUK $.

  $( A single axiom for propositional calculus offered by Meredith.
     (Contributed by Anthony Hart, 13-Aug-2011.) $)
  meran2 $p |- ( -. ( -. ( -. ph \/ ps ) \/ ( ch \/ ( th \/ ta ) ) ) \/
          ( -. ( -. ta \/ th ) \/ ( ch \/ ( ph \/ th ) ) ) ) $=
    ( wn wo meran1 imorri syl imori ) AFBGFCDEGGGZEFDGFCADGGGZLDFAGFCEAGGGZMLNA
    BCDEHINMDACEAHIJK $.

  $( A single axiom for propositional calculus offered by Meredith.
     (Contributed by Anthony Hart, 13-Aug-2011.) $)
  meran3 $p |- ( -. ( -. ( -. ph \/ ps ) \/ ( ch \/ ( th \/ ta ) ) ) \/
          ( -. ( -. ch \/ ph ) \/ ( ta \/ ( th \/ ph ) ) ) ) $=
    ( wn wo wi pm2.3 imim2i pm1.5 syl6 imor 3imtr3i meran1 imorri syl imori ) A
    FBGZFZCDEGGZGZCFAGFEDAGGGZUBTECDGGZGZUCSUAHZSUDHUBUEUFSCEDGGZUDUAUGSCDEIJCE
    DKLSUAMSUDMNUEUCABECDOPQR $.

  $( A single axiom for propositional calculus offered by Wajsberg.
     (Contributed by Anthony Hart, 13-Aug-2011.) $)
  waj-ax $p |- ( ( ph -/\ ( ps -/\ ch ) ) -/\ ( ( ( th -/\ ch ) -/\ ( ( ph
         -/\ th ) -/\ ( ph -/\ th ) ) ) -/\ ( ph -/\ ( ph -/\ ps ) ) ) ) $=
    ( wnan wa wi nannan simpr imim2i pm2.27 anim2d expdimp syl5com con3d df-nan
    wn 3imtr4g nanim sylib pm3.21 adantr com12 a2i sylibr jca sylbi mpbir ) ABC
    EEZDCEZADEZUKEEZAABEEZEEUIULUMFZGUIABCFZGZUNACBHUPULUMUPUJUKGULUPDCFZQADFZQ
    UJUKUPURUQUPACGZURUQUOCABCIJADUSUQAUSCDACKLMNODCPADPRUJUKSTUPAABFZGZUMAUOUT
    UOAUTBVACBAUAUBUCUDABAHUEUFUGUIUMULHUH $.

  $( A single axiom for propositional calculus offered by Lukasiewicz.
     (Contributed by Anthony Hart, 14-Aug-2011.) $)
  lukshef-ax2 $p |- ( ( ph -/\ ( ps -/\ ch ) ) -/\ ( ( ph -/\ ( ch -/\ ph ) )
          -/\ ( ( th -/\ ps ) -/\ ( ( ph -/\ th ) -/\ ( ph -/\ th ) ) ) ) ) $=
    ( wnan wa wi nannan biimpi simpr imim2i simpl pm2.27 anim2d expdimp syl5com
    ancr anim1i wn df-nan syl2anc con3 3imtr4g biimpri nanim anim12i 4syl mpbir
    anim2i ) ABCEEZACAEEZDBEZADEZUMEEZEEUJUKUNFZGUJABCFZGZACAFGZADFZDBFZGZFZURU
    LUMGZFUOUJUQACBHIUQACGZVAVBUPCABCJKUQABGZUSUTUPBABCLKADVEUTAVEBDABMNOPVDURV
    AACQRUAVAVCURVAUTSUSSULUMUSUTUBDBTADTUCUIURUKVCUNUKURAACHUDVCUNULUMUEIUFUGU
    JUNUKHUH $.

  $( ?  (Contributed by Anthony Hart, 14-Aug-2011.) $)
  arg-ax $p |- ( ( ph -/\ ( ps -/\ ch ) ) -/\ ( ( ph -/\ ( ps -/\ ch ) )
          -/\ ( ( th -/\ ch ) -/\ ( ( ch -/\ th ) -/\ ( ph -/\ th ) ) ) ) ) $=
    ( wnan wa wi wn df-nan pm4.57 com12 pm3.45 anim12i jaob 3imtr4i syl6 syl5bi
    wo biimpri nannan orel2 simpr a1i jad syl pm3.22 con1d ancli mpbir ) ABCEEZ
    UJDCEZCDEZADEZEEZEEUJUJUNFGUJUNABCFZGZUKULUMFZGUJUNUKDCFZHZUPUQDCIUPUSCDFZH
    ZADFZHZFZUQUPVDURVDHUTVBRZUPURUTVBJUPVEUTURUPCARZCGZVEUTGZVFUPCVFAUOCAHVFCA
    CUAKUOCGVFBCUBUCUDKCCGZACGZFUTUTGZVBUTGZFVGVHVIVKVJVLCCDLACDLMCCANUTUTVBNOU
    ECDUFPQUGVAULVCUMULVACDISUMVCADISMPQACBTUKUMULTOUHUJUNUJTUI $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Connective Symmetry
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( In the paper "On Variable Functors of Propositional Arguments",
     Lukasiewicz introduced a system that can handle variable connectives.
     This was done by introducing a variable, marked with a lowercase delta,
     which takes a wff as input.  In the system, "delta ` ph ` " means that
     "something is true of ` ph ` ."  "delta ` ph ` " can be substituted with
     ` -. ph ` , ` ps /\ ph ` , ` A. x ph ` , etc.

     Later on, Meredith discovered a single axiom, in the form of ` ( ` delta
     delta ` F. -> ` delta ` ph ` ` ) ` .  This represents the shortest theorem
     in the extended propositional calculus that cannot be derived as an
     instance of a theorem in propositional calculus.

     A symmetry with ` -. ` .  (Contributed by Anthony Hart, 4-Sep-2011.) $)
  negsym1 $p |- ( -. -. F. -> -. ph ) $=
    ( wfal wn fal pm2.24i ) BCACDE $.

  $( A symmetry with ` -> ` .

     See ~ negsym1 for more information.  (Contributed by Anthony Hart,
     4-Sep-2011.) $)
  imsym1 $p |- ( ( ps -> ( ps -> F. ) ) -> ( ps -> ph ) ) $=
    ( wfal wi pm2.21 falim imim2i ja ) BBCDBADBAECABAFGH $.

  $( A symmetry with ` <-> ` .

     See ~ negsym1 for more information.  (Contributed by Anthony Hart,
     4-Sep-2011.) $)
  bisym1 $p |- ( ( ps <-> ( ps <-> F. ) ) -> ( ps <-> ph ) ) $=
    ( wfal wb wn nbfal bibi2i pm5.19 pm2.21i sylbir ) BBCDZDBBEZDZBADZLKBBFGMNB
    HIJ $.

  $( A symmetry with ` /\ ` .

     See ~ negsym1 for more information.  (Contributed by Anthony Hart,
     4-Sep-2011.) $)
  consym1 $p |- ( ( ps /\ ( ps /\ F. ) ) -> ( ps /\ ph ) ) $=
    ( wfal wa wi falim ad2antll pm2.43i ) BBCDDZBADZCIJEZBBKFGH $.

  $( A symmetry with ` \/ ` .

     See ~ negsym1 for more information.  (Contributed by Anthony Hart,
     4-Sep-2011.) $)
  dissym1 $p |- ( ( ps \/ ( ps \/ F. ) ) -> ( ps \/ ph ) ) $=
    ( wo wfal orc falim orim2i jaoi ) BBACBDCBAEDABAFGH $.

  $( A symmetry with ` -/\ ` .

     See ~ negsym1 for more information.  (Contributed by Anthony Hart,
     4-Sep-2011.) $)
  nandsym1 $p |- ( ( ps -/\ ( ps -/\ F. ) ) -> ( ps -/\ ph ) ) $=
    ( wfal wnan wa wn df-nan biimpi anbi2i sylnib simpl fal intnan jctir sylibr
    nsyl ) BBCDZDZBAEZFBADRBBCEFZEZSRBQEZUARUBFBQGHQTBBCGIJSBTBAKCBLMNPBAGO $.

  $( A symmetry with ` A. ` .

     See ~ negsym1 for more information.  (Contributed by Anthony Hart,
     4-Sep-2011.)  (Proof shortened by Mario Carneiro, 11-Dec-2016.) $)
  unisym1 $p |- ( A. x A. x F. -> A. x ph ) $=
    ( wfal wal falim sps ) CBDABDZBCGBGEFF $.

  $( A symmetry with ` E. ` .

     See ~ negsym1 for more information.  (Contributed by Anthony Hart,
     4-Sep-2011.) $)
  exisym1 $p |- ( E. x E. x F. -> E. x ph ) $=
    ( wfal wex nfe1 falim eximi exlimi ) CBDABDBABECABAFGH $.

  $( A symmetry with ` E! ` .

     See ~ negsym1 for more information.  (Contributed by Anthony Hart,
     6-Sep-2011.) $)
  unqsym1 $p |- ( E! x E! x F. -> E! x ph ) $=
    ( wfal weu wex unnf nex euex mto pm2.21i ) CBDZBDZABDLKBEKBBFGKBHIJ $.

  $( A symmetry with ` E* ` .

     See ~ negsym1 for more information.  (Contributed by Anthony Hart,
     13-Sep-2011.) $)
  amosym1 $p |- ( E* x E* x F. -> E* x ph ) $=
    ( wmo wex weu wi df-mo wn mof 19.8a notnotd ax-mp pm2.21i notnoti nex eunex
    wfal mto ja sylbi ) QBCZBCUABDZUABEZFABCZUABGUBUCUDUBHZUDUAUEHBIZUAUBUABJKL
    MUCUDUCUAHZBDUGBUAUFNOUABPRMST $.

  $( A symmetry with ` [ x / y ] ` .

     See ~ negsym1 for more information.  (Contributed by Anthony Hart,
     11-Sep-2011.) $)
  subsym1 $p |- ( [ x / y ] [ x / y ] F. -> [ x / y ] ph ) $=
    ( wfal wsb weq wi wa wex fal intnan nex df-sb mtbir pm2.21i ) DCBEZCBEZACBE
    QCBFZPGZRPHZCIZHUASTCPRPRDGZRDHZCIZHUDUBUCCDRJKLKDCBMNKLKPCBMNO $.

$( (End of Anthony Hart's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Chen-Pang He
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordinal topology
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d B x y $.
    $( An ordinal number is a topological basis.  (Contributed by Chen-Pang He,
       8-Oct-2015.) $)
    ontopbas $p |- ( B e. On -> B e. TopBases ) $=
      ( vx vy con0 wcel cv cin wral ctb wa onelon anim12dan ex onin syl6 anc2ri
      wss wi inss1 jctl adantr a1i ontr2 syl6c ralrimivv fiinbas mpdan ) ADEZBF
      ZCFZGZAEZCAHBAHAIEUHULBCAAUHUIAEZUJAEZJZUKDEZUHJUKUIQZUMJZULUHUOUPUHUOUID
      EZUJDEZJZUPUHUOVAUHUMUSUNUTAUIKAUJKLMUIUJNOPUOURRUHUMURUNUMUQUIUJSTUAUBUK
      UIAUCUDUEBCADUFUG $.
  $}

  $( The class of ordinal numbers is a subclass of the class of topological
     bases.  (Contributed by Chen-Pang He, 8-Oct-2015.) $)
  onsstopbas $p |- On C_ TopBases $=
    ( vx con0 ctb cv ontopbas ssriv ) ABCADEF $.

  $( The class of ordinal numbers is a proper subclass of the class of
     topological bases.  (Contributed by Chen-Pang He, 9-Oct-2015.) $)
  onpsstopbas $p |- On C. TopBases $=
    ( con0 ctb wss c0 csn wcel wn wa wpss onsstopbas ctop indistop topbas ax-mp
    cpr wi snex prid2 snsn0non mp2 mth8 onelon ex mto pm3.2i ssnelpss ) ABCDDEZ
    EZOZBFZUIAFZGZHABIJUJULUIKFUJUHLUIMNUKUHUIFZUHAFZPZUMUNGUOGDUHUGQRSUMUNUATU
    KUMUNUIUHUBUCUDUEABUIUFT $.

  ${
    $d B x $.
    $( The topology generated from an ordinal number ` B ` is ` suc U. B ` .
       (Contributed by Chen-Pang He, 10-Oct-2015.) $)
    ontgval $p |- ( B e. On -> ( topGen ` B ) = suc U. B ) $=
      ( vx con0 wcel ctg cfv cuni csuc cv wa wss cpw cin wceq eltg4i cvv inex1g
      syl jctird wi onss ssinss1 ssonuni eleq1 biimprd syl2imc suceloni tg1 a1i
      sylc onuni sucidg ontr2 syl6c elsuci word eloni orduniss bastg sstrd ssid
      wo sseld eltg3i mpan2 eleq1a jaod syl5 impbid eqrdv ) ACDZBAEFZAGZHZVKBIZ
      VLDZVOVNDZVKVPVOCDZVNCDZJVOVMKZVMVNDZJVQVKVPVRVSVPVOAVOLZMZGZNZVKWDCDZVRV
      OAOVKWCPDWCCKZWFAWBCQVKACKWGAUAAWBCUBRWCPUCUJWEVRWFVOWDCUDUEUFVKVMCDZVSAU
      KZVMUGRSVKVPVTWAVPVTTVKVOAUHUIVKWHWAWIVMCULRSVOVMVNUMUNVQVOVMDZVOVMNZVBVK
      VPVOVMUOVKWJVPWKVKVMVLVOVKVMAVLVKAUPVMAKAUQAURRACUSUTVCVKVMVLDZWKVPTVKAAK
      WLAVAAACVDVEVMVLVOVFRVGVHVIVJ $.
  $}

  $( The topology generated from a successor ordinal number is itself.
     (Contributed by Chen-Pang He, 11-Oct-2015.) $)
  ontgsucval $p |- ( A e. On -> ( topGen ` suc A ) = suc A ) $=
    ( con0 wcel csuc ctg cuni wceq suceloni ontgval eloni ordunisuc suceq eqtrd
    cfv syl word ) ABCZADZENZRFZDZRQRBCSUAGAHRIOQTAGZUARGQAPUBAJAKOTALOM $.

  $( A successor ordinal number is a topology.  (Contributed by Chen-Pang He,
     11-Oct-2015.) $)
  onsuctop $p |- ( A e. On -> suc A e. Top ) $=
    ( con0 wcel csuc ctg ctop ontgsucval suceloni ontopbas tgcl 3syl eqeltrrd
    cfv ctb ) ABCZADZEMZPFAGOPBCPNCQFCAHPIPJKL $.

  $( One of the topologies on an ordinal number is its successor.  (Contributed
     by Chen-Pang He, 7-Nov-2015.) $)
  onsuctopon $p |- ( A e. On -> suc A e. ( TopOn ` A ) ) $=
    ( con0 wcel csuc ctop cuni wceq ctopon onsuctop word eloni ordunisuc eqcomd
    cfv syl istopon sylanbrc ) ABCZADZECASFZGZSAHNCAIRAJZUAAKUBTAALMOASPQ $.

  ${
    ordtoplem.1 $e |- ( U. A e. On -> suc U. A e. S ) $.
    $( Membership of the class of successor ordinals.  (Contributed by
       Chen-Pang He, 1-Nov-2015.) $)
    ordtoplem $p |- ( Ord A -> ( A =/= U. A -> A e. S ) ) $=
      ( cuni wne wceq wn word wcel df-ne con0 csuc wo ordeleqon eqcomi id unieq
      unon 3eqtr4a ord orim2i sylbi orcomd orduniorsuc onuni eleq1a 3syl syl5bi
      wi syl6c ) AADZEAUKFZGZAHZABIZAUKJUNUMAKIZAUKLZFZUOUNULUPUNUPULUNUPAKFZMU
      PULMANUSULUPUSKKDZAUKUTKROUSPAKQSUAUBUCTUNULURAUDTUPUKKIUQBIURUOUIAUECUQB
      AUFUGUJUH $.
  $}

  $( An ordinal is a topology iff it is not its supremum (union), proven
     without the Axiom of Regularity.  (Contributed by Chen-Pang He,
     1-Nov-2015.) $)
  ordtop $p |- ( Ord J -> ( J e. Top <-> J =/= U. J ) ) $=
    ( word ctop wcel cuni wne eqid topopn nordeq syl5 onsuctop ordtoplem impbid
    ex ) ABZACDZAAEZFZPQADZORAQQGHOSRAQINJACQKLM $.

  ${
    $d A x $.
    onsucconni.1 $e |- A e. On $.
    $( A successor ordinal number is a connected topology.  (Contributed by
       Chen-Pang He, 16-Oct-2015.) $)
    onsucconni $p |- suc A e. Conn $=
      ( vx csuc cconn wcel c0 wss con0 wa wceq wo wi oneli wne on0eln0 necon1bd
      wn biimprd syl ctop ccld cfv cin cpr onsuctop ax-mp elin cdif elsuci cuni
      onunisuci eqcomi cldopn onsuci elndif ssdif0 onssneli sylbir syl56 sylcom
      con2d orim1d impcom vex elpr sylibr syl2an sylbi ssriv isconn2 mpbir2an
      cv ) ADZEFVNUAFZVNVNUBUCZUDZGAUEZHAIFVOBAUFUGCVQVRCVMZVQFVSVNFZVSVPFZJVSV
      RFZVSVNVPUHVTVSAFZVSAKZLZAVSUIZVNFZWBWAVSAUJVSVNAVNUKAABULUMZUNWEWGJVSGKZ
      WDLZWBWGWEWJWGWCWIWDWGWFIFZWCWIMVNWFABUONWKWCGVSFZRWIWKWLWCWLGWFFZRWKWFGK
      ZWCRZGVSAUPWKWMWFGWKWMWFGOWFPSQWNAVSHWOAVSUQAVSBURUSUTVBWCWLVSGWCVSIFZVSG
      OZWLMAVSBNWPWLWQVSPSTQVATVCVDVSGACVEVFVGVHVIVJVNAWHVKVL $.
  $}

  $( A successor ordinal number is a connected topology.  (Contributed by
     Chen-Pang He, 16-Oct-2015.) $)
  onsucconn $p |- ( A e. On -> suc A e. Conn ) $=
    ( con0 wcel csuc cconn cif wceq suceq eleq1d 0elon elimel onsucconni dedth
    c0 ) ABCZADZECOANFZDZECANAQGPREAQHIQANBJKLM $.

  $( An ordinal topology is connected.  (Contributed by Chen-Pang He,
     1-Nov-2015.) $)
  ordtopconn $p |- ( Ord J -> ( J e. Top <-> J e. Conn ) ) $=
    ( word ctop wcel cuni wne ordtop onsucconn ordtoplem sylbid conntop impbid1
    cconn ) ABZACDZAMDZNOAAEZFPAGAMQHIJAKL $.

  $( An ordinal topology is connected, expressed in constants.  (Contributed by
     Chen-Pang He, 16-Oct-2015.) $)
  onintopssconn $p |- ( On i^i Top ) C_ Conn $=
    ( vx con0 ctop cin cconn cv wcel wa elin word wb eloni ordtopconn syl sylbi
    biimpa ssriv ) ABCDZEAFZRGSBGZSCGZHSEGZSBCITUAUBTSJUAUBKSLSMNPOQ $.

  ${
    $d A o x y $.
    $( A successor ordinal number is a T_0 space.  (Contributed by Chen-Pang
       He, 8-Nov-2015.) $)
    onsuct0 $p |- ( A e. On -> suc A e. Kol2 ) $=
      ( vx vo vy con0 wcel csuc wel wb wral wi word cv wa wal ordelon wn ancoms
      wss syl ct0 weq eloni df-ral anim12dan ordsuc sylbi adantr ontri1 onsssuc
      ex notbi bitr3d adantrr adantrl bibi12d syl5bb biimpd syl6an a2d ordelord
      ordelss ordsucsssuc syldan mpbid ssneld jcad pm5.21 idd jad alimdv syl5bi
      syl6 syld dfcleq suc11 syl5bbr sylibd ralrimivva ctopon onsuctopon ist0-2
      wceq cfv mpbird ) AEFZAGZUAFZBCHZDCHZIZCWGJZBDUBZKZDAJBAJZWFALZWOAUCWPWNB
      DAAWPBMZAFZDMZAFZNZNZWLCMZWQGZFZXCWSGZFZIZCOZWMWLXCWGFZWKKZCOXBXIWKCWGUDX
      BXKXHCXBXKXJXHKXHXBXJWKXHXBWQEFZWSEFZNZXJXCEFZWKXHKWPWRXLWTXMAWQPAWSPUEZW
      PXJXOKZXAWPWGLZXQAUFXRXJXOWGXCPUKUGUHXNXONZWKXHWKWIQZWJQZIZXSXHWIWJULXOXN
      YBXHIXOXNNXTXEYAXGXOXLXTXEIXMXOXLNXCWQSXTXEXCWQUIXCWQUJUMUNXOXMYAXGIXLXOX
      MNXCWSSYAXGXCWSUIXCWSUJUMUOUPRUQURUSUTXBXJXHXHXBXJQZXEQZXGQZNXHXBYCYDYEWP
      WRYCYDKWTWPWRNZXDWGXCYFWQASZXDWGSZAWQVBWPWRWQLZYGYHIZAWQVAYIWPYJWQAVCRVDV
      EVFUNWPWTYCYEKWRWPWTNZXFWGXCYKWSASZXFWGSZAWSVBWPWTWSLZYLYMIZAWSVAYNWPYOWS
      AVCRVDVEVFUOVGXEXGVHVMXBXHVIVJVNVKVLXBXNXIWMIXPXIXDXFWCXNWMCXDXFVOWQWSVPV
      QTVRVSTWFWGAVTWDFWHWOIAWABDCWGAWBTWE $.
  $}

  $( An ordinal topology is T_0.  (Contributed by Chen-Pang He, 8-Nov-2015.) $)
  ordtopt0 $p |- ( Ord J -> ( J e. Top <-> J e. Kol2 ) ) $=
    ( word ctop wcel ct0 cuni wne ordtop onsuct0 ordtoplem sylbid t0top impbid1
    ) ABZACDZAEDZNOAAFZGPAHAEQIJKALM $.

  ${
    $d A y z $.
    onsucsuccmpi.1 $e |- A e. On $.
    $( The successor of a successor ordinal number is a compact topology,
       proven without the Axiom of Regularity.  (Contributed by Chen-Pang He,
       18-Oct-2015.) $)
    onsucsuccmpi $p |- suc suc A e. Comp $=
      ( vy vz csuc ccmp wcel ctop cv cuni wceq cpw cfn cin wi con0 onunisuci wa
      wss eqcomi wrex wral onsuci onsuctop ax-mp wn onirri onsucssi sseq1 mtbii
      mtbi elpwi unissd syl6sseq nsyl csn cun cdif eldif elpwunsn sylbir df-suc
      ex pweqi eleq2s snelpwi snfi jctr sylibr elexi unisn unieq eqeq2d sylancl
      elin rspcev syl syl56 rgen iscmp mpbir2an ) AEZEZFGWCHGZWBCIZJZKZWBDIZJZK
      ZDWELZMNZUAZOZCWCLZUBWBPGWDABUCZWBUDUEWNCWOWGWEWBLZGZUFZWEWOGWBWEGZWMWGWF
      ASZWRWGWBASZXAAAGXBABUGAABBUHUKWBWFAUIUJWRWFWBJAWRWEWBWEWBULUMABQUNUOWSWT
      OWEWBWBUPZUQZLZWOWEXEGZWSWTXFWSRWEXEWQURGWTWEXEWQUSWEWBWBUTVAVCWCXDWBVBVD
      VEWTXCWKGZWMWBWEVFXGXCWLGZWBXCJZKZWMXGXGXCMGZRXHXGXKWBVGVHXCWKMVOVIXIWBWB
      WBPWPVJVKTWJXJDXCWLWHXCKWIXIWBWHXCVLVMVPVNVQVRVSCDWCWBWCJWBWBWPQTVTWA $.
  $}

  $( The successor of a successor ordinal number is a compact topology.
     (Contributed by Chen-Pang He, 18-Oct-2015.) $)
  onsucsuccmp $p |- ( A e. On -> suc suc A e. Comp ) $=
    ( con0 wcel csuc ccmp c0 cif wceq suceq syl eleq1d 0elon onsucsuccmpi dedth
    elimel ) ABCZADZDZECPAFGZDZDZECAFASHZRUAEUBQTHRUAHASIQTIJKSAFBLOMN $.

  ${
    $d A y z $.
    limsucncmpi.1 $e |- Lim A $.
    $( The successor of a limit ordinal is not compact.  (Contributed by
       Chen-Pang He, 20-Oct-2015.) $)
    limsucncmpi $p |- -. suc A e. Comp $=
      ( vy vz wcel ctop cuni wceq cpw cfn wrex wi wa wn cvv wss ax-mp wne con0
      c0 csuc ccmp cin wral elex sucexb sylibr sssucid elpwg mpbiri wlim limuni
      cv elin elpwi anim1i sylbi wb nlim0 2th xor3 mpbir necon3bi uni0 neeqtrri
      limeq unieq neeq2d a1i word limord ordsson mp2b sstr2 mpi ordunifi 3expia
      sylan ssel nordeq mpan syl6 adantr syld pm2.61dne neneqd nrex eqeq2d pweq
      syl ineq1d rexeqdv notbid anbi12d rspcev mpanr12 rexanali sylib 3syl mpbi
      imnan ordunisuc eqcomi iscmp mtbir ) AUAZUBEXFFEZACUMZGZHZADUMZGZHZDXHIZJ
      UCZKZLCXFIZUDZMZXGXRNZLXSNXGAOEZAXQEZXTXGXFOEYAXFFUEAUFUGYAYBAXFPAUHAXFOU
      IUJYBXJXPNZMZCXQKZXTYBAAGZHZXMDAIZJUCZKZNZYEAUKZYGBAULQXMDYIXKYIEZAXLYMXK
      APZXKJEZMZAXLRZYMXKYHEZYOMYPXKYHJUNYRYNYOXKAUOUPUQYPYQXKTXKTHZYQLYPYSYQAT
      GZRATYTYLTUKZURZNZATRUUCYLUUANZURYLUUDBUSUTYLUUAVAVBUUBATATVFVCQVDVEYSXLY
      TAXKTVGVHUJVIYPXKTRZXLXKEZYQYNXKSPZYOUUEUUFLYNASPZUUGYLAVJZUUHBAVKZAVLVMX
      KASVNVOUUGYOUUEUUFXKVPVQVRYNUUFYQLYOYNUUFXLAEZYQXKAXLVSUUIUUKYQYLUUIBUUJQ
      AXLVTWAWBWCWDWEWJWFWGYDYGYKMCAXQXHAHZXJYGYCYKUULXIYFAXHAVGWHUULXPYJUULXMD
      XOYIUULXNYHJXHAWIWKWLWMWNWOWPXJXPCXQWQWRWSXGXRXAWTCDXFAXFGZAYLUUIUUMAHBUU
      JAXBVMXCXDXE $.
  $}

  $( The successor of a limit ordinal is not compact.  (Contributed by
     Chen-Pang He, 20-Oct-2015.) $)
  limsucncmp $p |- ( Lim A -> -. suc A e. Comp ) $=
    ( wlim csuc ccmp wcel con0 cif wceq suceq eleq1d notbid limeq limon elimhyp
    wn limsucncmpi dedth ) ABZACZDEZORAFGZCZDEZOAFAUAHZTUCUDSUBDAUAIJKUARUABFBA
    FAUALFUALMNPQ $.

  $( An ordinal topology is compact iff the underlying set is its supremum
     (union) only when the ordinal is ` 1o ` .  (Contributed by Chen-Pang He,
     1-Nov-2015.) $)
  ordcmp $p |- ( Ord A -> ( A e. Comp <-> ( U. A = U. U. A -> A = 1o ) ) ) $=
    ( word ccmp wcel cuni wceq c1o wi c0 wo biimpd syl ctop cmptop wn csuc syl6
    a1i con0 ord csn wss wlim orduni unizlim uni0b orbi1i syl6bb sssn 0ntop mto
    eleq1 mtbiri pm2.21d df1o2 syl6eqr a1d jaoi sylbi wne ordtop necon2bd con3i
    id a1dd limsucncmp notbid syl5ibr orduniorsuc mpjaod pm2.21 com23 ordeleqon
    jaod syl5d unon eqcomi unieqi unieq unieqd 3eqtr4a orim2i orcomd syl5 suceq
    eqtr ex syl6c onuni onsucsuccmp eleq1a 4syl syl6eq 0cmp syl6eqel jad impbid
    ) ABZACDZAEZWTEZFZAGFZHWRXBAIUAZUBZWTUCZJZWSXCWRWTBZXBXGHAUDZXHXBXGXHXBWTIF
    ZXFJXGWTUEXJXEXFAUFUGUHKLWRXGWSXCWRXEWSXCHZXFXEXKHWRXEAIFZAXDFZJXKAIUIXLXKX
    MXLWSXCXLWSICDZXNIMDUJINUKAICULUMUNXMXCWSXMAXDGXMVDUOUPUQURUSRWRXFWSOZXKWRA
    WTFZXFXOHZAWTPZFZWRXPXOXFWRXPAMDZOXOWRXTAWTWRXTAWTUTAVAKVBWSXTANVCQVEXSXQHW
    RXFXOXSXRCDZOWTVFXSWSYAAXRCULVGVHRAVIZVJWSXCVKQVNVLVOWRXBXCWSWRXBOZASDZAXAP
    ZPZFZWSWRXBYDWRYDXBWRYDASFZJYDXBJAVMYHXBYDYHSEZYIEWTXASYIYISVPVQVRASVSZYHWT
    YIYJVTWAWBUSWCTWRYCXSXRYFFZYGYCXPOWRXSXPXBAWTVSVCWRXPXSYBTWDWRYCWTYEFZYKWRX
    BYLWRXHXBYLJXIWTVILTWTYEWEQXSYKYGAXRYFWFWGWHYDWTSDXASDYFCDYGWSHAWIWTWIXAWJY
    FCAWKWLWHXCWSHWRXCAXDCXCAGXDXCVDUOWMWNWORWPWQ $.

  $( The ordinal topologies ` 1o ` and ` 2o ` are Hausdorff.  (Contributed by
     Chen-Pang He, 10-Nov-2015.) $)
  ssoninhaus $p |- { 1o , 2o } C_ ( On i^i Haus ) $=
    ( c1o c2o cpr con0 cha wcel wss 1on 2on prssi mp2an c0 cpw csn df1o2 eqtr4i
    cvv dishaus ax-mp eqeltri pw0 0ex df2o2 pwpw0 p0ex ssini ) ABCZDEADFBDFUGDG
    HIABDJKAEFBEFUGEGALMZEALNZUHOUAPLQFUHEFUBLQRSTBUIMZEBLUICUJUCUDPUIQFUJEFUEU
    IQRSTABEJKUF $.

  ${
    $d j a $.
    $( The ordinal T_1 spaces are ` 1o ` and ` 2o ` , proven without the Axiom
       of Regularity.  (Contributed by Chen-Pang He, 9-Nov-2015.) $)
    onint1 $p |- ( On i^i Fre ) = { 1o , 2o } $=
      ( vj va con0 ct1 cin c1o c2o cpr c0 csn cdif wcel wa wne wceq wss cun cha
      wn wb csuc cv elin ccld cuni wral ctop eqid ist1 simprbi onelon neldifsnd
      cfv ex p0ex prid2 df2o2 eleqtrri elunii mpan df1o2 eqeltrri onirri eldifd
      1on a1i ne0i syl 2thd nbbn sylib on0eln0 nsyli imp 0ex prid1 adantl simpr
      nsyl sneqd eleq1d rspcdv cldopn syl6 mtod con2d 2on ontri1 onsssuc bitr3d
      syl5 mpan2 sylibd 0ntop t1top mto nelneq elsni sylbi ssriv df-suc difeq1i
      difundir eqtri df-pr df2o3 difid disjsn2 ax-mp difeq2i difin dif0 3eqtr3i
      1n0 uneq12i uncom un0 3eqtri eqtr4i sseqtri ssoninhaus haust1 sslin sstri
      2on0 eqssi ) CDEZFGHZYGGUAZIJZKZYHAYGYKAUBZYGLYLCLZYLDLZMZYLYKLYLCDUCYOYL
      YIYJYMYNYLYILZYMYNGYLLZSZYPYNBUBZJZYLUDUMZLZBYLUEZUFZYMYRYNYLUGLUUDYLUUCB
      UUCUHZUIUJYMYQUUDYMYQUUDSYMYQMZUUDUUCYJKZYLLZYMYQUUHSYMUUHUUGCLZYQYMUUHUU
      IYLUUGUKUNYQIUUGLZUUGINZTZUUIYQUUJSZUUKTUULSYQUUMUUKYQIUUCULYQYJUUGLUUKYQ
      YJUUCYJYJGLYQYJUUCLYJIYJHZGIYJUOUPUQURYJGYLUSUTYJYJLSYQYJFYJCVAVEVBVCVFVD
      UUGYJVGVHVIUUJUUKVJVKUUGVLVSVMVNUUFUUDYJUUALZUUHUUFUUBUUOBIUUCYQIUUCLZYMI
      GLYQUUPIUUNGIYJVOVPUQURIGYLUSUTVQUUFYSIOZMZYTYJUUAUURYSIUUFUUQVRVTWAWBYJY
      LUUCUUEWCWDWEUNWFWKYMGCLZYRYPTWGYMUUSMYLGPYRYPYLGWHYLGWIWJWLWMVNYNYLYJLZS
      YMYNYLIOZUUTYNIDLZSUVASUVBIUGLWNIWOWPYLIDWQWLYLIWRVSVQVDWSWTYKGYJKZGJZYJK
      ZQZYHYKGUVDQZYJKUVFYIUVGYJGXAXBGUVDYJXCXDYHFJZUVDQUVFFGXEUVCUVHUVEUVDUVCY
      JUVHQZYJKYJYJKZUVHYJKZQZUVHGUVIYJGIFHUVIXFIFXEXDXBYJUVHYJXCUVLIUVHQUVHIQU
      VHUVJIUVKUVHYJXGUVHUVHYJEZKUVHIKUVKUVHUVMIUVHFINUVMIOXNFIXHXIXJUVHYJXKUVH
      XLXMXOIUVHXPUVHXQXRXRUVDUVDYJEZKUVDIKUVEUVDUVNIUVDGINUVNIOYEGIXHXIXJUVDYJ
      XKUVDXLXMXOXSXSXTYHCREZYGYARDPUVOYGPARDYLYBWTRDCYCXIYDYF $.
  $}

  $( The ordinal Hausdorff spaces are ` 1o ` and ` 2o ` .  (Contributed by
     Chen-Pang He, 10-Nov-2015.) $)
  oninhaus $p |- ( On i^i Haus ) = { 1o , 2o } $=
    ( vx cha cin c1o c2o cpr ct1 wss cv haust1 ssriv sslin ax-mp onint1 sseqtri
    con0 ssoninhaus eqssi ) PBCZDEFZSPGCZTBGHSUAHABGAIJKBGPLMNOQR $.

$( (End of Chen-Pang He's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Jeff Hoffman
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Inferences for finite induction on generic function values
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( findrec.mm - Inferences for finite induction on generic function values
     and specifically, functions defined via rec(G, A). $)

  $( Please add description here.  (Contributed by Jeff Hoffman,
     12-Feb-2008.) $)
  fveleq $p |- ( A = B ->
             ( ( ph -> ( F ` A ) e. P ) <-> ( ph -> ( F ` B ) e. P ) ) ) $=
    ( wceq cfv wcel fveq2 eleq1d imbi2d ) BCFZBEGZDHCEGZDHALMNDBCEIJK $.

  ${
    $d F x y $.  $d P x y $.  $d x y ph $.  $d x A $.
    findfvcl.1 $e |- ( ph -> ( F ` (/) ) e. P ) $.
    findfvcl.2 $e |- ( y e. _om -> ( ph -> ( ( F ` y ) e. P ->
                     ( F ` suc y ) e. P ) ) ) $.
    $( Please add description here.  (Contributed by Jeff Hoffman,
       12-Feb-2008.) $)
    findfvcl $p |- ( A e. _om -> ( ph -> ( F ` A ) e. P ) ) $=
      ( vx cv cfv wcel wi c0 csuc fveleq com a2d finds ) AHIZEJDKLAMEJDKLABIZEJ
      DKZLATNZEJDKZLACEJDKLHBCASMDEOASTDEOASUBDEOASCDEOFTPKAUAUCGQR $.
  $}

  ${
    $d y z $.  $d G y $.  $d A y $.  $d P y $.  $d G z $.  $d A z $.  $d P z $.
    findreccl.1 $e |- ( z e. P -> ( G ` z ) e. P ) $.
    $( Please add description here.  (Contributed by Jeff Hoffman,
       19-Feb-2008.) $)
    findreccl $p |- ( C e. _om -> ( A e. P -> ( rec ( G , A ) ` C ) e. P ) ) $=
      ( vy wcel crdg c0 cfv wceq rdg0g eleq1a mpd cv com csuc wi eleq1d vtoclga
      con0 nnon fveq2 rdgsuc syl5ibr syl a1d findfvcl ) BDHZGCDEBIZUJJUKKZBLULD
      HBDEMBDULNOGPZQHZUMUKKZDHZUMRUKKZDHZSZUJUNUMUBHZUSUMUCUPURUTUOEKZDHZAPZEK
      ZDHVBAUODVCUOLVDVADVCUOEUDTFUAUTUQVADBUMEUETUFUGUHUI $.
  $}

  ${
    $d G x $.  $d A x $.  $d C x $.  $d G z $.  $d A z $.  $d P z $.
    findabrcl.1 $e |- ( z e. P -> ( G ` z ) e. P ) $.
    $( Please add description here.  (Contributed by Jeff Hoffman,
       16-Feb-2008.)  (Revised by Mario Carneiro, 11-Sep-2015.) $)
    findabrcl $p |- ( ( C e. _om /\ A e. P ) ->
                  ( ( x e. _V |-> ( rec ( G , A ) ` x ) ) ` C ) e. P ) $=
      ( com wcel wa cvv cv crdg cfv cmpt wceq elex fveq2 eqid fvex fvmpt adantr
      syl findreccl imp eqeltrd ) DHIZCEIZJDAKALZFCMZNZOZNZDUJNZEUGUMUNPZUHUGDK
      IUODHQADUKUNKULUIDUJRULSDUJTUAUCUBUGUHUNEIBCDEFGUDUEUF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  gdc.mm
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( gdc.mm  9-Apr-2008 $)

  ${
    nnssi2.1 $e |- NN C_ D $.
    nnssi2.2 $e |- ( B e. NN -> ph ) $.
    nnssi2.3 $e |- ( ( A e. D /\ B e. D /\ ph ) -> ps ) $.
    $( Convert a theorem for real/complex numbers into one for positive
       integers.  (Contributed by Jeff Hoffman, 17-Jun-2008.) $)
    nnssi2 $p |- ( ( A e. NN /\ B e. NN ) -> ps ) $=
      ( cn wcel wa w3a sseli 3anim123i 3anidm23 syl ) CIJZDIJZKCEJZDEJZALZBQRUA
      QSRTRAIECFMIEDFMGNOHP $.
  $}

  ${
    nnssi3.1 $e |- NN C_ D $.
    nnssi3.2 $e |- ( C e. NN -> ph ) $.
    nnssi3.3 $e |- ( ( ( A e. D /\ B e. D /\ C e. D ) /\ ph ) -> ps ) $.
    $( Convert a theorem for real/complex numbers into one for positive
       integers.  (Contributed by Jeff Hoffman, 17-Jun-2008.) $)
    nnssi3 $p |- ( ( A e. NN /\ B e. NN /\ C e. NN ) -> ps ) $=
      ( cn wcel w3a sseli 3anim123i 3ad2ant3 syl2anc ) CJKZDJKZEJKZLCFKZDFKZEFK
      ZLABQTRUASUBJFCGMJFDGMJFEGMNSQARHOIP $.
  $}

  $( Please add description here.  (Contributed by Jeff Hoffman,
     17-Jun-2008.) $)
  nndivsub $p |- ( ( ( A e. NN /\ B e. NN /\ C e. NN )
                       /\ ( ( A / C ) e. NN /\ A < B ) )
                    -> ( ( B / C ) e. NN <-> ( ( B - A ) / C ) e. NN ) ) $=
    ( cn wcel cdiv co clt wbr wa cmin wi cr cc0 wb nnre jca biimpd cc nncn wceq
    w3a nngt0 ltdiv1 syl3an nnsub sylan9bb exp32 com34 imp32 nnaddcl expcom wne
    caddc nnsscn nnne0 divcl nnssi2 anim12i 3impdir npcan ancoms eleq1d sylan9r
    adantrr impbid 3ad2ant2 3ad2ant1 3ad2ant3 divsubdir syl3anc adantr bitr4d
    syl ) ADEZBDEZCDEZUBZACFGZDEZABHIZJZJZBCFGZDEZWDVSKGZDEZBAKGCFGZDEZWCWEWGVR
    VTWAWEWGLVRVTWEWAWGVRVTWEWAWGLVRVTWEJZJWAWGVRWAVSWDHIZWJWGVOAMEVPBMEVQCMEZN
    CHIZJWAWKOAPBPVQWLWMCPCUCQABCUDUEVSWDUFUGRUHUIUJVRVTWGWELWAVTWGWFVSUNGZDEZV
    RWEWGVTWOWFVSUKULVRWOWEVRWNWDDVRVSSEZWDSEZJZWNWDUAZVOVQVPWRVOVQJWPVPVQJWQCN
    UMZWPACSUOCUPZACUQURWTWQBCSUOXABCUQURUSUTWQWPWSWDVSVAVBVNVCRVDVEVFVRWIWGOWB
    VRWHWFDVRBSEZASEZCSEZWTJZWHWFUAVPVOXBVQBTVGVOVPXCVQATVHVQVOXEVPVQXDWTCTXAQV
    IBACVJVKVCVLVM $.

  $( A factor of a positive integer cannot exceed it.  (Contributed by Jeff
     Hoffman, 17-Jun-2008.) $)
  nndivlub $p |- ( ( A e. NN /\ B e. NN )
        -> ( ( A / B ) e. NN -> B <_ A ) ) $=
    ( cn wcel cr cc0 clt wbr wa cdiv co cle wi nnre nngt0 jca c1 nnge1 lediv2
    wb 3anidm23 cc recn adantr gt0ne0 divid breq1d syl2anc adantl bitrd syl5ibr
    wne syl2anr ) BCDZBEDZFBGHZIZAEDZFAGHZIZABJKZCDZBALHZMACDZUNUOUPBNBOPVDURUS
    ANAOPVBVCUQUTIZQVALHZVARVEVCAAJKZVALHZVFUQUTVCVHTBAASUAUTVHVFTZUQUTAUBDZAFU
    LZVIURVJUSAUCUDAUEVJVKIVGQVALAUFUGUHUIUJUKUM $.

  $c gcdOLD $. $( The greatest common divisor $)

  $( Extend class notation to include the gdc function.
     (New usage is discouraged.) $)
  cgcdOLD $a class gcdOLD ( A , B ) $.

  ${
    $d x A $.  $d x B $.
    $( ` gcdOLD ( A , B ) ` is the largest positive integer that evenly divides
       both ` A ` and ` B ` .  (Contributed by Jeff Hoffman, 17-Jun-2008.)
       (New usage is discouraged.) $)
    df-gcdOLD $a |- gcdOLD ( A , B ) = sup ( { x e. NN | ( ( A / x ) e. NN
                                           /\ ( B / x ) e. NN ) } , NN , < ) $.

    $( Lemma for Euclid's Elements, Book 7, proposition 2.  The original
       mentions the smaller measure being 'continually subtracted' from the
       larger.  Many authors interpret this phrase as ` A ` mod ` B ` .  Here,
       just one subtraction step is proved to preserve the ` gcdOLD ` .  The
       ` rec ` function will be used in other proofs for iterated subtraction.
       (Contributed by Jeff Hoffman, 17-Jun-2008.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ee7.2aOLD $p |- ( ( A e. NN /\ B e. NN )
         -> ( A < B -> gcdOLD ( A , B ) = gcdOLD ( A , ( B - A ) ) ) ) $=
      ( vx cn wcel wa clt wbr cgcdOLD cmin co wceq cv cdiv crab com23 df-gcdOLD
      csup wi imp wb w3a nndivsub exp32 3expia pm5.32d rabbidva supeq1d 3eqtr4g
      ex ) ADEZBDEZFZABGHZABIZABAJKZIZLUMUNFZACMZNKDEZBUSNKDEZFZCDOZDGRUTUPUSNK
      DEZFZCDOZDGRUOUQURDVCVFGURVBVECDURUSDEZFUTVAVDURVGUTVAVDUAZSZUMUNVGVISUMV
      GUNVIUKULVGUNVISUKULVGUBZUTUNVHVJUTUNVHABUSUCUDPUEPTTUFUGUHCABQCAUPQUIUJ
      $.
  $}

$( (End of Jeff Hoffman's mathbox.) $)


$( Begin $[ set-mbox-ai.mm $] $)
$( Skip $[ set-main.mm $] $)
$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Asger C. Ipsen
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Continuous nowhere differentiable functions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x $.
    dnival.1 $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    $( Value of the "distance to nearest integer" function.  (Contributed by
       Asger C. Ipsen, 4-Apr-2021.) $)
    dnival $p |- ( A e. RR ->
              ( T ` A ) = ( abs ` ( ( |_ ` ( A + ( 1 / 2 ) ) ) - A ) ) ) $=
      ( cv c1 c2 cdiv co caddc cfl cfv cmin cabs cr wceq oveq1 fveq2d oveq12d
      id fvex fvmpt ) ABAEZFGHIZJIZKLZUCMIZNLBUDJIZKLZBMIZNLOCUCBPZUGUJNUKUFUIU
      CBMUKUEUHKUCBUDJQRUKTSRDUJNUAUB $.
  $}

  ${
    dnicld1.1 $e |- ( ph -> A e. RR ) $.
    $( Closure theorem for the "distance to nearest integer" function.
       (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnicld1 $p |- ( ph -> ( abs ` ( ( |_ ` ( A + ( 1 / 2 ) ) ) - A ) ) e. RR )
      $=
      ( c1 c2 cdiv co caddc cfl cfv cmin cr wa halfre a1i jca readdcl syl recnd
      wcel reflcl subcld abscld ) ABDEFGZHGZIJZBKGAUFBAUFAUELTZUFLTABLTZUDLTZMU
      GAUHUICUIANOPBUDQRUEUARSABCSUBUC $.
  $}

  ${
    $d A x $.
    dnicld2.1 $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    dnicld2.2 $e |- ( ph -> A e. RR ) $.
    $( Closure theorem for the "distance to nearest integer" function.
       (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnicld2 $p |- ( ph -> ( T ` A ) e. RR ) $=
      ( cfv c1 c2 cdiv co caddc cfl cmin cabs cr wcel wceq dnival syl dnicld1
      eqeltrd ) ACDGZCHIJKLKMGCNKOGZPACPQUCUDRFBCDESTACFUAUB $.
  $}

  ${
    dnif.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    $( The "distance to nearest integer" function is a function.  (Contributed
       by Asger C. Ipsen, 4-Apr-2021.) $)
    dnif $p |- T : RR --> RR $=
      ( cr cv c1 c2 cdiv co caddc cfl cfv cmin cabs wcel id dnicld1 fmpti ) ADD
      AEZFGHIJIKLSMINLBCSDOZSTPQR $.
  $}

  ${
    $d A x $.
    dnizeq0.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    dnizeq0.1 $e |- ( ph -> A e. ZZ ) $.
    $( The distance to nearest integer is zero for integers.  (Contributed by
       Asger C. Ipsen, 15-Jun-2021.) $)
    dnizeq0 $p |- ( ph -> ( T ` A ) = 0 ) $=
      ( cfv c1 co caddc cmin cabs cc0 wcel wceq syl halfre a1i cxr eqtrd c2 cfl
      cdiv cr zred dnival cz wa jca flzadd cle wbr clt w3a rexri halfgt0 ltleii
      cico 0re halflt1 3pm3.2i wb 0xr pm3.2i elico1 ax-mp mpbir ico01fl0 oveq2d
      1re recnd addid1d oveq1d subidd fveq2d abs0 ) ACDGZCHUAUCIZJIUBGZCKIZLGZM
      ACUDNVQWAOACFUEZBCDEUFPAWAMLGZMAVTMLAVTCCKIMAVSCCKAVSCVRUBGZJIZCACUGNZVRU
      DNZUHVSWEOAWFWGFWGAQRUIVRCUJPAWECMJICAWDMCJAVRMHURINZWDMOWHAWHVRSNZMVRUKU
      LZVRHUMULZUNZWIWJWKVRQUOMVRUSQUPUQUTVAMSNZHSNZUHWHWLVBWMWNVCHVJUOVDMHVRVE
      VFVGRVRVHPVIACACWBVKZVLTTVMACWOVNTVOWCMOAVPRTT $.
  $}

  ${
    $d A x $.
    dnizphlfeqhlf.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    dnizphlfeqhlf.1 $e |- ( ph -> A e. ZZ ) $.
    $( The distance to nearest integer is a half for half-integers.
       (Contributed by Asger C. Ipsen, 15-Jun-2021.) $)
    dnizphlfeqhlf $p |- ( ph -> ( T ` ( A + ( 1 / 2 ) ) ) = ( 1 / 2 ) ) $=
      ( c1 co caddc cfv cmin cabs cr wcel wceq halfre a1i syl cz cc0 cfl dnival
      c2 cdiv zred readdcld recnd addassd 1cnd 2halvesd oveq2d peano2zd eqeltrd
      eqtrd oveq1d addcld pncan2d fveq2d cle wbr clt halfgt0 ltlei ax-mp absidd
      flid 0re 3eqtrd ) ACGUCUDHZIHZDJZVJVIIHZUAJZVJKHZLJZVILJVIAVJMNVKVOOACVIA
      CFUEZVIMNAPQZUFBVJDEUBRAVNVILAVNVLVJKHVIAVMVLVJKAVLSNVMVLOAVLCGIHZSAVLCVI
      VIIHZIHVRACVIVIACVPUGZAVIVQUGZWAUHAVSGCIAGAUIUJUKUNACFULUMVLVFRUOAVJVIACV
      IVTWAUPWAUQUNURAVIVQTVIUSUTZATVIVAUTWBVBTVIVGPVCVDQVEVH $.
  $}

  ${
    $( Variant of ~ rddif .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    rddif2 $p |- ( A e. RR ->
      0 <_ ( ( 1 / 2 ) - ( abs ` ( ( |_ ` ( A + ( 1 / 2 ) ) ) - A ) ) ) ) $=
      ( cr wcel cc0 c1 c2 cdiv caddc cfl cfv cmin cabs cle wbr rddif halfre a1i
      co id dnicld1 subge0d mpbird ) ABCZDEFGRZAUDHRIJAKRLJZKRMNUEUDMNAOUCUDUEU
      DBCUCPQUCAUCSTUAUB $.
  $}

  ${
    $d A x $.  $d B x $.
    dnibndlem1.1 $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    dnibndlem1.2 $e |- ( ph -> A e. RR ) $.
    dnibndlem1.3 $e |- ( ph -> B e. RR ) $.
    $( Lemma for ~ dnibnd .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibndlem1 $p |- ( ph -> ( ( abs ` ( ( T ` B ) - ( T ` A ) ) ) <_ S
                          <->
                          ( abs `
                             ( ( abs ` ( ( |_ ` ( B + ( 1 / 2 ) ) ) - B ) ) -
                               ( abs ` ( ( |_ ` ( A + ( 1 / 2 ) ) ) - A ) ) ) )
                            <_ S ) ) $=
      ( cfv cmin co cabs caddc cfl cr wcel wceq dnival syl c1 c2 oveq12d fveq2d
      cdiv cle breq1d ) ADFJZCFJZKLZMJDUAUBUELZNLOJDKLMJZCUKNLOJCKLMJZKLZMJEUFA
      UJUNMAUHULUIUMKADPQUHULRIBDFGSTACPQUIUMRHBCFGSTUCUDUG $.
  $}

  ${
    $d A x $.  $d B x $.
    dnibndlem2.1 $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    dnibndlem2.2 $e |- ( ph -> A e. RR ) $.
    dnibndlem2.3 $e |- ( ph -> B e. RR ) $.
    dnibndlem2.4 $e |- ( ph ->
                  ( |_ ` ( B + ( 1 / 2 ) ) ) = ( |_ ` ( A + ( 1 / 2 ) ) ) ) $.
    $( Lemma for ~ dnibnd .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibndlem2 $p |- ( ph -> ( abs ` ( ( T ` B ) - ( T ` A ) ) )
                              <_ ( abs ` ( B - A ) ) ) $=
      ( cfv cmin co cabs cle wbr cr wcel recnd subcld abscld c1 c2 caddc cfl wa
      halfre a1i jca readdcl syl reflcl cc eqeltrrd abs2difabsd nnncan1d eqcomd
      cdiv fveq2d oveq1d abssubd 3eqtrd leidd eqbrtrrd letrd dnibndlem1 mpbird
      ) ADEJCEJKLMJDCKLZMJZNODUAUBUQLZUCLZUDJZDKLZMJZCVIUCLUDJZCKLZMJZKLZMJZVHN
      OAVRVLVOKLZMJZVHAVQAVMVPAVMAVLAVKDAVKAVJPQZVKPQADPQZVIPQZUEWAAWBWCHWCAUFU
      GUHDVIUIUJVJUKUJRZADHRZSZTRAVPAVOAVNCAVKVNULIWDUMACGRZSZTRSTAVSAVLVOWFWHS
      TAVGADCWEWGSTZAVLVOWFWHUNAVHVTVHNAVHVKCKLZVLKLZMJVOVLKLZMJVTAVGWKMAWKVGAV
      KCDWDWGWEUOUPURAWKWLMAWJVOVLKAVKVNCKIUSUSURAVOVLWHWFUTVAAVHWIVBVCVDABCDVH
      EFGHVEVF $.
  $}

  ${
    dnibndlem3.1 $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    dnibndlem3.2 $e |- ( ph -> A e. RR ) $.
    dnibndlem3.3 $e |- ( ph -> B e. RR ) $.
    dnibndlem3.4 $e |- ( ph ->
          ( |_ ` ( B + ( 1 / 2 ) ) ) = ( ( |_ ` ( A + ( 1 / 2 ) ) ) + 1 ) ) $.
    $( Lemma for ~ dnibnd .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibndlem3 $p |- ( ph -> ( abs ` ( B - A ) ) =
        ( abs ` ( ( B - ( ( |_ ` ( B + ( 1 / 2 ) ) ) - ( 1 / 2 ) ) )
                  + ( ( ( |_ ` ( A + ( 1 / 2 ) ) ) + ( 1 / 2 ) ) - A ) ) ) )
      $=
      ( cmin co c1 caddc cc wcel wceq recnd cr a1i syl c2 cdiv cfl cfv cabs w3a
      wa halfre jca readdcl reflcl halfcn subcld 3jca npncan eqcomd oveq1d 1cnd
      addsubass 1mhlfehlf oveq2d 3eqtrd eqtrd fveq2d ) ADCJKZDDLUAUBKZMKZUCUDZV
      FJKZJKZCVFMKZUCUDZVFMKZCJKZMKZUEAVEVJVICJKZMKZVOAVQVEADNOZVINOZCNOZUFVQVE
      PAVRVSVTADHQAVHVFAVHAVGROZVHROADROZVFROZUGWAAWBWCHWCAUHSZUIDVFUJTVGUKTQVF
      NOZAULSZUMACGQUNDVICUOTUPAVPVNVJMAVIVMCJAVIVLLMKZVFJKZVLLVFJKZMKZVMAVHWGV
      FJIUQAVLNOZLNOZWEUFWHWJPAWKWLWEAVLAVKROZVLROACROZWCUGWMAWNWCGWDUICVFUJTVK
      UKTQAURWFUNVLLVFUSTAWIVFVLMWIVFPAUTSVAVBUQVAVCVD $.
  $}

  ${
    $( Lemma for ~ dnibnd .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibndlem4 $p |- ( B e. RR ->
      0 <_ ( B - ( ( |_ ` ( B + ( 1 / 2 ) ) ) - ( 1 / 2 ) ) ) ) $=
      ( cr wcel cc0 c1 c2 cdiv co caddc cfl cfv cmin cle wbr id halfre readdcld
      a1i syl mpbird flle reflcl lesubaddd wa jca resubcl subge0d ) ABCZDAAEFGH
      ZIHZJKZUILHZLHMNULAMNZUHUMUKUJMNZUHUJBCZUNUHAUIUHOZUIBCZUHPRZQZUJUASUHUKU
      IAUHUOUKBCZUSUJUBSZURUPUCTUHAULUPUHUTUQUDULBCUHUTUQVAURUEUKUIUFSUGT $.
  $}

  ${
    $( Lemma for ~ dnibnd .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibndlem5 $p |- ( A e. RR ->
      0 < ( ( ( |_ ` ( A + ( 1 / 2 ) ) ) + ( 1 / 2 ) ) - A ) ) $=
      ( cr wcel c1 c2 cdiv co caddc cfl cfv clt wbr wa a1i jca readdcl syl wceq
      cc recnd cc0 cmin id halfre flltp1 ax-1cn 2halves ax-mp eqcomi oveq2d w3a
      reflcl 3jca addass eqcomd eqtrd breqtrd ltadd1d mpbird posdifd mpbid ) AB
      CZAADEFGZHGZIJZVCHGZKLZUAVFAUBGKLVBVGVDVFVCHGZKLVBVDVEDHGZVHKVBVDBCZVDVIK
      LVBVBVCBCZMVJVBVBVKVBUCZVKVBUDNZOAVCPQZVDUEQVBVIVEVCVCHGZHGZVHVBDVOVEHDVO
      RVBVODDSCVODRUFDUGUHUINUJVBVHVPVBVESCZVCSCZVRUKVHVPRVBVQVRVRVBVEVBVJVEBCZ
      VNVDULQZTVBVCVMTZWAUMVEVCVCUNQUOUPUQVBAVFVCVLVBVSVKMVFBCVBVSVKVTVMOVEVCPQ
      ZVMURUSVBAVFVLWBUTVA $.
  $}

  ${
    dnibndlem6.1 $e |- ( ph -> A e. RR ) $.
    dnibndlem6.2 $e |- ( ph -> B e. RR ) $.
    $( Lemma for ~ dnibnd .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibndlem6 $p |- ( ph ->
            ( abs `
                 ( ( abs ` ( ( |_ ` ( B + ( 1 / 2 ) ) ) - B ) ) -
                   ( abs ` ( ( |_ ` ( A + ( 1 / 2 ) ) ) - A ) ) ) )
            <_
            ( ( ( 1 / 2 ) - ( abs ` ( ( |_ ` ( B + ( 1 / 2 ) ) ) - B ) ) ) +
              ( ( 1 / 2 ) - ( abs ` ( ( |_ ` ( A + ( 1 / 2 ) ) ) - A ) ) ) ) )
      $=
      ( co caddc cfl cfv cmin cabs dnicld1 subcld abscld cc wcel cr syl cle wbr
      c1 c2 recnd halfcn a1i readdcld wa halfre jca resubcl w3a abs3dif abssubd
      cdiv 3jca cc0 rddif2 absidd eqtrd oveq12d eqled letrd ) ACUAUBUNFZGFHICJF
      KIZBVCGFHIBJFKIZJFZKIZVDVCJFZKIZVCVEJFZKIZGFZVCVDJFZVJGFZAVFAVDVEAVDACELZ
      UCZAVEABDLZUCZMNAVIVKAVHAVDVCVPVCOPZAUDUEZMNAVJAVCVEVTVRMNUFZAVMVJAVCQPZV
      DQPZUGVMQPAWBWCWBAUHUEZVOUIVCVDUJRZAWBVEQPZUGVJQPAWBWFWDVQUIVCVEUJRZUFAVD
      OPZVEOPZVSUKVGVLSTAWHWIVSVPVRVTUOVDVEVCULRAVLVNWAAVIVMVKVJGAVIVMKIVMAVDVC
      VPVTUMAVMWEACQPUPVMSTECUQRURUSAVJWGABQPUPVJSTDBUQRURUTVAVB $.
  $}

  ${
    dnibndlem7.1 $e |- ( ph -> B e. RR ) $.
    $( Lemma for ~ dnibnd .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibndlem7 $p |- ( ph ->
        ( ( 1 / 2 ) - ( abs ` ( ( |_ ` ( B + ( 1 / 2 ) ) ) - B ) ) )
        <_ ( B - ( ( |_ ` ( B + ( 1 / 2 ) ) ) - ( 1 / 2 ) ) ) ) $=
      ( c1 c2 cdiv co caddc cfl cfv cmin cabs cle cr wcel wa jca recnd subsub3d
      syl halfre a1i readdcl reflcl resubcl dnicld1 leabsd oveq1d eqcomd 3eqtrd
      lesub2dd addcomd breqtrd ) ADEFGZBUNHGZIJZBKGZLJZKGUNUQKGZBUPUNKGKGZMAUQU
      RUNAUPNOZBNOZPUQNOAVAVBAUONOZVAAVBUNNOZPVCAVBVDCVDAUAUBZQBUNUCTUOUDTZCQUP
      BUETZABCUFVEAUQVGUGUKAUSUNBHGZUPKGUOUPKGZUTAUNUPBAUNVERZAUPVFRZABCRZSAVHU
      OUPKAUNBVJVLULUHAUTVIABUPUNVLVKVJSUIUJUM $.
  $}

  ${
    dnibndlem8.1 $e |- ( ph -> A e. RR ) $.
    $( Lemma for ~ dnibnd .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibndlem8 $p |- ( ph ->
        ( ( 1 / 2 ) - ( abs ` ( ( |_ ` ( A + ( 1 / 2 ) ) ) - A ) ) )
        <_ ( ( ( |_ ` ( A + ( 1 / 2 ) ) ) + ( 1 / 2 ) ) - A ) ) $=
      ( c1 c2 cdiv co caddc cfl cfv cmin cabs cle wcel halfre a1i recnd breqtrd
      cr syl jca simpl readdcld reflcl resubcld dnicld1 leabsd abssubd lesub2dd
      wa subsub3d addcomd oveq1d eqtrd ) ADEFGZBUOHGZIJZBKGLJZKGUOBUQKGZKGZUQUO
      HGZBKGZMAUSURUOABUQCAUPSNZUQSNABSNZUOSNZUJZVCAVDVECVEAOPZUAVFBUOVDVEUBVEV
      FOPUCTUPUDTZUEZABCUFVGAUSUSLJURMAUSVIUGABUQABCQZAUQVHQZUHRUIAUTUOUQHGZBKG
      VBAUOBUQAUOVGQZVJVKUKAVLVABKAUOUQVMVKULUMUNR $.
  $}

  ${
    $d A x $.  $d B x $.
    dnibndlem9.1 $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    dnibndlem9.2 $e |- ( ph -> A e. RR ) $.
    dnibndlem9.3 $e |- ( ph -> B e. RR ) $.
    dnibndlem9.4 $e |- ( ph ->
          ( |_ ` ( B + ( 1 / 2 ) ) ) = ( ( |_ ` ( A + ( 1 / 2 ) ) ) + 1 ) ) $.
    $( Lemma for ~ dnibnd .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibndlem9 $p |- ( ph -> ( abs ` ( ( T ` B ) - ( T ` A ) ) )
                              <_ ( abs ` ( B - A ) ) ) $=
      ( cfv cmin co cabs cle caddc recnd cr wcel wa syl wbr c1 cdiv cfl dnicld1
      c2 subcld abscld halfre a1i jca resubcl readdcld reflcl addcld dnibndlem6
      dnibndlem7 dnibndlem8 le2addd cc0 dnibndlem4 clt dnibndlem5 ltled addge0d
      0red absidd eqcomd breqtrd letrd dnibndlem3 dnibndlem1 mpbird ) ADEJCEJKL
      MJDCKLMJZNUADUBUFUCLZOLZUDJZDKLMJZCVOOLZUDJZCKLMJZKLZMJZVNNUAAWCDVQVOKLZK
      LZVTVOOLZCKLZOLZMJZVNNAWCVOVRKLZVOWAKLZOLZWIAWBAVRWAAVRADHUEZPAWAACGUEZPU
      GUHAWJWKAVOQRZVRQRZSWJQRAWOWPWOAUIUJZWMUKVOVRULTZAWOWAQRZSWKQRAWOWSWQWNUK
      VOWAULTZUMAWHAWEWGADWDADHPAVQVOAVQAVPQRVQQRZADVOHWQUMVPUNTZPAVOWQPZUGUGAW
      FCAVTVOAVTAVSQRVTQRACVOGWQUMVSUNTZPXCUOACGPUGUOUHACDGHUPAWLWHWINAWJWKWEWG
      WRWTADQRZWDQRZSWEQRAXEXFHAXAWOSXFAXAWOXBWQUKVQVOULTUKDWDULTZAWFQRZCQRZSWG
      QRAXHXIAVTVOXDWQUMGUKWFCULTZADHUQACGURUSAWIWHAWHAWEWGXGXJUMAWEWGXGXJAXEUT
      WENUAHDVATAUTWGAVFXJAXIUTWGVBUAGCVCTVDVEVGVHVIVJAVNWIABCDEFGHIVKVHVIABCDV
      NEFGHVLVM $.
  $}

  ${
    dnibndlem10.1 $e |- ( ph -> A e. RR ) $.
    dnibndlem10.2 $e |- ( ph -> B e. RR ) $.
    dnibndlem10.3 $e |- ( ph ->
          ( ( |_ ` ( A + ( 1 / 2 ) ) ) + 2 ) <_ ( |_ ` ( B + ( 1 / 2 ) ) ) ) $.
    $( Lemma for ~ dnibnd .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibndlem10 $p |- ( ph -> 1 <_ ( B - A ) ) $=
      ( c1 c2 co caddc cmin cr wcel wa a1i readdcld syl jca cle wbr cdiv halfre
      cfl cfv 1red reflcl resubcl resubcld recnd 2cnd addsubassd oveq1d pnpcand
      subcld subsub4d wceq cc ax-1cn 2halves ax-mp oveq2d 2m1e1 3eqtrd lesub1dd
      eqcomd eqbrtrd flle lesubaddd mpbird fllep1 addassd eqtrd breqtrd leadd1d
      2re le2subd letrd ) AGCGHUAIZJIZUCUDZVRKIZBVRJIZUCUDZVRJIZKIZCBKIAUEAWALM
      ZWDLMZNWELMAWFWGAVTLMZVRLMZNWFAWHWIAVSLMZWHACVREWIAUBOZPZVSUFQZWKRVTVRUGQ
      ZAWCVRAWBLMZWCLMABVRDWKPZWBUFQZWKPZRWAWDUGQACBEDUHAGWCHJIZVRKIZWDKIZWESAX
      AGAXAWCHVRKIZJIZWDKIXBVRKIZGAWTXCWDKAWCHVRAWCWQUIZAUJZAVRWKUIZUKULAWCXBVR
      XEAHVRXFXGUNXGUMAXDHVRVRJIZKIHGKIZGAHVRVRXFXGXGUOAXHGHKXHGUPZAGUQMXJURGUS
      UTOZVAXIGUPAVBOVCVCVEAWTWAWDAWSLMZWINWTLMAXLWIAWCHWQHLMAVOOPZWKRWSVRUGQWN
      WRAWSVTVRXMWMWKFVDVDVFAWABCWDWNDEWRAWACSTVTVSSTZAWJXNWLVSVGQAVTVRCWMWKEVH
      VIABWDSTWBWDVRJIZSTAWBWCGJIZXOSAWOWBXPSTWPWBVJQAXOXPAXOWCXHJIXPAWCVRVRXEX
      GXGVKAXHGWCJXKVAVLVEVMABWDVRDWRWKVNVIVPVQ $.
  $}

  ${
    dnibndlem11.1 $e |- ( ph -> A e. RR ) $.
    dnibndlem11.2 $e |- ( ph -> B e. RR ) $.
    $( Lemma for ~ dnibnd .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibndlem11 $p |- ( ph ->
                          ( abs `
                            ( ( abs ` ( ( |_ ` ( B + ( 1 / 2 ) ) ) - B ) ) -
                              ( abs ` ( ( |_ ` ( A + ( 1 / 2 ) ) ) - A ) ) ) )
                          <_ ( 1 / 2 ) ) $=
      ( co caddc cfl cfv cmin cabs cle wbr cneg dnicld1 resubcld wcel recnd syl
      cr c1 c2 cdiv wa halfre a1i negsubdi2d cc0 readdcld reflcl subcld absge0d
      subge02d mpbid rddif letrd eqbrtrd lenegcon1d jca absled mpbird ) ACUAUBU
      CFZGFZHIZCJFZKIZBVBGFZHIZBJFZKIZJFZKIVBLMVBNVKLMZVKVBLMZUDAVLVMAVKVBAVFVJ
      ACEOZABDOZPZVBTQAUEUFZAVKNVJVFJFZVBLAVFVJAVFVNRAVJVORUGAVRVJVBAVJVFVOVNPV
      OVQAUHVFLMVRVJLMAVEAVDCAVDAVCTQVDTQACVBEVQUIVCUJSRACERUKULAVJVFVOVNUMUNAB
      TQVJVBLMDBUOSUPUQURAVKVFVBVPVNVQAUHVJLMVKVFLMAVIAVHBAVHAVGTQVHTQABVBDVQUI
      VGUJSRABDRUKULAVFVJVNVOUMUNACTQVFVBLMECUOSUPUSAVKVBVPVQUTVA $.
  $}

  ${
    $d A x $.  $d B x $.
    dnibndlem12.1 $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    dnibndlem12.2 $e |- ( ph -> A e. RR ) $.
    dnibndlem12.3 $e |- ( ph -> B e. RR ) $.
    dnibndlem12.4 $e |- ( ph ->
        ( ( |_ ` ( A + ( 1 / 2 ) ) ) + 2 ) <_ ( |_ ` ( B + ( 1 / 2 ) ) ) ) $.
    $( Lemma for ~ dnibnd .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibndlem12 $p |- ( ph -> ( abs ` ( ( T ` B ) - ( T ` A ) ) )
                              <_ ( abs ` ( B - A ) ) ) $=
      ( cfv cmin co cabs cle wbr c1 caddc cfl dnicld1 letrd cdiv resubcld recnd
      c2 abscld 1red rehalfcld dnibndlem11 clt halflt1 cr wcel wa wi halfre 1re
      pm3.2i ltle ax-mp a1i dnibndlem10 leabsd dnibndlem1 mpbird ) ADEJCEJKLMJD
      CKLZMJZNODPUDUALZQLRJDKLMJZCVGQLRJCKLMJZKLZMJZVFNOAVKPVFAVJAVJAVHVIADHSAC
      GSUBUCUEZAUFZAVEAVEADCHGUBZUCUEZAVKVGPVLAPVMUGVMACDGHUHVGPNOZAVGPUIOZVPUJ
      VGUKULZPUKULZUMVQVPUNVRVSUOUPUQVGPURUSUSUTTAPVEVFVMVNVOACDGHIVAAVEVNVBTTA
      BCDVFEFGHVCVD $.
  $}

  ${
    $d A x $.  $d B x $.
    dnibndlem13.1 $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    dnibndlem13.2 $e |- ( ph -> A e. RR ) $.
    dnibndlem13.3 $e |- ( ph -> B e. RR ) $.
    dnibndlem13.4 $e |- ( ph ->
         ( |_ ` ( A + ( 1 / 2 ) ) ) <_ ( |_ ` ( B + ( 1 / 2 ) ) ) ) $.
    $( Lemma for ~ dnibnd .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibndlem13 $p |- ( ph -> ( abs ` ( ( T ` B ) - ( T ` A ) ) )
                              <_ ( abs ` ( B - A ) ) ) $=
      ( c1 c2 co caddc cfv wbr cle wa cr wcel adantr cdiv cfl clt cmin ad2antrr
      cabs wceq simpr dnibndlem12 eqcomd dnibndlem9 wo cz halfre readdcld flcld
      wb a1i jca zltp1le syl mpbid reflcl peano2re zred leloed wi peano2zd 1cnd
      recnd addassd 1p1e2 oveq2d eqtrd breq1d biimpd orim1d mpjaodan dnibndlem2
      bitrd mpd ) ACJKUALZMLZUBNZDWBMLZUBNZUCOZDENCENUDLUFNDCUDLUFNPOZWDWFUGZAW
      GQZWDKMLZWFPOZWHWDJMLZWFUGZWJWLQBCDEFACRSZWGWLGUEADRSZWGWLHUEWJWLUHUIWJWN
      QZBCDEFAWOWGWNGUEAWPWGWNHUEWQWMWFWJWNUHUJUKWJWMWFUCOZWNULZWLWNULWJWMWFPOZ
      WSWJWGWTAWGUHWJWDUMSZWFUMSZQZWGWTUQAXCWGAXAXBAWCACWBGWBRSAUNURZUOZUPZAWEA
      DWBHXDUOUPZUSTWDWFUTVAVBWJWMWFAWMRSZWGAWDRSZXHAWCRSXIXEWCVCVAZWDVDVATAWFR
      SWGAWFXGVEZTVFVBWJWRWLWNAWRWLVGWGAWRWLAWRWMJMLZWFPOZWLAWMUMSZXBQWRXMUQAXN
      XBAWDXFVHXGUSWMWFUTVAAXLWKWFPAXLWDJJMLZMLWKAWDJJAWDXJVJAVIZXPVKAXOKWDMXOK
      UGAVLURVMVNVOVTVPTVQWAVRAWIQZBCDEFAWOWIGTAWPWIHTXQWDWFAWIUHUJVSAWDWFPOWGW
      IULIAWDWFXJXKVFVBVR $.
  $}

  ${
    $d A x $.  $d B x $.
    dnibnd.1 $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    dnibnd.2 $e |- ( ph -> A e. RR ) $.
    dnibnd.3 $e |- ( ph -> B e. RR ) $.
    $( The "distance to nearest integer" function is Lipshitz continuous.
       (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    dnibnd $p |- ( ph -> ( abs ` ( ( T ` B ) - ( T ` A ) ) )
                              <_ ( abs ` ( B - A ) ) ) $=
      ( co caddc cfl cfv cle wbr cmin cabs cr wcel adantr recnd c1 c2 cdiv wceq
      wa dnibndlem13 dnicld2 abssubd breqtrd eqbrtrd halfre a1i readdcld reflcl
      simpr syl letrid mpjaodan ) ACUAUBUCIZJIZKLZDUSJIZKLZMNZDELZCELZOIPLZDCOI
      PLZMNVCVAMNZAVDUEBCDEFACQRZVDGSADQRZVDHSAVDUOUFAVIUEZVGVFVEOIPLZVHMAVGVMU
      DVIAVEVFAVEABDEFHUGTAVFABCEFGUGTUHSVLVMCDOIPLZVHMVLBDCEFAVKVIHSAVJVIGSAVI
      UOUFAVNVHUDVIACDACGTADHTUHSUIUJAVAVCAUTQRVAQRACUSGUSQRAUKULZUMUTUNUPAVBQR
      VCQRADUSHVOUMVBUNUPUQUR $.
  $}

  ${
    $d T d e y z $.  $d x y z $.
    dnicn.1 $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    $( The "distance to nearest integer" function is continuous.  (Contributed
       by Asger C. Ipsen, 4-Apr-2021.) $)
    dnicn $p |- T e. ( RR -cn-> RR ) $=
      ( vz vy vd ve cr co wcel cv cmin cabs cfv clt wbr wi wral crp wa ccncf wf
      wrex dnif simpr simplr dnicld2 simplll resubcld recnd abscld rpred dnibnd
      ad2antrr lelttrd ralrimiva wceq breq2 imbi1d ralbidv rspcev syl2anc rgen2
      ex cc wss wb ax-resscn elcncf2 mp2an mpbir2an ) BHHUAIJZHHBUBZDKZEKZLIZMN
      ZFKZOPZVNBNZVOBNZLIZMNZGKZOPZQZDHRZFSUCZGSREHRZABCUDWHEGHSVOHJZWDSJZTZWKV
      QWDOPZWEQZDHRZWHWJWKUEZWLWNDHWLVNHJZTZWMWEWRWMTZWCVQWDWSWBWSWBWSVTWAWSAVN
      BCWLWQWMUFZUGWSAVOBCWJWKWQWMUHZUGUIUJUKWSVPWSVPWSVNVOWTXAUIUJUKWSWDWLWKWQ
      WMWPUNULWSAVOVNBCXAWTUMWRWMUEUOVDUPWGWOFWDSVRWDUQZWFWNDHXBVSWMWEVRWDVQOUR
      USUTVAVBVCHVEVFZXCVLVMWITVGVHVHEGFDHHBVIVJVK $.
  $}

  ${
    $d A n y $.  $d C n y $.  $d M n $.  $d N n y $.  $d T n y $.  $d ph y n $.
    knoppcnlem1.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppcnlem1.2 $e |- ( ph -> A e. RR ) $.
    knoppcnlem1.3 $e |- ( ph -> M e. NN0 ) $.
    $( Lemma for ~ knoppcn .  (Contributed by Asger C. Ipsen, 4-Apr-2021.) $)
    knoppcnlem1 $p |- ( ph -> ( ( F ` A ) ` M ) =
            ( ( C ^ M ) x. ( T ` ( ( ( 2 x. N ) ^ M ) x. A ) ) ) ) $=
      ( cexp co cmul cfv cn0 cvv cmpt wceq cv c2 a1i oveq2 fveq2d oveq2d adantl
      cr mpteq2dv wcel nn0ex mptex fvmptd oveq1d oveq12d ovexd ) AFHDFUAZMNZUBI
      ONZUQMNZCONZEPZONZDHMNZUSHMNZCONZEPZONZQCGPRABCFQURUTBUAZONZEPZONZSZFQVCS
      ZUHGRGBUHVMSTAJUCVICTZVMVNTAVOFQVLVCVOVKVBUROVOVJVAEVICUTOUDUEUFUIUGKVNRU
      JAFQVCUKULUCUMUQHTZVCVHTAVPURVDVBVGOUQHDMUDVPVAVFEVPUTVECOUQHUSMUDUNUEUOU
      GLAVDVGOUPUM $.
  $}

  ${
    $d A x $.  $d M x $.  $d N x $.
    knoppcnlem2.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppcnlem2.n $e |- ( ph -> N e. NN ) $.
    knoppcnlem2.1 $e |- ( ph -> C e. RR ) $.
    knoppcnlem2.2 $e |- ( ph -> A e. RR ) $.
    knoppcnlem2.3 $e |- ( ph -> M e. NN0 ) $.
    $( Lemma for ~ knoppcn .  (Contributed by Asger C. Ipsen, 4-Apr-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppcnlem2 $p |- ( ph ->
        ( ( C ^ M ) x. ( T ` ( ( ( 2 x. N ) ^ M ) x. A ) ) ) e. RR ) $=
      ( cexp co c2 cmul reexpcld cr wcel remulcld cfv 2re a1i nnre syl dnicld2
      cn ) ADFMNOGPNZFMNZCPNZEUAADFJLQABUJEHAUICAUHFAOGORSAUBUCAGUGSGRSIGUDUETL
      QKTUFT $.
  $}

  ${
    $d A n y $.  $d A x $.  $d C n y $.  $d M n $.  $d M x $.  $d N n y $.
    $d N x $.  $d T n y $.  $d ph n y $.
    knoppcnlem3.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppcnlem3.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppcnlem3.n $e |- ( ph -> N e. NN ) $.
    knoppcnlem3.1 $e |- ( ph -> C e. RR ) $.
    knoppcnlem3.2 $e |- ( ph -> A e. RR ) $.
    knoppcnlem3.3 $e |- ( ph -> M e. NN0 ) $.
    $( Lemma for ~ knoppcn .  (Contributed by Asger C. Ipsen, 4-Apr-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppcnlem3 $p |- ( ph -> ( ( F ` A ) ` M ) e. RR ) $=
      ( cfv cexp co cmul c2 cr knoppcnlem1 knoppcnlem2 eqeltrd ) AIDHQQEIRSUAJT
      SIRSDTSFQTSUBACDEFGHIJLOPUCABDEFIJKMNOPUDUE $.
  $}

  ${
    $d A n y $.  $d A x $.  $d C m $.  $d C n y $.  $d M m $.  $d M n $.
    $d M x $.  $d N n y $.  $d N x $.  $d T n y $.  $d ph m $.  $d ph n y $.
    knoppcnlem4.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppcnlem4.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppcnlem4.n $e |- ( ph -> N e. NN ) $.
    knoppcnlem4.1 $e |- ( ph -> C e. RR ) $.
    knoppcnlem4.2 $e |- ( ph -> A e. RR ) $.
    knoppcnlem4.3 $e |- ( ph -> M e. NN0 ) $.
    $( Lemma for ~ knoppcn .  (Contributed by Asger C. Ipsen, 4-Apr-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppcnlem4 $p |- ( ph ->
        ( abs ` ( ( F ` A ) ` M ) ) <_
        ( ( m e. NN0 |-> ( ( abs ` C ) ^ m ) ) ` M ) ) $=
      ( cfv cabs co cexp c2 cmul cn0 cv cmpt knoppcnlem1 fveq2d recnd expcld cr
      cle wcel 2re a1i cn nnre remulcld reexpcld dnicld2 absmuld absexpd oveq1d
      syl eqtrd c1 abscld 1red absge0d expge0d cdiv cfl cmin wceq dnival halfre
      caddc cc readdcld reflcl resubcld absidm eqeltrrd wbr rddif halflt1 ltlei
      clt 1re ax-mp letrd eqbrtrd lemul2ad ax-1rid breqtrd adantl fvmptd eqcomd
      eqidd oveq2 ) AJDIRRZSREJUATZUBKUCTZJUATZDUCTZFRZUCTZSRZJGUDESRZGUEZUATZU
      FZRZULAXAXGSACDEFHIJKMPQUGUHAXHXIJUATZXMULAXHXNXFSRZUCTZXNULAXHXBSRZXOUCT
      XPAXBXFAEJAEOUIZQUJAXFABXEFLAXDDAXCJAUBKUBUKUMAUNUOAKUPUMKUKUMNKUQVDURQUS
      PURZUTZUIZVAAXQXNXOUCAEJXRQVBVCVEAXPXNVFUCTZXNULAXOVFXNAXFYAVGAVHZAXIJAEX
      RVGZQUSZAXIJYDQAEXRVIVJAXOXEVFUBVKTZVQTZVLRZXEVMTZSRZVFULAXOYJSRZYJAXFYJS
      AXEUKUMZXFYJVNXSBXEFLVOVDZUHAYIVRUMYKYJVNAYIAYHXEAYGUKUMYHUKUMAXEYFXSYFUK
      UMAVPUOZVSYGVTVDXSWAUIYIWBVDVEAYJYFVFAXFYJUKYMXTWCYNYCAYLYJYFULWDXSXEWEVD
      YFVFULWDZAYFVFWHWDYOWFYFVFVPWIWGWJUOWKWLWMAXNUKUMYBXNVNYEXNWNVDWOWLAXMXNA
      GJXKXNUDXLUKAXLWSXJJVNXKXNVNAXJJXIUAWTWPQYEWQWRWOWL $.
  $}

  ${
    $d C n y $.  $d N n y $.  $d N x $.  $d T n y $.  $d ph m n y z $.
    $d m x z $.
    knoppcnlem5.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppcnlem5.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppcnlem5.n $e |- ( ph -> N e. NN ) $.
    knoppcnlem5.1 $e |- ( ph -> C e. RR ) $.
    $( Lemma for ~ knoppcn .  (Contributed by Asger C. Ipsen, 4-Apr-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppcnlem5 $p |- ( ph ->
        ( m e. NN0 |-> ( z e. RR |-> ( ( F ` z ) ` m ) ) )
                         : NN0 --> ( CC ^m RR ) ) $=
      ( cn0 cr cc wcel wa cvv cv cfv cmpt cmap co wf ad2antrr simpr knoppcnlem3
      cn simplr recnd eqid fmptd wb cnex reex pm3.2i elmapg ax-mp sylibr ) AGOD
      PGUAZDUAZIUBUBZUCZQPUDUEZGOVEUCZAVBORZSZPQVEUFZVEVFRZVIDPVDQVEVIVCPRZSZVD
      VMBCVCEFHIVBJKLAJUJRVHVLMUGAEPRVHVLNUGVIVLUHAVHVLUKUIULVEUMUNQTRZPTRZSVKV
      JUOVNVOUPUQURQPVETTUSUTVAVGUMUN $.
  $}

  ${
    $d C k m n w y $.  $d F k m w z $.  $d N n y $.  $d N x $.  $d T n y $.
    $d ph k m n w y z $.  $d k m w x z $.
    knoppcnlem6.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppcnlem6.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppcnlem6.n $e |- ( ph -> N e. NN ) $.
    knoppcnlem6.1 $e |- ( ph -> C e. RR ) $.
    knoppcnlem6.2 $e |- ( ph -> ( abs ` C ) < 1 ) $.
    $( Lemma for ~ knoppcn .  (Contributed by Asger C. Ipsen, 4-Apr-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppcnlem6 $p |- ( ph ->
        seq 0 ( oF + , ( m e. NN0 |-> ( z e. RR |-> ( ( F ` z ) ` m ) ) ) )
        e. dom ( ~~>u ` RR ) ) $=
      ( cr cn0 cfv cvv wcel vw vk cv cmpt cabs cexp co cc0 0zd reex knoppcnlem5
      nn0uz a1i nn0ex mptex wa wceq eqid simpr oveq2d ovexd fvmptd recnd abscld
      adantr reexpcld eqeltrd fveq2d mpteq2dv adantrr fveq1d simprr knoppcnlem4
      cle fvexd cn eqbrtrd caddc cseq c1 cmin cdiv cli wbr cdm cc absidm geolim
      clt syl seqex ovex breldm mtest ) AUAPUBGQDPGUCZDUCZIRZRZUDZUDZGQEUERZWOU
      FUGZUDZUHSSQULAUIPSTAUJUMABCDEFGHIJKLMNUKXCSTAGQXBUNUOUMAUBUCZQTZUPZXDXCR
      ZXAXDUFUGZPXFGXDXBXHQXCSXCXCUQXFXCURUMXFWOXDUQZUPWOXDXAUFXFXIUSUTAXEUSZXF
      XAXDUFVAVBZXFXAXDAXAPTXEAEAENVCZVDZVEXJVFVGAXEUAUCZPTZUPZUPZXNXDWTRZRZUER
      XDXNIRZRZUERXGVNXQXSYAUEXQDXNXDWQRZYAPXRSXQGXDWSDPYBUDZQWTSWTWTUQXQWTURUM
      XQXIUPZDPWRYBYDWOXDWQXQXIUSVHVIAXEXEXOXJVJZYCSTXQDPYBUJUOUMVBXQWPXNUQZUPZ
      XDWQXTYGWPXNIXQYFUSVHVKAXEXOVLZXQXDXTVOVBVHXQBCXNEFGHIXDJKLAJVPTXPMVEAEPT
      XPNVEYHYEVMVQAVRXCUHVSZVTVTXAWAUGZWBUGZWCWDYIWCWETAXAUBXCAXAXMVCAXAUERZXA
      VTWIAEWFTYLXAUQXLEWGWJOVQXKWHYIYKWCVRXCUHWKVTYJWBWLWMWJWN $.
  $}

  ${
    $d F k m w z $.  $d M k m w $.  $d ph k m w $.
    knoppcnlem7.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppcnlem7.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppcnlem7.n $e |- ( ph -> N e. NN ) $.
    knoppcnlem7.1 $e |- ( ph -> C e. RR ) $.
    knoppcnlem7.2 $e |- ( ph -> M e. NN0 ) $.
    $( Lemma for ~ knoppcn .  (Contributed by Asger C. Ipsen, 4-Apr-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppcnlem7 $p |- ( ph ->
        ( seq 0
            ( oF + , ( m e. NN0 |-> ( z e. RR |-> ( ( F ` z ) ` m ) ) ) )
        ` M )
        = ( w e. RR |-> ( seq 0 ( + , ( F ` w ) ) ` M ) ) ) $=
      ( cr cfv wcel vk caddc cn0 cv cmpt cc0 cvv reex a1i cuz elnn0uz sylib cfz
      co wa wceq eqid fveq2 fveq1d cbvmptv mpteq2dv adantl eqtrd elfznn0 fvmptd
      mptex seqof ) AUAERUBHUCDRHUDZDUDZJSZSZUEZUEZEUDZJSZUFKUGRUGTAUHUIAKUCTKU
      FUJSTQKUKULAUAUDZUFKUMUNTZUOZHVPVLERVPVOSZUEZUCVMUGVMVMUPVRVMUQUIVRVHVPUP
      ZUOZVLERVHVOSZUEZVTVLWDUPWBDERVKWCVIVNUPVHVJVOVIVNJURUSUTUIWAWDVTUPVRWAER
      WCVSVHVPVOURVAVBVCVQVPUCTAVPKVDVBVTUGTVRERVSUHVFUIVEVG $.
  $}

  ${
    $d C n y $.  $d F a b k w $.  $d F k m w z $.  $d N n y $.  $d N x $.
    $d T n y $.  $d ph a k n w y $.  $d a w x $.  $d ph b k w $.  $d ph m w $.
    knoppcnlem8.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppcnlem8.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppcnlem8.n $e |- ( ph -> N e. NN ) $.
    knoppcnlem8.1 $e |- ( ph -> C e. RR ) $.
    $( Lemma for ~ knoppcn .  (Contributed by Asger C. Ipsen, 4-Apr-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppcnlem8 $p |- ( ph ->
        seq 0 ( oF + , ( m e. NN0 |-> ( z e. RR |-> ( ( F ` z ) ` m ) ) ) )
                : NN0 --> ( CC ^m RR ) ) $=
      ( cn0 cc cr cfv cc0 wcel vk vw va vb cmap co cv caddc cof cmpt cseq wf wa
      cn adantr simpr knoppcnlem7 cuz simplr nn0uz syl6eleq cfz ad2antrr adantl
      elfznn0 knoppcnlem3 recnd addcl seqcl eqid cvv wb cnex reex pm3.2i elmapg
      fmptd ax-mp sylibr eqeltrd wceq cz 0z seqfn fneq2i mpbir dffn5 mpbi feq1i
      wfn ) AOPQUEUFZUAOUAUGZUHUIZGODQGUGDUGIRRUJUJZSUKZRZUJZULOWKWOULAUAOWPWKW
      QAWLOTZUMZWPUBQWLUHUBUGZIRZSUKRZUJZWKWSBCDUBEFGHIWLJKLAJUNTZWRMUOZAEQTZWR
      NUOZAWRUPUQWSQPXCULZXCWKTZWSUBQXBPXCWSWTQTZUMZUCUDUHPXASWLXKWLOSURRZAWRXJ
      USUTVAXKUCUGZSWLVBUFTZUMZXMXARXOBCWTEFHIXMJKLWSXDXJXNXEVCWSXFXJXNXGVCWSXJ
      XNUSXNXMOTXKXMWLVEVDVFVGXMPTUDUGZPTUMXMXPUHUFPTXKXMXPVHVDVIXCVJVQPVKTZQVK
      TZUMXIXHVLXQXRVMVNVOPQXCVKVKVPVRVSVTWQVJVQOWKWOWQWOOWJZWOWQWAXSWOXLWJZSWB
      TXTWCWMWNSWDVROXLWOUTWEWFUAOWOWGWHWIVS $.
  $}

  ${
    $d C m n y $.  $d F f i m w z $.  $d F f k m v w z $.  $d N n y $.
    $d N x $.  $d T n y $.  $d W f $.  $d ph f i m w z $.  $d ph i m n w y z $.
    $d i m w x z $.  $d ph k m v w z $.
    knoppcnlem9.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppcnlem9.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppcnlem9.w $e |- W = ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    knoppcnlem9.n $e |- ( ph -> N e. NN ) $.
    knoppcnlem9.1 $e |- ( ph -> C e. RR ) $.
    knoppcnlem9.2 $e |- ( ph -> ( abs ` C ) < 1 ) $.
    $( Lemma for ~ knoppcn .  (Contributed by Asger C. Ipsen, 4-Apr-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppcnlem9 $p |- ( ph ->
        seq 0 ( oF + , ( m e. NN0 |-> ( z e. RR |-> ( ( F ` z ) ` m ) ) ) )
        ( ~~>u ` RR ) W ) $=
      ( cr vf vk vv caddc cof cn0 cv cfv cmpt cc0 cseq culm wbr wex knoppcnlem6
      cdm wcel seqex eldm sylib wa simpr csu wceq cc ulmcl feqmptd adantl nn0uz
      0zd eqidd ad2antrr simplr knoppcnlem3 adantllr recnd cvv cmap knoppcnlem8
      cn co a1i knoppcnlem7 fveq1d eqid fveq2 seqeq3d adantr fvexd fvmptd eqtrd
      wf ulmclm isumclim eqcomd mpteq2dva 3eqtrd breqtrd ex exlimdv mpd ) AUDUE
      ZIUFDTIUGDUGKUHUHUIUIZUJUKZUAUGZTULUHZUMZUAUNZXDMXFUMZAXDXFUPUQXHABCDFGIJ
      KLNOQRSUOUAXDXFXBXCUJURUSUTAXGXIUAAXGXIAXGVAZXDXEMXFAXGVBXJXEETEUGZXEUHZU
      IZETUFHUGZXKKUHZUHZHVCZUIZMXGXEXMVDAXGETVEXETXDXEVFVGVHXJETXLXQXJXKTUQZVA
      ZXQXLXTXPXLHXOUJUFVIXTVJZXTXNUFUQZVAZXPVKYCXPAXSYBXPTUQXGAXSVAZYBVABCXKFG
      JKXNLNOALVTUQZXSYBQVLAFTUQZXSYBRVLAXSYBVMYDYBVBVNVOVPXTXKTUBXDXEUDXOUJUKZ
      UJVQUFVIYAAUFVETVRWAXDWLXGXSABCDFGIJKLNOQRVSVLXJXSVBZYGVQUQXTUDXOUJURWBXT
      UBUGZUFUQZVAZXKYIXDUHZUHXKUCTYIUDUCUGZKUHZUJUKZUHZUIZUHYIYGUHZYKXKYLYQAXS
      YJYLYQVDXGYDYJVABCDUCFGIJKYILNOAYEXSYJQVLAYFXSYJRVLYDYJVBWCVOWDYKUCXKYPYR
      TYQVQYQYQVDYKYQWEWBYMXKVDZYPYRVDYKYSYIYOYGYSYNXOUDUJYMXKKWFWGWDVHXTXSYJYH
      WHYKYIYGWIWJWKAXGXSVMWMWNWOWPXJMXRMXRVDXJPWBWOWQWRWSWTXA $.
  $}

  ${
    $d C n y z $.  $d M n z $.  $d N n y z $.  $d T n y z $.  $d ph n y z $.
    knoppcnlem10.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppcnlem10.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppcnlem10.n $e |- ( ph -> N e. NN ) $.
    knoppcnlem10.1 $e |- ( ph -> C e. RR ) $.
    knoppcnlem10.2 $e |- ( ph -> M e. NN0 ) $.
    $( Lemma for ~ knoppcn .  (Contributed by Asger C. Ipsen, 4-Apr-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppcnlem10 $p |- ( ph -> ( z e. RR |-> ( ( F ` z ) ` M ) )
      e. ( ( topGen ` ran (,) ) Cn ( TopOpen ` CCfld ) ) ) $=
      ( cr cfv co wcel cc cv cmpt cexp c2 cmul cioo crn ctg ccnfld ctopn ccn wa
      simpr cn0 adantr knoppcnlem1 mpteq2dva ctopon retopon a1i eqid cnfldtopon
      recnd expcld cnmptc crest 2re cn nnre syl remulcld reexpcld tgioo2 oveq2i
      ctop wss topontopi cnrest2r ax-mp eqsstri cnmptid sseldi ctx cnmpt12f w3a
      mulcn wb wf fmptd frn ax-resscn 3jca cnrest2 mpbid syl6eleqr ccncf pm3.2i
      ssid cncfss dnicn wceq cvv fvex toponunii restid eqcomi syl6eleq cnmpt11f
      cncfcn eqeltrd ) ADPIDUAZHQQZUBDPEIUCRZUDJUERZIUCRZXKUERZFQZUERZUBUFUGUHQ
      ZUIUJQZUKRZADPXLXRAXKPSZULZCXKEFGHIJLAYBUMZAIUNSYBOUOUPUQADXMXQUEXSXTXTXT
      PXSPURQSAUSUTZADXMXSXTPTYEXTTURQSZAXTXTVAZVBZUTZAEIAENVCOVDVEADXPFXSXSXTP
      YEADPXPUBZXSXTPVFRZUKRZXSXSUKRZAYJYASZYJYLSZADXOXKUEXSXTXTXTPYEADXOXSXTPT
      YEYIAXOAXNIAUDJUDPSAVGUTAJVHSJPSMJVIVJVKOVLZVCVEAYMYADPXKUBYMYLYAXSYKXSUK
      XTYGVMZVNZXTVOSYLYAVPTXTYHVQPXSXTVRVSVTADXSPYEWAWBUEXTXTWCRXTUKRSAXTYGWFU
      TZWDAYFYJUGPVPZPTVPZWEYNYOWGAYFYTUUAYIAPPYJWHYTADPXPPYJYCXOXKAXOPSYBYPUOY
      DVKYJVAWIPPYJWJVJUUAAWKUTWLPYJXSXTTWMVJWNYRWOAFPTWPRZYAAPPWPRZUUBFUUATTVP
      ZULZUUCUUBVPUUAUUDWKTWRWQZPPTWSVSFUUCSABFKWTUTWBUUEUUBYAXAUUFPTXTXSXTYGYQ
      XTTVFRZXTXTXBSUUGXTXAUIUJXCXTXBTTXTYHXDXEVSXFXIVSXGXHYSWDXJ $.
  $}

  ${
    $d C n w y $.  $d F k l w $.  $d F k m w z $.  $d N n w y $.  $d N w x $.
    $d T n w y $.  $d ph k l n w y $.  $d l w x $.  $d ph m w $.
    knoppcnlem11.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppcnlem11.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppcnlem11.n $e |- ( ph -> N e. NN ) $.
    knoppcnlem11.1 $e |- ( ph -> C e. RR ) $.
    $( Lemma for ~ knoppcn .  (Contributed by Asger C. Ipsen, 4-Apr-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppcnlem11 $p |- ( ph ->
        seq 0 ( oF + , ( m e. NN0 |-> ( z e. RR |-> ( ( F ` z ) ` m ) ) ) )
                : NN0 --> ( RR -cn-> CC ) ) $=
      ( cn0 cr cc cfv cc0 wcel vk vw vl ccncf co cv caddc cof cmpt cseq cfz csu
      wf wa cn adantr simpr knoppcnlem7 eqidd cuz simplr elnn0uz sylib ad2antrr
      elfzuz nn0uz syl6eleqr adantl knoppcnlem3 recnd fsumser eqcomd eqtrd cioo
      mpteq2dva crn ctg ccnfld ctopn ccn eqid ctopon retopon fzfid knoppcnlem10
      a1i fsumcn wss wceq ax-resscn ssid pm3.2i tgioo2 crest cvv fvex toponunii
      cnfldtopon restid ax-mp eqcomi cncfcn eqeltrd fmptd wfn cz 0z seqfn mpbir
      fneq2i dffn5 mpbi feq1i sylibr ) AOPQUDUEZUAOUAUFZUGUHZGODPGUFDUFIRRUIUIZ
      SUJZRZUIZUMOXOXSUMAUAOXTXOYAAXPOTZUNZXTUBPSXPUKUEZUCUFZUBUFZIRZRZUCULZUIZ
      XOYCXTUBPXPUGYGSUJRZUIYJYCBCDUBEFGHIXPJKLAJUOTZYBMUPZAEPTZYBNUPZAYBUQURYC
      UBPYKYIYCYFPTZUNZYIYKYQYHUCYGSXPYQYEYDTZUNZYHUSYQYBXPSUTRZTAYBYPVAXPVBVCY
      SYHYSBCYFEFHIYEJKLYCYLYPYRYMVDYCYNYPYRYOVDYCYPYRVAYRYEOTZYQYRYEYTOYESXPVE
      VFVGZVHVIVJVKVLVOVMYCYJVNVPVQRZVRVSRZVTUEZXOYCUBYDYHUCUUCUUDPUUDWAZUUCPWB
      RTYCWCWFYCSXPWDYCYRUNBCUBEFHIYEJKLYCYLYRYMUPYCYNYRYOUPYRUUAYCUUBVHWEWGPQW
      HZQQWHZUNXOUUEWIUUGUUHWJQWKWLPQUUDUUCUUDUUFUUDUUFWMUUDQWNUEZUUDUUDWOTUUIU
      UDWIVRVSWPUUDWOQQUUDUUDUUFWRWQWSWTXAXBWTVGXCYAWAXDOXOXSYAXSOXEZXSYAWIUUJX
      SYTXEZSXFTUUKXGXQXRSXHWTOYTXSVFXJXIUAOXSXKXLXMXN $.
  $}

  ${
    $d C m n y $.  $d F i m w z $.  $d N n y $.  $d N x $.  $d T n y $.
    $d ph i m n w y z $.  $d i m w x z $.
    knoppcn.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppcn.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppcn.w $e |- W = ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    knoppcn.n $e |- ( ph -> N e. NN ) $.
    knoppcn.1 $e |- ( ph -> C e. RR ) $.
    knoppcn.2 $e |- ( ph -> ( abs ` C ) < 1 ) $.
    $( The continuous nowhere differentiable function ` W ` ( Knopp, K. (1918).
       Math.  Z. 2, 1-26 ) is, in fact, continuous.  (Contributed by Asger C.
       Ipsen, 4-Apr-2021.)  (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppcn $p |- ( ph -> W e. ( RR -cn-> CC ) ) $=
      ( vm vz cr caddc cof cn0 cfv cmpt cc0 cseq nn0uz knoppcnlem11 knoppcnlem9
      cv 0zd ulmcn ) ATUAUBRUCSTRUKSUKIUDUDUEUEUFUGKUFUCUHAULABCSEFRHIJLMOPUIAB
      CSDEFGRHIJKLMNOPQUJUM $.
  $}

  ${
    $d C n y $.  $d F i w $.  $d N n y $.  $d N x $.  $d T n y $.
    $d ph i n w y $.  $d i w x $.
    knoppcld.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppcld.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppcld.w $e |- W = ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    knoppcld.a $e |- ( ph -> A e. RR ) $.
    knoppcld.n $e |- ( ph -> N e. NN ) $.
    knoppcld.1 $e |- ( ph -> C e. RR ) $.
    knoppcld.2 $e |- ( ph -> ( abs ` C ) < 1 ) $.
    $( Closure theorem for Knopp's function.  (Contributed by Asger C. Ipsen,
       26-Jul-2021.) $)
    knoppcld $p |- ( ph -> ( W ` A ) e. CC ) $=
      ( cr cc ccncf co wcel wf knoppcn cncff syl ffvelrnd ) ATUAELALTUAUBUCUDTU
      ALUEABCDFGHIJKLMNOQRSUFTUALUGUHPUI $.
  $}

  ${
    addgtge0d.1 $e |- ( ph -> A e. RR ) $.
    addgtge0d.2 $e |- ( ph -> B e. RR ) $.
    addgtge0d.3 $e |- ( ph -> 0 < A ) $.
    addgtge0d.4 $e |- ( ph -> 0 <_ B ) $.
    $( Addition of positive and nonnegative numbers is positive.  (Contributed
       by Asger C. Ipsen, 12-May-2021.) $)
    addgtge0d $p |- ( ph -> 0 < ( A + B ) ) $=
      ( cr wcel cc0 clt wbr cle caddc co addgtge0 syl22anc ) ABHICHIJBKLJCMLJBC
      NOKLDEFGBCPQ $.
  $}

  ${
    $d A b d x $.  $d A d x y $.  $d F b d x $.  $d F d x y $.  $d S b d x $.
    $d S d x y $.  $d ph b c d x $.  $d ph c d x y $.
    unblimceq0lem.0 $e |- ( ph -> S C_ CC ) $.
    unblimceq0lem.1 $e |- ( ph -> F : S --> CC ) $.
    unblimceq0lem.2 $e |- ( ph -> A e. CC ) $.
    unblimceq0lem.3 $e |- ( ph -> A. b e. RR+ A. d e. RR+ E. x e. S
      ( ( abs ` ( x - A ) ) < d /\ b <_ ( abs ` ( F ` x ) ) ) ) $.
    $( Lemma for ~ unblimceq0 .  (Contributed by Asger C. Ipsen,
       12-May-2021.) $)
    unblimceq0lem $p |- ( ph -> A. c e. RR+ A. d e. RR+ E. y e. S
      ( y =/= A /\ ( abs ` ( y - A ) ) < d /\ c <_ ( abs ` ( F ` y ) ) ) ) $=
      ( cabs wbr cle crp wcel wa adantr cv wne cmin cfv clt w3a wrex caddc wral
      co wceq breq1 anbi2d rexbidv ralbidv cc wf ad2antrr simpr ffvelrnd abscld
      cif cr simprl rpred readdcld absge0d cc0 rpgt0d addgegt0d elrpd wn ifclda
      simplrl rspcdva simprr rsp sylc wb neeq1 oveq1 fveq2d breq1d fveq2 breq2d
      3anbi123d adantl adantlr iftrued eqcomd simprrr eqbrtrd lensymd ltaddposd
      wi mpbid necon3bd simprrl addge02d letrd 3jca eqeltrrd iffalsed pm2.61dan
      ex mpd rspcedvd rexlimddv ralrimivva ) ACUAZDUBZXJDUCUJZNUDZIUAZUEOZHUAZX
      JFUDZNUDZPOZUFZCEUGZHIQQAXPQRZXNQRZSZSZBUAZDUCUJZNUDZXNUEOZDERZDFUDZNUDZX
      PUHUJZXPVBZYFFUDZNUDZPOZSZYABEYEYRBEUGZIQUIZYCYSYEYIGUAZYPPOZSZBEUGZIQUIZ
      YTGQYNUUAYNUKZUUDYSIQUUFUUCYRBEUUFUUBYQYIUUAYNYPPULUMUNUOAUUEGQUIYDMTYEYJ
      YMXPQYEYJSZYMUUGYLXPUUGYKUUGEUPDFAEUPFUQZYDYJKURYEYJUSUTZVAZYEXPVCRZYJYEX
      PAYBYCVDZVETZVFZUUGYLXPUUJUUMUUGYKUUIVGYEVHXPUEOZYJYEXPUULVITZVJVKAYBYCYJ
      VLZVNVMVOAYBYCVPYSIQVQVRYEYFERZYRSZSZXTYFDUBZYIXPYPPOZUFZCYFEYEUURYRVDZXJ
      YFUKZXTUVCVSUUTUVEXKUVAXOYIXSUVBXJYFDVTUVEXMYHXNUEUVEXLYGNXJYFDUCWAWBWCUV
      EXRYPXPPUVEXQYONXJYFFWDWBWEWFWGUUTYJUVCUUTYJSZUVAYIUVBUVFYPYMUEOZVLUVAUVF
      YMYPYEYJYMVCRUUSUUNWHZUUTYPVCRYJUUTYOUUTEUPYFFAUUHYDUUSKURUVDUTVATZUVFYMY
      NYPPUVFYNYMUVFYJYMXPUUTYJUSWIWJUUTYQYJYEUURYIYQWKZTWLZWMUVFUVGYFDYEYJYFDU
      KZUVGWOUUSUUGUVLUVGUUGUVLSYPYLYMUEUVLYPYLUKUUGUVLYOYKNYFDFWDWBWGUUGYLYMUE
      OZUVLUUGUUOUVMUUPUUGXPYLUUMUUJWNWPTWLXEWHWQXFUUTYIYJYEUURYIYQWRZTUVFXPYMY
      PYEYJUUKUUSUUMWHZUVHUVIUVFVHYLPOXPYMPOUVFYKYEYJYKUPRUUSUUIWHVGUVFXPYLUVOY
      EYJYLVCRUUSUUJWHWSWPUVKWTXAUUTUUQSZUVAYIUVBUVPUUQUVAUUTUUQUSZUVPYJYFDUVPU
      VLYJUVPUVLSYFDEUVPUVLUSUVPUURUVLUUTUURUUQUVDTTXBXEWQXFUUTYIUUQUVNTUVPXPYN
      YPPUVPYNXPUVPYJYMXPUVQXCWJUUTYQUUQUVJTWLXAXDXGXHXI $.
  $}

  ${
    $d A a b d x $.  $d A a c d y z $.  $d A c e y z $.  $d F a b d x $.
    $d F a c d y z $.  $d F c e y z $.  $d S a b d x $.  $d S a c d z $.
    $d S c e z $.  $d ph a b d x $.  $d ph c d y z $.  $d ph e y z $.
    $d x z $.
    unblimceq0.0 $e |- ( ph -> S C_ CC ) $.
    unblimceq0.1 $e |- ( ph -> F : S --> CC ) $.
    unblimceq0.2 $e |- ( ph -> A e. CC ) $.
    unblimceq0.3 $e |- ( ph -> A. b e. RR+ A. d e. RR+ E. x e. S
      ( ( abs ` ( x - A ) ) < d /\ b <_ ( abs ` ( F ` x ) ) ) ) $.
    $( If ` F ` is unbounded near ` A ` it has no limit at ` A ` .
       (Contributed by Asger C. Ipsen, 12-May-2021.) $)
    unblimceq0 $p |- ( ph -> ( F limCC A ) = (/) ) $=
      ( vz vc wcel wn clt wbr wa crp c1 vy ve va cv climc co wal c0 wceq cc wne
      cmin cabs cfv wi wral wrex 1rp a1i wb breq2 imbi2d ralbidv rexbidv notbid
      adantl caddc cle w3a simprr1 simprr2 jca cr 1red adantr ad2antrr ffvelrnd
      wf simprl abscld simplr resubcld subcld 1cnd recnd pncand eqcomd readdcld
      simprr3 lesub1d mpbid eqbrtrd abs2difd letrd lenltd pm4.61 sylibr 3anbi2d
      breq1 3anbi3d unblimceq0lem 0lt1 absge0d addgtge0d elrpd rspcdva reximddv
      cc0 simpr rexnal sylib ralrimiva ralnex rspcedvd ex imnan ellimc3 alrimiv
      mtbird eq0 ) AUAUDZECUEUFZNZOZUAUGYBUHUIAYDUAAYCYAUJNZLUDZCUKZYFCULUFUMUN
      ZMUDZPQZRZYFEUNZYAULUFZUMUNZUBUDZPQZUOZLDUPZMSUQZUBSUPZRZAYEYTOZUOUUAOAYE
      UUBAYERZYSOZUBSUQUUBUUCUUDYKYNTPQZUOZLDUPZMSUQZOZUBTSTSNUUCURUSYOTUIZUUDU
      UIUTUUCUUJYSUUHUUJYRUUGMSUUJYQUUFLDUUJYPUUEYKYOTYNPVAVBVCVDVEVFUUCUUGOZMS
      UPUUIUUCUUKMSUUCYISNZRZUUFOZLDUQUUKUUMYGYJTYAUMUNZVGUFZYLUMUNZVHQZVIZUUNL
      DUUMYFDNZUUSRZRZYKUUEOZRUUNUVBYKUVCUVBYGYJYGYJUURUUTUUMVJYGYJUURUUTUUMVKV
      LUVBTYNVHQUVCUVBTUUQUUOULUFZYNUUMTVMNUVAUUMVNZVOZUVBUUQUUOUVBYLUVBDUJYFEU
      UMDUJEVRZUVAAUVGYEUULIVPVOUUMUUTUUSVSVQZVTZUUMUUOVMNUVAUUMYAAYEUULWAZVTZV
      OZWBUVBYMUVBYLYAUVHUUMYEUVAUVJVOZWCVTZUVBTUUPUUOULUFZUVDVHUVBUVOTUVBTUUOU
      VBWDUVBUUOUVLWEWFWGUVBUURUVOUVDVHQYGYJUURUUTUUMWIUVBUUPUUQUUOUUMUUPVMNUVA
      UUMTUUOUVEUVKWHZVOUVIUVLWJWKWLUVBYLYAUVHUVMWMWNUVBTYNUVFUVNWOWKVLYKUUEWPW
      QUUMYGYHGUDZPQZUURVIZLDUQZUUSLDUQGSYIUVQYIUIZUVSUUSLDUWAUVRYJYGUURUVQYIYH
      PVAWRVDUUMYGUVRUCUDZUUQVHQZVIZLDUQZGSUPZUVTGSUPUCSUUPUWBUUPUIZUWEUVTGSUWG
      UWDUVSLDUWGUWCUURYGUVRUWBUUPUUQVHWSWTVDVCAUWFUCSUPYEUULABLCDEFUCGHIJKXAVP
      UUMUUPUVPUUMTUUOUVEUVKXHTPQUUMXBUSUUMYAUVJXCXDXEXFUUCUULXIXFXGUUFLDXJXKXL
      UUGMSXMXKXNYSUBSXJXKXOYEYTXPXKAUBMLDCYAEIHJXQXSXRUAYBXTWQ $.
  $}

  ${
    $d A b d x $.  $d A y z $.  $d F b d x $.  $d F y z $.  $d G b d x $.
    $d S b d x $.  $d S y z $.  $d X b d x $.  $d X z $.  $d ph b d x $.
    $d ph y z $.
    unbdqndv1.g $e |- G = ( z e. ( X \ { A } ) |->
        ( ( ( F ` z ) - ( F ` A ) ) / ( z - A ) ) ) $.
    unbdqndv1.1 $e |- ( ph -> S C_ CC ) $.
    unbdqndv1.2 $e |- ( ph -> X C_ S ) $.
    unbdqndv1.3 $e |- ( ph -> F : X --> CC ) $.
    unbdqndv1.4 $e |- ( ph -> A. b e. RR+ A. d e. RR+ E. x e. ( X \ { A } )
      ( ( abs ` ( x - A ) ) < d /\ b <_ ( abs ` ( G ` x ) ) ) ) $.
    $( If the difference quotient
       ` ( ( ( F `` z ) - ( F `` A ) ) / ( z - A ) ) ` is unbounded near ` A `
       then ` F ` is not differentiable at ` A ` .  (Contributed by Asger C.
       Ipsen, 12-May-2021.) $)
    unbdqndv1 $p |- ( ph -> -. A e. dom ( S _D F ) ) $=
      ( vy co wn cfv cc cdv cdm wcel wa cv wbr wal ccnfld ctopn crest cnt climc
      c0 noel a1i csn cdif wss sstrd adantr ssdifssd cmin wf dvbss sselda dvlem
      cdiv fmptd sseldd cabs clt cle wrex crp wral unblimceq0 neleqtrrd intnand
      wb eqid eldv notbid mpbird alrimiv wex simpr eldmg syl alnex bicomd bitrd
      pm2.01da ) ADEFUAQZUBZUCZAWOUDZWORZDPUEZWMUFZRZPUGZWPWTPWPWTDHUHUISZEUJQZ
      UKSSUCZWRGDULQZUCZUDZRZWPXFXDWPXEUMWRWRUMUCRWPWRUNUOWPBDHDUPZUQZGIJWPHTXI
      AHTURWOAHETMLUSUTZVAWPCXJCUEZFSDFSVBQXLDVBQVGQTGWPXLDHFAHTFVCWONUTXKAWNHD
      AHEFLNMVDVEZVFKVHWPHTDXKXMVIABUEZDVBQVJSJUEVKUFIUEXNGSVJSVLUFUDBXJVMJVNVO
      IVNVOWOOUTVPVQVRAWTXHVSWOAWSXGACHDWREXCFGXBXCVTXBVTKLNMWAWBUTWCWDWPWQWSPW
      EZRZXAWPWOXOWPWOWOXOVSAWOWFPDWMWNWGWHWBWPXAXPXAXPVSWPWSPWIUOWJWKWCWL $.
  $}

  ${
    unbdqndv2lem1.a $e |- ( ph -> A e. CC ) $.
    unbdqndv2lem1.b $e |- ( ph -> B e. CC ) $.
    unbdqndv2lem1.c $e |- ( ph -> C e. CC ) $.
    unbdqndv2lem1.d $e |- ( ph -> D e. CC ) $.
    unbdqndv2lem1.e $e |- ( ph -> E e. RR+ ) $.
    unbdqndv2lem1.1 $e |- ( ph -> D =/= 0 ) $.
    unbdqndv2lem1.2 $e |- ( ph ->
          ( 2 x. E ) <_ ( abs ` ( ( A - B ) / D ) ) ) $.
    $( Lemma for ~ unbdqndv2 .  (Contributed by Asger C. Ipsen,
       12-May-2021.) $)
    unbdqndv2lem1 $p |- ( ph -> ( ( E x. ( abs ` D ) ) <_ ( abs ` ( A - C ) )
                      \/ ( E x. ( abs ` D ) ) <_ ( abs ` ( B - C ) ) ) ) $=
      ( cabs co wbr clt adantr cr wcel cfv cmul cmin cle wo cdiv c2 wceq subcld
      wn wa absdivd caddc abscld readdcld 2re a1i rpred remulcld abssubd oveq2d
      abs3difd breqtrd pm2.45 adantl ltnled mpbird pm2.46 lt2addd recnd 2timesd
      wb eqcomd mulassd eqtrd lelttrd cc0 w3a wne cc absgt0 syl mpbid ltdivmul2
      jca 3jca eqbrtrd divcld lenltd condan ) AFENUAZUBOZBDUCOZNUAZUDPZWLCDUCOZ
      NUAZUDPZUEZBCUCOZEUFOZNUAZUGFUBOZQPZAWSUJZUKZXBWTNUAZWKUFOZXCQAXBXHUHXEAW
      TEABCGHUIZJLULRXFXHXCQPZXGXCWKUBOZQPZXFXGWNWQUMOZXKAXGSTZXEAWTXIUNZRAXMST
      XEAWNWQAWMABDGIUIUNZAWPACDHIUIUNZUORAXKSTXEAXCWKAUGFUGSTAUPUQZAFKURZUSZAE
      JUNZUSRAXGXMUDPXEAXGWNDCUCONUAZUMOXMUDABCDGHIVBAYBWQWNUMADCIHUTVAVCRXFXMW
      LWLUMOZXKQXFWNWQWLWLAWNSTXEXPRAWQSTXEXQRAWLSTXEAFWKXSYAUSZRZYEXFWNWLQPZWO
      UJZXEYGAWOWRVDVEAYFYGVLXEAWNWLXPYDVFRVGXFWQWLQPZWRUJZXEYIAWOWRVHVEAYHYIVL
      XEAWQWLXQYDVFRVGVIAYCXKUHXEAYCUGWLUBOZXKAYJYCAWLAWLYDVJVKVMAXKYJAUGFWKAUG
      XRVJAFXSVJAWKYAVJVNVMVORVCVPAXJXLVLZXEAXNXCSTZWKSTZVQWKQPZUKZVRYKAXNYLYOX
      OXTAYMYNYAAEVQVSZYNLAEVTTYPYNVLJEWAWBWCWEWFXGXCWKWDWBRVGWGAXDUJZXEAXCXBUD
      PYQMAXCXBXTAXAAWTEXIJLWHUNWIWCRWJ $.
  $}

  ${
    $d A z $.  $d B z $.  $d F z $.  $d U z $.  $d V z $.  $d X z $.
    $d ph z $.
    unbdqndv2lem2.g $e |- G = ( z e. ( X \ { A } ) |->
        ( ( ( F ` z ) - ( F ` A ) ) / ( z - A ) ) ) $.
    unbdqndv2lem2.w $e |- W =
        if ( ( B x. ( V - U ) )
            <_ ( abs ` ( ( F ` U ) - ( F ` A ) ) ) , U , V ) $.
    unbdqndv2lem2.x $e |- ( ph -> X C_ RR ) $.
    unbdqndv2lem2.f $e |- ( ph -> F : X --> CC ) $.
    unbdqndv2lem2.a $e |- ( ph -> A e. X ) $.
    unbdqndv2lem2.b $e |- ( ph -> B e. RR+ ) $.
    unbdqndv2lem2.d $e |- ( ph -> D e. RR+ ) $.
    unbdqndv2lem2.u $e |- ( ph -> U e. X ) $.
    unbdqndv2lem2.v $e |- ( ph -> V e. X ) $.
    unbdqndv2lem2.1 $e |- ( ph -> U =/= V ) $.
    unbdqndv2lem2.2 $e |- ( ph -> U <_ A ) $.
    unbdqndv2lem2.3 $e |- ( ph -> A <_ V ) $.
    unbdqndv2lem2.4 $e |- ( ph -> ( V - U ) < D ) $.
    unbdqndv2lem2.5 $e |- ( ph ->
      ( 2 x. B ) <_ ( ( abs ` ( ( F ` V ) - ( F ` U ) ) ) / ( V - U ) ) ) $.
    $( Lemma for ~ unbdqndv2 .  (Contributed by Asger C. Ipsen,
       12-May-2021.) $)
    unbdqndv2lem2 $p |- ( ph ->
     ( W e. ( X \ { A } ) /\
      ( ( abs ` ( W - A ) ) < D /\ B <_ ( abs ` ( G ` W ) ) ) ) ) $=
      ( cmin cmul cfv cabs cle wbr csn cdif wcel clt cif wceq a1i iftrue adantl
      co eqtrd wne adantr cc0 simplr fveq2 eqcomd oveq2d fveq2d ffvelrnd subidd
      wa cc abs0 adantlr breqtrd wn rpred sseldd resubcld rpgt0d necomd leneltd
      cr letrd posdifd mulgt0d 0red remulcld ltnled pm2.65da neqned jca eldifsn
      mpbid sylibr eqeltrd oveq1d abssuble0d lelttrd eqbrtrd cdiv subcld abscld
      lesub1dd ltled lemul2ad simpr crp wb ltlend mpbird elrp lemuldivd cv cmpt
      cvv oveq1 oveq12d ovexd fvmptd subne0d absdivd iffalsed abssubge0d breq1d
      recnd wo mtbird gtned unbdqndv2lem1 orel2 sylc lesub2dd 3brtr4d pm2.61dan
      c2 absrpcld ) ADIFUFVAZUGVAZFGUHZCGUHZUFVAZUIUHZUJUKZJKCULUMZUNZJCUFVAZUI
      UHZEUOUKZDJHUHZUIUHZUJUKZVMZVMAUUFVMZUUHUUOUUPJFUUGUUPJUUFFIUPZFJUUQUQZUU
      PMURUUFUUQFUQAUUFFIUSUTVBZUUPFKUNZFCVCZVMFUUGUNUUPUUTUVAAUUTUUFSVDUUPFCUU
      PFCUQZUUAVEUJUKZUUPUVBVMUUAUUEVEUJAUUFUVBVFAUVBUUEVEUQUUFAUVBVMZUUEUUBUUB
      UFVAZUIUHZVEUVBUUEUVFUQAUVBUUDUVEUIUVBUUCUUBUUBUFUVBUUBUUCFCGVGVHVIVJUTUV
      DUVFVEUIUHZVEAUVFUVGUQUVBAUVEVEUIAUUBAKVNFGOSVKZVLVJVDUVGVEUQZUVDVOURVBVB
      VPVQUUPUVCVRZUVBAUVJUUFAVEUUAUOUKUVJADYTADQVSZAIFAKWEINTVTZAKWEFNSVTZWAZA
      DQWBZAFIUOUKVEYTUOUKAFIUVMUVLAFCIUVMAKWECNPVTZUVLUBUCWFZAFIUAWCWDAFIUVMUV
      LWGWPZWHAVEUUAAWIZADYTUVKUVNWJZWKWPZVDVDWLWMZWNFKCWOWQZWRUUPUUKUUNUUPUUJC
      FUFVAZEUOUUPUUJFCUFVAZUIUHZUWDUUPUUIUWEUIUUPJFCUFUUSWSVJAUWFUWDUQUUFAFCUV
      MUVPUBWTVDZVBAUWDEUOUKUUFAUWDYTEACFUVPUVMWAZUVNAERVSZACIFUVPUVLUVMUCXFZUD
      XAVDXBUUPDUUEUWDXCVAZUUMUJUUPDUWDUGVAZUUEUJUKDUWKUJUKUUPUWLUUAUUEAUWLWEUN
      UUFADUWDUVKUWHWJVDAUUAWEUNUUFUVTVDAUUEWEUNUUFAUUDAUUBUUCUVHAKVNCGOPVKZXDZ
      XEVDZAUWLUUAUJUKUUFAUWDYTDUWHUVNUVKAVEDUVSUVKUVOXGZUWJXHVDAUUFXIWFUUPDUUE
      UWDADWEUNZUUFUVKVDUWOUUPUWDWEUNZVEUWDUOUKZVMUWDXJUNUUPUWRUWSAUWRUUFUWHVDU
      UPFCUOUKZUWSUUPUWTFCUJUKZCFVCZVMZUUPUXAUXBAUXAUUFUBVDUUPFCUWBWCWNAUWTUXCX
      KUUFAFCUVMUVPXLVDXMAUWTUWSXKUUFAFCUVMUVPWGVDWPWNUWDXNWQXOWPUUPUUMUWKUUPUU
      MUUDUWEXCVAZUIUHZUWKUUPUULUXDUIUUPUULFHUHUXDUUPJFHUUSVJUUPBFBXPZGUHZUUCUF
      VAZUXFCUFVAZXCVAZUXDUUGHXRHBUUGUXJXQUQZUUPLURUXFFUQZUXJUXDUQUUPUXLUXHUUDU
      XIUWEXCUXLUXGUUBUUCUFUXFFGVGWSUXFFCUFXSXTUTUWCUUPUUDUWEXCYAYBVBVJUUPUXEUU
      EUWFXCVAUWKUUPUUDUWEAUUDVNUNUUFUWNVDAUWEVNUNUUFAFCAFUVMYHZACUVPYHZXDVDUUP
      FCAFVNUNUUFUXMVDACVNUNZUUFUXNVDUWBYCYDUUPUWFUWDUUEXCUWGVIVBVBVHVQWNWNAUUF
      VRZVMZUUHUUOUXQJIUUGUXQJUUQIUURUXQMURUXQUUFFIAUXPXIZYEVBZUXQIKUNZICVCZVMI
      UUGUNUXQUXTUYAAUXTUXPTVDUXQICUXQICUQZDYTUIUHZUGVAZVEUJUKZUXQUYBVMUYDIGUHZ
      UUCUFVAZUIUHZVEUJUXQUYDUYHUJUKZUYBUXQUYDUUEUJUKZVRUYIUYJYIZUYIUXQUYJUUFUX
      RAUYJUUFXKUXPAUYDUUAUUEUJAUYCYTDUGAFIUVMUVLUVQYFZVIZYGVDYJAUYKUXPAUYFUUBU
      UCYTDAKVNIGOTVKZUVHUWMAYTUVNYHZQAVEYTUVSUVRYKZAYRDUGVAUYFUUBUFVAZUIUHZYTX
      CVAZUYQYTXCVAUIUHZUJUEAUYTUYSAUYTUYRUYCXCVAUYSAUYQYTAUYFUUBUYNUVHXDUYOUYP
      YDAUYCYTUYRXCUYLVIVBVHVQYLVDUYJUYIYMYNZVDAUYBUYHVEUQUXPAUYBVMZUYHUVGVEVUB
      UYGVEUIVUBUYGUUCUUCUFVAZVEUYBUYGVUCUQAUYBUYFUUCUUCUFICGVGWSUTAVUCVEUQUYBA
      UUCUWMVLVDVBVJUVIVUBVOURVBVPVQUXQUYEVRZUYBAVUDUXPAUYEUVCUWAAUYDUUAVEUJUYM
      YGYJVDVDWLWMZWNIKCWOWQZWRUXQUUKUUNUXQUUJICUFVAZEUOUXQUUJVUGUIUHZVUGUXQUUI
      VUGUIUXQJICUFUXSWSVJAVUHVUGUQUXPACIUVPUVLUCYFZVDVBAVUGEUOUKUXPAVUGYTEAICU
      VLUVPWAZUVNUWIAFCIUVMUVPUVLUBYOZUDXAVDXBUXQDUYHVUHXCVAZUUMUJUXQDVUHUGVAZU
      YHUJUKDVULUJUKUXQVUMUYDUYHAVUMWEUNUXPADVUHUVKAVUHVUGWEVUIVUJWRZWJVDAUYDWE
      UNUXPAUYDUUAWEUYMUVTWRVDAUYHWEUNUXPAUYGAUYFUUCUYNUWMXDZXEVDZAVUMUYDUJUKUX
      PAVUHUYCDVUNAUYCYTWEUYLUVNWRUVKUWPAVUGYTVUHUYCUJVUKVUIUYLYPXHVDVUAWFUXQDU
      YHVUHAUWQUXPUVKVDVUPUXQVUGAVUGVNUNUXPAVUGVUJYHVDZUXQICAIVNUNUXPAIUVLYHVDA
      UXOUXPUXNVDVUEYCZYSXOWPUXQUUMVULUXQUUMUYGVUGXCVAZUIUHVULUXQUULVUSUIUXQUUL
      IHUHVUSUXQJIHUXSVJUXQBIUXJVUSUUGHXRUXKUXQLURUXFIUQZUXJVUSUQUXQVUTUXHUYGUX
      IVUGXCVUTUXGUYFUUCUFUXFIGVGWSUXFICUFXSXTUTVUFUXQUYGVUGXCYAYBVBVJUXQUYGVUG
      AUYGVNUNUXPVUOVDVUQVURYDVBVHVQWNWNYQ $.
  $}

  ${
    $d A b c d x y $.  $d A c d w x y z $.  $d F b c d x y $.
    $d F c d w x y z $.  $d X b c d x y $.  $d X c d w x y z $.
    $d ph b c d x y $.  $d ph w x y z $.
    unbdqndv2.x $e |- ( ph -> X C_ RR ) $.
    unbdqndv2.f $e |- ( ph -> F : X --> CC ) $.
    unbdqndv2.1 $e |- ( ph -> A. b e. RR+ A. d e. RR+ E. x e. X E. y e. X
      ( ( x <_ A /\ A <_ y ) /\ ( ( y - x ) < d /\ x =/= y ) /\
         b <_ ( ( abs ` ( ( F ` y ) - ( F ` x ) ) ) / ( y - x ) ) ) ) $.
    $( Variant of ~ unbdqndv1 with the hypothesis that
       ` ( ( ( F `` y ) - ( F `` x ) ) / ( y - x ) ) ` is unbounded where
       ` x <_ A ` and ` A <_ y ` .  (Contributed by Asger C. Ipsen,
       12-May-2021.) $)
    unbdqndv2 $p |- ( ph -> -. A e. dom ( RR _D F ) ) $=
      ( co wcel wa cfv cmin cabs wbr cle crp vw vz vc cr cdv cdm cdif cdiv cmpt
      csn cv eqid cc wss ax-resscn a1i adantr wf clt wrex wne c2 cmul wral wceq
      w3a breq1 3anbi3d rexbidv ralbidv ad2antrr simprl rpmulcld rspcdva simprr
      2rp rsp sylc ad3antrrr dvbss simpr sseldd simplrl simplrr simpr2r simpr1l
      cif simpr1r simpr2l simpr3 unbdqndv2lem2 simpld oveq1 fveq2d breq1d fveq2
      breq2d anbi12d adantl simprd rspcedvd rexlimdvva mpd ralrimivva unbdqndv1
      wb ex pm2.01da ) ADUDEUELUFZMZAXJNZUAUBDUDEUBFDUJUGZUBUKZEODEOZPLXMDPLUHL
      UIZFUCHXOULZUDUMUNXKUOUPZAFUDUNZXJIUQZAFUMEURZXJJUQZXKUAUKZDPLZQOZHUKZUSR
      ZUCUKZYBXOOZQOZSRZNZUAXLUTZUCHTTXKYGTMZYETMZNZNZBUKZDSRZDCUKZSRZNZYSYQPLZ
      YEUSRZYQYSVAZNZVBYGVCLZYSEOYQEOZPLQOUUBUHLZSRZVFZCFUTZBFUTZYLYPUULHTVDZYN
      UULYPUUAUUEGUKZUUHSRZVFZCFUTZBFUTZHTVDZUUMGTUUFUUNUUFVEZUURUULHTUUTUUQUUK
      BFUUTUUPUUJCFUUTUUOUUIUUAUUEUUNUUFUUHSVGVHVIVIVJAUUSGTVDXJYOKVKYPVBYGVBTM
      YPVPUPXKYMYNVLZVMVNXKYMYNVOZUULHTVQVRYPUUJYLBCFFYPYQFMZYSFMZNZNZUUJYLUVFU
      UJNZYKYGUUBVCLUUGXNPLQOSRYQYSWGZDPLZQOZYEUSRZYGUVHXOOZQOZSRZNZUAUVHXLUVGU
      VHXLMZUVOUVGUBDYGYEYQEXOYSUVHFXPUVHULXKXRYOUVEUUJXSVSXKXTYOUVEUUJYAVSUVFD
      FMZUUJYPUVQUVEXKUVQYOXKXIFDXKFUDEXQYAXSVTAXJWAWBUQUQUQYPYMUVEUUJUVAVKYPYN
      UVEUUJUVBVKYPUVCUVDUUJWCYPUVCUVDUUJWDUUCUUDUUAUUIUVFWEYRYTUUEUUIUVFWFYRYT
      UUEUUIUVFWHUUCUUDUUAUUIUVFWIUVFUUAUUEUUIWJWKZWLYBUVHVEZYKUVOXFUVGUVSYFUVK
      YJUVNUVSYDUVJYEUSUVSYCUVIQYBUVHDPWMWNWOUVSYIUVMYGSUVSYHUVLQYBUVHXOWPWNWQW
      RWSUVGUVPUVOUVRWTXAXGXBXCXDXEXH $.
  $}

  ${
    knoppndvlem1.n $e |- ( ph -> N e. NN ) $.
    knoppndvlem1.j $e |- ( ph -> J e. ZZ ) $.
    knoppndvlem1.m $e |- ( ph -> M e. ZZ ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 15-Jun-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppndvlem1 $p |- ( ph -> ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. M ) e. RR )
      $=
      ( c2 cmul co cneg wcel a1i syl zred remulcld recnd cc0 c1 wbr cexp cr 2re
      cdiv cn cz nnz wne 2ne0 0red 1red clt 0lt1 cle nnge1 ltletrd ltned necomd
      mulne0d znegcld reexpclzd redivcld ) AHDIJZBKZUAJZHUDJCAVEHAVCVDAHDHUBLAU
      CMZADADUELZDUFLEDUGNOZPAHDAHVFQADVHQHRUHAUIMZARDARDAUJZARSDVJAUKVHRSULTAU
      MMAVGSDUNTEDUONUPUQURUSABFUTVAVFVIVBACGOP $.
  $}

  ${
    knoppndvlem2.n $e |- ( ph -> N e. NN ) $.
    knoppndvlem2.i $e |- ( ph -> I e. ZZ ) $.
    knoppndvlem2.j $e |- ( ph -> J e. ZZ ) $.
    knoppndvlem2.m $e |- ( ph -> M e. ZZ ) $.
    knoppndvlem2.1 $e |- ( ph -> J < I ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 15-Jun-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppndvlem2 $p |- ( ph -> ( ( ( 2 x. N ) ^ I ) x.
      ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. M ) ) e. ZZ ) $=
      ( c2 cmul co cexp cz wcel syl cc0 wa jca cneg cdiv cmin c1 2cnd cn mulcld
      nnz zcnd wne 2ne0 a1i 0red 1red zred clt wbr 0lt1 cle nnge1 ltletrd ltned
      necomd mulne0d expclzd znegcld divcld mulassd eqcomd divassd wceq expaddz
      caddc cc negsubd oveq2d wb znnsub mpbid expm1t 3eqtrd oveq1d cn0 peano2zm
      zsubcl posdifd 0zd zltlem1 elnn0z sylibr expcld divcan3d 2z zmulcl zexpcl
      eqtrd zmulcld eqeltrd ) AKELMZBNMZWSCUAZNMZKUBMZDLMLMZWSBCUCMZUDUCMZNMZEL
      MZDLMZOAXDWTXCLMZDLMZXIAXKXDAWTXCDAWSBAKEAUEZAEAEUFPZEOPZFEUHQZUIZUGZAKEX
      LXPKRUJAUKULZAREAREAUMZARUDEXSAUNAEXOUORUDUPUQAURULAXMUDEUSUQFEUTQVAVBVCV
      DZGVEZAXBKAWSXAXQXTACHVFZVEZXLXRVGADIUIVHVIAXJXHDLAXJWTXBLMZKUBMZXGWSLMZK
      UBMZXHAYEXJAWTXBKYAYCXLXRVJVIAYDYFKUBAYDWSBXAVMMZNMZWSXENMZYFAYIYDAWSVNPZ
      WSRUJZSZBOPZXAOPZSZSYIYDVKAYMYPAYKYLXQXTTAYNYOGYBTTWSBXAVLQVIAYHXEWSNABCA
      BGUIACHUIVOVPAYKXEUFPZSYJYFVKAYKYQXQACBUPUQZYQJACOPZYNSYRYQVQAYSYNHGTCBVR
      QVSTWSXEVTQWAWBAYGXGWSKUBMZLMXHAXGWSKAWSXFXQAXFOPZRXFUSUQZSXFWCPZAUUAUUBA
      XEOPZUUAAYNYSSUUDAYNYSGHTBCWEQZXEWDQARXEUPUQZUUBAYRUUFJACBACHUOABGUOWFVSA
      ROPZUUDSUUFUUBVQAUUGUUDAWGUUETRXEWHQVSTXFWIWJZWKXQXLXRVJAYTEXGLAEKXPXLXRW
      LVPWPWAWBWPAXHDAXGEAWSOPZUUCSXGOPAUUIUUCAKOPZXNSUUIAUUJXNUUJAWMULXOTKEWNQ
      UUHTWSXFWOQXOWQIWQWR $.
  $}

  ${
    knoppndvlem3.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 15-Jun-2021.) $)
    knoppndvlem3 $p |- ( ph -> ( C e. RR /\ ( abs ` C ) < 1 ) ) $=
      ( cr wcel cabs cfv c1 clt wbr cneg cioo co elioore syl wa eliooord absltd
      1red mpbird jca ) ABDEZBFGHIJZABHKZHLMEZUBCBUDHNOZAUCUDBIJBHIJPZAUEUGCBUD
      HQOABHUFASRTUA $.
  $}

  ${
    $d A k v $.  $d C m n y $.  $d F i m w z $.  $d F k m v z $.  $d N n y $.
    $d N x $.  $d T n y $.  $d W k $.  $d ph i m n w y z $.  $d i m w x z $.
    $d ph k m v z $.
    knoppndvlem4.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndvlem4.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndvlem4.w $e |- W =
                        ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    knoppndvlem4.a $e |- ( ph -> A e. RR ) $.
    knoppndvlem4.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem4.n $e |- ( ph -> N e. NN ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 15-Jun-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppndvlem4 $p |- ( ph
                      -> seq 0 ( + , ( F ` A ) ) ~~> ( W ` A ) ) $=
      ( cfv cc0 vk vm vz vv cr caddc cof cn0 cv cmpt cseq cvv nn0uz 0zd wcel c1
      cabs clt wbr knoppndvlem3 simpld knoppcnlem8 seqex a1i wa cn adantr simpr
      knoppcnlem7 fveq1d wceq eqid fveq2 seqeq3d adantl fvexd eqtrd knoppcnlem9
      fvmptd simprd ulmclm ) AEUEUAUFUGUBUHUCUEUBUIUCUIJSSUJUJTUKZLUFEJSZTUKZTU
      LUHUMAUNABCUCFGUBIJKMNRAFUEUOZFUQSUPURUSZAFQUTZVAZVBPWDULUOAUFWCTVCVDAUAU
      IZUHUOZVEZEWIWBSZSEUDUEWIUFUDUIZJSZTUKZSZUJZSZWIWDSZWKEWLWQWKBCUCUDFGUBIJ
      WIKMNAKVFUOWJRVGAWEWJWHVGAWJVHVIVJAWRWSVKWJAUDEWPWSUEWQULWQWQVKAWQVLVDWME
      VKZWPWSVKAWTWIWOWDWTWNWCUFTWMEJVMVNVJVOPAWIWDVPVSVGVQABCUCDFGHUBIJKLMNORW
      HAWEWFWGVTVRWA $.
  $}

  ${
    $d A n y $.  $d A x $.  $d C n y $.  $d J i n y $.  $d N n y $.  $d N x $.
    $d T n y $.  $d ph i n y $.  $d i x $.
    knoppndvlem5.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndvlem5.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndvlem5.a $e |- ( ph -> A e. RR ) $.
    knoppndvlem5.c $e |- ( ph -> C e. RR ) $.
    knoppndvlem5.n $e |- ( ph -> N e. NN ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 15-Jun-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppndvlem5 $p |- ( ph ->
              sum_ i e. ( 0 ... J ) ( ( F ` A ) ` i ) e. RR ) $=
      ( cc0 cfv wcel adantr cfz co cv fzfid wa cn cr elfznn0 adantl knoppcnlem3
      cn0 fsumrecl ) AQJUAUBZGUCZDIRRGAQJUDAUNUMSZUEBCDEFHIUNKLMAKUFSUOPTAEUGSU
      OOTADUGSUONTUOUNUKSAUNJUHUIUJUL $.
  $}

  ${
    $d A i n w y $.  $d A i w x $.  $d C n y $.  $d F i w $.  $d J i n y $.
    $d N n y $.  $d N x $.  $d T n y $.  $d ph i n w y $.
    knoppndvlem6.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndvlem6.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndvlem6.w $e |- W =
                        ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    knoppndvlem6.a $e |- A = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. M ) $.
    knoppndvlem6.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem6.j $e |- ( ph -> J e. NN0 ) $.
    knoppndvlem6.m $e |- ( ph -> M e. ZZ ) $.
    knoppndvlem6.n $e |- ( ph -> N e. NN ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 15-Jun-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppndvlem6 $p |- ( ph -> ( W ` A ) =
                        sum_ i e. ( 0 ... J ) ( ( F ` A ) ` i ) ) $=
      ( cfv cc0 cfz co cv csu c1 caddc cuz cn0 cmin cr cvv cmpt wceq a1i fveq1d
      fveq2 sumeq2sdv adantl c2 cmul cneg cexp nn0zd knoppndvlem1 eqeltrd sumex
      cdiv wcel fvmptd nn0uz eqid peano2nn0 syl wa eqidd cn adantr cabs clt wbr
      knoppndvlem3 simpr knoppcnlem3 recnd cseq cli cdm knoppndvlem4 seqex fvex
      simpld breldm isumsplit nn0cnd pncand oveq2d sumeq1d oveq1d eluznn0 sylan
      1cnd 3eqtrd knoppcnlem1 cz cle eluzle wb jca zltp1le knoppndvlem2 dnizeq0
      mpbird cc expcld mul01d sumeq2dv wss wo ssid orcd sumz eqtrd knoppndvlem5
      cfn addid1d ) AENUCZUDKUEUFZHUGZEJUCZUCZHUHZKUIUJUFZUKUCZYNHUHZUJUFZYOAYJ
      ULYNHUHZUDYPUIUMUFZUEUFZYNHUHZYRUJUFYSADEULYLDUGZJUCZUCZHUHZYTUNNUONDUNUU
      GUPUQAQURUUDEUQZUUGYTUQAUUHULUUFYNHUUHYLUUEYMUUDEJUTUSVAVBAEVCMVDUFZKVEVF
      UFVCVKUFLVDUFZUNEUUJUQZARURAKLMUBAKTVGZUAVHVIZYTUOVLAULYNHVJURVMAYNHYMUDY
      PYQULVNYQVOAKULVLYPULVLZTKVPVQZAYLULVLZVRZYNVSUUQYNUUQBCEFGIJYLMOPAMVTVLZ
      UUPUBWAAFUNVLZUUPAUUSFWBUCUIWCWDAFSWEWOZWAAEUNVLZUUPUUMWAAUUPWFWGWHAUJYMU
      DWIZYJWJWDUVBWJWKVLABCDEFGHIJMNOPQUUMSUBWLUVBYJWJUJYMUDWMENWNWPVQWQAUUCYO
      YRUJAUUBYKYNHAUUAKUDUEAKUIAKTWRAXEWSWTXAXBXFAYSYOUDUJUFYOAYRUDYOUJAYRYQUD
      HUHZUDAYQYNUDHAYLYQVLZVRZYNFYLVFUFZUUIYLVFUFZEVDUFZGUCZVDUFUVFUDVDUFUDUVE
      CEFGIJYLMPAUVAUVDUUMWAAUUNUVDUUPUUOYLYPXCXDZXGUVEUVIUDUVFVDUVEBUVHGOUVEUV
      HUVGUUJVDUFXHUVEEUUJUVGVDUUKUVERURWTUVEYLKLMAUURUVDUBWAUVEYLUVJVGZAKXHVLZ
      UVDUULWAZALXHVLUVDUAWAUVEKYLWCWDZYPYLXIWDZUVDUVOAYPYLXJVBUVEUVLYLXHVLZVRU
      VNUVOXKUVEUVLUVPUVMUVKXLKYLXMVQXPXNVIXOWTUVEUVFUVEFYLAFXQVLUVDAFUUTWHWAUV
      JXRXSXFXTAYQYQYAZYQYHVLZYBUVCUDUQAUVQUVRUVQAYQYCURYDYQHYPYEVQYFWTAYOAYOAB
      CEFGHIJKMOPUUMUUTUBYGWHYIYFYF $.
  $}

  ${
    $d A n y $.  $d C n y $.  $d J n $.  $d N n y $.  $d T n y $.  $d ph n y $.
    knoppndvlem7.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndvlem7.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndvlem7.a $e |- A = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. M ) $.
    knoppndvlem7.j $e |- ( ph -> J e. NN0 ) $.
    knoppndvlem7.m $e |- ( ph -> M e. ZZ ) $.
    knoppndvlem7.n $e |- ( ph -> N e. NN ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 15-Jun-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppndvlem7 $p |- ( ph -> ( ( F ` A ) ` J ) =
                            ( ( C ^ J ) x. ( T ` ( M / 2 ) ) ) ) $=
      ( co c2 cmul cfv cexp cdiv cneg wceq a1i knoppndvlem1 eqeltrd knoppcnlem1
      cr nn0zd oveq2i c1 2cnd wcel nnz syl zcnd mulcld expcld cc0 wne 2ne0 0red
      cn 1red zred clt wbr 0lt1 cle nnge1 ltletrd ltned mulne0d znegcld expclzd
      necomd divcld mulassd eqcomd divassd expnegd oveq2d expne0d recidd oveq1d
      cz eqtrd divrec2d 3eqtrd fveq2d ) AIDHUAUAEIUBRZSKTRZIUBRZDTRZFUAZTRWMJSU
      CRZFUAZTRACDEFGHIKMADWNIUDZUBRZSUCRZJTRZUJDXCUEANUFAIJKQAIOUKZPUGUHOUIAWQ
      WSWMTAWPWRFAWPWOXCTRZWRWPXEUEADXCWOTNULUFAXEWOXBTRZJTRZUMSUCRZJTRZWRAXGXE
      AWOXBJAWNIASKAUNZAKAKVEUOZKWHUOQKUPUQZURZUSZOUTZAXASAWNWTXNASKXJXMSVAVBAV
      CUFZAVAKAVAKAVDZAVAUMKXQAVFAKXLVGVAUMVHVIAVJUFAXKUMKVKVIQKVLUQVMVNVRVOZAI
      XDVPVQZXJXPVSAJPURZVTWAAXFXHJTAXFWOXATRZSUCRZXHAYBXFAWOXASXOXSXJXPWBWAAYA
      UMSUCAYAWOUMWOUCRZTRUMAXAYCWOTAWNIXNXRXDWCWDAWOXOAWNIXNXRXDWEWFWIWGWIWGAW
      RXIAJSXTXJXPWJWAWKWIWLWDWI $.
  $}

  ${
    $d A n y $.  $d C n y $.  $d J n $.  $d M x $.  $d N n y $.  $d T n y $.
    $d n ph y $.
    knoppndvlem8.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndvlem8.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndvlem8.a $e |- A = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. M ) $.
    knoppndvlem8.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem8.j $e |- ( ph -> J e. NN0 ) $.
    knoppndvlem8.m $e |- ( ph -> M e. ZZ ) $.
    knoppndvlem8.n $e |- ( ph -> N e. NN ) $.
    knoppndvlem8.1 $e |- ( ph -> 2 || M ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 15-Jun-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppndvlem8 $p |- ( ph -> ( ( F ` A ) ` J ) = 0 ) $=
      ( c2 cfv cexp co cdiv cmul cc0 knoppndvlem7 cdvds wbr cz wcel wne w3a a1i
      wb 2z 2ne0 3jca dvdsval2 syl mpbid dnizeq0 oveq2d cr cabs c1 knoppndvlem3
      clt simpld recnd expcld mul01d 3eqtrd ) AIDHUAUAEIUBUCZJTUDUCZFUAZUEUCVNU
      FUEUCUFABCDEFGHIJKLMNPQRUGAVPUFVNUEABVOFLATJUHUIZVOUJUKZSATUJUKZTUFULZJUJ
      UKZUMVQVRUOAVSVTWAVSAUPUNVTAUQUNQURTJUSUTVAVBVCAVNAEIAEAEVDUKEVEUAVFVHUIA
      EOVGVIVJPVKVLVM $.
  $}

  ${
    $d A n y $.  $d C n y $.  $d J n $.  $d M m $.  $d N n y $.  $d T m $.
    $d T n y $.  $d ph m $.  $d m x $.  $d ph n y $.
    knoppndvlem9.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndvlem9.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndvlem9.a $e |- A = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. M ) $.
    knoppndvlem9.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem9.j $e |- ( ph -> J e. NN0 ) $.
    knoppndvlem9.m $e |- ( ph -> M e. ZZ ) $.
    knoppndvlem9.n $e |- ( ph -> N e. NN ) $.
    knoppndvlem9.1 $e |- ( ph -> -. 2 || M ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 15-Jun-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppndvlem9 $p |- ( ph -> ( ( F ` A ) ` J ) = ( ( C ^ J ) / 2 ) ) $=
      ( c2 vm cfv cexp co cdiv cmul c1 knoppndvlem7 cv caddc wceq cz cdvds wrex
      wbr wn wcel wb odd2np1 mpbid wa eqcom biimpi oveq1d adantl 2cnd cc mulcld
      syl zcn 1cnd cc0 wne 2ne0 a1i divdird divcan3d eqtrd fveq2d dnizphlfeqhlf
      adantrr id rexlimddv oveq2d cr cabs clt knoppndvlem3 simpld expcld div12d
      recnd divcld mulid2d 3eqtrd ) AIDHUBUBEIUCUDZJTUEUDZFUBZUFUDWPUGTUEUDZUFU
      DZWPTUEUDZABCDEFGHIJKLMNPQRUHAWRWSWPUFATUAUIZUFUDZUGUJUDZJUKZWRWSUKUAULAT
      JUMUOUPZXEUAULUNZSAJULUQXFXGURQUAJUSVIUTAXBULUQZXEVAZVAZWRXBWSUJUDZFUBZWS
      XJWQXKFXJWQXDTUEUDZXKXIWQXMUKZAXEXNXHXEJXDTUEXEJXDUKXDJVBVCVDVEVEAXHXMXKU
      KXEAXHVAZXMXCTUEUDZWSUJUDXKXOXCUGTXOTXBXOVFZXHXBVGUQAXBVJVEZVHXOVKXQTVLVM
      ZXOVNVOZVPXOXPXBWSUJXOXBTXRXQXTVQVDVRWAVRVSAXHXLWSUKZXEXHYAAXHBXBFLXHWBVT
      VEWAVRWCWDAWTUGXAUFUDXAAWPUGTAEIAEAEWEUQEWFUBUGWGUOAEOWHWIWLPWJZAVKAVFZXS
      AVNVOZWKAXAAWPTYBYCYDWMWNVRWO $.
  $}

  ${
    $d A n y $.  $d A x $.  $d B n y $.  $d B x $.  $d C n y $.  $d J n $.
    $d J x $.  $d M n y $.  $d M x $.  $d N n y $.  $d N x $.  $d T n y $.
    $d ph n y $.
    knoppndvlem10.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndvlem10.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndvlem10.a $e |- A = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. M ) $.
    knoppndvlem10.b $e |- B = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. ( M + 1 ) ) $.
    knoppndvlem10.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem10.j $e |- ( ph -> J e. NN0 ) $.
    knoppndvlem10.m $e |- ( ph -> M e. ZZ ) $.
    knoppndvlem10.n $e |- ( ph -> N e. NN ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 15-Jun-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppndvlem10 $p |- ( ph ->
                  ( abs ` ( ( ( F ` B ) ` J ) - ( ( F ` A ) ` J ) ) )
                = ( ( ( abs ` C ) ^ J ) / 2 ) ) $=
      ( cfv cmin co cabs cexp c2 cdiv cdvds wbr wceq wa c1 caddc cneg cioo wcel
      cc0 adantr cn0 cz peano2zd cn wn notnot adantl oddp1even syl knoppndvlem9
      wb mtbid notnotrd knoppndvlem8 oveq12d clt knoppndvlem3 simpld recnd 2cnd
      expcld wne 2ne0 a1i divcld subid1d eqtrd fveq2d cmul knoppndvlem1 eqeltrd
      cr nn0zd knoppcnlem3 abssubd simpr pm2.61dan absdivd absexpd cle 0le2 2re
      mpbid absidi ax-mp ) AJEIUAUAZJDIUAUAZUBUCZUDUAZFJUEUCZUFUGUCZUDUAZFUDUAZ
      JUEUCZUFUGUCZAUFKUHUIZXGXJUJAXNUKZXFXIUDXOXFXIUQUBUCZXIXOXDXIXEUQUBXOBCEF
      GHIJKULUMUCZLMNPAFULUNULUOUCUPZXNQURZAJUSUPZXNRURZAXQUTUPZXNAKSVAZURALVBU
      PZXNTURZXOXNVCZUFXQUHUIZXNYFVCAXNVDVEZXOKUTUPZYFYGVIZAYIXNSURZKVFZVGVJVHX
      OBCDFGHIJKLMNOXSYAYKYEXOXNYHVKVLVMAXPXIUJZXNAXIAXHUFAFJAFAFWJUPXKULVNUIAF
      QVOVPZVQZRVSZAVRZUFUQVTAWAWBZWCWDZURWEWFAYFUKZXGXEXDUBUCZUDUAZXJAXGUUBUJY
      FAXDXEAXDABCEFGHIJLMNTYNAEUFLWGUCJUNUEUCUFUGUCZXQWGUCZWJEUUDUJAPWBAJXQLTA
      JRWKZYCWHWIRWLVQAXEABCDFGHIJLMNTYNADUUCKWGUCZWJDUUFUJAOWBAJKLTUUESWHWIRWL
      VQWMURYTUUAXIUDYTUUAXPXIYTXEXIXDUQUBYTBCDFGHIJKLMNOAXRYFQURZAXTYFRURZAYIY
      FSURZAYDYFTURZAYFWNZVHYTBCEFGHIJXQLMNPUUGUUHAYBYFYCURUUJYTYFYGUUKYTYIYJUU
      IYLVGXAVLVMAYMYFYSURWEWFWEWOAXJXHUDUAZUFUDUAZUGUCXMAXHUFYPYQYRWPAUULXLUUM
      UFUGAFJYORWQUUMUFUJZAUQUFWRUIUUNWSUFWTXBXCWBVMWEWE $.
  $}

  ${
    $d A i n y $.  $d A i x $.  $d B i n y $.  $d B i x $.  $d C n y $.
    $d J i n y $.  $d N n y $.  $d N x $.  $d T n y $.  $d ph i n y $.
    knoppndvlem11.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndvlem11.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndvlem11.a $e |- ( ph -> A e. RR ) $.
    knoppndvlem11.b $e |- ( ph -> B e. RR ) $.
    knoppndvlem11.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem11.j $e |- ( ph -> J e. NN0 ) $.
    knoppndvlem11.n $e |- ( ph -> N e. NN ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 28-Jun-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppndvlem11 $p |- ( ph ->
      ( abs ` ( sum_ i e. ( 0 ... ( J - 1 ) ) ( ( F ` B ) ` i )
              - sum_ i e. ( 0 ... ( J - 1 ) ) ( ( F ` A ) ` i ) ) )
         <_ ( ( abs ` ( B - A ) ) x. sum_ i e. ( 0 ... ( J - 1 ) )
                                ( ( ( 2 x. N ) x. ( abs ` C ) ) ^ i ) ) ) $=
      ( co cc0 c1 cmin cfz cv cfv csu cabs c2 cmul cexp fzfid wcel wa cn adantr
      cle cr clt wbr knoppndvlem3 simpld cn0 elfznn0 adantl knoppcnlem3 fsumsub
      recnd eqcomd fveq2d subcld fsumcl fsumrecl resubcld 2re a1i nnre remulcld
      abscld syl reexpcld fsumabs knoppcnlem1 oveq12d dnicld2 subdid absmuld cc
      eqtrd absexpd oveq1d absge0d expge0d dnibnd lemul2ad wceq 0le2 ax-mp 0red
      absidi 1red 0le1 nnge1 letrd absidd oveq2d mulassd mulcld mulcomd mulexpd
      3eqtrd breqtrd eqbrtrd fsumle eqeltrrd fsummulc2 ) AUAKUBUCTZUDTZHUEZEJUF
      UFZHUGXRXSDJUFUFZHUGUCTZUHUFXRXTYAUCTZHUGZUHUFZEDUCTZUHUFZXRUILUJTZFUHUFZ
      UJTZXSUKTZHUGZUJTZUQAYBYDUHAYDYBAXRXTYAHAUAXQULZAXSXRUMZUNZXTYPBCEFGIJXSL
      MNALUOUMZYOSUPZAFURUMZYOAYSYIUBUSUTAFQVAVBZUPZAEURUMYOPUPZYOXSVCUMAXSXQVD
      VEZVFVHZYPYAYPBCDFGIJXSLMNYRUUAADURUMYOOUPZUUCVFVHZVGVIVJAYEXRYCUHUFZHUGZ
      YMAYDAXRYCHYNYPXTYAUUDUUFVKZVLVSAXRUUGHYNYPYCUUIVSZVMAYGYLAYFAYFAEDPOVNVH
      ZVSZAXRYKHYNYPYJXSAYJURUMYOAYHYIAUILUIURUMAVOVPZAYQLURUMSLVQVTZVRZAFAFYTV
      HZVSZVRUPUUCWAZVMVRAXRYCHYNUUIWBAUUHXRYGYKUJTZHUGZYMUQAXRUUGUUSHYNUUJYPYG
      YKAYGURUMYOUULUPZUURVRYPUUGYIXSUKTZYHXSUKTZEUJTZGUFZUVCDUJTZGUFZUCTZUHUFZ
      UJTZUUSUQYPUUGFXSUKTZUVHUJTZUHUFZUVJYPYCUVLUHYPYCUVKUVEUJTZUVKUVGUJTZUCTZ
      UVLYPXTUVNYAUVOUCYPCEFGIJXSLNUUBUUCWCYPCDFGIJXSLNUUEUUCWCWDYPUVLUVPYPUVKU
      VEUVGYPUVKYPFXSUUAUUCWAVHZYPUVEYPBUVDGMYPUVCEYPYHXSAYHURUMYOUUOUPZUUCWAZU
      UBVRZWEVHZYPUVGYPBUVFGMYPUVCDUVSUUEVRZWEVHZWFVIWIVJYPUVMUVKUHUFZUVIUJTUVJ
      YPUVKUVHUVQYPUVEUVGUWAUWCVKZWGYPUWDUVBUVIUJYPFXSAFWHUMYOUUPUPZUUCWJWKWIWI
      YPUVJUVBUVDUVFUCTZUHUFZUJTZUUSUQYPUVIUWHUVBYPUVHUWEVSYPUWGYPUWGYPUVDUVFUV
      TUWBVNVHVSYPYIXSAYIURUMYOUUQUPZUUCWAZYPYIXSUWJUUCYPFUWFWLWMYPBUVFUVDGMUWB
      UVTWNWOYPUWIUVBUVCYGUJTZUJTZUUSYPUWHUWLUVBUJYPUWHUVCYFUJTZUHUFZUWLYPUWGUW
      NUHYPUWNUWGYPUVCEDYPUVCUVSVHZYPEUUBVHYPDUUEVHWFVIVJYPUWOUVCUHUFZYGUJTUWLY
      PUVCYFUWPAYFWHUMYOUUKUPWGYPUWQUVCYGUJYPUWQYHUHUFZXSUKTZUVCYPYHXSYPYHUVRVH
      ZUUCWJAUWSUVCWPYOAUWRYHXSUKAUWRUIUHUFZLUHUFZUJTYHAUILAUIUUMVHALUUNVHWGAUX
      AUIUXBLUJUXAUIWPZAUAUIUQUTUXCWQUIVOWTWRVPALUUNAUAUBLAWSAXAUUNUAUBUQUTAXBV
      PAYQUBLUQUTSLXCVTXDXEWDWIWKUPWIWKWIWIXFYPUWMUVBUVCUJTZYGUJTZYGUXDUJTUUSYP
      UXEUWMYPUVBUVCYGYPUVBUWKVHZUWPYPYGUVAVHZXGVIYPUXDYGYPUVBUVCUXFUWPXHZUXGXI
      YPUXDYKYGUJYPUXDUVCUVBUJTZYKYPUVBUVCUXFUWPXIYPYKUXIYPYHYIXSUWTYPYIUWJVHUU
      CXJVIWIZXFXKWIXLXMXNAYMUUTAXRYKYGHYNAYGUULVHYPUXDYKWHUXJUXHXOXPVIXLXDXM
      $.
  $}

  ${
    knoppndvlem12.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem12.n $e |- ( ph -> N e. NN ) $.
    knoppndvlem12.1 $e |- ( ph -> 1 < ( N x. ( abs ` C ) ) ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 29-Jun-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppndvlem12 $p |- ( ph -> ( ( ( 2 x. N ) x. ( abs ` C ) ) =/= 1
      /\ 1 < ( ( ( 2 x. N ) x. ( abs ` C ) ) - 1 ) ) ) $=
      ( c2 cmul co c1 clt wbr cr wcel a1i syl remulcld recnd wceq eqbrtrd wa cn
      cabs cfv wne cmin 1red 2re nnre knoppndvlem3 simpld abscld 1lt2 2t1e2 crp
      eqcomi 2rp ltmul2dd mulassd eqcomd breqtrd lttrd jca ltne caddc ltaddsubd
      1p1e2 mpbid ) AGCHIZBUCUDZHIZJUEZJVKJUFIKLZAJMNZJVKKLZUAVLAVNVOAUGZAJGVKV
      PGMNAUHOZAVIVJAGCVQACUBNCMNECUIPZQABABABMNVJJKLABDUJUKRULZQZJGKLAUMOAGGCV
      JHIZHIZVKKAGGJHIZWBKGWCSAWCGUNUPOAJWAGVPACVJVRVSQGUONAUQOFURTAVKWBAGCVJAG
      VQRACVRRAVJVSRUSUTVAZVBVCJVKVDPAJJVEIZVKKLVMAWEGVKKWEGSAVGOWDTAJJVKVPVPVT
      VFVHVC $.
  $}

  ${
    knoppndvlem13.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem13.n $e |- ( ph -> N e. NN ) $.
    knoppndvlem13.1 $e |- ( ph -> 1 < ( N x. ( abs ` C ) ) ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 1-Jul-2021.)
       (Revised by Asger C. Ipsen, 5-Jul-2021.) $)
    knoppndvlem13 $p |- ( ph -> C =/= 0 ) $=
      ( cc0 wceq c1 cabs cfv cmul co clt wbr adantr wa wn 0lt1 wcel 0re ltnsymi
      1re ax-mp a1i id abs00bd oveq2d adantl cc cn nncn syl mul01d eqtrd eqcomd
      breq2d mtbid pm2.65da neqned ) ABGABGHZICBJKZLMZNOZAVDVAFPAVAQZIGNOZVDVFR
      ZVEGINOVGSGIUAUCUBUDUEVEGVCINVEVCGVEVCCGLMZGVAVCVHHAVAVBGCLVABVAUFUGUHUIV
      ECACUJTZVAACUKTVIECULUMPUNUOUPUQURUSUT $.
  $}

  ${
    $d A i n y $.  $d A i x $.  $d B i n y $.  $d B i x $.  $d C i n y $.
    $d J i n y $.  $d N i n y $.  $d N i x $.  $d T n y $.  $d ph i n y $.
    knoppndvlem14.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndvlem14.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndvlem14.a $e |- A = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. M ) $.
    knoppndvlem14.b $e |- B = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. ( M + 1 ) ) $.
    knoppndvlem14.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem14.j $e |- ( ph -> J e. NN0 ) $.
    knoppndvlem14.m $e |- ( ph -> M e. ZZ ) $.
    knoppndvlem14.n $e |- ( ph -> N e. NN ) $.
    knoppndvlem14.1 $e |- ( ph -> 1 < ( N x. ( abs ` C ) ) ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 1-Jul-2021.)
       (Revised by Asger C. Ipsen, 7-Jul-2021.) $)
    knoppndvlem14 $p |- ( ph ->
      ( abs ` ( sum_ i e. ( 0 ... ( J - 1 ) ) ( ( F ` B ) ` i )
              - sum_ i e. ( 0 ... ( J - 1 ) ) ( ( F ` A ) ` i ) ) )
      <_ ( ( ( ( abs ` C ) ^ J ) / 2 ) x.
          ( 1 / ( ( ( 2 x. N ) x. ( abs ` C ) ) - 1 ) ) ) ) $=
      ( cc0 c1 cmin co cfz cv cfv csu cabs c2 cmul cexp cdiv cneg caddc cr wceq
      a1i nn0zd peano2zd knoppndvlem1 eqeltrd clt wbr knoppndvlem3 knoppndvlem5
      wcel simpld resubcld recnd abscld fzfid wa 2re cn syl remulcld adantr cn0
      nnre elfznn0 reexpcld fsumrecl 2ne0 redivcld 1red 0red 0lt1 knoppndvlem12
      adantl wne lttrd jca ltne knoppndvlem11 cle oveq12d nnge1 ltletrd mulne0d
      simprd znegcld reexpclzd zcnd subdid eqcomd pncan2d oveq2d mulid1d 3eqtrd
      1cnd eqtrd fveq2d absdivd cc w3a mulcld 3jca absexpz absmuld pm3.2i absid
      0le2 ax-mp ltled absidd oveq1d geoser expcld necomd div2subd eqeltrrd crp
      cz 2rp rpgt0d mulgt0d mulassd expgt0 divge0d elrpd lem1d lediv1dd divrecd
      lemul2ad div23d knoppndvlem13 absne0d mulexpz jca32 expaddz nn0cnd negidd
      addcomd exp0d mulid2d breqtrd eqbrtrd letrd ) AUCKUDUEUFZUGUFZHUHZEJUIUIH
      UJZUVCUVDDJUIUIHUJZUEUFZUKUIEDUEUFZUKUIZUVCULMUMUFZFUKUIZUMUFZUVDUNUFZHUJ
      ZUMUFZUVKKUNUFZULUOUFZUDUVLUDUEUFZUOUFZUMUFZAUVGAUVGAUVEUVFABCEFGHIJUVBMN
      OAEUVJKUPZUNUFZULUOUFZLUDUQUFZUMUFZUREUWEUSAQUTZAKUWDMUAAKSVAZALTVBZVCVDZ
      AFURVIUVKUDVEVFAFRVGVJZUAVHABCDFGHIJUVBMNOADUWCLUMUFZURDUWKUSAPUTZAKLMUAU
      WGTVCVDZUWJUAVHVKVLVMAUVIUVNAUVHAUVHAEDUWIUWMVKVLVMAUVCUVMHAUCUVBVNAUVDUV
      CVIZVOUVLUVDAUVLURVIUWNAUVJUVKAULMULURVIZAVPUTZAMVQVIZMURVIUAMWBVRZVSZAFA
      FUWJVLZVMZVSZVTUWNUVDWAVIAUVDUVBWCWLWDWEZVSAUVQUVSAUVPULAUVKKUXASWDZUWPUL
      UCWMAWFUTZWGAUDUVRAWHZAUVLUDUXBUXFVKZAUCURVIZUCUVRVEVFZVOUVRUCWMAUXHUXIAW
      IZAUCUDUVRUXJUXFUXGUCUDVEVFAWJUTZAUVLUDWMZUDUVRVEVFZAFMRUAUBWKZXCWNZWOUCU
      VRWPVRZWGZVSABCDEFGHIJKMNOUWMUWIRSUAWQAUVOUWCUVLKUNUFZUDUEUFZUVRUOUFZUMUF
      ZUVTWRAUVIUWCUVNUXTUMAUVIUWCUKUIZUWCAUVHUWCUKAUVHUWEUWKUEUFZUWCAEUWEDUWKU
      EUWFUWLWSAUYCUWCUWDLUEUFZUMUFZUWCUDUMUFUWCAUYEUYCAUWCUWDLAUWCAUWBULAUVJUW
      AUWSAULMAULUWPVLZAMUWRVLZUXEAUXHUCMVEVFZVOMUCWMAUXHUYHUXJAUCUDMUXJUXFUWRU
      XKAUWQUDMWRVFUAMWTVRXAZWOUCMWPVRXBZAKUWGXDZXEZUWPUXEWGZVLZAUWDUWHXFALTXFZ
      XGXHAUYDUDUWCUMALUDUYOAXMZXIXJAUWCUYNXKXLXNXOAUYBUWBUKUIZULUKUIZUOUFUWCAU
      WBULAUWBUYLVLZUYFUXEXPAUYQUWBUYRULUOAUYQUVJUKUIZUWAUNUFZUWBAUVJXQVIZUVJUC
      WMZUWAYPVIZXRUYQVUAUSAVUBVUCVUDAULMUYFUYGXSZUYJUYKXTUVJUWAYAVRAUYTUVJUWAU
      NAUYTUYRMUKUIZUMUFUVJAULMUYFUYGYBAUYRULVUFMUMUYRULUSZAUWOUCULWRVFZVOVUGUW
      OVUHVPYEYCULYDYFUTZAMUWRAUCMUXJUWRUYIYGYHWSXNYIXNVUIWSXNXNAUVNUDUXRUEUFUD
      UVLUEUFUOUFUXTAUVLHKAUVLUXBVLZAUXLUXMUXNVJZSYJAUDUXRUDUVLUYPAUVLKVUJSYKZU
      YPVUJAUVLUDVUKYLYMXNZWSAUYAUWCUXRUVRUOUFZUMUFZUVTWRAUXTVUNUWCAUVNUXTURVUM
      UXCYNAUXRUVRAUVLKUXBSWDZUXGUXPWGUYMAUWBULUYLULYOVIAYQUTZAUCUWBUXJUYLAUVJU
      RVIZVUDUCUVJVEVFZXRUCUWBVEVFAVURVUDVUSUWSUYKAULMUWPUWRAULVUQYRUYIYSXTUVJU
      WAUUAVRYGUUBAUXSUXRUVRAUXRUDVUPUXFVKVUPAUVRUXGUXOUUCAUXRVUPUUDUUEUUGAVUOU
      WCUXRUVSUMUFZUMUFZUWCUXRUMUFZUVSUMUFZUVTAVUNVUTUWCUMAUXRUVRVULAUVRUXGVLUX
      PUUFXJAVVCVVAAUWCUXRUVSUYNVULAUVSUXQVLYTXHAVVBUVQUVSUMAVVBUWBUXRUMUFZULUO
      UFZUVQAVVEVVBAUWBUXRULUYSVULUYFUXEUUHXHAVVDUVPULUOAVVDUWBUVJKUNUFZUVPUMUF
      ZUMUFZUWBVVFUMUFZUVPUMUFZUVPAUXRVVGUWBUMAVUBVUCVOZUVKXQVIZUVKUCWMZVOZKYPV
      IZXRUXRVVGUSAVVKVVNVVOAVUBVUCVUEUYJWOZAVVLVVMAUVKUXAVLAFUWTAFMRUAUBUUIUUJ
      WOUWGXTUVJUVKKUUKVRXJAVVJVVHAUWBVVFUVPUYSAUVJKVUESYKAUVPUXDVLZYTXHAVVJUDU
      VPUMUFUVPAVVIUDUVPUMAVVIUVJUWAKUQUFZUNUFZUVJUCUNUFUDAVVSVVIAVVKVUDVVOVOVO
      VVSVVIUSAVVKVUDVVOVVPUYKUWGUULUVJUWAKUUMVRXHAVVRUCUVJUNAVVRKUWAUQUFUCAUWA
      KAUWAUYKXFAKSUUNZUUPAKVVTUUOXNXJAUVJVUEUUQXLYIAUVPVVQUURXNXLYIXNYIXLUUSUU
      TUVA $.
  $}

  ${
    $d A i n w y $.  $d A i w x $.  $d B i n w y $.  $d B i w x $.
    $d C i n y $.  $d F i w $.  $d J i n y $.  $d J i x $.  $d M n y $.
    $d M x $.  $d N i n y $.  $d N i x $.  $d T n y $.  $d ph i n w y $.
    knoppndvlem15.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndvlem15.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndvlem15.w $e |- W =
                        ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    knoppndvlem15.a $e |- A = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. M ) $.
    knoppndvlem15.b $e |- B = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. ( M + 1 ) ) $.
    knoppndvlem15.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem15.j $e |- ( ph -> J e. NN0 ) $.
    knoppndvlem15.m $e |- ( ph -> M e. ZZ ) $.
    knoppndvlem15.n $e |- ( ph -> N e. NN ) $.
    knoppndvlem15.1 $e |- ( ph -> 1 < ( N x. ( abs ` C ) ) ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 6-Jul-2021.) $)
    knoppndvlem15 $p |- ( ph ->
      ( ( ( ( abs ` C ) ^ J ) / 2 ) x.
          ( 1 - ( 1 / ( ( ( 2 x. N ) x. ( abs ` C ) ) - 1 ) ) ) )
        <_ ( abs ` ( ( W ` B ) - ( W ` A ) ) ) ) $=
      ( cabs cfv cexp co c2 cdiv c1 cmul cmin cc0 cfz csu cle wcel knoppndvlem3
      cv cr clt wbr simpld recnd abscld reexpcld 2re a1i wne 2ne0 redivcld 1red
      nnred remulcld resubcld wa 0red knoppndvlem12 simprd lttrd jca gt0ne0 syl
      0lt1 cneg wceq nn0zd knoppndvlem1 knoppcnlem3 caddc peano2zd knoppndvlem5
      eqeltrd subcld remulcl resubcl 1cnd subdid mulid1d oveq1d eqbrtrd abssubd
      leidd knoppndvlem10 eqtrd eqcomd breqtrd knoppndvlem14 letrd knoppndvlem6
      le2subd abs2difd cn0 cuz elnn0uz sylib adantr elfznn0 adantl fveq2 fsumm1
      cn oveq12d subadd4d fveq2d ) AGUFUGZLUHUIZUJUKUIZULULUJNUMUIZYHUMUIZULUNU
      IZUKUIZUNUIZUMUIZUOLULUNUIZUPUIZIVAZFKUGZUGZIUQZYRYSEKUGZUGZIUQZUNUIZLUUC
      UGZLYTUGZUNUIZUNUIZUFUGZFOUGZEOUGZUNUIZUFUGZURAYPUUIUUFUNUIZUFUGZUUKURAYP
      UUIUFUGZUUFUFUGZUNUIZUUQAYJYOAYIUJAYHLAGAGAGVBUSZYHULVCVDAGUAUTVEZVFVGZUB
      VHUJVBUSAVIVJZUJUOVKAVLVJVMZAULYNAVNZAULYMUVFAYLULAYKYHAUJNUVDANUDVOVPUVC
      VPUVFVQZAYMVBUSZUOYMVCVDZVRYMUOVKAUVHUVIUVGAUOULYMAVSUVFUVGUOULVCVDAWFVJA
      YLULVKULYMVCVDAGNUAUDUEVTWAWBWCYMWDWEVMZVQVPZAUURUUSAUUIAUUGUUHAUUGABCEGH
      JKLNPQUDUVBAEYKLWGUHUIUJUKUIZMUMUIZVBEUVMWHASVJALMNUDALUBWIZUCWJWOZUBWKVF
      ZAUUHABCFGHJKLNPQUDUVBAFUVLMULWLUIZUMUIZVBFUVRWHATVJALUVQNUDUVNAMUCWMZWJW
      OZUBWKVFZWPZVGZAUUFAUUBUUEAUUBABCFGHIJKYQNPQUVTUVBUDWNVFZAUUEABCEGHIJKYQN
      PQUVOUVBUDWNVFZWPZVGZVQZAUUPAUUIUUFUWBUWFWPVGAYPYJYJYNUMUIZUNUIZUUTUVKAYJ
      VBUSZUWIVBUSZVRUWJVBUSAUWKUWLUVEAUWKYNVBUSZVRUWLAUWKUWMUVEUVJWCYJYNWQWEWC
      YJUWIWRWEZUWHAYPYJULUMUIZUWIUNUIZUWJURAYJULYNAYJUVEVFZAWSAYNUVJVFWTAUWPUW
      JUWJURAUWOYJUWIUNAYJUWQXAXBAUWJUWNXEXCXCAYJUUSUURUWIUVEUWGUWCAYJYNUVEUVJV
      PAYJYJUURURAYJUVEXEAUURYJAUURUUHUUGUNUIUFUGYJAUUGUUHUVPUWAXDABCEFGHJKLMNP
      QSTUAUBUCUDXFXGXHXIABCEFGHIJKLMNPQSTUAUBUCUDUEXJXMXKAUUIUUFUWBUWFXNXKAUUI
      UUFUWBUWFXDXIAUUOUUKAUUNUUJUFAUUNUUBUUHWLUIZUUEUUGWLUIZUNUIZUUJAUULUWRUUM
      UWSUNAUULUOLUPUIZUUAIUQUWRABCDFGHIJKLUVQNOPQRTUAUBUVSUDXLAUUAUUHIUOLALXOU
      SLUOXPUGUSUBLXQXRZAYSUXAUSZVRZUUAUXDBCFGHJKYSNPQANYDUSUXCUDXSZAUVAUXCUVBX
      SZAFVBUSUXCUVTXSUXCYSXOUSAYSLXTYAZWKVFYSLYTYBYCXGAUUMUXAUUDIUQUWSABCDEGHI
      JKLMNOPQRSUAUBUCUDXLAUUDUUGIUOLUXBUXDUUDUXDBCEGHJKYSNPQUXEUXFAEVBUSUXCUVO
      XSUXGWKVFYSLUUCYBYCXGYEAUUJUWTAUUBUUEUUGUUHUWDUWEUVPUWAYFXHXGYGXHXI $.
  $}

  ${
    knoppndvlem16.a $e |- A = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. M ) $.
    knoppndvlem16.b $e |- B = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. ( M + 1 ) ) $.
    knoppndvlem16.j $e |- ( ph -> J e. NN0 ) $.
    knoppndvlem16.m $e |- ( ph -> M e. ZZ ) $.
    knoppndvlem16.n $e |- ( ph -> N e. NN ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 19-Jul-2021.) $)
    knoppndvlem16 $p |- ( ph -> ( B - A ) = ( ( ( 2 x. N ) ^ -u J ) / 2 ) ) $=
      ( cmin co c2 cmul cneg cexp c1 wceq a1i cdiv caddc oveq12d 2cnd nncnd cc0
      mulcld wne 2ne0 nnne0d mulne0d znegcld expclzd mulne0bad divcld zcnd 1cnd
      nn0zd addcld subdid eqcomd pncan2d oveq2d mulid1d eqtrd 3eqtrd ) ACBLMNFO
      MZDPZQMZNUAMZERUBMZOMZVJEOMZLMZVJVKELMZOMZVJACVLBVMLCVLSAHTBVMSAGTUCAVPVN
      AVJVKEAVINAVGVHANFAUDZAFKUEZUGANFVQVRNUFUHAUITAFKUJUKZADADIURULUMVQANFVQV
      RVSUNUOZAERAEJUPZAUQZUSWAUTVAAVPVJROMVJAVORVJOAERWAWBVBVCAVJVTVDVEVF $.
  $}

  ${
    $d A i n w y $.  $d A i w x $.  $d B i n w y $.  $d B i w x $.
    $d C i n y $.  $d F i w $.  $d J i n y $.  $d J i x $.  $d M n y $.
    $d M x $.  $d N i n y $.  $d N i x $.  $d T n y $.  $d ph i n w y $.
    knoppndvlem17.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndvlem17.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndvlem17.w $e |- W =
                        ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    knoppndvlem17.a $e |- A = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. M ) $.
    knoppndvlem17.b $e |- B = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. ( M + 1 ) ) $.
    knoppndvlem17.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem17.j $e |- ( ph -> J e. NN0 ) $.
    knoppndvlem17.m $e |- ( ph -> M e. ZZ ) $.
    knoppndvlem17.n $e |- ( ph -> N e. NN ) $.
    knoppndvlem17.1 $e |- ( ph -> 1 < ( N x. ( abs ` C ) ) ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 12-Aug-2021.) $)
    knoppndvlem17 $p |- ( ph ->
     ( ( ( ( 2 x. N ) x. ( abs ` C ) ) ^ J ) x.
          ( 1 - ( 1 / ( ( ( 2 x. N ) x. ( abs ` C ) ) - 1 ) ) ) )
      <_ ( ( abs ` ( ( W ` B ) - ( W ` A ) ) ) / ( B - A ) ) ) $=
      ( c2 cmul co cabs cfv cexp c1 cmin cdiv cneg cle cr wcel clt knoppndvlem3
      wbr simpld recnd abscld reexpcld 2re a1i cc0 wne 2ne0 redivcld 1red nnred
      remulcld resubcld 0red 0lt1 knoppndvlem12 simprd lttrd jca gt0ne0 mulcomd
      syl oveq1d crp 2rp nnrpd rpmulcld nn0zd znegcld rpexpcld rphalfcld rpne0d
      wa rpcnd divassd divcld divcan7d expnegd oveq2d 1cnd expcld gtned expne0d
      divdiv2d mulcld div1d cc cz w3a wceq knoppndvlem13 absne0d mulexpz eqcomd
      3eqtrd eqtrd caddc peano2zd knoppndvlem1 eqeltrd knoppcld subcld lediv1dd
      3jca knoppndvlem15 eqbrtrd knoppndvlem16 breqtrd ) AUFNUGUHZGUIUJZUGUHZLU
      KUHZULULYMULUMUHZUNUHZUMUHZUGUHZFOUJZEOUJZUMUHZUIUJZYKLUOZUKUHZUFUNUHZUNU
      HZUUBFEUMUHZUNUHUPAYRYLLUKUHZUFUNUHZYQUGUHZUUEUNUHZUUFUPAUUKYRAUUKYQUUIUG
      UHZUUEUNUHYQUUIUUEUNUHZUGUHZYRAUUJUULUUEUNAUUIYQAUUIAUUHUFAYLLAGAGAGUQURZ
      YLULUSVAZAGUAUTZVBZVCZVDZUBVEZUFUQURAVFVGZUFVHVIAVJVGZVKZVCZAYQAULYPAVLZA
      ULYOUVFAYMULAYKYLAUFNUVBANUDVMVNZUUTVNUVFVOZAYOUQURZVHYOUSVAZWOYOVHVIAUVI
      UVJUVHAVHULYOAVPZUVFUVHVHULUSVAAVQVGZAYMULVIULYOUSVAAGNUAUDUEVRVSVTWAYOWB
      WDVKVOZVCZWCWEAYQUUIUUEUVNUVEAUUEAUUDAYKUUCAUFNUFWFURAWGVGANUDWHWIZALALUB
      WJZWKWLZWMZWPZAUUEUVRWNZWQAUUNUUMYQUGUHYRAYQUUMUVNAUUIUUEUVEUVSUVTWRWCAUU
      MYNYQUGAUUMUUHUUDUNUHZYNAUUHUUDUFAUUHUVAVCZAUUDUVQWPAUFUVBVCAUUDUVQWNUVCW
      SAUWAUUHULYKLUKUHZUNUHZUNUHUUHUWCUGUHZULUNUHZYNAUUDUWDUUHUNAYKLAYKUVGVCZA
      YKUVOWNZUVPWTXAAUUHULUWCUWBAXBAYKLUWGUBXCZAVHULUVKUVLXDAYKLUWGUWHUVPXEXFA
      UWFUWEUWCUUHUGUHZYNAUWEAUUHUWCUWBUWIXGXHAUUHUWCUWBUWIWCAYNUWJAYKXIURZYKVH
      VIZWOZYLXIURZYLVHVIZWOZLXJURZXKYNUWJXLAUWMUWPUWQAUWKUWLUWGUWHWAAUWNUWOAYL
      UUTVCAGUUSAGNUAUDUEXMXNWAUVPYFYKYLLXOWDXPXQXQXRWEXRXQXPAUUJUUBUUEAUUIYQUV
      DUVMVNAUUAAYSYTABCDFGHIJKNOPQRAFUUEMULXSUHZUGUHZUQFUWSXLATVGALUWRNUDUVPAM
      UCXTYAYBUDUURAUUOUUPUUQVSZYCABCDEGHIJKNOPQRAEUUEMUGUHZUQEUXAXLASVGALMNUDU
      VPUCYAYBUDUURUWTYCYDVDUVRABCDEFGHIJKLMNOPQRSTUAUBUCUDUEYGYEYHAUUEUUGUUBUN
      AUUGUUEAEFLMNSTUBUCUDYIXPXAYJ $.
  $}

  ${
    $d C j $.  $d D j $.  $d E j $.  $d G j $.  $d N j $.  $d ph j $.
    knoppndvlem18.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem18.n $e |- ( ph -> N e. NN ) $.
    knoppndvlem18.d $e |- ( ph -> D e. RR+ ) $.
    knoppndvlem18.e $e |- ( ph -> E e. RR+ ) $.
    knoppndvlem18.g $e |- ( ph -> G e. RR+ ) $.
    knoppndvlem18.1 $e |- ( ph -> 1 < ( N x. ( abs ` C ) ) ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 14-Aug-2021.) $)
    knoppndvlem18 $p |- ( ph -> E. j e. NN0
      ( ( ( ( 2 x. N ) ^ -u j ) / 2 ) < D /\
      E <_ ( ( ( ( 2 x. N ) x. ( abs ` C ) ) ^ j ) x. G ) ) ) $=
      ( c2 co wbr cle c1 wcel adantr cmul cv cneg cexp cdiv clt cabs wa cn wrex
      cfv cn0 cif wceq 2re a1i nnred remulcld recnd cc0 wne 2pos nngt0d mulgt0d
      cr gt0ne0d cz nnz adantl expnegd adantrr crp 2rp jca rpmulcl syl rpexpcld
      elrpd rprecred knoppndvlem3 simpld abscld nnnn0 reexpcld rpred ifcld max1
      rpne0d redivcld simprr lelttrd cc mulexpd rpge0d w3a absge0d simprd ltled
      1red exple1 lemul2ad mulid1d breqtrd eqbrtrd ltletrd ltrec1d wb reexpclzd
      3jca nnnegz ltdivmuld mpbird max2 letrd ledivmul2d mpbid eqcomi 0le1 1lt2
      1t1e1 ltmul12ad mulassd eqcomd expnbnd reximddv wss nnssnn0 ssrexv ax-mp
      wi ) ANGUAOZDUBZUCZUDOZNUEOCUFPZEYKBUGUKZUAOZYLUDOZFUAOQPZUHZDUIUJZYTDULU
      JZARNCUAOZUEOZEFUEOZQPZUUEUUDUMZYRUFPZYTDUIAYLUISZUUHUHZUHZYOYSUUKYOYNUUC
      UFPZUUKYNRYKYLUDOZUEOZUUCUFAUUIYNUUNUNUUHAUUIUHZYKYLUUOYKAYKVESUUIANGNVES
      AUOUPZAGIUQZURZTZUSZAYKUTVAUUIAYKANGUUPUUQUTNUFPAVBUPAGIVCVDZVFTZUUIYLVGS
      AYLVHVIZVJVKUUKUUCUUMAUUCVLSZUUJANVLSZCVLSZUHUVDAUVEUVFUVEAVMUPJVNNCVOVPZ
      TZAUUIUUMVLSUUHUUOYKYLAYKVLSUUIAYKUURUVAVRTUVCVQZVKZUUKUUDYRUUMUUKUUCUVHV
      SZAUUIYRVESUUHUUOYQYLAYQVESZUUIAYKYPUURABABABVESZYPRUFPZABHVTZWAUSZWBZURZ
      TUUIYLULSZAYLWCVIZWDVKZUUKUUMUVJWEUUKUUDUUGYRUVKAUUGVESZUUJAUUFUUEUUDVEAE
      FAEKWEZAFLWEAFLWHWIZAUUCUVGVSZWFZTZUWAAUUDUUGQPZUUJAUUDVESZUUEVESZUHZUWHA
      UWIUWJUWEUWDVNZUUDUUEWGVPTAUUIUUHWJZWKAUUIYRUUMQPUUHUUOYRUUMYPYLUDOZUAOZU
      UMQUUOYKYPYLUUTAYPWLSUUIAYPUVQUSZTUVTWMUUOUWOUUMRUAOUUMQUUOUWNRUUMUUOYPYL
      AYPVESZUUIUVQTUVTWDUUOWSUUOUUMUVIWEZUUOUUMUVIWNUUOUWQUTYPQPZYPRQPZWOZUVSU
      HUWNRQPUUOUXAUVSAUXAUUIAUWQUWSUWTUVQABUVPWPAYPRUVQAWSZAUVMUVNUVOWQWRXITUV
      TVNYPYLWTVPXAUUOUUMUUOUUMUWRUSXBXCXDVKXEXFXDAUUIYOUULXGUUHUUOYNCNUUOYKYMU
      USUVBUUIYMVGSAYLXJVIXHACVESUUIACJWETUVEUUOVMUPXKVKXLUUKUUEYRQPYSUUKUUEUUG
      YRAUWJUUJUWDTUWGUWAAUUEUUGQPZUUJAUWKUXCUWLUUDUUEXMVPTUUKUUGYRUWGUWAUWMWRX
      NUUKEYRFAEVESUUJUWCTUWAAFVLSUUJLTXOXPVNAUWBUVLRYQUFPZWOUUHDUIUJAUWBUVLUXD
      UWFUVRARNGYPUAOZUAOZYQUFARRRUAOZUXFUFRUXGUNAUXGRXTXQUPARNRUXEUXBUUPUXBAGY
      PUUQUVQURUTRQPAXRUPZRNUFPAXSUPUXHMYAXDAYQUXFANGYPANUUPUSAGUUQUSUWPYBYCXCX
      IUUGYQDYDVPYEUIULYFUUAUUBYJYGYTDUIULYHYIVP $.
  $}

  ${
    $d ph m $.  $d J m $.  $d H m $.  $d N m $.
    knoppndvlem19.a $e |- A = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. m ) $.
    knoppndvlem19.b $e |- B = ( ( ( ( 2 x. N ) ^ -u J ) / 2 ) x. ( m + 1 ) ) $.
    knoppndvlem19.j $e |- ( ph -> J e. NN0 ) $.
    knoppndvlem19.h $e |- ( ph -> H e. RR ) $.
    knoppndvlem19.n $e |- ( ph -> N e. NN ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 17-Aug-2021.) $)
    knoppndvlem19 $p |- ( ph -> E. m e. ZZ ( A <_ H /\ H <_ B ) ) $=
      ( cle wbr c2 cmul co cr wcel a1i wa cneg cexp cdiv cfl cfv c1 caddc nnred
      cz 2re remulcld cc0 clt 2pos nngt0d mulgt0d gt0ne0d nn0zd reexpclzd recnd
      znegcld mulne0bad redivcld w3a 3jca expgt0 syl divgt0d flcld cv wb oveq2d
      wceq id eqtrd breq1d oveq1d breq2d anbi12d adantl zred 0red flle lemul2ad
      ltled divcan2d breqtrd eqcomd peano2re fllep1 eqbrtrd jca rspcedvd ) ABEM
      NZECMNZUAZOGPQZFUBZUCQZOUDQZEXAUDQZUEUFZPQZEMNZEXAXCUGUHQZPQZMNZUAZDXCUJA
      XBAEXAKAWTOAWRWSAOGORSAUKTZAGLUIZULZAWRAOGXJXKUMOUNNAUOTZAGLUPUQZURZAFAFJ
      USVBZUTZXJAOGAOXJVAAGXKVAXOVCVDZAXAAWTOXQXJAWRRSZWSUJSZUMWRUNNZVEUMWTUNNA
      XSXTYAXLXPXNVFWRWSVGVHXMVIZURZVDZVJZDVKZXCVNZWQXIVLAYGWOXEWPXHYGBXDEMYGBX
      AYFPQZXDBYHVNYGHTYGYFXCXAPYGVOZVMVPVQYGCXGEMYGCXAYFUGUHQZPQZXGCYKVNYGITYG
      YJXFXAPYGYFXCUGUHYIVRVMVPVSVTWAAXEXHAXDXAXBPQZEMAXCXBXAAXCYEWBZYDXRAUMXAA
      WCXRYBWFZAXBRSZXCXBMNYDXBWDVHWEAEXAAEKVAAXAXRVAYCWGZWHAEYLXGMAYLEYPWIAXBX
      FXAYDAXCRSXFRSYMXCWJVHXRYNAYOXBXFMNYDXBWKVHWEWLWMWN $.
  $}

  ${
    knoppndvlem20.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem20.n $e |- ( ph -> N e. NN ) $.
    knoppndvlem20.1 $e |- ( ph -> 1 < ( N x. ( abs ` C ) ) ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 18-Aug-2021.) $)
    knoppndvlem20 $p |- ( ph ->
      ( 1 - ( 1 / ( ( ( 2 x. N ) x. ( abs ` C ) ) - 1 ) ) ) e. RR+ ) $=
      ( c1 c2 cmul co cabs cmin clt wbr wcel cr a1i remulcld cc0 mpbid cfv cdiv
      crp wne knoppndvlem12 simprd 2re nnred knoppndvlem3 simpld recnd resubcld
      abscld 1red 0red 0lt1 lttrd elrpd recgt1d wa wb rprecred jca difrp syl )
      AGHCIJZBKUAZIJZGLJZUBJZGMNZGVJLJUCOZAGVIMNZVKAVHGUDVMABCDEFUEUFZAVIAVIAVH
      GAVFVGAHCHPOAUGQACEUHRABABABPOVGGMNABDUIUJUKUMRAUNZULZASGVIAUOVOVPSGMNAUP
      QVNUQURZUSTAVJPOZGPOZUTVKVLVAAVRVSAVIVQVBVOVCVJGVDVET $.
  $}

  ${
    $d C i n y $.  $d D a b m $.  $d E a b m $.  $d F i w $.  $d H a b m $.
    $d J a b m $.  $d J i m n w y $.  $d J i m w x $.  $d N a b m $.
    $d N i m n w y $.  $d N i m w x $.  $d T n y $.  $d W a b m $.
    $d ph i m n w y $.
    knoppndvlem21.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndvlem21.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndvlem21.w $e |- W =
                        ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    knoppndvlem21.g $e |- G =
                   ( 1 - ( 1 / ( ( ( 2 x. N ) x. ( abs ` C ) ) - 1 ) ) ) $.
    knoppndvlem21.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem21.d $e |- ( ph -> D e. RR+ ) $.
    knoppndvlem21.e $e |- ( ph -> E e. RR+ ) $.
    knoppndvlem21.h $e |- ( ph -> H e. RR ) $.
    knoppndvlem21.j $e |- ( ph -> J e. NN0 ) $.
    knoppndvlem21.n $e |- ( ph -> N e. NN ) $.
    knoppndvlem21.1 $e |- ( ph -> 1 < ( N x. ( abs ` C ) ) ) $.
    knoppndvlem21.2 $e |- ( ph -> ( ( ( 2 x. N ) ^ -u J ) / 2 ) < D ) $.
    knoppndvlem21.3 $e |- ( ph ->
            E <_ ( ( ( ( 2 x. N ) x. ( abs ` C ) ) ^ J ) x. G ) ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 18-Aug-2021.) $)
    knoppndvlem21 $p |- ( ph -> E. a e. RR E. b e. RR
      ( ( a <_ H /\ H <_ b ) /\ ( ( b - a ) < D /\ a =/= b ) /\
         E <_ ( ( abs ` ( ( W ` b ) - ( W ` a ) ) ) / ( b - a ) ) ) ) $=
      ( vm c2 cmul co cneg cexp cdiv cv cle wbr caddc cmin clt wne cfv cabs w3a
      c1 wa cr wrex cz eqid knoppndvlem19 wcel 2re a1i remulcld cc0 2pos nngt0d
      nnred mulgt0d gt0ne0d nn0zd znegcld reexpclzd rehalfcld adantr simpr zred
      adantrr peano2re syl jca remulcl simprr cn0 cn knoppndvlem16 eqbrtrd 3jca
      expgt0 divgt0d eqcomd mpbird ltned rpred knoppndvlem3 simpld recnd abscld
      breqtrd posdifd reexpcld wceq knoppndvlem20 simprd knoppcld subcld oveq2i
      eqeltrd redivcld cioo knoppndvlem17 letrd breq1 anbi1d oveq2 breq1d neeq1
      anbi12d fveq2 oveq2d fveq2d oveq12d breq2d 3anbi123d breq2 anbi2d rspc2ev
      oveq1 neeq2 oveq1d rexlimddv ) AUMOUNUOZNUPZUQUOZUMURUOZULUSZUNUOZMUTVAZM
      UUJUUKVIVBUOZUNUOZUTVAZVJZQUSZMUTVAZMRUSZUTVAZVJZUUTUURVCUOZFVDVAZUURUUTV
      EZVJZJUUTPVFZUURPVFZVCUOZVGVFZUVCURUOZUTVAZVHZRVKVLQVKVLZULVMAUULUUOULMNO
      UULVNZUUOVNZUGUFUHVOAUUKVMVPZUUQVJVJZUULVKVPZUUOVKVPZUUQUUOUULVCUOZFVDVAZ
      UULUUOVEZVJZJUUOPVFZUULPVFZVCUOZVGVFZUWAURUOZUTVAZVHZVHUVNUVRUVSUVTUWKAUV
      QUVSUUQAUVQVJZUUJUUKAUUJVKVPZUVQAUUIAUUGUUHAUMOUMVKVPAVQVRZAOUHWCZVSZAUUG
      AUMOUWNUWOVTUMVDVAAWAVRZAOUHWBWDZWEANANUGWFWGZWHZWIWJZUWLUUKAUVQWKZWLZVSZ
      WMAUVQUVTUUQUWLUWMUUNVKVPZVJUVTUWLUWMUXEUXAUWLUUKVKVPUXEUXCUUKWNWOWPUUJUU
      NWQWOZWMUVRUUQUWDUWJAUVQUUQWRAUVQUWDUUQUWLUWBUWCUWLUWAUUJFVDUWLUULUUONUUK
      OUVOUVPANWSVPUVQUGWJZUXBAOWTVPUVQUHWJZXAZAUUJFVDVAUVQUJWJXBUWLUULUUOUXDUW
      LUULUUOVDVAVTUWAVDVAUWLVTUUJUWAVDAVTUUJVDVAUVQAUUIUMUWTUWNAUUGVKVPZUUHVMV
      PZVTUUGVDVAZVHVTUUIVDVAAUXJUXKUXLUWPUWSUWRXCUUGUUHXDWOUWQXEWJUWLUWAUUJUXI
      XFXNZUWLUULUUOUXDUXFXOXGXHWPWMAUVQUWJUUQUWLJUUGEVGVFZUNUOZNUQUOZLUNUOZUWI
      AJVKVPUVQAJUEXIWJAUXQVKVPUVQAUXPLAUXONAUUGUXNUWPAEAEAEVKVPZUXNVIVDVAZAEUC
      XJZXKZXLXMVSUGXPALVIVIUXOVIVCUOURUOVCUOZVKLUYBXQAUBVRAUYBAEOUCUHUIXRXIYCV
      SWJUWLUWHUWAUWLUWGUWLUWEUWFUWLBCDUUOEGHIKOPSTUAUXFUXHAUXRUVQUYAWJZAUXSUVQ
      AUXRUXSUXTXSWJZXTUWLBCDUULEGHIKOPSTUAUXDUXHUYCUYDXTYAXMUWLUWAUUJVKUXIUXAY
      CUWLUWAUXMWEYDAJUXQUTVAUVQUKWJUWLUXQUXPUYBUNUOZUWIUTUXQUYEXQUWLLUYBUXPUNU
      BYBVRUWLBCDUULUUOEGHIKNUUKOPSTUAUVOUVPAEVIUPVIYEUOVPUVQUCWJUXGUXBUXHAVIOU
      XNUNUOVDVAUVQUIWJYFXBYGWMXCXCUVMUWKUUMUVAVJZUUTUULVCUOZFVDVAZUULUUTVEZVJZ
      JUVGUWFVCUOZVGVFZUYGURUOZUTVAZVHQRUULUUOVKVKUURUULXQZUVBUYFUVFUYJUVLUYNUY
      OUUSUUMUVAUURUULMUTYHYIUYOUVDUYHUVEUYIUYOUVCUYGFVDUURUULUUTVCYJZYKUURUULU
      UTYLYMUYOUVKUYMJUTUYOUVJUYLUVCUYGURUYOUVIUYKVGUYOUVHUWFUVGVCUURUULPYNYOYP
      UYPYQYRYSUUTUUOXQZUYFUUQUYJUWDUYNUWJUYQUVAUUPUUMUUTUUOMUTYTUUAUYQUYHUWBUY
      IUWCUYQUYGUWAFVDUUTUUOUULVCUUCZYKUUTUUOUULUUDYMUYQUYMUWIJUTUYQUYLUWHUYGUW
      AURUYQUYKUWGVGUYQUVGUWEUWFVCUUTUUOPYNUUEYPUYRYQYRYSUUBWOUUF $.
  $}

  ${
    $d C i j n w y $.  $d D a b j $.  $d D i j n w y $.  $d E a b j $.
    $d E i j n w y $.  $d F i w $.  $d H a b j $.  $d N a b j $.
    $d N i j n w y $.  $d N i j w x $.  $d T n y $.  $d W a b j $.
    $d ph i j n w y $.
    knoppndvlem22.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndvlem22.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndvlem22.w $e |- W =
                        ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    knoppndvlem22.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndvlem22.d $e |- ( ph -> D e. RR+ ) $.
    knoppndvlem22.e $e |- ( ph -> E e. RR+ ) $.
    knoppndvlem22.h $e |- ( ph -> H e. RR ) $.
    knoppndvlem22.n $e |- ( ph -> N e. NN ) $.
    knoppndvlem22.1 $e |- ( ph -> 1 < ( N x. ( abs ` C ) ) ) $.
    $( Lemma for ~ knoppndv .  (Contributed by Asger C. Ipsen, 19-Aug-2021.) $)
    knoppndvlem22 $p |- ( ph -> E. a e. RR E. b e. RR
      ( ( a <_ H /\ H <_ b ) /\ ( ( b - a ) < D /\ a =/= b ) /\
         E <_ ( ( abs ` ( ( W ` b ) - ( W ` a ) ) ) / ( b - a ) ) ) ) $=
      ( vj c2 cmul co cv cneg cexp cdiv clt wbr cabs cfv c1 cmin cle wa wne w3a
      cr wrex cn0 knoppndvlem20 knoppndvlem18 wcel eqid cioo adantr crp simprrl
      simprl cn simprrr knoppndvlem21 rexlimddv ) AUGMUHUIZUFUJZUKULUIUGUMUIFUN
      UOZJVTEUPUQZUHUIZWAULUIURURWDURUSUIUMUIUSUIZUHUIUTUOZVAZOUJZLUTUOLPUJZUTU
      OVAWIWHUSUIZFUNUOWHWIVBVAJWINUQWHNUQUSUIUPUQWJUMUIUTUOVCPVDVEOVDVEUFVFAEF
      UFJWEMTUDUAUBAEMTUDUEVGUEVHAWAVFVIZWGVAZVABCDEFGHIJKWELWAMNOPQRSWEVJAEURU
      KURVKUIVIWLTVLAFVMVIWLUAVLAJVMVIWLUBVLALVDVIWLUCVLAWKWGVOAMVPVIWLUDVLAURM
      WCUHUIUNUOWLUEVLAWKWBWFVNAWKWBWFVQVRVS $.
  $}

  ${
    $d C i n w y $.  $d F i w $.  $d N a b $.  $d N i n w y $.  $d N i w x $.
    $d T n y $.  $d W a b d e h $.  $d ph a b d e h $.  $d ph d e h i n w y $.
    knoppndv.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppndv.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppndv.w $e |- W =
                        ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    knoppndv.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppndv.n $e |- ( ph -> N e. NN ) $.
    knoppndv.1 $e |- ( ph -> 1 < ( N x. ( abs ` C ) ) ) $.
    $( The continuous nowhere differentiable function ` W ` ( Knopp, K. (1918).
       Math.  Z. 2, 1-26 ) is, in fact, nowhere differentiable.  (Contributed
       by Asger C. Ipsen, 19-Aug-2021.) $)
    knoppndv $p |- ( ph -> dom ( RR _D W ) = (/) ) $=
      ( cr co wcel vh va vb ve vd cv cdv cdm wn wal c0 wceq simpl wss ax-resscn
      wa cc a1i ccncf wf cabs cfv c1 clt wbr knoppndvlem3 simpld simprd knoppcn
      cncff syl ssid dvbss adantr simpr jca cle cmin wne cdiv w3a wrex crp cneg
      sseldd cioo ad2antrr simprr simprl simplr cn cmul knoppndvlem22 unbdqndv2
      ralrimivva pm2.01da alrimiv eq0 sylibr ) AUAUFZRKUGSUHZTZUIZUAUJXAUKULAXC
      UAAXBAXBUPZAWTRTZUPZXCXDAXEAXBUMXDXARWTAXARUNXBARRKRUQUNAUOURAKRUQUSSTRUQ
      KUTZABCDEFGHIJKLMNPAERTZEVAVBZVCVDVEZAEOVFZVGAXHXJXKVHVIRUQKVJVKZRRUNZARV
      LZURVMVNAXBVOWEVPXFUBUCWTKRUDUEXMXFXNURAXGXEXLVNXFUBUFZWTVQVEWTUCUFZVQVEU
      PXPXOVRSZUEUFZVDVEXOXPVSUPUDUFZXPKVBXOKVBVRSVAVBXQVTSVQVEWAUCRWBUBRWBUDUE
      WCWCXFXSWCTZXRWCTZUPZUPBCDEXRFGHXSIWTJKUBUCLMNAEVCWDVCWFSTXEYBOWGXFXTYAWH
      XFXTYAWIAXEYBWJAJWKTXEYBPWGAVCJXIWLSVDVEXEYBQWGWMWOWNVKWPWQUAXAWRWS $.
  $}

  ${
    $d C n y $.  $d F i w z $.  $d N n y $.  $d N x $.  $d T n y $.
    $d ph i n w y z $.  $d i w x z $.
    knoppf.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppf.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppf.w $e |- W =
                        ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    knoppf.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    knoppf.n $e |- ( ph -> N e. NN ) $.
    $( Knopp's function is a function.  (Contributed by Asger C. Ipsen,
       25-Aug-2021.) $)
    knoppf $p |- ( ph -> W : RR --> RR ) $=
      ( cr cfv wcel adantr vz cn0 cv csu wa cc0 nn0uz 0zd eqidd cn cabs clt wbr
      knoppndvlem3 simpld simpr knoppcnlem3 caddc cseq cli cdm cmpt wceq fveq1d
      c1 fveq2 sumeq2sdv cbvmptv eqtri cneg cioo knoppndvlem4 seqex fvex breldm
      co syl isumrecl fmptd ) ADQUBGUCZDUCZIRZRZGUDZQKAWAQSZUEZWCGWBUFUBUGWFUHW
      FVTUBSZUEZWCUIWHBCWAEFHIVTJLMWFJUJSZWGAWIWEPTZTWFEQSZWGAWKWEAWKEUKRVEULUM
      AEOUNUOTTWFWEWGAWEUPZTWFWGUPUQWFURWBUFUSZWAKRZUTUMWMUTVASWFBCUAWAEFGHIJKL
      MKDQWDVBUAQUBVTUAUCZIRZRZGUDZVBNDUAQWDWRWAWOVCZUBWCWQGWSVTWBWPWAWOIVFVDVG
      VHVIWLAEVEVJVEVKVPSWEOTWJVLWMWNUTURWBUFVMWAKVNVOVQVRNVS $.
  $}

  ${
    $d C n y $.  $d F i w $.  $d N n y $.  $d N x $.  $d T n y $.
    $d ph i n w y $.  $d i w x $.
    knoppcn2.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    knoppcn2.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( C ^ n ) x. ( T ` ( ( ( 2 x. N ) ^ n ) x. y ) ) ) ) ) $.
    knoppcn2.w $e |- W = ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    knoppcn2.n $e |- ( ph -> N e. NN ) $.
    knoppcn2.c $e |- ( ph -> C e. ( -u 1 (,) 1 ) ) $.
    $( Variant of ~ knoppcn with different codomain.  (Contributed by Asger C.
       Ipsen, 25-Aug-2021.) $)
    knoppcn2 $p |- ( ph -> W e. ( RR -cn-> RR ) ) $=
      ( cr ccncf wcel cc co wf knoppf wss wa wb ax-resscn a1i cabs knoppndvlem3
      cfv c1 clt wbr simpld simprd knoppcn jca cncffvrn syl mpbird ) AKQQRUASZQ
      QKUBZABCDEFGHIJKLMNPOUCAQTUDZKQTRUASZUEVBVCUFAVDVEVDAUGUHABCDEFGHIJKLMNOA
      EQSZEUIUKULUMUNZAEPUJZUOAVFVGVHUPUQURQTQKUSUTVA $.
  $}

  ${
    $d F i w $.  $d T n y $.  $d i n w y $.  $d i w x $.
    cnndvlem1.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    cnndvlem1.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( ( 1 / 2 ) ^ n ) x. ( T ` ( ( ( 2 x. 3 ) ^ n ) x. y ) ) ) ) ) $.
    cnndvlem1.w $e |- W = ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    $( Lemma for ~ cnndv .  (Contributed by Asger C. Ipsen, 25-Aug-2021.) $)
    cnndvlem1 $p |- ( W e. ( RR -cn-> RR ) /\ dom ( RR _D W ) = (/) ) $=
      ( co wcel wtru c1 c2 c3 clt wbr cc0 cr ccncf cdv cdm c0 wceq cdiv 3nn a1i
      cn cneg cxr w3a wa neg1rr rexri 1re halfre 3pm3.2i neg1lt0 halfgt0 pm3.2i
      cioo 0re lttri ax-mp halflt1 elioo3g mpbir knoppcn2 trud cabs cfv mulid2i
      cmul 2cn 2lt3 eqbrtri wb 2pos 2re ltmuldivi mpbi cle ltleii absidi oveq2i
      nnrei nncni 2ne0 divreci eqcomi eqtri breqtrri knoppndv ) HUAUAUBLMZUAHUC
      LUDUEUFZWPNABCOPUGLZDEFGQHIJKQUJMNUHUIZWROUKZOVCLMZNXAWTULMZOULMZWRULMZUM
      ZWTWRRSZWRORSZUNZUNXEXHXBXCXDWTUOUPOUQUPWRURUPUSXFXGWTTRSZTWRRSZUNXFXIXJU
      TVAVBWTTWRUOVDURVEVFVGVBVBWTOWRVHVIUIZVJVKWQNABCWRDEFGQHIJKXKWSOQWRVLVMZV
      OLZRSNOQPUGLZXMROPVOLZQRSZOXNRSZXOPQRPVPVNVQVRTPRSXPXQVSVTOQPUQQUHWHWAWBV
      FWCXMQWRVOLZXNXLWRQVOTWRWDSXLWRUFTWRVDURVAWEWRURWFVFWGXNXRQPQUHWIVPWJWKWL
      WMWNUIWOVKVB $.
  $}

  ${
    $d F i w $.  $d T n y $.  $d W f $.  $d i n w y $.  $d i w x $.
    cnndvlem2.t $e |- T = ( x e. RR |->
                            ( abs ` ( ( |_ ` ( x + ( 1 / 2 ) ) ) - x ) ) ) $.
    cnndvlem2.f $e |- F = ( y e. RR |-> ( n e. NN0 |->
            ( ( ( 1 / 2 ) ^ n ) x. ( T ` ( ( ( 2 x. 3 ) ^ n ) x. y ) ) ) ) ) $.
    cnndvlem2.w $e |- W = ( w e. RR |-> sum_ i e. NN0 ( ( F ` w ) ` i ) ) $.
    $( Lemma for ~ cnndv .  (Contributed by Asger C. Ipsen, 26-Aug-2021.) $)
    cnndvlem2 $p |- E. f ( f e. ( RR -cn-> RR ) /\ dom ( RR _D f ) = (/) ) $=
      ( cr co wcel cdv cdm c0 wceq cv ccncf wex cnndvlem1 cn0 cfv csu cmpt reex
      wa cvv mptex eqeltri eleq1 oveq2 dmeqd eqeq1d anbi12d spcev ax-mp ) IMMUA
      NZOZMIPNZQZRSZUIZETZUTOZMVFPNZQZRSZUIZEUBABCDFGHIJKLUCVKVEEIICMUDFTCTHUEU
      EFUFZUGUJLCMVLUHUKULVFISZVGVAVJVDVFIUTUMVMVIVCRVMVHVBVFIMPUNUOUPUQURUS $.
  $}

  ${
    $d f i n w x y $.
    $( There exists a continuous nowhere differentiable function.  The result
       follows directly from ~ knoppcn and ~ knoppndv .  (Contributed by Asger
       C. Ipsen, 26-Aug-2021.) $)
    cnndv $p |- E. f ( f e. ( RR -cn-> RR ) /\ dom ( RR _D f ) = (/) ) $=
      ( vx vy vw vi vn cr cv c1 c2 cdiv caddc cfl cfv cmpt cn0 cexp cmul eqid
      co cmin cabs c3 csu cnndvlem2 ) BCDBGBHZIJKTZLTMNUFUATUBNOZAEFCGFPUGFHZQT
      JUCRTUIQTCHRTUHNRTOOZDGPEHDHUJNNEUDOZUHSUJSUKSUE $.
  $}

$( (End of Asger C. Ipsen's mathbox.) $)
$( End $[ set-mbox-ai.mm $] $)


$( Begin $[ set-mbox-bj.mm $] $)
$( Skip $[ set-main.mm $] $)
$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for BJ
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  In this mathbox, we try to respect the ordering of the sections of the main
  part.  There are strengthenings of theorems of the main part, as well as work
  on reducing axiom dependencies.

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Propositional calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Miscellaneous utility theorems of propositional calculus.

$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Derived rules of inference
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, we prove a few rules of inference derived from modus ponens
  ~ ax-mp , and which do not depend on any other axioms.

$)

  ${
    bj-mp2c.1 $e |- ph $.
    bj-mp2c.2 $e |- ( ph -> ps ) $.
    bj-mp2c.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A double modus ponens inference.  Inference associated with ~ mpd .
       (Contributed by BJ, 24-Sep-2019.) $)
    bj-mp2c $p |- ch $=
      ( ax-mp mp2 ) ABCDABDEGFH $.
  $}

  ${
    bj-mp2d.1 $e |- ph $.
    bj-mp2d.2 $e |- ( ph -> ps ) $.
    bj-mp2d.3 $e |- ( ps -> ( ph -> ch ) ) $.
    $( A double modus ponens inference.  Inference associated with ~ mpcom .
       (Contributed by BJ, 24-Sep-2019.) $)
    bj-mp2d $p |- ch $=
      ( ax-mp mp2 ) BACABDEGDFH $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  A syntactic theorem
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, we prove a syntactic theorem ( ~ bj-0 ) asserting that some
  formula is well-formed.  Then, we use this syntactic theorem to shorten the
  proof of a "usual" theorem ( ~ bj-1 ) and explain in the comment of that
  theorem why this phenomenon is unusual.

$)

  $( A syntactic theorem.  See the section comment and the comment of ~ bj-1 .
     The full proof (that is, with the syntactic, non-essential steps) does not
     appear on this webpage.  It has five steps and reads $= wph wps wi wch wi
     $.  The only other syntactic theorems in the main part of set.mm are ~ wel
     and ~ weq .  (Contributed by BJ, 24-Sep-2019.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  bj-0 $p wff ( ( ph -> ps ) -> ch ) $=
    ( wi ) ABDCD $.

  $( In this proof, the use of the syntactic theorem ~ bj-0 allows to reduce
     the total length by one (non-essential) step.  See also the section
     comment and the comment of ~ bj-0 .  Since ~ bj-0 is used in a
     non-essential step, this use does not appear on this webpage (but the
     present theorem appears on the webpage for ~ bj-0 as a theorem referencing
     it).  The full proof reads $= wph wps wch bj-0 id $.  (while, without
     using ~ bj-0 , it would read $= wph wps wi wch wi id $.).

     Now we explain why syntactic theorems are not useful in set.mm.  Suppose
     that the syntactic theorem thm-0 proves that PHI is a well-formed formula,
     and that thm-0 is used to shorten the proof of thm-1.  Assume that PHI
     does have proper non-atomic subformulas (which is not the case of the
     formula proved by ~ weq or ~ wel ).  Then, the proof of thm-1 does not
     construct all the proper non-atomic subformulas of PHI (if it did, then
     using thm-0 would not shorten it).  Therefore, thm-1 is a special instance
     of a more general theorem with essentially the same proof.  In the present
     case, ~ bj-1 is a special instance of ~ id .  (Contributed by BJ,
     24-Sep-2019.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  bj-1 $p |- ( ( ( ph -> ps ) -> ch ) -> ( ( ph -> ps ) -> ch ) ) $=
    ( bj-0 id ) ABCDE $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Minimal implicational calculus
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Weakening of ~ ax-1 .  This shortens the proofs of ~ dfwe2 (937>925),
     ~ ordunisuc2 (789>777), ~ r111 (558>545), ~ smo11 (1176>1164).
     (Contributed by BJ, 11-Aug-2020.) $)
  bj-a1k $p |- ( ph -> ( ps -> ( ch -> ps ) ) ) $=
    ( wi ax-1 a1i ) BCBDDABCEF $.

  ${
    bj-jarri.1 $e |- ( ( ph -> ps ) -> ch ) $.
    $( Inference associated with ~ jarr .  Its associated inference is
       ~ bj-jarrii .  (Contributed by BJ, 29-Mar-2020.) $)
    bj-jarri $p |- ( ps -> ch ) $=
      ( wi jarr ax-mp ) ABECEBCEDABCFG $.
  $}

  ${
    bj-jarrii.1 $e |- ( ( ph -> ps ) -> ch ) $.
    bj-jarrii.2 $e |- ps $.
    $( Inference associated with ~ bj-jarri .  (Contributed by BJ,
       29-Mar-2020.) $)
    bj-jarrii $p |- ch $=
      ( wi a1i ax-mp ) ABFCBAEGDH $.
  $}

  $( More direct proof of ~ imim2 .  Note that ~ imim2i and ~ imim2d can be
     proved as usual from this closed form (i.e., using ~ ax-mp and ~ syl
     respectively).  (Contributed by BJ, 19-Jul-2019.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  bj-imim2ALT $p |- ( ( ph -> ps ) -> ( ( ch -> ph ) -> ( ch -> ps ) ) ) $=
    ( wi ax-1 a2d ) ABDZCABGCEF $.

  $( The propositional function ` ( ch -> ( . -> th ) ) ` is decreasing.
     (Contributed by BJ, 19-Jul-2019.) $)
  bj-imim21 $p |- ( ( ph -> ps ) ->
                      ( ( ch -> ( ps -> th ) ) -> ( ch -> ( ph -> th ) ) ) ) $=
    ( wi imim1 imim2d ) ABEBDEADECABDFG $.

  ${
    bj-imim21i.1 $e |- ( ph -> ps ) $.
    $( Inference associated with ~ bj-imim21 .  Its associated inference is
       ~ syl5 .  (Contributed by BJ, 19-Jul-2019.) $)
    bj-imim21i $p |- ( ( ch -> ( ps -> th ) ) -> ( ch -> ( ph -> th ) ) ) $=
      ( wi bj-imim21 ax-mp ) ABFCBDFFCADFFFEABCDGH $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Positive calculus
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Proof of ~ orim2 from the axiomatic definition of disjunction ( ~ olc ,
     ~ orc , ~ jao ) and minimal implicational calculus.  (Contributed by BJ,
     4-Apr-2021.)  (Proof modification is discouraged.) $)
  bj-orim2 $p |- ( ( ph -> ps ) -> ( ( ch \/ ph ) -> ( ch \/ ps ) ) ) $=
    ( wo wi orc olc imim2i jao mpsyl ) CCBDZEABEAKECADKECBFBKABCGHCKAIJ $.

  $( A non-intuitionistic positive statement, sometimes called a paradox of
     material implication.  Sometimes called Curry's axiom.  (Contributed by
     BJ, 4-Apr-2021.) $)
  bj-curry $p |- ( ph \/ ( ph -> ps ) ) $=
    ( wi pm2.21 orri ) AABCABDE $.

  $( Proof of ~ peirce from minimal implicational calculus, the axiomatic
     definition of disjunction ( ~ olc , ~ orc , ~ jao ), and Curry's axiom
     ~ bj-curry .  (Contributed by BJ, 4-Apr-2021.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  bj-peirce $p |- ( ( ( ph -> ps ) -> ph ) -> ph ) $=
    ( wi wo bj-curry bj-orim2 mpi pm1.2 syl ) ABCZACZAADZAKAJDLABEJAAFGAHI $.

  $( Curry's axiom (a non-intuitionistic statement sometimes called a paradox
     of material implication) implies Peirce's axiom ~ peirce over minimal
     implicational calculus and the axiomatic definition of disjunction
     ( ~ olc , ~ orc , ~ jao ).  A shorter proof from ~ bj-orim2 , ~ pm1.2 ,
     ~ syl6com is possible if we accept to use ~ pm1.2 , itself a direct
     consequence of ~ jao .  (Contributed by BJ, 15-Jun-2021.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  bj-currypeirce $p |-
              ( ( ph \/ ( ph -> ps ) ) -> ( ( ( ph -> ps ) -> ph ) -> ph ) ) $=
    ( wi wo olc imim2i jao mpsyl id mp2 syl6com ) ABCZACZALDZAADZAAOCMLOCNOCAAE
    ZAOLPFAOLGHAACZQOACAIZRAAAGJK $.

  $( Peirce's axiom ~ peirce implies Curry's axiom over minimal implicational
     calculus and the axiomatic definition of disjunction ( ~ olc , ~ orc ,
     ~ jao ).  See comment of ~ bj-currypeirce .  (Contributed by BJ,
     15-Jun-2021.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  bj-peircecurry $p |- ( ph \/ ( ph -> ps ) ) $=
    ( wi wo orc olc peirce peirceroll ax-mp mpsyl ) AAABCZDZCZLAKEKLCZMLCZKAFLA
    CZLCLCNPACZOLAGKACACNQCABGABLHILAAHJII $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Implication and negation
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Alternate proof of ~ pm4.81 .  (Contributed by BJ, 30-Mar-2020.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  pm4.81ALT $p |- ( ( -. ph -> ph ) <-> ph ) $=
    ( wn wi pm2.18 ax-1 impbii ) ABZACAADAGEF $.

  ${
    bj-con4iALT.1 $e |- ( -. ph -> -. ps ) $.
    $( Alternate proof of ~ con4i .  Probably the original proof.  (Contributed
       by BJ, 29-Mar-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    bj-con4iALT $p |- ( ps -> ph ) $=
      ( wn wi con4 ax-mp ) ADBDEBAECABFG $.
  $}

  $( A commuted form of the contrapositive, true in minimal calculus.
     (Contributed by BJ, 19-Mar-2020.) $)
  bj-con2com $p |- ( ph -> ( ( ps -> -. ph ) -> -. ps ) ) $=
    ( wn wi con2 com12 ) BACDABCBAEF $.

  ${
    bj-con2comi.1 $e |- ph $.
    $( Inference associated with ~ bj-con2com .  Its associated inference is
       ~ mt2 .  TODO: when in the main part, add to ~ mt2 that it is the
       inference associated with ~ bj-con2comi .  (Contributed by BJ,
       19-Mar-2020.) $)
    bj-con2comi $p |- ( ( ps -> -. ph ) -> -. ps ) $=
      ( wn wi bj-con2com ax-mp ) ABADEBDECABFG $.
  $}

  ${
    bj-pm2.01i.1 $e |- ( ph -> -. ph ) $.
    $( Inference associated with ~ pm2.01 .  (Contributed by BJ,
       30-Mar-2020.) $)
    bj-pm2.01i $p |- -. ph $=
      ( wn wi pm2.01 ax-mp ) AACZDGBAEF $.
  $}

  $( If a formula is true, then it does not imply its negation.  (Contributed
     by BJ, 19-Mar-2020.)  A shorter proof is possible using ~ id and ~ jc ,
     however, the present proof uses theorems that are more basic than ~ jc .
     (Proof modification is discouraged.) $)
  bj-nimn $p |- ( ph -> -. ( ph -> -. ph ) ) $=
    ( wn wi pm2.01 con2i ) AABCAADE $.

  ${
    bj-nimni.1 $e |- ph $.
    $( Inference associated with ~ bj-nimn .  (Contributed by BJ,
       19-Mar-2020.) $)
    bj-nimni $p |- -. ( ph -> -. ph ) $=
      ( wn wi bj-nimn ax-mp ) AAACDCBAEF $.
  $}

  ${
    bj-peircei.1 $e |- ( ( ph -> ps ) -> ph ) $.
    $( Inference associated with ~ peirce .  (Contributed by BJ,
       30-Mar-2020.) $)
    bj-peircei $p |- ph $=
      ( wi peirce ax-mp ) ABDADACABEF $.
  $}

  ${
    bj-looinvi.1 $e |- ( ( ph -> ps ) -> ps ) $.
    $( Inference associated with ~ looinv .  Its associated inference is
       ~ bj-looinvii .  (Contributed by BJ, 30-Mar-2020.) $)
    bj-looinvi $p |- ( ( ps -> ph ) -> ph ) $=
      ( wi looinv ax-mp ) ABDBDBADADCABEF $.
  $}

  ${
    bj-looinvii.1 $e |- ( ( ph -> ps ) -> ps ) $.
    bj-looinvii.2 $e |- ( ps -> ph ) $.
    $( Inference associated with ~ bj-looinvi .  (Contributed by BJ,
       30-Mar-2020.) $)
    bj-looinvii $p |- ph $=
      ( wi bj-looinvi ax-mp ) BAEADABCFG $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Disjunction
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  A few lemmas about disjunction.  The fundamental theorems in this family are
  the dual statements ~ pm4.71 and ~ pm4.72 .
  See also ~ biort and ~ biorf .

$)

  ${
    bj-jaoi1.1 $e |- ( ph -> ps ) $.
    $( Shortens ~ orfa2 (58>53), ~ pm1.2 (20>18), ~ pm1.2 (20>18), ~ pm2.4
       (31>25), ~ pm2.41 (31>25), ~ pm2.42 (38>32), ~ pm3.2ni (43>39), ~ pm4.44
       (55>51).  (Contributed by BJ, 30-Sep-2019.) $)
    bj-jaoi1 $p |- ( ( ph \/ ps ) -> ps ) $=
      ( id jaoi ) ABBCBDE $.

    $( Shortens ~ consensus (110>106), ~ elnn0z (336>329), ~ pm1.2 (20>19),
       ~ pm3.2ni (43>39), ~ pm4.44 (55>51).  (Contributed by BJ,
       30-Sep-2019.) $)
    bj-jaoi2 $p |- ( ( ps \/ ph ) -> ps ) $=
      ( id jaoi ) BBABDCE $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Logical equivalence
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  A few other characterizations of the bicondional.
  The inter-definability of logical connectives offers many ways to express a
  given statement. Some useful theorems in this regard are ~ df-or , ~ df-an ,
  ~ pm4.64 , ~ imor , ~ pm4.62 through ~ pm4.67 , and, for the De Morgan laws,
  ~ ianor through ~ pm4.57 .

$)

  $( Alternate definition of the biconditional.  (Contributed by BJ,
     4-Oct-2019.) $)
  bj-dfbi4 $p |- ( ( ph <-> ps ) <-> ( ( ph /\ ps ) \/ -. ( ph \/ ps ) ) ) $=
    ( wb wa wn wo dfbi3 pm4.56 orbi2i bitri ) ABCABDZAEBEDZFKABFEZFABGLMKABHIJ
    $.

  $( Alternate definition of the biconditional.  (Contributed by BJ,
     4-Oct-2019.) $)
  bj-dfbi5 $p |- ( ( ph <-> ps ) <-> ( ( ph \/ ps ) -> ( ph /\ ps ) ) ) $=
    ( wa wo wn wb wi orcom bj-dfbi4 imor 3bitr4i ) ABCZABDZEZDNLDABFMLGLNHABIML
    JK $.

  $( Alternate definition of the biconditional.  (Contributed by BJ,
     4-Oct-2019.) $)
  bj-dfbi6 $p |- ( ( ph <-> ps ) <-> ( ( ph \/ ps ) <-> ( ph /\ ps ) ) ) $=
    ( wb wo wa wi bj-dfbi5 id animorr impbid1 biimp impbii bitri ) ABCABDZABEZF
    ZNOCZABGPQPNOPHABAIJNOKLM $.

  $( The general statement that ~ bijust proves (with a shorter proof).
     (Contributed by NM, 11-May-1999.)  (Proof shortened by Josh Purinton,
     29-Dec-2000.)  (Revised by BJ, 19-Mar-2020.) $)
  bj-bijust0 $p |- -. ( ( ph -> ph ) -> -. ( ph -> ph ) ) $=
    ( wi id bj-nimni ) AABACD $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The conditional operator for propositions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Version of ~ consensus expressed using the conditional operator.  (Remark:
     it may be better to express it as ~ consensus , using only binary
     connectives, and hinting at the fact that it is a Boolean algebra
     identity, like the absorption identities.)  (Contributed by BJ,
     30-Sep-2019.) $)
  bj-consensus $p |- ( ( if- ( ph , ps , ch ) \/ ( ps /\ ch ) ) <->
                                                      if- ( ph , ps , ch ) ) $=
    ( wif wa wo anifp bj-jaoi2 orc impbii ) ABCDZBCEZFKLKABCGHKLIJ $.

  $( Alternate proof of ~ bj-consensus .  (Contributed by BJ, 30-Sep-2019.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  bj-consensusALT $p |- ( ( if- ( ph , ps , ch ) \/ ( ps /\ ch ) ) <->
                                                      if- ( ph , ps , ch ) ) $=
    ( wif wa wo orcom wi wb anifp pm4.72 mpbi bitr4i ) ABCDZBCEZFONFZNNOGONHNPI
    ABCJONKLM $.

  ${
    $d x ph $.  $d x A $.  $d x B $.
    $( This should be the alternate definition of "ifc" if "if-" enters the
       main part.  (Contributed by BJ, 20-Sep-2019.) $)
    bj-dfifc2 $p |-
     if ( ph , A , B ) = { x | ( ( ph /\ x e. A ) \/ ( -. ph /\ x e. B ) ) } $=
      ( cif cv wcel wa wn wo cab df-if ancom orbi12i bicomi abbii eqtri ) ACDEB
      FZCGZAHZRDGZAIZHZJZBKASHZUBUAHZJZBKABCDLUDUGBUGUDUETUFUCASMUBUAMNOPQ $.
  $}

  ${
    $d x ph $.  $d x A $.  $d x B $.
    $( The definition of "ifc" if "if-" enters the main part.  This is in line
       with the definition of a class as the extension of a predicate in
       ~ df-clab .  (Contributed by BJ, 20-Sep-2019.) $)
    bj-df-ifc $p |- if ( ph , A , B ) = { x | if- ( ph , x e. A , x e. B ) } $=
      ( cif cv wcel wa wn wo cab wif bj-dfifc2 df-ifp bicomi abbii eqtri ) ACDE
      ABFZCGZHAIRDGZHJZBKASTLZBKABCDMUAUBBUBUAASTNOPQ $.
  $}

  ${
    $d x ph $.  $d x A $.  $d x B $.
    $( A theorem linking ` if- ` and ` if ` .  (Contributed by BJ,
       24-Sep-2019.) $)
    bj-ififc $p |-
                 ( x e. if ( ph , A , B ) <-> if- ( ph , x e. A , x e. B ) ) $=
      ( cv wcel wif cif bj-df-ifc abeq2i ) ABEZCFKDFGBACDHABCDIJ $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Propositional calculus: miscellaneous
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Miscellaneous theorems of propositional calculus.

$)


  $( Uncurried (imported) form of ~ imbi12 .  (Contributed by BJ,
     6-May-2019.) $)
  bj-imbi12 $p |- ( ( ( ph <-> ps ) /\ ( ch <-> th ) ) ->
                                         ( ( ph -> ch ) <-> ( ps -> th ) ) ) $=
    ( wb wi imbi12 imp ) ABECDEACFBDFEABCDGH $.

  ${
    bj-biorfi.1 $e |- -. ph $.
    $( This should be labeled "biorfi" while the current ~ biorfi should be
       labeled "biorfri".  The dual of ~ biorf is not ~ biantr but ~ iba (and
       ~ ibar ).  So there should also be a "biorfr".  (Note that these four
       statements can actually be strengthened to biconditionals.)
       (Contributed by BJ, 26-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-biorfi $p |- ( ps <-> ( ph \/ ps ) ) $=
      ( wn wo wb biorf ax-mp ) ADBABEFCABGH $.
  $}

  $( Dual of ~ truan (which has biconditional reversed).  (Contributed by BJ,
     26-Oct-2019.)  (Proof modification is discouraged.) $)
  bj-falor $p |- ( ph <-> ( F. \/ ph ) ) $=
    ( wfal fal bj-biorfi ) BACD $.

  $( Dual of ~ truan .  (Contributed by BJ, 26-Oct-2019.)
     (Proof modification is discouraged.) $)
  bj-falor2 $p |- ( ( F. \/ ph ) <-> ph ) $=
    ( wfal wo falim bj-jaoi1 olc impbii ) BACABAADEABFG $.

  $( A property of the biconditional.  (Contributed by BJ, 26-Oct-2019.)
     (Proof modification is discouraged.) $)
  bj-bibibi $p |- ( ph <-> ( ps <-> ( ph <-> ps ) ) ) $=
    ( wb pm5.501 bianir ex wn bibif con2bid biimprd bija impbii ) ABABCZCABDBMA
    BMABAEFBGZAMGNMAABHIJKL $.

  ${
    bj-imn3ani.1 $e |- -. ( ph /\ ps /\ ch ) $.
    $( Duplication of ~ bnj1224 .  Three-fold version of ~ imnani .
       (Contributed by Jonathan Ben-Naim, 3-Jun-2011.)  (Revised by BJ,
       22-Oct-2019.)  (Proof modification is discouraged.) $)
    bj-imn3ani $p |- ( ( ph /\ ps ) -> -. ch ) $=
      ( wa w3a df-3an mtbi imnani ) ABEZCABCFJCEDABCGHI $.
  $}

  $( Two ways of expressing a certain ternary connective.  Note the respective
     positions of the three formulas on each side of the biconditional.
     (Contributed by BJ, 6-Oct-2018.) $)
  bj-andnotim $p |- ( ( ( ph /\ -. ps ) -> ch ) <-> ( ( ph -> ps ) \/ ch ) ) $=
    ( wn wa wi wo imor iman biimpri orim1i sylbi pm2.24 imim2i impd ax-1 impbii
    jaoi ) ABDZEZCFZABFZCGZUATDZCGUCTCHUDUBCUBUDABIJKLUBUACUBASCBSCFABCMNOCTPRQ
    $.

  ${
    bj-bi3ant.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( This used to be in the main part.  (Contributed by Wolf Lammen,
       14-May-2013.)  (Revised by BJ, 14-Jun-2019.) $)
    bj-bi3ant $p |- ( ( ( th -> ta ) -> ph )
          -> ( ( ( ta -> th ) -> ps ) -> ( ( th <-> ta ) -> ch ) ) ) $=
      ( wi wb biimp imim1i biimpr imim3i syl2im ) DEGZAGDEHZAGEDGZBGOBGOCGONADE
      IJOPBDEKJABCOFLM $.
  $}

  $( This used to be in the main part.  (Contributed by Wolf Lammen,
     14-May-2013.)  (Revised by BJ, 14-Jun-2019.) $)
  bj-bisym $p |- ( ( ( ph -> ps ) -> ( ch -> th ) ) -> ( ( ( ps -> ph )
        -> ( th -> ch ) ) -> ( ( ph <-> ps ) -> ( ch <-> th ) ) ) ) $=
    ( wi wb impbi bj-bi3ant ) CDEDCECDFABCDGH $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Modal logic
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, we prove some theorems related to modal logic.  For modal
  logic, we refer to ~ https://en.wikipedia.org/wiki/Kripke_semantics ,
  ~ https://en.wikipedia.org/wiki/Modal_logic and
  ~ https://plato.stanford.edu/entries/logic-modal/ .

  Monadic first-order logic (i.e., with quantification over only one variable)
  is bi-interpretable with modal logic, by mapping ` A. x ` to "necessity"
  (generally denoted by a box) and ` E. x ` to "possibility" (generally denoted
  by a diamond).  Therefore, we use these quantifiers so as not to introduce
  new symbols.  (To be strictly within modal logic, we should add dv conditions
  between ` x ` and any other metavariables appearing in the statements.)

  For instance, ~ ax-gen corresponds to the necessitation rule of modal logic,
  and ~ ax-4 corresponds to the distributivity axiom (K) of modal logic, also
  called the Kripke scheme.  Modal logics satisfying these rule and axiom are
  called "normal modal logics", of which the most important modal logics are.

  The minimal normal modal logic is also denoted by (K).
  Here are a few normal modal logics with their axiomatizations (on top of
  (K)):
  (K) axiomatized by no supplementary axioms;
  (T) axiomatized by the axiom T;
  (K4) axiomatized by the axiom 4;
  (S4) axiomatized by the axioms T,4;
  (S5) axiomatized by the axioms T,5 or D,B,4;
  (GL) axiomatized by the axiom GL.

  The last one, called G&ouml;del&ndash;L&ouml;b logic or provability logic, is
  important because it describes exactly the properties of provability in Peano
  arithmetic, as proved by Robert Solovay.  See for instance
  ~ https://plato.stanford.edu/entries/logic-provability/ .
  A basic result in this logic is ~ bj-gl4 .

$)

  $( This implication, proved using only ~ ax-gen and ~ ax-4 on top of
     propositional calculus (hence holding, up to the standard interpretation,
     in any normal modal logic), shows that the axiom scheme ` |- E. x T. `
     implies the axiom scheme ` |- ( A. x ph -> E. x ph ) ` .  These correspond
     to the modal axiom (D), and in predicate calculus, they assert that the
     universe of discourse is nonempty.  For the converse, see ~ bj-axd2d .
     (Contributed by BJ, 16-May-2019.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  bj-axdd2 $p |- ( E. x ph -> ( A. x ps -> E. x ps ) ) $=
    ( wal wex wi ala1 exim syl com12 ) BCDZACEZBCEZKABFCDLMFBACGABCHIJ $.

  $( This implication, proved using only ~ ax-gen on top of propositional
     calculus (hence holding, up to the standard interpretation, in any modal
     logic), shows that the axiom scheme ` |- ( A. x ph -> E. x ph ) ` implies
     the axiom scheme ` |- E. x T. ` .  These correspond to the modal axiom
     (D), and in predicate calculus, they assert that the universe of discourse
     is nonempty.  For the converse, see ~ bj-axdd2 .  (Contributed by BJ,
     16-May-2019.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  bj-axd2d $p |- ( ( A. x T. -> E. x T. ) -> E. x T. ) $=
    ( wtru wal wex wi pm2.27 tru mpg ) BBACZBADZEJEAIJFGH $.

  $( This implication, proved from propositional calculus only (hence holding,
     up to the standard interpretation, in any modal logic), shows that the
     axiom scheme ` |- ( A. x ph -> ph ) ` (modal T) implies the axiom scheme
     ` |- ( A. x ph -> E. x ph ) ` (modal D).  See also ~ bj-axdd2 and
     ~ bj-axd2d .  (Contributed by BJ, 16-May-2019.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  bj-axtd $p |- ( ( A. x -. ph -> -. ph ) ->
                           ( ( A. x ph -> ph ) -> ( A. x ph -> E. x ph ) ) ) $=
    ( wn wal wi wex con2 df-ex syl6ibr imim2d ) ACZBDZKEZAABFZABDMALCNLAGABHIJ
    $.

  $( Lemma for ~ bj-gl4 .  Note that this proof holds in the modal logic (K).
     (Contributed by BJ, 12-Dec-2019.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  bj-gl4lem $p |-
         ( A. x ph -> A. x ( A. x ( A. x ph /\ ph ) -> ( A. x ph /\ ph ) ) ) $=
    ( wal wa wi 19.26 simpr a1i anc2ri syl5bi alimi ) AABCZADZBCZMEBNLBCZLDZAML
    ABFAPLPLEAOLGHIJK $.

  $( In a normal modal logic, the modal axiom GL implies the modal axiom (4).
     Note that the antecedent of ~ bj-gl4 is an instance of the axiom GL, with
     ` ph ` replaced by ` ( A. x ph /\ ph ) ` , sometimes called the "strong
     necessity" of ` ph ` .  (Contributed by BJ, 12-Dec-2019.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  bj-gl4 $p |- ( ( A. x ( A. x ( A. x ph /\ ph ) -> ( A. x ph /\ ph ) ) ->
                   A. x ( A. x ph /\ ph ) ) -> ( A. x ph -> A. x A. x ph ) ) $=
    ( wal wa wi bj-gl4lem 19.26 biimpi imim12i simpl syl6 ) ABCZADZBCZMEBCZNELL
    BCZLDZPLONQABFNQLABGHIPLJK $.

  $( Over minimal calculus, the modal axiom (4) ( ~ hba1 ) and the modal axiom
     (K) ( ~ ax-4 ) together imply ~ axc4 .  (Contributed by BJ, 29-Nov-2020.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  bj-axc4 $p |- ( ( A. x ph -> A. x A. x ph ) ->
                ( ( A. x ( A. x ph -> ps ) -> ( A. x A. x ph -> A. x ps ) ) ->
                    ( A. x ( A. x ph -> ps ) -> ( A. x ph -> A. x ps ) ) ) ) $=
    ( wal wi bj-imim21 ) ACDZGCDGBECDBCDF $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Provability logic
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, we assume that, on top of propositional calculus, there is
  given a provability predicate ` Prv ` satisfying the three axioms ~ ax-prv1
  and ~ ax-prv2 and ~ ax-prv3 .  Note the similarity with ~ ax-gen , ~ ax-4 and
  ~ hba1 respectively.  These three properties of ` Prv ` are often called the
  Hilbert&ndash;Bernays&ndash;L&ouml;b derivability conditions, or the
  Hilbert&ndash;Bernays provability conditions.

  This corresponds to the modal logic (K4) (see previous section for modal
  logic).  The interpretation of provability logic is the following: we are
  given a background first-order theory T, the wff ` Prv ph ` means " ` ph ` is
  provable in T", and the turnstile ` |- ` indicates provability in T.

  Beware that "provability logic" often means (K) augmented with the
  G&ouml;del&ndash;L&ouml;b axiom GL, which we do not assume here (at least for
  the moment).  See for instance
  ~ https://plato.stanford.edu/entries/logic-provability/ .

  Provability logic is worth studying because whenever T is a first-order
  theory containing Robinson arithmetic (a fragment of Peano arithmetic), one
  can prove (using G&ouml;del numbering, and in the much weaker primitive
  recursive arithmetic) that there exists in T a provability predicate ` Prv `
  satisfying the above three axioms.  (We do not construct this predicate in
  this section; this is still a project.)

  The main theorems of this section are the "easy parts" of the proofs of
  G&ouml;del's second incompleteness theorem ( ~ bj-babygodel ) and L&ouml;b's
  theorem ( ~ bj-babylob ).  See the comments of these theorems for details.

$)

  $c Prv $.

  $( Syntax for the provability predicate. $)
  cprvb $a wff Prv ph $.

  ${
    ax-prv1.1 $e |- ph $.
    $( First property of three of the provability predicate.  (Contributed by
       BJ, 3-Apr-2019.) $)
    ax-prv1 $a |- Prv ph $.
  $}

  $( Second property of three of the provability predicate.  (Contributed by
     BJ, 3-Apr-2019.) $)
  ax-prv2 $a |- ( Prv ( ph -> ps ) -> ( Prv ph -> Prv ps ) ) $.

  $( Third property of three of the provability predicate.  (Contributed by BJ,
     3-Apr-2019.) $)
  ax-prv3 $a |- ( Prv ph -> Prv Prv ph ) $.

  ${
    prvlem1.1 $e |- ( ph -> ps ) $.
    $( An elementary property of the provability predicate.  (Contributed by
       BJ, 3-Apr-2019.) $)
    prvlem1 $p |- ( Prv ph -> Prv ps ) $=
      ( wi cprvb ax-prv1 ax-prv2 ax-mp ) ABDZEAEBEDICFABGH $.
  $}

  ${
    prvlem2.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( An elementary property of the provability predicate.  (Contributed by
       BJ, 3-Apr-2019.) $)
    prvlem2 $p |- ( Prv ph -> ( Prv ps -> Prv ch ) ) $=
      ( cprvb wi prvlem1 ax-prv2 syl ) AEBCFZEBECEFAJDGBCHI $.
  $}

  ${
    bj-babygodel.s $e |- ( ph <-> -. Prv ph ) $.
    bj-babygodel.1 $e |- -. Prv F. $.
    $( See the section header comments for the context.

       The first hypothesis reads " ` ph ` is true if and only if it is not
       provable in T" (and having this first hypothesis means that we can prove
       this fact in T).  The wff ` ph ` is a formal version of the sentence
       "This sentence is not provable".  The hard part of the proof of
       G&ouml;del's theorem is to construct such a ` ph ` , called a
       "G&ouml;del&ndash;Rosser sentence", for a first-order theory T which is
       effectively axiomatizable and contains Robinson arithmetic, through
       G&ouml;del diagonalization (this can be done in primitive recursive
       arithmetic).  The second hypothesis means that ` F. ` is not provable in
       T, that is, that the theory T is consistent (and having this second
       hypothesis means that we can prove in T that the theory T is
       consistent).  The conclusion is the falsity, so having the conclusion
       means that T can prove the falsity, that is, T is inconsistent.

       Therefore, taking the contrapositive, this theorem expresses that if a
       first-order theory is consistent (and one can prove in it that some
       formula is true if and only if it is not provable in it), then this
       theory does not prove its own consistency.

       This proof is due to George Boolos, _G&ouml;del's Second Incompleteness
       Theorem Explained in Words of One Syllable_, Mind, New Series, Vol. 103,
       No. 409 (January 1994), pp. 1--3.

       (Contributed by BJ, 3-Apr-2019.) $)
    bj-babygodel $p |- F. $=
      ( wfal cprvb wn ax-prv1 biimpi prvlem1 ax-prv3 pm2.21 prvlem2 sylc sylibr
      con3i syl mto pm2.24ii ) DEZFZEZDTCGUASCUAAEZSTATUBFZAUBSUBUCEUBESAUCAUCB
      HIAJUCUBDUBDKLMZOBNIUDPQR $.
  $}

  ${
    bj-babylob.s $e |- ( ps <-> ( Prv ps -> ph ) ) $.
    bj-babylob.1 $e |- ( Prv ph -> ph ) $.
    $( See the section header comments for the context, as well as the comments
       for ~ bj-babygodel .

       L&ouml;b's theorem when the L&ouml;b sentence is given as a hypothesis
       (the hard part of the proof of L&ouml;b's theorem is to construct this
       L&ouml;b sentence; this can be done, using G&ouml;del diagonalization,
       for any first-order effectively axiomatizable theory containing Robinson
       arithmetic).  More precisely, the present theorem states that if a
       first-order theory proves that the provability of a given sentence
       entails its truth (and if one can construct in this theory a provability
       predicate and a L&ouml;b sentence, given here as the first hypothesis),
       then the theory actually proves that sentence.

       See for instance, Eliezer Yudkowsky, _The Cartoon Guide to L&ouml;b's
       Theorem_ (available at ~ http://yudkowsky.net/rational/lobs-theorem/ ).

       (Contributed by BJ, 20-Apr-2019.) $)
    bj-babylob $p |- ph $=
      ( cprvb wi ax-prv3 biimpi prvlem2 mpd syl mpbir ax-prv1 ax-mp ) BEZABBOAF
      ZOAEZAOOEQBGBOABPCHIJDKZCLMRN $.
  $}

  ${
    bj-godellob.s $e |- ( ph <-> -. Prv ph ) $.
    bj-godellob.1 $e |- -. Prv F. $.
    $( Proof of G&ouml;del's theorem from L&ouml;b's theorem (see comments at
       ~ bj-babygodel and ~ bj-babylob for details).  (Contributed by BJ,
       20-Apr-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    bj-godellob $p |- F. $=
      ( wfal cprvb wn wi dfnot bitri pm2.21i bj-babylob ) DAAAEZFLDGBLHIDEDCJK
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  First-order logic
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Utility lemmas or strengthenings of theorems in the main part (biconditional
  or closed forms, or fewer dv conditions, or dv conditions replaced with
  non-freeness hypotheses...).  Sorted in the same order as in the main part.

$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Universal and existential quantifiers, "non-free" predicate
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Adding ax-gen
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    bj-genr.1 $e |- ( ph /\ ps ) $.
    $( Generalization rule on the right conjunct.  See ~ 19.28 .  (Contributed
       by BJ, 7-Jul-2021.) $)
    bj-genr $p |- ( ph /\ A. x ps ) $=
      ( wal simpli simpri ax-gen pm3.2i ) ABCEABDFBCABDGHI $.

    $( Generalization rule on the left conjunct.  See ~ 19.27 .  (Contributed
       by BJ, 7-Jul-2021.) $)
    bj-genl $p |- ( A. x ph /\ ps ) $=
      ( wal simpli ax-gen simpri pm3.2i ) ACEBACABDFGABDHI $.

    $( Generalization rule on a conjunction.  Forward inference associated with
       ~ 19.26 .  (Contributed by BJ, 7-Jul-2021.) $)
    bj-genan $p |- ( A. x ph /\ A. x ps ) $=
      ( wal simpli ax-gen simpri pm3.2i ) ACEBCEACABDFGBCABDHGI $.
    $( Generalization rule on the right conjunct.  See ~ 19.28 .  (Contributed
       by BJ, 7-Jul-2021.) $)
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Adding ax-4
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Closed form of ~ 2alimi .  (Contributed by BJ, 6-May-2019.) $)
  bj-2alim $p |- ( A. x A. y ( ph -> ps ) ->
                                          ( A. x A. y ph -> A. x A. y ps ) ) $=
    ( wi wal alim al2imi ) ABEDFADFBDFCABDGH $.
  $( Closed form of ~ 2eximi .  (Contributed by BJ, 6-May-2019.) $)
  bj-2exim $p |- ( A. x A. y ( ph -> ps ) ->
                                          ( E. x E. y ph -> E. x E. y ps ) ) $=
    ( wi wal wex exim aleximi ) ABEDFADGBDGCABDHI $.

  $( Closed form of ~ alanimi .  (Contributed by BJ, 6-May-2019.) $)
  bj-alanim $p |- ( A. x ( ( ph /\ ps ) -> ch ) ->
                                     ( ( A. x ph /\ A. x ps ) -> A. x ch ) ) $=
    ( wa wi wal pm3.3 alimi al2im syl impd ) ABECFZDGZADGZBDGZCDGZNABCFFZDGOPQF
    FMRDABCHIABCDJKL $.

  $( Closed form of ~ 2albii .  (Contributed by BJ, 6-May-2019.) $)
  bj-2albi $p |- ( A. x A. y ( ph <-> ps ) ->
                                         ( A. x A. y ph <-> A. x A. y ps ) ) $=
    ( wb wal albi alimi syl ) ABEDFZCFADFZBDFZEZCFKCFLCFEJMCABDGHKLCGI $.

  ${
    bj-notalbii.1 $e |- ( ph <-> ps ) $.
    $( Equivalence of universal quantification of negation of equivalent
       formulas.  Shortens ~ ab0 (103>94), ~ ballotlem2 (2655>2648), ~ bnj1143
       (522>519), ~ hausdiag (2119>2104).  (Contributed by BJ, 17-Jul-2021.) $)
    bj-notalbii $p |- ( A. x -. ph <-> A. x -. ps ) $=
      ( wn notbii albii ) AEBECABDFG $.
  $}

  $( Closed form of ~ 2exbii .  (Contributed by BJ, 6-May-2019.) $)
  bj-2exbi $p |- ( A. x A. y ( ph <-> ps ) ->
                                         ( E. x E. y ph <-> E. x E. y ps ) ) $=
    ( wb wal wex exbi alimi syl ) ABEDFZCFADGZBDGZEZCFLCGMCGEKNCABDHILMCHJ $.

  $( Closed form of ~ 3exbii .  (Contributed by BJ, 6-May-2019.) $)
  bj-3exbi $p |- ( A. x A. y A. z ( ph <-> ps ) ->
                               ( E. x E. y E. z ph <-> E. x E. y E. z ps ) ) $=
    ( wb wal wex exbi 2alimi bj-2exbi syl ) ABFEGZDGCGAEHZBEHZFZDGCGNDHCHODHCHF
    MPCDABEIJNOCDKL $.

  $( Uncurried (imported) form of ~ sylgt .  (Contributed by BJ,
     2-May-2019.) $)
  bj-sylgt2 $p |- ( ( A. x ( ps -> ch ) /\ ( ph -> A. x ps ) ) ->
                                                         ( ph -> A. x ch ) ) $=
    ( wi wal sylgt imp ) BCEDFABDFEACDFEABCDGH $.

  $( Closed form of close to ~ exlimih .  (Contributed by BJ, 2-May-2019.) $)
  bj-exlimh $p |- ( A. x ( ph -> ps ) ->
                                ( ( E. x ps -> ch ) -> ( E. x ph -> ch ) ) ) $=
    ( wi wal wex exim imim1d ) ABEDFADGBDGCABDHI $.

  $( Uncurried (imported) form of ~ bj-exlimh .  (Contributed by BJ,
     2-May-2019.) $)
  bj-exlimh2 $p |- ( ( A. x ( ph -> ps ) /\ ( E. x ps -> ch ) ) ->
                                                         ( E. x ph -> ch ) ) $=
    ( wi wal wex bj-exlimh imp ) ABEDFBDGCEADGCEABCDHI $.

  ${
    bj-alrimhi.1 $e |- ( ph -> ps ) $.
    $( An inference associated with ~ sylgt and ~ bj-exlimh .  (Contributed by
       BJ, 12-May-2019.) $)
    bj-alrimhi $p |- ( F/ x ph -> ( E. x ph -> A. x ps ) ) $=
      ( wnf wex wal wi df-nf biimpi alimi syl6 ) ACEZACFZACGZBCGMNOHACIJABCDKL
      $.
  $}

  $( Closed form of ~ aleximi (with a shorter proof, so ~ aleximi could be
     deduced from it -- ~ exim would have to be proved first, but its proof is
     shorter (currently almost a subproof of ~ aleximi )).  (Contributed by BJ,
     8-Nov-2021.) $)
  bj-alexim $p |-
    ( A. x ( ph -> ( ps -> ch ) ) -> ( A. x ph -> ( E. x ps -> E. x ch ) ) ) $=
    ( wi wal wex alim exim syl6 ) ABCEZEDFADFKDFBDGCDGEAKDHBCDIJ $.

  $( Closed form of ~ nexdh (actually, its general instance).  (Contributed by
     BJ, 6-May-2019.) $)
  bj-nexdh $p |- ( A. x ( ph -> -. ps ) ->
                             ( ( ch -> A. x ph ) -> ( ch -> -. E. x ps ) ) ) $=
    ( wn wi wal wex sylgt alnex syl8ib ) ABEZFDGCADGFCLDGBDHECALDIBDJK $.

  $( Uncurried (imported) form of ~ bj-nexdh .  (Contributed by BJ,
     6-May-2019.) $)
  bj-nexdh2 $p |- ( ( A. x ( ph -> -. ps ) /\ ( ch -> A. x ph ) ) ->
                                                      ( ch -> -. E. x ps ) ) $=
    ( wn wi wal wex bj-nexdh imp ) ABEFDGCADGFCBDHEFABCDIJ $.

  $( Closed form of ~ hbxfrbi .  Notes: it is less important than ~ nfbiit ; it
     requires ~ sp (unlike ~ nfbiit ); there is an obvious version with
     ` ( E. x ph -> ph ) ` instead.  (Contributed by BJ, 6-May-2019.) $)
  bj-hbxfrbi $p |- ( A. x ( ph <-> ps ) ->
                               ( ( ph -> A. x ph ) <-> ( ps -> A. x ps ) ) ) $=
    ( wb wal sp albi imbi12d ) ABDZCEABACEBCEICFABCGH $.

  ${
    bj-exlime.1 $e |- ( E. x ps -> ps ) $.
    bj-exlime.2 $e |- ( ph -> ps ) $.
    $( Variant of ~ exlimih where the non-freeness of ` x ` in ` ps ` is
       expressed using an existential quantifier, thus requiring fewer axioms.
       (Contributed by BJ, 17-Mar-2020.) $)
    bj-exlime $p |- ( E. x ph -> ps ) $=
      ( wex eximi syl ) ACFBCFBABCEGDH $.
  $}

  $( A transformation of quantifiers and logical connectives.  The general
     statement that ~ equs3 proves.

     This and the following theorems are the general instances of already
     proved theorems.  They could be moved to the main part, before ~ ax-5 .  I
     propose to move to the main part: ~ bj-exnalimn , ~ bj-exalim ,
     ~ bj-exalimi , ~ bj-exalims , ~ bj-exalimsi , ~ bj-ax12i , ~ bj-ax12wlem ,
     ~ bj-ax12w , and remove ~ equs3 .  A new label is needed for ~ bj-ax12i
     and label suggestions are welcome for the others.  I also propose to
     change ` -. A. x -. ` to ` E. x ` in ~ speimfw and ~ spimfw (other spim*
     theorems use ` E. x ` and very few theorems in set.mm use
     ` -. A. x -. ` ).  (Contributed by BJ, 29-Sep-2019.) $)
  bj-exnalimn $p |- ( E. x ( ph /\ ps ) <-> -. A. x ( ph -> -. ps ) ) $=
    ( wn wi wal wa wex alinexa con2bii ) ABDECFABGCHABCIJ $.

  $( Distributing quantifiers over a double implication.  (Contributed by BJ,
     8-Nov-2021.) $)
  bj-exalim $p |- ( A. x ( ph -> ( ps -> ch ) ) ->
                                   ( E. x ph -> ( A. x ps -> E. x ch ) ) ) $=
    ( wi wal wex pm2.04 alimi bj-alexim 3syl ) ABCEEZDFBACEEZDFBDFZADGZCDGZEEON
    PEELMDABCHIBACDJNOPHK $.

  ${
    bj-exalimi.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( An inference for distributing quantifiers over a double implication.
       (Almost) the general statement that ~ speimfw proves.  (Contributed by
       BJ, 29-Sep-2019.) $)
    bj-exalimi $p |- ( E. x ph -> ( A. x ps -> E. x ch ) ) $=
      ( wal wex com12 aleximi ) BDFADGCDGBACDABCEHIH $.
  $}

  ${
    bj-exalims.1 $e |- ( E. x ph -> ( -. ch -> A. x -. ch ) ) $.
    $( Distributing quantifiers over a double implication.  (Almost) the
       general statement that ~ spimfw proves.  (Contributed by BJ,
       29-Sep-2019.) $)
    bj-exalims $p |-
         ( A. x ( ph -> ( ps -> ch ) ) -> ( E. x ph -> ( A. x ps -> ch ) ) ) $=
      ( wi wal wex bj-exalim wn eximal sylibr a1i syldd ) ABCFFDGZADHZBDGCDHZCA
      BCDIPQCFZFOPCJZSDGFRECCDKLMN $.
  $}

  ${
    bj-exalimsi.1 $e |- ( ph -> ( ps -> ch ) ) $.
    bj-exalimsi.2 $e |- ( E. x ph -> ( -. ch -> A. x -. ch ) ) $.
    $( An inference for distributing quantifiers over a double implication.
       (Almost) the general statement that ~ spimfw proves.  (Contributed by
       BJ, 29-Sep-2019.) $)
    bj-exalimsi $p |- ( E. x ph -> ( A. x ps -> ch ) ) $=
      ( wi wex wal bj-exalims mpg ) ABCGGADHBDICGGDABCDFJEK $.
  $}

  ${
    bj-ax12ig.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bj-ax12ig.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    $( A lemma used to prove a weak form of the axiom of substitution.  A
       generalization of ~ bj-ax12i .  (Contributed by BJ, 19-Dec-2020.) $)
    bj-ax12ig $p |- ( ph -> ( ps -> A. x ( ph -> ps ) ) ) $=
      ( wi wal wa pm5.32i imp biimprcd sylg sylbi ex ) ABABGZDHZABIACIZQABCEJRC
      PDACCDHFKABCELMNO $.
  $}

  ${
    bj-ax12i.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bj-ax12i.2 $e |- ( ch -> A. x ch ) $.
    $( A weakening of ~ bj-ax12ig that is sufficient to prove a weak form of
       the axiom of substitution ~ ax-12 .  The general statement of which
       ~ ax12i is an instance.  (Contributed by BJ, 29-Sep-2019.) $)
    bj-ax12i $p |- ( ph -> ( ps -> A. x ( ph -> ps ) ) ) $=
      ( wal wi a1i bj-ax12ig ) ABCDECCDGHAFIJ $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Adding ax-5
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x ch $.
    bj-ax12wlem.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( A lemma used to prove a weak version of the axiom of substitution
       ~ ax-12 .  (Temporary comment:  The general statement that ~ ax12wlem
       proves.)  (Contributed by BJ, 20-Mar-2020.) $)
    bj-ax12wlem $p |- ( ph -> ( ps -> A. x ( ph -> ps ) ) ) $=
      ( ax-5 bj-ax12i ) ABCDECDFG $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Equality and substitution
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y z $.  $d t y z $.  $d ph y z $.
    $( Justification theorem for ~ df-ssb from Tarski's FOL. (Contributed by
       BJ, 9-Nov-2021.) $)
    bj-ssbjust $p |- ( A. y ( y = t -> A. x ( x = y -> ph ) ) <->
                       A. z ( z = t -> A. x ( x = z -> ph ) ) ) $=
      ( weq wi wal equequ1 equequ2 imbi1d albidv imbi12d cbvalvw ) CEFZBCFZAGZB
      HZGDEFZBDFZAGZBHZGCDCDFZOSRUBCDEIUCQUABUCPTACDBJKLMN $.
  $}

  $( Symbols for substitution. $)
  $c [b /b ]b $.

  $( Syntax for the substitution of a variable for a variable in a formula.
     (Contributed by BJ, 22-Dec-2020.) $)
  wssb $a wff [b t /b x ]b ph $.

  ${
    $d y x $.  $d y t $.  $d y ph $.
    $( Alternate definition of proper substitution.  Note that the occurrences
       of a given variable are either all bound ( ` x , y ` ) or all free
       ( ` t ` ).  Also note that the definiens uses only primitive symbols.
       It is obtained by applying twice Tarski's definition ~ sb6 which is
       valid for disjoint variables, so we introduce a dummy variable ` y ` to
       isolate ` x ` from ` t ` , as in ~ dfsb7 with respect to ~ sb5 .

       This double level definition will make several proofs using it appear as
       doubled.  Alternately, one could often first prove as a lemma the same
       theorem with a DV condition on the substitute and the substituted
       variables, and then prove the original theorem by applying this lemma
       twice in a row.

       This definition uses a dummy variable, but the justification theorem,
       ~ bj-ssbjust , is provable from Tarski's FOL.

       Once this is proved, more of the fundamental properties of proper
       substitution will be provable from Tarski's FOL system, sometimes with
       the help of specialization ~ sp , of the substitution axiom ~ ax-12 ,
       and of commutation of quantifiers ~ ax-11 ; that is, ~ ax-13 will often
       be avoided.  (Contributed by BJ, 22-Dec-2020.) $)
    df-ssb $a |-
              ( [b t /b x ]b ph <-> A. y ( y = t -> A. x ( x = y -> ph ) ) ) $.
  $}

  ${
    $d y t $.  $d y x $.  $d y ph $.  $d y ps $.
    $( Distribute substitution over implication, closed form.  Specialization
       of implication.  Uses only ax-1--5.  Compare ~ spsbim .  (Contributed by
       BJ, 22-Dec-2020.) $)
    bj-ssbim $p |- ( A. x ( ph -> ps ) ->
                                   ( [b t /b x ]b ph -> [b t /b x ]b ps ) ) $=
      ( vy wi wal weq wssb imim2 al2imi imim2d alimdv df-ssb 3imtr4g ) ABFZCGZE
      DHZCEHZAFZCGZFZEGRSBFZCGZFZEGACDIBCDIQUBUEEQUAUDRPTUCCABSJKLMACEDNBCEDNO
      $.

    $( Biconditional property for substitution, closed form.  Specialization of
       biconditional.  Uses only ax-1--5.  Compare ~ spsbbi .  (Contributed by
       BJ, 22-Dec-2020.) $)
    bj-ssbbi $p |- ( A. x ( ph <-> ps ) ->
                               ( [b t /b x ]b ph <-> [b t /b x ]b ps ) ) $=
      ( wb wal wssb wi biimp alimi bj-ssbim syl biimpr impbid ) ABEZCFZACDGZBCD
      GZPABHZCFQRHOSCABIJABCDKLPBAHZCFRQHOTCABMJBACDKLN $.
  $}

  ${
    bj-ssbimi.1 $e |- ( ph -> ps ) $.
    $( Distribute substitution over implication.  Uses only ax-1--5.
       (Contributed by BJ, 22-Dec-2020.) $)
    bj-ssbimi $p |- ( [b t /b x ]b ph -> [b t /b x ]b ps ) $=
      ( wi wssb bj-ssbim mpg ) ABFACDGBCDGFCABCDHEI $.
  $}

  ${
    bj-ssbbii.1 $e |- ( ph <-> ps ) $.
    $( Biconditional property for substitution.  Uses only ax-1--5.
       (Contributed by BJ, 22-Dec-2020.) $)
    bj-ssbbii $p |- ( [b t /b x ]b ph <-> [b t /b x ]b ps ) $=
      ( wb wssb bj-ssbbi mpg ) ABFACDGBCDGFCABCDHEI $.
  $}

  ${
    $d y x $.  $d y t $.  $d y ph $.
    $( If a proposition is true for all instances, then it is true for any
       specific one.  Uses only ax-1--5.  Compare ~ stdpc4 which uses auxiliary
       axioms.  (Contributed by BJ, 22-Dec-2020.) $)
    bj-alsb $p |- ( A. x ph -> [b t /b x ]b ph ) $=
      ( vy wal weq wi wssb ala1 a1d alrimiv df-ssb sylibr ) ABEZDCFZBDFZAGBEZGZ
      DEABCHNRDNQOAPBIJKABDCLM $.
  $}

  ${
    $d y x $.  $d y t $.  $d y ph $.
    $( If a proposition is true for a specific instance, then there exists an
       instance such that it is true for it.  Uses only ax-1--6.  Compare
       ~ spsbe which, due to the specific form of ~ df-sb , uses fewer axioms.
       (Contributed by BJ, 22-Dec-2020.) $)
    bj-sbex $p |- ( [b t /b x ]b ph -> E. x ph ) $=
      ( vy wssb weq wi wal wex df-ssb ax6ev exim mpi sylbi eximi pm2.27 exlimiv
      ax-mp 3syl ) ABCEZBDFZAGBHZDIZUABIZABIZGZDIUETDCFZUBGDHZUCABDCJUHUGDIUCDC
      KUGUBDLMNUBUFDUAABLOUFUEDUDUFUEGBDKUDUEPRQS $.
  $}

  ${
    $d y x u $.  $d z x u $.  $d u t $.
    $( Substitution in an equality, disjoint variables case.  Uses only
       ax-1--6.  It might be shorter to prove the result about composition of
       two substitutions and prove ~ bj-ssbeq first with a DV on x,t, and then
       in the general case.  (Contributed by BJ, 22-Dec-2020.) $)
    bj-ssbeq $p |- ( [b t /b x ]b y = z <-> y = z ) $=
      ( vu weq wssb wal df-ssb wex 19.23v ax6ev pm2.27 ax-mp ax-1 impbii imbi2i
      wi bitri albii ) BCFZADGEDFZAEFZUARAHZRZEHZUAUAAEDIUFUBUARZEHZUAUEUGEUDUA
      UBUDUCAJZUARZUAUCUAAKUJUAUIUJUARAELUIUAMNUAUIOPSQTUHUBEJZUARZUAUBUAEKULUA
      UKULUAREDLUKUAMNUAUKOPSSS $.
  $}

  ${
    $d y x ph $.  $d y t $.
    $( Substitution for a variable not occurring in a proposition.  See ~ sbf .
       (Contributed by BJ, 22-Dec-2020.) $)
    bj-ssb0 $p |- ( [b t /b x ]b ph <-> ph ) $=
      ( vy wssb weq wal df-ssb wex 19.23v ax6ev pm2.27 ax-mp ax-1 impbii imbi2i
      wi bitri albii ) ABCEDCFZBDFZAQBGZQZDGZAABDCHUDTDIZAQZAUDTAQZDGUFUCUGDUBA
      TUBUABIZAQZAUAABJUIAUHUIAQBDKUHALMAUHNORPSTADJRUFAUEUFAQDCKUEALMAUENORR
      $.
  $}

  ${
    $d y s $.  $d y t $.  $d y x $.  $d y ph $.
    $( Equality property for substitution, from Tarski's system.  Compare
       ~ sbequ .  (Contributed by BJ, 30-Dec-2020.) $)
    bj-ssbequ $p |- ( s = t -> ( [b s /b x ]b ph <-> [b t /b x ]b ph ) ) $=
      ( vy weq wi wal wssb equequ2 imbi1d albidv df-ssb 3bitr4g ) DCFZEDFZBEFAG
      BHZGZEHECFZQGZEHABDIABCIORTEOPSQDCEJKLABEDMABECMN $.
  $}

  ${
    $d y z x $.  $d y z t $.  $d y z ph $.
    $( A lemma for the definiens of ~ df-sb .  An instance of ~ sp proved
       without it.  Note: it has a common subproof with ~ bj-ssbjust .
       (Contributed by BJ, 22-Dec-2020.) $)
    bj-ssblem1 $p |- ( A. y ( y = t -> A. x ( x = y -> ph ) ) ->
                                         ( y = t -> A. x ( x = y -> ph ) ) ) $=
      ( vz weq wi wal equequ1 equequ2 imbi1d albidv imbi12d spw ) CDFZBCFZAGZBH
      ZGEDFZBEFZAGZBHZGCECEFZOSRUBCEDIUCQUABUCPTACEBJKLMN $.
  $}

  ${
    $d x y z t $.  $d y z ph $.
    $( An instance of ~ ax-11 proved without it.  The converse may not be
       provable without ~ ax-11 (since using ~ alcomiw would require a DV on
       ` ph , x ` , which defeats the purpose).  (Contributed by BJ,
       22-Dec-2020.) $)
    bj-ssblem2 $p |- ( A. x A. y ( y = t -> ( x = y -> ph ) ) ->
                                   A. y A. x ( y = t -> ( x = y -> ph ) ) ) $=
      ( vz weq wi equequ1 equequ2 imbi1d imbi12d alcomiw ) CDFZBCFZAGZGEDFZBEFZ
      AGZGBCECEFZMPORCEDHSNQACEBIJKL $.
  $}

  ${
    $d y x t $.  $d y ph $.
    $( One direction of a simplified definition of substitution in case of
       disjoint variables.  See ~ bj-ssb1 for the biconditional, which requires
       ~ ax-11 .  (Contributed by BJ, 22-Dec-2020.) $)
    bj-ssb1a $p |- ( A. x ( x = t -> ph ) -> [b t /b x ]b ph ) $=
      ( vy weq wi wal wssb wex 19.23v sylibr equequ2 imbi1d pm5.74i albii alimi
      ax-1 bj-ssblem2 stdpc5v 3syl df-ssb ) BCEZAFZBGZDCEZBDEZAFZBGFZDGZABCHUDU
      EUGFZDGZBGUJBGZDGUIUCUKBUCUEUCFZDGZUKUCUEDIZUCFUNUCUOQUEUCDJKUJUMDUEUGUCU
      EUFUBADCBLMNOKPABDCRULUHDUEUGBSPTABDCUAK $.
  $}

  ${
    $d y x t $.  $d y ph $.
    $( A simplified definition of substitution in case of disjoint variables.
       See ~ bj-ssb1a for the backward implication, which does not require
       ~ ax-11 (note that here, the version of ~ ax-11 with disjoint setvar
       metavariables would suffice).  Compare ~ sb6 .  (Contributed by BJ,
       22-Dec-2020.) $)
    bj-ssb1 $p |- ( [b t /b x ]b ph <-> A. x ( x = t -> ph ) ) $=
      ( vy weq wi wal wssb 19.21v albii wex 19.23v equequ2 imbi1d pm5.74i ax6ev
      a1bi 3bitr4ri alcom bitri df-ssb ) DCEZBDEZAFZFZBGZDGZUBUDBGFZDGBCEZAFZBG
      ZABCHUFUHDUBUDBIJUKUEDGZBGUGUJULBUBUJFZDGUBDKZUJFULUJUBUJDLUEUMDUBUDUJUBU
      CUIADCBMNOJUNUJDCPQRJUEBDSTABDCUAR $.
  $}

  ${
    $d x t $.
    $( A weaker form of ~ ax-12 and ~ ax12v2 , namely the generalization over
       ` x ` of the latter.  In this statement, all occurrences of ` x ` are
       bound.  (Contributed by BJ, 26-Dec-2020.) $)
    bj-ax12 $p |- A. x ( x = t -> ( ph -> A. x ( x = t -> ph ) ) ) $=
      ( weq wi wal ax12v2 ax-gen ) BCDZAIAEBFEEBABCGH $.
  $}

  ${
    $d x t $.
    $( The axiom ~ bj-ax12 expressed using substitution.  (Contributed by BJ,
       26-Dec-2020.) $)
    bj-ax12ssb $p |- [b t /b x ]b ( ph -> [b t /b x ]b ph ) $=
      ( wssb wi weq wal bj-ax12 bj-ssb1 imbi2i albii mpbir ) AABCDZEZBCDBCFZNEZ
      BGZQOAOAEBGZEZEZBGABCHPTBNSOMRAABCIJJKLNBCIL $.
  $}

  $( Dual statement of ~ hbe1 (which is the real ~ modal-5 ).  See also ~ axc7
     and ~ axc7e .  (Contributed by BJ, 21-Dec-2020.) $)
  bj-modal5e $p |- ( E. x A. x ph -> A. x ph ) $=
    ( wal wex wn hbn1 alnex sylib con4i ) ABCZJBDZJEZLBCKEABFJBGHI $.

  $( Special case of ~ 19.41 proved from Tarski, ~ ax-10 (modal5) and ~ hba1
     (modal4).  (Contributed by BJ, 29-Dec-2020.)
     (Proof modification is discouraged.) $)
  bj-19.41al $p |- ( E. x ( ph /\ A. x ps ) <-> ( E. x ph /\ A. x ps ) ) $=
    ( wal wa wex 19.40 bj-modal5e anim2i syl hba1 19.29r impbii ) ABCDZECFZACFZ
    NEZOPNCFZEQANCGRNPBCHIJQPNCDZEONSPBCKIANCLJM $.

  ${
    $d x y $.
    bj-equsexval.1 $e |- ( x = y -> ( ph <-> A. x ps ) ) $.
    $( Special case of ~ equsexv proved from Tarski, ~ ax-10 (modal5) and
       ~ hba1 (modal4).  (Contributed by BJ, 29-Dec-2020.)
       (Proof modification is discouraged.) $)
    bj-equsexval $p |- ( E. x ( x = y /\ ph ) <-> A. x ps ) $=
      ( weq wa wex wal pm5.32i exbii ax6ev bj-19.41al mpbiran bitri ) CDFZAGZCH
      PBCIZGZCHZRQSCPAREJKTPCHRCDLPBCMNO $.
  $}

  ${
    $d x y $.
    $( Proof of ~ sb56 from Tarski, ~ ax-10 (modal5) and ~ bj-ax12 .
       (Contributed by BJ, 29-Dec-2020.)
       (Proof modification is discouraged.) $)
    bj-sb56 $p |- ( E. x ( x = y /\ ph ) <-> A. x ( x = y -> ph ) ) $=
      ( weq wa wex wi wal bj-ax12 pm3.31 aleximi ax-mp bj-modal5e equs4v impbii
      syl ) BCDZAEZBFZQAGZBHZSUABFZUAQAUAGGZBHSUBGABCIUCRUABQAUAJKLTBMPABCNO $.
  $}

  ${
    $d y t $.  $d y x $.  $d y ph $.
    $( An alternate definition of ~ df-ssb .  Note that the use of a dummy
       variable in the definition ~ df-ssb allows to use ~ bj-sb56 instead of
       ~ equs45f and hence to avoid dependency on ~ ax-13 and to use ~ ax-12
       only through ~ bj-ax12 .  Compare ~ dfsb7 .  (Contributed by BJ,
       25-Dec-2020.) $)
    bj-dfssb2 $p |-
              ( [b t /b x ]b ph <-> E. y ( y = t /\ E. x ( x = y /\ ph ) ) ) $=
      ( wssb weq wi wal wa wex df-ssb bj-sb56 bicomi anbi2i exbii 3bitr2i ) ABD
      ECDFZBCFZAGBHZGCHQSIZCJQRAIBJZIZCJABCDKSCDLTUBCSUAQUASABCLMNOP $.
  $}

  ${
    $d y t $.  $d y x $.  $d y ph $.
    $( The result of a substitution in the negation of a formula is the
       negation of the result of the same substitution in that formula.  Proved
       from Tarski, ~ ax-10 , ~ bj-ax12 .  Compare ~ sbn .  (Contributed by BJ,
       25-Dec-2020.) $)
    bj-ssbn $p |- ( [b t /b x ]b -. ph <-> -. [b t /b x ]b ph ) $=
      ( vy wn wssb weq wi wal wa df-ssb alinexa imbi2i albii bj-dfssb2 xchbinxr
      wex 3bitri ) AEZBCFDCGZBDGZSHBIZHZDITUAAJBQZEZHZDIZABCFZESBDCKUCUFDUBUETU
      AABLMNUGTUDJDQUHTUDDLABDCOPR $.
  $}

  $( See ~ sbft .  This proof is from Tarski's FOL together with ~ sp (and its
     dual).  (Contributed by BJ, 22-Dec-2020.) $)
  bj-ssbft $p |- ( F/ x ph -> ( [b t /b x ]b ph <-> ph ) ) $=
    ( wnf wssb wex wal bj-sbex wi df-nf biimpi sp syl56 19.8a bj-alsb impbid )
    ABDZABCEZARABFZQABGZAABCHQSTIABJKZABLMASQTRABNUAABCOMP $.

  ${
    $d y x $.  $d y t $.  $d y ph $.
    $( Note that ~ ax-12 is used only via ~ sp .  See ~ sbequ2 and ~ stdpc7 .
       (Contributed by BJ, 22-Dec-2020.) $)
    bj-ssbequ2 $p |- ( x = t -> ( [b t /b x ]b ph -> ph ) ) $=
      ( vy wssb weq wi wal df-ssb wa sp imim2i pm3.31 wex 19.23v equviniva biid
      alimi equcom sylbi anbi12ci biimpi eximi pm3.35 sylan ancoms sylan2 com12
      ex 3syl ) ABCEZBCFZAUKDCFZBDFZAGZBHZGZDHZULAGZABDCIURUMUOGZDHUMUNJZAGZDHZ
      USUQUTDUPUOUMUOBKLRUTVBDUMUNAMRVCVADNZAGZUSVAADOVEULAULVEUNCDFZJZDNZABCDP
      VHVEAVHVDVEAVGVADVGVAUNUNVFUMUNQCDSUAUBUCVDAUDUEUFUGUITUJTUH $.
  $}

  ${
    $d y x $.  $d y t $.  $d y ph $.
    $( This uses ~ ax-12 with a direct reference to ~ ax12v .  Therefore,
       compared to ~ bj-ax12 , there is a hidden use of ~ sp .  Note that with
       ~ ax-12 , it can be proved with dv condition on ` x , t ` .  See
       ~ sbequ1 .  (Contributed by BJ, 22-Dec-2020.) $)
    bj-ssbequ1 $p |- ( x = t -> ( ph -> [b t /b x ]b ph ) ) $=
      ( vy weq wi wal wssb wa equtr2 equcomd ax12v syl expimpd com12 alrimiv ex
      df-ssb syl6ibr ) BCEZADCEZBDEZAFBGZFZDGZABCHTAUETAIZUDDUAUFUCUATAUCUATIZU
      BAUCFUGDBDBCJKABDLMNOPQABDCRS $.
  $}

  ${
    $d y x $.  $d y ph $.
    $( A special case of ~ bj-ssbequ2 .  (Contributed by BJ, 22-Dec-2020.) $)
    bj-ssbid2 $p |- ( [b x /b x ]b ph -> ph ) $=
      ( weq wssb wi equid bj-ssbequ2 ax-mp ) BBCABBDAEBFABBGH $.

    $( Alternate proof of ~ bj-ssbid2 , not using ~ bj-ssbequ2 .  (Contributed
       by BJ, 22-Dec-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    bj-ssbid2ALT $p |- ( [b x /b x ]b ph -> ph ) $=
      ( vy weq wi wal df-ssb sp imim2i alimi wex pm2.21 equcomi imim1i ja ax6ev
      wssb 19.23v biimpi mpisyl syl sylbi ) ABBQCBDZBCDZAEZBFZEZCFZAABCBGUHUCUE
      EZCFZAUGUICUFUEUCUEBHIJUJUCAEZCFZUCCKZAUIUKCUCUEUKUCALUCUDACBMNOJCBPULUMA
      EUCACRSTUAUB $.
  $}

  ${
    $d y x $.  $d y ph $.
    $( A special case of ~ bj-ssbequ1 .  (Contributed by BJ, 22-Dec-2020.) $)
    bj-ssbid1 $p |- ( ph -> [b x /b x ]b ph ) $=
      ( weq wssb wi equid bj-ssbequ1 ax-mp ) BBCAABBDEBFABBGH $.

    $( Alternate proof of ~ bj-ssbid1 , not using ~ bj-ssbequ1 .  (Contributed
       by BJ, 22-Dec-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    bj-ssbid1ALT $p |- ( ph -> [b x /b x ]b ph ) $=
      ( vy weq wi wal wssb ax12v equcoms com12 alrimiv df-ssb sylibr ) ACBDZBCD
      AEBFZEZCFABBGAPCNAOAOEBCABCHIJKABCBLM $.
  $}

  ${
    $d y t $.  $d y x $.  $d y ph $.
    $( Composition of two substitutions with a fresh intermediate variable.
       Remark: does not seem useful.  (Contributed by BJ, 22-Dec-2020.) $)
    bj-ssbssblem $p |- ( [b t /b y ]b [b y /b x ]b ph <-> [b t /b x ]b ph ) $=
      ( weq wi wal wssb bj-ssb1 bj-ssbbii df-ssb 3bitr4i ) BCEAFBGZCDHCDEMFCGAB
      CHZCDHABDHMCDINMCDABCIJABCDKL $.
  $}

  ${
    $d x y t $.
    $( Lemma for bj-ssbcom3 when setvar variables are disjoint.  Remark: does
       not seem useful.  (Contributed by BJ, 30-Dec-2020.) $)
    bj-ssbcom3lem $p |- ( [b t /b y ]b [b y /b x ]b ph <->
                                              [b t /b y ]b [b t /b x ]b ph ) $=
      ( weq wi wal wssb equequ2 imbi1d pm5.74i 19.21v 3bitr3i bj-ssb1 bj-ssbbii
      albii bitri 3bitr4i ) CDEZBCEZAFZBGZFZCGZSBDEZAFZBGZFZCGZABCHZCDHZABDHZCD
      HZUCUHCSUAFZBGSUFFZBGUCUHUNUOBSUAUFSTUEACDBIJKPSUABLSUFBLMPUKUBCDHUDUJUBC
      DABCNOUBCDNQUMUGCDHUIULUGCDABDNOUGCDNQR $.
  $}

  ${
    $d x z $.
    $( Lemma for ~ bj-ax6e .  (Contributed by BJ, 22-Dec-2020.)
       (Proof modification is discouraged.) $)
    bj-ax6elem1 $p |- ( -. A. x x = y -> ( y = z -> A. x y = z ) ) $=
      ( weq wal wn wi axc9 axc16 pm2.61d2 ) ABDAEFACDAEBCDZKAEGBCAHKACIJ $.
  $}

  ${
    $d x z $.
    $( Lemma for ~ bj-ax6e .  (Contributed by BJ, 22-Dec-2020.)
       (Proof modification is discouraged.) $)
    bj-ax6elem2 $p |- ( A. x y = z -> E. x x = y ) $=
      ( weq wi ax6ev equeucl eximii 19.35i ) BCDZABDZAACDJKEAACFABCGHI $.
  $}

  ${
    $d x z $.  $d y z $.
    $( Proof of ~ ax6e (hence ~ ax6 ) from Tarski's system, ~ ax-c9 ,
       ~ ax-c16 .  Remark: ~ ax-6 is used only via its principal (unbundled)
       instance ~ ax6v .  (Contributed by BJ, 22-Dec-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-ax6e $p |- E. x x = y $=
      ( vz weq wex wal wi 19.2 wn bj-ax6elem1 bj-ax6elem2 syl6 pm2.61i exlimiiv
      a1d ax6evr ) BCDZABDZAEZCRAFZQSGTSQRAHOTIQQAFSABCJABCKLMCBPN $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Adding ax-6
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( There exists a variable such that ` T. ` holds; that is, there exists a
     variable.  This corresponds under the standard translation to one of the
     formulations of the modal axiom (D), the other being ~ 19.2 .  (This is
     also ~ extt ; propose to move to Main ~ extt and ~ allt ; relabel
     ~ exiftru to "exgen", for "existential generalization", which is the
     standard name for that rule of inference ? ).  (Contributed by BJ,
     12-May-2019.)  (Proof modification is discouraged.) $)
  bj-extru $p |- E. x T. $=
    ( wtru tru exiftru ) BACD $.

  ${
    $d x y $.
    $( Version of ~ bj-alequex with DV(x,y), requiring fewer axioms.
       (Contributed by BJ, 9-Nov-2021.) $)
    bj-alequexv $p |- ( A. x ( x = y -> ph ) -> E. x ph ) $=
      ( weq wi wal wex ax6ev exim mpi ) BCDZAEBFKBGABGBCHKABIJ $.
  $}

  ${
    $d x y $.  $d x ps $.
    $( Closed form of ~ spimvw .  See also ~ spimt .  (Contributed by BJ,
       8-Nov-2021.) $)
    bj-spimvwt $p |- ( A. x ( x = y -> ( ph -> ps ) ) -> ( A. x ph -> ps ) ) $=
      ( weq wi wal wex bj-alequexv 19.36v sylib ) CDEABFZFCGLCHACGBFLCDIABCJK
      $.
  $}

  ${
    $d x y $.  $d x ph $.
    bj-spimevw.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Existential introduction, using implicit substitution.  This is to
       ~ spimeh what ~ spimvw is to ~ spimw .  (Contributed by BJ,
       17-Mar-2020.) $)
    bj-spimevw $p |- ( ph -> E. x ps ) $=
      ( ax-5 spimeh ) ABCDACFEG $.
  $}

  $( Theorem close to a closed form of ~ spnfw .  (Contributed by BJ,
     12-May-2019.) $)
  bj-spnfw $p |- ( ( E. x ph -> ps ) -> ( A. x ph -> ps ) ) $=
    ( wal wex 19.2 imim1i ) ACDACEBACFG $.

  ${
    $d x y $.
    bj-cbvexiw.1 $e |- ( E. x E. y ps -> E. y ps ) $.
    bj-cbvexiw.2 $e |- ( ph -> A. y ph ) $.
    bj-cbvexiw.3 $e |- ( y = x -> ( ph -> ps ) ) $.
    $( Change bound variable.  This is to ~ cbvexvw what ~ cbvaliw is to
       ~ cbvalvw .  [TODO: move after ~ cbvalivw ].  (Contributed by BJ,
       17-Mar-2020.) $)
    bj-cbvexiw $p |- ( E. x ph -> E. y ps ) $=
      ( wex spimeh bj-exlime ) ABDHCEABDCFGIJ $.
  $}

  ${
    $d x y $.  $d x ps $.  $d y ph $.
    bj-cbvexivw.1 $e |- ( y = x -> ( ph -> ps ) ) $.
    $( Change bound variable.  This is to ~ cbvexvw what ~ cbvalivw is to
       ~ cbvalvw .  [TODO: move after ~ cbvalivw ].  (Contributed by BJ,
       17-Mar-2020.) $)
    bj-cbvexivw $p |- ( E. x ph -> E. y ps ) $=
      ( wex ax5e ax-5 bj-cbvexiw ) ABCDBDFCGADHEI $.
  $}

  $( A short form of the axiom D of modal logic.  (Contributed by BJ,
     4-Apr-2021.) $)
  bj-modald $p |- ( A. x -. ph -> -. A. x ph ) $=
    ( wal wn wex 19.2 df-ex sylib con2i ) ABCZADBCZJABEKDABFABGHI $.

  ${
    $d x y $.
    $( A weakening of ~ ax-6 and ~ ax6v .  (Contributed by BJ, 4-Apr-2021.)
       (New usage is discouraged.) $)
    bj-denot $p |- ( x = x -> -. A. y -. y = x ) $=
      ( weq wn wal ax6v a1i ) BACDBEDAACBAFG $.
  $}

  ${
    $d x y $.  $d x ph $.
    $( A lemma for substitutions, proved from Tarski's FOL. The version without
       DV( ` x ` , ` y ` ) is true but requires ~ ax-13 .  The DV condition DV(
       ` x ` , ` ph ` ) is necessary for both directions: consider substituting
       ` x = z ` for ` ph ` .  (Contributed by BJ, 25-May-2021.) $)
    bj-eqs $p |- ( ph <-> A. x ( x = y -> ph ) ) $=
      ( weq wi wal ax-1 alrimiv wex exim ax6ev pm2.27 ax-mp ax5e 3syl impbii )
      ABCDZAEZBFZARBAQGHSQBIZABIZEZUAAQABJTUBUAEBCKTUALMABNOP $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Adding ax-7
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y $.
    bj-cbvexw.1 $e |- ( E. x E. y ps -> E. y ps ) $.
    bj-cbvexw.2 $e |- ( ph -> A. y ph ) $.
    bj-cbvexw.3 $e |- ( E. y E. x ph -> E. x ph ) $.
    bj-cbvexw.4 $e |- ( ps -> A. x ps ) $.
    bj-cbvexw.5 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Change bound variable.  This is to ~ cbvexvw what ~ cbvalw is to
       ~ cbvalvw .  (Contributed by BJ, 17-Mar-2020.) $)
    bj-cbvexw $p |- ( E. x ph <-> E. y ps ) $=
      ( wex weq wb equcoms biimpd bj-cbvexiw biimprd impbii ) ACJBDJABCDEFDCKAB
      ABLCDIMNOBADCGHCDKABIPOQ $.
  $}

  ${
    $d x ch $.  $d y th $.  $d z ps $.  $d y z $.
    bj-ax12w.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bj-ax12w.2 $e |- ( y = z -> ( ps <-> th ) ) $.
    $( The general statement that ~ ax12w proves.  (Contributed by BJ,
       20-Mar-2020.) $)
    bj-ax12w $p |- ( ph -> ( A. y ps -> A. x ( ph -> ps ) ) ) $=
      ( wal wi spw bj-ax12wlem syl5 ) BFJBAABKEJBDFGILABCEHMN $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Membership predicate, ax-8 and ax-9
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x z $.  $d y z $.
    $( A form of ~ elequ2 with a universal quantifier.  Its converse is
       ~ ax-ext .  (TODO: move to main part, minimize ~ axext4 --- as of
       4-Nov-2020, minimizes only ~ axext4 , by 13 bytes; and link to it in the
       comment of ~ ax-ext .)  (Contributed by BJ, 3-Oct-2019.) $)
    bj-elequ2g $p |- ( x = y -> A. z ( z e. x <-> z e. y ) ) $=
      ( weq wel wb elequ2 alrimiv ) ABDCAECBEFCABCGH $.
  $}

  $( A theorem which could be used as sole axiom for the non-logical predicate
     instead of ~ ax-8 and ~ ax-9 .  Indeed, it is implied over propositional
     calculus by the conjunction of ~ ax-8 and ~ ax-9 , as proved here.  In the
     other direction, one can prove ~ ax-8 (respectively ~ ax-9 ) from
     ~ bj-ax89 by using ~ mpan2 ( respectively ~ mpan ) and ~ equid .  (TODO:
     move to main part.)  (Contributed by BJ, 3-Oct-2019.) $)
  bj-ax89 $p |- ( ( x = y /\ z = t ) -> ( x e. z -> y e. t ) ) $=
    ( weq wel ax8 ax9 sylan9 ) ABEACFBCFCDEBDFABCGCDBHI $.

  $( An identity law for the non-logical predicate, which combines ~ elequ1 and
     ~ elequ2 .  For the analogous theorems for class terms, see ~ eleq1 ,
     ~ eleq2 and ~ eleq12 .  (TODO: move to main part.)  (Contributed by BJ,
     29-Sep-2019.) $)
  bj-elequ12 $p |- ( ( x = y /\ z = t ) -> ( x e. z <-> y e. t ) ) $=
    ( weq wel elequ1 elequ2 sylan9bb ) ABEACFBCFCDEBDFABCGCDBHI $.

  ${
    $d x z $.  $d y z $.
    $( One direction of ~ cleljust , requiring only ~ ax-1 -- ~ ax-5 and
       ~ ax8v1 .  (Contributed by BJ, 31-Dec-2020.)
       (Proof modification is discouraged.) $)
    bj-cleljusti $p |- ( E. z ( z = x /\ z e. y ) -> x e. y ) $=
      ( weq wel wa ax8v1 imp exlimiv ) CADZCBEZFABEZCJKLCABGHI $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Logical redundancy of ax-10--13
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Adding ax-10
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Adding ax-11
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Commutation of universal quantifiers implies commutation of existential
     quantifiers.  Can be placed in the ~ ax-4 section, soon after ~ 2nexaln ,
     and used to prove ~ excom .  (Contributed by BJ, 29-Nov-2020.)
     (Proof modification is discouraged.) $)
  bj-alcomexcom $p |- ( ( A. x A. y -. ph -> A. y A. x -. ph ) ->
                                          ( E. y E. x ph -> E. x E. y ph ) ) $=
    ( wn wal wi wex 2nexaln imbi12i con4 sylbir ) ADZCEBEZLBECEZFACGBGZDZABGCGZ
    DZFQOFPMRNABCHACBHIOQJK $.

  $( Closed form of ~ hbal .  When in main part, prove ~ hbal and ~ hbald from
     it.  (Contributed by BJ, 2-May-2019.) $)
  bj-hbalt $p |- ( A. y ( ph -> A. x ph ) -> ( A. y ph -> A. x A. y ph ) ) $=
    ( wal wi alim ax-11 syl6 ) AABDZECDACDZICDJBDAICFACBGH $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Adding ax-12
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Proof of ~ axc11n from { ~ ax-1 -- ~ ax-7 , ~ axc11 } .  Almost identical
     to ~ axc11nfromc11 .  (Contributed by NM, 6-Jul-2021.)
     (Proof modification is discouraged.) $)
  axc11n11 $p |- ( A. x x = y -> A. y y = x ) $=
    ( weq wal axc11 pm2.43i equcomi sylg ) ABCZADZIBACBJIBDIABEFABGH $.

  ${
    $d x z $.  $d y z $.
    $( Proof of ~ axc11n from { ~ ax-1 -- ~ ax-7 , ~ axc9 , ~ axc11r } (note
       that ~ axc16 is provable from { ~ ax-1 -- ~ ax-7 , ~ axc11r }).

       Note that ~ axc11n proves (over minimal calculus) that ~ axc11 and
       ~ axc11r are equivalent.  Therefore, ~ axc11n11 and ~ axc11n11r prove
       that one can use one or the other as an axiom, provided one assumes the
       axioms listed above ( ~ axc11 appears slightly stronger since
       ~ axc11n11r requires ~ axc9 while ~ axc11n11 does not).

       (Contributed by BJ, 6-Jul-2021.)
       (Proof modification is discouraged.) $)
    axc11n11r $p |- ( A. x x = y -> A. y y = x ) $=
      ( vz weq wal wex wi equcomi axc16 syl5 spsd exlimiv wn alnex ax6evr 19.29
      wa mpan2 axc9 impcom axc11r syl9 aev syl8 ex com24 imp pm2.18 syl6 sylbir
      syl pm2.61i ) BCDBEZCFZABDZAEZBADZBEZGZUMUSCUMUOURAUOUQUMURABHUQBCIJKLUNM
      UMMZCEZUSUMCNVAUTACDZQZCFZUSVAVBCFVDCAOUTVBCPRVCUSCVCUPURMZURGZURUTVBUPVF
      GUTVEUPVBURUTVEUPVBURGGUTVEQZUPVBVBAEZURVGVBVBBEZUPVHVEUTVBVIGACBSTVBBAUA
      UBACBABUCUDUEUFUGURUHUILUKUJUL $.
  $}

  ${
    $d x y $.  $d z t $.
    $( Proof of ~ axc16g from { ~ ax-1 -- ~ ax-7 , ~ axc16 }.  (Contributed by
       BJ, 6-Jul-2021.)  (Proof modification is discouraged.) $)
    bj-axc16g16 $p |- ( A. x x = y -> ( ph -> A. z ph ) ) $=
      ( vt weq wal wi aevlem axc16 syl ) BCFBGDEFDGAADGHBCDEIADEJK $.
  $}

  ${
    $d y ph $.
    $( A weak version of ~ ax-12 which is stronger than ~ ax12v .  Note that if
       one assumes reflexivity of equality ` |- x = x ` ( ~ equid ), then
       ~ bj-ax12v3 implies ~ ax-5 over modal logic K (substitute ` x ` for
       ` y ` ).  See also ~ bj-ax12v3ALT .  (Contributed by BJ, 6-Jul-2021.) $)
    bj-ax12v3 $p |- ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) $=
      ( wal weq wi ax-5 ax12 syl5 ) AACDBCEZJAFBDACGABCHI $.

    $( Alternate proof of ~ bj-ax12v3 .  Uses ~ axc11r and ~ axc15 instead of
       ~ ax-12 .  (Contributed by BJ, 6-Jul-2021.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-ax12v3ALT $p |- ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) $=
      ( weq wal wi ax-5 axc11r ala1 syl56 a1d axc15 pm2.61i ) BCDZBEZNANAFBEZFZ
      FOQNAACEOABEPACGACBHANBIJKABCLM $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( A weak variant of ~ sbid2 not requiring ~ ax-13 nor ~ ax-10 .  On top of
       Tarski's FOL, one implication requires only ~ ax12v , and the other
       requires only ~ sp .  (Contributed by BJ, 25-May-2021.) $)
    bj-sb $p |- ( ph <-> A. y ( y = x -> A. x ( x = y -> ph ) ) ) $=
      ( weq wi wal ax12v equcoms com12 alrimiv a2i alimi bj-eqs sylibr impbii
      sp ) ACBDZBCDZAEZBFZEZCFZAUACQATATEBCABCGHIJUBQAEZCFAUAUCCQTATAEBCTRASBPI
      HKLACBMNO $.
  $}

  $( The predicate-calculus version of the axiom (B) of modal logic.  See also
     ~ modal-b .  (Contributed by BJ, 20-Oct-2019.) $)
  bj-modalbe $p |- ( ph -> A. x E. x ph ) $=
    ( wn wal wex modal-b df-ex biimpri sylg ) AACBDCZABEZBABFKJABGHI $.

  $( Closed form of ~ sps .  Once in main part, prove ~ sps and ~ spsd from it.
     (Contributed by BJ, 20-Oct-2019.) $)
  bj-spst $p |- ( ( ph -> ps ) -> ( A. x ph -> ps ) ) $=
    ( wal sp imim1i ) ACDABACEF $.

  $( Closed form of ~ 19.21bi .  (Contributed by BJ, 20-Oct-2019.) $)
  bj-19.21bit $p |- ( ( ph -> A. x ps ) -> ( ph -> ps ) ) $=
    ( wal sp imim2i ) BCDBABCEF $.

  $( Closed form of ~ 19.23bi .  (Contributed by BJ, 20-Oct-2019.) $)
  bj-19.23bit $p |- ( ( E. x ph -> ps ) -> ( ph -> ps ) ) $=
    ( wex 19.8a imim1i ) AACDBACEF $.

  $( Closed form of ~ nexr .  Contrapositive of ~ 19.8a .  (Contributed by BJ,
     20-Oct-2019.) $)
  bj-nexrt $p |- ( -. E. x ph -> -. ph ) $=
    ( wex 19.8a con3i ) AABCABDE $.

  $( Closed form of ~ alrimi .  (Contributed by BJ, 2-May-2019.) $)
  bj-alrim $p |- ( F/ x ph -> ( A. x ( ph -> ps ) -> ( ph -> A. x ps ) ) ) $=
    ( wnf wal wi nf5r sylgt syl5com ) ACDAACEFABFCEABCEFACGAABCHI $.

  $( Uncurried (imported) form of ~ bj-alrim .  (Contributed by BJ,
     2-May-2019.) $)
  bj-alrim2 $p |- ( ( F/ x ph /\ A. x ( ph -> ps ) ) -> ( ph -> A. x ps ) ) $=
    ( wnf wi wal bj-alrim imp ) ACDABECFABCFEABCGH $.

  $( A theorem close to a closed form of ~ nf5d and ~ nf5dh .  (Contributed by
     BJ, 2-May-2019.) $)
  bj-nfdt0 $p |- ( A. x ( ph -> ( ps -> A. x ps ) ) ->
                                ( A. x ph -> F/ x ps ) ) $=
    ( wal wi wnf alim nf5 syl6ibr ) ABBCDEZECDACDJCDBCFAJCGBCHI $.

  $( Closed form of ~ nf5d and ~ nf5dh .  (Contributed by BJ, 2-May-2019.) $)
  bj-nfdt $p |- ( A. x ( ph -> ( ps -> A. x ps ) ) ->
                                ( ( ph -> A. x ph ) -> ( ph -> F/ x ps ) ) ) $=
    ( wal wi wnf bj-nfdt0 imim2d ) ABBCDEECDACDBCFAABCGH $.

  $( Closed form of ~ nexd .  (Contributed by BJ, 20-Oct-2019.) $)
  bj-nexdt $p |- ( F/ x ph ->
                          ( A. x ( ph -> -. ps ) -> ( ph -> -. E. x ps ) ) ) $=
    ( wnf wal wi wn wex nf5r bj-nexdh syl5com ) ACDAACEFABGFCEABCHGFACIABACJK
    $.

  ${
    $d x ph $.
    $( Closed form of ~ nexdv .  (Contributed by BJ, 20-Oct-2019.) $)
    bj-nexdvt $p |- ( A. x ( ph -> -. ps ) -> ( ph -> -. E. x ps ) ) $=
      ( wnf wn wi wal wex nfv bj-nexdt ax-mp ) ACDABEFCGABCHEFFACIABCJK $.
  $}

  $( Closed form of ~ 19.3 .  (Contributed by BJ, 20-Oct-2019.) $)
  bj-19.3t $p |- ( ( ph -> A. x ph ) -> ( A. x ph <-> ph ) ) $=
    ( wal wi sp id impbid2 ) AABCZDZHAABEIFG $.

  $( Adding a second quantifier is a tranparent operation, ( ` A. E. ` case).
     (Contributed by BJ, 20-Oct-2019.) $)
  bj-alexbiex $p |- ( A. x E. x ph <-> E. x ph ) $=
    ( wex nfe1 19.3 ) ABCBABDE $.

  $( Adding a second quantifier is a tranparent operation, ( ` E. E. ` case).
     (Contributed by BJ, 20-Oct-2019.) $)
  bj-exexbiex $p |- ( E. x E. x ph <-> E. x ph ) $=
    ( wex nfe1 19.9 ) ABCBABDE $.

  $( Adding a second quantifier is a tranparent operation, ( ` A. A. ` case).
     (Contributed by BJ, 20-Oct-2019.) $)
  bj-alalbial $p |- ( A. x A. x ph <-> A. x ph ) $=
    ( wal nfa1 19.3 ) ABCBABDE $.

  $( Adding a second quantifier is a tranparent operation, ( ` E. A. ` case).
     (Contributed by BJ, 20-Oct-2019.) $)
  bj-exalbial $p |- ( E. x A. x ph <-> A. x ph ) $=
    ( wal nfa1 19.9 ) ABCBABDE $.

  $( Strengthening ~ 19.9ht by replacing its succedent with a biconditional
     ( ~ 19.9t does have a biconditional succedent).  This propagates.
     (Contributed by BJ, 20-Oct-2019.) $)
  bj-19.9htbi $p |- ( A. x ( ph -> A. x ph ) -> ( E. x ph <-> ph ) ) $=
    ( wal wi wex 19.9ht 19.8a impbid1 ) AABCDBCABEAABFABGH $.

  $( Strengthening ~ hbnt by replacing its succedent with a biconditional.  See
     also ~ hbntg and ~ hbntal .  (Contributed by BJ, 20-Oct-2019.)  Proved
     from ~ bj-19.9htbi .  (Proof modification is discouraged.) $)
  bj-hbntbi $p |- ( A. x ( ph -> A. x ph ) -> ( -. ph <-> A. x -. ph ) ) $=
    ( wal wi wn wex bj-19.9htbi bicomd notbid alnex syl6bbr ) AABCDBCZAEZABFZEM
    BCLANLNAABGHIABJK $.

  $( A general FOL biconditional that generalizes ~ 19.9ht among others.  For
     this and the following theorems, see also ~ 19.35 , ~ 19.21 , ~ 19.23 .
     (Contributed by BJ, 20-Oct-2019.) $)
  bj-biexal1 $p |- ( A. x ( ph -> A. x ps ) <-> ( E. x ph -> A. x ps ) ) $=
    ( wal nfa1 19.23 ) ABCDCBCEF $.

  $( A general FOL biconditional.  (Contributed by BJ, 20-Oct-2019.) $)
  bj-biexal2 $p |- ( A. x ( E. x ph -> ps ) <-> ( E. x ph -> A. x ps ) ) $=
    ( wex nfe1 19.21 ) ACDBCACEF $.

  $( A general FOL biconditional.  (Contributed by BJ, 20-Oct-2019.) $)
  bj-biexal3 $p |- ( A. x ( ph -> A. x ps ) <-> A. x ( E. x ph -> ps ) ) $=
    ( wal wi wex bj-biexal1 bj-biexal2 bitr4i ) ABCDZECDACFZJEKBECDABCGABCHI $.

  $( A general FOL biconditional.  (Contributed by BJ, 20-Oct-2019.) $)
  bj-bialal $p |- ( A. x ( A. x ph -> ps ) <-> ( A. x ph -> A. x ps ) ) $=
    ( wal nfa1 19.21 ) ACDBCACEF $.

  $( A general FOL biconditional.  (Contributed by BJ, 20-Oct-2019.) $)
  bj-biexex $p |- ( A. x ( ph -> E. x ps ) <-> ( E. x ph -> E. x ps ) ) $=
    ( wex nfe1 19.23 ) ABCDCBCEF $.

  $( Closed form of ~ hbex .  (Contributed by BJ, 10-Oct-2019.) $)
  bj-hbext $p |-
              ( A. y A. x ( ph -> A. x ph ) -> ( E. y ph -> A. x E. y ph ) ) $=
    ( wal wi wex nfa2 hbnt alimi bj-hbalt syl alrimi df-ex bicomi albii 3imtr3g
    wn ) AABDEZBDZCDZAQZCDZQZUCBDZACFZUEBDTUBUBBDEZBDUCUDETUFBRBCGTUAUABDEZCDUF
    SUGCABHIUABCJKLUBBHKUEUCACMNZUCUEBUHOP $.

  $( Closed form of ~ nfal .  (Contributed by BJ, 2-May-2019.) $)
  bj-nfalt $p |- ( A. x F/ y ph -> F/ y A. x ph ) $=
    ( wal wi wnf bj-hbalt alimi alcoms nf5 albii 3imtr4i ) AACDEZCDZBDABDZOCDEZ
    CDZACFZBDOCFMQCBMBDPCACBGHIRNBACJKOCJL $.

  $( Closed form of ~ nfex .  (Contributed by BJ, 10-Oct-2019.) $)
  bj-nfext $p |- ( A. x F/ y ph -> F/ y E. x ph ) $=
    ( wnf wal wex wi nf5 biimpi alimi nfa2 bj-hbext alrimi syl sylibr ) ACDZBEZ
    ABFZRCEGZCEZRCDQAACEGZCEZBEZTPUBBPUBACHIJUCSCUACBKACBLMNRCHO $.

  ${
    $d y ph $.  $d x ps $.  $d x y $.
    $( Version of ~ eeanv with a DV condition on ` x , y ` not requiring
       ~ ax-11 .  (The same can be done with ~ eeeanv and ~ ee4anv .)
       (Contributed by BJ, 29-Sep-2019.)
       (Proof modification is discouraged.) $)
    bj-eeanvw $p |- ( E. x E. y ( ph /\ ps ) <-> ( E. x ph /\ E. y ps ) ) $=
      ( wa wex 19.42v exbii 19.41v bitri ) ABEDFZCFABDFZEZCFACFLEKMCABDGHALCIJ
      $.
  $}

  $( Dual statement of ~ hba1 (which is modal-4 ).  (Contributed by BJ,
     21-Dec-2020.) $)
  bj-modal4e $p |- ( E. x E. x ph -> E. x ph ) $=
    ( wex wn wal hba1 alnex 2exnaln con2bii 3imtr3i con4i ) ABCZLBCZADZBEZOBEZL
    DMDNBFABGMPABBHIJK $.

  $( A short form of the axiom B of modal logic.  (Contributed by BJ,
     4-Apr-2021.) $)
  bj-modalb $p |- ( -. ph -> A. x -. A. x ph ) $=
    ( wal wn axc7 con1i ) ABCDBCAABEF $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Really adding ax-12
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  The results in the previous section, as actually many theorems of the main
  part using ~ ax-12 , actually only require ~ sp (which is proved using
  ~ ax-12 ).

$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Adding ax-13
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Alternate (shorter) proof of ~ axc10 .  One can prove a version with
     DV(x,y) without ~ ax-13 , by using ~ ax6ev instead of ~ ax6e .
     (Contributed by BJ, 31-Mar-2021.)  (Proof modification is discouraged.) $)
  bj-axc10 $p |- ( A. x ( x = y -> A. x ph ) -> ph ) $=
    ( weq wal wi wex ax6e exim mpi axc7e syl ) BCDZABEZFBEZNBGZAOMBGPBCHMNBIJAB
    KL $.

  $( A fol lemma.  See ~ bj-alequexv for a version with a DV condition
     requiring fewer axioms.  Can be used to reduce the proof of ~ spimt from
     133 to 112 bytes.  (Contributed by BJ, 6-Oct-2018.) $)
  bj-alequex $p |- ( A. x ( x = y -> ph ) -> E. x ph ) $=
    ( weq wi wal wex ax6e exim mpi ) BCDZAEBFKBGABGBCHKABIJ $.

  $( A step in the proof of ~ spimt .  (Contributed by BJ, 2-May-2019.) $)
  bj-spimt2 $p |- ( A. x ( x = y -> ( ph -> ps ) ) ->
                                ( ( E. x ps -> ps ) -> ( A. x ph -> ps ) ) ) $=
    ( weq wi wal wex bj-alequex 19.35 sylib imim1d ) CDEABFZFCGZACGZBCHZBNMCHOP
    FMCDIABCJKL $.

  $( Closed form of ~ cbv3 .  (Contributed by BJ, 2-May-2019.) $)
  bj-cbv3ta $p |- ( A. x A. y ( x = y -> ( ph -> ps ) ) ->
                    ( ( A. y ( E. x ps -> ps ) /\ A. x ( ph -> A. y ph ) ) ->
                                                  ( A. x ph -> A. y ps ) ) ) $=
    ( weq wi wex wal bj-spimt2 imp alanimi bj-hbalt sylgt syl2im expimpd alcoms
    wa ) CDEABFFZBCGBFZDHZAADHFCHZQACHZBDHFZFDCRCHZDHZTUAUCUETQUBBFZDHUAUBUBDHF
    UCUDSUFDUDSUFABCDIJKADCLUBUBBDMNOP $.

  $( Closed form of ~ cbv3 .  (Contributed by BJ, 2-May-2019.) $)
  bj-cbv3tb $p |- ( A. x A. y ( x = y -> ( ph -> ps ) ) ->
      ( ( A. y F/ x ps /\ A. x F/ y ph ) -> ( A. x ph -> A. y ps ) ) ) $=
    ( wnf wal weq wi wex 19.9t biimpd alimi nf5r bj-cbv3ta syl2ani ) BCEZDFCDGA
    BHHDFCFBCIZBHZDFAADFHZCFACFBDFHADEZCFPRDPQBBCJKLTSCADMLABCDNO $.

  $( A theorem close to a closed form of ~ hbsb3 .  (Contributed by BJ,
     2-May-2019.) $)
  bj-hbsb3t $p |- ( A. x ( ph -> A. y ph ) ->
                                     ( [ y / x ] ph -> A. x [ y / x ] ph ) ) $=
    ( wal wi wsb spsbim hbsb2a syl6 ) AACDZEBDABCFZJBCFKBDAJBCGABCHI $.

  ${
    bj-hbsb3.1 $e |- ( ph -> A. y ph ) $.
    $( Shorter proof of ~ hbsb3 .  (Contributed by BJ, 2-May-2019.)
       (Proof modification is discouraged.) $)
    bj-hbsb3 $p |- ( [ y / x ] ph -> A. x [ y / x ] ph ) $=
      ( wal wi wsb bj-hbsb3t mpg ) AACEFABCGZJBEFBABCHDI $.
  $}

  $( A theorem close to a closed form of ~ nfs1 .  (Contributed by BJ,
     2-May-2019.) $)
  bj-nfs1t $p |- ( A. x ( ph -> A. y ph ) -> F/ x [ y / x ] ph ) $=
    ( wal wi wsb wnf bj-hbsb3t axc4i nf5 sylibr ) AACDEZBDABCFZMBDEZBDMBGLNBABC
    HIMBJK $.

  $( A theorem close to a closed form of ~ nfs1 .  (Contributed by BJ,
     2-May-2019.) $)
  bj-nfs1t2 $p |- ( A. x F/ y ph -> F/ x [ y / x ] ph ) $=
    ( wnf wal wi wsb nf5r alimi bj-nfs1t syl ) ACDZBEAACEFZBEABCGBDLMBACHIABCJK
    $.

  ${
    bj-nfs1.nf $e |- F/ y ph $.
    $( Shorter proof of ~ nfs1 (three essential steps instead of four).
       (Contributed by BJ, 2-May-2019.)
       (Proof modification is discouraged.) $)
    bj-nfs1 $p |- F/ x [ y / x ] ph $=
      ( wnf wsb bj-nfs1t2 mpg ) ACEABCFBEBABCGDH $.
  $}

  $( Goal: closed form of sb8, but first need closed form of cbval.
     Rk: The equality may be a hypothesis.

     TODO: prove sb8v with fewer axioms than ~ sb8 ; use it for ~ abtrubi .)
  $)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Removing dependencies on ax-13 (and ax-11)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  It is known that ~ ax-13 is logically redundant (see ~ ax13w and the head
  comment of the section "Logical redundancy of ax-10--13").  More precisely,
  one can remove dependency on ~ ax-13 from every theorem in set.mm which is
  totally unbundled (i.e., has dv conditions on all setvar variables).  Indeed,
  start with the existing proof, and replace any occurrence of ~ ax-13 with
  ~ ax13w .

  This section is an experiment to see in practice if (partially) unbundled
  versions of existing theorems can be proved more efficiently without ~ ax-13
  (and using ~ ax6v / ~ ax6ev instead of ~ ax-6 / ~ ax6e , as is currently
  done).

  One reason to be optimistic is that the first few utility theorems using
  ~ ax-13 (roughly 200 of them) are then used mainly with dummy variables,
  which one can assume distinct from any other, so that the unbundled versions
  of the utility theorems suffice.

  In this section, we prove versions of theorems in the main part with dv
  conditions and not requiring ~ ax-13 , labeled bj-xxxv (we follow the proof
  of xxx but use ~ ax6v and ~ ax6ev instead of ~ ax-6 and ~ ax6e , and ~ ax-5
  instead of ~ ax13v ; shorter proofs may be possible).  When no additional dv
  condition is required, we label it bj-xxx.

  It is important to keep all the bundled theorems already in set.mm, but one
  may also add the (partially) unbundled versions which dipense with ~ ax-13 ,
  so as to remove dependencies on ~ ax-13 from many existing theorems.

  UPDATE: it turns out that several theorems of the form bj-xxxv, or minor
  variations, are already in set.mm with label xxxw.

  It is also possible to remove dependencies on ~ ax-11 , typically by
  replacing a non-free hypothesis with a dv condition (see ~ bj-cbv3v2 and
  following theorems).

$)

  ${
    $d x y $.
    $( Version of ~ axc10 with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 14-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-axc10v $p |- ( A. x ( x = y -> A. x ph ) -> ph ) $=
      ( weq wal wi wn ax6v con3 al2imi mtoi axc7 syl ) BCDZABEZFZBEZOGZBEZGAQSN
      GZBEBCHPRTBNOIJKABLM $.
  $}

  ${
    $d x y $.
    $( Version of ~ spimt with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 14-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-spimtv $p |- ( ( F/ x ps /\ A. x ( x = y -> ( ph -> ps ) ) ) ->
                                                         ( A. x ph -> ps ) ) $=
      ( weq wi wal wex wnf ax6ev exim mpi 19.35 sylib 19.9t biimpd sylan9r ) CD
      EZABFZFCGZACGZBCHZBCIZBTSCHZUAUBFTRCHUDCDJRSCKLABCMNUCUBBBCOPQ $.
  $}

  ${
    $d x y $.
    bj-spimedv.1 $e |- ( ch -> F/ x ph ) $.
    bj-spimedv.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Version of ~ spimed with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-spimedv $p |- ( ch -> ( ph -> E. x ps ) ) $=
      ( wal wex nf5rd weq wi ax6ev eximii 19.35i syl6 ) CAADHBDICADFJABDDEKABLD
      DEMGNOP $.
  $}

  ${
    $d x y $.
    bj-spimev.1 $e |- F/ x ph $.
    bj-spimev.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Version of ~ spime with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-spimev $p |- ( ph -> E. x ps ) $=
      ( wex wi wtru wnf a1i bj-spimedv trud ) ABCGHABICDACJIEKFLM $.
  $}

  ${
    $d x y $.  $d x ps $.
    bj-spimvv.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Version of ~ spimv and ~ spimv1 with a dv condition, which does not
       require ~ ax-13 .  UPDATE: this is ~ spimvw .  (Contributed by BJ,
       31-May-2019.)  (Proof modification is discouraged.) $)
    bj-spimvv $p |- ( A. x ph -> ps ) $=
      ( weq wi ax6ev eximii 19.36iv ) ABCCDFABGCCDHEIJ $.
  $}

  ${
    $d x y $.  $d x ph $.
    bj-spimevv.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Version of ~ spimev with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-spimevv $p |- ( ph -> E. x ps ) $=
      ( nfv bj-spimev ) ABCDACFEG $.
  $}

  ${
    $d x y $.  $d x ps $.
    bj-spvv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Version of ~ spv with a dv condition, which does not require ~ ax-7 ,
       ~ ax-12 , ~ ax-13 .  (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-spvv $p |- ( A. x ph -> ps ) $=
      ( weq biimpd bj-spimvv ) ABCDCDFABEGH $.
  $}

  ${
    $d x y $.
    bj-speiv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    bj-speiv.2 $e |- ps $.
    $( Version of ~ spei with a dv condition, which does not require ~ ax-13
       (neither ~ ax-7 nor ~ ax-12 ).  (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-speiv $p |- E. x ph $=
      ( weq ax6ev mpbiri eximii ) CDGZACCDHKABFEIJ $.
  $}

  ${
    $d x y $.
    bj-chvarv.nf $e |- F/ x ps $.
    bj-chvarv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    bj-chvarv.2 $e |- ph $.
    $( Version of ~ chvar with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-chvarv $p |- ps $=
      ( weq biimpd spimv1 mpg ) ABCABCDECDHABFIJGK $.
  $}

  ${
    $d x y $.  $d x ps $.
    bj-chvarvv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    bj-chvarvv.2 $e |- ph $.
    $( Version of ~ chvarv with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-chvarvv $p |- ps $=
      ( bj-spvv mpg ) ABCABCDEGFH $.
  $}

  ${
    $d x y $.  $d y ph $.
    bj-cbv3v2.nf $e |- F/ x ps $.
    bj-cbv3v2.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Version of ~ cbv3 with two dv conditions, which does not require ~ ax-11
       nor ~ ax-13 .  (Contributed by BJ, 24-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbv3v2 $p |- ( A. x ph -> A. y ps ) $=
      ( wal nfv spimv1 alrimi ) ACGZBDKDHABCDEFIJ $.
  $}

  ${
    $d x y $.  $d y ph $.
    bj-cbv3hv2.nf $e |- ( ps -> A. x ps ) $.
    bj-cbv3hv2.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Version of ~ cbv3h with two dv conditions, which does not require
       ~ ax-11 nor ~ ax-13 .  (Contributed by BJ, 24-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbv3hv2 $p |- ( A. x ph -> A. y ps ) $=
      ( nf5i bj-cbv3v2 ) ABCDBCEGFH $.
  $}

  ${
    $d x y $.
    bj-cbv1v.1 $e |- F/ x ph $.
    bj-cbv1v.2 $e |- F/ y ph $.
    bj-cbv1v.3 $e |- ( ph -> F/ y ps ) $.
    bj-cbv1v.4 $e |- ( ph -> F/ x ch ) $.
    bj-cbv1v.5 $e |- ( ph -> ( x = y -> ( ps -> ch ) ) ) $.
    $( Version of ~ cbv1 with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbv1v $p |- ( ph -> ( A. x ps -> A. y ch ) ) $=
      ( wal wi nfim1 weq com12 a2d cbv3v 19.21 3imtr3i pm2.86i ) ABDKZCEKZABLZD
      KACLZEKAUALAUBLUCUDDEABEGHMACDFIMDENZABCAUEBCLJOPQABDFRACEGRST $.
  $}

  ${
    $d x y $.
    bj-cbv1hv.1 $e |- ( ph -> ( ps -> A. y ps ) ) $.
    bj-cbv1hv.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    bj-cbv1hv.3 $e |- ( ph -> ( x = y -> ( ps -> ch ) ) ) $.
    $( Version of ~ cbv1h with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbv1hv $p |- ( A. x A. y ph -> ( A. x ps -> A. y ch ) ) $=
      ( wal nfa1 nfa2 wi 2sp syl nf5d weq bj-cbv1v ) AEIZDIZBCDERDJZAEDKZSBEUAS
      ABBEILADEMZFNOSCDTSACCDILUBGNOSADEPBCLLUBHNQ $.
  $}

  ${
    $d x y $.
    bj-cbv2hv.1 $e |- ( ph -> ( ps -> A. y ps ) ) $.
    bj-cbv2hv.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    bj-cbv2hv.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Version of ~ cbv2h with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbv2hv $p |- ( A. x A. y ph -> ( A. x ps <-> A. y ch ) ) $=
      ( wal weq wb wi biimp syl6 bj-cbv1hv equcomi biimpr syl56 alcoms impbid )
      AEIDIBDIZCEIZABCDEFGADEJZBCKZBCLHBCMNOAUBUALEDACBEDGFEDJUCAUDCBLEDPHBCQRO
      ST $.
  $}

  ${
    $d x y $.
    bj-cbv2v.1 $e |- F/ x ph $.
    bj-cbv2v.2 $e |- F/ y ph $.
    bj-cbv2v.3 $e |- ( ph -> F/ y ps ) $.
    bj-cbv2v.4 $e |- ( ph -> F/ x ch ) $.
    bj-cbv2v.5 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Version of ~ cbv2 with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbv2v $p |- ( ph -> ( A. x ps <-> A. y ch ) ) $=
      ( wal wb nf5ri nfal syl nf5rd bj-cbv2hv ) AAEKZDKZBDKCEKLARSAEGMRDADEFNMO
      ABCDEABEHPACDIPJQO $.
  $}

  ${
    $d x y $.  $d y ph $.  $d x ps $.
    bj-cbvalvv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Version of ~ cbvalv with a dv condition, which does not require
       ~ ax-13 .  UPDATE: this is ~ cbvalvw (which is proved with fewer
       axioms).  (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-cbvalvv $p |- ( A. x ph <-> A. y ps ) $=
      ( nfv cbvalv1 ) ABCDADFBCFEG $.

    $( Version of ~ cbvexv with a dv condition, which does not require
       ~ ax-13 .  UPDATE: this is ~ cbvexvw (which is proved with fewer
       axioms).  (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-cbvexvv $p |- ( E. x ph <-> E. y ps ) $=
      ( nfv cbvexv1 ) ABCDADFBCFEG $.
  $}

  ${
    $d x y $.  $d x ph $.  $d x ch $.
    bj-cbvaldv.1 $e |- F/ y ph $.
    bj-cbvaldv.2 $e |- ( ph -> F/ y ps ) $.
    bj-cbvaldv.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Version of ~ cbvald with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbvaldv $p |- ( ph -> ( A. x ps <-> A. y ch ) ) $=
      ( nfv wnf a1i bj-cbv2v ) ABCDEADIFGCDJACDIKHL $.

    $( Version of ~ cbvexd with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbvexdv $p |- ( ph -> ( E. x ps <-> E. y ch ) ) $=
      ( wn wal wex nfnd weq wb notbi syl6ib bj-cbvaldv notbid df-ex 3bitr4g ) A
      BIZDJZICIZEJZIBDKCEKAUBUDAUAUCDEFABEGLADEMBCNUAUCNHBCOPQRBDSCEST $.
  $}

  ${
    $d x y z w $.
    bj-cbval2v.1 $e |- F/ z ph $.
    bj-cbval2v.2 $e |- F/ w ph $.
    bj-cbval2v.3 $e |- F/ x ps $.
    bj-cbval2v.4 $e |- F/ y ps $.
    bj-cbval2v.5 $e |- ( ( x = z /\ y = w ) -> ( ph <-> ps ) ) $.
    $( Version of ~ cbval2 with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbval2v $p |- ( A. x A. y ph <-> A. z A. w ps ) $=
      ( wal nfal weq wi nfv nfim wb cbvalv1 19.21v pm5.74d 3bitr3i pm5.74ri
      expcom ) ADLZBFLZCEAEDGMBCFIMCENZUEUFUGAOZDLUGBOZFLUGUEOUGUFOUHUIDFUGAFUG
      FPHQUGBDUGDPJQDFNZUGABUGUJABRKUDUASUGADTUGBFTUBUCS $.

    $( Version of ~ cbvex2 with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbvex2v $p |- ( E. x E. y ph <-> E. z E. w ps ) $=
      ( wn wal wex nfn weq wa notbid bj-cbval2v 2exnaln notbii 3bitr4i ) ALZDMC
      MZLBLZFMEMZLADNCNBFNENUDUFUCUECDEFAEGOAFHOBCIOBDJOCEPDFPQABKRSUAACDTBEFTU
      B $.
  $}

  ${
    $d z w ph $.  $d x y ps $.  $d x y z w $.
    bj-cbval2vv.1 $e |- ( ( x = z /\ y = w ) -> ( ph <-> ps ) ) $.
    $( Version of ~ cbval2v with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbval2vv $p |- ( A. x A. y ph <-> A. z A. w ps ) $=
      ( nfv bj-cbval2v ) ABCDEFAEHAFHBCHBDHGI $.

    $( Version of ~ cbvex2v with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbvex2vv $p |- ( E. x E. y ph <-> E. z E. w ps ) $=
      ( nfv bj-cbvex2v ) ABCDEFAEHAFHBCHBDHGI $.
  $}

  ${
    $d ps y $.  $d ch x $.  $d ph x y $.
    bj-cbvaldvav.1 $e |- ( ( ph /\ x = y ) -> ( ps <-> ch ) ) $.
    $( Version of ~ cbvaldva with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbvaldvav $p |- ( ph -> ( A. x ps <-> A. y ch ) ) $=
      ( nfv nfvd weq wb ex bj-cbvaldv ) ABCDEAEGABEHADEIBCJFKL $.

    $( Version of ~ cbvexdva with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbvexdvav $p |- ( ph -> ( E. x ps <-> E. y ch ) ) $=
      ( nfv nfvd weq wb ex bj-cbvexdv ) ABCDEAEGABEHADEIBCJFKL $.
  $}

  ${
    $d w z ch $.  $d u v ph $.  $d x y ps $.  $d f g ps $.  $d z w f g $.
    $d u v w x y z $.
    bj-cbvex4vv.1 $e |- ( ( x = v /\ y = u ) -> ( ph <-> ps ) ) $.
    bj-cbvex4vv.2 $e |- ( ( z = f /\ w = g ) -> ( ps <-> ch ) ) $.
    $( Version of ~ cbvex4v with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cbvex4vv $p |- ( E. x E. y E. z E. w ph <-> E. v E. u E. f E. g ch ) $=
      ( wex weq wa 2exbidv bj-cbvex2vv 2exbii bitri ) AGNFNZENDNBGNFNZINHNCKNJN
      ZINHNUAUBDEHIDHOEIOPABFGLQRUBUCHIBCFGJKMRST $.
  $}

  ${
    $d x y $.
    bj-equsalhv.nf $e |- ( ps -> A. x ps ) $.
    bj-equsalhv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Version of ~ equsalh with a dv condition, which does not require
       ~ ax-13 .  Remark: this is the same as ~ equsalhw .

       Remarks: ~ equsexvw has been moved to Main; the theorem ~ ax13lem2 has a
       dv version which is a simple consequence of ~ ax5e ; the theorems
       ~ nfeqf2 , ~ dveeq2 , ~ nfeqf1 , ~ dveeq1 , ~ nfeqf , ~ axc9 , ~ ax13 ,
       have dv versions which are simple consequences of ~ ax-5 .  (Contributed
       by BJ, 14-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-equsalhv $p |- ( A. x ( x = y -> ph ) <-> ps ) $=
      ( nf5i equsalv ) ABCDBCEGFH $.
  $}

  ${
    $d x y $.
    $( Version of ~ axc11n with a dv condition; instance of ~ aevlem .
       (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-axc11nv $p |- ( A. x x = y -> A. y y = x ) $=
      ( aevlem ) ABBAC $.
  $}

  ${
    $d x y $.
    bj-aecomsv.1 $e |- ( A. x x = y -> ph ) $.
    $( Version of ~ aecoms with a dv condition, provable from Tarski's FOL. The
       corresponding version of ~ naecoms should not be very useful since
       ` -. A. x x = y ` , DV(x, y) is true when the universe has at least two
       objects (see ~ bj-dtru ).  (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-aecomsv $p |- ( A. y y = x -> ph ) $=
      ( weq wal bj-axc11nv syl ) CBECFBCEBFACBGDH $.
  $}

  ${
    $d x y $.
    $( Version of ~ axc11 with a dv condition, which does not require ~ ax-13
       nor ~ ax-10 .  Remark: the following theorems ( ~ hbae , ~ nfae ,
       ~ hbnae , ~ nfnae , ~ hbnaes ) would need to be totally unbundled to be
       proved without ~ ax-13 , hence would be simple consequences of ~ ax-5 or
       ~ nfv .  (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-axc11v $p |- ( A. x x = y -> ( A. x ph -> A. y ph ) ) $=
      ( wal wi axc11r bj-aecomsv ) ABDACDECBABCFG $.
  $}

  ${
    $d x y $.
    bj-dral1v.1 $e |- ( A. x x = y -> ( ph <-> ps ) ) $.
    $( Version of ~ dral1 with a dv condition, which does not require ~ ax-13 .
       Remark: the corresponding versions for ~ dral2 and ~ drex2 are instances
       of ~ albidv and ~ exbidv respectively.  (Contributed by BJ,
       17-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-dral1v $p |- ( A. x x = y -> ( A. x ph <-> A. y ps ) ) $=
      ( weq wal nfa1 albid bj-axc11v axc11r impbid bitrd ) CDFZCGZACGBCGZBDGZOA
      BCNCHEIOPQBCDJBDCKLM $.
  $}

  ${
    $d x y $.
    bj-drex1v.1 $e |- ( A. x x = y -> ( ph <-> ps ) ) $.
    $( Version of ~ drex1 with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 17-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-drex1v $p |- ( A. x x = y -> ( E. x ph <-> E. y ps ) ) $=
      ( weq wal wn wex notbid bj-dral1v df-ex 3bitr4g ) CDFCGZAHZCGZHBHZDGZHACI
      BDINPROQCDNABEJKJACLBDLM $.
  $}

  ${
    $d x y $.
    bj-drnf1v.1 $e |- ( A. x x = y -> ( ph <-> ps ) ) $.
    $( Version of ~ drnf1 with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 17-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-drnf1v $p |- ( A. x x = y -> ( F/ x ph <-> F/ y ps ) ) $=
      ( weq wal wi wnf bj-dral1v imbi12d nf5 3bitr4g ) CDFCGZAACGZHZCGBBDGZHZDG
      ACIBDIPRCDNABOQEABCDEJKJACLBDLM $.
  $}

  ${
    $d x y z $.
    bj-drnf2v.1 $e |- ( A. x x = y -> ( ph <-> ps ) ) $.
    $( Version of ~ drnf2 with a dv condition, which does not require ~ ax-13 .
       Could be labeled "nfbidv".  Note that the version of ~ axc15 with a dv
       condition is actually ~ ax12v2 (up to adding a superfluous antecedent).
       (Contributed by BJ, 17-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-drnf2v $p |- ( A. x x = y -> ( F/ z ph <-> F/ z ps ) ) $=
      ( weq wal nfv nfbidf ) CDGCHZABEKEIFJ $.
  $}

  ${
    $d x y $.
    bj-equs45fv.1 $e |- F/ y ph $.
    $( Version of ~ equs45f with a dv condition, which does not require
       ~ ax-13 .  Note that the version of ~ equs5 with a dv condition is
       actually ~ sb56 (up to adding a superfluous antecedent).  (Contributed
       by BJ, 11-Sep-2019.)  (Proof modification is discouraged.) $)
    bj-equs45fv $p |- ( E. x ( x = y /\ ph ) <-> A. x ( x = y -> ph ) ) $=
      ( weq wa wex wi wal nf5ri anim2i eximi equs5a syl equs4v impbii ) BCEZAFZ
      BGZQAHBIZSQACIZFZBGTRUBBAUAQACDJKLABCMNABCOP $.
  $}

  ${
    $d x y $.
    $( Version of ~ sb2 with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-sb2v $p |- ( A. x ( x = y -> ph ) -> [ y / x ] ph ) $=
      ( weq wi wal wa wex wsb sp equs4v df-sb sylanbrc ) BCDZAEZBFONAGBHABCIOBJ
      ABCKABCLM $.
  $}

  ${
    $d x y $.
    $( Version of ~ stdpc4 with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-stdpc4v $p |- ( A. x ph -> [ y / x ] ph ) $=
      ( wal weq wi wsb ax-1 alimi bj-sb2v syl ) ABDBCEZAFZBDABCGAMBALHIABCJK $.
  $}

  ${
    $d x z $.  $d y w $.
    $( Version of ~ 2stdpc4 with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 24-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-2stdpc4v $p |- ( A. x A. y ph -> [ z / x ] [ w / y ] ph ) $=
      ( wal wsb bj-stdpc4v alimi syl ) ACFZBFACEGZBFLBDGKLBACEHILBDHJ $.
  $}

  ${
    $d x y $.
    $( Version of ~ sb3 with a dv condition, which does not require ~ ax-13 .
       This allows to remove ~ ax-13 from ~ sb5 (see ~ bj-sb5 ).  (Contributed
       by BJ, 24-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-sb3v $p |- ( E. x ( x = y /\ ph ) -> [ y / x ] ph ) $=
      ( weq wa wex wi wal wsb sb56 bj-sb2v sylbi ) BCDZAEBFMAGBHABCIABCJABCKL
      $.
  $}

  ${
    $d x y $.
    $( Version of ~ sb4 with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 23-Jun-2019.)  Together with ~ bj-sb2v , this allosw
       to remove ~ ax-13 from ~ sb6 (see ~ bj-sb6 ).  Note that this subsumes
       the version of ~ sb4b with a dv condition.
       (Proof modification is discouraged.) $)
    bj-sb4v $p |- ( [ y / x ] ph -> A. x ( x = y -> ph ) ) $=
      ( wsb weq wa wex wi wal sb1 sb56 sylib ) ABCDBCEZAFBGMAHBIABCJABCKL $.
  $}

  ${
    $d x y $.
    $( Version of ~ hbsb2 with a dv condition, which does not require ~ ax-13 ,
       and removal of ~ ax-13 from ~ hbs1 .  (Contributed by BJ, 23-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-hbs1 $p |- ( [ y / x ] ph -> A. x [ y / x ] ph ) $=
      ( wsb weq wi wal bj-sb4v bj-sb2v axc4i syl ) ABCDZBCEAFZBGLBGABCHMLBABCIJ
      K $.
  $}

  ${
    $d x y $.
    $( Version of ~ nfsb2 with a dv condition, which does not require ~ ax-13 ,
       and removal of ~ ax-13 from ~ nfs1v .  (Contributed by BJ, 24-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-nfs1v $p |- F/ x [ y / x ] ph $=
      ( wsb bj-hbs1 nf5i ) ABCDBABCEF $.
  $}

  ${
    $d x y $.
    $( Version of ~ hbsb2a with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 11-Sep-2019.)
       (Proof modification is discouraged.) $)
    bj-hbsb2av $p |- ( [ y / x ] A. y ph -> A. x [ y / x ] ph ) $=
      ( wal wsb weq wi sb4a bj-sb2v axc4i syl ) ACDBCEBCFAGZBDABCEZBDABCHLMBABC
      IJK $.
  $}

  ${
    $d x y $.
    bj-hbsb3v.1 $e |- ( ph -> A. y ph ) $.
    $( Version of ~ hbsb3 with a dv condition, which does not require ~ ax-13 .
       (Remark: the unbundled version of ~ nfs1 is given by ~ bj-nfs1v .)
       (Contributed by BJ, 11-Sep-2019.)
       (Proof modification is discouraged.) $)
    bj-hbsb3v $p |- ( [ y / x ] ph -> A. x [ y / x ] ph ) $=
      ( wsb wal sbimi bj-hbsb2av syl ) ABCEZACFZBCEJBFAKBCDGABCHI $.
  $}

  ${
    $d x y $.
    $( Version of ~ equsb1 with a dv condition, which does not require
       ~ ax-13 .  (Contributed by BJ, 11-Sep-2019.)
       (Proof modification is discouraged.) $)
    bj-equsb1v $p |- [ y / x ] x = y $=
      ( weq wi wsb bj-sb2v id mpg ) ABCZIDIABEAIABFIGH $.
  $}

  ${
    $d x y $.
    $( Version of ~ sbft with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-sbftv $p |- ( F/ x ph -> ( [ y / x ] ph <-> ph ) ) $=
      ( wnf wsb wex spsbe 19.9t syl5ib wal nf5r bj-stdpc4v syl6 impbid ) ABDZAB
      CEZAPABFOAABCGABHIOAABJPABKABCLMN $.
  $}

  ${
    $d x y $.
    bj-sbfv.1 $e |- F/ x ph $.
    $( Version of ~ sbf with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-sbfv $p |- ( [ y / x ] ph <-> ph ) $=
      ( wnf wsb wb bj-sbftv ax-mp ) ABEABCFAGDABCHI $.
  $}

  ${
    $d x y $.  $d x ph $.
    $( Version of ~ sbf with two dv conditions, which does not require ~ ax-10
       nor ~ ax-13 .  (Contributed by BJ, 1-May-2021.)
       (Proof modification is discouraged.) $)
    bj-sbfvv $p |- ( [ y / x ] ph <-> ph ) $=
      ( wsb wex spsbe 19.9v sylib wal ax-5 bj-stdpc4v syl impbii ) ABCDZANABEAA
      BCFABGHAABINABJABCKLM $.
  $}

  ${
    $d x y $.
    bj-sbtv.1 $e |- ph $.
    $( Version of ~ sbt with a dv condition, which does not require ~ ax-13 .
       (Contributed by BJ, 31-May-2019.)
       (Proof modification is discouraged.) $)
    bj-sbtv $p |- [ y / x ] ph $=
      ( wsb bj-stdpc4v mpg ) AABCEBABCFDG $.
  $}

  ${
    $d x y $.
    $( Remove dependency on ~ ax-13 from ~ sb6 .  (Contributed by BJ,
       11-Sep-2019.)  (Proof modification is discouraged.) $)
    bj-sb6 $p |- ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) $=
      ( wsb weq wi wal wa wex sb1 sb56 sylib bj-sb2v impbii ) ABCDZBCEZAFBGZOPA
      HBIQABCJABCKLABCMN $.
  $}

  ${
    $d x y $.
    $( Remove dependency on ~ ax-13 from ~ sb5 .  (Contributed by BJ,
       11-Sep-2019.)  (Proof modification is discouraged.) $)
    bj-sb5 $p |- ( [ y / x ] ph <-> E. x ( x = y /\ ph ) ) $=
      ( wsb weq wi wal wa wex bj-sb6 sb56 bitr4i ) ABCDBCEZAFBGMAHBIABCJABCKL
      $.
  $}

  ${
    $d z x w $.  $d z y w $.
    $( Remove dependency on ~ ax-13 from ~ axext3 .  (Contributed by BJ,
       12-Jul-2019.)  (Proof modification is discouraged.) $)
    bj-axext3 $p |- ( A. z ( z e. x <-> z e. y ) -> x = y ) $=
      ( vw wel wb wal wi elequ2 bibi1d albidv equequ1 imbi12d ax-ext bj-chvarvv
      weq ) CDEZCBEZFZCGZDBPZHCAEZRFZCGZABPZHDADAPZTUDUAUEUFSUCCUFQUBRDACIJKDAB
      LMDBCNO $.

    $( Remove dependency on ~ ax-13 from ~ axext4 .  (Contributed by BJ,
       6-Oct-2019.)  (Proof modification is discouraged.) $)
    bj-axext4 $p |- ( x = y <-> A. z ( z e. x <-> z e. y ) ) $=
      ( weq wel wb wal bj-elequ2g bj-axext3 impbii ) ABDCAECBEFCGABCHABCIJ $.
  $}

  ${
    $d x y $.
    $( Remove dependency on ~ ax-13 from ~ hbab1 .  (Contributed by BJ,
       23-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-hbab1 $p |- ( y e. { x | ph } -> A. x y e. { x | ph } ) $=
      ( cv cab wcel wsb df-clab bj-hbs1 hbxfrbi ) CDABEFABCGBACBHABCIJ $.
  $}

  ${
    $d x y $.
    $( Remove dependency on ~ ax-13 from ~ nfsab1 .  (Contributed by BJ,
       23-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-nfsab1 $p |- F/ x y e. { x | ph } $=
      ( cv cab wcel bj-hbab1 nf5i ) CDABEFBABCGH $.
  $}

  ${
    $d x A y $.  $d ph y $.
    $( Remove dependency on ~ ax-13 from ~ abeq2 .  (Contributed by BJ,
       23-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-abeq2 $p |- ( A = { x | ph } <-> A. x ( x e. A <-> ph ) ) $=
      ( vy cab wceq cv wcel wb wal ax-5 bj-hbab1 cleqh abid bibi2i albii bitri
      ) CABEZFBGZCHZSRHZIZBJTAIZBJBDCRDGCHBKABDLMUBUCBUAATABNOPQ $.
  $}

  ${
    $d x A $.
    $( Remove dependency on ~ ax-13 from ~ abeq1 .  Remark: the theorems
       ~ abeq2i , ~ abeq1i , ~ abeq2d do not use ~ ax-11 or ~ ax-13 .
       (Contributed by BJ, 23-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-abeq1 $p |- ( { x | ph } = A <-> A. x ( ph <-> x e. A ) ) $=
      ( cab wceq cv wcel wb wal bj-abeq2 eqcom bicom albii 3bitr4i ) CABDZEBFCG
      ZAHZBIOCEAPHZBIABCJOCKRQBAPLMN $.
  $}

  ${
    $d ph y $.  $d ps y $.  $d x y $.
    $( Remove dependency on ~ ax-13 from ~ abbi .  (Contributed by BJ,
       23-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-abbi $p |- ( A. x ( ph <-> ps ) <-> { x | ph } = { x | ps } ) $=
      ( vy cab wceq wcel wal dfcleq bj-nfsab1 nfbi nfv weq wsb df-clab sbequ12r
      cv wb syl5bb bibi12d cbvalv1 bitr2i ) ACEZBCEZFDQZUCGZUEUDGZRZDHABRZCHDUC
      UDIUHUIDCUFUGCACDJBCDJKUIDLDCMZUFAUGBUFACDNUJAADCOADCPSUGBCDNUJBBDCOBDCPS
      TUAUB $.
  $}

  ${
    $d x A $.
    bj-abbi2i.1 $e |- ( x e. A <-> ph ) $.
    $( Remove dependency on ~ ax-13 from ~ abbi2i .  (Contributed by BJ,
       23-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-abbi2i $p |- A = { x | ph } $=
      ( cab wceq cv wcel wb bj-abeq2 mpgbir ) CABEFBGCHAIBABCJDK $.
  $}

  ${
    bj-abbii.1 $e |- ( ph <-> ps ) $.
    $( Remove dependency on ~ ax-13 from ~ abbii .  (Contributed by BJ,
       23-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-abbii $p |- { x | ph } = { x | ps } $=
      ( wb cab wceq bj-abbi mpgbi ) ABEACFBCFGCABCHDI $.
  $}

  ${
    bj-abbid.1 $e |- F/ x ph $.
    bj-abbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Remove dependency on ~ ax-13 from ~ abbid .  (Contributed by BJ,
       23-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-abbid $p |- ( ph -> { x | ps } = { x | ch } ) $=
      ( wb wal cab wceq alrimi bj-abbi sylib ) ABCGZDHBDICDIJANDEFKBCDLM $.
  $}

  ${
    $d x ph $.
    bj-abbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Remove dependency on ~ ax-13 from ~ abbidv .  (Contributed by BJ,
       23-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-abbidv $p |- ( ph -> { x | ps } = { x | ch } ) $=
      ( nfv bj-abbid ) ABCDADFEG $.
  $}

  ${
    $d x A $.  $d ph x $.
    bj-abbi2dv.1 $e |- ( ph -> ( x e. A <-> ps ) ) $.
    $( Remove dependency on ~ ax-13 from ~ abbi2dv .  (Contributed by BJ,
       23-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-abbi2dv $p |- ( ph -> A = { x | ps } ) $=
      ( cv wcel wb wal cab wceq alrimiv bj-abeq2 sylibr ) ACFDGBHZCIDBCJKAOCELB
      CDMN $.
  $}

  ${
    $d x A $.  $d ph x $.
    bj-abbi1dv.1 $e |- ( ph -> ( ps <-> x e. A ) ) $.
    $( Remove dependency on ~ ax-13 from ~ abbi1dv .  (Contributed by BJ,
       23-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-abbi1dv $p |- ( ph -> { x | ps } = A ) $=
      ( cab cv wcel bicomd bj-abbi2dv eqcomd ) ADBCFABCDABCGDHEIJK $.
  $}

  ${
    $d x A $.
    $( Remove dependency on ~ ax-13 from ~ abid2 .  (Contributed by BJ,
       23-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-abid2 $p |- { x | x e. A } = A $=
      ( cv wcel cab biid bj-abbi2i eqcomi ) BACBDZAEIABIFGH $.
  $}

  ${
    $d y A $.  $d y ph $.  $d x y $.
    $( Remove dependency on ~ ax-13 from ~ clabel (note the absence of DV
       conditions among variables in the LHS).  (Contributed by BJ,
       23-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-clabel $p |- ( { x | ph } e. A <->
                                 E. y ( y e. A /\ A. x ( x e. y <-> ph ) ) ) $=
      ( cab wcel cv wceq wa wex wel wb wal df-clel bj-abeq2 anbi2ci exbii bitri
      ) ABEZDFCGZSHZTDFZIZCJUBBCKALBMZIZCJCSDNUCUECUAUDUBABTOPQR $.
  $}

  ${
    $d z A $.  $d z x $.  $d z y $.
    $( Remove dependency on ~ ax-13 from ~ sbab (note the absence of DV
       conditions among variables in the LHS).  (Contributed by BJ,
       23-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-sbab $p |- ( x = y -> A = { z | [ y / x ] z e. A } ) $=
      ( weq cv wcel wsb sbequ12 bj-abbi2dv ) ABECFDGZABHCDKABIJ $.
  $}

  ${
    $d y x $.  $d y ph $.
    $( Remove dependency on ~ ax-13 from ~ nfab1 (note the absence of DV
       conditions).  (Contributed by BJ, 6-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-nfab1 $p |- F/_ x { x | ph } $=
      ( vy cab bj-nfsab1 nfci ) BCABDABCEF $.
  $}

  ${
    $d z x $.  $d z y $.
    $( Remove dependency on ~ ax-13 from ~ vjust (note the absence of DV
       conditions).  Soundness justification theorem for ~ df-v .  (Contributed
       by BJ, 31-May-2019.)  (Proof modification is discouraged.) $)
    bj-vjust $p |- { x | x = x } = { y | y = y } $=
      ( vz weq cab wsb cv wcel equid bj-sbtv 2th df-clab 3bitr4i eqriv ) CAADZA
      EZBBDZBEZOACFZQBCFZCGZPHUARHSTOACAIJQBCBIJKOCALQCBLMN $.
  $}

  ${
    $d z x $.  $d z y $.
    bj-cdeqab.1 $e |- CondEq ( x = y -> ( ph <-> ps ) ) $.
    $( Remove dependency on ~ ax-13 from ~ cdeqab .  (Contributed by BJ,
       6-Oct-2019.)  (Proof modification is discouraged.) $)
    bj-cdeqab $p |- CondEq ( x = y -> { z | ph } = { z | ps } ) $=
      ( cab wceq weq wb cdeqri bj-abbidv cdeqi ) AEGBEGHCDCDIABEABJCDFKLM $.
  $}

  ${
    $d w y ph $.  $d w x y z $.
    $( Remove dependency on ~ ax-13 from ~ axrep1 .  (Contributed by BJ,
       31-May-2019.)  (Proof modification is discouraged.) $)
    bj-axrep1 $p |- E. x ( E. y A. z ( ph -> z = y ) ->
                 A. z ( z e. x <-> E. x ( x e. y /\ ph ) ) ) $=
      ( vw weq wi wal wex wel wa elequ2 anbi1d exbidv bibi2d albidv albii exbii
      wb nfv imbi2d ax-rep imbi1i nfe1 nfbi nfal anbi2i bibi12d cbvexv1 3imtr3i
      19.3v a1i bj-chvarvv 19.35ri ) ADCFZGZDHZCIZDBJZBCJZAKZBIZSZDHZBURBHZUSBE
      JZAKZBIZSZDHZBIZGVEVDBIZGECECFZVKVLVEVMVJVDBVMVIVCDVMVHVBUSVMVGVABVMVFUTA
      ECBLMNOPNUAACHZUOGZDHZCIZBHDCJZVFVNKZBIZSZDHZCIVEVKAECDBUBVQURBVPUQCVOUPD
      VNAUOACUKZUCQRQWBVJCBWABDVRVTBVRBTVSBUDUEUFVJCTCBFZWAVIDWDVRUSVTVHCBDLVTV
      HSWDVSVGBVNAVFWCUGRULUHPUIUJUMUN $.
  $}

  ${
    $d w ph $.  $d w x y z $.
    $( Remove dependency on ~ ax-13 from ~ axrep2 .  (Contributed by BJ,
       31-May-2019.)  (Proof modification is discouraged.) $)
    bj-axrep2 $p |- E. x ( E. y A. z ( ph -> z = y ) ->
                        A. z ( z e. x <-> E. x ( x e. y /\ A. y ph ) ) ) $=
      ( vw wal weq wi wex wel wa nfe1 nfv nfim nfex exbidv albidv imbi2d imim1i
      wb elequ2 anbi1d bibi2d bj-axrep1 bj-chvarv alimi eximi nfa1 nfal equequ2
      sp cbvexv1 sylib eximii ) ACFZDEGZHZDFZEIZDBJZBCJZUOKZBIZTZDFZHZADCGZHZDF
      ZCIZVEHBUSUTBEJZUOKZBIZTZDFZHZBIVFBIECVFEBUSVEEURELVEEMNOECGZVPVFBVQVOVEU
      SVQVNVDDVQVMVCUTVQVLVBBVQVKVAUOECBUAUBPUCQRPUOBEDUDUEVJUSVEVJUOVGHZDFZCIU
      SVIVSCVHVRDUOAVGACUKSUFUGVSURCEVSEMUQCDUOUPCACUHUPCMNUICEGZVRUQDVTVGUPUOC
      EDUJRQULUMSUN $.
  $}

  ${
    $d w x y z $.
    $( Remove dependency on ~ ax-13 from ~ axrep3 .  (Contributed by BJ,
       31-May-2019.)  (Proof modification is discouraged.) $)
    bj-axrep3 $p |- E. x ( E. y A. z ( ph -> z = y ) ->
                 A. z ( z e. x <-> E. x ( x e. w /\ A. y ph ) ) ) $=
      ( weq wi wal wex wel wa wb nfe1 nfv nfa1 nfan nfex nfbi nfal exbidv nfim
      elequ2 anbi1d bibi2d albidv imbi2d bj-axrep2 bj-chvarv ) ADCFGDHZCIZDBJZB
      CJZACHZKZBIZLZDHZGZBIUJUKBEJZUMKZBIZLZDHZGZBICEVDCBUJVCCUICMVBCDUKVACUKCN
      UTCBUSUMCUSCNACOPQRSUAQCEFZURVDBVEUQVCUJVEUPVBDVEUOVAUKVEUNUTBVEULUSUMCEB
      UBUCTUDUEUFTABCDUGUH $.
  $}

  ${
    $d x y z w $.
    bj-axrep4.1 $e |- F/ z ph $.
    $( Remove dependency on ~ ax-13 from ~ axrep4 .  (Contributed by BJ,
       31-May-2019.)  (Proof modification is discouraged.) $)
    bj-axrep4 $p |- ( A. x E. z A. y ( ph -> y = z ) ->
                E. z A. y ( y e. z <-> E. x ( x e. w /\ ph ) ) ) $=
      ( weq wi wal wex wel wa wb bj-axrep3 19.35i nfv nfa1 nfan nfbi nfal exbii
      nfex nfe1 elequ2 19.3 anbi2i a1i bibi12d albidv cbvexv1 sylib ) ACDGHCIDJ
      ZBICBKZBEKZADIZLZBJZMZCIZBJCDKZUNALZBJZMZCIZDJULUSBABDCENOUSVDBDURDCUMUQD
      UMDPUPDBUNUODUNDPADQRUBSTVCBCUTVBBUTBPVABUCSTBDGZURVCCVEUMUTUQVBBDCUDUQVB
      MVEUPVABUOAUNADFUEUFUAUGUHUIUJUK $.
  $}

  ${
    $d x y z w $.
    bj-axrep5.1 $e |- F/ z ph $.
    $( Remove dependency on ~ ax-13 from ~ axrep5 .  (Contributed by BJ,
       31-May-2019.)  (Proof modification is discouraged.) $)
    bj-axrep5 $p |- ( A. x ( x e. w -> E. z A. y ( ph -> y = z ) ) ->
                E. z A. y ( y e. z <-> E. x ( x e. w /\ ph ) ) ) $=
      ( wel weq wi wal wex wa wb 19.37v impexp albii 19.21v bitr2i exbii bitr3i
      nfv nfan bj-axrep4 sylbi anabs5 bibi2i sylib ) BEGZACDHZIZCJZDKIZBJZCDGZU
      HUHALZLZBKZMZCJZDKZUNUOBKZMZCJZDKUMUOUIIZCJZDKZBJUTULVFBULUHUKIZDKVFUHUKD
      NVGVEDVEUHUJIZCJVGVDVHCUHAUIOPUHUJCQRSTPUOBCDEUHADUHDUAFUBUCUDUSVCDURVBCU
      QVAUNUPUOBUHAUESUFPSUG $.
  $}

  ${
    $d x y z w $.  $d y z ph w $.
    $( Remove dependency on ~ ax-13 from ~ axsep .  (Contributed by BJ,
       31-May-2019.)  (Proof modification is discouraged.) $)
    bj-axsep $p |- E. y A. x ( x e. y <-> ( x e. z /\ ph ) ) $=
      ( vw wel weq wa wex wb wal wi nfv bj-axrep5 equtr equcomi adantrd alrimiv
      syl6 exbii a1d bj-spimevv an12 elequ1 anbi1d equsexvw bitr3i bibi2i albii
      mpg mpbi ) BCFZEDFZEBGZAHZHZEIZJZBKZCIZULBDFZAHZJZBKZCIUMUOBCGZLZBKZCILUT
      EUOEBCDUOCMNUMVGCECEGZVGUMVHVFBVHUNVEAVHUNCBGVECEBOCBPSQRUAUBUJUSVDCURVCB
      UQVBULUQUNUMAHZHZEIVBVJUPEUNUMAUCTVIVBEBUNUMVAAEBDUDUEUFUGUHUITUK $.
  $}

  ${
    $d x y z $.
    $( Remove dependency on ~ ax-13 from ~ nalset .  (Contributed by BJ,
       31-May-2019.)  (Proof modification is discouraged.) $)
    bj-nalset $p |- -. E. x A. y y e. x $=
      ( vz wel wn wex wal alexn wa wb ax-sep elequ1 elequ2 bitrd notbid anbi12d
      weq bibi12d bj-spvv pclem6 syl eximii mpgbi ) BADZEZBFUDBGAFEAUDABHCBDZCA
      DZCCDZEZIZJZCGZUEBUICBAKULBBDZUDUMEZIZJZUEUKUPCBCBQZUFUMUJUOCBBLUQUGUDUIU
      NCBALUQUHUMUQUHBCDUMCBCLCBBMNOPRSUMUDTUAUBUC $.
  $}

  ${
    $d x y z w $.
    $( Remove dependency on ~ ax-13 from ~ zfpow .  (Contributed by BJ,
       31-May-2019.)  (Proof modification is discouraged.) $)
    bj-zfpow $p |- E. x A. y ( A. x ( x e. y -> x e. z ) -> y e. x ) $=
      ( vw wel wi wal wex ax-pow weq elequ1 imbi12d bj-cbvalvv albii exbii mpbi
      imbi1i ) DBEZDCEZFZDGZBAEZFZBGZAHABEZACEZFZAGZUBFZBGZAHCABDIUDUJAUCUIBUAU
      HUBTUGDADAJRUESUFDABKDACKLMQNOP $.
  $}

  ${
    $d x y z $.
    $( Remove dependency on ~ ax-13 from ~ el .  (Contributed by BJ,
       31-May-2019.)  (Proof modification is discouraged.) $)
    bj-el $p |- E. y x e. y $=
      ( vz wel wi wal bj-zfpow weq ax9 alrimiv ax8 embantd bj-spimvv eximii ) B
      CDBADEZBFZCBDZEZCFABDZBBCAGRSCACAHZPQSTOBCABIJCABKLMN $.
  $}

  ${
    $d w x y z $.
    $( Remove dependency on ~ ax-13 from ~ dtru .  (Contributed by BJ,
       31-May-2019.)  (Proof modification is discouraged.) $)
    bj-dtru $p |- -. A. x x = y $=
      ( vw vz weq wn wex wal wel wa bj-el ax-nul sp eximii eeanv mpbir2an ax-mp
      ax7 con3d bj-spimevv ax9 con3dimp 2eximi wi equequ2 notbid syl6bi pm2.61i
      com12 a1d exlimivv exnal mpbi ) ABEZFZAGZUNAHFCDEZFZDGCGZUPACIZADIZFZJZDG
      CGZUSVDUTCGVBDGACKVBAHVBDDALVBAMNUTVBCDOPVCURCDUTUQVAUQUTVACDAUAUIUBUCQUR
      UPCDDBEZURUPUDVEURCBEZFZUPVEUQVFDBCUEUFVGUOACACEUNVFACBRSTUGVEFZUPURVHUOA
      DADEUNVEADBRSTUJUHUKQUNAULUM $.
  $}

  ${
    $d x y $.
    $( Remove dependency on ~ ax-13 from ~ axc16b .  (Contributed by BJ,
       16-Jul-2019.)  (Proof modification is discouraged.) $)
    bj-axc16b $p |- ( A. x x = y -> ( ph -> A. x ph ) ) $=
      ( weq wal wi bj-dtru pm2.21i ) BCDBEAABEFBCGH $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Remove dependency on ~ ax-13 from ~ eunex .  (Contributed by BJ,
       16-Jul-2019.)  (Proof modification is discouraged.) $)
    bj-eunex $p |- ( E! x ph -> E. x -. ph ) $=
      ( vy wex weq wi wal wa wn weu bj-dtru alim mtoi exlimiv adantl eu3v exnal
      3imtr4i ) ABDZABCEZFBGZCDZHABGZIZABJAIBDUBUDSUAUDCUAUCTBGBCKATBLMNOABCPAB
      QR $.
  $}

  ${
    $d x y $.
    bj-dtrucor.1 $e |- x = y $.
    $( Remove dependency on ~ ax-13 from ~ dtrucor .  (Contributed by BJ,
       16-Jul-2019.)  (Proof modification is discouraged.) $)
    bj-dtrucor $p |- x =/= y $=
      ( weq cv wne wal bj-dtru pm2.21i mpg ) ABDZAEBEFZAKAGLABHICJ $.
  $}

  ${
    $d x y $.
    bj-dtrucor2v.1 $e |- ( x = y -> x =/= y ) $.
    $( Version of ~ dtrucor2 with a dv condition, which does not require
       ~ ax-13 (nor ~ ax-4 , ~ ax-5 , ~ ax-7 , ~ ax-12 ).  (Contributed by BJ,
       16-Jul-2019.)  (Proof modification is discouraged.) $)
    bj-dtrucor2v $p |- ( ph /\ -. ph ) $=
      ( weq wex wn wa ax6ev wi cv necon2bi pm2.01 ax-mp nex pm2.24ii ) BCEZBFAA
      GHBCIQBQQGZJRQBKCKDLQMNOP $.
  $}

  ${
    $d x y $.
    $( Remove dependency on ~ ax-13 from ~ dvdemo1 (this removal is noteworthy
       since ~ dvdemo1 and ~ dvdemo2 illustrate the phenomenon of bundling).
       (Contributed by BJ, 16-Jul-2019.)
       (Proof modification is discouraged.) $)
    bj-dvdemo1 $p |- E. x ( x = y -> z e. x ) $=
      ( weq wn wel wi wex wal bj-dtru exnal mpbir pm2.21 eximii ) ABDZEZOCAFZGA
      PAHOAIEABJOAKLOQMN $.
  $}

  ${
    $d x z $.
    $( Remove dependency on ~ ax-13 from ~ dvdemo2 (this removal is noteworthy
       since ~ dvdemo1 and ~ dvdemo2 illustrate the phenomenon of bundling).
       (Contributed by BJ, 16-Jul-2019.)
       (Proof modification is discouraged.) $)
    bj-dvdemo2 $p |- E. x ( x = y -> z e. x ) $=
      ( wel weq wi bj-el ax-1 eximii ) CADZABEZJFACAGJKHI $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Strengthenings of theorems of the main part
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Typically, these are biconditional versions of theorems in the main part
  which are formulated as implications.  They could be added after said
  implication, or sometimes replace it (by "inlining" it).

  This could also be done for ~ hba1 , ~ hbe1 , ~ hbn1 , ~ modal-5 .

$)

  $( Simplified definition of substitution when variables are distinct.  This
     is to ~ sb3 what ~ sb4b is to ~ sb4 .  Actually, one may keep only
     ~ bj-sb3b and ~ sb4b in the database, renaming them sb3 and sb4.
     (Contributed by BJ, 6-Oct-2018.) $)
  bj-sb3b $p |- ( -. A. x x = y -> ( [ y / x ] ph <-> E. x ( x = y /\ ph ) ) )
  $=
    ( weq wal wn wsb wa wex sb1 sb3 impbid2 ) BCDZBEFABCGMAHBIABCJABCKL $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Distinct var metavariables
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  The closed formula ` A. x A. y x = y ` approximately means that the var
  metavariables ` x ` and ` y ` represent the same variable v_i.  In a domain
  with at most one object, however, this formula is always true, hence the
  "approximately" in the previous sentence.

$)

  $( Biconditional version of a form of ~ hbae with commuted quantifiers, not
     requiring ~ ax-11 .  (Contributed by BJ, 12-Dec-2019.)
     (Proof modification is discouraged.) $)
  bj-hbaeb2 $p |- ( A. x x = y <-> A. x A. z x = y ) $=
    ( weq wal wi wn sp axc9 syl7 axc11r axc11 pm2.43i syl5 pm2.61ii axc4i alimi
    impbii ) ABDZAEZSCEZAESUAACADCEZCBDCEZTUAFTSUBGUCGUASAHABCIJSACKTSBEZUCUATU
    DSABLMSBCKNOPUASASCHQR $.

  $( Biconditional version of ~ hbae .  (Contributed by BJ, 6-Oct-2018.)
     (Proof modification is discouraged.) $)
  bj-hbaeb $p |- ( A. x x = y <-> A. z A. x x = y ) $=
    ( weq wal bj-hbaeb2 alcom bitri ) ABDZAEZICEAEJCEABCFIACGH $.

  $( Biconditional version of ~ hbnae (to replace it?).  (Contributed by BJ,
     6-Oct-2018.) $)
  bj-hbnaeb $p |- ( -. A. x x = y <-> A. z -. A. x x = y ) $=
    ( weq wal wn hbnae sp impbii ) ABDAEFZJCEABCGJCHI $.

  $( A special instance of ~ bj-hbaeb2 .  A lemma for distinct var
     metavariables.  Note that the right-hand side is a closed formula (a
     sentence).  (Contributed by BJ, 6-Oct-2018.) $)
  bj-dvv $p |- ( A. x x = y <-> A. x A. y x = y ) $=
    ( bj-hbaeb2 ) ABBC $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Around ~ equsal
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  As a rule of thumb, if a theorem of the form
  ` |- ( ph <-> ps ) => |- ( ch <-> th ) ` is in the database, and the "more
  precise" theorems ` |- ( ph -> ps ) => |- ( ch -> th ) ` and
  ` |- ( ps -> ph ) => |- ( th -> ch ) ` also hold (see ~ bj-bisym ), then they
  should be added to the database.  The present case is similar.  Similar
  additions can be done regarding ~ equsex (and ~ equsalh and ~ equsexh ).
  Even if only one of these two theorems holds, it should be added to the
  database.

$)

  $( Duplication of ~ wl-equsal1t , with shorter proof.  If one imposes a DV
     condition on x,y , then one can use ~ bj-alequexv and reduce axiom
     dependencies, and similarly for the following theorems.  Note:
     ~ wl-equsalcom is also interesting.  (Contributed by BJ, 6-Oct-2018.) $)
  bj-equsal1t $p |- ( F/ x ph -> ( A. x ( x = y -> ph ) <-> ph ) ) $=
    ( wnf weq wi wal wex bj-alequex 19.9t syl5ib nf5r ala1 syl6 impbid ) ABDZBC
    EZAFBGZARABHPAABCIABJKPAABGRABLAQBMNO $.

  ${
    bj-equsal1ti.1 $e |- F/ x ph $.
    $( Inference associated with ~ bj-equsal1t .  (Contributed by BJ,
       30-Sep-2018.) $)
    bj-equsal1ti $p |- ( A. x ( x = y -> ph ) <-> ph ) $=
      ( wnf weq wi wal wb bj-equsal1t ax-mp ) ABEBCFAGBHAIDABCJK $.
  $}

  ${
    bj-equsal1.1 $e |- F/ x ps $.
    bj-equsal1.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( One direction of ~ equsal .  (Contributed by BJ, 30-Sep-2018.) $)
    bj-equsal1 $p |- ( A. x ( x = y -> ph ) -> ps ) $=
      ( weq wi wal a2i alimi bj-equsal1ti sylib ) CDGZAHZCINBHZCIBOPCNABFJKBCDE
      LM $.
  $}

  ${
    bj-equsal2.1 $e |- F/ x ph $.
    bj-equsal2.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( One direction of ~ equsal .  (Contributed by BJ, 30-Sep-2018.) $)
    bj-equsal2 $p |- ( ph -> A. x ( x = y -> ps ) ) $=
      ( weq wi wal bj-equsal1ti a2i alimi sylbir ) ACDGZAHZCINBHZCIACDEJOPCNABF
      KLM $.
  $}

  ${
    bj-equsal.1 $e |- F/ x ps $.
    bj-equsal.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Shorter proof of ~ equsal .  (Contributed by BJ, 30-Sep-2018.)  Proof
       modification is discouraged to avoid using ~ equsal , but "min */exc
       equsal" is ok.  (Proof modification is discouraged.) $)
    bj-equsal $p |- ( A. x ( x = y -> ph ) <-> ps ) $=
      ( weq wi wal biimpd bj-equsal1 biimprd bj-equsal2 impbii ) CDGZAHCIBABCDE
      OABFJKBACDEOABFLMN $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Some Principia Mathematica proofs
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  References are made to the second edition (1927, reprinted 1963) of
  _Principia Mathematica_, Vol. 1.  Theorems are referred to in the form
  "PM*xx.xx".

$)

  $( Closed form of ~ stdpc5 .  (Possible to place it before ~ 19.21t and use
     it to prove ~ 19.21t ).  (Contributed by BJ, 15-Sep-2018.)
     (Proof modification is discouraged.) $)
  stdpc5t $p |- ( F/ x ph -> ( A. x ( ph -> ps ) -> ( ph -> A. x ps ) ) ) $=
    ( wnf wal wi nf5r alim syl9 ) ACDAACEABFCEBCEACGABCHI $.

  ${
    bj-stdpc5.1 $e |- F/ x ph $.
    $( More direct proof of ~ stdpc5 .  (Contributed by BJ, 15-Sep-2018.)
       (Proof modification is discouraged.) $)
    bj-stdpc5 $p |- ( A. x ( ph -> ps ) -> ( ph -> A. x ps ) ) $=
      ( wnf wi wal stdpc5t ax-mp ) ACEABFCGABCGFFDABCHI $.
  $}

  ${
    2stdpc5.1 $e |- F/ x ph $.
    2stdpc5.2 $e |- F/ y ph $.
    $( A double ~ stdpc5 (one direction of PM*11.3).  See also ~ 2stdpc4 and
       ~ 19.21vv .  (Contributed by BJ, 15-Sep-2018.)
       (Proof modification is discouraged.) $)
    2stdpc5 $p |- ( A. x A. y ( ph -> ps ) -> ( ph -> A. x A. y ps ) ) $=
      ( wi wal stdpc5 alimi syl ) ABGDHZCHABDHZGZCHAMCHGLNCABDFIJAMCEIK $.
  $}

  $( Proof of ~ 19.21t from ~ stdpc5t .  (Contributed by BJ, 15-Sep-2018.)
     (Proof modification is discouraged.) $)
  bj-19.21t $p |- ( F/ x ph -> ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) ) $=
    ( wnf wi wal stdpc5t wex 19.9t imbi1d 19.38 syl6bir impbid ) ACDZABECFZABCF
    ZEZABCGNQACHZPEONRAPACIJABCKLM $.

  ${
    exlimii.1 $e |- F/ x ps $.
    exlimii.2 $e |- ( ph -> ps ) $.
    exlimii.3 $e |- E. x ph $.
    $( Inference associated with ~ exlimi .  Inferring a theorem when it is
       implied by an antecedent which may be true.  (Contributed by BJ,
       15-Sep-2018.) $)
    exlimii $p |- ps $=
      ( wex exlimi ax-mp ) ACGBFABCDEHI $.
  $}

  $( Proof of ~ ax-11 similar to PM's proof of ~ alcom (PM*11.2).  For a proof
     closer to PM's proof, see ~ ax11-pm2 .  Axiom ~ ax-11 is used in the proof
     only through ~ nfa2 .  (Contributed by BJ, 15-Sep-2018.)
     (Proof modification is discouraged.) $)
  ax11-pm $p |- ( A. x A. y ph -> A. y A. x ph ) $=
    ( wal wi 2sp gen2 nfa2 nfa1 2stdpc5 ax-mp ) ACDZBDZAEZBDCDMABDCDENCBABCFGMA
    CBACBHLBIJK $.

  $( Commuted form of ~ ax6e .  (Could be placed right after ~ ax6e ).
     (Contributed by BJ, 15-Sep-2018.) $)
  ax6er $p |- E. x y = x $=
    ( weq ax6e equcomi eximii ) ABCBACAABDABEF $.

  ${
    exlimiieq1.1 $e |- F/ x ph $.
    exlimiieq1.2 $e |- ( x = y -> ph ) $.
    $( Inferring a theorem when it is implied by an equality which may be true.
       (Contributed by BJ, 30-Sep-2018.) $)
    exlimiieq1 $p |- ph $=
      ( weq ax6e exlimii ) BCFABDEBCGH $.
  $}

  ${
    exlimiieq2.1 $e |- F/ y ph $.
    exlimiieq2.2 $e |- ( x = y -> ph ) $.
    $( Inferring a theorem when it is implied by an equality which may be true.
       (Contributed by BJ, 15-Sep-2018.)  (Revised by BJ, 30-Sep-2018.) $)
    exlimiieq2 $p |- ph $=
      ( weq ax6er exlimii ) BCFACDECBGH $.
  $}

  ${
    $d x y z t $.  $d z t ph $.
    $( Proof of ~ ax-11 from the standard axioms of predicate calculus, similar
       to PM's proof of ~ alcom (PM*11.2).  This proof requires that ` x ` and
       ` y ` be distinct.  Axiom ~ ax-11 is used in the proof only through
       ~ nfal , ~ nfsb , ~ sbal , ~ sb8 .  See also ~ ax11-pm .  (Contributed
       by BJ, 15-Sep-2018.)  (Proof modification is discouraged.) $)
    ax11-pm2 $p |- ( A. x A. y ph -> A. y A. x ph ) $=
      ( vt vz wal wsb 2stdpc4 gen2 nfv nfal 2stdpc5 ax-mp nfsb sb8 albii sylibr
      wi sbal ) ACFZBFZABFZCDGZDFZUBCFUAACDGZBFZDFZUDUAUEBEGZEFZDFZUGUAUHRZEFDF
      UAUJRUKDEABCEDHIUAUHDETDBADCADJZKKTEBAECAEJZKKLMUFUIDUEBEACDEUMNOPQUCUFDA
      BCDSPQUBCDADBULKOQ $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Alternate definition of substitution
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Biconditional showing two possible (dual) definitions of substitution
     ~ df-sb not using dummy variables.  (Contributed by BJ, 19-Mar-2021.) $)
  bj-sbsb $p |- ( ( ( x = y -> ph ) /\ E. x ( x = y /\ ph ) ) <->
                               ( A. x ( x = y -> ph ) \/ ( x = y /\ ph ) ) ) $=
    ( weq wi wa wex wal wo simpl pm2.27 anc2li sps olc syl56 simpr equs5 biimpd
    wn jaoi orc pm2.61i sp pm3.4 equs4 19.8a jca impbii ) BCDZAEZUIAFZBGZFZUJBH
    ZUKIZUIBHZUMUOEUMUJUPUKUOUJULJUIUJUKEBUIUJAUIAKLMUKUNNOUMULUPSZUNUOUJULPUQU
    LUNABCQRUNUKUAOUBUOUJULUNUJUKUJBUCUIAUDTUNULUKABCUEUKBUFTUGUH $.

  $( Alternate (dual) definition of substitution ~ df-sb not using dummy
     variables.  (Contributed by BJ, 19-Mar-2021.) $)
  bj-dfsb2 $p |- ( [ y / x ] ph <->
                               ( A. x ( x = y -> ph ) \/ ( x = y /\ ph ) ) ) $=
    ( wsb weq wi wa wex wal wo df-sb bj-sbsb bitri ) ABCDBCEZAFZNAGZBHGOBIPJABC
    KABCLM $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Lemmas for substitution
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Substitution has no effect on a bound variabe (existential quantifier
     case); see ~ sbf2 .  (Contributed by BJ, 2-May-2019.) $)
  bj-sbf3 $p |- ( [ y / x ] E. x ph <-> E. x ph ) $=
    ( wex nfe1 sbf ) ABDBCABEF $.

  $( Substitution has no effect on a bound variabe (non-freeness case); see
     ~ sbf2 .  (Contributed by BJ, 2-May-2019.) $)
  bj-sbf4 $p |- ( [ y / x ] F/ x ph <-> F/ x ph ) $=
    ( wnf nfnf1 sbf ) ABDBCABEF $.

  ${
    $d x y $.  $d x z $.
    $( Move non-free predicate in and out of substitution; see ~ sbal and
       ~ sbex .  (Contributed by BJ, 2-May-2019.) $)
    bj-sbnf $p |- ( [ z / y ] F/ x ph <-> F/ x [ z / y ] ph ) $=
      ( wal wi wsb wnf sbim sbal imbi2i bitri albii nf5 sbbii 3bitr4i ) AABEZFZ
      CDGZBEZACDGZUABEZFZBEABHZCDGZUABHSUCBSUAQCDGZFUCAQCDIUFUBUAABCDJKLMUERBEZ
      CDGTUDUGCDABNORBCDJLUABNP $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Existential uniqueness
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d x y $.
    bj-eu3f.1 $e |- F/ y ph $.
    $( Version of ~ eu3v where the dv condition is replaced with a non-freeness
       hypothesis.  This is a "backup" of a theorem that used to be in the main
       part with label "eu3" and was deprecated in favor of ~ eu3v .
       (Contributed by NM, 8-Jul-1994.)  (Proof shortened by BJ,
       31-May-2019.) $)
    bj-eu3f $p |- ( E! x ph <-> ( E. x ph /\ E. y A. x ( ph -> x = y ) ) ) $=
      ( weu wex wmo wa weq wi wal eu5 mo2 anbi2i bitri ) ABEABFZABGZHPABCIJBKCF
      ZHABLQRPABCDMNO $.
  $}

  ${
    $d x y $.
    bj-eumo0.1 $e |- F/ y ph $.
    $( Existential uniqueness implies "at most one."  Used to be in the main
       part and deprecated in favor of ~ eumo and ~ mo2 .  (Contributed by NM,
       8-Jul-1994.)  (Revised by BJ, 8-Jun-2019.) $)
    bj-eumo0 $p |- ( E! x ph -> E. y A. x ( ph -> x = y ) ) $=
      ( weu weq wb wal wex wi euf biimp alimi eximi sylbi ) ABEABCFZGZBHZCIAPJZ
      BHZCIABCDKRTCQSBAPLMNO $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  First-logic: miscellaneous
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Miscellaneous theorems of first-order logic.

$)

  $( Obsolete proof of ~ sbidm temporarily kept here to check it gives no
     additional insight.  (Contributed by NM, 8-Mar-1995.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  bj-sbidmOLD $p |- ( [ y / x ] [ y / x ] ph <-> [ y / x ] ph ) $=
    ( wsb wb weq equsb2 sbequ12r sbimi ax-mp sbbi mpbi ) ABCDZAEZBCDZMBCDMECBFZ
    BCDOBCGPNBCACBHIJMABCKL $.

  ${
    $d x y z $.  $d ph z $.
    bj-mo3OLD.nf $e |- F/ y ph $.
    $( Obsolete proof of ~ mo3 temporarily kept here to check it gives no
       additional insight.  (Contributed by NM, 8-Mar-1995.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-mo3OLD $p |- ( E* x ph <->
               A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) $=
      ( vz wmo wsb wa weq wal wex mo2v nfv nfim nfs1v sbequ2 ax7 imim12d sylibr
      wi cbv3 ancli aaan prth equtr2 syl6 2alimi exlimiv sylbi nfa1 pm3.3 com3r
      syl alimd com12 sps eximd sb8e mo2 3imtr4g moabs alcoms impbii ) ABFZAABC
      GZHZBCIZTZCJBJZVDABEIZTZBJZEKVIABELVLVIEVLVKVECEIZTZHZCJBJZVIVLVLVNCJZHVP
      VLVQVKVNBCAVJCDVJCMNZVEVMBABCOZVMBMNZVGVEAVJVMABCPBCEQRUAUBVKVNBCVRVTUCSV
      OVHBCVOVFVJVMHVGAVJVEVMUDBCEUEUFUGUMUHUIVHVDCBVHBJZCJZABKZVDTVDWBVECKAVGT
      ZBJZCKWCVDWBVEWECWACUJWAVEWETCVEWAWEVEVHWDBVSVHAVEVGAVEVGUKULUNUOUPUQABCD
      URABCDUSUTABVASVBVC $.
  $}

$(
  ${
    $d ph ps $.
    @( An unprovable true scheme.

       It is true since the DV condition implies that ` x ` does not occur in
       at least one of ` ph ` and ` ps ` , so at least one of the two disjuncts
       is true.

       It is not provable from any consistent axiom system containing no DV
       condition of that form.  Indeed, such a DV condition cannot be produced
       from DV conditions of one of the other two forms, DV(x,y) or DV(x,ph).
       Therefore, if it were provable, then so would the same scheme without
       this DV condition be, but that scheme is obviously false (take ` ph `
       and ` ps ` to be ` x = y ` for instance).

       See also ~ ax-bj-00 .

       Megill's completeness theorem concerns schemes with DV conditions of the
       form DV(x,y) or DV(x,ph).  The present scheme shows that it does not
       generalize to include schemes that contain DV conditions of the form
       DV(ph,ps).

       (Contributed by BJ, 19-Mar-2021.)  (New usage is discouraged.) @)
    ax-bj-0 $a |- ( ( ph -> A. x ph ) \/ ( ps -> A. x ps ) ) $.

    @( A variant of ~ ax-bj-0 , morally stronger, with the advantage of binding
       every possible occurrence of ` x ` in any of its instances (see for
       instance ~ df-nf and ~ df-bj-nf ).

       (Contributed by BJ, 19-Mar-2021.)  (New usage is discouraged.) @)
    ax-bj-00 $a |- ( ( E. x ph -> A. x ph ) \/ ( E. x ps -> A. x ps ) ) $.
  $}

  ${
    $d ph x y $.
    @( Proof of ~ ax-5 from ~ ax-bj-00 (note that the use of ~ ax-5 is via
       ~ 19.8v , which is a form of ~ sp , and ~ ax-5 and the auxiliary axioms
       are used via the axiom of twoness ~ dtru ).  (Contributed by BJ,
       19-Mar-2021.)  (Proof modification is discouraged.)
       (New usage is discouraged.) @)
    bj-ax5 $p |- ( ph -> A. x ph ) $=
      ( vy wex wal 19.8v weq wi wn wa ax6ev dtru pm3.2i annim mpbi ax-bj-00 syl
      mtpor ) AABDZABEZABFBCGZBDZUABEZHZSTHUBUCIZJUDIUBUEBCKBCLMUBUCNOUAABPRQ
      $.
  $}
$)

  ${
    bj-syl66ib.1 $e |- ( ph -> ( ps -> th ) ) $.
    bj-syl66ib.2 $e |- ( th -> ta ) $.
    bj-syl66ib.3 $e |- ( ta <-> ch ) $.
    $( A mixed syllogism inference derived from ~ syl6ib .  In addition to
       ~ bj-dvelimdv1 , it can also shorten ~ alexsubALTlem4 (4821>4812),
       ~ supsrlem (2868>2863).  (Contributed by BJ, 20-Oct-2021.) $)
    bj-syl66ib $p |- ( ph -> ( ps -> ch ) ) $=
      ( syl6 syl6ib ) ABECABDEFGIHJ $.
  $}

  ${
    $d x z $.  $d y z $.  $d ph z $.  $d ps z $.
    bj-dvelimdv.nf $e |- F/ x ph $.
    bj-dvelimdv.nf1 $e |- ( ph -> F/ x ch ) $.
    bj-dvelimdv.is $e |- ( z = y -> ( ch <-> ps ) ) $.
    $( Deduction form of ~ dvelim with DV conditions.  Uncurried (imported)
       form of ~ bj-dvelimdv .  Typically, ` z ` is a fresh variable used for
       the implicit substitution hypothesis that results in ` ch ` (namely,
       ` ps ` can be thought as ` ps ( x , y ) ` and ` ch ` as
       ` ps ( x , z ) ` ).  So the theorem says that if x is effectively free
       in ` ps ( x , z ) ` , then if x and y are not the same variable, then
       ` x ` is also effectively free in ` ps ( x , y ) ` , in a context
       ` ph ` .

       One can weakend the implicit substitution hypothesis by adding the
       antecedent ` ph ` but this typically does not make the theorem much more
       useful.  Similarly, one could use non-freeness hypotheses instead of DV
       conditions but since this result is typically used when ` z ` is a dummy
       variable, this would not be of much benefit.  One could also remove
       DV(z,x) since in the proof ~ nfv can be replaced with ~ nfal followed by
       ~ nfn .

       Remark: ~ nfald uses ~ ax-11 ; it might be possible to inline and use
       ~ ax11w instead, but there is still a use via ~ 19.12 anyway.
       (Contributed by BJ, 20-Oct-2021.)
       (Proof modification is discouraged.) $)
    bj-dvelimdv $p |- ( ( ph /\ -. A. x x = y ) -> F/ x ps ) $=
      ( weq wi wal wn wa equsalvw bicomi nfv nfan wnf nfeqf2 adantl nfimd nfald
      adantr nfxfrd ) BFEJZCKZFLZADEJDLMZNZDUHBCBFEIOPUJUGDFAUIFAFQUIFQRUJUFCDU
      IUFDSADEFTUAACDSUIHUDUBUCUE $.

    $( Curried (exported) form of ~ bj-dvelimdv .  (Contributed by BJ,
       20-Oct-2021.)  (Proof modification is discouraged.) $)
    bj-dvelimdv1 $p |- ( ph -> ( -. A. x x = y -> F/ x ps ) ) $=
      ( weq wal wn wnf wi nfeqf2 nfimt syl2imc alrimdv bj-nfalt equsalvw nfbii
      bj-syl66ib ) ADEJDKLZBDMFEJZCNZDMZFKUEFKZDMAUCUFFUCUDDMACDMUFDEFOHUDCDPQR
      UEFDSUGBDCBFEITUAUB $.
  $}

  ${
    $d x z $.  $d y z $.  $d ph z $.
    bj-dvelimv.nf $e |- F/ x ps $.
    bj-dvelimv.is $e |- ( z = y -> ( ps <-> ph ) ) $.
    $( A version of ~ dvelim using the "non-free" idiom.  (Contributed by BJ,
       20-Oct-2021.)  (Proof modification is discouraged.) $)
    bj-dvelimv $p |- ( -. A. x x = y -> F/ x ph ) $=
      ( weq wal wn wnf wi wtru nfv a1i bj-dvelimdv1 trud ) CDHCIJACKLMABCDEMCNB
      CKMFOGPQ $.
  $}

  ${
    $d t x z $.  $d t y $.
    $( Non-freeness in an equality.  (Contributed by BJ, 20-Oct-2021.)
       (Proof modification is discouraged.) $)
    bj-nfeel2 $p |- ( -. A. x x = y -> F/ x y e. z ) $=
      ( vt wel nfv elequ1 bj-dvelimv ) BCEDCEZABDIAFDBCGH $.
  $}

  ${
    $d t x $.  $d t y $.  $d t z $.
    $( Proof of a version of ~ axc14 using the "non-free" idiom.  (Contributed
       by BJ, 20-Oct-2021.)  (Proof modification is discouraged.) $)
    bj-axc14nf $p |-
         ( -. A. z z = x -> ( -. A. z z = y -> F/ z x e. y ) ) $=
      ( vt weq wal wn wel nfnae bj-nfeel2 elequ2 bj-dvelimdv1 ) CAECFGABHADHCBD
      CACICADJDBAKL $.
  $}

  $( Alternate proof of ~ axc14 (even when inlining the above results, this
     gives a shorter proof).  (Contributed by BJ, 20-Oct-2021.)
     (Proof modification is discouraged.) $)
  bj-axc14 $p |-
         ( -. A. z z = x -> ( -. A. z z = y -> ( x e. y -> A. z x e. y ) ) ) $=
    ( weq wal wn wel wnf wi bj-axc14nf nf5r a1i syld ) CADCEFZCBDCEFABGZCHZOOCE
    IZABCJPQINOCKLM $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Set theory
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Eliminability of class terms
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, we give a sketch of the proof of the Eliminability Theorem
  for class terms in an extensional set theory where quantification occurs only
  over set variables.

  Eliminability of class variables using the $a-statements ~ ax-ext ,
  ~ df-clab , ~ df-cleq , ~ df-clel is an easy result, proved for instance in
  Appendix X of Azriel Levy, _Basic Set Theory_, Dover Publications, 2002.
  Note that viewed from the set.mm axiomatization, it is a metatheorem not
  formalizable is set.mm.  It states: every formula in the language of
  FOL + ` e. ` + class terms, but without class variables, is provably
  equivalent (over {FOL, ~ ax-ext , ~ df-clab , ~ df-cleq , ~ df-clel }) to a
  formula in the language of FOL + ` e. ` (that is, without class terms).

  The proof goes by induction on the complexity of the formula (see op. cit.
  for details).  The base case is that of atomic formulas.  The atomic formulas
  containing class terms are of one of the following forms:
  for equality,
  ` x = { y | ph } ` , ` { x | ph } = y ` , ` { x | ph } = { y | ps } ` ,
  and for membership,
  ` y e. { x | ph } ` , ` { x | ph } e. y ` , ` { x | ph } e. { y | ps } ` .
  These cases are dealt with by ~ eliminable1 and the following theorems of
  this section, which are special instances of ~ df-clab , ~ dfcleq (proved
  from {FOL, ~ ax-ext , ~ df-cleq }), and ~ df-clel .  Indeed, denote by (i)
  the formula proved by "eliminablei".  One sees that the RHS of (1) has no
  class terms, the RHS's of (2x) have only class terms of the form dealt with
  by (1), and the RHS's of (3x) have only class terms of the forms dealt with
  by (1) and (2a).  Note that in order to prove ~ eliminable2a , ~ eliminable2b
  and ~ eliminable3a , we need to substitute a class variable for a setvar
  variable.  This is possible because setvars are class terms: this is the
  content of the syntactic theorem ~ cv , which is used in these proofs (this
  does not appear in the html pages but it is in the set.mm file and you can
  check it using the Metamath program).

  The induction step relies on the fact that any formula is a FOL-combination
  of atomic formulas, so if one found equivalents for all atomic formulas
  constituting the formula, then the same FOL-combination of these equivalents
  will be equivalent to the original formula.

  Note that one has a slightly more precise result: if the original formula has
  only class terms appearing in atomic formulas of the form
   ` y e. { x | ph } ` , then ~ df-clab is sufficient (over FOL) to eliminate
  class terms, and if the original formula has only class terms appearing in
  atomic formulas of the form ` y e. { x | ph } ` and equalities, then
  ~ df-clab , ~ ax-ext and ~ df-cleq are sufficient (over FOL) to eliminate
  class terms.

  To prove that { ~ df-clab , ~ df-cleq , ~ df-clel } provides a definitional
  extension of {FOL, ~ ax-ext }, one needs to prove the above Eliminability
  Theorem, which compares the expressive powers of the languages with and
  without class terms, and the Conservativity Theorem, which compares the
  deductive powers when one adds { ~ df-clab , ~ df-cleq , ~ df-clel }.  It
  states that a formula without class terms is provable in one axiom system if
  and only if it is provable in the other, and that this remains true when one
  adds further definitions to {FOL, ~ ax-ext }.  It is also proved in op. cit.
  The proof is more difficult, since one has to construct for each proof of a
  statement without class terms, an associated proof not using { ~ df-clab ,
  ~ df-cleq , ~ df-clel }.  It involves a careful case study on the structure
  of the proof tree.

$)

  $( A theorem used to prove the base case of the Eliminability Theorem (see
     section comment).  (Contributed by BJ, 19-Oct-2019.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  eliminable1 $p |- ( y e. { x | ph } <-> [ y / x ] ph ) $=
    ( df-clab ) ACBD $.

  ${
    $d x z $.  $d y z $.  $d ph z $.  $d ps z $.
    $( A theorem used to prove the base case of the Eliminability Theorem (see
       section comment).  (Contributed by BJ, 19-Oct-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    eliminable2a $p |-
                  ( x = { y | ph } <-> A. z ( z e. x <-> z e. { y | ph } ) ) $=
      ( cv cab dfcleq ) DBEACFG $.

    $( A theorem used to prove the base case of the Eliminability Theorem (see
       section comment).  (Contributed by BJ, 19-Oct-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    eliminable2b $p |-
                  ( { x | ph } = y <-> A. z ( z e. { x | ph } <-> z e. y ) ) $=
      ( cab cv dfcleq ) DABECFG $.

    $( A theorem used to prove the base case of the Eliminability Theorem (see
       section comment).  (Contributed by BJ, 19-Oct-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    eliminable2c $p |- ( { x | ph } = { y | ps } <->
                              A. z ( z e. { x | ph } <-> z e. { y | ps } ) ) $=
      ( cab dfcleq ) EACFBDFG $.

    $( A theorem used to prove the base case of the Eliminability Theorem (see
       section comment).  (Contributed by BJ, 19-Oct-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    eliminable3a $p |-
                   ( { x | ph } e. y <-> E. z ( z = { x | ph } /\ z e. y ) ) $=
      ( cab cv df-clel ) DABECFG $.

    $( A theorem used to prove the base case of the Eliminability Theorem (see
       section comment).  (Contributed by BJ, 19-Oct-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    eliminable3b $p |- ( { x | ph } e. { y | ps } <->
                                E. z ( z = { x | ph } /\ z e. { y | ps } ) ) $=
      ( cab df-clel ) EACFBDFG $.
  $}

  ${
    $d x A $.
    $( Every class can be written as (is equal to) a class abstraction.
       ~ cvjust is a special instance of it, but the present proof does not
       require ~ ax-13 , contrary to ~ cvjust .  This theorem requires
       ~ ax-ext , ~ df-clab , ~ df-cleq , ~ df-clel , but to prove that any
       specific class term not containing class variables is a setvar or can be
       written as (is equal to) a class abstraction does not require these
       $a-statements.  This last fact is a metatheorem, consequence of the fact
       that the only $a-statements with typecode ` class ` are ~ cv , ~ cab and
       statements corresponding to defined class constructors.

       UPDATE:  This theorem is (almost) ~ abid2 and ~ bj-abid2 , though the
       present proof is shorter than a proof from ~ bj-abid2 and ~ eqcomi (and
       is shorter than the proof of either); plus, it is of the same form as
       ~ cvjust and such a basic statement deserves to be present in both
       forms.  Note that ~ bj-termab shortens the proof of ~ abid2 , and
       shortens five proofs by a total of 72 bytes.  Move it to Main as "abid1"
       proved from ~ abbi2i ?  Note also that this is the form in Quine, more
       than ~ abid2 .  (Contributed by BJ, 21-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-termab $p |- A = { x | x e. A } $=
      ( cv wcel biid bj-abbi2i ) ACBDZABGEF $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Classes without extensionality
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  A few results about classes can be proved without using ~ ax-ext .  One could
  move all theorems from ~ cab to ~ df-clel (except for ~ dfcleq and ~ cvjust )
  in a subsection "Classes" before the subsection on the axiom of
  extensionality, together with the theorems below.  In that subsection, the
  last statement should be ~ df-cleq .

  Note that without ~ ax-ext , the $a-statements ~ df-clab , ~ df-cleq , and
  ~ df-clel are no longer eliminable (see previous section) (but PROBABLY are
  still conservative).  This is not a reason not to study what is provable
  with them but without ~ ax-ext , in order to gauge their strengths more
  precisely.

  Before that subsection, a subsection "The membership predicate" could group
  the statements with ` e. ` that are currently in the FOL part (including
  ~ wcel , ~ wel , ~ ax-8 , ~ ax-9 ).

  Remark: the weakening of ~ eleq1 / ~ eleq2 to ~ eleq1w / ~ eleq2w can also
  be done with ~ eleq1i , ~ eqeltri , ~ eqeltrri , ~ eleq1a , ~ eleq1d ,
  ~ eqeltrd , ~ eqeltrrd , ~ eqneltrd , ~ eqneltrrd , ~ nelneq .

$)

  ${
    $d x z $.  $d y z $.  $d ph z $.
    $( An instance of ~ df-clel where the LHS (the definiendum) has the form
       "setvar ` e. ` class abstraction".  The straightforward yet important
       fact that this statement can be proved from FOL= and ~ df-clab (hence
       without ~ df-clel or ~ df-cleq ) was stressed by Mario Carneiro.  The
       instance of ~ df-clel where the LHS has the form "setvar ` e. ` setvar"
       is proved as ~ cleljust , from FOL= and ~ ax-8 .  Note: when ~ df-ssb is
       the official definition for substitution, one can use bj-ssbequ instead
       of ~ sbequ to prove ~ bj-cleljustab from Tarski's FOL= with ~ df-clab .
       (Contributed by BJ, 8-Nov-2021.)
       (Proof modification is discouraged.) $)
    bj-cleljustab $p |-
                   ( x e. { y | ph } <-> E. z ( z = x /\ z e. { y | ph } ) ) $=
      ( cv cab wcel wsb weq wa df-clab ax6ev biantrur 19.41v bicomi sbequ exbii
      wex wb 3bitri equcoms pm5.32i anbi2i ) BEACFZGACBHZDBIZACDHZJZDRZUFDEUDGZ
      JZDRABCKUEUFDRZUEJZUFUEJZDRZUIULUEDBLMUOUMUFUEDNOUNUHDUFUEUGUEUGSBDABDCPU
      AUBQTUHUKDUGUJUFUJUGADCKOUCQT $.
  $}

  ${
    $d z y A $.  $d z x $.
    $( Remove dependency on ~ ax-ext (and ~ df-cleq ) from ~ clelsb3 .
       (Contributed by BJ, 24-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-clelsb3 $p |- ( [ x / y ] y e. A <-> x e. A ) $=
      ( vz cv wcel wsb nfv sbco2 eleq1w sbie sbbii 3bitr3i ) DECFZDBGZBAGNDAGBE
      CFZBAGAECFZNDABNBHIOPBANPDBPDHDBCJKLNQDAQDHDACJKM $.
  $}

  ${
    $d y A $.  $d x z $.
    bj-hblem.1 $e |- ( y e. A -> A. x y e. A ) $.
    $( Remove dependency on ~ ax-ext (and ~ df-cleq ) from ~ hblem .
       (Contributed by BJ, 24-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-hblem $p |- ( z e. A -> A. x z e. A ) $=
      ( cv wcel wsb wal hbsb bj-clelsb3 albii 3imtr3i ) BFDGZBCHZOAICFDGZPAINBC
      AEJCBDKZOPAQLM $.
  $}

  ${
    $d x y z $.  $d y z A $.
    $( Remove dependency on ~ ax-ext (and ~ df-cleq and ~ ax-13 ) from
       ~ nfcjust .  (Contributed by BJ, 24-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-nfcjust $p |- ( A. y F/ x y e. A <-> A. z F/ x z e. A ) $=
      ( cv wcel wnf weq nfv eleq1w nfbidf bj-cbvalvv ) BEDFZAGCEDFZAGBCBCHZMNAO
      AIBCDJKL $.
  $}

  ${
    $d x y z $.  $d z A $.
    bj-nfcri.1 $e |- F/_ x A $.
    $( Remove dependency on ~ ax-ext (and ~ df-cleq ) from ~ nfcrii .
       (Contributed by BJ, 6-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-nfcrii $p |- ( y e. A -> A. x y e. A ) $=
      ( vz cv wcel wnfc wnf nfcr ax-mp nf5ri bj-hblem ) AEBCEFCGZAACHNAIDAECJKL
      M $.

    $( Remove dependency on ~ ax-ext (and ~ df-cleq ) from ~ nfcri .
       (Contributed by BJ, 6-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-nfcri $p |- F/ x y e. A $=
      ( cv wcel bj-nfcrii nf5i ) BECFAABCDGH $.
  $}

  ${
    $d x z $.  $d y z $.  $d z A $.
    bj-nfnfc.1 $e |- F/_ x A $.
    $( Remove dependency on ~ ax-ext (and ~ df-cleq ) from ~ nfnfc .
       (Contributed by BJ, 6-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-nfnfc $p |- F/ x F/_ y A $=
      ( vz wnfc cv wcel wnf wal df-nfc bj-nfcri nfnf nfal nfxfr ) BCFEGCHZBIZEJ
      ABECKQAEPABAECDLMNO $.
  $}

  $( Closed form of ~ bj-vexw .  (Contributed by BJ, 14-Jun-2019.)
     (Proof modification is discouraged.)  Use ~ bj-vexwvt instead when
     sufficient.  (New usage is discouraged.) $)
  bj-vexwt $p |- ( A. x ph -> y e. { x | ph } ) $=
    ( wal wsb cv cab wcel stdpc4 df-clab sylibr ) ABDABCECFABGHABCIACBJK $.

  ${
    bj-vexw.1 $e |- ph $.
    $( If ` ph ` is a theorem, then any set belongs to the class
       ` { x | ph } ` .  Therefore, ` { x | ph } ` is "a" universal class.

       This is the closest one can get to defining a universal class, or
       proving ~ vex , without using ~ ax-ext .  Note that this theorem has no
       dv condition and does not use ~ df-clel nor ~ df-cleq either: only
       first-order logic and ~ df-clab .

       Without ~ ax-ext , one cannot define "the" universal class, since one
       could not prove for instance the justification theorem
       ` { x | T. } = { y | T. } ` (see ~ vjust ).  Indeed, in order to prove
       any equality of classes, one needs ~ df-cleq , which has ~ ax-ext as a
       hypothesis.  Therefore, the classes ` { x | T. } ` ,
       ` { y | ( ph -> ph ) } ` , ` { z | ( A. t t = t -> A. t t = t ) } ` and
       countless others are all universal classes whose equality one cannot
       prove without ~ ax-ext .  See also ~ bj-issetw .

       A version with a dv condition between ` x ` and ` y ` and not requiring
       ~ ax-13 is proved as ~ bj-vexwv , while the degenerate instance is a
       simple consequence of ~ abid .  (Contributed by BJ, 13-Jun-2019.)
       (Proof modification is discouraged.)  Use ~ bj-vexwv instead when
       sufficient.  (New usage is discouraged.) $)
    bj-vexw $p |- y e. { x | ph } $=
      ( cv cab wcel bj-vexwt mpg ) ACEABFGBABCHDI $.
  $}

  ${
    $d x y $.
    $( Closed form of ~ bj-vexwv and version of ~ bj-vexwt with a dv condition,
       which does not require ~ ax-13 .  (Contributed by BJ, 13-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-vexwvt $p |- ( A. x ph -> y e. { x | ph } ) $=
      ( wal wsb cv cab wcel bj-stdpc4v df-clab sylibr ) ABDABCECFABGHABCIACBJK
      $.
  $}

  ${
    $d x y $.
    bj-vexwv.1 $e |- ph $.
    $( Version of ~ bj-vexw with a dv condition, which does not require
       ~ ax-13 .  The degenerate instance of ~ bj-vexw is a simple consequence
       of ~ abid (which does not depend on ~ ax-13 either).  (Contributed by
       BJ, 13-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-vexwv $p |- y e. { x | ph } $=
      ( cv cab wcel bj-vexwvt mpg ) ACEABFGBABCHDI $.
  $}

  ${
    $d x A $.  $d y A $.  $d x z $.  $d y z $.
    $( This would be the justification for the definition of the unary
       predicate "E!" by ` |- ( ` E! ` A <-> E. x x = A ) ` which could be
       interpreted as " ` A ` exists" or " ` A ` denotes".  It is interesting
       that this justification can be proved without ~ ax-ext nor ~ df-cleq
       (but of course using ~ df-clab and ~ df-clel ).  Once extensionality is
       postulated, then ~ isset will prove that "existing" (as a set) is
       equivalent to being a member of a class.

       Note that there is no dv condition on ` x , y ` but the theorem does not
       depend on ~ ax-13 .  Actually, the proof depends only on ax-1--7 and
       ~ sp .

       The symbol "E!" was chosen to be reminiscent of the analogous predicate
       in (inclusive or non-inclusive) free logic, which deals with the
       possibility of non-existent objects.  This analogy should not be taken
       too far, since here there are no equality axioms for classes: they are
       derived from ~ ax-ext (e.g., ~ eqid ).  In particular, one cannot even
       prove ` |- E. x x = A => |- A = A ` .

       With ~ ax-ext , the present theorem is obvious from ~ cbvexv and ~ eqeq1
       (in free logic, the same proof holds since one has equality axioms for
       terms).  (Contributed by BJ, 29-Apr-2019.)
       (Proof modification is discouraged.) $)
    bj-denotes $p |- ( E. x x = A <-> E. y y = A ) $=
      ( vz cv wceq wex wi cab wcel wa id bj-vexwv biantru exbii df-clel 3bitr2i
      bicomi bitri ) AEZCFZAGZBEZCFZUCDEZUEFZUFHZDIZJZKZBGZUDBGUBUATUHJZKZAGCUH
      JUKUAUMAULUAUGDAUFLZMNOACUHPBCUHPQUJUDBUDUJUIUDUGDBUNMNROS $.
  $}

  ${
    $d y A $.  $d z x $.  $d z A $.  $d z ph $.
    $( Closed form of ~ bj-issetw .  (Contributed by BJ, 29-Apr-2019.)
       (Proof modification is discouraged.) $)
    bj-issetwt $p |- ( A. x ph -> ( A e. { x | ph } <-> E. y y = A ) ) $=
      ( vz wal cab wcel cv wceq wa wex wb df-clel a1i bj-vexwvt biantrud bicomd
      exbidv bj-denotes 3bitrd ) ABFZDABGZHZEIZDJZUEUCHZKZELZUFELZCIDJCLZUDUIMU
      BEDUCNOUBUHUFEUBUFUHUBUGUFABEPQRSUJUKMUBECDTOUA $.
  $}

  ${
    $d y A $.
    bj-issetw.1 $e |- ph $.
    $( The closest one can get to ~ isset without using ~ ax-ext .  See also
       ~ bj-vexw .  Note that the only dv condition is between ` y ` and
       ` A ` .  (Contributed by BJ, 29-Apr-2019.)
       (Proof modification is discouraged.) $)
    bj-issetw $p |- ( A e. { x | ph } <-> E. y y = A ) $=
      ( cab wcel cv wceq wex wb bj-issetwt mpg ) ADABFGCHDICJKBABCDLEM $.
  $}

  ${
    $d x A $.  $d x V $.
    $( Version of ~ bj-elisset with a dv condition on ` x , V ` .  This proof
       uses only ~ df-ex , ~ ax-gen , ~ ax-4 and ~ df-clel on top of
       propositional calculus.  Prefer its use over ~ bj-elisset when
       sufficient.  (Contributed by BJ, 14-Sep-2019.)
       (Proof modification is discouraged.) $)
    bj-elissetv $p |- ( A e. V -> E. x x = A ) $=
      ( wcel cv wceq wa wex df-clel exsimpl sylbi ) BCDAEZBFZLCDZGAHMAHABCIMNAJ
      K $.
  $}

  ${
    $d x A $.  $d y A $.  $d y V $.
    $( Remove from ~ elisset dependency on ~ ax-ext (and on ~ df-cleq and
       ~ df-v ).  This proof uses only ~ df-clab and ~ df-clel on top of
       first-order logic.  It only requires ax-1--7 and ~ sp .  Use
       ~ bj-elissetv instead when sufficient (in particular when ` V ` is
       substituted for ` _V ` ).  (Contributed by BJ, 29-Apr-2019.)
       (Proof modification is discouraged.) $)
    bj-elisset $p |- ( A e. V -> E. x x = A ) $=
      ( vy wcel cv wceq wex bj-elissetv bj-denotes sylib ) BCEDFBGDHAFBGAHDBCID
      ABJK $.
  $}

  ${
    $d x A $.  $d x V $.
    bj-issetiv.1 $e |- A e. V $.
    $( Version of ~ bj-isseti with a dv condition on ` x , V ` .  This proof
       uses only ~ df-ex , ~ ax-gen , ~ ax-4 and ~ df-clel on top of
       propositional calculus.  Prefer its use over ~ bj-isseti when sufficient
       (in particular when ` V ` is substituted for ` _V ` ).  (Contributed by
       BJ, 14-Sep-2019.)  (Proof modification is discouraged.) $)
    bj-issetiv $p |- E. x x = A $=
      ( wcel cv wceq wex bj-elissetv ax-mp ) BCEAFBGAHDABCIJ $.
  $}

  ${
    $d x A $.
    bj-isseti.1 $e |- A e. V $.
    $( Remove from ~ isseti dependency on ~ ax-ext (and on ~ df-cleq and
       ~ df-v ).  This proof uses only ~ df-clab and ~ df-clel on top of
       first-order logic.  It only uses ~ ax-12 among the auxiliary logical
       axioms.  The hypothesis uses ` V ` instead of ` _V ` for extra
       generality.  This is indeed more general as long as ~ elex is not
       available.  Use ~ bj-issetiv instead when sufficient (in particular when
       ` V ` is substituted for ` _V ` ).  (Contributed by BJ, 13-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-isseti $p |- E. x x = A $=
      ( wcel cv wceq wex bj-elisset ax-mp ) BCEAFBGAHDABCIJ $.
  $}

  ${
    bj-ralvw.1 $e |- ps $.
    $( A weak version of ~ ralv not using ~ ax-ext (nor ~ df-cleq , ~ df-clel ,
       ~ df-v ), but using ~ ax-13 .  For the sake of illustration, the next
       theorem ~ bj-rexvwv , a weak version of ~ rexv , has a dv condition and
       avoids dependency on ~ ax-13 , while the analogues for ~ reuv and ~ rmov
       are not proved.  (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-ralvw $p |- ( A. x e. { y | ps } ph <-> A. x ph ) $=
      ( cab wral cv wcel wi wal df-ral bj-vexw a1bi albii bitr4i ) ACBDFZGCHQIZ
      AJZCKACKACQLASCRABDCEMNOP $.
  $}

  ${
    $d x y $.
    bj-rexvwv.1 $e |- ps $.
    $( A weak version of ~ rexv not using ~ ax-ext (nor ~ df-cleq , ~ df-clel ,
       ~ df-v ) with an additional dv condition to avoid dependency on ~ ax-13
       as well.  See ~ bj-ralvw .  (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-rexvwv $p |- ( E. x e. { y | ps } ph <-> E. x ph ) $=
      ( cab wrex cv wcel wa wex df-rex bj-vexwv biantrur exbii bitr4i ) ACBDFZG
      CHQIZAJZCKACKACQLASCRABDCEMNOP $.
  $}

  ${
    $d x y $.
    bj-rababwv.1 $e |- ps $.
    $( A weak version of ~ rabab not using ~ df-clel nor ~ df-v (but requiring
       ~ ax-ext ).  A version without dv condition is provable by replacing
       ~ bj-vexwv with ~ bj-vexw in the proof, hence requiring ~ ax-13 .
       (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-rababwv $p |- { x e. { y | ps } | ph } = { x | ph } $=
      ( cab crab cv wcel wa df-rab bj-vexwv biantrur bj-abbii eqtr4i ) ACBDFZGC
      HPIZAJZCFACFACPKARCQABDCELMNO $.
  $}

  ${
    $d x y $.  $d y A $.
    $( Remove from ~ ralcom4 dependency on ~ ax-ext and ~ ax-13 (and on
       ~ df-or , ~ df-an , ~ df-tru , ~ df-sb , ~ df-clab , ~ df-cleq ,
       ~ df-clel , ~ df-nfc , ~ df-v ).  This proof uses only ~ df-ral on top
       of first-order logic.  (Contributed by BJ, 13-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-ralcom4 $p |- ( A. x e. A A. y ph <-> A. y A. x e. A ph ) $=
      ( cv wcel wal wi wral 19.21v bicomi albii alcom bitri df-ral 3bitr4i ) BE
      DFZACGZHZBGZQAHZBGZCGZRBDIABDIZCGTUACGZBGUCSUEBUESQACJKLUABCMNRBDOUDUBCAB
      DOLP $.

    $( Remove from ~ rexcom4 dependency on ~ ax-ext and ~ ax-13 (and on
       ~ df-or , ~ df-tru , ~ df-sb , ~ df-clab , ~ df-cleq , ~ df-clel ,
       ~ df-nfc , ~ df-v ).  This proof uses only ~ df-rex on top of
       first-order logic.  (Contributed by BJ, 13-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-rexcom4 $p |- ( E. x e. A E. y ph <-> E. y E. x e. A ph ) $=
      ( wex wrex cv wcel wa df-rex 19.42v bicomi exbii excom bitri ) ACEZBDFBGD
      HZPIZBEZABDFZCEZPBDJSQAIZCEZBEZUARUCBUCRQACKLMUDUBBEZCEUAUBBCNUETCTUEABDJ
      LMOOO $.
  $}

  ${
    $d x A $.  $d x y $.  $d x ph $.
    $( Remove from ~ rexcom4a dependency on ~ ax-ext and ~ ax-13 (and on
       ~ df-or , ~ df-sb , ~ df-clab , ~ df-cleq , ~ df-clel , ~ df-nfc ,
       ~ df-v ).  This proof uses only ~ df-rex on top of first-order logic.
       (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-rexcom4a $p |- ( E. x E. y e. A ( ph /\ ps ) <->
                                               E. y e. A ( ph /\ E. x ps ) ) $=
      ( wa wrex wex bj-rexcom4 19.42v rexbii bitr3i ) ABFZDEGCHMCHZDEGABCHFZDEG
      MDCEINODEABCJKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x V $.  $d x y $.  $d x ph $.
    bj-rexcom4bv.1 $e |- B e. V $.
    $( Version of ~ bj-rexcom4b with a dv condition on ` x , V ` , hence
       removing dependency on ~ df-sb and ~ df-clab (so that it depends on
       ~ df-clel and ~ df-rex only on top of first-order logic).  Prefer its
       use over ~ bj-rexcom4b when sufficient (in particular when ` V ` is
       substituted for ` _V ` ).  (Contributed by BJ, 14-Sep-2019.)
       (Proof modification is discouraged.) $)
    bj-rexcom4bv $p |- ( E. x E. y e. A ( ph /\ x = B ) <-> E. y e. A ph ) $=
      ( cv wceq wa wrex wex bj-rexcom4a bj-issetiv biantru rexbii bitr4i ) ABHE
      IZJCDKBLARBLZJZCDKACDKARBCDMATCDSABEFGNOPQ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x y $.  $d x ph $.
    bj-rexcom4b.1 $e |- B e. V $.
    $( Remove from ~ rexcom4b dependency on ~ ax-ext and ~ ax-13 (and on
       ~ df-or , ~ df-cleq , ~ df-nfc , ~ df-v ).  The hypothesis uses ` V `
       instead of ` _V ` (see ~ bj-isseti for the motivation).  Use
       ~ bj-rexcom4bv instead when sufficient (in particular when ` V ` is
       substituted for ` _V ` ).  (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-rexcom4b $p |- ( E. x E. y e. A ( ph /\ x = B ) <-> E. y e. A ph ) $=
      ( cv wceq wa wrex wex bj-rexcom4a bj-isseti biantru rexbii bitr4i ) ABHEI
      ZJCDKBLARBLZJZCDKACDKARBCDMATCDSABEFGNOPQ $.
  $}

  $( The FOL content of ~ ceqsalt .  Lemma for ~ bj-ceqsalt and ~ bj-ceqsaltv .
     (Contributed by BJ, 26-Sep-2019.)  (Proof modification is discouraged.) $)
  bj-ceqsalt0 $p |- ( ( F/ x ps /\ A. x ( th -> ( ph <-> ps ) ) /\ E. x th )
                                           -> ( A. x ( th -> ph ) <-> ps ) ) $=
    ( wnf wb wi wal wex w3a simp3 imim3i al2imi 3ad2ant2 19.23t 3ad2ant1 sylibd
    biimp mpid biimpr imim2i com23 alimi 19.21t mpbid impbid ) BDEZCABFZGZDHZCD
    IZJZCAGZDHZBULUNUKBUGUJUKKULUNCBGZDHZUKBGZUJUGUNUPGUKUIUMUODUHABCABRLMNUGUJ
    UPUQFUKCBDOPQSULBUMGZDHZBUNGZUJUGUSUKUIURDUICBAUHBAGCABTUAUBUCNUGUJUSUTFUKB
    UMDUDPUEUF $.

  ${
    bj-ceqsalt1.1 $e |- ( th -> E. x ch ) $.
    $( The FOL content of ~ ceqsalt .  Lemma for ~ bj-ceqsalt and
       ~ bj-ceqsaltv .  (TODO: consider removing if it does not add anything to
       ~ bj-ceqsalt0 .)  (Contributed by BJ, 26-Sep-2019.)
       (Proof modification is discouraged.) $)
    bj-ceqsalt1 $p |- ( ( F/ x ps /\ A. x ( ch -> ( ph <-> ps ) ) /\ th )
                                           -> ( A. x ( ch -> ph ) <-> ps ) ) $=
      ( wnf wb wi wal w3a 3ad2ant3 biimp imim3i al2imi 3ad2ant2 19.23t 3ad2ant1
      wex sylibd mpid biimpr imim2i com23 alimi 19.21t mpbid impbid ) BEGZCABHZ
      IZEJZDKZCAIZEJZBUMUOCESZBDUIUPULFLUMUOCBIZEJZUPBIZULUIUOURIDUKUNUQEUJABCA
      BMNOPUIULURUSHDCBEQRTUAUMBUNIZEJZBUOIZULUIVADUKUTEUKCBAUJBAICABUBUCUDUEPU
      IULVAVBHDBUNEUFRUGUH $.
  $}

  ${
    $d x A $.
    $( Remove from ~ ceqsalt dependency on ~ ax-ext (and on ~ df-cleq and
       ~ df-v ).  Note: this is not doable with ~ ceqsralt (or ~ ceqsralv ),
       which uses ~ eleq1 , but the same dependence removal is possible for
       ~ ceqsalg , ~ ceqsal , ~ ceqsalv , ~ cgsexg , ~ cgsex2g , ~ cgsex4g ,
       ~ ceqsex , ~ ceqsexv , ~ ceqsex2 , ~ ceqsex2v , ~ ceqsex3v ,
       ~ ceqsex4v , ~ ceqsex6v , ~ ceqsex8v , ~ gencbvex (after changing
       ` A = y ` to ` y = A ` ), ~ gencbvex2 , ~ gencbval , ~ vtoclgft (it uses
       ` F/_ ` , whose justification ~ nfcjust is actually provable without
       ~ ax-ext , as ~ bj-nfcjust shows) and several other vtocl* theorems (see
       for instance ~ bj-vtoclg1f ).  See also ~ bj-ceqsaltv .  (Contributed by
       BJ, 16-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-ceqsalt $p |- ( ( F/ x ps /\ A. x ( x = A -> ( ph <-> ps ) ) /\ A e. V )
                                        -> ( A. x ( x = A -> ph ) <-> ps ) ) $=
      ( wnf cv wceq wb wi wal wcel w3a wex bj-elisset 3anim3i bj-ceqsalt0 syl )
      BCFZCGDHZABIJCKZDELZMSUATCNZMTAJCKBIUBUCSUACDEOPABTCQR $.
  $}

  ${
    $d x A $.  $d x V $.
    $( Version of ~ bj-ceqsalt with a dv condition on ` x , V ` , removing
       dependency on ~ df-sb and ~ df-clab .  Prefer its use over ~ bj-ceqsalt
       when sufficient (in particular when ` V ` is substituted for ` _V ` ).
       (Contributed by BJ, 16-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-ceqsaltv $p |-
                ( ( F/ x ps /\ A. x ( x = A -> ( ph <-> ps ) ) /\ A e. V )
                                        -> ( A. x ( x = A -> ph ) <-> ps ) ) $=
      ( wnf cv wceq wb wi wal wcel w3a wex bj-elissetv 3anim3i bj-ceqsalt0 syl
      ) BCFZCGDHZABIJCKZDELZMSUATCNZMTAJCKBIUBUCSUACDEOPABTCQR $.
  $}

  ${
    bj-ceqsalg0.1 $e |- F/ x ps $.
    bj-ceqsalg0.2 $e |- ( ch -> ( ph <-> ps ) ) $.
    $( The FOL content of ~ ceqsalg .  (Contributed by BJ, 12-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-ceqsalg0 $p |- ( E. x ch -> ( A. x ( ch -> ph ) <-> ps ) ) $=
      ( wnf wb wi wal wex ax-gen bj-ceqsalt0 mp3an12 ) BDGCABHIZDJCDKCAIDJBHEOD
      FLABCDMN $.
  $}

  ${
    $d x A $.
    bj-ceqsalg.1 $e |- F/ x ps $.
    bj-ceqsalg.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Remove from ~ ceqsalg dependency on ~ ax-ext (and on ~ df-cleq and
       ~ df-v ).  See also ~ bj-ceqsalgv .  (Contributed by BJ, 12-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-ceqsalg $p |- ( A e. V -> ( A. x ( x = A -> ph ) <-> ps ) ) $=
      ( wcel cv wceq wex wi wal wb bj-elisset bj-ceqsalg0 syl ) DEHCIDJZCKRALCM
      BNCDEOABRCFGPQ $.

    $( Alternate proof of ~ bj-ceqsalg .  (Contributed by BJ, 12-Oct-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-ceqsalgALT $p |- ( A e. V -> ( A. x ( x = A -> ph ) <-> ps ) ) $=
      ( wnf cv wceq wb wi wal wcel ax-gen bj-ceqsalt mp3an12 ) BCHCIDJZABKLZCMD
      ENRALCMBKFSCGOABCDEPQ $.
  $}

  ${
    $d x A $.  $d x V $.
    bj-ceqsalgv.1 $e |- F/ x ps $.
    bj-ceqsalgv.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Version of ~ bj-ceqsalg with a dv condition on ` x , V ` , removing
       dependency on ~ df-sb and ~ df-clab .  Prefer its use over ~ bj-ceqsalg
       when sufficient (in particular when ` V ` is substituted for ` _V ` ).
       (Contributed by BJ, 12-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-ceqsalgv $p |- ( A e. V -> ( A. x ( x = A -> ph ) <-> ps ) ) $=
      ( wcel cv wceq wex wi wal wb bj-elissetv bj-ceqsalg0 syl ) DEHCIDJZCKRALC
      MBNCDEOABRCFGPQ $.

    $( Alternate proof of ~ bj-ceqsalgv .  (Contributed by BJ, 12-Oct-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-ceqsalgvALT $p |- ( A e. V -> ( A. x ( x = A -> ph ) <-> ps ) ) $=
      ( wnf cv wceq wb wi wal wcel ax-gen bj-ceqsaltv mp3an12 ) BCHCIDJZABKLZCM
      DENRALCMBKFSCGOABCDEPQ $.
  $}

  ${
    $d x A $.
    bj-ceqsal.1 $e |- F/ x ps $.
    bj-ceqsal.2 $e |- A e. _V $.
    bj-ceqsal.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Remove from ~ ceqsal dependency on ~ ax-ext (and on ~ df-cleq , ~ df-v ,
       ~ df-clab , ~ df-sb ).  (Contributed by BJ, 12-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-ceqsal $p |- ( A. x ( x = A -> ph ) <-> ps ) $=
      ( cvv wcel cv wceq wi wal wb bj-ceqsalgv ax-mp ) DHICJDKALCMBNFABCDHEGOP
      $.
  $}

  ${
    $d x A $.  $d x ps $.
    bj-ceqsalv.1 $e |- A e. _V $.
    bj-ceqsalv.2 $e |- ( x = A -> ( ph <-> ps ) ) $.
    $( Remove from ~ ceqsalv dependency on ~ ax-ext (and on ~ df-cleq ,
       ~ df-v , ~ df-clab , ~ df-sb ).  (Contributed by BJ, 12-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-ceqsalv $p |- ( A. x ( x = A -> ph ) <-> ps ) $=
      ( nfv bj-ceqsal ) ABCDBCGEFH $.
  $}

  ${
    $d x A $.  $d x ph $.  $d x ch $.
    bj-spcimdv.1 $e |- ( ph -> A e. B ) $.
    bj-spcimdv.2 $e |- ( ( ph /\ x = A ) -> ( ps -> ch ) ) $.
    $( Remove from ~ spcimdv dependency on ~ ax-9 , ~ ax-10 , ~ ax-11 ,
       ~ ax-13 , ~ ax-ext , ~ df-cleq (and ~ df-nfc , ~ df-v , ~ df-or ,
       ~ df-tru , ~ df-nf ).  For an even more economical version, see
       ~ bj-spcimdvv .  (Contributed by BJ, 30-Nov-2020.)
       (Proof modification is discouraged.) $)
    bj-spcimdv $p |- ( ph -> ( A. x ps -> ch ) ) $=
      ( cv wceq wi wal wcel ex alrimiv wex bj-elisset exim syl5 19.36v syl6ib
      sylc ) ADIEJZBCKZKZDLZEFMZBDLCKZAUEDAUCUDHNOGUFUGUDDPZUHUGUCDPUFUIDEFQUCU
      DDRSBCDTUAUB $.
  $}

  ${
    $d x A $.  $d x B $.  $d x ph $.  $d x ch $.
    bj-spcimdvv.1 $e |- ( ph -> A e. B ) $.
    bj-spcimdvv.2 $e |- ( ( ph /\ x = A ) -> ( ps -> ch ) ) $.
    $( Remove from ~ spcimdv dependency on ~ ax-7 , ~ ax-8 , ~ ax-10 ,
       ~ ax-11 , ~ ax-12 ~ ax-13 , ~ ax-ext , ~ df-cleq , ~ df-clab (and
       ~ df-nfc , ~ df-v , ~ df-or , ~ df-tru , ~ df-nf ) at the price of
       adding a DV condition on ` x , B ` (but in usages, ` x ` is typically a
       dummy, hence fresh, variable).  For the version without this DV
       condition, see ~ bj-spcimdv .  (Contributed by BJ, 3-Nov-2021.)
       (Proof modification is discouraged.) $)
    bj-spcimdvv $p |- ( ph -> ( A. x ps -> ch ) ) $=
      ( cv wceq wi wal wcel ex alrimiv wex bj-elissetv exim syl5 19.36v syl6ib
      sylc ) ADIEJZBCKZKZDLZEFMZBDLCKZAUEDAUCUDHNOGUFUGUDDPZUHUGUCDPUFUIDEFQUCU
      DDRSBCDTUAUB $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The class-form not-free predicate
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, we prove the symmetry of the class-form not-free predicate.

$)

  $( The class-form not-free predicate defines a symmetric binary relation on
     var metavariables (irreflexivity is proved by ~ nfnid with additional
     axioms; see also ~ nfcv ).  This could be proved from ~ aecom and ~ nfcvb
     but the latter requires a domain with at least two objects (hence uses
     extra axioms).  (Contributed by BJ, 30-Sep-2018.)  Proof modification is
     discouraged to avoid use of ~ eqcomd instead of ~ equcomd ; removing
     dependency on ~ ax-ext is possible: prove weak versions (i.e. replace
     classes with setvars) of ~ drnfc1 , ~ eleq2d (using ~ elequ2 ), ~ nfcvf ,
     ~ dvelimc , ~ dvelimdc , ~ nfcvf2 .
     (Proof modification is discouraged.) $)
  bj-nfcsym $p |- ( F/_ x y <-> F/_ y x ) $=
    ( weq wal cv wnfc wb sp equcomd drnfc1 wn nfcvf nfcvf2 2thd pm2.61i ) ABCZA
    DZABEZFZBAEZFZGABRTQABPAHIJQKSUAABLABMNO $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Proposal for the definitions of class membership and class equality
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, we show ( ~ bj-ax8 and ~ bj-ax9 ) that the current forms of
  the definitions of class membership ( ~ df-clel ) and class equality
  ( ~ df-cleq ) are too powerful, and we propose alternate definitions
  ( ~ bj-df-clel and ~ bj-df-cleq ) which also have the advantage of making it
  clear that these definitions are conservative.

$)

  ${
    $d u x $.  $d u y $.  $d u z $.
    $( Proof of ~ ax-8 from ~ df-clel (and FOL).  This shows that ~ df-clel is
       "too powerful".  A possible definition is given by ~ bj-df-clel .
       (Contributed by BJ, 27-Jun-2019.)  Also a direct consequence of
       ~ eleq1w , which has essentially the same proof.
       (Proof modification is discouraged.) $)
    bj-ax8 $p |- ( x = y -> ( x e. z -> y e. z ) ) $=
      ( vu weq wel wa wex equequ2 anbi1d exbidv cv df-clel 3bitr4g biimpd ) ABE
      ZACFZBCFZPDAEZDCFZGZDHDBEZTGZDHQRPUAUCDPSUBTABDIJKDALCLZMDBLUDMNO $.
  $}

  ${
    $d u v w x A $.  $d u v w x B $.
    bj-df-clel.1 $e |- A. u A. v ( u e. v <-> E. w ( w = u /\ w e. v ) ) $.
    $( Candidate definition for ~ df-clel (the need for it is exposed in
       ~ bj-ax8 ).  The similarity of the hypothesis and the conclusion,
       together with all possible dv conditions, makes it clear that this
       definition merely extends to class variables something that is true for
       setvar variables, hence is conservative.  This definition should be
       directly referenced only by ~ bj-dfclel , which should be used instead.
       The proof is irrelevant since this is a proposal for an axiom.

       Note: the current definition ~ df-clel already mentions ~ cleljust as a
       justification; here, we merely propose to put it (more preciesly: its
       universal closure) as a hypothesis to make things more explicit.
       (Contributed by BJ, 27-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-df-clel $p |- ( A e. B <-> E. x ( x = A /\ x e. B ) ) $=
      ( df-clel ) AEFH $.
  $}

  ${
    $d u v w x A $.  $d u v w x B $.
    $( Characterization of the elements of a class.  Note: ~ cleljust could be
       relabeled "clelhyp".  (Contributed by BJ, 27-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-dfclel $p |- ( A e. B <-> E. x ( x = A /\ x e. B ) ) $=
      ( vw vv vu wel weq wa wex wb cleljust gen2 bj-df-clel ) ADEFBCFEGDFHDEGID
      JKFEFEDLMN $.
  $}

  ${
    $d x z $.  $d y z $.  $d u w z $.
    $( Proof of ~ ax-9 from Tarski's FOL=, ~ sp , ~ df-cleq and ~ ax-ext (with
       two extra dv conditions on ` x , z ` and ` y , z ` ).  For a version
       without these dv conditions, see ~ bj-ax9-2 .  This shows that ~ df-cleq
       is "too powerful".  A possible definition is given by ~ bj-df-cleq .
       (Contributed by BJ, 24-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-ax9 $p |- ( x = y -> ( z e. x -> z e. y ) ) $=
      ( vu vw weq wel wb wal wi cv ax-ext df-cleq biimp sps sylbi ) ABFCAGZCBGZ
      HZCIQRJZCDEAKBKDECLMSTCQRNOP $.
  $}

  ${
    $d u v w $.  $d u x $.  $d u y $.  $d u z $.
    $( Proof of ~ ax-9 from Tarski's FOL=, ~ ax-8 (specifically, ~ ax8v1 and
       ~ ax8v2 ) , ~ df-cleq and ~ ax-ext .  For a version not using ~ ax-8 ,
       see ~ bj-ax9 .  This shows that ~ df-cleq is "too powerful".  A possible
       definition is given by ~ bj-df-cleq .  (Contributed by BJ, 24-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-ax9-2 $p |- ( x = y -> ( z e. x -> z e. y ) ) $=
      ( vu vv vw weq wel wi wal wb cv ax-ext df-cleq biimpi biimp ax8v2 equcoms
      sylg ax8v1 imim12d spimvw syl ) ABGZDAHZDBHZIZDJCAHZCBHZIZUDUEUFKZUGDUDUK
      DJDEFALBLEFDMNOUEUFPSUGUJDCDCGUHUEUFUIUHUEICDCDAQRDCBTUAUBUC $.
  $}

  ${
    $d z x $.  $d z y $.
    $( The hypothesis of ~ bj-df-cleq .  Note that the hypothesis of
       ~ bj-df-cleq actually has an additional dv condition on ` x , y ` and
       therefore is provable by simply using ~ ax-ext in place of ~ axext3 in
       the current proof.  (Contributed by BJ, 24-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cleqhyp $p |- ( x = y <-> A. z ( z e. x <-> z e. y ) ) $=
      ( weq wel wb wal bj-elequ2g axext3 impbii ) ABDCAECBEFCGABCHABCIJ $.
  $}

  ${
    $d u v w x A $.  $d u v w x B $.
    bj-df-cleq.1 $e |- A. u A. v ( u = v <-> A. w ( w e. u <-> w e. v ) ) $.
    $( Candidate definition for ~ df-cleq (the need for it is exposed in
       ~ bj-ax9 ).  The similarity of the hypothesis and the conclusion makes
       it clear that this definition merely extends to class variables
       something that is true for setvar variables, hence is conservative.
       This definition should be directly referenced only by ~ bj-dfcleq ,
       which should be used instead.  The proof is irrelevant since this is a
       proposal for an axiom.

       Another definition, which would give finer control, is actually the pair
       of definitions where each has one implication of the present
       biconditional as hypothesis and conclusion.  They assert that
       extensionality (respectively, the left-substitution axiom for the
       membership predicate) extends from setvars to classes.  (Contributed by
       BJ, 24-Jun-2019.)  (Proof modification is discouraged.) $)
    bj-df-cleq $p |- ( A = B <-> A. x ( x e. A <-> x e. B ) ) $=
      ( dfcleq ) AEFH $.
  $}

  ${
    $d u v w x A $.  $d u v w x B $.
    $( Proof of class extensionality from the axiom of set extensionality
       ( ~ ax-ext ) and the definition of class equality ( ~ bj-df-cleq ).
       (Contributed by BJ, 24-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-dfcleq $p |- ( A = B <-> A. x ( x e. A <-> x e. B ) ) $=
      ( vw vv vu weq wel wb wal bj-cleqhyp gen2 bj-df-cleq ) ADEFBCFEGDFHDEHIDJ
      IFEFEDKLM $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Lemmas for class substitution
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Some useful theorems for dealing with substitutions: ~ sbbi , ~ sbcbig ,
  ~ sbcel1g , ~ sbcel2 , ~ sbcel12 , ~  sbceqg , ~ csbvarg .

$)

  ${
    $d x y $.
    $( Substitution in an equality (use the more genereal version ~ bj-sbeq
       instead, without disjoint variable condition).  (Contributed by BJ,
       6-Oct-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    bj-sbeqALT $p |- ( [ y / x ] A = B <-> [_ y / x ]_ A = [_ y / x ]_ B ) $=
      ( wceq cv csb nfcsb1v nfeq weq csbeq1a eqeq12d sbie ) CDEABFZCGZANDGZEABA
      OPANCHANDHIABJCODPANCKANDKLM $.
  $}

  ${
    $d z x $.  $d z y $.  $d z A $.  $d z B $.
    $( Distribute proper substitution through an equality relation.  (See
       ~ sbceqg ).  (Contributed by BJ, 6-Oct-2018.) $)
    bj-sbeq $p |- ( [ y / x ] A = B <-> [_ y / x ]_ A = [_ y / x ]_ B ) $=
      ( vz wceq wsb cv csb wcel wb wal wsbc dfcleq sbbii sbsbc 3bitri cvv albii
      sbcel2 sbcal vex sbcbig ax-mp bibi12i bitr4i ) CDFZABGZEHZABHZCIZJZUIAUJD
      IZJZKZELZUKUMFUHUICJZUIDJZKZAUJMZELZUQAUJMZURAUJMZKZELUPUHUSELZABGVEAUJMV
      AUGVEABECDNOVEABPUSEAUJUAQUTVDEUJRJUTVDKBUBUQURAUJRUCUDSVDUOEVBULVCUNAUJU
      ICTAUJUIDTUESQEUKUMNUF $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y x $.  $d y V $.
    $( Distribute proper substitution through an equality relation.  Alternate
       proof of ~ sbceqg .  (Contributed by BJ, 6-Oct-2018.)  Proof
       modification is discouraged to avoid using ~ sbceqg , but "minimize
       */except sbceqg" is ok.  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    bj-sbceqgALT $p |- ( A e. V -> ( [. A / x ]. B = C <->
      [_ A / x ]_ B = [_ A / x ]_ C ) ) $=
      ( vy wcel wceq wsbc cv csb wb wal dfcleq sbcth sbcbig mpbid albidv sbcel2
      a1i sbcal syl6bb bibi12d 3bitrd syl6bbr ) BEGZCDHZABIZFJZABCKZGZUIABDKZGZ
      LZFMZUJULHUFUHUICGZUIDGZLZABIZFMZUPABIZUQABIZLZFMUOUFUHURFMZABIZUTUFUGVDL
      ZABIUHVELVFABEFCDNOUGVDABEPQURFABUAUBUFUSVCFUPUQABEPRUFVCUNFUFVAUKVBUMVAU
      KLUFABUICSTVBUMLUFABUIDSTUCRUDFUJULNUE $.
  $}

  ${
    $d y x A $.
    $( Lemma for ~ bj-csbsn (in this lemma, ` x ` cannot occur in ` A ` ).
       (Contributed by BJ, 6-Oct-2018.)  (New usage is discouraged.) $)
    bj-csbsnlem $p |- [_ A / x ]_ { x } = { A } $=
      ( vy cv csn csb wcel wsbc cab wceq abid df-sbc wex weq clelab velsn exbii
      wa cvv 3bitri anbi2i eqeq2 pm5.32i 19.41v simpr eqvisset syl ancri impbii
      elisset df-csb eleq2i 3bitr4i eqriv ) CABADZEZFZBEZCDZUSUPGZABHZCIZGZUSBJ
      ZUSUQGUSURGVCVABUTAIGZVDVACKUTABLVEUOBJZUTRZAMVFCANZRZAMZVDUTABOVGVIAUTVH
      VFCUOPUAQVJVFVDRZAMVFAMZVDRZVDVIVKAVFVHVDUOBUSUBUCQVFVDAUDVMVDVLVDUEVDVLV
      DBSGVLCBUFABSUJUGUHUITTTUQVBUSACBUPUKULCBPUMUN $.
  $}

  ${
    $d y x $.  $d y A $.
    $( Substitution in a singleton.  (Contributed by BJ, 6-Oct-2018.) $)
    bj-csbsn $p |- [_ A / x ]_ { x } = { A } $=
      ( vy cv csn csb bj-csbsnlem csbeq2i csbco 3eqtr3i ) CBACDZADEZFZFCBKEZFAB
      LFBECBMNAKGHACBLICBGJ $.
  $}

  ${
    $d x B $.
    $( Version of ~ sbcel1g when substituting a set.  (Note: one could have a
       corresponding version of ~ sbcel12 when substituting a set, but the
       point here is that the antecedent of ~ sbcel1g is not needed when
       substituting a set.)  (Contributed by BJ, 6-Oct-2018.) $)
    bj-sbel1 $p |- ( [ y / x ] A e. B <-> [_ y / x ]_ A e. B ) $=
      ( wcel wsb cv wsbc csb sbsbc cvv wb vex sbcel1g ax-mp bitri ) CDEZABFQABG
      ZHZARCIDEZQABJRKESTLBMARCDKNOP $.
  $}

  ${
    $d y x $.  $d y ph $.
    $( The class of sets verifying a tautology is the universal class.
       (Contributed by BJ, 24-Jul-2019.)
       (Proof modification is discouraged.) $)
    bj-abv $p |- ( A. x ph -> { x | ph } = _V ) $=
      ( vy wal cv cab wcel cvv wceq ax-5 bj-vexwvt alrimih eqv sylibr ) ABDZCEA
      BFZGZCDPHIOQCOCJABCKLCPMN $.
  $}

  ${
    $d y x $.  $d y ph $.
    $( The class of sets verifying a falsity is the empty set (closed form of
       ~ abf ).  (Contributed by BJ, 24-Jul-2019.)
       (Proof modification is discouraged.) $)
    bj-ab0 $p |- ( A. x -. ph -> { x | ph } = (/) ) $=
      ( vy wn wal cv cab wcel c0 wceq ax-5 wsb bj-stdpc4v sylib df-clab sylnibr
      sbn alrimih eq0 sylibr ) ADZBEZCFABGZHZDZCEUCIJUBUECUBCKUBABCLZUDUBUABCLU
      FDUABCMABCQNACBOPRCUCST $.
  $}

  ${
    bj-abf.1 $e |- -. ph $.
    $( Shorter proof of ~ abf (which should be kept as abfALT).  (Contributed
       by BJ, 24-Jul-2019.)  (Proof modification is discouraged.) $)
    bj-abf $p |- { x | ph } = (/) $=
      ( wn cab c0 wceq bj-ab0 mpg ) ADABEFGBABHCI $.
  $}

  ${
    $d y x $.  $d y A $.  $d y B $.
    $( More direct proof of ~ csbprc (fewer essential steps).  (Contributed by
       BJ, 24-Jul-2019.)  (Proof modification is discouraged.) $)
    bj-csbprc $p |- ( -. A e. _V -> [_ A / x ]_ B = (/) ) $=
      ( vy cvv wcel wn csb cv wsbc cab c0 df-csb wal sbcex con3i alrimiv bj-ab0
      wceq syl syl5eq ) BEFZGZABCHDICFZABJZDKZLADBCMUCUEGZDNUFLSUCUGDUEUBUDABOP
      QUEDRTUA $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Removing some dv conditions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    bj-exlimmpi.nf $e |- F/ x ps $.
    bj-exlimmpi.maj $e |- ( ch -> ( ph -> ps ) ) $.
    bj-exlimmpi.min $e |- ph $.
    $( Lemma for ~ bj-vtoclg1f1 (an instance of this lemma is a version of
       ~ bj-vtoclg1f1 where ` x ` and ` y ` are identified).  (Contributed by
       BJ, 30-Apr-2019.)  (Proof modification is discouraged.) $)
    bj-exlimmpi $p |- ( E. x ch -> ps ) $=
      ( mpi exlimi ) CBDECABGFHI $.
  $}

  ${
    bj-exlimmpbi.nf $e |- F/ x ps $.
    bj-exlimmpbi.maj $e |- ( ch -> ( ph <-> ps ) ) $.
    bj-exlimmpbi.min $e |- ph $.
    $( Lemma for theorems of the ~ vtoclg family.  (Contributed by BJ,
       3-Oct-2019.)  (Proof modification is discouraged.) $)
    bj-exlimmpbi $p |- ( E. x ch -> ps ) $=
      ( mpbii exlimi ) CBDECABGFHI $.
  $}

  ${
    bj-exlimmpbir.nf $e |- F/ x ph $.
    bj-exlimmpbir.maj $e |- ( ch -> ( ph <-> ps ) ) $.
    bj-exlimmpbir.min $e |- ps $.
    $( Lemma for theorems of the ~ vtoclg family.  (Contributed by BJ,
       3-Oct-2019.)  (Proof modification is discouraged.) $)
    bj-exlimmpbir $p |- ( E. x ch -> ph ) $=
      ( mpbiri exlimi ) CADECABGFHI $.
  $}

  ${
    $d x A $.  $d x V $.
    bj-vtoclf.nf $e |- F/ x ps $.
    bj-vtoclf.s $e |- A e. V $.
    bj-vtoclf.maj $e |- ( x = A -> ( ph <-> ps ) ) $.
    bj-vtoclf.min $e |- ph $.
    $( Remove dependency on ~ ax-ext , ~ df-clab and ~ df-cleq (and ~ df-sb and
       ~ df-v ) from ~ vtoclf .  (Contributed by BJ, 6-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-vtoclf $p |- ps $=
      ( cv wceq wi bj-issetiv biimpd eximii 19.36i mpg ) ABCABCFCJDKZABLCCDEGMR
      ABHNOPIQ $.
  $}

  ${
    $d x A $.  $d x ps $.  $d x V $.
    bj-vtocl.s $e |- A e. V $.
    bj-vtocl.maj $e |- ( x = A -> ( ph <-> ps ) ) $.
    bj-vtocl.min $e |- ph $.
    $( Remove dependency on ~ ax-ext , ~ df-clab and ~ df-cleq (and ~ df-sb and
       ~ df-v ) from ~ vtocl .  (Contributed by BJ, 6-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-vtocl $p |- ps $=
      ( nfv bj-vtoclf ) ABCDEBCIFGHJ $.
  $}

  ${
    $d x A $.  $d y A $.
    bj-vtoclg1f1.nf $e |- F/ x ps $.
    bj-vtoclg1f1.maj $e |- ( x = A -> ( ph -> ps ) ) $.
    bj-vtoclg1f1.min $e |- ph $.
    $( The FOL content of ~ vtoclg1f (hence not using ~ ax-ext , ~ df-cleq ,
       ~ df-nfc , ~ df-v ).  Note the weakened "major" hypothesis and the dv
       condition between ` x ` and ` A ` (needed since the class-form non-free
       predicate is not available without ~ ax-ext ; as a byproduct, this
       dispenses with ~ ax-11 and ~ ax-13 ).  (Contributed by BJ, 30-Apr-2019.)
       (Proof modification is discouraged.) $)
    bj-vtoclg1f1 $p |- ( E. y y = A -> ps ) $=
      ( cv wceq wex bj-denotes bj-exlimmpi sylbi ) DIEJDKCIEJZCKBDCELABOCFGHMN
      $.
  $}

  ${
    $d x A $.
    bj-vtoclg1f.nf $e |- F/ x ps $.
    bj-vtoclg1f.maj $e |- ( x = A -> ( ph -> ps ) ) $.
    bj-vtoclg1f.min $e |- ph $.
    $( Reprove ~ vtoclg1f from ~ bj-vtoclg1f1 .  This removes dependency on
       ~ ax-ext , ~ df-cleq and ~ df-v .  Use ~ bj-vtoclg1fv instead when
       sufficient (in particular when ` V ` is substituted for ` _V ` ).
       (Contributed by BJ, 14-Sep-2019.)
       (Proof modification is discouraged.) $)
    bj-vtoclg1f $p |- ( A e. V -> ps ) $=
      ( wcel cv wceq wex bj-elisset bj-exlimmpi syl ) DEICJDKZCLBCDEMABPCFGHNO
      $.
  $}

  ${
    $d x A $.  $d x V $.
    bj-vtoclg1fv.nf $e |- F/ x ps $.
    bj-vtoclg1fv.maj $e |- ( x = A -> ( ph -> ps ) ) $.
    bj-vtoclg1fv.min $e |- ph $.
    $( Version of ~ bj-vtoclg1f with a dv condition on ` x , V ` .  This
       removes dependency on ~ df-sb and ~ df-clab .  Prefer its use over
       ~ bj-vtoclg1f when sufficient (in particular when ` V ` is substituted
       for ` _V ` ).  (Contributed by BJ, 14-Sep-2019.)
       (Proof modification is discouraged.) $)
    bj-vtoclg1fv $p |- ( A e. V -> ps ) $=
      ( wcel cv wceq wex bj-elissetv bj-exlimmpi syl ) DEICJDKZCLBCDEMABPCFGHNO
      $.
  $}

  ${
    bj-rabbida2.nf $e |- F/ x ph $.
    bj-rabbida2.1 $e |- ( ph -> ( ( x e. A /\ ps ) <-> ( x e. B /\ ch ) ) ) $.
    $( Version of ~ rabbidva2 with dv condition replaced by non-freeness
       hypothesis.  (Contributed by BJ, 27-Apr-2019.) $)
    bj-rabbida2 $p |- ( ph -> { x e. A | ps } = { x e. B | ch } ) $=
      ( cv wcel wa cab crab abbid df-rab 3eqtr4g ) ADIZEJBKZDLQFJCKZDLBDEMCDFMA
      RSDGHNBDEOCDFOP $.
  $}

  ${
    bj-rabbida.nf $e |- F/ x ph $.
    bj-rabbida.1 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Version of ~ rabbidva with dv condition replaced by non-freeness
       hypothesis.  (Contributed by BJ, 27-Apr-2019.) $)
    bj-rabbida $p |- ( ph -> { x e. A | ps } = { x e. A | ch } ) $=
      ( wb wral crab wceq cv wcel ex ralrimi rabbi sylib ) ABCHZDEIBDEJCDEJKARD
      EFADLEMRGNOBCDEPQ $.
  $}

  ${
    bj-rabbid.nf $e |- F/ x ph $.
    bj-rabbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Version of ~ rabbidv with dv condition replaced by non-freeness
       hypothesis.  (Contributed by BJ, 27-Apr-2019.) $)
    bj-rabbid $p |- ( ph -> { x e. A | ps } = { x e. A | ch } ) $=
      ( wb cv wcel adantr bj-rabbida ) ABCDEFABCHDIEJGKL $.
  $}

  ${
    bj-rabeqd.nf $e |- F/ x ph $.
    bj-rabeqd.1 $e |- ( ph -> A = B ) $.
    $( Deduction form of ~ rabeq .  Note that contrary to ~ rabeq it has no dv
       condition.  (Contributed by BJ, 27-Apr-2019.) $)
    bj-rabeqd $p |- ( ph -> { x e. A | ps } = { x e. B | ps } ) $=
      ( wceq cv wcel wa wb eleq2 anbi1d syl bj-rabbida2 ) ABBCDEFADEHZCIZDJZBKR
      EJZBKLGQSTBDERMNOP $.
  $}

  ${
    bj-rabeqbid.nf $e |- F/ x ph $.
    bj-rabeqbid.1 $e |- ( ph -> A = B ) $.
    bj-rabeqbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Version of ~ rabeqbidv with two dv conditions removed and the third
       replaced by a non-freeness hypothesis.  (Contributed by BJ,
       27-Apr-2019.) $)
    bj-rabeqbid $p |- ( ph -> { x e. A | ps } = { x e. B | ch } ) $=
      ( crab bj-rabeqd bj-rabbid eqtrd ) ABDEJBDFJCDFJABDEFGHKABCDFGILM $.
  $}

  ${
    bj-rabeqbida.nf $e |- F/ x ph $.
    bj-rabeqbida.1 $e |- ( ph -> A = B ) $.
    bj-rabeqbida.2 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Version of ~ rabeqbidva with two dv conditions removed and the third
       replaced by a non-freeness hypothesis.  (Contributed by BJ,
       27-Apr-2019.) $)
    bj-rabeqbida $p |- ( ph -> { x e. A | ps } = { x e. B | ch } ) $=
      ( crab bj-rabbida bj-rabeqd eqtrd ) ABDEJCDEJCDFJABCDEGIKACDEFGHLM $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y R $.
    bj-seex.nf $e |- F/_ x B $.
    $( Version of ~ seex with a dv condition replaced by a non-freeness
       hypothesis (for the sake of illustration).  (Contributed by BJ,
       27-Apr-2019.) $)
    bj-seex $p |- ( ( R Se A /\ B e. A ) -> { x e. A | x R B } e. _V ) $=
      ( vy wse wbr crab cvv wcel wral df-se wceq nfeq2 bj-rabbid eleq1d rspccva
      cv breq2 sylanb ) BDGASZFSZDHZABIZJKZFBLCBKUBCDHZABIZJKZFABDMUFUIFCBUCCNZ
      UEUHJUJUDUGABAUCCEOUCCUBDTPQRUA $.
  $}

  ${
    $d x y z $.  $d A z $.
    bj-nfcf.nf $e |- F/_ y A $.
    $( Version of ~ df-nfc with a dv condition replaced with a non-freeness
       hypothesis.  (Contributed by BJ, 2-May-2019.) $)
    bj-nfcf $p |- ( F/_ x A <-> A. y F/ x y e. A ) $=
      ( vz wnfc cv wcel wnf wal df-nfc wsb nfcri nfnf sb8 bj-sbnf clelsb3 nfbii
      bitri albii ) ACFEGCHZAIZEJZBGCHZAIZBJZAECKUCUBEBLZBJUFUBEBUABABECDMNOUGU
      EBUGUAEBLZAIUEUAAEBPUHUDABECQRSTSS $.
  $}

  ${
    $d x y z w $.  $d y ph w $.  $d z w $.
    $( Remove dependency on ~ ax-12 and ~ ax-13 from ~ axsep2 while shortening
       its proof.  Remark: the comment in ~ zfauscl is misleading: the
       essential use of ~ ax-ext is the one via ~ eleq2 and not the one via
       ~ vtocl , since the latter can be proved without ~ ax-ext (see
       ~ bj-vtocl ).  (Contributed by BJ, 6-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-axsep2 $p |- E. y A. x ( x e. y <-> ( x e. z /\ ph ) ) $=
      ( vw wel wal wex weq elequ2 anbi1d bibi2d albidv exbidv ax-sep bj-chvarvv
      wa wb ) BCFZBEFZAQZRZBGZCHSBDFZAQZRZBGZCHEDEDIZUCUGCUHUBUFBUHUAUESUHTUDAE
      DBJKLMNABCEOP $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Class abstractions
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  A few additional theorems on class abstractions and restricted class
  abstractions.

$)

  ${
    $d x A $.  $d x B $.
    $( Generalization of ~ unrab .  Equality need not hold.  (Contributed by
       BJ, 21-Apr-2019.) $)
    bj-unrab $p |- ( { x e. A | ph } u. { x e. B | ps } ) C_
                 { x e. ( A u. B ) | ( ph \/ ps ) } $=
      ( crab wo cun wss ssun1 rabss2 ax-mp wi wcel orc a1i ss2rabi sstri ssun2
      cv olc unssi ) ACDFZBCEFZABGZCDEHZFZUCACUFFZUGDUFIUCUHIDEJACDUFKLAUECUFAU
      EMCTUFNZABOPQRUDBCUFFZUGEUFIUDUJIEDSBCEUFKLBUECUFBUEMUIBAUAPQRUB $.
  $}

  $( Generalization of ~ inrab .  (Contributed by BJ, 21-Apr-2019.) $)
  bj-inrab $p |- ( { x e. A | ph } i^i { x e. B | ps } ) =
                 { x e. ( A i^i B ) | ( ph /\ ps ) } $=
    ( cv wcel wa cab cin crab an4 elin anbi1i bitr4i abbii df-rab ineq12i eqtri
    inab 3eqtr4i ) CFZDGZAHZUBEGZBHZHZCIZUBDEJZGZABHZHZCIACDKZBCEKZJZUKCUIKUGUL
    CUGUCUEHZUKHULUCAUEBLUJUPUKUBDEMNOPUOUDCIZUFCIZJUHUMUQUNURACDQBCEQRUDUFCTSU
    KCUIQUA $.

  $( Shorter proof of ~ inrab .  (Contributed by BJ, 21-Apr-2019.)
     (Proof modification is discouraged.) $)
  bj-inrab2 $p |- ( { x e. A | ph } i^i { x e. A | ps } ) =
                                                   { x e. A | ( ph /\ ps ) } $=
    ( crab cin wa bj-inrab wceq wtru nfv inidm a1i bj-rabeqd trud eqtri ) ACDEB
    CDEFABGZCDDFZEZQCDEZABCDDHSTIJQCRDJCKRDIJDLMNOP $.

  ${
    $d A x $.  $d B x $.
    $( Generalization of ~ dfrab3ss , which it may shorten.  (Contributed by
       BJ, 21-Apr-2019.)  (Revised by OpenAI, 7-Jul-2020.) $)
    bj-inrab3 $p |- ( A i^i { x e. B | ph } ) = ( { x e. A | ph } i^i B ) $=
      ( crab cin cab dfrab3 ineq2i incom in12 3eqtr4i eqtr4i ) CABDEZFCDABGZFZF
      ZABCEZDFZNPCABDHIDRFDCOFZFSQRTDABCHIRDJCDOKLM $.
  $}

  ${
    $d x A $.
    $( Restricted class abstraction with true formula.  (Contributed by BJ,
       22-Apr-2019.) $)
    bj-rabtr $p |- { x e. A | T. } = A $=
      ( wtru crab ssrab2 wss wral ssid tru rgenw ssrab mpbir2an eqssi ) CABDZBC
      ABEBNFBBFCABGBHCABIJCABBKLM $.

    $( Alternate proof of ~ bj-rabtr .  (Contributed by BJ, 22-Apr-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-rabtrALT $p |- { x e. A | T. } = A $=
      ( wtru crab wceq cv wcel wb nfrab1 nfcv cleqf tru rabid mpbiran2 mpgbir )
      CABDZBEAFZPGZQBGZHAAPBCABIABJKRSCLCABMNO $.

    $( Alternate proof of ~ bj-rabtr .  (Contributed by BJ, 22-Apr-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-rabtrALTALT $p |- { x e. A | T. } = A $=
      ( wtru crab ssrab2 wss wral ssid tru rgenw ssrab mpbir2an eqssi ) CABDZBC
      ABEBNFBBFCABGBHCABIJCABBKLM $.

    $( Proof of ~ bj-rabtr found automatically by "improve all /depth 3 /3"
       followed by "minimize *".  (Contributed by BJ, 22-Apr-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-rabtrAUTO $p |- { x e. A | T. } = A $=
      ( wtru crab ssrab2 wss ssid a1i cv wcel simpl ssrabdv trud eqssi ) CABDZB
      CABEBOFCCABBBBFCBGHCAIBJKLMN $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Restricted non-freeness
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this subsection, we define restricted non-freeness (or relative
  non-freeness).

$)

  $( Syntax for restricted non-freeness. $)
  wrnf $a wff F/ x e. A ph $.

  $( Definition of restricted non-freeness.  Informally, the proposition
     ` F/ x e. A ph ` means that ` ph ( x ) ` does not vary on ` A ` .
     (Contributed by BJ, 19-Mar-2021.) $)
  df-bj-rnf $a |- ( F/ x e. A ph <-> ( E. x e. A ph -> A. x e. A ph ) ) $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Russell's paradox
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  A few results around Russell's paradox.  For clarity, we prove separately its
  FOL part ( ~ bj-ru0 ) and then two versions ( ~ bj-ru1 and ~ bj-ru ).
  Special attention is put on minimizing axiom depencencies.

$)

  ${
    $d x y $.
    $( The FOL part of Russell's paradox ~ ru (see also ~ bj-ru1 , ~ bj-ru ).
       Use of ~ elequ1 , ~ bj-elequ12 , ~ bj-spvv (instead of ~ eleq1 ,
       ~ eleq12d , ~ spv as in ~ ru ) permits to remove dependency on ~ ax-10 ,
       ~ ax-11 , ~ ax-12 , ~ ax-13 , ~ ax-ext , ~ df-sb , ~ df-clab ,
       ~ df-cleq , ~ df-clel .  (Contributed by BJ, 12-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-ru0 $p |- -. A. x ( x e. y <-> -. x e. x ) $=
      ( wel wal pm5.19 weq elequ1 bj-elequ12 anidms notbid bibi12d bj-spvv mto
      wn wb ) ABCZAACZNZOZADBBCZTNZOZTESUBABABFZPTRUAABBGUCQTUCQTOABABHIJKLM $.
  $}

  ${
    $d x y $.
    $( A version of Russell's paradox ~ ru (see also ~ bj-ru ).  Note the more
       economical use of ~ bj-abeq2 instead of ~ abeq2 to avoid dependency on
       ~ ax-13 .  (Contributed by BJ, 12-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-ru1 $p |- -. E. y y = { x | -. x e. x } $=
      ( cv wel wn cab wceq wb wal bj-ru0 bj-abeq2 mtbir nex ) BCZAADEZAFGZBPABD
      OHAIABJOANKLM $.
  $}

  ${
    $d x y $.  $d y V $.
    $( Remove dependency on ~ ax-13 (and ~ df-v ) from Russell's paradox ~ ru
       expressed with primitive symbols and with a class variable ` V ` (note
       that ~ axsep2 does require ~ ax-8 and ~ ax-9 since it requires ~ df-clel
       and ~ df-cleq --- see ~ bj-df-clel and ~ bj-df-cleq ).  Note the more
       economical use of ~ bj-elissetv instead of ~ isset to avoid use of
       ~ df-v .  (Contributed by BJ, 12-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-ru $p |- -. { x | -. x e. x } e. V $=
      ( vy wel wn cab wcel cv wceq wex bj-ru1 bj-elissetv mto ) AADEAFZBGCHNICJ
      ACKCNBLM $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Some disjointness results
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  A few utility theorems on disjointness of classes.

$)

  ${
    $d x A $.
    bj-n0i.1 $e |- A =/= (/) $.
    $( Inference associated with ~ n0 .  Shortens ~ 2ndcdisj (2888>2878),
       ~ notzfaus (264>253).  (Contributed by BJ, 22-Apr-2019.) $)
    bj-n0i $p |- E. x x e. A $=
      ( c0 wne cv wcel wex n0 mpbi ) BDEAFBGAHCABIJ $.
  $}

  $( A class is disjoint from its singleton.  A consequence of regularity.
     Shorter proof than ~ bnj521 and does not depend on ~ df-ne .  (Contributed
     by BJ, 4-Apr-2019.) $)
  bj-disjcsn $p |- ( A i^i { A } ) = (/) $=
    ( csn cin c0 wceq wcel wn elirr disjsn mpbir ) AABCDEAAFGAHAAIJ $.

  $( Disjointness of the singletons containing 0 and 1.  This is a consequence
     of ~ bj-disjcsn but the present proof does not use regularity.
     (Contributed by BJ, 4-Apr-2019.)  (Proof modification is discouraged.) $)
  bj-disjsn01 $p |- ( { (/) } i^i { 1o } ) = (/) $=
    ( c0 c1o wne csn cin wceq 1n0 necomi disjsn2 ax-mp ) ABCADBDEAFBAGHABIJ $.

  $( ` 1o ` is a set.  (Contributed by BJ, 6-Apr-2019.) $)
  bj-1ex $p |- 1o e. _V $=
    ( c1o c0 csuc cvv df-1o 0ex sucex eqeltri ) ABCDEBFGH $.

  $( ` 2o ` is a set.  (Contributed by BJ, 6-Apr-2019.) $)
  bj-2ex $p |- 2o e. _V $=
    ( c2o c1o csuc cvv df-2o bj-1ex sucex eqeltri ) ABCDEBFGH $.

  $( The empty set does not belong to ` { 1o } ` .  (Contributed by BJ,
     6-Apr-2019.) $)
  bj-0nel1 $p |- (/) e/ { 1o } $=
    ( c0 c1o csn wcel wceq 1n0 nesymi 0ex elsn mtbir nelir ) ABCZALDABEBAFGABHI
    JK $.

  $( ` 1o ` does not belong to ` { (/) } ` .  (Contributed by BJ,
     6-Apr-2019.) $)
  bj-1nel0 $p |- 1o e/ { (/) } $=
    ( c1o c0 csn wcel wceq 1n0 neii elsni mto nelir ) ABCZAKDABEABFGABHIJ $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Complements on direct products
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  A few utility theorems on direct products.

$)

  $( The image of a singleton, general case.  [Change and relabel ~ xpimasn
     accordingly, maybe to xpima2sn.] (Contributed by BJ, 6-Apr-2019.) $)
  bj-xpimasn $p |- ( ( A X. B ) " { X } ) = if ( X e. A , B , (/) ) $=
    ( cxp csn cima cin c0 wceq cif wcel xpima disjsn eqid ifbieq2i ifnot 3eqtri
    wn ) ABDCEZFASGHIZHBJCAKZRZHBJUABHJABSLTUBBBHACMBNOUAHBPQ $.

  $( The image of a singleton by a direct product, empty case.  [Change and
     relabel ~ xpimasn accordingly, maybe to xpima2sn.] (Contributed by BJ,
     6-Apr-2019.) $)
  bj-xpima1sn $p |- ( X e/ A -> ( ( A X. B ) " { X } ) = (/) ) $=
    ( wnel cxp csn cima wcel c0 cif bj-xpimasn wceq df-nel iffalse sylbi syl5eq
    wn ) CADZABECFGCAHZBIJZIABCKRSQTILCAMSBINOP $.

  $( Alternate proof of ~ bj-xpima1sn .  (Contributed by BJ, 6-Apr-2019.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  bj-xpima1snALT $p |- ( X e/ A -> ( ( A X. B ) " { X } ) = (/) ) $=
    ( wnel csn cin c0 wceq cxp cima wcel wn disjsn df-nel bitr4i xpima1 sylbir
    ) CADZACEZFGHZABISJGHTCAKLRACMCANOABSPQ $.

  $( The image of a singleton by a direct product, nonempty case.  [To replace
     ~ xpimasn ] (Contributed by BJ, 6-Apr-2019.)
     (Proof modification is discouraged.) $)
  bj-xpima2sn $p |- ( X e. A -> ( ( A X. B ) " { X } ) = B ) $=
    ( wcel cxp csn cima c0 cif bj-xpimasn iftrue syl5eq ) CADZABECFGMBHIBABCJMB
    HKL $.

  $( If the first factor of a product is nonempty, and the product is a set,
     then the second factor is a set.  UPDATE: this is actually the curried
     (exported) form of ~ xpexcnv (up to commutation in the product).
     (Contributed by BJ, 6-Oct-2018.)  (Proof modification is discouraged.) $)
  bj-xpnzex $p |- ( A =/= (/) -> ( ( A X. B ) e. V -> B e. _V ) ) $=
    ( c0 wne cxp wcel cvv wi wceq 0ex eleq1a ax-mp wa xpnz xpexr2 simprd expcom
    a1d sylbi pm2.61ine ) ADEZABFZCGZBHGZIZIBDBDJZUFUBUGUEUDDHGUGUEIKDHBLMSSUBB
    DEZUFUBUHNUCDEZUFABOUDUIUEUDUINAHGUEABCPQRTRUA $.

  $( Curried (exported) form of ~ xpexg .  (Contributed by BJ, 2-Apr-2019.) $)
  bj-xpexg2 $p |- ( A e. V -> ( B e. W -> ( A X. B ) e. _V ) ) $=
    ( wcel cxp cvv xpexg ex ) ACEBDEABFGEABCDHI $.

  $( If the first factor of a product is a nonempty set, then the product is a
     set if and only if the second factor is a set.  (Contributed by BJ,
     2-Apr-2019.) $)
  bj-xpnzexb $p |- ( A e. ( V \ { (/) } ) ->
                     ( B e. _V <-> ( A X. B ) e. _V ) ) $=
    ( c0 csn cdif wcel cvv cxp bj-xpexg2 wne wi eldifsni bj-xpnzex syl impbid )
    ACDEFZGZBHGZABIHGZABQHJRADKTSLACDMABHNOP $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Substitution property for certain classes.  (Contributed by BJ,
       2-Apr-2019.) $)
    bj-cleq $p |- ( A = B -> { x | { x } e. ( A " C ) } =
                             { x | { x } e. ( B " C ) } ) $=
      ( wceq cv csn cima wcel wb wal cab imaeq1 eleq2 alrimiv syl abbi sylib )
      BCEZAFGZBDHZIZTCDHZIZJZAKZUBALUDALESUAUCEZUFBCDMUGUEAUAUCTNOPUBUDAQR $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  "Singletonization" and tagging
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  This subsection introduces the "singletonization" and the "tagging" of a
  class.  The singletonization of a class is the class of singletons of
  elements of that class.  It is useful since all nonsingletons are disjoint
  from it, so one can easily adjoin to it disjoint elements, which is what the
  tagging does: it adjoins the empty set.  This can be used for instance to
  define the one-point compactification of a topological space.  It will be
  used in the next section to define tuples which work for proper classes.

$)

  ${
    $d x A $.
    $( If a class is a set, then it is a member of a set.  (Contributed by BJ,
       3-Apr-2019.) $)
    bj-sels $p |- ( A e. V -> E. x A e. x ) $=
      ( wcel csn wsbc snidg csb sbcel2 cvv wceq snex csbvarg ax-mp eleq2i bitri
      cv sylibr spesbcd ) BCDZBAQZDZABEZTBUCDZUBAUCFZBCGUEBAUCUAHZDUDAUCBUAIUFU
      CBUCJDUFUCKBLAUCJMNOPRS $.
  $}

  ${
    $d x y z t u A $.
    $( The class of sets "whose singletons" belong to a set is a set.  Nice
       application of ~ ax-rep .  (Contributed by BJ, 6-Oct-2018.) $)
    bj-snsetex $p |- ( A e. V -> { x | { x } e. A } e. _V ) $=
      ( vy vz vt vu wcel cv csn cvv wex wi wceq syl wal wb wa wsb bitri elisset
      cab eleq2 abbidv eleq1 biimpd eximi 19.35 biimpi com12 ax-rep 19.3v sbbii
      csb wsbc sbsbc vex sbceq2g ax-mp bj-csbsn eqeq2i eqtr2 sneqr sylan2b gen2
      syl2anb nfa1 mo mpbir mpg bj-sbel1 eleq1i anbi2i eleq1a eqcoms imdistanri
      impac impbii exbii snex isseti 19.42v mpbiran2 3bitr4ri bibi2i albii mpbi
      df-clab dfcleq issetri ax5e ) BCHZAIJZBHZAUBZKHZDLZWPWLWMDIZHZAUBZKHZWPMZ
      DLZWQWLWRBNZDLXCDBCUAXDXBDXDWTWONZXBXDWSWNAWRBWMUCUDXEXAWPWTWOKUEUFOUGOXA
      XCWQMDXCXADPZWQXCXFWQMXAWPDUHUIUJEWTEIZWTNZELFIZXGHZXIWTHZQZFPZELZXJGIZWR
      HZXOXIJZNZEPZRZGLZQZFPZELZXNXSXIXGNZMFPELZYDGXRDEFGUKYFXSXSFESZRYEMZEPFPY
      HFEXSXRXRFESZYEYGXREULZXSXRFEYJUMYIXRXOXGJZNZYEYIXOFXGXQUNZNZYLYIXRFXGUOZ
      YNXRFEUPXGKHYOYNQEUQFXGXOXQKURUSTYMYKXOFXGUTVATXRYLRXQYKNYEXOXQYKVBXIXGFU
      QVCOVDVFVEXSFEXREVGVHVIVJYCXMEYBXLFYAXKXJWSAFSZXQWRHZXKYAYPAXIWMUNZWRHYQA
      FWMWRVKYRXQWRAXIUTVLTWSFAWHYAYQXRRZGLZYQXTYSGXTXPXRRZYSXSXRXPYJVMUUAYSXRX
      PYQXPYQMXQXOXPXQXONYQXOWRXQVNUJVOVPYQXRXPXQWRXOVNVQVRTVSYTYQXRGLGXQXIVTWA
      YQXRGWBWCTWDWEWFVSWGXHXMEFXGWTWIVSVIWJVJOWPDWKO $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Sethood of certain classes.  (Contributed by BJ, 2-Apr-2019.) $)
    bj-clex $p |- ( A e. V -> { x | { x } e. ( A " B ) } e. _V ) $=
      ( wcel cima cvv cv csn cab imaexg bj-snsetex syl ) BDEBCFZGEAHINEAJGEBCDK
      ANGLM $.
  $}

  $( Symbol for singletonization. $)
  $c sngl $.

  $( Syntax for singletonization.  (Contributed by BJ, 6-Oct-2018.) $)
  bj-csngl $a class sngl A $.

  ${
    $d x y A $.
    $( Definition of "singletonization".  The class ` sngl A ` is isomorphic to
       ` A ` and since it contains only singletons, it can be adjoined disjoint
       elements, which can be useful in various constructions.  (Contributed by
       BJ, 6-Oct-2018.) $)
    df-bj-sngl $a |- sngl A = { x | E. y e. A x = { y } } $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Substitution property for ` sngl ` .  (Contributed by BJ,
       6-Oct-2018.) $)
    bj-sngleq $p |- ( A = B -> sngl A = sngl B ) $=
      ( vx vy wceq cv csn wrex cab bj-csngl rexeq abbidv df-bj-sngl 3eqtr4g ) A
      BEZCFDFGEZDAHZCIPDBHZCIAJBJOQRCPDABKLCDAMCDBMN $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Characterization of the elements of the singletonization of a class.
       (Contributed by BJ, 6-Oct-2018.) $)
    bj-elsngl $p |- ( A e. sngl B <-> E. x e. B A = { x } ) $=
      ( vy bj-csngl wcel cv wceq wa wex csn wrex df-bj-sngl abeq2i anbi2i exbii
      df-clel r19.42v bicomi 3bitri rexcom4 eqcom snex eqvinc exancom rexbii )
      BCEZFDGZBHZUHUGFZIZDJUIUHAGZKZHZACLZIZDJZBUMHZACLZDBUGQUKUPDUJUOUIUODUGDA
      CMNOPUQUIUNIZACLZDJZUTDJZACLZUSUPVADVAUPUIUNACRSPVDVBUTADCUASVCURACURVCUR
      UMBHUNUIIDJVCBUMUBDUMBULUCUDUNUIDUETSUFTT $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Characterization of the elements of ` A ` in terms of elements of its
       singletonization.  (Contributed by BJ, 6-Oct-2018.) $)
    bj-snglc $p |- ( A e. B <-> { A } e. sngl B ) $=
      ( vx csn cv wceq wrex wcel wa wex df-rex bj-elsngl elisset pm4.71i 19.42v
      bj-csngl wb eleq1 exbii cvv eqcoms pm5.32ri vex sneqbg ax-mp eqcom bitr3i
      3bitr2i anbi2i bitri 3bitr4ri ) ADZCEZDZFZCBGUMBHZUOIZCJZULBPHABHZUOCBKCU
      LBLUSUPUMAFZIZCJZURUSUSUTCJZIUSUTIZCJVBUSVCCABMNUSUTCOVDVACUTUSUPUSUPQAUM
      AUMBRUAUBSUHVAUQCUTUOUPUTUNULFZUOUMTHVEUTQCUCUMATUDUEUNULUFUGUISUJUK $.
  $}

  ${
    $d x y A $.
    $( The singletonization of a class is included in its powerclass.
       (Contributed by BJ, 6-Oct-2018.) $)
    bj-snglss $p |- sngl A C_ ~P A $=
      ( vx vy bj-csngl cpw cv wcel wss wex csn wceq wrex bj-elsngl df-rex snssi
      wa sseq1 biimparc sylan sylbi eximi ax5e syl selpw sylibr ssriv ) BADZAEZ
      BFZUGGZUIAHZUIUHGUJUKCIZUKUJUICFZJZKZCALZULCUIAMUPUMAGZUOPZCIULUOCANURUKC
      UQUNAHZUOUKUMAOUOUKUSUIUNAQRSUATTUKCUBUCBAUDUEUF $.
  $}

  ${
    $d x A $.
    $( The empty set is not a member of a singletonization (neither is any
       nonsingleton, in particular any von Neuman ordinal except possibly
       ~ df-1o ).  (Contributed by BJ, 6-Oct-2018.) $)
    bj-0nelsngl $p |- (/) e/ sngl A $=
      ( vx c0 bj-csngl wcel cv csn wceq wex vex snnz nesymi nex bj-elsngl rexex
      wrex sylbi mto nelir ) CADZCTEZCBFZGZHZBIZUDBUCCUBBJKLMUAUDBAPUEBCANUDBAO
      QRS $.
  $}

  ${
    $d x A $.
    $( Inverse of singletonization.  (Contributed by BJ, 6-Oct-2018.) $)
    bj-snglinv $p |- A = { x | { x } e. sngl A } $=
      ( cv csn bj-csngl wcel bj-snglc abbi2i ) ACZDBEFABIBGH $.
  $}

  ${
    $d x y A $.
    $( A class is a set if and only if its singletonization is a set.
       (Contributed by BJ, 6-Oct-2018.) $)
    bj-snglex $p |- ( A e. _V <-> sngl A e. _V ) $=
      ( vx vy cvv wcel bj-csngl cv wceq wex isset cpw wss eximi bj-snglss sseq2
      pweq mpbiri vpwex ssex exlimiv sylbi csn cab bj-snglinv bj-snsetex impbii
      3syl syl5eqel ) ADEZAFZDEZUIBGZAHZBIZUKBAJUNULKZAKZHZBIUJUOLZBIUKUMUQBULA
      PMUQURBUQURUJUPLANUOUPUJOQMURUKBUJUOBRSTUGUAUKACGUBUJECUCDCAUDCUJDUEUHUF
      $.
  $}

  $( Symbol for the tagged copy of a class. $)
  $c tag $.

  $( Syntax for the tagged copy of a class.  (Contributed by BJ,
     6-Oct-2018.) $)
  bj-ctag $a class tag A $.

  $( Definition of the tagged copy of a class, that is, the adjunction to (an
     isomorph of) ` A ` of a disjoint element (here, the empty set).  Remark:
     this could be used for the one-point compactification of a topological
     space.  (Contributed by BJ, 6-Oct-2018.) $)
  df-bj-tag $a |- tag A = ( sngl A u. { (/) } ) $.

  $( Substitution property for ` tag ` .  (Contributed by BJ, 6-Oct-2018.) $)
  bj-tageq $p |- ( A = B -> tag A = tag B ) $=
    ( wceq bj-csngl c0 csn cun bj-ctag bj-sngleq uneq1d df-bj-tag 3eqtr4g ) ABC
    ZADZEFZGBDZOGAHBHMNPOABIJAKBKL $.

  ${
    $d x A $.  $d x B $.
    $( Characterization of the elements of the tagging of a class.
       (Contributed by BJ, 6-Oct-2018.) $)
    bj-eltag $p |- ( A e. tag B <-> ( E. x e. B A = { x } \/ A = (/) ) ) $=
      ( bj-ctag wcel bj-csngl c0 csn wo cv wceq wrex df-bj-tag eleq2i bj-elsngl
      cun elun 0ex elsn2 orbi12i 3bitri ) BCDZEBCFZGHZPZEBUCEZBUDEZIBAJHKACLZBG
      KZIUBUEBCMNBUCUDQUFUHUGUIABCOBGRSTUA $.
  $}

  $( The empty set belongs to the tagging of a class.  (Contributed by BJ,
     6-Apr-2019.) $)
  bj-0eltag $p |- (/) e. tag A $=
    ( c0 bj-csngl csn cun bj-ctag wcel wo 0ex snid olci elun df-bj-tag eleqtrri
    mpbir ) BACZBDZEZAFBRGBPGZBQGZHTSBIJKBPQLOAMN $.

  $( The tagging of a class is nonempty.  (Contributed by BJ, 6-Apr-2019.) $)
  bj-tagn0 $p |- tag A =/= (/) $=
    ( c0 bj-ctag bj-0eltag ne0ii ) BACADE $.

  $( The tagging of a class is included in its powerclass.  (Contributed by BJ,
     6-Oct-2018.) $)
  bj-tagss $p |- tag A C_ ~P A $=
    ( bj-ctag bj-csngl csn cun cpw df-bj-tag bj-snglss wcel wss 0elpw snss mpbi
    c0 0ex unssi eqsstri ) ABACZNDZEAFZAGRSTAHNTISTJAKNTOLMPQ $.

  $( The singletonization is included in the tagging.  (Contributed by BJ,
     6-Oct-2018.) $)
  bj-snglsstag $p |- sngl A C_ tag A $=
    ( bj-csngl c0 csn cun bj-ctag ssun1 df-bj-tag sseqtr4i ) ABZJCDZEAFJKGAHI
    $.

  $( The singletonization is included in the tagging.  (Contributed by BJ,
     6-Oct-2018.) $)
  bj-sngltagi $p |- ( A e. sngl B -> A e. tag B ) $=
    ( bj-csngl bj-ctag bj-snglsstag sseli ) BCBDABEF $.

  $( The singletonization and the tagging of a set contain the same singletons.
     (Contributed by BJ, 6-Oct-2018.) $)
  bj-sngltag $p |- ( A e. V -> ( { A } e. sngl B <-> { A } e. tag B ) ) $=
    ( wcel csn bj-csngl bj-ctag bj-sngltagi c0 cun df-bj-tag eleq2i wo elun idd
    wceq elsni cvv wn syl5bi snprc elex pm2.24d syl5bir syl5 jaod impbid2 ) ACD
    ZAEZBFZDZUIBGZDZUIBHUMUIUJIEZJZDZUHUKULUOUIBKLUPUKUIUNDZMUHUKUIUJUNNUHUKUKU
    QUHUKOUQUIIPZUHUKUIIQURARDZSUHUKAUAUHUSUKACUBUCUDUEUFTTUG $.

  $( Characterization of the elements of ` B ` in terms of elements of its
     tagged version.  (Contributed by BJ, 6-Oct-2018.) $)
  bj-tagci $p |- ( A e. B -> { A } e. tag B ) $=
    ( wcel csn bj-csngl bj-ctag bj-snglc bj-sngltagi sylbi ) ABCADZBECJBFCABGJB
    HI $.

  $( Characterization of the elements of ` B ` in terms of elements of its
     tagged version.  (Contributed by BJ, 6-Oct-2018.) $)
  bj-tagcg $p |- ( A e. V -> ( A e. B <-> { A } e. tag B ) ) $=
    ( wcel csn bj-csngl bj-ctag bj-snglc bj-sngltag syl5bb ) ABDAEZBFDACDKBGDAB
    HABCIJ $.

  ${
    $d x A $.
    $( Inverse of tagging.  (Contributed by BJ, 6-Oct-2018.) $)
    bj-taginv $p |- A = { x | { x } e. tag A } $=
      ( cv csn bj-csngl wcel cab bj-ctag bj-snglinv cvv wb vex bj-sngltag ax-mp
      abbii eqtri ) BACZDZBEFZAGRBHFZAGABISTAQJFSTKALQBJMNOP $.
  $}

  $( A class is a set if and only if its tagging is a set.  (Contributed by BJ,
     6-Oct-2018.) $)
  bj-tagex $p |- ( A e. _V <-> tag A e. _V ) $=
    ( cvv wcel bj-csngl c0 csn wa cun bj-ctag bj-snglex biantru bitri df-bj-tag
    p0ex unexb eqcomi eleq1i 3bitri ) ABCZADZBCZEFZBCZGZTUBHZBCAIZBCSUAUDAJUCUA
    NKLTUBOUEUFBUFUEAMPQR $.

  $( The products of a given class and the tagging of either of two equal
     classes are equal.  (Contributed by BJ, 6-Apr-2019.) $)
  bj-xtageq $p |- ( A = B -> ( C X. tag A ) = ( C X. tag B ) ) $=
    ( wceq bj-ctag bj-tageq xpeq2d ) ABDAEBECABFG $.

  $( The product of a set and the tagging of a set is a set.  (Contributed by
     BJ, 2-Apr-2019.) $)
  bj-xtagex $p |- ( A e. V -> ( B e. W -> ( A X. tag B ) e. _V ) ) $=
    ( wcel bj-ctag cvv cxp elex bj-tagex sylib bj-xpexg2 syl5 ) BDEZBFZGEZACEAO
    HGENBGEPBDIBJKAOCGLM $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Tuples of classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  This subsection gives a definition of an ordered pair, or couple (2-tuple),
  which "works" for proper classes, as evidenced by Theorems ~ bj-2uplth and
  ~ bj-2uplex (but more importantly, ~ bj-pr21val and ~ bj-pr22val ).  In
  particular, one can define well-behaved tuples of classes.  Note,
  however, that classes in ZF(C) are only virtual, and in particular they
  cannot be quantified over.

  The projections are denoted by ` pr1 ` and ` pr2 ` and the couple with
  projections (or coordinates) ` A ` and ` B ` is denoted by ` (| A ,, B |) ` .

  Note that this definition uses the Kuratowksi definition ( ~ df-op ) as a
  preliminary definition, and then "redefines" a couple.  It could also use the
  "short" version of the Kuratowski pair (see ~ opthreg ) without needing the
  axiom of regularity; it could even bypass this definition by "inlining" it.

  This definition is due to Anthony Morse and is expounded (with idiosyncratic
  notation) in

  Anthony P. Morse,
  _A Theory of Sets_,
  Academic Press, 1965
  (second edition 1986).

  Note that this extends in a natural way to tuples.

  A variation of this definition is justified in ~ opthprc , but here we use
  "tagged versions" of the factors (see ~ df-bj-tag ) so that an m-tuple can
  equal an n-tuple only when m = n (and the projections are the same).

  A comparison of the different definitions of tuples (strangely not mentioning
  Morse's), is given in

  Dominic McCarty and Dana Scott,
  _Reconsidering ordered pairs_,
  Bull. Symbolic Logic,
  Volume 14, Issue 3 (Sept. 2008), 379--397.

  where a recursive definition of tuples is given that avoids the 2-step
  definition of tuples and that can be adapted to various set theories.

  Finally, another survey is

  Akihiro Kanamori,
  _The empty set, the singleton, and the ordered pair_,
  Bull. Symbolic Logic,
  Volume 9, Number 3 (Sept. 2003), 273--298.
  (available at ~ http://math.bu.edu/people/aki/8.pdf )

$)

  $( Symbol the class projection. $)
  $c Proj $.

  $( Syntax for the class projection.  (Contributed by BJ, 6-Apr-2019.) $)
  bj-cproj $a class ( A Proj B ) $.

  ${
    $d x A $.  $d x B $.
    $( Definition of the class projection corresponding to tagged tuples.  The
       expression ` ( A Proj B ) ` denotes the projection on the A^th
       component.  (Contributed by BJ, 6-Apr-2019.)
       (New usage is discouraged.) $)
    df-bj-proj $a |- ( A Proj B ) = { x | { x } e. ( B " { A } ) } $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.
    $( Substitution property for ` Proj ` .  (Contributed by BJ,
       6-Apr-2019.) $)
    bj-projeq $p |- ( A = C -> ( B = D -> ( A Proj B ) = ( C Proj D ) ) ) $=
      ( vx wceq bj-cproj wa csn cima wcel cab simpr simpl sneqd imaeq12d eleq2d
      cv abbidv df-bj-proj 3eqtr4g ex ) ACFZBDFZABGZCDGZFUCUDHZERIZBAIZJZKZELUH
      DCIZJZKZELUEUFUGUKUNEUGUJUMUHUGBDUIULUCUDMUGACUCUDNOPQSEABTECDTUAUB $.
  $}

  $( Substitution property for ` Proj ` .  (Contributed by BJ, 6-Apr-2019.) $)
  bj-projeq2 $p |- ( B = C -> ( A Proj B ) = ( A Proj C ) ) $=
    ( wceq bj-cproj wi eqid bj-projeq ax-mp ) AADBCDABEACEDFAGABACHI $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( The class projection on a given component preserves unions.
       (Contributed by BJ, 6-Apr-2019.) $)
    bj-projun $p |- ( A Proj ( B u. C ) ) = ( ( A Proj B ) u. ( A Proj C ) ) $=
      ( vx cun bj-cproj cv wcel wo cima df-bj-proj abeq2i orbi12i elun imaundir
      csn eleq2i 3bitri 3bitr4ri eqriv ) DABCEZFZABFZACFZEZDGZUCHZUFUDHZIUFPZBA
      PZJZHZUICUJJZHZIZUFUEHUFUBHZUGULUHUNULDUCDABKLUNDUDDACKLMUFUCUDNUPUIUAUJJ
      ZHZUIUKUMEZHUOURDUBDAUAKLUQUSUIBCUJOQUIUKUMNRST $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Sethood of the class projection.  (Contributed by BJ, 6-Apr-2019.) $)
    bj-projex $p |- ( B e. V -> ( A Proj B ) e. _V ) $=
      ( vx wcel bj-cproj cv csn cima cab cvv df-bj-proj bj-clex syl5eqel ) BCEA
      BFDGHBAHZIEDJKDABLDBOCMN $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x V $.
    $( Value of the class projection.  (Contributed by BJ, 6-Apr-2019.) $)
    bj-projval $p |- ( A e. V ->
                  ( A Proj ( { B } X. tag C ) ) = if ( B = A , C , (/) ) ) $=
      ( vx wcel csn bj-ctag cxp bj-cproj wceq c0 cif wi wn wa cima cab eleq2d
      cv elsng bj-xpima2sn syl6bir imp abbidv df-bj-proj bj-taginv 3eqtr4g noel
      ex abeq2i wnel elsni con3i df-nel sylibr bj-xpima1sn syl5bb mtbiri eq0rdv
      syl ifval sylanblrc wb eqcom ifbi ax-mp syl6eq ) ADFZABGZCHZIZJZABKZCLMZB
      AKZCLMZVIVNVMCKZNVNOZVMLKNVMVOKVIVNVRVIVNPZETZGZVLAGQZFZERWBVKFZERVMCVTWD
      WEEVTWCVKWBVIVNWCVKKZVIVNAVJFZWFABDUAVJVKAUBUCUDSUEEAVLUFZECUGUHUJVSEVMVS
      WAVMFZWBLFZWBUIWIWDVSWJWDEVMWHUKVSWCLWBVSAVJULZWCLKVSWGOWKWGVNABUMUNAVJUO
      UPVJVKAUQVASURUSUTVNVMCLVBVCVNVPVDVOVQKABVEVNVPCLVFVGVH $.
  $}

  $( Symbols for Morse tuples. $)
  $c (| ,, |) $.

  $( Symbols for class tuple projections. $)
  $c pr1 pr2 $.

  $( Syntax for Morse monuple.  (Contributed by BJ, 6-Apr-2019.) $)
  bj-c1upl $a class (| A |) $.

  $( Definition of the Morse monuple (1-tuple).  This is not useful per se, but
     is used as a step towards the definition of couples (2-tuples, or ordered
     pairs).  The reason for "tagging" the set is so that an m-tuple and an
     n-tuple be equal only when m = n.  Note that with this definition, the
     0-tuple is the empty set.  New usage is discouraged because the precise
     definition is generally unimportant compared to the characteristic
     properties ~ bj-2upleq , ~ bj-2uplth , ~ bj-2uplex , and the properties of
     the projections (see ~ df-bj-pr1 and ~ df-bj-pr2 ).  (Contributed by BJ,
     6-Apr-2019.)  (New usage is discouraged.) $)
  df-bj-1upl $a |- (| A |) = ( { (/) } X. tag A ) $.

  $( Substitution property for ` (| - |) ` .  (Contributed by BJ,
     6-Apr-2019.) $)
  bj-1upleq $p |- ( A = B -> (| A |) = (| B |) ) $=
    ( wceq c0 csn bj-ctag cxp bj-c1upl bj-xtageq df-bj-1upl 3eqtr4g ) ABCDEZAFG
    LBFGAHBHABLIAJBJK $.

  $( Syntax for the first class tuple projection.  (Contributed by BJ,
     6-Apr-2019.) $)
  bj-cpr1 $a class pr1 A $.

  $( Definition of the first projection of a class tuple.  New usage is
     discouraged because the precise definition is generally unimportant
     compared to the characteristic properties ~ bj-pr1eq , ~ bj-pr11val ,
     ~ bj-pr21val , ~ bj-pr1ex .  (Contributed by BJ, 6-Apr-2019.)
     (New usage is discouraged.) $)
  df-bj-pr1 $a |- pr1 A = ( (/) Proj A ) $.

  $( Substitution property for ` pr1 ` .  (Contributed by BJ, 6-Apr-2019.) $)
  bj-pr1eq $p |- ( A = B -> pr1 A = pr1 B ) $=
    ( wceq c0 bj-cproj bj-cpr1 bj-projeq2 df-bj-pr1 3eqtr4g ) ABCDAEDBEAFBFDABG
    AHBHI $.

  $( The first projection preserves unions.  (Contributed by BJ,
     6-Apr-2019.) $)
  bj-pr1un $p |- pr1 ( A u. B ) = ( pr1 A u. pr1 B ) $=
    ( c0 cun bj-cproj bj-cpr1 bj-projun df-bj-pr1 uneq12i 3eqtr4i ) CABDZECAEZC
    BEZDKFAFZBFZDCABGKHNLOMAHBHIJ $.

  $( Value of the first projection.  (Contributed by BJ, 6-Apr-2019.) $)
  bj-pr1val $p |- pr1 ( { A } X. tag B ) = if ( A = (/) , B , (/) ) $=
    ( csn bj-ctag cxp bj-cpr1 c0 bj-cproj wceq cif df-bj-pr1 cvv 0ex bj-projval
    wcel ax-mp eqtri ) ACBDEZFGRHZAGIBGJZRKGLOSTIMGABLNPQ $.

  $( Value of the first projection of a monuple.  (Contributed by BJ,
     6-Apr-2019.) $)
  bj-pr11val $p |- pr1 (| A |) = A $=
    ( bj-c1upl bj-cpr1 csn bj-ctag cxp wceq df-bj-1upl bj-pr1eq ax-mp bj-pr1val
    c0 cif eqid iftruei 3eqtri ) ABZCZLDAEFZCZLLGZALMAQSGRTGAHQSIJLAKUAALLNOP
    $.

  $( Sethood of the first projection.  (Contributed by BJ, 6-Oct-2018.) $)
  bj-pr1ex $p |- ( A e. V -> pr1 A e. _V ) $=
    ( wcel bj-cpr1 c0 bj-cproj cvv df-bj-pr1 bj-projex syl5eqel ) ABCADEAFGAHEA
    BIJ $.

  $( The characteristic property of monuples.  Note that this holds without
     sethood hypotheses.  (Contributed by BJ, 6-Apr-2019.) $)
  bj-1uplth $p |- ( (| A |) = (| B |) <-> A = B ) $=
    ( bj-c1upl wceq bj-cpr1 bj-pr1eq bj-pr11val 3eqtr3g bj-1upleq impbii ) ACZB
    CZDZABDMKELEABKLFAGBGHABIJ $.

  $( A monuple is a set if and only if its coordinates are sets.  (Contributed
     by BJ, 6-Apr-2019.) $)
  bj-1uplex $p |- ( (| A |) e. _V <-> A e. _V ) $=
    ( bj-c1upl cvv wcel bj-cpr1 bj-pr11val bj-pr1ex syl5eqelr c0 csn df-bj-1upl
    bj-ctag cxp wi p0ex bj-xtagex ax-mp syl5eqel impbii ) ABZCDZACDZUAATECAFTCG
    HUBTIJZALMZCAKUCCDUBUDCDNOUCACCPQRS $.

  $( A monuple is nonempty.  (Contributed by BJ, 6-Apr-2019.) $)
  bj-1upln0 $p |- (| A |) =/= (/) $=
    ( bj-c1upl csn bj-ctag cxp df-bj-1upl wne 0nep0 necomi bj-tagn0 xpnz biimpi
    c0 wa mp2an eqnetri ) ABMCZADZEZMAFQMGZRMGZSMGZMQHIAJTUANUBQRKLOP $.

  $( Syntax for Morse couple.  (Contributed by BJ, 6-Oct-2018.) $)
  bj-c2uple $a class (| A ,, B |) $.

  $( Definition of the Morse couple.  See ~ df-bj-1upl .  New usage is
     discouraged because the precise definition is generally unimportant
     compared to the characteristic properties ~ bj-2upleq , ~ bj-2uplth ,
     ~ bj-2uplex , and the properties of the projections (see ~ df-bj-pr1 and
     ~ df-bj-pr2 ).  (Contributed by BJ, 6-Oct-2018.)
     (New usage is discouraged.) $)
  df-bj-2upl $a |- (| A ,, B |) = ( (| A |) u. ( { 1o } X. tag B ) ) $.

  $( Substitution property for ` (| - ,, - |) ` .  (Contributed by BJ,
     6-Oct-2018.) $)
  bj-2upleq $p |- ( A = B -> ( C = D -> (| A ,, C |) = (| B ,, D |) ) ) $=
    ( wceq bj-c1upl c1o csn bj-ctag cxp bj-c2uple bj-1upleq bj-xtageq uneq12 ex
    cun syl2im df-bj-2upl eqeq12i syl6ibr ) ABEZCDEZAFZGHZCIJZPZBFZUDDIJZPZEZAC
    KZBDKZEUAUCUGEZUBUEUHEZUJABLCDUDMUMUNUJUCUGUEUHNOQUKUFULUIACRBDRST $.

  $( Value of the first projection of a couple.  (Contributed by BJ,
     6-Oct-2018.) $)
  bj-pr21val $p |- pr1 (| A ,, B |) = A $=
    ( bj-c2uple bj-cpr1 bj-c1upl c1o csn bj-ctag wceq df-bj-2upl bj-pr1eq ax-mp
    cxp cun bj-pr1un c0 bj-pr11val cif bj-pr1val eqtri 1n0 iffalsei uneq12i un0
    neii 3eqtri ) ABCZDZAEZFGBHMZNZDZUIDZUJDZNZAUGUKIUHULIABJUGUKKLUIUJOUOAPNAU
    MAUNPAQUNFPIZBPRPFBSUPBPFPUAUEUBTUCAUDTUF $.

  $( Syntax for the second class tuple projection.  (Contributed by BJ,
     6-Oct-2018.) $)
  bj-cpr2 $a class pr2 A $.

  $( Definition of the second projection of a class tuple.  New usage is
     discouraged because the precise definition is generally unimportant
     compared to the characteristic properties ~ bj-pr2eq , ~ bj-pr22val ,
     ~ bj-pr2ex .  (Contributed by BJ, 6-Oct-2018.)
     (New usage is discouraged.) $)
  df-bj-pr2 $a |- pr2 A = ( 1o Proj A ) $.

  $( Substitution property for ` pr2 ` .  (Contributed by BJ, 6-Oct-2018.) $)
  bj-pr2eq $p |- ( A = B -> pr2 A = pr2 B ) $=
    ( wceq c1o bj-cproj bj-cpr2 bj-projeq2 df-bj-pr2 3eqtr4g ) ABCDAEDBEAFBFDAB
    GAHBHI $.

  $( The second projection preserves unions.  (Contributed by BJ,
     6-Apr-2019.) $)
  bj-pr2un $p |- pr2 ( A u. B ) = ( pr2 A u. pr2 B ) $=
    ( c1o cun bj-cproj bj-cpr2 bj-projun df-bj-pr2 uneq12i 3eqtr4i ) CABDZECAEZ
    CBEZDKFAFZBFZDCABGKHNLOMAHBHIJ $.

  $( Value of the second projection.  (Contributed by BJ, 6-Apr-2019.) $)
  bj-pr2val $p |- pr2 ( { A } X. tag B ) = if ( A = 1o , B , (/) ) $=
    ( csn bj-ctag cxp bj-cpr2 c1o bj-cproj wceq c0 cif df-bj-pr2 cvv bj-projval
    wcel bj-1ex ax-mp eqtri ) ACBDEZFGSHZAGIBJKZSLGMOTUAIPGABMNQR $.

  $( Value of the second projection of a couple.  (Contributed by BJ,
     6-Oct-2018.) $)
  bj-pr22val $p |- pr2 (| A ,, B |) = B $=
    ( bj-c2uple bj-cpr2 bj-c1upl c1o csn bj-ctag cxp cun c0 df-bj-2upl bj-pr2eq
    wceq ax-mp bj-pr2un eqtri cif bj-pr2val 3eqtri df-bj-1upl 1n0 iffalsei eqid
    nesymi iftruei uneq12i uncom un0 ) ABCZDZAEZDZFGBHIZDZJZKBJZBUKULUNJZDZUPUJ
    URNUKUSNABLUJURMOULUNPQUMKUOBUMKGAHIZDZKFNZAKRKULUTNUMVANAUAULUTMOKASVBAKFK
    UBUEUCTUOFFNZBKRBFBSVCBKFUDUFQUGUQBKJBKBUHBUIQT $.

  $( Sethood of the second projection.  (Contributed by BJ, 6-Oct-2018.) $)
  bj-pr2ex $p |- ( A e. V -> pr2 A e. _V ) $=
    ( wcel bj-cpr2 c1o bj-cproj cvv df-bj-pr2 bj-projex syl5eqel ) ABCADEAFGAHE
    ABIJ $.

  $( The characteristic property of couples.  Note that this holds without
     sethood hypotheses (compare ~ opth ).  (Contributed by BJ, 6-Oct-2018.) $)
  bj-2uplth $p |- ( (| A ,, B |) = (| C ,, D |) <-> ( A = C /\ B = D ) ) $=
    ( bj-c2uple wceq wa bj-cpr1 bj-pr1eq bj-pr21val 3eqtr3g bj-pr2eq bj-pr22val
    bj-cpr2 jca bj-2upleq imp impbii ) ABEZCDEZFZACFZBDFZGUAUBUCUASHTHACSTIABJC
    DJKUASNTNBDSTLABMCDMKOUBUCUAACBDPQR $.

  $( A couple is a set if and only if its coordinates are sets.  (Contributed
     by BJ, 6-Oct-2018.) $)
  bj-2uplex $p |- ( (| A ,, B |) e. _V <-> ( A e. _V /\ B e. _V ) ) $=
    ( bj-c2uple cvv wa bj-cpr1 bj-pr21val bj-pr1ex syl5eqelr bj-cpr2 bj-pr22val
    wcel bj-pr2ex jca bj-c1upl c1o csn bj-ctag cxp cun bj-1uplex snex bj-xtagex
    df-bj-2upl biimpri wi ax-mp unexg syl2an syl5eqel impbii ) ABCZDLZADLZBDLZE
    ZUMUNUOUMAULFDABGULDHIUMBULJDABKULDMINUPULAOZPQZBRSZTZDABUDUNUQDLZUSDLZUTDL
    UOVAUNAUAUEURDLUOVBUFPUBURBDDUCUGUQUSDDUHUIUJUK $.

  $( A couple is nonempty.  (Contributed by BJ, 21-Apr-2019.) $)
  bj-2upln0 $p |- (| A ,, B |) =/= (/) $=
    ( bj-c2uple bj-c1upl c1o csn bj-ctag cxp cun df-bj-2upl wpss bj-1upln0 0pss
    c0 wne wss mpbir ssun1 psssstr mp2an mpbi eqnetri ) ABCADZEFBGHZIZNABJNUEKZ
    UENONUCKZUCUEPUFUGUCNOALUCMQUCUDRNUCUESTUEMUAUB $.

  $( A couple is never equal to a monuple.  It is in order to have this
     "non-clashing" result that tagging was used.  Without tagging, we would
     have ` (| A , (/) |) = (| A |) ` .  Note that in the context of Morse
     tuples, it is natural to define the 0-tuple as the empty set.  Therefore,
     the present theorem together with ~ bj-1upln0 and ~ bj-2upln0 tell us that
     an m-tuple may equal an n-tuple only when m = n, at least for m, n <= 2,
     but this result would extend as soon as we define n-tuples for higher
     values of n.  (Contributed by BJ, 21-Apr-2019.) $)
  bj-2upln1upl $p |- (| A ,, B |) =/= (| C |) $=
    ( bj-c1upl cdif wne wpss c1o csn bj-ctag cxp cun wss difeq2i cin wceq ax-mp
    c0 mpbi 0pss bj-c2uple xpundi bj-disjsn01 xpdisj1 eqtr3i disjdif2 wa bj-1ex
    incom snnz bj-tagn0 pm3.2i xpnz eqnetrri mpbir ssun2 sscon ssdif df-bj-2upl
    eqnetri sstri df-bj-1upl uneq1i eqtri difeq1i sseqtr4i psssstr mp2an difn0
    ) ABUAZCDZEZRFZVJVKFRVLGZVMRHIZBJZKZRIZAJZKZVRCJZKZLZEZGZWDVLMVNWEWDRFVQVRV
    SWALZKZEZWDRWGWCVQVRVSWAUBNWHVQRVQWGOZRPWHVQPWGVQOZWIRWGVQUIVRVOORPWJRPUCVR
    VOWFVPUDQUEVQWGUFQVORFZVPRFZUGVQRFWKWLHUHUJBUKULVOVPUMSUTUNWDTUOWDVJWBEZVLW
    DVTVQLZWBEZWMWDVQWBEZWOWBWCMWDWPMWBVTUPWBWCVQUQQVQWNMWPWOMVQVTUPVQWNWBURQVA
    VJWNWBVJADZVQLWNABUSWQVTVQAVBVCVDVEVFVKWBVJCVBNVFRWDVLVGVHVLTSVJVKVIQ $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Set theory: miscellaneous
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Miscellaneous theorems of set theory.

$)

  $( Relative version of ~ ssdifin0 , allowing a biconditional, and of
     ~ disj2 .  This proof does not rely, even indirectly, on ~ ssdifin0 nor
     ~ disj2 .  (Contributed by BJ, 11-Nov-2021.) $)
  bj-disj2r $p |-
                ( ( A i^i V ) C_ ( V \ B ) <-> ( ( A i^i B ) i^i V ) = (/) ) $=
    ( cin cdif wss wceq df-ss indif2 inss1 ssid inss2 ssini eqssi difeq1i eqtri
    c0 eqeq1i eqcom 3bitri disj3 in32 3bitr2i ) ACDZCBEZFZUDUDBEZGZUDBDZQGABDCD
    ZQGUFUDUEDZUDGUGUDGUHUDUEHUKUGUDUKUDCDZBEUGUDCBIULUDBULUDUDCJUDUDCUDKACLMNO
    PRUGUDSTUDBUAUIUJQACBUBRUC $.

  $( Contraposition law for relative subsets.  Relative and generalized version
     of ~ ssconb , which it can shorten, as well as ~ conss2 .  (Contributed by
     BJ, 11-Nov-2021.) $)
  bj-sscon $p |- ( ( A i^i V ) C_ ( V \ B ) <-> ( B i^i V ) C_ ( V \ A ) ) $=
    ( cin c0 wceq cdif wss incom ineq1i eqeq1i bj-disj2r 3bitr4i ) ABDZCDZEFBAD
    ZCDZEFACDCBGHBCDCAGHOQENPCABIJKABCLBACLM $.

  ${
    $d z x $.  $d z y $.
    $( Justification theorem for ~ bj-df-v .  See also ~ vjust and ~ bj-vjust .
       (Contributed by BJ, 30-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-vjust2 $p |- { x | T. } = { y | T. } $=
      ( vz wtru cab cv wcel wsb df-clab bj-sbfvv 3bitr4ri bitri eqriv ) CDAEZDB
      EZCFZNGDACHZPOGZDCAIDBCHDRQDBCJDCBIDACJKLM $.
  $}

  ${
    $d x y $.
    $( Alternate definition of the universal class.  Actually, the current
       definition ~ df-v should be proved from this one, and ~ vex should be
       proved from this proposed definition together with ~ bj-vexwv , which
       would remove from ~ vex dependency on ~ ax-13 (see also comment of
       ~ bj-vexw ).  (Contributed by BJ, 30-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-df-v $p |- _V = { x | T. } $=
      ( vy cvv wtru cab wceq cv wcel wb dfcleq vex tru bj-vexwv 2th mpgbir ) CD
      AEZFBGZCHZQPHZIBBCPJRSBKDABLMNO $.
  $}

  $( Alternate definition of the empty class/set.  (Contributed by BJ,
     30-Nov-2019.)  (Proof modification is discouraged.) $)
  bj-df-nul $p |- (/) = { x | F. } $=
    ( wfal c0 cv wcel noel bifal bj-abbi2i ) BACADZCEIFGH $.

  ${
    $d x y $.
    $( Two formulations of the axiom of the empty set ~ ax-nul .  Proposal:
       place it right before ~ ax-nul .  (Contributed by BJ, 30-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-nul $p |- ( (/) e. _V <-> E. x A. y -. y e. x ) $=
      ( c0 cvv wcel cv wceq wex wel wn wal isset eq0 exbii bitri ) CDEAFZCGZAHB
      AIJBKZAHACLQRABPMNO $.
  $}

  ${
    $d x y $.
    $( Definition of the empty set using the definite description binder.  See
       also ~ bj-nuliotaALT .  (Contributed by BJ, 30-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-nuliota $p |- (/) = ( iota x A. y -. y e. x ) $=
      ( wel wn wal cio c0 cv wcel wceq cvv weu 0ex eueq1 eq0 eubii eleq2 notbid
      wb mpbi albidv iota2 mp2an noel mpgbi eqcomi ) BACZDZBEZAFZGBHZGIZDZUJGJZ
      BGKIUIALZUMBEZUNSMAHZGJZALUOAGMNURUIABUQOPTUIUPAGKURUHUMBURUGULUQGUKQRUAU
      BUCUKUDUEUF $.
  $}

  ${
    $d x y $.
    $( Alternate proof of ~ bj-nuliota .  Note that this alternate proof uses
       the fact that ` iota x ph ` evaluates to ` (/) ` when there is no ` x `
       satisfying ` ph ` ( ~ iotanul ).  This is an implementation detail of
       the encoding currently used in set.mm and should be avoided.
       (Contributed by BJ, 30-Nov-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    bj-nuliotaALT $p |- (/) = ( iota x A. y -. y e. x ) $=
      ( c0 wel wn wal cio 0ss cab cuni iotassuni cv csn eq0 bicomi abbii unieqi
      wceq df-sn eqcomi 0ex unisn 3eqtri sseqtri eqssi ) CBADEBFZAGZUGHUGUFAIZJ
      ZCUFAKUIALZCRZAIZJCMZJCUHULUFUKAUKUFBUJNOPQULUMUMULACSTQCUAUBUCUDUE $.
  $}

  ${
    bj-vtoclgfALT.1 $e |- F/_ x A $.
    bj-vtoclgfALT.2 $e |- F/ x ps $.
    bj-vtoclgfALT.3 $e |- ( x = A -> ( ph <-> ps ) ) $.
    bj-vtoclgfALT.4 $e |- ph $.
    $( Alternate proof of ~ vtoclgf .  Proof from ~ vtoclgft .  (This may have
       been the original proof before shortening.)  (Contributed by BJ,
       30-Sep-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    bj-vtoclgfALT $p |- ( A e. V -> ps ) $=
      ( wnfc wnf wa cv wceq wb wi wal wcel pm3.2i ax-gen vtoclgft mp3an12 ) CDJ
      ZBCKZLCMDNABOPZCQZACQZLDERBUCUDFGSUFUGUECHTACITSABCDEUAUB $.
  $}

  ${
    $d y f A $.
    $( Remove hypothesis from ~ pwcfsdom .  Illustration of how to remove a
       "proof-facilitating hypothesis".  (Can use it to shorten theorems using
       ~ pwcfsdom .)  (Contributed by BJ, 14-Sep-2019.) $)
    bj-pwcfsdom $p |- ( aleph ` A ) ~<
      ( ( aleph ` A ) ^m ( cf ` ( aleph ` A ) ) ) $=
      ( vy vf cale cfv ccf cv char cmpt eqid pwcfsdom ) BACBADEFEBGCGEHEIZLJK
      $.
  $}

  $( Remove hypothesis from ~ grur1 .  Illustration of how to remove a
     "definitional hypothesis".  This makes its uses longer, but the theorem
     feels more self-contained.  It looks preferable when the defined term
     appears only once in the conclusion.  (Contributed by BJ, 14-Sep-2019.) $)
  bj-grur1 $p |- ( ( U e. Univ /\ U e. U. ( R1 " On ) ) ->
                                                 U = ( R1 ` ( U i^i On ) ) ) $=
    ( con0 cin eqid grur1 ) ABCZAFDE $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Evaluation
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d A f $.  $d B f $.
    $( Equality theorem for the ` Slot ` construction.  This is currently a
       duplicate of ~ sloteq but may diverge from it if/when a token Eval is
       introduced for evaluation in order to separate it from Slot and any of
       its possible modifications.  (Contributed by BJ, 27-Dec-2021.)
       (Proof modification is discouraged.) $)
    bj-evaleq $p |- ( A = B -> Slot A = Slot B ) $=
      ( vf wceq cvv cv cfv cmpt cslot fveq2 mpteq2dv df-slot 3eqtr4g ) ABDZCEAC
      FZGZHCEBOGZHAIBINCEPQABOJKCALCBLM $.
  $}

  ${
    $d A f $.
    $( The evaluation at a class is a function.  (Contributed by BJ,
       27-Dec-2021.) $)
    bj-evalfun $p |- Fun Slot A $=
      ( vf cvv cv cfv cslot df-slot funmpt2 ) BCABDEAFBAGH $.

    $( The evaluation at a class is a function on the universal class.
       (General form of ~ slotfn ).  (Contributed by Mario Carneiro,
       22-Sep-2015.)  (Revised by BJ, 27-Dec-2021.) $)
    bj-evalfn $p |- Slot A Fn _V $=
      ( vf cvv cv cfv cslot fvex df-slot fnmpti ) BCABDZEAFAJGBAHI $.
  $}

  ${
    $d A f $.  $d F f $.
    $( Value of the evaluation at a class.  (Closed form of ~ strfvnd and
       ~ strfvn ).  (Contributed by NM, 9-Sep-2011.)  (Revised by Mario
       Carneiro, 15-Nov-2014.)  (Revised by BJ, 27-Dec-2021.) $)
    bj-evalval $p |- ( F e. V -> ( Slot A ` F ) = ( F ` A ) ) $=
      ( vf wcel cvv cslot cfv wceq elex cv fveq1 df-slot fvex fvmpt syl ) BCEBF
      EBAGZHABHZIBCJDBADKZHRFQASBLDAMABNOP $.
  $}

  $( The evaluation at a set of the identity function is that set.  (General
     form of ~ ndxarg .)  The restriction to a set ` V ` is necessary since the
     argument of the function ` Slot A ` (like that of any function) has to be
     a set for the evaluation to be meaningful.  (Contributed by BJ,
     27-Dec-2021.) $)
  bj-evalid $p |- ( ( V e. W /\ A e. V ) -> ( Slot A ` ( _I |` V ) ) = A ) $=
    ( wcel cid cres cslot cfv cvv wceq resiexg bj-evalval syl fvresi sylan9eq )
    BCDZABDEBFZAGHZAQHZAPQIDRSJBCKAQILMBANO $.

  ${
    bj-ndxarg.1 $e |- E = Slot N $.
    bj-ndxarg.2 $e |- N e. NN $.
    $( Proof of ~ ndxarg from ~ bj-evalid .  (Contributed by BJ, 27-Dec-2021.)
       (Proof modification is discouraged.) $)
    bj-ndxarg $p |- ( E ` ndx ) = N $=
      ( cn cvv wcel cnx cfv wceq nnex wa cid cres cslot df-ndx bj-evalid syl5eq
      fveq12i mp2an ) EFGZBEGZHAIZBJKDUAUBLUCMENZBOZIBHUDAUECPSBEFQRT $.

    $( Proof of ~ ndxid from ~ ndxarg .  (Contributed by BJ, 27-Dec-2021.)
       (Proof modification is discouraged.) $)
    bj-ndxid $p |- E = Slot ( E ` ndx ) $=
      ( cnx cfv wceq cslot bj-ndxarg eqcomi bj-evaleq syl5eq ax-mp ) BEAFZGZANH
      ZGNBABCDIJOABHPCBNKLM $.
  $}

  $( Closed general form of ~ strndxid .  Both sides are equal to
     ` ( F `` A ) ` by ~ bj-evalid and ~ bj-evalval respectively, but
     ~ bj-evalidval adds something to ~ bj-evalid and ~ bj-evalval in that
     ` Slot A ` appears on both sides.  (Contributed by BJ, 27-Dec-2021.) $)
  bj-evalidval $p |- ( ( V e. W /\ A e. V /\ F e. U ) ->
                        ( F ` ( Slot A ` ( _I |` V ) ) ) = ( Slot A ` F ) ) $=
    ( wcel w3a cid cres cslot cfv wa bj-evalid fveq2d 3adant3 bj-evalval eqcomd
    wceq 3ad2ant3 eqtrd ) DEFZADFZCBFZGHDIAJZKZCKZACKZCUDKZUAUBUFUGRUCUAUBLUEAC
    ADEMNOUCUAUGUHRUBUCUHUGACBPQST $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Elementwise operations
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Token for elementwise operations. $)
  $c elwise $.

  $( Syntax for elementwise operations. $)
  celwise $a class elwise $.

  ${
    $d o x y z u v $.
    $( Define the elementwise operation associated with a given operation.  For
       instance, ` + ` is the addition of complex numbers ( ~ axaddf ), so if
       ` A ` and ` B ` are sets of complex numbers, then
       ` ( A ( elwise `` + ) B ) ` is the set of numbers of the form
       ` ( x + y ) ` with ` x e. A ` and ` y e. B ` .  The set of odd natural
       numbers is
       ` ( ( { 2 } ( elwise `` x. ) NN0 ) ( elwise `` + ) { 1 } ) ` , or less
       formally ` 2 NN0 + 1 ` .  (Contributed by BJ, 22-Dec-2021.) $)
    df-elwise $a |- elwise = ( o e. _V |->
       ( x e. _V , y e. _V |-> { z | E. u e. x E. v e. y z = ( u o v ) } ) ) $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Elementwise intersection (families of sets induced on a subset)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Many kinds of structures are given by families of subsets of a given set:
  Moore collections ( ~ df-mre ), topologies ( ~ df-top ), pi-systems, rings of
  sets, delta-rings, lambda-systems/Dynkin systems, algebras/fields of sets,
  sigma-algebras/sigma-fields/tribes ( ~ df-siga ), sigma rings, monotone
  classes, matroids/independent sets, bornologies, filters.

  There is a natural notion of structure induced on a subset.  It is often
  given by an elementwise intersection, namely, the
  family of intersections of sets in the original family with the given subset.
  In this subsection, we define this notion and prove its main properties.
  Classical conditions on families of subsets include being nonempty,
  containing the whole set, containing the empty set, being stable under
  unions, intersections, subsets, supersets, (relative) complements. Therefore,
  we prove related properties for the elementwise intersection.

  We will call ` ( X |``t A ) ` the elementwise intersection on the family
  ` X ` by the class ` A ` .

  REMARK: many theorems are already in set.mm ; MM>search *rest* /J

$)

  $( An elementwise intersection on the empty family is the empty set.  TODO:
     this is ~ 0rest .  (Contributed by BJ, 27-Apr-2021.) $)
  bj-rest00 $p |- ( (/) |`t A ) = (/) $=
    ( 0rest ) AB $.

  ${
    $d A x y $.  $d V x $.  $d W x $.  $d Y x y $.
    $( An elementwise intersection on the singleton on a set is the singleton
       on the intersection by that set.  Generalization of ~ bj-restsn0 and
       ~ bj-restsnid .  (Contributed by BJ, 27-Apr-2021.) $)
    bj-restsn $p |-
               ( ( Y e. V /\ A e. W ) -> ( { Y } |`t A ) = { ( Y i^i A ) } ) $=
      ( vx vy wcel wa csn crest co cin cv wceq wrex cvv wb snex elrest mpan
      velsn ineq1 sneqd eleq2d syl5bbr rexsng sylan9bbr eqrdv ) DBGZACGZHEDIZAJ
      KZDALZIZUJEMZULGZUOFMZALZNZFUKOZUIUOUNGZUKPGUJUPUTQDRFUOAUKPCSTUSVAFDBUSU
      OURIZGUQDNZVAEURUAVCVBUNUOVCURUMUQDAUBUCUDUEUFUGUH $.
  $}

  $( Special case of ~ bj-restsn .  (Contributed by BJ, 27-Apr-2021.) $)
  bj-restsnss $p |-
               ( ( Y e. V /\ A C_ Y ) -> ( { Y } |`t A ) = { A } ) $=
    ( wss cin csn wceq wcel crest sseqin2 sneq sylbi cvv ssexg ancoms bj-restsn
    co syldan eqeq2 biimpa syl2an2 ) ACDZCAEZFZAFZGZCBHZCFAIQZUDGZUHUEGZUBUCAGU
    FACJUCAKLUGUBAMHZUIUBUGUKACBNOABMCPRUFUIUJUDUEUHSTUA $.

  $( Special case of ~ bj-restsn .  (Contributed by BJ, 27-Apr-2021.) $)
  bj-restsnss2 $p |-
               ( ( A e. V /\ Y C_ A ) -> ( { Y } |`t A ) = { Y } ) $=
    ( wss cin wceq wcel crest co df-ss sneq sylbi ssexg ancoms bj-restsn syldan
    csn cvv eqeq2 biimpa syl2an2 ) CADZCAEZQZCQZFZABGZUEAHIZUDFZUHUEFZUBUCCFUFC
    AJUCCKLUGUBCRGZUIUBUGUKCABMNUKUGUIARBCONPUFUIUJUDUEUHSTUA $.

  $( An elementwise intersection on the singleton on the empty set is the
     singleton on the empty set.  Special case of ~ bj-restsn and
     ~ bj-restsnss2 .  TODO: this is ~ restsn .  (Contributed by BJ,
     27-Apr-2021.) $)
  bj-restsn0 $p |- ( A e. V -> ( { (/) } |`t A ) = { (/) } ) $=
    ( wcel c0 wss wa csn crest co wceq 0ss jctr bj-restsnss2 syl ) ABCZODAEZFDG
    ZAHIQJOPAKLABDMN $.

  $( Special case of ~ bj-restsn , ~ bj-restsnss , and ~ bj-rest10 .
     (Contributed by BJ, 27-Apr-2021.) $)
  bj-restsn10 $p |- ( X e. V -> ( { X } |`t (/) ) = { (/) } ) $=
    ( wcel c0 wss csn crest co wceq 0ss bj-restsnss mpan2 ) BACDBEBFDGHDFIBJDAB
    KL $.

  ${
    $d x y z $.
    $( The elementwise intersection on the singleton on a class by that class
       is the singleton on that class.  Special case of ~ bj-restsn and
       ~ bj-restsnss .  (Contributed by BJ, 27-Apr-2021.) $)
    bj-restsnid $p |- ( { A } |`t A ) = { A } $=
      ( vx vy vz cvv wcel csn crest co wceq wss ssid bj-restsnss mpan2 wn c0 cv
      cin cmpt crn df-rest reldmmpt2 ovprc2 snprc biimpi eqtr4d pm2.61i ) AEFZA
      GZAHIZUIJZUHAAKUKALAEAMNUHOZUJPUIUIAHBCEEDBQDQCQRSTHCDBUAUBUCULUIPJAUDUEU
      FUG $.
  $}

  ${
    $d V x $.  $d X x y $.
    $( An elementwise intersection on a nonempty family by the empty set is the
       singleton on the empty set.  TODO: this generalizes ~ rest0 and could
       replace it.  (Contributed by BJ, 27-Apr-2021.) $)
    bj-rest10 $p |- ( X e. V -> ( X =/= (/) -> ( X |`t (/) ) = { (/) } ) ) $=
      ( vx vy wcel c0 wne crest co csn wceq wa cv cin wrex cvv wb 0ex wex bitri
      elrest mpan2 in0 eqeq2i rexbii df-rex 19.41v bicomi anbi1i sylan9bb velsn
      n0 baib syl6bbr eqrdv ex ) BAEZBFGZBFHIZFJZKUQURLZCUSUTVACMZUSEZVBFKZVBUT
      EUQVCVBDMZFNZKZDBOZURVDUQFPEVCVHQRDVBFBAPUAUBVHURVDVHVDDBOZURVDLZVGVDDBVF
      FVBVEUCUDUEVIVEBEZVDLDSZVJVDDBUFVLVKDSZVDLVJVKVDDUGVMURVDURVMDBULUHUITTTU
      MUJCFUKUNUOUP $.
  $}

  $( Alternate version of ~ bj-rest10 .  (Contributed by BJ, 27-Apr-2021.) $)
  bj-rest10b $p |- ( X e. ( V \ { (/) } ) -> ( X |`t (/) ) = { (/) } ) $=
    ( c0 csn cdif wcel wne wa crest co wceq eldif 0ex elsn2 neqne sylnbi anim2i
    wn sylbi bj-rest10 imp syl ) BACDZEFZBAFZBCGZHZBCIJUCKZUDUEBUCFZRZHUGBAUCLU
    JUFUEUIBCKUFBCMNBCOPQSUEUFUHABTUAUB $.

  ${
    $d A x y $.  $d V x $.  $d W x $.  $d X x y $.
    $( An elementwise intersection on a nonempty family is nonempty.
       (Contributed by BJ, 27-Apr-2021.) $)
    bj-restn0 $p |-
            ( ( X e. V /\ A e. W ) -> ( X =/= (/) -> ( X |`t A ) =/= (/) ) ) $=
      ( vx vy wcel wa c0 wne cv crest co wex cin wceq wrex n0 wi vex inex1 jctr
      isseti eximi df-rex sylibr rexcom4 sylib a1i syl5bi elrest biimprd eximdv
      syld syl6ibr ) DBGACGHZDIJZEKZDALMZGZENZUSIJUPUQURFKZAOZPZFDQZENZVAUQVBDG
      ZFNZUPVFFDRVHVFSUPVHVDENZFDQZVFVHVGVIHZFNVJVGVKFVGVIEVCVBAFTUAUCUBUDVIFDU
      EUFVDFEDUGUHUIUJUPVEUTEUPUTVEFURADBCUKULUMUNEUSRUO $.
  $}

  $( Alternate version of ~ bj-restn0 .  (Contributed by BJ, 27-Apr-2021.) $)
  bj-restn0b $p |-
               ( ( X e. ( V \ { (/) } ) /\ A e. W ) -> ( X |`t A ) =/= (/) ) $=
    ( c0 csn cdif wcel wa wne crest co eldifi eldifsni jca an32 sylib bj-restn0
    anim1i imp syl ) DBEFZGHZACHZIZDBHZUDIZDEJZIZDAKLEJZUEUFUHIZUDIUIUCUKUDUCUF
    UHDBUBMDBENOSUFUHUDPQUGUHUJABCDRTUA $.

  ${
    $d A x y $.  $d V x $.  $d W x $.  $d Y x y $.
    $( The elementwise intersection on a powerset is the powerset of the
       intersection.  This allows to prove for instance that the topology
       induced on a subset by the discrete topology is the discrete topology on
       that subset.  See also ~ restdis (which uses ~ distop and ~ restopn2 ).
       (Contributed by BJ, 27-Apr-2021.) $)
    bj-restpw $p |-
                 ( ( Y e. V /\ A e. W ) -> ( ~P Y |`t A ) = ~P ( Y i^i A ) ) $=
      ( vx vy wcel wa cpw cin wceq cvv wex wss selpw sstr2 inss1 sseq1 mpbiri
      cv crest co wrex pwexg elrest sylan anbi1i exbii com12 impel inss2 adantl
      wb ssind exlimiv mpi ssid a1i eqssd vex ineq1 eqeq2d anbi12d spcev sylan2
      id syl2anc impbii bitri df-rex 3bitr4i syl6bb eqrdv ) DBGZACGZHZEDIZAUAUB
      ZDAJZIZVPETZVRGZWAFTZAJZKZFVQUCZWAVTGZVNVQLGVOWBWFUMDBUDFWAAVQLCUEUFWCVQG
      ZWEHZFMZWAVSNZWFWGWJWCDNZWEHZFMZWKWIWMFWHWLWEFDOUGUHWNWKWMWKFWMWADAWLWAWC
      NZWADNZWEWOWLWPWAWCDPUIWEWOWDWCNWCAQWAWDWCRSUJWEWAANZWLWEWQWDANWCAUKWAWDA
      RSULUNUOWKWPWQWNWKVSDNWPDAQWAVSDPUPWKVSANWQDAUKWAVSAPUPWQWPWAWAAJZKZWNWQW
      AWRWQWAWAAWAWANWQWAUQURWQVFUNWRWANWQWAAQURUSWMWPWSHFWAEUTWCWAKZWLWPWEWSWC
      WADRWTWDWRWAWCWAAVAVBVCVDVEVGVHVIWEFVQVJEVSOVKVLVM $.
  $}

  ${
    $d A x $.  $d X x $.
    $( An elementwise intersection on a family containing the empty set
       contains the empty set.  (Contributed by BJ, 27-Apr-2021.) $)
    bj-rest0 $p |-
              ( ( X e. V /\ A e. W ) -> ( (/) e. X -> (/) e. ( X |`t A ) ) ) $=
      ( vx c0 wcel crest co wa cv cin wceq wrex wex in0 incom eqtr3i 0ex eleq1
      ineq1 eqeq2d anbi12d spcev mpan2 df-rex sylibr elrest syl5ibr ) FDGZFDAHI
      GDBGACGJFEKZALZMZEDNZUJUKDGZUMJZEOZUNUJFFALZMZUQAFLFURAPAFQRUPUJUSJEFSUKF
      MZUOUJUMUSUKFDTUTULURFUKFAUAUBUCUDUEUMEDUFUGEFADBCUHUI $.
  $}

  ${
    $d A y $.  $d B y $.  $d X y $.
    $( An elementwise intersection by a set on a family containing a superset
       of that set contains that set.  (Contributed by BJ, 27-Apr-2021.) $)
    bj-restb $p |-
                  ( X e. V -> ( ( A C_ B /\ B e. X ) -> A e. ( X |`t A ) ) ) $=
      ( vy wcel wss wa crest co cv cin wceq wrex wex id ssid a1i ssind cvv expd
      inss2 eqssd eleq1 ineq1 eqeq2d anbi12d spcegv pm2.43i mpan9 df-rex sylibr
      wi adantl wb ssexg elrest sylan2 mpbird ex ) DCFZABGZBDFZHZADAIJFZVAVDHVE
      AEKZALZMZEDNZVDVIVAVDVFDFZVHHZEOZVIVBABALZMZVCVLVBAVMVBABAVBPAAGVBAQRSVMA
      GVBBAUBRUCVCVNVLUMVCVCVNVLVKVCVNHEBDVFBMZVJVCVHVNVFBDUDVOVGVMAVFBAUEUFUGU
      HUAUIUJVHEDUKULUNVDVAATFVEVIUOABDUPEAADCTUQURUSUT $.
  $}

  $( An elementwise intersection by a subset on a family containing the whole
     set contains the whole subset.  (Contributed by BJ, 27-Apr-2021.) $)
  bj-restv $p |- ( ( A C_ U. X /\ U. X e. X ) -> A e. ( X |`t A ) ) $=
    ( cvv wcel cuni wss wa crest co uniexr adantl bj-restb mpcom ) BCDZABEZFZOB
    DZGABAHIDQNPBBJKAOCBLM $.


  $( An elementwise intersection by a set on a family containing that set
     contains that set.  (Contributed by BJ, 27-Apr-2021.) $)
  bj-resta $p |- ( X e. V -> ( A e. X -> A e. ( X |`t A ) ) ) $=
    ( wcel wss crest co ssid bj-restb mpani ) CBDAAEACDACAFGDAHAABCIJ $.

  ${
    $d A x y z $.  $d V x y $.  $d W x y $.  $d X x y z $.
    $( The union of an elementwise intersection by a set is equal to the
       intersection with that set of the union of the family.  See also
       ~ restuni and ~ restuni2 .  (Contributed by BJ, 27-Apr-2021.) $)
    bj-restuni $p |-
             ( ( X e. V /\ A e. W ) -> U. ( X |`t A ) = ( U. X i^i A ) ) $=
      ( vx vy vz wcel wa cuni cin cv wex eluni bicomi anbi1i 19.42v bitri exbii
      3bitri crest co wceq wrex elrest anbi2d exbidv wb a1i df-rex anbi2i excom
      an12 eqimss sseld imdistanri eqimss2 impbii vex inex1 isseti biantru elin
      biid bianass ancom 19.41v 3bitr4g bitrd syl5bb eqrdv ) DBHACHIZEDAUAUBZJZ
      DJZAKZELZVNHVQFLZHZVRVMHZIZFMZVLVQVPHZFVQVMNVLWBVSVRGLZAKZUCZGDUDZIZFMZWC
      VLWAWHFVLVTWGVSGVRADBCUEUFUGVLVQWDHZWDDHZIZGMZVQAHZIZVQVOHZWNIZWIWCWOWQUH
      VLWMWPWNWPWMGVQDNOPUIWIVSWKWFIZIZGMZFMWSFMZGMZWOWHWTFWHVSWRGMZIZWTWGXCVSW
      FGDUJUKWTXDVSWRGQORSWSFGULXBWLWNIZGMWOXAXEGXAWKVSWFIZIZFMWKXFFMZIZXEWSXGF
      VSWKWFUMSWKXFFQXIWKWJWNIZIWKWJIZWNIXEXHXJWKXHVQWEHZWFIZFMXLWFFMZIZXJXFXMF
      XFXMWFVSXLWFVRWEVQVRWEUNUOUPWFXLVSWFWEVRVQWEVRUQUOUPURSXLWFFQXOXLXJXLXOXN
      XLFWEWDAGUSUTVAVBOVQWDAVCRTUKXJWJWNWKXJVDVEXKWLWNWKWJVFPTTSWLWNGVGRTVQVOA
      VCVHVIVJVK $.
  $}

  $( The union of an elementwise intersection on a family of sets by a subset
     is equal to that subset.  See also ~ restuni and ~ restuni2 .
     (Contributed by BJ, 27-Apr-2021.) $)
  bj-restuni2 $p |- ( ( X e. V /\ A C_ U. X ) -> U. ( X |`t A ) = A ) $=
    ( wcel cuni wss wa crest cin cvv wceq uniexg ssexg sylan2 ancoms bj-restuni
    co syldan inss2 a1i id ssid ssind eqssd adantl eqtrd ) CBDZACEZFZGCAHQEZUHA
    IZAUGUIAJDZUJUKKUIUGULUGUIUHJDULCBLAUHJMNOABJCPRUIUKAKUGUIUKAUKAFUIUHASTUIA
    UHAUIUAAAFUIAUBTUCUDUEUF $.

  ${
    $d A x $.
    $( A reformulation of the axiom of regularity using elementwise
       intersection.  (RK: might have to be placed later since theorems in this
       section are to be moved early (in the section related to the algebra of
       sets).)  (Contributed by BJ, 27-Apr-2021.) $)
    bj-restreg $p |- ( ( A e. V /\ A =/= (/) ) -> (/) e. ( A |`t A ) ) $=
      ( vx wcel c0 wne wa crest co cv cin wceq wrex zfreg eqcom rexbii sylib wb
      simpl elrest syldan mpbird ) ABDZAEFZGZEAAHIDZECJAKZLZCAMZUEUGELZCAMUICAB
      NUJUHCAUGEOPQUCUDUCUFUIRUCUDSCEAABBTUAUB $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Moore collections (complements)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $( A nonempty intersection of a family of subsets of a class is included in
       that class.  (Contributed by BJ, 7-Dec-2021.) $)
    bj-intss $p |- ( A C_ ~P X -> ( A =/= (/) -> |^| A C_ X ) ) $=
      ( cpw wss cuni c0 wne cint sspwuni biimpi intssuni sstr expcom syl2im ) A
      BCDZAEZBDZAFGAHZPDZRBDZOQABIJAKSQTRPBLMN $.
  $}

  ${
    $d A x $.  $d B x $.  $d ps x $.
    bj-raldifsn.es $e |- ( x = B -> ( ph <-> ps ) ) $.
    $( All elements in a set satisfy a given property if and only if all but
       one satisfy that property and that one also does.  Typically, this can
       be used for characterizations that are proved using different methods
       for a given element and for all others, for instance zero and nonzero
       numbers, or the empty set and nonempty sets.  (Contributed by BJ,
       7-Dec-2021.) $)
    bj-raldifsn $p |-
       ( B e. A -> ( A. x e. A ph <-> ( A. x e. ( A \ { B } ) ph /\ ps ) ) ) $=
      ( wcel wral csn cdif cun wa difsnid eqcomd raleqdv wb ralunb wal syl5bb
      wi a1i cv df-ral wceq velsn imbi1i albii nfv bj-ceqsalgv anbi2d 3bitrd )
      EDGZACDHACDEIZJZUMKZHZACUNHZACUMHZLZUQBLULACDUOULUODDEMNOUPUSPULACUNUMQUA
      ULURBUQURCUBZUMGZATZCRZULBACUMUCVCUTEUDZATZCRULBVBVECVAVDACEUEUFUGABCEDBC
      UHFUISSUJUK $.
  $}

  ${
    $d x A $.  $d x B $.  $d x X $.
    $( If ` A ` is a collection of subsets of ` X ` , like a topology, two
       equivalent ways to say that arbitrary intersections of elements of ` A `
       relative to ` X ` belong to some class ` B ` (in typical applications,
       ` A ` itself).  (Contributed by BJ, 7-Dec-2021.) $)
    bj-0int $p |- ( A C_ ~P X -> (
                     ( X e. B /\ A. x e. ( ~P A \ { (/) } ) |^| x e. B ) <->
                                       A. x e. ~P A ( X i^i |^| x ) e. B ) ) $=
      ( cpw wss wcel cv cint c0 csn wral wa cin wb wceq df-ss a1i wi eleq1 cdif
      cvv ssv int0 sseqtr4i mpbi eqcomi eleq1i wne eldifsn sstr2 bj-intss elpwi
      syl6 syl11 impd syl5bi incom eqeq1i eqcom sylbb sylbi syl5 ralrimiv ralbi
      syld syl anbi12d ancom syl6bb 0elpw inteq ineq2 bj-raldifsn ax-mp syl6bbr
      3syl ) BDEZFZDCGZAHZIZCGZABEZJKUAZLZMZDWBNZCGZAWELZDJIZNZCGZMZWIAWDLZVSWG
      WMWJMWNVSVTWMWFWJVTWMOVSDWLCWLDDWKFWLDPDUBWKDUCUDUEDWKQUFUGUHRVSWCWIOZAWE
      LWFWJOVSWPAWEVSWAWEGZWBDFZWPWQWAWDGZWAJUIZMVSWRWAWDJUJVSWSWTWRWABFZVSWTWR
      SZWSXAVSWAVRFXBWABVRUKWADULUNWABUMUOUPUQWRWBWHPZVSWPWRWBDNZWBPZXCWBDQXEWH
      WBPXCXDWHWBWBDURUSWHWBUTVAVBXCWPSVSWBWHCTRVCVFVDWCWIAWEVEVGVHWMWJVIVJJWDG
      WOWNOBVKWIWMAWDJWAJPWBWKPWHWLPWIWMOWAJVLWBWKDVMWHWLCTVQVNVOVP $.
  $}

  ${
    $d A x $.
    $( A Moore collection is a set.  That is, if we define a "Moore predicate"
       by ` ( Moore A <-> A. x e. ~P A ( U. A i^i |^| x ) e. A ) ` , then any
       class satisfying that predicate is actually a set.  Therefore, the
       definition ~ df-bj-moore is sufficient.  Note that the closed sets of a
       topology form a Moore collection, so this remark also applies to
       topologies and many other families of sets (namely, as soon as the whole
       set is required to be a closed set, as can be seen from the proof, which
       relies crucially on ~ uniexr ).

       Note: if, in the above predicate, we substitute ` ~P X ` for ` A ` ,
       then the last ` e. ~P X ` could be weakened to ` C_ ~P X ` , and then
       the predicate would be obviously satisfied since ` U. ~P X = X ` ,
       making ` ~P X ` a Moore collection in this weaker sense, even if ` X `
       is a proper class, but the addition of this single case does not add
       anything interesting.  (Contributed by BJ, 8-Dec-2021.) $)
    bj-mooreset $p |- ( A. x e. ~P A ( U. A i^i |^| x ) e. A -> A e. _V ) $=
      ( cuni cv cint cin wcel cpw wral cvv c0 wi 0elpw rint0 eleq1d rspcv ax-mp
      wceq uniexr syl ) BCZADZEFZBGZABHZIZUABGZBJGKUEGUFUGLBMUDUGAKUEUBKRUCUABU
      AUBNOPQBBST $.
  $}

  $( Token for the class of Moore collections. $)
  $c Moore_ $.

  $( Syntax for the class of Moore collections. $)
  cmoore $a class Moore_ $.

  ${
    $d x y $.
    $( Define the class of Moore collections.  This is to ~ df-mre what
       ~ df-top is to ~ df-topon .  For the sake of consistency, the function
       defined at ~ df-mre should be denoted by "MooreOn".

       Note: ~ df-mre singles out the empty intersection.  This is not
       necessary.  It could be written instead ` Moore = `
       ` ( x e. _V |-> { y e. ~P ~P x | A. z e. ~P y ( x i^i |^| z ) e. y } ) `
       and the equivalence of both definitions is proved by ~ bj-0int .

       There is no added generality in defining a "Moore predicate" for
       arbitrary classes, since a Moore class satisfying such a predicate is
       automatically a set (see ~ bj-mooreset ).  (Contributed by BJ,
       27-Apr-2021.) $)
    df-bj-moore $a |- Moore_ = { x | A. y e. ~P x ( U. x i^i |^| y ) e. x } $.
  $}

  ${
    $d x y A $.
    $( Characterization of Moore collections among sets.  (Contributed by BJ,
       9-Dec-2021.) $)
    bj-ismoore $p |- ( A e. V ->
                  ( A e. Moore_ <-> A. x e. ~P A ( U. A i^i |^| x ) e. A ) ) $=
      ( vy cv cuni cint cin wcel cpw wral cmoore wceq pweq unieq ineq1d eleq12d
      id raleqbidv df-bj-moore elab2g ) DEZFZAEGZHZUBIZAUBJZKBFZUDHZBIZABJZKDBL
      CUBBMZUFUJAUGUKUBBNULUEUIUBBULUCUHUDUBBOPULRQSDATUA $.
  $}

  ${
    $d x A $.
    $( Characterization of Moore collections.  (Contributed by BJ,
       9-Dec-2021.) $)
    bj-ismoorec $p |- ( A e. Moore_ <->
                       ( A e. _V /\ A. x e. ~P A ( U. A i^i |^| x ) e. A ) ) $=
      ( cmoore wcel cvv cuni cv cint cin cpw wral elex bj-ismoore biadan2 ) BCD
      BEDBFAGHIBDABJKBCLABEMN $.
  $}

  ${
    $d x A $.
    $( Necessary condition to be a Moore collection.  (Contributed by BJ,
       9-Dec-2021.) $)
    bj-ismoored0 $p |- ( A e. Moore_ -> U. A e. A ) $=
      ( vx cmoore wcel cuni cv cint cin cpw wral bj-ismoore c0 0elpw wceq rint0
      wi eleq1d rspcv ax-mp syl6bi pm2.43i ) ACDZAEZADZUBUBUCBFZGHZADZBAIZJZUDB
      ACKLUHDUIUDPAMUGUDBLUHUELNUFUCAUCUEOQRSTUA $.
  $}

  ${
    $d x A $.  $d x B $.
    bj-ismoored.1 $e |- ( ph -> A e. Moore_ ) $.
    $( Necessary condition to be a Moore collection.  (Contributed by BJ,
       9-Dec-2021.) $)

    bj-ismoored.2 $e |- ( ph -> B C_ A ) $.
    $( Necessary condition to be a Moore collection.  (Contributed by BJ,
       9-Dec-2021.) $)
    bj-ismoored $p |- ( ph -> ( U. A i^i |^| B ) e. A ) $=
      ( vx wss cvv wcel cuni cv cint cin cpw wral wa cmoore bj-ismoorec sylib
      wi elpw2g biimparc wceq inteq ineq2d eleq1d rspcv syl expimpd sylc ) ACBG
      ZBHIZBJZFKZLZMZBIZFBNZOZPZUMCLZMZBIZEABQIUTDFBRSUKULUSVCUKULPCURIZUSVCTUL
      VDUKCBHUAUBUQVCFCURUNCUCZUPVBBVEUOVAUMUNCUDUEUFUGUHUIUJ $.

    bj-ismoored2.3 $e |- ( ph -> B =/= (/) ) $.
    $( Necessary condition to be a Moore collection.  (Contributed by BJ,
       9-Dec-2021.) $)
    bj-ismoored2 $p |- ( ph -> |^| B e. A ) $=
      ( cuni cint cin wss c0 wne intssuni2 syl2anc sseqin2 bj-ismoored eqeltrrd
      wceq sylib ) ABGZCHZIZUABAUATJZUBUARACBJCKLUCEFCBMNUATOSABCDEPQ $.
  $}

  ${
    $d ph x $.  $d A x $.
    bj-ismooredr.1 $e |- ( ph -> A e. V ) $.
    bj-ismooredr.2 $e |- ( ( ph /\ x C_ A ) -> ( U. A i^i |^| x ) e. A ) $.
    $( Sufficient condition to be a Moore collection.  (Contributed by BJ,
       9-Dec-2021.) $)
    bj-ismooredr $p |- ( ph -> A e. Moore_ ) $=
      ( cmoore wcel cuni cv cint cin cpw wral wi wal wss elpwi ex syl5 alrimiv
      df-ral sylibr wb bj-ismoore syl mpbird ) ACGHZCIBJZKLCHZBCMZNZAUIUKHZUJOZ
      BPULAUNBUMUICQZAUJUICRAUOUJFSTUAUJBUKUBUCACDHUHULUDEBCDUEUFUG $.
  $}

  ${
    $d ph x $.  $d A x $.
    bj-ismooredr2.1 $e |- ( ph -> A e. V ) $.
    bj-ismooredr2.2 $e |- ( ph -> U. A e. A ) $.
    bj-ismooredr2.3 $e |-
                         ( ( ( ph /\ x C_ A ) /\ x =/= (/) ) -> |^| x e. A ) $.
    $( Sufficient condition to be a Moore collection.  (Contributed by BJ,
       9-Dec-2021.) $)
    bj-ismooredr2 $p |- ( ph -> A e. Moore_ ) $=
      ( cmoore wcel cuni cv wss c0 wa wceq wo bitri eqcomd eleq1d syl cint wral
      cin cpw selpw wn pm2.1 biantru andi df-ne bicomi anbi2i simpr id syl6eqss
      wne 0ss ancri impbii orbi12i expl wi intssuni2 biimpi biimpd sylcom rint0
      sseqin2 syl5ibcom jaod syl5bi ralrimiv wb bj-ismoore mpbird ) ACHIZCJZBKZ
      UAZUCZCIZBCUDZUBZAWABWBVRWBIZVRCLZVRMUPZNZVRMOZPZAWAWDWEWIBCUEWEWEWHUFZNZ
      WEWHNZPZWIWEWEWJWHPZNWMWNWEWHUGUHWEWJWHUIQWKWGWLWHWJWFWEWFWJVRMUJUKULWLWH
      WEWHUMWHWEWHVRMCWHUNCUQUOURUSUTQQAWGWAWHAWGVSCIZWAAWEWFWOGVAWGVSVQLZWOWAV
      BVRCVCWPWOWAWPVSVTCWPVTVSWPVTVSOVSVQVHVDRSVETVFAVQCIWHWAFWHVQVTCWHVTVQVQV
      RVGRSVIVJVKVLACDIVPWCVMEBCDVNTVO $.
  $}

  ${
    $d x A $.
    $( The discrete Moore collection on a set.  (Contributed by BJ,
       9-Dec-2021.) $)
    bj-discrmoore $p |- ( A e. _V <-> ~P A e. Moore_ ) $=
      ( vx cvv wcel cpw cmoore pwexg cuni cv cint cin unipw ineq1i inex1g inss1
      wss a1i elpwd syl5eqel adantr bj-ismooredr pwexr impbii ) ACDZAEZFDUDBUEC
      ACGUDUEHZBIZJZKZUEDUGUEPUDUIAUHKZUEUFAUHALMUDUJACAUHCNUJAPUDAUHOQRSTUAAFU
      BUC $.
  $}

  ${
    $d x A $.
    $( The empty set is not a Moore collection.  (Contributed by BJ,
       9-Dec-2021.) $)
    bj-0nmoore $p |- -. (/) e. Moore_ $=
      ( c0 cmoore wcel cuni noel bj-ismoored0 mto ) ABCADZACHEAFG $.
  $}

  ${
    $d x A $.
    $( A singleton is a Moore collection.  (Contributed by BJ, 9-Dec-2021.) $)
    bj-snmoore $p |- ( A e. _V <-> { A } e. Moore_ ) $=
      ( vx cvv wcel csn cmoore snex a1i cuni unisng snidg eqeltrd cv wss c0 wne
      cint wceq wn ex wi wo df-ne sssn biorf biimpar syl2anb intsng eqtr syl2im
      inteq wb intex elsng sylbi biimprd syldan com13 imp31 bj-ismooredr2 snprc
      sylan9r biimpi bj-0nmoore eqneltrd con4i impbii ) ACDZAEZFDZVHBVICVICDVHA
      GHVHVIIAVIACJACKLVHBMZVINZVKOPZVKQZVIDZVMVLVHVOVMVLVHVOUAZVMVLVKVIRZVPVMV
      KORZSZVRVQUBZVQVLVKOUCVKAUDVSVQVTVRVQUEUFUGVQVHVNARZVMVOVQVNVIQZRZVHWBARZ
      WAVKVIUKACUHWCWDWAVNWBAUITUJVMVOWAVMVNCDVOWAULVKUMVNACUNUOUPVBUQTURUSUTVH
      VJVHSZVIOFWEVIORAVAVCOFDSWEVDHVEVFVG $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Maps-to notation for functions with three arguments
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d y x $.  $d y A $.  $d y B $.
    $( The empty set is not an element of a function (given in maps-to
       notation).  (Contributed by BJ, 30-Dec-2020.) $)
    bj-0nelmpt $p |- -. (/) e. ( x e. A |-> B ) $=
      ( vy c0 cv wcel wceq wa copab cmpt 0neqopab df-mpt eqcomi eleq2i mtbi ) E
      AFBGDFCHIZADJZGEABCKZGQADLRSESRADBCMNOP $.
  $}

  ${
    bj-mptval.nf $e |- F/_ x A $.
    $( Value of a function given in maps-to notation.  (Contributed by BJ,
       30-Dec-2020.) $)
    bj-mptval $p |- ( A. x e. A B e. V -> ( X e. A ->
               ( ( ( x e. A |-> B ) ` X ) = Y <-> X ( x e. A |-> B ) Y ) ) ) $=
      ( wcel wral cmpt wfn cfv wceq wbr wb wi fnmptf fnbrfvb ex syl ) CDHABIABC
      JZBKZEBHZEUALFMEFUANOZPABCDGQUBUCUDBEFUARST $.
  $}

$(
${
  bj-mptval2.1 $e |- ( ph -> ( x = <. X , Y >. -> B = C ) ) $.
  @( Value of a function given in maps-to notation.  (Contributed by BJ,
     30-Dec-2020.) @)
    bj-mptval2 $p |- ( ph -> ( X ( x e. A |-> B ) Y ) = C ) $=
     ? $.
$}
$)

  ${
    $d x y s t $.  $d s t A $.  $d s t B $.  $d s t C $.  $d y A $.
    $( An equivalent definition of ~ df-mpt2 .  (Contributed by BJ,
       30-Dec-2020.) $)
    bj-dfmpt2a $p |- ( x e. A , y e. B |-> C ) = { <. s , t >. |
                          E. x e. A E. y e. B ( s = <. x , y >. /\ t = C ) } $=
      ( cmpt2 cv wcel wa wceq coprab cop wex copab wrex 3bitr2i exbii df-rex
      df-mpt2 dfoprab2 ancom anbi2i anass an13 r19.42v bitr4i opabbii 3eqtri )
      ABDEFHAIZDJZBIZEJZKZCIFLZKZABCMGIUKUMNLZUQKZBOZAOZGCPURUPKZBEQZADQZGCPABC
      DEFUAUQABCGUBVAVDGCVAULVCKZAOVDUTVEAUTUNULVBKZKZBOVFBEQVEUSVGBUSURUPUOKZK
      VBUOKVGUQVHURUOUPUCUDURUPUOUEVBULUNUFRSVFBETULVBBEUGRSVCADTUHUIUJ $.
  $}

  ${
    $d x y z t A $.  $d x y z t B $.  $d x y t C $.  $d z t D $.
    bj-mpt2mptALT.1 $e |- ( z = <. x , y >. -> C = D ) $.
    $( Alternate proof of ~ mpt2mpt .  (Contributed by BJ, 30-Dec-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-mpt2mptALT $p |-
                       ( z e. ( A X. B ) |-> C ) = ( x e. A , y e. B |-> D ) $=
      ( vt cv cxp wcel wceq wa copab cop wrex cmpt r19.41v rexbii anbi1i eqeq2d
      cmpt2 elxp2 pm5.32i bitr3i 3bitr2i opabbii df-mpt bj-dfmpt2a 3eqtr4i ) CJ
      ZDEKZLZIJZFMZNZCIOULAJBJPMZUOGMZNZBEQZADQZCIOCUMFRABDEGUCUQVBCIUQURBEQZAD
      QZUPNVCUPNZADQVBUNVDUPABULDEUDUAVCUPADSVEVAADVEURUPNZBEQVAURUPBESVFUTBEUR
      UPUSURFGUOHUBUETUFTUGUHCIUMFUIABIDEGCUJUK $.
  $}

  $( Extend the definition of a class to include maps-to notation for functions
     with three arguments. $)
  cmpt3 $a class ( x e. A , y e. B , z e. C |-> D ) $.

  ${
    $d s t x $.  $d s t y $.  $d s t z $.  $d s t A $.  $d s t B $.
    $d s t C $.  $d s t D $.
    $( Define maps-to notation for functions with three arguments.  See
       ~ df-mpt and ~ df-mpt2 for functions with one and two arguments
       respectively.  This definition is analogous to ~ bj-dfmpt2a .
       (Contributed by BJ, 11-Apr-2020.) $)
    df-bj-mpt3 $a |- ( x e. A , y e. B , z e. C |-> D ) = { <. s , t >. |
            E. x e. A E. y e. B E. z e. C ( s = <. x , y , z >. /\ t = D ) } $.
  $}

$(
${
  $d x y z t A $.  $d x y z t B $.  $d x y z t C $.
  $d x D $.  $d y D $.  $d z D $.  $d t E $.
  bj-mpt3mpt.1 $e |- ( z = <. x , y , z >. -> D = E ) $.
  @( Express a three-argument function as a one-argument function, or
     vice-versa.  Similar to ~ mpt2mpt .  @)
  bj-mpt3mpt $p |- ( t e. ( A X. B X. C ) |-> D ) =
                                          ( x e. A , y e. B , z e. C |-> E ) $=
    ? $.
$}
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Currying
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Currying and uncurrying.  See also df-cur and ~ df-unc .  Contrary to these,
  the definitions in this section are parameterized.

$)

  $( Token for the set of set morphisms. $)
  $c -Set-> $.

  $( Syntax for the set of set morphisms. $)
  csethom $a class -Set-> $.

  ${
    $d f x y $.
    $( Define the set of functions (morphisms of sets) between two sets.  Same
       as ~ df-map with arguments swapped.  TODO: prove the same staple lemmas
       as for ` ^m ` .

       Remark: one may define
       ` -Set-> = ( x e. dom Struct , y e. dom Struct |-> `
       ` { f | f : ( Base `` x ) --> ( Base `` y ) } ) ` so that for morphisms
       between other structures, one could write
       ` ... = { f e. ( x -Set-> y ) | ... } ` .

       (Contributed by BJ, 11-Apr-2020.) $)
    df-bj-sethom $a |-
                      -Set-> = ( x e. _V , y e. _V |-> { f | f : x --> y } ) $.
  $}

  $( Token for the set of topological morphisms. $)
  $c -Top-> $.

  $( Syntax for the set of topological morphisms. $)
  ctophom $a class -Top-> $.

  ${
    $d f x y u $.
    $( Define the set of continuous functions (morphisms of topological spaces)
       between two topological spaces.  Similar to ~ df-cn (which is in terms
       of topologies instead of topological spaces).  (Contributed by BJ,
       10-Feb-2022.) $)
    df-bj-tophom $a |- -Top-> = ( x e. TopSp , y e. TopSp |->
                     { f e. ( ( Base ` x ) -Set-> ( Base ` y ) ) |
                 A. u e. ( TopOpen ` y ) ( `' f " u ) e. ( TopOpen ` x ) } ) $.
  $}

  $( Token for the set of magma morphisms. $)
  $c -Mgm-> $.

  $( Syntax for the set of magma morphisms. $)
  cmgmhom $a class -Mgm-> $.

  ${
    $d f x y u v $.
    $( Define the set of magma morphisms between two magmas.  If domain and
       codomain are semigroups, monoids, or groups, then one obtains the set of
       morphisms of these structures.  (Contributed by BJ, 10-Feb-2022.) $)
    df-bj-mgmhom $a |- -Mgm-> = ( x e. Mgm , y e. Mgm |->
                     { f e. ( ( Base ` x ) -Set-> ( Base ` y ) ) |
                       A. u e. ( Base ` x ) A. v e. ( Base ` x )
         ( f ` ( u ( +g ` x ) v ) ) = ( ( f ` u ) ( +g ` y ) ( f ` v ) ) } ) $.
  $}

  $( Token for the set of topological magma morphisms. $)
  $c -TopMgm-> $.

  $( Syntax for the set of topological magma morphisms. $)
  ctopmgmhom $a class -TopMgm-> $.

  ${
    $d x y $.
    $( Define the set of topological magma morphisms (continuous magma
       morphisms) between two topological magmas.  If domain and codomain are
       topological semigroups, monoids, or groups, then one obtains the set of
       morphisms of these structures.  This definition is currently stated with
       topological monoid domain and codomain, since topological magmas are
       currently not defined in set.mm.  (Contributed by BJ, 10-Feb-2022.) $)
    df-bj-topmgmhom $a |- -TopMgm-> =
     ( x e. TopMnd , y e. TopMnd |-> ( ( x -Top-> y ) i^i ( x -Mgm-> y ) ) ) $.
  $}

  $( Token for the parameterized currying function. $)
  $c curry_ $.

  $( Syntax for the parameterized currying function. $)
  ccur- $a class curry_ $.

  ${
    $d x y z a b f $.
    $( Define currying.  See also ~ df-cur .  (Contributed by BJ,
       11-Apr-2020.) $)
    df-bj-cur $a |- curry_ = ( x e. _V , y e. _V , z e. _V |->
                     ( f e. ( ( x X. y ) -Set-> z ) |->
                       ( a e. x |-> ( b e. y |-> ( f ` <. a , b >. ) ) ) ) ) $.
  $}

  $( Token for the parameterized uncurrying function. $)
  $c uncurry_ $.

  $( Notation for the parameterized uncurrying function. $)
  cunc- $a class uncurry_ $.

  ${
    $d x y z a b f $.
    $( Define uncurrying.  See also ~ df-unc .  (Contributed by BJ,
       11-Apr-2020.) $)
    df-bj-unc $a |- uncurry_ = ( x e. _V , y e. _V , z e. _V |->
                             ( f e. ( x -Set-> ( y -Set-> z ) ) |->
                               ( a e. x , b e. y |-> ( ( f ` a ) ` b ) ) ) ) $.
  $}

$(
  ${
    bj-curval.x $e |- ( ph -> X e. U ) $.
    bj-curval.y $e |- ( ph -> Y e. V ) $.
    bj-curval.z $e |- ( ph -> Z e. W ) $.
    @( Value of the currying function.  (Contributed by BJ, 30-Dec-2020.) @)
    bj-curval $p |- ( ph -> ( curry_ ` <. X , Y , Z >. ) =
                   ( f e. ( ( X X. Y ) -Set-> Z ) |->
                     ( a e. X |-> ( b e. Y |-> ( f ` <. a , b >. ) ) ) ) ) $=
      (  ) ? $.

    @( Property of currying.  (Contributed by BJ, 30-Dec-2020.) @)
    bj-cur $p |- ( ph -> ( curry_ ` <. X , Y , Z >. ) e.
            ( ( ( X X. Y ) -Set-> Z ) -Set-> ( X -Set-> ( Y -Set-> Z ) ) ) ) $=
      (  ) ? $.
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Setting components of extensible structures
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Groundwork for changing the definition, syntax and token for
  component-setting in extensible structures.  See
  https://github.com/metamath/set.mm/issues/2401

$)

  $( Tokens for component-setting in extensible structures $)
  $c [s ]s $.

  $( Syntax for component-setting in extensible structures. $)
  cstrset $a class [s B / A ]s S $.

  $( Component-setting in extensible structures.  Define the extensible
     structure ` [s B / A ]s S ` , which is like the extensible structure ` S `
     except that the value ` B ` has been put in the slot ` A ` (replacing the
     current value if there was already one).  In such expressions, ` A ` is
     generally substituted for slot mnemonics like ` Base ` or ` +g ` or
     ` dist ` .  (Contributed by BJ, 13-Feb-2022.) $)
  df-strset $a |- [s B / A ]s S =
          ( ( S |` ( _V \ { ( A ` ndx ) } ) ) u. { <. ( A ` ndx ) , B >. } ) $.

  $( Relation between ~ df-sets and ~ df-strset .  Temporary theorem kept
     during the transition from the former to the latter.  (Contributed by BJ,
     13-Feb-2022.) $)
  setsstrset $p |- ( ( S e. V /\ B e. W ) ->
                          [s B / A ]s S = ( S sSet <. ( A ` ndx ) , B >. ) ) $=
    ( wcel wa cnx cfv cop csts cvv csn cdif cres cun cstrset setsval df-strset
    co syl6reqr ) CDFBEFGCHAIZBJZKTCLUBMNOUCMPABCQUBBCDERABCSUA $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Extended real and complex numbers, real and complex projective lines
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, we indroduce several supersets of the set ` RR ` of real
  numbers and the set ` CC ` of complex numbers.

  Once they are given their usual topologies, which are locally compact, both
  topological spaces have a one-point compactification.  They are denoted by
  ` RRhat ` and ` CChat ` respectively, defined in ~ df-bj-cchat and
  ~ df-bj-rrhat , and the point at infinity is denoted by ` infty ` , defined
  in ~ df-bj-infty .

  Both  ` RR ` and ` CC ` also have "directional compactifications", denoted
  respectively by ` RRbar ` , defined in ~ df-bj-rrbar (already defined as
  ` RR* ` , see ~ df-xr ) and ` CCbar ` , defined in ~ df-bj-ccbar .

  Since ` CCbar ` does not seem to be standard, we describe it in some detail.
  It is obtained by adding to ` CC ` a "point at infinity at the end of each
  ray with origin at 0".  Although ` CCbar ` is not an important object in
  itself, the motivation for introducing it is to provide a common superset to
  both ` RRbar ` and ` CC ` and to define algebraic operations (addition,
  opposite, multiplication, inverse) as widely as reasonably possible.

  Mathematically, ` CCbar ` is the quotient of
  ` ( ( CC X. RR>=0 ) \ { <. 0 , 0 >. } ) `
  by the diagonal multiplicative action of ` RR>0 ` (think of the closed
  "northern hemisphere" in ` RR `^3 identified with ` ( CC X. RR ) ` , that
  each open ray from 0 included in the closed northern half-space intersects
  exactly once).

  Since in set.mm, we want to have a genuine inclusion ` CC C_ CCbar ` , we
  instead define ` CCbar ` as the (disjoint) union of ` CC ` with a circle at
  infinity denoted by ` CCinfty ` .  To have a genuine inclusion
  ` RRbar C_ CCbar ` , we define ` pinfty ` and ` minfty ` as certain points in
  ` CCinfty ` .

  Thanks to this framework, one has the genuine inclusions
  ` RR C_ RRbar ` and ` RR C_ RRhat ` and similarly
  ` CC C_ CCbar ` and ` CC C_ CChat `.
  Furthermore, one has ` RR C_ CC ` as well as ` RRbar C_ CCbar ` and
  ` RRhat C_ CChat `.

  Furthermore, we define the main algebraic operations on
  ` ( CCbar u. CChat ) ` , which is not very mathematical, but "overloads" the
  operations, so that one can use the same notation in all cases.

$)

  $( Token for the nonnegative reals. $)
  $c RR>=0 $.

  $( Token for the (strictly) positive reals. $)
  $c RR>0 $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Diagonal in a Cartesian square
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Complements on the idendity relation and definition of the diagonal in the
  Cartesian square of a set.

$)

  ${
    $d A x y $.
    $( Characterization of the elements of ` _I ` .  (Contributed by BJ,
       22-Jun-2019.) $)
    bj-elid $p |-
          ( A e. _I <-> ( A e. ( _V X. _V ) /\ ( 1st ` A ) = ( 2nd ` A ) ) ) $=
      ( vx cid wcel cvv cxp c1st cfv c2nd wceq wrel wss reli df-rel mpbi eleq1d
      vy wa cv fvex sseli cop 1st2nd2 copab df-id eleq2i eqeq12 opelopaba bitri
      syl ibi sylib jca biimprd syl5bir imp impbii ) ACDZAEEFZDZAGHZAIHZJZRURUT
      VCCUSACKCUSLMCNOUAZURVAVBUBZCDZVCURVFURAVECURUTAVEJVDAEEUCZUJPUKVFVEBSZQS
      ZJZBQUDZDVCCVKVEBQUEUFVJVCBQVAVBAGTAITVHVAVIVBUGUHUIZULUMUTVCURVCVFUTURVL
      UTURVFUTAVECVGPUNUOUPUQ $.
  $}

  $( Characterization of the elements of ` _I ` .  (Contributed by BJ,
     22-Jun-2019.) $)
  bj-elid2 $p |-
            ( A e. ( V X. W ) -> ( A e. _I <-> ( 1st ` A ) = ( 2nd ` A ) ) ) $=
    ( cxp wcel cid c1st cfv c2nd wceq cvv bj-elid simprbi wi sseli simplbi2 syl
    xpss impbid2 ) ABCDZEZAFEZAGHAIHJZUBAKKDZEZUCALZMUAUEUCUBNTUDABCROUBUEUCUFP
    QS $.

  $( Characterization of the elements of ` _I ` .  (Contributed by BJ,
     29-Mar-2020.) $)
  bj-elid3 $p |- ( <. A , B >. e. _I <-> ( A e. _V /\ A = B ) ) $=
    ( cop cid wcel cvv cxp c1st cfv c2nd wa bj-elid opelxp anbi1i op1stg op2ndg
    wceq eqeq12d simpl bitri pm5.32i anim1i eleq1 biimpac simpr jca31 impbii )
    ABCZDEUHFFGEZUHHIZUHJIZQZKZAFEZABQZKZUHLUMUNBFEZKZULKZUPUIURULABFFMNUSURUOK
    ZUPURULUOURUJAUKBABFFOABFFPRUAUTUPURUNUOUNUQSUBUPUNUQUOUNUOSUOUNUQABFUCUDUN
    UOUEUFUGTTT $.

  $( Token for the diagonal of the Cartesian square of a set. $)
  $c Diag $.

  $( Syntax for the diagonal of the Cartesian square of a set. $)
  cdiag2 $a class Diag $.

  $( Define the diagonal of the Cartesian square of a set.  (Contributed by BJ,
     22-Jun-2019.) $)
  df-bj-diag $a |- Diag = ( x e. _V |-> ( _I i^i ( x X. x ) ) ) $.

  ${
    $d x A $.
    $( Value of the diagonal.  (Contributed by BJ, 22-Jun-2019.) $)
    bj-diagval $p |- ( A e. V -> ( Diag ` A ) = ( _I i^i ( A X. A ) ) ) $=
      ( vx wcel cvv cid cxp cin cdiag2 wceq elex incom sqxpexg inex1g syl5eqelr
      cfv syl cv id sqxpeqd ineq2d df-bj-diag fvmptg syl2anc ) ABDZAEDFAAGZHZED
      AIPUGJABKUEUGUFFHZEUFFLUEUFEDUHEDABMUFFENQOCAFCRZUIGZHUGEEIUIAJZUJUFFUKUI
      AUKSTUACUBUCUD $.
  $}

  $( Characterization of the elements of the diagonal of a Cartesian square.
     (Contributed by BJ, 22-Jun-2019.) $)
  bj-eldiag $p |- ( A e. V -> ( B e. ( Diag ` A ) <->
                        ( B e. ( A X. A ) /\ ( 1st ` B ) = ( 2nd ` B ) ) ) ) $=
    ( wcel cdiag2 cfv cid cxp c1st c2nd wceq wa bj-diagval eleq2d elin bj-elid2
    cin ancom pm5.32i 3bitri syl6bb ) ACDZBAEFZDBGAAHZQZDZBUDDZBIFBJFKZLZUBUCUE
    BACMNUFBGDZUGLUGUJLUIBGUDOUJUGRUGUJUHBAAPSTUA $.

  $( Characterization of the elements of the diagonal of a Cartesian square.
     (Contributed by BJ, 22-Jun-2019.) $)
  bj-eldiag2 $p |- ( A e. V ->
                   ( <. B , C >. e. ( Diag ` A ) <-> ( B e. A /\ B = C ) ) ) $=
    ( wcel cop cdiag2 cfv cid cxp cin wceq wa bj-diagval eleq2d cvv elin opelxp
    bj-elid3 jca anbi12i simprl simplr elex anim1i biimpcd impbii 3bitri syl6bb
    eleq1 imdistani ) ADEZBCFZAGHZEUMIAAJZKZEZBAEZBCLZMZULUNUPUMADNOUQUMIEZUMUO
    EZMBPEZUSMZURCAEZMZMZUTUMIUOQVAVDVBVFBCSBCAARUAVGUTVGURUSVDURVEUBVCUSVFUCTU
    TVDVFURVCUSBAUDUEURUSVEUSURVEBCAUJUFUKTUGUHUI $.

$(
  @( The modulo of a number is itself when the number is in the right
     interval.  Not proved from ~ modid because we want to use intervals more
     consistently.  (Contributed by BJ, 29-Jun-2019.)
     (Proof modification is discouraged.) @)
  bj-modid $p |- ( B e. RR+ -> ( A e. ( 0 [,) B ) -> ( A mod B ) = A ) ) $=
    (  ) ? $.

  @( Translation of an open interval. Remark: in ~ icoshft, ` A, B ` may be in
     ` RR* ` .  (Contributed by BJ, 29-Jun-2019.) @)
  bj-iooshft $p |- ( ( A e. RR* /\ B e. RR* ) -> ( C e. RR ->
        ( X e. ( A (,) B ) -> ( X + C ) e. ( ( A + C ) (,) ( B + C ) ) ) ) ) $=
    (  ) ? $.
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Extended numbers and projective lines as sets
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  TODO(?): replace ~ df-bj-inftyexpi with a function inftyexpi2pi defined on
  ` ( 0 [,) 1 ) ` since we plan to put this section as early as possible,
  before the definition of ` _pi ` .  It would be best to use ~ df-0r and
  ~ df-1r but intervals are defined for real numbers, and not these temporary
  reals.

  It looks like to define the sets, the addition and the opposite, one only
  needs some basic results about addition, opposite and ordering, which could
  use ~ df-plr , ~ df-ltr , ~ df-0r , ~ df-1r , ~ df-ltr .  The idea is then to
  define the order relation directly on ` RRbar ` , skipping ` RR ` .

$)

  $( Token for the function inftyexpi parameterizing CCinfty. $)
  $c inftyexpi $.

  $( Syntax for the function ` inftyexpi ` parameterizing ` CCinfty ` . $)
  cinftyexpi $a class inftyexpi $.

  $( Definition of the auxiliary function ` inftyexpi ` parameterizing the
     circle at infinity ` CCinfty ` in ` CCbar ` .  We use coupling with ` CC `
     to simplify the proof of ~ bj-ccinftydisj .  It could seem more natural to
     define ` inftyexpi ` on all of ` RR ` using ` prcpal ` but we want to use
     only basic functions in the definition of ` CCbar ` .  (Contributed by BJ,
     22-Jun-2019.)  The precise definition is irrelevant and should generally
     not be used.  (New usage is discouraged.) $)
  df-bj-inftyexpi $a |- inftyexpi
       = ( x e. ( -u _pi (,] _pi ) |-> <. x , CC >. ) $.

  ${
    $d x A $.
    $( Utility theorem for the inverse of ` inftyexpi ` .  (Contributed by BJ,
       22-Jun-2019.)  This utility theorem is irrelevant and should generally
       not be used.  (New usage is discouraged.) $)
    bj-inftyexpiinv $p |- ( A e. ( -u _pi (,] _pi )
        -> ( 1st ` ( inftyexpi ` A ) ) = A ) $=
      ( vx cpi cneg cioc co wcel cinftyexpi cfv cc cop cv opeq1 df-bj-inftyexpi
      c1st opex fvmpt fveq2d cvv wceq cnex op1stg mpan2 eqtrd ) ACDCEFZGZAHIZOI
      AJKZOIZAUFUGUHOBABLZJKUHUEHUJAJMBNAJPQRUFJSGUIATUAAJUESUBUCUD $.
  $}

  $( Injectivity of the parameterization ` inftyexpi ` .  Remark: a more
     conceptual proof would use ~ bj-inftyexpiinv and the fact that a function
     with a retraction is injective.  (Contributed by BJ, 22-Jun-2019.) $)
  bj-inftyexpiinj $p |- ( ( A e. ( -u _pi (,] _pi ) /\
                              B e. ( -u _pi (,] _pi ) ) ->
                       ( A = B <-> ( inftyexpi ` A ) = ( inftyexpi ` B ) ) ) $=
    ( cpi cneg cioc co wcel wa wceq cinftyexpi cfv fveq2 bj-inftyexpiinv adantr
    c1st eqeq1d biimpd adantl eqeq2d sylibd syl5 impbid2 ) ACDCEFZGZBUCGZHZABIZ
    AJKZBJKZIZABJLUJUHOKZUIOKZIZUFUGUHUIOLUFUMAULIZUGUFUMUNUFUKAULUDUKAIUEAMNPQ
    UFULBAUEULBIUDBMRSTUAUB $.

  ${
    $d A x $.
    $( An element of the circle at infinity is not a complex number.
       (Contributed by BJ, 22-Jun-2019.)  This utility theorem is irrelevant
       and should generally not be used.  (New usage is discouraged.) $)
    bj-inftyexpidisj $p |- -. ( inftyexpi ` A ) e. CC $=
      ( vx cinftyexpi cdm wcel cfv cc wn cop wceq cpi opex cvv cnex 0ncn mtbiri
      c0 syl pm2.61i eleq1d cneg cioc co cv opeq1 df-bj-inftyexpi dmmpti eleq2s
      fvmpt cpr prid2 csn wo eqid olci wb elopg mpan2 mpbiri bj-imn3ani sylancr
      en3lp opprc1 eleq1 eqcom biimpi mtbii ndmfv ) ACDZEZACFZGEZHZVJVKAGIZJZVM
      VOAKUAKUBUCZVIBABUDZGIZVNVPCVQAGUEBUFZAGLUIBVPVRCVQGLVSUGUHVOVNGEZVLAMEZV
      THZWAGAGUJZEZWCVNEZWBAGNUKWAWEWCAULJZWCWCJZUMZWGWFWCUNUOWAGMEWEWHUPNAGWCM
      MUQURUSWDWEVTGWCVNVBUTVAWAHVNQJZWBAGVCWIVTQGEZOVNQGVDPRSVOVNVKGVOVNVKJVKV
      NVEVFTVGRVJHZVLWJOWKVKQGACVHTPS $.
  $}

  $( Token for the circle at infinity. $)
  $c CCinfty $.

  $( Syntax for the circle at infinity ` CCinfty ` . $)
  cccinfty $a class CCinfty $.

  $( Definition of the circle at infinity ` CCinfty ` .  (Contributed by BJ,
     22-Jun-2019.)  The precise definition is irrelevant and should generally
     not be used.  (New usage is discouraged.) $)
  df-bj-ccinfty $a |- CCinfty = ran inftyexpi $.

  ${
    $d x y $.
    $( The circle at infinity is disjoint from the set of complex numbers.
       (Contributed by BJ, 22-Jun-2019.) $)
    bj-ccinftydisj $p |- ( CC i^i CCinfty ) = (/) $=
      ( vx vy vz cccinfty cin wcel cinftyexpi cfv wex bj-inftyexpidisj nex wceq
      cc cv wa elin crn cdm cpi syl wrex wfun cneg cioc df-bj-inftyexpi funmpt2
      wi co cop elrnrexdm ax-mp rexex df-bj-ccinfty eleq2s anim2i sylbi exancom
      ancom 19.41v bitri sylbb2 eleq1 biimpac eximi mto nel0 ) AMDEZANZVGFZBNZG
      HZMFZBIZVLBVJJKVIVHMFZVHVKLZOZBIZVMVIVNVOBIZOZVQVIVNVHDFZOVSVHMDPVTVRVNVR
      VHGQZDVHWAFZVOBGRZUAZVRGUBWBWDUGCSUCSUDUHCNMUIGCUEUFBGVHUJUKVOBWCULTUMUNU
      OUPVSVRVNOZVQVNVRURVQVOVNOBIWEVNVOBUQVOVNBUSUTVATVPVLBVOVNVLVHVKMVBVCVDTV
      EVF $.
  $}

  $( A lemma for infinite extended complex numbers.  (Contributed by BJ,
     27-Jun-2019.) $)
  bj-elccinfty $p |- ( A e. ( -u _pi (,] _pi ) ->
                                              ( inftyexpi ` A ) e. CCinfty ) $=
    ( vx cpi cneg cioc co wcel cinftyexpi wfun cdm cfv cccinfty df-bj-inftyexpi
    wa crn cv cc cop funmpt2 eqcomi jctl opex dmmpti eleq2s df-bj-ccinfty 3syl
    fvelrn eleq2i biimpi ) ACDCEFZGHIZAHJZGZNZAHKZHOZGZUOLGZUNAULUJUMUKBUJBPZQR
    ZHBMZSUAULUJBUJUTHUSQUBVAUCTUDAHUGUQURUPLUOLUPUETUHUIUF $.

  $( Token for the set of extended complex numbers. $)
  $c CCbar $.

  $( Syntax for the set of extended complex numbers ` CCbar ` . $)
  cccbar $a class CCbar $.

  $( Definition of the set of extended complex numbers ` CCbar ` .
     (Contributed by BJ, 22-Jun-2019.) $)
  df-bj-ccbar $a |- CCbar = ( CC u. CCinfty ) $.

  $( Complex numbers are extended complex numbers.  (Contributed by BJ,
     27-Jun-2019.) $)
  bj-ccssccbar $p |- CC C_ CCbar $=
    ( cc cccinfty cun cccbar ssun1 df-bj-ccbar sseqtr4i ) AABCDABEFG $.

  $( Infinite extended complex numbers are extended complex numbers.
     (Contributed by BJ, 27-Jun-2019.) $)
  bj-ccinftyssccbar $p |- CCinfty C_ CCbar $=
    ( cccinfty cc cun cccbar ssun2 df-bj-ccbar sseqtr4i ) ABACDABEFG $.

  $( Token for "plus infinity". $)
  $c pinfty $.

  $( Syntax for ` pinfty ` . $)
  cpinfty $a class pinfty $.

  $( Definition of ` pinfty ` .  (Contributed by BJ, 27-Jun-2019.) $)
  df-bj-pinfty $a |- pinfty = ( inftyexpi ` 0 ) $.

  $( The class ` pinfty ` is an extended complex number.  (Contributed by BJ,
     27-Jun-2019.) $)
  bj-pinftyccb $p |- pinfty e. CCbar $=
    ( cpinfty cc0 cinftyexpi cfv cccbar df-bj-pinfty cccinfty bj-ccinftyssccbar
    cpi cneg cioc co wcel cr clt wbr cle 0re pipos pire ltnegi mpbi neg0 ltleii
    breqtri cxr w3a wb renegcli rexri elioc2 mp2an mpbir3an bj-elccinfty sselii
    ax-mp eqeltri ) ABCDZEFGEURHBIJZIKLMZURGMUTBNMZUSBOPZBIQPZRUSBJZBOBIOPUSVDO
    PSBIRTUAUBUCUEBIRTSUDUSUFMINMUTVAVBVCUGUHUSITUIUJTUSIBUKULUMBUNUPUOUQ $.

  $( The extended complex number ` pinfty ` is not a complex number.
     (Contributed by BJ, 27-Jun-2019.) $)
  bj-pinftynrr $p |- -. pinfty e. CC $=
    ( cpinfty cc wcel cc0 cinftyexpi bj-inftyexpidisj df-bj-pinfty eleq1i mtbir
    cfv ) ABCDEJZBCDFAKBGHI $.

  $( Token for "minus infinity". $)
  $c minfty $.

  $( Syntax for ` minfty ` . $)
  cminfty $a class minfty $.

  $( Definition of ` minfty ` .  (Contributed by BJ, 27-Jun-2019.) $)
  df-bj-minfty $a |- minfty = ( inftyexpi ` _pi ) $.

  $( The class ` minfty ` is an extended complex number.  (Contributed by BJ,
     27-Jun-2019.) $)
  bj-minftyccb $p |- minfty e. CCbar $=
    ( vx cccinfty cccbar cminfty bj-ccinftyssccbar cpi cinftyexpi cfv wcel cneg
    cc cxr clt wbr pire rexri cc0 pipos 0re mp2an crn wfun cioc df-bj-inftyexpi
    cdm co cv funmpt2 renegcli ltnegi mpbi neg0 breqtri lttri ubioc1 mp3an opex
    cop dmmpti eleqtrri fvelrn df-bj-minfty df-bj-ccinfty 3eltr4i sselii ) BCDE
    FGHZGUAZDBGUBFGUEZIVFVGIAFJZFUCUFZAUGZKURZGAUDZUHFVJVHVILIFLIVIFMNZFVJIVIFO
    UIZPFOPVIQMNQFMNZVNVIQJZQMVPVIVQMNRQFSOUJUKULUMRVIQFVOSOUNTVIFUOUPAVJVLGVKK
    UQVMUSUTFGVATVBVCVDVE $.

  $( The extended complex number ` minfty ` is not a complex number.
     (Contributed by BJ, 27-Jun-2019.) $)
  bj-minftynrr $p |- -. minfty e. CC $=
    ( cminfty cc wcel cpi cinftyexpi bj-inftyexpidisj df-bj-minfty eleq1i mtbir
    cfv ) ABCDEJZBCDFAKBGHI $.

  $( The extended complex numbers ` pinfty ` and ` minfty ` are different.
     (Contributed by BJ, 27-Jun-2019.) $)
  bj-pinftynminfty $p |- pinfty =/= minfty $=
    ( cpinfty cminfty wceq cc0 cinftyexpi cfv cpi pire pipos wcel wb cr clt wbr
    cle a1i 0re elioc2 mpbir3and mp2an gt0ne0ii nesymi cneg cioc renegcli rexri
    co wa 0red lt0neg2 ax-mp mpbi ltleii simpr lttri leidi bj-inftyexpiinj mtbi
    cxr df-bj-minfty eqeq2i mtbir df-bj-pinfty eqeq1i neir ) ABABCDEFZBCZVGVFGE
    FZCZDGCZVIGDGHIUAUBDGUCZGUDUGZJZGVLJZVJVIKVKUSJZGLJZVMVKGHUEZUFZHVOVPUHZVMD
    LJVKDMNZDGONZVSUIVTVSDGMNZVTIVPWBVTKHGUJUKULZPWAVSDGQHIUMPVKGDRSTVOVPVNVRHV
    SVNVPVKGMNZGGONZVOVPUNWDVSVTWBWDWCIVKDGVQQHUOTPWEVSGHUPPVKGGRSTDGUQTURBVHVF
    UTVAVBAVFBVCVDVBVE $.

  $( Token for the set of extended real numbers. $)
  $c RRbar $.

  $( Syntax for the set of extended real numbers ` RRbar ` . $)
  crrbar $a class RRbar $.

  $( Definition of the set of extended real numbers ` RRbar ` .  See ~ df-xr .
     (Contributed by BJ, 29-Jun-2019.) $)
  df-bj-rrbar $a |- RRbar = ( RR u. { minfty , pinfty } ) $.

  $c infty $.

  $( Syntax for ` infty ` . $)
  cinfty $a class infty $.

  $( Definition of ` infty ` , the point at infinity of the real or complex
     projective line.  (Contributed by BJ, 27-Jun-2019.)  The precise
     definition is irrelevant and should generally not be used.
     (New usage is discouraged.) $)
  df-bj-infty $a |- infty = ~P U. CC $.

  $c CChat $.

  $( Syntax for ` CChat ` . $)
  ccchat $a class CChat $.

  $( Define the complex projective line, or Riemann sphere.  (Contributed by
     BJ, 27-Jun-2019.) $)
  df-bj-cchat $a |- CChat = ( CC u. { infty } ) $.

  $c  RRhat $.

  $( Syntax for ` RRhat ` . $)
  crrhat $a class RRhat $.

  $( Define the real projective line.  (Contributed by BJ, 27-Jun-2019.) $)
  df-bj-rrhat $a |- RRhat = ( RR u. { infty } ) $.

  $( The real projective line is included in the complex projective line.
     (Contributed by BJ, 27-Jun-2019.) $)
  bj-rrhatsscchat $p |- RRhat C_ CChat $=
    ( cr cinfty csn cun cc crrhat ccchat axresscn unss1 df-bj-rrhat df-bj-cchat
    wss ax-mp 3sstr4i ) ABCZDZEODZFGAELPQLHAEOIMJKN $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Addition and opposite
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  We define the operations on the extended real and complex numbers and on the
  real and complex projective lines simultaneously, thus "overloading" the
  operations.

$)

  $c +cc $.

  $( Syntax for the addition of extended complex numbers. $)
  caddcc $a class +cc $.

  $( Define the additions on the extended complex numbers (on the subset of
     ` ( CCbar X. CCbar ) ` where it makes sense) and on the complex projective
     line (Riemann sphere).  (Contributed by BJ, 22-Jun-2019.) $)
  df-bj-addc $a |- +cc =
    ( x e. ( ( ( CC X. CCbar ) u. ( CCbar X. CC ) ) u.
          ( ( CChat X. CChat ) u. ( Diag ` CCinfty ) ) ) |->
      if ( ( ( 1st ` x ) = infty \/ ( 2nd ` x ) = infty ) , infty ,
      if ( ( 1st ` x ) e. CC , if ( ( 2nd ` x ) e. CC ,
           ( ( 1st ` x ) + ( 2nd ` x ) ) , ( 2nd ` x ) ) , ( 1st ` x ) ) ) ) $.

$(
  ${
    bj-addcval.a $e |- ( ph -> A e. CC ) $.
    bj-addcval.b $e |- ( ph -> B e. CC ) $.
    @( Value of the extended addition of two complex numbers.
       (Contributed by BJ, 22-Jun-2019.) @)
    bj-addcval $p |- ( ph -> ( A +cc B ) = ( A + B ) ) $=
    wph=wph cA=cA cB=cB cF=caddcc cA=co cB=? cA=cA cB=cB cF=caddc
    cC=co wph=wph vx=? vy=? cA=cA cB=cB cC=cc cD=cc cR=? cS=?
    cF=caddcc cX=? wph=? wps=? a1i.1=? ovmpt2d.1=a1i ovmpt2d.2=?
    ovmpt2d.3=bj-addcval.a ovmpt2d.4=bj-addcval.b ovmpt2d.5=?
    eqtrd.1=ovmpt2d wph=wph cA=cA cB=cB cF=caddc cA=co cB=?
    eqcomd.1=? eqtrd.2=eqcomd bj-addcval=eqtrd $.
  $}
$)

  $c -cc $.

  $( Syntax for the opposite of extended complex numbers. $)
  coppcc $a class -cc $.

  $( Define the negation (operation givin the opposite) the set of extended
     complex numbers and the complex projective line (Riemann sphere).  One
     could use the ` prcpal ` function in the infinite case, but we want to use
     only basic functions at this point.  (Contributed by BJ, 22-Jun-2019.) $)
  df-bj-oppc $a |- -cc = ( x e. ( CCbar u. CChat ) |->
      if ( x = infty , infty , if ( x e. CC , -u x ,
                ( inftyexpi ` if ( 0 < ( 1st ` x ) , ( ( 1st ` x ) - _pi ) ,
                                             ( ( 1st ` x ) + _pi ) ) ) ) ) ) $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Argument, multiplication and inverse
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Since one needs arguments in order to define multiplication in ` CCbar ` , it
  seems harder to put this at the very beginning of the introduction of complex
  numbers.

$)

  $c prcpal $.

  $( Syntax for the function ` prcpal ` . $)
  cprcpal $a class prcpal $.

  $( Define the function ` prcpal ` .  (Contributed by BJ, 22-Jun-2019.) $)
  df-bj-prcpal $a |- prcpal = ( x e. RR |-> ( ( x mod ( 2 x. _pi ) )
      - if ( ( x mod ( 2 x. _pi ) ) <_ _pi , 0 , ( 2 x. _pi ) ) ) ) $.

    $( Value of ` prcpal ` .  (Contributed by BJ, 22-Jun-2019.) $)
    $( bj-prcpalval $p |- ( A e. ( -u _pi (,] _pi ) -> ( prcpal ` A ) = A ) $=
     ? $. $)

  $c Arg $.

  $( Syntax for the argument of a nonzero extended complex number. $)
  carg $a class Arg $.

  $( Define the argument of a nonzero extended complex number.  By convention,
     it has values in ` ( -u _pi , _pi ] ` .  Another convention chooses
     ` [ 0 , 2 _pi ) ` but the present one simplifies formulas giving the
     argument as an arctangent.  (Contributed by BJ, 22-Jun-2019.) $)
  df-bj-arg $a |- Arg = ( x e. ( CCbar \ { 0 } ) |->
                       if ( x e. CC , ( Im ` ( log ` x ) ) , ( 1st ` x ) ) ) $.

  $c .cc $.

  $( Syntax for the multiplication of extended complex numbers. $)
  cmulc $a class .cc $.

  $( Define the multiplication of extended complex numbers and of the complex
     projective line (Riemann sphere).  In our convention, a product with 0 is
     0, even when the other factor is infinite.  An alternate convention leaves
     products of 0 with an infinite number undefined since the multiplication
     is not continuous at these points.  Note that our convention entails
     ` ( 0 / 0 ) = 0 ` .  (Contributed by BJ, 22-Jun-2019.) $)
  df-bj-mulc $a |- .cc = ( x e. ( ( CCbar X. CCbar ) u. ( CChat X. CChat ) )
   |-> if ( ( ( 1st ` x ) = 0 \/ ( 2nd ` x ) = 0 ) , 0 ,
       if ( ( ( 1st ` x ) = infty \/ ( 2nd ` x ) = infty ) , infty ,
       if ( x e. ( CC X. CC ) , ( ( 1st ` x ) x. ( 2nd ` x ) ) , ( inftyexpi `
    ( prcpal ` ( ( Arg ` ( 1st ` x ) ) + ( Arg ` ( 2nd ` x ) ) ) ) ) ) ) ) ) $.

  $c invc $.

  $( Syntax for the inverse of nonzero extended complex numbers. $)
  cinvc $a class invc $.

  $( Define inversion, which maps a nonzero extended complex number or element
     of the complex projective line (Riemann sphere) to its inverse.  Beware of
     the overloading: the equality ` ( invc `` 0 ) = infty ` is to be
     understood in the complex projective line, but 0 as an extended complex
     number does not have an inverse, which we can state as
     ` ( invc `` 0 ) e/ CCbar ` .  (Contributed by BJ, 22-Jun-2019.) $)
  df-bj-invc $a |- invc = ( x e. ( CCbar u. CChat ) |->
                     if ( x = 0 , infty , if ( x e. CC , ( 1 / x ) , 0 ) ) ) $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Monoids
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  See ~ ccmn and subsequents. The first few statements of this subsection can
  be put very early after ~ ccmn .
  Proposal: in the main part, make separate subsections of commutative monoids
  and abelian groups.

  Relabel ~ cabl to "cabl" or, preferably, other labels containing "abl" to
  "abel", for consistency.

$)

  ${
    $d x y z $.
    $( Commutative monoids are monoids.  (Contributed by BJ, 9-Jun-2019.)
       (Proof modification is discouraged.) $)
    bj-cmnssmnd $p |- CMnd C_ Mnd $=
      ( vy vz vx ccmn cv cplusg cfv co wceq cbs wral cmnd df-cmn ssrab2 eqsstri
      crab ) DAEZBEZCEZFGZHRQTHIBSJGZKAUAKZCLPLCABMUBCLNO $.
  $}

  $( Commutative monoids are monoids (elemental version).  This is a more
     direct proof of ~ cmnmnd , which relies on ~ iscmn .  (Contributed by BJ,
     9-Jun-2019.)  (Proof modification is discouraged.) $)
  bj-cmnssmndel $p |- ( A e. CMnd -> A e. Mnd ) $=
    ( ccmn cmnd bj-cmnssmnd sseli ) BCADE $.

  $( Abelian groups are groups.  (Contributed by BJ, 9-Jun-2019.)
     (Proof modification is discouraged.) $)
  bj-ablssgrp $p |- Abel C_ Grp $=
    ( cabl cgrp ccmn cin df-abl inss1 eqsstri ) ABCDBEBCFG $.

  $( Abelian groups are groups (elemental version).  This is a shorter proof of
     ~ ablgrp .  (Contributed by BJ, 9-Jun-2019.)
     (Proof modification is discouraged.) $)
  bj-ablssgrpel $p |- ( A e. Abel -> A e. Grp ) $=
    ( cabl cgrp bj-ablssgrp sseli ) BCADE $.

  $( Abelian groups are commutative monoids.  (Contributed by BJ, 9-Jun-2019.)
     (Proof modification is discouraged.) $)
  bj-ablsscmn $p |- Abel C_ CMnd $=
    ( cabl cgrp ccmn cin df-abl inss2 eqsstri ) ABCDCEBCFG $.

  $( Abelian groups are commutative monoids (elemental version).  This is a
     shorter proof of ~ ablcmn .  (Contributed by BJ, 9-Jun-2019.)
     (Proof modification is discouraged.) $)
  bj-ablsscmnel $p |- ( A e. Abel -> A e. CMnd ) $=
    ( cabl ccmn bj-ablsscmn sseli ) BCADE $.

  $( (The additive groups of) modules are abelian groups.  (The elemental
     version is ~ lmodabl ; see also ~ lmodgrp and ~ lmodcmn .)  (Contributed
     by BJ, 9-Jun-2019.) $)
  bj-modssabl $p |- LMod C_ Abel $=
    ( vx clmod cabl cv lmodabl ssriv ) ABCADEF $.

  $( Vector spaces are modules.  (Contributed by BJ, 9-Jun-2019.)
     (Proof modification is discouraged.) $)
  bj-vecssmod $p |- LVec C_ LMod $=
    ( vx clvec cv csca cfv cdr wcel clmod crab df-lvec ssrab2 eqsstri ) BACDEFG
    ZAHIHAJMAHKL $.

  $( Vector spaces are modules (elemental version).  This is a shorter proof of
     ~ lveclmod .  (Contributed by BJ, 9-Jun-2019.)
     (Proof modification is discouraged.) $)
  bj-vecssmodel $p |- ( A e. LVec -> A e. LMod ) $=
    ( clvec clmod bj-vecssmod sseli ) BCADE $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Finite sums in monoids
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  UPDATE: a similar summation is already defined as ~ df-gsum (although it
  mixes finite and infinite sums, which makes it harder to understand).

$)

  $( Symbol for the class "finite summation in monoids". $)
  $c FinSum $.

  $( Syntax for the class "finite summation in monoids". $)
  cfinsum $a class FinSum $.

  ${
    $d x y z t s f m n $.
    $( Finite summation in commutative monoids.  This finite summation function
       can be extended to pairs ` <. y , z >. ` where ` y ` is a left-unital
       magma and ` z ` is defined on a totally ordered set (choosing
       left-associative composition), or dropping unitality and requiring
       nonempty families, or on any monoids for families of permutable
       elements, etc.  We use the term "summation", even though the definition
       stands for any unital, commutative and associative composition law.
       (Contributed by BJ, 9-Jun-2019.) $)
    df-bj-finsum $a |- FinSum = (
     x e. { <. y , z >. | ( y e. CMnd /\ E. t e. Fin z : t --> ( Base ` y ) ) }
     |->
     ( iota s E. m e. NN0 E. f ( f : ( 1 ... m ) -1-1-onto-> dom ( 2nd ` x ) /\
              s = ( seq 1 ( ( +g ` ( 1st ` x ) ) , ( n e. NN |->
                                 ( ( 2nd ` x ) ` ( f ` n ) ) ) ) ` m ) ) ) ) $.
  $}

  ${
    $d A s t x y z f m n $.  $d B f m n x y z s t $.  $d I f n t x $.
    $d ph f m s x $.
    bj-finsumval0.1 $e |- ( ph -> A e. CMnd ) $.
    bj-finsumval0.2 $e |- ( ph -> I e. Fin ) $.
    bj-finsumval0.3 $e |- ( ph -> B : I --> ( Base ` A ) ) $.
    $( Value of a finite sum.  (Contributed by BJ, 9-Jun-2019.)  (Proof
       shortened by AV, 5-May-2021.) $)
    bj-finsumval0 $p |- ( ph -> ( A FinSum B ) =
     ( iota s E. m e. NN0 E. f ( f : ( 1 ... m ) -1-1-onto-> I /\ s =
       ( seq 1 ( ( +g ` A ) , ( n e. NN |->
                                   ( B ` ( f ` n ) ) ) ) ` ( # ` I ) ) ) ) ) $=
      ( vt cfv c1 cv wceq wa wcel cfn adantr vx vy vz cfinsum co cop wf1o chash
      cfz cplusg cn cmpt cseq wex cn0 wrex cio df-ov c2nd cdm c1st cbs wf copab
      ccmn cvv df-bj-finsum a1i wb simpr fveq2d fex syl2anc op1stg eqtrd op2ndg
      dmeqd fdm syl f1oeq3 biimpd ad2antll adantrd eqidd simprl adantrr simprrl
      fveq1d mpteq2dva seqeq123d simprr jca hashfz1 eqcomd ad2antrl fzfid 19.8a
      wi hasheqf1oi sylc 3eqtrd sylan2 fveq12d impancom com12 jcad biimprd wtru
      eqeq2d simpl tru jctir adantlrr impcom syl12anc impbid ex exbidv rexbidva
      imp iotabidv eleq1 anbi12d ceqsexgv mpbir2and exsimpr df-rex sylibr fveq2
      feq2 feq3d rexbidv feq1 anbi2d opelopabg iotaex fvmptd syl5eq ) ABCUDUEBC
      UFZUDMNEOZUIUEZGDOZUGZHOZGUHMZBUJMZFUKFOZUUBMZCMZULZNUMZMZPZQZDUNZEUOUPZH
      UQZBCUDURAUAYSUUAUAOZUSMZUTZUUBUGZUUDYTUURVAMZUJMZFUKUUHUUSMZULZNUMZMZPZQ
      ZDUNZEUOUPZHUQZUUQUBOZVERZLOZUVMVBMZUCOZVCZLSUPZQZUBUCVDZUDVFUDUAUWAUVLUL
      PAUAUBUCLDEFHVGVHAUURYSPZQZUVKUUPHUWCUVJUUOEUOUWCYTUORZQUVIUUNDUWCUWDUVIU
      UNVIZUWCUVBBPZUUSCPZUUTGPZUWDUWEWRUWCUVBYSVAMZBUWCUURYSVAAUWBVJZVKUWCBVER
      ZCVFRZUWIBPAUWKUWBITZAUWLUWBAGBVBMZCVCZGSRZUWLKJGUWNSCVLVMZTZBCVEVFVNVMVO
      UWCUUSYSUSMZCUWCUURYSUSUWJVKUWCUWKUWLUWSCPUWMUWRBCVEVFVPVMVOZUWCUUTCUTZGU
      WCUUSCUWTVQAUXAGPZUWBAUWOUXBKGUWNCVRVSTVOUWFUWGUWHQZQZUWDUWEUXDUWDQZUVIUU
      NUXEUVIUUCUUMUXDUVIUUCWRUWDUXDUVAUUCUVHUWHUVAUUCWRUWFUWGUWHUVAUUCUUTGUUAU
      UBVTZWAWBWCTUVIUXEUUMUVAUXEUVHUUMUVAUXEQZUVHUUMUXGUVGUULUUDUXGYTUUEUVFUUK
      UXGUVCUUFUVEUUJNNUXGNWDUVAUXDUVCUUFPUWDUVAUXDQZUVBBUJUVAUWFUXCWEVKWFUVAUX
      DUVEUUJPUWDUXHFUKUVDUUIUXHUUGUKRZQUUHUUSCUXHUWGUXIUVAUWFUWGUWHWGTWHWIWFWJ
      UXEUVAUWDUWHQZYTUUEPZUXEUWDUWHUXDUWDVJUXDUWHUWDUWFUWGUWHWKZTWLUVAUXJQZYTU
      UAUHMZUUTUHMZUUEUWDYTUXNPUVAUWHUWDUXNYTYTWMWNWOUXMUUASRUVADUNZUXNUXOPUXMN
      YTWPUVAUXPUXJUVADWQTUUAUUTDSWSWTUXMUUTGUHUVAUWDUWHWKVKXAZXBXCXIWAXDXEXFUX
      EUUNUVAUVHUXEUUCUVAUUMUXDUUCUVAWRZUWDUWHUXRUWFUWGUWHUVAUUCUXFXGWBTZWCUUNU
      XEUVHUUCUXEUUMUVHUUCUXEQZUUMUVHUXTUULUVGUUDUXTUUEYTUUKUVFUXTUUFUVCUUJUVEN
      NUXTNWDUXTBUVBUJUXTUWFXHQZBUVBPUXDUYAUUCUWDUXDUWFXHUWFUXCXJXKXLWOUYAUVBBU
      WFXHXJWNVSVKUXTFUKUUIUVDUUCUXDUXIUUIUVDPUWDUUCUXDQZUXIQUUHCUUSUYBCUUSPZUX
      IUXCUYCUUCUWFUXCUUSCUWGUWHXJWNWBTWHXMWIWJUXTYTUUEUXTUVAUWDUWHUXKUXEUUCUVA
      UXSXNUUCUXDUWDWKUXDUWHUUCUWDUXLWOUXQXOWNXCXIWAXDXEXFXPXQXOXTXRXSYAAYSUWAR
      ZUWKUVOUWNCVCZLSUPZIAUVOSRZUYEQZLUNZUYFAUVOGPZUYHQLUNZUYIAUYKUWPUWOJKAUWP
      UYKUWPUWOQZVIJUYHUYLLGSUYJUYGUWPUYEUWOUVOGSYBUVOGUWNCYJYCYDVSYEUYJUYHLYFV
      SUYELSYGYHAUWKUWLUYDUWKUYFQZVIIUWQUVTUWKUVOUWNUVQVCZLSUPZQUYMUBUCBCVEVFUV
      MBPZUVNUWKUVSUYOUVMBVEYBUYPUVRUYNLSUYPUVPUWNUVQUVOUVMBVBYIYKYLYCUVQCPZUYO
      UYFUWKUYQUYNUYELSUVOUWNUVQCYMYLYNYOVMYEUUQVFRAUUPHYPVHYQYR $.

$(
  @( Value of a finite sum.  (Contributed by BJ, 9-Jun-2019.) @)
  bj-finsumval1 $p |- ( ph ->
   ( A FinSum B ) = ( iota s E. f ( f : ( 1 ... ( # ` I ) ) -1-1-onto-> I /\
   s = ( seq 1 ( ( +g ` A ) , ( n e. NN |->
                                   ( B ` ( f ` n ) ) ) ) ` ( # ` I ) ) ) ) ) $=
    (  ) ? $.
$)
  $}

$(
  @( Value of a finite sum.  (Contributed by BJ, 9-Jun-2019.) @)
  bj-finsumval2 $p |- ( A e. CMnd ->
    ( ( m e. NN0 /\ B : ( 1 ... m ) --> ( Base ` A ) ) -> ( A FinSum B ) =
                ( seq 1 ( ( +g ` A ) , ( n e. NN |-> ( B ` n ) ) ) ` m ) ) ) $=
    (  ) ? $.

  @( The sum of the empty set is the unit.  (Contributed by BJ, 9-Jun-2019.) @)
  bj-finsum0 $p |- ( A e. CMnd -> ( A FinSum (/) ) = ( 0g ` A ) ) $=
    (  ) ? $.

  @( The sum of a singleton is the element of that singleton.  (Contributed by
     BJ, 9-Jun-2019.) @)
  bj-finsum1 $p |- ( A e. CMnd -> ( B e. V ->
               ( x e. ( Base ` A ) -> ( A FinSum { <. B , x >. } ) = x ) ) ) $=
    (  ) ? $.
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Affine, Euclidean, and Cartesian geometry
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  A few basic theorems to start affine, Euclidean, and Cartesian geometry.

$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Convex hull in real vector spaces
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  A few basic definitions and theorems about convex hulls in real vector
  spaces.  TODO: prove inclusion in the class of subcomplex vector spaces.

$)

  $( Symbol for the class of real vector spaces. $)
  $c RRVec $.

  $( Syntax for the class of real vector spaces. $)
  crrvec $a class RRVec $.

  $( Definition of the class of real vector spaces.  (Contributed by BJ,
     9-Jun-2019.) $)
  df-bj-rrvec $a |- RRVec = { x e. LVec | ( Scalar ` x ) = RRfld } $.

  $( Real vector spaces are vector spaces.  (Contributed by BJ, 9-Jun-2019.) $)
  bj-rrvecssvec $p |- RRVec C_ LVec $=
    ( vx crrvec cv csca cfv crefld wceq clvec crab df-bj-rrvec ssrab2 eqsstri )
    BACDEFGZAHIHAJMAHKL $.

  $( Real vector spaces are vector spaces (elemental version).  (Contributed by
     BJ, 9-Jun-2019.) $)
  bj-rrvecssvecel $p |- ( A e. RRVec -> A e. LVec ) $=
    ( crrvec clvec bj-rrvecssvec sseli ) BCADE $.

  $( (The additive groups of) real vector spaces are commutative monoids.
     (Contributed by BJ, 9-Jun-2019.) $)
  bj-rrvecsscmn $p |- RRVec C_ CMnd $=
    ( crrvec cabl clmod clvec bj-rrvecssvec bj-vecssmod bj-modssabl bj-ablsscmn
    ccmn sstri ) ABIACBADCEFJGJHJ $.

  $( (The additive groups of) real vector spaces are commutative monoids
     (elemental version).  (Contributed by BJ, 9-Jun-2019.) $)
  bj-rrvecsscmnel $p |- ( A e. RRVec -> A e. CMnd ) $=
    ( crrvec ccmn bj-rrvecsscmn sseli ) BCADE $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Complex numbers (supplements)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Some lemmas to ease algebraic manipulations.

$)

  ${
    bj-subcom.a $e |- ( ph -> A e. CC ) $.
    bj-subcom.b $e |- ( ph -> B e. CC ) $.
    $( A consequence of commutativity of multiplication.  (Contributed by BJ,
       6-Jun-2019.) $)
    bj-subcom $p |- ( ph -> ( ( A x. B ) - ( B x. A ) ) = 0 ) $=
      ( cmul co mulcld mulcomd subeq0bd ) ABCFGCBFGABCDEHABCDEIJ $.
  $}

  ${
    bj-ldiv.a $e |- ( ph -> A e. CC ) $.
    bj-ldiv.b $e |- ( ph -> B e. CC ) $.
    bj-ldiv.c $e |- ( ph -> C e. CC ) $.

    ${
      bj-ldiv.bn0 $e |- ( ph -> B =/= 0 ) $.
      $( Left-division.  (Contributed by BJ, 6-Jun-2019.) $)
      bj-ldiv $p |- ( ph -> ( ( A x. B ) = C <-> A = ( C / B ) ) ) $=
        ( cmul co wceq cdiv oveq1 divcan4d eqeq1d syl5ib divcan1d eqeq2d impbid
        ) ABCIJZDKZBDCLJZKZUATCLJZUBKAUCTDCLMAUDBUBABCEFHNOPUCTUBCIJZKAUABUBCIM
        AUEDTADCGFHQRPS $.
    $}

    ${
      bj-rdiv.an0 $e |- ( ph -> A =/= 0 ) $.
      $( Right-division.  (Contributed by BJ, 6-Jun-2019.) $)
      bj-rdiv $p |- ( ph -> ( ( A x. B ) = C <-> B = ( C / A ) ) ) $=
        ( cmul co wceq cdiv mulcomd eqeq1d bj-ldiv bitrd ) ABCIJZDKCBIJZDKCDBLJ
        KAQRDABCEFMNACBDFEGHOP $.
    $}

    ${
      bj-mdiv.an0 $e |- ( ph -> A =/= 0 ) $.
      bj-mdiv.bn0 $e |- ( ph -> B =/= 0 ) $.
      $( A division law.  (Contributed by BJ, 6-Jun-2019.) $)
      bj-mdiv $p |- ( ph -> ( A = ( C / B ) <-> B = ( C / A ) ) ) $=
        ( cmul co wceq cdiv bj-ldiv bj-rdiv bitr3d ) ABCJKDLBDCMKLCDBMKLABCDEFG
        INABCDEFGHOP $.
    $}
  $}

  ${
    bj-lineq.a $e |- ( ph -> A e. CC ) $.
    bj-lineq.b $e |- ( ph -> B e. CC ) $.
    bj-lineq.x $e |- ( ph -> X e. CC ) $.
    bj-lineq.y $e |- ( ph -> Y e. CC ) $.
    bj-lineq.n0 $e |- ( ph -> A =/= 0 ) $.
    $( Solution of a (scalar) linear equation.  (Contributed by BJ,
       6-Jun-2019.) $)
    bj-lineq $p |- ( ph ->
                      ( ( ( A x. X ) + B ) = Y <-> X = ( ( Y - B ) / A ) ) ) $=
      ( cmul co caddc wceq cmin cdiv mulcld addlsub subcld bj-rdiv bitrd ) ABDK
      LZCMLENUBECOLZNDUCBPLNAUBCEABDFHQGIRABDUCFHAECIGSJTUA $.

    bj-lineqi.1 $e |- ( ph -> ( ( A x. X ) + B ) = Y ) $.
    $( Solution of a (scalar) linear equation.  (Contributed by BJ,
       6-Jun-2019.) $)
    bj-lineqi $p |- ( ph -> X = ( ( Y - B ) / A ) ) $=
      ( cmul co caddc wceq cmin cdiv bj-lineq mpbid ) ABDLMCNMEODECPMBQMOKABCDE
      FGHIJRS $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Barycentric coordinates
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  Lemmas about barycentric coordinates.  For the moment, this is limited to the
  one-dimensional case (complex line), where existence and uniqueness of
  barycentric coordinates are proved by ~ bj-bary1 (which computes them).  It
  would be nice to prove the two-dimensional case (is it easier to use ad hoc
  computations, or Cramer formulas?), in order to do some planar geometry.

$)

  ${
    bj-bary1.a $e |- ( ph -> A e. CC ) $.
    bj-bary1.b $e |- ( ph -> B e. CC ) $.
    bj-bary1.x $e |- ( ph -> X e. CC ) $.
    bj-bary1.neq $e |- ( ph -> A =/= B ) $.
    $( A lemma for barycentric coordinates in one dimension.  (Contributed by
       BJ, 6-Jun-2019.) $)
    bj-bary1lem $p |- ( ph -> X = ( ( ( ( B - X ) / ( B - A ) ) x. A ) +
                                      ( ( ( X - A ) / ( B - A ) ) x. B ) ) ) $=
      ( cmin co cmul cdiv caddc cc0 mulcld subcld oveq1d eqtrd subdird oveq12d
      addsub12d sub32d bj-subcom oveq2d 0cnd addsubassd addid1d subdid 3eqtr4rd
      3eqtr2d necomd subne0d divdird divcan4d div23d 3eqtr3d ) ADCBIJZKJZUQLJZC
      DIJZBKJZUQLJZDBIJZCKJZUQLJZMJZDUTUQLJBKJZVCUQLJCKJZMJAUSVAVDMJZUQLJVFAURV
      IUQLACBKJZDBKJZIJZDCKJZBCKJZIJZMJZVMVKIJZVIURAVPVMNVKIJZMJZVMNMJZVKIJVQAV
      PVMVLVNIJZMJVSAVLVMVNAVJVKACBFEOZADBGEOZPADCGFOZABCEFOZUAAWAVRVMMAWAVJVNI
      JZVKIJVRAVJVKVNWBWCWEUBAWFNVKIACBFEUCQRUDRAVMNVKWDAUEWCUFAVTVMVKIAVMWDUGQ
      UJAVAVLVDVOMACDBFGESADBCGEFSTADCBGFEUHUIQAVAVDUQAUTBACDFGPZEOAVCCADBGEPZF
      OACBFEPZACBFEABCHUKULZUMRADUQGWIWJUNAVBVGVEVHMAUTBUQWGEWIWJUOAVCCUQWHFWIW
      JUOTUP $.

    bj-bary1.s $e |- ( ph -> S e. CC ) $.
    bj-bary1.t $e |- ( ph -> T e. CC ) $.
    $( Existence and uniqueness (and actual computation) of barycentric
       coordinates in dimension 1 (complex line).  (Contributed by BJ,
       6-Jun-2019.) $)
    bj-bary1lem1 $p |- ( ph ->
                ( ( X = ( ( S x. A ) + ( T x. B ) ) /\ ( S + T ) = 1 ) ->
                                           T = ( ( X - A ) / ( B - A ) ) ) ) $=
      ( cmul co caddc wceq c1 wa cmin oveq1 cdiv wi pncand pm5.31 sylancl eqtr2
      eqcomd syl6 oveq1d eqtr sylan2 subdird mulid2d eqtrd sylan9eqr ex sylan2d
      mulcld subadd23d subdid oveq2d eqeq2d sylibd subcld pncan2d eqcom mulcomd
      1cnd syl5ib eqeq1d necomd subne0d bj-rdiv biimpd sylbid syl5bi 3syld ) AF
      DBMNZECMNZONZPZDEONZQPZRZFBECBSNZMNZONZPZFBSNZWFPZEWIWEUANPZAWDFBEBMNZSNZ
      VSONZPZWHAWCDQESNZPZWAWOAWCWBESNZWPPZWRDPZRZWQAWTWCWSUBWCXAUBADEKLUCWBQES
      TWCWSWTUDUEXAWPDWRWPDUFUGUHAWAWQRZWOXBAFWPBMNZVSONZWNWQWAVTXDPFXDPWQVRXCV
      SODWPBMTUIFVTXDUJUKAXCWMVSOAXCQBMNZWLSNWMAQEBAVHLGULAXEBWLSABGUMUIUNUIUOU
      PUQAWNWGFAWNBVSWLSNZONWGABWLVSGAEBLGURAECLHURUSAXFWFBOAWFXFAECBLHGUTUGVAU
      NVBVCWHWIWGBSNZPAWJFWGBSTAXGWFWIABWFGAEWELACBHGVDZURVEVBVIWJWFWIPZAWKWIWF
      VFAXIWEEMNZWIPZWKAWFXJWIAEWELXHVGVJAXKWKAWEEWIXHLAFBIGVDACBHGABCJVKVLVMVN
      VOVPVQ $.

    $( Barycentric coordinates in one dimension.  (Contributed by BJ,
       6-Jun-2019.) $)
    bj-bary1 $p |- ( ph ->
            ( ( X = ( ( S x. A ) + ( T x. B ) ) /\ ( S + T ) = 1 ) <->
      ( S = ( ( B - X ) / ( B - A ) ) /\ T = ( ( X - A ) / ( B - A ) ) ) ) ) $=
      ( cmul co caddc wceq c1 cmin cdiv eqeq2d wa mulcld addcomd biimpd syl2and
      eqeq1d necomd bj-bary1lem1 div2subd sylibd bj-bary1lem wi oveq1 oveqan12d
      jcad a1i eqtr3 syl6an oveq12 subcld subne0d divdird npncand eqtr3d syl5ib
      diveq1bd impbid ) AFDBMNZECMNZONZPZDEONZQPZUAZDCFRNZCBRNZSNZPZEFBRNZVPSNZ
      PZUAZAVNVRWAAVNDFCRNBCRNSNZPZVRAVKFVIVHONZPZVMEDONZQPZWDAVKWFAVJWEFAVHVIA
      DBKGUBAECLHUBUCTUDAVMWHAVLWGQADEKLUCUFUDACBEDFHGIABCJUGZLKUHUEAWCVQDAFCBC
      IHGHJUITUJABCDEFGHIJKLUHUOAWBVKVMAFVQBMNZVTCMNZONZPWBVJWLPZVKABCFGHIJUKWB
      WMULAVRWAVHWJVIWKODVQBMUMEVTCMUMUNUPFVJWLUQURWBVLVQVTONZPAVMDVQEVTOUSAWNQ
      VLAVOVSONZVPSNWNQAVOVSVPACFHIUTAFBIGUTACBHGUTZACBHGWIVAZVBAWOVPWPWQACFBHI
      GVCVFVDTVEUOVG $.
  $}

$( (End of BJ's mathbox.) $)
$( End $[ set-mbox-bj.mm $] $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Jim Kingdon
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Circle constant
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $c _tau $. $( tau = 6.283185... $)

  $( Extend class notation to include tau = 6.283185.... $)
  ctau $a class _tau $.

  $( Define tau = 6.283185..., which is the smallest positive real number whose
     cosine is one.  Various notations have been used or proposed for this
     number including ` _tau ` , a three-legged variant of ` _pi ` , or
     ` 2 _pi ` .  Note the difference between this constant ` _tau ` and the
     variable ` ta ` which is a variable representing a propositional logic
     formula.  Only the latter is italic, and the colors are different.
     (Contributed by Jim Kingdon, 9-Apr-2018.)  (Revised by AV, 1-Oct-2020.) $)
  df-tau $a |- _tau = inf ( ( RR+ i^i ( `' cos " { 1 } ) ) , RR , < ) $.

  $( Lemma for tau-related theorems .  (Contributed by Jim Kingdon,
     16-Feb-2019.) $)
  taupilem3 $p |- ( A e. ( RR+ i^i ( `' cos " { 1 } ) ) <->
                 ( A e. RR+ /\ ( cos ` A ) = 1 ) ) $=
    ( crp ccos ccnv c1 csn cima cin wcel wa cfv wceq elin cc rpcn biantrurd wfn
    wf wb cosf ffn fniniseg mp2b syl6rbbr pm5.32i bitri ) ABCDEFGZHIABIZAUGIZJU
    HACKELZJABUGMUHUIUJUHUJANIZUJJZUIUHUKUJAOPNNCRCNQUIULSTNNCUANEACUBUCUDUEUF
    $.

  ${
    $d x y $.  $d A x $.
    $( A set of positive reals has (in the reals) a lower bound.  (Contributed
       by Jim Kingdon, 19-Feb-2019.) $)
    taupilemrplb $p |- E. x e. RR A. y e. ( RR+ i^i A ) x <_ y $=
      ( cc0 cr wcel cle wbr crp cin wral wrex 0re inss1 sseli rpge0d rgen breq1
      cv wceq ralbidv rspcev mp2an ) DEFDBSZGHZBICJZKZASZUDGHZBUFKZAELMUEBUFUDU
      FFUDUFIUDICNOPQUJUGADEUHDTUIUEBUFUHDUDGRUAUBUC $.
  $}

  $( Lemma for ~ taupi .  A positive real whose cosine is one is at least
     ` 2 x. _pi ` .  (Contributed by Jim Kingdon, 19-Feb-2019.) $)
  taupilem1 $p |- ( ( A e. RR+ /\ ( cos ` A ) = 1 ) ->
      ( 2 x. _pi ) <_ A ) $=
    ( crp wcel ccos c1 wa c2 cpi co cle wbr cdiv cr ax-mp cc0 clt adantr wb syl
    rpre cfv wceq cmul 2rp pirp rpmulcl mp2an recni rpgt0 dividi rpdivcl rpgt0d
    gt0ne0ii mpan2 cz cc rpcn coseq1 biimpa zgt0ge1 mpbid pm3.2i lediv1 mp3an13
    syl5eqbr mpbird ) ABCZADUAEUBZFZGHUCIZAJKZVJVJLIZAVJLIZJKZVIVLEVMJVJVJVJBCZ
    VJMCZGBCHBCVOUDUEGHUFUGZVJTNZUHVJVRVOOVJPKZVQVJUINZUMUJVIOVMPKZEVMJKZVGWAVH
    VGVOWAVQVGVOFVMAVJUKULUNQVIVMUOCZWAWBRVGVHWCVGAUPCVHWCRAUQAURSUSVMUTSVAVEVI
    AMCZVKVNRZVGWDVHATQVPWDVPVSFWEVRVPVSVRVTVBVJAVJVCVDSVF $.

  ${
    $d x y $.
    $( Lemma for ~ taupi .  The smallest positive real whose cosine is one is
       at most ` 2 x. _pi ` .  (Contributed by Jim Kingdon, 19-Feb-2019.)
       (Revised by AV, 1-Oct-2020.) $)
    taupilem2 $p |- _tau <_ ( 2 x. _pi ) $=
      ( vx vy ctau crp ccos ccnv c1 csn cima cin cr clt cinf c2 cpi cmul cle cv
      wbr wcel co df-tau wss wral wrex inss1 rpssre sstri taupilemrplb cfv wceq
      2rp pirp rpmulcl mp2an cos2pi taupilem3 mpbir2an infrelb mp3an eqbrtri )
      CDEFGHIZJZKLMZNOPUAZQUBVCKUCARBRQSBVCUDAKUEVEVCTZVDVEQSVCDKDVBUFUGUHABVBU
      IVFVEDTZVEEUJGUKNDTODTVGULUMNOUNUOUPVEUQURABVEVCUSUTVA $.
  $}

  ${
    $d x y $.
    $( Relationship between ` _tau ` and ` _pi ` .  This can be seen as
       connecting the ratio of a circle's circumference to its radius and the
       ratio of a circle's circumference to its diameter.  (Contributed by Jim
       Kingdon, 19-Feb-2019.)  (Revised by AV, 1-Oct-2020.) $)
    taupi $p |- _tau = ( 2 x. _pi ) $=
      ( vx vy ctau c2 cpi wceq cle wbr crp ccos c1 cr wral wcel mp2an taupilem3
      cv cfv mpbir2an df-tau cmul co taupilem2 ccnv csn cima cin clt wss c0 wne
      cinf wrex w3a wb inss1 rpssre sstri 2rp rpmulcl cos2pi ne0ii taupilemrplb
      pirp 3pm3.2i 2re pire remulcli infregelb taupilem1 sylbi mprgbir breqtrri
      wa infrecl ax-mp eqeltri letri3i ) CDEUAUBZFCVSGHVSCGHUCVSIJUDKUEUFZUGZLU
      HULZCGVSWBGHZVSAQZGHZAWAWALUIZWAUJUKZWDBQGHBWAMALUMZUNZVSLNWCWEAWAMUOWFWG
      WHWAILIVTUPUQURVSWAVSWANVSINZVSJRKFDINEINWJUSVDDEUTOVAVSPSVBABVTVCVEZDEVF
      VGVHZABAWAVSVIOWDWANWDINWDJRKFVNWEWDPWDVJVKVLTVMCVSCWBLTWIWBLNWKABWAVOVPV
      QWLVRS $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Number theory
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    $d M d z $.  $d N d z $.
    $( Alternate definition of the ` gcd ` operator.  (Contributed by Jim
       Kingdon, 31-Dec-2021.) $)
    dfgcd3 $p |- ( ( M e. ZZ /\ N e. ZZ )
        -> ( M gcd N ) = ( iota_ d e. NN0 A. z e. ZZ
        ( z || d <-> ( z || M /\ z || N ) ) ) ) $=
      ( cz wcel wa cv cdvds wbr wb wral cn0 wceq wi syl simpr breq1 w3a adantr
      crio cgcd co gcdcl simplr nn0zd iddvds anbi12d bibi12d rspcv mpbid biimpr
      ralimi cc0 cle dfgcd2 nn0ge0d 3biant1d bitr4d mpbir2and ex dvdsgcdb 3coml
      sylc bicomd ad4ant124 breq2 bibi1d mpbird ralrimiva impbid riota5 eqcomd
      ad2antlr ) BEFZCEFZGZAHZDHZIJZVRBIJZVRCIJZGZKZAELZDMUABCUBUCZVQWEDMWFBCUD
      VQVSMFZGZWEVSWFNZWHWEWIWHWEGZWIVSBIJZVSCIJZGZWCVTOZAELZWJVSVSIJZWMWJVSEFZ
      WPWJVSVQWGWEUEUFZVSUGPWJWQWEWPWMKZWRWHWEQZWDWSAVSEVRVSNZVTWPWCWMVRVSVSIRX
      AWAWKWBWLVRVSBIRVRVSCIRUHUIUJVDUKWJWEWOWTWDWNAEVTWCULUMPWHWIWMWOGZKWEWHWI
      UNVSUOJZWMWOSZXBVQWIXDKWGVSABCUPTWHWOWMXCWHVSVQWGQUQURUSTUTVAVQWIWEOWGVQW
      IWEVQWIGZWDAEXEVREFZGWDVRWFIJZWCKZVOVPXFXHWIXFVOVPXHXFVOVPSWCXGVRBCVBVEVC
      VFWIWDXHKVQXFWIVTXGWCVSWFVRIVGVHVNVIVJVATVKVLVM $.
  $}


$( (End of Jim Kingdon's mathbox.) $)


$( Begin $[ set-mbox-ml.mm $] $)
$( Skip $[ set-main.mm $] $)
$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for ML
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  ${
    $d A y $.  $d B y $.  $d C y $.  $d x y $.
    $( Distribution of class substitution over difference of two classes.
       (Contributed by ML, 14-Jul-2020.) $)
    csbdif $p |- [_ A / x ]_ ( B \ C ) = ( [_ A / x ]_ B \ [_ A / x ]_ C ) $=
      ( vy cvv wcel cdif csb wceq csbeq1 difeq12d eqeq12d nfcsb1v nfdif csbeq1a
      cv vex c0 csbprc csbief vtoclg wn dif0 a1i 3eqtr4rd pm2.61i ) BFGZABCDHZI
      ZABCIZABDIZHZJZAEQZUIIZAUOCIZAUODIZHZJUNEBFUOBJZUPUJUSUMAUOBUIKUTUQUKURUL
      AUOBCKAUOBDKLMAUOUIUSERAUQURAUOCNAUODNOAQUOJCUQDURAUOCPAUODPLUAUBUHUCZSSH
      ZSUMUJVBSJVASUDUEVAUKSULSABCTABDTLABUITUFUG $.
  $}

  $( Move class substitution in and out of the predecessor class of a
     relationship.  (Contributed by ML, 25-Oct-2020.) $)
  csbpredg $p |- ( A e. V -> [_ A / x ]_ Pred ( R , D , X ) =
                   Pred ( [_ A / x ]_ R , [_ A / x ]_ D , [_ A / x ]_ X ) ) $=
    ( wcel ccnv csn cima cin cpred csbin csbima12 csbcnv imaeq1i csbsng df-pred
    csb syl5eq imaeq2d syl5eqr ineq2d csbeq2i 3eqtr4g ) BEGZABCDHZFIZJZKZSZABCS
    ZABDSZHZABFSZIZJZKZABCDFLZSULUMUOLUFUKULABUISZKURABCUIMUFUTUQULUFUTABUGSZAB
    UHSZJZUQABUHUGNUFVCUNVBJUQUNVAVBABDOPUFVBUPUNABFEQUAUBTUCTABUSUJCDFRUDULUMU
    ORUE $.

  ${
    $d A f y z $.  $d D f y z $.  $d F f y z $.  $d R f y z $.  $d V f y z $.
    $d f x y z $.
    $( Move class substitution in and out of the well-founded recursive
       function generator .  (Contributed by ML, 25-Oct-2020.) $)
    csbwrecsg $p |- ( A e. V -> [_ A / x ]_ wrecs ( R , D , F ) =
                   wrecs ( [_ A / x ]_ R , [_ A / x ]_ D , [_ A / x ]_ F ) ) $=
      ( vf vz vy cv wss cpred wral cfv wceq csb wsbc csbconstg bitrd syl5eq wfn
      wcel cres w3a wex cab cuni cwrecs csbuni csbab sbcex2 sbc3an sbcan sbcssg
      wa sbcg sseq1d sbcralg sseq2d csbpredg predeq3 syl 3bitrd ralbidv anbi12d
      eqtrd syl5bb sbceqg csbfv12 csbres fveq2d eqeq12d 3anbi123d exbidv abbidv
      reseq12d unieqd df-wrecs csbeq2i 3eqtr4g ) BFUBZABGJZHJZUAZWCCKZCDIJZLZWC
      KZIWCMZUOZWFWBNZWBWGUCZENZOZIWCMZUDZHUEZGUFZUGZPZWDWCABCPZKZXAABDPZWFLZWC
      KZIWCMZUOZWKWBXDUCZABEPZNZOZIWCMZUDZHUEZGUFZUGZABCDEUHZPXAXCXIUHWAWTABWRP
      ZUGXPABWRUIWAXRXOWAXRWQABQZGUFXOWQAGBUJWAXSXNGXSWPABQZHUEWAXNWPHABUKWAXTX
      MHXTWDABQZWJABQZWOABQZUDWAXMWDWJWOABULWAYAWDYBXGYCXLWDABFUPYBWEABQZWIABQZ
      UOWAXGWEWIABUMWAYDXBYEXFWAYDABWCPZXAKXBABWCCFUNWAYFWCXAABWCFRZUQSWAYEWHAB
      QZIWCMXFWHAIBWCFURWAYHXEIWCWAYHABWGPZYFKYIWCKXEABWGWCFUNWAYFWCYIYGUSWAYIX
      DWCWAYIXAXCABWFPZLZXDABCDFWFUTWAYJWFOYKXDOABWFFRXAXCYJWFVAVBVFZUQVCVDSVEV
      GWAYCWNABQZIWCMXLWNAIBWCFURWAYMXKIWCWAYMABWKPZABWMPZOXKABWKWMFVHWAYNWKYOX
      JABWKFRWAYOABWLPZXINXJABWLEVIWAYPXHXIWAYPABWBPZYIUCXHABWBWGVJWAYQWBYIXDAB
      WBFRYLVPTVKTVLSVDSVMVGVNVGVOTVQTABXQWSHICDGEVRVSHIXAXCGXIVRVT $.
  $}

  $( Move class substitution in and out of ` recs ` .  (Contributed by ML,
     25-Oct-2020.) $)
  csbrecsg $p |- ( A e. V -> [_ A / x ]_ recs ( F ) =
                                         recs ( [_ A / x ]_ F ) ) $=
    ( wcel con0 cep cwrecs csb crecs csbwrecsg wceq csbconstg wrecseq1 wrecseq2
    syl 3eqtrd df-recs csbeq2i 3eqtr4g ) BDEZABFGCHZIZFGABCIZHZABCJZIUDJUAUCABF
    IZABGIZUDHZUGGUDHZUEABFGCDKUAUHGLUIUJLABGDMUGUHGUDNPUAUGFLUJUELABFDMUGFGUDO
    PQABUFUBCRSUDRT $.

  ${
    $d A g $.  $d F g $.  $d I g $.  $d V g $.  $d g x $.
    $( Move class substitution in and out of the recursive function generator.
       (Contributed by ML, 25-Oct-2020.) $)
    csbrdgg $p |- ( A e. V -> [_ A / x ]_ rec ( F , I ) =
                   rec ( [_ A / x ]_ F , [_ A / x ]_ I ) ) $=
      ( vg cvv wceq cuni cfv cif cmpt crecs csb crdg wsbc sbcg csbconstg syl5eq
      csbif wcel cv c0 cdm wlim crn csbrecsg csbmpt2 csbfv12 ifbieq12d ifbieq2d
      fveq2d mpteq2dv eqtrd recseq syl df-rdg csbeq2i 3eqtr4g ) BEUAZABFGFUBZUC
      HZDVAUDZUEZVAUFIZVCIVAJZCJZKZKZLZMZNZFGVBABDNZVDVEVFABCNZJZKZKZLZMZABCDOZ
      NVNVMOUTVLABVJNZMZVSABVJEUGUTWAVRHWBVSHUTWAFGABVINZLVRAFBEGVIUHUTFGWCVQUT
      WCVBABPZVMABVHNZKVQVBABDVHTUTWDVBWEVPVMVBABEQUTWEVDABPZABVENZABVGNZKVPVDA
      BVEVGTUTWFVDWGWHVEVOVDABEQABVEERUTWHABVFNZVNJVOABVFCUIUTWIVFVNABVFERULSUJ
      SUKSUMUNWAVRUOUPUNABVTVKFCDUQURFVNVMUQUS $.
  $}

  ${
    $d A c d $.  $d A c y $.  $d A c z $.  $d V c d $.  $d V c y $.
    $d V c z $.  $d c ph $.  $d c d x $.  $d x y $.  $d x z $.
    $( Move class substitution in and out of class abstractions of nested
       ordered pairs.  (Contributed by ML, 25-Oct-2020.) $)
    csboprabg $p |- ( A e. V -> [_ A / x ]_ { <. <. y , z >. , d >. | ph }
                             = { <. <. y , z >. , d >. | [. A / x ]. ph } ) $=
      ( vc cv cop wa wex cab csb wsbc coprab sbcex2 syl5bb exbidv df-oprab wcel
      wceq csbab sbcan sbcg anbi1d abbidv syl5eq csbeq2i 3eqtr4g ) EFUAZBEHICID
      IJGIJUBZAKZGLZDLZCLZHMZNZULABEOZKZGLZDLZCLZHMZBEACDGPZNUSCDGPUKURUPBEOZHM
      VDUPBHEUCUKVFVCHVFUOBEOZCLUKVCUOCBEQUKVGVBCVGUNBEOZDLUKVBUNDBEQUKVHVADVHU
      MBEOZGLUKVAUMGBEQUKVIUTGVIULBEOZUSKUKUTULABEUDUKVJULUSULBEFUEUFRSRSRSRUGU
      HBEVEUQACDGHTUIUSCDGHTUJ $.
  $}

  ${
    $d A d y $.  $d A d z $.  $d D d $.  $d V d y $.  $d V d z $.  $d Y d $.
    $d Z d $.  $d d x y $.  $d x z $.
    $( Move class substitution in and out of maps-to notation for operations.
       (Contributed by ML, 25-Oct-2020.) $)
    csbmpt22g $p |- ( A e. V -> [_ A / x ]_ ( y e. Y , z e. Z |-> D )
           = ( y e. [_ A / x ]_ Y , z e. [_ A / x ]_ Z |-> [_ A / x ]_ D ) ) $=
      ( vd wcel cv wa wceq coprab csb cmpt2 wsbc sbcan sbcel12 syl5bb csboprabg
      csbconstg eleq1d anbi12d sbceq2g oprabbidv eqtrd df-mpt2 csbeq2i 3eqtr4g
      ) DFJZADBKZGJZCKZHJZLZIKZEMZLZBCINZOZULADGOZJZUNADHOZJZLZUQADEOZMZLZBCINZ
      ADBCGHEPZOBCVBVDVGPUKVAUSADQZBCINVJUSABCDFIUAUKVLVIBCIVLUPADQZURADQZLUKVI
      UPURADRUKVMVFVNVHVMUMADQZUOADQZLUKVFUMUOADRUKVOVCVPVEVOADULOZVBJUKVCADULG
      SUKVQULVBADULFUBUCTVPADUNOZVDJUKVEADUNHSUKVRUNVDADUNFUBUCTUDTADUQEFUEUDTU
      FUGADVKUTBCIGHEUHUIBCIVBVDVGUHUJ $.
  $}

  ${
    mpnanrd.1 $e |- ( ph -> ps ) $.
    mpnanrd.2 $e |- ( ph -> -. ( ps /\ ch ) ) $.
    $( Eliminate the right side of a negated conjunction in an implication.
       (Contributed by ML, 17-Oct-2020.) $)
    mpnanrd $p |- ( ph -> -. ch ) $=
      ( wn wa wi imnan sylibr mpd ) ABCFZDABCGFBLHEBCIJK $.
  $}

  ${
    con1bii2.1 $e |- ( -. ph <-> ps ) $.
    $( A contraposition inference.  (Contributed by ML, 18-Oct-2020.) $)
    con1bii2 $p |- ( ph <-> -. ps ) $=
      ( wn con1bii bicomi ) BDAABCEF $.
  $}

  ${
    con2bii2.1 $e |- ( ph <-> -. ps ) $.
    $( A contraposition inference.  (Contributed by ML, 18-Oct-2020.) $)
    con2bii2 $p |- ( -. ph <-> ps ) $=
      ( wn con2bii bicomi ) BADABCEF $.
  $}

  ${
    $d A x $.
    vtoclefex.1 $e |- F/ x ph $.
    vtoclefex.3 $e |- ( x = A -> ph ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       ML, 17-Oct-2020.) $)
    vtoclefex $p |- ( A e. V -> ph ) $=
      ( wcel wnf cv wceq wi wal ax-gen vtoclegft mp3an23 ) CDGABHBICJAKZBLAEPBF
      MABCDNO $.
  $}

  ${
    $d A u $.  $d u x $.
    $( The range of a function mapping to singletons.  (Contributed by ML,
       15-Jul-2020.) $)
    rnmptsn $p |- ran ( x e. A |-> { x } ) = { u | E. x e. A u = { x } } $=
      ( cv csn cmpt crn wcel wceq wex cab wrex copab df-mpt rneqi rnopab df-rex
      wa eqtri abbii eqtr4i ) ACADZEZFZGZUBCHBDUCIZRZAJZBKZUFACLZBKUEUGABMZGUIU
      DUKABCUCNOUGABPSUJUHBUFACQTUA $.
  $}

  ${
    f1omptsn.f $e |- F = ( x e. A |-> { x } ) $.
    f1omptsn.r $e |- R = { u | E. x e. A u = { x } } $.
    ${
      $d A x u $.  $d A x y $.  $d F x y $.  $d R u x $.
      $( This is the core of the proof of ~ f1omptsn , but to avoid the
         distinct variables on the definitions, we split this proof into two.
         (Contributed by ML, 15-Jul-2020.) $)
      f1omptsnlem $p |- F : A -1-1-onto-> R $=
        ( vy crn wf1o cv cfv wceq wi wcel wsbc cvv wb ax-mp wa wf1 wf wral eqid
        csn snex eqsbc3 mpbir csb sbcel2 csbconstg eleq2i bitri wrex wex abeq2i
        df-rex sylbbr 19.23bi sbcth sbcimg sbcan sbcel1v 3imtr3i sylanbr fvmpt2
        mpbi mpan2 fmpti sneq fvmpt3i eqeqan12d vex sneqbg syl6bb biimpd rgen2a
        mpdan dff13 mpbir2an f1f1orn cmpt cab rnmptsn rneqi 3eqtr4i f1oeq3 ) CE
        IZEJZCDEJZCDEUAZWIWKCDEUBAKZELZHKZELZMZWLWNMZNZHCUCACUCACDWLUEZEFWLCOZB
        KZWSMZBWSPZWSDOZXCWSWSMZWSUDWSQOZXCXERWLUFZBWSWSQUGSUHWTWTBWSPZXCXDXHWL
        BWSCUIZOWTBWSWLCUJXICWLXFXICMXGBWSCQUKSULUMWTXBTZBWSPZXADOZBWSPZXHXCTXD
        XJXLNZBWSPZXKXMNZXFXOXGXNBWSQXJXLAXLXBACUNZXJAUOXQBDGUPXBACUQURUSUTSXFX
        OXPRXGXJXLBWSQVASVGWTXBBWSVBBWSDVCVDVEVHZVIWRAHCWTWNCOZTZWPWQXTWPWSWNUE
        ZMZWQWTXSWMWSWOYAWTXDWMWSMXRACWSDEFVFVRAWNWSYACEWLWNVJFXGVKVLWLQOYBWQRA
        VMWLWNQVNSVOVPVQAHCDEVSVTCDEWASWHDMWIWJRACWSWBZIXQBWCWHDABCWDEYCFWEGWFW
        HDCEWGSVG $.
    $}

    $d A a u x z $.
    $( A function mapping to singletons is bijective onto a set of singletons.
       (Contributed by ML, 16-Jul-2020.) $)
    f1omptsn $p |- F : A -1-1-onto-> R $=
      ( va vz wf1o cv csn cmpt wceq wrex cab eqcomi wb eqtri ax-mp sneq cbvmptv
      id eqeqan12d cbvrexdva cbvabv f1omptsnlem f1oeq3 mpbir f1oeq1 ) CDEJZCDHC
      HKZLZMZJZUOCIKZUMNZHCOZIPZUNJZABCUSUNACAKZLZMZUNAHCVBUMVAULUAZUBZQBKZVBNZ
      ACOZBPZUSVHURBIVFUPNZVGUQAHCVJVAULNVFUPVBUMVJUCVDUDUEUFZQUGDUSNUOUTRDVIUS
      GVKSDUSCUNUHTUIEUNNUKUOREVCUNFVESCDEUNUJTUI $.
  $}

  ${
    mptsnun.f $e |- F = ( x e. A |-> { x } ) $.
    mptsnun.r $e |- R = { u | E. x e. A u = { x } } $.
    ${
      $d A u x $.  $d B u x z $.  $d F x $.
      $( This is the core of the proof of ~ mptsnun , but to avoid the distinct
         variables on the definitions, we split this proof into two.
         (Contributed by ML, 16-Jul-2020.) $)
      mptsnunlem $p |- ( B C_ A -> B = U. ( F " B ) ) $=
        ( vz cv wcel wceq wa wex wb sylbi wi wsbc cvv ax-mp cima cuni wrex cres
        wss csn cab crn df-ima cmpt reseq1i resmpt syl5eq rnmptsn syl6eq unieqd
        rneqd eleq2d eleq1 eluniab ancom r19.41v df-rex eleq2 anbi2d adantr ibi
        3bitr2i anim2i eximi an12 exbii exsimpr syl velsn anbi2i sylib biimparc
        exlimiv vtoclga wsb eqid snex sbcg eqsbc3 adantl biimpri 19.23bi expcom
        equid sylbir sylbird sbcth sbcimg mpbi sbcan wnf nfab1 nfuni nfcri nfim
        nfv sbctt mp2an 3imtr3i syl2anbr mpan2 mpbidi com12 sbimi equsb3 impbii
        syl5bir sbf syl6bb eqrdv eqcomd ) DCUEZFDUAZUBZDXRAXTDXRAJZXTKYABJZYAUF
        ZLZADUCZBUGZUBZKZYADKZXRXTYGYAXRXSYFXRXSFDUDZUHZYFFDUIXRYKADYCUJZUHYFXR
        YJYLXRYJACYCUJZDUDYLFYMDGUKACDYCULUMUQABDUNUOUMUPURYHYIIJZDKZYIIYAYGYNY
        ADUSZYNYGKZYIYNYALZMZANZYOYQYIYNYCKZMZANZYTYQYNYBKZYEMZBNZUUCYEBYNUTZUU
        EUUCBUUEYIYDUUAMZMZANZUUCUUEYIYDUUDMZMZANZUUJUUEYEUUDMUUKADUCUUMUUDYEVA
        YDUUDADVBUUKADVCVHUULUUIAUUKUUHYIUUKUUHYDUUKUUHOUUDYDUUDUUAYDYBYCYNVDZV
        EVFVGVIVJPUUJYDUUBMZANUUCUUIUUOAYIYDUUAVKVLYDUUBAVMPVNVSPUUBYSAUUAYRYII
        YAVOZVPVLVQYSYOAYRYOYIYPVRVSVNVTYAYALZYIYHQZAWJYRIAWAUURIAWAUUQUURYRUUR
        IAYIYRYHYRYQYHYIYRUUAYIYQUUPYIYCYCLZUUAYQQZYCWBYIYIBYCRZYDBYCRZUUTUUSYC
        SKZUVAYIOYAWCZYIBYCSWDTUVCUVBUUSOUVDBYCYCSWETYIYDMZBYCRZUUTBYCRZUVAUVBM
        UUTUVEUUTQZBYCRZUVFUVGQZUVCUVIUVDUVHBYCSUVEUUAUUDYQYDUUDUUAOYIUUNWFUVEU
        UDYQQZAUVEANYEUVKYDADVCUUDYEYQUUEYQBYQUUFUUGWGWHWIWKWHWLWMTUVCUVIUVJOUV
        DUVEUUTBYCSWNTWOYIYDBYCWPUVCUUTBWQUVGUUTOUVDUUAYQBUUABXBBIYGBYFYEBWRWSW
        TXAUUTBYCSXCXDXEXFXGXMYNYAYGUSXHXIXJAIAXKUURIAUURIXBXNXETXLXOXPXQ $.
    $}

    $d A u x $.  $d A x y $.  $d B u x $.
    $( A class ` B ` is equal to the union of the class of all singletons of
       elements of ` B ` .  (Contributed by ML, 16-Jul-2020.) $)
    mptsnun $p |- ( B C_ A -> B = U. ( F " B ) ) $=
      ( vy wss cv csn cmpt cima cuni sneq cbvmptv eqcomi mptsnunlem eqtri
      imaeq1i unieqi syl6eqr ) DCJDICIKZLZMZDNZOFDNZOABCDEUFACAKZLZMZUFAICUJUEU
      IUDPQZRHSUHUGFUFDFUKUFGULTUAUBUC $.
  $}

  ${
    dissneq.c $e |- C = { u | E. x e. A u = { x } } $.
    ${
      $d A u x y z $.  $d B x y $.  $d C x y $.
      $( This is the core of the proof of ~ dissneq , but to avoid the distinct
         variables on the definitions, we split this proof into two.
         (Contributed by ML, 16-Jul-2020.) $)
      dissneqlem $p |- ( ( C C_ B /\ B e. ( TopOn ` A ) ) -> B = ~P A ) $=
        ( vy vz wss cfv wcel wa adantl cv cuni wceq wex wrex cab crn ctopon cpw
        cpr topgele simprd selpw w3a csn cvv simp3 cmpt cima cres df-ima resmpt
        c0 syl5eq rnmptsn syl6eq imassrn syl6eqssr syl6sseq sneq eqeq2d cbvrexv
        rneqd abbii eqtri syl6sseqr wi sstr expcom adantr mpd ssexd isset sylib
        3adant3 eqid mptsnun unieqd eqtrd sseq1 unieq anbi12d syl5ibrcom eximdv
        jca syl3an2b 3com23 3expia wb ctg ctop topontop tgtop syl eleq2d bitr3d
        eltg3 sylibrd ssrdv eqssd ) EDIZDCUAJZKZLZDCUBZXGUPCUCDIZDXHIZXFXIXJLXD
        DCUDMUEXGAXHDXGANZXHKZGNZDIZXKXMOZPZLZGQZXKDKZXDXFXLXRXDXLXFXRXLXDXKCIZ
        XFXRACUFXDXTXFUGZXMBNZHNZUHZPZHXKRBSZPZGQZXRYAYFUIKYHYAYFDXEXDXTXFUJXDX
        TYFDIZXFXDXTLZYFEIZYIXTYKXDXTYFYEHCRZBSZEXTYFHCYDUKZTZYMXTYFYNXKULZYOXT
        YPHXKYDUKZTZYFXTYPYNXKUMZTYRYNXKUNXTYSYQHCXKYDUOVFUQHBXKURUSZYNXKUTVAHB
        CURVBEYBXKUHZPZACRZBSYMFUUCYLBUUBYEAHCXKYCPUUAYDYBXKYCVCVDVEVGVHVIMXDYK
        YIVJXTYKXDYIYFEDVKVLVMVNZVRVOGYFVPVQXDXTYHXRVJXFYJYGXQGYJXQYGYIXKYFOZPZ
        LYJYIUUFUUDXTUUFXDXTXKYPOUUEHBCXKYMYNYNVSYMVSVTXTYPYFYTWAWBMWHYGXNYIXPU
        UFXMYFDWCYGXOUUEXKXMYFWDVDWEWFWGVRVNWIWJWKXFXSXRWLXDXFXKDWMJZKXSXRXFUUG
        DXKXFDWNKUUGDPCDWODWPWQWRGXKDXEWTWSMXAXBXC $.
    $}
    $d A u x z $.  $d B z $.  $d C z $.
    $( Any topology that contains every single-point set is the discrete
       topology.  (Contributed by ML, 16-Jul-2020.) $)
    dissneq $p |- ( ( C C_ B /\ B e. ( TopOn ` A ) ) -> B = ~P A ) $=
      ( vz cv csn wceq wrex cab sneq eqeq2d cbvrexv abbii eqtr4i dissneqlem ) G
      BCDEEBHZAHZIZJZACKZBLSGHZIZJZGCKZBLFUGUCBUFUBGACUDTJUEUASUDTMNOPQR $.
  $}

  ${
    $d x ps $.
    $( Closed form of ~ exlimimd .  (Contributed by ML, 17-Jul-2020.) $)
    exlimim $p |- ( ( E. x ph /\ A. x ( ph -> ps ) ) -> ps ) $=
      ( wi wal wex nfa1 nfv sp exlimd impcom ) ABDZCEZACFBMABCLCGBCHLCIJK $.
  $}

  ${
    $d x ph $.  $d x ch $.
    exlimimd.1 $e |- ( ph -> E. x ps ) $.
    exlimimd.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Existential elimination rule of natural deduction.  (Contributed by ML,
       17-Jul-2020.) $)
    exlimimd $p |- ( ph -> ch ) $=
      ( imp exlimddv ) ABCDEABCFGH $.
  $}

  ${
    exlimimdd.1 $e |- F/ x ph $.
    exlimimdd.2 $e |- F/ x ch $.
    exlimimdd.3 $e |- ( ph -> E. x ps ) $.
    exlimimdd.4 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Existential elimination rule of natural deduction.  (Contributed by ML,
       17-Jul-2020.) $)
    exlimimdd $p |- ( ph -> ch ) $=
      ( imp exlimdd ) ABCDEFGABCHIJ $.
  $}

  ${
    $d x ph $.
    $( Closed form of ~ exellimddv .  See also ~ exlimim for a more general
       theorem.  (Contributed by ML, 17-Jul-2020.) $)
    exellim $p |- ( ( E. x x e. A /\ A. x ( x e. A -> ph ) ) -> ph ) $=
      ( cv wcel wi wal wex nfa1 nfv sp exlimd impcom ) BDCEZAFZBGZNBHAPNABOBIAB
      JOBKLM $.
  $}

  ${
    $d x ph $.  $d x ps $.
    exellimddv.1 $e |- ( ph -> E. x x e. A ) $.
    exellimddv.2 $e |- ( ph -> ( x e. A -> ps ) ) $.
    $( Eliminate an antecedent when the antecedent is elementhood, deduction
       version.  See ~ exellim for the closed form, which requires the use of a
       universal quantifier.  (Contributed by ML, 17-Jul-2020.) $)
    exellimddv $p |- ( ph -> ps ) $=
      ( cv wcel wex wi wal alrimiv exellim syl2anc ) ACGDHZCIOBJZCKBEAPCFLBCDMN
      $.
  $}

  ${
    topdifinf.t $e |- T = { x e. ~P A | ( -. ( A \ x ) e. Fin \/
                                          ( x = (/) \/ x = A ) ) } $.
    $d A x $.
    $( Part of Exercise 3 of [Munkres] p. 83.  The topology of all subsets
       ` x ` of ` A ` such that the complement of ` x ` in ` A ` is infinite,
       or ` x ` is the empty set, or ` x ` is all of ` A ` , is the trivial
       topology when ` A ` is finite.  (Contributed by ML, 14-Jul-2020.) $)
    topdifinfindis $p |- ( A e. Fin -> T = { (/) , A } ) $=
      ( cfn wcel c0 cpr nfv cv cdif wn wceq wo cpw wa wi eleq1a syl wb pm4.71rd
      crab nfrab1 nfcxfr nfcv 0elpw mp1i pwidg jaod vex a1i diffi biortn anbi2d
      elpr rabeq2i syl6rbbr 3bitr4rd eqrd ) BEFZACGBHZUTAIACBAJZKEFZLVBGMZVBBMZ
      NZNZABOZUBDVGAVHUCUDAVAUEUTVFVBVHFZVFPZVBVAFZVBCFZUTVFVIUTVDVIVEGVHFVDVIQ
      UTBUFGVHVBRUGUTBVHFVEVIQBEUHBVHVBRSUIUAVKVFTUTVBGBAUJUOUKUTVJVIVGPVLUTVFV
      GVIUTVCVFVGTBVBULVCVFUMSUNVGACVHDUPUQURUS $.

    ${
      $d A u y $.  $d A x y $.  $d T u y $.  $d T x y $.
      $( This is the core of the proof of ~ topdifinffin , but to avoid the
         distinct variables on the definition, we need to split this proof into
         two.  (Contributed by ML, 17-Jul-2020.) $)
      topdifinffinlem $p |- ( T e. ( TopOn ` A ) -> A e. Fin ) $=
        ( vu vy cfn wcel wn wceq wex wa w3a wsbc cvv c0 wo eleq1 wb ax-mp nfab1
        ctopon cfv cpw cv csn wrex cab wss nfv nfcv abid df-rex bitri eqid snex
        cdif snelpwi syl5ibr imdistani anim2i 3impb 3anass sylibr mpbiri difinf
        wi snfi sylan2 orcd ancoms 3impa syl rabeq2i 3ad2ant2 mpbid sbcimg mpbi
        sbcth sbc3an sbcg 3anbi1i eqsbc3 3anbi2i 3bitri 3anbi3i 3imtr3i pm4.71d
        mp3an2 ex anbi1d exbidv syl5bb anass exbii exsimpr sylbi syl6bi pm5.32i
        ancom bitr4i syl6ib syl6 ax5e dissneq sylan nfielex adantr difss elfvex
        ssrd difexg elpwg 3syl adantl mpan2 0fin nsyl ad2antrl wne vsnid inelcm
        cin disj4 necon2abii pssned neneqd pm4.56 sylib biantrurd difeq2 eleq1d
        wpss jca notbid eqeq1 orbi12d elrab2 syl6rbbr dfin4 inss2 ssfi eqeltrri
        biortn syl6bbr ad2antll mtbird expcom nelneq2 sylnibr syl6an exellimddv
        mp2an eqcom pm2.65da con4i ) BGHZCBUBUCHZUUQIZUURCBUDZJZUUSEUEZFUEZUFZJ
        ZFBUGZEUHZCUIUURUVAUUSEUVGCUUSEUJUVFEUAECUKUUSUVBUVGHZUVBCHZFKZUVIUUSUV
        HUVEUVILZFKZUVJUUSUVHUVDCHZUVELZFKZUVLUUSUVHUVCBHZUVMLZUVELZFKZUVOUVHUV
        PUVELZFKZUUSUVSUVHUVFUWAUVFEULUVEFBUMUNUUSUVTUVRFUUSUVPUVQUVEUUSUVPUVMU
        USUVPUVMUUSUVDUVDJZUVPUVMUVDUOUUSAUEZUVDJZUVPMZAUVDNZUVMAUVDNZUUSUWBUVP
        MZUVMUWEUVMVGZAUVDNZUWFUWGVGZUVDOHZUWJUVCUPZUWIAUVDOUWEUWCCHZUVMUWEUWCU
        UTHZBUWCUQZGHZIZUWCPJZUWCBJZQZQZLZUWNUWEUUSUWDUWOMZUXCUWEUUSUWDUWOLZLZU
        XDUUSUWDUVPUXFUWDUVPLUXEUUSUWDUVPUWOUVPUWOUWDUVDUUTHUVCBURUWCUVDUUTRUSU
        TVAVBUUSUWDUWOVCVDUUSUWDUWOUXCUWOUUSUWDLZUXCUXGUXBUWOUXGUWRUXAUWDUUSUWC
        GHZUWRUWDUXHUVDGHZUVCVHZUWCUVDGRVEBUWCVFVIVJVAVKVLVMUXBACUUTDVNVDUWDUUS
        UWNUVMSUVPUWCUVDCRVOVPVSTUWLUWJUWKSUWMUWEUVMAUVDOVQTVRUWFUUSUWBUVPAUVDN
        ZMZUWHUWFUUSAUVDNZUWDAUVDNZUXKMUUSUXNUXKMUXLUUSUWDUVPAUVDVTUXMUUSUXNUXK
        UWLUXMUUSSUWMUUSAUVDOWATWBUXNUWBUUSUXKUWLUXNUWBSUWMAUVDUVDOWCTWDWEUXKUV
        PUUSUWBUWLUXKUVPSUWMUVPAUVDOWATWFUNUWLUWGUVMSUWMUVMAUVDOWATWGWIWJWHWKWL
        WMUVSUVPUVNLZFKUVOUVRUXOFUVPUVMUVEWNWOUVPUVNFWPWQWRUVNUVKFUVNUVEUVMLUVK
        UVMUVEWTUVEUVIUVMUVBUVDCRWSXAWOXBUVEUVIFWPXCUVIFXDXCXKFEBCUVGUVGUOXEXFU
        USUURLZUVAIZFBUUSUVPFKUURFBXGXHUXPBUVDUQZUUTHZUVPUXRCHZIZUXQUURUXSUUSUU
        RUXSUXRBUIZBUVDXIUURBOHUXROHUXSUYBSCBUBXJBUVDOXLUXRBOXMXNVEZXOUVPUXPUYA
        UVPUXPLZUXTUXRPJZUXRBJZQZUYDUYEIZUYFIZLUYGIUYDUYHUYIUUSUYHUVPUURUUSUXRG
        HZUYEUUSUXIUYJIUXJBUVDVFXPUYEUYJPGHXQUXRPGRVEXRXSUYDUXRBUVPUXRBXTUXPUVP
        UXRBUVPBUVDYCZPXTZUXRBYMZUVPUVCUVDHUYLFYAUVCBUVDYBXPUYMUYKPBUVDYDYEVDYF
        XHYGYNUYEUYFYHYIUURUXTUYGSUVPUUSUURUXTBUXRUQZGHZIZUYGQZUYGUURUYQUXSUYQL
        UXTUURUXSUYQUYCYJUXBUYQAUXRUUTCUWCUXRJZUWRUYPUXAUYGUYRUWQUYOUYRUWPUYNGU
        WCUXRBYKYLYOUYRUWSUYEUWTUYFUWCUXRPYPUWCUXRBYPYQYQDYRYSUYOUYGUYQSUYKUYNG
        BUVDYTUXIUYKUVDUIUYKGHUXJBUVDUUAUVDUYKUUBUUMUUCUYOUYGUUDTUUEUUFUUGUUHUX
        SUYALUUTCJUVAUXRUUTCUUICUUTUUNUUJUUKUULUUOUUP $.
    $}

    $d A x y $.  $d T y $.
    $( Part of Exercise 3 of [Munkres] p. 83.  The topology of all subsets
       ` x ` of ` A ` such that the complement of ` x ` in ` A ` is infinite,
       or ` x ` is the empty set, or ` x ` is all of ` A ` , is a topology only
       if ` A ` is finite.  (Contributed by ML, 17-Jul-2020.) $)
    topdifinffin $p |- ( T e. ( TopOn ` A ) -> A e. Fin ) $=
      ( vy cv cdif cfn wcel wn c0 wceq wo cpw crab difeq2 eleq1d notbid orbi12d
      eqeq1 cbvrabv eqtri topdifinffinlem ) EBCCBAFZGZHIZJZUDKLZUDBLZMZMZABNZOB
      EFZGZHIZJZUMKLZUMBLZMZMZEULODUKUTAEULUDUMLZUGUPUJUSVAUFUOVAUEUNHUDUMBPQRV
      AUHUQUIURUDUMKTUDUMBTSSUAUBUC $.

    $d A x $.
    $( Part of Exercise 3 of [Munkres] p. 83.  The topology of all subsets
       ` x ` of ` A ` such that the complement of ` x ` in ` A ` is infinite,
       or ` x ` is the empty set, or ` x ` is all of ` A ` , is a topology if
       and only if ` A ` is finite, in which case it is the trivial topology.
       (Contributed by ML, 17-Jul-2020.) $)
    topdifinf $p |- ( ( T e. ( TopOn ` A ) <-> A e. Fin ) /\
                      ( T e. ( TopOn ` A ) -> T = { (/) , A } ) ) $=
      ( ctopon cfv wcel cfn wb c0 cpr wi topdifinffin topdifinfindis indistopon
      wceq eqeltrd impbii syl pm3.2i ) CBEFZGZBHGZIUBCJBKZPZLUBUCABCDMZUCCUDUAA
      BCDNZBHOQRUBUCUEUFUGST $.
  $}

  ${
    $d A x $.
    $( Two different ways of defining the collection from Exercise 3 of
       [Munkres] p. 83.  (Contributed by ML, 18-Jul-2020.) $)
    topdifinfeq $p |- { x e. ~P A | ( -. ( A \ x ) e. Fin \/
                                ( ( A \ x ) = (/) \/ ( A \ x ) = A ) ) } =
                      { x e. ~P A | ( -. ( A \ x ) e. Fin \/
                                ( x = (/) \/ x = A ) ) } $=
      ( cv cdif cfn wcel wn c0 wceq wo cpw cin disj3 eqcom bitri wb wss sseqin2
      selpw wa eqeq1 sylbi eqss ssdif0 bicomi anbi12i bitr4i baib orbi12d orcom
      syl5rbbr syl6bb orbi2d bicomd rabbiia ) BACZDZEFGZUQHIZUQBIZJZJZURUPHIZUP
      BIZJZJZABKZUPVGFZVFVBVHVEVAURVHVEUTUSJVAVHVCUTVDUSUTBUPLZHIZVHVCVJBUQIUTB
      UPMBUQNOVHVIUPIZVJVCPVHUPBQZVKABSZUPBROVIUPHUAUBUKVDVHUSVDVLBUPQZTVHUSTUP
      BUCVHVLUSVNVMVNUSBUPUDUEUFUGUHUIUTUSUJULUMUNUO $.
  $}

  ${
    $d x y z $.
    icorempt2.1 $e |- F = ( [,) |` ( RR X. RR ) ) $.
    $( Closed-below, open-above intervals of reals.  (Contributed by ML,
       26-Jul-2020.) $)
    icorempt2 $p |- F = ( x e. RR , y e. RR |->
                         { z e. RR | ( x <_ z /\ z < y ) } ) $=
      ( cico cr cv cle wbr clt wa cxr cmpt2 wceq ressxr wcel cmnf wn cpnf mp2an
      cxp cres crab df-ico reseq1i wss resmpt2 eqtri nfv nfrab1 rabid wo nltmnf
      syl renemnf neneqd jca pm4.56 sylib wb mnfxr xrleloe sylancl mtbird breq2
      rexr notbid syl5ibrcom con2d pnfnlt breq1 im2anan9 anim2d renepnf pm4.71i
      wi wne xrnemnf anbi1i df-ne anbi2i pm5.61 3bitr3i 3bitr2ri syl6ib simprbi
      anass syl5bi a1i jcad syl6ibr rabss2 ax-mp sseli impbid1 mpt2eq3ia 3eqtri
      eqrd ) DFGGUBZUCZABGGAHZCHZIJZXCBHZKJZLZCMUDZNZABGGXGCGUDZNEXAABMMXHNZWTU
      CZXIFXKWTABCUEUFGMUGZXMXLXIOPPABMMGGXHUHUAUIABGGXHXJXBGQZXEGQZLZCXHXJXPCU
      JXGCMUKXGCGUKXPXCXHQZXCXJQZXPXQXCGQZXGLXRXPXQXSXGXQXCMQZXGLZXPXSXGCMULZXP
      YAXTXCROZSZXCTOZSZLZLZXSXPXGYGXTXNXDYDXOXFYFXNYCXDXNXDSYCXBRIJZSXNYIXBRKJ
      ZXBROZUMZXNYJSZYKSZLYLSXNYMYNXNXBMQZYMXBVGZXBUNUOXNXBRXBUPUQURYJYKUSUTXNY
      ORMQYIYLVAYPVBXBRVCVDVEYCXDYIXCRXBIVFVHVIVJXOXEMQZXFYFVQXEVGYQYEXFYQXFSYE
      TXEKJZSXEVKYEXFYRXCTXEKVLVHVIVJUOVMVNXSXSYFLZXTYDLZYFLZYHXSYFXSXCTXCVOUQV
      PXTXCRVRZLZYFLXSYEUMZYFLUUAYSUUCUUDYFXCVSVTUUCYTYFUUBYDXTXCRWAWBVTXSYEWCW
      DXTYDYFWHWEWFWIXQXGVQXPXQXTXGYBWGWJWKXGCGULWLXJXHXCXMXJXHUGPXGCGMWMWNWOWP
      WSWQWR $.
  $}

  ${
    $d x y z l $.
    $( Closed-below, open-above intervals of reals map to subsets of reals.
       (Contributed by ML, 25-Jul-2020.) $)
    icoreresf $p |- ( [,) |` ( RR X. RR ) ) : ( RR X. RR ) --> ~P RR $=
      ( vx vy vz vl cr cxp cpw cico wf wfn crn wss cxr cle clt mpbir cv wa wcel
      wrex cres rexpssxrxp wb df-ico ixxf ffn fnssresb mp2b wbr crab cmpt2 eqid
      icorempt2 rneqi wral ssrab2 reex elpw2 rgen2w wceq rnmpt2 simpl r19.29d2r
      abeq2i simpr wi eleq1 biimparc a1i rexlimivv ex syl5bi ssrdv eqsstri df-f
      syl ax-mp mpbir2an ) EEFZEGZHVSUAZIWAVSJZWAKZVTLWBVSMMFZLZUBWDMGZHIHWDJWB
      WEUCABCNOHABCUDUEWDWFHUFWDVSHUGUHPWCABEEAQZCQZNUIWHBQZOUIRZCEUJZUKZKZVTWA
      WLABCWAWAULUMUNWKVTSZBEUOAEUOZWMVTLWNABEEWNWKELWJCEUPWKEUQURPUSWODWMVTDQZ
      WMSWPWKUTZBETAETZWOWPVTSZWRDWMABDEEWKWLWLULVAVDWOWRWSWOWRRZWNWQRZBETAETWS
      WTWNWQABEEWOWRVBWOWRVEVCXAWSABEEXAWSVFWGESWIESRWQWSWNWPWKVTVGVHVIVJVPVKVL
      VMVQVNVSVTWAVOVR $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    $( Value of the closed-below, open-above interval function on reals.
       (Contributed by ML, 26-Jul-2020.) $)
    icoreval $p |- ( ( A e. RR /\ B e. RR ) -> ( A [,) B ) =
                 { z e. RR | ( A <_ z /\ z < B ) } ) $=
      ( vx vy cr wcel wa cico cxp cres co cle wbr clt crab ovres wceq rabbidv
      cv breq1 anbi1d breq2 anbi2d eqid icorempt2 reex rabex ovmpt2 eqtr3d ) BF
      GCFGHBCIFFJKZLBCILBATZMNZULCONZHZAFPZBCFFIQDEBCFFDTZULMNZULETZONZHZAFPUPU
      KUMUTHZAFPUQBRZVAVBAFVCURUMUTUQBULMUAUBSUSCRZVBUOAFVDUTUNUMUSCULOUCUDSDEA
      UKUKUEUFUOAFUGUHUIUJ $.
  $}

  ${
    $d X a b $.  $d a b z $.
    icoreelrnab.1 $e |- I = ( [,) " ( RR X. RR ) ) $.
    $( Elementhood in the set of closed-below, open-above intervals of reals.
       (Contributed by ML, 27-Jul-2020.) $)
    icoreelrnab $p |- ( X e. I <-> E. a e. RR E. b e. RR
                       X = { z e. RR | ( a <_ z /\ z < b ) } ) $=
      ( wcel cv cico co wceq cr wrex cle wbr clt wa bitri eqeq2d 2rexbiia eqtri
      crab cxp cres crn cima df-ima eleq2i cpw wf wfn icoreresf ffn ovelrn mp2b
      wb ovres icoreval ) CBGZCDHZEHZIJZKZELMDLMZCUTAHZNOVEVAPOQALUBZKZELMDLMUS
      CUTVAILLUCZUDZJZKZELMDLMZVDUSCVIUEZGZVLBVMCBIVHUFVMFIVHUGUAUHVHLUIZVIUJVI
      VHUKVNVLUPULVHVOVIUMDELLCVIUNUORVKVCDELLUTLGVALGQZVJVBCUTVALLIUQSTRVCVGDE
      LLVPVBVFCAUTVAURSTR $.
  $}

  ${
    isbasisrelowl.1 $e |- I = ( [,) " ( RR X. RR ) ) $.
    ${
      $d I x y z $.  $d a b x z $.  $d b c x y z $.  $d c d y z $.
      $( Lemma for ~ isbasisrelowl .  (Contributed by ML, 27-Jul-2020.) $)
      isbasisrelowllem1 $p |-
       ( ( ( ( a e. RR /\ b e. RR /\
                 x = { z e. RR | ( a <_ z /\ z < b ) } ) /\
             ( c e. RR /\ d e. RR /\
                 y = { z e. RR | ( c <_ z /\ z < d ) } ) ) /\
          ( a <_ c /\ b <_ d ) ) -> ( x i^i y ) e. I ) $=
        ( cv cr wcel cle wbr wa crab wceq w3a nfv wi clt cin wex simplr1 nfrab1
        wrex simpll2 nfeq2 nf3an nfan nfcv simp3 elin eleq2 rabid syl6bb anbi1d
        wb syl5bb anbi2d sylan9bb an4 anidm anbi1i bitri syl2an simprrl simprlr
        adantr simpl jca32 syl6bi 3simpa anim12i letr 3expia exp4a ltletr 3coml
        ad2ant2r expcomd ad2ant2l jcad prth syl6 com23 imp31 ancrd syl6ib simpr
        syl8 an42 jctild sylanl1 imp an32s mpbird expl ancomsd syl6bbr eqrd jca
        impbid 19.8a syl df-rex sylibr icoreelrnab ) EJZKLZFJZKLZAJZXICJZMNZXNX
        KUANZOZCKPZQZRZGJZKLZHJZKLZBJZYAXNMNZXNYCUANZOZCKPZQZRZOZXIYAMNZXKYCMNZ
        OZOZXMYEUBZYFXPOZCKPZQZFKUFZGKUFZYQDLYPYBUUAOZGUCZUUBYPUUCUUDYPYBUUAYBY
        DYJXTYOUDYPXLYTOZFUCZUUAYPUUEUUFYPXLYTXJXLXSYKYOUGYPCYQYSYLYOCXTYKCXJXL
        XSCXJCSXLCSCXMXRXQCKUEUHUIYBYDYJCYBCSYDCSCYEYIYHCKUEUHUIUJYOCSUJCYQUKYR
        CKUEYPXNYQLZXNKLZYROZXNYSLYPUUGUUIYPUUGUUHXQYHOZOZUUIYLUUGUUKURZYOXTXSY
        JUULYKXJXLXSULYBYDYJULXSYJOUUGUUHXQOZUUHYHOZOZUUKXSUUGUUMXNYELZOZYJUUOU
        UGXNXMLZUUPOXSUUQXNXMYEUMXSUURUUMUUPXSUURXNXRLUUMXMXRXNUNXQCKUOUPUQUSYJ
        UUPUUNUUMYJUUPXNYILUUNYEYIXNUNYHCKUOUPUTVAUUOUUHUUHOZUUJOUUKUUHXQUUHYHV
        BUUSUUHUUJUUHVCVDVEUPVFVIZUUKUUHYFXPUUHUUJVJUUHXQYFYGVGUUHXOXPYHVHVKVLY
        PYRUUHUUGYPYRUUHUUGYPYROZUUHOUUGUUKYPUUHYRUUKYPUUHOYRUUKYLXJXLOZYBYDOZO
        ZYOUUHYRUUKTXTUVBYKUVCXJXLXSVMYBYDYJVMVNUVDYOOZUUHOZYRUUJUUHUVFYRXOYGOZ
        YROZUUJUVFYRUVGUVDYOUUHYRUVGTZUVDYOUUHYFXOTZXPYGTZOZUVIUVDUUHYOUVLUVDUU
        HYMUVJTZYNUVKTZOYOUVLTUVDUUHUVMUVNXJYBUUHUVMTXLYDXJYBOUUHYMYFXOXJYBUUHY
        MYFOXOTXIYAXNVOVPVQVTXLYDUUHUVNTXJYBXLYDUUHUVNXLYDUUHRXPYNYGUUHXLYDXPYN
        OYGTXNXKYCVRVSWAVPWBWCYMUVJYNUVKWDWEWFYFXOXPYGWDWKWGWHUVHXOYFOXPYGOOUUJ
        XOYGYFXPWLXOYFXPYGVBVEWIUVEUUHWJWMWNWOWPUVAUULUUHYPUULYRUUTVIVIWQWRWSXC
        YRCKUOWTXAXBUUEFXDXEYTFKXFXGXBUUCGXDXEUUAGKXFXGCDYQGFIXHXG $.
    $}

    ${
      $d a z $.  $d b z $.  $d c d x z $.  $d c d y z $.
      $( Lemma for ~ isbasisrelowl .  (Contributed by ML, 27-Jul-2020.) $)
      isbasisrelowllem2 $p |-
       ( ( ( ( a e. RR /\ b e. RR /\
                 x = { z e. RR | ( a <_ z /\ z < b ) } ) /\
             ( c e. RR /\ d e. RR /\
                 y = { z e. RR | ( c <_ z /\ z < d ) } ) ) /\
          ( a <_ c /\ d <_ b ) ) -> ( x i^i y ) e. I ) $=
        ( cv cr wcel cle wbr wa wceq w3a nfv bitri wi clt crab cin wrex simplr1
        wex simplr2 nfrab1 nfeq2 nf3an nfan nfcv simp3 elin eleq2 syl6bb anbi1d
        rabid syl5bb anbi2d sylan9bb an4 anidm anbi1i an42 bicomi anbi2i syl2an
        wb adantr simpl simprrl simprlr jca32 syl6bi 3simpa anim12i letr 3expia
        exp4a ad2ant2r ltletr 3com13 expcomd ad2ant2l jcad prth syl6 com23 syl8
        imp31 ancrd syl6ibr simpr jctild sylanl1 imp mpbird expl ancomsd impbid
        an32s syl6bbr eqrd jca 19.8a syl df-rex sylibr icoreelrnab ) EJZKLZFJZK
        LZAJZXKCJZMNZXPXMUANZOZCKUBZPZQZGJZKLZHJZKLZBJZYCXPMNZXPYEUANZOZCKUBZPZ
        QZOZXKYCMNZYEXMMNZOZOZXOYGUCZYKPZHKUDZGKUDZYSDLYRYDUUAOZGUFZUUBYRUUCUUD
        YRYDUUAYDYFYLYBYQUEYRYFYTOZHUFZUUAYRUUEUUFYRYFYTYDYFYLYBYQUGYRCYSYKYNYQ
        CYBYMCXLXNYACXLCRXNCRCXOXTXSCKUHUIUJYDYFYLCYDCRYFCRCYGYKYJCKUHZUIUJUKYQ
        CRUKCYSULUUGYRXPYSLZXPKLZYJOZXPYKLZYRUUHUUJYRUUHUUIXQYIOZYHXROZOZOZUUJY
        NUUHUUOVIZYQYBYAYLUUPYMXLXNYAUMYDYFYLUMYAYLOUUHUUIXSOZUUJOZUUOYAUUHUUQX
        PYGLZOZYLUURUUHXPXOLZUUSOYAUUTXPXOYGUNYAUVAUUQUUSYAUVAXPXTLUUQXOXTXPUOX
        SCKURUPUQUSYLUUSUUJUUQYLUUSUUKUUJYGYKXPUOYJCKURZUPUTVAUURUUIXSYJOZOZUUO
        UURUUIUUIOZUVCOUVDUUIXSUUIYJVBUVEUUIUVCUUIVCVDSUVCUUNUUIUUNUVCUUNXQYHOZ
        YIXROOZUVCXQYIYHXRVBUVCUVGXQXRYHYIVEVFSVFVGSUPVHVJZUUOUUIYHYIUUIUUNVKUU
        IUULYHXRVLUUIXQYIUUMVMVNVOYRYJUUIUUHYRYJUUIUUHYRYJOZUUIOUUHUUOYRUUIYJUU
        OYRUUIOYJUUOYNXLXNOZYDYFOZOZYQUUIYJUUOTYBUVJYMUVKXLXNYAVPYDYFYLVPVQUVLY
        QOZUUIOZYJUUNUUIUVNYJUVCUUNUVNYJXSUVLYQUUIYJXSTZUVLYQUUIYHXQTZYIXRTZOZU
        VOUVLUUIYQUVRUVLUUIYOUVPTZYPUVQTZOYQUVRTUVLUUIUVSUVTXLYDUUIUVSTXNYFXLYD
        OUUIYOYHXQXLYDUUIYOYHOXQTXKYCXPVRVSVTWAXNYFUUIUVTTXLYDXNYFUUIUVTXNYFUUI
        QYIYPXRUUIYFXNYIYPOXRTXPYEXMWBWCWDVSWEWFYOUVPYPUVQWGWHWIYHXQYIXRWGWJWKW
        LUUNUVFXRYIOOUVCXQYIYHXRVEXQYHXRYIVBSWMUVMUUIWNWOWPWQXBUVIUUPUUIYRUUPYJ
        UVHVJVJWRWSWTXAUVBXCXDXEUUEHXFXGYTHKXHXIXEUUCGXFXGUUAGKXHXICDYSGHIXJXI
        $.
    $}

    $d I x y z $.
    ${
      $d I a b c d x y z $.
      $( The set of closed-below, open-above intervals of reals is closed under
         finite intersection.  (Contributed by ML, 27-Jul-2020.) $)
      icoreclin $p |- ( ( x e. I /\ y e. I ) -> ( x i^i y ) e. I ) $=
        ( vc vz vd va vb cv wcel cin cle wbr clt wa cr wrex wo ex crab wceq w3a
        wi icoreelrnab isbasisrelowllem1 isbasisrelowllem2 jaod incom syl5eqelr
        ancom1s 3simpa letric anim12i anddi an4s syl2an mpjaod 3expia rexlimivv
        sylib sylbi com12 impcom ) BJZCKZAJZCKZVGVELZCKZVFVEEJZFJZMNVLGJZONPFQU
        AUBZGQREQRVHVJUDZFCVEEGDUEVNVOEGQQVKQKZVMQKZVNVOVHVPVQVNUCZVJVHVGHJZVLM
        NVLIJZONPFQUAUBZIQRHQRVRVJUDZFCVGHIDUEWAWBHIQQVSQKZVTQKZWAWBWCWDWAUCZVR
        VJWEVRPZVSVKMNZVTVMMNZPZWGVMVTMNZPZSZVJVKVSMNZWHPZWMWJPZSZWFWIVJWKWFWIV
        JABFCHIEGDUFTWFWKVJABFCHIEGDUGTUHWFWNVJWOWFWNVJVRWEWNVJVRWEPZWNPVIVEVGL
        ZCVEVGUIZBAFCEGHIDUGUJUKTWFWOVJVRWEWOVJWQWOPVIWRCWSBAFCEGHIDUFUJUKTUHWE
        WCWDPVPVQPWLWPSZVRWCWDWAULVPVQVNULWCVPWDVQWTWCVPPZWDVQPZPWGWMSZWHWJSZPW
        TXAXCXBXDVSVKUMVTVMUMUNWGWMWHWJUOVAUPUQURTUSUTVBVCUSUTVBVD $.
    $}

    $( The set of all closed-below, open-above intervals of reals form a basis.
       (Contributed by ML, 27-Jul-2020.) $)
    isbasisrelowl $p |- I e. TopBases $=
      ( vx vy vz cvv wcel cv cin wral ctb cico cr cxp cima cle clt df-ico ixxex
      imaexg ax-mp eqeltri icoreclin rgen2a fiinbas mp2an ) AFGCHDHIAGZDAJCAJAK
      GALMMNZOZFBLFGUIFGCDEPQLCDERSLUHFTUAUBUGCDACDABUCUDCDAFUEUF $.
  $}

  ${
    $d I x $.
    icoreunrn.1 $e |- I = ( [,) " ( RR X. RR ) ) $.
    $( The union of all closed-below, open-above intervals of reals is the set
       of reals.  (Contributed by ML, 27-Jul-2020.) $)
    icoreunrn $p |- RR = U. I $=
      ( vx cr cuni cv wcel c1 caddc cico cfv cxr rexr mpdan icoreresf syl6eleqr
      co syl ax-mp wss cop cxp cres clt wbr peano2re ltp1 lbico1 df-ov syl6eleq
      syl3anc wceq opelxpi fvres eleqtrrd cdm wa cpw fdmi crn wfun wf ffun mpan
      fvelrn df-ima eqtri elunii syl2anc ssriv frn eqsstri uniss unipw syl6sseq
      cima eqssi ) DAEZCDVRCFZDGZVSVSVSHIQZUAZJDDUBZUCZKZGWEAGZVSVRGVTVSWBJKZWE
      VTVSVSWAJQZWGVTVSLGWALGZVSWAUDUEVSWHGVSMVTWADGZWIVSUFZWAMRVSUGVSWAUHUKVSW
      AJUIUJVTWBWCGZWEWGULVTWJWLWKVSWADDUMZNWBWCJUNRUOVTWBWDUPZGZWFVTWJWOWKVTWJ
      UQWBWCWNWMWCDURZWDOUSPNWOWEWDUTZAWDVAZWOWEWQGWCWPWDVBZWROWCWPWDVCSWBWDVEV
      DAJWCVPWQBJWCVFVGZPRVSWEAVHVIVJAWPTZVRDTAWQWPWTWSWQWPTOWCWPWDVKSVLXAVRWPE
      DAWPVMDVNVOSVQ $.
  $}

  ${
    istoprelowl.1 $e |- I = ( [,) " ( RR X. RR ) ) $.
    $( The set of all closed-below, open-above intervals of reals generate a
       topology on the reals.  (Contributed by ML, 27-Jul-2020.) $)
    istoprelowl $p |- ( topGen ` I ) e. ( TopOn ` RR ) $=
      ( ctb wcel ctg cfv cr ctopon isbasisrelowl cuni icoreunrn eqcomi syl6eleq
      tgtopon fveq2i ax-mp ) ACDZAEFZGHFZDABIQRAJZHFSANTGHGTABKLOMP $.
  $}

  ${
    $d A z $.  $d B z $.  $d a b z $.
    icoreelrn.1 $e |- I = ( [,) " ( RR X. RR ) ) $.
    $( A class abstraction which is an element of the set of closed-below,
       open-above intervals of reals.  (Contributed by ML, 1-Aug-2020.) $)
    icoreelrn $p |- ( ( A e. RR /\ B e. RR ) ->
                       { z e. RR | ( A <_ z /\ z < B ) } e. I ) $=
      ( va vb cr wcel wa cico co cv cle wbr clt crab icoreval cxp cxr simpl cpw
      cima simpr wf wfun df-ico ixxf ffun mp1i cdm wss rexpssxrxp fdmi sseqtr4i
      a1i elovimad syl6eleqr eqeltrrd ) BHIZCHIZJZBCKLZBAMZNOVDCPOJAHQDABCRVBVC
      KHHSZUCDVBBCHHKUTVAUAUTVAUDTTSZTUBZKUEKUFVBFGANPKFGAUGUHZVFVGKUIUJVEKUKZU
      LVBVEVFVIUMVFVGKVHUNUOUPUQEURUS $.
  $}

  ${
    $d A y $.  $d B y $.  $d X y $.
    $( An element of an open interval is not its smallest element.
       (Contributed by ML, 2-Aug-2020.) $)
    iooelexlt $p |- ( X e. ( A (,) B ) -> E. y e. ( A (,) B ) y < X ) $=
      ( cxr wcel cioo co clt wbr cr cpnf wceq cmnf wi wa cvv adantr wb syl wrex
      cv eliooxr simpld w3o elxr wal 19.3v caddc cdiv ovex nfcv elioore readdcl
      nfre1 rehalfcld sylan2 ancoms rexrd eliooord avglt1 simprd avglt2 xrlttrd
      c2 mpbid w3a elioo1 mpbir3and jca eleq1 anbi12d syl5ibr rspe syl6 spcimgf
      breq1 ax-mp sylbir expcom simpl oveq1 eleq2d adantl wn elioo2 mpan biimpd
      pnfxr rexr pnfnlt intn3an2d a1i pm2.65d pm2.21d sylbid mpd cmin peano2rem
      c1 mnflt ltm1d mnfxr mpbird 3jaoi sylbi mpcom ) BEFZDBCGHZFZAUBZDIJZAXIUA
      ZXJXHCEFZDBCUCZUDXHBKFZBLMZBNMZUEXJXMOZBUFXPXSXQXRXJXPXMXJXPPZXTAUGZXMXTA
      UHBDUIHZVEUJHZQFYAXMOYBVEUJUKXTXMAYCQAYCULXLAXIUOZXKYCMZXTXKXIFZXLPZXMXTY
      GYEYCXIFZYCDIJZPXTYHYIXTYHYCEFZBYCIJZYCCIJZXTYCXPXJYCKFZXJXPDKFZYMDBCUMZX
      PYNPYBBDUNUPUQURUSZXTBDIJZYKXJYQXPXJYQDCIJZDBCUTZUDRZXPXJYQYKSZXJXPYNUUAY
      OBDVAUQURVFXTYCDCYPXJDEFZXPXJDYOUSZRXJXNXPXJXHXNXOVBZRXTYQYIYTXPXJYQYISZX
      JXPYNUUEYOBDVCUQURVFZXJYRXPXJYQYRYSVBZRVDXJYHYJYKYLVGSZXPXJXHXNPUUHXOBCYC
      VHTRVIUUFVJYEYFYHXLYIXKYCXIVKXKYCDIVQVLVMXLAXIVNZVOVPVRVSVTXJXQXMXJXQPZXJ
      XMXJXQWAUUJXJDLCGHZFZXMXQXJUULSXJXQXIUUKDBLCGWBWCWDXJUULXMOXQXJUULXMXJXNU
      ULWEUUDXNUULYNLDIJZYRVGZXNUULUUNLEFXNUULUUNSWILCDWFWGWHUULUUNWEZOXNUULYNU
      UODLCUMYNUUMYNYRYNUUBUUMWEDWJDWKTWLTWMWNTWORWPWQVTXJXRXMXJXRPZUUPAUGZXMUU
      PAUHDWTWRHZQFUUQXMODWTWRUKUUPXMAUURQAUURULYDUUPXKUURMZXMUUPUUSPZYGXMUUTYG
      UURXIFZUURDIJZPZUUPUVCUUSUUPUVAUVBUUPUVAUURNCGHZFZXJUVEXRXJUVEUURKFZNUURI
      JZUURCIJZXJYNUVFYODWSTZXJUVFUVGUVIUURXATXJUURDCXJUURUVIUSUUCUUDXJDYOXBZUU
      GVDXJXNUVEUVFUVGUVHVGSZUUDNEFXNUVKXCNCUURWFWGTVIRXRUVAUVESXJXRXIUVDUURBNC
      GWBWCWDXDXJUVBXRUVJRVJRUUSYGUVCSUUPUUSYFUVAXLUVBXKUURXIVKXKUURDIVQVLWDXDU
      UITVTVPVRVSVTXEXFXG $.
  $}

  ${
    $d I a b i o x $.  $d a b x z $.  $d i x z $.
    relowlssretop.1 $e |- I = ( [,) " ( RR X. RR ) ) $.
    $( The lower limit topology on the reals is finer than the standard
       topology.  (Contributed by ML, 1-Aug-2020.) $)
    relowlssretop $p |- ( topGen ` ran (,) ) C_ ( topGen ` I ) $=
      ( vx vi vz cioo wss cv wcel wa wi cr co wceq cxr wb cmnf wbr clt adantl
      vo va vb crn ctg cfv wrex wral cxp cpw wfn ioof ffn ovelrn mp2b cpnf elxr
      w3o cle crab simpr elioore anim12ci icoreelrn syl leidd w3a elioo1 syldan
      wf rexrd biimpa simp3d cico 3anim1i elico1 syl2an biimprd syl2im icoreval
      rexr eleq2d sylibd mp3and nfrab1 nfcv iooval anbi1d pm5.32i rabid anbi12i
      nfv ad2antll anim12i anim2i 3anass sylibr simprl xrltletr sylc simprr jca
      simpl sylanbrc adantlr adantr sylan2b sylbi expr ssrd sylanl2 eleq2 sseq1
      eleqtrrd anbi12d syl12anc ancom1s expl caddc peano2re syl2anc ltp1d jca32
      rspcev breq2 breq1 elrab simpll elioopnf simplbda xrltletrd mp2and syl5bi
      c1 oveq2 anbi2d imbi12d cuni cvv unirnioo ex sseq2d mpbiri nltmnf intnand
      impl eliooord nsyl pm2.21d impd ancomsd mpcom 3jaoi expdimp sseq2 rexbidv
      ancoms syl5ibrcom rexlimivv rgen rgenw iooex icoreunrn eqtr3i tgss2 mp2an
      rnex raleqi bitr4i mpbir ) FUDZUEUFAUEUFGZCHZUAHZIZUVMDHZIZUVPUVNGZJZDAUG
      ZKZUAUVKUHZCLUHZUWBCLUWAUAUVKUVNUVKIZUVNUBHZUCHZFMZNZUCOUGUBOUGZUWAOOUIZL
      UJZFVJFUWJUKUWDUWIPULUWJUWKFUMUBUCOOUVNFUNUOUWHUWAUBUCOOUWEOIZUWFOIZJZUWA
      UWHUVMUWGIZUVQUVPUWGGZJZDAUGZKZUWMUWLUWSUWMUWLUWOUWRUWMUWFLIZUWFUPNZUWFQN
      ZURUWLUWOJZUWRKZUWFUQUWTUXDUXAUXBUWTUWLUWOUWRUWLUWTUWOUWRUWLUWTJZUWOJZUVM
      EHZUSRZUXGUWFSRZJZELUTZAIZUVMUXKIZUXKUWGGZUWRUXFUVMLIZUWTJZUXLUXEUWTUWOUX
      OUWLUWTVAZUVMUWEUWFVBZVCZEUVMUWFABVDVEUXFUXOUVMUVMUSRZUVMUWFSRZUXMUWOUXOU
      XEUXRTUWOUXTUXEUWOUVMUXRVFTUXFUVMOIZUWEUVMSRZUYAUXEUWOUYBUYCUYAVGZUWLUWTU
      WMUWOUYDPUXEUWFUXQVKUWEUWFUVMVHVIVLVMUXFUXOUXTUYAVGZUVMUVMUWFVNMZIZUXMUXF
      UXPUYEUYBUXTUYAVGZUYGUXSUXOUYBUXTUYAUVMWAZVOUXPUYGUYHUXOUYBUWMUYGUYHPUWTU
      YIUWFWAZUVMUWFUVMVPVQVRVSUXFUYFUXKUVMUXFUXPUYFUXKNUXSEUVMUWFVTVEWBWCWDUWT
      UWLUWMUWOUXNUYJUWNUWOJZEUXKUWGUYKEWLUXJELWEEUWGWFUWNUWOUXGUXKIZUXGUWGIZUW
      NUWOUYLJZJUWNUVMUYCUYAJZCOUTZIZUYLJZJUYMUWNUYNUYRUWNUWOUYQUYLUWNUWGUYPUVM
      CUWEUWFWGWBWHWIUYRUWNUYBUYOJZUXGLIZUXJJZJZUYMUYQUYSUYLVUAUYOCOWJUXJELWJWK
      UWNVUBJUXGUWEUXGSRZUXIJZEOUTZUWGUWLVUBUXGVUEIZUWMUWLVUBJZUXGOIZVUDVUFVUAV
      UHUWLUYSVUAUXGUYTUXJXCVKZWMVUGVUCUXIVUGUWLUYBVUHVGZUYCUXHJZVUCVUGUWLUYBVU
      HJZJVUJVUBVULUWLUYSUYBVUAVUHUYBUYOXCVUIWNWOUWLUYBVUHWPWQVUBVUKUWLUYSUYCVU
      AUXHUYBUYCUYAWRUYTUXHUXIWRWNTUWEUVMUXGWSWTVUAUXIUWLUYSUYTUXHUXIXAWMXBVUDE
      OWJXDXEUWNUWGVUENVUBEUWEUWFWGXFXNXGXHXIXJXKUWQUXMUXNJDUXKAUVPUXKNUVQUXMUW
      PUXNUVPUXKUVMXLUVPUXKUWGXMXOYDXPXQXRUXAUWLUWOUWRUWLUXAUWOUWRUWLUXAJZUWOJZ
      UXHUXGUVMYNXSMZSRZJZELUTZAIZUVMVURIZVURUWGGZJZUWRVUNUXOVUOLIZVUSUWOUXOVUM
      UXRTZVUNUXOVVCVVDUVMXTVEEUVMVUOABVDYAUXAUWLUWOVVBUXAUWLUWOVVBUXAUXCVVBKUW
      LUVMUWEUPFMZIZJZVUTVURVVEGZJZKVVGVUTVVHVVGUXOUXTUVMVUOSRZJZJVUTVVGUXOUXTV
      VJVVFUXOUWLUVMUWEUPVBTZVVGUVMVVLVFVVGUVMVVLYBYCVUQVVKEUVMLUXGUVMNUXHUXTVU
      PVVJUXGUVMUVMUSYEUXGUVMVUOSYFXOYGWQVVGEVURVVEVVGEWLVUQELWEEVVEWFUXGVURIUY
      TVUQJZVVGUXGVVEIZVUQELWJVVGVVMVVNVVGVVMJZUYTVUCVVNVVGUYTVUQWRZVVOUWEUVMUX
      GUWLVVFVVMYHVVOUVMVVGUXOVVMVVLXFVKVVOUXGVVPVKVVGUYCVVMUWLVVFUXOUYCUWEUVMY
      IYJXFVVMUXHVVGUYTUXHVUPWRTYKVVGUYTVUCJZVVNKZVVMUWLVVRVVFUWLVVNVVQUWEUXGYI
      VRXFXFYLUUAYMXJXBUXAUXCVVGVVBVVIUXAUWOVVFUWLUXAUWGVVEUVMUWFUPUWEFYOZWBYPU
      XAVVAVVHVUTUXAUWGVVEVURVVSUUBYPYQUUCUUFXQUWQVVBDVURAUVPVURNUVQVUTUWPVVAUV
      PVURUVMXLUVPVURUWGXMXOYDYAXQXRUXBUWLUWOUWRUWLUXBUWOUWRUXOUWLUXBJZUWOJZUWR
      UWOUXOVVTUXRTUXOUYBVWAUWRKUYIVWAVVTUVMUWEQFMZIZJUYBUWRVVTUWOVWCUXBUWOVWCP
      UWLUXBUWGVWBUVMUWFQUWEFYOWBTWIUYBVWCVVTUWRUYBVWCVVTUWRUYBVWCVVTUWRKUYBUYC
      UVMQSRZJVWCUYBVWDUYCUVMUUDUUEUVMUWEQUUGUUHUUIUUJUUKYMVEUULXQXRUUMXHUUNUUQ
      UWHUVOUWOUVTUWRUVNUWGUVMXLUWHUVSUWQDAUWHUVRUWPUVQUVNUWGUVPUUOYPUUPYQUURUU
      SXHUUTUVAUVLUWBCUVKYRZUHZUWCUVKYSIVWEAYRZNUVLVWFPFUVBUVGLVWEVWGYTABUVCUVD
      CUADUVKAYSUVEUVFUWBCLVWEYTUVHUVIUVJ $.
  $}

  ${
    $d I a b c i o x $.  $d a b m n x z $.  $d a b c x y $.  $d c i x z $.
    relowlpssretop.1 $e |- I = ( [,) " ( RR X. RR ) ) $.
    $( The lower limit topology on the reals is strictly finer than the
       standard topology.  (Contributed by ML, 2-Aug-2020.) $)
    relowlpssretop $p |- ( topGen ` ran (,) ) C. ( topGen ` I ) $=
      ( vc vi vx wceq c2 cr wcel c1 clt wbr wn wa wsbc wi cico wb ax-mp cxr crn
      vo vz va vb vy vm vn cioo ctg cfv wpss wss wne relowlssretop 2re 1lt2 cvv
      cv co ovex sbcan 1re sbcg sbcbr123 csbvarg csbconstg breq12i breqi 3bitri
      csb anbi12i bitri sbceqg csbov123 oveq123i eqtri eqeq12i wrex simpr simpl
      wral cle leid jccir rexr elico2 sylan2 df-3an syl6bb baibd biimpar adantr
      w3a mpdan adantl mpbird cop cxp cima rexpssxrxp opelxpi sseldi cdm df-ico
      eleq2 cpw ixxf fdmi eleq2i wfun crab mpt2fun funfvima mpan syl5ibrcom imp
      sylbir wex sylib a1i sylan ex rexrd con2d syl2anc annim sylnibr mpbi rspe
      jca rexnal cuni mp2an sbcth sbcimg sbcel1v mpbir mpbiran2 3imtr3i 3eltr4g
      sylc df-ov eleq1 wfn wf ffn ovelrn wal iooelexlt df-rex elmpt2cl2 elioore
      ioof simp2 syl6bi com23 mpdi elicore xrlenlt biimpd intnand syl6ib eximdv
      mt2d exnal dfss2 imnan sseq1 anbi12d mtbiri sseq2 anbi2d notbid rexlimivv
      jcad mpd sylbi com12 ralrimiv ralnex adantlr anbi2i syl exp41 com4l imp41
      an12 ixxex imaexg eqeltri icoreunrn unirnioo eqtr3i tgss2 raleqi syl2anbr
      bitr4i eqid eqsbc3 anbi1i eqimss mto nesymir df-pss mpbir2an ) UIUAZUJUKZ
      AUJUKZULUXHUXIUMUXHUXIUNABUOUXIUXHUXIUXHFUXIUXHUMZGHIZJGKLZUXJMZUPUQCUSZH
      IZJUXNKLZNZCGOZUXMCGOZUXKUXLNZUXMUXQUXMPZCGOZUXRUXSPZUXKUYBUPUYACGHUXQDUS
      ZJUXNQUTZFZNZDUYEOZUXMDUYEOZUXQUXMUYGUXMPZDUYEOZUYHUYIPZUYEURIZUYKJUXNQVA
      ZUYJDUYEURUXQUXOEUSZUXNKLZNZEJOZUYDUYOUXNQUTZFZEJOZUXMUYFUYRUXOEJOZUYPEJO
      ZNUXQUXOUYPEJVBVUBUXOVUCUXPJHIZVUBUXORVCUXOEJHVDSVUCEJUYOVKZEJUXNVKZEJKVK
      ZLJUXNVUGLUXPEJUYOUXNKVEVUEJVUFUXNVUGVUDVUEJFVCEJHVFSZVUDVUFUXNFVCEJUXNHV
      GSZVHJUXNVUGKVUDVUGKFVCEJKHVGSVIVJVLVMVUAEJUYDVKZEJUYSVKZFZUYFVUDVUAVULRV
      CEJUYDUYSHVNSVUJUYDVUKUYEVUDVUJUYDFVCEJUYDHVGSVUKVUEVUFEJQVKZUTUYEEJUYOUX
      NQVOVUEVUFJUXNVUMQVUHVUIVUDVUMQFVCEJQHVGSVPVQVRVMUYRVUANUYQUYTNZEJOZUXMUY
      QUYTEJVBVUNUYOHIZNZEJOZUXMEJOZVUOUXMVUQUXMPZEJOZVURVUSPZVUDVVAVCVUTEJHVUQ
      UYOUYDIZUYOUBUSZIZVVDUYDUMZNZUBUXGVSZPZDAWBZEHWBZUXJVUQVVJMZEHVSZVVKMVUQV
      UPVVLVVMVUNVUPVTUXOUYPUYTVUPVVLVUPUXOUYPUYTVVLVUPUXOUYPUYTVVLVUPUXONZUYPN
      ZUYTNZVVIMZDAVSZVVLVVPUYDAIZVVQNZVVRVVPVVCVVSVVHMZNZNZVVTVVPVVCVWBVVPVVCU
      YOUYSIZVVOVWDUYTVVNVWDUYPVVNVUPUYOUYOWCLZNZVWDUYPRVVNVUPVWEVUPUXOWAUYOWDW
      EVVNVWDVWFUYPVVNVWDVUPVWEUYPWNZVWFUYPNUXOVUPUXNTIZVWDVWGRUXNWFUYOUXNUYOWG
      WHVUPVWEUYPWIWJWKWOWLWMUYTVVCVWDRVVOUYDUYSUYOXFWPWQVVNUYTVWBUYPVVNUYTNVVS
      VWAVVNUYTVVSVVNVVSUYTUYSAIVVNUYOUXNWRZQUKZQHHWSZWTZUYSAVVNVWITTWSZIZVWIVW
      KIZVWJVWLIZVVNVWKVWMVWIXAUYOUXNHHXBZXCVWQVWNVWIQXDZIZVWOVWPPZVWRVWMVWIVWM
      TXGQECUCWCKQECUCXEZXHXIXJQXKVWSVWTECTTUYOUCUSZWCLVXBUXNKLNUCTXLZQVXAXMVWK
      VWIQXNXOXRUUBUYOUXNQUUCBUUAUYDUYSAUUDXPXQUYTVWAVVNUYTVVGMZUBUXGWBVWAUYTVX
      DUBUXGVVDUXGIZUYTVXDVXEVVDUDUSZUEUSZUIUTZFZUETVSUDTVSZUYTVXDPZUIVWMUUEZVX
      EVXJRVWMHXGZUIUUFVXLUUNVWMVXMUIUUGSUDUETTVVDUIUUHSVXIVXKUDUETTVXIVXKPVXFT
      IVXGTINVXIVXDUYTVVEVVDUYSUMZNZMVXIVXOUYOVXHIZVXHUYSUMZNZVXPVXQMPVXRMVXPUF
      USZVXHIZVXSUYSIZPZUFUUIZVXQVXPVYBMZUFXSZVYCMVXPVXTVXSUYOKLZNZUFXSZVYEVXPV
      YFUFVXHVSVYHUFVXFVXGUYOUUJVYFUFVXHUUKXTVXPVYGVYDUFVXPVYGVXTVYAMZNVYDVXPVY
      GVXTVYIVYGVXTPVXPVXTVYFWAYAVXPVYAVYGVXPVYAVYGMVXPVYANZVYFVXTVYJVYFUYOVXSW
      CLZVXPVYAVYKVXPVYAVWHVYKECTTVXCUYOUXNQVXSVXAUULVXPVWHVYAVYKVXPVWHVYAVYKPV
      XPVWHNVYAVXSHIZVYKVXSUXNKLZWNZVYKVXPVUPVWHVYAVYNRUYOVXFVXGUUMZUYOUXNVXSWG
      YBVYLVYKVYMUUOUUPYCUUQUURXQVYJUYOTIZVXSTIZVYFVYKMPVXPVYPVYAVXPUYOVYOYDWMV
      YJVXSVXPVUPVYAVYLVYOUYOUXNVXSUUSYBYDVYPVYQNZVYKVYFVYRVYKVYFMUYOVXSUUTUVAY
      EYFUVEUVBYCYEUVPVXTVYAYGUVCUVDUVQVYBUFUVFXTUFVXHUYSUVGYHVXPVXQUVHYIVXIVVE
      VXPVXNVXQVVDVXHUYOXFVVDVXHUYSUVIUVJUVKUYTVVGVXOUYTVVFVXNVVEUYDUYSVVDUVLUV
      MUVNXPYAUVOUVRUVSUVTVVGUBUXGUWAXTWPYKUWBYKVWCVVSVVCVWANZNVVTVVCVVSVWAUWHV
      YSVVQVVSVVCVVHYGUWCVMXTVVQDAYJUWDVVIDAYLXTUWEUWFUWGVVLEHYJYFVVJEHYLXTUXJV
      VJEAYMZWBZVVKAURIVYTUXGYMZFUXJWUARAVWLURBQURIVWLURIUGUHUCWCKQUGUHUCXEUWIQ
      VWKURUWJSUWKHVYTWUBABUWLZUWMUWNEDUBAUXGURUWOYNVVJEHVYTWUCUWPUWRYHYOSVUDVV
      AVVBRVCVUQUXMEJHYPSYIVURVUOVUPEJOZWUDVUDVCEJHYQYRVUNVUPEJVBYSVUDVUSUXMRVC
      UXMEJHVDSYTXRUWQYOSUYMUYKUYLRUYNUYGUXMDUYEURYPSYIUYHUXQDUYEOZUYFDUYEOZNZU
      XQUXQUYFDUYEVBWUGUXQWUFWUFUYEUYEFZUYEUWSUYMWUFWUHRUYNDUYEUYEURUWTSYRWUEUX
      QWUFUYMWUEUXQRUYNUXQDUYEURVDSUXAYSVMUYMUYIUXMRUYNUXMDUYEURVDSYTYOSUXKUYBU
      YCRUPUXQUXMCGHYPSYIUXRUXOCGOZUXPCGOZNUXTUXOUXPCGVBWUIUXKWUJUXLCGHYQWUJCGJ
      VKZCGUXNVKZCGKVKZLJGWUMLUXLCGJUXNKVEWUKJWULGWUMUXKWUKJFUPCGJHVGSUXKWULGFU
      PCGHVFSVHJGWUMKUXKWUMKFUPCGKHVGSVIVJVLVMUXKUXSUXMRUPUXMCGHVDSYTYNUXIUXHUX
      BUXCUXDUXHUXIUXEUXF $.
  $}

  ${
    sucneqond.1 $e |- ( ph -> X = suc Y ) $.
    sucneqond.2 $e |- ( ph -> Y e. On ) $.
    $( Inequality of an ordinal set with its successor.  Does not use the axiom
       of regularity.  (Contributed by ML, 18-Oct-2020.) $)
    sucneqond $p |- ( ph -> X =/= Y ) $=
      ( wceq wcel csuc con0 sucidg syl eleqtrrd wn word suceloni eqeltrd ordirr
      eloni eleq1 biimprd con3d syl5com mt2d neqned ) ABCABCFZCBGZACCHZBACIGZCU
      GGECIJKDLABBGZMZUEUFMABNZUJABIGUKABUGIDAUHUGIGECOKPBRKBQKUEUFUIUEUIUFBCBS
      TUAUBUCUD $.
  $}

  ${
    sucneqoni.1 $e |- X = suc Y $.
    sucneqoni.2 $e |- Y e. On $.
    $( Inequality of an ordinal set with its successor.  Does not use the axiom
       of regularity.  (Contributed by ML, 18-Oct-2020.) $)
    sucneqoni $p |- X =/= Y $=
      ( wne wtru csuc wceq a1i con0 wcel sucneqond trud ) ABEFABABGHFCIBJKFDILM
      $.
  $}

  $( If an ordinal number has a predecessor, then it is successor of that
     predecessor.  (Contributed by ML, 17-Oct-2020.) $)
  onsucuni3 $p |- ( ( B e. On /\ B =/= (/) /\ -. Lim B ) ->
                    B = suc U. B ) $=
    ( con0 wcel c0 wne wlim wn w3a cuni csuc wceq wo eloni 3ad2ant1 orduniorsuc
    word syl orcomd wa mpnanrd simp2 df-lim 3expb con3i 3ad2ant3 wi orcom df-or
    biimpri sylbb sylc ) ABCZADEZAFZGZHZAAIZJKZAUQKZLZUSGZURUPUSURUPAPZUSURLZUL
    UMVBUOAMNZAOQRUPUMUSULUMUOUAUPVBUMUSSZVDUOULVBVESZGUMVFUNVBUMUSUNUNVBUMUSHA
    UBUIUCUDUETTUTVCVAURUFURUSUGUSURUHUJUK $.

  $( The ordinal number ` 1o ` is the predecessor of the ordinal number
     ` 2o ` .  (Contributed by ML, 19-Oct-2020.) $)
  1oequni2o $p |- 1o = U. 2o $=
    ( c1o csuc c2o cuni wceq df-2o con0 wcel c0 wne wlim wn 2on 2on0 2onn nnlim
    com ax-mp onsucuni3 mp3an eqtr3i suc11reg mpbi ) ABZCDZBZEAUEECUDUFFCGHCIJC
    KLZCUFEMNCQHUGOCPRCSTUAAUEUBUC $.

  $( If an ordinal number has a predecessor, the value of the recursive
     definition generator at that number in terms of its predecessor.
     (Contributed by ML, 17-Oct-2020.) $)
  rdgsucuni $p |- ( ( B e. On /\ B =/= (/) /\ -. Lim B ) ->
         ( rec ( F , I ) ` B ) = ( F ` ( rec ( F , I ) ` U. B ) ) ) $=
    ( con0 wcel c0 wne wlim wn w3a crdg cfv cuni csuc onsucuni3 fveq2d 3ad2ant1
    wceq onuni rdgsuc syl eqtrd ) ADEZAFGZAHIZJZABCKZLAMZNZUGLZUHUGLBLZUFAUIUGA
    OPUFUHDEZUJUKRUCUDULUEASQCUHBTUAUB $.

  ${
    $d A x $.  $d B x $.  $d F x $.  $d M x $.  $d N x $.  $d X x $.
    $( If a recursive function with an initial value ` A ` at step ` N ` is
       equal to itself with an initial value ` B ` at step ` M ` , then every
       finite number of successor steps will also be equal.  (Contributed by
       ML, 21-Oct-2020.) $)
    rdgeqoa $p |- ( ( N e. On /\ M e. On /\ X e. _om ) ->
         ( ( rec ( F , A ) ` N ) = ( rec ( F , B ) ` M ) ->
             ( rec ( F , A ) ` ( N +o X ) )
           = ( rec ( F , B ) ` ( M +o X ) ) ) ) $=
      ( vx com wcel w3a cfv wceq coa co wi fveq2d c0 wsbc wa csb simp3 cv eleq1
      con0 3anbi3d oveq2 eqeq12d imbi2d imbi12d peano1 wal oa0 eqcomd eqeqan12d
      crdg biimpd biantru anbi2i 3anass bitr4i syl6bbr mpbiri ax-gen sbc6g csuc
      peano2b 3anbi3i imbi1i nnon oacl anim12i 3impdir rdgsuc sylan9eqr adantrr
      ax-mp fveq2 ad2antll eqtr4d sylan2 ancoms syl3anl3 onasuc 3adant2 3adant1
      adantr 3eqtr4d ex imim2d sylbir a2i sylbi sbcimg sbc3an sbcg wb 3anbi123d
      sbcel1v syl5bb sbceqg csbfv12 csbconstg csbov123 csbvarg oveq123d fveq12d
      a1i syl5eq bitrd syl5ibr findes vtoclga mpcom ) FHIZEUDIZDUDIZXNJZECAUOZK
      ZDCBUOZKZLZEFMNZXRKZDFMNZXTKZLZOZXOXPXNUAXOXPGUBZHIZJZYBEYIMNZXRKZDYIMNZX
      TKZLZOZOZXQYHOGFHYIFLZYKXQYQYHYSYJXNXOXPYIFHUCUEYSYPYGYBYSYMYDYOYFYSYLYCX
      RYIFEMUFPYSYNYEXTYIFDMUFPUGUHUIYRGQHIZYRGQRZUJYTUUAYIQLZYROZGUKUUCGUUBYRX
      OXPSZYBEQMNZXRKZDQMNZXTKZLZOZOUUDYBUUIXOXPXSUUFYAUUHXOUUFXSXOUUEEXREULPUM
      XPUUHYAXPUUGDXTDULPUMUNUPUUBYKUUDYQUUJUUBYKXOXPYTJZUUDUUBYJYTXOXPYIQHUCUE
      UUDXOXPYTSZSUUKXPUULXOYTXPUJUQURXOXPYTUSUTVAUUBYPUUIYBUUBYMUUFYOUUHUUBYLU
      UEXRYIQEMUFPUUBYNUUGXTYIQDMUFPUGUHUIVBVCYRGQHVDVBVPYJYIVEZHIZYRYRGUUMRZOY
      IVFZYRUUOUUNXOXPUUNJZYBEUUMMNZXRKZDUUMMNZXTKZLZOZOZYRUUQYQOUVDYKUUQYQYJUU
      NXOXPUUPVGZVHUUQYQUVCUUQYKYQUVCOUVEYKYPUVBYBYKYPUVBYKYPSYLVEZXRKZYNVEZXTK
      ZUUSUVAYJXOXPYIUDIZYPUVGUVILZYIVIYPXOXPUVJJZUVKUVLYPYLUDIZYNUDIZSZUVKXOUV
      JXPUVOXOUVJSUVMXPUVJSUVNEYIVJDYIVJVKVLYPUVOSUVGYOCKZUVIYPUVMUVGUVPLUVNUVM
      YPUVGYMCKUVPAYLCVMYMYOCVQVNVOUVNUVIUVPLYPUVMBYNCVMVRVSVTWAWBYKUUSUVGLZYPX
      OYJUVQXPXOYJSUURUVFXREYIWCPWDWFYKUVAUVILZYPXPYJUVRXOXPYJSUUTUVHXTDYIWCPWE
      WFWGWHWIWJWKWLUUNUUOYKGUUMRZYQGUUMRZOUVDYKYQGUUMHWMUUNUVSUUQUVTUVCUVSXOGU
      UMRZXPGUUMRZYJGUUMRZJUUNUUQXOXPYJGUUMWNUUNUWAXOUWBXPUWCUUNXOGUUMHWOXPGUUM
      HWOUWCUUNWPUUNGUUMHWRXGWQWSUUNUVTYBGUUMRZYPGUUMRZOUVCYBYPGUUMHWMUUNUWDYBU
      WEUVBYBGUUMHWOUUNUWEGUUMYMTZGUUMYOTZLUVBGUUMYMYOHWTUUNUWFUUSUWGUVAUUNUWFG
      UUMYLTZGUUMXRTZKUUSGUUMYLXRXAUUNUWHUURUWIXRGUUMXRHXBUUNUWHGUUMETZGUUMYITZ
      GUUMMTZNUURGUUMEYIMXCUUNUWJEUWKUUMUWLMGUUMMHXBZGUUMEHXBGUUMHXDZXEXHXFXHUU
      NUWGGUUMYNTZGUUMXTTZKUVAGUUMYNXTXAUUNUWOUUTUWPXTGUUMXTHXBUUNUWOGUUMDTZUWK
      UWLNUUTGUUMDYIMXCUUNUWQDUWKUUMUWLMUWMGUUMDHXBUWNXEXHXFXHUGXIUIXIUIXIXJWLX
      KXLXM $.
  $}

  $( Membership in a Cartesian product.  This version requires no quantifiers
     or dummy variables.  See also ~ elxp7 .  (Contributed by ML,
     19-Oct-2020.) $)
  elxp8 $p |- ( A e. ( B X. C )
                <-> ( ( 1st ` A ) e. B /\ A e. ( _V X. C ) ) ) $=
    ( cxp wcel c1st cfv cvv xp1st wss ssv ssid xpss12 mp2an sseli jca c2nd xpss
    wa adantl xp2nd anim2i elxp7 sylanbrc impbii ) ABCDZEZAFGBEZAHCDZEZSZUGUHUJ
    ABCIUFUIABHJCCJUFUIJBKCLBHCCMNOPUKAHHDZEZUHAQGCEZSUGUJUMUHUIULAHCROTUJUNUHA
    HCUAUBABCUCUDUE $.

  $c ^^ $.

  $( Extend the definition of a class to include Cartesian exponentiation. $)
  cfinxp $a class ( U ^^ N ) $.

  ${
    $d U n x y $.  $d N n x y $.
    $( Define Cartesian exponentiation on a class.

       Note that this definition is limited to finite exponents, since it is
       defined using nested ordered pairs.  If tuples of infinite length are
       needed, or if they might be needed in the future, use ~ df-ixp or
       ~ df-map instead.  The main advantage of this definition is that it
       integrates better with functions and relations.  For example if ` R ` is
       a subset of ` ( A ^^ 2o ) ` , then ~ df-br can be used on it, and
       ~ df-fv can also be used, and so on.

       It's also worth keeping in mind that ` ( ( U ^^ M ) X. ( U ^^ N ) ) ` is
       generally not equal to ` ( U ^^ ( M +o N ) ) ` .

       This definition is technical.  Use ~ finxp1o and ~ finxpsuc for a more
       standard recursive experience.  (Contributed by ML, 16-Oct-2020.) $)
    df-finxp $a |- ( U ^^ N ) =
                     { y | ( N e. _om /\ (/) =
                       ( rec ( ( n e. _om , x e. _V |->
                                 if ( ( n = 1o /\ x e. U ) ,
                                   (/) ,
                                   if ( x e. ( _V X. U ) ,
                                       <. U. n , ( 1st ` x ) >. ,
                                       <. n , x >. ) ) )
                         , <. N , y >. ) ` N ) ) } $.

    dffinxpf.1 $e |- F = ( n e. _om , x e. _V |->
                                 if ( ( n = 1o /\ x e. U ) ,
                                   (/) ,
                                   if ( x e. ( _V X. U ) ,
                                       <. U. n , ( 1st ` x ) >. ,
                                       <. n , x >. ) ) ) $.
    $( This theorem is the same as the definition ~ df-finxp , except that the
       large function is replaced by a class variable for brevity.
       (Contributed by ML, 24-Oct-2020.) $)
    dffinxpf $p |- ( U ^^ N ) =
                     { y | ( N e. _om /\ (/) =
                       ( rec ( F , <. N , y >. ) ` N ) ) } $=
      ( cfinxp com wcel c0 cvv cv wceq wa cfv cop cif crdg cab c1o cxp df-finxp
      cuni c1st cmpt2 rdgeq1 ax-mp fveq1i eqeq2i anbi2i abbii eqtr4i ) CFHFIJZK
      FDAILDMZUANAMZCJOKUPLCUBJUOUDUPUEPQUOUPQRRUFZFBMQZSZPZNZOZBTUNKFEURSZPZNZ
      OZBTABCDFUCVFVBBVEVAUNVDUTKFVCUSEUQNVCUSNGUREUQUGUHUIUJUKULUM $.
  $}

  ${
    $d U n x y $.  $d V n x y $.  $d N n x y $.  $d U n x $.
    $( Equality theorem for Cartesian exponentiation.  (Contributed by ML,
       19-Oct-2020.) $)
    finxpeq1 $p |- ( U = V -> ( U ^^ N ) = ( V ^^ N ) ) $=
      ( vn vx vy wceq com wcel c0 cvv cv wa cxp cfv cop cif cmpt2 crdg cab cuni
      c1o c1st cfinxp eleq2 anbi2d xpeq2 eleq2d ifbid ifbieq2d mpt2eq3dv rdgeq1
      syl fveq1d eqeq2d abbidv df-finxp 3eqtr4g ) ACGZBHIZJBDEHKDLZUBGZELZAIZMZ
      JVCKANZIZVAUAVCUCOPZVAVCPZQZQZRZBFLPZSZOZGZMZFTUTJBDEHKVBVCCIZMZJVCKCNZIZ
      VHVIQZQZRZVMSZOZGZMZFTABUDCBUDUSVQWHFUSVPWGUTUSVOWFJUSBVNWEUSVLWDGVNWEGUS
      DEHKVKWCUSVEVSVJWBJUSVDVRVBACVCUEUFUSVGWAVHVIUSVFVTVCACKUGUHUIUJUKVMVLWDU
      LUMUNUOUFUPEFADBUQEFCDBUQUR $.
  $}

  ${
    $d U n x y $.  $d M n x y $.  $d N n x y $.
    $( Equality theorem for Cartesian exponentiation.  (Contributed by ML,
       19-Oct-2020.) $)
    finxpeq2 $p |- ( M = N -> ( U ^^ M ) = ( U ^^ N ) ) $=
      ( vn vx vy wceq com wcel c0 cvv cv cfv cop cif crdg cab cfinxp df-finxp
      wa c1o cxp cuni c1st cmpt2 eleq1 rdgeq2 syl fveq12d eqeq2d anbi12d abbidv
      opeq1 id 3eqtr4g ) BCGZBHIZJBDEHKDLZUAGELZAITJUSKAUBIURUCUSUDMNURUSNOOUEZ
      BFLZNZPZMZGZTZFQCHIZJCUTCVANZPZMZGZTZFQABRACRUPVFVLFUPUQVGVEVKBCHUFUPVDVJ
      JUPBCVCVIUPVBVHGVCVIGBCVAUMVBVHUTUGUHUPUNUIUJUKULEFADBSEFADCSUO $.
  $}

  ${
    $d A n y z $.  $d N n x y z $.  $d U n y z $.  $d V n y z $.  $d n x y z $.
    $( Distribute proper substitution through Cartesian exponentiation.
       (Contributed by ML, 25-Oct-2020.) $)
    csbfinxpg $p |- ( A e. V -> [_ A / x ]_ ( U ^^ N )
                            = ( [_ A / x ]_ U ^^ [_ A / x ]_ N ) ) $=
      ( vn vz vy wcel csb com c0 cvv wceq wa cop cif wsbc csbconstg syl5eq cuni
      cfinxp c1o cxp c1st cfv cmpt2 crdg df-finxp csbeq2i sbcan sbcel1g sbceq2g
      cv cab csbfv12 csbrdgg csbmpt22g csbif sbcg sbcel12 eleq1d syl5bb anbi12d
      xpeq1d eleq12d ifbieq12d mpt2eq123dv csbopg opeq2d rdgeq12 syl2anc fveq1d
      csbxp eqtrd eqeq2d bitrd abbidv csbab 3eqtr4g ) BEIZABCDUBZJABDKIZLDFGKMF
      UNZUCNZGUNZCIZOZLWFMCUDZIZWDUAWFUEUFPZWDWFPZQZQZUGZDHUNZPZUHZUFZNZOZHUOZJ
      ZABCJZABDJZUBZABWBXBGHCFDUIUJWAXAABRZHUOXEKIZLXEFGKMWEWFXDIZOZLWFMXDUDZIZ
      WKWLQZQZUGZXEWPPZUHZUFZNZOZHUOXCXFWAXGXTHXGWCABRZWTABRZOWAXTWCWTABUKWAYAX
      HYBXSABDKEULWAYBLABWSJZNXSABLWSEUMWAYCXRLWAYCXEABWRJZUFXRABDWRUPWAXEYDXQW
      AYDABWOJZABWQJZUHZXQABWOWQEUQWAYEXONYFXPNYGXQNWAYEFGABKJZABMJZABWNJZUGXOA
      FGBWNEKMURWAFGYHYIYJKMXNABKESABMESZWAYJWHABRZABLJZABWMJZQXNWHABLWMUSWAYLX
      JYMYNLXMYLWEABRZWGABRZOWAXJWEWGABUKWAYOWEYPXIWEABEUTYPABWFJZXDIWAXIABWFCV
      AWAYQWFXDABWFESZVBVCVDVCABLESWAYNWJABRZABWKJZABWLJZQXMWJABWKWLUSWAYSXLYTU
      UAWKWLYSYQABWIJZIWAXLABWFWIVAWAYQWFUUBXKYRWAUUBYIXDUDXKABMCVNWAYIMXDYKVET
      VFVCABWKESABWLESVGTVGTVHVOWAYFXEABWPJZPXPABDWPEVIWAUUCWPXEABWPESVJVOYFXPY
      EXOVKVLVOVMTVPVQVDVCVRXAAHBVSGHXDFXEUIVTT $.
  $}

  ${
    $d U n x $.  $d X n x $.
    $( Lemma for ` ^^ ` recursion theorems.  (Contributed by ML,
       17-Oct-2020.) $)
    finxpreclem1 $p |- ( X e. U -> (/) =
              ( ( n e. _om , x e. _V |->
                    if ( ( n = 1o /\ x e. U ) ,
                      (/) ,
                      if ( x e. ( _V X. U ) ,
                          <. U. n , ( 1st ` x ) >. ,
                          <. n , x >. ) ) )
                ` <. 1o , X >. ) ) $=
      ( wcel c1o cop com cvv cv wceq wa c0 cxp cuni c1st cfv cif cmpt2 a1i syl6
      co df-ov eqidd eleq1a anim2d iftrue imp 1onn elex 0ex ovmpt2d syl5reqr )
      DBEZFDGCAHICJZFKZAJZBEZLZMUQIBNEUOOUQPQGUOUQGRZRZSZQFDVBUBMFDVBUCUNCAFDHI
      VAMVBIUNVBUDUNUPUQDKZLZVAMKZUNVDUSVEUNVCURUPDBUQUEUFUSMUTUGUAUHFHEUNUITDB
      UJMIEUNUKTULUM $.
  $}

  ${
    $d U n x $.  $d X n x $.
    $( Lemma for ` ^^ ` recursion theorems.  (Contributed by ML,
       17-Oct-2020.) $)
    finxpreclem2 $p |- ( ( X e. _V /\ -. X e. U ) -> -. (/) =
              ( ( n e. _om , x e. _V |->
                    if ( ( n = 1o /\ x e. U ) ,
                      (/) ,
                      if ( x e. ( _V X. U ) ,
                          <. U. n , ( 1st ` x ) >. ,
                          <. n , x >. ) ) )
                ` <. 1o , X >. ) ) $=
      ( cvv wcel wn wa c0 c1o cop com cv wceq c1st cfv wne nfv nfcv nfim cxp wi
      cuni cif cmpt2 nfmpt22 nffv nfne nfmpt21 1onn elexi co df-ov csb 0ex opex
      ifex csbex ovmpt2s mp3an13 adantr csbeq1a sylan9eqr adantl eleq1 biimprcd
      eqid notbid pm3.14 olcs syl6 iffalse imp wo ifeqor vuniex fvex opnzi neii
      eqeq1 mtbiri vex jaoi mp1i neqned eqnetrd adantrl syl5eqner ancom2s an12s
      eqnetrrd exp31 vtoclef vtoclefex anabsi5 necomd neneqd ) DEFZDBFZGZHZIJDK
      ZCALECMZJNZAMZBFZHZIXEEBUAFZXCUCZXEOPZKZXCXEKZUDZUDZUEZPZXAXPIWRWTXPIQZXA
      XQUBZADEXAXQAXAARAXPIAXBXOCALEXNUFAXBSUGAISUHTXEDNZXRUBCJXSXRCXSCRXAXQCXA
      CRCXPICXBXOCALEXNUICXBSUGCISUHTTJLUJUKXDXSXAXQWRXDXSHZWTXQWRWTXTXQWRWTXTH
      ZHZXPJDXOULZIJDXOUMYBYCCJADXNUNZUNZIWRYCYENZYAJLFWRYEEFYFUJCJYDADXNXGIXMU
      OXHXKXLXIXJUPXCXEUPUQUQURURCAJDLEXNXOEXOVGUSUTVAYAYEIQWRYAXNYEIXTXNYENWTX
      SXDXNYDYEADXNVBCJYDVBVCVDWTXSXNIQXDWTXSHZXNXMIWTXSXNXMNZWTXSXGGZYHWTXSXFG
      ZYIXSYJWTXSXFWSXEDBVEVHVFXDGYJYIXDXFVIVJVKXGIXMVLVKVMYGXMIXMXKNZXMXLNZVNX
      MINZGZYGXHXKXLVOYKYNYLYKYMXKINXKIXIXJCVPXEOVQVRVSXMXKIVTWAYLYMXLINXLIXCXE
      CWBAWBVRVSXMXLIVTWAWCWDWEWFWGWKVDWFWHWIWJWLWMWNWOWPWQ $.
  $}

  ${
    $d U n x y $.
    $( The value of Cartesian exponentiation at zero.  (Contributed by ML,
       24-Oct-2020.) $)
    finxp0 $p |- ( U ^^ (/) ) = (/) $=
      ( vy vn vx c0 cfinxp cv wcel cop wceq 0ex vex opnzi nesymi com cvv c1o wa
      cfv cif cxp cuni c1st cmpt2 crdg peano1 df-finxp abeq2i mpbiran opex rdg0
      eqeq2i bitri mtbir nel0 ) BAEFZBGZUPHZEEUQIZJZUSEEUQKBLMNUREECDOPCGZQJDGZ
      AHREVBPAUAHVAUBVBUCSIVAVBITTUDZUSUESZJZUTUREOHZVEUFVFVERBUPDBACEUGUHUIVDU
      SEUSVCEUQUJUKULUMUNUO $.
  $}

  ${
    $d U n x y $.
    $( The value of Cartesian exponentiation at one.  (Contributed by ML,
       17-Oct-2020.) $)
    finxp1o $p |- ( U ^^ 1o ) = U $=
      ( vy vn vx c1o cv wcel com c0 cvv wceq wa cuni cfv cop cif 1onn wn fveq2i
      eqtri cfinxp cxp c1st cmpt2 crdg a1i finxpreclem1 con0 wne wlim 1on nnlim
      ax-mp rdgsucuni mp3an csuc df-1o unieqi 0elon onunisuci opex rdg0 syl6eqr
      1n0 df-finxp abeq2i sylanbrc mpbiran eqcomi finxpreclem2 neqned syl5eqner
      vex necomd neneqd mpan con4i sylbi impbii eqriv ) AAEUAZBAWABFZAGZWBWAGZW
      CEHGZIECDHJCFZEKDFZAGLIWGJAUBGWFMWGUCNOWFWGOPPUDZEWBOZUEZNZKZWDWEWCQUFWCI
      WIWHNZWKDACWBUGWKEMZWJNZWHNZWMEUHGEIUIEUJRZWKWPKUKVDWEWQQEULUMEWHWIUNUOWO
      WIWHWOIWJNWIWNIWJWNIUPZMIEWRUQURIUSUTTSWIWHEWBVAVBTSTZVCWEWLLBWADBACEVEVF
      ZVGWDWLWCWDWEWLQWTVHWCWLWBJGZWCRZWLRBVMXAXBLZIWKXCWKIXCWKWMIWKWMWSVIXCIWM
      XCIWMDACWBVJVKVNVLVNVOVPVQVRVSVTVI $.
  $}

  ${
    $d N n x $.  $d U n x $.  $d X n x $.
    finxpreclem3.1 $e |- F =
        ( n e. _om , x e. _V |-> if ( ( n = 1o /\ x e. U ) , (/) ,
        if ( x e. ( _V X. U ) , <. U. n , ( 1st ` x ) >. , <. n , x >. ) ) ) $.
    $( Lemma for ` ^^ ` recursion theorems.  (Contributed by ML,
       20-Oct-2020.) $)
    finxpreclem3 $p |- ( ( ( N e. _om /\ 2o C_ N ) /\ X e. ( _V X. U ) ) ->
                        <. U. N , ( 1st ` X ) >. =
                        ( F ` <. N , X >. ) ) $=
      ( com wcel c2o wss wa cvv cop cfv c1st c1o wceq c0 cif cxp co df-ov cmpt2
      cuni cv a1i eqeq1 eleq1 bi2anan9 adantl unieq adantr fveq2 opeq12d opeq12
      wb ifbieq12d ifbieq2d wpss wne csuc sssucid sseqtr4i 1on sucneqoni necomi
      df-2o df-pss mpbir2an ssnpss mt2 mtbiri intnanrd iffalsed iftrue sylan9eq
      sseq2 con2i sylan9eqr adantlll simpll elex opex ovmpt2d syl5reqr ) EHIZJE
      KZLZFMBUAZIZLZEFNZDOEFDUBEUEZFPOZNZEFDUCWLCAEFHMCUFZQRZAUFZBIZLZSWSWJIZWQ
      UEZWSPOZNZWQWSNZTZTZWPDMDCAHMXHUDRWLGUGWHWKWQERZWSFRZLZXHWPRWGXKWHWKLXHEQ
      RZFBIZLZSWKWPWMTZTZWPXKXAXNXGXOSXIWRXLXJWTXMWQEQUHWSFBUIUJXKXBWKXEXFWPWMX
      JXBWKUQXIWSFWJUIUKXKXCWNXDWOXIXCWNRXJWQEULUMXJXDWORXIWSFPUNUKUOWQWSEFUPUR
      USWHWKXPXOWPWHXNSXOWHXLXMXLWHXLWHJQKZXQQJUTZXRQJKQJVAQQVBJQVCVHVDJQJQVHVE
      VFVGQJVIVJJQVKVLEQJVRVMVSVNVOWKWPWMVPVQVTWAWGWHWKWBWKFMIWIFWJWCUKWPMIWLWN
      WOWDUGWEWF $.
  $}

  ${
    $d N n x $.  $d N o $.  $d U n x $.  $d n x y $.
    finxpreclem4.1 $e |- F =
        ( n e. _om , x e. _V |-> if ( ( n = 1o /\ x e. U ) , (/) ,
        if ( x e. ( _V X. U ) , <. U. n , ( 1st ` x ) >. , <. n , x >. ) ) ) $.
    $( Lemma for ` ^^ ` recursion theorems.  (Contributed by ML,
       23-Oct-2020.) $)
    finxpreclem4 $p |- ( ( ( N e. _om /\ 2o C_ N ) /\ y e. ( _V X. U ) ) ->
                ( rec ( F , <. N , y >. ) ` N ) =
                 ( rec ( F , <. U. N , ( 1st ` y ) >. ) ` U. N ) ) $=
      ( vo com wcel c2o cfv c1o coa co wceq con0 ax-mp c0 adantr wss wa cvv cxp
      cv cuni c1st cop crdg crio csuc 2onn nnon wsbc wreu 2on oawordeu riotasbc
      mpanl1 syl csb wb riotaex sbceq1g csbov2g oveq2i eqtri eqeq1i bitri sylib
      csbvarg sylan simpl eqeltrd riotacl wn riotaund 0elon pm2.61i nnarcl mpan
      syl6eqel biantrur syl6bbr nnacom sylancr df-2o 1onn nnasuc sylancl syl5eq
      3eqtr3d wne wlim sucidg eleqtrri ssel ne0i adantl nnlim onsucuni3 syl3anc
      mpi suceq cfn word ordom ordelss nnfi nnunifi syl2anc nnacl peano4 fveq2d
      mpbid finxpreclem3 fveq2i rdgsuc opex rdg0 3eqtri syl6reqr 2on0 rdgsucuni
      df-1o mp3an 1oequni2o eqtr4i 3eqtr4g wi 1on rdgeqoa mp3an12 sylc 3eqtr2rd
      ) FIJZKFUAZUBZBUEZUCCUDJZUBZFUFZEUUBYSUGLZUHZUIZLZMKHUEZNOZFPZHQUJZNOZUUE
      LZKUUJNOZEFYSUHZUIZLZFUUOLZYRUUFUULPYTYRUUBUUKUUEYRUUBUKZUUKUKZPZUUBUUKPZ
      YRFUUJMNOZUKZUURUUSYRUUMUUJKNOZFUVCYRKIJZUUJIJZUUMUVDPULYRUUMIJZUVFYRUUMF
      IYPFQJZYQUUMFPZFUMZUVHYQUBZUUIHUUJUNZUVIUVKUUIHQUOZUVLKQJZUVHYQUVMUPHKFUQ
      USUUIHQURUTUVLHUUJUUHVAZFPZUVIUUJUCJZUVLUVPVBUUIHQVCZHUUJUUHFUCVDRUVOUUMF
      UVOKHUUJUUGVAZNOZUUMUVQUVOUVTPUVRHUUJKUUGNUCVERUVSUUJKNUVQUVSUUJPUVRHUUJU
      CVKRVFVGVHVIVJVLZYPYQVMVNUUJQJZUVGUVFVBUVMUWBUUIHQVOUVMVPUUJSQUUIHQVQVRWB
      VSUWBUVGUVEUVFUBZUVFUVNUWBUVGUWCVBUPKUUJVTWAUVEUVFULWCWDRVJZKUUJWEWFUWAYR
      UVDUUJMUKZNOZUVCKUWEUUJNWGVFYRUVFMIJZUWFUVCPUWDWHUUJMWIWJWKWLYRUVHFSWMZFW
      NVPZFUURPYPUVHYQUVJTYQUWHYPYQMFJZUWHYQMKJUWJMUWEKUWGMUWEJWHMIWORWGWPKFMWQ
      XCFMWRUTWSYPUWIYQFWTTFXAXBYRUVBUUKPZUVCUUSPYRUVFUWGUWKUWDWHUUJMWEWJUVBUUK
      XDUTWLYRUUBIJZUUKIJZUUTUVAVBYPUWLYQYPFIUAZFXEJUWLIXFYPUWNXGIFXHWAFXIFXJXK
      TYRUWGUVFUWMWHUWDMUUJXLWFUUBUUKXMXKXOXNTUUAUVFKUUOLZMUUELZPZUUPUULPZYRUVF
      YTUWDTUUAMUUOLZELZUUDELZUWOUWPUUAUWSUUDEUUAUUDUUNELZUWSACDEFYSGXPUWSSUKZU
      UOLZSUUOLZELZUXBMUXCUUOYEXQSQJZUXDUXFPVRUUNSEXRRUXEUUNEUUNEFYSXSXTXQYAYBX
      NUWOKUFZUUOLZELZUWTUVNKSWMKWNVPZUWOUXJPUPYCUVEUXKULKWTRKEUUNYDYFUWSUXIEMU
      XHUUOYGXQXQYHUWPUXCUUELZSUUELZELZUXAMUXCUUEYEXQUXGUXLUXNPVRUUDSEXRRUXMUUD
      EUUDEUUBUUCXSXTXQYAYIUVNMQJUVFUWQUWRYJUPYKUUNUUDEMKUUJYLYMYNYRUUPUUQPYTYR
      UUMFUUOUWAXNTYO $.
  $}

  ${
    $d n x $.
    finxpreclem5.1 $e |- F =
        ( n e. _om , x e. _V |-> if ( ( n = 1o /\ x e. U ) , (/) ,
        if ( x e. ( _V X. U ) , <. U. n , ( 1st ` x ) >. , <. n , x >. ) ) ) $.
    $( Lemma for ` ^^ ` recursion theorems.  (Contributed by ML,
       24-Oct-2020.) $)
    finxpreclem5 $p |- ( ( n e. _om /\ 1o e. n ) ->
             ( -. x e. ( _V X. U ) -> ( F ` <. n , x >. ) = <. n , x >. ) ) $=
      ( cv com wcel c1o wa cvv cxp wn cop cfv wceq c0 cif opex ifex co cuni vex
      df-ov 0ex ovmpt4g mp3an23 ad2antrr 1on onirri eleq2 mtbiri con2i intnanrd
      c1st iffalsed adantl iffalse sylan9eq eqtrd syl5eqr ex ) CFZGHZIVCHZJZAFZ
      KBLHZMZVCVGNZDOZVJPVFVIJZVKVCVGDUAZVJVCVGDUDVLVMVCIPZVGBHZJZQVHVCUBZVGUOO
      ZNZVJRZRZVJVDVMWAPZVEVIVDVGKHWAKHWBAUCVPQVTUEVHVSVJVQVRSVCVGSTTCAGKWADKEU
      FUGUHVFVIWAVTVJVEWAVTPVDVEVPQVTVEVNVOVNVEVNVEIIHIUIUJVCIIUKULUMUNUPUQVHVS
      VJURUSUTVAVB $.

    $d F m o $.  $d N x n y $.  $d U m n o x $.  $d U n x y $.
    $( Lemma for ` ^^ ` recursion theorems.  (Contributed by ML,
       24-Oct-2020.) $)
    finxpreclem6 $p |- ( ( N e. _om /\ 1o e. N ) ->
                           ( U ^^ N ) C_ ( _V X. U ) ) $=
      ( vy vm com wcel c1o wa wi cv wceq wn c0 cop cfv fveq2 cfinxp cvv cxp wss
      vo eleq1 eleq2 anbi12d anass crdg nfv cuni c1st cmpt2 nfmpt22 nfcxfr nfcv
      cif nfrdg nffv nfeq2 nfn notbid anbi2d opeq2 rdgeq2 fveq1d eqeq2d imbi12d
      nfim syl vex csuc eqeq1d opex rdg0 con0 nnon rdgsuc sylan9eq finxpreclem5
      a1i imp expcomd finds2 imbi2d mpbiri equcoms vtocle syl5bir anabsi5 opnzi
      expl wne eqnetrd necomd neneqd chvar intnand adantl wb abid opeq1 fveq12d
      cab id abbidv dffinxpf syl6eqr eleq2d syl5rbbr adantr mtbird syl5bi con4d
      ex expdimp ssrdv sylbird vtocleg ) EIJZKEJZBEUAZUBBUCZUDZYAYBLZYEMCEICNZE
      OZYFYGIJZKYGJZLZYEYHYIYAYJYBYGEIUFZYGEKUGUHYHYKYEYHYKLZGYCYDYMGNZYDJZYNYC
      JZYHYKYOPZYPPZYKYQLYIYJYQLZLZYHYRYIYJYQUIYHYTYRYHYTLYPYIQYGDYGYNRZUJZSZOZ
      LZYTUUEPYHYTUUDYIYIYJANZYDJZPZLZLZQYGDYGUUFRZUJZSZOZPZMYTUUDPZMAGYTUUPAYT
      AUKUUDAAQUUCAYGUUBAUUADADCAIUBYGKOUUFBJLQUUGYGULUUFUMSRUUKURURZUNFCAIUBUU
      QUOUPAUUAUQUSAYGUQUTVAVBVJUUFYNOZUUJYTUUOUUPUURUUIYSYIUURUUHYQYJUURUUGYOU
      UFYNYDUFVCVDVDUURUUNUUDUURUUMUUCQUURYGUULUUBUURUUKUUAOUULUUBOUUFYNYGVEUUK
      UUADVFVKVGVHVCVIUUJQUUMUUJUUMQUUJUUMUUKQYIUUIUUMUUKOZUUJYKUUHLZYIUUSYIYJU
      UHUIYIUUTUUSMZMZHYGCVLZUVBCHYGHNZOZUVBUVDIJZUUTUVDUULSZUUKOZMZMUVHQUULSZU
      UKOZUENZUULSZUUKOZUVLVMZUULSZUUKOZUUTHUEUVDQOUVGUVJUUKUVDQUULTVNUVDUVLOUV
      GUVMUUKUVDUVLUULTVNUVDUVOOUVGUVPUUKUVDUVOUULTVNUVKUUTUUKDYGUUFVOVPWBUVLIJ
      ZUVNUUTUVQUVRUVNUUTUVQUVRUVNLUUTUVPUUKDSZUUKUVRUVNUVPUVMDSZUVSUVRUVLVQJUV
      PUVTOUVLVRUUKUVLDVSVKUVMUUKDTVTYKUUHUVSUUKOABCDFWAWCVTWMWDWEUVEYIUVFUVAUV
      IYGUVDIUFUVEUUSUVHUUTUVEUUMUVGUUKYGUVDUULTVNWFVIWGWHWIWJWKUUKQWNUUJYGUUFU
      VCAVLWLWBWOWPWQWRWSWTYHYPUUEXAYTUUEYNUUEGXEZJYHYPUUEGXBYHUWAYCYNYHUWAYAQE
      DEYNRZUJZSZOZLZGXEYCYHUUEUWFGYHYIYAUUDUWEYLYHUUCUWDQYHYGEUUBUWCYHUUAUWBOU
      UBUWCOYGEYNXCUUAUWBDVFVKYHXFXDVHUHXGAGBCDEFXHXIXJXKXLXMXPXNXQXOXRXPXSXTWK
      $.
  $}

  ${
    $d F z $.  $d N n x y z $.  $d U n x y z $.
    finxpsuclem.1 $e |- F =
        ( n e. _om , x e. _V |-> if ( ( n = 1o /\ x e. U ) , (/) ,
        if ( x e. ( _V X. U ) , <. U. n , ( 1st ` x ) >. , <. n , x >. ) ) ) $.
    $( Lemma for ~ finxpsuc .  (Contributed by ML, 24-Oct-2020.) $)
    finxpsuclem $p |- ( ( N e. _om /\ 1o C_ N ) ->
                            ( U ^^ suc N ) = ( ( U ^^ N ) X. U ) ) $=
      ( vy vz wcel c1o wss wa cfv wceq wb c0 cop crdg ad2antrr syl com csuc cxp
      cfinxp cv c1st cvv peano2 adantr word 1on onordi ordsseleq sylancr biimpa
      wo nnord wi elelsuc a1i sucidg eleq1 syl5ibrcom jaod finxpreclem6 syl2anc
      mpd sselda c2o df-2o ordsucsssuc syl5eqss finxpreclem4 syl21anc ordunisuc
      cuni simpr opeq1 rdgeq2 fveq12d eqeq2d biantrurd dffinxpf abeq2i syl6rbbr
      eqtrd fvex opeq2 fveq1d anbi2d elab2 baib 3bitr4d biimpd impancom ex jcad
      exbiri impd ancomsd impbid elxp8 syl6bbr eqrdv ) EUAIZJEKZLZGBEUBZUDZBEUD
      ZBUCZXGGUEZXIIZXLUFMZXJIZXLUGBUCZIZLZXLXKIXGXMXRXGXMXOXQXGXMXOXGXMLXQXOXG
      XIXPXLXGXHUAIZJXHIZXIXPKXEXSXFEUHZUIXGJEIZJENZUPZXTXEXFYDXEJUJZEUJZXFYDOJ
      UKULZEUQZJEUMUNUOXEYDXTURXFXEYBXTYCYBXTURXEJEUSUTXEXTYCEXHIEUAVAJEXHVBVCV
      DUIVGABCDXHFVEVFVHZXGXQXMXOXGXQLZXMXOYJPXHDXHXLQRMZNZPEDEXNQZRZMZNZXMXOYJ
      YKYOPYJYKXHVPZDYQXNQZRZMZYOYJXSVIXHKZXQYKYTNXEXSXFXQYASXGUUAXQXGVIJUBZXHV
      JXEXFUUBXHKZXEYEYFXFUUCOYGYHJEVKUNUOVLUIXGXQVQAGBCDXHFVMVNXEYTYONXFXQXEYQ
      EYSYNXEYQENZYSYNNZXEYFUUDYHEVOTZUUDYRYMNUUEYQEXNVRYRYMDVSTTUUFVTSWFWAXEXM
      YLOXFXQXEYLXSYLLZXMXEXSYLYAWBUUGGXIAGBCDXHFWCWDWESXEXOYPOXFXQXOXEYPXEPEDE
      HUEZQZRZMZNZLXEYPLHXNXJXLUFWGUUHXNNZUULYPXEUUMUUKYOPUUMEUUJYNUUMUUIYMNUUJ
      YNNUUHXNEWHUUIYMDVSTWIWAWJAHBCDEFWCWKWLSWMZWNWOVGWPXGXMXQYIWPWQXGXQXOXMXG
      XQXOXMXGXQXMXOUUNWRWSWTXAXLXJBXBXCXD $.
  $}

  ${
    $d N x y $.  $d U x y $.
    $( The value of Cartesian exponentiation at a successor.  (Contributed by
       ML, 24-Oct-2020.) $)
    finxpsuc $p |- ( ( N e. _om /\ N =/= (/) ) ->
                            ( U ^^ suc N ) = ( ( U ^^ N ) X. U ) ) $=
      ( vx vy com wcel c0 wne wa c1o wss csuc cfinxp cxp wceq syl cvv cop cif
      cv word nnord ordge1n0 biimprd imdistani cuni c1st cmpt2 eqid finxpsuclem
      wb cfv ) BEFZBGHZIUMJBKZIABLMABMANOUMUNUOUMUOUNUMBUAUOUNUKBUBBUCPUDUECADD
      CEQDTZJOCTZAFIGUQQANFUPUFUQUGULRUPUQRSSUHZBURUIUJP $.
  $}

  $( The value of Cartesian exponentiation at two.  (Contributed by ML,
     19-Oct-2020.) $)
  finxp2o $p |- ( U ^^ 2o ) = ( U X. U ) $=
    ( c2o cfinxp c1o csuc cxp wceq df-2o finxpeq2 com wcel c0 wne 1onn finxpsuc
    ax-mp 1n0 mp2an finxp1o xpeq1i 3eqtri ) ABCZADEZCZADCZAFZAAFBUCGUBUDGHABUCI
    PDJKDLMUDUFGNQADORUEAAASTUA $.

  $( The value of Cartesian exponentiation at three.  (Contributed by ML,
     24-Oct-2020.) $)
  finxp3o $p |- ( U ^^ 3o ) = ( ( U X. U ) X. U ) $=
    ( c3o cfinxp c2o csuc cxp wceq df-3o finxpeq2 com wcel c0 wne 2onn finxpsuc
    ax-mp 2on0 mp2an finxp2o xpeq1i 3eqtri ) ABCZADEZCZADCZAFZAAFZAFBUCGUBUDGHA
    BUCIPDJKDLMUDUFGNQADORUEUGAASTUA $.

  ${
    $d N n x y $.  $d U n x y $.
    $( Cartesian exponentiation when the exponent is not a natural number
       defaults to the empty set.  (Contributed by ML, 24-Oct-2020.) $)
    finxpnom $p |- ( -. N e. _om -> ( U ^^ N ) = (/) ) $=
      ( vy vn vx com wcel wn cfinxp cv c0 cvv c1o wceq cxp cfv cop cif sylnibr
      wa cuni c1st cmpt2 crdg cab simpl con3i abid df-finxp eleq2i eq0rdv ) BFG
      ZHZCABIZUMCJZULKBDEFLDJZMNEJZAGTKUQLAOGUPUAUQUBPQUPUQQRRUCBUOQUDPNZTZCUEZ
      GZUOUNGUMUSVAUSULULURUFUGUSCUHSUNUTUOECADBUIUJSUK $.
  $}

  ${
    $d N n $.  $d m n $.
    $( Cartesian exponentiation of the empty set to any power is the empty set.
       (Contributed by ML, 24-Oct-2020.) $)
    finxp00 $p |- ( (/) ^^ N ) = (/) $=
      ( vn vm com wcel c0 cfinxp wceq cv finxpeq2 eqeq1d finxp0 c1o suceq df-1o
      csuc syl6eqr syl finxp1o syl6eq adantl wne wa cxp finxpsuc xp0 pm2.61dane
      a1d finds finxpnom pm2.61i ) ADEFAGZFHZFBIZGZFHFFGZFHFCIZGZFHZFUQPZGZFHZU
      MBCAUNFHUOUPFFUNFJKUNUQHUOURFFUNUQJKUNUTHUOVAFFUNUTJKUNAHUOULFFUNAJKFLUQD
      EZVBUSVCVBUQFUQFHZVBVCVDVAFMGZFVDUTMHVAVEHVDUTFPMUQFNOQFUTMJRFSTUAVCUQFUB
      UCVAURFUDFFUQUEURUFTUGUHUIFAUJUK $.
  $}

$( (End of ML's mathbox.) $)
$( End $[ set-mbox-ml.mm $] $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Wolf Lammen
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  ${
    wl-section-prop.hyp $e |- ph $.
    $( Intuitionistic logic is now developed separately, so we need not first
       focus on intuitionally valid axioms ~ ax-1 and ~ ax-2 any longer.

       Alternatively, I start from Jan Lukasiewicz's axiom system here, i.e.
       ~ ax-mp , ~ ax-luk1 , ~ ax-luk2 and ~ ax-luk3 .  I rather copy this
       system than use ~ luk-1 to ~ luk-3 , since the latter are theorems,
       while we need axioms here.

       (Contributed by Wolf Lammen, 23-Feb-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    wl-section-prop $p |- ph $=
      (  ) B $.
  $}

  $( 1 of 3 axioms for propositional calculus due to Lukasiewicz.  Copy of
     ~ luk-1 and ~ imim1 , but introduced as an axiom.  It focuses on a basic
     property of a valid implication, namely that the consequent has to be true
     whenever the antecedent is.  So if ` ph ` and ` ps ` are somehow
     parametrized expressions, then ` ph -> ps ` states that ` ph ` strengthen
     ` ps ` , in that ` ph ` holds only for a (often proper) subset of those
     parameters making ` ps ` true.  We easily accept, that when ` ps ` is
     stronger than ` ch ` and, at the same time ` ph ` is stronger than
     ` ps ` , then ` ph ` must be stronger than ` ch ` .  This transitivity is
     expressed in this axiom.

     A particular result of this strengthening property comes into play if the
     antecedent holds unconditionally.  Then the consequent must hold
     unconditionally as well.  This specialization is the foundational idea
     behind logical conclusion.  Such conclusion is best expressed in so-called
     immediate versions of this axiom like ~ imim1i or ~ syl .  Note that these
     forms are weaker replacements (i.e. just frequent specialization) of the
     closed form presented here, hence a mere convenience.

     We can identify in this axiom up to three antecedents, followed by a
     consequent.  The number of antecedents is not really fixed; the fewer we
     are willing to "see", the more complex the consequent grows.  On the other
     side, since ` ch ` is a variable capable of assuming an implication
     itself, we might find even more antecedents after some substitution of
     ` ch ` .  This shows that the ideas of antecedent and consequent in
     expressions like this depends on, and can adapt to, our current
     interpretation of the whole expression.

     In this axiom, up to two antecedents happen to be of complex nature
     themselves, i.e. are an embedded implication.  Logically, this axiom is a
     compact notion of simpler expressions, which I will later coin implication
     chains.  Herein all antecedents and the consequent appear as simple
     variables, or their negation.  Any propositional expression is equivalent
     to a set of such chains.  This axiom, for example, is dissected into
     following chains, from which it can be recovered losslessly:

     ` ( ps -> ( ch -> ( ph -> ch ) ) ) ` ;
     ` ( -. ph -> ( ch -> ( ph -> ch ) ) ) ` ;
     ` ( ps -> ( -. ps -> ( ph -> ch ) ) ) ` ;
     ` ( -. ph -> ( -. ps -> ( ph -> ch ) ) ) ` .  (Contributed by Wolf Lammen,
     17-Dec-2018.)  (New usage is discouraged.) $)
  ax-luk1 $a |- ( ( ph -> ps ) -> ( ( ps -> ch ) -> ( ph -> ch ) ) ) $.

  $( 2 of 3 axioms for propositional calculus due to Lukasiewicz.  Copy of
     ~ luk-2 or ~ pm2.18 , but introduced as an axiom.  The core idea behind
     this axiom is, that if something can be implied from both an antecedent,
     and separately from its negation, then the antecedent is irrelevant to the
     consequent, and can safely be dropped.  This is perhaps better seen from
     the following slightly extended version (related to ~ pm2.65 ):

     ` ( ( ph -> ph ) -> ( ( -. ph -> ph ) -> ph ) ) ` .  (Contributed by Wolf
     Lammen, 17-Dec-2018.)  (New usage is discouraged.) $)
  ax-luk2 $a |- ( ( -. ph -> ph ) -> ph ) $.

  $( 3 of 3 axioms for propositional calculus due to Lukasiewicz.  Copy of
     ~ luk-3 and ~ pm2.24 , but introduced as an axiom.

     One might think that the similar ~ pm2.21 ` ( -. ph -> ( ph -> ps ) ) ` is
     a valid replacement for this axiom.  But this is not true, ~ ax-3 is not
     derivable from this modification.

     This can be shown by designing carefully operators ` -. ` and ` -> ` on a
     finite set of primitive statements.  In propositional logic such
     statements are ` T. ` and ` F. ` , but we can assume more and other
     primitives in our universe of statements. So we denote our primitive
     statements as phi0 , phi1 and phi2.  The actual meaning of the statements
     are not important in this context, it rather counts how they behave under
     our operations ` -. ` and ` -> ` , and which of them we assume to hold
     unconditionally (phi1, phi2).  For our disproving model, I give that
     information in tabular form below.  The interested reader may check per
     hand, that all possible interpretations of ~ ax-mp , ~ ax-luk1 , ~ ax-luk2
     and ~ pm2.21 result in phi1 or phi2, meaning they always hold.  But for
     ~ wl-ax3 we can find a counter example resulting in phi0, not a statement
     always true.

     The verification of a particular set of axioms in a given model is tedious
     and error prone, so I wrote a computer program, first checking this for
     me, and second, hunting for a counter example.  Here is the result, after
     9165 fruitlessly computer generated models:

     <HTML>
     <br><br>
     ax-3 fails for phi2, phi2<br>
     number of statements: 3<br>
     always true phi1 phi2
     <br><br>
     Negation is defined as<br>
     ----------------------------------------------------------------------
     <table border="1">
     <tr><td>-. phi0</td><td>-. phi1</td><td>-. phi2</td></tr>
     <tr><td>phi1</td><td>phi0</td><td>phi1</td></tr></table>
     <br>
     Implication is defined as<br>
     ----------------------------------------------------------------------
     <table border=1>
     <tr><td>p->q</td><td>q: phi0</td><td>q: phi1</td><td>q: phi2</td></tr>
     <tr><td>p: phi0</td><td>phi1</td><td>phi1</td><td>phi1</td></tr>
     <tr><td>p: phi1</td><td>phi0</td><td>phi1</td><td>phi1</td></tr>
     <tr><td>p: phi2</td><td>phi0</td><td>phi0</td><td>phi0</td></tr>
     </table><br></HTML>
     (Contributed by Wolf Lammen, 17-Dec-2018.)  (New usage is discouraged.) $)
  ax-luk3 $a |- ( ph -> ( -. ph -> ps ) ) $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1. Bootstrapping
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    wl-section-boot.hyp $e |- ph $.
    $( In this section, I provide the first steps needed for convenient
       proving.  The presented theorems follow no common concept other than
       being useful in themselves, and apt to rederive ~ ax-1 , ~ ax-2 and
       ~ ax-3 .  (Contributed by Wolf Lammen, 17-Dec-2018.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-section-boot $p |- ph $=
      (  ) B $.
  $}

  ${
    wl-imim1i.1 $e |- ( ph -> ps ) $.
    $( Inference adding common consequents in an implication, thereby
       interchanging the original antecedent and consequent.  Copy of ~ imim1i
       with a different proof.  (Contributed by Wolf Lammen, 17-Dec-2018.) $)
    wl-imim1i $p |- ( ( ps -> ch ) -> ( ph -> ch ) ) $=
      ( wi ax-luk1 ax-mp ) ABEBCEACEEDABCFG $.
  $}

  ${
    wl-syl.1 $e |- ( ph -> ps ) $.
    wl-syl.2 $e |- ( ps -> ch ) $.
    $( An inference version of the transitive laws for implication ~ luk-1 .
       Copy of ~ syl with a different proof.  (Contributed by Wolf Lammen,
       17-Dec-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    wl-syl $p |- ( ph -> ch ) $=
      ( wi wl-imim1i ax-mp ) BCFACFEABCDGH $.
  $}

  ${
    wl-syl5.1 $e |- ( ph -> ps ) $.
    wl-syl5.2 $e |- ( ch -> ( ps -> th ) ) $.
    $( A syllogism rule of inference.  The first premise is used to replace the
       second antecedent of the second premise.  Copy of ~ syl5 with a
       different proof.  (Contributed by Wolf Lammen, 17-Dec-2018.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-syl5 $p |- ( ch -> ( ph -> th ) ) $=
      ( wi wl-imim1i wl-syl ) CBDGADGFABDEHI $.
  $}

  ${
    wl-pm2.18d.1 $e |- ( ph -> ( -. ps -> ps ) ) $.
    $( Deduction based on reductio ad absurdum.  Copy of ~ pm2.18d with a
       different proof.  (Contributed by Wolf Lammen, 17-Dec-2018.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-pm2.18d $p |- ( ph -> ps ) $=
      ( wn wi ax-luk2 wl-syl ) ABDBEBCBFG $.
  $}

  ${
    wl-con4i.1 $e |- ( -. ph -> -. ps ) $.
    $( Inference rule.  Copy of ~ con4i with a different proof.  (Contributed
       by Wolf Lammen, 17-Dec-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    wl-con4i $p |- ( ps -> ph ) $=
      ( wn ax-luk3 wl-syl5 wl-pm2.18d ) BAADBDBACBAEFG $.
  $}

  ${
    wl-pm2.24i.1 $e |- ph $.
    $( Inference rule.  Copy of ~ pm2.24i with a different proof.  (Contributed
       by Wolf Lammen, 17-Dec-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    wl-pm2.24i $p |- ( -. ph -> ps ) $=
      ( wn wi ax-luk3 ax-mp ) AADBECABFG $.
  $}

  ${
    wl-a1i.1 $e |- ph $.
    $( Inference rule.  Copy of ~ a1i with a different proof.  (Contributed by
       Wolf Lammen, 17-Dec-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    wl-a1i $p |- ( ps -> ph ) $=
      ( wn wl-pm2.24i wl-con4i ) ABABDCEF $.
  $}

  ${
    wl-mpi.1 $e |- ps $.
    wl-mpi.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A nested modus ponens inference.  Copy of ~ mpi with a different proof.
       (Contributed by Wolf Lammen, 17-Dec-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    wl-mpi $p |- ( ph -> ch ) $=
      ( wn wl-a1i wl-syl5 wl-pm2.18d ) ACCFZBACBJDGEHI $.
  $}

  ${
    wl-imim2i.1 $e |- ( ph -> ps ) $.
    $( Inference adding common antecedents in an implication.  Copy of ~ imim2i
       with a different proof.  (Contributed by Wolf Lammen, 17-Dec-2018.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-imim2i $p |- ( ( ch -> ph ) -> ( ch -> ps ) ) $=
      ( wi ax-luk1 wl-mpi ) CAEABECBEDCABFG $.
  $}

  ${
    wl-syl6.1 $e |- ( ph -> ( ps -> ch ) ) $.
    wl-syl6.2 $e |- ( ch -> th ) $.
    $( A syllogism rule of inference.  The second premise is used to replace
       the consequent of the first premise.  Copy of ~ syl6 with a different
       proof.  (Contributed by Wolf Lammen, 17-Dec-2018.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-syl6 $p |- ( ph -> ( ps -> th ) ) $=
      ( wi wl-imim2i wl-syl ) ABCGBDGECDBFHI $.
  $}

  $( ~ ax-3 proved from Lukasiewicz's axioms.  (Contributed by Wolf Lammen,
     17-Dec-2018.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  wl-ax3 $p |- ( ( -. ph -> -. ps ) -> ( ps -> ph ) ) $=
    ( wn wi ax-luk3 ax-luk1 wl-syl5 ax-luk2 wl-syl6 ) ACZBCZDZBJADZABKADLMBAEJK
    AFGAHI $.

  $( ~ ax-1 proved from Lukasiewicz's axioms.  (Contributed by Wolf Lammen,
     17-Dec-2018.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  wl-ax1 $p |- ( ph -> ( ps -> ph ) ) $=
    ( wn wi ax-luk3 wl-ax3 wl-syl ) AACBCZDBADAHEABFG $.

  $( This theorem, called "Assertion," can be thought of as closed form of
     modus ponens ~ ax-mp .  Theorem *2.27 of [WhiteheadRussell] p. 104.  Copy
     of ~ pm2.27 with a different proof.  (Contributed by Wolf Lammen,
     17-Dec-2018.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  wl-pm2.27 $p |- ( ph -> ( ( ph -> ps ) -> ps ) ) $=
    ( wi wn wl-ax1 ax-luk1 wl-syl ax-luk2 wl-syl6 ) AABCZBDZBCZBAKACJLCAKEKABFG
    BHI $.

  ${
    wl-com12.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference that swaps (commutes) antecedents in an implication.  Copy of
       ~ com12 with a different proof.  (Contributed by Wolf Lammen,
       17-Dec-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    wl-com12 $p |- ( ps -> ( ph -> ch ) ) $=
      ( wi wl-pm2.27 wl-syl5 ) ABCEBCDBCFG $.
  $}

  $( From a wff and its negation, anything follows.  Theorem *2.21 of
     [WhiteheadRussell] p. 104.  Also called the Duns Scotus law.  Copy of
     ~ pm2.21 with a different proof.  (Contributed by Wolf Lammen,
     17-Dec-2018.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  wl-pm2.21 $p |- ( -. ph -> ( ph -> ps ) ) $=
    ( wn ax-luk3 wl-com12 ) AACBABDE $.

  ${
    wl-con1i.1 $e |- ( -. ph -> ps ) $.
    $( A contraposition inference.  Copy of ~ con1i with a different proof.
       (Contributed by Wolf Lammen, 17-Dec-2018.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    wl-con1i $p |- ( -. ps -> ph ) $=
      ( wn wl-pm2.21 wl-syl5 wl-pm2.18d ) BDZAADBHACBAEFG $.
  $}

  ${
    wl-ja.1 $e |- ( -. ph -> ch ) $.
    wl-ja.2 $e |- ( ps -> ch ) $.
    $( Inference joining the antecedents of two premises.  Copy of ~ ja with a
       different proof.  (Contributed by Wolf Lammen, 17-Dec-2018.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-ja $p |- ( ( ph -> ps ) -> ch ) $=
      ( wi wn wl-con1i wl-imim2i wl-syl5 wl-pm2.18d ) ABFZCCGALCACDHBCAEIJK $.
  $}

  $( A closed form of syllogism (see ~ syl ).  Theorem *2.05 of
     [WhiteheadRussell] p. 100.  Copy of ~ imim2 with a different proof.
     (Contributed by Wolf Lammen, 17-Dec-2018.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  wl-imim2 $p |- ( ( ph -> ps ) -> ( ( ch -> ph ) -> ( ch -> ps ) ) ) $=
    ( wi ax-luk1 wl-com12 ) CADABDCBDCABEF $.

  ${
    wl-a1d.1 $e |- ( ph -> ps ) $.
    $( Deduction introducing an embedded antecedent.  Copy of ~ imim2 with a
       different proof.  (Contributed by Wolf Lammen, 17-Dec-2018.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-a1d $p |- ( ph -> ( ch -> ps ) ) $=
      ( wi wl-ax1 wl-syl ) ABCBEDBCFG $.
  $}

  $( ~ ax-2 proved from Lukasiewicz's axioms.  (Contributed by Wolf Lammen,
     17-Dec-2018.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  wl-ax2 $p |- ( ( ph -> ( ps -> ch ) )
      -> ( ( ph -> ps ) -> ( ph -> ch ) ) ) $=
    ( wi wn wl-pm2.21 wl-a1d wl-imim2 wl-ja ) ABCDABDZACDZDAEKJACFGBCAHI $.

  $( Principle of identity.  Theorem *2.08 of [WhiteheadRussell] p. 101.  Copy
     of ~ id with a different proof.  (Contributed by Wolf Lammen,
     17-Dec-2018.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  wl-id $p |- ( ph -> ph ) $=
    ( wn wi ax-luk3 ax-luk2 wl-syl ) AABACAAADAEF $.

  $( Converse of double negation.  Theorem *2.14 of [WhiteheadRussell] p. 102.
     In classical logic (our logic) this is always true.  In intuitionistic
     logic this is not always true; in intuitionistic logic, when this is true
     for some ` ph ` , then ` ph ` is stable.  Copy of ~ notnotr with a
     different proof.  (Contributed by Wolf Lammen, 17-Dec-2018.)
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  wl-notnotr $p |- ( -. -. ph -> ph ) $=
    ( wn wl-id wl-con1i ) AABZECD $.

  $( Swap antecedents.  Theorem *2.04 of [WhiteheadRussell] p. 100.  This was
     the third axiom in Frege's logic system, specifically Proposition 8 of
     [Frege1879] p. 35.  Copy of ~ pm2.04 with a different proof.  (Contributed
     by Wolf Lammen, 7-Jul-2019.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  wl-pm2.04 $p |- ( ( ph -> ( ps -> ch ) ) -> ( ps -> ( ph -> ch ) ) ) $=
    ( wi wl-ax1 wl-ax2 wl-syl5 ) BABDABCDDACDBAEABCFG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Implication chains
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    wl-section-impchain.hyp $e |- ph $.
    $( An implication like ` ( ps -> ph ) ` with one antecedent can easily be
       extended by prepending more and more antecedents, as in
       ` ( ch -> ( ps -> ph ) ) ` or ` ( th -> ( ch -> ( ps -> ph ) ) ) ` .  I
       call these expressions implication chains, and the number of antecedents
       (number of nodes minus one) denotes their length.  A given length often
       marks just a required minimum value, since the consequent ` ph ` itself
       may represent an implication, or even an implication chain, such hiding
       part of the whole chain.  As an extension, it is useful to consider a
       single variable ` ph ` as a degenerate implication chain of length zero.

       Implication chains play a particular role in logic, as all propositional
       expressions turn out to be convertible to one or more implication
       chains, their nodes as simple as a variable, or its negation.

       So there is good reason to focus on implication chains as a sort of
       normalized expressions, and build some general theorems around them,
       with proofs using recursive patterns.  This allows for theorems
       referring to longer and longer implication chains in an automated way.

       The theorem names in this section contain the text fragment 'impchain'
       to point out their relevance to implication chains, followed by a number
       indicating the (minimal) length of the longest chain involved.
       (Contributed by Wolf Lammen, 6-Jul-2019.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    wl-section-impchain $p |- ph $=
      (  ) B $.
  $}

  $( This series of theorems provide a means of exchanging the consequent of an
     implication chain via a simple implication.  In the main part, the
     theorems ~ ax-mp , ~ syl , ~ syl6 , ~ syl8 form the beginning of this
     series.  These theorems are replicated here, but with proofs that aim at a
     recursive scheme, allowing to base a proof on that of the previous one in
     the series.  (Contributed by Wolf Lammen, 17-Nov-2019.) $)
  wl-impchain-mp-x $p |- T. $=
    ( tru ) A $.

  ${
    $( Exchange the consequent of an implication chain of length 0. $)
    wl-impchain-mp-0.a $e |- ps $.
    $( Use to replace the consequent. $)
    wl-impchain-mp-0.b $e |- ( ps -> ph ) $.
    $( This theorem is the start of a proof recursion scheme where we replace
       the consequent of an implication chain.  The number '0' in the theorem
       name indicates that the modified chain has no antecedents.

       This theorem is in fact a copy of ~ ax-mp , and is repeated here to
       emphasize the recursion using similar theorem names.  (Contributed by
       Wolf Lammen, 6-Jul-2019.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    wl-impchain-mp-0 $p |- ph $=
      ( ax-mp ) BACDE $.
  $}

  ${
    $( Exchange the consequent of an implication chain of length 1. $)
    wl-impchain-mp-1.a $e |- ( ch -> ps ) $.
    $( Use to replace the consequent. $)
    wl-impchain-mp-1.b $e |- ( ps -> ph ) $.
    $( This theorem is in fact a copy of ~ wl-syl , and repeated here to
       demonstrate a recursive proof scheme.  The number '1' in the theorem
       name indicates that a chain of length 1 is modified.  (Contributed by
       Wolf Lammen, 6-Jul-2019.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    wl-impchain-mp-1 $p |- ( ch -> ph ) $=
      ( wi wl-imim2i wl-impchain-mp-0 ) CAFCBFDBACEGH $.
  $}

  ${
    $( Exchange the consequent of an implication chain of length 2. $)
    wl-impchain-mp-2.a $e |- ( th -> ( ch -> ps ) ) $.
    $( Use to replace the consequent. $)
    wl-impchain-mp-2.b $e |- ( ps -> ph ) $.
    $( This theorem is in fact a copy of ~ wl-syl6 , and repeated here to
       demonstrate a recursive proof scheme.  The number '2' in the theorem
       name indicates that a chain of length 2 is modified.  (Contributed by
       Wolf Lammen, 6-Jul-2019.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    wl-impchain-mp-2 $p |- ( th -> ( ch -> ph ) ) $=
      ( wi wl-imim2i wl-impchain-mp-1 ) CAGCBGDEBACFHI $.
  $}

  $( It is often convenient to have the antecedent under focus in first
     position, so we can apply immediate theorem forms (as opposed to
     deduction, tautology form).  This series of theorems swaps the first with
     the last antecedent in an implication chain.  This kind of swapping is
     self-inverse, whence we prefer it over, say, rotating theorems.  A
     consequent can hide a tail of a longer chain, so theorems of this series
     appear as swapping a pair of antecedents with fixed offsets.  This form of
     swapping antecedents is flexible enough to allow for any permutation of
     antecedents in an implication chain.

     The first elements of this series correspond to ~ com12 , ~ com13 ,
     ~ com14 and ~ com15 in the main part.

     The proofs of this series aim at automated proving using a simple
     recursive scheme.  It employs the previous theorem in the series along
     with a sample from the ~ wl-impchain-mp-x series developed before.
     (Contributed by Wolf Lammen, 17-Nov-2019.) $)
  wl-impchain-com-1.x $p |- T. $=
    ( tru ) A $.

  ${
    wl-impchain-com-1.1.a $e |- ( ps -> ph ) $.
    $( A degenerate form of antecedent swapping.  The number '1' in the theorem
       name indicates that it handles a chain of length 1.

       Since there is just one antecedent in the chain, there is nothing to
       swap.  Non-degenerated forms begin with ~ wl-impchain-com-1.2 , for more
       see there.  (Contributed by Wolf Lammen, 7-Jul-2019.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-impchain-com-1.1 $p |- ( ps -> ph ) $=
      (  ) C $.
  $}

  ${
    wl-impchain-com.1.2.a $e |- ( ch -> ( ps -> ph ) ) $.
    $( This theorem is in fact a copy of ~ wl-com12 , and repeated here to
       demonstrate a simple proof scheme.  The number '2' in the theorem name
       indicates that a chain of length 2 is modified.

       See ~ wl-impchain-com-1.x for more information how this proof is
       generated.  (Contributed by Wolf Lammen, 7-Jul-2019.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-impchain-com-1.2 $p |- ( ps -> ( ch -> ph ) ) $=
      ( wi wl-impchain-com-1.1 wl-pm2.04 wl-impchain-mp-0 ) CAEZBBIECBAEZEJCDFC
      BAGHF $.
  $}

  ${
    wl-impchain-com-1.3.h1 $e |- ( th -> ( ch -> ( ps -> ph ) ) ) $.
    $( This theorem is in fact a copy of ~ com13 , and repeated here to
       demonstrate a simple proof scheme.  The number '3' in the theorem name
       indicates that a chain of length 3 is modified.

       See ~ wl-impchain-com-1.x for more information how this proof is
       generated.  (Contributed by Wolf Lammen, 7-Jul-2019.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-impchain-com-1.3 $p |- ( ps -> ( ch -> ( th -> ph ) ) ) $=
      ( wi wl-impchain-com-1.2 wl-pm2.04 wl-impchain-mp-1 ) DAFZBCBJFDBAFZFCKCD
      EGDBAHIG $.
  $}

  ${
    wl-impchain-com-1.4.h1 $e |- ( et -> ( th -> ( ch -> ( ps -> ph ) ) ) ) $.
    $( This theorem is in fact a copy of ~ com14 , and repeated here to
       demonstrate a simple proof scheme.  The number '4' in the theorem name
       indicates that a chain of length 4 is modified.

       See ~ wl-impchain-com-1.x for more information how this proof is
       generated.  (Contributed by Wolf Lammen, 7-Jul-2019.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-impchain-com-1.4 $p |- ( ps -> ( th -> ( ch -> ( et -> ph ) ) ) ) $=
      ( wi wl-impchain-com-1.3 wl-pm2.04 wl-impchain-mp-2 ) EAGZBDCBKGEBAGZGDCL
      CDEFHEBAIJH $.
  $}

  $( This series of theorems allow swapping any two antecedents in an
     implication chain.  The theorem names follow a pattern wl-impchain-com-n.m
     with integral numbers n < m, that swaps the m-th antecedent with n-th one
     in an implication chain.  It is sufficient to restrict the length of the
     chain to m, too, since the consequent can be assumed to be the tail right
     of the m-th antecedent of any arbitrary sized implication chain.  We
     further assume n > 1, since the ~ wl-impchain-com-1.x series already
     covers the special case n = 1.

     Being able to swap any two antecedents in an implication chain lays the
     foundation of permuting its antecedents arbitrarily.

     The proofs of this series aim at automated proofing using a simple scheme.
     Any instance of this series is a triple step of swapping the first and
     n-th antecedent, then the first and the m-th, then the first and the n-th
     antecedent again.  Each of these steps is an instance of the
     ~ wl-impchain-com-1.x series.  (Contributed by Wolf Lammen,
     17-Nov-2019.) $)
  wl-impchain-com-n.m $p |- T. $=
    ( tru ) A $.

  ${
    wl-impchain-com-2.3.h1 $e |- ( th -> ( ch -> ( ps -> ph ) ) ) $.
    $( This theorem is in fact a copy of ~ com23 .  It starts a series of
       theorems named after ~ wl-impchain-com-n.m .  For more information see
       there.  (Contributed by Wolf Lammen, 12-Nov-2019.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-impchain-com-2.3 $p |- ( th -> ( ps -> ( ch -> ph ) ) ) $=
      ( wi wl-impchain-com-1.2 wl-impchain-com-1.3 ) CAFDBABDCBAFCDEGHG $.
  $}

  ${
    wl-impchain-com-2.4.h1 $e |- ( et -> ( th -> ( ch -> ( ps -> ph ) ) ) ) $.
    $( This theorem is in fact a copy of ~ com24 .  It is another instantiation
       of theorems named after ~ wl-impchain-com-n.m .  For more information
       see there.  (Contributed by Wolf Lammen, 17-Nov-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    wl-impchain-com-2.4 $p |- ( et -> ( ps -> ( ch -> ( th -> ph ) ) ) ) $=
      ( wi wl-impchain-com-1.2 wl-impchain-com-1.4 ) CDAGGEBABCEDCBAGGDEFHIH $.
  $}

  ${
    wl-impchain-com-3.2.1.h1 $e |- ( th -> ( ch -> ( ps -> ph ) ) ) $.
    $( This theorem is in fact a copy of ~ com3r .  The proof is an example of
       how to arrive at arbitrary permutations of antecedents, using only
       swapping theorems.  The recursion principle is to first swap the correct
       antecedent to the position just before the consequent, and then employ a
       theorem handling an implication chain of length one less to reorder the
       others.  (Contributed by Wolf Lammen, 17-Nov-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    wl-impchain-com-3.2.1 $p |- ( ps -> ( th -> ( ch -> ph ) ) ) $=
      ( wi wl-impchain-com-2.3 wl-impchain-com-1.2 ) CAFBDABCDEGH $.
  $}

  $( If an implication chain is assumed (hypothesis) or proven (theorem) to
     hold, then we may add any extra antecedent to it, without changing its
     truth.  This is expressed in its simplest form in ~ wl-a1i , that allows
     us prepending an arbitrary antecedent to an implication chain.  Using our
     antecedent swapping theorems described in ~ wl-impchain-com-n.m , we may
     then move such a prepended antecedent to any desired location within all
     antecedents.  The first series of theorems of this kind adds a single
     antecedent somewhere to an implication chain.  The appended number in the
     theorem name indicates its position within all antecedents, 1 denoting the
     head position.  A second theorem series extends this idea to multiple
     additions (TODO).

     Adding antecedents to an implication chain usually weakens their
     universality.  The consequent afterwards dependends on more conditions
     than before, which renders the implication chain less versatile.  So you
     find this proof technique mostly when you adjust a chain to a hypothesis
     of a rule.  A common case are syllogisms merging two implication chains
     into one.

     The first elements of the first series correspond to ~ a1i , ~ a1d and
     ~ a1dd in the main part.

     The proofs of this series aim at automated proving using a simple
     recursive scheme.  It employs the previous theorem in the series along
     with a sample from the ~ wl-impchain-com-1.x series developed before.
     (Contributed by Wolf Lammen, 20-Jun-2020.) $)
  wl-impchain-a1-x $p |- T. $=
    ( tru ) A $.

  ${
    wl-impchain-a1-1.a $e |- ph $.
    $( Inference rule, a copy of ~ a1i .  Head start of a recursive proof
       pattern.  (Contributed by Wolf Lammen, 20-Jun-2020.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-impchain-a1-1 $p |- ( ps -> ph ) $=
      ( wl-a1i ) ABCD $.
  $}

  ${
    wl-impchain-a1-2.a $e |- ( ph -> ps ) $.
    $( Inference rule, a copy of ~ a1d .  First recursive proof based on the
       previous instance.  (Contributed by Wolf Lammen, 20-Jun-2020.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    wl-impchain-a1-2 $p |- ( ph -> ( ch -> ps ) ) $=
      ( wi wl-impchain-a1-1 wl-impchain-com-1.2 ) BACABECDFG $.
  $}

  ${
    wl-impchain-a1-3.a $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference rule, a copy of ~ a1dd .  A recursive proof depending on
       previous instances, and demonstrating the proof pattern.  (Contributed
       by Wolf Lammen, 20-Jun-2020.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    wl-impchain-a1-3 $p |- ( ph -> ( ps -> ( th -> ch ) ) ) $=
      ( wi wl-impchain-a1-2 wl-impchain-com-2.3 ) CBDAABCFDEGH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  An alternative axiom ~ ax-13
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x z $.  $d y z $.
    $( A version of ~ ax13v with a distinctor instead of a distinct variable
       expression.

       Had we additionally required ` x ` and ` y ` be distinct, too, this
       theorem would have been a direct consequence of ~ ax-5 .  So essentially
       this theorem states, that a distinct variable condition between set
       variables can be replaced with a distinctor expression.  (Contributed by
       Wolf Lammen, 23-Jul-2021.) $)
    ax-wl-13v $a |- ( -. A. x x = y -> ( y = z -> A. x y = z ) ) $.
  $}

  ${
    $d x z w $.  $d y w $.
    $( A version of ~ ax-wl-13v with one distinct variable restriction dropped.
       For convenience, ` y ` is kept on the right side of equations.  This
       proof bases on ideas from NM, 24-Dec-2015.  (Contributed by Wolf Lammen,
       23-Jul-2021.) $)
    wl-ax13lem1 $p |- ( -. A. x x = y -> ( z = y -> A. x z = y ) ) $=
      ( vw weq wa wex wal wn equviniva ax-wl-13v equeucl syl9 impd exlimdv syl5
      alimdv ) CBEZCDEZBDEZFZDGABEAHIZRAHZCBDJUBUAUCDUBSTUCUBTTAHSUCABDKSTRACBD
      LQMNOP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Other stuff
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

$(
  Most of the theorems in the section "Logical implication" are about
  handling chains of implications: ` ph -> ( ps -> ( ch -> ... `.  With
  respect to chains, a rich set of rules clarify

  - how to swap antecedents (com12, ...);

  - how to drop antecedents (ax-mp, pm2.43, ...);

  - how to add antecedents (a1i, ...)

  - how to replace an antecedent (syl, ...);

  - how to replace a consequent (ax-mp, syl, ...);

  - what is, when an antecedent equals the consequent (ax-1, id, ...).

  In all these cases, the operands of the chain have no inner structure, or
  it is of no importance.  These chains are called "simple" here.

  There is less support, when the operands are structured themselves.  Some
  kinds of inner structure involving the ` -. ` operator are best handled by
  the symmetric operators ` /\ ` and ` \/ `.  But a nested, simple chain
  has no such convenient replacement.  I can focus on antecedents here,
  since a consequent representing a chain is, in conjunction with its
  antecedents, just an extended simple chain again.

  The following theorems show, how operations on nested chains appear
  somehow mirrored: The minor premises of the syllogisms look reverted, in
  comparison to their normal counterparts, and while adding an antecedent to
  a chain via ~ a1i is easy, in nested chains they can be easily dropped.

$)

  ${
    wl-jarri.1 $e |- ( ( ph -> ps ) -> ch ) $.
    $( Dropping a nested antecedent.  This theorem is one of two reversions of
       ~ ja .  Since ~ ja is reversible, a nested (chain of) implication(s) is
       just a packed notation of two or more theorems/hypotheses with a common
       consequent. ~ axc5c7 is an instance of this idea.  (Contributed by Wolf
       Lammen, 20-Sep-2013.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    wl-jarri $p |- ( ps -> ch ) $=
      ( wi ax-1 syl ) BABECBAFDG $.
  $}

  ${
    wl-jarli.1 $e |- ( ( ph -> ps ) -> ch ) $.
    $( Dropping a nested consequent.  This theorem is one of two reversions of
       ~ ja .  Since ~ ja is reversible, one can conclude, that a nested (chain
       of) implication(s) is just a packed notation of two or more theorems/
       hypotheses with a common consequent. ~ axc5c7 is an instance of this
       idea.  (Contributed by Wolf Lammen, 4-Oct-2013.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    wl-jarli $p |- ( -. ph -> ch ) $=
      ( wn wi pm2.21 syl ) AEABFCABGDH $.
  $}

  ${
    wl-mps.1 $e |- ( ph -> ( ps -> ch ) ) $.
    wl-mps.2 $e |- ( ( ph -> ch ) -> th ) $.
    $( Replacing a nested consequent.  A sort of modus ponens in antecedent
       position.  (Contributed by Wolf Lammen, 20-Sep-2013.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    wl-mps $p |- ( ( ph -> ps ) -> th ) $=
      ( wi a2i syl ) ABGACGDABCEHFI $.
  $}

  ${
    wl-syls1.1 $e |- ( ps -> ch ) $.
    wl-syls1.2 $e |- ( ( ph -> ch ) -> th ) $.
    $( Replacing a nested consequent.  A sort of syllogism in antecedent
       position.  (Contributed by Wolf Lammen, 20-Sep-2013.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    wl-syls1 $p |- ( ( ph -> ps ) -> th ) $=
      ( wi a1i wl-mps ) ABCDBCGAEHFI $.
  $}

  ${
    wl-syls2.1 $e |- ( ph -> ps ) $.
    wl-syls2.2 $e |- ( ( ph -> ch ) -> th ) $.
    $( Replacing a nested antecedent.  A sort of syllogism in antecedent
       position.  (Contributed by Wolf Lammen, 20-Sep-2013.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    wl-syls2 $p |- ( ( ps -> ch ) -> th ) $=
      ( wi imim1i syl ) BCGACGDABCEHFI $.
  $}

  ${
    wl-embant.1 $e |- ph $.
    wl-embant.2 $e |- ( ps -> ch ) $.
    $( A true wff can always be added as a nested antecedent to an antecedent.
       Note: this theorem is intuitionistically valid.  (Contributed by Wolf
       Lammen, 4-Oct-2013.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    wl-embant $p |- ( ( ph -> ps ) -> ch ) $=
      ( wi imim2i mpi ) ABFACDBCAEGH $.
  $}

  $( In a conjunctive normal form a pair of nodes like
     ` ( ph \/ ps ) /\ ( -. ph \/ ch ) ` eliminates the need of a node
     ` ( ps \/ ch ) ` .  This theorem allows simplifications in that respect.
     (Contributed by Wolf Lammen, 20-Jun-2020.) $)
  wl-orel12 $p |- ( ( ( ph \/ ps ) /\ ( -. ph \/ ch ) ) -> ( ps \/ ch ) ) $=
    ( wo wn wa pm2.1 orel1 orc syl6com wi notnot syl olc jaao mpi ) ABDZAEZCDZF
    RADBCDZAGQRTSARQBTABHBCIJASCTARESCKALRCHMCBNJOP $.

  $( A particular instance of ~ orddi and ~ anddi converting between
     disjunctive and conjunctive normal forms, when both ` ph ` and ` -. ph `
     appear.  This theorem in fact rephrases ~ cases2 , and is related to
     ~ consensus .  I restate it here in DNF and CNF. The proof deliberately
     does not use ~ df-ifp and ~ dfifp4 , by which it can be shortened.
     (Contributed by Wolf Lammen, 21-Jun-2020.)
     (Proof modification is discouraged.) $)
  wl-cases2-dnf $p |- ( ( ( ph /\ ps ) \/ ( -. ph /\ ch ) ) <->
              ( ( -. ph \/ ps ) /\ ( ph \/ ch ) ) ) $=
    ( wa wn exmid biantrur orcom anbi12i anass orddi 3bitr4ri wl-orel12 pm4.71i
    wo ancom 3bitr2i ) ABDAEZCDOZACOZRBOZDZCBOZDZUBUATDTUAUCDZDAROZTDZBROZBCOZD
    ZDUDSTUGUEUJUFTAFGUAUHUCUIRBHCBHIITUAUCJABRCKLUBUCACBMNTUAPQ $.

  $( An alternative definition of "nand" based on ~ imnan .  See ~ df-nan for
     the original definition.  This theorem allows various shortenings.
     (Contributed by Wolf Lammen, 26-Jun-2020.) $)
  wl-dfnan2 $p |- ( ( ph -/\ ps ) <-> ( ph -> -. ps ) ) $=
    ( wnan wa wn wi df-nan imnan bitr4i ) ABCABDEABEFABGABHI $.

  $( The 'nand' operator commutes.  (Contributed by Mario Carneiro,
     9-May-2015.)  (Revised by Wolf Lammen, 26-Jun-2020.) $)
  wl-nancom $p |- ( ( ph -/\ ps ) <-> ( ps -/\ ph ) ) $=
    ( wn wi wnan con2b wl-dfnan2 3bitr4i ) ABCDBACDABEBAEABFABGBAGH $.

  $( Lemma for handling nested 'nand's.  (Contributed by Jeff Hoffman,
     19-Nov-2007.)  (Revised by Wolf Lammen, 26-Jun-2020.) $)
  wl-nannan $p |- ( ( ph -/\ ( ps -/\ ch ) ) <-> ( ph -> ( ps /\ ch ) ) ) $=
    ( wnan wn wi wa wl-dfnan2 nanan imbi2i bitr4i ) ABCDZDALEZFABCGZFALHNMABCIJ
    K $.

  $( Show equivalence between negation and the Nicod version.  To derive
     ~ nic-dfneg , apply ~ nanbi .  (Contributed by Jeff Hoffman, 19-Nov-2007.)
     (Revised by Wolf Lammen, 26-Jun-2020.) $)
  wl-nannot $p |- ( -. ph <-> ( ph -/\ ph ) ) $=
    ( wnan wn wi wl-dfnan2 pm4.8 bitr2i ) AABAACZDHAAEAFG $.

  $( Introduce a right anti-conjunct to both sides of a logical equivalence.
     (Contributed by SF, 2-Jan-2018.)  (Revised by Wolf Lammen,
     27-Jun-2020.) $)
  wl-nanbi1 $p |- ( ( ph <-> ps ) -> ( ( ph -/\ ch ) <-> ( ps -/\ ch ) ) ) $=
    ( wb wn wi wnan imbi1 wl-dfnan2 3bitr4g ) ABDACEZFBKFACGBCGABKHACIBCIJ $.

  $( Introduce a left anti-conjunct to both sides of a logical equivalence.
     (Contributed by SF, 2-Jan-2018.)  (Revised by Wolf Lammen,
     27-Jun-2020.) $)
  wl-nanbi2 $p |- ( ( ph <-> ps ) -> ( ( ph -/\ ch ) <-> ( ps -/\ ch ) ) ) $=
    ( wb wn wi wnan imbi1 wl-dfnan2 3bitr4g ) ABDACEZFBKFACGBCGABKHACIBCIJ $.

  ${
    $d u v $.
    $( If some set variables can assume different values, then any two distinct
       set variables cannot always be the same.  (Contributed by Wolf Lammen,
       10-Aug-2019.) $)
    wl-naev $p |- ( -. A. x x = y -> -. A. u u = v ) $=
      ( weq wal aev con3i ) DCEDFABEAFDCABAGH $.
  $}

  $( This specialization of ~ hbae does not depend on ~ ax-11 .  (Contributed
     by Wolf Lammen, 8-Aug-2021.) $)
  wl-hbae1 $p |- ( A. x x = y -> A. y A. x x = y ) $=
    ( weq wal axc11n axc4i syl ) ABCADZBACZBDHBDABEIHBBAEFG $.

  ${
    $d x y z $.
    $( An instance of ~ hbn1w applied to equality.  (Contributed by Wolf
       Lammen, 7-Apr-2021.) $)
    wl-naevhba1v $p |- ( -. A. x x = y -> A. x -. A. x x = y ) $=
      ( vz weq equequ1 hbn1w ) ABDCBDACACBEF $.
  $}

  ${
    $d x y $.  $d u t z $.
    $( Any variable is free in ` -. A. x x = y ` , if ` x ` and ` y ` are
       distinct.  The latter condition can actually be lifted, but this version
       is easier to prove.  The proof does not use ~ ax-10 .  (Contributed by
       Wolf Lammen, 9-Apr-2021.) $)
    wl-hbnaev $p |- ( -. A. x x = y -> A. z -. A. x x = y ) $=
      ( vu vt weq wal wn aev con3i ax-5 alimi 3syl ) ABFAGZHZDEFDGZHZQCGOCGPNDE
      ABAIJQCKQOCNPABDEDIJLM $.
  $}

  ${
    $d x z $.  $d y z $.
    $( Prove an instance of ~ sp from ~ ax-13 and Tarski's FOL only, without
       distinct variable conditions.  The antecedent ` A. x x = y ` holds in a
       multi-object universe only if ` y ` is substituted for ` x ` , or vice
       versa, i.e. both variables are effectively the same.  The converse
       ` -. A. x x = y ` indicates that both variables are distinct, and it so
       provides a simple translation of a distinct variable condition to a
       logical term.  In case studies ` A. x x = y ` and ` -. A. x x = y ` can
       help eliminating distinct variable conditions.

       The antecedent ` A. x x = y ` is expressed in the theorem's name by the
       abbreviation ae standing for 'all equal'.

       Note that we cannot provide a logical predicate telling us directly
       whether a logical expression contains a particular variable, as such a
       construct would usually contradict ~ ax-12 .

       Note that this theorem is also provable from ~ ax-12 alone, so you can
       pick the axiom it is based on.

       Compare this result to ~ 19.3v and ~ spaev having distinct variable
       conditions, but a smaller footprint on axiom usage.  (Contributed by
       Wolf Lammen, 5-Apr-2021.) $)
    wl-spae $p |- ( A. x x = y -> x = y ) $=
      ( vz weq wal wi wa aeveq adantl a1d ax13v equtrr al2imi con3d syl6 impcom
      wn com13 con4d pm2.61dan ax6evr exlimiiv ) BCDZABDZAEZUDFZCUCACDZAEZUFUCU
      HGUDUEUHUDUCACABHIJUCUHQZGUDUEUIUCUDQZUEQZFUJUCUIUKUJUCUCAEZUIUKFABCKULUE
      UHUCUDUGABCALMNORPSTCBUAUB $.
  $}

  ${
    $d x y $.  $d y ph $.
    wl-cbv3vv.nf $e |- F/ x ps $.
    wl-cbv3vv.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Avoiding ~ ax-11 .  (Contributed by Wolf Lammen, 30-Aug-2021.) $)
    wl-cbv3vv $p |- ( A. x ph -> A. y ps ) $=
      ( wal spimv1 alrimiv ) ACGBDABCDEFHI $.
  $}

  ${
    $d x z $.
    $( Under the assumption ` -. x = y ` a specialized version of ~ sp is
       provable from Tarski's FOL and ~ ax13v only.  Note that this reverts the
       implication in ~ ax13lem1 , so in fact
       ` ( -. x = y -> ( A. x z = y <-> z = y ) ) ` holds.  (Contributed by
       Wolf Lammen, 17-Apr-2021.) $)
    wl-speqv $p |- ( -. x = y -> ( A. x z = y -> z = y ) ) $=
      ( weq wal wex wn 19.2 ax13lem2 syl5 ) CBDZAEKAFABDGKKAHABCIJ $.

    $( Under the assumption ` -. x = y ` a specialized version of ~ 19.8a is
       provable from Tarski's FOL and ~ ax13v only.  Note that this reverts the
       implication in ~ ax13lem2 , so in fact
       ` ( -. x = y -> ( E. x z = y <-> z = y ) ) ` holds.  (Contributed by
       Wolf Lammen, 17-Apr-2021.) $)
    wl-19.8eqv $p |- ( -. x = y -> ( z = y -> E. x z = y ) ) $=
      ( weq wn wal wex ax13lem1 19.2 syl6 ) ABDECBDZKAFKAGABCHKAIJ $.

    $( Under the assumption ` -. x = y ` the reverse direction of ~ 19.2 is
       provable from Tarski's FOL and ~ ax13v only.  Note that in conjunction
       with ~ 19.2 in fact ` ( -. x = y -> ( A. x z = y <-> E. x z = y ) ) `
       holds.  (Contributed by Wolf Lammen, 17-Apr-2021.) $)
    wl-19.2reqv $p |- ( -. x = y -> ( E. x z = y -> A. x z = y ) ) $=
      ( weq wn wex wal ax13lem2 ax13lem1 syld ) ABDECBDZAFKKAGABCHABCIJ $.

    $( The current form of ~ ax-13 has a particular disadvantage:  The
       condition ` -. x = y ` is less versatile than the general form
       ` -. A. x x = y ` .  You need ~ ax-10 to arrive at the more general form
       presented here.  You need ~ 19.8a (or ~ ax-12 ) to restore ` y = z `
       from ` E. x y = z ` again.  (Contributed by Wolf Lammen, 9-Jun-2021.) $)
    wl-dveeq12 $p |- ( -. A. x x = y -> ( E. x z = y -> A. x z = y ) ) $=
      ( weq wal wn exnal hbe1 ax13lem2 ax13lem1 syldc aleximi com12 hbe1a syl56
      wex wi sylbir ) ABDZAEFSFZAPZCBDZAPZUBAEZQSAGUCUCAEZUAUDAPZUDUBAHUEUAUFUC
      TUDATUCUBUDABCIABCJKLMUBANOR $.
  $}

  ${
    $d x ph $.
    $( If ` x ` is not present in ` ph ` , it is not free in ` A. y ph ` .
       (Contributed by Wolf Lammen, 11-Jan-2020.) $)
    wl-nfalv $p |- F/ x A. y ph $=
      ( wal ax-5 hbal nf5i ) ACDBABCABEFG $.
  $}

  $( An antecedent is irrelevant to a not-free property, if it always holds.  I
     used this variant of ~ nfim in ~ dvelimdf to simplify the proof.
     (Contributed by Wolf Lammen, 14-Oct-2018.) $)
  wl-nfimf1 $p |- ( A. x ph -> ( F/ x ( ph -> ps ) <-> F/ x ps ) ) $=
    ( wal wi nfa1 wb pm5.5 sps nfbidf ) ACDABEZBCACFAKBGCABHIJ $.

  $( Being free does not depend on an outside negation in an expression.  This
     theorem is slightly more general than ~ nfn or ~ nfnd .  (Contributed by
     Wolf Lammen, 5-May-2018.) $)
  wl-nfnbi $p |- ( F/ x ph <-> F/ x -. ph ) $=
    ( wnf wn nfnt notnotb nfxfrd impbii ) ABCADZBCZABEAIDJBAFIBEGH $.

  $( Unlike ~ nfae , this specialized theorem avoids ~ ax-11 .  (Contributed by
     Wolf Lammen, 26-Jun-2019.) $)
  wl-nfae1 $p |- F/ x A. y y = x $=
    ( weq wal aecom nfa1 nfxfr ) BACBDABCZADABAEHAFG $.

  $( Unlike ~ nfnae , this specialized theorem avoids ~ ax-11 .  (Contributed
     by Wolf Lammen, 27-Jun-2019.) $)
  wl-nfnae1 $p |- F/ x -. A. y y = x $=
    ( weq wal wl-nfae1 nfn ) BACBDAABEF $.

  $( A transitive law for variable identifying expressions.  (Contributed by
     Wolf Lammen, 30-Jun-2019.) $)
  wl-aetr $p |- ( A. x x = y -> ( A. x x = z -> A. y y = z ) ) $=
    ( weq wal ax7 al2imi axc11 syld ) ABDZAEACDZAEBCDZAELBEJKLAABCFGLABHI $.

  ${
    wl-dral1d.1 $e |- F/ x ph $.
    wl-dral1d.2 $e |- F/ y ph $.
    wl-dral1d.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( A version of ~ dral1 with a context.  Note:  At first glance one might
       be tempted to generalize this (or a similar) theorem by weakening the
       first two hypotheses adding a ` x = y ` , ` A. x x = y ` or ` ph `
       antecedent. ~ wl-equsal1i and ~ nf5di show that this is in fact
       pointless.  (Contributed by Wolf Lammen, 28-Jul-2019.) $)
    wl-dral1d $p |- ( ph -> ( A. x x = y -> ( A. x ps <-> A. y ch ) ) ) $=
      ( weq wal wb wi com12 pm5.74d sps dral1 19.21 3bitr3g pm5.74rd ) DEIZDJZA
      BDJZCEJZKUAAUBUCUAABLZDJACLZEJAUBLAUCLUDUEDETUDUEKDTABCATBCKHMNOPABDFQACE
      GQRSM $.
  $}

  ${
    wl-cbvalnaed.1 $e |- F/ x ph $.
    wl-cbvalnaed.2 $e |- F/ y ph $.
    wl-cbvalnaed.3 $e |- ( ph -> ( -. A. x x = y -> F/ y ps ) ) $.
    wl-cbvalnaed.4 $e |- ( ph -> ( -. A. x x = y -> F/ x ch ) ) $.
    wl-cbvalnaed.5 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( ~ wl-cbvalnae with a context.  (Contributed by Wolf Lammen,
       28-Jul-2019.) $)
    wl-cbvalnaed $p |- ( ph -> ( A. x ps <-> A. y ch ) ) $=
      ( weq wal wb wl-dral1d imp wn wa nfnae nfan wnf wl-nfnae1 wi adantr cbv2
      pm2.61dan ) ADEKZDLZBDLCELMZAUGUHABCDEFGJNOAUGPZQBCDEAUIDFDEDRSAUIEGEDUAS
      AUIBETHOAUICDTIOAUFBCMUBUIJUCUDUE $.
  $}

  ${
    wl-cbvalnae.1 $e |- ( -. A. x x = y -> F/ y ph ) $.
    wl-cbvalnae.2 $e |- ( -. A. x x = y -> F/ x ps ) $.
    wl-cbvalnae.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( A more general version of ~ cbval when non-free properties depend on a
       distinctor.  Such expressions arise in proofs aiming at the elimination
       of distinct variable constraints, specifically in application of
       ~ dvelimf , ~ nfsb2 or ~ dveeq1 .  (Contributed by Wolf Lammen,
       4-Jun-2019.) $)
    wl-cbvalnae $p |- ( A. x ph <-> A. y ps ) $=
      ( wal wb wtru nftru weq wn wnf wi a1i wl-cbvalnaed trud ) ACHBDHIJABCDCKD
      KCDLZCHMZADNOJEPTBCNOJFPSABIOJGPQR $.
  $}

  $( The semantics of ` E. x y = z ` .  (Contributed by Wolf Lammen,
     27-Apr-2018.) $)
  wl-exeq $p |- ( E. x y = z <-> ( y = z \/ A. x x = y \/ A. x x = z ) ) $=
    ( weq wex wal w3o wo wn nfeqf 19.9d impancom orrd expcom 3orrot ax6e eximii
    wa wi 19.35i 3orass bitri sylibr 19.8a ax7 com12 3jaoi impbii ) BCDZAEZUIAB
    DZAFZACDZAFZGZUJULUNUIHZHZUOUJULUPULIZUJUPURUJRUNUIURUNIZUJUIUIURUSRABCAJKL
    MNMUOULUNUIGUQUIULUNOULUNUIUAUBUCUIUJULUNUIAUDUKUIAUMUKUISAACPUKUMUIABCUEZU
    FQTUMUIAUKUMUISAABPUTQTUGUH $.

  $( The semantics of ` A. x y = z ` .  (Contributed by Wolf Lammen,
     27-Apr-2018.) $)
  wl-aleq $p |- ( A. x y = z <-> ( y = z /\ ( A. x x = y <-> A. x x = z ) ) )
    $=
    ( weq wal wb wa equequ2 alimi albi syl jca ax7 al2imi a1dd axc9 bija impcom
    sp wi impbii ) BCDZAEZUBABDZAEZACDZAEZFZGUCUBUHUBASUCUDUFFZAEUHUBUIABCAHIUD
    UFAJKLUHUBUCUEUGUBUCTUEUGUCUBUDUFUBAABCMNOBCAPQRUA $.

  $( Extend ~ nfeqf to an equivalence.  (Contributed by Wolf Lammen,
     31-Jul-2019.) $)
  wl-nfeqfb $p |- ( F/ x y = z <-> ( A. x x = y <-> A. x x = z ) ) $=
    ( weq wnf wal wb wa nf5r imp wl-aleq simprbi syl wn w3a nf5rd w3o wex alnex
    nfnt wl-exeq xchbinx 3ioran sylbb 3simpc pm5.21 4syl pm2.61dan al2imi nftht
    ax7 syl6 nfeqf ex bija impbii ) BCDZAEZABDZAFZACDZAFZGZURUQVCURUQHUQAFZVCUR
    UQVDUQAIJVDUQVCABCKLMURUQNZHVEAFZVEUTNZVBNZOZVGVHHVCURVEVFURVEAUQATPJVFUQUT
    VBQZNVIVFUQARVJUQASABCUAUBUQUTVBUCUDVEVGVHUEUTVBUFUGUHUTVBURUTVBVDURUSVAUQA
    ABCUKUIUQAUJULVGVHURBCAUMUNUOUP $.

  $( If ` y ` is not free in ` ph ` , ` x ` is not free in ` [ y / x ] ph ` .
     Closed form of ~ nfs1 .  (Contributed by Wolf Lammen, 27-Jul-2019.) $)
  wl-nfs1t $p |- ( F/ y ph -> F/ x [ y / x ] ph ) $=
    ( weq wal wnf wsb wi wb sbequ12r equcoms sps drnf1 biimprd wn nfsb2 pm2.61i
    a1d ) BCDZBEZACFZABCGZBFZHTUCUAUBABCSUBAIZBUDCBACBJKLMNTOUCUAABCPRQ $.

  ${
    wl-equsald.1 $e |- F/ x ph $.
    wl-equsald.2 $e |- ( ph -> F/ x ch ) $.
    wl-equsald.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Deduction version of ~ equsal .  (Contributed by Wolf Lammen,
       27-Jul-2019.) $)
    wl-equsald $p |- ( ph -> ( A. x ( x = y -> ps ) <-> ch ) ) $=
      ( weq wi wal wex wnf wb 19.23t syl pm5.74d albid ax6e a1bi a1i 3bitr4d )
      ADEIZCJZDKZUCDLZCJZUCBJZDKCACDMUEUGNGUCCDOPAUHUDDFAUCBCHQRCUGNAUFCDESTUAU
      B $.
  $}

  ${
    wl-equsal.1 $e |- F/ x ps $.
    wl-equsal.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( A useful equivalence related to substitution.  (Contributed by NM,
       2-Jun-1993.)  (Proof shortened by Andrew Salmon, 12-Aug-2011.)  (Revised
       by Mario Carneiro, 3-Oct-2016.)  It seems proving ~ wl-equsald first,
       and then deriving more specialized versions ~ wl-equsal and
       ~ wl-equsal1t then is more efficient than the other way round, which is
       possible, too.  See also ~ equsal .  (Revised by Wolf Lammen,
       27-Jul-2019.)  (Proof modification is discouraged.) $)
    wl-equsal $p |- ( A. x ( x = y -> ph ) <-> ps ) $=
      ( weq wi wal wb wtru nftru wnf a1i wl-equsald trud ) CDGZAHCIBJKABCDCLBCM
      KENQABJHKFNOP $.
  $}

  $( The expression ` x = y ` in antecedent position plays an important role in
     predicate logic, namely in implicit substitution.  However, occasionally
     it is irrelevant, and can safely be dropped.  A sufficient condition for
     this is when ` x ` (or ` y ` or both) is not free in ` ph ` .

     This theorem is more fundamental than ~ equsal , ~ spimt or ~ sbft , to
     which it is related.  (Contributed by Wolf Lammen, 19-Aug-2018.) $)
  wl-equsal1t $p |- ( F/ x ph -> ( A. x ( x = y -> ph ) <-> ph ) ) $=
    ( wnf nfnf1 id wb weq biid 2a1i wl-equsald ) ABDZAABCABELFAAGLBCHAIJK $.

  $( This simple equivalence eases substitution of one expression for the
     other.  (Contributed by Wolf Lammen, 1-Sep-2018.) $)
  wl-equsalcom $p |- ( A. x ( x = y -> ph ) <-> A. x ( y = x -> ph ) ) $=
    ( weq wi equcom imbi1i albii ) BCDZAECBDZAEBIJABCFGH $.

  ${
    wl-equsal1i.1 $e |- ( F/ x ph \/ F/ y ph ) $.
    wl-equsal1i.2 $e |- ( x = y -> ph ) $.
    $( The antecedent ` x = y ` is irrelevant, if one or both setvar variables
       are not free in ` ph ` .  (Contributed by Wolf Lammen, 1-Sep-2018.) $)
    wl-equsal1i $p |- ph $=
      ( wnf wo weq wi wal gen2 sp alcoms wl-equsal1t syl5ib wl-equsalcom biimpd
      syl5bir spsd jaoi mp2 ) ABFZACFZGBCHAIZCJZBJZADUDBCEKUBUFAIUCUFUDBJZUBAUD
      UGCBUGCLMABCNOUCUEABUECBHAICJZUCAACBPUCUHAACBNQRSTUA $.
  $}

  $( A specialization of ~ wl-equsal1t .  Closed form of ~ sb6rf .
     (Contributed by Wolf Lammen, 27-Jul-2019.) $)
  wl-sb6rft $p |- ( F/ x ph -> ( ph <-> A. x ( x = y -> [ x / y ] ph ) ) ) $=
    ( wnf weq wsb wi wal nfnf1 id wb sbequ12r a1i wl-equsald bicomd ) ABDZBCEZA
    CBFZGBHAPRABCABIPJQRAKGPABCLMNO $.

  $( Substitution with a variable not free in antecedent affects only the
     consequent.  Closed form of ~ sbrim .  (Contributed by Wolf Lammen,
     26-Jul-2019.) $)
  wl-sbrimt $p |- ( F/ x ph ->
                     ( [ y / x ] ( ph -> ps ) <-> ( ph -> [ y / x ] ps ) ) ) $=
    ( wi wsb wnf sbim sbft imbi1d syl5bb ) ABECDFACDFZBCDFZEACGZAMEABCDHNLAMACD
    IJK $.

  $( Substitution with a variable not free in antecedent affects only the
     consequent.  Closed form of ~ sbrim .  (Contributed by Wolf Lammen,
     26-Jul-2019.) $)
  wl-sblimt $p |- ( F/ x ps ->
                ( [ y / x ] ( ph -> ps ) <-> ( [ y / x ] ph -> ps ) ) ) $=
    ( wi wsb wnf sbim sbft imbi2d syl5bb ) ABECDFACDFZBCDFZEBCGZLBEABCDHNMBLBCD
    IJK $.

  $( Substitution of variable in universal quantifier.  Closed form of ~ sb8 .
     (Contributed by Wolf Lammen, 27-Jul-2019.) $)
  wl-sb8t $p |- ( A. x F/ y ph -> ( A. x ph <-> A. y [ y / x ] ph ) ) $=
    ( wnf wal wsb nfa1 nfnf1 nfal sp wl-nfs1t sps weq wb wi sbequ12 a1i cbv2 )
    ACDZBEZAABCFZBCSBGSCBACHISBJSUABDBABCKLBCMAUANOTABCPQR $.

  $( Substitution of variable in universal quantifier.  Closed form of ~ sb8e .
     (Contributed by Wolf Lammen, 27-Jul-2019.) $)
  wl-sb8et $p |- ( A. x F/ y ph -> ( E. x ph <-> E. y [ y / x ] ph ) ) $=
    ( wnf wal wex wsb wn wl-nfnbi albii wl-sb8t sylbi alnex sbn 3bitr3g con4bid
    wb bitri ) ACDZBEZABFZABCGZCFZTAHZBEZUDBCGZCEZUAHUCHZTUDCDZBEUEUGQSUIBACIJU
    DBCKLABMUGUBHZCEUHUFUJCABCNJUBCMROP $.

  $( Closed form of ~ sbhb .  Characterizing the expression ` ph -> A. x ph `
     using a substitution expression.  (Contributed by Wolf Lammen,
     28-Jul-2019.) $)
  wl-sbhbt $p |- ( A. x F/ y ph ->
                     ( ( ph -> A. x ph ) <-> A. y ( ph -> [ y / x ] ph ) ) ) $=
    ( wnf wal wi wsb wl-sb8t imbi2d wb 19.21t sps bitr4d ) ACDZBEZAABEZFAABCGZC
    EZFZAQFCEZOPRAABCHINTSJBAQCKLM $.

  $( Two ways expressing that ` x ` is effectively not free in ` ph ` .
     Simplified version of ~ sbnf2 .  Note:  This theorem shows that ~ sbnf2
     has unnecessary distinct variable constraints.  (Contributed by Wolf
     Lammen, 28-Jul-2019.) $)
  wl-sbnf1 $p |- ( A. x F/ y ph ->
                          ( F/ x ph <-> A. x A. y ( ph -> [ y / x ] ph ) ) ) $=
    ( wnf wal wi wsb nf5 nfa1 wl-sbhbt albid syl5bb ) ABDAABEFZBEACDZBEZAABCGFC
    EZBEABHOMPBNBIABCJKL $.

  ${
    $d x w $.  $d y w $.  $d z w $.
    $( ~ equsb3 with a distinctor.  (Contributed by Wolf Lammen,
       27-Jun-2019.) $)
    wl-equsb3 $p |- ( -. A. y y = z -> ( [ x / y ] y = z <-> x = z ) ) $=
      ( vw weq wal wn wsb nfv nfna1 nfeqf2 wb wi equequ1 a1i sbied sbbid sbcom3
      sbf bitri equsb3 3bitr3g ) BCEZBFGZUCBDHZDAHZDCEZDAHUCBAHZACEUDUEUGDAUDDI
      UDUCUGBDUCBJBCDKBDEUCUGLMUDBDCNOPQUFUHDAHUHUCBDARUHDAUHDISTADCUAUB $.
  $}

  $( Substitution applied to an atomic wff.  The distinctor antecedent is more
     general than a distinct variable constraint.  (Contributed by Wolf Lammen,
     26-Jun-2019.) $)
  wl-equsb4 $p |- ( -. A. x x = z -> ( [ y / x ] y = z <-> y = z ) ) $=
    ( weq wal wn wsb wb wnf nfeqf ex sbft syl6com sbequ12r equcoms sps pm2.61d2
    ) ACDAEFZABDZAEZBCDZABGUAHZTFZRUAAIZUBUCRUDBCAJKUAABLMSUBAUBBAUABANOPQ $.

  $( Version of ~ sb6 suitable for elimination of unnecessary dv restrictions.
     (Contributed by Wolf Lammen, 28-Jul-2019.) $)
  wl-sb6nae $p |- ( -. A. x x = y ->
                            ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) ) $=
    ( sb4b ) ABCD $.

  $( Version of ~ sb5 suitable for elimination of unnecessary dv restrictions.
     (Contributed by Wolf Lammen, 28-Jul-2019.) $)
  wl-sb5nae $p |- ( -. A. x x = y ->
                            ( [ y / x ] ph <-> E. x ( x = y /\ ph ) ) ) $=
    ( weq wal wn wsb wa wex sb1 sb3 impbid2 ) BCDZBEFABCGMAHBIABCJABCKL $.

  ${
    wl-2sb6d.1 $e |- ( ph -> -. A. y y = x ) $.
    wl-2sb6d.2 $e |- ( ph -> -. A. y y = w ) $.
    wl-2sb6d.3 $e |- ( ph -> -. A. y y = z ) $.
    wl-2sb6d.4 $e |- ( ph -> -. A. x x = z ) $.
    $( Version of ~ 2sb6 with a context, and distinct variable conditions
       replaced with distinctors.  (Contributed by Wolf Lammen, 4-Aug-2019.) $)
    wl-2sb6d $p |- ( ph -> ( [ z / x ] [ w / y ] ps <->
                          A. x A. y ( ( x = z /\ y = w ) -> ps ) ) ) $=
      ( weq wal wn wa wsb wi wb wl-sb6nae nfnae nfan jca wl-nfnae1 imbi2d albii
      impexp wnf nfeqf 19.21t syl syl5rbb sylan9bb albid syl12anc ) ACEKZCLMZDF
      KZDLMZDCKDLMZDEKDLMZNZBDFOZCEOZUNUPNBPZDLZCLZQJHAURUSGIUAUOVBUNVAPZCLUQUT
      NZVEVACERVGVFVDCUQUTCDFCSURUSCCDUBDECSTTUQVFUNUPBPZDLZPZUTVDUQVAVIUNBDFRU
      CVDUNVHPZDLZUTVJVCVKDUNUPBUEUDUTUNDUFVLVJQCEDUGUNVHDUHUIUJUKULUKUM $.
  $}

  ${
    $d u v x $.  $d u v y $.  $d u v w $.  $d u v z $.  $d u v ph $.
    $( Lemma used to prove ~ wl-sbcom2d .  (Contributed by Wolf Lammen,
       10-Aug-2019.)  (New usage is discouraged.) $)
    wl-sbcom2d-lem1 $p |- ( ( u = y /\ v = w ) -> ( -. A. x x = w ->
       ( [ u / x ] [ v / z ] ph <-> [ y / x ] [ w / z ] ph ) ) ) $=
      ( weq wal wn wsb wb wa nfna1 nfeqf2 nfan1 sbequ adantl sbbid ancoms expr
      sylan9bbr ) GCHZFEHZBEHZBIJZADFKZBGKZADEKZBCKZLUDUFMUHUIBGKZUCUJUFUDUHUKL
      UFUDMUGUIBGUFUDBUEBNBEFOPUDUGUILUFAFEDQRSTUIGCBQUBUA $.
  $}

  ${
    $d u v x $.  $d u v y $.  $d u v ph $.
    $( Lemma used to prove ~ wl-sbcom2d .  (Contributed by Wolf Lammen,
       10-Aug-2019.)  (New usage is discouraged.) $)
    wl-sbcom2d-lem2 $p |- ( -. A. y y = x -> ( [ u / x ] [ v / y ] ph
            <-> A. x A. y ( ( x = u /\ y = v ) -> ph ) ) ) $=
      ( weq wal wn id wl-naev wl-2sb6d ) CBFCGHZABCEDLICBDCJCBECJCBEBJK $.
  $}

  ${
    $d u v x $.  $d u v y $.  $d u v w $.  $d u v z $.  $d u v ph $.
    $d u v ps $.
    wl-sbcom2d.1 $e |- ( ph -> -. A. x x = w ) $.
    wl-sbcom2d.2 $e |- ( ph -> -. A. x x = z ) $.
    wl-sbcom2d.3 $e |- ( ph -> -. A. z z = y ) $.
    $( Version of ~ sbcom2 with a context, and distinct variable conditions
       replaced with distinctors.  (Contributed by Wolf Lammen, 4-Aug-2019.) $)
    wl-sbcom2d $p |- ( ph -> ( [ w / z ] [ y / x ] ps <->
                               [ y / x ] [ w / z ] ps ) ) $=
      ( vu vv weq wex wsb wb wi ax6ev wa wal wn wl-sbcom2d-lem2 ancomst naecoms
      alcom 2albii bitri syl6bb bitr4d syl adantl wl-sbcom2d-lem1 syl5 3bitr3rd
      imp ancoms exp31 exlimdv exlimiv mp2 ) JDLZJMKFLZKMZABCDNEFNZBEFNCDNZOZPZ
      JDQKFQUTVBVFPJUTVAVFKUTVAAVEUTVARZARBEKNCJNZBCJNEKNZVDVCAVHVIOZVGACELCSTZ
      VJHVKVHEKLZCJLZRBPZCSESZVIVHVOOECECLESTVHVMVLRBPZESCSZVOBCEKJUAVQVPCSESVO
      VPCEUDVPVNECVMVLBUBUEUFUGUCBECJKUAUHUIUJVGAVHVDOZACFLCSTVGVRGBCDEFKJUKULU
      NVGAVIVCOZVAUTAVSPAEDLESTVAUTRVSIBEFCDJKUKULUOUNUMUPUQURUS $.
  $}

  $( A theorem used in elimination of disjoint variable restrictions by
     replacing them with distinctors.  (Contributed by Wolf Lammen,
     25-Jul-2019.) $)
  wl-sbalnae $p |- ( ( -. A. x x = y /\ -. A. x x = z ) ->
           ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) ) $=
    ( weq wal wn wa wsb wb sb4b nfnae nfan wnf nfeqf 19.21t albid sbequ12 sps
    wi bicomd syl sylan9bbr alcom syl6bb adantl bitr4d ex dral2 bitr3d pm2.61d2
    ) BCEBFGZBDEBFGZHZCDEZCFZABFZCDIZACDIZBFZJZUNUPGZVAUNVBHURUOATZBFZCFZUTVBUR
    UOUQTZCFUNVEUQCDKUNVFVDCULUMCBCCLBDCLMUNUOBNZVFVDJCDBOVGVDVFUOABPUAUBQUCVBU
    TVEJUNVBUTVCCFZBFVEVBUSVHBCDBLACDKQVCBCUDUEUFUGUHUPUQURUTUOUQURJCUQCDRSAUSC
    DBUOAUSJCACDRSUIUJUK $.

  ${
    $d x y $.
    $( A theorem used in elimination of disjoint variable restriction on ` x `
       and ` y ` by replacing it with a distinctor ` -. A. x x = z ` .
       (Contributed by NM, 15-May-1993.)  Proof is based on ~ wl-sbalnae now.
       See also ~ sbal1 .  (Revised by Wolf Lammen, 25-Jul-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    wl-sbal1 $p |- ( -. A. x x = z ->
             ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) ) $=
      ( weq wal wn wsb wb wl-naev wl-sbalnae mpancom ) BCEBFGBDEBFGABFCDHACDHBF
      IBDCBJABCDKL $.
  $}

  ${
    $d x z $.
    $( Move quantifier in and out of substitution.  Revised to remove a
       distinct variable constraint.  (Contributed by NM, 2-Jan-2002.)  Proof
       is based on ~ wl-sbalnae now.  See also ~ sbal2 .  (Revised by Wolf
       Lammen, 25-Jul-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    wl-sbal2 $p |- ( -. A. x x = y ->
             ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) ) $=
      ( weq wal wn wsb wb wl-naev wl-sbalnae mpdan ) BCEBFGBDEBFGABFCDHACDHBFIB
      CDBJABCDKL $.
  $}

  ${
    $d x y $.
    $( This theorem provides a basic working step in proving theorems about
       ` E* ` or ` E! ` .  (Contributed by Wolf Lammen, 3-Oct-2019.) $)
    wl-lem-exsb $p |- ( x = y -> ( ph <-> A. x ( x = y -> ph ) ) ) $=
      ( weq wi wal ax12v2 sp com12 impbid ) BCDZAKAEZBFZABCGMKALBHIJ $.
  $}

  $( This theorem provides a basic working step in proving theorems about
     ` E* ` or ` E! ` .  (Contributed by Wolf Lammen, 3-Oct-2019.) $)
  wl-lem-nexmo $p |- ( -. E. x ph -> A. x ( ph -> x = z ) ) $=
    ( wex wn wal weq wi alnex pm2.21 alimi sylbir ) ABDEAEZBFABCGZHZBFABIMOBANJ
    KL $.

  ${
    $d x z $.
    $( The antecedent ` A. x ( ph -> x = z ) ` relates to ` E* x ph ` , but is
       better suited for usage in proofs.  Note that no distinct variable
       restriction is placed on ` ph ` .

       This theorem provides a basic working step in proving theorems about
       ` E* ` or ` E! ` .  (Contributed by Wolf Lammen, 3-Oct-2019.) $)
    wl-lem-moexsb $p |- ( A. x ( ph -> x = z ) ->
                          ( E. x ph <-> [ z / x ] ph ) ) $=
      ( weq wi wal wex wsb nfa1 nfs1v ax12v2 syli sb2 syl6 exlimd spsbe impbid1
      sp ) ABCDZEZBFZABGABCHZUAAUBBTBIABCJUAASAEBFZUBAUASUCTBRABCKLABCMNOABCPQ
      $.
  $}

  ${
    wl-alanbii.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( This theorem extends ~ alanimi to a biconditional.  Recurrent usage
       stacks up more quantifiers.  (Contributed by Wolf Lammen,
       4-Oct-2019.) $)
    wl-alanbii $p |- ( A. x ph <-> ( A. x ps /\ A. x ch ) ) $=
      ( wal wa albii 19.26 bitri ) ADFBCGZDFBDFCDFGAKDEHBCDIJ $.
  $}

  ${
    $d u x $.  $d u y $.  $d u ph $.  $d u ps $.
    wl-mo2df.1 $e |- F/ x ph $.
    wl-mo2df.2 $e |- F/ y ph $.
    wl-mo2df.3 $e |- ( ph -> -. A. x x = y ) $.
    wl-mo2df.4 $e |- ( ph -> F/ y ps ) $.
    $( Version of ~ mo2 with a context and a distinctor replacing a distinct
       variable condition.  This version should be used only to eliminate dv
       conditions.  (Contributed by Wolf Lammen, 11-Aug-2019.) $)
    wl-mo2df $p |- ( ph -> ( E* x ps <-> E. y A. x ( ps -> x = y ) ) ) $=
      ( vu wmo weq wi wal wex mo2v wn wnf nfeqf1 naecoms wb syl nfimd wa nfeqf2
      nfald nfnae nfan1 equequ2 imbi2d adantl albid sylan ex cbvexd syl5bb ) BC
      JBCIKZLZCMZINABCDKZLZCMZDNBCIOAURVAIDFAUQDCEABUPDHAUSCMPZUPDQZGVCDCDCIRSU
      AUBUEAIDKZURVATZAVBVDVEGVBVDUCUQUTCVBVDCCDCUFCDIUDUGVDUQUTTVBVDUPUSBIDCUH
      UIUJUKULUMUNUO $.
  $}

  $( Closed form of ~ mo2 with a distinctor avoiding distinct variable
     conditions.  (Contributed by Wolf Lammen, 20-Sep-2020.) $)
  wl-mo2tf $p |- ( ( -. A. x x = y /\ A. x F/ y ph ) ->
          ( E* x ph <-> E. y A. x ( ph -> x = y ) ) ) $=
    ( weq wal wn wnf wa nfnae nfa1 nfan nfnf1 nfal simpl sp adantl wl-mo2df ) B
    CDBEFZACGZBEZHABCRTBBCBISBJKRTCBCCISCBACLMKRTNTSRSBOPQ $.

  ${
    $d u x $.  $d u y $.  $d u ph $.  $d u ps $.
    wl-eudf.1 $e |- F/ x ph $.
    wl-eudf.2 $e |- F/ y ph $.
    wl-eudf.3 $e |- ( ph -> -. A. x x = y ) $.
    wl-eudf.4 $e |- ( ph -> F/ y ps ) $.
    $( Version of ~ df-eu with a context and a distinctor replacing a distinct
       variable condition.  This version should be used only to eliminate dv
       conditions.  (Contributed by Wolf Lammen, 23-Sep-2020.) $)
    wl-eudf $p |- ( ph -> ( E! x ps <-> E. y A. x ( ps <-> x = y ) ) ) $=
      ( vu weu weq wb wal wex df-eu wn wnf nfeqf1 naecoms syl nfbid nfald nfnae
      wa nfeqf2 nfan1 equequ2 bibi2d adantl albid sylan ex cbvexd syl5bb ) BCJB
      CIKZLZCMZINABCDKZLZCMZDNBCIOAUQUTIDFAUPDCEABUODHAURCMPZUODQZGVBDCDCIRSTUA
      UBAIDKZUQUTLZAVAVCVDGVAVCUDUPUSCVAVCCCDCUCCDIUEUFVCUPUSLVAVCUOURBIDCUGUHU
      IUJUKULUMUN $.
  $}

  $( Closed form of ~ df-eu with a distinctor avoiding distinct variable
     conditions.  (Contributed by Wolf Lammen, 23-Sep-2020.) $)
  wl-eutf $p |- ( ( -. A. x x = y /\ A. x F/ y ph ) ->
          ( E! x ph <-> E. y A. x ( ph <-> x = y ) ) ) $=
    ( weq wal wn wnf wa nfnae nfa1 nfan nfnf1 nfal simpl sp adantl wl-eudf ) BC
    DBEFZACGZBEZHABCRTBBCBISBJKRTCBCCISCBACLMKRTNTSRSBOPQ $.

  ${
    $d x z $.  $d y z $.
    $( ~ euequ1 proved with a distinctor.  (Contributed by Wolf Lammen,
       23-Sep-2020.) $)
    wl-euequ1f $p |- ( -. A. x x = y -> E! x x = y ) $=
      ( vz weq wal wn wb wex weu ax6ev nfv nfnae nfeqf2 equequ2 equcoms alrimdd
      wi a1i eximd mpi df-eu sylibr ) ABDZAEFZUCACDGZAEZCHZUCAIUDCBDZCHUGCBJUDU
      HUFCUDCKUDUHUEAABALABCMUHUEQUDUEBCBCANORPSTUCACUAUB $.
  $}

  ${
    $d u x y $.  $d u ph $.
    $( Closed form of ~ mo2 .  (Contributed by Wolf Lammen, 18-Aug-2019.) $)
    wl-mo2t $p |- ( A. x F/ y ph ->
                      ( E* x ph <-> E. y A. x ( ph -> x = y ) ) ) $=
      ( vu wmo weq wi wal wex wnf mo2v nfnf1 nfal nfa1 nfvd nfimd nfald equequ2
      sp wb imbi2d albidv a1i cbvexd syl5bb ) ABEABDFZGZBHZDIACJZBHZABCFZGZBHZC
      IABDKUJUHUMDCUICBACLMUJUGCBUIBNUJAUFCUIBSUJUFCOPQDCFZUHUMTGUJUNUGULBUNUFU
      KADCBRUAUBUCUDUE $.
  $}

  ${
    $d x y u $.  $d ph u $.
    $( Closed form of ~ mo3 .  (Contributed by Wolf Lammen, 18-Aug-2019.) $)
    wl-mo3t $p |- ( A. x F/ y ph -> ( E* x ph <->
               A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) ) $=
      ( vu wnf wal wmo wsb wa weq wi nfa1 nfmo1 nfnf1 sp nfmod nfan1 wex alrimd
      nfal mo2v spsbim equsb3 syl6ib anim12d equtr2 exlimiv sylbi adantl alrimi
      syl6 ex nfs1v pm3.3 com23 sps aleximi alcoms moabs wl-mo2t imbi12d syl5bb
      wl-sb8et syl5ibr impbid ) ACEZBFZABGZAABCHZIZBCJZKZCFZBFZVGVHVMBVFBLZABMV
      GVHVMVGVHIVLCVGVHCVFCBACNTVGACBVOVFBOPQVHVLVGVHABDJZKZBFZDRVLABDUAVRVLDVR
      VJVPCDJZIVKVRAVPVIVSVQBOVRVIVPBCHVSAVPBCUBCBDUCUDUEBCDUFUKUGUHUIUJULSVNVH
      VGVICRZAVKKZBFZCRZKZVLWDCBVLBFZVIWBCWEVIWABVLBLABCUMVLVIWAKBVLAVIVKAVIVKU
      NUOUPSUQURVHABRZVHKVGWDABUSVGWFVTVHWCABCVCABCUTVAVBVDVE $.
  $}

  ${
    $d u v x $.  $d u v y $.  $d u v ph $.
    $( Substitution of variable in universal quantifier.  Closed form of
       ~ sb8eu .  (Contributed by Wolf Lammen, 11-Aug-2019.) $)
    wl-sb8eut $p |- ( A. x F/ y ph -> ( E! x ph <-> E! y [ y / x ] ph ) ) $=
      ( vu vv wnf wal weq wb wex wsb weu nfnf1 nfal equsb3 sblbis nfa1 sp nfsbd
      df-eu nfvd nfbid nfxfrd wi sbequ a1i cbvald nfv sb8 bicomi 3bitr3g exbidv
      albii 3bitr4g ) ACFZBGZABDHZIZBGZDJABCKZCDHZIZCGZDJABLUTCLUPUSVCDUPURBEKZ
      EGZURBCKZCGUSVCUPVDVFECUOCBACMNVDABEKZEDHZIUPCUQVHABEEBDOPUPVGVHCUPABECUO
      BQUOBRSUPVHCUAUBUCECHVDVFIUDUPURECBUEUFUGUSVEURBEUREUHUIUJVFVBCUQVAABCCBD
      OPUMUKULABDTUTCDTUN $.
  $}

  ${
    $( Substitution of variable in universal quantifier.  Closed form of
       ~ sb8mo .

       This theorem relates to ~ wl-mo3t , since replacing ` ph ` with
       ` [ y / x ] ph ` in the latter yields subexpressions like
       ` [ x / y ] [ y / x ] ph ` , which can be reduced to ` ph ` via ~ sbft
       and ~ sbco .  So ` E* x ph <-> E* y [ y / x ] ph ` is provable from
       ~ wl-mo3t in a simple fashion, unfortunately only if ` x ` and ` y ` are
       known to be distinct.  To avoid any hassle with distinctors, we prefer
       to derive this theorem independently, ignoring the close connection
       between both theorems.  From an educational standpoint, one would assume
       ~ wl-mo3t to be more fundamental, as it hints how the "at most one"
       objects on both sides of the biconditional correlate (they are the
       same), if they exist at all, and then prove this theorem from it.
       (Contributed by Wolf Lammen, 11-Aug-2019.) $)
    wl-sb8mot $p |- ( A. x F/ y ph -> ( E* x ph <-> E* y [ y / x ] ph ) ) $=
      ( wnf wal wex weu wi wsb wmo wl-sb8et wl-sb8eut imbi12d df-mo 3bitr4g ) A
      CDBEZABFZABGZHABCIZCFZSCGZHABJSCJPQTRUAABCKABCLMABNSCNO $.
  $}

  ${
    $d x y $.
    $( Version of ~ ax-11 with distinct variable conditions.  Currently
       implemented as an axiom to detect unintended references to the
       foundational axiom ~ ax-11 .  It will later be converted into a theorem
       directly based on ~ ax-11 .  (Contributed by Wolf Lammen,
       28-Jun-2019.) $)
    ax-wl-11v $a |- ( A. x A. y ph -> A. y A. x ph ) $.
  $}

  $( A transitive law for variable identifying expressions.  (Contributed by
     Wolf Lammen, 30-Jun-2019.) $)
  wl-ax11-lem1 $p |- ( A. x x = y -> ( A. x x = z <-> A. y y = z ) ) $=
    ( weq wal wl-aetr wi aecoms impbid ) ABDAEACDAEZBCDBEZABCFKJGBABACFHI $.

  ${
    $d u x $.
    $( Lemma.  (Contributed by Wolf Lammen, 30-Jun-2019.) $)
    wl-ax11-lem2 $p |- ( ( A. u u = y /\ -. A. x x = y ) -> A. x u = y ) $=
      ( weq wal wn wa wb sp aev pm2.21 impbid2 anim12i wl-aleq sylibr ) CBDZCEZ
      ABDAEZFZGPACDAEZRHZGPAEQPSUAPCISTRACABAJRTKLMACBNO $.
  $}

  ${
    $d u x $.
    $( Lemma.  (Contributed by Wolf Lammen, 30-Jun-2019.) $)
    wl-ax11-lem3 $p |- ( -. A. x x = y -> F/ x A. u u = y ) $=
      ( weq wal wn nfna1 wl-naev nfa1 nfan axc11n wl-aetr syl5 aecoms imdistani
      wa wi con3d wl-ax11-lem2 syl alrimi sylan2 expcom ax-wl-11v syl6 nf5d ) A
      BDZAEZFZCBDZCEZAUGAGUIUKUJAEZCEZUKAEUKUIUMUIUKCADZCEZFZUMABACHUKUPPZULCUK
      UPCUJCIUNCGJUQUKUIPULUKUPUIUKUHUOUHUOQBCUHBADBEBCDBEUOABKBCALMNROABCSTUAU
      BUCUJCAUDUEUF $.
  $}

  ${
    $d u x $.
    $( Lemma.  (Contributed by Wolf Lammen, 30-Jun-2019.) $)
    wl-ax11-lem4 $p |- F/ x ( A. u u = y /\ -. A. x x = y ) $=
      ( weq wal wn wa ancom nfna1 wl-ax11-lem3 nfan1 nfxfr ) CBDCEZABDZAEFZGOMG
      AMOHOMANAIABCJKL $.
  $}

  $( Lemma.  (Contributed by Wolf Lammen, 30-Jun-2019.) $)
  wl-ax11-lem5 $p |- ( A. u u = y -> ( A. u [ u / y ] ph <-> A. y ph ) ) $=
    ( wsb weq wb sbequ12r sps dral1 ) ABCDZACBCBEJAFCACBGHI $.

  ${
    $d u x $.
    $( Lemma.  (Contributed by Wolf Lammen, 30-Jun-2019.) $)
    wl-ax11-lem6 $p |- ( ( A. u u = y /\ -. A. x x = y ) ->
                               ( A. u A. x [ u / y ] ph <-> A. x A. y ph ) ) $=
      ( wsb wal wn wa ax-wl-11v impbii wb nfna1 wl-ax11-lem3 nfan1 wl-ax11-lem5
      weq adantl albid ancoms syl5bb ) ACDEZBFDFZUADFZBFZDCPDFZBCPZBFGZHACFZBFZ
      UBUDUADBIUABDIJUGUEUDUIKUGUEHUCUHBUGUEBUFBLBCDMNUEUCUHKUGACDOQRST $.
  $}

  $( Lemma.  (Contributed by Wolf Lammen, 30-Jun-2019.) $)
  wl-ax11-lem7 $p |- ( A. x ( -. A. x x = y /\ ph ) <->
                                              ( -. A. x x = y /\ A. x ph ) ) $=
    ( weq wal wn nfna1 19.28 ) BCDZBEFABIBGH $.

  ${
    $d u x $.
    $( Lemma.  (Contributed by Wolf Lammen, 30-Jun-2019.) $)
    wl-ax11-lem8 $p |- ( ( A. u u = y /\ -. A. x x = y ) ->
                               ( A. u A. x [ u / y ] ph <-> A. y A. x ph ) ) $=
      ( weq wal wn wsb wb axc11n con3i wa wi wl-ax11-lem1 notbid anbi1d sbequ12
      wl-ax11-lem4 equcoms wl-ax11-lem7 sps adantr albid ex syl5 pm5.32d bitr4d
      dral1 3bitr3g bitr3d pm5.32 sylibr imp sylan2 ) BCEBFZGZDCEZDFZCBECFZGZAC
      DHZBFZDFZABFZCFZIZUSUOCBJKURUTVFURUTVCLZUTVELZIUTVFMURDBEDFZGZVCLZVGVHURV
      JUTVCURVIUSDCBNOZPURVJVBLZDFUTVDLZCFVKVHVMVNDCURVMUTVBLVNURVJUTVBVLPURUTV
      DVBUTUPURVDVBIZUOUSBCJKURUPVOURUPLAVABBCDRURAVAIZUPUQVPDVPCDACDQSUAUBUCUD
      UEUFUGUHVBDBTVDCBTUIUJUTVCVEUKULUMUN $.
  $}

  $( The easy part when ` x ` coincides with ` y ` .  (Contributed by Wolf
     Lammen, 30-Jun-2019.) $)
  wl-ax11-lem9 $p |- ( A. x x = y -> ( A. y A. x ph <-> A. x A. y ph ) ) $=
    ( wal wb weq biidd dral1 aecoms ) ABDZCDACDZBDECBJKCBJKEBCAABCBCFBDAGHIHI
    $.

  ${
    $d u x $.
    $( We now have prepared everything.  The unwanted variable ` u ` is just in
       one place left. ~ pm2.61 can be used in conjunction with ~ wl-ax11-lem9
       to eliminate the second antecedent.  Missing is something along the
       lines of ~ ax-6 , so we could remove the first antecedent.  But the
       Metamath axioms cannot accomplish this.  Such a rule must reside one
       abstraction level higher than all others:  It says that a distinctor
       implies a distinct variable condition on its contained setvar.  This is
       only needed if such conditions are required, as ax-11v does.  The result
       of this study is for me, that you cannot introduce a setvar capturing
       this condition, and hope to eliminate it later.  (Contributed by Wolf
       Lammen, 30-Jun-2019.) $)
    wl-ax11-lem10 $p |- ( A. y y = u -> ( -. A. x x = y -> ( A. y A. x ph
                                                  -> A. x A. y ph ) ) ) $=
      ( weq wal wn wi wa wsb wl-ax11-lem8 wl-ax11-lem6 bitr3d biimpd ex aecoms
      ) BCEBFGZABFCFZACFBFZHZHDCDCEDFZQTUAQIZRSUBACDJBFDFRSABCDKABCDLMNOP $.
  $}

  $( Substituting ` y ` for ` x ` and then ` z ` for ` y ` is equivalent to
     substituting ` z ` for both ` x ` and ` y ` .  Copy of ~~? sbcom3OLD with
     a shortened proof.

     Keep this theorem for a while here because an external reference to it
     exists.

     (Contributed by Giovanni Mascellani, 8-Apr-2018.)  (Proof shortened by
     Wolf Lammen, 15-Sep-2018.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  wl-sbcom3 $p |- ( [ z / y ] [ y / x ] ph <-> [ z / x ] [ z / y ] ph ) $=
    ( wsb weq wal wb nfa1 sbequ sps sbbid wn pm5.74i albii sb4b 3bitr4d pm2.61i
    wi a1i sbcom bitri ) ABCEZCDEZABDEZCDEZACDEBDECDFZCGZUDUFHUHUCUECDUGCIUGUCU
    EHCACDBJZKLUHMZUGUCSZCGZUGUESZCGZUDUFULUNHUJUKUMCUGUCUEUINOTUCCDPUECDPQRABD
    CUAUB $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1. Bootstrapping classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c wl-el wl-el2 $.

  $( Redefine ` e. ` in a class context to avoid overloading and syntax check
     errors in mmj2.  This operator requires ` x ` and ` B ` distinct. $)
  wcel-wl $a wff x wl-el B $.
  $( Redefine ` e. ` in a set context to avoid syntax check errors in mmj2.
     ` x ` and ` y ` must be distinct.  (Contributed by Wolf Lammen,
     27-Nov-2021.) $)
  wel-wl $p wff x wl-el y $=
    ( cv wcel-wl ) ABCD $.

  $( Redefine ` e. ` in a class context to avoid overloading and syntax check
     errors in mmj2. ` x ` and ` B ` may not be distinct. $)
  wcel2-wl $a wff x wl-el2 B $.
  $( Redefine ` e. ` in a set context to avoid syntax check errors in mmj2.  It
     is no syntactic error to assign the same variable to ` x ` and ` y ` .
     (Contributed by Wolf Lammen, 27-Nov-2021.) $)
  wel2-wl $p wff x wl-el2 y $=
    ( cv wcel2-wl ) ABCD $.

  ${
    $d x y A $.
    $( In ZFC, as presented in this document, classes are meant to be just a
       notational convenience, that can be reduced to pure set theory by means
       of ~ df-clab (there stated in the eliminable property).  That is, in an
       expression ` x e. A ` , the class variable ` A ` is implicitely assumed
       to represent an expression ` { z | ph } ` with some appropriate ` ph ` .
       Unfortunately, ` ph ` syntactically covers any well-formed formula
       (wff), including ` z e. A ` .  This choice inevitably breaks the stated
       property.  And it potentially carries over to any expression containing
       class variables.  To fix this, a simple rule could exclude class
       variables at all in a class defining wff.  A more elaborate rule could
       detect, and limit exclusion to proper classes (potentially problematic).
       In any case, the verification process should enforce any such rule
       during replacement, which it currently does not.  The result is that we
       rely on the awareness of theorem designers to this problem.  It seems,
       in ZFC proper classes are reduced to a few instances only, so a careful
       study may reveal that this limited use does not impose logical loop
       holes.  It must be said, still, this necessary extra knowledge
       contradicts the general philosophy of Metamath, trying to establish
       certainty by a machine executable confirmation.

       An extension to ZFC allows classes to exist on their own.  Classes are
       then extensions to sets, also seamlessly extending the idea of
       elementhood.  In order to move from the general to the specific, sets
       presuppose classes, so classes should be introduced first.  This is
       somewhat in opposition to the classic order of introduction of syntactic
       elements, but has been carried out in the past, for example by the
       von-Neumann theory of classes.

       In the context of Metamath, which is a purely text-based syntactical
       concept, no semantics are imposed at the very beginning on classes.
       Instead axioms will narrow down bit by bit how elementhood behaves in
       proofs, of course always with the intuitive understanding of a human in
       mind.

       One basic property of elementhood we expect is that the 'element' is
       replaceable with something equal to it.  Or that equality is finer
       grained than the elementhood relation.  This idea is formally expressed
       in terms coined 'implicit substitution' in this document:
       ` ( ( x = y ) -> ( x e. A <-> y e. A ) ) ` .  This axiom prepares this
       notation.

       Note that particular constructions of classes like that in ~ df-clab in
       fact allow to prove this axiom.  Can we expect to eliminate this axiom
       then?  No, the generalizing term still refers to an unexplained subterm
       ` x e. A ` , so this axiom recurs in the general case.  On the other
       hand, our axiom here stays true, even when just the existence of a class
       is known, as is often the case after applying the axiom of choice,
       without a chance to actually construct it.

       We provide a version of this axiom, that requires all variables to be
       distinct.  Step by step these restrictions are lifted, in the end
       covering the most general term ` A e. B ` .

       This axiom is meant as a replacement for ~ ax-8 .  (Contributed by Wolf
       Lammen, 27-Nov-2021.) $)
    ax-wl-8cl $a |- ( x = y -> ( x wl-el A -> y wl-el A ) ) $.
  $}

  ${
    $d x u A $.  $d y A $.  $d y u $.
    $( Lifting the distinct variable constraint on ` x ` and ` y ` in
       ~ ax-wl-8cl .  (Contributed by Wolf Lammen, 27-Nov-2021.) $)
    wl-ax8clv1 $p |- ( x = y -> ( x wl-el A -> y wl-el A ) ) $=
      ( vu weq wa wex wcel-wl wi equvinv ax-wl-8cl equcoms sylan9 exlimiv sylbi
      ) ABEDAEZDBEZFZDGACHZBCHZIZABDJRUADPSDCHZQTSUBIADADCKLDBCKMNO $.
  $}

  ${
    $d x u A $.
    $( Show that the definition ~ df-wl-clelv2 is conservative.  (Contributed
       by Wolf Lammen, 27-Nov-2021.) $)
    wl-clelv2-just $p |- ( x wl-el A <-> A. u ( u = x -> u wl-el A ) ) $=
      ( weq wcel-wl wi wal ax-wl-8cl equcoms impbid equsalvw bicomi ) BADZBCEZF
      BGACEZNOBAMNOBACHONFABABCHIJKL $.
  $}

  ${
    $d u A $.  $d u x $.
    $( Define the term ` x e. A ` , ` x ` in ` A ` permitted.  (Contributed by
       Wolf Lammen, 27-Nov-2021.) $)
    df-wl-clelv2 $a |- ( x wl-el2 A <-> A. u ( u = x -> u wl-el A ) ) $.
  $}

  ${
    $d u t A $.  $d u t x $.  $d u t y $.
    $( Axiom ~ ax-wl-8cl carries over to our new definition ~ df-wl-clelv2 .
       (Contributed by Wolf Lammen, 27-Nov-2021.) $)
    wl-ax8clv2 $p |- ( x = y -> ( x wl-el2 A -> y wl-el2 A ) ) $=
      ( vu vt weq wa wex wcel2-wl wi equvinv wcel-wl df-wl-clelv2 equtrr imim1d
      wal alimdv syl5bi equeuclr syl6ibr sylan9 exlimiv sylbi ) ABFDAFZDBFZGZDH
      ACIZBCIZJZABDKUFUIDUDUGEDFZECLZJZEPZUEUHUGEAFZUKJZEPUDUMAECMUDUOULEUDUJUN
      UKDAENOQRUEUMEBFZUKJZEPUHUEULUQEUEUPUJUKDEBSOQBECMTUAUBUC $.
  $}

$( (End of Wolf Lammen's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Brendan Leahy
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  ${
    $d y ph $.  $d x A $.  $d x y $.
    $( Abstraction restricted to an indexed union.  (Contributed by Brendan
       Leahy, 26-Oct-2017.) $)
    rabiun $p |- { x e. U_ y e. A B | ph } = U_ y e. A { x e. B | ph } $=
      ( ciun crab cv wcel wa cab eliun anbi1i r19.41v bitr4i abbii df-rab iunab
      wrex 3eqtr4i wceq a1i iuneq2i eqtr4i ) ABCDEFZGZCDBHZEIZAJZBKZFZCDABEGZFU
      GUEIZAJZBKUICDSZBKUFUKUNUOBUNUHCDSZAJUOUMUPACUGDELMUHACDNOPABUEQUICBDRTCD
      ULUJULUJUACHDIABEQUBUCUD $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y C $.
    $( Indexed union of class difference with the subtrahend held constant.
       (Contributed by Brendan Leahy, 6-Aug-2018.) $)
    iundif1 $p |- U_ x e. A ( B \ C ) = ( U_ x e. A B \ C ) $=
      ( vy cdif ciun cv wcel wrex wn wa r19.41v eldif rexbii eliun anbi1i eqriv
      3bitr4i ) EABCDFZGZABCGZDFZEHZTIZABJZUDUBIZUDDIKZLZUDUAIUDUCIUDCIZUHLZABJ
      UJABJZUHLUFUIUJUHABMUEUKABUDCDNOUGULUHAUDBCPQSAUDBTPUDUBDNSR $.
  $}

  $( The difference of images is a subset of the image of the difference.
     (Contributed by Brendan Leahy, 21-Aug-2020.) $)
  imadifss $p |- ( ( F " A ) \ ( F " B ) ) C_ ( F " ( A \ B ) ) $=
    ( cima cdif cun wss ssun2 undif2 sseqtr4i imass2 ax-mp imaundi sseqtri mpbi
    ssundif ) CADZCBDZCABEZDZFZGQRETGQCBSFZDZUAAUBGQUCGABAFUBABHBAIJAUBCKLCBSMN
    QRTPO $.

  ${
    $d w x y z A $.  $d w x y z B $.
    $( Equality theorem for currying.  (Contributed by Brendan Leahy,
       2-Jun-2021.) $)
    cureq $p |- ( A = B -> curry A = curry B ) $=
      ( vx vy vz wceq cdm cop wbr copab cmpt ccur dmeq dmeqd opabbidv mpteq12dv
      cv breq df-cur 3eqtr4g ) ABFZCAGZGZCQDQHZEQZAIZDEJZKCBGZGZUDUEBIZDEJZKALB
      LUACUCUGUIUKUAUBUHABMNUAUFUJDEUDUEABROPCDEASCDEBST $.

    $( Equality theorem for uncurrying.  (Contributed by Brendan Leahy,
       2-Jun-2021.) $)
    unceq $p |- ( A = B -> uncurry A = uncurry B ) $=
      ( vy vz vx wceq cfv wbr coprab cunc fveq1 breqd oprabbidv df-unc 3eqtr4g
      cv ) ABFZCPZDPZEPZAGZHZECDIRSTBGZHZECDIAJBJQUBUDECDQUAUCRSTABKLMECDANECDB
      NO $.

    $d x y z C $.  $d w x y z F $.  $d w x y z V $.  $d w x y z W $.
    $( Functional property of currying.  (Contributed by Brendan Leahy,
       2-Jun-2021.) $)
    curf $p |- ( ( F : ( A X. B ) --> C /\ B e. ( V \ { (/) } ) /\ C e. W ) ->
      curry F : A --> ( C ^m B ) ) $=
      ( vx vy vz wf c0 wcel cv cmpt wa sylan2 eqid wb cdm wceq cxp csn cdif w3a
      cmap ccur cop cfv opelxpi ffvelrn anassrs 3ad2antl1 elmapg ancoms 3adant1
      fmptd adantr mpbird wne eldifsni wbr copab df-cur fdm dmeqd dmxp sylan9eq
      co mpteq1d wfun ffun funbrfv2b syl eleq2d opelxp syl6bb anbi1d bitrd ibar
      anass eqcom anbi2i bitr3i syl6rbb sylan9bb df-mpt syl6eqr mpteq2dva eqtrd
      opabbidv syl5eq feq1d 3adant3 ) ABUAZCDJZBEKUBUCZLZCFLZUDZACBUEVHZDUFZJZA
      WTGAHBGMZHMZUGZDUHZNZNZJZWSGAXGWTXHWSXCALZOXGWTLZBCXGJZWOWQXJXLWRWOXJOZHB
      XFCXGWOXJXDBLZXFCLZXJXNOZWOXEWNLZXOXCXDABUIWNCXEDUJPUKXGQUPULWSXKXLRZXJWQ
      WRXRWOWRWQXRCBXGFWPUMUNUOUQURXHQUPWOWQXBXIRZWRWQWOBKUSZXSBEKUTWOXTOZAWTXA
      XHYAXAGDSZSZXEIMZDVAZHIVBZNZXHGHIDVCYAYGGAYFNZXHYAGYCAYFWOXTYCWNSAWOYBWNW
      NCDVDZVEABVFVGVIWOYHXHTXTWOGAYFXGXMYFXNYDXFTZOZHIVBXGXMYEYKHIWOYEXPXFYDTZ
      OZXJYKWOYEXEYBLZYLOZYMWODVJYEYORWNCDVKXEYDDVLVMWOYNXPYLWOYNXQXPWOYBWNXEYI
      VNXCXDABVOVPVQVRXJYKXJYKOZYMXJYKVSYPXPYJOYMXJXNYJVTYJYLXPYDXFWAWBWCWDWEWJ
      HIBXFWFWGWHUQWIWKWLPWMUR $.

    $( Functional property of uncurrying.  (Contributed by Brendan Leahy,
       2-Jun-2021.) $)
    uncf $p |- ( F : A --> ( C ^m B ) -> uncurry F : ( A X. B ) --> C ) $=
      ( vy vx vz wf cv cfv wcel wral wa wceq coprab cdm fdm eleq2d wb 3syl cmap
      co cxp cunc ffvelrn elmapi syl ffvelrnda anasss ralrimivva wbr df-unc cop
      df-br elfvdm sylbi syl5ib pm4.71rd elmapfun funbrfv2b eqcom anbi12d bitrd
      wfun a1i pm5.32da anass syl6bbr oprabbidv syl5eq feq1d cmpt2 eqcomi fmpt2
      df-mpt2 mpbird ) ACBUAUBZDHZABUCZCDUDZHZEIZFIZDJZJZCKZEBLFALZVRWFFEABVRWC
      AKZWBBKZWFVRWHMZBCWBWDWJWDVQKZBCWDHZAVQWCDUEZWDCBUFZUGUHUIUJVRWAVSCWHWIMG
      IZWENZMZFEGOZHWGVRVSCVTWRVRVTWBWOWDUKZFEGOWRFEGDULVRWSWQFEGVRWSWHWIWPMZMZ
      WQVRWSWHWSMXAVRWSWHWSWCDPZKZVRWHWSWBWOUMZWDKXCWBWOWDUNXDWCDUOUPVRXBAWCAVQ
      DQRUQURVRWHWSWTWJWSWBWDPZKZWEWONZMZWTWJWKWDVDWSXHSWMWDCBUSWBWOWDUTTWJXFWI
      XGWPWJXEBWBWJWKWLXEBNWMWNBCWDQTRXGWPSWJWEWOVAVEVBVCVFVCWHWIWPVGVHVIVJVKFE
      ABWECWRFEABWEVLWRFEGABWEVOVMVNVHVP $.

    $( Value of currying.  (Contributed by Brendan Leahy, 2-Jun-2021.) $)
    curfv $p |- ( ( ( F Fn ( V X. W ) /\ A e. V /\ B e. W ) /\ W e. X ) ->
      ( ( curry F ` A ) ` B ) = ( A F B ) ) $=
      ( vy vx vz wcel wa ccur cfv cv cop cmpt wceq adantr cvv eqtrd cxp wfn w3a
      co dffn5 cureq sylbi fveq2 mpt2mpt wral fvex rgen2w a1i c0 wne mpt2curryd
      ne0i adantl 3adant2 fveq1d mptexg fveq2d mpteq2dv fvmptg sylan2 3ad2antl2
      opeq1 eqid opeq2 fvmpt df-ov syl6eqr 3ad2ant3 ) CDEUAZUBZADJZBEJZUCZEFJZK
      ZBACLZMZMBGEAGNZOZCMZPZMZABCUDZVTBWBWFVTWBAHDGEHNZWCOZCMZPZPZMZWFVRWBWNQV
      SVRAWAWMVOVQWAWMQVPVOVQKZWAIVNINZCMZPZLZWMVOWAWSQZVQVOCWRQWTIVNCUECWRUFUG
      RWOHGWKWRSDEHGIDEWQWKWPWJCUHUIWKSJZGEUJHDUJWOXAHGDEWJCUKULUMVQEUNUOVOEBUQ
      URUPTUSUTRVPVOVSWNWFQZVQVSVPWFSJXBGEWEFVAHAWLWFDSWMWIAQZGEWKWEXCWJWDCWIAW
      CVGVBVCWMVHVDVEVFTUTVRWGWHQZVSVQVOXDVPVQWGABOZCMZWHGBWEXFEWFWCBQWDXECWCBA
      VIVBWFVHXECUKVJABCVKVLVMRT $.

    $( Value of uncurrying.  (Contributed by Brendan Leahy, 2-Jun-2021.) $)
    uncov $p |- ( ( A e. V /\ B e. W ) ->
      ( A uncurry F B ) = ( ( F ` A ) ` B ) ) $=
      ( vw vy vz vx wcel wa cop cv cunc wbr cio cfv cvv wceq df-fv coprab df-br
      co df-unc eleq2i bitri wb vex weq w3a simp2 fveq2 3ad2ant1 simp3 breq123d
      eloprabga mp3an3 syl5bb iotabidv df-ov eqtri 3eqtr4g ) ADJZBEJZKZABLZFMZC
      NZOZFPZBVGACQZOZFPABVHUCZBVKQVEVIVLFVIVFVGLZGMZHMZIMZCQZOZIGHUAZJZVEVLVIV
      NVHJWAVFVGVHUBVHVTVNIGHCUDUEUFVCVDVGRJWAVLUGFUHVSVLIGHABVGDERVQASZVOBSZHF
      UIZUJVOBVPVGVRVKWBWCWDUKWBWCVRVKSWDVQACULUMWBWCWDUNUOUPUQURUSVMVFVHQVJABV
      HUTFVFVHTVAFBVKTVB $.

    $( Currying of uncurrying.  (Contributed by Brendan Leahy, 2-Jun-2021.) $)
    curunc $p |- ( ( F : A --> ( C ^m B ) /\ B =/= (/) ) ->
      curry uncurry F = F ) $=
      ( vx vy vz co wf wa cv cfv cmpt feqmptd cdm copab wceq syl wcel cvv simpl
      cmap wne cunc ccur cop wbr cxp uncf fdm dmeqd dmxp sylan9eq eqcomd df-mpt
      c0 ffvelrn elmapi wb wfun ffun funbrfv2b 3syl adantr eleq2d baib sylan9bb
      opelxp df-ov vex uncov mp2an eqtr3i eqeq1i eqcom bitri a1i bitrd opabbidv
      anbi12d 3eqtr4a adantlr mpteq12dva df-cur syl6eqr eqtr2d ) ACBUBHZDIZBUPU
      CZJZDEAEKZDLZMZDUDZUEZWJEAWGDWHWIUANWJWMEWNOZOZWKFKZUFZGKZWNUGZFGPZMWOWJE
      AWLWQXBWJWQAWHWIWQABUHZOAWHWPXCWHXCCWNIZWPXCQABCDUIZXCCWNUJRZUKABULUMUNWH
      WKASZWLXBQWIWHXGJZFBWRWLLZMWRBSZWTXIQZJZFGPWLXBFGBXIUOXHFBCWLXHWLWGSBCWLI
      AWGWKDUQWLCBURRNXHXAXLFGXHXAWSWPSZWSWNLZWTQZJZXLWHXAXPUSZXGWHXDWNUTXQXEXC
      CWNVAWSWTWNVBVCVDXHXMXJXOXKWHXMWSXCSZXGXJWHWPXCWSXFVEXRXGXJWKWRABVHVFVGXO
      XKUSXHXOXIWTQXKXNXIWTWKWRWNHZXNXIWKWRWNVIWKTSWRTSXSXIQEVJFVJWKWRDTTVKVLVM
      VNXIWTVOVPVQVTVRVSWAWBWCEFGWNWDWEWF $.

    $( Uncurrying of currying.  (Contributed by Brendan Leahy, 5-Jun-2021.) $)
    unccur $p |- ( ( F : ( A X. B ) --> C /\ B e. ( V \ { (/) } ) /\
      C e. W ) -> uncurry curry F = F ) $=
      ( vx vy vz wf wcel w3a cv co cfv coprab wa wceq wb sylan cxp c0 cdif ccur
      csn cunc cmpt2 wbr wfn ffn anim1i 3adant3 3anass curfv an32s eqeq1d eqcom
      sylanbr syl6bb cmap curf ffvelrnda elmapfn syl fnbrfvb anasss ibar adantl
      3bitr3d wn cdm cop df-br elfvdm sylbi eleq2d biimpa sylan2 ffvelrn elmapi
      fdm 3syl vex breldm eleq2 mpdan jca stoic1a simpl con3i 2falsed pm2.61dan
      syl2an oprabbidv df-unc df-mpt2 3eqtr4g fnov sylib 3ad2ant1 eqtr4d ) ABUA
      ZCDJZBEUBUEUCZKZCFKZLZDUDZUFZGHABGMZHMZDNZUGZDXGXKIMZXJXHOZUHZGHIPXJAKZXK
      BKZQZXNXLRZQZGHIPXIXMXGXPYAGHIXGXSXPYASXGXSQXKXOOZXNRZXTXPYAXGDXBUIZXEQZX
      SYCXTSXCXEYEXFXCYDXEXBCDUJZUKULYEXSQZYCXLXNRXTYGYBXLXNYDXSXEYBXLRZYDXSQYD
      XQXRLXEYHYDXQXRUMXJXKDABXDUNURUOUPXLXNUQUSTXGXQXRYCXPSZXGXQQZXOBUIZXRYIYJ
      XOCBUTNZKZYKXGAYLXJXHABCDEFVAZVBXOCBVCVDBXKXNXOVETVFXSXTYASXGXSXTVGVHVIXG
      XSVJZQXPYAXGXPXSXGAYLXHJZXPXSYNYPXPQZXQXRXPYPXJXHVKZKZXQXPXKXNVLZXOKYSXKX
      NXOVMYTXJXHVNVOYPYSXQYPYRAXJAYLXHWAVPVQVRZYQXQXRUUAYPXQXPXRYPXQQZXOVKZBRZ
      XKUUCKZXRXPUUBYMBCXOJUUDAYLXJXHVSXOCBVTBCXOWAWBXKXNXOHWCIWCWDUUDUUEXRUUCB
      XKWEVQWMUOWFWGTWHYOYAVJXGYAXSXSXTWIWJVHWKWLWNGHIXHWOGHIABXLWPWQXCXEDXMRZX
      FXCYDUUFYFGHABDWRWSWTXA $.
  $}

  ${
    $d a b x y A $.  $d a b x y B $.  $d a b x C $.
    $( Theorem related to pigeonhole principle.  (Contributed by Brendan Leahy,
       21-Aug-2020.) $)
    phpreu $p |- ( ( A e. Fin /\ A ~~ B ) -> ( A. x e. A E. y e. B x = C <->
      A. x e. A E! y e. B x = C ) ) $=
      ( vb va cfn wcel cen wbr wa cv wrex wral wmo wal syl nfcv cdom wf1 wfo wf
      wceq wrmo wreu crab cmpt wf1o wi eleq1 biimpac rabid simplbi2com impancom
      ancrd expimpd reximdv2 ralimia wb simplbi pm4.71rd copab cop df-mpt breqi
      df-br opabid 3bitri syl6bbr sylan2 rexbidva ralbiia rexbidv nfrab1 nfmpt1
      weq breq2 nfv breq1 cbvrexf syl6bb cbvralv bitr4i sylib csb nfcri nfcsb1v
      nfeq2 csbeq1a eqeq2d anbi12d cbvopab1 3eqtr4i nfel1 eleq1d elrabf simprbi
      nfbr nfan fmpti jctil dffo4 sylibr adantl cvv wss brrelex2i ssrab2 ssdomg
      relen mpisyl ensym domentr syl2anc ad2antlr enfi rabfi syl2an sbth simpll
      fodomfi fofinf1o syl3anc f1of1 dff12 mobidv cbvmo cbvalv mormo alimi 4syl
      alral rmobidva ex pm4.71d reu5 ralbii r19.26 bitri ) CHIZCDJKZLZAMZEUDZBD
      NZACOZUUGUUEBDUEZACOZLZUUEBDUFZACOZUUCUUGUUIUUCUUGUUIUUCUUGLZBMZUUDBECIZB
      DUGZEUHZKZBDUEZACOZUUIUUMUUPCUUQUAZUURBPZAQZUUSAQUUTUUMUUPCUUQUIZUVAUUMUU
      PCUUQUBZUUPCJKZUUAUVDUUGUVEUUCUUGUUPCUUQUCZFMZGMZUUQKZFUUPNZGCOZLUVEUUGUV
      LUVGUUGUUEBUUPNZACOZUVLUUFUVMACUUDCIZUUEUUEBDUUPUVOUUNDIZUUEUUNUUPIZUUELZ
      UVOUVPLZUUEUVQUVOUUEUVPUVQUVOUUELUUOUVPUVQUJUUEUVOUUOUUDECUKULUVQUVPUUOUU
      OBDUMZUNRUOZUPUQURUSUVNUURBUUPNZACOUVLUVMUWBACUVOUUEUURBUUPUVQUVOUVPUUEUU
      RUTUVQUVPUUOUVTVAUVSUUEUVRUURUVSUUEUVQUWAVBUURUUNUUDUVRBAVCZKUUNUUDVDUWCI
      UVRUUNUUDUUQUWCBAUUPEVEZVFUUNUUDUWCVGUVRBAVHVIVJZVKVLVMUVKUWBGACGAVQZUVKU
      VHUUDUUQKZFUUPNUWBUWFUVJUWGFUUPUVIUUDUVHUUQVRZVNUWGUURFBUUPFUUPSUUOBDVOZB
      UVHUUDUUQBUVHSZBUUPEVPBUUDSWSZUURFVSZUVHUUNUUDUUQVTZWAWBWCWDWEFUUPCBUVHEW
      FZUUQUWCUVHUUPIZUUDUWNUDZLZFAVCUUQFUUPUWNUHUVRUWQBAFUVRFVSUWOUWPBBFUUPUWI
      WGBUUDUWNBUVHEWHZWIWTBFVQZUVQUWOUUEUWPUUNUVHUUPUKUWSEUWNUUDBUVHEWJZWKWLWM
      UWDFAUUPUWNVEWNUWOUVHDIUWNCIZUUOUXABUVHDUWJBDSBUWNCUWRWOUWSEUWNCUWTWPWQWR
      XAXBFGUUPCUUQXCXDZXEUUMUUPCTKZCUUPTKZUVFUUBUXCUUAUUGUUBUUPDTKZDCJKUXCUUBD
      XFIUUPDXGUXECDJXKXHUUOBDXIUUPDXFXJXLCDXMUUPDCXNXOXPUUCUUPHIZUVEUXDUUGUUCD
      HIZUXFUUBUUAUXGCDXQULUUOBDXRRUXBUUPCUUQYBXSUUPCXTXOUUAUUBUUGYAUUPCUUQYCYD
      UUPCUUQYERUVAUVJFPZGQZUVCUVAUVGUXIFGUUPCUUQYFWRUXHUVBGAUWFUXHUWGFPUVBUWFU
      VJUWGFUWHYGUWGUURFBUWKUWLUWMYHWBYIWEUVBUUSAUURBDYJYKUUSACYMYLUUHUUSACUVOU
      UEUURBDUWEYNVMXDYOYPUULUUFUUHLZACOUUJUUKUXJACUUEBDYQYRUUFUUHACYSYTVJ $.
  $}

  ${
    $d u v w x y z A $.  $d u v w y z B $.
    $( A finite Cartesian product of numerable sets is numerable.  (Contributed
       by Brendan Leahy, 24-Feb-2019.) $)
    finixpnum $p |- ( ( A e. Fin /\ A. x e. A B e. dom card ) ->
      X_ x e. A B e. dom card ) $=
      ( vw vy vz vu vv wcel wral cixp cv wi c0 wa wceq eleq1d cfv wfn adantl wb
      cfn ccrd cdm csn csb cun raleq ixpeq1 ixp0x syl6eq imbi12d weq ralunb cvv
      vex wsbc ralsnsg sbcel1g bitrd ax-mp anbi2i bitri syl6bb snfi finnum mp1i
      wel wn pm2.27 cxp c1st c2nd cop cmpt wfo xpnum ancoms wf wrex xp1st ixpfn
      cin fvex fnsn jctir disjsn biimpri fnun syl2anr elixp sylib fvun1 anassrs
      mp3an2 biimprd ralimdva impr syl2an vsnid fvun2 csbfv fvsn eqcomi 3eqtr4g
      syl xp2nd eqeltrd sbcel12 sylibr ralun snex unex sylanbrc eqid fmptd cres
      syl2anc wss ssun1 fnssres sylancl ssralv fvres ralimia sylbi resex sselii
      ssun2 csbeq1 fvixp mpan2 nfcv nfcsb1v csbeq1a cbvixp eleq2s opelxpi disj3
      cdif sylbb1 difun2 syl6eqr uneq1d adantr op1std op2ndd opeq2d sneqd fvmpt
      reseq2d fnsnsplit 3eqtr4rd fveq2 eqeq2d rspcev ralrimiva dffo3 fonum expr
      uneq12d syl9r expimpd ancomsd com23 findcard2s imp ) BUBICUCUDZIZABJZABCK
      ZUVHIZUVIADLZJZAUVMCKZUVHIZMUVIANJZNUEZUVHIZMUVIAELZJZAUVTCKZUVHIZMZUWAAF
      LZCUFZUVHIZOZAUVTUWEUEZUGZCKZUVHIZMZUVJUVLMDEFBUVMNPZUVNUVQUVPUVSUVIAUVMN
      UHUWNUVOUVRUVHUWNUVOANCKUVRAUVMNCUIACUJUKQULDEUMZUVNUWAUVPUWCUVIAUVMUVTUH
      UWOUVOUWBUVHAUVMUVTCUIQULUVMUWJPZUVNUWHUVPUWLUWPUVNUVIAUWJJZUWHUVIAUVMUWJ
      UHUWQUWAUVIAUWIJZOUWHUVIAUVTUWIUNUWRUWGUWAUWEUOIZUWRUWGUAFUPZUWSUWRUVIAUW
      EUQUWGUVIAUWEUOURAUWECUVHUOUSUTVAVBVCVDUWPUVOUWKUVHAUVMUWJCUIQULUVMBPZUVN
      UVJUVPUVLUVIAUVMBUHUXAUVOUVKUVHAUVMBCUIQULUVRUBIUVSUVQNVEUVRVFVGFEVHVIZUW
      DUWMMUVTUBIUXBUWHUWDUWLUXBUWGUWAUWDUWLMZUXBUWGUWAUXCUWAUWDUWCUXBUWGOUWLUW
      AUWCVJUXBUWGUWCUWLUWGUWCOUWBUWFVKZUVHIZUXDUWKDUXDUVMVLRZUWEUVMVMRZVNZUEZU
      GZVOZVPZUWLUXBUWCUWGUXEUWBUWFVQVRUXBUXDUWKUXKVSGLZHLZUXKRZPZHUXDVTZGUWKJU
      XLUXBDUXDUXJUWKUXKUXBUVMUXDIZOZUXJUWJSZALZUXJRZCIZAUWJJZUXJUWKIUXRUXFUVTS
      ZUXIUWISZOUVTUWIWCNPZUXTUXBUXRUYEUYFUXRUXFUWBIZUYEUVMUWBUWFWAZAUVTCUXFWBX
      FZUWEUXGUWTUVMVMWDZWEZWFUYGUXBUVTUWEWGZWHZUVTUWIUXFUXIWIWJUXSUYCAUVTJZUYC
      AUWIJZUYDUXBUYGUYEUYAUXFRZCIZAUVTJZOZUYOUXRUYNUXRUYHUYTUYIAUVTCUXFUVMVLWD
      ZWKWLUYGUYEUYSUYOUYEUYGUYSUYOMUYEUYGOZUYRUYCAUVTVUBAEVHZOZUYCUYRVUDUYBUYQ
      CUYEUYGVUCUYBUYQPZUYEUYFUYGVUCOVUEUYLUVTUWIUXFUXIUYAWMWOWNQWPWQVRWRWSUXSA
      UWEUYBUFZUWFIZUYPUXSVUFUXGUWFUXSUWEUXJRZUWEUXIRZVUFUXGUXRUYEUYGUWEUWIIZOZ
      VUHVUIPZUXBUYJUXBUYGVUJUYNFWTZWFUYEUYFVUKVULUYLUVTUWIUXFUXIUWEXAWOWJAUWEU
      XJXBVUIUXGUWEUXGUWTUYKXCXDXEUXRUXGUWFIUXBUVMUWBUWFXGTXHUYPUYCAUWEUQZVUGUW
      SUYPVUNUAUWTUYCAUWEUOURVAAUWEUYBCXIVCXJUYCAUVTUWIXKXRAUWJCUXJUXFUXIVUAUXH
      XLXMWKXNUXKXOZXPUXBUXQGUWKUXBUXMUWKIZOZUXMUVTXQZUWEUXMRZVNZUXDIZUXMVUTUXK
      RZPZUXQVUPVVAUXBVUPVURUWBIZVUSUWFIZVVAVUPVURUVTSZUYAVURRZCIZAUVTJZVVDVUPU
      XMUWJSZUVTUWJXSZVVFAUWJCUXMWBZUVTUWIXTZUWJUVTUXMYAYBVUPVVJUYAUXMRZCIZAUWJ
      JZOVVIAUWJCUXMGUPZWKVVPVVIVVJVVPVVOAUVTJZVVIVVKVVPVVRMVVMVVOAUVTUWJYCVAVV
      OVVHAUVTVUCVVHVVOVUCVVGVVNCUYAUVTUXMYDQWPYEXFTYFAUVTCVURUXMUVTVVQYGZWKXNV
      VEUXMDUWJAUVMCUFZKZUWKUXMVWAIUWEUWJIZVVEUWIUWJUWEUWIUVTYIVUMYHZDUWJVVTUWE
      UWFUXMAUVMUWECYJYKYLADUWJCVVTDCYMAUVMCYNAUVMCYOYPYQVURVUSUWBUWFYRXRZTVUQV
      URUWEVUSVNZUEZUGZUXMUWJUWIYTZXQZVWFUGZVVBUXMUXBVWGVWJPVUPUXBVURVWIVWFUXBU
      VTVWHUXMUXBUVTUVTUWIYTZVWHUYGUXBUVTVWKPUYMUVTUWIYSUUAUVTUWIUUBUUCUUKUUDUU
      EVUPVVBVWGPZUXBVUPVVAVWLVWDDVUTUXJVWGUXDUXKUVMVUTPZUXFVURUXIVWFVURVUSUVMV
      VSUWEUXMWDZUUFVWMUXHVWEVWMUXGVUSUWEVURVUSUVMVVSVWNUUGUUHUUIUVAVUOVURVWFVV
      SVWEXLXMUUJXFTVUPUXMVWJPZUXBVUPVVJVWBVWOVVLVWCUWJUXMUWEUULYBTUUMUXPVVCHVU
      TUXDUXNVUTPUXOVVBUXMUXNVUTUXKUUNUUOUUPXRUUQHGUXDUWKUXKUURXNUXDUWKUXKUUSWJ
      UUTUVBUVCUVDUVETUVFUVG $.
  $}

  ${
    $d u v w x y z A $.  $d u v w x y z R $.
    $( Lemma for ~ fin2so .  (Contributed by Brendan Leahy, 29-Jun-2019.) $)
    fin2solem $p |- ( ( R Or x /\ ( y e. x /\ z e. x ) ) ->
      ( y R z -> { w e. x | w R y } [C.] { w e. x | w R z } ) ) $=
      ( cv wor wel wa wbr crab crpss wss wne wi w3a ancom wcel breq1 elrab sotr
      3anass bitr4i sylan2b anassrs ancomsd expdimp ss2rabdv wn biimpri adantll
      an32s sonr simprbi nsyl adantr nelne1 necomd syl2anc adantlrr wpss brrpss
      vex rabex df-pss bitri sylanbrc ex ) AFZEGZBAHZCAHZIZIZBFZCFZEJZDFZVOEJZD
      VIKZVRVPEJZDVIKZLJZVNVQIZVTWBMZVTWBNZWCWDVSWADVIVNDAHZVQVSWAOVNWGIZVQVSWA
      WHVSVQWAVJVMWGVSVQIWAOZVMWGIZVJWGVKVLPZWIWJWGVMIWKVMWGQWGVKVLUBUCVIVRVOVP
      EUAUDUEUFUGULUHVJVKVQWFVLVJVKIZVQIVOWBRZVOVTRZUIZWFVKVQWMVJWMVKVQIWAVQDVO
      VIVRVOVPESTUJUKWLWOVQWLVOVOEJZWNVIVOEUMWNVKWPVSWPDVOVIVRVOVOESTUNUOUPWMWO
      IWBVTVOWBVTUQURUSUTWCVTWBVAWEWFIVTWBWADVIAVCVDVBVTWBVEVFVGVH $.

    $( Any totally ordered Tarski-finite set is finite; in particular, no
       amorphous set can be ordered.  Theorem 2 of [[Levy58]] p. 4.
       (Contributed by Brendan Leahy, 28-Jun-2019.) $)
    fin2so $p |- ( ( A e. Fin2 /\ R Or A ) -> A e. Fin ) $=
      ( vz vx vy vv vw vu wcel wa cv wss c0 wbr wral wi wceq crpss cvv sylibr
      cfin2 wor ccrd cdm cfn wwe wex cxp cin wfr wne wn wrex wal crab cmpt cint
      crn cpw simplll ssrab2 sstr mpan elpw2g biimpar sylan2 ralrimivw wb rabex
      rgenw eqid eleq1 ralrnmpt ax-mp dfss3 adantlr adantr dmmpti neeq1i dm0rn0
      vex necon3bii sylbb1 adantl impcom wpo porpss a1i weq w3o solin fin2solem
      soss wel breq2 rabbidv ancom2s 3orim123d ralrimivva breq1 eqeq1 3orbi123d
      mpd ralbidv r19.21bi cbvmptv eqeq2 anasss issod adantll syl22anc elrnmpti
      syl fin2i2 sylib ssel2 anassrs elrab simplbi2 ad2antlr elint2 eleq2 bitri
      sonr eleq2d rspcv simprbi syl6 syl5bi imbi1d syl5ibcom syld adantlll mtod
      imp ex ralrimdva reximdva 3syl syldan alrimiv df-fr simpr sylanbrc weinxp
      expl df-we sqxpexg incom inex1g weeq1 spcegv ween cfin7 cfin5 cfin6 cfin3
      syl5eqel cfin4 fin23 fin34 fin45 fin56 fin67 fin71num biimpac sylan ) AUA
      IZABUBZAUCUDIZAUEIZUVHUVIJZACKZUFZCUGZUVJUVHUVIABAAUHZUIZUFZUVOUVLABUFZUV
      RUVLABUJZUVIUVSUVLDKZALZUWAMUKZJUVMEKZBNZULZCUWAOZEUWAUMZPZDUNUVTUVLUWIDU
      VLUWBUWCUWHUVLUWBJZUWCJZFUWAGKZFKZBNZGUWAUOZUPZURZUQZUWLUWDBNZGUWAUOZQZEU
      WAUMZUWHUWKUWRUWQIZUXBUWKUVHUWQAUSZLZUWQMUKZUWQRUBZUXCUVHUVIUWBUWCUTUWJUX
      EUWCUVHUWBUXEUVIUVHUWBJZUWDUXDIZEUWQOZUXEUXHUWOUXDIZFUWAOZUXJUXHUXKFUWAUW
      BUVHUWOALZUXKUWOUWALUWBUXMUWNGUWAVAUWOUWAAVBVCUVHUXKUXMUWOAUAVDVEVFVGUWOS
      IZFUWAOZUXJUXLVHUXNFUWAUWNGUWADWAZVIZVJZUXIUXKFEUWAUWOUWPSUWPVKZUWDUWOUXD
      VLVMVNTEUWQUXDVOTVPVQUWCUXFUWJUWPUDZMUKUWCUXFUXTUWAMFUWAUWOUWPUXQUXSVRVSU
      XTMUWQMUWPVTWBWCWDUWJUXGUWCUVIUWBUXGUVHUVIUWBJZUWABUBZUXGUWBUVIUYBUWAABWM
      WEUYBHCUWQRUWQRWFUYBUWQWGWHUYBHKZUWQIZUVMUWQIUYCUVMRNZHCWIZUVMUYCRNZWJZUY
      BUYDJZUYHCUWQUYIUYCUWTRNZUYCUWTQZUWTUYCRNZWJZEUWAOZUYHCUWQOZUYBUYNHUWQUYB
      UWOUWTRNZUWOUWTQZUWTUWORNZWJZEUWAOZFUWAOZUYNHUWQOZUYBUYSFEUWAUWAUYBFDWNZE
      DWNZJJZUWMUWDBNZFEWIZUWDUWMBNZWJUYSUWAUWMUWDBWKVUEVUFUYPVUGUYQVUHUYRDFEGB
      WLVUGUYQPVUEVUGUWNUWSGUWAUWMUWDUWLBWOWPZWHUYBVUDVUCVUHUYRPDEFGBWLWQWRXCWS
      UXOVUBVUAVHUXRUYNUYTFHUWAUWOUWPSUXSUYCUWOQZUYMUYSEUWAVUJUYJUYPUYKUYQUYLUY
      RUYCUWOUWTRWTUYCUWOUWTXAUYCUWOUWTRWOXBXDVMVNTXEUWTSIZEUWAOUYOUYNVHVUKEUWA
      UWSGUWAUXPVIZVJUYHUYMECUWAUWTUWPSFEUWAUWOUWTVUIXFZUVMUWTQUYEUYJUYFUYKUYGU
      YLUVMUWTUYCRWOUVMUWTUYCXGUVMUWTUYCRWTXBVMVNTXEXHXIXMXJVQAUWQXNXKEUWAUWTUW
      RUWPVUMVULXLXOUWJUXBUWHPZUWCUVIUWBVUNUVHUYAUXAUWGEUWAUYAVUDJZUXAUWFCUWAVU
      OCDWNZJZUXAUWFVUQUXAJUWEUVMUVMBNZVUQVURULZUXAUYAVUPVUSVUDUVIUWBVUPVUSUWBV
      UPJUVIUVMAIVUSUWAAUVMXPAUVMBYDVFXQVPVQVUDVUPUXAUWEVURPUYAVUDVUPJZUXAJUWEU
      VMUWTIZVURVUPUWEVVAPVUDUXAVVAVUPUWEUWSUWEGUVMUWAUWLUVMUWDBWTXRXSXTVUTUXAV
      VAVURPZVUTUVMUWRIZVURPUXAVVBVVCUVMUWOIZFUWAOZVUTVURVVCCEWNZEUWQOZVVEEUVMU
      WQCWAYAUXOVVGVVEVHUXRVVFVVDFEUWAUWOUWPSUXSUWDUWOUVMYBVMVNYCVUPVVEVURPVUDV
      UPVVEUVMUWLUVMBNZGUWAUOZIZVURVVDVVJFUVMUWAFCWIZUWOVVIUVMVVKUWNVVHGUWAUWMU
      VMUWLBWOWPYEYFVVJVUPVURVVHVURGUVMUWAUWLUVMUVMBWTXRYGYHWDYIUXAVVCVVAVURUWR
      UWTUVMYBYJYKYOYLYMYNYPYQYRXJVQXCUUFUUADECABUUBTUVHUVIUUCABUUGUUDABUUEXOUV
      HUVRUVOUVHUVPSIZUVQSIUVRUVOPAUAUUHVVLUVQUVPBUISBUVPUUIUVPBSUUJUURUVNUVRCU
      VQSAUVMUVQUUKUULYSYOYTACUUMTUVHAUUNIZUVJUVKUVHAUUOIZAUUPIVVMUVHAUUQIAUUSI
      VVNAUUTAUVAAUVBYSAUVCAUVDYSUVJVVMUVKAUVEUVFUVGYT $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Theorem to move the floor function across a strict inequality.
       (Contributed by Brendan Leahy, 25-Oct-2017.) $)
    ltflcei $p |- ( ( A e. RR /\ B e. RR ) -> ( ( |_ ` A ) < B <->
        A < -u ( |_ ` -u B ) ) ) $=
      ( vx cr wcel wa clt wbr cle c1 caddc co wceq cz syl wi adantl wb adantr
      cc cfl cneg flltp1 ad3antrrr cv crio renegcl flval ad3antlr fllep1 reflcl
      peano2re letr mpd3an3 mpan2d leneg sylan2 sylibd ancoms ltneg sylan recnd
      ax-1cn cmin negdi2 oveq1d negcl npcan eqtr2d sylancl breq2d bitrd anim12d
      cfv biimpd ancomsd impl wreu peano2zd znegcld rebtwnz breq1 oveq1 anbi12d
      flcl riota2 syl2an ad2antrr mpbid eqtrd zcnd flcld negcon2 mpbird breqtrd
      peano2cn ex ltnle ceige ceicl zred ltletr sylbird pm2.61d ceim1l ltleletr
      peano2rem 3com13 mpand biimprd peano2zm syl2anr eqbrtrd flle lelttr 3coml
      wn impbida ) ADEZBDEZFZAUAVNZBGHZABUBZUAVNZUBZGHZYAYCFZBAIHZYGYHYIYGYHYIF
      ZAYBJKLZYFGXSAYKGHXTYCYIAUCUDYJYKYFMZYEYKUBZMZYJYECUEZYDIHZYDYOJKLZGHZFZC
      NUFZYMXTYEYTMZXSYCYIXTYDDEZUUABUGZCYDUHOUIYJYMYDIHZYDYMJKLZGHZFZYTYMMZYAY
      CYIUUGYAYIYCUUGYAYIUUDYCUUFXTXSYIUUDPXTXSFZYIBYKIHZUUDUUIYIAYKIHZUUJXSUUK
      XTAUJQXTXSYKDEZYIUUKFUUJPXSUULXTXSYBDEZUULAUKZYBULOZQBAYKUMUNUOXSXTUULUUJ
      UUDRUUOBYKUPUQURUSYAYCUUFYAYCYDYBUBZGHZUUFXSUUMXTYCUUQRUUNYBBUTVAXSUUQUUF
      RXTXSUUPUUEYDGXSYBTEZJTEZUUPUUEMXSYBUUNVBVCUURUUSFZUUEUUPJVDLZJKLZUUPUUTY
      MUVAJKYBJVEVFUURUUPTEUUSUVBUUPMYBVGUUPJVHVAVIVJVKSVLVOVMVPVQYAUUGUUHRZYCY
      IXSYMNEYSCNVRZUVCXTXSYKXSYBAWEZVSVTXTUUBUVDUUCCYDWAOYSUUGCNYMYOYMMZYPUUDY
      RUUFYOYMYDIWBUVFYQUUEYDGYOYMJKWCVKWDWFWGWHWIWJYAYLYNRZYCYIXSYKTEZYETEUVGX
      TXSUURUVHXSYBUVEWKYBWPOXTYEXTYDUUCWLWKYKYEWMWGWHWNWOWQYAYIXQZYGPYCYAUVIAB
      GHZYGABWRZYAUVJBYFIHZYGXTUVLXSBWSQXSXTYFDEZUVJUVLFYGPXTUVMXSXTYFBWTZXAZQA
      BYFXBUNUOXCSXDYAYGFZYIYCUVPYIYCUVPYIFZYBYFJVDLZBGUVQYBYOAIHZAYQGHZFZCNUFZ
      UVRXSYBUWBMXTYGYICAUHUDUVQUVRAIHZAUVRJKLZGHZFZUWBUVRMZYAYGYIUWFYAYIYGUWFY
      AYIUWCYGUWEYAUVRBGHZYIUWCXTUWHXSBXEZQXSXTUVRDEZUWHYIFUWCPZXTUWJXSXTUVMUWJ
      UVOYFXGOQUWJXTXSUWKUVRBAXFXHUNXIXTYGUWEPXSXTUWEYGXTUWDYFAGXTYFTEUUSUWDYFM
      XTYFUVNWKVCYFJVHVJVKXJQVMVPVQYAUWFUWGRZYGYIXTUVRNEZUWACNVRUWLXSXTYFNEUWMU
      VNYFXKOCAWAUWAUWFCNUVRYOUVRMZUVSUWCUVTUWEYOUVRAIWBUWNYQUWDAGYOUVRJKWCVKWD
      WFXLWHWIWJXTUWHXSYGYIUWIUIXMWQYAUVIYCPYGYAUVIUVJYCUVKYAYBAIHZUVJYCXSUWOXT
      AXNSXSXTUUMUWOUVJFYCPZXSUUMXTUUNSUUMXSXTUWPYBABXOXPUNXIXCSXDXR $.

    $( Theorem to move the floor function across a non-strict inequality.
       (Contributed by Brendan Leahy, 25-Oct-2017.) $)
    leceifl $p |- ( ( A e. RR /\ B e. RR ) ->
          ( -u ( |_ ` -u A ) <_ B <-> A <_ ( |_ ` B ) ) ) $=
      ( cr wcel wa cfl cfv clt wbr wn cle wb ltflcei ancoms notbid reflcl lenlt
      cneg sylan2 ceicl zred sylan 3bitr4rd ) ACDZBCDZEZBFGZAHIZJZBARFGRZHIZJZA
      UGKIZUJBKIZUFUHUKUEUDUHUKLBAMNOUEUDUGCDUMUILBPAUGQSUDUJCDUEUNULLUDUJATUAU
      JBQUBUC $.
  $}

  ${
    $( Half-angle rule for sine.  (Contributed by Brendan Leahy,
       3-Aug-2018.) $)
    sin2h $p |- ( A e. ( 0 [,] ( 2 x. _pi ) ) -> ( sin ` ( A / 2 ) ) =
      ( sqrt ` ( ( 1 - ( cos ` A ) ) / 2 ) ) ) $=
      ( cc0 c2 cpi cmul co wcel cdiv cfv c1 ccos cmin cr sylancr cle wbr syl cc
      wceq 2cn cicc csin csqrt wss 0re 2re pire remulcli iccssre mp2an resincld
      sseli rehalfcld 1re recoscl resubcl cosbnd simprd subge0 halfnneg2 bitr3d
      cneg wb mpbid resqrtcld w3a elicc2i wa clt pm3.2i ledivmul mp3an23 bicomd
      2pos anbi12d cxr rehalfcl rexrd rexri elicc4 mp3an12 bitr4d biimpd 3impib
      0xr sylbi sinq12ge0 sqrtge0d cexp recnd ax-1cn coscl subcl halfcld halfcl
      sqsqrtd caddc sqcld mulcom sylancl oveq2d df-2 eqtri oveq1i syl6eq subdir
      mulid2i mp3an13 mulcl subsub3 3eqtr4d sincl pncand sincossq oveq1d eqtr3d
      cos2t wne 2ne0 divcan2 fveq2d eqtrd sincld divcan4 3eqtr2rd sq11d ) ABCDE
      FZUAFZGZACHFZUBIZJAKIZLFZCHFZUCIZYIYJYIAYHMABMGYGMGYHMUDUECDUFUGUHZBYGUIU
      JULZUMUKYIAMGZYOMGYQYRYNYRYMYRJMGZYLMGZYMMGZUNAUOZJYLUPNZUMZYRYLJOPZBYNOP
      ZYRJVBYLOPUUEAUQURYRBYMOPZUUEUUFYRYSYTUUGUUEVCUNUUBJYLUSNYRUUAUUGUUFVCUUC
      YMUTQVAVDZVEQYIYJBDUAFGZBYKOPYIYRBAOPZAYGOPZVFUUIBYGAUEYPVGYRUUJUUKUUIYRU
      UJUUKVHZUUIYRUULBYJOPZYJDOPZVHZUUIYRUUJUUMUUKUUNAUTYRUUNUUKYRDMGCMGZBCVIP
      ZVHUUNUUKVCUGUUPUUQUFVNVJADCVKVLVMVOYRYJVPGZUUIUUOVCZYRYJAVQVRBVPGDVPGUUR
      UUSWEDUGVSBDYJVTWAQWBWCWDWFYJWGQYIYRBYOOPYQYRYNUUDUUHWHQYIARGZYKCWIFZYOCW
      IFZSYIAYQWJUUTUVBYNUVACEFZCHFZUVAUUTYNUUTYMUUTJRGZYLRGYMRGWKAWLJYLWMNWNWP
      UUTUVCYMCHUUTUVCJCYJEFZKIZLFZYMUUTYJRGZUVCUVHSAWOZUVIJYJKIZCWIFZLFZCEFZJC
      UVLEFZJLFZLFZUVCUVHUVIJCEFZUVLCEFZLFZJJWQFZUVOLFZUVNUVQUVIUVTUVRUVOLFUWBU
      VIUVSUVOUVRLUVIUVLRGZCRGZUVSUVOSUVIUVKYJWLWRZTUVLCWSWTXAUVRUWAUVOLUVRCUWA
      CTXGXBXCXDXEUVIUWCUVNUVTSZUWEUVEUWCUWDUWFWKTJUVLCXFXHQUVIUVORGZUVQUWBSZUV
      IUWDUWCUWGTUWECUVLXINUVEUWGUVEUWHWKWKJUVOJXJXHQXKUVIUVAUVMCEUVIUVAUVLWQFZ
      UVLLFUVAUVMUVIUVAUVLUVIYKYJXLWRUWEXMUVIUWIJUVLLYJXNXOXPXOUVIUVGUVPJLYJXQX
      AXKQUUTUVGYLJLUUTUVFAKUUTUWDCBXRZUVFASTXSACXTVLYAXAYBXOUUTUVARGZUVDUVASZU
      UTYKUUTYJUVJYCWRUWKUWDUWJUWLTXSUVACYDVLQYEQYF $.
    $( Half-angle rule for cosine.  (Contributed by Brendan Leahy,
       4-Aug-2018.) $)
    cos2h $p |- ( A e. ( -u _pi [,] _pi ) -> ( cos ` ( A / 2 ) ) =
      ( sqrt ` ( ( 1 + ( cos ` A ) ) / 2 ) ) ) $=
      ( cpi co wcel c2 cdiv ccos cfv c1 caddc cr pire cc0 cle wbr wb wa cc wceq
      syl cneg cicc csqrt wss renegcli iccssre mp2an rehalfcld recoscld readdcl
      sseli sylancr cosbnd simpld recoscl cmin recn subneg addcom ancoms eqtr4d
      1re syl2an breq2d renegcl subge0 sylan2 halfnneg2 3bitr3d mpbid resqrtcld
      sylancl w3a elicc2i clt 2re 2pos pm3.2i lediv1 mp3an13 wne picn 2cn mp3an
      2ne0 divneg breq1i syl6bbr mp3an23 anbi12d rehalfcl rexrd halfpire elicc4
      cxr rexri mp3an12 bitr4d biimpd 3impib sylbi cosq14ge0 sqrtge0d cexp cmul
      recnd ax-1cn coscl addcl halfcld fveq2d halfcl cos2t eqtr3d oveq2d oveq1d
      sqsqrtd divcan2 coscld sqcld mulcl pncan3 divcan3 eqtrd 3eqtrrd sq11d
      mpan ) ABUAZBUBCZDZAEFCZGHZIAGHZJCZEFCZUCHZYJYKYJAYIKAYHKDZBKDZYIKUDBLUEZ
      LYHBUFUGUKZUHUIYJYOYJYNYJIKDZYMKDZYNKDZVBYJAYTUIIYMUJZULUHZYJAKDZMYONOZYT
      UUFIUAZYMNOZUUGUUFUUIYMINOAUMUNUUFUUBUUAUUIUUGPAUOVBUUBUUAQZMYMUUHUPCZNOZ
      MYNNOZUUIUUGUUJUUKYNMNUUBYMRDZIRDZUUKYNSUUAYMUQIUQUUNUUOQUUKYMIJCZYNYMIUR
      UUOUUNYNUUPSIYMUSUTVAVCVDUUAUUBUUHKDUULUUIPIVEYMUUHVFVGUUJUUCUUMUUGPUUAUU
      BUUCUUDUTYNVHTVIVLVJTZVKYJYKBEFCZUAZUURUBCDZMYLNOYJUUFYHANOZABNOZVMUUTYHB
      AYSLVNUUFUVAUVBUUTUUFUVAUVBQZUUTUUFUVCUUSYKNOZYKUURNOZQZUUTUUFUVAUVDUVBUV
      EUUFUVAYHEFCZYKNOZUVDYQUUFEKDZMEVOOZQZUVAUVHPYSUVIUVJVPVQVRZYHAEVSVTUUSUV
      GYKNBRDERDZEMWAZUUSUVGSWBWCWEBEWFWDWGWHUUFYRUVKUVBUVEPLUVLABEVSWIWJUUFYKW
      ODZUUTUVFPZUUFYKAWKWLUUSWODUURWODUVOUVPUUSUURWMUEWPUURWMWPUUSUURYKWNWQTWR
      WSWTXAYKXBTYJYOUUEUUQXCYJARDZYLEXDCZYPEXDCZSYJAYTXFUVQUVSYOIEUVRXECZIUPCZ
      JCZEFCZUVRUVQYOUVQYNUVQUUOUUNYNRDXGAXHIYMXIULXJXQUVQYNUWBEFUVQYMUWAIJUVQE
      YKXECZGHZYMUWAUVQUWDAGUVQUVMUVNUWDASWCWEAEXRWIXKUVQYKRDUWEUWASAXLZYKXMTXN
      XOXPUVQUVRRDZUWCUVRSUVQYLUVQYKUWFXSXTUWGUWCUVTEFCZUVRUWGUWBUVTEFUWGUUOUVT
      RDZUWBUVTSXGUVMUWGUWIWCEUVRYAYGIUVTYBULXPUWGUVMUVNUWHUVRSWCWEUVREYCWIYDTY
      ETYF $.
    $( Half-angle rule for tangent.  (Contributed by Brendan Leahy,
       4-Aug-2018.) $)
    tan2h $p |- ( A e. ( 0 [,) _pi ) -> ( tan ` ( A / 2 ) ) =
      ( sqrt ` ( ( 1 - ( cos ` A ) ) / ( 1 + ( cos ` A ) ) ) ) ) $=
      ( cc0 cpi co wcel c2 cdiv cfv c1 cc wceq cr cxr pire cle wbr clt wb syl
      wa cico ctan ccos cmin csqrt caddc csin wne wss rexri icossre mp2an sseli
      0re recnd halfcld cre cneg rehalfcld rered w3a elico2 pipos lt0neg2 ax-mp
      cioo mpbi wi renegcli ltletr mp3an12 mpani 2re 2pos pm3.2i ltdiv1 mp3an13
      picn 2cn 2ne0 divneg mp3an breq1i syl6bbr sylibd mp3an23 anim12d rehalfcl
      biimpd rexrd halfpire elioo5 sylibrd 3impib eqeltrd cosne0 syl2anc tanval
      sylbi cmul cicc 0xr elico1 remulcli ltmulgt12 xrlttr mp3an2 mpan2i xrltle
      1lt2 syld mpan2 anim2d elicc4 sin2h ltleii le0neg2 xrletr cos2h eqtrd 1re
      oveq12d resubcl sylancr cosbnd simprd recoscl subge0 bitr3d mpbid readdcl
      recoscld halfnneg2 sylancl coscld ax-1cn syl6eqr a1i cexp sqcld simpld wo
      recn subneg addcom breq2d csn snunioo eleq2i elun bitr3i elsni fveq2 cos0
      cun syl6eq oveq2d df-2 eqnetrd sinq12gt0 ltne elioore oveq1 df-neg eqeq1i
      mpan coscl 0cn subadd syl5bb sincl 0cnd addcan2d sincossq addid2d eqeq12d
      neg1sqe1 3bitr3d 3imtr3d necon3d syl5 mpd jaoi ne0gt0d rphalfcld sqrtdivd
      sqeq0 elrpd subcl addcl 2cnne0 divcan7 mp3an3 syl12anc fveq2d 3eqtr2d ) A
      BCUADZEZAFGDZUBHZIAUCHZUDDZFGDZUEHZIUXAUFDZFGDZUEHZGDZUXCUXFGDZUEHUXBUXEG
      DZUEHUWRUWTUWSUGHZUWSUCHZGDZUXHUWRUWSJEZUXLBUHZUWTUXMKUWRAUWRAUWQLABLEZCM
      EZUWQLUIUNCNUJZBCUKULUMZUOZUPZUWRUXNUWSUQHZCFGDZURZUYCVFDZEUXOUYAUWRUYBUW
      SUYEUWRUWSUWRAUXSUSUTUWRALEZBAOPZACQPZVAZUWSUYEEZUXPUXQUWRUYIRUNUXRBCAVBU
      LUYFUYGUYHUYJUYFUYGUYHTZUYDUWSQPZUWSUYCQPZTZUYJUYFUYGUYLUYHUYMUYFUYGCURZA
      QPZUYLUYFUYOBQPZUYGUYPBCQPZUYQVCCLEZUYRUYQRNCVDVEVGUYOLEZUXPUYFUYQUYGTUYP
      VHCNVIZUNUYOBAVJVKVLUYFUYPUYOFGDZUWSQPZUYLUYTUYFFLEZBFQPZTZUYPVUCRVUAVUDV
      UEVMVNVOZUYOAFVPVQUYDVUBUWSQCJEFJEZFBUHZUYDVUBKVRVSVTCFWAWBWCWDWEUYFUYHUY
      MUYFUYSVUFUYHUYMRNVUGACFVPWFWIWGUYFUWSMEZUYJUYNRZUYFUWSAWHWJUYDMEUYCMEVUJ
      VUKUYDUYCWKVIUJUYCWKUJUYDUYCUWSWLVKSWMWNWSWOUWSWPWQUWSWRWQUWRUXKUXDUXLUXG
      GUWRABFCWTDZXADEZUXKUXDKUWRAMEZUYGUYHVAZVUMBMEZUXQUWRVUORXBUXRBCAXCULZVUN
      UYGUYHVUMVUNUYKUYGAVULOPZTZVUMVUNUYHVURUYGVUNVULMEZUYHVURVHVULFCVMNXDUJZV
      UNVUTTZUYHAVULQPZVURVVBUYHCVULQPZVVCIFQPZVVDXJUYSVUDUYRVVEVVDRNVMVCCFXEWB
      VGVUNUXQVUTUYHVVDTVVCVHUXRACVULXFXGXHAVULXIXKXLXMVUPVUTVUNVUMVUSRXBVVABVU
      LAXNVKWMWNWSAXOSUWRAUYOCXADEZUXLUXGKUWRVUOVVFVUQVUNUYGUYHVVFVUNUYKUYOAOPZ
      ACOPZTZVVFVUNUYGVVGUYHVVHVUNUYOBOPZUYGVVGBCOPZVVJBCUNNVCXPUYSVVKVVJRNCXQV
      EVGUYOMEZVUPVUNVVJUYGTVVGVHUYOVUAUJZXBUYOBAXRVKVLVUNUXQUYHVVHVHUXRACXIXLW
      GVVLUXQVUNVVFVVIRVVMUXRUYOCAXNVKWMWNWSAXSSYBXTUWRUXCUXFUWRUXBUWRILEZUXALE
      ZUXBLEZYAUWRAUXSYLZIUXAYCZYDUSUWRUYFBUXCOPZUXSUYFUXAIOPZVVSUYFIURZUXAOPZV
      VTAYEZYFUYFVVNVVOVVTVVSRYAAYGZVVNVVOTZBUXBOPZVVTVVSIUXAYHVWEVVPVWFVVSRVVR
      UXBYMSYIYDYJSUWRUXEUWRUXEUWRVVNVVOUXELEYAVVQIUXAYKYDZUWRUXEVWGUWRUYFBUXEO
      PZUXSUYFVWBVWHUYFVWBVVTVWCUUAUYFBUXAVWAUDDZOPZVWBVWHUYFVVOVWALEVWJVWBRVWD
      IYAVIUXAVWAYHYNUYFVWIUXEBOUYFUXAJEZIJEZVWIUXEKUYFAAUUCYOYPVWKVWLTVWIUXAIU
      FDUXEUXAIUUDUXAIUUEXTYNUUFYIYJSUWRABUUGZEZABCVFDZEZUUBZUXEBUHZUWRAVWMVWOU
      UOZEVWQVWSUWQAVUPUXQUYRVWSUWQKXBUXRVCBCUUHWBUUIAVWMVWOUUJUUKVWNVWRVWPVWNA
      BKZVWRABUULVWTUXEFBVWTUXEIIUFDFVWTUXAIIUFVWTUXABUCHIABUCUUMUUNUUPUUQUURYQ
      VUIVWTVTYRUUSSVWPBAUGHZQPZVWRAUUTVXBVXABUHZVWPVWRUXPVXBVXCUNBVXAUVAUVFVWP
      UXEBVXABVWPAJEZUXEBKZVXABKZVHVWPAABCUVBUOVXDVWAUXAKZVWAFYSDZUXAFYSDZKZVXE
      VXFVXGVXJVHVXDVWAUXAFYSUVCYRVXGBIUDDZUXAKZVXDVXEVWAVXKUXAIUVDUVEVXDVWKVXL
      VXERZAUVGZBJEVWLVWKVXMUVHYPBIUXAUVIVKSUVJVXDVXAFYSDZVXIUFDZBVXIUFDZKVXOBK
      ZVXJVXFVXDVXOBVXIVXDVXAAUVKZYTVXDUVLVXDUXAVXNYTZUVMVXDVXPVXHVXQVXIVXDVXPI
      VXHAUVNUVQYQVXDVXIVXTUVOUVPVXDVXAJEVXRVXFRVXSVXAUWGSUVRUVSSUVTUWAUWBUWCWS
      ZUWDUWHUWEUWFUWRUXIUXJUEUWRUXBJEZUXEJEZVWRUXIUXJKZUWRVWLVWKVYBYPUWRAUXTYO
      ZIUXAUWIYDUWRVWLVWKVYCYPVYEIUXAUWJYDVYAVYBVYCVWRTVUHVUITVYDUWKUXBUXEFUWLU
      WMUWNUWOUWP $.
  $}

  ${
    $( ` _pi ` is greater than 3.  (Contributed by Brendan Leahy,
       21-Aug-2020.) $)
    pigt3 $p |- 3 < _pi $=
      ( c3 cpi clt wbr c6 cdiv co cfv c1 c2 cmul wceq cc wcel cc0 wne wa elrpii
      crp pire csin ccos csqrt sincos6thpi simpli ax-1cn 2cnne0 3cn 3ne0 pm3.2i
      divcan5 mp3an 3t1e3 3t2e6 oveq12i 3eqtr2i pipos 6pos rpdivcl mp2an sinltx
      6re ax-mp eqbrtrri 3re ltdiv1ii mpbir ) ABCDAEFGZBEFGZCDVIUAHZVHVICVJIJFG
      ZAIKGZAJKGZFGZVHVJVKLVIUBHAUCHJFGLUDUEIMNJMNJOPQAMNZAOPZQVNVKLUFUGVOVPUHU
      IUJIJAUKULVLAVMEFUMUNUOUPVISNZVJVICDBSNESNVQBTUQREVBURRBEUSUTVIVAVCVDABEV
      ETVBURVFVG $.
  $}

  ${
    $d f x y z I $.  $d f x y z R $.  $d f x y z X $.
    $( A linearly independent set in a free linear module of finite dimension
       over a division ring is smaller than the dimension of the module.
       (Contributed by Brendan Leahy, 2-Jun-2021.) $)
    lindsdom $p |- ( ( R e. DivRing /\ I e. Fin /\
      X e. ( LIndS ` ( R freeLMod I ) ) ) -> X ~<_ I ) $=
      ( vf vy vz vx cdr wcel cfn cfv wbr cv c0 cun wa eqid syl 3adant3 wss cuvc
      cfrlm clinds w3a crn cdom cen clss cmri cpw wrex cmrc cmre clmod drngring
      cbs crg frlmlmod sylan lssmre csn cdif wral cacs clvec csca frlmsca simpl
      co eqeltrrd islvec sylanbrc lssacsex simprd dif0 linds1 3ad2ant3 wf uvcff
      frn syl6sseqr wceq fveq2i clspn mrclsp fveq1d frlmlbs lbssp eqtr3d syl5eq
      un0 clbs sseqtr4d wn drngnzr adantr jca lindsind2 3expa sylanl1 wb eleq2d
      cnzr ad2antrr mtbid ralrimiva 3impa ismri2 syl2an syl5eqel simpr uvcendim
      mpbird wo enfi mpbid olcd mreexexd ovex rnex elpwi ssdomg endomtr syl2anr
      cvv mpsyl rexlimiva ensymd domentr syl2anc ) AHIZBJIZCABUBVIZUCKIZUDZCABU
      AVIZUEZUFLZYQBUGLZCBUFLYOCDMZUGLZYTNOYMUHKZUIKZIZPZDYQUJZUKYRYOEFUUBCYQNU
      UCUUBULKZYMUPKZGDYKYLUUBUUHUMKIZYNYKYLPZYMUNIZUUIYKAUQIZYLUUKAUOZAYMBJYMQ
      ZURUSZUUHUUBYMUUHQZUUBQZUTRZSUUGQZUUCQZYKYLEMZGMZFMVAOUUGKIFUVBUVAVAZOUUG
      KUVBUUGKVBVCEUUHVCGUUHUJVCZYNUUJUUBUUHVDKIZUVDUUJYMVEIZUVEUVDPUUJUUKYMVFK
      ZHIUVFUUOUUJAUVGHAYMBHJUUNVGZYKYLVHVJUVGYMUVGQZVKVLEFUUBUUGYMUUHGUUQUUSUU
      PVMRVNSYNYKCUUHNVBZTYLUVJYMCUUHVOZVPVQYKYLYQUVJTYNUUJYQUUHUVJUUJBUUHYPVRZ
      YQUUHTYKUULYLUVLUUMUUHAYPBJYMYPQZUUNUUPVSUSBUUHYPVTRUVKWASYOCUUHYQNOZUUGK
      ZYNYKCUUHTZYLUUHYMCUUPVPZVQYKYLUVOUUHWBYNUUJUVOYQUUGKZUUHUVNYQUUGYQWKWCUU
      JYQYMWDKZKZUVRUUHUUJYQUVSUUGUUJUUKUVSUUGWBUUOUUBUUGUVSYMUUQUVSQZUUSWERZWF
      UUJYQYMWLKZIZUVTUUHWBYKUULYLUWDUUMAYPYMBUWCJUUNUVMUWCQZWGUSYQUWCUVSUUHYMU
      UPUWEUWAWHRWIWJSWMYOCNOCUUCCWKYOCUUCIZUVACUVCVBZUUGKZIZWNZECVCZYKYLYNUWKU
      UJYNPZUWJECUWLUVACIZPUVAUWGUVSKZIZUWIUUJUUKUVGXCIZPZYNUWMUWOWNZUUJUUKUWPU
      UOUUJAUVGXCUVHYKAXCIZYLAWOZWPVJWQUWQYNUWMUWRUVACUVSUVGYMUWAUVIWRWSWTUUJUW
      OUWIXAYNUWMUUJUWNUWHUVAUUJUWGUVSUUGUWBWFXBXDXEXFXGYKYLYNUWFUWKXAZUUJUUIUV
      PUXAYNUURUVQEUUBCUUCUUGUUHUUSUUTXHXIXGXMXJYKYLCJIZYQJIZXNYNUUJUXCUXBUUJYL
      UXCYKYLXKUUJBYQUGLZYLUXCXAYKUWSYLUXDUWTAYPBJUVMXLUSZBYQXORXPXQSXRUUEYRDUU
      FUUEUUAYTYQUFLZYRYTUUFIZUUAUUDVHYQYEIUXGYTYQTUXFYPABUAXSXTYTYQYAYTYQYEYBY
      FCYTYQYCYDYGRYKYLYSYNUUJBYQUXEYHSCYQBYIYJ $.

    $( A maximal linearly independent set in a free module of finite dimension
       over a division ring is a basis.  (Contributed by Brendan Leahy,
       2-Jun-2021.) $)
    lindsenlbs $p |- ( ( ( R e. DivRing /\ I e. Fin /\
        X e. ( LIndS ` ( R freeLMod I ) ) ) /\ X ~~ I ) ->
          X e. ( LBasis ` ( R freeLMod I ) ) ) $=
      ( vy vx vz cdr wcel cfn cfv wbr wa wceq wss eqid adantr wn cun cdif wral
      cfrlm co clinds w3a cen clspn cbs clbs simpl3 clmod crg drngring frlmlmod
      sylan linds1 lspssv syl2an 3impa cv csdm cdom bren2 simprbi csn wpss snfi
      simp2 lindsdom domfi syl2anc unfi sylancr vex snss lspssid sseld con3dimp
      wi syl5bir nsspssun sylib php3 adantrl simpl1 simpl2 cvsca csca c0g snssi
      3ad2ant3 unss biimpi syl2anr simpr difsn fveq2d neleqtrrd adantlr difsnid
      syl eleq2d notbid biimparc adantll clvec frlmsca eqeltrrd islvec sylanbrc
      simpl 3adant3 ad4antr ssdifssd simp-4r difundir equncomi elsni syl5ibrcom
      wb eleq1d con2d imp uneq2d syl5eq adantllr biimpa cnzr drngnzr jca anim1i
      lindsind2 ad5ant14 eldifd ad3antrrr adantl syl3anc ad2antrr lspsnel5 cvv
      3expa clss lspsolv syl13anc mtand ralrimiva ralunb weq sneq difeq2d uncom
      id difeq1i difun2 eqtri syl6eq eleq12d ralsn anbi1i wne eldifsn 3ad2antl3
      bitri sselda lspsnvs sseq1d df-3an lspcl anassrs sylanb lmodvscl 3bitr4rd
      ex eldifi biimpd ralrimdva ralimdva syld impr ovex islinds2 ax-mp stoic1a
      sdomdomtr sylan2 iman sylibr ssrdv eqssd islbs4 ) AGHZBIHZCABUAUBZUCJZHZU
      DZCBUEKZLZUWNCUWLUFJZJZUWLUGJZMCUWLUHJZHUWJUWKUWNUWPUIUWQUWSUWTUWOUWSUWTN
      ZUWPUWJUWKUWNUXBUWJUWKLZUWLUJHZCUWTNZUXBUWNUWJAUKHUWKUXDAULAUWLBIUWLOZUMU
      NZUWTUWLCUWTOZUOZCUWRUWTUWLUXHUWROZUPUQURPUWQDUWTUWSUWQDUSZUWTHZUXKUWSHZQ
      ZLZQZUXLUXMVRUWPUWOCBUTKZQZUXPUWPCBVAKZUXRCBVBVCUWOUXOUXQUWOUXOLZCUXKVDZC
      RZUTKZUYBBVAKZUXQUWOUXNUYCUXLUWOUXNLZUYBIHZCUYBVEZUYCUWOUYFUXNUWOUYAIHCIH
      ZUYFUXKVFUWOUWKUXSUYHUWJUWKUWNVGABCVHBCVIVJUYACVKVLPUYEUYACNZQUYGUWOUYIUX
      MUYIUXKCHZUWOUXMUXKCDVMZVNUWOCUWSUXKUWJUWKUWNCUWSNZUXCUXDUXEUYLUWNUXGUXIC
      UWRUWTUWLUXHUXJVOUQURVPZVSVQUYACVTWAUYBCWBVJWCUXTUWJUWKUYBUWMHZUYDUWJUWKU
      WNUXOWDUWJUWKUWNUXOWEUXTUYBUWTNZEUSZFUSZUWLWFJZUBZUYBUYQVDZSZUWRJZHZQZEUW
      LWGJZUGJZVUEWHJZVDZSZTZFUYBTZUYNUXOUYAUWTNZUXEUYOUWOUXLVULUXNUXKUWTWIZPUW
      NUWJUXEUWKUXIWJVULUXELUYOUYACUWTWKWLZWMUWOUXLUXNVUKUWOUXLLZUXNUYQVUBHZQZF
      UYBTZVUKVUOUXNVURVUOUXNLZUXKCUYASZUWRJZHZQZVUQFCTZVURUWOUXNVVCUXLUYEVVAUW
      SUXKUWOUXNWNUYEVUTCUWRUYEUYJQZVUTCMUWOUYJUXMUYMVQZUXKCWOWTWPWQWRVUSVUQFCV
      USUYQCHZLZVUPUXKCUYTSZUYTRZUWRJZHZUXNVVGVVLQZVUOVVGVVMUXNVVGVVLUXMVVGVVKU
      WSUXKVVGVVJCUWRCUYQWSWPXAXBXCXDVVHVUPLZUWLXEHZVVIUWTNZUXLUYQVVIUYARZUWRJZ
      VVIUWRJZSHVVLUWOVVOUXLUXNVVGVUPUWJUWKVVOUWNUXCUXDVUEGHVVOUXGUXCAVUEGAUWLB
      GIUXFXFZUWJUWKXJXGVUEUWLVUEOZXHXIXKZXLUWOVVPUXLUXNVVGVUPUWNUWJVVPUWKUWNCU
      WTUYTUXIXMWJXLUWOUXLUXNVVGVUPXNVVNUYQVVRVVSVVHVUPUYQVVRHZUWOUXNVVGVUPVWCX
      SUXLUYEVVGLZVUBVVRUYQVWDVUAVVQUWRVWDVUAVVIUYAUYTSZRVVQVUAVWEVVIUYACUYTXOX
      PVWDVWEUYAVVIVWDUYQUYAHZQZVWEUYAMUYEVVGVWGUYEVWFVVGUYEVVGQVWFVVEVVFVWFVVG
      UYJVWFUYQUXKCUYQUXKXQXTXBXRYAYBUYQUYAWOWTYCYDWPXAYEYFUWOVVGUYQVVSHQZUXLUX
      NVUPUWOUXDVUEYGHZLZUWNLZVVGVWHUWJUWKUWNVWKUXCVWJUWNUXCUXDVWIUXGUXCAVUEYGV
      VTUWJAYGHUWKAYHPXGYIYJURVWJUWNVVGVWHUYQCUWRVUEUWLUXJVWAYKYTUNYLYMVVIUWLUU
      AJZUWRUWTUWLUYQUXKUXHVWLOZUXJUUBUUCUUDUUEVURVUQFUYATZVVDLVVCVVDLVUQFUYACU
      UFVWNVVCVVDVUQVVCFUXKUYKFDUUGZVUPVVBVWOUYQUXKVUBVVAVWOUUKVWOVUAVUTUWRVWOV
      UAUYBUYASZVUTVWOUYTUYAUYBUYQUXKUUHUUIVWPCUYARZUYASVUTUYBVWQUYAUYACUUJUULC
      UYAUUMUUNUUOWPUUPXBUUQUURUVBXIUVLVUOVUQVUJFUYBVUOUYQUYBHZLZVUQVUDEVUIVWSU
      YPVUIHZLZVUQVUDVXAVUPVUCVXAUYSVDUWRJZVUBNUYTUWRJZVUBNZVUCVUPVXAVXBVXCVUBV
      XAVVOUYPVUFHZUYPVUGUUSLZUYQUWTHZVXBVXCMUWOVVOUXLVWRVWTVWBYNVWTVXFVWSVWTVX
      FUYPVUFVUGUUTWLYOVWSVXGVWTVUOUYBUWTUYQUWNUWJUXLUYOUWKUXLVULUXEUYOUWNVUMUX
      IVUNWMZUVAUVCZPZUYPUYRVUEVUFUWRUWTUWLUYQVUGUXHVWAUYROZVUFOZVUGOZUXJUVDYPU
      VEVXAVWLVUBUWRUWTUWLUYSUXHVWMUXJUWOUXDUXLVWRVWTUWJUWKUXDUWNUXGXKZYNZVUOVU
      BVWLHZVWRVWTUWOUXCUWNLUXLVXPUWJUWKUWNUVFUXCUWNUXLVXPUXCUXDVUAUWTNVXPUWNUX
      LLZUXGVXQUYBUWTUYTVXHXMVWLVUAUWRUWTUWLUXHVWMUXJUVGUQUVHUVIZYQVXAUXDVXEVXG
      UYSUWTHVXOVWTVXEVWSUYPVUFVUHUVMYOVXJUYPUYRVUEVUFUWTUWLUYQUXHVWAVXKVXLUVJY
      PYRVWSVUPVXDXSVWTVWSVWLVUBUWRUWTUWLUYQUXHVWMUXJUWOUXDUXLVWRVXNYQVUOVXPVWR
      VXRPVXIYRPUVKXBUVNUVOUVPUVQUVRUWLYSHUYNUYOVUKLXSABUAUVSFUWTVUEUYREUYBUWRV
      UFUWLYSVUGUXHVXKUXJVWAVXLVXMUVTUWAXIABUYBVHYPCUYBBUWCVJUWBUWDUXLUXMUWEUWF
      UWGUWHUWTUXAUWRUWLCUXHUXAOUXJUWIXI $.

    $d f i j k n x y z M $.  $d i j k n I $.  $d i j k n R $.
    $( One direction of ~ matunitlindf .  (Contributed by Brendan Leahy,
       2-Jun-2021.) $)
    matunitlindflem1 $p |- ( ( ( R e. Field /\
      M : ( I X. I ) --> ( Base ` R ) ) /\ I e. ( Fin \ { (/) } ) ) ->
        ( -. curry M LIndF ( R freeLMod I ) ->
      ( ( I maDet R ) ` M ) = ( 0g ` R ) ) ) $=
      ( vk vn vi vj wcel cfv wa c0 co wn cmpt cgsu wceq wi eqid cvv adantr cdif
      vf vy vx vz cxp cbs wf cfn csn cfrlm wbr cv c0g wrex crg syl wral adantlr
      wb cof sylan2 fvex syl2an syl3anc oveq1d fveq2d eqtrd adantl simplr eqidd
      wfn offval simpllr ffvelrn adantll ffvelrnda mp1i anim2i ad4ant23 sylanl1
      oveq2d fovrn ringcl fmptd adantllr mpan ad5ant13 cfsupp fvexd fndmfifsupp
      ffn ralrimivw ad4ant13 eqeq2d imbi12d notbid wne bitri weq cmpt2 ad4antlr
      cif wss wel eleq2 sseq1 anbi12d anbi2d mpteq1 syl6eq ifeq1d mpt2eq3dv w3a
      ex oveq1 3adant1l syl2anc sylan9eqr mpt2eq3dva sylan ad4antr sstr anim12i
      eqtr4d ad4ant24 ad6antr ad2antrr anassrs 3expa anasss simp-4r vex ad5antr
      an32s a1i sylanl2 fveq2 ovex fnmpti cfield ccur cmulr cmap cmdat cdr ccrg
      clindf isfld simplbi drngring cvsca clmod frlmlmod simpr eldifi frlmfibas
      csca curf mp3an3 feq3 biimpa anandirs islindf4 frlmsca inidm frlmvscafval
      elmapi ffnd fnconstg adantlll fvconst2 ancoms curfv 3exp1 com4r mpteq2dva
      elmapfn imp41 simplll simp-4l ad5ant245 elmapg eleq2d bitr3d mpbid mptexg
      fnmpt ad2antlr frlmgsum eqtr2d frlm0 eqeq12d sneqd xpeq2d bitr4d rexanali
      raleqbidva syl6bbr fconst2 sylbb1 con3d df-ne rexbii rexnal syl6ibr cinvr
      fconstfv cplusg neldifsn difss diffi mpt0 gsum0 elequ2 fnov sylib ringgrp
      cgrp equcoms simp1l grplid ifeqda elun1 con3i ssun1 velsn sylbir necon3bi
      cun elun2 anim1i ccmn ringcmn ad7antr ssfi sselda drnginvrcl syldan ssun2
      ad5ant25 snss sylibr oveq12d ad5ant24 ringass eqcomd gsumunsnd cabl ssel2
      syl13anc ringabl ad5ant14 gsumcl adantlrl 3adant2 simprbi simp-5r syl3an1
      simpl abl32 grpcl simplrl simprl mdetero iftrue iffalse pm2.61i mpt2eq3ia
      ad2antll ifeq2 fveq2i 3eqtr3g biimprd embantd expcom findcard2s fconstmpt
      com23 mpcom mpanr12 eqeq2i rgenw mpteqb id cur simpll drnginvrl ad2ant2lr
      ax-mp 3ad2ant1 ringlidm ad5ant145 adantlrr 3eqtr3d gsummulc2 eqtr3d oveq2
      gsumdifsnd ringrz 3eqtrd ralimdva imp sylan2b mpt2eq123 sylancr ad3antrrr
      jctil mdetr0 ad4ant14 rexlimdvaa expimpd sylan2d rexlimdva sylbid ) AUUAH
[encoded data, 9520 characters]
      NXYTVUSWYLXUDWYPVVDVXIVXJVXAVXKVXLVXMVBVXNVBVXO $.

    $( One direction of ~ matunitlindf .  (Contributed by Brendan Leahy,
       2-Jun-2021.) $)
    matunitlindflem2 $p |- ( ( ( ( R e. Field /\
      M e. ( Base ` ( I Mat R ) ) ) /\ I =/= (/) ) /\
        curry M LIndF ( R freeLMod I ) ) ->
      ( ( I maDet R ) ` M ) e. ( Unit ` R ) ) $=
      ( vn vi vj vk wcel co cfv wa wceq wf cmpt cfn cvv eqid wb syl adantr cmat
      vf cfield cbs c0 wne ccur cfrlm clindf wbr cmulr cur cmdat cmap cuvc cunc
      cv cui cgsu wral wex wrex matrcl simpld ad3antlr cdr isfld simplbi anim1i
      ccrg ad2antrl cdif simpr frlmfibas sylan2 matbas ancoms eqtrd eleq2d fvex
      cxp csn syl2anc elmapg sylancr adantl bitr3d mpbid adantrr jca ex anassrs
      sylan crg ffvelrnda ad4ant14 wfn ffn cen simplll simpllr wf1 cnzr frlmsca
      fveq2d 3expa syl2an an32s eleqtrrd cof simplr oveq1d elmapi eqidd ffvelrn
      offval ad4ant24 ad3antrrr elmapfn mpteq2dva oveq2d sylanl1 ringcl syl3anc
      c0g eqeq2d bitr4d ad2antrr w3a fveq1 vex mpteq2dv biimpar weq cif eqeq12d
      df-3an oveqd imp mdetcl xpfi anidms eldifsn biimpri curf mp3an3 imdistani
      anass sylibr cima clspn drngring uvcff fnima clbs clinds frlmlmod lindfrn
      crn clmod wf1o cdm csca drngnzr eqeltrrd lindff1 fdm f1eq2 biimpac f1oeng
      f1f1orn ensymd lindsenlbs syl31anc lbssp biimpa elfilspd ad2antlr simp-4r
      cvsca feq3d inidm adantll eleqtrd frlmvscafval fnconstg fvconst2 ad4ant23
      mp1i simp-5l fmptd mpan cfsupp ralrimivw fnmpt fvexd fndmfifsupp frlmgsum
      mptexg id eqtr2d rexeqbidva ralrimiva mpbird bitr4i curfv rexbidv ralbidv
      an32 sylanb uncov mp2an syl6eqr ac6sfi nfv nfmpt1 nfeq2 wi anim12i equcom
      uncf ifbi ax-mp mat1ov uvcvval sylanbr 3eqtr4a cmmul fvmpt2 mpan2 simp-4l
      cotp ovex ad4antlr ad5ant23 mamufv matmulr 3eqtr2rd syl5ibr com23 ralrimd
      ralimdva mat1bas matring syl2anr eqfnov2 sylibrd eqcomd oveq1 eqeq1d expl
      rspcev sylani exlimdv adantlr simprbi cdsr dvdsrmul anandis fveq2 mdetmul
      syldan mdet1 syl5ib impr breq2d crngunit rexlimddv ) AUCHZCBAUAIZUDJZHZKZ
[encoded data, 6400 characters]
      AVWGXVRVWFVWGQXWCXXFVVGYHYGWHYBWPVVH $.

    $( A matrix over a field is invertible iff the rows are linearly
       independent.  (Contributed by Brendan Leahy, 2-Jun-2021.) $)
    matunitlindf $p |- ( ( R e. Field /\
      M e. ( Base ` ( I Mat R ) ) ) -> ( M e. ( Unit ` ( I Mat R ) ) <->
        curry M LIndF ( R freeLMod I ) ) ) $=
      ( vy vx cfield wcel co cbs cfv wa cui cfrlm wb c0 wceq eqid cfn dm0 cvv
      vz cmat ccur clindf oveq1 fveq2d mat0dimbas0 sylan9eq eleq2d elsni syl6bi
      wbr csn imdistanda cdr crg ccrg isfld simplbi drngring cur mat0dimid 0fin
      impcom matring mpan 1unit syl eqeltrrd 3syl cdm wf cv cvsca cdif clspn wn
      cima csca c0g wral feq2i mpbir rzal ax-mp ovex islindf mp2an mpbir2an a1i
      f0 2thd eleq12 sylan2 cureq cop copab cmpt df-cur dmeqi eqtri mpteq1 mpt0
      3eqtri syl6eq oveq2 breqan12d bibi12d biimparc sylan anassrs sylancom wne
      simprbi matunit adantr drngunit mdetcl biantrurd bitr4d cxp matrcl simpld
      cmdat pm4.71i cmap xpfi anidms frlmfibas matbas ancoms eqtrd fvex sylancr
      wi elmapg adantl bitr3d ex pm5.32rd syl5bb biimpd imdistani anass eldifsn
      sylibr matunitlindflem1 necon1ad sylbid matunitlindflem2 bitrd pm2.61dane
      sylan2br impbid ) AFGZCBAUBHZIJZGZKZCUUPLJZGZCUCZABMHZUDULZNZBOUUSBOPZUUO
      COPZKZUVEUVFUUSUVHUVFUUOUURUVGUVFUUOKZUURCOUMZGUVGUVIUUQUVJCUVFUUOUUQOAUB
      HZIJUVJUVFUUPUVKIBOAUBUEZUFAFUGUHUICOUJUKUNVDUUOUVGUVFUVEUUOOUVKLJZGZOAOM
      HZUDULZNZUVGUVFKZUVEUUOUVNUVPUUOAUOGZAUPGZUVNUUOUVSAUQGZAURZUSZAUTUVTUVKV
      AJZOUVMUVKAUVKQZVBUVTUVKUPGZUWDUVMGORGZUVTUWFVCUVKAOUWEVEVFUVKUVMUWDUVMQU
      WDQVGVHVIVJUVPUUOUVPOVKZUVOIJZOVLZDVMZEVMZOJUVOVNJZHOUWHUWLUMVOVRUVOVPJZJ
      GVQDUVOVSJZIJZUWOVTJZUMVOWAZEUWHWAZUWJOUWIOVLUWIWKUWHOUWIOSWBWCUWHOPUWSSU
      WREUWHWDWEUVOTGUWGUVPUWJUWSKNAOMWFVCEUWIUWOUWMDOUWNUWPUVORTUWQUWIQUWMQUWN
      QUWOQUWPQUWQQWGWHWIWJWLUVRUVEUVQUVRUVAUVNUVDUVPUVFUVGUUTUVMPUVAUVNNUVFUUP
      UVKLUVLUFCOUUTUVMWMWNUVGUVFUVBOUVCUVOUDUVGUVBOUCZOCOWOUWTEUWHVKZUWLUWKWPU
      AVMOULDUAWQZWRZEOUXBWRZOEDUAOWSUXAOPUXCUXDPUXAUWHOUWHOSWTSXAEUXAOUXBXBWEE
      UXBXCXDXEBOAMXFXGXHXIXJXKXLUUSBOXMZKZUVACBAYDHZJZALJZGZUVDUUSUVAUXJNZUXEU
      UOUWAUURUXKUUOUVSUWAUWBXNZUUPUUQUXGAUUTCBUXIUUPQZUXGQZUUQQZUUTQUXIQZXOXJX
      PUXFUXJUVDUXFUXJUXHAVTJZXMZUVDUUSUXJUXRNUXEUUSUXJUXHAIJZGZUXRKZUXRUUOUXJU
      YANZUURUUOUVSUYBUWCUXSAUXIUXHUXQUXSQZUXPUXQQXQVHXPUUSUXTUXRUUOUWAUURUXTUX
      LUUPUUQUXGAUXSCBUXNUXMUXOUYCXRXJXSXTXPUUSUUOBBYAZUXSCVLZKZBRGZKZUXEUXRUVD
      YOZUUSUUOUYEUYGKZKUYHUUOUURUYJUUOUURUYJUURUURUYGKUUOUYJUURUYGUURUYGATGUUP
      UUQABCUXMUXOYBYCYEUUOUYGUURUYEUUOUYGUURUYENUUOUYGKZCUXSUYDYFHZGZUURUYEUYK
      UYLUUQCUYKUYLAUYDMHZIJZUUQUYGUUOUYDRGZUYLUYOPUYGUYPBBYGYHZAUYNUYDUXSFUYNQ
      ZUYCYIWNUYGUUOUYOUUQPUUPAUYNBFUXMUYRYJYKYLUIUYGUYMUYENZUUOUYGUXSTGUYPUYSA
      IYMUYQUXSUYDCTRYPYNYQYRYSYTUUAUUBUUCUUOUYEUYGUUDUUFUYFUYGUXEUYIUYGUXEKUYF
      BRUVJVOGZUYIBROUUEUYFUYTKUVDUXHUXQABCUUGUUHUUMXKXJUUIUXFUVDUXJABCUUJYSUUN
      UUKUUL $.
  $}

  ${
    $d k u v w x y ph $.  $d k u v w x y A $.  $d k u v w x y F $.
    $d u v w x y S $.  $d k u v w x y V $.  $d u v w x y W $.
    ptrest.0 $e |- ( ph -> A e. V ) $.
    ptrest.1 $e |- ( ph -> F : A --> Top ) $.
    ptrest.2 $e |- ( ( ph /\ k e. A ) -> S e. W ) $.
    $( Expressing a restriction of a product topology as a product topology.
       (Contributed by Brendan Leahy, 24-Mar-2019.) $)
    ptrest $p |- ( ph -> ( ( Xt_ ` F ) |`t X_ k e. A S ) =
      ( Xt_ ` ( k e. A |-> ( ( F ` k ) |`t S ) ) ) ) $=
      ( vu vv vw vx vy cfv crest cvv wcel wceq cpt cuni cv cmpt ccnv cima cmpt2
      csn crn cun cfi cixp co ctg firest cin snex wral fvex rgenw eqid mpt2exxg
      sylancl rnexg syl unexg sylancr ralrimiva ixpexg restval mptun rneqi rnun
      eqtri cop elsni ineq1d mpteq2ia uniex inex1 fmptsn mp2an eqtr4i rnsnop wa
      syl2anc ctop wss ffvelrnda inss1 restin incom oveq2i syl6eq unieqd eqtr4d
      restuni ixpeq2dva ixpin csb nfcv nfcsb1v nfov nfuni fveq2 csbeq1a oveq12d
      weq cbvixp ixpeq2 ovex fvmptf mpan2 mprg 3eqtr3g wf ptuni syl5eq wrex cab
      vex eleq12d anbi2d elin syl6bb eleq2d abbidv crab mptpreima df-rab eqeq2d
      3eqtr4g ineq1 adantl wb wi nfv ax-mp fveq2d ptval2 resttop fmptd wfn rspc
      3eqtr3d sneqd elixp simprbi syl5 pm4.71d an4 anbi2i bitr4i syl5bbr anbi1d
      nfel2 sylan9bbr eqtr2i abid2 ineq12i inab eqtr3i rexbidv imaeq2d a1i nfel
      cbvrexv nfim eleq1 imbi12d chvar elrest bitrd imaeq2 rexxfr2d rnmpt nfre1
      bitr4d rexbidva mptex cnvex imaexg rgen2w rexrnmpt2 eqeq1 2rexbidv syl5bb
      cbvab rnmpt2 uneq12d eqtrd syl5eqr oveq1d tgrest 3eqtr4d ) AEUAPZUBZUHZKL
      BKUCZEPZMUWQUWSMUCZPZUDZUEZLUCZUFZUGZUIZUJZUKPZDBCULZQUMZUNPZDBDUCZEPZCQU
      MZUDZUAPZUBZUHZKLBUWSUXQPZMUXSUXBUDZUEZUXEUFZUGZUIZUJZUKPZUNPZUWPUXKQUMZU
      XRAUXLUYHUNAUXLUXIUXKQUMZUKPUYHUXKUXIUOAUYKUYGUKAUYKNUXINUCZUXKUPZUDZUIZU
      YGAUXIRSZUXKRSZUYKUYOTAUWRRSUXHRSZUYPUWQUQAUXGRSZUYRABFSZUWTRSZKBURUYSHVU
      AKBUWSEUSZUTKLBUWTUXFFRUXGUXGVAZVBVCUXGRVDVEUWRUXHRRVFVGACGSZDBURUYQAVUDD
      BJVHDBCGVIVEZNUXKUXIRRVJWFAUYONUWRUYMUDZUIZNUXHUYMUDZUIZUJZUYGUYOVUFVUHUJ
      ZUIVUJUYNVUKNUWRUXHUYMVKVLVUFVUHVMVNAVUGUXTVUIUYFAVUGUWQUXKUPZUHZUXTVUGUW
      QVULVOUHZUIVUMVUFVUNVUFNUWRVULUDZVUNNUWRUYMVULUYLUWRSUYLUWQUXKUYLUWQVPVQV
      RUWQRSVULRSVUNVUOTUWPEUAUSVSZUWQUXKVUPVTNUWQVULRRWAWBWCVLUWQVULVUPWDVNAVU
      LUXSADBUXOUBZULZUXKUPZOBOUCZUXQPZUBZULZVULUXSADBVUQCUPZULDBUXPUBZULZVUSVV
      CADBVVDVVEAUXNBSZWEZVVDUXOVVDQUMZUBZVVEVVHUXOWGSZVVDVUQWHVVDVVJTABWGUXNEI
      WIZVUQCWJVVDUXOVUQVUQVAZWQVCVVHUXPVVIVVHUXPUXOCVUQUPZQUMZVVIVVHUXORSVUDUX
      PVVOTUXNEUSJCUXORGVUQVVMWKVGVVNVVDUXOQCVUQWLWMWNWOWPWRDBVUQCWSVVFOBVUTEPZ
      DVUTCWTZQUMZUBZULZVVCDOBVVEVVSOVVEXADVVRDVVPVVQQDVVPXADQXAZDVUTCXBXCZXDDO
      XHZUXPVVRVWCUXOVVPCVVQQUXNVUTEXEDVUTCXFXGZWOXIVVBVVSTVVCVVTTOBOBVVBVVSXJV
      UTBSZVVAVVRVWEVVRRSVVAVVRTVVPVVQQXKDVUTUXPVVRBUXQRDVUTXAVWBVWDUXQVAZXLXMW
      OXNWCXOAVURUWQUXKAUYTBWGEXPZVURUWQTHIDBEUWPFUWPVAZXQWFVQAUYTBWGUXQXPZVVCU
      XSTHADBUXPWGUXQVVHVVKVUDUXPWGSVVLJCUXOGUUAWFVWFUUBZOBUXQUXRFUXRVAZXQWFUUE
      ZUUFXRAUYLUXFUXKUPZTZLUWTXSZKBXSZNXTZUYLUYDTZLUYAXSZKBXSZNXTVUIUYFAVWPVWT
      NAVWOVWSKBAUWSBSZWEZVWOUYLUYCVUTDUWSCWTZUPZUFZTZOUWTXSZVWSVXBVWOUYLUYCUXE
      VXCUPZUFZTZLUWTXSVXGVXBVWNVXJLUWTVXBVWMVXIUYLVXBUXAUWQSZUXBUXESZWEZUXAUXK
      SZWEZMXTZUXAUXSSZUXBVXHSZWEZMXTZVWMVXIVXBVXOVXSMVXAVXOVXKVXNWEZVXRWEZAVXS
      VXAVXOVXMVXNUXBVXCSZWEZWEZVYBVXAVXNVYDVXMVXAVXNVYCVXNUXNUXAPZCSZDBURZVXAV
      YCVXNUXABUUCVYHDBCUXAMYAUUGUUHVYGVYCDUWSBDUXBVXCDUWSCXBZUUPDKXHZVYFUXBCVX
      CUXNUWSUXAXEDUWSCXFZYBUUDUUIUUJYCVYEVYAVXLVYCWEZWEVYBVXKVXLVXNVYCUUKVXRVY
      LVYAUXBUXEVXCYDUULUUMYEAVYAVXQVXRVYAUXAVULSAVXQUXAUWQUXKYDAVULUXSUXAVWLYF
      UUNUUOUUQYGVXMMXTZVXNMXTZUPVWMVXPVYMUXFVYNUXKUXFVXLMUWQYHVYMMUWQUXBUXEUXC
      UXCVAYIVXLMUWQYJUURMUXKUUSUUTVXMVXNMUVAUVBVXIVXRMUXSYHVXTMUXSUXBVXHUYBUYB
      VAYIVXRMUXSYJVNYLYKUVCVXJVXFLOUWTLOXHZVXIVXEUYLVYOVXHVXDUYCUXEVUTVXCYMUVD
      YKUVGYEVXBVWRVXFLOVXDUYAUWTRVXDRSVXBVUTUWTSWEVUTVXCOYAVTUVEVXBUXEUYASUXEU
      WTVXCQUMZSZUXEVXDTZOUWTXSZVXBUYAVYPUXEVXAUYAVYPTZAVXAVYPRSVYTUWTVXCQXKDUW
      SUXPVYPBUXQRDUWSXADUWTVXCQDUWTXAVWAVYIXCVYJUXOUWTCVXCQUXNUWSEXEVYKXGVWFXL
      XMYNYFVXBVUAVXCDUWSGWTZSZVYQVYSYOVUBVVHVUDYPVXBWUBYPDKVXBWUBDVXBDYQDVXCWU
      AVYIDUWSGXBUVFUVHVYJVVHVXBVUDWUBVYJVVGVXAAUXNUWSBUVIYCVYJCVXCGWUAVYKDUWSG
      XFYBUVJJUVKOUXEVXCUWTRWUAUVLVGUVMVYRVWRVXFYOVXBVYRUYDVXEUYLUXEVXDUYCUVNYK
      YNUVOUVRUVSYGVUIVUTUYMTZNUXHXSZOXTVWQNOUXHUYMVUHVUHVAUVPWUDVWPONWUCNUXHUV
      QVWPOYQWUDVUTVWMTZLUWTXSKBXSZONXHZVWPUXFRSZLUWTURKBURWUDWUFYOWUHKLBUWTUXD
      RSWUHUXCMUWQUXBVUPUVTUWAUXDUXERUWBYRUWCWUCWUEKLNBUWTUXFUXGRVUCUYLUXFTUYMV
      WMVUTUYLUXFUXKYMYKUWDYRWUGWUEVWNKLBUWTVUTUYLVWMUWEUWFUWGUWHVNKLNBUYAUYDUY
      EUYEVAZUWIYLUWJXRUWKYSUWLYSAUYJUXJUNPZUXKQUMZUXMAUWPWUJUXKQAUYTVWGUWPWUJT
      HIMLBKEUXGUWPFUWQVWHUWQVAVUCYTWFUWMAUXJRSUYQUXMWUKTUXIUKUSVUEUXKUXJRRUWNV
      GWPAUYTVWIUXRUYITHVWJMLBKUXQUYEUXRFUXSVWKUXSVAWUIYTWFUWO $.
  $}

  ${
    $d d g h n w x y z N $.  $d d g h n w x y z P $.  $d d g h n w x y z S $.
    $d g h w x y z D $.  $d g h w x y z R $.
    ptrecube.r $e |- R =
      ( Xt_ ` ( ( 1 ... N ) X. { ( topGen ` ran (,) ) } ) ) $.
    ptrecube.d $e |- D = ( ( abs o. - ) |` ( RR X. RR ) ) $.
    $( Any point in an open set of N-space is surrounded by an open cube within
       that set.  (Contributed by Brendan Leahy, 21-Aug-2020.)  (Proof
       shortened by AV, 28-Sep-2020.) $)
    ptrecube $p |- ( ( S e. R /\ P e. S ) -> E. d e. RR+ X_ n e. ( 1 ... N )
      ( ( P ` n ) ( ball ` D ) d ) C_ S ) $=
      ( vy wcel cv cfv wral wceq wrex wa wss crp cr vh vw vx vz vg cfz wfn cioo
      c1 crn ctg csn cxp cuni cdif cfn w3a cixp wex cab cbl cpt fzfi ctop retop
      co fnconstg ax-mp eqid ptval mp2an eqtri eleq2i tg2 wi elpt fvex fvconst2
      eleq2d ralbiia elixp2 simp3bi r19.26 wf uniretop eltopss mpan sselda cxmt
      cvv rexmet cmopn tgioo mopni2 mp3an1 r19.42v sylanbrc ralimi oveq2 sseq1d
      anbi2d ac6sfi sylancr c0 clt cinf cif 1rp a1i frn adantr wne fnfi sylancl
      wn ffn syl cdm dm0rn0 fdm eqeq1d syl5bbr necon3abid biimpar rpssre syl6ss
      rnfi syl3anc cxr cle wbr rpxrd cc0 ralbidv sylan sstr2 expimpd imp sylanb
      exlimiv wor ltso fiinfcl sseldd ifclda ffvelrn ifnefalse adantl 0re rpge0
      ne0i rgen ssralv mpisyl breq1 rspcev fnfvelrn infrelb eqbrtrd jca31 3expb
      ssbl mpanl1 ancoms ralimdva cabs cmin ccom fveq2i oveqi sseq1i ralbii nfv
      cres nfxfr rspce syl2anc sylbir sylan2 ss2ixp syl11 reximdv syl5com eleq2
      sseq1 anbi12d imbi1d syl5ibrcom 3ad2ant2 sylbi rexlimiv ) DCKDUALZUIFUFVF
      ZUGZELZUWLMZUWOUWMUHUJZUKMZULUMZMZKEUWMNUWPUWTUNZOEUWMUBLUONUBUPPUQUCLZEU
      WMUWPUROQUAUSUCUTZUKMZKZBDKZEUWMUWOBMZGLZAVAMZVFZURZDRZGSPZCUXDDCUWSVBMZU
      XDHUWMUPKZUWSUWMUGZUXNUXDOUIFVCZUWRVDKZUXPVEUWMUWRVDVGVHUCEUBUWMUXCUAUWSU
      PUXCVIZVJVKVLVMUXEUXFQBUDLZKZUXTDRZQZUDUXCPUXMUDDUXCBVNUYCUXMUDUXCUXTUXCK
      UELZUWMUGZUWOUYDMZUWTKZEUWMNZUYFUXAOEUWMUXTUONUDUPPZUQZUXTEUWMUYFURZOZQZU
      EUSUYCUXMVOZUCEUBUDUWMUXCUXTUAUEUWSUXSVPUYMUYNUEUYJUYLUYNUYHUYEUYLUYNVOUY
      IUYHUYNUYLBUYKKZUYKDRZQZUXMVOUYHUYOUYPUXMUYHUYOQUXJUYFRZEUWMNZGSPZUYPUXMU
      YHUYFUWRKZEUWMNZUYOUYTUYGVUAEUWMUWOUWMKZUWTUWRUYFUWMUWRUWOUWQUKVQVRVSVTUY
      OVUBUXGUYFKZEUWMNZUYTUYOBWJKBUWMUGVUEEUWMUYFBWAWBVUBVUEQVUAVUDQZEUWMNZUYT
      VUAVUDEUWMWCVUGUWMSUWLWDZUXGTKZUXGUWPUXIVFZUYFRZQZEUWMNZQZUAUSZUYTVUGUXOV
      UIUXGJLZUXIVFZUYFRZQZJSPZEUWMNVUOUXQVUFVUTEUWMVUFVUIVURJSPZVUTVUAUYFTUXGU
      XRVUAUYFTRVEUYFUWRTWEWFWGWHATWIMKZVUAVUDVVAAIWKZJUYFAUXGUWRTAAWLMZIVVDVIW
      MWNWOVUIVURJSWPWQWRVUSVULEJUWMSUAVUPUWPOZVURVUKVUIVVEVUQVUJUYFVUPUWPUXGUX
      IWSWTXAXBXCVUNUYTUAVUNUWMXDOZUIUWLUJZTXEXFZXGZSKZUXGVVIUXIVFZUYFRZEUWMNZU
      YTVUHVVJVUMVUHVVFUIVVHSUISKVUHVVFQXHXIVUHVVFXOZQZVVGSVVHVUHVVGSRZVVNUWMSU
      WLXJZXKVVOVVGUPKZVVGXDXLZVVGTRZVVHVVGKZVUHVVRVVNVUHUWLUPKZVVRVUHUWNUXOVWB
      UWMSUWLXPZUXQUWMUWLXMXNUWLYGXQXKVUHVVSVVNVUHVVFVVGXDVVGXDOUWLXRZXDOVUHVVF
      UWLXSVUHVWDUWMXDUWMSUWLXTYAYBYCYDVUHVVTVVNVUHVVGSTVVQYEYFZXKTXEUUAVVRVVSV
      VTUQVWAUUBTVVGXEUUCWGYHUUDUUEZXKVUHVUMVVMVUHVULVVLEUWMVUHVUCQZVUIVUKVVLVW
      GVUIQVVKVUJRZVUKVVLVOVWGVVIYIKZUWPYIKZQZVVIUWPYJYKZQZVUIVWHVWGVWIVWJVWLVW
      GVVIVUHVVJVUCVWFXKYLVWGUWPUWMSUWOUWLUUFYLVWGVVIVVHUWPYJVUCVVIVVHOZVUHVUCU
      WMXDXLVWNUWMUWOUUKUWMXDUIVVHUUGXQUUHVWGVVTUXBVUPYJYKZJVVGNZUCTPZUWPVVGKZV
      VHUWPYJYKVUHVVTVUCVWEXKVUHVWQVUCVUHYMTKYMVUPYJYKZJVVGNZVWQUUIVUHVVPVWSJSN
      VWTVVQVWSJSVUPUUJUULVWSJVVGSUUMUUNVWPVWTUCYMTUXBYMOVWOVWSJVVGUXBYMVUPYJUU
      OYNUUPXCXKVUHUWNVUCVWRVWCUWMUWOUWLUUQYOUCJUWPVVGUURYHUUSUUTVUIVWMVWHVVBVU
      IVWMVWHVVCVVBVUIQVWKVWLVWHAUXGVVIUWPTUVBUVAUVCUVDYOVVKVUJUYFYPXQYQUVEYRUY
      SVVMGVVISVVMUXGVVIUVFUVGUVHTTUMUVNZVAMZVFZUYFRZEUWMNZGVVLVXDEUWMVVKVXCUYF
      UXIVXBUXGVVIAVXAVAIUVIUVJUVKUVLVXEGUVMUVOUXHVVIOZUYRVVLEUWMVXFUXJVVKUYFUX
      HVVIUXGUXIWSWTYNUVPUVQYTXQUVRUVSYSUYPUYSUXLGSUXKUYKRUYPUXLUYSUXKUYKDYPEUW
      MUXJUYFUVTUWAUWBUWCYQUYLUYCUYQUXMUYLUYAUYOUYBUYPUXTUYKBUWDUXTUYKDUWEUWFUW
      GUWHUWIYRYTUWJUWKXQYS $.
  $}

  ${
    $d f i j k m n p q s t u w x y z $.  $d j m n y ph $.  $d j m n y F $.
    $d j m n y M $.  $d j m n y N $.  $d j m n y T $.  $d j m n y U $.
    $d j m n y V $.
    poimir.0 $e |- ( ph -> N e. NN ) $.
    ${
      poimirlem2.1 $e |- ( ph -> F = ( y e. ( 0 ... ( N - 1 ) ) |->
        [_ if ( y < M , y , ( y + 1 ) ) / j ]_ ( T oF +
      ( ( ( U " ( 1 ... j ) ) X. { 1 } ) u.
        ( ( U " ( ( j + 1 ) ... N ) ) X. { 0 } ) ) ) ) ) $.
      poimirlem2.2 $e |- ( ph -> T : ( 1 ... N ) --> ZZ ) $.
      poimirlem2.3 $e |- ( ph -> U : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) ) $.
      ${
        poimirlem1.4 $e |- ( ph -> M e. ( 1 ... ( N - 1 ) ) ) $.
        $( Lemma for ~ poimir - the vertices on either side of a skipped vertex
           differ in at least two dimensions.  (Contributed by Brendan Leahy,
           21-Aug-2020.) $)
        poimirlem1 $p |- ( ph -> -. E* n e. ( 1 ... N )
          ( ( F ` ( M - 1 ) ) ` n ) =/= ( ( F ` M ) ` n ) ) $=
          ( c1 co cfv cfz wcel wceq vm cv cmin wne wa wrex wrmo caddc wf1o f1of
          wn wf syl cuz wss cc nncnd npcan1 cz nnzd peano2zm uzid peano2uz 4syl
          eqeltrrd fzss2 sseldd ffvelrnd fzp1elp1 eleqtrd cpr wral cima imassrn
          oveq2d crn frn 3syl sselda ltp1d ltned syldan csn cxp cc0 cun clt wbr
          zred cif csb cvv breq1 sylan9eqr csbeq1d syl2anc mpbid imaeq2d xpeq1d
          oveq2 oveq1 zcnd oveq1d uneq12d adantr eqtrd fvmptd fveq1d wfn cin c0
          ovexd 1ex fnconstg ax-mp c0ex pm3.2i imain fzdisj syl6eq fnun sylancr
          eqtr3d imaundi fneq2d imass2 mp3an12 fvconst2 ofval mpdan fzss1 fveq2
          cr fvex neeq12d sylib wi anbi12d bitri xchbinxr ffvelrnda id ifbieq1d
          syl5ss cof elfzelz iftrued wb elfzm1b adantl csbied ffn ccnv wfun wfo
          ltm1d dff1o3 simprbi ima0 elfzuz eqeltrd uzss elfzuz3 eluzp1p1 uneq2d
          fzsplit2 f1ofo foima inidm eqidd fvun2 3eqtrd ifbieq2d ltnrd iffalsed
          addid1d ovex csbie 1eluzge0 sseldi peano2re fzsplit 3netr4d ralrimiva
          fvun1 f1ofn fnimapr syl3anc raleqdv ralpr wf1 f1of1 f1veqaeq syl12anc
          fzpr necon3d mpd anbi1d neeq1 anbi2d neeq2 rspc2ev syl112anc weq rmo4
          dfrex2 dfral2 df-ne anbi2i annim rexbii ralbii ) AFUBZHOUCPZGQZQZUXMH
[encoded data, 4880 characters]
          YDWXGUKZUEWXJUYEWXKUYDUXMUXTUXHUXIUYDWXGUXJYSUXKYTUXLYSYTYP $.
      $}
      poimirlem2.4 $e |- ( ph -> V e. ( 1 ... ( N - 1 ) ) ) $.
      poimirlem2.5 $e |- ( ph -> M e. ( ( 0 ... N ) \ { V } ) ) $.
      $( Lemma for ~ poimir - consecutive vertices differ in at most one
         dimension.  (Contributed by Brendan Leahy, 21-Aug-2020.) $)
      poimirlem2 $p |- ( ph -> E* n e. ( 1 ... N )
        ( ( F ` ( V - 1 ) ) ` n ) =/= ( ( F ` V ) ` n ) ) $=
        ( c1 wceq wcel syl vm cv cmin co cfv wne wi cfz cima wral clt wbr caddc
        wrmo wa csn wn wo wb cdif cun imadif cc npcan1 fzsplit difeq1d difundir
        oveq2d cuz cz zred ltnled mpbid nsyl difsn syl5eq eqtrd uneq12d imaeq2d
        cle eqtr3d imaundi syl6eq adantr cxp cc0 imassrn wss syl5ss cfn wfn cin
        cr sselda c0 cvv 1ex fnconstg ax-mp c0ex pm3.2i imain fnun sylancr uzid
        fzdisj peano2uz eqeltrrd fzss2 syl5eqr fneq2d fzfid eqidd fvun1 mp3an12
        sylan fvconst2 adantl ofval imass2 syldan mpdan fzss1 fvun2 adantlr cif
        eqtr4d oveq1 sylan9eqr syl2anc biimpa eqeq2d oveq2 xpeq1d oveq1d csbied
        a1i ovexd fvmptd fveq1d weq wex ccnv wfun wf1o wfo dff1o3 simprbi nncnd
        fzp1elp1 eleqtrd elfzuz fzsuc elfzelz peano2zd elfzle2 peano2re elfzle1
        difun2 ltp1d eleq2d eldif elun 3bitr3g cof crn wf f1of frn ffn peano2zm
        ima0 nnzd sseldd f1ofo foima inidm jaodan csb cmpt vex ovex breq1 simpr
        ifex ifbieq12d eldifad zltlem1 lenltd bitrd iffalsed elfzm1b ltnsym imp
        zcnd id 1eluzge0 sseldi 3eqtr4d ex sylbid necon1ad elimasni eqcom f1ofn
        expdimp fnbrfvb syl5bb syl5ibr syld ralrimiva fvex eqeq2 imbi2d ralbidv
        ad2antrr spcev eqeltrd fzsplit2 fzsn uneq2d ltm1d elfzuz3 syl3anc mpand
        uzss lttr iftrued simpll csbied2 adantll eldifsni lttri2d mpjaodan rmo2
        iftrue nfv rmoeq1 syl5bbr ) AFUBZJQUCUDZGUEZUEZUYTJGUEZUEZUFZFUAUUAZUGZ
[encoded data, 8640 characters]
        UFUAUYQUYOAWVPYWAVUMUSWVQVUFFVUJVUIUYRTUYSVM $.
    $}
    $d i k p s t ph $.  $d f i j k n s t B $.  $d f i j k n p s t K $.
    $d f i k p s t M $.  $d f i k p s t N $.  $d f i p T $.  $d f i p U $.
    ${
      poimirlem4.1 $e |- ( ph -> K e. NN ) $.
      poimirlem4.2 $e |- ( ph -> M e. NN0 ) $.
      poimirlem4.3 $e |- ( ph -> M < N ) $.
      ${
        poimirlem3.4 $e |- ( ph -> T : ( 1 ... M ) --> ( 0 ..^ K ) ) $.
        poimirlem3.5 $e |- ( ph -> U : ( 1 ... M ) -1-1-onto-> ( 1 ... M ) ) $.
        $( Lemma for ~ poimir to add an interior point to an admissible face on
           the back face of the cube.  (Contributed by Brendan Leahy,
           21-Aug-2020.) $)
        poimirlem3 $p |- ( ph ->
          ( A. i e. ( 0 ... M ) E. j e. ( 0 ... M ) i = [_ ( ( T oF +
            ( ( ( U " ( 1 ... j ) ) X. { 1 } ) u.
          ( ( U " ( ( j + 1 ) ... M ) ) X. { 0 } ) ) ) u. ( ( ( M + 1 ) ... N )
            X. { 0 } ) ) / p ]_ B -> ( <. ( T u. { <. ( M + 1 ) , 0 >. } ) ,
          ( U u. { <. ( M + 1 ) , ( M + 1 ) >. } ) >. e. ( ( ( 0 ..^ K ) ^m
            ( 1 ... ( M + 1 ) ) ) X. { f | f : ( 1 ... ( M + 1 ) ) -1-1-onto->
          ( 1 ... ( M + 1 ) ) } ) /\ ( A. i e. ( 0 ... M ) E. j e. ( 0 ... M )
            i = [_ ( ( ( T u. { <. ( M + 1 ) , 0 >. } ) oF + ( ( ( ( U u.
          { <. ( M + 1 ) , ( M + 1 ) >. } ) " ( 1 ... j ) ) X. { 1 } ) u.
            ( ( ( U u. { <. ( M + 1 ) , ( M + 1 ) >. } ) " ( ( j + 1 ) ...
          ( M + 1 ) ) ) X. { 0 } ) ) ) u. ( ( ( ( M + 1 ) + 1 ) ... N ) X.
            { 0 } ) ) / p ]_ B /\ ( ( T u. { <. ( M + 1 ) , 0 >. } ) `
          ( M + 1 ) ) = 0 /\ ( ( U u. { <. ( M + 1 ) , ( M + 1 ) >. } ) `
            ( M + 1 ) ) = ( M + 1 ) ) ) ) ) $=
          ( cc0 wceq wcel vn cv c1 cfz cima csn cxp caddc cun csb wrex wral cop
          co cfv cfzo wf1o wa cmpt cvv wfn wf ffn syl adantr cin fnconstg ax-mp
          c0 1ex c0ex pm3.2i ccnv wfun wfo dff1o3 simprbi imain 3syl clt nn0red
          wbr fzdisj imaeq2d ima0 syl6eq sylan9req fnun sylancr imaundi cuz cn0
          ltp1d nn0p1nn syl6eleq fzsplit2 syl2anc eqcomd f1ofo sylan9eqr fneq2d
          cn foima mpbid ovexd inidm eqidd offval cz nnzd peano2uz wb cle sylan
          uneq1d eqtrd xpeq1d xpundir ovex xpsn uneq12d wn sylibr mpanl2 eqtr4i
          eqtri wss snssd sylib fvun2 mp3an2 cdm crn cres resundir wrel imassrn
          syl5eq un0 3eqtr3g cof w3a cmap cab elfznn0 nnuz elfzuz3 syl5eqr uzid
          nn0zd zltp1le peano2z eluz bitr4d uneq1i unass syl6eqr ltnled elfzle2
          fzsn nnred nsyl disjsn eqid fsn mpbir fun cmin 1z nn0uz fveq2i fzsuc2
          1m1e0 lbfzo0 ssequn2 feq23d f1osn f1oun syl12anc 3eqtr4d mpbird fveq2
          snid fnsn mpanr2 fvsn adantlr imadmrn imaeq1i dmxpid imaeq2i 3eqtr3ri
          a1i rnxpid eluzp1p1 eluzfz2 imass2 syl5eqss mpisyl imaundir syl6eleqr
          ssel elun2 adantl mp3an12 fvconst2 oveq12d 00id fmptapd fvun1 anassrs
          jca fvres relxp dmxpss sstri frn syl5ss relssres rnsnop sseqtri ssrin
          f1of incom syl5sseq fnresdisj mp2b xpeq1i reseq1i eqtr2i f1odm ineq2d
          ss0 reseq2d f1orel resindm eqtr3d fzssp1 mpbi uncom indi rneqd df-ima
          sseqin2 3eqtr4g reseq1d fveq1d 3eqtr2d eqtr4d csbeq1d eqeq2d rexbidva
          mpteq2dva ralbidv biimpd f1ofn jctird syl6ibr jctir f1oexrnex sylancl
          3anass elmap snex unexg f1oeq1 elabg f1oeq23 bitrd opelxpi jctild ) A
[encoded data, 6560 characters]
          WSVVHWQVVIUWAVWPVWSVYBVYEVVJWQVVK $.
      $}
      $( Lemma for ~ poimir connecting the admissible faces on the back face of
         the ` ( M + 1 ) ` -cube to admissible simplices in the ` M ` -cube.
         (Contributed by Brendan Leahy, 21-Aug-2020.) $)
      poimirlem4 $p |- ( ph -> { s e. ( ( ( 0 ..^ K ) ^m ( 1 ... M ) ) X.
        { f | f : ( 1 ... M ) -1-1-onto-> ( 1 ... M ) } ) |
          A. i e. ( 0 ... M ) E. j e. ( 0 ... M ) i =
        [_ ( ( ( 1st ` s ) oF + ( ( ( ( 2nd ` s ) " ( 1 ... j ) ) X. { 1 } ) u.
          ( ( ( 2nd ` s ) " ( ( j + 1 ) ... M ) ) X. { 0 } ) ) ) u.
        ( ( ( M + 1 ) ... N ) X. { 0 } ) ) / p ]_ B } ~~
          { s e. ( ( ( 0 ..^ K ) ^m ( 1 ... ( M + 1 ) ) ) X.
        { f | f : ( 1 ... ( M + 1 ) ) -1-1-onto-> ( 1 ... ( M + 1 ) ) } ) |
          ( A. i e. ( 0 ... M ) E. j e. ( 0 ... M ) i = [_ ( ( ( 1st ` s )
        oF + ( ( ( ( 2nd ` s ) " ( 1 ... j ) ) X. { 1 } ) u. ( ( ( 2nd ` s ) "
          ( ( j + 1 ) ... ( M + 1 ) ) ) X. { 0 } ) ) ) u. ( ( ( ( M + 1 ) + 1 )
        ... N ) X. { 0 } ) ) / p ]_ B /\ ( ( 1st ` s ) ` ( M + 1 ) ) = 0 /\
          ( ( 2nd ` s ) ` ( M + 1 ) ) = ( M + 1 ) ) } ) $=
        ( cfv cc0 cun wceq wcel wa vt vk vn cv c1st c2nd c1 cfz co cima csn cxp
        caddc csb wrex wral cfzo cmap wf1o cab crab w3a cop cmpt wbr adantr cn0
        wi cn clt wf xp1st elmapi syl adantl xp2nd fvex elab sylib snex imaeq1d
        f1oeq1 xpeq1d uneq12d oveq12d uneq1d csbeq1d eqeq2d rexbidv ralbidv weq
        fveq1d eqeq1d fveq2 sylibr cres wss sylancl ovex ad2antlr cdif 3syl wfn
        wb f1ofn syl2anr sylan9req eqtrd cz cuz syl6eleq difun2 syl6eq wn mpbid
        sylancr difsn imaeq2d syl2anc nnzd sylan fzsplit2 uneq2d c0ex ad3antrrr
        cvv cin c0 simplr syl2an fnconstg ax-mp elmapfn imaundi opeq12d ex fnop
        cfn nsyli impcom cof wreu poimirlem3 unex op1std op2ndd 3anbi123d elrab
        cen syl6ibr ralrimiva ralrab fzssp1 fssres elmap f1of1 f1ores ccnv wfun
        wf1 wfo dff1o3 simprbi imadif f1ofo foima elfz1end fnsnfv sneq difeq12d
        nn0p1nn cmin 1z nn0uz 1m1e0 fveq2i eqtr4i fzsuc2 difeq1d cr nn0red ltp1
        peano2re ltnle mpdan elfzle2 nsyl ad2antrr 3eqtr3d f1oeq3 resex opelxpi
        3ad2antr3 3anass ancom bitri uzid peano2uz nn0zd zltp1le peano2z bitr4d
        cle eluz fzsn xpundir xpsn uneq1i eqtri uneq2i unass a1i eqcomd simplrl
        imain elfznn0 ltp1d fzdisj ima0 nnuz fzss1 elfzuz3 eluzp1p1 eluzfz2 jca
        fnfvima 3expb eqeltrrd 1ex fvun2 mp3an12 fvconst2 adantlrl 00id fmptapd
        sylan9eqr fnssres ad3antlr pm3.2i sylan9eq eqtr3d 3eqtr3rd fneq2d fzss2
        fnun mpbird resima2 fneq1d fzfid inidm fvres disjsn fvun1 mp3an2 nn0cnd
        anassrs cc pncan1 fveq2d eleqtrrd syl6eqr eqtr4d an32s 3eqtr4rd syl6req
        offval eqidd rexbidva biimpd impr sylan2b 1st2nd2 fnsnsplit opeq2 sneqd
        reseq2d uneq12 adantrr adantrl 3adantr1 anbi12d rspcev syl12anc anim12i
        elrabi eqtr2 difeq1 3eqtr3g sylbi eqeqan12d anandis xpopth bitrd syl5ib
        opth sylan2 ralrimivva jctird reu4 rexrab anbi1i f1ompt sylanbrc ss2abi
        eqid f1of mapval sseqtr4i ssexi xpex rabex f1oen ) ADUDZJIUDZUEOZVXNUFO
[encoded data, 10240 characters]
        XDVYTVYTCXWRXWRVXGVXHVXIVXJVXKVXLVN $.
    $}
    $d z ph $.  $d f k p s t z F $.  $d s z K $.  $d s z N $.  $d k s t z T $.
    $d k t U $.
    ${
      $d j k m n p s t y z S $.
      poimirlem22.s $e |- S = { t e. ( ( ( ( 0 ..^ K ) ^m ( 1 ... N ) ) X.
        { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) X. ( 0 ... N ) ) |
          F = ( y e. ( 0 ... ( N - 1 ) ) |-> [_ if ( y < ( 2nd ` t ) , y ,
        ( y + 1 ) ) / j ]_ ( ( 1st ` ( 1st ` t ) ) oF +
          ( ( ( ( 2nd ` ( 1st ` t ) ) " ( 1 ... j ) ) X. { 1 } ) u.
        ( ( ( 2nd ` ( 1st ` t ) ) " ( ( j + 1 ) ... N ) ) X. { 0 } ) ) ) ) } $.
      ${
        poimirlem9.1 $e |- ( ph -> T e. S ) $.
        ${
          poimirlem5.2 $e |- ( ph -> 0 < ( 2nd ` T ) ) $.
          $( Lemma for ~ poimir to establish that, for the simplices defined by
             a walk along the edges of an ` N ` -cube, if the starting vertex
             is not opposite a given face, it is the earliest vertex of the
             face on the walk.  (Contributed by Brendan Leahy, 21-Aug-2020.) $)
          poimirlem5 $p |- ( ph -> ( F ` 0 ) = ( 1st ` ( 1st ` T ) ) ) $=
            ( cc0 cfv c1 co wcel syl vn c1st cfz csn cxp caddc cof c2nd clt wbr
            cif cima cun csb cmin cvv cmpt wceq cfzo cmap wf1o cab fveq2 breq2d
            ifbid csbeq1d fveq2d imaeq1d xpeq1d uneq12d csbeq2dv eqtrd mpteq2dv
            cv oveq12d eqeq2d elrab2 simprbi wa breq1 id iftrued sylan9eqr c0ex
            ifbieq1d c0 oveq2 fz10 syl6eq imaeq2d oveq1 0p1e1 oveq1d xpeq1i 0xp
            ima0 eqtri uneq1i uncom un0 3eqtri oveq2d csbie elrabi eleq2s xp1st
            wfo crab xp2nd fvex f1oeq1 elab sylib f1ofo foima syl5eq adantr cn0
            nnm1nn0 0elfz ovexd fvmptd wfn elmapfn fnconstg mp1i eqidd fvconst2
            cn adantl wf elmapi ffvelrnda elfzonn0 nn0cnd addid1d offveq ) AOHP
            EUBPZUBPZQJUCRZOUDZUEZUFUGZRZYSABOGBVNZEUHPZUIUJZUUEUUEQUFRZUKZYSYR
            UHPZQGVNZUCRZULZQUDZUEZUUJUUKQUFRZJUCRZULZUUAUEZUMZUUCRZUNZUUDOJQUO
            RZUCRZHUPAEDSZHBUVDUVBUQZURZMUVEEOIUSRZYTUTRZYTYTFVNZVAZFVBZUEZOJUC
            RZUEZSZUVGHBUVDGUUECVNZUHPZUIUJZUUEUUHUKZUVQUBPZUBPZUWAUHPZUULULZUU
            NUEZUWCUUQULZUUAUEZUMZUUCRZUNZUQZURZUVGCEUVODUVQEURZUWKUVFHUWMBUVDU
            WJUVBUWMUWJGUUIUWIUNUVBUWMGUVTUUIUWIUWMUVSUUGUUEUUHUWMUVRUUFUUEUIUV
            QEUHVCVDVEVFUWMGUUIUWIUVAUWMUWBYSUWHUUTUUCUWMUWAYRUBUVQEUBVCZVGUWMU
            WEUUOUWGUUSUWMUWDUUMUUNUWMUWCUUJUULUWMUWAYRUHUWNVGZVHVIUWMUWFUURUUA
            UWMUWCUUJUUQUWOVHVIVJVOVKVLVMVPLVQVRTAUUEOURZVSZUVBGOUVAUNZUUDUWQGU
            UIOUVAUWPAUUIOUUFUIUJZOUUHUKOUWPUUGUWSUUEOUUHUUEOUUFUIVTUWPWAWEAUWS
            OUUHNWBWCVFAUWRUUDURUWPAUWRYSUUJYTULZUUAUEZUUCRZUUDGOUVAUXBWDUUKOUR
            ZUUTUXAYSUUCUXCUUTUUJWFULZUUNUEZUXAUMZUXAUXCUUOUXEUUSUXAUXCUUMUXDUU
            NUXCUULWFUUJUXCUULQOUCRWFUUKOQUCWGWHWIWJVIUXCUURUWTUUAUXCUUQYTUUJUX
            CUUPQJUCUXCUUPOQUFRQUUKOQUFWKWLWIWMWJVIVJUXFWFUXAUMUXAWFUMUXAUXEWFU
            XAUXEWFUUNUEWFUXDWFUUNUUJWPWNUUNWOWQWRWFUXAWSUXAWTXAWIXBXCAUXAUUBYS
            UUCAUWTYTUUAAYTYTUUJXGZUWTYTURAYTYTUUJVAZUXGAUUJUVLSZUXHAYRUVMSZUXI
            AUVPUXJAUVEUVPMUVPEUWLCUVOXHDUWLCEUVOXDLXETEUVMUVNXFTZYRUVIUVLXITUV
            KUXHFUUJYRUHXJYTYTUVJUUJXKXLXMYTYTUUJXNTYTYTUUJXOTVIXBXPXQVLAUVCXRS
            ZOUVDSAJYISUXLKJXSTUVCXTTAYSUUBUUCYAYBAUAYTUAVNZYSPZOUFYSUUBYSUPAQJ
            UCYAAYSUVISZYSYTYCAUXJUXOUXKYRUVIUVLXFTZYSUVHYTYDTZOUPSUUBYTYCAWDYT
            OUPYEYFUXQAUXMYTSZVSZUXNYGUXRUXMUUBPOURAYTOUXMWDYHYJUXSUXNUXSUXNUXS
            UXNUVHSUXNXRSAYTUVHUXMYSAUXOYTUVHYSYKUXPYSUVHYTYLTYMUXNIYNTYOYPYQVL
            $.
        $}
        poimirlem9.2 $e |- ( ph -> ( 2nd ` T ) e. ( 1 ... ( N - 1 ) ) ) $.
        ${
          poimirlem6.3 $e |- ( ph -> M e. ( 1 ... ( ( 2nd ` T ) - 1 ) ) ) $.
          $( Lemma for ~ poimir establishing, for a face of a simplex defined
             by a walk along the edges of an ` N ` -cube, the single dimension
             in which successive vertices before the opposite vertex differ.
             (Contributed by Brendan Leahy, 21-Aug-2020.) $)
          poimirlem6 $p |- ( ph -> ( iota_ n e. ( 1 ... N )
            ( ( F ` ( M - 1 ) ) ` n ) =/= ( ( F ` M ) ` n ) ) =
              ( ( 2nd ` ( 1st ` T ) ) ` M ) ) $=
            ( c1 wcel wceq cv cmin co cfv wne cfz c1st c2nd wf1o wf cc0 cxp clt
            wbr caddc cif cima csn cun csb cmpt syl xp1st cuz wss cz cle elfznn
            sylib cn nnzd nnred lem1d cn0 nnm1nn0 elfzle2 letrd eluz2 syl3anbrc
            nn0red fzss2 sseldd ffvelrnd wa cvv wfn adantr cin c0 fnconstg c0ex
            1ex ax-mp pm3.2i simprbi imain fzdisj imaeq2d syl6eq eqtr3d sylancr
            ltm1d fnun nn0zd fzsplit2 syl2anc oveq1d uneq2d eqtrd imaundi mpbid
            fneq2d ovexd eqidd uneq1d 3eqtr4a xpeq1d xpundir fveq1d ad2antrr cr
            cdif ltp1d lttrd difeq1d wn ltnled nsyl difsn syl5eq uneq12d mp3an1
            fvun2 mpanr1 syl2an anassrs ofval fveq2 csbeq1d sylan9eqr cfzo cmap
            cab crab elrabi eleq2s xp2nd fvex f1oeq1 elab f1of peano2zm elmapfn
            cof zred ccnv wfun wfo dff1o3 ima0 cc nncnd npcan1 syl6eleq eqeltrd
            nnuz uzid peano2uz eqeltrrd f1ofo foima inidm fzpred f1ofn peano2re
            uzss fnsnfv un12 imadif fzsplit difundir fzsn difun2 elfzle1 eqcomd
            difeq12d 3eqtr3d syl5eqr eldifsn biimpri ancoms disjdif un23 eqtr4d
            equncomi an32s anasss breq2d ifbid fveq2d imaeq1d csbeq2dv mpteq2dv
            oveq12d eqeq2d elrab2 breq1 id ifbieq1d lelttrd iftrued oveq2 oveq1
            adantl oveq2d csbied lesub1dd elfz2nn0 fvmptd 1eluzge0 fzss1 syl6ss
            1red 3eqtr4d expr necon1d wi elfzonn0 ltned eluzfz1 fnfvima syl3anc
            elmapi mp3an12 fvconst2 mpdan nn0cnd addid1d elfz1end fvun1 3netr4d
            3eqtrd neeq12d syl5ibrcom impbid riota5 ) AHUAZKRUBUCZIUDZUDZVUGKIU
[encoded data, 7360 characters]
            VUJXXRVULXXSVUGVUQVUIYRVUGVUQVUKYRVUCVUDWGVUEVUF $.
        $}

        ${
          poimirlem7.3 $e |- ( ph ->
            M e. ( ( ( ( 2nd ` T ) + 1 ) + 1 ) ... N ) ) $.
          $( Lemma for ~ poimir , similar to ~ poimirlem6 , but for vertices
             after the opposite vertex.  (Contributed by Brendan Leahy,
             21-Aug-2020.) $)
          poimirlem7 $p |- ( ph -> ( iota_ n e. ( 1 ... N )
            ( ( F ` ( M - 2 ) ) ` n ) =/= ( ( F ` ( M - 1 ) ) ` n ) ) =
              ( ( 2nd ` ( 1st ` T ) ) ` M ) ) $=
            ( c1 wcel wceq cv c2 cmin co cfv wne cfz c1st c2nd wf1o cc0 cxp clt
            wf wbr caddc cif cima csn cun csb syl xp1st sylib cuz wss peano2nnd
            cmpt cn syl6eleq fzss1 sseldd ffvelrnd wa cvv wfn adantr cin c0 1ex
            nnuz fnconstg ax-mp c0ex pm3.2i simprbi imain cz zred fzdisj syl6eq
            imaeq2d eqtr3d fnun sylancr cc zcnd npcan1 cle nnred ltp1d sylanbrc
            elfzle1 eqeltrrd fzsplit2 syl2anc oveq1d uneq2d eqtrd imaundi mpbid
            fneq2d ovexd eqidd uneq1d 3eqtr4a xpeq1d xpundir fveq1d ad2antrr cr
            cdif difeq1d wn ltnled elfzle2 nsyl difsn syl5eq fvun2 mp3an1 ofval
            uneq12d fveq2 csbeq1d wb adantl oveq1 sylan9eqr cn0 cab cfzo elrabi
            cmap cof crab eleq2s fvex f1oeq1 elab f1of elfznn elmapfn ccnv wfun
            xp2nd dff1o3 elfzelz ltm1d ima0 nnge1d lelttrd ltletrd ltled elnnz1
            wfo 1red eqeltrd peano2zm uzid peano2uz 3syl uzss f1ofo foima inidm
            elfzuz3 fzpred f1ofn fnsnfv un12 peano2re lttrd imadif fzsplit fzsn
            difun2 eqcomd 3eqtr3d syl5eqr eldifsn biimpri ancoms disjdif mpanr1
            difundir difeq12d syl2an anassrs un23 equncomi eqtr4d anasss breq2d
            an32s fveq2d imaeq1d oveq12d csbeq2dv mpteq2dv eqeq2d elrab2 sub1m1
            ifbid breq1 ifbieq2d nncnd add1p1 eqbrtrrd 2re mp3an2 posdifd elnnz
            leaddsub nnm1nn0 nn0red lenltd bitrd iffalsed oveq2 oveq2d lesub1dd
            csbied lem1d letrd elfz2nn0 syl3anbrc fvmptd lep1d 1re 3eqtr4d expr
            nnnn0d necon1d wi elfzonn0 eluzfz1 fnfvima syl3anc mp3an12 fvconst2
            elmapi ltned mpdan nn0cnd addid1d fzss2 elfz1end 3netr4d syl5ibrcom
            3eqtrd fvun1 neeq12d impbid riota5 ) AHUAZKUBUCUDZIUEZUEZVVFKRUCUDZ
[encoded data, 7920 characters]
            UNVVFVVQVVHYNVVFVVQVVKYNVVCVUTVQVVDVVE $.
        $}
        poimirlem9.3 $e |- ( ph -> U e. S ) $.
        $( Lemma for ~ poimir , establishing that away from the opposite vertex
           the walks in ~ poimirlem9 yield the same vertices.  (Contributed by
           Brendan Leahy, 21-Aug-2020.) $)
        poimirlem8 $p |- ( ph -> ( ( 2nd ` ( 1st ` U ) ) |` ( ( 1 ... N ) \
          { ( 2nd ` T ) , ( ( 2nd ` T ) + 1 ) } ) ) =
            ( ( 2nd ` ( 1st ` T ) ) |` ( ( 1 ... N ) \ { ( 2nd ` T ) ,
          ( ( 2nd ` T ) + 1 ) } ) ) ) $=
          ( c1 co wcel syl vk vn cfz c2nd cfv caddc cpr cdif c1st cres wfn wf1o
          wss cab cc0 cfzo cmap cxp cmin clt wbr cif cima csn cun csb cmpt wceq
          cv elrabi eleq2s xp1st xp2nd fvex elab sylib f1ofn fnssres sylancl wa
          f1oeq1 cc nncnd npcan1 oveq2d difeq1d cuz cn cz peano2uz oveq1d eqtrd
          eqeltrd cin wn cle ltnled mpbid elfzle2 difsn cr peano2re ltp1d lttrd
          nsyl ineq12d difeq2i difundi inidm 3eqtr3g elfzle1 uneq12d eleq2d wne
          crio fveq2 breq2d ifbid csbeq1d fveq2d imaeq1d xpeq1d csbeq2dv eqeq2d
          oveq12d mpteq2dv elrab2 simprbi wf elmapi fss adantr simpr poimirlem6
          biimpar syldan eqtr3d poimirlem7 fvres adantl cof crab difss fzp1elp1
          eleqtrd fzsplit difundir elfznn nnuz syl6eleq nnzd peano2zm uzid 3syl
          eqeltrrd fzsplit2 syl2anc fzpr uneq2d nnred ltm1d zred difun2 3eqtrri
          df-pr eqtr2i syl5eq elun syl6bb biimpa wrmo elfzoelz ssriv poimirlem1
          wo eldifsn biimpri sylan poimirlem2 ex necon1bd mpd c2 jaodan 3eqtr4d
          eqfnfvd ) AUAQKUCRZEUDUEZUWHQUFRZUGZUHZFUIUEZUDUEZUWKUJZEUIUEZUDUEZUW
[encoded data, 4400 characters]
          TVUMVUQVUOVHAVULUWKUWPYSYTUWEUWF $.
        poimirlem9.4 $e |- ( ph ->
          ( 2nd ` ( 1st ` U ) ) =/= ( 2nd ` ( 1st ` T ) ) ) $.
        $( Lemma for ~ poimir , establishing the two walks that yield a given
           face when the opposite vertex is neither first nor last.
           (Contributed by Brendan Leahy, 21-Aug-2020.) $)
        poimirlem9 $p |- ( ph -> ( 2nd ` ( 1st ` U ) ) =
          ( ( 2nd ` ( 1st ` T ) ) o. ( { <. ( 2nd ` T ) ,
            ( ( 2nd ` T ) + 1 ) >. , <. ( ( 2nd ` T ) + 1 ) ,
          ( 2nd ` T ) >. } u. ( _I |` ( ( 1 ... N ) \
            { ( 2nd ` T ) , ( ( 2nd ` T ) + 1 ) } ) ) ) ) ) $=
          ( wceq wcel cvv c1st cfv c2nd c1 caddc cop cpr ccom cfz cdif cres cun
          co resundi wss syl 4syl prssd sylib reseq2d wf1o wfn cab cc0 cmap cxp
          cz cv clt wbr cima elrabi eleq2s xp1st xp2nd fvex f1oeq1 elab fnresdm
          csn f1ofn 3syl eqtrd syl5eqr c3 c2 cle wn chash wi df-pr coundi eqtri
          wne wf wf1 f1of1 f1ores syl2anc f1of syl6eq syl5eq necomd necon3d mpd
          neneqd simprbi nsyl wa ax-mp bitri fnressn uneq12d 3eqtr4g w3a wb cfn
          prex mapval mapfi mp2an eqeltrri ss2abi fnimapr syl3anc f1oeq3d mpbid
          prfi ssfi f1oprg mp4an crn ccnv wfun wfo dff1o3 imadif f1ofo cen cfa
          cid cmin cuz nncnd npcan1 nnzd peano2zm uzid peano2uz eqeltrrd sseldd
          cc fzss2 fzp1elp1 oveq2d eleqtrd undif cfzo cif cof csb cmpt crab 2re
          2lt3 3re ltnlei mpbi coeq2i snssd fnsnfv feq3d mpbird eqid ovex mpbir
          ctp fsn fco2 sylancl fconst2 uneq1d elfznn nnred ltp1d ltned f1veqaeq
          xpsn cn syl12anc opth opth1 opex snid elun1 eleq2 mpbii elpr necon2ai
          oran eqnetrd reseq2i poimirlem8 uneq12 eqeq12d syl5ib mpan2d eqnetrrd
          wo coex resex hashtpg mp3an biimpi 3expia f1oco rnpropg eqimssi cores
          prcom f1oeq3 foima eqtr4d rneqd df-ima difeq12d dfin4 sseqin2 imaeq2d
          mp2b cin eqtr3d 3eqtrd 3eqtr3d ssabral raltp syl3anbrc hashss sylancr
          wral enref hashprg hashen hashfacen sylibr hashfac fac2 breqtrd breq1
          fveq2d syl5ibcom syld necon1bd mpi coires1 syl6eqr ) AFUAUBZUCUBZEUAU
[encoded data, 5520 characters]
          VIVUOVUPXMUYLVUTVVEVVJWLVUP $.
      $}
      poimirlem22.1 $e |- ( ph ->
        F : ( 0 ... ( N - 1 ) ) --> ( ( 0 ... K ) ^m ( 1 ... N ) ) ) $.
      ${
        poimirlem12.2 $e |- ( ph -> T e. S ) $.
        ${
          poimirlem11.3 $e |- ( ph -> ( 2nd ` T ) = 0 ) $.
          $( Lemma for ~ poimir establishing the cube that yields the simplex
             that yields a face if the opposite vertex was first on the walk.
             (Contributed by Brendan Leahy, 21-Aug-2020.) $)
          poimirlem10 $p |- ( ph -> ( ( F ` ( N - 1 ) ) oF -
            ( ( 1 ... N ) X. { 1 } ) ) = ( 1st ` ( 1st ` T ) ) ) $=
            ( c1 co cfv wcel wceq vn cfz c1st caddc cmin csn cxp cvv ovexd cmap
            cv cc0 wfn cn0 cn nnm1nn0 syl nn0fz0 ffvelrnd elmapfn fnconstg mp1i
            sylib 1ex cfzo wf1o cab c2nd clt wbr cif cima cun cof csb cmpt crab
            elrabi eleq2s xp1st wa breq2d csbeq1d fveq2d imaeq1d xpeq1d uneq12d
            fveq2 ifbid oveq12d csbeq2dv eqtrd mpteq2dv eqeq2d elrab2 wb breq12
            simprbi sylan2 ancoms oveq1 nncnd npcan1 sylan9eqr ifbieq2d nn0ge0d
            cc cle wn 0red nn0red lenltd mpbid iffalsed adantr c0 oveq2 imaeq2d
            wfo xp2nd fvex f1oeq1 elab f1ofo foima 3syl oveq1d nnred ltp1d nnzd
            cz peano2zd fzn syl2anc ima0 xpeq1i 0xp eqtri syl6eq un0 oveq2d wf
            csbied fvmptd fveq1d inidm eqidd fvconst2 adantl ffvelrnda elfzonn0
            ofval elmapi nn0cnd pncan1 offveq ) AUAPJUBQZUAUKZEUCRZUCRZRZPUDQZP
            UEJPUEQZHRZUUQPUFZUGZUUTUHAPJUBUIZAUVDULIUBQZUUQUJQZSUVDUUQUMAULUVC
            UBQZUVIUVCHMAUVCUNSZUVCUVJSAJUOSUVKKJUPUQZUVCURVCZUSUVDUVHUUQUTUQPU
            HSUVFUUQUMAVDUUQPUHVAVBZAUUTULIVEQZUUQUJQZSZUUTUUQUMAUUSUVPUUQUUQFU
            KZVFZFVGZUGZSZUVQAEUWAULJUBQZUGZSZUWBAEDSZUWENUWEEHBUVJGBUKZCUKZVHR
            ZVIVJZUWGUWGPUDQZVKZUWHUCRZUCRZUWMVHRZPGUKZUBQZVLZUVEUGZUWOUWPPUDQZ
            JUBQZVLZULUFZUGZVMZUDVNZQZVOZVPZTZCUWDVQDUXJCEUWDVRLVSUQEUWAUWCVTUQ
            ZUUSUVPUVTVTUQZUUTUVOUUQUTUQZAUURUUQSZWAZUURUVDRZUURUUTUVFUXFQZRZUV
            BAUXPUXRTUXNAUURUVDUXQABUVCGUWGEVHRZVIVJZUWGUWKVKZUUTUUSVHRZUWQVLZU
            VEUGZUYBUXAVLZUXCUGZVMZUXFQZVOZUXQUVJHUHAUWFHBUVJUYIVPZTZNUWFUWEUYK
            UXJUYKCEUWDDUWHETZUXIUYJHUYLBUVJUXHUYIUYLUXHGUYAUXGVOUYIUYLGUWLUYAU
            XGUYLUWJUXTUWGUWKUYLUWIUXSUWGVIUWHEVHWHWBWIWCUYLGUYAUXGUYHUYLUWNUUT
            UXEUYGUXFUYLUWMUUSUCUWHEUCWHZWDUYLUWSUYDUXDUYFUYLUWRUYCUVEUYLUWOUYB
            UWQUYLUWMUUSVHUYMWDZWEWFUYLUXBUYEUXCUYLUWOUYBUXAUYNWEWFWGWJWKWLWMWN
            LWOWRUQAUWGUVCTZWAZUYIGJUYHVOZUXQUYPGUYAJUYHUYPUYAUVCULVIVJZUWGJVKZ
            JUYPUXTUYRUWKJUWGUYOAUXTUYRWPZAUYOUXSULTUYTOUWGUVCUXSULVIWQWSWTUYOA
            UWKUVCPUDQZJUWGUVCPUDXAAJXGSVUAJTAJKXBJXCUQXDXEAUYSJTUYOAUYRUWGJAUL
            UVCXHVJUYRXIAUVCUVLXFAULUVCAXJAUVCUVLXKXLXMXNXOWLWCAUYQUXQTUYOAGJUY
            HUXQUOKAUWPJTZWAZUYGUVFUUTUXFVUCUYGUVFXPVMUVFVUCUYDUVFUYFXPVUCUYCUU
            QUVEVUBAUYCUYBUUQVLZUUQVUBUWQUUQUYBUWPJPUBXQXRAUUQUUQUYBVFZUUQUUQUY
            BXSVUDUUQTAUYBUVTSZVUEAUWBVUFUXKUUSUVPUVTXTUQUVSVUEFUYBUUSVHYAUUQUU
            QUVRUYBYBYCVCUUQUUQUYBYDUUQUUQUYBYEYFXDWFVUCUYFUYBXPVLZUXCUGZXPVUCU
            YEVUGUXCVUCUXAXPUYBVUBAUXAJPUDQZJUBQZXPVUBUWTVUIJUBUWPJPUDXAYGAJVUI
            VIVJZVUJXPTZAJAJKYHYIAVUIYKSJYKSVUKVULWPAJAJKYJZYLVUMVUIJYMYNXMXDXR
            WFVUHXPUXCUGXPVUGXPUXCUYBYOYPUXCYQYRYSWGUVFYTYSUUAUUCXOWLUVMAUUTUVF
            UXFUIUUDUUEXOAUUQUUQUVAPUDUUQUUTUVFUHUHUURUXMUVNUVGUVGUUQUUFUXOUVAU
            UGUXNUURUVFRPTAUUQPUURVDUUHUUIZUULWLVUNUXOUVAXGSUVBPUEQUVATUXOUVAUX
            OUVAUVOSUVAUNSAUUQUVOUURUUTAUVQUUQUVOUUTUUBUXLUUTUVOUUQUUMUQUUJUVAI
            UUKUQUUNUVAUUOUQUUP $.
          poimirlem11.4 $e |- ( ph -> U e. S ) $.
          poimirlem11.5 $e |- ( ph -> ( 2nd ` U ) = 0 ) $.
          poimirlem11.6 $e |- ( ph -> M e. ( 1 ... N ) ) $.
          $( Lemma for ~ poimir connecting walks that could yield from a given
             cube a given face opposite the first vertex of the walk.
             (Contributed by Brendan Leahy, 21-Aug-2020.) $)
          poimirlem11 $p |- ( ph -> ( ( 2nd ` ( 1st ` T ) ) " ( 1 ... M ) ) C_
            ( ( 2nd ` ( 1st ` U ) ) " ( 1 ... M ) ) ) $=
            ( c1st cfv c2nd c1 cfz co cima cv wcel wn wa wceq cmin cdif imassrn
            caddc crn wf wss wf1o cc0 cxp clt wbr cif csn cun cof elrabi eleq2s
            csb cmpt syl xp1st xp2nd fvex f1oeq1 elab sylib f1of frn syl5ss wfo
            f1ofo foima ccnv wfun dff1o3 simprbi syl6eq c0 ltp1d imaeq2d eqtr3d
            cin sselda fveq2 breq2d ifbid csbeq1d fveq2d imaeq1d xpeq1d uneq12d
            cvv oveq12d csbeq2dv mpteq2dv eqeq2d elrab2 wb breq12 sylan2 ancoms
            eqtrd oveq1 cc ifbieq2d cz mpbid nn0red adantr oveq2d adantl csbied
            nnzd cn0 ovexd fvmptd fveq1d wfn elmapfn fnconstg ax-mp c0ex pm3.2i
            1ex imain ima0 syldan wi eldif cab cfzo cmap sseqtr4d ssdifd imadif
            difun2 fzsplit uncom difeq1d incom elfznn nnred fzdisj syl5eq disj3
            crab cn 3eqtr4a sseqtrd sylan2br nncnd npcan1 sylan9eqr cle elfzm1b
            syl2anc elfzle1 0red nnm1nn0 lenltd iffalsed oveq1d sylancr imaundi
            oveq2 syl5eqr fneq2d inidm eqidd fvun2 mp3an12 sylan fvconst2 ofval
            mpdan elmapi ffvelrnda elfzonn0 nn0cnd addid1d 3eqtrd fvun1 adantrr
            fnun poimirlem10 3eqtr3d gtned neneqd pm2.65da iman sylibr ssrdv
            wne ) ABEUAUBZUCUBZUDKUEUFZUGZFUAUBZUCUBZUXIUGZABUHZUXJUIZUXNUXMUIZ
[encoded data, 5600 characters]
            UXOUXPUXCUXDUXE $.
        $}
        poimirlem12.3 $e |- ( ph -> ( 2nd ` T ) = N ) $.
        poimirlem12.4 $e |- ( ph -> U e. S ) $.
        poimirlem12.5 $e |- ( ph -> ( 2nd ` U ) = N ) $.
        poimirlem12.6 $e |- ( ph -> M e. ( 0 ... ( N - 1 ) ) ) $.
        $( Lemma for ~ poimir connecting walks that could yield from a given
           cube a given face opposite the final vertex of the walk.
           (Contributed by Brendan Leahy, 21-Aug-2020.) $)
        poimirlem12 $p |- ( ph -> ( ( 2nd ` ( 1st ` T ) ) " ( 1 ... M ) ) C_
          ( ( 2nd ` ( 1st ` U ) ) " ( 1 ... M ) ) ) $=
          ( c1st cfv c2nd c1 cfz co cima cv wcel wn caddc wceq cdif crn imassrn
          wa wf1o wf wss cc0 cxp clt wbr cif csn cun csb cmpt elrabi xp1st 3syl
          eleq2s xp2nd syl fvex f1oeq1 elab sylib f1of frn wfo f1ofo foima ccnv
          syl5ss wfun dff1o3 simprbi cuz cn cn0 syl6eq cin nn0red ltp1d imaeq2d
          c0 eqtr3d sselda cvv fveq2 breq2d ifbid csbeq1d fveq2d imaeq1d xpeq1d
          uneq12d csbeq2dv eqtrd mpteq2dv eqeq2d elrab2 breq1 ifbieq1d breqtrrd
          oveq12d cr iftrued sylan9eqr oveq2d adantl csbied adantr ovexd fvmptd
          fveq1d wfn elmapfn fnconstg ax-mp c0ex pm3.2i imain ima0 fnun sylancr
          1ex imaundi syldan wi eldif cab cfzo cmap cmin cof crab ssdifd imadif
          sseqtr4d difun2 elfznn0 nn0p1nn nnuz syl6eleq cc nncnd npcan1 elfzuz3
          peano2uz eqeltrrd fzsplit2 syl2anc uncom difeq1d incom fzdisj 3eqtr4a
          syl5eq disj3 sseqtrd sylan2br nnred peano2rem cle elfzle2 ltm1d oveq2
          id lelttrd oveq1 oveq1d syl5eqr mpbid inidm eqidd fvun2 mp3an12 sylan
          fneq2d fvconst2 ofval elmapi ffvelrnda elfzonn0 nn0cnd addid1d 3eqtrd
          mpdan fvun1 adantrr nngt0d poimirlem5 3eqtr3d wne gtned pm2.65da iman
          neneqd sylibr ssrdv ) ABEUAUBZUCUBZUDKUEUFZUGZFUAUBZUCUBZUXOUGZABUHZU
[encoded data, 5360 characters]
          YFWXRWOUXGYTUXJUXBUXHUYAUYBUXIUXKUXL $.
      $}
      $( Lemma for ~ poimir - for at most one simplex associated with a shared
         face is the opposite vertex first on the walk.  (Contributed by
         Brendan Leahy, 21-Aug-2020.) $)
      poimirlem13 $p |- ( ph -> E* z e. S ( 2nd ` z ) = 0 ) $=
        ( cfv wceq wcel c1 co cfz syl vk vn vm cv c2nd cc0 wa wi wral wrmo c1st
        weq cmin csn cxp cn ad2antrr cmap wf simplrl simprl poimirlem10 simplrr
        cof simprr eqtr3d wfn wf1o cab cfzo clt wbr caddc cif cima cun csb cmpt
        crab elrabi eleq2s xp1st xp2nd fvex f1oeq1 sylib adantr ad2antlr adantl
        elab f1ofn cdif eleq1 anbi2d imaeq2d eqeq12d imbi12d ad3antrrr ad3antlr
        oveq2 simpl simpr poimirlem11 eqssd chvarv wn simpll cle cn0 wne elfznn
        nnm1nn0 cc wb ax-1cn subeq0 sylancl necon3abid biimpar elnnne0 sylanbrc
        nncnd cr nnred elfzle2 cz sylan c0 ima0 syl6eq 3eqtr4a difeq12d cuz cin
        eqtrd fveq2 imaeq1d xpopth syl2an mpbi2and nn0red lem1d letrd nnzd fznn
        adantrr mpbir2and ovex vtocl syldan expr eqtr4i oveq1 1m1e0 oveq2d fz10
        pm2.61d2 fnsnfv uncom difeq1i difun2 eqtri npcan1 elnnuz biimpi eqeltrd
        nncn nn0zd peano2uz eqeltrrd fzsplit2 syl2anc oveq1d nnz uneq2d difeq1d
        uzid fzsn nnre ltm1 peano2rem ltnle mpancom mpbid eqeq1i disjsn 3bitr3i
        nsyl incom ccnv wfun dff1o3 simprbi imadif 3eqtr2d anbi1d fveq2d fveq1d
        disj3 wfo sneqd 3eqtr4d sneqr eqfnfvd eqtr3 ex ralrimivva eqeq1d sylibr
        rmo4 ) ACUDZUENZUFOZUAUDZUENZUFOZUGZCUAULZUHZUAEUICEUIUXMCEUJAUXSCUAEEA
        UXKEPZUXNEPZUGZUGZUXQUXRUYCUXQUGZUXKUKNZUXNUKNZOZUXLUXOOZUXRUYDUYEUKNZU
        YFUKNZOZUYEUENZUYFUENZOZUYGUYDJQUMRZHNQJSRZQUNZUOUMVDRUYIUYJUYDBDEUXKFG
        HIJAJUPPZUYBUXQKUQZLAUFUYOSRZUFISRUYPURRHUSZUYBUXQMUQZAUXTUYAUXQUTZUYCU
        XMUXPVAVBUYDBDEUXNFGHIJUYSLVUBAUXTUYAUXQVCZUYCUXMUXPVEVBVFUYDUBUYPUYLUY
        MUYBUYLUYPVGZAUXQUXTVUEUYAUXTUYPUYPUYLVHZVUEUXTUYLUYPUYPFUDZVHZFVIZPZVU
        FUXTUYEUFIVJRUYPURRZVUIUOZPZVUJUXTUXKVULUFJSRZUOZPZVUMVUPUXKHBUYTGBUDZD
        UDZUENVKVLVUQVUQQVMRVNVURUKNZUKNVUSUENZQGUDZSRVOUYQUOVUTVVAQVMRJSRVOUFU
        NUOVPVMVDRVQVROZDVUOVSZEVVBDUXKVUOVTLWAZUXKVULVUNWBTZUYEVUKVUIWCTVUHVUF
        FUYLUYEUEWDUYPUYPVUGUYLWEWJWFZUYPUYPUYLWKTZWGWHUYBUYMUYPVGZAUXQUYAVVHUX
        TUYAUYPUYPUYMVHZVVHUYAUYMVUIPZVVIUYAUYFVULPZVVJUYAUXNVUOPZVVKVVLUXNVVCE
        VVBDUXNVUOVTLWAZUXNVULVUNWBTZUYFVUKVUIWCTVUHVVIFUYMUYFUEWDUYPUYPVUGUYMW
        EWJWFUYPUYPUYMWKTWIWHUYDUBUDZUYPPZUGZVVOUYLNZUNZVVOUYMNZUNZOVVRVVTOVVQU
        YLQVVOSRZVOZUYLQVVOQUMRZSRZVOZWLZUYMVWBVOZUYMVWEVOZWLZVVSVWAVVQVWCVWHVW
        FVWIUYDUCUDZUYPPZUGZUYLQVWKSRZVOZUYMVWNVOZOZUHZVVQVWCVWHOZUHUCUBUCUBULZ
        VWMVVQVWQVWSVWTVWLVVPUYDVWKVVOUYPWMWNVWTVWOVWCVWPVWHVWTVWNVWBUYLVWKVVOQ
        SWTZWOVWTVWNVWBUYMVXAWOWPWQVWMVWOVWPVWMBDEUXKUXNFGHIVWKJAUYRUYBUXQVWLKW
        RZLAVUAUYBUXQVWLMWRZUYBUXTAUXQVWLUXTUYAXAWSZUYCUXMUXPVWLUTZUYBUYAAUXQVW
        LUXTUYAXBWSZUYCUXMUXPVWLVCZUYDVWLXBZXCVWMBDEUXNUXKFGHIVWKJVXBLVXCVXFVXG
        VXDVXEVXHXCXDZXEVVQVVOQOZVWFVWIOZUYDVVPVXJXFZVXKUYDVVPVXLUGZVWDUYPPZVXK
        UYDAVXMVXNAUYBUXQXGAVXMUGVXNVWDUPPZVWDJXHVLZVXMVXOAVXMVWDXIPZVWDUFXJZVX
        OVVPVXQVXLVVPVVOUPPZVXQVVOJXKZVVOXLZTZWGVVPVXRVXLVVPVXJVWDUFVVPVVOXMPZQ
        XMPVWDUFOVXJXNVVPVVOVXTYBXOVVOQXPXQXRXSVWDXTYAWIAVVPVXPVXLAVVPUGVWDVVOJ
        VVPVWDYCPZAVVPVWDVYBUUAWIVVPVVOYCPZAVVPVVOVXTYDZWIAJYCPVVPAJKYDWGVVPVWD
        VVOXHVLAVVPVVOVYFUUBWIVVPVVOJXHVLAVVOQJYEWIUUCUUFAVXNVXOVXPUGXNZVXMAJYF
        PVYGAJKUUDVWDJUUETWGUUGYGVWRUYDVXNUGZVXKUHUCVWDVVOQUMUUHVWKVWDOZVWMVYHV
        WQVXKVYIVWLVXNUYDVWKVWDUYPWMWNVYIVWOVWFVWPVWIVYIVWNVWEUYLVWKVWDQSWTZWOV
        YIVWNVWEUYMVYJWOWPWQVXIUUIUUJUUKVXJUYLYHVOZUYMYHVOZVWFVWIVYKYHVYLUYLYIU
        YMYIUULVXJVWEYHUYLVXJVWEQUFSRYHVXJVWDUFQSVXJVWDQQUMRUFVVOQQUMUUMUUNYJUU
        OUUPYJZWOVXJVWEYHUYMVYMWOYKUUQYLUYDUXTVVPVVSVWGOZVUCUXTVVPUGZVVSUYLVVOU
        NZVOZUYLVWBVWEWLZVOZVWGUXTVUEVVPVVSVYQOVVGUYPVVOUYLUURYGVYOVYRVYPUYLVYO
        VXSVYRVYPOVVPVXSUXTVXTWIVXSVWEVYPVPZVWEWLZVYPVWEWLZVYRVYPWUAVYPVWEVPZVW
        EWLWUBVYTWUCVWEVWEVYPUUSUUTVYPVWEUVAUVBVXSVWBVYTVWEVXSVWBVWEVWDQVMRZVVO
        SRZVPZVYTVXSWUDQYMNZPVVOVWDYMNZPVWBWUFOVXSWUDVVOWUGVXSVYCWUDVVOOVVOUVGV
        VOUVCTZVXSVVOWUGPVVOUVDUVEUVFVXSWUDVVOWUHWUIVXSVWDWUHPZWUDWUHPVXSVWDYFP
        WUJVXSVWDVYAUVHVWDUVQTVWDVWDUVITUVJVWDQVVOUVKUVLVXSWUEVYPVWEVXSWUEVVOVV
        OSRZVYPVXSWUDVVOVVOSWUIUVMVXSVVOYFPWUKVYPOVVOUVNVVOUVRTYOUVOYOUVPVXSVVO
        VWEPZXFZVYPWUBOZVXSVYEWUMVVOUVSVYEVVOVWDXHVLZWULVYEVWDVVOVKVLZWUOXFZVVO
        UVTVYDVYEWUPWUQXNVVOUWAVWDVVOUWBUWCUWDVVOQVWDYEUWHTVWEVYPYNZYHOVYPVWEYN
        ZYHOWUMWUNWURWUSYHVWEVYPUWIUWEVWEVVOUWFVYPVWEUWSUWGWFYKTWOUXTVYSVWGOZVV
        PUXTUYLUWJUWKZWUTUXTVUFWVAVVFVUFUYPUYPUYLUWTWVAUYPUYPUYLUWLUWMTVWBVWEUY
        LUWNTWGUWOZYGUYDUYAVVPVWAVWJOZVUDVYOVYNUHUYAVVPUGZWVCUHCUAUXRVYOWVDVYNW
        VCUXRUXTUYAVVPUXKUXNEWMUWPUXRVVSVWAVWGVWJUXRVVRVVTUXRVVOUYLUYMUXRUYEUYF
        UEUXKUXNUKYPUWQZUWRUXAUXRVWCVWHVWFVWIUXRUYLUYMVWBWVEYQUXRUYLUYMVWEWVEYQ
        YLWPWQWVBXEYGUXBVVRVVTVVOUYLWDUXCTUXDUYBUYKUYNUGUYGXNZAUXQUXTVUMVVKWVFU
        YAVVEVVNUYEUYFVUKVUIVUKVUIYRYSWHYTUXQUYHUYCUXLUXOUFUXEWIUYBUYGUYHUGUXRX
        NZAUXQUXTVUPVVLWVGUYAVVDVVMUXKUXNVULVUNVULVUNYRYSWHYTUXFUXGUXMUXPCUAEUX
        RUXLUXOUFUXKUXNUEYPUXHUXJUXI $.
      $( Lemma for ~ poimir - for at most one simplex associated with a shared
         face is the opposite vertex last on the walk.  (Contributed by Brendan
         Leahy, 21-Aug-2020.) $)
      poimirlem14 $p |- ( ph -> E* z e. S ( 2nd ` z ) = N ) $=
        ( cfv wceq wa wcel c1 cfz co vk vn vm cv c2nd weq wi wral wrmo c1st cc0
        cn ad2antrr simplrl clt nngt0d breq2 biimparc sylan ad2ant2r poimirlem5
        wbr simplrr ad2ant2rl eqtr3d wfn wf1o cab cfzo cmap cxp cmin caddc cima
        cif csn cun cof csb cmpt crab elrabi eleq2s xp1st 3syl fvex f1oeq1 elab
        xp2nd sylib f1ofn syl adantr ad2antlr adantl cdif simpllr oveq2 imaeq2d
        wfo f1ofo foima sylan9eqr adantlr adantll eqtr4d simpll wn wo wb elnnuz
        wne cuz fzm1 anbi1d biimpa df-ne anbi2i eleq1 eqeq12d imbi12d ad3antrrr
        anbi2d ad3antlr simpr poimirlem12 chvarv syldan cz mpbid difeq12d eqtrd
        cr cin c0 fveq2 imaeq1d xpopth syl2an mpbi2and bitri wss 1eluzge0 fzss1
        ax-mp sseli simpl eqssd anassrs pm2.61dane elfzelz nnzd elfzm1b syl2anr
        pm5.61 wf ovex vtocl fnsnfv elfznn uncom difeq1i difun2 eqtri cc npcan1
        nncn biimpi eqeltrd nnm1nn0 nn0zd uzid peano2uz eqeltrrd syl2anc oveq1d
        fzsplit2 nnz fzsn difeq1d nnre cle ltm1 peano2rem ltnle mpancom elfzle2
        uneq2d nsyl incom eqeq1i disjsn disj3 3bitr3i 3eqtr4a ccnv wfun simprbi
        dff1o3 imadif 3eqtr2d fveq2d fveq1d sneqd 3eqtr4d eqfnfvd ex ralrimivva
        sneqr eqtr3 eqeq1d rmo4 sylibr ) ACUDZUENZJOZUAUDZUENZJOZPZCUAUFZUGZUAE
        UHCEUHUXPCEUIAUYBCUAEEAUXNEQZUXQEQZPZPZUXTUYAUYFUXTPZUXNUJNZUXQUJNZOZUX
        OUXROZUYAUYGUYHUJNZUYIUJNZOZUYHUENZUYIUENZOZUYJUYGUKHNUYLUYMUYGBDEUXNFG
        HIJAJULQZUYEUXTKUMZLAUYCUYDUXTUNZAUXPUKUXOUOVBZUYEUXSAUKJUOVBZUXPVUAAJK
        UPZUXPVUAVUBUXOJUKUOUQURUSUTVAUYGBDEUXQFGHIJUYSLAUYCUYDUXTVCZAUXSUKUXRU
        OVBZUYEUXPAVUBUXSVUEVUCUXSVUEVUBUXRJUKUOUQURUSVDVAVEUYGUBRJSTZUYOUYPUYE
        UYOVUFVFZAUXTUYCVUGUYDUYCVUFVUFUYOVGZVUGUYCUYOVUFVUFFUDZVGZFVHZQZVUHUYC
        UXNUKIVITVUFVJTZVUKVKZUKJSTZVKZQZUYHVUNQZVULVUQUXNHBUKJRVLTZSTZGBUDZDUD
        ZUENUOVBVVAVVARVMTVOVVBUJNZUJNVVCUENZRGUDZSTVNRVPVKVVDVVERVMTJSTVNUKVPV
        KVQVMVRTVSVTOZDVUPWAZEVVFDUXNVUPWBLWCZUXNVUNVUOWDZUYHVUMVUKWIWEVUJVUHFU
        YOUYHUEWFVUFVUFVUIUYOWGWHWJZVUFVUFUYOWKWLZWMWNUYEUYPVUFVFZAUXTUYDVVLUYC
        UYDVUFVUFUYPVGZVVLUYDUYPVUKQZVVMUYDUXQVUPQZUYIVUNQZVVNVVOUXQVVGEVVFDUXQ
        VUPWBLWCZUXQVUNVUOWDZUYIVUMVUKWIWEVUJVVMFUYPUYIUEWFVUFVUFVUIUYPWGWHWJZV
        UFVUFUYPWKWLWOWNUYGUBUDZVUFQZPZVVTUYONZVPZVVTUYPNZVPZOVWCVWEOVWBUYORVVT
        STZVNZUYORVVTRVLTZSTZVNZWPZUYPVWGVNZUYPVWJVNZWPZVWDVWFVWBVWHVWMVWKVWNVW
        BVWHVWMOZVVTJVWBUYEVVTJOZVWPAUYEUXTVWAWQUYEVWQPVWHVUFVWMUYCVWQVWHVUFOUY
        DVWQUYCVWHUYOVUFVNZVUFVWQVWGVUFUYOVVTJRSWRZWSUYCVUHVUFVUFUYOWTZVWRVUFOV
        VJVUFVUFUYOXAVUFVUFUYOXBWEXCXDUYDVWQVWMVUFOUYCVWQUYDVWMUYPVUFVNZVUFVWQV
        WGVUFUYPVWSWSUYDVVMVUFVUFUYPWTVXAVUFOVVSVUFVUFUYPXAVUFVUFUYPXBWEXCXEXFU
        SUYGVWAVVTJXLZVWPUYGVWAVXBPZVVTVUTQZVWPUYGAVXCVXDAUYEUXTXGZAVXCPZVVTRVU
        SSTZQZVWQXHZPZVXDVXFVXHVWQXIZVXBPZVXJAVXCVXLAVWAVXKVXBAJRXMNZQZVWAVXKXJ
        AUYRVXNKJXKWJVVTRJXNWLXOXPVXLVXKVXIPVXJVXBVXIVXKVVTJXQXRVXHVWQUUOUUAWJV
        XHVXDVXIVXGVUTVVTRUKXMNQVXGVUTUUBUUCRUKVUSUUDUUEUUFWMWLUSUYGUCUDZVUTQZP
        ZUYORVXOSTZVNZUYPVXRVNZOZUGZUYGVXDPZVWPUGUCUBUCUBUFZVXQVYCVYAVWPVYDVXPV
        XDUYGVXOVVTVUTXSYCVYDVXSVWHVXTVWMVYDVXRVWGUYOVXOVVTRSWRZWSVYDVXRVWGUYPV
        YEWSXTYAVXQVXSVXTVXQBDEUXNUXQFGHIVXOJAUYRUYEUXTVXPKYBZLAVUTUKISTVUFVJTH
        UUPUYEUXTVXPMYBZUYEUYCAUXTVXPUYCUYDUUGYDZUYFUXPUXSVXPUNZUYEUYDAUXTVXPUY
        CUYDYEYDZUYFUXPUXSVXPVCZUYGVXPYEZYFVXQBDEUXQUXNFGHIVXOJVYFLVYGVYJVYKVYH
        VYIVYLYFUUHZYGYHUUIUUJUYGVWAVWIVUTQZVWKVWNOZUYGAVWAVYNVXEAVWAPVWAVYNAVW
        AYEVWAVVTYIQZJYIQVWAVYNXJAVVTRJUUKAJKUULVVTJUUMUUNYJUSVYBUYGVYNPZVYOUGU
        CVWIVVTRVLUUQVXOVWIOZVXQVYQVYAVYOVYRVXPVYNUYGVXOVWIVUTXSYCVYRVXSVWKVXTV
        WNVYRVXRVWJUYOVXOVWIRSWRZWSVYRVXRVWJUYPVYSWSXTYAVYMUURYHYKUYGUYCVWAVWDV
        WLOZUYTUYCVWAPZVWDUYOVVTVPZVNZUYOVWGVWJWPZVNZVWLUYCVUGVWAVWDWUCOVVKVUFV
        VTUYOUUSUSVWAWUEWUCOUYCVWAWUDWUBUYOVWAVVTULQZWUDWUBOVVTJUUTWUFVWJWUBVQZ
        VWJWPZWUBVWJWPZWUDWUBWUHWUBVWJVQZVWJWPWUIWUGWUJVWJVWJWUBUVAUVBWUBVWJUVC
        UVDWUFVWGWUGVWJWUFVWGVWJVWIRVMTZVVTSTZVQZWUGWUFWUKVXMQVVTVWIXMNZQVWGWUM
        OWUFWUKVVTVXMWUFVVTUVEQWUKVVTOVVTUVGVVTUVFWLZWUFVVTVXMQVVTXKUVHUVIWUFWU
        KVVTWUNWUOWUFVWIYIQVWIWUNQWUKWUNQWUFVWIVVTUVJUVKVWIUVLVWIVWIUVMWEUVNVWI
        RVVTUVQUVOWUFWULWUBVWJWUFWULVVTVVTSTZWUBWUFWUKVVTVVTSWUOUVPWUFVYPWUPWUB
        OVVTUVRVVTUVSWLYLUWHYLUVTWUFVVTVWJQZXHZWUBWUIOZWUFVVTYMQZWURVVTUWAWUTVV
        TVWIUWBVBZWUQWUTVWIVVTUOVBZWVAXHZVVTUWCVWIYMQWUTWVBWVCXJVVTUWDVWIVVTUWE
        UWFYJVVTRVWIUWGUWIWLVWJWUBYNZYOOWUBVWJYNZYOOWURWUSWVDWVEYOVWJWUBUWJUWKV
        WJVVTUWLWUBVWJUWMUWNWJUWOWLWSWOUYCWUEVWLOZVWAUYCVUHUYOUWPUWQZWVFVVJVUHV
        WTWVGVUFVUFUYOUWSUWRVWGVWJUYOUWTWEWMUXAZUSUYGUYDVWAVWFVWOOZVUDWUAVYTUGU
        YDVWAPZWVIUGCUAUYAWUAWVJVYTWVIUYAUYCUYDVWAUXNUXQEXSXOUYAVWDVWFVWLVWOUYA
        VWCVWEUYAVVTUYOUYPUYAUYHUYIUEUXNUXQUJYPUXBZUXCUXDUYAVWHVWMVWKVWNUYAUYOU
        YPVWGWVKYQUYAUYOUYPVWJWVKYQYKXTYAWVHYGUSUXEVWCVWEVVTUYOWFUXIWLUXFUYEUYN
        UYQPUYJXJZAUXTUYCVURVVPWVLUYDUYCVUQVURVVHVVIWLUYDVVOVVPVVQVVRWLUYHUYIVU
        MVUKVUMVUKYRYSWNYTUXTUYKUYFUXOUXRJUXJWOUYEUYJUYKPUYAXJZAUXTUYCVUQVVOWVM
        UYDVVHVVQUXNUXQVUNVUOVUNVUOYRYSWNYTUXGUXHUXPUXSCUAEUYAUXOUXRJUXNUXQUEYP
        UXKUXLUXM $.
      poimirlem22.2 $e |- ( ph -> T e. S ) $.
      ${
        poimirlem15.3 $e |- ( ph -> ( 2nd ` T ) e. ( 1 ... ( N - 1 ) ) ) $.
        $( Lemma for ~ poimir , that the face in ~ poimirlem22 is a face.
           (Contributed by Brendan Leahy, 21-Aug-2020.) $)
        poimirlem15 $p |- ( ph -> <. <. ( 1st ` ( 1st ` T ) ) ,
          ( ( 2nd ` ( 1st ` T ) ) o. ( { <. ( 2nd ` T ) ,
            ( ( 2nd ` T ) + 1 ) >. , <. ( ( 2nd ` T ) + 1 ) ,
          ( 2nd ` T ) >. } u. ( _I |` ( ( 1 ... N ) \ { ( 2nd ` T ) ,
            ( ( 2nd ` T ) + 1 ) } ) ) ) ) >. , ( 2nd ` T ) >. e. S ) $=
          ( c1 wcel cima wceq c0 c1st cfv c2nd caddc co cop cpr cfz cdif cun cv
          cc0 wf1o cxp clt wbr cif csn csb cmpt syl xp1st 3syl fvex f1oeq1 elab
          sylib wne cn nnred ltp1d cvv wa wi ovex syl2anc wb ax-mp cin wss nnzd
          cuz cz peano2uz eqeltrrd sseldd cle peano2nnd elfzle2 lelttrd zltp1le
          fzss2 mpbid fznn prssi undif sylibr opelxpi fzss1 fveq2 ifbid csbeq1d
          mpbir2and fveq2d imaeq1d xpeq1d csbeq2dv eqtrd mpteq2dv eqeq2d elrab2
          uneq12d imaco ad2antrr incom wn cr ltnle syl2anr biimpa nsyl ad2antlr
          wfn disjsn adantr eqtr2i un0 syl5eq fnimadisj adantl resiima imaundir
          uncom 3eqtr4g imaeq2d a1i syl6eq oveq2d csbie syl2an cid cres cab cof
          ccom cfzo cmap cmin crab elrabi eleq2s xp2nd elfznn ltned mp4an prcom
          necomd f1oprg f1oeq3 disjdif f1oun mpanr12 sylancl cc npcan1 peano2zm
          f1oi nncnd uzid zred ltm1d f1oeq23 prex difexg resiexg mp2b unex coex
          f1oco 1eluzge0 syl6ss breq2d oveq12d simprbi f1ofn nn0red simpr lttrd
          elfznn0 df-pr ineq2i indi 3eqtr3g elfzuz3 reldisj crn imassrn elfzelz
          fnima cn0 nn0p1nn elfz syl3anc 1red ltle imp leadd1dd peano2zd imass2
          ltled eqsstr3d eqssd wfo f1ofo forn fnresi eqtri nnuz syl6eleq ssdifd
          mp2an imaundi eqtr3d iftrue vex weq oveq2 oveq1 3eqtr4d lenlt biimpar
          oveq1d lep1d letrd eluzp1p1 ltadd1dd elfzle1 syldan iffalse pm2.61dan
          mpteq2dva eqtr4d op1std op2ndd id imaeq1 oveqan12d sylan9eqr sylanbrc
          opex breq2 ) AEUAUBZUAUBZVULUCUBZEUCUBZVUOPUDUEZUFZVUPVUOUFZUGZUUAPJU
[encoded data, 8480 characters]
          XJLXKVUI $.
      $}

      ${
        poimirlem18.3 $e |- ( ( ph /\ n e. ( 1 ... N ) ) ->
          E. p e. ran F ( p ` n ) =/= K ) $.
        poimirlem18.4 $e |- ( ph -> ( 2nd ` T ) = 0 ) $.
        $( Lemma for ~ poimir establishing the vertices of the simplex of
           ~ poimirlem17 .  (Contributed by Brendan Leahy, 21-Aug-2020.) $)
        poimirlem16 $p |- ( ph -> F = ( y e. ( 0 ... ( N - 1 ) ) |->
          ( ( n e. ( 1 ... N ) |-> ( ( ( 1st ` ( 1st ` T ) ) ` n ) +
            if ( n = ( ( 2nd ` ( 1st ` T ) ) ` 1 ) , 1 , 0 ) ) ) oF +
          ( ( ( ( ( 2nd ` ( 1st ` T ) ) o. ( n e. ( 1 ... N ) |->
            if ( n = N , 1 , ( n + 1 ) ) ) ) " ( 1 ... y ) ) X. { 1 } ) u.
          ( ( ( ( 2nd ` ( 1st ` T ) ) o. ( n e. ( 1 ... N ) |->
            if ( n = N , 1 , ( n + 1 ) ) ) ) "
          ( ( y + 1 ) ... N ) ) X. { 0 } ) ) ) ) ) $=
          ( c1 wcel cc0 cmin co cfz cv c2nd cfv clt wbr caddc cif c1st cima csn
          cxp cun csb cmpt wceq wf1o fveq2 xpeq1d uneq12d eqeq2d simprbi syl wa
          eqtrd cvv wfn adantr cin c0 fnconstg ax-mp c0ex pm3.2i sylib imain cn
          1ex fzdisj imaeq2d syl6eq sylan9req sylancr imaundi syl6eleq peano2uz
          cuz adantl cc eqeltrrd fzsplit2 syl2anc 3syl eqtr3d mpbid eqidd oveq1
          syl5eqr fzss2 fnfvima syl3anc fvun1 wral simpr cz wb 1z elfzelz jctir
          wss fzaddel syl2an oveq2d ralrimiva ax-1cn zcnd mp3an2 eqid cle eleq1
          wn 1re notbid syl5ibrcom imp mpteq2dva uneq1d mpbird imaco cdif uncom
          crn wf eqtr4d syl5eq cr nfcv cof ccom cfzo cmap breq2d csbeq1d fveq2d
          cab ifbid imaeq1d oveq12d csbeq2dv mpteq2dv elrab2 crab elrabi eleq2s
          xp1st elmapfn ccnv wfun xp2nd fvex f1oeq1 elab wfo dff1o3 cn0 elfznn0
          nn0p1nn nnred ltp1d ima0 fnun nnuz nncnd elfzuz3 eluzp1p1 f1ofo foima
          npcan1 fneq2d ovexd inidm offval 1p0e1 f1ofn eluzfz1 mp3an12 fvconst2
          eqcomi cop wreu nnzd peano2zm eleqtrd peano2z fzsubel pncan3oi oveq1i
          jctil elfznn subadd2 bicomd eqcom 3bitr3g reu6i f1ompt f1osng sylancl
          sylanbrc ltm1d zred ltnled elfzle2 nsyl disjsn sylibr readdcli ltnlei
          ltp1i mpbi elfzle1 mto mpbir f1oun mpanr2 syl21anc ssv sseldi eqeltrd
          uzid oveq1d fzsn uneq2d eqtr2d iftrue fmptapd necon2ad ifnefalse mp2b
          a1i wne uneq1i equncomi f1oeq123d nn0red imassrn f1of syl5ss elfz1end
          f1oco frn fvmpt fzss1 eluzfz2 syl6eleqr fvun2 3eqtr4a eqeq12d adantlr
          eldifsn df-ne anbi2i bitri fzpred difeq1d difun2 eqtr4i imadif fnsnfv
          disj3 eqcomd incom disjdif eqtri mpanr1 sylan anassrs 3eqtr4g xpundir
          difeq12d sylan2br un23 fveq1d ad2antrr cres df-ima resmptd sseld mtod
          rneqd wrex elrnmpt jctl rexlimdva eleq1d ibir rspcev ex impbid syl5bb
          eqrdv uneq12i sneqd sylan9ssr con2d iffalsed anim12ci 3eqtr2rd eqtr3i
          vex syl6bbr unass 3eqtr4d snssi 0cn unssi fun feq2d ffvelrnda addid2d
          fconst ifbothda elmapi elfzonn0 nn0cnd addassd eqbrtrd syl6eqel lenlt
          keepel 0re ovex oveq2 csbie fvexd nfmpt1 nfco nfima nfxp nfun offval2
          ffn dffn5f 3eqtr4rd ) AIBUAKSUBUCZUDUCZGBUEZEUFUGZUHUIZWUIWUISUJUCZUK
[encoded data, 11760 characters]
          HUVUMHWWHYTVYTHWVEYTWUAWUBWUEVRWUCWUFYIYQ $.
        $( Lemma for ~ poimir establishing existence for ~ poimirlem18 .
           (Contributed by Brendan Leahy, 21-Aug-2020.) $)
        poimirlem17 $p |- ( ph -> E. z e. S z =/= T ) $=
          ( c1 cfz co cv c1st cfv c2nd wceq cc0 cif cmpt cop wcel wne wrex cmin
          caddc clt wbr cima csn cxp cun cfzo wf1o wb wi wa cr nn0red adantl cz
          csb nnzd syl adantr nnred cle elfzle2 adantlr fveq2 sylancr sylan9eqr
          cvv cn csbeq1d oveq2 imaeq2d xpeq1d oveq1 oveq1d uneq12d oveq2d csbie
          fveq2d ovex mptex syl6eq imaeq1d oveq12d eqtrd mpteq2dva eqeq2d ex wf
          fvex eleq1d cn0 xp1st 3syl f1oeq1 sylib cuz syl6eleq eluzfz1 ffvelrnd
          elab nnuz elfzonn0 elfzo0 syl2anc mpbid crn eleq1 wfn cin c0 ax-mp cc
          1ex fzsplit2 a1i eqid wn syl2an eqeltrd sylibr wral ralrimiva ax-1cn
          1z ccom cof cmap cab crab poimirlem16 wal elfznn0 peano2zm zred ltm1d
          lelttrd opex op2ndg breqtrrd iftrued vex weq op1stg coex op1st syl5eq
          op2nd alrimiv elrabi eleq2s elmapi f1of peano2nn0 w3a simp2d elfzolt2
          xp2nd nn0zd zltp1le anbi2d rexbidv imbi12d vtocl mpdan fveq1 fnconstg
          neeq1d ffn c0ex pm3.2i ccnv dff1o3 simprbi imain nn0p1nn ltp1d fzdisj
          wfun wfo ima0 sylan9req fnun imaundi peano2nnd nncnd elfzuz3 eluzp1p1
          npcan1 eqeltrrd f1ofo foima eqtr3d fneq2d inidm eqidd wss f1ofn fzss2
          syl5eqr fnfvima syl3anc fvun1 mp3an12 fvconst2 mpidan adantllr breq2d
          ofval ifbid csbeq2dv elrab2 rneqd eleq2d csbex syl6bb elfzle1 eqbrtrd
          mpteq2dv elrnmpti 0re syl6eqel lenlt iffalsed rexbidva biimpa r19.29a
          bitrd eqtr3 rexlimdva mpd ltlend mpbir2and syl3anbrc ffvelrnda nn0cnd
          necon3d addid1d ifbothda fmptd elmap wreu simpr jctil elfzelz fzaddel
          jctir eleqtrd peano2z fzsubel oveq1i zcnd elfznn subadd2 mp3an2 eqcom
          pncan3oi bicomd 3bitr4g reu6i f1ompt sylanbrc f1osng sylancl nsyl 1re
          ltnled disjsn ltp1i zrei ltnlei mpbi mto mpbir syl22anc elex peano2uz
          uzid fzsn uneq2d eqtr2d iftrue fmptapd notbid syl5ibrcom necon2ad imp
          f1oun ifnefalse uneq1d uneq1i equncomi f1oeq123d mpbird f1oco opelxpi
          nnnn0d nn0fz0 elrab3t syl6eleqr eqeq1d syl5ibcom nnne0d neeq1 necon2d
          mp2b syld rspcev ) AITLUAUBZIUCZFUDUEZUDUEZUEZVYETVYFUFUEZUEZUGZTUHUI
[encoded data, 7600 characters]
          VXSVWTVYBVXTVUFWUDWUBCWUAEWUCWUAFVXSVYCXT $.
        $( Lemma for ~ poimir stating that, given a face not on a front face of
           the main cube and a simplex in which it's opposite the first vertex
           on the walk, there exists exactly one other simplex containing it.
           (Contributed by Brendan Leahy, 21-Aug-2020.) $)
        poimirlem18 $p |- ( ph -> E! z e. S z =/= T ) $=
          ( wcel vs cv wne wrex wrmo wreu poimirlem17 c2nd cfv wceq wi wral cc0
          wa wn c1 cmin co cfz adantr cn 0nnn elfznn eleq1 mtbiri necon2ai c1st
          mto ad2antrr clt wbr cif cima csn cxp cun cof csb cmpt cfzo cmap wf1o
          caddc cab fveq2 breq2d csbeq1d fveq2d imaeq1d xpeq1d uneq12d csbeq2dv
          weq ifbid oveq12d eqtrd mpteq2dv eqeq2d elrab2 simprbi ad2antlr cz wf
          wss crab elrabi eleq2s xp1st syl elmapi elfzoelz ssriv fss xp2nd fvex
          sylancl f1oeq1 elab sylib simpr poimirlem1 cdif eldifsn biimpri sylan
          simplr poimirlem2 ex necon1bd mpd cuz syl6eleq eleq2d elsn anbi2d cin
          wo c0 eqeq1d sylc adantlr neeq1d exbiri mpdi necon2bd cc nncnd npcan1
          nnuz eqeltrd nnzd peano2zm uzid peano2uz 3syl eqeltrrd syl2anc oveq1d
          fzsplit2 fzsn uneq2d notbid ioran orbi2i bitri xchnxbir syl6bb nnnn0d
          elun cn0 nn0uz fzpred difeq1d difun2 0p1e1 oveq1i uneq2i incom disjsn
          difeq1i mpbir eqtri disj3 3eqtr4i syl6eq eldif 3bitr3g bitr3d expdimp
          mpbi biimpd sylan2 mpand poimirlem13 rmo4 eqeq2 imbi12d rspccv mpan2d
          r19.21bi syld necon1ad ralrimiva poimirlem14 rmoim reu5 sylanbrc ) AC
          UBZFUCZCEUDUXICEUEZUXICEUFABCDEFGHIJKLMNOPQRSUGAUXIUXHUHUIZLUJZUKZCEU
          LUXLCEUEUXJAUXMCEAUXHETZUNZUXLUXHFUXOUXLUOZUXKUMUJZUXHFUJZUXOUXKUPLUP
          UQURZUSURZTZUOZUXPUXQUXOFUHUIZUMUJZUYBAUYDUXNSUTZUXOUYAUYCUMUXOUYAUXK
          UMUCZUYCUMUCZUYAUXKUMUXQUYAUMUXTTZUYHUMVATZVBUMUXSVCVHUXKUMUXTVDVEVFU
          XOUYAUYGUYFUXOUYAUNZUYCUXKUMUYJIUBZUXKUPUQURJUIUIUYKUXKJUIUIUCIUPLUSU
          RZUEZUOZUYCUXKUJZUYJBUXHVGUIZVGUIZUYPUHUIZHIJUXKLALVATZUXNUYANVIUXNJB
          UMUXSUSURZHBUBZUXKVJVKZVUAVUAUPWCURZVLZUYQUYRUPHUBZUSURZVMZUPVNZVOZUY
          RVUEUPWCURLUSURZVMZUMVNZVOZVPZWCVQZURZVRZVSZUJZAUYAUXNUXHUMKVTURZUYLW
          AURZUYLUYLGUBZWBZGWDZVOZUMLUSURZVOZTZVUSJBUYTHVUADUBZUHUIZVJVKZVUAVUC
          VLZVVIVGUIZVGUIZVVMUHUIZVUFVMZVUHVOZVVOVUJVMZVULVOZVPZVUOURZVRZVSZUJZ
          VUSDUXHVVGEDCWMZVWCVURJVWEBUYTVWBVUQVWEVWBHVUDVWAVRVUQVWEHVVLVUDVWAVW
          EVVKVUBVUAVUCVWEVVJUXKVUAVJVVIUXHUHWEWFWNWGVWEHVUDVWAVUPVWEVVNUYQVVTV
          UNVUOVWEVVMUYPVGVVIUXHVGWEZWHVWEVVQVUIVVSVUMVWEVVPVUGVUHVWEVVOUYRVUFV
          WEVVMUYPUHVWFWHZWIWJVWEVVRVUKVULVWEVVOUYRVUJVWGWIWJWKWOWLWPWQWROWSWTX
          AUXNUYLXBUYQXCZAUYAUXNUYLVUTUYQXCZVUTXBXDZVWHUXNUYQVVATZVWIUXNUYPVVET
          ZVWKUXNVVHVWLVVHUXHVWDDVVGXEZEVWDDUXHVVGXFOXGZUXHVVEVVFXHXIZUYPVVAVVD
          XHXIUYQVUTUYLXJXIIVUTXBUYKUMKXKXLZUYLVUTXBUYQXMXPXAUXNUYLUYLUYRWBZAUY
          AUXNUYRVVDTZVWQUXNVWLVWRVWOUYPVVAVVDXNXIVVCVWQGUYRUYPUHXOUYLUYLVVBUYR
          XQXRXSXAUXOUYAXTYAAUYAUYNUYOUKUXNAUYAUNZUYMUYCUXKVWSUYCUXKUCZUYMVWSVW
          TUNBFVGUIZVGUIZVXAUHUIZHIJUYCLUXKAUYSUYAVWTNVIAJBUYTHVUAUYCVJVKZVUAVU
          CVLZVXBVXCVUFVMZVUHVOZVXCVUJVMZVULVOZVPZVUOURZVRZVSZUJZUYAVWTAFETZVXN
          QVXOFVVGTZVXNVWDVXNDFVVGEVVIFUJZVWCVXMJVXQBUYTVWBVXLVXQVWBHVXEVWAVRVX
          LVXQHVVLVXEVWAVXQVVKVXDVUAVUCVXQVVJUYCVUAVJVVIFUHWEWFWNWGVXQHVXEVWAVX
          KVXQVVNVXBVVTVXJVUOVXQVVMVXAVGVVIFVGWEZWHVXQVVQVXGVVSVXIVXQVVPVXFVUHV
          XQVVOVXCVUFVXQVVMVXAUHVXRWHZWIWJVXQVVRVXHVULVXQVVOVXCVUJVXSWIWJWKWOWL
          WPWQWROWSWTXIVIAUYLXBVXBXCZUYAVWTAUYLVUTVXBXCZVWJVXTAVXBVVATZVYAAVXAV
          VETZVYBAVXPVYCAVXOVXPQVXPFVWMEVWDDFVVGXFOXGXIZFVVEVVFXHXIZVXAVVAVVDXH
          XIVXBVUTUYLXJXIVWPUYLVUTXBVXBXMXPVIAUYLUYLVXCWBZUYAVWTAVXCVVDTZVYFAVY
          CVYGVYEVXAVVAVVDXNXIVVCVYFGVXCVXAUHXOUYLUYLVVBVXCXQXRXSVIAUYAVWTYFVWS
          UYCVVFTZVWTUYCVVFUXKVNYBTZAVYHUYAAVXPVYHVYDFVVEVVFXNXIUTVYIVYHVWTUNUY
          CVVFUXKYCYDYEYGYHYIUUAYJUUBUUCUUDUUEYJUXNAUXKVVFTZUYBUXPUNZUXQUKUXNVV
          HVYJVWNUXHVVEVVFXNXIAVYJVYKUXQAVYJVYKUNZUXQAVYJUXKUYLTZUOZUNZVYLUXQAV
          YNVYKVYJAVYNUXKUXTLVNZVPZTZUOVYKAVYMVYRAUYLVYQUXKAUYLUXTUXSUPWCURZLUS
          URZVPZVYQAVYSUPYKUIZTLUXSYKUIZTUYLWUAUJAVYSLWUBALUUFTVYSLUJALNUUGLUUH
          XIZALVAWUBNUUIYLUUJAVYSLWUCWUDAUXSXBTZUXSWUCTVYSWUCTALXBTZWUEALNUUKZL
          UULXIUXSUUMUXSUXSUUNUUOUUPUXSUPLUUSUUQAVYTVYPUXTAVYTLLUSURZVYPAVYSLLU
          SWUDUURAWUFWUHVYPUJWUGLUUTXIWPUVAWPYMUVBUYAUXLYQZVYKVYRUYAUXLUVCVYRUY
          AUXKVYPTZYQWUIUXKUXTVYPUVIWUJUXLUYAUXKLUXHUHXOZYNUVDUVEUVFUVGYOAUXKVV
          FUYLYBZTUXKVULTVYOUXQAWULVULUXKAWULVULUMUPWCURZLUSURZVPZUYLYBZVULAVVF
          WUOUYLALUMYKUIZTVVFWUOUJALUVJWUQALNUVHUVKYLUMLUVLXIUVMVULUYLVPZUYLYBV
          ULUYLYBZWUPVULVULUYLUVNWUOWURUYLWUNUYLVULWUMUPLUSUVOUVPUVQUVTVULUYLYP
          ZYRUJVULWUSUJWUTUYLVULYPZYRVULUYLUVRWVAYRUJUMUYLTZUOWVBUYIVBUMLVCVHUY
          LUMUVSUWAUWBVULUYLUWCUWJUWDUWEYMUXKVVFUYLUWFUXKUMWUKYNUWGUWHUWKUWIUWL
          UWMUXOUXQUYDUXRUYEUXOUXQUAUBZUHUIZUMUJZUNZCUAWMZUKZUAEULZVXOUXQUYDUNZ
          UXRUKZAWVICEAUXQCEUEWVICEULABCDEGHJKLNOPUWNUXQWVECUAEWVGUXKWVDUMUXHWV
          CUHWEYSUWOXSUWTAVXOUXNQUTWVHWVKUAFEWVCFUJZWVFWVJWVGUXRWVLWVEUYDUXQWVL
          WVDUYCUMWVCFUHWEYSYOWVCFUXHUWPUWQUWRYTUWSUXAUXBUXCABCDEGHJKLNOPUXDUXI
          UXLCEUXEYTUXICEUXFUXG $.
      $}
      poimirlem22.3 $e |- ( ( ph /\ n e. ( 1 ... N ) ) ->
        E. p e. ran F ( p ` n ) =/= 0 ) $.
      ${
        poimirlem21.4 $e |- ( ph -> ( 2nd ` T ) = N ) $.
        $( Lemma for ~ poimir establishing the vertices of the simplex in
           ~ poimirlem20 .  (Contributed by Brendan Leahy, 21-Aug-2020.) $)
        poimirlem19 $p |- ( ph -> F = ( y e. ( 0 ... ( N - 1 ) ) |->
          ( ( n e. ( 1 ... N ) |-> ( ( ( 1st ` ( 1st ` T ) ) ` n ) -
            if ( n = ( ( 2nd ` ( 1st ` T ) ) ` N ) , 1 , 0 ) ) ) oF +
          ( ( ( ( ( 2nd ` ( 1st ` T ) ) o. ( n e. ( 1 ... N ) |->
            if ( n = 1 , N , ( n - 1 ) ) ) ) " ( 1 ... ( y + 1 ) ) ) X.
          { 1 } ) u. ( ( ( ( 2nd ` ( 1st ` T ) ) o. ( n e. ( 1 ... N ) |->
            if ( n = 1 , N , ( n - 1 ) ) ) ) "
          ( ( ( y + 1 ) + 1 ) ... N ) ) X. { 0 } ) ) ) ) ) $=
          ( c1 wcel cc0 cmin co cfz cv c2nd cfv clt wbr caddc cif c1st cima csn
          cxp cun csb cmpt wceq wf1o fveq2 xpeq1d uneq12d eqtrd simprbi syl cvv
          wa wfn adantr cin 1ex fnconstg ax-mp c0ex pm3.2i sylib fzdisj imaeq2d
          c0 imain syl6eq sylan9req sylancr imaundi cuz cn nnuz syl6eleq adantl
          cc peano2uz eqeltrrd fzsplit2 syl2anc 3syl eqtr3d syl5eqr mpbid eqidd
          wf ax-1cn a1i wss wral simpr cz wb jctil elfzelz jctir fzsubel syl2an
          1z ralrimiva oveq2d zcnd mp3an2 eqid wn cle eleq1 oveq1d uneq2d oveq2
          elfzle1 crn fnfvima syl3anc imaco fvun1 fzss1 3eqtr4a syl5ibrcom cdif
          eqcomd eqtr4d pncan1 peano2zd nfcv cof ccom cfzo breq2d ifbid csbeq1d
          cmap cab fveq2d imaeq1d csbeq2dv mpteq2dv eqeq2d elrab2 elrabi eleq2s
          oveq12d crab xp1st elmapfn ccnv wfun xp2nd fvex f1oeq1 dff1o3 elfznn0
          elab wfo nn0red ltp1d ima0 fnun cn0 nn0p1nn nncnd elfzuz3 f1ofo foima
          npcan1 fneq2d ovexd inidm offval elmapi ffvelrnda elfzonn0 nn0cnd 0cn
          adantlr keepel snssi unssi fconst wreu nnzd peano2z pncan3oi peano2zm
          cop oveq1i fzaddel eleqtrd subadd2 eqcom 3bitr4g syl2anr reu6i f1ompt
          sylanbrc f1osng nnred ltm1d zred ltnled elfzle2 nsyl disjsn 1re ltp1i
          sylibr zrei ltnlei mpbi mto mpbir mpanr1 syl21anc wne mtbiri necon2ai
          f1oun ifnefalse uneq1i ssv sseldi fzpred uncom syl6req iftrue fmptapd
          mpteq2ia eqeltrd uzid fzsn eqtr2d f1oeq123d f1oco fun peano2nnd feq2d
          eluzp1p1 subadd23d eqeq1d 1m1e0 f1ofn imassrn f1of frn syl5ss eluzfz1
          fvmptd fzss2 syl6eleqr mp3an12 fvconst2 eluzfz2 fvun2 eqeq12d subid1d
          imp eldifsn df-ne anbi2i bitri difeq1d difun2 difsn elfz1end difeq12d
          imadif fnsnfv incom disjdif eqtri sylan sylan2br anassrs uneq12i wrex
          zcn eleq1d ibir mpbird rspcev ex rexlimdva impbid vex elrnmpt syl6bbr
          oveq1 eqrdv cres df-ima mp2b resmptd rneqd syl5eq xpundir 1red nnge1d
          sneqd lelttrd notbid necon2ad mpteq2dva anim12ci syl5bb 3eqtrd fveq1d
          ad2antrr unass syl6eqr 3eqtr4d ifbothda cr breqtrrd iftrued weq csbie
          un23 fvexd ffn nfmpt1 nfco nfima nfxp nfun dffn5f offval2 3eqtr4rd )
[encoded data, 11680 characters]
          YSVYTVQWUAWUBVXQYQ $.
        $( Lemma for ~ poimir establishing existence for ~ poimirlem21 .
           (Contributed by Brendan Leahy, 21-Aug-2020.) $)
        poimirlem20 $p |- ( ph -> E. z e. S z =/= T ) $=
          ( wcel c1 cfz co cv c1st cfv c2nd wceq cc0 cif cmin cmpt cop wne wrex
          cfzo wf1o cxp clt wbr caddc cima csn cun csb wf wa oveq2 eleq1d fveq2
          oveq1d adantl cn0 cn syl xp1st fvex f1oeq1 elab ffvelrnd elfzonn0 crn
          sylib wi eleq1 neeq1d cvv wfn adantr cin c0 1ex fnconstg c0ex simprbi
          ax-mp nn0red imaeq2d syl6eq sylancr cuz syl6eleq cc peano2uz eqeltrrd
          nnuz fzsplit2 syl2anc 3syl syl5eqr mpbid ovex a1i wss cz fveq2d eqtrd
          nn0cnd breq2d ifbid csbeq1d imaeq1d xpeq1d uneq12d oveq12d cle oveq2d
          uzid cr eqid sylanbrc eqeltrd wn sylibr wb 1z ax-1cn ralrimiva op2ndd
          wral ccom cmap cab cof crab elrabi eleq2s elmapi f1of elfz1end anbi2d
          xp2nd rexbidv imbi12d vtocl mpdan fveq1 pm3.2i ccnv wfun dff1o3 imain
          ffn wfo elfznn0 ltp1d fzdisj ima0 sylan9req fnun imaundi nncnd npcan1
          nn0p1nn elfzuz3 f1ofo foima eqtr3d fneq2d inidm eqidd f1ofn uzss nnzd
          fzss1 eluzp1p1 eleqtrrd sseldd eluzfz2 fnfvima syl3anc fvun2 fvconst2
          mp3an12 ofval mpidan addid1d adantllr csbeq2dv mpteq2dv eqeq2d elrab2
          sylan9eqr peano2zm nnred elfzle2 ltm1d lelttrd breqtrrd iftrued oveq1
          zred vex csbie mpteq2dva eleq2d elrnmpti syl6bb biimpa r19.29a biimpd
          weq rneqd rexlimdva mpd elnnne0 nnm1nn0 w3a elfzo0 elfzolt2 syl3anbrc
          simp2d lttrd adantlr ffvelrnda subid1d fmptd elmap wreu simpr peano2z
          ifbothda jctil elfzelz fzsubel syl2an pncan3oi oveq1i fzaddel eleqtrd
          jctir subadd2 mp3an2 eqcom 3bitr4g syl2anr reu6i f1ompt f1osng ltnled
          zcnd nsyl disjsn 1re ltp1i zrei ltnlei elfzle1 mto mpbir f1oun mpanr1
          mpbi syl21anc mtbiri necon2ai ifnefalse mpteq2ia uneq1i sseldi fzpred
          uncom syl6req iftrue fmptapd fzsn uneq2d eqtr2d f1oeq123d f1oco mptex
          ssv coex opelxpi nnnn0d 0elfz poimirlem19 lenlt iffalsed syl6eqr opex
          0re op1std eqcoms nnne0d necomd neeq1 syl5ibrcom syl5 necon2d rspcev
          ) AIUALUBUCZIUDZFUEUFZUEUFZUFZVXMLVXNUGUFZUFZUHZUAUIUJZUKUCZULZVXQIVX
[encoded data, 7200 characters]
          OUILUNALUIALNVXEVXFXWLUILVXGVXHVXIVXJUYEVYMVYKCVYIEVYLVYIFVXGVXKXH $.
        $( Lemma for ~ poimir stating that, given a face not on a back face of
           the cube and a simplex in which it's opposite the final point of the
           walk, there exists exactly one other simplex containing it.
           (Contributed by Brendan Leahy, 21-Aug-2020.) $)
        poimirlem21 $p |- ( ph -> E! z e. S z =/= T ) $=
          ( wcel vs cv wne wrex wrmo wreu poimirlem20 c2nd cfv cc0 wceq wi wral
          wa wn c1 cmin co cfz adantr cle wbr clt nnred ltm1d cn nnm1nn0 nn0red
          cn0 syl ltnled mpbid elfzle2 nsyl notbid syl5ibrcom necon2ad ad2antrr
          eleq1 c1st caddc cif cima csn cxp cun cof csb cmpt cfzo cmap wf1o cab
          weq fveq2 breq2d ifbid csbeq1d fveq2d imaeq1d xpeq1d uneq12d csbeq2dv
          oveq12d eqtrd mpteq2dv eqeq2d elrab2 simprbi ad2antlr wss crab elrabi
          cz wf eleq2s xp1st elmapi elfzoelz fss sylancl xp2nd fvex f1oeq1 elab
          sylib cdif mpd cuz nn0uz syl6eleq eleq2d wo elsn anbi2d cin c0 mpan2d
          eqeq1d sylc ssriv simpr poimirlem1 simplr eldifsn sylan poimirlem2 ex
          biimpri necon1bd neeq1d exbiri mpdd fzpred 0p1e1 oveq1i uneq2i syl6eq
          adantlr necon2bd ioran elun orbi1i bitri xchnxbir syl6bb uncom difun2
          difeq1i eqtri cc nncnd npcan1 nnnn0d eqeltrd nn0zd uzid peano2uz 3syl
          eqeltrrd fzsplit2 syl2anc oveq1d nnzd fzsn uneq2d incom eqeq1i disjsn
          difeq1d disj3 3bitr3i 3eqtr4a eldif 3bitr3g bitr3d biimpd poimirlem14
          expdimp sylan2 rmo4 r19.21bi imbi12d rspccv syld necon1ad poimirlem13
          eqeq2 ralrimiva rmoim reu5 sylanbrc ) ACUBZFUCZCEUDUXNCEUEZUXNCEUFABC
          DEFGHIJKLMNOPQRSUGAUXNUXMUHUIZUJUKZULZCEUMUXQCEUEUXOAUXRCEAUXMETZUNZU
          XQUXMFUXTUXQUOZUXPLUKZUXMFUKZUXTUYAUXPUPLUPUQURZUSURZTZUOZUYBUXTFUHUI
          ZLUKZUYGAUYIUXSSUTZUXTUYFUYHLUXTUYFUXPLUCZUYHLUCZAUYFUYKULUXSAUYFUXPL
          AUYGUYBLUYETZUOALUYDVAVBZUYMAUYDLVCVBUYNUOALALNVDZVEAUYDLAUYDALVFTZUY
          DVITNLVGVJZVHUYOVKVLZLUPUYDVMVNUYBUYFUYMUXPLUYEVSVOVPVQUTUXTUYFUYLUYK
          UXTUYFUNZUYHUXPLUYSIUBZUXPUPUQURJUIUIUYTUXPJUIUIUCIUPLUSURZUEZUOZUYHU
          XPUKZUYSBUXMVTUIZVTUIZVUEUHUIZHIJUXPLAUYPUXSUYFNVRUXSJBUJUYDUSURZHBUB
          ZUXPVCVBZVUIVUIUPWAURZWBZVUFVUGUPHUBZUSURZWCZUPWDZWEZVUGVUMUPWAURLUSU
          RZWCZUJWDZWEZWFZWAWGZURZWHZWIZUKZAUYFUXSUXMUJKWJURZVUAWKURZVUAVUAGUBZ
          WLZGWMZWEZUJLUSURZWEZTZVVGJBVUHHVUIDUBZUHUIZVCVBZVUIVUKWBZVVQVTUIZVTU
          IZVWAUHUIZVUNWCZVUPWEZVWCVURWCZVUTWEZWFZVVCURZWHZWIZUKZVVGDUXMVVOEDCW
          NZVWKVVFJVWMBVUHVWJVVEVWMVWJHVULVWIWHVVEVWMHVVTVULVWIVWMVVSVUJVUIVUKV
          WMVVRUXPVUIVCVVQUXMUHWOWPWQWRVWMHVULVWIVVDVWMVWBVUFVWHVVBVVCVWMVWAVUE
          VTVVQUXMVTWOZWSVWMVWEVUQVWGVVAVWMVWDVUOVUPVWMVWCVUGVUNVWMVWAVUEUHVWNW
          SZWTXAVWMVWFVUSVUTVWMVWCVUGVURVWOWTXAXBXDXCXEXFXGOXHXIXJUXSVUAXNVUFXO
          ZAUYFUXSVUAVVHVUFXOZVVHXNXKZVWPUXSVUFVVITZVWQUXSVUEVVMTZVWSUXSVVPVWTV
          VPUXMVWLDVVOXLZEVWLDUXMVVOXMOXPZUXMVVMVVNXQVJZVUEVVIVVLXQVJVUFVVHVUAX
          RVJIVVHXNUYTUJKXSUUAZVUAVVHXNVUFXTYAXJUXSVUAVUAVUGWLZAUYFUXSVUGVVLTZV
          XEUXSVWTVXFVXCVUEVVIVVLYBVJVVKVXEGVUGVUEUHYCVUAVUAVVJVUGYDYEYFXJUXTUY
          FUUBUUCAUYFVUCVUDULUXSAUYFUNZVUBUYHUXPVXGUYHUXPUCZVUBVXGVXHUNBFVTUIZV
          TUIZVXIUHUIZHIJUYHLUXPAUYPUYFVXHNVRAJBVUHHVUIUYHVCVBZVUIVUKWBZVXJVXKV
          UNWCZVUPWEZVXKVURWCZVUTWEZWFZVVCURZWHZWIZUKZUYFVXHAFETZVYBQVYCFVVOTZV
          YBVWLVYBDFVVOEVVQFUKZVWKVYAJVYEBVUHVWJVXTVYEVWJHVXMVWIWHVXTVYEHVVTVXM
          VWIVYEVVSVXLVUIVUKVYEVVRUYHVUIVCVVQFUHWOWPWQWRVYEHVXMVWIVXSVYEVWBVXJV
          WHVXRVVCVYEVWAVXIVTVVQFVTWOZWSVYEVWEVXOVWGVXQVYEVWDVXNVUPVYEVWCVXKVUN
          VYEVWAVXIUHVYFWSZWTXAVYEVWFVXPVUTVYEVWCVXKVURVYGWTXAXBXDXCXEXFXGOXHXI
          VJVRAVUAXNVXJXOZUYFVXHAVUAVVHVXJXOZVWRVYHAVXJVVITZVYIAVXIVVMTZVYJAVYD
          VYKAVYCVYDQVYDFVXAEVWLDFVVOXMOXPVJZFVVMVVNXQVJZVXIVVIVVLXQVJVXJVVHVUA
          XRVJVXDVUAVVHXNVXJXTYAVRAVUAVUAVXKWLZUYFVXHAVXKVVLTZVYNAVYKVYOVYMVXIV
          VIVVLYBVJVVKVYNGVXKVXIUHYCVUAVUAVVJVXKYDYEYFVRAUYFVXHUUDVXGUYHVVNTZVX
          HUYHVVNUXPWDYGTZAVYPUYFAVYDVYPVYLFVVMVVNYBVJUTVYQVYPVXHUNUYHVVNUXPUUE
          UUIUUFUUGUUHUUJUUSYHUUKUULUUMUUTYHUXSAUXPVVNTZUYAUYGUNZUYBULUXSVVPVYR
          VXBUXMVVMVVNYBVJAVYRVYSUYBAVYRVYSUNZUYBAVYRUXPVUHTZUOZUNZVYTUYBAWUBVY
          SVYRAWUBUXPVUTUYEWFZTZUOVYSAWUAWUEAVUHWUDUXPAVUHVUTUJUPWAURZUYDUSURZW
          FZWUDAUYDUJYIUIZTVUHWUHUKAUYDVIWUIUYQYJYKUJUYDUUNVJWUGUYEVUTWUFUPUYDU
          SUUOUUPUUQUURYLVOUXQUYFYMZVYSWUEUXQUYFUVAWUEUXPVUTTZUYFYMWUJUXPVUTUYE
          UVBWUKUXQUYFUXPUJUXMUHYCZYNUVCUVDUVEUVFYOAUXPVVNVUHYGZTUXPLWDZTWUCUYB
          AWUMWUNUXPAVUHWUNWFZVUHYGZWUNVUHYGZWUMWUNWUPWUNVUHWFZVUHYGWUQWUOWURVU
          HVUHWUNUVGUVIWUNVUHUVHUVJAVVNWUOVUHAVVNVUHUYDUPWAURZLUSURZWFZWUOAWUSW
          UITLUYDYIUIZTVVNWVAUKAWUSLWUIALUVKTWUSLUKALNUVLLUVMVJZALVIWUIALNUVNYJ
          YKUVOAWUSLWVBWVCAUYDXNTUYDWVBTWUSWVBTAUYDUYQUVPUYDUVQUYDUYDUVRUVSUVTU
          YDUJLUWAUWBAWUTWUNVUHAWUTLLUSURZWUNAWUSLLUSWVCUWCALXNTWVDWUNUKALNUWDL
          UWEVJXEUWFXEUWJALVUHTZUOZWUNWUQUKZAUYNWVEUYRLUJUYDVMVNVUHWUNYPZYQUKWU
          NVUHYPZYQUKWVFWVGWVHWVIYQVUHWUNUWGUWHVUHLUWIWUNVUHUWKUWLYFUWMYLUXPVVN
          VUHUWNUXPLWULYNUWOUWPUWQUWSUWTYRUXTUYBUYIUYCUYJUXTUYBUAUBZUHUIZLUKZUN
          ZCUAWNZULZUAEUMZVYCUYBUYIUNZUYCULZAWVPCEAUYBCEUEWVPCEUMABCDEGHJKLNOPU
          WRUYBWVLCUAEWVNUXPWVKLUXMWVJUHWOYSUXAYFUXBAVYCUXSQUTWVOWVRUAFEWVJFUKZ
          WVMWVQWVNUYCWVSWVLUYIUYBWVSWVKUYHLWVJFUHWOYSYOWVJFUXMUXHUXCUXDYTYRUXE
          UXFUXIABCDEGHJKLNOPUXGUXNUXQCEUXJYTUXNCEUXKUXL $.
      $}
      poimirlem22.4 $e |- ( ( ph /\ n e. ( 1 ... N ) ) ->
        E. p e. ran F ( p ` n ) =/= K ) $.
      $( Lemma for ~ poimir , that a given face belongs to exactly two
         simplices, provided it's not on the boundary of the cube.
         (Contributed by Brendan Leahy, 21-Aug-2020.) $)
      poimirlem22 $p |- ( ph -> E! z e. S z =/= T ) $=
        ( wcel c2nd cfv c1 cmin co cfz cv wne wa c1st caddc cop cpr cdif cun wb
        wceq cn adantr cc0 cmap wf simpr clt wbr cif cima csn cxp csb cmpt wf1o
        fveq2 breq2d ifbid csbeq1d fveq2d imaeq1d xpeq1d uneq12d csbeq2dv eqtrd
        wn oveq12d mpteq2dv eqeq2d elrab2 simprbi cz elrabi eleq2s xp1st elmapi
        syl wss sylancl xp2nd fvex f1oeq1 elab sylib ad3antrrr ad2antlr simpllr
        fss adantl sylan ex mpd cvv id elfznn c0ex c0 syl6eq 0p1e1 oveq1d eqtri
        imaeq2d uneq1i uncom un0 3eqtri oveq2d wfn ffn cn0 syl5eq simplr xpopth
        wi syl2anr sylbid necon3d nnred ltned ax-mp cin cuz syl5 wreu cres ccom
        cid wral poimirlem15 wrmo cof cfzo cab crab elfzoelz poimirlem1 eldifsn
        ssriv biimpri poimirlem2 necon1bd eleq1 biimparc anassrs breq1 ifbieq1d
        weq anim2i nngt0d iftrued sylan9eqr oveq2 fz10 oveq1 ima0 0xp csbie wfo
        xpeq1i f1ofo foima ovexd fnconstg mp1i eqidd fvconst2 ffvelrnda addid1d
        elfzonn0 nn0cnd offveq nnm1nn0 0elfz ad2antrr fvexd fvmptd an32s eleq1d
        mpdan anbi2d imbi12d expcom mpcom eqtr3d biimpd mpan2d mpand poimirlem9
        vtoclga imp jca31 ltp1d fveq1 ltp1 ovex fpr f1oi f1of disjdif fun mpan2
        cr prid1 elun1 fvco3 fnresi pm3.2i fvun1 mp3an23 fvpr1 wf1 f1of1 npcan1
        cc nncnd nn0zd peano2uz eqeltrrd fzss2 sselda fzp1elp1 eleqtrd f1veqaeq
        uzid syl12anc neeq1d syl5ibrcom necon2d impbid eqop anbi1d bitrd bitr4d
        ralrimiva reu6i wo biantrurd nnnn0d nn0uz syl6eleq fzpred oveq1i uneq2i
        syl2anc difeq1d difundir cle 0lt1 0re 1re ltnlei mpbi elfzle1 mto incom
        eqeq1i disjsn disj3 3bitr3i eqtr4i difid nnuz fzsplit2 nnzd fzsn uneq2d
        eqeltrd ltm1d nn0red ltnled mpbid elfzle2 nsyl 3eqtr4a eleq2d elun elsn
        eldif orbi12i bitri 3bitr3g biimpa wrex adantlr poimirlem18 poimirlem21
        crn jaodan syldan pm2.61dan ) AFUAUBZUCLUCUDUEZUFUEZTZCUGZFUHZCEUUAZAVX
[encoded data, 6960 characters]
        BUTUHMYVCVWTXYBRVXAAXYBVCVXCVXEVXFVXG $.
    $}
    $d q u w x ph $.  $d m q u w x y z B $.  $d i k m n p q t u w x y z C $.
    $d m q u w x y K $.  $d q u w x N $.  $d x T $.  $d s x z U $.
    $d i k p s x V $.
    ${
      ${
        poimirlem23.1 $e |- ( ph -> T : ( 1 ... N ) --> ( 0 ..^ K ) ) $.
        poimirlem23.2 $e |- ( ph ->
          U : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) ) $.
        poimirlem23.3 $e |- ( ph -> V e. ( 0 ... N ) ) $.
        $( Lemma for ~ poimir , two ways of expressing the property that a face
           is not on the back face of the cube.  (Contributed by Brendan Leahy,
           21-Aug-2020.) $)
        poimirlem23 $p |- ( ph ->
          ( E. p e. ran ( y e. ( 0 ... ( N - 1 ) ) |-> [_ if ( y < V , y ,
            ( y + 1 ) ) / j ]_ ( T oF + ( ( ( U " ( 1 ... j ) ) X.
          { 1 } ) u. ( ( U " ( ( j + 1 ) ... N ) ) X. { 0 } ) ) ) )
            ( p ` N ) =/= 0 <-> -. ( V = N /\
          ( ( T ` N ) = 0 /\ ( U ` N ) = N ) ) ) ) $=
          ( cc0 c1 wceq wa wcel syl c0 cv cfv wne cmin co cfz clt wbr caddc cif
          cima csn cxp cun cof csb cmpt crn wrex wral wn cvv csbex neeq1d df-ne
          ovex ax-mp rexnal bitri cle elfzelz syl2anc elfzle2 zred necon3ad cn0
          wb cz cn sylib adantr sylan9eqr csbeq1d imaeq2d xpeq1d oveq1d uneq12d
          oveq2 oveq1 ltp1d mpbid syl6eq oveq2d eqtrd fveq1d elfzonn0 elsni imp
          3syl adantl 1ex fconst ovexd ffvelrnd syl5bbr rspcev necon4ad cuz wss
          wf ex eqeltrrd wfn ffn cin c0ex imain sylan9req elfznn0 nnuz syl6eleq
          fzdisj elfzuz3 eqidd eqeq1d cr snssi wo elun syl5breqr bitrd ralbidva
          nn0red syl6bbr adantlr fnconstg mp3an12 fvconst2 cdif difeq1d zlem1lt
          rgenw eqid fveq1 syl6bb rexrnmpt nnzd letri3d biimprd sylbird nnm1nn0
          nnred mpand nn0fz0 iffalse nncnd npcan1 wf1o wfo f1ofo foima peano2zd
          cc fzn ima0 xpeq1i 0xp eqtri un0 csbied nn0p1nn eleq1d syl5ibrcom a1i
          cfzo inidm off elfz1end eqeltrd nnne0d breq1 ifbieq12d pm4.71rd nn0zd
          id syld uzid peano2uz fzss2 sselda pm3.2i ccnv dff1o3 simprbi sylancr
          wfun fun fzsplit2 imaundi syl6req feq2d ofval mpdan nn0ge0d 1re unssi
          sseldi 0le1 0le0 jaoi sylbi add20 syl22anc syldan breq2 ifbid lelttrd
          0re ltm1d iftrued an32s nfv nfcsb1v nfcv nffv weq csbeq1a cbvral ne0i
          nfeq1 r19.3rzv f1ofn fzss1 eluzp1p1 eluzfz2 fnfvima syl3anc ralrimiva
          simplr ax-1ne0 breqtrrd eqtr3d elimasni fnbrfvb syl5ibr eldifd imadif
          fvun2 difun2 fzm1 velsn orbi2i syl6rbbr eqrdv ltnled 3eqtr3a 3eqtr3rd
          nsyl difsn eleqtrd fvun1 mpbiri syl6ib impbid anbi12d r19.26 pm5.32da
          3bitr4d notbid syl5bb ) GIUAZUBZNUCZIBNGOUDUEZUFUEZEBUAZHUGUHZVVPVVPO
[encoded data, 5680 characters]
          OVHVVCXGVVDVVEVXBWVQEVVOVVFYNWAVVHVVGYKVVIVVJ $.
      $}
      poimirlem28.1 $e |- ( p = ( ( 1st ` s ) oF + ( ( ( ( 2nd ` s ) " ( 1 ...
        j ) ) X. { 1 } ) u. ( ( ( 2nd ` s ) " ( ( j + 1 ) ... N ) ) X.
          { 0 } ) ) ) -> B = C ) $.
      poimirlem28.2 $e |- ( ( ph /\ p : ( 1 ... N ) --> ( 0 ... K ) ) ->
        B e. ( 0 ... N ) ) $.
      ${
        poimirlem25.3 $e |- ( ph -> T : ( 1 ... N ) --> ( 0 ..^ K ) ) $.
        poimirlem25.4 $e |- ( ph ->
          U : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) ) $.
        ${
          poimirlem24.5 $e |- ( ph -> V e. ( 0 ... N ) ) $.
          ${
            $( Lemma for ~ poimir , two ways of expressing that a simplex has
               an admissible face on the back face of the cube.  (Contributed
               by Brendan Leahy, 21-Aug-2020.) $)
            poimirlem24 $p |- ( ph ->
            ( E. x e. ( ( ( 0 ... K ) ^m ( 1 ... N ) ) ^m
              ( 0 ... ( N - 1 ) ) ) ( x = ( y e. ( 0 ... ( N - 1 ) ) |->
            [_ if ( y < V , y , ( y + 1 ) ) / j ]_ ( T oF +
              ( ( ( U " ( 1 ... j ) ) X. { 1 } ) u.
            ( ( U " ( ( j + 1 ) ... N ) ) X. { 0 } ) ) ) ) /\ ( ( 0 ...
              ( N - 1 ) ) C_ ran ( p e. ran x |-> B ) /\
            E. p e. ran x ( p ` N ) =/= 0 ) ) <->
              ( A. i e. ( 0 ... ( N - 1 ) ) E. j e. ( ( 0 ... N ) \ { V } )
            i = [_ <. T , U >. / s ]_ C /\ -. ( V = N /\ ( ( T ` N ) = 0 /\
              ( U ` N ) = N ) ) ) ) ) $=
              ( vk cv cc0 c1 cmin co cfz clt wbr caddc cif cima csn cxp cun csb
              cmpt wceq crn wss cfv wne wrex wa cmap wral wn wcel wb wf nfcsb1v
              wi nfv nfcv nff weq eleq1 anbi2d csbeq1a feq1d imbi12d cuz npcan1
              nfim cc syl 3syl sselda cvv elsni oveq2d eleq1d syl5ibrcom adantl
              cz adantr cin c0 fconst nn0red imaeq2d cn syl2anc sylan9eqr mpbid
              ovex a1i syldan biimpa csbeq1 elmap sylibr eqid c1st c2nd sylancl
              fveq2 imaeq1 xpeq1d csbeq1d eqeq2d vex ax-mp nfeq2 elfzelz necomd
              cr zred eldifsn sylanbrc ad2antrr syl2an ad2antlr mpbir2and breq1
              cle syl2anr id oveq1 ifbieq12d cof cop peano2zm peano2uz eqeltrrd
              cdif nncnd nnzd uzid fzss2 cfzo elun fzofzp1 zcnd addid1d elfzofz
              wo elfzoelz eqeltrd jaod syl5bi imp 1ex c0ex pm3.2i wf1o ccnv wfo
              wfun dff1o3 simprbi imain elfznn0 ltp1d fzdisj ima0 sylan9req fun
              syl6eq sylancr cn0 nn0p1nn nnuz syl6eleq elfzuz3 fzsplit2 imaundi
              syl6req f1ofo foima feq2d inidm off fzp1elp1 eleq2d sylan2 vtoclf
              chvar ifboth fmptd rneq mpteq1d rneqd rexeqdv anbi12d dfss3 csbie
              sseq2d ceqsrexv csbeq2i opex fex f1oexrnex op1stg uneq12d oveq12d
              op2ndg csbied syl5eqr csbeq2dv rexbidv elrnmpt cbvrex csbex rgenw
              ifex csbnestg syl6eqr rexrnmpt 3bitri syl6bbr sylan lenlt zleltp1
              ltne zre bitr3d gtned ifclda rspce rexlimdva nfrex eldifi nn0ge0d
              ex simpr elfzle2 ltletrd zltlem1 elfz mp3an2 0red elfzle1 biimpar
              nn0zd 0z eldifsni ltlen lelttrd zgt0ge1 1z elfzmlbm iftrue eqcomd
              zlem1lt biimprd mpan2d sylbird nn0cnd eqtr2d biimpd rspcev syl6an
              con3dimp iffalsed rexlimd impbid syl5bb anbi1d poimirlem23 3bitrd
              ifbothda ralbidv ) ABUBZCUCKUDUEUFZUGUFZICUBZLUHUIZVWGVWGUDUJUFZU
[encoded data, 6400 characters]
              VPVVQUYQVWCVVRVVSAVYCVYNVYMACFGIJKLNORSTVVTVRVWA $.
          $}
        $}
        poimirlem25.5 $e |- ( ( ph /\ j e. ( 0 ... N ) ) ->
        N =/= [_ <. T , U >. / s ]_ C ) $.
        $( Lemma for ~ poimir stating that for a given simplex such that no
           vertex maps to ` N ` , the number of admissible faces is even.
           (Contributed by Brendan Leahy, 21-Aug-2020.) $)
        poimirlem25 $p |- ( ph -> 2 || ( # ` { y e. ( 0 ... N ) |
        A. i e. ( 0 ... ( N - 1 ) ) E. j e. ( ( 0 ... N ) \ { y } ) i =
          [_ <. T , U >. / s ]_ C } ) ) $=
          ( wcel wa vt vz vf cv csb wceq cc0 cfz co csn cdif wrex c1 cmin c0 c2
          wral chash cfv cdvds wbr wn wex caddc 2z ax-mp cun cvv cfn fzfi diffi
          vex pm3.2i adantl weq sneq difeq2d rexeqdv ralbidv elrab wreu nfcsb1v
          wne nfcv csbeq1a sylib wo wi nfv nfel1 nfim eleq1 anbi2d imbi12d cfzo
          eleq1d wf1o cxp wf ovex sylibr wb f1oeq1 syl syl2anc adantr c2nd cima
          elsni oveq2d syl5ibrcom syl5bi cin fconst imaeq2d sylancr cn syl6eleq
          cuz cn0 mpbid sylan sylan2 ex fzm1 ord mt3d cen hashfz0 oveq1d eqeq2d
          chvar rspcv sylc wsbc bitri eldifsn imbi1i bitr4i 3bitr4i cop crab cz
          neq0 iddvds df-2 breqtri rabfi neldifsn hashunsng mp2 difsnid syl5eqr
          fveq2d ralrimiva nfne rspc mpan9 nesym cmap cab elmap f1oexrnex mpan2
          neeq2d elabg ibir opelxpi imbi2d c1st cof elun fzofzp1 nn0cnd addid1d
          elfzonn0 elfzofz eqeltrd jaod imp xp1st elmapi fvex elab 1ex c0ex wfo
          xp2nd ccnv wfun dff1o3 imain simplbiim clt elfznn0 nn0red fzdisj ima0
          ltp1d syl6eq sylan9req fun nn0p1nn nnuz elfzuz3 imaundi syl6req f1ofo
          fzsplit2 foima sylan9eqr feq2d fzfid inidm off feq1 vtocl an12s mpcom
          vtoclgaf nnnn0d nn0uz adantrr 1cnd addsubd nnm1nn0 3eqtr4rd hashdifsn
          nncnd 3syl mpan eqcomd sylan9eq hashen mp2an phpreu biimpd impr nfeq2
          cbvreu eqeq1 reubidv syl5bb an32 biimpi adantll eqeq2 sbciegf 3bitr4g
          rexsns orbi1d rexun eldifsni necomd dif32 uneq2i snssi 3imtr3i syl5eq
          wss undif 3bitr3d biimpar an32s simpl anim2i wsb necom anbi2i 3imtr4i
          ad2antlr wrmo neneqd eldifi breq2d chvarv adantlr biimpa reubida rmo3
          ad2antrr reurmo equcomi sbsbc sbceqg csbconstgf eqeq1d bitrd biantrud
          csbeq1d bicomd ralimdv wal eleq2i 3bitr3ri impexp albii con34b ralbii
          df-ne df-ral ancr sylbi ralimi sylanl1 rexbid rspcva rexim rexex nfeq
          anasss equsexv impbida weu anbi1i eubii df-reu euhash1 sylan2b eqtr3d
          reubidva syl5breqr exlimdv dvds0 hash0 breqtrri fveq2 pm2.61d2 ) AGUD
[encoded data, 6880 characters]
          WUCUTUPUGYVRUTWUIUPUGUTVAVEUPVYDVFVYEVYFWUAUOURVYGVYBVYH $.
      $}
      $( Lemma for ~ poimir showing an even difference between the number of
         admissible faces and the number of admissible simplices.  Equation (6)
         of [Kulpa] p. 548.  (Contributed by Brendan Leahy, 21-Aug-2020.) $)
      poimirlem26 $p |- ( ph -> 2 || ( ( # ` { t e. ( ( ( ( 0 ..^ K ) ^m
        ( 1 ... N ) ) X. { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) X.
          ( 0 ... N ) ) | A. i e. ( 0 ... ( N - 1 ) )
        E. j e. ( ( 0 ... N ) \ { ( 2nd ` t ) } )
          i = [_ ( 1st ` t ) / s ]_ C } ) - ( # ` { s e. ( ( ( 0 ..^ K ) ^m
        ( 1 ... N ) ) X. { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) |
          A. i e. ( 0 ... N ) E. j e. ( 0 ... N ) i = C } ) ) ) $=
        ( vx vy vk wceq wa wcel c2 cc0 co c1 cfz wf1o cab cxp csn csb cdif wrex
        cv cmin wral wne crab chash cfv c1st c2nd cdvds cfn fzfi mp2an wss xpfi
        wf cz a1i cn0 rabfi ax-mp wbr cop ad2antrr cima caddc cun nfcsb1v nfeq2
        nfv nfim weq xpeq1d oveq1d eqeq2d csbeq1a imbi12d fveq2 syl xp2nd sylib
        wi nfcv csbeq2dv neeq2d csbeq1d rexbidv ralbidv fveq2d wn c0 sylibr cvv
        cmul vex adantr nfan bitri eleq1 notbid eqeq2 syl5ibcom expimpd sylancr
        wb syl2anc eqtrd adantlr eqeq1 rspcva cen cdom wfo copab anbi12d sylan2
        syl2an eqcomd adantl syl5bb wex anbi2d csbeq1 anim1i wreu sylbi anass
        cin cfzo cmap csu fzofi f1of ss2abi ovex mapval sseqtr4i ssfi pm3.2i 2z
        mapfi mp1i snfi hashcl nn0zi cn cof oveq2 imaeq2d oveq1 uneq12d imaeq1d
        oveq2d chvar ad4ant14 xp1st elmapi ad2antlr fvex f1oeq1 elab nfcsb nfne
        oveq12d cbvcsb syl5eq rspc adantll 1st2nd2 ad3antlr neeqtrd poimirlem25
        impcom cbvrex syl5rbb iba sylan9bb rabbidv breqtrd dvds0 hash0 breqtrri
        ex simpr con3i ralrimivw rabeq0 syl5breqr pm2.61d1 hashxp oveq1i nn0cni
        hashsng mulid2i 3eqtri syl6breqr fsumdvds cc nncnd npcan1 nnm1nn0 nn0zd
        cuz uzid peano2uz 3syl eqeltrrd fzss2 ssralv wnel raldifb nnel biimparc
        velsn cle nnred ltm1d nn0red ltnled mpbid elfzle2 nsyl syl5ibrcom con2d
        clt imp syl5 expdimp an32s syl5bi idd jad ralimdaa syl5bir con3d dfrex2
        3imtr4g ralimdva syld ss2rabdv hashssdif ciun df-ne ralbii ralnex nn0uz
        nnnn0d syl6eleq eqeltrd fzsplit2 nnzd fzsn uneq2d raleqdv ssrexv ralimi
        difss biantrurd ralunb syl6rbbr nn0fz0 nfre1 nfral eldifsn diffi ssrab2
        ad3antrrr ssdomg mp2 hashdifsn mpan 1cnd addsubd hashfz0 3eqtr4d hashen
        cmpt biimpac rabid simplbi2com impancom ancrd reximdv2 simplbi pm4.71rd
        sylan9eqr df-mpt nfrab1 nfcri cbvopab1 eqtr4i breqi df-br opabid 3bitri
        syl6bbr rexbidva nfmpt breq1 cbvrexf syl6bb sylibd ralimia nfel1 eleq1d
        nfbr elrabf simprbi fmpti jctil dffo4 fodomfi endomtr fisseneq mp3an12i
        eqid sbth biimpar equcoms vtoclga sylan2br expr necon1bd eqtr mpd exp31
        eleq2d rexlimd mpand ralsng 3bitr3rd pm5.32da rabbidva w3a opeq2 3anass
        cbvex exbii eliunxp elopab 3bitr4i eqriv op2ndd sneqd difeq2d rexeqbidv
        op1std rabxp difrab 3eqtr4g wdisj inxp disjsn2 sylbir 0xp syl6eq rgen2w
        orri sneq xpeq12d disjor mpbir hashiun eqtr3d cres wf1 wfun fo1st fofun
        cdm ssv fof fdmi fores rexrab eqcoms adantrl rexlimiv crio simplr enref
        phpreu reubidv riotacl opelxpi wsbc riotasbc riotaex sbceq2g imdistanri
        wo biimpi expcom nfriota1 csbeq2d rexbid biantrud bitr2d rspcev impbid2
        nfop expl abbidv dfimafn nfrex nfrab cbvab eqtri df-rab foeq3 eqeqan12d
        mpbii fvres elrab simpl ss2rabi sseli anim12i anbi2i bitr3i anbi1i wrmo
        an4 ancom wsb reurmo rmobidv rmo3 nfs1v anbi1d sbsbc rspc2 syl5com impr
        imbi1d com23 elrabi xpopth biimpd expd sylbid ralrimivva dff13 sylanbrc
        mpdd df-f1o elexi f1oen 3eqtr3d ) AUAUBHUUAUCZUDIUEUCZUUBUCZXVCXVCEUMZU
[encoded data, 12320 characters]
        AUWK $.
      poimirlem28.3 $e |- ( ( ph /\ ( n e. ( 1 ... N ) /\
          p : ( 1 ... N ) --> ( 0 ... K ) /\ ( p ` n ) = 0 ) ) ->
            B < n ) $.
      poimirlem28.4 $e |- ( ( ph /\ ( n e. ( 1 ... N ) /\
          p : ( 1 ... N ) --> ( 0 ... K ) /\ ( p ` n ) = K ) ) ->
            B =/= ( n - 1 ) ) $.
      $( Lemma for ~ poimir showing that the difference between admissible
         faces in the whole cube and admissible faces on the back face is even.
         Equation (7) of [Kulpa] p. 548.  (Contributed by Brendan Leahy,
         21-Aug-2020.) $)
      poimirlem27 $p |- ( ph -> 2 ||
          ( ( # ` { t e. ( ( ( ( 0 ..^ K ) ^m ( 1 ... N ) ) X.
            { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) X.
          ( 0 ... N ) ) | A. i e. ( 0 ... ( N - 1 ) )
            E. j e. ( ( 0 ... N ) \ { ( 2nd ` t ) } ) i =
          [_ ( 1st ` t ) / s ]_ C } ) - ( # ` { s e. ( ( ( 0 ..^ K ) ^m
            ( 1 ... N ) ) X. { f | f : ( 1 ... N ) -1-1-onto->
          ( 1 ... N ) } ) | ( A. i e. ( 0 ... ( N - 1 ) )
            E. j e. ( 0 ... ( N - 1 ) ) i = C /\ ( ( 1st ` s ) ` N ) = 0 /\
          ( ( 2nd ` s ) ` N ) = N ) } ) ) ) $=
        ( cfv wceq wcel vx vy vz vw vu vm vq c2 cc0 cfz co c1 cmap cmin cv c2nd
        clt wbr caddc cif c1st cima csn cxp cun csb cmpt wss wne wrex wral wf1o
        wa cab crab chash cdif w3a cdvds cfn fzfi mapfi mp2an cz 2z rabfi ax-mp
        a1i wf mp1i wn nfv nfcv wi c0 cvv cin fveq2d adantl cn weq fveq2 breq2d
        csbeq1d imaeq1d xpeq1d uneq12d oveq12d oveq1 eqeq2d elmapi simpr ralimi
        simpl neeq1d rexbidv syl6bb sylan wb sylib syl5breqr sylibr cuz syl6bbr
        wo bitri 3syl rexeqdv adantr adantlr xp1st ralbidv syldan sylan2 eqeq1d
        syl imp fveq1d 3anbi123d anbi12d cof cfzo fzofi f1of ss2abi ovex mapval
        crn sseqtr4i ssfi xpfi hashcl nn0zd dfrex2 nfrab1 nffv nfbr neq0 iddvds
        csu wex vex hashsng oveq2i df-2 eqtr4i breqtrri diffi mp2b snfi disjdif
        incom eqtri hashun mp3an difsnid syl5eqr ad3antrrr ifbid csbeq2dv eqtrd
        mpteq2dv breq1 id ifbieq12d oveq2 imaeq2d oveq1d oveq2d cbvcsbv cbvmptv
        wreu syl6eq cbvrabv ad3antlr ad2antlr fveq1 cbvrexv rspccva poimirlem22
        weu eldifsn eubii elexi euhash1 df-reu 3bitr4ri eqtr3d ex exlimdv dvds0
        syl5bi hash0 pm2.61d2 adantld iba rabbidv mpbidi rexlimd syl5bir rabeq0
        a1d con3i fsumdvds simp1 sneq difeq2d difun2 nnnn0d nn0uz syl6eleq fzm1
        cn0 elun velsn orbi2i eqrdv difeq1d nnzd uzid uznfz disjsn disj3 bitr3i
        3eqtr4a sylan9eqr biimprd ralimdv expimpd sylan2i ss2rabdv sylancr ciun
        hashssdif cop fvex f1oeq1 elab poimirlem24 1st2nd2 anbi1d bitr4d anim2i
        xp2nd frn dfss3 elrnmpt ralbii sylbb 1eluzge0 fzss1 ssralv nncnd npcan1
        eqid peano2zm peano2uz eqeltrrd fzss2 sselda simplr ssel2 elfzelz ltnrd
        cc zred notbid syl5ibcom necon2ad 3ad2ant1 3exp2 imp31 necon2d adantllr
        mpd reximdva ralimdva biantrurd nnuz raleqdv ralunb ralsng anbi2d bitrd
        ad2antrr wsbc 0z 1z fzshftral mp3an13 0p1e1 eqeq1 cbvralv biimpa necomd
        sbcie biantrud r19.26 syl2an pm5.32da rexbidva biimpd imbi1d syl5ibrcom
        3bitr2d com23 adantrd pm4.71rd an12 3anass anbi2i bitr4i 3bitr3d iunrab
        rabbidva difrab 3eqtr4g wdisj ss2rabi sseli eqcom elrab simprbi invdisj
        rgen rgenw hashiun cen cres wf1 wfo wfun cdm fo1st fofun ssv fdmi fores
        fof rexrab anim1i csbeq1a eqcoms eqcomd adantrl rexlimiv nn0fz0 opelxpi
        eleq1 ancoms opelxp2 op2ndg op1stg rspcev impbid2 syl5bb abbidv dfimafn
        expl nfcsb1v nfeq2 nfrex nfral nf3an nfan nfrab eqeq2 cbvab foeq3 mpbii
        df-rab fvres eqeqan12d eqtr3 xpopth ancomsd expdimp sylbid rgen2a jctir
        an4s dff13 df-f1o sylanbrc f1oen hashen 3eqtr3d breqtrd ) AUHUIIUJUKZUL
[encoded data, 11440 characters]
        GYXGXWGWXFWCYBUWIWXGWXH $.
      poimirlem28.5 $e |- ( ph -> K e. NN ) $.
      $( Lemma for ~ poimir , a variant of Sperner's lemma.  (Contributed by
         Brendan Leahy, 21-Aug-2020.) $)
      poimirlem28 $p |- ( ph -> E. s e. ( ( ( 0 ..^ K ) ^m ( 1 ... N ) ) X.
          { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } )
            A. i e. ( 0 ... N ) E. j e. ( 0 ... N ) i = C ) $=
        ( cc0 c0 wcel vk vm vt vq cv wceq cfz co wrex wral c1 cmap wf1o cab cxp
        crab wne c2 cfv csn caddc cun csb chash cdvds wbr wn cn0 cle w3a nnnn0d
        cima 3jca wi oveq2 fz10 syl6eq oveq2d cfn ax-mp eqidd f1oeq123d xpeq12d
        abbidv 0ex syl oveq1d cvv wf wfn a1i wa eqtrd csbeq1d eqeq2d cz imaeq2d
        un0 xpeq1d uneq2d uneq12d rexeqbidv c0ex raleqbidv eqcomd fveq2d breq2d
        oveq1 notbid imbi2d rabeqbidv cuz nfv nfim fveq1 eqeq1d 3anbi23d anbi2d
        cn ovex imbi12d clt fveq2 breq2 wb vtoclf mapfi mp2an wss rabfi syl2anr
        cmin adantlr anasss adantr syl2anc syldan ad2antlr nfcv cc cfzo cof cop
        c1st c2nd nnred leidd c1o fzofi map0e df1o2 eqtri f1o00 mpbiran2 syl6bb
        eqid df-sn syl6eqr xpsn syl6req elsni op1std cmpt f0 ffn mp1i inidm 0fv
        offval mpt0 uneq1d uncom 0z fzsn 0p1e1 ima0 rexsn eqeq1 ralsn sylan9bbr
        0xp syl6rbb rabeqbidva n2dvds1 opex hashsng nnuz syl6eleq eluzfz1 0elfz
        weq fconst6g 3syl fvconst2 nfcsb1v nfeq1 snex xpex csbeq1a 1ex 3anbi13d
        feq1 eleq1 vtocl nn0lt10b 3ad2antr2 mpbid mpdan ralrimivw rabid2 sylibr
        elfznn0 syl5eqr mtbii fzfi mapval eqeltrri f1of ss2abi ssfi xpfi hashcl
        2z mp2b nn0zi 3pm3.2i cdif nn0p1nn ad2antrl uneq1 cin fconst jctr ltp1d
        fzdisj adantl peano2nnd nn0z nnzd zltp1le biimpa peano2zd eluz fzsplit2
        fun mpbird snssd ssequn2 sylib feq23d adantrr nfel1 unex eleq1d anassrs
        vex wo cr leloe bitrd biimpd imdistani simplll nnge1d 1z elfz mpbir2and
        nn0re ad2antrr simpr lttrd anass an32s ad3antlr fnconstg fvun2 syl12anc
        mp3an2 sylanb nfbr breq1d syl13anc elfzelz zleltp1 biimpac sylan jaodan
        elfzle2 breqtrrd elfz2nn0 syl3anbrc fzss2 sselda 3ad2antr1 simprl fvun1
        ad2antll adantlrr 3adantr3 simpr3 simp1 simp2 adantrlr nfne poimirlem27
        sylanr2 neeq1d poimirlem26 zsubcl dvds2sub mp3an nn0cni nnncan1 sylancr
        syl6breq dvdssub2 nn0cn pncan1 rexeqdv 3anbi1d simprr poimirlem4 hashen
        rabbidv cen eqtr4d con3d a2d 3adant1 fnn0ind mpcom dvds0 hash0 breqtrri
        expcom syl5breqr fzn csbie rexbidv ralbidv syl5ibr necon3bd mpd rabn0 )
[encoded data, 10800 characters]
        RVQWNKWVNBCWUTWVLWVMXTMVYRVQWOVYSVYTVYDXFXGWUAWUBWUCWUIJWUPWUDVUI $.
    $}
    $d c g i j k m n p q r s v x y z ph $.
    $d a b c f g i j k m n p q r s v x y z F $.
    $d a b c f g i j k m n p q r s v x y z G $.
    $d a b c f g i j k m n p q r s v x y z I $.
    $d a b c f g i j k m n p q r s v x y z N $.
    $d a b c f g i j k m n p q r s v x y z R $.
    $d c f g i m p q r v x y z X $.
    poimir.i $e |- I = ( ( 0 [,] 1 ) ^m ( 1 ... N ) ) $.
    poimir.r $e |- R =
        ( Xt_ ` ( ( 1 ... N ) X. { ( topGen ` ran (,) ) } ) ) $.
    ${
      poimir.1 $e |- ( ph -> F e. ( ( R |`t I ) Cn R ) ) $.
      ${
        $d c f j v C $.
        poimirlem30.x $e |- X = ( ( F ` ( ( ( 1st ` ( G ` k ) ) oF +
          ( ( ( ( 2nd ` ( G ` k ) ) " ( 1 ... j ) ) X. { 1 } ) u. ( ( ( 2nd `
            ( G ` k ) ) " ( ( j + 1 ) ... N ) ) X. { 0 } ) ) ) oF /
          ( ( 1 ... N ) X. { k } ) ) ) ` n ) $.
        poimirlem30.2 $e |- ( ph -> G : NN --> ( ( NN0 ^m ( 1 ... N ) ) X.
          { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) ) $.
        poimirlem30.3 $e |- ( ( ph /\ k e. NN ) ->
          ran ( 1st ` ( G ` k ) ) C_ ( 0 ..^ k ) ) $.
        poimirlem30.4 $e |- ( ( ph /\
          ( k e. NN /\ n e. ( 1 ... N ) /\ r e. { <_ , `' <_ } ) ) ->
            E. j e. ( 0 ... N ) 0 r X ) $.
        $( Lemma for ~ poimir connecting cubes of the tessellation to
           neighborhoods.  (Contributed by Brendan Leahy, 21-Aug-2020.) $)
        poimirlem29 $p |- ( ph -> ( A. i e. NN E. k e. ( ZZ>= ` i )
          A. m e. ( 1 ... N ) ( ( ( 1st ` ( G ` k ) ) oF / ( ( 1 ... N ) X.
            { k } ) ) ` m ) e. ( ( C ` m ) ( ball ` ( ( abs o. - ) |`
          ( RR X. RR ) ) ) ( 1 / i ) ) -> A. n e. ( 1 ... N )
            A. v e. ( R |`t I ) ( C e. v -> A. r e. { <_ , `' <_ } E. z e. v
          0 r ( ( F ` z ) ` n ) ) ) ) $=
          ( vc cv cfv c1 cfz co csn cxp cdiv cof cabs cmin cr wcel wral wrex cn
          cuz cc0 wbr cle ccnv wi wa cin wss crp wceq ctop cvv wb crn cfn retop
          wf mp2an eqeltri cicc cmap ovex sseld imp adantl cuni unitssre sselda
          mpan c2 cneg clt rpred syl fveq2 oveq2d c2nd cima caddc cun wfn nnrpd
          lerecd mpbid cc wne syl2anc ad4antlr ffvelrnda sseldi simplr jca 3syl
          cn0 nn0red nndivred sylan recnd abscld sylanl1 c0 fconst sylib adantr
          elsni fveq2d breq1d syl5ibrcom readdcld adantlr ad3antlr eqidd eleq1d
          ofval bitrd ffn adantl3r c1st ccom cres cbl cpr cixp cioo ctg fconst6
          crest cpt fzfi pttop elrest eqid ptrecube ex inss1 sseq1 mpbiri ssrin
          sseq2 syl5ibr reximdv imim12d syl5com rexlimiv sylbi resttop uniretop
          reex mapss eqsstri ptuniconst restuni eltopss cfl cz 2rp rpdivcl 0red
          ceicl zred rpgt0d ceige ltletrd elnnz sylanbrc oveq2 eleq2d rexeqbidv
          ralbidv rspcv uznnssnn imdistani rpcn 2cn 2ne0 recdiv mpanl12 breqtrd
          rpne0 elmapi eleq2s simp-4l wf1o cab xp1st resubcld nnrecred rphalfcl
          ltletr syl3anc mpan2d simpl anim12i anassrs 1re snssi ax-mp 0re unssi
          1ex c0ex pm3.2i wfun xp2nd fvex f1oeq1 elab wfo simprbi imain elfznn0
          dff1o3 ltp1d fzdisj imaeq2d ima0 syl6eq sylan9req fun sylancr imaundi
          nn0p1nn syl6eleq elfzuz3 fzsplit2 f1ofo foima syl5eqr simpllr absnegd
          nnuz ancoms feq2d wo elun nnrecre rpreccld rpge0d absidd eluzle letrd
          nnrp eqbrtrd oveq1d nncn nnne0 div0d abs00bd biimparc syldan ad2antrr
          jaod adantll mpd simpll anim1i renegcld ltleadd syl21anc lelttr mpand
          abstrid 3syld jctild adantld cxr rpxrd cxmt rexmet mp3an1 elmapfn vex
          elbl fnconstg mp1i fzfid inidm fvconst2 remetdval anbi2d rpxr fzofzp1
          eqtrd cfzo elfzonn0 nn0cnd addid1d elfzofz eqeltrd dffn3 fssd divdird
          syl5bi subnegd eqtr4d adantllr negcld subsubd 3eqtrd 2halvesd breq12d
          eqcomd anbi12d 3imtr4d ralimdva nndivre elfzle1 divge0 syl2an elfzle2
          off rpregt0d cmul 1red ledivmuld mulid1d breq2d mpbird syl3anbrc impr
          elicc2i a1i eleq2i elmap bitri sylibr jctird elin anbi1i syl6ibr ssel
          elixp com12 syl6 impd ralrimdva expd 3exp2 imp43 r19.29 fveq1d rspcev
          syl6eqr rexlimivw expcom ralrimdvva sylan2 syl6d rexlimdva syld com23
          sylanl2 rexlimddv expr r19.21v ralcom syl6ib ) AJUGZIUGZMUHZUUAUHZUIO
[encoded data, 9520 characters]
          XBWXKKWWEWVRWUMWUSWXLCKWXNWWEWVSWVT $.
        $( Lemma for ~ poimir combining ~ poimirlem29 with ~ bwth .
           (Contributed by Brendan Leahy, 21-Aug-2020.) $)
        poimirlem30 $p |- ( ph ->
            E. c e. I A. n e. ( 1 ... N ) A. v e. ( R |`t I ) ( c e. v ->
              A. r e. { <_ , `' <_ } E. z e. v 0 r ( ( F ` z ) ` n ) ) ) $=
          ( vm vi cv cfv c1 cfz co csn cxp cdiv cres wcel wral cuz wrex cc0 wbr
          cr cn cle ccnv wi crest cmpt crn cfn wceq wss wf cicc cfzo sylan nnrp
          wa syl2an adantr crp adantl wb eleq1d syl5ibrcom adantll wfn cn0 cmap
          ffvelrnda sylanbrc vex a1i fzfid eleq2i ovex bitri eqid syl cima ciun
          com ax-mp imaeq2i bitr3i wn ralnex cun sylbi syl5eq difeq1i difss wal
          cdif eldif 3bitr4i df-ral cvv 3bitri syl6 unitssre mp3an1 an32s fveq1
          syl5 ralrimdva reximdv ccmp ctg cpt cixp wtru ctop fconst6 mp2an cuni
          eqeltri cha cin c0 wo c1st cof cabs cmin ccom cbl wel elfzonn0 nn0red
          cpr nndivre clt elfzole1 rpregt0d divge0 elfzo0le cmul 1red ledivmuld
          jca nncn mulid1d breq2d bitrd mpbird 0re 1re elicc2i syl3anbrc ancoms
          elsni oveq2d impr wf1o cab xp1st elmapfn 3syl df-f fconst inidm elmap
          off sylibr fmptd frn ominf nnenom enfi iunid imaiun fnmpti dffn3 mpbi
          cen fimacnv 3eqtr3ri eleq1i mtbi rexbii rexnal ralbii nnuz fzouzsplit
          elnnuz uncom difun2 eqtri syl6eq syl6eqss ssralv impexp imbi1i con34b
          difeq1d imbi2i albii crab mptiniseg sseq1i rabss ssfi rexlimiv ralimi
          fzofi mpan sylbir ex mt3i ssrexv syl2im elmapi eleq2s sseldi rpreccld
          iunfi cxmt rexmet blcntr ralimdva reximia clp ixpconst eqtr4i oveq12i
          cioo retop ptrest trud fvex fvconst2 oveq1d mpteq2ia fconstmpt fveq2i
          3eqtri fzfi cii dfii2 iicmp eqeltrri ptcmpfi rehaus pthaus reex mapss
          haustop eqsstri uniretop ptuniconst restuni 3expia sylancr wne cmptop
          bwth islp3 ccld cxr rexrd cmopn tgioo blopn eleqtrrd noel difid mtbir
          nnrecre pm2.21i ptopn syl6eleqr elrestr mp3an12 imassrn syl5ss haust1
          sstri restt1 wfun funmpt imafi t1ficld mp3an13 difopn syl2anr anassrs
          ct1 diffi eleq2 ineq1 neeq1d imbi12d rspcva ffn ralrimiva elixp simpl
          elind neldifsnd eldifd wex simplr anim1i anim12i elin anbi1i xchnxbir
          andir ianor anbi12i andi pm3.24 simpr anim12ci mto biorfi ancom anass
          bitr4i 3imtr4i imadmrn dmmpti eqtr3i imadifss imass2 uznnssnn resmptd
          cdm df-ima rneqd sseqtrd sseld syl5bi anim1d eximdv n0 rgenw rexrnmpt
          ralbidv df-rex 3imtr4g embantd mpand sylbid reximdva syld poimirlem29
          pm2.61d mpd ) AUDUFZGUFZJUGZUUAUGZUHLUIUJZWVKUKZULZUMUUBZUJZUGZWVJOUF
[encoded data, 6320 characters]
          HAWWJWWPOKABCWVTDEUEFGUDHIJKLMNPQRSTUAUBUCWVGYFWVI $.
      $}
      poimir.2 $e |- ( ( ph /\ ( n e. ( 1 ... N ) /\ z e. I /\
        ( z ` n ) = 0 ) ) -> ( ( F ` z ) ` n ) <_ 0 ) $.
      ${
        $d a b f i n r x y z P $.
        poimirlem31.p $e |- P = ( ( 1st ` ( G ` k ) ) oF +
          ( ( ( ( 2nd ` ( G ` k ) ) " ( 1 ... j ) ) X. { 1 } ) u.
            ( ( ( 2nd ` ( G ` k ) ) " ( ( j + 1 ) ... N ) ) X. { 0 } ) ) ) $.
        poimirlem31.3 $e |- ( ph -> G : NN --> ( ( NN0 ^m ( 1 ... N ) ) X.
          { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) ) $.
        poimirlem31.4 $e |- ( ( ph /\ k e. NN ) ->
          ran ( 1st ` ( G ` k ) ) C_ ( 0 ..^ k ) ) $.
        poimirlem31.5 $e |- ( ( ph /\ ( k e. NN /\ i e. ( 0 ... N ) ) ) ->
          E. j e. ( 0 ... N ) i = sup ( ( { 0 } u. { a e. ( 1 ... N ) |
            A. b e. ( 1 ... a ) ( 0 <_ ( ( F ` ( P oF / ( ( 1 ... N ) X.
          { k } ) ) ) ` b ) /\ ( P ` b ) =/= 0 ) } ) , RR , < ) ) $.
        $( Lemma for ~ poimir , assigning values to the vertices of the
           tessellation that meet the hypotheses of both ~ poimirlem30 and
           ~ poimirlem28 .  Equation (2) of [Kulpa] p. 547.  (Contributed by
           Brendan Leahy, 21-Aug-2020.) $)
        poimirlem31 $p |- ( ( ph /\ ( k e. NN /\ n e. ( 1 ... N ) /\
          r e. { <_ , `' <_ } ) ) -> E. j e. ( 0 ... N ) 0 r
            ( ( F ` ( P oF / ( ( 1 ... N ) X. { k } ) ) ) ` n ) ) $=
          ( vx vy cv cn wcel c1 cfz co cle ccnv cc0 csn cxp cdiv cof cfv wbr wi
          wrex wceq wo wa cuz wss ax-mp wne wral cun clt weq eleq1 anbi2d eqeq1
          cr rexbidv imbi12d wn elfzle1 wb 1re elfzelz zred sylancr mpbid elsni
          cfn c0 mp2an c0ex 0re cz sstri 3pm3.2i elun sylib oveq2 raleqdv elrab
          mpbiri syl fveq2 breq2d syl2an syl5 breq syl5ibrcom cmin biimpd caddc
          cc npcan1 cn0 uzid peano2uz 3syl eqeltrrd syld imp vtocl bitri notbid
          ovex jaod cmap wf ctop adantr adantl oveq2d eleq1d cima fconst eqeq1d
          cvv wfn cpr elpri simprr 1eluzge0 fzss1 sseli anim2i crab csup chvarv
          lenlt 0lt1 syl6eqbr nsyl wor w3a ltso snfi fzfi rabfi unfi snid elun1
          ne0i mp2b snssi ssrab2 ssriv zssre unssi fisupcl elfzuz eluzfz2 simpl
          ralimi rspcva sylbi orim2i orel1 syl2im reximdv sylan2i mpcom elfzm1b
          nnzd syl2anr ex pm2.43d nncnd nnm1nn0 nn0zd fzss2 sseld anim2d syldan
          elsn orbi12i a1i ltm1 peano2rem ltnle mpancom breq2 fimaxre2 suprubii
          syl5ibcom elun2 con3i ianor xchnxbir syl6 pm2.63 orcs jcad andir zcnd
          1p0e1 ax-1cn subadd mp3an23 biimpa syl5reqr fzsn sneq 3eqtr4a expimpd
          0cn ralun eqeltrd peano2zm 4syl fzsplit2 syl2anc oveq1d eqtrd syl5ibr
          uneq2d expdimp adantrl syl5bi neeq1d anbi12d ralsng nne orbi2i syl6bb
          con3d sylibd ad2antlr crest ccn cuni cioo crn ctg retop fconst6 pttop
          1z cpt eqeltri cicc reex unitssre eqsstri uniretop ptuniconst restuni
          mapss cnf ad2antrr simplr nnre nnne0 redivcld jca nnrp divge0 elfzle2
          rpregt0d cmul 1red crp ledivmuld nncn mulid1d bitrd elicc2i syl3anbrc
          mpbird ancoms impr sylan c1st fzofzp1 elfzonn0 nn0cnd addid1d elfzofz
          c2nd cfzo wf1o cab ffvelrnda xp1st elmapfn df-f sylanbrc cin 1ex wfun
          pm3.2i xp2nd fvex f1oeq1 elab wfo dff1o3 simprbi imain elfznn0 nn0red
          ltp1d fzdisj imaeq2d ima0 sylan9req fun imaundi nn0p1nn nnuz syl6eleq
          syl6eq elfzuz3 f1ofo foima syl5eqr feq2d fzfid inidm off feq1i sylibr
          vex eleq2i elmap ffvelrnd elmapi an32s 0red ltnled ltle sylancl div0d
          sylbird oveq1 ad3antlr ffn fnconstg mp1i eqidd fvconst2 ofval sylibrd
          simplll adantlr fveq1 fveq1d breq1d imbi2d 3exp2 syl3c reximdva brcnv
          anasss mpd exp32 3imp2 ) AHUHZUIUJZIUHZUKMULUMZUJZNUHZUNUNUOZUUAUJZUP
[encoded data, 7600 characters]
          NWNWWAWWKVXNWVNVUFVTXKYHXIWVQWVR $.
      $}
      poimir.3 $e |- ( ( ph /\ ( n e. ( 1 ... N ) /\ z e. I /\
        ( z ` n ) = 1 ) ) -> 0 <_ ( ( F ` z ) ` n ) ) $.
      $( Lemma for ~ poimir , combining ~ poimirlem28 , ~ poimirlem30 , and
         ~ poimirlem31 to get Equation (1) of [Kulpa] p. 547.  (Contributed by
         Brendan Leahy, 21-Aug-2020.) $)
      poimirlem32 $p |- ( ph ->
        E. c e. I A. n e. ( 1 ... N ) A. v e. ( R |`t I ) ( c e. v ->
          A. r e. { <_ , `' <_ } E. z e. v 0 r ( ( F ` z ) ` n ) ) ) $=
        ( c1 cc0 wa wcel vf vg vk vi vb vj va vs vp vm vq cn cn0 cfz co cmap cv
        cab cxp wf cfv c1st crn cfzo wss csn c2nd cima cun cof cdiv cle wbr wne
        caddc wral crab cr clt csup wceq wrex adantr oveq1 fveq2d fveq1d breq2d
        wi fveq1 neeq1d anbi12d ralbidv rabbidv uneq2d supeq1d syl snssd ssrab2
        cuz ax-mp sstri a1i cfn c0 w3a mp2an c0ex ne0i mp2b cz elfzelz ad2antrr
        3pm3.2i elfznn simpr ralimi wn wb nnre syl2an fveq2 breq1 oveq2 raleqdv
        weq bitri sylan adantl ovex cvv eqtrd oveq1d com imaeq1d xpeq1d uneq12d
        syl6 oveq12d eqeq2d rexbidv wf1o wel ccnv cpr crest wex nnnn0d 1eluzge0
        0elfz fzss1 unssd ltso snfi fzfi rabfi unfi snid elun1 0red ssriv zssre
        wor unssi fisupcl ssel mpisyl nngt0 lenlt elfz1b biimpri 3expia sylbird
        eqeq1d rspcev expcom sylan9 an32s nne rexbii rexnal bitr3i syl6ib con4d
        sylan2 syl5 ralunb ralsn ralrab anbi12i sylanbrc rspcva sylancr 3adant2
        ralrimiva cmin zred 3ad2ant1 simpr1 simpll cicc simplr nndivre jca nnrp
        elfzle1 rpregt0d divge0 elfzle2 cmul 1red ledivmuld nncn mulid1d mpbird
        crp bitrd 0re 1re elicc2i syl3anbrc ancoms elsni oveq2d syl5ibrcom impr
        eleq1d simprr vex fconst fzfid inidm eleq2i elmap sylibr 3adantr3 ancom
        off 3anass wfn ffn ad2antrl fnconstg mp1i simplrr fvconst2 ofval anasss
        sylan2b nnne0 dividd ad2antlr eleq1 3anbi23d anbi2d imbi12d vtocl simp3
        syl13anc neeq1 imp zcnd 1cnd subeq0ad biimpcd fzsn sneq 3eqtr4a biimprd
        wo ralun npcan1 elfzuz eqeltrd peano2zm uzid peano2uz eqeltrrd fzsplit2
        1z cc 4syl syl2anc syl5ibr expd com12 jaoi imdistand elun elrab orbi12i
        elsn 3imtr4g elun2 fimaxre2 ltm1 peano2rem sselii ltletr mp3an3 mpancom
        suprubii mpand ltnri mtbii necon2ai mpbii necon3bi pm2.61d1 poimirlem28
        sylsyld nn0ex fzo0ssnn0 mapss xpss1 sseli xp1st elmapi frn anim1i anass
        3syl sylib reximi2 ciun ccrd cdm nnex cixp ixpconst con0 omelon nn0ennn
        nnenom entr2i isnumi rgenw finixpnum eqeltrri mapval f1of ss2abi finnum
        cen mapfi ssfi xpnum ss2iun iunconst sseqtri ssnum rneqd sseq1d mp3an12
        1nn ac6num ccn eqid simpl sseq12d rspccva xpeq2d imaeq2d cbvrexv syl6bb
        eqeq1 rspc2v mpan9 poimirlem31 poimirlem30 exlimddv ) AULUMQHUNUOZUPUOZ
[encoded data, 8560 characters]
        VDWVFWVGWVHWVIVUGWVJ $.
      $( Poincare-Miranda theorem.  Theorem on [Kulpa] p. 547.  (Contributed by
         Brendan Leahy, 21-Aug-2020.) $)
      poimir $p |- ( ph ->
        E. c e. I ( F ` c ) = ( ( 1 ... N ) X. { 0 } ) ) $=
        ( vv cc0 cfv wcel wa cr vr vx wel cv wbr wrex cle ccnv wral wi crest co
        cpr c1 cfz csn cxp wceq poimirlem32 wfn wn wo cmpt cima cabs cmin caddc
        wne cioo wss cmap wf ccn ctop cuni cvv crn ctg ctopon ovex pttoponconst
        retopon mp2an topontopi cicc unitssre eqsstri toponunii restuni cnf syl
        reex mapss ffvelrnda elmapi clt crp cc ex syld cxr wb mpdan sylibrd weq
        rexrd fveq2 fveq1d fvex fvmpt eleq1d ad2antlr a1i adantr mp3an12 oveq2d
        adantl sylan an32s rexbii bitr3i syl6ib ralimdva eqtrd adantllr adantlr
        mpan ltnled biimpd sylan2 anassrs impancom reximdva breq notbid ralbidv
        bitrd c0ex rexnal bitri recn absrpcl ltsubrp ltaddrp jca abscld resubcl
        readdcl rexr elioo5 syl3anc eqid iooretop ccnp resttopon eqeltrrd retop
        feqmptd fconst6 ptpjcn fvconst2 eleqtrd fveq1 cncnpi iscnp mpbid simprd
        cnmpt11 eleq2 sseq2 anbi2d rexbidv imbi12d rspcv letric sylancl r19.41v
        mpsyl 0re jctird eltopss cdm dmmpti sseq2i wfun funmpt funimass4 sylbir
        anass ssel2 eliooord syl6bi sylbid cneg absnid negidd breq2d 0red absid
        adantld subidd breq1d adantrd orim12d expimpd syland anim2d ralnex ctsr
        letsr elexi cnvex brcnv syl6bb rexpr 3bitr3i anbi2i necon4ad ffn jctild
        annim fconstfv fconst2 mpd ) AHOUCZPDUDZBUDZEQZQZUAUDZUEZBOUDZUFZUAUGUG
        UHZUMZUIZUJZOCFUKULZUIZDUNGUOULZUIZHFUFHUDZEQZUYTPUPZUQURZHFUFABOCDEFGU
        AHIJKLMNUSAVUAVUEHFAVUBFRZSZVUAVUCUYTUTZUYFVUCQZPURZDUYTUIZSZVUEVUGVUAV
        UKVUHVUGUYSVUJDUYTVUGUYFUYTRZSZUYSVUIPVUNVUIPVHZUYEPUYIUGUEZVAZBUYLUIZU
        YIPUGUEZVAZBUYLUIZVBZSZOUYRUFZUYSVAZVUNVUOUYEUBFUYFUBUDZEQZQZVCZUYLVDZV
        UIVUIVEQZVFULZVUIVVKVGULZVIULZVJZVUIPUGUEZPVUIUGUEZVBZSZSZOUYRUFZVVDVUN
        VUOUYEVVOSZOUYRUFZVVRSZVWAVUNVUOVWCVVRVUNVUOVUBVVIQZVVNRZVWCVUNVUOVUIVV
        NRZVWFVUNVUITRZVUOVWGUJVUGUYTTUYFVUCVUGVUCTUYTVKULZRUYTTVUCVLZAFVWIVUBE
        AEUYRCVMULZRFVWIEVLLEUYRCFVWICVNRFVWIVJZFUYRVOURVWICUYTVPRZVIVQZVRQZTVS
        QRZCVWIVSQRZUNGUOVTZWBUYTVWOCVPTKWAWCZWDFPUNWEULZUYTVKULZVWIJTVPRVWTTVJ
        VXAVWIVJWLWFVWTTUYTVPWMWCWGZFCVWIVWICVWSWHZWIWCZVXCWJWKZWNVUCTUYTWOWKZW
        NZVWHVUOVVLVUIWPUEZVUIVVMWPUEZSZVWGVWHVUOVVKWQRZVXJVWHVUIWRRZVUOVXKUJVU
        IUUAZVXLVUOVXKVUIUUBWSWKVWHVXKVXJVWHVXKSVXHVXIVUIVVKUUCVUIVVKUUDUUEWSWT
        VWHVVLXARVVMXARVUIXARVWGVXJXBVWHVVLVWHVVKTRZVVLTRVWHVUIVXMUUFZVUIVVKUUG
        XCXFVWHVVMVWHVXNVVMTRVXOVUIVVKUUHXCXFVUIUUIVVLVVMVUIUUJUUKXDWKVUFVWFVWG
        XBAVUMVUFVWEVUIVVNUBVUBVVHVUIFVVIUBHXEUYFVVGVUCVVFVUBEXGXHVVIUULZUYFVUC
        XIXJXKXLXDVVNVWORVUNVWEUYGRZUYEVVJUYGVJZSZOUYRUFZUJZBVWOUIZVWFVWCUJZVVL
        VVMUUMVUNFTVVIVLZVYBVUNVVIVUBUYRVWOUUNULQRZVYDVYBSZAVUMVUFVYEAVUMSZVVIU
        YRVWOVMULRVUFVYEVYGUBBVVGUYFUYGQZVVHUYRCVWOFVWIUYRFVSQRZVYGVWQVWLVYIVWS
        VXBFCVWIUUOWCZXMAUBFVVGVCZVWKRVUMAEVYKVWKAUBFVWIEVXEUURLUUPXNVWQVYGVWSX
        MVUMBVWIVYHVCZCVWOVMULZRAVUMVYLCUYFUYTVWOUPUQZQZVMULZVYMVWMUYTVNVYNVLVU
        MVYLVYPRVWRUYTVWOVNUUQUUSBUYTVYNUYFCVPVWIVXCKUUTXOVUMVYOVWOCVMUYTVWOUYF
        VWNVRXIUVAXPUVBXQUYFUYGVVGUVCUVHVUBVVIUYRVWOFVXDUVDXRXSVUFVYEVYFXBZAVUM
        VYIVWPVUFVYQVYJWBOBVUBVVIUYRVWOFTUVEXOXLUVFUVGVYAVYCBVVNVWOUYGVVNURZVXQ
        VWFVXTVWCUYGVVNVWEUVIVYRVXSVWBOUYRVYRVXRVVOUYEUYGVVNVVJUVJUVKUVLUVMUVNU
        VRWTVUNVWHPTRVVRVXGUVSVUIPUVOUVPUVTVWDVWBVVRSZOUYRUFVWAVWBVVROUYRUVQVYS
        VVTOUYRUYEVVOVVRUWIXTYAYBVUNVVTVVCOUYRVUNUYLUYRRZSVVSVVBUYEVYTVUNUYLFVJ
        ZVVSVVBUJUYRVNRVYTWUAFUYRVYJWDUYLUYRFVXDUWAYGVUNWUASZVVOVVLUYIWPUEZUYIV
        VMWPUEZSZBUYLUIZVVRVVBWUAVVOWUFUJVUNWUAVVOUYGVVIQZVVNRZBUYLUIZWUFWUAUYL
        VVIUWBZVJZVVOWUIXBZWUJFUYLUBFVVHVVIUYFVVGXIVXPUWCUWDVVIUWEWUKWULUBFVVHU
        WFBUYLVVNVVIUWGYGUWHWUAWUHWUEBUYLWUABOUCZSZUYGFRZWUHWUEUJUYLFUYGUWJZWUO
        WUHUYIVVNRWUEWUOWUGUYIVVNUBUYGVVHUYIFVVIUBBXEUYFVVGUYHVVFUYGEXGXHVXPUYF
        UYHXIZXJXKUYIVVLVVMUWKUWLWKYCUWMXQWUBWUFVVRVVBWUBWUFSVVPVURVVQVVAWUBVVP
        WUFVURVUNVVPWUAWUFVURUJVUNVVPSZWUASZWUEVUQBUYLWUSWUMSWUDVUQWUCWURWUAWUM
        WUDVUQUJZWUNWURWUOWUTWUPWURWUOSZWUDVUQWVAWUDUYIPWPUEZVUQWVAVVMPUYIWPWUR
        VVMPURZWUOVUNVWHVVPWVCVXGVWHVVPSZVVMVUIVUIUWNZVGULZPWVDVVKWVEVUIVGVUIUW
        OXPVWHWVFPURVVPVWHVUIVXMUWPXNYDXRXNUWQVUNWUOWVBVUQXBZVVPAVUMWUOWVGVUFVY
        GWUOSZUYIPAWUOVUMUYITRAWUOSZUYTTUYFUYHWVIUYHVWIRUYTTUYHVLAFVWIUYGEVXEWN
        UYHTUYTWOWKWNXSZWVHUWRZYHYEYFYQYIYJYKUWTYCXSYLWUBVVQWUFVVAVUNVVQWUAWUFV
        VAUJVUNVVQSZWUASZWUEVUTBUYLWVMWUMSWUCVUTWUDWVLWUAWUMWUCVUTUJZWUNWVLWUOW
        VNWUPWVLWUOSZWUCVUTWVOWUCPUYIWPUEZVUTWVOVVLPUYIWPWVLVVLPURZWUOVUNVWHVVQ
        WVQVXGVWHVVQSZVVLVUIVUIVFULZPWVRVVKVUIVUIVFVUIUWSXPVWHWVSPURVVQVWHVUIVX
        MUXAXNYDXRXNUXBVUNWUOWVPVUTXBZVVQAVUMWUOWVTVUFWVHPUYIWVKWVJYHYEYFYQYIYJ
        YKUXCYCXSYLUXDUXEUXFYJUXGYMWTVVDUYQVAZOUYRUFVVEVVCWWAOUYRVVCUYEUYPVAZSW
        WAVVBWWBUYEUYKVAZBUYLUIZUAUYOUFUYMVAZUAUYOUFVVBWWBWWDWWEUAUYOUYKBUYLUXH
        XTWWDVURVVAUAUGUYNUGUXIUXJUXKZUGWWFUXLUYJUGURZWWCVUQBUYLWWGUYKVUPPUYIUY
        JUGYNYOYPUYJUYNURZWWCVUTBUYLWWHUYKVUSWWHUYKPUYIUYNUEVUSPUYIUYJUYNYNPUYI
        UGYRWUQUXMUXNYOYPUXOUYMUAUYOYSUXPUXQUYEUYPUYAYTXTUYQOUYRYSYTYBUXRYCVUGV
        WJVUHVXFUYTTVUCUXSWKUXTVULUYTVUDVUCVLVUEDUYTPVUCUYBUYTPVUCYRUYCYAYBYMUY
        D $.
    $}
    broucube.1 $e |- ( ph -> F e. ( ( R |`t I ) Cn ( R |`t I ) ) ) $.
    $( Brouwer - or as Kulpa calls it, "Bohl-Brouwer" - fixed point theorem for
       the unit cube.  Theorem on [Kulpa] p. 548.  (Contributed by Brendan
       Leahy, 21-Aug-2020.) $)
    broucube $p |- ( ph -> E. c e. I c = ( F ` c ) ) $=
      ( vx cfv co c1 cc0 wceq wcel wa cvv cr vz vn cv cmin cof cmpt cfz csn cxp
      wrex crest ccn wfn cicc cmap elmapfn eleq2s adantl wf ctopon wss cioo crn
      ctg ovex retopon pttoponconst mp2an reex unitssre mapss eqsstri resttopon
      toponunii cnf syl ffvelrnda ovexd inidm eqidd offval mpteq2dva ctop retop
      a1i fconst6 ccnfld ctopn eqid cnfldtop cnrest2r ax-mp cres resmpt mp3an12
      ptpjcn cnrest sylancl syl5eqelr fvex fvconst2 tgioo2 syl6eq oveq2d sseldi
      eleqtrd feqmptd eqeltrrd fveq1 wb elmapi adantll an32s cc ax-resscn mpbid
      w3a cle simpr2 weq id fveq2 oveq12d fvmpt adantlr ofval exp41 com24 3imp2
      simpllr eqtrd wbr cxr 0xr anasss 3adantr3 wral c0ex bitrd eqfnfv cnmpt12f
      adantr cbvmptv cnmpt11 ctx subcn resubcld cnfldtopon cnrest2 mp3an13 3syl
      fmptd frn eleqtrrd ptcn eqeltrd cneg fveq1d df-neg syl6eqr rexri le0neg2d
      1re iccgelb eqbrtrd iccleub subge0d mpbird breqtrrd poimir eqeq1d eqeq12d
      1red sstri subeq0ad ralbidva offn fnconstg syl2anc 3bitr4d rexbidva ) AFU
      CZKDKUCZUWCCLZUDUEZMZUFZLZNEUGMZOUHUIZPZFDUJUWBUWBCLZPZFDUJAUABUBUWGDEFGH
      IAUWGKDUBUWIUBUCZUWCLZUWNUWDLZUDMZUFZUFBDUKMZBULMAKDUWFUWRAUWCDQZRZUBUWIU
      WIUWOUWPUDUWIUWCUWDSSUWTUWCUWIUMZAUXBUWCONUNMZUWIUOMZDUWCUXCUWIUPHUQURUXA
      UWDDQZUWDUWIUMZADDUWCCACUWSUWSULMZQDDCUSJCUWSUWSDDDUWSBTUWIUOMZUTLQZDUXHV
      AZUWSDUTLQZUWISQZVBVCZVDLZTUTLQUXINEUGVEZVFUWIUXNBSTIVGVHZDUXDUXHHTSQUXCT
      VAUXDUXHVAVIVJUXCTUWISVKVHVLZDBUXHVMVHZVNZUXSVOVPZVQZUXFUWDUXDDUWDUXCUWIU
      PHUQVPUXANEUGVRZUYBUWIVSZUXAUWNUWIQZRZUWOVTUYEUWPVTWAWBAKUWQUBUWIUXNUHUIZ
      UWIUWSBSDIUXKAUXRWEANEUGVRUWIWCUYFUSZAUWIUXNWCWDWFZWEAUYDRZKDUWQUFZUWSWGW
      HLZTUKMZULMZUWSUWNUYFLZULMZUYIUYJUWSUYKULMZQZUYJUYMQZUYIKUWOUWPUDUWSUYKUY
      KUYKDUXKUYIUXRWEZUYDKDUWOUFZUYPQAUYDUYMUYPUYTUYKWCQUYMUYPVAUYKUYKWIZWJTUW
      SUYKWKWLUYDUYTUYOUYMUYDUYTKUXHUWOUFZDWMZUYOUXJVUCUYTPUXQKUXHDUWOWNWLUYDVU
      BBUYNULMQZUXJVUCUYOQUXLUYGUYDVUDUXOUYHKUWIUYFUWNBSUXHUXHBUXPVNZIWPWOUXQDV
      UBBUYNUXHVUEWQWRWSUYDUYNUYLUWSULUYDUYNUXNUYLUWIUXNUWNUXMVDWTXAUYKVUAXBXCX
      DZXFXEURZUYIKUAUWDUWNUAUCZLZUWPUWSUWSUYKDDUYSAKDUWDUFZUXGQUYDACVUJUXGAKDD
      CUXTXGJXHUUBUYSUYIUADVUIUFUYTUYPKUADUWOVUIUWNUWCVUHXIUUCVUGWSUWNVUHUWDXIU
      UDUDUYKUYKUUEMUYKULMQUYIUYKVUAUUFWEUUAUYIDTUYJUSUYJVCTVAZUYQUYRXJZUYIKDUW
      QTUYJAUWTUYDUWQTQUYEUWOUWPUWTUYDUWOTQAUWTUYDRUXCTUWOVJUWTUWIUXCUWNUWCUWIU
      XCUWCUSUWCUXDDUWCUXCUWIXKHUQVQXEXLUYEUXCTUWPVJUXAUWIUXCUWNUWDUXAUXEUWIUXC
      UWDUSZUYAVUMUWDUXDDUWDUXCUWIXKHUQVPVQXEUUGXMUYJWIUULDTUYJUUMUYKXNUTLQVUKT
      XNVAVULUYKVUAUUHXOTUYJUWSUYKXNUUIUUJUUKXPUYDUYOUYMPAVUFURUUNUUOUUPAUYDVUH
      DQZVUIOPZXQRZUWNVUHUWGLZLZUWNVUHCLZLZUUQZOXRVUPVURUWNVUHVUSUWEMZLZVVAVUPV
      UNVURVVCPZAUYDVUNVUOXSVUNUWNVUQVVBKVUHUWFVVBDUWGKUAXTZUWCVUHUWDVUSUWEVVEY
      AUWCVUHCYBYCUWGWIZVUHVUSUWEVEYDUURZVPAUYDVUNVUOVVCVVAPZAVUOVUNUYDVVHAVUOV
      UNUYDVVHAVUORZVUNRZUYDRZVVCOVUTUDMVVAVVJUWIUWIOVUTUDUWIVUHVUSSSUWNVUNVUHU
      WIUMZVVIVVLVUHUXDDVUHUXCUWIUPHUQZURAVUNVUSUWIUMZVUOAVUNRZVUSDQZVVNADDVUHC
      UXTVQZVVNVUSUXDDVUSUXCUWIUPHUQVPZYEVVJNEUGVRZVVSUYCAVUOVUNUYDYJVVKVUTVTYF
      VUTUUSUUTYGYHYIYKAUYDVUNVVAOXRYLZVUOAUYDVUNVVTAVUNUYDVVTVVOUYDRZOVUTXRYLZ
      VVTVWAVUTUXCQZVWBVVOUWIUXCUWNVUSVVOVVPUWIUXCVUSUSZVVQVWDVUSUXDDVUSUXCUWIX
      KHUQVPVQZOYMQZNYMQZVWCVWBYNNUVCUVAZONVUTUVDWOVPVWAVUTVWAUXCTVUTVJVWEXEZUV
      BXPXMYOYPUVEAUYDVUNVUINPZXQRZONVUTUDMZVURXRAUYDVUNOVWLXRYLZVWJAUYDVUNVWMA
      VUNUYDVWMVWAVWMVUTNXRYLZVWAVWCVWNVWEVWFVWGVWCVWNYNVWHONVUTUVFWOVPVWANVUTV
      WAUVMVWIUVGUVHXMYOYPVWKVURVVCVWLVWKVUNVVDAUYDVUNVWJXSVVGVPAUYDVUNVWJVVCVW
      LPZAVWJVUNUYDVWOAVWJVUNUYDVWOAVWJRZVUNRZUWIUWINVUTUDUWIVUHVUSSSUWNVUNVVLV
      WPVVMURAVUNVVNVWJVVRYEVWQNEUGVRZVWRUYCAVWJVUNUYDYJVWQUYDRVUTVTYFYGYHYIYKU
      VIUVJAUWKUWMFDAUWBDQZRZUWKUWBUWLUWEMZUWJPZUWMVWTUWHVXAUWJVWSUWHVXAPAKUWBU
      WFVXADUWGKFXTZUWCUWBUWDUWLUWEVXCYAUWCUWBCYBYCVVFUWBUWLUWEVEYDURUVKVWTUWNV
      XALZUWNUWJLZPZUBUWIYQZUWNUWBLZUWNUWLLZPZUBUWIYQZVXBUWMVWTVXFVXJUBUWIVWTUY
      DRZVXFVXHVXIUDMZOPVXJVXLVXDVXMVXEOVWTUWIUWIVXHVXIUDUWIUWBUWLSSUWNVWSUWBUW
      IUMZAVXNUWBUXDDUWBUXCUWIUPHUQURZVWTUWLDQZUWLUWIUMZADDUWBCUXTVQZVXQUWLUXDD
      UWLUXCUWIUPHUQVPZVWTNEUGVRZVXTUYCVXLVXHVTVXLVXIVTYFUYDVXEOPVWTUWIOUWNYRXA
      URUVLVXLVXHVXIVWSUYDVXHXNQAVWSUYDRUXCXNVXHUXCTXNVJXOUVNZVWSUWIUXCUWNUWBUW
      IUXCUWBUSUWBUXDDUWBUXCUWIXKHUQVQXEXLVXLUXCXNVXIVYAVWTUWIUXCUWNUWLVWTVXPUW
      IUXCUWLUSZVXRVYBUWLUXDDUWLUXCUWIXKHUQVPVQXEUVOYSUVPVWTVXAUWIUMUWJUWIUMZVX
      BVXGXJVWTUWIUWIUDUWIUWBUWLSSVXOVXSVXTVXTUYCUVQOSQVYCYRUWIOSUVRWLUBUWIVXAU
      WJYTWRVWTVXNVXQUWMVXKXJVXOVXSUBUWIUWBUWLYTUVSUVTYSUWAXP $.
  $}

  ${
    $d b c d f g p s w x y z ph $.  $d b c d f g p s w x y z C $.
    $d b c d f g p s w x y z D $.  $d b c d f g p s w x y z X $.
    $d b c d f g p s w x y z Y $.
    heicant.c $e |- ( ph -> C e. ( *Met ` X ) ) $.
    heicant.d $e |- ( ph -> D e. ( *Met ` Y ) ) $.
    heicant.j $e |- ( ph -> ( MetOpen ` C ) e. Comp ) $.
    heicant.x $e |- ( ph -> X =/= (/) ) $.
    heicant.y $e |- ( ph -> Y =/= (/) ) $.
    $( Heine-Cantor theorem: a continuous mapping between metric spaces whose
       domain is compact is uniformly continuous.  Theorem on [Rosenlicht]
       p. 80.  (Contributed by Brendan Leahy, 13-Aug-2018.)  (Proof shortened
       by AV, 27-Sep-2020.) $)
    heicant $p |- ( ph -> ( ( metUnif ` C ) uCn ( metUnif ` D ) ) =
      ( ( MetOpen ` C ) Cn ( MetOpen ` D ) ) ) $=
      ( vx co clt wbr wi wral crp wa wcel wceq vf vw vz vd vy vs vg vb vc cmetu
      vp cfv cmopn cv wf wrex breq2 imbi2d 2ralbidv rexbidv cbvralv c2 rphalfcl
      cdiv ralbidv rspcva cuni c1st c2nd cfn ad3antrrr cxmt cxr ad2antrr anim1i
      caddc rpxrd eqid 3expa syl2an adantr sylan2 ad4ant23 rpcn 2halvesd imbi1d
      cc0 oveq2 breq1d oveq2d imbi12d syl6bb adantll vex oveq12d oveq1d breq12d
      fveq2 fveq2d rspcev syl2anc eleq2 anbi12d ex rexlimdva imp syl crn simpll
      wb mpbid cr wss syl6ss adantl c0 wne simplr cen breqtrd sylan syl3anc nfv
      rnfi cle ad2ant2r xmetcl 3expb rexrd simpr ffvelrnda ffvelrn rpred xrltle
      mpd xmetge0 xrrege0 mpand syld cxad cucn ccn r19.12 sylbi cxp cbl wex cpw
      ralimi cin ccmp rpgt0d jca xblcntr cop opelxpi breq2d biimpar ovex op1std
      blopn op2ndd eqcomd bitr3d eqeq1 anbi1d syl12anc ralimdva mopnuni raleqdv
      biantrurd eqeq2d cmpcovf elinel2 cinf frn rnss rnxpss wfun fundmen ensymd
      cdm ffun fdm enfii 3syl eqtr eqnetrrd unieq syl6eq necon3i eqnetrd dm0rn0
      uni0 necon3bii sylib relxp relss mpisyl relrn0 necon3bid adantllr wor w3a
      wrel rpssre ltso fiinfcl mpan sseldd simpl eleq2d eluni2 biimpa nfan rspa
      sylanl1 nfra1 anim12i anandirs prth adantrl 0re rpge0 rgen ssralv sylancr
      breq1 wfn ffn fnfvelrn 2ndrn infrelb ne0i infrecl xrltletr mpan2d adantlr
      xp2nd ad6antr simpllr xp1st ad3antlr ad5antr elbl sylan9bbr biimpd simprd
      an32s impr simplrl an4s mp2and readdcld rpaddcld xmettri syl13anc lt2addd
      rexadd xrlelttrd ltaddrpd xrlttrd jctild anassrs simp-5r ffvelrnd adantrr
      anim12dan ad4antlr readdcl anandis ad6antlr xmetsym lt2add expcom syl2and
      rpxr eqtrd pm2.43d imim12d adantlrr exp32 expr rexlimd ralrimivva exlimdv
      expl expimpd syl5 mpdi ralrimiv r19.21v impbid2 ralcom pm5.32da xmetpsmet
      exp4b cpsmet metucn metcn 3bitr4d eqrdv ) AUABUJULZCUJULZUUALZBUMULZCUMUL
[encoded data, 8560 characters]
      YCVXGVRVWTXAVXAVXB $.
  $}

  ${
    $d n r s w x y z A $.
    $( Lemma for ~ ismblfin ; could also be used to shorten proof of
       ~ opnmbllem .  (Contributed by Brendan Leahy, 13-Jul-2018.) $)
    opnmbllem0 $p |- ( A e. ( topGen ` ran (,) ) -> U. ( [,] " { z e.
      ran ( x e. ZZ , y e. NN0 |-> <. ( x / ( 2 ^ y ) ) ,
        ( ( x + 1 ) / ( 2 ^ y ) ) >. ) | ( [,] ` z ) C_ A } ) = A ) $=
      ( vw vr cfv wcel cicc cv wss c2 co cdiv c1 caddc wa cr clt wbr vs vn cioo
      crn ctg cn0 cexp cop cmpt2 crab cima cuni cpw wral weq fveq2 sseq1d elrab
      cz simprr fvex elpw sylibr sylan2b ralrimiva wfun cdm wb cxr wf iccf ffun
      cxp ax-mp ssrab2 cle cin oveq1 oveq1d opeq12d oveq2 oveq2d cbvmpt2v dyadf
      frn inss2 rexpssxrxp sstri fdmi sseqtr4i funimass4 sspwuni cabs cmin ccom
      mp2an sylib cres cbl wrex cxmt eqid rexmet cmopn tgioo mopni2 mp3an1 wceq
      crp elssuni uniretop syl6sseqr sselda rpre bl2ioo syl2an cn 1lt2 expnlbnd
      2re mp3an23 ad2antrl cfl ad2antrr 2nn nnnn0 nnexpcl sylancr syl syl112anc
      cmul nnred mpbird nndivred syl2anc rexrd readdcld recnd ltadd2dd eqbrtrd
      remulcld fllelt simpld cc0 reflcl ledivmul2 peano2re ltmuldiv mpbid ltled
      nngt0d simprd w3a elicc2 mpbir3and flcld dyadval fveq2d df-ov syl6eqr wfn
      eleqtrrd fnovrn simplrl rpred resubcld 1cnd nnne0d divdird nnrecred lttrd
      ffn ltsubaddd leadd1dd lelttrd iccssioo syl22anc eqsstrd simplrr sylanbrc
      sstrd wi funfvima2 elunii rexlimddv expr sylbid rexlimdva mpd ssrdv eqssd
      ex ) DUCUDUEGZHZICJZIGZDKZCABUSUFAJZLBJZUGMZNMZUWROPMZUWTNMZUHZUIZUDZUJZU
      KZULZDUWNUXHDUMZKZUXIDKUWNEJZIGZUXJHZEUXGUNZUXKUWNUXNEUXGUXLUXGHUWNUXLUXF
      HZUXMDKZQZUXNUWQUXQCUXLUXFCEUOUWPUXMDUWOUXLIUPUQURUWNUXRQUXQUXNUWNUXPUXQU
      TUXMDUXLIVAVBVCVDVEIVFZUXGIVGZKZUXKUXOVHVIVIVMZVIUMZIVJUXSVKUYBUYCIVLVNZU
      XGUYBUXTUXGUXFUYBUWQCUXFVOUXFVPRRVMZVQZUYBUSUFVMZUYFUXEVJZUXFUYFKFUAUXEAB
      FUAUSUFUXDFJZLUAJZUGMZNMZUYIOPMZUYKNMZUHUYIUWTNMZUYMUWTNMZUHAFUOZUXAUYOUX
      CUYPUWRUYIUWTNVRUYQUXBUYMUWTNUWRUYIOPVRVSVTBUAUOZUYOUYLUYPUYNUYRUWTUYKUYI
      NUWSUYJLUGWAZWBUYRUWTUYKUYMNUYSWBVTWCZWDZUYGUYFUXEWEVNUYFUYEUYBVPUYEWFWGW
      HWHWHUYBUYCIVKWIWJZEUXGUXJIWKWPVCUXHDWLWQUWNEDUXIUWNUXLDHZUXLUXIHZUWNVUCQ
      ZUXLUYIWMWNWOUYEWRZWSGMZDKZFXIWTZVUDVUFRXAGHUWNVUCVUIVUFVUFXBZXCFDVUFUXLU
      WMRVUFVUFXDGZVUJVUKXBXEXFXGVUEVUHVUDFXIVUEUYIXIHZQZVUHUXLUYIWNMZUXLUYIPMZ
      UCMZDKZVUDVUMVUGVUPDVUEUXLRHZUYIRHVUGVUPXHVULUWNDRUXLUWNDUWMULRDUWMXJXKXL
      XMZUYIXNUXLUYIVUFVUJXOXPUQVUEVULVUQVUDVUEVULVUQQZQZOLUBJZUGMZNMZUYISTZVUD
      UBXQVULVVEUBXQWTZVUEVUQVULLRHOLSTVVFXTXRUYILUBXSYAYBVVAVVBXQHZVVEQZQZUXLU
      XLVVCYKMZYCGZVVBUXEMZIGZHVVMUXHHZVUDVVIUXLVVKVVCNMZVVKOPMZVVCNMZIMZVVMVVI
      UXLVVRHZVURVVOUXLVPTZUXLVVQVPTZVUEVURVUTVVHVUSYDZVVIVVTVVKVVJVPTZVVIVWCVV
      JVVPSTZVVIVVJRHZVWCVWDQVVIUXLVVCVWBVVIVVCVVILXQHVVBUFHZVVCXQHYEVVGVWFVVAV
      VEVVBYFYBZLVVBYGYHZYLZUUAZVVJUUBYIZUUCVVIVVKRHZVURVVCRHZUUDVVCSTZVVTVWCVH
      VVIVWEVWLVWJVVJUUEYIZVWBVWIVVIVVCVWHUUKZVVKUXLVVCUUFYJYMZVVIUXLVVQVWBVVIV
      VPVVCVVIVWLVVPRHZVWOVVKUUGYIZVWHYNZVVIVWDUXLVVQSTZVVIVWCVWDVWKUULVVIVURVW
      RVWMVWNVWDVXAVHVWBVWSVWIVWPUXLVVPVVCUUHYJUUIZUUJVVIVVORHVVQRHVVSVURVVTVWA
      UUMVHVVIVVKVVCVWOVWHYNZVWTVVOVVQUXLUUNYOUUOVVIVVMVVOVVQUHZIGVVRVVIVVLVXDI
      VVIVVKUSHZVWFVVLVXDXHVVIVVJVWJUUPZVWGFUAVVKVVBUXEUYTUUQYOUURVVOVVQIUUSUUT
      ZUVBVVIVVLUXGHZVVNVVIVVLUXFHZVVMDKZVXHVVIVXEVWFVXIVXFVWGUXEUYGUVAZVXEVWFV
      XIUYHVXKVUAUYGUYFUXEUVLVNUSUFVVKVVBUXEUVCXGYOVVIVVMVUPDVVIVVMVVRVUPVXGVVI
      VUNVIHVUOVIHVUNVVOSTZVVQVUOSTVVRVUPKVVIVUNVVIUXLUYIVWBVVIUYIVUEVULVUQVVHU
      VDUVEZUVFYPVVIVUOVVIUXLUYIVWBVXMYQZYPVVIVXLUXLVVOUYIPMZSTVVIUXLVVQVXOVWBV
      WTVVIVVOUYIVXCVXMYQVXBVVIVVQVVOVVDPMZVXOSVVIVVKOVVCVVIVVKVWOYRVVIUVGVVIVV
      CVWIYRVVIVVCVWHUVHUVIZVVIVVDUYIVVOVVIVVCVWHUVJZVXMVXCVVAVVGVVEUTZYSYTUVKV
      VIUXLUYIVVOVWBVXMVXCUVMYMVVIVVQUXLVVDPMZVUOVWTVVIUXLVVDVWBVXRYQVXNVVIVVQV
      XPVXTVPVXQVVIVVOUXLVVDVXCVWBVXRVWQUVNYTVVIVVDUYIUXLVXRVXMVWBVXSYSUVOVUNVU
      OVVOVVQUVPUVQUVRVUEVULVUQVVHUVSUWAUWQVXJCVVLUXFUWOVVLXHUWPVVMDUWOVVLIUPUQ
      URUVTUXSUYAVXHVVNUWBUYDVUBUXGVVLIUWCWPYIUXLVVMUXHUWDYOUWEUWFUWGUWHUWIUWLU
      WJUWK $.
  $}

  ${
    $d a b c f g m n p s t u v w x y z A $.
    $d a b c f g m n p s t u v w x y z B $.
    $( Lemma for ~ ismblfin , ordering the sets of dyadic intervals that are
       antichains under subset and whose unions are contained entirely in
       ` A ` .  (Contributed by Brendan Leahy, 13-Jul-2018.) $)
    mblfinlem1 $p |- ( ( A e. ( topGen ` ran (,) ) /\ A =/= (/) ) ->
      E. f f : NN -1-1-onto-> { a e. { b e. ran ( x e. ZZ , y e. NN0 |->
        <. ( x / ( 2 ^ y ) ) , ( ( x + 1 ) / ( 2 ^ y ) ) >. ) |
      ( [,] ` b ) C_ A } | A. c e. { b e. ran ( x e. ZZ , y e. NN0 |->
        <. ( x / ( 2 ^ y ) ) , ( ( x + 1 ) / ( 2 ^ y ) ) >. ) |
      ( [,] ` b ) C_ A } ( ( [,] ` a ) C_ ( [,] ` c ) -> a = c ) } ) $=
      ( vz vn cfv wcel wa cn cicc cz co wral wbr cr cq vu vv cioo crn ctg c0 cv
      wne wss weq wi cn0 c2 cexp cdiv c1 caddc cop cmpt2 crab cen wf1o wex cdom
      csdm wn cima cuni wceq cfn cle wrex clt peano2re ltp1 rspcev syl2anc rgen
      breq2 ltnle rexbidva rexnal syl6bb ralbiia ralnex bitri mpbi raleq mtbiri
      rexbidv cxp ssrab2 wf cc0 mpan syl jca w3a redivcl syl3an1 opelxpi syl2an
      3expb rgen2 fmpt2 frn ax-mp sstri adantl cxr iccf mp2an c1st c2nd 1st2nd2
      wb sseli fveq2d df-ov syl6eqr ad2antll xp2nd rexrd xp1st sylan2 ex adantr
      cvv uniretop a1i oveq1 opeq12d oveq2d com mpan2 sylibr qex qdivcl qnnen
      zq zre 2re reexpcl nn0z cc 2ne0 expne0i mp3an12 eqid rnss rnxpid syl6sseq
      2cn rnfi fimaxre2 sylancr wel eluni2 wfn cpw ffn rexpssxrxp rexima eleq2d
      eleq2 biimpd imdistani iccssxr ad2antrl simpllr iccleub 3expa wrel df-rel
      sylan xpss mpbir 2ndrn breq1 rspccva ad2ant2lr rexlimdvaa syl5bi ralrimiv
      xrletrd ad2antrr mpbid reximdva nsyl cconn retopconn simpll simplr simprl
      mpd ccld ciun wfun ffun funiunfv mp2b retop icccld eqeltrd iuncld mp3an13
      ctop syl5eqelr eqeltrrd connclo necon3ad pm2.61dane oveq1d oveq2 cbvmpt2v
      fveq2 sseq1d equequ1 imbi12d ralbidv cbvrabv dyadmbllem opnmbllem0 eqtr3d
      imp nnenom sdomentr isfinite anim12i xpex 2nn nnq qexpcl 1z qaddcl ssdomg
      mtand mp2 xpen xpnnen entri domentr jctil bren2 ensymd bren sylib ) CUCUD
      UEJZKZCUFUHZLZMEUGZNJZGUGNJZUIZEGUJZUKZGFUGNJCUIZFABOULAUGZUMBUGZUNPZUOPZ
      VUSUPUQPZVVAUOPZURZUSZUDZUTZQZEVVHUTZVARMVVJDUGVBDVCVUKVVJMVUKVVJMVDRZVVJ
      MVERZVFZLVVJMVARVUKVVMVVKVUKVVLNVVJVGZVHZCVIZVVJVJKZLZVUKVVRVFZCSCSVIZVVS
      VUKVVTHUGZIUGZVKRZHCQZISVLZVVRVVTVWEVWCHSQZISVLZVWBVWAVMRZHSVLZISQZVWGVFZ
      VWIISVWBSKZVWBUPUQPZSKVWBVWMVMRZVWIVWBVNVWBVOVWHVWNHVWMSVWAVWMVWBVMVSVPVQ
      VRVWJVWFVFZISQVWKVWIVWOISVWLVWIVWCVFZHSVLVWOVWLVWHVWPHSVWBVWAVTWAVWCHSWBW
      CWDVWFISWEWFWGVVTVWDVWFISVWCHCSWHWJWIVVRUAUGZVWBVKRZUAVVJUDZQZISVLZVWEVVQ
      VXAVVPVVQVWSSUIZVWSVJKVXAVVJSSWKZUIZVXBVVJVVHVXCVVIEVVHWLZVVHVVGVXCVURFVV
      GWLZOULWKZVXCVVFWMZVVGVXCUIVVEVXCKZBULQAOQVXHVXIABOULVUSOKZVUSSKZVVASKZVV
      AWNUHZLVXIVUTULKZVUSUUAVXNVXLVXMUMSKVXNVXLUUBUMVUTUUCWOVXNVUTOKZVXMVUTUUD
      UMUUEKUMWNUHVXOVXMUUMUUFUMVUTUUGUUHWPZWQVXKVXLVXMVXIVXKVXLVXMWRVVBSKVVDSK
      ZVXIVUSVVAWSVXKVVCSKVXLVXMVXQVUSVNVVCVVAWSWTVVBVVDSSXAVQXCXBXDABOULVVEVXC
      VVFVVFUUIZXEWGVXGVXCVVFXFXGXHXHZVXDVWSVXCUDSVVJVXCUUJSUUKUULXGVVJUUNIUAVW
      SUUOUUPXIVVPVXAVWEUKVVQVVPVWTVWDISVVPVWLLZVWTVWDVXTVWTLZVWCHVVOQZVWDVYAVW
      CHVVOVWAVVOKZVWAUBUGZNJZKZUBVVJVLZVYAVWCVYCHUAUUQZUAVVNVLZVYGUAVWAVVNUURN
      XJXJWKZUUSZVVJVYJUIVYIVYGXPVYJXJUUTZNWMZVYKXKVYJVYLNUVAXGVVJVXCVYJVXSUVBX
      HVYHVYFUAUBVYJVVJNVWQVYEVWAUVEUVCXLWFVYAVYFVWCUBVVJVYDVVJKZVYFLVYAVYNVWAV
      YDXMJZVYDXNJZNPZKZLZVWCVYNVYFVYRVYNVYFVYRVYNVYDVXCKZVYFVYRXPVVJVXCVYDVXSX
      QZVYTVYEVYQVWAVYTVYEVYOVYPURZNJVYQVYTVYDWUBNVYDSSXOXRVYOVYPNXSXTUVDWPUVFU
      VGVYAVYSLZVWAVYPVWBVYRVWAXJKVYAVYNVYQXJVWAVYOVYPUVHXQYAVYNVYPXJKZVYAVYRVY
      NVYTWUDWUAVYTVYPVYDSSYBYCZWPUVIWUCVWBVVPVWLVWTVYSUVJYCVYSVWAVYPVKRZVYAVYN
      VYOXJKZWUDLZVYRWUFVYNVYTWUHWUAVYTWUGWUDVYTVYOVYDSSYDYCWUEWQWPWUGWUDVYRWUF
      VYOVYPVWAUVKUVLUVOXIVWTVYNVYPVWBVKRZVXTVYRVYNVWTVYPVWSKZWUIVVJUVMZVYNWUJW
      UKVVJYHYHWKZUIVVJVXCWULVXSSSUVPXHVVJUVNUVQVYDVVJUVRWOVWRWUIUAVYPVWSVWQVYP
      VWBVKUVSUVTYEUWAUWEYEUWBUWCUWDVVPVYBVWDXPVWLVWTVWCHVVOCWHUWFUWGYFUWHYGUWO
      UWIXIVUKCSUHVVSVUKVVRCSVUKVVRVVTVUKVVRLZCVUHSYIVUHUWJKWUMUWKYJVUIVUJVVRUW
      LVUIVUJVVRUWMWUMVVOCVUHUWPJZVUKVVPVVQUWNVVQVVOWUNKVUKVVPVVQVVOHVVJVWANJZU
      WQZWUNVYMNUWRWUPVVOVIXKVYJVYLNUWSHVVJNUWTUXAVUHUXGKVVQWUOWUNKZHVVJQWUPWUN
      KUXBWUQHVVJVWAVVJKVWAVXCKZWUQVVJVXCVWAVXSXQWURWUOVWAXMJZVWAXNJZNPZWUNWURW
      UOWUSWUTURZNJWVAWURVWAWVBNVWASSXOXRWUSWUTNXSXTWURWUSSKWUTSKWVAWUNKVWASSYD
      VWASSYBWUSWUTUXCVQUXDWPVRHVVJWUOVUHSYIUXEUXFUXHYAUXIUXJYFUXKUYEUXLVUKVVPV
      VLVVQVUIVVPVUJVUINVVHVGVHVVOCVUIUAUBHGVVHVVFVVJABUAUBOULVVEVWQUMVYDUNPZUO
      PZVWQUPUQPZWVCUOPZURVWQVVAUOPZWVEVVAUOPZURAUAUJZVVBWVGVVDWVHVUSVWQVVAUOYK
      WVIVVCWVEVVAUOVUSVWQUPUQYKUXMYLBUBUJZWVGWVDWVHWVFWVJVVAWVCVWQUOVUTVYDUMUN
      UXNZYMWVJVVAWVCWVEUOWVKYMYLUXOVVIWUOVUNUIZHGUJZUKZGVVHQEHVVHEHUJZVUQWVNGV
      VHWVOVUOWVLVUPWVMWVOVUMWUOVUNVULVWANUXPUXQEHGUXRUXSUXTUYAVVHVVGUIVUIVXFYJ
      UYBABFCUYCUYDYGVVLVVJYNVERZVVQVVLMYNVARWVPUYFVVJMYNUYGYOVVJUYHYPUYIUYQVVJ
      TTWKZVDRZWVQMVARVVKWVQYHKVVJWVQUIWVRTTYQYQUYJVVJVVHWVQVXEVVHVVGWVQVXFVXGW
      VQVVFWMZVVGWVQUIVVEWVQKZBULQAOQWVSWVTABOULVXJVUSTKZVVATKZVXMLWVTVXNVUSYTV
      XNWWBVXMUMTKZVXNWWBUMMKWWCUYKUMUYLXGUMVUTUYMWOVXPWQWWAWWBVXMWVTWWAWWBVXMW
      RVVBTKVVDTKZWVTVUSVVAYRWWAVVCTKZWWBVXMWWDWWAUPTKZWWEUPOKWWFUYNUPYTXGVUSUP
      UYOYOVVCVVAYRWTVVBVVDTTXAVQXCXBXDABOULVVEWVQVVFVXRXEWGVXGWVQVVFXFXGXHXHVV
      JWVQYHUYPUYRWVQMMWKZMTMVARZWWHWVQWWGVARYSYSTMTMUYSXLUYTVUAVVJWVQMVUBXLVUC
      VVJMVUDYPVUEMVVJDVUFVUG $.

    $d a b c f g m n p s t u v w x y z M $.
    $( Lemma for ~ ismblfin , effectively one direction of the same fact for
       open sets, made necessary by Viaclovsky's slightly different defintion
       of outer measure.  Note that unlike the main theorem, this holds for
       sets of infinite measure.  (Contributed by Brendan Leahy, 21-Feb-2018.)
       (Revised by Brendan Leahy, 13-Jul-2018.) $)
    mblfinlem2 $p |- ( ( A e. ( topGen ` ran (,) ) /\ M e. RR /\
      M < ( vol* ` A ) ) -> E. s e. ( Clsd ` ( topGen ` ran (,) ) )
        ( s C_ A /\ M < ( vol* ` s ) ) ) $=
      ( vz vm cfv wcel cr wbr wss wa c0 wceq adantl cn cicc co c1 caddc cc0 crn
      va vc vb vx vy vf vn vu vv vp vt cioo covol clt w3a cv ax-mp fveq2 breq2d
      wrex sylancr wne weq wi cz cn0 cexp cdiv cop wral cfz ciun cabs cmin ccom
      c2 cseq cxr cuni cima syl oveq2d sseq1d imbi12d ralbidv a1i adantr eqtr4d
      eqeq1 eqtrd fveq2d wf cle cxp cin frn sstri sylancl wdisj ffvelrn syl2anc
      wo sseldi sylan elrab simprbi eqeq2 syl2anr syl2an eqeq1d eqid wb cc subf
      sylibr fco mp2an nnuz mpbid wfn cuz cun cif ffvelrnda opelxpi df-ov eqtri
      1z 0re orbi2d eqidd elfznn sylan2 adantlr cvv adantlll ltletrd ralrimiva
      wn ctg ccld ctop retop 0cld simpl3 breqtrd 0ss jctil sseq1 anbi12d rspcev
      cmpt2 crab wf1o wex mblfinlem1 3ad2antl1 csup wfo f1ofo rnco2 forn syl5eq
      imaeq2d unieqd oveq1 opeq12d oveq2 cbvmpt2v cbvrabv dyadmbllem opnmbllem0
      oveq1d ssrab2 3ad2ant1 f1of dyadf fss w3o adantrr adantrl dyaddisj df-3or
      sylib elrabi sseq2d rspcva eqcom syl6ib anandis wf1 f1of1 f1veqaeq orim1d
      jaod syld ralrimivva ineq1d orbi12d cbvralv ineq2d ralbii disjor 3bitr4ri
      mpd uniiccvol eqtr3d absf zre 2re reexpcl mpan 2ne0 nn0z expne0i mp3an12i
      2cn jca redivcl peano2re syl3an1 opelxpd 3expb rgen2 fmpt2 mpbi ax-resscn
      xpss12 mpan2 serfre ressxr syl6ss 4syl rexr 3ad2ant2 supxrlub seqfn mpbir
      fneq2i breq2 rexrn cmpt 0le0 df-br elin mpbir2an ifcl fmptd eqtr3i ineq1i
      iooid 0in olci ineq1 ifboth ineq2i ineq2 disjeq2 eleq1 ifbieq1d fvex opex
      in0 ifex fvmpt fvif syl6eq mprg bitri rexpssxrxp 0xr feqmptd fmptco rneqd
      cpw peano2nn syl6eleq fzouzsplit nnz fzval3 uneq1d iuneq12d dfiun3 iunxun
      iccf cfzo 3eqtr3g iftrue iuneq2i uznfz nncn ax-1cn eleq2d notbid iffalsed
      pncan iuneq2dv uneq12d sylan9eq wor xrltso elnnuz readdcl seqcl sylan9eqr
      biimpi rexrd fvmptd fnmpti ffn 3eqtr4d seqfveq 0cn ffnd fnfvelrn eqeltrrd
      fvco2 sselda recn addass syl3an nnltp1le biimpa nnzd eluz mpbird ad3antlr
      simplll seqsplit ad2antrr csn elfzelz 0red nnred ad3antrrr nngt0d elfzle1
      zred elnnz sylanbrc nnre ltp1d ltnled breq1 equcoms sylan9bb elfzle2 nsyl
      ad4ant14 fvco3 0m0e0 fveq2i abs0 c0ex fvconst2 ser0 oveq12d recnd addid1d
      elfzuz ad5ant15 leidd eqbrtrd ad2antlr simpr simplr elfz mp3an2 mpbir2and
      letrd ad5ant2345 eqeltrd biimpar absge0d breqtrrd sermono ltlecasei ralrn
      syldan r19.21bi lensymd supmax 3eqtr3rd c1st c2nd 1st2nd2 syl6eqr iccssre
      xp1st xp2nd eqsstrd iunss uzid ne0i iunconst iccid snssi ovolsn ovolunnul
      syl6eqss syl3anc biimpd reximdva cfn fzfi icccld uniretop iuncld syl12anc
      3syl simprr adantll rexlimddv exlimddv pm2.61dane ) AUMUAUUAFZGZBHGZBAUNF
[encoded data, 11840 characters]
      WUAWYEXVKBUOWYCXVJUNUSUTUUKUULWXJXEWXMWXNYOWXOWXP $.

    $( The difference between two sets measurable by the criterion in
       ~ ismblfin is itself measurable by the same.  Corollary 0.3 of
       [Viaclovsky7] p. 3.  (Contributed by Brendan Leahy, 25-Mar-2018.)
       (Revised by Brendan Leahy, 13-Jul-2018.) $)
    mblfinlem3 $p |- ( ( ( A C_ RR /\ ( vol* ` A ) e. RR ) /\
      ( B C_ RR /\ ( vol* ` B ) e. RR ) /\
        ( ( vol* ` A ) = sup ( { y | E. b e. ( Clsd ` ( topGen ` ran (,) ) )
      ( b C_ A /\ y = ( vol ` b ) ) } , RR , < ) /\
        ( vol* ` B ) = sup ( { y | E. b e. ( Clsd ` ( topGen ` ran (,) ) )
      ( b C_ B /\ y = ( vol ` b ) ) } , RR , < ) ) ) -> sup ( { y |
        E. b e. ( Clsd ` ( topGen ` ran (,) ) ) ( b C_ ( A \ B ) /\
      y = ( vol ` b ) ) } , RR , < ) = ( vol* ` ( A \ B ) ) ) $=
      ( vv cr wss covol cfv wcel wa wceq wrex clt wbr cle syl co adantr c0 cvol
      vu vs vw vz vx vf cv cioo crn cab csup w3a cdif a1i difss ovolsscl mp3an1
      wn weq eqeq1 anbi2d rexbidv simprl ssdifss ovolss syl2anr wb cxr uniretop
      cldss ovolcl adantrr sylib opnmbl difmbl eqeltrrd mblvol sylan9eqr breq2d
      sylancr adantl mpbid rexlimdvaa imp adantlr wi c3 crp cc0 ancoms cn ax-mp
      cmin sylancl sylan ltsubrpd simpr breqtrd wne wral cvv reex sseq1 anbi12d
      fveq2 3expb sylan2 eqeltrd wex retop rspcev mp2an breq2 resubcld rexab ex
      syl2anc ad2antlr ccom caddc c1 sstri ad5antr inss1 readdcld jctil mp3an12
      ad2antrr ad3antrrr sseqin2 eqcomd fveq2d mblsplit recnd cc mpbird cmul c2
      cin ctg ccld wor ltso 3ad2ant1 vex elab xrlenlt id cdm dfss4 rembl cldopn
      notbid adantrl bitr4d sylan2b 3ad2antl1 cdiv simplr resubcl posdif biimpd
      impr elrpd 3nn nnrp rpdivcl ssex eleq1d sseq2 anbi1d abbidv sseq1d neeq1d
      raleqdv 3anbi123d imbi12d abssdv ctop 0cld 0ss ovol0 eqtr2i pm3.2i eqeq2d
      0mbl c0ex spcev abn0 biimpri mp1i wal eqbrtrd alrimiv sylibr ralbidv 3jca
      ralab vtoclg mpcom suprlub ad2antll expr sylbid rexlimiva exlimiv simplrr
      rpred sylbi anim12d reeanv syl6ibr cuni cxp cmap cabs cseq ovolgelb 3expa
      eqid an32s wf elmapi ssid ovollb mpan2 cpnf ovolsf icossxr syl6ss supxrcl
      cico frn 3syl readdcl rexrd rncoss unissi unirnioo sseqtr4i xrletr anim2d
      mpand reximdva mpd rexex indif2 biimpi difeq1d syl5eq ctb retopbas uniopn
      df-ss bastg opncld incld simprll simplll ssdif2d eqcoms biantrud adantlll
      bitr3d simpl ad4antlr difdif2 fveq2i ovolge0 xrrege0 syl2an unss sylanblc
      cun unssi ad4antr jca ovolun syl22anc ssdif incom simprrl syl5eqss unss12
      eqtri ad6antr syl21anc letrd eleq1 vtoclga oveq2d adantll simp-6r subaddd
      sylan9eq eqtrd simp-4l simprlr ltsub23d eqbrtrrd ad5antlr simp-4r npncand
      simpll simplrl sylan9ssr eqtr4d 3eqtrd ad3antlr simprr lesubadd2d simprrr
      leltaddd lt2addd df-3 ax-1cn addcomi oveq1i rpcnd mulid2d 2timesd oveq12d
      2cn adddir 3ne0 divcan2 mp3an23 eqtr3d lelttrd syl5eqbr ltsub13d subadd2d
      3eqtr4rd breqtrrd fvex rexlimdvva exlimddv syld exp31 com34 3imp1 eqsupd
      3cn ) BFGZBHIZFJZKZCFGZCHIZFJZKZWUFDUHZBGZAUHZWUMUAIZLZKZDUIUJZUUAIZUUBIZ
[encoded data, 9840 characters]
      PXQVYQVYRVYSVYTWUAWUBWUC $.

    $( Backward direction of ~ ismblfin .  (Contributed by Brendan Leahy,
       28-Mar-2018.)  (Revised by Brendan Leahy, 13-Jul-2018.) $)
    mblfinlem4 $p |- ( ( ( A C_ RR /\ ( vol* ` A ) e. RR ) /\ A e. dom vol ) ->
      ( vol* ` A ) = sup ( { y | E. b e. ( Clsd ` ( topGen ` ran (,) ) )
        ( b C_ A /\ y = ( vol ` b ) ) } , RR , < ) ) $=
      ( cr wss covol cfv wcel wa wceq wrex clt wbr cle cxr cdif caddc co adantr
      syl vu vv vf vg vs cvol cv cioo crn wn wi weq eqeq1 anbi2d rexbidv simprl
      csup ovolss wb ovolcl adantl syl2anc ancoms sylan2 simprrr uniretop cldss
      sylib opnmbl difmbl eqeltrrd mblvol ad2antrl ad2antrr wex ccom cuni c1 cn
      cin cmin cseq crp eqid ovolgelb wf elmapi ssid ovollb cc0 cpnf ovolsf frn
      mpan2 syl6ss supxrcl rexrd rncoss unissi unirnioo sseqtr4i xrletr syl2anr
      ax-mp mp3an1 mpand adantll anim2d reximdva mpd rexex difss sstri ad4antlr
      3syl jctil mp2an mp3an12 ovolge0 xrrege0 adantrr readdcld ad3antlr syl2an
      impr sylan resubcld retop ctb uniopn ovolsscl ad5antr inss1 mp3an2 eqcomd
      mblsplit recnd mpbird sseqin2 fveq2d cdm ctg ccld cab wor ltso a1i simplr
      vex elab xrlenlt mpbid dfss4 rembl cldopn sylancr eqtrd breq2d rexlimdvaa
      sstr mtbird syl5bi imp cxp cmap cabs mp3an3 cico icossxr peano2re c2 cdiv
      1rp mpani resubcl posdif elrpd rphalfcld rehalfcld jctl ltsubrpd retopbas
      biimpd ctop bastg mblfinlem2 indif2 df-ss syl5eq opncld incld simpr simpl
      difeq1d ssdif2d dfin4 inss2 eqsstr3i anbi1d eqcoms biantrud bitr4d rspcev
      sseq1 fveq2 an12s adantrrr adantlr simp-6r difdif2 fveq2i unssi ad3antrrr
      cun ssdifss ssinss1 ovolun syl22anc ssdif sylancl eleq1 vtoclga cc biimpi
      subaddd oveq2d ad2antll eqtr3d breqtrd lelttrd ad4antr ssun2 incom pm3.2i
      ltsub23d 3sstr4i mp1i mpan oveq1d eqtr2d simprr lesubadd2d eqbrtrrd letrd
      ltleaddd 2halvesd ad2ant2r syl5eqbr ltsub13d ad2ant2rl simp-4l 3expb recn
      eqtr4d subadd2d breqtrrd fvex breq2 spcev rexlimddv exlimddv rexab sylibr
      anbi12d eqsupd ) BDEZBFGZDHZIZBUFUUAZHZIZCUGZBEZAUGZVVMUFGZJZIZCUHUIZUUBG
[encoded data, 6400 characters]
      AUBULZVVRVXPCVWAXYTVVQVXOVVNVVOVXNVVPUMUNUOVVBVVCVVEYO $.

    $( Measurability in terms of inner and outer measure.  Proposition 7 of
       [Viaclovsky8] p. 3.  (Contributed by Brendan Leahy, 4-Mar-2018.)
       (Revised by Brendan Leahy, 28-Mar-2018.) $)
    ismblfin $p |- ( ( A C_ RR /\ ( vol* ` A ) e. RR ) -> ( A e. dom vol <->
        ( vol* ` A ) = sup ( { y | E. b e. ( Clsd ` ( topGen ` ran (,) ) )
          ( b C_ A /\ y = ( vol ` b ) ) } , RR , < ) ) ) $=
      ( vv vu va vz vc cr wss cfv wcel wa wceq wrex clt cle wbr cc0 c0 vw vf vx
      vt covol cvol cv cioo crn cab csup cin cdif caddc co wi wral ccom cuni cn
      cxr wf inss1 ovolsscl mp3an1 difss readdcld ad3antlr ovolcl mp1i ad2antlr
      cpnf eqid syl ad2antrr simpr breqtrrd adantlll wn wb ax-mp eleq1 uniretop
      cldss sylib sylancr vtoclga mblvol sylan9eqr adantl mpan2 ad2antrl mp3an2
      ancoms sylan2 eqeltrd rexlimdvaa abssdv eqeq1 anbi2d rexbidv ralab ovolss
      wne sylancl eqbrtrd rexlimiva mpgbir breq2 ralbidv rspcev retop 0ss sseq1
      pm3.2i fveq2 eqeq2d anbi12d mp2an c0ex mpbir ne0ii suprcl syl2anc mp3an12
      elab sstri simpll abbii supeq1i a1i id vex adantr mpbid wex cbvrexv sylan
      ctb ex cdm ctg ccld mblfinlem4 cpw elpwi cabs cmin c1 cseq cmap crab cinf
      cxp elmapi rncoss unissi unirnioo sseqtr4i cico ovolsf frn icossxr syl6ss
      rexrd supxrcl 3syl pnfge nltpnft necon2abii ovolge0 0re xrre3 mpan sylbir
      mpanl12 dfss4 rembl cldopn opnmbl difmbl sstr ctop 0cld 0mbl ovol0 eqtr2i
      eqeltrrd difss2 ssrin le2addd fveq2i oveq1i syl6breq sseq2i anbi1i rexbii
      ssdif dfin4 jctl jctil wor ltso xrlenlt notbid adantrl bitr4d sylbi bastg
      retopbas uniopn mblfinlem2 eqcomd anim1i anim2d fvex spcev anasss reximia
      syl6 r19.41v exbii rexcom4 3bitr4i eqsupd syl6eq syl6bb cbvabv mblfinlem3
      rexab eqeq2i biimpi syl112anc syl5reqr syl5eq oveq12d ne0i supadd anbi12i
      wal reeanv bitr4i an4 cun oveq12 ss2in ineq1i disjdif 3eqtri syl6sseq ss0
      incom jctir 3expa ad2ant2r ad2ant2rl volun syl32anc syl2an eqtr3d anim12i
      unmbl eqtr unss expl syl5bir rexlimdvva rexlimdvv alrimiv 2rexbidv sylibr
      sselda readdcl anandis 00id eqcomi rspceov mp3an abn0 mpdan 3jca suprleub
      w3a mpancom mpbird letrd pm2.61dane adantlr ssid ovollb xrletrd rexlimdva
      ralrimivw ralrab ssrab2 infxrgelb ovolval ralrimiva ismbl2 baibr impbida
      expr ) BIJZBUEKZILZMZBUFUUAZLZVXDCUGZBJZAUGZVXIUFKZNZMZCUHUIZUUBKZUUCKZOZ
[encoded data, 7840 characters]
      HVTVXEVYAVXHVXCVYNUABVWSVWTVOYOVXA $.
  $}

  ${
    $d f n m l x A $.
    ${
      ovoliunnfl.0 $e |- ( ( f Fn NN /\
          A. n e. NN ( ( f ` n ) C_ RR /\ ( vol* ` ( f ` n ) ) e. RR ) ) ->
            ( vol* ` U_ m e. NN ( f ` m ) ) <_
          sup ( ran seq 1 ( + , ( m e. NN |-> ( vol* ` ( f ` m ) ) ) ) ,
            RR* , < ) ) $.
      $( ~ ovoliun is incompatible with the Feferman-Levy model.  (Contributed
         by Brendan Leahy, 21-Nov-2017.) $)
      ovoliunnfl $p |- ( ( A ~<_ NN /\ A. x e. A x ~<_ NN ) -> U. A =/= RR ) $=
        ( vl cn wbr wral wa cr cc0 covol cfv wceq c0 wcel c1 cxr cdom cv wss wi
        cuni wne unieq syl6eq fveq2d ovol0 syl6req a1d cle ovolge0 ad2antll wfo
        uni0 wex csdm wb reldom brrelexi 0sdomg biimparc fodomr sylancom unissb
        cvv syl anbi1i r19.26 bitr4i cfn cen wo brdom2 com nnenom sdomen2 ax-mp
        isfinite orbi1i bitri ovolfi expcom ovolctb jaod syl5bi imdistani sylbi
        ex ralimi ancoms cima foima raleqdv wfn fofn sseq1 fveq2 eqeq1d anbi12d
        ssid ralima sylancl bitr3d ciun caddc cmpt cseq crn clt csup weq sseq1d
        cbvralv 0re eleq1a anim2i syl2an wfun fofun unieqd eqtrd adantr rspccva
        funiunfv simprd mpteq2dva seqeq3d rneqd supeq1d csn cxp fconstmpt eqtri
        cmul co 0xr cpnf cc 0cn ser1const mpan mul01d mpteq2ia seqeq3 cuz cz 1z
        nncn seqfn nnuz fneq2i dffn5 bitr3i mpbi eqtr3i 3eqtr4i rneqi ne0i rnxp
        1nn supeq1i wor xrltso supsn mp2an adantl 3brtr3d sylbid exlimiv ovolcl
        mp2b imp xrletri3 sylancr mpbir2and expl pm2.61ine mp1i ovolre neeqtrrd
        renepnf necon2i expr eqimss necon3bi pm2.61d1 ) BHUAIZAUBZHUAIZABJZKBUE
        ZLUCZUWNLUFZUWJUWMUWOUWPUWJUWMUWOKZKZMUWNNOZPZUWPUWRUWTUDBQBQPZUWTUWRUX
        AUWSQNOMUXAUWNQNUXAUWNQUEQBQUGUQUHUIUJUKULBQUFZUWJUWQUWTUXBUWJKZUWQKUWT
        MUWSUMIZUWSMUMIZUWOUXDUXCUWMUWNUNUOUXCHBCUBZUPZCURZUWKLUCZUWKNOZMPZKZAB
        JZUXEUWQUXBUWJQBUSIZUXHUWJUXNUXBUWJBVHRUXNUXBUTBHUAVAVBBVHVCVIVDHBCVEVF
        UWOUWMUXMUWOUWMKZUXIUWLKZABJZUXMUXOUXIABJZUWMKUXQUWOUXRUWMABLVGVJUXIUWL
        ABVKVLUXPUXLABUXIUWLUXKUWLUWKVMRZUWKHVNIZVOZUXIUXKUWLUWKHUSIZUXTVOUYAUW
        KHVPUYBUXSUXTUYBUWKVQUSIZUXSHVQVNIUYBUYCUTVRHVQUWKVSVTUWKWAVLWBWCUXIUXS
        UXKUXTUXSUXIUXKUWKWDWEUXIUXTUXKUWKWFWKWGWHWIWLWJWMUXHUXMUXEUXGUXMUXEUDC
        UXGUXMGUBZUXFOZLUCZUYENOZMPZKZGHJZUXEUXGUXLAUXFHWNZJZUXMUYJUXGUXLAUYKBH
        BUXFWOZWPUXGUXFHWQZHHUCUYLUYJUTHBUXFWRZHXCUXLUYIAGHHUXFUWKUYEPZUXIUYFUX
        KUYHUWKUYELWSUYPUXJUYGMUWKUYENWTXAXBXDXEXFUXGUYJUXEUXGUYJKDHDUBZUXFOZXG
        ZNOZXHDHUYRNOZXIZSXJZXKZTXLXMZUWSMUMUXGUYNEUBZUXFOZLUCZVUGNOZLRZKZEHJZU
        YTVUEUMIUYJUYOUYJVUHVUIMPZKZEHJVULUYIVUNGEHGEXNZUYFVUHUYHVUMVUOUYEVUGLU
        YDVUFUXFWTZXOVUOUYGVUIMVUOUYEVUGNVUPUIXAXBXPVUNVUKEHVUMVUJVUHMLRZVUMVUJ
        UDXQMLVUIXRVTXSWLWJFXTUXGUYTUWSPUYJUXGUYSUWNNUXGUYSUYKUEZUWNUXGUXFYAUYS
        VURPHBUXFYBDHUXFYGVIUXGUYKBUYMYCYDUIYEUYJVUEMPUXGUYJVUEXHDHMXIZSXJZXKZT
        XLXMZMUYJTVUDVVAXLUYJVUCVUTUYJVUBVUSXHSUYJDHVUAMUYJUYQHRKUYRLUCZVUAMPZU
        YIVVCVVDKGUYQHGDXNZUYFVVCUYHVVDVVEUYEUYRLUYDUYQUXFWTZXOVVEUYGVUAMVVEUYE
        UYRNVVFUIXAXBYFYHYIYJYKYLVVBMYMZTXLXMZMTVVAVVGXLVVAHVVGYNZXKZVVGVUTVVIG
        HUYDXHVVISXJZOZXIZGHMXIVUTVVIGHVVLMUYDHRZVVLUYDMYQYRZMMUUARVVNVVLVVOPUU
        BMUYDUUCUUDVVNUYDUYDUUKUUEYDUUFVVKVUTVVMVVIVUSPVVKVUTPDHMYOXHVVIVUSSUUG
        VTVVKSUUHOZWQZVVKVVMPZSUUIRVVQUUJXHVVISUULVTVVQVVKHWQVVRHVVPVVKUUMUUNGH
        VVKUUOUUPUUQUURGHMYOUUSUUTSHRHQUFVVJVVGPUVCHSUVAHVVGUVBUVNYPUVDTXLUVEMT
        RZVVHMPUVFYSTMXLUVGUVHYPUHUVIUVJWKUVKUVLUVOXTUWOUWTUXDUXEKUTZUXCUWMUWOV
        VSUWSTRVVTYSUWNUVMMUWSUVPUVQUOUVRUVSUVTUWNLMUWSUWNLPZMYTUWSVUQMYTUFVWAX
        QMUWDUWAVWAUWSLNOYTUWNLNWTUWBUHUWCUWEVIUWFUWOUWNLUWNLUWGUWHUWI $.
    $}

    $( Demonstration of ~ ovoliunnfl .  (Contributed by Brendan Leahy,
       21-Nov-2017.) $)
    ex-ovoliunnfl $p |- ( ( A ~<_ NN /\ A. x e. A x ~<_ NN ) -> U. A =/= RR )
        $=
      ( vf vm vn cv cn wfn cfv cr covol wcel wa wral caddc cmpt c1 eqid adantll
      wss cseq fveq2 sseq1d fveq2d eleq1d anbi12d rspccva simpld simprd ovoliun
      weq ovoliunnfl ) ABCDECFZGHZEFZUMIZJTZUPKIZJLZMZEGNZMDFZUMIZODGVCKIZPZQUA
      ZDVEVFRVERVAVBGLZVCJTZUNVAVGMZVHVDJLZUTVHVJMEVBGEDUKZUQVHUSVJVKUPVCJUOVBU
      MUBZUCVKURVDJVKUPVCKVLUDUEUFUGZUHSVAVGVJUNVIVHVJVMUISUJUL $.
  $}

  ${
    $d f g m n l x A $.
    voliunnfl.1 $e |- S = seq 1 ( + , G ) $.
    voliunnfl.2 $e |- G = ( n e. NN |-> ( vol ` ( f ` n ) ) ) $.
    voliunnfl.3 $e |- ( ( A. n e. NN ( ( f ` n ) e. dom vol /\
      ( vol ` ( f ` n ) ) e. RR ) /\ Disj_ n e. NN ( f ` n ) ) ->
        ( vol ` U_ n e. NN ( f ` n ) ) = sup ( ran S , RR* , < ) ) $.
    $( ~ voliun is incompatible with the Feferman-Levy model; in that model,
       therefore, the Lebesgue measure as we've defined it isn't actually a
       measure.  (Contributed by Brendan Leahy, 16-Dec-2017.) $)
    voliunnfl $p |- ( ( A ~<_ NN /\ A. x e. A x ~<_ NN ) -> U. A =/= RR ) $=
      ( vm cn wa cr cc0 cvol cfv wceq wcel c1 cxr vg cdom wbr wral cuni wss wne
      vl cv wi unieq uni0 syl6eq fveq2d covol cdm 0mbl mblvol ax-mp ovol0 eqtri
      c0 syl6req a1d wfo wex csdm cvv wb reldom brrelexi 0sdomg biimparc fodomr
      syl sylancom unissb anbi1i r19.26 bitr4i ovolctb2 imdistani ralimi ancoms
      sylbi cima foima raleqdv wfn fofn ssid sseq1 fveq2 eqeq1d anbi12d sylancl
      ex ralima bitr3d cfzo co ciun cdif caddc cmpt cseq crn clt csup ovolssnul
      wdisj difss mp3an1 ssdifss nulmbl biimpar 0re syl6eqel expcom ancld sylan
      adantl mpd syldan weq oveq2 iuneq1d difeq12d eleq1d adantr seqeq3 supeq1i
      rneqi seqeq3d rneqd supeq1d mpteq2ia eqtrd fconstmpt cpnf eqid fvex fvmpt
      difexg ralbiia cbvralv bitri iundisj2 disjeq2 mprg mpbir nnex mptex fveq1
      sylibr ralbidv disjeq2dv iuneq2d mpteq2dv eqeq12d imbi12d iuneq2i 3eqtr3g
      syl5eq vtocl fveq2i iundisj wfun fofun funiunfv syl5eqr unieqd sseq1d jca
      rspccva 3syl mpteq2dva csn cxp cmul cc 0cn ser1const mpan nncn mul01d cuz
      cz 1z seqfn nnuz fneq2i bitr3i mpbi eqtr3i 3eqtr4i 1nn ne0i rnxp mp2b wor
      dffn5 xrltso 0xr supsn mp2an 3eqtr3rd sylbid syl5 exlimiv expimpd renepnf
      pm2.61ine mp1i rembl ovolre neeqtrrd necon2i eqimss necon3bi pm2.61d1
      expr ) BKUBUCZAUIZKUBUCZABUDZLBUEZMUFZUYGMUGZUYCUYFUYHUYIUYCUYFUYHLZLZNUY
      GOPZQZUYIUYKUYMUJBVBBVBQZUYMUYKUYNUYLVBOPZNUYNUYGVBOUYNUYGVBUEVBBVBUKULUM
      UNUYOVBUOPZNVBOUPZRUYOUYPQUQVBURUSUTVAVCVDBVBUGZUYCUYJUYMUYRUYCLKBUAUIZVE
      ZUAVFZUYJUYMUJZUYRUYCVBBVGUCZVUAUYCVUCUYRUYCBVHRVUCUYRVIBKUBVJVKBVHVLVOVM
      KBUAVNVPUYTVUBUAUYJUYDMUFZUYDUOPZNQZLZABUDZUYTUYMUYHUYFVUHUYHUYFLZVUDUYEL
      ZABUDZVUHVUIVUDABUDZUYFLVUKUYHVULUYFABMVQVRVUDUYEABVSVTVUJVUGABVUDUYEVUFV
      UDUYEVUFUYDWAWQWBWCWEWDUYTVUHJUIZUYSPZMUFZVUNUOPZNQZLZJKUDZUYMUYTVUGAUYSK
      WFZUDZVUHVUSUYTVUGAVUTBKBUYSWGZWHUYTUYSKWIKKUFVVAVUSVIKBUYSWJKWKVUGVURAJK
      KUYSUYDVUNQZVUDVUOVUFVUQUYDVUNMWLVVCVUEVUPNUYDVUNUOWMWNWOWRWPWSUYTVUSUYMU
      YTVUSLEKEUIZUYSPZUHSVVDWTXAZUHUIZUYSPZXBZXCZXBZOPZXDEKVVJOPZXEZSXFZXGZTXH
      XIZUYLNVUSVVLVVQQZUYTVUSVVDJKVUNUHSVUMWTXAZVVHXBZXCZXEZPZUYQRZVWCOPZMRZLZ
      EKUDZEKVWCXKZVVRVUSVWAUYQRZVWAOPZMRZLZJKUDZVWHVURVWMJKVUOVUQVWAUOPZNQZVWM
      VWAVUNUFVUOVUQVWPVUNVVTXLVWAVUNXJXMVUOVWAMUFZVWPVWMVUNMVVTXNVWQVWPLVWJVWM
      VWAXOVWPVWJVWMUJVWQVWPVWJVWLVWJVWPVWLVWJVWPLVWKNMVWJVWKNQVWPVWJVWKVWONVWA
      URWNXPXQXRXSXTYBYCYAYDWCVWHVVJUYQRZVVMMRZLZEKUDVWNVWGVWTEKVVDKRZVWDVWRVWF
      VWSVXAVWCVVJUYQJVVDVWAVVJKVWBJEYEZVUNVVEVVTVVIVUMVVDUYSWMZVXBUHVVSVVFVVHV
      UMVVDSWTYFYGYHVWBUUAVVEVHRVVJVHRVVDUYSUUBVVEVVIVHUUDUSUUCZYIVXAVWEVVMMVXA
      VWCVVJOVXDUNZYIWOUUEVWTVWMEJKEJYEZVWRVWJVWSVWLVXFVVJVWAUYQVXFVVEVUNVVIVVT
      VVDVUMUYSWMVXFUHVVFVVSVVHVVDVUMSWTYFYGYHZYIVXFVVMVWKMVXFVVJVWAOVXGUNYIWOU
      UFUUGUUOVWIEKVVJXKZVVEVVHUHEVVDVVGUYSWMZUUHVWCVVJQVWIVXHVIEKEKVWCVVJUUIVX
      DUUJUUKVWHVWILZEKVWCXBZOPZXDEKVWEXEZSXFZXGZTXHXIZVVLVVQVVDDUIZPZUYQRZVXRO
      PZMRZLZEKUDZEKVXRXKZLZEKVXRXBZOPZCXGZTXHXIZQZUJVXJVXLVXPQZUJDVWBJKVWAUULU
      UMVXQVWBQZVYEVXJVYJVYKVYLVYCVWHVYDVWIVYLVYBVWGEKVYLVXSVWDVYAVWFVYLVXRVWCU
      YQVVDVXQVWBUUNZYIVYLVXTVWEMVYLVXRVWCOVYMUNZYIWOUUPVYLEKVXRVWCVYLVXRVWCQVX
      AVYMYJUUQWOVYLVYGVXLVYIVXPVYLVYFVXKOVYLEKVXRVWCVYMUURUNVYLVYIXDEKVXTXEZSX
      FZXGZTXHXIVXPTVYHVYQXHCVYPCXDFSXFZVYPGFVYOQVYRVYPQHXDFVYOSYKUSVAYMYLVYLTV
      YQVXOXHVYLVYPVXNVYLVYOVXMXDSVYLEKVXTVWEVYNUUSYNYOYPUVDUUTUVAIUVEVXKVVKOEK
      VWCVVJVXDUVBUVFTVXOVVPXHVXNVVOVXMVVNQVXNVVOQEKVWEVVMVXEYQXDVXMVVNSYKUSYMY
      LUVCWPYBUYTVVLUYLQVUSUYTVVKUYGOUYTVVKVUTUEZUYGUYTVVKEKVVEXBZVYSVVEVVHUHEV
      XIUVGUYTUYSUVHVYTVYSQKBUYSUVIEKUYSUVJVOUVKUYTVUTBVVBUVLYRUNYJVUSVVQNQUYTV
      USVVQXDEKNXEZSXFZXGZTXHXIZNVUSTVVPWUCXHVUSVVOWUBVUSVVNWUAXDSVUSEKVVMNVUSV
      XALVVEMUFZVVEUOPZNQZLZVVMNQVURWUHJVVDKVXBVUOWUEVUQWUGVXBVUNVVEMVXCUVMVXBV
      UPWUFNVXBVUNVVEUOVXCUNWNWOUVOWUHVVMVVJUOPZNWUHVVJMUFZWUINQZLVWRVVMWUIQWUH
      WUJWUKWUEWUJWUGVVEMVVIXNYJVVJVVEUFWUEWUGWUKVVEVVIXLVVJVVEXJXMZUVNVVJXOVVJ
      URUVPWULYRVOUVQYNYOYPWUDNUVRZTXHXIZNTWUCWUMXHWUCKWUMUVSZXGZWUMWUBWUOJKVUM
      XDWUOSXFZPZXEZJKNXEWUBWUOJKWURNVUMKRZWURVUMNUVTXAZNNUWARWUTWURWVAQUWBNVUM
      UWCUWDWUTVUMVUMUWEUWFYRYQWUQWUBWUSWUOWUAQWUQWUBQEKNYSXDWUOWUASYKUSWUQSUWG
      PZWIZWUQWUSQZSUWHRWVCUWIXDWUOSUWJUSWVCWUQKWIWVDKWVBWUQUWKUWLJKWUQUXBUWMUW
      NUWOJKNYSUWPYMSKRKVBUGWUPWUMQUWQKSUWRKWUMUWSUWTVAYLTXHUXANTRWUNNQUXCUXDTN
      XHUXEUXFVAUMYBUXGWQUXHUXIUXJVOUXKUXMUYGMNUYLUYGMQZNYTUYLNMRNYTUGWVEXQNUXL
      UXNWVEUYLMOPZYTUYGMOWMWVFMUOPZYTMUYQRWVFWVGQUXOMURUSUXPVAUMUXQUXRVOUYBUYH
      UYGMUYGMUXSUXTUYA $.
  $}

  ${
    $d f g n m l x A $.
    volsupnfl.0 $e |- ( ( f : NN --> dom vol /\
      A. n e. NN ( f ` n ) C_ ( f ` ( n + 1 ) ) ) ->
        ( vol ` U. ran f ) = sup ( ( vol " ran f ) , RR* , < ) ) $.
    $( ~ volsup is incompatible with the Feferman-Levy model.  (Contributed by
       Brendan Leahy, 2-Jan-2018.) $)
    volsupnfl $p |- ( ( A ~<_ NN /\ A. x e. A x ~<_ NN ) -> U. A =/= RR ) $=
      ( vm vl cn wral wa cr wss cc0 cvol cfv wceq c0 wcel syl c1 vg cdom wbr cv
      cuni wne unieq uni0 syl6eq fveq2d covol cdm 0mbl mblvol ax-mp ovol0 eqtri
      wi syl6req a1d wfo wex csdm cvv wb reldom brrelexi 0sdomg biimparc fodomr
      sylancom unissb anbi1i r19.26 bitr4i ovolctb2 nulmbl expcom adantl syldan
      eqtr syl5 jcai ralimi sylbi ancoms cfz co ciun cmpt crn cima cxr clt csup
      wf caddc cfn fzfi cuz fzssuz nnuz sseqtr4i ffvelrnda fveq2 eqeq1d anbi12d
      fof sylan an32s ralrimiva ssralv mpsyl sylancr adantr oveq2 iuneq1d iunex
      weq ovex fvmpt sseq12d fveq1 unieqd supeq1d sylancl cab df-iun rspcev wfn
      wrex eqtrd syl5eqr cpnf volf cle csu mblss 0re 0xr eleq1 simpld finiunmbl
      rspccva eqid fmptd fzssp1 iunss1 fvex mpbiri rgen nnex mptex feq1 ralbidv
      peano2nn rneq imaeq2d eqeq12d imbi12d vtocl eluzfz2 eleq2s eleq2d rexeqdv
      rexlimiva ssrexv cbvrexv sylib rexlimivw impbii eliun rexbii abbii dfiun3
      3eqtr2i fofn fniunfv forn csn ccom rnco2 cxp eqidd cicc a1i fmptco eleq1a
      feqmptd syl6bi imp jca ssid sseq1 eleq1d ralima raleqdv bitr3d ovolfiniun
      foima mpbird simprd sylan2 eqtr3d sumeq2d olci sumz breqtrd iunss ovolge0
      sylibr ovolcl xrletri3 mpbir2and mpteq2dva fconstmpt syl6eqr frn ffn fnco
      wo fnmpti mp3an12 1nn ne0ii fconst5 mpbid wor xrltso supsn mp2an 3eqtr3rd
      3syl exlimiv expimpd pm2.61ine renepnf mp1i rembl ovolre neeqtrrd necon2i
      ex expr eqimss necon3bi pm2.61d1 ) BHUBUCZAUDZHUBUCZABIZJBUEZKLZVULKUFZVU
      HVUKVUMVUNVUHVUKVUMJZJZMVULNOZPZVUNVUPVURURBQBQPZVURVUPVUSVUQQNOZMVUSVULQ
      NVUSVULQUEQBQUGUHUIUJVUTQUKOZMQNULZRVUTVVAPUMQUNUOUPUQUSUTBQUFZVUHVUOVURV
      VCVUHJHBUAUDZVAZUAVBZVUOVURURZVVCVUHQBVCUCZVVFVUHVVHVVCVUHBVDRVVHVVCVEBHU
      BVFVGBVDVHSVIHBUAVJVKVVEVVGUAVUOVUIVVBRZVUINOZMPZJZABIZVVEVURVUMVUKVVMVUM
      VUKJZVUIKLZVUJJZABIZVVMVVNVVOABIZVUKJVVQVUMVVRVUKABKVLVMVVOVUJABVNVOVVPVV
      LABVVOVUJVUIUKOZMPZVVLVUIVPVVOVVTJVVIVVKVUIVQVVTVVIVVKURVVOVVIVVJVVSPZVVT
      VVKVUIUNZVWAVVTVVKVVJVVSMWAVRWBVSWCVTWDWEWFVVEVVMVURVVEVVMJZFHGTFUDZWGWHZ
      GUDZVVDOZWIZWJZWKZUEZNOZNVWJWLZWMWNWOZVUQMVWCHVVBVWIWPZDUDZVWIOZVWPTWQWHZ
      VWIOZLZDHIZVWLVWNPZVWCFHVWHVVBVWIVWCVWHVVBRZVWDHRZVWCVWEWRRZVWGVVBRZGVWEI
      ZVXCTVWDWSZVWEHLZVWCVXFGHIVXGVWETWTOZHTVWDXAXBXCZVWCVXFGHVVEVWFHRZVVMVXFV
      VEVXLJZVWGBRZVVMVXFVVEHBVWFVVDHBVVDXHXDZVVMVXNVXFVVMVXNJZVXFVWGNOZMPZVVLV
      XFVXRJAVWGBVUIVWGPZVVIVXFVVKVXRVUIVWGVVBUUAVXSVVJVXQMVUIVWGNXEXFXGUUDZUUB
      WFXIXJZXKVXFGVWEHXLXMZVWEVWGGUUCXNXOZVWIUUEZUUFZVWTDHVWPHRZVWTGTVWPWGWHZV
      WGWIZGTVWRWGWHZVWGWIZLZVYGVYILVYKTVWPUUGGVYGVYIVWGUUHUOVYFVWQVYHVWSVYJFVW
      PVWHVYHHVWIFDXSGVWEVYGVWGVWDVWPTWGXPXQVYDGVYGVWGTVWPWGXTVWFVVDUUIZXRYAVYF
      VWRHRVWSVYJPVWPUUPFVWRVWHVYJHVWIVWDVWRPGVWEVYIVWGVWDVWRTWGXPXQVYDGVYIVWGT
      VWRWGXTVYLXRYASYBUUJUUKHVVBCUDZWPZVWPVYMOZVWRVYMOZLZDHIZJZVYMWKZUEZNOZNVY
      TWLZWMWNWOZPZURVWOVXAJZVXBURCVWIFHVWHUULUUMVYMVWIPZVYSWUFWUEVXBWUGVYNVWOV
      YRVXAHVVBVYMVWIUUNWUGVYQVWTDHWUGVYOVWQVYPVWSVWPVYMVWIYCVWRVYMVWIYCYBUUOXG
      WUGWUBVWLWUDVWNWUGWUAVWKNWUGVYTVWJVYMVWIUUQZYDUJWUGWMWUCVWMWNWUGVYTVWJNWU
      HUURYEUUSUUTEUVAYFVVEVWLVUQPVVMVVEVWKVULNVVEVWKAHVUIVVDOZWIZVULWUJVWPVWHR
      ZFHYKZDYGZFHVWHWIVWKWUJVWPWUIRZAHYKZDYGWUMADHWUIYHWUOWULDWUOVWPVWGRZGVWEY
      KZFHYKZWULWUOWURWUNWURAHVUIHRZWUNWUPGTVUIWGWHZYKZWURWUSVUIWUTRZWUNWVAWVBV
      UIVXJHTVUIUVBXBUVCWUPWUNGVUIWUTGAXSVWGWUIVWPVWFVUIVVDXEUVDZYIXIWUQWVAFVUI
      HFAXSWUPGVWEWUTVWDVUITWGXPUVEYIVTUVFWUQWUOFHWUQWUPGHYKZWUOVXIWUQWVDURVXKW
      UPGVWEHUVGUOWUPWUNGAHWVCUVHUVIUVJUVKWUKWUQFHGVWPVWEVWGUVLUVMVOUVNUQFDHVWH
      YHFHVWHGVWEVWGTVWDWGXTVYLXRZUVOUVPVVEWUJVVDWKZUEZVULVVEVVDHYJZWUJWVGPHBVV
      DUVQZAHVVDUVRSVVEWVFBHBVVDUVSYDYLYMUJXOVWCVWNMUVTZWMWNWOZMVWCWMVWMWVJWNVW
      CVWMNVWIUWAZWKZWVJNVWIUWBVWCWVLHWVJUWCZPZWVMWVJPZVWCWVLFHVWHNOZWJZWVNVWCF
      DHVVBVWHVWPNOWVQVWINVYCVWCVWIUWDVWCDVVBMYNUWEWHZNVVBWVSNWPZVWCYOUWFUWIVWP
      VWHNXEUWGVWCWVRFHMWJWVNVWCFHWVQMVWCVXDJZWVQVWHUKOZMWWAVXCWVQWWBPVYCVWHUNS
      WWAWWBMPZWWBMYPUCZMWWBYPUCZWWAWWBVWEVWGUKOZGYQZMYPWWAVXEVWGKLZWWFKRZJZGVW
      EIZWWBWWGYPUCVXHVWCWWKVXDVXIVWCWWJGHIZWWKVXKVWCWWLVVOVVSKRZJZABIZVVMWWOVV
      EVVLWWNABVVLVVOWWMVVIVVOVVKVUIYRXOVVIVVKWWMVVIVVKVVTWWMVVIVVJVVSMVWBXFMKR
      ZVVTWWMURYSMKVVSUWHUOUWJUWKUWLWDVSVVEWWLWWOVEVVMVVEWWNAVVDHWLZIZWWLWWOVVE
      WVHHHLWWRWWLVEWVIHUWMWWNWWJAGHHVVDVXSVVOWWHWWMWWIVUIVWGKUWNVXSVVSWWFKVUIV
      WGUKXEUWOXGUWPYFVVEWWNAWWQBHBVVDUWTUWQUWRXOUXAWWJGVWEHXLXMXOVWEVWGGUWSXNW
      WAWWGVWEMGYQZMWWAVWEWWFMGVWCWWFMPZGVWEIZVXDVXIVWCWWTGHIWXAVXKVWCWWTGHVWCV
      XLJZVXQWWFMWXBVXFVXQWWFPVYAVWGUNSVVEVXLVVMVXRVVMVXMVXRVXMVVMVXNVXRVXOVXPV
      XFVXRVXTUXBUXCWFXJUXDXKWWTGVWEHXLXMXOUXEVWEVXJLZVXEUYAWWSMPVXEWXCVXHUXFVW
      EGTUXGUOUIUXHWWAVWHKLZWWEVWCWXDVXDVWCWWHGVWEIZWXDVWCVXGWXEVYBVXFWWHGVWEVW
      GYRWDSGVWEVWGKUXIUXKZXOVWHUXJSWWAWWBWMRZMWMRZWWCWWDWWEJVEVWCWXGVXDVWCWXDW
      XGWXFVWHUXLSXOYTWWBMUXMYFUXNYLUXOFHMUXPUXQYLVWCWVLHYJZHQUFWVOWVPVEVWCVWOV
      WJVVBLZWXIVYEHVVBVWIUXRNVVBYJZVWIHYJWXJWXIWVTWXKYOVVBWVSNUXSUOFHVWHVWIWVE
      VYDUYBVVBHNVWIUXTUYCUYMTHUYDUYEHMWVLUYFYFUYGYMYEWMWNUYHWXHWVKMPUYIYTWMMWN
      UYJUYKUIUYLVUCWBUYNSUYOUYPVULKMVUQVULKPZMYNVUQWWPMYNUFWXLYSMUYQUYRWXLVUQK
      NOZYNVULKNXEWXMKUKOZYNKVVBRWXMWXNPUYSKUNUOUYTUQUIVUAVUBSVUDVUMVULKVULKVUE
      VUFVUG $.
  $}

  ${
    $( The empty function is measurable.  (Contributed by Brendan Leahy,
       28-Mar-2018.) $)
    0mbf $p |- (/) e. MblFn $=
      ( c0 c1 csn cxp cmbf 0xp cvol wcel cc 0mbl ax-1cn mbfconst mp2an eqeltrri
      cdm ) ABCZDZAEPFAGOHBIHQEHJKABLMN $.
  $}

  ${
    $d a b f g h r s t ph $.  $d a b f g h r s t A $.  $d a b f g h r s t F $.
    $d a b f g h r s t S $.
    mbfresfi.1 $e |- ( ph -> F : A --> CC ) $.
    mbfresfi.2 $e |- ( ph -> S e. Fin ) $.
    mbfresfi.3 $e |- ( ph -> A. s e. S ( F |` s ) e. MblFn ) $.
    mbfresfi.4 $e |- ( ph -> U. S = A ) $.
    $( Measurability of a piecewise function across arbitrarily many subsets.
       (Contributed by Brendan Leahy, 31-Mar-2018.) $)
    mbfresfi $p |- ( ph -> F e. MblFn ) $=
      ( va vf cc wf cres cmbf wcel wa wceq cvv wi vr vb vg vt vh cv wral uniexg
      cuni cfn syl eqeltrrd fex ex jcai feq2 anbi1d eqeq2 anbi12d imbi1d imbi2d
      feq1 reseq1 eleq1d ralbidv eleq1 imbi12d wal csn cun rzal biantrud bicomd
      c0 unieq syl6eq eqeq1d 2albidv weq raleq anbi2d simpl simpr feq12d adantr
      uni0 adantl cbval2v syl6bb wrel cdm frel fdm eqcom biimpi sylan9eq reldm0
      wb biimpar 0mbf syl2anc cre ccom cim ref fco mpan ad2antrl elexi vex coex
      resex feq123 mp3an3 bitr3d spc2gv wss ax-resscn fss fssres syl2an adantlr
      mp2an resabs1d reseq2 sylan2 cin fresin ismbfcn eqeltrd ralrimiva cbvralv
      cr resco sylib pm2.27 mpan9 syl5eqel mbfres2 imf syl6eqel ccncf co recncf
      gen2 vuniex eqid ssun1 unissi syl5sseq wel elssuni rspccva adantll biimpd
      id elun1 ad2antrr mpd simpld vsnid elun2 rspcv mp2b simprbda uniun uneq2i
      unisn eqtri syl5eqr ad2antll imcncf simplbda mpbir2and alrimivv findcard2
      simprd a1i 2sp 3syl vtocl2g mpcom mpan2d mp2and ) ABLDMZDEUFZNZOPZECUGZDO
      PZFHAUWEUWIQZCUIZBRZUWJIBSPZDSPZQAUWKUWMQZUWJTZAUWNUWOAUWLBSIACUJPZUWLSPG
      CUJUHUKULAUWEUWNUWOTFUWEUWNUWOBLSDUMUNUKUOAJUFZLKUFZMZUWTUWFNZOPZECUGZQZU
      WLUWSRZQZUWTOPZTZTABLUWTMZUXDQZUWMQZUXHTZTAUWQTJKBDSSUWSBRZUXIUXMAUXNUXGU
      XLUXHUXNUXEUXKUXFUWMUXNUXAUXJUXDUWSBLUWTUPUQUWSBUWLURUSUTVAUWTDRZUXMUWQAU
      XOUXLUWPUXHUWJUXOUXKUWKUWMUXOUXJUWEUXDUWIBLUWTDVBUXOUXCUWHECUXOUXBUWGOUWT
      DUWFVCVDVEUSUQUWTDOVFVGVAAUWRUXIJVHKVHZUXIGUXAUXCEUAUFZUGZQZUXQUIZUWSRZQZ
      UXHTZJVHKVHZUXAVNUWSRZQZUXHTZJVHKVHUBUFZLUCUFZMZUYIUWFNZOPZEUDUFZUGZQZUYM
      UIZUYHRZQZUYIOPZTZUBVHUCVHZUXAUXCEUYMUEUFZVIZVJZUGZQZVUDUIZUWSRZQZUXHTZJV
      HKVHZUXPUAUDUECUXQVNRZUYCUYGKJVULUYBUYFUXHVULUXSUXAUYAUYEVULUXAUXSVULUXRU
      XAUXCEUXQVKVLVMVULUXTVNUWSVULUXTVNUIVNUXQVNVOWFVPVQUSUTVRUAUDVSZUYDUXAUXC
      EUYMUGZQZUYPUWSRZQZUXHTZJVHKVHVUAVUMUYCVURKJVUMUYBVUQUXHVUMUXSVUOUYAVUPVU
      MUXRVUNUXAUXCEUXQUYMVTWAVUMUXTUYPUWSUXQUYMVOVQUSUTVRVURUYTKJUCUBKUCVSZJUB
      VSZQZVUQUYRUXHUYSVVAVUOUYOVUPUYQVVAUXAUYJVUNUYNVVAUWSUYHLUWTUYIVUSVUTWBVU
      SVUTWCWDVVAUXCUYLEUYMVVAUXBUYKOVUSUXBUYKRVUTUWTUYIUWFVCWEVDVEUSVUTVUPUYQW
      RVUSUWSUYHUYPURWGUSVUSUXHUYSWRVUTUWTUYIOVFWEVGWHWIUXQVUDRZUYCVUJKJVVBUYBV
      UIUXHVVBUXSVUFUYAVUHVVBUXRVUEUXAUXCEUXQVUDVTWAVVBUXTVUGUWSUXQVUDVOVQUSUTV
      RUXQCRZUYCUXIKJVVCUYBUXGUXHVVCUXSUXEUYAUXFVVCUXRUXDUXAUXCEUXQCVTWAVVCUXTU
      WLUWSUXQCVOVQUSUTVRUYGKJUYFUWTWJZUWTWKZVNRZUXHUXAVVDUYEUWSLUWTWLWEUXAUYEV
      VEUWSVNUWSLUWTWMUYEUWSVNRVNUWSWNWOWPVVDVVFQUWTVNOVVDUWTVNRVVFUWTWQWSWTUUA
      XAUUEVUAVUKTUYMUJPVUAVUJKJVUAVUIUXHVUAVUIQZUXHXBUWTXCZOPZXDUWTXCZOPZVVGUW
      SUYPVUBVVHVUFUWSYMVVHMZVUAVUHUXAVVLVUELYMXBMZUXAVVLXEUWSLYMXBUWTXFXGWEXHV
      UAUYPLVVHUYPNZMZVVNUWFNZOPZEUYMUGZQZVVNOPZTZVUIVVTVVNSPUYPSPZVUAVWATVVHUY
      PXBUWTXBLYMUUBUUCZUUDXIKXJZXKXLUDUUFZUYTVWAUCUBVVNUYPSSUYIVVNRZUYHUYPRZQZ
      UYRVVSUYSVVTVWHUYOUYRVVSVWHUYQUYOVWGUYQVWFVWGUYQUYHUYPWNWOZWGVLVWHUYJVVOU
      YNVVRVWFVWGLLRZUYJVVOWRLUUGZUYHLUYPLUYIVVNXMXNVWHUYLVVQEUYMVWFUYLVVQWRVWG
      VWFUYKVVPOUYIVVNUWFVCVDWEVEUSXOVWFUYSVVTWRVWGUYIVVNOVFWEVGXPYCVUIVVOVVRVW
      AVVTTUXAVUHVVOVUEUXAUWSLVVHMZUYPUWSXQZVVOVUHLLXBMZUXAVWLVVMYMLXQZVWNXEXRL
      YMLXBXSYCUWSLLXBUWTXFXGVUHVUGUYPUWSUYMVUDUYMVUCUUHUUIVUHUUPZUUJZUWSLUYPVV
      HXTYAYBVUFVVRVUHVUFVVNUXQNZOPZUAUYMUGVVRVUFVWSUAUYMVUFUAUDUUKZQZVWRXBUWTU
      XQNZXCZOVWTVWRVXCRVUFVWTVWRVVHUXQNVXCVWTVVHUXQUYPUXQUYMUULZYDXBUWTUXQYNVP
      WGVXAVXCOPZXDVXBXCZOPZVXAVXBOPZVXEVXGQZVUEVWTVXHUXAVWTVUEUXQVUDPVXHUXQUYM
      VUCUUQUXCVXHEUXQVUDEUAVSUXBVXBOUWFUXQUWTYEVDUUMYFUUNUXAVXHVXITVUEVWTUXAVX
      HVXIUXAUWSUXQYGZLVXBMVXHVXIWRUWSLUWTUXQYHVXJVXBYIUKUUOUURUUSZUUTYJYKVWSVV
      QUAEUYMUAEVSZVWRVVPOUXQUWFVVNYEVDYLYOWEVVSVVTYPXAYQVUFVVHVUBNZOPZVUAVUHVU
      EUXAUWTVUBNZOPZVXNVUBVUCPVUBVUDPVUEVXPTUEUVAVUBVUCUYMUVBUXCVXPEVUBVUDEUEV
      SUXBVXOOUWFVUBUWTYEVDUVCUVDZUXAVXPQZVXMXBVXOXCZOXBUWTVUBYNUXAVXPVXSOPZXDV
      XOXCZOPZUXAUWSVUBYGZLVXOMVXPVXTVYBQWRUWSLUWTVUBYHVYCVXOYIUKZUVEYRYFXHVUHU
      YPVUBVJZUWSRVUAVUFVUHVYEVUGUWSVUGUYPVUCUIZVJVYEUYMVUCUVFVYFVUBUYPVUBUEXJU
      VHUVGUVIVWPUVJUVKZYSVVGUWSUYPVUBVVJVUFUWSYMVVJMZVUAVUHUXAVYHVUELYMXDMZUXA
      VYHYTUWSLYMXDUWTXFXGWEXHVUAUYPLVVJUYPNZMZVYJUWFNZOPZEUYMUGZQZVYJOPZTZVUIV
      YPVYJSPVWBVUAVYQTVVJUYPXDUWTXDVWCUVLXIVWDXKXLVWEUYTVYQUCUBVYJUYPSSUYIVYJR
      ZVWGQZUYRVYOUYSVYPVYSUYOUYRVYOVYSUYQUYOVWGUYQVYRVWIWGVLVYSUYJVYKUYNVYNVYR
      VWGVWJUYJVYKWRVWKUYHLUYPLUYIVYJXMXNVYSUYLVYMEUYMVYRUYLVYMWRVWGVYRUYKVYLOU
      YIVYJUWFVCVDWEVEUSXOVYRUYSVYPWRVWGUYIVYJOVFWEVGXPYCVUIVYKVYNVYQVYPTUXAVUH
      VYKVUEUXAUWSLVVJMZVWMVYKVUHLLXDMZUXAVYTVYIVWOWUAYTXRLYMLXDXSYCUWSLLXDUWTX
      FXGVWQUWSLUYPVVJXTYAYBVUFVYNVUHVUFVYJUXQNZOPZUAUYMUGVYNVUFWUCUAUYMVXAWUBV
      XFOVWTWUBVXFRVUFVWTWUBVVJUXQNVXFVWTVVJUXQUYPVXDYDXDUWTUXQYNVPWGVXAVXEVXGV
      XKUVQYJYKWUCVYMUAEUYMVXLWUBVYLOUXQUWFVYJYEVDYLYOWEVYOVYPYPXAYQVUFVVJVUBNZ
      OPZVUAVUHVUEUXAVXPWUEVXQVXRWUDVYAOXDUWTVUBYNUXAVXPVXTVYBVYDUVMYRYFXHVYGYS
      VUFUXHVVIVVKQWRZVUAVUHUXAWUFVUEUWSUWTYIWEXHUVNUNUVOUVRUVPUXIKJUVSUVTUWAUW
      BUWCUWD $.
  $}

  ${
    $d x y z ph $.  $d x y z A $.  $d y z B $.  $d y z C $.
    mbfposadd.1 $e |- ( ph -> ( x e. A |-> B ) e. MblFn ) $.
    mbfposadd.2 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    mbfposadd.3 $e |- ( ph -> ( x e. A |-> C ) e. MblFn ) $.
    mbfposadd.4 $e |- ( ( ph /\ x e. A ) -> C e. RR ) $.
    mbfposadd.5 $e |- ( ph -> ( x e. A |-> ( B + C ) ) e. MblFn ) $.
    $( If the sum of two measurable functions is measurable, the sum of their
       nonnegative parts is measurable.  (Contributed by Brendan Leahy,
       2-Apr-2018.) $)
    mbfposadd $p |- ( ph -> ( x e. A |-> ( if ( 0 <_ B , B , 0 ) +
      if ( 0 <_ C , C , 0 ) ) ) e. MblFn ) $=
      ( vy vz cc0 cmpt cr wcel wa cres wceq copab cle wbr crab wn cif caddc 0re
      co cv ifcl sylancl readdcld eqid fmptd cin wss ssrab2 fssres cmbf resabs1
      wf inss2 ax-mp elin rabid anbi12i bitri oveqan12d ad2ant2l sylbi mpteq2ia
      iftrue inss1 sstri resmpt nfcv nfcsb1v csbeq1a cbvmpt reseq1i nfrab1 nfin
      csb nfv nfcri nfeq2 nfan weq eleq1 eqeq2d anbi12d cbvopab1 df-mpt 3eqtr4i
      3eqtr4g eqtri cvol cdm ccnv csn cima cpnf cioo cun cico biantrurd elrege0
      syl6bbr rabbidva cxr clt imaeq2i imaundi mptpreima 3eqtr3ri syl6eq mp3an3
      0xr mbfimasn mbfima unmbl syl2anc eqeltrd inmbl iffalse sylan2b mpteq2dva
      mbfres recnd syl5eq cmnf wb elioomnf ltnle bitr3d syl5bb eqeltrrd mbfres2
      rabxm a1i 0ltpnf snunioo syl5eqel anandi 3bitr4i ad2antll addid2d adantrr
      pnfxr mp3an eqtrd dfrab3ss ineq1i 3eqtrri oveq2d addid1d sylan9eqr anasss
      ssid indir mbfpos eqcomi ) ACMEUAUBZBCUCZUVCUDZBCUCZBCMDUAUBZDMUEZUVCEMUE
      ZUFUHZNZABCUVJOUVKABUIZCPZQZUVHUVIUVNDOPZMOPZUVHOPGUGUVGDMOUJUKZUVNEOPZUV
      PUVIOPIUGUVCEMOUJUKULUVKUMUNZAUVDUVGBCUCZUVDUOZUVGUDZBCUCZUVDUOZUVKUVDRZA
      COUVKVAUVDCUPUVDOUWEVAUVSUVCBCUQCOUVDUVKURUKAUWEUWARZBCDEUFUHZNZUWARZUSUW
      FUVKUWARZUWIUWAUVDUPUWFUWJSUVTUVDVBUVKUWAUVDUTVCBUWAUVJNZBUWAUWGNZUWJUWIB
      UWAUVJUWGUVLUWAPZUVMUVGQZUVMUVCQZQZUVJUWGSZUWMUVLUVTPZUVLUVDPZQUWPUVLUVTU
      VDVDUWRUWNUWSUWOUVGBCVEUVCBCVEZVFVGUVGUVCUWQUVMUVMUVGUVCUVHDUVIEUFUVGDMVL
      UVCEMVLZVHVIVJVKUWACUPZUWJUWKSUWAUVTCUVTUVDVMUVGBCUQVNZUXBKCBKUIZUVJWCZNZ
      UWARKUWAUXENZUWJUWKKCUWAUXEVOUVKUXFUWABKCUVJUXEKUVJVPBUXDUVJVQZBUXDUVJVRZ
      VSZVTUWMLUIZUVJSZQZBLTUXDUWAPZUXKUXESZQZKLTUWKUXGUXMUXPBLKUXMKWDUXNUXOBBK
      UWABUVTUVDUVGBCWAUVCBCWAZWBWEZBUXKUXEUXHWFZWGBKWHZUWMUXNUXLUXOUVLUXDUWAWI
      ZUXTUVJUXEUXKUXIWJZWKWLBLUWAUVJWMKLUWAUXEWMWNWOVCUXBUWIUWLSUXCUXBKCBUXDUW
      GWCZNZUWARKUWAUYCNZUWIUWLKCUWAUYCVOUWHUYDUWABKCUWGUYCKUWGVPBUXDUWGVQZBUXD
      UWGVRZVSVTUWMUXKUWGSZQZBLTUXNUXKUYCSZQZKLTUWLUYEUYIUYKBLKUYIKWDUXNUYJBUXR
      BUXKUYCUYFWFWGUXTUWMUXNUYHUYJUYAUXTUWGUYCUXKUYGWJWKWLBLUWAUWGWMKLUWAUYCWM
      WNWOVCWNWPAUWHUSPUWAWQWRZPZUWIUSPJAUVTUYLPUVDUYLPZUYMAUVTBCDNZWSZMWTZXAZU
      YPMXBXCUHZXAZXDZUYLAUVTDMXBXEUHZPZBCUCZVUAAUVGVUCBCUVNUVGUVOUVGQVUCUVNUVO
      UVGGXFDXGXHXIUYPUYQUYSXDZXAUYPVUBXAVUAVUDVUEVUBUYPMXJPZXBXJPMXBXKUBVUEVUB
      SXRUUIUUAMXBUUBUUJZXLUYPUYQUYSXMBCDVUBUYOUYOUMZXNXOXPAUYOUSPZCOUYOVAZVUAU
      YLPZFABCDOUYOGVUHUNZVUIVUJQUYRUYLPZUYTUYLPVUKVUIVUJUVPVUMUGCMUYOXSXQCMXBU
      YOXTUYRUYTYAYBYBYCAUVDBCENZWSZUYQXAZVUOUYSXAZXDZUYLAUVDEVUBPZBCUCZVURAUVC
      VUSBCUVNUVCUVRUVCQVUSUVNUVRUVCIXFEXGXHXIVUOVUEXAVUOVUBXAVURVUTVUEVUBVUOVU
      GXLVUOUYQUYSXMBCEVUBVUNVUNUMZXNXOXPAVUNUSPZCOVUNVAZVURUYLPZHABCEOVUNIVVAU
      NZVVBVVCQVUPUYLPZVUQUYLPVVDVVBVVCUVPVVFUGCMVUNXSXQCMXBVUNXTVUPVUQYAYBYBYC
      ZUVTUVDYDYBUWAUWHYHYBUUCAUWEUWDRZVUNUWDRZUSAVVHUVKUWDRZVVIUWDUVDUPVVHVVJS
      UWCUVDVBUVKUWDUVDUTVCABUWDUVJNZBUWDENZVVJVVIABUWDUVJEUVLUWDPZAUVMUWBUVCQZ
      QZUVJESUVLUWCPZUWSQUVMUWBQZUWOQVVMVVOVVPVVQUWSUWOUWBBCVEUWTVFUVLUWCUVDVDU
      VMUWBUVCUUDUUEAVVOQUVJMEUFUHZEVVNUVJVVRSAUVMUWBUVCUVHMUVIEUFUVGDMYEUXAVHU
      UFAUVMVVRESVVNUVNEUVNEIYIUUGUUHUUKYFYGUWDCUPZVVJVVKSUWDUWCCUWCUVDVMUWBBCU
      QVNZVVSUXFUWDRKUWDUXENZVVJVVKKCUWDUXEVOUVKUXFUWDUXJVTVVMUXLQZBLTUXDUWDPZU
      XOQZKLTVVKVWAVWBVWDBLKVWBKWDVWCUXOBBKUWDBUWCUVDUWBBCWAUXQWBWEZUXSWGUXTVVM
      VWCUXLUXOUVLUXDUWDWIZUYBWKWLBLUWDUVJWMKLUWDUXEWMWNWOVCVVSVVIVVLSVVTVVSKCB
      UXDEWCZNZUWDRKUWDVWGNZVVIVVLKCUWDVWGVOVUNVWHUWDBKCEVWGKEVPBUXDEVQZBUXDEVR
      ZVSVTVVMUXKESZQZBLTVWCUXKVWGSZQZKLTVVLVWIVWMVWOBLKVWMKWDVWCVWNBVWEBUXKVWG
      VWJWFWGUXTVVMVWCVWLVWNVWFUXTEVWGUXKVWKWJWKWLBLUWDEWMKLUWDVWGWMWNWOVCWOYJA
      VVBUWDUYLPZVVIUSPHAUWCUYLPUYNVWPAUYPYKMXCUHZXAZUWCUYLAVWRDVWQPZBCUCUWCBCD
      VWQUYOVUHXNAVWSUWBBCVWSUVODMXKUBZQZUVNUWBVUFVWSVXAYLXRMDYMVCUVNVWTVXAUWBU
      VNUVOVWTGXFUVNUVOUVPVWTUWBYLGUGDMYNUKYOYPXIYJAVUIVUJVWRUYLPFVULCYKMUYOXTY
      BYQVVGUWCUVDYDYBUWDVUNYHYBYCUWAUWDXDZUVDSAUVDCUVDUOZUVTUWCXDZUVDUOVXBCCUP
      UVDVXCSCUUSUVCBCCUULVCCVXDUVDUVGBCYSUUMUVTUWCUVDUUTUUNYTYRAUVKUVFRZBCUVHN
      ZUVFRZUSABUVFUVJNZBUVFUVHNZVXEVXGABUVFUVJUVHUVLUVFPZAUVMUVEQUVJUVHSZUVEBC
      VEAUVMUVEVXKUVEUVNUVJUVHMUFUHUVHUVEUVIMUVHUFUVCEMYEUUOUVNUVHUVNUVHUVQYIUU
      PUUQUURYFYGUVFCUPZVXEVXHSUVEBCUQZVXLUXFUVFRKUVFUXENZVXEVXHKCUVFUXEVOUVKUX
      FUVFUXJVTVXJUXLQZBLTUXDUVFPZUXOQZKLTVXHVXNVXOVXQBLKVXOKWDVXPUXOBBKUVFUVEB
      CWAWEZUXSWGUXTVXJVXPUXLUXOUVLUXDUVFWIZUYBWKWLBLUVFUVJWMKLUVFUXEWMWNWOVCVX
      LVXGVXISVXMVXLKCBUXDUVHWCZNZUVFRKUVFVXTNZVXGVXIKCUVFVXTVOVXFVYAUVFBKCUVHV
      XTKUVHVPBUXDUVHVQZBUXDUVHVRZVSVTVXJUXKUVHSZQZBLTVXPUXKVXTSZQZKLTVXIVYBVYF
      VYHBLKVYFKWDVXPVYGBVXRBUXKVXTVYCWFWGUXTVXJVXPVYEVYGVXSUXTUVHVXTUXKVYDWJWK
      WLBLUVFUVHWMKLUVFVXTWMWNWOVCWOAVXFUSPUVFUYLPVXGUSPABCDGFUVAAVUOVWQXAZUVFU
      YLAVYIEVWQPZBCUCUVFBCEVWQVUNVVAXNAVYJUVEBCVYJUVREMXKUBZQZUVNUVEVUFVYJVYLY
      LXRMEYMVCUVNVYKVYLUVEUVNUVRVYKIXFUVNUVRUVPVYKUVEYLIUGEMYNUKYOYPXIYJAVVBVV
      CVYIUYLPHVVECYKMVUNXTYBYQUVFVXFYHYBYCUVDUVFXDZCSACVYMUVCBCYSUVBYTYR $.
  $}

  ${
    $d b f x y F $.  $d b f x y A $.
    $( A real-valued, a.e. continuous function is measurable.  (Contributed by
       Brendan Leahy, 4-Apr-2018.) $)
    cnambfre $p |- ( ( F : A --> RR /\ A e. dom vol /\ ( vol* ` ( A \
      ( ( `' ( ( ( topGen ` ran (,) ) |`t A ) CnP ( topGen ` ran (,) ) )
        o. _E ) " { F } ) ) ) = 0 ) -> F e. MblFn ) $=
      ( vb vx vy vf cr wcel cfv cep cima cdif wceq wral wss crab adantr syl2anc
      wa c0 wf cvol cdm cioo crn ctg crest co ccnp ccnv ccom csn covol cc0 cmbf
      w3a cv wel wrex wn cmpt id feqmptd cnveqd imaeq1d ad2antrr exmid biantrur
      cun wo andir bitri ctb retopbas bastg ax-mp sseli ad2antlr cnpimaex 3expa
      3com12 sylanl1 ex wi simprrr wfn ffn restsspw elpwid simpl fnfvima syl3an
      cpw 3expb sseldd rexlimdvaa impbid pm5.32da r19.42v syl6bbr orbi1d syl5bb
      ad3antrrr rabbidva eqid mptpreima unrab 3eqtr4g eqtrd 3adantl3 ciun incom
      cin dfin4 inrab a1i iuneq2i iunin2 iunrab 3eqtr3i cif eqeq2 abbidv df-rab
      cab jca ctop sylan ralrimiva difss ssrab2 syl5ss wb cmap ctopon ovolssnul
      syl retopon nulmbl syl5rbb simprrl sselda pm3.22 adantll cvjust ralrimivw
      impbida simpr con3i rabeq0 sylibr adantl ifbothda retop resttop mpan 0opn
      ifcl ancoms iunopn subopnmbl mpdan syl5eqel rgenw iunss mpbir sstri mblss
      ssdif ovex rabex fnmpti resttopon sylancr cnpfval sylancl fneq1d elpreima
      mpbiri wrel rele elrelimasn fvex epelc bitr2i anbi2i syl6rbbr imaco abid2
      wbr eqtr4i difeq2d syl5sseq difmbl syl5eqelr eleq2i ibar sylan9bb adantrd
      notbid biimpd ss2rabdv dfdif2 unmbl 3adant1 eqeltrd ismbf 3ad2ant1 mpbird
      syl6sseqr ) AGBUAZAUBUCZHZAUDUEZUFIZAUGUHZUXOUIUHZUJZJUKBULZKZLZUMIUNMZUP
      ZBUOHZBUJZCUQZKZUXLHZCUXNNZUYCUYHCUXNUYCUYFUXNHZSUYGBDUQZUXQIZHZDEURZBEUQ
      ZKZUYFOZSZSZEUXPUSZDAPZUYMUTZUYKBIZUYFHZSZDAPZVIZUXLUXKUXMUYJUYGVUGMUYBUX
      KUXMSZUYJSZUYGDAVUCVAZUJZUYFKZVUGUXKUYGVULMUXMUYJUXKUYEVUKUYFUXKBVUJUXKDA
      GBUXKVBVCVDVEVFVUIVUDDAPUYTVUEVJZDAPVULVUGVUIVUDVUMDAVUDUYMVUDSZVUEVJZVUI
      UYKAHZSZVUMVUDUYMVUBVJZVUDSVUOVURVUDUYMVGVHUYMVUBVUDVKVLVUQVUNUYTVUEVUQVU
      NUYMUYREUXPUSZSUYTVUQUYMVUDVUSVUQUYMSZVUDVUSVUTVUDVUSVUQUYFUXOHZUYMVUDVUS
      UYJVVAVUHVUPUXNUXOUYFUXNVMHUXNUXOOVNUXNVMVOVPVQVRVVAUYMVUDVUSUYMVVAVUDVUS
      EUYFUYKBUXPUXOVSWAVTWBWCVUHVUSVUDWDUYJVUPUYMVUHUYRVUDEUXPVUHUYOUXPHZUYRSS
      UYPUYFVUCVUHVVBUYNUYQWEVUHVVBUYRVUCUYPHZVUHBAWFZVVBUYOAOZUYRUYNVVCUXKVVDU
      XMAGBWGQVVBUYOAUXPAWMUYOAUXOWHVQWIZUYNUYQWJAUYOBUYKWKWLWNWOWPXCWQWRUYMUYR
      EUXPWSWTXAXBXDDAVUCUYFVUJVUJXEXFUYTVUEDAXGXHXIXJUYCVUGUXLHZUYJUXMUYBVVGUX
      KUXMUYBSZVUAUXLHVUFUXLHZVVGVVHVUAEUXPUYRDAPZXKZVVKUYMDAPZLZLZUXLVVKVVLXMV
      VLVVKXMZVVNVUAVVKVVLXLVVKVVLXNEUXPVVLVVJXMZXKEUXPUYSDAPZXKVVOVUAEUXPVVPVV
      QVVPVVQMVVBUYMUYRDAXOXPXQEUXPVVLVVJXRUYSEDUXPAXSXTXTVVHVVKUXLHZVVMUXLHZVV
      NUXLHUXMVVRUYBUXMVVKEUXPUYQUYOTYAZXKZUXLEUXPVVJVVTUYQVVJUYOMVVJTMZVVJVVTM
      VVBUYOTUYOVVTVVJYBTVVTVVJYBVVBUYQSZVUPUYRSZDYEUYNDYEVVJUYOVWCVWDUYNDVWCVW
      DUYNVWCVUPUYNUYQUUAVWCUYNSVUPUYRVWCUYOAUYKVVBVVEUYQVVFQUUBUYQUYNUYRVVBUYQ
      UYNUUCUUDYFUUGYCUYRDAYDEDUUEXHUYQUTZVWBVVBVWEUYRUTZDANVWBVWEVWFDAUYRUYQUY
      NUYQUUHUUIUUFUYRDAUUJUUKUULUUMXQUXMVWAUXPHZVWAUXLHUXMUXPYGHZVVTUXPHZEUXPN
      VWGUXOYGHUXMVWHUUNAUXOUXLUUOUUPZUXMVWIEUXPUXMTUXPHZVVBVWIUXMVWHVWKVWJUXPU
      UQYQVVBVWKVWIUYQUYOTUXPUURUUSYHYIEUXPVVTUXPUUTRAVWAUXPUXPXEUVAUVBUVCQVVHV
      VMGOZVVMUMIUNMZVVSUXMVWLUYBUXMVVMAGVVMVVKAVVKVVLYJVVKAOZVVJAOZEUXPNVWOEUX
      PUYRDAYKUVDEUXPVVJAUVEUVFZUVGAUVHZYLQUXMVVMUYAOZUYAGOZSUYBVWMUXMVWRVWSUXM
      AVVLLZVVMUYAVWNVVMVWTOVWPVVKAVVLUVIVPUXMVVLUXTAUXMVUPUYMSZDYEUYKUXRJUXSKZ
      KZHZDYEZVVLUXTUXMVXAVXDDUXMVXDVUPUYLVXBHZSZVXAUXMUXQAWFZVXDVXGYMUXMVXHDAU
      YKFUQZIUYFHUYNVXIUYOKUYFOSEUXPUSWDCUXONZFGAYNUHZPZVAZAWFDAVXLVXMVXJFVXKGA
      YNUVJUVKVXMXEUVLUXMAUXQVXMUXMUXPAYOIHZUXOGYOIHZUXQVXMMUXMVXOAGOVXNYRVWQAU
      XOGUVMUVNYRDCEFUXPUXOAGUVOUVPUVQUVSAUYKVXBUXQUVRYQZUYMVXFVUPVXFBUYLJUWJZU
      YMJUVTVXFVXQYMUWABUYLJUWBVPBUYLUYKUXQUWCUWDUWEZUWFUWGYCUYMDAYDUXTVXCVXEUX
      RJUXSUWHZDVXCUWIUWKXHUWLUWMUXMUYAAGAUXTYJVWQYLZYFVWRVWSUYBVWMVVMUYAYPVTYH
      VVMYSRVVKVVMUWNRUWOVVHVUFGOZVUFUMIUNMZVVIUXMVYAUYBUXMVUFAGVUEDAYKVWQYLQUX
      MVUFUYAOZVWSSUYBVYBUXMVYCVWSUXMVUFUYKUXTHZUTZDAPUYAUXMVUEVYEDAUXMVUPSZVUB
      VYEVUDVYFVUBVYEVYFUYMVYDVYDVXDVYFUYMUXTVXCUYKVXSUWPUXMVXDVXGVUPUYMVXPUYMV
      XFVUPVXGVXRVUPVXFUWQYTUWRYTUWTUXAUWSUXBDAUXTUXCUXJVXTYFVYCVWSUYBVYBVUFUYA
      YPVTYHVUFYSRVUAVUFUXDRUXEQUXFYIUXKUXMUYDUYIYMUYBCABUXGUXHUXI $.
  $}

  $( Lemma for ~ dvtan - the domain of the tangent is open.  (Contributed by
     Brendan Leahy, 8-Aug-2018.)  (Proof shortened by OpenAI, 3-Jul-2020.) $)
  dvtanlem $p |- ( `' cos " ( CC \ { 0 } ) ) e. ( TopOpen ` CCfld ) $=
    ( ccos ccnfld ctopn cfv ccn co wcel cc0 csn cdif ccnv cima ccncf coscn eqid
    cc cncfcn1 eleqtri ccld mp2an cha cnfldhaus 0cn cnfldtopon toponunii cldopn
    sncld ax-mp cnima ) ABCDZUJEFZGPHIZJZUJGZAKUMLUJGAPPMFUKNUJUJOZQRULUJSDGZUN
    UJUAGHPGUPUJUOUBUCHUJPPUJUJUOUDUEZUGTULUJPUQUFUHUMAUJUJUIT $.

  ${
    $d x y $.
    $( Derivative of tangent.  (Contributed by Brendan Leahy, 7-Aug-2018.) $)
    dvtan $p |- ( CC _D tan ) = ( x e. dom tan |-> ( ( cos ` x ) ^ -u 2 ) ) $=
      ( vy cc ctan cdv co ccos cc0 csin c1 cdiv cmul cmpt cexp wcel adantl wceq
      c2 wtru a1i ccnv csn cdif cima cv cfv cneg caddc cdm df-tan cnvimass cosf
      fdmi sseqtri sseli sincld coscld wa wne wf wfn ffn elpreima mp2b eldifsni
      wb sylbi divrecd mpteq2ia eqtri oveq2i cvv cr cpr cnelprrecn difss imass2
      ax-mp fimacnv ccnfld ctopn sincl coscl dvsin feqmptd oveq2d 3eqtr3a crest
      wss sinf ctopon eqid cnfldtopon toponunii restid eqcomi dvtanlem dvmptres
      reccld ovexd simprbi negcld eldifi negex dvcos syl5reqr ax-1cn dvrec mp1i
      oveq2 oveq1 negeqd dvmptco dvmptmul trud wral ovex dmmpti sqcld sqne0 syl
      mpbird divdird addcomd sincossq oveq1d eqtr3d recidd dividd eqtr4d div23d
      eqtrd sqvald mul2negd divrec2d 3eqtr4rd oveq12d cn0 2nn0 expneg sylancl
      3eqtr4d rgen mpteq12 mp2an 3eqtri ) CDEFCAGUAZCHUBZUCZUDZAUEZIUFZJUUKGUFZ
      KFZLFZMZEFZAUUJUUMUUNLFZJUUMRNFZKFZUGZUULUGZLFZUULLFZUHFZMZADUIZUUMRUGNFZ
      MZDUUPCEDAUUJUULUUMKFZMUUPAUJZAUUJUVJUUOUUKUUJOZUULUUMUVLUUKUUJCUUKUUJGUI
      CGUUIUKCCGULUMUNUOZUPZUVLUUKUVMUQZUVLUUKCOZUUMUUIOZURZUUMHUSZCCGUTZGCVAUV
      LUVRVFULCCGVBCUUKUUIGVCVDZUVQUVSUVPUUMCHVEPVGZVHVIVJVKUUQUVFQSAUULUUMUUNU
      VCCCVLUUJCVMCVNOSVOTZUVLUULCOZSUVLUUKUUJCUUKUUJUUGCUDZCUUICWIUUJUWEWICUUH
      VPUUICUUGVQVRUVTUWECQULCCGVSVRUNZUOUPPZUVLUUMCOZSUVOPSAUULUUMCVTWAUFZUWIC
      CUUJUWCUVPUWDSUUKWBPZUVPUWHSUUKWCPZSCIEFGCACUULMZEFACUUMMZWDSIUWLCESACCIC
      CIUTSWJTWEWFSACCGUVTSULTWEZWGUUJCWISUWFTZUWICWHFZUWIUWICWKUFZOUWPUWIQUWIU
      WIWLZWMZUWIUWQCCUWIUWSWNWOVRWPZUWRUUJUWIOSWQTZWRUVLUUNCOSUVLUUMUVOUWBWSPS
      UVLURZUVAUVBLWTSABUUMUVBJBUEZKFZJUXCRNFZKFZUGZCCUUNUVACVLUUJUUIUWCUWCUVLU
      VQSUVLUVPUVQUWAXAPUXBUULUWGXBUXCUUIOZUXDCOSUXHUXCUXCCUUHXCUXCCHVEWSPUXGVL
      OSUXHURUXFXDTSAUUMUVBCUWIUWICCUUJUWCUWKSUVPURUULUWJXBSACUVBMCGEFCUWMEFAXE
      SGUWMCEUWNWFXFUWOUWTUWRUXAWRJCOCBUUIUXDMEFBUUIUXGMQSXGBJXHXIUXCUUMJKXJUXC
      UUMQZUXFUUTUXIUXEUUSJKUXCUUMRNXKWFXLXMXNXOUUJUVGQUVEUVHQZAUUJXPUVFUVIQUVG
      UUJAUUJUVJDUULUUMKXQUVKXRWPUXJAUUJUVLUUSUUSKFZUULRNFZUUSKFZUHFZUUTUVEUVHU
      VLUUSUXLUHFZUUSKFUXNUUTUVLUUSUXLUUSUVLUUMUVOXSZUVLUULUVNXSZUXPUVLUUSHUSZU
      VSUWBUVLUWHUXRUVSVFUVOUUMXTYAYBZYCUVLUXOJUUSKUVLUXOUXLUUSUHFZJUVLUUSUXLUX
      PUXQYDUVLUVPUXTJQUVMUUKYEYAYLYFYGUVLUURUXKUVDUXMUHUVLUURJUXKUVLUUMUVOUWBY
      HUVLUUSUXPUXSYIYJUVLUULUULLFZUUSKFUULUUSKFZUULLFUXMUVDUVLUULUULUUSUVNUVNU
      XPUXSYKUVLUXLUYAUUSKUVLUULUVNYMYFUVLUVCUYBUULLUVLUVCUUTUULLFUYBUVLUUTUULU
      VLUUSUXPUXSWSUVNYNUVLUULUUSUVNUXPUXSYOYJYFYPYQUVLUWHRYROUVHUUTQUVOYSUUMRY
      TUUAUUBUUCAUUJUVEUVGUVHUUDUUEUUF $.
  $}

  ${
    $d s t u v x y z f g h a b c d F $.  $d s t u v x y z f g h a b c d G $.
    $d s t u v x y z f g h a b c d ph $.

    ${
      itg2addnclem.1 $e |- L = { x | E. g e. dom S.1
          ( E. y e. RR+ ( z e. RR |-> if ( ( g ` z ) = 0 ,
            0 , ( ( g ` z ) + y ) ) ) oR <_ F /\ x = ( S.1 ` g ) ) } $.
      $( An alternate expression for the ` S.2 ` integral that includes an
         arbitrarily small but strictly positive "buffer zone" wherever the
         simple function is nonzero.  (Contributed by Brendan Leahy,
         10-Oct-2017.)  (Revised by Brendan Leahy, 10-Mar-2018.) $)
      itg2addnclem $p |- ( F : RR --> ( 0 [,] +oo ) ->
          ( S.2 ` F ) = sup ( L , RR* , < ) ) $=
        ( cr cc0 co cle wbr wceq wa cxr clt wcel adantr cvv cmin vf vb va vs vu
        cpnf wf cfv cv citg1 cdm wrex csup eqid caddc cif cmpt crp itg1cl rexrd
        a1i wss wn weq fveq1 oveq1d mpteq2dv breq1d rexbidv fveq2 anbi12d breq2
        id adantl ad2antlr ffvelrnda adantlr mpbid ifbothda adantlll wi sylancr
        wral 0re mpan2 ad2antrr reex eqidd feqmptd ofrfval2 syl imp breq2d cmnf
        wb wne c2 c0ex mpbird iftrue bitr3d rspcev eqeq1 anbi2d syl2an ad3antlr
        sylan simpr anim12i cdif ad3antrrr simplrl syl6eq eleq2d sylbid syl2anc
        cima simpl cmul cdiv simprl fvex ovex ifex offval2 ovif2 eqtrd oveq1 c1
        syl5eq eqeltrrd recnd ifbieq1d eqtr4d iffalse adantlrl halfcld oveq2d
        ex cc cicc cofr cab itg2val supeq1i wor xrltso simprr eqeltrd rexlimiva
        citg2 abssi supxrcl mp1i eqeq1d ifbieq2d eqeq2d cbvrexv 0le0 rpge0 i1ff
        syl6eqbr rpre addge01d readdcld ifcl iccssxr fss syl3anc mpand ralimdva
        xrletr 3imtr4d rexlimdva anim1d reximdva syl5bi ss2abdv simp3r 3ad2ant2
        sseld w3a rexlimdv3a abssdv xrsupss supub syld supxrlub simprrr simplll
        mpan wex csn cxp c0 2rp ne0ii ffvelrn elxrge0 sylib ralrimiva ralrimivw
        i1f0 simprd r19.2z syl6req biantrud fvconst2 sylan9eq mpteq2dva eqbrtrd
        itg10 mnflt spcev simp-4r simpllr ngtmnft necon1ad xrltle xrre syl22anc
        biimprd ccnv crn covol cnvimass fdm syl5sseq eqcomd wfun ffun difpreima
        cnvimarndm difeq1i difeq12d mpbi wfn ffn fniniseg syl6bi itg10a breqtrd
        dfss4 difeq1d biantrurd eldif syl6bbr bitr4d con2bid 3syl 0m0e0 ifeq2da
        cof simpll 1ex fconstmpt resubcl 2re cvol i1fima mblvol i1fima2 remulcl
        neldifsn 2cnd 2ne0 mulne0d redivcld mulid1d mul01d ifeq12d i1f1 i1fmulc
        i1fsub eleq1 fvmpt sylan9eqr wo ianor ifbid sylancl pm2.61d1 jaoi sylbi
        ifboth pm2.61i syl6reqr mpteq2ia i1fpos ad2antrl posdifd ovolge0 mulgt0
        mblss ltlen 2pos mpanl12 divgt0d elrpd inidm anim2i breq1 divcld npcand
        ofrfval pm2.24d impcom adantll sylanl1 oveq2 ifeq2d eqcoms nfmpt1 nfeq2
        fvmpt2 mpteq2da simplrr ltdiv1d recn 2halvesd pncand rehalfcl rehalfcld
        mpd eqtr3d ltsubaddd 3bitr2d itg1mulc mulcomd divassd divcan5rd 3eqtr3d
        fveq2d itg11 3eqtrd itg1sub divsubdird subsubd 3eqtrrd 3eqtr4d breqtrrd
        resubcld leidd ltnled biimpar ltled pm2.61dan iba bicomd breq12d syl6bb
        notbid pm4.53 simplbda jaod sylbir olcs itg1le adantllr pm2.61dane expr
        ltletrd an32s rexlimdvaa expimpd ancomsd exlimdv rexab 3imtr4g eqsupd
        impr ) HIUFUUAJZEUGZEUUKUHUAUIZEKUUBZLZAUIZWVNUJUHZMZNZUAUJUKZULZAUUCZO
[encoded data, 11920 characters]
        QXUNWWPXCXDVIWVHWVIXOWVKWVJYJYN $.
    $}

    itg2addnc.f1 $e |- ( ph -> F e. MblFn ) $.
    itg2addnc.f2 $e |- ( ph -> F : RR --> ( 0 [,) +oo ) ) $.
    $( Lemma for ~ itg2addnc .  The function described is a simple function.
       (Contributed by Brendan Leahy, 29-Oct-2017.) $)
    itg2addnclem2 $p |- ( ( ( ph /\ h e. dom S.1 ) /\ v e. RR+ ) ->
        ( x e. RR |-> if ( ( ( ( ( |_ ` ( ( F ` x ) / ( v / 3 ) ) ) - 1 ) x.
          ( v / 3 ) ) <_ ( h ` x ) /\ ( h ` x ) =/= 0 ) ,
        ( ( ( |_ ` ( ( F ` x ) / ( v / 3 ) ) ) - 1 ) x. ( v / 3 ) ) ,
          ( h ` x ) ) ) e. dom S.1 ) $=
      ( vt wcel wa cr co cle wbr cc0 syl wceq syl2anc cima crab vy cdm crp cdiv
      cv cfv c3 cfl cmin cmul wne cmpt cpnf cico wss sylancl ad2antrr ffvelrnda
      c1 wf 3ne0 pm3.2i redivcl 3expb ad2antlr cc redivcld reflcl remulcld eqid
      fmptd crn clt caddc cneg cun cfn wfn ax-mp mpan2 sylib adantr c0 wral frn
      sylibr ad3antlr wi syl3anc lemuldivd 1red bitrd peano2re cz csn cdif ccnv
      wb wn cin cvol mptpreima wo unrab inrab eqtri eqcom a1i rabbiia imdistani
      elsn ciun eqtr3i syl5eqr rabbidva imassrn syl5eq eqtr4d cmnf cioo adantlr
      rabeq cxr rexrd 3bitr4d imaeq1d syl6eq ad3antrrr mbfima eqeltrd ralrimiva
      mbfimasn inmbl eqeltrrd i1fima unmbl recnd ad4antr adantl eqtrd citg1 cif
      rge0ssre fss rpre 3re rpcnne0 3cn divne0 peano2rem i1ff csup cfz wfo fzfi
      ifcld ovex fnmpti dffn4 mpbi fofi mp2an unfi sylancr wrex cn0 cn 3nn nnrp
      i1frn rpdivcl elrege0 simprd divge0d flge0nn0 nn0ge0d w3a i1f0rn elex2 n0
      wex fimaxre2 3jca ffn dffn3 suprub suprcl letr lesubaddd ceige ceicl zred
      mpan2d sylbid syld adantrd imp flcld mpbir2and oveq1 oveq1d eqeq2d rspcev
      0zd elfz cvv elrnmpt elun1 elun2 ifclda ssfi ineq1i uneq12i fvex ifex nne
      ianor orbi2i bitr2i anbi1i eqif bitr4i 3bitr4i 3eqtr4ri eldifi sseld syl5
      rabiun cnvimarndm imaeq2i imaiun fdm fniniseg 3syl simplbda breq2d inrab2
      syl5sseq sseqin2 sselda ltdivmuld flflp1 elioomnf biantrurd bitr4d 3bitrd
      iunid dfdm4 feqmptd cnveqd cmbf i1fmbf jca 3expa finiunmbl uneq12d lttri2
      sylan 0re ibar andi 0xr elioopnf orbi12d syl6bb 1cnd simplr subadd2d recn
      3eqtr4a divmul3d syl5bb bitr3d imaundi zre peano2z mulcomd ltp1d ltmul2dd
      zcn eqbrtrd snunioo imaeq12d 3biant1d ad4antlr bicomd anbi12d elico2 flbi
      an32s stoic1a rabeq0 0mbl syl6eqel pm2.61dan notbid sylan2 ancoms adantll
      simpr imaeq2d elicopnf 3bitr2d ltadd1d ltaddsubd ltdivmul2d ltnled 3eqtrd
      pnfxr ltpnf syl5eqel mblvol eldifsn anim1d syl5bi ineq12d biimpri intnand
      bitri covol iffalsed eqtr mpancom simpll eqnetrd ex orcom imor necon3bbii
      necomd imbi12i ad2antll dmmpti sseqtri reldisj wfun ffun difeq1d sseqtr4d
      difpreima neldifsn i1fima2 ovolsscl i1fd ) ADUEZUUAUBIZJZCUEZUCIZJZHBKBUE
[encoded data, 10240 characters]
      GXVFUUXPWUCWIPYJWUD $.
    itg2addnc.f3 $e |- ( ph -> ( S.2 ` F ) e. RR ) $.
    itg2addnc.g2 $e |- ( ph -> G : RR --> ( 0 [,) +oo ) ) $.
    itg2addnc.g3 $e |- ( ph -> ( S.2 ` G ) e. RR ) $.
    $( Lemma incomprehensible in isolation split off to shorten proof of
       ~ itg2addnc .  (Contributed by Brendan Leahy, 11-Mar-2018.) $)
    itg2addnclem3 $p |- ( ph -> ( E. h e. dom S.1 ( E. y e. RR+
      ( z e. RR |-> if ( ( h ` z ) = 0 , 0 , ( ( h ` z ) + y ) ) ) oR <_
        ( F oF + G ) /\ s = ( S.1 ` h ) ) -> E. t E. u ( E. f e. dom S.1
      E. g e. dom S.1 ( ( E. c e. RR+ ( z e. RR |-> if ( ( f ` z ) = 0 , 0 ,
        ( ( f ` z ) + c ) ) ) oR <_ F /\ t = ( S.1 ` f ) ) /\ ( E. d e. RR+
      ( z e. RR |-> if ( ( g ` z ) = 0 , 0 , ( ( g ` z ) + d ) ) ) oR <_ G /\
        u = ( S.1 ` g ) ) ) /\ s = ( t + u ) ) ) ) $=
      ( cr co vx cv cfv cc0 wceq caddc cif cmpt cof cle wbr crp wrex citg1 wcel
      wa wex wi c3 cdiv cfl c1 cmin cmul wne adantrr syl2anc adantl wral oveq1d
      fveq2 fveq2d anbi12d ovex fvex ifex eqeq1d ifbieq2d wf ad2antrr ffvelrnda
      breq1 elrege0 sylib simprd adantr wn neeq1 breq1d imbi12d rge0ssre sseldi
      oveq1 ad2antlr rerpdivcld reflcl peano2rem 3syl remulcld lesub1dd lemul1d
      syl mpbid leadd1dd cc recnd ax-1cn sylancl a1i rpcnd adddird oveq2d eqtrd
      mulid2d bitri readdcld ifbothda imp eqbrtrd cvv reex eqidd feqmptd mpbird
      c0ex ofrfval2 oveq2 ifeq2d mpteq2dv wb oveq12d resubcld c2 eqtr3d offval2
      cneg eqeq2d anbi1d 2exbidv rexcom4 cdm itg2addnclem2 simplr i1fsub cn 3nn
      cofr nnrp ax-mp rpdivcl mpan2 weq breq12d neeq1d ifbieq12d eqid cpnf cico
      fvmpt df-ne rpred 1red flle subcl 3eqtr3rd rpne0d divcan1d breqtrd a1d wo
      npcan ianor anbi1i oranabs i1ff ad3antlr clt ltnled biimpar ltletrd ltled
      ltadd1dd sylan2b syl5bir ralrimiva rspcev ad2antrl wfn fnmpti inidm ofval
      expr ffn id simpr necon2bi iffalse 0m0e0 syl6eq subsubd rpre 1re readdcli
      con3i resubcl peano2re fllep1 addcli negcli negsub df-2 negeqi oveq1i 2cn
      mulneg1 sylancr syl5eqr 3eqtr3d rpcn negsubdi2d 3cn divcan2 mp3an23 3m1e2
      subdir mp3an12 syl5reqr negeqd mulcl negcld pncand peano2cn subsub4 pncan
      3ne0 3brtr3d addassd addcld addcomd letr syl3anc mpan2d lesubaddd leadd1d
      breqtrrd bitrd eqbrtrrd ex sylbid an32s subidd sylan9eqr pm2.24d ralimdva
      3imtr4d impr pncan3d mpteq2dva 3eqtr4d itg1add iba bi2anan9 bicomd oveq12
      ifcld spc2ev syl21anc fveq1 rexbidv anbi2d 2rexbidv syl5ibrcom rexlimdvaa
      rspc2ev eqeq1 impd rexlimdva rexbii exbii r19.41vv 2exbii 3bitrri syl6ibr
      ) ACSCUBZHUBZUCZUDUEZUDVWFBUBZUFTZUGZUHZIJUFUIZTZUJUUGZUKZBULUMZKUBZVWEUN
[encoded data, 8320 characters]
      VXAVVTVWAVWBVWC $.
    $( Alternate proof of ~ itg2add using the "buffer zone" definition from the
       first lemma, in which every simple function in the set is divided into
       to by dividing its buffer by a third and finding the largest allowable
       function locked to a grid laid out in increments of the new, smaller
       buffer up to the original simple function.  The measurability of this
       function follows from that of the augend, and subtracting it from the
       original simple function yields another simple function by ~ i1fsub ,
       which is allowable by the fact that the grid must have a mark between
       one third and two thirds the original buffer.  This has two advantages
       over the current approach: first, eliminating ~ ax-cc , and second,
       weakening the measurability hypothesis to only the augend.  (Contributed
       by Brendan Leahy, 31-Oct-2017.)  (Revised by Brendan Leahy,
       13-Mar-2018.) $)
    itg2addnc $p |- ( ph ->
        ( S.2 ` ( F oF + G ) ) = ( ( S.2 ` F ) + ( S.2 ` G ) ) ) $=
      ( vz cr cc0 wceq caddc co cle wbr crp wrex wa wcel vf vc vx vg vd cfv cif
      vs vt vu va vb vh vy cv cmpt citg1 cab clt citg2 wss simprr itg1cl adantr
      csup eqeltrd rexlimiva abssi a1i c0 i1f0 wral ne0i cpnf ffvelrnda elrege0
      wne c3 sylib simprd ralrimiva cvv reex c0ex eqidd feqmptd ofrfval2 mpbird
      ralrimivw r19.2z sylancr fveq2 fveq1 iftrued breq1d rexbidv rspcev anbi2d
      mpteq2dva eqeq1 sylibr syl cxr wf eqid itg2addnclem supxrub breq2 ralbidv
      mpan supxrre syl3anc adantl wi simpr ad2antlr breq1 imbi1d sylan ad2antrr
      wex eqbrtrd recnd sylan9eqr rpred readdcld letr mpand imp adantlr syl2anc
      oveq1d ex ifbothda ovex ifex wfn ffn rexlimdvva weq cofr cdm cof csn nnrp
      cxp cn 3nn mp2b cico itg10 syl6req biantrud fvconst2 sylan9eq bitr3d elab
      cicc icossicc fss mpan2 3syl eqeltrrd ressxr sstri sylancl supadd oveq12d
      rgen eqtrd ge0addcl sseldi inidm off itg2addnclem3 i1fadd ad3antlr reeanv
      biimpri ad2ant2r ifcl anbi1d oveq12 syl6eq adantll simpll simplbi addge0d
      simpl 00id a1d wn simplrr i1ff addid2d rpre min2 syl2an leadd2dd addge02d
      oveq1 mpbid letrd ifboth adantld simplrl addid1d addge01d adantrd addassd
      oveq2 min1 ltaddrpd ltled le2add syl22anc syl2and ralimdva anbi12d r19.26
      wb syl6bbr ovexd eqeq1d ifbieq2d offval 3imtr4d ifeq2d mpteq2dv syl5 a1dd
      ofval imp31 ad2ant2l itg1add eqcomd ancoms eqeq2d syl12anc exp31 exlimdvv
      impbid rexab anbi2i 19.42v anbi1i anass bitr2i exbii 3bitr2i bitri abbidv
      eqtr impd supeq1d sseli rexlimivv eqcomi rspceov mp3an3 2rexbidv abn0 wal
      spcev ad2antrl ad2antll le2addd alrimiv ralab syl6bb 3eqtrd 3eqtr4rd ) AI
[encoded data, 8080 characters]
      LVXNXKXLVVKVVL $.
  $}

  ${
    $d x y z w u v X $.  $d x y z w u v Y $.  $d x y z w u v F $.
    $d x y z w u v ph $.
    itg2gt0cn.2 $e |- ( ph -> X < Y ) $.
    itg2gt0cn.3 $e |- ( ph -> F : RR --> ( 0 [,) +oo ) ) $.
    itg2gt0cn.5 $e |- ( ( ph /\ x e. ( X (,) Y ) ) -> 0 < ( F ` x ) ) $.
    itg2gt0cn.cn $e |- ( ph ->
      ( F |` ( X (,) Y ) ) e. ( ( X (,) Y ) -cn-> CC ) ) $.
    $( ~ itg2gt0 holds on functions continuous on an open interval in the
       absence of ~ ax-cc .  The fourth hypothesis is made unnecessary by the
       continuity hypothesis.  (Contributed by Brendan Leahy, 16-Nov-2017.) $)
    itg2gt0cn $p |- ( ph -> 0 < ( S.2 ` F ) ) $=
      ( vw cc0 clt wbr co cxr wa cfv wcel cr cle vy vv vz vu cv cioo wrex citg2
      cq 0xr a1i wss cpnf wf syl wral wb sylib mpbird ralrimiva syl2anc sylancl
      supxrlub breq2 rexima bitrd syl3anc cif cmpt crp adantr simpr simplr cmin
      elrpd cabs wi caddc 0e0iccpnf ifcl eqid fmptd ad5antlr cvol rpre ad4antlr
      itg2cl wceq ax-mp ad3antlr adantl resubcld wn rexrd simpld ad5antr simprd
      ad4antr ifclda readdcld syl22anc rpgt0 mpbid xrlttrd ifboth breq1 posdifd
      cmnf ltled breqtrrd fveq2d weq breq1d fveq2 oveq1d ad6antlr ad2antlr cneg
      elrege0 absltd recnd biimpa rge0ssre ffvelrnda sseldi sylan2 ad3antrrr cc
      0le0 ifbothda iftrue 3brtr4d iffalse ifbi ifan eqtri cvv eqidd ad2antrr
      ex cima csup crn imassrn frn icossxr syl6ss syl5ss supxrcl c0 wne ltrelxr
      cico cxp ssbri brxp r19.2z wfn ffn ioossre qbtwnxr crab qre anim1i anasss
      ioon0 rpxr syl2an cin cicc ioorp ioossicc eqsstr3i sseli covol cdm ioombl
      cmul mblvol elioore xrltnle biimpar xrre2 mnfxr mnfle xrlelttrd ltsubposd
      syl32anc xrre ltaddpos2d lttrd ovolioo syl5eq eqeltrd mulgt0d iooin ifbid
      eliooord eleq2d mpteq2dv rpge0 itg2const eqtrd cofr oveq1 imbi12d rspccva
      sylanbrc leidd elioo2 3anass syl6bb renegcld ltaddsub2d negsubd ltsubaddd
      w3a bitr3d anbi12d pm5.32da bitr4d pm3.35 ancoms rpcn negsubdi2d simprbda
      anbi1d ltsub1d an4s syldan iftrued anassrs pm2.61d1 elin breq2d ralrimivw
      elrab 3brtr4g reex ofrfval2 itg2le xrltletrd cres ccncf fssres mpan2 3syl
      fss cncfi fvres oveq12d breq12d imbi2d ralbidva rexbidv 3imtr3d rexlimdva
      imp r19.29a sylbid icossicc simprbi fvexd feqmptd jca32 reximdv2 xrltletr
      expl syl5 syld mpd ) AKUAUEZLMZVVLCDEUFNZUUAZOLUUBZLMZPZUAUIUGZKCUHQZLMZA
[encoded data, 6640 characters]
      NVVTVVGVGVUQVVJVVK $.
  $}

  ${
    $d x A $.  $d x ph $.
    ibladdnclem.1 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
    ibladdnclem.2 $e |- ( ( ph /\ x e. A ) -> C e. RR ) $.
    ibladdnclem.3 $e |- ( ( ph /\ x e. A ) -> D = ( B + C ) ) $.
    ibladdnclem.4 $e |- ( ph -> ( x e. A |-> B ) e. MblFn ) $.
    ibladdnclem.6 $e |- ( ph -> ( S.2 ` ( x e. RR |->
      if ( ( x e. A /\ 0 <_ B ) , B , 0 ) ) ) e. RR ) $.
    ibladdnclem.7 $e |- ( ph -> ( S.2 ` ( x e. RR |->
      if ( ( x e. A /\ 0 <_ C ) , C , 0 ) ) ) e. RR ) $.
    $( Lemma for ~ ibladdnc ; cf ~ ibladdlem , whose fifth hypothesis is
       rendered unnecessary by the weakened hypotheses of ~ itg2addnc .
       (Contributed by Brendan Leahy, 31-Oct-2017.) $)
    ibladdnclem $p |- ( ph -> ( S.2 ` ( x e. RR |->
      if ( ( x e. A /\ 0 <_ D ) , D , 0 ) ) ) e. RR ) $=
      ( cr cc0 wcel cle wbr cif caddc 0re cpnf cicc co cv wa cmpt wf citg2 ifan
      cfv cxr readdcld eqeltrd ifcl sylancl rexrd max1 sylancr elxrge0 sylanbrc
      wn 0e0iccpnf a1i ifclda adantr syl5eqel eqid fmptd cof reex eqidd offval2
      wceq iftrue ibar ifbid oveq12d eqtr2d 00id simpl iffalsed iffalse 3eqtr4a
      cvv con3i pm2.61i mpteq2i syl6eq fveq2d cvol cdm wss mblss syl rembl cdif
      mbfdm2 eldifn adantl intnanrd cmbf mpteq2ia mbfpos syl5eqelr cico elrege0
      mbfss 0e0icopnf itg2addnc eqtr3d cofr addge0d wral le2addd eqbrtrd ifboth
      max2 breq1 syl2anc 3brtr4d ex pm2.61d1 syl5eqbr ralrimivw ofrfval2 mpbird
      0le0 itg2le syl3anc itg2lecl ) AMNUAUBUCZBMBUDZCOZNFPQZUEFNRZUFZUGZBMYMND
      PQZDNRZNEPQZENRZSUCZNRZUFZUHUJZMOYPUHUJZUUEPQZUUFMOABMYOYKYPAYLMOZUEYOYMY
      NFNRZNRZYKYMYNFNUIZAUUJYKOUUHAYMUUINYKAYMUEZUUIUKONUUIPQZUUIYKOUULUUIUULF
      MOZNMOZUUIMOUULFDESUCZMIUULDEGHULUMZTYNFNMUNUOUPUULUUOUUNUUMTUUQNFUQURUUI
      USUTNYKOAYMVAZUEZVBVCZVDVEVFZYPVGVHZAUUEBMYMYRUEZDNRZUFZUHUJZBMYMYTUEZENR
      ZUFZUHUJZSUCZMAUVEUVISVIUCZUHUJUUEUVKAUVLUUDUHAUVLBMUVDUVHSUCZUFUUDABMUVD
      UVHSUVEUVIWDMMMWDOAVJVCZAUVDMOZUUHAUVDYMYSNRZMYMYRDNUIZAYMYSNMUULDMOZUUOY
      SMOZGTYRDNMUNUOZUUOUUSTVCZVDVFZVEAUVHMOUUHAUVHYMUUANRZMYMYTENUIZAYMUUANMU
      ULEMOZUUOUUAMOZHTYTENMUNUOZUWAVDVFVEAUVEVKAUVIVKVLBMUVMUUCYMUVMUUCVMYMUUC
      UUBUVMYMUUBNVNZYMYSUVDUUAUVHSYMYRUVCDNYMYRVOVPZYMYTUVGENYMYTVOVPVQVRUURNN
      SUCNUVMUUCVSUURUVDNUVHNSUURUVCDNUVCYMYMYRVTWEWAUURUVGENUVGYMYMYTVTWEWAVQY
      MUUBNWBZWCWFWGWHWIAUVEUVIABCMUVDMACWJWKZOCMWLABCDMJGWQCWMWNMUWKOAWOVCAUVO
      YMUWBVEAYLMCWPOZUEZUVCDNUWMYMYRUWLUURAYLMCWRWSWTWAABCUVDUFBCYSUFXABCYSUVD
      UWIXBABCDGJXCXDXGABMUVDNUAXEUCZUVEAUVDUWNOUUHAUVDUVPUWNUVQAYMYSNUWNUULUVS
      NYSPQZYSUWNOUVTUULUUOUVRUWOTGNDUQURZYSXFUTNUWNOUUSXHVCZVDVFVEUVEVGVHKABMU
      VHUWNUVIAUVHUWNOUUHAUVHUWCUWNUWDAYMUUANUWNUULUWFNUUAPQZUUAUWNOUWGUULUUOUW
      EUWRTHNEUQURZUUAXFUTUWQVDVFVEUVIVGVHLXIXJAUVFUVJKLULUMAYQMYKUUDUGYPUUDPXK
      QZUUGUVBABMUUCYKUUDAUUCYKOUUHAYMUUBNYKUULUUBUKONUUBPQZUUBYKOUULUUBUULYSUU
      AUVTUWGULUPUULYSUUAUVTUWGUWPUWSXLZUUBUSUTUUTVDVEZUUDVGVHAUWTYOUUCPQZBMXMA
      UXDBMAYOUUJUUCPUUKAYMUUJUUCPQZAYMUXEUULUUIUUBUUJUUCPUULFUUBPQZUXAUUIUUBPQ
      ZUULFUUPUUBPIUULDEYSUUAGHUVTUWGUULUUOUVRDYSPQTGNDXQURUULUUOUWEEUUAPQTHNEX
      QURXNXOUXBYNUXFUXAUXGFNFUUIUUBPXRNUUIUUBPXRXPXSYMUUJUUIVMAYMUUINVNWSYMUUC
      UUBVMAUWHWSXTYAUURNNUUJUUCPNNPQUURYGVCYMUUINWBUWJXTYBYCYDABMYOUUCPYPUUDWD
      YKYKUVNUVAUXCAYPVKAUUDVKYEYFYPUUDYHYIUUEYPYJYI $.
  $}

  ${
    $d x A $.  $d x V $.  $d x ph $.
    ibladdnc.1 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    ibladdnc.2 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    ibladdnc.3 $e |- ( ( ph /\ x e. A ) -> C e. V ) $.
    ibladdnc.4 $e |- ( ph -> ( x e. A |-> C ) e. L^1 ) $.
    ${
      ibladdnc.m $e |- ( ph -> ( x e. A |-> ( B + C ) ) e. MblFn ) $.
      $( Choice-free analogue of ~ itgadd .  A measurability hypothesis is
         necessitated by the loss of ~ mbfadd ; for large classes of functions,
         such as continuous functions, it should be relatively easy to show.
         (Contributed by Brendan Leahy, 1-Nov-2017.) $)
      ibladdnc $p |- ( ph -> ( x e. A |-> ( B + C ) ) e. L^1 ) $=
        ( cmpt wcel cr cc0 cfv cle wbr wa cif caddc co cibl cmbf cre citg2 cneg
        cim iblmbf syl mbfmptcl recld readdd ismbfcn2 mpbid simpld w3a iblcnlem
        simp2d ibladdnclem renegcld negeqd recnd negdid eqtrd mbfneg simprd jca
        cv eqid imcld imaddd simp3d cvv ovexd mpbir3and ) ABCDEUAUBZLZUCMVRUDMB
        NBVICMZOVQUEPZQRSVTOTLUFPZNMZBNVSOVTUGZQRSWCOTLUFPZNMZSBNVSOVQUHPZQRSWF
        OTLUFPZNMZBNVSOWFUGZQRSWIOTLUFPZNMZSKAWBWEABCDUEPZEUEPZVTAVSSZDABCDFABC
        DLZUCMZWOUDMZHWOUIUJZGUKZULZWNEABCEFABCELZUCMZXAUDMZJXAUIUJIUKZULZWNDEW
        SXDUMZABCWLLUDMZBCDUHPZLUDMZAWQXGXISWRABCDWSUNUOZUPZABNVSOWLQRSWLOTLUFP
        ZNMZBNVSOWLUGZQRSXNOTLUFPZNMZAWQXMXPSZBNVSOXHQRSXHOTLUFPZNMZBNVSOXHUGZQ
        RSXTOTLUFPZNMZSZAWPWQXQYCUQHABCDXLXOXRYAFXLVJXOVJXRVJYAVJGURUOZUSZUPABN
        VSOWMQRSWMOTLUFPZNMZBNVSOWMUGZQRSYHOTLUFPZNMZAXCYGYJSZBNVSOEUHPZQRSYLOT
        LUFPZNMZBNVSOYLUGZQRSYOOTLUFPZNMZSZAXBXCYKYRUQJABCEYFYIYMYPFYFVJYIVJYMV
        JYPVJIURUOZUSZUPUTABCXNYHWCWNWLWTVAWNWMXEVAWNWCWLWMUAUBZUGXNYHUAUBWNVTU
        UAXFVBWNWLWMWNWLWTVCWNWMXEVCVDVEABCWLNWTXKVFAXMXPYEVGAYGYJYTVGUTVHAWHWK
        ABCXHYLWFWNDWSVKZWNEXDVKZWNDEWSXDVLZAXGXIXJVGZAXSYBAWQXQYCYDVMZUPAYNYQA
        XCYKYRYSVMZUPUTABCXTYOWIWNXHUUBVAWNYLUUCVAWNWIXHYLUAUBZUGXTYOUAUBWNWFUU
        HUUDVBWNXHYLWNXHUUBVCWNYLUUCVCVDVEABCXHNUUBUUEVFAXSYBUUFVGAYNYQUUGVGUTV
        HABCVQWAWDWGWJVNWAVJWDVJWGVJWJVJWNDEUAVOURVP $.

      ${
        itgaddnclem.1 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
        itgaddnclem.2 $e |- ( ( ph /\ x e. A ) -> C e. RR ) $.
        ${
          itgaddnclem.3 $e |- ( ( ph /\ x e. A ) -> 0 <_ B ) $.
          itgaddnclem.4 $e |- ( ( ph /\ x e. A ) -> 0 <_ C ) $.
          $( Lemma for ~ itgaddnc ; cf. ~ itgaddlem1 .  (Contributed by Brendan
             Leahy, 7-Nov-2017.) $)
          itgaddnclem1 $p |- ( ph -> S. A ( B + C ) _d x =
              ( S. A B _d x + S. A C _d x ) ) $=
            ( caddc co cr wcel cc0 citg cv cif cmpt citg2 cfv readdcld ibladdnc
            wa addge0d itgposval cof oveq12d cpnf cico cvol cdm wss cibl iblmbf
            cmbf syl mbfdm2 mblss a1i cle wbr elrege0 sylanbrc 0e0icopnf ifclda
            rembl wn adantr cdif eldifn adantl iffalse iftrue mpteq2ia syl5eqel
            wceq mbfss eqid fmptd iblpos mpbid itg2addnc cvv reex eqidd offval2
            simprd eqtr4d 00id syl6eq pm2.61i mpteq2i fveq2d 3eqtr2d ) ABCDEPQZ
            UABRBUBZCSZXATUCZUDZUEUFZBCDUAZBCEUAZPQZABCXAAXCUIZDELMUGABCDEFGHIJ
            KUHXJDELMNOUJUKAXIBRXCDTUCZUDZUEUFZBRXCETUCZUDZUEUFZPQXLXOPULQZUEUF
            XFAXGXMXHXPPABCDLHNUKABCEMJOUKUMAXLXOABCRXKTUNUOQZACUPUQZSCRURABCDF
            ABCDUDZUSSZXTVASZHXTUTVBZGVCCVDVBRXSSAVLVEAXKXRSZXCAXCDTXRXJDRSTDVF
            VGDXRSLNDVHVITXRSAXCVMZUIVJVEZVKZVNAXBRCVOSZUIYEXKTWBYHYEAXBRCVPVQX
            CDTVRZVBABCXKUDXTVABCXKDXCDTVSZVTYCWAWCABRXKXRXLAYDXBRSZYGVNZXLWDWE
            AYBXMRSZAYAYBYMUIHABCDLNWFWGWMABRXNXRXOAXNXRSYKAXCETXRXJERSTEVFVGEX
            RSMOEVHVIYFVKVNZXOWDWEABCEUDZVASZXPRSZAYOUSSYPYQUIJABCEMOWFWGWMWHAX
            QXEUEAXQBRXKXNPQZUDXEABRXKXNPXLXOWIXRXRRWISAWJVEYLYNAXLWKAXOWKWLBRY
            RXDXCYRXDWBXCYRXAXDXCXKDXNEPYJXCETVSUMXCXATVSWNYEYRTXDYEYRTTPQTYEXK
            TXNTPYIXCETVRUMWOWPXCXATVRWNWQWRWPWSWTWN $.
        $}

        $( Lemma for ~ itgaddnc ; cf. ~ itgaddlem2 .  (Contributed by Brendan
           Leahy, 10-Nov-2017.)  (Revised by Brendan Leahy, 3-Apr-2018.) $)
        itgaddnclem2 $p |- ( ph -> S. A ( B + C ) _d x =
            ( S. A B _d x + S. A C _d x ) ) $=
          ( cc0 caddc co cle wceq wcel cr wbr cif citg cneg cmin cv max0sub syl
          wa oveq12d 0re ifcl sylancl recnd renegcld addsub4d readdcld 3eqtr4rd
          addsubeq4d mpbird itgeq2dv cmpt cibl ibladdnc iblre mpbid simprd cmbf
          simpld iblmbf mbfposadd max1 sylancr addge0d iftrued oveq2d mpteq2dva
          mbfneg negdid oveq1d add4d negeq neg0 syl6eq 0le0 syl5breqr id adantl
          eqtrd 00id wne ovif2 wn wb negne0bd biimpa le0neg2d leloe bitrd df-ne
          clt wo biorf sylbi orcom syl6rbb sylan9bb syldan ltnle adantr addcomd
          negidd ifbieq12d ifnot syl5eq pm2.61dane 3eqtrd eqeltrrd itgaddnclem1
          addid1d eqeltrd le0neg1d bitr3d 3eqtr3d itgcl addcld itgreval 3eqtr4d
          cc ) ABCNDEOPZQUAZYJNUBZUCZBCNYJUDZQUAZYNNUBZUCZUEPZBCNDQUAZDNUBZUCZB
[encoded data, 4720 characters]
          WJUWSYGAUUPUUFUUQUUNOABCDLHYGABCEMJYGUJYH $.
      $}

      $d x y $.  $d y B $.  $d y C $.
      $( Choice-free analogue of ~ itgadd .  (Contributed by Brendan Leahy,
         11-Nov-2017.) $)
      itgaddnc $p |- ( ph -> S. A ( B + C ) _d x =
          ( S. A B _d x + S. A C _d x ) ) $=
        ( caddc co cre citg ci wcel cmpt cr cc vy cfv cim cmul cibl cmbf iblmbf
        cv wa syl mbfmptcl readdd itgeq2dv recld iblcn mpbid simpld ccom addcld
        eqidd wf ref feqmptd fveq2 fmptco mpteq2dva eqtrd wb eqid fmptd ismbfcn
        a1i eqeltrrd itgaddnclem2 imaddd imcld simprd imf oveq2d ax-icn oveq12d
        itgcl adddid mulcl sylancr add4d cvv ovexd ibladdnc itgcnval 3eqtr4d )
        ABCDELMZNUBZOZPBCWLUCUBZOZUDMZLMZBCDNUBZOZPBCDUCUBZOZUDMZLMZBCENUBZOZPB
        CEUCUBZOZUDMZLMZLMZBCWLOBCDOZBCEOZLMAWRWTXFLMZXCXILMZLMXKAWNXNWQXOLAWNB
        CWSXELMZOXNABCWMXPABUHCQUIZDEABCDFABCDRZUEQZXRUFQHXRUGUJGUKZABCEFABCERZ
        UEQZYAUFQJYAUGUJIUKZULZUMABCWSXESXQDXTUNZABCWSRUEQZBCXARUEQZAXSYFYGUIHA
        BCDXTUOUPZUQZXQEYCUNZABCXERUEQZBCXGRUEQZAYBYKYLUIJABCEYCUOUPZUQZANBCWLR
        ZURZBCXPRZUFAYPBCWMRYQABUACTWLUAUHZNUBWMYONXQDEXTYCUSZAYOUTZAUATSNTSNVA
        AVBVLVCYRWLNVDVEABCWMXPYDVFVGAYPUFQZUCYOURZUFQZAYOUFQZUUAUUCUIZKACTYOVA
        UUDUUEVHABCWLTYOYSYOVIVJCYOVKUJUPZUQVMYEYJVNVGAWQPXBXHLMZUDMXOAWPUUGPUD
        AWPBCXAXGLMZOUUGABCWOUUHXQDEXTYCVOZUMABCXAXGSXQDXTVPZAYFYGYHVQZXQEYCVPZ
        AYKYLYMVQZAUUBBCUUHRZUFAUUBBCWORUUNABUACTWLYRUCUBWOYOUCYSYTAUATSUCTSUCV
        AAVRVLVCYRWLUCVDVEABCWOUUHUUIVFVGAUUAUUCUUFVQVMUUJUULVNVGVSAPXBXHPTQZAV
        TVLABCXASUUJUUKWBZABCXGSUULUUMWBZWCVGWAAWTXFXCXIABCWSSYEYIWBABCXESYJYNW
        BAUUOXBTQXCTQVTUUPPXBWDWEAUUOXHTQXITQVTUUQPXHWDWEWFVGABCWLWGXQDELWHABCD
        EFGHIJKWIWJAXLXDXMXJLABCDFGHWJABCEFIJWJWAWK $.
    $}

    iblsubnc.m $e |- ( ph -> ( x e. A |-> ( B - C ) ) e. MblFn ) $.
    $( Choice-free analogue of ~ iblsub .  (Contributed by Brendan Leahy,
       11-Nov-2017.) $)
    iblsubnc $p |- ( ph -> ( x e. A |-> ( B - C ) ) e. L^1 ) $=
      ( cneg co cmpt cibl wcel cmbf iblmbf syl mbfmptcl caddc cmin cv mpteq2dva
      wa negsubd cc negcld iblneg eqeltrd ibladdnc eqeltrrd ) ABCDELZUAMZNZBCDE
      UBMZNZOABCUNUPABUCCPUEZDEABCDFABCDNZOPUSQPHUSRSGTZABCEFABCENZOPVAQPJVARSI
      TZUFUDZABCDUMUGUTHUREVBUHABCEFIJUIAUOUQQVCKUJUKUL $.
    $( Choice-free analogue of ~ itgsub .  (Contributed by Brendan Leahy,
       11-Nov-2017.) $)
    itgsubnc $p |- ( ph -> S. A ( B - C ) _d x =
      ( S. A B _d x - S. A C _d x ) ) $=
      ( cneg caddc co citg cmin cmpt cibl wcel cmbf cc iblmbf syl negcld iblneg
      mbfmptcl negsubd mpteq2dva eqeltrd itgaddnc itgneg oveq2d eqtr4d itgeq2dv
      cv wa itgcl 3eqtr3d ) ABCDELZMNZOZBCDOZBCEOZLZMNZBCDEPNZOVBVCPNAVAVBBCUSO
      ZMNVEABCDUSUAABCDFABCDQZRSVHTSHVHUBUCGUFZHABUOCSUPZEABCEFABCEQZRSVKTSJVKU
      BUCIUFZUDABCEFIJUEABCUTQBCVFQTABCUTVFVJDEVIVLUGZUHKUIUJAVDVGVBMABCEFIJUKU
      LUMABCUTVFVMUNAVBVCABCDFGHUQABCEFIJUQUGUR $.
  $}

  ${
    $d x y A $.  $d x y ph $.  $d y B $.  $d y V $.
    iblabsnc.1 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    iblabsnc.2 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    ${
      $d y G $.  $d y F $.
      iblabsnclem.1 $e |- G =
        ( x e. RR |-> if ( x e. A , ( abs ` ( F ` B ) ) , 0 ) ) $.
      iblabsnclem.2 $e |- ( ph -> ( x e. A |-> ( F ` B ) ) e. L^1 ) $.
      iblabsnclem.3 $e |- ( ( ph /\ x e. A ) -> ( F ` B ) e. RR ) $.
      $( Lemma for ~ iblabsnc ; cf. ~ iblabslem .  (Contributed by Brendan
         Leahy, 7-Nov-2017.) $)
      iblabsnclem $p |- ( ph -> ( G e. MblFn /\ ( S.2 ` G ) e. RR ) ) $=
        ( wcel cr cc0 cmpt wbr wa co caddc cmbf citg2 cfv cabs cif cvol cdm wss
        vy cle cneg cibl w3a iblrelem mpbid simp1d mbfdm2 mblss syl rembl recnd
        cv a1i abscld 0re ifcl sylancl cdif wceq eldifn adantl iffalse mpteq2ia
        wn iftrue eqid fmptd ccnv cpnf cioo cima cmnf cun crab wo clt biantrurd
        adantlr simplr absled notbid ltnled cxr renegcl rexrd ad2antlr elioomnf
        renegcld 3bitr2d rexr elioopnf orbi12d ianor syl6bbr 3bitr4rd mptpreima
        wb rabbidva uneq12i unrab eqtri 3eqtr4g wf iblmbf mbfima syl2anc adantr
        unmbl eqeltrd absltd bitrd 3anass elioo2 ismbf2d syl5eqel mbfss cof cvv
        bitr4d cico ifan max1 sylancr elrege0 ifclda eqidd oveq12d syl5eq eqtrd
        sylanbrc reex 0e0icopnf offval2 oveq12i max0add 3eqtr4d ex 00id 3eqtr4a
        pm2.61d1 mpteq2dv syl6reqr fveq2d ibar ifbid mbfpos syl5eqelr itg2addnc
        simp2d simp3d readdcld jca ) AFUAMFUBUCZNMAFBNBVBZCMZDEUCZUDUCZOUEZPZUA
        JABCNUVHNACUFUGZMCNUHABCUVFNABCUVFPZUAMZBNUVEOUVFUJQZRZUVFOUEZPZUBUCZNM
        ZBNUVEOUVFUKZUJQZRUVSOUEZPZUBUCZNMZAUVKULMZUVLUVRUWDUMKABCUVFLUNUOZUPZL
        UQZCURUSZNUVJMAUTVCZAUVERZUVGNMZONMZUVHNMUWKUVFUWKUVFLVAVDZVEUVEUVGONVF
        VGAUVDNCVHMZRZUVEVNZUVHOVIUWOUWQAUVDNCVJVKZUVEUVGOVLZUSABCUVHPBCUVGPZUA
        BCUVHUVGUVEUVGOVOZVMAUICUWTABCUVGNUWTUWNUWTVPZVQUWHAUIVBZNMZRZUWTVRZUXC
        VSVTSZWAZUVKVRZWBUXCUKZVTSZWAZUXIUXGWAZWCZUVJUXEUVGUXGMZBCWDUVFUXKMZUVF
        UXGMZWEZBCWDZUXHUXNUXEUXOUXRBCUXEUVERZUXCUVGWFQZUWLUYARZUXRUXOUXTUWLUYA
        AUVEUWLUXDUWNWHZWGUXTUVGUXCUJQZVNUXJUVFUJQZUVFUXCUJQZRZVNZUYAUXRUXTUYDU
        YGUXTUVFUXCAUVEUVFNMZUXDLWHZAUXDUVEWIZWJWKUXTUXCUVGUYKUYCWLUXTUXRUYEVNZ
        UYFVNZWEUYHUXTUXPUYLUXQUYMUXTUXPUYIUVFUXJWFQZRZUYNUYLUXTUXJWMMZUXPUYOXG
        UXDUYPAUVEUXDUXJUXCWNWOZWPUXJUVFWQUSUXTUYIUYNUYJWGUXTUVFUXJUYJUXTUXCUYK
        WRWLWSUXTUXQUYIUXCUVFWFQZRZUYRUYMUXTUXCWMMZUXQUYSXGUXDUYTAUVEUXCWTZWPZU
        XCUVFXAUSUXTUYIUYRUYJWGUXTUXCUVFUYKUYJWLWSXBUYEUYFXCXDXEUXTUYTUXOUYBXGV
        UBUXCUVGXAUSXEXHBCUVGUXGUWTUXBXFUXNUXPBCWDZUXQBCWDZWCUXSUXLVUCUXMVUDBCU
        VFUXKUVKUVKVPZXFBCUVFUXGUVKVUEXFXIUXPUXQBCXJXKXLAUXNUVJMZUXDAUVLCNUVKXM
        ZVUFAUWEUVLKUVKXNUSZABCUVFNUVKLVUEVQZUVLVUGRUXLUVJMUXMUVJMVUFCWBUXJUVKX
        OCUXCVSUVKXOUXLUXMXRXPXPXQXSUXEUXFWBUXCVTSZWAZUXIUXJUXCVTSZWAZUVJUXEUVG
        VUJMZBCWDUVFVULMZBCWDVUKVUMUXEVUNVUOBCUXTVUNUYIUXJUVFWFQZUVFUXCWFQZUMZV
        UOUXTVUNUYIVUPVUQRZRZVURUXTVUNVUSVUTUXTVUNUWLUVGUXCWFQZRZVVAVUSUXTUYTVU
        NVVBXGVUBUXCUVGWQUSUXTUWLVVAUYCWGUXTUVFUXCUYJUYKXTWSUXTUYIVUSUYJWGYAUYI
        VUPVUQYBXDUXDVUOVURXGZAUVEUXDUYPUYTVVCUYQVUAUXJUXCUVFYCXPWPYIXHBCUVGVUJ
        UWTUXBXFBCUVFVULUVKVUEXFXLAVUMUVJMZUXDAUVLVUGVVDVUHVUICUXJUXCUVKXOXPXQX
        SYDYEYFYEAUVCUVQUWCTSZNAUVCUVPUWBTYGSZUBUCVVEAFVVFUBAVVFUVIFAVVFBNUVOUW
        ATSZPUVIABNUVOUWATUVPUWBYHOVSYJSZVVHNYHMAUUAVCAUVOVVHMZUVDNMZAUVOUVEUVM
        UVFOUEZOUEZVVHUVEUVMUVFOYKZAUVEVVKOVVHUWKVVKNMZOVVKUJQZVVKVVHMUWKUYIUWM
        VVNLVEUVMUVFONVFVGUWKUWMUYIVVOVELOUVFYLYMVVKYNYTOVVHMAUWQRUUBVCZYOYEZXQ
        ZAUWAVVHMVVJAUWAUVEUVTUVSOUEZOUEZVVHUVEUVTUVSOYKZAUVEVVSOVVHUWKVVSNMZOV
        VSUJQZVVSVVHMUWKUVSNMZUWMVWBUWKUVFLWRZVEUVTUVSONVFVGUWKUWMVWDVWCVEVWEOU
        VSYLYMVVSYNYTVVPYOYEXQZAUVPYPAUWBYPUUCABNVVGUVHAVVGVVLVVTTSZUVHUVOVVLUW
        AVVTTVVMVWAUUDAUVEVWGUVHVIZAUVEVWHUWKVVKVVSTSZUVGVWGUVHUWKUYIVWIUVGVILU
        VFUUEUSUWKVVLVVKVVTVVSTUVEVVLVVKVIAUVEVVKOVOVKUVEVVTVVSVIAUVEVVSOVOVKYQ
        UVEUVHUVGVIAUXAVKUUFUUGUWQOOTSOVWGUVHUUHUWQVVLOVVTOTUVEVVKOVLZUVEVVSOVL
        YQUWSUUIUUJYRUUKYSJUULUUMAUVPUWBABCNUVOVVHUWIUWJAVVIUVEVVQXQUWPUWQUVOOV
        IUWRUWQUVOVVLOVVMVWJYRUSABCUVOPBCVVKPUABCVVKUVOUVEUVMUVNUVFOUVEUVMUUNUU
        OVMABCUVFLUWGUUPUUQYFABNUVOVVHUVPVVRUVPVPVQAUVLUVRUWDUWFUUSZABNUWAVVHUW
        BVWFUWBVPVQAUVLUVRUWDUWFUUTZUURYSAUVQUWCVWKVWLUVAXSUVB $.
    $}
    iblabsnc.m $e |- ( ph -> ( x e. A |-> ( abs ` B ) ) e. MblFn ) $.
    $( Choice-free analogue of ~ iblabs .  As with ~ ibladdnc , a measurability
       hypothesis is needed.  (Contributed by Brendan Leahy, 7-Nov-2017.) $)
    iblabsnc $p |- ( ph -> ( x e. A |-> ( abs ` B ) ) e. L^1 ) $=
      ( cabs cfv cmpt wcel cr cc0 citg2 co caddc cle wbr ci cibl cmbf cpnf cicc
      cv cif wf cre cim wa cxr iblmbf syl mbfmptcl abscld rexrd absge0d elxrge0
      sylanbrc 0e0iccpnf a1i ifclda adantr eqid fmptd cof cico reex recld recnd
      cvv elrege0 0e0icopnf imcld eqidd offval2 wceq iftrue oveq12d eqtr4d 00id
      wn iffalse 3eqtr4a pm2.61i mpteq2i syl6req fveq2d iblcn mpbid iblabsnclem
      simpld simprd itg2addnc readdcld eqeltrd cofr addge0d wral cmul cc ax-icn
      eqtrd sylancr abstrid adantl replimd absmul c1 absi oveq1i mulid2d syl5eq
      mulcl eqtr2d oveq2d 3brtr4d ex pm2.61d1 ralrimivw ofrfval2 mpbird syl3anc
      0le0 itg2le itg2lecl iblpos mpbir2and ) ABCDIJZKZUALYJUBLBMBUEZCLZYINUFZK
      ZOJZMLZHAMNUCUDPZYNUGZBMYLDUHJZIJZDUIJZIJZQPZNUFZKZOJZMLYOUUFRSZYPABMYMYQ
      YNAYMYQLYKMLZAYLYINYQAYLUJZYIUKLNYIRSYIYQLUUIYIUUIDABCDEABCDKZUALZUUJUBLG
      UUJULUMFUNZUOZUPUUIDUULUQZYIURUSNYQLAYLWBZUJZUTVAZVBVCZYNVDVEZAUUFBMYLYTN
      UFZKZOJZBMYLUUBNUFZKZOJZQPZMAUUFUVAUVDQVFPZOJUVFAUUEUVGOAUVGBMUUTUVCQPZKU
      UEABMUUTUVCQUVAUVDVKNUCVGPZUVIMVKLAVHVAZAUUTUVILUUHAYLYTNUVIUUIYTMLNYTRSY
      TUVILUUIYSUUIYSUUIDUULVIZVJZUOZUUIYSUVLUQZYTVLUSNUVILUUPVMVAZVBVCZAUVCUVI
      LUUHAYLUUBNUVIUUIUUBMLNUUBRSUUBUVILUUIUUAUUIUUAUUIDUULVNZVJZUOZUUIUUAUVRU
      QZUUBVLUSUVOVBVCZAUVAVOAUVDVOVPBMUVHUUDYLUVHUUDVQYLUVHUUCUUDYLUUTYTUVCUUB
      QYLYTNVRYLUUBNVRVSYLUUCNVRZVTUUONNQPNUVHUUDWAUUOUUTNUVCNQYLYTNWCYLUUBNWCV
      SYLUUCNWCZWDWEWFWGWHAUVAUVDAUVAUBLZUVBMLZABCDUHUVAEFGUVAVDZABCYSKUALZBCUU
      AKUALZAUUKUWGUWHUJGABCDUULWIWJZWLUVKWKZWLABMUUTUVIUVAUVPUWFVEAUWDUWEUWJWM
      ZABMUVCUVIUVDUWAUVDVDZVEAUVDUBLUVEMLABCDUIUVDEFGUWLAUWGUWHUWIWMUVQWKWMZWN
      XCAUVBUVEUWKUWMWOWPAYRMYQUUEUGYNUUERWQSZUUGUUSABMUUDYQUUEAUUDYQLUUHAYLUUC
      NYQUUIUUCUKLNUUCRSUUCYQLUUIUUCUUIYTUUBUVMUVSWOUPUUIYTUUBUVMUVSUVNUVTWRUUC
      URUSUUQVBVCZUUEVDVEAUWNYMUUDRSZBMWSAUWPBMAYLUWPAYLUWPUUIYSTUUAWTPZQPZIJZY
      TUWQIJZQPZYMUUDRUUIYSUWQUVLUUITXALZUUAXALZUWQXALXBUVRTUUAXNXDXEUUIYMYIUWS
      YLYMYIVQAYLYINVRXFUUIDUWRIUUIDUULXGWHXCUUIUUDUUCUXAYLUUDUUCVQAUWBXFUUIUUB
      UWTYTQUUIUWTTIJZUUBWTPZUUBUUIUXBUXCUWTUXEVQXBUVRTUUAXHXDUUIUXEXIUUBWTPUUB
      UXDXIUUBWTXJXKUUIUUBUUIUUBUVSVJXLXMXOXPXCXQXRUUONNYMUUDRNNRSUUOYDVAYLYINW
      CUWCXQXSXTABMYMUUDRYNUUEVKYQYQUVJUURUWOAYNVOAUUEVOYAYBYNUUEYEYCUUFYNYFYCA
      BCYIUUMUUNYGYH $.
  $}

  ${
    $d k x A $.  $d k B $.  $d k x C $.  $d k x ph $.  $d x V $.
    itgmulc2nc.1 $e |- ( ph -> C e. CC ) $.
    itgmulc2nc.2 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    itgmulc2nc.3 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    itgmulc2nc.m $e |- ( ph -> ( x e. A |-> ( C x. B ) ) e. MblFn ) $.
    ${
      $( Choice-free analogue of ~ iblmulc2 .  (Contributed by Brendan Leahy,
         17-Nov-2017.) $)
      iblmulc2nc $p |- ( ph -> ( x e. A |-> ( C x. B ) ) e. L^1 ) $=
        ( cmul co cmpt wcel cr cc0 cfv cle wbr wceq vk cibl cmbf cv ci cexp cre
        cdiv wa cif citg2 c3 cfz wral cpnf cicc wf cabs cim caddc cxr cc adantr
        ifan iblmbf syl mbfmptcl mulcld adantlr cz elfzelz ad2antlr ax-icn ine0
        wne expclz mp3an12 expne0i divcld recld ifcl sylancl rexrd max1 sylancr
        0re elxrge0 sylanbrc wn 0e0iccpnf a1i ifclda syl5eqel fmptd csn cxp cof
        eqid cico recnd abscld imcld readdcld absge0d addge0d elrege0 0e0icopnf
        cvv eqidd offval2 iftrue oveq12d eqtr4d iffalse 3eqtr4a pm2.61i mpteq2i
        reex 00id syl6req fveq2d iblcn mpbid simpld iblabsnclem itg2addnc eqtrd
        simprd eqeltrd itg2mulc fconstmpt oveq2d adantl remulcld c1 absi oveq1i
        3brtr4d breq1 syl3anc mul01d 3eqtr4d pm2.61dan mpteq2dv 3eqtr3d mulge0d
        cofr ad2antrr releabsd absdivd elfznn0 absexp 1exp syl5eq div1d absmuld
        cn0 3eqtrd breqtrd mulcl abstrid replimd absmul syl6eq mulid2d lemul2ad
        eqtr2d letrd ifboth syl2anc pm2.61d1 syl5eqbr ralrimivw ofrfval2 mpbird
        ex 0le0 itg2le itg2lecl ralrimiva isibl2 mpbir2and ) ABCEDKLZMZUBNUWDUC
        NBOBUDZCNZPUWCUEUAUDZUFLZUHLZUGQZRSZUIUWJPUJZMZUKQZONZUAPULUMLZUNJAUWOU
        AUWPAUWGUWPNZUIZOPUOUPLZUWMUQZBOUWFEURQZDUGQZURQZDUSQZURQZUTLZKLZPUJZMZ
        UKQZONZUWNUXJRSZUWOUWRBOUWLUWSUWMUWRUWEONZUIUWLUWFUWKUWJPUJZPUJZUWSUWFU
        WKUWJPVDZUWRUXOUWSNUXMUWRUWFUXNPUWSUWRUWFUIZUXNVANPUXNRSZUXNUWSNUXQUXNU
        XQUWJONZPONZUXNONUXQUWIUXQUWCUWHAUWFUWCVBNUWQAUWFUIZEDAEVBNUWFGVCZABCDF
        ABCDMZUBNZUYCUCNIUYCVEVFHVGZVHZVIZUXQUWGVJNZUWHVBNZUWQUYHAUWFUWGPULVKZV
        LZUEVBNZUEPVOZUYHUYIVMVNUEUWGVPVQVFZUXQUYHUWHPVOZUYKUYLUYMUYHUYOVMVNUEU
        WGVRVQVFZVSZVTZWFUWKUWJPOWAWBWCUXQUXTUXSUXRWFUYRPUWJWDWEUXNWGWHPUWSNZUW
        RUWFWIZUIWJWKWLVCWMZUWMWRWNZAUXKUWQAUXJUXABOUWFUXCPUJZMZUKQZBOUWFUXEPUJ
        ZMZUKQZUTLZKLZOAOUXAWOWPZBOUWFUXFPUJZMZKWQLZUKQUXAVUMUKQZKLUXJVUJAUXAVU
        MABOVULPUOWSLZVUMAVULVUPNUXMAUWFUXFPVUPUYAUXFONPUXFRSUXFVUPNUYAUXCUXEUY
        AUXBUYAUXBUYADUYEVTZWTZXAZUYAUXDUYAUXDUYADUYEXBZWTZXAZXCZUYAUXCUXEVUSVV
        BUYAUXBVURXDZUYAUXDVVAXDZXEZUXFXFWHPVUPNAUYTUIZXGWKZWLVCZVUMWRWNAVUOVUI
        OAVUOVUDVUGUTWQLZUKQVUIAVUMVVJUKAVVJBOVUCVUFUTLZMVUMABOVUCVUFUTVUDVUGXH
        VUPVUPOXHNZAXRWKZAVUCVUPNUXMAUWFUXCPVUPUYAUXCONPUXCRSUXCVUPNVUSVVDUXCXF
        WHVVHWLVCZAVUFVUPNUXMAUWFUXEPVUPUYAUXEONPUXERSUXEVUPNVVBVVEUXEXFWHVVHWL
        VCZAVUDXIAVUGXIXJBOVVKVULUWFVVKVULTUWFVVKUXFVULUWFVUCUXCVUFUXEUTUWFUXCP
        XKUWFUXEPXKXLUWFUXFPXKZXMUYTPPUTLPVVKVULXSUYTVUCPVUFPUTUWFUXCPXNUWFUXEP
        XNXLUWFUXFPXNZXOXPXQXTYAAVUDVUGAVUDUCNZVUEONZABCDUGVUDFHIVUDWRZABCUXBMU
        BNZBCUXDMUBNZAUYDVWAVWBUIIABCDUYEYBYCZYDVUQYEZYDABOVUCVUPVUDVVNVVTWNAVV
        RVVSVWDYHZABOVUFVUPVUGVVOVUGWRZWNAVUGUCNVUHONABCDUSVUGFHIVWFAVWAVWBVWCY
        HVUTYEYHZYFYGZAVUEVUHVWEVWGXCZYIAUXAONZPUXARSZUXAVUPNAEGXAZAEGXDZUXAXFW
        HYJAVUNUXIUKAVUNBOUXAVULKLZMUXIABOUXAVULKVUKVUMXHOVUPVVMAVWJUXMVWLVCVVI
        VUKBOUXAMTABOUXAYKWKAVUMXIXJABOVWNUXHAUWFVWNUXHTZUWFVWOAUWFVWNUXGUXHUWF
        VULUXFUXAKVVPYLUWFUXGPXKZXMYMVVGUXAPKLZPVWNUXHAVWQPTUYTAUXAAUXAVWLWTUUA
        VCVVGVULPUXAKUYTVULPTAVVQYMYLUYTUXHPTAUWFUXGPXNZYMUUBUUCUUDYGYAAVUOVUIU
        XAKVWHYLUUEAUXAVUIVWLVWIYNYIVCUWRUWTOUWSUXIUQUWMUXIRUUGSZUXLVUBUWRBOUXH
        UWSUXIAUXHUWSNUWQUXMAUWFUXGPUWSUYAUXGVANPUXGRSZUXGUWSNUYAUXGUYAUXAUXFAV
        WJUWFVWLVCZVVCYNZWCUYAUXAUXFVXAVVCAVWKUWFVWMVCZVVFUUFZUXGWGWHUYSVVGWJWK
        WLUUHZUXIWRWNUWRVWSUWLUXHRSZBOUNUWRVXFBOUWRUWLUXOUXHRUXPUWRUWFUXOUXHRSZ
        UWRUWFVXGUXQUXNUXGUXOUXHRUXQUWJUXGRSZVWTUXNUXGRSZUXQUWJUXADURQZKLZUXGUY
        RAUWFVXKONUWQUYAUXAVXJVXAUYADUYEXAZYNVIAUWFUXGONUWQVXBVIUXQUWJUWIURQZVX
        KRUXQUWIUYQUUIUXQVXMUWCURQZVXKUXQVXMVXNUWHURQZUHLZVXNYOUHLZVXNUXQUWCUWH
        UYGUYNUYPUUJUWQVXPVXQTAUWFUWQVXOYOVXNUHUWQVXOUEURQZUWGUFLZYOUWQUYLUWGUU
        QNVXOVXSTVMUWGULUUKUEUWGUULWEUWQVXSYOUWGUFLZYOVXRYOUWGUFYPYQUWQUYHVXTYO
        TUYJUWGUUMVFUUNYGYLVLUXQVXNAUWFVXNVBNUWQUYAVXNUYAUWCUYFXAWTVIUUOUURAUWF
        VXNVXKTUWQUYAEDUYBUYEUUPVIYGUUSAUWFVXKUXGRSUWQUYAVXJUXFUXAVXLVVCVXAVXCU
        YAUXBUEUXDKLZUTLZURQUXCVYAURQZUTLVXJUXFRUYAUXBVYAVURUYAUYLUXDVBNZVYAVBN
        VMVVAUEUXDUUTWEUVAUYADVYBURUYADUYEUVBYAUYAUXEVYCUXCUTUYAVYCYOUXEKLZUXEU
        YAVYCVXRUXEKLZVYEUYAUYLVYDVYCVYFTVMVVAUEUXDUVCWEVXRYOUXEKYPYQUVDUYAUXEU
        YAUXEVVBWTUVEUVGYLYRUVFVIUVHAUWFVWTUWQVXDVIUWKVXHVWTVXIUWJPUWJUXNUXGRYS
        PUXNUXGRYSUVIUVJUWFUXOUXNTUWRUWFUXNPXKYMUWFUXHUXGTUWRVWPYMYRUVPUYTPPUXO
        UXHRPPRSUYTUVQWKUWFUXNPXNVWRYRUVKUVLUVMUWRBOUWLUXHRUWMUXIXHUWSUWSVVLUWR
        XRWKVUAVXEUWRUWMXIUWRUXIXIUVNUVOUWMUXIUVRYTUXJUWMUVSYTUVTABCUWCUWJUAUWM
        VBAUWMXIUYAUWJXIUYFUWAUWB $.
    $}

    ${
      itgmulc2nc.4 $e |- ( ph -> C e. RR ) $.
      itgmulc2nc.5 $e |- ( ( ph /\ x e. A ) -> B e. RR ) $.
      ${
        itgmulc2nc.6 $e |- ( ph -> 0 <_ C ) $.
        itgmulc2nc.7 $e |- ( ( ph /\ x e. A ) -> 0 <_ B ) $.
        $( Lemma for ~ itgmulc2nc ; cf. ~ itgmulc2lem1 .  (Contributed by
           Brendan Leahy, 17-Nov-2017.) $)
        itgmulc2nclem1 $p |- ( ph ->
          ( C x. S. A B _d x ) = S. A ( C x. B ) _d x ) $=
          ( cr wcel cc0 cmpt cmul co cv cif citg2 cfv citg csn cxp cpnf cico wa
          cof cle wbr elrege0 sylanbrc wn 0e0icopnf a1i ifclda adantr eqid cmbf
          fmptd cibl iblpos mpbid simprd itg2mulc cvv reex wceq fconstmpt eqidd
          cc ovif2 mul01d ifeq2d syl5eq mpteq2dva eqtrd fveq2d eqtr3d itgposval
          offval2 oveq2d remulcld iblmulc2nc mulge0d 3eqtr4d ) AEBOBUAZCPZDQUBZ
          RZUCUDZSTZBOWKEDSTZQUBZRZUCUDZEBCDUEZSTBCWPUEAOEUFUGZWMSUKTZUCUDWOWSA
          EWMABOWLQUHUITZWMAWLXCPWJOPZAWKDQXCAWKUJZDOPQDULUMDXCPLNDUNUOQXCPAWKU
          PUJUQURUSUTZWMVAVCABCDRZVBPZWNOPZAXGVDPXHXIUJIABCDLNVEVFVGAEOPZQEULUM
          ZEXCPKMEUNUOVHAXBWRUCAXBBOEWLSTZRWRABOEWLSXAWMVIVNXCOVIPAVJURAEVNPXDG
          UTXFXABOERVKABOEVLURAWMVMWDABOXLWQAXDUJZXLWKWPEQSTZUBWQWKEDQSVOXMWKXN
          QWPAXNQVKXDAEGVPUTVQVRVSVTWAWBAWTWNESABCDLINWCWEABCWPXEEDAXJWKKUTZLWF
          ABCDEFGHIJWGXEEDXOLAXKWKMUTNWHWCWI $.
      $}

      $( Lemma for ~ itgmulc2nc ; cf. ~ itgmulc2lem2 .  (Contributed by Brendan
         Leahy, 19-Nov-2017.) $)
      itgmulc2nclem2 $p |- ( ph ->
        ( C x. S. A B _d x ) = S. A ( C x. B ) _d x ) $=
        ( cmul co citg cc0 cmin wcel cr cmpt cle wbr cif cneg cv wa max0sub syl
        wceq oveq1d adantr cc 0re ifcl sylancl renegcld subdird eqtr3d itgeq2dv
        recnd cvv ovexd csn cxp cof cmbf cdm mbfdm2 fconstmpt a1i eqidd offval2
        cvol cibl iblmbf eqid mbfmulc2re eqeltrrd iblmulc2nc mpteq2dva itgsubnc
        fmptd iblre mpbid simpld mbfpos simprd mbfneg oveq2d subdid eqtrd itgcl
        itgreval sylancr itgmulc2nclem1 oveq12d 3eqtrd 3eqtr4d 3eqtr2d 3eqtrrd
        max1 ) ABCEDMNZOBCPEUAUBZEPUCZDMNZPEUDZUAUBZXFPUCZDMNZQNZOBCXEOZBCXIOZQ
        NZEBCDOZMNZABCXBXJABUECRZUFZXDXHQNZDMNZXBXJAXSXBUIXPAXREDMAESRZXREUIKEU
        GUHZUJUKXQXDXHDAXDULRXPAXDAXTPSRZXDSRZKUMXCEPSUNUOZUTZUKZAXHULRXPAXHAXF
        SRZYBXHSRZAEKUPZUMXGXFPSUNUOZUTZUKZXQDLUTZUQURZUSABCXEXIVAXQXDDMVBABCDX
        DSYELIACXDVCVDZBCDTZMVEZNZBCXETZVFABCXDDMYOYPVMVGZSSABCXBVAJXQEDMVBVHZA
        YCXPYDUKZLYOBCXDTUIABCXDVIVJZAYPVKZVLZACXDYPAYPVNRZYPVFRIYPVOUHZYDABCDU
        LYPYMYPVPWBZVQZVRVSXQXHDMVBABCDXHSYKLIACXHVCVDZYPYQNZBCXITZVFABCXHDMUUJ
        YPYTSSUUAAYHXPYJUKZLUUJBCXHTUIABCXHVIVJZUUDVLZACXHYPUUGYJUUHVQZVRVSABCX
        BTBCXJTVFABCXBXJYNVTJVRWAAXMXDXNMNZXHXNMNZQNXRXNMNXOAXKUUQXLUURQABCXDPD
        UAUBZDPUCZMNZXDPDUDZUAUBZUVBPUCZMNZQNZOBCUVAOZBCUVEOZQNZXKUUQABCUVAUVEV
        AXQXDUUTMVBABCUUTXDSYEXQDSRZYBUUTSRLUMUUSDPSUNUOZABCUUTTZVNRZBCUVDTZVNR
        ZAUUFUVMUVOUFIABCDLWCWDZWEZAYOUVLYQNBCUVATVFABCXDUUTMYOUVLYTSSUUAUUBUVK
        UUCAUVLVKZVLACXDUVLABCDLUUGWFZYDABCUUTULUVLXQUUTUVKUTZUVLVPWBZVQVRZVSXQ
        XDUVDMVBABCUVDXDSYEXQUVBSRZYBUVDSRXQDLUPZUMUVCUVBPSUNUOZAUVMUVOUVPWGZAY
        OUVNYQNBCUVETVFABCXDUVDMYOUVNYTSSUUAUUBUWEUUCAUVNVKZVLACXDUVNABCUVBUWDA
        BCDSLUUGWHWFZYDABCUVDULUVNXQUVDUWEUTZUVNVPWBZVQVRZVSAYRBCUVFTZVFAYRYSUW
        LUUEABCXEUVFXQXDUUTUVDQNZMNXEUVFXQUWMDXDMXQUVJUWMDUILDUGUHZWIXQXDUUTUVD
        YFUVTUWIWJURZVTWKUUIVRWAABCXEUVFUWOUSAUUQXDBCUUTOZBCUVDOZQNZMNXDUWPMNZX
        DUWQMNZQNUVIAXNUWRXDMABCDLIWMZWIAXDUWPUWQYEABCUUTSUVKUVQWLZABCUVDSUWEUW
        FWLZWJAUWSUVGUWTUVHQABCUUTXDSYEUVKUVQUWBYDUVKAYBXTPXDUAUBUMKPEXAWNZXQYB
        UVJPUUTUAUBUMLPDXAWNZWOABCUVDXDSYEUWEUWFUWKYDUWEUXDXQYBUWCPUVDUAUBUMUWD
        PUVBXAWNZWOWPWQWRABCXHUUTMNZXHUVDMNZQNZOBCUXGOZBCUXHOZQNZXLUURABCUXGUXH
        VAXQXHUUTMVBABCUUTXHSYKUVKUVQAUUJUVLYQNBCUXGTVFABCXHUUTMUUJUVLYTSSUUAUU
        MUVKUUNUVRVLACXHUVLUVSYJUWAVQVRZVSXQXHUVDMVBABCUVDXHSYKUWEUWFAUUJUVNYQN
        BCUXHTVFABCXHUVDMUUJUVNYTSSUUAUUMUWEUUNUWGVLACXHUVNUWHYJUWJVQVRZVSAUUKB
        CUXITZVFAUUKUULUXOUUOABCXIUXIXQXHUWMMNXIUXIXQUWMDXHMUWNWIXQXHUUTUVDYLUV
        TUWIWJURZVTWKUUPVRWAABCXIUXIUXPUSAUURXHUWRMNXHUWPMNZXHUWQMNZQNUXLAXNUWR
        XHMUXAWIAXHUWPUWQYKUXBUXCWJAUXQUXJUXRUXKQABCUUTXHSYKUVKUVQUXMYJUVKAYBYG
        PXHUAUBUMYIPXFXAWNZUXEWOABCUVDXHSYKUWEUWFUXNYJUWEUXSUXFWOWPWQWRWPAXDXHX
        NYEYKABCDSLIWLUQAXREXNMYAUJWSWT $.
    $}

    $( Choice-free analogue of ~ itgmulc2 .  (Contributed by Brendan Leahy,
       19-Nov-2017.) $)
    itgmulc2nc $p |- ( ph -> ( C x. S. A B _d x ) = S. A ( C x. B ) _d x ) $=
      ( ci cmul co caddc citg cc wcel cmpt cmbf cr vk cre cfv cim cneg cv recld
      wa recnd adantr iblmbf syl mbfmptcl mulcld iblcn mpbid simpld csn cxp cof
      cibl cvol cdm cvv ovexd mbfdm2 wceq fconstmpt a1i offval2 eqid mbfmulc2re
      eqidd fmptd eqeltrrd iblmulc2nc itgcl ax-icn imcld mulcl sylancr renegcld
      simprd negcld add4d adddird itgcnval oveq2d adddid itgmulc2nclem2 oveq12d
      mul12d eqtrd 3eqtrd mulassd mul4d c1 oveq1i mulm1d syl5eq mulneg1d eqtr3d
      ixi addcomd cmin ccom wf feqmptd fveq2 fmptco remuld mpteq2dva wb ismbfcn
      ref itgsubnc itgeq2dv itgneg eqtr4d negsubd 3eqtr4d immuld replimd oveq1d
      imf itgaddnc ) AEUBUCZKEUDUCZLMZNMZBCDOZLMZBCEDLMZUBUCZOZKBCYMUDUCZOZLMZN
      MZEYKLMBCYMOABCYGDUBUCZLMZOZKBCYGDUDUCZLMZOZLMZNMZBCYHUEZUUCLMZOZKBCYHYTL
      MZOZLMZNMZNMZUUBUUJNMZUUFUUMNMZNMYLYSAUUBUUFUUJUUMABCUUAPABUFCQZUHZYGYTAY
      GPQUURAYGAEGUGZUIZUJZUUSYTUUSDABCDFABCDRZVAQZUVCSQIUVCUKULHUMZUGZUIZUNZAB
      CYTYGTUVAUVFABCYTRZVAQZBCUUCRZVAQZAUVDUVJUVLUHIABCDUVEUOUPZUQZACYGURUSZUV
      ILUTZMBCUUARSABCYGYTLUVOUVIVBVCZPTABCYMVDJUUSEDLVEVFZUVBUVFUVOBCYGRVGABCY
      GVHVIZAUVIVMZVJACYGUVIAUVJUVISQUVNUVIUKULZUUTABCYTPUVIUVGUVIVKVNZVLVOZVPZ
      VQZAKPQZUUEPQUUFPQVRABCUUDPUUSYGUUCUVBUUSUUCUUSDUVEVSZUIZUNZABCUUCYGTUVAU
      WGAUVJUVLUVMWCZAUVOUVKUVPMBCUUDRSABCYGUUCLUVOUVKUVQPTUVRUVBUWGUVSAUVKVMZV
      JACYGUVKAUVLUVKSQUWJUVKUKULZUUTABCUUCPUVKUWHUVKVKVNZVLVOZVPZVQZKUUEVTWAAB
      CUUIPUUSUUHUUCAUUHPQUURAYHAYHAEGVSZUIZWDZUJZUWHUNABCUUCUUHTUWSUWGUWJACUUH
      URUSZUVKUVPMBCUUIRSABCUUHUUCLUXAUVKUVQPTUVRUWTUWGUXABCUUHRVGABCUUHVHVIUWK
      VJACUUHUVKUWLAYHUWQWBZUWMVLVOZVPVQZAUWFUULPQUUMPQVRABCUUKPUUSYHYTAYHPQUUR
      UWRUJZUVGUNZABCYTYHTUWRUVFUVNACYHURUSZUVIUVPMBCUUKRSABCYHYTLUXGUVIUVQPTUV
      RUXEUVFUXGBCYHRVGABCYHVHVIZUVTVJACYHUVIUWAUWQUWBVLVOZVPZVQZKUULVTWAZWEAYL
      YGYKLMZYIYKLMZNMUUOAYGYIYKUVAAKYHUWFAVRVIZUWRUNZABCDFHIVQWFAUXMUUGUXNUUNN
      AUXMYGBCYTOZKBCUUCOZLMZNMZLMYGUXQLMZYGUXSLMZNMUUGAYKUXTYGLABCDFHIWGZWHAYG
      UXQUXSUVAABCYTTUVFUVNVQZAUWFUXRPQUXSPQVRABCUUCTUWGUWJVQZKUXRVTWAZWIAUYAUU
      BUYBUUFNABCYTYGTUVAUVFUVNUWCUUTUVFWJAUYBKYGUXRLMZLMUUFAYGKUXRUVAUXOUYEWLA
      UYGUUEKLABCUUCYGTUVAUWGUWJUWNUUTUWGWJWHWMWKWNAUXNYIUXTLMYIUXQLMZYIUXSLMZN
      MZUUNAYKUXTYILUYCWHAYIUXQUXSUXPUYDUYFWIAUYJUUMUUJNMUUNAUYHUUMUYIUUJNAUYHK
      YHUXQLMZLMUUMAKYHUXQUXOUWRUYDWOAUYKUULKLABCYTYHTUWRUVFUVNUXIUWQUVFWJWHWMA
      UYIKKLMZYHUXRLMZLMZUYMUEZUUJAKYHKUXRUXOUWRUXOUYEWPAUYNWQUEZUYMLMUYOUYLUYP
      UYMLXCWRAUYMAYHUXRUWRUYEUNWSWTAUUHUXRLMUYOUUJAYHUXRUWRUYEXAABCUUCUUHTUWSU
      WGUWJUXCUXBUWGWJXBWNWKAUUMUUJUXLUXDXDWMWNWKWMAYOUUPYRUUQNABCUUAYHUUCLMZXE
      MZOUUBBCUYQOZXEMZYOUUPABCUUAUYQPUVHUWDUUSYHUUCUXEUWHUNZABCUUCYHTUWRUWGUWJ
      AUXGUVKUVPMBCUYQRSABCYHUUCLUXGUVKUVQPTUVRUXEUWGUXHUWKVJACYHUVKUWLUWQUWMVL
      VOVPZAUBBCYMRZXFZBCUYRRZSAVUDBCYNRVUEABUACPYMUAUFZUBUCYNVUCUBUUSEDAEPQUUR
      GUJZUVEUNZAVUCVMZAUAPTUBPTUBXGAXOVIXHVUFYMUBXIXJABCYNUYRUUSEDVUGUVEXKZXLW
      MAVUDSQZUDVUCXFZSQZAVUCSQZVUKVUMUHZJACPVUCXGVUNVUOXMABCYMPVUCVUHVUCVKVNCV
      UCXNULUPZUQVOXPABCYNUYRVUJXQAUUBUYSUEZNMUUPUYTAVUQUUJUUBNAVUQBCUYQUEZOUUJ
      ABCUYQPVUAVUBXRABCUUIVURUUSYHUUCUXEUWHXAXQXSWHAUUBUYSUWEABCUYQPVUAVUBVQXT
      XBYAAYRKUUEUULNMZLMUUQAYQVUSKLAYQBCUUDUUKNMZOVUSABCYPVUTUUSEDVUGUVEYBZXQA
      BCUUDUUKPUWIUWOUXFUXJAVULBCVUTRZSAVULBCYPRVVBABUACPYMVUFUDUCYPVUCUDVUHVUI
      AUAPTUDPTUDXGAYEVIXHVUFYMUDXIXJABCYPVUTVVAXLWMAVUKVUMVUPWCVOYFWMWHAKUUEUU
      LUXOUWPUXKWIWMWKYAAEYJYKLAEGYCYDABCYMPVUHABCDEFGHIJVPWGYA $.
  $}

  ${
    $d x y A $.  $d y B $.  $d x y ph $.  $d x y V $.
    itgabsnc.1 $e |- ( ( ph /\ x e. A ) -> B e. V ) $.
    itgabsnc.2 $e |- ( ph -> ( x e. A |-> B ) e. L^1 ) $.
    itgabsnc.m1 $e |- ( ph -> ( x e. A |-> ( abs ` B ) ) e. MblFn ) $.
    itgabsnc.m2 $e |- ( ph ->
      ( y e. A |-> ( ( * ` S. A B _d x ) x. [_ y / x ]_ B ) ) e. MblFn ) $.
    $( Choice-free analogue of ~ itgabs .  (Contributed by Brendan Leahy,
       19-Nov-2017.)  (Revised by Brendan Leahy, 19-Jun-2018.) $)
    itgabsnc $p |- ( ph ->
      ( abs ` S. A B _d x ) <_ S. A ( abs ` B ) _d x ) $=
      ( cc0 citg cabs cfv cmul co cmpt wcel cc cr clt wbr cle wa ccj cv csb cre
      wceq cibl cim itgcl cjcld wral cmbf iblmbf syl mbfmptcl ralrimiva nfcsb1v
      nfv nfel1 weq csbeq1a eleq1d cbvral sylib r19.21bi nfcv cbvmpt iblmulc2nc
      syl5eqelr adantr mulcld iblcn mpbid simpld csn cxp absmuld mpteq2dva cvol
      cof cdm mbfdm2 abscld fconstmpt a1i nffv fveq2d offval2 eqtr4d recnd eqid
      fmptd mbfmulc2re eqeltrd iblabsnc recld releabsd c2 cexp sqvald absvalsqd
      itgle mulcomd cbvitg oveq2i itgmulc2nc syl5eq resqcld rered ovexd 3eqtr3d
      3eqtrd itgre eqtr3d eqeltrrd abscjd oveq1d eqtrd itgeq2dv 3brtr4d itgrecl
      cvv wb simpr lemul2 syl112anc mpbird ex absge0d itgge0 breq1 syl5ibcom wo
      0re leloe sylancr mpjaod ) AKBDELZMNZUAUBZUUBBDEMNZLZUCUBZKUUBUIZAUUCUUFA
      UUCUDZUUFUUBUUBOPZUUBUUEOPZUCUBZAUUKUUCACDUUAUENZBCUFZEUGZOPZUHNZLZCDUUOM
      NZLZUUIUUJUCACDUUPUURACDUUPQUJRZCDUUOUKNQUJRZACDUUOQUJRUUTUVAUDACDUUNUULS
      AUUAABDEFGHULZUMZAUUNSRZCDAESRZBDUNUVDCDUNAUVEBDABDEFABDEQZUJRUVFUORHUVFU
      PUQZGURZUSUVEUVDBCDUVECVABUUNSBUUMEUTZVBBCVCZEUUNSBUUMEVDZVEVFVGVHZACDUUN
      QUVFUJBCDEUUNCEVIZUVIUVKVJHVLZJVKZACDUUOAUUMDRZUDZUULUUNAUULSRUVPUVCVMZUV
      LVNZVOVPVQACDUUOSUVSUVOACDUURQZDUULMNZVRVSZBDUUDQZOWCZPZUOAUVTCDUWAUUNMNZ
      OPZQUWEACDUURUWGUVQUULUUNUVRUVLVTZWAACDUWAUWFOUWBUWCWBWDZTTABDEFUVGGWEZUV
      QUULUVRWFUVQUUNUVLWFZUWBCDUWAQUIACDUWAWGWHUWCCDUWFQZUIABCDUUDUWFCUUDVIZBU
      UNMBMVIUVIWIZUVJEUUNMUVKWJZVJZWHZWKWLADUWAUWCIAUULUVCWFABDUUDSUWCABUFDRUD
      ZUUDUWREUVHWFZWMUWCWNWOZWPWQWRUVQUUOUVSWSUVQUUOUVSWFUVQUUOUVSWTXEAUUBXAXB
      PZUUIUUQAUUBAUUBAUUAUVBWFZWMZXCAUXAUHNCDUUOLZUHNUXAUUQAUXAUXDUHAUXAUUAUUL
      OPUULUUAOPZUXDAUUAUVBXDAUUAUULUVBUVCXFAUXEUULCDUUNLZOPUXDUUAUXFUULOBCDEUU
      NUVKUVMUVIXGXHACDUUNUULSUVCUVLUVNJXIXJXOWJAUXAAUUBUXBXKXLACDUUOYEUVQUULUU
      NOXMUVOXPXNXQAUUJUUBCDUWFLZOPZUUSUUEUXGUUBOBCDUUDUWFUWOUWMUWNXGXHAUXHCDUU
      BUWFOPZLUUSACDUWFUUBTUXCUWKAUWLUWCUJUWPABDEFGHIWRZVLADUUBVRVSZUWCUWDPCDUX
      IQUOACDUUBUWFOUXKUWCUWITTUWJAUUBTRZUVPUXBVMUWKUXKCDUUBQUIACDUUBWGWHUWQWKA
      DUUBUWCIUXBUWTWPXRXIACDUURUXIUVQUURUWGUXIUWHUVQUWAUUBUWFOUVQUUAAUUASRUVPU
      VBVMXSXTYAYBWLXJYCVMUUHUXLUUETRZUXLUUCUUFUUKYFAUXLUUCUXBVMZAUXMUUCABDUUDU
      WSUXJYDVMUXNAUUCYGUUBUUEUUBYHYIYJYKAKUUEUCUBUUGUUFABDUUDUXJUWSUWREUVHYLYM
      KUUBUUEUCYNYOAKUUBUCUBZUUCUUGYPZAUUAUVBYLAKTRUXLUXOUXPYFYQUXBKUUBYRYSVPYT
      $.
  $}

  ${
    $d x y z F $.  $d x y A $.  $d x y B $.
    $( Choice-free proof of ~ bddibl .  (Contributed by Brendan Leahy,
       2-Nov-2017.)  (Revised by Brendan Leahy, 6-Nov-2017.) $)
    bddiblnc $p |- ( ( F e. MblFn /\ ( vol ` dom F ) e. RR /\
      E. x e. RR A. y e. dom F ( abs ` ( F ` y ) ) <_ x ) -> F e. L^1 ) $=
      ( vz wcel cfv cr cabs cle wbr cmpt wceq wa cc0 syl3anc eqid breq1 3brtr4d
      c0 cif cmbf cdm cvol cv wral wrex cibl mbff feqmptd 3ad2ant1 rzal mpteq12
      w3a cc mpdan csn cxp fconstmpt 0mbl ax-mp eqeltrri syl6eqel adantl r19.2z
      ibl0 wne anim1i an31s wi wf ad2antrr ffvelrnda absge0d 0red abscld simplr
      letr mpand rexlimdva ex com23 imp32 sylan2 anassrs an32 cre citg2 cneg id
      cim eqeltrrd cpnf cicc cxr ad3antrrr recld rexrd adantrr elxrge0 sylanbrc
      co simprr wn 0e0iccpnf a1i fmptd cmul cico mbfdm elrege0 biimpri ad2antrl
      ifclda itg2const eqeltrd adantr ifan adantll letrd ifboth syl2anc iffalse
      iftrue pm2.61d1 syl5eqbr ralrimivw cvv eqidd ofrfval2 mpbird itg2le recnd
      itg2lecl renegcld leabsd absnegd breqtrd syl jca imcld remulcld cofr rexr
      simprll sylan ifcl sylancl releabsd weq fveq2 fveq2d rspccva simprlr 0le0
      breq1d reex absrele absimle iblcnlem1 mpbir3and sylan2b syldan pm2.61dane
      rexlimdvaa 3impia ) CUAEZCUBZUCFZGEZBUDZCFZHFZAUDZIJZBUVGUEZAGUFZUMCDUVGD
[encoded data, 4159 characters]
      $.

    $( Choice-free proof of ~ cniccibl .  (Contributed by Brendan Leahy,
       2-Nov-2017.) $)
    cnicciblnc $p |- ( ( A e. RR /\ B e. RR /\
      F e. ( ( A [,] B ) -cn-> CC ) ) -> F e. L^1 ) $=
      ( vy vx cr wcel cicc co cc ccncf w3a cmbf cdm cvol cfv cv cabs wral wrex
      cle wbr cibl iccmbl cnmbf stoic3 wf wceq simp3 cncff 3syl fveq2d iccvolcl
      fdm 3adant3 eqeltrd cniccbdd raleqdv rexbidv mpbird bddiblnc syl3anc ) AF
      GZBFGZCABHIZJKIGZLZCMGZCNZOPZFGDQCPRPEQUAUBZDVISZEFTZCUCGVCVDVEONGVFVHABU
      DVECUEUFVGVJVEOPZFVGVIVEOVGVFVEJCUGVIVEUHVCVDVFUIVEJCUJVEJCUNUKZULVCVDVNF
      GVFABUMUOUPVGVMVKDVESZEFTEDABCUQVGVLVPEFVGVKDVIVEVOURUSUTEDCVAVB $.
  $}

  ${
    $d x y X $.  $d x y Y $.  $d y B $.  $d x y ph $.
    itggt0cn.1 $e |- ( ph -> X < Y ) $.
    itggt0cn.2 $e |- ( ph -> ( x e. ( X (,) Y ) |-> B ) e. L^1 ) $.
    itggt0cn.3 $e |- ( ( ph /\ x e. ( X (,) Y ) ) -> B e. RR+ ) $.
    itggt0cn.cn $e |- ( ph ->
      ( x e. ( X (,) Y ) |-> B ) e. ( ( X (,) Y ) -cn-> CC ) ) $.
    $( ~ itggt0 holds for continuous functions in the absence of ~ ax-cc .
       (Contributed by Brendan Leahy, 16-Nov-2017.) $)
    itggt0cn $p |- ( ph -> 0 < S. ( X (,) Y ) B _d x ) $=
      ( vy cc0 cr co wcel cmpt cfv clt wbr crp wceq cv cioo cif citg2 citg cpnf
      cico wa cle rpred rpge0d elrege0 sylanbrc wn 0e0icopnf ifclda adantr eqid
      a1i fmptd wral rpgt0d elioore adantl iftrue eqeltrd fvmpt2 eqtrd breqtrrd
      syl2anc ralrimiva nfcv nffvmpt1 nfbr nfv weq fveq2 breq2d cbvral r19.21bi
      sylibr cres cc ccncf wss ioossre resmpt ax-mp mpteq2ia syl5eqel itg2gt0cn
      eqtri itgposval ) AKBLBUAZDEUBMZNZCKUCZOZUDPBWOCUEQAJWRDEFABLWQKUFUGMZWRA
      WQWSNWNLNZAWPCKWSAWPUHZCLNKCUIRCWSNXACHUJZXACHUKZCULUMKWSNAWPUNUHUOUSUPUQ
      WRURZUTAKJUAZWRPZQRZJWOAKWNWRPZQRZBWOVAXGJWOVAAXIBWOXAKCXHQXACHVBXAXHWQCX
      AWTWQSNXHWQTWPWTAWNDEVCVDXAWQCSWPWQCTAWPCKVEZVDZHVFBLWQSWRXDVGVJXKVHVIVKX
      GXIJBWOBKXFQBKVLBQVLBLWQXEVMVNXIJVOJBVPXFXHKQXEWNWRVQVRVSWAVTAWRWOWBZBWOC
      OZWOWCWDMXLBWOWQOZXMWOLWEXLXNTDEWFBLWOWQWGWHBWOWQCXJWIWLIWJWKABWOCXBGXCWM
      VI $.
  $}

  ${
    $d x y z t s u v w A $.  $d x y z t s u v w B $.  $d x y z t s u v w F $.
    $d x y z t s u v w ph $.  $d y z s u v w G $.  $d x y z t s u v w c $.
    ftc1cnnc.g $e |- G = ( x e. ( A [,] B ) |->
      S. ( A (,) x ) ( F ` t ) _d t ) $.
    ftc1cnnc.a $e |- ( ph -> A e. RR ) $.
    ftc1cnnc.b $e |- ( ph -> B e. RR ) $.
    ftc1cnnc.le $e |- ( ph -> A <_ B ) $.
    ftc1cnnc.f $e |- ( ph -> F e. ( ( A (,) B ) -cn-> CC ) ) $.
    ftc1cnnc.i $e |- ( ph -> F e. L^1 ) $.
    ${
      $d x z t X $.  $d y t E $.  $d y H $.  $d x t Y $.  $d y R $.
      ftc1cnnclem.c $e |- ( ph -> c e. ( A (,) B ) ) $.
      ftc1cnnclem.h $e |- H = ( z e. ( ( A [,] B ) \ { c } ) |->
        ( ( ( G ` z ) - ( G ` c ) ) / ( z - c ) ) ) $.
      ftc1cnnclem.e $e |- ( ph -> E e. RR+ ) $.
      ftc1cnnclem.r $e |- ( ph -> R e. RR+ ) $.
      ftc1cnnclem.fc $e |- ( ( ph /\ y e. ( A (,) B ) ) ->
        ( ( abs ` ( y - c ) ) < R ->
          ( abs ` ( ( F ` y ) - ( F ` c ) ) ) < E ) ) $.
      ftc1cnnclem.x1 $e |- ( ph -> X e. ( A [,] B ) ) $.
      ftc1cnnclem.x2 $e |- ( ph -> ( abs ` ( X - c ) ) < R ) $.
      ftc1cnnclem.y1 $e |- ( ph -> Y e. ( A [,] B ) ) $.
      ftc1cnnclem.y2 $e |- ( ph -> ( abs ` ( Y - c ) ) < R ) $.
      $( Lemma for ~ ftc1cnnc ; cf. ~ ftc1lem4 .  The stronger assumptions of
         ~ ftc1cn are exploited to make use of weaker theorems.  (Contributed
         by Brendan Leahy, 19-Nov-2017.) $)
      ftc1cnnclem $p |- ( ( ph /\ X < Y ) ->
        ( abs ` ( ( ( ( G ` Y ) - ( G ` X ) ) / ( Y - X ) ) - ( F ` c ) ) )
          < E ) $=
        ( clt wbr wa cfv cmin co cdiv cv cabs cioo citg caddc cmul wceq cr wcel
        cle wi cicc wss iccssre syl2anc sseldd ltle imp a1i ioossre cc ccncf wf
        ssid cncff syl ftc1lem1 syldan cxr rexrd elicc1 biimpa syl21anc iccleub
        w3a simp2d syl3anc ioossioo syl22anc sselda ffvelrnda adantr npcand cvv
        ffvelrnd cvol cmpt cibl eqeltrrd csn fconstmpt covol iblconst syl5eqelr
        mblvol cmbf ax-resscn cncfmptc mp3an23 cncfmpt2f cnmbf sylancr iblsubnc
        cxp itgconst oveq2d eqtrd 3eqtrd oveq1d cc0 posdifd fveq2d abscld rpred
        resubcld adantl absdifltd mpbid simpld lttrd simprd breq1d wb cdm fvexd
        itgeq2dv subcld feqmptd iblss ax-mp ioossicc iccvolcl ovolsscl syl5eqel
        ioombl iccmbl mblss ccnfld ctopn eqid ctx ccn subcn cres feqresmpt sylc
        rescncf mpteq2dva eqtr4d iblmbf mbfres sylancl eqeltrd itgaddnc ovolioo
        sstri eqtr3d syl5eq ovexd mulcld gt0ne0d divdird divcan4d divcld pncand
        itgcl recnd absdivd 0re mpd absidd cncfss mp2an abscncf sselii iblabsnc
        cncfmpt1f itgrecl remulcld ccj csb cjcld nfcsb1v csbeq1a cbvmpt mulcncf
        nfcv itgabsnc simpr crp wral ralrimiva sseldi elioore eliooord readdcld
        rpcnd mpbir2and oveq1 fveq2 imbi12d rspcv syl3c difrp itggt0cn itgsubnc
        weq adantlr mulcomd breqtrd biimpar lelttrd ltdivmul syl112anc eqbrtrd
        mpbird ) AMNUKULZUMZNKUNMKUNUOUPZNMUOUPZUQUPZOURZJUNZUOUPZUSUNZEMNUTUPZ
[encoded data, 4560 characters]
        L $.
    $}

    $d c A $.  $d c B $.  $d c F $.  $d c ph $.  $d c G $.
    $( Choice-free proof of ~ ftc1cn .  (Contributed by Brendan Leahy,
       20-Nov-2017.) $)
    ftc1cnnc $p |- ( ph -> ( RR _D G ) = F ) $=
      ( co cr cc cfv wcel cmin clt vc vs vz vv vw vu cioo cdv wfun cdm wceq wfn
      vy wf dvf a1i ffun syl cicc crn ctg cnt ccnfld wss ax-resscn ssid ioossre
      ctopn ccncf cncff ftc1lem2 iccssre syl2anc tgioo2 dvbssntr iccntr sseqtrd
      eqid cv wbr crest csn cdif cdiv cmpt climc retop eqeltrri adantr iooretop
      wa ctop eleqtri ioossicc cuni uniretop eqtri ssntr syl22anc simpr cabs wi
      unieqi wral crp wrex ffvelrnda cxmt ccnp cnxmet toponunii syl6eleq ctopon
      mp2an simpllr recnd adantl sseli ad3antlr cnmetdval eqtrd breq1d ad2antrr
      elioore ssdifssd ad2ant2r weq fveq2 oveq1d oveq1 ad2antlr ad3antrrr sylan
      imbi12d fveq2d cc0 eqbrtrd ftc1cnnclem expr mpbir2and sseldd wne ccom cxp
      cres cmopn sstri xmetres2 ccn cnfldtop cnfldtopon restid eqcomi resttopon
      ax-mp cncfcn eleq2i biimpi cncnpi syl2an cnfldtopn oveq1i fveq1i metcnpi2
      metrest ovresd ralbidva simprll eldifsni wo sselda lttri2d biimpa oveq12d
      ovex fvmpt ad4antr eldifi ffvelrnd sylan2 ad4antlr ltne div2subd cle cibl
      necomd simplrl simplrr simprlr rspccva simprr subidd rpgt0d jaodan syldan
      abs00bd mpdan adantld ralrimdva sylbid anassrs mpd ralrimiva syl6ss dvlem
      reximdva fmptd ellimc3 wb eldv vex fvex breldm ssrdv eqssd df-fn sylanbrc
      ex ffn funbrfv sylc eqfnfvd ) AUADEUGNZOGUHNZFAUYDUIZUYDUJZUYCUKUYDUYCULA
      UYFPUYDUNZUYEUYGAGUOUPUYFPUYDUQURZAUYFUYCAUYFDEUSNZUGUTVAQZVBQQZUYCAUYIOG
      UYJVCVHQZOPVDAVEUPZABCDEUYCFGHIJKUYCUYCVDAUYCVFUPUYCOVDADEVGZUPMAFUYCPVIN
      ZRZUYCPFUNZLUYCPFVJURZVKZADORZEORZUYIOVDZIJDEVLVMZUYLUYLVRZVNZVUDVOAUYTVU
      AUYKUYCUKIJDEVPVMVQAUAUYCUYFAUAVSZUYCRZVUFUYFRZAVUGWKZVUFVUFFQZUYDVTZVUHV
      UIVUKVUFUYIUYLOWANZVBQQZRZVUJUBUYIVUFWBZWCZUBVSZGQZVUFGQZSNZVUQVUFSNZWDNZ
      WEZVUFWFNRZVUIUYCVUMVUFVUIVULWLRZVUBUYCVULRZUYCUYIVDZUYCVUMVDVVEVUIUYJVUL
      WLVUEWGWHUPAVUBVUGVUCWIVVFVUIUYCUYJVULDEWJVUEWMUPVVGVUIDEWNZUPUYIVULUYCOO
      UYJWOVULWOWPUYJVULVUEXCWQWRWSAVUGWTUUAVUIVVDVUJPRZUCVSZVUFUUBZVVJVUFSNZXA
      QUDVSZTVTZWKVVJVVCQZVUJSNZXAQZUEVSZTVTZXBZUCVUPXDZUDXEXFZUEXEXDAUYCPVUFFU
      YRXGZVUIVWBUEXEVUIVVRXERZWKZUFVSZVUFXASUUCZUYCUYCUUDUUEZNZVVMTVTZVWFFQZVU
      JVWGNZVVRTVTZXBZUFUYCXDZUDXEXFZVWBVWEVWHUYCXHQRZVWGPXHQRZFVUFVWHUUFQZUYLX
      INZQZRZVWDVWPVWQVWEVWRUYCPVDZVWQXJUYCOPUYNVEUUGZVWGUYCPUUHXNUPVWRVWEXJUPV
      UIVXBVWDVUIFVUFUYLUYCWANZUYLXINZQZVXAAFVXEUYLUUINZRVUFVXEWOZRZFVXGRVUGAFU
      YOVXHLVXCPPVDUYOVXHUKVXDPVFUYCPUYLVXEUYLVUDVXEVRUYLPWANZUYLUYLWLRVXKUYLUK
      UYLVUDUUJUYLWLPPUYLUYLVUDUUKZXKUULUUOUUMUUPXNXLVUGVXJUYCVXIVUFUYCVXEUYLPX
      MQRVXCVXEUYCXMQRVXLVXDUYCUYLPUUNXNXKUUQUURVUFFVXEUYLVXIVXIVRUUSUUTVUFVXFV
      WTVXEVWSUYLXIVWRVXCVXEVWSUKXJVXDVWGVWHUYLVWSPUYCVWHVRUYLVUDUVAZVWSVRZUVEX
      NUVBUVCXLWIVUIVWDWTUDUFVVRVWHVWGVUFFVWSUYLUYCPVXNVXMUVDWSVWEVWOVWAUDXEVUI
      VWDVVMXERZVWOVWAXBVUIVWDVXOWKZWKZVWOVWFVUFSNZXAQZVVMTVTZVWKVUJSNZXAQZVVRT
      VTZXBZUFUYCXDZVWAVXQVWNVYDUFUYCVXQVWFUYCRZWKZVWJVXTVWMVYCVYGVWIVXSVVMTVYG
      VWIVWFVUFVWGNZVXSVYGVWFVUFVWGUYCVXQVYFWTAVUGVXPVYFXOUVFVYGVWFPRZVUFPRZVYH
      VXSUKVYFVYIVXQVYFVWFVWFDEYDXPXQVUGVYJAVXPVYFUYCPVUFVXDXRZXSVWFVUFVWGVWGVR
      ZXTVMYAYBVYGVWLVYBVVRTVYGVWKPRVVIVWLVYBUKVXQUYCPVWFFAUYQVUGVXPUYRYCXGVUIV
      VIVXPVYFVWCYCVWKVUJVWGVYLXTVMYBYNUVGVXQVYEVVTUCVUPVXQVVJVUPRZVYEVVTVXQVYM
      VYEWKZWKVVNVVSVVKVXQVYNVVNVVSVXQVYNVVNWKZWKZVVKVVSVYPVYMVVKVXQVYMVYEVVNUV
      HZVVJUYIVUFUVIURVYPVVKVVJVUFTVTZVUFVVJTVTZUVJZVVSVYPVVKVYTVYPVVJVUFVUIVYN
      VVJORZVXPVVNAVYMWUAVUGVYEAVUPOVVJAUYIOVUOVUCYEUVKYFYFZVUGVUFORAVXPVYOVUFD
      EYDZXSUVLUVMVYPVYRVVSVYSVYPVYRWKZVVQVUSVVJGQZSNVUFVVJSNWDNZVUJSNZXAQVVRTW
      UDVVPWUGXAWUDVVOWUFVUJSWUDVVOWUEVUSSNZVVLWDNZWUFVYOVVOWUIUKZVXQVYRVYMWUJV
      YEVVNUBVVJVVBWUIVUPVVCUBUCYGZVUTWUHVVAVVLWDWUKVURWUEVUSSVUQVVJGYHYIVUQVVJ
      VUFSYJUVNVVCVRZWUHVVLWDUVOUVPZYCYKWUDWUEVUSVVJVUFWUDUYIPVVJGAUYIPGUNZVUGV
      XPVYOVYRUYSUVQVYOVVJUYIRZVXQVYRVYMWUOVYEVVNVVJUYIVUOUVRZYCYKUVSVUIVUSPRZV
      XPVYOVYRVUGAVUFUYIRZWUQUYCUYIVUFVVHXRZAUYIPVUFGUYSXGUVTYLWUDVVJVYPWUAVYRW
      UBWIXPVUGVYJAVXPVYOVYRVYKUWAVYPWUAVYRVVKWUBWUAVYRWKVUFVVJVVJVUFUWBUWFYMUW
      CYAYIYOVYPBUMUBCDEVVMVVRFGVVCVVJVUFUAHAUYTVUGVXPVYOIYLZAVUAVUGVXPVYOJYLZA
      DEUWDVTVUGVXPVYOKYLZAUYPVUGVXPVYOLYLZAFUWERVUGVXPVYOMYLZAVUGVXPVYOXOZWULV
      UIVWDVXOVYOUWGZVUIVWDVXOVYOUWHZVYPVYEUMVSZUYCRWVHVUFSNZXAQZVVMTVTZWVHFQZV
      UJSNZXAQZVVRTVTZXBZVXQVYMVYEVVNUWIVYDWVPUFWVHUYCUFUMYGZVXTWVKVYCWVOWVQVXS
      WVJVVMTWVQVXRWVIXAVWFWVHVUFSYJYOYBWVQVYBWVNVVRTWVQVYAWVMXAWVQVWKWVLVUJSVW
      FWVHFYHYIYOYBYNUWJYMZVYPVYMWUOVYQWUPURZVXQVYNVVNUWKZVUGWURAVXPVYOWUSXSZVY
      PVUFVUFSNZXAQZYPVVMTVUGWWCYPUKAVXPVYOVUGWWBVUGVUFVUGVUFWUCXPUWLUWPXSVYPVV
      MWVGUWMYQZYRYQVYPVYSWKVVQWUIVUJSNZXAQZVVRTVYOVVQWWFUKZVXQVYSVYMWWGVYEVVNV
      YMVVPWWEXAVYMVVOWUIVUJSWUMYIYOYCYKVYPBUMUBCDEVVMVVRFGVVCVUFVVJUAHWUTWVAWV
      BWVCWVDWVEWULWVFWVGWVRWWAWWDWVSWVTYRYQUWNUWOUWQYSUWRYSUWSUWTUXAUXFUXBUXCV
      UIUEUDUCVUPVUFVUJVVCVUIUBVUPVVBPVVCVUIVUQVUFUYIGAWUNVUGUYSWIAUYIPVDVUGAUY
      IOPVUCVEUXDZWIVUGWURAWUSXQUXEWULUXGAVUPPVDVUGAUYIPVUOWWHYEWIVUGVYJAVYKXQU
      XHYTAVUKVUNVVDWKUXIVUGAUBUYIVUFVUJOVULGVVCUYLVULVRVUDWULUYMUYSVUCUXJWIYTZ
      VUFVUJUYDUAUXKVUFFUXLUXMURUXRUXNUXOUYDUYCUXPUXQAUYQFUYCULUYRUYCPFUXSURVUI
      UYEVUKVUFUYDQVUJUKAUYEVUGUYHWIWWIVUFVUJUYDUXTUYAUYB $.
  $}

  ${
    $d t x F $.  $d t x A $.
    $( Lemma for ~ ftc1anc - the absolute value of a real-valued measurable
       function is measurable.  Would be trivial with ~ cncombf , but this
       proof avoids ~ ax-cc .  (Contributed by Brendan Leahy, 18-Jun-2018.) $)
    ftc1anclem1 $p |- ( ( F : A --> RR /\ F e. MblFn ) ->
      ( abs o. F ) e. MblFn ) $=
      ( vt vx cr wcel wa cabs wceq adantr cioo co cima crab wb clt wn biantrurd
      wbr syl wf cmbf ccom cv cfv cmpt cc ffvelrn recnd feqmptd absf a1i fmptco
      fveq2 abscld eqid fmptd cdm cvol fdm mbfdm adantl eqeltrrd ccnv cpnf cmnf
      id cneg cun cle rexr elioopnf bicomd sylan9bbr ltnle ancoms sylan renegcl
      cxr absle lenlt syl2anr rexrd elioomnf sylan9bb notbid bitrd anbi12d elun
      oran bitri syl6bbr 3bitrd an32s rabbidva mptpreima 3eqtr4g cnveqd imaeq1d
      wo simpl eqtr4d imaundi syl6eq adantlr mbfima unmbl syl2anc eqeltrd abslt
      jca elioo5 3expa 3bitr4d ismbf2d ) AEBUAZBUBFZGZHBUCZCACUDZBUEZHUEZUFZUBX
      PXSYCIXQXPCDAUGYADUDZHUEYBBHXPXTAFZGZYAAEXTBUHZUIZXPCAEBXPVGUJXPDUGEHUGEH
      UAXPUKULUJYDYAHUNUMJXRDAYCXPAEYCUAXQXPCAYBEYCYFYAYHUOZYCUPZUQJXRBURZAUSUR
      ZXPYKAIXQAEBUTJXQYKYLFXPBVAVBVCXRYDEFZGZYCVDZYDVEKLZMZBVDZVFYDVHZKLZMZYRY
      PMZVIZYLXPYMYQUUCIXQXPYMGZYQYRYTYPVIZMZUUCUUDYQCAYAUFZVDZUUEMZUUFUUDYBYPF
      ZCANYAUUEFZCANYQUUIUUDUUJUUKCAXPYEYMUUJUUKOYFYMGZUUJYDYBPSZYBYDVJSZQZUUKY
      MUUJYBEFZUUMGZYFUUMYMYDVSFZUUJUUQOYDVKZYDYBVLTYFUUMUUQYFUUPUUMYIRVMVNYFUU
      PYMUUMUUOOZYIYMUUPUUTYDYBVOVPVQUULUUOYAYTFZQZYAYPFZQZGZQZUUKUULUUNUVEUULU
      UNYSYAVJSZYAYDVJSZGZUVEYFYAEFZYMUUNUVIOYGYAYDVTVQUULUVGUVBUVHUVDUULUVGYAY
      SPSZQZUVBYMYSEFUVJUVGUVLOYFYDVRZYGYSYAWAWBUULUVKUVAYFUVKUVJUVKGZYMUVAYFUV
      JUVKYGRYMUVAUVNYMYSVSFZUVAUVNOYMYSUVMWCZYSYAWDTVMWEWFWGUULUVHYDYAPSZQZUVD
      YFUVJYMUVHUVROYGYAYDWAVQUULUVQUVCYFUVQUVJUVQGZYMUVCYFUVJUVQYGRYMUVCUVSYMU
      URUVCUVSOUUSYDYAVLTVMWEWFWGWHWGWFUUKUVAUVCWTUVFYAYTYPWIUVAUVCWJWKWLWMWNWO
      CAYBYPYCYJWPCAYAUUEUUGUUGUPZWPWQUUDYRUUHUUEUUDBUUGUUDCAEBXPYMXAUJWRZWSXBY
      RYTYPXCXDXEXRUUCYLFZYMXQXPUWBXQXPGUUAYLFUUBYLFUWBAVFYSBXFAYDVEBXFUUAUUBXG
      XHVPJXIYNYOVFYDKLZMZYRYSYDKLZMZYLXPYMUWDUWFIXQUUDUWDUUHUWEMZUWFUUDYBUWCFZ
      CANYAUWEFZCANUWDUWGUUDUWHUWICAXPYEYMUWHUWIOUULYBYDPSZYSYAPSYAYDPSGZUWHUWI
      YFUVJYMUWJUWKOYGYAYDXJVQYMUWHUUPUWJGZYFUWJYMUURUWHUWLOUUSYDYBWDTYFUWJUWLY
      FUUPUWJYIRVMVNYMUVOUURGYAVSFZUWIUWKOZYFYMUVOUURUVPUUSXKYFYAYGWCUVOUURUWMU
      WNYSYDYAXLXMWBXNWNWOCAYBUWCYCYJWPCAYAUWEUUGUVTWPWQUUDYRUUHUWEUWAWSXBXEXRU
      WFYLFZYMXQXPUWOAYSYDBXFVPJXIXOXI $.
  $}

  ${
    $d t x F $.  $d t x A $.  $d t x G $.
    $( Lemma for ~ ftc1anc - restriction of an integrable function to the
       absolute value of its real or imaginary part.  (Contributed by Brendan
       Leahy, 19-Jun-2018.)  (Revised by Brendan Leahy, 8-Aug-2018.) $)
    ftc1anclem2 $p |- ( ( F : A --> CC /\ F e. L^1 /\ G e. { Re , Im } ) ->
      ( S.2 ` ( t e. RR |-> if ( t e. A , ( abs ` ( G ` ( F ` t ) ) ) ,
        0 ) ) ) e. RR ) $=
      ( vx cc cibl wcel cre cim cr cfv cabs cc0 cmpt citg2 wa wceq cmbf adantr
      wf cpr cv cif wo elpri fveq1 fveq2d ifeq1d mpteq2dv ffvelrn recld adantlr
      adantl simpl feqmptd simpr eqeltrrd iblcn biimpa syldan simpld ccom recnd
      eqidd absf fveq2 fmptco eqid iblmbf ismbfcn2 ftc1anclem1 syl2anc iblabsnc
      a1i fmptd wb abscld absge0d iblpos mpbid simprd imcld jaodan sylan2 3impa
      eqeltrd ) BFCUAZCGHZDIJUBHZAKAUCZBHZWKCLZDLZMLZNUDZOZPLZKHZWJWHWIQZDIRZDJ
      RZUEWSDIJUFWTXAWSXBWTXAQWRAKWLWMILZMLZNUDZOZPLZKXAWRXGRWTXAWQXFPXAAKWPXEX
      AWLWOXDNXAWNXCMWMDIUGUHUIUJUHUNWTXGKHZXAWTABXDOZSHZXHWTXIGHZXJXHQZWTABXCK
      WHWLXCKHWIWHWLQZWMBFWKCUKZULZUMWTABXCOZGHZABWMJLZOZGHZWHWIABWMOZGHZXQXTQZ
      WTCYAGWTABFCWHWIUOUPZWHWIUQURWHYBYCWHABWMXNUSUTVAZVBWTMXPVCZXISWHYFXIRWIW
      HAEBFXCEUCZMLZXDXPMXMXCXOVDZWHXPVEWHEFKMFKMUAWHVFVOUPZYGXCMVGVHTWTBKXPUAZ
      XPSHZYFSHWHYKWIWHABXCKXPXOXPVIVPTWTYLXSSHZWHWIYASHZYLYMQZWTCYASYDWICSHWHC
      VJUNURWHYNYOWHABWMXNVKUTVAZVBBXPVLVMURVNWHXKXLVQWIWHABXDXMXCYIVRXMXCYIVSV
      TTWAWBTWGWTXBQWRAKWLXRMLZNUDZOZPLZKXBWRYTRWTXBWQYSPXBAKWPYRXBWLWOYQNXBWNX
      RMWMDJUGUHUIUJUHUNWTYTKHZXBWTABYQOZSHZUUAWTUUBGHZUUCUUAQZWTABXRFWHWLXRFHW
      IXMXRXMWMXNWCZVDZUMWTXQXTYEWBWTMXSVCZUUBSWHUUHUUBRWIWHAEBFXRYHYQXSMUUGWHX
      SVEYJYGXRMVGVHTWTBKXSUAZYMUUHSHWHUUIWIWHABXRKXSUUFXSVIVPTWTYLYMYPWBBXSVLV
      MURVNWHUUDUUEVQWIWHABYQXMXRUUGVRXMXRUUGVSVTTWAWBTWGWDWEWF $.
  $}

  ${
    $d x y z F $.  $d x y z G $.
    $( Lemma for ~ ftc1anc - the absolute value of the sum of a simple function
       and ` _i ` times another simple function is itself a simple function.
       (Contributed by Brendan Leahy, 27-May-2018.) $)
    ftc1anclem3 $p |- ( ( F e. dom S.1 /\ G e. dom S.1 ) -> ( abs o.
      ( F oF + ( ( RR X. { _i } ) oF x. G ) ) ) e. dom S.1 ) $=
      ( vx vy wcel wa cr ci cmul co caddc csqrt cfv cmpt wceq cc cvv adantl cc0
      wf vz citg1 cdm cabs csn cxp cof ccom cv c2 cexp ffvelrnda absreim syl2an
      i1ff anandirs recnd sqvald oveqan12d fveq2d eqtrd mpteq2dva mulcl sylancr
      ax-icn addcl reex a1i adantlr ovexd feqmptd adantr fconstmpt offval2 absf
      fveq2 fmptco mulcld adantll sqrtf 3eqtr4d cpnf cico cres cle wbr resqrtcl
      elrege0 sylbi id ax-mp wss rge0ssre ax-resscn sstri resmpt eqtri ge0addcl
      reseq1i fmptd oveq12 anidms remulcld msqge0d sylanbrc eqid mpbird vtoclga
      feq1d inidm off fco2 syl2anc crn cfn rnco wfn ffn readdcl remulcl frn syl
      syl6ss fnssres i1fmul i1fadd i1frn fnfi rnfi syl5eqel ccnv cima cvol cdif
      cnvco imaeq1i imaco wn xchnxbir sylibr i1fima fveq2i wo wne eldifsni c0ex
      elsn eqcom bitri necon3bbii sqrt0 eleq1i olcd ianor elpreima mp2b i1fima2
      wb i1fd eqeltrd ) AUBUCZEZBUVAEZFZUDAGHUEUFZBIUGZJZKUGZJZUHZLAAUVFJZBBUVF
      JZUVHJZUHZUVAUVDCGCUIZAMZHUVOBMZIJZKJZUDMZNCGUVPUVPIJZUVQUVQIJZKJZLMZNUVJ
      UVNUVDCGUVTUWDUVDUVOGEZFZUVTUVPUJUKJZUVQUJUKJZKJZLMZUWDUVBUVCUWEUVTUWJOZU
      VBUWEFZUVPGEZUVQGEUWKUVCUWEFZUVBGGUVOAAUOZULZUVCGGUVOBBUOZULZUVPUVQUMUNUP
      UWFUWIUWCLUVBUVCUWEUWIUWCOUWLUWNUWGUWAUWHUWBKUWLUVPUWLUVPUWPUQZURUWNUVQUW
      NUVQUWRUQZURUSUPUTVAVBUVDCDGPUVSDUIZUDMUVTUVIUDUVBUVCUWEUVSPEZUWLUVPPEUVR
      PEZUXBUWNUWSUWNHPEZUVQPEUXCVEUWTHUVQVCVDUVPUVRVFUNUPUVDCGUVPUVRKAUVGQGQGQ
      EZUVDVGVHZUVBUWEUWMUVCUWPVIUWFHUVQIVJUVBACGUVPNOUVCUVBCGGAUWOVKZVLUVCUVGC
      GUVRNOUVBUVCCGHUVQIUVEBQPGUXEUVCVGVHZUXDUWNVEVHUWRUVECGHNOUVCCGHVMVHUVCCG
      GBUWQVKZVNRVNUVDDPGUDPGUDTUVDVOVHVKUXAUVSUDVPVQUVDCDGPUWCUXALMUWDUVMLUVBU
      VCUWEUWCPEZUWLUWAPEZUWBPEZUXJUWNUWLUVPUVPUWSUWSVRZUWNUVQUVQUWTUWTVRZUWAUW
      BVFUNUPUVDCGUWAUWBKUVKUVLQPPUXFUVBUWEUXKUVCUXMVIUVCUWEUXLUVBUXNVSUVBUVKCG
      UWANOUVCUVBCGUVPUVPIAAQGGUXEUVBVGVHZUWPUWPUXGUXGVNVLUVCUVLCGUWBNOUVBUVCCG
      UVQUVQIBBQGGUXHUWRUWRUXIUXIVNRVNUVDDPPLPPLTZUVDVTVHVKUXAUWCLVPVQWAUVDCUVN
      UVDSWBWCJZGLUXQWDZTGUXQUVMTGGUVNTUVDCUXQUVOLMZGUXRUVOUXQEZUXSGEZUVDUXTUWE
      SUVOWEWFFUYAUVOWHUVOWGWIRUXRCPUXSNZUXQWDZCUXQUXSNZLUYBUXQUXPLUYBOVTUXPCPP
      LUXPWJVKWKWSUXQPWLUYCUYDOUXQGPWMWNWOCPUXQUXSWPWKWQWTUVDCDGGGKUXQUXQUXQUVK
      UVLQQUXTUXAUXQEFUVOUXAKJZUXQEUVDUVOUXAWRRUVBGUXQUVKTZUVCGUXQUAUIZUYGUVFJZ
      TZUYFUAAUVAUYGAOZGUXQUYHUVKUYJUYHUVKOUYGAUYGAUVFXAXBXIUYGUVAEZUYIGUXQCGUV
      OUYGMZUYLIJZNZTUYKCGUYMUXQUYNUYKUWEFZUYMGESUYMWEWFUYMUXQEUYOUYLUYLUYKGGUV
      OUYGUYGUOZULZUYQXCUYOUYLUYQXDUYMWHXEUYNXFWTUYKGUXQUYHUYNUYKCGUYLUYLIUYGUY
      GQGGUXEUYKVGVHUYQUYQUYKCGGUYGUYPVKZUYRVNXIXGZXHVLUVCGUXQUVLTZUVBUYIUYTUAB
      UVAUYGBOZGUXQUYHUVLVUAUYHUVLOUYGBUYGBUVFXAXBXIUYSXHRUXFUXFGXJZXKGUXQGLUVM
      XLXMUVDUVNXNZLUVMXNZWDZXNZXOLUVMXPUVDVUEXOEZVUFXOEUVDVUEVUDXQZVUDXOEZVUGU
      VDLPXQZVUDPWLVUHUXPVUJVTPPLXRZWKUVDVUDGPUVDGGUVMTVUDGWLUVDCDGGGKGGGUVKUVL
      QQUWEUXAGEFZUYEGEUVDUVOUXAXSRUVBGGUVKTUVCUVBCDGGGIGGGAAQQVULUVOUXAIJGEZUV
      BUVOUXAXTZRUWOUWOUXOUXOVUBXKVLUVCGGUVLTUVBUVCCDGGGIGGGBBQQVULVUMUVCVUNRUW
      QUWQUXHUXHVUBXKRUXFUXFVUBXKGGUVMYAYBWNYCPVUDLYDVDUVDUVMUVAEZVUIUVDUVKUVLU
      VBUVKUVAEUVCUVBAAUVBWJZVUPYEVLUVCUVLUVAEUVBUVCBBUVCWJZVUQYERYFZUVMYGYBVUD
      VUEYHXMVUEYIYBYJUVDUVNYKZUVOUEZYLZYMUCZEUVOVUCSUEYNEZUVDVVAUVMYKZLYKZVUTY
      LZYLZVVBVVAVVDVVEUHZVUTYLVVGVUSVVHVUTLUVMYOYPVVDVVEVUTYQWQZUVDVUOVVGVVBEV
      URVVFUVMUUAYBYJVLUVDVVCFVVAYMMVVGYMMZGVVAVVGYMVVIUUBUVDVUOSVVFEZYRZVVJGEV
      VCVURVVCSPEZYRZSLMZVUTEZYRZUUCZVVLVVCVVQVVNVVCUVOSUUDZVVQUVOVUCSUUESVUTEZ
      VVSVVPVVTUVOSVVTSUVOOUVOSOSUVOUUFUUGSUVOUUHUUIUUJVVOSVUTUUKUULYSYTUUMVVMV
      VPFZVVRVVKVVMVVPUUNUXPVUJVVKVWAUURVTVUKPSVUTLUUOUUPYSYTVVFUVMUUQUNYJUUSUU
      T $.
  $}

  ${
    $d t x F $.  $d t x G $.
    $( Lemma for ~ ftc1anc .  (Contributed by Brendan Leahy, 17-Jun-2018.) $)
    ftc1anclem4 $p |- ( ( F e. dom S.1 /\ G e. L^1 /\ G : RR --> RR ) ->
      ( S.2 ` ( t e. RR |-> ( abs ` ( ( G ` t ) - ( F ` t ) ) ) ) ) e. RR ) $=
      ( vx wcel cibl cr wf cc0 co cfv cabs cmpt citg2 cle wbr wa cc cvv cmbf cv
      citg1 cdm w3a cpnf cicc cmin caddc cxr ffvelrn recnd i1ff ffvelrnda subcl
      syl2anr anandirs abscld rexrd absge0d elxrge0 sylanbrc eqid fmptd 3adant2
      cof reex a1i fvexd eqidd offval2 fveq2d ccom wceq id feqmptd fveq2 fmptco
      adantl iblmbf ftc1anclem1 sylan2 ancoms eqeltrrd 3adant1 elrege0 3ad2ant3
      absf cif iftrue mpteq2ia fveq2i adantll simpr simpl iblabsnc iblpos mpbid
      simprd syl5eqelr 3ad2ant1 i1fibl i1fmbf syl2anc itg2addnc eqtr3d readdcld
      cico eqeltrd cofr readdcl adantlr wral abs2dif2 ralrimiva ofrfval2 mpbird
      addge0d itg2le syl3anc itg2lecl ) BUBUCEZCFEZGGCHZUDZGIUEUFJZAGAUAZCKZYFB
      KZUGJZLKZMZHZAGYGLKZYHLKZUHJZMZNKZGEYKNKZYQOPZYRGEYAYCYLYBYAYCQZAGYJYEYKY
      TYFGEZQZYJUIEIYJOPYJYEEUUBYJUUBYIYAYCUUAYIREZYCUUAQZYGREZYHREZUUCYAUUAQZU
      UDYGGGYFCUJZUKZUUGYHYAGGYFBBULZUMZUKZYGYHUNUOUPZUQZURUUBYIUUMUSYJUTVAYKVB
      VCVDZYDYQAGYMMZNKZAGYNMZNKZUHJZGYDUUPUURUHVEJZNKYQUUTYDUVAYPNYDAGYMYNUHUU
      PUURSSSGSEZYDVFVGYDUUAQZYGLVHUVCYHLVHYDUUPVIYDUURVIVJVKYDUUPUURYBYCUUPTEZ
      YAYBYCQZLCVLZUUPTYCUVFUUPVMYBYCADGRYGDUAZLKZYMCLUUIYCAGGCYCVNVOYCDRGLRGLH
      ZYCWGVGVOUVGYGLVPVQVRYCYBUVFTEZYBYCCTEUVJCVSGCVTWAWBWCZWDYCYAGIUEXGJZUUPH
      YBYCAGYMUVLUUPUUDYMGEZIYMOPZYMUVLEUUDYGUUIUQZUUDYGUUIUSZYMWEVAUUPVBVCWFYB
      YCUUQGEYAUVEUUQAGUUAYMIWHZMZNKZGUVRUUPNAGUVQYMUUAYMIWIWJWKUVEUVDUVSGEZUVE
      UUPFEUVDUVTQUVEAGYGGYCUUAYGGEYBUUHWLUVECAGYGMFUVEAGGCYBYCWMVOYBYCWNWCUVKW
      OUVEAGYMYCUUAUVMYBUVOWLYCUUAUVNYBUVPWLWPWQWRWSWDZYAYBGUVLUURHYCYAAGYNUVLU
      URUUGYNGEZIYNOPZYNUVLEUUGYHUULUQZUUGYHUULUSZYNWEVAUURVBVCWTYAYBUUSGEYCYAU
      USAGUUAYNIWHZMZNKZGUWGUURNAGUWFYNUUAYNIWIWJWKYAUURTEZUWHGEZYAUURFEUWIUWJQ
      YAAGYHGUUKYABAGYHMFYAAGGBUUJVOZBXAWCYALBVLZUURTYAADGRYHUVHYNBLUULUWKYADRG
      LUVIYAWGVGVOUVGYHLVPVQYAGGBHBTEUWLTEUUJBXBGBVTXCWCWOYAAGYNUWDUWEWPWQWRWSW
      TZXDXEYDUUQUUSUWAUWMXFXHYDYLGYEYPHZYKYPOXIPZYSUUOYAYCUWNYBYTAGYOYEYPUUBYO
      UIEIYOOPYOYEEUUBYOYAYCUUAYOGEZUUDUVMUWBUWPUUGUVOUWDYMYNXJUOUPZURUUBYMYNYC
      UUAUVMYAUVOWLYAUUAUWBYCUWDXKYCUUAUVNYAUVPWLYAUUAUWCYCUWEXKXQYOUTVAYPVBVCV
      DYAYCUWOYBYTUWOYJYOOPZAGXLYTUWRAGYAYCUUAUWRUUDUUEUUFUWRUUGUUIUULYGYHXMUOU
      PXNYTAGYJYOOYKYPSGGUVBYTVFVGUUNUWQYTYKVIYTYPVIXOXPVDYKYPXRXSYQYKXTXS $.
  $}

  ${
    $d a b f g r s t u w x y z A $.  $d a b f g r s t u w x y z B $.
    $d a b f g r s t u w x y z D $.  $d a b f g r s t u w x y z F $.
    $d a b f g r s t u w x y z ph $.  $d a b f g r s u w y z G $.
    ftc1anc.g $e |- G = ( x e. ( A [,] B ) |-> S. ( A (,) x ) ( F ` t ) _d t )
      $.
    ftc1anc.a $e |- ( ph -> A e. RR ) $.
    ftc1anc.b $e |- ( ph -> B e. RR ) $.
    ftc1anc.le $e |- ( ph -> A <_ B ) $.
    ftc1anc.s $e |- ( ph -> ( A (,) B ) C_ D ) $.
    ftc1anc.d $e |- ( ph -> D C_ RR ) $.
    ftc1anc.i $e |- ( ph -> F e. L^1 ) $.
    ftc1anc.f $e |- ( ph -> F : D --> CC ) $.
    ${
      $d f g t x y Y $.
      $( Lemma for ~ ftc1anc , the existence of a simple function the integral
         of whose pointwise difference from the function is less than a given
         positive real.  (Contributed by Brendan Leahy, 17-Jun-2018.) $)
      ftc1anclem5 $p |- ( ( ph /\ Y e. RR+ ) -> E. f e. dom S.1 ( S.2 `
        ( t e. RR |-> ( abs ` ( ( Re ` if ( t e. D , ( F ` t ) , 0 ) ) -
          ( f ` t ) ) ) ) ) < Y ) $=
        ( cr cc0 vg wcel wa cv cfv cif cre cabs cmpt cle citg1 citg2 cmin co wn
        wbr cdm wrex clt wral iftrue mpteq2ia fveq2i cmbf cibl ffvelrnda adantr
        wi cc rembl a1i cdif adantl iffalse fveq2d re0 syl cim feqmptd eqeltrrd
        wceq mpbid simpld syl5eqel ccom recnd eqidd wf fveq2 eqid fmptd syl2anc
        abscld absge0d syl5eqelr sylan resubcl syl2an ltnled cxr rexrd sylanbrc
        cpnf wb cneg ad2antrr itg1cl ad2antlr 0re sylancr ralrimiva csn cxp wss
        wfn fvex c0ex ifex fnmpti cvv reex ifcl sylancl mpbird elrege0 ifbieq1d
        caddc fvmpt breq2d cima cun cmul ffn mpteq2dva oveq2d eqtrd mpan2 an32s
        wtru syldan cofr 0cnd ifclda recld cvol eldifn syl6eq iblcn iblss2 absf
        fmptco iblmbf ismbfcn2 mbfss ftc1anclem1 iblabsnc iblpos simprd ltsubrp
        crp rpre cicc elxrge0 itg2leub mtbid rexanali sylibr c0p i1ff ax-resscn
        i1fpos max1 0pledm fconstmpt ofrfval2 bitrd itg2itg1 eqeltrd ltnle max2
        biimpar itg1le mpd3an23 breqtrrd ltletrd adantrl cof i1fmbf cico negcld
        ifcld subcl anassrs weq eleq1 negeqd ifbieq12d negex oveq12d ccnv c1 wo
        ovex crn frn ref ax-mp fnco mp3an1 elpreima fco biantrurd syl6bbr fvco3
        3syl bitr3d pm5.32da 0le0 breqtrri biantru eldif baibr syl5rbbr orbi12d
        elun elimif 3bitr4g ifbid offval2 ovif12 addid1d mulm1d addid2d ifeq12d
        0cn syl5eq sylan9eq cioo 0xr pnfxr 0ltpnf snunioo mp3an imaeq2i imaundi
        eqtr3i ismbfcn mbfimasn mp3an3 mbfima unmbl difmbl eqcomd ifeq1d i1fres
        fdm mbfdm id neg1rr i1fmulc cmmbl ifnot tru fconst inidm fvconst2 ofval
        mp1i mpan syl5eqr i1fadd syl2anr jca ftc1anclem4 3expb itg2addnc eqtr3d
        cbvmptv nfcv nfmpt1 nfbr anass fvmpt2 ofrval 3com23 3expa adantll absid
        nfan biimpa adantllr breq1 ifboth sylancom subge0 absidd oveq1d 3eqtr4d
        nfv renegcld ad3antlr ltle sylbird imp absnid sylanl1 lenegcon2d simpll
        ad3antrrr suble0 absnidd subneg negdi2 pm2.61dan pncan3 sylanb mpteq2da
        neg0 breq1d adantlr ltadd2d ltsubadd syl3an 3bitr4d adantrr ex reximdva
        negeq fveq1 rspcev rexlimdva syld mpd ) AJUUTUBZUCZUAUDZCSCUDZFUBZVYQHU
[encoded data, 8320 characters]
        MYYPWVFWUOXWOWYAVYQWUNXWNVYIXXDUYQYOVOYNVOVXSVYJVYFVQVYKVGVYLVYM $.
      $( Lemma for ~ ftc1anc - construction of simple functions within an
         arbitrary absolute distance of the given function.  Similar to Lemma
         565Ib of [Fremlin5] p. 218, but without Fremlin's additional step of
         converting the simple function into a continuous one, which is
         unnecessary to this lemma's use; also, two simple functions are used
         to allow for complex-valued ` F ` .  (Contributed by Brendan Leahy,
         31-May-2018.) $)
      ftc1anclem6 $p |- ( ( ph /\ Y e. RR+ ) -> E. f e. dom S.1 E. g e. dom S.1
        ( S.2 ` ( t e. RR |-> ( abs ` ( if ( t e. D , ( F ` t ) , 0 ) -
          ( ( f ` t ) + ( _i x. ( g ` t ) ) ) ) ) ) ) < Y ) $=
        ( cr vy crp wcel wa cv cfv cc0 cif cre cmin co cabs cmpt citg2 cdiv clt
        wbr cdm wrex cim ci cmul caddc ftc1anclem5 sylan2 cicc cioo eqid ax-icn
        c1 cc ine0 a1i ffvelrnda cibl feqmptd eqeltrrd cmbf divrec2 mp3an23 syl
        wceq mpteq2dva iblmbf cneg weq fveq2 fveq2d cbvmptv recld recnd adantlr
        eleq1i adantl mbfneg syl6eqr adantr cvv sylancr eleq1d anbi12d ismbfcn2
        mpbid mulcl fmptd wb fvmpt eqtri oveq1d mpteq2ia wf jca syl2an cle cpnf
        cxr anassrs abscld rexrd absge0d sylanbrc adantrr wral syl5eq ccnv cima
        adantrl cin ciun ad2antlr crab ineq2d mptpreima ineq12i syl6eq ad3antlr
        wss inrab syl2anc cmnf c2 citg1 rphalfcl reccli biimpri sylan2b negnegd
        citg wne negex negeqd biimpi impbida w3a divcl imre mulneg1 eqtrd reneg
        divcan2 3eqtrd bitr4d imval ancom syl6bb 3bitr4d iblmulc2nc 0cnd ifclda
        wn oveq2d ovex eqtr4d ifeq1da div0i ifeq2 ax-mp mpteq2dv breq1d rexbidv
        ovif mpbird reeanv eleq1w ifbieq1d fvex fveq2i cvol rembl cdif iffalsed
        wi eldifn iftrue iblss2 iblcn simpld ftc1anclem4 3expb ancoms syl5eqelr
        simprd imcld anim12dan rpred lt2add an32s cof cofr i1ff adantlrr addcld
        subcl adantlrl elxrge0 cico icossicc ge0addcl sseldi elrege0 reex inidm
        abstrid ralrimiva ovexd eqidd absmul absi oveq1i mulid2d eqtr2d offval2
        off fvexd ofrfval2 itg2le syl3anc ccom cofmpt resubcl crn iunin2 imaiun
        absf csn iunid imaeq2i eqtr3i ineq2i cnvimass dmmpti sseqtri cnvimarndm
        fdm syl5sseqr df-ss sylib frn sselda ad2antrr sylan 2thd ltaddsub 3comr
        syl3an3 3expa readdcl adantll elioopnf 3bitr4rd oveq2 bibi1d syl5ibrcom
        rexr pm5.32rd adantllr syldan rabbidv cnveqd imaeq1d mptiniseg iuneq2dv
        vex 3eqtr4d eqtr3d i1frn mbfss mbfima inmbl ralrimivw finiunmbl eqeltrd
        cfn i1fima ltsubadd syl3an1 elioomnf ismbf2d ftc1anclem1 breqtrd itg2cl
        itg2addnc anandis rpaddcld rpxrd xrlelttr syld anim12i anandirs addsub4
        mpand replimd subdi mp3an3an 3eqtr4rd 2halvesd breq12d sylibd reximdvva
        rpcn syl5bir mp2and ) AKUBUCZUDZCTCUEZFUCZVYEIUFZUGUHZUIUFZVYEGUEZUFZUJ
[encoded data, 9120 characters]
        VXTVXPYJVXQVXRVXSVYAVYB $.
    $}
    $( Lemma for ~ ftc1anc .  (Contributed by Brendan Leahy, 13-May-2018.) $)
    ftc1anclem7 $p |- ( ( ( ( ( ( ( ph /\ ( f e. dom S.1 /\ g e. dom S.1 ) ) /\
      ( S.2 ` ( t e. RR |-> ( abs ` ( if ( t e. D , ( F ` t ) , 0 ) -
        ( ( f ` t ) + ( _i x. ( g ` t ) ) ) ) ) ) ) < ( y / 2 ) ) /\
      E. r e. ( ran f u. ran g ) r =/= 0 ) /\ y e. RR+ ) /\
        ( u e. ( A [,] B ) /\ w e. ( A [,] B ) /\ u <_ w ) ) /\
      ( abs ` ( w - u ) ) < ( ( y / 2 ) / ( 2 x. sup ( ( abs "
        ( ran f u. ran g ) ) , RR , < ) ) ) ) -> ( ( S.2 ` ( t e. RR |->
      if ( t e. ( u (,) w ) , ( abs ` ( ( f ` t ) + ( _i x. ( g ` t ) ) ) ) ,
        0 ) ) ) + ( S.2 ` ( t e. RR |-> if ( t e. ( u (,) w ) , ( abs `
      ( ( F ` t ) - ( ( f ` t ) + ( _i x. ( g ` t ) ) ) ) ) , 0 ) ) ) ) <
        ( ( y / 2 ) + ( y / 2 ) ) ) $=
      ( cv citg1 cdm wcel wa cr cfv cc0 cif ci cmul co caddc cmin cabs citg2 c2
      cmpt cdiv clt wbr wne crn wrex crp cicc cle w3a cioo cvol csn cxp cc i1ff
      cof ffvelrnda recnd ax-icn mulcl sylancr syl2an anandirs cvv reex adantlr
      a1i wceq feqmptd adantr adantl wf absf fveq2 eqid sylancl wral wi absge0d
      sylan2 wss ax-resscn wfn c0ex eqidd ofrfval2 mpbird eqeltrd syl2anc rexrd
      ifex cxr 3adantr3 sselda syldan adantllr adantll abscld elxrge0 0e0iccpnf
      sylanbrc ifclda fmptd sylan syl ad3antrrr iftrue ad2antrr syl3anc frn ffn
      wb ax-mp fnfvima mp3an1 cfn suprub syl2anr breqtrd cun cima csup c0p cofr
      ccom addcl ovexd fconstmpt offval2 fmptco ftc1anclem3 eqeltrrd ioombl weq
      oveq2d oveq12d fveq2d fvex fvmpt eqcomd ifeq1d i1fres breq2 elioore eleq1
      mpteq2ia anbi2d eleq1d imbi12d chvarv wn ifbothda ralrimivw fnmpti 0pledm
      0le0 bitrd itg2itg1 itg1cl ad6antlr simplll df-icc elixx3g simprbi simpld
      cpnf jca simprd anim12i ioossioo sstrd subcld rpre ad2antlr simpll itg2cl
      rehalfcld 0cnd subcl rphalfcl rpxrd breq1 leidd oveq1d breqtrrd ralrimiva
      anassrs itg2le simpllr xrlelttrd xrltle mpd itg2lecl ad3antlr 2rp imassrn
      fvexd sstri unssd syl6ss i1f0rn elun1 ne0i wfun ffun i1frn imafi fimaxre2
      c0 unfi suprcl 0red adantrr absgt0 biimpa anasss ltletrd elrpd rexlimdvaa
      imp rpmulcl rerpdivcld simp-4l iccssre anandis rpdivcl rpred adantlll idd
      3jca sseld 3anim123d ifcl 2timesd readdcld abs0 syl5eqelr addge0d readdcl
      abstri c1 absmul oveq1i syl6eq mulid2d eqtrd fnfvelrn elun2 le2addd letrd
      absi 3brtr4d ex iffalse pm2.61d1 ovex covol mblvol ovolioo syl5eq resubcl
      cico ancoms 3adant3 elrege0 ge0addcl itg2const ledivmuld abssubge0 eqtr4d
      simpr lelttrd ltdiv1d lt2addd ) AJUCZUDUEZUFZKUCZVWQUFZUGZUGZFUHFUCZIUFZV
[encoded data, 8080 characters]
      UBVYGVYJVYLXUAVYMVXRVYFWYAXUAVYDXVIXQXNWKVWO $.
    $( Lemma for ~ ftc1anc .  (Contributed by Brendan Leahy, 29-May-2018.) $)
    ftc1anclem8 $p |- ( ( ( ( ( ( ( ph /\ ( f e. dom S.1 /\
      g e. dom S.1 ) ) /\ ( S.2 ` ( t e. RR |-> ( abs ` ( if ( t e. D ,
        ( F ` t ) , 0 ) - ( ( f ` t ) + ( _i x. ( g ` t ) ) ) ) ) )
      ) < ( y / 2 ) ) /\ E. r e. ( ran f u. ran g ) r =/= 0 ) /\ y e. RR+ ) /\
        ( u e. ( A [,] B ) /\ w e. ( A [,] B ) /\ u <_ w ) ) /\ ( abs `
      ( w - u ) ) < ( ( y / 2 ) / ( 2 x. sup ( ( abs " ( ran f u. ran g ) ) ,
        RR , < ) ) ) ) -> ( S.2 ` ( t e. RR |-> if ( t e. ( u (,) w ) ,
      ( ( abs ` ( ( F ` t ) - ( ( f ` t ) + ( _i x. ( g ` t ) ) ) ) ) +
        ( abs ` ( ( f ` t ) + ( _i x. ( g ` t ) ) ) ) ) , 0 ) ) ) < y ) $=
      ( cv cdm wcel wa cr cfv cc0 cif ci cmul co caddc cmin cabs cmpt citg2 clt
      wbr cicc cle w3a wceq cmbf cvv wss a1i c0ex ifex adantl iffalsed mpteq2ia
      cres iftrue ax-mp ccom cc ffvelrnda recnd ax-icn sylancr anandirs adantlr
      syl2an reex adantll feqmptd adantr offval2 wf fmptco eqeltrrd syl sylancl
      absf mbfss cpnf abscld absge0d elrege0 sylanbrc 0e0icopnf ifcl eqid fmptd
      ad2antlr cxr rexrd 0e0iccpnf wfn syl2anc sylan syl6eq wral breq1 c1 eqtrd
      ffn oveq2d eqidd ofrfval2 mpbird syl3anc itg2lecl adantllr breq2 ifbothda
      itg2le syldan ad2antrr ifclda cre readdcld fveq2d 3brtr4d iffalse oveq12d
      cim 00id citg1 c2 cdiv wne crn cun wrex crp cima csup ftc1anclem7 simplll
      cioo 3simpa cof ioossre cvol rembl fvex cdif eldifn resmpt eqtr4i csn cxp
      wn i1ff mulcl addcl fconstmpt fveq2 ftc1anclem3 i1fmbf ioombl mbfres cico
      syl5eqel elxrge0 c0p cofr ax-resscn syl6ss fnco mp3an1 inidm fvco3 offval
      frn addid1d mpteq2dva it0e0 mpteq2i 3eqtr4d coeq2d mpan2 weq coeq2 eleq1d
      i1f0 vtoclga i1fadd ge0addcl 0plef sylib simprd itg2itg1 eqeltrd icossicc
      itg1cl fss readdcl leidd ifboth abstri absmul absi oveq1i mulid2d breqtrd
      0re letrd ralrimiva elioore sylan2 df-icc elixx3g simprbi simpld ioossioo
      jca anim12i sstrd sselda breqtrrd 0le0 ralrimivw wb subcld cibl cpr ccncf
      recncf prid1g ftc1anclem2 mp3an3 imcncf prid2g recld imcld off 0xr negcld
      0red cneg addcld abstrid absnegd replimd eqtr2d leadd2dd abssubd pm2.61d1
      negsubd ex eqtr4d eqtri 3eqtr4a pm2.61i syl6breqr xrletrd reseq1d resmptd
      oveq2i ovexd sylan9eqr syl6eqr fdm iblmbf mbfdm 3syl 0cnd fvif abs0 ifeq2
      syl2anr ismbfcn2 mpbid ftc1anclem1 itg2addnc eqeq2 simplr addcomd ifeq1da
      mpteq2dv eqtr3d rpcn 2halvesd ad3antlr 3brtr3d ) AJUCZUUAUDZUEZKUCZVXAUEZ
[encoded data, 10160 characters]
      PVWQVWRVWS $.
    ftc1anc.t $e |- ( ph -> A. s e. ( (,) " ( ( A [,] B ) X. ( A [,] B ) ) )
      ( abs ` S. s ( F ` t ) _d t ) <_ ( S.2 ` ( t e. RR |-> if ( t e. s ,
        ( abs ` ( F ` t ) ) , 0 ) ) ) ) $.
    $( ~ ftc1a holds for functions that obey the triangle inequality in the
       absence of ~ ax-cc .  Theorem 565Ma of [Fremlin5] p. 220.  (Contributed
       by Brendan Leahy, 11-May-2018.) $)
    ftc1anc $p |- ( ph -> G e. ( ( A [,] B ) -cn-> CC ) ) $=
      ( wcel cr vw vu vz vy vf vg vr vb va cicc co cc wf cv cmin cfv clt wbr wi
      cabs wral crp wrex wa cc0 cif ci cmul caddc cmpt citg2 sylan2 wne crn cle
      c2 wss frn syl adantr adantl wfn absf ax-mp fnfvima mp3an1 syl2anc syl2an
      ffn cfn sylancr sselda abscld adantrr wb w3a a1i anassrs adantlr an32 weq
      sylan wceq fveq2d fveq2 oveqan12rd imbi12d syl2anr anandis ffvelrnda cioo
      breq1d cxr rexrd absge0d syldan wn 0e0iccpnf ifclda fmptd itg2cl 3adantr3
      eqid adantll ad3antlr ex ralrimivw cvv c0ex ifex eqidd syl3anc citg oveq2
      itgeq1 3ad2antr2 3ad2antr1 cibl fvexd eqtrd ccncf ftc1lem2 cdiv citg1 cdm
      rphalfcl ftc1anclem6 adantrl cun cima csup ad2antll 2rp c0 i1ff ax-resscn
      unssd syl6ss elun1 ne0i imassrn sstri wfun ffun i1frn unfi imafi fimaxre2
      i1f0rn suprcl 0red absgt0 biimpd impr suprub ltletrd rexlimdvaa imp elrpd
      rpmulcl rpdivcl ancom anbi2i anbi1i 3bitr4i oveq12 ancoms iccssre ad4antr
      3jca bitri anass simp-4l abssub cpnf df-icc elixx3g simprbi simpld simprd
      jca anim12i ioossioo sstrd elxrge0 sylanbrc simplll adantllr recnd ax-icn
      elioore mulcl addcl anandirs subcld readdcld addge0d rpxr npcand eqbrtrrd
      cofr abstrid iftrue 3brtr4d 0le0 iffalse pm2.61d1 reex fvex ovex ofrfval2
      ad2antrr mpbird itg2le xrlelttrd simpr2 itgex elicc1 biimpa simp2d simpr3
      ftc1anclem8 fvmpt iooss2 eleq1 anbi2d mpteq1d eleq1d cvol ioombl eqeltrrd
      mpbir3and feqmptd iblss chvarv itgsplitioo simpr1 oveq12d pncan2d wel cxp
      itgcl cop df-ov opelxpi cpw ioof iccssxr xpss12 mp2an mp3an12 eleq2 ifbid
      syl5eqel mpteq2dv breq12d rspccva eqbrtrd subcl ad2antlr xrlelttr sylanl1
      mpand mpd wlogle sylanb ralrimiva imbi1d ralbidv rspcev ralnex nne ralbii
      breq2 bitr3i fnfvelrn eqeq1 rspcva elun2 oveq2d it0e0 adantlll an32s 00id
      syl6eq 0cnd subid1d ad3antrrr fvif abs0 ifeq2 eqtri mpteq2dva com23 imp32
      anasss c1 1rp ne0ii adantlrr rehalfcld leidd breq1 ifboth ssneld syl6eqbr
      rpre ifbothda xrletrd simplr rphalflt lttrd a1d r19.2z sylan2b rexlimdvva
      pm2.61dan ralrimivva ssid elcncf2 sylancl mpbir2and ) AHDEUJUKZULUUAUKSZW
[encoded data, 9520 characters]
      DVYRAWUCULVQULULVQWUDWUEWVAVDWOXWMULVYSUBUDUCUAWUCULHVYTWUAWUB $.
  $}

  ${
    $d s t x A $.  $d s t x B $.  $d s t x F $.  $d s t x ph $.
    ftc2nc.a $e |- ( ph -> A e. RR ) $.
    ftc2nc.b $e |- ( ph -> B e. RR ) $.
    ftc2nc.le $e |- ( ph -> A <_ B ) $.
    ftc2nc.c $e |- ( ph -> ( RR _D F ) e. ( ( A (,) B ) -cn-> CC ) ) $.
    ftc2nc.i $e |- ( ph -> ( RR _D F ) e. L^1 ) $.
    ftc2nc.f $e |- ( ph -> F e. ( ( A [,] B ) -cn-> CC ) ) $.
    $( Choice-free proof of ~ ftc2 .  (Contributed by Brendan Leahy,
       19-Jun-2018.) $)
    ftc2nc $p |- ( ph -> S. ( A (,) B ) ( ( RR _D F ) ` t ) _d t =
      ( ( F ` B ) - ( F ` A ) ) ) $=
      ( vx cfv cioo co cr cmpt wcel wceq cc vs cv cdv citg cmin caddc cneg cicc
      csn cxp cxr cle wbr rexrd ubicc2 syl3anc fvex fvconst2 syl ctopn eqid ctx
      ccnfld ccn subcn a1i wss ssid ioossre ccncf cncff cabs wel cc0 citg2 cima
      wf cif wrex wfun cpw ioof ffun ax-mp fvelima mpan wa c1st c2nd wb 1st2nd2
      cop fveq2d df-ov syl6eqr eqeq1d adantl jca adantr xp1st w3a elicc1 biimpa
      syl2anc simp2d sylan2 xp2nd iccleub 3expa syl2an ioossioo syl12anc sselda
      ffvelrnda adantlr syldan cvv ioombl fvexd cibl feqmptd eqeltrrd ax-resscn
      iblss cmbf cnmbf sylancr itgcl itgeq1 dvmptntr 3eqtr3d oveq2d oveq2 fveq2
      cres oveq12d fvmpt c0 syl6eq ffvelrnd cncfss mp2an abscncf sselii reseq1d
      cvol cdm resmptd eqtrd rescncf sylc cncfmpt1f ccj csb cmul cjcld cncfmptc
      mp3an23 nfcsb1v csbeq1a cbvmpt syl5eqelr mulcncf itgabsnc abscld iblabsnc
      sstri nfcv absge0d itgposval breqtrd eleq2 ifbid breq12d syl5ibcom sylbid
      mpteq2dv rexlimdva syl5 ralrimiv ftc1anc cncfmpt2f crn ctg iccssre elicc2
      simp3d iooss2 subcld tgioo2 cnt iccntr reelprrecn ioossicc sseli ftc1cnnc
      cpr 3eqtr3rd dvmptsub subidd mpteq2dva 3eqtrd fconstmpt dveq0 fveq1d ovex
      eqtr3d lbicc2 iooid itg0 df-neg negex pncan3d negsubd ) ADEMZBCDNOZBUBZPE
      UCOZMZUDZUXOUEOZUFOUXOCEMZUGZUFOUXTUXOUYBUEOAUYAUYCUXOUFADCDUHOZCLUYDBCLU
      BZNOZUXSUDZUYEEMZUEOZQZMZUIUJZMZUYKUYAUYCADUYDRZUYMUYKSACUKRZDUKRZCDULUMZ
      UYNACFUNZADGUNZHCDUOUPZUYDUYKDCUYJUQURUSADUYJMZUYMUYAADUYJUYLACDUYJFGALUY
      GUYHUEVCUTMZUYDVUBVAZUEVUBVUBVBOVUBVDORAVUBVUCVEVFALBCDUXPUXRLUYDUYGQZUAV
      UDVAZFGHUXPUXPVGAUXPVHVFUXPPVGACDVIVFJAUXRUXPTVJORZUXPTUXRVQIUXPTUXRVKUSZ
      ABUAUBZUXSUDZVLMZBPBUAVMZUXSVLMZVNVRZQZVOMZULUMZUANUYDUYDUJZVPZVUHVURRZUY
      ENMZVUHSZLVUQVSZAVUPNVTZVUSVVBUKUKUJZPWAZNVQVVCWBVVDVVENWCWDLVUHVUQNWEWFA
      VVAVUPLVUQAUYEVUQRZWGZVVAUYEWHMZUYEWIMZNOZVUHSZVUPVVFVVAVVKWJAVVFVUTVVJVU
      HVVFVUTVVHVVIWLZNMVVJVVFUYEVVLNUYEUYDUYDWKWMVVHVVINWNWOWPWQVVGBVVJUXSUDZV
      LMZBPUXQVVJRZVULVNVRZQZVOMZULUMVVKVUPVVGVVNBVVJVULUDVVRULVVGBUAVVJUXSTVVG
      VVOUXQUXPRZUXSTRZVVGVVJUXPUXQVVGUYOUYPWGZCVVHULUMZVVIDULUMZVVJUXPVGZAVWAV
      VFAUYOUYPUYRUYSWRZWSVVFAVVHUYDRZVWBUYEUYDUYDWTAVWFWGVVHUKRZVWBVVHDULUMZAV
      WFVWGVWBVWHXAZAUYOUYPVWFVWIWJUYRUYSCDVVHXBXDXCXEXFAVWAVVIUYDRZVWCVVFVWEUY
      EUYDUYDXGUYOUYPVWJVWCCDVVIXHXIXJCDVVHVVIXKXLZXMAVVSVVTVVFAUXPTUXQUXRVUGXN
      XOXPZVVGBVVJUXPUXSXQVWKVVJUUFUUGZRZVVGVVHVVIXRZVFVVGVVSWGUXQUXRXSABUXPUXS
      QZXTRZVVFAUXRVWPXTABUXPTUXRVUGYAZJYBZWSYDZVVGVWNBVVJVULQZVVJTVJOZRVXAYERV
      WOVVGBUXSVLVVJVLTTVJOZRVVGTPVJOZVXCVLPTVGZTTVGZVXDVXCVGYCTVHZTPTUUAUUBUUC
      UUDVFVVGUXRVVJYOZBVVJUXSQZVXBVVGVXHVWPVVJYOZVXIAVXHVXJSVVFAUXRVWPVVJVWRUU
      EWSVVGBUXPVVJUXSVWKUUHUUIVVGVWDVUFVXHVXBRVWKAVUFVVFIWSUXPTVVJUXRUUJUUKYBZ
      UULVVJVXAYFYGZVVGVWNUAVVJVVMUUMMZBVUHUXSUUNZUUOOQZVXBRVXOYERVWOVVGUAVXMVX
      NVVJVVGVXMTRZUAVVJVXMQVXBRZVVGVVMVVGBVVJUXSTVWLVWTYHUUPVXPVVJTVGVXFVXQVVJ
      PTVVHVVIVIYCUVGVXGUAVXMVVJTUUQUURUSVVGUAVVJVXNQVXIVXBBUAVVJUXSVXNUAUXSUVH
      BVUHUXSUUSBVUHUXSUUTUVAVXKUVBUVCVVJVXOYFYGUVDVVGBVVJVULVVGVVOWGZUXSVWLUVE
      VVGBVVJUXSXQVXRUXQUXRXSVWTVXLUVFVXRUXSVWLUVIUVJUVKVVKVVNVUJVVRVUOULVVKVVM
      VUIVLBVVJVUHUXSYIWMVVKVVQVUNVOVVKBPVVPVUMVVKVVOVUKVULVNVVJVUHUXQUVLUVMUVQ
      WMUVNUVOUVPUVRUVSUVTUWAAELUYDUYHQZUYDTVJOZALUYDTEAEVXTRUYDTEVQKUYDTEVKUSZ
      YAZKYBUWBAPUYJUCOZLUXPVNQZUXPVNUIUJAVYCPLUXPUYIQUCOLUXPUYEUXRMZVYEUEOZQVY
      DALUYIPNUWCUWDMZVUBUYDUXPVXEAYCVFZACPRZDPRZUYDPVGFGCDUWEXDZAUYEUYDRZWGZUY
      GUYHVYMBUYFUXSXQVYMUXQUYFRWGUXQUXRXSVYMBUYFUXPUXSXQVYMUYPUYEDULUMZUYFUXPV
      GVYMDAVYJVYLGWSUNVYMUYEPRZCUYEULUMZVYNAVYLVYOVYPVYNXAZAVYIVYJVYLVYQWJFGCD
      UYEUWFXDXCUWGCUYEDUWHXDUYFVWMRVYMCUYEXRVFVYMVVSWGUXQUXRXSAVWQVYLVWSWSYDYH
      ZAUYDTUYEEVYAXNZUWIVUBVUCUWJZVUCAVYIVYJUYDVYGUWKMMUXPSFGCDUWLXDZYJALUYGVY
      EUYHVYEPTTUXPPPTUWQRAUWMVFUYEUXPRZAVYLUYGTRUXPUYDUYECDUWNUWOZVYRXFAUXPTUY
      EUXRVUGXNZAPVUDUCOUXRPLUXPUYGQUCOLUXPVYEQZALBCDUXRVUDVUEFGHIJUWPALUYGPVYG
      VUBUYDUXPVYHVYKVYRVYTVUCWUAYJALUXPTUXRVUGYAZYKWUBAVYLUYHTRWUCVYSXFWUDAUXR
      PVXSUCOWUEPLUXPUYHQUCOAEVXSPUCVYBYLWUFALUYHPVYGVUBUYDUXPVYHVYKVYSVYTVUCWU
      AYJUWRUWSALUXPVYFVNAWUBWGVYEWUDUWTUXAUXBLUXPVNUXCWOUXDUXEAUYNVUAUYASUYTLD
      UYIUYAUYDUYJUYEDSZUYGUXTUYHUXOUEWUGUYFUXPSUYGUXTSUYEDCNYMBUYFUXPUXSYIUSUY
      EDEYNYPUYJVAZUXTUXOUEUXFYQUSUXGACUYDRZUYKUYCSAUYOUYPUYQWUIUYRUYSHCDUXHUPZ
      LCUYIUYCUYDUYJUYECSZUYIVNUYBUEOUYCWUKUYGVNUYHUYBUEWUKUYGBYRUXSUDZVNWUKUYF
      YRSUYGWULSWUKUYFCCNOYRUYECCNYMCUXIYSBUYFYRUXSYIUSBUXSUXJYSUYECEYNYPUYBUXK
      WOWUHUYBUXLYQUSYKYLAUXOUXTAUYDTDEVYAUYTYTZABUXPUXSXQAVVSWGUXQUXRXSVWSYHUX
      MAUXOUYBWUMAUYDTCEVYAWUJYTUXNYK $.
  $}

  ${
    $d x y z w D $.
    dvasin.d $e |- D = ( CC \ ( ( -oo (,] -u 1 ) u. ( 1 [,) +oo ) ) ) $.
    $( Real part of domain of differentiability of arcsine.  (Contributed by
       Brendan Leahy, 19-Dec-2018.) $)
    asindmre $p |- ( D i^i RR ) = ( -u 1 (,) 1 ) $=
      ( vx vy vz vw cmnf c1 co cpnf cun cdif cr cin cioo wcel clt wbr wceq c0
      cc cneg cioc cico un12 cxr w3a neg1rr rexri 1re pnfxr 3pm3.2i cc0 neg1lt0
      wa 0re lttri mp2an ltpnf ax-mp pm3.2i cle df-ioo df-ico cv xrlenlt xrlttr
      0lt1 xrltletr ixxun uneq2i mnfxr mnflt jca df-ioc xrltnle xrlelttr ioomax
      eqtri 3eqtri difeq1i difun2 ax-resscn difin2 3eqtr3ri incom ixxdisj mp3an
      wss ineq1i un00 indi eqeq1i disj3 3bitr2i mpbi 3eqtr4i ) UAGHUBZUCIZHJUDI
      ZKZLZMNZWRHOIZXALZAMNXDXDXAKZXALMXALZXEXCXFMXAXFWSXDWTKZKZGJOIZMXDWSWTUEX
      IWSWRJOIZKZXJXHXKWSWRUFPZHUFPZJUFPZUGWRHQRZHJQRZUOXHXKSXMXNXOWRUHUIZHUJUI
      ZUKULXPXQWRUMQRUMHQRXPUNVHWRUMHUHUPUJUQURHMPXQUJHUSUTVACDEFWRHJUDOQQVBQOQ
      QCDEVCZCDEVDZHFVEZVFZXTYBHJVGWRHYBVIVJURVKGUFPZXMXOUGGWRQRZWRJQRZUOZXLXJS
      YDXMXOVLXRUKULWRMPZYGUHYHYEYFWRVMWRUSVNUTCDEFGWRJOOQVBQQUCQQCDEVOZXTWRYBV
      PZXTYBWRJVQGWRYBVGVJURVSVRVTWAXDXAWBMUAWIXGXCSWCMXAUAWDUTWEAXBMBWJXDWSNZT
      SZXDWTNZTSZUOZXDXESZYLYNYKWSXDNZTXDWSWFYDXMXNYQTSVLXRXSCDEFGWRHOQVBQQUCYI
      XTYJWGWHVSXMXNXOYNXRXSUKCDEFWRHJUDQQVBQOXTYAYCWGWHVAYOYKYMKZTSXDXANZTSYPY
      KYMWKYSYRTXDWSWTWLWMXDXAWNWOWPWQ $.

    $( Derivative of arcsine.  (Contributed by Brendan Leahy, 18-Dec-2018.) $)
    dvasin $p |- ( CC _D ( arcsin |` D ) ) = ( x e. D |->
      ( 1 / ( sqrt ` ( 1 - ( x ^ 2 ) ) ) ) ) $=
      ( vy cc co ci cmul c1 c2 cmpt cdiv wceq wtru cr wcel cc0 adantl clt wbr
      vz vw casin cres cdv cneg cv cexp cmin csqrt cfv caddc clog wss cmnf cioc
      cpnf ax-mp eqtri oveq2i cvv a1i sseli ax-icn mulcl ax-1cn sylancr sqrtcld
      cdif syl wne logcld wa ovexd wn cle wo wi simpr sylan adantr wb 0re sylib
      mpan w3a w3o cxr mnfxr elioc2 mp2an eldifd eldifn 0xr ubioc1 mp3an mulcld
      ex eleq1 1cnd crest eqid eqcomi ccld cioo crn neg1rr 1re dvmptres mpteq2i
      dvmptcmul syl6eq cin c0 pnfxr resubcl rexri 0le1 syl2anc mpan2 sq1 sylan2
      sylc syl5ibrcom id negcld 2cn oveq2d mpteq2ia fveq2 dvmptco oveq1d 2cnne0
      syl6eqel divrec2d 3eqtr3rd ixi oveq1i mp3an12 divcan4d df-asin cico difss
      reseq1i cun eqsstri resmpt cpr cnelprrecn sqcl subcl asinlem cre asinlem3
      addcld rere breq2d biimpac ne0gt0d ltnle imor orcomd 3ianor 3orrot 3orass
      mpbid 3bitrri xchbinxr eldifi mnflt0 mpbiri necon3bi ccnfld ctopn dvmptid
      olcd ctopon cnfldtopon toponunii restid recld2 iocmnfcld icopnfcld tgioo2
      ctg uncld fveq2i eleqtri restcldr cldopn eqeltri mulid1i asindmre eqimssi
      sqcld elin sylbir incom df-ioc df-ioo xrltnle ixxdisj crp elioore resqcld
      elioo2 cabs recn abscld absge0d lt2sq mpanr12 abslt absresq resqcl posdif
      breq12d sylancl bitrd 3bitr3d biimpd 3impib sylbi syl6eleqr disjel biimpi
      elrpd ioorp simp1d eleq1d biimpa simp3d letr mp3an23 mpan2i subge0 mpbird
      nncan breqtrd resqrtcld renegcld eqsqrtor mpdan mpbii mpjaod stoic1a 2cnd
      pm2.61dan dvmptc cn 2nn dvexp 2m1e1 exp1 syl5eq dvmptsub syl6eqr dvcnsqrt
      df-neg mulneg2 eleq2s mnflt lbico1 orim12i orcoms elun sylibr nsyl sqr00d
      ltpnf subeq0d syl5req sqeqor sylibd necon3bd mp3an3 syl12anc mulne0 mulm1
      divcan5 dvmptadd divdird mulass 3eqtr3a negcl addcomd adddid 3eqtr4d wf1o
      dvlog csn wf logf1o f1of mp1i snssi sscon feqresmpt syl5reqr oveq2 reccld
      divassd eqtr3d negicn trud mulneg1i negeqi negneg1e1 3eqtri divass ) EUCB
[encoded data, 5680 characters]
      JYSXSVWSYIVXI $.

    $( Derivative of arccosine.  (Contributed by Brendan Leahy,
       18-Dec-2018.) $)
    dvacos $p |- ( CC _D ( arccos |` D ) ) = ( x e. D |->
      ( -u 1 / ( sqrt ` ( 1 - ( x ^ 2 ) ) ) ) ) $=
      ( cc cdv co cdiv casin cfv cmpt cc0 c1 wceq cmnf cpnf ax-mp wtru wcel a1i
      cr cacos cres cpi c2 cv cmin cexp csqrt cneg df-acos reseq1i wss cioc cun
      cico cdif difss eqsstri resmpt eqtri oveq2i cvv cnelprrecn halfpire recni
      wa c0ex ccnfld ctopn dvmptc crest ctopon eqid cnfldtopon toponunii restid
      cpr eqcomi ccld recld2 cioo crn ctg neg1rr tgioo2 fveq2i eleqtri restcldr
      iocmnfcld mp2an 1re icopnfcld uncld cldopn eqeltri dvmptres asincl adantl
      sseli syl ovexd dvasin wf asinf feqresmpt oveq2d syl5reqr dvmptsub df-neg
      trud 1cnd ax-1cn sqcld subcl sylancr sqrtcld wo wne eldifn eleq2s cxr clt
      wn mnfxr rexri mnflt ubioc1 mp3an eleq1 mpbiri pnfxr ltpnf lbico1 orim12i
      wbr orcoms elun sylibr nsyl adantr sq1 simpr sqr00d subeq0d syl5req ex wb
      sqcl sqeqor mpan2 sylibd necon3bd sylc divnegd syl5eqr mpteq2ia 3eqtri )
      DUABUBZEFDABUCUDGFZAUEZHIZUFFZJZEFZABKLLUUTUDUGFZUFFZUHIZGFZUFFZJZABLUIZU
      VGGFZJUURUVCDEUURADUVBJZBUBZUVCUAUVMBAUJUKBDULZUVNUVCMBDNUVKUMFZLOUOFZUNZ
      UPZDCDUVRUQURZADBUVBUSPUTVAUVDUVJMQAUUSKUVAUVHDVBVBBDTDVQRQVCSZUUSDRZQUUT
      BRZVFZUUSVDVEZSKVBRZUWDVGSQAUUSKDVHVIIZUWGVBDBUWAUWBQUUTDRZVFZUWESUWFUWIV
      GSQAUUSDUWAUWBQUWESVJUVOQUVTSZUWGDVKFZUWGUWGDVLIZRUWKUWGMUWGUWGVMZVNZUWGU
      WLDDUWGUWNVOZVPPVRUWMBUWGRQBUVSUWGCUVRUWGVSIZRZUVSUWGRUVPUWPRZUVQUWPRZUWQ
      TUWPRZUVPUWGTVKFZVSIZRUWRUWGUWMVTZUVPWAWBWCIZVSIZUXBUVKTRZUVPUXERWDUVKWIP
      UXDUXAVSUWGUWMWEWFZWGTUVPUWGWHWJUWTUVQUXBRUWSUXCUVQUXEUXBLTRZUVQUXERWKLWL
      PUXGWGTUVQUWGWHWJUVPUVQUWGWMWJUVRUWGDUWOWNPWOSWPUWCUVADRZQUWCUWHUXIBDUUTU
      VTWSZUUTWQWTWRUWDLUVGGXAQABUVHJDHBUBZEFDABUVAJZEFABCXBQUXKUXLDEQADDBHDDHX
      CQXDSUWJXEXFXGXHXJABUVIUVLUWCUVIUVHUIUVLUVHXIUWCLUVGUWCXKUWCUVFUWCLDRZUVE
      DRZUVFDRZXLUWCUUTUXJXMLUVEXNZXOXPUWCUWHUUTLMZUUTUVKMZXQZYCUVGKXRUXJUWCUUT
      UVRRZUXSUXTYCUUTUVSBUUTDUVRXSCXTUXSUUTUVPRZUUTUVQRZXQZUXTUXRUXQUYCUXRUYAU
      XQUYBUXRUYAUVKUVPRZNYARUVKYARNUVKYBYOZUYDYDUVKWDYEUXFUYEWDUVKYFPNUVKYGYHU
      UTUVKUVPYIYJUXQUYBLUVQRZLYAROYARLOYBYOZUYFLWKYEYKUXHUYGWKLYLPLOYMYHUUTLUV
      QYIYJYNYPUUTUVPUVQYQYRYSUWHUXSUVGKUWHUVGKMZUVELUDUGFZMZUXSUWHUYHUYJUWHUYH
      VFZUYILUVEUUAUYKLUVEUYKXKUWHUXNUYHUUTUUHZYTUYKUVFUWHUXOUYHUWHUXMUXNUXOXLU
      YLUXPXOYTUWHUYHUUBUUCUUDUUEUUFUWHUXMUYJUXSUUGXLUUTLUUIUUJUUKUULUUMUUNUUOU
      UPUUQ $.
  $}

  $( Real derivative of arcsine.  (Contributed by Brendan Leahy, 3-Aug-2017.)
     (Proof shortened by Brendan Leahy, 18-Dec-2018.) $)
  dvreasin $p |- ( RR _D ( arcsin |` ( -u 1 (,) 1 ) ) ) =
    ( x e. ( -u 1 (,) 1 ) |-> ( 1 / ( sqrt ` ( 1 - ( x ^ 2 ) ) ) ) ) $=
    ( cr casin c1 cioo co cres cdv cfv cdiv cmpt wceq wtru a1i feqresmpt oveq2d
    cc eqid wcel ccld cneg cv c2 cexp cmin csqrt wf asinf wss ioossre ax-resscn
    sstri ccnfld ctopn cvv cmnf cioc cpnf cico cun cdif reelprrecn crest recld2
    cpr crn ctg neg1rr iocmnfcld ax-mp 1re icopnfcld uncld mp2an tgioo2 eleqtri
    fveq2i restcldr cnfldtopon toponunii cldopn cin incom asindmre eqtri eldifi
    mp1i asincl syl adantl wa ovexd dvasin difssd syl5reqr dvmptres3 eqtrd trud
    ) BCDUAZDEFZGZHFZAWTDDAUBZUCUDFUEFUFIZJFZKZLMXBBAWTXCCIZKZHFXFMXAXHBHMAQQWT
    CQQCUGMUHNZWTQUIMWTBQWSDUJUKULNOPMAXGXEBUMUNIZUOQUPWSUQFZDURUSFZUTZVAZWTXJR
    ZBBQVESMVBNXMXJTIZSZXNXJSMBXPSXMXJBVCFZTIZSXQXJXOVDXMEVFVGIZTIZXSXKYASZXLYA
    SZXMYASWSBSYBVHWSVIVJDBSYCVKDVLVJXKXLXTVMVNXTXRTXJXOVOVQVPBXMXJVRVNXMXJQQXJ
    XJXOVSVTWAWGBXNWBZWTLMYDXNBWBWTBXNWCXNXNRZWDWENXCXNSZXGQSZMYFXCQSYGXCQXMWFX
    CWHWIWJMYFWKDXDJWLMAXNXEKQCXNGZHFQAXNXGKZHFAXNYEWMMYHYIQHMAQQXNCXIMQXMWNOPW
    OWPWQWR $.

  $( Real derivative of arccosine.  (Contributed by Brendan Leahy, 3-Aug-2017.)
     (Proof shortened by Brendan Leahy, 18-Dec-2018.) $)
  dvreacos $p |- ( RR _D ( arccos |` ( -u 1 (,) 1 ) ) ) =
      ( x e. ( -u 1 (,) 1 ) |-> ( -u 1 / ( sqrt ` ( 1 - ( x ^ 2 ) ) ) ) ) $=
    ( cr cacos c1 cioo co cres cdv cfv cdiv cmpt wceq wtru a1i feqresmpt oveq2d
    cc eqid wcel ccld cneg cv c2 cexp cmin csqrt wf acosf wss ioossre ax-resscn
    sstri ccnfld ctopn cvv cmnf cioc cpnf cico cun cdif reelprrecn crest recld2
    cpr crn ctg neg1rr iocmnfcld ax-mp 1re icopnfcld uncld mp2an tgioo2 eleqtri
    fveq2i restcldr cnfldtopon toponunii cldopn cin incom asindmre eqtri eldifi
    mp1i acoscl syl adantl wa ovexd dvacos difssd syl5reqr dvmptres3 eqtrd trud
    ) BCDUAZDEFZGZHFZAWTWSDAUBZUCUDFUEFUFIZJFZKZLMXBBAWTXCCIZKZHFXFMXAXHBHMAQQW
    TCQQCUGMUHNZWTQUIMWTBQWSDUJUKULNOPMAXGXEBUMUNIZUOQUPWSUQFZDURUSFZUTZVAZWTXJ
    RZBBQVESMVBNXMXJTIZSZXNXJSMBXPSXMXJBVCFZTIZSXQXJXOVDXMEVFVGIZTIZXSXKYASZXLY
    ASZXMYASWSBSYBVHWSVIVJDBSYCVKDVLVJXKXLXTVMVNXTXRTXJXOVOVQVPBXMXJVRVNXMXJQQX
    JXJXOVSVTWAWGBXNWBZWTLMYDXNBWBWTBXNWCXNXNRZWDWENXCXNSZXGQSZMYFXCQSYGXCQXMWF
    XCWHWIWJMYFWKWSXDJWLMAXNXEKQCXNGZHFQAXNXGKZHFAXNYEWMMYHYIQHMAQQXNCXIMQXMWNO
    PWOWPWQWR $.

  ${
    $d x y t u v R $.  $d t u v S $.
    $( Antiderivative of cross-section of circle.  (Contributed by Brendan
       Leahy, 28-Aug-2017.)  (Revised by Brendan Leahy, 11-Jul-2018.) $)
    areacirclem1 $p |- ( R e. RR+ ->
      ( RR _D ( t e. ( -u R (,) R ) |->
        ( ( R ^ 2 ) x. ( ( arcsin ` ( t / R ) ) +
          ( ( t / R ) x. ( sqrt ` ( 1 - ( ( t / R ) ^ 2 ) ) ) ) ) ) ) ) =
      ( t e. ( -u R (,) R ) |->
        ( 2 x. ( sqrt ` ( ( R ^ 2 ) - ( t ^ 2 ) ) ) ) ) ) $=
      ( vu wcel cr co c2 cdiv c1 cmul caddc cmpt a1i adantl adantr cc0 clt wceq
      cc wbr vv crp cneg cioo cexp cv casin cfv csqrt cdv cvv cpr reelprrecn wa
      cmin elioore recnd rpcn wne rpne0 divcld asincl 1cnd sqcld subcld sqrtcld
      syl mulcld addcld ovexd w3a cxr wb rpre renegcld rexrd rpxr syl2anc simpr
      elioo2 redivcld a1d mulm1d breq1d neg1rr simpl ltmuldivd bitr3d ltdivmuld
      biimpd 1red mulid1d exp4b 3impd sylbid imp rexri mp2an id dvmptid ioossre
      recn wss iooretop dvmptres ax-resscn oveq2d resqcld resubcld cabs absge0d
      absltd abscld cle lt2sqd absresq breq12d resqcl posdifd 3bitrd elrpd 0red
      mpteq2ia fveq2 dvmptco 2cnd mulneg2d oveq1d negcld 3eqtr3rd syl6eq sqvald
      mulcomd 3eqtr2d oveq12d eqtrd divcan3d reccld fveq2d sqdivd breq2d bitr2d
      adantrd adantld 3jcad 1re sylibr sqcl crn ctg ccnfld ctopn eqid dvmptdivc
      tgioo2 cres dvreasin asinf sstri feqresmpt syl5reqr 0le1 sq1 3impib sylbi
      wf negex dvmptc ctopon cnfldtopon toponmax mp1i df-ss mpbi cn dvexp ax-mp
      cin 2nn 2m1e1 oveq2i exp1 syl5eq eqtri dvmptres3 dvmptsub mpteq2i syl6eqr
      df-neg dvsqrt gt0ne0d necon3d mpd 2ne0 divcan5d mulne0d divrec2d dvmptmul
      sqr00d ex dvmptadd mulid2d divassd negeqd addcomd 2timesd negsubd sqsqrtd
      eqtr4d divdird addassd 3eqtrrd oveq1 mulassd divrecd 3eqtr3d mul12d rpge0
      dvmptcmul sqge0d rpgt0 0le0 sq0 bitrd mpbid 3bitr3rd ltled sqrtmuld sqne0
      eqcomd subdid mpbird divcan2d sqrtsqd 3eqtrd mpteq2dva ) BUBDZEABUCZBUDFZ
[encoded data, 5600 characters]
      OYNUYPYP $.

    $( Endpoint-inclusive continuity of Cartesian ordinate of circle.
       (Contributed by Brendan Leahy, 29-Aug-2017.)  (Revised by Brendan Leahy,
       11-Jul-2018.) $)
    areacirclem2 $p |- ( ( R e. RR /\ 0 <_ R ) ->
      ( t e. ( -u R [,] R ) |-> ( sqrt ` ( ( R ^ 2 ) - ( t ^ 2 ) ) ) )
        e. ( ( -u R [,] R ) -cn-> CC ) ) $=
      ( vu cr wcel cc0 cle wbr wa co cfv cmpt wceq adantr wss 3ad2ant3 ccn eqid
      cc a1i cneg cicc c2 cexp cmin csqrt cpnf cico cres resqcl renegcl iccssre
      cv ccncf mpancom sselda resqcld adantlr resubcld w3a elicc2 cabs 3ad2ant1
      wb wi subge0d absresq breq1d bitr4d recn abscld simp1 absge0d simp2 simp3
      le2sqd absled 3bitr2d biimprd 3expa exp4b 3impd sylbid imp sylanbrc fvres
      elrege0 syl mpteq2dva ccnfld ctopon cnfldtopon ax-resscn syl6ss resttopon
      ctopn crest sylancr sqcld cnmptc sqcn ctx subcn cnmpt12f toponunii cnrest
      resmptd syl2anc eqeltrrd crn wrex rnmpt 3adant3 eqeltrd rexlimdv3a abssdv
      syl5eqss rge0ssre sstri cnrest2 syl3anc mpbid ssid cncfss resqrtcn sselii
      cab mp2an cncfcn eleqtri cnmpt11f sylancl eleqtrrd ) BDEZFBGHZIZABUAZBUBJ
      ZBUCUDJZAUMZUCUDJZUEJZUFFUGUHJZUIZKZLZAYRUUBUFKZLYRSUNJZYPAYRUUEUUGYPYTYR
      EZIZUUBUUCEZUUEUUGMUUJUUBDEFUUBGHZUUKUUJYSUUAYPYSDEZUUIYNUUMYOBUJZNNYNUUI
      UUADEZYOYNUUIIYTYNYRDYTYQDEZYNYRDOBUKZYQBULUOZUPUQURUSYPUUIUULYPUUIYTDEZY
      QYTGHZYTBGHZUTZUULYNUUIUVBVDZYOUUPYNUVCUUQYQBYTVAUONYPUUSUUTUVAUULYPUUSUU
      TUVAUULYNYOUUSUUTUVAIZUULVEYNYOUUSUTZUULUVDUVEUULYTVBKZUCUDJZYSGHZUVFBGHU
      VDUVEUULUUAYSGHUVHUVEYSUUAYNYOUUMUUSUUNVCUUSYNUUOYOYTUJPVFUVEUVGUUAYSGUUS
      YNUVGUUAMYOYTVGPVHVIUVEUVFBUUSYNUVFDEYOUUSYTYTVJZVKPYNYOUUSVLZUUSYNFUVFGH
      YOUUSYTUVIVMPYNYOUUSVNVPUVEYTBYNYOUUSVOUVJVQVRVSVTWAWBWCWDUUBWGWEZUUBUUCU
      FWFWHWIYPUUFWJWPKZYRWQJZUVLSWQJZQJZUUHYPAUUBUUDUVMUVLUUCWQJZUVNYRYNUVMYRW
      KKEZYOYNUVLSWKKEZYRSOZUVQUVLUVLRZWLZYNYRDSUURWMWNZYRUVLSWOWRNYPAYRUUBLZUV
      MUVLQJZEZUWCUVMUVPQJEZYNUWEYOYNASUUBLZYRUIZUWCUWDYNASYRUUBUWBXGYNUWGUVLUV
      LQJZEUVSUWHUWDEYNAYSUUAUEUVLUVLUVLUVLSUVRYNUWATZYNAYSUVLUVLSSUWJUWJYNBBVJ
      WSWTASUUALUWIEYNAUVLUVTXATUEUVLUVLXBJUVLQJEYNUVLUVTXCTXDUWBYRUWGUVLUVLSSU
      VLUWAXEXFXHXINYPUVRUWCXJZUUCOUUCSOZUWEUWFVDUVRYPUWATYPUWKCUMZUUBMZAYRXKZC
      YGUUCACYRUUBUWCUWCRXLYPUWOCUUCYPUWNUWMUUCEAYRYPUUIUWNUTUWMUUBUUCYPUUIUWNV
      OYPUUIUUKUWNUVKXMXNXOXPXQUWLYPUUCDSXRWMXSZTUUCUWCUVMUVLSXTYAYBUUDUVPUVNQJ
      ZEYPUUDUUCSUNJZUWQUUCDUNJZUWRUUDDSOSSOZUWSUWROWMSYCZUUCDSYDYHYEYFUWLUWTUW
      RUWQMUWPUXAUUCSUVLUVPUVNUVTUVPRUVNRZYIYHYJTYKYNUUHUVOMZYOYNUVSUWTUXCUWBUX
      AYRSUVLUVMUVNUVTUVMRUXBYIYLNYMXI $.

    $( Integrability of cross-section of circle.  (Contributed by Brendan
       Leahy, 26-Aug-2017.)  (Revised by Brendan Leahy, 11-Jul-2018.) $)
    areacirclem3 $p |- ( ( R e. RR /\ 0 <_ R ) -> ( t e. ( -u R [,] R ) |->
      ( 2 x. ( sqrt ` ( ( R ^ 2 ) - ( t ^ 2 ) ) ) ) ) e. L^1 ) $=
      ( cr wcel cc0 cle wbr wa cneg cicc co c2 cexp cmin csqrt cmpt wss syl3anc
      cv cc cmul ccncf cibl renegcl adantr simpl 2cnd iccssre syl2anc ax-resscn
      cfv syl6ss ssid a1i cncfmptc areacirclem2 mulcncf cnicciblnc ) BCDZEBFGZH
      ZBIZCDZUSAVBBJKZLBLMKASLMKNKOUKZUAKPZVDTUBKZDVFUCDUSVCUTBUDUEZUSUTUFZVAAL
      VEVDVALTDVDTQTTQZAVDLPVGDVAUGVAVDCTVAVCUSVDCQVHVIVBBUHUIUJULVJVATUMUNALVD
      TUORABUPUQVBBVFURR $.

    $( Endpoint-inclusive continuity of antiderivative of cross-section of
       circle.  (Contributed by Brendan Leahy, 31-Aug-2017.)  (Revised by
       Brendan Leahy, 11-Jul-2018.) $)
    areacirclem4 $p |- ( R e. RR+ -> ( t e. ( -u R [,] R ) |->
      ( ( R ^ 2 ) x. ( ( arcsin ` ( t / R ) ) +
        ( ( t / R ) x. ( sqrt ` ( 1 - ( ( t / R ) ^ 2 ) ) ) ) ) ) ) e.
      ( ( -u R [,] R ) -cn-> CC ) ) $=
      ( wcel co cfv c1 cmin csqrt cmul cc cmpt cr syl2anc a1i ci cc0 adantr cle
      wceq wbr crp c2 cexp cdiv casin caddc cneg cicc wss ccncf rpcn sqcld rpre
      renegcld iccssre ax-resscn syl6ss ssid cncfmptc syl3anc ccnfld ctopn eqid
      cv ctx ccn addcn clog cmnf cioc cdif cres sselda wne rpne0 divcld asinval
      wa syl ax-icn mulcld 1cnd subcld sqrtcld addcld wn wo w3a clt 0lt1 oveq1d
      simp3 div0d 3ad2ant1 eqtrd oveq2d it0e0 syl6eq fveq2d oveq2i 1m0e1 fveq2i
      sq0 eqtri sqrt1 oveq12d 0p1e1 breq2d 0red 1red eqeltrd ltnled mpbii 3expa
      bitr3d olcd inelr 3adant3 mulassd mulid1d simpr redivcld resqcld resubcld
      wi adantl sqdivd breq1d bitrd mp2an eqtr4d mpteq2dva crest ctopon mulcncf
      wb divrec2d mpbird cncfmpt2f cncfcn pncand divcan6d 3eqtrrd elicc2 resqcl
      subge0d recn rpgt0 0le0 rpge0 lt2sqd mpbid elrpd ledivmuld absresq eqcomd
      cabs breqan12rd abscld absge0d le2sqd absled 3bitr2d 3bitrrd biimpd exp4b
      3impd sylbid imp resqrtcld remulcld mtoi orcd pm2.61dane ianor sylibr cxr
      ex mnfxr 0re elioc2 3simpb sylbi eldifd fvres negicn cnfldtopon resttopon
      wf fmptd difssd reccld cncfmptid divcan3d sqge0d sqrtmuld subdid divcan2d
      nsyl sqne0 sqrtsqd 3eqtr3rd 3eqtr3d areacirclem2 cncffvrn eleqtrd eleqtri
      logcn difss cnmpt11f eleqtrrd divrecd 3eqtr2d ) BUACZABUBUCDZAVDZBUDDZUEE
[encoded data, 4400 characters]
      DWVIKUYHCUXNWUDWUDWUIWUIWAUYPUYRAWVIUYDJUSUTYOWVCYOXKYSYO $.

    areacirc.1 $e |- S = { <. x , y >. | ( ( x e. RR /\ y e. RR ) /\
      ( ( x ^ 2 ) + ( y ^ 2 ) ) <_ ( R ^ 2 ) ) } $.
    $( Finding the cross-section of a circle.  (Contributed by Brendan Leahy,
       31-Aug-2017.)  (Revised by Brendan Leahy, 22-Sep-2017.)  (Revised by
       Brendan Leahy, 11-Jul-2018.) $)
    areacirclem5 $p |- ( ( R e. RR /\ 0 <_ R /\ t e. RR ) -> ( S " { t } ) =
      if ( ( abs ` t ) <_ R ,
        ( -u ( sqrt ` ( ( R ^ 2 ) - ( t ^ 2 ) ) ) [,]
          ( sqrt ` ( ( R ^ 2 ) - ( t ^ 2 ) ) ) ) , (/) ) ) $=
      ( vu cr wcel cc0 cle wbr c2 cexp co wa c0 wceq adantr clt cv w3a csn cima
      caddc cab cabs cfv cmin csqrt cneg cif copab imaeq1i cvv vex imasng ax-mp
      cicc cop df-br weq eleq1 anbi1d oveq1 oveq1d breq1d anbi12d anbi2d oveq2d
      opelopab anass 3bitri abbii 3eqtri simp3 biantrurd abbidv cxr crab resqcl
      3ad2ant1 3ad2ant3 resubcld absresq recn abscld simp1 absge0d simp2 le2sqd
      subge0d 3bitr4d biimpa resqrtcld renegcld iccval syl2anc iftrue adantl cc
      rexrd recnd sqsqrtd breqan12rd sqrtge0d leaddsub2d adantlr 3bitr4rd simpr
      wb absled rexr 3bitrd pm5.32da cmnf simprl mnfxr mnfltd simprrl xrltletrd
      a1i simprrr syl22anc ex pm4.71rd bitr4d df-rab syl6eqr 3eqtr4rd wn ltnled
      xrre biimprd imdistani wral readdcld lt2sqd breq2d mpbid 3adant3 addge01d
      bitrd sqge0 ltletrd ralrimiva rabeq0 sylibr syl5eqr syl iffalse pm2.61dan
      3expa eqtr4d eqtr3d syl5eq ) DHIZJDKLZCUAZHIZUBZEUUSUCZUDZUUTGUAZHIZUUSMN
      OZUVDMNOZUEOZDMNOZKLZPZPZGUFZUUSUGUHZDKLZUVIUVFUIOZUJUHZUKZUVQUSOZQULZUVC
      AUAZHIZBUAZHIZPZUWAMNOZUWCMNOZUEOZUVIKLZPZABUMZUVBUDZUUSUVDUWKLZGUFZUVMEU
      WKUVBFUNUUSUOIUWLUWNRCUPZGUUSUOUWKUQURUWMUVLGUWMUUSUVDUTUWKIUUTUVEPZUVJPZ
      UVLUUSUVDUWKVAUWJUUTUWDPZUVFUWGUEOZUVIKLZPUWQABUUSUVDUWOGUPACVBZUWEUWRUWI
      UWTUXAUWBUUTUWDUWAUUSHVCVDUXAUWHUWSUVIKUXAUWFUVFUWGUEUWAUUSMNVEVFVGVHBGVB
      ZUWRUWPUWTUVJUXBUWDUVEUUTUWCUVDHVCVIUXBUWSUVHUVIKUXBUWGUVGUVFUEUWCUVDMNVE
      VJVGVHVKUUTUVEUVJVLVMVNVOUVAUVKGUFZUVMUVTUVAUVKUVLGUVAUUTUVKUUQUURUUTVPVQ
      VRUVAUVOUXCUVTRUVAUVOPZUVSUVRUVDKLZUVDUVQKLZPZGVSVTZUVTUXCUXDUVRVSIUVQVSI
      UVSUXHRUXDUVRUXDUVQUXDUVPUVAUVPHIUVOUVAUVIUVFUUQUURUVIHIZUUTDWAWBZUUTUUQU
      VFHIZUURUUSWAWCZWDZSZUVAUVOJUVPKLZUVAUVNMNOZUVIKLUVFUVIKLUVOUXOUVAUXPUVFU
      VIKUUTUUQUXPUVFRUURUUSWEWCZVGUVAUVNDUUTUUQUVNHIUURUUTUUSUUSWFZWGWCZUUQUUR
      UUTWHZUUTUUQJUVNKLUURUUTUUSUXRWIWCZUUQUURUUTWJZWKUVAUVIUVFUXJUXLWLWMWNZWO
      ZWPZXBUXDUVQUYDXBGUVRUVQWQWRUVOUVTUVSRUVAUVOUVSQWSWTUXDUXCUVDVSIZUXGPZGUF
      UXHUXDUVKUYGGUXDUVKUVEUYGPUYGUXDUVEUVJUYGUXDUVEPZUVJUVDUGUHZUVQKLZUXGUYGU
      YHUYIMNOZUVQMNOZKLUVGUVPKLZUYJUVJUVEUXDUYKUVGUYLUVPKUVDWEUXDUVPUVAUVPXAIU
      VOUVAUVPUXMXCSXDXEUYHUYIUVQUVEUYIHIUXDUVEUVDUVDWFZWGWTUXDUVQHIZUVEUYDSZUV
      EJUYIKLUXDUVEUVDUYNWIWTUXDJUVQKLUVEUXDUVPUXNUYCXFSWKUVAUVEUVJUYMXKUVOUVAU
      VEPUVFUVGUVIUVAUXKUVEUXLSUVEUVGHIZUVAUVDWAZWTUVAUXIUVEUXJSXGXHXIUYHUVDUVQ
      UXDUVEXJUYPXLUYHUYFUXGUVEUYFUXDUVDXMWTVQXNXOUXDUYGUVEUXDUYGUVEUXDUYGPZUYF
      UYOXPUVDTLUXFUVEUXDUYFUXGXQZUXDUYOUYGUYDSUYSXPUVRUVDXPVSIUYSXRYBUYSUVRUXD
      UVRHIUYGUYESXBUYTUXDXPUVRTLUYGUXDUVRUYEXSSUXDUYFUXEUXFXTYAUXDUYFUXEUXFYCU
      VDUVQYMYDYEYFYGVRUXGGVSYHYIYJUVAUVOYKZPZUXCQUVTVUBUVADUVNTLZPZUXCQRUVAVUA
      VUCUVAVUCVUAUVADUVNUXTUXSYLYNYOVUDUXCUVJGHVTZQUVJGHYHVUDUVJYKZGHYPVUEQRVU
      DVUFGHUVAVUCUVEVUFUVAVUCUVEUBZUVIUVHTLVUFVUGUVIUVFUVHUVAVUCUXIUVEUXJWBZUV
      AVUCUXKUVEUXLWBZVUGUVFUVGVUIUVEUVAUYQVUCUYRWCZYQZUVAVUCUVIUVFTLZUVEUVAVUC
      VULUVAVUCUVIUXPTLVULUVADUVNUXTUXSUYBUYAYRUVAUXPUVFUVITUXQYSUUCWNUUAVUGJUV
      GKLZUVFUVHKLUVEUVAVUMVUCUVDUUDWCVUGUVFUVGVUIVUJUUBYTUUEVUGUVIUVHVUHVUKYLY
      TUUMUUFUVJGHUUGUUHUUIUUJVUAUVTQRUVAUVOUVSQUUKWTUUNUULUUOUUP $.

    $( The area of a circle of radius ` R ` is ` _pi x. R ^ 2 ` .  This is
       Metamath 100 proof #9.  (Contributed by Brendan Leahy, 31-Aug-2017.)
       (Revised by Brendan Leahy, 22-Sep-2017.)  (Revised by Brendan Leahy,
       11-Jul-2018.) $)
    areacirc $p |- ( ( R e. RR /\ 0 <_ R ) ->
         ( area ` S ) = ( _pi x. ( R ^ 2 ) ) ) $=
      ( vt vu cr wcel cc0 cle wbr wa cfv c2 co cmul wceq cc c1 cv csn cima cvol
      carea citg cpi cexp cdm wss cmpt cibl caddc a1i w3a cmin cneg cicc resqcl
      csqrt c0 3ad2ant1 3ad2ant3 resubcld adantr breq1d simp1 subge0d resqrtcld
      recn renegcld iccmbl syl2anc covol mblvol sqrtge0d addge0d subcld sqrtcld
      syl sqcld subnegd breq2d bitr3d mpbid syl3anc eqtrd eqeltrd volf elpreima
      wb mp2b 0mbl ax-mp eqtri 0re 3expa fveq2d mpteq2dva cvv cdif eldif 3anass
      wn wi biantrurd bitrd 3bitr4rd biimpd 3expia impd syl5bi imp biimprd expd
      syl6eq 3impd sylbid 3impia mpancom sselda recnd cioo sylan2 clt cxr oveq1
      adantl negeqd oveq12d sqrt0 simpr oveq2d casin divcld ovexd fvmptd oveq1d
      picn cdiv cxp ccnv wral opabssxp eqsstri cabs areacirclem5 absresq abscld
      copab cif absge0d simp2 le2sqd 3bitr4d biimpa ovolicc wf wfn ffn sylanbrc
      ovol0 eqeltri mpbir2an ifclda ralrimiva renegcl simpl iccssre rembl fvexd
      elicc2 simp3 absled con3d iffalse iftrue 3adant2 resqcld 3bitr3rd 2timesd
      cpnf 3eqtr4d 3eqtrd areacirclem3 iblss2 dmarea syl3anbrc areaval itgeq2dv
      elioore ioossre rexrd rexr elioo2 absltd notbid lenltd bitr4d anim1i eqle
      3syl eqtr3d subidd negeqi neg0 sylan9eqr mp2an 0xr iccid ovolsn syldan ex
      wne ltnled simpl1 leltned syl6bir pm2.61dne itgss negeq iooid itgeq1 itg0
      sq0 oveq2i mul01i eqtr2i syl6reqr syl5eq crp 0red biimp3ar elrpd cdv rpre
      rpxr exp4b ltled rpge0 lt2sqd posdifd crn ctg ccnfld ctopn ax-resscn rpcn
      id asincl 1cnd mulcld addcld eqid tgioo2 cnt iccntr dvmptntr areacirclem1
      rpne0 weq 3eqtr4rd eqtr4d ccncf 2cn sstri ssid 3pm3.2i cncfmptc mp1i cres
      ioossicc resmpt areacirclem2 rescncf mpsyl syl5eqelr mulcncf ioombl iblss
      areacirclem4 ftc2nc eqidd ubicc2 dividd mul01d 2ne0 divcli addid1d lbicc2
      asin1 divnegd ax-1cn asinneg neg1sqe1 negcli subnegi pidiv2halves mulcomd
      sq1 subdid 3eqtr3d pm2.61dane ) CHIZJCKLZMZDUENZFHDFUAZUBUCZUDNZUFZUGCOUH
[encoded data, 8080 characters]
      XYNUGSIXWEYSUNVWSVXBWGUWDVTVXCVXBWG $.
  $}

$( (End of Brendan Leahy's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Jeff Madsen
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Logic and set theory
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    anim12da.1 $e |- ( ( ph /\ ps ) -> th ) $.
    anim12da.2 $e |- ( ( ph /\ ch ) -> ta ) $.
    $( Conjoin antecedents and consequents in a deduction.  (Contributed by
       Jeff Madsen, 16-Jun-2011.) $)
    anim12da $p |- ( ( ph /\ ( ps /\ ch ) ) -> ( th /\ ta ) ) $=
      ( anim12dan ) ABDCEFGH $.
  $}

  ${
    $d A w x y z $.  $d B w x z $.  $d C w x y $.  $d D w x y $.  $d F w x y $.
    $d ph w x z $.  $d ps w x y $.  $d ch w x y $.
    unirep.1 $e |- ( y = D -> ( ph <-> ps ) ) $.
    unirep.2 $e |- ( y = D -> B = C ) $.
    unirep.3 $e |- ( y = z -> ( ph <-> ch ) ) $.
    unirep.4 $e |- ( y = z -> B = F ) $.
    unirep.5 $e |- B e. _V $.
    $( Define a quantity whose definition involves a choice of representative,
       but which is uniquely determined regardless of the choice.  (Contributed
       by Jeff Madsen, 1-Jun-2011.) $)
    unirep $p |- ( ( A. y e. A A. z e. A ( ( ph /\ ch ) -> B = F ) /\
            ( D e. A /\ ps ) ) -> ( iota x E. y e. A ( ph /\ x = B ) ) = C ) $=
      ( wa wceq wi wrex vw wral cv cio eqidd ancli eqeq2d anbi12d rspcev sylan2
      wcel adantl cvv weu wb csb nfcvd csbiegf csbex syl6eqelr ad2antrl wex wal
      eqeq1 anbi2d rexbidv spcegv adantr r19.29 pm3.35 eqeq12 syl5ibrcom ancoms
      syl mpd an4 expimpd syl5bi ancomsd expdimp rexlimivw sylan an32s alrimivv
      imp ex cbvrexv syl6bb eu4 sylanbrc iota2 syl2anc mpbid ) ACQZHKRZSZFGUBZE
      GUBZJGUKZBQZQZAIHRZQZEGTZADUCZHRZQZEGTZDUDIRZWTXDWRBWSBIIRZQZXDBXJBIUEUFX
      CXKEJGEUCZJRZABXBXJLXMHIIMUGUHUIUJZULXAIUMUKZXHDUNZXDXIUOWSXOWRBWSIEJHUPU
      MEJHIGWSEIUQMUREJHPUSUTZVAXAXHDVBZXHCUAUCZKRZQZFGTZQXEXSRZSZUAVCDVCXPWTXR
      WRWTXDXRXNWSXDXRSZBWSXOYEXQXHXDDIUMXEIRZXGXCEGYFXFXBAXEIHVDVEVFZVGVNVHVOU
      LXAYDDUAWRYDWTWRXHYBYCWRXHQWQXGQZEGTYBYCSZWQXGEGVIYHYIEGYHYBYCWQYBXGYCWQY
      BQWPYAQZFGTZXGYCWPYAFGVIYKXGYCYJXGYCSFGWPYAXGYCWPXGYAYCXGYAQWNXFXTQZQWPYC
      AXFCXTVPWPWNYLYCWNWPYLYCSWNWPQYCYLWOWNWOVJXEHXSKVKVLVMVQVRVSVTWAWEWBWCWFW
      AVNVQVHWDXHYBDUAYCXHAXSHRZQZEGTYBYCXGYNEGYCXFYMAXEXSHVDVEVFYNYAEFGXLFUCRZ
      ACYMXTNYOHKXSOUGUHWGWHWIWJXHXDDIUMYGWKWLWM $.
  $}

  ${
    $d ph x z $.  $d B x y z $.  $d A x z $.
    cover2.1 $e |- B e. _V $.
    cover2.2 $e |- A = U. B $.
    $( Two ways of expressing the statement "there is a cover of ` A ` by
       elements of ` B ` such that for each set in the cover, ` ph ` ."  Note
       that ` ph ` and ` x ` must be distinct.  (Contributed by Jeff Madsen,
       20-Jun-2010.) $)
    cover2 $p |- ( A. x e. A E. y e. B ( x e. y /\ ph )
                        <-> E. z e. ~P B ( U. z = A /\ A. y e. z ph ) ) $=
      ( cv wcel wa wrex wral cuni wceq cpw crab wss ssrab2 eleq2 elpw2 mpbir wb
      wal nfra1 unissi sseli syl6eleqr rsp syl6ibr impbid2 alrimi dfcleq sylibr
      elunirab unieq eqeq1d anbi1d nfrab1 nfeq2 simprbi syl6bi ralrimi biantrud
      rabid bitr4d rspcev sylancr wi elpwi r19.29r expcom sylan9r sylan biimpar
      ssrexv eluni2 sylib anassrs ralrimiva anasss ancom2s rexlimiva impbii
      impel ) BIZCIZJZAKZCFLZBEMZDIZNZEOZACWLMZKZDFPZLZWKACFQZWQJZWSNZEOZWRWTWS
      FRACFSZWSFGUAUBWKWFXAJZWFEJZUCZBUDXBWKXFBWJBEUEWKXDXEXDWFFNZEXAXGWFWSFXCU
      FUGHUHWKXEWJXDWJBEUIACWFFUOUJUKULBXAEUMUNWPXBDWSWQWLWSOZWPXBWOKXBXHWNXBWO
      XHWMXAEWLWSUPUQURXHWOXBXHACWLCWLWSACFUSUTXHWGWLJWGWSJZAWLWSWGTXIWGFJAACFV
      EVAVBVCVDVFVGVHWPWKDWQWLWQJZWOWNWKXJWOWNWKXJWOKZWNKWJBEXKWNXEWJXKWHCWLLZW
      JWNXEKZXJWLFRZWOXLWJVIWLFVJWOXLWICWLLZXNWJXLWOXOWHACWLVKVLWICWLFVPVMVNXMW
      FWMJZXLWNXPXEWMEWFTVOCWFWLVQVRWEVSVTWAWBWCWD $.
  $}

  ${
    $d ph b x z $.  $d B b x y z $.  $d A b x z $.
    cover2g.1 $e |- A = U. B $.
    $( Two ways of expressing the statement "there is a cover of ` A ` by
       elements of ` B ` such that for each set in the cover, ` ph ` ."  Note
       that ` ph ` and ` x ` must be distinct.  (Contributed by Jeff Madsen,
       21-Jun-2010.) $)
    cover2g $p |- ( B e. C -> ( A. x e. A E. y e. B ( x e. y /\ ph )
                        <-> E. z e. ~P B ( U. z = A /\ A. y e. z ph ) ) ) $=
      ( vb wel wa cv wrex cuni wral wceq cpw unieq syl6eqr rexeq raleqbidv pweq
      eqeq2d anbi1d rexeqbidv vex eqid cover2 vtoclbg ) BCJAKZCILZMZBUKNZODLZNZ
      UMPZACUNOZKZDUKQZMUJCFMZBEOUOEPZUQKZDFQZMIFGUKFPZULUTBUMEVDUMFNEUKFRHSZUJ
      CUKFTUAVDURVBDUSVCUKFUBVDUPVAUQVDUMEUOVEUCUDUEABCDUMUKIUFUMUGUHUI $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d ch x y $.
    brabg2.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    brabg2.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    brabg2.3 $e |- R = { <. x , y >. | ph } $.
    brabg2.4 $e |- ( ch -> A e. C ) $.
    $( Relation by a binary relation abstraction.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    brabg2 $p |- ( B e. D -> ( A R B <-> ch ) ) $=
      ( wcel wbr cvv brabg com3l mpdi relopabi brrelexi wi biimpd exbiri impbid
      wa ex ) GIOZFGJPZCUIUJFQOZCFGJADEJMUAUBUKUIUJCUKUIUJCUCUKUIUGUJCABCDEFGQI
      JKLMRUDUHSTUICFHOZUJNULUICUJULUIUJCABCDEFGHIJKLMRUESTUF $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d ch x y $.
    opelopab3.1 $e |- ( x = A -> ( ph <-> ps ) ) $.
    opelopab3.2 $e |- ( y = B -> ( ps <-> ch ) ) $.
    opelopab3.3 $e |- ( ch -> A e. C ) $.
    $( Ordered pair membership in an ordered pair class abstraction, with a
       reduced hypothesis.  (Contributed by Jeff Madsen, 29-May-2011.) $)
    opelopab3 $p |- ( B e. D -> ( <. A , B >. e.
                            { <. x , y >. | ph } <-> ch ) ) $=
      ( wcel cop copab cvv wa syl anim1i ancoms cxp elopaelxp opelxp1 opelopabg
      elex pm5.21nd ) GIMZFGNZADEOMZCFPMZUGQZUIUGUKUIUJUGUIUHPPUAMUJADEUHUBFGPP
      UCRSTCUGUKCUJUGCFHMUJLFHUERSTABCDEFGPIJKUDUF $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d F x y $.  $d G x y $.  $d H x y $.
    $( Cancellation of a surjective function from the right side of a
       composition.  (Contributed by Jeff Madsen, 1-Jun-2011.)  (Proof
       shortened by Mario Carneiro, 27-Dec-2014.) $)
    cocanfo $p |- ( ( ( F : A -onto-> B /\ G Fn B /\ H Fn B )
                                    /\ ( G o. F ) = ( H o. F ) ) -> G = H ) $=
      ( vx vy wfo wfn ccom wceq wa cv cfv wral syl fvco3 sylan wb fveq2 wcel wf
      w3a simplr fveq1d simpl1 fof 3eqtr3d ralrimiva eqeq12d cbvfo mpbid eqfnfv
      3adant1 adantr mpbird ) ABCHZDBIZEBIZUCZDCJZECJZKZLZDEKZFMZDNZVFENZKZFBOZ
      VDGMZCNZDNZVLENZKZGAOZVJVDVOGAVDVKAUAZLZVKVANZVKVBNZVMVNVRVKVAVBUTVCVQUDU
      EVDABCUBZVQVSVMKVDUQWAUQURUSVCUFZABCUGPZABVKDCQRVDWAVQVTVNKWCABVKECQRUHUI
      VDUQVPVJSWBVOVIGFABCVLVFKVMVGVNVHVLVFDTVLVFETUJUKPULUTVEVJSZVCURUSWDUQFBD
      EUMUNUOUP $.
  $}

  ${
    brresi.1 $e |- B e. _V $.
    $( Restriction of a binary relation.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    brresi $p |- ( A ( R |` C ) B -> A R B ) $=
      ( cres resss ssbri ) DCFDABDCGH $.
  $}

  ${
    $d ph x $.  $d ph y $.
    fnopabeqd.1 $e |- ( ph -> B = C ) $.
    $( Equality deduction for function abstractions.  (Contributed by Jeff
       Madsen, 19-Jun-2011.) $)
    fnopabeqd $p |- ( ph -> { <. x , y >. | ( x e. A /\ y = B ) }
                          = { <. x , y >. | ( x e. A /\ y = C ) } ) $=
      ( cv wcel wceq wa eqeq2d anbi2d opabbidv ) ABHDIZCHZEJZKOPFJZKBCAQROAEFPG
      LMN $.
  $}

  ${
    $d A x $.  $d C x $.  $d D x $.  $d R x $.
    fvopabf4g.1 $e |- C e. _V $.
    fvopabf4g.2 $e |- ( x = A -> B = C ) $.
    fvopabf4g.3 $e |- F = ( x e. ( R ^m D ) |-> B ) $.
    $( Function value of an operator abstraction whose domain is a set of
       functions with given domain and range.  (Contributed by Jeff Madsen,
       1-Dec-2009.)  (Revised by Mario Carneiro, 12-Sep-2015.) $)
    fvopabf4g $p |- ( ( D e. X /\ R e. Y /\ A : D --> R ) -> ( F ` A ) = C ) $=
      ( wcel wf w3a cmap co cfv wceq wb elmapg ancoms biimp3ar fvmpt syl ) EHMZ
      FIMZEFBNZOBFEPQZMZBGRDSUFUGUJUHUGUFUJUHTFEBIHUAUBUCABCDUIGKLJUDUE $.
  $}

  ${
    $d F x $.  $d G x $.  $d A x $.  $d B x $.
    $( Two functions on ` A u. B ` are equal if and only if they have equal
       restrictions to both ` A ` and ` B ` .  (Contributed by Jeff Madsen,
       19-Jun-2011.) $)
    eqfnun $p |- ( ( F Fn ( A u. B ) /\ G Fn ( A u. B ) ) -> ( F = G <->
                ( ( F |` A ) = ( G |` A ) /\ ( F |` B ) = ( G |` B ) ) ) ) $=
      ( vx cun wfn wa wceq cres reseq1 jca cv wcel fveq1 fvres sylan9req adantl
      cfv eqtr3d wral wo elun adantlr adantll sylan2b ralrimiva syl5ibr impbid2
      jaodan eqfnfv ) CABFZGDULGHZCDIZCAJZDAJZIZCBJZDBJZIZHZUNUQUTCDAKCDBKLVAUN
      UMEMZCSZVBDSZIZEULUAVAVEEULVBULNVAVBANZVBBNZUBVEVBABUCVAVFVEVGUQVFVEUTUQV
      FHVBUPSZVCVDUQVFVHVBUOSVCVBUOUPOVBACPQVFVHVDIUQVBADPRTUDUTVGVEUQUTVGHVBUS
      SZVCVDUTVGVIVBURSVCVBURUSOVBBCPQVGVIVDIUTVBBDPRTUEUJUFUGEULCDUKUHUI $.
  $}

  ${
    $d C x y $.  $d B y $.  $d H x y $.  $d A x y $.
    fnopabco.1 $e |- ( x e. A -> B e. C ) $.
    fnopabco.2 $e |- F = { <. x , y >. | ( x e. A /\ y = B ) } $.
    fnopabco.3 $e |- G = { <. x , y >. | ( x e. A /\ y = ( H ` B ) ) } $.
    $( Composition of a function with a function abstraction.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 27-Dec-2014.) $)
    fnopabco $p |- ( H Fn C -> G = ( H o. F ) ) $=
      ( cfv cmpt cv wcel wceq wa copab df-mpt eqtr4i wfn ccom adantl a1i biimpi
      dffn5 fveq2 fmptco syl6reqr ) HEUAZHFUBACDHLZMZGUJABCEDBNZHLZUKFHANCOZDEO
      UJIUCFACDMZPUJFUOUMDPQABRUPJABCDSTUDUJHBEUNMPBEHUFUEUMDHUGUHGUOUMUKPQABRU
      LKABCUKSTUI $.
  $}

  ${
    $d A x y $.  $d B y $.  $d C y $.  $d M x y $.  $d R x y $.  $d S x y $.
    opropabco.1 $e |- ( x e. A -> B e. R ) $.
    opropabco.2 $e |- ( x e. A -> C e. S ) $.
    opropabco.3 $e |- F = { <. x , y >. | ( x e. A /\ y = <. B , C >. ) } $.
    opropabco.4 $e |- G = { <. x , y >. | ( x e. A /\ y = ( B M C ) ) } $.
    $( Composition of an operator with a function abstraction.  (Contributed by
       Jeff Madsen, 11-Jun-2010.) $)
    opropabco $p |- ( M Fn ( R X. S ) -> G = ( M o. F ) ) $=
      ( cop cv wcel wceq wa copab cxp opelxpi syl2anc cfv eqeq2i anbi2i opabbii
      co df-ov eqtri fnopabco ) ABCDEOZFGUAZHIJAPCQZDFQEGQULUMQKLDEFGUBUCMIUNBP
      ZDEJUHZRZSZABTUNUOULJUDZRZSZABTNURVAABUQUTUNUPUSUODEJUIUEUFUGUJUK $.
  $}

  ${
    $d A r s t u v w $.  $d B r s t u v w $.  $d F r s t u v w $.
    $( Condition for an operation to be one-to-one.  (Contributed by Jeff
       Madsen, 17-Jun-2010.) $)
    f1opr $p |- ( F : ( A X. B ) -1-1-> C <-> ( F : ( A X. B ) --> C /\
                          A. r e. A A. s e. B A. t e. A A. u e. B
                    ( ( r F s ) = ( t F u ) -> ( r = t /\ s = u ) ) ) ) $=
      ( vv vw cv cfv wceq weq wi wral wa co cop fveq2 cxp wf dff13 df-ov eqeq1d
      wf1 syl6eqr eqeq1 imbi12d ralbidv ralxp eqeq2d eqeq2 syl6bb 2ralbii bitri
      vex opth anbi2i ) CDUAZEFUFUTEFUBZIKZFLZJKZFLZMZIJNZOZJUTPZIUTPZQVAHKZGKZ
      FRZBKZAKZFRZMZHBNGANQZOZADPBCPZGDPHCPZQIJUTEFUCVJWAVAVJVMVEMZVKVLSZVDMZOZ
      JUTPZGDPHCPWAVIWFIHGCDVBWCMZVHWEJUTWGVFWBVGWDWGVCVMVEWGVCWCFLVMVBWCFTVKVL
      FUDUGUEVBWCVDUHUIUJUKWFVTHGCDWEVSJBACDVDVNVOSZMZWBVQWDVRWIVEVPVMWIVEWHFLV
      PVDWHFTVNVOFUDUGULWIWDWCWHMVRVDWHWCUMVKVLVNVOHUQGUQURUNUIUKUOUPUSUP $.
  $}

  $( Composition with a function and then with the converse.  (Contributed by
     Jeff Madsen, 2-Sep-2009.) $)
  cocnv $p |- ( ( Fun F /\ Fun G ) ->
                              ( ( F o. G ) o. `' G ) = ( F |` ran G ) ) $=
    ( wfun ccom ccnv crn cres coass cid wceq funcocnv2 adantl coeq2d resco wrel
    wa funrel coi1 syl reseq1d adantr syl5eqr eqtrd syl5eq ) ACZBCZPZABDBEZDABU
    HDZDZABFZGZABUHHUGUJAIUKGZDZULUGUIUMAUFUIUMJUEBKLMUGUNAIDZUKGZULAIUKNUEUPUL
    JUFUEUOAUKUEAOUOAJAQARSTUAUBUCUD $.

  $( Cancel a composition by a bijection by preapplying the converse.
     (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario
     Carneiro, 27-Dec-2014.) $)
  f1ocan1fv $p |- ( ( Fun F /\ G : A -1-1-onto-> B /\ X e. B ) ->
                            ( ( F o. G ) ` ( `' G ` X ) ) = ( F ` X ) ) $=
    ( wfun wf1o wcel w3a ccnv cfv ccom wceq f1of 3ad2ant2 f1ocnv simp3 ffvelrnd
    wf syl fvco3 syl2anc f1ocnvfv2 3adant1 fveq2d eqtrd ) CFZABDGZEBHZIZEDJZKZC
    DLKZULDKZCKZECKUJABDSZULAHUMUOMUHUGUPUIABDNOUJBAEUKUHUGBAUKSZUIUHBAUKGUQABD
    PBAUKNTOUGUHUIQRABULCDUAUBUJUNECUHUIUNEMUGABEDUCUDUEUF $.

  $( Cancel a composition by the converse of a bijection by preapplying the
     bijection.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
  f1ocan2fv $p |- ( ( Fun F /\ G : A -1-1-onto-> B /\ X e. A ) ->
                            ( ( F o. `' G ) ` ( G ` X ) ) = ( F ` X ) ) $=
    ( wfun wf1o wcel w3a ccnv cfv ccom wceq f1orel dfrel2 sylib 3ad2ant2 fveq1d
    wrel fveq2d f1ocnv f1ocan1fv syl3an2 eqtr3d ) CFZABDGZEAHZIZEDJZJZKZCUILZKZ
    EDKZULKECKZUHUKUNULUHEUJDUFUEUJDMZUGUFDSUPABDNDOPQRTUFUEBAUIGUGUMUOMABDUABA
    CUIEUBUCUD $.

  ${
    $d x f A $.  $d B f $.  $d C f $.
    $( Intersection of Cartesian products over the same base set.  (Contributed
       by Jeff Madsen, 2-Sep-2009.) $)
    inixp $p |- ( X_ x e. A B i^i X_ x e. A C ) = X_ x e. A ( B i^i C ) $=
      ( vf cixp cin cv wfn cfv wcel wral wa an4 anidm r19.26 elin anbi12i elixp
      bicomi ralbii bitr3i bitri vex 3bitr4i ineqri ) EABCFZABDFZABCDGZFZEHZBIZ
      AHUKJZCKZABLZMZULUMDKZABLZMZMZULUMUIKZABLZMZUKUGKZUKUHKZMUKUJKUTULULMZUOU
      RMZMVCULUOULURNVFULVGVBULOVGUNUQMZABLVBUNUQABPVHVAABVAVHUMCDQTUAUBRUCVDUP
      VEUSABCUKEUDZSABDUKVISRABUIUKVISUEUF $.
  $}

  ${
    $d A a b h s u w x $.  $d R a b h s u w x $.  $d S a b h s u w x $.
    $d F a b h s u w x $.  $d B a b h s u w x $.  $d C a b h s u w x $.
    $d X a h s u w x $.  $d P a h s u $.
    upixp.1 $e |- X = X_ b e. A ( C ` b ) $.
    upixp.2 $e |- P = ( w e. A |-> ( x e. X |-> ( x ` w ) ) ) $.
    $( Universal property of the indexed Cartesian product.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
       12-Sep-2015.) $)
    upixp $p |- ( ( A e. R /\ B e. S /\ A. a e. A
                  ( F ` a ) : B --> ( C ` a ) ) -> E! h ( h : B --> X
                        /\ A. a e. A ( F ` a ) = ( ( P ` a ) o. h ) ) ) $=
      ( vu vs wcel cfv wceq cv wf wral w3a cmpt cvv ccom wa wi wal weu 3ad2ant2
      mptexg cixp ffvelrn expcom ralimdv impcom 3ad2antl3 fveq2 eleq12d cbvralv
      fveq1d sylib wb simpl1 mptelixpg syl mpbird cbvixpv eqtri syl6eleqr fmptd
      eqid nfv nfra1 nf3an fvex fvmpt3i adantl adantlr eqidd rgenw ixpexg ax-mp
      mpteq2dv eqeltri mptex fveq1 fmptco rsp 3ad2ant3 feqmptd 3eqtr4rd ralrimi
      imp simprl simplrr coeq1d eqeq12d rspccva sylan fvco3 adantr eqtrd 3eqtrd
      ex mpteq2dva wfn syl6eleq ixpfn dffn5 eqtr4d alrimiv coeq2 eqeq2d ralbidv
      feq1 anbi12d eqeu syl121anc ) CGRZDHRZDLUAZESZYDJSZUBZLCUCZUDZPDQCPUAZQUA
      ZJSZSZUEZUEZUFRZDKYOUBZYFYDFSZYOUGZTZLCUCZDKIUAZUBZYFYRUUBUGZTZLCUCZUHZUU
      BYOTZUIZIUJUUGIUKYCYBYPYHPDYNHUMULYIPDYNKYOYIYJDRZUHZYNQCYKESZUNZKUUKYNUU
      MRZYMUULRZQCUCZUUKYJYFSZYERZLCUCZUUPYHYBUUJUUSYCUUJYHUUSUUJYGUURLCYGUUJUU
      RDYEYJYFUOUPUQURUSUURUUOLQCYDYKTZUUQYMYEUULUUTYJYFYLYDYKJUTZVCYDYKEUTVAVB
      VDUUKYBUUNUUPVEYBYCYHUUJVFQCYMUULGVGVHVIKMCMUAZESZUNZUUMNMQCUVCUULUVBYKEU
      TVJVKVLZYOVNVMYIYTLCYBYCYHLYBLVOYCLVOYGLCVPVQYIYDCRZYTYIUVFUHZPDYDYNSZUEP
      DUUQUEYSYFUVGPDUVHUUQUVFUVHUUQTYIQYDYMUUQCYNYKYDTYJYLYFYKYDJUTVCYNVNYJYLV
      RVSVTWFUVGPADKYNYDAUAZSZUVHYOYRYIUUJYNKRUVFUVEWAUVGYOWBUVFYRAKUVJUEZTYIBY
      DAKBUAZUVISZUEZUVKCFUVLYDTAKUVMUVJUVLYDUVIUTWFOAKUVMKUVDUFNUVCUFRZMCUCUVD
      UFRUVOMCUVBEVRWCMCUVCUFWDWEWGWHZVSVTYDUVIYNWIWJUVGPDYEYFYIUVFYGYHYBUVFYGU
      IYCYGLCWKWLWPWMWNXGWOYIUUIIYIUUGUUHYIUUGUHZUUBPDYJUUBSZUEYOUVQPDKUUBYIUUC
      UUFWQZWMUVQPDYNUVRUVQUUJUHZYNQCYKUVRSZUEZUVRUVTQCYMUWAUVTYKCRZUHZYMYJYKFS
      ZUUBUGZSZUVRUWESZUWAUWDYJYLUWFUVTUUFUWCYLUWFTZYIUUCUUFUUJWRUUEUWILYKCUUTY
      FYLUUDUWFUVAUUTYRUWEUUBYDYKFUTWSWTXAXBVCUVTUWGUWHTZUWCUVQUUCUUJUWJUVSDKYJ
      UWEUUBXCXBXDUWDUWHUVRAKYKUVISZUEZSZUWAUWDUVRUWEUWLUWCUWEUWLTUVTBYKUVNUWLC
      FUVLYKTAKUVMUWKUVLYKUVIUTWFOUVPVSVTVCUVTUWMUWATZUWCUVTUVRKRZUWNUVQUUCUUJU
      WOUVSDKYJUUBUOXBZAUVRUWKUWAKUWLYKUVIUVRWIUWLVNYKUVIVRVSVHXDXEXFXHUVTUVRCX
      IZUVRUWBTUVTUVRUVDRUWQUVTUVRKUVDUWPNXJMCUVCUVRXKVHQCUVRXLVDXMXHXMXGXNUUGY
      QUUAUHIYOUFUUHUUCYQUUFUUADKUUBYOXRUUHUUEYTLCUUHUUDYSYFUUBYOYRXOXPXQXSXTYA
      $.
  $}

  ${
    $d A x y $.
    abrexdom.1 $e |- ( y e. A -> E* x ph ) $.
    $( An indexed set is dominated by the indexing set.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    abrexdom $p |- ( A e. V -> { x | E. y e. A ph } ~<_ A ) $=
      ( wcel wrex cab cv wa copab crn cdom wex df-rex abbii wbr cvv wmo cdm wfn
      rnopab eqtr4i wss dmopabss ssexg mpan funopab wi moanimv mpbir mpgbir a1i
      wfun funfn sylib fnrndomg sylc ssdomg mpi domtr syl2anc syl5eqbr ) DEGZAC
      DHZBIZCJDGZAKZCBLZMZDNVGVICOZBIVKVFVLBACDPQVICBUCUDVEVKVJUAZNRZVMDNRZVKDN
      RVEVMSGZVJVMUBZVNVMDUEZVEVPACBDUFZVMDEUGUHVEVJUOZVQVTVEVTVIBTZCVICBUIWAVH
      ABTUJFVHABUKULUMUNVJUPUQVMSVJURUSVEVRVOVSVMDEUTVAVKVMDVBVCVD $.
  $}

  ${
    $d A x y $.  $d B x $.
    $( An indexed set is dominated by the indexing set.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    abrexdom2 $p |- ( A e. V -> { x | E. y e. A x = B } ~<_ A ) $=
      ( cv wceq wmo wcel moeq a1i abrexdom ) AFDGZABCEMAHBFCIADJKL $.
  $}

  ${
    $d A x y z f $.  $d B x y z f $.  $d ph z f $.  $d ps z $.
    ac6gf.1 $e |- F/ y ps $.
    ac6gf.2 $e |- ( y = ( f ` x ) -> ( ph <-> ps ) ) $.
    $( Axiom of Choice.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    ac6gf $p |- ( ( A e. C /\ A. x e. A E. y e. B ph ) ->
                                E. f ( f : A --> B /\ A. x e. A ps ) ) $=
      ( vz wrex wral wcel wsb cv wf wa wex cbvrexsv ralbii cfv sbhypf ac6sg imp
      sylan2b ) ADFLZCEMEGNZADKOZKFLZCEMZEFHPZQBCEMRHSZUGUJCEADKFTUAUHUKUMUIBCK
      EFHGABDKCPULUBIJUCUDUEUF $.
  $}

  ${
    $d A x y c z w v $.  $d B x y c z w v $.  $d ph c z w v $.
    $( If for every element of an indexing set ` A ` there exists a
       corresponding element of another set ` B ` , then there exists a subset
       of ` B ` consisting only of those elements which are indexed by ` A ` .
       Used to avoid the Axiom of Choice in situations where only the range of
       the choice function is needed.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    indexa $p |- ( ( B e. M /\ A. x e. A E. y e. B ph ) -> E. c
          ( c C_ B /\ A. x e. A E. y e. c ph /\ A. y e. c E. x e. A ph ) ) $=
      ( vz vw vv wcel cv wsbc wrex wral nfv wa sbceq2a nfcv nfsbc1v cvv wss w3a
      crab wex rabexg ssrab2 a1i nfre1 rspcev ancoms anim2i anasss wceq sbcbidv
      rexbidv elrab sylibr nfsbc nfrex nfrab cbvrexf sylib exp31 rexlimd cbvrex
      sylancom ralimia syl6bb simprbi rgen sseq1 rexeqf ralbid raleqf 3anbi123d
      3jca nfeq2 spcegv imp syl2an ) EFKACHLZMZBILZMZIDNZHEUDZUAKZWGEUBZACWGNZB
      DOZABDNZCWGOZUCZGLZEUBZACWONZBDOZWLCWOOZUCZGUEZACENZBDOZWFHEFUFXCWIWKWMWI
      XCWFHEUGUHXBWJBDBLZDKZAWJCEXECPACWGUIXECLZEKZAWJXEXGQZAQZACJLZMZJWGNZWJXH
      AXFWGKZXLXIXGABWDMZIDNZQZXMAXHXPAXEXGXPXGAXEQZXPXQXOXGXEAXOXNAIXDDABWDRZU
      JUKULUKUMUKWFXOHXFEWBXFUNZWEXNIDXSWCABWDACWBRUOUPZUQURXKAJXFWGACXJRZUJVGX
      KAJCWGJWGSWFCHEWECIDCDSWCCBWDCWDSACWBTUSUTCESVAZACXJTAJPYAVBVCVDVEVHWMXCW
      LCWGXMXGWLWFWLHXFEXSWFXOWLXTXNAIBDABWDTAIPXRVFVIUQVJVKUHVQWHWNXAWTWNGWGUA
      WOWGUNZWPWIWRWKWSWMWOWGEVLYCWQWJBDBWOWGWFBHEWEBIDBDSWCBWDTUTBESVAVRACWOWG
      CWOSZYBVMVNWLCWOWGYDYBVOVPVSVTWA $.
  $}

  ${
    $d A c f x y $.  $d B c f x y $.  $d ph f c $.
    $( If for every element of an indexing set ` A ` there exists a
       corresponding element of another set ` B ` , then there exists a subset
       of ` B ` consisting only of those elements which are indexed by ` A ` ,
       and which is dominated by the set ` A ` .  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    indexdom $p |- ( ( A e. M /\ A. x e. A E. y e. B ph ) ->
            E. c ( ( c ~<_ A /\ c C_ B ) /\ ( A. x e. A E. y e. c ph
                                        /\ A. y e. c E. x e. A ph ) ) ) $=
      ( vf wcel wrex wral wa cv wex cdom wbr wss cvv adantr anbi12d wf cfv wsbc
      nfsbc1v sbceq1a ac6gf crn wfn cdm fdm vex dmex syl6eqelr ffn fnrndomg frn
      sylc nfv nfra1 nfan wfun ffun eleq2d biimpar syl2anc adantlr rspa adantll
      fvelrn rspesbca ex ralrimi nfcv nfral wb fvelrnb syl wi rsp adantl eqcoms
      wceq biimprcd syl6 reximdai rnex breq1 sseq1 rexeq ralbidv raleq syl22anc
      sylbid spcev exlimiv ) DFIACEJBDKLDEHMZUAZACBMZWPUBZUCZBDKZLZHNGMZDOPZXCE
      QZLZACXCJZBDKZABDJZCXCKZLZLZGNZAWTBCDEFHACWSUDZACWSUEZUFXBXMHXBWPUGZDOPZX
      PEQZACXPJZBDKZXICXPKZXMWQXQXAWQDRIWPDUHZXQWQDWPUIZRDEWPUJZWPHUKZULUMDEWPU
      NZDRWPUOUQSWQXRXADEWPUPSXBXSBDWQXABWQBURWTBDUSUTZXBWRDIZXSXBYHLWSXPIZWTXS
      WQYHYIXAWQYHLWPVAZWRYCIZYIWQYJYHDEWPVBSWQYKYHWQYCDWRYDVCVDWRWPVIVEVFXAYHW
      TWQWTBDVGVHACWSXPVJVEVKVLXBXICXPWQXACWQCURWTCBDCDVMXNVNUTXBCMZXPIZWSYLWBZ
      BDJZXIWQYMYOVOZXAWQYBYPYFBDYLWPVPVQSXBYNABDYGXBYHWTYNAVRXAYHWTVRWQWTBDVSV
      TYNAWTAWTVOYLWSXOWAWCWDWEWMVLXLXQXRLZXTYALZLGXPWPYEWFXCXPWBZXFYQXKYRYSXDX
      QXEXRXCXPDOWGXCXPEWHTYSXHXTXJYAYSXGXSBDACXCXPWIWJXICXCXPWKTTWNWLWOVQ $.
  $}

  ${
    $d R x y z $.  $d A x y z $.  $d B x y z $.
    $( A subset of a well-founded set has an infimum.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    frinfm $p |- ( ( R Fr A /\ ( B e. C /\ B C_ A /\ B =/= (/) ) ) ->
                    E. x e. A ( A. y e. B -. x `' R y /\
                    A. y e. A ( y `' R x -> E. z e. B y `' R z ) ) ) $=
      ( wfr wcel wss c0 wa cv wbr wn wral wrex wi vex ex wne w3a ccnv fri exp43
      ancom1s 3imp2 ssel2 adantrr brcnv biimpi ralimi ad2antll rspcev ralrimivw
      con3i breq2 ad2antrl jca32 reximdv2 adantl 3ad2antr2 mpd ) DGHZEFIZEDJZEK
      UAZUBLBMZAMZGNZOZBEPZAEQZVIVHGUCZNZOZBEPZVHVIVNNZVHCMZVNNZCEQZRZBDPZLZADQ
      ZVDVEVFVGVMVDVEVFVGVMVEVDVFVGLVMABDEFGUDUFUEUGVDVEVFVMWERZVGVFWFVDVFVLWDA
      EDVFVIEIZVLLZVIDIZWDLVFWHLWIVQWCVFWGWIVLEDVIUHUIVLVQVFWGVKVPBEVOVJVOVJVIV
      HGASBSUJUKUPULUMWGWCVFVLWGWBBDWGVRWAVTVRCVIEVSVIVHVNUQUNTUOURUSTUTVAVBVC
      $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d R x y z $.
    $( A nonempty subset of a well-ordered set has a lower bound.  (Contributed
       by Jeff Madsen, 2-Sep-2009.) $)
    welb $p |- ( ( R We A /\ ( B e. C /\ B C_ A /\ B =/= (/) ) ) ->
              ( `' R Or B /\ E. x e. B ( A. y e. B -. x `' R y /\
                        A. y e. B ( y `' R x -> E. z e. B y `' R z ) ) ) ) $=
      ( wwe wcel wss c0 w3a wa wor cv wbr wral wrex syl 3ad2antr2 wne ccnv wess
      wn wi impcom weso cnvso sylib wfr wefr ssid 3anim2i adantl frinfm syl2anc
      a1i jca ) DGHZEFIZEDJZEKUAZLZMZEGUBZNZAOZBOZVEPUDBEQVHVGVEPVHCOVEPCERUEBE
      QMAERZUSUTVAVFVBUSVAMZEGNZVFVJEGHZVKVAUSVLEDGUCUFZEGUGSEGUHUITVDEGUJZUTEE
      JZVBLZVIUSUTVAVNVBVJVLVNVMEGUKSTVCVPUSVAVOUTVBVOVAEULUQUMUNABCEEFGUOUPUR
      $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d R x y z $.
    $( Existence of supremum.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    supex2g $p |- ( A e. C -> sup ( B , A , R ) e. _V ) $=
      ( vx vy vz wcel csup cv wbr wn wral wrex wi wa crab cuni cvv df-sup syl
      rabexg uniexg syl5eqel ) ACHZBADIEJZFJZDKLFBMUGUFDKUGGJDKGBNOFAMPZEAQZRZS
      EFGBADTUEUISHUJSHUHEACUBUISUCUAUD $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d R x y z $.
    $( Closure of supremum.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    supclt $p |- ( ( R Or A /\ E. x e. A ( A. y e. B -. x R y /\ A. y e. A
            ( y R x -> E. z e. B y R z ) ) ) -> sup ( B , A , R ) e. A ) $=
      ( wor cv wbr wn wral wrex wi wa simpl simpr supcl ) DFGZAHZBHZFIJBEKTSFIT
      CHFICELMBDKNADLZNABCDEFRUAORUAPQ $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d R x y z $.
    $( Upper bound property of supremum.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    supubt $p |- ( ( R Or A /\ E. x e. A ( A. y e. B -. x R y /\
                        A. y e. A ( y R x -> E. z e. B y R z ) ) ) ->
                                ( C e. B -> -. sup ( B , A , R ) R C ) ) $=
      ( wor cv wbr wn wral wrex wi wa simpl simpr supub ) DGHZAIZBIZGJKBELUATGJ
      UACIGJCEMNBDLOADMZOABCDEFGSUBPSUBQR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Real and complex numbers; integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A u v w x y z $.  $d B u v w x y z $.  $d ph u v w y $.
    $( Combine a finite set of lower bounds.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    filbcmb $p |- ( ( A e. Fin /\ A =/= (/) /\ B C_ RR ) ->
                      ( A. x e. A E. y e. B A. z e. B ( y <_ z -> ph )
                    -> E. y e. B A. z e. B ( y <_ z -> A. x e. A ph ) ) ) $=
      ( vw vu vv cfn wcel cr cv cle wi wral wrex wa ssel2 adantlr wne reex ssex
      c0 wss w3a wbr cvv indexfi 3expia sylan2 3adant2 rexn0 rexlimivw 3ad2ant2
      r19.2z syl ex ad2antrr sstr ancoms fimaxre sylan anasss ancom2s 3ad2antl3
      anassrs syld a1dd 3impd nfv nfcv nfre1 nfral nfra1 nfrex weq breq1 imbi1d
      ralbidv cbvrexv rsp adantrr ad2ant2r adantr rspccva adantll simplrr letrd
      nfan pm2.27 ad2antlr mpid syl5 rexlimdva ralimdva imp an32s exp32 ralrimi
      syl5bi reximdai ssrexv exp43 3ad2ant3 mpdd ) EJKZEUDUAZFLUEZUFZCMZDMZNUGZ
      AOZDFPZCFQBEPZGMZFUEZXOCXQQZBEPZXOBEQCXQPZUFZGJQZXMABEPZOZDFPZCFQZXGXIXPY
      COZXHXIXGFUHKZYHFLUBUCXGYIXPYCXOBCEFUHGUIUJUKULXJYBYGGJXJXQJKZRZYBHMZXKNU
      GZHXQPZCXQQZYGYKXRXTYAYOYKXRXTYAYOOOYKXRRZXTYOYAYPXTXQUDUAZYOXJXTYQOZYJXR
      XHXGYRXIXHXTYQXHXTRXSBEQYQXSBEUPXSYQBEXOCXQUMUNUQURUOUSXJYJXRYQYOOZXIXGYJ
      XRRYSXHXIXRYJYSXIXRYJYSXIXRRZXQLUEZYJYSXRXIUUAXQFLUTVAUUAYJYQYOCHXQVBUJVC
      VDVEVFVGVHVIURVJXJYBYOYGOZOZYJXIXGUUCXHXIXRXTYAUUBXIXRXTYAUUBYTXTYARZRYOY
      FCXQQZYGYTXTYOUUEOYAYTXTRZYNYFCXQYTXTCYTCVKXSCBECEVLXOCXQVMVNWJUUFXKXQKZY
      NYFUUFUUGYNRZRYEDFUUFUUHDYTXTDYTDVKXSDBEDEVLXODCXQDXQVLXNDFVOVPVNWJUUHDVK
      WJYTUUHXTXLFKZYEOYTUUHRZXTRUUIXMYDUUJUUIXMRZXTYDUUJUUKRZXTYDUULXSABEXSIMZ
      XLNUGZAOZDFPZIXQQUULBMEKZRZAXOUUPCIXQCIVQZXNUUODFUUSXMUUNAXKUUMXLNVRVSVTW
      AUURUUPAIXQUULUUMXQKZUUPAOUUQUUPUUIUUOOZUULUUTRZAUUODFWBUVBUVAUUNAUVBUUMX
      KXLUUJUUTUUMLKZUUKYTUUTUVCUUHXIXRUUTUVCXRUUTRXIUUMFKUVCXQFUUMSFLUUMSUKVGT
      TUUJXKLKZUUKUUTYTUUGUVDYNXIXRUUGUVDXRUUGRXIXKFKUVDXQFXKSFLXKSUKVGWCUSUULX
      LLKZUUTYTUUIUVEUUHXMXIUUIUVEXRFLXLSTWDWEUUJUUTUUMXKNUGZUUKUUHUUTUVFYTYNUU
      TUVFUUGYMUVFHUUMXQYLUUMXKNVRWFWGWGTUUJUUIXMUUTWHWIUUKUVAUUOOZUUJUUTUUIUVG
      XMUUIUUOWKWEWLWMWNTWOXAWPWQWRWSWRWTWSXBWCXRUUEYGOXIUUDYFCXQFXCWLVHXDVJXEW
      EXFWOVH $.
  $}

  $( Two ways of expressing the remainder when ` A ` is divided by ` B ` .
     (Contributed by Jeff Madsen, 17-Jun-2010.) $)
  rdr $p |- ( ( A e. RR /\ B e. RR+ ) ->
                      ( ( A - ( A mod B ) ) / B ) = ( |_ ` ( A / B ) ) ) $=
    ( moddiffl ) ABC $.

  $( Membership of a product in a finite interval of integers.  (Contributed by
     Jeff Madsen, 17-Jun-2010.) $)
  fzmul $p |- ( ( M e. ZZ /\ N e. ZZ /\ K e. NN ) -> ( J e. ( M ... N ) ->
                        ( K x. J ) e. ( ( K x. M ) ... ( K x. N ) ) ) ) $=
    ( cz wcel w3a cfz co cle wbr cmul wb wi wa cr zre 3expa zmulcl ex elfz1 cc0
    cn 3adant3 clt nnre nngt0 jca lemul2 syl3an biimpd adantllr ancom1s anim12d
    adantlll 3anim123d elfz 3coml nnz syl11 imp sylibrd an32s exp4b 3impd 3impa
    syl6 sylbid ) CEFZDEFZBUCFZGACDHIFZAEFZCAJKZADJKZGZBALIZBCLIZBDLIZHIFZVIVJV
    LVPMVKACDUAUDVIVJVKVPVTNVIVJOZVKOZVMVNVOVTWBVMVNVOVTWAVMVKVNVOOZVTNWAVMOZVK
    OZWCVRVQJKZVQVSJKZOZVTWEVNWFVOWGVIVMVKVNWFNVJVIVMOVKOVNWFVIVMVKVNWFMZVICPFV
    MAPFZVKBPFZUBBUEKZOZWICQAQZVKWKWLBUFBUGUHZCABUIUJRUKULVJVMVKVOWGNVIVJVMOVKO
    VOWGVMVJVKVOWGMZVMVJVKWPVMWJVJDPFVKWMWPWNDQWOADBUIUJRUMUKUOUNWDVKVTWHMZVIVJ
    VMVKWQNBEFZVIVJVMGZWQVKWRWSVREFZVSEFZVQEFZGWQWRVIWTVJXAVMXBWRVIWTBCSTWRVJXA
    BDSTWRVMXBBASTUPXBWTXAWQVQVRVSUQURVGBUSUTRVAVBVCVDVEVFVH $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Sequences and sums
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d f g h j k n w x y A $.  $d h j k m w x J $.  $d f g h j k m n w x y M $.
    $d g j ch $.  $d j m n w x F $.  $d f h j k x y ps $.  $d f g j n x y si $.
    $d f g h j k m n w x G $.  $d j n w x y ph $.  $d n w x y th $.  $d h V $.
    $d h j k n w x y ta $.  $d f g h j k m n w x y Z $.
    sdc.1 $e |- Z = ( ZZ>= ` M ) $.
    sdc.2 $e |- ( g = ( f |` ( M ... n ) ) -> ( ps <-> ch ) ) $.
    sdc.3 $e |- ( n = M -> ( ps <-> ta ) ) $.
    sdc.4 $e |- ( n = k -> ( ps <-> th ) ) $.
    sdc.5 $e |- ( ( g = h /\ n = ( k + 1 ) ) -> ( ps <-> si ) ) $.
    sdc.6 $e |- ( ph -> A e. V ) $.
    sdc.7 $e |- ( ph -> M e. ZZ ) $.
    sdc.8 $e |- ( ph -> E. g ( g : { M } --> A /\ ta ) ) $.
    sdc.9 $e |- ( ( ph /\ k e. Z ) -> ( ( g : ( M ... k ) --> A /\ th ) ->
                  E. h ( h : ( M ... ( k + 1 ) ) --> A /\
                         g = ( h |` ( M ... k ) ) /\ si ) ) ) $.
    ${
      sdc.10 $e |- J = { g | E. n e. Z ( g : ( M ... n ) --> A /\ ps ) } $.
      sdc.11 $e |- F = ( w e. Z , x e. J |-> { h | E. k e. Z
     ( h : ( M ... ( k + 1 ) ) --> A /\ x = ( h |` ( M ... k ) ) /\ si ) } ) $.
      ${
        sdc.12 $e |- F/ k ph $.
        sdc.13 $e |- ( ph -> G : Z --> J ) $.
        sdc.14 $e |- ( ph -> ( G ` M ) : ( M ... M ) --> A ) $.
        sdc.15 $e |- ( ( ph /\ w e. Z ) ->
                       ( G ` ( w + 1 ) ) e. ( w F ( G ` w ) ) ) $.
        $( Lemma for ~ sdc .  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
        sdclem2 $p |- ( ph -> E. f ( f : Z --> A /\ A. n e. Z ch ) ) $=
          ( vm cv cfv cmpt wf cfz co wsbc wral wa wex wcel ffvelrnda cab eleq2i
          wrex nfcv nfv nfsbc1v nfan nfrex fvex wceq feq1 sbceq1a anbi12d elabf
          rexbidv bitri sylib weq cdm fdm adantr wi caddc fveq2 mpteq1d eqeq12d
          cuz c1 oveq2 imbi2d cz id fveq12d eqid fvmpt adantl fveq1d ex ralrimi
          wfn ffn syl fnmpti sylancl a1i cres w3a cvv simpr wss cmap ovex ssexg
          sylancr eqeq1 reseq1 eqeq2d fzssp1 syl6eleq fzopth simprd ax-mp fvres
          wb resmpt eluzfz2 syl5ibrcom sylbid mpd syl6eq bitrd sbcbidv a1d 3exp
          elfz1eq fveq2d eqtr2d eqfnfv mpbird 3simpa reximi ss2abi simpl elmapg
          eqeltri mpan2 syl5ibr abssdv abrexex2g 3anbi2d abbidv imbi12d ovmpt4g
          eleq1d 3com12 vtoclga syl3c syl6eqss sseldd elab simprl fssres simprr
          fneq1d mpbiri fndm eqtr3d simplr oveq1d oveq2d elfzp1 reseq2d syl6req
          mpbid eqtrd syl5ibcom eqeltrrd peano2uz 4syl eqcomd ralrimiv ad2antrl
          wo jaod eqfnfv2 mpbir2and imbi1d expimpd rexlimd expcom sylbir uzind4
          expr eleq2s impcom dmeqd dmmptg mprg eqeq1d syl6bi syl5 feq2d equcoms
          biimpcd sylcom rexlimdvw simpld ffvelrnd cbvmptv fmptdf mpteq1 dfsbcq
          a2d sbceq1dd 3syl cbvralv sylibr mptex vex resex sbcie fzssuz sbceq1d
          sseqtr4i syl5bbr ralbidv spcev syl2anc ) ATIUPTUPUQZUYQPURZURZUSZUTZB
[encoded data, 4560 characters]
          WXHVUDVRVUCVWATRVUBUYJUAUYLUPTVUCUYSYMYJYRUYKUYMUYNWAUYOUYP $.
      $}

      $d g h k ph $.
      $( Lemma for ~ sdc .  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
      sdclem1 $p |- ( ph -> E. f ( f : Z --> A /\ A. n e. Z ch ) ) $=
        ( vj vm csn cv wf wa wral wex cz wcel cc0 cif cuz cfv wceq c1 caddc w3a
        co cvv cxp cpw c0 cdif cfz wrex cab fvex eqeltri cmap wss simpl wb ovex
        elmapg sylancl syl5ibr abssdv ssexg ralrimivw abrexex2g syl5eqel adantr
        sylancr uzid syl syl6eleqr simprl fzsn feq2d mpbird simprr oveq2 rspcev
        anbi12d syl12anc abeq2i sylibr cres wne wsbc ad2antlr simpr1 simpr3 vex
        peano2uzs weq a1i sbc2iedv ad2antrr nfv nfcv nfsbc1v nfsbc nfan sbceq1a
        wi sbcbidv rspce eleq2i rexbidv sylib iftrued fveq2d syl6eqr sylan nfab
        ex nfre1 nfcxfr nfrex feq1 elabf bitri rexlimdva elpw2g cbvrexv rexcom4
        reximdva syl6ib syl5bi ss2abdv syl5eqss sselda 3anbi2d exbidv elab abn0
        eqeq1 adantlr eldifsn sylanbrc adantrl ralrimivva xpeq1d biimpar syldan
        fmpt2 elimel eqid axdc4uz syl3anc abbii eqtri feq3 ax-mp syl6bb raleqdv
        eqeq1d 3anbi123d simpll nff cmpt2 nfmpt2 nfov nfel2 nfral simpr2 feq12d
        0z nf3an oveq1 fveq2 oveq12d eleq12d rspccva sdclem2 sylbid exlimdv mpd
        id exlimddv ) AQUMZIKUNZUOZEUPZSIJUNUOCNSUQUPJURZKUGAUXFUPZQUSUTZQVAVBZ
        VCVDZPUKUNZUOZUXJUXLVDZUXDVEZULUNZVFVGVIZUXLVDZUXPUXPUXLVDZOVIZUTZULUXK
        UQZVHZUKURZUXGUXHPVJUTZUXDPUTZUXKPVKZPVLZVMUMVNZOUOZUYDAUYEUXFAPQNUNZVO
        VIZIUXDUOZBUPZNSVPZKVQZVJUIASVJUTUYNKVQZVJUTZNSUQUYPVJUTSQVCVDZVJTQVCVR
        VSAUYRNSAUYQIUYLVTVIZWAUYTVJUTUYRAUYNKUYTUYNUXDUYTUTZAUYMUYMBWBAIRUTZUY
        LVJUTVUAUYMWCUEQUYKVOWDIUYLUXDRVJWEWFWGWHIUYLVTWDUYQUYTVJWIWFWJUYNNKSVJ
        VJWKWNWLZWMUXHUYOUYFUXHQSUTQQVOVIZIUXDUOZEUYOUXHQUYSSUXHUXIQUYSUTAUXIUX
        FUFWMZQWOWPTWQUXHVUEUXEAUXEEWRZUXHVUDUXCIUXDUXHUXIVUDUXCVEZVUFQWSZWPWTX
        AAUXEEXBUYNVUEEUPNQSUYKQVEZUYMVUEBEVUJUYLVUDIUXDUYKQQVOXCWTUBXEXDXFUYOK
        PUIXGXHAUXFSPVKZUYIOUOZUYJUXHQMUNZVFVGVIZVOVIZILUNZUOZGUNZVUPQVUMVOVIZX
        IZVEZFVHZMSVPZLVQZUYIUTZGPUQHSUQVULUXHVVEHGSPUXHVURPUTZVVEHUNZSUTZUXHVV
        FUPZVVDUYHUTZVVDVMXJZVVEVVIVVJVVDPWAZAVVLUXFVVFAVVCLPAVVBVUPPUTZMSAVUMS
        UTZUPZVVBVVMVVOVVBUPZUYLIVUPUOZBKVUPXKZUPZNSVPZVVMVVPVUNSUTZVUQBNVUNXKZ
        KVUPXKZVVTVVNVWAAVVBQVUMSTXPXLVVOVUQVVAFXMVVPVWCFVVOVUQVVAFXNAVWCFWCVVN
        VVBABFKNVUPVUNLXOZVUMVFVGWDKLXQZUYKVUNVEZUPBFWCYGAUDXRXSXTXAVVSVUQVWCUP
        NVUNSVUQVWCNVUQNYAVWBNKVUPNVUPYBBNVUNYCYDYEVWFVVQVUQVVRVWCVWFUYLVUOIVUP
        UYKVUNQVOXCWTVWFBVWBKVUPBNVUNYFYHXEYIXFVVMVUPUYPUTVVTPUYPVUPUIYJUYOVVTK
        VUPVVSKNSKSYBVVQVVRKVVQKYABKVUPYCYEUUAVWDVWEUYNVVSNSVWEUYMVVQBVVRUYLIUX
        DVUPUUBBKVUPYFXEYKUUCUUDXHYRUUEWHXTVVIUYEVVJVVLWCAUYEUXFVVFVUCXTVVDPVJU
        UFWPXAAVVFVVKUXFAVVFUPZVVCLURZVVKVWGVURVUQUXDVUTVEZFVHZMSVPZLURZKVQZUTV
        WHAPVWMVURAPUYPVWMUIAUYOVWLKUYOVUSIUXDUOZDUPZMSVPZAVWLUYNVWONMSNMXQZUYM
        VWNBDVWQUYLVUSIUXDUYKVUMQVOXCWTUCXEUUGZAVWPVWJLURZMSVPVWLAVWOVWSMSUHUUI
        VWJMLSUUHUUJUUKUULUUMUUNVWLVWHKVURGXOKGXQZVWKVVCLVWTVWJVVBMSVWTVWIVVAVU
        QFUXDVURVUTUUSUUOYKUUPUUQYLVVCLUURXHUUTVVDUYHVMUVAUVBUVCUVDHGSPVVDUYIOU
        JUVHYLAUYJVULAUYGVUKUYIOAUXKSPAUXKUYSSAUXJQVCAUXIQVAUFYMYNTYOUVEWTUVFUV
        GPUXDUKULOUXJVJUXKQVAUSUWJUVIUXKUVJUVKUVLUXHUYCUXGUKUXHUYCSVWPKVQZUXLUO
        ZQUXLVDZUXDVEZUYAULSUQZVHZUXGUXHUXMVXBUXOVXDUYBVXEUXHUXMSPUXLUOZVXBUXHU
        XKSPUXLUXHUXKUYSSUXHUXJQVCUXHUXIQVAVUFYMZYNTYOZWTPVXAVEVXGVXBWCPUYPVXAU
        IUYOVWPKVWRUVMUVNZPVXASUXLUVOUVPZUVQUXHUXNVXCUXDUXHUXJQUXLVXHYNUVSUXHUY
        AULUXKSVXIUVRUVTUXHVXFUXGUXHVXFUPZBCDEFGHIJKLMNOUXLPQRSTUAUBUCUDAVUBUXF
        VXFUEXTAUXIUXFVXFUFXTZAUXFKURUXFVXFUGXTVXLAVVNVWOVWSYGAUXFVXFUWAUHYPUIU
        JUXHVXFMUXHMYAVXBVXDVXEMMSVXAUXLMUXLYBMSYBZVWPMKVWOMSYSYQZUWBVXDMYAUYAM
        ULSVXNMUXRUXTMUXPUXSOMUXPYBMOHGSPVVDUWCUJHGMSPVVDVXNMPVXAVXJVXOYTVVCMLV
        VBMSYSYQUWDYTMUXSYBUWEUWFUWGUWKYEVXLVXBVXGUXHVXBVXDVXEXMVXKXHVXLVUDIVXC
        UOUXEUXHUXEVXFVUGWMVXLVUDUXCIVXCUXDUXHVXBVXDVXEUWHVXLUXIVUHVXMVUIWPUWIX
        AVXLVXEVVHVVGVFVGVIZUXLVDZVVGVVGUXLVDZOVIZUTZUXHVXBVXDVXEXNUYAVXTULVVGS
        ULHXQZUXRVXQUXTVXSVYAUXQVXPUXLUXPVVGVFVGUWLYNVYAUXPVVGUXSVXROVYAUXAUXPV
        VGUXLUWMUWNUWOUWPYPUWQYRUWRUWSUWTUXB $.
    $}

    $d g h k ph $.
    $( Strong dependent choice.  Suppose we may choose an element of ` A ` such
       that property ` ps ` holds, and suppose that if we have already chosen
       the first ` k ` elements (represented here by a function from
       ` 1 ... k ` to ` A ` ), we may choose another element so that all
       ` k + 1 ` elements taken together have property ` ps ` .  Then there
       exists an infinite sequence of elements of ` A ` such that the first
       ` n ` terms of this sequence satisfy ` ps ` for all ` n ` .  This
       theorem allows us to construct infinite seqeunces where each term
       depends on all the previous terms in the sequence.  (Contributed by Jeff
       Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
       3-Jun-2014.) $)
    sdc $p |- ( ph -> E. f ( f : Z --> A /\ A. n e. Z ch ) ) $=
      ( vx vy vj cv cfz co wf wa wrex cab c1 caddc cres wceq w3a cmpt2 eqid weq
      oveq2 feq2d anbi12d cbvrexv abbii mpt2eq123i eqidd 3anbi2d rexbidv abbidv
      eqeq1 cbvmpt2v eqtr3i sdclem1 ) ABCDEFUEUFGHIJKLUGHOMKUHZUIUJZGIUHZUKZDUL
      ZKOUMZIUNZMVQUOUPUJUIUJGJUHZUKZHUHZWDVRUQZURZFUSZKOUMZJUNZUTZMLUHZUIUJZGV
      SUKZBULZLOUMZIUNZMNOPQRSTUAUBUCUDWRVAUGHOWRWKUTWLUFUEOWRWEUEUHZWGURZFUSZK
      OUMZJUNZUTUGHOWRWKOWCWKOVAWQWBIWPWALKOLKVBZWOVTBDXDWNVRGVSWMVQMUIVCVDSVEV
      FVGWKVAVHUGHUFUEOWRWKXCWKUGUFVBWKVIHUEVBZWJXBJXEWIXAKOXEWHWTWEFWFWSWGVMVJ
      VKVLVNVOVP $.
  $}

  ${
    $d C c f n $.  $d A a b c d f g m n x $.  $d M a b c d f g j k m n x $.
    $d Z a b c d g j m n x $.  $d N a b c d f g j k m n $.  $d R a b d $.
    $d ph c d f g j k m $.  $d ps a $.  $d ch a b c d g m n $.
    $d th c d f g n $.  $d ta a b c d g m $.  $d et a b g m $.
    fdc.1 $e |- A e. _V $.
    fdc.2 $e |- M e. ZZ $.
    fdc.3 $e |- Z = ( ZZ>= ` M ) $.
    fdc.4 $e |- N = ( M + 1 ) $.
    fdc.5 $e |- ( a = ( f ` ( k - 1 ) ) -> ( ph <-> ps ) ) $.
    fdc.6 $e |- ( b = ( f ` k ) -> ( ps <-> ch ) ) $.
    fdc.7 $e |- ( a = ( f ` n ) -> ( th <-> ta ) ) $.
    fdc.8 $e |- ( et -> C e. A ) $.
    fdc.9 $e |- ( et -> R Fr A ) $.
    fdc.10 $e |- ( ( et /\ a e. A ) -> ( th \/ E. b e. A ph ) ) $.
    fdc.11 $e |- ( ( ( et /\ ph ) /\ ( a e. A /\ b e. A ) ) -> b R a ) $.
    $( Finite version of dependent choice.  Construct a function whose value
       depends on the previous function value, except at a final point at which
       no new value can be chosen.  The final hypothesis ensures that the
       process will terminate.  The proof does not use the Axiom of Choice.
       (Contributed by Jeff Madsen, 18-Jun-2010.) $)
    fdc $p |- ( et -> E. n e. Z E. f ( f : ( M ... n ) --> A /\
              ( ( f ` M ) = C /\ ta ) /\ A. k e. ( N ... n ) ch ) ) $=
      ( vc vd vm vg vx vj wcel cv cfz co wf cfv wceq wa wral w3a wex c0 wss wbr
      wrex wn wi wsbc cuz ax-mp csn sylancr adantr a1i feq1 fveq1 eqeq1d syl6eq
      cz wb sbceq2a anbi12d oveq2 feq2d fvex sbcie fveq2 sbceq1d syl5bbr anbi2d
      syl c1 caddc oveq1i clt ltp1i raleqdv 3anbi123d exbidv rspcev adantll weq
      mpbi eqeq2 anbi1d 3anbi2d ad2antll cmin bitri sbceqbid ad2antlr eleq1 cif
      rexbidv eleq2s cle ltnlei elfzle1 syl6bi com12 mtoi adantl iffalsed 1z ex
      imp ax-1cn cc fvmpt eqeq1 oveq1 fveq2d ifbieq2d ifex sseldi cvv crab cdif
      uzid eleqtrri cop eqid elexi vex mpbir snssi fzsn feq2i sylibr fvsn simpr
      fsn fss snex spcev syl12anc zrei peano2z mp2an eqtri ral0 df-3an mpbiran2
      fzn syl6bb a1d breq1 expcom dfrex2 syl6ib con2d eldif ssrab2 dfss4 eleq2i
      elrab3 syl5bb sylibd cbvrexv sbcbidv ralbidv cbvexv rexbii imbi1d imbi12d
      simplbi2 peano2uzs imbi2d cmpt wo peano2uz elfzp12 iftrue eleq1d biimprcd
      ad2antrr 1re readdcli elfzelz eluzelz peano2zd biimpd mpanr2 mpanl1 com23
      fzsubel recni pncan3oi zcnd pncan sylancl oveq12d eleqtrd ffvelrn anassrs
      sylan2 ancom1s eqeltrd jaod sylbid ralrimiv fmpt sylib adantlll 3ad2antr1
      mpd eluzfz1 eluzfz2 wne eluzle zleltp1 mpbid ltne neneqd biimpar ad2ant2l
      cr 3eqtrd 3ad2antr2 eluzp1p1 fveq2i syl6eleqr biimpa adantlr eqtrd eqeq2i
      sylbi ltleii eluz2 mpbir3an fzss1 fzaddel mpanr12 gtneii ifnefalse simprl
      biimparc adantlrr eqeltri rspcva sylan fzssp1 subadd mp3an23 eqcom syl5bi
      breqtrri addcomi mp2b lttri syldan an32s adantlrl jaodan cbvralv adantllr
      ralrimiva adantrlr 3adantr1 ovex mptex syl121anc chvarv syl2anc rexlimdva
      exlimdv 3syld an42s rexlimdvaa mpjaodan sylibrd notbii iman bitr4i nrexdv
      syl6ibr df-ne wfr difss difexg fri expr syl5bir mt3d ssdif0 eqssd rabid2
      ) FHGUOMLUPZUQURZGJUPZUSZMVXNUTZUIUPZVAZEVBZCKNVXLUQURZVCZVDZJVEZLOVIZUIG
[encoded data, 8480 characters]
      OVXSVYGVXOVYAYXOVXRVYFEVXQHVXPXHXIXJXCXRVVDVWH $.
  $}

  ${
    $d A a b c d f n $.  $d R a b d $.  $d M a b c d f k n $.
    $d Z a b c d n $.  $d N a b c d f k n $.  $d ph d f k $.  $d ps a d $.
    $d ch a b c d n $.  $d th d f n $.  $d ta a b c d $.  $d et a b c d f n $.
    $d ze b c d f n $.  $d si a c $.
    fdc1.1 $e |- A e. _V $.
    fdc1.2 $e |- M e. ZZ $.
    fdc1.3 $e |- Z = ( ZZ>= ` M ) $.
    fdc1.4 $e |- N = ( M + 1 ) $.
    fdc1.5 $e |- ( a = ( f ` M ) -> ( ze <-> si ) ) $.
    fdc1.6 $e |- ( a = ( f ` ( k - 1 ) ) -> ( ph <-> ps ) ) $.
    fdc1.7 $e |- ( b = ( f ` k ) -> ( ps <-> ch ) ) $.
    fdc1.8 $e |- ( a = ( f ` n ) -> ( th <-> ta ) ) $.
    fdc1.9 $e |- ( et -> E. a e. A ze ) $.
    fdc1.10 $e |- ( et -> R Fr A ) $.
    fdc1.11 $e |- ( ( et /\ a e. A ) -> ( th \/ E. b e. A ph ) ) $.
    fdc1.12 $e |- ( ( ( et /\ ph ) /\ ( a e. A /\ b e. A ) ) -> b R a ) $.
    $( Variant of ~ fdc with no specified base value.  (Contributed by Jeff
       Madsen, 18-Jun-2010.) $)
    fdc1 $p |- ( et -> E. n e. Z E. f ( f : ( M ... n ) --> A /\
                          ( si /\ ta ) /\ A. k e. ( N ... n ) ch ) ) $=
      ( vc vd cv cfz co wf wa wral w3a wex wrex wcel wsbc wi wceq eleq1 sbceq2a
      anbi2d anbi12d imbi1d cfv wsb c1 cmin sbsbc nfv sbhypf syl5bbr simprl wfr
      adantr nfsbc1v nfcv nfrex nfor nfim sbceq1a rexbidv orbi12d imbi12d chvar
      wo adantlr wbr nfan anbi1d breq2 adantllr fdc anassrs fvex sbcie syl5rbbr
      idd dfsbcq biimpcd adantl anim1d 3anim123d eximdv reximdv chvarv r19.29a
      mpd ) FGNMUMZUNUOIKUMZUPZHEUQZCLOXOUNUOURZUSZKUTZMPVAZQIFUKUMZIVBZUQZGQYC
      VCZUQZYBVDFQUMZIVBZUQZGUQZYBVDUKQYCYHVEZYGYKYBYLYEYJYFGYLYDYIFYCYHIVFVHGQ
      YCVGVIVJYGXQNXPVKZYCVEZEUQZXSUSZKUTZMPVAZYBFYDYFYRAQULUMZVCZBCDQYSVCZEFYD
      YFUQZUQIYCJKLMNOPULRSTUAUBYTAQULVLYSLUMVMVNUOXPVKZVEBAQULVOABQULUUCBQVPUD
      VQVRUEUUADQULVLYSXOXPVKZVEEDQULVODEQULUUDEQVPUFVQVRFYDYFVSFIJVTUUBUHWAFYS
      IVBZUUAYTRIVAZWLZUUBYJDARIVAZWLZVDFUUEUQZUUGVDQULUUJUUGQUUJQVPUUAUUFQDQYS
      WBYTQRIQIWCAQYSWBZWDWEWFYHYSVEZYJUUJUUIUUGUULYIUUEFYHYSIVFZVHUULDUUAUUHUU
      FDQYSWGUULAYTRIAQYSWGZWHWIWJUIWKWMFYTUUERUMZIVBZUQZUUOYSJWNZUUBFAUQZYIUUP
      UQZUQZUUOYHJWNZVDFYTUQZUUQUQZUURVDQULUVDUURQUVCUUQQFYTQFQVPUUKWOUUQQVPWOU
      URQVPWFUULUVAUVDUVBUURUULUUSUVCUUTUUQUULAYTFUUNVHUULYIUUEUUPUUMWPVIYHYSUU
      OJWQWJUJWKWRWSWTYGYQYAMPYGYPXTKYGXQXQYOXRXSXSYGXQXDYGYNHEYFYNHVDYEYNYFHHG
      QYMVCYNYFGHQYMNXPXAUCXBGQYMYCXEXCXFXGXHYGXSXDXIXJXKXNXLUGXM $.
  $}

  ${
    $d F m n p q s $.  $d A m n p q s $.  $d R m n p q s $.
    $( Two ways to say that a sequence respects a partial order.  (Contributed
       by Jeff Madsen, 2-Sep-2009.) $)
    seqpo $p |- ( ( R Po A /\ F : NN --> A ) ->
                  ( A. s e. NN ( F ` s ) R ( F ` ( s + 1 ) ) <-> A. m e. NN
                    A. n e. ( ZZ>= ` ( m + 1 ) ) ( F ` m ) R ( F ` n ) ) ) $=
      ( cn wa cv cfv c1 caddc wbr wral cuz wcel wi wceq fveq2 breq2d wpo imbi2d
      vp vq wf co oveq1 fveq2d breq12d rspccva adantl a1i peano2nn elnnuz sylib
      cz uztrn sylibr expcom syl imdistani ad2ant2l w3a ffvelrn adantrr adantrl
      sylan2 3jca potr expcomd syl5 expdimp adantr mpdd anasss com12 a2d uzind4
      ex ralrimiv anassrs ralrimiva breq1d raleqbidv rspcv imdistanri nnzd uzid
      impbid1 ) ABUAZGAEUEZHZFIZEJZWMKLUFZEJZBMZFGNZCIZEJZDIZEJZBMZDWSKLUFZOJZN
      ZCGNZWLWRXGWLWRHZXFCGWLWRWSGPZXFWLWRXIHZHZXCDXEXAXEPXKXCXKWTUCIZEJZBMZQXK
      WTXDEJZBMZQZXKWTUDIZEJZBMZQXKWTXRKLUFZEJZBMZQXKXCQUCUDXDXAXLXDRZXNXPXKYDX
      MXOWTBXLXDESTUBXLXRRZXNXTXKYEXMXSWTBXLXRESTUBXLYARZXNYCXKYFXMYBWTBXLYAEST
      UBXLXARZXNXCXKYGXMXBWTBXLXAESTUBXQXDUPPXJXPWLWQXPFWSGWMWSRZWNWTWPXOBWMWSE
      SYHWOXDEWMWSKLUGUHUIUJUKULXRXEPZXKXTYCXKYIXTYCQZWLWRXIYIYJQXHXIYIYJXIYIHX
      IXRGPZHZXHYJXIYIYKXIXDKOJZPZYIYKQXIXDGPYNWSUMXDUNUOYIYNYKYIYNHXRYMPYKXDXR
      KUQXRUNURUSUTVAXHYLXSYBBMZYJXHYLYOWRYKYOWLXIWQYOFXRGWMXRRZWNXSWPYBBWMXRES
      YPWOYAEWMXRKLUGUHUIUJVBVSWLYLYOYJQZQWRWJWKYLYQWKYLHZWTAPZXSAPZYBAPZVCZWJY
      QYRYSYTUUAWKXIYSYKGAWSEVDVEWKYKYTXIGAXREVDVFWKYKUUAXIYKWKYAGPUUAXRUMGAYAE
      VDVGVFVHWJUUBYQWJUUBHXTYOYCAWTXSYBBVIVJVSVKVLVMVNVKVLVOVPVQVRVPVTWAWBVSXG
      WQFGXGWMGPZHWNXBBMZDWOOJZNZUUCHWQUUCXGUUFXFUUFCWMGWSWMRZXCUUDDXEUUEUUGXDW
      OOWSWMKLUGUHUUGWTWNXBBWSWMESWCWDWEWFUUCUUFWOUUEPZWQUUCWOUPPUUHUUCWOWMUMWG
      WOWHUTUUDWQDWOUUEXAWORXBWPWNBXAWOESTUJVGUTWBWI $.
  $}

  ${
    $d F k m n p q $.  $d A k m n p q $.
    $( An increasing sequence of positive integers takes on indefinitely large
       values.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    incsequz $p |- ( ( F : NN --> NN /\ A. m e. NN
                    ( F ` m ) < ( F ` ( m + 1 ) ) /\ A e. NN ) ->
                                  E. n e. NN ( F ` n ) e. ( ZZ>= ` A ) ) $=
      ( vk cn cv cfv c1 caddc co wbr wcel cuz wrex wa wi wceq fveq2 cr vp vq wf
      clt eleq2d rexbidv imbi2d c0 wne 1nn ne0ii ffvelrn elnnuz sylib ralrimiva
      wral r19.2z sylancr adantr peano2nn adantl cle nnre nnred adantlr adantll
      ad2antrr 1red leadd1d oveq1 fveq2d breq12d rspcv imdistani sylan2 syl2anc
      nnltp1le biimpa anasss anass1rs peano2re syl letr syl3anc adantlrr mpan2d
      wb sylbid cz nnz nnzd eluz syl2an adantrlr anassrs peano2zd eleq1d rspcev
      3imtr4d syl6an rexlimdva cbvrexv syl6ib ex a2d nnind com12 3impia ) FFDUC
      ZBGZDHZXJIJKZDHZUDLZBFUPZAFMZCGZDHZANHZMZCFOZXPXIXOPZYAYBXRUAGZNHZMZCFOZQ
      YBXRINHZMZCFOZQYBXRUBGZNHZMZCFOZQYBXRYJIJKZNHZMZCFOZQYBYAQUAUBAYCIRZYFYIY
      BYRYEYHCFYRYDYGXRYCINSUEUFUGYCYJRZYFYMYBYSYEYLCFYSYDYKXRYCYJNSUEUFUGYCYNR
      ZYFYQYBYTYEYPCFYTYDYOXRYCYNNSUEUFUGYCARZYFYAYBUUAYEXTCFUUAYDXSXRYCANSUEUF
      UGXIYIXOXIFUHUIYHCFUPYIIFUJUKXIYHCFXIXQFMZPZXRFMZYHFFXQDULZXRUMUNUOYHCFUQ
      URUSYJFMZYBYMYQUUFYBYMYQQUUFYBPZYMEGZDHZYOMZEFOZYQUUGYLUUKCFUUGUUBPZXQIJK
      ZFMZYLUUMDHZYOMZUUKUUBUUNUUGXQUTZVAUULYJXRVBLZYNUUOVBLZYLUUPUULUURYNXRIJK
      ZVBLZUUSUULYJXRIUUFYJTMZYBUUBYJVCZVGYBUUBXRTMZUUFXIUUBUVDXOUUCXRUUEVDVEVF
      UULVHVIUULUVAUUTUUOVBLZUUSYBUUBUVEUUFXIUUBXOUVEUUBXOPXIUUBXRUUOUDLZPUVEUU
      BXOUVFXNUVFBXQFXJXQRZXKXRXMUUOUDXJXQDSUVGXLUUMDXJXQIJVJVKVLVMVNXIUUBUVFUV
      EUUCUVFUVEUUCUUDUUOFMZUVFUVEWGUUEUUBXIUUNUVHUUQFFUUMDULZVOXRUUOVQVPVRVSVO
      VTVFUUFXIUUBUVAUVEPUUSQZXOUUFXIPUUBPYNTMZUUTTMZUUOTMZUVJUUFUVKXIUUBUUFUVB
      UVKUVCYJWAWBVGXIUUBUVLUUFUUCUUTUUCUUDUUTFMUUEXRUTWBVDVFXIUUBUVMUUFUUBXIUU
      NUVMUUQXIUUNPZUUOUVIVDVOVFYNUUTUUOWCWDWEWFWHUUFYBUUBYLUURWGZUUFXIUUBUVOXO
      UUFYJWIMXRWIMUVOUUCYJWJZUUCXRUUEWKYJXRWLWMWNWOUUFYBUUBUUPUUSWGZUUFXIUUBUV
      QXOUUFYNWIMUUOWIMZUVQUUCUUFYJUVPWPUUBXIUUNUVRUUQUVNUUOUVIWKVOYNUUOWLWMWNW
      OWSUUJUUPEUUMFUUHUUMRUUIUUOYOUUHUUMDSWQWRWTXAUUJYPECFUUHXQRUUIXRYOUUHXQDS
      WQXBXCXDXEXFXGXH $.

    $( An increasing sequence of positive integers takes on indefinitely large
       values.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    incsequz2 $p |- ( ( F : NN --> NN /\ A. m e. NN
            ( F ` m ) < ( F ` ( m + 1 ) ) /\ A e. NN ) ->
              E. n e. NN A. k e. ( ZZ>= ` n ) ( F ` k ) e. ( ZZ>= ` A ) ) $=
      ( vp vq cn cv cfv c1 caddc clt wbr wral wcel cuz wa wi cr wf w3a incsequz
      co wrex wpo wb wss nnssre wor ltso sopo ax-mp poss seqpo biimpd imdistani
      mp2 mpan wceq wo uzp1 fveq2 adantl ffvelrn nnzd uzid syl eqeltrd adantllr
      adantr oveq1 fveq2d breq1d raleqbidv rspccva breq2d sylan adantlll elnnuz
      cz peano2nn sylib uztrn ancoms sylibr sylan2 anassrs cle ltle syl2an eluz
      zre sylibrd syl2anc mpd jaodan ex ralrimdva stoic3 reximdvai ) HHEUAZCIZE
      JXCKLUDEJMNCHOZAHPZUBZDIZEJZAQJZPZDHUEBIZEJZXIPZBXGQJZOZDHUEACDEUCXFXJXOD
      HXBXDXBFIZEJZGIZEJZMNZGXPKLUDZQJZOZFHOZRZXEXGHPZXJXOSZSXBXDYDXBXDYDHMUFZX
      BXDYDUGHTUHTMUFZYHUITMUJYIUKTMULUMHTMUNURHMFGECUOUSUPUQYEXERZYFYGYJYFRXJX
      MBXNYEYFXKXNPZXJXMSZXEYEYFRZYKRXLXHQJZPZYLYKYMXKXGUTZXKXGKLUDZQJZPZVAYOXG
      XKVBYMYPYOYSXBYFYPYOYDXBYFRZYPRXLXHYNYPXLXHUTYTXKXGEVCVDYTXHYNPZYPYTXHWAP
      ZUUAYTXHHHXGEVEVFZXHVGVHVKVIVJYMYSRXHXLMNZYOYDYFYSUUDXBYDYFRXHXSMNZGYROZY
      SUUDYCUUFFXGHXPXGUTZXTUUEGYBYRUUGYAYQQXPXGKLVLVMUUGXQXHXSMXPXGEVCVNVOVPUU
      EUUDGXKYRXRXKUTXSXLXHMXRXKEVCVQVPVRVSXBYFYSUUDYOSZYDYTYSRUUBXLWAPZUUHYTUU
      BYSUUCVKXBYFYSUUIYFYSRXBXKHPZUUIYFYQKQJZPZYSUUJYFYQHPUULXGWBYQVTWCUULYSRX
      KUUKPZUUJYSUULUUMYQXKKWDWEXKVTWFVRXBUUJRXLHHXKEVEVFWGWHUUBUUIRUUDXHXLWINZ
      YOUUBXHTPXLTPUUDUUNSUUIXHWMXLWMXHXLWJWKXHXLWLWNWOVJWPWQWGYOXJXMXHXLAWDWRV
      HVJWSWRWTXAWP $.
  $}

  ${
    $d A x $.  $d B x $.
    $( A bounded above set of positive integers is finite.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 28-Feb-2014.) $)
    nnubfi $p |- ( ( A C_ NN /\ B e. NN ) -> { x e. A | x < B } e. Fin ) $=
      ( cn wss wcel wa cc0 cfz co cfn cv wbr wi cn0 nnnn0 syl adantlr cr nnre
      clt crab fzfi wral cle adantr ad3antlr ad2antlr ltle syl2anc imp elfz2nn0
      ssel2 syl3anbrc ex ralrimiva rabss sylibr ssfi sylancr ) BDEZCDFZGZHCIJZK
      FALZCUAMZABUBZVDEZVGKFHCUCVCVFVEVDFZNZABUDVHVCVJABVCVEBFZGZVFVIVLVFGVEOFZ
      COFZVECUEMZVIVLVMVFVAVKVMVBVAVKGZVEDFZVMBDVEUMZVEPQRUFVBVNVAVKVFCPUGVLVFV
      OVLVESFZCSFZVFVONVAVKVSVBVPVQVSVRVETQRVBVTVAVKCTUHVECUIUJUKVECULUNUOUPVFA
      BVDUQURVDVGUSUT $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( An infinite set of positive integers is unbounded above.  (Contributed
       by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro,
       28-Feb-2014.) $)
    nninfnub $p |- ( ( A C_ NN /\ -. A e. Fin /\ B e. NN )
                                  -> { x e. A | B < x } =/= (/) ) $=
      ( vy cn wss cfn wcel wn cv clt wbr c0 wa wal wral wi sylibr cr adantlr co
      crab wne eq0 breq2 elrab notbii imnan sylbb2 alimi df-ral cle ssel2 nnred
      wceq nnre ad2antlr lenlt biimprd syl2anc ralimdva cc0 cfz fzfi cn0 nnnn0d
      w3a adantr nnnn0 ad3antlr simpr 3jca ex elfz2nn0 syl6ibr imp ssfi sylancr
      dfss3 syld syl5 syl5bi necon3bd an32s 3impa ) BEFZBGHZIZCEHZCAJZKLZABUBZM
      UCZWFWIWHWMWFWINZWHWMWNWGWLMWLMUODJZWLHZIZDOZWNWGDWLUDWRCWOKLZIZDBPZWNWGW
      RWOBHZWTQZDOXAWQXCDWQXBWSNZIXCWPXDWKWSAWOBWJWOCKUEUFUGXBWSUHUIUJWTDBUKRWN
      XAWOCULLZDBPZWGWNWTXEDBWNXBNZWOSHZCSHZWTXEQWFXBXHWIWFXBNZWOBEWOUMZUNTWIXI
      WFXBCUPUQXHXINXEWTWOCURUSUTVAWNXFWGWNXFNZVBCVCUAZGHBXMFZWGVBCVDXLWOXMHZDB
      PZXNWNXFXPWNXEXODBXGXEWOVEHZCVEHZXEVGZXOXGXEXSXGXENXQXRXEXGXQXEWFXBXQWIXJ
      WOXKVFTVHWIXRWFXBXECVIVJXGXEVKVLVMWOCVNVOVAVPDBXMVSRXMBVQVRVMVTWAWBWCVPWD
      WE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Topology
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( An open set is open in the subspace topology.  (Contributed by Jeff
     Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 15-Dec-2013.) $)
  subspopn $p |- ( ( ( J e. Top /\ A e. V ) /\ ( B e. J /\ B C_ A ) )
                                    -> B e. ( J |`t A ) ) $=
    ( ctop wcel wa wss crest co wi w3a elrestr wceq df-ss eleq1 sylbi syl5ibcom
    cin wb 3expa impr ) CEFZADFZGBCFZBAHZBCAIJZFZUCUDUEUFUHKUCUDUELBASZUGFZUFUH
    BACEDMUFUIBNUJUHTBAOUIBUGPQRUAUB $.

  ${
    $d J x y $.  $d N x $.  $d S x y $.
    $( Neighborhoods are closed under finite intersection.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 25-Nov-2013.) $)
    neificl $p |- ( ( ( J e. Top /\ N C_ ( ( nei ` J ) ` S ) ) /\
              ( N e. Fin /\ N =/= (/) ) ) -> |^| N e. ( ( nei ` J ) ` S ) ) $=
      ( vx vy ctop wcel cnei cfv wss cfn c0 wne wa cint simprl cv w3a wi wral
      wal cin innei 3expib ralrimivv fiint sylib wceq sseq1 neeq1 eleq1 3ancomb
      3anbi123d 3anass bitri syl6bb inteq eleq1d imbi12d spcgv syl5 com3l mpdi
      impl ) BFGZCABHIIZJZCKGZCLMZNZCOZVFGZVEVGVJNZVHVLVGVHVIPVHVEVMVLVEDQZVFJZ
      VNLMZVNKGZRZVNOZVFGZSZDUAZVHVMVLSZVEVNEQZUBVFGZEVFTDVFTWBVEWEDEVFVFVEVNVF
      GWDVFGWEABWDVNUCUDUEDEVFUFUGWAWCDCKVNCUHZVRVMVTVLWFVRVGVIVHRZVMWFVOVGVPVI
      VQVHVNCVFUIVNCLUJVNCKUKUMWGVGVHVIRVMVGVIVHULVGVHVIUNUOUPWFVSVKVFVNCUQURUS
      UTVAVBVCVD $.
  $}

  ${
    lpss2.1 $e |- X = U. J $.
    $( Limit points of a subset are limit points of the larger set.
       (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    lpss2 $p |- ( ( J e. Top /\ A C_ X /\ B C_ A ) ->
                          ( ( limPt ` J ) ` B ) C_ ( ( limPt ` J ) ` A ) ) $=
      ( lpss3 ) ABCDEF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Metric spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d M u v w x y $.  $d X u v w x y $.  $d Y u v w x y $.  $d F u v w x y $.
    $d A u v w x y $.  $d N u v w $.
    metf1o.2 $e |- N = ( x e. Y , y e. Y |-> ( ( F ` x ) M ( F ` y ) ) ) $.
    $( Use a bijection with a metric space to construct a metric on a set.
       (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    metf1o $p |- ( ( Y e. A /\ M e. ( Met ` X ) /\
                                F : Y -1-1-onto-> X ) -> N e. ( Met ` Y ) ) $=
      ( wcel cfv cv co wceq wb wral wa wi ffvelrn ex vu vv vw cme w3a cxp cr wf
      wf1o cc0 caddc cle wbr anim12d syl metcl 3expib sylan9r 3adant1 ralrimivv
      f1of fmpt2 sylib fveq2 oveq1d oveq2d ovex ovmpt2 eqeq1d adantl imp meteq0
      adantll 3expb adantlr syldan wf1 f1of1 f1fveq sylan 3bitrd mettri2 expcom
      ancoms impcom anassrs adantr oveq12d breq12d ralrimiva jca 3adantl1 ismet
      mpbird 3ad2ant1 mpbir2and ) HCJZEGUDKJZHGDUIZUEZFHUDKJZHHUFUGFUHZUALZUBLZ
      FMZUJNZXCXDNZOZXEUCLZXCFMZXIXDFMZUKMZULUMZUCHPZQZUBHPUAHPZWTALZDKZBLZDKZE
      MZUGJZBHPAHPXBWTYBABHHWRWSXQHJZXSHJZQZYBRWQWSYEXRGJZXTGJZQZWRYBWSHGDUHZYE
      YHRHGDVAZYIYCYFYDYGYIYCYFHGXQDSTYIYDYGHGXSDSTUNUOWRYFYGYBXRXTEGUPUQURUSUT
      ABHHYAUGFIVBVCWTXOUAUBHHWTXCHJZXDHJZQZXOWRWSYMXOWQWRWSQZYMQZXHXNYOXFXCDKZ
      XDDKZEMZUJNZYPYQNZXGYMXFYSOYNYMXEYRUJABXCXDHHYAYRFYPXTEMXQXCNXRYPXTEXQXCD
      VDVEXSXDNZXTYQYPEXSXDDVDZVFIYPYQEVGVHZVIVJYNYMYPGJZYQGJZQZYSYTOZWSYMUUFWR
      WSYMUUFWSYIYMUUFRYJYIYKUUDYLUUEYIYKUUDHGXCDSTYIYLUUEHGXDDSTUNZUOVKVMWRUUF
      UUGWSWRUUDUUEUUGYPYQEGVLVNVOVPWSYMYTXGOZWRWSHGDVQYMUUIHGDVRHGXCXDDVSVTVMW
      AYOXMUCHYOXIHJZQXMYRXIDKZYPEMZUUKYQEMZUKMZULUMZYNYMUUJUUOYNYMUUJQZUUFUUKG
      JZQZUUOWSUUPUURWRWSUUPUURWSYIUUPUURRYJYIYMUUFUUJUUQUUHYIUUJUUQHGXIDSTUNUO
      VKVMWRUURUUOWSUURWRUUOUUQUUFWRUUORZUUQUUDUUEUUSWRUUQUUDUUEUEUUOYPYQUUKEGW
      BWCVNWDWEVOVPWFYMUUJXMUUOOYNUUPXEYRXLUUNULYMXEYRNUUJUUCWGUUPXJUULXKUUMUKY
      KUUJXJUULNZYLUUJYKUUTABXIXCHHYAUULFUUKXTEMZXQXINXRUUKXTEXQXIDVDVEZXSXCNXT
      YPUUKEXSXCDVDVFIUUKYPEVGVHWDVOYLUUJXKUUMNZYKUUJYLUVCABXIXDHHYAUUMFUVAUVBU
      UAXTYQUUKEUUBVFIUUKYQEVGVHWDVMWHWIVMWNWJWKWLTUTWQWRXAXBXPQOWSUAUBUCCFHWMW
      OWP $.
  $}

  ${
    blssp.2 $e |- N = ( M |` ( S X. S ) ) $.
    $( A ball in the subspace metric.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by Mario Carneiro, 5-Jan-2014.) $)
    blssp $p |- ( ( ( M e. ( Met ` X ) /\ S C_ X ) /\
        ( Y e. S /\ R e. RR+ ) ) ->
      ( Y ( ball ` N ) R ) = ( ( Y ( ball ` M ) R ) i^i S ) ) $=
      ( cme cfv wcel wss wa crp cxmt cin cxr cbl co wceq metxmet simprl sseqin2
      ad2antrr simplr sylib eleqtrrd rpxr ad2antll blres syl3anc ) CEHIJZBEKZLZ
      FBJZAMJZLZLZCENIJZFEBOZJAPJZFADQIRFACQIRBOSUKURULUPCETUCUQFBUSUMUNUOUAUQU
      LUSBSUKULUPUDBEUBUEUFUOUTUMUNAUGUHDCFAEBGUIUJ $.
  $}

  ${
    $d k n x D $.  $d k n x F $.  $d k n x M $.  $d k n x N $.  $d k n x ph $.
    $d k n X $.
    mettrifi.2 $e |- ( ph -> D e. ( Met ` X ) ) $.
    mettrifi.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    mettrifi.4 $e |- ( ( ph /\ k e. ( M ... N ) ) -> ( F ` k ) e. X ) $.
    $( Generalized triangle inequality for arbitrary finite sums.  (Contributed
       by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro,
       4-Jun-2014.) $)
    mettrifi $p |- ( ph -> ( ( F ` M ) D ( F ` N ) ) <_
           sum_ k e. ( M ... ( N - 1 ) ) ( ( F ` k ) D ( F ` ( k + 1 ) ) ) ) $=
      ( cfz co wcel cfv c1 cle wbr wi wceq oveq2d vx vn cmin cv csu cuz eluzfz2
      caddc syl eleq1 fveq2 oveq1 sumeq1d breq12d imbi12d imbi2d cz cc0 a1i cme
      0le0 wral eluzfz1 ralrimiva eleq1d rspcv sylc met0 syl2anc c0 clt eluzel2
      zred ltm1d wb peano2zm fzn mpbid sum0 syl6eq 3brtr4d a1d peano2fzr adantl
      wa ex imim1d 3ad2ant1 simp3 cbvralv sylib 3impia mettri syl13anc cr metcl
      w3a rsp syl3anc readdcld fzfid adantr wss elfzuz3 sselda 3ad2antl1 syldan
      fzss2 elfzuz peano2uz eluzp1p1 uztrn elfzuzb sylanbrc sylan fsumrecl letr
      rspccva mpand fzssp1 eluzelz 3ad2ant2 zcnd npcan sylancl syl5sseq leadd1d
      ax-1cn simp2 recnd fveq2d oveq12d fsumm1 breq2d bitr4d 3imtr4d 3expia a2d
      cc pncan syld expcom uzind4 mpcom mpd ) AFEFKLZMZEDNZFDNZBLZEFOUCLZKLZCUD
      ZDNZUUMOUHLZDNZBLZCUEZPQZAFEUFNZMZUUGIEFUGUIUVAAUUGUUSRZIAUAUDZUUFMZUUHUV
      CDNZBLZEUVCOUCLZKLZUUQCUEZPQZRZRAEUUFMZUUHUUHBLZEEOUCLZKLZUUQCUEZPQZRZRZA
      UBUDZUUFMZUUHUVTDNZBLZEUVTOUCLZKLZUUQCUEZPQZRZRAUVTOUHLZUUFMZUUHUWIDNZBLZ
      EUWIOUCLZKLZUUQCUEZPQZRZRAUVBRUAUBEFUVCESZUVKUVRAUWRUVDUVLUVJUVQUVCEUUFUJ
      UWRUVFUVMUVIUVPPUWRUVEUUHUUHBUVCEDUKTUWRUVHUVOUUQCUWRUVGUVNEKUVCEOUCULTUM
      UNUOUPUVCUVTSZUVKUWHAUWSUVDUWAUVJUWGUVCUVTUUFUJUWSUVFUWCUVIUWFPUWSUVEUWBU
      UHBUVCUVTDUKTUWSUVHUWEUUQCUWSUVGUWDEKUVCUVTOUCULTUMUNUOUPUVCUWISZUVKUWQAU
      WTUVDUWJUVJUWPUVCUWIUUFUJUWTUVFUWLUVIUWOPUWTUVEUWKUUHBUVCUWIDUKTUWTUVHUWN
      UUQCUWTUVGUWMEKUVCUWIOUCULTUMUNUOUPUVCFSZUVKUVBAUXAUVDUUGUVJUUSUVCFUUFUJU
      XAUVFUUJUVIUURPUXAUVEUUIUUHBUVCFDUKTUXAUVHUULUUQCUXAUVGUUKEKUVCFOUCULTUMU
      NUOUPUVSEUQMZAUVQUVLAURURUVMUVPPURURPQAVAUSABGUTNMZUUHGMZUVMURSHAUVLUUNGM
      ZCUUFVBZUXDAUVAUVLIEFVCUIAUXECUUFJVDZUXEUXDCEUUFUUMESUUNUUHGUUMEDUKVEVFVG
      ZUUHBGVHVIAUVPVJUUQCUEURAUVOVJUUQCAUVNEVKQZUVOVJSZAEAEAUVAUXBIEFVLUIZVMVN
      AUXBUVNUQMZUXIUXJVOUXKAUXBUXLUXKEVPUIEUVNVQVIVRUMUUQCVSVTWAWBUSUVTUUTMZAU
      WHUWQAUXMUWHUWQRAUXMWEZUWHUWJUWGRUWQUXNUWJUWAUWGUXMUWJUWARAUXMUWJUWAUVTEF
      WCWFWDZWGUXNUWJUWGUWPAUXMUWJUWGUWPRAUXMUWJWQZUWCUWBUWKBLZUHLZEUVTKLZUUQCU
      EZPQZUWLUXTPQZUWGUWPUXPUWLUXRPQZUYAUYBUXPUXCUXDUWKGMZUWBGMZUYCAUXMUXCUWJH
      WHZAUXMUXDUWJUXHWHZUXPUWJUXFUYDAUXMUWJWIZAUXMUXFUWJUXGWHZUXEUYDCUWIUUFUUM
      UWISUUNUWKGUUMUWIDUKVEVFVGZUXPUYEUBUUFVBZUWAUYEUXPUXFUYKUYIUXEUYECUBUUFUU
      MUVTSZUUNUWBGUUMUVTDUKZVEWJWKZAUXMUWJUWAUXOWLZUYEUBUUFWRVGZUUHUWKUWBBGWMW
      NUXPUWLWOMZUXRWOMUXTWOMUYCUYAWEUYBRUXPUXCUXDUYDUYQUYFUYGUYJUUHUWKBGWPWSUX
      PUWCUXQUXPUXCUXDUYEUWCWOMUYFUYGUYPUUHUWBBGWPWSZUXPUXCUYEUYDUXQWOMUYFUYPUY
      JUWBUWKBGWPWSZWTUXPUXSUUQCUXPEUVTXAUXPUUMUXSMZWEZUXCUXEUUPGMZUUQWOMZUXPUX
      CUYTUYFXBUXPUYTUUMUUFMZUXEUXPUXSUUFUUMUXPFUVTUFNMZUXSUUFXCUXPUWAVUEUYOUVT
      EFXDUIUVTEFXHUIXEAUXMVUDUXEUWJJXFXGUXPUYTUUOUUFMZVUBVUAUUOUUTMZFUUOUFNZMZ
      VUFVUAUUMUUTMZVUGUYTVUJUXPUUMEUVTXIWDEUUMXJUIVUAFUWIUFNMZUWIVUHMZVUIUXPVU
      KUYTUXPUWJVUKUYHUWIEFXDUIXBVUAUVTUUMUFNMZVULUYTVUMUXPUUMEUVTXDWDUUMUVTXKU
      IUWIFUUOXLVIUUOEFXMXNUXPUYKVUFVUBUYNUYEVUBUBUUOUUFUVTUUOSUWBUUPGUVTUUODUK
      VEXRXOXGUUNUUPBGWPWSZXPUWLUXRUXTXQWSXSUXPUWGUXRUWFUXQUHLZPQUYAUXPUWCUWFUX
      QUYRUXPUWEUUQCUXPEUWDXAUXPUUMUWEMUYTVUCUXPUWEUXSUUMUXPEUWDOUHLZKLUWEUXSEU
      WDXTUXPVUPUVTEKUXPUVTYSMZOYSMZVUPUVTSUXPUVTUXMAUVTUQMUWJEUVTYAYBYCZYHUVTO
      YDYETYFXEVUNXGXPUYSYGUXPUXTVUOUXRPUXPUUQUXQCEUVTAUXMUWJYIVUAUUQVUNYJUYLUU
      NUWBUUPUWKBUYMUYLUUOUWIDUUMUVTOUHULYKYLYMYNYOUXPUWOUXTUWLPUXPUWNUXSUUQCUX
      PUWMUVTEKUXPVUQVURUWMUVTSVUSYHUVTOYTYETUMYNYPYQYRUUAUUBYRUUCUUDUUE $.
  $}

  ${
    $d j k n x D $.  $d j k n x F $.  $d j k x G $.  $d x J $.  $d j k n x X $.
    $d j k m n x A $.  $d j k m n x B $.  $d j k n x ph $.  $d j k x Y $.
    lmclim2.2 $e |- ( ph -> D e. ( Met ` X ) ) $.
    lmclim2.3 $e |- ( ph -> F : NN --> X ) $.
    ${
      lmclim2.4 $e |- J = ( MetOpen ` D ) $.
      lmclim2.5 $e |- G = ( x e. NN |-> ( ( F ` x ) D Y ) ) $.
      lmclim2.6 $e |- ( ph -> Y e. X ) $.
      $( A sequence in a metric space converges to a point iff the distance
         between the point and the elements of the sequence converges to 0.
         (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario
         Carneiro, 5-Jun-2014.) $)
      lmclim2 $p |- ( ph -> ( F ( ~~>t ` J ) Y <-> G ~~> 0 ) ) $=
        ( vk vj cfv wbr wcel wral cn clm cv co clt cuz wrex crp wa cc0 cli cxmt
        cme metxmet syl nnuz 1zzd eqidd lmmbrf cabs cvv cmpt nnex mptex eqeltri
        c1 a1i wceq fveq2 oveq1d fvmpt adantl cr adantr ffvelrnda metcl syl3anc
        recnd clim0c wb eluznn cle metge0 absidd breq1d sylan2 anassrs ralbidva
        ovex rexbidva ralbidv biantrurd 3bitrrd bitrd ) ADHFUAPQHGRZNUBZDPZHCUC
        ZBUBZUDQZNOUBZUEPZSZOTUFZBUGSZUHZEUIUJQZABWPCHONDFVEGTKACGULPRZCGUKPRIC
        GUMUNUOAUPZAWOTRZUHZWPUQJURAXFWQUSPZWRUDQZNXASZOTUFZBUGSXDXEABWQONEVEUT
        TUOXHEUTRAEBTWRDPZHCUCZVAUTLBTXPVBVCVDVFXIWOEPWQVGABWOXPWQTEWRWOVGXOWPH
        CWRWODVHVILWPHCWHVJVKXJWQXJXGWPGRZWNWQVLRAXGXIIVMZATGWODJVNZAWNXIMVMZWP
        HCGVOVPZVQVRAXNXCBUGAXMXBOTAWTTRZUHXLWSNXAAYBWOXARZXLWSVSZYBYCUHAXIYDWO
        WTVTXJXKWQWRUDXJWQYAXJXGXQWNUIWQWAQXRXSXTWPHCGWBVPWCWDWEWFWGWIWJAWNXDMW
        KWLWM $.
    $}

    geomcau.4 $e |- ( ph -> A e. RR ) $.
    geomcau.5 $e |- ( ph -> B e. RR+ ) $.
    geomcau.6 $e |- ( ph -> B < 1 ) $.
    geomcau.7 $e |- ( ( ph /\ k e. NN ) ->
      ( ( F ` k ) D ( F ` ( k + 1 ) ) ) <_ ( A x. ( B ^ k ) ) ) $.
    $( If the distance between consecutive points in a sequence is bounded by a
       geometric sequence, then the sequence is Cauchy.  (Contributed by Jeff
       Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
       5-Jun-2014.) $)
    geomcau $p |- ( ph -> F e. ( Cau ` D ) ) $=
      ( vm cfv wcel co wbr cn cmul vj vn vx cca clt cuz wral wrex crp cexp cmin
      cv c1 cdiv cabs cmpt cc0 cli cn0 cvv nnuz 1zzd rpcnd rpred rpge0d eqbrtrd
      absidd expcnv cr resubcl sylancr wb posdif sylancl mpbid elrpd rerpdivcld
      1re recnd nnex mptex a1i wa cc wceq nnnn0 adantl oveq2 eqid ovex fvmpt cz
      syl nnz rpexpcl syl2an eqeltrd adantr mulcomd weq oveq1d oveq2d climmulc2
      3eqtr4d mul01d breqtrd remulcld clim0c wi uzid fveq2d breq1d 3syl cle cme
      rspcv wf simpl ffvelrn eluznn metcl syl3anc csu ad2antrl ad2antrr eluznn0
      nn0zd sylan reexpcld caddc cfz simpll elfzuz sylan2 fsumrecl mpbird letrd
      syl2anc adantlr eqidd geolim2 eqtr4d isermulc2 rpexpcld wne rpne0d div12d
      isumclim cdm seqex breldm isumrecl eqeltrrd abscld fzfid simprl ffvelrnda
      cseq peano2nn simprr mettrifi fsumle wss fzssuz metge0 divge0d ledivmul2d
      0red mulge0d isumless leabsd rpre ad2antlr lelttr mpand anassrs ralrimdva
      syld reximdva ralimdva mpd cxmt metxmet iscauf ) AFDUDOPUAULZFOZUBULZFOZD
      QZUCULZUERZUBUWEUFOZUGZUASUHZUCUIUGZACUWGUJQZBUMCUKQZUNQZTQZUOOZUWJUERZUB
      UWLUGZUASUHZUCUIUGZUWOANSCNULZUJQZUWRTQZUPZUQURRUXDAUXHUWRUQTQUQURAUQUWRU
      BNUSUXFUPZUXHUMUTSVAAVBZACNACKVCZACUOOZCUMUEACACKVDZACKVEVGLVFZVHAUWRABUW
      QJAUWQAUMVIPZCVIPZUWQVIPVRUXMUMCVJVKZACUMUERZUQUWQUERZLAUXPUXOUXRUXSVLUXM
      VRCUMVMVNVOVPZVQZVSZUXHUTPANSUXGVTWAWBZAUWGSPZWCZUWGUXIOZUWPWDUYEUWGUSPZU
      YFUWPWEUYDUYGAUWGWFWGNUWGUXFUWPUSUXIUXEUWGCUJWHZUXIWICUWGUJWJWKWMZUYEUWPA
      CUIPZUWGWLPUWPUIPUYDKUWGWNCUWGWOWPZVCZWQUYEUWSUWRUWPTQUWGUXHOZUWRUYFTQUYE
      UWPUWRUYLAUWRWDPUYDUYBWRWSUYDUYMUWSWEANUWGUXGUWSSUXHNUBWTUXFUWPUWRTUYHXAU
      XHWIUWPUWRTWJWKWGZUYEUYFUWPUWRTUYIXBXDXCAUWRUYBXEXFAUCUWSUAUBUXHUMUTSVAUX
      JUYCUYNUYEUWSUYEUWPUWRUYEUWPUYKVDAUWRVIPUYDUYAWRXGVSXHVOAUXCUWNUCUIAUWJUI
      PZWCZUXBUWMUASUYPUWESPZWCZUXBCUWEUJQZUWRTQZUOOZUWJUERZUWMUYRUWEWLPZUWEUWL
      PUXBVUBXIUYQVUCUYPUWEWNWGUWEXJUXAVUBUBUWEUWLUBUAWTZUWTVUAUWJUEVUDUWSUYTUO
      VUDUWPUYSUWRTUWGUWECUJWHXAXKXLXPXMUYRVUBUWKUBUWLUYPUYQUWGUWLPZVUBUWKXIUYP
      UYQVUEWCZWCZUWIVUAXNRZVUBUWKAVUFVUHUYOAVUFWCZUWIUYTVUAVUIDGXOOPZUWFGPZUWH
      GPZUWIVIPZAVUJVUFHWRZASGFXQZUYQVUKVUFIUYQVUEXRSGUWEFXSWPAVUOUYDVULVUFIUWG
      UWEXTSGUWGFXSWPUWFUWHDGYAYBZVUIUWLBCEULZUJQZTQZEYCZUYTVIVUIVUSUYTENUWLBUX
      FTQZUPZUWEUWLUWLWIZVUIUWEUYQUWEUSPZAVUEUWEWFYDZYGZVUQUWLPZVUQVVBOZVUSWEVU
      INVUQVVAVUSUWLVVBNEWTUXFVURBTUXEVUQCUJWHZXBVVBWIBVURTWJWKWGZVUIVVGWCZVUSV
      VKBVURABVIPZVUFVVGJYEZVVKCVUQAUXPVUFVVGUXMYEVUIVVDVVGVUQUSPVVEVUQUWEYFYHY
      IZXGZVSVUIYJVVBUWEUURZBUYSUWQUNQZTQZUYTURVUIVVQBENUWLUXFUPZVVBUWEUWLVVCVV
      FABWDPVUFABJVSWRZVUICEVVSUWEACWDPVUFUXKWRAUXLUMUERVUFUXNWRVVEVVGVUQVVSOZV
      URWEVUINVUQUXFVURUWLVVSVVIVVSWICVUQUJWJWKWGZUUAVVKVWAVURWDVWBVVKVURVVNVSW
      QVVKVVHVUSBVWATQVVJVVKVWAVURBTVWBXBUUBUUCZVUIBUYSUWQVVTVUIUYSVUICUWEAUYJV
      UFKWRVVFUUDVCAUWQWDPVUFAUWQUXQVSWRAUWQUQUUEVUFAUWQUXTUUFWRUUGXFUUHZVUIVUS
      EVVBUWEUWLVVCVVFVVJVVOVUIVVPVVRURRVVPURUUIPVWCVVPVVRURYJVVBUWEUUJBVVQTWJU
      UKWMZUULZUUMZVUIUYTVUIUYTVWGVSUUNZVUIUWIVUTUYTXNVUIUWIUWEUWGUMUKQZYKQZVUQ
      FOZVUQUMYJQZFOZDQZEYCZVUTVUPVUIVWJVWNEVUIUWEVWIUUOZVUIVUQVWJPZWCZAVUQSPZV
      WNVIPZAVUFVWQYLZVWQVUIVVGVWSVUQUWEVWIYMZVUIUYQVVGVWSAUYQVUEUUPVUQUWEXTYHZ
      YNZAVWSWCZVUJVWKGPZVWMGPZVWTAVUJVWSHWRZASGVUQFIUUQZAVUOVWLSPVXGVWSIVUQUUS
      SGVWLFXSWPZVWKVWMDGYAYBZYRZYOZVWFVUIDEFUWEUWGGVUNAUYQVUEUUTVUQUWEUWGYKQPV
      UIVVGVXFVUQUWEUWGYMVVKAVWSVXFAVUFVVGYLZVXCVXIYRYNUVAVUIVWOVWJVUSEYCVUTVXM
      VUIVWJVUSEVWPVWQVUIVVGVUSVIPVXBVVOYNZYOVWFVUIVWJVWNVUSEVWPVXLVXOVWRAVWSVW
      NVUSXNRZVXAVXDMYRUVBVUIVWJVUSEVVBUWEUWLVVCVVFVWPVWJUWLUVCVUIUWEVWIUVDWBVV
      JVVOVVKBVURVVMVVNVVKAVWSUQBXNRVXNVXCVXEUQVWNVURUNQZBVXEUVHVXEVWNVURVXKAUY
      JVUQWLPVURUIPZVWSKVUQWNCVUQWOWPZVQAVVLVWSJWRZVXEVWNVURVXKVXSVXEVUJVXFVXGU
      QVWNXNRVXHVXIVXJVWKVWMDGUVEYBUVFVXEVXQBXNRVXPMVXEVWNBVURVXKVXTVXSUVGYPYQY
      RVVKVURVVKAVWSVXRVXNVXCVXSYRVEUVIVWEUVJYQYQVWDXFVUIUYTVWGUVKYQYSVUGVUMVUA
      VIPZUWJVIPZVUHVUBWCUWKXIAVUFVUMUYOVUPYSAVUFVYAUYOVWHYSUYOVYBAVUFUWJUVLUVM
      UWIVUAUWJUVNYBUVOUVPUVQUVRUVSUVTUWAAUCUWHUWFDUAUBFUMGSVAAVUJDGUWBOPHDGUWC
      WMUXJUYEUWHYTAUYQWCUWFYTIUWDYP $.
  $}

  ${
    $d j k m n x D $.  $d j k m n x G $.  $d j k m n x ph $.  $d j k m n x X $.
    $d j k m x F $.  $d k m n N $.  $d j m n x W $.  $d j k m x Z $.
    $d j n M $.
    caures.1 $e |- Z = ( ZZ>= ` M ) $.
    caures.3 $e |- ( ph -> M e. ZZ ) $.
    caures.4 $e |- ( ph -> D e. ( Met ` X ) ) $.
    ${
      caures.5 $e |- ( ph -> F e. ( X ^pm CC ) ) $.
      $( The restriction of a Cauchy sequence to an upper set of integers is
         Cauchy.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario
         Carneiro, 5-Jun-2014.) $)
      caures $p |- ( ph ->
                     ( F e. ( Cau ` D ) <-> ( F |` Z ) e. ( Cau ` D ) ) ) $=
        ( vk vj vx cc co wcel cfv wral wa cvv cpm cdm clt wbr w3a cuz wrex cres
        cv crp uztrn2 adantll biantrurd dmres syl6bbr 3anbi1d ralbidva rexbidva
        cca elin2 ralbidv cme wss elfvdm cnex ssid cz uzssz zsscn sstri eqsstri
        pmss12g mpanl12 sylancl fvex eqeltri pmresg sylancr sseldd 3bitr3d cxmt
        syl metxmet eqidd iscau4 wceq fvres adantl 3bitr4d ) ACENUAOZPZKUIZCUBZ
        PZWLCQZEPZWOLUIZCQZBOMUIUCUDZUEZKWQUFQZRZLFUGZMUJRZSZCFUHZWJPZWLXFUBZPZ
        WPWSUEZKXARZLFUGZMUJRZSZCBUSQZPXFXOPAXDXMXEXNAXCXLMUJAXBXKLFAWQFPZSZWTX
        JKXAXQWLXAPZSZWNXIWPWSXSWNWLFPZWNSXIXSXTWNXPXRXTADWLWQFGUKULUMWLFWMXHCF
        UNUTUOUPUQURVAAWKXDJUMAXGXMAEFUAOZWJXFAEVBUBZPZNTPZYAWJVCZABEVBQPZYCIBE
        VBVDWBVEEEVCFNVCYCYDSYEEVFFDUFQZNGYGVGNDVHVIVJVKEFENYBTVLVMVNAFTPWKXFYA
        PFYGTGDUFVOVPJEFNCTVQVRVSUMVTAMWOWRBLKCDEFGAYFBEWAQPIBEWCWBZHAXTSWOWDXQ
        WRWDWEAMWOWRBLKXFDEFGYHHXTWLXFQWOWFAWLFCWGWHXPWQXFQWRWFAWQFCWGWHWEWI $.
    $}

    caushft.4 $e |- W = ( ZZ>= ` ( M + N ) ) $.
    caushft.5 $e |- ( ph -> N e. ZZ ) $.
    caushft.7 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) = ( G ` ( k + N ) ) ) $.
    caushft.8 $e |- ( ph -> F e. ( Cau ` D ) ) $.
    caushft.9 $e |- ( ph -> G : W --> X ) $.
    $( A shifted Cauchy sequence is Cauchy.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by Mario Carneiro, 5-Jun-2014.) $)
    caushft $p |- ( ph -> G e. ( Cau ` D ) ) $=
      ( cfv wcel vn vm vx vj cca cv clt wbr cuz wral wrex crp cdm caddc w3a cpm
      co cc wa cme cxmt metxmet syl wceq ralrimiva fveq2 fveq2d eqeq12d rspccva
      oveq1 sylan iscau4 simprd cz eleq2i biimpi eluzadd syl2anr syl6eleqr cmin
      mpbid simplr syl6eleq eluzelz ad2antrr simpr eluzsub syl3anc simp3 ralimi
      oveq1d breq1d rspcv syl2im adantl npcand wf uztrn2 ffvelrnd adantr metsym
      zcnd eqtrd sylibd ralrimdva raleqbidv rspcev syl6an rexlimdva ralimdv mpd
      zaddcld eqidd iscauf mpbird ) AEBUESZTUAUFZESZUBUFZESZBUQZUCUFZUGUHZUBXQU
      ISZUJZUAHUKZUCULUJZACUFZDUMTZYHGUNUQZESZITZYKUDUFZGUNUQZESZBUQZYBUGUHZUOZ
      CYMUISZUJZUDJUKZUCULUJZYGADIURUPUQTZUUBADXPTUUCUUBUSQAUCYKYOBUDCDFIJKABIU
      TSTZBIVASTMBIVBVCZLPAYHDSZYKVDZCJUJYMJTZYMDSZYOVDZAUUGCJPVEUUGUUJCYMJYHYM
      VDZUUFUUIYKYOYHYMDVFUUKYJYNEYHYMGUNVJVGVHVIVKVLWAVMAUUAYFUCULAYTYFUDJAUUH
      USZYNHTZYTYOXTBUQZYBUGUHZUBYNUISZUJZYFUULYNFGUNUQZUISZHUUHYMFUISZTZGVNTZY
      NUUSTAUUHUVAJUUTYMKVOVPOGFYMVQVRNVSZUULYTUUOUBUUPUULXSUUPTZUSZYTXSGVTUQZG
      UNUQZESZYOBUQZYBUGUHZUUOUVEUVFYSTZYTYQCYSUJUVJUVEYMVNTZUVBUVDUVKUVEUVAUVL
      UVEYMJUUTAUUHUVDWBKWCFYMWDVCAUVBUUHUVDOWEUULUVDWFGYMXSWGWHYRYQCYSYIYLYQWI
      WJYQUVJCUVFYSYHUVFVDZYPUVIYBUGUVMYKUVHYOBUVMYJUVGEYHUVFGUNVJVGWKWLWMWNUVE
      UVIUUNYBUGUVEUVIXTYOBUQZUUNUVEUVHXTYOBUVEUVGXSEUVEXSGUVEXSUVDXSVNTUULYNXS
      WDWOXBAGURTUUHUVDAGOXBWEWPVGWKUVEUUDXTITYOITZUVNUUNVDAUUDUUHUVDMWEUVEHIXS
      EAHIEWQZUUHUVDRWEUULUUMUVDXSHTZUVCUURXSYNHNWRVKWSUULUVOUVDUULHIYNEAUVPUUH
      RWTUVCWSWTXTYOBIXAWHXCWLXDXEYEUUQUAYNHXQYNVDZYCUUOUBYDUUPXQYNUIVFUVRYAUUN
      YBUGUVRXRYOXTBXQYNEVFWKWLXFXGXHXIXJXKAUCXTXRBUAUBEUURIHNUUEAFGLOXLAUVQUSX
      TXMAXQHTUSXRXMRXNXO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Continuous maps and homeomorphisms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x $.
    constcncf.1 $e |- F = ( x e. CC |-> A ) $.
    $( A constant function is a continuous function on ` CC ` .  (Contributed
       by Jeff Madsen, 2-Sep-2009.)  (Moved into main set.mm as ~ cncfmptc and
       may be deleted by mathbox owner, JM. --MC 12-Sep-2015.)  (Revised by
       Mario Carneiro, 12-Sep-2015.) $)
    constcncf $p |- ( A e. CC -> F e. ( CC -cn-> CC ) ) $=
      ( cc wcel cmpt ccncf co wss ssid cncfmptc mp3an23 syl5eqel ) BEFZCAEBGZEE
      HIZDOEEJZRPQFEKZSABEELMN $.
  $}

  ${
    idcncf.1 $e |- F = ( x e. CC |-> x ) $.
    $( The identity function is a continuous function on ` CC ` .  (Contributed
       by Jeff Madsen, 11-Jun-2010.)  (Moved into main set.mm as ~ cncfmptid
       and may be deleted by mathbox owner, JM. --MC 12-Sep-2015.)  (Revised by
       Mario Carneiro, 12-Sep-2015.) $)
    idcncf $p |- F e. ( CC -cn-> CC ) $=
      ( cc cv cmpt ccncf co wss wcel ssid cncfmptid mp2an eqeltri ) BADAEFZDDGH
      ZCDDIZQOPJDKZRADDLMN $.
  $}

  ${
    $d A x $.
    sub1cncf.1 $e |- F = ( x e. CC |-> ( x - A ) ) $.
    $( Subtracting a constant is a continuous function.  (Contributed by Jeff
       Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
       12-Sep-2015.) $)
    sub1cncf $p |- ( A e. CC -> F e. ( CC -cn-> CC ) ) $=
      ( cc wcel cv cmin co cmpt ccncf ccnfld ctopn cfv ctx ccn subcn a1i idcncf
      eqid wss ssid cncfmptc mp3an23 cncfmpt2f syl5eqel ) BEFZCAEAGZBHIJEEKIZDU
      GAUHBHLMNZEUJTZHUJUJOIUJPIFUGUJUKQRAEUHJZUIFUGAULULTSRUGEEUAZUMAEBJUIFEUB
      ZUNABEEUCUDUEUF $.
  $}

  ${
    $d A x $.
    sub2cncf.1 $e |- F = ( x e. CC |-> ( A - x ) ) $.
    $( Subtraction from a constant is a continuous function.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario Carneiro,
       12-Sep-2015.) $)
    sub2cncf $p |- ( A e. CC -> F e. ( CC -cn-> CC ) ) $=
      ( cc wcel cv cmin cmpt ccncf ccnfld ctopn cfv eqid ctx ccn subcn a1i wss
      co ssid cncfmptc mp3an23 idcncf cncfmpt2f syl5eqel ) BEFZCAEBAGZHTIEEJTZD
      UGABUHHKLMZEUJNZHUJUJOTUJPTFUGUJUKQRUGEESZULAEBIUIFEUAZUMABEEUBUCAEUHIZUI
      FUGAUNUNNUDRUEUF $.
  $}

  ${
    $d J x $.  $d K x $.  $d F x $.  $d X x $.  $d Y x $.  $d A x $.  $d B x $.
    cnres2.1 $e |- X = U. J $.
    cnres2.2 $e |- Y = U. K $.
    $( The restriction of a continuous function to a subset is continuous.
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro,
       15-Dec-2013.) $)
    cnres2 $p |- ( ( ( J e. Top /\ K e. Top ) /\ ( A C_ X /\ B C_ Y ) /\
                ( F e. ( J Cn K ) /\ A. x e. A ( F ` x ) e. B ) ) -> ( F |` A )
                  e. ( ( J |`t A ) Cn ( K |`t B ) ) ) $=
      ( ctop wcel wa wss ccn co cfv crest syl2anc wb cv wral cres simp3l simp2l
      w3a cnrest ctopon crn simp1r toptopon sylib cima df-ima simp3r cdm wf cnf
      wfun ffun 3syl wceq fdm funimass4 mpbird syl5eqssr simp2r cnrest2 syl3anc
      sseqtr4d mpbid ) EKLZFKLZMZBGNZCHNZMZDEFOPLZAUADQCLABUBZMZUFZDBUCZEBRPZFO
      PLZWBWCFCRPOPLZWAVRVOWDVNVQVRVSUDZVNVOVPVTUEZBDEFGIUGSWAFHUHQLZWBUIZCNVPW
      DWETWAVMWHVLVMVQVTUJFHJUKULWAWIDBUMZCDBUNWAWJCNZVSVNVQVRVSUOWADUSZBDUPZNW
      KVSTWAVRGHDUQZWLWFDEFGHIJURZGHDUTVAWABGWMWGWAVRWNWMGVBWFWOGHDVCVAVJABCDVD
      SVEVFVNVOVPVTVGCWBWCFHVHVIVK $.
  $}

  $( A continuous function is continuous onto its image.  (Contributed by Jeff
     Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 15-Dec-2013.) $)
  cnresima $p |- ( ( J e. Top /\ K e. Top /\ F e. ( J Cn K ) )
                            -> F e. ( J Cn ( K |`t ran F ) ) ) $=
    ( ctop wcel ccn co w3a crn crest simp3 cuni ctopon cfv wss wb eqid toptopon
    simp2 sylib ssid a1i wf cnf frn syl 3ad2ant3 cnrest2 syl3anc mpbid ) BDEZCD
    EZABCFGEZHZUMABCAIZJGFGEZUKULUMKUNCCLZMNEZUOUOOZUOUQOZUMUPPUNULURUKULUMSCUQ
    UQQZRTUSUNUOUAUBUMUKUTULUMBLZUQAUCUTABCVBUQVBQVAUDVBUQAUEUFUGUOABCUQUHUIUJ
    $.

  ${
    $d A x $.  $d B x $.  $d J x $.  $d K x $.
    cncfres.1 $e |- A C_ CC $.
    cncfres.2 $e |- B C_ CC $.
    cncfres.3 $e |- F = ( x e. CC |-> C ) $.
    cncfres.4 $e |- G = ( x e. A |-> C ) $.
    cncfres.5 $e |- ( x e. A -> C e. B ) $.
    cncfres.6 $e |- F e. ( CC -cn-> CC ) $.
    cncfres.7 $e |- J = ( MetOpen ` ( ( abs o. - ) |` ( A X. A ) ) ) $.
    cncfres.8 $e |- K = ( MetOpen ` ( ( abs o. - ) |` ( B X. B ) ) ) $.
    $( A continuous function on complex numbers restricted to a subset.
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro,
       12-Sep-2015.) $)
    cncfres $p |- G e. ( J Cn K ) $=
      ( ccncf co wcel cc ccn wf fmpti wss wb cmpt cres wceq resmpt ax-mp eqtr4i
      eqeltrri rescncf mp2 eqeltri cncffvrn mp2an mpbir cabs cmin ccom cxp eqid
      cncfmet eleqtri ) FBCQRZGHUARZFVFSZBCFUBZABCDFLMUCCTUDZFBTQRZSVHVIUEJFATD
      UFZBUGZVKFABDUFZVMLBTUDZVMVNUHIATBDUIUJUKVOVLTTQRZSVMVKSIEVLVPKNULTTBVLUM
      UNUOBTCFUPUQURVOVJVFVGUHIJBCUSUTVAZBBVBUGZVQCCVBUGZGHVRVCVSVCOPVDUQVE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Boundedness
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c TotBnd $.
  $c Bnd $.
  $( Extend class notation with the class of totally bounded metric spaces. $)
  ctotbnd $a class TotBnd $.
  $( Extend class notation with the class of bounded metric spaces. $)
  cbnd $a class Bnd $.

  ${
    $d b d m v x y $.
    $( Define the class of totally bounded metrics.  A metric space is totally
       bounded iff it can be covered by a finite number of balls of any given
       radius.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    df-totbnd $a |- TotBnd = ( x e. _V |-> { m e. ( Met ` x ) |
      A. d e. RR+ E. v e. Fin ( U. v = x /\
        A. b e. v E. y e. x b = ( y ( ball ` m ) d ) ) } ) $.
  $}

  ${
    $d b d m v x M $.  $d b d m v x y X $.
    $( The predicate "is a totally bounded metric space".  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    istotbnd $p |- ( M e. ( TotBnd ` X ) <-> ( M e. ( Met ` X ) /\
      A. d e. RR+ E. v e. Fin ( U. v = X /\
        A. b e. v E. x e. X b = ( x ( ball ` M ) d ) ) ) ) $=
      ( vm vy ctotbnd cfv wcel cme cv wceq wrex wral wa cfn crp ralbidv cvv cbl
      cuni co elfvex crab fveq2 eqeq2 rexeq anbi12d rexbidv rabeqbidv df-totbnd
      adantr fvex rabex fvmpt eleq2d oveqd eqeq2d anbi2d elrab syl6bb pm5.21nii
      ) CDIJZKZDUAKZCDLJZKZBMZUCZDNZEMZAMZFMZCUBJZUDZNZADOZEVJPZQZBROZFSPZQZCDI
      UEVIVGWCCDLUEUNVGVFCVLVMVNVOGMZUBJZUDZNZADOZEVJPZQZBROZFSPZGVHUFZKWDVGVEW
      NCHDVKHMZNZWHAWOOZEVJPZQZBROZFSPZGWOLJZUFWNUAIWODNZXAWMGXBVHWODLUGXCWTWLF
      SXCWSWKBRXCWPVLWRWJWODVKUHXCWQWIEVJWHAWODUITUJUKTULHABGEFUMWMGVHDLUOUPUQU
      RWMWCGCVHWECNZWLWBFSXDWKWABRXDWJVTVLXDWIVSEVJXDWHVRADXDWGVQVMXDWFVPVNVOWE
      CUBUGUSUTUKTVAUKTVBVCVD $.
  $}

  ${
    $d M d v b x $.  $d X d v b x $.
    $( The predicate "is a totally bounded metric space."  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    istotbnd2 $p |- ( M e. ( Met ` X ) -> ( M e. ( TotBnd ` X ) <->
       A. d e. RR+ E. v e. Fin ( U. v = X /\
         A. b e. v E. x e. X b = ( x ( ball ` M ) d ) ) ) ) $=
      ( ctotbnd cfv wcel cme cv cuni wceq cbl co wrex wral wa cfn crp istotbnd
      baib ) CDGHICDJHIBKZLDMEKAKFKCNHOMADPEUCQRBSPFTQABCDEFUAUB $.
  $}

  ${
    $d b d f v w x M $.  $d b d f v w x X $.
    $( A metric space is totally bounded iff there is a finite &epsilon;-net
       for every positive &epsilon;.  This differs from the definition in
       providing a finite set of ball centers rather than a finite set of
       balls.  (Contributed by Mario Carneiro, 12-Sep-2015.) $)
    istotbnd3 $p |- ( M e. ( TotBnd ` X ) <-> ( M e. ( Met ` X ) /\ A. d e. RR+
      E. v e. ( ~P X i^i Fin ) U_ x e. v ( x ( ball ` M ) d ) = X ) ) $=
      ( vw vb vf cfv wcel cv wceq wrex wral wa cfn crp ciun wss syl ctotbnd cme
      cbl co cpw cin istotbnd wf wex wi oveq1 eqeq2d ac6sfi ex ad2antlr simprrl
      cuni crn frn wfo simplr wfn ffn dffn4 sylib syl2anc elfpw sylanbrc eleq2d
      wb rexrn eliun 3bitr4g eqrdv simprrr iuneq2 uniiun simprl syl5eqr 3eqtr2d
      fofi iuneq1 eqeq1d rspcev expr exlimdv syld expimpd rexlimdva cab simprbi
      cmpt mptfi rnfi 3syl ovex dfiun3 simprr eqid rnmpt simplbi ssrexv ss2abdv
      ad2antrl syl5eqss ssabral syl5bbr anbi12d syl12anc impbid ralbidv pm5.32i
      unieq sseq1 bitri ) CDUAIJCDUBIJZFKZUQZDLZGKZAKZEKZCUCIZUDZLZADMZGXQNZOZF
      PMZEQNZOXPABKZYDRZDLZBDUEPUFZMZEQNZOAFCDGEUGXPYJYPXPYIYOEQXPYIYOXPYHYOFPX
      PXQPJZOZXSYGYOYRXSOZYGXQDHKZUHZXTXTYTIZYBYCUDZLZGXQNZOZHUIZYOYQYGUUGUJXPX
      SYQYGUUGYEUUDGAXQDHYAUUBLZYDUUCXTYAUUBYBYCUKZULUMUNUOYSUUFYOHYRXSUUFYOYRX
      SUUFOZOZYTURZYNJZAUULYDRZDLZYOUUKUULDSZUULPJZUUMUUKUUAUUPYRXSUUAUUEUPZXQD
      YTUSTUUKYQXQUULYTUTZUUQXPYQUUJVAUUKYTXQVBZUUSUUKUUAUUTUURXQDYTVCTZXQYTVDV
      EXQUULYTWAVFUULDVGVHUUKUUNGXQUUCRZGXQXTRZDUUKBUUNUVBUUKYKYDJZAUULMZYKUUCJ
      ZGXQMZYKUUNJYKUVBJUUKUUTUVEUVGVJUVAUVDUVFAGXQYTUUHYDUUCYKUUIVIVKTAYKUULYD
      VLGYKXQUUCVLVMVNUUKUUEUVCUVBLYRXSUUAUUEVOGXQXTUUCVPTUUKUVCXRDGXQVQYRXSUUF
      VRVSVTYMUUOBUULYNYKUULLYLUUNDAYKUULYDWBWCWDVFWEWFWGWHWIXPYMYIBYNXPYKYNJZY
      MYIXPUVHYMOOZAYKYDWLZURZPJZUVKUQZDLZUVKYFGWJZSZYIUVIYKPJZUVJPJUVLUVHUVQXP
      YMUVHYKDSZUVQYKDVGZWKXDAYKYDWMUVJWNWOUVIUVMYLDAYKYDYAYBYCWPWQXPUVHYMWRVSU
      VIUVKYEAYKMZGWJUVOAGYKYDUVJUVJWSWTUVIUVTYFGUVIUVRUVTYFUJUVHUVRXPYMUVHUVRU
      VQUVSXAXDYEAYKDXBTXCXEYHUVNUVPOFUVKPXQUVKLZXSUVNYGUVPUWAXRUVMDXQUVKXMWCYG
      XQUVOSUWAUVPYFGXQXFXQUVKUVOXNXGXHWDXIWEWIXJXKXLXO $.
  $}

  ${
    $d b d v x M $.  $d b d v x X $.
    $( The predicate "totally bounded" implies ` M ` is a metric space.
       (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    totbndmet $p |- ( M e. ( TotBnd ` X ) -> M e. ( Met ` X ) ) $=
      ( vv vb vx vd ctotbnd cfv wcel cme cv cuni wceq cbl co wrex wral cfn crp
      wa istotbnd simplbi ) ABGHIABJHICKZLBMDKEKFKANHOMEBPDUCQTCRPFSQECABDFUAUB
      $.
  $}

  ${
    $d r v x M $.
    $( The metric (there is only one) on the empty set is totally bounded.
       (Contributed by Mario Carneiro, 16-Sep-2015.) $)
    0totbnd $p |- ( X = (/) ->
      ( M e. ( TotBnd ` X ) <-> M e. ( Met ` X ) ) ) $=
      ( vx vv vr c0 wceq ctotbnd cfv wcel cme fveq2 eleq2d cbl ciun cpw cfn crp
      cv co wrex wral 0elpw 0fin elin mpbir2an iuneq1 eqeq1d rspcev mp2an rgenw
      cin 0iun istotbnd3 mpbiran2 syl6rbbr bitrd ) BFGZABHIZJAFHIZJZABKIZJZURUS
      UTABFHLMURVCAFKIZJZVAURVBVDABFKLMVAVECDSZCSESANITZOZFGZDFPZQULZUAZERUBVLE
      RFVKJZCFVGOZFGZVLVMFVJJFQJFUCUDFVJQUEUFCVGUMVIVODFVKVFFGVHVNFCVFFVGUGUHUI
      UJUKCDAFEUNUOUPUQ $.
  $}

  ${
    $d b c d f u v w x y z M $.  $d b c d f u v w x y z X $.
    $d c d f u v w x y z N $.  $d b c d f u v w x y z Y $.
    sstotbnd.2 $e |- N = ( M |` ( Y X. Y ) ) $.
    $( Condition for a subset of a metric space to be totally bounded.
       (Contributed by Mario Carneiro, 12-Sep-2015.) $)
    sstotbnd2 $p |- ( ( M e. ( Met ` X ) /\ Y C_ X ) ->
      ( N e. ( TotBnd ` Y ) <-> A. d e. RR+ E. v e. ( ~P X i^i Fin )
        Y C_ U_ x e. v ( x ( ball ` M ) d ) ) ) $=
      ( vy vz wcel wss wa co cin crp wral wceq syl c0 vw vc cme cfv ctotbnd cbl
      vf cv ciun cpw cfn wrex wb cxp cres metres2 syl5eqel istotbnd3 baib sspwb
      simpllr sylib ssrin simprl sseldd simprr wel cxmt metxmet ad4antr simplbi
      elfpw adantl sselda simp-4r sseqin2 eleqtrrd rpxrd blres syl3anc syl6eqss
      cxr inss1 ralrimiva ss2iun adantrr eqsstr3d jca ex reximdv2 ralimdva cdiv
      sylbid c2 simpr rphalfcld oveq2 iuneq2d sseq2d rexbidv rspcv wne crab wex
      wi wf simprbi ad2antrl ssrab2 sylancl weq oveq1 ineq1d incom syl6eq dfin5
      ssfi neeq1d rabn0 syl6bb elrab mpbird wfn ffn elpreima id imaeq2d eleq12d
      cima adantr syl2anc cbviunv ad4antlr iunss sylibr syl5eq sylan sstrd syld
      syl2an rgen eleq1 ac6sfi cdm ccnv w3a fdm feq2d ralbidva ralrab2 3jca crn
      baibd simpr2 simpr1 fnfi rnfi sylanbrc rpxr blssm iunin1 simplrr syl6sseq
      frn 0ss sseq1 mpbiri a1i simpr3 imbi12d rspccva cr ad5antr cnvimass rpred
      syl5ss simplbda blhalf syl22anc ffvelrn simp-5r sseqtr4d fnfvelrn ssiun2s
      sseli adantlr pm2.61dne eqssd iuneq1 eqeq1d rspcev exlimdv mpd rexlimdvaa
      ralrimdva sylibrd impbid ) CEUCUDKZFELZMZDFUEUDKZFABUHZAUHZGUHZCUFUDZNZUI
      ZLZBEUJZUKOZULZGPQZUWTUXAAUXBUXCUXDDUFUDZNZUIZFRZBFUJZUKOZULZGPQZUXLUWTDF
      UCUDZKZUXAUXTUMUWTDCFFUNUOUYAHCFEUPUQZUXAUYBUXTABDFGURUSSUWTUXSUXKGPUWTUX
      DPKZMZUXPUXHBUXRUXJUYEUXBUXRKZUXPMZUXBUXJKZUXHMUYEUYGMZUYHUXHUYIUXRUXJUXB
      UYIUXQUXILZUXRUXJLUYIUWSUYJUWRUWSUYDUYGVAFEUTVBUXQUXIUKVCSUYEUYFUXPVDVEUY
      IFUXOUXGUYEUYFUXPVFUYEUYFUXOUXGLZUXPUYEUYFMZUXNUXFLZAUXBQUYKUYLUYMAUXBUYL
      ABVGZMZUXNUXFFOZUXFUYOCEVHUDKZUXCEFOZKUXDWBKUXNUYPRUWRUYQUWSUYDUYFUYNCEVI
      ZVJUYOUXCFUYRUYLUXBFUXCUYFUXBFLZUYEUYFUYTUXBUKKZUXBFVLVKVMVNUYOUWSUYRFRZU
      WRUWSUYDUYFUYNVOFEVPZVBVQUYOUXDUWTUYDUYFUYNVAVRDCUXCUXDEFHVSVTUXFFWCWAWDA
      UXBUXNUXFWESWFWGWHWIWJWKWMUWTUXLAUAUHZUXCUBUHZUXMNZUIZFRZUAUXRULZUBPQZUXA
      UWTUXLVUIUBPUWTVUEPKZMZUXLFAUXBUXCVUEWNWLNZUXENZUIZLZBUXJULZVUIVULVUMPKUX
      LVUQXEVULVUEUWTVUKWOWPUXKVUQGVUMPUXDVUMRZUXHVUPBUXJVURUXGVUOFVURAUXBUXFVU
      NUXDVUMUXCUXEWQWRWSWTXASVULVUPVUIBUXJVULUYHVUPMZMZVUNFOZTXBZAUXBXCZFUGUHZ
      XFZIUHZVVDUDZVVFVUMUXENZKZIVVCQZMZUGXDZVUIVUTVVCUKKZJUHZVVHKZJFULZIVVCQVV
      LVUTVUAVVCUXBLVVMUYHVUAVULVUPUYHUXBELZVUAUXBEVLZXGXHZVVBAUXBXIZUXBVVCXQXJ
      VVPIVVCVVFVVCKZIBVGZVVPVVBVVPAVVFUXBAIXKZVVBVVOJFXCZTXBVVPVWCVVAVWDTVWCVV
      AFVVHOZVWDVWCVVAVVHFOZVWEVWCVUNVVHFUXCVVFVUMUXEXLZXMZVVHFXNXOJFVVHXPXOXRV
      VOJFXSXTYAXGUUAVVOVVIIJVVCFUGVVNVVGVVHUUBUUCXJVUTVVKVUIUGVUTVVKVVDUUDZUXB
      LZVWIFVVDXFZVVBUXCVVDUUEZVUNYIZKZXEZAUXBQZUUFZVUIVUTVUAVVKVWQXEVVSVUAVVKV
      WQVUAVVKMZVWJVWKVWPVWRVWIVVCUXBVVEVWIVVCRVUAVVJVVCFVVDUUGXHZVVTWAVWRVWKVV
      EVUAVVEVVJVDVWRVWIVVCFVVDVWSUUHYBVWRVVFVWLVVHYIZKZIVVCQZVWPVWRVXBVVJVUAVV
      EVVJVFVVEVXBVVJUMVUAVVJVVEVXAVVIIVVCVVEVXAVWAVVIVVEVVDVVCYCVXAVWAVVIMUMVV
      CFVVDYDVVCVVFVVHVVDYESUUMUUIXHYBVVBVXAVWNIAUXBIAXKZVVFUXCVWTVWMVXCYFVXCVV
      HVUNVWLVVFUXCVUMUXEXLYGYHUUJVBUUKWISVUTVWQVUIVUTVWQMZVVDUULZUXRKZAVXEVUFU
      IZFRZVUIVXDVXEFLZVXEUKKZVXFVXDVWKVXIVUTVWJVWKVWPUUNZVWIFVVDUVDSZVXDVVDUKK
      ZVXJVXDVVDVWIYCZVWIUKKZVXMVXDVWKVXNVXKVWIFVVDYDSZVXDVUAVWJVXOVUTVUAVWQVVS
      YJVUTVWJVWKVWPUUOZUXBVWIXQYKVWIVVDUUPYKVVDUUQSVXEFVLUURVXDVXGJVXEVVNVUEUX
      MNZUIZFAJVXEVUFVXRUXCVVNVUEUXMXLYLVXDVXSFVXDVXRFLZJVXEQVXSFLVXDVXTJVXEVXD
      VVNVXEKZMZDFVHUDKZVVNFKVUEWBKZVXTVYBUYBVYCUWTUYBVUKVUSVWQVYAUYCVJDFVISVXD
      VXEFVVNVXLVNVUKVYDUWTVUSVWQVYAVUEUUSZYMDVVNVUEFUUTVTWDJVXEVXRFYNYOVXDFIUX
      BVWFUIZVXSVXDVYFIUXBVVHUIZFOZFIUXBFVVHUVAVXDFVYGLVYHFRVXDFVUOVYGVULUYHVUP
      VWQUVBAIUXBVUNVVHVWGYLUVCFVYGVPVBYPVXDVWFVXSLZIUXBQVYFVXSLVXDVYIIUXBVXDVW
      BMZVYIVWFTVWFTRZVYIXEVYJVYKVYITVXSLVXSUVEVWFTVXSUVFUVGUVHVYJVWFTXBZVXAVYI
      VXDVWPVWBVYLVXAXEZVUTVWJVWKVWPUVIVWOVYMAVVFUXBVWCVVBVYLVWNVXAVWCVVAVWFTVW
      HXRVWCUXCVVFVWMVWTVWCYFVWCVUNVVHVWLVWGYGYHUVJUVKYQVYJVXAVYIVXDVXAVYIVWBVX
      DVXAMZVWFVVGVUEUXMNZVXSVYNVWFVVGVUEUXENZFOZVYOVYNVVHVYPLZVWFVYQLVYNUYQVVF
      EKVUEUVLKVVIVYRUWRUYQUWSVUKVUSVWQVXAUYSUVMZVXDVWTEVVFVXDVWTVWIEVVDVVHUVNZ
      VXDVWIUXBEVXQVUTVVQVWQUYHVVQVULVUPUYHVVQVUAVVRVKXHYJYRUVPVNVYNVUEUWTVUKVU
      SVWQVXAVOUVOVXDVXNVXAVVIVXPVXNVXAVVFVWIKZVVIVWIVVFVVHVVDYEUVQYQVUECEVVFVV
      GUVRUVSVVHVYPFVCSVYNUYQVVGUYRKVYDVYOVYQRVYSVYNVVGFUYRVXDVWKWUAVVGFKVXAVXK
      VWTVWIVVFVYTUWEZVWIFVVFVVDUVTYTVYNUWSVUBUWRUWSVUKVUSVWQVXAUWAVUCVBVQVUKVY
      DUWTVUSVWQVXAVYEYMDCVVGVUEEFHVSVTUWBVYNVVGVXEKZVYOVXSLVXDVXNWUAWUCVXAVXPW
      UBVWIVVFVVDUWCYTJVXEVXRVVGVYOVVNVVGVUEUXMXLUWDSYRUWFWIYSUWGWDIUXBVWFVXSYN
      YOWGUWHYPVUHVXHUAVXEUXRVUDVXERVUGVXGFAVUDVXEVUFUWIUWJUWKYKWIYSUWLUWMUWNYS
      UWOUWTUYBUXAVUJUMUYCUXAUYBVUJAUADFUBURUSSUWPUWQ $.

    $( Condition for a subset of a metric space to be totally bounded.
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof shortened by Mario
       Carneiro, 12-Sep-2015.) $)
    sstotbnd $p |- ( ( M e. ( Met ` X ) /\ Y C_ X ) ->
      ( N e. ( TotBnd ` Y ) <-> A. d e. RR+ E. v e. Fin ( Y C_ U. v /\
        A. b e. v E. x e. X b = ( x ( ball ` M ) d ) ) ) ) $=
      ( vu vf cfv wcel wss wa cv ciun cfn wrex wceq cme ctotbnd cbl cpw cin crp
      vy co wral cuni sstotbnd2 cmpt crn elfpw simprbi mptfi rnfi 3syl ad2antrl
      cab simprr eqid rnmpt wi simplbi ssrexv syl ss2abdv syl5eqss unieq dfiun3
      ovex syl6eqr sseq2d ssabral syl5bbr anbi12d rspcev syl12anc rexlimdvaa wf
      sseq1 wex oveq1 eqeq2d ac6sfi adantrl frn wfo simplrl wfn ffn dffn4 sylib
      adantl fofi syl2anc sylanbrc simprrl adantr uniiun iuneq2 syl5eq ad2antll
      sseqtrd eleq2d rexrn eliun 3bitr4g eqrdv sseqtr4d iuneq1 exlimddv ralbidv
      impbid bitrd ) CEUALMFENOZDFUBLMFAJPZAPZHPZCUCLZUHZQZNZJEUDRUEZSZHUFUIFBP
      ZUJZNZGPZYBTZAESZGYGUIZOZBRSZHUFUIAJCDEFHIUKXQYFYOHUFXQYFYOXQYDYOJYEXQXRY
      EMZYDOOZAXRYBULZUMZRMZYDYSYLGUTZNZYOYPYTXQYDYPXRRMZYRRMYTYPXRENZUUCXREUNZ
      UOAXRYBUPYRUQURUSXQYPYDVAYQYSYKAXRSZGUTUUAAGXRYBYRYRVBVCYQUUFYLGYPUUFYLVD
      ZXQYDYPUUDUUGYPUUDUUCUUEVEYKAXREVFVGUSVHVIYNYDUUBOBYSRYGYSTZYIYDYMUUBUUHY
      HYCFUUHYHYSUJYCYGYSVJAXRYBXSXTYAVLVKVMVNYMYGUUANUUHUUBYLGYGVOYGYSUUAWBVPV
      QVRVSVTXQYNYFBRXQYGRMZYNOZOZYGEKPZWAZYJYJUULLZXTYAUHZTZGYGUIZOZYFKUUJUURK
      WCZXQUUIYMUUSYIYKUUPGAYGEKXSUUNTZYBUUOYJXSUUNXTYAWDZWEWFWGWOUUKUUROZUULUM
      ZYEMZFAUVCYBQZNZYFUVBUVCENZUVCRMZUVDUUMUVGUUKUUQYGEUULWHUSUVBUUIYGUVCUULW
      IZUVHXQUUIYNUURWJUVBUULYGWKZUVIUUMUVJUUKUUQYGEUULWLUSZYGUULWMWNYGUVCUULWP
      WQUVCEUNWRUVBFGYGUUOQZUVEUVBFYHUVLUUKYIUURXQUUIYIYMWSWTUUQYHUVLTUUKUUMUUQ
      YHGYGYJQUVLGYGXAGYGYJUUOXBXCXDXEUVBUVJUVEUVLTUVKUVJUGUVEUVLUVJUGPZYBMZAUV
      CSUVMUUOMZGYGSUVMUVEMUVMUVLMUVNUVOAGYGUULUUTYBUUOUVMUVAXFXGAUVMUVCYBXHGUV
      MYGUUOXHXIXJVGXKYDUVFJUVCYEXRUVCTYCUVEFAXRUVCYBXLVNVRWQXMVTXOXNXP $.

    $( Use a net that is not necessarily finite, but for which only finitely
       many balls meet the subset.  (Contributed by Mario Carneiro,
       14-Sep-2015.) $)
    sstotbnd3 $p |- ( ( M e. ( Met ` X ) /\ Y C_ X ) ->
      ( N e. ( TotBnd ` Y ) <-> A. d e. RR+ E. v e. ~P X
        ( Y C_ U_ x e. v ( x ( ball ` M ) d ) /\
          { x e. v | ( ( x ( ball ` M ) d ) i^i Y ) =/= (/) } e. Fin ) ) ) $=
      ( vy vw cfv wcel wss wa cv ciun cfn wrex crp wral cme ctotbnd cbl cin wne
      vz co c0 crab sstotbnd2 elin rabfi anim2i sylbi ancoms an12 sylib reximi2
      cpw ralimi syl6bi ssrab2 elpwi ad2antlr syl5ss elfpw sylanbrc ssel2 eliun
      simprr inelcm expcom ancrd reximdv impcom wceq oveq1 eleq2d rexrab2 bitri
      sylancom sylibr ex ssrdv ad2antrl iuneq1 sseq2d syl2anc rexlimdva ralimdv
      rspcev sylibrd impbid ) CEUAKLFEMNZDFUBKLZFABOZAOZGOZCUCKZUGZPZMZWTFUDUHU
      EZAWPUIZQLZNZBEUSZRZGSTZWNWOXBBXGQUDZRZGSTXIABCDEFGHUJXKXHGSXBXFBXJXGWPXJ
      LZXBNXBWPXGLZXENZNZXMXFNXBXLXOXLXNXBXLXMWPQLZNXNWPXGQUKXPXEXMXCAWPULUMUNU
      MUOXBXMXEUPUQURUTVAWNXIFIJOZIOZWRWSUGZPZMZJXJRZGSTWOWNXHYBGSWNXFYBBXGWNXM
      NZXFYBYCXFNZXDXJLZFIXDXSPZMZYBYDXDEMXEYEYDXDWPEXCAWPVBXMWPEMWNXFWPEVCVDVE
      YCXBXEVJXDEVFVGXBYGYCXEXBUFFYFXBUFOZFLZYHYFLZXBYINZXCYHWTLZNZAWPRZYJXBYIY
      LAWPRZYNYKYHXALYOFXAYHVHAYHWPWTVIUQYIYOYNYIYLYMAWPYIYLXCYLYIXCYHWTFVKVLVM
      VNVOWAYJYHXSLZIXDRYNIYHXDXSVIXCYPYLIAWPXRWQVPXSWTYHXRWQWRWSVQVRVSVTWBWCWD
      WEYAYGJXDXJXQXDVPXTYFFIXQXDXSWFWGWKWHWCWIWJIJCDEFGHUJWLWM $.
  $}

  ${
    $d b d v x M $.  $d b d v x S $.  $d b d v x X $.
    $( A subset of a totally bounded metric space is totally bounded.
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro,
       12-Sep-2015.) $)
    totbndss $p |- ( ( M e. ( TotBnd ` X ) /\ S C_ X ) ->
        ( M |` ( S X. S ) ) e. ( TotBnd ` S ) ) $=
      ( vv vb vx vd ctotbnd cfv wcel wss wa cxp cres cv wceq wrex wral cfn crp
      cuni cbl cme istotbnd simprbi sseq2 biimprcd anim1d reximdv ralimdv mpan9
      co wb totbndmet eqid sstotbnd sylan mpbird ) BCHIJZACKZLBAAMNZAHIJZADOZUA
      ZKZEOFOGOBUBIULPFCQEVCRZLZDSQZGTRZUSVDCPZVFLZDSQZGTRZUTVIUSBCUCIJZVMFDBCE
      GUDUEUTVLVHGTUTVKVGDSUTVJVEVFVJVEUTVDCAUFUGUHUIUJUKUSVNUTVBVIUMBCUNFDBVAC
      AEGVAUOUPUQUR $.
  $}

  ${
    $d s v x y M $.  $d r v x y N $.  $d r v x y ph $.  $d r s v x y X $.
    $d s v x y R $.
    equivtotbnd.1 $e |- ( ph -> M e. ( TotBnd ` X ) ) $.
    equivtotbnd.2 $e |- ( ph -> N e. ( Met ` X ) ) $.
    equivtotbnd.3 $e |- ( ph -> R e. RR+ ) $.
    equivtotbnd.4 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
      ( x N y ) <_ ( R x. ( x M y ) ) ) $.
    $( If the metric ` M ` is "strongly finer" than ` N ` (meaning that there
       is a positive real constant ` R ` such that
       ` N ( x , y ) <_ R x. M ( x , y ) ` ), then total boundedness of ` M `
       implies total boundedness of ` N ` .  (Using this theorem twice in each
       direction states that if two metrics are strongly equivalent, then one
       is totally bounded iff the other is.)  (Contributed by Mario Carneiro,
       14-Sep-2015.) $)
    equivtotbnd $p |- ( ph -> N e. ( TotBnd ` X ) ) $=
      ( vv vr vs cfv wcel cv co crp wss cme cbl ciun wceq cpw cfn cin wrex wral
      ctotbnd wa cdiv simpr adantr rpdivcld istotbnd3 simprbi syl oveq2 iuneq2d
      eqeq1d rexbidv rspcv sylc elfpw simplbi adantl sselda cmopn eqid anass1rs
      metss2lem adantlr syldan ralrimiva sseq1 syl5ibcom cxmt ad3antrrr metxmet
      ss2iun cxr simpllr rpxrd blssm syl3anc iunss sylibr eqss syl6ibr reximdva
      jctild mpd sylanbrc ) AFGUAOZPZBLQZBQZMQZFUBORZUCZGUDZLGUEUFUGZUHZMSUIFGU
      JOZPIAXDMSAWSSPZUKZBWQWRWSDULRZEUBOZRZUCZGUDZLXCUHZXDXGXHSPBWQWRNQZXIRZUC
      ZGUDZLXCUHZNSUIZXMXGWSDAXFUMADSPXFJUNUOXGEXEPZXSAXTXFHUNXTEWOPZXSBLEGNUPZ
      UQURXRXMNXHSXNXHUDZXQXLLXCYCXPXKGYCBWQXOXJXNXHWRXIUSUTVAVBVCVDXGXLXBLXCXG
      WQXCPZUKZXLXAGTZGXATZUKXBYEXLYGYFYEXKXATZXLYGYEXJWTTZBWQUIYHYEYIBWQYEWRWQ
      PZWRGPZYIYEWQGWRYDWQGTZXGYDYLWQUFPWQGVEVFVGVHZXGYKYIYDAYKXFYIABCFEDWSFVIO
      ZEVIOZGYNVJYOVJIAXTYAHXTYAXSYBVFURJKVLVKVMVNVOBWQXJWTWAURXKGXAVPVQYEWTGTZ
      BWQUIYFYEYPBWQYEYJUKZFGVROPZYKWSWBPYPYQWPYRAWPXFYDYJIVSFGVTURYMYQWSAXFYDY
      JWCWDFWRWSGWEWFVOBWQWTGWGWHWLXAGWIWJWKWMVOBLFGMUPWN $.
  $}

  ${
    $d m r x y $.
    $( Define the class of bounded metrics.  A metric space is bounded iff it
       can be covered by a single ball.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    df-bnd $a |- Bnd = ( x e. _V |-> { m e. ( Met ` x ) |
      A. y e. x E. r e. RR+ x = ( y ( ball ` m ) r ) } ) $.
  $}

  ${
    $d d m r s x y z M $.  $d d r y N $.  $d d r y P $.  $d d m r s x y z X $.
    $d r x R $.  $d r x S $.  $d d r x y Y $.
    $( The predicate "is a bounded metric space".  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by Mario Carneiro, 12-Sep-2015.) $)
    isbnd $p |- ( M e. ( Bnd ` X ) <-> ( M e. ( Met ` X ) /\
        A. x e. X E. r e. RR+ X = ( x ( ball ` M ) r ) ) ) $=
      ( vm vy cbnd cfv wcel cvv cme cv cbl co wceq crp wrex wral elfvex crab wa
      adantr fveq2 eqeq1 rexbidv raleqbi1dv rabeqbidv df-bnd rabex fvmpt eleq2d
      fvex oveqd eqeq2d ralbidv elrab syl6bb pm5.21nii ) BCGHZIZCJIZBCKHZIZCALZ
      DLZBMHZNZOZDPQZACRZUAZBCGSVCVAVJBCKSUBVAUTBCVDVEELZMHZNZOZDPQZACRZEVBTZIV
      KVAUSVRBFCFLZVNOZDPQZAVSRZEVSKHZTVRJGVSCOZWBVQEWCVBVSCKUCWAVPAVSCWDVTVODP
      VSCVNUDUEUFUGFAEDUHVQEVBCKULUIUJUKVQVJEBVBVLBOZVPVIACWEVOVHDPWEVNVGCWEVMV
      FVDVEVLBMUCUMUNUEUOUPUQUR $.

    $( A bounded metric space is a metric space.  (Contributed by Mario
       Carneiro, 16-Sep-2015.) $)
    bndmet $p |- ( M e. ( Bnd ` X ) -> M e. ( Met ` X ) ) $=
      ( vx vy cbnd cfv wcel cme cv cbl co wceq crp wrex wral isbnd simplbi ) AB
      EFGABHFGBCIDIAJFKLDMNCBOCABDPQ $.

    $( A "bounded extended metric" (meaning that it satisfies the same
       condition as a bounded metric, but with "metric" replaced with "extended
       metric") is a metric and thus is bounded in the conventional sense.
       (Contributed by Mario Carneiro, 12-Sep-2015.) $)
    isbndx $p |- ( M e. ( Bnd ` X ) <-> ( M e. ( *Met ` X ) /\
        A. x e. X E. r e. RR+ X = ( x ( ball ` M ) r ) ) ) $=
      ( vy cbnd cfv wcel cme cv cbl co crp wral wa cr wf cxr vex sylanbrc isbnd
      wceq wrex cxmt metxmet cxp simpr wfn xmetf ffn 3syl ccnv cima wbr w3a cec
      simprr rpxr eqid blssec 3expa sylan2 adantrr eqsstrd sselda elec sylib wb
      wss xmeterval ad3antrrr mpbid simp3d ralrimiva rexlimdvaa ralimdva impcom
      ffnov ismet2 ex impbid2 pm5.32ri bitri ) BCFGHBCIGHZCAJZDJZBKGLZUBZDMUCZA
      CNZOBCUDGHZWJOABCDUAWJWDWKWJWDWKBCUEWJWKWDWJWKOZWKCCUFZPBQZWDWJWKUGZWLBWM
      UHZWEEJZBLPHZECNZACNZWNWLWKWMRBQWPWOBCUIWMRBUJUKWKWJWTWKWIWSACWKWECHZOZWH
      WSDMXBWFMHZWHOZOZWRECXEWQCHZOZXAXFWRXGWEWQBULPUMZUNZXAXFWRUOZXGWQWEXHUPZH
      XIXECXKWQXECWGXKXBXCWHUQXBXCWGXKVIZWHXCXBWFRHZXLWFURWKXAXMXLBWEXHWFCXHUSZ
      UTVAVBVCVDVEWQWEXHESASVFVGWKXIXJVHXAXDXFWEWQBXHCXNVJVKVLVMVNVOVPVQAECCPBV
      RTBCVSTVTWAWBWC $.

    $( The predicate "is a bounded metric space".  Uses a single point instead
       of an arbitrary point in the space.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    isbnd2 $p |- ( ( M e. ( Bnd ` X ) /\ X =/= (/) ) <-> ( M e. ( *Met ` X ) /\
                E. x e. X E. r e. RR+ X = ( x ( ball ` M ) r ) ) ) $=
      ( vy vs cfv wcel wa cv co wceq crp wrex eqeq2d c2 wss wi cr sylan2 c0 wne
      cbnd cxmt cbl wral isbndx anbi1i anass r19.2z ancoms oveq1 oveq2 cbvrex2v
      cmul 2rp rpmulcl mpan ad2antll ad2antrr cdiv cc cc0 rpcn 2cnd a1i divcan3
      2ne0 w3a eqcomd syl3anc oveq2d biimpd adantr imp simpr eleq2 biimpac rpre
      2re remulcl sylancr blhalf expr anasss anassrs eqsstrd syldan adantl rpxr
      cxr blssm syl3an3 3expa an32s eqssd rspcev ex ralrimdva rexlimdvva syl5bi
      syl2anc rexn0 jcad impbid2 pm5.32i 3bitri ) BCUCGHZCUAUBZIBCUDGHZCAJZDJZB
      UEGZKZLZDMNZACUFZIZXIIXJXQXIIZIXJXPACNZIXHXRXIABCDUGUHXJXQXIUIXJXSXTXJXSX
      TXIXQXTXPACUJUKXJXTXQXIXTCEJZFJZXMKZLZFMNECNXJXQXOYDCYAXLXMKZLADEFCMXKYAL
      XNYECXKYAXLXMULOXLYBLYEYCCXLYBYAXMUMOUNXJYDXQEFCMXJYACHZYBMHZIZIZYDXPACYI
      XKCHZIZYDXPYKYDIZPYBUOKZMHZCXKYMXMKZLZXPYIYNYJYDYGYNXJYFPMHYGYNUPPYBUQURZ
      USUTYLCYOYKYDCYAYMPVAKZXMKZLZCYOQYKYDYTYIYDYTRZYJYGUUAXJYFYGYDYTYGYCYSCYG
      YBYRYAXMYGYBVBHZPVBHZPVCUBZYBYRLYBVDYGVEUUDYGVHVFUUBUUCUUDVIYRYBYBPVGVJVK
      VLOVMUSVNVOYKYTICYSYOYKYTVPYIYJYTYSYOQZYJYTIYIXKYSHZUUEYTYJUUFCYSXKVQVRYI
      UUFUUEXJYFYGUUFUUERZYGXJYFIZYMSHZUUGYGPSHYBSHUUIVTYBVSPYBWAWBUUHUUIUUFUUE
      YMBCYAXKWCWDTWEVOTWFWGWHYKYOCQZYDXJYJYHUUJYHXJYJIYNUUJYGYNYFYQWIXJYJYNUUJ
      YNXJYJYMWKHUUJYMWJBXKYMCWLWMWNTWOVNWPXOYPDYMMXLYMLXNYOCXLYMXKXMUMOWQXBWRW
      SWTXAXTXIRXJXPACXCVFXDXEXFXG $.

    $( A metric space is bounded iff the metric function maps to some bounded
       real interval.  (Contributed by Mario Carneiro, 13-Sep-2015.) $)
    isbnd3 $p |- ( M e. ( Bnd ` X ) <-> ( M e. ( Met ` X ) /\
        E. x e. RR M : ( X X. X ) --> ( 0 [,] x ) ) ) $=
      ( vy vr vz wcel cc0 co cr wa c0 wceq wral syl adantr sylancr crp cle wbr
      cbnd cfv cme cxp cv cicc wf wrex bndmet wne 0re wfn crn wss metf ad2antrr
      ne0ii ffn cdm fdm xpeq2 xp0 syl6eq sylan9eq dm0rn0 syl6eqss df-f sylanbrc
      sylib 0ss ralrimiva r19.2z cbl cxmt isbnd2 simprbi wi c2 cmul 2re simprlr
      rpred remulcl simpll simprl simprr metcl syl3anc simprll readdcld mettri2
      metge0 caddc syl13anc clt simplrr eleqtrd cxr metxmet rpxr ad2antlr elbl2
      wb syl22anc mpbid lt2addd recnd 2timesd breqtrrd lelttrd ltled w3a elicc2
      mpbir3and ralrimivva ffnov oveq2 feq3d rspcev syl2anc expr rexlimdvva mpd
      pm2.61dane jca c1 simpllr simpr met0 simplr fovrnd eqbrtrrd ge0p1rpd crab
      simp3d fovrn 3expa adantlll simp1d peano2re rabid2 sylibr eqtr4d r19.29an
      ltp1d rexrd blval eqeq2d isbnd impbii ) BCUAUBGZBCUCUBGZCCUDZHAUEZUFIZBUG
      ZAJUHZKUUKUULUUQBCUIZUUKUUQCLUUKCLMZKZJLUJUUPAJNUUQHJUKUQUUTUUPAJUUTUUNJG
      ZKZBUUMULZBUMZUUOUNUUPUUKUVCUUSUVAUUKUULUVCUURUULUUMJBUGZUVCBCUOZUUMJBURO
      ZOUPUVBUVDLUUOUVBBUSZLMZUVDLMUUTUVIUVAUUKUUSUVHUUMLUUKUVEUVHUUMMUUKUULUVE
      UURUVFOUUMJBUTOUUSUUMCLUDLCLCVACVBVCVDPBVEVIUUOVJVFUUMUUOBVGVHVKUUPAJVLQU
      UKCLUJZKZCDUEZEUEZBVMUBZIZMZERUHZDCUHZUUQUVKBCVNUBGZUVRDBCEVOVPUUKUVRUUQV
      QZUVJUUKUULUVTUURUULUVPUUQDECRUULUVLCGZUVMRGZKZUVPUUQUULUWCUVPKZKZVRUVMVS
      IZJGZUUMHUWFUFIZBUGZUUQUWEVRJGUVMJGZUWGVTUWEUVMUULUWAUWBUVPWAWBZVRUVMWCQZ
      UWEUVCUUNFUEZBIZUWHGZFCNACNUWIUULUVCUWDUVGPUWEUWOAFCCUWEUUNCGZUWMCGZKZKZU
      WOUWNJGZHUWNSTZUWNUWFSTZUWSUULUWPUWQUWTUULUWDUWRWDZUWEUWPUWQWEZUWEUWPUWQW
      FZUUNUWMBCWGWHZUWSUULUWPUWQUXAUXCUXDUXEUUNUWMBCWLWHUWSUWNUWFUXFUWEUWGUWRU
      WLPZUWSUWNUVLUUNBIZUVLUWMBIZWMIZUWFUXFUWSUXHUXIUWSUULUWAUWPUXHJGUXCUWEUWA
      UWRUULUWAUWBUVPWIPZUXDUVLUUNBCWGWHZUWSUULUWAUWQUXIJGZUXCUXKUXEUVLUWMBCWGW
      HZWJUXGUWSUULUWAUWPUWQUWNUXJSTUXCUXKUXDUXEUUNUWMUVLBCWKWNUWSUXJUVMUVMWMIU
      WFWOUWSUXHUXIUVMUVMUXLUXNUWEUWJUWRUWKPZUXOUWSUUNUVOGZUXHUVMWOTZUWSUUNCUVO
      UXDUULUWCUVPUWRWPZWQUWSUVSUVMWRGZUWAUWPUXPUXQXCUWSUULUVSUXCBCWSZOZUWDUXSU
      ULUWRUWBUXSUWAUVPUVMWTXAXAZUXKUXDUUNBUVLUVMCXBXDXEUWSUWMUVOGZUXIUVMWOTZUW
      SUWMCUVOUXEUXRWQUWSUVSUXSUWAUWQUYCUYDXCUYAUYBUXKUXEUWMBUVLUVMCXBXDXEXFUWS
      UVMUWSUVMUXOXGXHXIXJXKUWSHJGZUWGUWOUWTUXAUXBXLXCUKUXGHUWFUWNXMQXNXOAFCCUW
      HBXPVHUUPUWIAUWFJUUNUWFMUUOUWHBUUMUUNUWFHUFXQXRXSXTYAYBOPYCYDYEUULUUPUUKA
      JUULUVAKZUUPKZUULUVQDCNUUKUULUVAUUPWDZUYGUVQDCUYGUWAKZUUNYFWMIZRGCUVLUYJU
      VNIZMZUVQUYIUUNUULUVAUUPUWAYGZUYIUVLUVLBIZHUUNSUYIUULUWAUYNHMUYGUULUWAUYH
      PZUYGUWAYHZUVLBCYIXTUYIUYNJGZHUYNSTZUYNUUNSTZUYIUYNUUOGZUYQUYRUYSXLZUYIUV
      LUVLUUOCCBUYFUUPUWAYJUYPUYPYKUYIUYEUVAUYTVUAXCUKUYMHUUNUYNXMQXEYOYLYMUYIC
      UXIUYJWOTZFCYNZUYKUYIVUBFCNCVUCMUYIVUBFCUYIUWQKZUXIUUNUYJVUDUXMHUXISTZUXI
      UUNSTZVUDUXIUUOGZUXMVUEVUFXLZUUPUWAUWQVUGUYFUUPUWAUWQVUGUVLUWMUUOCCBYPYQY
      RUYIVUGVUHXCZUWQUYIUYEUVAVUIUKUYMHUUNUXIXMQPXEZYSUYIUVAUWQUYMPZUYIUYJJGZU
      WQUYIUVAVULUYMUUNYTOZPVUDUXMVUEVUFVUJYOVUDUUNVUKUUEXJVKVUBFCUUAUUBUYIUVSU
      WAUYJWRGUYKVUCMUYIUULUVSUYOUXTOUYPUYIUYJVUMUUFFBUVLUYJCUUGWHUUCUVPUYLEUYJ
      RUVMUYJMUVOUYKCUVMUYJUVLUVNXQUUHXSXTVKDBCEUUIVHUUDUUJ $.

    $( A metric space is bounded iff the metric function maps to some bounded
       real interval.  (Contributed by Mario Carneiro, 22-Sep-2015.) $)
    isbnd3b $p |- ( M e. ( Bnd ` X ) <-> ( M e. ( Met ` X ) /\
        E. x e. RR A. y e. X A. z e. X ( y M z ) <_ x ) ) $=
      ( cfv wcel cc0 cv co wf cr wrex wa cle wbr wral wb 3expb adantlr cbnd cme
      cxp cicc isbnd3 wfn metf adantr ffn ffnov baib 3syl 0red simplr metcl w3a
      metge0 elicc2 df-3an syl6bb baibd syl22anc 2ralbidva bitrd rexbidva bitri
      pm5.32i ) DEUAFGDEUBFGZEEUCZHAIZUDJZDKZALMZNVHBIZCIZDJZVJOPZCEQBEQZALMZNA
      DEUEVHVMVSVHVLVRALVHVJLGZNZVLVPVKGZCEQBEQZVRWAVILDKZDVIUFZVLWCRVHWDVTDEUG
      UHVILDUIVLWEWCBCEEVKDUJUKULWAWBVQBCEEWAVNEGZVOEGZNZNZHLGZVTVPLGZHVPOPZWBV
      QRWIUMVHVTWHUNVHWHWKVTVHWFWGWKVNVODEUOSTVHWHWLVTVHWFWGWLVNVODEUQSTWJVTNZW
      BWKWLNZVQWMWBWKWLVQUPWNVQNHVJVPURWKWLVQUSUTVAVBVCVDVEVGVF $.

    $( A subset of a bounded metric space is bounded.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    bndss $p |- ( ( M e. ( Bnd ` X ) /\ S C_ X ) ->
        ( M |` ( S X. S ) ) e. ( Bnd ` S ) ) $=
      ( vy vr vx cme cfv wcel cv cbl co wceq crp wrex wral wa cbnd cin an32s wi
      wss cxp metres2 adantlr ssel2 ancoms oveq1 eqeq2d rexbidv rspcva adantlll
      cres sylan dfss biimpi incom syl6eq ineq1 adantll eqid blssp an4s anassrs
      sylan9eq adantr eqtr4d ex reximdva imp syldan ralrimiva jca isbnd 3imtr4i
      anbi1i ) BCGHIZCDJZEJZBKHZLZMZENOZDCPZQZACUBZQZBAAUCUMZAGHIZAFJZVSWHKHLZM
      ZENOZFAPZQBCRHIZWFQWHARHIWGWIWNVQWFWIWDBACUDUEWGWMFAWEWJAIZWFWMWEWPQWFWMV
      QWPWDWFWMUAVQWPQZWDQWFWMWQWFWDWMWQWFQZWDCWJVSVTLZMZENOZWMWPWFWDXAVQWPWFQW
      JCIZWDXAWFWPXBACWJUFUGWCXADWJCVRWJMZWBWTENXCWAWSCVRWJVSVTUHUIUJUKUNULWRXA
      WMWRWTWLENWRVSNIZQZWTWLXEWTQAWSASZWKWRWTAXFMZXDWFWTXGWQWFWTACASZXFWFAACSZ
      XHWFAXIMACUOUPACUQURCWSAUSVEUTUEXEWKXFMZWTWQWFXDXJVQWFWPXDXJVSABWHCWJWHVA
      VBVCVDVFVGVHVIVJVKTVHTVJTVLVMWOWEWFDBCEVNVPFWHAEVNVO $.

    $( A ball is bounded.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Proof
       shortened by Mario Carneiro, 15-Jan-2014.) $)
    blbnd $p |- ( ( M e. ( *Met ` X ) /\ Y e. X /\ R e. RR ) ->
          ( M |` ( ( Y ( ball ` M ) R ) X. ( Y ( ball ` M ) R ) ) ) e.
            ( Bnd ` ( Y ( ball ` M ) R ) ) ) $=
      ( vx vr cxmt cfv wcel cbl co c0 wceq wa crp wrex syl3an3 adantr syl3anc
      cv cr w3a cxp cres cbnd wral wss simp1 rexr blssm xmetres2 syl2anc adantl
      cxr rzal isbndx sylanbrc wne simpl2 simpl3 cc0 clt wbr xbln0 biimpa elrpd
      blcntr cin elind rexrd eqid blres inidm syl6req rspceov isbnd2 pm2.61dane
      wb simpld ) BCGHIZDCIZAUAIZUBZBDABJHKZWDUCUDZWDUEHIZWDLWCWDLMZNWEWDGHIZWD
      ETFTWEJHZKMFOPZEWDUFZWFWCWHWGWCVTWDCUGZWHVTWAWBUHZWBVTWAAUNIZWLAUIZBDACUJ
      QBWDCUKULZRWGWKWCWJEWDUOUMEWEWDFUPUQWCWDLURZNZWFWQWRWHWJEWDPZWFWQNWCWHWQW
      PRWRDWDIZAOIZWDDAWIKZMWSWRVTWAXAWTWCVTWQWMRZVTWAWBWQUSZWRAVTWAWBWQUTZWCWQ
      VAAVBVCZWBVTWAWNWQXFVRWOBDACVDQVEVFZBDACVGSZXGWRXBWDWDVHZWDWRVTDCWDVHIWNX
      BXIMXCWRCWDDXDXHVIWRAXEVJWEBDACWDWEVKVLSWDVMVNEFWDODAWDWIVOSEWEWDFVPUQVSV
      Q $.

    ssbnd.2 $e |- N = ( M |` ( Y X. Y ) ) $.
    $( A subset of a metric space is bounded iff it is contained in a ball
       around ` P ` , for any ` P ` in the larger space.  (Contributed by Mario
       Carneiro, 14-Sep-2015.) $)
    ssbnd $p |- ( ( M e. ( Met ` X ) /\ P e. X ) ->
      ( N e. ( Bnd ` Y ) <-> E. d e. RR Y C_ ( P ( ball ` M ) d ) ) ) $=
      ( vy vr cfv wcel wa co wss cr wrex c0 wceq cdm syl cme cbnd cv cbl wi wne
      wral cc0 0re ne0ii 0ss sseq1 mpbiri ralrimivw r19.2z sylancr a1i cxmt crp
      isbnd2 caddc simplll cxp cin cres dmeqi dmres eqtri cxr xmetf fdm syl5eqr
      wf df-ss sylibr ad2antlr metf ad3antrrr sseqtrd dmss dmxpid simprl sseldd
      3sstr3g simpllr metcl syl3anc ad2antll readdcld metxmet elind blres inss1
      rpre rpxr cmin cle wbr leidd recnd pncand breqtrrd blss2 syl33anc eqsstrd
      syl5ss sseq2d rspcev syl2anc rexbidv syl5ibrcom rexlimdvva expimpd syl5bi
      oveq2 expdimp pm2.61dne ex simprr xpss12 resabs1d syl6eqr syl3an1 adantrr
      blbnd 3expa bndss eqeltrrd rexlimdvaa impbid ) BDUAJKZADKZLZCEUBJZKZEAFUC
      ZBUDJZMZNZFOPZYMYOYTYMYOLZYTEQEQRZYTUEUUAUUBOQUFYSFOUGYTUHOUIUJUUBYSFOUUB
      YSQYRNYRUKEQYRULUMUNYSFOUOUPUQYMYOEQUFZYTYOUUCLCEURJKZEHUCZIUCZCUDJMZRZIU
      SPHEPZLYMYTHCEIUTYMUUDUUIYTYMUUDLZUUHYTHIEUSUUJUUEEKZUUFUSKZLZLZYTUUHUUGY
      RNZFOPZUUNUUEABMZUUFVAMZOKZUUGAUURYQMZNZUUPUUNUUQUUFUUNYKUUEDKZYLUUQOKYKY
      LUUDUUMVBZUUNEDUUEUUNEEVCZSZDDVCZSZEDUUNUVDUVFNUVEUVGNUUNUVDBSZUVFUUDUVDU
      VHNZYMUUMUUDUVDUVHVDZUVDRUVIUUDUVJCSZUVDUVKBUVDVEZSUVJCUVLGVFBUVDVGVHUUDU
      VDVICVMUVKUVDRCEVJUVDVICVKTVLUVDUVHVNVOVPYKUVHUVFRZYLUUDUUMYKUVFOBVMUVMBD
      VQUVFOBVKTVRVSUVDUVFVTTEWADWAWDUUJUUKUULWBZWCZYKYLUUDUUMWEZUUEABDWFWGZUUL
      UUFOKZUUJUUKUUFWNWHZWIZUUNUUGUUEUUFYQMZEVDZUUTUUNBDURJKZUUEDEVDKUUFVIKZUU
      GUWBRUUNYKUWCUVCBDWJZTZUUNDEUUEUVOUVNWKUULUWDUUJUUKUUFWOWHCBUUEUUFDEGWLWG
      UUNUWBUWAUUTUWAEWMUUNUWCUVBYLUVRUUSUUQUURUUFWPMZWQWRUWAUUTNUWFUVOUVPUVSUV
      TUUNUUQUUQUWGWQUUNUUQUVQWSUUNUUQUUFUUNUUQUVQWTUUNUUFUVSWTXAXBBUUEAUUFUURD
      XCXDXFXEUUOUVAFUUROYPUURRYRUUTUUGYPUURAYQXOXGXHXIUUHYSUUOFOEUUGYRULXJXKXL
      XMXNXPXQXRYMYSYOFOYMYPOKZYSLLZBYRYRVCZVEZUVDVEZCYNUWIUWLUVLCUWIBUVDUWJUWI
      YSYSUVDUWJNYMUWHYSXSZUWMEYREYRXTXIYAGYBUWIUWKYRUBJKZYSUWLYNKYMUWHUWNYSYKY
      LUWHUWNYKUWCYLUWHUWNUWEYPBDAYEYCYFYDUWMEUWKYRYGXIYHYIYJ $.
  $}

  ${
    $d d v w x y z M $.  $d d v x y z X $.
    $( A totally bounded metric space is bounded.  This theorem fails for
       extended metrics - a bounded extended metric is a metric, but there are
       totally bounded extended metrics that are not metrics (if we were to
       weaken ~ istotbnd to only require that ` M ` be an extended metric).  A
       counterexample is the discrete extended metric (assigning distinct
       points distance ` +oo ` ) on a finite set.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Proof shortened by Mario Carneiro, 12-Sep-2015.) $)
    totbndbnd $p |- ( M e. ( TotBnd ` X ) -> M e. ( Bnd ` X ) ) $=
      ( vx vv vd vz cfv wcel cv c1 co wceq crp wral cr clt wss syl3anc adantr
      c0 vy vw ctotbnd cme cbl ciun cpw cfn cin wrex cbnd totbndmet 1rp simprbi
      istotbnd3 oveq2 iuneq2d eqeq1d rexbidv rspcv mpsyl wa caddc cmpt crn csup
      wf simplll elfpw simplbi ad2antrl sselda simpllr metcl cc0 cle wbr metge0
      ge0p1rpd eqid fmptd frn syl wne rnfi 3syl simplr simprr eleqtrrd ne0i cdm
      mptfi dm0rn0 ovex dmmpti eqeq1i iuneq1 sylbi syl6eq sylbir necon3i rpssre
      0iun syl6ss wor w3a ltso fisupcl mpan cxmt cmin metxmet ad2antrr fimaxre2
      sseldd 1red syl2anc cvv elrnmpt1 mpan2 adantl suprub syl31anc wb leaddsub
      mpbid blss2 syl33anc ralrimiva nfcv nfmpt1 nfrn nfsup nfov nfss nfv oveq1
      sseq1d cbvral sylibr iunss cxr rpxrd blssm eqssd eqeq2d rspcev rexlimdvaa
      eqsstr3d ralrimdva isbnd baib sylibrd sylc ) ABUCGHZABUDGHZCDIZCIZJAUEGZK
      ZUFZBLZDBUGUHUIZUJZABUKGHZABULJMHUUOCUUQUUREIZUUSKZUFZBLZDUVCUJZEMNZUVDUM
      UUOUUPUVKCDABEUOUNUVJUVDEJMUVFJLZUVIUVBDUVCUVLUVHUVABUVLCUUQUVGUUTUVFJUUR
      UUSUPUQURUSUTVAUUPUVDBUAIZUVFUUSKZLZEMUJZUABNZUVEUUPUVDUVPUABUUPUVMBHZVBZ
      UVBUVPDUVCUVSUUQUVCHZUVBVBZVBZFUUQFIZUVMAKZJVCKZVDZVEZOPVFZMHBUVMUWHUUSKZ
      LZUVPUWBUWGMUWHUWBUUQMUWFVGUWGMQUWBFUUQUWEMUWFUWBUWCUUQHZVBZUWDUWLUUPUWCB
      HZUVRUWDOHZUUPUVRUWAUWKVHZUWBUUQBUWCUVTUUQBQZUVSUVBUVTUWPUUQUHHZUUQBVIZVJ
      VKVLZUUPUVRUWAUWKVMZUWCUVMABVNRZUWLUUPUWMUVRVOUWDVPVQUWOUWSUWTUWCUVMABVRR
      VSUWFVTZWAUUQMUWFWBWCZUWBUWGUHHZUWGTWDZUWGOQZUWHUWGHZUVTUXDUVSUVBUVTUWQUW
      FUHHUXDUVTUWPUWQUWRUNFUUQUWEWLUWFWEWFVKZUWBUVMUVAHUVATWDUXEUWBUVMBUVAUUPU
      VRUWAWGZUVSUVTUVBWHZWIUVAUVMWJUWGTUVATUWGTLUWFWKZTLZUVATLUWFWMUXLUVACTUUT
      UFZTUXLUUQTLUVAUXMLUXKUUQTFUUQUWEUWFUWDJVCWNZUXBWOWPCUUQTUUTWQWRCUUTXCWSW
      TXAWFZUWBUWGMOUXCXBXDZOPXEUXDUXEUXFXFUXGXGOUWGPXHXIRZXOZUWBBUWIUWBBUVAUWI
      UXJUWBUUTUWIQZCUUQNZUVAUWIQUWBUWCJUUSKZUWIQZFUUQNUXTUWBUYBFUUQUWLABXJGHZU
      WMUVRJOHZUWHOHZUWDUWHJXKKVPVQZUYBUWBUYCUWKUUPUYCUVRUWAABXLXMZSUWSUWTUWLXP
      ZUWBUYEUWKUWBUWGOUWHUXPUXQXOSZUWLUWEUWHVPVQZUYFUWLUXFUXEUBIUVFVPVQUBUWGNE
      OUJZUWEUWGHZUYJUWBUXFUWKUXPSZUWBUXEUWKUXOSUWLUXFUXDUYKUYMUWBUXDUWKUXHSEUB
      UWGXNXQUWKUYLUWBUWKUWEXRHUYLUXNFUUQUWEUWFXRUXBXSXTYAEUBUWGUWEYBYCUWLUWNUY
      DUYEUYJUYFYDUXAUYHUYIUWDJUWHYERYFAUWCUVMJUWHBYGYHYIUXSUYBCFUUQFUUTUWIFUUT
      YJFUVMUWHUUSFUVMYJFUUSYJFUWGOPFUWFFUUQUWEYKYLFOYJFPYJYMYNYOUYBCYPUURUWCLU
      UTUYAUWIUURUWCJUUSYQYRYSYTCUUQUUTUWIUUAYTUUIUWBUYCUVRUWHUUBHUWIBQUYGUXIUW
      BUWHUXRUUCAUVMUWHBUUDRUUEUVOUWJEUWHMUVFUWHLUVNUWIBUVFUWHUVMUUSUPUUFUUGXQU
      UHUUJUVEUUPUVQUAABEUUKUULUUMUUN $.
  $}

  ${
    $d r x y M $.  $d r s x y N $.  $d r x y ph $.  $d r s x y X $.
    $d s x y R $.
    equivbnd.1 $e |- ( ph -> M e. ( Bnd ` X ) ) $.
    equivbnd.2 $e |- ( ph -> N e. ( Met ` X ) ) $.
    equivbnd.3 $e |- ( ph -> R e. RR+ ) $.
    equivbnd.4 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
      ( x N y ) <_ ( R x. ( x M y ) ) ) $.
    $( If the metric ` M ` is "strongly finer" than ` N ` (meaning that there
       is a positive real constant ` R ` such that
       ` N ( x , y ) <_ R x. M ( x , y ) ` ), then boundedness of ` M ` implies
       boundedness of ` N ` .  (Using this theorem twice in each direction
       states that if two metrics are strongly equivalent, then one is bounded
       iff the other is.)  (Contributed by Mario Carneiro, 14-Sep-2015.) $)
    equivbnd $p |- ( ph -> N e. ( Bnd ` X ) ) $=
      ( vs vr wcel cv co cle wbr wral cr cme cfv wrex cbnd isbnd3b simprbi cmul
      syl rpred remulcl sylan bndmet adantr metcl 3expb simplr ad2antrr lemul2d
      wa crp adantlr wi remulcld letr syl3anc mpand sylbid ralimdvva wceq breq2
      2ralbidv rspcev syl6an rexlimdva mpd sylanbrc ) AFGUAUBZNZBOZCOZFPZLOZQRZ
      CGSBGSZLTUCZFGUDUBZNIAVSVTEPZMOZQRZCGSBGSZMTUCZWEAEWFNZWKHWLEVQNZWKMBCEGU
      EUFUHAWJWEMTAWHTNZUSZDWHUGPZTNZWJWAWPQRZCGSBGSZWEADTNZWNWQADJUIZDWHUJUKZW
      OWIWRBCGGWOVSGNZVTGNZUSZUSZWIDWGUGPZWPQRZWRXFWGWHDWOWMXEWGTNZAWMWNAWLWMHE
      GULUHUMWMXCXDXIVSVTEGUNUOUKZAWNXEUPADUTNWNXEJUQURXFWAXGQRZXHWRAXEXKWNKVAX
      FWATNZXGTNWQXKXHUSWRVBWOVRXEXLAVRWNIUMVRXCXDXLVSVTFGUNUOUKXFDWGAWTWNXEXAU
      QXJVCWOWQXEXBUMWAXGWPVDVEVFVGVHWDWSLWPTWBWPVIWCWRBCGGWBWPWAQVJVKVLVMVNVOL
      BCFGUEVP $.
  $}

  ${
    bnd2lem.1 $e |- D = ( M |` ( Y X. Y ) ) $.
    $( Lemma for ~ equivbnd2 and similar theorems.  (Contributed by Jeff
       Madsen, 16-Sep-2015.) $)
    bnd2lem $p |- ( ( M e. ( Met ` X ) /\ D e. ( Bnd ` Y ) ) -> Y C_ X ) $=
      ( cme cfv wcel cbnd cxp cdm wss dmss wceq cr wf metf fdm syl dmxpid resss
      wa cres eqsstri mp1i bndmet 3syl adantl adantr 3sstr3d 3sstr3g ) BCFGHZAD
      IGHZUBZDDJZKZCCJZKZDCUNUOUQLUPURLUNAKZBKZUOUQABLUSUTLUNABUOUCBEBUOUAUDABM
      UEUMUSUONZULUMADFGHUOOAPVAADUFADQUOOARUGUHULUTUQNZUMULUQOBPVBBCQUQOBRSUIU
      JUOUQMSDTCTUK $.
  $}

  ${
    $d x y C $.  $d x y D $.  $d x y ph $.  $d x y R $.  $d x y S $.
    $d x y Y $.
    equivbnd2.1 $e |- ( ph -> M e. ( Met ` X ) ) $.
    equivbnd2.2 $e |- ( ph -> N e. ( Met ` X ) ) $.
    equivbnd2.3 $e |- ( ph -> R e. RR+ ) $.
    equivbnd2.4 $e |- ( ph -> S e. RR+ ) $.
    equivbnd2.5 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
      ( x N y ) <_ ( R x. ( x M y ) ) ) $.
    equivbnd2.6 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
      ( x M y ) <_ ( S x. ( x N y ) ) ) $.
    equivbnd2.7 $e |- C = ( M |` ( Y X. Y ) ) $.
    equivbnd2.8 $e |- D = ( N |` ( Y X. Y ) ) $.
    equivbnd2.9 $e |- ( ph -> ( C e. ( TotBnd ` Y ) <-> C e. ( Bnd ` Y ) ) ) $.
    $( If balls are totally bounded in the metric ` M ` , then balls are
       totally bounded in the equivalent metric ` N ` .  (Contributed by Mario
       Carneiro, 15-Sep-2015.) $)
    equivbnd2 $p |- ( ph -> ( D e. ( TotBnd ` Y ) <-> D e. ( Bnd ` Y ) ) ) $=
      ( ctotbnd cfv wcel cbnd totbndbnd wa simpr cxp cres cme wss bnd2lem sylan
      adantr metres2 syl2anc syl5eqel crp cmul cle wbr sselda anim12dan adantlr
      cv co syldan wceq oveqi ovres syl5eq adantl oveq2d 3brtr4d biimpar bndmet
      equivbnd equivtotbnd ex impbid2 ) AEKUAUBZUCZEKUDUBZUCZEKUEAWDWBAWDUFZBCF
      DEKAWDDWCUCZDWAUCZWEBCGEDKAWDUGWEDHKKUHZUIZKUJUBZRWEHJUJUBZUCZKJUKZWIWJUC
      AWLWDLUNAIWKUCWDWMMEIJKSULUMZHKJUOUPUQAGURUCWDOUNWEBVEZKUCZCVEZKUCZUFZUFZ
      WOWQHVFZGWOWQIVFZUSVFZWOWQDVFZGWOWQEVFZUSVFUTWEWSWOJUCZWQJUCZUFZXAXCUTVAZ
      WEWPXFWRXGWEKJWOWNVBWEKJWQWNVBVCZAXHXIWDQVDVGWSXDXAVHWEWSXDWOWQWIVFXADWIW
      OWQRVIWOWQKKHVJVKVLZWTXEXBGUSWSXEXBVHWEWSXEWOWQIWHUIZVFXBEXLWOWQSVIWOWQKK
      IVJVKVLZVMVNVQAWGWFTVOVGWDEWJUCAEKVPVLAFURUCWDNUNWTXBFXAUSVFZXEFXDUSVFUTW
      EWSXHXBXNUTVAZXJAXHXOWDPVDVGXMWTXDXAFUSXKVMVNVRVSVT $.
  $}

  ${
    $d x z $.  $d a r z A $.  $d a r z C $.  $d f g k m r v y D $.  $d x y R $.
    $d f g k m r v w x y B $.  $d f g k r w y z E $.  $d a f g k r w x y ph $.
    $d f g k v w x y I $.  $d x S $.  $d f g k r w y z V $.  $d x Y $.
    prdsbnd.y $e |- Y = ( S Xs_ R ) $.
    prdsbnd.b $e |- B = ( Base ` Y ) $.
    prdsbnd.v $e |- V = ( Base ` ( R ` x ) ) $.
    prdsbnd.e $e |- E = ( ( dist ` ( R ` x ) ) |` ( V X. V ) ) $.
    prdsbnd.d $e |- D = ( dist ` Y ) $.
    prdsbnd.s $e |- ( ph -> S e. W ) $.
    prdsbnd.i $e |- ( ph -> I e. Fin ) $.
    prdsbnd.r $e |- ( ph -> R Fn I ) $.
    ${
      prdsbnd.m $e |- ( ( ph /\ x e. I ) -> E e. ( Bnd ` V ) ) $.
      $( The product metric over finite index set is bounded if all the factors
         are bounded.  (Contributed by Mario Carneiro, 13-Sep-2015.) $)
      prdsbnd $p |- ( ph -> D e. ( Bnd ` B ) ) $=
        ( vm vk vw vf vg vz cme cfv wcel cxp cv cicc co wf wrex cbnd cmpt cprds
        cc0 cr cds cbs cvv eqid fvexd bndmet syl prdsmet wfn dffn5 sylib oveq2d
        wa wceq syl5eq fveq2d 3eltr4d wral cfn wex isbnd3 ralrimiva oveq2 feq3d
        simprbi ac6sfi syl2anc crn csn cun clt csup wss frn adantl snssd adantr
        0red unssd c0 wne wfo ffn dffn4 fofi syl2an snfi unfi sylancl c0ex snid
        ssun2 sselii ne0i mp1i wor w3a ltso fisupcl mpan syl3anc sseldd cle wbr
        simprl simprr metcl cxr eleqtrd adantlr prdsbascl r19.21bi ad2ant2r 0re
        wb elicc2 sylancr suprub syl31anc sylanbrc adantrr metf ad2antrr metge0
        3syl oveqdr prdsdsval3 eqtrd ffvelrn fovrnd mpbid simp3d fimaxre2 ssun1
        ad2ant2lr ad2antlr fnfvelrn sseldi letrd expr ralimdva impr rgenw breq1
        ralrnmpt ax-mp sylibr a1i elsni breq1d syl5ibrcom ralrimiv ralunb fmptd
        ressxr syl6ss rexrd supxrleub mpbird eqbrtrd mpbir3and an32s ralrimivva
        ovex ffnov rspcev exlimddv ) ADCUGUHZUIZCCUJZUSUAUKZULUMZDUNZUAUTUOZDCU
        PUHUIAFBHBUKZEUHZUQZURUMZVAUHZUWRVBUHZUGUHDUWHABUWTUWSUWPFGHIJUWRVCUWRV
        DZUWTVDZNOUWSVDZQRAUWOHUIZVMZUWOEVEUXEGIUPUHUIZGIUGUHUIZTGIVFVGZVHADKVA
        UHUWSPAKUWRVAAKFEURUMUWRLAEUWQFURAEHVIEUWQVNSBHEVJVKVLVOZVPVOZACUWTUGAC
        KVBUHUWTMAKUWRVBUXIVPVOZVPVQZAHUTUBUKZUNZIIUJZUSUWOUXMUHZULUMZGUNZBHVRZ
        VMZUWNUBAHVSUIZUXOUSUCUKZULUMZGUNZUCUTUOZBHVRUXTUBVTRAUYEBHUXEUXFUYETUX
        FUXGUYEUCGIWAWEVGWBUYDUXRBUCHUTUBUYBUXPVNUYCUXQGUXOUYBUXPUSULWCWDWFWGAU
        XTVMZUXMWHZUSWIZWJZUTWKWLZUTUIZUWJUSUYJULUMZDUNZUWNAUXNUYKUXSAUXNVMZUYI
        UTUYJUYNUYGUYHUTUXNUYGUTWMAHUTUXMWNWOAUYHUTWMUXNAUSUTAWRWPWQWSZUYNUYIVS
        UIZUYIWTXAZUYIUTWMZUYJUYIUIZUYNUYGVSUIZUYHVSUIUYPAUYAHUYGUXMXBZUYTUXNRU
        XNUXMHVIZVUAHUTUXMXCZHUXMXDVKHUYGUXMXEXFUSXGUYGUYHXHXIZUSUYIUIZUYQUYNUY
        HUYIUSUYHUYGXLUSXJXKXMZUYIUSXNZXOUYOUTWKXPUYPUYQUYRXQUYSXRUTUYIWKXSXTYA
        YBZUUAZUYFDUWJVIZUDUKZUEUKZDUMZUYLUIZUECVRUDCVRUYMAVUJUXTAUWIUWJUTDUNVU
        JUXLDCUUBUWJUTDXCUUEWQUYFVUNUDUECCAVUKCUIZVULCUIZVMZUXTVUNAVUQVMZUXTVMZ
        VUNVUMUTUIZUSVUMYCYDZVUMUYJYCYDZVUSUWIVUOVUPVUTAUWIVUQUXTUXLUUCZVURVUOU
        XTAVUOVUPYEZWQZVURVUPUXTAVUOVUPYFZWQZVUKVULDCYGYAVUSUWIVUOVUPVVAVVCVVEV
        VGVUKVULDCUUDYAVUSVUMBHUWOVUKUHZUWOVULUHZGUMZUQZWHZUYHWJZYHWKWLZUYJYCVU
        RVUMVVNVNUXTVURVUMVUKVULUWSUMVVNAVUQUDUEDUWSUXJUUFVURBUWTUWSUWPFGVUKVUL
        HIJVSVCUWRUXAUXBAFJUIVUQQWQZAUYAVUQRWQZVURUWPVCUIBHVURUXDVMZUWOEVEWBZVU
        RVUKCUWTVVDACUWTVNVUQUXKWQZYIZVURVULCUWTVVFVVSYIZNOUXCUUGUUHWQVUSVVNUYJ
        YCYDZUYBUYJYCYDZUCVVMVRZVUSVWCUCVVLVRZVWCUCUYHVRVWDVUSVVJUYJYCYDZBHVRZV
        WEVURUXNUXSVWGVURUXNVMZUXRVWFBHVWHUXDUXRVWFVWHUXDUXRVMZVMZVVJUXPUYJVURU
        XDVVJUTUIZUXNUXRVVQUXGVVHIUIZVVIIUIZVWKAUXDUXGVUQUXHYJVURVWLBHVURBUWTUW
        PFVUKHIJVSVCUWRUXAUXBVVOVVPVVRNVVTYKYLZVURVWMBHVURBUWTUWPFVULHIJVSVCUWR
        UXAUXBVVOVVPVVRNVWAYKYLZVVHVVIGIYGYAZYMUXNUXDUXPUTUIZVURUXRHUTUWOUXMUUI
        UUOZVWHUYKVWIAUXNUYKVUQVUHYJWQVWJVWKUSVVJYCYDZVVJUXPYCYDZVWJVVJUXQUIZVW
        KVWSVWTXQZVWJVVHVVIUXQIIGVWHUXDUXRYFVURUXDVWLUXNUXRVWNYMVURUXDVWMUXNUXR
        VWOYMUUJVWJUSUTUIZVWQVXAVXBYOYNVWRUSUXPVVJYPYQUUKUULVWJUYRUYQUYBUFUKYCY
        DUCUYIVRUFUTUOZUXPUYIUIUXPUYJYCYDVWHUYRVWIAUXNUYRVUQUYOYJWQVUEUYQVWJVUF
        VUGXOVWHVXDVWIAUXNVXDVUQUYNUYRUYPVXDUYOVUDUFUCUYIUUMWGZYJWQVWJUYGUYIUXP
        UYGUYHUUNVWJVUBUXDUXPUYGUIUXNVUBVURVWIVUCUUPVWHUXDUXRYEHUWOUXMUUQWGUURU
        FUCUYIUXPYRYSUUSUUTUVAUVBVVJVCUIZBHVRVWEVWGYOVXFBHVVHVVIGUWDUVCVWCVWFBU
        CHVVJVVKVCVVKVDZUYBVVJUYJYCUVDUVEUVFUVGVUSVWCUCUYHVUSVWCUYBUYHUIZUSUYJY
        CYDZVUSUYRUYQVXDVUEVXIAUXNUYRVUQUXSUYOYMVUEUYQVUSVUFVUGXOAUXNVXDVUQUXSV
        XEYMVUEVUSVUFUVHUFUCUYIUSYRYSVXHUYBUSUYJYCUYBUSUVIUVJUVKUVLVWCUCVVLUYHU
        VMYTVUSVVMYHWMZUYJYHUIVWBVWDYOVURVXJUXTVURVVMUTYHVURVVLUYHUTVURHUTVVKUN
        VVLUTWMVURBHVVJUTVVKVWPVXGUVNHUTVVKWNVGVURUSUTVURWRWPWSUVOUVPWQVUSUYJAU
        XTUYKVUQVUIYJZUVQUCVVMUYJUVRWGUVSUVTVUSVXCUYKVUNVUTVVAVVBXQYOYNVXKUSUYJ
        VUMYPYQUWAUWBUWCUDUECCUYLDUWEYTUWMUYMUAUYJUTUWKUYJVNUWLUYLDUWJUWKUYJUSU
        LWCWDUWFWGUWGUADCWAYT $.
    $}

    ${
      prdstotbnd.m $e |- ( ( ph /\ x e. I ) -> E e. ( TotBnd ` V ) ) $.
      $( The product metric over finite index set is totally bounded if all the
         factors are totally bounded.  (Contributed by Mario Carneiro,
         20-Sep-2015.) $)
      prdstotbnd $p |- ( ph -> D e. ( TotBnd ` B ) ) $=
        ( vy vv vr vf vz vw vg cme cfv wcel cv cbl co ciun wceq cpw cfn cin crp
        wrex wral ctotbnd cmpt cprds cds cbs cvv wa fvexd totbndmet syl prdsmet
        eqid wfn dffn5 sylib oveq2d syl5eq fveq2d 3eltr4d wf wex adantr simprbi
        istotbnd3 r19.21bi df-rex rexv bitr4i an32s eleq1 iuneq1 eqeq1d anbi12d
        ralrimiva ac6sfi syl2anc cixp elfpw simplbi ralimi ad2antll ss2ixp fnfi
        wss cdm fndm prdsbas rgenw ixpeq2 ax-mp syl6eqr ad2antrr sseqtr4d ixpfi
        sylanbrc cxmt metxmet rpxr blssm 3expa syl2an ssralv sylc sylibr eleq2d
        cxr iunss vex elixp eliun 3bitr4i eleq2 syl5bbr biimprd adantl eleqtrrd
        wi ex syl6ibr ral2imi sylbid imp oveq1 simpl anim12i biimpa ixpfn simpr
        syl5 simp-4l sseldd simp-4r fveq2 cbvmptv oveq2i oveqdr adantlr eleqtrd
        ffn simprl cc0 clt wbr rpgt0 prdsbl eqtrd syl12anc jca eximdv mpd ssrdv
        eqssd rspcev exlimddv ) ADCUHUIZUJZUAUBUKZUAUKZUCUKZDULUIZUMZUNZCUOZUBC
        UPUQURZUTZUCUSVADCVBUIUJAFBHBUKZEUIZVCZVDUMZVEUIZUWJVFUIZUHUIDUVPABUWLU
        WKUWHFGHIJUWJVGUWJVMUWLVMNOUWKVMQRAUWGHUJZVHZUWGEVIUWNGIVBUIUJZGIUHUIUJ
        ZTGIVJVKZVLADKVEUIZUWKPAKUWJVEAKFEVDUMUWJLAEUWIFVDAEHVNZEUWIUOSBHEVOVPV
        QVRZVSVRACUWLUHACKVFUIZUWLMAKUWJVFUWTVSVRVSVTZAUWFUCUSAUVTUSUJZVHZHVGUD
        UKZWAZUWGUXEUIZIUPUQURZUJZUEUXGUEUKZUVTGULUIZUMZUNZIUOZVHZBHVAZVHZUWFUD
        UXDHUQUJZUFUKZUXHUJZUEUXSUXLUNZIUOZVHZUFVGUTZBHVAUXQUDWBAUXRUXCRWCZUXDU
        YDBHAUWMUXCUYDUWNUXCVHUYBUFUXHUTZUYDUWNUYFUCUSUWNUWOUYFUCUSVAZTUWOUWPUY
        GUEUFGIUCWEWDVKWFUYFUYCUFWBUYDUYBUFUXHWGUYCUFWHWIVPWJWOUYCUXOBUFHVGUDUX
        SUXGUOZUXTUXIUYBUXNUXSUXGUXHWKUYHUYAUXMIUEUXSUXGUXLWLWMWNWPWQUXDUXQVHZB
        HUXGWRZUWEUJZUAUYJUWBUNZCUOZUWFUYIUYJCXEZUYJUQUJZUYKUYIUYJBHIWRZCUYIUXG
        IXEZBHVAZUYJUYPXEZUXPUYRUXDUXFUXOUYQBHUXIUYQUXNUXIUYQUXGUQUJZUXGIWSZWTW
        CXAXBBHUXGIXCVKZACUYPUOZUXCUXQACBHUWHVFUIZWRZUYPABCKEFHJUQLQAUWSUXREUQU
        JSRHEXDWQMAUWSEXFHUOSHEXGVKXHIVUDUOZBHVAUYPVUEUOVUFBHNXIBHIVUDXJXKXLZXM
        ZXNZUYIUXRUYTBHVAZUYOUXDUXRUXQUYEWCZUXPVUJUXDUXFUXOUYTBHUXIUYTUXNUXIUYQ
        UYTVUAWDWCXAXBBHUXGXOWQUYJCWSXPUYIUYLCUYIUWBCXEZUAUYJVAZUYLCXEUYIUYNVUL
        UACVAZVUMVUIUXDVUNUXQADCXQUIUJZUVTYGUJZVUNUXCAUVQVUOUXBDCXRVKUVTXSZVUOV
        UPVHVULUACVUOUVSCUJZVUPVULVUOVURVUPVULDUVSUVTCXTYAWJWOYBWCVULUAUYJCYCYD
        UAUYJUWBCYHYEUYIUGCUYLUYIUGUKZCUJZVUSUWBUJZUAUYJUTZVUSUYLUJUYIVUTVVBUYI
        VUTVHZHVGUVSWAZUWGUVSUIZUXGUJZUWGVUSUIZVVEUVTUXKUMZUJZVHZBHVAZVHZUAWBZV
        VBVVCUXRUXJUXGUJZVVGUXLUJZVHZUEVGUTZBHVAZVVMUYIUXRVUTVUKWCUYIVUTVVRUYIV
        UTVUSUYPUJZVVRUYICUYPVUSVUHYFZVVSVVGIUJZBHVAZUYIVVRVVSVUSHVNZVWBBHIVUSU
        GYIZYJWDUXPVWBVVRYRUXDUXFUXOVWAVVQBHUXNVWAVVQYRUXIUXNVVQVWAVVQVVGUXMUJZ
        UXNVWAVVOUEUXGUTVVPUEWBVWEVVQVVOUEUXGWGUEVVGUXGUXLYKVVPUEWHYLUXMIVVGYMY
        NYOYPUUAXBUUJUUBUUCVVPVVJBUEHVGUAUXJVVEUOZVVNVVFVVOVVIUXJVVEUXGWKVWFUXL
        VVHVVGUXJVVEUVTUXKUUDYFWNWPWQVVCVVMUVSUYJUJZVVAVHZUAWBVVBVVCVVLVWHUAVVC
        VVLVWHVVCVVLVHZVWGVVAVVLVWGVVCVVLUVSHVNZVVFBHVAZVHVWGVVDVWJVVKVWKHVGUVS
        UUTVVJVVFBHVVFVVIUUEXAUUFBHUXGUVSUAYIYJYEYPZVWIVUSBHVVHWRZUWBVWIVWCVVIB
        HVAZVUSVWMUJVVCVWCVVLVVCVVSVWCUYIVUTVVSVVTUUGBHIVUSUUHVKWCVVKVWNVVCVVDV
        VJVVIBHVVFVVIUUIXAXBBHVVHVUSVWDYJXPVWIAVURUXCUWBVWMUOAUXCUXQVUTVVLUUKZV
        WIUVSUYPCVWIUYJUYPUVSUYIUYSVUTVVLVUBXMVWLUULVWIAVUCVWOVUGVKYQAUXCUXQVUT
        VVLUUMAVURUXCVHZVHZUWBUVSUVTFUAHUVSEUIZVCZVDUMZVEUIZULUIZUMVWMAVWPUAUCU
        WAVXBADVXAULADUWRVXAPAKVWTVEAKUWJVWTUWTVWSUWIFVDUABHVWRUWHUVSUWGEUUNUUO
        UUPZXLZVSVRVSUUQVWQBUVTVWTVFUIZVXAUVSUWHFGHIJVWTVGVXCVXEVMNOVXAVMAFJUJV
        WPQWCAUXRVWPRWCVWQUWMVHUWGEVIAUWMGIXQUIUJZVWPUWNUWPVXFUWQGIXRVKUURVWQUV
        SCVXEAVURUXCUVAACVXEUOVWPACUXAVXEMAKVWTVFVXDVSVRWCUUSUXCVUPAVURVUQXBUXC
        UVBUVTUVCUVDAVURUVTUVEXBUVFUVGUVHYQUVIYSUVJVVAUAUYJWGYTUVKYSUAVUSUYJUWB
        YKYTUVLUVMUWDUYMUBUYJUWEUVRUYJUOUWCUYLCUAUVRUYJUWBWLWMUVNWQUVOWOUAUBDCU
        CWEXP $.
    $}

    prdsbnd2.c $e |- C = ( D |` ( A X. A ) ) $.
    prdsbnd2.e $e |- ( ( ph /\ x e. I ) -> E e. ( Met ` V ) ) $.
    prdsbnd2.m $e |- ( ( ph /\ x e. I ) ->
      ( ( E |` ( y X. y ) ) e. ( TotBnd ` y ) <->
        ( E |` ( y X. y ) ) e. ( Bnd ` y ) ) ) $.
    $( If balls are totally bounded in each factor, then balls are bounded in a
       metric product.  (Contributed by Mario Carneiro, 16-Sep-2015.) $)
    prdsbnd2 $p |- ( ph -> ( C e. ( TotBnd ` A ) <-> C e. ( Bnd ` A ) ) ) $=
      ( va vr ctotbnd cfv wcel cbnd totbndbnd wi c0 wceq bndmet 0totbnd syl5ibr
      cme a1i wne cv wex n0 wa cbl co wss cr wrex simprr cmpt cprds cds cbs cvv
      wb eqid fvexd prdsmet wfn dffn5 sylib oveq2d syl5eq fveq2d 3eltr4d adantr
      simpr bnd2lem syl2an simprl sseldd ssbnd syl2anc cxp cres xpss12 resabs1d
      mpbid syl6eqr crp simpll cc0 clt wbr ne0i syl cxmt ad2antrr metxmet rexrd
      cxr xbln0 syl3anc elrpd cress cfn fveq2 sqxpeqd reseq12d oveq123d oveq12d
      ovex eqidd cbvmptv fnmpti adantlr wral ralrimiva eleqtrd reseq2d ad2antll
      prdsbascl eleq12d eqtr4d oveq2i fveq2i cixp eqtrd r19.21bi simplrr xpeq12
      rpred blbnd anidms imbi2d vtocl mpbird fvmpt adantl ressds ax-mp ressbas2
      bibi12d blssm reseq1i prdstotbnd ressprdsds ixpeq2dva oveqdr rpgt0 prdsbl
      rpxr prdsbas3 3eqtr4rd 3eltr3d syl12anc totbndss eqeltrrd rexlimddv exp32
      exlimdv syl5bi pm2.61dne impbid2 ) AFDUHUIZUJZFDUKUIUJZFDULAUVSUVRUMZDUND
      UNUOZUVTUMAUVSUVRUWAFDUSUIUJFDUPFDUQURUTDUNVAUFVBZDUJZUFVCAUVTUFDVDAUWCUV
      TUFAUWCUVSUVRAUWCUVSVEZVEZDUWBUGVBZGVFUIZVGZVHZUVRUGVIUWEUVSUWIUGVIVJZAUW
      CUVSVKUWEGEUSUIZUJZUWBEUJZUVSUWJVQAUWLUWDAIBKBVBZHUIZVLZVMVGZVNUIZUWQVOUI
      ZUSUIGUWKABUWSUWRUWOIJKLMUWQVPUWQVRZUWSVRZQRUWRVRTUAAUWNKUJZVEZUWNHVSZUDV
      TAGNVNUIZUWRSANUWQVNANIHVMVGUWQOAHUWPIVMAHKWAHUWPUOUBBKHWBWCWDWEZWFWEAEUW
      SUSAENVOUIZUWSPANUWQVOUXFWFWEZWFWGZWHUWEDEUWBAUWLUVSDEVHUWDUXIUWCUVSWIFGE
      DUCWJWKAUWCUVSWLZWMZUWBGFEDUGUCWNWOWTUWEUWFVIUJZUWIVEZVEZGUWHUWHWPZWQZDDW
      PZWQZFUVQUXNUXRGUXQWQFUXNGUXQUXOUXNUWIUWIUXQUXOVHUWEUXLUWIVKZUXSDUWHDUWHW
      RWOWSUCXAUXNUXPUWHUHUIZUJZUWIUXRUVQUJUXNAUWMUWFXBUJZUYAAUWDUXMXCUWEUWMUXM
      UXKWHZUXNUWFUWEUXLUWIWLZUXNUWHUNVAZXDUWFXEXFZUXNUWBUWHUJUYEUXNDUWHUWBUXSU
      WEUWCUXMUXJWHWMUWHUWBXGXHUXNGEXIUIUJZUWMUWFXMUJZUYEUYFVQUXNUWLUYGAUWLUWDU
      XMUXIXJGEXKXHUYCUXNUWFUYDXLGUWBUWFEXNXOWTXPAUWMUYBVEZVEZICKCVBZHUIZUYKUWB
      UIZUWFUYLVNUIZUYLVOUIZUYOWPZWQZVFUIZVGZXQVGZVLZVMVGZVNUIZVUBVOUIZUHUIUXPU
      XTUYJBVUDVUCVUAIUWNVUAUIZVNUIZVUEVOUIZVUGWPZWQZKVUGMVUBVUBVRVUDVRVUGVRVUI
      VRVUCVRAIMUJUYITWHZAKXRUJUYIUAWHZVUAKWAUYJBKUWOUWNUWBUIZUWFJVFUIZVGZXQVGZ
      VUAUWOVUNXQYDZCBKUYTVUOUYKUWNUOZUYLUWOUYSVUNXQUYKUWNHXSZVUQUYMVULUWFUWFUY
      RVUMVUQUYQJVFVUQUYQUWOVNUIZLLWPZWQZJVUQUYNVUSUYPVUTVUQUYLUWOVNVURWFVUQUYO
      LVUQUYOUWOVOUILVUQUYLUWOVOVURWFQXAXTYARXAWFUYKUWNUWBXSVUQUWFYEYBYCZYFZYGU
      TUYJUXBVEZJVUNVUNWPZWQZVUNUHUIZVUIVUGUHUIVVDVVFVVGUJZVVFVUNUKUIZUJZVVDJLX
      IUIUJZVULLUJZUXLVVJVVDJLUSUIUJZVVKAUXBVVMUYIUDYHJLXKXHZUYJVVLBKUYJBUWSUWO
      IUWBKLMXRVPUWQUWTUXAVUJVUKAUWOVPUJZBKYIUYIAVVOBKUXDYJWHQUYJUWBEUWSAUWMUYB
      WLZAEUWSUOUYIUXHWHYKYNUUAZVVDUWFAUWMUYBUXBUUBUUDUWFJLVULUUEXOAUXBVVHVVJVQ
      ZUYIUXCJUYKUYKWPZWQZUYKUHUIZUJZVVTUYKUKUIZUJZVQZUMUXCVVRUMCVUNVULUWFVUMYD
      ZUYKVUNUOZVWEVVRUXCVWGVWBVVHVWDVVJVWGVVTVVFVWAVVGVWGVVSVVEJVWGVVSVVEUOUYK
      VUNUYKVUNUUCUUFYLZUYKVUNUHXSYOVWGVVTVVFVWCVVIVWHUYKVUNUKXSYOUUOUUGUEUUHYH
      UUIVVDVUIVUSVVEWQZVVFVVDVUFVUSVUHVVEVVDVUFVUOVNUIZVUSVVDVUEVUOVNUXBVUEVUO
      UOUYJCUWNUYTVUOKVUAVVBVUAVRVUPUUJUUKZWFVUNVPUJZVUSVWJUOVWFVUNVUSUWOVUOVPV
      UOVRZVUSVRUULUUMXAVVDVUGVUNVVDVUGVUOVOUIZVUNVVDVUEVUOVOVWKWFVVDVUNLVHZVUN
      VWNUOVVDVVKVVLUYHVWOVVNVVQUYJUYHUXBUYBUYHAUWMUWFUVDYMZWHJVULUWFLUUPXOZVUN
      LVUOUWOVWMQUUNXHZYPZXTYAVVDVVFVVAVVEWQVWIJVVAVVERUUQVVDVUSVVEVUTVVDVWOVWO
      VVEVUTVHVWQVWQVUNLVUNLWRWOWSWEYPVVDVUGVUNUHVWSWFWGUURUYJVUCGIBKVUOVLZVMVG
      ZVOUIZVXBWPZWQUXPUYJBVUNVXBGUWOIIMVUCVXAKMXRVPNVPANUWQUOUYIUXFWHUYJVXAYEV
      XBVRZSVUBVXAVNVUAVWTIVMVVCYQZYRVUJVUJVUKVVDUWNHVSZVWLVVDVWFUTUUSUYJVXCUXO
      GUYJVXBUWHUYJBKVUNYSZBKVWNYSUWHVXBUYJBKVUNVWNVWRUUTUYJUWHUWBUWFICKUYLVLZV
      MVGZVNUIZVFUIZVGVXGAUYIUFUGUWGVXKAGVXJVFAGUXEVXJSANVXIVNANUWQVXIUXFVXHUWP
      IVMCBKUYLUWOVURYFYQZXAZWFWEWFUVAUYJBUWFVXIVOUIZVXJUWBUWOIJKLMVXIVPVXLVXNV
      RQRVXJVRVUJVUKVXFVVNUYJUWBEVXNVVPAEVXNUOUYIAEUXGVXNPANVXIVOVXMWFWEWHYKVWP
      UYBUYFAUWMUWFUVBYMUVCYTUYJBVXBVUOIKVWNMXRVPVXAVXAVRVXDVUJVUKUYJVUOVPUJZBK
      VXOVVDVUPUTYJVWNVRUVEUVFZXTYLYTUYJVUDUWHUHUYJVUDVXBUWHVUBVXAVOVXEYRVXPWEW
      FUVGUVHUXSDUXPUWHUVIWOUVJUVKUVLUVMUVNUVOUVP $.
  $}

  ${
    $d a b d r x y z D $.  $d d r x y z X $.
    cntotbnd.d $e |- D = ( ( abs o. - ) |` ( X X. X ) ) $.
    $( A subset of the complex numbers is totally bounded iff it is bounded.
       (Contributed by Mario Carneiro, 14-Sep-2015.) $)
    cntotbnd $p |- ( D e. ( TotBnd ` X ) <-> D e. ( Bnd ` X ) ) $=
      ( vx vz cfv wcel cabs co cc cgz cmul c1 caddc ci cr clt wbr wceq cle cbnd
      vy vr vd va vb ctotbnd totbndbnd cv cmin ccom cbl ciun wss cin c0 wne cfn
      crab wa cpw wrex crp wral cmpt crn wf gzcn mulcl eqid syl cre cdiv c2 cfl
      cim cz cnmet rerpdivcld halfre readdcl sylancl flcld syl2anc rpcnd abscld
      1re a1i cexp zcnd ax-icn sylancr recnd replimd rpred oveq2d subdid fveq2d
      eqtrd oveq1d zred resubcld resqcld absresq rddif absge0d cc0 le2sqd mpbid
      halfgt0 eqbrtrrd halfcn lelttrd mpbird cnmetdval absmuld rpge0d absidd wb
      mpbi cxr cnxmet oveq2 eleq2d rspcev cvv ovex oveq1 syl6ibr mp2an ad2antlr
      0cn wi adantr wn letrd absled elfz syl3anc eqeq2d adantl syl2an fmptd frn
      rpcn cnex elpw2 sylibr cme bnd2lem mpan sselda adantrl recld simprl imcld
      gzreim rpne0d divcld subcld addsub4d redivd imdivd oveq12d 3eqtr4d elrpii
      absreimsq resqcli mp1i sqvali halflt1 ltmul1ii mulid2i breqtri lt2halvesd
      eqbrtri eqbrtrd sq1 syl6breqr 0le1 lt2sqd ltmul2dd mulcld divcan2d eqtr3d
      rpge0 3eqtrrd mulid1d 3brtr3d cxmt ad2antrl elbl2 syl22anc eliun rexrnmpt
      rpxr expr rgenw ax-mp bitri ssrdv simpl ssbnd sylib cneg cfz cxp wfo fzfi
      cmpt2 xpfi wfn fnmpt2i dffn4 fofi elrnmpti elgz simp2bi readdcld peano2zd
      simpllr simplrl absrele cxad simplrr sslin adantlr rpxrd rexrd w3a bldisj
      3exp2 imp32 syl32anc sseq0 syl6an imp rexadd subid1d breq12d mtbid ltnled
      necon3ad ltmuldiv2d flltp1 lttrd ltled znegcld simp3bi absimle rspc2ev ex
      ineq1d neeq1d eleq1 imbi12d syl5ibrcom rexlimdva syl5bi 3imp rabssdv ssfi
      elrnmpt2 rexlimddv iuneq1 sseq2d rabeq eleq1d anbi12d ralrimiva sstotbnd3
      syl12anc impbii ) ABUGFGZABUAFGZABUHVVOVVNBDUBUIZDUIZUCUIZHUJUKZULFZIZUMZ
[encoded data, 5280 characters]
      GVVHVVIYEVVLVVJVVOVYOVYPVVNVWKXSVRVYQDUBVVSAJBUCCVVKWLXNVVM $.
  $}

  ${
    $d x y A $.  $d x y I $.
    cnpwstotbnd.y $e |- Y = ( ( CCfld |`s A ) ^s I ) $.
    cnpwstotbnd.d $e |- D = ( ( dist ` Y ) |` ( X X. X ) ) $.
    $( A subset of ` A ^ I ` , where ` A C_ CC ` , is totally bounded iff it is
       bounded.  (Contributed by Mario Carneiro, 14-Sep-2015.) $)
    cnpwstotbnd $p |- ( ( A C_ CC /\ I e. Fin ) ->
        ( D e. ( TotBnd ` X ) <-> D e. ( Bnd ` X ) ) ) $=
      ( wss wcel ccnfld cfv cxp cds cres cbs cvv eqid cme fveq2d eleq1d vx csca
      vy cc cfn wa cress co csn cprds ctotbnd cbnd cv fvexd simpr ovex fnconstg
      wfn mp1i cmt cnfldms cnex ssex ad2antrr ressms sylancr msmet syl fvconst2
      wceq adantl sqxpeqd reseq12d 3eltr4d totbndbnd cnfldbas ressbas2 eleqtrrd
      wi bnd2lem ex syl5 wb cabs cmin cntotbnd a1i sseq2d biimpa xpss12 syl2anc
      ccom adantr cnfldds ressds reseq1d eqtr4d 3bitr4d pm5.21ndd pwsval syl5eq
      resabs1d prdsbnd2 ) AUDHZCUEIZUFZJAUGUHZUBKZCXGUILZUJUHZMKZDDLZNZDUKKZIXM
      DULKZIBXNIBXOIXFUAUCDXJOKZXMXKXIXHUAUMZXIKZMKZXROKZXTLZNZCXTPXJXJQXPQXTQY
      BQXKQXFXGUBUNXDXEUOZXGPIZXICURXFJAUGUPZCXGPUQUSXMQXFXQCIZUFZXGMKZXGOKZYIL
      ZNZYIRKZYBXTRKYGXGUTIZYKYLIYGJUTIAPIZYMVAXDYNXEYFAUDVBVCVDZAJPVEVFYKXGYIY
      IQYKQVGVHZYGXSYHYAYJYGXRXGMYFXRXGVJXFCXGXQYEVIVKZSYGXTYIYGXRXGOYQSZVLVMZY
      GXTYIRYRSVNYGYKUCUMZYTLZNZYTUKKZIZUUBYTULKZIZYBUUANZUUCIUUGUUEIYGYTAHZUUD
      UUFUUDUUFYGUUHUUBYTVOYGYKARKZIZUUFUUHVSYGYKYLUUIYPYGAYIRXDAYIVJXEYFAUDXGJ
      XGQZVPVQVDZSVRUUJUUFUUHUUBYKAYTUUBQVTWAVHZWBUUMYGUUHUUDUUFWCYGUUHUFZWDWEW
      LZUUANZUUCIZUUPUUEIZUUDUUFUUQUURWCUUNUUPYTUUPQWFWGUUNUUBUUPUUCUUNUUBYHUUA
      NUUPUUNYHUUAYJUUNYTYIHZUUSUUAYJHYGUUHUUSYGAYIYTUULWHWIZUUTYTYIYTYIWJWKXBU
      UNUUOYHUUAUUNYNUUOYHVJYGYNUUHYOWMAUUOJXGPUUKWNWOVHWPWQZTUUNUUBUUPUUEUVATW
      RWAWSYGUUGUUBUUCYGYBYKUUAYSWPZTYGUUGUUBUUEUVBTWRXCXFBXMXNXFBEMKZXLNXMGXFU
      VCXKXLXFEXJMXFYDXEEXJVJYEYCXGXHCPUEEFXHQWTVFSWPXAZTXFBXMXOUVDTWR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Isometries
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Ismty $.
  $( Extend class notation with the class of metric space isometries. $)
  cismty $a class Ismty $.

  ${
    $d m n f x y $.
    $( Define a function which takes two metric spaces and returns the set of
       isometries between the spaces.  An isometry is a bijection which
       preserves distance.  (Contributed by Jeff Madsen, 2-Sep-2009.) $)
    df-ismty $a |- Ismty = ( m e. U. ran *Met , n e. U. ran *Met |->
        { f | ( f : dom dom m -1-1-onto-> dom dom n /\ A. x e. dom dom m
            A. y e. dom dom m ( x m y ) = ( ( f ` x ) n ( f ` y ) ) ) } ) $.
  $}

  ${
    $d M m n f x y $.  $d N m n f x y $.  $d X m n f x y $.  $d Y m n f x y $.
    $( The set of isometries between two metric spaces.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    ismtyval $p |- ( ( M e. ( *Met ` X ) /\ N e. ( *Met ` Y ) ) ->
      ( M Ismty N ) = { f | ( f : X -1-1-onto-> Y /\ A. x e. X A. y e. X
                            ( x M y ) = ( ( f ` x ) N ( f ` y ) ) ) } ) $=
      ( vm vn cxmt cfv wcel wa cv cdm co wceq wral wb syl crn cuni wf1o cab cvv
      cismty cmpt2 df-ismty a1i cxp dmeq cxr xmetf fdm sylan9eqr ad2ant2r dmeqd
      wf dmxpid syl6eq f1oeq2 ad2ant2l f1oeq3 bitrd eqeqan12d raleqbidv anbi12d
      oveq adantl abbidv fvssunirn simpl sseldi simpr cmap adantr elfvdm elmapg
      wss f1of syl2anr syl5ibr abssdv ovex ssex ovmpt2d ) DFJKZLZEGJKZLZMZHIDEJ
      UAUBZWLHNZOZOZINZOZOZCNZUCZANZBNZWMPZXAWSKZXBWSKZWPPZQZBWORZAWORZMZCUDZFG
      WSUCZXAXBDPZXDXEEPZQZBFRZAFRZMZCUDZUFUEUFHIWLWLXKUGQWKABCHIUHUIWKWMDQZWPE
      QZMZMZXJXRCYCWTXLXIXQYCWTFWRWSUCZXLYCWOFQWTYDSYCWOFFUJZOFYCWNYEWHXTWNYEQW
      JYAXTWHWNDOZYEWMDUKWHYEULDURYFYEQDFUMYEULDUNTUOUPUQFUSUTZWOFWRWSVATYCWRGQ
      YDXLSYCWRGGUJZOGYCWQYHWJYAWQYHQWHXTYAWJWQEOZYHWPEUKWJYHULEURYIYHQEGUMYHUL
      EUNTUOVBUQGUSUTWRGFWSVCTVDYCXHXPAWOFYGYCXGXOBWOFYGYBXGXOSWKXTYAXCXMXFXNXA
      XBWMDVHXDXEWPEVHVEVIVFVFVGVJWKWGWLDJFVKWHWJVLVMWKWIWLEJGVKWHWJVNVMWKXSGFV
      OPZVSXSUELWKXRCYJXRWSYJLZWKFGWSURZXLYLXQFGWSVTVPWJGJOZLFYMLYKYLSWHEGJVQDF
      JVQGFWSYMYMVRWAWBWCXSYJGFVOWDWETWF $.
  $}

  ${
    $d M f x y $.  $d N f x y $.  $d X f x y $.  $d Y f x y $.  $d F f x y $.
    $( The condition "is an isometry".  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    isismty $p |- ( ( M e. ( *Met ` X ) /\ N e. ( *Met ` Y ) ) ->
      ( F e. ( M Ismty N ) <-> ( F : X -1-1-onto-> Y /\ A. x e. X A. y e. X
                              ( x M y ) = ( ( F ` x ) N ( F ` y ) ) ) ) ) $=
      ( vf cxmt cfv wcel wa co cv wf1o wceq wral cvv elfvdm fveq1 cismty eleq2d
      cab ismtyval wi wb wf f1of adantr fex2 syl3an 3expib com12 f1oeq1 oveq12d
      cdm eqeq2d 2ralbidv anbi12d elab3g syl bitrd ) DFIJKZEGIJKZLZCDEUAMZKCFGH
      NZOZANZBNZDMZVIVGJZVJVGJZEMZPZBFQAFQZLZHUCZKZFGCOZVKVICJZVJCJZEMZPZBFQAFQ
      ZLZVEVFVRCABHDEFGUDUBVEWFCRKZUEVSWFUFWFVEWGWFVCVDWGWFFGCUGZVCFIUPZKVDGWIK
      WGVTWHWEFGCUHUIDFISEGISFGCWIWIUJUKULUMVQWFHCRVGCPZVHVTVPWEFGVGCUNWJVOWDAB
      FFWJVNWCVKWJVLWAVMWBEVIVGCTVJVGCTUOUQURUSUTVAVB $.
  $}

  ${
    $d u v x y F $.  $d u v x y M $.  $d u v x y N $.  $d u v x y X $.
    $d u v x y Y $.
    $( The inverse of an isometry is an isometry.  (Contributed by Jeff Madsen,
       2-Sep-2009.) $)
    ismtycnv $p |- ( ( M e. ( *Met ` X ) /\ N e. ( *Met ` Y ) ) ->
                      ( F e. ( M Ismty N ) -> `' F e. ( N Ismty M ) ) ) $=
      ( vx vy vu vv cxmt cfv wcel wa wf1o cv co wceq wral cismty wi ccnv f1ocnv
      adantr f1ocnvdm anim12d imdistani oveq1 fveq2 oveq1d eqeq12d oveq2 oveq2d
      ex rspc2v impcom adantll f1ocnvfv2 adantrr adantrl oveq12d adantlr eqtr2d
      syl ralrimivva jca a1i isismty wb ancoms 3imtr4d ) BDJKLZCEJKLZMZDEANZFOZ
      GOZBPZVOAKZVPAKZCPZQZGDRFDRZMZEDAUAZNZHOZIOZCPZWFWDKZWGWDKZBPZQZIERHERZMZ
      ABCSPLWDCBSPLZWCWNTVMWCWEWMVNWEWBDEAUBUCWCWLHIEEWCWFELZWGELZMZMZWKWIAKZWJ
      AKZCPZWHWSWCWIDLZWJDLZMZMWKXBQZWCWRXEVNWRXETWBVNWPXCWQXDVNWPXCDEWFAUDUMVN
      WQXDDEWGAUDUMUEUCUFWBXEXFVNXEWBXFWAXFWIVPBPZWTVSCPZQFGWIWJDDVOWIQZVQXGVTX
      HVOWIVPBUGXIVRWTVSCVOWIAUHUIUJVPWJQZXGWKXHXBVPWJWIBUKXJVSXAWTCVPWJAUHULUJ
      UNUOUPVCVNWRXBWHQWBVNWRMWTWFXAWGCVNWPWTWFQWQDEWFAUQURVNWQXAWGQWPDEWGAUQUS
      UTVAVBVDVEVFFGABCDEVGVLVKWOWNVHHIWDCBEDVGVIVJ $.
  $}

  ${
    $d x y F $.  $d x y M $.  $d x y N $.  $d x y P $.  $d x R $.  $d x y X $.
    $d x y Y $.
    $( The image of a ball under an isometry is another ball.  (Contributed by
       Jeff Madsen, 31-Jan-2014.) $)
    ismtyima $p |- ( ( ( M e. ( *Met ` X ) /\ N e. ( *Met ` Y ) /\
       F e. ( M Ismty N ) ) /\ ( P e. X /\ R e. RR* ) ) ->
               ( F " ( P ( ball ` M ) R ) ) = ( ( F ` P ) ( ball ` N ) R ) ) $=
      ( vx vy cfv wcel co wa wss wceq adantr syl syl3anc wb clt cxmt cismty w3a
      cxr cbl cima crn imassrn wf1o wral isismty biimp3a simpld f1of frn syl5ss
      cv wf sseld simpl2 simprl ffvelrn syl2anc simprr blssm wbr simpl1 simplrr
      ccnv simplrl f1ocnv 3syl sylan elbl2 syl22anc simprd oveq1 oveq1d eqeq12d
      wi fveq2 oveq2 oveq2d rspc2v impancom imp syldan breq1d bitrd wf1 f1elima
      f1of1 f1ocnvfv2 simpr eqeltrd 3bitr4d eleq1d 3bitr3d ex pm5.21ndd eqrdv )
      DFUAJKZEGUAJKZCDEUBLKZUCZAFKZBUDKZMZMZHCABDUEJLZUFZACJZBEUEJLZXIHUQZGKZXN
      XKKZXNXMKZXIXKGXNXIXKCUGZGCXJUHXIFGCURZXRGNXIFGCUIZXSXIXTXNIUQZDLZXNCJZYA
      CJZELZOZIFUJHFUJZXEXTYGMZXHXBXCXDYHHICDEFGUKULPZUMZFGCUNQZFGCUOQUPUSXIXMG
      XNXIXCXLGKZXGXMGNXBXCXDXHUTZXIXSXFYLYKXEXFXGVAZFGACVBVCZXEXFXGVDZEXLBGVER
      USXIXOXPXQSXIXOMZXNCVIZJZCJZXKKZYTXMKZXPXQYQYSXJKZXLYTELZBTVFZUUAUUBYQUUC
      AYSDLZBTVFZUUEYQXBXGXFYSFKZUUCUUGSXIXBXOXBXCXDXHVGZPXEXFXGXOVHZXEXFXGXOVJ
      XIGFYRURZXOUUHXIXTGFYRUIUUKYJFGCVKGFYRUNVLGFXNYRVBVMZYSDABFVNVOYQUUFUUDBT
      XIXOUUHUUFUUDOZUULXIUUHUUMXIXFYGUUHUUMVTYNXIXTYGYIVPXFUUHYGUUMYFUUMAYADLZ
      XLYDELZOHIAYSFFXNAOZYBUUNYEUUOXNAYADVQUUPYCXLYDEXNACWAVRVSYAYSOZUUNUUFUUO
      UUDYAYSADWBUUQYDYTXLEYAYSCWAWCVSWDWEVCWFWGWHWIYQFGCWJZUUHXJFNZUUAUUCSXIUU
      RXOXIXTUURYJFGCWLQPUULXIUUSXOXIXBXFXGUUSUUIYNYPDABFVERPFGCYSXJWKRYQXCXGYL
      YTGKUUBUUESXIXCXOYMPUUJXIYLXOYOPYQYTXNGXIXTXOYTXNOYJFGXNCWMVMZXIXOWNWOYTE
      XLBGVNVOWPYQYTXNXKUUTWQYQYTXNXMUUTWQWRWSWTXA $.
  $}

  ${
    $d r u w x y z F $.  $d f r u w z J $.  $d f r u w x y z N $.  $d r w ph $.
    $d f u K $.  $d f x y M $.  $d f u x y X $.  $d f r u w x y z Y $.
    ismtyhmeo.1 $e |- J = ( MetOpen ` M ) $.
    ismtyhmeo.2 $e |- K = ( MetOpen ` N ) $.
    ${
      ismtyhmeolem.3 $e |- ( ph -> M e. ( *Met ` X ) ) $.
      ismtyhmeolem.4 $e |- ( ph -> N e. ( *Met ` Y ) ) $.
      ismtyhmeolem.5 $e |- ( ph -> F e. ( M Ismty N ) ) $.
      $( Lemma for ~ ismtyhmeo .  (Contributed by Jeff Madsen, 2-Sep-2009.)
         (Revised by Mario Carneiro, 12-Sep-2015.) $)
      ismtyhmeolem $p |- ( ph -> F e. ( J Cn K ) ) $=
        ( co wcel cv cfv wral wceq cxr vu vx vy vz vw vr ccn ccnv cima cbl wf1o
        wf crn cismty wa cxmt wb isismty syl2anc mpbid simpld syl cxp adantr wi
        f1of ismtycnv simprl simprr ismtyima syl32anc f1ocnv 3syl simpl ffvelrn
        mpd syl2an blopn syl3anc eqeltrd ralrimivva fveq2 df-ov syl6eqr imaeq2d
        cop eleq1d ralxp sylibr cpw wfn blf ffn imaeq2 ralrn 4syl mpbird ctopon
        mopntopon ctg mopnval tgcn mpbir2and ) ABCDUGNOGHBULZBUHZUAPZUIZCOZUAFU
        JQZUMZRZAGHBUKZXDAXLUBPZUCPZENXMBQXNBQFNSUCGRUBGRZABEFUNNOZXLXOUOZMAEGU
        PQOZFHUPQOZXPXQUQKLUBUCBEFGHURUSUTVAZGHBVFVBAXKXEUDPZXIQZUIZCOZUDHTVCZR
        ZAXEUEPZUFPZXINZUIZCOZUFTRUEHRYFAYKUEUFHTAYGHOZYHTOZUOZUOZYJYGXEQZYHEUJ
        QNZCYOXSXRXEFEUNNOZYLYMYJYQSAXSYNLVDAXRYNKVDZAYRYNAXPYRMAXRXSXPYRVEKLBE
        FGHVGUSVPVDAYLYMVHAYLYMVIZYGYHXEFEHGVJVKYOXRYPGOZYMYQCOYSAHGXEULZYLUUAY
        NAXLHGXEUKUUBXTGHBVLHGXEVFVMYLYMVNHGYGXEVOVQYTEYPYHCGIVRVSVTWAYDYKUDUEU
        FHTYAYGYHWFZSZYCYJCUUDYBYIXEUUDYBUUCXIQYIYAUUCXIWBYGYHXIWCWDWEWGWHWIAXS
        YEHWJZXIULXIYEWKXKYFUQLFHWLYEUUEXIWMXHYDUAUDYEXIXFYBSXGYCCXFYBXEWNWGWOW
        PWQAUAXJBCDGHAXRCGWRQOKECGIWSVBAXSDXJWTQSLFDHJXAVBAXSDHWRQOLFDHJWSVBXBX
        C $.
    $}

    $( An isometry is a homeomorphism on the induced topology.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 12-Sep-2015.) $)
    ismtyhmeo $p |- ( ( M e. ( *Met ` X ) /\ N e. ( *Met ` Y ) ) ->
                      ( M Ismty N ) C_ ( J Homeo K ) ) $=
      ( vf cxmt cfv wcel wa cismty co chmeo cv ccn ccnv ismtyhmeolem simpll imp
      simplr simpr ismtycnv ishmeo sylanbrc ex ssrdv ) CEJKLZDFJKLZMZICDNOZABPO
      ZULIQZUMLZUOUNLZULUPMZUOABROLUOSZBAROLUQURUOABCDEFGHUJUKUPUAZUJUKUPUCZULU
      PUDTURUSBADCFEHGVAUTULUPUSDCNOLUOCDEFUEUBTUOABUFUGUHUI $.
  $}

  ${
    $d r w x y z F $.  $d r w x y z M $.  $d r w y z N $.  $d r w x y z X $.
    $d r w y z Y $.
    $( Lemma for ~ ismtybnd .  (Contributed by Jeff Madsen, 2-Sep-2009.)
       (Proof shortened by Mario Carneiro, 19-Jan-2014.) $)
    ismtybndlem $p |- ( ( N e. ( *Met ` Y ) /\ F e. ( M Ismty N ) ) ->
        ( M e. ( Bnd ` X ) -> N e. ( Bnd ` Y ) ) ) $=
      ( vx vr vy vz vw cfv wcel co wa cv wceq crp wrex wral wi cxmt cismty cbnd
      cbl w3a ccnv wf1o isismty biimp3a simpld f1ocnv f1of 3syl ffvelrnda oveq1
      wf eqeq2d rexbidv rspcv syl cima imaeq2 wfo f1ofo foima adantr cxr adantl
      rpxr anim12dan ismtyima syldan simpl f1ocnvfv2 syl2an oveq1d eqtrd syl5ib
      eqeq12d anassrs reximdva syld ralrimdva simp2 jctild 3expib com12 3imtr4g
      impd isbndx ) CEUAKLZABCUBMLZNZBDUAKLZDFOZGOZBUDKZMZPZGQRZFDSZNWKEHOZWPCU
      DKZMZPZGQRZHESZNZBDUCKLCEUCKLWMWNXAXHWNWMXAXHTZWNWKWLXIWNWKWLUEZXAXGWKXJX
      AXFHEXJXBELZNZXADXBAUFZKZWPWQMZPZGQRZXFXLXNDLZXAXQTXJEDXBXMXJDEAUGZEDXMUG
      EDXMUPXJXSIOZJOZBMXTAKYAAKCMPJDSIDSZWNWKWLXSYBNIJABCDEUHUIUJZDEAUKEDXMULU
      MUNZWTXQFXNDWOXNPZWSXPGQYEWRXODWOXNWPWQUOUQURUSUTXLXPXEGQXJXKWPQLZXPXETXP
      ADVAZAXOVAZPXJXKYFNZNZXEDXOAVBYJYGEYHXDXJYGEPZYIXJXSDEAVCYKYCDEAVDDEAVEUM
      VFYJYHXNAKZWPXCMZXDXJYIXRWPVGLZNYHYMPXJXKXRYFYNYDYFYNXJWPVIVHVJXNWPABCDEV
      KVLYJYLXBWPXCXJXSXKYLXBPYIYCXKYFVMDEXBAVNVOVPVQVSVRVTWAWBWCWNWKWLWDWEWFWG
      WIFBDGWJHCEGWJWH $.

    $( Isometries preserve boundedness.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by Mario Carneiro, 19-Jan-2014.) $)
    ismtybnd $p |- ( ( M e. ( *Met ` X ) /\ N e. ( *Met ` Y ) /\
      F e. ( M Ismty N ) ) -> ( M e. ( Bnd ` X ) <-> N e. ( Bnd ` Y ) ) ) $=
      ( cxmt cfv wcel cismty co w3a cbnd wi ismtybndlem 3adant1 ismtycnv 3impia
      ccnv 3adant2 syld3an3 impbid ) BDFGHZCEFGHZABCIJHZKBDLGHZCELGHZUCUDUEUFMU
      BABCDENOUBUCUDARZCBIJHZUFUEMZUBUCUDUHABCDEPQUBUHUIUCUGCBEDNSTUA $.
  $}

  ${
    $d u v A $.  $d u v x y F $.  $d u v x y M $.  $d u v x y N $.  $d u v S $.
    $d u v T $.  $d u v x y X $.  $d u v x y Y $.
    ismtyres.2 $e |- B = ( F " A ) $.
    ismtyres.3 $e |- S = ( M |` ( A X. A ) ) $.
    ismtyres.4 $e |- T = ( N |` ( B X. B ) ) $.
    $( A restriction of an isometry is an isometry.  The condition ` A C_ X `
       is not necessary but makes the proof easier.  (Contributed by Jeff
       Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 12-Sep-2015.) $)
    ismtyres $p |- ( ( ( M e. ( *Met ` X ) /\ N e. ( *Met ` Y ) ) /\
      ( F e. ( M Ismty N ) /\ A C_ X ) ) -> ( F |` A ) e. ( S Ismty T ) ) $=
      ( vu cxmt cfv wcel wa co wceq syl2anc vv vx vy cismty cres cima wf1o wral
      wss cv wf1 isismty simprbda adantrr f1of1 simprr f1ores biimpa wi anim12d
      syl ssel oveq1 fveq2 oveq1d eqeq12d oveq2 oveq2d rspc2v adantlrl adantlll
      imp an32s cxp oveqi ovres syl5eq fvres ad2antrl ad2antll oveq12d wfun cdm
      adantl f1ofun sseq2d biimparc funfvima2 syl6eleqr adantrl ovresd adantlrr
      f1odm eqtrd 3eqtr4d ralrimivva mpdan wb xmetres2 ad2ant2rl simplr imassrn
      syl5eqel crn eqsstri f1ofo forn 3syl syl5sseq fveq2i syl6eleq mpbir2and
      wfo ) FHNOPZGINOPZQZEFGUDRPZAHUIZQZQZEAUEZCDUDRPZAEAUFZYAUGZMUJZUAUJZCRZY
      EYAOZYFYAOZDRZSZUAAUHMAUHZXTHIEUKZXRYDXTHIEUGZYMXPXQYNXRXPXQYNUBUJZUCUJZF
      RZYOEOZYPEOZGRZSZUCHUHUBHUHZUBUCEFGHIULZUMUNZHIEUOVAXPXQXRUPHIAEUQTXTYNUU
      BQZYLXPXQUUEXRXPXQUUEUUCURUNXPXRUUEYLXQXPXRQUUEQZYKMUAAAUUFYEAPZYFAPZQZQY
      EYFFRZYEEOZYFEOZGRZYGYJXRUUEUUIUUJUUMSZXPXRUUBUUIUUNYNXRUUIUUBUUNXRUUIQZU
      UBUUNUUOYEHPZYFHPZQZUUBUUNUSXRUUIUURXRUUGUUPUUHUUQAHYEVBAHYFVBUTVLUUAUUNY
      EYPFRZUUKYSGRZSUBUCYEYFHHYOYESZYQUUSYTUUTYOYEYPFVCUVAYRUUKYSGYOYEEVDVEVFY
      PYFSZUUSUUJUUTUUMYPYFYEFVGUVBYSUULUUKGYPYFEVDVHVFVIVAVLVMVJVKUUIYGUUJSUUF
      UUIYGYEYFFAAVNUEZRUUJCUVCYEYFKVOYEYFAAFVPVQWDXRUUEUUIYJUUMSZXPXRYNUUIUVDU
      UBXRYNQZUUIQZYJUUKUULDRZUUMUVFYHUUKYIUULDUUGYHUUKSUVEUUHYEAEVRVSUUHYIUULS
      UVEUUGYFAEVRVTWAUVFUVGUUKUULGBBVNUEZRUUMDUVHUUKUULLVOUVFUUKUULGBUVEUUGUUK
      BPUUHUVEUUGQUUKYCBUVEUUGUUKYCPZUVEEWBZAEWCZUIZUUGUVIUSYNUVJXRHIEWEWDZYNUV
      LXRYNUVKHAHIEWMWFWGZAYEEWHTVLJWIUNUVEUUHUULBPUUGUVEUUHQUULYCBUVEUUHUULYCP
      ZUVEUVJUVLUUHUVOUSUVMUVNAYFEWHTVLJWIWJWKVQWNWLVKWOWPVJWQXTCANOZPZDYCNOZPY
      BYDYLQWRXNXRUVQXOXQXNXRQCUVCUVPKFAHWSXCWTXTDBNOZUVRXTDUVHUVSLXTXOBIUIUVHU
      VSPXNXOXSXAXTEXDZBIBYCUVTJEAXBXEXTYNHIEXMUVTISUUDHIEXFHIEXGXHXIGBIWSTXCBY
      CNJXJXKMUAYACDAYCULTXL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Heine-Borel Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d n t x y A $.  $d k n r t u x y F $.  $d g k t x G $.  $d g k r t x ph $.
    $d g k m n r t u v x y z D $.  $d g k m r t u x y z M $.  $d m n x y z T $.
    $d g n t u v y B $.  $d g k m n r t u v x y z J $.  $d g n t u v x y z U $.
    $d g t y z ps $.  $d k m n t u v x y z S $.  $d g k m n r t u v x y z X $.
    $d m n t u v y C $.  $d g n t x y z K $.  $d k t x Y $.  $d k v x Z $.
    heibor.1 $e |- J = ( MetOpen ` D ) $.
    ${
      $d m F $.  $d m n u y ph $.
      heibor1.3 $e |- ( ph -> D e. ( Met ` X ) ) $.
      heibor1.4 $e |- ( ph -> J e. Comp ) $.
      heibor1.5 $e |- ( ph -> F e. ( Cau ` D ) ) $.
      heibor1.6 $e |- ( ph -> F : NN --> X ) $.
      $( Lemma for ~ heibor1 .  A compact metric space is complete.  This proof
         works by considering the collection ` cls ( F " ( ZZ>= `` n ) ) ` for
         each ` n e. NN ` , which has the finite intersection property because
         any finite intersection of upper integer sets is another upper integer
         set, so any finite intersection of the image closures will contain
         ` ( F " ( ZZ>= `` m ) ) ` for some ` m ` .  Thus, by compactness, the
         intersection contains a point ` y ` , which must then be the
         convergent point of ` F ` .  (Contributed by Jeff Madsen,
         17-Jan-2014.)  (Revised by Mario Carneiro, 5-Jun-2014.) $)
      heibor1lem $p |- ( ph -> F e. dom ( ~~>t ` J ) ) $=
        ( vk vu cfv wrex wcel c0 wss wi cn wa vy vr vm vn cv cima wceq cuz cint
        crn cdm ccld cpw cfi wn wex syl imassrn frn sseqtrd syl5ss eqid syl2anc
        wf eleq1a fvex cfn cin wral bitri wne raleq anbi2d inteq sseq2d rexbidv
        imbi12d weq cc0 wfn uzf ffn ax-mp fnfvelrn cvv imaeq2 sseq1d rspcev a1i
        mp2an ssralv vex eqeq1 sylib uzin2 inss2 inss1 imass2 expcom syl6 com23
        cz impd syl5 imp nnuz exlimdv ssn0 sylancr rexlimdva adantr mpd sylan2b
        c1 n0 wb eleq2d wbr wal co clt crp fveq2d ralimi ad2antrr ad2antll sylc
        mpbid rpxrd sseli caddc ad3antrrr eluznn ad2ant2lr ffvelrnd syl22anc cr
        syl3anc metcl rpred ccl cab clm ccmp ctop cuni cxmt cme metxmet mopntop
        mopnuni clscld rexlimdvw abssdv elpw2 sylibr elin selpw ssabral csn cun
        anbi1i 0z ssv int0 sseqtr4i ssun1 anim2i imim1i ssun2 ralsn sscls sseq2
        syl5ibrcom anim12i ssin intunsn syl6sseqr rexlimdvv reeanv cbvrexv expd
        ss2in 3imtr3g sylcom findcard2 com12 impr eqeltri mpan2 uzn0 wfun fnfun
        fndm syl5sseqr funfvima2 ne0i necomd neneqd nrexdv 0ex zex pwex abrexex
        1z ssexi elfi sylnibr cmptop cmpfi ibi fveq2 notbid neeq1d syl6bb syl3c
        rspccv lmrel r19.23v albii eleq2 ceqsalv ralbii ralcom4 elintab 3bitr4i
        wrel bitr3i eqeq2d elab mpbir intss1 clsss3 sseqtr4d sselda c2 cdiv w3a
        cpm cca 1zzd iscau3 simprd simp3 reximi rphalfcl breq2 2ralbidv rspccva
        cc syl2an cbl ffun simplr rspcv ad2antrl blopn blcntr clsndisj syl32anc
        nnz cxr fvelima sylan2 adantl reximdv ex syl5bi r19.29 uznnssnn simprlr
        simplrl simpllr elbl3 simprr lt2add mpan2d rpcnd 2halvesd breq2d sylibd
        cle mettri2 syl13anc readdcld mpand syld anassrs ralimdva expr reximdva
        lelttr ssrexv sylsyld syldanl ralrimiva eqidd lmmbrf mpbir2and sylan2br
        releldm exlimddv ) AUAUEZKUEZCLUEZUFZDUUAMZMZUGZLUHUJZNZKUUBZUIZOZCDUUC
[encoded data, 6160 characters]
        $.
    $}

    $( One half of ~ heibor , that does not require any Choice.  A compact
       metric space is complete and totally bounded.  We prove completeness in
       ~ cmpcmet and total boundedness here, which follows trivially from the
       fact that the set of all ` r ` -balls is an open cover of ` X ` , so
       finitely many cover ` X ` .  (Contributed by Jeff Madsen,
       16-Jan-2014.) $)
    heibor1 $p |- ( ( D e. ( Met ` X ) /\ J e. Comp ) ->
                    ( D e. ( CMet ` X ) /\ D e. ( TotBnd ` X ) ) ) $=
      ( vx vy vz vr cfv wcel wa cv wi wral ralrimiva cuni wceq wrex cfn crp cme
      ccmp cms ctotbnd cn wf clm cdm cca simpll simplr simprl simprr heibor1lem
      expr c1 nnuz 1zzd simpl iscmet3 mpbird cbl co cab cpw cin wss cxr metxmet
      cxmt rpxr blopn syl3an 3com23 3expa eleq1a syl rexlimdva adantlr ad2antrr
      id abssdv mopnuni blcntr syl3an1 ovex elabrex adantl elunii syl2anc nfre1
      nfcv nfab nfuni dfss3f sylibr unissd eqssd eqid cmpcov syl3anc elin ancom
      bitri anbi1i anass rexbii2 sylib eqcom eqeq1d syl5rbb anbi1d syl5bb elpwi
      eqsstr3d ssabral anim2i syl6bi reximdv mpd istotbnd sylanbrc jca ) ACUAIJ
      ZBUBJZKZACUCIJZACUDIJZYFYGUECELZUFZYIBUGIUHJZMZEAUIIZNYFYLEYMYFYIYMJZYJYK
      YFYNYJKZKAYIBCDYDYEYOUJYDYEYOUKYFYNYJULYFYNYJUMUNUOOYFAEBUPCUEUQDYFURYDYE
      USZUTVAYFYDYIPZCQZFLZGLZHLZAVBIZVCZQZGCRZFYINZKZESRZHTNYHYPYFUUHHTYFUUATJ
      ZKZYIUUEFVDZVEZJZBPZYQQZKZESRZUUHUUJUUOEUULSVFZRZUUQUUJYEUUKBVGUUNUUKPZQU
      USYDYEUUIUKUUJUUEFBYDUUIUUEYSBJZMYEYDUUIKZUUDUVAGCUVBYTCJZKZUUCBJZUUDUVAM
      YDUUIUVCUVEYDUVCUUIUVEYDACVJIJZUVCUVCUUIUUAVHJUVEACVIZUVCWAUUAVKAYTUUABCD
      VLVMVNVOUUCBYSVPVQVRVSWBZUUJUUNUUTUUJUUNCUUTUUJUVFCUUNQYDUVFYEUUIUVGVTABC
      DWCVQZUUJYTUUTJZGCNZCUUTVGYDUUIUVKYEUVBUVJGCUVDYTUUCJZUUCUUKJZUVJYDUUIUVC
      UVLYDUVCUUIUVLYDUVFUVCUUIUVLUVGAYTUUACWDWEVNVOUVCUVMUVBGFCUUCYTUUAUUBWFWG
      WHYTUUCUUKWIWJOVSGCUUTGCWLGUUKUUEGFUUDGCWKWMWNWOWPXOUUJUUKBUVHWQWRUUKBUUN
      EUUNWSWTXAUUOUUPEUURSYIUURJZUUOKYISJZUUMKZUUOKUVOUUPKUVNUVPUUOUVNUUMUVOKU
      VPYIUULSXBUUMUVOXCXDXEUVOUUMUUOXFXDXGXHUUJUUPUUGESUUJUUPYRUUMKZUUGUUPUUOU
      UMKUUJUVQUUMUUOXCUUJUUOYRUUMYRCYQQUUJUUOYQCXIUUJCUUNYQUVIXJXKXLXMUUMUUFYR
      UUMYIUUKVGUUFYIUUKXNUUEFYIXPXHXQXRXSXTOGEACFHYAYBYC $.

    ${
      heibor.3 $e |- K = { u | -. E. v e. ( ~P U i^i Fin ) u C_ U. v } $.
      ${
        heiborlem1.4 $e |- B e. _V $.
        $( Lemma for ~ heibor .  We work with a fixed open cover ` U `
           throughout.  The set ` K ` is the set of all subsets of ` X ` that
           admit no finite subcover of ` U ` .  (We wish to prove that ` K ` is
           empty.)  If a set ` C ` has no finite subcover, then any finite
           cover of ` C ` must contain a set that also has no finite subcover.
           (Contributed by Jeff Madsen, 23-Jan-2014.) $)
        heiborlem1 $p |- ( ( A e. Fin /\ C C_ U_ x e. A B /\ C e. K ) ->
                            E. x e. A B e. K ) $=
          ( vt cfn wcel wss wrex wa wn ciun cv cuni cpw wral wceq sseq1 rexbidv
          cin notbid elab2 con2bii ralbii ralnex bitr2i wf cfv wex unieq sseq2d
          wi ac6sfi adantr elab2g ibi crn frn ad2antrl inss1 syl6ss sspwuni vex
          ex sylib rnex uniex elpw sylibr wfo wfn dffn4 fofi syldan inss2 unifi
          ffn syl2anc elind adantlr simplr fnfvelrn sylan adantll elssuni uniss
          3syl sstr2 syl5com ralimdva impr iunss sstrd rspcev nsyl3 syld syl5bi
          exlimdv con4d 3impia ) DOPZFADEUAZQZFJPZEJPZADRZXJXLSZXOXMXOTZEBUBZUC
          ZQZBHUDZOUIZRZADUEZXPXMTZYDXNTZADUEXQYCYFADXNYCCUBZXSQZBYBRZTZYCTCEJM
          YGEUFZYIYCYKYHXTBYBYGEXSUGUHUJLUKULUMXNADUNUOXPYDDYBNUBZUPZEAUBZYLUQZ
          UCZQZADUEZSZNURZYEXJYDYTVAXLXJYDYTXTYQABDYBNXRYOUFXSYPEXRYOUSUTVBVMVC
          XPYSYENXPYSYEXMFXSQZBYBRZXPYSSZXMUUBTZYJUUDCFJJYGFUFZYIUUBUUEYHUUABYB
          YGFXSUGUHUJLVDVEUUCYLVFZUCZYBPZFUUGUCZQZUUBXJYSUUHXLXJYSSZYAOUUGUUKUU
          GHQZUUGYAPUUKUUFYAQUULUUKUUFYBYAYMUUFYBQXJYRDYBYLVGVHZYAOVIVJUUFHVKVN
          UUGHUUFYLNVLVOVPVQVRUUKUUFOPZUUFOQUUGOPXJYSDUUFYLVSZUUNUUKYLDVTZUUOYM
          UUPXJYRDYBYLWFZVHDYLWAVNDUUFYLWBWCUUKUUFYBOUUMYAOWDVJUUFWEWGWHWIUUCFX
          KUUIXJXLYSWJXJYSXKUUIQZXLUUKEUUIQZADUEZUURXJYMYRUUTXJYMSZYQUUSADUVAYN
          DPZSZYPUUIQZYQUUSUVCYOUUFPZYOUUGQUVDYMUVBUVEXJYMUUPUVBUVEUUQDYNYLWKWL
          WMYOUUFWNYOUUGWOWPEYPUUIWQWRWSWTADEUUIXAVRWIXBUUAUUJBUUGYBXRUUGUFXSUU
          IFXRUUGUSUTXCWGXDVMXGXEXFXHXI $.
      $}

      heibor.4 $e |- G = { <. y , n >. |
                          ( n e. NN0 /\ y e. ( F ` n ) /\ ( y B n ) e. K ) } $.
      ${
        heiborlem2.5 $e |- A e. _V $.
        heiborlem2.6 $e |- C e. _V $.
        $( Lemma for ~ heibor .  Substitutions for the set ` G ` .
           (Contributed by Jeff Madsen, 23-Jan-2014.) $)
        heiborlem2 $p |- ( A G C <-> ( C e. NN0 /\
                            A e. ( F ` C ) /\ ( A B C ) e. K ) ) $=
          ( cn0 wcel cv cfv co w3a wceq eleq1 oveq1 eleq1d 3anbi23d fveq2 oveq2
          eleq2d 3anbi123d brab ) IUAZSTZAUAZUOJUBZTZUQUOEUCZMTZUDUPDURTZDUOEUC
          ZMTZUDFSTZDFJUBZTZDFEUCZMTZUDAIDFKQRUQDUEZUSVBVAVDUPUQDURUFVJUTVCMUQD
          UOEUGUHUIUOFUEZUPVEVBVGVDVIUOFSUFVKURVFDUOFJUJULVKVCVHMUOFDEUKUHUMPUN
          $.
      $}

      $d x B $.
      heibor.5 $e |- B = ( z e. X , m e. NN0 |->
                            ( z ( ball ` D ) ( 1 / ( 2 ^ m ) ) ) ) $.
      heibor.6 $e |- ( ph -> D e. ( CMet ` X ) ) $.
      heibor.7 $e |- ( ph -> F : NN0 --> ( ~P X i^i Fin ) ) $.
      heibor.8 $e |- ( ph -> A. n e. NN0 X = U_ y e. ( F ` n ) ( y B n ) ) $.
      $( Lemma for ~ heibor .  Using countable choice ~ ax-cc , we have fixed
         in advance a collection of finite ` 2 ^ -u n ` nets ` ( F `` n ) ` for
         ` X ` (note that an ` r ` -net is a set of points in ` X ` whose ` r `
         -balls cover ` X ` ).  The set ` G ` is the subset of these points
         whose corresponding balls have no finite subcover (i.e. in the set
         ` K ` ).  If the theorem was false, then ` X ` would be in ` K ` , and
         so some ball at each level would also be in ` K ` .  But we can say
         more than this; given a ball ` ( y B n ) ` on level ` n ` , since
         level ` n + 1 ` covers the space and thus also ` ( y B n ) ` , using
         ~ heiborlem1 there is a ball on the next level whose intersection with
         ` ( y B n ) ` also has no finite subcover.  Now since the set ` G ` is
         a countable union of finite sets, it is countable (which needs ~ ax-cc
         via ~ iunctb ), and so we can apply ~ ax-cc to ` G ` directly to get a
         function from ` G ` to itself, which points from each ball in ` K ` to
         a ball on the next level in ` K ` , and such that the intersection
         between these balls is also in ` K ` .  (Contributed by Jeff Madsen,
         18-Jan-2014.) $)
      heiborlem3 $p |- ( ph -> E. g A. x e. G
          ( ( g ` x ) G ( ( 2nd ` x ) + 1 ) /\
            ( ( B ` x ) i^i ( ( g ` x ) B ( ( 2nd ` x ) + 1 ) ) ) e. K ) ) $=
        ( vt cuni cv wf cfv c2nd c1 caddc co wbr cin wcel wa wral wex cdom wrex
        com cn0 csn cxp ciun nn0ex fvex snex xpex iunex c1st wrel wceq relopabi
        cvv wss cop w3a 1st2nd mpan eleq1d df-br syl6bbr heiborlem2 syl6bb snid
        opelxp mpbiran2 fveq2 sneq xpeq12d eleq2d rspcev sylan2br eliun 3adant3
        ibi sylibr syl eqeltrd ssriv ssdomg mp2 cen cn nnenom entri endom ax-mp
        nn0ennn vex xpsnen cfn inss2 ffvelrnda sseldi sylancr ralrimiva ffvelrn
        cpw syl2an oveq1 syl5eq oveq2 eqtrd ineq2d c2 cexp adantl elpwid oveq2d
        cdiv ovex syl2anc adantr syl3anc sylib heiborlem1 cmopn sdomdom endomtr
        csdm sylbi iunctb domtr simp1d peano2nn0 iunin2 cbviunv iuneq1d iuneq2d
        isfinite eqeq2d rspccva fveq2d df-ov syl6eqr inss1 simp2d sseldd ovmpt2
        cbl cxmt cxr cme cms cmetmet metxmet nnexpcl nnrpd rpreccld rpxrd blssm
        2nn eqsstrd df-ss eqtr3d eqimss2 simp3d inex1 mopnuni sseqtrd sselda id
        adantrr unisn uniiun eqtr3i sseqtri mp3an12 eleq1 biimpri syl3an simprr
        snfi rexsn 3expb jca32 ex reximdv2 eqeltri uniex breq1 anbi12d axcc4dom
        mpd exsimpr ) ANOUFZJUGZUHZBUGZUXJUIZUXLUJUIZUKULUMZNUNZUXLGUIZUXMUXOGU
        MZUOZPUPZUQZBNURZUQJUSZUYBJUSANVBUTUNZUEUGZUXONUNZUXQUYEUXOGUMZUOZPUPZU
        QZUEUXIVAZBNURUYCANUEVCUYEMUIZUYEVDZVEZVFZUTUNZUYOVBUTUNZUYDUYOVPUPNUYO
        VQUYPUEVCUYNVGUYLUYMUYEMVHZUYEVIVJVKBNUYOUXLNUPZUXLUXLVLUIZUXNVRZUYONVM
        UYSUXLVUAVNLUGZVCUPCUGZVUBMUIZUPVUCVUBGUMZPUPVSCLNTVOUXLNVTWAZUYSUXNVCU
        PZUYTUXNMUIZUPZUYTUXNGUMZPUPZVSZVUAUYOUPZUYSVULUYSUYSUYTUXNNUNZVULUYSUY
        SVUANUPVUNUYSUXLVUANVUFWBUYTUXNNWCWDCEFUYTGUXNHILMNOPRSTUXLVLVHUXLUJVHZ
        WEWFWRZVUGVUIVUMVUKVUGVUIUQVUAUYNUPZUEVCVAZVUMVUIVUGVUAVUHUXNVDZVEZUPZV
        URVVAVUIUXNVUSUPUXNVUOWGUYTUXNVUHVUSWHWIVUQVVAUEUXNVCUYEUXNVNZUYNVUTVUA
        VVBUYLVUHUYMVUSUYEUXNMWJUYEUXNWKWLWMWNWOUEVUAVCUYNWPWSWQWTXAXBNUYOVPXCX
        DAVCVBUTUNZUYNVBUTUNZUEVCURUYQVCVBXEUNVVCVCXFVBXKXGXHVCVBXIXJAVVDUEVCAU
        YEVCUPUQZUYNUYLXEUNUYLVBUTUNZVVDUYLUYEUYRUEXLZXMVVEUYLXNUPZVVFVVEQYAZXN
        UOZXNUYLVVIXNXOZAVCVVJUYEMUCXPXQVVHUYLVBUUCUNVVFUYLUUMUYLVBUUAUUDWTUYNU
        YLVBUUBXRXSUEVCUYNUUEXRNUYOVBUUFXRAUYKBNAUYSUQZUYIUEUXOMUIZVAZUYKVVLVVM
        XNUPUXQUEVVMUYHVFZVQZUXQPUPZVVNVVLVVJXNVVMVVKAVCVVJMUHZUXOVCUPZVVMVVJUP
        UYSUCUYSVUGVVSUYSVUGVUIVUKVUPUUGZUXNUUHWTZVCVVJUXOMXTYBZXQVVLVVOUXQVNVV
        PVVLVVOUXQUEVVMUYGVFZUOZUXQUEVVMUXQUYGUUIVVLUXQQUOZVWDUXQVVLQVWCUXQAQCV
        UDVUEVFZVNZLVCURVVSQVWCVNZUYSUDVWAVWGVWHLUXOVCVUBUXOVNZVWFVWCQVWIVWFUEV
        VMUYEVUBGUMZVFZVWCVWIVWFUEVUDVWJVFVWKCUEVUDVUEVWJVUCUYEVUBGYCUUJVWIUEVU
        DVVMVWJVUBUXOMWJUUKYDVWIUEVVMVWJUYGVUBUXOUYEGYEUULYFUUNUUOYBYGVVLUXQQVQ
        VWEUXQVNVVLUXQUYTUKYHUXNYIUMZYMUMZHUVCUIZUMZQVVLUXQVUJVWOUYSUXQVUJVNAUY
        SUXQVUAGUIVUJUYSUXLVUAGVUFUUPUYTUXNGUUQUURZYJVVLUYTQUPZVUGVUJVWOVNVVLVU
        HQUYTVVLVUHQVVLVVJVVIVUHVVIXNUUSZAVVRVUGVUHVVJUPUYSUCVVTVCVVJUXNMXTYBXQ
        YKUYSVUIAUYSVUGVUIVUKVUPUUTYJUVAZUYSVUGAVVTYJZDKUYTUXNQVCDUGZUKYHKUGZYI
        UMZYMUMZVWNUMVWOGUYTVXDVWNUMVXAUYTVXDVWNYCVXBUXNVNZVXDVWMUYTVWNVXEVXCVW
        LUKYMVXBUXNYHYIYEYLYLUAUYTVWMVWNYNUVBYOYFVVLHQUVDUIUPZVWQVWMUVEUPVWOQVQ
        AVXFUYSAHQUVFUIUPZVXFAHQUVGUIUPVXGUBHQUVHWTHQUVIWTZYPVWSVVLVWMVVLVWLVVL
        VWLVVLYHXFUPVUGVWLXFUPUVOVWTYHUXNUVJXRUVKUVLUVMHUYTVWMQUVNYQUVPUXQQUVQY
        RUVRYDUXQVVOUVSWTUYSVVQAUYSUXQVUJPVWPUYSVUGVUIVUKVUPUVTXAYJUEEFVVMUYHUX
        QHIOPRSUXQUYGUXLGVHUWAYSYQVVLUYIUYJUEVVMUXIVVLUYEVVMUPZUYIUQZUYEUXIUPZU
        YJUQVVLVXJUQVXKUYFUYIVVLVXIVXKUYIVVLVVMUXIUYEVVLVVMQUXIVVLVVMQVVLVVJVVI
        VVMVWRVWBXQYKAQUXIVNZUYSAVXFVXLVXHHOQRUWBWTYPUWCUWDUWFVVLVXIUYIUYFVVLVV
        SVXIVXIUYIUYGPUPZUYFUYSVVSAVWAYJVXIUWEUYIUXJPUPZJUYGVDZVAZVXMVXOXNUPUYH
        JVXOUXJVFZVQUYIVXPUYGUWPUYHUYGVXQUXQUYGXOVXOUFUYGVXQUYGUYEUXOGYNZUWGJVX
        OUWHUWIUWJJEFVXOUXJUYHHIOPRSJXLYSUWKVXNVXMJUYGVXRUXJUYGPUWLUWQYRUYFVVSV
        XIVXMVSCEFUYEGUXOHILMNOPRSTVVGUXNUKULYNWEUWMUWNUWRVVLVXIUYIUWOUWSUWTUXA
        UXGXSUYJUYAUEUXIJBNOOHYTUIVPRHYTVHUXBUXCUYEUXMVNZUYFUXPUYIUXTUYEUXMUXON
        UXDVXSUYHUXSPVXSUYGUXRUXQUYEUXMUXOGYCYGWBUXEUXFYOUXKUYBJUXHWT $.

      ${
        heibor.9 $e |- ( ph -> A. x e. G
             ( ( T ` x ) G ( ( 2nd ` x ) + 1 ) /\
               ( ( B ` x ) i^i ( ( T ` x ) B ( ( 2nd ` x ) + 1 ) ) ) e. K ) )
            $.
        heibor.10 $e |- ( ph -> C G 0 ) $.
        heibor.11 $e |- S = seq 0 ( T ,
                           ( m e. NN0 |-> if ( m = 0 , C , ( m - 1 ) ) ) ) $.
        $( Lemma for ~ heibor .  Using the function ` T ` constructed in
           ~ heiborlem3 , construct an infinite path in ` G ` .  (Contributed
           by Jeff Madsen, 23-Jan-2014.) $)
        heiborlem4 $p |- ( ( ph /\ A e. NN0 ) -> ( S ` A ) G A ) $=
          ( vk cn0 wcel cfv wbr cv wi cc0 c1 caddc co wceq fveq2 breq12d imbi2d
          id cmin cif cmpt cseq fveq1i cz 0z seq1 ax-mp eqtri cvv 0nn0 relopabi
          w3a brrelexi syl iftrue eqid fvmptg sylancr syl5eq eqbrtrd cin wa cop
          df-br c2nd wral syl6eqr fvex vex op2ndd oveq1d oveq12d ineq12d eleq1d
          df-ov anbi12d rspccv syl5bi cuz seqp1 eleq2s oveq1i 3eqtr4g peano2nn0
          nn0uz cn wn nn0p1nn nnne0 neneqd iffalse 3syl syl6eqel eqeq1 ifbieq2d
          ovex oveq1 syl2anc cc nn0cn ax-1cn pncan sylancl 3eqtrd oveq2d breq1d
          eqtrd biimprd adantrd syl9r a2d nn0ind impcom ) GULUMAGKUNZGQUOZABUPZ
          KUNZUUDQUOZUQAURKUNZURQUOZUQAUKUPZKUNZUUIQUOZUQAUUIUSUTVAZKUNZUULQUOZ
          UQAUUCUQBUKGUUDURVBZUUFUUHAUUOUUEUUGUUDURQUUDURKVCUUOVFVDVEUUDUUIVBZU
          UFUUKAUUPUUEUUJUUDUUIQUUDUUIKVCUUPVFVDVEUUDUULVBZUUFUUNAUUQUUEUUMUUDU
          ULQUUDUULKVCUUQVFVDVEUUDGVBZUUFUUCAUURUUEUUBUUDGQUUDGKVCUURVFVDVEAUUG
          IURQAUUGURNULNUPZURVBZIUUSUSVGVAZVHZVIZUNZIUUGURLUVCURVJZUNZUVDURKUVE
          UJVKURVLUMUVFUVDVBVMLUVCURVNVOVPAURULUMIVQUMZUVDIVBVRAIURQUOUVGUIIURQ
          OUPZULUMCUPZUVHPUNUMUVIUVHHVASUMVTCOQUCVSWAWBNURUVBIULVQUVCUUTIUVAWCU
          VCWDZWEWFWGUIWHUUIULUMZAUUKUUNAUUKUUJUUILVAZUULQUOZUUJUUIHVAZUVLUULHV
          AZWIZSUMZWJZUVKUUNUUKUUJUUIWKZQUMZAUVRUUJUUIQWLAUUDLUNZUUDWMUNZUSUTVA
          ZQUOZUUDHUNZUWAUWCHVAZWIZSUMZWJZBQWNUVTUVRUQUHUWIUVRBUVSQUUDUVSVBZUWD
          UVMUWHUVQUWJUWAUVLUWCUULQUWJUWAUVSLUNUVLUUDUVSLVCUUJUUILXCWOZUWJUWBUU
          IUSUTUUJUUIUUDUUIKWPUKWQWRWSZVDUWJUWGUVPSUWJUWEUVNUWFUVOUWJUWEUVSHUNU
          VNUUDUVSHVCUUJUUIHXCWOUWJUWAUVLUWCUULHUWKUWLWTXAXBXDXEWBXFUVKUVMUUNUV
          QUVKUUNUVMUVKUUMUVLUULQUVKUUMUUJUULUVCUNZLVAZUVLUVKUULUVEUNZUUIUVEUNZ
          UWMLVAZUUMUWNUWOUWQVBUUIURXGUNULLUVCURUUIXHXMXIUULKUVEUJVKUUJUWPUWMLU
          UIKUVEUJVKXJXKUVKUWMUUIUUJLUVKUWMUULURVBZIUULUSVGVAZVHZUWSUUIUVKUULUL
          UMUWTVQUMUWMUWTVBUUIXLUVKUWTUWSVQUVKUULXNUMZUWRXOUWTUWSVBUUIXPUXAUULU
          RUULXQXRUWRIUWSXSXTZUULUSVGYDYANUULUVBUWTULVQUVCUUSUULVBUUTUWRUVAUWSI
          UUSUULURYBUUSUULUSVGYEYCUVJWEYFUXBUVKUUIYGUMUSYGUMUWSUUIVBUUIYHYIUUIU
          SYJYKYLYMYOYNYPYQYRYSYTUUA $.

        heibor.12 $e |- M = ( n e. NN |->
                            <. ( S ` n ) , ( 3 / ( 2 ^ n ) ) >. ) $.
        $( Lemma for ~ heibor .  The function ` M ` is a set of
           point-and-radius pairs suitable for application to ~ caubl .
           (Contributed by Jeff Madsen, 23-Jan-2014.) $)
        heiborlem5 $p |- ( ph -> M : NN --> ( X X. RR+ ) ) $=
          ( vk cv cfv c3 c2 cexp co cdiv cop crp cxp wcel cn wral cn0 nnnn0 cpw
          wf wa cfn cin inss1 ffvelrnda sseldi elpwid wbr heiborlem4 heiborlem2
          fvex vex simp2bi syl sseldd sylan2 ralrimiva weq fveq2 eleq1d cbvralv
          sylib wi 3re 3pos elrpii nnexpcl sylancr nnrpd rpdivcl opelxpi expcom
          2nn ralimia fmpt ) ANUMZJUNZUOUPXEUQURZUSURZUTZTVAVBZVCZNVDVEZVDXJSVI
          AXFTVCZNVDVEZXLAULUMZJUNZTVCZULVDVEXNAXQULVDXOVDVCAXOVFVCZXQXOVGAXRVJ
          ZXOOUNZTXPXSXTTXSTVHZVKVLZYAXTYAVKVMAVFYBXOOUFVNVOVPXSXPXOPVQZXPXTVCZ
          ABCDEFXOGHIJKLMNOPQRTUAUBUCUDUEUFUGUHUIUJVRYCXRYDXPXOGURRVCCEFXPGXOIL
          NOPQRUAUBUCXOJVTULWAVSWBWCWDWEWFXQXMULNVDULNWGXPXFTXOXEJWHWIWJWKXMXKN
          VDXEVDVCZXHVAVCZXMXKWLYEUOVAVCXGVAVCYFUOWMWNWOYEXGYEUPVDVCXEVFVCXGVDV
          CXBXEVGUPXEWPWQWRUOXGWSWQXMYFXKXFXHTVAWTXAWCXCWCNVDXJXISUKXDWK $.

        $( Lemma for ~ heibor .  Since the sequence of balls connected by the
           function ` T ` ensures that each ball nontrivially intersects with
           the next (since the empty set has a finite subcover, the
           intersection of any two successive balls in the sequence is
           nonempty), and each ball is half the size of the previous one, the
           distance between the centers is at most ` 3 / 2 ` times the size of
           the larger, and so if we expand each ball by a factor of ` 3 ` we
           get a nested sequence of balls.  (Contributed by Jeff Madsen,
           23-Jan-2014.) $)
        heiborlem6 $p |- ( ph -> A. k e. NN
      ( ( ball ` D ) ` ( M ` ( k + 1 ) ) ) C_ ( ( ball ` D ) ` ( M ` k ) ) ) $=
          ( cv c1 caddc co cfv wss cn wcel wa c3 cexp cdiv cn0 cmin cle wbr syl
          c2 cr adantr cpw wf cfn cin sylancl elpwid heiborlem4 fvex heiborlem2
          sylan2 ovex simp2bi sseldd crp 3re 2nn nnexpcl nnrpd adantl rerpdivcl
          sylancr mpan wn c0 wne wceq oveq1 weq oveq2 oveq2d ovmpt2 fveq2 df-ov
          wi cop syl6eqr oveq1d oveq12d ineq12d mpd syl2anc cuni rpreccld rpred
          wrex cxr rpxrd syl3anc cc0 cif fveq1i oveq1i cvv cc ax-1cn eqtrd cmul
          3cn rpcn rpne0 2cn mp3an12 2cnne0 divcan5 mp3an13 eqtr3d opeq12d opex
          cbl nnnn0 cxmt cme cms cmetmet metxmet inss1 peano2nn0 ffvelrn syl2an
          fss ffvelrnda vex sylancom df-br op2ndd breq12d eleq1d anbi12d rspccv
          c2nd wral syl5bi simpld simprd 0elpw 0fin elin mpbir2an sseq2d rspcev
          0ss unieq mp2an 0ex sseq1 rexbidv notbid con2bii mpbi nelne2 eqnetrrd
          elab2 cxad rexadd breq1d bldisj 3exp2 imp32 syl32anc sylbird necon3ad
          w3a rpaddcld metcl letrid ord cmpt seqp1 nn0uz eleq2s 3eqtr4g nn0p1nn
          cseq nnne0 neneqd iffalsed syl6eqel eqeq1 ifbieq2d fvmptg nn0cn pncan
          cuz eqid 3eqtrd metsym 2timesi pncan3oi df-3 3eqtri divsubdir 3eqtr3a
          mulcli divdir mulcom expp1 eqtr4d 2t1e2 a1i 3eqtr4d syl33anc peano2nn
          3brtr4d blss2 fvmpt fveq2d 3sstr4d ralrimiva ) AMUMZUNUOUPZTUQZIUUAUQ
[encoded data, 4800 characters]
          XEXHWKUYSUYT $.

        $( Lemma for ~ heibor .  Since the sizes of the balls decrease
           exponentially, the sequence converges to zero.  (Contributed by Jeff
           Madsen, 23-Jan-2014.) $)
        heiborlem7 $p |- A. r e. RR+ E. k e. NN ( 2nd ` ( M ` k ) ) < r $=
          ( cv cfv c2nd clt wbr cn wrex crp wcel c3 c2 cexp co cdiv c1 3re 3pos
          elrpii rpdivcl mpan2 cr 2re 1lt2 expnlbnd mp3an23 syl wa cmul cn0 2nn
          wceq nnnn0 nnexpcl sylancr nnrpd cc0 wne rpcn rpne0 3cn divrec mp3an1
          cc syl2anc adantl breq1d nnrecred rpre pm3.2i ltmuldiv2 syl2anr bitrd
          wb mp3an3 rexbidva mpbird cop fveq2 oveq2 oveq2d opeq12d fvmpt fveq2d
          opex fvex ovex op2nd syl6eq rexbiia sylibr rgen ) MUNZTUOZUPUOZUBUNZU
          QURZMUSUTZUBVAYHVAVBZVCVDYEVEVFZVGVFZYHUQURZMUSUTZYJYKYOVHYLVGVFZYHVC
          VGVFZUQURZMUSUTZYKYQVAVBZYSYKVCVAVBYTVCVIVJVKYHVCVLVMYTVDVNVBVHVDUQUR
          YSVOVPYQVDMVQVRVSYKYNYRMUSYKYEUSVBZVTZYNVCYPWAVFZYHUQURZYRUUBYMUUCYHU
          QUUAYMUUCWDZYKUUAYLVAVBZUUEUUAYLUUAVDUSVBYEWBVBYLUSVBWCYEWEVDYEWFWGZW
          HUUFYLWPVBZYLWIWJZUUEYLWKYLWLVCWPVBUUHUUIUUEWMVCYLWNWOWQVSWRWSUUAYPVN
          VBZYHVNVBZUUDYRXFZYKUUAYLUUGWTYHXAUUJUUKVCVNVBZWIVCUQURZVTUULUUMUUNVI
          VJXBYPYHVCXCXGXDXEXHXIYIYNMUSUUAYGYMYHUQUUAYGYEJUOZYMXJZUPUOYMUUAYFUU
          PUPOYEOUNZJUOZVCVDUUQVEVFZVGVFZXJUUPUSTUUQYEWDZUURUUOUUTYMUUQYEJXKUVA
          UUSYLVCVGUUQYEVDVEXLXMXNUMUUOYMXQXOXPUUOYMYEJXRVCYLVGXSXTYAWSYBYCYD
          $.

        heibor.13 $e |- ( ph -> U C_ J ) $.
        ${
          heibor.14 $e |- Y e. _V $.
          heibor.15 $e |- ( ph -> Y e. Z ) $.
          heibor.16 $e |- ( ph -> Z e. U ) $.
          heibor.17 $e |- ( ph -> ( 1st o. M ) ( ~~>t ` J ) Y ) $.
          $( Lemma for ~ heibor .  The previous lemmas establish that the
             sequence ` M ` is Cauchy, so using completeness we now consider
             the convergent point ` Y ` .  By assumption, ` U ` is an open
             cover, so ` Y ` is an element of some ` Z e. U ` , and some ball
             centered at ` Y ` is contained in ` Z ` .  But the sequence
             contains arbitrarily small balls close to ` Y ` , so some element
             ` ball ( M `` n ) ` of the sequence is contained in ` Z ` .  And
             finally we arrive at a contradiction, because ` { Z } ` is a
             finite subcover of ` U ` that covers ` ball ( M `` n ) ` , yet
             ` ball ( M `` n ) e. K ` .  For convenience, we write this
             contradiction as ` ph -> ps ` where ` ph ` is all the accumulated
             hypotheses and ` ps ` is anything at all.  (Contributed by Jeff
             Madsen, 22-Jan-2014.) $)
          heiborlem8 $p |- ( ph -> ps ) $=
            ( vk vr vt cv cbl cfv co wss crp wrex cxmt wcel cms cmetmet metxmet
            cme 3syl sseldd mopni2 syl3anc wa c2nd c2 cdiv clt wn rphalfcl wceq
            wbr cn breq2 rexbidv heiborlem7 vtoclri syl adantl nnnn0 heiborlem4
            cn0 fvex vex heiborlem2 simp3bi sylan2 ad2ant2r wi c1st c1 cexp cxr
            cle ad2antrr cxp ffvelrnda xp1st 2nn nnexpcl sylancr nnrpd rpreccld
            heiborlem5 ad2antrl rpxrd xp2nd c3 1le3 cop weq oveq2 oveq2d fveq2d
            cr ovex syl6eq syl2anc 3sstr3d cuni ad2antlr sstrd cfn sseq2d sylbi
            cc0 wb elrp 1re lediv1 mp3an12 mpbii fveq2 opeq12d opex fvmpt op2nd
            3re breqtrrd ssbl syl221anc oveq1 ovmpt2 op1st oveq1d 1st2nd2 df-ov
            eqtr3d syl6reqr ccl ctop mopntop blssm mopnuni sscls simprr blsscls
            eqid syl23anc eqsstr3d rpre ccom clm heiborlem6 caublcls 3expia imp
            mpdan blhalf syl22anc sstr2 cpw cin csn unisng biimpar snssd sylibr
            snex elpw snfi elind unieq rspcev sylan syldan sseq1 notbid con2bii
            a1i elab2 sylib ex syld mt2d rexlimddv nrexdv pm2.21dd ) AUBCVCZJVD
            VEZVFZUCVGZCVHVIZBAJUAVJVEVKZUCRVKUBUCVKUXSAJUAVLVEVKJUAVOVEVKUXTUH
            JUAVMJUAVNVPZAMRUCUOURVQUQCUCJUBRUAUDVRVSAUXRCVHAUXOVHVKZVTZUTVCZTV
            EZWAVEZUXOWBWCVFZWDWHZUXRWEUTWIUYBUYHUTWIVIZAUYBUYGVHVKZUYIUXOWFZUY
            FVAVCZWDWHZUTWIVIUYIVAUYGVHUYLUYGWGUYMUYHUTWIUYLUYGUYFWDWJWKACDEFGH
            IJKLMUTNOPQRSTUAVAUDUEUFUGUHUIUJUKULUMUNWLWMWNWOUYCUYDWIVKZUYHVTZVT
            ZUXRUYDKVEZUYDHVFZSVKZAUYNUYSUYBUYHUYNAUYDWRVKZUYSUYDWPZAUYTVTUYQUY
            DQWHZUYSACDEFGUYDHIJKLMNOPQRSUAUDUEUFUGUHUIUJUKULUMWQVUBUYTUYQUYDPV
            EVKUYSDFGUYQHUYDJMOPQRSUDUEUFUYDKWSZUTWTXAXBWNXCXDUYPUXRUYRUCVGZUYS
            WEZUYPUYRUXQVGUXRVUDXEUYPUYRUYEUXPVEZUXQUYPUYEXFVEZXGWBUYDXHVFZWCVF
            ZUXPVFZVUGUYFUXPVFZUYRVUFUYPUXTVUGUAVKZVUIXIVKUYFXIVKZVUIUYFXJWHVUJ
            VUKVGAUXTUYBUYOUYAXKZUYPUYEUAVHXLZVKZVULAUYNVUPUYBUYHAWIVUOUYDTACDE
            FGHIJKLMNOPQRSTUAUDUEUFUGUHUIUJUKULUMUNXTZXMXDZUYEUAVHXNWNZUYPVUIUY
            NVUIVHVKUYCUYHUYNVUHUYNVUHUYNWBWIVKUYTVUHWIVKXOVUAWBUYDXPXQXRZXSYAY
            BUYPUYFUYPVUPUYFVHVKVURUYEUAVHYCWNYBZUYPVUIYDVUHWCVFZUYFXJUYNVUIVVB
            XJWHZUYCUYHUYNVUHVHVKZVVCVUTVVDXGYDXJWHZVVCYEVVDVUHYKVKUUBVUHWDWHVT
            ZVVEVVCUUCZVUHUUDXGYKVKYDYKVKVVFVVGUUEUUNXGYDVUHUUFUUGUUAUUHWNYAUYN
            UYFVVBWGUYCUYHUYNUYFUYQVVBYFZWAVEVVBUYNUYEVVHWAOUYDOVCZKVEZYDWBVVIX
            HVFZWCVFZYFVVHWITOUTYGZVVJUYQVVLVVBVVIUYDKUUIVVMVVKVUHYDWCVVIUYDWBX
            HYHYIUUJUNUYQVVBUUKUULZYJUYQVVBVUCYDVUHWCYLZUUMYMYAUUOJVUGVUIUYFUAU
            UPUUQUYPVUGUYDHVFZVUJUYRUYPVULUYTVVPVUJWGVUSUYNUYTUYCUYHVUAYAENVUGU
            YDUAWREVCZXGWBNVCZXHVFZWCVFZUXPVFVUJHVUGVVTUXPVFVVQVUGVVTUXPUURNUTY
            GZVVTVUIVUGUXPVWAVVSVUHXGWCVVRUYDWBXHYHYIYIUGVUGVUIUXPYLUUSYNUYPVUG
            UYQUYDHUYNVUGUYQWGUYCUYHUYNVUGVVHXFVEUYQUYNUYEVVHXFVVNYJUYQVVBVUCVV
            OUUTYMYAUVAUVDUYPVUFVUGUYFYFZUXPVEVUKUYPUYEVWBUXPUYPVUPUYEVWBWGVURU
            YEUAVHUVBWNYJVUGUYFUXPUVCUVEZYOUYPVUFVUFRUVFVEZVEZUXQUYPRUVGVKZVUFR
            YPZVGVUFVWEVGUYPUXTVWFVUNJRUAUDUVHWNUYPVUKUAVUFVWGUYPUXTVULVUMVUKUA
            VGVUNVUSVVAJVUGUYFUAUVIVSVWCUYPUXTUAVWGWGVUNJRUAUDUVJWNYOVUFRVWGVWG
            UVNUVKYNUYPVWEVUGUYGUXPVFZUXQUYPVWEVUKVWDVEZVWHUYPVUKVUFVWDVWCYJUYP
            UXTVULVUMUYGXIVKUYHVWIVWHVGVUNVUSVVAUYPUYGUYBUYJAUYOUYKYQYBUYCUYNUY
            HUVLJVUGUYFUYGRUAUDUVMUVOUVPZUYPUXTVULUXOYKVKZUBVWHVKVWHUXQVGVUNVUS
            UYBVWKAUYOUXOUVQYQUYPVWEVWHUBVWJAUYNUBVWEVKZUYBUYHAUYNVWLAXFTUVRUBR
            UVSVEWHZUYNVWLXEUSAVWMUYNVWLAUYDJUBVBTRUAUYAVUQACDEFGHIJKLMVBNOPQRS
            TUAUDUEUFUGUHUIUJUKULUMUNUVTUDUWAUWBUWDUWCXDVQUXOJUAVUGUBUWEUWFYRYR
            YRUYRUXQUCUWGWNAVUDVUEXEUYBUYOAVUDVUEAVUDVTUYRFVCZYPZVGZFMUWHZYSUWI
            ZVIZVUEAVUDUYRUCUWJZYPZVGZVWSAVXBVUDAVXAUCUYRAUCMVKVXAUCWGURUCMUWKW
            NYTUWLAVWTVWRVKVXBVWSAVWQYSVWTAVWTMVGVWTVWQVKAUCMURUWMVWTMUCUWOUWPU
            WNVWTYSVKAUCUWQUXFUWRVWPVXBFVWTVWRVWNVWTWGVWOVXAUYRVWNVWTUWSYTUWTUX
            AUXBUYSVWSGVCZVWOVGZFVWRVIZWEVWSWEGUYRSUYQUYDHYLVXCUYRWGZVXEVWSVXFV
            XDVWPFVWRVXCUYRVWOUXCWKUXDUEUXGUXEUXHUXIXKUXJUXKUXLUXMUXN $.
        $}

        heiborlem9.14 $e |- ( ph -> U. U = X ) $.
        $( Lemma for ~ heibor .  Discharge the hypotheses of ~ heiborlem8 by
           applying ~ caubl to get a convergent point and adding the open cover
           assumption.  (Contributed by Jeff Madsen, 20-Jan-2014.) $)
        heiborlem9 $p |- ( ph -> ps ) $=
          ( vt vk vr c1st ccom clm cfv cv wcel cuni wrex ctopon wbr cms cmetmet
          cxmt cme metxmet 3syl mopntopon syl cdm cca heiborlem5 heiborlem6 clt
          c2nd cn crp wral heiborlem7 a1i caubl cmetcau syl2anc wfun wb methaus
          cha lmfun funfvbrb mpbid lmcl eleqtrrd eluni2 sylib wa adantr cn0 cpw
          cfn cin wf co ciun wceq c1 caddc cc0 wss fvex simprr simprl rexlimddv
          heiborlem8 ) AURTUSZRUTVAZVAZUOVBZVCZBUOMAYBMVDZVCYDUOMVEAYBUAYEARUAV
          FVAVCZXTYBYAVGZYBUAVCAJUAVJVAVCZYFAJUAVHVAVCZJUAVKVAVCYHUFJUAVIJUAVLV
          MZJRUAUBVNVOAXTYAVPVCZYGAYIXTJVQVAVCYKUFAJUPTUAUQYJACDEFGHIJKLMNOPQRS
          TUAUBUCUDUEUFUGUHUIUJUKULVRACDEFGHIJKLMUPNOPQRSTUAUBUCUDUEUFUGUHUIUJU
          KULVSUPVBTVAWAVAUQVBVTVGUPWBVEUQWCWDAACDEFGHIJKLMUPNOPQRSTUAUQUBUCUDU
          EUFUGUHUIUJUKULWEWFWGJXTRUAUBWHWIARWMVCZYAWJYKYGWKAYHYLYJJRUAUBWLVORW
          NXTYAWOVMWPZYBXTRUAWQWIUNWRUOYBMWSWTAYCMVCZYDXAZXABCDEFGHIJKLMNOPQRST
          UAYBYCUBUCUDUEAYIYOUFXBAXCUAXDXEXFPXGYOUGXBAUADOVBZPVADVBYPHXHXIXJOXC
          WDYOUHXBACVBZLVAZYQWAVAXKXLXHZQVGYQHVAYRYSHXHXFSVCXACQWDYOUIXBAIXMQVG
          YOUJXBUKULAMRXNYOUMXBXTYAXOAYNYDXPAYNYDXQAYGYOYMXBXSXR $.
      $}

      $d v ph $.
      $( Lemma for ~ heibor .  The last remaining piece of the proof is to find
         an element ` C ` such that ` C G 0 ` , i.e. ` C ` is an element of
         ` ( F `` 0 ) ` that has no finite subcover, which is true by
         ~ heiborlem1 , since ` ( F `` 0 ) ` is a finite cover of ` X ` , which
         has no finite subcover.  Thus, the rest of the proof follows to a
         contradiction, and thus there must be a finite subcover of ` U ` that
         covers ` X ` , i.e. ` X ` is compact.  (Contributed by Jeff Madsen,
         22-Jan-2014.) $)
      heiborlem10 $p |- ( ( ph /\ ( U C_ J /\ U. J = U. U ) ) ->
                          E. v e. ( ~P U i^i Fin ) U. J = U. v ) $=
        ( vx vg vt wss cuni wceq wa cv cpw cfn cin wrex wcel wn cc0 co cfv ciun
        wi cn0 wf 0nn0 inss2 ffvelrn sseldi sylancl fveq2 oveq2 iuneq12d eqeq2d
        wral rspccva eqimss syl w3a ovex heiborlem1 oveq1 eleq1d cbvrexv 3expia
        weq sylib syl2anc adantr wbr vex c0ex heiborlem2 c2nd c1 wex heiborlem3
        caddc ad2antrr cmin cif cmpt cseq cn c3 cexp cdiv cop cms simprr oveq1d
        c2 breq12d oveq12d ineq12d anbi12d cbvralv simprl eqeq1 ifbieq2d seqeq3
        cbvmptv ax-mp eqid simplrl cme cxmt cmetmet metxmet mopnuni 4syl eqtr2d
        heiborlem9 expr exlimdv mpd sylan2br 3exp2 mpi rexlimdv syld pm2.01d wb
        cdm elfvdm sseq1 rexbidv notbid elab2g 3syl con2bid mpbird sseq1d inss1
        sseli elpwid sstr unissd syl2anr biantrud syl6bbr bitrd rexbidva mpbid
        eqss ) AHMUFZMUGZHUGZUHZUIZUIZODUJZUGZUFZDHUKZULUMZUNZUVEUVKUHZDUVNUNUV
        IUVOONUOZUPZUVIUVQUVIUVQUCUJZUQFURZNUOZUCUQKUSZUNZUVRAUVQUWCVAZUVHAUWBU
        LUOZOBUWBBUJZUQFURZUTZUFZUWDAVBOUKZULUMZKVCZUQVBUOZUWEUAVDUWLUWMUIUWKUL
        UWBUWJULVEVBUWKUQKVFVGVHAOUWHUHZUWIAOBJUJZKUSZUWFUWOFURZUTZUHZJVBVMZUWM
        UWNUBVDUWSUWNJUQVBUWOUQUHZUWRUWHOUXABUWPUWBUWQUWGUWOUQKVIUWOUQUWFFVJVKV
        LVNVHOUWHVOVPUWEUWIUVQUWCUWEUWIUVQVQUWGNUOZBUWBUNUWCBDEUWBUWGOGHMNPQUWF
        UQFVRVSUXBUWABUCUWBBUCWDUWGUVTNUWFUVSUQFVTWAWBWEWCWFWGUVIUWAUVRUCUWBUVI
        UWMUVSUWBUOZUWAUVRVAVAVDUVIUWMUXCUWAUVRUWMUXCUWAVQUVIUVSUQLWHZUVRBDEUVS
        FUQGHJKLMNPQRUCWIWJWKUVIUXDUIZUVSUDUJZUSZUVSWLUSZWMWPURZLWHZUVSFUSZUXGU
        XIFURZUMZNUOZUIZUCLVMZUDWNZUVRAUXQUVHUXDAUCBCDEFGHUDIJKLMNOPQRSTUAUBWOW
        QUXEUXPUVRUDUVIUXDUXPUVRUVIUXDUXPUIZUIZUVRUEBCDEFUVSGUXFUDVBUXFUQUHZUVS
        UXFWMWRURZWSZWTZUQXAZUXFHIJKLMNJXBUWOUYDUSXCXJUWOXDURXEURXFWTZOPQRSAGOX
        GUSUOZUVHUXRTWQAUWLUVHUXRUAWQAUWTUVHUXRUBWQUXSUXPUEUJZUXFUSZUYGWLUSZWMW
        PURZLWHZUYGFUSZUYHUYJFURZUMZNUOZUIZUELVMUVIUXDUXPXHUXOUYPUCUELUCUEWDZUX
        JUYKUXNUYOUYQUXGUYHUXIUYJLUVSUYGUXFVIZUYQUXHUYIWMWPUVSUYGWLVIXIZXKUYQUX
        MUYNNUYQUXKUYLUXLUYMUVSUYGFVIUYQUXGUYHUXIUYJFUYRUYSXLXMWAXNXOWEUVIUXDUX
        PXPUYCIVBIUJZUQUHZUVSUYTWMWRURZWSZWTZUHUYDUXFVUDUQXAUHUDIVBUYBVUCUDIWDU
        XTVUAUYAVUBUVSUXFUYTUQXQUXFUYTWMWRVTXRXTUXFUYCVUDUQXSYAUYEYBAUVDUVGUXRY
        CUVIUVFOUHUXRUVIOUVEUVFAOUVEUHZUVHAUYFGOYDUSUOGOYEUSUOVUETGOYFGOYGGMOPY
        HYIZWGAUVDUVGXHYJWGYKYLYMYNYOYPYQYRYSYTUVIUVQUVOAUVQUVOUPZUUAZUVHAUYFOX
        GUUBZUOVUHTGOXGUUCEUJZUVKUFZDUVNUNZUPVUGEONVUIVUJOUHZVULUVOVUMVUKUVLDUV
        NVUJOUVKUUDUUEUUFQUUGUUHWGUUIUUJUVIUVLUVPDUVNUVIUVJUVNUOZUIZUVLUVEUVKUF
        ZUVPVUOOUVEUVKAVUEUVHVUNVUFWQUUKVUOVUPVUPUVKUVEUFZUIUVPVUOVUQVUPVUNUVJH
        UFZUVDVUQUVIVUNUVJHUVNUVMUVJUVMULUULUUMUUNAUVDUVGXPVURUVDUIUVJMUVJHMUUO
        UUPUUQUURUVEUVKUVCUUSUUTUVAUVB $.
    $}

    $( Generalized Heine-Borel Theorem.  A metric space is compact iff it is
       complete and totally bounded.  See ~ heibor1 and ~ heiborlem1 for a
       description of the proof.  (Contributed by Jeff Madsen, 2-Sep-2009.)
       (Revised by Mario Carneiro, 28-Jan-2014.) $)
    heibor $p |- ( ( D e. ( Met ` X ) /\ J e. Comp ) <->
                   ( D e. ( CMet ` X ) /\ D e. ( TotBnd ` X ) ) ) $=
      ( vv vm vy vn vt cfv wcel wa cv wceq cfn wrex wral cn0 co ciun vr vu ccmp
      vz vk cme cms ctotbnd heibor1 cmetmet adantr ctop cuni cpw cin wi metxmet
      cxmt mopntop 3syl wf c1 c2 cexp cdiv cbl wex crp istotbnd simprbi nnexpcl
      cn mpan nnrpd rpreccld oveq2 eqeq2d rexbidv ralbidv anbi2d rspccva syl2an
      2nn expcom adantl oveq1 ac6sfi adantrl w3a crn wss simp3l frn syl mopnuni
      3ad2ant1 sseqtrd cmopn cvv fvex eqeltri uniex elpw2 sylibr simp2l wfo wfn
      ffn dffn4 sylib fofi sylan2 syl2anc elind eleq2d rexrn eliun eqrdv simp3r
      3bitr4g uniiun iuneq2 syl5eq simp2r 3eqtr2rd iuneq1 rspcev 3expia exlimdv
      adantrrr mpd rexlimdvaa syld ralrimdva pwex eqid simpl oveq2d iuneq2dv
      weq inex1 com nn0ennn nnenom entri axcc4 syl6 elpwi cmpt2 cab copab pweqd
      wn ineq1d feq3d biimpar adantrr cbviunv inss1 syl5sseqr syl2anr ffvelrnda
      id fss elpwid sselda simplr ovex ovmpt2 biimprd ralimdva impr fveq2 eqtrd
      iuneq1d cbvralv heiborlem10 exp32 syl5 ralrimiv ex imp iscmp sylanbrc jca
      impbii ) ACUFJKZBUCKZLACUGJKZACUHJKZLZABCDUIUWKUWGUWHUWIUWGUWJACUJZUKUWKB
      ULKZBUMZUAMZUMNZUWNEMZUMZNEUWOUNOUOZPZUPZUABUNZQZUWHUWIUWMUWJUWIUWGACURJK
      ZUWMUWLACUQZABCDUSUTUKUWIUWJUXCUWIUWJRUWNUNZOUOZFMZVAZCGHMZUXHJZGMZVBVCUX
      JVDSZVESZAVFJZSZTZNZHRQZLZFVGZUXCUWIUWJCGIMZUXPTZNZIUXGPZHRQUYAUWIUWJUYEH
      RUWIUXJRKZLZUWJUBMZUMZCNZUWQUXPNZGCPZEUYHQZLZUBOPZUYEUYFUWJUYOUPUWIUWJUYF
      UYOUWJUYJUWQUXLUWOUXOSZNZGCPZEUYHQZLZUBOPZUAVHQZUXNVHKUYOUYFUWJUWGVUBGUBA
      CEUAVIVJUYFUXMUYFUXMVCVLKUYFUXMVLKWCVCUXJVKVMVNVOVUAUYOUAUXNVHUWOUXNNZUYT
      UYNUBOVUCUYSUYMUYJVUCUYRUYLEUYHVUCUYQUYKGCVUCUYPUXPUWQUWOUXNUXLUXOVPVQVRV
      SVTVRWAWBWDWEUYGUYNUYEUBOUYGUYHOKZUYNLZLZUYHCUXHVAZUWQUWQUXHJZUXNUXOSZNZE
      UYHQZLZFVGZUYEVUEVUMUYGVUDUYMVUMUYJUYKVUJEGUYHCFUXLVUHNZUXPVUIUWQUXLVUHUX
      NUXOWFZVQWGWHWEVUFVULUYEFUYGVUDUYJVULUYEUPUYMUYGVUDUYJLZVULUYEUYGVUPVULWI
      ZUXHWJZUXGKCGVURUXPTZNZUYEVUQUXFOVURVUQVURUWNWKVURUXFKVUQVURCUWNVUQVUGVUR
      CWKUYGVUPVUGVUKWLZUYHCUXHWMWNUYGVUPCUWNNZVULUWIVVBUYFUWIUWGUXDVVBUWLUXEAB
      CDWOUTZUKWPWQVURUWNBBAWRJWSDAWRWTXAXBZXCXDVUQVUDVUGVUROKZUYGVUDUYJVULXEVV
      AVUGVUDUYHVURUXHXFZVVEVUGUXHUYHXGZVVFUYHCUXHXHZUYHUXHXIXJUYHVURUXHXKXLXMX
      NVUQVUSEUYHVUITZUYICVUQVUGVVGVUSVVINVVAVVHVVGUAVUSVVIVVGUWOUXPKZGVURPUWOV
      UIKZEUYHPUWOVUSKUWOVVIKVVJVVKGEUYHUXHVUNUXPVUIUWOVUOXOXPGUWOVURUXPXQEUWOU
      YHVUIXQXTXRUTVUQVUKUYIVVINUYGVUPVUGVUKXSVUKUYIEUYHUWQTVVIEUYHYAEUYHUWQVUI
      YBYCWNUYGVUDUYJVULYDYEUYDVUTIVURUXGUYBVURNUYCVUSCGUYBVURUXPYFVQYGXMYHYJYI
      YKYLYMYNUYDUXRIUXGFHRUXFOUWNVVDYOUUARVLUUBUUCUUDUUEUYBUXKNUYCUXQCGUYBUXKU
      XPYFVQUUFUUGUWIUXTUXCFUWIUXTUXCUWIUXTLZUXAUAUXBUWOUXBKUWOBWKZVVLUXAUWOBUU
      HVVLVVMUWPUWTVVLIUDEUBUDFCRUDMZVBVCUXHVDSZVESZUXOSZUUIZAUWOFUEUXHUEMZRKUY
      BVVSUXHJZKZUYBVVSVVRSZUYHUWRWKEUWSPUUMUBUUJZKWIIUEUUKZBVWCCDVWCYPVWDYPVVR
      YPZUWIUXTYQUWIUXIRCUNZOUOZUXHVAZUXSUWIVWHUXIUWIVWGUXGUXHRUWIVWFUXFOUWICUW
      NVVCUULZUUNUUOUUPUUQVVLCIUXKUYBUXJVVRSZTZNZHRQZCIVVTVWBTZNZUERQUWIUXIUXSV
      WMUWIUXILZUXRVWLHRVWPUYFLZVWLUXRVWQVWKUXQCVWQVWKGUXKUXLUXJVVRSZTUXQIGUXKV
      WJVWRUYBUXLUXJVVRWFUURVWQGUXKVWRUXPVWQUXLUXKKZLUXLCKUYFVWRUXPNVWQUXKCUXLV
      WQUXKCVWPRVWFUXJUXHUXIUXIUXGVWFWKRVWFUXHVAUWIUXIUVCUWIUXFUXGVWFUXFOUUSVWI
      UUTRUXGVWFUXHUVDUVAUVBUVEUVFVWPUYFVWSUVGUDFUXLUXJCRVVQUXPVVRUXLVVPUXOSVVN
      UXLVVPUXOWFFHYTZVVPUXNUXLUXOVWTVVOUXMVBVEUXHUXJVCVDVPYRYRVWEUXLUXNUXOUVHU
      VIXMYSYCVQUVJUVKUVLVWLVWOHUERHUEYTZVWKVWNCVXAVWKIVVTVWJTVWNVXAIUXKVVTVWJU
      XJVVSUXHUVMUVOVXAIVVTVWJVWBVXAVWALUXJVVSUYBVVRVXAVWAYQYRYSUVNVQUVPXJUVQUV
      RUVSUVTUWAYIYMUWBUAEBUWNUWNYPUWCUWDUWEUWF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Banach Fixed Point Theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d j k x y z D $.  $d j k x y z G $.  $d j k x y z J $.  $d j k w x y ph $.
    $d j k A $.  $d j k w x y z F $.  $d j k x y K $.  $d j k w x y z X $.
    bfp.2 $e |- ( ph -> D e. ( CMet ` X ) ) $.
    bfp.3 $e |- ( ph -> X =/= (/) ) $.
    bfp.4 $e |- ( ph -> K e. RR+ ) $.
    bfp.5 $e |- ( ph -> K < 1 ) $.
    bfp.6 $e |- ( ph -> F : X --> X ) $.
    bfp.7 $e |- ( ( ph /\ ( x e. X /\ y e. X ) ) ->
                  ( ( F ` x ) D ( F ` y ) ) <_ ( K x. ( x D y ) ) ) $.
    ${
      bfp.8 $e |- J = ( MetOpen ` D ) $.
      bfp.9 $e |- ( ph -> A e. X ) $.
      bfp.10 $e |- G = seq 1 ( ( F o. 1st ) , ( NN X. { A } ) ) $.
      $( Lemma for ~ bfp .  The sequence ` G ` , which simply starts from any
         point in the space and iterates ` F ` , satisfies the property that
         the distance from ` G ( n ) ` to ` G ( n + 1 ) ` decreases by at least
         ` K ` after each step.  Thus, the total distance from any ` G ( i ) `
         to ` G ( j ) ` is bounded by a geometric series, and the sequence is
         Cauchy.  Therefore, it converges to a point ` ( ( ~~>t `` J ) `` G ) `
         since the space is complete.  (Contributed by Jeff Madsen,
         17-Jun-2014.) $)
      bfplem1 $p |- ( ph -> G ( ~~>t ` J ) ( ( ~~>t ` J ) ` G ) ) $=
        ( co vk vj clm cfv cdm wcel wbr cms cca cdiv cme cmetmet syl c1 cn nnuz
        1zzd algrf cr ffvelrnd metcl syl3anc rerpdivcld cv caddc cexp cmul wceq
        cle wi fveq2 oveq1 fveq2d oveq12d oveq2 oveq2d breq12d imbi2d leidd 1nn
        algr0 algrp1 mpan2 eqtrd rpred recnd exp1d rpne0d divcan1d 3brtr4d wral
        wa ffvelrnda wf peano2nn ffvelrn syl2an ralrimivva adantr oveq1d rspc2v
        jca sylc remulcld adantl nnnn0d reexpcld letr mpand cc0 clt cn0 reexpcl
        wb nnnn0 rpgt0d lemul1 syl112anc cc mulcomd mulassd expp1 eqtr4d sylan2
        bitrd breq1d 3imtr4d expcom a2d impcom geomcau cmetcau syl2anc cha wfun
        nnind cxmt metxmet methaus 3syl lmfun funfvbrb mpbid ) AGHUCUDZUEUFZGGU
        UDUDUUDUGZAEJUHUDUFZGEUIUDUFUUEKADDFUDZETZIUJTZIEUAGJAUUGEJUKUDUFZKEJUL
        UMZADGJFUNUOUPSAUQZROURZAUUIIAUUKDJUFUUHJUFUUIUSUFUULRAJJDFORUTDUUHEJVA
        VBZMVCZMNUAVDZUOUFZAUUQGUDZUUQUNVETZGUDZETZUUJIUUQVFTZVGTZVIUGZAUBVDZGU
        DZUVFUNVETZGUDZETZUUJIUVFVFTZVGTZVIUGZVJAUNGUDZUNUNVETZGUDZETZUUJIUNVFT
        ZVGTZVIUGZVJAUVEVJZAUVAUUTUNVETZGUDZETZUUJIUUTVFTZVGTZVIUGZVJUWAUBUAUUQ
        UVFUNVHZUVMUVTAUWHUVJUVQUVLUVSVIUWHUVGUVNUVIUVPEUVFUNGVKUWHUVHUVOGUVFUN
        UNVEVLVMVNUWHUVKUVRUUJVGUVFUNIVFVOVPVQVRUVFUUQVHZUVMUVEAUWIUVJUVBUVLUVD
        VIUWIUVGUUSUVIUVAEUVFUUQGVKUWIUVHUUTGUVFUUQUNVEVLVMVNUWIUVKUVCUUJVGUVFU
        UQIVFVOVPVQVRZUVFUUTVHZUVMUWGAUWKUVJUWDUVLUWFVIUWKUVGUVAUVIUWCEUVFUUTGV
        KUWKUVHUWBGUVFUUTUNVEVLVMVNUWKUVKUWEUUJVGUVFUUTIVFVOVPVQVRUWJAUUIUUIUVQ
        UVSVIAUUIUUOVSAUVNDUVPUUHEADGJFUNUOUPSUUMRWAZAUVPUVNFUDZUUHAUNUOUFUVPUW
        MVHVTADGJFUNUNUOUPSUUMROWBWCAUVNDFUWLVMWDVNAUVSUUJIVGTUUIAUVRIUUJVGAIAI
        AIMWEZWFZWGVPAUUIIAUUIUUOWFUWOAIMWHWIWDWJUURAUVEUWGAUURUVEUWGVJAUURWLZI
        UVBVGTZUWFVIUGZUUSFUDZUVAFUDZETZUWFVIUGZUVEUWGUWPUXAUWQVIUGZUWRUXBUWPUU
        SJUFZUVAJUFZWLBVDZFUDZCVDZFUDZETZIUXFUXHETZVGTZVIUGZCJWKBJWKZUXCUWPUXDU
        XEAUOJUUQGUUNWMZAUOJGWNUUTUOUFZUXEUURUUNUUQWOZUOJUUTGWPWQZXBAUXNUURAUXM
        BCJJPWRWSUXMUXCUWSUXIETZIUUSUXHETZVGTZVIUGBCUUSUVAJJUXFUUSVHZUXJUXSUXLU
        YAVIUYBUXGUWSUXIEUXFUUSFVKWTUYBUXKUXTIVGUXFUUSUXHEVLVPVQUXHUVAVHZUXSUXA
        UYAUWQVIUYCUXIUWTUWSEUXHUVAFVKVPUYCUXTUVBIVGUXHUVAUUSEVOVPVQXAXCUWPUXAU
        SUFZUWQUSUFUWFUSUFUXCUWRWLUXBVJUWPUUKUWSJUFUWTJUFUYDAUUKUURUULWSZUWPJJU
        USFAJJFWNUUROWSZUXOUTUWPJJUVAFUYFUXRUTUWSUWTEJVAVBUWPIUVBAIUSUFZUURUWNW
        SZUWPUUKUXDUXEUVBUSUFZUYEUXOUXRUUSUVAEJVAVBZXDUWPUUJUWEAUUJUSUFUURUUPWS
        ZUWPIUUTUYHUWPUUTUURUXPAUXQXEXFXGXDUXAUWQUWFXHVBXIUWPUVEUVBIVGTZUVDIVGT
        ZVIUGZUWRUWPUYIUVDUSUFUYGXJIXKUGZUVEUYNXNUYJUWPUUJUVCUYKAUYGUUQXLUFZUVC
        USUFUURUWNUUQXOZIUUQXMWQZXDUYHAUYOUURAIMXPWSUVBUVDIXQXRUWPUYLUWQUYMUWFV
        IUWPUVBIUWPUVBUYJWFAIXSUFZUURUWOWSZXTUWPUYMUUJUVCIVGTZVGTUWFUWPUUJUVCIU
        WPUUJUYKWFUWPUVCUYRWFUYTYAUWPUWEVUAUUJVGAUYSUYPUWEVUAVHUURUWOUYQIUUQYBW
        QVPYCVQYEUWPUWDUXAUWFVIUWPUVAUWSUWCUWTEADGJFUUQUNUOUPSUUMROWBUURAUXPUWC
        UWTVHUXQADGJFUUTUNUOUPSUUMROWBYDVNYFYGYHYIYPYJYKEGHJQYLYMAHYNUFZUUDYOUU
        EUUFXNAUUKEJYQUDUFVUBUULEJYREHJQYSYTHUUAGUUDUUBYTUUC $.

      $( Lemma for ~ bfp .  Using the point found in ~ bfplem1 , we show that
         this convergent point is a fixed point of ` F ` .  Since for any
         positive ` x ` , the sequence ` G ` is in ` B ( x / 2 , P ) ` for all
         ` k e. ( ZZ>= `` j ) ` (where ` P = ( ( ~~>t `` J ) `` G ) ` ), we
         have ` D ( G ( j + 1 ) , F ( P ) ) <_ D ( G ( j ) , P ) < x / 2 ` and
         ` D ( G ( j + 1 ) , P ) < x / 2 ` , so ` F ( P ) ` is in every
         neighborhood of ` P ` and ` P ` is a fixed point of ` F ` .
         (Contributed by Jeff Madsen, 5-Jun-2014.) $)
      bfplem2 $p |- ( ph -> E. z e. X ( F ` z ) = z ) $=
        ( vk clm cfv wcel wceq wrex ctopon wbr cme cxmt cms cmetmet syl metxmet
        vj cv mopntopon 3syl bfplem1 lmcl syl2anc co cc0 cle caddc crp wral clt
        wa c2 cdiv cuz cn adantr nnuz eqidd rphalfcl adantl lmmcvg simpr ralimi
        c1 1zzd cz wi nnz uzid fveq2 oveq1d breq1d rspcv peano2uz algrp1 sylibd
        adantlr jcad cr ad2antrr wf algrf ffvelrnda metcl syl3anc ffvelrnd rpre
        ad2antlr lt2halves readdcld syl13anc cmul rpred remulcld jca ralrimivva
        mettri2 oveq1 oveq2d breq12d oveq2 rspc2v sylc 1red metge0 ltle sylancl
        1re mpd lemul1ad recnd mulid2d breqtrd letrd leadd1dd lelttr mpand syl5
        3syld rexlimdva wb 0re syl2an addid2d ralrimiva alrple mpbird mpbir2and
        breqtrrd letri3 meteq0 mpbid id eqeq12d rspcev ) AHIUBUCZUCZKUDZUUOGUCZ
        UUOUEZDUPZGUCZUUSUEZDKUFAIKUGUCUDZHUUOUUNUHZUUPAFKUIUCUDZFKUJUCUDZUVBAF
        KUKUCUDUVDLFKULUMZFKUNZFIKRUQURABCEFGHIJKLMNOPQRSTUSZUUOHIKUTVAZAUUQUUO
        FVBZVCUEZUURAUVKUVJVCVDUHZVCUVJVDUHZAUVLUVJVCBUPZVEVBZVDUHZBVFVGZAUVPBV
        FAUVNVFUDZVIZUVJUVNUVOVDUVSUVJUVNVHUHZUVJUVNVDUHZUVSUAUPZHUCZKUDZUWCUUO
        FVBZUVNVJVKVBZVHUHZVIZUAUOUPZVLUCZVGZUOVMUFUVTUVSUWCFUUOUWFUOUAHIWBKVMR
        UVSUVDUVEAUVDUVRUVFVNUVGUMVOUVSWCUVSUWBVMUDVIUWCVPAUVCUVRUVHVNUVRUWFVFU
        DAUVNVQVRVSUVSUWKUVTUOVMUWKUWGUAUWJVGZUVSUWIVMUDZVIZUVTUWHUWGUAUWJUWDUW
        GVTWAUWNUWLUWIHUCZUUOFVBZUWFVHUHZUWOGUCZUUOFVBZUWFVHUHZVIZUWPUWSVEVBZUV
        NVHUHZUVTUWNUWLUWQUWTUWNUWIWDUDZUWIUWJUDZUWLUWQWEUWMUXDUVSUWIWFVRZUWIWG
        ZUWGUWQUAUWIUWJUWBUWIUEZUWEUWPUWFVHUXHUWCUWOUUOFUWBUWIHWHWIWJWKURUWNUWL
        UWIWBVEVBZHUCZUUOFVBZUWFVHUHZUWTUWNUXEUXIUWJUDUWLUXLWEUWNUXDUXEUXFUXGUM
        UWIUWIWLUWGUXLUAUXIUWJUWBUXIUEZUWEUXKUWFVHUXMUWCUXJUUOFUWBUXIHWHWIWJWKU
        RUWNUXKUWSUWFVHUWNUXJUWRUUOFAUWMUXJUWRUEUVRAEHKGUWIWBVMVOTAWCZSPWMWOWIW
        JWNWPUWNUWPWQUDZUWSWQUDZUVNWQUDZUXAUXCWEUWNUVDUWOKUDZUUPUXOAUVDUVRUWMUV
        FWRZUVSVMKUWIHAVMKHWSUVRAEHKGWBVMVOTUXNSPWTVNXAZAUUPUVRUWMUVIWRZUWOUUOF
        KXBXCZUWNUVDUWRKUDZUUPUXPUXSUWNKKUWOGAKKGWSUVRUWMPWRZUXTXDZUYAUWRUUOFKX
        BXCZUVRUXQAUWMUVNXEZXFZUWPUWSUVNXGXCUWNUVJUXBVDUHZUXCUVTUWNUVJUWRUUQFVB
        ZUWSVEVBZUXBAUVJWQUDZUVRUWMAUVDUUQKUDZUUPUYLUVFAKKUUOGPUVIXDZUVIUUQUUOF
        KXBXCZWRZUWNUYJUWSUWNUVDUYCUYMUYJWQUDUXSUYEUWNKKUUOGUYDUYAXDZUWRUUQFKXB
        XCZUYFXHUWNUWPUWSUYBUYFXHZUWNUVDUYCUYMUUPUVJUYKVDUHUXSUYEUYQUYAUUQUUOUW
        RFKXOXIUWNUYJUWPUWSUYRUYBUYFUWNUYJJUWPXJVBZUWPUYRUWNJUWPAJWQUDZUVRUWMAJ
        NXKZWRZUYBXLUYBUWNUXRUUPVIUVNGUCZCUPZGUCZFVBZJUVNVUEFVBZXJVBZVDUHZCKVGB
        KVGZUYJUYTVDUHZUWNUXRUUPUXTUYAXMAVUKUVRUWMAVUJBCKKQXNWRVUJVULUWRVUFFVBZ
        JUWOVUEFVBZXJVBZVDUHBCUWOUUOKKUVNUWOUEZVUGVUMVUIVUOVDVUPVUDUWRVUFFUVNUW
        OGWHWIVUPVUHVUNJXJUVNUWOVUEFXPXQXRVUEUUOUEZVUMUYJVUOUYTVDVUQVUFUUQUWRFV
        UEUUOGWHXQVUQVUNUWPJXJVUEUUOUWOFXSXQXRXTYAUWNUYTWBUWPXJVBUWPVDUWNJWBUWP
        VUCUWNYBUYBUWNUVDUXRUUPVCUWPVDUHUXSUXTUYAUWOUUOFKYCXCAJWBVDUHZUVRUWMAJW
        BVHUHZVUROAVUAWBWQUDVUSVURWEVUBYFJWBYDYEYGWRYHUWNUWPUWNUWPUYBYIYJYKYLYM
        YLUWNUYLUXBWQUDUXQUYIUXCVIUVTWEUYPUYSUYHUVJUXBUVNYNXCYOYQYPYRYGAUYLUXQU
        VTUWAWEUVRUYOUYGUVJUVNYDUUAYGUVSUVNUVSUVNUVRUXQAUYGVRYIUUBUUGUUCAUYLVCW
        QUDZUVLUVQYSUYOYTBUVJVCUUDYEUUEAUVDUYMUUPUVMUVFUYNUVIUUQUUOFKYCXCAUYLVU
        TUVKUVLUVMVIYSUYOYTUVJVCUUHYEUUFAUVDUYMUUPUVKUURYSUVFUYNUVIUUQUUOFKUUIX
        CUUJUVAUURDUUOKUUSUUOUEZUUTUUQUUSUUOUUSUUOGWHVVAUUKUULUUMVA $.
    $}

    $( Banach fixed point theorem, also known as contraction mapping theorem.
       A contraction on a complete metric space has a unique fixed point.  We
       show existence in the lemmas, and uniqueness here - if ` F ` has two
       fixed points, then the distance between them is less than ` K ` times
       itself, a contradiction.  (Contributed by Jeff Madsen, 2-Sep-2009.)
       (Proof shortened by Mario Carneiro, 5-Jun-2014.) $)
    bfp $p |- ( ph -> E! z e. X ( F ` z ) = z ) $=
      ( wcel c1 wbr co cle cc0 vw cv cfv wceq wrex wa weq wi wral c0 wne wex n0
      wreu sylib c1st ccom cn csn cxp cseq cmopn cms adantr crp wf cmul adantlr
      clt eqid simpr bfplem2 exlimddv oveq12 adantl eqbrtrrd cme cr cmetmet syl
      cmin ad2antrr simplrl simplrr metcl syl3anc rpred remulcld suble0d mpbird
      1cnd recnd subdird mulid2d oveq1d eqtrd resubcl sylancr mul01d 3brtr4d wb
      0red posdif sylancl mpbid lemul2 syl112anc metge0 letri3 mpbir2and meteq0
      1re ex ralrimivva fveq2 id eqeq12d anbi1d equequ1 imbi12d ralbidv cbvralv
      0re reu4 sylanbrc ) ADUBZFUCZYFUDZDHUEZYHCUBZFUCZYJUDZUFZDCUGZUHZCHUIZDHU
      IZYHDHUNAUAUBZHOZYIUAAHUJUKZYSUAULJUAHUMUOAYSUFBCDYREFFUPUQURYRUSUTPVAZEV
      BUCZGHAEHVCUCOZYSIVDAYTYSJVDAGVEOYSKVDAGPVIQZYSLVDAHHFVFYSMVDABUBZHOZYJHO
      ZUFZUUEFUCZYKERZGUUEYJERZVGRZSQZYSNVHUUBVJAYSVKUUAVJVLVMAUUIUUEUDZYLUFZBC
      UGZUHZCHUIZBHUIYQAUUQBCHHAUUHUFZUUOUUPUUSUUOUFZUUKTUDZUUPUUTUVAUUKTSQZTUU
      KSQZUUTUVBPGWARZUUKVGRZUVDTVGRZSQZUUTUUKUULWARZTUVEUVFSUUTUVHTSQUUKUULSQU
      UTUUJUUKUULSUUOUUJUUKUDUUSUUIUUEYKYJEVNVOUUSUUMUUONVDVPUUTUUKUULUUTEHVQUC
      OZUUFUUGUUKVROZAUVIUUHUUOAUUCUVIIEHVSVTWBZAUUFUUGUUOWCZAUUFUUGUUOWDZUUEYJ
      EHWEWFZUUTGUUKAGVROZUUHUUOAGKWGZWBZUVNWHWIWJUUTUVEPUUKVGRZUULWARUVHUUTPGU
      UKUUTWKUUTGUVQWLUUTUUKUVNWLZWMUUTUVRUUKUULWAUUTUUKUVSWNWOWPUUTUVDUUTUVDAU
      VDVROZUUHUUOAPVROZUVOUVTXLUVPPGWQWRWBZWLWSWTUUTUVJTVROZUVTTUVDVIQZUVBUVGX
      AUVNUUTXBUWBAUWDUUHUUOAUUDUWDLAUVOUWAUUDUWDXAUVPXLGPXCXDXEWBUUKTUVDXFXGWJ
      UUTUVIUUFUUGUVCUVKUVLUVMUUEYJEHXHWFUUTUVJUWCUVAUVBUVCUFXAUVNYCUUKTXIXDXJU
      UTUVIUUFUUGUVAUUPXAUVKUVLUVMUUEYJEHXKWFXEXMXNUURYPBDHBDUGZUUQYOCHUWEUUOYM
      UUPYNUWEUUNYHYLUWEUUIYGUUEYFUUEYFFXOUWEXPXQXRBDCXSXTYAYBUOYHYLDCHYNYGYKYF
      YJYFYJFXOYNXPXQYDYE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Euclidean space
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Rn $.
  $( Extend class notation with the n-dimensional Euclidean space. $)
  crrn $a class Rn $.

  ${
    $d i x y k $.
    $( Define n-dimensional Euclidean space as a metric space with the standard
       Euclidean norm given by the quadratic mean.  (Contributed by Jeff
       Madsen, 2-Sep-2009.) $)
    df-rrn $a |- Rn = ( i e. Fin |->
       ( x e. ( RR ^m i ) , y e. ( RR ^m i ) |-> ( sqrt `
         sum_ k e. i ( ( ( x ` k ) - ( y ` k ) ) ^ 2 ) ) ) ) $.
  $}

  ${
    $d k n x y G $.  $d i j k m n x y z I $.  $d j k n M $.  $d j k n x ph $.
    $d k A $.  $d x J $.  $d j k n x y P $.  $d k n R $.  $d i j k x y z X $.
    $d j k m n t x y F $.
    rrnval.1 $e |- X = ( RR ^m I ) $.
    $( The n-dimensional Euclidean space.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by Mario Carneiro, 13-Sep-2015.) $)
    rrnval $p |- ( I e. Fin -> ( Rn ` I ) = ( x e. X , y e. X |-> ( sqrt `
          sum_ k e. I ( ( ( x ` k ) - ( y ` k ) ) ^ 2 ) ) ) ) $=
      ( vi cr cv cmap co cfv csu csqrt cmpt2 wf cvv wcel wral cc cmin cexp crrn
      c2 cfn wceq oveq2 syl6eqr sumeq1 fveq2d mpt2eq123dv df-rrn cxp crn c0 csn
      cun fvrn0 rgen2w eqid fmpt2 mpbi ovex eqeltri xpex cnex sqrtf ax-mp ssexi
      wss frn p0ex unex fex2 mp3an fvmpt ) GDABHGIZJKZVRVQCIZAILVSBILUAKUDUBKZC
      MZNLZOABEEDVTCMZNLZOZUEUCVQDUFZABVRVRWBEEWDWFVRHDJKZEVQDHJUGFUHZWHWFWAWCN
      VQDVTCUIUJUKABGCULEEUMZNUNZUOUPZUQZWEPZWIQRWLQRWEQRWDWLRZBESAESWMWNABEENW
      CURUSABEEWDWLWEWEUTVAVBEEEWGQFHDJVCVDZWOVEWJWKWJTVFTTNPWJTVJVGTTNVKVHVIVL
      VMWIWLWEQQVNVOVP $.

    $( The value of the Euclidean metric.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by Mario Carneiro, 13-Sep-2015.) $)
    rrnmval $p |- ( ( I e. Fin /\ F e. X /\ G e. X ) -> ( F ( Rn ` I ) G ) =
        ( sqrt ` sum_ k e. I ( ( ( F ` k ) - ( G ` k ) ) ^ 2 ) ) ) $=
      ( vx vy cfn wcel cv cfv cmin co c2 cexp csu csqrt wceq fveq1 w3a crrn cvv
      cmpt2 rrnval 3ad2ant1 oveqan12d oveq1d sumeq2sdv fveq2d simp2 simp3 fvexd
      wa adantl ovmpt2d ) DIJZBEJZCEJZUAZGHBCEEDAKZGKZLZVAHKZLZMNZOPNZAQZRLZDVA
      BLZVACLZMNZOPNZAQZRLZDUBLZUCUQURVPGHEEVIUDSUSGHADEFUEUFVBBSZVDCSZUNZVIVOS
      UTVSVHVNRVSDVGVMAVSVFVLOPVQVRVCVJVEVKMVAVBBTVAVDCTUGUHUIUJUOUQURUSUKUQURU
      SULUTVNRUMUP $.

    $( Euclidean space is a metric space.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Proof shortened by Mario Carneiro, 5-Jun-2014.) $)
    rrnmet $p |- ( I e. Fin -> ( Rn ` I ) e. ( Met ` X ) ) $=
      ( vx vy vk wcel cr cfv wf co cc0 wceq caddc wral wa c2 cexp csqrt syl cfn
      vz cxp crrn cv wb cle wbr cme cmin csu cmpt2 simpl simprl syl6eleq elmapi
      cmap ffvelrnda simprr resubcld resqcld fsumrecl sqge0d fsumge0 ralrimivva
      resqrtcld eqid fmpt2 sylib rrnval feq1d mpbird sqrt00 syl2anc bitrd recnd
      fsum00 cc sqeq0 subeq0ad ralbidva rrnmval 3expb eqeq1d wfn eqfnfv 3bitr4d
      ffn simpll adantlr simpr npncand oveq1d sumeq2dv fveq2d sqsubswap 3brtr3d
      trirn w3a 3adant3r 3adant3l oveq12d 3expa an32s 3brtr4d ralrimiva jca cvv
      adantr ovex eqeltri ismet ax-mp sylanbrc ) AUAGZBBUCZHAUDIZJZDUEZEUEZXQKZ
      LMZXSXTMZUFZYAUBUEZXSXQKZYEXTXQKZNKZUGUHZUBBOZPZEBODBOZXQBUIIGZXOXRXPHDEB
      BAFUEZXSIZYNXTIZUJKZQRKZFUKZSIZULZJZXOYTHGZEBODBOUUBXOUUCDEBBXOXSBGZXTBGZ
      PZPZYSUUGAYRFXOUUFUMZUUGYNAGZPZYQUUJYOYPUUGAHYNXSUUGXSHAUQKZGAHXSJZUUGXSB
      UUKXOUUDUUEUNCUOXSHAUPTZURZUUGAHYNXTUUGXTUUKGAHXTJZUUGXTBUUKXOUUDUUEUSCUO
      XTHAUPTZURZUTZVAZVBZUUGAYRFUUHUUSUUJYQUURVCZVDZVFVEDEBBYTHUUAUUAVGVHVIXOX
      PHXQUUADEFABCVJVKVLXOYKDEBBUUGYDYJUUGYTLMZYOYPMZFAOZYBYCUUGUVCYRLMZFAOZUV
      EUUGUVCYSLMZUVGUUGYSHGLYSUGUHUVCUVHUFUUTUVBYSVMVNUUGAYRFUUHUUSUVAVQVOUUGU
      VFUVDFAUUJUVFYQLMZUVDUUJYQVRGUVFUVIUFUUJYQUURVPYQVSTUUJYOYPUUJYOUUNVPZUUJ
      YPUUQVPZVTVOWAVOUUGYAYTLXOUUDUUEYAYTMZFXSXTABCWBWCZWDUUGXSAWEZXTAWEZYCUVE
      UFUUGUULUVNUUMAHXSWHTUUGUUOUVOUUPAHXTWHTFAXSXTWFVNWGUUGYIUBBUUGYEBGZPZYTA
      YNYEIZYOUJKQRKZFUKZSIZAUVRYPUJKZQRKFUKSIZNKZYAYHUGUVQAYOUVRUJKZUWBNKZQRKZ
      FUKZSIAUWEQRKZFUKZSIZUWCNKYTUWDUGUVQAUWEUWBFXOUUFUVPWIUVQUUIPZYOUVRUUGUUI
      YOHGUVPUUNWJUVQAHYNYEUVQYEUUKGAHYEJUVQYEBUUKUUGUVPWKCUOYEHAUPTURZUTUWLUVR
      YPUWMUUGUUIYPHGUVPUUQWJUTWRUVQUWHYSSUVQAUWGYRFUWLUWFYQQRUWLYOUVRYPUUGUUIY
      OVRGZUVPUVJWJZUWLUVRUWMVPZUUGUUIYPVRGUVPUVKWJWLWMWNWOUVQUWKUWAUWCNUVQUWJU
      VTSUVQAUWIUVSFUWLUWNUVRVRGUWIUVSMUWOUWPYOUVRWPVNWNWOWMWQUUGUVLUVPUVMXIXOU
      VPUUFYHUWDMZXOUVPUUFUWQXOUVPUUFWSYFUWAYGUWCNXOUVPUUDYFUWAMUUEFYEXSABCWBWT
      XOUVPUUEYGUWCMUUDFYEXTABCWBXAXBXCXDXEXFXGVEBXHGYMXRYLPUFBUUKXHCHAUQXJXKDE
      UBXHXQBXLXMXN $.

    rrndstprj1.1 $e |- M = ( ( abs o. - ) |` ( RR X. RR ) ) $.
    $( The distance between two points in Euclidean space is greater than the
       distance between the projections onto one coordinate.  (Contributed by
       Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 13-Sep-2015.) $)
    rrndstprj1 $p |- ( ( ( I e. Fin /\ A e. I ) /\ ( F e. X /\ G e. X
                    ) ) -> ( ( F ` A ) M ( G ` A ) ) <_ ( F ( Rn ` I ) G ) ) $=
      ( vk wcel wa cfv cmin co c2 cexp cle wbr cr wceq cfn cabs cv csqrt simpll
      csu crrn cmap wf simprl syl6eleq elmapi ffvelrnda simprr resubcld resqcld
      syl sqge0d fveq2 oveq12d oveq1d fsumge1 ffvelrnd absresq fsumrecl fsumge0
      simplr cc0 resqrtth syl2anc 3brtr4d recnd abscld resqrtcld absge0d le2sqd
      sqrtge0d mpbird remetdval rrnmval 3expb adantlr ) DUAJZADJZKZBFJZCFJZKZKZ
      ABLZACLZMNZUBLZDIUCZBLZWNCLZMNZOPNZIUFZUDLZWJWKENZBCDUGLNZQWIWMWTQRWMOPNZ
      WTOPNZQRWIWLOPNZWSXCXDQWIDWRXEIAWCWDWHUEZWIWNDJKZWQXGWOWPWIDSWNBWIBSDUHNZ
      JDSBUIWIBFXHWEWFWGUJGUKBSDULUQZUMWIDSWNCWICXHJDSCUIWICFXHWEWFWGUNGUKCSDUL
      UQZUMUOZUPZXGWQXKURZWNATZWQWLOPXNWOWJWPWKMWNABUSWNACUSUTVAWCWDWHVGZVBWIWL
      SJXCXETWIWJWKWIDSABXIXOVCZWIDSACXJXOVCZUOZWLVDUQWIWSSJVHWSQRXDWSTWIDWRIXF
      XLVEZWIDWRIXFXLXMVFZWSVIVJVKWIWMWTWIWLWIWLXRVLZVMWIWSXSXTVNWIWLYAVOWIWSXS
      XTVQVPVRWIWJSJWKSJXAWMTXPXQWJWKEHVSVJWCWHXBWTTZWDWCWFWGYBIBCDFGVTWAWBVK
      $.

    $( Bound on the distance between two points in Euclidean space given bounds
       on the distances in each coordinate.  This theorem and ~ rrndstprj1 can
       be used to show that the supremum norm and Euclidean norm are
       equivalent.  (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by
       Mario Carneiro, 13-Sep-2015.) $)
    rrndstprj2 $p |- ( ( ( I e. ( Fin \ { (/) } ) /\ F e. X /\ G e. X ) /\
      ( R e. RR+ /\ A. n e. I ( ( F ` n ) M ( G ` n ) ) < R ) ) ->
        ( F ( Rn ` I ) G ) < ( R x. ( sqrt ` ( # ` I ) ) ) ) $=
      ( vk wcel cfv co clt wbr c2 cexp cmul wceq cr cfn c0 csn cdif w3a cv wral
      crp wa crrn cmin csqrt chash simpl1 eldifad simpl2 simpl3 rrnmval syl3anc
      csu wne eldifsni syl wf syl6eleq elmapi ffvelrnda resubcld resqcld simprl
      cmap rpred adantr absresq remetdval syl2anc simprr oveq12d breq1d rspccva
      cabs fveq2 sylan eqbrtrrd recnd abscld absge0d rpge0d lt2sqd mpbid fsumlt
      cc0 cle fsumrecl sqge0d resqrtth cn wb hashnncl mpbird nnrpd oveq2d rpcnd
      fsumge0 mulcomd eqtrd rpsqrtcld sqmuld fsumconst 3eqtr4d 3brtr4d rpmulcld
      cc resqrtcld sqrtge0d eqbrtrd ) EUAUBUCZUDKZCGKZDGKZUEZAUHKZBUFZCLZYCDLZF
      MZANOZBEUGZUIZUIZCDEUJLMZEJUFZCLZYLDLZUKMZPQMZJUTZULLZAEUMLZULLZRMZNYJEUA
      KZXSXTYKYRSYJEUAXQXRXSXTYIUNZUOZXRXSXTYIUPZXRXSXTYIUQZJCDEGHURUSYJYRUUANO
      YRPQMZUUAPQMZNOYJYQEAPQMZJUTZUUGUUHNYJEYPUUIJUUDYJXREUBVAZUUCEUAUBVBVCZYJ
      YLEKZUIZYOUUNYMYNYJETYLCYJCTEVKMZKETCVDYJCGUUOUUEHVECTEVFVCVGZYJETYLDYJDU
      UOKETDVDYJDGUUOUUFHVEDTEVFVCVGZVHZVIZYJUUITKUUMYJAYJAYAYBYHVJZVLZVIZVMUUN
      YOWALZPQMZYPUUINUUNYOTKUVDYPSUURYOVNVCUUNUVCANOUVDUUINOUUNYMYNFMZUVCANUUN
      YMTKYNTKUVEUVCSUUPUUQYMYNFIVOVPYJYHUUMUVEANOZYAYBYHVQYGUVFBYLEYCYLSZYFUVE
      ANUVGYDYMYEYNFYCYLCWBYCYLDWBVRVSVTWCWDUUNUVCAUUNYOUUNYOUURWEZWFYJATKUUMUV
      AVMUUNYOUVHWGYJWLAWMOUUMYJAUUTWHVMWIWJWDWKYJYQTKWLYQWMOUUGYQSYJEYPJUUDUUS
      WNZYJEYPJUUDUUSUUNYOUURWOXDZYQWPVPYJUUIYTPQMZRMZYSUUIRMZUUHUUJYJUVLUUIYSR
      MUVMYJUVKYSUUIRYJYSTKWLYSWMOUVKYSSYJYSYJYSYJYSWQKZUUKUULYJUUBUVNUUKWRUUDE
      WSVCWTXAZVLYJYSUVOWHYSWPVPXBYJUUIYSYJUUIUVBWEZYJYSUVOXCXEXFYJAYTYJAUUTXCY
      JYTYJYSUVOXGZXCXHYJUUBUUIXMKUUJUVMSUUDUVPEUUIJXIVPXJXKYJYRUUAYJYQUVIUVJXN
      YJUUAYJAYTUUTUVQXLZVLYJYQUVIUVJXOYJUUAUVRWHWIWTXP $.

    rrncms.3 $e |- J = ( MetOpen ` ( Rn ` I ) ) $.
    rrncms.4 $e |- ( ph -> I e. Fin ) $.
    rrncms.5 $e |- ( ph -> F e. ( Cau ` ( Rn ` I ) ) ) $.
    rrncms.6 $e |- ( ph -> F : NN --> X ) $.
    rrncms.7 $e |- P = ( m e. I |->
                         ( ~~> ` ( t e. NN |-> ( ( F ` t ) ` m ) ) ) ) $.
    $( Lemma for ~ rrncms .  (Contributed by Jeff Madsen, 6-Jun-2014.)
       (Revised by Mario Carneiro, 13-Sep-2015.) $)
    rrncmslem $p |- ( ph -> F e. dom ( ~~>t ` J ) ) $=
      ( vk cfv wcel cn vx vj vn vy clm wrel wbr cdm lmrel cv crrn clt wral wrex
      co cuz crp cr cmap wf wfn cmpt cli fvex fnmpti a1i nnuz 1zzd cvv wceq weq
      wa fveq2 fveq1d eqid fvmpt adantl ffvelrnda syl6eleq elmapi an32s eqeltrd
      c1 syl recnd cmin cabs cca cme cxmt cfn rrnmet metxmet eqidd iscauf mpbid
      adantr ad3antrrr simpllr eluznn adantll ffvelrnd syl3anc adantllr syl2anc
      cle simplr wi ad2antrr ralimdva reximdva remetdval fveq2d breq1d ralbidva
      metcl rexbidva sylibd mpd ralrimiva sylanbrc wb sylancr mpbird c0 cc0 csu
      csqrt adantlr simplrr syl6eq simplrl expr cz 1z rexuz3 ax-mp sylan2 rpcnd
      anassrs rrndstprj1 syl22anc metsym breqtrd remet simpll rpre lelttr mpand
      ad2antlr oveq12d eqtr4d ralbidv nnex mptex caucvg sylib mpteq2dv breqtrrd
      climdm climrecl ffnfv reex elmapg syl6eleqr 1nn cexp rrnmval sumeq1d sum0
      eqtrd sqrt0 rpgt0d eqbrtrd syl6eqr raleqdv rspcev wne chash simprl simprr
      cdiv hashnncl nnrpd rpsqrtcld rpdivcld climi2 syl5bbr rexfiuz syl5bb cmul
      csn cdif eldifsn w3a rrndstprj2 syl31anc rpne0d divcan1d breq2d pm2.61dne
      c2 lmmbrf mpbir2and releldm ) AGUERZUFECUXFUGZEUXFUHSGUIAUXGCISZQUJZERZCF
      UKRZUOZUAUJZULUGZQUBUJZUPRZUMZUBTUNZUAUQUMACURFUSUOZIACUXSSZFURCUTZACFVAZ
      UCUJZCRZURSZUCFUMUYAUYBADFBTDUJZBUJZERZRZVBZVCRZCUYJVCVDPVEVFAUYEUCFAUYCF
      SZVLZUYDQBTUYCUYHRZVBZWCTVGUYMVHUYMUYOUYOVCRZUYDVCUYMUYOVCUHSUYOUYPVCUGUY
      MUAUBQUYOWCVITVGUYMUXITSZVLZUXIUYORZUYRUYSUYCUXJRZURUYQUYSUYTVJZUYMBUXIUY
      NUYTTUYOBQVKUYCUYHUXJUYGUXIEVMVNUYOVOZUYCUXJVDVPZVQAUYQUYLUYTURSZAUYQVLZF
      URUYCUXJVUEUXJUXSSFURUXJUTVUEUXJIUXSATIUXIEOVRZJVSUXJURFVTWDVRWAZWBZWEUYM
      UXOERZUXJUXKUOZUXMULUGZQUXPUMZUBTUNZUAUQUMZUYSUXOUYORZWFUOZWGRZUXMULUGZQU
      XPUMZUBTUNZUAUQUMZAVUNUYLAEUXKWHRSVUNNAUAUXJVUIUXKUBQEWCITVGAUXKIWIRSZUXK
      IWJRSAFWKSZVVBMFIJWLWDZUXKIWMWDZAVHZVUEUXJWNZAUXOTSZVLZVUIWNOWOWPWQUYMVUN
      UYTUYCVUIRZHUOZUXMULUGZQUXPUMZUBTUNZUAUQUMVVAUYMVUMVVNUAUQUYMUXMUQSZVLZVU
      LVVMUBTVVPVVHVLZVUKVVLQUXPVVQUXIUXPSZVLZVVKVUJXFUGZVUKVVLUYMVVHVVRVVTVVOU
      YMVVHVLZVVRVLZVVKUXJVUIUXKUOZVUJXFVWBVVCUYLUXJISZVUIISZVVKVWCXFUGAVVCUYLV
      VHVVRMWRAUYLVVHVVRWSVWBTIUXIEATIEUTZUYLVVHVVROWRZVVHVVRUYQUYMUXIUXOWTZXAZ
      XBZVWBTIUXOEVWGUYMVVHVVRXGXBZUYCUXJVUIFHIJKUUAUUBVWBVVBVWDVWEVWCVUJVJAVVB
      UYLVVHVVRVVDWRZVWJVWKUXJVUIUXKIUUCXCUUDXDVVSVVKURSZVUJURSZUXMURSZVVTVUKVL
      VVLXHUYMVVHVVRVWMVVOVWBHURWIRSZVUDVVJURSZVWMVWPVWBHKUUEVFVWBUYMUYQVUDUYMV
      VHVVRUUFVWIVUGXEZVWAVWQVVRAVVHUYLVWQVVIFURUYCVUIVVIVUIUXSSFURVUIUTVVIVUII
      UXSATIUXOEOVRJVSVUIURFVTWDVRWAWQZUYTVVJHURXPXCXDUYMVVHVVRVWNVVOVWBVVBVWEV
      WDVWNVWLVWKVWJVUIUXJUXKIXPXCXDVVPVWOVVHVVRVVOVWOUYMUXMUUGVQXIVVKVUJUXMUUH
      XCUUIXJXKXJUYMVVNVUTUAUQUYMVVMVUSUBTVWAVVLVURQUXPVWBVVKVUQUXMULVWBVVKUYTV
      VJWFUOZWGRZVUQVWBVUDVWQVVKVXAVJVWRVWSUYTVVJHKXLXEVWBVUPVWTWGVWBUYSUYTVUOV
      VJWFVWBUYQVUAVWIVUCWDVVHVUOVVJVJUYMVVRBUXOUYNVVJTUYOBUBVKUYCUYHVUIUYGUXOE
      VMVNVUBUYCVUIVDVPUUJUUKXMUULXNXOXQUUMXRXSUYOVISUYMBTUYNUUNUUOVFUUPUYOUUTU
      UQUYLUYDUYPVJADUYCUYKUYPFCDUCVKZUYJUYOVCVXBBTUYIUYNUYFUYCUYHVMUURXMPUYOVC
      VDVPVQUUSZVUHUVAZXTUCFURCUVBYAAURVISVVCUXTUYAYBUVCMURFCVIWKUVDYCYDJUVEZAU
      XRUAUQAVVOVLUXRFYEAVVOFYEVJZUXRAVVOVXFVLZVLZWCTSUXNQTUMZUXRUVFVXHUXNQTVXH
      UYQVLZUXLYFUXMULVXJUXLYFYHRZYFVXJUXLFUDUJZUXJRVXLCRWFUOUXBUVGUOZUDYGZYHRZ
      VXKVXJVVCVWDUXHUXLVXOVJAVVCVXGUYQMXIAUYQVWDVXGVUFYIAUXHVXGUYQVXEXIUDUXJCF
      IJUVHXCVXJVXNYFYHVXJVXNYEVXMUDYGYFVXJFYEVXMUDAVVOVXFUYQYJUVIVXMUDUVJYKXMU
      VKUVLYKVXJUXMAVVOVXFUYQYLUVMUVNXTUXQVXIUBWCTUXOWCVJZUXNQUXPTVXPUXPWCUPRTU
      XOWCUPVMVGUVOUVPUVQYCYMAVVOFYEUVRZUXRAVVOVXQVLZVLZUYTUYDHUOZUXMFUVSRZYHRZ
      UWBUOZULUGZUCFUMZQUXPUMZUBTUNZUXRVXSVYGVYDQUXPUMZUBYNUNZUCFUMZVXSVYIUCFVX
      SUYLVLZVYIUYTUYDWFUOWGRZVYCULUGZQUXPUMZUBTUNZVYKUYDUYTVYCUBQUYOWCTVGVYKVH
      VXSVYCUQSZUYLVXSUXMVYBAVVOVXQUVTVXSVYAVXSVYAVXSVYATSZVXQAVVOVXQUWAVXSVVCV
      YQVXQYBAVVCVXRMWQZFUWCWDYDUWDUWEZUWFZWQUYQVUAVYKVUCVQAUYLUYOUYDVCUGVXRVXC
      YIUWGVYIVYHUBTUNZVYKVYOWCYNSZWUAVYIYBYOVYDUBQWCTVGYPYQVYKVYHVYNUBTVYKVVHV
      LVYDVYMQUXPVYKVVHVVRVYDVYMYBZVVHVVRVLZVYKUYQWUCVWHVYKUYQVLZVXTVYLVYCULWUE
      VUDUYEVXTVYLVJAUYLUYQVUDVXRVUGXDVYKUYEUYQAUYLUYEVXRVXDYIWQUYTUYDHKXLXEXNY
      RYTXOXQUWHYDXTVYGVYFUBYNUNZVXSVYJWUBVYGWUFYBYOVYEUBQWCTVGYPYQVXSVVCWUFVYJ
      YBVYRVYDFUBQUCUWIWDUWJYDVXSVYFUXQUBTVXSVVHVLVYEUXNQUXPVXSVVHVVRVYEUXNXHZW
      UDVXSUYQWUGVWHVXSUYQVLZVYEUXLVYCVYBUWKUOZULUGZUXNWUHFWKYEUWLUWMSZVWDUXHVY
      PVYEWUJXHWUHVVCVXQWUKAVVCVXRUYQMXIAVVOVXQUYQYJFWKYEUWNYAVXSTIUXIEAVWFVXRO
      WQVRAUXHVXRUYQVXEXIVXSVYPUYQVYTWQWUKVWDUXHUWOVYPVYEWUJVYCUCUXJCFHIJKUWPYM
      UWQWUHWUIUXMUXLULWUHUXMVYBWUHUXMAVVOVXQUYQYLYSWUHVYBVXSVYBUQSUYQVYSWQZYSW
      UHVYBWULUWRUWSUWTXRYRYTXJXKXSYMUXAXTAUAUXJUXKCUBQEGWCITLVVEVGVVFVVGOUXCUX
      DECUXFUXEYC $.
  $}

  ${
    $d f m t I $.  $d f X $.
    rrncms.1 $e |- X = ( RR ^m I ) $.
    $( Euclidean space is complete.  (Contributed by Jeff Madsen, 2-Sep-2009.)
       (Revised by Mario Carneiro, 13-Sep-2015.) $)
    rrncms $p |- ( I e. Fin -> ( Rn ` I ) e. ( CMet ` X ) ) $=
      ( vf vt vm cfn wcel crrn cfv cms cn cv wf cmopn clm wa cmpt cr eqid simpr
      cdm wi cca wral cli cabs cmin ccom cres simpll simplr rrncmslem ralrimiva
      cxp ex c1 nnuz 1zzd rrnmet iscmet3 mpbird ) AGHZAIJZBKJHLBDMZNZVEVDOJZPJU
      BHZUCZDVDUDJZUEVCVIDVJVCVEVJHZQZVFVHVLVFQEFAELFMEMVEJJRUFJRZFVEAVGUGUHUIS
      SUOUJZBCVNTVGTZVCVKVFUKVCVKVFULVLVFUAVMTUMUPUNVCVDDVGUQBLURVOVCUSABCUTVAV
      B $.
  $}

  ${
    $d k r z F $.  $d k r z G $.  $d k r z I $.  $d k r z ph $.  $d k r z X $.
    $d k r D $.
    rrnequiv.y $e |- Y = ( ( CCfld |`s RR ) ^s I ) $.
    rrnequiv.d $e |- D = ( dist ` Y ) $.
    rrnequiv.1 $e |- X = ( RR ^m I ) $.
    $( The supremum metric on ` RR ^ I ` is a metric.  (Contributed by Jeff
       Madsen, 15-Sep-2015.) $)
    repwsmet $p |- ( I e. Fin -> D e. ( Met ` X ) ) $=
      ( vk cfn wcel ccnfld csca cfv cr cds cbs cme cvv eqid wceq cress co cprds
      csn cabs cmin ccom cres cmpt fconstmpt oveq2i ax-resscn cnfldbas ressbas2
      cxp cc wss ax-mp reex cnfldds ressds reseq1i fvexd id cv ovex a1i prdsmet
      wa remet resssca pwsval mpan fveq2d syl5eq cmap pwsbas eqtrd 3eltr4d ) BI
      JZKLMZBKNUAUBZUDUOZUCUBZOMZWDPMZQMACQMVTHWFWEWBWAUEUFUGZNNUOZUHZBNRWDRWCH
      BWBUIWAUCHBWBUJUKWFSNUPUQNWBPMTULNUPWBKWBSZUMUNURZWGWBOMZWHNRJZWGWLTUSNWG
      KWBRWJUTVAURVBWESVTKLVCVTVDWBRJZVTHVEBJVIZKNUAVFZVGWINQMJWOWIWISVJVGVHVTA
      DOMWEFVTDWDOWNVTDWDTWPWBWABRIDEWMWAWBLMTUSNWAKWBRWJWASVKURVLVMZVNVOVTCWFQ
      VTCNBVPUBZWFGVTWRDPMZWFWNVTWRWSTWPNWBBRIDEWKVQVMVTDWDPWQVNVRVOVNVS $.

    rrnequiv.i $e |- ( ph -> I e. Fin ) $.
    $( The supremum metric on ` RR ^ I ` is equivalent to the ` Rn ` metric.
       (Contributed by Jeff Madsen, 15-Sep-2015.) $)
    rrnequiv $p |- ( ( ph /\ ( F e. X /\ G e. X ) ) ->
      ( ( F D G ) <_ ( F ( Rn ` I ) G ) /\
        ( F ( Rn ` I ) G ) <_ ( ( sqrt ` ( # ` I ) ) x. ( F D G ) ) ) ) $=
      ( vk wcel co cfv cle wbr cr cvv adantr vz vr wa crrn chash cmul cabs cmin
      csqrt cv ccom cxp cres cmpt crn cc0 csn cun cxr clt csup csca cress cprds
      ccnfld cds wceq ovex reex eqid resssca ax-mp pwsval sylancr fveq2d syl5eq
      cfn oveqd cbs fconstmpt oveq2i a1i ralrimiva simprl cmap cc wss ax-resscn
      cnfldbas ressbas2 pwsbas eleqtrd simprr cnfldds ressds reseq1i prdsdsval3
      fvexd eqtrd wral rrndstprj1 an32s sylanl1 rgenw breq1 ralrnmpt sylibr cme
      wb rrnmet metge0 syl3anc elsni breq1d syl5ibrcom ralrimiv ralunb sylanbrc
      wf prdsbascl r19.21bi metcl syl2anc ressxr sseldi mpbird eqbrtrd syl6eleq
      syl c0 wfn elmapi ffn 3syl caddc crp readdcld lelttrd ad2antrr recnd rzal
      remet mp3an1 fmptd frn syl6ss snssd unssd supxrleub eqfnfv syl5ibr oveq1d
      0xr imp cn0 hashcl nn0red nn0ge0d resqrtcld repwsmet sqrtge0d mulge0d wne
      met0 remulcld rpre ad2antll cdiv cdif eldifsn cn hashnncl nnrpd rpsqrtcld
      rpdivcld rpred 0red ltaddrpd elrpd adantlr ssun1 elrnmpt1 sylancl supxrub
      simpr breqtrrd rrndstprj2 syl32anc adddird mulcomd rpne0d oveq12d breqtrd
      divcan1d ltled anassrs alrple pm2.61dane jca ) ACFMZDFMZUCZUCZCDBNZCDEUDO
      ZNZPQUXFEUEOZUIOZUXDUFNZPQZUXCUXDLELUJZCOZUXKDOZUGUHUKZRRULZUMZNZUNZUOZUP
      UQZURZUSUTVAZUXFPUXCUXDCDVEVBOZEVERVCNZUQULZVDNZVFOZNUYBUXCBUYGCDUXCBGVFO
      UYGIUXCGUYFVFUXCUYDSMZEVQMZGUYFVGVERVCVHZAUYIUXBKTZUYDUYCESVQGHRSMZUYCUYD
      VBOVGVIRUYCVEUYDSUYDVJZUYCVJVKVLVMVNZVOVPVRUXCLUYFVSOZUYGUYDUYCUXPCDERSVQ
      SUYFUYELEUYDUNUYCVDLEUYDVTWAZUYOVJZUXCVEVBWRZUYKUXCUYHLEUYHUXCUXKEMZUCZUY
      JWBWCZUXCCFUYOAUWTUXAWDZUXCFREWENZUYOJUXCVUCGVSOZUYOUXCUYHUYIVUCVUDVGUYJU
      YKRUYDESVQGHRWFWGRUYDVSOVGWHRWFUYDVEUYMWIWJVLZWKVNUXCGUYFVSUYNVOWSVPZWLZU
      XCDFUYOAUWTUXAWMZVUFWLZVUEUXNUYDVFOZUXOUYLUXNVUJVGVIRUXNVEUYDSUYMWNWOVLWP
      UYGVJWQWSZUXCUYBUXFPQZUAUJZUXFPQZUAUYAWTZUXCVUNUAUXSWTZVUNUAUXTWTVUOUXCUX
      QUXFPQZLEWTZVUPUXCVUQLEAUYIUXBUYSVUQKUYIUYSUXBVUQUXKCDEUXPFJUXPVJZXAXBXCW
      CUXQSMZLEWTVUPVURXIVUTLEUXLUXMUXPVHZXDVUNVUQLUAEUXQUXRSUXRVJZVUMUXQUXFPXE
      XFVLXGUXCVUNUAUXTUXCVUNVUMUXTMZUPUXFPQZUXCUXEFXHOZMZUWTUXAVVDUXCUYIVVFUYK
      EFJXJYIZVUBVUHCDUXEFXKXLVVCVUMUPUXFPVUMUPXMXNXOXPVUNUAUXSUXTXQXRUXCUYAUSW
      GZUXFUSMVULVUOXIUXCUXSUXTUSUXCUXSRUSUXCERUXRXSUXSRWGUXCLEUXQRUXRUYTUXLRMZ
      UXMRMZUXQRMZUXCVVILEUXCLUYOUYDUYCCERSVQSUYFUYPUYQUYRUYKVUAVUEVUGXTYAUXCVV
      JLEUXCLUYOUYDUYCDERSVQSUYFUYPUYQUYRUYKVUAVUEVUIXTYAUXPRXHOMVVIVVJVVKUXPVU
      SUUBUXLUXMUXPRYBUUCYCZVVBUUDERUXRUUEYIYDUUFUXCUPUSUPUSMUXCUUMWBUUGUUHZUXC
      RUSUXFYDUXCVVFUWTUXAUXFRMZVVGVUBVUHCDUXEFYBXLZYEUAUYAUXFUUIYCYFYGUXCUXJEY
      JUXCEYJVGZUCZUXFDDUXENZUXIPVVQCDDUXEUXCVVPCDVGZVVPVVSUXCUXLUXMVGZLEWTZVVT
      LEUUAUXCCEYKZDEYKZVVSVWAXIUXCCVUCMERCXSVWBUXCCFVUCVUBJYHCREYLERCYMYNUXCDV
      UCMERDXSVWCUXCDFVUCVUHJYHDREYLERDYMYNLECDUUJYCUUKUUNUULUXCVVRUXIPQVVPUXCV
      VRUPUXIPUXCVVFUXAVVRUPVGVVGVUHDUXEFUVDYCUXCUXHUXDUXCUXGUXCUXGUXCUYIUXGUUO
      MUYKEUUPYIZUUQZUXCUXGVWDUURZUUSZUXCBVVEMZUWTUXAUXDRMZUXCUYIVWHUYKBEFGHIJU
      UTYIZVUBVUHCDBFYBXLZUXCUXGVWEVWFUVAUXCVWHUWTUXAUPUXDPQZVWJVUBVUHCDBFXKXLZ
      UVBYGTYGUXCEYJUVCZUCZUXJUXFUXIUBUJZYONZPQZUBYPWTZVWOVWRUBYPUXCVWNVWPYPMZV
      WRUXCVWNVWTUCZUCZUXFVWQUXCVVNVXAVVOTVXBUXIVWPUXCUXIRMZVXAUXCUXHUXDVWGVWKU
      VEZTVWTVWPRMUXCVWNVWPUVFUVGZYQVXBUXFUXDVWPUXHUVHNZYONZUXHUFNZVWQUTVXBEVQY
      JUQUVIMZUWTUXAVXGYPMUXQVXGUTQZLEWTUXFVXHUTQVXBUYIVWNVXIUXCUYIVXAUYKTZUXCV
      WNVWTWDZEVQYJUVJXRUXCUWTVXAVUBTUXCUXAVXAVUHTVXBVXGVXBUXDVXFUXCVWIVXAVWKTZ
      VXBVXFVXBVWPUXHUXCVWNVWTWMVXBUXGVXBUXGVXBUXGUVKMZVWNVXLVXBUYIVXNVWNXIVXKE
      UVLYIYFUVMUVNZUVOZUVPZYQZVXBUPUXDVXGVXBUVQVXMVXRUXCVWLVXAVWMTVXBUXDVXFVXM
      VXPUVRZYRUVSVXBVXJLEVXBUYSUCZUXQUXDVXGUXCUYSVVKVXAVVLUVTVXBVWIUYSVXMTVXBV
      XGRMUYSVXRTVXTUXQUYBUXDPVXTVVHUXQUYAMUXQUYBPQUXCVVHVXAUYSVVMYSVXTUXSUYAUX
      QUXSUXTUWAVXTUYSVUTUXQUXSMVXBUYSUWEVVALEUXQUXRSVVBUWBUWCYEUYAUXQUWDYCUXCU
      XDUYBVGVXAUYSVUKYSUWFVXBUXDVXGUTQUYSVXSTYRWCVXGLCDEUXPFJVUSUWGUWHVXBVXHUX
      DUXHUFNZVXFUXHUFNZYONVWQVXBUXDVXFUXHVXBUXDVXMYTZVXBVXFVXQYTVXBUXHUXCUXHRM
      VXAVWGTYTZUWIVXBVYAUXIVYBVWPYOVXBUXDUXHVYCVYDUWJVXBVWPUXHVXBVWPVXEYTVYDVX
      BUXHVXOUWKUWNUWLWSUWMUWOUWPWCUXCUXJVWSXIZVWNUXCVVNVXCVYEVVOVXDUBUXFUXIUWQ
      YCTYFUWRUWS $.
  $}

  ${
    $d x y I $.  $d x y M $.  $d x y Y $.
    rrntotbnd.1 $e |- X = ( RR ^m I ) $.
    rrntotbnd.2 $e |- M = ( ( Rn ` I ) |` ( Y X. Y ) ) $.
    $( A set in Euclidean space is totally bounded iff its is bounded.
       (Contributed by Jeff Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro,
       16-Sep-2015.) $)
    rrntotbnd $p |- ( I e. Fin ->
                      ( M e. ( TotBnd ` Y ) <-> M e. ( Bnd ` Y ) ) ) $=
      ( vx vy wcel cr co cfv c1 eqid syl cle wbr wa cmul adantr cfn ccnfld cpws
      cress cds cres chash csqrt caddc crrn repwsmet rrnmet hashcl nn0re nn0ge0
      cxp cn0 resqrtcld cc0 sqrtge0d ge0p1rpd crp 1rp a1i cme metcl 3expb sylan
      cv simprl simprr w3a metge0 jca syl3anc simpld remulcld peano2re rrnequiv
      id simprd lep1d lemul1a syl31anc letrd recnd mulid2d breqtrrd wss ctotbnd
      cc cbnd wb ax-resscn cnpwstotbnd mpan equivbnd2 ) AUAIZGHUBJUDKAUCKZUELZD
      DUPUFZBAUGLZUHLZMUIKZMWTAUJLZCDWTACWSWSNZWTNZEUKZACEULZWRXCWRXBUQIZXCJIZA
      UMZXJXBXBUNZXBUOZUROZWRXJUSXCPQXLXJXBXMXNUTOVAMVBIWRVCVDWRGVIZCIZHVIZCIZR
      ZRZXPXRXEKZXCXPXRWTKZSKZXDYCSKZWRXECVELZIZXTYBJIZXIYGXQXSYHXPXRXECVFVGVHZ
      YAXCYCWRXKXTXOTZYAYCJIZUSYCPQZYAWTYFIZXQXSYKYLRZWRYMXTXHTWRXQXSVJWRXQXSVK
      YMXQXSVLYKYLXPXRWTCVFXPXRWTCVMVNVOZVPZVQYAXDYCWRXDJIZXTWRXKYQXOXCVROTZYPV
      QYAYCYBPQZYBYDPQZWRWTXPXRACWSXFXGEWRVTVSZWAYAXKYQYNXCXDPQYDYEPQYJYRYOYAXC
      YJWBXCXDYCWCWDWEYAYCYBMYBSKPYAYSYTUUAVPYAYBYAYBYIWFWGWHXANZFJWKWIWRXADWJL
      IXADWLLIWMWNJXAADWSXFUUBWOWPWQ $.
  $}

  ${
    rrnheibor.1 $e |- X = ( RR ^m I ) $.
    rrnheibor.2 $e |- M = ( ( Rn ` I ) |` ( Y X. Y ) ) $.
    rrnheibor.3 $e |- T = ( MetOpen ` M ) $.
    rrnheibor.4 $e |- U = ( MetOpen ` ( Rn ` I ) ) $.
    $( Heine-Borel theorem for Euclidean space.  A subset of Euclidean space is
       compact iff it is closed and bounded.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Revised by Mario Carneiro, 22-Sep-2015.) $)
    rrnheibor $p |- ( ( I e. Fin /\ Y C_ X ) ->
               ( T e. Comp <-> ( Y e. ( Clsd ` U ) /\ M e. ( Bnd ` Y ) ) ) ) $=
      ( cfn wcel wss wa ccmp cms cfv cme wb adantr ctotbnd ccld cbnd rrnmet cxp
      crrn cres syl5eqel sylan biantrurd heibor syl6bb eleq1i rrncms cmetss syl
      metres2 syl5bb rrntotbnd anbi12d bitrd ) CKLZFEMZNZAOLZDFPQZLZDFUAQLZNZFB
      UBQLZDFUCQLZNVDVEDFRQZLZVENVIVDVMVEVBCUFQZERQLZVCVMCEGUDVOVCNDVNFFUEUGZVL
      HVNFEUQUHUIUJDAFIUKULVDVGVJVHVKVGVPVFLZVDVJDVPVFHUMVDVNEPQLZVQVJSVBVRVCCE
      GUNTVNBEFJUOUPURVBVHVKSVCCDEFGHUSTUTVA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Intervals (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d k x y z A $.  $d k y z F $.  $d y z R $.  $d k y z V $.
    ismrer1.1 $e |- R = ( ( abs o. - ) |` ( RR X. RR ) ) $.
    ismrer1.2 $e |- F = ( x e. RR |-> ( { A } X. { x } ) ) $.
    $( An isometry between ` RR ` and ` RR ^ 1 ` .  (Contributed by Jeff
       Madsen, 2-Sep-2009.)  (Revised by Mario Carneiro, 22-Sep-2015.) $)
    ismrer1 $p |- ( A e. V -> F e. ( R Ismty ( Rn ` { A } ) ) ) $=
      ( vy vz vk wcel cr csn co cfv wceq syl cmin c2 cexp cmap wf1o crrn cismty
      cv wral cxp cmpt wb sneq xpeq1d mpteq2dv syl6eqr f1oeq1 oveq2d bitrd eqid
      f1oeq3 reex vex mapsnf1o3 vtoclg wa csu csqrt cabs cc xpeq2d snex fvmpt3i
      fveq1d adantr cvv snidg fvconst2g sylancr sylan9eqr adantl oveq12d oveq1d
      xpex resubcl absresq eqtr4d recnd abscld sqcld eqeltrd fveq2 sumsn syldan
      eqtrd fveq2d absge0d sqrtsqd wf f1of ffvelrnda anim12dan cfn snfi rrnmval
      mp3an1 remetdval 3eqtr4rd ralrimivva cxmt rexmet cme metxmet mp2b isismty
      rrnmet mp2an sylanbrc ) BEKZLLBMZUANZDUBZHUEZIUEZCNZXTDOZYADOZXQUCOZNZPZI
      LUFHLUFZDCYEUDNKZLLXTMZUANZALYJAUEZMZUGZUHZUBZXSHBEXTBPZYPLYKDUBZXSYQYODP
      YPYRUIYQYOALXQYMUGZUHDYQALYNYSYQYJXQYMXTBUJZUKULGUMLYKYODUNQYQYKXRPYRXSUI
      YQYJXQLUAYTUOYKXRLDURQUPALYJYOXTYJUQUSHUTZYOUQVAVBZXPYGHILLXPXTLKZYALKZVC
      ZVCZXQJUEZYCOZUUGYDOZRNZSTNZJVDZVEOZXTYARNZVFOZYFYBUUFUUMUUOSTNZVEOUUOUUF
      UULUUPVEUUFUULBYCOZBYDOZRNZSTNZUUPXPUUEUUTVGKUULUUTPUUFUUTUUPVGUUFUUTUUNS
      TNZUUPUUFUUSUUNSTUUFUUQXTUURYARUUEXPUUQBXQYJUGZOZXTUUCUUQUVCPUUDUUCBYCUVB
      AXTYSUVBLDYLXTPYMYJXQYLXTUJVHGXQYMBVIYLVIWAZVJVKVLXPXTVMKBXQKZUVCXTPUUABE
      VNZXQXTBVMVOVPVQUUEXPUURBXQYAMZUGZOZYAUUDUURUVIPUUCUUDBYDUVHAYAYSUVHLDYLY
      APYMUVGXQYLYAUJVHGUVDVJVKVRXPYAVMKUVEUVIYAPIUTUVFXQYABVMVOVPVQVSVTUUFUUNL
      KZUUPUVAPUUEUVJXPXTYAWBVRZUUNWCQWDZUUFUUOUUFUUOUUFUUNUUFUUNUVKWEZWFZWEWGW
      HUUKUUTJBEUUGBPZUUJUUSSTUVOUUHUUQUUIUURRUUGBYCWIUUGBYDWIVSVTWJWKUVLWLWMUU
      FUUOUVNUUFUUNUVMWNWOWLUUFYCXRKZYDXRKZVCYFUUMPZXPUUCUVPUUDUVQXPLXRXTDXPXSL
      XRDWPUUBLXRDWQQZWRXPLXRYADUVSWRWSXQWTKZUVPUVQUVRBXAZJYCYDXQXRXRUQZXBXCQUU
      EYBUUOPXPXTYACFXDVRXEXFCLXGOKYEXRXGOKZYIXSYHVCUICFXHUVTYEXRXIOKUWCUWAXQXR
      UWBXMYEXRXJXKHIDCYELXRXLXNXO $.
  $}

  ${
    $d x y z $.
    reheibor.2 $e |- M = ( ( abs o. - ) |` ( Y X. Y ) ) $.
    reheibor.3 $e |- T = ( MetOpen ` M ) $.
    reheibor.4 $e |- U = ( topGen ` ran (,) ) $.
    $( Heine-Borel theorem for real numbers.  A subset of ` RR ` is compact iff
       it is closed and bounded.  (Contributed by Jeff Madsen, 2-Sep-2009.)
       (Revised by Mario Carneiro, 22-Sep-2015.) $)
    reheibor $p |- ( Y C_ RR -> ( T e. Comp <->
                               ( Y e. ( Clsd ` U ) /\ M e. ( Bnd ` Y ) ) ) ) $=
      ( cr wss c1o cfv c0 cxp cres wcel co wb cismty eqid cxmt vx vy vz crrn cv
      csn cmpt cima cmopn ccmp ccld cbnd wa cfn cmap df1o2 snfi eqeltri imassrn
      crn wf1o wf cabs cmin ccom wceq wral cvv 0ex ax-mp fveq2i oveq2i eleqtrri
      ismrer1 rexmet cme rrnmet metxmet mp2b isismty mp2an mpbi simpli f1of frn
      sstri a1i rrnheibor sylancr chmph wbr chmeo cc cnxmet id ax-resscn syl6ss
      xmetres2 syl5eqel syl2anc ismtyres syl22anc xpss12 anidms resabs1d oveq1d
      ismtyhmeo syl6eqr eleqtrd sseldd hmphi syl cmphmph wi hmphsym impbid cioo
      ctg tgioo eqtri sselii retopon toponunii hmeocld ismtybnd syl3anc anbi12d
      ctopon 3bitr4d ) DHIZJUDKZUAHLUFZUAUEUFMUGZDUHZYNMNZUIKZUJOZYNYKUIKZUKKOZ
      YOYNULKOZUMZAUJOZDBUKKOZCDULKOZUMYJJUNOZYNHJUOPZIZYQUUAQJYLUNUPLUQURZUUGY
      JYNYMUTZUUFYMDUSHUUFYMVAZHUUFYMVBUUIUUFIUUJUBUEZUCUEZVCVDVEZHHMZNZPUUKYMK
      UULYMKYKPVFUCHVGUBHVGZYMUUOYKRPZOZUUJUUPUMZYMUUOYLUDKZRPZUUQLVHOYMUVAOVIU
      ALUUOYMVHUUOSZYMSVNVJYKUUTUUORJYLUDUPVKVLVMZUUOHTKOZYKUUFTKOZUURUUSQUUOUV
      BVOZUUEYKUUFVPKOUVEUUHJUUFUUFSZVQYKUUFVRVSZUBUCYMUUOYKHUUFVTWAWBWCHUUFYMW
      DHUUFYMWEVSWFWGZYPYRJYOUUFYNUVGYOSZYPSZYRSZWHWIYJAYPWJWKZUUBYQQYJYMDNZAYP
      WLPZOUVMYJCYORPZUVOUVNYJCDTKZOZYOYNTKOZUVPUVOIYJCUUMDDMZNZUVQEYJUUMWMTKOD
      WMIUWAUVQOWNYJDHWMYJWOZWPWQUUMDWMWRWIWSZYJUVEUUGUVSUVHUVIYKYNUUFWRWIZAYPC
      YODYNFUVKXGWTYJUVNUUOUVTNZYORPZUVPYJUVDUVEUURYJUVNUWFOUVDYJUVFWGUVEYJUVHW
      GUURYJUVCWGUWBDYNUWEYOYMUUOYKHUUFYNSUWESUVJXAXBYJUWECYORYJUWEUWACYJUUMUVT
      UUNYJUVTUUNIDHDHXCXDXEEXHXFXIZXJUVNAYPXKXLUVMUUBYQAYPXMUVMYPAWJWKYQUUBXNA
      YPXOYPAXMXLXPXLYJUUCYSUUDYTYJYMBYRWLPZOYJUUCYSQUUQUWHYMUVDUVEUUQUWHIUVFUV
      HBYRUUOYKHUUFBXQUTXRKZUUOUIKZGUUOUWJUVBUWJSXSXTUVLXGWAUVCYAUWBDYMBYRHHBBU
      WIHYHKGYBURYCYDWIYJUVRUVSUVNUVPOUUDYTQUWCUWDUWGUVNCYODYNYEYFYGYI $.
  $}

  ${
    $d r x y A $.  $d r x y B $.  $d r x y J $.  $d r x y M $.
    iccbnd.1 $e |- J = ( A [,] B ) $.
    iccbnd.2 $e |- M = ( ( abs o. - ) |` ( J X. J ) ) $.
    $( A closed interval in ` RR ` is bounded.  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Proof shortened by Mario Carneiro, 22-Sep-2015.) $)
    iccbnd $p |- ( ( A e. RR /\ B e. RR ) -> M e. ( Bnd ` J ) ) $=
      ( vx vy vr cr wcel wa cfv cv co cle wbr wral cmin cc wrex cbnd cabs cnmet
      cme ccom cxp cres cicc iccssre syl5eqss ax-resscn syl6ss metres2 syl5eqel
      wss sylancr resubcl ancoms oveqi wceq adantl syl5eq sselda anim12dan eqid
      ovres cnmetdval eqtrd caddc simprr syl6eleq wb elicc2 adantr mpbid simp1d
      syl w3a simpll simprl simplr simp3d lesub1dd subled simp2d letrd readdcld
      syl2anc lesub2dd lesubadd2d absdifled mpbir2and ralrimivva breq2 2ralbidv
      eqbrtrd rspcev isbnd3b sylanbrc ) AJKZBJKZLZDCUEMZKGNZHNZDOZINZPQZHCRGCRZ
      IJUAZDCUBMKXCDUCSUFZCCUGUHZXDFXCXLTUEMKCTUPXMXDKUDXCCJTXCCABUIOZJEABUJUKU
      LUMZXLCTUNUQUOXCBASOZJKZXGXPPQZHCRGCRZXKXBXAXQBAURUSZXCXRGHCCXCXECKZXFCKZ
      LZLZXGXEXFSOUCMZXPPYDXGXEXFXLOZYEYDXGXEXFXMOZYFDXMXEXFFUTYCYGYFVAXCXEXFCC
      XLVGVBVCYDXETKZXFTKZLYFYEVAXCYAYHYBYIXCCTXEXOVDXCCTXFXOVDVEXEXFXLXLVFVHVR
      VIYDYEXPPQXFXPSOZXEPQXEXFXPVJOZPQYDYJAXEYDXFJKZXQYJJKYDYLAXFPQZXFBPQZYDXF
      XNKZYLYMYNVSZYDXFCXNXCYAYBVKEVLXCYOYPVMYCABXFVNVOVPZVQZXCXQYCXTVOZXFXPURW
      IXAXBYCVTZYDXEJKZAXEPQZXEBPQZYDXEXNKZUUAUUBUUCVSZYDXECXNXCYAYBWAEVLXCUUDU
      UEVMYCABXEVNVOVPZVQZYDXFAXPYRYTYSYDXFBAYRXAXBYCWBZYTYDYLYMYNYQWCWDWEYDUUA
      UUBUUCUUFWFWGYDXEBYKUUGUUHYDXFXPYRYSWHYDUUAUUBUUCUUFWCYDBXFSOXPPQBYKPQYDA
      XFBYTYRUUHYDYLYMYNYQWFWJYDBXFXPUUHYRYSWKVPWGYDXEXFXPUUGYRYSWLWMWQWNXJXSIX
      PJXHXPVAXIXRGHCCXHXPXGPWOWPWRWIIGHDCWSWT $.
  $}

  ${
    icccmpALT.1 $e |- J = ( A [,] B ) $.
    icccmpALT.2 $e |- M = ( ( abs o. - ) |` ( J X. J ) ) $.
    icccmpALT.3 $e |- T = ( MetOpen ` M ) $.
    $( A closed interval in ` RR ` is compact.  Alternate proof of ~ icccmp
       using the Heine-Borel theorem ~ heibor .  (Contributed by Jeff Madsen,
       2-Sep-2009.)  (Proof shortened by Mario Carneiro, 14-Aug-2014.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    icccmpALT $p |- ( ( A e. RR /\ B e. RR ) -> T e. Comp ) $=
      ( cr wcel wa ccmp cioo crn ctg cfv ccld cbnd cicc co icccld iccbnd wss wb
      syl5eqel iccssre syl5eqss eqid reheibor syl mpbir2and ) AIJBIJKZCLJZDMNOP
      ZQPZJZEDRPJZULDABSTZUOFABUAUEABDEFGUBULDIUCUMUPUQKUDULDURIFABUFUGCUNEDGHU
      NUHUIUJUK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Operation properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Ass $.

  $( Extend class notation with a device to add associativity to internal
     operations. $)
  cass $a class Ass $.

  ${
    $d g x y z $.
    $( A device to add associativity to various sorts of internal operations.
       The definition is meaningful when ` g ` is a magma at least.
       (Contributed by FL, 1-Nov-2009.)  (New usage is discouraged.) $)
    df-ass $a |- Ass = { g | A. x e. dom dom g A. y e. dom dom g
    A. z e. dom dom g ( ( x g y ) g z ) = ( x g ( y g z ) ) } $.
  $}

  $c ExId $.

  $( Extend class notation with the class of all the internal operations with
     an identity element. $)
  cexid $a class ExId $.

  ${
    $d g x y $.
    $( A device to add an identity element to various sorts of internal
       operations.  (Contributed by FL, 2-Nov-2009.)
       (New usage is discouraged.) $)
    df-exid $a |- ExId = { g | E. x e. dom dom g A. y e. dom dom g
    ( ( x g y ) = y /\ ( y g x ) = y ) } $.
  $}

  ${
    $d G g x y z $.  $d X g x y z $.
    isass.1 $e |- X = dom dom G $.
    $( The predicate "is an associative operation".  (Contributed by FL,
       1-Nov-2009.)  (New usage is discouraged.) $)
    isass $p |- ( G e. A -> ( G e. Ass <-> A. x e. X A. y e. X A. z e. X
      ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) $=
      ( vg cv co wceq cdm wral wcel w3a wi wal eleq2d oveq eqtrd cass 3anbi123d
      dmeq oveq1d oveq2d eqeq12d imbi12d albidv 2albidv r3al 3bitr4g eqcomi a1i
      dmeqd raleqdv raleqbidv 2ralbidv 3bitrd df-ass elab2g ) AIZBIZHIZJZCIZVCJ
      ZVAVBVEVCJZVCJZKZCVCLZLZMBVKMAVKMZVAVBEJZVEEJZVAVBVEEJZEJZKZCFMZBFMAFMZHE
      UADVCEKZVLVQCELZLZMZBWBMZAWBMZWCBFMZAFMVSVTVAVKNZVBVKNZVEVKNZOZVIPZCQZBQA
      QVAWBNZVBWBNZVEWBNZOZVQPZCQZBQAQVLWEVTWLWRABVTWKWQCVTWJWPVIVQVTWGWMWHWNWI
      WOVTVKWBVAVTVJWAVCEUCUNZRVTVKWBVBWSRVTVKWBVEWSRUBVTVFVNVHVPVTVFVMVEVCJVNV
      TVDVMVEVCVAVBVCESUDVMVEVCESTVTVHVAVOVCJVPVTVGVOVAVCVBVEVCESUEVAVOVCESTUFU
      GUHUIVIABCVKVKVKUJVQABCWBWBWBUJUKVTWDWFAWBFWBFKVTFWBGULUMZVTWCBWBFWTUOUPV
      TWCVRABFFVTVQCWBFWTUOUQURABCHUSUT $.
  $}

  ${
    $d G g x y $.  $d X g x y $.
    isexid.1 $e |- X = dom dom G $.
    $( The predicate ` G ` has a left and right identity element.  (Contributed
       by FL, 2-Nov-2009.)  (Revised by Mario Carneiro, 22-Dec-2013.)
       (New usage is discouraged.) $)
    isexid $p |- ( G e. A -> ( G e. ExId <-> E. x e. X A. y e. X
      ( ( x G y ) = y /\ ( y G x ) = y ) ) ) $=
      ( vg cv co wceq wa cdm wral wrex cexid dmeq dmeqd syl6eqr oveq eqeq1d
      anbi12d raleqbidv rexeqbidv df-exid elab2g ) AHZBHZGHZIZUGJZUGUFUHIZUGJZK
      ZBUHLZLZMZAUONUFUGDIZUGJZUGUFDIZUGJZKZBEMZAENGDOCUHDJZUPVBAUOEVCUODLZLEVC
      UNVDUHDPQFRZVCUMVABUOEVEVCUJURULUTVCUIUQUGUFUGUHDSTVCUKUSUGUGUFUHDSTUAUBU
      CABGUDUE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Groups and related structures
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Magma $.

  $( Extend class notation with the class of all magmas. $)
  cmagm $a class Magma $.

  ${
    $d g t $.
    $( Obsolete version of ~ df-mgm as of 3-Feb-2020.  A magma is a binary
       internal operation.  (Contributed by FL, 2-Nov-2009.)
       (New usage is discouraged.) $)
    df-mgmOLD $a |- Magma = { g | E. t g : ( t X. t ) --> t } $.
  $}

  ${
    $d G g t $.  $d X t $.
    ismgmOLD.1 $e |- X = dom dom G $.
    $( Obsolete version of ~ ismgm as of 3-Feb-2020.  The predicate "is a
       magma".  (Contributed by FL, 2-Nov-2009.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    ismgmOLD $p |- ( G e. A -> ( G e. Magma <-> G : ( X X. X ) --> X ) ) $=
      ( vt vg wcel cmagm cv cdm wceq cxp wf wa wex c0 wi dmeq wb cvv exbidv f00
      df-mgmOLD elab2g dm0 dmeqi eqtri syl6req adantr sylbi xpeq12 anidms feq23
      feq1 syl mpancom eqeq1 imbi12d mpbiri wn fdm wne df-ne dmxp sylbir eqeq1d
      biimpcd eqcoms com12 pm2.61i pm4.71ri exbii syl6bb dmexg xpeq12i ceqsexgv
      3syl eqcomi feq23i bitrd ) BAGZBHGZEIZBJZJZKZWCWCLZWCBMZNZEOZCCLZCBMZWAWB
      WHEOZWJWGWCFIZMZEOWMFBHAWNBKWOWHEWGWCWNBUNUAEFUCUDWHWIEWHWFWCPKZWHWFQZWPW
      QPPLZPBMZPWEKZQWSBPKZWRPKZNWTWRBUBXAWTXBXAWDPJZKZWTBPRXDWEXCJZPWDXCRXEXCP
      XCPUEUFUEUGUHUOUIUJWPWHWSWFWTWGWRKZWPWHWSSWPXFWCPWCPUKULWGWCWRPBUMUPWCPWE
      UQURUSWHWPUTZWFWHWDWGKWEWGJZKXGWFQZWGWCBVAWDWGRXIXHWEXGXHWEKWFXGXHWCWEXGW
      CPVBXHWCKWCPVCWCWCVDVEVFVGVHVQVIVJVKVLVMWAWDTGWETGWJWLSBAVNWDTVNWHWLEWETW
      FWHWEWELZWEBMZWLWGXJKZWFWHXKSWFXLWCWEWCWEUKULWGWCXJWEBUMUPXJWEWKCBWECWECC
      WEDVRZXMVOXMVSVMVPVQVT $.
  $}

  ${
    clmgmOLD.1 $e |- X = dom dom G $.
    $( Obsolete version of ~ mgmcl as of 3-Feb-2020.  Closure of a magma.
       (Contributed by FL, 14-Sep-2010.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    clmgmOLD $p |- ( ( G e. Magma /\ A e. X /\ B e. X ) -> ( A G B ) e. X ) $=
      ( cmagm wcel co wi cxp wf ismgmOLD fovrn 3exp syl6bi pm2.43i 3imp ) CFGZA
      DGZBDGZABCHDGZRSTUAIIZRRDDJDCKZUBFCDELUCSTUAABDDDCMNOPQ $.
  $}

  ${
    $d G u x y $.  $d X u x y $.
    opidonOLD.1 $e |- X = dom dom G $.
    $( Obsolete version of ~ mndpfo as of 23-Jan-2020.  An operation with a
       left and right identity element is onto.  (Contributed by FL,
       2-Nov-2009.)  (Revised by Mario Carneiro, 22-Dec-2013.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    opidonOLD $p |- ( G e. ( Magma i^i ExId ) ->
      G : ( X X. X ) -onto-> X ) $=
      ( vy vu vx cmagm cexid cin wcel cxp wf cv co wceq wrex wral wfo sseli syl
      inss1 ismgmOLD ibi wa inss2 isexid biimpd sylc simpl ralimi oveq2 eqeq12d
      id rspcv eqcom eqeq1d syl5bb rspcev ex syld syl5 reximdv impcom ralrimiva
      foov sylanbrc ) AGHIZJZBBKZBALZDMZEMZFMZANZOZFBPZEBPZDBQZVIBARVHAGJZVJVGG
      AGHUASVSVJGABCUBUCTVHVNVMOZVMVLANVMOZUDZFBQZEBPZVRVHAHJZWEWDVGHAGHUESZWFW
      EWEWDEFHABCUFUGUHWDVQDBVKBJZWDVQWGWCVPEBWCVTFBQZWGVPWBVTFBVTWAUIUJWGWHVLV
      KANZVKOZVPVTWJFVKBVMVKOZVNWIVMVKVMVKVLAUKZWKUMULUNWGWJVPVOWJFVKBVOVNVKOWK
      WJVKVNUOWKVNWIVKWLUPUQURUSUTVAVBVCVDTEFDBBBAVEVF $.
  $}

  $( Obsolete version of ~ mndpfo as of 23-Jan-2020.  Range of an operation
     with a left and right identity element.  (Contributed by FL, 2-Nov-2009.)
     (New usage is discouraged.)  (Proof modification is discouraged.) $)
  rngopidOLD $p |- ( G e. ( Magma i^i ExId ) -> ran G = dom dom G ) $=
    ( cmagm cexid cin wcel cdm cxp wfo crn wceq eqid opidonOLD forn syl ) ABCDE
    AFFZOGZOAHAIOJAOOKLPOAMN $.

  ${
    opidon2OLD.1 $e |- X = ran G $.
    $( Obsolete version of ~ mndpfo as of 23-Jan-2020.  An operation with a
       left and right identity element is onto.  (Contributed by FL,
       2-Nov-2009.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    opidon2OLD $p |- ( G e. ( Magma i^i ExId ) ->
      G : ( X X. X ) -onto-> X ) $=
      ( cmagm cexid cin wcel cdm cxp wfo eqid opidonOLD wceq crn syl5req xpeq12
      forn wb anidms syl foeq2 foeq3 bitrd biimpd mpcom ) ADEFGAHHZUFIZUFAJZBBI
      ZBAJZAUFUFKLUFBMZUHUJUHBANUFCUGUFAQOUKUHUJUKUHUIUFAJZUJUKUGUIMZUHULRUKUMU
      FBUFBPSUGUIUFAUATUFBUIAUBUCUDUET $.
  $}

  ${
    $d G u x $.  $d X u x $.
    isexid2.1 $e |- X = ran G $.
    $( If ` G e. ( Magma i^i ExId ) ` , then it has a left and right identity
       element that belongs to the range of the operation.  (Contributed by FL,
       12-Dec-2009.)  (Revised by Mario Carneiro, 22-Dec-2013.)
       (New usage is discouraged.) $)
    isexid2 $p |- ( G e. ( Magma i^i ExId ) -> E. u e. X A. x e. X
      ( ( u G x ) = x /\ ( x G u ) = x ) ) $=
      ( crn wceq cmagm cexid cin wcel cv co wa wral wrex cdm raleq rexeqbi1dv
      wi rngopidOLD elin eqid isexid ibi a1d adantl sylbi eqeq2 imbi12d syl5ibr
      mpcom com12 sylibrd ax-mp ) DCFZGZCHIJKZBLZALZCMUTGUTUSCMUTGNZADOZBDPZTEU
      QURVAAUPOZBUPPZVCURUQVEUPCQQZGZURUQVETZCUAURVHVGDVFGZVAAVFOZBVFPZTZURCHKZ
      CIKZNVLCHIUBVNVLVMVNVKVIVNVKBAICVFVFUCUDUEUFUGUHVGUQVIVEVKUPVFDUIVDVJBUPV
      FVAAUPVFRSUJUKULUMVBVDBDUPVAADUPRSUNUO $.
  $}

  ${
    $d G u x y $.  $d X u x y $.
    exidu1.1 $e |- X = ran G $.
    $( Unicity of the left and right identity element of a magma when it
       exists.  (Contributed by FL, 12-Dec-2009.)  (Revised by Mario Carneiro,
       22-Dec-2013.)  (New usage is discouraged.) $)
    exidu1 $p |- ( G e. ( Magma i^i ExId ) ->
      E! u e. X A. x e. X ( ( u G x ) = x /\ ( x G u ) = x ) ) $=
      ( vy wcel cv co wceq wa wral weq ralimi oveq2 id eqeq12d rspcv syl5 oveq1
      cmagm cexid cin wrex wreu isexid2 simpl simpr im2anan9r eqtr2 eqcomd syl6
      wi rgen2a a1i eqeq1d anbi12d ralbidv reu4 sylanbrc ) CUAUBUCGZBHZAHZCIZVC
      JZVCVBCIZVCJZKZADLZBDUDVIFHZVCCIZVCJZVCVJCIZVCJZKZADLZKZBFMZUMZFDLBDLZVIB
      DUEABCDEUFVTVAVSBFDVBDGZVJDGZKVQVBVJCIZVJJZWCVBJZKZVRWBVIWDWAVPWEVIVEADLW
      BWDVHVEADVEVGUGNVEWDAVJDAFMZVDWCVCVJVCVJVBCOWGPQRSVPVNADLWAWEVOVNADVLVNUH
      NVNWEAVBDABMZVMWCVCVBVCVBVJCTWHPQRSUIWFVJVBWCVJVBUJUKULUNUOVIVPBFDVRVHVOA
      DVRVEVLVGVNVRVDVKVCVBVJVCCTUPVRVFVMVCVBVJVCCOUPUQURUSUT $.
  $}

  ${
    $d G u x $.  $d X u x $.
    idrval.1 $e |- X = ran G $.
    idrval.2 $e |- U = ( GId ` G ) $.
    $( The value of the identity element.  (Contributed by FL, 12-Dec-2009.)
       (Revised by Mario Carneiro, 22-Dec-2013.)
       (New usage is discouraged.) $)
    idrval $p |- ( G e. A -> U = ( iota_ u e. X
                   A. x e. X ( ( u G x ) = x /\ ( x G u ) = x ) ) ) $=
      ( wcel cgi cfv cv co wceq wa wral crio gidval syl5eq ) ECIDEJKBLZALZEMUAN
      UATEMUANOAFPBFQHABECFGRS $.
  $}

  ${
    $d G u x $.  $d X u x $.
    iorlid.1 $e |- X = ran G $.
    iorlid.2 $e |- U = ( GId ` G ) $.
    $( A magma right and left identity belongs to the underlying set of the
       operation.  (Contributed by FL, 12-Dec-2009.)  (Revised by Mario
       Carneiro, 22-Dec-2013.)  (New usage is discouraged.) $)
    iorlid $p |- ( G e. ( Magma i^i ExId ) -> U e. X ) $=
      ( vu vx cmagm cexid cin wcel cv co wceq wa wral crio idrval wreu exidu1
      riotacl syl eqeltrd ) BHIJZKZAFLZGLZBMUGNUGUFBMUGNOGCPZFCQZCGFUDABCDERUEU
      HFCSUICKGFBCDTUHFCUAUBUC $.
  $}

  ${
    $d A x $.  $d G u x $.  $d U u x $.  $d X u x $.
    cmpidelt.1 $e |- X = ran G $.
    cmpidelt.2 $e |- U = ( GId ` G ) $.
    $( A magma right and left identity element keeps the other elements
       unchanged.  (Contributed by FL, 12-Dec-2009.)  (Revised by Mario
       Carneiro, 22-Dec-2013.)  (New usage is discouraged.) $)
    cmpidelt $p |- ( ( G e. ( Magma i^i ExId ) /\ A e. X ) ->
      ( ( U G A ) = A /\ ( A G U ) = A ) ) $=
      ( vx vu cmagm wcel cv co wceq wa wral oveq1 eqeq1d oveq2 anbi12d eqeq12d
      cexid cin crio idrval eqcomd wreu wb iorlid exidu1 ralbidv riota2 syl2anc
      mpbird id rspccva sylan ) CIUAUBZJZBGKZCLZUSMZUSBCLZUSMZNZGDOZADJBACLZAMZ
      ABCLZAMZNZURVEHKZUSCLZUSMZUSVKCLZUSMZNZGDOZHDUCZBMZURBVRGHUQBCDEFUDUEURBD
      JVQHDUFVEVSUGBCDEFUHGHCDEUIVQVEHDBVKBMZVPVDGDVTVMVAVOVCVTVLUTUSVKBUSCPQVT
      VNVBUSVKBUSCRQSUJUKULUMVDVJGADUSAMZVAVGVCVIWAUTVFUSAUSABCRWAUNZTWAVBVHUSA
      USABCPWBTSUOUP $.
  $}

  $c SemiGrp $.

  $( Extend class notation with the class of all semi-groups. $)
  csem $a class SemiGrp $.

  $( Obsolete version of ~ df-sgrp as of 3-Feb-2020.  A semi-group is an
     associative magma.  (Contributed by FL, 2-Nov-2009.)
     (New usage is discouraged.) $)
  df-sgrOLD $a |- SemiGrp = ( Magma i^i Ass ) $.

  $( Obsolete version of ~ sgrpmgm as of 3-Feb-2020.  A semi-group is a magma.
     (Contributed by FL, 2-Nov-2009.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  smgrpismgmOLD $p |- ( G e. SemiGrp -> G e. Magma ) $=
    ( cmagm wcel cass cin csem elin simplbi df-sgrOLD eleq2s ) ABCZABDEZFALCKAD
    CABDGHIJ $.

  ${
    $d G x y z $.  $d X x y z $.
    issmgrpOLD.1 $e |- X = dom dom G $.
    $( Obsolete version of ~ issgrp as of 3-Feb-2020.  The predicate "is a
       semi-group".  (Contributed by FL, 2-Nov-2009.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    issmgrpOLD $p |- ( G e. A -> ( G e. SemiGrp
       <-> ( G : ( X X. X ) --> X /\ A. x e. X A. y e. X A. z e. X
         ( ( x G y ) G z ) = ( x G ( y G z ) ) ) ) ) $=
      ( csem wcel cmagm cass cin cxp wf cv co wceq wral wa syl5bb elin ismgmOLD
      df-sgrOLD eleq2i isass anbi12d ) EHIEJKLZIZEDIZFFMFENZAOZBOZEPCOZEPUKULUM
      EPEPQCFRBFRAFRZSZHUGEUCUDUHEJIZEKIZSUIUOEJKUAUIUPUJUQUNDEFGUBABCDEFGUEUFT
      T $.
  $}

  ${
    $d G x y z $.  $d X x y z $.
    smgrpmgm.1 $e |- X = dom dom G $.
    $( A semi-group is a magma.  (Contributed by FL, 2-Nov-2009.)
       (New usage is discouraged.) $)
    smgrpmgm $p |- ( G e. SemiGrp -> G : ( X X. X ) --> X ) $=
      ( vx vy vz csem wcel cxp wf cv co wceq wa issmgrpOLD simpl syl6bi pm2.43i
      wral ) AGHZBBIBAJZTTUADKZEKZALFKZALUBUCUDALALMFBSEBSDBSZNUADEFGABCOUAUEPQ
      R $.
  $}

  ${
    $d G x y z $.  $d X x y z $.
    smgrpassOLD.1 $e |- X = dom dom G $.
    $( Obsolete version of ~ sgrpass as of 3-Feb-2020.  A semi-group is
       associative.  (Contributed by FL, 2-Nov-2009.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    smgrpassOLD $p |- ( G e. SemiGrp ->
      A. x e. X A. y e. X A. z e. X ( ( x G y ) G z ) = ( x G ( y G z ) ) ) $=
      ( csem wcel cv co wceq wral cxp wf wa issmgrpOLD simpr syl6bi pm2.43i ) D
      GHZAIZBIZDJCIZDJUAUBUCDJDJKCELBELAELZTTEEMEDNZUDOUDABCGDEFPUEUDQRS $.
  $}

  $c MndOp $.

  $( Extend class notation with the class of all monoids. $)
  cmndo $a class MndOp $.

  $( A monoid is a semi-group with an identity element.  (Contributed by FL,
     2-Nov-2009.)  (New usage is discouraged.) $)
  df-mndo $a |- MndOp = ( SemiGrp i^i ExId ) $.

  $( Obsolete version of ~ mndsgrp as of 3-Feb-2020.  A monoid is a semi-group.
     (Contributed by FL, 2-Nov-2009.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  mndoissmgrpOLD $p |- ( G e. MndOp -> G e. SemiGrp ) $=
    ( csem wcel cexid cin cmndo elin simplbi df-mndo eleq2s ) ABCZABDEZFALCKADC
    ABDGHIJ $.

  $( A monoid has an identity element.  (Contributed by FL, 2-Nov-2009.)
     (New usage is discouraged.) $)
  mndoisexid $p |- ( G e. MndOp -> G e. ExId ) $=
    ( cexid wcel csem cin cmndo elinel2 df-mndo eleq2s ) ABCADBEFADBGHI $.

  $( Obsolete version of ~ mndmgm as of 3-Feb-2020.  A monoid is a magma.
     (Contributed by FL, 2-Nov-2009.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  mndoismgmOLD $p |- ( G e. MndOp -> G e. Magma ) $=
    ( cmndo wcel csem cmagm mndoissmgrpOLD smgrpismgmOLD syl ) ABCADCAECAFAGH
    $.

  $( A monoid is a magma with an identity element.  (Contributed by FL,
     18-Feb-2010.)  (New usage is discouraged.) $)
  mndomgmid $p |- ( G e. MndOp -> G e. ( Magma i^i ExId ) ) $=
    ( cmndo wcel cmagm cexid mndoismgmOLD mndoisexid elind ) ABCDEAAFAGH $.

  ${
    $d G x y $.  $d X x y $.
    ismndo.1 $e |- X = dom dom G $.
    $( The predicate "is a monoid".  (Contributed by FL, 2-Nov-2009.)  (Revised
       by Mario Carneiro, 22-Dec-2013.)  (New usage is discouraged.) $)
    ismndo $p |- ( G e. A -> ( G e. MndOp
     <-> ( G e. SemiGrp /\ E. x e. X A. y e. X
      ( ( x G y ) = y /\ ( y G x ) = y ) ) ) ) $=
      ( cmndo wcel csem cexid cin cv co wceq wa wral wrex df-mndo eleq2i syl5bb
      elin isexid anbi2d ) DGHDIJKZHZDCHZDIHZALZBLZDMUINUIUHDMUINOBEPAEQZOZGUDD
      RSUEUGDJHZOUFUKDIJUAUFULUJUGABCDEFUBUCTT $.
  $}

  ${
    $d G x y z $.  $d X x y z $.
    ismndo1.1 $e |- X = dom dom G $.
    $( The predicate "is a monoid".  (Contributed by FL, 2-Nov-2009.)  (Revised
       by Mario Carneiro, 22-Dec-2013.)  (New usage is discouraged.) $)
    ismndo1 $p |- ( G e. A -> ( G e. MndOp <->
      ( G : ( X X. X ) --> X /\
        A. x e. X A. y e. X A. z e. X
          ( ( x G y ) G z ) = ( x G ( y G z ) ) /\
        E. x e. X A. y e. X
         ( ( x G y ) = y /\ ( y G x ) = y ) ) ) ) $=
      ( wcel cmndo csem cv co wceq wa wral wrex cxp wf w3a ad2antrl smgrpassOLD
      ismndo smgrpmgm simprr 3simpa issmgrpOLD syl5ibr imp simpr3 impbida bitrd
      3jca jca ) EDHZEIHEJHZAKZBKZELZUQMUQUPELUQMNBFOAFPZNZFFQFERZURCKZELUPUQVB
      ELELMCFOBFOAFOZUSSZABDEFGUBUNUTVDUNUTNVAVCUSUOVAUNUSEFGUCTUOVCUNUSABCEFGU
      ATUNUOUSUDULUNVDNUOUSUNVDUOVDUOUNVAVCNVAVCUSUEABCDEFGUFUGUHUNVAVCUSUIUMUJ
      UK $.
  $}

  ${
    $d G x y z $.  $d X x y z $.
    ismndo2.1 $e |- X = ran G $.
    $( The predicate "is a monoid".  (Contributed by FL, 2-Nov-2009.)  (Revised
       by Mario Carneiro, 22-Dec-2013.)  (New usage is discouraged.) $)
    ismndo2 $p |- ( G e. A -> ( G e. MndOp <->
      ( G : ( X X. X ) --> X /\
        A. x e. X A. y e. X A. z e. X
          ( ( x G y ) G z ) = ( x G ( y G z ) ) /\
        E. x e. X A. y e. X
         ( ( x G y ) = y /\ ( y G x ) = y ) ) ) ) $=
      ( wcel cdm wceq cxp wf cv co wral wrex w3a wi a1i wb cmndo wa cmagm cexid
      crn cin mndomgmid rngopidOLD syl syl5eq fdm dmeqd dmxpid syl6req 3ad2ant1
      eqid ismndo1 xpid11 biimpri feq23 mpancom raleqbi1dv rexeqbi1dv 3anbi123d
      raleq bibi2d syl5ibrcom pm5.21ndd ) EDHZFEIZIZJZEUAHZFFKZFELZAMZBMZENZCMZ
      ENVPVQVSENENJZCFOZBFOZAFOZVRVQJVQVPENVQJUBZBFOZAFPZQZVMVLRVIVMFEUEZVKGVME
      UCUDUFHWHVKJEUGEUHUIUJSWGVLRVIVOWCVLWFVOVKVNIFVOVJVNVNFEUKULFUMUNUOSVIVMW
      GTVLVMVKVKKZVKELZVTCVKOZBVKOZAVKOZWDBVKOZAVKPZQZTABCDEVKVKUPUQVLWGWPVMVLV
      OWJWCWMWFWOVNWIJZVLVOWJTWQVLFVKURUSVNFWIVKEUTVAWBWLAFVKWAWKBFVKVTCFVKVEVB
      VBWEWNAFVKWDBFVKVEVCVDVFVGVH $.
  $}

  ${
    $d G w x y z $.
    $( A group is a monoid.  (Contributed by FL, 2-Nov-2009.)  (Revised by
       Mario Carneiro, 22-Dec-2013.)  (New usage is discouraged.) $)
    grpomndo $p |- ( G e. GrpOp -> G e. MndOp ) $=
      ( vx vy vz vw cgr wcel cmndo crn cxp wf cv co wceq wral wrex wa w3a eqid
      wi isgrpo biimpd grpoidinv simpl ralimi reximi biimprcd 3exp impcom com3l
      ismndo2 syl mpcom expdcom a1i com13 3imp syli pm2.43i ) AFGZAHGZUTUTAIZVB
      JVBAKZBLZCLZAMZDLZAMVDVEVGAMAMNDVBOCVBOBVBOZELZVDAMVDNVEVDAMZVINCVBPQBVBO
      EVBPZRZVAUTUTVLBCDEFAVBVBSZUAUBVCVHVKUTVATZVKVHVCVNVHVCVNTTVKUTVHVCVAVFVE
      NVJVENQZVIVEAMVDNVEVIAMVDNQEVBPZQZCVBOZBVBPZUTVHVCQZVATZCEBAVBVMUCVSVOCVB
      OZBVBPZUTWATVRWBBVBVQVOCVBVOVPUDUEUFVTWCUTVAVCVHWCVNTVCVHWCVNUTVAVCVHWCRB
      CDFAVBVMUKUGUHUIUJULUMUNUOUPUQURUS $.
  $}

  ${
    exidcl.1 $e |- X = ran G $.
    $( Closure of the binary operation of a magma with identity.  (Contributed
       by Jeff Madsen, 16-Jun-2011.) $)
    exidcl $p |- ( ( G e. ( Magma i^i ExId ) /\ A e. X /\ B e. X )
                                            -> ( A G B ) e. X ) $=
      ( cmagm cexid cin wcel w3a co cdm wa crn rngopidOLD syl5eq eleq2d anbi12d
      pm5.32i inss1 sseli eqid clmgmOLD syl3an1 3expb sylbi 3impb wceq 3ad2ant1
      eleqtrrd ) CFGHZIZADIZBDIZJABCKZCLLZDULUMUNUOUPIZULUMUNMZMULAUPIZBUPIZMZM
      UQULURVAULUMUSUNUTULDUPAULDCNUPECOPZQULDUPBVBQRSULUSUTUQULCFIUSUTUQUKFCFG
      TUAABCUPUPUBUCUDUEUFUGULUMDUPUHUNVBUIUJ $.
  $}

  ${
    $d G x $.  $d Y x $.  $d X x $.  $d U u x $.  $d H u x $.
    exidres.1 $e |- X = ran G $.
    exidres.2 $e |- U = ( GId ` G ) $.
    exidres.3 $e |- H = ( G |` ( Y X. Y ) ) $.
    $( Lemma for ~ exidres and ~ exidresid .  (Contributed by Jeff Madsen,
       8-Jun-2010.)  (Revised by Mario Carneiro, 23-Dec-2013.) $)
    exidreslem $p |- ( ( G e. ( Magma i^i ExId ) /\ Y C_ X /\ U e. Y ) ->
                              ( U e. dom dom H /\ A. x e. dom dom H
                            ( ( U H x ) = x /\ ( x H U ) = x ) ) ) $=
      ( wcel wss cdm co wceq wa wral cxp sylib syl5eq dmeqd cmagm cexid cin w3a
      cv cres dmeqi xpss12 anidms wfo wf opidon2OLD fof fdm 3syl sseq2d syl5ibr
      imp ssdmres dmxpid syl6eq eleq2d biimp3ar cmpidelt sylan2 anassrs adantrl
      ssel2 wb oveqi ovres eqeq1d ancoms anbi12d adantl ralrimiva 3impa 3adant3
      mpbird raleqdv jca ) CUAUBUCJZFEKZBFJZUDZBDLZLZJZBAUEZDMZWINZWIBDMZWINZOZ
      AWGPZWBWCWHWDWBWCOZWGFBWPWGFFQZLZFWPWFWQWPWFCWQUFZLZWQDWSIUGZWPWQCLZKZWTW
      QNZWBWCXCWCXCWBWQEEQZKZWCXFFEFEUHUIWBXBXEWQWBXEECUJXEECUKXBXENCEGULXEECUM
      XEECUNUOUPUQURZWQCUSZRSTFUTZVAVBVCWEWOWNAFPZWBWCWDXJWPWDOWNAFWPWDWIFJZWNW
      PWDXKOZOWNBWICMZWINZWIBCMZWINZOZWPXKXQWDWBWCXKXQWCXKOWBWIEJXQFEWIVHWIBCEG
      HVDVEVFVGXLWNXQVIWPXLWKXNWMXPXLWJXMWIXLWJBWIWSMXMDWSBWIIVJBWIFFCVKSVLXLWL
      XOWIXKWDWLXONXKWDOWLWIBWSMXODWSWIBIVJWIBFFCVKSVMVLVNVOVSVFVPVQWEWNAWGFWEW
      GWRFWEWFWQWEWFWTWQXAWEXCXDWBWCXCWDXGVRXHRSTXIVAVTVSWA $.

    $( The restriction of a binary operation with identity to a subset
       containing the identity has an identity element.  (Contributed by Jeff
       Madsen, 8-Jun-2010.)  (Revised by Mario Carneiro, 23-Dec-2013.) $)
    exidres $p |- ( ( G e. ( Magma i^i ExId ) /\ Y C_ X /\ U e. Y )
                                                      -> H e. ExId ) $=
      ( vu vx cexid wcel cv co wceq wa cdm wral eqeq1d cvv cmagm cin exidreslem
      wss w3a wrex oveq1 anbi12d ralbidv rspcev syl wb cxp cres resexg syl5eqel
      oveq2 eqid isexid 3ad2ant1 mpbird ) BUAKUBZLZEDUDZAELZUEZCKLZIMZJMZCNZVIO
      ZVIVHCNZVIOZPZJCQQZRZIVOUFZVFAVOLAVICNZVIOZVIACNZVIOZPZJVORZPVQJABCDEFGHU
      CVPWCIAVOVHAOZVNWBJVOWDVKVSVMWAWDVJVRVIVHAVICUGSWDVLVTVIVHAVICUQSUHUIUJUK
      VCVDVGVQULZVEVCCTLWEVCCBEEUMZUNTHBWFVBUOUPIJTCVOVOURUSUKUTVA $.

    $( The restriction of a binary operation with identity to a subset
       containing the identity has the same identity element.  (Contributed by
       Jeff Madsen, 8-Jun-2010.)  (Revised by Mario Carneiro, 23-Dec-2013.) $)
    exidresid $p |- ( ( ( G e. ( Magma i^i ExId ) /\ Y C_ X /\ U e. Y ) /\
                                        H e. Magma ) -> ( GId ` H ) = U ) $=
      ( vu vx cmagm cexid wcel wa cv co wceq wral cvv adantr cin wss w3a resexg
      cgi cfv crn crio cxp cres syl5eqel eqid gidval 3ad2ant1 exidreslem simprd
      syl cdm exidres elin rngopidOLD sylbir ancoms sylan raleqdv mpbird simpld
      wreu wb eleqtrrd exidu1 oveq1 eqeq1d oveq2 anbi12d ralbidv riota2 syl2anc
      mpbid eqtrd ) BKLUAZMZEDUBZAEMZUCZCKMZNZCUEUFZIOZJOZCPZWJQZWJWICPZWJQZNZJ
      CUGZRZIWPUHZAWEWHWRQZWFWBWCWSWDWBCSMWSWBCBEEUIZUJSHBWTWAUDUKJICSWPWPULZUM
      UQUNTWGAWJCPZWJQZWJACPZWJQZNZJWPRZWRAQZWGXGXFJCURURZRZWEXJWFWEAXIMZXJJABC
      DEFGHUOZUPTWGXFJWPXIWECLMZWFWPXIQZABCDEFGHUSZWFXMXNWFXMNZCWAMZXNCKLUTZCVA
      VBVCVDZVEVFWGAWPMWQIWPVHZXGXHVIWGAXIWPWEXKWFWEXKXJXLVGTXSVJWEXMWFXTXOWFXM
      XTXPXQXTXRJICWPXAVKVBVCVDWQXGIWPAWIAQZWOXFJWPYAWLXCWNXEYAWKXBWJWIAWJCVLVM
      YAWMXDWJWIAWJCVNVMVOVPVQVRVSVT $.
  $}

  ${
    abl4pnp.1 $e |- X = ran G $.
    abl4pnp.2 $e |- D = ( /g ` G ) $.
    $( A commutative/associative law for Abelian groups.  (Contributed by Jeff
       Madsen, 11-Jun-2010.) $)
    ablo4pnp $p |- ( ( G e. AbelOp /\ ( ( A e. X /\ B e. X ) /\
                  ( C e. X /\ F e. X ) ) ) -> ( ( A G B ) D ( C G F ) ) =
                                            ( ( A D C ) G ( B D F ) ) ) $=
      ( cablo wcel wa co wceq w3a 3expib anim1d 3anass imp syldan df-3an oveq1d
      ablomuldiv sylan2br adantrrr cgr wi ablogrpo grpocl syl syl6ibr grpodivcl
      ablodivdiv4 an4 3imtr4g grpomuldivass sylan 3eqtr3d ) FJKZAGKZBGKZLZCGKZE
      GKZLZLZLZABFMZCDMZEDMZACDMZBFMZEDMZVHCEFMDMZVKBEDMFMZVGVIVLEDUSVBVCVIVLNZ
      VDVBVCLUSUTVAVCOVPUTVAVCUAABCDFGHIUCUDUEUBUSVFVHGKZVCVDOZVJVNNUSVFVRUSVFV
      QVELVRUSVBVQVEUSFUFKZVBVQUGFUHZVSUTVAVQABFGHUIPUJQVQVCVDRUKSVHCEDFGHIUMTU
      SVSVFVMVONZVTVSVFVKGKZVAVDOZWAVSVFWCVSUTVCLZVAVDLZLWBWELVFWCVSWDWBWEVSUTV
      CWBACDFGHIULPQUTVAVCVDUNWBVAVDRUOSVKBEDFGHIUPTUQUR $.
  $}

  ${
    grpeqdivid.1 $e |- X = ran G $.
    grpeqdivid.2 $e |- U = ( GId ` G ) $.
    grpeqdivid.3 $e |- D = ( /g ` G ) $.
    $( Two group elements are equal iff their quotient is the identity.
       (Contributed by Jeff Madsen, 6-Jan-2011.) $)
    grpoeqdivid $p |- ( ( G e. GrpOp /\ A e. X /\ B e. X ) ->
                                              ( A = B <-> ( A D B ) = U ) ) $=
      ( cgr wcel w3a wceq grpodivid 3adant2 oveq1 eqeq1d syl5ibrcom grponpcan
      co grpolid eqeq12d syl5ib impbid ) EJKZAFKZBFKZLZABMZABCTZDMZUHUKUIBBCTZD
      MZUEUGUMUFBCDEFGIHNOUIUJULDABBCPQRUKUJBETZDBETZMUHUIUJDBEPUHUNAUOBABCEFGI
      SUEUGUOBMUFBDEFGHUAOUBUCUD $.
  $}

  ${
    $d x y z A $.
    grposnOLD.1 $e |- A e. _V $.
    $( The group operation for the singleton group.  Obsolete, use ~ grp1 .
       instead (Contributed by NM, 4-Nov-2006.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    grposnOLD $p |- { <. <. A , A >. , A >. } e. GrpOp $=
      ( vx vy vz cop csn wf cv wcel co velsn oveq2 oveq1 syl6eq sylan9eq eqtr4d
      wceq wa sylbi snex cxp wf1o opex f1osn f1of ax-mp xpsn feq2i w3a cfv fvsn
      mpbir df-ov eqtri oveq1d sylan9eqr 3impa oveq2d 3impb syl3anb snid id a1i
      isgrpoi ) CDEAAAFZAFGZAAGZAUAVHVHUBZVHVGHVFGZVHVGHZVJVHVGUCVKVFAAAUDZBUEV
      JVHVGUFUGVIVJVHVGAABBUHUIUMCIZVHJZVMARZDIZVHJVPARZEIZVHJVRARZVMVPVGKZVRVG
      KZVMVPVRVGKZVGKZRCALZDALEALVOVQVSUJWAAWCVOVQVSWAARVSVOVQSZWAVTAVGKZAVRAVT
      VGMWEWFAAVGKZAWEVTAAVGVOVQVTAVPVGKZAVMAVPVGNVQWHWGAVPAAVGMWGVFVGUKAAAVGUN
      VFAVLBULUOZOPUPWIOUQURVOVQVSWCARVOVQVSSZWCAWBVGKZAVMAWBVGNWJWKWGAWJWBAAVG
      VQVSWBAVRVGKZAVPAVRVGNVSWLWGAVRAAVGMWIOPUSWIOPUTQVAABVBZVNVOAVMVGKZVMRWDV
      OWNAVMVOWNWGAVMAAVGMWIOZVOVCQTAVHJVNWMVDVNVOWNARWDWOTVE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Group homomorphism and isomorphism
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c GrpOpHom $.

  $( Obsolete version of ~ cghm as of 15-Mar-2020.  Extend class notation to
     include the class of group homomorphisms.  (New usage is discouraged.) $)
  cghomOLD $a class GrpOpHom $.

  ${
    $d f g h x y $.
    $( Obsolete version of ~ df-ghm as of 15-Mar-2020.  Define the set of group
       homomorphisms from ` g ` to ` h ` .  (Contributed by Paul Chapman,
       25-Feb-2008.)  (New usage is discouraged.) $)
    df-ghomOLD $a |- GrpOpHom = ( g e. GrpOp , h e. GrpOp |->
        { f | ( f : ran g --> ran h /\ A. x e. ran g A. y e. ran g
                     ( ( f ` x ) h ( f ` y ) ) = ( f ` ( x g y ) ) ) } ) $.
  $}

  ${
    $d f x y F $.  $d f g h x y G $.  $d f g h x y H $.  $d g h S $.
    elghomlem1OLD.1 $e |- S = { f | ( f : ran G --> ran H /\ A. x e. ran G
      A. y e. ran G ( ( f ` x ) H ( f ` y ) ) = ( f ` ( x G y ) ) ) } $.
    $( Obsolete as of 15-Mar-2020.  Lemma for ~ elghomOLD .  (Contributed by
       Paul Chapman, 25-Feb-2008.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    elghomlem1OLD $p |- ( ( G e. GrpOp /\ H e. GrpOp )
        -> ( G GrpOpHom H ) = S ) $=
      ( vg vh cgr wcel cvv co wceq crn cv cfv wral wf wa cghomOLD fabexg syl2an
      rnexg rneq feq2d oveq fveq2d eqeq2d raleqbidv anbi12d abbidv feq3d eqeq1d
      cab 2ralbidv syl6eqr df-ghomOLD ovmpt2g mpd3an3 ) EJKZFJKZCLKZEFUAMCNVAEO
      ZLKFOZLKVCVBEJUDFJUDAPZDPZQZBPZVGQZFMZVFVIEMZVGQZNZBVDRAVDRZDVDVELLCGUBUC
      HIEFJJHPZOZIPZOZVGSZVHVJVRMZVFVIVPMZVGQZNZBVQRZAVQRZTZDUOCUAVDVSVGSZWAVMN
      ZBVDRZAVDRZTZDUOZLVPENZWGWLDWNVTWHWFWKWNVQVDVSVGVPEUEZUFWNWEWJAVQVDWOWNWD
      WIBVQVDWOWNWCVMWAWNWBVLVGVFVIVPEUGUHUIUJUJUKULVRFNZWMVDVEVGSZVOTZDUOCWPWL
      WRDWPWHWQWKVOWPVSVEVGVDVRFUEUMWPWIVNABVDVDWPWAVKVMVHVJVRFUGUNUPUKULGUQABD
      HIURUSUT $.

    $( Obsolete as of 15-Mar-2020.  Lemma for ~ elghomOLD .  (Contributed by
       Paul Chapman, 25-Feb-2008.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    elghomlem2OLD $p |- ( ( G e. GrpOp /\ H e. GrpOp )
      -> ( F e. ( G GrpOpHom H )
      <-> ( F : ran G --> ran H /\ A. x e. ran G A. y e. ran G
          ( ( F ` x ) H ( F ` y ) ) = ( F ` ( x G y ) ) ) ) ) $=
      ( cgr wcel wa co crn wf cv cfv wceq wral cvv fveq1 cghomOLD elghomlem1OLD
      eleq2d wb elex oveq12d eqeq12d 2ralbidv anbi12d elab2g biimpd mpcom rnexg
      feq1 wi fex expcom syl adantrd biimprd syli impbid2 adantr bitrd ) FIJZGI
      JZKZEFGUALZJECJZFMZGMZENZAOZEPZBOZEPZGLZVMVOFLZEPZQZBVJRAVJRZKZVGVHCEABCD
      FGHUBUCVEVIWBUDVFVEVIWBESJZVIWBECUEWCVIWBVJVKDOZNZVMWDPZVOWDPZGLZVRWDPZQZ
      BVJRAVJRZKWBDECSWDEQZWEVLWKWAVJVKWDEUNWLWJVTABVJVJWLWHVQWIVSWLWFVNWGVPGVM
      WDETVOWDETUFVRWDETUGUHUIHUJZUKULWBVEWCVIVEVLWCWAVEVJSJZVLWCUOFIUMVLWNWCVJ
      VKSEUPUQURUSWCVIWBWMUTVAVBVCVD $.
  $}

  ${
    $d F f x y $.  $d G f x y $.  $d H f x y $.  $d X x y $.
    elghomOLD.1 $e |- X = ran G $.
    elghomOLD.2 $e |- W = ran H $.
    $( Obsolete version of ~ isghm as of 15-Mar-2020.  Membership in the set of
       group homomorphisms from ` G ` to ` H ` .  (Contributed by Paul Chapman,
       3-Mar-2008.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    elghomOLD $p |- ( ( G e. GrpOp /\ H e. GrpOp ) ->
      ( F e. ( G GrpOpHom H ) <-> ( F : X --> W /\ A. x e. X A. y e. X
        ( ( F ` x ) H ( F ` y ) ) = ( F ` ( x G y ) ) ) ) ) $=
      ( vf cgr wcel wa co crn wf cv cfv wceq wral cghomOLD elghomlem2OLD feq23i
      cab eqid raleqi raleqbii anbi12i syl6bbr ) DKLEKLMCDEUANLDOZEOZCPZAQZCRBQ
      ZCRENUMUNDNZCRSZBUJTZAUJTZMGFCPZUPBGTZAGTZMABUJUKJQZPUMVBRUNVBRENUOVBRSBU
      JTAUJTMJUDZJCDEVCUEUBUSULVAURGFUJUKCHIUCUTUQAGUJHUPBGUJHUFUGUHUI $.
  $}

  ${
    $d A x y $.  $d B y $.  $d F x y $.  $d G x y $.  $d H x y $.  $d X x y $.
    ghomlinOLD.1 $e |- X = ran G $.
    $( Obsolete version of ~ ghmlin as of 15-Mar-2020.  Linearity of a group
       homomorphism.  (Contributed by Paul Chapman, 3-Mar-2008.)
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    ghomlinOLD $p |- ( ( ( G e. GrpOp /\ H e. GrpOp
        /\ F e. ( G GrpOpHom H ) ) /\ ( A e. X /\ B e. X ) ) ->
                    ( ( F ` A ) H ( F ` B ) ) = ( F ` ( A G B ) ) ) $=
      ( vx vy cgr wcel co cv cfv wceq wral wa fveq2 fveq2d eqeq12d cghomOLD w3a
      crn eqid elghomOLD biimp3a simprd oveq1d oveq1 oveq2d oveq2 rspc2v mpan9
      wf ) DJKZEJKZCDEUALKZUBZHMZCNZIMZCNZELZUSVADLZCNZOZIFPHFPZAFKBFKQACNZBCNZ
      ELZABDLZCNZOZURFEUCZCUNZVGUOUPUQVOVGQHICDEVNFGVNUDUEUFUGVFVMVHVBELZAVADLZ
      CNZOHIABFFUSAOZVCVPVEVRVSUTVHVBEUSACRUHVSVDVQCUSAVADUISTVABOZVPVJVRVLVTVB
      VIVHEVABCRUJVTVQVKCVABADUKSTULUM $.
  $}

  ${
    $d F x y $.  $d G x y $.  $d H x y $.
    ghomidOLD.1 $e |- U = ( GId ` G ) $.
    ghomidOLD.2 $e |- T = ( GId ` H ) $.
    $( Obsolete version of ~ ghmid as of 15-Mar-2020.  A group homomorphism
       maps identity element to identity element.  (Contributed by Paul
       Chapman, 3-Mar-2008.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    ghomidOLD $p |- ( ( G e. GrpOp /\ H e. GrpOp /\ F e. ( G GrpOpHom H ) ) ->
                   ( F ` U ) = T ) $=
      ( vx vy cgr wcel co cfv wceq crn wa eqid 3ad2ant1 mpdan cv w3a ghomlinOLD
      cghomOLD grpoidcl jca grpolid fveq2d eqtrd wb wf elghomOLD biimp3a simpld
      wral ffvelrnd wi grpoid ex 3ad2ant2 mpd mpbird ) DJKZEJKZCDEUCLKZUAZBCMZA
      NZVFVFELZVFNZVEVHBBDLZCMZVFVEBDOZKZVMPVHVKNVEVMVMVBVCVMVDBDVLVLQZFUDZRZVP
      UEBBCDEVLVNUBSVBVCVKVFNVDVBVJBCVBVMVJBNVOBBDVLVNFUFSUGRUHVEVFEOZKZVGVIUIZ
      VEVLVQBCVEVLVQCUJZHTZCMITZCMELWAWBDLCMNIVLUNHVLUNZVBVCVDVTWCPHICDEVQVLVNV
      QQZUKULUMVPUOVCVBVRVSUPVDVCVRVSVFAEVQWDGUQURUSUTVA $.
  $}

  ${
    $d F x y $.  $d G x y $.  $d H x y $.  $d X x y $.
    ghomf.1 $e |- X = ran G $.
    ghomf.2 $e |- W = ran H $.
    $( Mapping property of a group homomorphism.  (Contributed by Jeff Madsen,
       1-Dec-2009.) $)
    ghomf $p |- ( ( G e. GrpOp /\ H e. GrpOp /\ F e. ( G GrpOpHom H ) )
                                                  -> F : X --> W ) $=
      ( vx vy cgr wcel cghomOLD co wf wa cv cfv wceq wral elghomOLD simprbda
      3impa ) BJKZCJKZABCLMKZEDANZUCUDOUEUFHPZAQIPZAQCMUGUHBMAQRIESHESHIABCDEFG
      TUAUB $.
  $}

  ${
    $d S u v x y $.  $d T u v x y $.  $d G u v x y $.  $d H u v x y $.
    $d K u v x y $.
    $( The composition of two group homomorphisms is a group homomorphism.
       (Contributed by Jeff Madsen, 1-Dec-2009.)  (Revised by Mario Carneiro,
       27-Dec-2014.) $)
    ghomco $p |- ( ( ( G e. GrpOp /\ H e. GrpOp /\ K e. GrpOp ) /\
                    ( S e. ( G GrpOpHom H ) /\ T e. ( H GrpOpHom K ) ) ) ->
                                      ( T o. S ) e. ( G GrpOpHom K ) ) $=
      ( vx vy vu vv cgr wcel cghomOLD co wa cv cfv wceq wral wi ad2ant2r w3a wf
      ccom crn fco ancoms a1i ffvelrn anim12da fveq2 oveq1d oveq1 fveq2d oveq2d
      eqeq12d oveq2 rspc2va sylan an32s adantllr anasss fvco3 ad2ant2rl oveq12d
      sylan9eq adantlr eqid grpocl 3expb sylan2 anassrs 3eqtr4d ralimdvva com23
      expr ex imp com12 3ad2ant1 jcad elghomOLD 3adant3 3adant1 anbi12d 3adant2
      wb 3imtr4d ) CJKZDJKZEJKZUAZACDLMKZBDELMKZNZBAUCZCELMKZWKCUDZDUDZAUBZFOZA
      PZGOZAPZDMZWTXBCMZAPZQZGWQRFWQRZNZWREUDZBUBZHOZBPZIOZBPZEMZXLXNDMZBPZQZIW
      RRHWRRZNZNZWQXJWOUBZWTWOPZXBWOPZEMZXEWOPZQZGWQRFWQRZNZWNWPWKYBYCYIYBYCSWK
      WSXKYCXHXTXKWSYCWQWRXJBAUEUFTUGWHWIYBYISWJYBWHYIWSYAXHWHYISZWSYANXHYKWSXK
      XTXHYKSWSXKNZXTNZWHXHYIYMWHXHYISZYLWHXTYNYLWHNZXTNZXGYHFGWQWQYPWTWQKZXBWQ
      KZNZXGYHYPYSXGNNXABPZXCBPZEMZXFBPZYFYGYPYSXGUUBUUCQYPYSNXGUUBXDBPZUUCYLXT
      YSUUBUUDQZWHWSXTYSUUEXKWSYSXTUUEWSYSNXAWRKZXCWRKZNXTUUEWSYQYRUUFUUGWQWRWT
      AUHWQWRXBAUHUIXSUUEYTXOEMZXAXNDMZBPZQHIXAXCWRWRXLXAQZXPUUHXRUUJUUKXMYTXOE
      XLXABUJUKUUKXQUUIBXLXAXNDULUMUOXNXCQZUUHUUBUUJUUDUULXOUUAYTEXNXCBUJUNUULU
      UIXDBXNXCXADUPUMUOUQURUSUTUTXDXFBUJVEVAYOYSYFUUBQZXTXGYLYSUUMWHYLYSNYDYTY
      EUUAEWSYQYDYTQXKYRWQWRWTBAVBTWSYRYEUUAQXKYQWQWRXBBAVBVCVDVFTYOYSYGUUCQZXT
      XGYLWHYSUUNWHYSNYLXEWQKZUUNWHYQYRUUOWTXBCWQWQVGZVHVIWSUUOUUNXKWQWRXEBAVBV
      FVJVKTVLVOVMUSVPVNVAVQUSVRVSVTWKWLXIWMYAWHWIWLXIWFWJFGACDWRWQUUPWRVGZWAWB
      WIWJWMYAWFWHHIBDEXJWRUUQXJVGZWAWCWDWHWJWPYJWFWIFGWOCEXJWQUUPUURWAWEWGVQ
      $.
  $}

  ${
    ghomdiv.1 $e |- X = ran G $.
    ghomdiv.2 $e |- D = ( /g ` G ) $.
    ghomdiv.3 $e |- C = ( /g ` H ) $.
    $( Group homomorphisms preserve division.  (Contributed by Jeff Madsen,
       16-Jun-2011.) $)
    ghomdiv $p |- ( ( ( G e. GrpOp /\ H e. GrpOp /\ F e. ( G GrpOpHom H ) ) /\
                                ( A e. X /\ B e. X ) ) ->
                      ( F ` ( A D B ) ) = ( ( F ` A ) C ( F ` B ) ) ) $=
      ( cgr wcel co wa cfv wceq ffvelrnda grponpcan 3ad2antl1 cghomOLD w3a eqid
      crn simpl2 ghomf adantrr adantrl 3expb fveq2d grpodivcl simprr ghomlinOLD
      syl3anc jca eqcomd syldan 3eqtr2rd wb grporcan syl13anc mpbid ) FLMZGLMZE
      FGUANMZUBZAHMZBHMZOZOZABDNZEPZBEPZGNZAEPZVMCNZVMGNZQZVLVPQZVJVQVOVKBFNZEP
      ZVNVJVDVOGUDZMZVMWBMZVQVOQVCVDVEVIUEZVFVGWCVHVFHWBAEEFGWBHIWBUCZUFZRUGZVF
      VHWDVGVFHWBBEWGRUHZVOVMCGWBWFKSUNVJVTAEVCVDVIVTAQZVEVCVGVHWJABDFHIJSUITUJ
      VFVIVKHMZVHOZWAVNQVCVDVIWLVEVCVIOWKVHVCVGVHWKABDFHIJUKUIZVCVGVHULUOTVFWLO
      VNWAVKBEFGHIUMUPUQURVJVDVLWBMZVPWBMZWDVRVSUSWEVFVIWKWNVCVDVIWKVEWMTVFHWBV
      KEWGRUQVJVDWCWDWOWEWHWIVOVMCGWBWFKUKUNWIVLVPVMGWBWFUTVAVB $.
  $}

  ${
    $d G x y $.  $d H x y $.  $d F x y $.  $d U x y $.  $d W x y $.
    $d X x y $.
    grpkerinj.1 $e |- X = ran G $.
    grpkerinj.2 $e |- W = ( GId ` G ) $.
    grpkerinj.3 $e |- Y = ran H $.
    grpkerinj.4 $e |- U = ( GId ` H ) $.
    $( A group homomorphism is injective if and only if its kernel is zero.
       (Contributed by Jeff Madsen, 16-Jun-2011.) $)
    grpokerinj $p |- ( ( G e. GrpOp /\ H e. GrpOp /\ F e. ( G GrpOpHom H ) ) ->
                      ( F : X -1-1-> Y <-> ( `' F " { U } ) = { W } ) ) $=
      ( vx vy wcel co csn cima wceq wa cfv cgr cghomOLD w3a wf1 ghomidOLD sneqd
      ccnv wfn wf ghomf ffn syl grpoidcl 3ad2ant1 fnsnfv syl2anc eqtr3d imaeq2d
      adantl wss snssd f1imacnv sylan2 eqtrd expcom cv wi wral adantr wb simpl2
      ffvelrnda adantrr adantrl eqid grpoeqdivid syl3anc adantlr ghomdiv eqeq1d
      cgs cgi cvv fvex eqeltri snid eleq1 mpbiri wfun grpodivcl 3expb 3ad2antl1
      cdm ffun eleqtrrd fvimacnv eleq2 sylan9bb an32s elsni biimprd syl5 sylbid
      fdm sylbird ralrimivva dff13 sylanbrc ex impbid ) CUANZDUANZBCDUBONZUCZFG
      BUDZBUGZAPZQZEPZRZXOXNXTXOXNSXRXPBXSQZQZXSXNXRYBRXOXNXQYAXPXNEBTZPZXQYAXN
      YCAAEBCDIKUEUFXNBFUHZEFNZYDYARXNFGBUIZYEBCDGFHJUJZFGBUKULXKXLYFXMECFHIUMZ
      UNFEBUOUPUQURUSXNXOXSFUTZYBXSRXKXLYJXMXKEFYIVAUNFGXSBVBVCVDVEXNXTXOXNXTSZ
      YGLVFZBTZMVFZBTZRZYLYNRZVGZMFVHLFVHXOXNYGXTYHVIYKYRLMFFYKYLFNZYNFNZSZSZYP
      YMYODWATZOZARZYQXNUUAYPUUEVJZXTXNUUASZXLYMGNZYOGNZUUFXKXLXMUUAVKXNYSUUHYT
      XNFGYLBYHVLVMXNYTUUIYSXNFGYNBYHVLVNYMYOUUCADGJKUUCVOZVPVQVRUUBUUEYLYNCWAT
      ZOZBTZARZYQUUBUUMUUDAXNUUAUUMUUDRXTYLYNUUCUUKBCDFHUUKVOZUUJVSVRVTUUNUUMXQ
      NZUUBYQUUNUUPAXQNAADWBTWCKDWBWDWEWFUUMAXQWGWHUUBUUPUULXSNZYQXNUUAXTUUPUUQ
      VJUUGUUPUULXRNZXTUUQUUGBWIZUULBWMZNUUPUURVJXNUUSUUAXNYGUUSYHFGBWNULVIUUGU
      ULFUUTXKXLUUAUULFNZXMXKYSYTUVAYLYNUUKCFHUUOWJWKWLXNUUTFRZUUAXNYGUVBYHFGBX
      DULVIWOUULXQBWPUPXRXSUULWQWRWSXNUUAUUQYQVGXTUUQUULERZUUGYQUULEWTXKXLUUAUV
      CYQVGZXMXKYSYTUVDXKYSYTUCYQUVCYLYNUUKECFHIUUOVPXAWKWLXBVRXCXBXEXCXFLMFGBX
      GXHXIXJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Rings
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c RingOps $.

  $( Extend class notation with the class of all unital rings. $)
  crngo $a class RingOps $.

  ${
    $d g h x y z $.
    $( Define the class of all unital rings.  (Contributed by Jeff Hankins,
       21-Nov-2006.)  (New usage is discouraged.) $)
    df-rngo $a |- RingOps = { <. g , h >. | ( ( g e. AbelOp /\
                               h : ( ran g X. ran g ) --> ran g ) /\
            ( A. x e. ran g A. y e. ran g A. z e. ran g
              ( ( ( x h y ) h z ) = ( x h ( y h z ) ) /\
                ( x h ( y g z ) ) = ( ( x h y ) g ( x h z ) ) /\
                ( ( x g y ) h z ) = ( ( x h z ) g ( y h z ) ) ) /\
        E. x e. ran g A. y e. ran g ( ( x h y ) = y /\ ( y h x ) = y ) ) ) } $.
  $}

  ${
    $d g h x y z $.
    $( The class of all unital rings is a relation.  (Contributed by FL,
       31-Aug-2009.)  (Revised by Mario Carneiro, 21-Dec-2013.)
       (New usage is discouraged.) $)
    relrngo $p |- Rel RingOps $=
      ( vg vh vx vy vz cv cablo wcel crn cxp wf wa wceq wral wrex crngo df-rngo
      co w3a relopabi ) AFZGHUAIZUBJUBBFZKLCFZDFZUCRZEFZUCRUDUEUGUCRZUCRMUDUEUG
      UARUCRUFUDUGUCRZUARMUDUEUARUGUCRUIUHUARMSEUBNDUBNCUBNUFUEMUEUDUCRUEMLDUBN
      CUBOLLABPCDEABQT $.
  $}

  ${
    $d g h x y z G $.  $d g h x y z H $.  $d g h x y z X $.
    isring.1 $e |- X = ran G $.
    $( The predicate "is a (unital) ring."  Definition of ring with unit in
       [Schechter] p. 187.  (Contributed by Jeff Hankins, 21-Nov-2006.)
       (Revised by Mario Carneiro, 21-Dec-2013.)
       (New usage is discouraged.) $)
    isrngo $p |- ( H e. A -> ( <. G , H >. e. RingOps <->
      ( ( G e. AbelOp /\ H : ( X X. X ) --> X ) /\
        ( A. x e. X A. y e. X A. z e. X
          ( ( ( x H y ) H z ) = ( x H ( y H z ) ) /\
            ( x H ( y G z ) ) = ( ( x H y ) G ( x H z ) ) /\
            ( ( x G y ) H z ) = ( ( x H z ) G ( y H z ) ) ) /\
          E. x e. X A. y e. X ( ( x H y ) = y /\ ( y H x ) = y ) ) ) ) ) $=
      ( vg vh wcel crngo cablo wa cv co wceq wral oveqd oveq123d cvv cop cxp wf
      w3a wrex wi wbr df-br relrngo brrelexi sylbir a1i elex ad2antrr crn copab
      wb df-rngo eleq2i simpl simpr rneqd syl6eqr sqxpeqd feq123d anbi12d eqidd
      eleq1d eqeq12d 3anbi123d raleqbidv eqeq1d rexeqbidv opelopabga pm5.21ndd
      syl5bb expcom ) FDKZEUAKZEFUBZLKZEMKZGGUCZGFUDZNZAOZBOZFPZCOZFPZWGWHWJFPZ
      FPZQZWGWHWJEPZFPZWIWGWJFPZEPZQZWGWHEPZWJFPZWQWLEPZQZUEZCGRZBGRZAGRZWIWHQZ
      WHWGFPZWHQZNZBGRZAGUFZNZNZWBVTUGVSWBEFLUHVTEFLUIEFLUJUKULUMXOVTUGVSWCVTWE
      XNEMUNUOUMVTVSWBXOURWBWAIOZMKZXPUPZXRUCZXRJOZUDZNZWGWHXTPZWJXTPZWGWHWJXTP
      ZXTPZQZWGWHWJXPPZXTPZYCWGWJXTPZXPPZQZWGWHXPPZWJXTPZYJYEXPPZQZUEZCXRRZBXRR
      ZAXRRZYCWHQZWHWGXTPZWHQZNZBXRRZAXRUFZNZNZIJUQZKVTVSNXOLUUIWAABCIJUSUTUUHX
      OIJEFUADXPEQZXTFQZNZYBWFUUGXNUULXQWCYAWEUULXPEMUUJUUKVAZVIUULXSWDXRGXTFUU
      JUUKVBZUULXRGUULXREUPGUULXPEUUMVCHVDZVEUUOVFVGUULYTXGUUFXMUULYSXFAXRGUUOU
      ULYRXEBXRGUUOUULYQXDCXRGUUOUULYGWNYLWSYPXCUULYDWKYFWMUULYCWIWJWJXTFUUNUUL
      XTFWGWHUUNSZUULWJVHZTUULWGWGYEWLXTFUUNUULWGVHZUULXTFWHWJUUNSZTVJUULYIWPYK
      WRUULWGWGYHWOXTFUUNUURUULXPEWHWJUUMSTUULYCWIYJWQXPEUUMUUPUULXTFWGWJUUNSZT
      VJUULYNXAYOXBUULYMWTWJWJXTFUUNUULXPEWGWHUUMSUUQTUULYJWQYEWLXPEUUMUUTUUSTV
      JVKVLVLVLUULUUEXLAXRGUUOUULUUDXKBXRGUUOUULUUAXHUUCXJUULYCWIWHUUPVMUULUUBX
      IWHUULXTFWHWGUUNSVMVGVLVNVGVGVOVQVRVP $.
  $}

  ${
    $d ph x y z $.  $d G x y z $.  $d H x y z $.  $d X x y z $.  $d U x y $.
    isringod.1 $e |- ( ph -> G e. AbelOp ) $.
    isringod.2 $e |- ( ph -> X = ran G ) $.
    isringod.3 $e |- ( ph -> H : ( X X. X ) --> X ) $.
    isringod.4 $e |- ( ( ph /\ ( x e. X /\ y e. X /\ z e. X ) )
                                  -> ( ( x H y ) H z ) = ( x H ( y H z ) ) ) $.
    isringod.5 $e |- ( ( ph /\ ( x e. X /\ y e. X /\ z e. X ) )
                          -> ( x H ( y G z ) ) = ( ( x H y ) G ( x H z ) ) ) $.
    isringod.6 $e |- ( ( ph /\ ( x e. X /\ y e. X /\ z e. X ) )
                          -> ( ( x G y ) H z ) = ( ( x H z ) G ( y H z ) ) ) $.
    isringod.7 $e |- ( ph -> U e. X ) $.
    isringod.8 $e |- ( ( ph /\ y e. X ) -> ( U H y ) = y ) $.
    isringod.9 $e |- ( ( ph /\ y e. X ) -> ( y H U ) = y ) $.
    $( Conditions that determine a ring.  (Changed label from ~ isringd to
       ~ isrngod -NM 2-Aug-2013.)  (Contributed by Jeff Madsen, 19-Jun-2010.)
       (Revised by Mario Carneiro, 21-Dec-2013.)
       (New usage is discouraged.) $)
    isrngod $p |- ( ph -> <. G , H >. e. RingOps ) $=
      ( wcel co wral cop crngo cablo crn cxp wf wa wceq w3a wrex sqxpeqd feq23d
      mpbid 3jca ralrimivvva raleqdv raleqbidv jca ralrimiva oveq1 eqeq1d oveq2
      cv anbi12d ralbidv rspcev syl2anc rexeqbidv jca31 cvv rnexg syl xpexg fex
      wb eqid isrngo mpbird ) AFGUAUBRZFUCRZFUDZWAUEZWAGUFZUGBVCZCVCZGSZDVCZGSW
      DWEWGGSZGSUHZWDWEWGFSGSWFWDWGGSZFSUHZWDWEFSWGGSWJWHFSUHZUIZDWATZCWATZBWAT
      ZWFWEUHZWEWDGSZWEUHZUGZCWATZBWAUJZUGZUGZAVTWCXCIAHHUEZHGUFWCKAXEHWBWAGAHW
      AJUKJULUMZAWPXBAWMDHTZCHTZBHTWPAWMBCDHHHAWDHRWEHRZWGHRUIUGWIWKWLLMNUNUOAX
      HWOBHWAJAXGWNCHWAJAWMDHWAJUPUQUQUMAWTCHTZBHUJZXBAEHREWEGSZWEUHZWEEGSZWEUH
      ZUGZCHTZXKOAXPCHAXIUGXMXOPQURUSXJXQBEHWDEUHZWTXPCHXRWQXMWSXOXRWFXLWEWDEWE
      GUTVAXRWRXNWEWDEWEGVBVAVDVEVFVGAXJXABHWAJAWTCHWAJUPVHUMURVIAGVJRZVSXDVOAW
      CWBVJRZXSXFAWAVJRZYAXTAVTYAIFUCVKVLZYBWAWAVJVJVMVGWBWAVJGVNVGBCDVJFGWAWAV
      PVQVLVR $.
  $}

  ${
    $d u x y z G $.  $d u x y z H $.  $d u x y z X $.  $d u x y z A $.
    $d y z B $.  $d z C $.  $d u x R $.
    ringi.1 $e |- G = ( 1st ` R ) $.
    ringi.2 $e |- H = ( 2nd ` R ) $.
    ringi.3 $e |- X = ran G $.
    $( The properties of a unital ring.  (Contributed by Steve Rodriguez,
       8-Sep-2007.)  (Proof shortened by Mario Carneiro, 21-Dec-2013.)
       (New usage is discouraged.) $)
    rngoi $p |- ( R e. RingOps -> ( ( G e. AbelOp /\ H : ( X X. X ) --> X ) /\
      ( A. x e. X A. y e. X A. z e. X
        ( ( ( x H y ) H z ) = ( x H ( y H z ) ) /\
          ( x H ( y G z ) ) = ( ( x H y ) G ( x H z ) ) /\
          ( ( x G y ) H z ) = ( ( x H z ) G ( y H z ) ) ) /\
        E. x e. X A. y e. X ( ( x H y ) = y /\ ( y H x ) = y ) ) ) ) $=
      ( crngo wcel cop wa cv co wceq wral cfv cvv cablo cxp wrex c1st c2nd wrel
      wf relrngo 1st2nd mpan opeq12i syl6reqr id eqeltrd wb fvex eqeltri isrngo
      w3a ax-mp sylib ) DKLZEFMZKLZEUALGGUBGFUGNAOZBOZFPZCOZFPVEVFVHFPZFPQVEVFV
      HEPFPVGVEVHFPZEPQVEVFEPVHFPVJVIEPQUSCGRBGRAGRVGVFQVFVEFPVFQNBGRAGUCNNZVBV
      CDKVBDDUDSZDUESZMZVCKUFVBDVNQUHDKUIUJEVLFVMHIUKULVBUMUNFTLVDVKUOFVMTIDUEU
      PUQABCTEFGJURUTVA $.

    $( Functionality of the multiplication operation of a ring.  (Contributed
       by Steve Rodriguez, 9-Sep-2007.)  (Revised by Mario Carneiro,
       21-Dec-2013.)  (New usage is discouraged.) $)
    rngosm $p |- ( R e. RingOps -> H : ( X X. X ) --> X ) $=
      ( vx vy vz crngo wcel cablo cxp wf wa cv co wceq wral rngoi simpld simprd
      w3a wrex ) AKLZBMLZDDNDCOZUFUGUHPHQZIQZCRZJQZCRUIUJULCRZCRSUIUJULBRCRUKUI
      ULCRZBRSUIUJBRULCRUNUMBRSUDJDTIDTHDTUKUJSUJUICRUJSPIDTHDUEPHIJABCDEFGUAUB
      UC $.

    $( Closure of the multiplication operation of a ring.  (Contributed by
       Steve Rodriguez, 9-Sep-2007.)  (New usage is discouraged.) $)
    rngocl $p |- ( ( R e. RingOps /\ A e. X /\ B e. X ) -> ( A H B ) e. X ) $=
      ( crngo wcel cxp wf co rngosm fovrn syl3an1 ) CJKFFLFEMAFKBFKABENFKCDEFGH
      IOABFFFEPQ $.

    $( The multiplication operation of a unital ring has (one or more) identity
       elements.  (Contributed by Steve Rodriguez, 9-Sep-2007.)  (Revised by
       Mario Carneiro, 22-Dec-2013.)  (New usage is discouraged.) $)
    rngoid $p |- ( ( R e. RingOps /\ A e. X ) ->
                 E. u e. X ( ( u H A ) = A /\ ( A H u ) = A ) ) $=
      ( vx vy crngo wcel cv co wceq wa wrex wral eqeq12d cablo cxp wf w3a rngoi
      simprrd r19.12 syl oveq2 id oveq1 anbi12d rexbidv rspccva sylan ) CLMZANZ
      JNZEOZURPZURUQEOZURPZQZAFRZJFSZBFMUQBEOZBPZBUQEOZBPZQZAFRZUPVCJFSAFRZVEUP
      DUAMFFUBFEUCQUSKNZEOUQURVMEOZEOPUQURVMDOEOUSUQVMEOZDOPUQURDOVMEOVOVNDOPUD
      KFSJFSAFSVLAJKCDEFGHIUEUFVCAJFFUGUHVDVKJBFURBPZVCVJAFVPUTVGVBVIVPUSVFURBU
      RBUQEUIVPUJZTVPVAVHURBURBUQEUKVQTULUMUNUO $.

    $( The unit element of a ring is unique.  (Contributed by NM, 4-Apr-2009.)
       (Revised by Mario Carneiro, 21-Dec-2013.)
       (New usage is discouraged.) $)
    rngoideu $p |- ( R e. RingOps ->
                 E! u e. X A. x e. X ( ( u H x ) = x /\ ( x H u ) = x ) ) $=
      ( vy wcel cv co wceq wa wral weq ralimi oveq2 id crngo wrex wi wreu cablo
      cxp wf rngoi simprrd simpl eqeq12d rspcv syl5 simpr oveq1 im2anan9r eqtr2
      w3a eqcomd syl6 rgen2a jctir eqeq1d anbi12d ralbidv reu4 sylibr ) CUAKZBL
      ZALZEMZVJNZVJVIEMZVJNZOZAFPZBFUBZVPJLZVJEMZVJNZVJVREMZVJNZOZAFPZOZBJQZUCZ
      JFPBFPZOVPBFUDVHVQWHVHDUEKFFUFFEUGOVKVREMVIWAEMNVIVJVRDMEMVKVIVREMZDMNVIV
      JDMVREMWIWADMNURJFPAFPBFPVQBAJCDEFGHIUHUIWGBJFVIFKZVRFKZOWEWIVRNZWIVINZOZ
      WFWKVPWLWJWDWMVPVLAFPWKWLVOVLAFVLVNUJRVLWLAVRFAJQZVKWIVJVRVJVRVIESWOTUKUL
      UMWDWBAFPWJWMWCWBAFVTWBUNRWBWMAVIFABQZWAWIVJVIVJVIVREUOWPTUKULUMUPWNVRVIW
      IVRVIUQUSUTVAVBVPWDBJFWFVOWCAFWFVLVTVNWBWFVKVSVJVIVRVJEUOVCWFVMWAVJVIVRVJ
      ESVCVDVEVFVG $.

    $( Distributive law for the multiplication operation of a ring
       (left-distributivity).  (Contributed by Steve Rodriguez, 9-Sep-2007.)
       (Revised by Mario Carneiro, 21-Dec-2013.)
       (New usage is discouraged.) $)
    rngodi $p |- ( ( R e. RingOps /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                     ( A H ( B G C ) ) = ( ( A H B ) G ( A H C ) ) ) $=
      ( vx vy vz wcel cv co wceq wral wa oveq1 crngo w3a cablo cxp rngoi simprd
      wf simpld simp2 ralimi 2ralimi oveq12d eqeq12d oveq2d oveq2 oveq1d rspc3v
      wrex syl5 mpan9 ) DUANZKOZLOZFPZMOZFPVBVCVEFPZFPQZVBVCVEEPZFPZVDVBVEFPZEP
      ZQZVBVCEPVEFPVJVFEPQZUBZMGRZLGRKGRZAGNBGNCGNUBZABCEPZFPZABFPZACFPZEPZQZVA
      VPVDVCQVCVBFPVCQSLGRKGURZVAEUCNGGUDGFUGSVPWDSKLMDEFGHIJUEUFUHVPVLMGRZLGRK
      GRVQWCVOWEKLGGVNVLMGVGVLVMUIUJUKVLWCAVHFPZAVCFPZAVEFPZEPZQABVEEPZFPZVTWHE
      PZQKLMABCGGGVBAQZVIWFVKWIVBAVHFTWMVDWGVJWHEVBAVCFTVBAVEFTULUMVCBQZWFWKWIW
      LWNVHWJAFVCBVEETUNWNWGVTWHEVCBAFUOUPUMVECQZWKVSWLWBWOWJVRAFVECBEUOUNWOWHW
      AVTEVECAFUOUNUMUQUSUT $.

    $( Distributive law for the multiplication operation of a ring
       (right-distributivity).  (Contributed by Steve Rodriguez, 9-Sep-2007.)
       (Revised by Mario Carneiro, 21-Dec-2013.)
       (New usage is discouraged.) $)
    rngodir $p |- ( ( R e. RingOps /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                      ( ( A G B ) H C ) = ( ( A H C ) G ( B H C ) ) ) $=
      ( vx vy vz wcel cv co wceq wral wa oveq2 crngo w3a cablo cxp rngoi simprd
      wf simpld simp3 ralimi 2ralimi oveq1 oveq1d eqeq12d oveq2d oveq12d rspc3v
      wrex syl5 mpan9 ) DUANZKOZLOZFPZMOZFPVBVCVEFPZFPQZVBVCVEEPFPVDVBVEFPZEPQZ
      VBVCEPZVEFPZVHVFEPZQZUBZMGRZLGRKGRZAGNBGNCGNUBZABEPZCFPZACFPZBCFPZEPZQZVA
      VPVDVCQVCVBFPVCQSLGRKGURZVAEUCNGGUDGFUGSVPWDSKLMDEFGHIJUEUFUHVPVMMGRZLGRK
      GRVQWCVOWEKLGGVNVMMGVGVIVMUIUJUKVMWCAVCEPZVEFPZAVEFPZVFEPZQVRVEFPZWHBVEFP
      ZEPZQKLMABCGGGVBAQZVKWGVLWIWMVJWFVEFVBAVCEULUMWMVHWHVFEVBAVEFULUMUNVCBQZW
      GWJWIWLWNWFVRVEFVCBAETUMWNVFWKWHEVCBVEFULUOUNVECQZWJVSWLWBVECVRFTWOWHVTWK
      WAEVECAFTVECBFTUPUNUQUSUT $.

    $( Associative law for the multiplication operation of a ring.
       (Contributed by Steve Rodriguez, 9-Sep-2007.)  (Revised by Mario
       Carneiro, 21-Dec-2013.)  (New usage is discouraged.) $)
    rngoass $p |- ( ( R e. RingOps /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                      ( ( A H B ) H C ) = ( A H ( B H C ) ) ) $=
      ( vx vy vz wcel cv co wceq wral wa oveq1 crngo w3a cablo cxp rngoi simprd
      wrex wf simpld simp1 ralimi 2ralimi syl oveq1d eqeq12d oveq2 oveq2d mpan9
      rspc3v ) DUANZKOZLOZFPZMOZFPZVAVBVDFPZFPZQZMGRZLGRKGRZAGNBGNCGNUBABFPZCFP
      ZABCFPZFPZQZUTVHVAVBVDEPFPVCVAVDFPZEPQZVAVBEPVDFPVPVFEPQZUBZMGRZLGRKGRZVJ
      UTWAVCVBQVBVAFPVBQSLGRKGUGZUTEUCNGGUDGFUHSWAWBSKLMDEFGHIJUEUFUIVTVIKLGGVS
      VHMGVHVQVRUJUKULUMVHVOAVBFPZVDFPZAVFFPZQVKVDFPZABVDFPZFPZQKLMABCGGGVAAQZV
      EWDVGWEWIVCWCVDFVAAVBFTUNVAAVFFTUOVBBQZWDWFWEWHWJWCVKVDFVBBAFUPUNWJVFWGAF
      VBBVDFTUQUOVDCQZWFVLWHVNVDCVKFUPWKWGVMAFVDCBFUPUQUOUSUR $.

    $( A ring element plus itself is two times the element.  (Contributed by
       Steve Rodriguez, 9-Sep-2007.)  (Revised by Mario Carneiro, 22-Dec-2013.)
       (New usage is discouraged.) $)
    rngo2 $p |- ( ( R e. RingOps /\ A e. X ) ->
                  E. x e. X ( A G A ) = ( ( x G x ) H A ) ) $=
      ( crngo wcel wa cv co wceq wrex rngoid oveq12 anidms eqcomd simpll simplr
      simpr rngodir syl13anc eqeq2d syl5ibr adantrd reximdva mpd ) CJKZBFKZLZAM
      ZBENZBOZBUNENBOZLZAFPBBDNZUNUNDNBENZOZAFPABCDEFGHIQUMURVAAFUMUNFKZLZUPVAU
      QUPVAVCUSUOUODNZOUPVDUSUPVDUSOUOBUOBDRSTVCUTVDUSVCUKVBVBULUTVDOUKULVBUAUM
      VBUCZVEUKULVBUBUNUNBCDEFGHIUDUEUFUGUHUIUJ $.
  $}

  ${
    $d G x y z $.  $d R x y z $.
    ringabl.1 $e |- G = ( 1st ` R ) $.
    $( A ring's addition operation is an Abelian group operation.  (Contributed
       by Steve Rodriguez, 9-Sep-2007.)  (Revised by Mario Carneiro,
       21-Dec-2013.)  (New usage is discouraged.) $)
    rngoablo $p |- ( R e. RingOps -> G e. AbelOp ) $=
      ( vx vy vz crngo wcel cablo crn cxp c2nd cfv wf cv co wceq wral wa eqid
      w3a wrex rngoi simplld ) AGHBIHBJZUEKUEALMZNDOZEOZUFPZFOZUFPUGUHUJUFPZUFP
      QUGUHUJBPUFPUIUGUJUFPZBPQUGUHBPUJUFPULUKBPQUAFUEREUERDUERUIUHQUHUGUFPUHQS
      EUERDUEUBSDEFABUFUECUFTUETUCUD $.
  $}

  $( In a unital ring the addition is an abelian group.  (Contributed by FL,
     31-Aug-2009.)  (New usage is discouraged.) $)
  rngoablo2 $p |- ( <. G , H >. e. RingOps -> G e. AbelOp ) $=
    ( cop crngo wcel c1st cfv cablo wbr wceq cvv wa wrel relrngo brrelex12 mpan
    df-br op1stg syl sylbir eqid rngoablo eqeltrrd ) ABCZDEZUDFGZAHUEABDIZUFAJZ
    ABDQUGAKEBKELZUHDMUGUINABDOPABKKRSTUDUFUFUAUBUC $.

  ${
    ringgrp.1 $e |- G = ( 1st ` R ) $.
    $( A ring's addition operation is a group operation.  (Contributed by Steve
       Rodriguez, 9-Sep-2007.)  (New usage is discouraged.) $)
    rngogrpo $p |- ( R e. RingOps -> G e. GrpOp ) $=
      ( crngo wcel cablo cgr rngoablo ablogrpo syl ) ADEBFEBGEABCHBIJ $.
  $}

  ${
    rngone0.1 $e |- G = ( 1st ` R ) $.
    rngone0.2 $e |- X = ran G $.
    $( The base set of a ring is not empty.  (Contributed by FL, 24-Jan-2010.)
       (New usage is discouraged.) $)
    rngone0 $p |- ( R e. RingOps -> X =/= (/) ) $=
      ( crngo wcel cgr c0 wne rngogrpo grpon0 syl ) AFGBHGCIJABDKBCELM $.
  $}

  ${
    ringgcl.1 $e |- G = ( 1st ` R ) $.
    ringgcl.2 $e |- X = ran G $.
    $( Closure law for the addition (group) operation of a ring.  (Contributed
       by Steve Rodriguez, 9-Sep-2007.)  (New usage is discouraged.) $)
    rngogcl $p |- ( ( R e. RingOps /\ A e. X /\ B e. X ) -> ( A G B ) e. X ) $=
      ( crngo wcel cgr co rngogrpo grpocl syl3an1 ) CHIDJIAEIBEIABDKEICDFLABDEG
      MN $.

    $( The addition operation of a ring is commutative.  (Contributed by Steve
       Rodriguez, 9-Sep-2007.)  (New usage is discouraged.) $)
    rngocom $p |- ( ( R e. RingOps /\ A e. X /\ B e. X ) ->
                      ( A G B ) = ( B G A ) ) $=
      ( crngo wcel cablo co wceq rngoablo ablocom syl3an1 ) CHIDJIAEIBEIABDKBAD
      KLCDFMABDEGNO $.

    $( The addition operation of a ring is associative.  (Contributed by Steve
       Rodriguez, 9-Sep-2007.)  (New usage is discouraged.) $)
    rngoaass $p |- ( ( R e. RingOps /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                        ( ( A G B ) G C ) = ( A G ( B G C ) ) ) $=
      ( crngo wcel cgr w3a co wceq rngogrpo grpoass sylan ) DIJEKJAFJBFJCFJLABE
      MCEMABCEMEMNDEGOABCEFHPQ $.

    $( The addition operation of a ring is commutative.  (Contributed by Steve
       Rodriguez, 9-Sep-2007.)  (New usage is discouraged.) $)
    rngoa32 $p |- ( ( R e. RingOps /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                      ( ( A G B ) G C ) = ( ( A G C ) G B ) ) $=
      ( crngo wcel cablo w3a co wceq rngoablo ablo32 sylan ) DIJEKJAFJBFJCFJLAB
      EMCEMACEMBEMNDEGOABCEFHPQ $.

    $( Rearrangement of 4 terms in a sum of ring elements.  (Contributed by
       Steve Rodriguez, 9-Sep-2007.)  (New usage is discouraged.) $)
    rngoa4 $p |- ( ( R e. RingOps /\ ( A e. X /\ B e. X ) /\
                   ( C e. X /\ D e. X ) ) ->
                     ( ( A G B ) G ( C G D ) ) = ( ( A G C ) G ( B G D ) ) ) $=
      ( crngo wcel cablo wa co wceq rngoablo ablo4 syl3an1 ) EJKFLKAGKBGKMCGKDG
      KMABFNCDFNFNACFNBDFNFNOEFHPABCDFGIQR $.

    $( Right cancellation law for the addition operation of a ring.
       (Contributed by Steve Rodriguez, 9-Sep-2007.)
       (New usage is discouraged.) $)
    rngorcan $p |- ( ( R e. RingOps /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                       ( ( A G C ) = ( B G C ) <-> A = B ) ) $=
      ( crngo wcel cgr w3a co wceq wb rngogrpo grporcan sylan ) DIJEKJAFJBFJCFJ
      LACEMBCEMNABNODEGPABCEFHQR $.

    $( Left cancellation law for the addition operation of a ring.
       (Contributed by Steve Rodriguez, 9-Sep-2007.)
       (New usage is discouraged.) $)
    rngolcan $p |- ( ( R e. RingOps /\ ( A e. X /\ B e. X /\ C e. X ) ) ->
                       ( ( C G A ) = ( C G B ) <-> A = B ) ) $=
      ( crngo wcel cgr w3a co wceq wb rngogrpo grpolcan sylan ) DIJEKJAFJBFJCFJ
      LCAEMCBEMNABNODEGPABCEFHQR $.
  $}

  ${
    ring0cl.1 $e |- G = ( 1st ` R ) $.
    ring0cl.2 $e |- X = ran G $.
    ring0cl.3 $e |- Z = ( GId ` G ) $.
    $( A ring has an additive identity element.  (Contributed by Steve
       Rodriguez, 9-Sep-2007.)  (New usage is discouraged.) $)
    rngo0cl $p |- ( R e. RingOps -> Z e. X ) $=
      ( crngo wcel cgr rngogrpo grpoidcl syl ) AHIBJIDCIABEKDBCFGLM $.

    $( The additive identity of a ring is a right identity element.
       (Contributed by Steve Rodriguez, 9-Sep-2007.)
       (New usage is discouraged.) $)
    rngo0rid $p |- ( ( R e. RingOps /\ A e. X ) -> ( A G Z ) = A ) $=
      ( crngo wcel cgr co wceq rngogrpo grporid sylan ) BIJCKJADJAECLAMBCFNAECD
      GHOP $.

    $( The additive identity of a ring is a left identity element.
       (Contributed by Steve Rodriguez, 9-Sep-2007.)
       (New usage is discouraged.) $)
    rngo0lid $p |- ( ( R e. RingOps /\ A e. X ) -> ( Z G A ) = A ) $=
      ( crngo wcel cgr co wceq rngogrpo grpolid sylan ) BIJCKJADJEACLAMBCFNAECD
      GHOP $.
  $}

  ${
    ringlz.1 $e |- Z = ( GId ` G ) $.
    ringlz.2 $e |- X = ran G $.
    ringlz.3 $e |- G = ( 1st ` R ) $.
    ringlz.4 $e |- H = ( 2nd ` R ) $.
    $( The zero of a unital ring is a left-absorbing element.  (Contributed by
       FL, 31-Aug-2009.)  (New usage is discouraged.) $)
    rngolz $p |- ( ( R e. RingOps /\ A e. X ) -> ( Z H A ) = Z ) $=
      ( crngo wcel wa co wceq cgr rngogrpo grpoidcl grpolid adantr mpdan oveq1d
      syl rngo0cl simpr 3jca rngodir syldan simpl rngocl syl3anc grporid eqcomd
      w3a syl2anc 3eqtr3d wb grpolcan syl13anc mpbid ) BKLZAELZMZFADNZVDCNZVDFC
      NZOZVDFOZVCFFCNZADNZVDVEVFVCVIFADVAVIFOZVBVACPLZVKBCIQZVLFELZVKFCEHGRFFCE
      HGSUAUCTUBVAVBVNVNVBUNVJVEOVCVNVNVBVAVNVBBCEFIHGUDTZVOVAVBUEZUFFFABCDEIJH
      UGUHVCVLVDELZVDVFOVAVLVBVMTZVCVAVNVBVQVAVBUIVOVPFABCDEIJHUJUKZVLVQMVFVDVD
      FCEHGULUMUOUPVCVLVQVNVQVGVHUQVRVSVOVSVDFVDCEHURUSUT $.

    $( The zero of a unital ring is a right-absorbing element.  (Contributed by
       FL, 31-Aug-2009.)  (New usage is discouraged.) $)
    rngorz $p |- ( ( R e. RingOps /\ A e. X ) -> ( A H Z ) = Z ) $=
      ( crngo wcel wa co wceq cgr rngogrpo grpoidcl grpolid adantr mpdan oveq2d
      syl w3a simpr rngo0cl rngodi syldan rngocl mpd3an3 eqcomd syl2anc 3eqtr3d
      3jca wb grporcan syl13anc mpbid ) BKLZAELZMZAFDNZVBCNZFVBCNZOZVBFOZVAAFFC
      NZDNZVBVCVDVAVGFADUSVGFOZUTUSCPLZVIBCIQZVJFELZVIFCEHGRFFCEHGSUAUCTUBUSUTU
      TVLVLUDVHVCOVAUTVLVLUSUTUEUSVLUTBCEFIHGUFTZVMUNAFFBCDEIJHUGUHVAVJVBELZVBV
      DOUSVJUTVKTZUSUTVLVNVMAFBCDEIJHUIUJZVJVNMVDVBVBFCEHGSUKULUMVAVJVNVLVNVEVF
      UOVOVPVMVPVBFVBCEHUPUQUR $.
  $}

  ${
    on1el3.1 $e |- G = ( 1st ` R ) $.
    on1el3.2 $e |- X = ran G $.
    $( Obsolete as of 25-Jan-2020.  Use ~ ring1zr or ~ srg1zr instead.  The
       only unital ring with a base set consisting in one element is the zero
       ring.  (Contributed by FL, 13-Feb-2010.)  (Proof shortened by Mario
       Carneiro, 30-Apr-2015.)  (New usage is discouraged.) $)
    rngosn3 $p |- ( ( R e. RingOps /\ A e. B ) -> ( X = { A } <-> R =
       <. { <. <. A , A >. , A >. } , { <. <. A , A >. , A >. } >. ) ) $=
      ( crngo wcel wa csn wceq cfv cop cxp wf adantr syl5ibcom cvv wb c2nd c1st
      cgr wfo rngogrpo grpofo fof 3syl sqxpeqd feq23d cdm fdm syl eqcomd eqeq2d
      xpid11 syl6ib impbid simpr xpsng sylancom opex fsng sylancr 3bitrd eqeq1i
      id feq2d syl6bb anbi1d eqid rngosm sylibd pm4.71d wrel wss relrngo df-rel
      bitrd mpbi sseli eqop 3bitr4d ) CHIZABIZJZEAKZLZCUAMZAANZANKZLZJCUBMZWKLZ
      WLJZWHCWKWKNLZWFWHWNWLWFWHDWKLZWNWFWHWGWGOZWGDPZWJKZWGDPZWQWFWHWSWFEEOZED
      PZWHWSWDXCWEWDDUCIXBEDUDXCCDFUEDEGUFXBEDUGUHQZWHXBEWRWGDWHEWGWHVGZUIZXEUJ
      RWFWSXBWRLZWHWFXBDUKZLWSXGWFXHXBWFXCXHXBLXDXBEDULUMUNWSXHWRXBWRWGDULUOREW
      GUPUQURWFWRWTWGDWDWEWEWRWTLWDWEUSZAABBUTVAZVHWFWJSIZWEXAWQTAAVBZXIWJASBDV
      CVDVEDWMWKFVFVIVJWFWHWLWFWHWRWGWIPZWLWFXBEWIPZWHXMWDXNWECDWIEFWIVKGVLQWHX
      BEWRWGWIXFXEUJRWFXMWTWGWIPZWLWFWRWTWGWIXJVHWFXKWEXOWLTXLXIWJASBWIVCVDVSVM
      VNWFCSSOZIZWPWOTWDXQWEHXPCHVOHXPVPVQHVRVTWAQCWKWKSSWBUMWC $.

    $( Obsolete as of 25-Jan-2020.  Use ~ rngen1zr instead.  The only unital
       ring with one element is the zero ring.  (Contributed by FL,
       14-Feb-2010.)  (Revised by Mario Carneiro, 30-Apr-2015.)
       (New usage is discouraged.) $)
    rngosn4 $p |- ( ( R e. RingOps /\ A e. X ) -> ( X ~~ 1o <-> R =
     <. { <. <. A , A >. , A >. } , { <. <. A , A >. , A >. } >. ) ) $=
      ( crngo wcel wa c1o cen wbr csn wceq cop en1eqsnbi adantl rngosn3 bitrd
      wb ) BGHZADHZIDJKLZDAMNZBAAOAOMZUEONUBUCUDTUAADPQADBCDEFRS $.

    ${
      on1el3.3 $e |- Z = ( GId ` G ) $.
      $( Obsolete as of 25-Jan-2020.  Use ~ ringen1zr or ~ srgen1zr instead.
         The only unital ring with one element is the zero ring.  (Contributed
         by FL, 15-Feb-2010.)  (New usage is discouraged.) $)
      rngosn6 $p |- ( R e. RingOps -> ( X ~~ 1o <-> R =
        <. { <. <. Z , Z >. , Z >. } , { <. <. Z , Z >. , Z >. } >. ) ) $=
        ( crngo wcel c1o cen wbr cop csn wceq wb rngo0cl rngosn4 mpdan ) AHIDCI
        CJKLADDMDMNZTMOPABCDEFGQDABCEFRS $.
    $}
  $}

  ${
    ringnegcl.1 $e |- G = ( 1st ` R ) $.
    ringnegcl.2 $e |- X = ran G $.
    ringnegcl.3 $e |- N = ( inv ` G ) $.
    $( A ring is closed under negation.  (Contributed by Jeff Madsen,
       10-Jun-2010.) $)
    rngonegcl $p |- ( ( R e. RingOps /\ A e. X ) -> ( N ` A ) e. X ) $=
      ( crngo wcel cgr cfv rngogrpo grpoinvcl sylan ) BIJCKJAEJADLEJBCFMACDEGHN
      O $.

    ${
      ringaddneg.4 $e |- Z = ( GId ` G ) $.
      $( Adding the negative in a ring gives zero.  (Contributed by Jeff
         Madsen, 10-Jun-2010.) $)
      rngoaddneg1 $p |- ( ( R e. RingOps /\ A e. X )
            -> ( A G ( N ` A ) ) = Z ) $=
        ( crngo wcel cgr cfv co wceq rngogrpo grporinv sylan ) BKLCMLAELAADNCOF
        PBCGQAFCDEHJIRS $.

      $( Adding the negative in a ring gives zero.  (Contributed by Jeff
         Madsen, 10-Jun-2010.) $)
      rngoaddneg2 $p |- ( ( R e. RingOps /\ A e. X )
             -> ( ( N ` A ) G A ) = Z ) $=
        ( crngo wcel cgr cfv co wceq rngogrpo grpolinv sylan ) BKLCMLAELADNACOF
        PBCGQAFCDEHJIRS $.
    $}

    ringsub.4 $e |- D = ( /g ` G ) $.
    $( Subtraction in a ring, in terms of addition and negation.  (Contributed
       by Jeff Madsen, 19-Jun-2010.) $)
    rngosub $p |- ( ( R e. RingOps /\ A e. X /\ B e. X )
                                        -> ( A D B ) = ( A G ( N ` B ) ) ) $=
      ( crngo wcel cgr co cfv wceq rngogrpo grpodivval syl3an1 ) DLMENMAGMBGMAB
      COABFPEOQDEHRABCEFGIJKST $.
  $}

  ${
    $d G u x y $.  $d X u x y $.
    $( The range of an internal operation with a left and right identity
       element equals its base set.  (Contributed by FL, 24-Jan-2010.)
       (Revised by Mario Carneiro, 22-Dec-2013.)
       (New usage is discouraged.) $)
    rngmgmbs4 $p |- ( ( G : ( X X. X ) --> X /\
      E. u e. X A. x e. X ( ( u G x ) = x /\ ( x G u ) = x ) )
         -> ran G = X ) $=
      ( vy cxp wf cv co wceq wa wral wrex wfo crn r19.12 wcel simpl eqcomd syl
      oveq2 eqeq2d rspcev ex syl5 reximdv ralimia anim2i foov sylibr forn ) DDF
      ZDCGZBHZAHZCIZUOJZUOUNCIUOJZKZADLBDMZKZULDCNZCODJVAUMUOUNEHZCIZJZEDMZBDMZ
      ADLZKVBUTVHUMUTUSBDMZADLVHUSBADDPVIVGADUODQZUSVFBDUSUOUPJZVJVFUSUPUOUQURR
      SVJVKVFVEVKEUODVCUOJVDUPUOVCUOUNCUAUBUCUDUEUFUGTUHBEADDDCUIUJULDCUKT $.
  $}

  ${
    rnplrnml0.1 $e |- H = ( 2nd ` R ) $.
    rnplrnml0.2 $e |- G = ( 1st ` R ) $.
    $( In a unital ring the domain of the first variable of the addition equals
       the domain of the first variable of the multiplication.  (Contributed by
       FL, 24-Jan-2010.)  (New usage is discouraged.) $)
    rngodm1dm2 $p |- ( R e. RingOps -> dom dom G = dom dom H ) $=
      ( crngo wcel crn cxp wfo cdm wceq cgr rngogrpo eqid grpofo syl rngosm fdm
      wf fof wi wa eqtr dmeqd expcom eqcoms syl5com sylc ) AFGZBHZUKIZUKBJZULUK
      CTZBKZKCKZKLZUJBMGUMABENBUKUKOZPQABCUKEDURRUMUOULLZUNUQUMULUKBTUSULUKBUAU
      LUKBSQUNUPULLUSUQUBZULUKCSUTULUPUSULUPLZUQUSVAUCUOUPUOULUPUDUEUFUGQUHUI
      $.

    $( In a unital ring the range of the addition equals the domain of the
       first variable of the multiplication.  (Contributed by FL, 24-Jan-2010.)
       (New usage is discouraged.) $)
    rngorn1 $p |- ( R e. RingOps -> ran G = dom dom H ) $=
      ( crngo wcel crn cdm cgr wceq rngogrpo grporndm syl rngodm1dm2 eqtrd ) AF
      GZBHZBIIZCIIQBJGRSKABELBMNABCDEOP $.

    ${
      $d G x y z $.  $d H x y z $.  $d R x $.
      $( In a unital ring the range of the addition equals the range of the
         multiplication.  (Contributed by FL, 24-Jan-2010.)
         (New usage is discouraged.) $)
      rngorn1eq $p |- ( R e. RingOps -> ran G = ran H ) $=
        ( vx vy vz crngo wcel crn cxp wf cv co wceq wa wral wrex eqid cablo w3a
        rngosm rngoi simprrd rngmgmbs4 syl2anc eqcomd ) AIJZCKZBKZUIUKUKLUKCMZF
        NZGNZCOZUNPUNUMCOUNPQGUKRFUKSZUJUKPABCUKEDUKTZUCUIBUAJULQUOHNZCOUMUNURC
        OZCOPUMUNURBOCOUOUMURCOZBOPUMUNBOURCOUTUSBOPUBHUKRGUKRFUKRUPFGHABCUKEDU
        QUDUEGFCUKUFUGUH $.
    $}
  $}

  ${
    $d H x y z $.  $d R x y z $.
    unmnd.1 $e |- H = ( 2nd ` R ) $.
    $( In a unital ring the multiplication is a monoid.  (Contributed by FL,
       24-Jan-2010.)  (Revised by Mario Carneiro, 22-Dec-2013.)
       (New usage is discouraged.) $)
    rngomndo $p |- ( R e. RingOps -> H e. MndOp ) $=
      ( vx vy vz wcel cdm cxp wf cv co wceq wral wa wrex w3a eqid wb cvv rngosm
      crngo cmndo c1st cfv crn rngoass ralrimivvva cablo simprrd rngorn1 xpid11
      rngoi biimpri feq23 mpancom raleqbi1dv rexeqbi1dv 3anbi123d syl mpbir3and
      raleq eqcoms c2nd fvex eleq1 mpbiri ismndo1 mp2b sylibr ) AUBGZBHHZVLIZVL
      BJZDKZEKZBLZFKZBLVOVPVRBLZBLMZFVLNZEVLNZDVLNZVQVPMVPVOBLVPMOZEVLNZDVLPZQZ
      BUCGZVKWGAUDUEZUFZWJIZWJBJZVTFWJNZEWJNZDWJNZWDEWJNZDWJPZAWIBWJWIRZCWJRZUA
      VKVTDEFWJWJWJVOVPVRAWIBWJWRCWSUGUHVKWIUIGWLOVTVOVPVRWILBLVQVOVRBLZWILMVOV
      PWILVRBLWTVSWILMQFWJNEWJNDWJNWQDEFAWIBWJWRCWSUMUJVKWJVLMWGWLWOWQQSZAWIBCW
      RUKXAVLWJVLWJMZVNWLWCWOWFWQVMWKMZXBVNWLSXCXBVLWJULUNVMVLWKWJBUOUPWBWNDVLW
      JWAWMEVLWJVTFVLWJVBUQUQWEWPDVLWJWDEVLWJVBURUSVCUTVABAVDUEZMZBTGZWHWGSCXEX
      FXDTGAVDVEBXDTVFVGDEFTBVLVLRVHVIVJ $.
  $}

  ${
    uridm.1 $e |- H = ( 2nd ` R ) $.
    uridm.2 $e |- X = ran ( 1st ` R ) $.
    ${
      uridm.3 $e |- U = ( GId ` H ) $.
      $( The unit of a ring is an identity element for the multiplication.
         (Contributed by FL, 18-Feb-2010.)  (New usage is discouraged.) $)
      rngoidmlem $p |- ( ( R e. RingOps /\ A e. X ) ->
        ( ( U H A ) = A /\ ( A H U ) = A ) ) $=
        ( crngo wcel co wceq wa wi crn cmndo cmagm cexid eqid ex mndomgmid 3syl
        cin rngomndo cmpidelt c1st cfv wb rngorn1eq eqtr eleq2d imbi1d syl mpan
        simpl mpcom mpbird imp ) BIJZAEJZCADKALACDKALMZUSUTVANZADOZJZVANZUSDPJD
        QRUCJZVEBDFUDDUAVFVDVAACDVCVCSHUETUBBUFUGZOZVCLZUSVBVEUHZBVGDFVGSUIEVHL
        ZVIUSVJNZGVKVIMEVCLZVLEVHVCUJVMUSVJVMUSMZUTVDVAVNEVCAVMUSUOUKULTUMUNUPU
        QUR $.

      $( The unit of a ring is an identity element for the multiplication.
         (Contributed by FL, 18-Apr-2010.)  (New usage is discouraged.) $)
      rngolidm $p |- ( ( R e. RingOps /\ A e. X ) -> ( U H A ) = A ) $=
        ( crngo wcel wa co wceq rngoidmlem simpld ) BIJAEJKCADLAMACDLAMABCDEFGH
        NO $.
    $}

    ${
      uridm2.2 $e |- U = ( GId ` H ) $.
      $( The unit of a ring is an identity element for the multiplication.
         (Contributed by FL, 18-Apr-2010.)  (New usage is discouraged.) $)
      rngoridm $p |- ( ( R e. RingOps /\ A e. X ) -> ( A H U ) = A ) $=
        ( crngo wcel wa co wceq rngoidmlem simprd ) BIJAEJKCADLAMACDLAMABCDEFGH
        NO $.
    $}
  $}

  ${
    ring1cl.1 $e |- X = ran ( 1st ` R ) $.
    ring1cl.2 $e |- H = ( 2nd ` R ) $.
    ring1cl.3 $e |- U = ( GId ` H ) $.
    $( The unit of a ring belongs to the base set.  (Contributed by FL,
       12-Feb-2010.)  (New usage is discouraged.) $)
    rngo1cl $p |- ( R e. RingOps -> U e. X ) $=
      ( crngo wcel c2nd cfv crn cmagm cexid wa cmndo syl eqid cgi wceq rngomndo
      eleq1i mndoismgmOLD mndoisexid sylbi elin sylibr fveq2i eqtri iorlid c1st
      cin jca wb rngorn1eq eqtr eleq2d sylancr mpbird ) AHIZBDIZBAJKZLZIZUTVBMN
      ULIZVDUTVBMIZVBNIZOZVEUTCPIZVHACFUAVIVBPIZVHCVBPFUBVJVFVGVBUCVBUDUMUEQVBM
      NUFUGBVBVCVCRBCSKVBSKGCVBSFUHUIUJQUTDAUKKZLZTZVLVCTZVAVDUNEAVKVBVBRVKRUOV
      MVNODVCBDVLVCUPUQURUS $.
  $}

  ${
    $d R x $.  $d U x $.  $d X x $.  $d Z x $.
    uznzr.1 $e |- G = ( 1st ` R ) $.
    uznzr.2 $e |- H = ( 2nd ` R ) $.
    uznzr.3 $e |- Z = ( GId ` G ) $.
    uznzr.4 $e |- U = ( GId ` H ) $.
    uznzr.5 $e |- X = ran G $.
    $( Obsolete as of 23-Jan-2020.  Use ~ 0ring01eqbi instead.  In a unital
       ring the zero equals the unity iff the ring is the zero ring.
       (Contributed by FL, 14-Feb-2010.)  (New usage is discouraged.) $)
    rngoueqz $p |- ( R e. RingOps -> ( X ~~ 1o <-> U = Z ) ) $=
      ( vx wcel c1o wceq wi wa syl ex wral cen wbr rngo0cl csn en1eqsn crn c1st
      crngo rneqi rngo1cl eleq2 biimpd elsni syl6com eqcomi syl5com com23 mpcom
      cfv eleq2s c0 wne rngone0 cv co oveq2 ralrimivw rngorz ralrimiva rngoridm
      eqtri r19.26 eqtr eqcoms imp31 ralimi ensn1g breq1 syl5ibr syl6bir sylbir
      eqsn com3l com24 mpd com13 impbid ) AUHMZENUAUBZBFOZFEMZWHWIWJPACEFGKIUCZ
      WKWIWHWJWKWIWHWJPWKWIQEFUDZOZWHWJFEUEWHBCUFZMWNWJPZABDWOCAUGUSZGUIZHJUJWP
      BEWOWNBEMZBWMMZWJWNWSWTEWMBUKULBFUMUNEWOKUOUTRUPSUQUREVAVBZWHWJWIPACEGKVC
      WJWHXAWIWJLVDZBDVEZXBFDVEZOZLETZWHXAWIPZWJXELEBFXBDVFVGWHXDFOZLETZXFXGPZW
      HXHLEXBACDEFIKGHVHVIXCXBOZLETZWHXIXJPWHXKLEXBABDEHEWOWQUFKWRVKJVJVIXLXFXI
      WHXGXLXFXIWHXGPZPZXLXFQXKXEQZLETZXNXKXELEVLXPXIXMXPXIQXOXHQZLETZXMXOXHLEV
      LXRXBFOZLETZXMXQXSLEXKXEXHXSXEXHXSPZPXBXCXBXCOZXEYAYBXEQXBXDOZYAXBXCXDVMY
      CXHXSXBXDFVMSRSVNVOVPXAXTWHWIXAXTWNWHWIPLEFWBWHWIWNWMNUAUBZWHWKYDWLFEVQRE
      WMNUAVRVSVTWCRWASWASWDURWEUPWFURWG $.
  $}

  ${
    ringneg.1 $e |- G = ( 1st ` R ) $.
    ringneg.2 $e |- H = ( 2nd ` R ) $.
    ringneg.3 $e |- X = ran G $.
    ringneg.4 $e |- N = ( inv ` G ) $.
    ringneg.5 $e |- U = ( GId ` H ) $.
    $( Negation in a ring is the same as left multiplication by ` -u 1 ` .
       (Contributed by Jeff Madsen, 10-Jun-2010.) $)
    rngonegmn1l $p |- ( ( R e. RingOps /\ A e. X ) ->
                                            ( N ` A ) = ( ( N ` U ) H A ) ) $=
      ( wcel wa cfv co wceq crn mpdan an32s crngo rneqi eqtri rngo1cl rngonegcl
      cgi c1st rngodir 3exp2 imp42 mpidan eqid rngoaddneg1 adantr oveq1d rngolz
      jca eqtrd rngolidm 3eqtr3rd wb rngocl rngogrpo grpoinvid1 syl3an1 mpd3an3
      3expa cgr mpbird ) BUAMZAGMZNZAFOCFOZAEPZQZAVNDPZDUFOZQZVLCVMDPZAEPZCAEPZ
      VNDPZVQVPVJVKCGMZVMGMZNZVTWBQZVJWCWDBCEGGDRBUGOZRJDWGHUBUCZILUDZVJWCWDWIC
      BDFGHJKUESZUQVJWEVKWFVJWCWDVKWFVJWCWDVKWFCVMABDEGHIJUHUIUJTUKVLVTVQAEPVQV
      LVSVQAEVJVSVQQZVKVJWCWKWICBDFGVQHJKVQULZUMSUNUOABDEGVQWLJHIUPURVLWAAVNDAB
      CEGIWHLUSUOUTVJVKVNGMZVOVRVAZVJVKWDWMWJVJWDVKWMVJWDVKWMVMABDEGHIJVBVGTUKV
      JDVHMVKWMWNBDHVCAVNVQDFGJWLKVDVEVFVI $.

    $( Negation in a ring is the same as right multiplication by ` -u 1 ` .
       (Contributed by Jeff Madsen, 19-Jun-2010.) $)
    rngonegmn1r $p |- ( ( R e. RingOps /\ A e. X ) ->
                                            ( N ` A ) = ( A H ( N ` U ) ) ) $=
      ( wcel wa cfv co wceq crn mpdan adantr crngo cgi c1st rneqi eqtri rngo1cl
      rngonegcl jca rngodi 3exp2 imp43 rngoaddneg2 oveq2d rngorz eqtrd rngoridm
      eqid 3eqtr3rd wb rngocl mpd3an3 cgr rngogrpo grpoinvid2 syl3an1 mpbird )
      BUAMZAGMZNZAFOACFOZEPZQZVKADPZDUBOZQZVIAVJCDPZEPZVKACEPZDPZVNVMVIVJGMZCGM
      ZNVQVSQZVIVTWAVGVTVHVGWAVTBCEGGDRBUCOZRJDWCHUDUEZILUFZCBDFGHJKUGSTZVGWAVH
      WETUHVGVHVTWAWBVGVHVTWAWBAVJCBDEGHIJUIUJUKSVIVQAVNEPVNVIVPVNAEVGVPVNQZVHV
      GWAWGWECBDFGVNHJKVNUQZULSTUMABDEGVNWHJHIUNUOVIVRAVKDABCEGIWDLUPUMURVGVHVK
      GMZVLVOUSZVGVHVTWIWFAVJBDEGHIJUTVAVGDVBMVHWIWJBDHVCAVKVNDFGJWHKVDVEVAVF
      $.
  $}

  ${
    ringnegmul.1 $e |- G = ( 1st ` R ) $.
    ringnegmul.2 $e |- H = ( 2nd ` R ) $.
    ringnegmul.3 $e |- X = ran G $.
    ringnegmul.4 $e |- N = ( inv ` G ) $.
    $( Negation of a product in a ring.  (Contributed by Jeff Madsen,
       19-Jun-2010.) $)
    rngoneglmul $p |- ( ( R e. RingOps /\ A e. X /\ B e. X )
                                -> ( N ` ( A H B ) ) = ( ( N ` A ) H B ) ) $=
      ( crngo wcel w3a cfv co wceq wi crn rngonegmn1l cgi c1st rneqi eqtri eqid
      rngo1cl rngonegcl mpdan rngoass 3exp2 3imp 3adant3 oveq1d wa rngocl 3expb
      mpd syldan 3impb 3eqtr4rd ) CLMZAGMZBGMZNZEUAOZFOZAEPZBEPZVFABEPZEPZAFOZB
      EPVIFOZVAVBVCVHVJQZVAVFGMZVBVCVMRRVAVEGMVNCVEEGGDSCUBOZSJDVOHUCUDIVEUEZUF
      VECDFGHJKUGUHVAVNVBVCVMVFABCDEGHIJUIUJUQUKVDVKVGBEVAVBVKVGQVCACVEDEFGHIJK
      VPTULUMVAVBVCVLVJQZVAVBVCUNVIGMZVQVAVBVCVRABCDEGHIJUOUPVICVEDEFGHIJKVPTUR
      USUT $.

    $( Negation of a product in a ring.  (Contributed by Jeff Madsen,
       19-Jun-2010.) $)
    rngonegrmul $p |- ( ( R e. RingOps /\ A e. X /\ B e. X )
                                -> ( N ` ( A H B ) ) = ( A H ( N ` B ) ) ) $=
      ( crngo wcel w3a co cfv wceq wi crn rngonegmn1r cgi c1st rneqi eqtri eqid
      rngo1cl rngonegcl mpdan rngoass 3exp2 com24 com34 mpd rngocl 3expb syldan
      3imp wa 3impb 3adant2 oveq2d 3eqtr4d ) CLMZAGMZBGMZNZABEOZEUAPZFPZEOZABVI
      EOZEOZVGFPZABFPZEOVCVDVEVJVLQZVCVIGMZVDVEVORRVCVHGMVPCVHEGGDSCUBPZSJDVQHU
      CUDIVHUEZUFVHCDFGHJKUGUHVCVPVEVDVOVCVDVEVPVOVCVDVEVPVOABVICDEGHIJUIUJUKUL
      UMUQVCVDVEVMVJQZVCVDVEURVGGMZVSVCVDVEVTABCDEGHIJUNUOVGCVHDEFGHIJKVRTUPUSV
      FVNVKAEVCVEVNVKQVDBCVHDEFGHIJKVRTUTVAVB $.
  $}

  ${
    ringsubdi.1 $e |- G = ( 1st ` R ) $.
    ringsubdi.2 $e |- H = ( 2nd ` R ) $.
    ringsubdi.3 $e |- X = ran G $.
    ringsubdi.4 $e |- D = ( /g ` G ) $.
    $( Ring multiplication distributes over subtraction.  (Contributed by Jeff
       Madsen, 19-Jun-2010.) $)
    rngosubdi $p |- ( ( R e. RingOps /\ ( A e. X /\ B e. X /\ C e. X ) )
                          -> ( A H ( B D C ) ) = ( ( A H B ) D ( A H C ) ) ) $=
      ( wcel w3a wa co cfv wceq rngosub eqtr4d cgn eqid 3adant3r1 oveq2d rngocl
      crngo 3adant3r3 3adant3r2 jca 3expb syldan idd rngonegcl ex 3anim123d imp
      rngodi rngonegrmul ) EUFMZAHMZBHMZCHMZNZOZABCDPZGPABCFUAQZQZFPZGPZABGPZAC
      GPZDPZVDVEVHAGUSVAVBVEVHRUTBCDEFVFHIKVFUBZLSUCUDVDVLVJVKVFQZFPZVIUSVCVJHM
      ZVKHMZOVLVORZVDVPVQUSUTVAVPVBABEFGHIJKUEUGUSUTVBVQVAACEFGHIJKUEUHUIUSVPVQ
      VRVJVKDEFVFHIKVMLSUJUKVDVIVJAVGGPZFPZVOUSVCUTVAVGHMZNZVIVTRUSVCWBUSUTUTVA
      VAVBWAUSUTULUSVAULUSVBWACEFVFHIKVMUMUNUOUPABVGEFGHIJKUQUKVDVNVSVJFUSUTVBV
      NVSRVAACEFGVFHIJKVMURUHUDTTT $.

    $( Ring multiplication distributes over subtraction.  (Contributed by Jeff
       Madsen, 19-Jun-2010.) $)
    rngosubdir $p |- ( ( R e. RingOps /\ ( A e. X /\ B e. X /\ C e. X ) )
                          -> ( ( A D B ) H C ) = ( ( A H C ) D ( B H C ) ) ) $=
      ( wcel w3a wa co cfv wceq rngosub eqtr4d cgn eqid 3adant3r3 oveq1d rngocl
      crngo 3adant3r2 3adant3r1 jca 3expb syldan idd rngonegcl ex 3anim123d imp
      rngodir rngoneglmul oveq2d ) EUFMZAHMZBHMZCHMZNZOZABDPZCGPABFUAQZQZFPZCGP
      ZACGPZBCGPZDPZVEVFVICGUTVAVBVFVIRVCABDEFVGHIKVGUBZLSUCUDVEVMVKVLVGQZFPZVJ
      UTVDVKHMZVLHMZOVMVPRZVEVQVRUTVAVCVQVBACEFGHIJKUEUGUTVBVCVRVABCEFGHIJKUEUH
      UIUTVQVRVSVKVLDEFVGHIKVNLSUJUKVEVJVKVHCGPZFPZVPUTVDVAVHHMZVCNZVJWARUTVDWC
      UTVAVAVBWBVCVCUTVAULUTVBWBBEFVGHIKVNUMUNUTVCULUOUPAVHCEFGHIJKUQUKVEVOVTVK
      FUTVBVCVOVTRVABCEFGVGHIJKVNURUHUSTTT $.
  $}

  ${
    zerdivempx.1 $e |- G = ( 1st ` R ) $.
    zerdivempx.2 $e |- H = ( 2nd ` R ) $.
    zerdivempx.3 $e |- Z = ( GId ` G ) $.
    zerdivempx.4 $e |- X = ran G $.
    zerdivempx.5 $e |- U = ( GId ` H ) $.
    $d A a $.  $d B a $.  $d H a $.  $d R a $.  $d X a $.  $d Z a $.
    $( In a unitary ring a left invertible element is not a zero divisor.  See
       also ~ ringinvnzdiv .  (Contributed by Jeff Madsen, 18-Apr-2010.) $)
    zerdivemp1x $p |- ( ( R e. RingOps /\ A e. X /\ E. a e. X ( a H A ) = U )
       -> ( B e. X -> ( ( A H B ) = Z -> B = Z ) ) ) $=
      ( wcel co wceq wi w3a 3exp crngo cv oveq2 wa simpl1 simpr1 simpr3 rngoass
      wrex simpl3 syl13anc eqtr ex rngorz 3adant3 crn c1st rneqi eqtri rngolidm
      cfv 3adant2 simp1 simp2 simp3 3eqtr3d com14 com13 sylc com15 com24 eqcoms
      a1d syl com25 oveq1 syl11 3imp syl6 3imp1 mpd 3exp1 syl5com rexlimiv ) CU
      AOZAGOZIUBZAFPZDQZIGUIZBGOZABFPZHQZBHQZRRZWJWFWEWOWIWFWEWORZRIGWGGOZWIWFW
      PWMWEWKWQWIWFSZWNWMWGWLFPZWGHFPZQZWEWKWRWNRRWLHWGFUCWEXAWKWRWNWEXAWKSZWRU
      DZWHBFPZWSQZWNXCWEWQWFWKXEWEXAWKWRUEXBWQWIWFUFXBWQWIWFUGWEXAWKWRUJWGABCEF
      GJKMUHUKWEXAWKWRXEWNRXEXAWKWRWEWNXEXAXDWTQZWKWRWEWNRZRRXEXAXFXDWSWTULUMWR
      WKXFXGWQWIWFWKXFXGRRZXDDBFPZQZWQWFXHRWIXJXFWFWKWQXGXFWFWKWQXGRRRZRXIXDXIX
      DQZXFXKXLXFUDXIWTQZXKXIXDWTULXMWQWKWFXGWEWQWKWFXMWNWEWQWKWFXMWNRZRZWEWQWK
      SWTHQZXIBQZXOWEWQXPWKWGCEFGHLMJKUNUOWEWKXQWQBCDFGKGEUPCUQVAZUPMEXRJURUSNU
      TVBWFXQXPXNXMXQXPWFWNXMXQXPWFWNRXMXQXPSZWNWFXSXIWTBHXMXQXPVCXMXQXPVDXMXQX
      PVEVFVMTVGVHVITVJVKVNUMVLVOWHDBFVPVQVRVHVSVJVTWAWBWCVGTWDVHVR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Division Rings
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c DivRingOps $.

  $( Extend class notation with the class of all division rings. $)
  cdrng $a class DivRingOps $.

  ${
    $d g h $.
    $( Define the class of all division rings (sometimes called skew fields).
       A division ring is a unital ring where every element except the additive
       identity has a multiplicative inverse.  (Contributed by NM, 4-Apr-2009.)
       (New usage is discouraged.) $)
    df-drngo $a |- DivRingOps = { <. g , h >. | ( <. g , h >. e. RingOps
       /\ ( h |` (
 ( ran g \ { ( GId ` g ) } ) X. ( ran g \ { ( GId ` g ) } ) ) ) e. GrpOp ) } $.
  $}

  ${
    $d G g h $.  $d H g h $.  $d x y $.
    $( The predicate "is a division ring".  (Contributed by FL, 6-Sep-2009.)
       (New usage is discouraged.) $)
    isdivrngo $p |- ( H e. A -> ( <. G , H >. e. DivRingOps
     <-> ( <. G , H >. e. RingOps /\ ( H |` (
       ( ran G \ { ( GId ` G ) } ) X. ( ran G \ { ( GId ` G ) } ) ) )
         e. GrpOp ) ) ) $=
      ( vx vy vg vh wcel cop cdrng crngo crn cgi cfv csn cres cgr wa cv eleq1d
      cdif cxp cvv wbr df-br df-drngo relopabi brrelexi sylbir anim1i rngoablo2
      ancoms cablo elex ad2antrl simpl copab eleq2i wceq opeq1 rneq fveq2 sneqd
      syl jca difeq12d sqxpeqd reseq2d anbi12d reseq1 opelopabg syl5bb pm5.21nd
      opeq2 ) CAHZBCIZJHZVPKHZCBLZBMNZOZUAZWBUBZPZQHZRZBUCHZVORZVQVOWHVQWGVOVQB
      CJUDWGBCJUEBCJDSZESZIKHWJWILWIMNOUAZWKUBPQHRDEJDEUFUGUHUIUJULVOWFRWGVOVRW
      GVOWEVRBUMHWGBCUKBUMUNVDUOVOWFUPVEVQVPFSZGSZIZKHZWMWLLZWLMNZOZUAZWSUBZPZQ
      HZRZFGUQZHWHWFJXDVPFGUFURXCBWMIZKHZWMWCPZQHZRWFFGBCUCAWLBUSZWOXFXBXHXIWNX
      EKWLBWMUTTXIXAXGQXIWTWCWMXIWSWBXIWPVSWRWAWLBVAXIWQVTWLBMVBVCVFVGVHTVIWMCU
      SZXFVRXHWEXJXEVPKWMCBVNTXJXGWDQWMCWCVJTVIVKVLVM $.
  $}

  ${
    $d g h H $.  $d g h R $.  $d g h X $.  $d g h Z $.
    drngi.1 $e |- G = ( 1st ` R ) $.
    drngi.2 $e |- H = ( 2nd ` R ) $.
    drngi.3 $e |- X = ran G $.
    drngi.4 $e |- Z = ( GId ` G ) $.
    $( The properties of a division ring.  (Contributed by NM, 4-Apr-2009.)
       (New usage is discouraged.) $)
    drngoi $p |- ( R e. DivRingOps -> ( R e. RingOps /\
        ( H |` ( ( X \ { Z } ) X. ( X \ { Z } ) ) ) e. GrpOp ) ) $=
      ( vg vh cdrng wcel crngo cres cgr wa cfv cop eleq1d csn cdif c1st c2nd cv
      cxp crn copab wceq opeq1 id syl6eqr rneqd fveq2d difeq12d sqxpeqd reseq2d
      sneqd anbi12d opeq2 anbi1d syl6reqr reseq1d anbi2d bitr4d df-drngo eleq2s
      cgi elopabi wrel relopabi 1st2nd mpan mpbird ) ALMZANMZCDEUAZUBZVRUFZOZPM
      ZQAUCRZAUDRZSZNMZWAQZWFAJUEZKUEZSZNMZWHWGUGZWGVHRZUAZUBZWNUFZOZPMZQZJKUHL
      WRWBWHSZNMZWHVSOZPMZQZWFJKAWGWBUIZWJWTWQXBXDWIWSNWGWBWHUJTXDWPXAPXDWOVSWH
      XDWNVRXDWKDWMVQXDWKBUGDXDWGBXDWGWBBXDUKFULZUMHULXDWLEXDWLBVHREXDWGBVHXEUN
      IULURUOUPUQTUSWHWCUIZXCWEXBQWFXFWTWEXBXFWSWDNWHWCWBUTTVAXFWAXBWEXFVTXAPXF
      CWHVSXFWHWCCXFUKGVBVCTVDVEVIJKVFZVGVOVPWEWAVOAWDNLVJVOAWDUIWRJKLXGVKALVLV
      MTVAVN $.
  $}

  ${
    ablsn.1 $e |- A e. _V $.
    $( Obsolete as of 23-Jan-2020.  Use ~ mnd1id instead.  The identity element
       of the trivial group.  (Contributed by FL, 21-Jun-2010.)  (Proof
       shortened by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    gidsn $p |- ( GId ` { <. <. A , A >. , A >. } ) = A $=
      ( cop csn cgr wcel cgi cfv wceq grposnOLD crn opex rnsnop eqcomi grpoidcl
      eqid elsni mp2b ) AACZACDZEFTGHZADZFUAAIABJUATUBTKUBSAAALMNUAPOUAAQR $.
  $}

  ${
    zrdivrng.1 $e |- A e. _V $.
    $( The zero ring is not a division ring.  (Contributed by FL, 24-Jan-2010.)
       (Proof shortened by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    zrdivrng $p |-
         -. <. { <. <. A , A >. , A >. } , { <. <. A , A >. , A >. } >. e.
         DivRingOps $=
      ( cop csn cdrng wcel c0 cgr 0ngrp crn cgi cfv cdif cres opex rnsnop gidsn
      cxp eqtri cvv sneqi difeq12i difid xpeq2i reseq2i res0 crngo wa isdivrngo
      xp0 wb snex ax-mp simprbi syl5eqelr mto ) AACZACZDZUSCZEFZGHFIVAGUSUSJZUS
      KLZDZMZVERZNZHVGUSGNGVFGUSVFVEGRGVEGVEVEADZVHMGVBVHVDVHUQAAAOPVCAABQUAUBV
      HUCSUDVEUJSUEUSUFSVAUTUGFZVGHFZUSTFVAVIVJUHUKURULTUSUSUIUMUNUOUP $.
  $}

  ${
    dvrunz.1 $e |- G = ( 1st ` R ) $.
    dvrunz.2 $e |- H = ( 2nd ` R ) $.
    dvrunz.3 $e |- X = ran G $.
    dvrunz.4 $e |- Z = ( GId ` G ) $.
    dvrunz.5 $e |- U = ( GId ` H ) $.
    $( In a division ring the unit is different from the zero.  (Contributed by
       FL, 14-Feb-2010.)  (Revised by Mario Carneiro, 15-Dec-2013.)
       (New usage is discouraged.) $)
    dvrunz $p |- ( R e. DivRingOps -> U =/= Z ) $=
      ( cdrng wcel cop csn wn cgi wceq wb syl wne cfv cvv fvex eqeltri zrdivrng
      c1o cen wbr crngo cdif cxp cres cgr drngoi simpld rngoueqz rngosn6 biimpd
      wi eleq1 syl6bi pm2.43a sylbird necon3bd mpi ) ALMZFFNFNOZVHNZLMZPBFUAFFC
      QUBUCJCQUDUEUFVGVJBFVGBFRZEUGUHUIZVJVGAUJMZVLVKSVGVMDEFOUKZVNULUMUNMACDEF
      GHIJUOUPZABCDEFGHJKIUQTVLVGVJVGVLAVIRZVGVJUTVGVMVLVPSVOACEFGIJURTVPVGVJAV
      ILVAUSVBVCVDVEVF $.
  $}

  ${
    $d ph u x y z $.  $d G u n x y z $.  $d X u n x y z $.  $d U u n x y z $.
    isgrpda.1 $e |- ( ph -> X e. _V ) $.
    isgrpda.2 $e |- ( ph -> G : ( X X. X ) --> X ) $.
    isgrpda.3 $e |- ( ( ph /\ ( x e. X /\ y e. X /\ z e. X ) )
                            -> ( ( x G y ) G z ) = ( x G ( y G z ) ) ) $.
    isgrpda.4 $e |- ( ph -> U e. X ) $.
    isgrpda.5 $e |- ( ( ph /\ x e. X ) -> ( U G x ) = x ) $.
    isgrpda.6 $e |- ( ( ph /\ x e. X ) -> E. n e. X ( n G x ) = U ) $.
    $( Properties that determine a group operation.  (Contributed by Jeff
       Madsen, 1-Dec-2009.)  (New usage is discouraged.) $)
    isgrpda $p |- ( ph -> G e. GrpOp ) $=
      ( vu co wceq wral wrex cvv cgr wcel crn wf cv wa ralrimivvva oveq1 eqeq1d
      cxp w3a cbvrexv sylibr jca ralrimiva eqeq2 rexbidv anbi12d ralbidv rspcev
      syl2anc wfo adantr simpr eqcomd rspceov syl3anc foov sylanbrc syl sqxpeqd
      forn feq23d raleqdv raleqbidv rexeqdv rexeqbidv 3anbi123d mpbir3and xpexg
      anbi2d wb fex eqid isgrpo mpbird ) AGUAUBZGUCZWHUJZWHGUDZBUEZCUEZGPDUEZGP
      WKWLWMGPZGPQZDWHRZCWHRZBWHRZOUEZWKGPZWKQZWLWKGPZWSQZCWHSZUFZBWHRZOWHSZUKZ
      AXHHHUJZHGUDZWODHRZCHRZBHRZXAXCCHSZUFZBHRZOHSZJAWOBCDHHHKUGAEHUBZEWKGPZWK
      QZXBEQZCHSZUFZBHRZXQLAYCBHAWKHUBZUFZXTYBMYFFUEZWKGPZEQZFHSYBNYAYICFHWLYGQ
      XBYHEWLYGWKGUHUIULUMUNUOXPYDOEHWSEQZXOYCBHYJXAXTXNYBYJWTXSWKWSEWKGUHUIYJX
      CYACHWSEXBUPUQURUSUTVAAWJXJWRXMXGXQAWIWHXIHGAWHHAXIHGVBZWHHQAXJWKWNQDHSCH
      SZBHRYKJAYLBHYFXRYEWKXSQYLAXRYELVCAYEVDYFXSWKMVECDHHEWKWKGVFVGUOCDBHHHGVH
      VIXIHGVLVJZVKYMVMAWQXLBWHHYMAWPXKCWHHYMAWODWHHYMVNVOVOAXFXPOWHHYMAXEXOBWH
      HYMAXDXNXAAXCCWHHYMVPWAVOVQVRVSAGTUBZWGXHWBAXJXITUBZYNJAHTUBZYPYOIIHHTTVT
      VAXIHTGWCVABCDOTGWHWHWDWEVJWF $.
  $}

  ${
    $d g h $.
    isdivrng1.1 $e |- G = ( 1st ` R ) $.
    isdivrng1.2 $e |- H = ( 2nd ` R ) $.
    isdivrng1.3 $e |- Z = ( GId ` G ) $.
    isdivrng1.4 $e |- X = ran G $.
    $( The predicate "is a division ring".  (Contributed by Jeff Madsen,
       8-Jun-2010.) $)
    isdrngo1 $p |- ( R e. DivRingOps <-> ( R e. RingOps /\
             ( H |` ( ( X \ { Z } ) X. ( X \ { Z } ) ) ) e. GrpOp ) ) $=
      ( vg vh cdrng wcel cfv cop crngo csn cdif cgr wa c1st c2nd wceq cres wrel
      cxp cv crn df-drngo relopabi 1st2nd mpan relrngo adantr wb opeq12i eqeq2i
      cgi cvv fvex eqeltri isdivrngo ax-mp sneqi difeq12i xpeq12i eleq1i anbi2i
      reseq2i bitr4i eleq1 anbi1d bibi12d mpbiri sylbir pm5.21nii ) ALMZAAUANZA
      UBNZOZUCZAPMZCDEQZRZWDUFZUDZSMZTZLUEVQWAJUGZKUGZOPMWJWIUHWIURNQRZWKUFUDSM
      TJKLJKUIUJALUKULWBWAWGPUEWBWAUMAPUKULUNWAABCOZUCZVQWHUOZWLVTABVRCVSFGUPUQ
      WMWNWLLMZWLPMZWGTZUOWOWPCBUHZBURNZQZRZXAUFZUDZSMZTZWQCUSMWOXEUOCVSUSGAUBU
      TVAUSBCVBVCWGXDWPWFXCSWEXBCWDXAWDXADWRWCWTIEWSHVDVEZXFVFVIVGVHVJWMVQWOWHW
      QAWLLVKWMWBWPWGAWLPVKVLVMVNVOVP $.

    $( The product of two nonzero elements of a division ring is nonzero.
       (Contributed by Jeff Madsen, 9-Jun-2010.) $)
    divrngcl $p |- ( ( R e. DivRingOps /\ A e. ( X \ { Z } )
                    /\ B e. ( X \ { Z } ) ) -> ( A H B ) e. ( X \ { Z } ) ) $=
      ( wcel cxp wa co wceq adantl cdm wss eleq2d cdrng crngo csn cdif cres cgr
      isdrngo1 ovres crn wi grpocl 3expib grporndm difss xpss12 mp2an wf rngosm
      eqid fdm syl5sseqr ssdmres sylib adantr dmeqd dmxpid syl6eq eqtrd anbi12d
      syl 3imtr3d imp eqeltrrd 3impb syl3an1b ) CUALCUBLZEFGUCZUDZVRMZUEZUFLZNZ
      AVRLZBVRLZABEOZVRLZCDEFGHIJKUGWBWCWDWFWBWCWDNZNABVTOZWEVRWGWHWEPWBABVRVRE
      UHQWBWGWHVRLZWBAVTUIZLZBWJLZNZWHWJLZWGWIWAWMWNUJVPWAWKWLWNABVTWJWJUSUKULQ
      WBWKWCWLWDWBWJVRAWBWJVTRZRZVRWAWJWPPVPVTUMQWBWPVSRVRWBWOVSVPWOVSPZWAVPVSE
      RZSWQVPFFMZVSWRVRFSZWTVSWSSFVQUNZXAVRFVRFUOUPVPWSFEUQWRWSPCDEFHIKURWSFEUT
      VJVAVSEVBVCVDVEVRVFVGVHZTWBWJVRBXBTVIWBWJVRWHXBTVKVLVMVNVO $.

    $d H x y u v w z $.  $d X x y u v w z $.  $d Z x y u v w z $.
    $d R x y u v w z $.  $d U x y u v w z $.
    isdivrng2.5 $e |- U = ( GId ` H ) $.
    $( A division ring is a ring in which ` 1 =/= 0 ` and every nonzero element
       is invertible.  (Contributed by Jeff Madsen, 8-Jun-2010.) $)
    isdrngo2 $p |- ( R e. DivRingOps <-> ( R e. RingOps /\ ( U =/= Z /\
             A. x e. ( X \ { Z } ) E. y e. ( X \ { Z } ) ( y H x ) = U ) ) ) $=
      ( vz wcel wa co wceq wrex adantr vu vv vw cdrng csn cdif cxp cres cgr wne
      crngo cv wral isdrngo1 dvrunz sylbir crn cdm grporndm adantl difss xpss12
      wss mp2an wf rngosm fdm syl5sseqr ssdmres sylib dmeqd dmxpid syl6eq eqtrd
      syl eleq2d biimpar cgn cfv grpoinvcl adantll cgi grpolinv cmagm cexid cin
      eqid cmndo rngomndo mndomgmid sseqtri rngorn1eq syl5sseq c1st rneqi eqtri
      rngo1cl eldifsn sylanbrc grpomndo mndoismgmOLD exidresid syl31anc syl2anc
      oveq1 eqeq1d rspcev syldan wb ovres ancoms rexbidva bitrd mpbid ralrimiva
      rexeqdv jca cvv fvex eqeltri rnex difexg mp1i wfn fnssres sylancl anim12i
      ffn eldifi 3expb sylan2 adantlr weq wi sylan2b adantlrl w3a sylan 3eqtr4d
      ovresd rngocl oveq2 rexbidv rspcv imdistanri ssrexv ax-mp syl3an3 syl3an2
      zerdivemp1x imp necon3d impr an32s ancom2s an42s eqeltrd ralrimivva ffnov
      3adantr3 simpr3 3adant3 oveq1d 3adant1 oveq2d 3adant3r1 3anim123i rngoass
      simpr1 fovrn anim1i sylibr adantrr rspcva cbvrexv isgrpda impbida pm5.32i
      rngolidm adantlrr bitri ) CUDOZCUKOZFGHUEZUFZUWEUGZUHZUIOZPZUWCDHUJZBULZA
      ULZFQZDRZBUWESZAUWEUMZPZPZCEFGHIJKLUNZUWCUWHUWQUWCUWHUWQUWIUWJUWPUWIUWBUW
      JUWSCDEFGHIJLKMUOUPZUWIUWOAUWEUWIUWLUWEOZPZUWKUWLUWGQZDRZBUWGUQZSZUWOUWIU
      XAUWLUXEOZUXFUWIUXGUXAUWIUXEUWEUWLUWIUXEUWGURZURZUWEUWHUXEUXIRUWCUWGUSUTU
      WIUXIUWFURUWEUWIUXHUWFUWIUWFFURZVCZUXHUWFRUWCUXKUWHUWCGGUGZUWFUXJUWEGVCZU
      XMUWFUXLVCZGUWDVAZUXOUWEGUWEGVBVDZUWCUXLGFVEZUXJUXLRCEFGIJLVFZUXLGFVGVOVH
      TUWFFVIVJVKUWEVLVMVNZVPVQUWIUXGPZUWLUWGVRVSZVSZUXEOZUYBUWLUWGQZDRZUXFUWHU
      XGUYCUWCUWLUWGUYAUXEUXEWGZUYAWGZVTWAUXTUYDUWGWBVSZDUWHUXGUYDUYHRUWCUWLUYH
      UWGUYAUXEUYFUYHWGUYGWCWAUWIUYHDRZUXGUWIFWDWEWFOZUWEFUQZVCZDUWEOZUWGWDOZUY
      IUWCUYJUWHUWCFWHOUYJCFJWIFWJVOTUWCUYLUWHUWCEUQZUWEUYKUWEGUYOUXOLWKCEFJIWL
      WMTUWIDGOZUWJUYMUWCUYPUWHCDFGGUYOCWNVSZUQLEUYQIWOWPZJMWQZTUWTDGHWRZWSUWHU
      YNUWCUWHUWGWHOUYNUWGWTUWGXAVOUTDFUWGUYKUWEUYKWGMUWGWGXBXCTVNUXDUYEBUYBUXE
      UWKUYBRUXCUYDDUWKUYBUWLUWGXEXFXGXDXHUXBUXFUXDBUWESZUWOUXBUXDBUXEUWEUWIUXE
      UWERUXAUXSTXPUXAVUAUWOXIUWIUXAUXDUWNBUWEUXAUWKUWEOZPUXCUWMDVUBUXAUXCUWMRU
      WKUWLUWEUWEFXJXKXFXLUTXMXNXOXQUWRUAUBUCDNUWGUWEGXROUWEXROUWRGUYOXRLEEUYQX
      RICWNXSXTYAXTGUWDXRYBYCUWRUWGUWFYDZUAULZUBULZUWGQZUWEOZUBUWEUMUAUWEUMUWFU
      WEUWGVEZUWRFUXLYDZUXNVUCUWCVUIUWQUWCUXQVUIUXRUXLGFYHVOTUXPUXLUWFFYEYFUWRV
      UGUAUBUWEUWEUWRVUDUWEOZVUEUWEOZPZPZVUFVUDVUEFQZUWEVULVUFVUNRZUWRVUDVUEUWE
      UWEFXJZUTVUMVUNGOZVUNHUJZVUNUWEOZUWCVULVUQUWQVULUWCVUDGOZVUEGOZPVUQVUJVUT
      VUKVVAVUDGUWDYIZVUEGUWDYIZYGUWCVUTVVAVUQVUDVUECEFGIJLUUAYJYKYLUWCUWPVULVU
      RUWJUWCVUKUWPVUJVURUWPVUJPUWCVUKPZUWKVUDFQZDRZBUWESZVUJPVURVUJUWPVVGUWOVV
      GAVUDUWEAUAYMZUWNVVFBUWEVVHUWMVVEDUWLVUDUWKFUUBXFUUCZUUDUUEVVDVUJVVGVURUW
      CVUJVVGPZVUKVURVUKUWCVVJPZVVAVUEHUJZPVURVUEGHWRVVKVVAVVLVURVVKVVAPVUNHVUE
      HVVKVVAVUNHRVUEHRYNZUWCVUJVVGVVAVVMYNZVUJUWCVUTVVGVVNVVBVVGUWCVUTVVFBGSZV
      VNUXMVVGVVOYNUXOVVFBUWEGUUFUUGVUDVUECDEFGHBIJKLMUUJUUHUUIYJUUKUULUUMYOUUN
      UUOYKUUPYPVUNGHWRWSZUUQUURUAUBUWEUWEUWEUWGUUSWSZUWRVUJVUKUCULZUWEOZYQZPZV
      UNVVRUWGQVUNVVRFQZVUFVVRUWGQVUDVUEVVRUWGQZUWGQZVWAVUNVVRFUWEUWRVUJVUKVUSV
      VSVVPUUTUWRVUJVUKVVSUVAYTVWAVUFVUNVVRUWGVVTVUOUWRVUJVUKVUOVVSVUPUVBUTUVCV
      WAVUDVWCFQVUDVUEVVRFQZFQZVWDVWBVWAVWCVWEVUDFVVTVWCVWERZUWRVUKVVSVWGVUJVUE
      VVRUWEUWEFXJUVDUTUVEVWAVUDVWCFUWEUWRVUJVUKVVSUVIUWRVUHVVTVWCUWEOZVVQVUHVU
      KVVSVWHVUJVUEVVRUWEUWEUWEUWGUVJUVFYRYTUWCVVTVWBVWFRZUWQVVTUWCVUTVVAVVRGOZ
      YQVWIVUJVUTVUKVVAVVSVWJVVBVVCVVRGUWDYIUVGVUDVUEVVRCEFGIJLUVHYKYLYSYSUWCUW
      JUYMUWPUWCUWJPZUYPUWJPUYMUWCUYPUWJUYSUVKUYTUVLZUVMUWCUWJVUJDVUDUWGQZVUDRU
      WPVWKVUJPVWMDVUDFQZVUDVWKUYMVUJVWMVWNRVWLDVUDUWEUWEFXJYRUWCVUJVWNVUDRZUWJ
      VUJUWCVUTVWOVVBVUDCDFGJUYRMUVSYKYLVNUVTUWCUWPVUJNULZVUDUWGQZDRZNUWESZUWJU
      WPVUJVWSUWCVUJUWPVWSVUJUWPVVGVWSUWOVVGAVUDUWEVVIUVNVVGVUJVWPVUDFQZDRZNUWE
      SZVWSVVFVXABNUWEBNYMVVEVWTDUWKVWPVUDFXEXFUVOVUJVWSVXBVUJVWRVXANUWEVWPUWEO
      ZVUJVWRVXAXIVXCVUJPVWQVWTDVWPVUDUWEUWEFXJXFXKXLVQYOXHXKWAYPUVPUVQUVRUWA
      $.

    $( A division ring is a ring in which ` 1 =/= 0 ` and every nonzero element
       is invertible.  (Contributed by Jeff Madsen, 10-Jun-2010.) $)
    isdrngo3 $p |- ( R e. DivRingOps <-> ( R e. RingOps /\ ( U =/= Z /\
                        A. x e. ( X \ { Z } ) E. y e. X ( y H x ) = U ) ) ) $=
      ( wcel wne cv co wceq wrex wa cdrng crngo csn cdif isdrngo2 wb eldifi wss
      wral wi difss ssrexv ax-mp neeq1 biimparc rngolz oveq1 syl5ibrcom necon3d
      eqeq1d sylan2 an4s anassrs pm3.2 syl5com eldifsn syl6ibr imdistanda ancom
      imp 3imtr4g reximdv2 impbid2 ralbidva pm5.32da pm5.32i bitri ) CUANCUBNZD
      HOZBPZAPZFQZDRZBGHUCZUDZSZAWEUIZTZTVRVSWCBGSZAWEUIZTZTABCDEFGHIJKLMUEVRWH
      WKVRVSWGWJVRVSTZWFWIAWEWAWENWLWAGNZWFWIUFWAGWDUGWLWMTZWFWIWEGUHWFWIUJGWDU
      KWCBWEGULUMWNWCWCBGWEWNWCVTGNZTWCVTWENZTWOWCTWPWCTWNWCWOWPWNWCTZWOWOVTHOZ
      TZWPWQWRWOWSWLWMWCWRVRWMVSWCWRVSWCTVRWMTZWBHOZWRWCXAVSWBDHUNUOWTXAWRWTVTH
      WBHWTWBHRVTHRZHWAFQZHRWACEFGHKLIJUPXBWBXCHVTHWAFUQUTURUSVJVAVBVCWOWRVDVEV
      TGHVFVGVHWOWCVIWPWCVIVKVLVMVAVNVOVPVQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ring homomorphisms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c RngHom $.
  $c RngIso $.
  $c ~=R $.

  $( Extend class notation with the class of ring homomorphisms. $)
  crnghom $a class RngHom $.

  $( Extend class notation with the class of ring isomorphisms. $)
  crngiso $a class RngIso $.

  $( Extend class notation with the ring isomorphism relation. $)
  crisc $a class ~=R $.

  ${
    $d r s f x y $.
    $( Define the function which gives the set of ring homomorphisms between
       two given rings.  (Contributed by Jeff Madsen, 19-Jun-2010.) $)
    df-rngohom $a |- RngHom = ( r e. RingOps , s e. RingOps |->
      { f e. ( ran ( 1st ` s ) ^m ran ( 1st ` r ) ) |
        ( ( f ` ( GId ` ( 2nd ` r ) ) ) = ( GId ` ( 2nd ` s ) ) /\
          A. x e. ran ( 1st ` r ) A. y e. ran ( 1st ` r )
 ( ( f ` ( x ( 1st ` r ) y ) ) = ( ( f ` x ) ( 1st ` s ) ( f ` y ) ) /\
   ( f ` ( x ( 2nd ` r ) y ) ) = ( ( f ` x ) ( 2nd ` s ) ( f ` y ) ) ) ) } ) $.
  $}

  ${
    $d f x y F $.  $d f r s G $.  $d f r s H $.  $d f r s J $.  $d f r s y Y $.
    $d f r s K $.  $d f r s x y R $.  $d f r s x y S $.  $d f r s x y X $.
    $d f r s U $.  $d f r s V $.
    rnghomval.1 $e |- G = ( 1st ` R ) $.
    rnghomval.2 $e |- H = ( 2nd ` R ) $.
    rnghomval.3 $e |- X = ran G $.
    rnghomval.4 $e |- U = ( GId ` H ) $.
    rnghomval.5 $e |- J = ( 1st ` S ) $.
    rnghomval.6 $e |- K = ( 2nd ` S ) $.
    rnghomval.7 $e |- Y = ran J $.
    rnghomval.8 $e |- V = ( GId ` K ) $.
    $( The set of ring homomorphisms.  (Contributed by Jeff Madsen,
       19-Jun-2010.)  (Revised by Mario Carneiro, 22-Sep-2015.) $)
    rngohomval $p |- ( ( R e. RingOps /\ S e. RingOps ) -> ( R RngHom S ) =
            { f e. ( Y ^m X ) | ( ( f ` U ) = V /\ A. x e. X A. y e. X
              ( ( f ` ( x G y ) ) = ( ( f ` x ) J ( f ` y ) ) /\
            ( f ` ( x H y ) ) = ( ( f ` x ) K ( f ` y ) ) ) ) } ) $=
      ( vr vs crngo cv c2nd cfv cgi wceq c1st co wa crn wral cmap crnghom simpr
      crab fveq2d syl6eqr rneqd simpl oveq12d eqeq12d oveqd raleqbidv rabeqbidv
      anbi12d df-rngohom ovex rabex ovmpt2a ) UBUCCDUDUDUBUEZUFUGZUHUGZFUEZUGZU
      CUEZUFUGZUHUGZUIZAUEZBUEZVMUJUGZUKZVPUGZWBVPUGZWCVPUGZVRUJUGZUKZUIZWBWCVN
      UKZVPUGZWGWHVSUKZUIZULZBWDUMZUNZAWQUNZULZFWIUMZWQUOUKZUREVPUGZKUIZWBWCGUK
      ZVPUGZWGWHIUKZUIZWBWCHUKZVPUGZWGWHJUKZUIZULZBLUNZALUNZULZFMLUOUKZURUPVMCU
      IZVRDUIZULZWTXPFXBXQXTXAMWQLUOXTXAIUMMXTWIIXTWIDUJUGIXTVRDUJXRXSUQZUSRUTZ
      VATUTXTWQGUMLXTWDGXTWDCUJUGGXTVMCUJXRXSVBZUSNUTZVAPUTZVCXTWAXDWSXOXTVQXCV
      TKXTVOEVPXTVOHUHUGEXTVNHUHXTVNCUFUGHXTVMCUFYCUSOUTZUSQUTUSXTVTJUHUGKXTVSJ
      UHXTVSDUFUGJXTVRDUFYAUSSUTZUSUAUTVDXTWRXNAWQLYEXTWPXMBWQLYEXTWKXHWOXLXTWF
      XFWJXGXTWEXEVPXTWDGWBWCYDVEUSXTWIIWGWHYBVEVDXTWMXJWNXKXTWLXIVPXTVNHWBWCYF
      VEUSXTVSJWGWHYGVEVDVHVFVFVHVGABFUCUBVIXPFXQMLUOVJVKVL $.

    $( The predicate "is a ring homomorphism from ` R ` to ` S ` ."
       (Contributed by Jeff Madsen, 19-Jun-2010.) $)
    isrngohom $p |- ( ( R e. RingOps /\ S e. RingOps )
       -> ( F e. ( R RngHom S ) <->
                ( F : X --> Y /\ ( F ` U ) = V /\ A. x e. X A. y e. X
              ( ( F ` ( x G y ) ) = ( ( F ` x ) J ( F ` y ) ) /\
            ( F ` ( x H y ) ) = ( ( F ` x ) K ( F ` y ) ) ) ) ) ) $=
      ( vf crngo wcel wa crnghom co cv wceq wral cmap crab wf rngohomval eleq2d
      cfv w3a crn cvv c1st fvex eqeltri rnex elmap anbi1i fveq1 oveq12d eqeq12d
      eqeq1d anbi12d 2ralbidv elrab 3anass 3bitr4i syl6bb ) CUCUDDUCUDUEZFCDUFU
      GZUDFEUBUHZUPZKUIZAUHZBUHZGUGZVRUPZWAVRUPZWBVRUPZIUGZUIZWAWBHUGZVRUPZWEWF
      JUGZUIZUEZBLUJALUJZUEZUBMLUKUGZULZUDZLMFUMZEFUPZKUIZWCFUPZWAFUPZWBFUPZIUG
      ZUIZWIFUPZXCXDJUGZUIZUEZBLUJALUJZUQZVPVQWQFABCDEUBGHIJKLMNOPQRSTUAUNUOFWP
      UDZXAXKUEZUEWSXNUEWRXLXMWSXNMLFMIURUSTIIDUTUPUSRDUTVAVBVCVBLGURUSPGGCUTUP
      USNCUTVAVBVCVBVDVEWOXNUBFWPVRFUIZVTXAWNXKXOVSWTKEVRFVFVIXOWMXJABLLXOWHXFW
      LXIXOWDXBWGXEWCVRFVFXOWEXCWFXDIWAVRFVFZWBVRFVFZVGVHXOWJXGWKXHWIVRFVFXOWEX
      CWFXDJXPXQVGVHVJVKVJVLWSXAXKVMVNVO $.
  $}

  ${
    $d R x y $.  $d S x y $.  $d X x y $.  $d Y y $.  $d F x y $.
    rnghomf.1 $e |- G = ( 1st ` R ) $.
    rnghomf.2 $e |- X = ran G $.
    rnghomf.3 $e |- J = ( 1st ` S ) $.
    rnghomf.4 $e |- Y = ran J $.
    $( A ring homomorphism is a function.  (Contributed by Jeff Madsen,
       19-Jun-2010.) $)
    rngohomf $p |- ( ( R e. RingOps /\ S e. RingOps /\ F e. ( R RngHom S ) )
                                                          -> F : X --> Y ) $=
      ( vx vy crngo wcel co wa cfv wceq eqid crnghom wf c2nd cgi wral isrngohom
      cv w3a biimpa simp1d 3impa ) ANOZBNOZCABUAPOZFGCUBZULUMQZUNQUOAUCRZUDRZCR
      BUCRZUDRZSZLUGZMUGZDPCRVBCRZVCCRZEPSVBVCUQPCRVDVEUSPSQMFUELFUEZUPUNUOVAVF
      UHLMABURCDUQEUSUTFGHUQTIURTJUSTKUTTUFUIUJUK $.

    $( Closure law for a ring homomorphism.  (Contributed by Jeff Madsen,
       3-Jan-2011.) $)
    rngohomcl $p |- ( ( ( R e. RingOps /\ S e. RingOps /\ F e. ( R RngHom S ) )
                                          /\ A e. X ) -> ( F ` A ) e. Y ) $=
      ( crngo wcel crnghom co w3a rngohomf ffvelrnda ) BMNCMNDBCOPNQGHADBCDEFGH
      IJKLRS $.
  $}

  ${
    $d R x y $.  $d S x y $.  $d F x y $.
    rnghom1.1 $e |- H = ( 2nd ` R ) $.
    rnghom1.2 $e |- U = ( GId ` H ) $.
    rnghom1.3 $e |- K = ( 2nd ` S ) $.
    rnghom1.4 $e |- V = ( GId ` K ) $.
    $( A ring homomorphism preserves ` 1 ` .  (Contributed by Jeff Madsen,
       24-Jun-2011.) $)
    rngohom1 $p |- ( ( R e. RingOps /\ S e. RingOps /\ F e. ( R RngHom S ) )
                                                  -> ( F ` U ) = V ) $=
      ( vx vy crngo wcel co cfv wceq wa eqid crnghom c1st crn wf wral isrngohom
      cv w3a biimpa simp2d 3impa ) ANOZBNOZDABUAPOZCDQGRZULUMSZUNSAUBQZUCZBUBQZ
      UCZDUDZUOLUGZMUGZUQPDQVBDQZVCDQZUSPRVBVCEPDQVDVEFPRSMURUELURUEZUPUNVAUOVF
      UHLMABCDUQEUSFGURUTUQTHURTIUSTJUTTKUFUIUJUK $.
  $}

  ${
    $d R x y $.  $d S x y $.  $d F x y $.  $d G x y $.  $d J x y $.
    $d X x y $.  $d A x y $.  $d B y $.
    rnghomadd.1 $e |- G = ( 1st ` R ) $.
    rnghomadd.2 $e |- X = ran G $.
    rnghomadd.3 $e |- J = ( 1st ` S ) $.
    $( Ring homomorphisms preserve addition.  (Contributed by Jeff Madsen,
       3-Jan-2011.) $)
    rngohomadd $p |- ( ( ( R e. RingOps /\ S e. RingOps
        /\ F e. ( R RngHom S ) ) /\ ( A e. X /\ B e. X ) )
                    -> ( F ` ( A G B ) ) = ( ( F ` A ) J ( F ` B ) ) ) $=
      ( vx vy wcel co cfv wceq wral wa eqid crngo crnghom w3a cv c2nd isrngohom
      crn cgi biimpa simp3d 3impa simpl 2ralimi syl oveq1 fveq2d oveq1d eqeq12d
      wf fveq2 oveq2 oveq2d rspc2v mpan9 ) CUANZDUANZECDUBONZUCZLUDZMUDZFOZEPZV
      IEPZVJEPZGOZQZMHRLHRZAHNBHNSABFOZEPZAEPZBEPZGOZQZVHVPVIVJCUEPZOEPVMVNDUEP
      ZOQZSZMHRLHRZVQVEVFVGWHVEVFSZVGSHGUGZEUSZWDUHPZEPWEUHPZQZWHWIVGWKWNWHUCLM
      CDWLEFWDGWEWMHWJIWDTJWLTKWETWJTWMTUFUIUJUKWGVPLMHHVPWFULUMUNVPWCAVJFOZEPZ
      VTVNGOZQLMABHHVIAQZVLWPVOWQWRVKWOEVIAVJFUOUPWRVMVTVNGVIAEUTUQURVJBQZWPVSW
      QWBWSWOVREVJBAFVAUPWSVNWAVTGVJBEUTVBURVCVD $.
  $}

  ${
    $d R x y $.  $d S x y $.  $d F x y $.  $d H x y $.  $d K x y $.
    $d X x y $.  $d A x y $.  $d B y $.
    rnghommul.1 $e |- G = ( 1st ` R ) $.
    rnghommul.2 $e |- X = ran G $.
    rnghommul.3 $e |- H = ( 2nd ` R ) $.
    rnghommul.4 $e |- K = ( 2nd ` S ) $.
    $( Ring homomorphisms preserve multiplication.  (Contributed by Jeff
       Madsen, 3-Jan-2011.) $)
    rngohommul $p |- ( ( ( R e. RingOps /\ S e. RingOps
      /\ F e. ( R RngHom S ) ) /\ ( A e. X /\ B e. X ) )
                   -> ( F ` ( A H B ) ) = ( ( F ` A ) K ( F ` B ) ) ) $=
      ( vx vy wcel co cfv wceq wral crngo crnghom w3a cv c1st crn cgi isrngohom
      wa eqid biimpa simp3d 3impa simpr 2ralimi syl oveq1 fveq2d oveq1d eqeq12d
      wf fveq2 oveq2 oveq2d rspc2v mpan9 ) CUAPZDUAPZECDUBQPZUCZNUDZOUDZGQZERZV
      KERZVLERZHQZSZOITNITZAIPBIPUIABGQZERZAERZBERZHQZSZVJVKVLFQERVOVPDUERZQSZV
      RUIZOITNITZVSVGVHVIWIVGVHUIZVIUIIWFUFZEVAZGUGRZERHUGRZSZWIWJVIWLWOWIUCNOC
      DWMEFGWFHWNIWKJLKWMUJWFUJMWKUJWNUJUHUKULUMWHVRNOIIWGVRUNUOUPVRWEAVLGQZERZ
      WBVPHQZSNOABIIVKASZVNWQVQWRWSVMWPEVKAVLGUQURWSVOWBVPHVKAEVBUSUTVLBSZWQWAW
      RWDWTWPVTEVLBAGVCURWTVPWCWBHVLBEVBVDUTVEVF $.
  $}

  ${
    $d R x y $.  $d S x y $.  $d G x y $.  $d J x y $.  $d F x y $.
    rnggrphom.1 $e |- G = ( 1st ` R ) $.
    rnggrphom.2 $e |- J = ( 1st ` S ) $.
    $( A ring homomorphism is a group homomorphism.  (Contributed by Jeff
       Madsen, 2-Jan-2011.) $)
    rngogrphom $p |- ( ( R e. RingOps /\ S e. RingOps /\ F e. ( R RngHom S ) )
                                                  -> F e. ( G GrpOpHom J ) ) $=
      ( vx vy crngo wcel co crn cv cfv wral eqid wa cgr rngogrpo crnghom w3a wf
      cghomOLD rngohomf rngohomadd eqcomd ralrimivva elghomOLD syl2an mpbir2and
      wceq wb 3adant3 ) AJKZBJKZCABUALKZUBZCDEUDLKZDMZEMZCUCZHNZCOINZCOELZVCVDD
      LCOZULZIUTPHUTPZABCDEUTVAFUTQZGVAQZUEURVGHIUTUTURVCUTKVDUTKRRVFVEVCVDABCD
      EUTFVIGUFUGUHUOUPUSVBVHRUMZUQUODSKESKVKUPADFTBEGTHICDEVAUTVIVJUIUJUNUK $.
  $}

  ${
    rnghom0.1 $e |- G = ( 1st ` R ) $.
    rnghom0.2 $e |- Z = ( GId ` G ) $.
    rnghom0.3 $e |- J = ( 1st ` S ) $.
    rnghom0.4 $e |- W = ( GId ` J ) $.
    $( A ring homomorphism preserves ` 0 ` .  (Contributed by Jeff Madsen,
       2-Jan-2011.) $)
    rngohom0 $p |- ( ( R e. RingOps /\ S e. RingOps /\ F e. ( R RngHom S ) )
                                                      -> ( F ` Z ) = W ) $=
      ( crngo wcel crnghom co w3a cgr cghomOLD cfv rngogrpo 3ad2ant1 rngogrphom
      wceq 3ad2ant2 ghomidOLD syl3anc ) ALMZBLMZCABNOMZPDQMZEQMZCDEROMGCSFUCUGU
      HUJUIADHTUAUHUGUKUIBEJTUDABCDEHJUBFGCDEIKUEUF $.
  $}

  ${
    rnghomsub.1 $e |- G = ( 1st ` R ) $.
    rnghomsub.2 $e |- X = ran G $.
    rnghomsub.3 $e |- H = ( /g ` G ) $.
    rnghomsub.4 $e |- J = ( 1st ` S ) $.
    rnghomsub.5 $e |- K = ( /g ` J ) $.
    $( Ring homomorphisms preserve subtraction.  (Contributed by Jeff Madsen,
       15-Jun-2011.) $)
    rngohomsub $p |- ( ( ( R e. RingOps /\ S e. RingOps
       /\ F e. ( R RngHom S ) ) /\ ( A e. X /\ B e. X ) )
                   -> ( F ` ( A H B ) ) = ( ( F ` A ) K ( F ` B ) ) ) $=
      ( crngo wcel co w3a cfv crnghom cgr cghomOLD rngogrpo 3ad2ant1 rngogrphom
      wa wceq 3ad2ant2 3jca ghomdiv sylan ) CPQZDPQZECDUARQZSZFUBQZHUBQZEFHUCRQ
      ZSAJQBJQUGABGRETAETBETIRUHUPUQURUSUMUNUQUOCFKUDUEUNUMURUODHNUDUICDEFHKNUF
      UJABIGEFHJLMOUKUL $.
  $}

  ${
    $d R x y $.  $d S x y $.  $d T x y $.  $d F x y $.  $d G x y $.
    $( The composition of two ring homomorphisms is a ring homomorphism.
       (Contributed by Jeff Madsen, 16-Jun-2011.) $)
    rngohomco $p |- ( ( ( R e. RingOps /\ S e. RingOps /\ T e. RingOps ) /\
                          ( F e. ( R RngHom S ) /\ G e. ( S RngHom T ) ) )
                                      -> ( G o. F ) e. ( R RngHom T ) ) $=
      ( vx vy wcel w3a co wa cfv wceq eqid 3expa 3adantl3 fvco3 wi ex imp crngo
      crnghom ccom c1st crn c2nd cgi wral rngohomf 3adantl1 adantrl adantrr fco
      wf cv syl2anc rngo1cl 3ad2ant1 adantr rngohom1 fveq2d rngohomadd adantlrr
      eqtrd rngohomcl anim12da adantlrl syldan rngogcl 3ad2antl1 adantlr oveq12
      3expb sylan syl 3eqtr4d rngohommul rngocl ralrimivva wb isrngohom 3adant2
      jca mpbir3and ) AUAHZBUAHZCUAHZIZDABUBJHZEBCUBJHZKZKZEDUCZACUBJHZAUDLZUEZ
      CUDLZUEZWMUNZAUFLZUGLZWMLZCUFLZUGLZMZFUOZGUOZWOJZWMLZXFWMLZXGWMLZWQJZMZXF
      XGWTJZWMLZXJXKXCJZMZKZGWPUHFWPUHZWLBUDLZUEZWREUNZWPYADUNZWSWHWJYBWIWFWGWJ
      YBWEWFWGWJYBBCEXTWQYAWRXTNZYANZWQNZWRNZUIOUJUKWHWIYCWJWEWFWIYCWGWEWFWIYCA
      BDWOXTWPYAWONZWPNZYDYEUIOPULZWPYAWREDUMUPWLXBXADLZELZXDWLYCXAWPHZXBYLMYJW
      HYMWKWEWFYMWGAXAWTWPYIWTNZXANZUQURUSWPYAXAEDQUPWLYLBUFLZUGLZELZXDWLYKYQEW
      HWIYKYQMZWJWEWFWIYSWGWEWFWIYSABXADWTYPYQYNYOYPNZYQNZUTOPULVAWHWJYRXDMZWIW
      FWGWJUUBWEWFWGWJUUBBCYQEYPXCXDYTUUAXCNZXDNZUTOUJUKVDVDWLXRFGWPWPWLXFWPHZX
      GWPHZKZKZXMXQUUHXHDLZELZXFDLZELZXGDLZELZWQJZXIXLUUHUUJUUKUUMXTJZELZUUOUUH
      UUIUUPEWHWIUUGUUIUUPMZWJWHWIKZUUGUURWEWFWIUUGUURRZWGWEWFWIUUTWEWFWIIZUUGU
      URXFXGABDWOXTWPYHYIYDVBSOPTVCVAWLUUGUUKYAHZUUMYAHZKZUUQUUOMZWHWIUUGUVDWJU
      USUUGUVDWEWFWIUUGUVDRZWGWEWFWIUVFUVAUUGUVDUVAUUEUUFUVBUVCXFABDWOXTWPYAYHY
      IYDYEVEXGABDWOXTWPYAYHYIYDYEVEVFSOPTVCZWHWJUVDUVEWIWHWJKZUVDUVEWFWGWJUVDU
      VERZWEWFWGWJUVIWFWGWJIZUVDUVEUUKUUMBCEXTWQYAYDYEYFVBSOUJTVGVHVDWLUUGXHWPH
      ZXIUUJMZWHUUGUVKWKWEWFUUGUVKWGWEUUEUUFUVKXFXGAWOWPYHYIVIVMVJVKWLYCUVKUVLY
      JWPYAXHEDQVNVHUUHXJUULMZXKUUNMZKZXLUUOMWLUUEUUFUVMUVNWLYCUUEUVMYJWPYAXFED
      QVNWLYCUUFUVNYJWPYAXGEDQVNVFZXJUULXKUUNWQVLVOVPUUHXNDLZELZUULUUNXCJZXOXPU
      UHUVRUUKUUMYPJZELZUVSUUHUVQUVTEWHWIUUGUVQUVTMZWJUUSUUGUWBWEWFWIUUGUWBRZWG
      WEWFWIUWCUVAUUGUWBXFXGABDWOWTYPWPYHYIYNYTVQSOPTVCVAWLUUGUVDUWAUVSMZUVGWHW
      JUVDUWDWIUVHUVDUWDWFWGWJUVDUWDRZWEWFWGWJUWEUVJUVDUWDUUKUUMBCEXTYPXCYAYDYE
      YTUUCVQSOUJTVGVHVDWLUUGXNWPHZXOUVRMZWHUUGUWFWKWEWFUUGUWFWGWEUUEUUFUWFXFXG
      AWOWTWPYHYNYIVRVMVJVKWLYCUWFUWGYJWPYAXNEDQVNVHUUHUVOXPUVSMUVPXJUULXKUUNXC
      VLVOVPWCVSWHWNWSXEXSIVTZWKWEWGUWHWFFGACXAWMWOWTWQXCXDWPWRYHYNYIYOYFUUCYGU
      UDWAWBUSWD $.
  $}

  ${
    rngkerinj.1 $e |- G = ( 1st ` R ) $.
    rngkerinj.2 $e |- X = ran G $.
    rngkerinj.3 $e |- W = ( GId ` G ) $.
    rngkerinj.4 $e |- J = ( 1st ` S ) $.
    rngkerinj.5 $e |- Y = ran J $.
    rngkerinj.6 $e |- Z = ( GId ` J ) $.
    $( A ring homomorphism is injective if and only if its kernel is zero.
       (Contributed by Jeff Madsen, 16-Jun-2011.) $)
    rngokerinj $p |- ( ( R e. RingOps /\ S e. RingOps /\ F e. ( R RngHom S ) )
        -> ( F : X -1-1-> Y <-> ( `' F " { Z } ) = { W } ) ) $=
      ( wcel cfv crn eqtri cgi crngo crnghom w3a c1st cgr cghomOLD wf1 ccnv csn
      co cima wceq eqid rngogrpo 3ad2ant1 3ad2ant2 rngogrphom fveq2i grpokerinj
      wb rneqi syl3anc ) AUAPZBUAPZCABUBUJPZUCAUDQZUEPZBUDQZUEPZCVFVHUFUJPGHCUG
      CUHIUIUKFUIULUTVCVDVGVEAVFVFUMZUNUOVDVCVIVEBVHVHUMZUNUPABCVFVHVJVKUQICVFV
      HFGHGDRVFRKDVFJVASFDTQVFTQLDVFTJURSHERVHRNEVHMVASIETQVHTQOEVHTMURSUSVB $.
  $}

  ${
    $d r s f $.
    $( Define the function which gives the set of ring isomorphisms between two
       given rings.  (Contributed by Jeff Madsen, 16-Jun-2011.) $)
    df-rngoiso $a |- RngIso = ( r e. RingOps , s e. RingOps |->
      { f e. ( r RngHom s ) |
        f : ran ( 1st ` r ) -1-1-onto-> ran ( 1st ` s ) } ) $.
  $}

  ${
    $d f F $.  $d f r s R $.  $d f r s S $.  $d f r s X $.  $d f r s Y $.
    rngisoval.1 $e |- G = ( 1st ` R ) $.
    rngisoval.2 $e |- X = ran G $.
    rngisoval.3 $e |- J = ( 1st ` S ) $.
    rngisoval.4 $e |- Y = ran J $.
    $( The set of ring isomorphisms.  (Contributed by Jeff Madsen,
       16-Jun-2011.) $)
    rngoisoval $p |- ( ( R e. RingOps /\ S e. RingOps ) -> ( R RngIso S ) =
                          { f e. ( R RngHom S ) | f : X -1-1-onto-> Y } ) $=
      ( vr vs cv c1st cfv crn crnghom wceq syl6eqr crngo wf1o co crngiso oveq12
      crab wa fveq2 rneqd f1oeq2 syl f1oeq3 sylan9bb rabeqbidv df-rngoiso rabex
      wb ovex ovmpt2a ) LMABUAUALNZOPZQZMNZOPZQZCNZUBZCUTVCRUCZUFFGVFUBZCABRUCZ
      UFUDUTASZVCBSZUGVGVICVHVJUTAVCBRUEVKVGFVEVFUBZVLVIVKVBFSVGVMUQVKVBDQFVKVA
      DVKVAAOPDUTAOUHHTUIITVBFVEVFUJUKVLVEGSVMVIUQVLVEEQGVLVDEVLVDBOPEVCBOUHJTU
      IKTVEGFVFULUKUMUNCMLUOVICVJABRURUPUS $.

    $( The predicate "is a ring isomorphism between ` R ` and ` S ` ."
       (Contributed by Jeff Madsen, 16-Jun-2011.) $)
    isrngoiso $p |- ( ( R e. RingOps /\ S e. RingOps ) -> ( F e. ( R RngIso S )
      <-> ( F e. ( R RngHom S ) /\ F : X -1-1-onto-> Y ) ) ) $=
      ( vf crngo wcel wa crngiso co cv wf1o crnghom eleq2d f1oeq1 elrab syl6bb
      crab rngoisoval ) AMNBMNOZCABPQZNCFGLRZSZLABTQZUEZNCUKNFGCSZOUGUHULCABLDE
      FGHIJKUFUAUJUMLCUKFGUICUBUCUD $.

    $( A ring isomorphism is a bijection.  (Contributed by Jeff Madsen,
       16-Jun-2011.) $)
    rngoiso1o $p |- ( ( R e. RingOps /\ S e. RingOps /\ F e. ( R RngIso S ) )
                                          -> F : X -1-1-onto-> Y ) $=
      ( crngo wcel crngiso co wf1o wa crnghom isrngoiso simplbda 3impa ) ALMZBL
      MZCABNOMZFGCPZUBUCQUDCABROMUEABCDEFGHIJKSTUA $.
  $}

  $( A ring isomorphism is a ring homomorphism.  (Contributed by Jeff Madsen,
     16-Jun-2011.) $)
  rngoisohom $p |- ( ( R e. RingOps /\ S e. RingOps /\ F e. ( R RngIso S ) )
                                          -> F e. ( R RngHom S ) ) $=
    ( crngo wcel crngiso co crnghom c1st cfv wf1o eqid isrngoiso simprbda 3impa
    wa crn ) ADEZBDEZCABFGEZCABHGEZRSPTUAAIJZQZBIJZQZCKABCUBUDUCUEUBLUCLUDLUELM
    NO $.

  ${
    $d R x y $.  $d S x y $.  $d F x y $.
    $( The inverse of a ring isomorphism is a ring isomorphism.  (Contributed
       by Jeff Madsen, 16-Jun-2011.) $)
    rngoisocnv $p |- ( ( R e. RingOps /\ S e. RingOps /\ F e. ( R RngIso S ) )
                                          -> `' F e. ( S RngIso R ) ) $=
      ( vx vy wcel co wa cfv wceq eqid sylan2 ancoms f1ocnvfv2 adantll f1ocnvdm
      wi 3expb sylan an32s crngo crngiso ccnv crnghom c1st crn wf1o wf c2nd cgi
      cv wral f1ocnv f1of syl ad2antll rngohom1 3expa adantrr rngo1cl ad2ant2rl
      f1ocnvfv mpd anim12da w3a rngohomadd exp32 impr rngogcl adantlll adantlrl
      oveq12 imp 3eqtr4rd wb wf1 f1of1 ad2antlr anassrs adantllr syl12anc mpbid
      f1fveq rngohommul rngocl ralrimivva isrngohom adantr mpbir3and ex 3imtr4d
      jca isrngoiso 3impia ) AUAFZBUAFZCABUBGFZCUCZBAUBGFZWOWPHZCABUDGFZAUEIZUF
      ZBUEIZUFZCUGZHZWRBAUDGFZXEXCWRUGZHZWQWSWTXGXJWTXGHZXHXIXKXHXEXCWRUHZBUIIZ
      UJIZWRIAUIIZUJIZJZDUKZEUKZXDGZWRIZXRWRIZXSWRIZXBGZJZXRXSXMGZWRIZYBYCXOGZJ
      ZHZEXEULDXEULZXFXLWTXAXFXIXLXCXECUMZXEXCWRUNUOUPXKXPCIXNJZXQWTXAYMXFWOWPX
      AYMABXPCXOXMXNXOKZXPKZXMKZXNKZUQURUSWOXFYMXQQZWPXAXFWOYRWOXFXPXCFYRAXPXOX
      CXCKZYNYOUTXCXEXPXNCVBLMVAVCXKYJDEXEXEXKXRXEFZXSXEFZHZHZYEYIUUCYACIZYDCIZ
      JZYEUUCYBCIZYCCIZXDGZXTUUEUUDXGUUBUUIXTJZWTXFUUBUUJXAXFUUBHZUUGXRJZUUHXSJ
      ZHZUUJXFYTUUAUULUUMXCXEXRCNXCXEXSCNVDZUUGXRUUHXSXDVLUOOOXKUUBUUEUUIJZWTXA
      XFUUBUUPQZWOWPXAXFUUQQWOWPXAVEZXFUUBUUPUUKUURYBXCFZYCXCFZHZUUPXFYTUUAUUSU
      UTXCXEXRCPXCXEXSCPVDZYBYCABCXBXDXCXBKZYSXDKZVFLVGURVHVMWTXFUUBUUDXTJZXAWP
      XFUUBUVEWOWPUUBXFUVEWPUUBHZXTXEFZXFUVEWPYTUUAUVGXRXSBXDXEUVDXEKZVIRZXFUVG
      UVEXCXEXTCNMSTVJVKVNWTXFUUBUUFYEVOZXAWTXFHUUBHZXCXECVPZYAXCFZYDXCFZUVJXFU
      VLWTUUBXCXECVQVRZWPXFUUBUVMWOWPUUBXFUVMUVFUVGXFUVMUVIXFUVGUVMXCXEXTCPMSTV
      JWOXFUUBUVNWPWOXFUUBUVNUUKWOUVAUVNUVBWOUUSUUTUVNYBYCAXBXCUVCYSVIRLVSVTXCX
      EYAYDCWCWAVKWBUUCYGCIZYHCIZJZYIUUCUUGUUHXMGZYFUVQUVPXGUUBUVSYFJZWTXFUUBUV
      TXAUUKUUNUVTUUOUUGXRUUHXSXMVLUOOOXKUUBUVQUVSJZWTXAXFUUBUWAQZWOWPXAXFUWBQU
      URXFUUBUWAUUKUURUVAUWAUVBYBYCABCXBXOXMXCUVCYSYNYPWDLVGURVHVMWTXFUUBUVPYFJ
      ZXAWPXFUUBUWCWOWPUUBXFUWCUVFYFXEFZXFUWCWPYTUUAUWDXRXSBXDXMXEUVDYPUVHWERZX
      FUWDUWCXCXEYFCNMSTVJVKVNWTXFUUBUVRYIVOZXAUVKUVLYGXCFZYHXCFZUWFUVOWPXFUUBU
      WGWOWPUUBXFUWGUVFUWDXFUWGUWEXFUWDUWGXCXEYFCPMSTVJWOXFUUBUWHWPWOXFUUBUWHUU
      KWOUVAUWHUVBWOUUSUUTUWHYBYCAXBXOXCUVCYNYSWERLVSVTXCXEYGYHCWCWAVKWBWLWFWTX
      HXLXQYKVEVOZXGWPWOUWIDEBAXNWRXDXMXBXOXPXEXCUVDYPUVHYQUVCYNYSYOWGMWHWIXFXI
      WTXAYLUPWLWJABCXBXDXCXEUVCYSUVDUVHWMWPWOWSXJVOBAWRXDXBXEXCUVDUVHUVCYSWMMW
      KWN $.
  $}

  ${
    $( The composition of two ring isomorphisms is a ring isomorphism.
       (Contributed by Jeff Madsen, 16-Jun-2011.) $)
    rngoisoco $p |- ( ( ( R e. RingOps /\ S e. RingOps /\ T e. RingOps ) /\
                      ( F e. ( R RngIso S ) /\ G e. ( S RngIso T ) ) )
                                    -> ( G o. F ) e. ( R RngIso T ) ) $=
      ( crngo wcel crngiso co wa crnghom c1st cfv crn rngoisohom 3expa 3adantl3
      wf1o 3adantl1 eqid ccom anim12da rngohomco syldan rngoiso1o adantrl f1oco
      w3a adantrr syl2anc wb isrngoiso 3adant2 adantr mpbir2and ) AFGZBFGZCFGZU
      HZDABHIGZEBCHIGZJZJZEDUAZACHIGZVDACKIGZALMZNZCLMZNZVDRZUSVBDABKIGZEBCKIGZ
      JVFUSUTVAVLVMUPUQUTVLURUPUQUTVLABDOPQUQURVAVMUPUQURVAVMBCEOPSUBABCDEUCUDV
      CBLMZNZVJERZVHVODRZVKUSVAVPUTUQURVAVPUPUQURVAVPBCEVNVIVOVJVNTZVOTZVITZVJT
      ZUEPSUFUSUTVQVAUPUQUTVQURUPUQUTVQABDVGVNVHVOVGTZVHTZVRVSUEPQUIVHVOVJEDUGU
      JUSVEVFVKJUKZVBUPURWDUQACVDVGVIVHVJWBWCVTWAULUMUNUO $.
  $}

  ${
    $d r s f $.
    $( Define the ring isomorphism relation.  (Contributed by Jeff Madsen,
       16-Jun-2011.) $)
    df-risc $a |- ~=R = { <. r , s >. | ( ( r e. RingOps /\ s e. RingOps )
                                  /\ E. f f e. ( r RngIso s ) ) } $.
  $}

  ${
    $d R r s f $.  $d S r s f $.
    $( The ring isomorphism relation.  (Contributed by Jeff Madsen,
       16-Jun-2011.) $)
    isriscg $p |- ( ( R e. A /\ S e. B ) -> ( R ~=R S <->
        ( ( R e. RingOps /\ S e. RingOps ) /\ E. f f e. ( R RngIso S ) ) ) ) $=
      ( vr vs cv crngo wcel wa crngiso co wex crisc eleq1 eleq2d exbidv anbi12d
      wceq anbi1d oveq1 anbi2d oveq2 df-risc brabg ) FHZIJZGHZIJZKZEHZUGUILMZJZ
      ENZKCIJZUJKZULCUILMZJZENZKUPDIJZKZULCDLMZJZENZKFGCDABOUGCTZUKUQUOUTVFUHUP
      UJUGCIPUAVFUNUSEVFUMURULUGCUILUBQRSUIDTZUQVBUTVEVGUJVAUPUIDIPUCVGUSVDEVGU
      RVCULUIDCLUDQRSEGFUEUF $.
  $}

  ${
    $d R f $.  $d S f $.
    isrisc.1 $e |- R e. _V $.
    isrisc.2 $e |- S e. _V $.
    $( The ring isomorphism relation.  (Contributed by Jeff Madsen,
       16-Jun-2011.) $)
    isrisc $p |- ( R ~=R S <-> ( ( R e. RingOps /\ S e. RingOps )
                              /\ E. f f e. ( R RngIso S ) ) ) $=
      ( cvv wcel crisc wbr crngo wa cv crngiso co wex wb isriscg mp2an ) AFGBFG
      ABHIAJGBJGKCLABMNGCOKPDEFFABCQR $.
  $}

  ${
    $d R f $.  $d S f $.
    $( The ring isomorphism relation.  (Contributed by Jeff Madsen,
       16-Jun-2011.) $)
    risc $p |- ( ( R e. RingOps /\ S e. RingOps ) ->
                      ( R ~=R S <-> E. f f e. ( R RngIso S ) ) ) $=
      ( crngo wcel wa crisc wbr cv crngiso co wex isriscg bianabs ) ADEBDEFABGH
      CIABJKECLDDABCMN $.
  $}

  ${
    $d R f $.  $d S f $.  $d F f $.
    $( Determine that two rings are isomorphic.  (Contributed by Jeff Madsen,
       16-Jun-2011.) $)
    risci $p |- ( ( R e. RingOps /\ S e. RingOps /\
                                F e. ( R RngIso S ) ) -> R ~=R S ) $=
      ( vf crngo wcel crngiso co crisc wbr wa cv wex elex2 risc syl5ibr 3impia
      ) AEFZBEFZCABGHZFZABIJZUAUBRSKDLTFDMDCTNABDOPQ $.
  $}

  ${
    $d f g r s t $.
    $( Ring isomorphism is an equivalence relation.  (Contributed by Jeff
       Madsen, 16-Jun-2011.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    riscer $p |- ~=R Er dom ~=R $=
      ( vr vs vt vf vg crisc cv wbr wi wa wal crngo wcel crngiso wex vex isrisc
      co 3expia risci cdm wer wrel wceq df-risc relopabi eqid rngoisocnv ancoms
      ccnv syld exlimdv imp sylbi eeanv ccom rngoisoco 3adant2 exlimdvv syl5bir
      w3a ex 3expb adantlr an4s syl2anb pm3.2i ax-gen gen2 dfer2 mpbir3an ) FUA
      ZFUBFUCVLVLUDAGZBGZFHZVNVMFHZIZVOVNCGZFHZJVMVRFHZIZJZCKZBKAKVMLMZVNLMZJZD
      GZVMVNNRMZDOZJZABFDBAUEUFVLUGWCABWBCVQWAVOWJVPVMVNDAPBPZQZWFWIVPWFWHVPDWF
      WHWGUJZVNVMNRMZVPWDWEWHWNVMVNWGUHSWEWDWNVPIWEWDWNVPVNVMWMTSUIUKULUMUNVOWJ
      WEVRLMZJZEGZVNVRNRMZEOZJVTVSWLVNVREWKCPQWFWPWIWSVTWFWPJWIWSJZVTWDWPWTVTIZ
      WEWDWEWOXAWTWHWRJZEODOWDWEWOVAZVTWHWRDEUOXCXBVTDEXCXBWQWGUPZVMVRNRMZVTXCX
      BXEVMVNVRWGWQUQVBWDWOXEVTIWEWDWOXEVTVMVRXDTSURUKUSUTVCVDUMVEVFVGVHVIABCVL
      FVJVK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Commutative rings
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Com2 $.

  $( Extend class notation with a class that adds commutativity to various
     flavors of rings. $)
  ccm2 $a class Com2 $.

  ${
    $d g h a b $.
    $( A device to add commutativity to various sorts of rings.  I use
       ` ran g ` because I suppose ` g ` has a neutral element and therefore is
       onto.  (Contributed by FL, 6-Sep-2009.)  (New usage is discouraged.) $)
    df-com2 $a |- Com2 = { <. g , h >. | A. a e. ran g A. b e. ran g
     ( a h b ) = ( b h a ) } $.
  $}

  $c Fld $.

  $( Extend class notation with the class of all fields. $)
  cfld $a class Fld $.

  $( Add alternate definition. Add Kennington's one (=/= the zero ring),
       and Mizar's one: ` ( GId `` G ) =/= ( GId `` H ) ` $)
  $( Definition of a field.  A field is a commutative division ring.
     (Contributed by FL, 6-Sep-2009.)  (Revised by Jeff Madsen, 10-Jun-2010.)
     (New usage is discouraged.) $)
  df-fld $a |- Fld = ( DivRingOps i^i Com2 ) $.

  $c CRingOps $.

  $( Extend class notation with the class of commutative rings. $)
  ccring $a class CRingOps $.

  $( Define the class of commutative rings.  (Contributed by Jeff Madsen,
     8-Jun-2010.) $)
  df-crngo $a |- CRingOps = ( RingOps i^i Com2 ) $.

  ${
    $d G a b x y $.  $d H a b x y $.
    $( A device to add commutativity to various sorts of rings.  (Contributed
       by FL, 6-Sep-2009.)  (New usage is discouraged.) $)
    iscom2 $p |- ( ( G e. A /\ H e. B ) -> ( <. G , H >. e. Com2 <->
     A. a e. ran G A. b e. ran G ( a H b ) = ( b H a ) ) ) $=
      ( vy vx wcel wa cop ccm2 cv co wceq crn wral copab df-com2 oveq raleqbidv
      a1i eleq2d rneq raleqdv eqeq12d 2ralbidv opelopabg bitrd ) CAIDBIJZCDKZLI
      UKEMZFMZGMZNZUMULUNNZOZFHMZPZQZEUSQZHGRZIULUMDNZUMULDNZOZFCPZQEVFQZUJLVBU
      KLVBOUJHGEFSUBUCVAUQFVFQZEVFQVGHGCDABURCOZUTVHEUSVFURCUDZVIUQFUSVFVJUEUAU
      NDOZUQVEEFVFVFVKUOVCUPVDULUMUNDTUMULUNDTUFUGUHUI $.
  $}

  $( The predicate "is a commutative ring".  (Contributed by Jeff Madsen,
     8-Jun-2010.) $)
  iscrngo $p |- ( R e. CRingOps <-> ( R e. RingOps /\ R e. Com2 ) ) $=
    ( crngo ccm2 ccring df-crngo elin2 ) ABCDEF $.

  ${
    $d R x y $.  $d X x y $.
    iscring2.1 $e |- G = ( 1st ` R ) $.
    iscring2.2 $e |- H = ( 2nd ` R ) $.
    iscring2.3 $e |- X = ran G $.
    $( The predicate "is a commutative ring".  (Contributed by Jeff Madsen,
       8-Jun-2010.) $)
    iscrngo2 $p |- ( R e. CRingOps <-> ( R e. RingOps /\
                          A. x e. X A. y e. X ( x H y ) = ( y H x ) ) ) $=
      ( wcel crngo ccm2 wa cv co wceq wral c1st cfv cvv ccring iscrngo c2nd cop
      wb wrel relrngo 1st2nd mpan eleq1 crn rneqi eqtri raleqi eqeq12i raleqbii
      oveqi ralbii fvex iscom2 mp2an 3bitr4ri syl6bb syl pm5.32i bitri ) CUAJCK
      JZCLJZMVGANZBNZEOZVJVIEOZPZBFQZAFQZMCUBVGVHVOVGCCRSZCUCSZUDZPZVHVOUEKUFVG
      VSUGCKUHUIVSVHVRLJZVOCVRLUJVIVJVQOZVJVIVQOZPZBVPUKZQZAFQWEAWDQZVOVTWEAFWD
      FDUKWDIDVPGULUMZUNVNWEAFVMWCBFWDWGVKWAVLWBEVQVIVJHUQEVQVJVIHUQUOUPURVPTJV
      QTJVTWFUECRUSCUCUSTTVPVQABUTVAVBVCVDVEVF $.
  $}

  ${
    $d ph w x y z $.  $d G w x y z $.  $d H w x y z $.  $d X w x y z $.
    $d U x y $.
    iscringd.1 $e |- ( ph -> G e. AbelOp ) $.
    iscringd.2 $e |- ( ph -> X = ran G ) $.
    iscringd.3 $e |- ( ph -> H : ( X X. X ) --> X ) $.
    iscringd.4 $e |- ( ( ph /\ ( x e. X /\ y e. X /\ z e. X ) )
                                  -> ( ( x H y ) H z ) = ( x H ( y H z ) ) ) $.
    iscringd.5 $e |- ( ( ph /\ ( x e. X /\ y e. X /\ z e. X ) )
                          -> ( x H ( y G z ) ) = ( ( x H y ) G ( x H z ) ) ) $.
    iscringd.6 $e |- ( ph -> U e. X ) $.
    iscringd.7 $e |- ( ( ph /\ y e. X ) -> ( y H U ) = y ) $.
    iscringd.8 $e |- ( ( ph /\ ( x e. X /\ y e. X ) )
                                              -> ( x H y ) = ( y H x ) ) $.
    $( Conditions that determine a commutative ring.  (Contributed by Jeff
       Madsen, 20-Jun-2011.)  (Revised by Mario Carneiro, 23-Dec-2013.) $)
    iscringd $p |- ( ph -> <. G , H >. e. CRingOps ) $=
      ( wcel co wceq wa vw cop crngo ccm2 ccring cv w3a id 3com13 eleq1 3anbi1d
      wi anbi2d oveq2 oveq12d eqeq12d imbi12d 3anbi3d oveq1 oveq1d cablo adantr
      crn simpr3 eleqtrd simpr2 eqid ablocom syl3anc simpr1 cgr ablogrpo grpocl
      syl eleqtrrd jca ovex chvarv vtocl syldan 3adantr3 3adantr2 cxp wf fovrnd
      3eqtrd 3eqtr2d sylan2 imbi2d an12s ex vtoclga mpcom eqtrd isrngod anbi12d
      wral eleq2d biimpar ralrimivva cvv rnexg eqeltrd xpexg syl2anc fex iscom2
      wb mpbird iscrngo sylanbrc ) AFGUBZUCQXLUDQZXLUEQABCDEFGHIJKLMBUFZHQZCUFZ
      HQZDUFZHQZUGZAXSXQXOUGZXNXPFRZXRGRZXNXRGRZXPXRGRZFRZSZXSXQXOYAYAUHUIAUAUF
      ZHQZXQXOUGZTZYBYHGRZXNYHGRZXPYHGRZFRZSZULZAYATZYGULUADYHXRSZYKYRYPYGYSYJY
      AAYSYIXSXQXOYHXRHUJUKUMYSYLYCYOYFYHXRYBGUNYSYMYDYNYEFYHXRXNGUNYHXRXPGUNUO
      UPUQAYIXQXSUGZTZXRXPFRZYHGRZXRYHGRZYNFRZSZULZYQDBXRXNSZUUAYKUUFYPUUHYTYJA
      UUHXSXOYIXQXRXNHUJURUMUUHUUCYLUUEYOUUHUUBYBYHGXRXNXPFUSUTUUHUUDYMYNFXRXNY
      HGUSUTUPUQAXTTZUUBXNGRZXRXNGRZXPXNGRZFRZSZULUUGBUAXNYHSZUUIUUAUUNUUFUUOXT
      YTAUUOXOYIXQXSXNYHHUJUKUMUUOUUJUUCUUMUUEXNYHUUBGUNUUOUUKUUDUULYNFXNYHXRGU
      NXNYHXPGUNUOUPUQUUIUUJXPXRFRZXNGRZXNUUPGRZUUMUUIUUBUUPXNGUUIFVAQZXRFVCZQZ
      XPUUTQZUUBUUPSAUUSXTIVBZUUIXRHUUTAXOXQXSVDZAHUUTSXTJVBZVEZUUIXPHUUTAXOXQX
      SVFZUVEVEZXRXPFUUTUUTVGZVHVIUTAXTXOUUPHQZTZUURUUQSZUUIXOUVJAXOXQXSVJZUUIU
      UPUUTHUUIFVKQZUVBUVAUUPUUTQUUIUUSUVNUVCFVLVNUVHUVFXPXRFUUTUVIVMVIUVEVOVPA
      XOYITZTZYMYHXNGRZSZULZAUVKTZUVLULUAUUPXPXRFVQYHUUPSZUVPUVTUVRUVLUWAUVOUVK
      AUWAYIUVJXOYHUUPHUJUMUMUWAYMUURUVQUUQYHUUPXNGUNYHUUPXNGUSUPUQAXOXQTZTZXNX
      PGRZUULSZULZUVSCUAXPYHSZUWCUVPUWEUVRUWGUWBUVOAUWGXQYIXOXPYHHUJUMUMUWGUWDY
      MUULUVQXPYHXNGUNXPYHXNGUSUPUQPVRVSVTUUIUURUWDYDFRUULUUKFRZUUMMUUIUWDUULYD
      UUKFAXOXQUWEXSPWAAXOXSYDUUKSZXQUWFAXOXSTZTZUWIULCDXPXRSZUWCUWKUWEUWIUWLUW
      BUWJAUWLXQXSXOXPXRHUJUMUMUWLUWDYDUULUUKXPXRXNGUNXPXRXNGUSUPUQPVRWBUOUUIUU
      SUULUUTQUUKUUTQUWHUUMSUVCUUIUULHUUTUUIXPXNHHHGAHHWCZHGWDZXTKVBZUVGUVMWEUV
      EVEUUIUUKHUUTUUIXRXNHHHGUWOUVDUVMWEUVEVEUULUUKFUUTUVIVHVIWFWGVRVRVRWHNAXQ
      TZEXPGRZXPEGRZXPEHQZUWPUWQUWRSZAUWSXQNVBUWPUWEULUWPUWTULBEHXNESZUWEUWTUWP
      UXAUWDUWQUULUWRXNEXPGUSXNEXPGUNUPWIXOUWPUWEAXOXQUWEPWJWKWLWMOWNOWOAXMUWEC
      UUTWQBUUTWQZAUWEBCUUTUUTAXNUUTQZUVBTZUWBUWEAUWBUXDAXOUXCXQUVBAHUUTXNJWRAH
      UUTXPJWRWPWSPVTWTAUUSGXAQZXMUXBXHIAUWNUWMXAQZUXEKAHXAQZUXGUXFAHUUTXAJAUUS
      UUTXAQIFVAXBVNXCZUXHHHXAXAXDXEUWMHXAGXFXEVAXAFGBCXGXEXIXLXJXK $.
  $}

  $( A field is a division ring.  (Contributed by Jeff Madsen, 10-Jun-2010.)
     (Revised by Mario Carneiro, 15-Dec-2013.)  (New usage is discouraged.) $)
  flddivrng $p |- ( K e. Fld -> K e. DivRingOps ) $=
    ( cfld cdrng ccm2 cin df-fld inss1 eqsstri sseli ) BCABCDECFCDGHI $.

  $( A commutative ring is a ring.  (Contributed by Jeff Madsen,
     10-Jun-2010.) $)
  crngorngo $p |- ( R e. CRingOps -> R e. RingOps ) $=
    ( ccring wcel crngo ccm2 iscrngo simplbi ) ABCADCAECAFG $.

  ${
    $d X x y $.  $d A x y $.  $d B y $.  $d H x y $.  $d R x y $.
    crngocom.1 $e |- G = ( 1st ` R ) $.
    crngocom.2 $e |- H = ( 2nd ` R ) $.
    crngocom.3 $e |- X = ran G $.
    $( The multiplication operation of a commutative ring is commutative.
       (Contributed by Jeff Madsen, 8-Jun-2010.) $)
    crngocom $p |- ( ( R e. CRingOps /\ A e. X /\ B e. X )
                                        -> ( A H B ) = ( B H A ) ) $=
      ( vx vy ccring wcel co wceq cv wral oveq1 oveq2 eqeq12d wa crngo iscrngo2
      simprbi rspc2v mpan9 3impb ) CLMZAFMZBFMZABENZBAENZOZUHJPZKPZENZUOUNENZOZ
      KFQJFQZUIUJUAUMUHCUBMUSJKCDEFGHIUCUDURUMAUOENZUOAENZOJKABFFUNAOUPUTUQVAUN
      AUOERUNAUOESTUOBOUTUKVAULUOBAESUOBAERTUEUFUG $.
  $}

  ${
    crngm.1 $e |- G = ( 1st ` R ) $.
    crngm.2 $e |- H = ( 2nd ` R ) $.
    crngm.3 $e |- X = ran G $.
    $( Commutative/associative law for commutative rings.  (Contributed by Jeff
       Madsen, 19-Jun-2010.) $)
    crngm23 $p |- ( ( R e. CRingOps /\ ( A e. X /\ B e. X /\ C e. X ) )
                                -> ( ( A H B ) H C ) = ( ( A H C ) H B ) ) $=
      ( ccring wcel w3a wa co wceq crngocom 3adant3r1 rngoass sylan crngo 3exp2
      oveq2d crngorngo com34 3imp2 3eqtr4d ) DKLZAGLZBGLZCGLZMZNZABCFOZFOZACBFO
      ZFOZABFOCFOZACFOBFOZUMUNUPAFUHUJUKUNUPPUIBCDEFGHIJQRUCUHDUALZULURUOPDUDZA
      BCDEFGHIJSTUHUTULUSUQPZVAUTUIUJUKVBUTUIUKUJVBUTUIUKUJVBACBDEFGHIJSUBUEUFT
      UG $.

    $( Commutative/associative law for commutative rings.  (Contributed by Jeff
       Madsen, 19-Jun-2010.) $)
    crngm4 $p |- ( ( R e. CRingOps /\ ( A e. X /\ B e. X )
                                  /\ ( C e. X /\ D e. X ) ) ->
                  ( ( A H B ) H ( C H D ) ) = ( ( A H C ) H ( B H D ) ) ) $=
      ( wcel wa co wceq w3a adantrrr rngocl 3expb 3jca ccring crngm23 crngorngo
      df-3an sylan2br oveq1d crngo adantrr simprrl simprrr rngoass syldan sylan
      adantrlr simprlr 3eqtr3d 3impb ) EUALZAHLZBHLZMZCHLZDHLZMZABGNZCDGNGNZACG
      NZBDGNGNZOURVAVDMZMZVECGNZDGNZVGBGNZDGNZVFVHVJVKVMDGURVAVBVKVMOZVCVAVBMUR
      USUTVBPVOUSUTVBUDABCEFGHIJKUBUEQUFUREUGLZVIVLVFOZEUCZVPVIVEHLZVBVCPVQVPVI
      MZVSVBVCVPVAVSVDVPUSUTVSABEFGHIJKRSUHVPVAVBVCUIVPVAVBVCUJZTVECDEFGHIJKUKU
      LUMURVPVIVNVHOZVRVPVIVGHLZUTVCPWBVTWCUTVCVPVAVBWCVCVPUSVBWCUTVPUSVBWCACEF
      GHIJKRSUNQVPUSUTVDUOWATVGBDEFGHIJKUKULUMUPUQ $.
  $}

  $( A field is a commutative ring.  (Contributed by Jeff Madsen,
     8-Jun-2010.) $)
  fldcrng $p |- ( K e. Fld -> K e. CRingOps ) $=
    ( cdrng wcel ccm2 crngo cfld ccring c2nd cfv c1st crn cgi csn cdif cxp cres
    wa cgr eqid drngoi simpld anim1i df-fld elin2 iscrngo 3imtr4i ) ABCZADCZQAE
    CZUHQAFCAGCUGUIUHUGUIAHIZAJIZKZUKLIZMNZUNOPRCAUKUJULUMUKSUJSULSUMSTUAUBABDF
    UCUDAUEUF $.

  $( The predicate "is a field".  (Contributed by Jeff Madsen, 10-Jun-2010.) $)
  isfld2 $p |- ( K e. Fld <-> ( K e. DivRingOps /\ K e. CRingOps ) ) $=
    ( cfld wcel cdrng ccring wa flddivrng fldcrng jca crngo iscrngo simprbi cin
    ccm2 elin biimpri df-fld syl6eleqr sylan2 impbii ) ABCZADCZAECZFUAUBUCAGAHI
    UCUBANCZUAUCAJCUDAKLUBUDFZADNMZBAUFCUEADNOPQRST $.

  ${
    $d R w x y z $.  $d S w x y z $.  $d X w x y z $.  $d Y w x y z $.
    $d F w x y z $.
    crnghomfo.1 $e |- G = ( 1st ` R ) $.
    crnghomfo.2 $e |- X = ran G $.
    crnghomfo.3 $e |- J = ( 1st ` S ) $.
    crnghomfo.4 $e |- Y = ran J $.
    $( The image of a homomorphism from a commutative ring is commutative.
       (Contributed by Jeff Madsen, 4-Jan-2011.) $)
    crngohomfo $p |- ( ( ( R e. CRingOps /\ S e. RingOps )
        /\ ( F e. ( R RngHom S ) /\ F : X -onto-> Y ) ) -> S e. CRingOps ) $=
      ( vy vz vw vx wcel wa co cfv wceq ccring crngo crnghom wfo cv c2nd simplr
      wral wrex wi foelrn ex anim12d reeanv syl6ibr ad2antll w3a crngocom 3expb
      eqid 3ad2antl1 fveq2d crngorngo rngohommul syl3anl1 ancom2s oveq12 ancoms
      3eqtr3d eqeq12d syl5ibrcom 3expa adantrr rexlimdvv syld iscrngo2 sylanbrc
      ralrimivv ) AUAPZBUBPZQZCABUCRPZFGCUDZQZQZVTLUEZMUEZBUFSZRZWGWFWHRZTZMGUH
      LGUHBUAPVSVTWDUGWEWKLMGGWEWFGPZWGGPZQZWFNUEZCSZTZWGOUEZCSZTZQZOFUINFUIZWK
      WCWNXBUJWAWBWCWNWQNFUIZWTOFUIZQXBWCWLXCWMXDWCWLXCNFGWFCUKULWCWMXDOFGWGCUK
      ULUMWQWTNOFFUNUOUPWEXAWKNOFFWAWBWOFPZWRFPZQZXAWKUJZUJZWCVSVTWBXIVSVTWBUQZ
      XGXHXJXGQZWKXAWPWSWHRZWSWPWHRZTXKWOWRAUFSZRZCSZWRWOXNRZCSZXLXMXKXOXQCVSVT
      XGXOXQTZWBVSXEXFXSWOWRADXNFHXNUTZIURUSVAVBVSAUBPZVTWBXGXPXLTAVCZWOWRABCDX
      NWHFHIXTWHUTZVDVEVSYAVTWBXGXRXMTZYBYAVTWBUQXFXEYDWRWOABCDXNWHFHIXTYCVDVFV
      EVIXAWIXLWJXMWFWPWGWSWHVGWTWQWJXMTWGWSWFWPWHVGVHVJVKULVLVMVNVOVRLMBEWHGJY
      CKVPVQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ideals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c Idl $.
  $c PrIdl $.
  $c MaxIdl $.

  $( Extend class notation with the class of ideals. $)
  cidl $a class Idl $.

  $( Extend class notation with the class of prime ideals. $)
  cpridl $a class PrIdl $.

  $( Extend class notation with the class of maximal ideals. $)
  cmaxidl $a class MaxIdl $.

  ${
    $d r i x y z $.
    $( Define the class of (two-sided) ideals of a ring ` R ` .  A subset of
       ` R ` is an ideal if it contains ` 0 ` , is closed under addition, and
       is closed under multiplication on either side by any element of ` R ` .
       (Contributed by Jeff Madsen, 10-Jun-2010.) $)
    df-idl $a |- Idl = ( r e. RingOps |->
                { i e. ~P ran ( 1st ` r ) | ( ( GId ` ( 1st ` r ) ) e. i /\
                      A. x e. i ( A. y e. i ( x ( 1st ` r ) y ) e. i /\
                    A. z e. ran ( 1st ` r ) ( ( z ( 2nd ` r ) x ) e. i /\
                            ( x ( 2nd ` r ) z ) e. i ) ) ) } ) $.
  $}

  ${
    $d r i a b x y $.
    $( Define the class of prime ideals of a ring ` R ` .  A proper ideal ` I `
       of ` R ` is prime if whenever ` A B C_ I ` for ideals ` A ` and ` B ` ,
       either ` A C_ I ` or ` B C_ I ` .  The more familiar definition using
       elements rather than ideals is equivalent provided ` R ` is commutative;
       see ~ ispridl2 and ~ ispridlc .  (Contributed by Jeff Madsen,
       10-Jun-2010.) $)
    df-pridl $a |- PrIdl = ( r e. RingOps |->
        { i e. ( Idl ` r ) | ( i =/= ran ( 1st ` r ) /\ A. a e. ( Idl ` r )
          A. b e. ( Idl ` r ) ( A. x e. a A. y e. b ( x ( 2nd ` r ) y ) e. i ->
                                      ( a C_ i \/ b C_ i ) ) ) } ) $.
  $}

  ${
    $d r i j $.
    $( Define the class of maximal ideals of a ring ` R ` .  A proper ideal is
       called maximal if it is maximal with respect to inclusion among proper
       ideals.  (Contributed by Jeff Madsen, 5-Jan-2011.) $)
    df-maxidl $a |- MaxIdl = ( r e. RingOps |->
            { i e. ( Idl ` r ) | ( i =/= ran ( 1st ` r ) /\ A. j e. ( Idl ` r )
                      ( i C_ j -> ( j = i \/ j = ran ( 1st ` r ) ) ) ) } ) $.
  $}

  ${
    $d R r x y z i $.  $d X r z i $.  $d I x y z i $.  $d Z r i $.  $d G r i $.
    $d H r i $.
    idlval.1 $e |- G = ( 1st ` R ) $.
    idlval.2 $e |- H = ( 2nd ` R ) $.
    idlval.3 $e |- X = ran G $.
    idlval.4 $e |- Z = ( GId ` G ) $.
    $( The class of ideals of a ring.  (Contributed by Jeff Madsen,
       10-Jun-2010.) $)
    idlval $p |- ( R e. RingOps -> ( Idl ` R ) = { i e. ~P X | ( Z e. i /\
                                A. x e. i ( A. y e. i ( x G y ) e. i /\
                      A. z e. X ( ( z H x ) e. i /\ ( x H z ) e. i ) ) ) } ) $=
      ( cv c1st cfv wcel co wral wa cgi c2nd crn cpw crab crngo cidl wceq fveq2
      vr syl6eqr rneqd fveq2d eleq1d ralbidv anbi12d raleqbidv rabeqbidv df-idl
      pweqd oveqd cvv fvex eqeltri rnex pwex rabex fvmpt ) UJDUJNZOPZUAPZENZQZA
      NZBNZVJRZVLQZBVLSZCNZVNVIUBPZRZVLQZVNVSVTRZVLQZTZCVJUCZSZTZAVLSZTZEWFUDZU
      EIVLQZVNVOFRZVLQZBVLSZVSVNGRZVLQZVNVSGRZVLQZTZCHSZTZAVLSZTZEHUDZUEUFUGVID
      UHZWJXDEWKXEXFWFHXFWFFUCZHXFVJFXFVJDOPZFVIDOUIJUKZULLUKZUTXFVMWLWIXCXFVKI
      VLXFVKFUAPIXFVJFUAXIUMMUKUNXFWHXBAVLXFVRWOWGXAXFVQWNBVLXFVPWMVLXFVJFVNVOX
      IVAUNUOXFWEWTCWFHXJXFWBWQWDWSXFWAWPVLXFVTGVSVNXFVTDUBPGVIDUBUIKUKZVAUNXFW
      CWRVLXFVTGVNVSXKVAUNUPUQUPUOUPURABCEUJUSXDEXEHHXGVBLFFXHVBJDOVCVDVEVDVFVG
      VH $.

    $( The predicate "is an ideal of the ring ` R ` ."  (Contributed by Jeff
       Madsen, 10-Jun-2010.) $)
    isidl $p |- ( R e. RingOps -> ( I e. ( Idl ` R ) <-> ( I C_ X /\ Z e. I /\
                                A. x e. I ( A. y e. I ( x G y ) e. I /\
                      A. z e. X ( ( z H x ) e. I /\ ( x H z ) e. I ) ) ) ) ) $=
      ( vi wcel cv co wral wa eleq2 cidl cfv cpw crab wss w3a idlval eleq2d crn
      crngo c1st fvex eqeltri rnex elpw2 anbi1i wceq raleqbi1dv anbi12d ralbidv
      cvv elrab 3anass 3bitr4i syl6bb ) DUJOZGDUAUBZOGINPZOZAPZBPEQZVHOZBVHRZCP
      ZVJFQZVHOZVJVNFQZVHOZSZCHRZSZAVHRZSZNHUCZUDZOZGHUEZIGOZVKGOZBGRZVOGOZVQGO
      ZSZCHRZSZAGRZUFZVFVGWEGABCDNEFHIJKLMUGUHGWDOZWHWPSZSWGWSSWFWQWRWGWSGHHEUI
      VALEEDUKUBVAJDUKULUMUNUMUOUPWCWSNGWDVHGUQZVIWHWBWPVHGITWAWOAVHGWTVMWJVTWN
      VLWIBVHGVHGVKTURWTVSWMCHWTVPWKVRWLVHGVOTVHGVQTUSUTUSURUSVBWGWHWPVCVDVE $.

    $d X x $.
    $( The predicate "is an ideal of the commutative ring ` R ` ."
       (Contributed by Jeff Madsen, 10-Jun-2010.) $)
    isidlc $p |- ( R e. CRingOps -> ( I e. ( Idl ` R ) <-> ( I C_ X /\ Z e. I
        /\
                                A. x e. I ( A. y e. I ( x G y ) e. I /\
                                    A. z e. X ( z H x ) e. I ) ) ) ) $=
      ( wcel cv co wral wa w3a wb ccring cidl cfv wss crngo crngorngo isidl syl
      ssel2 crngocom eleq1d biimprd 3expa pm4.71d bicomd ralbidva anbi2d sylan2
      wi anassrs adantrr pm5.32da df-3an 3bitr4g bitrd ) DUANZGDUBUCNZGHUDZIGNZ
      AOZBOEPGNBGQZCOZVJFPZGNZVJVLFPZGNZRZCHQZRZAGQZSZVHVIVKVNCHQZRZAGQZSZVFDUE
      NVGWATDUFABCDEFGHIJKLMUGUHVFVHVIRZVTRWFWDRWAWEVFWFVTWDVFVHVTWDTVIVFVHRVSW
      CAGVFVHVJGNZVSWCTZVHWGRVFVJHNZWHGHVJUIVFWIRZVRWBVKWJVQVNCHWJVLHNZRZVNVQWL
      VNVPVFWIWKVNVPUSVFWIWKSZVPVNWMVOVMGVJVLDEFHJKLUJUKULUMUNUOUPUQURUTUPVAVBV
      HVIVTVCVHVIWDVCVDVE $.
  $}

  ${
    $d R x y z $.  $d I x y z $.  $d X z $.
    idlss.1 $e |- G = ( 1st ` R ) $.
    idlss.2 $e |- X = ran G $.
    $( An ideal of ` R ` is a subset of ` R ` .  (Contributed by Jeff Madsen,
       10-Jun-2010.) $)
    idlss $p |- ( ( R e. RingOps /\ I e. ( Idl ` R ) ) -> I C_ X ) $=
      ( vx vy vz crngo wcel cidl cfv wa wss cgi cv co wral eqid c2nd w3a biimpa
      isidl simp1d ) AJKZCALMKZNCDOZBPMZCKZGQZHQBRCKHCSIQZUKAUAMZRCKUKULUMRCKNI
      DSNGCSZUFUGUHUJUNUBGHIABUMCDUIEUMTFUITUDUCUE $.

    $( An element of an ideal is an element of the ring.  (Contributed by Jeff
       Madsen, 19-Jun-2010.) $)
    idlcl $p |- ( ( ( R e. RingOps /\ I e. ( Idl ` R ) )
                                      /\ A e. I ) -> A e. X ) $=
      ( crngo wcel cidl cfv wa idlss sselda ) BHIDBJKILDEABCDEFGMN $.
  $}

  ${
    $d R x y z $.  $d I x y z $.  $d G z $.
    idl0cl.1 $e |- G = ( 1st ` R ) $.
    idl0cl.2 $e |- Z = ( GId ` G ) $.
    $( An ideal contains ` 0 ` .  (Contributed by Jeff Madsen, 10-Jun-2010.) $)
    idl0cl $p |- ( ( R e. RingOps /\ I e. ( Idl ` R ) ) -> Z e. I ) $=
      ( vx vy vz crngo wcel cidl cfv wa crn wss cv co wral eqid c2nd w3a biimpa
      isidl simp2d ) AJKZCALMKZNCBOZPZDCKZGQZHQBRCKHCSIQZUKAUAMZRCKUKULUMRCKNIU
      HSNGCSZUFUGUIUJUNUBGHIABUMCUHDEUMTUHTFUDUCUE $.
  $}

  ${
    $d R x y z $.  $d I x y z $.  $d G x y z $.  $d A x y $.  $d B y $.
    idladdcl.1 $e |- G = ( 1st ` R ) $.
    $( An ideal is closed under addition.  (Contributed by Jeff Madsen,
       10-Jun-2010.) $)
    idladdcl $p |- ( ( ( R e. RingOps /\ I e. ( Idl ` R ) )
                              /\ ( A e. I /\ B e. I ) ) -> ( A G B ) e. I ) $=
      ( vx vy vz crngo wcel cidl cfv wa cv co wral eqid wceq eleq1d crn wss cgi
      c2nd w3a isidl biimpa simp3d simpl ralimi syl oveq1 oveq2 rspc2v mpan9 )
      CJKZECLMKZNZGOZHOZDPZEKZHEQZGEQZAEKBEKNABDPZEKZURVCIOZUSCUDMZPEKUSVGVHPEK
      NIDUAZQZNZGEQZVDUREVIUBZDUCMZEKZVLUPUQVMVOVLUEGHICDVHEVIVNFVHRVIRVNRUFUGU
      HVKVCGEVCVJUIUJUKVBVFAUTDPZEKGHABEEUSASVAVPEUSAUTDULTUTBSVPVEEUTBADUMTUNU
      O $.
  $}

  ${
    $d R x y z $.  $d I x y z $.  $d X x z $.  $d H x z $.  $d A x z $.
    $d B z $.
    idllmulcl.1 $e |- G = ( 1st ` R ) $.
    idllmulcl.2 $e |- H = ( 2nd ` R ) $.
    idllmulcl.3 $e |- X = ran G $.
    $( An ideal is closed under multiplication on the left.  (Contributed by
       Jeff Madsen, 10-Jun-2010.) $)
    idllmulcl $p |- ( ( ( R e. RingOps /\ I e. ( Idl ` R ) )
                              /\ ( A e. I /\ B e. X ) ) -> ( B H A ) e. I ) $=
      ( vz vx vy wcel cfv wa cv co wral ralimi crngo cidl wss eqid isidl biimpa
      cgi w3a simp3d simpl adantl syl wceq oveq2 eleq1d oveq1 rspc2v mpan9 ) CU
      ANZFCUBONZPZKQZLQZERZFNZKGSZLFSZAFNBGNPBAERZFNZVAVCMQDRFNMFSZVEVCVBERFNZP
      ZKGSZPZLFSZVGVAFGUCZDUGOZFNZVOUSUTVPVRVOUHLMKCDEFGVQHIJVQUDUEUFUIVNVFLFVM
      VFVJVLVEKGVEVKUJTUKTULVEVIVBAERZFNLKABFGVCAUMVDVSFVCAVBEUNUOVBBUMVSVHFVBB
      AEUPUOUQUR $.

    $( An ideal is closed under multiplication on the right.  (Contributed by
       Jeff Madsen, 10-Jun-2010.) $)
    idlrmulcl $p |- ( ( ( R e. RingOps /\ I e. ( Idl ` R ) )
                              /\ ( A e. I /\ B e. X ) ) -> ( A H B ) e. I ) $=
      ( vx vz vy wcel cfv wa cv co wral ralimi crngo cidl wss eqid isidl biimpa
      cgi w3a simp3d simpr adantl syl wceq oveq1 eleq1d oveq2 rspc2v mpan9 ) CU
      ANZFCUBONZPZKQZLQZERZFNZLGSZKFSZAFNBGNPABERZFNZVAVBMQDRFNMFSZVCVBERFNZVEP
      ZLGSZPZKFSZVGVAFGUCZDUGOZFNZVOUSUTVPVRVOUHKMLCDEFGVQHIJVQUDUEUFUIVNVFKFVM
      VFVJVLVELGVKVEUJTUKTULVEVIAVCERZFNKLABFGVBAUMVDVSFVBAVCEUNUOVCBUMVSVHFVCB
      AEUPUOUQUR $.
  $}

  ${
    idlnegcl.1 $e |- G = ( 1st ` R ) $.
    idlnegcl.2 $e |- N = ( inv ` G ) $.
    $( An ideal is closed under negation.  (Contributed by Jeff Madsen,
       10-Jun-2010.) $)
    idlnegcl $p |- ( ( ( R e. RingOps /\ I e. ( Idl ` R ) )
                                          /\ A e. I ) -> ( N ` A ) e. I ) $=
      ( crngo wcel cidl cfv wa c2nd cgi co crn wss eqid anassrs mpdan wceq c1st
      idlss ssel2 rngonegmn1l sylan2 syldanl rneqi rngonegcl ad2antrr idllmulcl
      rngo1cl eqeltrd ) BHIZDBJKIZLZADIZLZAEKZBMKZNKZEKZAUTOZDUNUODCPZQZUQUSVCU
      AZBCDVDFVDRZUCUNVEUQVFVEUQLUNAVDIVFDVDAUDABVACUTEVDFUTRZVGGVARZUEUFSUGURV
      BVDIZVCDIZUNVJUOUQUNVAVDIVJBVAUTVDCBUBKFUHVHVIULVABCEVDFVGGUITUJUPUQVJVKA
      VBBCUTDVDFVHVGUKSTUM $.
  $}

  ${
    idlsubcl.1 $e |- G = ( 1st ` R ) $.
    idlsubcl.2 $e |- D = ( /g ` G ) $.
    $( An ideal is closed under subtraction.  (Contributed by Jeff Madsen,
       19-Jun-2010.) $)
    idlsubcl $p |- ( ( ( R e. RingOps /\ I e. ( Idl ` R ) )
                              /\ ( A e. I /\ B e. I ) ) -> ( A D B ) e. I ) $=
      ( crngo wcel cidl cfv wa co cgn crn wceq eqid idlcl syldan anim12da 3expb
      rngosub adantlr simprl idlnegcl adantrl jca idladdcl eqeltrd ) DIJZFDKLJZ
      MZAFJZBFJZMZMZABCNZABEOLZLZENZFUMUPAEPZJZBVBJZMZURVAQZUMUNUOVCVDADEFVBGVB
      RZSBDEFVBGVGSUAUKVEVFULUKVCVDVFABCDEUSVBGVGUSRZHUCUBUDTUMUPUNUTFJZMVAFJUQ
      UNVIUMUNUOUEUMUOVIUNBDEFUSGVHUFUGUHAUTDEFGUITUJ $.
  $}

  ${
    $d R x y z $.  $d X x y z $.
    rngidl.1 $e |- G = ( 1st ` R ) $.
    rngidl.2 $e |- X = ran G $.
    $( A ring ` R ` is an ` R ` ideal.  (Contributed by Jeff Madsen,
       10-Jun-2010.) $)
    rngoidl $p |- ( R e. RingOps -> X e. ( Idl ` R ) ) $=
      ( vx vy vz crngo wcel cfv cv co wral wa eqid 3expa ralrimiva rngocl jca
      cidl wss cgi c2nd ssid a1i rngo0cl rngogcl w3a 3com23 isidl mpbir3and ) A
      IJZCAUAKJCCUBZBUCKZCJFLZGLZBMCJZGCNZHLZUPAUDKZMCJZUPUTVAMCJZOZHCNZOZFCNUN
      UMCUEUFABCUODEUOPZUGUMVFFCUMUPCJZOZUSVEVIURGCUMVHUQCJURUPUQABCDEUHQRVIVDH
      CUMVHUTCJZVDUMVHVJUIVBVCUMVJVHVBUTUPABVACDVAPZESUJUPUTABVACDVKESTQRTRFGHA
      BVACCUODVKEVGUKUL $.
  $}

  ${
    $d R x y z $.  $d Z x y z $.  $d G z $.
    0idl.1 $e |- G = ( 1st ` R ) $.
    0idl.2 $e |- Z = ( GId ` G ) $.
    $( The set containing only ` 0 ` is an ideal.  (Contributed by Jeff Madsen,
       10-Jun-2010.) $)
    0idl $p |- ( R e. RingOps -> { Z } e. ( Idl ` R ) ) $=
      ( vx vy vz wcel cfv cv co wral wa eqid wceq ovex elsn sylibr eleq1d crngo
      csn cidl crn wss c2nd rngo0cl snssd cgi cvv fvex eqeltri snid velsn mpdan
      a1i rngo0rid oveq2 syl5ibrcom syl5bi ralrimiv rngorz rngolz jca ralrimiva
      oveq1 ralbidv anbi12d isidl mpbir3and ) AUAIZCUBZAUCJIVLBUDZUECVLIZFKZGKZ
      BLZVLIZGVLMZHKZVOAUFJZLZVLIZVOVTWALZVLIZNZHVMMZNZFVLMVKCVMABVMCDVMOZEUGZU
      HVNVKCCBUIJUJEBUIUKULUMUPVKWHFVLVOVLIVOCPZVKWHFCUNVKWHWKCVPBLZVLIZGVLMZVT
      CWALZVLIZCVTWALZVLIZNZHVMMZNVKWNWTVKWMGVLVPVLIVPCPZVKWMGCUNVKWMXACCBLZVLI
      ZVKXBCPZXCVKCVMIXDWJCABVMCDWIEUQUOXBCCCBQRSXAWLXBVLVPCCBURTUSUTVAVKWSHVMV
      KVTVMINZWPWRXEWOCPWPVTABWAVMCEWIDWAOZVBWOCVTCWAQRSXEWQCPWRVTABWAVMCEWIDXF
      VCWQCCVTWAQRSVDVEVDWKVSWNWGWTWKVRWMGVLWKVQWLVLVOCVPBVFTVGWKWFWSHVMWKWCWPW
      EWRWKWBWOVLVOCVTWAURTWKWDWQVLVOCVTWAVFTVHVGVHUSUTVAFGHABWAVLVMCDXFWIEVIVJ
      $.
  $}

  ${
    $d R x $.  $d X x $.  $d I x $.  $d U x $.
    1idl.1 $e |- G = ( 1st ` R ) $.
    1idl.2 $e |- H = ( 2nd ` R ) $.
    1idl.3 $e |- X = ran G $.
    1idl.4 $e |- U = ( GId ` H ) $.
    $( Two ways of expressing the unit ideal.  (Contributed by Jeff Madsen,
       10-Jun-2010.) $)
    1idl $p |- ( ( R e. RingOps /\ I e. ( Idl ` R ) )
           -> ( U e. I <-> I = X ) ) $=
      ( vx crngo wcel cidl cfv wa wceq wss adantr crn idlss cv c1st rneqi eqtri
      rngolidm ad2ant2rl idlrmulcl eqeltrrd expr ssrdv eqssd rngo1cl syl5ibrcom
      co ex eleq2 impbid ) ALMZEANOMZPZBEMZEFQZVAVBVCVAVBPZEFVAEFRVBACEFGIUASVD
      KFEVAVBKUBZFMZVEEMVAVBVFPPBVEDUOZVEEUSVFVGVEQUTVBVEABDFHFCTAUCOZTICVHGUDU
      EZJUFUGBVEACDEFGHIUHUIUJUKULUPVAVBVCBFMZUSVJUTABDFVIHJUMSEFBUQUNUR $.
  $}

  ${
    0ring.1 $e |- G = ( 1st ` R ) $.
    0ring.2 $e |- H = ( 2nd ` R ) $.
    0ring.3 $e |- X = ran G $.
    0ring.4 $e |- Z = ( GId ` G ) $.
    0ring.5 $e |- U = ( GId ` H ) $.
    $( In a ring, ` 0 = 1 ` iff the ring contains only ` 0 ` .  (Contributed by
       Jeff Madsen, 6-Jan-2011.) $)
    0rngo $p |- ( R e. RingOps -> ( Z = U <-> X = { Z } ) ) $=
      ( crngo wcel wceq csn cgi cfv cvv fvex crn eqeltri snid cidl wb 0idl 1idl
      eleq1 mpbii mpdan syl5ib eqcom syl6ib c1st rneqi eqtri eleq2 elsni eqcomd
      rngo1cl syl6bi syl5com impbid ) ALMZFBNZEFOZNZVCVDVEENZVFVDBVEMZVCVGVDFVE
      MVHFFCPQRJCPSUAUBFBVEUGUHVCVEAUCQMVHVGUDACFGJUEABCDVEEGHIKUFUIUJVEEUKULVC
      BEMZVFVDABDEECTAUMQZTICVJGUNUOHKUSVFVIVHVDEVEBUPVHBFBFUQURUTVAVB $.
  $}

  ${
    $d R i x y z $.  $d H i x y z $.  $d X i x y z $.  $d Z i x y z $.
    divrngidl.1 $e |- G = ( 1st ` R ) $.
    divrngidl.2 $e |- H = ( 2nd ` R ) $.
    divrngidl.3 $e |- X = ran G $.
    divrngidl.4 $e |- Z = ( GId ` G ) $.
    $( The only ideals in a division ring are the zero ideal and the unit
       ideal.  (Contributed by Jeff Madsen, 10-Jun-2010.) $)
    divrngidl $p |- ( R e. DivRingOps -> ( Idl ` R ) = { { Z } , X } ) $=
      ( vy vx vi vz wcel cgi wne cv wceq wa wi cdrng crngo cfv co csn cdif wrex
      wral cidl cpr eqid isdrngo2 idl0cl adantr wex wss fvex eqeltri snss necom
      wo cvv c0 pssdifn0 n0 sylib syl2anb idlss ssdif sselda sylan oveq2 eqeq1d
      rexbidv rspcva eldifi anim12i idllmulcl 1idl biimpd eleq1 syl5ibrcom mpid
      imbi1d sylan2 anassrs rexlimdva syldan an32s ex exlimdv syl5 mpand sylibr
      imp neor 0idl rngoidl jaod impbid vex elpr syl6bbr eqrdv adantrl sylbi )
      AUANAUBNZCOUCZEPZJQZKQZCUDZXHRZJDEUEZUFZUGZKXOUHZSSAUIUCZXNDUJZRZKJAXHBCD
      EFGIHXHUKZULXGXQXTXIXGXQSZLXRXSYBLQZXRNZYCXNRZYCDRZVAZYCXSNYBYDYGYBYDYGYB
      YDSYCXNPZYFTZYGXGYDXQYIXGYDSZXQSZEYCNZYHYFYJYLXQABYCEFIUMUNYLYHSMQZYCXNUF
      ZNZMUOZYKYFYLXNYCUPZXNYCPZYPYHEYCEBOUCVBIBOUQURUSYCXNUTYQYRSYNVCPYPXNYCVD
      MYNVEVFVGYKYOYFMYKYOYFYJYOXQYFYJYOSZXQXJYMCUDZXHRZJXOUGZYFYSYMXONZXQUUBYJ
      YCDUPZYOUUCABYCDFHVHUUDYNXOYMYCDXNVIVJVKXPUUBKYMXOXKYMRZXMUUAJXOUUEXLYTXH
      XKYMXJCVLVMVNVOVKYSUUBYFYSUUAYFJXOYJYOXJXONZUUAYFTZYOUUFSYJYMYCNZXJDNZSZU
      UGYOUUHUUFUUIYMYCXNVPXJDXNVPVQYJUUJSZUUAYTYCNZYFYMXJABCYCDFGHVRUUKUULYFTU
      UAXHYCNZYFTZYJUUNUUJYJUUMYFAXHBCYCDFGHYAVSVTUNUUAUULUUMYFYTXHYCWAWDWBWCWE
      WFWGWOWHWIWJWKWLWMWIYFYCXNWPWNWJXGYGYDTXQXGYEYDYFXGYDYEXNXRNABEFIWQYCXNXR
      WAWBXGYDYFDXRNABDFHWRYCDXRWAWBWSUNWTYCXNDLXAXBXCXDXEXF $.
  $}

  ${
    $d R i x y z $.  $d C i x y z $.
    $( The intersection of a nonempty collection of ideals is an ideal.
       (Contributed by Jeff Madsen, 10-Jun-2010.) $)
    intidl $p |- ( ( R e. RingOps /\ C =/= (/) /\ C C_ ( Idl ` R ) )
                                                  -> |^| C e. ( Idl ` R ) ) $=
      ( vx vy vz vi wcel cfv cv co wral wa eqid sylan2 anassrs ralrimiva sylibr
      wss elint2 ex crngo wne cidl w3a cint c1st crn cgi c2nd intssuni 3ad2ant2
      cuni ssel2 idlss 3adant2 unissb sstrd idl0cl vex r19.26 idladdcl ralimdva
      c0 fvex wi ovex syl6ibr syl5bir expdimp ralrimiv idllmulcl anass1rs an32s
      syl5bi an4s imp idlrmulcl jca wb isidl 3ad2ant1 mpbir3and ) BUAGZAVCUBZAB
      UCHZRZUDZAUEZWEGZWHBUFHZUGZRZWJUHHZWHGZCIZDIZWJJZWHGZDWHKZEIZWOBUIHZJZWHG
      ZWOWTXAJZWHGZLZEWKKZLZCWHKZWGWHAULZWKWDWCWHXJRWFAUJUKWGFIZWKRZFAKZXJWKRWC
      WFXMWDWCWFLZXLFAWCWFXKAGZXLWFXOLZWCXKWEGZXLAWEXKUMZBWJXKWKWJMZWKMZUNNOPUO
      FAWKUPQUQWCWFWNWDXNWMXKGZFAKWNXNYAFAWCWFXOYAXPWCXQYAXRBWJXKWMXSWMMZURNOPF
      WMAWJUHVDSQUOWCWFXIWDXNXHCWHWOWHGWOXKGZFAKZXNXHFWOACUSSXNYDXHXNYDLZWSXGYE
      WRDWHWPWHGWPXKGZFAKZYEWRFWPADUSSXNYDYGWRYDYGLYCYFLZFAKZXNWRYCYFFAUTXNYIWQ
      XKGZFAKWRXNYHYJFAWCWFXOYHYJVEZXPWCXQYKXRWCXQLZYHYJWOWPBWJXKXSVATNOVBFWQAW
      OWPWJVFSVGVHVIVNVJYEXFEWKXNWTWKGZYDXFXNYMLZYDLZXCXEYOXBXKGZFAKZXCYNYDYQYN
      YCYPFAXNYMXOYCYPVEZWCYMWFXOYRXPWCYMLZXQYRXRWCXQYMYRYLYMLZYCYPYLYCYMYPWOWT
      BWJXAXKWKXSXAMZXTVKVLTVMNVOOVBVPFXBAWTWOXAVFSQYOXDXKGZFAKZXEYNYDUUCYNYCUU
      BFAXNYMXOYCUUBVEZWCYMWFXOUUDXPYSXQUUDXRWCXQYMUUDYTYCUUBYLYCYMUUBWOWTBWJXA
      XKWKXSUUAXTVQVLTVMNVOOVBVPFXDAWOWTXAVFSQVRVMPVRTVNVJUOWCWDWIWLWNXIUDVSWFC
      DEBWJXAWHWKWMXSUUAXTYBVTWAWB $.
  $}

  $( The intersection of two ideals is an ideal.  (Contributed by Jeff Madsen,
     16-Jun-2011.) $)
  inidl $p |- ( ( R e. RingOps /\ I e. ( Idl ` R ) /\ J e. ( Idl ` R ) )
                                        -> ( I i^i J ) e. ( Idl ` R ) ) $=
    ( crngo wcel cidl cfv w3a cpr cint cin wceq intprg 3adant1 wa wne wss prnzg
    c0 adantr prssi jca intidl 3expb sylan2 3impb eqeltrrd ) ADEZBAFGZEZCUIEZHB
    CIZJZBCKZUIUJUKUMUNLUHBCUIUIMNUHUJUKUMUIEZUJUKOZUHULSPZULUIQZOUOUPUQURUJUQU
    KBCUIRTBCUIUAUBUHUQURUOULAUCUDUEUFUG $.

  ${
    $d R i k x y z $.  $d C i j k x y z $.
    $( The union of a nonempty chain of ideals is an ideal.  (Contributed by
       Jeff Madsen, 5-Jan-2011.) $)
    unichnidl $p |- ( ( R e. RingOps /\ ( C =/= (/) /\ C C_ ( Idl ` R ) /\
                              A. i e. C A. j e. C ( i C_ j \/ j C_ i ) ) )
                                          -> U. C e. ( Idl ` R ) ) $=
      ( vx vy vz vk wcel cfv wss cv wral wa eqid imp sylan2 wel wi an32s c0 wne
      crngo cidl wo w3a cuni c1st crn cgi co c2nd dfss3 idlss ex ralimdv unissb
      sylibr 3ad2antr2 wrex idl0cl r19.2z an12s eluni2 3adantr3 weq sseq1 sseq2
      sylan2b orbi12d ralbidv adantr ad2antlr ad2antrl adantll idladdcl ancom2s
      rspcv ssel2 ancoms expr an42s anasss simprl elunii syl2anc anassrs jaodan
      ad2antrr syldan rexlimdvaa syl5bi ralrimiv 3adantr1 idllmulcl exp43 com23
      imp41 sylanl2 simplrr idlrmulcl jca ralrimiva wb isidl mpbir3and ) BUCIZA
      UAUBZABUDJZKZCLZDLZKZXLXKKZUEZDAMZCAMZUFZNZAUGZXIIZXTBUHJZUIZKZYBUJJZXTIZ
      ELZFLZYBUKZXTIZFXTMZGLZYGBULJZUKZXTIZYGYLYMUKZXTIZNZGYCMZNZEXTMZXGXHXJYDX
      QXGXJNZXKYCKZCAMZYDXJXGXKXIIZCAMZUUDCAXIUMZXGUUFUUDXGUUEUUCCAXGUUEUUCBYBX
      KYCYBOZYCOZUNUOUPPVICAYCUQURUSXGXHXJYFXQXGXHXJNNYEXKIZCAUTZYFXHXGXJUUKUUB
      XHUUJCAMZUUKXJXGUUFUULUUGXGUUFUULXGUUEUUJCAXGUUEUUJBYBXKYEUUHYEOZVAUOUPPV
      IUUJCAVBQVCCYEAVDURVEXSYTEXTYGXTIEHRZHAUTXSYTHYGAVDXSUUNYTHAXSHLZAIZUUNNZ
      NYKYSXGUUQXRYKXGUUQNZXJXQYKXHUURXJXQYKUURXJNZXQUUOXLKZXLUUOKZUEZDAMZYKUUS
      XQUVCUUQXQUVCSZXGXJUUPUVDUUNXPUVCCUUOACHVFZXOUVBDAUVEXMUUTXNUVAXKUUOXLVGX
      KUUOXLVHVJVKVRVLVMPUUSUVCNZYJFXTYHXTIFCRZCAUTUVFYJCYHAVDUVFUVGYJCAUUSXKAI
      ZUVGNZUVCYJUUSUVINZUVCUUOXKKZXKUUOKZUEZYJUVJUVCUVMUVHUVCUVMSUUSUVGUVBUVMD
      XKADCVFUUTUVKUVAUVLXLXKUUOVHXLXKUUOVGVJVRVNPUVJUVKYJUVLUVJUVKYJUURXJUVIUV
      KYJSZXGXJUVINZUUQUVNXGUVONZUUQUVKYJUUQUVKNUVPECRZYJUUNUVKUVQUUPUVKUUNUVQU
      UOXKYGVSVTVOUVPUVQNYIXKIZUVHYJUVPUVQUVRXGXJUVIUVQUVRSZXGUVGXJUVHUVSXJUVHN
      XGUVGNUUEUVSAXIXKVSXGUUEUVGUVSXGUUENZUVGUVQUVRUVTUVQUVGUVRYGYHBYBXKUUHVPV
      QWATQWBWCPUVOUVHXGUVQXJUVHUVGWDVMYIXKAWEWFQWATWGPUUSUVIUVLYJUVIUVLNUUSFHR
      ZYJUVGUVLUWAUVHUVLUVGUWAXKUUOYHVSVTVOUUSUWANYIUUOIZUUPYJUUSUWAUWBXGXJUUQU
      WAUWBSZXGUUNXJUUPUWCXJUUPNZXGUUNNZUUOXIIZUWCAXIUUOVSZXGUWFUUNUWCXGUWFNUUN
      UWAUWBYGYHBYBUUOUUHVPWATQWBTPUURUUPXJUWAXGUUPUUNWDWIYIUUOAWEWFQWGWHWJTWKW
      LWMWJWCWNTXGUUQXRYSUURXHXJYSXQXGXJUUQYSXGUUNXJUUPYSUWEUWDNZYRGYCUWHYLYCIZ
      NZYOYQUWJYNUUOIZUUPYOUWDUWEUWFUWIUWKUWGXGUUNUWFUWIUWKXGUWFUUNUWIUWKSXGUWF
      UUNUWIUWKYGYLBYBYMUUOYCUUHYMOZUUIWOWPWQWRWSUWEXJUUPUWIWTZYNUUOAWEWFUWJYPU
      UOIZUUPYQUWDUWEUWFUWIUWNUWGXGUUNUWFUWIUWNXGUWFUUNUWIUWNSXGUWFUUNUWIUWNYGY
      LBYBYMUUOYCUUHUWLUUIXAWPWQWRWSUWMYPUUOAWEWFXBXCWBTUSTXBWKWLWMXGYAYDYFUUAU
      FXDXREFGBYBYMXTYCYEUUHUWLUUIUUMXEVLXF $.
  $}

  ${
    $d R x y z $.  $d S x y z $.  $d F x y z $.  $d Z x y z $.
    keridl.1 $e |- G = ( 1st ` S ) $.
    keridl.2 $e |- Z = ( GId ` G ) $.
    $( The kernel of a ring homomorphism is an ideal.  (Contributed by Jeff
       Madsen, 3-Jan-2011.) $)
    keridl $p |- ( ( R e. RingOps /\ S e. RingOps /\ F e. ( R RngHom S ) )
                                      -> ( `' F " { Z } ) e. ( Idl ` R ) ) $=
      ( vx vy wcel co cfv wa eqid wceq fvex elsn wb elpreima 3syl crngo crnghom
      vz w3a ccnv csn cima cidl c1st crn wss cgi cv wral c2nd rngohomf cnvimass
      wf cdm fdm syl5sseq rngo0cl 3ad2ant1 rngohom0 sylibr mpbir2and rngohomadd
      syl wfn ffn an4 adantr oveq12 adantl cgr rngogrpo grpoidcl mpdan 3ad2ant2
      grpolid ad2antrr 3eqtrd ex anbi12i 3imtr4g imdistanda rngogcl 3expib syld
      anim1d syl5bi anbi12d 3imtr4d impl ralrimiva anbi2i rngocl 3expb anass1rs
      wi 3ad2antl1 adantlrr rngohommul oveq2 rngohomcl rngorz 3ad2antl2 adantlr
      ad2antlr syldan anassrs oveq1 rngolz jca sylbid imp isidl mpbir3and ) AUA
      JZBUAJZCABUBKJZUDZCUEEUFZUGZAUHLJZYDAUILZUJZUKZYFULLZYDJZHUMZIUMZYFKZYDJZ
      IYDUNZUCUMZYKAUOLZKZYDJZYKYPYQKZYDJZMZUCYGUNZMZHYDUNZYBYGDUJZCURZYHABCYFD
      YGUUFYFNZYGNZFUUFNZUPZUUGCUSYDYGCYCUQYGUUFCUTVAVHYBYJYIYGJZYICLZYCJZXSXTU
      ULYAAYFYGYIUUHUUIYINZVBVCYBUUMEOUUNABCYFDEYIUUHUUOFGVDUUMEYICPQVEYBUUGCYG
      VIZYJUULUUNMRUUKYGUUFCVJZYGYIYCCSTVFYBUUDHYDYBYKYDJZMZYOUUCUUSYNIYDYBUURY
      LYDJZYNYBYKYGJZYKCLZYCJZMZYLYGJZYLCLZYCJZMZMZYMYGJZYMCLZYCJZMZUURUUTMYNUV
      IUVAUVEMZUVCUVGMZMZYBUVMUVAUVCUVEUVGVKYBUVPUVNUVLMUVMYBUVNUVOUVLYBUVNMZUV
      BEOZUVFEOZMZUVKEOZUVOUVLUVQUVTUWAUVQUVTMUVKUVBUVFDKZEEDKZEUVQUVKUWBOUVTYK
      YLABCYFDYGUUHUUIFVGVLUVTUWBUWCOUVQUVBEUVFEDVMVNYBUWCEOZUVNUVTXTXSUWDYAXTD
      VOJZUWDBDFVPUWEEUUFJUWDEDUUFUUJGVQEEDUUFUUJGVTVRVHVSWAWBWCUVCUVRUVGUVSUVB
      EYKCPQZUVFEYLCPQWDUVKEYMCPQWEWFYBUVNUVJUVLXSXTUVNUVJWTYAXSUVAUVEUVJYKYLAY
      FYGUUHUUIWGWHVCWJWIWKYBUURUVDUUTUVHYBUUGUUPUURUVDRUUKUUQYGYKYCCSTZYBUUGUU
      PUUTUVHRUUKUUQYGYLYCCSTWLYBUUGUUPYNUVMRUUKUUQYGYMYCCSTWMWNWOYBUURUUCYBUUR
      UVDUUCUWGUVDUVAUVRMZYBUUCUVCUVRUVAUWFWPYBUWHUUCYBUWHMZUUBUCYGUWIYPYGJZMZY
      SUUAUWKYSYRYGJZYRCLZYCJZYBUVAUWJUWLUVRYBUWJUVAUWLXSXTUWJUVAMUWLYAXSUWJUVA
      UWLYPYKAYFYQYGUUHYQNZUUIWQWRXAWSXBUWKUWMEOUWNUWKUWMYPCLZUVBBUOLZKZUWPEUWQ
      KZEYBUVAUWJUWMUWROZUVRYBUWJUVAUWTYPYKABCYFYQUWQYGUUHUUIUWOUWQNZXCWSXBUWHU
      WRUWSOZYBUWJUVRUXBUVAUVBEUWPUWQXDVNXIYBUWJUWSEOZUWHYBUWJUWPUUFJZUXCYPABCY
      FDYGUUFUUHUUIFUUJXEZXTXSUXDUXCYAUWPBDUWQUUFEGUUJFUXAXFXGXJXHWBUWMEYRCPQVE
      YBYSUWLUWNMRZUWHUWJYBUUGUUPUXFUUKUUQYGYRYCCSTWAVFUWKUUAYTYGJZYTCLZYCJZYBU
      VAUWJUXGUVRYBUVAUWJUXGXSXTUVAUWJMUXGYAXSUVAUWJUXGYKYPAYFYQYGUUHUWOUUIWQWR
      XAXKXBUWKUXHEOUXIUWKUXHUVBUWPUWQKZEUWPUWQKZEYBUVAUWJUXHUXJOZUVRYBUVAUWJUX
      LYKYPABCYFYQUWQYGUUHUUIUWOUXAXCXKXBUWHUXJUXKOZYBUWJUVRUXMUVAUVBEUWPUWQXLV
      NXIYBUWJUXKEOZUWHYBUWJUXDUXNUXEXTXSUXDUXNYAUWPBDUWQUUFEGUUJFUXAXMXGXJXHWB
      UXHEYTCPQVEYBUUAUXGUXIMRZUWHUWJYBUUGUUPUXOUUKUUQYGYTYCCSTWAVFXNWOWCWKXOXP
      XNWOXSXTYEYHYJUUEUDRYAHIUCAYFYQYDYGYIUUHUWOUUIUUOXQVCXR $.
  $}

  ${
    $d R r i x y a b $.  $d X i r $.  $d H i r $.
    pridlval.1 $e |- G = ( 1st ` R ) $.
    pridlval.2 $e |- H = ( 2nd ` R ) $.
    pridlval.3 $e |- X = ran G $.
    $( The class of prime ideals of a ring ` R ` .  (Contributed by Jeff
       Madsen, 10-Jun-2010.) $)
    pridlval $p |- ( R e. RingOps -> ( PrIdl ` R ) = { i e. ( Idl ` R ) |
                ( i =/= X /\ A. a e. ( Idl ` R ) A. b e. ( Idl ` R ) (
          A. x e. a A. y e. b ( x H y ) e. i -> ( a C_ i \/ b C_ i ) ) ) } ) $=
      ( vr cv c1st cfv c2nd wral cidl fveq2 crn wne co wcel wo wi wa crab crngo
      wss cpridl wceq syl6eqr rneqd neeq2d oveqd eleq1d 2ralbidv imbi1d anbi12d
      raleqbidv rabeqbidv df-pridl fvex rabex fvmpt ) MCDNZMNZOPZUAZUBZANZBNZVH
      QPZUCZVGUDZBINZRAHNZRZVRVGUJVQVGUJUEZUFZIVHSPZRZHWBRZUGZDWBUHVGGUBZVLVMFU
      CZVGUDZBVQRAVRRZVTUFZICSPZRZHWKRZUGZDWKUHUIUKVHCULZWEWNDWBWKVHCSTZWOVKWFW
      DWMWOVJGVGWOVJEUAGWOVIEWOVICOPEVHCOTJUMUNLUMUOWOWCWLHWBWKWPWOWAWJIWBWKWPW
      OVSWIVTWOVPWHABVRVQWOVOWGVGWOVNFVLVMWOVNCQPFVHCQTKUMUPUQURUSVAVAUTVBABDMH
      IVCWNDWKCSVDVEVF $.

    $d P i x y a b $.
    $( The predicate "is a prime ideal".  (Contributed by Jeff Madsen,
       10-Jun-2010.) $)
    ispridl $p |- ( R e. RingOps -> ( P e. ( PrIdl ` R ) <-> ( P e. ( Idl ` R )
                /\ P =/= X /\ A. a e. ( Idl ` R ) A. b e. ( Idl ` R )
        ( A. x e. a A. y e. b ( x H y ) e. P -> ( a C_ P \/ b C_ P ) ) ) ) ) $=
      ( vi wcel cfv cv wne wral wss wa crngo cpridl co wo wi cidl crab pridlval
      w3a eleq2d wceq neeq1 eleq2 2ralbidv sseq2 orbi12d imbi12d anbi12d 3anass
      elrab bitr4i syl6bb ) DUANZCDUBOZNCMPZGQZAPBPFUCZVENZBIPZRAHPZRZVJVESZVIV
      ESZUDZUEZIDUFOZRHVPRZTZMVPUGZNZCVPNZCGQZVGCNZBVIRAVJRZVJCSZVICSZUDZUEZIVP
      RHVPRZUIZVCVDVSCABDMEFGHIJKLUHUJVTWAWBWITZTWJVRWKMCVPVECUKZVFWBVQWIVECGUL
      WLVOWHHIVPVPWLVKWDVNWGWLVHWCABVJVIVECVGUMUNWLVLWEVMWFVECVJUOVECVIUOUPUQUN
      URUTWAWBWIUSVAVB $.
  $}

  ${
    $d R x y a b $.  $d P x y a b $.
    $( A prime ideal is an ideal.  (Contributed by Jeff Madsen,
       19-Jun-2010.) $)
    pridlidl $p |- ( ( R e. RingOps /\ P e. ( PrIdl ` R ) )
                                            -> P e. ( Idl ` R ) ) $=
      ( vx vy vb va crngo wcel cpridl cfv cidl c1st crn wne cv c2nd wral wss wa
      eqid co wo wi w3a ispridl 3anass syl6bb simprbda ) BGHZABIJHZABKJZHZABLJZ
      MZNZCODOBPJZUAAHDEOZQCFOZQURARUQARUBUCEUKQFUKQZSZUIUJULUOUSUDULUTSCDABUMU
      PUNFEUMTUPTUNTUEULUOUSUFUGUH $.
  $}

  ${
    $d R x y a b $.  $d P x y a b $.
    pridlnr.1 $e |- G = ( 1st ` R ) $.
    prdilnr.2 $e |- X = ran G $.
    $( A prime ideal is a proper ideal.  (Contributed by Jeff Madsen,
       19-Jun-2010.) $)
    pridlnr $p |- ( ( R e. RingOps /\ P e. ( PrIdl ` R ) ) -> P =/= X ) $=
      ( vx vy vb va crngo wcel cpridl cfv wne cidl cv wral wss wa c2nd co wo wi
      w3a eqid ispridl 3anan12 syl6bb simprbda ) BKLZABMNLZADOZABPNZLZGQHQBUANZ
      UBALHIQZRGJQZRURASUQASUCUDIUNRJUNRZTZUKULUOUMUSUEUMUTTGHABCUPDJIEUPUFFUGU
      OUMUSUHUIUJ $.
  $}

  ${
    $d R x y a b $.  $d P x y a b $.  $d A x a b $.  $d B x y a b $.
    $d H a b $.
    pridl.1 $e |- H = ( 2nd ` R ) $.
    $( The main property of a prime ideal.  (Contributed by Jeff Madsen,
       19-Jun-2010.) $)
    pridl $p |- ( ( ( R e. RingOps /\ P e. ( PrIdl ` R ) ) /\
                        ( A e. ( Idl ` R ) /\ B e. ( Idl ` R ) /\
            A. x e. A A. y e. B ( x H y ) e. P ) ) -> ( A C_ P \/ B C_ P ) ) $=
      ( vb va wcel cfv wa cv wral wss wo wi eqid wceq crngo cpridl cidl co c1st
      crn wne ispridl df-3an syl6bb simplbda raleq sseq1 orbi1d imbi12d ralbidv
      w3a orbi2d rspc2v syl5com expd 3imp2 ) FUAKZEFUBLKZMZCFUCLZKZDVFKZANBNGUD
      EKZBDOZACOZCEPZDEPZQZVEVGVHVKVNRZVEVIBINZOZAJNZOZVREPZVPEPZQZRZIVFOJVFOZV
      GVHMVOVCVDEVFKZEFUELZUFZUGZMZWDVCVDWEWHWDUQWIWDMABEFWFGWGJIWFSHWGSUHWEWHW
      DUIUJUKWCVOVQACOZVLWAQZRJICDVFVFVRCTZVSWJWBWKVQAVRCULWLVTVLWAVRCEUMUNUOVP
      DTZWJVKWKVNWMVQVJACVIBVPDULUPWMWAVMVLVPDEUMURUOUSUTVAVB $.
  $}

  ${
    $d R a b r s $.  $d P a b r s $.  $d X a b r s $.  $d H r s $.
    ispridl2.1 $e |- G = ( 1st ` R ) $.
    ispridl2.2 $e |- H = ( 2nd ` R ) $.
    ispridl2.3 $e |- X = ran G $.
    $( A condition that shows an ideal is prime.  For commutative rings, this
       is often taken to be the definition.  See ~ ispridlc for the equivalence
       in the commutative case.  (Contributed by Jeff Madsen, 19-Jun-2010.) $)
    ispridl2 $p |- ( ( R e. RingOps /\ ( P e. ( Idl ` R ) /\ P =/= X /\
          A. a e. X A. b e. X ( ( a H b ) e. P -> ( a e. P \/ b e. P ) ) ) )
                              -> P e. ( PrIdl ` R ) ) $=
      ( vs vr wcel cv wo wi wral wss wa syl crngo cidl cfv wne w3a cpridl idlss
      ssralv adantrr ralimdv adantrl syld adantlr r19.26-2 pm3.35 2ralimi dfss3
      co 2ralor orbi12i sylbb2 sylbir expcom syl6 ralrimdvva ex adantrd 3imtr4g
      imdistand df-3an ispridl sylibrd imp ) BUAMZABUBUCZMZAEUDZFNZGNZDURAMZVRA
      MZVSAMZOZPZGEQZFEQZUEZABUFUCMZVNWGVPVQVTGKNZQFLNZQZWJARZWIARZOZPZKVOQLVOQ
      ZUEZWHVNVPVQSZWFSWRWPSWGWQVNWRWFWPVNVPWFWPPZVQVNVPWSVNVPSZWFWOLKVOVOWTWJV
      OMZWIVOMZSZSWFWDGWIQZFWJQZWOVNXCWFXEPVPVNXCSWFWEFWJQZXEVNXAWFXFPZXBVNXASW
      JERXGBCWJEHJUGWEFWJEUHTUIVNXBXFXEPZXAVNXBSWIERZXHBCWIEHJUGXIWEXDFWJWDGWIE
      UHUJTUKULUMWKXEWNWKXESVTWDSZGWIQFWJQZWNVTWDFGWJWIUNXKWCGWIQFWJQZWNXJWCFGW
      JWIVTWCUOUPXLWAFWJQZWBGWIQZOWNWAWBFGWJWIUSWLXMWMXNFWJAUQGWIAUQUTVATVBVCVD
      VEVFVGVIVPVQWFVJVPVQWPVJVHFGABCDELKHIJVKVLVM $.
  $}

  ${
    $d R i j r $.  $d X r $.
    maxidlval.1 $e |- G = ( 1st ` R ) $.
    maxidlval.2 $e |- X = ran G $.
    $( The set of maximal ideals of a ring.  (Contributed by Jeff Madsen,
       5-Jan-2011.) $)
    maxidlval $p |- ( R e. RingOps -> ( MaxIdl ` R ) =
                              { i e. ( Idl ` R ) | ( i =/= X /\
                A. j e. ( Idl ` R ) ( i C_ j -> ( j = i \/ j = X ) ) ) } ) $=
      ( vr cv c1st cfv crn wne wceq wo wi cidl wral wa crab crngo cmaxidl fveq2
      wss syl6eqr rneqd neeq2d eqeq2d orbi2d imbi2d raleqbidv anbi12d rabeqbidv
      df-maxidl fvex rabex fvmpt ) HABIZHIZJKZLZMZURCIZUDZVCURNZVCVANZOZPZCUSQK
      ZRZSZBVITUREMZVDVEVCENZOZPZCAQKZRZSZBVPTUAUBUSANZVKVRBVIVPUSAQUCZVSVBVLVJ
      VQVSVAEURVSVADLEVSUTDVSUTAJKDUSAJUCFUEUFGUEZUGVSVHVOCVIVPVTVSVGVNVDVSVFVM
      VEVSVAEVCWAUHUIUJUKULUMBCHUNVRBVPAQUOUPUQ $.
  $}

  ${
    $d R i j $.  $d M i j $.  $d X i $.
    ismaxidl.1 $e |- G = ( 1st ` R ) $.
    ismaxidl.2 $e |- X = ran G $.
    $( The predicate "is a maximal ideal".  (Contributed by Jeff Madsen,
       5-Jan-2011.) $)
    ismaxidl $p |- ( R e. RingOps -> ( M e. ( MaxIdl ` R ) <->
                              ( M e. ( Idl ` R ) /\ M =/= X /\
                A. j e. ( Idl ` R ) ( M C_ j -> ( j = M \/ j = X ) ) ) ) ) $=
      ( vi crngo wcel cmaxidl cfv cv wne wss wceq wo wi wral wa cidl w3a eleq2d
      crab neeq1 sseq1 eqeq2 orbi1d imbi12d ralbidv anbi12d elrab 3anass bitr4i
      maxidlval syl6bb ) AIJZDAKLZJDHMZENZUSBMZOZVAUSPZVAEPZQZRZBAUALZSZTZHVGUD
      ZJZDVGJZDENZDVAOZVADPZVDQZRZBVGSZUBZUQURVJDAHBCEFGUOUCVKVLVMVRTZTVSVIVTHD
      VGUSDPZUTVMVHVRUSDEUEWAVFVQBVGWAVBVNVEVPUSDVAUFWAVCVOVDUSDVAUGUHUIUJUKULV
      LVMVRUMUNUP $.
  $}

  ${
    $d R j $.  $d M j $.
    $( A maximal ideal is an ideal.  (Contributed by Jeff Madsen,
       5-Jan-2011.) $)
    maxidlidl $p |- ( ( R e. RingOps /\ M e. ( MaxIdl ` R ) )
                                                -> M e. ( Idl ` R ) ) $=
      ( vj crngo wcel cmaxidl cfv cidl c1st crn wne cv wss wceq wo wi wral eqid
      wa w3a ismaxidl 3anass syl6bb simprbda ) ADEZBAFGEZBAHGZEZBAIGZJZKZBCLZMU
      LBNULUJNOPCUGQZSZUEUFUHUKUMTUHUNSACUIBUJUIRUJRUAUHUKUMUBUCUD $.

    $d R j $.  $d M j $.
    maxidlnr.1 $e |- G = ( 1st ` R ) $.
    maxidlnr.2 $e |- X = ran G $.
    $( A maximal ideal is proper.  (Contributed by Jeff Madsen,
       16-Jun-2011.) $)
    maxidlnr $p |- ( ( R e. RingOps /\ M e. ( MaxIdl ` R ) ) -> M =/= X ) $=
      ( vj crngo wcel cmaxidl cfv wa cidl wne cv wss wceq wo wi wral w3a biimpa
      ismaxidl simp2d ) AHIZCAJKIZLCAMKZIZCDNZCGOZPUJCQUJDQRSGUGTZUEUFUHUIUKUAA
      GBCDEFUCUBUD $.

    $d I j $.  $d X j $.
    $( A maximal ideal is a maximal proper ideal.  (Contributed by Jeff Madsen,
       16-Jun-2011.) $)
    maxidlmax $p |- ( ( ( R e. RingOps /\ M e. ( MaxIdl ` R ) ) /\
                ( I e. ( Idl ` R ) /\ M C_ I ) ) -> ( I = M \/ I = X ) ) $=
      ( vj crngo wcel cmaxidl cfv wa cidl wss wceq wo wi cv eqeq1 wral ismaxidl
      wne w3a biimpa simp3d sseq2 orbi12d imbi12d rspcva sylan2 ancoms impr ) A
      IJZDAKLJZMZCANLZJZDCOZCDPZCEPZQZURUPUSVBRZUPURDHSZOZVDDPZVDEPZQZRZHUQUAZV
      CUPDUQJZDEUCZVJUNUOVKVLVJUDAHBDEFGUBUEUFVIVCHCUQVDCPZVEUSVHVBVDCDUGVMVFUT
      VGVAVDCDTVDCETUHUIUJUKULUM $.
  $}

  ${
    maxidln1.1 $e |- H = ( 2nd ` R ) $.
    maxidln1.2 $e |- U = ( GId ` H ) $.
    $( One is not contained in any maximal ideal.  (Contributed by Jeff Madsen,
       17-Jun-2011.) $)
    maxidln1 $p |- ( ( R e. RingOps /\ M e. ( MaxIdl ` R ) ) -> -. U e. M ) $=
      ( crngo wcel cmaxidl cfv wa wn c1st crn wne eqid maxidlnr cidl maxidlidl
      wb 1idl necon3bbid syldan mpbird ) AGHZDAIJHZKBDHZLZDAMJZNZOZAUIDUJUIPZUJ
      PZQUEUFDARJHZUHUKTADSUEUNKUGDUJABUICDUJULEUMFUAUBUCUD $.
  $}

  ${
    maxidln0.1 $e |- G = ( 1st ` R ) $.
    maxidln0.2 $e |- H = ( 2nd ` R ) $.
    maxidln0.3 $e |- Z = ( GId ` G ) $.
    maxidln0.4 $e |- U = ( GId ` H ) $.
    $( A ring with a maximal ideal is not the zero ring.  (Contributed by Jeff
       Madsen, 17-Jun-2011.) $)
    maxidln0 $p |- ( ( R e. RingOps /\ M e. ( MaxIdl ` R ) ) -> U =/= Z ) $=
      ( crngo wcel cmaxidl cfv wa wn wceq cidl maxidlidl idl0cl syldan maxidln1
      nelneq syl2anc neqned necomd ) AKLZEAMNLZOZFBUIFBUIFELZBELPFBQPUGUHEARNLU
      JAESACEFGITUAABDEHJUBFBEUCUDUEUF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Prime rings and integral domains
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c PrRing $.
  $c Dmn $.

  $( Extend class notation with the class of prime rings. $)
  cprrng $a class PrRing $.

  $( Extend class notation with the class of domains. $)
  cdmn $a class Dmn $.

  $( Define the class of prime rings.  A ring is prime if the zero ideal is a
     prime ideal.  (Contributed by Jeff Madsen, 10-Jun-2010.) $)
  df-prrngo $a |- PrRing = { r e. RingOps |
                              { ( GId ` ( 1st ` r ) ) } e. ( PrIdl ` r ) } $.

  $( Define the class of (integral) domains.  A domain is a commutative prime
     ring.  (Contributed by Jeff Madsen, 10-Jun-2010.) $)
  df-dmn $a |- Dmn = ( PrRing i^i Com2 ) $.

  ${
    $d R r $.  $d Z r $.
    isprrng.1 $e |- G = ( 1st ` R ) $.
    isprrng.2 $e |- Z = ( GId ` G ) $.
    $( The predicate "is a prime ring".  (Contributed by Jeff Madsen,
       10-Jun-2010.) $)
    isprrngo $p |- ( R e. PrRing <-> ( R e. RingOps
                                        /\ { Z } e. ( PrIdl ` R ) ) ) $=
      ( vr cv c1st cfv cgi csn cpridl wcel crngo cprrng wceq fveq2 fveq2d sneqd
      syl6eqr eleq12d df-prrngo elrab2 ) FGZHIZJIZKZUDLIZMCKZALIZMFANOUDAPZUGUI
      UHUJUKUFCUKUFBJICUKUEBJUKUEAHIBUDAHQDTRETSUDALQUAFUBUC $.
  $}

  $( A prime ring is a ring.  (Contributed by Jeff Madsen, 10-Jun-2010.) $)
  prrngorngo $p |- ( R e. PrRing -> R e. RingOps ) $=
    ( cprrng wcel crngo c1st cfv cgi csn cpridl eqid isprrngo simplbi ) ABCADCA
    EFZGFZHAIFCAMNMJNJKL $.

  ${
    $d R i j x y $.  $d H x y $.  $d X i j x y $.  $d Z i j x y $.
    $d U i j x y $.
    smprngpr.1 $e |- G = ( 1st ` R ) $.
    smprngpr.2 $e |- H = ( 2nd ` R ) $.
    smprngpr.3 $e |- X = ran G $.
    smprngpr.4 $e |- Z = ( GId ` G ) $.
    smprngpr.5 $e |- U = ( GId ` H ) $.
    $( A simple ring (one whose only ideals are ` 0 ` and ` R ` ) is a prime
       ring.  (Contributed by Jeff Madsen, 6-Jan-2011.) $)
    smprngopr $p |- ( ( R e. RingOps /\ U =/= Z
          /\ ( Idl ` R ) = { { Z } , X } ) -> R e. PrRing ) $=
      ( vx vy vj vi wcel wceq wral wi wa wne cidl cfv csn cpr w3a cpridl cprrng
      crngo simp1 cv co wss 0idl 3ad2ant1 0rngo eqcom 3bitr4g necon3bid 3adant3
      wo biimpa cun df-pr eqeq2i eleq2 anbi12d elun velsn orbi12i bitri anbi12i
      wb syl6bb sylbi 3ad2ant3 eqimss orcd adantr a1d a1i olcd adantl wrex c1st
      crn rneqi eqtri rngo1cl rngolidm mpdan eleq1d cgi fvex eqeltri necon3bbid
      cvv elsn biimpar oveq1 notbid oveq2 rspc2ev syl3anc rexnal2 sylib pm2.21d
      raleq ralbidv imbi1d syl5ibrcom ccased sylbid ralrimivv ispridl mpbir3and
      wn sylan9bb isprrngo sylanbrc ) AUIPZBFUAZAUBUCZFUDZEUEZQZUFZYAYDAUGUCPZA
      UHPYAYBYFUJYGYHYDYCPZYDEUAZLUKZMUKZDULZYDPZMNUKZRZLOUKZRZYQYDUMZYOYDUMZVA
      ZSZNYCROYCRZYAYBYIYFACFGJUNUOYAYBYJYFYAYBYJYABFYDEYAFBQEYDQBFQZYDEQABCDEF
      GHIJKUPBFUQYDEUQURUSVBUTYGUUBONYCYCYGYQYCPZYOYCPZTZYQYDQZYQEQZVAZYOYDQZYO
      EQZVAZTZUUBYFYAUUGUUNVMZYBYFYCYDUDZEUDZVCZQZUUOYEUURYCYDEVDVEUUSUUGYQUURP
      ZYOUURPZTUUNUUSUUEUUTUUFUVAYCUURYQVFYCUURYOVFVGUUTUUJUVAUUMUUTYQUUPPZYQUU
      QPZVAUUJYQUUPUUQVHUVBUUHUVCUUIOYDVIOEVIVJVKUVAYOUUPPZYOUUQPZVAUUMYOUUPUUQ
      VHUVDUUKUVEUULNYDVINEVIVJVKVLVNVOVPYAYBUUNUUBSYFYAYBTZUUHUUKUUIUULUUBUUHU
      UKTZUUBSUVFUVGUUAYRUUHUUAUUKUUHYSYTYQYDVQVRZVSVTWAUUIUUKTZUUBSUVFUVIUUAYR
      UUKUUAUUIUUKYTYSYOYDVQWBWCVTWAUUHUULTZUUBSUVFUVJUUAYRUUHUUAUULUVHVSVTWAUV
      FUUBUUIUULTZYNMERZLERZUUASUVFUVMUUAUVFYNXQZMEWDLEWDZUVMXQUVFBEPZUVPBBDULZ
      YDPZXQZUVOYAUVPYBABDEECWFAWEUCZWFICUVTGWGWHZHKWIZVSZUWCYAUVSYBYAUVRBFYAUV
      RBYDPUUDYAUVQBYDYAUVPUVQBQUWBBABDEHUWAKWJWKWLBFBDWMUCWQKDWMWNWOWRVNWPWSUV
      NUVSBYLDULZYDPZXQLMBBEEYKBQZYNUWEUWFYMUWDYDYKBYLDWTWLXAYLBQZUWEUVRUWGUWDU
      VQYDYLBBDXBWLXAXCXDYNLMEEXEXFXGUVKYRUVMUUAUUIYRYPLERUULUVMYPLYQEXHUULYPUV
      LLEYNMYOEXHXIXRXJXKXLUTXMXNYAYBYHYIYJUUCUFVMYFLMYDACDEONGHIXOUOXPACFGJXSX
      T $.
  $}

  $( A division ring is a prime ring.  (Contributed by Jeff Madsen,
     6-Jan-2011.) $)
  divrngpr $p |- ( R e. DivRingOps -> R e. PrRing ) $=
    ( cdrng wcel crngo c2nd cfv cgi c1st wne cidl csn crn wceq cprrng cdif cres
    cpr cxp cgr eqid isdrngo1 simplbi dvrunz divrngidl smprngopr syl3anc ) ABCZ
    ADCZAEFZGFZAHFZGFZIAJFULKZUKLZQMANCUGUHUIUNUMOZUORPSCAUKUIUNULUKTZUITZULTZU
    NTZUAUBAUJUKUIUNULUPUQUSURUJTZUCAUKUIUNULUPUQUSURUDAUJUKUIUNULUPUQUSURUTUEU
    F $.

  $( The predicate "is a domain".  (Contributed by Jeff Madsen,
     10-Jun-2010.) $)
  isdmn $p |- ( R e. Dmn <-> ( R e. PrRing /\ R e. Com2 ) ) $=
    ( cprrng ccm2 cdmn df-dmn elin2 ) ABCDEF $.

  $( The predicate "is a domain".  (Contributed by Jeff Madsen,
     10-Jun-2010.) $)
  isdmn2 $p |- ( R e. Dmn <-> ( R e. PrRing /\ R e. CRingOps ) ) $=
    ( cdmn wcel cprrng ccm2 wa ccring isdmn crngo wb prrngorngo iscrngo pm5.32i
    baibr syl bitri ) ABCADCZAECZFQAGCZFAHQRSQAICZRSJAKSTRALNOMP $.

  $( A domain is a commutative ring.  (Contributed by Jeff Madsen,
     6-Jan-2011.) $)
  dmncrng $p |- ( R e. Dmn -> R e. CRingOps ) $=
    ( cdmn wcel cprrng ccring isdmn2 simprbi ) ABCADCAECAFG $.

  $( A domain is a ring.  (Contributed by Jeff Madsen, 6-Jan-2011.) $)
  dmnrngo $p |- ( R e. Dmn -> R e. RingOps ) $=
    ( cdmn wcel ccring crngo dmncrng crngorngo syl ) ABCADCAECAFAGH $.

  $( A field is a domain.  (Contributed by Jeff Madsen, 10-Jun-2010.) $)
  flddmn $p |- ( K e. Fld -> K e. Dmn ) $=
    ( cdrng wcel ccring cprrng cfld cdmn divrngpr anim1i isfld2 isdmn2 3imtr4i
    wa ) ABCZADCZMAECZOMAFCAGCNPOAHIAJAKL $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ideal generators
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c IdlGen $.

  $( Extend class notation with the ideal generation function. $)
  cigen $a class IdlGen $.

  ${
    $d r s j $.
    $( Define the ideal generated by a subset of a ring.  (Contributed by Jeff
       Madsen, 10-Jun-2010.) $)
    df-igen $a |- IdlGen = ( r e. RingOps , s e. ~P ran ( 1st ` r ) |->
                      |^| { j e. ( Idl ` r ) | s C_ j } ) $.
  $}

  ${
    $d R r s j $.  $d S r s j $.  $d X r s j $.
    igenval.1 $e |- G = ( 1st ` R ) $.
    igenval.2 $e |- X = ran G $.
    $( The ideal generated by a subset of a ring.  (Contributed by Jeff Madsen,
       10-Jun-2010.)  (Proof shortened by Mario Carneiro, 20-Dec-2013.) $)
    igenval $p |- ( ( R e. RingOps /\ S C_ X ) -> ( R IdlGen S ) =
                                        |^| { j e. ( Idl ` R ) | S C_ j } ) $=
      ( vr vs crngo wcel wss cv cidl cfv crab cint cvv wceq c1st cigen co wa c0
      wne wrex rngoidl sseq2 rspcev sylan rabn0 sylibr intex sylib cpw crn fvex
      eqeltri elpw2 simpl fveq2d wb sseq1 adantl rabeqbidv inteqd fveq2 syl6eqr
      rnex rneqd pweqd df-igen ovmpt2x syl3an2br mpd3an3 ) AJKZBELZBCMZLZCANOZP
      ZQZRKZABUAUBWBSZVPVQUCZWAUDUEZWCWEVSCVTUFZWFVPEVTKVQWGADEFGUGVSVQCEVTVREB
      UHUIUJVSCVTUKULWAUMUNVQVPBEUOZKWCWDBEEDUPZRGDDATOZRFATUQURVIURUSHIABJHMZT
      OZUPZUOIMZVRLZCWKNOZPZQWBUARWHWKASZWNBSZUCZWQWAWTWOVSCWPVTWTWKANWRWSUTVAW
      SWOVSVBWRWNBVRVCVDVEVFWRWMEWRWMWIEWRWLDWRWLWJDWKATVGFVHVJGVHVKCIHVLVMVNVO
      $.

    $( A set is a subset of the ideal it generates.  (Contributed by Jeff
       Madsen, 10-Jun-2010.) $)
    igenss $p |- ( ( R e. RingOps /\ S C_ X ) -> S C_ ( R IdlGen S ) ) $=
      ( vj crngo wcel wss wa cv cidl cfv crab cint cigen co ssintub igenval
      syl5sseqr ) AHIBDJKBGLJGAMNZOPBABQRGBUBSABGCDEFTUA $.

    $( The ideal generated by a set is an ideal.  (Contributed by Jeff Madsen,
       10-Jun-2010.) $)
    igenidl $p |- ( ( R e. RingOps /\ S C_ X ) ->
                              ( R IdlGen S ) e. ( Idl ` R ) ) $=
      ( vj crngo wcel wss wa cigen co cv cidl cfv crab cint igenval c0 wne wrex
      rngoidl sseq2 rspcev sylan sylibr ssrab2 intidl mp3an3 syldan eqeltrd
      rabn0 ) AHIZBDJZKZABLMBGNZJZGAOPZQZRZUSABGCDEFSUNUOUTTUAZVAUSIZUPURGUSUBZ
      VBUNDUSIUOVDACDEFUCURUOGDUSUQDBUDUEUFURGUSUMUGUNVBUTUSJVCURGUSUHUTAUIUJUK
      UL $.
  $}

  ${
    $d R j $.  $d S j $.  $d I j $.
    $( The ideal generated by a set is the minimal ideal containing that set.
       (Contributed by Jeff Madsen, 10-Jun-2010.) $)
    igenmin $p |- ( ( R e. RingOps /\ I e. ( Idl ` R ) /\ S C_ I )
                                              -> ( R IdlGen S ) C_ I ) $=
      ( vj crngo wcel cidl cfv wss w3a cigen co cv crab cint wceq c1st crn eqid
      idlss wa sstr ancoms igenval anassrs syldanl 3impa sseq2 intminss 3adant1
      sylan2 eqsstrd ) AEFZCAGHZFZBCIZJABKLZBDMZIZDUNNOZCUMUOUPUQUTPZUMUOCAQHZR
      ZIZUPVAAVBCVCVBSZVCSZTUMVDUPVAVDUPUAUMBVCIZVAUPVDVGBCVCUBUCABDVBVCVEVFUDU
      KUEUFUGUOUPUTCIUMUSUPDCUNURCBUHUIUJUL $.

    $( The ideal generated by an ideal is that ideal.  (Contributed by Jeff
       Madsen, 10-Jun-2010.) $)
    igenidl2 $p |- ( ( R e. RingOps /\ I e. ( Idl ` R ) )
                                          -> ( R IdlGen I ) = I ) $=
      ( vj crngo wcel cidl cfv wa cigen co cv wss crab cint c1st crn wceq idlss
      eqid igenval syldan intmin adantl eqtrd ) ADEZBAFGZEZHABIJZBCKLCUFMNZBUEU
      GBAOGZPZLUHUIQAUJBUKUJSZUKSZRABCUJUKULUMTUAUGUIBQUECBUFUBUCUD $.
  $}

  ${
    $d R i j $.  $d S i j $.  $d I j $.  $d X i $.
    igenval2.1 $e |- G = ( 1st ` R ) $.
    igenval2.2 $e |- X = ran G $.
    $( The ideal generated by a subset of a ring.  (Contributed by Jeff Madsen,
       10-Jun-2010.) $)
    igenval2 $p |- ( ( R e. RingOps /\ S C_ X ) -> ( ( R IdlGen S ) = I <->
                                  ( I e. ( Idl ` R ) /\ S C_ I /\
                          A. j e. ( Idl ` R ) ( S C_ j -> I C_ j ) ) ) ) $=
      ( vi wcel wss wa wceq cv wi wral w3a igenmin adantr sseq2 crngo cigen cfv
      co cidl igenidl igenss 3expia ralrimiva 3jca eleq1 sseq1 imbi2d 3anbi123d
      ralbidv syl5ibcom 3adant3r3 crab cint ssint ralrab sylbbr 3ad2ant3 adantl
      adantlr igenval sseqtr4d eqssd ex impbid ) AUAJZBFKZLZABUBUDZEMZEAUEUCZJZ
      BEKZBCNZKZEVSKZOZCVPPZQZVMVNVPJZBVNKZVTVNVSKZOZCVPPZQVOWDVMWEWFWIABDFGHUF
      ABDFGHUGVKWIVLVKWHCVPVKVSVPJVTWGABVSRUHUISUJVOWEVQWFVRWIWCVNEVPUKVNEBTVOW
      HWBCVPVOWGWAVTVNEVSULUMUOUNUPVMWDVOVMWDLZVNEVKWDVNEKZVLVKVQVRWKWCABERUQVE
      WJEBINZKZIVPURZUSZVNWDEWOKZVMWCVQWPVRWPWACWNPWCCEWNUTWMVTWACIVPWLVSBTVAVB
      VCVDVMVNWOMWDABIDFGHVFSVGVHVIVJ $.
  $}

  ${
    $d R j x y u v w r s $.  $d X j x y u v w r s $.  $d G x y r s $.
    $d H j x y u v w r s $.  $d A j x y u v w r s $.
    prnc.1 $e |- G = ( 1st ` R ) $.
    prnc.2 $e |- H = ( 2nd ` R ) $.
    prnc.3 $e |- X = ran G $.
    $( A principal ideal (an ideal generated by one element) in a commutative
       ring.  (Contributed by Jeff Madsen, 10-Jun-2010.) $)
    prnc $p |- ( ( R e. CRingOps /\ A e. X ) -> ( R IdlGen { A } ) =
                                  { x e. X | E. y e. X x = ( y H A ) } ) $=
      ( vv vw wcel wa co cv wceq wrex wral oveq1 vj vu vr ccring csn cigen crab
      vs cidl cfv wss wi w3a cgi crngo crngorngo ssrab2 a1i eqid rngo0cl adantr
      rngolz eqcomd eqeq2d rspcev syl2anc eqeq1 rexbidv sylanbrc cbvrexv syl6bb
      elrab rngodir 3exp2 imp42 3expib imdistani rngocl 3expa ad2antlr eqeltrrd
      rngogcl mpan2 sylan an32s anassrs oveq2 eleq1d rexlimdva adantld ralrimiv
      syl5ibrcom syl5bi rngoass anass1rs jca ralbidv anbi12d 3jca isidlc mpbird
      ralrimiva simpr crn c1st rneqi eqtri rngo1cl rngolidm snssd snssg biimpar
      wb idllmulcl eleq1 rabss sylibr ex syl5 expdimp snssi igenval2 syl2an ) D
      UDMZCGMZNZDCUEZUFOAPZBPZCFOZQZBGRZAGUGZQZYMDUIUJZMZYGYMUKZYGUAPZUKZYMYRUK
      ZULZUAYOSZUMZYFYPYQUUBYFYPYMGUKZEUNUJZYMMZUBPZKPZEOZYMMZKYMSZLPZUUGFOZYMM
      ZLGSZNZUBYMSZUMZYDDUOMZYEUURDUPZUUSYENZUUDUUFUUQUUDUVAYLAGUQURUVAUUEGMZUU
      EYJQZBGRZUUFUUSUVBYEDEGUUEHJUUEUSZUTVAZUVAUVBUUEUUECFOZQZUVDUVFUVAUVGUUEC
      DEFGUUEUVEJHIVBVCUVCUVHBUUEGYIUUEQYJUVGUUEYIUUECFTVDVEVFYLUVDAUUEGYHUUEQY
      KUVCBGYHUUEYJVGVHVLVIUVAUUPUBYMUUGYMMUUGGMZUUGUCPZCFOZQZUCGRZNUVAUUPYLUVM
      AUUGGYHUUGQZYLUUGYJQZBGRUVMUVNYKUVOBGYHUUGYJVGVHUVOUVLBUCGYIUVJQYJUVKUUGY
      IUVJCFTVDVJVKVLUVAUVMUUPUVIUVAUVLUUPUCGUVAUVJGMZNZUUPUVLUVKUUHEOZYMMZKYMS
      ZUULUVKFOZYMMZLGSZNUVQUVTUWCUVQUVSKYMUUHYMMUUHGMZUUHUHPZCFOZQZUHGRZNUVQUV
      SYLUWHAUUHGYHUUHQZYLUUHYJQZBGRUWHUWIYKUWJBGYHUUHYJVGVHUWJUWGBUHGYIUWEQYJU
      WFUUHYIUWECFTVDVJVKVLUVQUWHUVSUWDUVQUWGUVSUHGUVQUWEGMZNUVSUWGUVKUWFEOZYMM
      ZUVAUVPUWKUWMUUSUVPUWKNZYEUWMUUSUWNNZYENUVJUWEEOZCFOZUWLYMUUSUVPUWKYEUWQU
      WLQZUUSUVPUWKYEUWRUVJUWECDEFGHIJVMVNVOUWOUUSUWPGMZNZYEUWQYMMZUUSUWNUWSUUS
      UVPUWKUWSUVJUWEDEGHJWBVPVQUWTYENUWQGMZUWQYJQZBGRZUXAUUSUWSYEUXBUWPCDEFGHI
      JVRVSUWSUXDUUSYEUWSUWQUWQQZUXDUWQUSUXCUXEBUWPGYIUWPQYJUWQUWQYIUWPCFTVDVEW
      CVTYLUXDAUWQGYHUWQQYKUXCBGYHUWQYJVGVHVLVIWDWAWEWFUWGUVRUWLYMUUHUWFUVKEWGW
      HWLWIWJWMWKUVQUWBLGUVAUULGMZUVPUWBUVAUXFUVPNZNUULUVJFOZCFOZUWAYMUUSUXGYEU
      XIUWAQZUUSUXFUVPYEUXJUUSUXFUVPYEUXJUULUVJCDEFGHIJWNVNVOWEUUSUXGYEUXIYMMZU
      USUXGNUUSUXHGMZNZYEUXKUUSUXGUXLUUSUXFUVPUXLUULUVJDEFGHIJVRVPVQUXMYENUXIGM
      ZUXIYJQZBGRZUXKUUSUXLYEUXNUXHCDEFGHIJVRVSUXLUXPUUSYEUXLUXIUXIQZUXPUXIUSUX
      OUXQBUXHGYIUXHQYJUXIUXIYIUXHCFTVDVEWCVTYLUXPAUXIGYHUXIQYKUXOBGYHUXIYJVGVH
      VLVIWDWEWAWOXBWPUVLUUKUVTUUOUWCUVLUUJUVSKYMUVLUUIUVRYMUUGUVKUUHETWHWQUVLU
      UNUWBLGUVLUUMUWAYMUUGUVKUULFWGWHWQWRWLWIWJWMWKWSWDYDYPUURXMYEUBKLDEFYMGUU
      EHIJUVEWTVAXAYFCYMYFYECYJQZBGRZCYMMYDYEXCYDUUSYEUXSUUTUVAFUNUJZGMZCUXTCFO
      ZQZUXSUUSUYAYEDUXTFGGEXDDXEUJZXDJEUYDHXFXGZIUXTUSZXHVAUVAUYBCCDUXTFGIUYEU
      YFXIVCUXRUYCBUXTGYIUXTQYJUYBCYIUXTCFTVDVEVFWDYLUXSACGYHCQYKUXRBGYHCYJVGVH
      VLVIXJYDUUSYEUUBUUTUVAUUAUAYOUUSYRYOMZYEUUAUUSUYGNZYEYSYTYEYSNCYRMZUYHYTY
      EUYIYSCYRGXKXLUYHUYIYTUYHUYINZYLYHYRMZULZAGSYTUYJUYLAGUYJUYLYHGMUYJYKUYKB
      GUYJYIGMZNUYKYKYJYRMZUYHUYIUYMUYNCYIDEFYRGHIJXNWFYHYJYRXOWLWIVAXBYLAGYRXP
      XQXRXSXTWEXBWDWSYDUUSYGGUKYNUUCXMYEUUTCGYADYGUAEYMGHJYBYCXA $.
  $}

  ${
    $d K x y z $.  $d X x y z $.  $d G y z $.  $d H x y z $.  $d U x y z $.
    $d Z x y $.
    isfldidl.1 $e |- G = ( 1st ` K ) $.
    isfldidl.2 $e |- H = ( 2nd ` K ) $.
    isfldidl.3 $e |- X = ran G $.
    isfldidl.4 $e |- Z = ( GId ` G ) $.
    isfldidl.5 $e |- U = ( GId ` H ) $.
    $( Determine if a ring is a field based on its ideals.  (Contributed by
       Jeff Madsen, 10-Jun-2010.) $)
    isfldidl $p |- ( K e. Fld <-> ( K e. CRingOps /\
                                U =/= Z /\ ( Idl ` K ) = { { Z } , X } ) ) $=
      ( vy vx vz wcel wceq syl cv wrex wa cfld wne cidl cfv csn cpr w3a fldcrng
      ccring cdrng flddivrng dvrunz divrngidl 3jca crngo co cdif wral crngorngo
      3ad2ant1 simp2 crab crn c1st rneqi eqtri rngo1cl ad2antrr cigen eldif wss
      wn snssi igenss sylan2 snss biimpri eleq2 syl5ibcom con3dimp sylan anasss
      vex sylan2b adantlr wo eldifi snssd igenidl imp an32s ovex elpr sylib ord
      mpd sylanl1 eqtr3d eleqtrd eqeq1 rexbidv elrab simprd eqcom rexbii sylibr
      prnc ralrimiva 3adant2 jca32 isdrngo3 simp1 isfld2 sylanbrc impbii ) DUAO
      ZDUIOZAFUBZDUCUDZFUEZEUFZPZUGZXPXQXRYBDUHXPDUJOZXRDUKZDABCEFGHIJKULQXPYDY
      BYEDBCEFGHIJUMQUNYCYDXQXPYCDUOOZXRLRMRZCUPZAPZLESZMEXTUQZURZTTYDYCYFXRYLX
      QXRYFYBDUSZUTXQXRYBVAXQYBYLXRXQYBTZYJMYKYNYGYKOZTZAYHPZLESZYJYPAEOZYRYPAN
      RZYHPZLESZNEVBZOYSYRTYPAEUUCXQYSYBYOXQYFYSYMDACEEBVCDVDUDZVCIBUUDGVEVFHKV
      GQVHYPDYGUEZVIUPZEUUCXQYFYBYOUUFEPZYMYFYBTYOTZUUFXTPZVLZUUGYFYOUUJYBYOYFY
      GEOZYGXTOZVLZTUUJYGEXTVJYFUUKUUMUUJYFUUKTUUEUUFVKZUUMUUJUUKYFUUEEVKZUUNYG
      EVMDUUEBEGIVNVOUUNUUIUULUUNYGUUFOZUUIUULUUPUUNYGUUFMWCVPVQUUFXTYGVRVSVTWA
      WBWDWEUUHUUIUUGUUHUUFYAOZUUIUUGWFYFYOYBUUQYFYOTZYBUUQUURUUFXSOZYBUUQYOYFU
      UOUUSYOYGEYGEXTWGZWHDUUEBEGIWIVOXSYAUUFVRVSWJWKUUFXTEDUUEVIWLWMWNWOWPWQXQ
      YOUUFUUCPZYBYOXQUUKUVAUUTNLYGDBCEGHIXGVOWEWRWSUUBYRNAEYTAPUUAYQLEYTAYHWTX
      AXBWNXCYIYQLEYHAXDXEXFXHXIXJMLDABCEFGHJIKXKXFXQXRYBXLDXMXNXO $.
  $}

  ${
    isfldidl2.1 $e |- G = ( 1st ` K ) $.
    isfldidl2.2 $e |- H = ( 2nd ` K ) $.
    isfldidl2.3 $e |- X = ran G $.
    isfldidl2.4 $e |- Z = ( GId ` G ) $.
    $( Determine if a ring is a field based on its ideals.  (Contributed by
       Jeff Madsen, 6-Jan-2011.) $)
    isfldidl2 $p |- ( K e. Fld <-> ( K e. CRingOps /\
                              X =/= { Z } /\ ( Idl ` K ) = { { Z } , X } ) ) $=
      ( cfld wcel ccring cgi cfv wne cidl wceq w3a wa 3anass csn cpr eqid crngo
      isfldidl wb crngorngo eqcom 0rngo syl5bb necon3bid anbi1d pm5.32i 3bitr4i
      syl bitri ) CJKCLKZBMNZEOZCPNEUAZDUBQZRZUQDUTOZVARZURABCDEFGHIURUCZUEUQUS
      VASZSUQVCVASZSVBVDUQVFVGUQUSVCVAUQUREDUTUQCUDKZUREQZDUTQZUFCUGVIEURQVHVJU
      REUHCURABDEFGHIVEUIUJUOUKULUMUQUSVATUQVCVATUNUP $.
  $}

  ${
    $d R a b x y r s $.  $d P a b x y r s $.  $d X a b x y r s $.
    $d G x y r s $.  $d H a b x y r s $.
    ispridlc.1 $e |- G = ( 1st ` R ) $.
    ispridlc.2 $e |- H = ( 2nd ` R ) $.
    ispridlc.3 $e |- X = ran G $.
    $( The predicate "is a prime ideal".  Alternate definition for commutative
       rings.  (Contributed by Jeff Madsen, 19-Jun-2010.) $)
    ispridlc $p |- ( R e. CRingOps -> ( P e. ( PrIdl ` R ) <-> ( P e. ( Idl ` R
        )
                              /\ P =/= X /\ A. a e. X A. b e. X
                      ( ( a H b ) e. P -> ( a e. P \/ b e. P ) ) ) ) ) $=
      ( vx vy vs vr wcel co wi wral wss wa ccring cpridl cfv cidl wne cv wo w3a
      crngo wb crngorngo ispridl syl cigen snssi igenidl syl2an adantrr adantrl
      csn wceq raleq sseq1 orbi1d imbi12d ralbidv orbi2d rspc2v syl2anc adantlr
      wrex crab cab df-rab syl6eq abeq2d anbi12d adantr reeanv anbi2i an4 bitri
      prnc crngm4 3com23 3expa adantllr syl3an1 3expb idllmulcl sylanl1 anassrs
      rngocl syldan eqeltrrd oveq12 eleq1d syl5ibrcom rexlimdvva adantld sylbid
      syl5bir ralrimivv ex igenss snss sylibr ssel syl5com orim12d imim12d syld
      vex ralrimdvva adantrd imdistand df-3an 3imtr4g ispridl2 impbid ) BUAOZAB
      UBUCOZABUDUCZOZAEUEZFUFZGUFZDPZAOZYFAOZYGAOZUGZQZGERFERZUHZYAYBYDYEKUFZLU
      FZDPZAOZLMUFZRZKNUFZRZUUBASZYTASZUGZQZMYCRNYCRZUHZYOYABUIOZYBUUIUJBUKZKLA
      BCDENMHIJULUMYAYDYETZUUHTUULYNTUUIYOYAUULUUHYNYAYDUUHYNQZYEYAYDUUMYAYDTZU
      UHYMFGEEUUNYFEOZYGEOZTZTZUUHYSLBYGUTZUNPZRZKBYFUTZUNPZRZUVCASZUUTASZUGZQZ
      YMYAUUQUUHUVHQZYDYAUUQTZUVCYCOZUUTYCOZUVIYAUUOUVKUUPYAUUJUVBESZUVKUUOUUKY
      FEUOZBUVBCEHJUPUQURYAUUPUVLUUOYAUUJUUSESZUVLUUPUUKYGEUOZBUUSCEHJUPUQUSUUG
      UVHUUAKUVCRZUVEUUEUGZQNMUVCUUTYCYCUUBUVCVAZUUCUVQUUFUVRUUAKUUBUVCVBUVSUUD
      UVEUUEUUBUVCAVCVDVEYTUUTVAZUVQUVDUVRUVGUVTUUAUVAKUVCYSLYTUUTVBVFUVTUUEUVF
      UVEYTUUTAVCVGVEVHVIVJUURYIUVDUVGYLUURYIUVDUURYITZYSKLUVCUUTUWAYPUVCOZYQUU
      TOZTZYPEOZYPUUBYFDPZVAZNEVKZTZYQEOZYQYTYGDPZVAZMEVKZTZTZYSUURUWDUWOUJZYIY
      AUUQUWPYDUVJUWBUWIUWCUWNYAUUOUWBUWIUJUUPYAUUOTZUWIKUVCUWQUVCUWHKEVLUWIKVM
      KNYFBCDEHIJWCUWHKEVNVOVPURYAUUPUWCUWNUJUUOYAUUPTZUWNLUUTUWRUUTUWMLEVLUWNL
      VMLMYGBCDEHIJWCUWMLEVNVOVPUSVQVJVRUWOUWEUWJTZUWGUWLTZMEVKNEVKZTZUWAYSUXBU
      WSUWHUWMTZTUWOUXAUXCUWSUWGUWLNMEEVSVTUWEUWJUWHUWMWAWBUWAUXAYSUWSUWAUWTYSN
      MEEUWAUUBEOZYTEOZTZTZYSUWTUWFUWKDPZAOUXGUUBYTDPZYHDPZUXHAUURUXFUXJUXHVAZY
      IYAUUQUXFUXKYDYAUUQUXFUXKYAUXFUUQUXKUUBYTYFYGBCDEHIJWDWEWFWGVJUUNYIUXFUXJ
      AOZUUQUUNYITUXFUXIEOZUXLUUNUXFUXMYIYAUXFUXMYDYAUXDUXEUXMYAUUJUXDUXEUXMUUK
      UUBYTBCDEHIJWMWHWIVJVJUUNYIUXMUXLYAUUJYDYIUXMTUXLUUKYHUXIBCDAEHIJWJWKWLWN
      WGWOUWTYRUXHAYPUWFYQUWKDWPWQWRWSWTXBXAXCXDYAUUQUVGYLQYDUVJUVEYJUVFYKUVJYF
      UVCOZUVEYJYAUUOUXNUUPUWQUVBUVCSZUXNYAUUJUVMUXOUUOUUKUVNBUVBCEHJXEUQYFUVCF
      XMXFXGURUVCAYFXHXIUVJYGUUTOZUVFYKYAUUPUXPUUOUWRUUSUUTSZUXPYAUUJUVOUXQUUPU
      UKUVPBUUSCEHJXEUQYGUUTGXMXFXGUSUUTAYGXHXIXJVJXKXLXNXDXOXPYDYEUUHXQYDYEYNX
      QXRXAYAUUJYOYBQUUKUUJYOYBABCDEFGHIJXSXDUMXT $.

    $d A a b $.  $d B b $.
    $( Property of a prime ideal in a commutative ring.  (Contributed by Jeff
       Madsen, 17-Jun-2011.) $)
    pridlc $p |- ( ( ( R e. CRingOps /\ P e. ( PrIdl ` R ) ) /\
          ( A e. X /\ B e. X /\ ( A H B ) e. P ) ) -> ( A e. P \/ B e. P ) ) $=
      ( va vb wcel cfv wa cv co wo wi wral ccring cpridl w3a cidl biimpa simp3d
      ispridlc wceq oveq1 eleq1d eleq1 orbi1d imbi12d oveq2 orbi2d rspc2v com12
      wne expd 3imp2 sylan ) DUAMZCDUBNMZOZKPZLPZFQZCMZVECMZVFCMZRZSZLGTKGTZAGM
      ZBGMZABFQZCMZUCACMZBCMZRZVDCDUDNMZCGURZVMVBVCWAWBVMUCCDEFGKLHIJUGUEUFVMVN
      VOVQVTVMVNVOVQVTSZVNVOOVMWCVLWCAVFFQZCMZVRVJRZSKLABGGVEAUHZVHWEVKWFWGVGWD
      CVEAVFFUIUJWGVIVRVJVEACUKULUMVFBUHZWEVQWFVTWHWDVPCVFBAFUNUJWHVJVSVRVFBCUK
      UOUMUPUQUSUTVA $.

    $( Property of a prime ideal in a commutative ring.  (Contributed by Jeff
       Madsen, 17-Jun-2011.) $)
    pridlc2 $p |- ( ( ( R e. CRingOps /\ P e. ( PrIdl ` R ) ) /\
            ( A e. ( X \ P ) /\ B e. X /\ ( A H B ) e. P ) ) -> B e. P ) $=
      ( ccring wcel cpridl cfv wa cdif co w3a wn eldifn adantl wi eldifi pridlc
      3ad2ant1 ord syl3anr1 mpd ) DKLCDMNLOZAGCPLZBGLZABFQCLZRZOACLZSZBCLZUMUOU
      IUJUKUOULAGCTUEUAUJAGLZUIUKULUOUPUBAGCUCUIUQUKULROUNUPABCDEFGHIJUDUFUGUH
      $.

    $( Property of a prime ideal in a commutative ring.  (Contributed by Jeff
       Madsen, 17-Jun-2011.) $)
    pridlc3 $p |- ( ( ( R e. CRingOps /\ P e. ( PrIdl ` R ) ) /\
          ( A e. ( X \ P ) /\ B e. ( X \ P ) ) ) -> ( A H B ) e. ( X \ P ) ) $=
      ( ccring wcel cpridl cfv wa cdif co eldifi wn wi crngorngo anim12i rngocl
      crngo 3expb syl2an adantlr ad2antll pridlc2 3exp2 imp32 con3d sylanr2 mpd
      eldifn eldifd ) DKLZCDMNLZOZAGCPZLZBUTLZOZOZABFQZGCUQVCVEGLZURUQDUDLZAGLZ
      BGLZOVFVCDUAVAVHVBVIAGCRBGCRZUBVGVHVIVFABDEFGHIJUCUEUFUGVDBCLZSZVECLZSZVB
      VLUSVABGCUOUHVBUSVAVIVLVNTVJUSVAVIOOVMVKUSVAVIVMVKTUSVAVIVMVKABCDEFGHIJUI
      UJUKULUMUNUP $.
  $}

  ${
    $d R a b $.  $d Z a b $.  $d H a b $.  $d X a b $.
    isdmn3.1 $e |- G = ( 1st ` R ) $.
    isdmn3.2 $e |- H = ( 2nd ` R ) $.
    isdmn3.3 $e |- X = ran G $.
    isdmn3.4 $e |- Z = ( GId ` G ) $.
    isdmn3.5 $e |- U = ( GId ` H ) $.
    $( The predicate "is a domain", alternate expression.  (Contributed by Jeff
       Madsen, 19-Jun-2010.) $)
    isdmn3 $p |- ( R e. Dmn <-> ( R e. CRingOps /\ U =/= Z /\ A. a e. X A. b e.
        X
                                ( ( a H b ) = Z -> ( a = Z \/ b = Z ) ) ) ) $=
      ( wcel wa wceq wi wral cfv syl cdmn cprrng ccring wne cv co wo w3a isdmn2
      crngo csn cpridl isprrngo cidl ispridlc crngorngo biantrurd 3anass wb crn
      0idl rneqi eqtri rngo1cl eleq2 elsni syl6bir syl5com c1o cen wbr rngoueqz
      c1st rngo0cl en1eqsn eqcomd ex sylbird impbid necon3bid ovex elsn orbi12i
      velsn imbi12i 2ralbidv anbi12d bitr3d 3bitr3d pm5.32i ancom 3bitr4i bitri
      a1i syl5bb ) AUANAUBNZAUCNZOZWQBFUDZGUEZHUEZDUFZFPZWTFPZXAFPZUGZQZHERGERZ
      UHZAUIWQWPOWQWSXHOZOWRXIWQWPXJWPAUJNZFUKZAULSNZOZWQXJACFILUMWQXMXLAUNSNZX
      LEUDZXBXLNZWTXLNZXAXLNZUGZQZHERGERZUHZXNXJXLACDEGHIJKUOWQXKXMAUPZUQYCXOXP
      YBOZOZWQXJXOXPYBURWQYEYFXJWQXOYEWQXKXOYDACFILVATUQWQXPWSYBXHWQXLEBFWQXKXL
      EPZBFPZUSYDXKYGYHXKBENZYGYHABDEECUTAVMSZUTKCYJIVBVCJMVDYGYIBXLNYHXLEBVEBF
      VFVGVHXKYHEVIVJVKZYGABCDEFIJLMKVLXKFENZYKYGQACEFIKLVNYLYKYGYLYKOEXLFEVOVP
      VQTVRVSTVTWQYAXGGHEEYAXGUSWQXQXCXTXFXBFWTXADWAWBXRXDXSXEGFWDHFWDWCWEWNWFW
      GWHWOWIWOWJWPWQWKWQWSXHURWLWM $.
  $}

  ${
    $d R a b $.  $d H a b $.  $d X a b $.  $d Z a b $.  $d A a b $.  $d B b $.
    dmnnzd.1 $e |- G = ( 1st ` R ) $.
    dmnnzd.2 $e |- H = ( 2nd ` R ) $.
    dmnnzd.3 $e |- X = ran G $.
    dmnnzd.4 $e |- Z = ( GId ` G ) $.
    $( A domain has no zero-divisors (besides zero).  (Contributed by Jeff
       Madsen, 19-Jun-2010.) $)
    dmnnzd $p |- ( ( R e. Dmn /\ ( A e. X /\ B e. X /\ ( A H B ) = Z ) )
                                                  -> ( A = Z \/ B = Z ) ) $=
      ( va vb wcel co wceq wo wi cv wral cdmn wa ccring cgi cfv wne eqid isdmn3
      simp3bi oveq1 eqeq1d eqeq1 orbi1d imbi12d oveq2 orbi2d syl5com expd 3imp2
      rspc2v ) CUANZAFNZBFNZABEOZGPZAGPZBGPZQZVAVBVCVEVHRZVALSZMSZEOZGPZVJGPZVK
      GPZQZRZMFTLFTZVBVCUBVIVACUCNEUDUEZGUFVRCVSDEFGLMHIJKVSUGUHUIVQVIAVKEOZGPZ
      VFVOQZRLMABFFVJAPZVMWAVPWBWCVLVTGVJAVKEUJUKWCVNVFVOVJAGULUMUNVKBPZWAVEWBV
      HWDVTVDGVKBAEUOUKWDVOVGVFVKBGULUPUNUTUQURUS $.
  $}

  ${
    dmncan.1 $e |- G = ( 1st ` R ) $.
    dmncan.2 $e |- H = ( 2nd ` R ) $.
    dmncan.3 $e |- X = ran G $.
    dmncan.4 $e |- Z = ( GId ` G ) $.
    $( Cancellation law for domains.  (Contributed by Jeff Madsen,
       6-Jan-2011.) $)
    dmncan1 $p |- ( ( ( R e. Dmn /\ ( A e. X /\ B e. X /\ C e. X ) )
                      /\ A =/= Z ) -> ( ( A H B ) = ( A H C ) -> B = C ) ) $=
      ( wcel wa co wceq sylan adantr wi 3expb cdmn w3a wne cgs cfv dmnrngo eqid
      crngo rngosubdi eqeq1d wo cgr rngogrpo syl grpodivcl adantlr dmnnzd 3exp2
      imp31 syldan exp43 3imp2 neor syl6ib com23 sylbird wb 3adant3r3 3adant3r2
      imp rngocl grpoeqdivid syl3anc 3adantr1 3imtr4d ) DUAMZAGMZBGMZCGMZUBZNZA
      HUCZNZABFOZACFOZEUDUEZOZHPZBCWFOZHPZWDWEPZBCPZWCWHAWIFOZHPZWJWCWMWGHWAWMW
      GPZWBVPDUHMZVTWODUFZABCWFDEFGIJKWFUGZUIQRUJWAWBWNWJSWAWNWBWJWAWNAHPWJUKZW
      BWJSVPVQVRVSWNWSSZVPVQVRVSWTVPVQNVRVSNZWIGMZWTVPXAXBVQVPEULMZXAXBVPWPXCWQ
      DEIUMUNZXCVRVSXBBCWFEGKWRUOTQUPVPVQXBWTVPVQXBWNWSAWIDEFGHIJKLUQURUSUTVAVB
      WJAHVCVDVEVJVFWAWKWHVGZWBWAXCWDGMZWEGMZXEVPXCVTXDRVPWPVTXFWQWPVQVRXFVSABD
      EFGIJKVKVHQVPWPVTXGWQWPVQVSXGVRACDEFGIJKVKVIQWDWEWFHEGKLWRVLVMRWAWLWJVGZW
      BVPVRVSXHVQVPXCXAXHXDXCVRVSXHBCWFHEGKLWRVLTQVNRVO $.

    $( Cancellation law for domains.  (Contributed by Jeff Madsen,
       6-Jan-2011.) $)
    dmncan2 $p |- ( ( ( R e. Dmn /\ ( A e. X /\ B e. X /\ C e. X ) )
                      /\ C =/= Z ) -> ( ( A H C ) = ( B H C ) -> A = B ) ) $=
      ( cdmn wcel w3a wa wne co wceq crngocom wb ccring dmncrng 3adant3r2 sylan
      3adant3r1 eqeq12d adantr wi 3anrot biimpri dmncan1 sylanl2 sylbid ) DMNZA
      GNZBGNZCGNZOZPZCHQZPACFRZBCFRZSZCAFRZCBFRZSZABSZUTVDVGUAZVAUODUBNZUSVIDUC
      VJUSPVBVEVCVFVJUPURVBVESUQACDEFGIJKTUDVJUQURVCVFSUPBCDEFGIJKTUFUGUEUHUSUO
      URUPUQOZVAVGVHUIVKUSURUPUQUJUKCABDEFGHIJKLULUMUN $.
  $}
$( (End of Jeff Madsen's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Giovanni Mascellani
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Tools for automatic proof building
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The results in this section are mostly meant for being used by automatic
  proof building programs.  As a result, they might appear less useful or
  meaningful than others to human beings.

$)

  ${
    efald2.1 $e |- ( -. ph -> F. ) $.
    $( A proof by contradiction.  (Contributed by Giovanni Mascellani,
       15-Sep-2017.) $)
    efald2 $p |- ph $=
      ( wtru wn wfal adantl efald trud ) ACAADECBFGH $.
  $}

  ${
    $( Simplification rule of negation across a biimplication.  (Contributed by
       Giovanni Mascellani, 15-Sep-2017.) $)
    notbinot1 $p |- ( -. ( -. ph <-> ps ) <-> ( ph <-> ps ) ) $=
      ( wb wn nbbn bicomi con1bii ) ABCZADBCZIHDABEFG $.
  $}

  ${
    $( Biimplication of its own negation is a contradiction.  (Contributed by
       Giovanni Mascellani, 15-Sep-2017.) $)
    bicontr $p |- ( ( -. ph <-> ph ) <-> F. ) $=
      ( wn wb biid notbinot1 mpbir bifal ) ABACZHBAACADAAEFG $.
  $}

  ${
    $( An equivalent formula for implying a disjunction.  (Contributed by
       Giovanni Mascellani, 15-Sep-2017.) $)
    impor $p |- ( ( ph -> ( ps \/ ch ) ) <-> ( ( -. ph \/ ps ) \/ ch ) ) $=
      ( wo wi wn imor orass bitr4i ) ABCDZEAFZJDKBDCDAJGKBCHI $.
  $}

  ${
    $( The falsum ` F. ` can be removed from a disjunction.  (Contributed by
       Giovanni Mascellani, 15-Sep-2017.) $)
    orfa $p |- ( ( ph \/ F. ) <-> ph ) $=
      ( wfal wo wn wi orcom df-or bitri fal pm2.27 ax-mp sylbi orc impbii ) ABC
      ZAOBDZAEZAOBACQABFBAGHPQAEIPAJKLABMN $.
  $}

  ${
    $( Commutation rule between negation and biimplication.  (Contributed by
       Giovanni Mascellani, 15-Sep-2017.) $)
    notbinot2 $p |- ( -. ( ph <-> ps ) <-> ( -. ph <-> ps ) ) $=
      ( wn wb nbbn bicomi ) ACBDABDCABEF $.
  $}

  ${
    $( A rewriting rule for biimplication.  (Contributed by Giovanni
       Mascellani, 15-Sep-2017.) $)
    biimpor $p |- ( ( ( ph <-> ps ) -> ch ) <-> ( ( -. ph <-> ps ) \/ ch ) ) $=
      ( wb wi wn wo imor notbinot2 orbi1i bitri ) ABDZCELFZCGAFBDZCGLCHMNCABIJK
      $.
  $}

  ${
    unitresl.1 $e |- ( ph -> ( ps \/ ch ) ) $.
    unitresl.2 $e |- ( ph -> -. ch ) $.
    $( A lemma for Conjunctive Normal Form unit propagation, in deduction form.
       (Contributed by Giovanni Mascellani, 15-Sep-2017.) $)
    unitresl $p |- ( ph -> ps ) $=
      ( wo wn wi orcom df-or sylbb sylc ) ABCFZCGZBDEMCBFNBHBCICBJKL $.
  $}

  ${
    unitresr.1 $e |- ( ph -> ( ps \/ ch ) ) $.
    unitresr.2 $e |- ( ph -> -. ps ) $.
    $( A lemma for Conjunctive Normal Form unit propagation, in deduction form.
       (Contributed by Giovanni Mascellani, 15-Sep-2017.) $)
    unitresr $p |- ( ph -> ch ) $=
      ( orcomd unitresl ) ACBABCDFEG $.
  $}

  ${
    orfa1.1 $e |- ( ph -> ps ) $.
    $( Add a contradicting disjunct to an antecedent.  (Contributed by Giovanni
       Mascellani, 15-Sep-2017.) $)
    orfa1 $p |- ( ( ph \/ F. ) -> ps ) $=
      ( wfal falim jaoi ) ABDCBEF $.
  $}

  ${
    orfa2.1 $e |- ( ph -> F. ) $.
    $( Remove a contradicting disjunct from an antecedent.  (Contributed by
       Giovanni Mascellani, 15-Sep-2017.) $)
    orfa2 $p |- ( ( ph \/ ps ) -> ps ) $=
      ( wo wfal orim1i falim id jaoi syl ) ABDEBDBAEBCFEBBBGBHIJ $.
  $}

  ${
    bifald.1 $e |- ( ph -> -. ps ) $.
    $( Infer the equivalence to a contradiction from a negation, in deduction
       form.  (Contributed by Giovanni Mascellani, 15-Sep-2017.) $)
    bifald $p |- ( ph -> ( ps <-> F. ) ) $=
      ( wn wfal wb id falim pm5.21ni syl ) ABDBEFCBBEBGBHIJ $.
  $}

  ${
    orsild.1 $e |- ( ph -> -. ( ps \/ ch ) ) $.
    $( A lemma for not-or-not elimination, in deduction form.  (Contributed by
       Giovanni Mascellani, 15-Sep-2017.) $)
    orsild $p |- ( ph -> -. ps ) $=
      ( wn wo wa ioran sylib simpld ) ABEZCEZABCFEKLGDBCHIJ $.
  $}

  ${
    orsird.1 $e |- ( ph -> -. ( ps \/ ch ) ) $.
    $( A lemma for not-or-not elimination, in deduction form.  (Contributed by
       Giovanni Mascellani, 15-Sep-2017.) $)
    orsird $p |- ( ph -> -. ch ) $=
      ( wn wo wa ioran sylib simprd ) ABEZCEZABCFEKLGDBCHIJ $.
  $}

  ${
    orcomdd.1 $e |- ( ph -> ( ps -> ( ch \/ th ) ) ) $.
    $( Commutativity of logic disjunction, in double deduction form.
       (Contributed by Giovanni Mascellani, 19-Mar-2018.) $)
    orcomdd $p |- ( ph -> ( ps -> ( th \/ ch ) ) ) $=
      ( wo pm1.4 syl6 ) ABCDFDCFECDGH $.
  $}

  ${
    cnf1dd.1 $e |- ( ph -> ( ps -> -. ch ) ) $.
    cnf1dd.2 $e |- ( ph -> ( ps -> ( ch \/ th ) ) ) $.
    $( A lemma for Conjunctive Normal Form unit propagation, in double
       deduction form.  (Contributed by Giovanni Mascellani, 19-Mar-2018.) $)
    cnf1dd $p |- ( ph -> ( ps -> th ) ) $=
      ( wn wo wa jcad wi df-or pm3.35 sylan2b syl6 ) ABCGZCDHZIDABPQEFJQPPDKDCD
      LPDMNO $.
  $}

  ${
    cnf2dd.1 $e |- ( ph -> ( ps -> -. th ) ) $.
    cnf2dd.2 $e |- ( ph -> ( ps -> ( ch \/ th ) ) ) $.
    $( A lemma for Conjunctive Normal Form unit propagation, in double
       deduction form.  (Contributed by Giovanni Mascellani, 19-Mar-2018.) $)
    cnf2dd $p |- ( ph -> ( ps -> ch ) ) $=
      ( orcomdd cnf1dd ) ABDCEABCDFGH $.
  $}

  ${
    cnfn1dd.1 $e |- ( ph -> ( ps -> ch ) ) $.
    cnfn1dd.2 $e |- ( ph -> ( ps -> ( -. ch \/ th ) ) ) $.
    $( A lemma for Conjunctive Normal Form unit propagation, in double
       deduction form.  (Contributed by Giovanni Mascellani, 19-Mar-2018.) $)
    cnfn1dd $p |- ( ph -> ( ps -> th ) ) $=
      ( wn notnot syl6 cnf1dd ) ABCGZDABCKGECHIFJ $.
  $}

  ${
    cnfn2dd.1 $e |- ( ph -> ( ps -> th ) ) $.
    cnfn2dd.2 $e |- ( ph -> ( ps -> ( ch \/ -. th ) ) ) $.
    $( A lemma for Conjunctive Normal Form unit propagation, in double
       deduction form.  (Contributed by Giovanni Mascellani, 19-Mar-2018.) $)
    cnfn2dd $p |- ( ph -> ( ps -> ch ) ) $=
      ( wn notnot syl6 cnf2dd ) ABCDGZABDKGEDHIFJ $.
  $}

  ${
    or32dd.1 $e |- ( ph -> ( ps -> ( ( ch \/ th ) \/ ta ) ) ) $.
    $( A rearrangement of disjuncts, in double deduction form.  (Contributed by
       Giovanni Mascellani, 19-Mar-2018.) $)
    or32dd $p |- ( ph -> ( ps -> ( ( ch \/ ta ) \/ th ) ) ) $=
      ( wo or32 syl6ibr ) ABCDGEGCEGDGFCEDHI $.
  $}

  ${
    notornotel1.1 $e |- ( ph -> -. ( -. ps \/ ch ) ) $.
    $( A lemma for not-or-not elimination, in deduction form.  (Contributed by
       Giovanni Mascellani, 19-Mar-2018.) $)
    notornotel1 $p |- ( ph -> ps ) $=
      ( wn wo wa ioran biimpi simpl notnotr 3syl syl ) ABEZCFEZBDONEZCEZGZPBORN
      CHIPQJBKLM $.
  $}

  ${
    notornotel2.1 $e |- ( ph -> -. ( ps \/ -. ch ) ) $.
    $( A lemma for not-or-not elimination, in deduction form.  (Contributed by
       Giovanni Mascellani, 19-Mar-2018.) $)
    notornotel2 $p |- ( ph -> ch ) $=
      ( wn wo orcom sylnibr notornotel1 ) ACBABCEZFJBFDJBGHI $.
  $}

  ${
    contrd.1 $e |- ( ph -> ( -. ps -> ch ) ) $.
    contrd.2 $e |- ( ph -> ( -. ps -> -. ch ) ) $.
    $( A proof by contradiction, in deduction form.  (Contributed by Giovanni
       Mascellani, 19-Mar-2018.) $)
    contrd $p |- ( ph -> ps ) $=
      ( wn wa wi jcad pm2.24 imp imim2i pm2.18d syl ) ABFZCCFZGZHZBAOCPDEIRBQBO
      CPBCBJKLMN $.
  $}

  ${
    an12i.1 $e |- ( ph /\ ( ps /\ ch ) ) $.
    $( An inference from commuting operands in a chain of conjunctions.
       (Contributed by Giovanni Mascellani, 22-May-2019.) $)
    an12i $p |- ( ps /\ ( ph /\ ch ) ) $=
      ( wa an12 mpbir ) BACEEABCEEDBACFG $.
  $}

  ${
    exmid2.1 $e |- ( ( ps /\ ph ) -> ch ) $.
    exmid2.2 $e |- ( ( -. ps /\ et ) -> ch ) $.
    $( An excluded middle law.  (Contributed by Giovanni Mascellani,
       23-May-2019.) $)
    exmid2 $p |- ( ( ph /\ et ) -> ch ) $=
      ( wa simpl anim2i ancoms syl wn simpr pm2.61dan ) ADGZBCOBGBAGZCBOPOABADH
      IJEKOBLZGQDGZCQORODQADMIJFKN $.
  $}

  ${
    selconj.1 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( An inference for selecting one of a list of conjuncts.  (Contributed by
       Giovanni Mascellani, 23-May-2019.) $)
    selconj $p |- ( ( et /\ ph ) <-> ( ps /\ ( et /\ ch ) ) ) $=
      ( wa anbi2i an12 bitr4i ) DAFDBCFZFBDCFFAJDEGBDCHI $.
  $}

  ${
    $( Add true as a conjunct.  (Contributed by Giovanni Mascellani,
       23-May-2019.) $)
    truconj $p |- ( ph <-> ( T. /\ ph ) ) $=
      ( wtru wa truan bicomi ) BACAADE $.
  $}

  ${
    orel.1 $e |- ( ( ps /\ et ) -> th ) $.
    orel.2 $e |- ( ( ch /\ rh ) -> th ) $.
    orel.3 $e |- ( ph -> ( ps \/ ch ) ) $.
    $( An inference for disjunction elimination.  (Contributed by Giovanni
       Mascellani, 24-May-2019.) $)
    orel $p |- ( ( ph /\ ( et /\ rh ) ) -> th ) $=
      ( wa simprl ancoms sylan simprr wo adantr mpjaodan ) AEFJZJZBDCSEBDAEFKBE
      DGLMSFCDAEFNCFDHLMABCORIPQ $.
  $}

  ${
    negel.1 $e |- ( ps -> ch ) $.
    negel.2 $e |- ( ph -> -. ch ) $.
    $( An inference for negation elimination.  (Contributed by Giovanni
       Mascellani, 24-May-2019.) $)
    negel $p |- ( ( ph /\ ps ) -> F. ) $=
      ( wa adantl wn adantr pm2.21fal ) ABFCBCADGACHBEIJ $.
  $}

  ${
    botel.1 $e |- ( ph -> F. ) $.
    $( An inference for bottom elimination.  (Contributed by Giovanni
       Mascellani, 24-May-2019.) $)
    botel $p |- ( ph -> ps ) $=
      ( wfal falim syl ) ADBCBEF $.
  $}

  ${
    tradd.1 $e |- ( ph <-> ps ) $.
    $( Add top ad a conjunct.  (Contributed by Giovanni Mascellani,
       24-May-2019.) $)
    tradd $p |- ( ph <-> ( T. /\ ps ) ) $=
      ( wtru wa truan bitr4i ) ABDBECBFG $.
  $}

  ${
    sbtru.1 $e |- A e. _V $.
    $( Substitution does not change truth.  (Contributed by Giovanni
       Mascellani, 24-May-2019.) $)
    sbtru $p |- ( [. A / x ]. T. <-> T. ) $=
      ( cvv wcel wtru wsbc wb sbcg ax-mp ) BDEFABGFHCFABDIJ $.
  $}

  ${
    sbfal.1 $e |- A e. _V $.
    $( Substitution does not change falsity.  (Contributed by Giovanni
       Mascellani, 24-May-2019.) $)
    sbfal $p |- ( [. A / x ]. F. <-> F. ) $=
      ( cvv wcel wfal wsbc wb sbcg ax-mp ) BDEFABGFHCFABDIJ $.
  $}

  ${
    sbcani.1 $e |- ( [. A / x ]. ph <-> ch ) $.
    sbcani.2 $e |- ( [. A / x ]. ps <-> et ) $.
    $( Distribution of class substitution over conjunction, in inference form.
       (Contributed by Giovanni Mascellani, 27-May-2019.) $)
    sbcani $p |- ( [. A / x ]. ( ph /\ ps ) <-> ( ch /\ et ) ) $=
      ( wa wsbc sbcan anbi12i bitri ) ABIEFJAEFJZBEFJZICDIABEFKNCODGHLM $.
  $}

  ${
    sbcori.1 $e |- ( [. A / x ]. ph <-> ch ) $.
    sbcori.2 $e |- ( [. A / x ]. ps <-> et ) $.
    $( Distribution of class substitution over disjunction, in inference form.
       (Contributed by Giovanni Mascellani, 27-May-2019.) $)
    sbcori $p |- ( [. A / x ]. ( ph \/ ps ) <-> ( ch \/ et ) ) $=
      ( wo wsbc sbcor orbi12i bitri ) ABIEFJAEFJZBEFJZICDIABEFKNCODGHLM $.
  $}

  ${
    sbcimi.1 $e |- A e. _V $.
    sbcimi.2 $e |- ( [. A / x ]. ph <-> ch ) $.
    sbcimi.3 $e |- ( [. A / x ]. ps <-> et ) $.
    $( Distribution of class substitution over implication, in inference form.
       (Contributed by Giovanni Mascellani, 27-May-2019.) $)
    sbcimi $p |- ( [. A / x ]. ( ph -> ps ) <-> ( ch -> et ) ) $=
      ( wi wsbc cvv wcel wb sbcimg ax-mp imbi12i bitri ) ABJEFKZAEFKZBEFKZJZCDJ
      FLMSUBNGABEFLOPTCUADHIQR $.
  $}

  ${
    sbceqi.1 $e |- A e. _V $.
    sbceqi.2 $e |- [_ A / x ]_ B = D $.
    sbceqi.3 $e |- [_ A / x ]_ C = E $.
    $( Distribution of class substitution over equality, in inference form.
       (Contributed by Giovanni Mascellani, 27-May-2019.) $)
    sbceqi $p |- ( [. A / x ]. B = C <-> D = E ) $=
      ( wceq wsbc csb cvv wcel wb sbceqg ax-mp eqeq12i bitri ) CDJABKZABCLZABDL
      ZJZEFJBMNTUCOGABCDMPQUAEUBFHIRS $.
  $}

  ${
    sbcni.1 $e |- A e. _V $.
    sbcni.2 $e |- ( [. A / x ]. ph <-> ps ) $.
    $( Move class substitution inside a negation, in inference form.
       (Contributed by Giovanni Mascellani, 27-May-2019.) $)
    sbcni $p |- ( [. A / x ]. -. ph <-> -. ps ) $=
      ( wn wsbc cvv wcel wb sbcng ax-mp xchbinx ) AGCDHZACDHZBDIJOPGKEACDILMFN
      $.
  $}

  ${
    sbali.1 $e |- A e. _V $.
    $( Discard class substitution in a universal quantification when
       substituting the quantified variable, in inference form.  (Contributed
       by Giovanni Mascellani, 27-May-2019.) $)
    sbali $p |- ( [. A / x ]. A. x ph <-> A. x ph ) $=
      ( cvv wcel wal wsbc wb nfa1 sbcgf ax-mp ) CEFABGZBCHMIDMBCEABJKL $.
  $}

  ${
    sbexi.1 $e |- A e. _V $.
    $( Discard class substitution in an existential quantification when
       substituting the quantified variable, in inference form.  (Contributed
       by Giovanni Mascellani, 27-May-2019.) $)
    sbexi $p |- ( [. A / x ]. E. x ph <-> E. x ph ) $=
      ( cvv wcel wex wsbc wb nfe1 sbcgf ax-mp ) CEFABGZBCHMIDMBCEABJKL $.
  $}

  ${
    $d ph z $.  $d x y $.  $d x z $.  $d y z $.  $d z A $.
    sbcalf.1 $e |- F/_ y A $.
    $( Move universal quantifier in and out of class substitution, with an
       explicit non-free variable condition.  (Contributed by Giovanni
       Mascellani, 29-May-2019.) $)
    sbcalf $p |- ( [. A / x ]. A. y ph <-> A. y [. A / x ]. ph ) $=
      ( vz wal wsbc wsb nfv sb8 sbcbii sbcal nfs1v nfsbc sbequ12r sbcbidv cbval
      weq 3bitri ) ACGZBDHACFIZFGZBDHUBBDHZFGABDHZCGUAUCBDACFAFJKLUBFBDMUDUEFCU
      BCBDEACFNOUEFJFCSUBABDAFCPQRT $.
  $}

  ${
    $d ph z $.  $d x y $.  $d x z $.  $d y z $.  $d z A $.
    sbcexf.1 $e |- F/_ y A $.
    $( Move existential quantifier in and out of class substitution, with an
       explicit non-free variable condition.  (Contributed by Giovanni
       Mascellani, 29-May-2019.) $)
    sbcexf $p |- ( [. A / x ]. E. y ph <-> E. y [. A / x ]. ph ) $=
      ( vz wex wsbc wsb nfv sb8e sbcbii sbcex2 nfs1v nfsbc weq sbequ12r sbcbidv
      cbvex 3bitri ) ACGZBDHACFIZFGZBDHUBBDHZFGABDHZCGUAUCBDACFAFJKLUBFBDMUDUEF
      CUBCBDEACFNOUEFJFCPUBABDAFCQRST $.
  $}

  ${
    $d x y $.
    sbcalfi.1 $e |- F/_ y A $.
    sbcalfi.2 $e |- ( [. A / x ]. ph <-> ps ) $.
    $( Move universal quantifier in and out of class substitution, with an
       explicit non-free variable condition and in inference form.
       (Contributed by Giovanni Mascellani, 30-May-2019.) $)
    sbcalfi $p |- ( [. A / x ]. A. y ph <-> A. y ps ) $=
      ( wal wsbc sbcalf albii bitri ) ADHCEIACEIZDHBDHACDEFJMBDGKL $.
  $}

  ${
    $d x y $.
    sbcexfi.1 $e |- F/_ y A $.
    sbcexfi.2 $e |- ( [. A / x ]. ph <-> ps ) $.
    $( Move existential quantifier in and out of class substitution, with an
       explicit non-free variable condition and in inference form.
       (Contributed by Giovanni Mascellani, 30-May-2019.) $)
    sbcexfi $p |- ( [. A / x ]. E. y ph <-> E. y ps ) $=
      ( wex wsbc sbcexf exbii bitri ) ADHCEIACEIZDHBDHACDEFJMBDGKL $.
  $}

  ${
    csbvargi.1 $e |- A e. _V $.
    $( The proper substitution of a class for a variable in that variable
       results in the class (if the class exists), in inference form.
       (Contributed by Giovanni Mascellani, 30-May-2019.) $)
    csbvargi $p |- [_ A / x ]_ x = A $=
      ( cvv wcel cv csb wceq csbvarg ax-mp ) BDEABAFGBHCABDIJ $.
  $}

  ${
    $d x y $.
    csbconstgi.1 $e |- A e. _V $.
    $( The proper substitution of a class for a variable in another variable
       does not modify it, in inference form.  (Contributed by Giovanni
       Mascellani, 30-May-2019.) $)
    csbconstgi $p |- [_ A / x ]_ y = y $=
      ( cvv wcel cv csb wceq csbconstg ax-mp ) CEFACBGZHLIDACLEJK $.
  $}

  ${
    spsbcdi.1 $e |- A e. _V $.
    spsbcdi.2 $e |- ( ph -> A. x ch ) $.
    spsbcdi.3 $e |- ( [. A / x ]. ch <-> ps ) $.
    $( A lemma for eliminating a universal quantifier, in inference form.
       (Contributed by Giovanni Mascellani, 30-May-2019.) $)
    spsbcdi $p |- ( ph -> ps ) $=
      ( wsbc cvv wcel a1i spsbcd sylib ) ACDEIBACDEJEJKAFLGMHN $.
  $}

  ${
    $d x y $.
    alrimii.1 $e |- F/ y ph $.
    alrimii.2 $e |- ( ph -> ps ) $.
    alrimii.3 $e |- ( [. y / x ]. ch <-> ps ) $.
    alrimii.4 $e |- F/ y ch $.
    $( A lemma for introducing a universal quantifier, in inference form.
       (Contributed by Giovanni Mascellani, 30-May-2019.) $)
    alrimii $p |- ( ph -> A. x ch ) $=
      ( cv wsbc wal sylibr alrimi nfsbc1v sbceq2a cbval sylib ) ACDEJZKZELCDLAT
      EFABTGHMNTCEDCDSOICDSPQR $.
  $}

  ${
    spesbcdi.1 $e |- ( ph -> ps ) $.
    spesbcdi.2 $e |- ( [. A / x ]. ch <-> ps ) $.
    $( A lemma for introducing an existential quantifier, in inference form.
       (Contributed by Giovanni Mascellani, 30-May-2019.) $)
    spesbcdi $p |- ( ph -> E. x ch ) $=
      ( wsbc sylibr spesbcd ) ACDEABCDEHFGIJ $.
  $}

  ${
    exlimddvf.1 $e |- ( ph -> E. x th ) $.
    exlimddvf.2 $e |- F/ x ps $.
    exlimddvf.3 $e |- ( ( th /\ ps ) -> ch ) $.
    exlimddvf.4 $e |- F/ x ch $.
    $( A lemma for eliminating an existential quantifier.  (Contributed by
       Giovanni Mascellani, 30-May-2019.) $)
    exlimddvf $p |- ( ( ph /\ ps ) -> ch ) $=
      ( wex expcom exlimd mpan9 ) ADEJBCFBDCEGIDBCHKLM $.
  $}

  ${
    exlimddvfi.1 $e |- ( ph -> E. x th ) $.
    exlimddvfi.2 $e |- F/ y th $.
    exlimddvfi.3 $e |- F/ y ps $.
    exlimddvfi.4 $e |- ( [. y / x ]. th <-> et ) $.
    exlimddvfi.5 $e |- ( ( et /\ ps ) -> ch ) $.
    exlimddvfi.6 $e |- F/ y ch $.
    $( A lemma for eliminating an existential quantifier, in inference form.
       (Contributed by Giovanni Mascellani, 31-May-2019.) $)
    exlimddvfi $p |- ( ( ph /\ ps ) -> ch ) $=
      ( wsb wex sb8e sylib cv wsbc sbsbc bitri sylanb exlimddvf ) ABCDFGNZGADFO
      UDGOHDFGIPQJUDEBCUDDFGRSEDFGTKUALUBMUC $.
  $}

  ${
    sbceq1ddi.1 $e |- ( ph -> A = B ) $.
    sbceq1ddi.2 $e |- ( ps -> th ) $.
    sbceq1ddi.3 $e |- ( [. A / x ]. ch <-> th ) $.
    sbceq1ddi.4 $e |- ( [. B / x ]. ch <-> et ) $.
    $( A lemma for eliminating inequality, in inference form.  (Contributed by
       Giovanni Mascellani, 31-May-2019.) $)
    sbceq1ddi $p |- ( ( ph /\ ps ) -> et ) $=
      ( wa wsbc wceq adantr sylibr adantl sbceq1dd sylib ) ABMZCFHNEUACFGHAGHOB
      IPBCFGNZABDUBJKQRSLT $.
  $}

  ${
    $d x y $.  $d x A $.  $d y A $.  $d y B $.
    sbccom2lem.1 $e |- A e. _V $.
    $( Lemma for ~ sbccom2 .  (Contributed by Giovanni Mascellani,
       31-May-2019.) $)
    sbccom2lem $p |- ( [. A / x ]. [. B / y ]. ph
        <-> [. [_ A / x ]_ B / y ]. [. A / x ]. ph ) $=
      ( cv wceq wa wex csb wsbc sbcan sbc5 csbconstgi sbceqi anbi1i exbii bitri
      eqid 3bitr3i sbcbii 19.42v bicomi excom 3bitr4i ) BGDHZCGZEHZAIZIZBJZCJZU
      HBDEKZHZABDLZIZCJACELZBDLZUPCUNLULUQCUJBDLUIBDLZUPIULUQUIABDMUJBDNUTUOUPB
      DUHEUHUNFBCDFOUNTPQUARUSUGUJCJZIZBJZUMUSVABDLVCURVABDACENUBVABDNSVCUKCJZB
      JUMVBVDBVDVBUGUJCUCUDRUKBCUESSUPCUNNUF $.
  $}

  ${
    $d ph z $.  $d ph w $.  $d x y $.  $d x z $.  $d x w $.  $d y z $.
    $d y A $.  $d z w $.  $d z A $.  $d z B $.  $d w A $.  $d w B $.
    sbccom2.1 $e |- A e. _V $.
    $( Commutative law for double class substitution.  (Contributed by Giovanni
       Mascellani, 31-May-2019.) $)
    sbccom2 $p |- ( [. A / x ]. [. B / y ]. ph
        <-> [. [_ A / x ]_ B / y ]. [. A / x ]. ph ) $=
      ( vw vz wsbc cv csb sbcco bicomi sbcbii vex sbccom2lem 3bitri wceq csbco
      wb dfsbcq ax-mp bitri sbccom ) ACEIZBDIZACGJZIZBDIZGBDEKZIZABDIZCUGIZGUJI
      ULCUJIUFUIGHDBHJZEKZKZIZUKUFUHBUNIZGUOIZHDIZURHDIZGUPIUQUFUHGEIZBDIZVBBUN
      IZHDIZUTUEVBBDVBUEACGELMNVEVCVBBHDLMVDUSHDUHBGUNEHOPNQURHGDUOFPVAUIGUPUHB
      HDLNQUPUJRUQUKTBHDESUIGUPUJUAUBUCUIUMGUJABCDUGUDNULCGUJLQ $.
  $}

  ${
    $d ph z $.  $d x y $.  $d x z $.  $d y z $.  $d z A $.
    sbccom2f.1 $e |- A e. _V $.
    sbccom2f.2 $e |- F/_ y A $.
    $( Commutative law for double class substitution, with non free variable
       condition.  (Contributed by Giovanni Mascellani, 31-May-2019.) $)
    sbccom2f $p |- ( [. A / x ]. [. B / y ]. ph
        <-> [. [_ A / x ]_ B / y ]. [. A / x ]. ph ) $=
      ( vz wsbc cv csb sbcco bicomi sbcbii sbccom2 vex wceq wb eqidd bitri
      csbief dfsbcq ax-mp 3bitri ) ACEIZBDIACHJZIZHEIZBDIUGBDIZHBDEKZIZABDIZCUJ
      IZUEUHBDUHUEACHELMNUGBHDEFOUKULCUFIZHUJIUMUIUNHUJUNUIUNUGBCUFDKZIZUIACBUF
      DHPZOUODQUPUIRCUFDDUQGCJUFQDSUAUGBUODUBUCTMNULCHUJLTUD $.
  $}

  ${
    $d x y $.
    sbccom2fi.1 $e |- A e. _V $.
    sbccom2fi.2 $e |- F/_ y A $.
    sbccom2fi.3 $e |- [_ A / x ]_ B = C $.
    sbccom2fi.4 $e |- ( [. A / x ]. ph <-> ps ) $.
    $( Commutative law for double class substitution, with non free variable
       condition and in inference form.  (Contributed by Giovanni Mascellani,
       1-Jun-2019.) $)
    sbccom2fi $p |- ( [. A / x ]. [. B / y ]. ph <-> [. C / y ]. ps ) $=
      ( wsbc csb sbccom2f wceq wb dfsbcq ax-mp sbcbii 3bitri ) ADFLCELACELZDCEF
      MZLZUADGLZBDGLACDEFHINUBGOUCUDPJUADUBGQRUABDGKST $.
  $}

  ${
    sbcgfi.1 $e |- A e. _V $.
    sbcgfi.2 $e |- F/ x ph $.
    $( Substitution for a variable not free in a wff does not affect it, in
       inference form.  (Contributed by Giovanni Mascellani, 1-Jun-2019.) $)
    sbcgfi $p |- ( [. A / x ]. ph <-> ph ) $=
      ( cvv wcel wsbc wb sbcgf ax-mp ) CFGABCHAIDABCFEJK $.
  $}

  ${
    $d x y $.  $d x z $.  $d y z $.  $d z A $.  $d z B $.  $d z C $.  $d z D $.
    $d z E $.
    csbcom2fi.1 $e |- A e. _V $.
    csbcom2fi.2 $e |- F/_ y A $.
    csbcom2fi.3 $e |- [_ A / x ]_ B = C $.
    csbcom2fi.4 $e |- [_ A / x ]_ D = E $.
    $( Commutative law for double class substitution in a class, with non free
       variable condition and in inference form.  (Contributed by Giovanni
       Mascellani, 4-Jun-2019.) $)
    csbcom2fi $p |- [_ A / x ]_ [_ B / y ]_ D = [_ C / y ]_ E $=
      ( vz csb cv wcel wsbc df-csb abeq2i sbcbii bitri eleq2i bitr3i sbccom2fi
      sbcel2 3bitri eqriv ) LACBDFMZMZBEGMZLNZUHOZUJFOZBDPZACPZUJGOZBEPUJUIOUKU
      JUGOZACPZUNUQLUHALCUGQRUPUMACUMLUGBLDFQRSTULUOABCDEHIJULACPZUJACFMZOUOURL
      USALCFQRUSGUJKUAUBUCBEUJGUDUEUF $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.
    csbgfi.1 $e |- A e. _V $.
    csbgfi.2 $e |- F/_ x B $.
    $( Substitution for a variable not free in a class does not affect it, in
       inference form.  (Contributed by Giovanni Mascellani, 4-Jun-2019.) $)
    csbgfi $p |- [_ A / x ]_ B = B $=
      ( vy csb cv wcel wsbc df-csb abeq2i nfcri sbcgfi bitri eqriv ) FABCGZCFHZ
      QIRCIZABJZSTFQAFBCKLSABDAFCEMNOP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Tseitin axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  A collection of Tseitin axioms used to convert a wff to Conjunctive
  Normal Form.

$)

  $( Refutation of falsity, in deduction form.  (Contributed by Giovanni
     Mascellani, 24-Mar-2018.) $)
  fald $p |- ( th -> -. F. ) $=
    ( wfal wn fal a1i ) BCADE $.

  $( A Tseitin axiom for logical implication, in deduction form.  (Contributed
     by Giovanni Mascellani, 24-Mar-2018.) $)
  tsim1 $p |- ( th -> ( ( -. ph \/ ps ) \/ -. ( ph -> ps ) ) ) $=
    ( wn wo wi exmid df-or notnotb bicomi imbi1i bitri orbi1i mpbir a1i ) ADZBE
    ZABFZDZEZCTRSERGQRSQPDZBFRPBHUAABAUAAIJKLMNO $.

  $( A Tseitin axiom for logical implication, in deduction form.  (Contributed
     by Giovanni Mascellani, 24-Mar-2018.) $)
  tsim2 $p |- ( th -> ( ph \/ ( ph -> ps ) ) ) $=
    ( wi wo pm2.21 orri a1i ) AABDZECAIABFGH $.

  $( A Tseitin axiom for logical implication, in deduction form.  (Contributed
     by Giovanni Mascellani, 24-Mar-2018.) $)
  tsim3 $p |- ( th -> ( -. ps \/ ( ph -> ps ) ) ) $=
    ( wn wi wo ax-1 imori a1i ) BDABEZFCBJBAGHI $.

  $( A Tseitin axiom for logical biimplication, in deduction form.
     (Contributed by Giovanni Mascellani, 24-Mar-2018.) $)
  tsbi1 $p |- ( th -> ( ( -. ph \/ -. ps ) \/ ( ph <-> ps ) ) ) $=
    ( wn wo wb wa pm5.1 olcd pm3.13 orcd pm2.61i a1i ) ADBDEZABFZEZCABGZPQONABH
    IQDNOABJKLM $.

  $( A Tseitin axiom for logical biimplication, in deduction form.
     (Contributed by Giovanni Mascellani, 24-Mar-2018.) $)
  tsbi2 $p |- ( th -> ( ( ph \/ ps ) \/ ( ph <-> ps ) ) ) $=
    ( wo wb wn wa pm5.21 olcd pm4.57 biimpi orcd pm2.61i a1i ) ABDZABEZDZCAFBFG
    ZQRPOABHIRFZOPSOABJKLMN $.

  $( A Tseitin axiom for logical biimplication, in deduction form.
     (Contributed by Giovanni Mascellani, 24-Mar-2018.) $)
  tsbi3 $p |- ( th -> ( ( ph \/ -. ps ) \/ -. ( ph <-> ps ) ) ) $=
    ( wn wo wb wi biimpr con34b pm2.54 sylbi syl con3i orri a1i ) ABDZEZABFZDZE
    CQSRQRBAGZQABHTADPGQBAIAPJKLMNO $.

  $( A Tseitin axiom for logical biimplication, in deduction form.
     (Contributed by Giovanni Mascellani, 24-Mar-2018.) $)
  tsbi4 $p |- ( th -> ( ( -. ph \/ ps ) \/ -. ( ph <-> ps ) ) ) $=
    ( wn wo wb tsbi3 orcom bicom notbii orbi12i sylib ) CBADZEZBAFZDZEMBEZABFZD
    ZEBACGNQPSBMHORBAIJKL $.

  $( A Tseitin axiom for logical exclusive disjunction, in deduction form.
     (Contributed by Giovanni Mascellani, 24-Mar-2018.) $)
  tsxo1 $p |- ( th -> ( ( -. ph \/ -. ps ) \/ -. ( ph \/_ ps ) ) ) $=
    ( wn wo wb wxo tsbi1 xnor orbi2i sylib ) CADBDEZABFZELABGDZEABCHMNLABIJK $.

  $( A Tseitin axiom for logical exclusive disjunction, in deduction form.
     (Contributed by Giovanni Mascellani, 24-Mar-2018.) $)
  tsxo2 $p |- ( th -> ( ( ph \/ ps ) \/ -. ( ph \/_ ps ) ) ) $=
    ( wo wb wxo wn tsbi2 xnor orbi2i sylib ) CABDZABEZDLABFGZDABCHMNLABIJK $.

  $( A Tseitin axiom for logical exclusive disjunction, in deduction form.
     (Contributed by Giovanni Mascellani, 24-Mar-2018.) $)
  tsxo3 $p |- ( th -> ( ( ph \/ -. ps ) \/ ( ph \/_ ps ) ) ) $=
    ( wn wo wb wxo tsbi3 df-xor bicomi orbi2i sylib ) CABDEZABFDZEMABGZEABCHNOM
    ONABIJKL $.

  $( A Tseitin axiom for logical exclusive disjunction, in deduction form.
     (Contributed by Giovanni Mascellani, 24-Mar-2018.) $)
  tsxo4 $p |- ( th -> ( ( -. ph \/ ps ) \/ ( ph \/_ ps ) ) ) $=
    ( wn wo wb wxo tsbi4 df-xor bicomi orbi2i sylib ) CADBEZABFDZEMABGZEABCHNOM
    ONABIJKL $.

  $( A Tseitin axiom for logical conjunction, in deduction form.  (Contributed
     by Giovanni Mascellani, 24-Mar-2018.) $)
  tsan1 $p |- ( th -> ( ( -. ph \/ -. ps ) \/ ( ph /\ ps ) ) ) $=
    ( wn wo wa pm3.12 a1i ) ADBDEABFECABGH $.

  $( A Tseitin axiom for logical conjunction, in deduction form.  (Contributed
     by Giovanni Mascellani, 24-Mar-2018.) $)
  tsan2 $p |- ( th -> ( ph \/ -. ( ph /\ ps ) ) ) $=
    ( wa wn wo pm3.14 orcs orri a1i ) AABDEZFCAKAEBEKABGHIJ $.

  $( A Tseitin axiom for logical conjunction, in deduction form.  (Contributed
     by Giovanni Mascellani, 24-Mar-2018.) $)
  tsan3 $p |- ( th -> ( ps \/ -. ( ph /\ ps ) ) ) $=
    ( wa wn wo pm3.14 olcs orri a1i ) BABDEZFCBKAEBEKABGHIJ $.

  $( A Tseitin axiom for logical incompatibility, in deduction form.
     (Contributed by Giovanni Mascellani, 24-Mar-2018.) $)
  tsna1 $p |- ( th -> ( ( -. ph \/ -. ps ) \/ -. ( ph -/\ ps ) ) ) $=
    ( wn wo wa wnan tsan1 notnotb df-nan bitr3i con4bii orbi2i sylibr ) CADBDEZ
    ABFZEOABGZDZEABCHRPORPRDQPDQIABJKLMN $.

  $( A Tseitin axiom for logical incompatibility, in deduction form.
     (Contributed by Giovanni Mascellani, 24-Mar-2018.) $)
  tsna2 $p |- ( th -> ( ph \/ ( ph -/\ ps ) ) ) $=
    ( wa wn wo wnan tsan2 df-nan orbi2i sylibr ) CAABDEZFAABGZFABCHMLAABIJK $.

  $( A Tseitin axiom for logical incompatibility, in deduction form.
     (Contributed by Giovanni Mascellani, 24-Mar-2018.) $)
  tsna3 $p |- ( th -> ( ps \/ ( ph -/\ ps ) ) ) $=
    ( wa wn wo wnan tsan3 df-nan orbi2i sylibr ) CBABDEZFBABGZFABCHMLBABIJK $.

  $( A Tseitin axiom for logical disjunction, in deduction form.  (Contributed
     by Giovanni Mascellani, 25-Mar-2018.) $)
  tsor1 $p |- ( th -> ( ( ph \/ ps ) \/ -. ( ph \/ ps ) ) ) $=
    ( wo exmidd ) CABDE $.

  $( A Tseitin axiom for logical disjunction, in deduction form.  (Contributed
     by Giovanni Mascellani, 25-Mar-2018.) $)
  tsor2 $p |- ( th -> ( -. ph \/ ( ph \/ ps ) ) ) $=
    ( wn wo orc imori a1i ) ADABEZECAIABFGH $.

  $( A Tseitin axiom for logical disjunction, in deduction form.  (Contributed
     by Giovanni Mascellani, 25-Mar-2018.) $)
  tsor3 $p |- ( th -> ( -. ps \/ ( ph \/ ps ) ) ) $=
    ( wn wo olc imori a1i ) BDABEZECBIBAFGH $.

  $( A Tseitin axiom for triple logical conjunction, in deduction form.
     (Contributed by Giovanni Mascellani, 25-Mar-2018.) $)
  ts3an1 $p |- ( th ->
       ( ( -. ( ph /\ ps ) \/ -. ch ) \/ ( ph /\ ps /\ ch ) ) ) $=
    ( wa wn wo w3a tsan1 df-3an orbi2i sylibr ) DABEZFCFGZMCEZGNABCHZGMCDIPONAB
    CJKL $.

  $( A Tseitin axiom for triple logical conjunction, in deduction form.
     (Contributed by Giovanni Mascellani, 25-Mar-2018.) $)
  ts3an2 $p |- ( th -> ( ( ph /\ ps ) \/ -. ( ph /\ ps /\ ch ) ) ) $=
    ( wa wn wo w3a tsan2 df-3an notbii orbi2i sylibr ) DABEZNCEZFZGNABCHZFZGNCD
    IRPNQOABCJKLM $.

  $( A Tseitin axiom for triple logical conjunction, in deduction form.
     (Contributed by Giovanni Mascellani, 25-Mar-2018.) $)
  ts3an3 $p |- ( th -> ( ch \/ -. ( ph /\ ps /\ ch ) ) ) $=
    ( wa wn wo w3a tsan3 df-3an notbii orbi2i sylibr ) DCABEZCEZFZGCABCHZFZGNCD
    IRPCQOABCJKLM $.

  $( A Tseitin axiom for triple logical disjunction, in deduction form.
     (Contributed by Giovanni Mascellani, 25-Mar-2018.) $)
  ts3or1 $p |- ( th -> ( ( ( ph \/ ps ) \/ ch ) \/ -. ( ph \/ ps \/ ch ) ) ) $=
    ( wo wn w3o exmidd df-3or notbii orbi2i sylibr ) DABECEZMFZEMABCGZFZEDMHPNM
    OMABCIJKL $.

  $( A Tseitin axiom for triple logical disjunction, in deduction form.
     (Contributed by Giovanni Mascellani, 25-Mar-2018.) $)
  ts3or2 $p |- ( th -> ( -. ( ph \/ ps ) \/ ( ph \/ ps \/ ch ) ) ) $=
    ( wo wn w3o tsor2 df-3or orbi2i sylibr ) DABEZFZLCEZEMABCGZELCDHONMABCIJK
    $.

  $( A Tseitin axiom for triple logical disjunction, in deduction form.
     (Contributed by Giovanni Mascellani, 25-Mar-2018.) $)
  ts3or3 $p |- ( th -> ( -. ch \/ ( ph \/ ps \/ ch ) ) ) $=
    ( wn wo w3o tsor3 df-3or orbi2i sylibr ) DCEZABFZCFZFLABCGZFMCDHONLABCIJK
    $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Equality deductions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  A collection of theorems for commuting equalities (or
  biimplications) with other constructs.

$)

  ${
    iuneq2f.1 $e |- F/_ x A $.
    iuneq2f.2 $e |- F/_ x B $.
    $( Equality deduction for indexed union.  (Contributed by Giovanni
       Mascellani, 9-Apr-2018.) $)
    iuneq2f $p |- ( A = B -> U_ x e. A C = U_ x e. B C ) $=
      ( wceq nfeq id eqidd iuneq12df ) BCGZABCDDABCEFHEFLILDJK $.
  $}

  $( Equality deduction for class abstraction.  (Contributed by Giovanni
     Mascellani, 10-Apr-2018.) $)
  abeq12 $p |- ( A. x ( ph <-> ps ) -> { x | ph } = { x | ps } ) $=
    ( wb wal cab wceq abbi biimpi ) ABDCEACFBCFGABCHI $.

  ${
    rabeq12f.1 $e |- F/_ x A $.
    rabeq12f.2 $e |- F/_ x B $.
    $( Equality deduction for restricted class abstraction.  (Contributed by
       Giovanni Mascellani, 10-Apr-2018.) $)
    rabeq12f $p |- ( ( A = B /\ A. x e. A ( ph <-> ps ) ) ->
         { x e. A | ph } = { x e. B | ps } ) $=
      ( wb wral wceq crab rabbi biimpi rabeqf sylan9eqr ) ABHCDIZDEJACDKZBCDKZB
      CEKPQRJABCDLMBCDEFGNO $.
  $}

  $( Equality deduction for substitution in class.  (Contributed by Giovanni
     Mascellani, 10-Apr-2018.) $)
  csbeq12 $p |- ( ( A = B /\ A. x C = D ) ->
       [_ A / x ]_ C = [_ B / x ]_ D ) $=
    ( wceq wal csb csbeq2 csbeq1 sylan9eqr ) DEFAGBCFABDHABEHACEHABDEIABCEJK $.

  $( Equality deduction for not-freeness.  (Contributed by Giovanni Mascellani,
     10-Apr-2018.) $)
  nfbii2 $p |- ( A. x ( ph <-> ps ) -> ( F/ x ph <-> F/ x ps ) ) $=
    ( wb wal nfa1 sp nfbidf ) ABDZCEABCICFICGH $.

  $( Equality deduction for substitution.  (Contributed by Giovanni Mascellani,
     10-Apr-2018.) $)
  sbeqi $p |- ( ( x = y /\ A. z ( ph <-> ps ) ) ->
       ( [ x / z ] ph <-> [ y / z ] ps ) ) $=
    ( wb wal wsb cv wceq spsbbi sbequ sylan9bbr ) ABFEGAECHBECHCIDIJBEDHABECKBC
    DELM $.

  ${
    ralbi12f.1 $e |- F/_ x A $.
    ralbi12f.2 $e |- F/_ x B $.
    $( Equality deduction for restricted universal quantification.
       (Contributed by Giovanni Mascellani, 10-Apr-2018.) $)
    ralbi12f $p |- ( ( A = B /\ A. x e. A ( ph <-> ps ) ) ->
         ( A. x e. A ph <-> A. x e. B ps ) ) $=
      ( wb wral wceq ralbi raleqf sylan9bbr ) ABHCDIACDIBCDIDEJBCEIABCDKBCDEFGL
      M $.
  $}

  $( Equality deduction for class abstraction of nested ordered pairs.
     (Contributed by Giovanni Mascellani, 10-Apr-2018.) $)
  oprabbi $p |- ( A. x A. y A. z ( ph <-> ps ) ->
       { <. <. x , y >. , z >. | ph } = { <. <. x , y >. , z >. | ps } ) $=
    ( coprab wceq wb wal eqoprab2b biimpri ) ACDEFBCDEFGABHEIDICIABCDEJK $.

  ${
    $d x y $.  $d x z $.  $d y z $.  $d z A $.  $d z B $.  $d z C $.  $d z D $.
    $d z E $.  $d z F $.
    mpt2bi123f.1 $e |- F/_ x A $.
    mpt2bi123f.2 $e |- F/_ x B $.
    mpt2bi123f.3 $e |- F/_ y A $.
    mpt2bi123f.4 $e |- F/_ y B $.
    mpt2bi123f.5 $e |- F/_ y C $.
    mpt2bi123f.6 $e |- F/_ y D $.
    mpt2bi123f.7 $e |- F/_ x C $.
    mpt2bi123f.8 $e |- F/_ x D $.
    $( Equality deduction for maps-to notations with two arguments.
       (Contributed by Giovanni Mascellani, 10-Apr-2018.) $)
    mpt2bi123f $p |- ( ( ( A = B /\ C = D ) /\ A. x e. A A. y e. C E = F )
         -> ( x e. A , y e. C |-> E ) = ( x e. B , y e. D |-> F ) ) $=
      ( vz wal wo a1d wceq wa wral cv wcel coprab cmpt2 wb wi nfeq eleq2 alrimi
      nfcri nfbi ax-5 alimi syl nfal nf5ri 3syl id alanimi syl2an eqeq2 alrimiv
      2ralimi hbra1 alrimih 19.21v albii sylibr ralimi 2albii 19.21 sylbbr wfal
      rsp wn tsan2 ord cnf1dd tsbi2 a1dd ax-1 contrd tsim2 tsbi3 cnfn2dd cnf2dd
      idd tsan3 mpdd notnotr a1i sylibrd jcad tsim3 tsbi1 cnfn1dd or32dd sylibd
      tsan1 tsbi4 tsim1 efald2 2alimi oprabbi df-mpt2 3eqtr4g ) CDUAZEFUAZUBZGH
      UAZBEUCACUCZUBZAUDZCUEZBUDZEUEZUBZQUDZGUAZUBZABQUFZXPDUEZXRFUEZUBZYAHUAZU
      BZABQUFZABCEGUGABDFHUGXOXQYEUHZXSYFUHZUBZXQXSYBYHUHZUIZUIZUBZQRZBRZARZYCY
      IUHZQRZBRARYDYJUAXLYMQRZBRZARZYPQRZBRZARZYTXNXJYKQRZBRZARZYLQRZBRZARZUUEX
      KXJYKARUUKXJYKAACDIJUJCDXPUKULYKUUJAYKUUIBXQYEBBACKUMZBADLUMUNYKQUOULUPUQ
      XKYLBRUUMUUNXKYLBBEFMNUJEFXRUKULYLUULBYLQUOUPUUMAUULABYLAQXSYFAABEOUMABFP
      UMUNURURUSUTUUJUUMUUDAUUIUULUUCBYKYLYMQYMVAVBVBVBVCXNYNQRZBEUCZACUCZUUHXM
      UUPABCEXMYNQGHYAVDVEVFUURYOQRZBRZACUCZXQUUTUIZARZUUHUUQUUTACUUQXSUUPUIZBR
      UUTUUQUVDBUUPBEVGUUPBEVQVHUUSUVDBXSYNQVIVJVKVLUVAUVBAUUTACVGUUTACVQVHUUHX
      QUUSUIZBRZARUVCUUFUVEABXQYOQVIVMUVFUVBAXQUUSBUUOVNVJVOUTUQUUDUUGYSAUUCUUF
      YRBYMYPYQQYQVAVBVBVBVCYRUUBABYQUUAQYQUUAUIZUVGVRZVPYOUVHVPVRZXQYOUVHXQUVI
      UVHXQYIUVHXQVRZYCYIUVHUVJXTYCVRZUVHXQXTVRZXQXSUVHVSVTUVHXTUVKSZUVJXTYBUVH
      VSZTWAUVHYCYISZUVJUVHUVOUVGUVHUVOVRZUUAYQUVHUVOUUAYCYIUVHWBZVTWCUVHUVPWDW
      ETWAUVHUVJYGYIVRZUVHUVJYEYGVRZUVHUVJXQYEVRZUVHUVJWJUVHUVJXQUVTSZYKUVHYKUV
      JUVHYKUVGUVHYKVRZYQUVGUVHUWBYMYQVRZUVHYKYMVRZYKYLUVHVSVTUVHYMUWCSZUWBYMYP
      UVHVSZTWAUVHYQUVGSZUWBYQUUAUVHWFZTWAUVHUWBWDWEZTUVHUWAUWBSUVJXQYEUVHWGTWH
      WAUVHYEUVSSUVJYEYFUVHVSTWAUVHYGUVRSZUVJYGYHUVHVSZTWAWEZTZUVHUVIYPYQUVHUVI
      YQUVGUVHUVIWDZUVHUWGUVIUWHTWIUVHYPUWCSZUVIYMYPUVHWKZTWHWLUVHUVIXSYOVRZUVH
      UVIXSXTUVHUVIXTYCUVHUVIYCYIUVHUVRUVIUVHUVRYNUVHUVRVRZXSYNUVHUWRYFXSUVHUWR
      YFYGUVHUWRYGYIUWRYIUIUVHYIWMWNZUVHUWJUWRUWKTWHUVHYFUVSSUWRYEYFUVHWKTWHUVH
      YLUVGUVHYLVRZYQUVGUVHUWTYMUWCUVHYLUWDYKYLUVHWKVTUVHUWEUWTUWFTWAUVHUWGUWTU
      WHTWAUVHUWTWDWEZWOZUVHUWRXQYOUVHXQUWRUWLTZUVHUWRYPYQUVHUWRYQUVGUVHUWRWDZU
      VHUWGUWRUWHTWIUVHUWOUWRUWPTWHWLWLUVHUWRYBYNVRZUVHUWRXTYBVRZUVHUWRXQXSUXCU
      XBWPUVHUWRUVLUXFSZYCUVHUWRUVKYIUWSUVHUWRUVKUVRSZUUAUVHUWRUUAVRZUVGUXDUVHU
      XIUVGSZUWRYQUUAUVHWQZTWIUVHUXHUUASUWRYCYIUVHWRTWIWHUVHUXGYCSUWRXTYBUVHXBT
      WIWSUVHUWRYBUXESYHUVHUWRYHYIUWSUVHYHUVRSUWRYGYHUVHWKTWHUVHUWRYBYHVRZUXEUV
      HYBUXLSUXESUWRYBYHUVHWGTWTWHWAWETZUVHUVIUVOUUAUVHUVIUXIUVGUWNUVHUXJUVIUXK
      TWIUVHUVOUUASUVIUVQTWIWIZUVHUVMUVIUVNTWHUVHXSUVLSUVIXQXSUVHWKTWHZUVHUVIXS
      VRZUWQSYNUVHUVIYBUXEUVHUVIYBYCUXNUVHYBUVKSUVIXTYBUVHWKTWHUVHUVIUXFUXESYHU
      VHUVIYGUXLUVHUVIYEYFUVHUVIXQYEUWMUWIXAUVHUVIXSYFUXOUXAXAWPUVHUVIUVSUXLSZY
      IUXMUVHUXQYISUVIYGYHUVHXBTWIWSUVHUVIUXFYHUXEUVHUXFYHSUXESUVIYBYHUVHXCTWTW
      IWSUVHUVIUXPYNUWQUVHUXPYNSUWQSUVIXSYNUVHXDTWTWIWSWEXEUPXFYCYIABQXGUTABQCE
      GXHABQDFHXHXI $.
  $}

  ${
    iuneq12f.1 $e |- F/_ x A $.
    iuneq12f.2 $e |- F/_ x B $.
    $( Equality deduction for indexed unions.  (Contributed by Giovanni
       Mascellani, 10-Apr-2018.) $)
    iuneq12f $p |- ( ( A = B /\ A. x e. A C = D )
         -> U_ x e. A C = U_ x e. B D ) $=
      ( wceq wral ciun iuneq2 iuneq2f sylan9eqr ) DEHABIBCHABDJABEJACEJABDEKABC
      EFGLM $.
  $}

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y C $.  $d y D $.
    iineq12f.1 $e |- F/_ x A $.
    iineq12f.2 $e |- F/_ x B $.
    $( Equality deduction for indexed intersections.  (Contributed by Giovanni
       Mascellani, 10-Apr-2018.) $)
    iineq12f $p |- ( ( A = B /\ A. x e. A C = D ) ->
         |^|_ x e. A C = |^|_ x e. B D ) $=
      ( vy wceq wral wa cv wcel cab ciin wb eleq2 ralimi ralbi df-iin sylan9bbr
      syl raleqf abbidv 3eqtr4g ) BCIZDEIZABJZKZHLZDMZABJZHNUJEMZACJZHNABDOACEO
      UIULUNHUHULUMABJZUFUNUHUKUMPZABJULUOPUGUPABDEUJQRUKUMABSUBUMABCFGUCUAUDAH
      BDTAHCETUE $.
  $}

  $( Equality deduction for class abstraction of ordered pairs.  (Contributed
     by Giovanni Mascellani, 10-Apr-2018.) $)
  opabbi $p |- ( A. x A. y ( ph <-> ps ) ->
       { <. x , y >. | ph } = { <. x , y >. | ps } ) $=
    ( copab wceq wb wal eqopab2b biimpri ) ACDEBCDEFABGDHCHABCDIJ $.

  ${
    $d x y $.  $d y A $.  $d y B $.  $d y D $.  $d y E $.
    mptbi12f.1 $e |- F/_ x A $.
    mptbi12f.2 $e |- F/_ x B $.
    $( Equality deduction for maps-to notations.  (Contributed by Giovanni
       Mascellani, 10-Apr-2018.) $)
    mptbi12f $p |- ( ( A = B /\ A. x e. A D = E ) ->
         ( x e. A |-> D ) = ( x e. B |-> E ) ) $=
      ( vy wceq wa wb wal wi wn ord wo contrd a1d cnfn2dd cnf2dd wral wcel cmpt
      copab nfeq eleq2 alrimi ax-5 alimi syl eqeq2 alrimiv ralimi df-ral 19.21v
      cv sylib albii sylibr id alanimi syl2an wfal tsan2 tsbi2 a1dd ax-1 cnf1dd
      simplim tsbi3 tsan3 mpdd notnotr a1i jcad tsim3 tsbi1 tsbi4 cnfn1dd tsan1
      or32dd efald2 2alimi eqopab2b df-mpt 3eqtr4g ) BCIZDEIZABUAZJZAUPZBUBZHUP
      ZDIZJZAHUDZWKCUBZWMEIZJZAHUDZABDUCACEUCWJWOWSKZHLALZWPWTIWJWLWQKZWLWNWRKZ
      MZJZHLZALZXBWGXCHLZALZXEHLZALZXHWIWGXCALXJWGXCAABCFGUEBCWKUFUGXCXIAXCHUHU
      IUJWIWLXDHLZMZALZXLWIXMABUAXOWHXMABWHXDHDEWMUKULUMXMABUNUQXKXNAWLXDHUOURU
      SXIXKXGAXCXEXFHXFUTVAVAVBXFXAAHXFXAMZXPNZVCXDXQVCNZWLXDXQWLXRXQWLWSXQWLNZ
      WOWSXQWLWONZWLWNXQVDOXQWOWSPZXSXQYAXPXQYANZXAXFXQYAXAWOWSXQVEOVFXQYBVGQZR
      VHXQXSWQWSNZXQWLWQNZXQWLYEPZXFXQXFYFNZXFXAVIZRXQYGXCXFNZXQYFXCNZWLWQXQVJO
      XQXCYIPZYGXCXEXQVDZRVHQZOXQWQYDPZXSWQWRXQVDZRVHQRZXQXRXEXFXQXFXRYHRZXQXEY
      IPZXRXCXEXQVKZRSVLXQXRWNXDNZXQXRWNWOXQXRWOWSXQYDXRXQYDWOXQYDNZWLWNXQUUAWL
      WQXQUUAWQWSUUAWSMXQWSVMVNZXQYNUUAYORSXQYFUUAYMRSZXQUUAWNWRXQUUAWRWSUUBXQW
      RYDPUUAWQWRXQVKRSXQUUAWNWRNZPZXDXQUUAWLXDUUCXQUUAXEXFXQXFUUAYHRXQYRUUAYSR
      SVLXQUUEYTPUUAWNWRXQVJRSSVOXQUUAXTWSUUBXQUUAXTYDPZXAXQUUAXANZXPXQUUAVGXQU
      UGXPPUUAXFXAXQVPRTXQUUFXAPUUAWOWSXQVQRTSQRZXQYAXRYCRTXQWNXTPXRWLWNXQVKRSX
      QXRWNNZYTPWRXQXRWQUUDXQXRWLWQYPXQXRXSWQPZXCXQXRXCXFYQXQYKXRYLRSXQUUJYJPXR
      WLWQXQVRRSVSXQXRYEUUDPZWSUUHXQUUKWSPXRWQWRXQVTRTVSXQXRUUIWRYTXQUUIWRPYTPX
      RWNWRXQVRRWATVSQWBWCUJWOWSAHWDUSAHBDWEAHCEWEWF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Miscellanea
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Work in progress or things that do not belong anywhere else.

$)

  ${
    $( $d x y $.  $d x z $. $)
    $( Substituting ` y ` for ` x ` and then ` z ` for ` y ` is equivalent to
       substituting ` z ` for both ` x ` and ` y ` .  (Contributed by Giovanni
       Mascellani, 8-Apr-2018.)  Obsolete version of ~ sbcom3 as of
       16-Sep-2018.  (New usage is discouraged.)
       (Proof modification is discouraged.)  Note: this proof requires many
       hours to 'save proof', 'prove...', and 'minimize_with...'  The
       discouragements will prevent accidental minimization attempts, etc. that
       would interfere with scripts.  For the time being we are keeping this
       proof as a test case, but it will be deleted eventually. -NM $)
    $(
    [Commented out by NM 28-Aug-2019 to avoid slowdown in proof format
    conversions.  Uncomment it if needed for testing.]
    sbcom3OLD $p |- ( [ z / y ] [ y / x ] ph <-> [ z / x ] [ z / y ] ph ) $=
      ( wi wa wn id a1i wo a1d orcomdd cnf2dd or32dd tsim3 cnfn2dd contrd tsan3
      tsan1 tsim2 wsb cv wceq wex wb equtr impcom equtr2 eqcomd imbi2d pm5.74rd
      eqeq2 pm5.32rd exbidv pm5.74i imbi1d pm5.32i wfal tsan2 tsbi2 tsbi3 tsbi4
      exmidd tsbi1 efald2 ax-mp exbii orsild orsird notnotrd tsim1 df-sb imbi2i
      anbi2i anbi12i bitri bicomi bitr4i 3bitr4i sbcom ) ABCUAZCDUAZABDUAZCDUAZ
[encoded data, 5760 characters]
      VMVVCXEVVBXDCWCXBWGVVDVNVGVQVOVRVSACDBVTVR $.
    $)
  $}

  ${
    $d x y $.  $d x z $.  $d x w $.  $d y z $.  $d z w $.  $d z A $.  $d w A $.
    scottexf.1 $e |- F/_ y A $.
    scottexf.2 $e |- F/_ x A $.
    $( A version of ~ scottex with non-free variables instead of distinct
       variables.  (Contributed by Giovanni Mascellani, 19-Aug-2018.) $)
    scottexf $p |- { x e. A | A. y e. A ( rank ` x ) C_ ( rank ` y ) } e. _V $=
      ( vw vz cv crnk cfv wss wral crab cvv wb wcel nfcv nfv wceq fveq2 cbvralf
      sseq2d a1i rabbiia nfral sseq1d ralbidv cbvrab eqtr4i scottex eqeltri ) A
      HZIJZBHZIJZKZBCLZACMZFHZIJZGHZIJZKZGCLZFCMZNURUMVBKZGCLZACMVEUQVGACUQVGOU
      LCPUPVFBGCDGCQUPGRVFBRUNVASUOVBUMUNVAITUBUAUCUDVDVGFACFCQEVCAGCEVCARUEVGF
      RUSULSZVCVFGCVHUTUMVBUSULITUFUGUHUIFGCUJUK $.
  $}

  ${
    $d x y $.  $d x z $.  $d x w $.  $d y z $.  $d z w $.  $d z A $.  $d w A $.
    scott0f.1 $e |- F/_ y A $.
    scott0f.2 $e |- F/_ x A $.
    $( A version of ~ scott0 with non-free variables instead of distinct
       variables.  (Contributed by Giovanni Mascellani, 19-Aug-2018.) $)
    scott0f $p |- ( A = (/) <-> { x e. A | A. y e. A ( rank ` x )
         C_ ( rank ` y ) } = (/) ) $=
      ( vw vz c0 wceq cv crnk cfv wss wral crab scott0 wb nfcv nfv fveq2 sseq2d
      wcel cbvralf a1i rabbiia nfral sseq1d ralbidv cbvrab eqtr4i eqeq1i bitr4i
      ) CHIFJZKLZGJZKLZMZGCNZFCOZHIAJZKLZBJZKLZMZBCNZACOZHIFGCPVFUSHVFVAUPMZGCN
      ZACOUSVEVHACVEVHQUTCUBVDVGBGCDGCRVDGSVGBSVBUOIVCUPVAVBUOKTUAUCUDUEURVHFAC
      FCREUQAGCEUQASUFVHFSUMUTIZUQVGGCVIUNVAUPUMUTKTUGUHUIUJUKUL $.
  $}

  ${
    $d x y $.
    scottn0f.1 $e |- F/_ y A $.
    scottn0f.2 $e |- F/_ x A $.
    $( A version of ~ scott0f with inequalities instead of equalities.
       (Contributed by Giovanni Mascellani, 19-Aug-2018.) $)
    scottn0f $p |- ( A =/= (/) <-> { x e. A | A. y e. A ( rank ` x )
         C_ ( rank ` y ) } =/= (/) ) $=
      ( c0 cv crnk cfv wss wral crab scott0f necon3bii ) CFAGHIBGHIJBCKACLFABCD
      EMN $.
  $}

  ${
    $d ph f $.  $d x y $.  $d x A $.  $d x f $.  $d y f $.  $d A f $.
    ac6s3f.1 $e |- F/ y ps $.
    ac6s3f.2 $e |- A e. _V $.
    ac6s3f.3 $e |- ( y = ( f ` x ) -> ( ph <-> ps ) ) $.
    $( Generalization of the Axiom of Choice to classes, with bound-variable
       hypothesis.  (Contributed by Giovanni Mascellani, 19-Aug-2018.) $)
    ac6s3f $p |- ( A. x e. A E. y ph -> E. f A. x e. A ps ) $=
      ( wex wral cvv wrex cv wf wa rexv ralbii biimpri ac6sf exsimpr 3syl ) ADJ
      ZCEKZADLMZCEKZELFNOZBCEKZPFJUHFJUFUDUEUCCEADQRSABCDELFGHITUGUHFUAUB $.
  $}

  ${
    $d ph f $.  $d x y $.  $d x A $.  $d x f $.  $d y f $.  $d A f $.
    ac6s6.1 $e |- F/ y ps $.
    ac6s6.2 $e |- A e. _V $.
    ac6s6.3 $e |- ( y = ( f ` x ) -> ( ph <-> ps ) ) $.
    $( Generalization of the Axiom of Choice to classes, moving the existence
       condition in the consequent.  (Contributed by Giovanni Mascellani,
       19-Aug-2018.) $)
    ac6s6 $p |- E. f A. x e. A ( E. y ph -> ps ) $=
      ( wi wn wo tsim3 a1d cnf2dd tsim2 cnfn2dd cnfn1dd a1dd wtru wex wcel wral
      cab cvv cif hbe1 iftrue abeq2d exbidh ibir vex exiftru hbn iffalse eleq2d
      cv mpbiri pm2.61i rgenw nfe1 nfim cfv wceq wb wfal id a1i ax-1 mpdd tsbi4
      tsbi2 cnf1dd simplim syld tsbi3 tsim1 or32dd contrd tsbi1 efald2 ord mt3d
      ax-mp notornotel2 notornotel1 a1tru ac6s3f ) DUQZADUAZADUDZUEUFZUBZDUAZCE
      UCWJBJZCEUCFUAWNCEWJWNWJWNWJWMADADUGZWJADWLWJWKUEUHUIZUJUKWJKZWNWIUEUBZDU
      AWSDDULZUMWRWMWSDWJDWPUNWRWLUEWIWJWKUEUOUPZUJURUSUTWMWOCDEFWJBDADVAGVBHWJ
      WICUQFUQVCVDZWMWOVEZJZWJWMAVEZJZWJXDJZWQXBABVEZJZXFXGJZIXIXJJZXKKZVFXCXLV
      FKZWMXCXLXMWMAXLAXMXLAWOXLAKZWMWOXLXNWMKZAXNXNJXLXNVGVHZXLXNXOALZXEXLXNWJ
      XEXLXNWJXGXLXNXGKZXJXLXNXJKZXKXLXNVIXLXSXKLZXNXIXJXLMZNOZXLXRXJLZXNXFXGXL
      MZNOZXLWJXGLZXNWJXDXLPZNOZXLXNXFXJYBXLXFXJLZXNXFXGXLPZNOVJXLXQXEKZLXNWMAX
      LVKNQOXLXNWMWOLZXCXLXNXCKZXDXLXNXDKZXGYEXLYNXGLZXNWJXDXLMZNOZXLYMXDLZXNXB
      XCXLMZNOXLYLXCLXNWMWOXLVLNOVMXLXNWJWOKZYHXLXNWRYTLBXLXNABKZXPXLXNAUUALZXH
      XLXNXBXHXLXNXBXDYQXLXBXDLZXNXBXCXLPZNOXIXJVNZVOXLUUBXHKZLXNABXLVPNQVMXLXN
      WRBYTXLWRBLYTLXNWJBXLVQNVRORVSNZXLXMWMXNLZXEXLXMWJXEXLXMWJXGXLXMXRXJXLXMX
      SXKXLXMVIXLXTXMYANOZXLYCXMYDNOZXLYFXMYGNOXLXMXFXJUUIXLYIXMYJNOVJXLUUHYKLX
      MWMAXLVPNQQXLXMXOXCLWOXLXMBWJXLXMABUUGXLXMXNBLZXHXLXMXBXHXLXMXBXDXLXMYNXG
      UUJXLYOXMYPNOZXLUUCXMUUDNOUUEVOXLUUKUUFLXMABXLVKNQRSXLXMXOYTXCXLXOYTLZXCL
      ZXMWMWOXLVTNVRQRXLXMYMXDUULXLYRXMYSNOVSWAWDWDWRWMTVEZJZWRXDJZWRWMWSVEZJZU
      UPXAWRWSJZUUSUUPJZWSWRWTVHUUTUVAJZUVBKZVFWSUVCXMWRWSUVCWRXMUVCWRUVBUVCVGZ
      UVCWRKZUVAUUTUVCUVEUUPUUSUVCWRUUPWRUUOUVCPWBSSWCNZUUTUVAVNVOUVCXMUURWSKZU
      VCXMWRUURUVFUVCUUSUVBUVDUVCUUSKUVAUUTUVCUUSUVAUUSUUPUVCPWBSWCVOUVCUURKZUV
      GLZXMUVCUVIUVAUVCUVIKZUUPUUSUVCUVJUUOWRUVCUVJWMUUOUVCUVJWMWSUVJWSJUVCUVJU
      VHWSUVJVGZWEVHUVCUVJWMUVGLZUURUVJUURJUVCUVJUURUVGUVKWFVHUVCUVLUVHLUVJWMWS
      UVCVPNQQUVCUVJXOUUOLTUVCTUVJUVCWGNUVCUVJXOTKZUUOUVCXOUVMLUUOLUVJWMTUVCVTN
      VRQRSSUVCUVJUVAKZUVBUVCUVJVIUVCUVNUVBLUVJUUTUVAUVCMNOVSNRVSWAWDWDUUPUUQJZ
      UVOKZVFUUOUVPXMWRUUOUVPXMWRUUQUVPXMUUQKZUVOUVPXMVIZUVPUVQUVOLXMUUPUUQUVPM
      NOZUVPWRUUQLZXMWRXDUVPPZNOUVPXMUUPUVOUVRUVPUUPUVOLXMUUPUUQUVPPNOVJUVPXMWM
      UUOKZUVPXMXOWOUVPWOXMUVPWOUVOUVPVGUVPYTUUQUUPUVPYTWJUUQUVPYTWJWOYTYTJUVPY
      TVGVHUVPWJWOLYTWJBUVPPNOUVPUVTYTUWANRSWCNUVPXMUUMXCUVPXMYMXDUVPXMYNUUQUVS
      UVPYNUUQLXMWRXDUVPMNOUVPYRXMXBXCUVPMNOUVPUUNXMWMWOUVPVTNOQUVPXMWMUWBLTUVP
      TXMUVPWGNUVPXMWMUVMUWBUVPWMUVMLUWBLXMWMTUVPVPNVRQVMVSWAWDUSWHWD $.
  $}

  ${
    $d ph z $.  $d ph f $.  $d ps z $.  $d x y $.  $d x z $.  $d x f $.
    $d y z $.  $d y f $.  $d z A $.  $d z f $.  $d A f $.
    ac6s6f.1 $e |- A e. _V $.
    ac6s6f.2 $e |- F/ y ps $.
    ac6s6f.3 $e |- ( y = ( f ` x ) -> ( ph <-> ps ) ) $.
    ac6s6f.4 $e |- F/_ x A $.
    $( Generalization of the Axiom of Choice to classes, moving the existence
       condition in the consequent.  (Contributed by Giovanni Mascellani,
       20-Aug-2018.) $)
    ac6s6f $p |- E. f A. x e. A ( E. y ph -> ps ) $=
      ( vz cv wceq wex wi wral wa isseti vex ac6s6 pm3.2i exdistr raleqf biimpa
      exan mpbir nfcv 2eximi ax5e mp2b ) KLZEMZADNBOZCUKPZQZFNKNZUMCEPZFNZKNURU
      PULUNFNZQKNULUSKULKNUSKEGRABCDUKFHKSITUAUEULUNKFUBUFUOUQKFULUNUQUMCUKECUK
      UGJUCUDUHURKUIUJ $.
  $}

$( (End of Giovanni Mascellani's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Peter Mazsa
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  $( Contents: ~ http://us.metamath.org/mpeuni/mmtheorems.html#dtl:20.21 $)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Notations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c |X. $. $( Range Cartesian product symbol. $)

  $c ,~ $. $( Class of cosets symbol $)
  $c ~ $. $( Class of coelements symbol $)

  $c Rels $. $( The class of all relations $)

  $c _S $. $( The class of all subset relations $)


  $( Extend the definition of a class to include the range Cartesian product
     class. $)
  cxrn $a class ( A |X. B ) $.

  $( Extend the definition of a class to include the class of cosets by a
     class.  (Read: the class of cosets by ` R ` .) $)
  ccoss $a class ,~ R $.
  $( Extend the definition of a class to include the class of coelements on a
     class.  (Read: the class of coelements on ` A ` .) $)
  ccoels $a class ~ A $.

  $( Extend the definition of a class to include the relation class. $)
  crels $a class Rels $.

  $( Extend the definition of a class to include the subset class. $)
  cssr $a class _S $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Preparatory theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    elv.1 $e |- ( x e. _V -> ph ) $.
    $( New way ( ~ elv , and the theorems beginning with "el2v" or "el3v") to
       shorten some proofs.  Inference forms (with ` |- A e. _V ` hypotheses)
       of the general theorems (proving ` |- ( A e. V -> ` assertions) may be
       superfluous.  (Contributed by Peter Mazsa, 13-Oct-2018.) $)
    elv $p |- ph $=
      ( cv cvv wcel vex ax-mp ) BDEFABGCH $.
  $}

  ${
    el2v.1 $e |- ( ( x e. _V /\ y e. _V ) -> ph ) $.
    $( New way ( ~ elv , and the theorems beginning with "el2v" or "el3v") to
       shorten some proofs.  Inference forms (with ` |- A e. _V ` and
       ` |- B e. _V ` hypotheses) of the general theorems (proving
       ` |- ( ( A e. V /\ B e. W ) -> ` assertions) may be superfluous.
       (Contributed by Peter Mazsa, 13-Oct-2018.) $)
    el2v $p |- ph $=
      ( cv cvv wcel vex mp2an ) BEFGCEFGABHCHDI $.
  $}

  ${
    el2v1.1 $e |- ( ( x e. _V /\ ph ) -> ps ) $.
    $( New way ( ~ elv , and the theorems beginning with "el2v" or "el3v") to
       shorten some proofs.  (Contributed by Peter Mazsa, 23-Oct-2018.) $)
    el2v1 $p |- ( ph -> ps ) $=
      ( cv cvv wcel vex mpan ) CEFGABCHDI $.
  $}

  ${
    el2v2.1 $e |- ( ( ph /\ y e. _V ) -> ps ) $.
    $( New way ( ~ elv , and the theorems beginning with "el2v" or "el3v") to
       shorten some proofs.  (Contributed by Peter Mazsa, 23-Oct-2018.) $)
    el2v2 $p |- ( ph -> ps ) $=
      ( cv cvv wcel vex mpan2 ) ACEFGBCHDI $.
  $}

  ${
    el3v.1 $e |- ( ( x e. _V /\ y e. _V /\ z e. _V ) -> ph ) $.
    $( New way ( ~ elv , and the theorems beginning with "el2v" or "el3v") to
       shorten some proofs.  Inference forms (with ` |- A e. _V ` ,
       ` |- B e. _V ` and ` |- C e. _V ` hypotheses) of the general theorems
       (proving ` |- ( ( A e. V /\ B e. W /\ C e. X ) -> ` assertions) may be
       superfluous.  (Contributed by Peter Mazsa, 13-Oct-2018.) $)
    el3v $p |- ph $=
      ( cv cvv wcel vex mp3an ) BFGHCFGHDFGHABICIDIEJ $.
  $}

  ${
    el3v1.1 $e |- ( ( x e. _V /\ ps /\ ch ) -> th ) $.
    $( New way ( ~ elv , and the theorems beginning with "el2v" or "el3v") to
       shorten some proofs.  (Contributed by Peter Mazsa, 16-Oct-2020.) $)
    el3v1 $p |- ( ( ps /\ ch ) -> th ) $=
      ( cv cvv wcel vex mp3an1 ) DFGHABCDIEJ $.
  $}

  ${
    el3v2.1 $e |- ( ( ph /\ y e. _V /\ ch ) -> th ) $.
    $( New way ( ~ elv , and the theorems beginning with "el2v" or "el3v") to
       shorten some proofs.  (Contributed by Peter Mazsa, 16-Oct-2020.) $)
    el3v2 $p |- ( ( ph /\ ch ) -> th ) $=
      ( cv cvv wcel vex mp3an2 ) ADFGHBCDIEJ $.
  $}

  ${
    el3v3.1 $e |- ( ( ph /\ ps /\ z e. _V ) -> th ) $.
    $( New way ( ~ elv , and the theorems beginning with "el2v" or "el3v") to
       shorten some proofs.  (Contributed by Peter Mazsa, 16-Oct-2020.) $)
    el3v3 $p |- ( ( ph /\ ps ) -> th ) $=
      ( cv cvv wcel vex mp3an3 ) ABDFGHCDIEJ $.
  $}

  ${
    el3v12.1 $e |- ( ( x e. _V /\ y e. _V /\ ch ) -> th ) $.
    $( New way ( ~ elv , and the theorems beginning with "el2v" or "el3v") to
       shorten some proofs.  (Contributed by Peter Mazsa, 11-Jul-2021.) $)
    el3v12 $p |- ( ch -> th ) $=
      ( cv cvv wcel el3v1 el2v1 ) ABDDFGHABCEIJ $.
  $}

  ${
    el3v13.1 $e |- ( ( x e. _V /\ ps /\ z e. _V ) -> th ) $.
    $( New way ( ~ elv , and the theorems beginning with "el2v" or "el3v") to
       shorten some proofs.  (Contributed by Peter Mazsa, 11-Jul-2021.) $)
    el3v13 $p |- ( ps -> th ) $=
      ( cv cvv wcel el3v3 el2v1 ) ABCCFGHABDEIJ $.
  $}

  ${
    el3v23.1 $e |- ( ( ph /\ y e. _V /\ z e. _V ) -> th ) $.
    $( New way ( ~ elv , and the theorems beginning with "el2v" or "el3v") to
       shorten some proofs.  (Contributed by Peter Mazsa, 11-Jul-2021.) $)
    el3v23 $p |- ( ph -> th ) $=
      ( cv cvv wcel el3v3 el2v2 ) ABCACFGHBDEIJ $.
  $}

  ${
    biancom.1 $e |- ( ph <-> ( ch /\ ps ) ) $.
    $( Commuting conjunction in a biconditional.  (Contributed by Peter Mazsa,
       17-Jun-2018.) $)
    biancom $p |- ( ph <-> ( ps /\ ch ) ) $=
      ( wa ancom bitr4i ) ACBEBCEDBCFG $.
  $}

  ${
    biancomd.1 $e |- ( ph -> ( ps <-> ( th /\ ch ) ) ) $.
    $( Commuting conjunction in a biconditional, deduction form.  (Contributed
       by Peter Mazsa, 3-Oct-2018.) $)
    biancomd $p |- ( ph -> ( ps <-> ( ch /\ th ) ) ) $=
      ( wa ancom syl6bb ) ABDCFCDFEDCGH $.
  $}

  ${
    anbi1ci.1 $e |- ( ph <-> ps ) $.
    $( Introduce a left and the same right conjunct to the sides of a logical
       equivalence.  (Contributed by Peter Mazsa, 7-Mar-2020.) $)
    anbi1ci $p |- ( ( ch /\ ph ) <-> ( ps /\ ch ) ) $=
      ( wa anbi2i biancom ) CAEBCABCDFG $.
  $}

  ${
    anbi1cd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Introduce a left and the same right conjunct to the sides of a logical
       equivalence, deduction form.  (Contributed by Peter Mazsa,
       22-May-2021.) $)
    anbi1cd $p |- ( ph -> ( ( th /\ ps ) <-> ( ch /\ th ) ) ) $=
      ( wb wa anbi2 biancomd syl ) ABCFZDBGZCDGFEKLCDBCDHIJ $.
  $}

  $( Double commutation in conjunction.  (Contributed by Peter Mazsa,
     27-Jun-2019.) $)
  an2anr $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) <->
                 ( ( ps /\ ph ) /\ ( th /\ ch ) ) ) $=
    ( wa ancom anbi12i ) ABEBAECDEDCEABFCDFG $.

  $( Multiple commutations in conjunction.  (Contributed by Peter Mazsa,
     7-Mar-2020.) $)
  anan $p |- ( ( ( ( ph /\ ps ) /\ ch ) /\ ( ( ph /\ th ) /\ ta ) ) <->
                ( ( ps /\ th ) /\ ( ph /\ ( ch /\ ta ) ) ) ) $=
    ( wa an4 anandi ancom bitr3i anbi1i anass 3bitri ) ABFZCFADFZEFFNOFZCEFZFBD
    FZAFZQFRAQFFNCOEGPSQPARFSABDHARIJKRAQLM $.

  ${
    triantru3.1 $e |- ph $.
    triantru3.2 $e |- ps $.
    $( A wff is equivalent to its conjunctions with truths.  (Contributed by
       Peter Mazsa, 30-Nov-2018.) $)
    triantru3 $p |- ( ch <-> ( ph /\ ps /\ ch ) ) $=
      ( wa w3a biantrur 3anass 3bitr4i ) BCFZAKFCABCGAKDHBCEHABCIJ $.
  $}

  $( Substitution of equal classes into elementhood relation.  (Contributed by
     Peter Mazsa, 22-Jul-2017.) $)
  eqeltr $p |- ( ( A = B /\ B e. C ) -> A e. C ) $=
    ( wceq wcel eleq1 biimpar ) ABDACEBCEABCFG $.

  $( Substitution of equal classes into elementhood relation.  (Contributed by
     Peter Mazsa, 17-Jul-2019.) $)
  eqelb $p |- ( ( A = B /\ A e. C ) <-> ( A = B /\ B e. C ) ) $=
    ( wceq wcel wa simpl eqeltr jca eqcom anbi1i 3imtr3i impbii ) ABDZACEZFZNBC
    EZFZBADZOFZSQFPRTSQSOGBACHISNOBAJZKSNQUAKLRNONQGABCHIM $.

  ${
    eqeqan1d.1 $e |- ( ph -> A = B ) $.
    $( Implication of introducing a new equality.  (Contributed by Peter Mazsa,
       17-Apr-2019.) $)
    eqeqan1d $p |- ( ( ph /\ C = D ) -> ( A = C <-> B = D ) ) $=
      ( wceq wb eqeq12 sylan ) ABCGDEGBDGCEGHFBCDEIJ $.
  $}

  ${
    eqeqan2d.1 $e |- ( ph -> C = D ) $.
    $( Implication of introducing a new equality.  (Contributed by Peter Mazsa,
       17-Apr-2019.) $)
    eqeqan2d $p |- ( ( A = B /\ ph ) -> ( A = C <-> B = D ) ) $=
      ( wceq wb eqeq12 sylan2 ) ABCGDEGBDGCEGHFBCDEIJ $.
  $}

  $( Two ways of saying that two classes are disjoint (when ` C = (/) ` :
     ` ( ( A i^i B ) = (/) <-> ( B i^i A ) = (/) ) ` ).  (Contributed by Peter
     Mazsa, 22-Mar-2017.) $)
  ineqcom $p |- ( ( A i^i B ) = C <-> ( B i^i A ) = C ) $=
    ( cin incom eqeq1i ) ABDBADCABEF $.

  ${
    ineqcomi.1 $e |- ( A i^i B ) = C $.
    $( Disjointness inference (when ` C = (/) ` ), inference form of
       ~ ineqcom .  (Contributed by Peter Mazsa, 26-Mar-2017.) $)
    ineqcomi $p |- ( B i^i A ) = C $=
      ( cin wceq ineqcom mpbi ) ABECFBAECFDABCGH $.
  $}

  $( Two ways of expressing the restriction of an intersection.  (Contributed
     by Peter Mazsa, 5-Jun-2021.) $)
  inres2 $p |- ( ( R |` A ) i^i S ) = ( ( R i^i S ) |` A ) $=
    ( cres cin inres ineqcomi incom reseq1i eqtr4i ) BADZCECBEZADZBCEZADCKMCBAF
    GNLABCHIJ $.

  $( Equality theorem for composition of two classes.  (Contributed by Peter
     Mazsa, 23-Sep-2021.) $)
  coideq $p |- ( A = B -> ( A o. A ) = ( B o. B ) ) $=
    ( wceq ccom coeq1 coeq2 eqtrd ) ABCAADBADBBDABAEABBFG $.

  $( Cancellation law for restriction.  (Contributed by Peter Mazsa,
     30-Dec-2018.) $)
  ralanid $p |- ( A. x e. A ( x e. A /\ ph ) <-> A. x e. A ph ) $=
    ( cv wcel wi wal wa wral anclb albii df-ral 3bitr4ri ) BDCEZAFZBGNNAHZFZBGA
    BCIPBCIOQBNAJKABCLPBCLM $.

  $( If there is no case where wff is true, it is true for at most one case.
     (Contributed by Peter Mazsa, 27-Sep-2021.) $)
  nexmo $p |- ( -. E. x ph -> E* x ph ) $=
    ( wex wn weu wi wmo pm2.21 df-mo sylibr ) ABCZDKABEZFABGKLHABIJ $.

  ${
    3albii.1 $e |- ( ph <-> ps ) $.
    $( Inference adding three universal quantifiers to both sides of an
       equivalence.  (Contributed by Peter Mazsa, 10-Aug-2018.) $)
    3albii $p |- ( A. x A. y A. z ph <-> A. x A. y A. z ps ) $=
      ( wal 2albii albii ) AEGDGBEGDGCABDEFHI $.
  $}

  ${
    3ralbii.1 $e |- ( ph <-> ps ) $.
    $( Inference adding three restricted universal quantifiers to both sides of
       an equivalence.  (Contributed by Peter Mazsa, 25-Jul-2019.) $)
    3ralbii $p |- ( A. x e. A A. y e. B A. z e. C ph <->
                    A. x e. A A. y e. B A. z e. C ps ) $=
      ( wral 2ralbii ralbii ) AEHJDGJBEHJDGJCFABDEGHIKL $.
  $}

  ${
    rabbii.1 $e |- ( ph <-> ps ) $.
    $( Equivalent wff's correspond to equal restricted class abstractions.
       (Contributed by Peter Mazsa, 1-Nov-2019.) $)
    rabbii $p |- { x e. A | ph } = { x e. A | ps } $=
      ( wb cv wcel a1i rabbiia ) ABCDABFCGDHEIJ $.
  $}

  ${
    rabbieq.1 $e |- B = { x e. A | ph } $.
    rabbieq.2 $e |- ( ph <-> ps ) $.
    $( Equivalent wff's correspond to restricted class abstractions which are
       equal with the same class.  (Contributed by Peter Mazsa, 8-Jul-2019.) $)
    rabbieq $p |- B = { x e. A | ps } $=
      ( crab rabbii eqtri ) EACDHBCDHFABCDGIJ $.
  $}

  ${
    rabimbieq.1 $e |- B = { x e. A | ph } $.
    rabimbieq.2 $e |- ( x e. A -> ( ph <-> ps ) ) $.
    $( Restricted equivalent wff's correspond to restricted class abstractions
       which are equal with the same class.  (Contributed by Peter Mazsa,
       22-Jul-2021.) $)
    rabimbieq $p |- B = { x e. A | ps } $=
      ( crab rabbiia eqtri ) EACDHBCDHFABCDGIJ $.
  $}

  ${
    $d C x $.
    abeqin.1 $e |- A = ( B i^i C ) $.
    abeqin.2 $e |- B = { x | ph } $.
    $( Intersection with class abstraction.  (Contributed by Peter Mazsa,
       21-Jul-2021.) $)
    abeqin $p |- A = { x e. C | ph } $=
      ( cin cab crab ineq1i dfrab2 3eqtr4i ) DEHABIZEHCABEJDNEGKFABELM $.
  $}

  ${
    $d C x $.
    abeqinbi.1 $e |- A = ( B i^i C ) $.
    abeqinbi.2 $e |- B = { x | ph } $.
    abeqinbi.3 $e |- ( x e. C -> ( ph <-> ps ) ) $.
    $( Intersection with class abstraction and equivalent wff's.  (Contributed
       by Peter Mazsa, 21-Jul-2021.) $)
    abeqinbi $p |- A = { x e. C | ps } $=
      ( abeqin rabimbieq ) ABCFDACDEFGHJIK $.
  $}

  ${
    $d A x $.  $d C x $.  $d ps x $.
    rabeqel.1 $e |- B = { x e. A | ph } $.
    rabeqel.2 $e |- ( x = C -> ( ph <-> ps ) ) $.
    $( Class element of a restricted class abstraction.  (Contributed by Peter
       Mazsa, 24-Jul-2021.) $)
    rabeqel $p |- ( C e. B <-> ( ps /\ C e. A ) ) $=
      ( wcel elrab2 biancom ) FEIBFDIABCFDEHGJK $.
  $}

  ${
    $d A u v $.  $d B u v $.  $d u v x y $.
    eqrelf.1 $e |- F/_ x A $.
    eqrelf.2 $e |- F/_ x B $.
    eqrelf.3 $e |- F/_ y A $.
    eqrelf.4 $e |- F/_ y B $.
    $( The equality connective between relations.  (Contributed by Peter Mazsa,
       25-Jun-2019.) $)
    eqrelf $p |- ( ( Rel A /\ Rel B ) ->
      ( A = B <-> A. x A. y ( <. x , y >. e. A <-> <. x , y >. e. B ) ) ) $=
      ( vu vv wrel wa wceq cv cop wcel wb wal nfv nfel2 opeq12 bibi12d syl6bbr
      eqrel nfbi eleq1d cbval2 ) CKDKLCDMINZJNZOZCPZUJDPZQZJRIRANZBNZOZCPZUPDPZ
      QZBRARIJCDUDUSUMABIJUSISUSJSUKULAAUJCETAUJDFTUEUKULBBUJCGTBUJDHTUEUNUHMUO
      UIMLZUQUKURULUTUPUJCUNUOUHUIUAZUFUTUPUJDVAUFUBUGUC $.
  $}

  $( Elementhood in a converse ` R ` -coset when ` R ` is a relation.
     (Contributed by Peter Mazsa, 9-Dec-2018.) $)
  releleccnv $p |- ( Rel R -> ( A e. [ B ] `' R <-> A R B ) ) $=
    ( ccnv cec wcel wbr wrel wb relcnv relelec ax-mp relbrcnvg syl5bb ) ABCDZEF
    ZBAOGZCHABCGOHPQICJABOKLBACMN $.

  ${
    $d A x $.  $d B x $.  $d R x $.  $d S x $.
    $( Equality of converse ` R ` -coset and converse ` S ` -coset when ` R `
       and ` S ` are relations.  (Contributed by Peter Mazsa, 27-Jul-2019.) $)
    releccnveq $p |- ( ( Rel R /\ Rel S ) ->
                       ( [ A ] `' R = [ B ] `' S <->
                         A. x ( x R A <-> x S B ) ) ) $=
      ( ccnv cec wceq cv wcel wb wal wrel wbr dfcleq releleccnv bi2bian9 albidv
      wa syl5bb ) BDFGZCEFGZHAIZUAJZUCUBJZKZALDMZEMZSZUCBDNZUCCENZKZALAUAUBOUIU
      FULAUGUDUJUHUEUKUCBDPUCCEPQRT $.
  $}

  $( Negated elementhood of ordered pair.  (Contributed by Peter Mazsa,
     14-Jan-2019.) $)
  opelvvdif $p |- ( ( A e. V /\ B e. W ) ->
                    ( <. A , B >. e. ( ( _V X. _V ) \ R ) <->
                      -. <. A , B >. e. R ) ) $=
    ( wcel wa cop wn cvv cxp cdif opelvvg biantrurd eldif syl6rbbr ) ADFBEFGZAB
    HZCFIZRJJKZFZSGRTCLFQUASABDEMNRTCOP $.

  ${
    $d x y $.
    $( Ordered-pair class abstraction defined by a negation.  (Contributed by
       Peter Mazsa, 25-Jun-2019.) $)
    vvdifopab $p |- ( ( _V X. _V ) \ { <. x , y >. | ph } ) =
                     { <. x , y >. | -. ph } $=
      ( cvv cxp copab cdif wn wceq cv cop wcel wb wal opabid wrel nfopab1 nfdif
      nfcv nfopab2 notbii opelvvdif el2v 3bitr4i gen2 relxp reldif ax-mp eqrelf
      relopab mp2an mpbir ) DDEZABCFZGZAHZBCFZIZBJZCJZKZUOLZVAUQLZMZCNBNZVDBCVA
      UNLZHZUPVBVCVFAABCOUAVBVGMBCUSUTUNDDUBUCUPBCOUDUEUOPZUQPURVEMUMPVHDDUFUMU
      NUGUHUPBCUJBCUOUQBUMUNBUMSABCQRUPBCQCUMUNCUMSABCTRUPBCTUIUKUL $.
  $}

  $( Binary relation with universal complement is the negation of the relation.
     (Contributed by Peter Mazsa, 1-Jul-2018.) $)
  brvdif $p |- ( A ( _V \ R ) B <-> -. A R B ) $=
    ( cvv cdif wbr wn brv brdif mpbiran ) ABDCEFABDFABCFGABHABDCIJ $.

  $( Binary relation with universal complement.  (Contributed by Peter Mazsa,
     14-Jul-2018.) $)
  brvdif2 $p |- ( A ( _V \ R ) B <-> -. <. A , B >. e. R ) $=
    ( cvv cdif wbr cop wcel brvdif df-br xchbinx ) ABDCEFABCFABGCHABCIABCJK $.

  $( Binary relation with the complement under the universal class of ordered
     pairs.  (Contributed by Peter Mazsa, 9-Nov-2018.) $)
  brvvdif $p |- ( ( A e. V /\ B e. W ) ->
                  ( A ( ( _V X. _V ) \ R ) B <-> -. A R B ) ) $=
    ( wcel wa cop cvv cxp cdif wn wbr opelvvdif df-br notbii 3bitr4g ) ADFBEFGA
    BHZIIJCKZFRCFZLABSMABCMZLABCDENABSOUATABCOPQ $.

  $( Binary relation with the complement under the universal class of ordered
     pairs is the same as with universal complement.  (Contributed by Peter
     Mazsa, 28-Nov-2018.) $)
  brvbrvvdif $p |- ( ( A e. V /\ B e. W ) ->
                     ( A ( ( _V X. _V ) \ R ) B <-> A ( _V \ R ) B ) ) $=
    ( wcel wa cvv cxp cdif wbr wn brvvdif brvdif syl6bbr ) ADFBEFGABHHICJKABCKL
    ABHCJKABCDEMABCNO $.

  $( The converse of the binary epsilon relation.  (Contributed by Peter Mazsa,
     30-Jan-2018.) $)
  brcnvep $p |- ( A e. V -> ( A `' _E B <-> B e. A ) ) $=
    ( cep ccnv wbr wcel rele relbrcnv epelg syl5bb ) ABDEFBADFACGBAGABDHIBACJK
    $.

  $( Elementhood in the ` R ` -coset of ` A ` .  Theorem 72 of [Suppes] p. 82.
     (I think we should replace ~ elecg with this original form of Suppes.
     Peter Mazsa) (Contributed by Mario Carneiro, 9-Jul-2014.) $)
  elecALTV $p |- ( ( A e. V /\ B e. W ) -> ( B e. [ A ] R <-> A R B ) ) $=
    ( wcel wa csn cima cop cec wbr elimasng df-ec eleq2i df-br 3bitr4g ) ADFBEF
    GBCAHIZFABJCFBACKZFABCLCABDEMSRBACNOABCPQ $.

  $( Ordered pair elementhood in a restriction.  Exercise 13 of [TakeutiZaring]
     p. 25.  (Contributed by NM, 13-Nov-1995.) $)
  opelresALTV $p |- ( C e. V ->
      ( <. B , C >. e. ( R |` A ) <-> ( B e. A /\ <. B , C >. e. R ) ) ) $=
    ( cop cres wcel cvv cxp wa df-res elin2 elex biantrud opelxp anbi1cd syl5bb
    syl6rbbr ) BCFZDAGZHTDHZTAIJZHZKCEHZBAHZUBKTDUCUADALMUEUDUFUBUEUFUFCIHZKUDU
    EUGUFCENOBCAIPSQR $.

  $( Binary relation on a restriction.  (Contributed by Mario Carneiro,
     4-Nov-2015.) $)
  brresALTV $p |- ( C e. V -> ( B ( R |` A ) C <-> ( B e. A /\ B R C ) ) ) $=
    ( wcel cop cres wa wbr opelresALTV df-br anbi2i 3bitr4g ) CEFBCGZDAHZFBAFZO
    DFZIBCPJQBCDJZIABCDEKBCPLSRQBCDLMN $.

  ${
    $d A x y $.  $d B x y $.  $d C x y $.
    $( Restricted converse epsilon binary relation.  (Contributed by Peter
       Mazsa, 10-Feb-2018.) $)
    brcnvepres $p |- ( ( B e. V /\ C e. W ) ->
                       ( B ( `' _E |` A ) C <-> ( B e. A /\ C e. B ) ) ) $=
      ( wcel cep ccnv cres wbr wa brresALTV brcnvep anbi2d sylan9bbr ) CEFBCGHZ
      AIJBAFZBCPJZKBDFZQCBFZKABCPELSRTQBCDMNO $.
  $}

  $( Intersection with cross product binary relation .  (Contributed by NM,
     3-Mar-2007.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
  brinxp2ALTV $p |- ( C ( R i^i ( A X. B ) ) D <->
                     ( ( C e. A /\ D e. B ) /\ C R D ) ) $=
    ( cxp cin wbr wa wcel brin ancom brxp anbi1i 3bitri ) CDEABFZGHCDEHZCDPHZIR
    QICAJDBJIZQICDEPKQRLRSQCDABMNO $.

  $( Binary relation on a restriction.  (Contributed by Peter Mazsa,
     2-Jan-2019.)  (Revised by Peter Mazsa, 16-Dec-2021.) $)
  brres2 $p |- ( B ( R |` A ) C <-> B ( R i^i ( A X. ran ( R |` A ) ) ) C ) $=
    ( cres crn wcel wbr cxp cin brresALTV pm5.32i relelrni pm4.71ri brinxp2ALTV
    wa relres w3a df-3an 3anan12 3bitr2i 3bitr4i ) CDAEZFZGZBCUCHZPUEBAGZBCDHZP
    ZPZUFBCDAUDIJHZUEUFUIABCDUDKLUFUEBCUCDAQMNUKUGUEPUHPUGUEUHRUJAUDBCDOUGUEUHS
    UGUEUHTUAUB $.

  ${
    $d A y $.  $d B y $.  $d R y $.
    $( Elementhood in the domain of a restriction.  (Contributed by Peter
       Mazsa, 9-Jan-2019.) $)
    eldmres $p |- ( B e. V ->
                    ( B e. dom ( R |` A ) <-> ( B e. A /\ E. y B R y ) ) ) $=
      ( wcel cres cdm cv wbr wex wa eldmg cvv brresALTV elv exbii 19.42v bitri
      wb syl6bb ) CEFCDBGZHFCAIZUBJZAKZCBFZCUCDJZAKLZACUBEMUEUFUGLZAKUHUDUIAUDU
      ITABCUCDNOPQUFUGARSUA $.
  $}

  ${
    $d A y $.  $d R y $.  $d V y $.
    $( Elementhood in a domain.  (Contributed by Peter Mazsa, 24-Oct-2018.) $)
    eldm4 $p |- ( A e. V -> ( A e. dom R <-> E. y y e. [ A ] R ) ) $=
      ( wcel cdm cv wbr wex cec eldmg wb cvv elecALTV el2v2 exbidv bitr4d ) BDE
      ZBCFEBAGZCHZAISBCJEZAIABCDKRUATARUATLABSCDMNOPQ $.
  $}

  ${
    $d A y $.  $d B y $.  $d R y $.  $d V y $.
    $( Elementhood in the domain of a restriction.  (Contributed by Peter
       Mazsa, 21-Aug-2020.) $)
    eldmres2 $p |- ( B e. V ->
        ( B e. dom ( R |` A ) <-> ( B e. A /\ E. y y e. [ B ] R ) ) ) $=
      ( wcel cres cdm cv wbr wex wa cec eldmres eldmg eldm4 bitr3d anbi2d bitrd
      ) CEFZCDBGHFCBFZCAIZDJAKZLUAUBCDMFAKZLABCDENTUCUDUATCDHFUCUDACDEOACDEPQRS
      $.
  $}

  ${
    eceq1i.1 $e |- A = B $.
    $( Equality theorem for ` C ` -coset of ` A ` and ` C ` -coset of ` B ` ,
       inference version.  (Contributed by Peter Mazsa, 11-May-2021.) $)
    eceq1i $p |- [ A ] C = [ B ] C $=
      ( wceq cec eceq1 ax-mp ) ABEACFBCFEDABCGH $.
  $}

  ${
    eceq2i.1 $e |- A = B $.
    $( Equality theorem for the ` A ` -coset and ` B ` -coset of ` C ` ,
       inference version.  (Contributed by Peter Mazsa, 11-May-2021.) $)
    eceq2i $p |- [ C ] A = [ C ] B $=
      ( wceq cec eceq2 ax-mp ) ABECAFCBFEDABCGH $.
  $}

  ${
    eceq2d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for the ` A ` -coset and ` B ` -coset of ` C ` ,
       deduction version.  (Contributed by Peter Mazsa, 23-Apr-2021.) $)
    eceq2d $p |- ( ph -> [ C ] A = [ C ] B ) $=
      ( wceq cec eceq2 syl ) ABCFDBGDCGFEBCDHI $.
  $}

  $( Elementhood in the restricted coset of ` B ` .  (Contributed by Peter
     Mazsa, 21-Sep-2018.) $)
  elecres $p |- ( C e. V ->
                  ( C e. [ B ] ( R |` A ) <-> ( B e. A /\ B R C ) ) ) $=
    ( cres cec wcel wbr wa wrel wb relres relelec ax-mp brresALTV syl5bb ) CBDA
    FZGHZBCRIZCEHBAHBCDIJRKSTLDAMCBRNOABCDEPQ $.

  ${
    $d A x $.  $d B x $.  $d R x $.
    $( Restricted coset of ` B ` .  (Contributed by Peter Mazsa,
       9-Dec-2018.) $)
    ecres $p |- [ B ] ( R |` A ) = { x | ( B e. A /\ B R x ) } $=
      ( wcel cv wbr wa cres cec wb cvv elecres elv abbi2i ) CBECAFZDGHZACDBIJZP
      REQKABCPDLMNO $.
  $}

  ${
    $d A y $.  $d B y $.  $d R y $.
    $( The restricted coset of ` B ` when ` B ` is an element of the
       restriction.  (Contributed by Peter Mazsa, 16-Oct-2018.) $)
    ecres2 $p |- ( B e. A -> [ B ] ( R |` A ) = [ B ] R ) $=
      ( vy wcel cres cec cv wbr cab wa wb cvv elecres baib abbi2dv dfec2 eqtr4d
      elv ) BAEZBCAFGZBDHZCIZDJBCGTUCDUAUBUAEZTUCUDTUCKLDABUBCMNSOPDBCAQR $.
  $}

  ${
    $d A x $.  $d B x $.  $d V x $.
    $( Restricted converse epsilon coset of ` B ` .  (Contributed by Peter
       Mazsa, 11-Feb-2018.)  (Revised by Peter Mazsa, 21-Oct-2021.) $)
    eccnvepres $p |- ( B e. V ->
                       [ B ] ( `' _E |` A ) = { x e. B | B e. A } ) $=
      ( wcel cv cep ccnv wbr wa cab cres cec crab brcnvep anbi1cd abbidv df-rab
      ecres 3eqtr4g ) CDEZCBEZCAFZGHZIZJZAKUCCEZUBJZAKCUDBLMUBACNUAUFUHAUAUEUGU
      BCUCDOPQABCUDSUBACRT $.
  $}

  $( Elementhood in the converse epsilon coset of ` A ` is elementhood in
     ` A ` .  (Contributed by Peter Mazsa, 27-Jan-2019.) $)
  eleccnvep $p |- ( A e. V -> ( B e. [ A ] `' _E <-> B e. A ) ) $=
    ( cep ccnv cec wcel wbr wrel wb relcnv relelec ax-mp brcnvep syl5bb ) BADEZ
    FGZABPHZACGBAGPIQRJDKBAPLMABCNO $.

  ${
    $d A x $.  $d V x $.
    $( The converse epsilon coset of a set is the set.  (Contributed by Peter
       Mazsa, 27-Jan-2019.) $)
    eccnvep $p |- ( A e. V -> [ A ] `' _E = A ) $=
      ( vx wcel cep ccnv cec cv eleccnvep eqrdv ) ABDCAEFGAACHBIJ $.
  $}

  $( Property of epsilon relation, cf. ~ extid , ~ extssr and the comment of
     ~ df-ssr .  (Contributed by Peter Mazsa, 10-Jul-2019.) $)
  extep $p |- ( ( A e. V /\ B e. W ) ->
                ( [ A ] `' _E = [ B ] `' _E <-> A = B ) ) $=
    ( wcel cep ccnv cec eccnvep eqeqan12d ) ACEBDEAFGZHABKHBACIBDIJ $.

  $( The restricted converse epsilon coset of an element of the restriction is
     the element itself.  (Contributed by Peter Mazsa, 16-Jul-2019.) $)
  eccnvepres2 $p |- ( B e. A -> [ B ] ( `' _E |` A ) = B ) $=
    ( wcel cep ccnv cres cec ecres2 eccnvep eqtrd ) BACBDEZAFGBKGBABKHBAIJ $.

  $( Condition for a restricted converse epsilon coset of a set to be the set
     itself.  (Contributed by Peter Mazsa, 11-May-2021.) $)
  eccnvepres3 $p |- ( B e. dom ( `' _E |` A ) ->
                      [ B ] ( `' _E |` A ) = B ) $=
    ( cep ccnv cres cdm wcel cec resdmres eceq2i eccnvepres2 syl5eqr ) BCDZAEZF
    ZGBNHBMOEZHBPNBMAIJOBKL $.

  ${
    $d A u x $.  $d B u $.  $d R u x $.
    $( Elementhood in a restricted domain quotient set.  (Contributed by Peter
       Mazsa, 21-Aug-2020.) $)
    eldmqsres $p |- ( B e. V ->
       ( B e. ( dom ( R |` A ) /. ( R |` A ) ) <->
         E. u e. A ( E. x x e. [ u ] R /\ B = [ u ] R ) ) ) $=
      ( wcel cres cdm cqs cv cec wceq wrex wex wa elqsg wb cvv w3a eldmres2 elv
      anbi1i ecres2 eqeq2d pm5.32i anbi2i 3ancoma df-3an 3anass 3bitr3i 3bitr4i
      an12 bitri rexbii2 syl6bb ) DFGDECHZIZUQJGDBKZUQLZMZBURNAKUSELZGAOZDVBMZP
      ZBCNBURDUQFQVAVEBURCUSURGZVAPUSCGZVCPZVAPZVGVEPZVFVHVAVFVHRBACUSESUAUBUCV
      CVGVAPZPZVCVGVDPZPVIVJVKVMVCVGVAVDVGUTVBDCUSEUDUEUFUGVGVCVATVCVGVATVIVLVG
      VCVAUHVGVCVAUIVCVGVAUJUKVGVCVDUMULUNUOUP $.
  $}

  ${
    $d A u x $.  $d B u x $.  $d R u x $.
    $( Elementhood in a restricted domain quotient set.  (Contributed by Peter
       Mazsa, 22-Aug-2020.) $)
    eldmqsres2 $p |- ( B e. V ->
       ( B e. ( dom ( R |` A ) /. ( R |` A ) ) <->
         E. u e. A E. x e. [ u ] R B = [ u ] R ) ) $=
      ( wcel cres cdm cqs cv cec wex wceq wa wrex eldmqsres df-rex 19.41v bitri
      rexbii syl6bbr ) DFGDECHZIUCJGAKBKELZGZAMDUDNZOZBCPUFAUDPZBCPABCDEFQUHUGB
      CUHUEUFOAMUGUFAUDRUEUFASTUAUB $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C x y $.
    $( Subclass theorem for quotient sets.  (Contributed by Peter Mazsa,
       12-Sep-2020.) $)
    qsss1 $p |- ( A C_ B -> ( A /. C ) C_ ( B /. C ) ) $=
      ( vy vx wss cv cec wceq wrex cab cqs ssrexv ss2abdv df-qs 3sstr4g ) ABFZD
      GEGCHIZEAJZDKREBJZDKACLBCLQSTDREABMNEDACOEDBCOP $.
  $}

  ${
    qseq1i.1 $e |- A = B $.
    $( Equality theorem for quotient set, inference form.  (Contributed by
       Peter Mazsa, 3-Jun-2021.) $)
    qseq1i $p |- ( A /. C ) = ( B /. C ) $=
      ( wceq cqs qseq1 ax-mp ) ABEACFBCFEDABCGH $.
  $}

  ${
    qseq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for quotient set, deduction form.  (Contributed by
       Peter Mazsa, 27-May-2021.) $)
    qseq1d $p |- ( ph -> ( A /. C ) = ( B /. C ) ) $=
      ( wceq cqs qseq1 syl ) ABCFBDGCDGFEBCDHI $.
  $}

  ${
    qseq2i.1 $e |- A = B $.
    $( Equality theorem for quotient set, inference form.  (Contributed by
       Peter Mazsa, 3-Jun-2021.) $)
    qseq2i $p |- ( C /. A ) = ( C /. B ) $=
      ( wceq cqs qseq2 ax-mp ) ABECAFCBFEDABCGH $.
  $}

  ${
    qseq2d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for quotient set, deduction form.  (Contributed by
       Peter Mazsa, 27-May-2021.) $)
    qseq2d $p |- ( ph -> ( C /. A ) = ( C /. B ) ) $=
      ( wceq cqs qseq2 syl ) ABCFDBGDCGFEBCDHI $.
  $}

  $( Equality theorem for quotient set.  (Contributed by Peter Mazsa,
     17-Apr-2019.) $)
  qseq12 $p |- ( ( A = B /\ C = D ) -> ( A /. C ) = ( B /. D ) ) $=
    ( wceq cqs qseq1 qseq2 sylan9eq ) ABECDEACFBCFBDFABCGCDBHI $.

  $( Binary relation on a restriction.  (Contributed by Peter Mazsa,
     2-Jan-2019.) $)
  brinxprnres $p |- ( C e. V ->
                      ( B ( R i^i ( A X. ran ( R |` A ) ) ) C <->
                        ( B e. A /\ B R C ) ) ) $=
    ( cres crn cxp cin wbr wcel wa brres2 brresALTV syl5bbr ) BCDADAFZGHIJBCPJC
    EKBAKBCDJLABCDMABCDENO $.

  ${
    $d A w x y z $.  $d R w x y z $.
    $( Restriction of a class as a class of ordered pairs.  (Contributed by
       Peter Mazsa, 2-Jan-2019.) $)
    inxprnres $p |- ( R i^i ( A X. ran ( R |` A ) ) ) =
                      { <. x , y >. | ( x e. A /\ x R y ) } $=
      ( vz vw cres crn cxp cin cv wcel wbr wa copab wrel relxp wb cvv wceq el2v
      relin2 ax-mp relopab cop eleq1w breq1 anbi12d breq2 opelopabg brinxprnres
      anbi2d elv df-br 3bitr2ri eqrelriiv ) EFDCDCGHZIZJZAKZCLZUTBKZDMZNZABOZUR
      PUSPCUQQDURUBUCVDABUDEKZFKZUEZVELZVFCLZVFVGDMZNZVFVGUSMZVHUSLVIVLREFVDVJV
      FVBDMZNVLABVFVGSSUTVFTVAVJVCVNAECUFUTVFVBDUGUHVBVGTVNVKVJVBVGVFDUIULUJUAV
      MVLRFCVFVGDSUKUMVFVGUSUNUOUP $.
  $}

  ${
    $d A x y $.  $d R x y $.
    $( Alternate definition of the restriction of a class.  (Contributed by
       Peter Mazsa, 2-Jan-2019.) $)
    dfres4 $p |- ( R |` A ) = ( R i^i ( A X. ran ( R |` A ) ) ) $=
      ( vx vy cres cv wcel wbr wa copab crn cxp cin dfres2 inxprnres eqtr4i ) B
      AEZCFZAGRDFBHICDJBAQKLMCDABNCDABOP $.
  $}

  ${
    $d A u $.  $d B u $.  $d V u $.  $d W u $.
    $( Equivalent expressions with existential quantification.  (Contributed by
       Peter Mazsa, 10-Sep-2021.) $)
    exan3 $p |- ( ( A e. V /\ B e. W ) ->
                  ( E. u ( A e. [ u ] R /\ B e. [ u ] R ) <->
                    E. u ( u R A /\ u R B ) ) ) $=
      ( wcel wa cv cec wbr wb cvv elecALTV el2v1 bi2anan9 exbidv ) BEGZCFGZHBAI
      ZDJZGZCUAGZHTBDKZTCDKZHARUBUDSUCUERUBUDLATBDMENOSUCUELATCDMFNOPQ $.
  $}

  ${
    $d B u $.  $d C u $.  $d V u $.  $d W u $.
    $( Equivalent expressions with existential quantification.  (Contributed by
       Peter Mazsa, 2-May-2021.) $)
    exanres $p |- ( ( B e. V /\ C e. W ) ->
        ( E. u ( u ( R |` A ) B /\ u ( S |` A ) C ) <->
          E. u e. A ( u R B /\ u S C ) ) ) $=
      ( wcel wa cv cres wbr wex wrex brresALTV bi2anan9 anandi syl6bbr exbidv
      df-rex ) CGIZDHIZJZAKZCEBLMZUEDFBLMZJZANUEBIZUECEMZUEDFMZJZJZANULABOUDUHU
      MAUDUHUIUJJZUIUKJZJUMUBUFUNUCUGUOBUECEGPBUEDFHPQUIUJUKRSTULABUAS $.
  $}

  ${
    $d B u $.  $d C u $.  $d V u $.  $d W u $.
    $( Equivalent expressions with restricted existential quantification.
       (Contributed by Peter Mazsa, 10-Sep-2021.) $)
    exanres3 $p |- ( ( B e. V /\ C e. W ) ->
        ( E. u e. A ( B e. [ u ] R /\ C e. [ u ] S ) <->
          E. u e. A ( u R B /\ u S C ) ) ) $=
      ( wcel wa cv cec wbr wb cvv elecALTV el2v1 bi2anan9 rexbidv ) CGIZDHIZJCA
      KZELIZDUBFLIZJUBCEMZUBDFMZJABTUCUEUAUDUFTUCUENAUBCEOGPQUAUDUFNAUBDFOHPQRS
      $.
  $}

  ${
    $d B u $.  $d C u $.  $d V u $.  $d W u $.
    $( Equivalent expressions with existential quantification.  (Contributed by
       Peter Mazsa, 10-Sep-2021.) $)
    exanres2 $p |- ( ( B e. V /\ C e. W ) ->
        ( E. u ( u ( R |` A ) B /\ u ( S |` A ) C ) <->
          E. u e. A ( B e. [ u ] R /\ C e. [ u ] S ) ) ) $=
      ( wcel wa cv cres wbr wex wrex cec exanres exanres3 bitr4d ) CGIDHIJAKZCE
      BLMTDFBLMJANTCEMTDFMJABOCTEPIDTFPIJABOABCDEFGHQABCDEFGHRS $.
  $}

  ${
    $d A x y $.
    $( Restricted converse epsilon relation as a class of ordered pairs.
       (Contributed by Peter Mazsa, 10-Feb-2018.) $)
    cnvepres $p |- ( `' _E |` A ) = { <. x , y >. | ( x e. A /\ y e. x ) } $=
      ( cep ccnv cres cv wcel wbr wa copab dfres2 wb cvv brcnvep anbi2i opabbii
      elv eqtri ) DEZCFAGZCHZUABGZTIZJZABKUBUCUAHZJZABKABCTLUEUGABUDUFUBUDUFMAU
      AUCNORPQS $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( Subclass relation in another form when the subclass is a relation.
       (Contributed by Peter Mazsa, 16-Feb-2019.) $)
    ssrel3 $p |- ( Rel A -> ( A C_ B <-> A. x A. y ( x A y -> x B y ) ) ) $=
      ( wrel wss cv cop wcel wi wal wbr ssrel df-br imbi12i 2albii syl6bbr ) CE
      CDFAGZBGZHZCIZTDIZJZBKAKRSCLZRSDLZJZBKAKABCDMUFUCABUDUAUEUBRSCNRSDNOPQ $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( Equality of relations.  (Contributed by Peter Mazsa, 8-Mar-2019.) $)
    eqrel2 $p |- ( ( Rel A /\ Rel B ) ->
                   ( A = B <-> A. x A. y ( x A y <-> x B y ) ) ) $=
      ( wrel wa wss cv wbr wi wal wceq wb ssrel3 bi2anan9 eqss 2albiim 3bitr4g
      ) CEZDEZFCDGZDCGZFAHZBHZCIZUCUDDIZJBKAKZUFUEJBKAKZFCDLUEUFMBKAKSUAUGTUBUH
      ABCDNABDCNOCDPUEUFABQR $.
  $}

  $( Intersection with a Cartesian product is a relation.  (Contributed by
     Peter Mazsa, 4-Mar-2019.) $)
  relinxp $p |- Rel ( R i^i ( A X. B ) ) $=
    ( cxp wrel cin relxp relin2 ax-mp ) ABDZECJFEABGCJHI $.

  $( Range of converse is the domain.  (Contributed by Peter Mazsa,
     12-Feb-2018.) $)
  rncnv $p |- ran `' A = dom A $=
    ( cdm ccnv crn dfdm4 eqcomi ) ABACDAEF $.

  ${
    $d R x $.
    $( Alternate definition of domain.  (Contributed by Peter Mazsa,
       2-Mar-2018.) $)
    dfdm6 $p |- dom R = { x | [ x ] R =/= (/) } $=
      ( cv cec c0 wne cdm ecdmn0 abbi2i ) ACZBDEFABGJBHI $.
  $}

  ${
    $d R x $.
    $( Alternate definition of range.  (Contributed by Peter Mazsa,
       1-Aug-2018.) $)
    dfrn6 $p |- ran R = { x | [ x ] `' R =/= (/) } $=
      ( crn ccnv cdm cv cec c0 wne cab df-rn dfdm6 eqtri ) BCBDZEAFNGHIAJBKANLM
      $.
  $}

  ${
    $d A x y $.
    $( The range of the restricted converse epsilon is the union of the
       restriction.  (Contributed by Peter Mazsa, 11-Feb-2018.)  (Revised by
       Peter Mazsa, 26-Sep-2021.) $)
    rncnvepres $p |- ran ( `' _E |` A ) = U. A $=
      ( vx vy cv wcel wa copab crn wex cab ccnv cres cuni rnopab cnvepres rneqi
      cep wrex dfuni2 df-rex abbii eqtri 3eqtr4i ) BDZAECDUDEZFZBCGZHUFBIZCJZQK
      ALZHAMZUFBCNUJUGBCAOPUKUEBARZCJUICBASULUHCUEBATUAUBUC $.
  $}

  ${
    dmecd.1 $e |- ( ph -> dom R = A ) $.
    dmecd.2 $e |- ( ph -> [ B ] R = [ C ] R ) $.
    $( Equality of the coset of ` B ` and the coset of ` C ` implies
       equivalence of domain elementhood (equivalence is not necessary as
       opposed to ~ ereldm ).  (Contributed by Peter Mazsa, 9-Oct-2018.) $)
    dmecd $p |- ( ph -> ( B e. A <-> C e. A ) ) $=
      ( cdm wcel cec c0 wne neeq1d ecdmn0 3bitr4g eleq2d 3bitr3d ) ACEHZIZDRIZC
      BIDBIACEJZKLDEJZKLSTAUAUBKGMCENDENOARBCFPARBDFPQ $.
  $}

  ${
    dmec2d.1 $e |- ( ph -> [ B ] R = [ C ] R ) $.
    $( Equality of the coset of ` B ` and the coset of ` C ` implies
       equivalence of domain elementhood (equivalence is not necessary as
       opposed to ~ ereldm ).  (Contributed by Peter Mazsa, 12-Oct-2018.) $)
    dmec2d $p |- ( ph -> ( B e. dom R <-> C e. dom R ) ) $=
      ( cdm eqidd dmecd ) ADFZBCDAIGEH $.
  $}

  $( Intersection with a Cartesian product is a subclass of restriction.
     (Contributed by Peter Mazsa, 19-Jul-2019.) $)
  inxpssres $p  |- ( R i^i ( A X. B ) ) C_ ( R |` A ) $=
    ( cxp cin cvv cres wss ssid ssv xpss12 mp2an sslin ax-mp df-res sseqtr4i )
    CABDZEZCAFDZEZCAGQSHZRTHAAHBFHUAAIBJAABFKLQSCMNCAOP $.

  $( Property of the identity binary relation.  (Contributed by Peter Mazsa,
     18-Dec-2021.) $)
  brid $p  |- ( A _I B <-> B _I A ) $=
    ( cid wbr ccnv cnvi breqi reli relbrcnv bitr3i ) ABCDABCEZDBACDABKCFGABCHIJ
    $.

  $( For sets, the identity binary relation is the same as equality.
     (Contributed by Peter Mazsa, 24-Jun-2020.)  (Revised by Peter Mazsa,
     18-Dec-2021.) $)
  ideq2 $p  |- ( A e. V -> ( A _I B <-> A = B ) ) $=
    ( cid wbr wcel wceq brid ideqg eqcom syl6bb syl5bb ) ABDEBADEZACFZABGZABHNM
    BAGOBACIBAJKL $.

  $( Condition for the identity restriction to be a subclass of identity
     intersection with a Cartesian product.  (Contributed by Peter Mazsa,
     19-Jul-2018.) $)
  idresssidinxp $p |- ( A C_ B -> ( _I |` A ) C_ ( _I i^i ( A X. B ) ) ) $=
    ( wss cid cres cxp resss a1i idssxp xpss2 syl5ss ssind ) ABCZDAEZDABFZNDCMD
    AGHMNAAFOAIABAJKL $.

  $( Condition for the identity restriction to be equal to the identity
     intersection with a Cartesian product.  (Contributed by Peter Mazsa,
     19-Jul-2018.) $)
  idreseqidinxp $p |- ( A C_ B -> ( _I i^i ( A X. B ) ) = ( _I |` A ) ) $=
    ( wss cid cxp cin cres inxpssres a1i idresssidinxp eqssd ) ABCZDABEFZDAGZMN
    CLABDHIABJK $.

  $( Property of identity relation, cf. ~ extep , ~ extssr and the comment of
     ~ df-ssr .  (Contributed by Peter Mazsa, 5-Jul-2019.) $)
  extid $p |- ( A e. V -> ( [ A ] `' _I = [ B ] `' _I <-> A = B ) ) $=
    ( cid ccnv cec wceq csn wcel cnvi eceq2i ecidsn eqtri eqeq12i sneqbg syl5bb
    ) ADEZFZBQFZGAHZBHZGACIABGRTSUARADFTQDAJKALMSBDFUAQDBJKBLMNABCOP $.

  ${
    $d A x y $.  $d B x y $.  $d R x y $.  $d S x y $.
    $( Two ways to say that an intersection with a Cartesian product is a
       subclass.  (Contributed by Peter Mazsa, 16-Jul-2019.) $)
    inxpss $p |- ( ( R i^i ( A X. B ) ) C_ S <->
                   A. x e. A A. y e. B ( x R y -> x S y ) ) $=
      ( cv cxp cin wbr wi wal wcel wa wss wral brinxp2ALTV imbi1i impexp bitri
      2albii wrel wb relinxp ssrel3 ax-mp r2al 3bitr4i ) AGZBGZECDHIZJZUIUJFJZK
      ZBLALZUICMUJDMNZUIUJEJZUMKZKZBLALUKFOZURBDPACPUNUSABUNUPUQNZUMKUSULVAUMCD
      UIUJEQRUPUQUMSTUAUKUBUTUOUCCDEUDABUKFUEUFURABCDUGUH $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d R x y $.
    $( Two ways to say that an intersection of the identity relation with a
       Cartesian product is a subclass.  (Contributed by Peter Mazsa,
       16-Jul-2019.) $)
    idinxpss $p |- ( ( _I i^i ( A X. B ) ) C_ R <->
                      A. x e. A A. y e. B ( x = y -> x R y ) ) $=
      ( cid cxp cin wss cv wbr wi wral wceq inxpss wb cvv ideqg elv imbi1i
      2ralbii bitri ) FCDGHEIAJZBJZFKZUCUDEKZLZBDMACMUCUDNZUFLZBDMACMABCDFEOUGU
      IABCDUEUHUFUEUHPBUCUDQRSTUAUB $.
  $}

  ${
    $d x y $.  $d A y $.
    $( Two ways to say that an intersection with a Cartesian product is a
       subclass (cf. ~ inxpss ).  (Contributed by Peter Mazsa, 8-Mar-2019.) $)
    inxpss3 $p |- ( A. x A. y
        ( x ( R i^i ( A X. B ) ) y -> x ( S i^i ( A X. B ) ) y ) <->
        A. x e. A A. y e. B ( x R y -> x S y ) ) $=
      ( cv cxp cin wbr wal wcel wral brinxp2ALTV imbi12i imdistan bitr4i 2albii
      wi wa r2al ) AGZBGZECDHZIJZUBUCFUDIJZSZBKAKUBCLUCDLTZUBUCEJZUBUCFJZSZSZBK
      AKUKBDMACMUGULABUGUHUITZUHUJTZSULUEUMUFUNCDUBUCENCDUBUCFNOUHUIUJPQRUKABCD
      UAQ $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d R x y $.  $d S x y $.
    $( Two ways to say that intersections with Cartesian products are in a
       subclass relation.  (Contributed by Peter Mazsa, 8-Mar-2019.) $)
    inxpss2 $p |- ( ( R i^i ( A X. B ) ) C_ ( S i^i ( A X. B ) ) <->
                        A. x e. A A. y e. B ( x R y -> x S y ) ) $=
      ( cxp cin wss cv wbr wi wal wral wrel wb relinxp ssrel3 ax-mp inxpss3
      bitri ) ECDGZHZFUBHZIZAJZBJZUCKUFUGUDKLBMAMZUFUGEKUFUGFKLBDNACNUCOUEUHPCD
      EQABUCUDRSABCDEFTUA $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d R x y $.
    $( Two ways to say that intersections with Cartesian products are in a
       subclass relation, special case of ~ inxpss2 .  (Contributed by Peter
       Mazsa, 4-Jul-2019.) $)
    inxpssidinxp $p |- ( ( R i^i ( A X. B ) ) C_ ( _I i^i ( A X. B ) ) <->
                         A. x e. A A. y e. B ( x R y -> x = y ) ) $=
      ( cxp cin cid wss cv wbr wi wral wceq inxpss2 wb cvv ideqg elv imbi2i
      2ralbii bitri ) ECDFZGHUCGIAJZBJZEKZUDUEHKZLZBDMACMUFUDUENZLZBDMACMABCDEH
      OUHUJABCDUGUIUFUGUIPBUDUEQRSTUAUB $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d R x y $.
    $( Two ways to say that intersections with Cartesian products are in a
       subclass relation, special case of ~ inxpss2 .  (Contributed by Peter
       Mazsa, 6-Mar-2019.) $)
    idinxpssinxp $p |- ( ( _I i^i ( A X. B ) ) C_ ( R i^i ( A X. B ) ) <->
                         A. x e. A A. y e. B ( x = y -> x R y ) ) $=
      ( cid cxp cin wss cv wbr wi wral wceq inxpss2 wb cvv ideqg elv imbi1i
      2ralbii bitri ) FCDGZHEUCHIAJZBJZFKZUDUEEKZLZBDMACMUDUENZUGLZBDMACMABCDFE
      OUHUJABCDUFUIUGUFUIPBUDUEQRSTUAUB $.
  $}

  $( The intersection of the identity function with a square cross product.
     (Contributed by FL, 2-Aug-2009.) $)
  idinxpres $p |- ( _I i^i ( A X. A ) ) = ( _I |` A ) $=
    ( cid cxp cin cres inxpssres resss idssxp ssini eqssi ) BAACZDBAEZAABFLBKBA
    GAHIJ $.

  ${
    $d A x $.  $d R x $.
    $( Identity intersection with a square Cartesian product in subclass
       relation with an intersection with the same Cartesian product.
       (Contributed by Peter Mazsa, 4-Mar-2019.) $)
    idinxpssinxp2 $p |- ( ( _I i^i ( A X. A ) ) C_ ( R i^i ( A X. A ) ) <->
                          A. x e. A x R x ) $=
      ( cid cxp cin wss cv wcel wbr wa wral idinxpres sseq1i issref brinxp2ALTV
      cres pm4.24 anbi1i bitr4i ralbii 3bitri ralanid bitri ) DBBEZFZCUEFZGZAHZ
      BIZUIUICJZKZABLZUKABLUHDBQZUGGUIUIUGJZABLUMUFUNUGBMNABUGOUOULABUOUJUJKZUK
      KULBBUIUICPUJUPUKUJRSTUAUBUKABUCUD $.
  $}

  ${
    $d A x $.  $d R x $.
    $( Identity intersection with a square Cartesian product in subclass
       relation with an intersection with the same Cartesian product.
       (Contributed by Peter Mazsa, 16-Mar-2019.) $)
    idinxpssinxp3 $p |- ( ( _I i^i ( A X. A ) ) C_ ( R i^i ( A X. A ) ) <->
                          ( _I |` A ) C_ R ) $=
      ( vx cid cxp cin wss cv wbr wral cres idinxpssinxp2 issref bitr4i ) DAAEZ
      FBOFGCHZPBICAJDAKBGCABLCABMN $.
  $}

  ${
    $d A x y $.  $d R x y $.
    $( Identity intersection with a square Cartesian product in subclass
       relation with an intersection with the same Cartesian product (cf.
       ~ idinxpssinxp2 ).  (Contributed by Peter Mazsa, 8-Mar-2019.) $)
    idinxpssinxp4 $p |- ( A. x e. A A. y e. A ( x = y -> x R y ) <->
                          A. x e. A x R x ) $=
      ( cv wceq wbr wi wral cid cxp cin wss idinxpssinxp idinxpssinxp2 bitr3i )
      AEZBEZFQRDGHBCIACIJCCKZLDSLMQQDGACIABCCDNACDOP $.
  $}

  ${
    $d R x y $.
    $( Two ways of saying a relation is symmetric.  (Contributed by FL,
       31-Aug-2009.) $)
    relcnveq3 $p |- ( Rel R ->
                      ( R = `' R <-> A. x A. y ( x R y -> y R x ) ) ) $=
      ( ccnv wceq wss wa wrel cv wbr wi wal eqss cnvsym biimpi a1d adantl com12
      dfrel2 cnvss sseq1 syl5ibcom sylbir sylbi biimpri jca2 impbid syl5bb ) CC
      DZECUIFZUICFZGZCHZAIZBIZCJUOUNCJKBLALZCUIMUMULUPULUMUPUKUMUPKUJUKUPUMUKUP
      ABCNZOPQRUMUPUJUKUMUIDZCEZUPUJKCSUPUSUJUPUKUSUJKUQUKURUIFUSUJUICTURCUIUAU
      BUCRUDUKUPUQUEUFUGUH $.
  $}

  ${
    $d R x y $.
    $( Two ways of saying a relation is symmetric.  (Contributed by Peter
       Mazsa, 23-Aug-2018.) $)
    relcnveq $p |- ( Rel R -> ( `' R C_ R <-> `' R = R ) ) $=
      ( vx vy ccnv wceq wrel wss eqcom cv wbr wi wal relcnveq3 syl6bbr syl5rbbr
      cnvsym ) ADZAEAQEZAFZQAGZAQHSRBIZCIZAJUBUAAJKCLBLTBCAMBCAPNO $.
  $}

  ${
    $d R x y $.
    $( Two ways of saying a relation is symmetric.  (Contributed by Peter
       Mazsa, 28-Apr-2019.) $)
    relcnveq2 $p |- ( Rel R ->
                      ( `' R = R <-> A. x A. y ( x R y <-> y R x ) ) ) $=
      ( wrel ccnv wss wa cv wbr wi wceq wb cnvsym dfrel2 biimpi sseq1d syl5rbbr
      wal a1i relbrcnvg imbi12d 2albidv bitrd anbi12d eqss 2albiim 3bitr4g ) CD
      ZCEZCFZCUIFZGAHZBHZCIZUMULCIZJBRARZUOUNJZBRARZGUICKUNUOLBRARUHUJUPUKURUJU
      PLUHABCMSUHUKULUMUIIZUMULUIIZJZBRARZURVBUIEZUIFUHUKABUIMUHVCCUIUHVCCKCNOP
      QUHVAUQABUHUSUOUTUNULUMCTUMULCTUAUBUCUDUICUEUNUOABUFUG $.
  $}

  ${
    $d R x y $.
    $( Two ways of saying a relation is symmetric.  (Contributed by Peter
       Mazsa, 28-Apr-2019.) $)
    relcnveq4 $p |- ( Rel R ->
                      ( `' R C_ R <-> A. x A. y ( x R y <-> y R x ) ) ) $=
      ( wrel ccnv wss wceq cv wbr wb wal relcnveq relcnveq2 bitrd ) CDCEZCFOCGA
      HZBHZCIQPCIJBKAKCLABCMN $.
  $}

  ${
    $d A u v $.  $d R u v $.
    $( Simplification of a special quotient set.  (Contributed by Peter Mazsa,
       2-Sep-2020.) $)
    qsresid $p |- ( A /. ( R |` A ) ) = ( A /. R ) $=
      ( vu vv cres cec wceq wrex cab cqs wcel ecres2 eqeq2d rexbiia abbii df-qs
      cv 3eqtr4i ) CQZDQZBAEZFZGZDAHZCISTBFZGZDAHZCIAUAJABJUDUGCUCUFDATAKUBUESA
      TBLMNODCAUAPDCABPR $.
  $}

  $( The empty set has no elements.  (Contributed by Peter Mazsa,
     4-Jan-2018.) $)
  nel02 $p |- ( A = (/) -> -. B e. A ) $=
    ( c0 wceq wcel noel eleq2 mtbiri ) ACDBAEBCEBFACBGH $.

  ${
    $d A x $.  $d R x $.
    $( Two ways of expressing that the empty set is not an element of a
       quotient set.  (Contributed by Peter Mazsa, 5-Dec-2019.) $)
    n0elqs $p |- ( -. (/) e. ( A /. R ) <-> A C_ dom R ) $=
      ( vx cv cdm wcel wral cec c0 wne wss cqs ecdmn0 ralbii wrex rexbii notbii
      wn wceq 3bitr4ri dfss3 nne dfral2 0ex elqs eqcom bitri ) CDZBEZFZCAGUHBHZ
      IJZCAGZAUIKIABLFZRZUJULCAUHBMNCAUIUAULRZCAOZRUKISZCAOZRUMUOUQUSUPURCAUKIU
      BPQULCAUCUNUSUNIUKSZCAOUSCAIBUDUEUTURCAIUKUFPUGQTT $.
  $}

  $( Two ways of expressing that the empty set is not an element of a quotient
     set.  (Contributed by Peter Mazsa, 25-Jul-2021.) $)
  n0elqs2 $p |- ( -. (/) e. ( A /. R ) <-> dom ( R |` A ) = A ) $=
    ( c0 cqs wcel wn cdm wss cres wceq n0elqs ssdmres bitri ) CABDEFABGHBAIGAJA
    BKABLM $.

  $( Condition for a coset to be a set.  (Contributed by Peter Mazsa,
     4-May-2019.) $)
  ecex2 $p |- ( ( R |` A ) e. V -> ( B e. A -> [ B ] R e. _V ) ) $=
    ( cres wcel cec cvv ecexg ecres2 eleq1d syl5ibcom ) CAEZDFBMGZHFBAFZBCGZHFB
    DMIONPHABCJKL $.

  ${
    $d A x y $.  $d R x y $.  $d V x $.
    $( The union of a quotient set: a weaker version of ~ uniqs .  (Contributed
       by Peter Mazsa, 20-Jun-2019.) $)
    uniqsALTV $p |- ( ( R |` A ) e. V -> U. ( A /. R ) = ( R " A ) ) $=
      ( vy vx cres wcel cec wceq wrex cab cuni ciun cqs cima cvv ecex2 ralrimiv
      cv wral dfiun2g syl eqcomd df-qs unieqi csn df-ec iuneq2i imaiun 3eqtr2ri
      a1i iunid imaeq2i 3eqtr4g ) BAFCGZDSESZBHZIEAJDKZLZEAUQMZABNZLBAOZUOUTUSU
      OUQPGZEATUTUSIUOVCEAAUPBCQREDAUQPUAUBUCVAUREDABUDUEUTEABUPUFZOZMBEAVDMZOV
      BEAUQVEUQVEIUPAGUPBUGUKUHEBAVDUIVFABEAULUMUJUN $.
  $}

  $( The range of a restriction is equal to the union of the quotient set.
     (Contributed by Peter Mazsa, 19-May-2018.) $)
  rnresequniqs $p |- ( ( R |` A ) e. V -> ran ( R |` A ) = U. ( A /. R ) ) $=
    ( cres wcel cqs cuni cima crn uniqsALTV df-ima syl6req ) BADZCEABFGBAHMIABC
    JBAKL $.

  ${
    $d A x y $.
    $( Two ways of expressing that the empty set is not an element of a class.
       (Contributed by Peter Mazsa, 31-Jan-2018.) $)
    n0el2 $p |- ( -. (/) e. A <-> dom ( `' _E |` A ) = A ) $=
      ( vy vx cv wcel wex wral wa copab cdm wceq cep ccnv cres dmopab3 cnvepres
      c0 wn n0el dmeqi eqeq1i 3bitr4i ) BDCDZEZBFCAGUCAEUDHCBIZJZAKQAERLMANZJZA
      KUDCBAOCBASUHUFAUGUECBAPTUAUB $.
  $}

  ${
    $d A x y $.  $d V x $.
    $( Sethood condition for the restricted converse epsilon relation.
       (Contributed by Peter Mazsa, 24-Sep-2018.) $)
    cnvepresex $p |- ( A e. V -> ( `' _E |` A ) e. _V ) $=
      ( vx vy wcel cep ccnv cres cv wa copab cvv cnvepres cab abid2 vex eqeltri
      elex a1i opabex3d syl5eqel ) ABEZFGAHCIZAEZDIUCEZJCDKLCDAMUBUECDAABRUEDNZ
      LEUBUDJUFUCLDUCOCPQSTUA $.
  $}

  $( Sufficient condition for an intersection relation to be a set, cf.
     ~ inex1g .  (Contributed by Peter Mazsa, 19-Dec-2018.) $)
  inex2ALTV $p |- ( A e. V -> ( B i^i A ) e. _V ) $=
    ( wcel cin cvv incom inex1g syl5eqel ) ACDBAEABEFBAGABCHI $.

  $( Sufficient condition for the intersection relation to be a set.
     (Contributed by Peter Mazsa, 24-Nov-2019.) $)
  inex3 $p |- ( ( A e. V \/ B e. W ) -> ( A i^i B ) e. _V ) $=
    ( wcel cin cvv inex1g inex2ALTV jaoi ) ACEABFGEBDEABCHBADIJ $.

  $( Sufficient condition for an intersection with a Cartesian product to be a
     set.  (Contributed by Peter Mazsa, 10-May-2019.) $)
  inxpex $p |- ( ( R e. W \/ ( A e. U /\ B e. V ) ) ->
                     ( R i^i ( A X. B ) ) e. _V ) $=
    ( wcel cxp cin cvv wa inex1g xpexg inex2ALTV syl jaoi ) CFGCABHZIJGZADGBEGK
    ZCQFLSQJGRABDEMQCJNOP $.

  ${
    eqres.1 $e |- R = ( S |` C ) $.
    $( Converting a class constant definition by restriction (like ~~? df-ers
       or ~~? df-parts ) into a binary relation.  (Contributed by Peter Mazsa,
       1-Oct-2018.) $)
    eqres $p |- ( B e. V -> ( A R B <-> ( A e. C /\ A S B ) ) ) $=
      ( wbr cres wcel wa breqi brresALTV syl5bb ) ABDHABECIZHBFJACJABEHKABDOGLC
      ABEFMN $.
  $}

  $( Equality conditions for ordered pairs ` <. A , A >. ` and
     ` <. B , B >. ` .  (Contributed by Peter Mazsa, 22-Jul-2019.)  (Revised by
     Thierry Arnoux, 16-Feb-2022.) $)
  opideq $p |- ( A e. V -> ( <. A , A >. = <. B , B >. <-> A = B ) ) $=
    ( wcel cop wceq wa wb opthg anidms anidm syl6bb ) ACDZAAEBBEFZABFZOGZOMNPHA
    ABBCCIJOKL $.

  $( Ordered pair element in an intersection with Cartesian product.
     (Contributed by Peter Mazsa, 21-Jul-2019.) $)
  opelinxp $p |- ( <. C , D >. e. ( R i^i ( A X. B ) ) <->
                   ( ( C e. A /\ D e. B ) /\ <. C , D >. e. R ) ) $=
    ( cxp cin wbr wcel wa cop brinxp2ALTV df-br anbi2i 3bitr3i ) CDEABFGZHCAIDB
    IJZCDEHZJCDKZPIQSEIZJABCDELCDPMRTQCDEMNO $.

  ${
    $d A x y $.
    $( A subclass of the identity relation is the intersection of identity
       relation with Cartesian product of the domain and range of the class.
       (Contributed by Peter Mazsa, 22-Jul-2019.) $)
    iss2 $p |- ( A C_ _I <-> A = ( _I i^i ( dom A X. ran A ) ) ) $=
      ( vx vy cid wss cdm crn cxp wceq cv cop wcel wb wal wa vex jca2 wi syl5bi
      wrel cin ssel opeldm opelrn jcad anandi syl6ibr wbr df-br ideq bitr3i wex
      eldm2 eleq1d biimprcd sylcom exlimdv imbi2d syl5ibcom imp adantrd ex impd
      opeq2 impbid opelinxp biancom syl6bbr alrimivv reli relss relinxp sylancl
      mpi eqrel mpbird inss1 sseq1 mpbiri impbii ) ADEZADAFZAGZHZUAZIZWAWFBJZCJ
      ZKZALZWIWELZMZCNBNZWAWLBCWAWJWIDLZWGWBLZWHWCLZOZOZWKWAWJWRWAWJWNWOOZWNWPO
      ZOWRWAWJWSWTWAWJWNWOADWIUBZWGWHABPZCPZUCQWAWJWNWPXAWGWHAXBXCUDQUEWNWOWPUF
      UGWAWNWQWJWNWGWHIZWAWQWJRZWNWGWHDUHXDWGWHDUIWGWHXCUJUKZWAXDXEWAXDOWOWJWPW
      AXDWOWJRZWAWOWGWGKZALZRXDXGWOWJCULWAXICWGAXBUMWAWJXICWAWJWNXIXAWNXDWJXIXF
      XDXIWJXDXHWIAWGWHWGVDUNZUOSUPUQSXDXIWJWOXJURUSUTVAVBSVCVEWKWNWQWBWCWGWHDV
      FVGVHVIWAATZWETWFWMMWADTXKVJADVKVNWBWCDVLBCAWEVOVMVPWFWAWEDEDWDVQAWEDVRVS
      VT $.
  $}

  ${
    $d A u $.  $d R u $.  $d V u $.
    $( Elementhood in a domain of a converse.  (Contributed by Peter Mazsa,
       25-May-2018.) $)
    eldmcnv $p |- ( A e. V -> ( A e. dom `' R <-> E. u u R A ) ) $=
      ( wcel ccnv cdm cv wbr wex eldmg wb cvv brcnvg el2v2 exbidv bitrd ) BDEZB
      CFZGEBAHZSIZAJTBCIZAJABSDKRUAUBARUAUBLABTDMCNOPQ $.
  $}

  $( Alternate definition of the relation predicate.  (Contributed by Peter
     Mazsa, 6-Nov-2018.) $)
  dfrel5 $p |- ( Rel R <-> ( R |` dom R ) = R ) $=
    ( wrel ccnv wceq cdm cres dfrel2 resdm2 eqeq1i bitr4i ) ABACCZADAAEFZADAGLK
    AAHIJ $.

  $( Alternate definition of the relation predicate.  (Contributed by Peter
     Mazsa, 14-Mar-2019.) $)
  dfrel6 $p |- ( Rel R <-> ( R i^i ( dom R X. ran R ) ) = R ) $=
    ( wrel cdm cres wceq crn cxp cin dfrel5 dfres3 eqeq1i bitri ) ABAACZDZAEAMA
    FGHZAEAINOAAMJKL $.

  $( Converse restricted to range is converse.  (Contributed by Peter Mazsa,
     3-Sep-2021.) $)
  cnvresrn $p |- ( `' R |` ran R ) = `' R $=
    ( ccnv crn cres cdm df-rn reseq2i wrel wceq relcnv dfrel5 mpbi eqtri ) ABZA
    CZDNNEZDZNOPNAFGNHQNIAJNKLM $.

  ${
    $d A x $.  $d B x $.  $d R x $.  $d V x $.  $d W x $.
    $( Two ways of saying that the coset of ` A ` and the coset of ` B ` have
       no elements in common.  (Contributed by Peter Mazsa, 1-Dec-2018.) $)
    ecin0 $p |- ( ( A e. V /\ B e. W ) ->
                    ( ( [ A ] R i^i [ B ] R ) = (/) <->
                      A. x ( A R x -> -. B R x ) ) ) $=
      ( cec cin c0 wceq cv wcel wn wi wal wa wbr disj1 wb cvv elecg el2v1 el2v2
      adantr elecALTV adantl notbid imbi12d albidv syl5bb ) BDGZCDGZHIJAKZUKLZU
      MULLZMZNZAOBELZCFLZPZBUMDQZCUMDQZMZNZAOAUKULRUTUQVDAUTUNVAUPVCURUNVASZUSU
      RVEAUMBDTEUAUBUDUTUOVBUSUOVBSZURUSVFACUMDFTUEUCUFUGUHUIUJ $.
  $}

  ${
    $d A x $.  $d B x $.  $d R x $.  $d V x $.  $d W x $.
    $( Two ways of saying that the coset of ` A ` and the coset of ` B ` have
       some elements in common.  (Contributed by Peter Mazsa, 23-Jan-2019.) $)
    ecinn0 $p |- ( ( A e. V /\ B e. W ) ->
                     ( ( [ A ] R i^i [ B ] R ) =/= (/) <->
                       E. x ( A R x /\ B R x ) ) ) $=
      ( wcel wa cec cin c0 wne cv wbr wn wi wal wex ecin0 necon3abid notnotb
      anbi2i exbii exanali bitri syl6bbr ) BEGCFGHZBDICDIJZKLBAMZDNZCUIDNZOZPAQ
      ZOZUJUKHZARZUGUMUHKABCDEFSTUPUJULOZHZARUNUOURAUKUQUJUKUAUBUCUJULAUDUEUF
      $.
  $}

  ${
    $d B z $.  $d C z $.  $d D z $.  $d x z $.  $d y z $.
    $( Equivalence of restricted universal quantifications.  (Contributed by
       Peter Mazsa, 29-May-2018.) $)
    ineleq $p |- ( A. x e. A A. y e. B ( x = y \/ ( C i^i D ) = (/) ) <->
                   A. x e. A A. z A. y e. B
                   ( ( z e. C /\ z e. D ) -> x = y ) ) $=
      ( cv wceq cin c0 wo wral wcel wa wi wal wex bitri ralbii orcom df-or neq0
      wn elin exbii imbi1i 19.23v bitr4i 3bitri ralcom4 ) AHBHIZFGJZKIZLZBEMZCH
      ZFNUQGNOZULPZBEMCQZADUPUSCQZBEMUTUOVABEUOUNULLUNUDZULPZVAULUNUAUNULUBVCUR
      CRZULPVAVBVDULVBUQUMNZCRVDCUMUCVEURCUQFGUEUFSUGURULCUHUIUJTUSBCEUKST $.
  $}

  ${
    $d A x y z $.  $d B y z $.  $d C x z $.  $d R x y z $.
    inecmo.1 $e |- ( x = y -> B = C ) $.
    $( Equivalence of a double restricted universal quantification and a
       restricted "at most one" inside a universal quantification.
       (Contributed by Peter Mazsa, 29-May-2018.) $)
    inecmo $p |- ( Rel R ->
        ( A. x e. A A. y e. A ( x = y \/ ( [ B ] R i^i [ C ] R ) = (/) ) <->
          A. z E* x e. A B R z ) ) $=
      ( wrel cv wbr wal cec wcel wa wceq wi wral relelec syl6rbbr c0 wo anbi12d
      wrmo cin imbi1d 2ralbidv breq1d rmo4 albidv ineleq ralcom4 bitri ) GIZECJ
      ZGKZADUDZCLUOEGMZNZUOFGMZNZOZAJBJPZQZBDRZADRZCLZVCURUTUEUAPUBBDRADRZUNUQV
      FCUNVFUPFUOGKZOZVCQZBDRADRUQUNVDVKABDDUNVBVJVCUNUSUPVAVIUOEGSUOFGSUCUFUGU
      PVIABDVCEFUOGHUHUITUJVHVECLADRVGABCDDURUTUKVEACDULUMT $.
  $}

  ${
    $d A u v x $.  $d B u v x $.  $d R u v x $.
    $( Equivalence of a double restricted universal quantification and a
       restricted "at most one" inside a universal quantification.
       (Contributed by Peter Mazsa, 29-May-2018.)  (Revised by Peter Mazsa,
       2-Sep-2021.) $)
    inecmo2 $p |-
         ( ( A. u e. A A. v e. A ( u = v \/ ( [ u ] R i^i [ v ] R ) = (/) ) /\
             Rel R ) <->
           ( A. x E* u e. A u R x /\ Rel R ) ) $=
      ( wrel cv wceq cec cin c0 wo wral wbr wrmo wal id inecmo pm5.32ri ) EFCGZ
      BGZHZTEIUAEIJKHLBDMCDMTAGENCDOAPCBADTUAEUBQRS $.
  $}

  ${
    $d B x y z $.  $d F x y z $.
    $( Equivalence of a double restricted universal quantification and a
       restricted "at most one" inside a universal quantification.
       (Contributed by Peter Mazsa, 2-Sep-2021.) $)
    ineccnvmo $p |-
        ( A. y e. B A. z e. B ( y = z \/ ( [ y ] `' F i^i [ z ] `' F ) = (/) )
            <->
          A. x E* y e. B x F y ) $=
      ( cv wceq ccnv cec cin c0 wo wral wbr wrmo wal wrel wb relcnv cvv id el2v
      inecmo ax-mp brcnvg rmobii albii bitri ) BFZCFZGZUIEHZIUJULIJKGLCDMBDMZUI
      AFZULNZBDOZAPZUNUIENZBDOZAPULQUMUQRESBCADUIUJULUKUAUCUDUPUSAUOURBDUOURRBA
      UIUNTTEUEUBUFUGUH $.
  $}

  $( Equivalence of an "at most one" and an "at most one" restricted to the
     range inside a universal quantification.  (Contributed by Peter Mazsa,
     3-Sep-2021.) $)
  alrmomorn $p |- ( A. x E* y e. ran R x R y <-> A. x E* y x R y ) $=
    ( cv wbr crn wrmo wmo wcel wa df-rmo ccnv cres cnvresrn breqi cvv brresALTV
    wb elv bitri brcnvg el2v anbi2i 3bitr3i mobii albii ) ADZBDZCEZBCFZGZUIBHZA
    UKUHUJIZUIJZBHULUIBUJKUNUIBUHUGCLZUJMZEZUHUGUOEZUNUIUHUGUPUOCNOUQUMURJZUNUQ
    USRAUJUHUGUOPQSURUIUMURUIRBAUHUGPPCUAUBZUCTUTUDUETUF $.

  ${
    $d R u $.  $d R x $.
    $( Equivalence of an "at most one" and an "at most one" restricted to the
       domain inside a universal quantification.  (Contributed by Peter Mazsa,
       5-Sep-2021.) $)
    alrmomodm $p |- ( Rel R ->
                      ( A. x E* u e. dom R u R x <-> A. x E* u u R x ) ) $=
      ( wrel cv wbr cdm wrmo wmo wcel wa df-rmo cres wb cvv brresALTV elv resdm
      breqd syl5bbr mobidv syl5bb albidv ) CDZBEZAEZCFZBCGZHZUGBIZAUIUEUHJUGKZB
      IUDUJUGBUHLUDUKUGBUKUEUFCUHMZFZUDUGUMUKNAUHUEUFCOPQUDULCUEUFCRSTUAUBUC $.
  $}

  ${
    $d F u x y $.
    $( Equivalence of a double universal quantification restricted to the range
       and an "at most one" inside a universal quantification.  (Contributed by
       Peter Mazsa, 4-Sep-2021.) $)
    ineccnvmo2 $p |- ( A. x e. ran F A. y e. ran F
                       ( x = y \/ ( [ x ] `' F i^i [ y ] `' F ) = (/) ) <->
                       A. u E* x u F x ) $=
      ( cv wceq ccnv cec cin c0 crn wral wbr wrmo wal ineccnvmo alrmomorn bitri
      wo wmo ) AEZBEZFUADGZHUBUCHIJFSBDKZLAUDLCEUADMZAUDNCOUEATCOCABUDDPCADQR
      $.
  $}

  ${
    $d R u v x $.
    $( Equivalence of a double universal quantification restricted to the
       domain and an "at most one" inside a universal quantification.
       (Contributed by Peter Mazsa, 5-Sep-2021.) $)
    inecmo3 $p |- ( ( A. u e. dom R A. v e. dom R
          ( u = v \/ ( [ u ] R i^i [ v ] R ) = (/) ) /\ Rel R ) <->
        ( A. x E* u u R x /\ Rel R ) ) $=
      ( cv wceq cec cin c0 wo cdm wral wrel wbr wrmo wal wmo inecmo2 alrmomodm
      wa pm5.32ri bitri ) CEZBEZFUCDGUDDGHIFJBDKZLCUELDMZTUCAEDNZCUEOAPZUFTUGCQ
      APZUFTABCUEDRUFUHUIACDSUAUB $.
  $}

  $( Sufficient condition for transitivity of conjunctions inside existential
     quantifiers.  (Contributed by Peter Mazsa, 2-Oct-2018.) $)
  moantr $p |- ( E* x ps ->
                 ( ( E. x ( ph /\ ps ) /\ E. x ( ps /\ ch ) ) ->
                   E. x ( ph /\ ch ) ) ) $=
    ( wmo wa wex wi w3a exancom anbi1i anbi2i 3anass bitr4i mopick2 sylbi exbii
    exsimpr syl impexp mpbi ) BDEZABFDGZBCFDGZFZFZACFZDGZHUBUEUHHHUFBACIZDGZUHU
    FUBBAFDGZUDIZUJUFUBUKUDFZFULUEUMUBUCUKUDABDJKLUBUKUDMNBACDOPUJBUGFZDGUHUIUN
    DBACMQBUGDRPSUBUEUHTUA $.

  ${
    brabidga.1 $e |- R = { <. x , y >. | ph } $.
    $( The law of concretion for a binary relation.  Special case of ~ brabga .
       (Contributed by Peter Mazsa, 24-Nov-2018.) $)
    brabidga $p |- ( x R y <-> ph ) $=
      ( cv wbr copab cop wcel breqi df-br opabid 3bitri ) BFZCFZDGOPABCHZGOPIQJ
      AOPDQEKOPQLABCMN $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d R x y $.
    $( Intersection with a Cartesian product.  (Contributed by Peter Mazsa,
       18-Jul-2019.) $)
    inxp2 $p |- ( R i^i ( A X. B ) ) =
                  { <. x , y >. | ( ( x e. A /\ y e. B ) /\ x R y ) } $=
      ( cxp cin cv wbr copab wcel wa wrel wceq relinxp dfrel4v mpbi brinxp2ALTV
      opabbii eqtri ) ECDFGZAHZBHZUAIZABJZUBCKUCDKLUBUCEILZABJUAMUAUENCDEOABUAP
      QUDUFABCDUBUCERST $.
  $}

  ${
    opabf.1 $e |- -. ph $.
    $( A class abstraction of a collection of ordered pairs with a negated wff
       is the empty set.  (Contributed by Peter Mazsa, 21-Oct-2019.)  (Proof
       shortened by Thierry Arnoux, 18-Feb-2022.) $)
    opabf $p |- { <. x , y >. | ph } = (/) $=
      ( copab c0 wceq wn wal gen2 opab0 mpbir ) ABCEFGAHZCIBIMBCDJABCKL $.
  $}

  $( The empty-coset of a class is the empty set.  (Contributed by Peter Mazsa,
     19-May-2019.) $)
  ec0 $p |- [ A ] (/) = (/) $=
    ( c0 cec csn cima df-ec 0ima eqtri ) ABCBADZEBABFIGH $.

  ${
    $d R x y $.
    $( Quotient set with the empty set.  (Contributed by Peter Mazsa,
       14-Sep-2019.) $)
    0qs $p |- ( (/) /. R ) = (/) $=
      ( vy vx c0 cqs cv cec wceq wrex cab df-qs rex0 abf eqtri ) DAEBFCFAGHZCDI
      ZBJDCBDAKPBOCLMN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Range Cartesian product
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Define the range Cartesian product of two classes.  Definition from
     [Holmes] p. 40.  Membership in this class is characterized by ~ xrnss3v
     and ~ brxrn .  This is Scott Fenton's ~ df-txp with a different symbol,
     cf. ~ https://github.com/metamath/set.mm/issues/2469 .  (Contributed by
     Scott Fenton, 31-Mar-2012.) $)
  df-xrn $a |- ( A |X. B ) = ( ( `' ( 1st |` ( _V X. _V ) ) o. A ) i^i
                               ( `' ( 2nd |` ( _V X. _V ) ) o. B ) ) $.

  ${
    $d A x y z $.  $d B x y z $.
    $( A range Cartesian product is a subset of the class of ordered triples.
       This is Scott Fenton's ~ txpss3v with a different symbol, cf.
       ~ https://github.com/metamath/set.mm/issues/2469 .  (Contributed by
       Scott Fenton, 31-Mar-2012.) $)
    xrnss3v $p |- ( A |X. B ) C_ ( _V X. ( _V X. _V ) ) $=
      ( vx vy vz cxrn c1st cvv cxp cres ccnv ccom c2nd cin df-xrn inss1 cv wcel
      wbr vex relco wa wex cop brcnv brres simprbi adantl exlimiv opelco opelxp
      sylbi mpbiran 3imtr4i relssi sstri eqsstri ) ABFGHHIZJZKZALZMURJKBLZNZHUR
      IZABOVCVAVDVAVBPCDVAVDUTAUACQZEQZASZVFDQZUTSZUBZEUCVHURRZVEVHUDZVARVLVDRZ
      VJVKEVIVKVGVIVHVFUSSZVKVFVHUSETZDTZUEVNVHVFGSVKVHVFGURVOUFUGULUHUIEVEVHUT
      ACTZVPUJVMVEHRVKVQVEVHHURUKUMUNUOUPUQ $.
  $}

  $( A range Cartesian product is a relation.  This is Scott Fenton's ~ txprel
     with a different symbol, cf.
     ~ https://github.com/metamath/set.mm/issues/2469 .  (Contributed by Scott
     Fenton, 31-Mar-2012.) $)
  xrnrel $p |- Rel ( A |X. B ) $=
    ( cxrn wrel cvv cxp wss xrnss3v xpss sstri df-rel mpbir ) ABCZDMEEFZGMENFNA
    BHENIJMKL $.

  ${
    $d A x $.  $d A y $.  $d B x $.  $d B y $.  $d C x $.  $d C y $.  $d R x $.
    $d S y $.  $d V x $.  $d V y $.  $d W x $.  $d W y $.  $d X x $.  $d X y $.
    $( Characterize a ternary relation over a range Cartesian product.
       Together with ~ xrnss3v , this characterizes elementhood in a range
       cross.  (Contributed by Peter Mazsa, 27-Jun-2021.) $)
    brxrn $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
                  ( A ( R |X. S ) <. B , C >. <-> ( A R B /\ A S C ) ) ) $=
      ( vx vy wcel wbr c1st cvv c2nd wa wb wex mpan2 elv w3a cop cxrn cres ccnv
      cxp ccom cin df-xrn breqi brin cv wceq opex brcog 3ad2ant1 brcnvg opelvvg
      biantrurd brresALTV syl6rbbr br1steqg bitrd 3adant1 syl5bb anbi1cd exbidv
      a1i breq2 ceqsexgv 3ad2ant2 3bitrd br2ndeqg 3ad2ant3 anbi12d ) AFKZBGKZCH
      KZUAZABCUBZDEUCZLZAVTMNNUFZUDZUEZDUGZOWCUDZUEZEUGZUHZLZAVTWFLZAVTWILZPZAB
      DLZACELZPWBWKQVSAVTWAWJDEUIUJVHWKWNQVSAVTWFWIUKVHVSWLWOWMWPVSWLAIULZDLZWQ
      VTWELZPZIRZWQBUMZWRPZIRZWOVPVQWLXAQZVRVPVTNKZXEBCUNZIAVTWEDFNUOSUPVSWTXCI
      VSWSXBWRWSVTWQWDLZVSXBWSXHQZIWQNKXFXIXGWQVTNNWDUQSTVQVRXHXBQVPVQVRPZXHVTW
      QMLZXBXJXKVTWCKZXKPZXHXJXLXKBCGHURZUSXHXMQIWCVTWQMNUTTVABCWQGHVBVCVDVEVFV
      GVQVPXDWOQVRWRWOIBGWQBADVIVJVKVLVSWMAJULZELZXOVTWHLZPZJRZXOCUMZXPPZJRZWPV
      PVQWMXSQZVRVPXFYCXGJAVTWHEFNUOSUPVSXRYAJVSXQXTXPXQVTXOWGLZVSXTXQYDQZJXONK
      XFYEXGXOVTNNWGUQSTVQVRYDXTQVPXJYDVTXOOLZXTXJYFXLYFPZYDXJXLYFXNUSYDYGQJWCV
      TXOONUTTVABCXOGHVMVCVDVEVFVGVRVPYBWPQVQXPWPJCHXOCAEVIVJVNVLVOVL $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d R x y $.  $d S x y $.  $d V x y $.
    $( A characterization of the range Cartesian product.  (Contributed by
       Peter Mazsa, 14-Oct-2020.) $)
    brxrn2 $p |- ( A e. V ->
                   ( A ( R |X. S ) B <->
                     E. x E. y ( B = <. x , y >. /\ A R x /\ A S y ) ) ) $=
      ( cxrn wbr cv cop wceq wa wex wcel w3a cvv cxp xrnss3v brel elvv pm4.71ri
      simprd sylib 19.41vv breq2 pm5.32i 2exbii 3bitr2i wb el3v23 anbi2d 3anass
      brxrn syl6bbr 2exbidv syl5bb ) CDEFHZIZDAJZBJZKZLZCVBURIZMZBNANZCGOZVCCUT
      EIZCVAFIZPZBNANUSVCBNANZUSMVCUSMZBNANVFUSVKUSDQQRZOZVKUSCQOVNCDQVMUREFSTU
      CABDUAUDUBVCUSABUEVLVEABVCUSVDDVBCURUFUGUHUIVGVEVJABVGVEVCVHVIMZMVJVGVDVO
      VCVGVDVOUJABCUTVAEFGQQUNUKULVCVHVIUMUOUPUQ $.
  $}

  ${
    $d R u x y z $.  $d S u x y z $.
    $( Alternate definition of the range Cartesian product.  (Contributed by
       Peter Mazsa, 20-Feb-2022.) $)
    dfxrn2 $p |- ( R |X. S ) =
                 `' { <. <. x , y >. , u >. | ( u R x /\ u S y ) } $=
      ( vz cxrn cv wbr copab cop coprab ccnv wa wrel wceq xrnrel cvv wex wb cxp
      dfrel4v mpbi breq2 wcel w3a brxrn2 brxrn el3v anbi2i 3anass bitr4i 2exbii
      elv copsex2gb 3bitr2i simplbi cnvoprab oprabbii cnveqi 3eqtr2i ) DEGZCHZF
      HZVBIZCFJZVCAHZBHZKZVBIZABCLZMVCVGDIZVCVHEIZNZABCLZMVBOVBVFPDEQCFVBUBUCVJ
      VEABCFVDVIVCVBUDZVEVDRRUAUEZVEVEVDVIPZVLVMUFZBSASZVRVJNZBSASVQVENVEVTTCAB
      VCVDDERUGUNWAVSABWAVRVNNVSVJVNVRVJVNTCABVCVGVHDERRRUHUIZUJVRVLVMUKULUMVEV
      JABVDVPUOUPUQURVKVOVJVNABCWBUSUTVA $.
  $}

  $( Equality theorem for the range Cartesian product.  (Contributed by Peter
     Mazsa, 16-Dec-2020.) $)
  xrneq1 $p |- ( A = B -> ( A |X. C ) = ( B |X. C ) ) $=
    ( wceq c1st cvv cxp cres ccnv ccom c2nd cxrn coeq2 ineq1d df-xrn 3eqtr4g
    cin ) ABDZEFFGZHIZAJZKSHICJZQTBJZUBQACLBCLRUAUCUBABTMNACOBCOP $.

  ${
    xrneq1i.1 $e |- A = B $.
    $( Equality theorem for the range Cartesian product, inference form.
       (Contributed by Peter Mazsa, 16-Dec-2020.) $)
    xrneq1i $p  |- ( A |X. C ) = ( B |X. C ) $=
      ( wceq cxrn xrneq1 ax-mp ) ABEACFBCFEDABCGH $.
  $}

  ${
    xrneq1d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for the range Cartesian product, deduction form.
       (Contributed by Peter Mazsa, 7-Sep-2021.) $)
    xrneq1d $p  |- ( ph -> ( A |X. C ) = ( B |X. C ) ) $=
      ( wceq cxrn xrneq1 syl ) ABCFBDGCDGFEBCDHI $.
  $}

  $( Equality theorem for the range Cartesian product.  (Contributed by Peter
     Mazsa, 16-Dec-2020.) $)
  xrneq2 $p |- ( A = B -> ( C |X. A ) = ( C |X. B ) ) $=
    ( wceq c1st cvv cxp cres ccnv ccom c2nd cxrn coeq2 ineq2d df-xrn 3eqtr4g
    cin ) ABDZEFFGZHICJZKSHIZAJZQTUABJZQCALCBLRUBUCTABUAMNCAOCBOP $.

  ${
    xrneq2i.1 $e |- A = B $.
    $( Equality theorem for the range Cartesian product, inference form.
       (Contributed by Peter Mazsa, 16-Dec-2020.) $)
    xrneq2i $p |- ( C |X. A ) = ( C |X. B ) $=
      ( wceq cxrn xrneq2 ax-mp ) ABECAFCBFEDABCGH $.
  $}

  ${
    xrneq2d.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for the range Cartesian product, deduction form.
       (Contributed by Peter Mazsa, 7-Sep-2021.) $)
    xrneq2d $p  |- ( ph -> ( C |X. A ) = ( C |X. B ) ) $=
      ( wceq cxrn xrneq2 syl ) ABCFDBGDCGFEBCDHI $.
  $}

  $( Equality theorem for the range Cartesian product.  (Contributed by Peter
     Mazsa, 16-Dec-2020.) $)
  xrneq12 $p |- ( ( A = B /\ C = D ) -> ( A |X. C ) = ( B |X. D ) ) $=
    ( wceq cxrn xrneq1 xrneq2 sylan9eq ) ABECDEACFBCFBDFABCGCDBHI $.

  ${
    xrneq12i.1 $e |- A = B $.
    xrneq12i.2 $e |- C = D $.
    $( Equality theorem for the range Cartesian product, inference form.
       (Contributed by Peter Mazsa, 16-Dec-2020.) $)
    xrneq12i $p |- ( A |X. C ) = ( B |X. D ) $=
      ( wceq cxrn xrneq12 mp2an ) ABGCDGACHBDHGEFABCDIJ $.
  $}

  ${
    xrneq12d.1 $e |- ( ph -> A = B ) $.
    xrneq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality theorem for the range Cartesian product, deduction form.
       (Contributed by Peter Mazsa, 18-Dec-2021.) $)
    xrneq12d $p  |- ( ph -> ( A |X. C ) = ( B |X. D ) ) $=
      ( wceq cxrn xrneq12 syl2anc ) ABCHDEHBDICEIHFGBCDEJK $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d R x y $.  $d S x y $.  $d V x y $.
    $( Elementhood in the ` ( R |X. S ) ` -coset of ` A ` .  (Contributed by
       Peter Mazsa, 18-Apr-2020.)  (Revised by Peter Mazsa, 21-Sep-2021.) $)
    elecxrn $p |- ( A e. V -> ( B e. [ A ] ( R |X. S ) <->
                      E. x E. y ( B = <. x , y >. /\ A R x /\ A S y ) ) ) $=
      ( cxrn cec wcel wbr cv cop wceq w3a wex wrel wb xrnrel relelec brxrn2
      ax-mp syl5bb ) DCEFHZIJZCDUDKZCGJDALZBLZMNCUGEKCUHFKOBPAPUDQUEUFREFSDCUDT
      UBABCDEFGUAUC $.
  $}

  ${
    $d A x y z $.  $d R x y z $.  $d S x y z $.  $d V x y z $.
    $( The ` ( R |X. S ) ` -coset of ` A ` .  (Contributed by Peter Mazsa,
       18-Apr-2020.)  (Revised by Peter Mazsa, 21-Sep-2021.) $)
    ecxrn $p |- ( A e. V ->
                  [ A ] ( R |X. S ) = { <. y , z >. | ( A R y /\ A S z ) } ) $=
      ( vx wcel cxrn cec cv wbr wa copab cop wceq wex w3a elecxrn 3anass 2exbii
      syl6bb elopab syl6bbr eqrdv ) CFHZGCDEIJZCAKZDLZCBKZELZMZABNZUFGKZUGHZUNU
      HUJOPZULMZBQAQZUNUMHUFUOUPUIUKRZBQAQURABCUNDEFSUSUQABUPUIUKTUAUBULABUNUCU
      DUE $.
  $}

  ${
    $d A u x y z $.  $d B u x y z $.  $d C u x y z $.  $d R u x y z $.
    $d S u x y z $.
    $( Intersection of a range Cartesian product with a Cartesian product.
       (Contributed by Peter Mazsa, 7-Apr-2020.) $)
    xrninxp $p |- ( ( R |X. S ) i^i ( A X. ( B X. C ) ) ) =
        `' { <. <. y , z >. , u >. |
                   ( ( y e. B /\ z e. C ) /\
                     ( u e. A /\ u ( R |X. S ) <. y , z >. ) ) } $=
      ( vx cxrn cxp cin cv wcel wbr wa copab ccnv cop coprab w3a df-3an 3anan12
      inxp2 bitr3i opabbii eqtri cnvopab breq2 anbi2d dfoprab4 cnveqi 3eqtr2i
      wceq ) GHJZDEFKZKLZIMZUPNZCMZDNZUTURUOOZPZPZCIQZVDICQZRAMZENBMZFNPVAUTVGV
      HSZUOOZPZPABCTZRUQVAUSPVBPZCIQVECIDUPUOUDVMVDCIVMVAUSVBUAVDVAUSVBUBVAUSVB
      UCUEUFUGVDICUHVFVLVCVKABCIEFURVIUNVBVJVAURVIUTUOUIUJUKULUM $.
  $}

  ${
    $d A u x $.  $d B u x $.  $d C u x $.  $d R u x $.  $d S u x $.
    $( Intersection of a range Cartesian product with a Cartesian product.
       (Contributed by Peter Mazsa, 8-Apr-2020.) $)
    xrninxp2 $p |- ( ( R |X. S ) i^i ( A X. ( B X. C ) ) ) =
        { <. u , x >. |
             ( x e. ( B X. C ) /\ ( u e. A /\ u ( R |X. S ) x ) ) } $=
      ( cxrn cxp cin cv wcel wa wbr copab inxp2 w3a 3ancoma df-3an 3anass eqtri
      3bitr3i opabbii ) FGHZCDEIZIJBKZCLZAKZUELZMUFUHUDNZMZBAOUIUGUJMMZBAOBACUE
      UDPUKULBAUGUIUJQUIUGUJQUKULUGUIUJRUGUIUJSUIUGUJTUBUCUA $.
  $}

  $( Sufficient condition for the intersection of a range Cartesian product
     with a Cartesian product to be a set.  (Contributed by Peter Mazsa,
     12-Apr-2020.) $)
  xrninxpex $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
                    ( ( R |X. S ) i^i ( A X. ( B X. C ) ) ) e. _V ) $=
    ( wcel cxrn cxp cin cvv wa xpexg inxpex olcs sylan2 3impb ) AFIZBGIZCHIZDEJ
    ZABCKZKLMIZUAUBNTUDMIZUEBCGHOUCMITUFNUEAUDUCFMMPQRS $.

  ${
    $d A u x y z $.  $d B u x y z $.  $d C u x y z $.  $d R u x y z $.
    $d S u x y z $.
    $( Two ways to express the intersection of a range Cartesian product with a
       Cartesian product.  (Contributed by Peter Mazsa, 10-Apr-2020.) $)
    inxpxrn $p |- ( ( R i^i ( A X. B ) ) |X. ( S i^i ( A X. C ) ) ) =
                  ( ( R |X. S ) i^i ( A X. ( B X. C ) ) ) $=
      ( vu vx vy vz cxp cin cxrn cv wcel wbr wa w3a wex anbi2i 3bitri xrnrel wb
      relinxp cop wceq cvv brxrn2 elv xrninxp2 brabidga 3anass brinxp2ALTV anan
      2exbii anbi12i bitri anass eqelb opelxp bitr2i anbi1i 3bitr2i an12 bitr4i
      ancom 19.42vv 3bitr4ri eqbrriv ) FGDABJKZEACJKZLZDELZABCJZJKZVIVJUAAVMVLU
      CGMZVMNZFMZANZVQVOVLOZPZPZVPVRVOHMZIMZUDZUEZVQWBDOZVQWCEOZQZIRHRZPZPZVQVO
      VNOVQVOVKOZVTWJVPVSWIVRVSWIUBFHIVQVODEUFUGUHSSWAFGVNGFABCDEUIUJWLWEVQWBVI
      OZVQWCVJOZQZIRHRZWEWMWNPZPZIRHRZWKWLWPUBFHIVQVOVIVJUFUGUHWOWRHIWEWMWNUKUN
      WSVPVRWHPZPZIRHRVPWTIRHRZPWKWRXAHIWRVPWEVRWFWGPZPZPZPZXAWRWEVPPZXDPZVPWEP
      ZXDPXFWRWEWBBNZWCCNZPZXDPZPWEXLPZXDPXHWQXMWEWQVRXJPWFPZVRXKPWGPZPXMWMXOWN
      XPABVQWBDULACVQWCEULUOVRXJWFXKWGUMUPSWEXLXDUQXNXGXDXGWEWDVMNZPXNVOWDVMURX
      QXLWEWBWCBCUSSUTVAVBXGXIXDWEVPVEVAVPWEXDUQTXEWTVPXEVRWEXCPZPWTWEVRXCVCWHX
      RVRWEWFWGUKSVDSUPUNVPWTHIVFXBWJVPVRWHHIVFSTTVGVH $.
  $}

  ${
    $d A y z $.  $d B y z $.  $d R y z $.  $d S y z $.  $d V y z $.
    $( The converse of a binary relation over a range Cartesian product.
       (Contributed by Peter Mazsa, 11-Jul-2021.) $)
    br1cnvxrn2 $p |- ( B e. V -> ( A `' ( R |X. S ) B <->
                       E. y E. z ( A = <. y , z >. /\ B R y /\ B S z ) ) ) $=
      ( cxrn ccnv wbr wcel cv cop wceq w3a wex xrnrel relbrcnv brxrn2 syl5bb )
      CDEFHZIJDCUAJDGKCALZBLZMNDUBEJDUCFJOBPAPCDUAEFQRABDCEFGST $.
  $}

  ${
    $d A y z $.  $d B y z $.  $d R y z $.  $d S y z $.  $d V y z $.
    $( Elementhood in the converse range Cartesian product coset of ` A ` .
       (Contributed by Peter Mazsa, 11-Jul-2021.) $)
    elec1cnvxrn2 $p |- ( B e. V -> ( B e. [ A ] `' ( R |X. S ) <->
                         E. y E. z ( A = <. y , z >. /\ B R y /\ B S z ) ) ) $=
      ( cxrn ccnv cec wcel wbr cv cop wceq w3a wex wrel wb relcnv relelec ax-mp
      br1cnvxrn2 syl5bb ) DCEFHZIZJKZCDUFLZDGKCAMZBMZNODUIELDUJFLPBQAQUFRUGUHSU
      ETDCUFUAUBABCDEFGUCUD $.
  $}

  ${
    $d R u w x y $.  $d S u w x y $.
    $( Range of the range Cartesian product of classes.  (Contributed by Peter
       Mazsa, 1-Jun-2020.) $)
    rnxrn $p |- ran ( R |X. S ) =
                { <. x , y >. | E. u ( u R x /\ u S y ) } $=
      ( vw cv cop wceq wbr w3a wex cab wa cxrn crn copab 3anass 3exbii abbii c0
      exrot3 19.42v 2exbii 3bitri ccnv cec wne dfrn6 n0 wb cvv elec1cnvxrn2 elv
      wcel exbii bitri eqtri df-opab 3eqtr4i ) FGZAGZBGZHIZCGZVBDJZVEVCEJZKZBLA
      LZCLZFMZVDVFVGNZCLZNZBLALZFMDEOZPZVMABQVJVOFVJVDVLNZBLALCLVRCLZBLALVOVHVR
      CABVDVFVGRSVRCABUBVSVNABVDVLCUCUDUETVQVAVPUFUGZUAUHZFMVKFVPUIWAVJFWAVEVTU
      OZCLVJCVTUJWBVICWBVIUKCABVAVEDEULUMUNUPUQTURVMABFUSUT $.
  $}

  ${
    $d A u x y $.  $d R u x y $.  $d S u w x y $.
    $( Range of a range Cartesian product with a restricted relation.
       (Contributed by Peter Mazsa, 5-Dec-2021.) $)
    rnxrnres $p |- ran ( R |X. ( S |` A ) ) =
                   { <. x , y >. | E. u e. A ( u R x /\ u S y ) } $=
      ( cres cxrn crn cv wbr wa wex copab wrex rnxrn wcel wb cvv bitr4i opabbii
      brresALTV elv anbi2i an12 exbii df-rex eqtri ) EFDGZHICJZAJEKZUJBJZUIKZLZ
      CMZABNUKUJULFKZLZCDOZABNABCEUIPUOURABUOUJDQZUQLZCMURUNUTCUNUKUSUPLZLUTUMV
      AUKUMVARBDUJULFSUBUCUDUSUKUPUETUFUQCDUGTUAUH $.
  $}

  ${
    $d A u x y $.  $d R u x y $.
    $( Range of a range Cartesian product with a restriction of the converse
       epsilon relation.  (Contributed by Peter Mazsa, 6-Dec-2021.) $)
    rnxrncnvepres $p |- ran ( R |X. ( `' _E |` A ) ) =
                        { <. x , y >. | E. u e. A ( y e. u /\ u R x ) } $=
      ( cep ccnv cres cxrn crn cv wbr wa wrex copab wcel rnxrnres cvv brcnvep
      wb elv anbi1ci rexbii opabbii eqtri ) EFGZDHIJCKZAKELZUGBKZUFLZMZCDNZABOU
      IUGPZUHMZCDNZABOABCDEUFQULUOABUKUNCDUJUMUHUJUMTCUGUIRSUAUBUCUDUE $.
  $}

  ${
    $d A u x y $.  $d R u x y $.
    $( Range of a range Cartesian product with a restriction of the identity
       relation.  (Contributed by Peter Mazsa, 6-Dec-2021.) $)
    rnxrnidres $p |- ran ( R |X. ( _I |` A ) ) =
                     { <. x , y >. | E. u e. A ( u = y /\ u R x ) } $=
      ( cid cres cxrn crn cv wbr wa wrex copab wceq rnxrnres wb cvv ideqg elv
      anbi1ci rexbii opabbii eqtri ) EFDGHICJZAJEKZUEBJZFKZLZCDMZABNUEUGOZUFLZC
      DMZABNABCDEFPUJUMABUIULCDUHUKUFUHUKQBUEUGRSTUAUBUCUD $.
  $}

  $( Two ways to express restriction of range Cartesian product, cf.
     ~ xrnres2 , ~ xrnres3 .  (Contributed by Peter Mazsa, 5-Jun-2021.) $)
  xrnres $p |- ( ( R |X. S ) |` A ) = ( ( R |` A ) |X. S ) $=
    ( c1st cvv cxp cres ccnv ccom c2nd cxrn ineq1i df-xrn reseq1i inres2 eqtr4i
    cin resco 3eqtr4i ) DEEFZGHZBIZAGZJTGHCIZQZUABAGZIZUDQBCKZAGZUFCKUCUGUDUABA
    RLUIUBUDQZAGUEUHUJABCMNAUBUDOPUFCMS $.

  $( Two ways to express restriction of range Cartesian product, cf. ~ xrnres ,
     ~ xrnres3 .  (Contributed by Peter Mazsa, 6-Sep-2021.) $)
  xrnres2 $p |- ( ( R |X. S ) |` A ) = ( R |X. ( S |` A ) ) $=
    ( c1st cvv cxp cres ccnv ccom c2nd resco ineq2i df-xrn reseq1i inres eqtr4i
    cin cxrn 3eqtr4i ) DEEFZGHBIZJTGHZCIZAGZQZUAUBCAGZIZQBCRZAGZBUFRUDUGUAUBCAK
    LUIUAUCQZAGUEUHUJABCMNUAUCAOPBUFMS $.

  $( Two ways to express restriction of range Cartesian product, cf. ~ xrnres ,
     ~ xrnres2 .  (Contributed by Peter Mazsa, 28-Mar-2020.) $)
  xrnres3 $p |- ( ( R |X. S ) |` A ) = ( ( R |` A ) |X. ( S |` A ) ) $=
    ( c1st cvv cxp cres ccnv ccom c2nd cin cxrn ineq12i df-xrn reseq1i resindir
    resco eqtri 3eqtr4i ) DEEFZGHZBIZAGZJTGHZCIZAGZKZUABAGZIZUDCAGZIZKBCLZAGZUH
    UJLUCUIUFUKUABAQUDCAQMUMUBUEKZAGUGULUNABCNOUBUEAPRUHUJNS $.

  $( Two ways to express restriction of range Cartesian product.  (Contributed
     by Peter Mazsa, 29-Dec-2020.) $)
  xrnres4 $p |- ( ( R |X. S ) |` A ) =
      ( ( R |X. S ) i^i ( A X. ( ran ( R |` A ) X. ran ( S |` A ) ) ) ) $=
    ( cxrn cres crn cxp cin xrnres3 dfres4 xrneq12i inxpxrn 3eqtri ) BCDZAEBAEZ
    CAEZDBAOFZGHZCAPFZGHZDNAQSGGHABCIORPTABJACJKAQSBCLM $.

  $( Sufficient condition for a restricted range Cartesian product to be a set.
     (Contributed by Peter Mazsa, 16-Dec-2020.)  (Revised by Peter Mazsa,
     7-Sep-2021.) $)
  xrnresex $p |- ( ( A e. V /\ R e. W /\ ( S |` A ) e. X ) ->
                   ( R |X. ( S |` A ) ) e. _V ) $=
    ( wcel cres w3a cxrn cvv xrnres3 xrnres2 eqtr3i crn cxp cin dfres4 syl5eqel
    rnexg xrneq12i simp1 resexg syl 3ad2ant2 3ad2ant3 inxpxrn xrninxpex syl3anc
    syl5eqelr ) ADGZBEGZCAHZFGZIZBUMJZBAHZUMJZKBCJZAHURUPABCLABCMNUOURBAUQOZPQZ
    CAUMOZPQZJZKUQVAUMVCABRACRUAUOUKUTKGZVBKGZVDKGUKULUNUBULUKVEUNULUQKGVEBAEUC
    UQKTUDUEUNUKVFULUMFTUFUKVEVFIVDUSAUTVBPPQKAUTVBBCUGAUTVBBCDKKUHSUISUJ $.

  $( Sufficient condition for a range Cartesian product with restricted
     identity to be a set.  (Contributed by Peter Mazsa, 31-Dec-2021.) $)
  xrnidresex $p |- ( ( A e. V /\ R e. W ) ->
                     ( R |X. ( _I |` A ) ) e. _V ) $=
    ( wcel cid cres cvv cxrn resiexg adantr xrnresex mpd3an3 ) ACEZBDEZFAGZHEZB
    PIHENQOACJKABFCDHLM $.

  $( Sufficient condition for a range Cartesian product with restricted
     converse epsilon to be a set.  (Contributed by Peter Mazsa, 16-Dec-2020.)
     (Revised by Peter Mazsa, 23-Sep-2021.) $)
  xrncnvepresex $p |- ( ( A e. V /\ R e. W ) ->
                        ( R |X. ( `' _E |` A ) ) e. _V ) $=
    ( wcel cep ccnv cres cvv cxrn cnvepresex adantr xrnresex mpd3an3 ) ACEZBDEZ
    FGZAHZIEZBRJIEOSPACKLABQCDIMN $.

  $( Binary relation on an intersection is a special case of binary relation on
     range Cartesian product.  (Contributed by Peter Mazsa, 21-Aug-2021.) $)
  brin2 $p |- ( ( A e. V /\ B e. W ) ->
                ( A ( R i^i S ) B <-> A ( R |X. S ) <. B , B >. ) ) $=
    ( wcel wa cop cxrn wbr cin wb brxrn 3anidm23 brin syl6rbbr ) AEGZBFGZHABBIC
    DJKZABCKABDKHZABCDLKRSTUAMABBCDEFFNOABCDPQ $.

  $( Binary relation on an intersection is a special case of binary relation on
     range Cartesian product.  (Contributed by Peter Mazsa, 21-Aug-2021.)
     (Avoid depending on this detail.) $)
  brin3 $p |- ( ( A e. V /\ B e. W ) ->
                ( A ( R i^i S ) B <-> A ( R |X. S ) { { B } } ) ) $=
    ( wcel wa cin wbr cop cxrn csn brin2 wceq opidg adantl breq2d bitrd ) AEGZB
    FGZHZABCDIJABBKZCDLZJABMMZUDJABCDEFNUBUCUEAUDUAUCUEOTBFPQRS $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cosets by ` R `
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d R u x y $.
    $( Define the class of cosets by ` R ` : ` x ` and ` y ` are cosets by
       ` R ` iff there exists a set ` u ` such that both ` u R x ` and
       ` u R y ` hold, i.e., both ` x ` and ` y ` are are elements of the ` R `
       -coset of ` u ` (cf. ~ dfcoss2 and the comment of ~ dfec2 ). ` R ` is
       usually a relation.

       This concept simplifies theorems relating partition and equivalence: the
       left side of these theorems relate to ` R ` , the right side relate to
       ` ,~ R ` (cf. e.g. ~~? pet ).  Without the definition of ` ,~ R ` we
       should have to relate the right side of these theorems to a composition
       of a converse (cf. ~ dfcoss3 ) or to the range of a range Cartesian
       product of classes (cf. ~ dfcoss4 ), which would make the theorems
       complicated and confusing.  Alternate definition is ~ dfcoss2 .
       Technically, we can define it via composition ( ~ dfcoss3 ) or as the
       range of a range Cartesian product ( ~ dfcoss4 ), but neither of these
       definitions reveal directly how the cosets by ` R ` relate to each
       other.  We define functions ( ~~? df-funsALTV , ~~? df-funALTV ) and
       disjoints ( ~~? dfdisjs , ~~? dfdisjs2 , ~~? df-disjALTV , ~~?
       dfdisjALTV2 ) with the help of it as well.  (Contributed by Peter Mazsa,
       9-Jan-2018.) $)
    df-coss $a |- ,~ R = { <. x , y >. | E. u ( u R x /\ u R y ) } $.
  $}

  $( Define the class of coelements on the class ` A ` , cf. the alternate
     definition ~ dfcoels .  Possible definitions are the special cases of
     ~ dfcoss3 and ~ dfcoss4 .  (Contributed by Peter Mazsa, 20-Nov-2019.) $)
  df-coels $a |- ~ A = ,~ ( `' _E |` A ) $.

  ${
    $d R u x y $.
    $( Alternate definition of the class of cosets by ` R ` : ` x ` and ` y `
       are cosets by ` R ` iff there exists a set ` u ` such that both ` x `
       and ` y ` are are elements of the ` R ` -coset of ` u ` (cf. the comment
       of ~ dfec2 ). ` R ` is usually a relation.  (Contributed by Peter Mazsa,
       16-Jan-2018.) $)
    dfcoss2 $p |- ,~ R =
                  { <. x , y >. | E. u ( x e. [ u ] R /\ y e. [ u ] R ) } $=
      ( ccoss cv wbr wa wex copab cec wcel df-coss wb cvv elecALTV el2v anbi12i
      exbii opabbii eqtr4i ) DECFZAFZDGZUBBFZDGZHZCIZABJUCUBDKZLZUEUILZHZCIZABJ
      ABCDMUMUHABULUGCUJUDUKUFUJUDNCAUBUCDOOPQUKUFNCBUBUEDOOPQRSTUA $.
  $}

  ${
    $d R u x y $.
    $( Alternate definition of the class of cosets by ` R ` (cf. the comment of
       ~ df-coss ).  (Contributed by Peter Mazsa, 27-Dec-2018.) $)
    dfcoss3 $p |- ,~ R = ( R o. `' R ) $=
      ( vx vu vy cv ccnv wbr wa wex copab ccom ccoss wb cvv brcnvg anbi1i exbii
      el2v opabbii df-co df-coss 3eqtr4ri ) BEZCEZAFZGZUDDEAGZHZCIZBDJUDUCAGZUG
      HZCIZBDJAUEKALUIULBDUHUKCUFUJUGUFUJMBCUCUDNNAORPQSBDCAUETBDCAUAUB $.
  $}

  ${
    $d R u x y $.
    $( Alternate definition of the class of cosets by ` R ` (cf. the comment of
       ~ df-coss ).  (Contributed by Peter Mazsa, 12-Jul-2021.) $)
    dfcoss4 $p |- ,~ R = ran ( R |X. R ) $=
      ( vu vx vy ccoss cv wbr wa wex copab cxrn crn df-coss rnxrn eqtr4i ) AEBF
      ZCFAGPDFAGHBICDJAAKLCDBAMCDBAANO $.
  $}

  $( If ` A ` is a set then the class of cosets by ` A ` is a set.
     (Contributed by Peter Mazsa, 4-Jan-2019.) $)
  cossex $p |- ( A e. V -> ,~ A e. _V ) $=
    ( wcel ccoss ccnv ccom cvv dfcoss3 cnvexg coexg mpdan syl5eqel ) ABCZADAAEZ
    FZGAHMNGCOGCABIANBGJKL $.

  $( If ` A ` is a set then the class of cosets by the converse of ` A ` is a
     set.  (Contributed by Peter Mazsa, 18-Oct-2019.) $)
  cosscnvex $p |- ( A e. V -> ,~ `' A e. _V ) $=
    ( wcel ccnv cvv ccoss cnvexg cossex syl ) ABCADZECJFECABGJEHI $.

  $( Sufficient condition for a restricted converse epsilon coset to be a set.
     (Contributed by Peter Mazsa, 24-Sep-2021.) $)
  1cosscnvepresex $p |- ( A e. V -> ,~ ( `' _E |` A ) e. _V ) $=
    ( wcel cep ccnv cres cvv ccoss cnvepresex cossex syl ) ABCDEAFZGCLHGCABILGJ
    K $.

  $( Sufficient condition for a restricted converse epsilon range Cartesian
     product to be a set.  (Contributed by Peter Mazsa, 23-Sep-2021.) $)
  1cossxrncnvepresex $p |- ( ( A e. V /\ R e. W ) ->
                             ,~ ( R |X. ( `' _E |` A ) ) e. _V ) $=
    ( wcel wa cep ccnv cres cxrn cvv ccoss xrncnvepresex cossex syl ) ACEBDEFBG
    HAIJZKEPLKEABCDMPKNO $.

  ${
    $d R u x y $.
    $( Cosets by ` R ` is a relation.  (Contributed by Peter Mazsa,
       27-Dec-2018.) $)
    relcoss $p |- Rel ,~ R $=
      ( vu vx vy cv wbr wa wex ccoss df-coss relopabi ) BEZCEAFLDEAFGBHCDAICDBA
      JK $.
  $}

  $( Coelements on ` A ` is a relation.  (Contributed by Peter Mazsa,
     5-Oct-2021.) $)
  relcoels $p |- Rel ~ A $=
    ( ccoels wrel cep ccnv cres ccoss relcoss df-coels releqi mpbir ) ABZCDEAFZ
    GZCMHLNAIJK $.

  ${
    $d A u x y $.  $d A x y z $.  $d B u x y $.  $d B x y z $.
    $( Subclass theorem for the classes of cosets by ` A ` and ` B ` .
       (Contributed by Peter Mazsa, 11-Nov-2019.) $)
    cossss $p |- ( A C_ B -> ,~ A C_ ,~ B ) $=
      ( vx vy vz wss cv wbr wa wex copab ccoss anim12d eximdv ssopab2dv df-coss
      ssbr 3sstr4g ) ABFZCGZDGZAHZTEGZAHZIZCJZDEKTUABHZTUCBHZIZCJZDEKALBLSUFUJD
      ESUEUICSUBUGUDUHABTUAQABTUCQMNODECAPDECBPR $.
  $}

  ${
    $d A u x y $.  $d B u x y $.
    $( Equality theorem for the classes of cosets by ` A ` and ` B ` .
       (Contributed by Peter Mazsa, 9-Jan-2018.) $)
    cosseq $p |- ( A = B -> ,~ A = ,~ B ) $=
      ( vu vx vy wceq cv wbr wa wex copab ccoss anbi12d exbidv opabbidv df-coss
      breq 3eqtr4g ) ABFZCGZDGZAHZTEGZAHZIZCJZDEKTUABHZTUCBHZIZCJZDEKALBLSUFUJD
      ESUEUICSUBUGUDUHTUAABQTUCABQMNODECAPDECBPR $.
  $}

  ${
    cosseqi.1 $e |- A = B $.
    $( Equality theorem for the classes of cosets by ` A ` and ` B ` ,
       inference form.  (Contributed by Peter Mazsa, 9-Jan-2018.) $)
    cosseqi $p |- ,~ A = ,~ B $=
      ( wceq ccoss cosseq ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    cosseqd.1 $e |- ( ph -> A = B ) $.
    $( Equality theorem for the classes of cosets by ` A ` and ` B ` ,
       deduction form.  (Contributed by Peter Mazsa, 4-Nov-2019.) $)
    cosseqd $p |- ( ph -> ,~ A = ,~ B ) $=
      ( wceq ccoss cosseq syl ) ABCEBFCFEDBCGH $.
  $}

  ${
    $d A u x y $.  $d R u x y $.
    $( The class of cosets by a restriction.  (Contributed by Peter Mazsa,
       20-Apr-2019.) $)
    1cossres $p |- ,~ ( R |` A ) =
                   { <. x , y >. | E. u e. A ( u R x /\ u R y ) } $=
      ( cres ccoss cv wbr wa wex copab wrex df-coss df-rex wb cvv brresALTV elv
      wcel anandi anbi12i bitr4i exbii bitri opabbii eqtr4i ) EDFZGCHZAHZUHIZUI
      BHZUHIZJZCKZABLUIUJEIZUIULEIZJZCDMZABLABCUHNUSUOABUSUIDTZURJZCKUOURCDOVAU
      NCVAUTUPJZUTUQJZJUNUTUPUQUAUKVBUMVCUKVBPADUIUJEQRSUMVCPBDUIULEQRSUBUCUDUE
      UFUG $.
  $}

  ${
    $d A u x y $.
    $( Alternate definition of the class of coelements on the class ` A ` .
       (Contributed by Peter Mazsa, 20-Apr-2019.) $)
    dfcoels $p |- ~ A = { <. x , y >. | E. u e. A ( x e. u /\ y e. u ) } $=
      ( ccoels cep ccnv cres ccoss cv wbr wa wrex copab df-coels wb cvv brcnvep
      wcel elv 1cossres anbi12i rexbii opabbii 3eqtri ) DEFGZDHICJZAJZUFKZUGBJZ
      UFKZLZCDMZABNUHUGSZUJUGSZLZCDMZABNDOABCDUFUAUMUQABULUPCDUIUNUKUOUIUNPCUGU
      HQRTUKUOPCUGUJQRTUBUCUDUE $.
  $}

  ${
    $d A u x y $.  $d B u x y $.  $d R u x y $.  $d V u $.  $d W u $.
    $( ` A ` and ` B ` are cosets by ` R ` : a binary relation.  (Contributed
       by Peter Mazsa, 27-Dec-2018.) $)
    brcoss $p |- ( ( A e. V /\ B e. W ) ->
                   ( A ,~ R B <-> E. u ( u R A /\ u R B ) ) ) $=
      ( vx vy cv wbr wa wex ccoss wceq breq2 bi2anan9 exbidv df-coss brabga ) A
      IZGIZDJZTHIZDJZKZALTBDJZTCDJZKZALGHBCDMEFUABNZUCCNZKUEUHAUIUBUFUJUDUGUABT
      DOUCCTDOPQGHADRS $.
  $}

  ${
    $d A u $.  $d B u $.  $d R u $.  $d V u $.  $d W u $.
    $( Alternate form of the ` A ` and ` B ` are cosets by ` R ` binary
       relation.  (Contributed by Peter Mazsa, 26-Mar-2019.) $)
    brcoss2 $p |- ( ( A e. V /\ B e. W ) ->
       ( A ,~ R B <-> E. u ( A e. [ u ] R /\ B e. [ u ] R ) ) ) $=
      ( wcel wa ccoss wbr cv wex cec brcoss exan3 bitr4d ) BEGCFGHBCDIJAKZBDJQC
      DJHALBQDMZGCRGHALABCDEFNABCDEFOP $.
  $}

  ${
    $d A u $.  $d B u $.  $d R u $.  $d V u $.  $d W u $.
    $( Alternate form of the ` A ` and ` B ` are cosets by ` R ` binary
       relation.  (Contributed by Peter Mazsa, 26-Mar-2019.) $)
    brcoss3 $p |- ( ( A e. V /\ B e. W ) ->
       ( A ,~ R B <-> ( [ A ] `' R i^i [ B ] `' R ) =/= (/) ) ) $=
      ( vu wcel wa cv ccnv wbr wex cec cin c0 wne wb cvv brcnvg el2v2 bi2anan9
      ccoss exbidv ecinn0 brcoss 3bitr4rd ) ADGZBEGZHZAFIZCJZKZBUJUKKZHZFLUJACK
      ZUJBCKZHZFLAUKMBUKMNOPABCUBKUIUNUQFUGULUOUHUMUPUGULUOQFAUJDRCSTUHUMUPQFBU
      JERCSTUAUCFABUKDEUDFABCDEUEUF $.
  $}

  ${
    $d A u $.  $d B u $.  $d R u $.  $d V u $.  $d W u $.
    $( For sets, the ` A ` and ` B ` cosets by ` R ` binary relation and the
       ` B ` and ` A ` cosets by ` R ` binary relation are the same.
       (Contributed by Peter Mazsa, 27-Dec-2018.) $)
    brcosscnvcoss $p |- ( ( A e. V /\ B e. W ) ->
                          ( A ,~ R B <-> B ,~ R A ) ) $=
      ( vu wcel wa cv wbr wex ccoss wb exancom a1i brcoss ancoms 3bitr4d ) ADGZ
      BEGZHZFIZACJZUBBCJZHFKZUDUCHFKZABCLZJBAUGJZUEUFMUAUCUDFNOFABCDEPTSUHUFMFB
      ACEDPQR $.
  $}

  ${
    $d A u x y $.  $d B u x y $.  $d C u x y $.
    $( ` B ` and ` C ` are coelements : a binary relation.  (Contributed by
       Peter Mazsa, 14-Jan-2020.)  (Revised by Peter Mazsa, 5-Oct-2021.) $)
    brcoels $p |- ( ( B e. V /\ C e. W ) ->
                    ( B ~ A C <-> E. u e. A ( B e. u /\ C e. u ) ) ) $=
      ( vx vy cv wcel wa wrex ccoels wceq eleq1 bi2anan9 rexbidv dfcoels brabga
      ) GIZAIZJZHIZUAJZKZABLCUAJZDUAJZKZABLGHCDBMEFTCNZUCDNZKUEUHABUIUBUFUJUDUG
      TCUAOUCDUAOPQGHABRS $.
  $}

  ${
    $d R x y z $.  $d S x y z $.
    $( Two ways of saying that cosets by cosets by ` R ` is a subclass.
       (Contributed by Peter Mazsa, 17-Sep-2021.) $)
    cocossss $p |- ( ,~ ,~ R C_ S <->
       A. x A. y A. z ( ( x ,~ R y /\ y ,~ R z ) -> x S z ) ) $=
      ( ccoss wss cv wbr wi wal wa wrel wb relcoss wex cvv el2v bitri albii
      ssrel3 ax-mp brcoss brcosscnvcoss anbi1i exbii imbi1i 19.23v bitr4i alcom
      ) DFZFZEGZAHZCHZULIZUNUOEIZJZCKZAKZUNBHZUKIZVAUOUKIZLZUQJZCKBKZAKULMUMUTN
      UKOACULEUAUBUSVFAUSVEBKZCKVFURVGCURVDBPZUQJVGUPVHUQUPVAUNUKIZVCLZBPZVHUPV
      KNACBUNUOUKQQUCRVJVDBVIVBVCVIVBNBAVAUNDQQUDRUEUFSUGVDUQBUHUITVECBUJSTS $.
  $}

  ${
    $d R x y $.
    $( The converse of cosets by ` R ` are cosets by ` R ` .  (Contributed by
       Peter Mazsa, 3-May-2019.) $)
    cnvcosseq $p |- `' ,~ R = ,~ R $=
      ( vx vy ccoss ccnv wss wceq cv wbr wal cvv brcosscnvcoss el2v biimpi gen2
      wi wb cnvsym mpbir wrel relcoss relcnveq ax-mp mpbi ) ADZEZUEFZUFUEGZUGBH
      ZCHZUEIZUJUIUEIZPZCJBJUMBCUKULUKULQBCUIUJAKKLMNOBCUERSUETUGUHQAUAUEUBUCUD
      $.
  $}

  $( Cosets by ` ,~ R ` binary relation.  (Contributed by Peter Mazsa,
     25-Aug-2019.) $)
  br2coss $p |- ( ( A e. V /\ B e. W ) ->
      ( A ,~ ,~ R B <-> ( [ A ] ,~ R i^i [ B ] ,~ R ) =/= (/) ) ) $=
    ( wcel wa ccoss wbr ccnv cec cin c0 brcoss3 cnvcosseq eceq2i ineq12i neeq1i
    wne syl6bb ) ADFBEFGABCHZHIAUAJZKZBUBKZLZMSAUAKZBUAKZLZMSABUADENUEUHMUCUFUD
    UGUBUAACOZPUBUABUIPQRT $.

  ${
    $d A u $.  $d B u $.  $d C u $.  $d R u $.  $d V u $.  $d W u $.
    $( ` B ` and ` C ` are cosets by a restriction: a binary relation.
       (Contributed by Peter Mazsa, 30-Dec-2018.) $)
    br1cossres $p |- ( ( B e. V /\ C e. W ) ->
      ( B ,~ ( R |` A ) C <-> E. u e. A ( u R B /\ u R C ) ) ) $=
      ( wcel wa cres ccoss wbr cv wex wrex brcoss exanres bitrd ) CFHDGHICDEBJZ
      KLAMZCSLTDSLIANTCELTDELIABOACDSFGPABCDEEFGQR $.
  $}

  ${
    $d A x $.  $d B x $.  $d C x $.  $d R x $.  $d V x $.  $d W x $.
    $( ` B ` and ` C ` are cosets by a restriction: a binary relation.
       (Contributed by Peter Mazsa, 3-Jan-2018.) $)
    br1cossres2 $p |- ( ( B e. V /\ C e. W ) ->
                        ( B ,~ ( R |` A ) C <->
                          E. x e. A ( B e. [ x ] R /\ C e. [ x ] R ) ) ) $=
      ( wcel wa cres ccoss wbr cv wrex cec br1cossres exanres3 bitr4d ) CFHDGHI
      CDEBJKLAMZCELSDELIABNCSEOZHDTHIABNABCDEFGPABCDEEFGQR $.
  $}

  ${
    $d A x $.  $d B x $.  $d R x $.  $d V x $.  $d W x $.
    $( ` A ` and ` B ` are cosets by relation ` R ` : a binary relation.
       (Contributed by Peter Mazsa, 22-Apr-2021.) $)
    relbrcoss $p |- ( ( A e. V /\ B e. W ) ->
                      ( Rel R ->
        ( A ,~ R B <-> E. x e. dom R ( A e. [ x ] R /\ B e. [ x ] R ) ) ) ) $=
      ( wcel wa wrel ccoss wbr cv cec cdm wrex wb cres resdm cosseqd breqd ex
      adantl br1cossres2 adantr bitr3d ) BEGCFGHZDIZBCDJZKZBALDMZGCUJGHADNZOZPU
      FUGHBCDUKQZJZKZUIULUGUOUIPUFUGUNUHBCUGUMDDRSTUBUFUOULPUGAUKBCDEFUCUDUEUA
      $.
  $}

  ${
    $d A u $.  $d B u $.  $d C u $.  $d R u $.  $d S u $.  $d V u $.  $d W u $.
    $( ` B ` and ` C ` are cosets by an intersection with a restriction: a
       binary relation.  (Contributed by Peter Mazsa, 31-Dec-2021.) $)
    br1cossinres $p |- ( ( B e. V /\ C e. W ) ->
        ( B ,~ ( R i^i ( S |` A ) ) C <->
          E. u e. A ( ( u S B /\ u R B ) /\ ( u S C /\ u R C ) ) ) ) $=
      ( cres cin ccoss wbr wcel wa cv wrex inres cosseqi breqi brin br1cossres
      anbi12i an2anr bitri rexbii syl6bb syl5bb ) CDEFBIJZKZLCDEFJZBIZKZLZCGMDH
      MNZAOZCFLZUOCELZNUODFLZUODELZNNZABPZCDUIULUHUKEFBQRSUNUMUOCUJLZUODUJLZNZA
      BPVAABCDUJGHUAVDUTABVDUQUPNZUSURNZNUTVBVEVCVFUOCEFTUODEFTUBUQUPUSURUCUDUE
      UFUG $.
  $}

  ${
    $d A u $.  $d B u $.  $d C u $.  $d D u $.  $d E u $.  $d R u $.  $d S u $.
    $d V u $.  $d W u $.  $d X u $.  $d Y u $.
    $( ` <. B , C >. ` and ` <. D , E >. ` are cosets by an intersection with a
       restriction: a binary relation.  (Contributed by Peter Mazsa,
       8-Jun-2021.) $)
    br1cossxrnres $p |-
      ( ( ( B e. V /\ C e. W ) /\ ( D e. X /\ E e. Y ) ) ->
        ( <. B , C >. ,~ ( R |X. ( S |` A ) ) <. D , E >. <->
          E. u e. A ( ( u S C /\ u R B ) /\ ( u S E /\ u R D ) ) ) ) $=
      ( cop cres cxrn wbr wcel wa cvv wb ccoss cv wrex xrnres2 breqi br1cossres
      cosseqi mp2an brxrn el3v1 bi2anan9 an2anr syl6bb rexbidv syl5bb syl5bbr
      opex ) CDMZEHMZFGBNOZUAZPURUSFGOZBNZUAZPZCIQZDJQZRZEKQZHLQZRZRZAUBZDGPZVM
      CFPZRVMHGPZVMEFPZRRZABUCZURUSVDVAVCUTBFGUDUGUEVEVMURVBPZVMUSVBPZRZABUCZVL
      VSURSQUSSQVEWCTCDUQEHUQABURUSVBSSUFUHVLWBVRABVLWBVOVNRZVQVPRZRVRVHVTWDVKW
      AWEVFVGVTWDTAVMCDFGSIJUIUJVIVJWAWETAVMEHFGSKLUIUJUKVOVNVQVPULUMUNUOUP $.
  $}

  ${
    $d A u $.  $d B u $.  $d C u $.  $d R u $.  $d V u $.  $d W u $.
    $( ` B ` and ` C ` are cosets by an intersection with the restricted
       identity class: a binary relation.  (Contributed by Peter Mazsa,
       31-Dec-2021.) $)
    br1cossinidres $p |- ( ( B e. V /\ C e. W ) ->
        ( B ,~ ( R i^i ( _I |` A ) ) C <->
          E. u e. A ( ( u = B /\ u R B ) /\ ( u = C /\ u R C ) ) ) ) $=
      ( wcel wa cid cres cin wbr wrex wceq wb cvv ideq2 elv anbi1i br1cossinres
      ccoss cv anbi12i rexbii syl6bb ) CFHDGHICDEJBKLUBMAUCZCJMZUGCEMZIZUGDJMZU
      GDEMZIZIZABNUGCOZUIIZUGDOZULIZIZABNABCDEJFGUAUNUSABUJUPUMURUHUOUIUHUOPAUG
      CQRSTUKUQULUKUQPAUGDQRSTUDUEUF $.
  $}

  ${
    $d A u $.  $d B u $.  $d C u $.  $d R u $.  $d V u $.  $d W u $.
    $( ` B ` and ` C ` are cosets by an intersection with the restricted
       converse epsilon class: a binary relation.  (Contributed by Peter Mazsa,
       31-Dec-2021.) $)
    br1cossincnvepres $p |- ( ( B e. V /\ C e. W ) ->
        ( B ,~ ( R i^i ( `' _E |` A ) ) C <->
          E. u e. A ( ( B e. u /\ u R B ) /\ ( C e. u /\ u R C ) ) ) ) $=
      ( wcel wa cep ccnv cres cin wbr wrex wb cvv brcnvep elv anbi1i cv anbi12i
      ccoss br1cossinres rexbii syl6bb ) CFHDGHICDEJKZBLMUCNAUAZCUGNZUHCENZIZUH
      DUGNZUHDENZIZIZABOCUHHZUJIZDUHHZUMIZIZABOABCDEUGFGUDUOUTABUKUQUNUSUIUPUJU
      IUPPAUHCQRSTULURUMULURPAUHDQRSTUBUEUF $.
  $}

  ${
    $d A u $.  $d B u $.  $d C u $.  $d D u $.  $d E u $.  $d R u $.  $d V u $.
    $d W u $.  $d X u $.  $d Y u $.
    $( ` <. B , C >. ` and ` <. D , E >. ` are cosets by a range Cartesian
       product with the restricted identity class: a binary relation.
       (Contributed by Peter Mazsa, 8-Jun-2021.) $)
    br1cossxrnidres $p |-
        ( ( ( B e. V /\ C e. W ) /\ ( D e. X /\ E e. Y ) ) ->
          ( <. B , C >. ,~ ( R |X. ( _I |` A ) ) <. D , E >. <->
            E. u e. A ( ( u = C /\ u R B ) /\ ( u = E /\ u R D ) ) ) ) $=
      ( wcel wa cop cid wbr wrex wceq wb cvv cres ccoss br1cossxrnres ideq2 elv
      cxrn cv anbi1i anbi12i rexbii syl6bb ) CHLDILMEJLGKLMMCDNEGNFOBUAUFUBPAUG
      ZDOPZULCFPZMZULGOPZULEFPZMZMZABQULDRZUNMZULGRZUQMZMZABQABCDEFOGHIJKUCUSVD
      ABUOVAURVCUMUTUNUMUTSAULDTUDUEUHUPVBUQUPVBSAULGTUDUEUHUIUJUK $.
  $}

  ${
    $d A u $.  $d B u $.  $d C u $.  $d D u $.  $d E u $.  $d R u $.  $d V u $.
    $d W u $.  $d X u $.  $d Y u $.
    $( ` <. B , C >. ` and ` <. D , E >. ` are cosets by a range Cartesian
       product with the restricted converse epsilon class: a binary relation.
       (Contributed by Peter Mazsa, 12-May-2021.) $)
    br1cossxrncnvepres $p |-
      ( ( ( B e. V /\ C e. W ) /\ ( D e. X /\ E e. Y ) ) ->
        ( <. B , C >. ,~ ( R |X. ( `' _E |` A ) ) <. D , E >. <->
          E. u e. A ( ( C e. u /\ u R B ) /\ ( E e. u /\ u R D ) ) ) ) $=
      ( wcel wa cop wbr wrex wb cvv brcnvep elv ccnv cres cxrn cv br1cossxrnres
      cep ccoss anbi1i anbi12i rexbii syl6bb ) CHLDILMEJLGKLMMCDNEGNFUFUAZBUBUC
      UGOAUDZDULOZUMCFOZMZUMGULOZUMEFOZMZMZABPDUMLZUOMZGUMLZURMZMZABPABCDEFULGH
      IJKUEUTVEABUPVBUSVDUNVAUOUNVAQAUMDRSTUHUQVCURUQVCQAUMGRSTUHUIUJUK $.
  $}

  $( The domain of cosets is the domain of converse.  (Contributed by Peter
     Mazsa, 4-Jan-2019.) $)
  dmcoss3 $p |- dom ,~ R = dom `' R $=
    ( ccoss cdm ccnv ccom dfcoss3 dmeqi crn wss wceq rncnv dmcosseq ax-mp eqtri
    eqimssi ) ABZCAADZEZCZQCZPRAFGQHZACZISTJUAUBAKOAQLMN $.

  $( The domain of cosets is the range.  (Contributed by Peter Mazsa,
     27-Dec-2018.) $)
  dmcoss2 $p |- dom ,~ R = ran R $=
    ( ccoss cdm ccnv crn dmcoss3 df-rn eqtr4i ) ABCADCAEAFAGH $.

  ${
    $d R x y $.
    $( The range of cosets is the domain of them (this should be ~ rncoss but
       there exists a theorem with this name already).  (Contributed by Peter
       Mazsa, 12-Dec-2019.) $)
    rncossdmcoss $p |- ran ,~ R = dom ,~ R $=
      ( vy vx cv ccoss wbr wex cab crn cdm brcosscnvcoss el2v exbii abbii dfrn2
      wb cvv df-dm 3eqtr4i ) BDZCDZAEZFZBGZCHUATUBFZBGZCHUBIUBJUDUFCUCUEBUCUEPB
      CTUAAQQKLMNBCUBOCBUBRS $.
  $}

  $( The domain of cosets of the restricted converse epsilon relation is the
     union of the restriction.  (Contributed by Peter Mazsa, 18-May-2019.)
     (Revised by Peter Mazsa, 26-Sep-2021.) $)
  dm1cosscnvepres $p |- dom ,~ ( `' _E |` A ) = U. A $=
    ( cep ccnv cres ccoss cdm crn cuni dmcoss2 rncnvepres eqtri ) BCADZEFLGAHLI
    AJK $.

  $( The domain of coelements in ` A ` is the union of ` A ` .  (Contributed by
     Rodolfo Medina, 14-Oct-2010.)  (Revised by Peter Mazsa, 5-Apr-2018.)
     (Revised by Peter Mazsa, 26-Sep-2021.) $)
  dmcoels $p |- dom ~ A = U. A $=
    ( ccoels cdm cep ccnv cres ccoss cuni df-coels dmeqi dm1cosscnvepres eqtri
    ) ABZCDEAFGZCAHMNAIJAKL $.

  ${
    $d A u $.  $d R u $.  $d V u $.
    $( Elementhood in the domain of cosets.  (Contributed by Peter Mazsa,
       29-Mar-2019.) $)
    eldmcoss $p |- ( A e. V -> ( A e. dom ,~ R <-> E. u u R A ) ) $=
      ( ccoss cdm wcel ccnv cv wbr wex dmcoss3 eleq2i eldmcnv syl5bb ) BCEFZGBC
      HFZGBDGAIBCJAKPQBCLMABCDNO $.
  $}

  ${
    $d A u $.  $d R u $.  $d V u $.
    $( Elementhood in the domain of cosets.  (Contributed by Peter Mazsa,
       28-Dec-2018.) $)
    eldmcoss2 $p |- ( A e. V -> ( A e. dom ,~ R <-> A ,~ R A ) ) $=
      ( vu wcel ccoss cdm cv wbr wex eldmcoss wa wb brcoss anidms exbii syl6bbr
      pm4.24 bitr4d ) ACEZABFZGEDHABIZDJZAAUAIZDABCKTUDUBUBLZDJZUCTUDUFMDAABCCN
      OUBUEDUBRPQS $.
  $}

  ${
    $d A u $.  $d B u $.  $d R u $.  $d V u $.
    $( Elementhood in the domain of restricted cosets.  (Contributed by Peter
       Mazsa, 30-Dec-2018.) $)
    eldm1cossres $p |- ( B e. V ->
                         ( B e. dom ,~ ( R |` A ) <-> E. u e. A u R B ) ) $=
      ( wcel cres ccoss cdm cv wbr wa wex wrex eldmcoss brresALTV exbidv df-rex
      bitrd syl6bbr ) CEFZCDBGZHIFZAJZBFUDCDKZLZAMZUEABNUAUCUDCUBKZAMUGACUBEOUA
      UHUFABUDCDEPQSUEABRT $.
  $}

  ${
    $d A x $.  $d B x $.  $d R x $.  $d V x $.
    $( Elementhood in the domain of restricted cosets.  (Contributed by Peter
       Mazsa, 30-Dec-2018.) $)
    eldm1cossres2 $p |- ( B e. V ->
        ( B e. dom ,~ ( R |` A ) <-> E. x e. A B e. [ x ] R ) ) $=
      ( wcel cres ccoss cdm cv wbr wrex cec eldm1cossres elecALTV el2v1 rexbidv
      wb cvv bitr4d ) CEFZCDBGHIFAJZCDKZABLCUBDMFZABLABCDENUAUDUCABUAUDUCRAUBCD
      SEOPQT $.
  $}

  $( Lemma for the left side of the ~ refrelcoss3 reflexivity theorem.
     (Contributed by Peter Mazsa, 1-Apr-2019.) $)
  refrelcosslem $p |- A. x e. dom ,~ R x ,~ R x $=
    ( cv ccoss cdm wcel wral wbr ralel wb cvv eldmcoss2 elv ralbii mpbi ) ACZBD
    ZEZFZARGPPQHZARGARISTARSTJAPBKLMNO $.

  ${
    $d R x y $.
    $( The class of cosets by ` R ` is reflexive, cf ~~? dfrefrel3 .
       (Contributed by Peter Mazsa, 30-Jul-2019.) $)
    refrelcoss3 $p |-
        ( A. x e. dom ,~ R A. y e. ran ,~ R ( x = y -> x ,~ R y ) /\
          Rel ,~ R ) $=
      ( cv wceq ccoss wbr crn wral cdm refrelcosslem idinxpssinxp4 rncossdmcoss
      wi wrel mpbir raleqi ralbii relcoss pm3.2i ) ADZBDZEUAUBCFZGNZBUCHZIZAUCJ
      ZIZUCOUHUDBUGIZAUGIZUJUAUAUCGAUGIACKABUGUCLPUFUIAUGUDBUEUGCMQRPCST $.
  $}

  ${
    $d R x y $.
    $( The class of cosets by ` R ` is reflexive, cf ~~? dfrefrel2 .
       (Contributed by Peter Mazsa, 30-Jul-2019.) $)
    refrelcoss2 $p |- ( ( _I i^i ( dom ,~ R X. ran ,~ R ) ) C_ ,~ R /\
                        Rel ,~ R ) $=
      ( vx vy cid ccoss cdm crn cxp cin wss wrel wa cv wceq wi wral refrelcoss3
      wbr idinxpss anbi1i mpbir ) DAEZFZUBGZHIUBJZUBKZLBMZCMZNUGUHUBROCUDPBUCPZ
      UFLBCAQUEUIUFBCUCUDUBSTUA $.
  $}

  $( The class of cosets by ` R ` is symmetric, cf ~~? dfsymrel3 .
     (Contributed by Peter Mazsa, 28-Mar-2019.)  (Revised by Peter Mazsa,
     17-Sep-2021.) $)
  symrelcoss3 $p |- ( A. x A. y ( x ,~ R y -> y ,~ R x ) /\ Rel ,~ R ) $=
    ( cv ccoss wbr wi wal wrel wb brcosscnvcoss el2v biimpi gen2 relcoss pm3.2i
    cvv ) ADZBDZCEZFZSRTFZGZBHAHTIUCABUAUBUAUBJABRSCQQKLMNCOP $.

  ${
    $d R x y $.
    $( The class of cosets by ` R ` is symmetric, cf ~~? dfsymrel2 .
       (Contributed by Peter Mazsa, 27-Dec-2018.) $)
    symrelcoss2 $p |- ( `' ,~ R C_ ,~ R /\ Rel ,~ R ) $=
      ( vx vy ccoss ccnv wss wrel wa cv wbr wal symrelcoss3 cnvsym anbi1i mpbir
      wi ) ADZEQFZQGZHBIZCIZQJUATQJPCKBKZSHBCALRUBSBCQMNO $.
  $}

  $( Equivalent expressions for the class of cosets by ` R ` to be a subset of
     the identity class.  (Contributed by Peter Mazsa, 27-Jul-2021.) $)
  cossssid $p |- ( ,~ R C_ _I <->
                   ,~ R C_ ( _I i^i ( dom ,~ R X. ran ,~ R ) ) ) $=
    ( ccoss cid wss cdm crn cxp wceq iss2 wrel refrelcoss2 simpli eqss mpbiran2
    cin bitri ) ABZCDQCQEQFGOZHZQRDZQISTRQDZUAQJAKLQRMNP $.

  ${
    $d R u x y $.
    $( Equivalent expressions for the class of cosets by ` R ` to be a subset
       of the identity class.  (Contributed by Peter Mazsa, 10-Mar-2019.) $)
    cossssid2 $p |- ( ,~ R C_ _I <->
                      A. x A. y ( E. u ( u R x /\ u R y ) -> x = y ) ) $=
      ( ccoss cid wss cv wceq copab wbr wa wex wi dfid3 sseq2i df-coss ssopab2b
      wal sseq1i 3bitri ) DEZFGUBAHZBHZIZABJZGCHZUCDKUGUDDKLCMZABJZUFGUHUENBSAS
      FUFUBABOPUBUIUFABCDQTUHUEABRUA $.
  $}

  ${
    $d R u x y $.
    $( Equivalent expressions for the class of cosets by ` R ` to be a subset
       of the identity class.  (Contributed by Peter Mazsa, 10-Mar-2019.) $)
    cossssid3 $p |- ( ,~ R C_ _I <->
                      A. u A. x A. y ( ( u R x /\ u R y ) -> x = y ) ) $=
      ( ccoss cid wss cv wbr wa wex wceq wi cossssid2 19.23v albii alcom bitr3i
      wal 3bitri ) DEFGCHZAHZDIUABHZDIJZCKUBUCLZMZBSZASUDUEMZBSZCSZASUIASCSABCD
      NUGUJAUGUHCSZBSUJUKUFBUDUECOPUHBCQRPUIACQT $.
  $}

  ${
    $d R u x y $.
    $( Equivalent expressions for the class of cosets by ` R ` to be a subset
       of the identity class.  (Contributed by Peter Mazsa, 31-Aug-2021.) $)
    cossssid4 $p |- ( ,~ R C_ _I <-> A. u E* x u R x ) $=
      ( vy ccoss cid wss cv wbr wa wceq wi wal wmo cossssid3 breq2 albii bitr4i
      mo4 ) CEFGBHZAHZCIZTDHZCIZJUAUCKLDMAMZBMUBANZBMADBCOUFUEBUBUDADUAUCTCPSQR
      $.
  $}

  ${
    $d R u x y $.
    $( Equivalent expressions for the class of cosets by ` R ` to be a subset
       of the identity class.  (Contributed by Peter Mazsa, 5-Sep-2021.) $)
    cossssid5 $p |- ( ,~ R C_ _I <->
                      A. x e. ran R A. y e. ran R
                        ( x = y \/ ( [ x ] `' R i^i [ y ] `' R ) = (/) ) ) $=
      ( vu ccoss cid wss cv wbr wmo wal wceq ccnv cec cin c0 crn wral cossssid4
      wo ineccnvmo2 bitr4i ) CEFGDHAHZCIAJDKUCBHZLUCCMZNUDUENOPLTBCQZRAUFRADCSA
      BDCUAUB $.
  $}

  ${
    $d A x $.  $d B x $.  $d R x $.  $d V x $.  $d W x $.
    $( ` A ` and ` B ` are cosets by converse ` R ` : a binary relation.
       (Contributed by Peter Mazsa, 23-Jan-2019.) $)
    brcosscnv $p |- ( ( A e. V /\ B e. W ) ->
                      ( A ,~ `' R B <-> E. x ( A R x /\ B R x ) ) ) $=
      ( wcel wa ccnv ccoss wbr cv wex brcoss cvv brcnvg el2v1 bi2anan9 exbidv
      wb bitrd ) BEGZCFGZHZBCDIZJKALZBUEKZUFCUEKZHZAMBUFDKZCUFDKZHZAMABCUEEFNUD
      UIULAUBUGUJUCUHUKUBUGUJTAUFBOEDPQUCUHUKTAUFCOFDPQRSUA $.
  $}

  ${
    $d A x $.  $d B x $.  $d R x $.  $d V x $.  $d W x $.
    $( ` A ` and ` B ` are cosets by converse ` R ` : a binary relation.
       (Contributed by Peter Mazsa, 12-Mar-2019.) $)
    brcosscnv2 $p |- ( ( A e. V /\ B e. W ) ->
       ( A ,~ `' R B <-> ( [ A ] R i^i [ B ] R ) =/= (/) ) ) $=
      ( vx wcel wa ccnv ccoss wbr cv wex cec cin c0 wne brcosscnv ecinn0 bitr4d
      ) ADGBEGHABCIJKAFLZCKBUACKHFMACNBCNOPQFABCDERFABCDEST $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d R x y $.  $d S x y $.  $d V x y $.
    $d W x y $.
    $( ` A ` and ` B ` are cosets by the converse range Cartesian product: a
       binary relation.  (Contributed by Peter Mazsa, 19-Apr-2020.)  (Revised
       by Peter Mazsa, 21-Sep-2021.) $)
    br1cosscnvxrn $p |- ( ( A e. V /\ B e. W ) ->
       ( A ,~ `' ( R |X. S ) B <-> ( A ,~ `' R B /\ A ,~ `' S B ) ) ) $=
      ( vx vy wcel wa cec cin c0 wne cv wbr wex ccnv ccoss copab cxrn ineqan12d
      ecxrn inopab syl6eq an4 opabbii neeq1d opabn0 syl6bb brcosscnv2 brcosscnv
      eeanv bitri anbi12d 3bitr4d ) AEIZBFIZJZACDUAZKZBUTKZLZMNZAGOZCPZBVECPZJZ
      GQZAHOZDPZBVJDPZJZHQZJZABUTRSPABCRSPZABDRSPZJUSVDVHVMJZGHTZMNZVOUSVCVSMUS
      VCVFVKJZVGVLJZJZGHTZVSUSVCWAGHTZWBGHTZLWDUQURVAWEVBWFGHACDEUCGHBCDFUCUBWA
      WBGHUDUEWCVRGHVFVKVGVLUFUGUEUHVTVRHQGQVOVRGHUIVHVMGHUMUNUJABUTEFUKUSVPVIV
      QVNGABCEFULHABDEFULUOUP $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( Cosets by the converse range Cartesian product.  (Contributed by Peter
       Mazsa, 19-Apr-2020.)  (Revised by Peter Mazsa, 21-Sep-2021.) $)
    1cosscnvxrn $p |- ,~ `' ( A |X. B ) = ( ,~ `' A i^i ,~ `' B ) $=
      ( vx vy cv cxrn ccnv ccoss wbr copab cin wa wb br1cosscnvxrn wrel relcoss
      cvv wceq dfrel4v mpbi el2v opabbii inopab eqtr4i ineq12i 3eqtr4i ) CEZDEZ
      ABFGZHZIZCDJZUGUHAGZHZIZCDJZUGUHBGZHZIZCDJZKZUJUNURKULUOUSLZCDJVAUKVBCDUK
      VBMCDUGUHABQQNUAUBUOUSCDUCUDUJOUJULRUIPCDUJSTUNUPURUTUNOUNUPRUMPCDUNSTURO
      URUTRUQPCDURSTUEUF $.
  $}

  ${
    $d R u v x $.
    $( Equivalent expressions for the class of cosets by the converse of ` R `
       to be a subset of the identity class.  (Contributed by Peter Mazsa,
       28-Jul-2021.) $)
    cosscnvssid3 $p |- ( ,~ `' R C_ _I <->
                         A. u A. v A. x ( ( u R x /\ v R x ) -> u = v ) ) $=
      ( ccnv ccoss cid wss cv wbr wa wceq wi wal cossssid3 alrot3 wb cvv brcnvg
      el2v anbi12i imbi1i 3albii 3bitri ) DEZFGHAIZCIZUEJZUFBIZUEJZKZUGUILZMZBN
      CNANUMANBNCNUGUFDJZUIUFDJZKZULMZANBNCNCBAUEOUMACBPUMUQCBAUKUPULUHUNUJUOUH
      UNQACUFUGRRDSTUJUOQABUFUIRRDSTUAUBUCUD $.
  $}

  ${
    $d R u x $.
    $( Equivalent expressions for the class of cosets by the converse of ` R `
       to be a subset of the identity class.  (Contributed by Peter Mazsa,
       31-Aug-2021.) $)
    cosscnvssid4 $p |- ( ,~ `' R C_ _I <-> A. x E* u u R x ) $=
      ( ccnv ccoss cid wss cv wbr wmo wal cossssid4 cvv brcnvg el2v mobii albii
      wb bitri ) CDZEFGAHZBHZTIZBJZAKUBUACIZBJZAKBATLUDUFAUCUEBUCUERABUAUBMMCNO
      PQS $.
  $}

  ${
    $d R u v x $.
    $( Equivalent expressions for the class of cosets by the converse of the
       relation ` R ` to be a subset of the identity class.  (Contributed by
       Peter Mazsa, 5-Sep-2021.) $)
    cosscnvssid5 $p |- ( ( ,~ `' R C_ _I /\ Rel R ) <->
       ( A. u e. dom R A. v e. dom R
           ( u = v \/ ( [ u ] R i^i [ v ] R ) = (/) ) /\
         Rel R ) ) $=
      ( vx ccnv ccoss cid wss wrel wa cv wbr wmo wal wceq cec cin c0 wo wral
      cdm cosscnvssid4 anbi1i inecmo3 bitr4i ) CEFGHZCIZJBKZDKCLBMDNZUGJUHAKZOU
      HCPUJCPQROSACUAZTBUKTUGJUFUIUGDBCUBUCDABCUDUE $.
  $}

  ${
    $d x y z $.
    $( Cosets by the empty set are the empty set.  (Contributed by Peter Mazsa,
       22-Oct-2019.) $)
    coss0 $p |- ,~ (/) = (/) $=
      ( vy vx vz c0 ccoss cv cec wcel wa wex copab dfcoss2 eleq2i anbi12i exbii
      ec0 19.9v bitri opabbii cvv cpr wss wne prnzg elv ss0b nemtbir prssg el2v
      wb mtbir opabf 3eqtri ) DEAFZBFZDGZHZCFZUPHZIZBJZACKUNDHZURDHZIZACKDACBDL
      VAVDACVAVDBJVDUTVDBUQVBUSVCUPDUNUOPZMUPDURVEMNOVDBQRSVDACVDUNURUAZDUBZVGV
      FDVFDUCAUNURTUDUEVFUFUGVDVGUJACUNURDTTUHUIUKULUM $.
  $}

  ${
    $d x y z $.
    $( Cosets by the identity relation are the identity relation.  (Contributed
       by Peter Mazsa, 16-Jan-2019.) $)
    cossid $p |- ,~ _I = _I $=
      ( vy vz vx cv copab cid wbr wa wex ccoss equvinv wb cvv ideqg elv anbi12i
      wceq exbii bitr4i opabbii dfid3 df-coss 3eqtr4ri ) ADZBDZQZABECDZUDFGZUGU
      EFGZHZCIZABEFFJUFUKABUFUGUDQZUGUEQZHZCIUKABCKUJUNCUHULUIUMUHULLAUGUDMNOUI
      UMLBUGUEMNOPRSTABUAABCFUBUC $.
  $}

  $( Cosets by the converse identity relation are the identity relation.
     (Contributed by Peter Mazsa, 27-Sep-2021.) $)
  cosscnvid $p |- ,~ `' _I = _I $=
    ( cid ccnv ccoss cnvi cosseqi cossid eqtri ) ABZCACAHADEFG $.

  ${
    $d R u x $.  $d R u z $.  $d u x y $.  $d y z $.
    $( Sufficient condition for the transitivity of cosets by ` R ` .
       (Contributed by Peter Mazsa, 26-Dec-2018.) $)
    trcoss $p |- ( A. y E* u u R y ->
       A. x A. y A. z ( ( x ,~ R y /\ y ,~ R z ) -> x ,~ R z ) ) $=
      ( cv wbr wmo wal ccoss wa wi wex moantr cvv brcoss el2v anbi12i alrimiv
      wb 3imtr4g alimi ) DFZBFZEGZDHZBIAFZUDEJZGZUDCFZUHGZKZUGUJUHGZLZCIZBIAUFU
      OBUFUNCUFUCUGEGZUEKDMZUEUCUJEGZKDMZKUPURKDMZULUMUPUEURDNUIUQUKUSUIUQTABDU
      GUDEOOPQUKUSTBCDUDUJEOOPQRUMUTTACDUGUJEOOPQUASUBS $.
  $}

  $( Two ways of saying that the coset of ` A ` and the coset of ` C ` have the
     common element ` B ` .  (Contributed by Peter Mazsa, 15-Oct-2021.) $)
  eleccossin $p |- ( ( B e. V /\ C e. W ) ->
      ( B e. ( [ A ] ,~ R i^i [ C ] ,~ R ) <-> ( A ,~ R B /\ B ,~ R C ) ) ) $=
    ( wcel wa ccoss wbr cec cin brcosscnvcoss anbi2d elin wrel wb relcoss ax-mp
    relelec anbi12i bitri syl6rbbr ) BEGCFGHZABDIZJZBCUEJZHUFCBUEJZHZBAUEKZCUEK
    ZLGZUDUGUHUFBCDEFMNULBUJGZBUKGZHUIBUJUKOUMUFUNUHUEPZUMUFQDRZBAUETSUOUNUHQUP
    BCUETSUAUBUC $.

  ${
    $d R y $.  $d x y $.  $d y z $.
    $( Equivalent expressions for the transitivity of cosets by ` R ` .
       (Contributed by Peter Mazsa, 4-Jul-2020.)  (Revised by Peter Mazsa,
       16-Oct-2021.) $)
    trcoss2 $p |-
       ( A. x A. y A. z ( ( x ,~ R y /\ y ,~ R z ) -> x ,~ R z ) <->
         A. x A. z
           ( ( [ x ] ,~ R i^i [ z ] ,~ R ) =/= (/) ->
             ( [ x ] `' R i^i [ z ] `' R ) =/= (/) ) ) $=
      ( cv ccoss wbr wa wi wal cec cin c0 wne ccnv alcom albii wb cvv el2v wcel
      wex 19.23v eleccossin bicomi brcoss3 imbi12i imbi1i 3bitr4i 2albii bitri
      n0 ) AEZBEZDFZGUNCEZUOGHZUMUPUOGZIZCJBJZAJUSBJZCJZAJUMUOKUPUOKLZMNZUMDOZK
      UPVEKLMNZIZCJAJUTVBAUSBCPQVAVGACUNVCUAZVFIZBJVHBUBZVFIVAVGVHVFBUCUSVIBUQV
      HURVFVHUQVHUQRBCUMUNUPDSSUDTUEURVFRACUMUPDSSUFTUGQVDVJVFBVCULUHUIUJUK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                Relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Define the relations class.  Proper class relations (like ` _I ` , cf.
     ~ reli ) are not elements of it.  The element of this class and the
     relation predicate are the same when ` R ` is a set (cf. ~ elrelsrel ).

     The class of relations is a great tool we can use when we define classes
     of different relations as nullary class constants as required by the 2.
     point in our Guidelines ~ http://us.metamath.org/mpeuni/mathbox.html .
     When we want to define a specific class of relations as a nullary class
     constant, the appropriate method is the following:

     1.  We define the specific nullary class constant for general sets (cf.
     e.g. ~~? df-refs ), then

     2. we get the required class of relations by the intersection of the class
     of general sets above with the class of relations ~ df-rels (cf. ~~?
     df-refrels and the resulting ~~? dfrefrels2 and ~~? dfrefrels3 ).

     3.  Finally, in order to be able to work with proper classes (like
     ~ iprc ) as well, we define the predicate of the relation (cf. ~~?
     df-refrel ) so that it is true for the relevant proper classes (cf. ~~?
     refrelid ), and that the element of the class of the required relations
     (e.g. ~~? elrefrels3 ) and this predicate are the same in case of sets
     (cf. ~~? elrefrelsrel ).  (Contributed by Peter Mazsa, 13-Jun-2018.) $)
  df-rels $a |- Rels = ~P ( _V X. _V ) $.

  $( The element of the relations class ( ~ df-rels ) and the relation
     predicate ( ~ df-rel ) are the same when ` R ` is a set.  (Contributed by
     Peter Mazsa, 14-Jun-2018.) $)
  elrels2 $p |- ( R e. V -> ( R e. Rels <-> R C_ ( _V X. _V ) ) ) $=
    ( crels wcel cvv cxp cpw wss df-rels eleq2i elpwg syl5bb ) ACDAEEFZGZDABDAM
    HCNAIJAMBKL $.

  $( The element of the relations class ( ~ df-rels ) and the relation
     predicate are the same when ` R ` is a set.  (Contributed by Peter Mazsa,
     24-Nov-2018.) $)
  elrelsrel $p |- ( R e. V -> ( R e. Rels <-> Rel R ) ) $=
    ( wcel crels cvv cxp wss wrel elrels2 df-rel syl6bbr ) ABCADCAEEFGAHABIAJK
    $.

  $( The element of the relations class is a relation.  (Contributed by Peter
     Mazsa, 20-Jul-2019.) $)
  elrelsrelim $p |- ( R e. Rels -> Rel R ) $=
    ( crels wcel wrel elrelsrel ibi ) ABCADABEF $.

  $( Equivalent expressions for an element of the relations class.
     (Contributed by Peter Mazsa, 21-Jul-2021.) $)
  elrels5 $p  |- ( R e. V -> ( R e. Rels <-> ( R |` dom R ) = R ) ) $=
    ( wcel crels wrel cdm cres wceq elrelsrel dfrel5 syl6bb ) ABCADCAEAAFGAHABI
    AJK $.

  $( Equivalent expressions for an element of the relations class.
     (Contributed by Peter Mazsa, 21-Jul-2021.) $)
  elrels6 $p |- ( R e. V ->
                  ( R e. Rels <-> ( R i^i ( dom R X. ran R ) ) = R ) ) $=
    ( wcel crels wrel cdm crn cxp cin wceq elrelsrel dfrel6 syl6bb ) ABCADCAEAA
    FAGHIAJABKALM $.

  ${
    $d R x y $.
    $( Two ways of saying a relation is symmetric.  (Contributed by Peter
       Mazsa, 22-Aug-2021.) $)
    elrelscnveq3 $p |- ( R e. Rels ->
                         ( R = `' R <-> A. x A. y ( x R y -> y R x ) ) ) $=
      ( ccnv wceq wss wa crels wcel cv wbr wi wal eqss cnvsym biimpi a1d adantl
      com12 wrel elrelsrelim dfrel2 sylib cnvss sseq1 syl5ibcom syl5com biimpri
      sylbir jca2 impbid syl5bb ) CCDZECUMFZUMCFZGZCHIZAJZBJZCKUSURCKLBMAMZCUMN
      UQUPUTUPUQUTUOUQUTLUNUOUTUQUOUTABCOZPQRSUQUTUNUOUQUMDZCEZUTUNUQCTVCCUACUB
      UCUTUOVCUNLVAUOVBUMFVCUNUMCUDVBCUMUEUFUIUGUOUTVAUHUJUKUL $.
  $}

  ${
    $d R x y $.
    $( Two ways of saying a relation is symmetric.  (Contributed by Peter
       Mazsa, 22-Aug-2021.) $)
    elrelscnveq $p |- ( R e. Rels -> ( `' R C_ R <-> `' R = R ) ) $=
      ( vx vy ccnv wceq crels wcel wss eqcom cv wbr wi wal elrelscnveq3 syl6bbr
      cnvsym syl5rbbr ) ADZAEAREZAFGZRAHZARITSBJZCJZAKUCUBAKLCMBMUABCANBCAPOQ
      $.
  $}

  ${
    $d R x y $.
    $( Two ways of saying a relation is symmetric.  (Contributed by Peter
       Mazsa, 22-Aug-2021.) $)
    elrelscnveq2 $p |- ( R e. Rels ->
                         ( `' R = R <-> A. x A. y ( x R y <-> y R x ) ) ) $=
      ( crels wcel ccnv wss wa cv wbr wal wceq cnvsym a1i elrelsrelim relbrcnvg
      wi wb wrel syl dfrel2 sylib sseq1d syl5rbbr imbi12d 2albidv bitrd anbi12d
      eqss 2albiim 3bitr4g ) CDEZCFZCGZCUMGZHAIZBIZCJZUQUPCJZQBKAKZUSURQZBKAKZH
      UMCLURUSRBKAKULUNUTUOVBUNUTRULABCMNULUOUPUQUMJZUQUPUMJZQZBKAKZVBVFUMFZUMG
      ULUOABUMMULVGCUMULCSZVGCLCOZCUAUBUCUDULVEVAABULVCUSVDURULVHVCUSRVIUPUQCPT
      ULVHVDURRVIUQUPCPTUEUFUGUHUMCUIURUSABUJUK $.
  $}

  ${
    $d R x y $.
    $( Two ways of saying a relation is symmetric.  (Contributed by Peter
       Mazsa, 22-Aug-2021.) $)
    elrelscnveq4 $p |- ( R e. Rels ->
                         ( `' R C_ R <-> A. x A. y ( x R y <-> y R x ) ) ) $=
      ( crels wcel ccnv wss wceq cv wbr wb wal elrelscnveq elrelscnveq2 bitrd )
      CDECFZCGPCHAIZBIZCJRQCJKBLALCMABCNO $.
  $}

  $( The converse of a set is an element of the class of relations.
     (Contributed by Peter Mazsa, 18-Aug-2019.) $)
  cnvelrels $p |- ( A e. V -> `' A e. Rels ) $=
    ( wcel ccnv crels wrel relcnv cvv wb cnvexg elrelsrel syl mpbiri ) ABCZADZE
    CZOFZAGNOHCPQIABJOHKLM $.

  $( Cosets of sets are elements of the relations class.  Implies
     ` |- ( R e. Rels -> ,~ R e. Rels ) ` .  (Contributed by Peter Mazsa,
     25-Aug-2021.) $)
  cosselrels $p |- ( A e. V -> ,~ A e. Rels ) $=
    ( wcel ccoss cvv crels cossex wrel relcoss elrelsrel mpbiri syl ) ABCADZECZ
    MFCZABGNOMHAIMEJKL $.

  $( Cosets of converse sets are elements of the relations class.  (Contributed
     by Peter Mazsa, 31-Aug-2021.) $)
  cosscnvelrels $p |- ( A e. V -> ,~ `' A e. Rels ) $=
    ( wcel ccnv crels ccoss cnvelrels cosselrels syl ) ABCADZECJFECABGJEHI $.

$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                Subset relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    $( Define the subsets class or the class of all subset relations.  Similar
       to definitions of epsilon relation ( ~ df-eprel ) and identity relation
       ( ~ df-id ) classes.  Subset relation class and Scott Fenton's subset
       class ~ df-sset are the same: ` _S = SSet ` (compare ~ dfssr2 with
       ~ df-sset , cf. comment of ~ df-xrn ), the only reason we do not use
       ~ dfssr2 as the base definition of the subsets class is the way we
       defined the epsilon relation and the identity relation classes.

       The binary relation on the class of all subsets and the subclass
       relationship ( ~ df-ss ) are the same, that is,
       ` ( A _S B <-> A C_ B ) ` when ` B ` is a set, cf. ~ brssr .  Yet in
       general we use the subclass relation ` A C_ B ` both for classes and for
       sets, cf. the comment of ~ df-ss .  The only exception (aside from
       directly investigating the class ` _S ` e.g. in ~ relssr or in
       ~ extssr ) is when we have a specific purpose with its usage, like in
       case of ~~? df-refs vs. ~~? df-cnvrefs , where we need ` _S ` to define
       the class of reflexive sets in order to be able to define the class of
       converse reflexive sets with the help of the converse of ` _S ` .

       The subsets class ` _S ` has another place in set.mm as well: if we
       define extensional relation based on the common property in ~ extid ,
       ~ extep and ~ extssr , then extrelssr $p |- ExtRel _S is a theorem along
       with extrelep $p |- ExtRel _E and extrelid $p |- ExtRel _I .
       (Contributed by Peter Mazsa, 25-Jul-2019.) $)
    df-ssr $a |- _S = { <. x , y >. | x C_ y } $.
  $}

  ${
    $d x y z $.
    $( Alternate definition of the subset relation.  (Contributed by Peter
       Mazsa, 9-Aug-2021.) $)
    dfssr2 $p |- _S = ( ( _V X. _V ) \ ran ( _E |X. ( _V \ _E ) ) ) $=
      ( vz vx vy cv cep wbr cvv cdif wa wex wn copab wss cxp cxrn crn cssr wcel
      epel brvdif xchbinx anbi12i exbii notbii bitr4i opabbii difeq2i vvdifopab
      dfss6 rnxrn eqtri df-ssr 3eqtr4ri ) ADZBDZEFZUNCDZGEHZFZIZAJZKZBCLZUOUQMZ
      BCLGGNZEUROPZHZQVBVDBCVBUNUORZUNUQRZKZIZAJZKVDVAVLUTVKAUPVHUSVJABSUSUNUQE
      FVIUNUQETACSUAUBUCUDAUOUQUIUEUFVGVEVABCLZHVCVFVMVEBCAEURUJUGVABCUHUKBCULU
      M $.
  $}

  ${
    $d x y $.
    $( The subset relation is a relation.  (Contributed by Peter Mazsa,
       1-Aug-2019.) $)
    relssr $p |- Rel _S $=
      ( vx vy cv wss cssr df-ssr relopabi ) ACBCDABEABFG $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( The subset relation and subclass relationship ( ~ df-ss ) are the same,
       that is, ` ( A _S B <-> A C_ B ) ` when ` B ` is a set.  (Contributed by
       Peter Mazsa, 31-Jul-2019.) $)
    brssr $p |- ( B e. V -> ( A _S B <-> A C_ B ) ) $=
      ( vx vy wcel cssr wbr wss cvv wa relssr brrelexi adantl simpl ssexg simpr
      jca ancoms cv sseq1 sseq2 df-ssr brabg pm5.21nd ) BCFZABGHZABIZAJFZUFKZUF
      UGKUIUFUGUIUFABGLMNUFUGORUHUFUJUHUFKUIUFABCPUHUFQRSDTZETZIAULIUHDEABJCGUK
      AULUAULBAUBDEUCUDUE $.
  $}

  $( Any set is a subset of itself.  (Contributed by Peter Mazsa,
     1-Aug-2019.) $)
  brssrid $p |- ( A e. V -> A _S A ) $=
    ( wcel cssr wbr wss ssid brssr mpbiri ) ABCAADEAAFAGAABHI $.

  $( Two ways of expressing set existence.  (Contributed by Peter Mazsa,
     1-Aug-2019.) $)
  issetssr $p |- ( A e. _V <-> A _S A ) $=
    ( cvv wcel cssr wbr brssrid wrel relssr brrelex mpan impbii ) ABCZAADEZABFD
    GMLHAADIJK $.

  $( Restricted subset binary relation.  (Contributed by Peter Mazsa,
     25-Nov-2019.) $)
  brssrres $p |- ( C e. V ->
                   ( B ( _S |` A ) C <-> ( B e. A /\ B C_ C ) ) ) $=
    ( wcel cssr cres wbr wa wss brresALTV brssr anbi2d bitrd ) CDEZBCFAGHBAEZBC
    FHZIPBCJZIABCFDKOQRPBCDLMN $.

  $( Restricted converse subset binary relation.  (Contributed by Peter Mazsa,
     25-Nov-2019.) $)
  br1cnvssrres $p |- ( B e. V ->
                       ( B `' ( _S |` A ) C <-> ( C e. A /\ C C_ B ) ) ) $=
    ( cssr cres ccnv wbr wcel wss wa relres relbrcnv brssrres syl5bb ) BCEAFZGH
    CBPHBDICAICBJKBCPEALMACBDNO $.

  $( The converse of a subset relation swaps arguments.  (Contributed by Peter
     Mazsa, 1-Aug-2019.) $)
  brcnvssr $p |- ( A e. V -> ( A `' _S B <-> B C_ A ) ) $=
    ( cssr ccnv wbr wcel wss relssr relbrcnv brssr syl5bb ) ABDEFBADFACGBAHABDI
    JBACKL $.

  $( Any set is a converse subset of itself.  (Contributed by Peter Mazsa,
     9-Jun-2021.) $)
  brcnvssrid $p |- ( A e. V -> A `' _S A ) $=
    ( wcel cssr ccnv wbr wss ssid brcnvssr mpbiri ) ABCAADEFAAGAHAABIJ $.

  ${
    $d A u $.  $d B u $.  $d C u $.  $d D u $.  $d E u $.  $d R u $.  $d V u $.
    $d W u $.  $d X u $.  $d Y u $.
    $( ` <. B , C >. ` and ` <. D , E >. ` are cosets by tail Cartesian product
       with restricted converse subsets class: a binary relation.  (Contributed
       by Peter Mazsa, 9-Jun-2021.) $)
    br1cossxrncnvssrres $p |-
        ( ( ( B e. V /\ C e. W ) /\ ( D e. X /\ E e. Y ) ) ->
          ( <. B , C >. ,~ ( R |X. ( `' _S |` A ) ) <. D , E >. <->
            E. u e. A ( ( C C_ u /\ u R B ) /\ ( E C_ u /\ u R D ) ) ) ) $=
      ( wcel wa cop wbr wrex wss wb cvv brcnvssr cssr ccnv cv br1cossxrnres elv
      cres cxrn ccoss anbi1i anbi12i rexbii syl6bb ) CHLDILMEJLGKLMMCDNEGNFUAUB
      ZBUFUGUHOAUCZDUMOZUNCFOZMZUNGUMOZUNEFOZMZMZABPDUNQZUPMZGUNQZUSMZMZABPABCD
      EFUMGHIJKUDVAVFABUQVCUTVEUOVBUPUOVBRAUNDSTUEUIURVDUSURVDRAUNGSTUEUIUJUKUL
      $.
  $}

  ${
    $d A x $.  $d B x $.  $d V x $.  $d W x $.
    $( Property of subset relation, cf. ~ extid , ~ extep and the comment of
       ~ df-ssr .  (Contributed by Peter Mazsa, 10-Jul-2019.) $)
    extssr $p |- ( ( A e. V /\ B e. W ) ->
                   ( [ A ] `' _S = [ B ] `' _S <-> A = B ) ) $=
      ( vx wcel wa cv cssr wbr wb wal wss ccnv cec brssr bi2bian9 albidv relssr
      wceq wrel releccnveq mp2an ssext 3bitr4g ) ACFZBDFZGZEHZAIJZUIBIJZKZELZUI
      AMZUIBMZKZELAINZOBUQOTZABTUHULUPEUFUJUNUGUKUOUIACPUIBDPQRIUAZUSURUMKSSEAB
      IIUBUCEABUDUE $.
  $}

$( (End of Peter Mazsa's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Rodolfo Medina
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Partitions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    prtlem60.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    prtlem60.2 $e |- ( ps -> ( th -> ta ) ) $.
    $( Lemma for ~ prter3 .  (Contributed by Rodolfo Medina, 9-Oct-2010.) $)
    prtlem60 $p |- ( ph -> ( ps -> ( ch -> ta ) ) ) $=
      ( wi a1i syldd ) ABCDEFBDEHHAGIJ $.
  $}

  ${
    bicomdd.1 $e |- ( ph -> ( ps -> ( ch <-> th ) ) ) $.
    $( Commute two sides of a biconditional in a deduction.  (Contributed by
       Rodolfo Medina, 19-Oct-2010.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    bicomdd $p |- ( ph -> ( ps -> ( th <-> ch ) ) ) $=
      ( wb bicom syl6ib ) ABCDFDCFECDGH $.
  $}

  ${
    jca2r.1 $e |- ( ph -> ( ps -> ch ) ) $.
    jca2r.2 $e |- ( ps -> th ) $.
    $( Inference conjoining the consequents of two implications.  (Contributed
       by Rodolfo Medina, 17-Oct-2010.) $)
    jca2r $p |- ( ph -> ( ps -> ( th /\ ch ) ) ) $=
      ( wi a1i jcad ) ABDCBDGAFHEI $.
  $}

  ${
    jca3.1 $e |- ( ph -> ( ps -> ch ) ) $.
    jca3.2 $e |- ( th -> ta ) $.
    $( Inference conjoining the consequents of two implications.  (Contributed
       by Rodolfo Medina, 14-Oct-2010.) $)
    jca3 $p |- ( ph -> ( ps -> ( th -> ( ch /\ ta ) ) ) ) $=
      ( wa wi imp a1d jca2 ex ) ABDCEHIABHZDCENCDABCFJKGLM $.
  $}

  $( Lemma for ~ prter3 : a rearrangement of conjuncts.  (Contributed by
     Rodolfo Medina, 20-Oct-2010.) $)
  prtlem70 $p |- ( ( ( ( ps /\ et ) /\ ( ( ph /\ th ) /\ ( ch /\ ta ) ) )
                        /\ ph ) <-> ( ( ph /\ ( ps /\ ( ch /\ ( th /\ ta ) ) )
    ) /\ et ) ) $=
    ( wa anass anbi1i anandi ancom 3bitr4ri bitri 3bitri an4 anbi2i ) BFGZADGZC
    EGZGZGZAGZABDGZGZSGZFGZAUCSGZGZFGABCDEGZGGZGZFGABGZRGZSGZFGULTGZFGZUFUBUNUO
    FULRSHIUEUNFUDUMSABDJIIUBULFGZTGZFULGZTGZUPAQGZTGAUAGURUBAQTHUQVATABFHIUAAK
    LUQUSTULFKIUTFUOGUPFULTHFUOKMNLUEUHFAUCSHIUHUKFUGUJAUGBCGUIGUJBDCEOBCUIHMPI
    N $.

  ${
    ibdr.1 $e |- ( ph -> ( ch -> ( ps <-> ch ) ) ) $.
    $( Reverse of ~ ibd .  (Contributed by Rodolfo Medina, 30-Sep-2010.) $)
    ibdr $p |- ( ph -> ( ch -> ps ) ) $=
      ( bicomdd ibd ) ACBACBCDEF $.
  $}

  $( Variant of ~ pm5.31 .  (Contributed by Rodolfo Medina, 15-Oct-2010.) $)
  pm5.31r $p |- ( ( ch /\ ( ph -> ps ) ) -> ( ph -> ( ch /\ ps ) ) ) $=
    ( wi wa pm3.2 imim2d imp ) CABDACBEZDCBIACBFGH $.

  $( Lemma for ~ prter3 .  (Contributed by Rodolfo Medina, 19-Oct-2010.) $)
  prtlem100 $p |- ( E. x e. A ( B e. x /\ ph ) <->
                        E. x e. ( A \ { (/) } ) ( B e. x /\ ph ) ) $=
    ( cv wcel wa csn cdif wne anass eldifsn anbi1i ne0i pm4.71ri bitri 3bitr4ri
    c0 anbi2i rexbii2 ) DBEZFZAGZUCBCCRHIZUACFZUARJZGZUCGUEUFUCGZGUAUDFZUCGUEUC
    GUEUFUCKUIUGUCUACRLMUCUHUEUCUFUBGZAGUHUBUJAUBUFUADNOMUFUBAKPSQT $.

  ${
    $d u v x r $.  $d u v x s $.  $d u v x A $.
    $( Lemma for ~ prter1 , ~ prter2 , ~ prter3 and ~ prtex .  (Contributed by
       Rodolfo Medina, 25-Sep-2010.)  (Proof shortened by Mario Carneiro,
       11-Dec-2016.) $)
    prtlem5 $p |- ( [ s / v ] [ r / u ] E. x e. A ( u e. x /\ v e. x )
                        <-> E. x e. A ( r e. x /\ s e. x ) ) $=
      ( wel wa wrex wsb nfv weq elequ1 bi2anan9r rexbidv sbiedv sbie ) CAGZBAGZ
      HZADIZCFJFAGZEAGZHZADIZBEUEBKBELZUAUECFUFCFLZHTUDADUGRUBUFSUCCFAMBEAMNOPQ
      $.
  $}

  $( Lemma for ~ prter2 .  (Contributed by Rodolfo Medina, 17-Oct-2010.) $)
  prtlem80 $p |- ( A e. B -> -. A e. ( C \ { A } ) ) $=
    ( wcel neldifsnd ) ABDACE $.

  ${
    $d x y z $.  $d x y w $.
    $( A closed form of ~ brabsb .  (Contributed by Rodolfo Medina,
       13-Oct-2010.) $)
    brabsb2 $p |- ( R = { <. x , y >. | ph }
                        -> ( z R w <-> [ w / y ] [ z / x ] ph ) ) $=
      ( copab wceq cv wbr cop wcel wsb breq df-br syl6bb opelopabsbALT ) FABCGZ
      HZDIZEIZFJZTUAKRLZABDMCEMSUBTUARJUCTUAFRNTUAROPABCDEQP $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d ph x $.  $d ph y $.
    eqbrrdv2.1 $e |- ( ( ( Rel A /\ Rel B ) /\ ph )
                        -> ( x A y <-> x B y ) ) $.
    $( Other version of ~ eqbrrdiv .  (Contributed by Rodolfo Medina,
       30-Sep-2010.) $)
    eqbrrdv2 $p |- ( ( ( Rel A /\ Rel B ) /\ ph ) -> A = B ) $=
      ( wrel wa wceq cv wbr cop wcel df-br 3bitr3g eqrelrdv2 anabss5 ) DGEGHZAD
      EIRAHZBCDESBJZCJZDKTUAEKTUALZDMUBEMFTUADNTUAENOPQ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Lemma for ~ prter3 .  (Contributed by Rodolfo Medina, 25-Sep-2010.) $)
    prtlem9 $p |- ( A e. B -> E. x e. B [ x ] .~ = [ A ] .~ ) $=
      ( wcel cv wceq wrex cec risset eceq1 reximi sylbi ) BCEAFZBGZACHNDIBDIGZA
      CHABCJOPACNBDKLM $.
  $}

  ${
    $d v w $.  $d v z $.  $d v A $.  $d v .~ $.
    $( Lemma for ~ prter3 .  (Contributed by Rodolfo Medina, 14-Oct-2010.)
       (Revised by Mario Carneiro, 12-Aug-2015.) $)
    prtlem10 $p |- ( .~ Er A -> ( z e. A -> ( z .~ w <->
        E. v e. A ( z e. [ v ] .~ /\ w e. [ v ] .~ ) ) ) ) $=
      ( wer cv wcel wbr cec wa wrex wb wi simpr simpl breq1 ex vex elec anbi12d
      erref weq rspcev expr syl2anc simplll simprl simprr ertr3d impbid anbi12i
      rexlimdva rexbii syl6bbr ) DEFZAGZDHZUQBGZEIZUQCGZEJZHZUSVBHZKZCDLZMUPURK
      ZUTVAUQEIZVAUSEIZKZCDLZVFVGUTVKVGURUQUQEIZUTVKNUPUROZVGUQEDUPURPVMUBURVLU
      TVKVJVLUTKCUQDCAUCVHVLVIUTVAUQUQEQVAUQUSEQUAUDUEUFVGVJUTCDVGVADHZKZVJUTVO
      VJKUQVAUSEDUPURVNVJUGVOVHVIUHVOVHVIUIUJRUMUKVEVJCDVCVHVDVIUQVAEASCSZTUSVA
      EBSVPTULUNUOR $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x .~ $.
    $( Lemma for ~ prter2 .  (Contributed by Rodolfo Medina, 12-Oct-2010.) $)
    prtlem11 $p |- ( B e. D ->
                        ( C e. A -> ( B = [ C ] .~ -> B e. ( A /. .~ ) ) ) ) $=
      ( vx wcel cec wceq cqs wa cv wrex risset r19.41v eceq1 eqtr3 eqcomd sylan
      reximi sylbir sylanb elqsg syl5ibr expd ) BDGZCAGZBCEHZIZBAEJGZUGUIKUJUFB
      FLZEHZIZFAMZUGUKCIZFAMZUIUNFCANUPUIKUOUIKZFAMUNUOUIFAOUQUMFAUOULUHIZUIUMU
      KCEPURUIKULBULBUHQRSTUAUBFABEDUCUDUE $.
  $}

  ${
    $d x y $.
    $( Lemma for ~ prtex and ~ prter3 .  (Contributed by Rodolfo Medina,
       13-Oct-2010.) $)
    prtlem12 $p |- ( .~ = { <. x , y >. | E. u e. A ( x e. u /\ y e. u ) }
                        -> Rel .~ ) $=
      ( wel wa wrex copab wceq wrel relopab releq mpbiri ) EACFBCFGCDHZABIZJEKP
      KOABLEPMN $.
  $}

  ${
    $d u v x y A $.  $d v w x y $.  $d v x y z $.
    prtlem13.1 $e |- .~ = { <. x , y >. | E. u e. A ( x e. u /\ y e. u ) } $.
    $( Lemma for ~ prter1 , ~ prter2 , ~ prter3 and ~ prtex .  (Contributed by
       Rodolfo Medina, 13-Oct-2010.)  (Revised by Mario Carneiro,
       12-Aug-2015.) $)
    prtlem13 $p |- ( z .~ w <-> E. v e. A ( z e. v /\ w e. v ) ) $=
      ( wel wa wrex cv vex weq elequ2 anbi12d cbvrexv eleq1 bi2anan9 rexbidv
      syl5bb braba ) AFJZBFJZKZFGLZCEJZDEJZKZEGLZABCMZDMZHCNDNUGAEJZBEJZKZEGLAC
      OZBDOZKZUKUFUPFEGFEOUDUNUEUOFEAPFEBPQRUSUPUJEGUQUNUHURUOUIAMULEMZSBMUMUTS
      TUAUBIUC $.

    $d u v w x y z A $.  $d w z .~ $.
    $( Lemma for ~ prtex , ~ prter2 and ~ prter3 .  (Contributed by Rodolfo
       Medina, 14-Oct-2010.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    prtlem16 $p |- dom .~ = U. A $=
      ( vz vw vv cdm cuni cv wcel wbr wex wa wrex vex eldm prtlem13 adantrr weq
      exbii elunii ancoms rexlimiva exlimiv eluni2 eleq1 anbi2d syl6bbr rexbidv
      pm4.24 spcev sylbi impbii 3bitri eqriv ) GEJZDKZGLZUSMVAHLZENZHOVAILZMZVB
      VDMZPZIDQZHOZVAUTMZHVAEGRZSVCVHHABGHICDEFTUCVIVJVHVJHVGVJIDVDDMZVEVJVFVEV
      LVJVAVDDUDUEUAUFUGVJVEIDQZVIIVADUHVHVMHVAVKHGUBZVGVEIDVNVGVEVEPVEVNVFVEVE
      VBVAVDUIUJVEUMUKULUNUOUPUQUR $.

    $( Lemma for ~ prter2 and also a property of partitions .  (Contributed by
       Rodolfo Medina, 15-Oct-2010.)  (Revised by Mario Carneiro,
       12-Aug-2015.) $)
    prtlem400 $p |- -. (/) e. ( U. A /. .~ ) $=
      ( c0 cuni cqs wcel wne neirr cdm wceq prtlem16 elqsn0 mpan mto ) GDHZEIJZ
      GGKZGLEMSNTUAABCDEFOSGEPQR $.
  $}

  $( Introduce the partition predicate. $)
  $c Prt $.

  $( Extend the definition of a wff to include the partition predicate. $)
  wprt $a wff Prt A $.

  ${
    $d x y A $.
    $( Define the partition predicate.  (Contributed by Rodolfo Medina,
       13-Oct-2010.) $)
    df-prt $a |- ( Prt A <-> A. x e. A A. y e. A ( x = y \/
                                                ( x i^i y ) = (/) ) ) $.
  $}

  ${
    $d x y A $.  $d x y .~ $.  $d x y X $.
    $( The quotient set of an equivalence relation is a partition.
       (Contributed by Rodolfo Medina, 13-Oct-2010.) $)
    erprt $p |- ( .~ Er X -> Prt ( A /. .~ ) ) $=
      ( vx vy wer cv wceq cin c0 wo cqs wral wprt wa simpl simprl simprr qsdisj
      wcel ralrimivva df-prt sylibr ) CBFZDGZEGZHUEUFIJHKZEABLZMDUHMUHNUDUGDEUH
      UHUDUEUHTZUFUHTZOZOAUEUFBCUDUKPUDUIUJQUDUIUJRSUADEUHUBUC $.
  $}

  ${
    $d u v w x y z $.  $d x y z A $.
    $( Lemma for ~ prter1 , ~ prter2 and ~ prtex .  (Contributed by Rodolfo
       Medina, 13-Oct-2010.) $)
    prtlem14 $p |- ( Prt A -> ( ( x e. A /\ y e. A )
                                -> ( ( w e. x /\ w e. y ) -> x = y ) ) ) $=
      ( wprt cv wcel wa wceq cin c0 wo wi wral df-prt rsp2 sylbi elin wn wal sp
      eq0 pm2.21d syl5bir jao1i syl6 ) DEZAFZDGBFZDGHZUHUIIZUHUIJZKIZLZCFZUHGUO
      UIGHZUKMUGUNBDNADNUJUNMABDOUNABDDPQUKUMUPUPUOULGZUMUKUOUHUIRUMUQUKUMUQSZC
      TURCULUBURCUAQUCUDUEUF $.

    $( Lemma for ~ prter1 and ~ prtex .  (Contributed by Rodolfo Medina,
       13-Oct-2010.) $)
    prtlem15 $p |- ( Prt A -> ( E. x e. A E. y e. A ( ( u e. x /\ w e. x )
                        /\ ( w e. y /\ v e. y ) )
                        -> E. z e. A ( u e. z /\ v e. z ) ) ) $=
      ( wprt wel wa wrex cv wcel wi anabs7 an43 anbi2i 3bitr4ri weq elequ2 syl8
      prtlem14 an3 anbi2d syl5ibr imp4a syl7bi expdimp rexlimdv anbi12d cbvrexv
      reximdva syl6ib ) GHZFAIZDAIZJDBIZEBIZJJZBGKZAGKUOEAIZJZAGKFCIZECIZJZCGKU
      NUTVBAGUNALGMZJUSVBBGUNVFBLGMZUSVBNZUSUPUQJZUSJZUNVFVGJZVBVIUOURJZVIJZJVM
      VJUSVLVIOUSVMVIUOUPUQURPZQVNRUNVKVIUSVBUNVKVIABSZVHABDGUBUSVBVOVLUOUPUQUR
      UCVOVAURUOABETUDUEUAUFUGUHUIULVBVEACGACSUOVCVAVDACFTACETUJUKUM $.
  $}

  ${
    $d x y A $.  $d z x $.  $d z y $.  $d y w $.
    $( Lemma for ~ prter2 .  (Contributed by Rodolfo Medina, 15-Oct-2010.) $)
    prtlem17 $p |- ( Prt A -> ( ( x e. A /\ z e. x )
                                        -> ( E. y e. A ( z e. y /\ w e. y )
                                                -> w e. x ) ) ) $=
      ( wprt cv wcel wel wa wrex wi wex df-rex an32 weq prtlem14 elequ2 biimprd
      syl8 exp4a impd syl5bir expd imp5a imp4b exlimdv syl5bi ex ) EFZAGEHZCAIZ
      JZCBIZDBIZJZBEKZDAIZLUQBGEHZUPJZBMUJUMJZURUPBENVAUTURBUJUMUSUPURUJUMUSUNU
      OURUJUMUSUNUOURLZLZUMUSJUKUSJZULJUJVCUKUSULOUJVDULVCUJVDULUNVBUJVDULUNJAB
      PZVBABCEQVEURUOABDRSTUAUBUCUDUEUFUGUHUI $.
  $}

  ${
    $d p q r u v w x y z A $.  $d p v w z .~ $.  $d v w z S $.
    prtlem18.1 $e |- .~ = { <. x , y >. | E. u e. A ( x e. u /\ y e. u ) } $.
    $( Lemma for ~ prter2 .  (Contributed by Rodolfo Medina, 15-Oct-2010.)
       (Revised by Mario Carneiro, 12-Aug-2015.) $)
    prtlem18 $p |- ( Prt A ->
      ( ( v e. A /\ z e. v ) -> ( w e. v <-> z .~ w ) ) ) $=
      ( vp wprt cv wcel wel wa wbr wi wrex rspe prtlem13 syl6ibr syl7bi impbidd
      expr a1i prtlem17 ) GKZELGMZCENZOZDENZCLDLHPZUJUKULQQUGUJUKUIUKOZEGRZULUH
      UIUKUNUMEGSUDABCDEFGHITUAUEULCJNDJNOJGRUGUJUKABCDJFGHITEJCDGUFUBUC $.

    $( Lemma for ~ prter2 .  (Contributed by Rodolfo Medina, 15-Oct-2010.)
       (Revised by Mario Carneiro, 12-Aug-2015.) $)
    prtlem19 $p |- ( Prt A -> ( ( v e. A /\ z e. v ) -> v = [ z ] .~ ) ) $=
      ( vw wprt cv wcel wa cec wceq wbr wb prtlem18 imp vex elec syl6bbr eqrdv
      ex ) FJZDKZFLCKZUFLMZUFUGGNZOUEUHMZIUFUIUJIKZUFLZUGUKGPZUKUILUEUHULUMQABC
      IDEFGHRSUKUGGITCTUAUBUCUD $.

    $( Every partition generates an equivalence relation.  (Contributed by
       Rodolfo Medina, 13-Oct-2010.)  (Revised by Mario Carneiro,
       12-Aug-2015.) $)
    prter1 $p |- ( Prt A -> .~ Er U. A ) $=
      ( vz vw vp vv vq vr cv wbr wi wa wal wel wrex prtlem13 wprt wrel cdm cuni
      wceq wer relopabi prtlem16 prtlem15 anbi12i reeanv bitr4i 3imtr4g 3imtr4i
      a1i pm3.22 reximi jctil alrimivv alrimiv dfer2 syl3anbrc ) DUAZEUBZEUCDUD
      ZUEZGMZHMZENZVHVGENZOZVIVHIMZENZPZVGVLENZOZPZIQHQZGQVEEUFVDVCACRBCRPCDSAB
      EFUGUOVFVCABCDEFUHUOVCVRGVCVQHIVCVPVKVCGJRZHJRZPZHKRIKRPZPKDSJDSZGLRILRPL
      DSVNVOJKLHIGDUIVNWAJDSZWBKDSZPWCVIWDVMWEABGHJCDEFTZABHIKCDEFTUJWAWBJKDDUK
      ULABGILCDEFTUMWDVTVSPZJDSVIVJWAWGJDVSVTUPUQWFABHGJCDEFTUNURUSUTGHIVEEVAVB
      $.

    $( The equivalence relation generated by a partition is a set if and only
       if the partition itself is a set.  (Contributed by Rodolfo Medina,
       15-Oct-2010.)  (Revised by Mario Carneiro, 12-Aug-2015.) $)
    prtex $p |- ( Prt A -> ( .~ e. _V <-> A e. _V ) ) $=
      ( wprt cvv wcel cuni wer wb prter1 erexb syl uniexb syl6bbr ) DGZEHIZDJZH
      IZDHIRTEKSUALABCDEFMTENODPQ $.

    $( The quotient set of the equivalence relation generated by a partition
       equals the partition itself.  (Contributed by Rodolfo Medina,
       17-Oct-2010.) $)
    prter2 $p |- ( Prt A -> ( U. A /. .~ ) = ( A \ { (/) } ) ) $=
      ( vp vv vz c0 cv wcel wa wceq wrex wex bitri df-rex wral wi wprt cuni cqs
      csn cdif wne cec rexcom4 r19.41v exbii rexbii elqs eluni2 anbi1i 3bitr4ri
      vex prtlem19 ralrimivv 2r19.29 ex syl5bi eqtr3 reximi syl6 19.41v simprbi
      syl risset syl6ibr prtlem400 nelelne mp1i jcad eldifsn neldifsn n0el mpbi
      rspec eldifi jca ancomsd elunii jca2r cvv prtlem11 ax-mp imp eximdv 19.9v
      wn 3imtr3g syl5 impbid eqrdv ) DUAZGDUBZEUCZDJUDZUEZWOGKZWQLZWTWSLZWOXAWT
      DLZWTJUFZMXBWOXAXCXDWOXAHKZWTNZHDOZXCWOXAXFIXEOZHDOZXGWOXAXEIKZEUGZNZWTXK
      NZMZIXEOZHDOZXIXAXMIXEOZHDOZWOXPXJXELZXMMZIPZHDOZXSHDOZXMMZIPZXRXAYBXTHDO
      ZIPYEXTHIDUHYFYDIXSXMHDUIUJQXQYAHDXMIXERUKXAXMIWPOZYEIWPWTEGUPZULYGXJWPLZ
      XMMZIPYEXMIWPRYJYDIYIYCXMHXJDUMUNUJQQUOWOXLIXESHDSZXRXPTWOXLHIDXEABIHCDEF
      UQURYKXRXPXLXMHIDXEUSUTVGVAXOXHHDXNXFIXEXEWTXKVBVCVCVDXHXFHDXHXSIPZXFXHXS
      XFMIPYLXFMXFIXERXSXFIVEQVFVCVDHWTDVHVIJWQLWJXAXDTWOABCDEFVJJWQWTVKVLVMWTD
      JVNVIXBXJWTLZIPZXCMZWOXAXBYNXCYNGWSJWSLWJYNGWSSJDVOGIWSVPVQVRWTDWRVSVTWOY
      MXCMZIPXAIPYOXAWOYPXAIWOYPYJXAWOYPXMYIWOXCYMXMABIGCDEFUQWAXJWTDWBWCYIXMXA
      WTWDLYIXMXATTYHWPWTXJWDEWEWFWGVDWHYMXCIVEXAIWIWKWLWMWN $.

    $( For every partition there exists a unique equivalence relation whose
       quotient set equals the partition.  (Contributed by Rodolfo Medina,
       19-Oct-2010.)  (Proof shortened by Mario Carneiro, 12-Aug-2015.) $)
    prter3 $p |- ( ( S Er U. A /\ ( U. A /. S ) = ( A \ { (/) } ) ) ->
        .~ = S ) $=
      ( vz vw vv wrel c0 wceq wa wel wrex cv wbr wb wcel cuni wer cqs csn errel
      cdif adantr relopabi prtlem13 cec simpll wne simprl ne0i ad2antll eldifsn
      sylanbrc simplr eleqtrrd simprr qsel syl3anc eleq2d elec anassrs pm5.32da
      vex syl6bb rexbidva simpr eluni2 sylib ex pm4.71rd r19.41v syl6bbr bitr4d
      ercl syl5bb adantl eqbrrdv2 mpanl1 mpancom ) FKZDUAZFUBZWEFUCZDLUDUFZMZNZ
      EFMZWFWDWIWEFUEUGEKZWDWJWKACOBCONCDPABEGUHWJHIEFWJHQZIQZERZWMWNFRZSWLWDNW
      OHJOZIJOZNZJDPZWJWPABHIJCDEGUIWJWTWQWPNZJDPZWPWJWSXAJDWJJQZDTZNWQWRWPWJXD
      WQWRWPSWJXDWQNZNZWRWNWMFUJZTWPXFXCXGWNXFWFXCWGTWQXCXGMWFWIXEUKXFXCWHWGXFX
      DXCLULZXCWHTWJXDWQUMWQXHWJXDXCWMUNUOXCDLUPUQWFWIXEURUSWJXDWQUTWEXCWMFWEVA
      VBVCWNWMFIVGHVGVDVHVEVFVIWJWPWQJDPZWPNXBWJWPXIWJWPXIWJWPNZWMWETXIXJWMWNFW
      EWFWIWPUKWJWPVJVRJWMDVKVLVMVNWQWPJDVOVPVQVSVTWAWBWC $.
  $}

$( (End of Rodolfo Medina's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Norm Megill
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#

  Note: A label suffixed with "N" (after the "Atoms..." section below), such as
  ~ lshpnel2N , means that the definition or theorem is not used for the
  derivation of ~ hlathil .  This is a temporary renaming to assist cleaning up
  the theorems needed by ~ hlathil .

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Predicate calculus with equality:  Older axiomatization (1 rule, 14 schemes)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The "scheme completeness theorem", Theorem 9.7 of [Megill] p. 448 (called the
  "metalogical completeness theorem" there), uses a different but (logically
  and metalogically) equivalent set of axiom schemes for its proof.  In order
  to show that our axiomatization is also metalogically complete, we derive the
  axiom schemes of that paper in this section (or mention where they are
  derived, if they have already been derived as theorems above).  Additionally,
  we rederive our axiomatization from the one in the paper, showing that the
  two systems are equivalent.

  The 14 predicate calculus axioms used by the paper are ~ ax-c4 , ~ ax-c5 ,
  ~ ax-11 , ~ ax-c7 , ~ ax-7 , ~ ax-c9 , ~ ax-c10 , ~ ax-c11 , ~ ax-8 ,
  ~ ax-9 , ~ ax-c14 , ~ ax-c15 , ~ ax-c16 , and ~ ax-5 .  Like ours, it
  includes the rule of generalization ( ~ ax-gen ).

  The ones we need to prove from our axioms are ~ ax-c4 , ~ ax-c5 , ~ ax-c7 ,
  ~ ax-c9 , ~ ax-c10 , ~ ax-c11 , ~ ax-c14 , ~ ax-c15 , and ~ ax-c16 . The
  theorems showing the derivations of those axioms, which have all been proved
  earlier, are ~ axc4 , ~ axc5 (also called ~ sp ), ~ axc7 , ~ axc9 , ~ axc10 ,
  ~ axc11 , ~ axc14 , ~ axc15 , ~ axc16 , and ~ axc11n . In addition, ~ ax-c11n
  was an intermediate axiom we adopted at one time, and we show its proof in
  this section as ~ axc11nfromc11 .

  This section also includes a few miscellaneous legacy theorems such as
  ~ hbequid use the older axioms.

  Note:  The axioms and theorems in this section should not be used outside of
  this section.  Inside this section, we may use the external axioms ~ ax-gen ,
  ~ ax-5 , ~ ax-7 , ~ ax-6 , ~ ax-8 , and ~ ax-9 since they are common to both
  our current and the older axiomatizations.  (These are the ones that were
  never revised.)

  The following newer axioms may NOT be used in this section until we have
  proved them from the older axioms:  ~ ax-4 , ~ ax-10 , ~ ax-6 , ~ ax-12 , and
  ~ ax-13 .  However, once we have rederived an axiom (e.g., theorem
  ~ ax4fromc4 for axiom ~ ax-4 ), we may make use of theorems outside of this
  section that make use of the rederived axiom (e.g., we may use theorem
  ~ alimi , which uses ~ ax-4 , after proving ~ ax4fromc4 ).

$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Obsolete schemes ax-c4,c5,c7,c10,c11,c11n,c15,c9,c14,c16
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  These older axiom schemes are obsolete and should not be used outside of this
  section.  They are proved above as theorems axc4 , ~ sp , ~ axc7 , ~ axc10 ,
  ~ axc11 , ~ axc11n , ~ axc15 , ~ axc9 , ~ axc14 , and ~ axc16 .

$)

  $( Axiom of Specialization.  A quantified wff implies the wff without a
     quantifier (i.e. an instance, or special case, of the generalized wff).
     In other words if something is true for all ` x ` , it is true for any
     specific ` x ` (that would typically occur as a free variable in the wff
     substituted for ` ph ` ).  (A free variable is one that does not occur in
     the scope of a quantifier: ` x ` and ` y ` are both free in ` x = y ` ,
     but only ` x ` is free in ` A. y x = y ` .)  Axiom scheme C5' in [Megill]
     p. 448 (p. 16 of the preprint).  Also appears as Axiom B5 of [Tarski]
     p. 67 (under his system S2, defined in the last paragraph on p. 77).

     Note that the converse of this axiom does not hold in general, but a
     weaker inference form of the converse holds and is expressed as rule
     ~ ax-gen .  Conditional forms of the converse are given by ~ ax-13 ,
     ~ ax-c14 , ~ ax-c16 , and ~ ax-5 .

     Unlike the more general textbook Axiom of Specialization, we cannot choose
     a variable different from ` x ` for the special case.  For use, that
     requires the assistance of equality axioms, and we deal with it later
     after we introduce the definition of proper substitution - see ~ stdpc4 .

     An interesting alternate axiomatization uses ~ axc5c711 and ~ ax-c4 in
     place of ~ ax-c5 , ~ ax-4 , ~ ax-10 , and ~ ax-11 .

     This axiom is obsolete and should no longer be used.  It is proved above
     as theorem ~ sp .  (Contributed by NM, 3-Jan-1993.)
     (New usage is discouraged.) $)
  ax-c5 $a |- ( A. x ph -> ph ) $.

  $( Axiom of Quantified Implication.  This axiom moves a quantifier from
     outside to inside an implication, quantifying ` ps ` .  Notice that ` x `
     must not be a free variable in the antecedent of the quantified
     implication, and we express this by binding ` ph ` to "protect" the axiom
     from a ` ph ` containing a free ` x ` .  Axiom scheme C4' in [Megill]
     p. 448 (p. 16 of the preprint).  It is a special case of Lemma 5 of
     [Monk2] p. 108 and Axiom 5 of [Mendelson] p. 69.

     This axiom is obsolete and should no longer be used.  It is proved above
     as theorem ~ axc4 .  (Contributed by NM, 3-Jan-1993.)
     (New usage is discouraged.) $)
  ax-c4 $a |- ( A. x ( A. x ph -> ps ) -> ( A. x ph -> A. x ps ) ) $.

  $( Axiom of Quantified Negation.  This axiom is used to manipulate negated
     quantifiers.  Equivalent to axiom scheme C7' in [Megill] p. 448 (p. 16 of
     the preprint).  An alternate axiomatization could use ~ axc5c711 in place
     of ~ ax-c5 , ~ ax-c7 , and ~ ax-11 .

     This axiom is obsolete and should no longer be used.  It is proved above
     as theorem ~ axc7 .  (Contributed by NM, 10-Jan-1993.)
     (New usage is discouraged.) $)
  ax-c7 $a |- ( -. A. x -. A. x ph -> ph ) $.

  $( A variant of ~ ax6 .  Axiom scheme C10' in [Megill] p. 448 (p. 16 of the
     preprint).

     This axiom is obsolete and should no longer be used.  It is proved above
     as theorem ~ axc10 .  (Contributed by NM, 10-Jan-1993.)
     (New usage is discouraged.) $)
  ax-c10 $a |- ( A. x ( x = y -> A. x ph ) -> ph ) $.

  $( Axiom ~ ax-c11 was the original version of ~ ax-c11n ("n" for "new"),
     before it was discovered (in May 2008) that the shorter ~ ax-c11n could
     replace it.  It appears as Axiom scheme C11' in [Megill] p. 448 (p. 16 of
     the preprint).

     This axiom is obsolete and should no longer be used.  It is proved above
     as theorem ~ axc11 .  (Contributed by NM, 10-May-1993.)
     (New usage is discouraged.) $)
  ax-c11 $a |- ( A. x x = y -> ( A. x ph -> A. y ph ) ) $.

  $( Axiom of Quantifier Substitution.  One of the equality and substitution
     axioms of predicate calculus with equality.  Appears as Lemma L12 in
     [Megill] p. 445 (p. 12 of the preprint).

     The original version of this axiom was ~ ax-c11 and was replaced with this
     shorter ~ ax-c11n ("n" for "new") in May 2008.  The old axiom is proved
     from this one as theorem ~ axc11 .  Conversely, this axiom is proved from
     ~ ax-c11 as theorem ~ axc11nfromc11 .

     This axiom was proved redundant in July 2015.  See theorem ~ axc11n .

     This axiom is obsolete and should no longer be used.  It is proved above
     as theorem ~ axc11n .  (Contributed by NM, 16-May-2008.)
     (New usage is discouraged.) $)
  ax-c11n $a |- ( A. x x = y -> A. y y = x ) $.

  $( Axiom ~ ax-c15 was the original version of ~ ax-12 , before it was
     discovered (in Jan. 2007) that the shorter ~ ax-12 could replace it.  It
     appears as Axiom scheme C15' in [Megill] p. 448 (p. 16 of the preprint).
     It is based on Lemma 16 of [Tarski] p. 70 and Axiom C8 of [Monk2] p. 105,
     from which it can be proved by cases.  To understand this theorem more
     easily, think of " ` -. A. x x = y -> ` ..." as informally meaning "if
     ` x ` and ` y ` are distinct variables then..."  The antecedent becomes
     false if the same variable is substituted for ` x ` and ` y ` , ensuring
     the theorem is sound whenever this is the case.  In some later theorems,
     we call an antecedent of the form ` -. A. x x = y ` a "distinctor."

     Interestingly, if the wff expression substituted for ` ph ` contains no
     wff variables, the resulting statement _can_ be proved without invoking
     this axiom.  This means that even though this axiom is _metalogically_
     independent from the others, it is not _logically_ independent.
     Specifically, we can prove any wff-variable-free instance of axiom
     ~ ax-c15 (from which the ~ ax-12 instance follows by theorem ~ ax12 .)
     The proof is by induction on formula length, using ~ ax12eq and ~ ax12el
     for the basis steps and ~ ax12indn , ~ ax12indi , and ~ ax12inda for the
     induction steps.  (This paragraph is true provided we use ~ ax-c11 in
     place of ~ ax-c11n .)

     This axiom is obsolete and should no longer be used.  It is proved above
     as theorem ~ axc15 , which should be used instead.  (Contributed by NM,
     14-May-1993.)  (New usage is discouraged.) $)
  ax-c15 $a |- ( -. A. x x = y ->
             ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $.

  $( Axiom of Quantifier Introduction.  One of the equality and substitution
     axioms of predicate calculus with equality.  Informally, it says that
     whenever ` z ` is distinct from ` x ` and ` y ` , and ` x = y ` is true,
     then ` x = y ` quantified with ` z ` is also true.  In other words, ` z `
     is irrelevant to the truth of ` x = y ` .  Axiom scheme C9' in [Megill]
     p. 448 (p. 16 of the preprint).  It apparently does not otherwise appear
     in the literature but is easily proved from textbook predicate calculus by
     cases.

     This axiom is obsolete and should no longer be used.  It is proved above
     as theorem ~ axc9 .  (Contributed by NM, 10-Jan-1993.)
     (New usage is discouraged.) $)
  ax-c9 $a |- ( -. A. z z = x -> ( -. A. z z = y ->
              ( x = y -> A. z x = y ) ) ) $.

  $( Axiom of Quantifier Introduction.  One of the equality and substitution
     axioms for a non-logical predicate in our predicate calculus with
     equality.  Axiom scheme C14' in [Megill] p. 448 (p. 16 of the preprint).
     It is redundant if we include ~ ax-5 ; see theorem ~ axc14 .  Alternately,
     ~ ax-5 becomes unnecessary in principle with this axiom, but we lose the
     more powerful metalogic afforded by ~ ax-5 .  We retain ~ ax-c14 here to
     provide completeness for systems with the simpler metalogic that results
     from omitting ~ ax-5 , which might be easier to study for some theoretical
     purposes.

     This axiom is obsolete and should no longer be used.  It is proved above
     as theorem ~ axc14 .  (Contributed by NM, 24-Jun-1993.)
     (New usage is discouraged.) $)
  ax-c14 $a |- ( -. A. z z = x -> ( -. A. z z = y ->
              ( x e. y -> A. z x e. y ) ) ) $.

  ${
    $d x y $.
    $( Axiom of Distinct Variables.  The only axiom of predicate calculus
       requiring that variables be distinct (if we consider ~ ax-5 to be a
       metatheorem and not an axiom).  Axiom scheme C16' in [Megill] p. 448 (p.
       16 of the preprint).  It apparently does not otherwise appear in the
       literature but is easily proved from textbook predicate calculus by
       cases.  It is a somewhat bizarre axiom since the antecedent is always
       false in set theory (see ~ dtru ), but nonetheless it is technically
       necessary as you can see from its uses.

       This axiom is redundant if we include ~ ax-5 ; see theorem ~ axc16 .
       Alternately, ~ ax-5 becomes logically redundant in the presence of this
       axiom, but without ~ ax-5 we lose the more powerful metalogic that
       results from being able to express the concept of a setvar variable not
       occurring in a wff (as opposed to just two setvar variables being
       distinct).  We retain ~ ax-c16 here to provide logical completeness for
       systems with the simpler metalogic that results from omitting ~ ax-5 ,
       which might be easier to study for some theoretical purposes.

       This axiom is obsolete and should no longer be used.  It is proved above
       as theorem ~ axc16 .  (Contributed by NM, 10-Jan-1993.)
       (New usage is discouraged.) $)
    ax-c16 $a |- ( A. x x = y -> ( ph -> A. x ph ) ) $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Rederive new axioms ax-4, ax-10, ax-6, ax-12, ax-13 from old
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Theorems ~ ax12fromc15 and ~ ax13fromc9 require some intermediate theorems
  that are included in this section.

$)

  $( This theorem repeats ~ sp under the name ~ axc5 , so that the metamath
     program's "verify markup" command will check that it matches axiom scheme
     ~ ax-c5 .  It is preferred that references to this theorem use the name
     ~ sp .  (Contributed by NM, 18-Aug-2017.)  (New usage is discouraged.)
     (Proof modification is discouraged.) $)
  axc5 $p |- ( A. x ph -> ph ) $=
    ( sp ) ABC $.

  $( Rederivation of axiom ~ ax-4 from ~ ax-c4 , ~ ax-c5 , ~ ax-gen and minimal
     implicational calculus { ~ ax-mp , ~ ax-1 , ~ ax-2 }.  See ~ axc4 for the
     derivation of ~ ax-c4 from ~ ax-4 .  (Contributed by NM, 23-May-2008.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  ax4fromc4 $p |- ( A. x ( ph -> ps ) -> ( A. x ph -> A. x ps ) ) $=
    ( wi wal ax-c4 ax-c5 syl5 mpg syl ) ABDZCEZACEZBDZCEZMBCEDLNDLODCKNCFMALBAC
    GKCGHIABCFJ $.

  $( Rederivation of axiom ~ ax-10 from ~ ax-c7 , ~ ax-c4 , ~ ax-c5 , ~ ax-gen
     and propositional calculus.  See ~ axc7 for the derivation of ~ ax-c7 from
     ~ ax-10 .  (Contributed by NM, 23-May-2008.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  ax10fromc7 $p |- ( -. A. x ph -> A. x -. A. x ph ) $=
    ( wal wn wi ax-c4 ax-c5 id mpg nsyl ax-c7 nsyl4 ) ABCZBCZDZBCZMDZBCZMPQEPRE
    BOQBFPNMOBGMMEMNEBAMBFMHIJIMBKL $.

  $( Rederivation of axiom ~ ax-6 from ~ ax-c7 , ~ ax-c10 , ~ ax-gen and
     propositional calculus.  See ~ axc10 for the derivation of ~ ax-c10 from
     ~ ax-6 .  Lemma L18 in [Megill] p. 446 (p. 14 of the preprint).
     (Contributed by NM, 14-May-1993.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  ax6fromc10 $p |- -. A. x -. x = y $=
    ( weq wn wal wi ax-c10 ax-c7 con4i mpg ) ABCZKDZAEDZAEZFMAMABGNKLAHIJ $.

  $( The setvar ` x ` is not free in ` A. x ph ` .  Example in Appendix in
     [Megill] p. 450 (p. 19 of the preprint).  Also Lemma 22 of [Monk2] p. 114.
     (Contributed by NM, 24-Jan-1993.)  (New usage is discouraged.) $)
  hba1-o $p |- ( A. x ph -> A. x A. x ph ) $=
    ( wal wn ax-c5 con2i ax10fromc7 con1i alimi 3syl ) ABCZKDZBCZDZNBCKBCMKLBEF
    LBGNKBKMABGHIJ $.

  ${
    axc4i-o.1 $e |- ( A. x ph -> ps ) $.
    $( Inference version of ~ ax-c4 .  (Contributed by NM, 3-Jan-1993.)
       (New usage is discouraged.) $)
    axc4i-o $p |- ( A. x ph -> A. x ps ) $=
      ( wal hba1-o alrimih ) ACEBCACFDG $.
  $}

  $( Proof of ~ equid from our older axioms.  This is often an axiom of
     equality in textbook systems, but we don't need it as an axiom since it
     can be proved from our other axioms (although the proof, as you can see
     below, is not as obvious as you might think).  This proof uses only axioms
     without distinct variable conditions and requires no dummy variables.  A
     simpler proof, similar to Tarski's, is possible if we make use of ~ ax-5 ;
     see the proof of ~ equid .  See ~ equid1ALT for an alternate proof.
     (Contributed by NM, 10-Jan-1993.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  equid1 $p |- x = x $=
    ( weq wal wn wi ax-c4 ax-c5 ax-c9 sylc mpg ax-c10 syl ax-c7 pm2.61i ) AABZA
    CZDZACZOROPEZACZORSERTEAQSAFRQQSQAGZUAAAAHIJOAAKLOAMN $.

  $( Proof of ~ equcomi from ~ equid1 , avoiding use of ~ ax-5 (the only use of
     ~ ax-5 is via ~ ax7 , so using ~ ax-7 instead would remove dependency on
     ~ ax-5 ).  (Contributed by BJ, 8-Jul-2021.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  equcomi1 $p |- ( x = y -> y = x ) $=
    ( weq equid1 ax7 mpi ) ABCAACBACADABAEF $.

  $( Commutation law for identical variable specifiers.  The antecedent and
     consequent are true when ` x ` and ` y ` are substituted with the same
     variable.  Lemma L12 in [Megill] p. 445 (p. 12 of the preprint).  Version
     of ~ aecom using ~ ax-c11 .  Unlike ~ axc11nfromc11 , this version does
     not require ~ ax-5 (see comment of ~ equcomi1 ).  (Contributed by NM,
     10-May-1993.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  aecom-o $p |- ( A. x x = y -> A. y y = x ) $=
    ( weq wal ax-c11 pm2.43i equcomi1 alimi syl ) ABCZADZJBDZBACZBDKLJABEFJMBAB
    GHI $.

  ${
    alequcoms-o.1 $e |- ( A. x x = y -> ph ) $.
    $( A commutation rule for identical variable specifiers.  Version of
       ~ aecoms using ~ ax-c11 .  (Contributed by NM, 10-May-1993.)
       (New usage is discouraged.) $)
    aecoms-o $p |- ( A. y y = x -> ph ) $=
      ( weq wal aecom-o syl ) CBECFBCEBFACBGDH $.
  $}

  $( All variables are effectively bound in an identical variable specifier.
     Version of ~ hbae using ~ ax-c11 .  (Contributed by NM, 13-May-1993.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  hbae-o $p |- ( A. x x = y -> A. z A. x x = y ) $=
    ( weq wal wi ax-c5 ax-c9 syl7 ax-c11 aecoms-o pm2.43i syl5 pm2.61ii axc4i-o
    wn ax-11 syl ) ABDZAEZSCEZAETCESUAACADCEZCBDCEZTUAFZTSUBPUCPUASAGABCHIUDACS
    ACJKUDBCTSBEZBCDBEUATUESABJLSBCJMKNOSACQR $.

  ${
    dral1-o.1 $e |- ( A. x x = y -> ( ph <-> ps ) ) $.
    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).  Version of
       ~ dral1 using ~ ax-c11 .  (Contributed by NM, 24-Nov-1994.)
       (New usage is discouraged.) $)
    dral1-o $p |- ( A. x x = y -> ( A. x ph <-> A. y ps ) ) $=
      ( weq wal hbae-o biimpd alimdh ax-c11 syld biimprd wi aecoms-o impbid ) C
      DFCGZACGZBDGZQRBCGSQABCCDCHQABEIJBCDKLQSADGZRQBADCDDHQABEMJTRNDCADCKOLP
      $.
  $}

  $( Rederivation of axiom ~ ax-12 from ~ ax-c15 , ~ ax-c11 (used through
     ~ dral1-o ), and other older axioms.  See theorem ~ axc15 for the
     derivation of ~ ax-c15 from ~ ax-12 .

     An open problem is whether we can prove this using ~ ax-c11n instead of
     ~ ax-c11 .

     This proof uses newer axioms ~ ax-4 and ~ ax-6 , but since these are
     proved from the older axioms above, this is acceptable and lets us avoid
     having to reprove several earlier theorems to use ~ ax-c4 and ~ ax-c10 .
     (Contributed by NM, 22-Jan-2007.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  ax12fromc15 $p |- ( x = y -> ( A. y ph -> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wi biidd dral1-o ax-1 alimi syl6bir a1d ax-c5 ax-c15 syl7 pm2.61i
    wn ) BCDZBEZRACEZRAFZBEZFZFSUCRSTABEUBAABCSAGHAUABARIJKLTASQRUBACMABCNOP $.

  $( Derive ~ ax-13 from ~ ax-c9 and other older axioms.

     This proof uses newer axioms ~ ax-4 and ~ ax-6 , but since these are
     proved from the older axioms above, this is acceptable and lets us avoid
     having to reprove several earlier theorems to use ~ ax-c4 and ~ ax-c10 .
     (Contributed by NM, 21-Dec-2015.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  ax13fromc9 $p |- ( -. x = y -> ( y = z -> A. x y = z ) ) $=
    ( weq wn wal wi ax-c5 con3i ax-c9 syl2im ax13b mpbir ) ABDZEZBCDZPAFZGZGOAC
    DZEZRGGONAFZETSAFZERUANNAHIUBSSAHIBCAJKQABCLM $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Legacy theorems using obsolete axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  These theorems were mostly intended to study properties of the older axiom
  schemes and are not useful outside of this section.  They should not be
  used outside of this section.  They may be deleted when they are deemed to no
  longer be of interest.

$)

  ${
    $d x ph $.
    $( Axiom to quantify a variable over a formula in which it does not occur.
       Axiom C5 in [Megill] p. 444 (p. 11 of the preprint).  Also appears as
       Axiom B6 (p. 75) of system S2 of [Tarski] p. 77 and Axiom C5-1 of
       [Monk2] p. 113.

       (This theorem simply repeats ~ ax-5 so that we can include the following
       note, which applies only to the obsolete axiomatization.)

       This axiom is _logically_ redundant in the (logically complete)
       predicate calculus axiom system consisting of ~ ax-gen , ~ ax-c4 ,
       ~ ax-c5 , ~ ax-11 , ~ ax-c7 , ~ ax-7 , ~ ax-c9 , ~ ax-c10 , ~ ax-c11 ,
       ~ ax-8 , ~ ax-9 , ~ ax-c14 , ~ ax-c15 , and ~ ax-c16 : in that system,
       we can derive any instance of ~ ax-5 not containing wff variables by
       induction on formula length, using ~ ax5eq and ~ ax5el for the basis
       together with ~ hbn , ~ hbal , and ~ hbim .  However, if we omit this
       axiom, our development would be quite inconvenient since we could work
       only with specific instances of wffs containing no wff variables - this
       axiom introduces the concept of a setvar variable not occurring in a wff
       (as opposed to just two setvar variables being distinct).  (Contributed
       by NM, 19-Aug-2017.)  (New usage is discouraged.)
       (Proof modification is discouraged.) $)
    ax5ALT $p |- ( ph -> A. x ph ) $=
      ( ax-5 ) ABC $.
  $}

  ${
    sps-o.1 $e |- ( ph -> ps ) $.
    $( Generalization of antecedent.  (Contributed by NM, 5-Jan-1993.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    sps-o $p |- ( A. x ph -> ps ) $=
      ( wal ax-c5 syl ) ACEABACFDG $.
  $}

  $( Bound-variable hypothesis builder for ` x = x ` .  This theorem tells us
     that any variable, including ` x ` , is effectively not free in
     ` x = x ` , even though ` x ` is technically free according to the
     traditional definition of free variable.  (The proof does not use
     ~ ax-c10 .)  (Contributed by NM, 13-Jan-2011.)  (Proof shortened by Wolf
     Lammen, 23-Mar-2014.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  hbequid $p |- ( x = x -> A. y x = x ) $=
    ( weq wal wi ax-c9 ax7 pm2.43i alimi a1d pm2.61ii ) BACZBDZMAACZNBDZEAABFMO
    NLNBLNBAAGHIJZPK $.

  $( Bound-variable hypothesis builder for ` x = x ` .  This theorem tells us
     that any variable, including ` x ` , is effectively not free in
     ` x = x ` , even though ` x ` is technically free according to the
     traditional definition of free variable.  (The proof uses only ~ ax-4 ,
     ~ ax-7 , ~ ax-c9 , and ~ ax-gen .  This shows that this can be proved
     without ~ ax6 , even though the theorem ~ equid cannot be.  A shorter
     proof using ~ ax6 is obtainable from ~ equid and ~ hbth .)  Remark added
     2-Dec-2015 NM:  This proof does implicitly use ~ ax6v , which is used for
     the derivation of ~ axc9 , unless we consider ~ ax-c9 the starting axiom
     rather than ~ ax-13 .  (Contributed by NM, 13-Jan-2011.)  (Revised by
     Mario Carneiro, 12-Oct-2016.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nfequid-o $p |- F/ y x = x $=
    ( weq hbequid nf5i ) AACBABDE $.

  $( Proof of a single axiom that can replace ~ ax-c5 and ~ ax-c7 .  See
     ~ axc5c7toc5 and ~ axc5c7toc7 for the rederivation of those axioms.
     (Contributed by Scott Fenton, 12-Sep-2005.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  axc5c7 $p |- ( ( A. x -. A. x ph -> A. x ph ) -> ph ) $=
    ( wal wn ax-c7 ax-c5 ja ) ABCZDBCHAABEABFG $.

  $( Rederivation of ~ ax-c5 from ~ axc5c7 .  Only propositional calculus is
     used for the rederivation.  (Contributed by Scott Fenton, 12-Sep-2005.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  axc5c7toc5 $p |- ( A. x ph -> ph ) $=
    ( wal wn wi ax-1 axc5c7 syl ) ABCZIDBCZIEAIJFABGH $.

  $( Rederivation of ~ ax-c7 from ~ axc5c7 .  Only propositional calculus is
     used for the rederivation.  (Contributed by Scott Fenton, 12-Sep-2005.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  axc5c7toc7 $p |- ( -. A. x -. A. x ph -> ph ) $=
    ( wal wn wi pm2.21 axc5c7 syl ) ABCZDBCZDJIEAJIFABGH $.

  $( Proof of a single axiom that can replace both ~ ax-c7 and ~ ax-11 .  See
     ~ axc711toc7 and ~ axc711to11 for the rederivation of those axioms.
     (Contributed by NM, 18-Nov-2006.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  axc711 $p |- ( -. A. x -. A. y A. x ph -> A. y ph ) $=
    ( wal wn ax-11 con3i alimi ax-c7 syl ) ABDCDZEZBDZEACDZBDZEZBDZENQMPLBKOACB
    FGHGNBIJ $.

  $( ` x ` is not free in ` A. x ph ` .  (Contributed by Mario Carneiro,
     11-Aug-2016.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  nfa1-o $p |- F/ x A. x ph $=
    ( wal hba1-o nf5i ) ABCBABDE $.

  $( Rederivation of ~ ax-c7 from ~ axc711 .  Note that ~ ax-c7 and ~ ax-11 are
     not used by the rederivation.  (Contributed by NM, 18-Nov-2006.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  axc711toc7 $p |- ( -. A. x -. A. x ph -> ph ) $=
    ( wal wn hba1-o con3i alimi axc711 ax-c5 3syl ) ABCZDZBCZDKBCZDZBCZDKAPMOLB
    KNABEFGFABBHABIJ $.

  $( Rederivation of ~ ax-11 from ~ axc711 .  Note that ~ ax-c7 and ~ ax-11 are
     not used by the rederivation.  (Contributed by NM, 18-Nov-2006.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  axc711to11 $p |- ( A. x A. y ph -> A. y A. x ph ) $=
    ( wal wn axc711toc7 con4i axc711 alimi syl ) ACDBDZKEZCDEZCDZABDZCDNKLCFGMO
    CACBHIJ $.

  $( Proof of a single axiom that can replace ~ ax-c5 , ~ ax-c7 , and ~ ax-11
     in a subsystem that includes these axioms plus ~ ax-c4 and ~ ax-gen (and
     propositional calculus).  See ~ axc5c711toc5 , ~ axc5c711toc7 , and
     ~ axc5c711to11 for the rederivation of those axioms.  This theorem extends
     the idea in Scott Fenton's ~ axc5c7 .  (Contributed by NM, 18-Nov-2006.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  axc5c711 $p |- ( ( A. x A. y -. A. x A. y ph -> A. x ph ) -> ph ) $=
    ( wal wn ax-c5 ax10fromc7 ax-c7 con1i alimi ax-11 3syl nsyl4 ja ) ACDZBDEZC
    DBDZABDAOAQACFOEZRCDPBDZCDQACGRSCSOOBHIJPCBKLMABFN $.

  $( Rederivation of ~ ax-c5 from ~ axc5c711 .  Only propositional calculus is
     used by the rederivation.  (Contributed by NM, 19-Nov-2006.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  axc5c711toc5 $p |- ( A. x ph -> ph ) $=
    ( wal wn wi ax-1 axc5c711 syl ) ABCZIBCDBCBCZIEAIJFABBGH $.

  $( Rederivation of ~ ax-c7 from ~ axc5c711 .  Note that ~ ax-c7 and ~ ax-11
     are not used by the rederivation.  The use of ~ alimi (which uses
     ~ ax-c5 ) is allowed since we have already proved ~ axc5c711toc5 .
     (Contributed by NM, 19-Nov-2006.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  axc5c711toc7 $p |- ( -. A. x -. A. x ph -> ph ) $=
    ( wal wn wi hba1-o con3i alimi sps-o pm2.21 axc5c711 3syl ) ABCZDZBCZDMBCZD
    ZBCZBCZDSMEASOROBQNBMPABFGHIGSMJABBKL $.

  $( Rederivation of ~ ax-11 from ~ axc5c711 .  Note that ~ ax-c7 and ~ ax-11
     are not used by the rederivation.  The use of ~ alimi (which uses
     ~ ax-c5 ) is allowed since we have already proved ~ axc5c711toc5 .
     (Contributed by NM, 19-Nov-2006.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  axc5c711to11 $p |- ( A. x A. y ph -> A. y A. x ph ) $=
    ( wal wn axc5c711toc7 con4i wi pm2.21 axc5c711 syl alimi nsyl4 ) ACDBDZNEZC
    DZEZCDZABDZCDRNOCFGQSCPBDZEZBDSPUAABUATSHATSIABCJKLPBFMLK $.

  $( ~ equid with existential quantifier without using ~ ax-c5 or ~ ax-5 .
     (Contributed by NM, 13-Jan-2011.)  (Proof shortened by Wolf Lammen,
     27-Feb-2014.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  equidqe $p |- -. A. y -. x = x $=
    ( weq wn wal ax6fromc10 ax7 pm2.43i con3i alimi mto ) AACZDZBEBACZDZBEBAFMO
    BNLNLBAAGHIJK $.

  $( A special case of ~ ax-c5 without using ~ ax-c5 or ~ ax-5 .  (Contributed
     by NM, 13-Jan-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  axc5sp1 $p |- ( A. y -. x = x -> -. x = x ) $=
    ( weq wn wal equidqe pm2.21i ) AACDZBEHABFG $.

  $( ~ equid with universal quantifier without using ~ ax-c5 or ~ ax-5 .
     (Contributed by NM, 13-Jan-2011.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  equidq $p |- A. y x = x $=
    ( weq wal wn equidqe ax10fromc7 hbequid con3i alrimih mt3 ) AACZBDZLEZBDABF
    MENBLBGLMABHIJK $.

  $( Alternate proof of ~ equid and ~ equid1 from older axioms ~ ax-c7 ,
     ~ ax-c10 and ~ ax-c9 .  (Contributed by NM, 10-Jan-1993.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  equid1ALT $p |- x = x $=
    ( weq wal wn wi ax-c9 pm2.43i alimi ax-c10 syl ax-c7 pm2.61i ) AABZACZDZACZ
    MPMNEZACMOQAOQAAAFGHMAAIJMAKL $.

  $( Rederivation of ~ ax-c11n from original version ~ ax-c11 .  See theorem
     ~ axc11 for the derivation of ~ ax-c11 from ~ ax-c11n .

     This theorem should not be referenced in any proof.  Instead, use
     ~ ax-c11n above so that uses of ~ ax-c11n can be more easily identified,
     or use ~ aecom-o when this form is needed for studies involving ~ ax-c11
     and omitting ~ ax-5 .  (Contributed by NM, 16-May-2008.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  axc11nfromc11 $p |- ( A. x x = y -> A. y y = x ) $=
    ( weq wal ax-c11 pm2.43i equcomi alimi syl ) ABCZADZJBDZBACZBDKLJABEFJMBABG
    HI $.

  ${
    nalequcoms-o.1 $e |- ( -. A. x x = y -> ph ) $.
    $( A commutation rule for distinct variable specifiers.  Version of
       ~ naecoms using ~ ax-c11 .  (Contributed by NM, 2-Jan-2002.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    naecoms-o $p |- ( -. A. y y = x -> ph ) $=
      ( weq wal aecom-o nsyl4 con1i ) ACBECFZBCEBFJABCGDHI $.
  $}

  $( All variables are effectively bound in a distinct variable specifier.
     Lemma L19 in [Megill] p. 446 (p. 14 of the preprint).  Version of ~ hbnae
     using ~ ax-c11 .  (Contributed by NM, 13-May-1993.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  hbnae-o $p |- ( -. A. x x = y -> A. z -. A. x x = y ) $=
    ( weq wal hbae-o hbn ) ABDAECABCFG $.

  ${
    dvelimf-o.1 $e |- ( ph -> A. x ph ) $.
    dvelimf-o.2 $e |- ( ps -> A. z ps ) $.
    dvelimf-o.3 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( Proof of ~ dvelimh that uses ~ ax-c11 but not ~ ax-c15 , ~ ax-c11n , or
       ~ ax-12 .  Version of ~ dvelimh using ~ ax-c11 instead of ~ axc11 .
       (Contributed by NM, 12-Nov-2002.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    dvelimf-o $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( weq wal wn wi hba1-o ax-c11 aecoms-o syl5 a1d wa hbnae-o hban ax-c9 imp
      a1i hbimd hbald ex pm2.61i equsalh albii 3imtr3g ) CDICJKZEDIZALZEJZUNCJZ
      BBCJCEICJZUKUNUOLZLUPUQUKUNUNEJZUPUOUMEMURUOLECUNECNOPQUPKZUKUQUSUKRZUMCE
      USUKECEESCDESTUTULACUSUKCCECSCDCSTUSUKULULCJLEDCUAUBAACJLUTFUCUDUEUFUGABE
      DGHUHZUNBCVAUIUJ $.
  $}

  ${
    dral2-o.1 $e |- ( A. x x = y -> ( ph <-> ps ) ) $.
    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       Part of Theorem 9.4 of [Megill] p. 448 (p. 16 of preprint).  Version of
       ~ dral2 using ~ ax-c11 .  (Contributed by NM, 27-Feb-2005.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    dral2-o $p |- ( A. x x = y -> ( A. z ph <-> A. z ps ) ) $=
      ( weq wal hbae-o albidh ) CDGCHABECDEIFJ $.
  $}

  ${
    $d t u v $.  $d t u x y $.  $d u w $.
    $( A "distinctor elimination" lemma with no restrictions on variables in
       the consequent, proved without using ~ ax-c16 .  Version of ~ aev using
       ~ ax-c11 .  (Contributed by NM, 8-Nov-2006.)  (Proof shortened by Andrew
       Salmon, 21-Jun-2011.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    aev-o $p |- ( A. x x = y -> A. z w = v ) $=
      ( vt vu weq wal hbae-o ax7 spimv alrimih equcomi aecoms-o axc4i-o aecom-o
      syl6 3syl ) ABHZAIZDEHZCABCJUAFBHZFIZGEHZGIZUBUAUCFABFJTUCAFAFBKLMUDFGHZF
      IZEGHZEIUFUCUGFUGBFBFHZUGBGBGHUJGFHUGBGFKGFNRLOPUHUIEFGEJUGUIFEFEGKLMEGQS
      UEUBGDGDEKLSM $.
  $}

  ${
    $d x z $.  $d y z $.
    $( Theorem to add distinct quantifier to atomic formula.  (This theorem
       demonstrates the induction basis for ~ ax-5 considered as a metatheorem.
       Do not use it for later proofs - use ~ ax-5 instead, to avoid reference
       to the redundant axiom ~ ax-c16 .)  (Contributed by NM, 10-Jan-1993.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ax5eq $p |- ( x = y -> A. z x = y ) $=
      ( weq wal wi ax-c9 ax-c16 pm2.61ii ) CADCECBDCEABDZJCEFABCGJCAHJCBHI $.
  $}

  ${
    $d w z x $.  $d w y $.
    $( Quantifier introduction when one pair of variables is distinct.  Version
       of ~ dveeq2 using ~ ax-c15 .  (Contributed by NM, 2-Jan-2002.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    dveeq2-o $p |- ( -. A. x x = y -> ( z = y -> A. x z = y ) ) $=
      ( vw weq ax-5 equequ2 dvelimf-o ) CDEZCBEZABDIAFJDFDBCGH $.
  $}

  ${
    $d x y $.
    $( A generalization of axiom ~ ax-c16 .  Version of ~ axc16g using
       ~ ax-c11 .  (Contributed by NM, 15-May-1993.)  (Proof shortened by
       Andrew Salmon, 25-May-2011.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    axc16g-o $p |- ( A. x x = y -> ( ph -> A. z ph ) ) $=
      ( weq wal aev-o ax-c16 biidd dral1-o biimprd sylsyld ) BCEBFDBEDFZAABFZAD
      FZBCDDBGABCHMONAADBMAIJKL $.
  $}

  ${
    $d w z x $.  $d w y $.
    $( Quantifier introduction when one pair of variables is distinct.  Version
       of ~ dveeq1 using ax-c11 .  (Contributed by NM, 2-Jan-2002.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    dveeq1-o $p |- ( -. A. x x = y -> ( y = z -> A. x y = z ) ) $=
      ( vw weq ax-5 equequ1 dvelimf-o ) DCEZBCEZABDIAFJDFDBCGH $.

    $( Version of ~ dveeq1 using ~ ax-c16 instead of ~ ax-5 .  (Contributed by
       NM, 29-Apr-2008.)  TODO:  Recover proof from older set.mm to remove use
       of ~ ax-5 .  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    dveeq1-o16 $p |- ( -. A. x x = y -> ( y = z -> A. x y = z ) ) $=
      ( vw weq ax5eq equequ1 dvelimh ) DCEBCEABDDCAFBCDFDBCGH $.
  $}

  ${
    $d x z $.  $d y z $.
    $( Theorem to add distinct quantifier to atomic formula.  This theorem
       demonstrates the induction basis for ~ ax-5 considered as a
       metatheorem.)  (Contributed by NM, 22-Jun-1993.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ax5el $p |- ( x e. y -> A. z x e. y ) $=
      ( weq wal wel wi ax-c14 ax-c16 pm2.61ii ) CADCECBDCEABFZKCEGABCHKCAIKCBIJ
      $.
  $}

  ${
    $d x z w $.
    $( This theorem shows that, given ~ ax-c16 , we can derive a version of
       ~ ax-c11n .  However, it is weaker than ~ ax-c11n because it has a
       distinct variable requirement.  (Contributed by Andrew Salmon,
       27-Jul-2011.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    axc11n-16 $p |- ( A. x x = z -> A. z z = x ) $=
      ( weq wal ax-c16 alrimiv axc4i-o equequ1 cbvalv a1i imbi12d albidv biimpi
      vw wi wb wex nfa1-o 19.23 alcoms albii ax6ev pm2.27 ax-mp alimi spv sps-o
      equequ2 syl sylbi 3syl ) ABCZADZANCZUNADZOZNDZADZBNCZUSBDZOZNDZBDZBACZBDU
      LUQAUMUPNUNABEFGURVCUQVBABULUPVANULUNUSUOUTABNHZUOUTPULUNUSABVEIJKLIMVBVD
      BVAVDNBVABDZNDUSBQZUTOZNDZVDVFVHNUSUTBUSBRSUAVIUTNDVDVHUTNVGVHUTOBNUBVGUT
      UCUDUEUSVDBNUSNDVDBUSVDNANABUHUFUGTUIUJTGUK $.
  $}

  ${
    $d w z x $.  $d w y $.
    $( Alternate proof of ~ dveel2 using ~ ax-c16 instead of ~ ax-5 .
       (Contributed by NM, 10-May-2008.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    dveel2ALT $p |- ( -. A. x x = y -> ( z e. y -> A. x z e. y ) ) $=
      ( vw wel ax5el elequ2 dvelimh ) CDECBEABDCDAFCBDFDBCGH $.
  $}

  ${
    ax12f.1 $e |- ( ph -> A. x ph ) $.
    $( Basis step for constructing a substitution instance of ~ ax-c15 without
       using ~ ax-c15 .  We can start with any formula ` ph ` in which ` x ` is
       not free.  (Contributed by NM, 21-Jan-2007.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ax12f $p |- ( -. A. x x = y ->
               ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $=
      ( weq wi wal wn ax-1 alrimih 2a1i ) ABCEZAFZBGFLBGHLAMBDALIJK $.
  $}

  ${
    $d x u v $.  $d y u v $.  $d z u v $.  $d w u v $.
    $( Basis step for constructing a substitution instance of ~ ax-c15 without
       using ~ ax-c15 .  Atomic formula for equality predicate.  (Contributed
       by NM, 22-Jan-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ax12eq $p |- ( -. A. x x = y ->
               ( x = y -> ( z = w -> A. x ( x = y -> z = w ) ) ) ) $=
      ( vu vv weq wal wn wi wa 19.26 a1i wb equequ1 equequ2 sps-o imbi12d exp32
      imbi2d equid ax-gen sylan9bb nfa1-o albid adantr mpbii sylbir axc9 impcom
      ad2antll adantrr equtrr alimi syl6 sylbid adantll ad2antrr mpbid biimprcd
      dral2-o imp adantlr ad2antlr ax-1 alrimiv adantl dveeq2-o im2anan9 sylibr
      wex ax6ev syl exlimdv mpi a1d 4cases ) ACGZAHZADGZAHZABGZAHIZWBCDGZWBWDJZ
      AHZJZJZJZVSWAKVRVTKZAHZWIVRVTALWKWCWBWGWKWCWBKZKAAGZWBWMJZAHZJZWGWOWMWNAW
      MWBAUAMUBMWKWPWGNWLWKWMWDWOWFWJWMWDNAVRWMCAGZVTWDACAOADCPZUCQZWKWNWEAWJAU
      DWKWMWDWBWSTUERUFUGSUHVSWAIZKZWCWBWGXAWLKVTWBVTJZAHZJZWGWTWLXDVSWTWLKZVTB
      DGZXCWBVTXFNWTWCABDOUKXEXFXFAHZXCWTWCXFXGJZWBWCWTXHBDAUIUJULXFXBABDAUMUNU
      OUPUQVSXDWGNWTWLVSVTWDXCWFVRVTWDNAACDOQZXBWEACAVSVTWDWBXITVARURUSSVSIZWAK
      ZWCWBWGXKWLKWQWBWQJZAHZJZWGXJWLXNWAXJWLKZWQCBGZXMWBWQXPNXJWCABCPZUKXOXPXP
      AHZXMXJWCXPXRJZWBXJWCXSCBAUIVBULXPXLAWBWQXPXQUTUNUOUPVCWAXNWGNXJWLWAWQWDX
      MWFVTWQWDNAWRQZXLWEADAWAWQWDWBXTTVARVDUSSXJWTKZWHWCYAWGWBYAEDGZEVKWGEDVLY
      AYBWGEYAFCGZFVKYBWGJZFCVLYAYCYDFYAYCYBWGYAYCYBKZKZFEGZWBYGJZAHZJWGYGYHAYG
      WBVEVFYFYGWDYIWFYEYGWDNZYAYCYGCEGYBWDFCEOEDCPUCZVGYFYEAHZYIWFNYFYCAHZYBAH
      ZKZYLYAYEYOXJYCYMWTYBYNACFVHADEVHVIVBYCYBALVJYLYHWEAYEAUDYLYGWDWBYEYJAYKQ
      TUEVMRUGSVNVOVNVOVPVPVQ $.
  $}

  ${
    $d x u v $.  $d y u v $.  $d z u v $.  $d w u v $.
    $( Basis step for constructing a substitution instance of ~ ax-c15 without
       using ~ ax-c15 .  Atomic formula for membership predicate.  (Contributed
       by NM, 22-Jan-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ax12el $p |- ( -. A. x x = y ->
               ( x = y -> ( z e. w -> A. x ( x = y -> z e. w ) ) ) ) $=
      ( vv vu weq wal wn wel wi wa wb elequ1 elequ2 adantl sps-o imbi2d imbi12d
      exp32 19.26 bitrd ax-5 dvelimf-o biimprcd alimi syl6 adantr sylbid nfa1-o
      sylan9bb albid sylbir ad2antll ax-c14 impcom adantrr adantll ad2antrr imp
      mpbid dral2-o adantlr ad2antlr wex ax6ev alrimiv dveeq2-o im2anan9 sylibr
      ax-1 syl mpbii exlimdv mpi a1d 4cases ) ACGZAHZADGZAHZABGZAHIZWBCDJZWBWDK
      ZAHZKZKZKZVSWALVRVTLZAHZWIVRVTAUAWKWCWBWGWKWCWBLZLAAJZWBWMKZAHZKZWGWLWPWK
      WLWMBBJZWOWBWMWQMWCWBWMBAJWQABANABBOUBZPWCWQWOKWBWCWQWQAHWOEEJZWQABEWSAUC
      WQEUCEBGWSBEJWQEBENEBBOUBUDWQWNAWBWMWQWRUEUFUGUHUIPWKWPWGMWLWKWMWDWOWFWJW
      MWDMAVRWMCAJZVTWDACANADCOZUKQZWKWNWEAWJAUJWKWMWDWBXBRULSUHVATUMVSWAIZLZWC
      WBWGXDWLLADJZWBXEKZAHZKZWGXCWLXHVSXCWLLZXEBDJZXGWBXEXJMXCWCABDNZUNXIXJXJA
      HZXGXCWCXJXLKZWBWCXCXMBDAUOUPUQXJXFAWBXEXJXKUEUFUGUIURVSXHWGMXCWLVSXEWDXG
      WFVRXEWDMAACDNQZXFWEACAVSXEWDWBXNRVBSUSVATVSIZWALZWCWBWGXPWLLWTWBWTKZAHZK
      ZWGXOWLXSWAXOWLLZWTCBJZXRWBWTYAMXOWCABCOZUNXTYAYAAHZXRXOWCYAYCKZWBXOWCYDC
      BAUOUTUQYAXQAWBWTYAYBUEUFUGUIVCWAXSWGMXOWLWAWTWDXRWFVTWTWDMAXAQZXQWEADAWA
      WTWDWBYERVBSVDVATXOXCLZWHWCYFWGWBYFFDGZFVEWGFDVFYFYGWGFYFECGZEVEYGWGKZECV
      FYFYHYIEYFYHYGWGYFYHYGLZLZEFJZWBYLKZAHZKWGYLYMAYLWBVKVGYKYLWDYNWFYJYLWDMZ
      YFYHYLCFJYGWDECFNFDCOUKZPYKYJAHZYNWFMYKYHAHZYGAHZLZYQYFYJYTXOYHYRXCYGYSAC
      EVHADFVHVIUTYHYGAUAVJYQYMWEAYJAUJYQYLWDWBYJYOAYPQRULVLSVMTVNVOVNVOVPVPVQ
      $.
  $}

  ${
    ax12indn.1 $e |- ( -. A. x x = y ->
               ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $.
    $( Induction step for constructing a substitution instance of ~ ax-c15
       without using ~ ax-c15 .  Negation case.  (Contributed by NM,
       21-Jan-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ax12indn $p |- ( -. A. x x = y ->
               ( x = y -> ( -. ph -> A. x ( x = y -> -. ph ) ) ) ) $=
      ( weq wal wn wi wa 19.8a exanali hbn1 con3 syl6 com23 alrimdh syl5bi syl5
      wex expd ) BCEZBFGZUAAGZUAUCHZBFZUAUCIZUFBSZUBUEUFBJUGUAAHZBFZGZUBUEUAABK
      UBUJUDBUABLUHBLUBUAUJUCUBUAAUIHUJUCHDAUIMNOPQRT $.

    ${
      ax12indi.2 $e |- ( -. A. x x = y ->
                 ( x = y -> ( ps -> A. x ( x = y -> ps ) ) ) ) $.
      $( Induction step for constructing a substitution instance of ~ ax-c15
         without using ~ ax-c15 .  Implication case.  (Contributed by NM,
         21-Jan-2007.)  (Proof modification is discouraged.)
         (New usage is discouraged.) $)
      ax12indi $p |- ( -. A. x x = y ->
           ( x = y -> ( ( ph -> ps ) -> A. x ( x = y -> ( ph -> ps ) ) ) ) ) $=
        ( weq wal wn wi wa ax12indn imp pm2.21 imim2i alimi syl6 ax-1 jad ex )
        CDGZCHIZUAABJZUAUCJZCHZJUBUAKZABUEUFAIZUAUGJZCHZUEUBUAUGUIJACDELMUHUDCU
        GUCUAABNOPQUFBUABJZCHZUEUBUABUKJFMUJUDCBUCUABAROPQST $.
    $}
  $}

  ${
    ax12indalem.1 $e |- ( -. A. x x = y ->
               ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $.
    $( Lemma for ~ ax12inda2 and ~ ax12inda .  (Contributed by NM,
       24-Jan-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ax12indalem $p |- ( -. A. y y = z -> ( -. A. x x = y ->
               ( x = y -> ( A. z ph -> A. x ( x = y -> A. z ph ) ) ) ) ) $=
      ( weq wal wn wi ax-1 axc4i-o a1i biidd a1d aecom-o con3i imp hbnae-o hban
      wa dral1-o imbi2d dral2-o 3imtr4d adantr simplr axc9 syl2an adantlr ax-c5
      aecoms-o hba1-o sylan2 alimdh syl2anc ax-11 wb nf5dh 19.21t albidh syl5ib
      wnf syl ad2antrr syld exp31 pm2.61ian ) BDFBGZCDFCGZHZBCFZBGHZVKADGZVKVMI
      ZBGZIZIZIZVHVRVJVHVQVLVHVPVKVPDBDBFDGZABGZVKVTIZBGZVMVOVTWBIVSAWABVTVKJKL
      AADBVSAMUAZVNWADBBVSVMVTVKWCUBUCUDUKNNUEVHHZVJTZVLVKVPWEVLTVKTZVMVKAIZBGZ
      DGZVOWFVLVKDGZVMWIIWEVLVKUFWEVKWJVLWEVKWJWDVSHZDCFDGZHZVKWJIZVJVSVHDBOPWL
      VIDCOPWKWMWNBCDUGQUHZQUIVLWJTAWHDVLWJDBCDRVKDULSWJVLVKAWHIZVKDUJVLVKWPEQU
      MUNUOWEWIVOIVLVKWIWGDGZBGWEVOWGDBUPWEWQVNBWDVJBBDBRCDBRSWEVKDVBWQVNUQWEVK
      DWDVJDBDDRCDDRSWOURVKADUSVCUTVAVDVEVFVG $.
  $}

  ${
    $d z y $.
    ax12inda2.1 $e |- ( -. A. x x = y ->
               ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $.
    $( Alternate proof of ~ ax12inda2 , slightly more direct and not requiring
       ~ ax-c16 .  (Contributed by NM, 4-May-2007.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ax12inda2ALT $p |- ( -. A. x x = y ->
               ( x = y -> ( A. z ph -> A. x ( x = y -> A. z ph ) ) ) ) $=
      ( weq wal wn wi ax-1 axc4i-o a1i biidd dral1-o imbi2d dral2-o a1d hbnae-o
      wa imp 3imtr4d aecoms-o simplr naecoms-o adantlr hba1-o hban ax-c5 sylan2
      dveeq1-o alimdh syl2anc ax-11 wnf nf5dh 19.21t syl albidh syl5ib ad2antrr
      wb syld exp31 pm2.61i ) BDFBGZBCFZBGHZVFADGZVFVHIZBGZIZIZIVEVLVGVEVKVFVKD
      BDBFDGZABGZVFVNIZBGZVHVJVNVPIVMAVOBVNVFJKLAADBVMAMNZVIVODBBVMVHVNVFVQOPUA
      UBQQVEHZVGVFVKVRVGSVFSZVHVFAIZBGZDGZVJVSVGVFDGZVHWBIVRVGVFUCVRVFWCVGVRVFW
      CVFWCIDBDBCUJUDZTUEVGWCSAWADVGWCDBCDRVFDUFUGWCVGVFAWAIZVFDUHVGVFWEETUIUKU
      LVRWBVJIVGVFWBVTDGZBGVRVJVTDBUMVRWFVIBBDBRVRVFDUNWFVIVAVRVFDBDDRWDUOVFADU
      PUQURUSUTVBVCVD $.

    $( Induction step for constructing a substitution instance of ~ ax-c15
       without using ~ ax-c15 .  Quantification case.  When ` z ` and ` y ` are
       distinct, this theorem avoids the dummy variables needed by the more
       general ~ ax12inda .  (Contributed by NM, 24-Jan-2007.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ax12inda2 $p |- ( -. A. x x = y ->
               ( x = y -> ( A. z ph -> A. x ( x = y -> A. z ph ) ) ) ) $=
      ( weq wal wn wi ax-1 axc16g-o syl5 a1d ax12indalem pm2.61i ) CDFCGZBCFZBG
      HZQADGZQSIZBGZIZIZIPUCRPUBQSTPUASQJTCDBKLMMABCDENO $.
  $}

  ${
    $d w ph $.  $d w x $.  $d w y $.  $d w z $.
    ax12inda.1 $e |- ( -. A. x x = w ->
               ( x = w -> ( ph -> A. x ( x = w -> ph ) ) ) ) $.
    $( Induction step for constructing a substitution instance of ~ ax-c15
       without using ~ ax-c15 .  Quantification case.  (When ` z ` and ` y `
       are distinct, ~ ax12inda2 may be used instead to avoid the dummy
       variable ` w ` in the proof.)  (Contributed by NM, 24-Jan-2007.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ax12inda $p |- ( -. A. x x = y ->
               ( x = y -> ( A. z ph -> A. x ( x = y -> A. z ph ) ) ) ) $=
      ( weq wal wn wi wex ax6ev wa ax12inda2 wb dveeq2-o imp albidh syl imbi12d
      hba1-o equequ2 sps-o notbid adantl imbi1d imbi2d mpbii ex exlimdv pm2.43i
      mpi ) BCGZBHZIZUMADHZUMUPJZBHZJZJZUOECGZEKUOUTJZECLUOVAVBEUOVAVBUOVAMZBEG
      ZBHZIZVDUPVDUPJZBHZJZJZJVBABEDFNVCVFUOVJUTVCVABHZVFUOOUOVAVKBCEPQZVKVEUNV
      KVDUMBVABUAZVAVDUMOZBECBUBZUCZRUDSVCVDUMVIUSVAVNUOVOUEVCVHURUPVCVKVHUROVL
      VKVGUQBVMVKVDUMUPVPUFRSUGTTUHUIUJULUK $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    ax12v2-o.1 $e |- ( x = z -> ( ph -> A. x ( x = z -> ph ) ) ) $.
    $( Rederivation of ~ ax-c15 from ~ ax12v (without using ~ ax-c15 or the
       full ~ ax-12 ).  Thus, the hypothesis ( ~ ax12v ) provides an alternate
       axiom that can be used in place of ~ ax-c15 .  See also ~ axc15 .
       (Contributed by NM, 2-Feb-2007.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ax12v2-o $p |- ( -. A. x x = y ->
                 ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $=
      ( weq wal wn wex wi ax6ev wa wb equequ2 adantl dveeq2-o imp nfa1-o imbi1d
      sps-o albid syl imbi2d imbi12d mpbii ex exlimdv mpi ) BCFZBGHZDCFZDIUIAUI
      AJZBGZJZJZDCKUJUKUODUJUKUOUJUKLZBDFZAUQAJZBGZJZJUOEUPUQUIUTUNUKUQUIMUJDCB
      NZOUPUSUMAUPUKBGZUSUMMUJUKVBBCDPQVBURULBUKBRUKURULMBUKUQUIAVASTUAUBUCUDUE
      UFUGUH $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    ax12a2-o.1 $e |- ( x = z -> ( A. z ph -> A. x ( x = z -> ph ) ) ) $.
    $( Derive ~ ax-c15 from a hypothesis in the form of ~ ax-12 , without using
       ~ ax-12 or ~ ax-c15 .  The hypothesis is weaker than ~ ax-12 , with
       ` z ` both distinct from ` x ` and not occurring in ` ph ` .  Thus, the
       hypothesis provides an alternate axiom that can be used in place of
       ~ ax-12 , if we also have ~ ax-c11 , which this proof uses.  As theorem
       ~ ax12 shows, the distinct variable conditions are optional.  An open
       problem is whether we can derive this with ~ ax-c11n instead of
       ~ ax-c11 .  (Contributed by NM, 2-Feb-2007.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    ax12a2-o $p |- ( -. A. x x = y ->
                 ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $=
      ( wal weq wi ax-5 syl5 ax12v2-o ) ABCDAADFBDGZLAHBFADIEJK $.
  $}

  $( Show that ~ ax-c11 can be derived from ~ ax-c11n and ~ ax-12 .  An open
     problem is whether this theorem can be derived from ~ ax-c11n and the
     others when ~ ax-12 is replaced with ~ ax-c15 or ~ ax12v .  See theorem
     ~ axc11nfromc11 for the rederivation of ~ ax-c11n from ~ axc11 .

     Normally, ~ axc11 should be used rather than ~ ax-c11 or ~ axc11-o ,
     except by theorems specifically studying the latter's properties.
     (Contributed by NM, 16-May-2008.)  (Proof modification is discouraged.)
     (New usage is discouraged.) $)
  axc11-o $p |- ( A. x x = y -> ( A. x ph -> A. y ph ) ) $=
    ( weq wal wi ax-c11n ax12 equcoms sps-o pm2.27 al2imi sylsyld ) BCDZBECBDZC
    EABEZOAFZCEZACEBCGNPRFZBSCBACBHIJOQACOAKLM $.

$( (End of "Predicate calculus with equality:  Older axiomatization".) $)

  ${
    $d k A w $.  $d j B $.  $d j k K w $.  $d j k M w $.  $d j k N w $.
    $d j k ph w $.
    fsumshftd.1 $e |- ( ph -> K e. ZZ ) $.
    fsumshftd.2 $e |- ( ph -> M e. ZZ ) $.
    fsumshftd.3 $e |- ( ph -> N e. ZZ ) $.
    fsumshftd.4 $e |- ( ( ph /\ j e. ( M ... N ) ) -> A e. CC ) $.
    fsumshftd.5 $e |- ( ( ph /\ j = ( k - K ) ) -> A = B ) $.
    $( Index shift of a finite sum with a weaker "implicit substitution"
       hypothesis than ~ fsumshft .  The proof demonstrates how this can be
       derived starting from from ~ fsumshft .  (Contributed by NM,
       1-Nov-2019.) $)
    fsumshftd $p |- ( ph -> sum_ j e. ( M ... N ) A =
                             sum_ k e. ( ( M + K ) ... ( N + K ) ) B ) $=
      ( vw cfz co csu cv wcel cc csb caddc nfcv nfcsb1v csbeq1a cbvsumi cmin wa
      wi nfv nfel1 nfim eleq1 anbi2d eleq1d imbi12d chvar csbeq1 fsumshft ovexd
      weq cvv csbied sumeq2sdv eqtrd syl5eq ) AGHOPZBDQVGDNRZBUAZNQZGFUBPHFUBPO
      PZCEQZVGBVIDNNBUCDVHBUDZDVHBUEZUFAVJVKDERZFUGPZBUAZEQVLAVIVQNEFGHIJKADRZV
      GSZUHZBTSZUIAVHVGSZUHZVITSZUIDNWCWDDWCDUJDVITVMUKULDNVAZVTWCWAWDWEVSWBAVR
      VHVGUMUNWEBVITVNUOUPLUQDVHVPBURUSAVKVQCEADVPBCVBAVOFUGUTMVCVDVEVF $.
  $}

  $( Define restricted description binder.  In case it doesn't exist, we return
     a set which is not a member of the domain of discourse ` A ` .  See also
     comments for ~ df-iota .  (Contributed by NM, 15-Sep-2011.)  (Revised by
     Mario Carneiro, 15-Oct-2016.)  WARNING:  THIS "AXIOM", WHICH IS THE OLD
     ~ df-riota , CONFLICTS WITH (THE NEW) ~ df-riota AND MAKES THE SYSTEM IN
     set.mm INCONSISTENT. IT IS TEMPORARY AND WILL BE DELETED AFTER ALL USES
     ARE ELIMINATED. $)
  ax-riotaBAD $a |- ( iota_ x e. A ph ) = if ( E! x e. A ph ,
    ( iota x ( x e. A /\ ph ) ) , ( Undef ` { x | x e. A } ) ) $.

  ${
    $d x A $.
    $( Closure of restricted iota.  (Contributed by NM, 28-Feb-2013.)  (Revised
       by Mario Carneiro, 24-Dec-2016.) $)
    riotaclbgBAD $p |- ( A e. V
          -> ( E! x e. A ph <-> ( iota_ x e. A ph ) e. A ) ) $=
      ( wcel wreu crio riotacl wn cund cfv undefnel2 cv cio cab cif ax-riotaBAD
      wa iffalse abid1 fveq2i 3eqtr4g eleq1d notbid syl5ibrcom con4d impbid2 )
      CDEZABCFZABCGZCEZABCHUHUIUKUHUKIUIIZCJKZCEZICDLULUKUNULUJUMCULUIBMCEZARBN
      ZUOBOZJKZPURUJUMUIUPURSABCQCUQJBCTUAUBUCUDUEUFUG $.

    riotaclb.1 $e |- A e. _V $.
    $( Closure of restricted iota.  (Contributed by NM, 15-Sep-2011.) $)
    riotaclbBAD $p |- ( E! x e. A ph <-> ( iota_ x e. A ph ) e. A ) $=
      ( cvv wcel wreu crio wb riotaclbgBAD ax-mp ) CEFABCGABCHCFIDABCEJK $.
  $}

  ${
    $d x y z A $.  $d x z B $.  $d x z C $.  $d z D $.  $d z ph $.
    $d x z ps $.
    riotasvd.1 $e |- ( ph
        -> D = ( iota_ x e. A A. y e. B ( ps -> x = C ) ) ) $.
    riotasvd.2 $e |- ( ph -> D e. A ) $.
    $( Deduction version of ~ riotasv .  (Contributed by NM, 4-Mar-2013.)
       (Revised by Mario Carneiro, 15-Oct-2016.) $)
    riotasvd $p |- ( ( ph /\ A e. V ) -> ( ( y e. B /\ ps ) -> D = C ) ) $=
      ( vz wcel wa cv wceq wi wral adantr syl crio wsbc wreu eqeltrrd wb adantl
      riotaclbgBAD mpbird riotasbc eqeq1 imbi2d ralbidv nfra1 nfcv nfeq2 ralbid
      nfriota sbcie2g mpbid rsp impd eqeq1d sylibrd ) AEIMZNZDOFMZBNBCOZGPZQZDF
      RZCEUAZGPZHGPVEVFBVLVEBVLQZDFRZVFVMQVEVJCVKUBZVNVEVJCEUCZVOVEVPVKEMZVEHVK
      EAHVKPVDJSZAHEMVDKSUDZVDVPVQUEAVJCEIUGUFUHVJCEUITVEVQVOVNUEVSVJBLOZGPZQZD
      FRVNCLVKEVGVTPZVIWBDFWCVHWABVGVTGUJUKULVTVKPZWBVMDFDVTVKVJDCEVIDFUMDEUNUQ
      UOWDWAVLBVTVKGUJUKUPURTUSVMDFUTTVAVEHVKGVRVBVC $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x C $.  $d y E $.  $d x ps $.
    riotasv2d.1 $e |- F/ y ph $.
    riotasv2d.2 $e |- ( ph -> F/_ y F ) $.
    riotasv2d.3 $e |- ( ph -> F/ y ch ) $.
    riotasv2d.4 $e |- ( ph
        -> D = ( iota_ x e. A A. y e. B ( ps -> x = C ) ) ) $.
    riotasv2d.5 $e |- ( ( ph /\ y = E ) -> ( ps <-> ch ) ) $.
    riotasv2d.6 $e |- ( ( ph /\ y = E ) -> C = F ) $.
    riotasv2d.7 $e |- ( ph -> D e. A ) $.
    riotasv2d.8 $e |- ( ph -> E e. B ) $.
    riotasv2d.9 $e |- ( ph -> ch ) $.
    $( Value of description binder ` D ` for a single-valued class expression
       ` C ( y ) ` (as in e.g. ~ reusv2 ).  Special case of ~ riota2f .
       (Contributed by NM, 2-Mar-2013.) $)
    riotasv2d $p |- ( ( ph /\ A e. V ) -> D = F ) $=
      ( wcel cvv wceq elex wa adantr cv wi eleq1 adantl anbi12d imbi12d adantlr
      wb eqeq2d riotasvd nfv nfan nfcvd nfvd nfand wnfc wral crio nfra1 nfriota
      wnf nfcv nfceqdf mpbiri nfeqd nfimd vtocldf mp2and sylan2 ) FLUBAFUCUBZIK
      UDZFLUEAVQUFZJGUBZCVRAVTVQTUGZACVQUAUGVSEUHZGUBZBUFZIHUDZUIZVTCUFZVRUIZEJ
      GWAAWBJUDZWFWHUOVQAWIUFZWDWGWEVRWJWCVTBCWIWCVTUOAWBJGUJUKQULWJHKIRUPUMUNA
      BDEFGHIUCPSUQAVQEMVQEURUSVSEJUTAWHEVHVQAWGVREAVTCEAVTEVAOVBAEIKAEIVCEBDUH
      HUDUIZEGVDZDFVEZVCWLEDFWKEGVFEFVIVGAEIWMMPVJVKNVLVMUGVNVOVP $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x C $.  $d x y E $.  $d x ph $.
    riotasv2s.2 $e |- D = ( iota_ x e. A A. y e. B ( ph -> x = C ) ) $.
    $( The value of description binder ` D ` for a single-valued class
       expression ` C ( y ) ` (as in e.g. ~ reusv2 ) in the form of a
       substitution instance.  Special case of ~ riota2f .  (Contributed by NM,
       3-Mar-2013.)  (Proof shortened by Mario Carneiro, 6-Dec-2016.) $)
    riotasv2s $p |- ( ( A e. V /\ D e. A /\ ( E e. B /\ [. E / y ]. ph ) )
            -> D = [_ E / y ]_ C ) $=
      ( wcel wsbc wa w3a csb wceq cv nfan a1i adantl 3simpc simp1 wi wral nfra1
      crio nfcv nfriota nfcxfr nfel1 nfv nfsbc1v nfcsb1v wnf wb sbceq1a csbeq1a
      wnfc simpl simprl simprr riotasv2d syl2anc ) DIKZGDKZHEKZACHLZMZNVEVHMZVD
      GCHFOZPVDVEVHUAVDVEVHUBVIAVGBCDEFGHVJIVEVHCCGDCGABQFPUCZCEUDZBDUFZJVLCBDV
      KCEUECDUGUHUIUJVFVGCVFCUKACHULZRRCVJURVICHFUMSVGCUNVIVNSGVMPVIJSCQHPZAVGU
      OVIACHUPTVOFVJPVICHFUQTVEVHUSVEVFVGUTVEVFVGVAVBVC $.
  $}

  ${
    $d x y A $.  $d x B $.  $d x C $.  $d x ph $.
    riotasv.1 $e |- A e. _V $.
    riotasv.2 $e |- D = ( iota_ x e. A A. y e. B ( ph -> x = C ) ) $.
    $( Value of description binder ` D ` for a single-valued class expression
       ` C ( y ) ` (as in e.g. ~ reusv2 ).  Special case of ~ riota2f .
       (Contributed by NM, 26-Jan-2013.)  (Proof shortened by Mario Carneiro,
       6-Dec-2016.) $)
    riotasv $p |- ( ( D e. A /\ y e. B /\ ph ) -> D = C ) $=
      ( wcel cv wceq cvv wa wi wral crio a1i id riotasvd mpan2 3impib ) GDJZCKE
      JZAGFLZUCDMJUDANUEOHUCABCDEFGMGABKFLOCEPBDQLUCIRUCSTUAUB $.
  $}

  ${
    $d x y A $.  $d x B $.  $d x C $.  $d x ps $.
    riotasv3d.1 $e |- F/ y ph $.
    riotasv3d.2 $e |- ( ph -> F/ y th ) $.
    riotasv3d.3 $e |- ( ph
           -> D = ( iota_ x e. A A. y e. B ( ps -> x = C ) ) ) $.
    riotasv3d.4 $e |- ( ( ph /\ C = D ) -> ( ch <-> th ) ) $.
    riotasv3d.5 $e |- ( ph -> ( ( y e. B /\ ps ) -> ch ) ) $.
    riotasv3d.6 $e |- ( ph -> D e. A ) $.
    riotasv3d.7 $e |- ( ph -> E. y e. B ps ) $.
    $( A property ` ch ` holding for a representative of a single-valued class
       expression ` C ( y ) ` (see e.g. ~ reusv2 ) also holds for its
       description binder ` D ` (in the form of property ` th ` ).
       (Contributed by NM, 5-Mar-2013.)  (Revised by Mario Carneiro,
       15-Oct-2016.) $)
    riotasv3d $p |- ( ( ph /\ A e. V ) -> th ) $=
      ( wcel wa cvv elex wrex adantr wi wral nfv imp adantrl wceq riotasvd impr
      cv wb eqcomd syldan mpbid exp45 ralrimd wnf r19.23t syl sylibd mpd sylan2
      ) GKSAGUASZDGKUBAVFTBFHUCZDAVGVFRUDAVFVGDUEZAVFBDUEZFHUFZVHAVFVIFHLVFFUGA
      VFFUMHSZBDAVFVKBTZTZTZCDAVLCVFAVLCPUHUIAVMIJUJCDUNVNJIAVFVLJIUJABEFGHIJUA
      NQUKULUOOUPUQURUSADFUTVJVHUNMBDFHVAVBVCUHVDVE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Experiments with weak deduction theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    elimhyps.1 $e |- [. B / x ]. ph $.
    $( A version of ~ elimhyp using explicit substitution.  (Contributed by NM,
       15-Jun-2019.) $)
    elimhyps $p |- [. if ( ph , x , B ) / x ]. ph $=
      ( cv cif wsbc sbceq1a dfsbcq elimhyp ) AABABEZCFZGABCGKCABLHABCLIDJ $.
  $}

  ${
    dedths.1 $e |- [. if ( ph , x , B ) / x ]. ps $.
    $( A version of weak deduction theorem ~ dedth using explicit substitution.
       (Contributed by NM, 15-Jun-2019.) $)
    dedths $p |- ( ph -> ps ) $=
      ( cv wsbc cif dfsbcq wb wceq sbcid ifbi mp2b mpbir dedth 3imtr3i ) ACCFZG
      ZBCRGZABSTBCSRDHZGZRDBCRUAIUBBCARDHZGZESAJUAUCKUBUDJACLZSARDMBCUAUCINOPUE
      BCLQ $.
  $}

  ${
    $d x A $.
    $( Closure law for negative of reals.  Demonstrates use of weak deduction
       theorem with explicit substitution.  The proof is much longer than that
       of ~ renegcl .  (Contributed by NM, 15-Jun-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    renegclALT $p |- ( A e. RR -> -u A e. RR ) $=
      ( vx cv cneg cr wcel wceq negeq eleq1d cc0 cif wsbc csb cvv ax-mp eqeltri
      c0ex wb sbcel1g mpbir vex ifex csbnegg csbvarg 0re elimhyps mpbi renegcli
      dedths vtoclga ) BCZDZEFZADZEFBAEUKAGULUNEUKAHIUKEFZUMBJUMBUOUKJKZLZBUPUL
      MZEFZURBUPUKMZDZEUPNFZURVAGUOUKJBUAQUBZBUPUKNUCOUTUOBUPLZUTEFZUOBJUOBJLZB
      JUKMZEFZVGJEJNFZVGJGQBJNUDOUEPVIVFVHRQBJUKENSOTUFVBVDVERVCBUPUKENSOUGUHPV
      BUQUSRVCBUPULENSOTUIUJ $.
  $}

  ${
    elimhyps2.1 $e |- [. B / x ]. ph $.
    $( Generalization of ~ elimhyps that is not useful unless we can separately
       prove ` |- A e. _V ` .  (Contributed by NM, 13-Jun-2019.) $)
    elimhyps2 $p |- [. if ( [. A / x ]. ph , A , B ) / x ]. ph $=
      ( wsbc cif dfsbcq elimhyp ) ABCFZABJCDGZFABDFCDABCKHABDKHEI $.
  $}

  ${
    dedths2.1 $e |- [. if ( [. A / x ]. ph , A , B ) / x ]. ps $.
    $( Generalization of ~ dedths that is not useful unless we can separately
       prove ` |- A e. _V ` .  (Contributed by NM, 13-Jun-2019.) $)
    dedths2 $p |- ( [. A / x ]. ph -> [. A / x ]. ps ) $=
      ( wsbc cif dfsbcq dedth ) ACDGZBCDGBCKDEHZGDEBCDLIFJ $.
  $}

  $( Version of ~ 19.9t for universal quantifier.  (Contributed by NM,
     9-Nov-2020.) $)
  19.9alt $p |- ( F/ x ph -> ( A. x ph <-> ph ) ) $=
    ( wnf wn wex wal wb nfnt 19.9t syl con2bid alex syl6rbbr ) ABCZAADZBEZDABFN
    PANOBCPOGABHOBIJKABLM $.

$(
  @{
    nfndALT.1 @e |- ( ph -> F/ x ps ) @.
    @( Deduction associated with ~ nfnt .  (Contributed by Mario Carneiro,
       24-Sep-2016.) @)
    nfndALT @p |- ( ph -> F/ x -. ps ) @=
      ? @.
  @}
$)

  ${
    nfcxfrdf.0 $e |- F/ x ph $.
    nfcxfrdf.1 $e |- ( ph -> A = B ) $.
    nfcxfrdf.2 $e |- ( ph -> F/_ x B ) $.
    $( A utility lemma to transfer a bound-variable hypothesis builder into a
       definition.  (Contributed by NM, 19-Nov-2020.) $)
    nfcxfrdf $p |- ( ph -> F/_ x A ) $=
      ( wnfc nfceqdf mpbird ) ABCHBDHGABCDEFIJ $.
  $}

  ${
    nfded.1 $e |- ( ph -> F/_ x A ) $.
    nfded.2 $e |- ( F/_ x A -> B = C ) $.
    nfded.3 $e |- F/_ x B $.
    $( A deduction theorem that converts a not-free inference directly to
       deduction form.  The first hypothesis is the hypothesis of the deduction
       form.  The second is an equality deduction (e.g.
       ` ( F/_ x A -> U. { y | A. x y e. A } = U. A ) ` ) that starts from
       ~ abidnf .  The last is assigned to the inference form (e.g.
       ` F/_ x U. { y | A. x y e. A } ` ) whose hypothesis is satisfied using
       ~ nfaba1 .  (Contributed by NM, 19-Nov-2020.) $)
    nfded $p |- ( ph -> F/_ x C ) $=
      ( wnfc wb nfnfc1 nfceqdf syl mpbii ) ABDIZBEIZHABCIZOPJFQBDEBCKGLMN $.
  $}

  ${
    nfded2.1 $e |- ( ph -> F/_ x A ) $.
    nfded2.2 $e |- ( ph -> F/_ x B ) $.
    nfded2.3 $e |- ( ( F/_ x A /\ F/_ x B ) -> C = D ) $.
    nfded2.4 $e |- F/_ x C $.
    $( A deduction theorem that converts a not-free inference directly to
       deduction form.  The first 2 hypotheses are the hypotheses of the
       deduction form.  The third is an equality deduction (e.g.
       ` ( ( F/_ x A /\ F/_ x B ) `
       ` -> <. { y | A. x y e. A } , { y | A. x y e. B } >. = <. A , B >. ) `
       for ~ nfopd ) that starts from ~ abidnf .  The last is assigned to the
       inference form (e.g.
       ` F/_ x <. { y | A. x y e. A } , { y | A. x y e. B } >. ` for ~ nfop )
       whose hypotheses are satisfied using ~ nfaba1 .  (Contributed by NM,
       19-Nov-2020.) $)
    nfded2 $p |- ( ph -> F/_ x D ) $=
      ( wnfc wb wa nfnfc1 nfan nfceqdf syl2anc mpbii ) ABEKZBFKZJABCKZBDKZSTLGH
      UAUBMBEFUAUBBBCNBDNOIPQR $.
  $}

$(
  @{
    nfded2a.1 @e |- ( ph -> F/_ x A ) @.
    nfded2a.2 @e |- ( ph -> F/_ x B ) @.
    nfded2a.3 @e |- ( ph -> C = D ) @.
    nfded2a.4 @e |- F/_ x C @.
    @( A deduction theorem that converts a not-free inference directly to
       deduction form.  The first 2 hypotheses are the hypotheses of the
       deduction form.  The third is an equality deduction (e.g. ` ( ph `
       ` -> <. { y | A. x y e. A } , { y | A. x y e. B } >. = <. A , B >. ) `
       for ~ nfopd ) that starts from ~ abidnf .  The last is assigned to the
       inference form (e.g.
       ` F/_ x <. { y | A. x y e. A } , { y | A. x y e. B } >. ` for ~ nfop )
       whose hypotheses are satisfied using ~ nfaba1 .  (Contributed by NM,
       13-Nov-2020.) @)
    nfded2a @p |- ( ph -> F/_ x D ) @=
      ? ? ? nfded2a.4 ? ? ? ? ? ? nfded2a.1 nfded2a.2 jca ? ? ? ? ? ? nfceqdf
      syl mpbii @.
  @}
$)

  ${
    $d y A $.  $d x y $.  $d y ph $.
    nfunidALT2.1 $e |- ( ph -> F/_ x A ) $.
    $( Deduction version of ~ nfuni .  (Contributed by NM, 19-Nov-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nfunidALT2 $p |- ( ph -> F/_ x U. A ) $=
      ( vy wcel wal cab cuni wnfc nfaba1 nfuni nfnfc1 abidnf unieqd nfceqdf syl
      cv wb mpbii ) ABERCFZBGEHZIZJZBCIZJZBUBUABEKLABCJZUDUFSDUGBUCUEBCMUGUBCBE
      CNOPQT $.
  $}

  ${
    $d y A $.  $d x y $.  $d y ph $.
    nfunidALT.1 $e |- ( ph -> F/_ x A ) $.
    $( Deduction version of ~ nfuni .  (Contributed by NM, 19-Nov-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    nfunidALT $p |- ( ph -> F/_ x U. A ) $=
      ( vy cv wcel wal cab cuni wnfc abidnf unieqd nfaba1 nfuni nfded ) ABCEFCG
      ZBHEIZJCJDBCKRCBECLMBRQBENOP $.
  $}

  ${
    $d z B $.  $d z A $.  $d x z $.
    nfopdALT.1 $e |- ( ph -> F/_ x A ) $.
    nfopdALT.2 $e |- ( ph -> F/_ x B ) $.
    $( Deduction version of bound-variable hypothesis builder ~ nfop .  This
       shows how the deduction version of a not-free theorem such as ~ nfop can
       be created from the corresponding not-free inference theorem.
       (Contributed by NM, 19-Nov-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    nfopdALT $p |- ( ph -> F/_ x <. A , B >. ) $=
      ( vz cv wcel wal cab cop wnfc wa wceq abidnf adantr adantl opeq12d nfaba1
      nfop nfded2 ) ABCDGHZCIZBJGKZUCDIZBJGKZLCDLEFBCMZBDMZNUECUGDUHUECOUIBGCPQ
      UIUGDOUHBGDPRSBUEUGUDBGTUFBGTUAUB $.
  $}

$(
  @{
    @d k x y @.  @d k y ph @.  @d k y A @.
    nfprodd.1 @e |- ( ph -> F/_ x A ) @.
    nfprodd.2 @e |- ( ph -> F/_ x B ) @.
    @( Bound-variable hypothesis builder for product: if ` x ` is (effectively)
       not free in ` A ` and ` B ` , it is not free in ` prod_ k e. A B ` .
       (Contributed by NM, 14-Nov-2020.) @)
    nfprodd @p |- ( ph -> F/_ x prod_ k e. A B ) @=
      ( vy vj cv wcel wal cab cprod wnfc wa wceq abidnf prodeq1d nfaba1 nfcv id
      adantr a1i nfcsbd syl 3eqtr4g adantl eqtrd nfcprod nfded2 ) ABCDHJZCKZBLH
      MZULDKZBLHMZENZCDENZFGBCOZBDOZPUQCUPENZURUSUQVAQUTUSUNCUPEBHCRSUCUTVAURQU
      S????????????????BIJUAUD?UBUE?UF??UGUHUIBUNUPEUMBHTUOBHTUJUK @.
  @}
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Miscellanea
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Recover the commutative law of addition for complex numbers from the
     Abelian group structure.  (Contributed by NM, 17-Mar-2013.)
     (Proof modification is discouraged.) $)
  cnaddcom $p |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) = ( B + A ) ) $=
    ( cnx cbs cfv cc cop cplusg caddc cpr cabl wcel wceq eqid cnaddabl cvv cnex
    co grpbase ax-mp addex grpplusg ablcom mp3an1 ) CDEFGCHEIGJZKLAFLBFLABIRBAI
    RMUEUENZOFIUEABFPLFUEDEMQFIUEPUFSTIPLIUEHEMUAFIUEPUFUBTUCUD $.

  ${
    $d g K $.
    toycom.1 $e |- C = { g e. Abel | ( Base ` g ) = CC } $.
    toycom.2 $e |- .+ = ( +g ` K ) $.
    $( Show the commutative law for an operation ` O ` on a toy structure class
       ` C ` of commuatitive operations on ` CC ` .  This illustrates how a
       structure class can be partially specialized.  In practice, we would
       ordinarily define a new constant such as "CAbel" in place of ` C ` .
       (Contributed by NM, 17-Mar-2013.)
       (Proof modification is discouraged.) $)
    toycom $p |- ( ( K e. C /\ A e. CC /\ B e. CC )
                    -> ( A .+ B ) = ( B .+ A ) ) $=
      ( wcel cc w3a cfv co cabl cbs wceq 3ad2ant1 eleqtrrd eqid oveqi cplusg cv
      crab ssrab2 eqsstri sseli simp2 fveq2 eqeq1d elrab2 simprbi simp3 syl3anc
      ablcom 3eqtr4g ) FCIZAJIZBJIZKZABFUALZMZBAUTMZABDMBADMUSFNIZAFOLZIBVDIVAV
      BPUPUQVCURCNFCEUBZOLZJPZENUCNGVGENUDUEUFQUSAJVDUPUQURUGUPUQVDJPZURUPVCVHV
      GVHEFNCVEFPVFVDJVEFOUHUIGUJUKQZRUSBJVDUPUQURULVIRVDUTFABVDSUTSUNUMDUTABHT
      DUTBAHTUO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Atoms, hyperplanes, and covering in a left vector space (or module)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c LSAtoms $.
  $c LSHyp $.

  $( Extend class notation with all 1-dim subspaces (atoms) of a left module or
     left vector space. $)
  clsa $a class LSAtoms $.

  $( Extend class notation with all subspaces of a left module or left vector
     space that are hyperplanes. $)
  clsh $a class LSHyp $.

  ${
    $d v w $.
    $( Define the set of all 1-dim subspaces (atoms) of a left module or left
       vector space.  (Contributed by NM, 9-Apr-2014.) $)
    df-lsatoms $a |- LSAtoms = ( w e. _V |-> ran ( v e. ( ( Base ` w ) \
                 { ( 0g ` w ) } ) |-> ( ( LSpan ` w ) ` { v } ) ) ) $.
  $}

  ${
    $d s v w $.
    $( Define the set of all hyperplanes of a left module or left vector space.
       Also called co-atoms, these are subspaces that are one dimension less
       that the full space.  (Contributed by NM, 29-Jun-2014.) $)
    df-lshyp $a |- LSHyp = ( w e. _V |-> { s e. ( LSubSp ` w ) |
       ( s =/= ( Base ` w ) /\ E. v e. ( Base ` w )
           ( ( LSpan ` w ) ` ( s u. { v } ) ) = ( Base ` w ) ) } ) $.
  $}

  ${
    $d w N $.  $d s w S $.  $d v w V $.  $d s v w W $.
    lshpset.v $e |- V = ( Base ` W ) $.
    lshpset.n $e |- N = ( LSpan ` W ) $.
    lshpset.s $e |- S = ( LSubSp ` W ) $.
    lshpset.h $e |- H = ( LSHyp ` W ) $.
    $( The set of all hyperplanes of a left module or left vector space.  The
       vector ` v ` is called a generating vector for the hyperplane.
       (Contributed by NM, 29-Jun-2014.) $)
    lshpset $p |- ( W e. X -> H = { s e. S | ( s =/= V /\
                   E. v e. V ( N ` ( s u. { v } ) ) = V ) } ) $=
      ( vw cfv cv wceq cvv cbs clspn clss wcel clsh wne csn cun wrex crab fveq2
      wa elex syl6eqr neeq2d fveq1d eqeq12d rexeqbidv anbi12d rabeqbidv eqeltri
      df-lshyp fvex rabex fvmpt syl syl5eq ) FGUAZCFUBNZHOZEUCZVGAOUDUEZDNZEPZA
      EUFZUIZHBUGZLVEFQUAVFVNPFGUJMFVGMOZRNZUCZVIVOSNZNZVPPZAVPUFZUIZHVOTNZUGVN
      QUBVOFPZWBVMHWCBWDWCFTNZBVOFTUHKUKWDVQVHWAVLWDVPEVGWDVPFRNEVOFRUHIUKZULWD
      VTVKAVPEWFWDVSVJVPEWDVIVRDWDVRFSNDVOFSUHJUKUMWFUNUOUPUQMAHUSVMHBBWEQKFTUT
      URVAVBVCVD $.

    $d s N $.  $d s v U $.  $d s V $.
    $( The predicate "is a hyperplane" (of a left module or left vector space).
       (Contributed by NM, 29-Jun-2014.) $)
    islshp $p |- ( W e. X -> ( U e. H <-> ( U e. S /\ U =/= V
        /\ E. v e. V ( N ` ( U u. { v } ) ) = V ) ) ) $=
      ( vs wcel cv wne cun cfv wceq wa csn wrex crab lshpset eleq2d neeq1 uneq1
      w3a fveq2d eqeq1d rexbidv anbi12d elrab 3anass bitr4i syl6bb ) GHNZCDNCMO
      ZFPZURAOUAZQZERZFSZAFUBZTZMBUCZNZCBNZCFPZCUTQZERZFSZAFUBZUHZUQDVFCABDEFGH
      MIJKLUDUEVGVHVIVMTZTVNVEVOMCBURCSZUSVIVDVMURCFUFVPVCVLAFVPVBVKFVPVAVJEURC
      UTUGUIUJUKULUMVHVIVMUNUOUP $.
  $}

  ${
    $d v S $.  $d v U $.  $d v V $.  $d v W $.  $d v ph $.
    islshpsm.v $e |- V = ( Base ` W ) $.
    islshpsm.n $e |- N = ( LSpan ` W ) $.
    islshpsm.s $e |- S = ( LSubSp ` W ) $.
    islshpsm.p $e |- .(+) = ( LSSum ` W ) $.
    islshpsm.h $e |- H = ( LSHyp ` W ) $.
    islshpsm.w $e |- ( ph -> W e. LMod ) $.
    $( Hyperplane properties expressed with subspace sum.  (Contributed by NM,
       3-Jul-2014.) $)
    islshpsm $p |- ( ph -> ( U e. H <-> ( U e. S /\ U =/= V /\
                   E. v e. V ( U .(+) ( N ` { v } ) ) = V ) ) ) $=
      ( wcel cun cfv wceq wa wne cv csn wrex w3a co clmod wb islshp syl simplrl
      ad2antrr lspid syl2anc uneq1d fveq2d wss lssss snssi adantl lspun syl3anc
      lspcl lsmsp 3eqtr4rd eqeq1d rexbidva pm5.32da bicomd df-3an 3bitr4g bitrd
      ) AEFPZEDPZEHUAZEBUBZUCZQGRZHSZBHUDZUEZVNVOEVQGRZCUFZHSZBHUDZUEZAIUGPZVMW
      AUHOBDEFGHIUGJKLNUIUJAVNVOTZVTTZWHWETZWAWFAWJWIAWHWEVTAWHTZWDVSBHWKVPHPZT
      ZWCVRHWMEGRZWBQZGRZEWBQZGRZVRWCWMWOWQGWMWNEWBWMWGVNWNESAWGWHWLOULZAVNVOWL
      UKZDEGILKUMUNUOUPWMWGEHUQZVQHUQZVRWPSWSWMVNXAWTDEHIJLURUJWLXBWKVPHUSUTZEV
      QGHIJKVAVBWMWGVNWBDPZWCWRSWSWTWMWGXBXDWSXCDVQGHIJLKVCUNCDEWBGILKMVDVBVEVF
      VGVHVIVNVOVTVJVNVOWEVJVKVL $.
  $}

  ${
    $d v U $.  $d v W $.
    lshplss.s $e |- S = ( LSubSp ` W ) $.
    lshplss.h $e |- H = ( LSHyp ` W ) $.
    lshplss.w $e |- ( ph -> W e. LMod ) $.
    lshplss.u $e |- ( ph -> U e. H ) $.
    $( A hyperplane is a subspace.  (Contributed by NM, 3-Jul-2014.) $)
    lshplss $p |- ( ph -> U e. S ) $=
      ( vv wcel cbs cfv wne cv csn cun clspn clmod eqid wceq wrex w3a wb islshp
      syl mpbid simp1d ) ACBKZCELMZNZCJOPQERMZMUJUAJUJUBZACDKZUIUKUMUCZIAESKUNU
      OUDHJBCDULUJESUJTULTFGUEUFUGUH $.
  $}

  ${
    $d v U $.  $d v V $.  $d v W $.
    lshpne.v $e |- V = ( Base ` W ) $.
    lshpne.h $e |- H = ( LSHyp ` W ) $.
    lshpne.w $e |- ( ph -> W e. LMod ) $.
    lshpne.u $e |- ( ph -> U e. H ) $.
    $( A hyperplane is not equal to the vector space.  (Contributed by NM,
       4-Jul-2014.) $)
    lshpne $p |- ( ph -> U =/= V ) $=
      ( vv clss cfv wcel wne cv csn cun clspn clmod eqid wceq w3a wb islshp syl
      wrex mpbid simp2d ) ABEKLZMZBDNZBJOPQERLZLDUAJDUFZABCMZUJUKUMUBZIAESMUNUO
      UCHJUIBCULDESFULTUITGUDUEUGUH $.
  $}

  ${
    lshpnel.v $e |- V = ( Base ` W ) $.
    lshpnel.n $e |- N = ( LSpan ` W ) $.
    lshpnel.p $e |- .(+) = ( LSSum ` W ) $.
    lshpnel.h $e |- H = ( LSHyp ` W ) $.
    lshpnel.w $e |- ( ph -> W e. LMod ) $.
    lshpnel.u $e |- ( ph -> U e. H ) $.
    lshpnel.x $e |- ( ph -> X e. V ) $.
    lshpnel.e $e |- ( ph -> ( U .(+) ( N ` { X } ) ) = V ) $.
    $( A hyperplane's generating vector does not belong to the hyperplane.
       (Contributed by NM, 3-Jul-2014.) $)
    lshpnel $p |- ( ph -> -. X e. U ) $=
      ( wcel wceq cfv adantr wne wn lshpne wa csn co csubg clss clmod lsssssubg
      wss eqid syl lshplss sseldd lspsncl syl2anc simpr lspsnel5a lsmss2 eqtr3d
      syl3anc ex necon3ad mpd ) ACFUAHCQZUBACDFGILMNUCAVFCFAVFCFRAVFUDZCHUEESZB
      UFZCFVGCGUGSZQVHVJQVHCUKVICRVGGUHSZVJCVGGUIQZVKVJUKAVLVFMTZVKGVKULZUJUMZA
      CVKQVFAVKCDGVNLMNUNTZUOVGVKVJVHVOVGVLHFQZVHVKQVMAVQVFOTVKEFGHIVNJUPUQUOVG
      VKCEGHVNJVMVPAVFURUSBCVHGKUTVBAVIFRVFPTVAVCVDVE $.
  $}

  ${
    $d v N $.  $d v .(+) $.  $d v U $.  $d v V $.  $d v W $.  $d v X $.
    $d v ph $.
    lshpnelb.v $e |- V = ( Base ` W ) $.
    lshpnelb.n $e |- N = ( LSpan ` W ) $.
    lshpnelb.p $e |- .(+) = ( LSSum ` W ) $.
    lshpnelb.h $e |- H = ( LSHyp ` W ) $.
    lshpnelb.w $e |- ( ph -> W e. LVec ) $.
    lshpnelb.u $e |- ( ph -> U e. H ) $.
    lshpnelb.x $e |- ( ph -> X e. V ) $.
    $( The subspace sum of a hyperplane and the span of an element equals the
       vector space iff the element is not in the hyperplane.  (Contributed by
       NM, 2-Oct-2014.) $)
    lshpnelb $p |- ( ph -> ( -. X e. U <-> ( U .(+) ( N ` { X } ) ) = V ) ) $=
      ( vv wcel cfv adantr wss wn csn co wceq wa wrex clss wne eqid clvec clmod
      cv w3a lveclmod syl islshpsm mpbid simp3d wpss simp1l simp2 csubg lshplss
      lsssssubg sseldd lspsncl syl2anc lsmub1 lsmub2 nelne1 sylan necomd df-pss
      lspsnid sylanbrc 3ad2ant1 lsmcl syl3anc lssss simpr adantlr 3adant2 lsmcv
      sseqtr4d syl211anc simp3 eqtrd rexlimdv3a mpd lshpnel impbida ) AHCQUAZCH
      UBERZBUCZFUDZAWLUEZCPULZUBERBUCZFUDZPFUFZWOAWTWLACGUGRZQZCFUHZWTACDQZXBXC
      WTUMNAPBXACDEFGIJXAUIZKLAGUJQZGUKQZMGUNUOZUPUQURSWPWSWOPFWPWQFQZWSUMZWNWR
      FXJAXICWNUSZWNWRTZWNWRUDAWLXIWSUTWPXIWSVAWPXIXKWSWPCWNTZCWNUHXKAXMWLACGVB
      RZQZWMXNQZXMAXAXNCAXGXAXNTXHXAGXEVDUOZAXACDGXELXHNVCZVEZAXAXNWMXQAXGHFQZW
      MXAQZXHOXAEFGHIXEJVFVGZVEZBCWMGKVHVGSWPWNCAHWNQWLWNCUHAWMWNHAXOXPWMWNTXSY
      CBCWMGKVIVGAXGXTHWMQXHOEFGHIJVNVGVEHWNCVJVKVLCWNVMVOVPWPWSXLXIAWSXLWLAWSU
      EWNFWRAWNFTZWSAWNXAQZYDAXGXBYAYEXHXRYBBXACWMGXEKVQVRZXAWNFGIXEVSUOSAWSVTW
      DWAWBAXIUEBXACWNEFGWQIXEJKAXFXIMSAXBXIXRSAYEXIYFSAXIVTWCWEWPXIWSWFWGWHWIA
      WOUEBCDEFGHIJKLAXGWOXHSAXDWONSAXTWOOSAWOVTWJWK $.
  $}

  ${
    $d v N $.  $d v U $.  $d v V $.  $d v W $.  $d v X $.
    lshpnel2.v $e |- V = ( Base ` W ) $.
    lshpnel2.s $e |- S = ( LSubSp ` W ) $.
    lshpnel2.n $e |- N = ( LSpan ` W ) $.
    lshpnel2.p $e |- .(+) = ( LSSum ` W ) $.
    lshpnel2.h $e |- H = ( LSHyp ` W ) $.
    lshpnel2.w $e |- ( ph -> W e. LVec ) $.
    lshpnel2.u $e |- ( ph -> U e. S ) $.
    lshpnel2.t $e |- ( ph -> U =/= V ) $.
    lshpnel2.x $e |- ( ph -> X e. V ) $.
    lshpnel2.e $e |- ( ph -> -. X e. U ) $.
    $( Condition that determines a hyperplane.  (Contributed by NM,
       3-Oct-2014.)  (New usage is discouraged.) $)
    lshpnel2N $p |- ( ph -> ( U e. H <-> ( U .(+) ( N ` { X } ) ) = V ) ) $=
      ( wcel vv csn cfv co wceq wa wn adantr clvec simpr lshpnelb mpbid wne cun
      wrex clmod lveclmod syl lspid syl2anc uneq1d fveq2d wss lssss snssd lspun
      cv syl3anc lspsncl lsmsp 3eqtr4rd eqeq1d biimpa sneq uneq2d rspcev w3a wb
      islshp mpbir3and impbida ) ADETZDIUBZFUCZBUDZGUEZAWBUFZIDTUGZWFAWHWBSUHWG
      BDEFGHIJLMNAHUITZWBOUHAWBUJAIGTZWBRUHUKULAWFUFZWBDCTZDGUMZDUAVGZUBZUNZFUC
      ZGUEZUAGUOZAWLWFPUHAWMWFQUHWKWJDWCUNZFUCZGUEZWSAWJWFRUHAWFXBAWEXAGADFUCZW
      DUNZFUCZDWDUNZFUCZXAWEAXDXFFAXCDWDAHUPTZWLXCDUEAWIXHOHUQURZPCDFHKLUSUTVAV
      BAXHDGVCZWCGVCXAXEUEXIAWLXJPCDGHJKVDURAIGRVEDWCFGHJLVFVHAXHWLWDCTZWEXGUEX
      IPAXHWJXKXIRCFGHIJKLVIUTBCDWDFHKLMVJVHVKVLVMWRXBUAIGWNIUEZWQXAGXLWPWTFXLW
      OWCDWNIVNVOVBVLVPUTWKWIWBWLWMWSVQVRAWIWFOUHUACDEFGHUIJLKNVSURVTWA $.
  $}

  ${
    lshpne0.v $e |- V = ( Base ` W ) $.
    lshpne0.n $e |- N = ( LSpan ` W ) $.
    lshpne0.p $e |- .(+) = ( LSSum ` W ) $.
    lshpne0.h $e |- H = ( LSHyp ` W ) $.
    lshpne0.o $e |- .0. = ( 0g ` W ) $.
    lshpne0.w $e |- ( ph -> W e. LMod ) $.
    lshpne0.u $e |- ( ph -> U e. H ) $.
    lshpne0.x $e |- ( ph -> X e. V ) $.
    lshpne0.e $e |- ( ph -> ( U .(+) ( N ` { X } ) ) = V ) $.
    $( The member of the span in the hyperplane definition does not belong to
       the hyperplane.  (Contributed by NM, 14-Jul-2014.) $)
    lshpne0 $p |- ( ph -> X =/= .0. ) $=
      ( wcel adantr wn wne lshpnel wa csn cdif clss eqid clmod lshplss lssneln0
      cfv simpr eldifsni syl mpdan ) AHCSUAZHIUBZABCDEFGHJKLMOPQRUCAUQUDZHFIUEU
      FSURUSGUGULZCFGHIJNUTUHZAGUISUQOTACUTSUQAUTCDGVAMOPUJTAHFSUQQTAUQUMUKHFIU
      NUOUP $.
  $}

  ${
    $d k v N $.  $d k v U $.  $d k V $.  $d k v X $.  $d k v .0. $.  $d k W $.
    $d k v ph $.
    lshpdisj.v $e |- V = ( Base ` W ) $.
    lshpdisj.o $e |- .0. = ( 0g ` W ) $.
    lshpdisj.n $e |- N = ( LSpan ` W ) $.
    lshpdisj.p $e |- .(+) = ( LSSum ` W ) $.
    lshpdisj.h $e |- H = ( LSHyp ` W ) $.
    lshpdisj.w $e |- ( ph -> W e. LVec ) $.
    lshpdisj.u $e |- ( ph -> U e. H ) $.
    lshpdisj.x $e |- ( ph -> X e. V ) $.
    lshpdisj.e $e |- ( ph -> ( U .(+) ( N ` { X } ) ) = V ) $.
    $( A hyperplane and the span in the hyperplane definition are disjoint.
       (Contributed by NM, 3-Jul-2014.) $)
    lshpdisj $p |- ( ph -> ( U i^i ( N ` { X } ) ) = { .0. } ) $=
      ( cfv wcel vv vk csn cin cv wa wceq cvsca co csca cbs wrex clmod wb clvec
      lveclmod syl adantr eqid lspsnel syl2anc wi lshpnel ad2antrr clss lshplss
      wne wn simpr lspsneli lspsnel4 mtbid ex necon4ad eleq1 imbi12d syl5ibrcom
      eqeq1 com23 com24 imp31 rexlimdva sylbid expimpd elin velsn 3imtr4g ssrdv
      wss lspsncl lssincl syl3anc lss0ss eqssd ) ACHUCESZUDZIUCZAUAWPWQAUAUEZCT
      ZWRWOTZUFWRIUGZWRWPTWRWQTAWSWTXAAWSUFZWTWRUBUEZHGUHSZUIZUGZUBGUJSZUKSZULZ
      XAXBGUMTZHFTZWTXIUNAXJWSAGUOTZXJOGUPUQZURAXKWSQURXDWRUBXGXHEFGHXGUSZXHUSZ
      JXDUSZLUTVAXBXFXAUBXHAWSXCXHTZXFXAVBAXFXQWSXAAXQXFWSXAVBZAXQXFXRVBAXQUFZX
      RXFXECTZXEIUGZVBXSXTXEIXSXEIVGZXTVHXSYBUFZHCTZXTAYDVHXQYBABCDEFGHJLMNXMPQ
      RVCVDYCGVESZCEFGHXEIJKYEUSZLAXLXQYBOVDACYETZXQYBAYECDGYFNXMPVFZVDAXKXQYBQ
      VDXSXEWOTYBXSXCXDXGXHEFGHJXPXNXOLAXJXQXMURAXQVIAXKXQQURVJURXSYBVIVKVLVMVN
      XFWSXTXAYAWRXECVOWRXEIVRVPVQVMVSVTWAWBWCWDWRCWOWEUAIWFWGWHAXJWPYETZWQWPWI
      XMAXJYGWOYETZYIXMYHAXJXKYJXMQYEEFGHJYFLWJVAYECWOGYFWKWLYEGWPIKYFWMVAWN $.
  $}

  ${
    $d v T $.  $d v U $.  $d v W $.  $d v ph $.
    lshpcmp.h $e |- H = ( LSHyp ` W ) $.
    lshpcmp.w $e |- ( ph -> W e. LVec ) $.
    lshpcmp.t $e |- ( ph -> T e. H ) $.
    lshpcmp.u $e |- ( ph -> U e. H ) $.
    $( If two hyperplanes are comparable, they are equal.  (Contributed by NM,
       9-Oct-2014.) $)
    lshpcmp $p |- ( ph -> ( T C_ U <-> T = U ) ) $=
      ( vv wss wceq cfv wne eqid wcel syl lshplss wa adantr wpss wn clvec clmod
      cbs lveclmod lshpne clss lssss cv csn clspn clsm co wi w3a islshpsm mpbid
      wrex simp3d id adantrr simpr syl3an1 3expia simplrr sseq2d eqeq2d 3imtr3d
      lsmcv exp42 rexlimdv mpd necon3ad df-pss simplbi2 necon1bd syl5com eqimss
      mpid impbid1 ) ABCKZBCLZABCUAZUBZWBWCACEUEMZNWEACDWFEWFOZFAEUCPZEUDPGEUFQ
      ZIUGAWDCWFAWDCWFKZCWFLZACEUHMZPZWJAWLCDEWLOZFWIIRZWLCWFEWGWNUIQABJUJZUKEU
      LMZMEUMMZUNZWFLZJWFUSZWDWJWKUOZUOZABWLPZBWFNZXAABDPXDXEXAUPHAJWRWLBDWQWFE
      WGWQOZWNWROZFWIUQURUTAWTXCJWFAWPWFPZWTWDXBAXHWTSSZWDSZCWSKZCWSLZWJWKXIWDX
      KXLXIAXHSZWDXKXLAXHXMWTXMVAVBXMWRWLBCWQWFEWPWGWNXFXGAWHXHGTAXDXHAWLBDEWNF
      WIHRTAWMXHWOTAXHVCVJVDVEXJWSWFCAXHWTWDVFZVGXJWSWFCXNVHVIVKVLVMVTVNVMWBWDB
      CWDWBBCNBCVOVPVQVRBCVSWA $.
  $}

  ${
    lshpin.h $e |- H = ( LSHyp ` W ) $.
    lshpin.w $e |- ( ph -> W e. LVec ) $.
    lshpin.t $e |- ( ph -> T e. H ) $.
    lshpin.u $e |- ( ph -> U e. H ) $.
    $( The intersection of two different hyperplanes is not a hyperplane.
       (Contributed by NM, 29-Oct-2014.)  (New usage is discouraged.) $)
    lshpinN $p |- ( ph -> ( ( T i^i U ) e. H <-> T = U ) ) $=
      ( cin wcel wceq wa wss inss1 clvec adantr simpr lshpcmp mpbii inss2 inidm
      eqtr3d ex syl5eqel ineq2 eleq1d syl5ibcom impbid ) ABCJZDKZBCLZAUKULAUKMZ
      UJBCUMUJBNUJBLBCOUMUJBDEFAEPKUKGQZAUKRZABDKUKHQSTUMUJCNUJCLBCUAUMUJCDEFUN
      UOACDKUKIQSTUCUDABBJZDKULUKAUPBDBUBHUEULUPUJDBCBUFUGUHUI $.
  $}

  ${
    $d v w N $.  $d v w V $.  $d v w x W $.  $d v w .0. $.  $d v x X $.
    lsatset.v $e |- V = ( Base ` W ) $.
    lsatset.n $e |- N = ( LSpan ` W ) $.
    lsatset.z $e |- .0. = ( 0g ` W ) $.
    lsatset.a $e |- A = ( LSAtoms ` W ) $.
    $( The set of all 1-dim subspaces (atoms) of a left module or left vector
       space.  (Contributed by NM, 9-Apr-2014.)  (Revised by Mario Carneiro,
       22-Sep-2015.) $)
    lsatset $p |- ( W e. X ->
      A = ran ( v e. ( V \ { .0. } ) |-> ( N ` { v } ) ) ) $=
      ( vw wcel cfv csn crn cvv cbs c0g clspn clsa cdif cv cmpt wceq elex fveq2
      syl6eqr sneqd difeq12d fveq1d mpteq12dv rneqd df-lsatoms cun fvex eqeltri
      c0 rnex p0ex unex wf wss fvrn0 a1i fmpti frn ax-mp ssexi fvmpt syl syl5eq
      eqid ) EFMZBEUANZADGOZUBZAUCZOZCNZUDZPZKVNEQMVOWBUEEFUFLEALUCZRNZWCSNZOZU
      BZVSWCTNZNZUDZPWBQUAWCEUEZWJWAWKAWGWIVQVTWKWDDWFVPWKWDERNDWCERUGHUHWKWEGW
      KWEESNGWCESUGJUHUIUJWKVSWHCWKWHETNZCWCETUGIUHUKULUMLAUNWBCPZUROZUOZWMWNCC
      WLQIETUPUQUSUTVAVQWOWAVBWBWOVCAVQWOVTWAWAVMVTWOMVRVQMCVSVDVEVFVQWOWAVGVHV
      IVJVKVL $.

    $d v U $.  $d v x N $.  $d x U $.  $d x V $.  $d x .0. $.
    $( The predicate "is a 1-dim subspace (atom)" (of a left module or left
       vector space).  (Contributed by NM, 9-Apr-2014.)  (Revised by Mario
       Carneiro, 24-Jun-2014.) $)
    islsat $p |- ( W e. X -> ( U e. A <-> E. x e. ( V \ { .0. } )
                  U = ( N ` { x } ) ) ) $=
      ( wcel csn cdif cv cfv cmpt crn wceq wrex lsatset eleq2d eqid fvex syl6bb
      elrnmpti ) FGMZCBMCAEHNOZAPNZDQZRZSZMCUKTAUIUAUHBUMCABDEFGHIJKLUBUCAUIUKC
      ULULUDUJDUEUGUF $.

    $( The span of a nonzero singleton is an atom.  TODO: make this obsolete
       and use ~ lsatlspsn instead?  (Contributed by NM, 9-Apr-2014.)  (Revised
       by Mario Carneiro, 24-Jun-2014.) $)
    lsatlspsn2 $p |- ( ( W e. LMod /\ X e. V /\ X =/= .0. )
           -> ( N ` { X } ) e. A ) $=
      ( vv clmod wcel wne w3a csn cfv cv wceq cdif wrex 3simpc sylibr eqid sneq
      wa eldifsn fveq2d eqeq2d rspcev sylancl wb islsat 3ad2ant1 mpbird ) DLMZE
      CMZEFNZOZEPZBQZAMZVAKRZPZBQZSZKCFPTZUAZUSEVGMZVAVASZVHUSUQURUFVIUPUQURUBE
      CFUGUCVAUDVFVJKEVGVCESZVEVAVAVKVDUTBVCEUEUHUIUJUKUPUQVBVHULURKAVABCDLFGHI
      JUMUNUO $.

    lsatlspsn.w $e |- ( ph -> W e. LMod ) $.
    lsatlspsn.x $e |- ( ph -> X e. ( V \ { .0. } ) ) $.
    $( The span of a nonzero singleton is an atom.  (Contributed by NM,
       16-Jan-2015.) $)
    lsatlspsn $p |- ( ph -> ( N ` { X } ) e. A ) $=
      ( vv csn cfv wcel cv wceq clmod cdif wrex eqid sneq fveq2d eqeq2d sylancl
      rspcev wb islsat syl mpbird ) AFOZCPZBQZUNNRZOZCPZSZNDGOUAZUBZAFUTQUNUNSZ
      VAMUNUCUSVBNFUTUPFSZURUNUNVCUQUMCUPFUDUEUFUHUGAETQUOVAUILNBUNCDETGHIJKUJU
      KUL $.
  $}

  ${
    $d v N $.  $d v U $.  $d v V $.  $d v W $.  $d v X $.
    islsati.v $e |- V = ( Base ` W ) $.
    islsati.n $e |- N = ( LSpan ` W ) $.
    islsati.a $e |- A = ( LSAtoms ` W ) $.
    $( A 1-dim subspace (atom) (of a left module or left vector space) equals
       the span of some vector.  (Contributed by NM, 1-Oct-2014.) $)
    islsati $p |- ( ( W e. X /\ U e. A ) -> E. v e. V U = ( N ` { v } ) ) $=
      ( c0g cfv csn cdif wss wcel wa cv wceq wrex difss islsat biimpa ssrexv
      eqid mpsyl ) EFKLZMZNZEOFGPZCBPZQCARMDLSZAUITZULAETEUHUAUJUKUMABCDEFGUGHI
      UGUEJUBUCULAUIEUDUF $.
  $}

  ${
    $d v U $.  $d v W $.  $d v .0. $.  $d v ph $.
    lsateln0.z $e |- .0. = ( 0g ` W ) $.
    lsateln0.a $e |- A = ( LSAtoms ` W ) $.
    lsateln0.w $e |- ( ph -> W e. LMod ) $.
    lsateln0.u $e |- ( ph -> U e. A ) $.
    $( A 1-dim subspace (atom) (of a left module or left vector space) contains
       a nonzero vector.  (Contributed by NM, 2-Jan-2015.) $)
    lsateln0 $p |- ( ph -> E. v e. U v =/= .0. ) $=
      ( cv wcel cbs cfv csn wrex clmod eqid syl wa cdif wne clspn wceq wb mpbid
      islsat eldifi lspsnid syl2an eleq2 syl5ibrcom reximdva mpd eldifsn anbi1i
      anass bitri simprbi ancomd reximi2 ) ABKZDLZBEMNZFOZUAZPZVBFUBZBDPADVBOEU
      CNZNZUDZBVFPZVGADCLZVLJAEQLZVMVLUEIBCDVIVDEQFVDRZVIRZGHUGSUFAVKVCBVFAVBVF
      LZTVCVKVBVJLZAVNVBVDLZVRVQIVBVDVEUHVIVDEVBVOVPUIUJDVJVBUKULUMUNVCVHBVFDVQ
      VCTZVHVCVTVSVHVCTZVTVSVHTZVCTVSWATVQWBVCVBVDFUOUPVSVHVCUQURUSUTVAS $.
  $}

  ${
    $d v S $.  $d v W $.
    lsatlss.s $e |- S = ( LSubSp ` W ) $.
    lsatlss.a $e |- A = ( LSAtoms ` W ) $.
    $( The set of 1-dim subspaces is a set of subspaces.  (Contributed by NM,
       9-Apr-2014.)  (Revised by Mario Carneiro, 24-Jun-2014.) $)
    lsatlss $p |- ( W e. LMod -> A C_ S ) $=
      ( vv clmod wcel cbs cfv c0g csn cdif cv clspn cmpt crn eqid lsatset wf
      wss eldifi lspsncl sylan2 fmptd frn syl eqsstrd ) CGHZAFCIJZCKJZLZMZFNZLC
      OJZJZPZQZBFAUOUJCGUKUJRZUORZUKRESUIUMBUQTURBUAUIFUMUPBUQUNUMHUIUNUJHUPBHU
      NUJULUBBUOUJCUNUSDUTUCUDUQRUEUMBUQUFUGUH $.

    lssatssel.w $e |- ( ph -> W e. LMod ) $.
    lssatssel.u $e |- ( ph -> U e. A ) $.
    $( An atom is a subspace.  (Contributed by NM, 25-Aug-2014.) $)
    lsatlssel $p |- ( ph -> U e. S ) $=
      ( clmod wcel wss lsatlss syl sseldd ) ABCDAEJKBCLHBCEFGMNIO $.
  $}

  ${
    lsatssv.v $e |- V = ( Base ` W ) $.
    lsatssv.a $e |- A = ( LSAtoms ` W ) $.
    lsatssv.w $e |- ( ph -> W e. LMod ) $.
    lsatssv.g $e |- ( ph -> Q e. A ) $.
    $( An atom is a set of vectors.  (Contributed by NM, 27-Feb-2015.) $)
    lsatssv $p |- ( ph -> Q C_ V ) $=
      ( clss cfv wcel wss eqid lsatlssel lssss syl ) ACEJKZLCDMABRCERNZGHIORCDE
      FSPQ $.
  $}

  ${
    $d v .0. $.  $d v U $.  $d v W $.  $d v ph $.
    lsatn0.o $e |- .0. = ( 0g ` W ) $.
    lsatn0.a $e |- A = ( LSAtoms ` W ) $.
    lsatn0.w $e |- ( ph -> W e. LMod ) $.
    lsatn0.u $e |- ( ph -> U e. A ) $.
    $( A 1-dim subspace (atom) of a left module or left vector space is
       nonzero.  ( ~ atne0 analog.)  (Contributed by NM, 25-Aug-2014.) $)
    lsatn0 $p |- ( ph -> U =/= { .0. } ) $=
      ( vv cv csn cfv wceq wne wcel clmod wb eqid wa clspn cbs cdif wrex islsat
      syl mpbid wi eldifsn lspsneq0 sylan biimpd necon3d expimpd neeq1 biimprcd
      syl5bi syl6 rexlimdv mpd ) ACJKZLDUAMZMZNZJDUBMZELZUCZUDZCVFOZACBPZVHIADQ
      PZVJVHRHJBCVBVEDQEVESZVBSZFGUEUFUGAVDVIJVGAVAVGPZVCVFOZVDVIUHVNVAVEPZVAEO
      ZTAVOVAVEEUIAVPVQVOAVPTZVCVFVAEVRVCVFNZVAENZAVKVPVSVTRHVBVEDVAEVLFVMUJUKU
      LUMUNUQVDVIVOCVCVFUOUPURUSUT $.
  $}

  ${
    lsatspn0.v $e |- V = ( Base ` W ) $.
    lsatspn0.n $e |- N = ( LSpan ` W ) $.
    lsatspn0.o $e |- .0. = ( 0g ` W ) $.
    lsatspn0.a $e |- A = ( LSAtoms ` W ) $.
    isateln0.w $e |- ( ph -> W e. LMod ) $.
    isateln0.x $e |- ( ph -> X e. V ) $.
    $( The span of a vector is an atom iff the vector is nonzero.  (Contributed
       by NM, 4-Feb-2015.) $)
    lsatspn0 $p |- ( ph -> ( ( N ` { X } ) e. A <-> X =/= .0. ) ) $=
      ( csn cfv wcel wne wa adantr wceq clmod simpr lsatn0 fveq2d adantl lspsn0
      sneq syl eqtrd ex necon3d mpd cdif eldifsn sylanbrc lsatlspsn impbida ) A
      FNZCOZBPZFGQZAUTRZUSGNZQVAVBBUSEGJKAEUAPZUTLSZAUTUBUCVBFGUSVCVBFGTZUSVCTV
      BVFRZUSVCCOZVCVFUSVHTVBVFURVCCFGUGUDUEVGVDVHVCTVBVDVFVESCEGJIUFUHUIUJUKUL
      AVARZBCDEFGHIJKAVDVALSVIFDPZVAFDVCUMPAVJVAMSAVAUBFDGUNUOUPUQ $.
  $}

  ${
    lsator0sp.v $e |- V = ( Base ` W ) $.
    lsator0sp.n $e |- N = ( LSpan ` W ) $.
    lsator0sp.o $e |- .0. = ( 0g ` W ) $.
    lsator0sp.a $e |- A = ( LSAtoms ` W ) $.
    isator0sp.w $e |- ( ph -> W e. LMod ) $.
    isator0sp.x $e |- ( ph -> X e. V ) $.
    $( The span of a vector is either an atom or the zero subspace.
       (Contributed by NM, 15-Mar-2015.) $)
    lsator0sp $p |- ( ph ->
         ( ( N ` { X } ) e. A \/ ( N ` { X } ) = { .0. } ) ) $=
      ( csn cfv wcel wceq wn wne lsatspn0 biimprd necon1bd syl2anc sylibrd orrd
      clmod wb lspsneq0 ) AFNCOZBPZUIGNQZAUJRFGQZUKAUJFGAUJFGSABCDEFGHIJKLMTUAU
      BAEUFPFDPUKULUGLMCDEFGHJIUHUCUDUE $.
  $}

  ${
    lsatssn0.o $e |- .0. = ( 0g ` W ) $.
    lsatssn0.a $e |- A = ( LSAtoms ` W ) $.
    lsatssn0.w $e |- ( ph -> W e. LMod ) $.
    lsatssn0.q $e |- ( ph -> Q e. A ) $.
    lsatssn0.u $e |- ( ph -> Q C_ U ) $.
    $( A subspace (or any class) including an atom is nonzero.  (Contributed by
       NM, 3-Feb-2015.) $)
    lsatssn0 $p |- ( ph -> U =/= { .0. } ) $=
      ( csn wss wne wpss clmod wcel clss cfv necomd eqid lss0ss lsatn0 sylanbrc
      lsatlssel syl2anc df-pss psssstrd pssned ) AFLZDAUJDAUJCDAUJCMZUJCNUJCOAE
      PQCERSZQUKIABULCEULUAZHIJUEULECFGUMUBUFACUJABCEFGHIJUCTUJCUGUDKUHUIT $.
  $}

  ${
    $d v T $.  $d v U $.  $d v W $.  $d v ph $.
    lsatcmp.a $e |- A = ( LSAtoms ` W ) $.
    lsatcmp.w $e |- ( ph -> W e. LVec ) $.
    lsatcmp.t $e |- ( ph -> T e. A ) $.
    lsatcmp.u $e |- ( ph -> U e. A ) $.
    $( If two atoms are comparable, they are equal.  ( ~ atsseq analog.)  TODO:
       can ~ lspsncmp shorten this?  (Contributed by NM, 25-Aug-2014.) $)
    lsatcmp $p |- ( ph -> ( T C_ U <-> T = U ) ) $=
      ( vv csn cfv wceq wss wb wcel clmod eqid wa ad2antrr cv cbs c0g cdif wrex
      clspn clvec lveclmod syl islsat mpbid wi eldifsn lsatn0 clss wo lsatlssel
      wne simplrl simpr lspsnat syl31anc ord necon1ad mpd eqimss impbid1 syl5bi
      ex sseq2 eqeq2 bibi12d biimprcd syl6 rexlimdv ) ADJUAZKEUFLZLZMZJEUBLZEUC
      LZKZUDZUEZCDNZCDMZOZADBPZWDIAEQPZWHWDOAEUGPZWIGEUHUIZJBDVQVTEQWAVTRZVQRZW
      ARZFUJUIUKAVSWGJWCAVPWCPZCVRNZCVRMZOZVSWGULWOVPVTPZVPWAURZSZAWRVPVTWAUMAX
      AWRAXASZWPWQXBWPWQXBWPSZCWBURZWQAXDXAWPABCEWAWNFWKHUNTXCWQCWBXCWQCWBMZXCW
      JCEUOLZPZWSWPWQXEUPAWJXAWPGTAXGXAWPABXFCEXFRZFWKHUQTAWSWTWPUSXBWPUTXFCVQV
      TEVPWAWLWNXHWMVAVBVCVDVEVICVRVFVGVIVHVSWGWRVSWEWPWFWQDVRCVJDVRCVKVLVMVNVO
      VE $.
  $}

  ${
    lsatcmp2.o $e |- .0. = ( 0g ` W ) $.
    lsatcmp2.a $e |- A = ( LSAtoms ` W ) $.
    lsatcmp2.w $e |- ( ph -> W e. LVec ) $.
    lsatcmp2.t $e |- ( ph -> T e. A ) $.
    lsatcmp2.u $e |- ( ph -> ( U e. A \/ U = { .0. } ) ) $.
    $( If an atom is included in at-most an atom, they are equal.  More general
       version of ~ lsatcmp .  TODO: can ~ lspsncmp shorten this?  (Contributed
       by NM, 3-Feb-2015.) $)
    lsatcmp2 $p |- ( ph -> ( T C_ U <-> T = U ) ) $=
      ( wss wceq wa simpr clvec wcel adantr csn wne clmod lveclmod syl lsatssn0
      wi ord necon1ad mpd lsatcmp mpbid ex eqimss impbid1 ) ACDLZCDMZAUNUOAUNNZ
      UNUOAUNOZUPBCDEHAEPQZUNIRACBQUNJRZUPDFSZTZDBQZUPBCDEFGHAEUAQZUNAURVCIEUBU
      CRUSUQUDAVAVBUEUNAVBDUTAVBDUTMKUFUGRUHUIUJUKCDULUM $.
  $}

  ${
    lsatel.o $e |- .0. = ( 0g ` W ) $.
    lsatel.n $e |- N = ( LSpan ` W ) $.
    lsatel.a $e |- A = ( LSAtoms ` W ) $.
    lsatel.w $e |- ( ph -> W e. LVec ) $.
    lsatel.u $e |- ( ph -> U e. A ) $.
    lsatel.x $e |- ( ph -> X e. U ) $.
    lsatel.e $e |- ( ph -> X =/= .0. ) $.
    $( A nonzero vector in an atom determines the atom.  (Contributed by NM,
       25-Aug-2014.) $)
    lsatel $p |- ( ph -> U = ( N ` { X } ) ) $=
      ( csn cfv wss wceq eqid wcel clvec clmod lveclmod syl lsatlssel lspsnel5a
      clss cbs wne lssel syl2anc lsatlspsn2 syl3anc lsatcmp mpbid eqcomd ) AFOD
      PZCAUQCQUQCRAEUGPZCDEFURSZIAEUATEUBTZKEUCUDZABURCEUSJVALUEZMUFABUQCEJKAUT
      FEUHPZTZFGUIUQBTVAACURTFCTVDVBMURCVCEFVCSZUSUJUKNBDVCEFGVEIHJULUMLUNUOUP
      $.
  $}

  ${
    lsatelb.v $e |- V = ( Base ` W ) $.
    lsatelb.o $e |- .0. = ( 0g ` W ) $.
    lsatelb.n $e |- N = ( LSpan ` W ) $.
    lsatelb.a $e |- A = ( LSAtoms ` W ) $.
    lsatelb.w $e |- ( ph -> W e. LVec ) $.
    lsatelb.x $e |- ( ph -> X e. ( V \ { .0. } ) ) $.
    lsatelb.u $e |- ( ph -> U e. A ) $.
    $( A nonzero vector in an atom determines the atom.  (Contributed by NM,
       3-Feb-2015.)  (New usage is discouraged.) $)
    lsatelbN $p |- ( ph -> ( X e. U <-> U = ( N ` { X } ) ) ) $=
      ( wcel csn cfv wa adantr wceq clvec simpr wne eldifsn sylib simprd lsatel
      cdif wss eqimss2 adantl wb clss eqid clmod lveclmod syl lsatlssel eldifad
      lspsnel5 mpbird impbida ) AGCPZCGQDRZUAZAVDSBCDFGHJKLAFUBPZVDMTACBPVDOTAV
      DUCAGHUDZVDAGEPZVHAGEHQZUIPVIVHSNGEHUEUFUGTUHAVFSVDVECUJZVFVKAVECUKULAVDV
      KUMVFAFUNRZCDEFGIVLUOZKAVGFUPPMFUQURZABVLCFVMLVNOUSAGEVJNUTVATVBVC $.
  $}

  ${
    lsat2el.o $e |- .0. = ( 0g ` W ) $.
    lsat2el.a $e |- A = ( LSAtoms ` W ) $.
    lsat2el.w $e |- ( ph -> W e. LVec ) $.
    lsat2el.p $e |- ( ph -> P e. A ) $.
    lsat2el.q $e |- ( ph -> Q e. A ) $.
    lsat2el.x $e |- ( ph -> X =/= .0. ) $.
    lsat2el.x1 $e |- ( ph -> X e. P ) $.
    lsat2el.x2 $e |- ( ph -> X e. Q ) $.
    $( Two atoms sharing a nonzero vector are equal.  (Contributed by NM,
       8-Mar-2015.) $)
    lsat2el $p |- ( ph -> P = Q ) $=
      ( csn clspn cfv eqid lsatel eqtr4d ) ACFPEQRZRDABCUBEFGHUBSZIJKNMTABDUBEF
      GHUCIJLOMTUA $.
  $}

  ${
    $d p q r y z A $.  $d q r y z .0. $.  $d p q r y z .(+) $.  $d p r Q $.
    $d p q r y z T $.  $d p q r y z U $.  $d p q r y z W $.  $d q r y z ph $.
    lsmsat.o $e |- .0. = ( 0g ` W ) $.
    lsmsat.s $e |- S = ( LSubSp ` W ) $.
    lsmsat.p $e |- .(+) = ( LSSum ` W ) $.
    lsmsat.a $e |- A = ( LSAtoms ` W ) $.
    lsmsat.w $e |- ( ph -> W e. LMod ) $.
    lsmsat.t $e |- ( ph -> T e. S ) $.
    lsmsat.u $e |- ( ph -> U e. S ) $.
    lsmsat.q $e |- ( ph -> Q e. A ) $.
    lsmsat.n $e |- ( ph -> T =/= { .0. } ) $.
    lsmsat.l $e |- ( ph -> Q C_ ( T .(+) U ) ) $.
    $( Convert comparison of atom with sum of subspaces to a comparison to sum
       with atom.  ( ~ elpaddatiN analog.)  TODO: any way to shorten this?
       (Contributed by NM, 15-Jan-2015.) $)
    lsmsat $p |- ( ph -> E. p e. A ( p C_ T /\ Q C_ ( p .(+) U ) ) ) $=
      ( vr vy vz vq cv csn clspn cfv wceq cbs cdif wrex wss co wa wcel clmod wb
      eqid islsat syl mpbid cplusg simp3 3ad2ant1 eqsstr3d lsmcl syl3anc eldifi
      w3a 3ad2ant2 lspsnel5 mpbird lsssssubg sseldd lsmelval syl2anc wne lssne0
      csubg wi adantr simpr2 lssel simpr3 lspsnel5a simpl3 simpr1 oveq1d simp2r
      lsatlspsn2 lmod0vlid 3eqtrd sneqd fveq2d eqsstrd lsmub2 sstrd sseq1 oveq1
      lspsnsubg sseq2d anbi12d rspcev syl12anc 3exp2 imp rexlimdv mpd simpr cpr
      simp2l lspvadd sseqtrd lspsncl lsmless2 pm2.61dane 3exp rexlimdvv 3adant3
      lsmpr anbi2d rexbidv 3ad2ant3 ) ADUAUEZUFZHUGUHZUHZUIZUAHUJUHZIUFZUKZULZJ
      UEZFUMZDYNGCUNZUMZUOZJBULZADBUPZYMRAHUQUPZYTYMUROUABDYGYJHUQIYJUSZYGUSZKN
      UTVAVBAYIYSUAYLAYEYLUPZYIYSAUUDYIVJZYSYOYHYPUMZUOZJBULZUUEYEUBUEZUCUEZHVC
      UHZUNZUIZUCGULUBFULZUUHUUEYEFGCUNZUPZUUNUUEUUPYHUUOUMUUEYHDUUOAUUDYIVDAUU
      DDUUOUMYITVEVFUUEEUUOYGYJHYEUUBLUUCAUUDUUAYIOVEZAUUDUUOEUPZYIAUUAFEUPZGEU
      PZUUROPQCEFGHLMVGVHVEUUDAYEYJUPYIYEYJYKVIVKVLVMUUEFHVTUHZUPGUVAUPZUUPUUNU
      RUUEEUVAFUUEUUAEUVAUMZUUQEHLVNZVAZAUUDUUSYIPVEVOUUEEUVAGUVEAUUDUUTYIQVEVO
      UBUCUUKCFGHYEUUKUSZMVPVQVBAUUDUUNUUHWAYIAUUDUOZUUMUUHUBUCFGUVGUUIFUPZUUJG
      UPZUOZUUMUUHUVGUVJUUMVJZUUHUUIIUVKUUIIUIZUOZUDUEZIVRZUDFULZUUHUVKUVPUVLUV
      GUVJUVPUUMAUVPUUDAFYKVRZUVPSAUUSUVQUVPURPUDEHFIKLVSVAVBWBVEWBUVMUVOUUHUDF
      UVKUVLUVNFUPZUVOUUHWAWAUVKUVLUVRUVOUUHUVKUVLUVRUVOVJZUOZUVNUFYGUHZBUPZUWA
      FUMZYHUWAGCUNZUMZUUHUVTUUAUVNYJUPZUVOUWBUVKUUAUVSUVGUVJUUAUUMAUUAUUDOWBVE
      ZWBZUVTUUSUVRUWFUVKUUSUVSUVGUVJUUSUUMAUUSUUDPWBVEZWBZUVKUVLUVRUVOWCZEFYJH
      UVNUUBLWDVQZUVKUVLUVRUVOWEBYGYJHUVNIUUBUUCKNWKVHUVTEFYGHUVNLUUCUWHUWJUWKW
      FUVTYHGUWDUVTYHUUJUFZYGUHZGUVTYFUWMYGUVTYEUUJUVTYEUULIUUJUUKUNZUUJUVGUVJU
      UMUVSWGUVTUUIIUUJUUKUVKUVLUVRUVOWHWIUVTUUAUUJYJUPZUWOUUJUIUWHUVKUWPUVSUVK
      UUTUVIUWPUVGUVJUUTUUMAUUTUUDQWBVEZUVGUVHUVIUUMWJZEGYJHUUJUUBLWDVQZWBUUKYJ
      HUUJIUUBUVFKWLVQWMWNWOUVKUWNGUMZUVSUVKEGYGHUUJLUUCUWGUWQUWRWFZWBWPUVTUWAU
      VAUPZUVBGUWDUMUVTUUAUWFUXBUWHUWLYGYJHUVNUUBUUCXAVQUVTEUVAGUVTUUAUVCUWHUVD
      VAUVKUUTUVSUWQWBVOCUWAGHMWQVQWRUUGUWCUWEUOJUWABYNUWAUIZYOUWCUUFUWEYNUWAFW
      SUXCYPUWDYHYNUWAGCWTXBXCXDXEXFXGXHXIUVKUUIIVRZUOZUUIUFYGUHZBUPZUXFFUMZYHU
      XFGCUNZUMZUUHUXEUUAUUIYJUPZUXDUXGUVKUUAUXDUWGWBUVKUXKUXDUVKUUSUVHUXKUWIUV
      GUVHUVIUUMXLZEFYJHUUIUUBLWDVQZWBUVKUXDXJBYGYJHUUIIUUBUUCKNWKVHUVKUXHUXDUV
      KEFYGHUUILUUCUWGUWIUXLWFWBUVKUXJUXDUVKYHUXFUWNCUNZUXIUVKYHUUIUUJXKYGUHZUX
      NUVKYHUULUFZYGUHZUXOUVKYFUXPYGUVKYEUULUVGUVJUUMVDWNWOUVKUUAUXKUWPUXQUXOUM
      UWGUXMUWSUUKYGYJHUUIUUJUUBUVFUUCXMVHWPUVKCYGYJHUUIUUJUUBUUCMUWGUXMUWSYAXN
      UVKUXFUVAUPUVBUWTUXNUXIUMUVKEUVAUXFUVKUUAUVCUWGUVDVAZUVKUUAUXKUXFEUPUWGUX
      MEYGYJHUUIUUBLUUCXOVQVOUVKEUVAGUXRUWQVOUXACUXFUWNGHMXPVHWRWBUUGUXHUXJUOJU
      XFBYNUXFUIZYOUXHUUFUXJYNUXFFWSUXSYPUXIYHYNUXFGCWTXBXCXDXEXQXRXSXTXIYIAYSU
      UHURUUDYIYRUUGJBYIYQUUFYODYHYPWSYBYCYDVMXRXHXI $.
  $}

  ${
    $d w z N $.  $d w z .0. $.  $d w z .+ $.  $d w z ph $.  $d w z Q $.
    $d w z V $.  $d w z W $.  $d w z X $.  $d w z Y $.
    lsatfixed.v $e |- V = ( Base ` W ) $.
    lsatfixed.p $e |- .+ = ( +g ` W ) $.
    lsatfixed.o $e |- .0. = ( 0g ` W ) $.
    lsatfixed.n $e |- N = ( LSpan ` W ) $.
    lsatfixed.a $e |- A = ( LSAtoms ` W ) $.
    lsatfixed.w $e |- ( ph -> W e. LVec ) $.
    lsatfixed.q $e |- ( ph -> Q e. A ) $.
    lsatfixed.x $e |- ( ph -> X e. V ) $.
    lsatfixed.y $e |- ( ph -> Y e. V ) $.
    lsatfixed.e $e |- ( ph -> Q =/= ( N ` { X } ) ) $.
    lsatfixed.f $e |- ( ph -> Q =/= ( N ` { Y } ) ) $.
    lsatfixed.g $e |- ( ph -> Q C_ ( N ` { X , Y } ) ) $.
    $( Show equality with the span of the sum of two vectors, one of which
       ( ` X ` ) is fixed in advance.  Compare ~ lspfixed .  (Contributed by
       NM, 29-May-2015.)  (New usage is discouraged.) $)
    lsatfixedN $p |- ( ph
    -> E. z e. ( ( N ` { Y } ) \ { .0. } ) Q = ( N ` { ( X .+ z ) } ) ) $=
      ( vw cv csn cfv wceq cdif wrex co wcel clvec wb islsat syl mpbid 3ad2ant1
      w3a simp2 eldifad simp3 eqcomd wne eqnetrd lspsnne1 cpr eqsstrd clss eqid
      wss clmod lveclmod lspsnel5 mpbird lspfixed wa simpl1 simpl2 snssd lspssv
      lspprcl syl2anc ssdifssd sselda lmodvacl syl3anc lspsncmp simpl3 3bitr4rd
      lspsncl eqeq1d rexbidva rexlimdv3a mpd ) AEUDUEZUFFUGZUHZUDGKUFZUIZUJZEIB
      UEZDUKZUFFUGZUHZBJUFZFUGZWSUIZUJZAECULZXARAHUMULZXJXAUNQUDCEFGHUMKLONPUOU
      PUQAWRXIUDWTAWPWTULZWRUSZXIWPXDULZBXHUJXMBDFGHWPIKJLMNOAXLXKWRQURZXMWPGWS
      AXLWRUTZVAZAXLIGULZWRSURZAXLJGULWRTURZXMFGHWPIKLNOXOXPXSXMWQEIUFFUGZXMEWQ
      AXLWRVBVCZAXLEYAVDWRUAURVEVFXMFGHWPJKLNOXOXPXTXMWQEXGYBAXLEXGVDWRUBURVEVF
      XMWPIJVGFUGZULWQYCVKXMWQEYCYBAXLEYCVKWRUCURVHXMHVIUGZYCFGHWPLYDVJZOAXLHVL
      ULZWRAXKYFQHVMUPZURAXLYCYDULWRAYDFGHIJLYEOYGSTWBURXQVNVOVPXMXEXNBXHXMXBXH
      ULZVQZWQXDVKWQXDUHXNXEYIFGHWPXCKLNOYIAXKAXLWRYHVRZQUPAXLWRYHVSZYIYFXRXBGU
      LXCGULZYIAYFYJYGUPZYIAXRYJSUPXMXHGXBAXLXHGVKWRAXGGWSAYFXFGVKXGGVKYGAJGTVT
      XFFGHLOWAWCWDURWEDGHIXBLMWFWGZWHYIYDXDFGHWPLYEOYMYIYFYLXDYDULYMYNYDFGHXCL
      YEOWKWCYIWPGWSYKVAVNYIEWQXDAXLWRYHWIWLWJWMVOWNWO $.
  $}

  ${
    $d v .(+) $.  $d v Q $.  $d v T $.  $d v U $.  $d v W $.  $d v ph $.
    lsmsatcv.s $e |- S = ( LSubSp ` W ) $.
    lsmsatcv.p $e |- .(+) = ( LSSum ` W ) $.
    lsmsatcv.a $e |- A = ( LSAtoms ` W ) $.
    lsmsatcv.w $e |- ( ph -> W e. LVec ) $.
    lsmsatcv.t $e |- ( ph -> T e. S ) $.
    lsmsatcv.u $e |- ( ph -> U e. S ) $.
    lsmsatcv.x $e |- ( ph -> Q e. A ) $.
    $( Subspace sum has the covering property (using spans of singletons to
       represent atoms).  Similar to Exercise 5 of [Kalmbach] p. 153.
       ( ~ spansncvi analog.)  Explicit atom version of ~ lsmcv .  (Contributed
       by NM, 29-Oct-2014.) $)
    lsmsatcv $p |- ( ( ph /\ T C. U /\ U C_ ( T .(+) Q ) )
      -> U = ( T .(+) Q ) ) $=
      ( vv wceq cfv wa wcel wpss co wss cv csn clspn wrex wi clvec eqid islsati
      cbs syl2anc w3a adantr simpr lsmcv 3expib 3adant3 wb sseq2d anbi2d eqeq2d
      oveq2 imbi12d 3ad2ant3 mpbird rexlimdv3a mpd 3impib ) AFGUAZGFDCUBZUCZGVL
      QZADPUDZUEHUFRZRZQZPHULRZUGZVKVMSZVNUHZAHUITZDBTVTLOPBDVPVSHUIVSUJZVPUJZK
      UKUMAVRWBPVSAVOVSTZVRUNWBVKGFVQCUBZUCZSZGWGQZUHZAWFWKVRAWFSZVKWHWJWLCEFGV
      PVSHVOWDIWEJAWCWFLUOAFETWFMUOAGETWFNUOAWFUPUQURUSVRAWBWKUTWFVRWAWIVNWJVRV
      MWHVKVRVLWGGDVQFCVDZVAVBVRVLWGGWMVCVEVFVGVHVIVJ $.
  $}

  ${
    $d q x A $.  $d x .0. $.  $d q x U $.  $d q W $.  $d x ph $.
    lssatomic.s $e |- S = ( LSubSp ` W ) $.
    lssatomic.o $e |- .0. = ( 0g ` W ) $.
    lssatomic.a $e |- A = ( LSAtoms ` W ) $.
    lssatomic.w $e |- ( ph -> W e. LMod ) $.
    lssatomic.u $e |- ( ph -> U e. S ) $.
    lssatomic.n $e |- ( ph -> U =/= { .0. } ) $.
    $( The lattice of subspaces is atomic, i.e. any nonzero element is greater
       than or equal to some atom.  ( ~ shatomici analog.)  (Contributed by NM,
       10-Jan-2015.) $)
    lssatomic $p |- ( ph -> E. q e. A q C_ U ) $=
      ( vx cv wne wrex wss wcel cfv csn wb lssne0 syl mpbid w3a clspn clmod cbs
      3ad2ant1 simp2 eqid lssel syl2anc simp3 lsatlspsn2 lspsnel5a sseq1 rspcev
      syl3anc rexlimdv3a mpd ) ANOZFPZNDQZGOZDRZGBQZADFUAPZVEMADCSZVIVEUBLNCEDF
      IHUCUDUEAVDVHNDAVCDSZVDUFZVCUAEUGTZTZBSZVNDRZVHVLEUHSZVCEUITZSZVDVOAVKVQV
      DKUJZVLVJVKVSAVKVJVDLUJZAVKVDUKZCDVREVCVRULZHUMUNAVKVDUOBVMVREVCFWCVMULZI
      JUPUTVLCDVMEVCHWDVTWAWBUQVGVPGVNBVFVNDURUSUNVAVB $.
  $}

  ${
    $d x y A $.  $d x y N $.  $d x y S $.  $d x y U $.  $d y W $.
    lssats.s $e |- S = ( LSubSp ` W ) $.
    lssats.n $e |- N = ( LSpan ` W ) $.
    lssats.a $e |- A = ( LSAtoms ` W ) $.
    $( The lattice of subspaces is atomistic, i.e. any element is the supremum
       of its atoms.  Part of proof of Theorem 16.9 of [MaedaMaeda] p. 70.
       Hypothesis ( ~ shatomistici analog.)  (Contributed by NM,
       9-Apr-2014.) $)
    lssats $p |- ( ( W e. LMod /\ U e. S )
          -> U = ( N ` U. { x e. A | x C_ U } ) ) $=
      ( vy wcel wa cv wss crab cuni cfv wceq syl2anc syl3anc clmod eleq1 simplr
      c0g wne csn simplll cbs simpllr lssel lspsncl lspid lsatlss adantr rabss2
      eqid uniss 3syl unimax lssss eqsstrd adantl ad2antrr lsatlspsn2 lspsnel5a
      sstrd simpr sseq1 elrab sylanbrc elssuni syl lspss eqsstr3d sseldd simpll
      lspsnid lspcl syldan lss0cl pm2.61ne ex ssrdv simpl fveq2d eqtrd sseqtrd
      eqssd ) FUAKZDCKZLZDAMZDNZABOZPZEQZWKJDWPWKJMZDKZWQWPKZWKWRLZWSFUDQZWPKZW
      QXAWQXAWPUBWTWQXAUEZLZWQUFEQZWPWQXDXEXEEQZWPXDWIXECKZXFXERWIWJWRXCUGZXDWI
      WQFUHQZKZXGXHXDWJWRXJWIWJWRXCUIZWKWRXCUCZCDXIFWQXIUPZGUJSZCEXIFWQXMGHUKSC
      XEEFGHULSXDWIWOXINZXEWONZXFWPNXHWKXOWRXCWKWOWMACOZPZXIWKBCNZWNXQNWOXRNZWI
      XSWJBCFGIUMUNWMABCUOWNXQUQURZWJXRXINZWIWJXRDXIADCUSZCDXIFXMGUTVAVBZVFZVCX
      DXEWNKZXPXDXEBKZXEDNZYFXDWIXJXCYGXHXNWTXCVGBEXIFWQXAXMHXAUPZIVDTXDCDEFWQG
      HXHXKXLVEWMYHAXEBWLXEDVHVIVJXEWNVKVLXEWOEXIFXMHVMTVNXDWIXJWQXEKXHXNEXIFWQ
      XMHVQSVOWTWIWPCKZXBWIWJWRVPWKYJWRWIWJXOYJYECWOEXIFXMGHVRVSUNCWPFXAYIGVTSW
      AWBWCWKWPXREQZDWKWIYBXTWPYKNWIWJWDYDYAWOXREXIFXMHVMTWKYKDEQDWKXRDEWJXRDRW
      IYCVBWECDEFGHULWFWGWH $.
  $}

  ${
    $d q A $.  $d q S $.  $d q T $.  $d q U $.  $d q W $.
    lpssat.s $e |- S = ( LSubSp ` W ) $.
    lpssat.a $e |- A = ( LSAtoms ` W ) $.
    lpssat.w $e |- ( ph -> W e. LMod ) $.
    lpssat.t $e |- ( ph -> T e. S ) $.
    lpssat.u $e |- ( ph -> U e. S ) $.
    lpssat.l $e |- ( ph -> T C. U ) $.
    $( Two subspaces in a proper subset relationship imply the existence of an
       atom less than or equal to one but not the other.  ( ~ chpssati analog.)
       (Contributed by NM, 11-Jan-2015.) $)
    lpssat $p |- ( ph -> E. q e. A ( q C_ U /\ -. q C_ T ) ) $=
      ( wss wn syl crab cuni cfv adantr cv wral wrex wpss dfpss3 simprbi ralbii
      wa iman ss2rab clspn clmod wcel cbs lsatlss rabss2 uniss 4syl wceq unimax
      wi eqid lssss eqsstrd sstrd adantl syl3anc lssats syl2anc 3sstr4d syl5bir
      lspss ex mtod dfrex2 sylibr ) AGUAZENZVQDNZOUHZOZGBUBZOVTGBUCAWBEDNZADEUD
      ZWCOZMWDDENWEDEUEUFPWBVRVSVAZGBUBZAWCWFWAGBVRVSUIUGWGVRGBQZVSGBQZNZAWCVRV
      SGBUJAWJWCAWJUHZWHRZFUKSZSZWIRZWMSZEDWKFULUMZWOFUNSZNZWLWONZWNWPNAWQWJJTA
      WSWJAWOVSGCQZRZWRAWQBCNWIXANWOXBNJBCFHIUOVSGBCUPWIXAUQURAXBDWRADCUMZXBDUS
      KGDCUTPAXCDWRNKCDWRFWRVBZHVCPVDVETWJWTAWHWIUQVFWLWOWMWRFXDWMVBZVLVGAEWNUS
      ZWJAWQECUMXFJLGBCEWMFHXEIVHVITADWPUSZWJAWQXCXGJKGBCDWMFHXEIVHVITVJVMVKVKV
      NVTGBVOVP $.
  $}

  ${
    $d q A $.  $d q S $.  $d q T $.  $d q U $.  $d q W $.  $d q ph $.
    lrelat.s $e |- S = ( LSubSp ` W ) $.
    lrelat.p $e |- .(+) = ( LSSum ` W ) $.
    lrelat.a $e |- A = ( LSAtoms ` W ) $.
    lrelat.w $e |- ( ph -> W e. LMod ) $.
    lrelat.t $e |- ( ph -> T e. S ) $.
    lrelat.u $e |- ( ph -> U e. S ) $.
    lrelat.l $e |- ( ph -> T C. U ) $.
    $( Subspaces are relatively atomic.  Remark 2 of [Kalmbach] p. 149.
       ( ~ chrelati analog.)  (Contributed by NM, 11-Jan-2015.) $)
    lrelat $p |- ( ph ->
        E. q e. A ( T C. ( T .(+) q ) /\ ( T .(+) q ) C_ U ) ) $=
      ( wss wa wcel adantr sseldd cv wn wrex co wpss lpssat ancom cfv lsssssubg
      csubg clmod syl simpr lsatlssel lssnle pssssd biantrurd wb lsmlub syl3anc
      bitrd anbi12d syl5bb rexbidva mpbid ) AHUAZFPZVFEPUBZQZHBUCEEVFCUDZUEZVJF
      PZQZHBUCABDEFGHIKLMNOUFAVIVMHBVIVHVGQAVFBRZQZVMVGVHUGVOVHVKVGVLVOCEVFGJVO
      DGUJUHZEVOGUKRZDVPPAVQVNLSZDGIUIULZAEDRVNMSTZVODVPVFVSVOBDVFGIKVRAVNUMUNT
      ZUOVOVGEFPZVGQZVLVOWBVGAWBVNAEFOUPSUQVOEVPRVFVPRFVPRWCVLURVTWAVODVPFVSAFD
      RVNNSTCEVFFGJUSUTVAVBVCVDVE $.
  $}

  ${
    $d p A $.  $d p S $.  $d p T $.  $d p U $.  $d p W $.
    lssatle.s $e |- S = ( LSubSp ` W ) $.
    lssatle.a $e |- A = ( LSAtoms ` W ) $.
    lssatle.w $e |- ( ph -> W e. LMod ) $.
    lssatle.t $e |- ( ph -> T e. S ) $.
    lssatle.u $e |- ( ph -> U e. S ) $.
    $( The ordering of two subspaces is determined by the atoms under them.
       ( ~ chrelat3 analog.)  (Contributed by NM, 29-Oct-2014.) $)
    lssatle $p |- ( ph
       -> ( T C_ U <-> A. p e. A ( p C_ T -> p C_ U ) ) ) $=
      ( wss crab cuni cfv wcel adantr uniss wceq cv wral expcom ralrimivw clspn
      wi sstr ss2rab wa clmod cbs lsatlss rabss2 4syl unimax eqid lssss eqsstrd
      syl sstrd adantl lspss syl3anc ex syl2anc sseq12d sylibrd syl5bir impbid2
      lssats ) ADEMZGUAZDMZVLEMZUFZGBUBZVKVOGBVMVKVNVLDEUGUCUDVPVMGBNZVNGBNZMZA
      VKVMVNGBUHAVSVQOZFUEPZPZVROZWAPZMZVKAVSWEAVSUIFUJQZWCFUKPZMZVTWCMZWEAWFVS
      JRAWHVSAWCVNGCNZOZWGAWFBCMVRWJMWCWKMJBCFHIULVNGBCUMVRWJSUNAWKEWGAECQZWKET
      LGECUOUSAWLEWGMLCEWGFWGUPZHUQUSURUTRVSWIAVQVRSVAVTWCWAWGFWMWAUPZVBVCVDADW
      BEWDAWFDCQDWBTJKGBCDWAFHWNIVJVEAWFWLEWDTJLGBCEWAFHWNIVJVEVFVGVHVI $.
  $}

  ${
    $d p A $.  $d p S $.  $d p U $.  $d p V $.  $d p W $.
    lssat.s $e |- S = ( LSubSp ` W ) $.
    lssat.a $e |- A = ( LSAtoms ` W ) $.
    $( Two subspaces in a proper subset relationship imply the existence of a
       1-dim subspace less than or equal to one but not the other.
       ( ~ chpssati analog.)  (Contributed by NM, 9-Apr-2014.) $)
    lssat $p |- ( ( ( W e. LMod /\ U e. S /\ V e. S ) /\ U C. V )
          -> E. p e. A ( p C_ V /\ -. p C_ U ) ) $=
      ( wcel wss wn wa wral crab cuni cfv uniss wceq syl eqid wpss clmod w3a cv
      wrex dfpss3 simprbi wi ss2rab iman ralbii bitr2i clspn cbs simpl1 lsatlss
      rabss2 4syl simpl2 unimax lssss eqsstrd sstrd adantl lspss syl3anc simpl3
      lssats syl2anc 3sstr4d ex syl5bi con3dimp dfrex2 sylibr sylan2 ) CDUAZEUB
      IZCBIZDBIZUCZDCJZKZFUDZDJZWDCJZKLZFAUEZVQCDJWCCDUFUGWAWCLWGKZFAMZKWHWAWJW
      BWJWEFANZWFFANZJZWAWBWMWEWFUHZFAMWJWEWFFAUIWNWIFAWEWFUJUKULWAWMWBWAWMLZWK
      OZEUMPZPZWLOZWQPZDCWOVRWSEUNPZJWPWSJZWRWTJVRVSVTWMUOZWOWSWFFBNZOZXAWOVRAB
      JWLXDJWSXEJXCABEGHUPWFFABUQWLXDQURWOXECXAWOVSXECRVRVSVTWMUSZFCBUTSWOVSCXA
      JXFBCXAEXATZGVASVBVCWMXBWAWKWLQVDWPWSWQXAEXGWQTZVEVFWOVRVTDWRRXCVRVSVTWMV
      GFABDWQEGXHHVHVIWOVRVSCWTRXCXFFABCWQEGXHHVHVIVJVKVLVMWGFAVNVOVP $.
  $}

  ${
    $d q v .(+) $.  $d q v S $.  $d q v U $.  $d q v V $.  $d q v W $.
    $d q v ph $.
    islshpat.v $e |- V = ( Base ` W ) $.
    islshpat.s $e |- S = ( LSubSp ` W ) $.
    islshpat.p $e |- .(+) = ( LSSum ` W ) $.
    islshpat.h $e |- H = ( LSHyp ` W ) $.
    islshpat.a $e |- A = ( LSAtoms ` W ) $.
    islshpat.w $e |- ( ph -> W e. LMod ) $.
    $( Hyperplane properties expressed with subspace sum and an atom.  TODO:
       can proof be shortened?  Seems long for a simple variation of
       ~ islshpsm .  (Contributed by NM, 11-Jan-2015.) $)
    islshpat $p |- ( ph -> ( U e. H <-> ( U e. S /\ U =/= V /\
                   E. q e. A ( U .(+) q ) = V ) ) ) $=
      ( vv wcel wceq wrex wa wne cv csn clspn cfv w3a eqid islshpsm wex r19.42v
      co df-3an bitr4i c0g df-rex simpr sneqd fveq2d clmod ad3antrrr lspsn0 syl
      cdif eqtrd csubg simplrl lsssubg syl2anc lsm01 simplrr eqnetrd ex necon2d
      oveq2d pm4.71rd pm5.32da eldifsn anbi1i anass anbi2i bitr2i syl6bb exbidv
      an12 bitri syl5bb rexcom4b ancom rexbii exbii r19.41v oveq2 eqeq1d anbi2d
      fvex pm5.32i bitr3i syl6bbr wb islsat anbi1d bitr4d bitrd ) AEFQEDQZEGUAZ
      EPUBZUCZHUDUEZUEZCUKZGRZPGSZUFZXDXEEIUBZCUKZGRZIBSZUFZAPCDEFXHGHJXHUGZKLM
      OUHAXMXNBQZXDXETZXPTZTZIUIZXRXMYAXKTZPGSZAYDXMYAXLTYFXDXEXLULYAXKPGUJUMAY
      FXNXIRZPGHUNUEZUCZVCZSZYBTZIUIZYDAYFYGYETZPYJSZIUIZYMAYFXFYJQZYETZPUIZYPY
      FXFGQZYETZPUIAYSYEPGUOAUUAYRPAUUAYTYAXFYHUAZXKTZTZTZYRAYTYEUUDAYTTZYAXKUU
      CUUFYATZXKUUBUUGXFYHXJGUUGXFYHRZXJGUAUUGUUHTZXJEGUUIXJEYICUKZEUUIXIYIECUU
      IXIYIXHUEZYIUUIXGYIXHUUIXFYHUUGUUHUPUQURUUIHUSQZUUKYIRAUULYTYAUUHOUTZXHHY
      HYHUGZXSVAVBVDVNUUIEHVEUEQZUUJERUUIUULXDUUOUUMUUFXDXEUUHVFDEHKVGVHCHEYHUU
      NLVIVBVDUUFXDXEUUHVJVKVLVMVOVPVPYRYTUUBTZYETZUUEYQUUPYEXFGYHVQVRUUQYTUUBY
      ETZTUUEYTUUBYEVSUURUUDYTUUBYAXKWDVTWEWAWBWCWFYSYEYGTZPYJSZIUIZYPUVAYEPYJS
      YSYEIPYJXIXGXHWOWGYEPYJUOWAUUTYOIUUSYNPYJYEYGWHWIWJWEWBYLYOIYLYGYBTZPYJSY
      OYGYBPYJWKUVBYNPYJYGYBYEYGXPXKYAYGXOXJGXNXIECWLWMWNWPWIWQWJWRAYCYLIAXTYKY
      BAUULXTYKWSOPBXNXHGHUSYHJXSUUNNWTVBXAWCXBWFXRYAXQTZYDXDXEXQULUVCYBIBSYDYA
      XPIBUJYBIBUOWQWAWBXC $.
  $}

  $c <oL $.

  $( Extend class notation with the covering relation for a left module or left
     vector space. $)
  clcv $a class <oL $.

  ${
    $d s t u w $.
    $( Define the covering relation for subspaces of a left vector space.
       Similar to Definition 3.2.18 of [PtakPulmannova] p. 68.
       Ptak/Pulmannova's notation ` A ( <oL `` W ) B ` is read " ` B ` covers
       ` A ` " or " ` A ` is covered by ` B ` " , and it means that ` B ` is
       larger than ` A ` and there is nothing in between.  See ~ lcvbr for
       binary relation.  ( ~ df-cv analog.)  (Contributed by NM,
       7-Jan-2015.) $)
    df-lcv $a |- <oL = ( w e. _V |->
     { <. t , u >. | ( ( t e. ( LSubSp ` w ) /\ u e. ( LSubSp ` w ) ) /\
         ( t C. u /\ -. E. s e. ( LSubSp ` w ) ( t C. s /\ s C. u ) ) ) } ) $.
  $}

  ${
    $d s t u w S $.  $d s t u w W $.
    lcvfbr.s $e |- S = ( LSubSp ` W ) $.
    lcvfbr.c $e |- C = ( <oL ` W ) $.
    lcvfbr.w $e |- ( ph -> W e. X ) $.
    $( The covers relation for a left vector space (or a left module).
       (Contributed by NM, 7-Jan-2015.) $)
    lcvfbr $p |- ( ph -> C = { <. t , u >. | ( ( t e. S /\ u e. S ) /\
         ( t C. u /\ -. E. s e. S ( t C. s /\ s C. u ) ) ) } ) $=
      ( vw clcv cfv cv wcel wa wpss cvv clss wrex copab wceq elex fveq2 syl6eqr
      wn eleq2d anbi12d rexeqdv notbid anbi2d opabbidv df-lcv fvex eqeltri xpex
      cxp opabssxp ssexi fvmpt 3syl syl5eq ) ADFMNZCOZEPZBOZEPZQZVEVGRZVEHOZRVK
      VGRQZHEUAZUGZQZQZCBUBZJAFGPFSPVDVQUCKFGUDLFVELOZTNZPZVGVSPZQZVJVLHVSUAZUG
      ZQZQZCBUBVQSMVRFUCZWFVPCBWGWBVIWEVOWGVTVFWAVHWGVSEVEWGVSFTNZEVRFTUEIUFZUH
      WGVSEVGWIUHUIWGWDVNVJWGWCVMWGVLHVSEWIUJUKULUIUMLBCHUNVQEEUREEEWHSIFTUOUPZ
      WJUQVOCBEEUSUTVAVBVC $.

    $d s t u T $.  $d s t u U $.
    lcvfbr.t $e |- ( ph -> T e. S ) $.
    lcvfbr.u $e |- ( ph -> U e. S ) $.
    $( The covers relation for a left vector space (or a left module).
       ( ~ cvbr analog.)  (Contributed by NM, 9-Jan-2015.) $)
    lcvbr $p |- ( ph -> ( T C U
          <-> ( T C. U /\ -. E. s e. S ( T C. s /\ s C. U ) ) ) ) $=
      ( vt vu cv wcel wa wpss anbi12d wrex wn copab wb wceq eleq1 anbi1d psseq1
      wbr rexbidv notbid anbi2d psseq2 brabg syl2anc lcvfbr breqd jca biantrurd
      eqid 3bitr4d ) ADENPZCQZOPZCQZRZVBVDSZVBHPZSZVHVDSZRZHCUAZUBZRZRZNOUCZUIZ
      DCQZECQZRZDESZDVHSZVHESZRZHCUAZUBZRZRZDEBUIWGAVRVSVQWHUDLMVOVRVERZDVDSZWB
      VJRZHCUAZUBZRZRWHNODECCVPVBDUEZVFWIVNWNWOVCVRVEVBDCUFUGWOVGWJVMWMVBDVDUHW
      OVLWLWOVKWKHCWOVIWBVJVBDVHUHUGUJUKTTVDEUEZWIVTWNWGWPVEVSVRVDECUFULWPWJWAW
      MWFVDEDUMWPWLWEWPWKWDHCWPVJWCWBVDEVHUMULUJUKTTVPUTUNUOABVPDEAONBCFGHIJKUP
      UQAVTWGAVRVSLMURUSVA $.

    $( The covers relation for a left vector space (or a left module).
       ( ~ cvbr2 analog.)  (Contributed by NM, 9-Jan-2015.) $)
    lcvbr2 $p |- ( ph -> ( T C U
          <-> ( T C. U /\ A. s e. S ( ( T C. s /\ s C_ U ) -> s = U ) ) ) ) $=
      ( wbr wpss cv wa wn wral anbi2i wrex wss wceq wi lcvbr iman dfpss2 bitr4i
      anass xchbinx ralbii ralnex bitri syl6bbr ) ADEBNDEOZDHPZOZUPEOZQZHCUARZQ
      UOUQUPEUBZQZUPEUCZUDZHCSZQABCDEFGHIJKLMUEVEUTUOVEUSRZHCSUTVDVFHCVDVBVCRZQ
      ZUSVBVCUFVHUQVAVGQZQUSUQVAVGUIURVIUQUPEUGTUHUJUKUSHCULUMTUN $.

    $( The covers relation for a left vector space (or a left module).
       (Contributed by NM, 9-Jan-2015.) $)
    lcvbr3 $p |- ( ph -> ( T C U
          <-> ( T C. U /\ A. s e. S ( ( T C_ s /\ s C_ U )
                  -> ( s = T \/ s = U ) ) ) ) ) $=
      ( wpss wa wn wss wne anbi2i bitri wbr cv wrex wceq wo wi wral iman df-pss
      lcvbr necom anbi12i an4 neanior xchbinxr ralbii ralnex syl6bbr ) ADEBUADE
      NZDHUBZNZUTENZOZHCUCPZOUSDUTQZUTEQZOZUTDUDUTEUDUEZUFZHCUGZOABCDEFGHIJKLMU
      JVJVDUSVJVCPZHCUGVDVIVKHCVIVGVHPZOZVCVGVHUHVCVEUTDRZOZVFUTERZOZOZVMVAVOVB
      VQVAVEDUTRZOVODUTUIVSVNVEDUTUKSTUTEUIULVRVGVNVPOZOVMVEVNVFVPUMVTVLVGUTDUT
      EUNSTTUOUPVCHCUQTSUR $.

    lcvpss.d $e |- ( ph -> T C U ) $.
    $( The covers relation implies proper subset.  ( ~ cvpss analog.)
       (Contributed by NM, 7-Jan-2015.) $)
    lcvpss $p |- ( ph -> T C. U ) $=
      ( vs wpss cv wa wrex wn wbr lcvbr mpbid simpld ) ADEOZDNPZOUEEOQNCRSZADEB
      TUDUFQMABCDEFGNHIJKLUAUBUC $.
  $}

  ${
    $d u R $.  $d u S $.  $d u T $.  $d u U $.  $d u W $.
    lcvnbtwn.s $e |- S = ( LSubSp ` W ) $.
    lcvnbtwn.c $e |- C = ( <oL ` W ) $.
    lcvnbtwn.w $e |- ( ph -> W e. X ) $.
    lcvnbtwn.r $e |- ( ph -> R e. S ) $.
    lcvnbtwn.t $e |- ( ph -> T e. S ) $.
    lcvnbtwn.u $e |- ( ph -> U e. S ) $.
    lcvnbtwn.d $e |- ( ph -> R C T ) $.
    $( The covers relation implies no in-betweenness.  ( ~ cvnbtwn analog.)
       (Contributed by NM, 7-Jan-2015.) $)
    lcvnbtwn $p |- ( ph -> -. ( R C. U /\ U C. T ) ) $=
      ( vu wpss wa cv wrex wn wbr lcvbr mpbid simprd wcel psseq2 psseq1 anbi12d
      wceq rspcev sylan mtand ) ACFQZFEQZRZCPSZQZUQEQZRZPDTZACEQZVAUAZACEBUBVBV
      CROABDCEGHPIJKLMUCUDUEAFDUFUPVANUTUPPFDUQFUJURUNUSUOUQFCUGUQFEUHUIUKULUM
      $.

    ${
      lcvntr.p $e |- ( ph -> T C U ) $.
      $( The covers relation is not transitive.  ( ~ cvntr analog.)
         (Contributed by NM, 10-Jan-2015.) $)
      lcvntr $p |- ( ph -> -. R C U ) $=
        ( wpss wa wcel adantr wbr lcvpss jca wn simpr lcvnbtwn ex mt2d ) ACFBUA
        ZCEQZEFQZRZAUJUKABDCEGHIJKLMOUBABDEFGHIJKMNPUBUCAUIULUDAUIRBCDFEGHIJAGH
        SUIKTACDSUILTAFDSUINTAEDSUIMTAUIUEUFUGUH $.
    $}

    ${
      lcvnbtwn2.p $e |- ( ph -> R C. U ) $.
      lcvnbtwn2.q $e |- ( ph -> U C_ T ) $.
      $( The covers relation implies no in-betweenness.  ( ~ cvnbtwn2 analog.)
         (Contributed by NM, 7-Jan-2015.) $)
      lcvnbtwn2 $p |- ( ph -> U = T ) $=
        ( wpss wa wn wss wceq lcvnbtwn anass dfpss2 anbi2i bitr4i notbii bitr2i
        wi iman sylib mp2and ) ACFRZFEUAZFEUBZPQAUNFERZSZTZUNUOSZUPUJZABCDEFGHI
        JKLMNOUCVAUTUPTZSZTUSUTUPUKVCURVCUNUOVBSZSURUNUOVBUDUQVDUNFEUEUFUGUHUIU
        LUM $.
    $}

    ${
      lcvnbtwn3.p $e |- ( ph -> R C_ U ) $.
      lcvnbtwn3.q $e |- ( ph -> U C. T ) $.
      $( The covers relation implies no in-betweenness.  ( ~ cvnbtwn3 analog.)
         (Contributed by NM, 7-Jan-2015.) $)
      lcvnbtwn3 $p |- ( ph -> U = R ) $=
        ( wpss wa wn wss wceq wi lcvnbtwn iman eqcom imbi2i dfpss2 anbi1i bitri
        an32 notbii 3bitr4ri sylib mp2and ) ACFUAZFERZFCUBZPQACFRZUQSZTZUPUQSZU
        RUCZABCDEFGHIJKLMNOUDVBCFUBZUCVBVDTZSZTVCVAVBVDUEURVDVBFCUFUGUTVFUTUPVE
        SZUQSVFUSVGUQCFUHUIUPVEUQUKUJULUMUNUO $.
    $}
  $}

  ${
    $d x N $.  $d x .(+) $.  $d x S $.  $d x U $.  $d x W $.  $d x X $.
    $d x ph $.
    lsmcv2.v $e |- V = ( Base ` W ) $.
    lsmcv2.s $e |- S = ( LSubSp ` W ) $.
    lsmcv2.n $e |- N = ( LSpan ` W ) $.
    lsmcv2.p $e |- .(+) = ( LSSum ` W ) $.
    lsmcv2.c $e |- C = ( <oL ` W ) $.
    lsmcv2.w $e |- ( ph -> W e. LVec ) $.
    lsmcv2.u $e |- ( ph -> U e. S ) $.
    lsmcv2.x $e |- ( ph -> X e. V ) $.
    lsmcv2.l $e |- ( ph -> -. ( N ` { X } ) C_ U ) $.
    $( Subspace sum has the covering property (using spans of singletons to
       represent atoms).  Proposition 1(ii) of [Kalmbach] p. 153.
       ( ~ spansncv2 analog.)  (Contributed by NM, 10-Jan-2015.) $)
    lsmcv2 $p |- ( ph -> U C ( U .(+) ( N ` { X } ) ) ) $=
      ( vx wcel csn cfv co wbr wpss cv wss wa wceq wi wral wn csubg clmod clvec
      lveclmod syl lsssssubg sseldd lspsncl syl2anc lssnle 3simpa simp3l simp3r
      mpbid w3a adantr simpr lsmcv syl3anc 3exp ralrimiv lsmcl lcvbr2 mpbir2and
      ) AEEIUAFUBZCUCZBUDEVRUEZESUFZUEZVTVRUGZUHZVTVRUIZUJZSDUKAVQEUGULVSRACEVQ
      HMADHUMUBZEAHUNTZDWFUGAHUOTZWGOHUPUQZDHKURUQZPUSADWFVQWJAWGIGTZVQDTZWIQDF
      GHIJKLUTVAZUSVBVFAWESDAVTDTZWCWDAWNWCVGAWNUHZWAWBWDAWNWCVCAWNWAWBVDAWNWAW
      BVEWOCDEVTFGHIJKLMAWHWNOVHAEDTZWNPVHAWNVIAWKWNQVHVJVKVLVMABDEVRHUOSKNOPAW
      GWPWLVRDTWIPWMCDEVQHKMVNVKVOVP $.
  $}

  ${
    $d q A $.  $d q S $.  $d q T $.  $d q U $.  $d q W $.  $d q ph $.
    lcvat.s $e |- S = ( LSubSp ` W ) $.
    lcvat.p $e |- .(+) = ( LSSum ` W ) $.
    lcvat.a $e |- A = ( LSAtoms ` W ) $.
    icvat.c $e |- C = ( <oL ` W ) $.
    lcvat.w $e |- ( ph -> W e. LMod ) $.
    lcvat.t $e |- ( ph -> T e. S ) $.
    lcvat.u $e |- ( ph -> U e. S ) $.
    lcvat.l $e |- ( ph -> T C U ) $.
    $( If a subspace covers another, it equals the other joined with some atom.
       This is a consequence of relative atomicity.  ( ~ cvati analog.)
       (Contributed by NM, 11-Jan-2015.) $)
    lcvat $p |- ( ph -> E. q e. A ( T .(+) q ) = U ) $=
      ( clmod wcel 3ad2ant1 cv co wpss wss wa wrex wceq lcvpss lrelat w3a simp2
      lsatlssel lsmcl syl3anc wbr simp3l simp3r lcvnbtwn2 3exp reximdvai mpd )
      AFFIUAZDUBZUCZVCGUDZUEZIBUFVCGUGZIBUFABDEFGHIJKLNOPACEFGHRJMNOPQUHUIAVFVG
      IBAVBBSZVFVGAVHVFUJZCFEGVCHRJMAVHHRSZVFNTZAVHFESZVFOTZAVHGESVFPTVIVJVLVBE
      SVCESVKVMVIBEVBHJLVKAVHVFUKULDEFVBHJKUMUNAVHFGCUOVFQTAVHVDVEUPAVHVDVEUQUR
      USUTVA $.
  $}

  ${
    $d s x .0. $.  $d s x Q $.  $d s x W $.  $d s x ph $.
    lsatcv0.o $e |- .0. = ( 0g ` W ) $.
    lsatcv0.a $e |- A = ( LSAtoms ` W ) $.
    lsatcv0.c $e |- C = ( <oL ` W ) $.
    lsatcv0.w $e |- ( ph -> W e. LVec ) $.
    lsatcv0.q $e |- ( ph -> Q e. A ) $.
    $( An atom covers the zero subspace.  ( ~ atcv0 analog.)  (Contributed by
       NM, 7-Jan-2015.) $)
    lsatcv0 $p |- ( ph -> { .0. } C Q ) $=
      ( vs vx wpss wa cfv wrex wcel syl eqid csn wbr cv clss wn wss clmod clvec
      wne lveclmod lsatlssel lss0ss syl2anc lsatn0 necomd df-pss sylanbrc clspn
      wceq cbs wb islsat mpbid wi adantr eldifi adantl eldifsni lspsncv0 psseq2
      cdif ex anbi2d rexbidv notbid biimprcd syl6 rexlimdv mpd lsssn0 mpbir2and
      lcvbr ) AFUAZDCUBWCDNZWCLUCZNZWEDNZOZLEUDPZQZUEZAWCDUFZWCDUIWDAEUGRZDWIRW
      LAEUHRZWMJEUJSZABWIDEWITZHWOKUKZWIEDFGWPULUMADWCABDEFGHWOKUNUOWCDUPUQADMU
      CZUAEURPZPZUSZMEUTPZWCVKZQZWKADBRZXDKAWMXEXDVAWOMBDWSXBEUGFXBTZWSTZGHVBSV
      CAXAWKMXCAWRXCRZWFWEWTNZOZLWIQZUEZXAWKVDAXHXLAXHOLWIWSXBEWRFXFGWPXGAWNXHJ
      VEXHWRXBRAWRXBWCVFVGXHWRFUIAWRXBFVHVGVIVLXAWKXLXAWJXKXAWHXJLWIXAWGXIWFDWT
      WEVJVMVNVOVPVQVRVSACWIWCDEUHLWPIJAWMWCWIRWOWIEFGWPVTSWQWBWA $.
  $}

  ${
    lsatcveq0.o $e |- .0. = ( 0g ` W ) $.
    lsatcveq0.s $e |- S = ( LSubSp ` W ) $.
    lsatcveq0.a $e |- A = ( LSAtoms ` W ) $.
    lsatcveq0.c $e |- C = ( <oL ` W ) $.
    lsatcveq0.w $e |- ( ph -> W e. LVec ) $.
    lsatcveq0.u $e |- ( ph -> U e. S ) $.
    lsatcveq0.q $e |- ( ph -> Q e. A ) $.
    $( A subspace covered by an atom must be the zero subspace.  ( ~ atcveq0
       analog.)  (Contributed by NM, 7-Jan-2015.) $)
    lsatcveq0 $p |- ( ph -> ( U C Q <-> U = { .0. } ) ) $=
      ( wbr clvec wcel adantr 3ad2ant1 csn wceq wa clmod lveclmod syl lsatlssel
      wpss simpr lcvpss ex wi lsatcv0 w3a lsssn0 simp2 wss lss0ss syl2anc simp3
      lcvnbtwn3 3exp mpd syld breq1 syl5ibrcom impbid ) AFDCPZFHUAZUBZAVHFDUHZV
      JAVHVKAVHUCCEFDGQJLAGQRZVHMSAFERZVHNSADERZVHABEDGJKAVLGUDRZMGUEUFZOUGZSAV
      HUIUJUKAVIDCPZVKVJULABCDGHIKLMOUMZAVRVKVJAVRVKUNCVIEDFGQJLAVRVLVKMTAVRVIE
      RZVKAVOVTVPEGHIJUOUFTAVRVNVKVQTAVRVMVKNTAVRVKUPAVRVIFUQZVKAVOVMWAVPNEGFHI
      JURUSTAVRVKUTVAVBVCVDAVHVJVRVSFVIDCVEVFVG $.
  $}

  ${
    $d x C $.  $d s x .0. $.  $d s S $.  $d s x U $.  $d s x W $.  $d x ph $.
    lsat0cv.o $e |- .0. = ( 0g ` W ) $.
    lsat0cv.s $e |- S = ( LSubSp ` W ) $.
    lsat0cv.a $e |- A = ( LSAtoms ` W ) $.
    lsat0cv.c $e |- C = ( <oL ` W ) $.
    lsat0cv.w $e |- ( ph -> W e. LVec ) $.
    lsat0cv.u $e |- ( ph -> U e. S ) $.
    $( A subspace is an atom iff it covers the zero subspace.  This could serve
       as an alternate definition of an atom.  TODO: this is a quick-and-dirty
       proof that could probably be more efficient.  (Contributed by NM,
       14-Mar-2015.) $)
    lsat0cv $p |- ( ph -> ( U e. A <-> { .0. } C U ) ) $=
      ( vx wcel wa adantr wceq syl ad2antrr vs csn clvec simpr lsatcv0 cv clspn
      wbr cfv cbs cdif wrex wn wex wpss clmod lveclmod lsssn0 lcvpss pssnel wne
      simprl eqid lssel syl2anc biimpri necon3bi adantl eldifsn sylanbrc jca ex
      velsn eximdv df-rex syl6ibr mpd simpllr wss wi wral lcvbr2 eldifi lspsncl
      wb lss0ss eldifsni necon3bid mpbird necomd df-pss simplr lspsnel5a psseq2
      lspsneq0 sseq1 anbi12d eqeq1 imbi12d rspcv expimpd sylbid eqcomd reximdva
      mpid islsat impbida ) AEBOZGUBZECUHZAXHPBCEFGHJKAFUCOZXHLQAXHUDUEAXJPZXHE
      NUFZUBFUGUIZUIZRZNFUJUIZXIUKZULZXLXMEOZNXRULZXSXLXTXMXIOZUMZPZNUNZYAXLXIE
      UOZYEXLCDXIEFUPIKAFUPOZXJAXKYGLFUQSZQAXIDOZXJAYGYIYHDFGHIURSZQAEDOZXJMQAX
      JUDUSNXIEUTSXLYEXMXROZXTPZNUNYAXLYDYMNXLYDYMXLYDPZYLXTYNXMXQOZXMGVAZYLYNY
      KXTYOAYKXJYDMTXLXTYCVBZDEXQFXMXQVCZIVDVEYDYPXLYCYPXTYBXMGYBXMGRZNGVMVFVGV
      HVHXMXQGVIVJYQVKVLVNXTNXRVOVPVQXLXTXPNXRXLYLPZXTXPYTXTPZXOEUUAXJXOERZAXJY
      LXTVRUUAXJYFXIUAUFZUOZUUCEVSZPZUUCERZVTZUADWAZPZUUBXLXJUUJWEZYLXTAUUKXJAC
      DXIEFUCUAIKLYJMWBQTUUAYFUUIUUBUUAYFPZUUIXIXOUOZXOEVSZPZUUBUULUUMUUNUULXIX
      OVSZXIXOVAUUMUULYGXODOZUUPYTYGXTYFAYGXJYLYHTTZUULYGYOUUQUURYTYOXTYFYLYOXL
      XMXQXIWCVHTZDXNXQFXMYRIXNVCZWDVEZDFXOGHIWFVEUULXOXIUULXOXIVAYPYTYPXTYFYLY
      PXLXMXQGWGVHTUULXOXIXMGUULYGYOXOXIRYSWEUURUUSXNXQFXMGYRHUUTWOVEWHWIWJXIXO
      WKVJUULDEXNFXMIUUTUURYTYKXTYFAYKXJYLMTTYTXTYFWLWMVKUULUUQUUIUUOUUBVTZVTUV
      AUUHUVBUAXODUUCXORZUUFUUOUUGUUBUVCUUDUUMUUEUUNUUCXOXIWNUUCXOEWPWQUUCXOEWR
      WSWTSXEXAXBVQXCVLXDVQXLXKXHXSWEAXKXJLQNBEXNXQFUCGYRUUTHJXFSWIXG $.
  $}

  ${
    $d r s .(+) $.  $d r s S $.  $d r s T $.  $d r s U $.  $d r s W $.
    $d r s ph $.
    lcvexch.s $e |- S = ( LSubSp ` W ) $.
    lcvexch.p $e |- .(+) = ( LSSum ` W ) $.
    lcvexch.c $e |- C = ( <oL ` W ) $.
    lcvexch.w $e |- ( ph -> W e. LMod ) $.
    lcvexch.t $e |- ( ph -> T e. S ) $.
    lcvexch.u $e |- ( ph -> U e. S ) $.
    $( Lemma for ~ lcvexch .  (Contributed by NM, 10-Jan-2015.) $)
    lcvexchlem1 $p |- ( ph -> ( T C. ( T .(+) U ) <-> ( T i^i U ) C. U ) ) $=
      ( wss wne wa wpss wcel sseldd wceq co cin csubg cfv lsssssubg syl syl2anc
      clmod lsmub1 inss2 a1i sseqin2 wb lsmss2b eqcom syl6bb syl5rbbr necon3bid
      2thd anbi12d df-pss 3bitr4g ) AEEFCUAZNZEVCOZPEFUBZFNZVFFOZPEVCQVFFQAVDVG
      VEVHAVDVGAEGUCUDZRZFVIRZVDADVIEAGUHRDVINKDGHUEUFZLSZADVIFVLMSZCEFGIUIUGVG
      AEFUJUKUSAEVCVFFVFFTFENZAEVCTZFEULAVOVCETZVPAVJVKVOVQUMVMVNCEFGIUNUGVCEUO
      UPUQURUTEVCVAVFFVAVB $.

    ${
      lcvexch.r $e |- ( ph -> R e. S ) $.
      lcvexch.a $e |- ( ph -> ( T i^i U ) C_ R ) $.
      lcvexch.b $e |- ( ph -> R C_ U ) $.
      $( Lemma for ~ lcvexch .  (Contributed by NM, 10-Jan-2015.) $)
      lcvexchlem2 $p |- ( ph -> ( ( R .(+) T ) i^i U ) = R ) $=
        ( wcel wss sseldd cin co csubg cfv wceq clmod lsssssubg lsmmod syl31anc
        syl lssincl syl3anc lsmss2 eqtr3d ) ADFGUAZCUBZDFCUBGUAZDADHUCUDZRZFURR
        GURRDGSUPUQUEAEURDAHUFRZEURSLEHIUGUJZOTZAEURFVAMTAEURGVANTQCDFGHJUHUIAU
        SUOURRUODSUPDUEVBAEURUOVAAUTFERGERUOERLMNEFGHIUKULTPCDUOHJUMULUN $.
    $}

    ${
      lcvexch.q $e |- ( ph -> R e. S ) $.
      lcvexch.d $e |- ( ph -> T C_ R ) $.
      lcvexch.e $e |- ( ph -> R C_ ( T .(+) U ) ) $.
      $( Lemma for ~ lcvexch .  (Contributed by NM, 10-Jan-2015.) $)
      lcvexchlem3 $p |- ( ph -> ( ( R i^i U ) .(+) T ) = R ) $=
        ( co wcel wss cin csubg cfv clmod lsssssubg syl sseldd lsmmod2 syl31anc
        wceq cabl lmodabl lsmcom syl3anc sseqtrd df-ss sylib eqtr3d ) ADGFCRZUA
        ZDGUAFCRZDADHUBUCZSGVBSZFVBSZFDTUTVAUJAEVBDAHUDSZEVBTLEHIUEUFZOUGAEVBGV
        FNUGZAEVBFVFMUGZPCDGFHJUHUIADUSTUTDUJADFGCRZUSQAHUKSZVDVCVIUSUJAVEVJLHU
        LUFVHVGCFGHJUMUNUODUSUPUQUR $.
    $}

    ${
      lcvexch.f $e |- ( ph -> T C ( T .(+) U ) ) $.
      $( Lemma for ~ lcvexch .  (Contributed by NM, 10-Jan-2015.) $)
      lcvexchlem4 $p |- ( ph -> ( T i^i U ) C U ) $=
        ( wss wa wceq wi wcel syl3anc vs vr cin wbr wpss cv wo wral clmod lsmcl
        co lcvpss lcvexchlem1 mpbid w3a csubg cfv 3ad2ant1 lsssssubg syl sseldd
        simp2 lsmub2 syl2anc simp3r lsmless1 cabl lsmcom sseqtr4d lcvbr3 adantr
        lmodabl wb simpr sseq2 sseq1 anbi12d eqeq1 orbi12d imbi12d rspcv sylbid
        adantld 3adant3 mpd mp2and ineq1 simp3l lcvexchlem2 eqeq1d syl5ib sylib
        sseqin2 eqeq12d orim12d 3exp ralrimiv lssincl mpbir2and ) AEFUCZFBUDWTF
        UEZWTUAUFZOZXBFOZPZXBWTQZXBFQZUGZRZUADUHAEEFCUKZUEZXAABDEXJGUIHJKLAGUIS
        ZEDSZFDSZXJDSKLMCDEFGHIUJTZNULABCDEFGHIJKLMUMUNAXIUADAXBDSZXEXHAXPXEUOZ
        XBECUKZEQZXRXJQZUGZXHXQEXROZXRXJOZYAXQXBGUPUQZSEYDSZYBXQDYDXBXQXLDYDOZA
        XPXLXEKURZDGHUSZUTZAXPXEVBZVAXQDYDEYIAXPXMXELURZVAZCXBEGIVCVDXQXRFECUKZ
        XJXQFYDSZYEXDXRYMOXQDYDFYIAXPXNXEMURZVAZYLAXPXCXDVEZCXBFEGIVFTAXPXJYMQZ
        XEAGVGSZYEYNYRAXLYSKGVLUTADYDEAXLYFKYHUTZLVAADYDFYTMVACEFGIVHTURVIXQEXJ
        BUDZYBYCPZYARZAXPUUAXENURAXPUUAUUCRXEAXPPZUUAXKEUBUFZOZUUEXJOZPZUUEEQZU
        UEXJQZUGZRZUBDUHZPZUUCAUUAUUNVMXPABDEXJGUIUBHJKLXOVJVKUUDUUMUUCXKUUDXRD
        SZUUMUUCRUUDXLXPXMUUOAXLXPKVKAXPVNAXMXPLVKCDXBEGHIUJTUULUUCUBXRDUUEXRQZ
        UUHUUBUUKYAUUPUUFYBUUGYCUUEXREVOUUEXRXJVPVQUUPUUIXSUUJXTUUEXREVRUUEXRXJ
        VRVSVTWAUTWCWBWDWEWFXQXSXFXTXGXSXRFUCZWTQXQXFXREFWGXQUUQXBWTXQBCXBDEFGH
        IJYGYKYOYJAXPXCXDWHYQWIZWJWKXTUUQXJFUCZQXQXGXRXJFWGXQUUQXBUUSFUURXQFXJO
        ZUUSFQXQYEYNUUTYLYPCEFGIVCVDFXJWMWLWNWKWOWEWPWQABDWTFGUIUAHJKAXLXMXNWTD
        SKLMDEFGHWRTMVJWS $.
    $}

    ${
      lcvexch.g $e |- ( ph -> ( T i^i U ) C U ) $.
      $( Lemma for ~ lcvexch .  (Contributed by NM, 10-Jan-2015.) $)
      lcvexchlem5 $p |- ( ph -> T C ( T .(+) U ) ) $=
        ( wss wa wceq wi wcel 3ad2ant1 vs vr co wbr wpss cv wo wral cin lssincl
        clmod syl3anc lcvpss lcvexchlem1 mpbird w3a simp3l ssrin inss2 jctir wb
        syl lcvbr3 adantr simpr sseq2 sseq1 anbi12d eqeq1 orbi12d imbi12d rspcv
        adantld sylbid 3adant3 mpd oveq1 simp2 simp3r lcvexchlem3 cfv lsssssubg
        csubg sseldd a1i lsmss1 eqeq12d syl5ib cabl lmodabl lsmcom orim12d 3exp
        inss1 ralrimiv lsmcl mpbir2and ) AEEFCUCZBUDEWRUEZEUAUFZOZWTWROZPZWTEQZ
        WTWRQZUGZRZUADUHAWSEFUIZFUEZABDXHFGUKHJKAGUKSZEDSZFDSZXHDSKLMDEFGHUJULZ
        MNUMABCDEFGHIJKLMUNUOAXGUADAWTDSZXCXFAXNXCUPZWTFUIZXHQZXPFQZUGZXFXOXHXP
        OZXPFOZPZXSXOXTYAXOXAXTAXNXAXBUQZEWTFURVBWTFUSUTXOXHFBUDZYBXSRZAXNYDXCN
        TAXNYDYERXCAXNPZYDXIXHUBUFZOZYGFOZPZYGXHQZYGFQZUGZRZUBDUHZPZYEAYDYPVAXN
        ABDXHFGUKUBHJKXMMVCVDYFYOYEXIYFXPDSZYOYERYFXJXNXLYQAXJXNKVDAXNVEAXLXNMV
        DDWTFGHUJULYNYEUBXPDYGXPQZYJYBYMXSYRYHXTYIYAYGXPXHVFYGXPFVGVHYRYKXQYLXR
        YGXPXHVIYGXPFVIVJVKVLVBVMVNVOVPVPXOXQXDXRXEXQXPECUCZXHECUCZQXOXDXPXHECV
        QXOYSWTYTEXOBCWTDEFGHIJAXNXJXCKTAXNXKXCLTAXNXLXCMTAXNXCVRYCAXNXAXBVSVTZ
        AXNYTEQZXCAXHGWCWAZSEUUCSZXHEOZUUBADUUCXHAXJDUUCOKDGHWBVBZXMWDADUUCEUUF
        LWDZUUEAEFWNWECXHEGIWFULTWGWHXRYSFECUCZQXOXEXPFECVQXOYSWTUUHWRUUAAXNUUH
        WRQZXCAGWISZFUUCSUUDUUIAXJUUJKGWJVBADUUCFUUFMWDUUGCFEGIWKULTWGWHWLVPWMW
        OABDEWRGUKUAHJKLAXJXKXLWRDSKLMCDEFGHIWPULVCWQ $.
    $}

    $( Subspaces satisfy the exchange axiom.  Lemma 7.5 of [MaedaMaeda] p. 31.
       ( ~ cvexchi analog.)  TODO: combine some lemmas.  (Contributed by NM,
       10-Jan-2015.) $)
    lcvexch $p |- ( ph -> ( ( T i^i U ) C U <-> T C ( T .(+) U ) ) ) $=
      ( cin wbr co wa wcel adantr simpr clmod lcvexchlem5 lcvexchlem4 impbida )
      AEFNFBOZEEFCPBOZAUEQBCDEFGHIJAGUARZUEKSAEDRZUELSAFDRZUEMSAUETUBAUFQBCDEFG
      HIJAUGUFKSAUHUFLSAUIUFMSAUFTUCUD $.
  $}

  ${
    lcvp.s $e |- S = ( LSubSp ` W ) $.
    lcvp.p $e |- .(+) = ( LSSum ` W ) $.
    lcvp.o $e |- .0. = ( 0g ` W ) $.
    lcvp.a $e |- A = ( LSAtoms ` W ) $.
    lcvp.c $e |- C = ( <oL ` W ) $.
    lcvp.w $e |- ( ph -> W e. LVec ) $.
    lcvp.u $e |- ( ph -> U e. S ) $.
    lcvp.q $e |- ( ph -> Q e. A ) $.
    $( Covering property of Definition 7.4 of [MaedaMaeda] p. 31 and its
       converse.  ( ~ cvp analog.)  (Contributed by NM, 10-Jan-2015.) $)
    lcvp $p |- ( ph -> ( ( U i^i Q ) = { .0. } <-> U C ( U .(+) Q ) ) ) $=
      ( cin wbr wcel csn wceq co clmod clvec lveclmod lsatlssel lssincl syl3anc
      syl lsatcveq0 lcvexch bitr3d ) AGERZECSUNIUAUBGGEDUCCSABCEFUNHILJMNOAHUDT
      ZGFTEFTUNFTAHUETUOOHUFUJZPABFEHJMUPQUGZFGEHJUHUIQUKACDFGEHJKNUPPUQULUM $.
  $}

  ${
    $d x C $.  $d x .(+) $.  $d x Q $.  $d x U $.  $d x W $.  $d x ph $.
    lcv1.s $e |- S = ( LSubSp ` W ) $.
    lcv1.p $e |- .(+) = ( LSSum ` W ) $.
    lcv1.a $e |- A = ( LSAtoms ` W ) $.
    lcv1.c $e |- C = ( <oL ` W ) $.
    lcv1.w $e |- ( ph -> W e. LVec ) $.
    lcv1.u $e |- ( ph -> U e. S ) $.
    lcv1.q $e |- ( ph -> Q e. A ) $.
    $( Covering property of a subspace plus an atom.  ( ~ chcv1 analog.)
       (Contributed by NM, 10-Jan-2015.) $)
    lcv1 $p |- ( ph -> ( -. Q C_ U <-> U C ( U .(+) Q ) ) ) $=
      ( vx wss cfv wcel adantr wn co wbr wa cv csn clspn wceq cbs c0g cdif wrex
      clvec wb eqid islsat syl mpbid w3a 3ad2ant1 eldifi 3ad2ant2 simp1r sseq1d
      simp3 mtbid lsmcv2 oveq2d breqtrrd rexlimdv3a mpd wpss lveclmod lsatlssel
      clmod lsmcl syl3anc simpr lcvpss lsssssubg sseldd lssnle mpbird impbida
      csubg ) AEGQZUAZGGEDUBZCUCZAWGUDZEPUEZUFHUGRZRZUHZPHUIRZHUJRZUFZUKZULZWIA
      WSWGAEBSZWSOAHUMSZWTWSUNMPBEWLWOHUMWPWOUOZWLUOZWPUOKUPUQURTWJWNWIPWRWJWKW
      RSZWNUSZGGWMDUBWHCXECDFGWLWOHWKXBIXCJLWJXDXAWNAXAWGMTUTWJXDGFSZWNAXFWGNTU
      TXDWJWKWOSWNWKWOWQVAVBXEWFWMGQAWGXDWNVCXEEWMGWJXDWNVEZVDVFVGXEEWMGDXGVHVI
      VJVKAWIUDZWGGWHVLZXHCFGWHHUMILAXAWIMTAXFWINTAWHFSZWIAHVOSZXFEFSXJAXAXKMHV
      MUQZNABFEHIKXLOVNZDFGEHIJVPVQTAWIVRVSAWGXIUNWIADGEHJAFHWERZGAXKFXNQXLFHIV
      TUQZNWAAFXNEXOXMWAWBTWCWD $.
  $}

  ${
    lcv2.s $e |- S = ( LSubSp ` W ) $.
    lcv2.p $e |- .(+) = ( LSSum ` W ) $.
    lcv2.a $e |- A = ( LSAtoms ` W ) $.
    lcv2.c $e |- C = ( <oL ` W ) $.
    lcv2.w $e |- ( ph -> W e. LVec ) $.
    lcv2.u $e |- ( ph -> U e. S ) $.
    lcv2.q $e |- ( ph -> Q e. A ) $.
    $( Covering property of a subspace plus an atom.  ( ~ chcv2 analog.)
       (Contributed by NM, 10-Jan-2015.) $)
    lcv2 $p |- ( ph -> ( U C. ( U .(+) Q ) <-> U C ( U .(+) Q ) ) ) $=
      ( wss wn wcel syl sseldd co wpss wbr csubg clmod clvec lveclmod lsssssubg
      cfv lsatlssel lssnle lcv1 bitr3d ) AEGPQGGEDUAZUBGUNCUCADGEHJAFHUDUIZGAHU
      ERZFUOPAHUFRUPMHUGSZFHIUHSZNTAFUOEURABFEHIKUQOUJTUKABCDEFGHIJKLMNOULUM $.
  $}

  ${
    lsatexch.s $e |- S = ( LSubSp ` W ) $.
    lsatexch.p $e |- .(+) = ( LSSum ` W ) $.
    lsatexch.o $e |- .0. = ( 0g ` W ) $.
    lsatexch.a $e |- A = ( LSAtoms ` W ) $.
    lsatexch.w $e |- ( ph -> W e. LVec ) $.
    lsatexch.u $e |- ( ph -> U e. S ) $.
    lsatexch.q $e |- ( ph -> Q e. A ) $.
    lsatexch.r $e |- ( ph -> R e. A ) $.
    lsatexch.l $e |- ( ph -> Q C_ ( U .(+) R ) ) $.
    lsatexch.z $e |- ( ph -> ( U i^i Q ) = { .0. } ) $.
    $( The atom exchange property.  Proposition 1(i) of [Kalmbach] p. 140.  A
       version of this theorem was originally proved by Hermann Grassmann in
       1862.  ( ~ atexch analog.)  (Contributed by NM, 10-Jan-2015.) $)
    lsatexch $p |- ( ph -> R C_ ( U .(+) Q ) ) $=
      ( wcel co csubg cfv wss clmod clvec syl lsssssubg sseldd lsatlssel lsmub2
      lveclmod syl2anc clcv eqid lsmcl syl3anc wpss wbr cin csn wceq lcvp mpbid
      lcvpss lsmub1 wa wb lsmlub mpbi2and psssstrd lcv2 lcvnbtwn2 sseqtr4d ) AE
      GECUAZGDCUAZAGHUBUCZTZEVQTZEVOUDAFVQGAHUETZFVQUDAHUFTVTNHULUGZFHJUHUGZOUI
      ZAFVQEWBABFEHJMWAQUJZUIZCGEHKUKUMAHUNUCZGFVOVPHUFJWFUOZNOAVTGFTZEFTVOFTWA
      OWDCFGEHJKUPUQZAVTWHDFTVPFTWAOABFDHJMWAPUJZCFGDHJKUPUQZAGVOURGVOWFUSAGVPV
      OAWFFGVPHUFJWGNOWKAGDUTIVAVBGVPWFUSSABWFCDFGHIJKLMWGNOPVCVDVEZAGVOUDZDVOU
      DZVPVOUDZAVRVSWMWCWECGEHKVFUMRAVRDVQTVOVQTWMWNVGWOVHWCAFVQDWBWJUIAFVQVOWB
      WIUICGDVOHKVIUQVJZVKABWFCEFGHJKMWGNOQVLVDWLWPVMVN $.
  $}

  ${
    lsatnle.o $e |- .0. = ( 0g ` W ) $.
    lsatnle.s $e |- S = ( LSubSp ` W ) $.
    lsatnle.a $e |- A = ( LSAtoms ` W ) $.
    lsatnle.w $e |- ( ph -> W e. LVec ) $.
    lsatnle.u $e |- ( ph -> U e. S ) $.
    lsatnle.q $e |- ( ph -> Q e. A ) $.
    $( The meet of a subspace and an incomparable atom is the zero subspace.
       ( ~ atnssm0 analog.)  (Contributed by NM, 10-Jan-2015.) $)
    lsatnle $p |- ( ph -> ( -. Q C_ U <-> ( U i^i Q ) = { .0. } ) ) $=
      ( wss wn clsm cfv co clcv eqid wbr cin csn wceq lcv1 lcvp bitr4d ) ACENOE
      ECFPQZRFSQZUAECUBGUCUDABUIUHCDEFIUHTZJUITZKLMUEABUIUHCDEFGIUJHJUKKLMUFUG
      $.
  $}

  ${
    lsatnem0.o $e |- .0. = ( 0g ` W ) $.
    lsatnem0.a $e |- A = ( LSAtoms ` W ) $.
    lsatnem0.w $e |- ( ph -> W e. LVec ) $.
    lsatnem0.q $e |- ( ph -> Q e. A ) $.
    lsatnem0.r $e |- ( ph -> R e. A ) $.
    $( The meet of distinct atoms is the zero subspace.  ( ~ atnemeq0 analog.)
       (Contributed by NM, 10-Jan-2015.) $)
    lsatnem0 $p |- ( ph -> ( Q =/= R <-> ( Q i^i R ) = { .0. } ) ) $=
      ( wss wn wne cin csn wceq lsatcmp eqcom wcel syl6bb necon3bbid clss clvec
      cfv eqid clmod lveclmod syl lsatlssel lsatnle bitr3d ) ADCLZMCDNCDOFPQAUM
      CDAUMDCQCDQABDCEHIKJRDCSUAUBABDEUCUEZCEFGUNUFZHIABUNCEUOHAEUDTEUGTIEUHUIJ
      UJKUKUL $.
  $}

  ${
    lsatexch1.p $e |- .(+) = ( LSSum ` W ) $.
    lsatexch1.a $e |- A = ( LSAtoms ` W ) $.
    lsatexch1.w $e |- ( ph -> W e. LVec ) $.
    lsatexch1.u $e |- ( ph -> Q e. A ) $.
    lsatexch1.q $e |- ( ph -> R e. A ) $.
    lsatexch1.r $e |- ( ph -> S e. A ) $.
    lsatexch1.l $e |- ( ph -> Q C_ ( S .(+) R ) ) $.
    lsatexch1.z $e |- ( ph -> Q =/= S ) $.
    $( The atom exch1ange property.  ( ~ hlatexch1 analog.)  (Contributed by
       NM, 14-Jan-2015.) $)
    lsatexch1 $p |- ( ph -> R C_ ( S .(+) Q ) ) $=
      ( clss cfv c0g eqid wcel clvec lveclmod syl lsatlssel wne cin wceq necomd
      clmod csn lsatnem0 mpbid lsatexch ) ABCDEGPQZFGGRQZUNSZHUOSZIJABUNFGUPIAG
      UATGUITJGUBUCMUDKLNAFDUEFDUFUOUJUGADFOUHABFDGUOUQIJMKUKULUM $.
  $}

  ${
    lsatcv0eq.o $e |- .0. = ( 0g ` W ) $.
    lsatcv0eq.p $e |- .(+) = ( LSSum ` W ) $.
    lsatcv0eq.a $e |- A = ( LSAtoms ` W ) $.
    lsatcv0eq.c $e |- C = ( <oL ` W ) $.
    lsatcv0eq.w $e |- ( ph -> W e. LVec ) $.
    lsatcv0eq.q $e |- ( ph -> Q e. A ) $.
    lsatcv0eq.r $e |- ( ph -> R e. A ) $.
    $( If the sum of two atoms cover the zero subspace, they are equal.
       ( ~ atcv0eq analog.)  (Contributed by NM, 10-Jan-2015.) $)
    lsatcv0eq $p |- ( ph -> ( { .0. } C ( Q .(+) R ) <-> Q = R ) ) $=
      ( wbr wceq wcel syl adantr csn co wne wa cin lsatnem0 clss cfv eqid clvec
      wn clmod lveclmod lsatlssel lsatcv0 biantrurd 3bitrd lsssn0 lsmcl syl3anc
      simprl simprr lcvntr ex sylbid necon4ad csubg wss lsssssubg sseldd lsmidm
      lcvp breqtrrd oveq2 breq2d syl5ibcom impbid ) AHUAZEFDUBZCPZEFQZAVTEFAEFU
      CZVRECPZEVSCPZUDZVTUKZAWBEFUEVRQWDWEABEFGHIKMNOUFABCDFGUGUHZEGHWGUIZJIKLM
      ABWGEGWHKAGUJRZGULRZMGUMSZNUNZOVLAWCWDABCEGHIKLMNUOZUPUQAWEWFAWEUDCVRWGEV
      SGUJWHLAWIWEMTAVRWGRZWEAWJWNWKWGGHIWHURSTAEWGRZWEWLTAVSWGRZWEAWJWOFWGRWPW
      KWLABWGFGWHKWKOUNDWGEFGWHJUSUTTAWCWDVAAWCWDVBVCVDVEVFAVREEDUBZCPWAVTAVREW
      QCWMAEGVGUHZRWQEQAWGWREAWJWGWRVHWKWGGWHVISWLVJDEGJVKSVMWAWQVSVRCEFEDVNVOV
      PVQ $.
  $}

  ${
    lsatcv1.o $e |- .0. = ( 0g ` W ) $.
    lsatcv1.p $e |- .(+) = ( LSSum ` W ) $.
    lsatcv1.s $e |- S = ( LSubSp ` W ) $.
    lsatcv1.a $e |- A = ( LSAtoms ` W ) $.
    lsatcv1.c $e |- C = ( <oL ` W ) $.
    lsatcv1.w $e |- ( ph -> W e. LVec ) $.
    lsatcv1.u $e |- ( ph -> U e. S ) $.
    lsatcv1.q $e |- ( ph -> Q e. A ) $.
    lsatcv1.r $e |- ( ph -> R e. A ) $.
    lsatcv1.l $e |- ( ph -> U C ( Q .(+) R ) ) $.
    $( Two atoms covering the zero subspace are equal.  ( ~ atcv1 analog.)
       (Contributed by NM, 10-Jan-2015.) $)
    lsatcv1 $p |- ( ph -> ( U = { .0. } <-> Q = R ) ) $=
      ( csn wceq co breq1 syl5ibcom lsatcv0eq sylibd wa adantr clvec wcel oveq1
      wbr csubg cfv clmod lveclmod syl lsatlssel lsssubg syl2anc lsmidm eqeltrd
      sylan9eqr lsatcveq0 mpbid ex impbid ) AHJUAZUBZEFUBZAVJVIEFDUCZCUMZVKAHVL
      CUMZVJVMTHVIVLCUDUEABCDEFIJKLNOPRSUFUGAVKVJAVKUHZVNVJAVNVKTUIVOBCVLGHIJKM
      NOAIUJUKZVKPUIAHGUKVKQUIVOVLFBVKAVLFFDUCZFEFFDULAFIUNUOUKZVQFUBAIUPUKZFGU
      KVRAVPVSPIUQURZABGFIMNVTSUSGFIMUTVADFILVBURVDAFBUKVKSUIVCVEVFVGVH $.
  $}

  ${
    lsatcvat.o $e |- .0. = ( 0g ` W ) $.
    lsatcvat.s $e |- S = ( LSubSp ` W ) $.
    lsatcvat.p $e |- .(+) = ( LSSum ` W ) $.
    lsatcvat.a $e |- A = ( LSAtoms ` W ) $.
    lsatcvat.w $e |- ( ph -> W e. LVec ) $.
    lsatcvat.u $e |- ( ph -> U e. S ) $.
    lsatcvat.q $e |- ( ph -> Q e. A ) $.
    lsatcvat.r $e |- ( ph -> R e. A ) $.
    lsatcvat.n $e |- ( ph -> U =/= { .0. } ) $.
    lsatcvat.l $e |- ( ph -> U C. ( Q .(+) R ) ) $.
    ${
      $d x A $.  $d x U $.  $d x W $.  $d x ph $.
      lsatcvat.m $e |- ( ph -> -. Q C_ U ) $.
      $( Lemma for ~ lsatcvat .  (Contributed by NM, 10-Jan-2015.) $)
      lsatcvatlem $p |- ( ph -> U e. A ) $=
        ( vx wss wrex wcel clvec clmod lveclmod syl lssatomic w3a clcv cfv eqid
        cv co 3ad2ant1 simp2 lsatlssel lsmcl syl3anc cin csn wceq wbr wne wn wi
        sseq1 biimpcd necon3bd 3ad2ant3 mpd lsatnem0 mpbid lcvp csubg lsssssubg
        cabl lmodabl sseldd lsmcom breqtrd wpss lsmub1 syl2anc pssssd lsatexch1
        simp3 sstrd wa wb lsmlub mpbi2and psssstrd lcvnbtwn3 eqeltrd rexlimdv3a
        ) AUAUNZGUBZUABUCGBUDZABFGHIUAKJMAHUEUDZHUFUDZNHUGUHZORUIAWSWTUABAWRBUD
        ZWSUJZGWRBXEHUKULZWRFDWRCUOZGHUEKXFUMZAXDXAWSNUPZXEBFWRHKMAXDXBWSXCUPZA
        XDWSUQZURZXEXBDFUDZWRFUDXGFUDXJAXDXMWSABFDHKMXCPURUPZXLCFDWRHKLUSUTZAXD
        GFUDWSOUPXEWRWRDCUOZXGXFXEWRDVAIVBVCZWRXPXFVDXEWRDVEZXQXEDGUBZVFZXRAXDX
        TWSTUPWSAXTXRVGXDWSXSWRDWRDVCWSXSWRDGVHVIVJVKVLZXEBWRDHIJMXIXKAXDDBUDWS
        PUPZVMVNXEBXFCDFWRHIKLJMXHXIXLYBVOVNXEHVRUDZWRHVPULZUDZDYDUDZXPXGVCXEXB
        YCXJHVSUHXEFYDWRXEXBFYDUBXJFHKVQUHZXLVTZXEFYDDYGXNVTZCWRDHLWAUTWBAXDWSW
        HZXEGDECUOZXGAXDGYKWCWSSUPXEDXGUBZEXGUBZYKXGUBZXEYFYEYLYIYHCDWRHLWDWEXE
        BCWREDHLMXIXKAXDEBUDWSQUPYBXEWRGYKYJAXDGYKUBWSAGYKSWFUPWIYAWGXEYFEYDUDX
        GYDUDYLYMWJYNWKYIXEFYDEYGAXDEFUDWSABFEHKMXCQURUPVTXEFYDXGYGXOVTCDEXGHLW
        LUTWMWNWOXKWPWQVL $.
    $}

    $( A nonzero subspace less than the sum of two atoms is an atom.
       ( ~ atcvati analog.)  (Contributed by NM, 10-Jan-2015.) $)
    lsatcvat $p |- ( ph -> U e. A ) $=
      ( adantr wss wn wcel wa clvec csn wne co wpss simpr lsatcvatlem csubg cfv
      cabl clmod lveclmod syl lmodabl lsssssubg lsatlssel sseldd lsmcom syl3anc
      wceq psseq2d mpbid wo wb lsmlub ssnpss syl6bi con2d ianor syl6ib mpjaodan
      mpd ) ADGUAZUBZGBUCEGUAZUBZAVRUDBCDEFGHIJKLMAHUEUCZVRNTAGFUCZVROTADBUCZVR
      PTAEBUCZVRQTAGIUFUGZVRRTAGDECUHZUIZVRSTAVRUJUKAVTUDBCEDFGHIJKLMAWAVTNTAWB
      VTOTAWDVTQTAWCVTPTAWEVTRTAGEDCUHZUIZVTAWGWISAWFWHGAHUNUCZDHULUMZUCZEWKUCZ
      WFWHVDAHUOUCZWJAWAWNNHUPUQZHURUQAFWKDAWNFWKUAWOFHKUSUQZABFDHKMWOPUTVAZAFW
      KEWPABFEHKMWOQUTVAZCDEHLVBVCVEVFTAVTUJUKAWGVRVTVGZSAWGVQVSUDZUBWSAWTWGAWT
      WFGUAZWGUBAWLWMGWKUCWTXAVHWQWRAFWKGWPOVACDEGHLVIVCWFGVJVKVLVQVSVMVNVPVO
      $.
  $}

  ${
    lsatcvat2.s $e |- S = ( LSubSp ` W ) $.
    lsatcvat2.p $e |- .(+) = ( LSSum ` W ) $.
    lsatcvat2.a $e |- A = ( LSAtoms ` W ) $.
    lsatcvat2.c $e |- C = ( <oL ` W ) $.
    lsatcvat2.w $e |- ( ph -> W e. LVec ) $.
    lsatcvat2.u $e |- ( ph -> U e. S ) $.
    lsatcvat2.q $e |- ( ph -> Q e. A ) $.
    lsatcvat2.r $e |- ( ph -> R e. A ) $.
    lsatcvat2.n $e |- ( ph -> Q =/= R ) $.
    lsatcvat2.l $e |- ( ph -> U C ( Q .(+) R ) ) $.
    $( A subspace covered by the sum of two distinct atoms is an atom.
       ( ~ atcvat2i analog.)  (Contributed by NM, 10-Jan-2015.) $)
    lsatcvat2 $p |- ( ph -> U e. A ) $=
      ( wcel c0g cfv eqid csn wne lsatcv1 necon3bid mpbird clvec clmod lveclmod
      co syl lsatlssel lsmcl syl3anc lcvpss lsatcvat ) ABDEFGHIIUAUBZUSUCZJKLNO
      PQAHUSUDZUEEFUERAHVAEFABCDEFGHIUSUTKJLMNOPQSUFUGUHACGHEFDULZIUIJMNOAIUJTZ
      EGTFGTVBGTAIUITVCNIUKUMZABGEIJLVDPUNABGFIJLVDQUNDGEFIJKUOUPSUQUR $.
  $}

  ${
    lsatcvat3.s $e |- S = ( LSubSp ` W ) $.
    lsatcvat3.p $e |- .(+) = ( LSSum ` W ) $.
    lsatcvat3.a $e |- A = ( LSAtoms ` W ) $.
    lsatcvat3.w $e |- ( ph -> W e. LVec ) $.
    lsatcvat3.u $e |- ( ph -> U e. S ) $.
    lsatcvat3.q $e |- ( ph -> Q e. A ) $.
    lsatcvat3.r $e |- ( ph -> R e. A ) $.
    lsatcvat3.n $e |- ( ph -> Q =/= R ) $.
    lsatcvat3.m $e |- ( ph -> -. R C_ U ) $.
    lsatcvat3.l $e |- ( ph -> Q C_ ( U .(+) R ) ) $.
    $( A condition implying that a certain subspace is an atom.  Part of Lemma
       3.2.20 of [PtakPulmannova] p. 68.  ( ~ atcvat3i analog.)  (Contributed
       by NM, 11-Jan-2015.) $)
    lsatcvat3 $p |- ( ph -> ( U i^i ( Q .(+) R ) ) e. A ) $=
      ( co wcel clcv cfv cin clmod clvec lveclmod syl lsatlssel syl3anc lssincl
      eqid lsmcl wss wn wbr lcv1 mpbid cabl csubg wceq lmodabl lsssssubg sseldd
      lsmcom oveq2d lsmass eqtr4d lsmless2 eqsstrd lsmidm sseqtrd syl2anc eqssd
      lsmub2 breqtrrd lcvexchlem4 lsatcvat2 ) ABHUAUBZCDEFGDECSZUCZHIJKVRUKZLAH
      UDTZGFTZVSFTZVTFTAHUETWBLHUFUGZMAWBDFTEFTZWDWEABFDHIKWENUHZABFEHIKWEOUHZC
      FDEHIJULUIZFGVSHIUJUINOPAVRCFGVSHIJWAWEMWIAGGECSZGVSCSZVRAEGUMUNGWJVRUOQA
      BVRCEFGHIJKWALMOUPUQAWKWJAWKWJWJCSZWJAWKWJDCSZWLAWKGEDCSZCSZWMAVSWNGCAHUR
      TZDHUSUBZTZEWQTZVSWNUTAWBWPWEHVAUGAFWQDAWBFWQUMWEFHIVBUGZWGVCZAFWQEWTWHVC
      ZCDEHJVDUIVEAGWQTZWSWRWMWOUTAFWQGWTMVCZXBXACGEDHJVFUIVGAWJWQTZXEDWJUMWMWL
      UMAFWQWJWTAWBWCWFWJFTWEMWHCFGEHIJULUIVCZXFRCWJDWJHJVHUIVIAXEWLWJUTXFCWJHJ
      VJUGVKAXCVSWQTEVSUMZWJWKUMXDAFWQVSWTWIVCAWRWSXGXAXBCDEHJVNVLCGEVSHJVHUIVM
      VOVPVQ $.
  $}

  ${
    $d q C $.  $d q S $.  $d q U $.  $d q V $.  $d q W $.  $d q ph $.
    islshpcv.v $e |- V = ( Base ` W ) $.
    islshpcv.s $e |- S = ( LSubSp ` W ) $.
    islshpcv.h $e |- H = ( LSHyp ` W ) $.
    islshpcv.c $e |- C = ( <oL ` W ) $.
    islshpcv.w $e |- ( ph -> W e. LVec ) $.
    $( Hyperplane properties expressed with covers relation.  (Contributed by
       NM, 11-Jan-2015.) $)
    islshpcv $p |- ( ph -> ( U e. H <-> ( U e. S /\ U C V ) ) ) $=
      ( vq wcel cfv w3a wbr wa eqid syl wne cv clsm co wceq clsa clvec lveclmod
      wrex clmod islshpat wi simp12 wpss lssss simp13 df-pss sylanbrc wb psseq2
      wss 3ad2ant3 mpbird 3ad2ant1 simp2 lcv2 mpbid breqtrd jca rexlimdv3a 3exp
      simp3 3impd simprl adantr lss1 simprr lcvpss pssned lcvat ex impbid bitrd
      3jca ) ADENDCNZDFUAZDMUBZGUCOZUDZFUEZMGUFOZUIZPZWEDFBQZRZAWKWHCDEFGMHIWHS
      ZJWKSZAGUGNZGUJNZLGUHTZUKAWMWOAWEWFWLWOAWEWFWLWOULAWEWFPZWJWOMWKXAWGWKNZW
      JPZWEWNAWEWFXBWJUMZXCDWIFBXCDWIUNZDWIBQXCXEDFUNZXCDFVAZWFXFXCWEXGXDCDFGHI
      UOTAWEWFXBWJUPDFUQURWJXAXEXFUSXBWIFDUTVBVCXCWKBWHWGCDGIWPWQKXAXBWRWJAWEWR
      WFLVDVDXDXAXBWJVEVFVGXAXBWJVLVHVIVJVKVMAWOWMAWORZWEWFWLAWEWNVNZXHDFXHBCDF
      GUGIKAWRWOLVOXIXHWSFCNAWSWOWTVOZCFGHIVPTZAWEWNVQZVRVSXHWKBWHCDFGMIWPWQKXJ
      XIXKXLVTWDWAWBWC $.
  $}

  ${
    $d v .(+) $.  $d v Q $.  $d v U $.  $d v V $.  $d v W $.  $d v ph $.
    l1cvpat.v $e |- V = ( Base ` W ) $.
    l1cvpat.s $e |- S = ( LSubSp ` W ) $.
    l1cvpat.p $e |- .(+) = ( LSSum ` W ) $.
    l1cvpat.a $e |- A = ( LSAtoms ` W ) $.
    l1cvpat.c $e |- C = ( <oL ` W ) $.
    l1cvpat.w $e |- ( ph -> W e. LVec ) $.
    l1cvpat.u $e |- ( ph -> U e. S ) $.
    l1cvpat.q $e |- ( ph -> Q e. A ) $.
    l1cvpat.l $e |- ( ph -> U C V ) $.
    l1cvpat.m $e |- ( ph -> -. Q C_ U ) $.
    $( A subspace covered by the set of all vectors, when summed with an atom
       not under it, equals the set of all vectors.  ( ~ 1cvrjat analog.)
       (Contributed by NM, 11-Jan-2015.) $)
    l1cvpat $p |- ( ph -> ( U .(+) Q ) = V ) $=
      ( wcel vv cv csn clspn cfv wceq c0g cdif wrex wss wn co clvec eqid islsat
      wb syl mpbid wi eldifi clmod lveclmod 3ad2ant1 simp2 lspsnel5 notbid clsh
      w3a islshpcv mpbir2and lshpnelb biimpd sylbird sseq1 oveq2 eqeq1d imbi12d
      wbr 3ad2ant3 mpbird 3exp syl5 rexlimdv mp2d ) AEUAUBZUCIUDUEZUEZUFZUAHIUG
      UEZUCZUHZUIZEGUJZUKZGEDULZHUFZAEBTZWLQAIUMTZWQWLUPOUABEWFHIUMWIJWFUNZWIUN
      MUOUQURSAWHWNWPUSZUAWKWEWKTWEHTZAWHWTUSWEHWJUTAXAWHWTAXAWHVHZWTWGGUJZUKZG
      WGDULZHUFZUSZXBXDWEGTZUKZXFXBXHXCXBFGWFHIWEJKWSAXAIVATZWHAWRXJOIVBUQVCAXA
      GFTZWHPVCAXAWHVDZVEVFXBXIXFXBDGIVGUEZWFHIWEJWSLXMUNZAXAWRWHOVCAXAGXMTZWHA
      XOXKGHCVRPRACFGXMHIJKXNNOVIVJVCXLVKVLVMWHAWTXGUPXAWHWNXDWPXFWHWMXCEWGGVNV
      FWHWOXEHEWGGDVOVPVQVSVTWAWBWCWD $.
  $}

  ${
    l1cvat.v $e |- V = ( Base ` W ) $.
    l1cvat.s $e |- S = ( LSubSp ` W ) $.
    l1cvat.p $e |- .(+) = ( LSSum ` W ) $.
    l1cvat.a $e |- A = ( LSAtoms ` W ) $.
    l1cvat.c $e |- C = ( <oL ` W ) $.
    l1cvat.w $e |- ( ph -> W e. LVec ) $.
    l1cvat.u $e |- ( ph -> U e. S ) $.
    l1cvat.q $e |- ( ph -> Q e. A ) $.
    l1cvat.r $e |- ( ph -> R e. A ) $.
    l1cvat.n $e |- ( ph -> Q =/= R ) $.
    l1cvat.l $e |- ( ph -> U C V ) $.
    l1cvat.m $e |- ( ph -> -. Q C_ U ) $.
    $( Create an atom under an element covered by the lattice unit.  Part of
       proof of Lemma B in [Crawley] p. 112.  ( ~ 1cvrat analog.)  (Contributed
       by NM, 11-Jan-2015.) $)
    l1cvat $p |- ( ph -> ( ( Q .(+) R ) i^i U ) e. A ) $=
      ( cin cabl wcel csubg cfv wceq clmod clvec lveclmod syl lmodabl lsssssubg
      co wss lsatlssel sseldd lsmcom syl3anc ineq1d incom syl6eq necomd lsatssv
      l1cvpat sseqtr4d lsatcvat3 eqeltrd ) AEFDUOZHUCZHFEDUOZUCZBAVKVLHUCVMAVJV
      LHAJUDUEZEJUFUGZUEFVOUEVJVLUHAJUIUEZVNAJUJUEVPPJUKULZJUMULAGVOEAVPGVOUPVQ
      GJLUNULZABGEJLNVQRUQURAGVOFVRABGFJLNVQSUQURDEFJMUSUTVAVLHVBVCABDFEGHJLMNP
      QSRAEFTVDUBAFIHEDUOABFIJKNVQSVEABCDEGHIJKLMNOPQRUAUBVFVGVHVI $.
  $}

  ${
    lshpat.s $e |- S = ( LSubSp ` W ) $.
    lshpat.p $e |- .(+) = ( LSSum ` W ) $.
    ishpat.h $e |- H = ( LSHyp ` W ) $.
    lshpat.a $e |- A = ( LSAtoms ` W ) $.
    lshpat.w $e |- ( ph -> W e. LVec ) $.
    lshpat.l $e |- ( ph -> U e. H ) $.
    lshpat.q $e |- ( ph -> Q e. A ) $.
    lshpat.r $e |- ( ph -> R e. A ) $.
    lshpat.n $e |- ( ph -> Q =/= R ) $.
    lshpat.m $e |- ( ph -> -. Q C_ U ) $.
    $( Create an atom under a hyperplane.  Part of proof of Lemma B in
       [Crawley] p. 112.  ( ~ lhpat analog.)  TODO:  This changes ` U C V ` in
       ~ l1cvpat and ~ l1cvat to ` U e. H ` , which in turn change ` U e. H `
       in ~ islshpcv to ` U C V ` , with a couple of conversions of span to
       atom.  Seems convoluted.  Would a direct proof be better?  (Contributed
       by NM, 11-Jan-2015.) $)
    lshpat $p |- ( ph -> ( ( Q .(+) R ) i^i U ) e. A ) $=
      ( cfv clcv cbs eqid wcel wbr wa islshpcv mpbid simpld simprd l1cvat ) ABI
      UATZCDEFGIUBTZIUMUCZJKMULUCZNAGFUDZGUMULUEZAGHUDUPUQUFOAULFGHUMIUNJLUONUG
      UHZUIPQRAUPUQURUJSUK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Functionals and kernels of a left vector space (or module)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c LFnl $.

  $( Extend class notation with all linear functionals of a left module or left
     vector space. $)
  clfn $a class LFnl $.

  ${
    $d w x y r f $.
    $( Define the set of all linear functionals (maps from vectors to the ring)
       of a left module or left vector space.  (Contributed by NM,
       15-Apr-2014.) $)
    df-lfl $a |- LFnl = ( w e. _V |->
     { f e. ( ( Base ` ( Scalar ` w ) ) ^m ( Base ` w ) )
       | A. r e. ( Base ` ( Scalar ` w ) )
         A. x e. ( Base ` w ) A. y e. ( Base ` w )
          ( f ` ( ( r ( .s ` w ) x ) ( +g ` w ) y ) )
             = ( ( r ( .r ` ( Scalar ` w ) ) ( f ` x ) )
                 ( +g ` ( Scalar ` w ) ) ( f ` y ) ) } ) $.
  $}

  ${
    $d w .+^ $.  $d f r w K $.  $d f w x y V $.  $d f r w x y W $.  $d w .x. $.
    $d w .+ $.  $d w .X. $.
    lflset.v $e |- V = ( Base ` W ) $.
    lflset.a $e |- .+ = ( +g ` W ) $.
    lflset.d $e |- D = ( Scalar ` W ) $.
    lflset.s $e |- .x. = ( .s ` W ) $.
    lflset.k $e |- K = ( Base ` D ) $.
    lflset.p $e |- .+^ = ( +g ` D ) $.
    lflset.t $e |- .X. = ( .r ` D ) $.
    lflset.f $e |- F = ( LFnl ` W ) $.
    $( The set of linear functionals in a left module or left vector space.
       (Contributed by NM, 15-Apr-2014.)  (Revised by Mario Carneiro,
       24-Jun-2014.) $)
    lflset $p |- ( W e. X -> F = { f e. ( K ^m V )
       | A. r e. K A. x e. V A. y e. V ( f ` ( ( r .x. x ) .+ y ) )
             = ( ( r .X. ( f ` x ) ) .+^ ( f ` y ) ) } ) $=
      ( vw wcel cvv cv co wceq wral cmap crab elex clfn cvsca cplusg csca cmulr
      cfv fveq2 syl6eqr fveq2d oveq12d oveqd eqidd oveq123d raleqbidv rabeqbidv
      cbs eqeq12d df-lfl ovex rabex fvmpt syl5eq syl ) LMUDLUEUDZINUFZAUFZFUGZB
      UFZDUGZHUFZURZVQVRWBURZGUGZVTWBURZEUGZUHZBKUIZAKUIZNJUIZHJKUJUGZUKZUHLMUL
      VPILUMURWMUBUCLVQVRUCUFZUNURZUGZVTWNUOURZUGZWBURZVQWDWNUPURZUQURZUGZWFWTU
      OURZUGZUHZBWNVHURZUIZAXFUIZNWTVHURZUIZHXIXFUJUGZUKWMUEUMWNLUHZXJWKHXKWLXL
      XIJXFKUJXLXICVHURJXLWTCVHXLWTLUPURCWNLUPUSQUTZVASUTZXLXFLVHURKWNLVHUSOUTZ
      VBXLXHWJNXIJXNXLXGWIAXFKXOXLXEWHBXFKXOXLWSWCXDWGXLWRWAWBXLWPVSVTVTWQDXLWQ
      LUOURDWNLUOUSPUTXLWOFVQVRXLWOLUNURFWNLUNUSRUTVCXLVTVDVEVAXLXBWEWFWFXCEXLX
      CCUOUREXLWTCUOXMVATUTXLXAGVQWDXLXACUQURGXLWTCUQXMVAUAUTVCXLWFVDVEVIVFVFVF
      VGABUCHNVJWKHWLJKUJVKVLVMVNVO $.

    $d f .+ $.  $d f r x y G $.  $d f .+^ $.  $d f .x. $.  $d f .X. $.
    $( The predicate "is a linear functional".  (Contributed by NM,
       15-Apr-2014.) $)
    islfl $p |- ( W e. X -> ( G e. F <-> ( G : V --> K
      /\ A. r e. K A. x e. V A. y e. V
           ( G ` ( ( r .x. x ) .+ y ) )
             = ( ( r .X. ( G ` x ) ) .+^ ( G ` y ) ) ) ) ) $=
      ( vf wcel cv co cfv wceq wral cmap crab wf wa lflset eleq2d fveq1 oveq12d
      oveq2d eqeq12d 2ralbidv ralbidv elrab cbs fvex eqeltri elmap anbi1i bitri
      cvv syl6bb ) LMUDZIHUDINUEZAUEZFUFBUEZDUFZUCUEZUGZVLVMVPUGZGUFZVNVPUGZEUF
      ZUHZBKUIAKUIZNJUIZUCJKUJUFZUKZUDZKJIULZVOIUGZVLVMIUGZGUFZVNIUGZEUFZUHZBKU
      IAKUIZNJUIZUMZVKHWFIABCDEFGUCHJKLMNOPQRSTUAUBUNUOWGIWEUDZWPUMWQWDWPUCIWEV
      PIUHZWCWONJWSWBWNABKKWSVQWIWAWMVOVPIUPWSVSWKVTWLEWSVRWJVLGVMVPIUPURVNVPIU
      PUQUSUTVAVBWRWHWPJKIJCVCUGVISCVCVDVEKLVCUGVIOLVCVDVEVFVGVHVJ $.

    $d r x y .+^ $.  $d r x y R $.  $d r V $.  $d r x y .x. $.  $d r x y .X. $.
    $d r x y .+ $.  $d x y X $.  $d y Y $.
    $( Property of a linear functional.  ( ~ lnfnli analog.)  (Contributed by
       NM, 16-Apr-2014.) $)
    lfli $p |- ( ( W e. Z /\ G e. F /\ ( R e. K /\ X e. V /\ Y e. V ) ) ->
      ( G ` ( ( R .x. X ) .+ Y ) ) = ( ( R .X. ( G ` X ) ) .+^ ( G ` Y ) ) ) $=
      ( vr vx vy wcel w3a cv co cfv wceq wf islfl simplbda 3adant3 oveq1 oveq1d
      wral wi fveq2d eqeq12d oveq2 fveq2 oveq2d rspc3v 3ad2ant3 mpd ) KNUFZHGUF
      ZDIUFLJUFMJUFUGZUGUCUHZUDUHZEUIZUEUHZBUIZHUJZVKVLHUJZFUIZVNHUJZCUIZUKZUEJ
      URUDJURUCIURZDLEUIZMBUIZHUJZDLHUJZFUIZMHUJZCUIZUKZVHVIWBVJVHVIJIHULWBUDUE
      ABCEFGHIJKNUCOPQRSTUAUBUMUNUOVJVHWBWJUSVIWAWJDVLEUIZVNBUIZHUJZDVQFUIZVSCU
      IZUKWCVNBUIZHUJZWGVSCUIZUKUCUDUEDLMIJJVKDUKZVPWMVTWOWSVOWLHWSVMWKVNBVKDVL
      EUPUQUTWSVRWNVSCVKDVQFUPUQVAVLLUKZWMWQWOWRWTWLWPHWTWKWCVNBVLLDEVBUQUTWTWN
      WGVSCWTVQWFDFVLLHVCVDUQVAVNMUKZWQWEWRWIXAWPWDHVNMWCBVBUTXAVSWHWGCVNMHVCVD
      VAVEVFVG $.
  $}

  ${
    $d r x y G $.  $d r x y K $.  $d x y V $.  $d r x y W $.  $d r x y ph $.
    islfld.v $e |- ( ph -> V = ( Base ` W ) ) $.
    islfld.a $e |- ( ph -> .+ = ( +g ` W ) ) $.
    islfld.d $e |- ( ph -> D = ( Scalar ` W ) ) $.
    islfld.s $e |- ( ph -> .x. = ( .s ` W ) ) $.
    islfld.k $e |- ( ph -> K = ( Base ` D ) ) $.
    islfld.p $e |- ( ph -> .+^ = ( +g ` D ) ) $.
    islfld.t $e |- ( ph -> .X. = ( .r ` D ) ) $.
    islfld.f $e |- ( ph -> F = ( LFnl ` W ) ) $.
    islfld.u $e |- ( ph -> G : V --> K ) $.
    islfld.l $e |- ( ( ph /\ ( r e. K /\ x e. V /\ y e. V ) ) ->
      ( G ` ( ( r .x. x ) .+ y ) ) = ( ( r .X. ( G ` x ) ) .+^ ( G ` y ) ) ) $.
    islfld.w $e |- ( ph -> W e. X ) $.
    $( Properties that determine a linear functional.  TODO: use this in place
       of ~ islfl when it shortens the proof.  (Contributed by NM,
       19-Oct-2014.) $)
    islfld $p |- ( ph -> G e. F ) $=
      ( clfn cfv wcel cbs csca wf cv cvsca cplusg cmulr wceq wral fveq2d feq23d
      co eqtrd mpbid ralrimivvva oveqd eqidd oveq123d eqeq12d raleqbidv wa eqid
      islfl biimpar syl12anc eleqtrrd ) AJMUGUHZIAMNUIZMUJUHZMUKUHZUJUHZJULZOUM
      ZBUMZMUNUHZVAZCUMZMUOUHZVAZJUHZWBWCJUHZVSUPUHZVAZWFJUHZVSUOUHZVAZUQZCVRUR
      ZBVRURZOVTURZJVPUIZUFALKJULWAUDALKVRVTJPAKDUJUHVTTADVSUJRUSVBZUTVCAWBWCGV
      AZWFEVAZJUHZWBWJHVAZWMFVAZUQZCLURZBLURZOKURWSAXGOBCKLLUEVDAXIWROKVTXAAXHW
      QBLVRPAXGWPCLVRPAXDWIXFWOAXCWHJAXBWEWFWFEWGQAGWDWBWCSVEAWFVFVGUSAXEWLWMWM
      FWNAFDUOUHWNUAADVSUORUSVBAHWKWBWJAHDUPUHWKUBADVSUPRUSVBVEAWMVFVGVHVIVIVIV
      CVQWTWAWSVJBCVSWGWNWDWKVPJVTVRMNOVRVKWGVKVSVKWDVKVTVKWNVKWKVKVPVKVLVMVNUC
      VO $.
  $}

  ${
    $d r x y G $.  $d r K $.  $d x y V $.  $d r x y W $.
    lflf.d $e |- D = ( Scalar ` W ) $.
    lflf.k $e |- K = ( Base ` D ) $.
    lflf.v $e |- V = ( Base ` W ) $.
    lflf.f $e |- F = ( LFnl ` W ) $.
    $( A linear functional is a function from vectors to scalars.  ( ~ lnfnfi
       analog.)  (Contributed by NM, 15-Apr-2014.) $)
    lflf $p |- ( ( W e. X /\ G e. F ) -> G : V --> K ) $=
      ( vr vx vy wcel cv cfv co wral eqid wf cvsca cplusg cmulr islfl simprbda
      wceq ) FGOCBOEDCUALPZMPZFUBQZRNPZFUCQZRCQUHUICQAUDQZRUKCQAUCQZRUGNESMESLD
      SMNAULUNUJUMBCDEFGLJULTHUJTIUNTUMTKUEUF $.

    $( A linear functional value is a scalar.  (Contributed by NM,
       15-Apr-2014.) $)
    lflcl $p |- ( ( W e. Y /\ G e. F /\ X e. V ) -> ( G ` X ) e. K ) $=
      ( wcel w3a wf lflf 3adant3 simp3 ffvelrnd ) FHMZCBMZGEMZNEDGCTUAEDCOUBABC
      DEFHIJKLPQTUAUBRS $.
  $}

  ${
    lfl0.d $e |- D = ( Scalar ` W ) $.
    lfl0.o $e |- .0. = ( 0g ` D ) $.
    lfl0.z $e |- Z = ( 0g ` W ) $.
    lfl0.f $e |- F = ( LFnl ` W ) $.
    $( A linear functional is zero at the zero vector.  ( ~ lnfn0i analog.)
       (Contributed by NM, 16-Apr-2014.)  (Revised by Mario Carneiro,
       24-Jun-2014.) $)
    lfl0 $p |- ( ( W e. LMod /\ G e. F ) -> ( G ` Z ) = .0. ) $=
      ( clmod wcel cfv co cplusg cbs wceq eqid adantr syl3anc cvsca cmulr simpl
      wa csg cur simpr lmod1cl lmod0vcl lfli syl113anc lmod0vrid syldan lmodvs1
      lmodvscl eqtrd fveq2d crg lmodring lflcl mpd3an3 ringlidm syl2anc 3eqtr3d
      oveq1d cgrp ringgrp syl grpsubid grppncan 3eqtr3rd ) DKLZCBLZUDZFCMZVOAUE
      MZNZVOVOAOMZNZVOVPNZEVOVNVOVSVOVPVNAUFMZFDUAMZNZFDOMZNZCMZWAVOAUBMZNZVOVR
      NZVOVSVNVLVMWAAPMZLZFDPMZLZWMWFWIQVLVMUCZVLVMUGVLWKVMWAAWJDGWJRZWARZUHSZV
      LWMVMWLDFWLRZIUISZWSAWDVRWAWBWGBCWJWLDFFKWRWDRZGWBRZWOVRRZWGRZJUJUKVNWEFC
      VNWEWCFVLVMWCWLLZWEWCQVNVLWKWMXDWNWQWSWAWBAWJWLDFWRGXAWOUOTWDWLDWCFWRWTIU
      LUMVLVMWMWCFQWSWBWAAWLDFWRGXAWPUNUMUPUQVNWHVOVOVRVNAURLZVOWJLZWHVOQVLXEVM
      ADGUSSZVLVMWMXFWSABCWJWLDFKGWOWRJUTVAZWJAWGWAVOWOXCWPVBVCVEVDVEVNAVFLZXFV
      QEQVNXEXIXGAVGVHZXHWJAVPVOEWOHVPRZVIVCVNXIXFXFVTVOQXJXHXHWJVRAVPVOVOWOXBX
      KVJTVK $.
  $}

  ${
    lfladd.d $e |- D = ( Scalar ` W ) $.
    lfladd.p $e |- .+^ = ( +g ` D ) $.
    lfladd.v $e |- V = ( Base ` W ) $.
    lfladd.a $e |- .+ = ( +g ` W ) $.
    lfladd.f $e |- F = ( LFnl ` W ) $.
    $( Property of a linear functional.  ( ~ lnfnaddi analog.)  (Contributed by
       NM, 18-Apr-2014.) $)
    lfladd $p |- ( ( W e. LMod /\ G e. F /\ ( X e. V /\ Y e. V ) )
      -> ( G ` ( X .+ Y ) ) = ( ( G ` X ) .+^ ( G ` Y ) ) ) $=
      ( clmod wcel cfv co wceq eqid w3a cur cvsca cmulr cbs simp1 simp2 lmod1cl
      3ad2ant1 simp3l simp3r lfli syl113anc lmodvs1 syl2anc oveq1d crg lmodring
      wa fveq2d lflcl 3adant3r ringlidm 3eqtr3d ) GOPZEDPZHFPZIFPZUSZUAZAUBQZHG
      UCQZRZIBRZEQZVKHEQZAUDQZRZIEQZCRZHIBRZEQVPVSCRVJVEVFVKAUEQZPZVGVHVOVTSVEV
      FVIUFZVEVFVIUGVEVFWCVIVKAWBGJWBTZVKTZUHUIVEVFVGVHUJZVEVFVGVHUKABCVKVLVQDE
      WBFGHIOLMJVLTZWEKVQTZNULUMVJVNWAEVJVMHIBVJVEVGVMHSWDWGVLVKAFGHLJWHWFUNUOU
      PUTVJVRVPVSCVJAUQPZVPWBPZVRVPSVEVFWJVIAGJURUIVEVFVGWKVHADEWBFGHOJWELNVAVB
      WBAVQVKVPWEWIWFVCUOUPVD $.
  $}

  ${
    lflsub.d $e |- D = ( Scalar ` W ) $.
    lflsub.m $e |- M = ( -g ` D ) $.
    lflsub.v $e |- V = ( Base ` W ) $.
    lflsub.a $e |- .- = ( -g ` W ) $.
    lflsub.f $e |- F = ( LFnl ` W ) $.
    $( Property of a linear functional.  ( ~ lnfnaddi analog.)  (Contributed by
       NM, 18-Apr-2014.) $)
    lflsub $p |- ( ( W e. LMod /\ G e. F /\ ( X e. V /\ Y e. V ) )
      -> ( G ` ( X .- Y ) ) = ( ( G ` X ) M ( G ` Y ) ) ) $=
      ( clmod wcel cfv co wceq eqid wa w3a cur cminusg cvsca cplusg cmulr simp1
      simp3l cbs cgrp crg lmodring 3ad2ant1 ringgrp syl ringidcl syl2anc simp3r
      grpinvcl lmodvscl syl3anc lmodcom fveq2d lfli syl113anc 3adant3l ringnegl
      simp2 lflcl oveq1d cabl ringabl 3adant3r ablcom eqtrd 3eqtrd lmodvsubval2
      grpsubval 3eqtr4d ) GOPZCBPZHFPZIFPZUAZUBZHAUCQZAUDQZQZIGUEQZRZGUFQZRZCQZ
      HCQZICQZWHQZAUFQZRZHIERZCQWOWPDRZWFWNWKHWLRZCQZWIWPAUGQZRZWOWRRZWSWFWMXBC
      WFWAWCWKFPZWMXBSWAWBWEUHZWAWBWCWDUIZWFWAWIAUJQZPZWDXGXHWFAUKPZWGXJPZXKWFA
      ULPZXLWAWBXNWEAGJUMUNZAUOUPZWFXNXMXOXJAWGXJTZWGTZUQUPXJAWHWGXQWHTZUTURZWA
      WBWCWDUSZWIWJAXJFGILJWJTZXQVAVBWLFGHWKLWLTZVCVBVDWFWAWBXKWDWCXCXFSXHWAWBW
      EVIXTYAXIAWLWRWIWJXDBCXJFGIHOLYCJYBXQWRTZXDTZNVEVFWFXFWQWOWRRZWSWFXEWQWOW
      RWFXJAXDWGWHWPXQYEXRXSXOWAWBWDWPXJPZWCABCXJFGIOJXQLNVJVGZVHVKWFAVLPZWQXJP
      ZWOXJPZYFWSSWFXNYIXOAVMUPWFXLYGYJXPYHXJAWHWPXQXSUTURWAWBWCYKWDABCXJFGHOJX
      QLNVJVNZXJWRAWQWOXQYDVOVBVPVQWFWTWMCWFWAWCWDWTWMSXHXIYAHIWLWJWGAEWHFGLYCM
      JYBXSXRVRVBVDWFYKYGXAWSSYLYHXJWRAWHDWOWPXQYDXSKVSURVT $.
  $}

  ${
    lflmul.d $e |- D = ( Scalar ` W ) $.
    lflmul.k $e |- K = ( Base ` D ) $.
    lflmul.t $e |- .X. = ( .r ` D ) $.
    lflmul.v $e |- V = ( Base ` W ) $.
    lflmul.s $e |- .x. = ( .s ` W ) $.
    lflmul.f $e |- F = ( LFnl ` W ) $.
    $( Property of a linear functional.  ( ~ lnfnmuli analog.)  (Contributed by
       NM, 16-Apr-2014.) $)
    lflmul $p |- ( ( W e. LMod /\ G e. F /\ ( R e. K /\ X e. V ) )
      -> ( G ` ( R .x. X ) ) = ( R .X. ( G ` X ) ) ) $=
      ( wcel co cfv wceq clmod wa w3a c0g cplusg simp1 simp2 simp3l simp3r eqid
      lmod0vcl 3ad2ant1 lfli syl113anc syl3anc lmod0vrid syl2anc fveq2d 3adant3
      lmodvscl lfl0 oveq2d lmodfgrp lflcl 3adant3l lmodmcl grprid eqtrd 3eqtr3d
      cgrp ) IUAQZFEQZBGQZJHQZUBZUCZBJCRZIUDSZIUESZRZFSZBJFSZDRZVRFSZAUESZRZVQF
      SWCVPVKVLVMVNVRHQZWAWFTVKVLVOUFZVKVLVOUGVKVLVMVNUHZVKVLVMVNUIZVKVLWGVOHIV
      RNVRUJZUKULAVSWEBCDEFGHIJVRUANVSUJZKOLWEUJZMPUMUNVPVTVQFVPVKVQHQZVTVQTWHV
      PVKVMVNWNWHWIWJBCAGHIJNKOLUTUOVSHIVQVRNWLWKUPUQURVPWFWCAUDSZWERZWCVPWDWOW
      CWEVKVLWDWOTVOAEFIWOVRKWOUJZWKPVAUSVBVPAVJQZWCGQZWPWCTVKVLWRVOAIKVCULVPVK
      VMWBGQZWSWHWIVKVLVNWTVMAEFGHIJUAKLNPVDVEDAGIBWBKLMVFUOGWEAWCWOLWMWQVGUQVH
      VI $.
  $}

  ${
    $d r x y D $.  $d r x y .0. $.  $d r x y V $.  $d r x y W $.
    lfl0f.d $e |- D = ( Scalar ` W ) $.
    lfl0f.o $e |- .0. = ( 0g ` D ) $.
    lfl0f.v $e |- V = ( Base ` W ) $.
    lfl0f.f $e |- F = ( LFnl ` W ) $.
    $( The zero function is a functional.  (Contributed by NM, 16-Apr-2014.) $)
    lfl0f $p |- ( W e. LMod -> ( V X. { .0. } ) e. F ) $=
      ( vr vx vy wcel cfv cv co wceq wral eqid syl clmod csn cxp wf cvsca cmulr
      cbs cplusg wss c0g cvv fvex eqeltri fconst lmod0cl snssd sylancr lmodring
      fss wa ad2antrr simplrl ringrz syl2anc oveq1d cgrp ringgrp grpidcl grplid
      crg eqtrd simplrr fvconst2 oveq2d adantl oveq12d simpll lmodvscl lmodvacl
      syl3anc simpr 3eqtr4rd ralrimiva ralrimivva islfl mpbir2and ) DUAMZCEUBZU
      CZBMCAUGNZWIUDZJOZKOZDUENZPZLOZDUHNZPZWINZWLWMWINZAUFNZPZWPWINZAUHNZPZQZL
      CRZKCRJWJRWGCWHWIUDWHWJUIWKCEEAUJNUKGAUJULUMZUNWGEWJAWJDEFWJSZGUOUPCWHWJW
      IUSUQWGXGJKWJCWGWLWJMZWMCMZUTZUTZXFLCXMWPCMZUTZWLEXAPZEXDPZEXEWSXOXQEEXDP
      ZEXOXPEEXDXOAVJMZXJXPEQWGXSXLXNADFURVAZWGXJXKXNVBZWJAXAWLEXIXASZGVCVDVEXO
      AVFMZEWJMZXREQXOXSYCXTAVGTZXOYCYDYEWJAEXIGVHTWJXDAEEXIXDSZGVIVDVKXOXBXPXC
      EXDXOWTEWLXAXOXKWTEQWGXJXKXNVLZCEWMXHVMTVNXNXCEQXMCEWPXHVMVOVPXOWRCMZWSEQ
      XOWGWOCMZXNYHWGXLXNVQZXOWGXJXKYIYJYAYGWLWNAWJCDWMHFWNSZXIVRVTXMXNWAWQCDWO
      WPHWQSZVSVTCEWRXHVMTWBWCWDKLAWQXDWNXABWIWJCDUAJHYLFYKXIYFYBIWEWF $.
  $}

  ${
    $d x D $.  $d z F $.  $d x z G $.  $d x z .1. $.  $d x z V $.  $d x z W $.
    $d z .0. $.
    lfl1.d $e |- D = ( Scalar ` W ) $.
    lfl1.o $e |- .0. = ( 0g ` D ) $.
    lfl1.u $e |- .1. = ( 1r ` D ) $.
    lfl1.v $e |- V = ( Base ` W ) $.
    lfl1.f $e |- F = ( LFnl ` W ) $.
    $( A nonzero functional has a value of 1 at some argument.  (Contributed by
       NM, 16-Apr-2014.) $)
    lfl1 $p |- ( ( W e. LVec /\ G e. F /\ G =/= ( V X. { .0. } ) )
        -> E. x e. V ( G ` x ) = .1. ) $=
      ( vz wcel cfv wceq eqid syl syl3anc clvec csn cxp wne w3a cv wrex wa wral
      wn nne ralbii wf wfn wi cbs ffn fconstfv simplbi2 c0g cvv eqeltri fconst2
      lflf fvex syl6ib syl5bi necon3ad dfrex2 syl6ibr 3impia cinvr cvsca simp1l
      co clmod lveclmod cdr lvecdrng simp1r simp2 lflcl simp3 drnginvrcl lflmul
      lmodvscl cmulr syl112anc drnginvrl eqtrd eqeq1d rspcev syl2anc rexlimdv3a
      fveq2 3adant3 mpd ) GUAOZEDOZEFHUBZUCZUDZUENUFZEPZHUDZNFUGZAUFZEPZCQZAFUG
      ZWRWSXBXFWRWSUHZXBXEUJZNFUIZUJXFXKXMEXAXMXDHQZNFUIZXKEXAQZXLXNNFXDHUKULXK
      XOFWTEUMZXPXKEFUNZXOXQUOXKFBUPPZEUMXRBDEXSFGUAIXSRZLMVDFXSEUQSXQXRXONFHEU
      RUSSFHEHBUTPVAJBUTVEVBVCVFVGVHXENFVIVJVKWRWSXFXJUOXBXKXEXJNFXKXCFOZXEUEZX
      DBVLPZPZXCGVMPZVOZFOZYFEPZCQZXJYBGVPOZYDXSOZYAYGYBWRYJWRWSYAXEVNZGVQSZYBB
      VROZXDXSOZXEYKYBWRYNYLBGIVSSZYBWRWSYAYOYLWRWSYAXEVTZXKYAXEWAZBDEXSFGXCUAI
      XTLMWBTZXKYAXEWCZXSBYCXDHXTJYCRZWDTZYRYDYEBXSFGXCLIYERZXTWFTYBYHYDXDBWGPZ
      VOZCYBYJWSYKYAYHUUEQYMYQUUBYRBYDYEUUDDEXSFGXCIXTUUDRZLUUCMWEWHYBYNYOXEUUE
      CQYPYSYTXSBUUDCYCXDHXTJUUFKUUAWITWJXIYIAYFFXGYFQXHYHCXGYFEWOWKWLWMWNWPWQ
      $.
  $}

  ${
    $d x y z G $.  $d x y z H $.  $d x y z .+ $.  $d x y z R $.  $d x y z W $.
    $d x y z ph $.
    lfladdcl.r $e |- R = ( Scalar ` W ) $.
    lfladdcl.p $e |- .+ = ( +g ` R ) $.
    lfladdcl.f $e |- F = ( LFnl ` W ) $.
    lfladdcl.w $e |- ( ph -> W e. LMod ) $.
    lfladdcl.g $e |- ( ph -> G e. F ) $.
    lfladdcl.h $e |- ( ph -> H e. F ) $.
    $( Closure of addition of two functionals.  (Contributed by NM,
       19-Oct-2014.) $)
    lfladdcl $p |- ( ph -> ( G oF .+ H ) e. F ) $=
      ( co wcel cfv wceq cvv clmod syl3anc vx vy vz cof wf cv cvsca cplusg wral
      cbs cmulr wa adantr simprl simprr eqid lmodacl lflf syl2anc fvexd off w3a
      inidm simpr1 simpr2 lmodvscl simpr3 wfn ffn syl eqidd ofval syldan oveq2d
      lmodvacl oveq12d syl112anc ccmn crg lmodring ringcmn lflcl cmn4 syl122anc
      lfladd lflmul ringdi syl13anc eqtr4d oveq1d 3eqtrd ralrimivvva mpbir2and
      wb islfl ) AEFBUDNZDOZGUJPZCUJPZWPUEZUAUFZUBUFZGUGPZNZUCUFZGUHPZNZWPPZXAX
      BWPPZCUKPZNZXEWPPZBNZQZUCWRUIUBWRUIUAWSUIZAUAUBWRWRWRBWSWSWSEFRRAXAWSOZXB
      WSOZULZULGSOZXPXQXAXBBNWSOAXSXRKUMAXPXQUNAXPXQUOBCWSGXAXBHWSUPZIUQTAXSEDO
      ZWRWSEUEZKLCDEWSWRGSHXTWRUPZJURUSZAXSFDOZWRWSFUEZKMCDFWSWRGSHXTYCJURUSZAG
      UJUTZYHWRVCZVAAXNUAUBUCWSWRWRAXPXBWROZXEWROZVBZULZXHXGEPZXGFPZBNZXMAYLXGW
      ROZXHYPQYMXSXDWROZYKYQAXSYLKUMZYMXSXPYJYRYSAXPYJYKVDZAXPYJYKVEZXAXCCWSWRG
      XBYCHXCUPZXTVFTZAXPYJYKVGZXFWRGXDXEYCXFUPZVOTAWRWRYNYOBWREFRRXGAYBEWRVHYD
      WRWSEVIVJZAYFFWRVHYGWRWSFVIVJZYHYHYIAYQULZYNVKUUHYOVKVLVMYMXMXAXBEPZXBFPZ
      BNZXJNZXEEPZXEFPZBNZBNZYPYMXKUULXLUUOBYMXIUUKXAXJAYLYJXIUUKQUUAAWRWRUUIUU
      JBWREFRRXBUUFUUGYHYHYIAYJULZUUIVKUUQUUJVKVLVMVNAYLYKXLUUOQUUDAWRWRUUMUUNB
      WREFRRXEUUFUUGYHYHYIAYKULZUUMVKUURUUNVKVLVMVPYMYPXDEPZUUMBNZXDFPZUUNBNZBN
      ZUUSUVABNZUUOBNZUUPYMYNUUTYOUVBBYMXSYAYRYKYNUUTQYSAYAYLLUMZUUCUUDCXFBDEWR
      GXDXEHIYCUUEJWEVQYMXSYEYRYKYOUVBQYSAYEYLMUMZUUCUUDCXFBDFWRGXDXEHIYCUUEJWE
      VQVPYMCVROZUUSWSOZUUMWSOZUVAWSOZUUNWSOZUVCUVEQYMCVSOZUVHYMXSUVMYSCGHVTVJZ
      CWAVJYMXSYAYRUVIYSUVFUUCCDEWSWRGXDSHXTYCJWBTYMXSYAYKUVJYSUVFUUDCDEWSWRGXE
      SHXTYCJWBTYMXSYEYRUVKYSUVGUUCCDFWSWRGXDSHXTYCJWBTYMXSYEYKUVLYSUVGUUDCDFWS
      WRGXESHXTYCJWBTWSBCUUNUUSUUMUVAXTIWCWDYMUVDUULUUOBYMUVDXAUUIXJNZXAUUJXJNZ
      BNZUULYMUUSUVOUVAUVPBYMXSYAXPYJUUSUVOQYSUVFYTUUACXAXCXJDEWSWRGXBHXTXJUPZY
      CUUBJWFVQYMXSYEXPYJUVAUVPQYSUVGYTUUACXAXCXJDFWSWRGXBHXTUVRYCUUBJWFVQVPYMU
      VMXPUUIWSOZUUJWSOZUULUVQQUVNYTYMXSYAYJUVSYSUVFUUACDEWSWRGXBSHXTYCJWBTYMXS
      YEYJUVTYSUVGUUACDFWSWRGXBSHXTYCJWBTWSBCXJXAUUIUUJXTIUVRWGWHWIWJWKWIWIWLAX
      SWQWTXOULWNKUBUCCXFBXCXJDWPWSWRGSUAYCUUEHUUBXTIUVRJWOVJWM $.

    $( Commutativity of functional addition.  (Contributed by NM,
       19-Oct-2014.) $)
    lfladdcom $p |- ( ph -> ( G oF .+ H ) = ( H oF .+ G ) ) $=
      ( vx vy cbs cfv clmod wcel wf cvv fvexd eqid lflf syl2anc cv wa cabl wceq
      co crg lmodring ringabl 3syl adantr simprl simprr ablcom syl3anc caofcom
      ) ANOGPQZBCPQZEFUAAGPUBAGRSZEDSVAVBETKLCDEVBVAGRHVBUCZVAUCZJUDUEAVCFDSVAV
      BFTKMCDFVBVAGRHVDVEJUDUEANUFZVBSZOUFZVBSZUGZUGCUHSZVGVIVFVHBUJVHVFBUJUIAV
      KVJAVCCUKSVKKCGHULCUMUNUOAVGVIUPAVGVIUQVBBCVFVHVDIURUSUT $.

    $d x y z I $.
    lfladdass.i $e |- ( ph -> I e. F ) $.
    $( Associativity of functional addition.  (Contributed by NM,
       19-Oct-2014.) $)
    lfladdass $p |- ( ph
        -> ( ( G oF .+ H ) oF .+ I ) = ( G oF .+ ( H oF .+ I ) ) ) $=
      ( cbs clmod wcel wf co vx vy vz cfv cvv fvexd eqid lflf syl2anc cgrp wceq
      cv w3a crg lmodring ringgrp 3syl grpass sylan caofass ) AUAUBUCHPUDZBBCPU
      DZBEFGBUEAHPUFAHQRZEDRVAVBESLMCDEVBVAHQIVBUGZVAUGZKUHUIAVCFDRVAVBFSLNCDFV
      BVAHQIVDVEKUHUIAVCGDRVAVBGSLOCDGVBVAHQIVDVEKUHUIACUJRZUAULZVBRUBULZVBRUCU
      LZVBRUMVGVHBTVIBTVGVHVIBTBTUKAVCCUNRVFLCHIUOCUPUQVBBCVGVHVIVDJURUSUT $.
  $}

  ${
    $d k G $.  $d k .0. $.  $d k .+ $.  $d k R $.  $d k ph $.
    lfladd0l.v $e |- V = ( Base ` W ) $.
    lfladd0l.r $e |- R = ( Scalar ` W ) $.
    lfladd0l.p $e |- .+ = ( +g ` R ) $.
    lfladd0l.o $e |- .0. = ( 0g ` R ) $.
    lfladd0l.f $e |- F = ( LFnl ` W ) $.
    lfladd0l.w $e |- ( ph -> W e. LMod ) $.
    lfladd0l.g $e |- ( ph -> G e. F ) $.
    $( Functional addition with the zero functional.  (Contributed by NM,
       21-Oct-2014.) $)
    lfladd0l $p |- ( ph -> ( ( V X. { .0. } ) oF .+ G ) = G ) $=
      ( vk cbs cfv cvv wcel fvex eqeltri a1i clmod wf eqid lflf syl2anc cgrp cv
      c0g co wceq crg lmodring ringgrp 3syl grplid sylan caofid0l ) APFHBCQRZES
      SFSTAFGQRSIGQUAUBUCAGUDTZEDTFVAEUENOCDEVAFGUDJVAUFZIMUGUHHSTAHCUKRSLCUKUA
      UBUCACUITZPUJZVATHVEBULVEUMAVBCUNTVDNCGJUOCUPUQVABCVEHVCKLURUSUT $.
  $}

  ${
    $d x y G $.  $d x y I $.  $d k y z N $.  $d y .0. $.  $d y .+ $.
    $d k x y z R $.  $d x y z V $.  $d k x y z W $.  $d k x y z ph $.
    lflnegcl.v $e |- V = ( Base ` W ) $.
    lflnegcl.r $e |- R = ( Scalar ` W ) $.
    lflnegcl.i $e |- I = ( invg ` R ) $.
    lflnegcl.n $e |- N = ( x e. V |-> ( I ` ( G ` x ) ) ) $.
    lflnegcl.f $e |- F = ( LFnl ` W ) $.
    lflnegcl.w $e |- ( ph -> W e. LMod ) $.
    lflnegcl.g $e |- ( ph -> G e. F ) $.
    $( Closure of the negative of a functional.  (This is specialized for the
       purpose of proving ~ ldualgrp , and we do not define a general operation
       here.)  (Contributed by NM, 22-Oct-2014.) $)
    lflnegcl $p |- ( ph -> N e. F ) $=
      ( wcel cfv co wceq vk vy vz cbs wf cv cvsca cplusg cmulr wral wa cgrp crg
      clmod lmodring syl ringgrp adantr simpr eqid lflcl syl3anc grpinvcl fmptd
      syl2anc cabl ringabl simpr1 simpr2 ringcl simpr3 ablinvadd lfli syl113anc
      fveq2d ringmneg2 oveq1d 3eqtr4d lmodvscl lmodvacl fveq2 fvex fvmpt oveq2d
      w3a oveq12d ralrimivvva wb islfl mpbir2and ) AGDQZHCUDRZGUEZUAUFZUBUFZIUG
      RZSZUCUFZIUHRZSZGRZWNWOGRZCUIRZSZWRGRZCUHRZSZTZUCHUJUBHUJUAWLUJZABHBUFZER
      ZFRZWLGAXJHQZUKZCULQZXKWLQZXLWLQAXOXMACUMQZXOAIUNQZXQOCIKUOUPZCUQUPURXNXR
      EDQZXMXPAXRXMOURAXTXMPURAXMUSCDEWLHIXJUNKWLUTZJNVAVBWLCFXKYALVCVEMVDAXHUA
      UBUCWLHHAWNWLQZWOHQZWRHQZWEZUKZWTERZFRZWNWOERZFRZXCSZWRERZFRZXFSZXAXGYFWN
      YIXCSZYLXFSZFRZYOFRZYMXFSZYHYNYFCVFQZYOWLQZYLWLQZYQYSTAYTYEAXQYTXSCVGUPUR
      YFXQYBYIWLQZUUAAXQYEXSURZAYBYCYDVHZYFXRXTYCUUCAXRYEOURZAXTYEPURZAYBYCYDVI
      ZCDEWLHIWOUNKYAJNVAVBZWLCXCWNYIYAXCUTZVJVBYFXRXTYDUUBUUFUUGAYBYCYDVKZCDEW
      LHIWRUNKYAJNVAVBWLXFCFYOYLYAXFUTZLVLVBYFYGYPFYFXRXTYBYCYDYGYPTUUFUUGUUEUU
      HUUKCWSXFWNWPXCDEWLHIWOWRUNJWSUTZKWPUTZYAUULUUJNVMVNVOYFYKYRYMXFYFWLCXCFW
      NYIYAUUJLUUDUUEUUIVPVQVRYFWTHQZXAYHTYFXRWQHQZYDUUOUUFYFXRYBYCUUPUUFUUEUUH
      WNWPCWLHIWOJKUUNYAVSVBUUKWSHIWQWRJUUMVTVBBWTXLYHHGXJWTTXKYGFXJWTEWAVOMYGF
      WBWCUPYFXDYKXEYMXFYFXBYJWNXCYFYCXBYJTUUHBWOXLYJHGXJWOTXKYIFXJWOEWAVOMYIFW
      BWCUPWDYFYDXEYMTUUKBWRXLYMHGXJWRTXKYLFXJWREWAVOMYLFWBWCUPWFVRWGAXRWKWMXIU
      KWHOUBUCCWSXFWPXCDGWLHIUNUAJUUMKUUNYAUULUUJNWIUPWJ $.

    lflnegl.p $e |- .+ = ( +g ` R ) $.
    lflnegl.o $e |- .0. = ( 0g ` R ) $.
    $( A functional plus its negative is the zero functional.  (This is
       specialized for the purpose of proving ~ ldualgrp , and we do not define
       a general operation here.)  (Contributed by NM, 22-Oct-2014.) $)
    lflnegl $p |- ( ph -> ( N oF .+ G ) = ( V X. { .0. } ) ) $=
      ( vy cbs cfv cvv wcel fvex eqeltri a1i clmod wf eqid lflf syl2anc c0g crg
      wf1o cgrp lmodring ringgrp 3syl grpinvf1o f1of cv cmpt wceq grplinv sylan
      syl co caofinvl ) AUABIKCDUBUCZFHGUDUDIUDUEAIJUBUCUDLJUBUFUGUHAJUIUEZFEUE
      IVKFUJQRDEFVKIJUIMVKUKZLPULUMKUDUEAKDUNUCUDTDUNUFUGUHAVKVKGUPVKVKGUJAVKDG
      VMNAVLDUOUEDUQUEZQDJMURDUSUTZVAVKVKGVBVHHBIBVCFUCGUCVDVEAOUHAVNUAVCZVKUEV
      PGUCVPCVIKVEVOVKCDGVPKVMSTNVFVGVJ $.
  $}

  ${
    $d r x y G $.  $d r x y K $.  $d r x y R $.  $d r x y .x. $.  $d r x y V $.
    $d r x y W $.  $d r x y ph $.
    lflsccl.v $e |- V = ( Base ` W ) $.
    lflsccl.d $e |- D = ( Scalar ` W ) $.
    lflsccl.k $e |- K = ( Base ` D ) $.
    lflsccl.t $e |- .x. = ( .r ` D ) $.
    lflsccl.f $e |- F = ( LFnl ` W ) $.
    lflsccl.w $e |- ( ph -> W e. LMod ) $.
    lflsccl.g $e |- ( ph -> G e. F ) $.
    lflsccl.r $e |- ( ph -> R e. K ) $.
    $( Closure of a scalar product with a functional.  Note that this is the
       scalar product for a right vector space with the scalar after the
       vector; reversing these fails closure.  (Contributed by NM, 9-Oct-2014.)
       (Revised by Mario Carneiro, 22-Apr-2015.) $)
    lflvscl $p |- ( ph -> ( G oF .x. ( V X. { R } ) ) e. F ) $=
      ( cfv co wcel vx vy vr cplusg cvsca csn cxp cof clmod cbs wceq eqidd csca
      a1i cmulr clfn cvv crg cv wa lmodring syl ringcl 3expb sylan lflf syl2anc
      fconst6g fvex eqeltri inidm off w3a adantr simpr1 simpr2 simpr3 eqid lfli
      syl113anc oveq1d lflcl syl3anc ringdir syl13anc ringass lmodvscl lmodvacl
      wf 3eqtrd wfn ffn ofc2 syldan oveq2d oveq12d 3eqtr4d islfld ) AUAUBBIUDRZ
      BUDRZIUERZDEFHCUFUGZDUHSZGHIUIUCHIUJRZUKAJUNAWSULBIUMRUKAKUNAXAULGBUJRUKA
      LUNAWTULDBUORUKAMUNEIUPRUKANUNAUAUBHHHDGGGFXBUQUQABURTZUAUSZGTZUBUSZGTZUT
      XFXHDSGTZAIUITZXEOBIKVAVBZXEXGXIXJGBDXFXHLMVCVDVEAXKFETZHGFWIZOPBEFGHIUIK
      LJNVFVGZACGTZHGXBWIQHCGVHVBHUQTAHXDUQJIUJVIVJUNZXQHVKVLAUCUSZGTZXFHTZXHHT
      ZVMZUTZXRXFXASZXHWSSZFRZCDSZXRXFFRZCDSZDSZXHFRZCDSZWTSZYEXCRZXRXFXCRZDSZX
      HXCRZWTSYCYGXRYHDSZYKWTSZCDSZYRCDSZYLWTSZYMYCYFYSCDYCXKXMXSXTYAYFYSUKAXKY
      BOVNZAXMYBPVNZAXSXTYAVOZAXSXTYAVPZAXSXTYAVQZBWSWTXRXADEFGHIXFXHUIJWSVRZKX
      AVRZLWTVRZMNVSVTWAYCXEYRGTZYKGTZXPYTUUBUKAXEYBXLVNZYCXEXSYHGTZUUKUUMUUEYC
      XKXMXTUUNUUCUUDUUFBEFGHIXFUIKLJNWBWCZGBDXRYHLMVCWCYCXKXMYAUULUUCUUDUUGBEF
      GHIXHUIKLJNWBWCAXPYBQVNZGWTBDYRYKCLUUJMWDWEYCUUAYJYLWTYCXEXSUUNXPUUAYJUKU
      UMUUEUUOUUPGBDXRYHCLMWFWEWAWJAYBYEHTZYNYGUKYCXKYDHTZYAUUQUUCYCXKXSXTUURUU
      CUUEUUFXRXABGHIXFJKUUILWGWCUUGWSHIYDXHJUUHWHWCAHCYFDFUQGYEXQQAXNFHWKXOHGF
      WLVBZAUUQUTYFULWMWNYCYPYJYQYLWTYCYOYIXRDAYBXTYOYIUKUUFAHCYHDFUQGXFXQQUUSA
      XTUTYHULWMWNWOAYBYAYQYLUKUUGAHCYKDFUQGXHXQQUUSAYAUTYKULWMWNWPWQOWR $.
  $}

  ${
    $d x y z .+ $.  $d x y z G $.  $d x y z H $.  $d x y z K $.  $d x y z ph $.
    $d x y z V $.  $d x y z .x. $.  $d x y z X $.  $d x y z Y $.
    lfldi.v $e |- V = ( Base ` W ) $.
    lfldi.r $e |- R = ( Scalar ` W ) $.
    lfldi.k $e |- K = ( Base ` R ) $.
    lfldi.p $e |- .+ = ( +g ` R ) $.
    lfldi.t $e |- .x. = ( .r ` R ) $.
    lfldi.f $e |- F = ( LFnl ` W ) $.
    lfldi.w $e |- ( ph -> W e. LMod ) $.
    lfldi.x $e |- ( ph -> X e. K ) $.
    ${
      lfldi1.g $e |- ( ph -> G e. F ) $.
      lfldi1.h $e |- ( ph -> H e. F ) $.
      $( Distributive law for (right vector space) scalar product of
         functionals.  (Contributed by NM, 19-Oct-2014.) $)
      lflvsdi1 $p |- ( ph -> ( ( G oF .+ H ) oF .x. ( V X. { X } ) )
       = ( ( G oF .x. ( V X. { X } ) ) oF .+ ( H oF .x. ( V X. { X } ) ) ) ) $=
        ( vx vy vz csn cxp cvv wcel cbs cfv fvex eqeltri a1i fconst6g syl clmod
        wf lflf syl2anc crg cv w3a co wceq lmodring ringdir sylan caofdir ) AUB
        UCUDIBHDIKUEUFZFGHBUGIUGUHAIJUIUJUGLJUIUKULUMAKHUHIHVIUQSIKHUNUOAJUPUHZ
        FEUHIHFUQRTCEFHIJUPMNLQURUSAVJGEUHIHGUQRUACEGHIJUPMNLQURUSACUTUHZUBVAZH
        UHUCVAZHUHUDVAZHUHVBVLVMBVCVNDVCVLVNDVCVMVNDVCBVCVDAVJVKRCJMVEUOHBCDVLV
        MVNNOPVFVGVH $.
    $}

    ${
      lfldi2.y $e |- ( ph -> Y e. K ) $.
      lfldi2.g $e |- ( ph -> G e. F ) $.
      $( Reverse distributive law for (right vector space) scalar product of
         functionals.  (Contributed by NM, 19-Oct-2014.) $)
      lflvsdi2 $p |- ( ph
  -> ( G oF .x. ( ( V X. { X } ) oF .+ ( V X. { Y } ) ) )
       = ( ( G oF .x. ( V X. { X } ) ) oF .+ ( G oF .x. ( V X. { Y } ) ) ) ) $=
        ( vx vy vz csn cxp cvv wcel cbs cfv fvex eqeltri a1i clmod lflf syl2anc
        wf fconst6g syl crg cv w3a co wceq lmodring ringdi sylan caofdi ) AUBUC
        UDHBGDFHJUEUFZHKUEUFZGBUGHUGUHAHIUIUJUGLIUIUKULUMAIUNUHZFEUHHGFUQRUACEF
        GHIUNMNLQUOUPAJGUHHGVIUQSHJGURUSAKGUHHGVJUQTHKGURUSACUTUHZUBVAZGUHUCVAZ
        GUHUDVAZGUHVBVMVNVOBVCDVCVMVNDVCVMVODVCBVCVDAVKVLRCIMVEUSGBCDVMVNVONOPV
        FVGVH $.

      $( Reverse distributive law for (right vector space) scalar product of
         functionals.  (Contributed by NM, 21-Oct-2014.) $)
      lflvsdi2a $p |- ( ph
  -> ( G oF .x. ( V X. { ( X .+ Y ) } ) )
       = ( ( G oF .x. ( V X. { X } ) ) oF .+ ( G oF .x. ( V X. { Y } ) ) ) ) $=
        ( csn cxp cof co cvv wcel cbs fvex eqeltri ofc12 oveq2d lflvsdi2 eqtr3d
        cfv a1i ) AFHJUBUCZHKUBUCZBUDZUEZDUDZUEFHJKBUEUBUCZVAUEFUQVAUEFURVAUEUS
        UEAUTVBFVAAHJKBUFGGHUFUGAHIUHUOUFLIUHUIUJUPSTUKULABCDEFGHIJKLMNOPQRSTUA
        UMUN $.
    $}
  $}

  ${
    $d x y z G $.  $d x y z K $.  $d x y z .x. $.  $d x y z V $.  $d x y z X $.
    $d x y z Y $.  $d x y z ph $.
    lflass.v $e |- V = ( Base ` W ) $.
    lflass.r $e |- R = ( Scalar ` W ) $.
    lflass.k $e |- K = ( Base ` R ) $.
    lflass.t $e |- .x. = ( .r ` R ) $.
    lflass.f $e |- F = ( LFnl ` W ) $.
    lflass.w $e |- ( ph -> W e. LMod ) $.
    lflass.x $e |- ( ph -> X e. K ) $.
    lflass.y $e |- ( ph -> Y e. K ) $.
    lflass.g $e |- ( ph -> G e. F ) $.
    $( Associative law for (right vector space) scalar product of functionals.
       (Contributed by NM, 19-Oct-2014.) $)
    lflvsass $p |- ( ph
  -> ( G oF .x. ( V X. { ( X .x. Y ) } ) )
           = ( ( G oF .x. ( V X. { X } ) ) oF .x. ( V X. { Y } ) ) ) $=
      ( co vx vy vz csn cxp cof cvv wcel cbs cfv fvex eqeltri a1i clmod wf lflf
      syl2anc fconst6g syl crg cv w3a wceq lmodring ringass sylan caofass ofc12
      oveq2d eqtr2d ) AEGIUDUEZCUFZTGJUDUEZVLTEVKVMVLTZVLTEGIJCTUDUEZVLTAUAUBUC
      GCCFCEVKVMCUGGUGUHAGHUIUJUGKHUIUKULUMZAHUNUHZEDUHGFEUOPSBDEFGHUNLMKOUPUQA
      IFUHGFVKUOQGIFURUSAJFUHGFVMUORGJFURUSABUTUHZUAVAZFUHUBVAZFUHUCVAZFUHVBVSV
      TCTWACTVSVTWACTCTVCAVQVRPBHLVDUSFBCVSVTWAMNVEVFVGAVNVOEVLAGIJCUGFFVPQRVHV
      IVJ $.
  $}

  ${
    $d k G $.  $d k K $.  $d k .0. $.  $d k .x. $.  $d k ph $.
    lfl0sc.v $e |- V = ( Base ` W ) $.
    lfl0sc.d $e |- D = ( Scalar ` W ) $.
    lfl0sc.f $e |- F = ( LFnl ` W ) $.
    lfl0sc.k $e |- K = ( Base ` D ) $.
    lfl0sc.t $e |- .x. = ( .r ` D ) $.
    lfl0sc.o $e |- .0. = ( 0g ` D ) $.
    lfl0sc.w $e |- ( ph -> W e. LMod ) $.
    lfl0sc.g $e |- ( ph -> G e. F ) $.
    $( The (right vector space) scalar product of a functional with zero is the
       zero functional.  Note that the first occurrence of ` ( V X. { .0. } ) `
       represents the zero scalar, and the second is the zero functional.
       (Contributed by NM, 7-Oct-2014.) $)
    lfl0sc $p |- ( ph
      -> ( G oF .x. ( V X. { .0. } ) ) = ( V X. { .0. } ) ) $=
      ( vk cvv wcel cbs cfv fvex eqeltri a1i clmod wf lflf syl2anc crg lmodring
      syl ring0cl cv co wceq ringrz sylan caofid1 ) ARGIICFESFFGSTAGHUAUBSJHUAU
      CUDUEAHUFTZEDTGFEUGPQBDEFGHUFKMJLUHUIABUJTZIFTAUTVAPBHKUKULZFBIMOUMULZVCA
      VARUNZFTVDICUOIUPVBFBCVDIMNOUQURUS $.
  $}

  ${
    lflsc0.v $e |- V = ( Base ` W ) $.
    lflsc0.d $e |- D = ( Scalar ` W ) $.
    lflsc0.k $e |- K = ( Base ` D ) $.
    lflsc0.t $e |- .x. = ( .r ` D ) $.
    lflsc0.o $e |- .0. = ( 0g ` D ) $.
    lflsc0.w $e |- ( ph -> W e. LMod ) $.
    lflsc0.x $e |- ( ph -> X e. K ) $.
    $( The scalar product with the zero functional is the zero functional.
       (Contributed by NM, 7-Oct-2014.)  (New usage is discouraged.) $)
    lflsc0N $p |- ( ph
      -> ( ( V X. { .0. } ) oF .x. ( V X. { X } ) ) = ( V X. { .0. } ) ) $=
      ( csn cxp co cvv wcel cof cbs cfv fvex eqeltri a1i crg clmod lmodring syl
      ring0cl ofc12 wceq ringlz syl2anc sneqd xpeq2d eqtrd ) AEHPZQZEGPQCUAREHG
      CRZPZQUTAEHGCSDDESTAEFUBUCSIFUBUDUEUFABUGTZHDTAFUHTVCNBFJUIUJZDBHKMUKUJOU
      LAVBUSEAVAHAVCGDTVAHUMVDODBCGHKLMUNUOUPUQUR $.
  $}

  ${
    $d k G $.  $d k K $.  $d k .1. $.  $d k .x. $.  $d k ph $.
    lfl1sc.v $e |- V = ( Base ` W ) $.
    lfl1sc.d $e |- D = ( Scalar ` W ) $.
    lfl1sc.f $e |- F = ( LFnl ` W ) $.
    lfl1sc.k $e |- K = ( Base ` D ) $.
    lfl1sc.t $e |- .x. = ( .r ` D ) $.
    lfl1sc.i $e |- .1. = ( 1r ` D ) $.
    lfl1sc.w $e |- ( ph -> W e. LMod ) $.
    lfl1sc.g $e |- ( ph -> G e. F ) $.
    $( The (right vector space) scalar product of a functional with one is the
       functional.  (Contributed by NM, 21-Oct-2014.) $)
    lfl1sc $p |- ( ph
      -> ( G oF .x. ( V X. { .1. } ) ) = G ) $=
      ( vk cvv wcel cbs cfv fvex eqeltri a1i clmod wf lflf syl2anc cur crg wceq
      cv co lmodring syl ringridm sylan caofid0r ) ARHDCGFSSHSTAHIUAUBSJIUAUCUD
      UEAIUFTZFETHGFUGPQBEFGHIUFKMJLUHUIDSTADBUJUBSOBUJUCUDUEABUKTZRUMZGTVBDCUN
      VBULAUTVAPBIKUOUPGBCDVBMNOUQURUS $.
  $}

  $c LKer $.

  $( Extend class notation with the kernel of a functional (set of vectors
     whose functional value is zero) on a left module or left vector space. $)
  clk $a class LKer $.

  ${
    $d w f $.
    $( Define the kernel of a functional (set of vectors whose functional value
       is zero) on a left module or left vector space.  (Contributed by NM,
       15-Apr-2014.) $)
    df-lkr $a |- LKer = ( w e. _V |-> ( f e. ( LFnl ` w )
      |-> ( `' f " { ( 0g ` ( Scalar ` w ) ) } ) ) ) $.
  $}

  ${
    $d f w F $.  $d w .0. $.  $d f w W $.
    lkrfval.d $e |- D = ( Scalar ` W ) $.
    lkrfval.o $e |- .0. = ( 0g ` D ) $.
    lkrfval.f $e |- F = ( LFnl ` W ) $.
    lkrfval.k $e |- K = ( LKer ` W ) $.
    $( The kernel of a functional.  (Contributed by NM, 15-Apr-2014.)  (Revised
       by Mario Carneiro, 24-Jun-2014.) $)
    lkrfval $p |- ( W e. X -> K = ( f e. F |-> ( `' f " { .0. } ) ) ) $=
      ( vw wcel cvv cv cfv clfn csca c0g syl6eqr ccnv cima cmpt wceq elex fveq2
      csn fveq2d sneqd imaeq2d mpteq12dv df-lkr fvex eqeltri mptex fvmpt syl5eq
      clk syl ) EFMENMZDBCBOUAZGUGZUBZUCZUDEFUEUTDEURPVDKLEBLOZQPZVAVERPZSPZUGZ
      UBZUCVDNURVEEUDZBVFVJCVCVKVFEQPZCVEEQUFJTVKVIVBVAVKVHGVKVHASPGVKVGASVKVGE
      RPAVEERUFHTUHITUIUJUKLBULBCVCCVLNJEQUMUNUOUPUQUS $.

    $d f G $.  $d f .0. $.
    $( Value of the kernel of a functional.  (Contributed by NM,
       15-Apr-2014.) $)
    lkrval $p |- ( ( W e. X /\ G e. F )
            -> ( K ` G ) = ( `' G " { .0. } ) ) $=
      ( vf wcel cfv cv ccnv csn cima cvv wceq cmpt lkrfval fveq1d cnvexg imaexg
      syl cnveq imaeq1d eqid fvmptg mpdan sylan9eq ) EFMZCBMZCDNCLBLOZPZGQZRZUA
      ZNZCPZUQRZUMCDUSALBDEFGHIJKUBUCUNVBSMZUTVBTUNVASMVCCBUDVAUQSUEUFLCURVBBSU
      SUOCTUPVAUQUOCUGUHUSUIUJUKUL $.
  $}

  ${
    lkrfval2.v $e |- V = ( Base ` W ) $.
    lkrfval2.d $e |- D = ( Scalar ` W ) $.
    lkrfval2.o $e |- .0. = ( 0g ` D ) $.
    lkrfval2.f $e |- F = ( LFnl ` W ) $.
    lkrfval2.k $e |- K = ( LKer ` W ) $.
    $( Membership in the kernel of a functional.  ( ~ elnlfn analog.)
       (Contributed by NM, 16-Apr-2014.) $)
    ellkr $p |- ( ( W e. Y /\ G e. F )
       -> ( X e. ( K ` G ) <-> ( X e. V /\ ( G ` X ) = .0. ) ) ) $=
      ( wcel wa cfv ccnv csn cima wceq lkrval eleq2d cbs wfn eqid lflf elpreima
      wf wb ffn 3syl fvex elsn anbi2i syl6bb bitrd ) FHOCBOPZGCDQZOGCRISZTZOZGE
      OZGCQZIUAZPZURUSVAGABCDFHIKLMNUBUCURVBVCVDUTOZPZVFUREAUDQZCUICEUEVBVHUJAB
      CVIEFHKVIUFJMUGEVICUKEGUTCUHULVGVEVCVDIGCUMUNUOUPUQ $.

    $d x F $.  $d x G $.  $d x K $.  $d x W $.
    $( Value of the kernel of a functional.  (Contributed by NM,
       15-Apr-2014.) $)
    lkrval2 $p |- ( ( W e. X /\ G e. F ) ->
             ( K ` G ) = { x e. V | ( G ` x ) = .0. } ) $=
      ( wcel cvv cfv cv wceq wa crab elex ellkr abbi2dv df-rab syl6eqr sylan
      cab ) GHOGPOZDCOZDEQZARZDQISZAFUAZSGHUBUIUJTZUKULFOUMTZAUHUNUOUPAUKBCDEFG
      ULPIJKLMNUCUDUMAFUEUFUG $.

    ellkr2.w $e |- ( ph -> W e. Y ) $.
    ellkr2.g $e |- ( ph -> G e. F ) $.
    ellkr2.x $e |- ( ph -> X e. V ) $.
    $( Membership in the kernel of a functional.  (Contributed by NM,
       12-Jan-2015.) $)
    ellkr2 $p |- ( ph -> ( X e. ( K ` G ) <-> ( G ` X ) = .0. ) ) $=
      ( cfv wcel wceq wa wb ellkr syl2anc biantrurd bitr4d ) AHDESTZHFTZHDSJUAZ
      UBZUJAGITDCTUHUKUCPQBCDEFGHIJKLMNOUDUEAUIUJRUFUG $.
  $}

  ${
    lkrcl.v $e |- V = ( Base ` W ) $.
    lkrcl.f $e |- F = ( LFnl ` W ) $.
    lkrcl.k $e |- K = ( LKer ` W ) $.
    $( A member of the kernel of a functional is a vector.  (Contributed by NM,
       16-Apr-2014.) $)
    lkrcl $p |- ( ( W e. Y /\ G e. F /\ X e. ( K ` G ) ) -> X e. V ) $=
      ( wcel cfv wa csca c0g wceq eqid ellkr simprbda 3impa ) EGKZBAKZFBCLKZFDK
      ZUAUBMUCUDFBLENLZOLZPUEABCDEFGUFHUEQUFQIJRST $.
  $}

  ${
    lkrf0.d $e |- D = ( Scalar ` W ) $.
    lkrf0.o $e |- .0. = ( 0g ` D ) $.
    lkrf0.f $e |- F = ( LFnl ` W ) $.
    lkrf0.k $e |- K = ( LKer ` W ) $.
    $( The value of a functional at a member of its kernel is zero.
       (Contributed by NM, 16-Apr-2014.) $)
    lkrf0 $p |- ( ( W e. Y /\ G e. F /\ X e. ( K ` G ) )
          -> ( G ` X ) = .0. ) $=
      ( wcel cfv wceq wa cbs eqid ellkr simplbda 3impa ) EGMZCBMZFCDNMZFCNHOZUB
      UCPUDFEQNZMUEABCDUFEFGHUFRIJKLSTUA $.
  $}

  ${
    lkr0f.d $e |- D = ( Scalar ` W ) $.
    lkr0f.o $e |- .0. = ( 0g ` D ) $.
    lkr0f.v $e |- V = ( Base ` W ) $.
    lkr0f.f $e |- F = ( LFnl ` W ) $.
    lkr0f.k $e |- K = ( LKer ` W ) $.
    $( The kernel of the zero functional is the set of all vectors.
       (Contributed by NM, 17-Apr-2014.) $)
    lkr0f $p |- ( ( W e. LMod /\ G e. F )
             -> ( ( K ` G ) = V <-> G = ( V X. { .0. } ) ) ) $=
      ( clmod wcel wa cfv wceq wf eqid adantr csn cxp wfn ccnv cima cbs ffn syl
      lflf lkrval eqeq1d biimpa c0g cvv eqeltri fconst2 fconst4 bitr3i sylanbrc
      fvex ex wi biimpi adantl clfn simpr lfl0f eqeltrd syldan sylbir biantrurd
      bitrd mpbird impbid ) FMNZCBNZOZCDPZEQZCEGUAZUBZQZVQVSWBVQVSOCEUCZCUDVTUE
      ZEQZWBVQWCVSVQEAUFPZCRWCABCWFEFMHWFSJKUIEWFCUGUHTVQVSWEVQVRWDEABCDFMGHIKL
      UJUKULWBEVTCRZWCWEOZEGCGAUMPUNIAUMUTUOUPZEGCUQURZUSVAVOWBVSVBVPVOWBVSVOWB
      OZVSWHWBWHVOWBWHWJVCVDWKVSWEWHWKVRWDEVOWBCFVEPZNVRWDQWKCWAWLVOWBVFVOWAWLN
      WBAWLEFGHIJWLSZVGTVHAWLCDFMGHIWMLUJVIUKWKWCWEWBWCVOWBWGWCWIEVTCUGVJVDVKVL
      VMVATVN $.
  $}

  ${
    $d r x y F $.  $d r x y G $.  $d r x y K $.  $d r x y W $.
    lkrlss.f $e |- F = ( LFnl ` W ) $.
    lkrlss.k $e |- K = ( LKer ` W ) $.
    lkrlss.s $e |- S = ( LSubSp ` W ) $.
    $( The kernel of a linear functional is a subspace.  ( ~ nlelshi analog.)
       (Contributed by NM, 16-Apr-2014.) $)
    lkrlss $p |- ( ( W e. LMod /\ G e. F ) -> ( K ` G ) e. S ) $=
      ( vr vx vy clmod wcel wa cfv co wceq eqid syl syl3anc cbs wss c0 cv cvsca
      wne cplusg wral csca c0g crab lkrval2 ssrab2 syl6eqss lmod0vcl lfl0 ellkr
      adantr mpbir2and ne0i simplll simplr simpllr simprl lkrcl lmodvscl simprr
      lmodvacl cmulr syl113anc lkrf0 oveq2d crg lmodring ringrz syl2anc oveq12d
      lfli cgrp lmodfgrp grpidcl grplid 3eqtrd wb ad2antrr ralrimivva ralrimiva
      eqtrd islss syl3anbrc ) ELMZCBMZNZCDOZEUAOZUBWNUCUFZIUDZJUDZEUEOZPZKUDZEU
      GOZPZWNMZKWNUHJWNUHZIEUIOZUAOZUHWNAMWMWNWRCOZXFUJOZQZJWOUKWOJXFBCDWOELXIW
      ORZXFRZXIRZFGULXJJWOUMUNWMEUJOZWNMZWPWMXOXNWOMZXNCOXIQWKXPWLWOEXNXKXNRZUO
      URXFBCEXIXNXLXMXQFUPXFBCDWOEXNLXIXKXLXMFGUQUSWNXNUTSWMXEIXGWMWQXGMZNZXDJK
      WNWNXSWRWNMZXAWNMZNZNZXDXCWOMZXCCOZXIQZYCWKWTWOMZXAWOMZYDWKWLXRYBVAZYCWKX
      RWRWOMZYGYIWMXRYBVBZYCWKWLXTYJYIWKWLXRYBVCZXSXTYAVDZBCDWOEWRLXKFGVETZWQWS
      XFXGWOEWRXKXLWSRZXGRZVFTYCWKWLYAYHYIYLXSXTYAVGZBCDWOEXALXKFGVETZXBWOEWTXA
      XKXBRZVHTYCYEWQXHXFVIOZPZXACOZXFUGOZPZXIXIUUCPZXIYCWKWLXRYJYHYEUUDQYIYLYK
      YNYRXFXBUUCWQWSYTBCXGWOEWRXALXKYSXLYOYPUUCRZYTRZFVRVJYCUUAXIUUBXIUUCYCUUA
      WQXIYTPZXIYCXHXIWQYTYCWKWLXTXJYIYLYMXFBCDEWRLXIXLXMFGVKTVLYCXFVMMZXRUUHXI
      QYCWKUUIYIXFEXLVNSYKXGXFYTWQXIYPUUGXMVOVPWHYCWKWLYAUUBXIQYIYLYQXFBCDEXALX
      IXLXMFGVKTVQYCXFVSMZXIXGMZUUEXIQYCWKUUJYIXFEXLVTSZYCUUJUUKUULXGXFXIYPXMWA
      SXGUUCXFXIXIYPUUFXMWBVPWCWMXDYDYFNWDXRYBXFBCDWOEXCLXIXKXLXMFGUQWEUSWFWGIX
      GXBAWSWNXFWOEJKXLYPXKYSYOHWIWJ $.
  $}

  ${
    lkrssv.v $e |- V = ( Base ` W ) $.
    lkrssv.f $e |- F = ( LFnl ` W ) $.
    lkrssv.k $e |- K = ( LKer ` W ) $.
    lkrssv.w $e |- ( ph -> W e. LMod ) $.
    lkrssv.g $e |- ( ph -> G e. F ) $.
    $( The kernel of a linear functional is a set of vectors.  (Contributed by
       NM, 1-Jan-2015.) $)
    lkrssv $p |- ( ph -> ( K ` G ) C_ V ) $=
      ( cfv clss wcel wss clmod eqid lkrlss syl2anc lssss syl ) ACDLZFMLZNZUBEO
      AFPNCBNUDJKUCBCDFHIUCQZRSUCUBEFGUETUA $.
  $}

  ${
    $d v G $.  $d v L $.  $d v R $.  $d v .x. $.  $d v V $.  $d v ph $.
    lkrsc.v $e |- V = ( Base ` W ) $.
    lkrsc.d $e |- D = ( Scalar ` W ) $.
    lkrsc.k $e |- K = ( Base ` D ) $.
    lkrsc.t $e |- .x. = ( .r ` D ) $.
    lkrsc.f $e |- F = ( LFnl ` W ) $.
    lkrsc.l $e |- L = ( LKer ` W ) $.
    lkrsc.w $e |- ( ph -> W e. LVec ) $.
    lkrsc.g $e |- ( ph -> G e. F ) $.
    lkrsc.r $e |- ( ph -> R e. K ) $.
    ${
      lkrsc.o $e |- .0. = ( 0g ` D ) $.
      lkrsc.e $e |- ( ph -> R =/= .0. ) $.
      $( The kernel of a nonzero scalar product of a functional equals the
         kernel of the functional.  (Contributed by NM, 9-Oct-2014.) $)
      lkrsc $p |- ( ph -> ( L ` ( G oF .x. ( V X. { R } ) ) ) = ( L ` G ) ) $=
        ( vv csn cxp cof co cfv cv wcel wceq wa cvv cbs fvex eqeltri a1i wf wfn
        clvec lflf syl2anc ffn syl eqidd eqeq1d cdr lvecdrng adantr simpr lflcl
        ofc2 syl3anc wne drngmuleq0 bitrd pm5.32da clmod lveclmod lflvscl ellkr
        wb 3bitr4d eqrdv ) AUCFICUDUEDUFUGZHUHZFHUHZAUCUIZIUJZWHWEUHZKUKZULZWIW
        HFUHZKUKZULZWHWFUJZWHWGUJZAWIWKWNAWIULZWKWMCDUGZKUKWNWRWJWSKAICWMDFUMGW
        HIUMUJAIJUNUHUMLJUNUOUPUQTAIGFURZFIUSAJUTUJZFEUJZWTRSBEFGIJUTMNLPVAVBIG
        FVCVDWRWMVEVLVFWRGBDWMCKNUAOABVGUJZWIAXAXCRBJMVHVDVIWRXAXBWIWMGUJAXAWIR
        VIAXBWISVIAWIVJBEFGIJWHUTMNLPVKVMACGUJWITVIACKVNWIUBVIVOVPVQAXAWEEUJWPW
        LWBRABCDEFGIJLMNOPAXAJVRUJRJVSVDSTVTBEWEHIJWHUTKLMUAPQWAVBAXAXBWQWOWBRS
        BEFHIJWHUTKLMUAPQWAVBWCWD $.
    $}

    $( The kernel of a scalar product of a functional includes the kernel of
       the functional.  (The inclusion is proper for the zero product and
       equality otherwise.)  (Contributed by NM, 9-Oct-2014.) $)
    lkrscss $p |- ( ph -> ( L ` G ) C_ ( L ` ( G oF .x. ( V X. { R } ) ) ) ) $=
      ( cfv csn cxp cof co wss c0g wceq wa clvec wcel clmod lveclmod syl lkrssv
      eqid lfl0sc fveq2d lfl0f syl2anc mpbiri eqtr2d sseqtrd adantr sneq xpeq2d
      wb lkr0f oveq2d adantl sseqtr4d wne simpr lkrsc eqimss2 pm2.61dane ) AFHT
      ZFICUAZUBZDUCZUDZHTZUEZCBUFTZACWCUGZUHVPFIWCUAZUBZVSUDZHTZWAAVPWHUEWDAVPI
      WHAEFHIJKOPAJUIUJZJUKUJZQJULUMZRUNAWHWFHTZIAWGWFHABDEFGIJWCKLOMNWCUOZWKRU
      PUQAWLIUGZWFWFUGZWFUOAWJWFEUJZWNWOVFWKAWJWPWKBEIJWCLWMKOURUMBEWFHIJWCLWMK
      OPVGUSUTVAVBVCWDWAWHUGAWDVTWGHWDVRWFFVSWDVQWEICWCVDVEVHUQVIVJACWCVKZUHZWA
      VPUGWBWRBCDEFGHIJWCKLMNOPAWIWQQVCAFEUJWQRVCACGUJWQSVCWMAWQVLVMVPWAVNUMVO
      $.
  $}

  ${
    $d r x z D $.  $d x z F $.  $d r x z G $.  $d r x z H $.  $d r x z V $.
    $d r z K $.  $d x z L $.  $d r z .x. $.  $d x z W $.
    eqlkr.d $e |- D = ( Scalar ` W ) $.
    eqlkr.k $e |- K = ( Base ` D ) $.
    eqlkr.t $e |- .x. = ( .r ` D ) $.
    eqlkr.v $e |- V = ( Base ` W ) $.
    eqlkr.f $e |- F = ( LFnl ` W ) $.
    eqlkr.l $e |- L = ( LKer ` W ) $.
    $( Two functionals with the same kernel are the same up to a constant.
       (Contributed by NM, 18-Apr-2014.) $)
    eqlkr $p |- ( ( W e. LVec /\ ( G e. F /\ H e. F )
           /\ ( L ` G ) = ( L ` H ) )
      -> E. r e. K A. x e. V ( H ` x ) = ( ( G ` x ) .x. r ) ) $=
      ( wcel cfv wceq vz clvec wa w3a cv co wral wrex c0g csn cxp cur crg clmod
      simpl1 lveclmod lmodring eqid ringidcl simp11 simp12l simp3 lflcl syl3anc
      ringridm syl2anc simp2 simp13 wb lkr0f mpbird eqtr3d simp12r mpbid eqtr4d
      syl fveq1d eqtr2d 3expia ralrimiv oveq2 eqeq2d ralbidv rspcev wne simpl2l
      simpr wi simpl2r simpr2 csg cvsca simp22 lflmul syl112anc oveq2d lmodvscl
      lfl1 lflsub lmodvsubcl simp23 3eqtrd cgrp lmodfgrp grpsubid ellkr eleqtrd
      mpbir2and simprd 3adant3 lmodmcl grpsubeq0 3exp2 imp rexlimdv pm2.61dane
      mpd ) JUBRZEDRZFDRZUCZEHSZFHSZTZUDZAUEZFSZYFESZKUEZCUFZTZAIUGZKGUHZEIBUIS
      ZUJUKZYEEYOTZUCZBULSZGRZYGYHYRCUFZTZAIUGZYMYQBUMRZYSYQXRUUCXRYAYDYPUOXRJU
      NRZUUCJUPZBJLUQVPZVPGBYRMYRURZUSVPYQUUAAIYEYPYFIRZUUAYEYPUUHUDZYTYHYGUUIU
      UCYHGRZYTYHTZUUIXRUUCXRYAYDYPUUHUTZUUFVPUUIXRXSUUHUUJUULXSXTXRYDYPUUHVAZY
      EYPUUHVBBDEGIJYFUBLMOPVCZVDGBCYRYHMNUUGVEZVFUUIYFEFUUIEYOFYEYPUUHVGZUUIYC
      ITZFYOTZUUIYBYCIXRYAYDYPUUHVHUUIYBITZYPUUPUUIUUDXSUUSYPVIUUIXRUUDUULUUEVP
      ZUUMBDEHIJYNLYNURZOPQVJVFVKVLUUIUUDXTUUQUURVIUUTXSXTXRYDYPUUHVMBDFHIJYNLU
      VAOPQVJVFVNVOVQVRVSVTYLUUBKYRGYIYRTZYKUUAAIUVBYJYTYGYIYRYHCWAWBWCWDVFYEEY
      OWEZUCZUAUEZESZYRTZUAIUHZYMUVDXRXSUVCUVHXRYAYDUVCUOXSXTXRYDUVCWFYEUVCWGUA
      BYRDEIJYNLUVAUUGOPWRVDUVDUVGYMUAIYEUVCUVEIRZUVGYMWHWHYEUVCUVIUVGYMYEUVCUV
      IUVGUDZUCZUVEFSZGRZYGYHUVLCUFZTZAIUGZYMUVKXRXTUVIUVMXRYAYDUVJUOXSXTXRYDUV
      JWIYEUVCUVIUVGWJBDFGIJUVEUBLMOPVCVDZUVKUVOAIYEUVJUUHUVOYEUVJUUHUDZYGUVNBW
      KSZUFZYNTZUVOUVRYGYHUVEJWLSZUFZFSZUVSUFZUVTYNUVRUWDUVNYGUVSUVRUUDXTUUJUVI
      UWDUVNTUVRXRUUDXRYAYDUVJUUHUTZUUEVPZXSXTXRYDUVJUUHVMZUVRUUDXSUUHUUJUWGXSX
      TXRYDUVJUUHVAZYEUVJUUHVBZBDEGIJYFUNLMOPVCVDZYEUVCUVIUVGUUHWMZBYHUWBCDFGIJ
      UVELMNOUWBURZPWNWOWPUVRYFUWCJWKSZUFZFSZUWEYNUVRUUDXTUUHUWCIRZUWPUWETUWGUW
      HUWJUVRUUDUUJUVIUWQUWGUWKUWLYHUWBBGIJUVEOLUWMMWQVDZBDFUVSUWNIJYFUWCLUVSUR
      ZOUWNURZPWSWOUVRUWOIRZUWPYNTZUVRUWOYCRZUXAUXBUCZUVRUWOYBYCUVRUWOYBRZUXAUW
      OESZYNTZUVRUUDUUHUWQUXAUWGUWJUWRUWNIJYFUWCOUWTWTVDUVRUXFYHUWCESZUVSUFZYHY
      HUVSUFZYNUVRUUDXSUUHUWQUXFUXITUWGUWIUWJUWRBDEUVSUWNIJYFUWCLUWSOUWTPWSWOUV
      RUXHYHYHUVSUVRUXHYHUVFCUFZYTYHUVRUUDXSUUJUVIUXHUXKTUWGUWIUVRXRXSUUHUUJUWF
      UWIUWJUUNVDZUWLBYHUWBCDEGIJUVELMNOUWMPWNWOUVRUVFYRYHCYEUVCUVIUVGUUHXAWPUV
      RUUCUUJUUKUVRXRUUCUWFUUFVPUXLUUOVFXBWPUVRBXCRZUUJUXJYNTUVRXRUXMUWFXRUUDUX
      MUUEBJLXDVPVPZUXLGBUVSYHYNMUVAUWSXEVFXBUVRXRXSUXEUXAUXGUCVIUWFUWIBDEHIJUW
      OUBYNOLUVAPQXFVFXHXRYAYDUVJUUHVHXGUVRXRXTUXCUXDVIUWFUWHBDFHIJUWOUBYNOLUVA
      PQXFVFVNXIVLVLUVRUXMYGGRZUVNGRZUWAUVOVIUXNUVRXRXTUUHUXOUWFUWHUWJBDFGIJYFU
      BLMOPVCVDUVRUUDUUJUVMUXPUWGUXLYEUVJUVMUUHUVQXJCBGJYHUVLLMNXKVDGBUVSYGUVNY
      NMUVAUWSXLVDVNVSVTYLUVPKUVLGYIUVLTZYKUVOAIUXQYJUVNYGYIUVLYHCWAWBWCWDVFXMX
      NXOXQXP $.

    $d r F $.  $d x K $.  $d r L $.  $d x .x. $.  $d r W $.
    $( Two functionals with the same kernel are the same up to a constant.
       (Contributed by NM, 10-Oct-2014.) $)
    eqlkr2 $p |- ( ( W e. LVec /\ ( G e. F /\ H e. F )
           /\ ( L ` G ) = ( L ` H ) )
      -> E. r e. K H = ( G oF .x. ( V X. { r } ) ) ) $=
      ( vx wcel cfv cvv clvec wa wceq w3a cv csn cxp cof co wrex wral eqlkr cbs
      fvex eqeltri a1i wf wfn simpl1 simpl2l lflf syl2anc ffn syl fnconstg mp1i
      vex simpl2r eqidd fvconst2 adantl offveqb rexbidva mpbird ) IUARZDCRZECRZ
      UBZDGSEGSUCZUDZEDHJUEZUFUGZBUHUIUCZJFUJQUEZESWDDSZWABUIUCQHUKZJFUJQABCDEF
      GHIJKLMNOPULVTWCWFJFVTWAFRZUBZQHWEWABDWBETHTRWHHIUMSTNIUMUNUOUPWHHFDUQZDH
      URWHVOVPWIVOVRVSWGUSZVPVQVOVSWGUTACDFHIUAKLNOVAVBHFDVCVDWATRWBHURWHJVGZHW
      ATVEVFWHHFEUQZEHURWHVOVQWLWJVPVQVOVSWGVHACEFHIUAKLNOVAVBHFEVCVDWHWDHRZUBW
      EVIWMWDWBSWAUCWHHWAWDWKVJVKVLVMVN $.
  $}

  ${
    $d x F $.  $d r x G $.  $d r x H $.  $d x K $.  $d r R $.  $d r x S $.
    $d r x V $.  $d x W $.  $d x X $.  $d r x ph $.
    eqlkr3.v $e |- V = ( Base ` W ) $.
    eqlkr3.s $e |- S = ( Scalar ` W ) $.
    eqlkr3.r $e |- R = ( Base ` S ) $.
    eqlkr3.o $e |- .0. = ( 0g ` S ) $.
    eqlkr3.f $e |- F = ( LFnl ` W ) $.
    eqlkr3.k $e |- K = ( LKer ` W ) $.
    eqlkr3.w $e |- ( ph -> W e. LVec ) $.
    eqlkr3.x $e |- ( ph -> X e. V ) $.
    eqlkr3.g $e |- ( ph -> G e. F ) $.
    eqlkr3.h $e |- ( ph -> H e. F ) $.
    eqlkr3.e $e |- ( ph -> ( K ` G ) = ( K ` H ) ) $.
    eqlkr3.a $e |- ( ph -> ( G ` X ) = ( H ` X ) ) $.
    eqlkr3.n $e |- ( ph -> ( G ` X ) =/= .0. ) $.
    $( Two functionals with the same kernel are equal if they are equal at any
       nonzero value.  (Contributed by NM, 2-Jan-2015.) $)
    eqlkr3 $p |- ( ph -> G = H ) $=
      ( vx vr wf wfn clvec wcel lflf syl2anc ffn syl cv cfv cur cmulr wceq wral
      wa co wrex eqid eqlkr syl121anc wi adantr fveq2 eqeq12d rspcv cinvr simpr
      oveq1d eqtr2d cdr wne lvecdrng lflcl syl3anc drnginvrl crg clmod lveclmod
      lmodring drnginvrcl ringass syl13anc ringlidm 3eqtr3d syld ancrd reximdva
      oveq2d ex mpd wb ringidcl oveq2 eqeq2d ralbidv ceqsrexv r19.21bi ringridm
      mpbid eqfnfvd ) AUEHEFAHBEUGZEHUHAIUIUJZEDUJZXGRTCDEBHIUIMNLPUKULHBEUMUNA
      HBFUGZFHUHAXHFDUJZXJRUACDFBHIUIMNLPUKULHBFUMUNAUEUOZHUJZVAZXLFUPZXLEUPZCU
      QUPZCURUPZVBZXPAXOXSUSZUEHAUFUOZXQUSZXOXPYAXRVBZUSZUEHUTZVAZUFBVCZXTUEHUT
      ZAYEUFBVCZYGAXHXIXKEGUPFGUPUSYIRTUAUBUECXRDEFBGHIUFMNXRVDZLPQVEVFAYEYFUFB
      AYABUJZVAZYEYBYLYEJFUPZJEUPZYAXRVBZUSZYBYLJHUJZYEYPVGAYQYKSVHYDYPUEJHXLJU
      SZXOYMYCYOXLJFVIYRXPYNYAXRXLJEVIVNVJVKUNYLYPYBYLYPVAZYNCVLUPZUPZYOXRVBZUU
      AYNXRVBZYAXQYSYOYNUUAXRYSYNYMYOYLYNYMUSZYPAUUDYKUCVHVHYLYPVMVOWNYLUUBYAUS
      YPYLUUCYAXRVBZXQYAXRVBZUUBYAYLUUCXQYAXRYLCVPUJZYNBUJZYNKVQZUUCXQUSZAUUGYK
      AXHUUGRCIMVRUNVHZAUUHYKAXHXIYQUUHRTSCDEBHIJUIMNLPVSVTVHZAUUIYKUDVHZBCXRXQ
      YTYNKNOYJXQVDZYTVDZWAVTZVNYLCWBUJZUUABUJZUUHYKUUEUUBUSAUUQYKAIWCUJZUUQAXH
      UUSRIWDUNZCIMWEZUNZVHZYLUUGUUHUUIUURUUKUULUUMBCYTYNKNOUUOWFVTUULAYKVMZBCX
      RUUAYNYANYJWGWHYLUUQYKUUFYAUSUVCUVDBCXRXQYANYJUUNWIULWJVHYLUUJYPUUPVHWJWO
      WKWLWMWPAXQBUJZYGYHWQAUUQUVEUVBBCXQNUUNWRUNYEYHUFXQBYBYDXTUEHYBYCXSXOYAXQ
      XPXRWSWTXAXBUNXEXCXNUUQXPBUJZXSXPUSXNUUSUUQAUUSXMUUTVHUVAUNXNXHXIXMUVFAXH
      XMRVHAXIXMTVHAXMVMCDEBHIXLUIMNLPVSVTBCXRXQXPNYJUUNXDULVOXF $.
  $}

  ${
    $d u F $.  $d u G $.  $d u K $.  $d u N $.  $d u V $.  $d u W $.  $d u X $.
    $d u .(+) $.  $d u .0. $.
    lkrlsp.d $e |- D = ( Scalar ` W ) $.
    lkrlsp.o $e |- .0. = ( 0g ` D ) $.
    lkrlsp.v $e |- V = ( Base ` W ) $.
    lkrlsp.n $e |- N = ( LSpan ` W ) $.
    lkrlsp.p $e |- .(+) = ( LSSum ` W ) $.
    lkrlsp.f $e |- F = ( LFnl ` W ) $.
    lkrlsp.k $e |- K = ( LKer ` W ) $.
    $( The subspace sum of a kernel and the span of a vector not in the kernel
       (by ~ ellkr ) is the whole vector space.  (Contributed by NM,
       19-Apr-2014.) $)
    lkrlsp $p |- ( ( W e. LVec /\ ( X e. V /\ G e. F )
        /\ ( G ` X ) =/= .0. ) -> ( ( K ` G ) .(+) ( N ` { X } ) ) = V ) $=
      ( wcel cfv co vu clvec wa wne w3a csn clss clmod lveclmod 3ad2ant1 simp2r
      wss eqid lkrlss syl2anc simp2l lspsncl lsmcl syl3anc lssss cv cinvr cmulr
      syl cvsca csg cplusg wceq simpl1 simpr cbs crg lmodring simpl2r lflcl cdr
      lvecdrng simpl2l simpl3 drnginvrcl ringcl lmodvscl csubg lsssssubg adantr
      lmodvnpcan sseldd lmodvsubcl lflsub syl112anc lflmul ringass syl13anc cur
      drnginvrl oveq2d ringridm eqtrd cgrp lmodfgrp grpsubid wb ellkr mpbir2and
      3eqtrd lspsneli lsmelvali syl22anc eqeltrrd ex ssrdv eqssd ) HUBRZIGRZDCR
      ZUCZIDSZJUDZUEZDESZIUFFSZBTZGXSYBHUGSZRZYBGULXSHUHRZXTYCRZYAYCRZYDXMXPYEX
      RHUIZUJZXSYEXOYFYIXMXNXOXRUKYCCDEHPQYCUMZUNUOZXSYEXNYGYIXMXNXOXRUPYCFGHIM
      YJNUQUOZBYCXTYAHYJOURUSYCYBGHMYJUTVDXSUAGYBXSUAVAZGRZYMYBRXSYNUCZYMYMDSZX
      QAVBSZSZAVCSZTZIHVESZTZHVFSZTZUUBHVGSZTZYMYBYOYEYNUUBGRZUUFYMVHYOXMYEXMXP
      XRYNVIZYHVDZXSYNVJZYOYEYTAVKSZRZXNUUGUUIYOAVLRZYPUUKRZYRUUKRZUULYOYEUUMUU
      IAHKVMVDZYOXMXOYNUUNUUHXNXOXMXRYNVNZUUJACDUUKGHYMUBKUUKUMZMPVOUSZYOAVPRZX
      QUUKRZXRUUOYOXMUUTUUHAHKVQVDZYOXMXOXNUVAUUHUUQXNXOXMXRYNVRZACDUUKGHIUBKUU
      RMPVOUSZXMXPXRYNVSZUUKAYQXQJUURLYQUMZVTUSZUUKAYSYPYRUURYSUMZWAUSZUVCYTUUA
      AUUKGHIMKUUAUMZUURWBUSZYMUUBUUEUUCGHMUUEUMZUUCUMZWFUSYOXTHWCSZRYAUVNRUUDX
      TRZUUBYARUUFYBRYOYCUVNXTYOYEYCUVNULUUIYCHYJWDVDZXSYFYNYKWEWGYOYCUVNYAUVPX
      SYGYNYLWEWGYOUVOUUDGRZUUDDSZJVHZYOYEYNUUGUVQUUIUUJUVKUUCGHYMUUBMUVMWHUSYO
      UVRYPUUBDSZAVFSZTZYPYPUWATZJYOYEXOYNUUGUVRUWBVHUUIUUQUUJUVKACDUWAUUCGHYMU
      UBKUWAUMZMUVMPWIWJYOUVTYPYPUWAYOUVTYTXQYSTZYPYRXQYSTZYSTZYPYOYEXOUULXNUVT
      UWEVHUUIUUQUVIUVCAYTUUAYSCDUUKGHIKUURUVHMUVJPWKWJYOUUMUUNUUOUVAUWEUWGVHUU
      PUUSUVGUVDUUKAYSYPYRXQUURUVHWLWMYOUWGYPAWNSZYSTZYPYOUWFUWHYPYSYOUUTUVAXRU
      WFUWHVHUVBUVDUVEUUKAYSUWHYQXQJUURLUVHUWHUMZUVFWOUSWPYOUUMUUNUWIYPVHUUPUUS
      UUKAYSUWHYPUURUVHUWJWQUOWRXEWPYOAWSRZUUNUWCJVHYOYEUWKUUIAHKWTVDUUSUUKAUWA
      YPJUURLUWDXAUOXEYOXMXOUVOUVQUVSUCXBUUHUUQACDEGHUUDUBJMKLPQXCUOXDYOYTUUAAU
      UKFGHIMUVJKUURNUUIUVIUVCXFUUEBXTYAHUUDUUBUVLOXGXHXIXJXKXL $.
  $}

  ${
    lkrlsp2.v $e |- V = ( Base ` W ) $.
    lkrlsp2.n $e |- N = ( LSpan ` W ) $.
    lkrlsp2.p $e |- .(+) = ( LSSum ` W ) $.
    lkrlsp2.f $e |- F = ( LFnl ` W ) $.
    lkrlsp2.k $e |- K = ( LKer ` W ) $.
    $( The subspace sum of a kernel and the span of a vector not in the kernel
       is the whole vector space.  (Contributed by NM, 12-May-2014.) $)
    lkrlsp2 $p |- ( ( W e. LVec /\ ( X e. V /\ G e. F )
        /\ -. X e. ( K ` G ) ) -> ( ( K ` G ) .(+) ( N ` { X } ) ) = V ) $=
      ( clvec wcel wa cfv wn wceq eqid c0g wne csn co w3a simp2l simp3 wb simp1
      simp2r ellkr syl2anc mpbir2and 3expia necon3bd 3impia lkrlsp syld3an3
      csca ) GNOZHFOZCBOZPZHCDQZOZRZHCQZGUSQZUAQZUBZVDHUCEQAUDFSUTVCVFVJUTVCPVE
      VGVIUTVCVGVISZVEUTVCVKUEZVEVAVKUTVAVBVKUFUTVCVKUGVLUTVBVEVAVKPUHUTVCVKUIU
      TVAVBVKUJVHBCDFGHNVIIVHTZVITZLMUKULUMUNUOUPVHABCDEFGHVIVMVNIJKLMUQUR $.
  $}

  ${
    lkrlsp3.v $e |- V = ( Base ` W ) $.
    lkrlsp3.n $e |- N = ( LSpan ` W ) $.
    lkrlsp3.f $e |- F = ( LFnl ` W ) $.
    lkrlsp3.k $e |- K = ( LKer ` W ) $.
    $( The subspace sum of a kernel and the span of a vector not in the kernel
       is the whole vector space.  (Contributed by NM, 29-Jun-2014.) $)
    lkrlsp3 $p |- ( ( W e. LVec /\ ( X e. V /\ G e. F )
        /\ -. X e. ( K ` G ) ) -> ( N ` ( ( K ` G ) u. { X } ) ) = V ) $=
      ( clvec wcel cfv cun wceq eqid syl2anc wss syl3anc wa wn w3a csn co clmod
      clsm clss lveclmod 3ad2ant1 simp2r lkrlss lspid uneq1d fveq2d snssd lspun
      lkrssv simp2l lspsncl lsmsp 3eqtr4d lkrlsp2 eqtrd ) FLMZGEMZBAMZUAZGBCNZM
      UBZUCZVIGUDZODNZVIVLDNZFUGNZUEZEVKVIDNZVNOZDNZVIVNOZDNZVMVPVKVRVTDVKVQVIV
      NVKFUFMZVIFUHNZMZVQVIPVEVHWBVJFUIUJZVKWBVGWDWEVEVFVGVJUKZWCABCFJKWCQZULRZ
      WCVIDFWGIUMRUNUOVKWBVIESVLESVMVSPWEVKABCEFHJKWEWFURVKGEVEVFVGVJUSZUPVIVLD
      EFHIUQTVKWBWDVNWCMZVPWAPWEWHVKWBVFWJWEWIWCDEFGHWGIUTRVOWCVIVNDFWGIVOQZVAT
      VBVOABCDEFGHIWKJKVCVD $.
  $}

  ${
    $d v .0. $.  $d v D $.  $d v F $.  $d v G $.  $d v K $.  $d v V $.
    $d v W $.
    lkrshp.v $e |- V = ( Base ` W ) $.
    lkrshp.d $e |- D = ( Scalar ` W ) $.
    lkrshp.z $e |- .0. = ( 0g ` D ) $.
    lkrshp.h $e |- H = ( LSHyp ` W ) $.
    lkrshp.f $e |- F = ( LFnl ` W ) $.
    lkrshp.k $e |- K = ( LKer ` W ) $.
    $( The kernel of a nonzero functional is a hyperplane.  (Contributed by NM,
       29-Jun-2014.) $)
    lkrshp $p |- ( ( W e. LVec /\ G e. F /\ G =/= ( V X. { .0. } ) )
          -> ( K ` G ) e. H ) $=
      ( vv clvec wcel wne cfv wceq csn cxp w3a clss cv cun clspn clmod lveclmod
      wrex 3ad2ant1 simp2 eqid lkrlss syl2anc simp3 lkr0f necon3bid mpbird lfl1
      wb cur wn simp11 simp12 cdr lvecdrng drngunz 3syl eqnetrd simpl11 simpl12
      simpr lkrf0 syl3anc necon3ad mpd lkrlsp3 syl121anc 3expia reximdva islshp
      wa ex mpbir3and ) GPQZCBQZCFHUAUBZRZUCZCESZDQZWKGUDSZQZWKFRZWKOUEZUAUFGUG
      SZSFTZOFUJZWJGUHQZWGWNWFWGWTWIGUIUKZWFWGWIULZWMBCEGMNWMUMZUNUOWJWOWIWFWGW
      IUPWJWKFCWHWJWTWGWKFTCWHTVAXAXBABCEFGHJKIMNUQUOURUSWJWPCSZAVBSZTZOFUJWSOA
      XEBCFGHJKXEUMZIMUTWJXFWROFWJWPFQZXFWRWJXHXFUCZWFXHWGWPWKQZVCZWRWFWGWIXHXF
      VDZWJXHXFULWFWGWIXHXFVEXIXDHRXKXIXDXEHWJXHXFUPXIWFAVFQXEHRXLAGJVGAXEHKXGV
      HVIVJXIXJXDHXIXJXDHTZXIXJWCWFWGXJXMWFWGWIXHXFXJVKWFWGWIXHXFXJVLXIXJVMABCE
      GWPPHJKMNVNVOWDVPVQBCEWQFGWPIWQUMZMNVRVSVTWAVQWFWGWLWNWOWSUCVAWIOWMWKDWQF
      GPIXNXCLWBUKWE $.
  $}

  ${
    lkrshp3.v $e |- V = ( Base ` W ) $.
    lkrshp3.d $e |- D = ( Scalar ` W ) $.
    lkrshp3.o $e |- .0. = ( 0g ` D ) $.
    lkrshp3.h $e |- H = ( LSHyp ` W ) $.
    lkrshp3.f $e |- F = ( LFnl ` W ) $.
    lkrshp3.k $e |- K = ( LKer ` W ) $.
    lkrshp3.w $e |- ( ph -> W e. LVec ) $.
    lkrshp3.g $e |- ( ph -> G e. F ) $.
    $( The kernels of nonzero functionals are hyperplanes.  (Contributed by NM,
       17-Jul-2014.) $)
    lkrshp3 $p |- ( ph -> ( ( K ` G ) e. H <-> G =/= ( V X. { .0. } ) ) ) $=
      ( wcel wne adantr cfv csn cxp wa clmod clvec lveclmod syl simpr lshpne wb
      wceq lkr0f syl2anc necon3bid mpbid lkrshp syl3anc impbida ) ADFUAZERZDGIU
      BUCZSZAVAUDZUTGSVCVDUTEGHJMAHUERZVAAHUFRZVEPHUGUHZTAVAUIUJVDUTGDVBAUTGULD
      VBULUKZVAAVEDCRZVHVGQBCDFGHIKLJNOUMUNTUOUPAVCUDVFVIVCVAAVFVCPTAVIVCQTAVCU
      IBCDEFGHIJKLMNOUQURUS $.
  $}

  ${
    lkrshpor.v $e |- V = ( Base ` W ) $.
    lkrshpor.h $e |- H = ( LSHyp ` W ) $.
    lkrshpor.f $e |- F = ( LFnl ` W ) $.
    lkrshpor.k $e |- K = ( LKer ` W ) $.
    lkrshpor.w $e |- ( ph -> W e. LVec ) $.
    lkrshpor.g $e |- ( ph -> G e. F ) $.
    $( The kernel of a functional is either a hyperplane or the full vector
       space.  (Contributed by NM, 7-Oct-2014.) $)
    lkrshpor $p |- ( ph -> ( ( K ` G ) e. H \/ ( K ` G ) = V ) ) $=
      ( cfv wcel wceq wo wa eqid adantr c0g csn cxp clmod wb clvec lveclmod syl
      csca lkr0f syl2anc biimpar olcd wne simpr lkrshp syl3anc orcd pm2.61dane
      ) ACENZDOZUTFPZQCFGUINZUANZUBUCZACVEPZRVBVAAVBVFAGUDOZCBOZVBVFUEAGUFOZVGL
      GUGUHMVCBCEFGVDVCSZVDSZHJKUJUKULUMACVEUNZRZVAVBVMVIVHVLVAAVIVLLTAVHVLMTAV
      LUOVCBCDEFGVDHVJVKIJKUPUQURUS $.
  $}

  ${
    lkrshp4.v $e |- V = ( Base ` W ) $.
    lkrshp4.h $e |- H = ( LSHyp ` W ) $.
    lkrshp4.f $e |- F = ( LFnl ` W ) $.
    lkrshp4.k $e |- K = ( LKer ` W ) $.
    lkrshp4.w $e |- ( ph -> W e. LVec ) $.
    lkrshp4.g $e |- ( ph -> G e. F ) $.
    $( A kernel is a hyperplane iff it doesn't contain all vectors.
       (Contributed by NM, 1-Nov-2014.) $)
    lkrshp4 $p |- ( ph -> ( ( K ` G ) =/= V <-> ( K ` G ) e. H ) ) $=
      ( cfv wne wcel wceq wo wi lkrshpor orcomd neor sylib clmod clvec lveclmod
      wa syl adantr simpr lshpne ex impbid ) ACENZFOZUNDPZAUNFQZUPRUOUPSAUPUQAB
      CDEFGHIJKLMTUAUPUNFUBUCAUPUOAUPUGUNDFGHIAGUDPZUPAGUEPURLGUFUHUIAUPUJUKULU
      M $.
  $}

  ${
    $d a b c k l y z .+ $.  $d b D $.  $d a b c k l z K $.  $d b c z N $.
    $d a b c k l y z .x. $.  $d a b c k l y z U $.  $d b V $.  $d b c z W $.
    $d a b c k l y z X $.  $d a b c k l y z Z $.  $d a b c l z ph $.
    lshpsmreu.v $e |- V = ( Base ` W ) $.
    lshpsmreu.a $e |- .+ = ( +g ` W ) $.
    lshpsmreu.n $e |- N = ( LSpan ` W ) $.
    lshpsmreu.p $e |- .(+) = ( LSSum ` W ) $.
    lshpsmreu.h $e |- H = ( LSHyp ` W ) $.
    lshpsmreu.w $e |- ( ph -> W e. LVec ) $.
    lshpsmreu.u $e |- ( ph -> U e. H ) $.
    lshpsmreu.z $e |- ( ph -> Z e. V ) $.
    lshpsmreu.x $e |- ( ph -> X e. V ) $.
    lshpsmreu.e $e |- ( ph -> ( U .(+) ( N ` { Z } ) ) = V ) $.
    lshpsmreu.d $e |- D = ( Scalar ` W ) $.
    lshpsmreu.k $e |- K = ( Base ` D ) $.
    lshpsmreu.t $e |- .x. = ( .s ` W ) $.
    $( Lemma for ~ lshpkrex .  Show uniqueness of ring multiplier ` k ` when a
       vector ` X ` is broken down into components, one in a hyperplane and the
       other outside of it .  TODO: do we need the ~ cbvrexv for ` a ` to
       ` c ` ?  (Contributed by NM, 4-Jan-2015.) $)
    lshpsmreu $p |- ( ph -> E! k e. K E. y e. U X = ( y .+ ( k .x. Z ) ) ) $=
      ( vc vb vl vz va cv co wceq wrex wreu wa weq wral csn wcel eleqtrrd csubg
      wi cfv wb clss clmod wss clvec lveclmod syl eqid lsssssubg lshplss sseldd
      lspsncl syl2anc lsmelval wex df-rex lspsnel anbi1d r19.41v syl6bbr exbidv
      mpbid rexcom4 ovex oveq2 eqeq2d ceqsexv rexbii bitr3i syl6bb syl5bb sylib
      rexbidv rexcom oveq1 cbvrexv w3a c0g ccntz simp11l lshpdisj cabl ablcntzd
      cin lmodabl simp12 simp2 simp1rl 3ad2ant1 lspsneli simp13 simp3 subgdisj2
      simp1rr eqtr3d lvecvscan2 rexlimdv3a syl5bi impd ralrimivva reu4 sylanbrc
      lshpne0 oveq2d cbvreuv reubii bitri ) ANUIUNZUJUNZOFUOZDUOZUPZUIGUQZUJJUR
      ZNBUNZHUNZOFUOZDUOZUPZBGUQZHJURZAYTUJJUQZYTNYOUKUNZOFUOZDUOZUPZUIGUQZUSUJ
      UKUTZVFZUKJVAUJJVAUUAAYSUJJUQZUIGUQZUUIANYOULUNZDUOZUPZULOVBKVGZUQZUIGUQZ
      UURANGUVBEUOZVCZUVDANLUVEUDUEVDAGMVEVGZVCZUVBUVGVCZUVFUVDVHAMVIVGZUVGGAMV
      JVCZUVJUVGVKAMVLVCZUVKUAMVMZVNZUVJMUVJVOZVPVNZAUVJGIMUVOTUVNUBVQVRZAUVJUV
      GUVBUVPAUVKOLVCZUVBUVJVCUVNUCUVJKLMOPUVORVSVTVRZUIULDEGUVBMNQSWAVTWIAUVCU
      UQUIGUVCUUSUVBVCZUVAUSZULWBZAUUQUVAULUVBWCAUWBUUSYQUPZUVAUSZUJJUQZULWBZUU
      QAUWAUWEULAUWAUWCUJJUQZUVAUSUWEAUVTUWGUVAAUVKUVRUVTUWGVHUVNUCFUUSUJCJKLMO
      UFUGPUHRWDVTWEUWCUVAUJJWFWGWHUWFUWDULWBZUJJUQUUQUWDUJULJWJUWHYSUJJUVAYSUL
      YQYPOFWKUWCUUTYRNUUSYQYODWLWMWNWOWPWQWRWTWIYSUIUJGJXAWSAUUPUJUKJJAYPJVCZU
      UJJVCZUSZUSZYTUUNUUOYTNUMUNZYQDUOZUPZUMGUQUWLUUNUUOVFZYSUWOUIUMGUIUMUTYRU
      WNNYOUWMYQDXBWMXCUWLUWOUWPUMGUWLUWMGVCZUWOXDZUUMUUOUIGUWRYOGVCZUUMXDZYQUU
      KUPUUOUWTUWMYQYOUUKDGUVBMMXEVGZMXFVGZQUXAVOZUXBVOZUWTAUVHAUWKUWQUWOUWSUUM
      XGZUVQVNZUWTAUVIUXEUVSVNZUWTAGUVBXKUXAVBUPUXEAEGIKLMOUXAPUXCRSTUAUBUCUEXH
      VNUWTGUVBMUXBUXDUWTUVKMXIVCUWTUVLUVKUWTAUVLUXEUAVNZUVMVNZMXLVNUXFUXGXJUWL
      UWQUWOUWSUUMXMUWRUWSUUMXNUWTYPFCJKLMOPUHUFUGRUXIUWRUWSUWIUUMUWIUWJAUWQUWO
      XOXPZUWTAUVRUXEUCVNZXQUWTUUJFCJKLMOPUHUFUGRUXIUWRUWSUWJUUMUWIUWJAUWQUWOYA
      XPZUXKXQUWTNUWNUULUWLUWQUWOUWSUUMXRUWRUWSUUMXSYBXTUWTYPUUJFCJLMOUXAPUHUFU
      GUXCUXHUXJUXLUXKUWTEGIKLMOUXAPRSTUXCUXIUWTAGIVCUXEUBVNUXKUWTAUVELUPUXEUEV
      NYJYCWIYDYDYEYFYGYTUUNUJUKJUUOYSUUMUIGUUOYRUULNUUOYQUUKYODYPUUJOFXBYKWMWT
      YHYIUUANYOUUDDUOZUPZUIGUQZHJURUUHYTUXOUJHJUJHUTZYSUXNUIGUXPYRUXMNUXPYQUUD
      YODYPUUCOFXBYKWMWTYLUXOUUGHJUXNUUFUIBGUIBUTUXMUUENYOUUBUUDDXBWMXCYMYNWS
      $.
  $}

  ${
    $d b k x y .+ $.  $d k x K $.  $d b k .0. $.  $d b k x y .x. $.
    $d b k x y U $.  $d x V $.  $d b k x y X $.  $d b k x y Z $.  $d b ph $.
    lshpkrlem.v $e |- V = ( Base ` W ) $.
    lshpkrlem.a $e |- .+ = ( +g ` W ) $.
    lshpkrlem.n $e |- N = ( LSpan ` W ) $.
    lshpkrlem.p $e |- .(+) = ( LSSum ` W ) $.
    lshpkrlem.h $e |- H = ( LSHyp ` W ) $.
    lshpkrlem.w $e |- ( ph -> W e. LVec ) $.
    lshpkrlem.u $e |- ( ph -> U e. H ) $.
    lshpkrlem.z $e |- ( ph -> Z e. V ) $.
    lshpkrlem.x $e |- ( ph -> X e. V ) $.
    lshpkrlem.e $e |- ( ph -> ( U .(+) ( N ` { Z } ) ) = V ) $.
    lshpkrlem.d $e |- D = ( Scalar ` W ) $.
    lshpkrlem.k $e |- K = ( Base ` D ) $.
    lshpkrlem.t $e |- .x. = ( .s ` W ) $.
    lshpkrlem.o $e |- .0. = ( 0g ` D ) $.
    lshpkrlem.g $e |- G = ( x e. V |->
        ( iota_ k e. K E. y e. U x = ( y .+ ( k .x. Z ) ) ) ) $.
    $( Lemma for ~ lshpkrex .  The value of tentative functional ` G ` is zero
       iff its argument belongs to hyperplane ` U ` .  (Contributed by NM,
       14-Jul-2014.) $)
    lshpkrlem1 $p |- ( ph -> ( X e. U <-> ( G ` X ) = .0. ) ) $=
      ( vb cv co wceq wrex crio wcel wreu wb clmod cgrp clvec lveclmod lmodfgrp
      cfv syl grpidcl 3syl lshpsmreu oveq1 oveq2d eqeq2d rexbidv riota2 syl2anc
      wa simpr eqidd eqeq2 rspcev ex wi eleq1a a1i rexlimdv impbid eqid lmod0vs
      c0g adantr clss lshplss lssel sylan lmod0vrid eqtrd bicomd rexbidva bitrd
      eqeq1 riotabidv riotaex fvmpt cbvrexv riotabiia syl6eq eqeq1d 3bitr4d ) A
      PUNUOZQRGUPZEUPZUQZUNHURZPXLIUOZRGUPZEUPZUQZUNHURZILUSZQUQZPHUTZPJVHZQUQA
      QLUTZYAILVAXPYCVBAOVCUTZDVDUTYFAOVEUTZYGUDOVFZVIZDOUIVGLDQUJULVJVKAUNDEFG
      HIKLMNOPRSTUAUBUCUDUEUFUGUHUIUJUKVLYAXPILQXQQUQZXTXOUNHYKXSXNPYKXRXMXLEXQ
      QRGVMVNVOVPVQVRAYDPXLUQZUNHURZXPAYDYMAYDYMAYDVSZYDPPUQZYMAYDVTYNPWAYLYOUN
      PHXLPPWBWCVRWDAYLYDUNHXLHUTZYLYDWEWEAXLHPWFWGWHWIAYLXOUNHAYPVSZXOYLYQXNXL
      PYQXNXLOWLVHZEUPZXLYQXMYRXLEAXMYRUQZYPAYGRNUTYTYJUFGDQNORYRSUIUKULYRWJZWK
      VRWMVNYQYGXLNUTZYSXLUQYQYHYGAYHYPUDWMYIVIAHOWNVHZUTYPUUBAUUCHKOUUCWJZUCYJ
      UEWOUUCHNOXLSUUDWPWQENOXLYRSTUUAWRVRWSVOWTXAXBAYEYBQAPNUTZYEYBUQUGUUEYEPC
      UOZXREUPZUQZCHURZILUSZYBBPBUOZUUGUQZCHURZILUSUUJNJUUKPUQZUUMUUIILUUNUULUU
      HCHUUKPUUGXCVPXDUMUUIILXEXFUUIYAILUUIYAVBXQLUTUUHXTCUNHUUFXLUQUUGXSPUUFXL
      XREVMVOXGWGXHXIVIXJXK $.

    $( Lemma for ~ lshpkrex .  The value of tentative functional ` G ` is a
       scalar.  (Contributed by NM, 16-Jul-2014.) $)
    lshpkrlem2 $p |- ( ph -> ( G ` X ) e. K ) $=
      ( cfv cv co wceq wrex crio wcel eqeq1 rexbidv riotabidv riotaex fvmpt syl
      wreu lshpsmreu riotacl eqeltrd ) APJUNZPCUOIUORGUPEUPZUQZCHURZILUSZLAPNUT
      VKVOUQUGBPBUOZVLUQZCHURZILUSVONJVPPUQZVRVNILVSVQVMCHVPPVLVAVBVCUMVNILVDVE
      VFAVNILVGVOLUTACDEFGHIKLMNOPRSTUAUBUCUDUEUFUGUHUIUJUKVHVNILVIVFVJ $.

    $d l z .+ $.  $d l z G $.  $d l K $.  $d l z U $.  $d l z X $.  $d l z Z $.
    $d k l x y z $.  $d l z .x. $.
    $( Lemma for ~ lshpkrex .  Defining property of ` G `` X ` .  (Contributed
       by NM, 15-Jul-2014.) $)
    lshpkrlem3 $p |- ( ph -> E. z e. U X = ( z .+ ( ( G ` X ) .x. Z ) ) ) $=
      ( vl cv co wceq wrex cfv wsbc crio wreu lshpsmreu riotasbc syl wcel eqeq1
      rexbidv riotabidv cmpt weq oveq2d eqeq2d cbvrexv syl6bb cbvriotav mpteq2i
      wb oveq1 eqtri riotaex fvmpt dfsbcq 3syl mpbird fvex sbcie sylib ) AQDUPZ
      UOUPZSHUQZFUQZURZDIUSZUOQKUTZVAZQWJWPSHUQZFUQZURZDIUSZAWQWOUOWOUOMVBZVAZA
      WOUOMVCXCADEFGHIUOLMNOPQSTUAUBUCUDUEUFUGUHUIUJUKULVDWOUOMVEVFAQOVGWPXBURW
      QXCVSUHBQBUPZWMURZDIUSZUOMVBZXBOKXDQURZXFWOUOMXHXEWNDIXDQWMVHVIVJKBOXDCUP
      ZJUPZSHUQZFUQZURZCIUSZJMVBZVKBOXGVKUNBOXOXGXNXFJUOMJUOVLZXNXDXIWLFUQZURZC
      IUSXFXPXMXRCIXPXLXQXDXPXKWLXIFXJWKSHVTVMVNVIXRXECDICDVLXQWMXDXIWJWLFVTVNV
      OVPVQVRWAWOUOMWBWCWOUOWPXBWDWEWFWOXAUOWPQKWGWKWPURZWNWTDIXSWMWSQXSWLWRWJF
      WKWPSHVTVMVNVIWHWI $.

    $d k u v x y $.
    $( Lemma for ~ lshpkrex .  Part of showing linearity of ` G ` .
       (Contributed by NM, 16-Jul-2014.) $)
    lshpkrlem4 $p |- ( ( ( ph /\ l e. K /\ u e. V )
       /\ ( v e. V /\ r e. V /\ s e. V )
  /\ ( u = ( r .+ ( ( G ` u ) .x. Z ) ) /\ v = ( s .+ ( ( G ` v ) .x. Z ) ) ) )
    -> ( ( l .x. u ) .+ v ) = ( ( ( l .x. r ) .+ s )
        .+ ( ( ( l ( .r ` D ) ( G ` u ) ) ( +g ` D ) ( G ` v ) ) .x. Z ) ) ) $=
      ( cv wcel w3a cfv co wceq cmulr cplusg simp3l oveq2d simp3r oveq12d clmod
      wa clvec simpl1 lveclmod simpl2 simpr2 simpl3 adantr simpr csn lshpkrlem2
      3syl syl2anc syl lmodvscl syl3anc lmodvsdi syl13anc eqid lmodvsass eqtr4d
      oveq1d lmodmcl simpr3 simpr1 lmod4 syl122anc lmodvsdir eqtrd 3adant3 ) AU
      CUSZNUTZEUSZPUTZVAZDUSZPUTZUBUSZPUTZUAUSZPUTZVAZXDXIXDLVBZTIVCZGVCZVDZXGX
      KXGLVBZTIVCZGVCZVDZVLZVAZXBXDIVCZXGGVCXBXPIVCZXTGVCZXBXIIVCZXKGVCZXBXNFVE
      VBZVCZXRFVFVBZVCTIVCZGVCZYCYDYEXGXTGYCXDXPXBIXFXMXQYAVGVHXFXMXQYAVIVJXFXM
      YFYMVDYBXFXMVLZYFYGYJTIVCZGVCZXTGVCZYMYNYEYPXTGYNYEYGXBXOIVCZGVCZYPYNQVKU
      TZXCXJXOPUTZYEYSVDYNAQVMUTZYTAXCXEXMVNZUIQVOWCZAXCXEXMVPZXFXHXJXLVQZYNYTX
      NNUTZTPUTZUUAUUDYNAXEUUGUUCAXCXEXMVRAXEVLBCFGHIJKLMNOPQXDSTUDUEUFUGUHAUUB
      XEUIVSAJMUTZXEUJVSAUUHXEUKVSAXEVTAJTWAOVBHVCPVDZXEUMVSUNUOUPUQURWBWDZYNAU
      UHUUCUKWEZXNIFNPQTUDUNUPUOWFWGGXBIFNPQXIXOUDUEUNUPUOWHWIYNYOYRYGGYNYTXCUU
      GUUHYOYRVDUUDUUEUUKUULXBXNIYIFNPQTUDUNUPUOYIWJZWKWIVHWLWMYNYQYHYOXSGVCZGV
      CZYMYNYTYGPUTZYOPUTZXLXSPUTZYQUUOVDUUDYNYTXCXJUUPUUDUUEUUFXBIFNPQXIUDUNUP
      UOWFWGYNYTYJNUTZUUHUUQUUDYNYTXCUUGUUSUUDUUEUUKYIFNQXBXNUNUOUUMWNWGZUULYJI
      FNPQTUDUNUPUOWFWGXFXHXJXLWOYNYTXRNUTZUUHUURUUDYNAXHUVAUUCXFXHXJXLWPAXHVLB
      CFGHIJKLMNOPQXGSTUDUEUFUGUHAUUBXHUIVSAUUIXHUJVSAUUHXHUKVSAXHVTAUUJXHUMVSU
      NUOUPUQURWBWDZUULXRIFNPQTUDUNUPUOWFWGGXSPQYGYOXKUDUEWQWRYNYLUUNYHGYNYTUUS
      UVAUUHYLUUNVDUUDUUTUVBUULGYKYJXRIFNPQTUDUEUNUPUOYKWJWSWIVHWLWTXAWT $.

    $( Lemma for ~ lshpkrex .  Part of showing linearity of ` G ` .
       (Contributed by NM, 16-Jul-2014.) $)
    lshpkrlem5 $p |- ( ( ( ph /\ l e. K /\ u e. V )
       /\ ( v e. V /\ r e. U /\ ( s e. U /\ z e. U ) )
      /\ ( u = ( r .+ ( ( G ` u ) .x. Z ) ) /\ v = ( s .+ ( ( G ` v ) .x. Z ) )
          /\ ( ( l .x. u ) .+ v ) = ( z
              .+ ( ( G ` ( ( l .x. u ) .+ v ) ) .x. Z ) ) ) )
    -> ( G ` ( ( l .x. u ) .+ v ) )
           = ( ( l ( .r ` D ) ( G ` u ) ) ( +g ` D ) ( G ` v ) ) ) $=
      ( cv wcel w3a wa cfv co wceq cmulr cplusg csn ccntz eqid clss csubg clmod
      c0g wss clvec simp11 syl lveclmod lshplss sseldd lspsncl syl2anc lshpdisj
      lsssssubg cin cabl lmodabl ablcntzd simp23r simp12 simp22 lssvscl simp23l
      syl22anc lssvacl simp13 lmodvscl syl3anc simp21 lmodvacl simpr lshpkrlem2
      adantr lspsneli lmodmcl lmodacl simp33 simp31 simp32 lshpkrlem4 syl132anc
      simp1 lssel eqtr3d subgdisj2 wne lshpne0 lvecvscan2 mpbid ) AUDUTZOVAZFUT
      ZQVAZVBZEUTZQVAZUCUTZKVAZUBUTZKVAZDUTZKVAZVCZVBZYDYIYDMVDZUAJVEHVEVFZYGYK
      YGMVDZUAJVEHVEVFZYBYDJVEZYGHVEZYMUUBMVDZUAJVEZHVEZVFZVBZVBZUUDYBYQGVGVDZV
      EZYSGVHVDZVEZUAJVEZVFUUCUULVFUUHYMUUDYBYIJVEZYKHVEZUUMHKUAVIPVDZRRVOVDZRV
      JVDZUFUUQVKZUURVKZUUHRVLVDZRVMVDZKUUHRVNVAZUVAUVBVPUUHRVQVAZUVCUUHAUVDAYC
      YEYPUUGVRZUJVSZRVTZVSZUVARUVAVKZWFVSZUUHAKUVAVAZUVEAUVAKNRUVIUIAUVDUVCUJU
      VGVSZUKWAVSZWBZUUHUVAUVBUUPUVJUUHUVCUAQVAZUUPUVAVAUVHUUHAUVOUVEULVSZUVAPQ
      RUAUEUVIUGWCWDWBZUUHAKUUPWGUUQVIVFUVEAIKNPQRUAUUQUEUUSUGUHUIUJUKULUNWEVSU
      UHKUUPRUURUUTUUHUVCRWHVAUVHRWIVSUVNUVQWJYLYNYHYJYFUUGWKUUHUVCUVKUUNKVAZYL
      UUOKVAUVHUVMUUHUVCUVKYCYJUVRUVHUVMAYCYEYPUUGWLZYFYHYJYOUUGWMZOUVAJKGRYBYI
      UOUQUPUVIWNWPYLYNYHYJYFUUGWOZHUVAKRUUNYKUFUVIWQWPUUHUUCJGOPQRUAUEUQUOUPUG
      UVHUUHAUUBQVAZUUCOVAUVEUUHUVCUUAQVAZYHUWBUVHUUHUVCYCYEUWCUVHUVSAYCYEYPUUG
      WRZYBJGOQRYDUEUOUQUPWSWTYFYHYJYOUUGXAZHQRUUAYGUEUFXBWTAUWBVCBCGHIJKLMNOPQ
      RUUBTUAUEUFUGUHUIAUVDUWBUJXEAKNVAZUWBUKXEAUVOUWBULXEAUWBXCAKUUPIVEQVFZUWB
      UNXEUOUPUQURUSXDWDZUVPXFUUHUULJGOPQRUAUEUQUOUPUGUVHUUHUVCUUJOVAZYSOVAZUUL
      OVAUVHUUHUVCYCYQOVAZUWIUVHUVSUUHAYEUWKUVEUWDAYEVCBCGHIJKLMNOPQRYDTUAUEUFU
      GUHUIAUVDYEUJXEAUWFYEUKXEAUVOYEULXEAYEXCAUWGYEUNXEUOUPUQURUSXDWDUUIGORYBY
      QUOUPUUIVKXGWTUUHAYHUWJUVEUWEAYHVCBCGHIJKLMNOPQRYGTUAUEUFUGUHUIAUVDYHUJXE
      AUWFYHUKXEAUVOYHULXEAYHXCAUWGYHUNXEUOUPUQURUSXDWDUUKGORUUJYSUOUPUUKVKXHWT
      ZUVPXFUUHUUBUUEUUOUUMHVEZYFYPYRYTUUFXIUUHYFYHYIQVAZYKQVAZYRYTUUBUWMVFYFYP
      UUGXNUWEUUHUVKYJUWNUVMUVTUVAKQRYIUEUVIXOWDUUHUVKYLUWOUVMUWAUVAKQRYKUEUVIX
      OWDYFYPYRYTUUFXJYFYPYRYTUUFXKABCEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULU
      MUNUOUPUQURUSXLXMXPXQUUHUUCUULJGOQRUAUUQUEUQUOUPUUSUVFUWHUWLUVPUUHAUAUUQX
      RUVEAIKNPQRUAUUQUEUGUHUIUUSUVLUKULUNXSVSXTYA $.

    $d r s .+ $.  $d r s z D $.  $d r s G $.  $d r s z K $.  $d r s .x. $.
    $d r s U $.  $d r s z V $.  $d r s Z $.  $d r s z ph $.
    $d k l r s u v x y z $.
    $( Lemma for ~ lshpkrex .  Show linearlity of ` G ` .  (Contributed by NM,
       17-Jul-2014.) $)
    lshpkrlem6 $p |- ( ( ph /\ ( l e. K /\ u e. V /\ v e. V ) )
    -> ( G ` ( ( l .x. u ) .+ v ) )
           = ( ( l ( .r ` D ) ( G ` u ) ) ( +g ` D ) ( G ` v ) ) ) $=
      ( vr vs vz cv wcel w3a wa cfv co wceq wrex cmulr cplusg adantr simpr2 csn
      clvec lshpkrlem3 simpr3 lveclmod simpr1 lmodvscl syl3anc lmodvacl 3reeanv
      clmod syl wi simp1l simp1r1 simp1r2 simp1r3 simp2ll simp2lr simp2r simp31
      jca simp32 simp33 lshpkrlem5 syl333anc expdimp rexlimdv rexlimdvva mp3and
      3exp syl5bir ) AUAUTZNVAZEUTZPVAZDUTZPVAZVBZVCZXFUQUTZXFLVDZTIVEGVEVFZUQJ
      VGZXHURUTZXHLVDZTIVEGVEVFZURJVGZXDXFIVEZXHGVEZUSUTZYALVDZTIVEGVEVFZUSJVGZ
      YCXDXMFVHVDVEXQFVIVDVEVFZXKBCUQFGHIJKLMNOPQXFSTUBUCUDUEUFAQVMVAZXJUGVJZAJ
      MVAXJUHVJZATPVAXJUIVJZAXEXGXIVKZAJTVLOVDHVEPVFXJUKVJZULUMUNUOUPVNXKBCURFG
      HIJKLMNOPQXHSTUBUCUDUEUFYHYIYJAXEXGXIVOZYLULUMUNUOUPVNXKBCUSFGHIJKLMNOPQY
      ASTUBUCUDUEUFYHYIYJXKQWBVAZXTPVAZXIYAPVAXKYGYNYHQVPWCZXKYNXEXGYOYPAXEXGXI
      VQYKXDIFNPQXFUBULUNUMVRVSYMGPQXTXHUBUCVTVSYLULUMUNUOUPVNXOXSYEVBXNXRYDVBZ
      USJVGZURJVGUQJVGXKYFXNXRYDUQURUSJJJWAXKYRYFUQURJJXKXLJVAZXPJVAZVCZVCYQYFU
      SJXKUUAYBJVAZYQYFWDXKUUAUUBVCZYQYFXKUUCYQVBZAXEXGXIYSYTUUBVCXNXRYDYFAXJUU
      CYQWEXEXGXIAUUCYQWFXEXGXIAUUCYQWGXEXGXIAUUCYQWHYSYTUUBXKYQWIUUDYTUUBYSYTU
      UBXKYQWJXKUUAUUBYQWKWMXKUUCXNXRYDWLXKUUCXNXRYDWNXKUUCXNXRYDWOABCUSDEFGHIJ
      KLMNOPQTSTURUQUAUBUCUDUEUFUGUHUIUIUKULUMUNUOUPWPWQXBWRWSWTXCXA $.
  $}

  ${
    $d a k l x y .+ $.  $d l u v G $.  $d a k l u v x K $.  $d a k l v x y U $.
    $d u y $.  $d k D $.  $d l u v W $.  $d a k l x y .x. $.  $d a k l x y Z $.
    $d v L $.  $d a l u v ph $.  $d a u v x V $.
    lshpkr.v $e |- V = ( Base ` W ) $.
    lshpkr.a $e |- .+ = ( +g ` W ) $.
    lshpkr.n $e |- N = ( LSpan ` W ) $.
    lshpkr.p $e |- .(+) = ( LSSum ` W ) $.
    lshpkr.h $e |- H = ( LSHyp ` W ) $.
    lshpkr.w $e |- ( ph -> W e. LVec ) $.
    lshpkr.u $e |- ( ph -> U e. H ) $.
    lshpkr.z $e |- ( ph -> Z e. V ) $.
    lshpkr.e $e |- ( ph -> ( U .(+) ( N ` { Z } ) ) = V ) $.
    lshpkr.d $e |- D = ( Scalar ` W ) $.
    lshpkr.k $e |- K = ( Base ` D ) $.
    lshpkr.t $e |- .x. = ( .s ` W ) $.
    lshpkr.g $e |- G = ( x e. V |->
        ( iota_ k e. K E. y e. U x = ( y .+ ( k .x. Z ) ) ) ) $.
    ${
      lshpkr.f $e |- F = ( LFnl ` W ) $.
      $( The set ` G ` defined by hyperplane ` U ` is a linear functional.
         (Contributed by NM, 17-Jul-2014.) $)
      lshpkrcl $p |- ( ph -> G e. F ) $=
        ( vl vu vv va wcel wf cv co cmulr cplusg wceq wral wrex crio wreu clvec
        cfv adantr simpr csn lshpsmreu riotacl syl cmpt eqeq1 rexbidv riotabidv
        wa weq cbvmptv eqtri fmptd c0g eqid lshpkrlem6 ralrimivvva wb mpbir2and
        islfl ) AKJUPZOMKUQZULURZUMURZGUSUNURZEUSKVHWMWNKVHDUTVHZUSWOKVHDVAVHZU
        SVBZUNOVCUMOVCULMVCZAUOOUOURZCURIURQGUSEUSZVBZCHVDZIMVEZMKAWTOUPZVSZXCI
        MVFXDMUPXFCDEFGHILMNOPWTQRSTUAUBAPVGUPZXEUCVIAHLUPXEUDVIAQOUPXEUEVIAXEV
        JAHQVKNVHFUSOVBXEUFVIUGUHUIVLXCIMVMVNKBOBURZXAVBZCHVDZIMVEZVOUOOXDVOUJB
        UOOXKXDBUOVTZXJXCIMXLXIXBCHXHWTXAVPVQVRWAWBWCAWRULUMUNMOOABCUNUMDEFGHIK
        LMNOPQDWDVHZQULRSTUAUBUCUDUEUEUFUGUHUIXMWEUJWFWGAXGWKWLWSVSWHUCUMUNDEWQ
        GWPJKMOPVGULRSUGUIUHWQWEWPWEUKWJVNWI $.
    $}

    lshpkr.l $e |- L = ( LKer ` W ) $.
    $( The kernel of functional ` G ` is the hyperplane defining it.
       (Contributed by NM, 17-Jul-2014.) $)
    lshpkr $p |- ( ph -> ( L ` G ) = U ) $=
      ( vv cfv cv wcel clfn eqid clvec clmod lveclmod syl lshpkrcl lkrssv sseld
      clss lshplss lssel sylan ex wb wa c0g wceq ellkr syl2anc baibd adantr csn
      simpr co lshpkrlem1 bitr4d pm5.21ndd eqrdv ) AULJMUMZHAULUNZOUOZWFWEUOZWF
      HUOZAWEOWFAPUPUMZJMOPRWJUQZUKAPURUOZPUSUOUCPUTVAZABCDEFGHIWJJKLNOPQRSTUAU
      BUCUDUEUFUGUHUIUJWKVBZVCVDAWIWGAHPVEUMZUOWIWGAWOHKPWOUQZUBWMUDVFWOHOPWFRW
      PVGVHVIAWGWHWIVJAWGVKZWHWFJUMDVLUMZVMZWIAWHWGWSAWLJWJUOWHWGWSVKVJUCWNDWJJ
      MOPWFURWRRUGWRUQZWKUKVNVOVPWQBCDEFGHIJKLNOPWFWRQRSTUAUBAWLWGUCVQAHKUOWGUD
      VQAQOUOWGUEVQAWGVSAHQVRNUMFVTOVMWGUFVQUGUHUIWTUJWAWBVIWCWD $.
  $}

  ${
    $d g z F $.  $d z H $.  $d g z K $.  $d g k x y z U $.  $d g k x y z W $.
    lshpkrex.h $e |- H = ( LSHyp ` W ) $.
    lshpkrex.f $e |- F = ( LFnl ` W ) $.
    lshpkrex.k $e |- K = ( LKer ` W ) $.
    $( There exists a functional whose kernel equals a given hyperplane.  Part
       of Th. 1.27 of Barbu and Precupanu, _Convexity and Optimization in
       Banach Spaces_.  (Contributed by NM, 17-Jul-2014.) $)
    lshpkrex $p |- ( ( W e. LVec /\ U e. H ) -> E. g e. F ( K ` g ) = U ) $=
      ( vz vx vy vk wcel cv cfv co wceq wrex eqid clvec csn clspn clsm cbs clss
      wa wne w3a lveclmod islshpsm simp3 syl6bi imp cvsca cplusg csca crio cmpt
      simp1l simp1r simp2 lshpkrcl lshpkr eqeq1d rspcev syl2anc rexlimdv3a mpd
      fveq2 ) FUANZADNZUGZAJOZUBFUCPZPFUDPZQFUEPZRZJVQSZBOZEPZARZBCSZVKVLVSVKVL
      AFUFPZNZAVQUHZVSUIVSVKJVPWDADVOVQFVQTZVOTZWDTVPTZGFUJUKWEWFVSULUMUNVMVRWC
      JVQVMVNVQNZVRUIZKVQKOLOMOVNFUOPZQFUPPZQRLASMFUQPZUEPZURUSZCNWPEPZARZWCWKK
      LWNWMVPWLAMCWPDWOVOVQFVNWGWMTZWHWIGVKVLWJVRUTZVKVLWJVRVAZVMWJVRVBZVMWJVRU
      LZWNTZWOTZWLTZWPTZHVCWKKLWNWMVPWLAMWPDWOEVOVQFVNWGWSWHWIGWTXAXBXCXDXEXFXG
      IVDWBWRBWPCVTWPRWAWQAVTWPEVJVEVFVGVHVI $.
  $}

  ${
    $d g F $.  $d g s H $.  $d g v K $.  $d g v V $.  $d g s v W $.
    lshpset2.v $e |- V = ( Base ` W ) $.
    lshpset2.d $e |- D = ( Scalar ` W ) $.
    lshpset2.z $e |- .0. = ( 0g ` D ) $.
    lshpset2.h $e |- H = ( LSHyp ` W ) $.
    lshpset2.f $e |- F = ( LFnl ` W ) $.
    lshpset2.k $e |- K = ( LKer ` W ) $.
    $( The set of all hyperplanes of a left module or left vector space equals
       the set of all kernels of nonzero functionals.  (Contributed by NM,
       17-Jul-2014.)  (New usage is discouraged.) $)
    lshpset2N $p |- ( W e. LVec -> H = { s |
                   E. g e. F ( g =/= ( V X. { .0. } ) /\ s = ( K ` g ) ) } ) $=
      ( vv wcel cfv wceq wa clvec cv csn cxp wne wrex lshpkrex biimparc adantll
      eleq1 adantlr simplll simplr lkrshp3 mpbid ex wi eqimss2 eqimss eqssd a1i
      jcad reximdva mpd clss cun clspn w3a lkrshp 3adant3r eqid islshp 3ad2ant1
      wb neeq1 uneq1 fveq2d eqeq1d rexbidv 3anbi123d adantl 3ad2ant3 rexlimdv3a
      mpbird sylibrd impbid abbi2dv ) GUAQZBUBZFHUCUDUEZIUBZWIERZSZTZBCUFZIDWHW
      KDQZWOWHWPWOWHWPTZWLWKSZBCUFWOWKBCDEGMNOUGWQWRWNBCWQWICQZTZWRWJWMWTWRWJWT
      WRTZWLDQZWJWQWRXBWSWPWRXBWHWRXBWPWLWKDUJUHUIUKXAACWIDEFGHJKLMNOWHWPWSWRUL
      WQWSWRUMUNUOUPWRWMUQWTWRWKWLWKWLURWLWKUSUTVAVBVCVDUPWHWOWKGVERZQZWKFUEZWK
      PUBUCZVFZGVGRZRZFSZPFUFZVHZWPWHWNXLBCWHWSWNVHZXLWLXCQZWLFUEZWLXFVFZXHRZFS
      ZPFUFZVHZXMXBXTWHWSWJXBWMACWIDEFGHJKLMNOVIVJWHWSXBXTVNWNPXCWLDXHFGUAJXHVK
      ZXCVKZMVLVMUOWNWHXLXTVNZWSWMYCWJWMXDXNXEXOXKXSWKWLXCUJWKWLFVOWMXJXRPFWMXI
      XQFWMXGXPXHWKWLXFVPVQVRVSVTWAWBWDWCPXCWKDXHFGUAJYAYBMVLWEWFWG $.

    $d s F $.  $d s K $.  $d g s U $.  $d s V $.  $d s .0. $.
    $( The predicate "is a hyperplane" (of a left module or left vector space).
       TODO: should it be ` U = ( K `` g ) ` or ` ( K `` g ) = U ` as in
       ~ lshpkrex ?  Both standards seem to be used randomly throughout set.mm;
       we should decide on a preferred one.  (Contributed by NM, 7-Oct-2014.)
       (New usage is discouraged.) $)
    islshpkrN $p |- ( W e. LVec -> ( U e. H
          <-> E. g e. F ( g =/= ( V X. { .0. } ) /\ U = ( K ` g ) ) ) ) $=
      ( vs wcel wceq cvv adantl clvec csn cxp wne cfv wrex cab lshpset2N eleq2d
      cv wa elex fvex eleq1 mpbiri rexlimivw eqeq1 rexbidv elabg pm5.21nd bitrd
      anbi2d ) HUAQZBEQBCUJZGIUBUCUDZPUJZVDFUEZRZUKZCDUFZPUGZQZVEBVGRZUKZCDUFZV
      CEVKBACDEFGHIPJKLMNOUHUIVCVLVOBSQZVLVPVCBVKULTVOVPVCVNVPCDVMVPVEVMVPVGSQV
      DFUMBVGSUNUOTUPTVJVOPBSVFBRZVIVNCDVQVHVMVEVFBVGUQVBURUSUTVA $.
  $}

  ${
    $d k D $.  $d k F $.  $d k G $.  $d k K $.  $d k L $.  $d k V $.  $d k W $.
    $d g k ph $.  $d k .x. $.
    lfl1dim.v $e |- V = ( Base ` W ) $.
    lfl1dim.d $e |- D = ( Scalar ` W ) $.
    lfl1dim.f $e |- F = ( LFnl ` W ) $.
    lfl1dim.l $e |- L = ( LKer ` W ) $.
    lfl1dim.k $e |- K = ( Base ` D ) $.
    lfl1dim.t $e |- .x. = ( .r ` D ) $.
    lfl1dim.w $e |- ( ph -> W e. LVec ) $.
    lfl1dim.g $e |- ( ph -> G e. F ) $.
    $( Equivalent expressions for a 1-dim subspace (ray) of functionals.
       (Contributed by NM, 24-Oct-2014.) $)
    lfl1dim $p |- ( ph -> { g e. F | ( L ` G ) C_ ( L ` g ) }
        = { g | E. k e. K g = ( G oF .x. ( V X. { k } ) ) } ) $=
      ( wa cfv cv wss crab wcel cab csn cxp cof co wceq wrex df-rab clmod clvec
      wi c0g lveclmod syl eqid lmod0cl ad2antrr simpr lfl0sc eqtr4d sneq xpeq2d
      oveq2d eqeq2d rspcev syl2anc a1d ad3antrrr simpllr lkrssv wb adantr lkr0f
      biimpar sseq1d biimpa eqssd mpbid ex wne clsh simprr lkrshp simplr simprl
      syl3anc lshpcmp eqlkr2 syl121anc sylbid pm2.61da2ne fveq2 sseq2d biimprcd
      lkrscss rexlimdv impbid pm5.32da lflvscl eleq1a pm4.71rd rexbidva r19.42v
      syl6 syl6rbb bitrd abbidv syl5eq ) AGIUAZDUBZIUAZUCZDFUDXOFUEZXQTZDUFXOGJ
      EUBZUGZUHZCUIZUJZUKZEHULZDUFXQDFUMAXSYFDAXSXRYFTZYFAXRXQYFAXRTZXQYFYHXQYF
      UPXOJBUQUAZUGZUHZGYKYHXOYKUKZTZYFXQYMYIHUEZXOGYKYCUJZUKZYFAYNXRYLAKUNUEZY
      NAKUOUEZYQRKURUSZBHKYIMPYIUTZVAUSZVBYMXOYKYOYHYLVCYMBCFGHJKYILMNPQYTAYQXR
      YLYSVBAGFUEZXRYLSVBVDVEYEYPEYIHXTYIUKZYDYOXOUUCYBYKGYCUUCYAYJJXTYIVFVGVHV
      IVJZVKVLYHGYKUKZTZXQYFUUFXQTZYNYPYFAYNXRUUEXQUUAVMUUGXOYKYOUUGXPJUKZYLUUG
      XPJUUGFXOIJKLNOAYQXRUUEXQYSVMZAXRUUEXQVNZVOUUFXQJXPUCUUFXNJXPYHXNJUKZUUEY
      HYQUUBUUKUUEVPAYQXRYSVQAUUBXRSVQBFGIJKYIMYTLNOVRVKVSVTWAWBUUGYQXRUUHYLVPU
      UIUUJBFXOIJKYIMYTLNOVRVKWCUUGBCFGHJKYILMNPQYTUUIAUUBXRUUEXQSVMVDVEUUDVKWD
      YHXOYKWEZGYKWEZTZTZXQXNXPUKZYFUUOXNXPKWFUAZKUUQUTZAYRXRUUNRVBZUUOYRUUBUUM
      XNUUQUEUUSAUUBXRUUNSVBYHUULUUMWGBFGUUQIJKYILMYTUURNOWHWKUUOYRXRUULXPUUQUE
      UUSAXRUUNWIYHUULUUMWJBFXOUUQIJKYILMYTUURNOWHWKWLUUOUUPYFUUOUUPTYRUUBXRUUP
      YFAYRXRUUNUUPRVMAUUBXRUUNUUPSVMAXRUUNUUPVNUUOUUPVCBCFGXOHIJKEMPQLNOWMWNWD
      WOWPYHYEXQEHYHXTHUEZXNYDIUAZUCZYEXQUPYHUUTUVBYHUUTTBXTCFGHIJKLMPQNOAYRXRU
      UTRVBAUUBXRUUTSVBYHUUTVCWTWDYEXQUVBYEXPUVAXNXOYDIWQWRWSXIXAXBXCAYFXRYETZE
      HULYGAYEUVCEHAUUTTZYEXRUVDYDFUEYEXRUPUVDBXTCFGHJKLMPQNAYQUUTYSVQAUUBUUTSV
      QAUUTVCXDYDFXOXEUSXFXGXRYEEHXHXJXKXLXM $.

    $( Equivalent expressions for a 1-dim subspace (ray) of functionals.  TODO:
       delete this if not useful; ~ lfl1dim may be more compatible with
       ~ lspsn .  (Contributed by NM, 24-Oct-2014.)
       (New usage is discouraged.) $)
    lfl1dim2N $p |- ( ph -> { g e. F | ( L ` G ) C_ ( L ` g ) }
        = { g e. F | E. k e. K g = ( G oF .x. ( V X. { k } ) ) } ) $=
      ( wceq cfv cv wss csn cxp cof co wrex wcel wa wi c0g clmod clvec lveclmod
      syl eqid lmod0cl ad2antrr simpr lfl0sc eqtr4d xpeq2d oveq2d eqeq2d rspcev
      sneq syl2anc a1d ad3antrrr simpllr lkrssv wb adantr biimpar sseq1d biimpa
      lkr0f eqssd mpbid ex wne clsh simprr lkrshp syl3anc simplr simprl lshpcmp
      eqlkr2 syl121anc sylbid pm2.61da2ne lkrscss sseq2d biimprcd syl6 rexlimdv
      fveq2 impbid rabbidva ) AGIUAZDUBZIUAZUCZXCGJEUBZUDZUEZCUFZUGZTZEHUHZDFAX
      CFUIZUJZXEXLXNXEXLUKXCJBULUAZUDZUEZGXQXNXCXQTZUJZXLXEXSXOHUIZXCGXQXIUGZTZ
      XLAXTXMXRAKUMUIZXTAKUNUIZYCRKUOUPZBHKXOMPXOUQZURUPZUSXSXCXQYAXNXRUTXSBCFG
      HJKXOLMNPQYFAYCXMXRYEUSAGFUIZXMXRSUSVAVBXKYBEXOHXFXOTZXJYAXCYIXHXQGXIYIXG
      XPJXFXOVGVCVDVEVFZVHVIXNGXQTZUJZXEXLYLXEUJZXTYBXLAXTXMYKXEYGVJYMXCXQYAYMX
      DJTZXRYMXDJYMFXCIJKLNOAYCXMYKXEYEVJZAXMYKXEVKZVLYLXEJXDUCYLXBJXDXNXBJTZYK
      XNYCYHYQYKVMAYCXMYEVNAYHXMSVNBFGIJKXOMYFLNOVRVHVOVPVQVSYMYCXMYNXRVMYOYPBF
      XCIJKXOMYFLNOVRVHVTYMBCFGHJKXOLMNPQYFYOAYHXMYKXESVJVAVBYJVHWAXNXCXQWBZGXQ
      WBZUJZUJZXEXBXDTZXLUUAXBXDKWCUAZKUUCUQZAYDXMYTRUSZUUAYDYHYSXBUUCUIUUEAYHX
      MYTSUSXNYRYSWDBFGUUCIJKXOLMYFUUDNOWEWFUUAYDXMYRXDUUCUIUUEAXMYTWGXNYRYSWHB
      FXCUUCIJKXOLMYFUUDNOWEWFWIUUAUUBXLUUAUUBUJYDYHXMUUBXLAYDXMYTUUBRVJAYHXMYT
      UUBSVJAXMYTUUBVKUUAUUBUTBCFGXCHIJKEMPQLNOWJWKWAWLWMXNXKXEEHXNXFHUIZXBXJIU
      AZUCZXKXEUKXNUUFUUHXNUUFUJBXFCFGHIJKLMPQNOAYDXMUUFRUSAYHXMUUFSUSXNUUFUTWN
      WAXKXEUUHXKXDUUGXBXCXJIWSWOWPWQWRWTXA $.
  $}

$(
  @c LSLat @.

  @( Extend class notation with lattice of subspaces of a left module
     or left vector space. @)
  clsl @a class LSLat @.

  @{
    @d w x y @.
    df-lsl @a |- LSLat = ( w e. _V |-> { <. ( Base ` ndx ) ,
        ( LSubSp ` w ) >. , <. ( le ` ndx ) ,
     { <. x , y >. | ( x e. ( LSubSp ` w ) /\ y e. ( LSubSp ` w )
        /\ x C_ y ) } >. } ) @.
  @}
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Opposite rings and dual vector spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c LDual $.

  $( Extend class notation with left dualvector space. $)
  cld $a class LDual $.

  ${
    $d v k f $.
    $( Define the (left) dual of a left vector space (or module) in which the
       vectors are functionals.  In many texts, this is defined as a right
       vector space, but by reversing the multiplication we achieve a left
       vector space, as is done in definition of dual vector space in
       [Holland95] p. 218.  This allows us to reuse our existing collection of
       left vector space theorems.  The restriction on ` oF ( +g `` v ) `
       allows it to be a set; see ~ ofmres .  Note the operation reversal in
       the scalar product to allow us to use the original scalar ring instead
       of the ` oppR ` ring, for convenience.  (Contributed by NM,
       18-Oct-2014.) $)
    df-ldual $a |- LDual = ( v e. _V |->
      ( { <. ( Base ` ndx ) , ( LFnl ` v ) >. ,
          <. ( +g ` ndx ) , ( oF ( +g ` ( Scalar ` v ) )
                 |` ( ( LFnl ` v ) X. ( LFnl ` v ) ) ) >. ,
          <. ( Scalar ` ndx ) , ( oppR ` ( Scalar ` v ) ) >. } u. {
          <. ( .s ` ndx ) , ( k e. ( Base ` ( Scalar ` v ) ) ,
             f e. ( LFnl ` v ) |-> ( f oF ( .r ` ( Scalar ` v ) )
               ( ( Base ` v ) X. { k } ) ) ) >. } ) ) $.
  $}

  ${
    $d w F $.  $d w O $.  $d w .+b $.  $d w .xb $.  $d f k w W $.
    ldualset.v $e |- V = ( Base ` W ) $.
    ldualset.a $e |- .+ = ( +g ` R ) $.
    ldualset.p $e |- .+b = ( oF .+ |` ( F X. F ) ) $.
    ldualset.f $e |- F = ( LFnl ` W ) $.
    ldualset.d $e |- D = ( LDual ` W ) $.
    ldualset.r $e |- R = ( Scalar ` W ) $.
    ldualset.k $e |- K = ( Base ` R ) $.
    ldualset.t $e |- .x. = ( .r ` R ) $.
    ldualset.o $e |- O = ( oppR ` R ) $.
    ldualset.s $e |- .xb =
      ( k e. K , f e. F |-> ( f oF .x. ( V X. { k } ) ) ) $.
    ldualset.w $e |- ( ph -> W e. X ) $.
    $( Define the (left) dual of a left vector space (or module) in which the
       vectors are functionals.  In many texts, this is defined as a right
       vector space, but by reversing the multiplication we achieve a left
       vector space, as is done in definition of dual vector space in
       [Holland95] p. 218.  This allows us to reuse our existing collection of
       left vector space theorems.  Note the operation reversal in the scalar
       product to allow us to use the original scalar ring instead of the
       ` oppR ` ring, for convenience.  (Contributed by NM, 18-Oct-2014.) $)
    ldualset $p |- ( ph -> D = ( { <. ( Base ` ndx ) , F >. ,
         <. ( +g ` ndx ) , .+b >. , <. ( Scalar ` ndx ) , O >. }
       u. { <. ( .s ` ndx ) , .xb >. } ) ) $=
      ( vw wcel cvv cnx cbs cfv cop cplusg csca ctp cvsca csn cun wceq elex cld
      cv clfn cof cxp cres coppr cmulr co cmpt2 fveq2 syl6eqr opeq2d fveq2d syl
      sqxpeqd reseq12d tpeq123d eqidd xpeq1d oveq123d mpt2eq123dv sneqd uneq12d
      ofeq df-ldual tpex snex unex fvmpt syl5eq 3syl ) ANOUHNUIUHZBUJUKULZJUMZU
      JUNULZDUMZUJUOULZLUMZUPZUJUQULZFUMZURZUSZUTUFNOVAWNBNVBULXETUGNWOUGVCZVDU
      LZUMZWQXFUOULZUNULZVEZXGXGVFZVGZUMZWSXIVHULZUMZUPZXBIHXIUKULZXGHVCZXFUKUL
      ZIVCURZVFZXIVIULZVEZVJZVKZUMZURZUSXEUIVBXFNUTZXQXAYHXDYIXHWPXNWRXPWTYIXGJ
      WOYIXGNVDULJXFNVDVLSVMZVNYIXMDWQYIXMCVEZJJVFZVGDYIXKYKXLYLYIXJCUTXKYKUTYI
      XJEUNULCYIXIEUNYIXINUOULEXFNUOVLUAVMZVOQVMXJCWFVPYIXGJYJVQVRRVMVNYIXOLWSY
      IXOEVHULLYIXIEVHYMVOUDVMVNVSYIYGXCYIYFFXBYIYFIHKJXSMYAVFZGVEZVJZVKFYIIHXR
      XGYEKJYPYIXREUKULKYIXIEUKYMVOUBVMYJYIXSXSYBYNYDYOYIYCGUTYDYOUTYIYCEVIULGY
      IXIEVIYMVOUCVMYCGWFVPYIXSVTYIXTMYAYIXTNUKULMXFNUKVLPVMWAWBWCUEVMVNWDWEUGH
      IWGXAXDWPWRWTWHXCWIWJWKWLWM $.
  $}

  ${
    $d f k W $.
    ldualvbase.f $e |- F = ( LFnl ` W ) $.
    ldualvbase.d $e |- D = ( LDual ` W ) $.
    ldualvbase.v $e |- V = ( Base ` D ) $.
    ldualvbase.w $e |- ( ph -> W e. X ) $.
    $( The vectors of a dual space are functionals of the original space.
       (Contributed by NM, 18-Oct-2014.) $)
    ldualvbase $p |- ( ph -> V = F ) $=
      ( vk vf cbs cfv cnx cop cplusg csca eqid cvv cof cxp cres coppr ctp cvsca
      cv csn cmulr co cmpt2 cun ldualset fveq2d wcel wceq clfn eqeltri lmodbase
      fvex ax-mp 3eqtr4g ) ABMNOMNCPOQNERNZQNZUACCUBUCZPORNVCUDNZPUEOUFNKLVCMNZ
      CLUGEMNZKUGUHUBVCUINZUAUJUKZPUHULZMNZDCABVKMABVDVEVCVJVILKCVGVFVHEFVHSVDS
      VESGHVCSVGSVISVFSVJSJUMUNICTUOCVLUPCEUQNTGEUQUTURCVEVJVFVKTVKSUSVAVB $.
  $}

  ${
    ldualelvbase.f $e |- F = ( LFnl ` W ) $.
    ldualelvbase.d $e |- D = ( LDual ` W ) $.
    ldualelvbase.v $e |- V = ( Base ` D ) $.
    ldualelvbase.w $e |- ( ph -> W e. X ) $.
    ldualelvbase.g $e |- ( ph -> G e. F ) $.
    $( Utility theorem for converting a functional to a vector of the dual
       space in order to use standard vector theorems.  (Contributed by NM,
       6-Jan-2015.) $)
    ldualelvbase $p |- ( ph -> G e. V ) $=
      ( ldualvbase eleqtrrd ) ADCELABCEFGHIJKMN $.
  $}

  ${
    $d f k W $.
    ldualvadd.f $e |- F = ( LFnl ` W ) $.
    ldualvadd.r $e |- R = ( Scalar ` W ) $.
    ldualvadd.a $e |- .+ = ( +g ` R ) $.
    ldualvadd.d $e |- D = ( LDual ` W ) $.
    ldualvadd.p $e |- .+b = ( +g ` D ) $.
    ldualvadd.w $e |- ( ph -> W e. X ) $.
    ${
      ldualfvadd.q $e |- .+^ = ( oF .+ |` ( F X. F ) ) $.
      $( Vector addition in the dual of a vector space.  (Contributed by NM,
         21-Oct-2014.) $)
      ldualfvadd $p |- ( ph -> .+b = .+^ ) $=
        ( cplusg cfv eqid cvv vk vf cnx cbs cop csca coppr ctp cvsca cv csn cxp
        cmulr cof co cmpt2 cun ldualset fveq2d wcel wceq cres clfn fvex eqeltri
        id ofmresex ax-mp lmodplusg 3eqtr4g ) ABQRUCUDRGUEUCQRDUEUCUFRFUGRZUEUH
        UCUIRUAUBFUDRZGUBUJHUDRZUAUJUKULFUMRZUNUOUPZUEUKUQZQRZEDABVPQABCDFVOVNU
        BUAGVLVKVMHIVMSLPJMKVLSVNSVKSVOSOURUSNDTUTDVQVADCUNGGULVBZTPGTUTZVRTUTG
        HVCRTJHVCVDVEVSGGCTTVSVFZVTVGVHVEGDVOVKVPTVPSVIVHVJ $.
    $}

    ldualvadd.g $e |- ( ph -> G e. F ) $.
    ldualvadd.h $e |- ( ph -> H e. F ) $.
    $( Vector addition in the dual of a vector space.  (Contributed by NM,
       21-Oct-2014.) $)
    ldualvadd $p |- ( ph -> ( G .+b H ) = ( G oF .+ H ) ) $=
      ( co cof cxp cres eqid ldualfvadd oveqd ofmresval eqtrd ) AGHDSGHCTZFFUAU
      BZSGHUHSADUIGHABCUIDEFIJKLMNOPUIUCUDUEAFFCGHQRUFUG $.
  $}

  ${
    ldualvaddcl.f $e |- F = ( LFnl ` W ) $.
    ldualvaddcl.d $e |- D = ( LDual ` W ) $.
    ldualvaddcl.p $e |- .+ = ( +g ` D ) $.
    ldualvaddcl.w $e |- ( ph -> W e. LMod ) $.
    ldualvaddcl.g $e |- ( ph -> G e. F ) $.
    ldualvaddcl.h $e |- ( ph -> H e. F ) $.
    $( The value of vector addition in the dual of a vector space is a
       functional.  (Contributed by NM, 21-Oct-2014.) $)
    ldualvaddcl $p |- ( ph -> ( G .+ H ) e. F ) $=
      ( co csca cfv cplusg cof clmod eqid ldualvadd lfladdcl eqeltrd ) AEFCNEFG
      OPZQPZRNDABUECUDDEFGSHUDTZUETZIJKLMUAAUEUDDEFGUFUGHKLMUBUC $.
  $}

  ${
    ldualvaddval.v $e |- V = ( Base ` W ) $.
    ldualvaddval.r $e |- R = ( Scalar ` W ) $.
    ldualvaddval.a $e |- .+ = ( +g ` R ) $.
    ldualvaddval.f $e |- F = ( LFnl ` W ) $.
    ldualvaddval.d $e |- D = ( LDual ` W ) $.
    ldualvaddval.p $e |- .+b = ( +g ` D ) $.
    ldualvaddval.w $e |- ( ph -> W e. LMod ) $.
    ldualvaddval.g $e |- ( ph -> G e. F ) $.
    ldualvaddval.h $e |- ( ph -> H e. F ) $.
    ldualvaddval.x $e |- ( ph -> X e. V ) $.
    $( The value of the value of vector addition in the dual of a vector space.
       (Contributed by NM, 7-Jan-2015.) $)
    ldualvaddval $p |- ( ph
             -> ( ( G .+b H ) ` X ) = ( ( G ` X ) .+ ( H ` X ) ) ) $=
      ( co cfv cof clmod ldualvadd fveq1d wcel wceq cvv wfn wa cbs wf eqid lflf
      ffn syl syl2anc fvex eqeltri a1i inidm eqidd ofval mpdan eqtrd ) AKGHDUBZ
      UCKGHCUDUBZUCZKGUCZKHUCZCUBZAKVHVIABCDEFGHJUEOMNPQRSTUFUGAKIUHZVJVMUIUAAI
      IVKVLCIGHUJUJKAJUEUHZGFUHZGIUKZRSVOVPULIEUMUCZGUNVQEFGVRIJUEMVRUOZLOUPIVR
      GUQURUSAVOHFUHZHIUKZRTVOVTULIVRHUNWAEFHVRIJUEMVSLOUPIVRHUQURUSIUJUHAIJUMU
      CUJLJUMUTVAVBZWBIVCAVNULZVKVDWCVLVDVEVFVG $.
  $}

  ${
    $d f k W $.
    ldualsca.f $e |- F = ( Scalar ` W ) $.
    ldualsca.o $e |- O = ( oppR ` F ) $.
    ldualsca.d $e |- D = ( LDual ` W ) $.
    ldualsca.r $e |- R = ( Scalar ` D ) $.
    ldualsca.w $e |- ( ph -> W e. X ) $.
    $( The ring of scalars of the dual of a vector space.  (Contributed by NM,
       18-Oct-2014.) $)
    ldualsca $p |- ( ph -> R = O ) $=
      ( vk vf csca cfv cnx cbs cop eqid clfn cplusg cof cxp cres cvsca cv cmulr
      ctp csn co cmpt2 cun ldualset fveq2d wcel wceq coppr fvex eqeltri lmodsca
      cvv ax-mp 3eqtr4g ) ABOPQRPFUAPZSQUBPDUBPZUCVEVEUDUEZSQOPESUIQUFPMNDRPZVE
      NUGFRPZMUGUJUDDUHPZUCUKULZSUJUMZOPZCEABVLOABVFVGDVKVJNMVEVHEVIFGVITVFTVGT
      VETJHVHTVJTIVKTLUNUOKEVBUPEVMUQEDURPVBIDURUSUTVEVGVKEVLVBVLTVAVCVD $.
  $}

  ${
    ldualsbase.f $e |- F = ( Scalar ` W ) $.
    ldualsbase.l $e |- L = ( Base ` F ) $.
    ldualsbase.d $e |- D = ( LDual ` W ) $.
    ldualsbase.r $e |- R = ( Scalar ` D ) $.
    ldualsbase.k $e |- K = ( Base ` R ) $.
    ldualsbase.w $e |- ( ph -> W e. V ) $.
    $( Base set of scalar ring for the dual of a vector space.  (Contributed by
       NM, 24-Oct-2014.) $)
    ldualsbase $p |- ( ph -> K = L ) $=
      ( cbs cfv coppr eqid ldualsca fveq2d opprbas 3eqtr4g ) ACOPDQPZOPEFACUCOA
      BCDUCHGIUCRZKLNSTMFDUCUDJUAUB $.
  $}

  ${
    ldualsadd.f $e |- F = ( Scalar ` W ) $.
    ldualsadd.q $e |- .+ = ( +g ` F ) $.
    ldualsadd.d $e |- D = ( LDual ` W ) $.
    ldualsadd.r $e |- R = ( Scalar ` D ) $.
    ldualsadd.p $e |- .+b = ( +g ` R ) $.
    ldualsadd.w $e |- ( ph -> W e. V ) $.
    $( Scalar addition for the dual of a vector space.  (Contributed by NM,
       24-Oct-2014.)  (New usage is discouraged.) $)
    ldualsaddN $p |- ( ph -> .+b = .+ ) $=
      ( cplusg cfv coppr eqid ldualsca fveq2d oppradd 3eqtr4g ) AEOPFQPZOPDCAEU
      COABEFUCHGIUCRZKLNSTMCFUCUDJUAUB $.
  $}

  ${
    ldualsmul.f $e |- F = ( Scalar ` W ) $.
    ldualsmul.k $e |- K = ( Base ` F ) $.
    ldualsmul.t $e |- .x. = ( .r ` F ) $.
    ldualsmul.d $e |- D = ( LDual ` W ) $.
    ldualsmul.r $e |- R = ( Scalar ` D ) $.
    ldualsmul.m $e |- .xb = ( .r ` R ) $.
    ldualsmul.w $e |- ( ph -> W e. V ) $.
    ldualsmul.x $e |- ( ph -> X e. K ) $.
    ldualsmul.y $e |- ( ph -> Y e. K ) $.
    $( Scalar multiplication for the dual of a vector space.  (Contributed by
       NM, 19-Oct-2014.)  (Revised by Mario Carneiro, 22-Sep-2015.) $)
    ldualsmul $p |- ( ph -> ( X .xb Y ) = ( Y .x. X ) ) $=
      ( co coppr cfv cmulr eqid ldualsca fveq2d syl5eq oveqd opprmul syl6eq ) A
      JKDUAJKFUBUCZUDUCZUAKJEUAADUMJKADCUDUCUMQACULUDABCFULIHLULUEZOPRUFUGUHUIG
      FUMEULJKMNUNUMUEUJUK $.
  $}

  ${
    $d f k F $.  $d f k G $.  $d f k K $.  $d f k .X. $.  $d f k V $.
    $d f k W $.  $d f k X $.
    ldualfvs.f $e |- F = ( LFnl ` W ) $.
    ldualfvs.v $e |- V = ( Base ` W ) $.
    ldualfvs.r $e |- R = ( Scalar ` W ) $.
    ldualfvs.k $e |- K = ( Base ` R ) $.
    ldualfvs.t $e |- .X. = ( .r ` R ) $.
    ldualfvs.d $e |- D = ( LDual ` W ) $.
    ldualfvs.s $e |- .xb = ( .s ` D ) $.
    ldualfvs.w $e |- ( ph -> W e. Y ) $.
    ${
      ldualfvs.m $e |- .x.
           = ( k e. K , f e. F |-> ( f oF .X. ( V X. { k } ) ) ) $.
      $( Scalar product operation for the dual of a vector space.  (Contributed
         by NM, 18-Oct-2014.) $)
      ldualfvs $p |- ( ph -> .xb = .x. ) $=
        ( cvsca cfv cnx cbs cop cplusg cof cxp cres csca coppr ctp cv csn cmpt2
        co cun eqid ldualset fveq2d wcel wceq fvex eqeltri clfn mpt2ex lmodvsca
        cvv ax-mp eqtri 3eqtr4g ) ABUCUDUEUFUDIUGUEUHUDCUHUDZUIIIUJUKZUGUEULUDC
        UMUDZUGUNUEUCUDHGJIGUOKHUOUPUJFUIURZUQZUGUPUSZUCUDZDEABVSUCABVNVOCVRFGH
        IJVPKLMOVNUTVOUTNSPQRVPUTVRUTUAVAVBTEVRVTUBVRVJVCVRVTVDHGJIVQJCUFUDVJQC
        UFVEVFILVGUDVJNLVGVEVFVHIVOVRVPVSVJVSUTVIVKVLVM $.
    $}

    ldualvs.x $e |- ( ph -> X e. K ) $.
    ldualvs.g $e |- ( ph -> G e. F ) $.
    $( Scalar product operation value (which is a functional) for the dual of a
       vector space.  (Contributed by NM, 18-Oct-2014.) $)
    ldualvs $p |- ( ph -> ( X .xb G ) = ( G oF .X. ( V X. { X } ) ) ) $=
      ( vk vf co cv csn cxp cof cmpt2 eqid ldualfvs oveqd wcel wceq sneq xpeq2d
      oveq2d oveq1 ovex ovmpt2 syl2anc eqtrd ) AKGDUEKGUCUDHFUDUFZIUCUFZUGZUHZE
      UIZUEZUJZUEZGIKUGZUHZVHUEZADVJKGABCDVJEUDUCFHIJLMNOPQRSTVJUKZULUMAKHUNGFU
      NVKVNUOUAUBUCUDKGHFVIVNVJVDVMVHUEVEKUOZVGVMVDVHVPVFVLIVEKUPUQURVDGVMVHUSV
      OGVMVHUTVAVBVC $.

    ldualvs.a $e |- ( ph -> A e. V ) $.
    $( Value of scalar product operation value for the dual of a vector space.
       (Contributed by NM, 18-Oct-2014.) $)
    ldualvsval $p |- ( ph -> ( ( X .xb G ) ` A ) = ( ( G ` A ) .X. X ) ) $=
      ( co cfv csn cxp cof ldualvs fveq1d wcel wceq cvv cbs fvex eqeltri a1i wf
      wfn lflf syl2anc ffn syl wa eqidd ofc2 mpdan eqtrd ) ABLHEUEZUFBHJLUGUHFU
      IUEZUFZBHUFZLFUEZABVJVKACDEFGHIJKLMNOPQRSTUAUBUCUJUKABJULZVLVNUMUDAJLVMFH
      UNIBJUNULAJKUOUFUNOKUOUPUQURUBAJIHUSZHJUTAKMULHGULVPUAUCDGHIJKMPQONVAVBJI
      HVCVDAVOVEVMVFVGVHVI $.
  $}

  ${
    ldualvscl.f $e |- F = ( LFnl ` W ) $.
    ldualvscl.r $e |- R = ( Scalar ` W ) $.
    ldualvscl.k $e |- K = ( Base ` R ) $.
    ldualvscl.d $e |- D = ( LDual ` W ) $.
    ldualvscl.s $e |- .x. = ( .s ` D ) $.
    ldualvscl.w $e |- ( ph -> W e. LMod ) $.
    ldualvscl.x $e |- ( ph -> X e. K ) $.
    ldualvscl.g $e |- ( ph -> G e. F ) $.
    $( The scalar product operation value is a functional.  (Contributed by NM,
       18-Oct-2014.) $)
    ldualvscl $p |- ( ph -> ( X .x. G ) e. F ) $=
      ( co cfv eqid cbs csn cxp cmulr cof clmod ldualvs lflvscl eqeltrd ) AIFDR
      FHUASZIUBUCCUDSZUEREABCDUKEFGUJHIUFJUJTZKLUKTZMNOPQUGACIUKEFGUJHULKLUMJOQ
      PUHUI $.
  $}

  ${
    ldualvaddcom.f $e |- F = ( LFnl ` W ) $.
    ldualvaddcom.d $e |- D = ( LDual ` W ) $.
    ldualvaddcom.p $e |- .+ = ( +g ` D ) $.
    ldualvaddcom.w $e |- ( ph -> W e. LMod ) $.
    ldualvaddcom.x $e |- ( ph -> X e. F ) $.
    ldualvaddcom.y $e |- ( ph -> Y e. F ) $.
    $( Commutative law for vector (functional) addition.  (Contributed by NM,
       17-Jan-2015.) $)
    ldualvaddcom $p |- ( ph -> ( X .+ Y ) = ( Y .+ X ) ) $=
      ( csca cfv cplusg co eqid clmod ldualvadd cof lfladdcom 3eqtr4d ) AFGENOZ
      POZUAZQGFUFQFGCQGFCQAUEUDDFGEUDRZUERZHKLMUBABUECUDDFGESHUGUHIJKLMTABUECUD
      DGFESHUGUHIJKMLTUC $.
  $}

  ${
    ldualvsass.f $e |- F = ( LFnl ` W ) $.
    ldualvsass.r $e |- R = ( Scalar ` W ) $.
    ldualvsass.k $e |- K = ( Base ` R ) $.
    ldualvsass.t $e |- .X. = ( .r ` R ) $.
    ldualvsass.d $e |- D = ( LDual ` W ) $.
    ldualvsass.s $e |- .x. = ( .s ` D ) $.
    ldualvsass.w $e |- ( ph -> W e. LMod ) $.
    ldualvsass.x $e |- ( ph -> X e. K ) $.
    ldualvsass.y $e |- ( ph -> Y e. K ) $.
    ldualvsass.g $e |- ( ph -> G e. F ) $.
    $( Associative law for scalar product operation.  (Contributed by NM,
       20-Oct-2014.) $)
    ldualvsass $p |- ( ph -> ( ( Y .X. X ) .x. G ) = ( X .x. ( Y .x. G ) ) ) $=
      ( co cbs cfv csn cxp cof eqid lflvsass clmod crg wcel lmodring syl ringcl
      syl3anc ldualvs lflvscl 3eqtr4d oveq2d eqtr4d ) AKJEUBZGDUBZJGIUCUDZKUEUF
      EUGZUBZDUBZJKGDUBZDUBAGVDVBUEUFVEUBVFVDJUEUFVEUBVCVGACEFGHVDIKJVDUHZMNOLR
      TSUAUIABCDEFGHVDIVBUJLVIMNOPQRACUKULZKHULJHULVBHULAIUJULVJRCIMUMUNTSHCEKJ
      NOUOUPUAUQABCDEFVFHVDIJUJLVIMNOPQRSACKEFGHVDIVIMNOLRUATURUQUSAVHVFJDABCDE
      FGHVDIKUJLVIMNOPQRTUAUQUTVA $.
  $}

  ${
    ldualvsass2.f $e |- F = ( LFnl ` W ) $.
    ldualvsass2.r $e |- R = ( Scalar ` W ) $.
    ldualvsass2.k $e |- K = ( Base ` R ) $.
    ldualvsass2.d $e |- D = ( LDual ` W ) $.
    ldualvsass2.q $e |- Q = ( Scalar ` D ) $.
    ldualvsass2.t $e |- .X. = ( .r ` Q ) $.
    ldualvsass2.s $e |- .x. = ( .s ` D ) $.
    ldualvsass2.w $e |- ( ph -> W e. LMod ) $.
    ldualvsass2.x $e |- ( ph -> X e. K ) $.
    ldualvsass2.y $e |- ( ph -> Y e. K ) $.
    ldualvsass2.g $e |- ( ph -> G e. F ) $.
    $( Associative law for scalar product operation, using operations from the
       dual space.  (Contributed by NM, 20-Oct-2014.) $)
    ldualvsass2 $p |- ( ph ->
      ( ( X .X. Y ) .x. G ) = ( X .x. ( Y .x. G ) ) ) $=
      ( co cmulr cfv clmod eqid ldualsmul oveq1d ldualvsass eqtrd ) AKLFUDZHEUD
      LKDUEUFZUDZHEUDKLHEUDEUDAUMUOHEABCFUNDIUGJKLNOUNUHZPQRTUAUBUIUJABDEUNGHIJ
      KLMNOUPPSTUAUBUCUKUL $.
  $}

  ${
    ldualvsdi1.f $e |- F = ( LFnl ` W ) $.
    ldualvsdi1.r $e |- R = ( Scalar ` W ) $.
    ldualvsdi1.k $e |- K = ( Base ` R ) $.
    ldualvsdi1.d $e |- D = ( LDual ` W ) $.
    ldualvsdi1.p $e |- .+ = ( +g ` D ) $.
    ldualvsdi1.s $e |- .x. = ( .s ` D ) $.
    ldualvsdi1.w $e |- ( ph -> W e. LMod ) $.
    ldualvsdi1.x $e |- ( ph -> X e. K ) $.
    ldualvsdi1.g $e |- ( ph -> G e. F ) $.
    ldualvsdi1.h $e |- ( ph -> H e. F ) $.
    $( Distributive law for scalar product operation, using operations from the
       dual space.  (Contributed by NM, 21-Oct-2014.) $)
    ldualvsdi1 $p |- ( ph
        -> ( X .x. ( G .+ H ) ) = ( ( X .x. G ) .+ ( X .x. H ) ) ) $=
      ( cplusg cfv cof cbs csn cxp cmulr clmod eqid ldualvs ldualvscl ldualvadd
      co oveq12d ldualvaddcl oveq1d lflvsdi1 3eqtrd 3eqtr4rd ) AKGEUNZKHEUNZDUB
      UCZUDZUNGJUEUCZKUFUGZDUHUCZUDZUNZHVFVHUNZVDUNZVAVBCUNKGHCUNZEUNZAVAVIVBVJ
      VDABDEVGFGIVEJKUILVEUJZMNVGUJZOQRSTUKABDEVGFHIVEJKUILVNMNVOOQRSUAUKUOABVC
      CDFVAVBJUILMVCUJZOPRABDEFGIJKLMNOQRSTULABDEFHIJKLMNOQRSUAULUMAVMVLVFVHUNG
      HVDUNZVFVHUNVKABDEVGFVLIVEJKUILVNMNVOOQRSABCFGHJLOPRTUAUPUKAVLVQVFVHABVCC
      DFGHJUILMVPOPRTUAUMUQAVCDVGFGHIVEJKVNMNVPVOLRSTUAURUSUT $.
  $}

  ${
    ldualvsdi2.f $e |- F = ( LFnl ` W ) $.
    ldualvsdi2.r $e |- R = ( Scalar ` W ) $.
    ldualvsdi2.a $e |- .+ = ( +g ` R ) $.
    ldualvsdi2.k $e |- K = ( Base ` R ) $.
    ldualvsdi2.d $e |- D = ( LDual ` W ) $.
    ldualvsdi2.p $e |- .+b = ( +g ` D ) $.
    ldualvsdi2.s $e |- .x. = ( .s ` D ) $.
    ldualvsdi2.w $e |- ( ph -> W e. LMod ) $.
    ldualvsdi2.x $e |- ( ph -> X e. K ) $.
    ldualvsdi2.y $e |- ( ph -> Y e. K ) $.
    ldualvsdi2.g $e |- ( ph -> G e. F ) $.
    $( Reverse distributive law for scalar product operation, using operations
       from the dual space.  (Contributed by NM, 21-Oct-2014.) $)
    ldualvsdi2 $p |- ( ph
        -> ( ( X .+ Y ) .x. G ) = ( ( X .x. G ) .+b ( Y .x. G ) ) ) $=
      ( cbs cfv csn cxp cmulr clmod eqid wcel lmodacl syl3anc ldualvs lflvsdi2a
      co cof ldualvscl ldualvadd oveq12d eqtr2d 3eqtrd ) AKLCUPZHFUPHJUDUEZVCUF
      UGEUHUEZUQZUPHVDKUFUGVFUPZHVDLUFUGVFUPZCUQZUPZKHFUPZLHFUPZDUPZABEFVEGHIVD
      JVCUIMVDUJZNPVEUJZQSTAJUIUKKIUKLIUKVCIUKTUAUBCEIJKLNPOULUMUCUNACEVEGHIVDJ
      KLVNNPOVOMTUAUBUCUOAVMVKVLVIUPVJABCDEGVKVLJUIMNOQRTABEFGHIJKMNPQSTUAUCURA
      BEFGHIJLMNPQSTUBUCURUSAVKVGVLVHVIABEFVEGHIVDJKUIMVNNPVOQSTUAUCUNABEFVEGHI
      VDJLUIMVNNPVOQSTUBUCUNUTVAVB $.
  $}

  ${
    $d x y z D $.  $d x y z F $.  $d x y z ph $.  $d x y z R $.  $d x y z V $.
    $d z W $.
    ldualgrp.d $e |- D = ( LDual ` W ) $.
    ldualgrp.w $e |- ( ph -> W e. LMod ) $.
    ${
      ldualgrp.v $e |- V = ( Base ` W ) $.
      ldualgrp.p $e |- .+ = oF ( +g ` W ) $.
      ldualgrp.f $e |- F = ( LFnl ` W ) $.
      ldualgrp.r $e |- R = ( Scalar ` W ) $.
      ldualgrp.k $e |- K = ( Base ` R ) $.
      ldualgrp.t $e |- .X. = ( .r ` R ) $.
      ldualgrp.o $e |- O = ( oppR ` R ) $.
      ldualgrp.s $e |- .x. = ( .s ` D ) $.
      $( Lemma for ~ ldualgrp .  (Contributed by NM, 22-Oct-2014.) $)
      ldualgrplem $p |- ( ph -> D e. Grp ) $=
        ( vx vy vz cplusg cfv cv cminusg cmpt c0g csn cxp clmod eqid ldualvbase
        cbs eqcomd eqidd wcel w3a 3ad2ant1 simp2 simp3 ldualvaddcl wa co adantr
        cof simpr2 simpr3 ldualvadd oveq2d simpr1 oveq1d lfladdass 3eqtrd lfl0f
        3eqtr4rd syl simpr lfladd0l eqtrd lflnegcl lflnegl isgrpd ) AUBUCUDGBUE
        UFZBUDJUDUGZUBUGZUFDUHUFZUFUIZJDUJUFZUKULZABUPUFZGABGWMKUMPLWMUNMUOUQAW
        FURAWHGUSZUCUGZGUSZUTBWFGWHWOKPLWFUNZAWNKUMUSZWPMVAAWNWPVBAWNWPVCVDAWNW
        PWGGUSZUTZVEZWHWOWGWFVFZDUEUFZVHZVFWHWOWGXDVFZXDVFZWHXBWFVFWHWOWFVFZWGW
        FVFZXAXBXEWHXDXABXCWFDGWOWGKUMPQXCUNZLWQAWRWTMVGZAWNWPWSVIZAWNWPWSVJZVK
        VLXABXCWFDGWHXBKUMPQXILWQXJAWNWPWSVMZXABWFGWOWGKPLWQXJXKXLVDVKXAXHXGWGX
        DVFWHWOXDVFZWGXDVFXFXABXCWFDGXGWGKUMPQXILWQXJXABWFGWHWOKPLWQXJXMXKVDXLV
        KXAXGXNWGXDXABXCWFDGWHWOKUMPQXILWQXJXMXKVKVNXAXCDGWHWOWGKQXIPXJXMXKXLVO
        VPVRAWRWLGUSZMDGJKWKQWKUNZNPVQVSZAWNVEZWLWHWFVFWLWHXDVFWHXRBXCWFDGWLWHK
        UMPQXILWQAWRWNMVGZAXOWNXQVGAWNVTZVKXRXCDGWHJKWKNQXIXPPXSXTWAWBXRUDDGWHW
        IWJJKNQWIUNZWJUNZPXSXTWCZXRWJWHWFVFWJWHXDVFWLXRBXCWFDGWJWHKUMPQXILWQXSY
        CXTVKXRUDXCDGWHWIWJJKWKNQYAYBPXSXTXIXPWDWBWE $.
    $}

    $( The dual of a vector space is a group.  (Contributed by NM,
       21-Oct-2014.) $)
    ldualgrp $p |- ( ph -> D e. Grp ) $=
      ( cplusg cfv cof csca cvsca cmulr clfn cbs coppr eqid ldualgrplem ) ABCFG
      HZCIGZBJGZRKGZCLGZRMGZRNGZCMGZCDEUDOQOUAOROUBOTOUCOSOP $.
  $}

  ${
    ldual0.r $e |- R = ( Scalar ` W ) $.
    ldual0.z $e |- .0. = ( 0g ` R ) $.
    ldual0.d $e |- D = ( LDual ` W ) $.
    ldual0.s $e |- S = ( Scalar ` D ) $.
    ldual0.o $e |- O = ( 0g ` S ) $.
    ldual0.w $e |- ( ph -> W e. LMod ) $.
    $( The zero scalar of the dual of a vector space.  (Contributed by NM,
       28-Dec-2014.) $)
    ldual0 $p |- ( ph -> O = .0. ) $=
      ( c0g cfv coppr clmod eqid ldualsca fveq2d oppr0 3eqtr4g ) ADNOCPOZNOEGAD
      UCNABDCUCFQHUCRZJKMSTLCUCGUDIUAUB $.
  $}

  ${
    ldual1.r $e |- R = ( Scalar ` W ) $.
    ldual1.u $e |- .1. = ( 1r ` R ) $.
    ldual1.d $e |- D = ( LDual ` W ) $.
    ldual1.s $e |- S = ( Scalar ` D ) $.
    ldual1.i $e |- I = ( 1r ` S ) $.
    ldual1.w $e |- ( ph -> W e. LMod ) $.
    $( The unit scalar of the dual of a vector space.  (Contributed by NM,
       26-Feb-2015.) $)
    ldual1 $p |- ( ph -> I = .1. ) $=
      ( cur cfv coppr clmod eqid ldualsca fveq2d oppr1 3eqtr4g ) ADNOCPOZNOFEAD
      UCNABDCUCGQHUCRZJKMSTLCEUCUDIUAUB $.
  $}

  ${
    ldualneg.r $e |- R = ( Scalar ` W ) $.
    ldualneg.m $e |- M = ( invg ` R ) $.
    ldualneg.d $e |- D = ( LDual ` W ) $.
    ldualneg.s $e |- S = ( Scalar ` D ) $.
    ldualneg.n $e |- N = ( invg ` S ) $.
    ldualneg.w $e |- ( ph -> W e. LMod ) $.
    $( The negative of a scalar of the dual of a vector space.  (Contributed by
       NM, 26-Feb-2015.) $)
    ldualneg $p |- ( ph -> N = M ) $=
      ( cminusg cfv coppr clmod eqid ldualsca fveq2d opprneg 3eqtr4g ) ADNOCPOZ
      NOFEADUCNABDCUCGQHUCRZJKMSTLCEUCUDIUAUB $.
  $}

  ${
    ldualv0.v $e |- V = ( Base ` W ) $.
    ldualv0.r $e |- R = ( Scalar ` W ) $.
    ldualv0.z $e |- .0. = ( 0g ` R ) $.
    ldualv0.d $e |- D = ( LDual ` W ) $.
    ldualv0.o $e |- O = ( 0g ` D ) $.
    ldualv0.w $e |- ( ph -> W e. LMod ) $.
    $( The zero vector of the dual of a vector space.  (Contributed by NM,
       24-Oct-2014.) $)
    ldual0v $p |- ( ph -> O = ( V X. { .0. } ) ) $=
      ( cplusg cfv co wceq clmod eqid wcel csn cxp cof clfn lfl0f syl ldualvadd
      lfladd0l eqtrd cgrp cbs wb ldualgrp ldualelvbase grpid syl2anc mpbid ) AE
      GUAUBZURBNOZPZURQZDURQZAUTURURCNOZUCPURABVCUSCFUDOZURURFRVDSZIVCSZKUSSZMA
      FRTURVDTMCVDEFGIJHVEUEUFZVHUGAVCCVDUREFGHIVFJVEMVHUHUIABUJTURBUKOZTVAVBUL
      ABFKMUMABVDURVIFRVEKVISZMVHUNVIUSBURDVJVGLUOUPUQ $.
  $}

  ${
    ldualv0cl.f $e |- F = ( LFnl ` W ) $.
    ldualv0cl.d $e |- D = ( LDual ` W ) $.
    ldualv0cl.o $e |- .0. = ( 0g ` D ) $.
    ldualv0cl.w $e |- ( ph -> W e. LMod ) $.
    $( The dual zero vector is a functional.  (Contributed by NM,
       5-Mar-2015.) $)
    ldual0vcl $p |- ( ph -> .0. e. F ) $=
      ( cbs cfv csca c0g csn cxp eqid ldual0v clmod wcel lfl0f syl eqeltrd ) AE
      DJKZDLKZMKZNOZCABUDEUCDUEUCPZUDPZUEPZGHIQADRSUFCSIUDCUCDUEUHUIUGFTUAUB $.
  $}

  ${
    $d x y z D $.  $d x y z F $.  $d x y z K $.  $d x y z R $.  $d x y z .x. $.
    $d x y z ph $.
    lduallmod.d $e |- D = ( LDual ` W ) $.
    lduallmod.w $e |- ( ph -> W e. LMod ) $.
    ${
      lduallmod.v $e |- V = ( Base ` W ) $.
      lduallmod.p $e |- .+ = oF ( +g ` W ) $.
      lduallmod.f $e |- F = ( LFnl ` W ) $.
      lduallmod.r $e |- R = ( Scalar ` W ) $.
      lduallmod.k $e |- K = ( Base ` R ) $.
      lduallmod.t $e |- .X. = ( .r ` R ) $.
      lduallmod.o $e |- O = ( oppR ` R ) $.
      lduallmod.s $e |- .x. = ( .s ` D ) $.
      $( Lemma for ~ lduallmod .  (Contributed by NM, 22-Oct-2014.) $)
      lduallmodlem $p |- ( ph -> D e. LMod ) $=
        ( vx vy vz cplusg cfv csca cmulr cur clmod eqid ldualvbase eqcomd eqidd
        cbs ldualsca cvsca wceq a1i opprbas fveq2d oppr1 wcel lmodring opprring
        oppradd crg 3syl ldualgrp cv w3a 3ad2ant1 simp2 ldualvscl adantr simpr1
        simp3 wa simpr2 simpr3 ldualvsdi1 ldualvsdi2 ldualvsass2 co csn cxp cof
        ringidcl simpr ldualvs lfl1sc eqtrd islmodd ) AUBUCUDHBUEUFZDUEUFZEBUGU
        FZUHUFZDUIUFZIGBABUOUFZGABGWSKUJPLWSUKMULUMAWNUNAWPIABWPDIKUJQTLWPUKZMU
        PZUMEBUQUFURAUAUSHIUOUFURAHDITRUTUSWOIUEUFURAWODITWOUKZVFUSAWPIUHXAVAWR
        IUIUFURADWRITWRUKZVBUSAKUJVCZDVGVCZIVGVCMDKQVDZDITVEVHABKLMVIAUBVJZHVCZ
        UCVJZGVCZVKBDEGXIHKXGPQRLUAAXHXDXJMVLAXHXJVMAXHXJVQVNAXHXJUDVJZGVCZVKZV
        RBWNDEGXIXKHKXGPQRLWNUKZUAAXDXMMVOAXHXJXLVPAXHXJXLVSAXHXJXLVTWAAXHXIHVC
        ZXLVKZVRZBWOWNDEGXKHKXGXIPQXBRLXNUAAXDXPMVOZAXHXOXLVPZAXHXOXLVSZAXHXOXL
        VTZWBXQBWPDEWQGXKHKXGXIPQRLWTWQUKUAXRXSXTYAWCAXGGVCZVRZWRXGEWDXGJWRWEWF
        FWGWDXGYCBDEFGXGHJKWRUJPNQRSLUAAXDYBMVOZAWRHVCZYBAXDXEYEMXFHDWRRXCWHVHV
        OAYBWIZWJYCDFWRGXGHJKNQPRSXCYDYFWKWLWM $.
    $}

    $( The dual of a left module is also a left module.  (Contributed by NM,
       22-Oct-2014.) $)
    lduallmod $p |- ( ph -> D e. LMod ) $=
      ( cplusg cfv cof csca cvsca cmulr clfn cbs coppr eqid lduallmodlem ) ABCF
      GHZCIGZBJGZRKGZCLGZRMGZRNGZCMGZCDEUDOQOUAOROUBOTOUCOSOP $.
  $}

  ${
    lduallvec.d $e |- D = ( LDual ` W ) $.
    lduallvec.w $e |- ( ph -> W e. LVec ) $.
    $( The dual of a left vector space is also a left vector space.  Note that
       scalar multiplication is reversed by ~ df-oppr ; otherwise, the dual
       would be a right vector space as is sometimes the case in the
       literature.  (Contributed by NM, 22-Oct-2014.) $)
    lduallvec $p |- ( ph -> D e. LVec ) $=
      ( clmod wcel cfv cdr clvec lveclmod syl lduallmod coppr ldualsca lvecdrng
      csca eqid opprdrng sylib eqeltrd islvec sylanbrc ) ABFGBQHZIGBJGABCDACJGZ
      CFGECKLMAUDCQHZNHZIABUDUFUGCJUFRZUGRZDUDRZEOAUFIGZUGIGAUEUKEUFCUHPLUFUGUI
      STUAUDBUJUBUC $.
  $}

  ${
    ldualvsub.r $e |- R = ( Scalar ` W ) $.
    ldualvsub.n $e |- N = ( invg ` R ) $.
    ldualvsub.u $e |- .1. = ( 1r ` R ) $.
    ldualvsub.f $e |- F = ( LFnl ` W ) $.
    ldualvsub.d $e |- D = ( LDual ` W ) $.
    ldualvsub.p $e |- .+ = ( +g ` D ) $.
    ldualvsub.t $e |- .x. = ( .s ` D ) $.
    ldualvsub.m $e |- .- = ( -g ` D ) $.
    ldualvsub.w $e |- ( ph -> W e. LMod ) $.
    ldualvsub.g $e |- ( ph -> G e. F ) $.
    ldualvsub.h $e |- ( ph -> H e. F ) $.
    $( The value of vector subtraction in the dual of a vector space.
       (Contributed by NM, 27-Feb-2015.) $)
    ldualvsub $p |- ( ph -> ( G .- H ) = ( G .+ ( ( N ` .1. ) .x. H ) ) ) $=
      ( co csca cfv cur cminusg clmod wcel cbs wceq lduallmod eqid ldualelvbase
      lmodvsubval2 syl3anc coppr ldualsca fveq2d opprneg syl6reqr oppr1 fveq12d
      oveq1d oveq2d eqtr4d ) AHIJUDZHBUEUFZUGUFZVIUHUFZUFZIEUDZCUDZHFKUFZIEUDZC
      UDABUIUJHBUKUFZUJIVQUJVHVNULABLQUAUMABGHVQLUIPQVQUNZUAUBUOABGIVQLUIPQVRUA
      UCUOHICEVJVIJVKVQBVRRTVIUNZSVKUNVJUNUPUQAVPVMHCAVOVLIEAFVJKVKAVKDURUFZUHU
      FKAVIVTUHABVIDVTLUIMVTUNZQVSUAUSZUTDKVTWANVAVBAVJVTUGUFFAVIVTUGWBUTDFVTWA
      OVCVBVDVEVFVG $.
  $}

  ${
    ldualvsubcl.f $e |- F = ( LFnl ` W ) $.
    ldualvsubcl.d $e |- D = ( LDual ` W ) $.
    ldualvsubcl.m $e |- .- = ( -g ` D ) $.
    ldualvsubcl.w $e |- ( ph -> W e. LMod ) $.
    ldualvsubcl.g $e |- ( ph -> G e. F ) $.
    ldualvsubcl.h $e |- ( ph -> H e. F ) $.
    $( Closure of vector subtraction in the dual of a vector space.
       (Contributed by NM, 27-Feb-2015.) $)
    ldualvsubcl $p |- ( ph -> ( G .- H ) e. F ) $=
      ( co csca cfv cur eqid wcel syl cminusg cvsca cplusg ldualvsub cgrp clmod
      cbs crg lmodring ringgrp ringidcl grpinvcl syl2anc ldualvscl ldualvaddcl
      eqeltrd ) ADEFNDGOPZQPZUQUAPZPZEBUBPZNZBUCPZNCABVCUQVAURCDEFUSGUQRZUSRZUR
      RZHIVCRZVARZJKLMUDABVCCDVBGHIVGKLABUQVACEUQUGPZGUTHVDVIRZIVHKAUQUESZURVIS
      ZUTVISAUQUHSZVKAGUFSVMKUQGVDUITZUQUJTAVMVLVNVIUQURVJVFUKTVIUQUSURVJVEULUM
      MUNUOUP $.
  $}

  ${
    ldualvsubval.v $e |- V = ( Base ` W ) $.
    ldualvsubval.r $e |- R = ( Scalar ` W ) $.
    ldualvsubval.s $e |- S = ( -g ` R ) $.
    ldualvsubval.f $e |- F = ( LFnl ` W ) $.
    ldualvsubval.d $e |- D = ( LDual ` W ) $.
    ldualvsubval.m $e |- .- = ( -g ` D ) $.
    ldualvsubval.w $e |- ( ph -> W e. LMod ) $.
    ldualvsubval.g $e |- ( ph -> G e. F ) $.
    ldualvsubval.h $e |- ( ph -> H e. F ) $.
    ldualvsubval.x $e |- ( ph -> X e. V ) $.
    $( The value of the value of vector subtraction in the dual of a vector
       space.  TODO: shorten with ~ ldualvsub ?  (Requires ` D ` to ` oppR `
       conversion.)  (Contributed by NM, 26-Feb-2015.) $)
    ldualvsubval $p |- ( ph
             -> ( ( G .- H ) ` X ) = ( ( G ` X ) S ( H ` X ) ) ) $=
      ( co cfv csca cur cminusg cvsca cplusg clmod wcel cbs wceq lduallmod eqid
      ldualelvbase lmodvsubval2 syl3anc cgrp lmodfgrp syl crg lmodring ringidcl
      grpinvcl syl2anc ldualsbase eleqtrd ldualvscl ldualvaddval cmulr ldualneg
      fveq1d ldual1 fveq12d oveq1d ringgrp lmod1cl ldualvsval rngnegr grpsubval
      lflcl 3eqtrd oveq2d eqtr4d ) AKFGHUBZUCKFBUDUCZUEUCZWFUFUCZUCZGBUGUCZUBZB
      UHUCZUBZUCKFUCZKWKUCZCUHUCZUBZWNKGUCZDUBZAKWEWMABUIUJZFBUKUCZUJGXAUJWEWMU
      LABJPRUMZABEFXAJUIOPXAUNZRSUOABEGXAJUIOPXCRTUOFGWLWJWGWFHWHXABXCWLUNZQWFU
      NZWJUNZWHUNZWGUNZUPUQVLABWPWLCEFWKIJKLMWPUNZOPXDRSABCWJEGCUKUCZJWIOMXJUNZ
      PXFRAWIWFUKUCZXJAWFURUJZWGXLUJZWIXLUJAWTXMXBWFBXEUSUTAWFVAUJZXNAWTXOXBWFB
      XEVBUTXLWFWGXLUNZXHVCUTXLWFWHWGXPXGVDVEABWFCXLXJUIJMXKPXEXPRVFVGTVHUAVIAW
      QWNWRCUFUCZUCZWPUBZWSAWOXRWNWPAWOKCUEUCZXQUCZGWJUBZUCWRYACVJUCZUBXRAKWKYB
      AWIYAGWJAWGXTWHXQABCWFXQWHJMXQUNZPXEXGRVKABCWFXTWGJMXTUNZPXEXHRVMVNVOVLAK
      BCWJYCEGXJIJYAUIOLMXKYCUNZPXFRACURUJZXTXJUJZYAXJUJACVAUJZYGAJUIUJZYIRCJMV
      BUTZCVPUTAYJYHRXTCXJJMXKYEVQUTXJCXQXTXKYDVDVETUAVRAXJCYCXTXQWRXKYFYEYDYKA
      YJGEUJKIUJZWRXJUJZRTUACEGXJIJKUIMXKLOWAUQZVSWBWCAWNXJUJZYMWSXSULAYJFEUJYL
      YORSUACEFXJIJKUIMXKLOWAUQYNXJWPCXQDWNWRXKXIYDNVTVEWDWB $.
  $}

  ${
    ldualssvscl.r $e |- R = ( Scalar ` W ) $.
    ldualssvscl.k $e |- K = ( Base ` R ) $.
    ldualssvscl.d $e |- D = ( LDual ` W ) $.
    ldualssvscl.t $e |- .x. = ( .s ` D ) $.
    ldualssvscl.s $e |- S = ( LSubSp ` D ) $.
    ldualssvscl.w $e |- ( ph -> W e. LMod ) $.
    ldualssvscl.u $e |- ( ph -> U e. S ) $.
    ldualssvscl.x $e |- ( ph -> X e. K ) $.
    ldualssvscl.y $e |- ( ph -> Y e. U ) $.
    $( Closure of scalar product in a dual subspace.)  (Contributed by NM,
       5-Feb-2015.) $)
    ldualssvscl $p |- ( ph -> ( X .x. Y ) e. U ) $=
      ( wcel clmod csca cfv lduallmod eqid ldualsbase eleqtrrd lssvscl syl22anc
      cbs co ) ABUATFDTIBUBUCZUJUCZTJFTIJEUKFTABHMPUDQAIGUMRABULCUMGUAHKLMULUEZ
      UMUEZPUFUGSUMDEFULBIJUNNUOOUHUI $.
  $}

  ${
    ldualssvsubcl.d $e |- D = ( LDual ` W ) $.
    ldualssvsubcl.m $e |- .- = ( -g ` D ) $.
    ldualssvsubcl.s $e |- S = ( LSubSp ` D ) $.
    ldualssvsubcl.w $e |- ( ph -> W e. LMod ) $.
    ldualssvsubcl.u $e |- ( ph -> U e. S ) $.
    ldualssvsubcl.x $e |- ( ph -> X e. U ) $.
    ldualssvsubcl.y $e |- ( ph -> Y e. U ) $.
    $( Closure of vector subtraction in a dual subspace.)  (Contributed by NM,
       9-Mar-2015.) $)
    ldualssvsubcl $p |- ( ph -> ( X .- Y ) e. U ) $=
      ( clmod wcel co lduallmod lssvsubcl syl22anc ) ABPQDCQGDQHDQGHERDQABFILSM
      NOCDEBGHJKTUA $.
  $}

  ${
    ldual0vs.f $e |- F = ( LFnl ` W ) $.
    ldual0vs.r $e |- R = ( Scalar ` W ) $.
    ldual0vs.z $e |- .0. = ( 0g ` R ) $.
    ldual0vs.d $e |- D = ( LDual ` W ) $.
    ldual0vs.t $e |- .x. = ( .s ` D ) $.
    ldual0vs.o $e |- O = ( 0g ` D ) $.
    ldual0vs.w $e |- ( ph -> W e. LMod ) $.
    ldual0vs.g $e |- ( ph -> G e. F ) $.
    $( Scalar zero times a functional is the zero functional.  (Contributed by
       NM, 17-Feb-2015.) $)
    ldual0vs $p |- ( ph -> ( .0. .x. G ) = O ) $=
      ( cfv co eqid csca c0g ldual0 oveq1d wcel cbs wceq lduallmod ldualelvbase
      clmod lmod0vs syl2anc eqtr3d ) ABUARZUBRZFDSZIFDSGAUOIFDABCUNUOHIKLMUNTZU
      OTZPUCUDABUJUEFBUFRZUEUPGUGABHMPUHABEFUSHUJJMUSTZPQUIDUNUOUSBFGUTUQNUROUK
      ULUM $.
  $}

  ${
    lkr0f2.v $e |- V = ( Base ` W ) $.
    lkr0f2.f $e |- F = ( LFnl ` W ) $.
    lkr0f2.k $e |- K = ( LKer ` W ) $.
    lkr0f2.d $e |- D = ( LDual ` W ) $.
    lkr0f2.o $e |- .0. = ( 0g ` D ) $.
    lkr0f2.w $e |- ( ph -> W e. LMod ) $.
    lkr0f2.g $e |- ( ph -> G e. F ) $.
    $( The kernel of the zero functional is the set of all vectors.
       (Contributed by NM, 4-Feb-2015.) $)
    lkr0f2 $p |- ( ph -> ( ( K ` G ) = V <-> G = .0. ) ) $=
      ( cfv wceq csca wcel eqid c0g csn cxp clmod syl2anc ldual0v eqeq2d bitr4d
      wb lkr0f ) ADEPFQZDFGRPZUAPZUBUCZQZDHQAGUDSDCSUKUOUINOULCDEFGUMULTZUMTZIJ
      KUJUEAHUNDABULHFGUMIUPUQLMNUFUGUH $.
  $}

  ${
    lduallkr3.h $e |- H = ( LSHyp ` W ) $.
    lduallkr3.f $e |- F = ( LFnl ` W ) $.
    lduallkr3.k $e |- K = ( LKer ` W ) $.
    lduallkr3.d $e |- D = ( LDual ` W ) $.
    lduallkr3.o $e |- .0. = ( 0g ` D ) $.
    lduallkr3.w $e |- ( ph -> W e. LVec ) $.
    lduallkr3.g $e |- ( ph -> G e. F ) $.
    $( The kernels of nonzero functionals are hyperplanes.  (Contributed by NM,
       22-Feb-2015.) $)
    lduallkr3 $p |- ( ph -> ( ( K ` G ) e. H <-> G =/= .0. ) ) $=
      ( cfv wcel cbs wne eqid csca c0g csn cxp lkrshp3 clvec clmod lveclmod syl
      ldual0v neeq2d bitr4d ) ADFPEQDGRPZGUAPZUBPZUCUDZSDHSAUNCDEFUMGUOUMTZUNTZ
      UOTZIJKNOUEAHUPDABUNHUMGUOUQURUSLMAGUFQGUGQNGUHUIUJUKUL $.
  $}

  ${
    lkrpss.f $e |- F = ( LFnl ` W ) $.
    lkrpss.k $e |- K = ( LKer ` W ) $.
    lkrpss.d $e |- D = ( LDual ` W ) $.
    lkrpss.o $e |- .0. = ( 0g ` D ) $.
    lkrpss.w $e |- ( ph -> W e. LVec ) $.
    lkrpss.g $e |- ( ph -> G e. F ) $.
    lkrpss.h $e |- ( ph -> H e. F ) $.
    $( Proper subset relation between kernels.  (Contributed by NM,
       16-Feb-2015.)  (New usage is discouraged.) $)
    lkrpssN $p |- ( ph -> ( ( K ` G ) C. ( K ` H )
     <-> ( G =/= .0. /\ H = .0. ) ) ) $=
      ( cfv wne wceq wa simpr wpss cbs wss df-pss eqid clvec clmod lveclmod syl
      wcel lkrssv adantr psssstrd pssned sylan2br clsh simplr ad3antrrr simpllr
      wn ad2antrr eqsstr3d eqssd wb lkrshp4 necon1bbid mpbird pm2.21dd lkrshpor
      wo mpjaodan lshpcmp mpbid necon3ad impr jca simprr eqcomd sseqtrd neeqtrd
      ex simprl impbida syl5bb lkr0f2 necon3bid anbi12d bitrd ) ADFPZEFPZUAZWIG
      UBPZQZWJWLRZSZDHQZEHRZSWKWIWJUCZWIWJQZSZAWOWIWJUDZAWTWOAWTSZWMWNWTAWKWMXA
      AWKSZWIWLXCWIWJWLAWKTAWJWLUCZWKACEFWLGWLUEZIJAGUFUJZGUGUJMGUHUIZOUKZULUMU
      NUOXBWJGUPPZUJZUTZWNAWRWSXKAWRSZXJWIWJXLXJWIWJRZXLXJSZWRXMAWRXJUQXNWIWJXI
      GXIUEZAXFWRXJMVAXNWIXIUJZXPWIWLRZXNXPTXNXQSZXJXPXLXJXQUQXRXKWNXRWJWLAXDWR
      XJXQXHURXRWLWIWJXNXQTAWRXJXQUSVBVCXRXJWJWLAWJWLQXJVDWRXJXQACEXIFWLGXEXOIJ
      MOVEZURVFVGVHAXPXQVJWRXJACDXIFWLGXEXOIJMNVIVAVKXLXJTVLVMWAVNVOAXKWNVDWTAX
      JWJWLXSVFULVMVPAWOSZWRWSXTWIWLWJAWIWLUCWOACDFWLGXEIJXGNUKULXTWJWLAWMWNVQV
      RZVSXTWIWLWJAWMWNWBYAVTVPWCWDAWMWPWNWQAWIWLDHABCDFWLGHXEIJKLXGNWEWFABCEFW
      LGHXEIJKLXGOWEWGWH $.
  $}

  ${
    $d v G $.  $d v H $.  $d v K $.  $d v .+ $.  $d v ph $.
    lkrin.f $e |- F = ( LFnl ` W ) $.
    lkrin.k $e |- K = ( LKer ` W ) $.
    lkrin.d $e |- D = ( LDual ` W ) $.
    lkrin.p $e |- .+ = ( +g ` D ) $.
    lkrin.w $e |- ( ph -> W e. LMod ) $.
    lkrin.e $e |- ( ph -> G e. F ) $.
    lkrin.g $e |- ( ph -> H e. F ) $.
    $( Intersection of the kernels of 2 functionals is included in the kernel
       of their sum.  (Contributed by NM, 7-Jan-2015.) $)
    lkrin $p |- ( ph ->
             ( ( K ` G ) i^i ( K ` H ) ) C_ ( K ` ( G .+ H ) ) ) $=
      ( cfv wcel clmod adantr eqid vv cin co cv wa elin cbs csca c0g wceq lkrcl
      simprl syl3anc cplusg ldualvaddval lkrf0 simprr oveq12d cgrp crg lmodring
      syl ringgrp grpidcl grplid syl2anc 3eqtrd wb ldualvaddcl mpbir2and syl5bi
      ellkr ex ssrdv ) AUAEGPZFGPZUBZEFCUCZGPZUAUDZVQQVTVOQZVTVPQZUEZAVTVSQZVTV
      OVPUFAWCWDAWCUEZWDVTHUGPZQZVTVRPZHUHPZUIPZUJZWEHRQZEDQZWAWGAWLWCMSZAWMWCN
      SZAWAWBULZDEGWFHVTRWFTZIJUKUMZWEWHVTEPZVTFPZWIUNPZUCWJWJXAUCZWJWEBXACWIDE
      FWFHVTWQWITZXATZIKLWNWOAFDQZWCOSZWRUOWEWSWJWTWJXAWEWLWMWAWSWJUJWNWOWPWIDE
      GHVTRWJXCWJTZIJUPUMWEWLXEWBWTWJUJWNXFAWAWBUQWIDFGHVTRWJXCXGIJUPUMURAXBWJU
      JZWCAWIUSQZWJWIUGPZQZXHAWIUTQZXIAWLXLMWIHXCVAVBWIVCVBZAXIXKXMXJWIWJXJTZXG
      VDVBXJXAWIWJWJXNXDXGVEVFSVGWEWLVRDQZWDWGWKUEVHWNAXOWCABCDEFHIKLMNOVISWIDV
      RGWFHVTRWJWQXCXGIJVLVFVJVMVKVN $.
  $}

  ${
    $d r F $.  $d r G $.  $d r H $.  $d r K $.  $d r R $.  $d r S $.  $d r W $.
    $d r ph $.
    eqlkr4.s $e |- S = ( Scalar ` W ) $.
    eqlkr4.r $e |- R = ( Base ` S ) $.
    eqlkr4.f $e |- F = ( LFnl ` W ) $.
    eqlkr4.k $e |- K = ( LKer ` W ) $.
    eqlkr4.d $e |- D = ( LDual ` W ) $.
    eqlkr4.t $e |- .x. = ( .s ` D ) $.
    eqlkr4.w $e |- ( ph -> W e. LVec ) $.
    eqlkr4.g $e |- ( ph -> G e. F ) $.
    eqlkr4.h $e |- ( ph -> H e. F ) $.
    eqlkr4.e $e |- ( ph -> ( K ` G ) = ( K ` H ) ) $.
    $( Two functionals with the same kernel are the same up to a constant.
       (Contributed by NM, 4-Feb-2015.) $)
    eqlkr4 $p |- ( ph -> E. r e. R H = ( r .x. G ) ) $=
      ( cv wceq wrex cbs cfv csn cxp cmulr cof clvec wcel eqid eqlkr2 syl121anc
      co wa adantr simpr ldualvs eqeq2d rexbidva mpbird ) AHKUBZGEUPZUCZKCUDHGJ
      UEUFZVDUGUHDUIUFZUJUPZUCZKCUDZAJUKULZGFULZHFULGIUFHIUFUCVKRSTUADVHFGHCIVG
      JKLMVHUMZVGUMZNOUNUOAVFVJKCAVDCULZUQZVEVIHVQBDEVHFGCVGJVDUKNVOLMVNPQAVLVP
      RURAVPUSAVMVPSURUTVAVBVC $.
  $}

  ${
    $d g k D $.  $d k F $.  $d g k G $.  $d k L $.  $d g k N $.  $d k W $.
    $d g k ph $.
    ldual1dim.f $e |- F = ( LFnl ` W ) $.
    ldual1dim.l $e |- L = ( LKer ` W ) $.
    ldual1dim.d $e |- D = ( LDual ` W ) $.
    ldual1dim.n $e |- N = ( LSpan ` D ) $.
    ldual1dim.w $e |- ( ph -> W e. LVec ) $.
    ldual1dim.g $e |- ( ph -> G e. F ) $.
    $( Equivalent expressions for a 1-dim subspace (ray) of functionals.
       (Contributed by NM, 24-Oct-2014.) $)
    ldual1dim $p |- ( ph -> ( N ` { G } )
        = { g e. F | ( L ` G ) C_ ( L ` g ) } ) $=
      ( vk cfv cbs wcel wa eqid cv cvsca co wceq csca cab csn cxp cmulr cof wss
      clvec ldualsbase eleq2d anbi1d adantr simpr ldualvs eqeq2d pm5.32da bitrd
      wrex crab rexbidv2 abbidv clmod lveclmod lduallmod syl ldualelvbase lspsn
      syl2anc lfl1dim 3eqtr4d ) ACUAZOUAZEBUBPZUCZUDZOBUEPZQPZVBZCUFZVOEHQPZVPU
      GUHHUEPZUIPZUJUCZUDZOWEQPZVBZCUFEUGGPZEFPVOFPUKCDVCAWBWJCAVSWHOWAWIAVPWAR
      ZVSSVPWIRZVSSWMWHSAWLWMVSAWAWIVPABVTWEWAWIULHWETZWITZKVTTZWATZMUMUNUOAWMV
      SWHAWMSZVRWGVOWRBWEVQWFDEWIWDHVPULIWDTZWNWOWFTZKVQTZAHULRZWMMUPAWMUQAEDRW
      MNUPURUSUTVAVDVEABVFRZEBQPZRWKWCUDAXBXCMXBBHKHVGVHVIABDEXDHULIKXDTZMNVJCV
      QOVTWAGXDBEWPWQXEXALVKVLAWEWFCODEWIFWDHWSWNIJWOWTMNVMVN $.
  $}

  ${
    ldualkrsc.r $e |- R = ( Scalar ` W ) $.
    ldualkrsc.k $e |- K = ( Base ` R ) $.
    ldualkrsc.o $e |- .0. = ( 0g ` R ) $.
    ldualkrsc.f $e |- F = ( LFnl ` W ) $.
    ldualkrsc.l $e |- L = ( LKer ` W ) $.
    ldualkrsc.d $e |- D = ( LDual ` W ) $.
    ldualkrsc.s $e |- .x. = ( .s ` D ) $.
    ldualkrsc.w $e |- ( ph -> W e. LVec ) $.
    ldualkrsc.g $e |- ( ph -> G e. F ) $.
    ldualkrsc.x $e |- ( ph -> X e. K ) $.
    ldualkrsc.e $e |- ( ph -> X =/= .0. ) $.
    $( The kernel of a nonzero scalar product of a functional equals the kernel
       of the functional.  (Contributed by NM, 28-Dec-2014.) $)
    ldualkrsc $p |- ( ph -> ( L ` ( X .x. G ) ) = ( L ` G ) ) $=
      ( co cfv cbs csn cxp cmulr cof clvec eqid ldualvs fveq2d lkrsc eqtrd ) AJ
      FDUCZHUDFIUEUDZJUFUGCUHUDZUIUCZHUDFHUDAUPUSHABCDUREFGUQIJUJOUQUKZLMURUKZQ
      RSUATULUMACJUREFGHUQIKUTLMVAOPSTUANUBUNUO $.
  $}

  ${
    lkrss.r $e |- R = ( Scalar ` W ) $.
    lkrss.k $e |- K = ( Base ` R ) $.
    lkrss.f $e |- F = ( LFnl ` W ) $.
    lkrss.l $e |- L = ( LKer ` W ) $.
    lkrss.d $e |- D = ( LDual ` W ) $.
    lkrss.s $e |- .x. = ( .s ` D ) $.
    lkrss.w $e |- ( ph -> W e. LVec ) $.
    lkrss.g $e |- ( ph -> G e. F ) $.
    lkrss.x $e |- ( ph -> X e. K ) $.
    $( The kernel of a scalar product of a functional includes the kernel of
       the functional.  (Contributed by NM, 27-Jan-2015.) $)
    lkrss $p |- ( ph -> ( L ` G ) C_ ( L ` ( X .x. G ) ) ) $=
      ( cfv cbs csn cxp cmulr cof co eqid lkrscss clvec ldualvs fveq2d sseqtr4d
      ) AFHTFIUATZJUBUCCUDTZUEUFZHTJFDUFZHTACJUNEFGHUMIUMUGZKLUNUGZMNQRSUHAUPUO
      HABCDUNEFGUMIJUIMUQKLUROPQSRUJUKUL $.
  $}

  ${
    $d r F $.  $d r G $.  $d r H $.  $d r K $.  $d r R $.  $d r S $.  $d r W $.
    $d r ph $.  $d r .x. $.
    lkrss2.s $e |- S = ( Scalar ` W ) $.
    lkrss2.r $e |- R = ( Base ` S ) $.
    lkrss2.f $e |- F = ( LFnl ` W ) $.
    lkrss2.k $e |- K = ( LKer ` W ) $.
    lkrss2.d $e |- D = ( LDual ` W ) $.
    lkrss2.t $e |- .x. = ( .s ` D ) $.
    lkrss2.w $e |- ( ph -> W e. LVec ) $.
    lkrss2.g $e |- ( ph -> G e. F ) $.
    lkrss2.h $e |- ( ph -> H e. F ) $.
    $( Two functionals with kernels in a subset relationship.  (Contributed by
       NM, 17-Feb-2015.)  (New usage is discouraged.) $)
    lkrss2N $p |- ( ph
         -> ( ( K ` G ) C_ ( K ` H ) <-> E. r e. R H = ( r .x. G ) ) ) $=
      ( cfv wss cv co wceq wrex wpss wo sspss c0g eqid lkrpssN wcel clmod clvec
      wne lveclmod syl lmod0cl adantr simpr ldual0vs eqtr4d oveq1 eqeq2d rspcev
      wa syl2anc ex adantld sylbid imp eqlkr4 jaodan sylan2b lkrss fveq2 sseq2d
      wi biimprcd syl6 rexlimdv impbida ) AGIUAZHIUAZUBZHKUCZGEUDZUEZKCUFZWFAWD
      WEUGZWDWEUEZUHWJWDWEUIAWKWJWLAWKWJAWKGBUJUAZUPZHWMUEZVGWJABFGHIJWMNOPWMUK
      ZRSTULAWOWJWNAWOWJAWOVGZDUJUAZCUMZHWRGEUDZUEZWJAWSWOAJUNUMZWSAJUOUMZXBRJU
      QURZDCJWRLMWRUKZUSURUTWQHWMWTAWOVAAWTWMUEWOABDEFGWMJWRNLXEPQWPXDSVBUTVCWI
      XAKWRCWGWRUEWHWTHWGWRGEVDVEVFVHVIVJVKVLAWLVGBCDEFGHIJKLMNOPQAXCWLRUTAGFUM
      ZWLSUTAHFUMWLTUTAWLVAVMVNVOAWJWFAWIWFKCAWGCUMZWDWHIUAZUBZWIWFVSAXGXIAXGVG
      BDEFGCIJWGLMNOPQAXCXGRUTAXFXGSUTAXGVAVPVIWIWFXIWIWEXHWDHWHIVQVRVTWAWBVLWC
      $.
  $}

  ${
    lkreq.s $e |- S = ( Scalar ` W ) $.
    lkreq.r $e |- R = ( Base ` S ) $.
    lkreq.o $e |- .0. = ( 0g ` S ) $.
    lkreq.f $e |- F = ( LFnl ` W ) $.
    lkreq.k $e |- K = ( LKer ` W ) $.
    lkreq.d $e |- D = ( LDual ` W ) $.
    lkreq.t $e |- .x. = ( .s ` D ) $.
    lkreq.w $e |- ( ph -> W e. LVec ) $.
    lkreq.a $e |- ( ph -> A e. ( R \ { .0. } ) ) $.
    lkreq.h $e |- ( ph -> H e. F ) $.
    lkreq.g $e |- ( ph -> G = ( A .x. H ) ) $.
    $( Proportional functionals have equal kernels.  (Contributed by NM,
       28-Mar-2015.)  (New usage is discouraged.) $)
    lkreqN $p |- ( ph -> ( K ` G ) = ( K ` H ) ) $=
      ( cfv wceq c0g wne wa wn wo co eqeq1d csca cbs eqid lduallvec csn eldifad
      clvec ldualsbase eleqtrrd ldualelvbase lvecvs0or wcel lveclmod syl ldual0
      clmod eqeq2d cdif eldifsni a1d necon4d sylbid idd jaod syl6ibr con3d orrd
      nne ianor sylibr wss wpss df-pss ldualvscl eqeltrd lkrpssN syl5rbbr lkrss
      fveq2d sseqtr4d biantrurd bitr4d necon2bbid mpbird eqcomd ) AIJUDZHJUDZAW
      RWSUEICUFUDZUGZHWTUEZUHZUIZAXAUIZXBUIZUJXDAXEXFAXBXEAXBIWTUEZXEAXBBIFUKZW
      TUEZXGAHXHWTUCULAXIBCUMUDZUFUDZUEZXGUJXGABFXJXJUNUDZXKCUNUDZCIWTXNUOZSXJU
      OZXMUOZXKUOZWTUOZACKRTUPABDXMABDLUQZUAURZACXJEXMDUSKMNRXPXQTUTVAACGIXNKUS
      PRXOTUBVBVCAXLXGXGAXLBLUEXGAXKLBACEXJXKKLMORXPXRAKUSVDKVHVDTKVEVFZVGVIAIW
      TBLABLUGZXAABDXTVJVDYCUABDLVKVFVLVMVNAXGVOVPVNVNIWTVTVQVRVSXAXBWAWBAXCWRW
      SAXCWRWSWCZWRWSUGZUHZYEYFWRWSWDAXCWRWSWEACGIHJKWTPQRXSTUBAHXHGUCACEFGIDKB
      PMNRSYBYAUBWFWGWHWIAYDYEAWRXHJUDWSACEFGIDJKBMNPQRSTUBYAWJAHXHJUCWKWLWMWNW
      OWPWQ $.
  $}

  ${
    $d k D $.  $d k G $.  $d k H $.  $d k L $.  $d k N $.  $d k W $.
    $d k ph $.
    lkrlspeq.f $e |- F = ( LFnl ` W ) $.
    lkrlspeq.l $e |- L = ( LKer ` W ) $.
    lkrlspeq.d $e |- D = ( LDual ` W ) $.
    lkrlspeq.o $e |- .0. = ( 0g ` D ) $.
    lkrlspeq.j $e |- N = ( LSpan ` D ) $.
    lkrlspeq.w $e |- ( ph -> W e. LVec ) $.
    lkrlspeq.h $e |- ( ph -> H e. F ) $.
    lkrlspeq.g $e |- ( ph -> G e. ( ( N ` { H } ) \ { .0. } ) ) $.
    $( Condition for colinear functionals to have equal kernels.  (Contributed
       by NM, 20-Mar-2015.)  (New usage is discouraged.) $)
    lkrlspeqN $p |- ( ph -> ( L ` G ) = ( L ` H ) ) $=
      ( cfv wceq wcel vk cv cvsca co csca cbs wrex eldifad clmod clvec lveclmod
      csn wb syl lduallmod eqid ldualelvbase lspsnel syl2anc ldualsbase rexeqdv
      mpbid w3a c0g 3ad2ant1 wne simp2 simp3 eldifsni eqnetrrd wo ldual0 eqeq2d
      cdif orc syl6bir lduallvec eleqtrrd lvecvs0or sylibrd necon3d mpd eldifsn
      sylanbrc lkreqN rexlimdv3a ) ADUAUBZEBUCRZUDZSZUAHUERZUFRZUGZDFREFRSZAWJU
      ABUERZUFRZUGZWMADEULGRZTZWQADWRIULZQUHABUITEBUFRZTZWSWQUMABHLAHUJTZHUITOH
      UKUNZUOABCEXAHUJJLXAUPZOPUQZWHDUAWOWPGXABEWOUPZWPUPZXEWHUPZNURUSVBAWJUAWP
      WLABWOWKWPWLUJHWKUPZWLUPZLXGXHOUTZVAVBAWJWNUAWLAWGWLTZWJVCZWGBWLWKWHCDEFH
      WKVDRZXJXKXOUPZJKLXIAXMXCWJOVEXNXMWGXOVFZWGWLXOULVNTAXMWJVGZXNWIIVFXQXNDW
      IIAXMWJVHZAXMDIVFZWJADWRWTVNTXTQDWRIVIUNVEVJXNWGXOWIIXNWGXOSZWGWOVDRZSZEI
      SZVKZWIISXNYAYCYEXNYBXOWGAXMYBXOSWJABWKWOYBHXOXJXPLXGYBUPZXDVLVEVMYCYDVOV
      PXNWGWHWOWPYBXABEIXEXIXGXHYFMAXMBUJTWJABHLOVQVEXNWGWLWPXRAXMWPWLSWJXLVEVR
      AXMXBWJXFVEVSVTWAWBWGWLXOWCWDAXMECTWJPVEXSWEWFWB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ortholattices and orthomodular lattices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c OP $.
  $c cm $.
  $c OL $.
  $c OML $.

  $( Extend class notation with orthoposets. $)
  cops $a class OP $.

  $( Extend class notation with the commutes relation. $)
  ccmtN $a class cm $.

  $( Extend class notation with orthlattices. $)
  col $a class OL $.

  $( Extend class notation with orthomodular lattices. $)
  coml $a class OML $.

  ${
    $d a b p o $.
    $( Define the class of orthoposets, which are bounded posets with an
       orthocomplementation operation.  Note that ` ( Base ` p ) e. dom ( lub
       ` p ) ` means there is an upper bound ` 1. ` , and similarly for the
       ` 0. ` element.  (Contributed by NM, 20-Oct-2011.)  (Revised by NM,
       13-Sep-2018.) $)
    df-oposet $a |- OP = { p e. Poset |
       ( ( ( Base ` p ) e. dom ( lub ` p )
       /\ ( Base ` p ) e. dom ( glb ` p ) )
        /\ E. o
           ( o = ( oc ` p )
          /\ A. a e. ( Base ` p ) A. b e. ( Base ` p )
               ( ( ( o ` a ) e. ( Base ` p ) /\ ( o ` ( o ` a ) ) = a
                /\ ( a ( le ` p ) b -> ( o ` b ) ( le ` p ) ( o ` a ) ) )
                /\ ( a ( join ` p ) ( o ` a ) ) = ( 1. ` p )
                   /\ ( a ( meet ` p ) ( o ` a ) ) = ( 0. ` p ) )
          ) ) } $.
  $}

  ${
    $d p x y $.
    $( Define the commutes relation for orthoposets.  Definition of commutes in
       [Kalmbach] p. 20.  (Contributed by NM, 6-Nov-2011.) $)
    df-cmtN $a |- cm = ( p e. _V |-> { <. x , y >. | ( x e. ( Base ` p )
             /\ y e. ( Base ` p )
             /\ x = ( ( x ( meet ` p ) y )
                ( join ` p ) ( x ( meet ` p ) ( ( oc ` p ) ` y ) ) ) ) } ) $.
  $}

  $( Define the class of ortholattices.  Definition from [Kalmbach] p. 16.
     (Contributed by NM, 18-Sep-2011.) $)
  df-ol $a |- OL = ( Lat i^i OP ) $.

  ${
    $d a b l $.
    $( Define the class of orthomodular lattices.  Definition from [Kalmbach]
       p. 16.  (Contributed by NM, 18-Sep-2011.) $)
    df-oml $a |- OML = { l e. OL | A. a e. ( Base ` l ) A. b e. ( Base ` l )
       ( a ( le ` l ) b -> b = ( a ( join ` l ) ( b ( meet ` l )
          ( ( oc ` l ) ` a ) ) ) ) } $.
  $}

  ${
    $d n p .\/ $.  $d n p .<_ $.  $d n p ./\ $.  $d n p .0. $.  $d n p x y B $.
    $d n p x y ._|_ $.  $d n p .1. $.  $d n p x y K $.  $d p U $.  $d p G $.
    isopos.b $e |- B = ( Base ` K ) $.
    isopos.e $e |- U = ( lub ` K ) $.
    isopos.g $e |- G = ( glb ` K ) $.
    isopos.l $e |- .<_ = ( le ` K ) $.
    isopos.o $e |- ._|_ = ( oc ` K ) $.
    isopos.j $e |- .\/ = ( join ` K ) $.
    isopos.m $e |- ./\ = ( meet ` K ) $.
    isopos.f $e |- .0. = ( 0. ` K ) $.
    isopos.u $e |- .1. = ( 1. ` K ) $.
    $( The predicate "is an orthoposet."  (Contributed by NM, 20-Oct-2011.)
       (Revised by NM, 14-Sep-2018.) $)
    isopos $p |- ( K e. OP <-> ( ( K e. Poset /\ B e. dom U /\ B e. dom G )
            /\ A. x e. B A. y e. B ( ( ( ._|_ ` x ) e. B
                 /\ ( ._|_ ` ( ._|_ ` x ) ) = x
                 /\ ( x .<_ y -> ( ._|_ ` y ) .<_ ( ._|_ ` x ) ) )
       /\ ( x .\/ ( ._|_ ` x ) ) = .1. /\ ( x ./\ ( ._|_ ` x ) ) = .0. ) ) ) $=
      ( vn vp cops wcel cpo cdm wa cv wceq cfv wbr wi w3a co wral wex club cglb
      cbs coc cple cjn cp1 cmee cp0 fveq2 syl6eqr eleq12d anbi12d eqeq2d eleq2d
      dmeqd breqd imbi12d 3anbi13d eqeq12d 3anbi123d raleqbidv exbidv df-oposet
      oveqd elrab2 anass 3anass bicomi cvv fvex eqeltri fveq1 eleq1d id fveq12d
      eqeq1d breq12d imbi2d oveq2d 2ralbidv ceqsexv anbi12i 3bitr2i ) HUDUEHUFU
      EZCDUGZUEZCFUGZUEZUHZUBUIZKUJZAUIZXHUKZCUEZXKXHUKZXJUJZXJBUIZIULZXOXHUKZX
      KIULZUMZUNZXJXKGUOZEUJZXJXKJUOZLUJZUNZBCUPZACUPZUHZUBUQZUHZUHXBXGUHZYIUHX
      BXDXFUNZXJKUKZCUEZYMKUKZXJUJZXPXOKUKZYMIULZUMZUNZXJYMGUOZEUJZXJYMJUOZLUJZ
      UNZBCUPACUPZUHUCUIZUTUKZUUGURUKZUGZUEZUUHUUGUSUKZUGZUEZUHZXHUUGVAUKZUJZXK
      UUHUEZXNXJXOUUGVBUKZULZXQXKUUSULZUMZUNZXJXKUUGVCUKZUOZUUGVDUKZUJZXJXKUUGV
      EUKZUOZUUGVFUKZUJZUNZBUUHUPZAUUHUPZUHZUBUQZUHYJUCHUFUDUUGHUJZUUOXGUVPYIUV
      QUUKXDUUNXFUVQUUHCUUJXCUVQUUHHUTUKCUUGHUTVGMVHZUVQUUIDUVQUUIHURUKDUUGHURV
      GNVHVMVIUVQUUHCUUMXEUVRUVQUULFUVQUULHUSUKFUUGHUSVGOVHVMVIVJUVQUVOYHUBUVQU
      UQXIUVNYGUVQUUPKXHUVQUUPHVAUKZKUUGHVAVGQVHVKUVQUVMYFAUUHCUVRUVQUVLYEBUUHC
      UVRUVQUVCXTUVGYBUVKYDUVQUURXLUVBXSXNUVQUUHCXKUVRVLUVQUUTXPUVAXRUVQUUSIXJX
      OUVQUUSHVBUKIUUGHVBVGPVHZVNUVQUUSIXQXKUVTVNVOVPUVQUVEYAUVFEUVQUVDGXJXKUVQ
      UVDHVCUKGUUGHVCVGRVHWBUVQUVFHVDUKEUUGHVDVGUAVHVQUVQUVIYCUVJLUVQUVHJXJXKUV
      QUVHHVEUKJUUGHVEVGSVHWBUVQUVJHVFUKLUUGHVFVGTVHVQVRVSVSVJVTVJUBUCABWAWCXBX
      GYIWDYKYLYIUUFYLYKXBXDXFWEWFYGUUFUBKKUVSWGQHVAWHWIXIYEUUEABCCXIXTYTYBUUBY
      DUUDXIXLYNXNYPXSYSXIXKYMCXJXHKWJZWKXIXMYOXJXIXKYMXHKXIWLUWAWMWNXIXRYRXPXI
      XQYQXKYMIXOXHKWJUWAWOWPVRXIYAUUAEXIXKYMXJGUWAWQWNXIYCUUCLXIXKYMXJJUWAWQWN
      VRWRWSWTXA $.
  $}

  ${
    $d x y K $.
    $( Every orthoposet is a poset.  (Contributed by NM, 12-Oct-2011.) $)
    opposet $p |- ( K e. OP -> K e. Poset ) $=
      ( vx vy cops wcel cpo cbs cfv club cdm cglb w3a cv coc wceq cple wbr wral
      co eqid wi cjn cp1 cmee cp0 wa isopos simpl1 sylbi ) ADEAFEZAGHZAIHZJEZUK
      AKHZJEZLBMZANHZHZUKEURUQHUPOUPCMZAPHZQUSUQHURUTQUALUPURAUBHZSAUCHZOUPURAU
      DHZSAUEHZOLCUKRBUKRZUFUJBCUKULVBUNVAAUTVCUQVDUKTULTUNTUTTUQTVATVCTVDTVBTU
      GUJUMUOVEUHUI $.
  $}

  ${
    $d x y .\/ $.  $d x y .<_ $.  $d x y B $.  $d x y K $.  $d x y X $.
    $d x y ./\ $.  $d x y ._|_ $.  $d x y .0. $.  $d x y .1. $.  $d y Y $.
    oposlem.b $e |- B = ( Base ` K ) $.
    oposlem.l $e |- .<_ = ( le ` K ) $.
    oposlem.o $e |- ._|_ = ( oc ` K ) $.
    oposlem.j $e |- .\/ = ( join ` K ) $.
    oposlem.m $e |- ./\ = ( meet ` K ) $.
    oposlem.f $e |- .0. = ( 0. ` K ) $.
    oposlem.u $e |- .1. = ( 1. ` K ) $.
    $( Lemma for orthoposet properties.  (Contributed by NM, 20-Oct-2011.) $)
    oposlem $p |- ( ( K e. OP /\ X e. B /\ Y e. B )
                -> ( ( ( ._|_ ` X ) e. B /\ ( ._|_ ` ( ._|_ ` X ) ) = X
               /\ ( X .<_ Y -> ( ._|_ ` Y ) .<_ ( ._|_ ` X ) ) )
         /\ ( X .\/ ( ._|_ ` X ) ) = .1. /\ ( X ./\ ( ._|_ ` X ) ) = .0. ) ) $=
      ( wcel cfv wceq vx vy cops wbr wi w3a co cv wral cpo club cdm cglb isopos
      wa simprbi fveq2 eleq1d fveq2d id eqeq12d breq1 imbi12d 3anbi123d oveq12d
      eqid breq2d eqeq1d breq2 breq1d 3anbi3d 3anbi1d rspc2v mpan9 3impb ) DUCR
      ZHARZIARZHGSZARZVSGSZHTZHIEUDZIGSZVSEUDZUEZUFZHVSCUGZBTZHVSFUGZJTZUFZVPUA
      UHZGSZARZWNGSZWMTZWMUBUHZEUDZWRGSZWNEUDZUEZUFZWMWNCUGZBTZWMWNFUGZJTZUFZUB
      AUIUAAUIZVQVRUOWLVPDUJRADUKSZULRADUMSZULRUFXIUAUBAXJBXKCDEFGJKXJVFXKVFLMN
      OPQUNUPXHWLVTWBHWREUDZWTVSEUDZUEZUFZWIWKUFUAUBHIAAWMHTZXCXOXEWIXGWKXPWOVT
      WQWBXBXNXPWNVSAWMHGUQZURXPWPWAWMHXPWNVSGXQUSXPUTZVAXPWSXLXAXMWMHWREVBXPWN
      VSWTEXQVGVCVDXPXDWHBXPWMHWNVSCXRXQVEVHXPXFWJJXPWMHWNVSFXRXQVEVHVDWRITZXOW
      GWIWKXSXNWFVTWBXSXLWCXMWEWRIHEVIXSWTWDVSEWRIGUQVJVCVKVLVMVNVO $.
  $}

  ${
    $d x y B $.  $d x y K $.
    op01dm.b $e |- B = ( Base ` K ) $.
    op01dm.u $e |- U = ( lub ` K ) $.
    op01dm.g $e |- G = ( glb ` K ) $.
    $( Conditions necessary for zero and unit elements to exist.  (Contributed
       by NM, 14-Sep-2018.) $)
    op01dm $p |- ( K e. OP -> ( B e. dom U /\ B e. dom G ) ) $=
      ( vx vy wcel cdm w3a cv cfv wceq wbr co wral wa eqid cops cpo coc cple wi
      cjn cp1 cmee cp0 isopos simpl 3adantl1 sylbi ) DUAJDUBJZABKJZACKJZLHMZDUC
      NZNZAJUSURNUQOUQIMZDUDNZPUTURNUSVAPUELUQUSDUFNZQDUGNZOUQUSDUHNZQDUINZOLIA
      RHARZSUOUPSZHIABVCCVBDVAVDURVEEFGVATURTVBTVDTVETVCTUJUOUPVFVGUNVGVFUKULUM
      $.
  $}

  ${
    op0cl.b $e |- B = ( Base ` K ) $.
    op0cl.z $e |- .0. = ( 0. ` K ) $.
    $( An orthoposet has a zero element.  ( ~ h0elch analog.)  (Contributed by
       NM, 12-Oct-2011.) $)
    op0cl $p |- ( K e. OP -> .0. e. B ) $=
      ( cops wcel cglb cfv eqid p0val id club cdm op01dm simprd glbcl eqeltrd )
      BFGZCABHIZIAATBFCDTJZEKSAATBFDUASLSABMIZNGATNGAUBTBDUBJUAOPQR $.
  $}

  ${
    op1cl.b $e |- B = ( Base ` K ) $.
    op1cl.u $e |- .1. = ( 1. ` K ) $.
    $( An orthoposet has a unit element.  ( ~ helch analog.)  (Contributed by
       NM, 22-Oct-2011.) $)
    op1cl $p |- ( K e. OP -> .1. e. B ) $=
      ( cops wcel club cfv eqid p1val id cdm cglb op01dm simpld lubcl eqeltrd )
      CFGZBACHIZIAATBCFDTJZEKSAATCFDUASLSATMGACNIZMGATUBCDUAUBJOPQR $.
  $}

  ${
    op0le.b $e |- B = ( Base ` K ) $.
    op0le.l $e |- .<_ = ( le ` K ) $.
    op0le.z $e |- .0. = ( 0. ` K ) $.
    $( Orthoposet zero is less than or equal to any element.  ( ~ ch0le
       analog.)  (Contributed by NM, 12-Oct-2011.) $)
    op0le $p |- ( ( K e. OP /\ X e. B ) -> .0. .<_ X ) $=
      ( cops wcel wa cglb cfv eqid simpl simpr cdm club op01dm simprd adantr
      p0le ) BIJZDAJZKABLMZBCIDEFUENZGHUCUDOUCUDPUCAUEQJZUDUCABRMZQJUGAUHUEBFUH
      NUFSTUAUB $.

    $( An element less than or equal to zero equals zero.  ( ~ chle0 analog.)
       (Contributed by NM, 21-Oct-2011.) $)
    ople0 $p |- ( ( K e. OP /\ X e. B ) -> ( X .<_ .0. <-> X = .0. ) ) $=
      ( cops wcel wa wbr wceq op0le biantrud cpo wb opposet adantr simpr op0cl
      posasymb syl3anc bitrd ) BIJZDAJZKZDECLZUHEDCLZKZDEMZUGUIUHABCDEFGHNOUGBP
      JZUFEAJZUJUKQUEULUFBRSUEUFTUEUMUFABEFHUASABCDEFGUBUCUD $.

    $( An element not less than another is nonzero.  TODO:  Look for uses of
       ~ necon3bd and ~ op0le to see if this is useful elsewhere.  (Contributed
       by NM, 5-May-2013.) $)
    opnlen0 $p |- ( ( ( K e. OP /\ X e. B /\ Y e. B ) /\ -. X .<_ Y )
        -> X =/= .0. ) $=
      ( cops wcel w3a wbr wn wne wceq op0le 3adant2 breq1 syl5ibrcom necon3bd
      imp ) BJKZDAKZEAKZLZDECMZNDFOUFUGDFUFUGDFPFECMZUCUEUHUDABCEFGHIQRDFECSTUA
      UB $.
  $}

  ${
    $d x y z K $.  $d x z .0. $.
    lub0.u $e |- .1. = ( lub ` K ) $.
    lub0.z $e |- .0. = ( 0. ` K ) $.
    $( The least upper bound of the empty set is the zero element.
       (Contributed by NM, 15-Sep-2013.)  (New usage is discouraged.) $)
    lub0N $p |- ( K e. OP -> ( .1. ` (/) ) = .0. ) $=
      ( vy vx vz cops wcel c0 cfv cv cple wbr wral wi wa eqid ral0 crio biid id
      cbs wss 0ss a1i lubval op0cl wceq a1bi ralbii biantrur bitri adantr breq2
      rspcv syl ople0 sylibd op0le adantlr breq1 biimprcd com23 ralrimdv impbid
      ex syl6 syl5bbr riota5 eqtrd ) BIJZKALFMZGMZBNLZOZFKPZVNHMZVPOZFKPZVOVSVP
      OZQZHBUDLZPZRZGWDUACVMWFGFHWDKABVPIWDSZVPSZDWFUBVMUCKWDUEVMWDUFUGUHVMWFGW
      DCWDBCWGEUIZWFWBHWDPZVMVOWDJZRZVOCUJZWJWEWFWBWCHWDWAWBVTFTUKULVRWEVQFTUMU
      NWLWJWMWLWJVOCVPOZWMWLCWDJZWJWNQVMWOWKWIUOWBWNHCWDVSCVOVPUPUQURWDBVPVOCWG
      WHEUSUTWLWMWBHWDWLVSWDJZWMWBWLWPCVSVPOZWMWBQWLWPWQVMWPWQWKWDBVPVSCWGWHEVA
      VBVHWMWBWQVOCVSVPVCVDVIVEVFVGVJVKVL $.
  $}

  ${
    opltne0.b $e |- B = ( Base ` K ) $.
    opltne0.s $e |- .< = ( lt ` K ) $.
    opltne0.z $e |- .0. = ( 0. ` K ) $.
    $( A lattice element greater than zero is nonzero.  TODO: is this needed?
       (Contributed by NM, 1-Jun-2012.) $)
    opltn0 $p |- ( ( K e. OP /\ X e. B ) -> ( .0. .< X <-> X =/= .0. ) ) $=
      ( cops wcel wa wbr cple cfv wne wb simpl op0cl adantr simpr syl3anc necom
      eqid pltval op0le biantrurd syl5rbb bitrd ) CIJZDAJZKZEDBLZEDCMNZLZEDOZKZ
      DEOZUKUIEAJZUJULUPPUIUJQUIURUJACEFHRSUIUJTIAABCUMEDUMUCZGUDUAUQUOUKUPDEUB
      UKUNUOACUMDEFUSHUEUFUGUH $.
  $}

  ${
    ople1.b $e |- B = ( Base ` K ) $.
    ople1.l $e |- .<_ = ( le ` K ) $.
    ople1.u $e |- .1. = ( 1. ` K ) $.
    $( Any element is less than the orthoposet unit.  ( ~ chss analog.)
       (Contributed by NM, 23-Oct-2011.) $)
    ople1 $p |- ( ( K e. OP /\ X e. B ) -> X .<_ .1. ) $=
      ( cops wcel wa club cfv eqid simpl simpr cdm cglb op01dm simpld adantr
      ple1 ) CIJZEAJZKACLMZBCDIEFUENZGHUCUDOUCUDPUCAUEQJZUDUCUGACRMZQJAUEUHCFUF
      UHNSTUAUB $.

    $( If the orthoposet unit is less than or equal to an element, the element
       equals the unit.  ( ~ chle0 analog.)  (Contributed by NM,
       5-Dec-2011.) $)
    op1le $p |- ( ( K e. OP /\ X e. B ) -> ( .1. .<_ X <-> X = .1. ) ) $=
      ( cops wcel wa wbr wceq ople1 biantrurd cpo wb opposet adantr simpr op1cl
      posasymb syl3anc bitrd ) CIJZEAJZKZBEDLZEBDLZUHKZEBMZUGUIUHABCDEFGHNOUGCP
      JZUFBAJZUJUKQUEULUFCRSUEUFTUEUMUFABCFHUASACDEBFGUBUCUD $.
  $}

  ${
    $d x y z K $.  $d x z .1. $.
    glb0.g $e |- G = ( glb ` K ) $.
    glb0.u $e |- .1. = ( 1. ` K ) $.
    $( The greatest lower bound of the empty set is the unit element.
       (Contributed by NM, 5-Dec-2011.)  (New usage is discouraged.) $)
    glb0N $p |- ( K e. OP -> ( G ` (/) ) = .1. ) $=
      ( vx vy vz cops wcel c0 cfv cv cple wbr wral wi wa eqid ral0 crio biid id
      cbs wss 0ss a1i glbval op1cl wceq a1bi ralbii biantrur bitri adantr breq1
      rspcv syl op1le sylibd ople1 adantlr breq2 biimprcd com23 ralrimdv impbid
      ex syl6 syl5bbr riota5 eqtrd ) CIJZKBLFMZGMZCNLZOZGKPZHMZVOVPOZGKPZVSVNVP
      OZQZHCUDLZPZRZFWDUAAVMWFFGHWDKBCVPIWDSZVPSZDWFUBVMUCKWDUEVMWDUFUGUHVMWFFW
      DAWDACWGEUIZWFWBHWDPZVMVNWDJZRZVNAUJZWJWEWFWBWCHWDWAWBVTGTUKULVRWEVQGTUMU
      NWLWJWMWLWJAVNVPOZWMWLAWDJZWJWNQVMWOWKWIUOWBWNHAWDVSAVNVPUPUQURWDACVPVNWG
      WHEUSUTWLWMWBHWDWLVSWDJZWMWBWLWPVSAVPOZWMWBQWLWPWQVMWPWQWKWDACVPVSWGWHEVA
      VBVHWMWBWQVNAVSVPVCVDVIVEVFVGVJVKVL $.
  $}

  ${
    opoccl.b $e |- B = ( Base ` K ) $.
    opoccl.o $e |- ._|_ = ( oc ` K ) $.
    $( Closure of orthocomplement operation.  ( ~ choccl analog.)  (Contributed
       by NM, 20-Oct-2011.) $)
    opoccl $p |- ( ( K e. OP /\ X e. B ) -> ( ._|_ ` X ) e. B ) $=
      ( cops wcel wa cfv wceq cple wbr wi w3a cjn co cp1 eqid simp1d cmee cp0
      oposlem 3anidm23 ) BGHZDAHZIZDCJZAHZUHCJDKZDDBLJZMUHUHUKMNZUGUIUJULOZDUHB
      PJZQBRJZKZDUHBUAJZQBUBJZKZUEUFUMUPUSOAUOUNBUKUQCDDUREUKSFUNSUQSURSUOSUCUD
      TT $.

    $( Double negative law for orthoposets.  ( ~ ococ analog.)  (Contributed by
       NM, 13-Sep-2011.) $)
    opococ $p |- ( ( K e. OP /\ X e. B ) -> ( ._|_ ` ( ._|_ ` X ) ) = X ) $=
      ( cops wcel wa cfv wceq cple wbr wi w3a cjn co cp1 cmee eqid cp0 3anidm23
      oposlem simp1d simp2d ) BGHZDAHZIZDCJZAHZUICJDKZDDBLJZMUIUIULMNZUHUJUKUMO
      ZDUIBPJZQBRJZKZDUIBSJZQBUAJZKZUFUGUNUQUTOAUPUOBULURCDDUSEULTFUOTURTUSTUPT
      UCUBUDUE $.

    $( Contraposition law for orthoposets.  ( ~ chcon3i analog.)  (Contributed
       by NM, 8-Nov-2011.) $)
    opcon3b $p |- ( ( K e. OP /\ X e. B /\ Y e. B )
                -> ( X = Y <-> ( ._|_ ` Y ) = ( ._|_ ` X ) ) ) $=
      ( cops wcel w3a wceq eqcoms opococ 3adant3 3adant2 eqeq12d syl5ib impbid2
      cfv fveq2 ) BHIZDAIZEAIZJZDEKZECSZDCSZKZUHEDEDCTLUHUGCSZUFCSZKZUDUEUKUGUF
      UGUFCTLUDUIDUJEUAUBUIDKUCABCDFGMNUAUCUJEKUBABCEFGMOPQR $.

    $( Orthocomplement contraposition law.  ( ~ negcon2 analog.)  (Contributed
       by NM, 16-Jan-2012.) $)
    opcon2b $p |- ( ( K e. OP /\ X e. B /\ Y e. B )
       -> ( X = ( ._|_ ` Y ) <-> Y = ( ._|_ ` X ) ) ) $=
      ( cops wcel w3a cfv wceq wb opoccl 3adant2 opcon3b syld3an3 opococ eqeq1d
      bitrd ) BHIZDAIZEAIZJZDECKZLZUECKZDCKZLZEUHLUAUBUCUEAIZUFUIMUAUCUJUBABCEF
      GNOABCDUEFGPQUDUGEUHUAUCUGELUBABCEFGROST $.

    $( Orthocomplement contraposition law.  ( ~ negcon1 analog.)  (Contributed
       by NM, 24-Jan-2012.) $)
    opcon1b $p |- ( ( K e. OP /\ X e. B /\ Y e. B )
       -> ( ( ._|_ ` X ) = Y <-> ( ._|_ ` Y ) = X ) ) $=
      ( cops wcel w3a cfv wceq opcon2b eqcom 3bitr4g bicomd ) BHIDAIEAIJZECKZDL
      ZDCKZELZQDRLETLSUAABCDEFGMRDNTENOP $.
  $}

  ${
    opcon3.b $e |- B = ( Base ` K ) $.
    opcon3.l $e |- .<_ = ( le ` K ) $.
    opcon3.o $e |- ._|_ = ( oc ` K ) $.
    $( Contraposition law for orthoposets.  (Contributed by NM,
       13-Sep-2011.) $)
    oplecon3 $p |- ( ( K e. OP /\ X e. B /\ Y e. B )
                -> ( X .<_ Y -> ( ._|_ ` Y ) .<_ ( ._|_ ` X ) ) ) $=
      ( cops wcel w3a cfv wceq wbr wi cjn co cp1 eqid cp0 oposlem simp1d simp3d
      cmee ) BJKEAKFAKLZEDMZAKZUGDMENZEFCOFDMUGCOPZUFUHUIUJLEUGBQMZRBSMZNEUGBUE
      MZRBUAMZNAULUKBCUMDEFUNGHIUKTUMTUNTULTUBUCUD $.

    $( Contraposition law for orthoposets.  ( ~ chsscon3 analog.)  (Contributed
       by NM, 4-Nov-2011.) $)
    oplecon3b $p |- ( ( K e. OP /\ X e. B /\ Y e. B )
                -> ( X .<_ Y <-> ( ._|_ ` Y ) .<_ ( ._|_ ` X ) ) ) $=
      ( cops wcel w3a wbr cfv oplecon3 opoccl 3adant2 3adant3 wceq opococ simp1
      wi syl3anc breq12d sylibd impbid ) BJKZEAKZFAKZLZEFCMZFDNZEDNZCMZABCDEFGH
      IOUJUNUMDNZULDNZCMZUKUJUGULAKZUMAKZUNUQUBUGUHUIUAUGUIURUHABDFGIPQUGUHUSUI
      ABDEGIPRABCDULUMGHIOUCUJUOEUPFCUGUHUOESUIABDEGITRUGUIUPFSUHABDFGITQUDUEUF
      $.

    $( Contraposition law for strict ordering in orthoposets.  ( ~ chsscon1
       analog.)  (Contributed by NM, 6-Nov-2011.) $)
    oplecon1b $p |- ( ( K e. OP /\ X e. B /\ Y e. B )
                -> ( ( ._|_ ` X ) .<_ Y <-> ( ._|_ ` Y ) .<_ X ) ) $=
      ( cops wcel w3a cfv wbr wb opoccl 3adant3 oplecon3b syld3an2 wceq opococ
      breq2d bitrd ) BJKZEAKZFAKZLZEDMZFCNZFDMZUHDMZCNZUJECNUDUHAKZUEUFUIULOUDU
      EUMUFABDEGIPQABCDUHFGHIRSUGUKEUJCUDUEUKETUFABDEGIUAQUBUC $.
  $}

  ${
    opoc1.z $e |- .0. = ( 0. ` K ) $.
    opoc1.u $e |- .1. = ( 1. ` K ) $.
    opoc1.o $e |- ._|_ = ( oc ` K ) $.
    $( Orthocomplement of orthoposet unit.  (Contributed by NM,
       24-Jan-2012.) $)
    opoc1 $p |- ( K e. OP -> ( ._|_ ` .1. ) = .0. ) $=
      ( cops wcel cfv cple wbr wceq cbs eqid op0cl opoccl mpdan ople1 wb mpbird
      op1cl oplecon1b mpd3an23 ople0 mpbid ) BHIZACJZDBKJZLZUHDMZUGUJDCJZAUILZU
      GULBNJZIZUMUGDUNIZUOUNBDUNOZEPZUNBCDUQGQRUNABUIULUQUIOZFSRUGAUNIZUPUJUMTU
      NABUQFUBZURUNBUICADUQUSGUCUDUAUGUHUNIZUJUKTUGUTVBVAUNBCAUQGQRUNBUIUHDUQUS
      EUERUF $.

    $( Orthocomplement of orthoposet zero.  (Contributed by NM,
       24-Jan-2012.) $)
    opoc0 $p |- ( K e. OP -> ( ._|_ ` .0. ) = .1. ) $=
      ( cops wcel cfv wceq opoc1 cbs wb eqid op1cl op0cl opcon1b mpd3an23 mpbid
      ) BHIZACJDKZDCJAKZABCDEFGLUAABMJZIDUDIUBUCNUDABUDOZFPUDBDUEEQUDBCADUEGRST
      $.
  $}

  ${
    opltcon3.b $e |- B = ( Base ` K ) $.
    opltcon3.s $e |- .< = ( lt ` K ) $.
    opltcon3.o $e |- ._|_ = ( oc ` K ) $.
    $( Contraposition law for strict ordering in orthoposets.  ( ~ chpsscon3
       analog.)  (Contributed by NM, 4-Nov-2011.) $)
    opltcon3b $p |- ( ( K e. OP /\ X e. B /\ Y e. B )
                -> ( X .< Y <-> ( ._|_ ` Y ) .< ( ._|_ ` X ) ) ) $=
      ( cops wcel w3a cfv wbr wn wa oplecon3b wb pltval3 opoccl cple 3com23 cpo
      notbid anbi12d opposet syl3an1 3ad2ant1 3adant2 3adant3 syl3anc 3bitr4d
      eqid ) CJKZEAKZFAKZLZEFCUAMZNZFEURNZOZPZFDMZEDMZURNZVDVCURNZOZPZEFBNZVCVD
      BNZUQUSVEVAVGACURDEFGURUMZIQUQUTVFUNUPUOUTVFRACURDFEGVKIQUBUDUEUNCUCKZUOU
      PVIVBRCUFZABCUREFGVKHSUGUQVLVCAKZVDAKZVJVHRUNUOVLUPVMUHUNUPVNUOACDFGITUIU
      NUOVOUPACDEGITUJABCURVCVDGVKHSUKUL $.

    $( Contraposition law for strict ordering in orthoposets.  ( ~ chpsscon1
       analog.)  (Contributed by NM, 5-Nov-2011.) $)
    opltcon1b $p |- ( ( K e. OP /\ X e. B /\ Y e. B )
                -> ( ( ._|_ ` X ) .< Y <-> ( ._|_ ` Y ) .< X ) ) $=
      ( cops wcel w3a cfv wbr wb opoccl 3adant3 opltcon3b syld3an2 wceq opococ
      breq2d bitrd ) CJKZEAKZFAKZLZEDMZFBNZFDMZUHDMZBNZUJEBNUDUHAKZUEUFUIULOUDU
      EUMUFACDEGIPQABCDUHFGHIRSUGUKEUJBUDUEUKETUFACDEGIUAQUBUC $.

    $( Contraposition law for strict ordering in orthoposets.  ( ~ chsscon2
       analog.)  (Contributed by NM, 5-Nov-2011.) $)
    opltcon2b $p |- ( ( K e. OP /\ X e. B /\ Y e. B )
                -> ( X .< ( ._|_ ` Y ) <-> Y .< ( ._|_ ` X ) ) ) $=
      ( cops wcel w3a cfv wbr wb opoccl 3adant2 opltcon3b syld3an3 wceq opococ
      breq1d bitrd ) CJKZEAKZFAKZLZEFDMZBNZUHDMZEDMZBNZFUKBNUDUEUFUHAKZUIULOUDU
      FUMUEACDFGIPQABCDEUHGHIRSUGUJFUKBUDUFUJFTUEACDFGIUAQUBUC $.
  $}

  ${
    opexmid.b $e |- B = ( Base ` K ) $.
    opexmid.o $e |- ._|_ = ( oc ` K ) $.
    opexmid.j $e |- .\/ = ( join ` K ) $.
    opexmid.u $e |- .1. = ( 1. ` K ) $.
    $( Law of excluded middle for orthoposets.  ( ~ chjo analog.)  (Contributed
       by NM, 13-Sep-2011.) $)
    opexmid $p |- ( ( K e. OP /\ X e. B )
                -> ( X .\/ ( ._|_ ` X ) ) = .1. ) $=
      ( cops wcel wa cfv wceq cple wbr w3a co eqid wi cmee cp0 oposlem 3anidm23
      simp2d ) DKLZFALZMFENZALUIENFOFFDPNZQUIUIUJQUARZFUICSBOZFUIDUBNZSDUCNZOZU
      GUHUKULUORABCDUJUMEFFUNGUJTHIUMTUNTJUDUEUF $.
  $}

  ${
    opnoncon.b $e |- B = ( Base ` K ) $.
    opnoncon.o $e |- ._|_ = ( oc ` K ) $.
    opnoncon.m $e |- ./\ = ( meet ` K ) $.
    opnoncon.z $e |- .0. = ( 0. ` K ) $.
    $( Law of contradiction for orthoposets.  ( ~ chocin analog.)  (Contributed
       by NM, 13-Sep-2011.) $)
    opnoncon $p |- ( ( K e. OP /\ X e. B )
                -> ( X ./\ ( ._|_ ` X ) ) = .0. ) $=
      ( cops wcel wa cfv wceq cple wbr w3a co eqid wi cjn cp1 oposlem 3anidm23
      simp3d ) BKLZEALZMEDNZALUIDNEOEEBPNZQUIUIUJQUARZEUIBUBNZSBUCNZOZEUICSFOZU
      GUHUKUNUORAUMULBUJCDEEFGUJTHULTIJUMTUDUEUF $.
  $}

  ${
    $d x y B $.  $d x y K $.  $d x y ._|_ $.  $d y ph $.  $d x ps $.
    riotaoc.b $e |- B = ( Base ` K ) $.
    riotaoc.o $e |- ._|_ = ( oc ` K ) $.
    riotaoc.a $e |- ( x = ( ._|_ ` y ) -> ( ph <-> ps ) ) $.
    $( The orthocomplement of the unique poset element such that ` ps ` .
       ( ~ riotaneg analog.)  (Contributed by NM, 16-Jan-2012.)
       (New usage is discouraged.) $)
    riotaocN $p |- ( ( K e. OP /\ E! x e. B ph ) ->
             ( iota_ x e. B ph ) = ( ._|_ ` ( iota_ y e. B ps ) ) ) $=
      ( cops wcel cv cfv crio nfcv nfriota1 nffv opoccl fveq2 opcon2b riotaxfrd
      reuhypd ) FKLZABCDEDMZGNZBDEOZGNDUGGDGPBDEQREFGUEHISEFGUGHISJUEUGGTUDCDUF
      CMZGNEEFGUHHISEFGUHUEHIUAUCUB $.
  $}

  ${
    $d p x y B $.  $d p .\/ $.  $d p ./\ $.  $d p ._|_ $.  $d p x y K $.
    cmtfval.b $e |- B = ( Base ` K ) $.
    cmtfval.j $e |- .\/ = ( join ` K ) $.
    cmtfval.m $e |- ./\ = ( meet ` K ) $.
    cmtfval.o $e |- ._|_ = ( oc ` K ) $.
    cmtfval.c $e |- C = ( cm ` K ) $.
    $( Value of commutes relation.  (Contributed by NM, 6-Nov-2011.)
       (New usage is discouraged.) $)
    cmtfvalN $p |- ( K e. A -> C = { <. x , y >. | ( x e. B /\ y e. B
          /\ x = ( ( x ./\ y ) .\/ ( x ./\ ( ._|_ ` y ) ) ) ) } ) $=
      ( wcel cvv co cfv wceq cbs vp w3a copab elex ccmtN cmee coc fveq2 syl6eqr
      cv cjn eleq2d oveqd eqidd fveq1d oveq123d eqeq2d 3anbi123d df-cmtN df-3an
      opabbidv wa opabbii cxp fvex eqeltri xpex opabssxp ssexi fvmpt syl5eq syl
      ) GCOGPOZEAUJZDOZBUJZDOZVNVNVPHQZVNVPIRZHQZFQZSZUBZABUCZSGCUDVMEGUERWDNUA
      GVNUAUJZTRZOZVPWFOZVNVNVPWEUFRZQZVNVPWEUGRZRZWIQZWEUKRZQZSZUBZABUCWDPUEWE
      GSZWQWCABWRWGVOWHVQWPWBWRWFDVNWRWFGTRZDWEGTUHJUIZULWRWFDVPWTULWRWOWAVNWRW
      JVRWMVTWNFWRWNGUKRFWEGUKUHKUIWRWIHVNVPWRWIGUFRHWEGUFUHLUIZUMWRVNVNWLVSWIH
      XAWRVNUNWRVPWKIWRWKGUGRIWEGUGUHMUIUOUPUPUQURVAABUAUSWDVOVQVBWBVBZABUCZPWC
      XBABVOVQWBUTVCXCDDVDDDDWSPJGTVEVFZXDVGWBABDDVHVIVFVJVKVL $.

    $d x y .\/ $.  $d x y ./\ $.  $d x y ._|_ $.  $d x y X $.  $d x y Y $.
    $( Equivalence for commutes relation.  Definition of commutes in [Kalmbach]
       p. 20.  ( ~ cmbr analog.)  (Contributed by NM, 6-Nov-2011.)
       (New usage is discouraged.) $)
    cmtvalN $p |- ( ( K e. A /\ X e. B /\ Y e. B ) -> ( X C Y <->
               X = ( ( X ./\ Y ) .\/ ( X ./\ ( ._|_ ` Y ) ) ) ) ) $=
      ( vx vy wcel wa co wceq w3a wbr cv copab wb cmtfvalN df-3an opabbii breqd
      cfv syl6eq 3ad2ant1 cop df-br id oveq1 oveq12d eqeq12d oveq2 fveq2 oveq2d
      eqeq2d opelopab2 syl5bb 3adant1 bitrd ) EAQZHBQZIBQZUAHICUBZHIOUCZBQZPUCZ
      BQZRVKVKVMFSZVKVMGUJZFSZDSZTZRZOPUDZUBZHHIFSZHIGUJZFSZDSZTZVGVHVJWBUEVIVG
      CWAHIVGCVLVNVSUAZOPUDWAOPABCDEFGJKLMNUFWHVTOPVLVNVSUGUHUKUIULVHVIWBWGUEVG
      WBHIUMWAQVHVIRWGHIWAUNVSHHVMFSZHVPFSZDSZTWGOPHIBBVKHTZVKHVRWKWLUOWLVOWIVQ
      WJDVKHVMFUPVKHVPFUPUQURVMITZWKWFHWMWIWCWJWEDVMIHFUSWMVPWDHFVMIGUTVAUQVBVC
      VDVEVF $.
  $}

  $( The predicate "is an ortholattice."  (Contributed by NM, 18-Sep-2011.) $)
  isolat $p |- ( K e. OL <-> ( K e. Lat /\ K e. OP ) ) $=
    ( clat cops col df-ol elin2 ) ABCDEF $.

  $( An ortholattice is a lattice.  (Contributed by NM, 18-Sep-2011.) $)
  ollat $p |- ( K e. OL -> K e. Lat ) $=
    ( col wcel clat cops isolat simplbi ) ABCADCAECAFG $.

  $( An ortholattice is an orthoposet.  (Contributed by NM, 18-Sep-2011.) $)
  olop $p |- ( K e. OL -> K e. OP ) $=
    ( col wcel clat cops isolat simprbi ) ABCADCAECAFG $.

  $( An ortholattice is a poset.  (Contributed by NM, 16-Oct-2011.)
     (New usage is discouraged.) $)
  olposN $p |- ( K e. OL -> K e. Poset ) $=
    ( col wcel cops cpo olop opposet syl ) ABCADCAECAFAGH $.

  ${
    isolati.1 $e |- K e. Lat $.
    isolati.2 $e |- K e. OP $.
    $( Properties that determine an ortholattice.  (Contributed by NM,
       18-Sep-2011.)  (New usage is discouraged.) $)
    isolatiN $p |- K e. OL $=
      ( col wcel clat cops isolat mpbir2an ) ADEAFEAGEBCAHI $.
  $}

  ${
    oldmm1.b $e |- B = ( Base ` K ) $.
    oldmm1.j $e |- .\/ = ( join ` K ) $.
    oldmm1.m $e |- ./\ = ( meet ` K ) $.
    oldmm1.o $e |- ._|_ = ( oc ` K ) $.
    $( De Morgan's law for meet in an ortholattice.  ( ~ chdmm1 analog.)
       (Contributed by NM, 6-Nov-2011.) $)
    oldmm1 $p |- ( ( K e. OL /\ X e. B /\ Y e. B ) ->
         ( ._|_ ` ( X ./\ Y ) ) = ( ( ._|_ ` X ) .\/ ( ._|_ ` Y ) ) ) $=
      ( wcel cfv syl3an1 opoccl syl3anc wbr wb oplecon1b mpbid col cple co eqid
      clat ollat 3ad2ant1 cops olop latmcl syl2anc sylan 3adant3 3adant2 latjcl
      w3a latlej1 simp2 latlej2 wa latlem12 syl13anc mpbi2and latmle1 oplecon3b
      simp3 latmle2 latjle12 latasymd ) CUALZFALZGALZUPZACCUBMZFGDUCZEMZFEMZGEM
      ZBUCZHVNUDZVJVKCUELZVLCUFZUGZVMCUHLZVOALZVPALZVJVKWDVLCUIZUGZVJWAVKVLWEWB
      ACDFGHJUJNZACEVOHKOUKZVMWAVQALZVRALZVSALZWCVJVKWKVLVJWDVKWKWGACEFHKOULUMZ
      VJVLWLVKVJWDVLWLWGACEGHKOULUNZABCVQVRHIUOPZVMVSEMZVOVNQZVPVSVNQZVMWQFVNQZ
      WQGVNQZWRVMVQVSVNQZWTVMWAWKWLXBWCWNWOABCVNVQVRHVTIUQPVMWDVKWMXBWTRWHVJVKV
      LURZWPACVNEFVSHVTKSPTVMVRVSVNQZXAVMWAWKWLXDWCWNWOABCVNVQVRHVTIUSPVMWDVLWM
      XDXARWHVJVKVLVFZWPACVNEGVSHVTKSPTVMWAWQALZVKVLWTXAUTWRRWCVMWDWMXFWHWPACEV
      SHKOUKXCXEACVNDWQFGHVTJVAVBVCVMWDWMWEWRWSRWHWPWIACVNEVSVOHVTKSPTVMVQVPVNQ
      ZVRVPVNQZVSVPVNQZVMVOFVNQZXGVJWAVKVLXJWBACVNDFGHVTJVDNVMWDWEVKXJXGRWHWIXC
      ACVNEVOFHVTKVEPTVMVOGVNQZXHVJWAVKVLXKWBACVNDFGHVTJVGNVMWDWEVLXKXHRWHWIXEA
      CVNEVOGHVTKVEPTVMWAWKWLWFXGXHUTXIRWCWNWOWJABCVNVQVRVPHVTIVHVBVCVI $.

    $( De Morgan's law for meet in an ortholattice.  ( ~ chdmm2 analog.)
       (Contributed by NM, 6-Nov-2011.) $)
    oldmm2 $p |- ( ( K e. OL /\ X e. B /\ Y e. B ) ->
         ( ._|_ ` ( ( ._|_ ` X ) ./\ Y ) ) = ( X .\/ ( ._|_ ` Y ) ) ) $=
      ( col wcel w3a cfv co wceq cops sylan 3adant3 olop opoccl oldmm1 syld3an2
      opococ oveq1d eqtrd ) CLMZFAMZGAMZNZFEOZGDPEOZULEOZGEOZBPZFUOBPUHULAMZUIU
      JUMUPQUHUIUQUJUHCRMZUIUQCUAZACEFHKUBSTABCDEULGHIJKUCUDUKUNFUOBUHUIUNFQZUJ
      UHURUIUTUSACEFHKUESTUFUG $.

    $( De Morgan's law for meet in an ortholattice.  ( ~ chdmm3 analog.)
       (Contributed by NM, 8-Nov-2011.)  (New usage is discouraged.) $)
    oldmm3N $p |- ( ( K e. OL /\ X e. B /\ Y e. B ) ->
         ( ._|_ ` ( X ./\ ( ._|_ ` Y ) ) ) = ( ( ._|_ ` X ) .\/ Y ) ) $=
      ( col wcel w3a cfv co wceq cops olop syl2anc 3ad2ant1 simp3 opoccl oldmm1
      syld3an3 opococ oveq2d eqtrd ) CLMZFAMZGAMZNZFGEOZDPEOZFEOZUMEOZBPZUOGBPU
      IUJUKUMAMZUNUQQULCRMZUKURUIUJUSUKCSUAZUIUJUKUBZACEGHKUCTABCDEFUMHIJKUDUEU
      LUPGUOBULUSUKUPGQUTVAACEGHKUFTUGUH $.

    $( De Morgan's law for meet in an ortholattice.  ( ~ chdmm4 analog.)
       (Contributed by NM, 6-Nov-2011.) $)
    oldmm4 $p |- ( ( K e. OL /\ X e. B /\ Y e. B ) ->
         ( ._|_ ` ( ( ._|_ ` X ) ./\ ( ._|_ ` Y ) ) ) = ( X .\/ Y ) ) $=
      ( col wcel w3a cfv co wceq cops sylan 3adant2 olop opoccl oldmm2 syld3an3
      opococ oveq2d eqtrd ) CLMZFAMZGAMZNZFEOGEOZDPEOZFULEOZBPZFGBPUHUIUJULAMZU
      MUOQUHUJUPUIUHCRMZUJUPCUAZACEGHKUBSTABCDEFULHIJKUCUDUKUNGFBUHUJUNGQZUIUHU
      QUJUSURACEGHKUESTUFUG $.

    $( De Morgan's law for join in an ortholattice.  ( ~ chdmj1 analog.)
       (Contributed by NM, 6-Nov-2011.) $)
    oldmj1 $p |- ( ( K e. OL /\ X e. B /\ Y e. B ) ->
         ( ._|_ ` ( X .\/ Y ) ) = ( ( ._|_ ` X ) ./\ ( ._|_ ` Y ) ) ) $=
      ( col wcel w3a cfv co oldmm4 3ad2ant1 opoccl sylan fveq2d cops wceq ollat
      olop clat 3adant3 3adant2 latmcl syl3anc opococ syl2anc eqtr3d ) CLMZFAMZ
      GAMZNZFEOZGEOZDPZEOZEOZFGBPZEOUTUQVAVCEABCDEFGHIJKQUAUQCUBMZUTAMZVBUTUCUN
      UOVDUPCUEZRUQCUFMZURAMZUSAMZVEUNUOVGUPCUDRUNUOVHUPUNVDUOVHVFACEFHKSTUGUNU
      PVIUOUNVDUPVIVFACEGHKSTUHACDURUSHJUIUJACEUTHKUKULUM $.

    $( De Morgan's law for join in an ortholattice.  ( ~ chdmj2 analog.)
       (Contributed by NM, 7-Nov-2011.) $)
    oldmj2 $p |- ( ( K e. OL /\ X e. B /\ Y e. B ) ->
         ( ._|_ ` ( ( ._|_ ` X ) .\/ Y ) ) = ( X ./\ ( ._|_ ` Y ) ) ) $=
      ( col wcel w3a cfv co wceq cops sylan 3adant3 olop opoccl oldmj1 syld3an2
      opococ oveq1d eqtrd ) CLMZFAMZGAMZNZFEOZGBPEOZULEOZGEOZDPZFUODPUHULAMZUIU
      JUMUPQUHUIUQUJUHCRMZUIUQCUAZACEFHKUBSTABCDEULGHIJKUCUDUKUNFUODUHUIUNFQZUJ
      UHURUIUTUSACEFHKUESTUFUG $.

    $( De Morgan's law for join in an ortholattice.  ( ~ chdmj3 analog.)
       (Contributed by NM, 7-Nov-2011.) $)
    oldmj3 $p |- ( ( K e. OL /\ X e. B /\ Y e. B ) ->
         ( ._|_ ` ( X .\/ ( ._|_ ` Y ) ) ) = ( ( ._|_ ` X ) ./\ Y ) ) $=
      ( col wcel w3a cfv co wceq cops olop syl2anc 3ad2ant1 simp3 opoccl oldmj1
      syld3an3 opococ oveq2d eqtrd ) CLMZFAMZGAMZNZFGEOZBPEOZFEOZUMEOZDPZUOGDPU
      IUJUKUMAMZUNUQQULCRMZUKURUIUJUSUKCSUAZUIUJUKUBZACEGHKUCTABCDEFUMHIJKUDUEU
      LUPGUODULUSUKUPGQUTVAACEGHKUFTUGUH $.

    $( De Morgan's law for join in an ortholattice.  ( ~ chdmj4 analog.)
       (Contributed by NM, 7-Nov-2011.) $)
    oldmj4 $p |- ( ( K e. OL /\ X e. B /\ Y e. B ) ->
         ( ._|_ ` ( ( ._|_ ` X ) .\/ ( ._|_ ` Y ) ) ) = ( X ./\ Y ) ) $=
      ( col wcel w3a cfv co wceq cops sylan 3adant2 olop opoccl oldmj2 syld3an3
      opococ oveq2d eqtrd ) CLMZFAMZGAMZNZFEOGEOZBPEOZFULEOZDPZFGDPUHUIUJULAMZU
      MUOQUHUJUPUIUHCRMZUJUPCUAZACEGHKUBSTABCDEFULHIJKUCUDUKUNGFDUHUJUNGQZUIUHU
      QUJUSURACEGHKUESTUFUG $.
  $}

  ${
    olj0.b $e |- B = ( Base ` K ) $.
    olj0.j $e |- .\/ = ( join ` K ) $.
    olj0.z $e |- .0. = ( 0. ` K ) $.
    $( An ortholattice element joined with zero equals itself.  ( ~ chj0
       analog.)  (Contributed by NM, 19-Oct-2011.) $)
    olj01 $p |- ( ( K e. OL /\ X e. B ) -> ( X .\/ .0. ) = X ) $=
      ( col wcel co wceq cops olop op0cl syl syl3an1 wbr sylan 3adant3 w3a cple
      adantr cfv eqid clat ollat 3ad2ant1 latjcl simp2 latref op0le wa wb simp3
      latjle12 syl13anc mpbi2and latlej1 latasymd mpd3an3 ) CIJZDAJZEAJZDEBKZDL
      VBVDVCVBCMJZVDCNZACEFHOPUCVBVCVDUAZACCUBUDZVEDFVIUEZVBVCCUFJZVDCUGZUHZVBV
      KVCVDVEAJVLABCDEFGUIQVBVCVDUJZVHDDVIRZEDVIRZVEDVIRZVBVCVOVDVBVKVCVOVLACVI
      DFVJUKSTVBVCVPVDVBVFVCVPVGACVIDEFVJHULSTVHVKVCVDVCVOVPUMVQUNVMVNVBVCVDUOV
      NABCVIDEDFVJGUPUQURVBVKVCVDDVEVIRVLABCVIDEFVJGUSQUTVA $.

    $( An ortholattice element joined with zero equals itself.  (Contributed by
       NM, 28-Jan-2012.) $)
    olj02 $p |- ( ( K e. OL /\ X e. B ) -> ( .0. .\/ X ) = X ) $=
      ( col wcel wa co clat wceq ollat adantr cops olop op0cl syl simpr latjcom
      syl3anc olj01 eqtrd ) CIJZDAJZKZEDBLZDEBLZDUHCMJZEAJZUGUIUJNUFUKUGCOPUFUL
      UGUFCQJULCRACEFHSTPUFUGUAABCEDFGUBUCABCDEFGHUDUE $.
  $}

  ${
    olm1.b $e |- B = ( Base ` K ) $.
    olm1.m $e |- ./\ = ( meet ` K ) $.
    olm1.u $e |- .1. = ( 1. ` K ) $.
    $( The meet of an ortholattice element with one equals itself.  ( ~ chm1i
       analog.)  (Contributed by NM, 22-May-2012.) $)
    olm11 $p |- ( ( K e. OL /\ X e. B ) -> ( X ./\ .1. ) = X ) $=
      ( col wcel wa coc cfv cjn co cp0 wceq eqid syl sylan adantr oveq2d opoccl
      cops opoc1 olj01 syldan eqtrd fveq2d op1cl oldmj4 mpd3an3 opococ 3eqtr3d
      olop ) CIJZEAJZKZECLMZMZBUSMZCNMZOZUSMZUTUSMZEBDOZEURVCUTUSURVCUTCPMZVBOZ
      UTURVAVGUTVBURCUDJZVAVGQUPVIUQCUOZUAZBCUSVGVGRZHUSRZUESUBUPUQUTAJZVHUTQUP
      VIUQVNVJACUSEFVMUCTAVBCUTVGFVBRZVLUFUGUHUIUPUQBAJZVDVFQURVIVPVKABCFHUJSAV
      BCDUSEBFVOGVMUKULUPVIUQVEEQVJACUSEFVMUMTUN $.

    $( The meet of an ortholattice element with one equals itself.
       (Contributed by NM, 22-May-2012.) $)
    olm12 $p |- ( ( K e. OL /\ X e. B ) -> ( .1. ./\ X ) = X ) $=
      ( col wcel wa co clat wceq ollat adantr cops olop op1cl syl simpr latmcom
      syl3anc olm11 eqtrd ) CIJZEAJZKZBEDLZEBDLZEUHCMJZBAJZUGUIUJNUFUKUGCOPUHCQ
      JZULUFUMUGCRPABCFHSTUFUGUAACDBEFGUBUCABCDEFGHUDUE $.
  $}

  ${
    olmass.b $e |- B = ( Base ` K ) $.
    olmass.m $e |- ./\ = ( meet ` K ) $.
    $( Ortholattice meet is associative.  (This can also be proved for lattices
       with a longer proof.)  ( ~ inass analog.)  (Contributed by NM,
       7-Nov-2011.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    latmassOLD $p |- ( ( K e. OL /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( ( X ./\ Y ) ./\ Z ) = ( X ./\ ( Y ./\ Z ) ) ) $=
      ( col wcel co cfv wceq adantr eqid opoccl syl2anc latjcl syl3anc oldmj4
      w3a wa coc simpl clat ollat cops olop simpr1 simpr2 simpr3 oldmj3 latjass
      syl13anc fveq2d 3adant3r3 oveq1d 3eqtr3rd oldmj2 3adant3r1 oveq2d 3eqtrd
      cjn ) BIJZDAJZEAJZFAJZUAZUBZDECKZFCKZDBUCLZLZEVLLZFVLLZBVCLZKZVPKZVLLZDVQ
      VLLZCKZDEFCKZCKVIVMVNVPKZVOVPKZVLLZWCVLLZFCKZVSVKVIVDWCAJZVGWEWGMVDVHUDZV
      IBUEJZVMAJZVNAJZWHVDWJVHBUFNZVIBUGJZVEWKVDWNVHBUHNZVDVEVFVGUIZABVLDGVLOZP
      QZVIWNVFWLWOVDVEVFVGUJABVLEGWQPQZAVPBVMVNGVPOZRSVDVEVFVGUKZAVPBCVLWCFGWTH
      WQULSVIWDVRVLVIWJWKWLVOAJZWDVRMWMWRWSVIWNVGXBWOXAABVLFGWQPQZAVPBVMVNVOGWT
      UMUNUOVIWFVJFCVDVEVFWFVJMVGAVPBCVLDEGWTHWQTUPUQURVIVDVEVQAJZVSWAMWIWPVIWJ
      WLXBXDWMWSXCAVPBVNVOGWTRSAVPBCVLDVQGWTHWQUSSVIVTWBDCVDVFVGVTWBMVEAVPBCVLE
      FGWTHWQTUTVAVB $.

    $( A rearrangement of lattice meet.  ( ~ in12 analog.)  (Contributed by NM,
       8-Nov-2011.) $)
    latm12 $p |- ( ( K e. OL /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( X ./\ ( Y ./\ Z ) ) = ( Y ./\ ( X ./\ Z ) ) ) $=
      ( col wcel w3a wa co clat wceq ollat adantr simpr1 simpr2 latmassOLD 3jca
      latmcom syl3anc oveq1d simpr3 syldan 3eqtr3d ) BIJZDAJZEAJZFAJZKZLZDECMZF
      CMEDCMZFCMZDEFCMCMEDFCMCMZUMUNUOFCUMBNJZUIUJUNUOOUHURULBPQUHUIUJUKRZUHUIU
      JUKSZABCDEGHUBUCUDABCDEFGHTUHULUJUIUKKUPUQOUMUJUIUKUTUSUHUIUJUKUEUAABCEDF
      GHTUFUG $.

    $( A rearrangement of lattice meet.  ( ~ in12 analog.)  (Contributed by NM,
       13-Nov-2012.) $)
    latm32 $p |- ( ( K e. OL /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( ( X ./\ Y ) ./\ Z ) = ( ( X ./\ Z ) ./\ Y ) ) $=
      ( col wcel w3a wa co wceq clat ollat latmcom syl3an1 3adant3r1 latmassOLD
      oveq2d simpl simpr1 simpr3 simpr2 syl13anc 3eqtr4d ) BIJZDAJZEAJZFAJZKZLZ
      DEFCMZCMDFECMZCMZDECMFCMDFCMECMZUMUNUODCUHUJUKUNUONZUIUHBOJUJUKURBPABCEFG
      HQRSUAABCDEFGHTUMUHUIUKUJUQUPNUHULUBUHUIUJUKUCUHUIUJUKUDUHUIUJUKUEABCDFEG
      HTUFUG $.

    $( Rotate lattice meet of 3 classes.  (Contributed by NM, 9-Oct-2012.) $)
    latmrot $p |- ( ( K e. OL /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( ( X ./\ Y ) ./\ Z ) = ( ( Z ./\ X ) ./\ Y ) ) $=
      ( col wcel w3a wa co clat wceq ollat adantr simpr1 simpr2 syl3anc latmcom
      latmcl simpr3 simpl latmassOLD syl13anc eqtr4d ) BIJZDAJZEAJZFAJZKZLZDECM
      ZFCMZFUNCMZFDCMECMZUMBNJZUNAJZUKUOUPOUHURULBPQZUMURUIUJUSUTUHUIUJUKRZUHUI
      UJUKSZABCDEGHUBTUHUIUJUKUCZABCUNFGHUATUMUHUKUIUJUQUPOUHULUDVCVAVBABCFDEGH
      UEUFUG $.

    $( Rearrangement of lattice meet of 4 classes.  ( ~ in4 analog.)
       (Contributed by NM, 8-Nov-2011.) $)
    latm4 $p |- ( ( K e. OL /\ ( X e. B /\ Y e. B ) /\ ( Z e. B /\ W e. B ) )
      -> ( ( X ./\ Y ) ./\ ( Z ./\ W ) )
           = ( ( X ./\ Z ) ./\ ( Y ./\ W ) ) ) $=
      ( col wcel wa w3a co wceq simp1 syl13anc latmcl syl3anc latmassOLD simp2r
      simp3l simp3r latm12 oveq2d simp2l clat ollat 3ad2ant1 3eqtr4d ) BJKZEAKZ
      FAKZLZGAKZDAKZLZMZEFGDCNZCNZCNZEGFDCNZCNZCNZEFCNUSCNZEGCNVBCNZURUTVCECURU
      KUMUOUPUTVCOUKUNUQPZUKULUMUQUAZUKUNUOUPUBZUKUNUOUPUCZABCFGDHIUDQUEURUKULU
      MUSAKZVEVAOVGUKULUMUQUFZVHURBUGKZUOUPVKUKUNVMUQBUHUIZVIVJABCGDHIRSABCEFUS
      HITQURUKULUOVBAKZVFVDOVGVLVIURVMUMUPVOVNVHVJABCFDHIRSABCEGVBHITQUJ $.

    $( Lattice meet distributes over itself.  ( ~ inindi analog.)  (Contributed
       by NM, 8-Nov-2011.)  (New usage is discouraged.) $)
    latmmdiN $p |- ( ( K e. OL /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( X ./\ ( Y ./\ Z ) ) = ( ( X ./\ Y ) ./\ ( X ./\ Z ) ) ) $=
      ( col wcel w3a wa co clat wceq ollat adantr simpr1 latmidm syl2anc oveq1d
      simpl simpr2 simpr3 latm4 syl122anc eqtr3d ) BIJZDAJZEAJZFAJZKZLZDDCMZEFC
      MZCMZDUOCMDECMDFCMCMZUMUNDUOCUMBNJZUIUNDOUHURULBPQUHUIUJUKRZABCDGHSTUAUMU
      HUIUIUJUKUPUQOUHULUBUSUSUHUIUJUKUCUHUIUJUKUDABCFDDEGHUEUFUG $.

    $( Lattice meet distributes over itself.  ( ~ inindir analog.)
       (Contributed by NM, 6-Jun-2012.) $)
    latmmdir $p |- ( ( K e. OL /\ ( X e. B /\ Y e. B /\ Z e. B ) ) ->
             ( ( X ./\ Y ) ./\ Z ) = ( ( X ./\ Z ) ./\ ( Y ./\ Z ) ) ) $=
      ( col wcel w3a wa co clat wceq ollat adantr simpr3 latmidm syl2anc oveq2d
      simpl simpr1 simpr2 latm4 syl122anc eqtr3d ) BIJZDAJZEAJZFAJZKZLZDECMZFFC
      MZCMZUNFCMDFCMEFCMCMZUMUOFUNCUMBNJZUKUOFOUHURULBPQUHUIUJUKRZABCFGHSTUAUMU
      HUIUJUKUKUPUQOUHULUBUHUIUJUKUCUHUIUJUKUDUSUSABCFDEFGHUEUFUG $.
  $}

  ${
    olm0.b $e |- B = ( Base ` K ) $.
    olm0.m $e |- ./\ = ( meet ` K ) $.
    olm0.z $e |- .0. = ( 0. ` K ) $.
    $( Meet with lattice zero is zero.  ( ~ chm0 analog.)  (Contributed by NM,
       8-Nov-2011.) $)
    olm01 $p |- ( ( K e. OL /\ X e. B ) -> ( X ./\ .0. ) = .0. ) $=
      ( col wcel wa cple cfv co eqid clat ollat adantr syl3anc wbr simpr latmcl
      cops olop op0cl syl latmle2 op0le sylan latref latlem12 syl13anc mpbi2and
      syl2anc wb latasymd ) BIJZDAJZKZABBLMZDECNZEFUTOZUQBPJZURBQRZUSVCUREAJZVA
      AJVDUQURUAZUSBUCJZVEUQVGURBUDZRABEFHUEUFZABCDEFGUBSVIUSVCURVEVAEUTTVDVFVI
      ABUTCDEFVBGUGSUSEDUTTZEEUTTZEVAUTTZUQVGURVJVHABUTDEFVBHUHUIUSVCVEVKVDVIAB
      UTEFVBUJUNUSVCVEURVEVJVKKVLUOVDVIVFVIABUTCEDEFVBGUKULUMUP $.

    $( Meet with lattice zero is zero.  (Contributed by NM, 9-Oct-2012.) $)
    olm02 $p |- ( ( K e. OL /\ X e. B ) -> ( .0. ./\ X ) = .0. ) $=
      ( col wcel wa co clat wceq ollat adantr simpr cops olop op0cl syl latmcom
      syl3anc olm01 eqtr3d ) BIJZDAJZKZDECLZEDCLZEUHBMJZUGEAJZUIUJNUFUKUGBOPUFU
      GQUHBRJZULUFUMUGBSPABEFHTUAABCDEFGUBUCABCDEFGHUDUE $.
  $}

  ${
    $d k x y B $.  $d k .\/ $.  $d k x y K $.  $d k ./\ $.  $d k ._|_ $.
    $d k .<_ $.
    isoml.b $e |- B = ( Base ` K ) $.
    isoml.l $e |- .<_ = ( le ` K ) $.
    isoml.j $e |- .\/ = ( join ` K ) $.
    isoml.m $e |- ./\ = ( meet ` K ) $.
    isoml.o $e |- ._|_ = ( oc ` K ) $.
    $( The predicate "is an orthomodular lattice."  (Contributed by NM,
       18-Sep-2011.) $)
    isoml $p |- ( K e. OML <-> ( K e. OL /\ A. x e. B A. y e. B
       ( x .<_ y -> y = ( x .\/ ( y ./\ ( ._|_ ` x ) ) ) ) ) ) $=
      ( vk cv cfv co wral fveq2 syl6eqr cple wbr coc cmee cjn wceq cbs col coml
      wi breqd eqidd fveq1d oveq123d eqeq2d imbi12d raleqbidv df-oml elrab2 ) A
      OZBOZNOZUAPZUBZVAUTVAUTVBUCPZPZVBUDPZQZVBUEPZQZUFZUJZBVBUGPZRZAVMRUTVAFUB
      ZVAUTVAUTHPZGQZDQZUFZUJZBCRZACRNEUHUIVBEUFZVNWAAVMCWBVMEUGPCVBEUGSITZWBVL
      VTBVMCWCWBVDVOVKVSWBVCFUTVAWBVCEUAPFVBEUASJTUKWBVJVRVAWBUTUTVHVQVIDWBVIEU
      EPDVBEUESKTWBUTULWBVAVAVFVPVGGWBVGEUDPGVBEUDSLTWBVAULWBUTVEHWBVEEUCPHVBEU
      CSMTUMUNUNUOUPUQUQABNURUS $.
  $}

  ${
    $d x y B $.  $d x y K $.
    isomli.0 $e |- K e. OL $.
    isomli.b $e |- B = ( Base ` K ) $.
    isomli.l $e |- .<_ = ( le ` K ) $.
    isomli.j $e |- .\/ = ( join ` K ) $.
    isomli.m $e |- ./\ = ( meet ` K ) $.
    isomli.o $e |- ._|_ = ( oc ` K ) $.
    isomli.7 $e |- ( ( x e. B /\ y e. B ) ->
                      ( x .<_ y -> y = ( x .\/ ( y ./\ ( ._|_ ` x ) ) ) ) ) $.
    $( Properties that determine an orthomodular lattice.  (Contributed by NM,
       18-Sep-2011.)  (New usage is discouraged.) $)
    isomliN $p |- K e. OML $=
      ( coml wcel cv co wral col wbr cfv wceq wi rgen2a isoml mpbir2an ) EPQEUA
      QARZBRZFUBUJUIUJUIHUCGSDSUDUEZBCTACTIUKABCOUFABCDEFGHJKLMNUGUH $.
  $}

  ${
    $d x y K $.
    $( An orthomodular lattice is an ortholattice.  (Contributed by NM,
       18-Sep-2011.) $)
    omlol $p |- ( K e. OML -> K e. OL ) $=
      ( vx vy coml wcel col cv cple cfv wbr coc cmee co cjn wceq cbs wral isoml
      wi eqid simplbi ) ADEAFEBGZCGZAHIZJUCUBUCUBAKIZIALIZMANIZMOSCAPIZQBUHQBCU
      HUGAUDUFUEUHTUDTUGTUFTUETRUA $.
  $}

  $( An orthomodular lattice is an orthoposet.  (Contributed by NM,
     6-Nov-2011.) $)
  omlop $p |- ( K e. OML -> K e. OP ) $=
    ( coml wcel col cops omlol olop syl ) ABCADCAECAFAGH $.

  $( An orthomodular lattice is a lattice.  (Contributed by NM, 6-Nov-2011.) $)
  omllat $p |- ( K e. OML -> K e. Lat ) $=
    ( coml wcel col clat omlol ollat syl ) ABCADCAECAFAGH $.

  ${
    $d x y B $.  $d x y .\/ $.  $d x y K $.  $d x y ./\ $.  $d x y ._|_ $.
    $d x y .<_ $.  $d x y X $.  $d y Y $.
    omllaw.b $e |- B = ( Base ` K ) $.
    omllaw.l $e |- .<_ = ( le ` K ) $.
    omllaw.j $e |- .\/ = ( join ` K ) $.
    omllaw.m $e |- ./\ = ( meet ` K ) $.
    omllaw.o $e |- ._|_ = ( oc ` K ) $.
    $( The orthomodular law.  (Contributed by NM, 18-Sep-2011.) $)
    omllaw $p |- ( ( K e. OML /\ X e. B /\ Y e. B ) ->
            ( X .<_ Y -> Y = ( X .\/ ( Y ./\ ( ._|_ ` X ) ) ) ) ) $=
      ( vx vy wcel wbr co wceq wi coml cfv cv wral wa isoml simprbi breq1 fveq2
      col id oveq2d oveq12d eqeq2d imbi12d breq2 eqeq12d rspc2v syl5com 3impib
      oveq1 ) CUAPZGAPZHAPZGHDQZHGHGFUBZERZBRZSZTZVBNUCZOUCZDQZVLVKVLVKFUBZERZB
      RZSZTZOAUDNAUDZVCVDUEVJVBCUJPVSNOABCDEFIJKLMUFUGVRVJGVLDQZVLGVLVFERZBRZSZ
      TNOGHAAVKGSZVMVTVQWCVKGVLDUHWDVPWBVLWDVKGVOWABWDUKWDVNVFVLEVKGFUIULUMUNUO
      VLHSZVTVEWCVIVLHGDUPWEVLHWBVHWEUKWEWAVGGBVLHVFEVAULUQUOURUSUT $.

    $( Variation of orthomodular law.  Definition of OML law in [Kalmbach]
       p. 22.  ( ~ pjoml2i analog.)  (Contributed by NM, 6-Nov-2011.)
       (New usage is discouraged.) $)
    omllaw2N $p |- ( ( K e. OML /\ X e. B /\ Y e. B ) ->
            ( X .<_ Y -> ( X .\/ ( ( ._|_ ` X ) ./\ Y ) ) = Y ) ) $=
      ( coml wcel w3a wbr cfv co wceq omllaw eqcom omllat 3ad2ant1 omlop opoccl
      clat sylan 3adant3 simp3 latmcom syl3anc oveq2d eqeq2d syl5bb sylibrd
      cops ) CNOZGAOZHAOZPZGHDQHGHGFRZESZBSZTZGVBHESZBSZHTZABCDEFGHIJKLMUAVHHVG
      TVAVEVGHUBVAVGVDHVAVFVCGBVACUGOZVBAOZUTVFVCTURUSVIUTCUCUDURUSVJUTURCUQOUS
      VJCUEACFGIMUFUHUIURUSUTUJACEVBHILUKULUMUNUOUP $.
  $}

  ${
    omllaw3.b $e |- B = ( Base ` K ) $.
    omllaw3.l $e |- .<_ = ( le ` K ) $.
    omllaw3.m $e |- ./\ = ( meet ` K ) $.
    omllaw3.o $e |- ._|_ = ( oc ` K ) $.
    omllaw3.z $e |- .0. = ( 0. ` K ) $.
    $( Orthomodular law equivalent.  Theorem 2(ii) of [Kalmbach] p. 22.
       ( ~ pjoml analog.)  (Contributed by NM, 19-Oct-2011.) $)
    omllaw3 $p |- ( ( K e. OML /\ X e. B /\ Y e. B ) ->
            ( ( X .<_ Y /\ ( Y ./\ ( ._|_ ` X ) ) = .0. ) -> X = Y ) ) $=
      ( coml wcel w3a cfv co wceq wa wbr cjn oveq2 adantl col omlol olj01 sylan
      eqid 3adant3 adantr eqtr2d adantrl omllaw imp adantrr eqtr4d ex ) BNOZFAO
      ZGAOZPZFGCUAZGFEQDRZHSZTZFGSVBVFTFFVDBUBQZRZGVBVEFVHSVCVBVETVHFHVGRZFVEVH
      VISVBVDHFVGUCUDVBVIFSZVEUSUTVJVAUSBUEOUTVJBUFAVGBFHIVGUIZMUGUHUJUKULUMVBV
      CGVHSZVEVBVCVLAVGBCDEFGIJVKKLUNUOUPUQUR $.
  $}

  ${
    omllaw4.b $e |- B = ( Base ` K ) $.
    omllaw4.l $e |- .<_ = ( le ` K ) $.
    omllaw4.m $e |- ./\ = ( meet ` K ) $.
    omllaw4.o $e |- ._|_ = ( oc ` K ) $.
    $( Orthomodular law equivalent.  Remark in [Holland95] p. 223.
       (Contributed by NM, 19-Oct-2011.) $)
    omllaw4 $p |- ( ( K e. OML /\ X e. B /\ Y e. B ) ->
            ( X .<_ Y -> ( ( ._|_ ` ( ( ._|_ ` X ) ./\ Y ) ) ./\ Y ) = X ) ) $=
      ( wcel cfv wbr co wceq 3ad2ant1 opoccl syl2anc syl3anc coml w3a cjn simp1
      wi cops omlop simp3 simp2 eqid omllaw wb oplecon3b syl3an1 omllat opcon3b
      clat latmcl latjcom col omlol oldmm2 opococ oveq2d 3eqtr4d eqeq2d 3imtr4d
      bitrd ) BUALZFALZGALZUBZGEMZFEMZCNZVNVMVNVMEMZDOZBUCMZOZPZFGCNZVNGDOZEMZG
      DOZFPZVLVIVMALZVNALZVOVTUEVIVJVKUDVLBUFLZVKWFVIVJWHVKBUGZQZVIVJVKUHZABEGH
      KRSZVLWHVJWGWJVIVJVKUIZABEFHKRSZAVRBCDEVMVNHIVRUJZJKUKTVIWHVJVKWAVOULWIAB
      CEFGHIKUMUNVLWEVNWDEMZPZVTVLWHWDALZVJWEWQULWJVLBUQLZWCALZVKWRVIVJWSVKBUOQ
      ZVLWHWBALZWTWJVLWSWGVKXBXAWNWKABDVNGHJURTZABEWBHKRSWKABDWCGHJURTWMABEWDFH
      KUPTVLWPVSVNVLWBVMVROZVMWBVROZWPVSVLWSXBWFXDXEPXAXCWLAVRBWBVMHWOUSTVLBUTL
      ZXBVKWPXDPVIVJXFVKBVAQXCWKAVRBDEWBGHWOJKVBTVLVQWBVMVRVLVPGVNDVLWHVKVPGPWJ
      WKABEGHKVCSVDVDVEVFVHVG $.
  $}

  ${
    omllaw5.b $e |- B = ( Base ` K ) $.
    omllaw5.j $e |- .\/ = ( join ` K ) $.
    omllaw5.m $e |- ./\ = ( meet ` K ) $.
    omllaw5.o $e |- ._|_ = ( oc ` K ) $.
    $( The orthomodular law.  Remark in [Kalmbach] p. 22.  ( ~ pjoml5 analog.)
       (Contributed by NM, 14-Nov-2011.)  (New usage is discouraged.) $)
    omllaw5N $p |- ( ( K e. OML /\ X e. B /\ Y e. B ) ->
            ( X .\/ ( ( ._|_ ` X ) ./\ ( X .\/ Y ) ) ) = ( X .\/ Y ) ) $=
      ( coml wcel w3a co cple cfv wbr wceq syl3an1 simp1 simp2 clat omllat 3jca
      latjcl eqid latlej1 omllaw2N sylc ) CLMZFAMZGAMZNZUKULFGBOZAMZNFUOCPQZRZF
      FEQUODOBOUOSUNUKULUPUKULUMUAUKULUMUBUKCUCMZULUMUPCUDZABCFGHIUFTUEUKUSULUM
      URUTABCUQFGHUQUGZIUHTABCUQDEFUOHVAIJKUIUJ $.
  $}

  ${
    cmtcom.b $e |- B = ( Base ` K ) $.
    cmtcom.c $e |- C = ( cm ` K ) $.
    $( Lemma for ~ cmtcomN .  ( ~ cmcmlem analog.)  (Contributed by NM,
       7-Nov-2011.)  (New usage is discouraged.) $)
    cmtcomlemN $p |- ( ( K e. OML /\ X e. B /\ Y e. B ) -> ( X C Y ->
               Y C X ) ) $=
      ( coml wcel w3a cfv wceq wbr 3ad2ant1 eqid opoccl syl3anc syl3an1 adantr
      co cmee coc wa cple clat omllat cops omlop sylan 3adant3 simp3 latlej2 wb
      cjn latjcl latleeqm2 mpbid oveq2d omlol latmassOLD syl13anc oldmm1 oveq1d
      syl2anc 3eqtr4rd oldmj4 oldmj2 oveq12d eqeq2d biimpar fveq2d eqtr2d eqtrd
      simp1 latmcl 3jca latmle2 omllaw2N sylc latmcom 3eqtr3d ex cmtvalN 3com23
      col 3imtr4d ) CHIZDAIZEAIZJZDDECUAKZTZDECUBKZKZWKTZCUNKZTZLZEEDWKTZEDWMKZ
      WKTZWPTZLZDEBMEDBMZWJWRXCWJWRUCZWLWLWMKZEWKTZWPTZWLWTEWKTZWPTZEXBXEXGXIWL
      WPXEXGWTWNWPTZWTEWPTZWKTZEWKTZXIWJXGXNLWRWJXKXLEWKTZWKTZXKEWKTXNXGWJXOEXK
      WKWJEXLCUDKZMZXOELZWJCUEIZWTAIZWIXRWGWHXTWICUFZNZWGWHYAWIWGCUGIZWHYACUHZA
      CWMDFWMOZPUIUJZWGWHWIUKZAWPCXQWTEFXQOZWPOZULQWJXTWIXLAIZXRXSUMYCYHWJXTYAW
      IYKYCYGYHAWPCWTEFYJUOQZACXQWKEXLFYIWKOZUPQUQURWJCWEIZXKAIZYKWIXNXPLWGWHYN
      WICUSZNZWJXTYAWNAIZYOYCYGWJYDWIYRWGWHYDWIYENYHACWMEFYFPVDAWPCWTWNFYJUOQZY
      LYHACWKXKXLEFYMUTVAWJXFXKEWKWGYNWHWIXFXKLYPAWPCWKWMDEFYJYMYFVBRVCVESXEXMW
      TEWKXEWTXKWMKZXLWMKZWPTZWMKZXMXEDUUBWMWJDUUBLWRWJUUBWQDWJYTWLUUAWOWPWGYNW
      HWIYTWLLYPAWPCWKWMDEFYJYMYFVFRWGYNWHWIUUAWOLYPAWPCWKWMDEFYJYMYFVGRVHVIVJV
      KWJUUCXMLZWRWJYNYOYKUUDYQYSYLAWPCWKWMXKXLFYJYMYFVFQSVLVCVMURWJXHELZWRWJWG
      WLAIZWIJWLEXQMZUUEWJWGUUFWIWGWHWIVNWGXTWHWIUUFYBACWKDEFYMVORYHVPWGXTWHWIU
      UGYBACXQWKDEFYIYMVQRAWPCXQWKWMWLEFYIYJYMYFVRVSSWJXJXBLWRWJWLWSXIXAWPWGXTW
      HWIWLWSLYBACWKDEFYMVTRWJXTYAWIXIXALYCYGYHACWKWTEFYMVTQVHSWAWBHABWPCWKWMDE
      FYJYMYFGWCWGWIWHXDXCUMHABWPCWKWMEDFYJYMYFGWCWDWF $.

    $( Commutation is symmetric.  Theorem 2(v) in [Kalmbach] p. 22.  ( ~ cmcmi
       analog.)  (Contributed by NM, 7-Nov-2011.)
       (New usage is discouraged.) $)
    cmtcomN $p |- ( ( K e. OML /\ X e. B /\ Y e. B ) -> ( X C Y <->
               Y C X ) ) $=
      ( coml wcel w3a wbr cmtcomlemN wi 3com23 impbid ) CHIZDAIZEAIZJDEBKZEDBKZ
      ABCDEFGLPRQTSMABCEDFGLNO $.
  $}

  ${
    cmt2.b $e |- B = ( Base ` K ) $.
    cmt2.o $e |- ._|_ = ( oc ` K ) $.
    cmt2.c $e |- C = ( cm ` K ) $.
    $( Commutation with orthocomplement.  Theorem 2.3(i) of [Beran] p. 39.
       ( ~ cmcm2i analog.)  (Contributed by NM, 8-Nov-2011.)
       (New usage is discouraged.) $)
    cmt2N $p |- ( ( K e. OML /\ X e. B /\ Y e. B ) -> ( X C Y <->
               X C ( ._|_ ` Y ) ) ) $=
      ( coml wcel cfv co wceq wbr 3ad2ant1 eqid latmcl syl2anc syl3anc w3a cmee
      clat omllat syl3an1 simp2 omlop simp3 opoccl latjcom opococ oveq2d eqtr4d
      cjn cops eqeq2d cmtvalN wb syld3an3 3bitr4d ) CJKZEAKZFAKZUAZEEFCUBLZMZEF
      DLZVEMZCUNLZMZNEVHEVGDLZVEMZVIMZNZEFBOEVGBOZVDVJVMEVDVJVHVFVIMZVMVDCUCKZV
      FAKZVHAKZVJVPNVAVBVQVCCUDZPZVAVQVBVCVRVTACVEEFGVEQZRUEVDVQVBVGAKZVSWAVAVB
      VCUFVDCUOKZVCWCVAVBWDVCCUGPZVAVBVCUHZACDFGHUISZACVEEVGGWBRTAVICVFVHGVIQZU
      JTVDVLVFVHVIVDVKFEVEVDWDVCVKFNWEWFACDFGHUKSULULUMUPJABVICVEDEFGWHWBHIUQVA
      VBVCWCVOVNURWGJABVICVEDEVGGWHWBHIUQUSUT $.

    $( Commutation with orthocomplement.  Remark in [Kalmbach] p. 23.
       ( ~ cmcm4i analog.)  (Contributed by NM, 8-Nov-2011.)
       (New usage is discouraged.) $)
    cmt3N $p |- ( ( K e. OML /\ X e. B /\ Y e. B ) -> ( X C Y <->
               ( ._|_ ` X ) C Y ) ) $=
      ( coml wcel w3a wbr cfv wb cmt2N 3com23 cmtcomN cops omlop 3ad2ant1 simp2
      opoccl syl2anc syld3an2 3bitr4d ) CJKZEAKZFAKZLZFEBMZFEDNZBMZEFBMULFBMZUG
      UIUHUKUMOABCDFEGHIPQABCEFGIRUGULAKZUHUIUNUMOUJCSKZUHUOUGUHUPUICTUAUGUHUIU
      BACDEGHUCUDABCULFGIRUEUF $.

    $( Commutation with orthocomplement.  Remark in [Kalmbach] p. 23.
       ( ~ cmcm4i analog.)  (Contributed by NM, 8-Nov-2011.)
       (New usage is discouraged.) $)
    cmt4N $p |- ( ( K e. OML /\ X e. B /\ Y e. B ) -> ( X C Y <->
               ( ._|_ ` X ) C ( ._|_ ` Y ) ) ) $=
      ( coml wcel w3a wbr cfv cmt2N wb cops omlop 3ad2ant1 simp3 opoccl syl2anc
      cmt3N syld3an3 bitrd ) CJKZEAKZFAKZLZEFBMEFDNZBMZEDNUJBMZABCDEFGHIOUFUGUH
      UJAKZUKULPUICQKZUHUMUFUGUNUHCRSUFUGUHTACDFGHUAUBABCDEUJGHIUCUDUE $.
  $}

  ${
    cmtbr2.b $e |- B = ( Base ` K ) $.
    cmtbr2.j $e |- .\/ = ( join ` K ) $.
    cmtbr2.m $e |- ./\ = ( meet ` K ) $.
    cmtbr2.o $e |- ._|_ = ( oc ` K ) $.
    cmtbr2.c $e |- C = ( cm ` K ) $.
    $( Alternate definition of the commutes relation.  Remark in [Kalmbach]
       p. 23.  ( ~ cmbr2i analog.)  (Contributed by NM, 8-Nov-2011.)
       (New usage is discouraged.) $)
    cmtbr2N $p |- ( ( K e. OML /\ X e. B /\ Y e. B )
     -> ( X C Y <-> X = ( ( X .\/ Y ) ./\ ( X .\/ ( ._|_ ` Y ) ) ) ) ) $=
      ( wcel cfv co wceq wb 3ad2ant1 syl3anc coml cmt4N simp1 cops omlop opoccl
      w3a wbr simp2 syl2anc simp3 cmtvalN a1i clat omllat latjcl syl3an1 latmcl
      eqcom opcon3b col omlol oldmm1 oldmj1 oveq12d eqtrd eqeq2d 3bitrrd 3bitrd
      ) DUANZGANZHANZUGZGHBUHGFOZHFOZBUHZVNVNVOEPZVNVOFOEPZCPZQZGGHCPZGVOCPZEPZ
      QZABDFGHILMUBVMVJVNANZVOANZVPVTRVJVKVLUCVMDUDNZVKWEVJVKWGVLDUESZVJVKVLUIZ
      ADFGILUFUJVMWGVLWFWHVJVKVLUKADFHILUFUJZUAABCDEFVNVOIJKLMULTVMWDWCGQZVNWCF
      OZQZVTWDWKRVMGWCUSUMVMWGWCANZVKWKWMRWHVMDUNNZWAANZWBANZWNVJVKWOVLDUOZSZVJ
      WOVKVLWPWRACDGHIJUPUQZVMWOVKWFWQWSWIWJACDGVOIJUPTZADEWAWBIKURTWIADFWCGILU
      TTVMWLVSVNVMWLWAFOZWBFOZCPZVSVMDVANZWPWQWLXDQVJVKXEVLDVBZSZWTXAACDEFWAWBI
      JKLVCTVMXBVQXCVRCVJXEVKVLXBVQQXFACDEFGHIJKLVDUQVMXEVKWFXCVRQXGWIWJACDEFGV
      OIJKLVDTVEVFVGVHVI $.

    $( Alternate definition for the commutes relation.  Lemma 3 of [Kalmbach]
       p. 23.  ( ~ cmbr3 analog.)  (Contributed by NM, 8-Nov-2011.)
       (New usage is discouraged.) $)
    cmtbr3N $p |- ( ( K e. OML /\ X e. B /\ Y e. B )
     -> ( X C Y <-> ( X ./\ ( ( ._|_ ` X ) .\/ Y ) ) = ( X ./\ Y ) ) ) $=
      ( wcel wbr cfv co wceq 3ad2ant1 syl3anc coml w3a cmtcomN wb cmtbr2N bitrd
      3com23 oveq2 adantl col omlol simp2 clat omllat simp3 latjcl omlop opoccl
      wa cops syl2anc latmassOLD syl13anc latjcom latabs2 syl3an1 eqtrd oveq12d
      oveq2d eqtr3d adantr eqtr2d ex sylbid cple simp1 latmcl 3jca eqid latmle1
      omllaw2N sylc oldmm3N latmcom eqeq1d oveq1 syl6bi cmtvalN sylibrd impbid
      imp ) DUANZGANZHANZUBZGHBOZGGFPZHCQZEQZGHEQZRZWOWPHHGCQZHWQCQZEQZRZXAWOWP
      HGBOZXEABDGHIMUCWLWNWMXFXEUDABCDEFHGIJKLMUEUGUFWOXEXAWOXEUSWTGXDEQZWSXEWT
      XGRWOHXDGEUHUIWOXGWSRXEWOGXBEQZXCEQZXGWSWODUJNZWMXBANZXCANZXIXGRWLWMXJWND
      UKZSWLWMWNULZWODUMNZWNWMXKWLWMXOWNDUNZSZWLWMWNUOZXNACDHGIJUPTWOXOWNWQANZX
      LXQXRWODUTNZWMXSWLWMXTWNDUQSZXNADFGILURVAZACDHWQIJUPTADEGXBXCIKVBVCWOXHGX
      CWREWOXHGGHCQZEQZGWOXBYCGEWOXOWNWMXBYCRXQXRXNACDHGIJVDTVIWLXOWMWNYDGRXPAC
      DEGHIJKVEVFVGWOXOWNXSXCWRRXQXRYBACDHWQIJVDTVHVJVKVLVMVNWOXAGWTGHFPZEQZCQZ
      RZWPWOXAYHWOXAUSGYFFPZGEQZYFCQZYGWOGYKRXAWOYFYJCQZGYKWOWLYFANZWMUBYFGDVOP
      ZOZYLGRWOWLYMWMWLWMWNVPWOXOWMYEANZYMXQXNWOXTWNYPYAXRADFHILURVAZADEGYEIKVQ
      TZXNVRWOXOWMYPYOXQXNYQADYNEGYEIYNVSZKVTTACDYNEFYFGIYSJKLWAWBWOXOYMYJANZYL
      YKRXQYRWOXOYIANZWMYTXQWOXTYMUUAYAYRADFYFILURVAZXNADEYIGIKVQTACDYFYJIJVDTV
      JVKWOXAYKYGRZWOXAYJWTRUUCWOWSYJWTWOGYIEQZWSYJWOYIWRGEWLXJWMWNYIWRRXMACDEF
      GHIJKLWCVFVIWOXOWMUUAUUDYJRXQXNUUBADEGYIIKWDTVJWEYJWTYFCWFWGWKVGVMUAABCDE
      FGHIJKLMWHWIWJ $.
  $}

  ${
    cmtbr4.b $e |- B = ( Base ` K ) $.
    cmtbr4.l $e |- .<_ = ( le ` K ) $.
    cmtbr4.j $e |- .\/ = ( join ` K ) $.
    cmtbr4.m $e |- ./\ = ( meet ` K ) $.
    cmtbr4.o $e |- ._|_ = ( oc ` K ) $.
    cmtbr4.c $e |- C = ( cm ` K ) $.
    $( Alternate definition for the commutes relation.  ( ~ cmbr4i analog.)
       (Contributed by NM, 10-Nov-2011.)  (New usage is discouraged.) $)
    cmtbr4N $p |- ( ( K e. OML /\ X e. B /\ Y e. B )
     -> ( X C Y <-> ( X ./\ ( ( ._|_ ` X ) .\/ Y ) ) .<_ Y ) ) $=
      ( wcel wbr co syl3an1 syl3anc coml w3a cfv wceq cmtbr3N clat omllat breq1
      latmle2 syl5ibrcom 3ad2ant1 simp2 cops omlop opoccl syl2anc simp3 latmle1
      wa latjcl anim1i ex wb latmcl latlem12 syl13anc sylibd wi latmlem2 jctird
      latlej2 mpd latasymb impbid bitrd ) DUAPZHAPZIAPZUBZHIBQHHGUCZICRZFRZHIFR
      ZUDZWBIEQZABCDFGHIJLMNOUEVSWDWEVSWEWDWCIEQZVPDUFPZVQVRWFDUGZADEFHIJKMUISW
      BWCIEUHUJVSWEWBWCEQZWCWBEQZUSZWDVSWEWIWJVSWEWBHEQZWEUSZWIVSWEWMVSWLWEVSWG
      VQWAAPZWLVPVQWGVRWHUKZVPVQVRULZVSWGVTAPZVRWNWOVSDUMPZVQWQVPVQWRVRDUNUKWPA
      DGHJNUOUPZVPVQVRUQZACDVTIJLUTTZADEFHWAJKMURTVAVBVSWGWBAPZVQVRWMWIVCWOVSWG
      VQWNXBWOWPXAADFHWAJMVDTZWPWTADEFWBHIJKMVEVFVGVSIWAEQZWJVSWGWQVRXDWOWSWTAC
      DEVTIJKLVKTVSWGVRWNVQXDWJVHWOWTXAWPADEFIWAHJKMVIVFVLVJVSWGXBWCAPZWKWDVCWO
      XCVPWGVQVRXEWHADFHIJMVDSADEWBWCJKVMTVGVNVO $.
  $}

  ${
    lecmt.b $e |- B = ( Base ` K ) $.
    lecmt.l $e |- .<_ = ( le ` K ) $.
    lecmt.c $e |- C = ( cm ` K ) $.
    $( Ordered elements commute.  ( ~ lecmi analog.)  (Contributed by NM,
       10-Nov-2011.)  (New usage is discouraged.) $)
    lecmtN $p |- ( ( K e. OML /\ X e. B /\ Y e. B )
     -> ( X .<_ Y -> X C Y ) ) $=
      ( coml wcel w3a wbr coc cfv cjn co 3ad2ant1 eqid syl3anc cmee clat omllat
      simp2 cops omlop opoccl syl2anc simp3 latjcl latmle1 wa wi lattr syl13anc
      latmcl mpand cmtbr4N sylibrd ) CJKZEAKZFAKZLZEFDMZEECNOZOZFCPOZQZCUAOZQZF
      DMZEFBMVCVJEDMZVDVKVCCUBKZVAVHAKZVLUTVAVMVBCUCRZUTVAVBUDZVCVMVFAKZVBVNVOV
      CCUEKZVAVQUTVAVRVBCUFRVPACVEEGVESZUGUHUTVAVBUIZAVGCVFFGVGSZUJTZACDVIEVHGH
      VISZUKTVCVMVJAKZVAVBVLVDULVKUMVOVCVMVAVNWDVOVPWBACVIEVHGWCUPTVPVTACDVJEFG
      HUNUOUQABVGCDVIVEEFGHWAWCVSIURUS $.
  $}

  ${
    cmtid.b $e |- B = ( Base ` K ) $.
    cmtid.c $e |- C = ( cm ` K ) $.
    $( Any element commutes with itself.  ( ~ cmidi analog.)  (Contributed by
       NM, 6-Dec-2013.)  (New usage is discouraged.) $)
    cmtidN $p |- ( ( K e. OML /\ X e. B ) -> X C X ) $=
      ( coml wcel wa cple cfv wbr clat omllat eqid latref sylan lecmtN 3anidm23
      wi mpd ) CGHZDAHZIDDCJKZLZDDBLZUBCMHUCUECNACUDDEUDOZPQUBUCUEUFTABCUDDDEUG
      FRSUA $.
  $}

  ${
    omlfh1.b $e |- B = ( Base ` K ) $.
    omlfh1.j $e |- .\/ = ( join ` K ) $.
    omlfh1.m $e |- ./\ = ( meet ` K ) $.
    omlfh1.c $e |- C = ( cm ` K ) $.
    $( Foulis-Holland Theorem, part 1.  If any 2 pairs in a triple of
       orthomodular lattice elements commute, the triple is distributive.  Part
       of Theorem 5 in [Kalmbach] p. 25.  ( ~ fh1 analog.)  (Contributed by NM,
       8-Nov-2011.)  (New usage is discouraged.) $)
    omlfh1N $p |- ( ( K e. OML /\ ( X e. B /\ Y e. B /\ Z e. B ) /\
     ( X C Y /\ X C Z ) )
   -> ( X ./\ ( Y .\/ Z ) ) = ( ( X ./\ Y ) .\/ ( X ./\ Z ) ) ) $=
      ( wcel wbr co cfv wceq 3adant3 syl3anc latmcl coml w3a wa cple coc omllat
      cp0 clat eqid latledi sylan adantr simpr1 simpr2 simpr3 latmcom col omlol
      latjcl oldmj1 oldmm1 oveq12d eqtrd cops omlop syl2anc latmassOLD syl13anc
      opoccl cmt2N 3adant3r3 simpl cmtbr3N bitrd biimpa adantrr 3impa 3adant3r2
      wb adantrl latmmdiN 3eqtr4d oveq2d latm12 3eqtrd opnoncon eqtr3d olm01 wi
      omllaw3 mp2and eqcomd ) DUAMZFAMZGAMZHAMZUBZFGBNZFHBNZUCZUBZFGEOZFHEOZCOZ
      FGHCOZEOZXAXDXFDUDPZNZXFXDDUEPZPZEOZDUGPZQZXDXFQZWMWQXHWTWMDUHMZWQXHDUFZA
      CDXGEFGHIXGUIZJKUJUKRXAXKXEFEOZFXIPZGXIPZCOZXSHXIPZCOZEOZEOZFXEXTYBEOZEOZ
      EOZXLWMWQXKYEQWTWMWQUCZXFXRXJYDEYIXOWNXEAMZXFXRQWMXOWQXPULZWMWNWOWPUMZYIX
      OWOWPYJYKWMWNWOWPUNZWMWNWOWPUOZACDGHIJUSSZADEFXEIKUPSYIXJXBXIPZXCXIPZEOZY
      DYIDUQMZXBAMZXCAMZXJYRQWMYSWQDURULZYIXOWNWOYTYKYLYMADEFGIKTSZYIXOWNWPUUAY
      KYLYNADEFHIKTSZACDEXIXBXCIJKXIUIZUTSYIYPYAYQYCEYIYSWNWOYPYAQUUBYLYMACDEXI
      FGIJKUUEVASYIYSWNWPYQYCQUUBYLYNACDEXIFHIJKUUEVASVBVCVBRXAYEXEFYDEOZEOZXEF
      YFEOZEOZYHWMWQYEUUGQZWTYIYSYJWNYDAMZUUJUUBYOYLYIXOYAAMZYCAMZUUKYKYIXOXSAM
      ZXTAMZUULYKYIDVDMZWNUUNWMUUPWQDVEULZYLADXIFIUUEVIVFZYIUUPWOUUOUUQYMADXIGI
      UUEVIVFZACDXSXTIJUSSZYIXOUUNYBAMZUUMYKUURYIUUPWPUVAUUQYNADXIHIUUEVIVFZACD
      XSYBIJUSSZADEYAYCIKTSADEXEFYDIKVGVHRXAUUFUUHXEEXAFYAEOZFYCEOZEOZFXTEOZFYB
      EOZEOZUUFUUHXAUVDUVGUVEUVHEWMWQWTUVDUVGQZYIWRUVJWSYIWRUVJYIWRFXTBNZUVJWMW
      NWOWRUVKVSWPABDXIFGIUUELVJVKYIWMWNUUOUVKUVJVSWMWQVLZYLUUSABCDEXIFXTIJKUUE
      LVMSVNVOVPVQWMWQWTUVEUVHQZYIWSUVMWRYIWSUVMYIWSFYBBNZUVMWMWNWPWSUVNVSWOABD
      XIFHIUUELVJVRYIWMWNUVAUVNUVMVSUVLYLUVBABCDEXIFYBIJKUUELVMSVNVOVTVQVBWMWQU
      UFUVFQZWTYIYSWNUULUUMUVOUUBYLUUTUVCADEFYAYCIKWAVHRWMWQUUHUVIQZWTYIYSWNUUO
      UVAUVPUUBYLUUSUVBADEFXTYBIKWAVHRWBWCWMWQUUIYHQZWTYIYSYJWNYFAMZUVQUUBYOYLY
      IXOUUOUVAUVRYKUUSUVBADEXTYBIKTSADEXEFYFIKWDVHRWEWMWQYHXLQWTYIYHFXLEOZXLYI
      YGXLFEYIXEXEXIPZEOZYGXLYIUVTYFXEEYIYSWOWPUVTYFQUUBYMYNACDEXIGHIJKUUEUTSWC
      YIUUPYJUWAXLQUUQYOADEXIXEXLIUUEKXLUIZWFVFWGWCYIYSWNUVSXLQUUBYLADEFXLIKUWB
      WHVFVCRWEWMWQXHXMUCXNWIZWTYIWMXDAMZXFAMZUWCUVLYIXOYTUUAUWDYKUUCUUDACDXBXC
      IJUSSYIXOWNYJUWEYKYLYOADEFXEIKTSADXGEXIXDXFXLIXQKUUEUWBWJSRWKWL $.

    $( Foulis-Holland Theorem, part 3.  Dual of ~ omlfh1N .  (Contributed by
       NM, 8-Nov-2011.)  (New usage is discouraged.) $)
    omlfh3N $p |- ( ( K e. OML /\ ( X e. B /\ Y e. B /\ Z e. B ) /\
     ( X C Y /\ X C Z ) )
         -> ( X .\/ ( Y ./\ Z ) ) = ( ( X .\/ Y ) ./\ ( X .\/ Z ) ) ) $=
      ( wcel w3a wbr wa cfv co wceq syl3anc coml eqid cmt4N 3adant3r3 3adant3r2
      wb anbi12d wi simpl cops omlop adantr simpr1 opoccl syl2anc simpr2 simpr3
      coc 3jca omlfh1N fveq2d 3exp sylbid 3impia col omlol omllat latjcl oldmm2
      sylc oldmj4 oveq2d eqtr2d 3adant3 latmcl oldmj1 oldmm4 oveq12d 3eqtr4d
      clat ) DUAMZFAMZGAMZHAMZNZFGBOZFHBOZPZNFDURQZQZGWIQZHWIQZCRZERZWIQZWJWKER
      ZWJWLERZCRZWIQZFGHERZCRZFGCRZFHCRZERZWAWEWHWOWSSZWAWEPZWHWJWKBOZWJWLBOZPZ
      XEXFWFXGWGXHWAWBWCWFXGUFWDABDWIFGIWIUBZLUCUDWAWBWDWGXHUFWCABDWIFHIXJLUCUE
      UGXFWAWJAMZWKAMZWLAMZNZXIXEUHWAWEUIXFXKXLXMXFDUJMZWBXKWAXOWEDUKULZWAWBWCW
      DUMZADWIFIXJUNUOZXFXOWCXLXPWAWBWCWDUPZADWIGIXJUNUOZXFXOWDXMXPWAWBWCWDUQZA
      DWIHIXJUNUOZUSWAXNXIXEWAXNXINWNWRWIABCDEWJWKWLIJKLUTVAVBVJVCVDWAWEXAWOSWH
      XFWOFWMWIQZCRZXAXFDVEMZWBWMAMZWOYDSWAYEWEDVFULZXQXFDVTMZXLXMYFWAYHWEDVGUL
      ZXTYBACDWKWLIJVHTACDEWIFWMIJKXJVITXFYCWTFCXFYEWCWDYCWTSYGXSYAACDEWIGHIJKX
      JVKTVLVMVNWAWEXDWSSWHXFWSWPWIQZWQWIQZERZXDXFYEWPAMZWQAMZWSYLSYGXFYHXKXLYM
      YIXRXTADEWJWKIKVOTXFYHXKXMYNYIXRYBADEWJWLIKVOTACDEWIWPWQIJKXJVPTXFYJXBYKX
      CEXFYEWBWCYJXBSYGXQXSACDEWIFGIJKXJVQTXFYEWBWDYKXCSYGXQYAACDEWIFHIJKXJVQTV
      RVMVNVS $.
  $}

  ${
    omlmod.b $e |- B = ( Base ` K ) $.
    omlmod.l $e |- .<_ = ( le ` K ) $.
    omlmod.j $e |- .\/ = ( join ` K ) $.
    omlmod.m $e |- ./\ = ( meet ` K ) $.
    omlmod.c $e |- C = ( cm ` K ) $.
    $( Analogue of modular law ~ atmod1i2 that holds in any OML. (Contributed
       by NM, 6-Dec-2013.)  (New usage is discouraged.) $)
    omlmod1i2N $p |- ( ( K e. OML /\ ( X e. B /\ Y e. B /\ Z e. B )
           /\ ( X .<_ Z /\ Y C Z ) )
        -> ( X .\/ ( Y ./\ Z ) ) = ( ( X .\/ Y ) ./\ Z ) ) $=
      ( wcel wbr co wceq syl3anc wb w3a wa simp1 simp23 simp21 simp22 simp3l wi
      coml lecmtN mpd cmtcomN mpbid simp3r omlfh1N syl132anc clat omllat latjcl
      3ad2ant1 latmcom latleeqm2 oveq12d 3eqtr3rd ) DUIOZGAOZHAOZIAOZUAZGIEPZHI
      BPZUBZUAZIGHCQZFQZIGFQZIHFQZCQZVNIFQZGHIFQZCQVMVEVHVFVGIGBPZIHBPZVOVRRVEV
      IVLUCZVEVFVGVHVLUDZVEVFVGVHVLUEZVEVFVGVHVLUFZVMGIBPZWAVMVJWGVEVIVJVKUGZVM
      VEVFVHVJWGUHWCWEWDABDEGIJKNUJSUKVMVEVFVHWGWATWCWEWDABDGIJNULSUMVMVKWBVEVI
      VJVKUNVMVEVGVHVKWBTWCWFWDABDHIJNULSUMABCDFIGHJLMNUOUPVMDUQOZVHVNAOZVOVSRV
      EVIWIVLDURUTZWDVMWIVFVGWJWKWEWFACDGHJLUSSADFIVNJMVASVMVPGVQVTCVMVJVPGRZWH
      VMWIVFVHVJWLTWKWEWDADEFGIJKMVBSUMVMWIVHVGVQVTRWKWDWFADFIHJMVASVCVD $.
  $}

  ${
    omlspj.b $e |- B = ( Base ` K ) $.
    omlspj.l $e |- .<_ = ( le ` K ) $.
    omlspj.j $e |- .\/ = ( join ` K ) $.
    omlspj.m $e |- ./\ = ( meet ` K ) $.
    omlspj.o $e |- ._|_ = ( oc ` K ) $.
    $( Contraction of a Sasaki projection.  (Contributed by NM, 6-Dec-2013.)
       (New usage is discouraged.) $)
    omlspjN $p |- ( ( K e. OML /\ ( X e. B /\ Y e. B ) /\ X .<_ Y )
        -> ( ( X .\/ ( ._|_ ` Y ) ) ./\ Y ) = X ) $=
      ( wcel wbr cfv co wceq 3ad2ant1 syl2anc coml wa w3a cp0 clat omllat omlop
      cops simp2r opoccl latmcom syl3anc eqid opnoncon eqtrd oveq2d ccmtN simp1
      simp2l simp3 cmtidN wb cmt3N mpbid omlmod1i2N syl132anc col omlol 3eqtr3d
      olj01 ) CUANZGANZHANZUBZGHDOZUCZGHFPZHEQZBQZGCUDPZBQZGVQBQHEQZGVPVRVTGBVP
      VRHVQEQZVTVPCUENZVQANZVMVRWCRVKVNWDVOCUFSVPCUHNZVMWEVKVNWFVOCUGSZVKVLVMVO
      UIZACFHIMUJTZWHACEVQHILUKULVPWFVMWCVTRWGWHACEFHVTIMLVTUMZUNTUOUPVPVKVLWEV
      MVOVQHCUQPZOZVSWBRVKVNVOURZVKVLVMVOUSZWIWHVKVNVOUTVPHHWKOZWLVPVKVMWOWMWHA
      WKCHIWKUMZVATVPVKVMVMWOWLVBWMWHWHAWKCFHHIMWPVCULVDAWKBCDEGVQHIJKLWPVEVFVP
      CVGNZVLWAGRVKVNWQVOCVHSWNABCGVTIKWJVJTVI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Atomic lattices with covering property
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c <o $.
  $c Atoms $.
  $c AtLat $.
  $(
  $c AtsLat $.
  $)
  $c CvLat $.

  $( Extend class notation with covers relation. $)
  ccvr $a class <o $.

  $( Extend class notation with atoms. $)
  catm $a class Atoms $.

  $( Extend class notation with atomic lattices. $)
  cal $a class AtLat $.

  $( Extend class notation with atomistic lattices. $)
  $(
  cas $a class AtsLat $.
  $)

  $( Extend class notation with lattices with the covering property. $)
  clc $a class CvLat $.

  ${
    $d p z a b $.
    $( Define the covers relation ("is covered by") for posets.  " ` a ` is
       covered by ` b ` " means that ` a ` is strictly less than ` b ` and
       there is nothing in between.  See ~ cvrval for the relation form.
       (Contributed by NM, 18-Sep-2011.) $)
    df-covers $a |- <o = ( p e. _V |-> { <. a , b >. | ( ( a e. ( Base ` p )
               /\ b e. ( Base ` p ) )
           /\ a ( lt ` p ) b /\ -. E. z e. ( Base ` p )
              ( a ( lt ` p ) z /\ z ( lt ` p ) b ) ) } ) $.

    $( Define the class of poset atoms.  (Contributed by NM, 18-Sep-2011.) $)
    df-ats $a |- Atoms = ( p e. _V |-> { a e. ( Base ` p ) |
                      ( 0. ` p ) ( <o ` p ) a } ) $.
  $}

  ${
    $d p x y z B $.  $d p x y z K $.  $d p .< $.
    cvrfval.b $e |- B = ( Base ` K ) $.
    cvrfval.s $e |- .< = ( lt ` K ) $.
    cvrfval.c $e |- C = ( <o ` K ) $.
    $( Value of covers relation "is covered by".  (Contributed by NM,
       18-Sep-2011.) $)
    cvrfval $p |- ( K e. A -> C = { <. x , y >. | ( ( x e. B /\ y e. B )
                  /\ x .< y /\ -. E. z e. B ( x .< z /\ z .< y ) ) } ) $=
      ( vp wcel cvv cv wa wbr copab cfv cbs wrex wn wceq elex ccvr cplt syl6eqr
      w3a fveq2 eleq2d anbi12d breqd rexeqbidv notbid 3anbi123d opabbidv 3anass
      df-covers opabbii cxp fvex eqeltri xpex opabssxp ssexi fvmpt syl5eq syl )
      HDMHNMZFAOZEMZBOZEMZPZVJVLGQZVJCOZGQZVPVLGQZPZCEUAZUBZUHZABRZUCHDUDVIFHUE
      SWCKLHVJLOZTSZMZVLWEMZPZVJVLWDUFSZQZVJVPWIQZVPVLWIQZPZCWEUAZUBZUHZABRWCNU
      EWDHUCZWPWBABWQWHVNWJVOWOWAWQWFVKWGVMWQWEEVJWQWEHTSZEWDHTUIIUGZUJWQWEEVLW
      SUJUKWQWIGVJVLWQWIHUFSGWDHUFUIJUGZULWQWNVTWQWMVSCWEEWSWQWKVQWLVRWQWIGVJVP
      WTULWQWIGVPVLWTULUKUMUNUOUPCLABURWCVNVOWAPZPZABRZNWBXBABVNVOWAUQUSXCEEUTE
      EEWRNIHTVAVBZXDVCXAABEEVDVEVBVFVGVH $.

    $d x y .< $.  $d x y z X $.  $d x y z Y $.
    $( Binary relation expressing ` B ` covers ` A ` , which means that ` B `
       is larger than ` A ` and there is nothing in between.  Definition 3.2.18
       of [PtakPulmannova] p. 68.  ( ~ cvbr analog.)  (Contributed by NM,
       18-Sep-2011.) $)
    cvrval $p |- ( ( K e. A /\ X e. B /\ Y e. B ) -> ( X C Y <->
               ( X .< Y /\ -. E. z e. B ( X .< z /\ z .< Y ) ) ) ) $=
      ( vx vy wcel w3a wbr cv wa wrex wn copab wb cvrfval 3anass opabbii syl6eq
      breqd 3ad2ant1 cop df-br breq1 anbi1d rexbidv notbid anbi12d breq2 anbi2d
      wceq opelopab2 syl5bb 3adant1 bitrd ) FBNZGCNZHCNZOGHDPZGHLQZCNMQZCNRZVGV
      HEPZVGAQZEPZVKVHEPZRZACSZTZRZRZLMUAZPZGHEPZGVKEPZVKHEPZRZACSZTZRZVCVDVFVT
      UBVEVCDVSGHVCDVIVJVPOZLMUAVSLMABCDEFIJKUCWHVRLMVIVJVPUDUEUFUGUHVDVEVTWGUB
      VCVTGHUIVSNVDVERWGGHVSUJVQGVHEPZWBVMRZACSZTZRWGLMGHCCVGGURZVJWIVPWLVGGVHE
      UKWMVOWKWMVNWJACWMVLWBVMVGGVKEUKULUMUNUOVHHURZWIWAWLWFVHHGEUPWNWKWEWNWJWD
      ACWNVMWCWBVHHVKEUPUQUMUNUOUSUTVAVB $.

    $( The covers relation implies the less-than relation.  ( ~ cvpss analog.)
       (Contributed by NM, 8-Oct-2011.) $)
    cvrlt $p |- ( ( ( K e. A /\ X e. B /\ Y e. B ) /\ X C Y ) -> X .< Y ) $=
      ( vz wcel w3a wbr cv wa wrex wn cvrval simprbda ) EALFBLGBLMFGCNFGDNFKOZD
      NUAGDNPKBQRKABCDEFGHIJST $.

    $d z .< $.  $d z Z $.
    $( There is no element between the two arguments of the covers relation.
       ( ~ cvnbtwn analog.)  (Contributed by NM, 18-Oct-2011.) $)
    cvrnbtwn $p |- ( ( K e. A /\ ( X e. B /\ Y e. B /\ Z e. B ) /\ X C Y )
             -> -. ( X .< Z /\ Z .< Y ) ) $=
      ( vz wcel w3a wbr wa wn cv wrex wb cvrval 3adant3r3 wi ralnex breq2 breq1
      wral anbi12d notbid rspcv syl5bir adantld 3ad2ant3 adantl sylbid 3impia
      wceq ) EAMZFBMZGBMZHBMZNZFGCOZFHDOZHGDOZPZQZURVBPVCFGDOZFLRZDOZVIGDOZPZLB
      SQZPZVGURUSUTVCVNTVALABCDEFGIJKUAUBVBVNVGUCZURVAUSVOUTVAVMVGVHVMVLQZLBUGV
      AVGVLLBUDVPVGLHBVIHUQZVLVFVQVJVDVKVEVIHFDUEVIHGDUFUHUIUJUKULUMUNUOUP $.
  $}

  ${
    ncvr1.b $e |- B = ( Base ` K ) $.
    ncvr1.u $e |- .1. = ( 1. ` K ) $.
    ncvr1.c $e |- C = ( <o ` K ) $.
    $( No element covers the lattice unit.  (Contributed by NM, 8-Jul-2013.) $)
    ncvr1 $p |- ( ( K e. OP /\ X e. B ) -> -. .1. C X ) $=
      ( cops wcel wa wbr cplt cfv cple eqid ad2antrr simplr simpr syl31anc mt2d
      ople1 wn cpo opposet op1cl pltnle ex simpll cvrlt mtand ) DIJZEAJZKZCEBLZ
      CEDMNZLZUNUQECDONZLZACDUREFURPZGUBUNUQUSUCZUNUQKDUDJZCAJZUMUQVAULVBUMUQDU
      EQULVCUMUQACDFGUFZQULUMUQRUNUQSAUPDURCEFUTUPPZUGTUHUAUNUOKULVCUMUOUQULUMU
      OUIULVCUMUOVDQULUMUORUNUOSIABUPDCEFVEHUJTUK $.
  $}

  ${
    cvrletr.b $e |- B = ( Base ` K ) $.
    cvrletr.l $e |- .<_ = ( le ` K ) $.
    cvrletr.s $e |- .< = ( lt ` K ) $.
    cvrletr.c $e |- C = ( <o ` K ) $.
    $( Property of an element above a covering.  (Contributed by NM,
       7-Dec-2012.)  (New usage is discouraged.) $)
    cvrletrN $p |- ( ( K e. Poset /\ ( X e. B /\ Y e. B /\ Z e. B ) )
               -> ( ( X C Y /\ Y .<_ Z ) -> X .< Z ) ) $=
      ( cpo wcel w3a wa wbr simpll simplr1 simplr2 simpr cvrlt syl31anc pltletr
      wi adantr mpand expimpd ) DMNZFANZGANZHANZOZPZFGBQZGHEQZFHCQZUNUOPZFGCQZU
      PUQURUIUJUKUOUSUIUMUORUJUKULUIUOSUJUKULUIUOTUNUOUAMABCDFGIKLUBUCUNUSUPPUQ
      UEUOACDEFGHIJKUDUFUGUH $.

    $d z A $.  $d z B $.  $d z K $.  $d z X $.  $d z Y $.
    $( Binary relation expressing ` Y ` covers ` X ` .  Definition of covers in
       [Kalmbach] p. 15.  ( ~ cvbr2 analog.)  (Contributed by NM,
       16-Nov-2011.) $)
    cvrval2 $p |- ( ( K e. A /\ X e. B /\ Y e. B ) -> ( X C Y <->
              ( X .< Y /\ A. z e. B ( ( X .< z /\ z .<_ Y ) -> z = Y ) ) ) ) $=
      ( wcel wbr wa wn wral wb anbi2d w3a cv wrex wceq wi cvrval wne iman df-ne
      anbi2i xchbinxr pltval 3com23 3expa anass syl6rbbr notbid syl5bb ralbidva
      ralnex syl6bb 3adant2 bitr4d ) FBNZHCNZICNZUAHIDOHIEOZHAUBZEOZVHIEOZPZACU
      CQZPZVGVIVHIGOZPZVHIUDZUEZACRZPZABCDEFHIJLMUFVDVFVSVMSVEVDVFPZVRVLVGVTVRV
      KQZACRVLVTVQWAACVQVOVHIUGZPZQVTVHCNZPZWAVQVOVPQZPWCVOVPUHWBWFVOVHIUIUJUKW
      EWCVKWEVKVIVNWBPZPWCWEVJWGVIVDVFWDVJWGSZVDWDVFWHBCCEFGVHIKLULUMUNTVIVNWBU
      OUPUQURUSVKACUTVATVBVC $.

    $( The covers relation implies no in-betweenness.  ( ~ cvnbtwn2 analog.)
       (Contributed by NM, 17-Nov-2011.) $)
    cvrnbtwn2 $p |- ( ( K e. Poset /\ ( X e. B /\ Y e. B /\ Z e. B )
                        /\ X C Y )
             -> ( ( X .< Z /\ Z .<_ Y ) <-> Z = Y ) ) $=
      ( cpo wcel w3a wbr wa wi wn 3impia wceq cvrnbtwn 3expia iman wne wb simpl
      simpr3 simpr2 pltval syl3anc anbi2i syl6bb anbi2d syl6rbbr notbid syl5rbb
      df-ne anass sylibd cvrlt ex 3adant3r3 syl5ibrcom posref 3ad2antr2 3adant3
      breq2 breq1 jcad impbid ) DMNZFANZGANZHANZOZFGBPZOZFHCPZHGEPZQZHGUAZVLVPV
      QWAWBRZVLVPQZVQVSHGCPZQZSZWCVLVPVQWGMABCDFGHIKLUBUCWCWAWBSZQZSWDWGWAWBUDW
      DWIWFWDWFVSVTWHQZQWIWDWEWJVSWDWEVTHGUEZQZWJWDVLVOVNWEWLUFVLVPUGVLVMVNVOUH
      VLVMVNVOUIMAACDEHGJKUJUKWKWHVTHGURULUMUNVSVTWHUSUOUPUQUTTVRWBVSVTVRVSWBFG
      CPZVLVPVQWMVLVMVNVQWMRVOVLVMVNOVQWMMABCDFGIKLVAVBVCTHGFCVHVDVLVPWBVTRVQWD
      VTWBGGEPZVLVMVNWNVOADEGIJVEVFHGGEVIVDVGVJVK $.

    $( The covers relation implies no in-betweenness.  ( ~ cvnbtwn3 analog.)
       (Contributed by NM, 4-Nov-2011.) $)
    cvrnbtwn3 $p |- ( ( K e. Poset /\ ( X e. B /\ Y e. B /\ Z e. B )
                        /\ X C Y )
             -> ( ( X .<_ Z /\ Z .< Y ) <-> X = Z ) ) $=
      ( cpo wcel w3a wbr wa wn wi 3adant3 wceq cvrnbtwn wne wb pltval 3adant3r2
      anbi1d notbid an32 df-ne anbi2i bitri notbii iman bitr4i syl6bb syl5ibcom
      mpbid posref breq2 3ad2antr1 simp1 simp21 simp3 cvrlt syl31anc breq1 jcad
      simp22 impbid ) DMNZFANZGANZHANZOZFGBPZOZFHEPZHGCPZQZFHUAZVQFHCPZVSQZRZVT
      WASZMABCDFGHIKLUBVQWDVRFHUCZQZVSQZRZWEVQWCWHVQWBWGVSVKVOWBWGUDZVPVKVLVNWJ
      VMMAACDEFHJKUEUFTUGUHWIVTWARZQZRWEWHWLWHVTWFQWLVRWFVSUIWFWKVTFHUJUKULUMVT
      WAUNUOUPURVQWAVRVSVKVOWAVRSZVPVKVMVLWMVNVKVLQFFEPWAVRADEFIJUSFHFEUTUQVATV
      QFGCPZWAVSVQVKVLVMVPWNVKVOVPVBVKVLVMVNVPVCVKVLVMVNVPVIVKVOVPVDMABCDFGIKLV
      EVFFHGCVGUQVHVJ $.
  $}

  ${
    $d x y B $.  $d x y ._|_ $.  $d x y K $.  $d x y X $.  $d x y Y $.
    cvrcon3b.b $e |- B = ( Base ` K ) $.
    cvrcon3b.o $e |- ._|_ = ( oc ` K ) $.
    cvrcon3b.c $e |- C = ( <o ` K ) $.
    $( Contraposition law for the covers relation.  ( ~ cvcon3 analog.)
       (Contributed by NM, 4-Nov-2011.) $)
    cvrcon3b $p |- ( ( K e. OP /\ X e. B /\ Y e. B )
                        -> ( X C Y <-> ( ._|_ ` Y ) C ( ._|_ ` X ) ) ) $=
      ( vx vy cops wcel cfv wbr wa wb syl3anc anbi12d opoccl w3a cplt wrex eqid
      cv wn opltcon3b simpl1 simpl2 simpr simpl3 wi 3ad2antl1 wceq breq2 rspcev
      breq1 ex ancomsd sylbid rexlimdva opltcon1b opltcon2b impbid notbid simp1
      syl cvrval 3adant2 3adant3 3bitr4d ) CLMZEAMZFAMZUAZEFCUBNZOZEJUEZVPOZVRF
      VPOZPZJAUCZUFZPFDNZEDNZVPOZWDKUEZVPOZWGWEVPOZPZKAUCZUFZPZEFBOWDWEBOZVOVQW
      FWCWLAVPCDEFGVPUDZHUGVOWBWKVOWBWKVOWAWKJAVOVRAMZPZWAVRDNZWEVPOZWDWRVPOZPW
      KWQVSWSVTWTWQVLVMWPVSWSQVLVMVNWPUHZVLVMVNWPUIVOWPUJZAVPCDEVRGWOHUGRWQVLWP
      VNVTWTQXAXBVLVMVNWPUKAVPCDVRFGWOHUGRSWQWTWSWKWQWRAMZWTWSPZWKULVLVMWPXCVNA
      CDVRGHTUMXCXDWKWJXDKWRAWGWRUNWHWTWIWSWGWRWDVPUOWGWRWEVPUQSUPURVGUSUTVAVOW
      JWBKAVOWGAMZPZWJWGDNZFVPOZEXGVPOZPWBXFWHXHWIXIXFVLVNXEWHXHQVLVMVNXEUHZVLV
      MVNXEUKVOXEUJZAVPCDFWGGWOHVBRXFVLXEVMWIXIQXJXKVLVMVNXEUIAVPCDWGEGWOHVCRSX
      FXIXHWBXFXGAMZXIXHPZWBULVLVMXEXLVNACDWGGHTUMXLXMWBWAXMJXGAVRXGUNVSXIVTXHV
      RXGEVPUOVRXGFVPUQSUPURVGUSUTVAVDVESJLABVPCEFGWOIVHVOVLWDAMZWEAMZWNWMQVLVM
      VNVFVLVNXNVMACDFGHTVIVLVMXOVNACDEGHTVJKLABVPCWDWEGWOIVHRVK $.
  $}

  ${
    cvrle.b $e |- B = ( Base ` K ) $.
    cvrle.l $e |- .<_ = ( le ` K ) $.
    cvrle.c $e |- C = ( <o ` K ) $.
    $( The covers relation implies the less-than-or-equal relation.
       (Contributed by NM, 12-Oct-2011.) $)
    cvrle $p |- ( ( ( K e. A /\ X e. B /\ Y e. B ) /\ X C Y ) -> X .<_ Y ) $=
      ( wcel w3a wbr cplt cfv eqid cvrlt wne pltval simprbda syldan ) DAKFBKGBK
      LZFGCMFGDNOZMZFGEMZABCUCDFGHUCPZJQUBUDUEFGRABBUCDEFGIUFSTUA $.

    $( The covers relation implies no in-betweenness.  Part of proof of Lemma
       7.5.1 of [MaedaMaeda] p. 31.  ( ~ cvnbtwn4 analog.)  (Contributed by NM,
       18-Oct-2011.) $)
    cvrnbtwn4 $p |- ( ( K e. Poset /\ ( X e. B /\ Y e. B /\ Z e. B )
                        /\ X C Y )
             -> ( ( X .<_ Z /\ Z .<_ Y ) <-> ( X = Z \/ Z = Y ) ) ) $=
      ( cpo wcel w3a wbr wa wceq wn wi wb wne wo cplt eqid cvrnbtwn iman pltval
      cfv 3adant3r2 3com23 3adant3r1 anbi12d neanior anbi2i an4 bitr3i syl6rbbr
      notbid syl5rbb mpbid posref 3ad2antr3 breq1 syl5ibrcom cvrle ex 3adant3r3
      3adant3 3impia breq2 jaod syl5ibcom jcad impbid ) CKLZEALZFALZGALZMZEFBNZ
      MZEGDNZGFDNZOZEGPZGFPZUAZVTEGCUBUGZNZGFWGNZOZQZWCWFRZKABWGCEFGHWGUCZJUDVN
      VRWKWLSVSWLWCWFQZOZQVNVROZWKWCWFUEWPWOWJWPWJWAEGTZOZWBGFTZOZOZWOWPWHWRWIW
      TVNVOVQWHWRSVPKAAWGCDEGIWMUFUHVNVPVQWIWTSZVOVNVQVPXBKAAWGCDGFIWMUFUIUJUKW
      OWCWQWSOZOXAXCWNWCEGGFULUMWAWBWQWSUNUOUPUQURVGUSVTWFWAWBVTWDWAWEVTWAWDGGD
      NZVNVRXDVSVNVOVQXDVPACDGHIUTVAVGZEGGDVBVCVTWAWEEFDNZVNVRVSXFVNVOVPVSXFRVQ
      VNVOVPMVSXFKABCDEFHIJVDVEVFVHZGFEDVIVCVJVTWDWBWEVTXFWDWBXGEGFDVBVKVTXDWEW
      BXEGFGDVIVKVJVLVM $.

    $( The covers relation implies the negation of the reverse
       less-than-or-equal relation.  (Contributed by NM, 18-Oct-2011.) $)
    cvrnle $p |- ( ( ( K e. Poset /\ X e. B /\ Y e. B ) /\ X C Y )
                     -> -. Y .<_ X ) $=
      ( cpo wcel w3a wbr cplt cfv wn eqid cvrlt pltnle syldan ) CJKEAKFAKLEFBME
      FCNOZMFEDMPJABUACEFGUAQZIRAUACDEFGHUBST $.
  $}

  ${
    cvrne.b $e |- B = ( Base ` K ) $.
    cvrne.c $e |- C = ( <o ` K ) $.
    $( The covers relation implies inequality.  (Contributed by NM,
       13-Oct-2011.) $)
    cvrne $p |- ( ( ( K e. A /\ X e. B /\ Y e. B ) /\ X C Y ) -> X =/= Y ) $=
      ( wcel w3a wbr cplt cfv wne eqid cvrlt cple pltval simplbda syldan ) DAIE
      BIFBIJZEFCKEFDLMZKZEFNZABCUBDEFGUBOZHPUAUCEFDQMZKUDABBUBDUFEFUFOUERST $.

    $( The covers relation is not reflexive.  ( ~ cvnref analog.)  (Contributed
       by NM, 1-Nov-2012.)  (New usage is discouraged.) $)
    cvrnrefN $p |- ( ( K e. A /\ X e. B ) -> -. X C X ) $=
      ( wcel wa wceq wbr wn eqid wne simpll simplr simpr cvrne syl31anc ex mpi
      necon2bd ) DAHZEBHZIZEEJEECKZLEMUEUFEEUEUFEENZUEUFIUCUDUDUFUGUCUDUFOUCUDU
      FPZUHUEUFQABCDEEFGRSTUBUA $.
  $}

  ${
    cvrcmp.b $e |- B = ( Base ` K ) $.
    cvrcmp.l $e |- .<_ = ( le ` K ) $.
    cvrcmp.c $e |- C = ( <o ` K ) $.
    $( If two lattice elements that cover a third are comparable, then they are
       equal.  (Contributed by NM, 6-Feb-2012.) $)
    cvrcmp $p |- ( ( K e. Poset /\ ( X e. B /\ Y e. B /\ Z e. B ) /\
          ( Z C X /\ Z C Y ) ) -> ( X .<_ Y <-> X = Y ) ) $=
      ( cpo wcel w3a wbr wa wceq wne simpl1 simpl23 syl31anc simpl21 simpl3l wo
      cvrne wi cvrle simpr wb simpl22 simpl3r cvrnbtwn4 syl131anc mpbi2and neor
      sylib mpd ex simp1 simp21 posref syl2anc breq2 syl5ibcom impbid ) CKLZEAL
      ZFALZGALZMZGEBNZGFBNZOZMZEFDNZEFPZVMVNVOVMVNOZGEQZVOVPVEVHVFVJVQVEVIVLVNR
      ZVFVGVHVEVLVNSZVFVGVHVEVLVNUAZVJVKVEVIVNUBZKABCGEHJUDTVPGEPVOUCZVQVOUEVPG
      EDNZVNWBVPVEVHVFVJWCVRVSVTWAKABCDGEHIJUFTVMVNUGVPVEVHVGVFVKWCVNOWBUHVRVSV
      FVGVHVEVLVNUIVTVJVKVEVIVNUJABCDGFEHIJUKULUMVOGEUNUOUPUQVMEEDNZVOVNVMVEVFW
      DVEVIVLURVEVFVGVHVLUSACDEHIUTVAEFEDVBVCVD $.

    $( If two lattice elements covered by a third are comparable, then they are
       equal.  (Contributed by NM, 20-Jun-2012.) $)
    cvrcmp2 $p |- ( ( K e. OP /\ ( X e. B /\ Y e. B /\ Z e. B ) /\
          ( X C Z /\ Y C Z ) ) -> ( X .<_ Y <-> X = Y ) ) $=
      ( wcel w3a wbr wa cfv wceq wb opoccl syl2anc cvrcon3b cops 3ad2ant1 simp1
      coc opposet simp22 eqid simp21 simp23 3adant3r2 3adant3r1 anbi12d biimp3a
      cpo ancomd cvrcmp syl131anc oplecon3b syl3anc opcon3b 3bitr4d ) CUAKZEAKZ
      FAKZGAKZLZEGBMZFGBMZNZLZFCUDOZOZEVKOZDMZVLVMPZEFDMZEFPZVJCUNKZVLAKZVMAKZG
      VKOZAKZWAVLBMZWAVMBMZNVNVOQVBVFVRVICUEUBVJVBVDVSVBVFVIUCZVBVCVDVEVIUFZACV
      KFHVKUGZRSVJVBVCVTWEVBVCVDVEVIUHZACVKEHWGRSVJVBVEWBWEVBVCVDVEVIUIACVKGHWG
      RSVJWDWCVBVFVIWDWCNVBVFNVGWDVHWCVBVCVEVGWDQVDABCVKEGHWGJTUJVBVDVEVHWCQVCA
      BCVKFGHWGJTUKULUMUOABCDVLVMWAHIJUPUQVJVBVCVDVPVNQWEWHWFACDVKEFHIWGURUSVJV
      BVCVDVQVOQWEWHWFACVKEFHWGUTUSVA $.
  $}

  ${
    $d p x B $.  $d p C $.  $d p x K $.  $d p .0. $.
    patoms.b $e |- B = ( Base ` K ) $.
    patoms.z $e |- .0. = ( 0. ` K ) $.
    patoms.c $e |- C = ( <o ` K ) $.
    patoms.a $e |- A = ( Atoms ` K ) $.
    $( The set of atoms in a poset.  (Contributed by NM, 18-Sep-2011.) $)
    pats $p |- ( K e. D -> A = { x e. B | .0. C x } ) $=
      ( vp cvv wbr cfv cp0 ccvr cbs fveq2 syl6eqr wcel cv crab wceq elex breq1d
      catm breqd bitrd rabeqbidv df-ats fvex eqeltri rabex fvmpt syl5eq syl ) F
      EUAFMUAZBGAUBZDNZACUCZUDFEUEURBFUGOVAKLFLUBZPOZUSVBQOZNZAVBROZUCVAMUGVBFU
      DZVEUTAVFCVGVFFROZCVBFRSHTVGVEVCUSDNUTVGVDDVCUSVGVDFQODVBFQSJTUHVGVCGUSDV
      GVCFPOGVBFPSITUFUIUJLAUKUTACCVHMHFRULUMUNUOUPUQ $.
  $}

  ${
    $d x B $.  $d x C $.  $d x K $.  $d x P $.  $d x .0. $.
    isatom.b $e |- B = ( Base ` K ) $.
    isatom.z $e |- .0. = ( 0. ` K ) $.
    isatom.c $e |- C = ( <o ` K ) $.
    isatom.a $e |- A = ( Atoms ` K ) $.
    $( The predicate "is an atom".  ( ~ ela analog.)  (Contributed by NM,
       18-Sep-2011.) $)
    isat $p |- ( K e. D -> ( P e. A <-> ( P e. B /\ .0. C P ) ) ) $=
      ( vx wcel cv wbr crab wa pats eleq2d breq2 elrab syl6bb ) FDMZEAMEGLNZCOZ
      LBPZMEBMGECOZQUCAUFELABCDFGHIJKRSUEUGLEBUDEGCTUAUB $.

    $( The predicate "is an atom".  ( ~ elatcv0 analog.)  (Contributed by NM,
       18-Jun-2012.) $)
    isat2 $p |- ( ( K e. D /\ P e. B ) -> ( P e. A <-> .0. C P ) ) $=
      ( wcel wbr isat baibd ) FDLEALEBLGECMABCDEFGHIJKNO $.
  $}

  ${
    atomcvr0.z $e |- .0. = ( 0. ` K ) $.
    atomcvr0.c $e |- C = ( <o ` K ) $.
    atomcvr0.a $e |- A = ( Atoms ` K ) $.
    $( An atom covers zero.  ( ~ atcv0 analog.)  (Contributed by NM,
       4-Nov-2011.) $)
    atcvr0 $p |- ( ( K e. D /\ P e. A ) -> .0. C P ) $=
      ( wcel cbs cfv wbr eqid isat simplbda ) ECJDAJDEKLZJFDBMAQBCDEFQNGHIOP $.
  $}

  ${
    atombase.b $e |- B = ( Base ` K ) $.
    atombase.a $e |- A = ( Atoms ` K ) $.
    $( An atom is a member of the lattice base set (i.e. a lattice element).
       ( ~ atelch analog.)  (Contributed by NM, 10-Oct-2011.) $)
    atbase $p |- ( P e. A -> P e. B ) $=
      ( cvv wcel catm cfv c0 wceq n0i eqeq1i sylnib fvprc nsyl2 cp0 ccvr eqid
      wbr isat simprbda mpancom ) DGHZCAHZCBHZUFDIJZKLZUEUFAKLUIACMAUHKFNODIPQU
      EUFUGDRJZCDSJZUAABUKGCDUJEUJTUKTFUBUCUD $.

    $d x A $.  $d x B $.
    $( The set of atoms is a subset of the base set.  ( ~ atssch analog.)
       (Contributed by NM, 21-Oct-2011.) $)
    atssbase $p |- A C_ B $=
      ( vx cv atbase ssriv ) FABABFGCDEHI $.
  $}

  ${
    0ltat.z $e |- .0. = ( 0. ` K ) $.
    0ltat.s $e |- .< = ( lt ` K ) $.
    0ltat.a $e |- A = ( Atoms ` K ) $.
    $( An atom is greater than zero.  (Contributed by NM, 4-Jul-2012.) $)
    0ltat $p |- ( ( K e. OP /\ P e. A ) -> .0. .< P ) $=
      ( cops wcel wa cbs cfv ccvr wbr simpl eqid op0cl adantr atbase syl31anc
      adantl atcvr0 cvrlt ) DIJZBAJZKUEEDLMZJZBUGJZEBDNMZOEBCOUEUFPUEUHUFUGDEUG
      QZFRSUFUIUEAUGBDUKHTUBAUJIBDEFUJQZHUCIUGUJCDEBUKGULUDUA $.
  $}

  ${
    leatom.b $e |- B = ( Base ` K ) $.
    leatom.l $e |- .<_ = ( le ` K ) $.
    leatom.z $e |- .0. = ( 0. ` K ) $.
    leatom.a $e |- A = ( Atoms ` K ) $.
    $( A poset element less than or equal to an atom equals either zero or the
       atom.  ( ~ atss analog.)  (Contributed by NM, 17-Nov-2011.) $)
    leatb $p |- ( ( K e. OP /\ X e. B /\ P e. A )
                      -> ( X .<_ P <-> ( X = P \/ X = .0. ) ) ) $=
      ( cops wcel w3a wbr wceq wo wa op0le syl6bb 3adant3 biantrurd cpo ccvr wb
      cfv opposet 3ad2ant1 op0cl atbase id 3anim123i 3com23 eqid atcvr0 3adant2
      cvrnbtwn4 syl3anc eqcom orbi1i bitrd orcom ) DLMZFBMZCAMZNZFCEOZFGPZFCPZQ
      ZVIVHQVFVGGFEOZVGRZVJVFVKVGVCVDVKVEBDEFGHIJSUAUBVFVLGFPZVIQZVJVFDUCMZGBMZ
      CBMZVDNZGCDUDUFZOZVLVNUEVCVDVOVEDUGUHVCVEVDVRVCVPVEVQVDVDBDGHJUIABCDHKUJV
      DUKULUMVCVEVTVDAVSLCDGJVSUNZKUOUPBVSDEGCFHIWAUQURVMVHVIGFUSUTTVAVHVIVBT
      $.

    $( A poset element less than or equal to an atom equals either zero or the
       atom.  (Contributed by NM, 15-Oct-2013.) $)
    leat $p |- ( ( ( K e. OP /\ X e. B /\ P e. A ) /\ X .<_ P )
                      -> ( X = P \/ X = .0. ) ) $=
      ( cops wcel w3a wbr wceq wo leatb biimpa ) DLMFBMCAMNFCEOFCPFGPQABCDEFGHI
      JKRS $.

    $( A nonzero poset element less than or equal to an atom equals the atom.
       (Contributed by NM, 6-Mar-2013.) $)
    leat2 $p |- ( ( ( K e. OP /\ X e. B /\ P e. A )
             /\ ( X =/= .0. /\ X .<_ P ) ) -> X = P ) $=
      ( cops wcel w3a wne wbr wceq wi wo leatb orcom bitri syl6bb biimpd com23
      neor imp32 ) DLMFBMCAMNZFGOZFCEPZFCQZUHUJUIUKUHUJUIUKRZUHUJUKFGQZSZULABCD
      EFGHIJKTUNUMUKSULUKUMUAUKFGUFUBUCUDUEUG $.

    $( A poset element less than or equal to an atom is either an atom or zero.
       (Contributed by NM, 2-Dec-2012.) $)
    leat3 $p |- ( ( ( K e. OP /\ X e. B /\ P e. A ) /\ X .<_ P )
                      -> ( X e. A \/ X = .0. ) ) $=
      ( cops wcel w3a wbr wa wceq wo leat wi simpl3 eleq1a syl orim1d mpd ) DLM
      ZFBMZCAMZNFCEOZPZFCQZFGQZRFAMZULRABCDEFGHIJKSUJUKUMULUJUHUKUMTUFUGUHUIUAC
      AFUBUCUDUE $.
  $}

  ${
    m.b $e |- B = ( Base ` K ) $.
    m.m $e |- ./\ = ( meet ` K ) $.
    m.z $e |- .0. = ( 0. ` K ) $.
    m.a $e |- A = ( Atoms ` K ) $.
    $( The meet of any element with an atom is either the atom or zero.
       (Contributed by NM, 28-Aug-2012.) $)
    meetat $p |- ( ( K e. OL /\ X e. B /\ P e. A )
       -> ( ( X ./\ P ) = P \/ ( X ./\ P ) = .0. ) ) $=
      ( col wcel w3a co cple cfv wceq 3ad2ant1 syl3anc wbr wo ollat simp2 simp3
      clat atbase syl eqid latmle2 cops wb olop latmcl leatb mpbid ) DLMZFBMZCA
      MZNZFCEOZCDPQZUAZVACRVAGRUBZUTDUFMZURCBMZVCUQURVEUSDUCSZUQURUSUDZUTUSVFUQ
      URUSUEZABCDHKUGUHZBDVBEFCHVBUIZIUJTUTDUKMZVABMZUSVCVDULUQURVLUSDUMSUTVEUR
      VFVMVGVHVJBDEFCHIUNTVIABCDVBVAGHVKJKUOTUP $.

    $( The meet of any element with an atom is either the atom or zero.
       (Contributed by NM, 30-Aug-2012.) $)
    meetat2 $p |- ( ( K e. OL /\ X e. B /\ P e. A )
       -> ( ( X ./\ P ) e. A \/ ( X ./\ P ) = .0. ) ) $=
      ( col wcel w3a co wceq wo meetat wi eleq1a 3ad2ant3 orim1d mpd ) DLMZFBMZ
      CAMZNZFCEOZCPZUHGPZQUHAMZUJQABCDEFGHIJKRUGUIUKUJUFUDUIUKSUECAUHTUAUBUC $.
  $}

  ${
    $d k p x $.
    $( Define the class of atomic lattices, in which every nonzero element is
       greater than or equal to an atom.  We also ensure the existence of a
       lattice zero, since a lattice by itself may not have a zero.
       (Contributed by NM, 18-Sep-2011.)  (Revised by NM, 14-Sep-2018.) $)
    df-atl $a |- AtLat = { k e. Lat | ( ( Base ` k ) e. dom ( glb ` k )
      /\ A. x e. ( Base ` k ) ( x =/= ( 0. ` k )
       -> E. p e. ( Atoms ` k ) p ( le ` k ) x ) ) } $.
  $}

  ${
    $d k y A $.  $d k x B $.  $d k x y K $.  $d k .<_ $.  $d k .0. $.
    $d k G $.
    isatlat.b $e |- B = ( Base ` K ) $.
    isatlat.g $e |- G = ( glb ` K ) $.
    isatlat.l $e |- .<_ = ( le ` K ) $.
    isatlat.z $e |- .0. = ( 0. ` K ) $.
    isatlat.a $e |- A = ( Atoms ` K ) $.
    $( The predicate "is an atomic lattice."  Every nonzero element is less
       than or equal to an atom.  (Contributed by NM, 18-Sep-2011.)  (Revised
       by NM, 14-Sep-2018.) $)
    isatl $p |- ( K e. AtLat <-> ( K e. Lat /\ B e. dom G
        /\ A. x e. B ( x =/= .0. -> E. y e. A y .<_ x ) ) ) $=
      ( vk wcel cv wa cfv fveq2 syl6eqr cal clat cdm wne wbr wrex wral w3a cglb
      wi cbs cp0 cple catm wceq dmeqd eleq12d breqd rexeqbidv imbi12d raleqbidv
      neeq2d anbi12d df-atl elrab2 3anass bitr4i ) FUAOFUBOZDEUCZOZAPZHUDZBPZVK
      GUEZBCUFZUJZADUGZQZQVHVJVQUHNPZUKRZVSUIRZUCZOZVKVSULRZUDZVMVKVSUMRZUEZBVS
      UNRZUFZUJZAVTUGZQVRNFUBUAVSFUOZWCVJWKVQWLVTDWBVIWLVTFUKRDVSFUKSITZWLWAEWL
      WAFUIREVSFUISJTUPUQWLWJVPAVTDWMWLWEVLWIVOWLWDHVKWLWDFULRHVSFULSLTVBWLWGVN
      BWHCWLWHFUNRCVSFUNSMTWLWFGVMVKWLWFFUMRGVSFUMSKTURUSUTVAVCANBVDVEVHVJVQVFV
      G $.
  $}

  ${
    $d x p K $.
    $( An atomic lattice is a lattice.  (Contributed by NM, 21-Oct-2011.) $)
    atllat $p |- ( K e. AtLat -> K e. Lat ) $=
      ( vx vp cal wcel clat cbs cfv cglb cdm cv cp0 wne cple wbr catm wrex wral
      wi eqid isatl simp1bi ) ADEAFEAGHZAIHZJEBKZALHZMCKUEANHZOCAPHZQSBUCRBCUHU
      CUDAUGUFUCTUDTUGTUFTUHTUAUB $.
    $( An atomic lattice is a poset.  (Contributed by NM, 5-Nov-2012.) $)
    atlpos $p |- ( K e. AtLat -> K e. Poset ) $=
      ( cal wcel clat cpo atllat latpos syl ) ABCADCAECAFAGH $.
  $}

  ${
    $d x y B $.  $d x y K $.
    atl01dm.b $e |- B = ( Base ` K ) $.
    atl01dm.u $e |- U = ( lub ` K ) $.
    atl01dm.g $e |- G = ( glb ` K ) $.
    $( Condition necessary for zero element to exist.  (Contributed by NM,
       14-Sep-2018.) $)
    atl0dm $p |- ( K e. AtLat -> B e. dom G ) $=
      ( vx vy cal wcel clat cdm cv cp0 cfv wne cple wbr eqid catm wrex wi isatl
      wral simp2bi ) DJKDLKACMKHNZDOPZQINUGDRPZSIDUAPZUBUCHAUEHIUJACDUIUHEGUITU
      HTUJTUDUF $.
  $}

  ${
    atl0cl.b $e |- B = ( Base ` K ) $.
    atl0cl.z $e |- .0. = ( 0. ` K ) $.
    $( An atomic lattice has a zero element.  We can use this in place of
       ~ op0cl for lattices without orthocomplements.  (Contributed by NM,
       5-Nov-2012.) $)
    atl0cl $p |- ( K e. AtLat -> .0. e. B ) $=
      ( cal wcel cglb cfv eqid p0val id club atl0dm glbcl eqeltrd ) BFGZCABHIZI
      AARBFCDRJZEKQAARBFDSQLABMIZRBDTJSNOP $.
  $}

  ${
    atl0le.b $e |- B = ( Base ` K ) $.
    atl0le.l $e |- .<_ = ( le ` K ) $.
    atl0le.z $e |- .0. = ( 0. ` K ) $.
    $( Orthoposet zero is less than or equal to any element.  ( ~ ch0le
       analog.)  (Contributed by NM, 12-Oct-2011.) $)
    atl0le $p |- ( ( K e. AtLat /\ X e. B ) -> .0. .<_ X ) $=
      ( cal wcel wa cglb cfv eqid simpl simpr cdm club atl0dm adantr p0le ) BIJ
      ZDAJZKABLMZBCIDEFUDNZGHUBUCOUBUCPUBAUDQJUCABRMZUDBFUFNUESTUA $.

    $( An element less than or equal to zero equals zero.  ( ~ chle0 analog.)
       (Contributed by NM, 21-Oct-2011.) $)
    atlle0 $p |- ( ( K e. AtLat /\ X e. B ) -> ( X .<_ .0. <-> X = .0. ) ) $=
      ( cal wcel wa wbr wceq atl0le biantrud cpo wb atlpos adantr simpr syl3anc
      atl0cl posasymb bitrd ) BIJZDAJZKZDECLZUHEDCLZKZDEMZUGUIUHABCDEFGHNOUGBPJ
      ZUFEAJZUJUKQUEULUFBRSUEUFTUEUMUFABEFHUBSABCDEFGUCUAUD $.
  $}

  ${
    atlltne0.b $e |- B = ( Base ` K ) $.
    atlltne0.s $e |- .< = ( lt ` K ) $.
    atlltne0.z $e |- .0. = ( 0. ` K ) $.
    $( A lattice element greater than zero is nonzero.  (Contributed by NM,
       1-Jun-2012.) $)
    atlltn0 $p |- ( ( K e. AtLat /\ X e. B ) -> ( .0. .< X <-> X =/= .0. ) ) $=
      ( cal wcel wa wbr cple cfv wne wb simpl atl0cl adantr simpr syl3anc necom
      eqid pltval atl0le biantrurd syl5rbb bitrd ) CIJZDAJZKZEDBLZEDCMNZLZEDOZK
      ZDEOZUKUIEAJZUJULUPPUIUJQUIURUJACEFHRSUIUJTIAABCUMEDUMUCZGUDUAUQUOUKUPDEU
      BUKUNUOACUMDEFUSHUEUFUGUH $.
  $}

  ${
    $d x B $.  $d x K $.  $d x P $.  $d x .0. $.
    isat3.b $e |- B = ( Base ` K ) $.
    isat3.l $e |- .<_ = ( le ` K ) $.
    isat3.z $e |- .0. = ( 0. ` K ) $.
    isat3.a $e |- A = ( Atoms ` K ) $.
    $( The predicate "is an atom".  ( ~ elat2 analog.)  (Contributed by NM,
       27-Apr-2014.) $)
    isat3 $p |- ( K e. AtLat -> ( P e. A <-> ( P e. B
        /\ P =/= .0. /\ A. x e. B ( x .<_ P -> ( x = P \/ x = .0. ) ) ) ) ) $=
      ( cal wcel wne wbr wceq wo wi wral wa cv w3a ccvr eqid isat cplt wb simpl
      atl0cl adantr cvrval2 syl3anc atlltn0 adantlr imbi1d imbi2d impexp bi2.04
      cfv simpr bitri orcom neor imbi2i 3bitr4g ralbidva bitr2d pm5.32da bitr4d
      anbi12d 3anass syl6bbr ) ELMZDBMZDCMZDGNZAUAZDFOZVQDPZVQGPZQZRZACSZTZTZVO
      VPWCUBVMVNVOGDEUCUSZOZTWEBCWFLDEGHJWFUDZKUEVMVOWDWGVMVOTZWGGDEUFUSZOZGVQW
      JOZVRTVSRZACSZTZWDWIVMGCMZVOWGWOUGVMVOUHVMWPVOCEGHJUIUJVMVOUTALCWFWJEFGDH
      IWJUDZWHUKULWIWKVPWNWCCWJEDGHWQJUMWIWMWBACWIVQCMZTZVRWLVSRZRZVRVQGNZVSRZR
      WMWBWSWTXCVRWSWLXBVSVMWRWLXBUGVOCWJEVQGHWQJUMUNUOUPWMWLVRVSRRXAWLVRVSUQWL
      VRVSURVAWAXCVRWAVTVSQXCVSVTVBVSVQGVCVAVDVEVFVJVGVHVIVOVPWCVKVL $.
  $}

  ${
    $d x K $.  $d x P $.  $d x .0. $.
    atne0.z $e |- .0. = ( 0. ` K ) $.
    atne0.a $e |- A = ( Atoms ` K ) $.
    $( An atom is not zero.  ( ~ atne0 analog.)  (Contributed by NM,
       5-Nov-2012.) $)
    atn0 $p |- ( ( K e. AtLat /\ P e. A ) -> P =/= .0. ) $=
      ( vx cal wcel wne cbs cfv cv cple wbr wceq wo wi wral eqid w3a syl6bi imp
      isat3 simp2 ) CHIZBAIZBDJZUFUGBCKLZIZUHGMZBCNLZOUKBPUKDPQRGUISZUAUHGAUIBC
      ULDUITULTEFUDUJUHUMUEUBUC $.
  $}

  ${
    atnle0.l $e |- .<_ = ( le ` K ) $.
    atnle0.z $e |- .0. = ( 0. ` K ) $.
    atnle0.a $e |- A = ( Atoms ` K ) $.
    $( An atom is not less than or equal to zero.  (Contributed by NM,
       17-Oct-2011.) $)
    atnle0 $p |- ( ( K e. AtLat /\ P e. A ) -> -. P .<_ .0. ) $=
      ( cal wcel wa cpo cbs cfv ccvr wbr wn atlpos adantr eqid atl0cl syl31anc
      atbase adantl atcvr0 cvrnle ) CIJZBAJZKCLJZECMNZJZBUJJZEBCONZPBEDPQUGUIUH
      CRSUGUKUHUJCEUJTZGUASUHULUGAUJBCUNHUCUDAUMIBCEGUMTZHUEUJUMCDEBUNFUOUFUB
      $.
  $}

  ${
    atlen0.b $e |- B = ( Base ` K ) $.
    atlen0.l $e |- .<_ = ( le ` K ) $.
    atlen0.z $e |- .0. = ( 0. ` K ) $.
    atlen0.a $e |- A = ( Atoms ` K ) $.
    $( A lattice element is nonzero if an atom is under it.  (Contributed by
       NM, 26-May-2012.) $)
    atlen0 $p |- ( ( ( K e. AtLat /\ X e. B /\ P e. A ) /\ P .<_ X )
            -> X =/= .0. ) $=
      ( cal wcel w3a wbr wa cplt cfv syl eqid simpl1 atl0cl simpl2 3jca syl2anc
      wne ccvr simpl3 atbase atcvr0 cvrlt syl31anc simpr cpo wi atlpos syl13anc
      pltletr mp2and pltne sylc necomd ) DLMZFBMZCAMZNZCFEOZPZGFVHVCGBMZVDNGFDQ
      RZOZGFUFVHVCVIVDVCVDVEVGUAZVHVCVIVLBDGHJUBSZVCVDVEVGUCZUDVHGCVJOZVGVKVHVC
      VICBMZGCDUGRZOZVOVLVMVHVEVPVCVDVEVGUHZABCDHKUISZVHVCVEVRVLVSAVQLCDGJVQTZK
      UJUELBVQVJDGCHVJTZWAUKULVFVGUMVHDUNMZVIVPVDVOVGPVKUOVHVCWCVLDUPSVMVTVNBVJ
      DEGCFHIWBURUQUSLBBVJDGFWBUTVAVB $.
  $}

  ${
    atcmp.l $e |- .<_ = ( le ` K ) $.
    atcmp.a $e |- A = ( Atoms ` K ) $.
    $( If two atoms are comparable, they are equal.  ( ~ atsseq analog.)
       (Contributed by NM, 13-Oct-2011.) $)
    atcmp $p |- ( ( K e. AtLat /\ P e. A /\ Q e. A )
        -> ( P .<_ Q <-> P = Q ) ) $=
      ( cal wcel w3a cpo cbs cfv cp0 ccvr wbr 3ad2ant1 eqid atbase atcvr0 wceq
      wb atlpos 3ad2ant2 3ad2ant3 atl0cl 3adant3 3adant2 cvrcmp syl132anc ) DHI
      ZBAIZCAIZJDKIZBDLMZIZCUOIZDNMZUOIZURBDOMZPZURCUTPZBCEPBCUAUBUKULUNUMDUCQU
      LUKUPUMAUOBDUORZGSUDUMUKUQULAUOCDVCGSUEUKULUSUMUODURVCURRZUFQUKULVAUMAUTH
      BDURVDUTRZGTUGUKUMVBULAUTHCDURVDVEGTUHUOUTDEBCURVCFVEUIUJ $.

    $( Frequently-used variation of ~ atcmp .  (Contributed by NM,
       29-Jun-2012.) $)
    atncmp $p |- ( ( K e. AtLat /\ P e. A /\ Q e. A )
             -> ( -. P .<_ Q <-> P =/= Q ) ) $=
      ( cal wcel w3a wbr atcmp necon3bbid ) DHIBAICAIJBCEKBCABCDEFGLM $.
  $}

  ${
    atnlt.s $e |- .< = ( lt ` K ) $.
    atnlt.a $e |- A = ( Atoms ` K ) $.
    $( Two atoms cannot satisfy the less than relation.  (Contributed by NM,
       7-Feb-2012.) $)
    atnlt $p |- ( ( K e. AtLat /\ P e. A /\ Q e. A ) -> -. P .< Q ) $=
      ( cal wcel w3a wbr wn wceq pltirr 3adant3 breq2 notbid syl5ibcom cple cfv
      eqid pltle atcmp sylibd necon3ad pm2.61dne ) EHIZBAIZCAIZJZBCDKZLZBCUJBBD
      KZLZBCMZULUGUHUNUIHADEBFNOUOUMUKBCBDPQRUJUKBCUJUKBCESTZKUOHAADEUPBCUPUAZF
      UBABCEUPUQGUCUDUEUF $.
  $}

  ${
    atcvreq0.b $e |- B = ( Base ` K ) $.
    atcvreq0.l $e |- .<_ = ( le ` K ) $.
    atcvreq0.z $e |- .0. = ( 0. ` K ) $.
    atcvreq0.c $e |- C = ( <o ` K ) $.
    atcvreq0.a $e |- A = ( Atoms ` K ) $.
    $( An element covered by an atom must be zero.  ( ~ atcveq0 analog.)
       (Contributed by NM, 4-Nov-2011.) $)
    atcvreq0 $p |- ( ( K e. AtLat /\ X e. B /\ P e. A )
      -> ( X C P <-> X = .0. ) ) $=
      ( cal wcel wbr wceq wa cfv adantr w3a cple cplt eqid atl0le 3adant3 cvrlt
      atbase syl3anl3 cpo atlpos 3ad2ant1 atl0cl 3ad2ant3 simpl2 atcvr0 3adant2
      wb cvrnbtwn3 syl131anc mpbi2and eqcomd ex breq1 syl5ibrcom impbid ) ENOZG
      BOZDAOZUAZGDCPZGHQZVJVKVLVJVKRZHGVMHGEUBSZPZGDEUCSZPZHGQZVJVOVKVGVHVOVIBE
      VNGHIVNUDZKUEUFTVIVGVHDBOZVKVQABDEIMUHZNBCVPEGDIVPUDZLUGUIVMEUJOZHBOZVTVH
      HDCPZVOVQRVRURVJWCVKVGVHWCVIEUKULTVJWDVKVGVHWDVIBEHIKUMULTVJVTVKVIVGVTVHW
      AUNTVGVHVIVKUOVJWEVKVGVIWEVHACNDEHKLMUPUQZTBCVPEVNHDGIVSWBLUSUTVAVBVCVJVK
      VLWEWFGHDCVDVEVF $.
  $}

  ${
    atncvr.c $e |- C = ( <o ` K ) $.
    atncvr.a $e |- A = ( Atoms ` K ) $.
    $( Two atoms cannot satisfy the covering relation.  (Contributed by NM,
       7-Feb-2012.)  (New usage is discouraged.) $)
    atncvrN $p |- ( ( K e. AtLat /\ P e. A /\ Q e. A ) -> -. P C Q ) $=
      ( cal wcel w3a wbr wn cp0 cfv wne eqid atn0 3adant3 cbs wceq cple syl3an2
      wb atbase atcvreq0 necon3bbid mpbird ) EHIZCAIZDAIZJZCDBKZLCEMNZOZUHUIUNU
      JACEUMUMPZGQRUKULCUMUIUHCESNZIUJULCUMTUCAUPCEUPPZGUDAUPBDEEUANZCUMUQURPUO
      FGUEUBUFUG $.
  $}

  ${
    $d x y A $.  $d x B $.  $d x y K $.  $d x .<_ $.  $d x y X $.  $d x .0. $.
    atlex.b $e |- B = ( Base ` K ) $.
    atlex.l $e |- .<_ = ( le ` K ) $.
    atlex.z $e |- .0. = ( 0. ` K ) $.
    atlex.a $e |- A = ( Atoms ` K ) $.
    $( Every nonzero element of an atomic lattice is greater than or equal to
       an atom.  ( ~ hatomic analog.)  (Contributed by NM, 21-Oct-2011.) $)
    atlex $p |- ( ( K e. AtLat /\ X e. B /\ X =/= .0. )
        -> E. y e. A y .<_ X ) $=
      ( vx cal wcel wne cv wbr wrex wi wral clat cglb cfv cdm eqid simp3bi wceq
      isatl neeq1 breq2 rexbidv imbi12d rspccv syl 3imp ) DMNZFCNZFGOZAPZFEQZAB
      RZUPLPZGOZUSVBEQZABRZSZLCTZUQURVASZSUPDUANCDUBUCZUDNVGLABCVIDEGHVIUEIJKUH
      UFVFVHLFCVBFUGZVCURVEVAVBFGUIVJVDUTABVBFUSEUJUKULUMUNUO $.
  $}

  ${
    $d y A $.  $d y B $.  $d y K $.  $d y .<_ $.  $d y ./\ $.  $d y P $.
    $d y X $.  $d y .0. $.
    atnle.b $e |- B = ( Base ` K ) $.
    atnle.l $e |- .<_ = ( le ` K ) $.
    atnle.m $e |- ./\ = ( meet ` K ) $.
    atnle.z $e |- .0. = ( 0. ` K ) $.
    atnle.a $e |- A = ( Atoms ` K ) $.
    $( Two ways of expressing "an atom is not less than or equal to a lattice
       element."  ( ~ atnssm0 analog.)  (Contributed by NM, 5-Nov-2012.) $)
    atnle $p |- ( ( K e. AtLat /\ P e. A /\ X e. B ) ->
         ( -. P .<_ X <-> ( P ./\ X ) = .0. ) ) $=
      ( vy wcel wbr wceq wa syl3anc wi cal w3a wn co cv wrex simpl1 clat atllat
      3ad2ant1 atbase 3ad2ant2 simp3 latmcl adantr simpr atlex wb adantl simpl2
      wne syl simpl3 latlem12 syl13anc atcmp biimpd syl6bi impd sylbird adantlr
      breq1 rexlimdva ex necon1bd atn0 3adant3 latleeqm1 eqeq1 biimpcd necon3ad
      mpd sylbid mpid impbid ) DUAOZCAOZGBOZUBZCGEPZUCZCGFUDZHQZWIWJWLHWIWLHVAZ
      WJWIWNRZNUEZWLEPZNAUFZWJWOWFWLBOZWNWRWFWGWHWNUGWIWSWNWIDUHOZCBOZWHWSWFWGW
      TWHDUIZUJZWGWFXAWHABCDIMUKZULZWFWGWHUMZBDFCGIKUNSUOWIWNUPNABDEWLHIJLMUQSW
      OWQWJNAWIWPAOZWQWJTWNWIXGRZWQWPCEPZWPGEPZRZWJXHWTWPBOZXAWHXKWQURXHWFWTWFW
      GWHXGUGZXBVBXGXLWIABWPDIMUKUSXHWGXAWFWGWHXGUTZXDVBWFWGWHXGVCBDEFWPCGIJKVD
      VEXHXIXJWJXHXIWPCQZXJWJTXHWFXGWGXIXOURXMWIXGUPXNAWPCDEJMVFSXOXJWJWPCGEVLV
      GVHVIVJVKVMWBVNVOWIWMCHVAZWKWFWGXPWHACDHLMVPVQWIWMXPWKTWIWMRZWJCHXQWJWLCQ
      ZCHQZWIWJXRURZWMWIWTXAWHXTXCXEXFBDEFCGIJKVRSUOWMXRXSTWIXRWMXSWLCHVSVTUSWC
      WAVNWDWE $.
  $}

  ${
    atnem0.m $e |- ./\ = ( meet ` K ) $.
    atnem0.z $e |- .0. = ( 0. ` K ) $.
    atnem0.a $e |- A = ( Atoms ` K ) $.
    $( The meet of distinct atoms is zero.  ( ~ atnemeq0 analog.)  (Contributed
       by NM, 5-Nov-2012.) $)
    atnem0 $p |- ( ( K e. AtLat /\ P e. A /\ Q e. A )
        -> ( P =/= Q <-> ( P ./\ Q ) = .0. ) ) $=
      ( cal wcel w3a cple cfv wbr wn wne co wceq eqid atncmp cbs atbase syl3an3
      wb atnle bitr3d ) DJKZBAKZCAKZLBCDMNZOPZBCQBCERFSZABCDUKUKTZIUAUJUHUICDUB
      NZKULUMUEAUOCDUOTZIUCAUOBDUKECFUPUNGHIUFUDUG $.
  $}

  ${
    $d x y .<_ $.  $d x .1. $.  $d x y A $.  $d x y B $.  $d x y X $.
    $d x K $.
    atlatmstc.b $e |- B = ( Base ` K ) $.
    atlatmstc.l $e |- .<_ = ( le ` K ) $.
    atlatmstc.u $e |- .1. = ( lub ` K ) $.
    atlatmstc.a $e |- A = ( Atoms ` K ) $.
    $( An atomic, complete, orthomodular lattice is atomistic i.e. every
       element is the join of the atoms under it.  See remark before
       Proposition 1 in [Kalmbach] p. 140; also remark in
       [BeltramettiCassinelli] p. 98.  ( ~ hatomistici analog.)  (Contributed
       by NM, 5-Nov-2012.) $)
    atlatmstc $p |- ( ( ( K e. OML /\ K e. CLat /\ K e. AtLat ) /\ X e. B )
           -> ( .1. ` { y e. A | y .<_ X } ) = X ) $=
      ( vx wcel wa wbr cfv wceq wss adantr wb coml ccla cal w3a cv crab cmee co
      coc cp0 simpl2 ssrab2 atssbase rabss2 ax-mp lubss mp3an23 atlpos 3ad2ant3
      syl cpo simpl simpr lubid sylan breqtrd wrex wn breq1 elrab simpll2 sstri
      wi lubel mp3an3 sylancom ex syl5bir expdimp simpll3 eqid atn0 clat simpl3
      atllat atbase adantl clatlubcl sylancl cops simpl1 omlop syl2anc latlem12
      wne opoccl syl13anc opnoncon breq2d ople0 syl2an 3bitrd expr necon3ad mpd
      biimpa syld imnan sylib simplr mtbid nrexdv latmcl syl3anc atlex necon1bd
      omllaw3 mp2and ) EUAMZEUBMZEUCMZUDZGCMZNZAUEZGFOZABUFZDPZGFOZGYHEUIPZPZEU
      GPZUHZEUJPZQZYHGQZYDYHYFACUFZDPZGFYDXTYHYRFOZXSXTYAYCUKZXTYQCRYGYQRZYSYFA
      CULBCRUUABCEHKUMZYFABCUNUOCYGYQDEFHIJUPUQUTYBEVAMZYCYRGQYAXSUUCXTEURUSUUC
      YCNACDEFGHIJUUCYCVBUUCYCVCVDVEVFYDLUEZYMFOZLBVGZVHYOYDUUELBYDUUDBMZNZUUDG
      FOZUUDYKFOZNZUUEUUHUUIUUJVHZVMUUKVHUUHUUIUUDYHFOZUULYDUUGUUIUUMUUGUUINUUD
      YGMZYDUUMYFUUIAUUDBYEUUDGFVIVJYDUUNUUMYDUUNXTUUMXSXTYAYCUUNVKXTUUNYGCRZUU
      MYGBCYFABULUUBVLZCYGDEFUUDHIJVNVOVPVQVRVSUUHUUMUULUUHUUMNZUUDYNWOZUULUUHU
      URUUMYDUUGYAUURXSXTYAYCUUGVTBUUDEYNYNWAZKWBVPSUUQUUJUUDYNUUHUUMUUJUUDYNQZ
      UUHUUMUUJNZUUTUUHUVAUUDYHYKYLUHZFOZUUDYNFOZUUTUUHEWCMZUUDCMZYHCMZYKCMZUVA
      UVCTYDUVEUUGYDYAUVEXSXTYAYCWDEWEUTZSZUUGUVFYDBCUUDEHKWFZWGZYDUVGUUGYDXTUU
      OUVGYTUUPCYGDEHJWHWIZSYDUVHUUGYDEWJMZUVGUVHYDXSUVNXSXTYAYCWKZEWLUTZUVMCEY
      JYHHYJWAZWPWMZSZCEFYLUUDYHYKHIYLWAZWNWQYDUVCUVDTUUGYDUVBYNUUDFYDUVNUVGUVB
      YNQUVPUVMCEYLYJYHYNHUVQUVTUUSWRWMWSSYDUVNUVFUVDUUTTUUGUVPUVKCEFUUDYNHIUUS
      WTXAXBXFXCXDXEVQXGUUIUUJXHXIUUHUVEUVFYCUVHUUKUUETUVJUVLYBYCUUGXJUVSCEFYLU
      UDGYKHIUVTWNWQXKXLYDUUFYMYNYDYMYNWOZUUFYDUWANYAYMCMZUWAUUFXSXTYAYCUWAVTYD
      UWBUWAYDUVEYCUVHUWBUVIYBYCVCZUVRCEYLGYKHUVTXMXNSYDUWAVCLBCEFYMYNHIUUSKXOX
      NVQXPXEYDXSUVGYCYIYONYPVMUVOUVMUWCCEFYLYJYHGYNHIUVTUVQUUSXQXNXR $.
  $}

  ${
    $d p A $.  $d p B $.  $d p K $.  $d p .<_ $.  $d p X $.  $d p Y $.
    atlatle.b $e |- B = ( Base ` K ) $.
    atlatle.l $e |- .<_ = ( le ` K ) $.
    atlatle.a $e |- A = ( Atoms ` K ) $.
    $( The ordering of two Hilbert lattice elements is determined by the atoms
       under them.  ( ~ chrelat3 analog.)  (Contributed by NM, 5-Nov-2012.) $)
    atlatle $p |- ( ( ( K e. OML /\ K e. CLat /\ K e. AtLat )
                /\ X e. B /\ Y e. B )
         -> ( X .<_ Y <-> A. p e. A ( p .<_ X -> p .<_ Y ) ) ) $=
      ( wcel w3a wbr wi wa crab wss cfv wceq atlatmstc coml ccla cal cv simpl13
      wral cpo atlpos syl atbase adantl simpl2 postr syl13anc expcomd ralrimdva
      simpl3 ss2rab club simpl12 ssrab2 atssbase sstri lubss mp3an2 sylancom ex
      eqid 3adant3 3adant2 breq12d sylibd syl5bir impbid ) CUAKZCUBKZCUCKZLZEBK
      ZFBKZLZEFDMZGUDZEDMZWCFDMZNZGAUFZWAWBWFGAWAWCAKZOZWDWBWEWICUGKZWCBKZVSVTW
      DWBOWENWIVQWJVOVPVQVSVTWHUECUHUIWHWKWAABWCCHJUJUKVRVSVTWHULVRVSVTWHUQBCDW
      CEFHIUMUNUOUPWGWDGAPZWEGAPZQZWAWBWDWEGAURWAWNWLCUSRZRZWMWORZDMZWBWAWNWRWA
      WNVPWRVOVPVQVSVTWNUTVPWMBQWNWRWMABWEGAVAABCHJVBVCBWLWMWOCDHIWOVHZVDVEVFVG
      WAWPEWQFDVRVSWPESVTGABWOCDEHIWSJTVIVRVTWQFSVSGABWOCDFHIWSJTVJVKVLVMVN $.
  $}

  ${
    $d p A $.  $d p B $.  $d p K $.  $d p .<_ $.  $d p X $.  $d p Y $.
    atlrelat1.b $e |- B = ( Base ` K ) $.
    atlrelat1.l $e |- .<_ = ( le ` K ) $.
    atlrelat1.s $e |- .< = ( lt ` K ) $.
    atlrelat1.a $e |- A = ( Atoms ` K ) $.
    $( An atomistic lattice with 0 is relatively atomic.  Part of Lemma 7.2 of
       [MaedaMaeda] p. 30.  ( ~ chpssati , with ` /\ ` swapped, analog.)
       (Contributed by NM, 4-Dec-2011.) $)
    atlrelat1 $p |- ( ( ( K e. OML /\ K e. CLat /\ K e. AtLat ) /\ X e. B /\ Y
        e. B ) -> ( X .< Y
         -> E. p e. A ( -. p .<_ X /\ p .<_ Y ) ) ) $=
      ( coml wcel w3a wbr wn wa wi wral ccla cal cv cpo simp13 atlpos pltnle ex
      wrex syld3an1 iman ancom xchbinx ralbii wb atlatle 3com23 biimprd syl5bir
      syl con3d dfrex2 syl6ibr syld ) DMNZDUANZDUBNZOZFBNZGBNZOZFGCPZGFEPZQZHUC
      ZFEPZQZVOGEPZRZHAUIZDUDNZVIVHVJVLVNSVKVGWAVEVFVGVIVJUEDUFUTWAVIVJOVLVNBCD
      EFGIJKUGUHUJVKVNVSQZHATZQVTVKWCVMWCVRVPSZHATZVKVMWDWBHAWDVRVQRVSVRVPUKVRV
      QULUMUNVKVMWEVHVJVIVMWEUOABDEGFHIJLUPUQURUSVAVSHAVBVCVD $.
  $}

  ${
    $d k c a b $.
    $( Define the class of lattices with the covering property. $)
    $(
    df-cvlat $a |- CvLat = { l e. AtLat | A. a e. ( Base ` l )
       A. p e. ( Atoms ` l ) ( ( a ( meet ` l ) p ) = ( 0. ` l )
          -> a ( <o ` l ) ( a ( join ` l ) p ) ) } $.
    $)

    $( Define the class of atomic lattices with the covering property.  (This
       is actually the exchange property, but they are equivalent.  The
       literature usually uses the covering property terminology.)
       (Contributed by NM, 5-Nov-2012.) $)
    df-cvlat $a |- CvLat = { k e. AtLat |
      A. a e. ( Atoms ` k ) A. b e. ( Atoms ` k ) A. c e. ( Base ` k )
            ( ( -. a ( le ` k ) c /\ a ( le ` k ) ( c ( join ` k ) b ) )
          -> b ( le ` k ) ( c ( join ` k ) a ) ) } $.
  $}

  $(
  @{
    @d l y A @.  @d l x B @.  @d l C @.  @d l .\/ @.  @d l x y K @.
    @d l ./\ @.  @d l .0. @.
    iscvlat.1 @e |- B = ( Base ` K ) @.
    iscvlat.2 @e |- .\/ = ( join ` K ) @.
    iscvlat.3 @e |- ./\ = ( meet ` K ) @.
    iscvlat.4 @e |- .0. = ( 0. ` K ) @.
    iscvlat.5 @e |- C = ( <o ` K ) @.
    iscvlat.6 @e |- A = ( Atoms ` K ) @.
    @( The predicate "is a lattice with the covering property". @)
    iscvlat @p |- ( K e. CvLat <-> ( K e. AtLat
      /\ A. x e. B A. y e. A ( ( x ./\ y ) = .0. -> x C ( x .\/ y ) ) ) ) @=
      ( vl cv cmee cfv co cp0 wceq cjn ccvr wbr wi catm wral cbs cal clc fveq2
      syl6eqr oveqd eqeq12d wb breq syl breq2d bitrd imbi12d raleqbidv
      df-cvlat elrab2 ) AQZBQZPQZRSZTZVGUASZUBZVEVEVFVGUCSZTZVGUDSZUEZUFZBVGUGS
      ZUHZAVGUISZUHVEVFHTZIUBZVEVEVFFTZEUEZUFZBCUHZADUHPGUJUKVGGUBZVRWEAVSDWFVS
      GUISDVGGUIULJUMWFVPWDBVQCWFVQGUGSCVGGUGULOUMWFVKWAVOWCWFVIVTVJIWFVHHVEVFW
      FVHGRSHVGGRULLUMUNWFVJGUASIVGGUAULMUMUOWFVOVEVMEUEZWCWFVNEUBVOWGUPWFVNGUD
      SEVGGUDULNUMVEVMVNEUQURWFVMWBVEEWFVLFVEVFWFVLGUCSFVGGUCULKUMUNUSUTVAVBVBB
      APVCVD @.
      @( [18-Sep-2011] @)
  @}

  @{
    @d y A @.  @d x y B @.  @d x y K @.
    iscvlati.0 @e |- K e. AtLat @.
    iscvlati.1 @e |- B = ( Base ` K ) @.
    iscvlati.2 @e |- .\/ = ( join ` K ) @.
    iscvlati.3 @e |- ./\ = ( meet ` K ) @.
    iscvlati.4 @e |- .0. = ( 0. ` K ) @.
    iscvlati.5 @e |- C = ( <o ` K ) @.
    iscvlati.6 @e |- A = ( Atoms ` K ) @.
    iscvlati.7 @e |- ( ( x e. B /\ y e. A /\ ( x ./\ y ) = .0. )
                          -> x C ( x .\/ y ) ) @.
    @( Properties that a lattice with the covering property. @)
    iscvlati @p |- K e. CvLat @=
      ( clc wcel cal cv co wceq wbr wi wral iscvlat 3expia rgen2 mpbir2anOLD )
      GRS
      GTSAUAZBUAZHUBIUCZUKUKULFUBEUDZUEZBCUFADUFABCDEFGHIKLMNOPUGJUOABDCUKDSULC
      SUMUNQUHUIUJ @.
      @( [18-Sep-2011] @)
  @}
  $)

  ${
    $d k p q A $.  $d k x B $.  $d k .<_ $.  $d k .\/ $.  $d k p q x K $.
    iscvlat.b $e |- B = ( Base ` K ) $.
    iscvlat.l $e |- .<_ = ( le ` K ) $.
    iscvlat.j $e |- .\/ = ( join ` K ) $.
    iscvlat.a $e |- A = ( Atoms ` K ) $.
    $( The predicate "is an atomic lattice with the covering (or exchange)
       property".  (Contributed by NM, 5-Nov-2012.) $)
    iscvlat $p |- ( K e. CvLat
       <-> ( K e. AtLat /\ A. p e. A A. q e. A A. x e. B
       ( ( -. p .<_ x /\ p .<_ ( x .\/ q ) ) -> q .<_ ( x .\/ p ) ) ) ) $=
      ( vk cv cfv wbr co wral fveq2 syl6eqr cple wn cjn wa wi cbs catm cal wceq
      clc breqd notbid eqidd breq123d anbi12d imbi12d raleqbidv df-cvlat elrab2
      oveqd ) HNZANZMNZUAOZPZUBZVAVBGNZVCUCOZQZVDPZUDZVGVBVAVHQZVDPZUEZAVCUFOZR
      ZGVCUGOZRZHVQRVAVBFPZUBZVAVBVGDQZFPZUDZVGVBVADQZFPZUEZACRZGBRZHBRMEUHUJVC
      EUIZVRWHHVQBWIVQEUGOBVCEUGSLTZWIVPWGGVQBWJWIVNWFAVOCWIVOEUFOCVCEUFSITWIVK
      WCVMWEWIVFVTVJWBWIVEVSWIVDFVAVBWIVDEUAOFVCEUASJTZUKULWIVAVAVIWAVDFWIVAUMW
      KWIVHDVBVGWIVHEUCODVCEUCSKTZUTUNUOWIVGVGVLWDVDFWIVGUMWKWIVHDVBVAWLUTUNUPU
      QUQUQMHGAURUS $.
  $}

  ${
    $d p q x A $.  $d x B $.  $d p q x K $.
    iscvlat2.b $e |- B = ( Base ` K ) $.
    iscvlat2.l $e |- .<_ = ( le ` K ) $.
    iscvlat2.j $e |- .\/ = ( join ` K ) $.
    iscvlat2.m $e |- ./\ = ( meet ` K ) $.
    iscvlat2.z $e |- .0. = ( 0. ` K ) $.
    iscvlat2.a $e |- A = ( Atoms ` K ) $.
    $( The predicate "is an atomic lattice with the covering (or exchange)
       property".  (Contributed by NM, 5-Nov-2012.)
       (New usage is discouraged.) $)
    iscvlat2N $p |- ( K e. CvLat
        <-> ( K e. AtLat /\ A. p e. A A. q e. A A. x e. B
  ( ( ( p ./\ x ) = .0. /\ p .<_ ( x .\/ q ) ) -> q .<_ ( x .\/ p ) ) ) ) $=
      ( wcel cv wa wral clc cal wbr wn co wi wceq iscvlat wb simpll simpr atnle
      simplrl syl3anc anbi1d imbi1d ralbidva 2ralbidva pm5.32i bitri ) EUAQEUBQ
      ZJRZARZFUCUDZVBVCIRZDUEFUCZSZVEVCVBDUEFUCZUFZACTZIBTJBTZSVAVBVCGUEHUGZVFS
      ZVHUFZACTZIBTJBTZSABCDEFIJKLMPUHVAVKVPVAVJVOJIBBVAVBBQZVEBQZSZSZVIVNACVTV
      CCQZSZVGVMVHWBVDVLVFWBVAVQWAVDVLUIVAVSWAUJVAVQVRWAUMVTWAUKBCVBEFGVCHKLNOP
      ULUNUOUPUQURUSUT $.
  $}

  ${
    $d p q x K $.
    $( An atomic lattice with the covering property is an atomic lattice.
       (Contributed by NM, 5-Nov-2012.) $)
    cvlatl $p |- ( K e. CvLat -> K e. AtLat ) $=
      ( vp vx vq clc wcel cal cv cple cfv wbr wn cjn co wa cbs wral catm eqid
      wi iscvlat simplbi ) AEFAGFBHZCHZAIJZKLUCUDDHZAMJZNUEKOUFUDUCUGNUEKTCAPJZ
      QDARJZQBUIQCUIUHUGAUEDBUHSUESUGSUISUAUB $.
  $}

  $( An atomic lattice with the covering property is a lattice.  (Contributed
     by NM, 5-Nov-2012.) $)
  cvllat $p |- ( K e. CvLat -> K e. Lat ) $=
    ( clc wcel cal clat cvlatl atllat syl ) ABCADCAECAFAGH $.

  $( An atomic lattice with the covering property is a poset.  (Contributed by
     NM, 5-Nov-2012.)  (New usage is discouraged.) $)
  cvlposN $p |- ( K e. CvLat -> K e. Poset ) $=
    ( clc wcel clat cpo cvllat latpos syl ) ABCADCAECAFAGH $.

  ${
    $d p q A $.  $d p q x B $.  $d p q x .\/ $.  $d p q x K $.  $d p q x .<_ $.
    $d p q x P $.  $d q x Q $.  $d x X $.
    cvlexch.b $e |- B = ( Base ` K ) $.
    cvlexch.l $e |- .<_ = ( le ` K ) $.
    cvlexch.j $e |- .\/ = ( join ` K ) $.
    cvlexch.a $e |- A = ( Atoms ` K ) $.
    $( An atomic covering lattice has the exchange property.  (Contributed by
       NM, 6-Nov-2011.) $)
    cvlexch1 $p |- ( ( K e. CvLat /\ ( P e. A /\ Q e. A /\ X e. B )
        /\ -. P .<_ X ) -> ( P .<_ ( X .\/ Q ) -> Q .<_ ( X .\/ P ) ) ) $=
      ( vp vx vq wcel wbr co wi wa clc w3a wn cv wral cal iscvlat simprbi breq1
      notbid anbi12d oveq2 breq2d imbi12d anbi2d breq2 oveq1 rspc3v mpan9 exp4b
      wceq 3imp ) FUAPZCAPDAPHBPUBZCHGQZUCZCHDERZGQZDHCERZGQZSVCVDVFVHVJVCMUDZN
      UDZGQZUCZVKVLOUDZERZGQZTZVOVLVKERZGQZSZNBUEOAUEMAUEZVDVFVHTZVJSZVCFUFPWBN
      ABEFGOMIJKLUGUHWAWDCVLGQZUCZCVPGQZTZVOVLCERZGQZSWFCVLDERZGQZTZDWIGQZSMONC
      DHAABVKCVAZVRWHVTWJWOVNWFVQWGWOVMWEVKCVLGUIUJVKCVPGUIUKWOVSWIVOGVKCVLEULU
      MUNVODVAZWHWMWJWNWPWGWLWFWPVPWKCGVODVLEULUMUOVODWIGUIUNVLHVAZWMWCWNVJWQWF
      VFWLVHWQWEVEVLHCGUPUJWQWKVGCGVLHDEUQUMUKWQWIVIDGVLHCEUQUMUNURUSUTVB $.

    $( An atomic covering lattice has the exchange property.  (Contributed by
       NM, 6-May-2012.) $)
    cvlexch2 $p |- ( ( K e. CvLat /\ ( P e. A /\ Q e. A /\ X e. B )
        /\ -. P .<_ X ) -> ( P .<_ ( Q .\/ X ) -> Q .<_ ( P .\/ X ) ) ) $=
      ( wcel w3a wbr co wceq atbase syl latjcom clc wn cvlexch1 cvllat 3ad2ant1
      clat simp22 simp23 syl3anc breq2d simp21 3imtr4d ) FUAMZCAMZDAMZHBMZNZCHG
      OUBZNZCHDEPZGODHCEPZGOCDHEPZGODCHEPZGOABCDEFGHIJKLUCUSVBUTCGUSFUFMZDBMZUP
      VBUTQUMUQVDURFUDUEZUSUOVEUMUNUOUPURUGABDFILRSUMUNUOUPURUHZBEFDHIKTUIUJUSV
      CVADGUSVDCBMZUPVCVAQVFUSUNVHUMUNUOUPURUKABCFILRSVGBEFCHIKTUIUJUL $.

    $( An atomic covering lattice has the exchange property.  (Contributed by
       NM, 16-Nov-2011.) $)
    cvlexchb1 $p |- ( ( K e. CvLat /\ ( P e. A /\ Q e. A /\ X e. B )
      /\ -. P .<_ X ) -> ( P .<_ ( X .\/ Q )
    <-> ( X .\/ P ) = ( X .\/ Q ) ) ) $=
      ( wcel wbr wa adantr syl3anc 3adant3 wb mpbi2and clc w3a wceq clat cvllat
      wn simpr3 simpr2 atbase syl latlej1 simpr simpr1 latjcl latjle12 syl13anc
      co cvlexch1 imp latasymb ex wi latlej2 breq2 syl5ibcom impbid ) FUAMZCAMZ
      DAMZHBMZUBZCHGNUFZUBZCHDEUQZGNZHCEUQZVNUCZVMVOVQVMVOOZVPVNGNZVNVPGNZVQVRH
      VNGNZVOVSVMWAVOVGVKWAVLVGVKOZFUDMZVJDBMZWAVGWCVKFUEPZVGVHVIVJUGZWBVIWDVGV
      HVIVJUHABDFILUIUJZBEFGHDIJKUKQRPVMVOULVMWAVOOVSSZVOVGVKWHVLWBWCVJCBMZVNBM
      ZWHWEWFWBVHWIVGVHVIVJUMABCFILUIUJZWBWCVJWDWJWEWFWGBEFHDIKUNQZBEFGHCVNIJKU
      OUPRPTVRHVPGNZDVPGNZVTVMWMVOVGVKWMVLWBWCVJWIWMWEWFWKBEFGHCIJKUKQRPVMVOWNA
      BCDEFGHIJKLURUSVMWMWNOVTSZVOVGVKWOVLWBWCVJWDVPBMZWOWEWFWGWBWCVJWIWPWEWFWK
      BEFHCIKUNQZBEFGHDVPIJKUOUPRPTVMVSVTOVQSZVOVGVKWRVLWBWCWPWJWRWEWQWLBFGVPVN
      IJUTQRPTVAVGVKVQVOVBVLWBCVPGNZVQVOWBWCVJWIWSWEWFWKBEFGHCIJKVCQVPVNCGVDVER
      VF $.

    $( An atomic covering lattice has the exchange property.  (Contributed by
       NM, 22-Jun-2012.) $)
    cvlexchb2 $p |- ( ( K e. CvLat /\ ( P e. A /\ Q e. A /\ X e. B )
    /\ -. P .<_ X )
         -> ( P .<_ ( Q .\/ X ) <-> ( P .\/ X ) = ( Q .\/ X ) ) ) $=
      ( wcel w3a wbr co wceq atbase syl latjcom wn cvlexchb1 clat cvllat simp22
      clc 3ad2ant1 simp23 syl3anc breq2d simp21 eqeq12d 3bitr4d ) FUFMZCAMZDAMZ
      HBMZNZCHGOUAZNZCHDEPZGOHCEPZVAQCDHEPZGOCHEPZVCQABCDEFGHIJKLUBUTVCVACGUTFU
      CMZDBMZUQVCVAQUNURVEUSFUDUGZUTUPVFUNUOUPUQUSUEABDFILRSUNUOUPUQUSUHZBEFDHI
      KTUIZUJUTVDVBVCVAUTVECBMZUQVDVBQVGUTUOVJUNUOUPUQUSUKABCFILRSVHBEFCHIKTUIV
      IULUM $.
  $}

  ${
    cvlexch3.b $e |- B = ( Base ` K ) $.
    cvlexch3.l $e |- .<_ = ( le ` K ) $.
    cvlexch3.j $e |- .\/ = ( join ` K ) $.
    cvlexch3.m $e |- ./\ = ( meet ` K ) $.
    cvlexch3.z $e |- .0. = ( 0. ` K ) $.
    cvlexch3.a $e |- A = ( Atoms ` K ) $.
    $( An atomic covering lattice has the exchange property.  ( ~ atexch
       analog.)  (Contributed by NM, 5-Nov-2012.) $)
    cvlexch3 $p |- ( ( K e. CvLat /\ ( P e. A /\ Q e. A /\ X e. B )
        /\ ( P ./\ X ) = .0. )
            -> ( P .<_ ( X .\/ Q ) -> Q .<_ ( X .\/ P ) ) ) $=
      ( clc wcel co wbr w3a wceq wi wa wn cal cvlatl adantr simpr1 simpr3 atnle
      wb syl3anc cvlexch1 3expia sylbird 3impia ) FQRZCARZDARZIBRZUAZCIHSJUBZCI
      DESGTDICESGTUCZURVBUDZVCCIGTUEZVDVEFUFRZUSVAVFVCULURVGVBFUGUHURUSUTVAUIUR
      USUTVAUJABCFGHIJKLNOPUKUMURVBVFVDABCDEFGIKLMPUNUOUPUQ $.

    $( An atomic covering lattice has the exchange property.  Part of
       Definition 7.8 of [MaedaMaeda] p. 32.  (Contributed by NM, 5-Nov-2012.)
       (New usage is discouraged.) $)
    cvlexch4N $p |- ( ( K e. CvLat /\ ( P e. A /\ Q e. A /\ X e. B )
        /\ ( P ./\ X ) = .0. )
    -> ( P .<_ ( X .\/ Q ) <-> ( X .\/ P ) = ( X .\/ Q ) ) ) $=
      ( wcel co wceq wbr clc w3a wb wa wn cal cvlatl adantr simpr1 simpr3 atnle
      syl3anc cvlexchb1 3expia sylbird 3impia ) FUAQZCAQZDAQZIBQZUBZCIHRJSZCIDE
      RZGTICERVCSUCZUQVAUDZVBCIGTUEZVDVEFUFQZURUTVFVBUCUQVGVAFUGUHUQURUSUTUIUQU
      RUSUTUJABCFGHIJKLNOPUKULUQVAVFVDABCDEFGIKLMPUMUNUOUP $.
  $}

  ${
    cvlatexch.l $e |- .<_ = ( le ` K ) $.
    cvlatexch.j $e |- .\/ = ( join ` K ) $.
    cvlatexch.a $e |- A = ( Atoms ` K ) $.
    $( A version of ~ cvlexchb1 for atoms.  (Contributed by NM, 5-Nov-2012.) $)
    cvlatexchb1 $p |- ( ( K e. CvLat /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ P =/= R ) -> ( P .<_ ( R .\/ Q )
         <-> ( R .\/ P ) = ( R .\/ Q ) ) ) $=
      ( clc wcel w3a wne co wbr wceq wb wa wn cal cvlatl adantr syl3anc cbs cfv
      simpr1 simpr3 atncmp eqid atbase cvlexchb1 3expia syl3anr3 sylbird 3impia
      wi ) FKLZBALZCALZDALZMZBDNZBDCEOZGPDBEOVDQRZURVBSZVCBDGPTZVEVFFUALZUSVAVG
      VCRURVHVBFUBUCURUSUTVAUGURUSUTVAUHABDFGHJUIUDVAUSURUTDFUEUFZLZVGVEUQAVIDF
      VIUJZJUKURUSUTVJMVGVEAVIBCEFGDVKHIJULUMUNUOUP $.

    $( A version of ~ cvlexchb2 for atoms.  (Contributed by NM, 5-Nov-2012.) $)
    cvlatexchb2 $p |- ( ( K e. CvLat /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ P =/= R ) -> ( P .<_ ( Q .\/ R )
         <-> ( P .\/ R ) = ( Q .\/ R ) ) ) $=
      ( clc wcel w3a co wbr wceq atbase syl latjcom syl3anc wne cvlatexchb1 cbs
      clat cfv cvllat 3ad2ant1 simp22 eqid simp23 breq2d simp21 eqeq12d 3bitr4d
      ) FKLZBALZCALZDALZMZBDUAZMZBDCENZGODBENZVBPBCDENZGOBDENZVDPABCDEFGHIJUBVA
      VDVBBGVAFUDLZCFUCUEZLZDVGLZVDVBPUOUSVFUTFUFUGZVAUQVHUOUPUQURUTUHAVGCFVGUI
      ZJQRVAURVIUOUPUQURUTUJAVGDFVKJQRZVGEFCDVKISTZUKVAVEVCVDVBVAVFBVGLZVIVEVCP
      VJVAUPVNUOUPUQURUTULAVGBFVKJQRVLVGEFBDVKISTVMUMUN $.

    $( Atom exchange property.  (Contributed by NM, 5-Nov-2012.) $)
    cvlatexch1 $p |- ( ( K e. CvLat /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ P =/= R ) -> ( P .<_ ( R .\/ Q ) -> Q .<_ ( R .\/ P ) ) ) $=
      ( clc wcel w3a wne co wbr wceq cvlatexchb1 atbase syl clat cbs cfv cvllat
      3ad2ant1 simp23 eqid simp22 latlej2 syl3anc breq2 syl5ibrcom sylbid ) FKL
      ZBALZCALZDALZMZBDNZMZBDCEOZGPDBEOZVAQZCVBGPZABCDEFGHIJRUTVDVCCVAGPZUTFUAL
      ZDFUBUCZLZCVGLZVEUNURVFUSFUDUEUTUQVHUNUOUPUQUSUFAVGDFVGUGZJSTUTUPVIUNUOUP
      UQUSUHAVGCFVJJSTVGEFGDCVJHIUIUJVBVACGUKULUM $.

    $( Atom exchange property.  (Contributed by NM, 5-Nov-2012.) $)
    cvlatexch2 $p |- ( ( K e. CvLat /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ P =/= R ) -> ( P .<_ ( Q .\/ R ) -> Q .<_ ( P .\/ R ) ) ) $=
      ( wcel w3a co wbr wceq atbase syl latjcom syl3anc breq2d clc wne clat cbs
      cvlatexch1 cfv cvllat 3ad2ant1 simp22 eqid simp23 simp21 3imtr4d ) FUAKZB
      AKZCAKZDAKZLZBDUBZLZBDCEMZGNCDBEMZGNBCDEMZGNCBDEMZGNABCDEFGHIJUEUTVCVABGU
      TFUCKZCFUDUFZKZDVFKZVCVAOUNURVEUSFUGUHZUTUPVGUNUOUPUQUSUIAVFCFVFUJZJPQUTU
      QVHUNUOUPUQUSUKAVFDFVJJPQZVFEFCDVJIRSTUTVDVBCGUTVEBVFKZVHVDVBOVIUTUOVLUNU
      OUPUQUSULAVFBFVJJPQVKVFEFBDVJIRSTUM $.

    $( Atom exchange property.  (Contributed by NM, 29-Nov-2012.) $)
    cvlatexch3 $p |- ( ( K e. CvLat /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ ( P =/= Q /\ P =/= R ) )
             -> ( P .<_ ( Q .\/ R ) -> ( P .\/ Q ) = ( P .\/ R ) ) ) $=
      ( wcel w3a wne wa co wceq wb biimpa syl atbase simp1 simp21 simp23 simp22
      clc wbr simp3l cvlatexchb1 syl131anc clat cbs simpl1 simpl21 eqid simpl22
      cfv cvllat latjcom syl3anc cvlatexchb2 3adant3l 3eqtr4d ex ) FUEKZBAKZCAK
      ZDAKZLZBCMZBDMZNZLZBCDEOZGUFZBCEOZBDEOZPVLVNNZCBEOZVMVOVPVLVNVRVMPZVLVDVE
      VGVFVIVNVSQVDVHVKUAVDVEVFVGVKUBVDVEVFVGVKUCVDVEVFVGVKUDVDVHVIVJUGABDCEFGH
      IJUHUIRVQFUJKZBFUKUPZKZCWAKZVOVRPVQVDVTVDVHVKVNULFUQSVQVEWBVEVFVGVDVKVNUM
      AWABFWAUNZJTSVQVFWCVEVFVGVDVKVNUOAWACFWDJTSWAEFBCWDIURUSVLVNVPVMPZVDVHVJV
      NWEQVIABCDEFGHIJUTVARVBVC $.
  $}

  ${
    $d q z A $.  $d q z B $.  $d q z .\/ $.  $d q z K $.  $d q z .<_ $.
    $d q z X $.  $d q z P $.
    cvlcvr1.b $e |- B = ( Base ` K ) $.
    cvlcvr1.l $e |- .<_ = ( le ` K ) $.
    cvlcvr1.j $e |- .\/ = ( join ` K ) $.
    cvlcvr1.c $e |- C = ( <o ` K ) $.
    cvlcvr1.a $e |- A = ( Atoms ` K ) $.
    $( The covering property.  Proposition 1(ii) in [Kalmbach] p. 140 (and its
       converse).  ( ~ chcv1 analog.)  (Contributed by NM, 5-Nov-2012.) $)
    cvlcvr1 $p |- ( ( ( K e. OML /\ K e. CLat /\ K e. CvLat )
             /\ X e. B /\ P e. A )
      -> ( -. P .<_ X <-> X C ( X .\/ P ) ) ) $=
      ( vz wcel wbr wa wi syl3anc adantr vq coml ccla clc w3a wn co cplt cfv cv
      wceq wral clat simp13 cvllat syl simp2 atbase 3ad2ant3 eqid latnle biimpd
      simpl13 simprll simpl2 simpl3 latjcl simprrr wrex simprrl simpl11 simpl12
      cal cvlatl atlrelat1 syl311anc mpd ad2antrl lattrd simprl simpll3 simpll2
      cvlexch1 syl131anc simprlr mpbid pltle latjle12 syl13anc mpbi2and eqbrtrd
      wb cvlexchb1 rexlimddv latasymd exp44 imp ralrimdva cvrval2 sylibrd simpr
      jcad cvrlt syl31anc ex impbid ) FUBOZFUCOZFUDOZUEZHBOZDAOZUEZDHGPUFZHHDEU
      GZCPZXMXNHXOFUHUIZPZHNUJZXQPZXSXOGPZQZXSXOUKZRZNBULZQZXPXMXNXRYEXMXNXRXMF
      UMOZXKDBOZXNXRWLXMXIYGXGXHXIXKXLUNFUOZUPZXJXKXLUQZXLXJYHXKABDFIMURZUSZBXQ
      EFGHDIJXQUTZKVASZVBXMXNYDNBXMXSBOZXNYDRXMYPXNYBYCXMYPXNQZYBQZQZBFGXSXOIJY
      SXIYGXGXHXIXKXLYRVCZYIUPZXMYPXNYBVDZYSYGXKYHXOBOZUUAXJXKXLYRVEZYSXLYHXJXK
      XLYRVFYLUPBEFHDIKVGZSZXMYQXTYAVHZYSUAUJZHGPUFZUUHXSGPZQZXOXSGPUAAYSXTUUKU
      AAVIZXMYQXTYAVJZYSXGXHFVMOZXKYPXTUULRXGXHXIXKXLYRVKZXGXHXIXKXLYRVLYSXIUUN
      YTFVNUPUUDUUBABXQFGHXSUAIJYNMVOVPVQYSUUHAOZUUKQZQZXOHUUHEUGZXSGUURDUUSGPZ
      XOUUSUKZUURUUHXOGPZUUTUURBFGUUHXSXOIJYSYGUUQUUATZUUPUUHBOZYSUUKABUUHFIMUR
      VRZYSYPUUQUUBTZYSUUCUUQUUFTYSUUPUUIUUJVHZYSYAUUQUUGTVSUURXIUUPXLXKUUIUVBU
      UTRYSXIUUQYTTZYSUUPUUKVTZXJXKXLYRUUQWAZXJXKXLYRUUQWBZYSUUPUUIUUJVJABUUHDE
      FGHIJKMWCWDVQUURXIXLUUPXKXNUUTUVAWLUVHUVJUVIUVKYSXNUUQXMYPXNYBWETABDUUHEF
      GHIJKMWMWDWFUURHXSGPZUUJUUSXSGPZYSUVLUUQYSXTUVLUUMYSXGXKYPXTUVLRUUOUUDUUB
      UBBBXQFGHXSJYNWGSVQTUVGUURYGXKUVDYPUVLUUJQUVMWLUVCUVKUVEUVFBEFGHUUHXSIJKW
      HWIWJWKWNWOWPWQWRXBXMYGXKUUCXPYFWLYJYKXMYGXKYHUUCYJYKYMUUESZNUMBCXQFGHXOI
      JYNLWSSWTXMXPXRXNXMXPXRXMXPQYGXKUUCXPXRXMYGXPYJTXJXKXLXPVEXMUUCXPUVNTXMXP
      XAUMBCXQFHXOIYNLXCXDXEYOWTXF $.
  $}

  ${
    cvlcvrp.b $e |- B = ( Base ` K ) $.
    cvlcvrp.j $e |- .\/ = ( join ` K ) $.
    cvlcvrp.m $e |- ./\ = ( meet ` K ) $.
    cvlcvrp.z $e |- .0. = ( 0. ` K ) $.
    cvlcvrp.c $e |- C = ( <o ` K ) $.
    cvlcvrp.a $e |- A = ( Atoms ` K ) $.
    $( A Hilbert lattice satisfies the covering property of Definition 7.4 of
       [MaedaMaeda] p. 31 and its converse.  ( ~ cvp analog.)  (Contributed by
       NM, 5-Nov-2012.) $)
    cvlcvrp $p |- ( ( ( K e. OML /\ K e. CLat /\ K e. CvLat )
          /\ X e. B /\ P e. A )
     -> ( ( X ./\ P ) = .0. <-> X C ( X .\/ P ) ) ) $=
      ( wcel w3a co wceq wbr coml ccla clc cple cfv wn clat simp13 cvllat simp2
      syl atbase 3ad2ant3 latmcom syl3anc eqeq1d cal wb cvlatl simp3 eqid atnle
      cvlcvr1 3bitr2d ) FUAPZFUBPZFUCPZQZHBPZDAPZQZHDGRZISDHGRZISZDHFUDUEZTUFZH
      HDERCTVKVLVMIVKFUGPZVIDBPZVLVMSVKVGVQVEVFVGVIVJUHZFUIUKVHVIVJUJZVJVHVRVIA
      BDFJOULUMBFGHDJLUNUOUPVKFUQPZVJVIVPVNURVKVGWAVSFUSUKVHVIVJUTVTABDFVOGHIJV
      OVAZLMOVBUOABCDEFVOHJWBKNOVCVD $.
  $}

  ${
    cvlatcvr1.j $e |- .\/ = ( join ` K ) $.
    cvlatcvr1.c $e |- C = ( <o ` K ) $.
    cvlatcvr1.a $e |- A = ( Atoms ` K ) $.
    $( An atom is covered by its join with a different atom.  (Contributed by
       NM, 5-Nov-2012.) $)
    cvlatcvr1 $p |- ( ( ( K e. OML /\ K e. CLat /\ K e. CvLat )
            /\ P e. A /\ Q e. A ) -> ( P =/= Q <-> P C ( P .\/ Q ) ) ) $=
      ( coml wcel ccla clc w3a wne cmee cfv co wb eqid cp0 simp13 cvlatl atnem0
      wceq wbr cal syl syld3an1 cbs atbase cvlcvrp syl3an2 bitrd ) FJKZFLKZFMKZ
      NZCAKZDAKZNZCDOZCDFPQZRFUAQZUEZCCDERBUFZFUGKZUSURUTVBVESVAUQVGUOUPUQUSUTU
      BFUCUHACDFVCVDVCTZVDTZIUDUIUSURCFUJQZKUTVEVFSAVJCFVJTZIUKAVJBDEFVCCVDVKGV
      HVIHIULUMUN $.

    $( An atom is covered by its join with a different atom.  (Contributed by
       NM, 5-Nov-2012.) $)
    cvlatcvr2 $p |- ( ( ( K e. OML /\ K e. CLat /\ K e. CvLat )
       /\ P e. A /\ Q e. A ) -> ( P =/= Q <-> P C ( Q .\/ P ) ) ) $=
      ( coml wcel ccla clc w3a wne co wbr cvlatcvr1 clat atbase cbs wceq simp13
      cfv cvllat syl eqid 3ad2ant2 3ad2ant3 latjcom syl3anc breq2d bitrd ) FJKZ
      FLKZFMKZNZCAKZDAKZNZCDOCCDEPZBQCDCEPZBQABCDEFGHIRUTVAVBCBUTFSKZCFUAUDZKZD
      VDKZVAVBUBUTUPVCUNUOUPURUSUCFUEUFURUQVEUSAVDCFVDUGZITUHUSUQVFURAVDDFVGITU
      IVDEFCDVGGUJUKULUM $.
  $}

  ${
    cvlsupr2.a $e |- A = ( Atoms ` K ) $.
    cvlsupr2.l $e |- .<_ = ( le ` K ) $.
    cvlsupr2.j $e |- .\/ = ( join ` K ) $.
    $( Two equivalent ways of expressing that ` R ` is a superposition of ` P `
       and ` Q ` .  (Contributed by NM, 5-Nov-2012.) $)
    cvlsupr2 $p |- ( ( K e. CvLat
              /\ ( P e. A /\ Q e. A /\ R e. A ) /\ P =/= Q )
      -> ( ( P .\/ R ) = ( Q .\/ R )
            <-> ( R =/= P /\ R =/= Q /\ R .<_ ( P .\/ Q ) ) ) ) $=
      ( wcel wne co wceq wbr wa wb oveq2 syl syl3anc simpl3 necomd simplr eqcom
      clc w3a eqeq12d syl6bb adantl mpbid clat cbs simpl1 cvllat simpl21 atbase
      cfv eqid latjidm syl2anc adantr eqtrd simpl22 latleeqj1 cal cvlatl bitr3d
      ex atcmp sylibd necon3d mpd simpl23 latlej1 breqtrrd cvlatexch1 syl131anc
      simpr 3jca simpr3 latjcom breq2d simpr2 simpr1 cvlatexchb2 sylbid impbida
      wi ) FUEKZBAKZCAKZDAKZUFZBCLZUFZBDEMZCDEMZNZDBLZDCLZDBCEMZGOZUFZWOWRPZWSW
      TXBXDCBLZWSXDBCWIWMWNWRUAZUBZXDDBCBXDDBNZCBEMZBNZCBNZXDXHXJXDXHPZXIBBEMZB
      XLWRXIXMNZWOWRXHUCXHWRXNQXDXHWRXMXINXNXHWPXMWQXIDBBERDBCERUGXMXIUDUHUIUJX
      DXMBNZXHXDFUKKZBFULUQZKZXOXDWIXPWIWMWNWRUMZFUNZSZXDWJXRWJWKWLWIWNWRUOZAXQ
      BFXQURZHUPZSZXQEFBYCJUSUTVAVBVHXDCBGOZXJXKXDXPCXQKZXRYFXJQYAXDWKYGWJWKWLW
      IWNWRVCZAXQCFYCHUPZSZYEXQEFGCBYCIJVDTXDFVEKZWKWJYFXKQXDWIYKXSFVFSZYHYBACB
      FGIHVITVGVJVKVLXDWNWTXFXDDCBCXDDCNZXACNZBCNZXDYMYNXDYMPZXACCEMZCYPWRXAYQN
      ZWOWRYMUCYMWRYRQXDYMWPXAWQYQDCBERDCCERUGUIUJXDYQCNZYMXDXPYGYSYAYJXQEFCYCJ
      USUTVAVBVHXDBCGOZYNYOXDXPXRYGYTYNQYAYEYJXQEFGBCYCIJVDTXDYKWJWKYTYOQYLYBYH
      ABCFGIHVITVGVJVKVLXDCWPGOZXBXDCWQWPGXDXPYGDXQKZCWQGOYAYJXDWLUUBWJWKWLWIWN
      WRVMZAXQDFYCHUPSXQEFGCDYCIJVNTWOWRVRVOXDWIWKWLWJXEUUAXBWHXSYHUUCYBXGACDBE
      FGIJHVPVQVLVSWOXCPZXBWRWOWSWTXBVTUUDXBDXIGOZWRUUDXAXIDGUUDXPXRYGXAXINUUDW
      IXPWIWMWNXCUMZXTSUUDWJXRWJWKWLWIWNXCUOZYDSUUDWKYGWJWKWLWIWNXCVCZYISXQEFBC
      YCJWATWBUUDUUEBWQGOZWRUUDWIWLWJWKWTUUEUUIWHUUFWJWKWLWIWNXCVMZUUGUUHWOWSWT
      XBWCADBCEFGIJHVPVQUUDWIWJWKWLBDLUUIWRQUUFUUGUUHUUJUUDDBWOWSWTXBWDUBABCDEF
      GIJHWEVQVJWFVLWG $.

    $( Two equivalent ways of expressing that ` R ` is a superposition of ` P `
       and ` Q ` , which can replace the superposition part of ~ ishlat1 ,
       ` ( x =/= y -> E. z e. A ( z =/= x /\ z =/= y /\ z .<_ ( x .\/ y ) ) `
       ` ) ` , with the simpler ` E. z e. A ( x .\/ z ) = ( y .\/ z ) ` as
       shown in ~ ishlat3N .  (Contributed by NM, 5-Nov-2012.) $)
    cvlsupr3 $p |- ( ( K e. CvLat
          /\ ( P e. A /\ Q e. A /\ R e. A ) )
    -> ( ( P .\/ R ) = ( Q .\/ R )
        <-> ( P =/= Q -> ( R =/= P /\ R =/= Q /\ R .<_ ( P .\/ Q ) ) ) ) ) $=
      ( co wceq wne wi clc wcel w3a wa wbr wn df-ne imbi1i oveq1 pm4.83 3bitrri
      biantrur wb cvlsupr2 3expia pm5.74d syl5bb ) BDEKCDEKLZBCMZULNZFOPZBAPCAP
      DAPQZRZUMDBMDCMDBCEKGSQZNUNBCLZTZULNZUSULNZVARULUMUTULBCUAUBVBVABCDEUCUFU
      SULUDUEUQUMULURUOUPUMULURUGABCDEFGHIJUHUIUJUK $.

    $( Consequence of superposition condition ` ( P .\/ R ) = ( Q .\/ R ) ` .
       (Contributed by NM, 9-Nov-2012.) $)
    cvlsupr4 $p |- ( ( K e. CvLat
              /\ ( P e. A /\ Q e. A /\ R e. A )
    /\ ( P =/= Q /\ ( P .\/ R ) = ( Q .\/ R ) ) ) -> R .<_ ( P .\/ Q ) ) $=
      ( clc wcel w3a wne co wceq wa wbr wi cvlsupr2 simp3 syl6bi 3exp imp4a
      3imp ) FKLZBALCALDALMZBCNZBDEOCDEOPZQDBCEOGRZUFUGUHUIUJUFUGUHUIUJSUFUGUHM
      UIDBNZDCNZUJMUJABCDEFGHIJTUKULUJUAUBUCUDUE $.
  $}

  ${
    cvlsupr5.a $e |- A = ( Atoms ` K ) $.
    cvlsupr5.j $e |- .\/ = ( join ` K ) $.
    $( Consequence of superposition condition ` ( P .\/ R ) = ( Q .\/ R ) ` .
       (Contributed by NM, 9-Nov-2012.) $)
    cvlsupr5 $p |- ( ( K e. CvLat
              /\ ( P e. A /\ Q e. A /\ R e. A )
              /\ ( P =/= Q /\ ( P .\/ R ) = ( Q .\/ R ) ) ) -> R =/= P ) $=
      ( clc wcel w3a wne co wceq wa wi cple cfv wbr eqid simp1 syl6bi 3exp 3imp
      cvlsupr2 imp4a ) FIJZBAJCAJDAJKZBCLZBDEMCDEMNZODBLZUGUHUIUJUKUGUHUIUJUKPU
      GUHUIKUJUKDCLZDBCEMFQRZSZKUKABCDEFUMGUMTHUEUKULUNUAUBUCUFUD $.

    $( Consequence of superposition condition ` ( P .\/ R ) = ( Q .\/ R ) ` .
       (Contributed by NM, 9-Nov-2012.) $)
    cvlsupr6 $p |- ( ( K e. CvLat
              /\ ( P e. A /\ Q e. A /\ R e. A )
              /\ ( P =/= Q /\ ( P .\/ R ) = ( Q .\/ R ) ) ) -> R =/= Q ) $=
      ( clc wcel w3a wne co wceq wa wi cple cfv wbr eqid simp2 syl6bi 3exp 3imp
      cvlsupr2 imp4a ) FIJZBAJCAJDAJKZBCLZBDEMCDEMNZODCLZUGUHUIUJUKUGUHUIUJUKPU
      GUHUIKUJDBLZUKDBCEMFQRZSZKUKABCDEFUMGUMTHUEULUKUNUAUBUCUFUD $.

    $( Consequence of superposition condition ` ( P .\/ R ) = ( Q .\/ R ) ` .
       (Contributed by NM, 24-Nov-2012.) $)
    cvlsupr7 $p |- ( ( K e. CvLat
              /\ ( P e. A /\ Q e. A /\ R e. A )
              /\ ( P =/= Q /\ ( P .\/ R ) = ( Q .\/ R ) ) )
                -> ( P .\/ Q ) = ( R .\/ Q ) ) $=
      ( clc wcel w3a co wceq cfv wbr eqid atbase syl syl3anc breqtrd wne wa cbs
      cple cvllat 3ad2ant1 simp21 simp23 latlej1 simp3r simp22 latjcom wb simp1
      clat simp3l cvlatexchb2 syl131anc mpbid ) FIJZBAJZCAJZDAJZKZBCUAZBDELZCDE
      LZMZUBZKZBDCELZFUDNZOZBCELVKMZVJBVGVKVLVJBVFVGVLVJFUOJZBFUCNZJZDVPJZBVFVL
      OUTVDVOVIFUEUFZVJVAVQUTVAVBVCVIUGZAVPBFVPPZGQRVJVCVRUTVAVBVCVIUHZAVPDFWAG
      QRZVPEFVLBDWAVLPZHUISUTVDVEVHUJTVJVOCVPJZVRVGVKMVSVJVBWEUTVAVBVCVIUKZAVPC
      FWAGQRWCVPEFCDWAHULSTVJUTVAVCVBVEVMVNUMUTVDVIUNVTWBWFUTVDVEVHUPABDCEFVLWD
      HGUQURUS $.

    $( Consequence of superposition condition ` ( P .\/ R ) = ( Q .\/ R ) ` .
       (Contributed by NM, 24-Nov-2012.) $)
    cvlsupr8 $p |- ( ( K e. CvLat
              /\ ( P e. A /\ Q e. A /\ R e. A )
              /\ ( P =/= Q /\ ( P .\/ R ) = ( Q .\/ R ) ) )
                -> ( P .\/ Q ) = ( P .\/ R ) ) $=
      ( clc wcel w3a wne co wceq wa clat cbs cfv atbase syl cvllat eqid latjcom
      3ad2ant1 simp22 simp23 syl3anc simp3r cvlsupr7 3eqtr4rd ) FIJZBAJZCAJZDAJ
      ZKZBCLZBDEMZCDEMZNZOZKZURDCEMZUQBCEMVAFPJZCFQRZJZDVDJZURVBNUKUOVCUTFUAUDV
      AUMVEUKULUMUNUTUEAVDCFVDUBZGSTVAUNVFUKULUMUNUTUFAVDDFVGGSTVDEFCDVGHUCUGUK
      UOUPUSUHABCDEFGHUIUJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Hilbert lattices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c HL $.

  $( Extend class notation with Hilbert lattices. $)
  chlt $a class HL $.

  ${
    $d l c a b $.
    $( Define the class of Hilbert lattices, which are complete, atomic
       lattices satisfying the superposition principle and minimum height.
       (Contributed by NM, 5-Nov-2012.) $)
    df-hlat $a |- HL = { l e. ( ( OML i^i CLat ) i^i CvLat ) |
      ( A. a e. ( Atoms ` l ) A. b e. ( Atoms ` l )
        ( a =/= b -> E. c e. ( Atoms ` l )
             ( c =/= a /\ c =/= b /\ c ( le ` l ) ( a ( join ` l ) b ) ) )
      /\ E. a e. ( Base ` l ) E. b e. ( Base ` l ) E. c e. ( Base ` l )
          ( ( ( 0. ` l ) ( lt ` l ) a /\ a ( lt ` l ) b )
        /\ ( b ( lt ` l ) c /\ c ( lt ` l ) ( 1. ` l ) ) ) ) } $.
  $}

  ${
    $d k x y z A $.  $d k x y z B $.  $d k .\/ $.  $d k x y z K $.  $d k .<_ $.
    $d k .< $.  $d k .1. $.  $d k .0. $.
    ishlat.b $e |- B = ( Base ` K ) $.
    ishlat.l $e |- .<_ = ( le ` K ) $.
    ishlat.s $e |- .< = ( lt ` K ) $.
    ishlat.j $e |- .\/ = ( join ` K ) $.
    ishlat.z $e |- .0. = ( 0. ` K ) $.
    ishlat.u $e |- .1. = ( 1. ` K ) $.
    ishlat.a $e |- A = ( Atoms ` K ) $.
    $( The predicate "is a Hilbert lattice," which is orthomodular
       ( ` K e. OML ` ), complete ( ` K e. CLat ` ), atomic and satisfying the
       exchange (or covering) property ( ` K e. CvLat ` ), satisfies the
       superposition principle, and has a minimum height of 4.  (Contributed by
       NM, 5-Nov-2012.) $)
    ishlat1 $p |- ( K e. HL <-> ( ( K e. OML /\ K e. CLat /\ K e. CvLat )
      /\ ( A. x e. A A. y e. A
         ( x =/= y -> E. z e. A ( z =/= x /\ z =/= y /\ z .<_ ( x .\/ y ) ) )
      /\ E. x e. B E. y e. B E. z e. B
            ( ( .0. .< x /\ x .< y ) /\ ( y .< z /\ z .< .1. ) ) ) ) ) $=
      ( wbr cfv vk chlt wcel coml ccla cin clc cv wne co w3a wrex wral cjn cple
      wi wa catm cp0 cplt cp1 cbs wceq fveq2 syl6eqr breqd oveqd breq2d 3anbi3d
      bitrd rexeqbidv imbi2d raleqbidv breq1d anbi12d elrab2 elin anbi1i df-3an
      df-hlat 3bitr4ri bitr4i ) IUBUCIUDUEUFZUGUFZUCZAUHZBUHZUIZCUHZWFUIZWIWGUI
      ZWIWFWGHUJZJSZUKZCDULZUPZBDUMZADUMZKWFFSZWFWGFSZUQZWGWIFSZWIGFSZUQZUQZCEU
      LZBEULZAEULZUQZUQIUDUCZIUEUCZIUGUCZUKZXIUQWHWJWKWIWFWGUAUHZUNTZUJZXNUOTZS
      ZUKZCXNURTZULZUPZBXTUMZAXTUMZXNUSTZWFXNUTTZSZWFWGYFSZUQZWGWIYFSZWIXNVATZY
      FSZUQZUQZCXNVBTZULZBYOULZAYOULZUQXIUAIWDUBXNIVCZYDWRYRXHYSYCWQAXTDYSXTIUR
      TDXNIURVDRVEZYSYBWPBXTDYTYSYAWOWHYSXSWNCXTDYTYSXRWMWJWKYSXRWIXPJSWMYSXQJW
      IXPYSXQIUOTJXNIUOVDMVEVFYSXPWLWIJYSXOHWFWGYSXOIUNTHXNIUNVDOVEVGVHVJVIVKVL
      VMVMYSYQXGAYOEYSYOIVBTEXNIVBVDLVEZYSYPXFBYOEUUAYSYNXECYOEUUAYSYIXAYMXDYSY
      GWSYHWTYSYGYEWFFSWSYSYFFYEWFYSYFIUTTFXNIUTVDNVEZVFYSYEKWFFYSYEIUSTKXNIUSV
      DPVEVNVJYSYFFWFWGUUBVFVOYSYJXBYLXCYSYFFWGWIUUBVFYSYLWIYKFSXCYSYFFWIYKUUBV
      FYSYKGWIFYSYKIVATGXNIVAVDQVEVHVJVOVOVKVKVKVOABCUAVTVPXMWEXIIWCUCZXLUQXJXK
      UQZXLUQWEXMUUCUUDXLIUDUEVQVRIWCUGVQXJXKXLVSWAVRWB $.

    $( The predicate "is a Hilbert lattice".  Here we replace ` K e. CvLat `
       with the weaker ` K e. AtLat ` and show the exchange property
       explicitly.  (Contributed by NM, 5-Nov-2012.) $)
    ishlat2 $p |- ( K e. HL <-> ( ( K e. OML /\ K e. CLat /\ K e. AtLat )
      /\ ( A. x e. A A. y e. A
       ( ( x =/= y -> E. z e. A ( z =/= x /\ z =/= y /\ z .<_ ( x .\/ y ) ) )
            /\ A. z e. B ( ( -. x .<_ z /\ x .<_ ( z .\/ y ) )
               -> y .<_ ( z .\/ x ) ) )
      /\ E. x e. B E. y e. B E. z e. B
            ( ( .0. .< x /\ x .< y ) /\ ( y .< z /\ z .< .1. ) ) ) ) ) $=
      ( wbr wa chlt wcel coml ccla clc w3a cv wne wrex wral cal ishlat1 iscvlat
      co wi wn 3anbi3i anass df-3an anbi1i 3bitr4ri bitri ancom r19.26-2 bitr4i
      bitr3i anbi2i 3bitri ) IUAUBIUCUBZIUDUBZIUEUBZUFZAUGZBUGZUHCUGZVMUHVOVNUH
      VOVMVNHUNJSUFCDUIUOZBDUJADUJZKVMFSVMVNFSTVNVOFSVOGFSTTCEUIBEUIAEUIZTZTVIV
      JIUKUBZUFZVMVOJSUPVMVOVNHUNJSTVNVOVMHUNJSUOCEUJZBDUJADUJZTZVSTZWAVPWBTBDU
      JADUJZVRTZTZABCDEFGHIJKLMNOPQRULVLWDVSVLVIVJVTWCTZUFZWDVKWIVIVJCDEHIJBALM
      ORUMUQVIVJTZVTTZWCTWKWITWDWJWKVTWCURWAWLWCVIVJVTUSUTVIVJWIUSVAVBUTWEWAWCV
      STZTWHWAWCVSURWMWGWAWMWCVQTZVRTWGWCVQVRURWNWFVRWNVQWCTWFWCVQVCVPWBABDDVDV
      EUTVFVGVBVH $.

    $( The predicate "is a Hilbert lattice".  Note that the superposition
       principle is expressed in the compact form
       ` E. z e. A ( x .\/ z ) = ( y .\/ z ) ` .  The exchange property and
       atomicity are provided by ` K e. CvLat ` , and "minimum height 4" is
       shown explicitly.  (Contributed by NM, 8-Nov-2012.)
       (New usage is discouraged.) $)
    ishlat3N $p |- ( K e. HL <-> ( ( K e. OML /\ K e. CLat /\ K e. CvLat )
      /\ ( A. x e. A A. y e. A E. z e. A ( x .\/ z ) = ( y .\/ z )
      /\ E. x e. B E. y e. B E. z e. B
            ( ( .0. .< x /\ x .< y ) /\ ( y .< z /\ z .< .1. ) ) ) ) ) $=
      ( wcel wa chlt coml ccla clc w3a cv wne co wrex wral wceq ishlat1 simpll3
      wbr wi simplrl simplrr simpr cvlsupr3 syl13anc rexbidva ad2antrl r19.37zv
      wb c0 ne0i syl bitr2d 2ralbidva anbi1d pm5.32i bitri ) IUASIUBSZIUCSZIUDS
      ZUEZAUFZBUFZUGZCUFZVQUGVTVRUGVTVQVRHUHJUNUEZCDUIUOZBDUJADUJZKVQFUNVQVRFUN
      TVRVTFUNVTGFUNTTCEUIBEUIAEUIZTZTVPVQVTHUHVRVTHUHUKZCDUIZBDUJADUJZWDTZTABC
      DEFGHIJKLMNOPQRULVPWEWIVPWCWHWDVPWBWGABDDVPVQDSZVRDSZTZTZWGVSWAUOZCDUIZWB
      WMWFWNCDWMVTDSZTVOWJWKWPWFWNVDVMVNVOWLWPUMVPWJWKWPUPVPWJWKWPUQWMWPURDVQVR
      VTHIJRMOUSUTVAWMDVEUGZWOWBVDWJWQVPWKDVQVFVBVSWACDVCVGVHVIVJVKVL $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z K $.
    ishlati.1 $e |- K e. OML $.
    ishlati.2 $e |- K e. CLat $.
    ishlati.3 $e |- K e. AtLat $.
    ishlati.b $e |- B = ( Base ` K ) $.
    ishlati.l $e |- .<_ = ( le ` K ) $.
    ishlati.s $e |- .< = ( lt ` K ) $.
    ishlati.j $e |- .\/ = ( join ` K ) $.
    ishlati.z $e |- .0. = ( 0. ` K ) $.
    ishlati.u $e |- .1. = ( 1. ` K ) $.
    ishlati.a $e |- A = ( Atoms ` K ) $.
    ishlati.9 $e |- A. x e. A A. y e. A
       ( ( x =/= y -> E. z e. A ( z =/= x /\ z =/= y /\ z .<_ ( x .\/ y ) ) )
            /\ A. z e. B ( ( -. x .<_ z /\ x .<_ ( z .\/ y ) )
               -> y .<_ ( z .\/ x ) ) ) $.
    ishlati.10 $e |- E. x e. B E. y e. B E. z e. B
            ( ( .0. .< x /\ x .< y ) /\ ( y .< z /\ z .< .1. ) ) $.
    $( Properties that determine a Hilbert lattice.  (Contributed by NM,
       13-Nov-2011.)  (New usage is discouraged.) $)
    ishlatiN $p |- K e. HL $=
      ( chlt wcel coml ccla cal w3a cv wne co wrex wi wn wa wral 3pm3.2i pm3.2i
      wbr ishlat2 mpbir2an ) IUDUEIUFUEZIUGUEZIUHUEZUIAUJZBUJZUKCUJZVFUKVHVGUKV
      HVFVGHULJUTUICDUMUNVFVHJUTUOVFVHVGHULJUTUPVGVHVFHULJUTUNCEUQUPBDUQADUQZKV
      FFUTVFVGFUTUPVGVHFUTVHGFUTUPUPCEUMBEUMAEUMZUPVCVDVELMNURVIVJUBUCUSABCDEFG
      HIJKOPQRSTUAVAVB $.
  $}

  ${
    $d x y z K $.
    $( A Hilbert lattice is orthomodular, complete, and has the covering
       (exchange) property.  (Contributed by NM, 5-Nov-2012.) $)
    hlomcmcv $p |- ( K e. HL -> ( K e. OML /\ K e. CLat /\ K e. CvLat ) ) $=
      ( vx vy vz chlt wcel coml ccla clc w3a cv wne cjn cfv co wbr wrex wral wa
      eqid cple catm wi cp0 cplt cp1 cbs ishlat1 simplbi ) AEFAGFAHFAIFJBKZCKZL
      DKZUJLULUKLULUJUKAMNZOAUANZPJDAUBNZQUCCUORBUORAUDNZUJAUENZPUJUKUQPSUKULUQ
      PULAUFNZUQPSSDAUGNZQCUSQBUSQSBCDUOUSUQURUMAUNUPUSTUNTUQTUMTUPTURTUOTUHUI
      $.
  $}

  $( A Hilbert lattice is orthomodular.  (Contributed by NM, 20-Oct-2011.) $)
  hloml $p |- ( K e. HL -> K e. OML ) $=
    ( chlt wcel coml ccla clc hlomcmcv simp1d ) ABCADCAECAFCAGH $.

  $( A Hilbert lattice is complete.  (Contributed by NM, 20-Oct-2011.) $)
  hlclat $p |- ( K e. HL -> K e. CLat ) $=
    ( chlt wcel coml ccla clc hlomcmcv simp2d ) ABCADCAECAFCAGH $.

  $( A Hilbert lattice is an atomic lattice with the covering property.
     (Contributed by NM, 5-Nov-2012.) $)
  hlcvl $p |- ( K e. HL -> K e. CvLat ) $=
    ( chlt wcel coml ccla clc hlomcmcv simp3d ) ABCADCAECAFCAGH $.

  $( A Hilbert lattice is atomic.  (Contributed by NM, 20-Oct-2011.) $)
  hlatl $p |- ( K e. HL -> K e. AtLat ) $=
    ( chlt wcel clc cal hlcvl cvlatl syl ) ABCADCAECAFAGH $.

  $( A Hilbert lattice is an ortholattice.  (Contributed by NM,
     20-Oct-2011.) $)
  hlol $p |- ( K e. HL -> K e. OL ) $=
    ( chlt wcel coml col hloml omlol syl ) ABCADCAECAFAGH $.

  $( A Hilbert lattice is an orthoposet.  (Contributed by NM, 20-Oct-2011.) $)
  hlop $p |- ( K e. HL -> K e. OP ) $=
    ( chlt wcel col cops hlol olop syl ) ABCADCAECAFAGH $.

  $( A Hilbert lattice is a lattice.  (Contributed by NM, 20-Oct-2011.) $)
  hllat $p |- ( K e. HL -> K e. Lat ) $=
    ( chlt wcel cal clat hlatl atllat syl ) ABCADCAECAFAGH $.

  $( A Hilbert lattice is orthomodular, complete, and atomic.  (Contributed by
     NM, 5-Nov-2012.) $)
  hlomcmat $p |- ( K e. HL -> ( K e. OML /\ K e. CLat /\ K e. AtLat ) ) $=
    ( chlt wcel coml ccla cal hloml hlclat hlatl 3jca ) ABCADCAECAFCAGAHAIJ $.

  $( A Hilbert lattice is a poset.  (Contributed by NM, 20-Oct-2011.) $)
  hlpos $p |- ( K e. HL -> K e. Poset ) $=
    ( chlt wcel clat cpo hllat latpos syl ) ABCADCAECAFAGH $.

  ${
    hlatjcl.b $e |- B = ( Base ` K ) $.
    hlatjcl.j $e |- .\/ = ( join ` K ) $.
    hlatjcl.a $e |- A = ( Atoms ` K ) $.
    $( Closure of join operation.  Frequently-used special case of ~ latjcl for
       atoms.  (Contributed by NM, 15-Jun-2012.) $)
    hlatjcl $p |- ( ( K e. HL /\ X e. A /\ Y e. A ) -> ( X .\/ Y ) e. B ) $=
      ( chlt wcel clat co hllat atbase latjcl syl3an ) DJKDLKEAKEBKFAKFBKEFCMBK
      DNABEDGIOABFDGIOBCDEFGHPQ $.
  $}

  ${
    hlatjcom.j $e |- .\/ = ( join ` K ) $.
    hlatjcom.a $e |- A = ( Atoms ` K ) $.
    $( Commutatitivity of join operation.  Frequently-used special case of
       ~ latjcom for atoms.  (Contributed by NM, 15-Jun-2012.) $)
    hlatjcom $p |- ( ( K e. HL /\ X e. A /\ Y e. A )
               -> ( X .\/ Y ) = ( Y .\/ X ) ) $=
      ( chlt wcel clat cbs cfv co wceq hllat eqid atbase latjcom syl3an ) CHICJ
      IDAIDCKLZIEAIETIDEBMEDBMNCOATDCTPZGQATECUAGQTBCDEUAFRS $.

    $( TODO: Use in place of ~ latjcom when it shortens proofs $)
    $( Idempotence of join operation.  Frequently-used special case of
       ~ latjcom for atoms.  (Contributed by NM, 15-Jul-2012.) $)
    hlatjidm $p |- ( ( K e. HL /\ X e. A ) -> ( X .\/ X ) = X ) $=
      ( chlt wcel clat cbs cfv co wceq hllat eqid atbase latjidm syl2an ) CGHCI
      HDCJKZHDDBLDMDAHCNASDCSOZFPSBCDTEQR $.

    $( Lattice join is associative.  Frequently-used special case of ~ latjass
       for atoms.  (Contributed by NM, 27-Jul-2012.) $)
    hlatjass $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) ) ->
             ( ( P .\/ Q ) .\/ R ) = ( P .\/ ( Q .\/ R ) ) ) $=
      ( chlt wcel w3a wa clat cbs cfv co wceq hllat atbase syl latjass syl13anc
      adantr simpr1 eqid simpr2 simpr3 ) FIJZBAJZCAJZDAJZKZLZFMJZBFNOZJZCUOJZDU
      OJZBCEPDEPBCDEPEPQUHUNULFRUCUMUIUPUHUIUJUKUDAUOBFUOUEZHSTUMUJUQUHUIUJUKUF
      AUOCFUSHSTUMUKURUHUIUJUKUGAUODFUSHSTUOEFBCDUSGUAUB $.

    $( Swap 1st and 2nd members of lattice join.  Frequently-used special case
       of ~ latj32 for atoms.  (Contributed by NM, 4-Jun-2012.) $)
    hlatj12 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) ) ->
             ( P .\/ ( Q .\/ R ) ) = ( Q .\/ ( P .\/ R ) ) ) $=
      ( chlt wcel w3a wa wceq hlatjcom 3adant3r3 oveq1d hlatjass simpl simpr2
      co simpr1 simpr3 syl13anc 3eqtr3d ) FIJZBAJZCAJZDAJZKZLZBCETZDETCBETZDETZ
      BCDETETCBDETETZUJUKULDEUEUFUGUKULMUHAEFBCGHNOPABCDEFGHQUJUEUGUFUHUMUNMUEU
      IRUEUFUGUHSUEUFUGUHUAUEUFUGUHUBACBDEFGHQUCUD $.

    $( Swap 2nd and 3rd members of lattice join.  Frequently-used special case
       of ~ latj32 for atoms.  (Contributed by NM, 21-Jul-2012.) $)
    hlatj32 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) ) ->
             ( ( P .\/ Q ) .\/ R ) = ( ( P .\/ R ) .\/ Q ) ) $=
      ( chlt wcel w3a wa clat cbs cfv co wceq hllat atbase syl adantr syl13anc
      simpr1 eqid simpr2 simpr3 latj32 ) FIJZBAJZCAJZDAJZKZLZFMJZBFNOZJZCUOJZDU
      OJZBCEPDEPBDEPCEPQUHUNULFRUAUMUIUPUHUIUJUKUCAUOBFUOUDZHSTUMUJUQUHUIUJUKUE
      AUOCFUSHSTUMUKURUHUIUJUKUFAUODFUSHSTUOEFBCDUSGUGUB $.

    $( Rotate lattice join of 3 classes.  Frequently-used special case of
       ~ latjrot for atoms.  (Contributed by NM, 2-Aug-2012.) $)
    hlatjrot $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) ) ->
             ( ( P .\/ Q ) .\/ R ) = ( ( R .\/ P ) .\/ Q ) ) $=
      ( chlt wcel w3a wa co hlatj32 wceq hlatjcom 3adant3r2 oveq1d eqtrd ) FIJZ
      BAJZCAJZDAJZKLZBCEMDEMBDEMZCEMDBEMZCEMABCDEFGHNUDUEUFCETUAUCUEUFOUBAEFBDG
      HPQRS $.

    $( Rearrangement of lattice join of 4 classes.  Frequently-used special
       case of ~ latj4 for atoms.  (Contributed by NM, 9-Aug-2012.) $)
    hlatj4 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A )
               /\ ( R e. A /\ S e. A ) )
      -> ( ( P .\/ Q ) .\/ ( R .\/ S ) )
         = ( ( P .\/ R ) .\/ ( Q .\/ S ) ) ) $=
      ( chlt wcel wa w3a clat cbs cfv co wceq atbase syl 3ad2ant1 simp2l simp2r
      hllat eqid simp3l simp3r latj4 syl122anc ) GJKZBAKZCAKZLZDAKZEAKZLZMZGNKZ
      BGOPZKZCUSKZDUSKZEUSKZBCFQDEFQFQBDFQCEFQFQRUJUMURUPGUDUAUQUKUTUJUKULUPUBA
      USBGUSUEZISTUQULVAUJUKULUPUCAUSCGVDISTUQUNVBUJUMUNUOUFAUSDGVDISTUQUOVCUJU
      MUNUOUGAUSEGVDISTUSFGEBCDVDHUHUI $.
  $}

  ${
    hlatlej.l $e |- .<_ = ( le ` K ) $.
    hlatlej.j $e |- .\/ = ( join ` K ) $.
    hlatlej.a $e |- A = ( Atoms ` K ) $.
    $( A join's first argument is less than or equal to the join.  Special case
       of ~ latlej1 to show an atom is on a line.  (Contributed by NM,
       15-May-2013.) $)
    hlatlej1 $p |- ( ( K e. HL /\ P e. A /\ Q e. A )
            -> P .<_ ( P .\/ Q ) ) $=
      ( chlt wcel clat cbs cfv co wbr hllat eqid atbase latlej1 syl3an ) EJKELK
      BAKBEMNZKCAKCUBKBBCDOFPEQAUBBEUBRZISAUBCEUCISUBDEFBCUCGHTUA $.

    $( A join's second argument is less than or equal to the join.  Special
       case of ~ latlej2 to show an atom is on a line.  (Contributed by NM,
       15-May-2013.) $)
    hlatlej2 $p |- ( ( K e. HL /\ P e. A /\ Q e. A )
            -> Q .<_ ( P .\/ Q ) ) $=
      ( chlt wcel w3a co wbr hlatlej1 3com23 hlatjcom breqtrrd ) EJKZBAKZCAKZLC
      CBDMZBCDMFSUATCUBFNACBDEFGHIOPADEBCHIQR $.
  $}

  ${
    $d t u v w x y z B $.  $d t u v w y z K $.  $d t u v w x y z ._|_ $.
    $d t u v w x y z S $.
    glbcon.b $e |- B = ( Base ` K ) $.
    glbcon.u $e |- U = ( lub ` K ) $.
    glbcon.g $e |- G = ( glb ` K ) $.
    glbcon.o $e |- ._|_ = ( oc ` K ) $.
    $( De Morgan's law for GLB and LUB. This holds in any complete
       ortholattice, although we assume ` HL ` for convenience.  (Contributed
       by NM, 17-Jan-2012.)  (New usage is discouraged.) $)
    glbconN $p |- ( ( K e. HL /\ S C_ B )
        -> ( G ` S ) = ( ._|_ ` ( U ` { x e. B | ( ._|_ ` x ) e. S } ) ) ) $=
      ( vz vu wcel cfv wceq wbr wral wi wa vy vw vv vt wss chlt cv crab sseqin2
      cin dfin5 biimpi syl5reqr fveq2d cple crio eqid biid id ssrab2 a1i glbval
      cops wreu hlop ccla hlclat clatglbcl sylancl eqeltrrd cbs cvv riotaclbBAD
      fvex eqeltri sylibr breq1 ralbidv breq2 anbi12d riotaocN syl2anc ad2antrr
      imbi2d opoccl sylancom opococ eqcomd fveq2 eqeq2d rspcev wb eleq1 imbi12d
      wrex adantl ralxfrd simpr simplr oplecon3b syl3anc ralbidva bitr4d ralrab
      weq eleq1d 3bitr4g ad3antrrr riotabidva simpl lubval mpan2 eqtr4d 3eqtrd
      sylan9eqr ) CBUEZFUFNZCEOAUGZCNZABUHZEOZXRGOZCNZABUHZDOZGOZXPCXTEXPXTBCUJ
      ZCABCUKXPYGCPCBUIULUMUNXQYAUAUGZLUGZFUOOZQZLXTRZUBUGZYIYJQZLXTRZYMYHYJQZS
      ZUBBRZTZUABUPZUCUGZGOZYIYJQZLXTRZYOYMUUBYJQZSZUBBRZTZUCBUPZGOZYFXQYSUALUB
      BXTEFYJUFHYJUQZJYSURXQUSXTBUEZXQXSABUTZVAVBZXQFVCNZYSUABVDZYTUUJPFVEZXQYT
      BNUUPXQYAYTBUUNXQFVFNUULYABNFVGUUMBXTEFHJVHVIVJYSUABBFVKOVLHFVKVNVOVMVPYS
      UUHUAUCBFGHKYHUUBPZYLUUDYRUUGUURYKUUCLXTYHUUBYIYJVQVRUURYQUUFUBBUURYPUUEY
      OYHUUBYMYJVSWDVRVTWAWBXQUUIYEGXQUUIMUGZUUAYJQZMYDRZUUSUDUGZYJQZMYDRZUUAUV
      BYJQZSZUDBRZTZUCBUPZYEXQUUHUVHUCBXQUUABNZTZUUDUVAUUGUVGUVKYICNZUUCSZLBRZU
      USGOZCNZUUTSZMBRZUUDUVAUVKUVNUVPUUBUVOYJQZSZMBRUVRUVKUVMUVTLMUVOBBUVKUUSB
      NZUUOUVOBNZXQUUOUVJUWAUUQWCZBFGUUSHKWEZWFUVKYIBNZTZYIGOZBNZYIUWGGOZPZYIUV
      OPZMBWOZUVKUWEUUOUWHXQUUOUVJUWEUUQWCZBFGYIHKWEZWFUWFUWIYIUVKUWEUUOUWIYIPZ
      UWMBFGYIHKWGZWFWHUWKUWJMUWGBUUSUWGPUVOUWIYIUUSUWGGWIWJWKZWBUWKUVMUVTWLUVK
      UWKUVLUVPUUCUVSYIUVOCWMZYIUVOUUBYJVSWNWPWQUVKUVQUVTMBUVKUWATZUUTUVSUVPUWS
      UUOUWAUVJUUTUVSWLUWCUVKUWAWRXQUVJUWAWSBFYJGUUSUUAHUUKKWTXAWDXBXCXSUVLUUCL
      ABXRYICWMZXDYCUVPUUTMABAMXEYBUVOCXRUUSGWIXFZXDXGUVKUUGUVBGOZYIYJQZLXTRZUX
      BUUBYJQZSZUDBRUVGUVKUUFUXFUBUDUXBBBUVKUVBBNZUUOUXBBNXQUUOUVJUXGUUQWCZBFGU
      VBHKWEWFUVKYMBNZTZYMGOZBNZYMUXKGOZPZYMUXBPZUDBWOUVKUXIUUOUXLXQUUOUVJUXIUU
      QWCZBFGYMHKWEWFUXJUXMYMUVKUXIUUOUXMYMPUXPBFGYMHKWGWFWHUXOUXNUDUXKBUVBUXKP
      UXBUXMYMUVBUXKGWIWJWKWBUXOUUFUXFWLUVKUXOYOUXDUUEUXEUXOYNUXCLXTYMUXBYIYJVQ
      VRYMUXBUUBYJVQWNWPWQUVKUVFUXFUDBUVKUXGTZUVDUXDUVEUXEUXQUVPUVCSZMBRZUVLUXC
      SZLBRZUVDUXDUXQUXSUVPUXBUVOYJQZSZMBRUYAUXQUXRUYCMBUXQUWATZUVCUYBUVPUYDUUO
      UWAUXGUVCUYBWLXQUUOUVJUXGUWAUUQXHZUXQUWAWRUVKUXGUWAWSBFYJGUUSUVBHUUKKWTXA
      WDXBUXQUXTUYCLMUVOBBUXQUWAUUOUWBUYEUWDWFUXQUWETZUWHUWJUWLUXQUWEUUOUWHXQUU
      OUVJUXGUWEUUQXHZUWNWFUYFUWIYIUXQUWEUUOUWOUYGUWPWFWHUWQWBUWKUXTUYCWLUXQUWK
      UVLUVPUXCUYBUWRYIUVOUXBYJVSWNWPWQXCYCUVPUVCMABUXAXDXSUVLUXCLABUWTXDXGUXQU
      UOUVJUXGUVEUXEWLUXHXQUVJUXGWSUVKUXGWRBFYJGUUAUVBHUUKKWTXAWNXBXCVTXIXQYDBU
      EZYEUVIPYCABUTXQUYHTUVHUCMUDBYDDFYJUFHUUKIUVHURXQUYHXJXQUYHWRXKXLXMUNXNXO
      $.

    $d i B $.  $d x y I $.  $d i K $.  $d i ._|_ $.  $d i x y $.
    $( De Morgan's law for GLB and LUB. Index-set version of ~ glbconN , where
       we read ` S ` as ` S ( i ) ` .  (Contributed by NM, 17-Jan-2012.)
       (New usage is discouraged.) $)
    glbconxN $p |- ( ( K e. HL /\ A. i e. I S e. B )
        -> ( G ` { x | E. i e. I x = S } )
            = ( ._|_ ` ( U ` { x | E. i e. I x = ( ._|_ ` S ) } ) ) ) $=
      ( vy wcel wa wceq wrex cab cfv chlt wral crab wss vex eqeq1 rexbidv nfra1
      cv elab nfv wi rsp eleq1a syl6 rexlimd syl5bi ssrdv glbconN sylan2 wb a1i
      fvex rabbiia df-rab eqtri nfan rspa cops hlop opoccl sylan pm4.71rd eqcom
      syl opcon2b syl3an1 3expa syl5rbbr pm5.32da bitrd anassrs rexbida r19.42v
      syl6rbb abbidv cbvabv syl6eq syl5eq fveq2d eqtrd ) HUAOZCBOZEGUBZPZAUIZCQ
      ZEGRZASZFTZNUIZITZWSOZNBUCZDTZITZWPCITZQZEGRZASZDTZITWNWLWSBUDWTXFQWNNWSB
      XAWSOXACQZEGRZWNXABOZWRXMAXANUEWPXAQWQXLEGWPXACUFUGUJWNXLXNEGWMEGUHZXNEUK
      WNEUIGOZWMXLXNULWMEGUMCBXAUNUOUPUQURNBWSDFHIJKLMUSUTWOXEXKIWOXDXJDWOXDXNX
      BCQZEGRZPZNSZXJXDXRNBUCXTXCXRNBXCXRVAXNWRXRAXBXAIVCWPXBQWQXQEGWPXBCUFUGUJ
      VBVDXRNBVEVFWOXTXAXGQZEGRZNSXJWOXSYBNWOYBXNXQPZEGRXSWOYAYCEGWLWNEWLEUKXOV
      GWLWNXPYAYCVAZWNXPPWLWMYDWMEGVHWLWMPZYAXNYAPYCYEYAXNYEXGBOZYAXNULWLHVIOZW
      MYFHVJZBHICJMVKVLXGBXAUNVOVMYEXNYAXQXQCXBQZYEXNPYACXBVNWLWMXNYIYAVAZWLYGW
      MXNYJYHBHICXAJMVPVQVRVSVTWAUTWBWCXNXQEGWDWEWFYBXINAXAWPQYAXHEGXAWPXGUFUGW
      GWHWIWJWJWK $.
  $}

  ${
    atnlej.l $e |- .<_ = ( le ` K ) $.
    atnlej.j $e |- .\/ = ( join ` K ) $.
    atnlej.a $e |- A = ( Atoms ` K ) $.
    $( If an atom is not less than or equal to the join of two others, it is
       not equal to either.  (This also holds for non-atoms, but in this form
       it is convenient.)  (Contributed by NM, 8-Jan-2012.) $)
    atnlej1 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
                    /\ -. P .<_ ( Q .\/ R ) ) -> P =/= Q ) $=
      ( chlt wcel w3a co wbr wn clat cbs atbase syl cfv wne hllat 3ad2ant1 eqid
      simp21 simp22 simp23 simp3 latnlej1l syl131anc ) FKLZBALZCALZDALZMZBCDENG
      OPZMZFQLZBFRUAZLZCUTLZDUTLZUQBCUBULUPUSUQFUCUDURUMVAULUMUNUOUQUFAUTBFUTUE
      ZJSTURUNVBULUMUNUOUQUGAUTCFVDJSTURUOVCULUMUNUOUQUHAUTDFVDJSTULUPUQUIUTEFG
      BCDVDHIUJUK $.

    $( If an atom is not less than or equal to the join of two others, it is
       not equal to either.  (This also holds for non-atoms, but in this form
       it is convenient.)  (Contributed by NM, 8-Jan-2012.) $)
    atnlej2 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
                    /\ -. P .<_ ( Q .\/ R ) ) -> P =/= R ) $=
      ( chlt wcel w3a co wbr wn clat cbs atbase syl cfv wne hllat 3ad2ant1 eqid
      simp21 simp22 simp23 simp3 latnlej1r syl131anc ) FKLZBALZCALZDALZMZBCDENG
      OPZMZFQLZBFRUAZLZCUTLZDUTLZUQBDUBULUPUSUQFUCUDURUMVAULUMUNUOUQUFAUTBFUTUE
      ZJSTURUNVBULUMUNUOUQUGAUTCFVDJSTURUOVCULUMUNUOUQUHAUTDFVDJSTULUPUQUIUTEFG
      BCDVDHIUJUK $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y .\/ $.  $d x y z K $.  $d x y .<_ $.
    $d x y z P $.  $d y z Q $.
    hlsuprexch.b $e |- B = ( Base ` K ) $.
    hlsuprexch.l $e |- .<_ = ( le ` K ) $.
    hlsuprexch.j $e |- .\/ = ( join ` K ) $.
    hlsuprexch.a $e |- A = ( Atoms ` K ) $.
    $( A Hilbert lattice has the superposition and exchange properties.
       (Contributed by NM, 13-Nov-2011.) $)
    hlsuprexch $p |- ( ( K e. HL /\ P e. A /\ Q e. A ) ->
       ( ( P =/= Q -> E. z e. A ( z =/= P /\ z =/= Q /\ z .<_ ( P .\/ Q ) ) )
            /\ A. z e. B ( ( -. P .<_ z /\ P .<_ ( z .\/ Q ) )
               -> Q .<_ ( z .\/ P ) ) ) ) $=
      ( vx wcel wne co wbr wrex wi wa vy chlt cv w3a wral coml ccla cal cp0 cfv
      cplt cp1 eqid ishlat2 simprl sylbi wceq neeq1 neeq2 oveq1 breq2d 3anbi13d
      rexbidv imbi12d breq1 notbid anbi12d oveq2 ralbidv 3anbi23d anbi2d rspc2v
      wn mpan9 3impb ) GUBNZDBNZEBNZDEOZAUCZDOZVTEOZVTDEFPZHQZUDZABRZSZDVTHQZVM
      ZDVTEFPZHQZTZEVTDFPZHQZSZACUEZTZVPMUCZUAUCZOZVTWROZVTWSOZVTWRWSFPZHQZUDZA
      BRZSZWRVTHQZVMZWRVTWSFPZHQZTZWSVTWRFPZHQZSZACUEZTZUABUEMBUEZVQVRTWQVPGUFN
      GUGNGUHNUDZXRGUIUJZWRGUKUJZQWRWSYAQTWSVTYAQVTGULUJZYAQTTACRUACRMCRZTTXRMU
      AABCYAYBFGHXTIJYAUMKXTUMYBUMLUNXSXRYCUOUPXQWQDWSOZWAXBVTDWSFPZHQZUDZABRZS
      ZWIDXJHQZTZWSWMHQZSZACUEZTMUADEBBWRDUQZXGYIXPYNYOWTYDXFYHWRDWSURYOXEYGABY
      OXAWAXDYFXBWRDVTUSYOXCYEVTHWRDWSFUTVAVBVCVDYOXOYMACYOXLYKXNYLYOXIWIXKYJYO
      XHWHWRDVTHVEVFWRDXJHVEVGYOXMWMWSHWRDVTFVHVAVDVIVGWSEUQZYIWGYNWPYPYDVSYHWF
      WSEDUSYPYGWEABYPXBWBYFWDWAWSEVTUSYPYEWCVTHWSEDFVHVAVJVCVDYPYMWOACYPYKWLYL
      WNYPYJWKWIYPXJWJDHWSEVTFVHVAVKWSEWMHVEVDVIVGVLVNVO $.

    $( A Hilbert lattice has the exchange property.  (Contributed by NM,
       13-Nov-2011.) $)
    hlexch1 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ X e. B )
           /\ -. P .<_ X )
       -> ( P .<_ ( X .\/ Q ) -> Q .<_ ( X .\/ P ) ) ) $=
      ( chlt wcel clc w3a wbr wn co wi hlcvl cvlexch1 syl3an1 ) FMNFONCANDANHBN
      PCHGQRCHDESGQDHCESGQTFUAABCDEFGHIJKLUBUC $.

    $( A Hilbert lattice has the exchange property.  (Contributed by NM,
       6-May-2012.) $)
    hlexch2 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ X e. B )
          /\ -. P .<_ X )
       -> ( P .<_ ( Q .\/ X ) -> Q .<_ ( P .\/ X ) ) ) $=
      ( chlt wcel clc w3a wbr wn co wi hlcvl cvlexch2 syl3an1 ) FMNFONCANDANHBN
      PCHGQRCDHESGQDCHESGQTFUAABCDEFGHIJKLUBUC $.

    $( A Hilbert lattice has the exchange property.  (Contributed by NM,
       16-Nov-2011.) $)
    hlexchb1 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ X e. B )
    /\ -. P .<_ X )
          -> ( P .<_ ( X .\/ Q ) <-> ( X .\/ P ) = ( X .\/ Q ) ) ) $=
      ( chlt wcel clc w3a wbr wn co wceq wb hlcvl cvlexchb1 syl3an1 ) FMNFONCAN
      DANHBNPCHGQRCHDESZGQHCESUETUAFUBABCDEFGHIJKLUCUD $.

    $( A Hilbert lattice has the exchange property.  (Contributed by NM,
       22-Jun-2012.) $)
    hlexchb2 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ X e. B )
    /\ -. P .<_ X )
        -> ( P .<_ ( Q .\/ X ) <-> ( P .\/ X ) = ( Q .\/ X ) ) ) $=
      ( chlt wcel clc w3a wbr wn co wceq wb hlcvl cvlexchb2 syl3an1 ) FMNFONCAN
      DANHBNPCHGQRCDHESZGQCHESUETUAFUBABCDEFGHIJKLUCUD $.
  $}

  ${
    $d r A $.  $d r K $.  $d r P $.  $d r Q $.
    hlsupr.l $e |- .<_ = ( le ` K ) $.
    hlsupr.j $e |- .\/ = ( join ` K ) $.
    hlsupr.a $e |- A = ( Atoms ` K ) $.
    $( A Hilbert lattice has the superposition property.  Theorem 13.2 in
       [Crawley] p. 107.  (Contributed by NM, 30-Jan-2012.) $)
    hlsupr $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A ) /\ P =/= Q )
      -> E. r e. A ( r =/= P /\ r =/= Q /\ r .<_ ( P .\/ Q ) ) ) $=
      ( chlt wcel w3a wne cv co wbr wrex wi wn cbs cfv wral eqid hlsuprexch imp
      wa simpld ) EKLBALCALMZBCNZGOZBNUKCNUKBCDPFQMGARZUIUJULSBUKFQTBUKCDPFQUGC
      UKBDPFQSGEUAUBZUCGAUMBCDEFUMUDHIJUEUHUF $.
  $}

  ${
    $d r A $.  $d r K $.  $d r P $.  $d r Q $.
    hlsupr2.j $e |- .\/ = ( join ` K ) $.
    hlsupr2.a $e |- A = ( Atoms ` K ) $.
    $( A Hilbert lattice has the superposition property.  (Contributed by NM,
       25-Nov-2012.) $)
    hlsupr2 $p |- ( ( K e. HL /\ P e. A /\ Q e. A )
      -> E. r e. A ( P .\/ r ) = ( Q .\/ r ) ) $=
      ( chlt wcel w3a cv co wceq wrex wne cple wi wb syl cfv wbr eqid hlsupr ex
      wa clc simpl1 hlcvl simpl2 simpr cvlsupr3 syl13anc rexbidva ne0i 3ad2ant2
      simpl3 c0 r19.37zv bitrd mpbird ) EIJZBAJZCAJZKZBFLZDMCVFDMNZFAOZBCPZVFBP
      VFCPVFBCDMEQUAZUBKZFAOZRZVEVIVLABCDEVJFVJUCZGHUDUEVEVHVIVKRZFAOZVMVEVGVOF
      AVEVFAJZUFZEUGJZVCVDVQVGVOSVRVBVSVBVCVDVQUHEUITVBVCVDVQUJVBVCVDVQUQVEVQUK
      ABCVFDEVJHVNGULUMUNVEAURPZVPVMSVCVBVTVDABUOUPVIVKFAUSTUTVA $.
  $}

  ${
    $d x y z B $.  $d x y z K $.
    hlhgt4.b $e |- B = ( Base ` K ) $.
    hlhgt4.s $e |- .< = ( lt ` K ) $.
    hlhgt4.z $e |- .0. = ( 0. ` K ) $.
    hlhgt4.u $e |- .1. = ( 1. ` K ) $.
    $( A Hilbert lattice has a height of at least 4.  (Contributed by NM,
       4-Dec-2011.) $)
    hlhgt4 $p |- ( K e. HL -> E. x e. B E. y e. B E. z e. B
            ( ( .0. .< x /\ x .< y ) /\ ( y .< z /\ z .< .1. ) ) ) $=
      ( wcel cv wne cfv co wbr wrex wa chlt coml ccla cal w3a cple catm wi wral
      cjn wn eqid ishlat2 simprr sylbi ) GUAMGUBMGUCMGUDMUEZANZBNZOCNZUQOUSUROU
      SUQURGUJPZQGUFPZRUECGUGPZSUHUQUSVARUKUQUSURUTQVARTURUSUQUTQVARUHCDUITBVBU
      IAVBUIZHUQERUQURERTURUSERUSFERTTCDSBDSADSZTTVDABCVBDEFUTGVAHIVAULJUTULKLV
      BULUMUPVCVDUNUO $.

    $d y z .< $.  $d y z .1. $.  $d y z .0. $.
    $( A Hilbert lattice has a height of at least 2.  (Contributed by NM,
       4-Dec-2011.) $)
    hlhgt2 $p |- ( K e. HL -> E. x e. B ( .0. .< x /\ x .< .1. ) ) $=
      ( vy vz wcel cv wbr wa wrex wi ad3antrrr syl chlt hlhgt4 hlpos cops op0cl
      hlop simpllr simplr plttr syl13anc simpr op1cl anim12d rexlimdva reximdva
      cpo mpd ) EUAMZFKNZCOUSANZCOPZUTLNZCOVBDCOPZPZLBQZABQZKBQFUTCOZUTDCOZPZAB
      QZKALBCDEFGHIJUBURVFVJKBURUSBMZPZVEVIABVLUTBMZPZVDVILBVNVBBMZPZVAVGVCVHVP
      EUPMZFBMZVKVMVAVGRURVQVKVMVOEUCSZVPEUDMZVRURVTVKVMVOEUFSZBEFGIUETURVKVMVO
      UGVLVMVOUHZBCEFUSUTGHUIUJVPVQVMVODBMZVCVHRVSWBVNVOUKVPVTWCWABDEGJULTBCEUT
      VBDGHUIUJUMUNUOUNUQ $.
  $}

  ${
    $d x K $.  $d x .< $.  $d x .1. $.  $d x .0. $.
    hl0lt1.s $e |- .< = ( lt ` K ) $.
    hl0lt1.z $e |- .0. = ( 0. ` K ) $.
    hl0lt1.u $e |- .1. = ( 1. ` K ) $.
    $( Lattice 0 is less than lattice 1 in a Hilbert lattice.  (Contributed by
       NM, 4-Dec-2011.)  (New usage is discouraged.) $)
    hl0lt1N $p |- ( K e. HL -> .0. .< .1. ) $=
      ( vx chlt wcel cv wbr wa cbs cfv wrex eqid hlhgt2 adantr syl cpo wi hlpos
      cops hlop op0cl simpr op1cl plttr syl13anc rexlimdva mpd ) CIJZDHKZALUNBA
      LMZHCNOZPDBALZHUPABCDUPQZEFGRUMUOUQHUPUMUNUPJZMZCUAJZDUPJZUSBUPJZUOUQUBUM
      VAUSCUCSUTCUDJZVBUMVDUSCUESZUPCDURFUFTUMUSUGUTVDVCVEUPBCURGUHTUPACDUNBURE
      UIUJUKUL $.
  $}

  ${
    hlexch3.b $e |- B = ( Base ` K ) $.
    hlexch3.l $e |- .<_ = ( le ` K ) $.
    hlexch3.j $e |- .\/ = ( join ` K ) $.
    hlexch3.m $e |- ./\ = ( meet ` K ) $.
    hlexch3.z $e |- .0. = ( 0. ` K ) $.
    hlexch3.a $e |- A = ( Atoms ` K ) $.
    $( A Hilbert lattice has the exchange property.  ( ~ atexch analog.)
       (Contributed by NM, 15-Nov-2011.) $)
    hlexch3 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ X e. B )
        /\ ( P ./\ X ) = .0. )
           -> ( P .<_ ( X .\/ Q ) -> Q .<_ ( X .\/ P ) ) ) $=
      ( chlt wcel co wbr clc w3a wceq wi hlcvl cvlexch3 syl3an1 ) FQRFUARCARDAR
      IBRUBCIHSJUCCIDESGTDICESGTUDFUEABCDEFGHIJKLMNOPUFUG $.

    $( A Hilbert lattice has the exchange property.  Part of Definition 7.8 of
       [MaedaMaeda] p. 32.  (Contributed by NM, 15-Nov-2011.)
       (New usage is discouraged.) $)
    hlexch4N $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ X e. B )
       /\ ( P ./\ X ) = .0. )
    -> ( P .<_ ( X .\/ Q ) <-> ( X .\/ P ) = ( X .\/ Q ) ) ) $=
      ( chlt wcel co wceq clc w3a wbr wb hlcvl cvlexch4N syl3an1 ) FQRFUARCARDA
      RIBRUBCIHSJTCIDESZGUCICESUHTUDFUEABCDEFGHIJKLMNOPUFUG $.
  $}

  ${
    hlatexchb.l $e |- .<_ = ( le ` K ) $.
    hlatexchb.j $e |- .\/ = ( join ` K ) $.
    hlatexchb.a $e |- A = ( Atoms ` K ) $.
    $( A version of ~ hlexchb1 for atoms.  (Contributed by NM, 15-Nov-2011.) $)
    hlatexchb1 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) /\ P =/= R )
       -> ( P .<_ ( R .\/ Q ) <-> ( R .\/ P ) = ( R .\/ Q ) ) ) $=
      ( chlt wcel clc w3a wne co wbr wceq wb hlcvl cvlatexchb1 syl3an1 ) FKLFML
      BALCALDALNBDOBDCEPZGQDBEPUCRSFTABCDEFGHIJUAUB $.

    $( A version of ~ hlexchb2 for atoms.  (Contributed by NM, 7-Feb-2012.) $)
    hlatexchb2 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ P =/= R )
         -> ( P .<_ ( Q .\/ R ) <-> ( P .\/ R ) = ( Q .\/ R ) ) ) $=
      ( chlt wcel clc w3a wne co wbr wceq wb hlcvl cvlatexchb2 syl3an1 ) FKLFML
      BALCALDALNBDOBCDEPZGQBDEPUCRSFTABCDEFGHIJUAUB $.

    $( Atom exchange property.  (Contributed by NM, 7-Jan-2012.) $)
    hlatexch1 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ P =/= R ) -> ( P .<_ ( R .\/ Q ) -> Q .<_ ( R .\/ P ) ) ) $=
      ( chlt wcel clc w3a wne co wbr wi hlcvl cvlatexch1 syl3an1 ) FKLFMLBALCAL
      DALNBDOBDCEPGQCDBEPGQRFSABCDEFGHIJTUA $.

    $( Atom exchange property.  (Contributed by NM, 8-Jan-2012.) $)
    hlatexch2 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ P =/= R ) -> ( P .<_ ( Q .\/ R ) -> Q .<_ ( P .\/ R ) ) ) $=
      ( chlt wcel clc w3a wne co wbr wi hlcvl cvlatexch2 syl3an1 ) FKLFMLBALCAL
      DALNBDOBCDEPGQCBDEPGQRFSABCDEFGHIJTUA $.
  $}

  ${
    $d y A $.  $d y B $.  $d y .<_ $.  $d y X $.
    hlatmstc.b $e |- B = ( Base ` K ) $.
    hlatmstc.l $e |- .<_ = ( le ` K ) $.
    hlatmstc.u $e |- U = ( lub ` K ) $.
    hlatmstc.a $e |- A = ( Atoms ` K ) $.
    $( An atomic, complete, orthomodular lattice is atomistic i.e. every
       element is the join of the atoms under it.  See remark before
       Proposition 1 in [Kalmbach] p. 140; also remark in
       [BeltramettiCassinelli] p. 98.  ( ~ hatomistici analog.)  (Contributed
       by NM, 21-Oct-2011.)  (New usage is discouraged.) $)
    hlatmstcOLDN $p |- ( ( K e. HL /\ X e. B )
           -> ( U ` { y e. A | y .<_ X } ) = X ) $=
      ( chlt wcel coml ccla cal w3a cv wbr crab wceq hlomcmat atlatmstc sylan
      cfv ) ELMENMEOMEPMQGCMARGFSABTDUEGUAEUBABCDEFGHIJKUCUD $.
  $}

  ${
    $d p A $.  $d p B $.  $d p K $.  $d p .<_ $.  $d p X $.  $d p Y $.
    hlatle.b $e |- B = ( Base ` K ) $.
    hlatle.l $e |- .<_ = ( le ` K ) $.
    hlatle.a $e |- A = ( Atoms ` K ) $.
    $( The ordering of two Hilbert lattice elements is determined by the atoms
       under them.  ( ~ chrelat3 analog.)  (Contributed by NM, 4-Nov-2011.) $)
    hlatle $p |- ( ( K e. HL /\ X e. B /\ Y e. B )
             -> ( X .<_ Y <-> A. p e. A ( p .<_ X -> p .<_ Y ) ) ) $=
      ( chlt wcel coml ccla cal w3a wbr cv wi wral wb hlomcmat atlatle syl3an1
      ) CKLCMLCNLCOLPEBLFBLEFDQGRZEDQUEFDQSGATUACUBABCDEFGHIJUCUD $.

    $( The equality of two Hilbert lattice elements is determined by the atoms
       under them.  ( ~ chrelat4i analog.)  (Contributed by NM,
       24-May-2012.) $)
    hlateq $p |- ( ( K e. HL /\ X e. B /\ Y e. B )
             -> ( A. p e. A ( p .<_ X <-> p .<_ Y ) <-> X = Y ) ) $=
      ( chlt wcel w3a cv wbr wb wral wa wi hlatle wceq anbi12d ralbiim syl6rbbr
      3com23 clat hllat latasymb syl3an1 bitrd ) CKLZEBLZFBLZMZGNZEDOZUOFDOZPGA
      QZEFDOZFEDOZRZEFUAZUNVAUPUQSGAQZUQUPSGAQZRURUNUSVCUTVDABCDEFGHIJTUKUMULUT
      VDPABCDFEGHIJTUEUBUPUQGAUCUDUKCUFLULUMVAVBPCUGBCDEFHIUHUIUJ $.
  $}

  ${
    $d p A $.  $d p B $.  $d p K $.  $d p .<_ $.  $d p X $.  $d p Y $.
    hlrelat1.b $e |- B = ( Base ` K ) $.
    hlrelat1.l $e |- .<_ = ( le ` K ) $.
    hlrelat1.s $e |- .< = ( lt ` K ) $.
    hlrelat1.a $e |- A = ( Atoms ` K ) $.
    $( An atomistic lattice with 0 is relatively atomic.  Part of Lemma 7.2 of
       [MaedaMaeda] p. 30.  ( ~ chpssati , with ` /\ ` swapped, analog.)
       (Contributed by NM, 4-Dec-2011.) $)
    hlrelat1 $p |- ( ( K e. HL /\ X e. B /\ Y e. B ) -> ( X .< Y
         -> E. p e. A ( -. p .<_ X /\ p .<_ Y ) ) ) $=
      ( chlt wcel coml ccla cal w3a wbr cv wn wa wi hlomcmat atlrelat1 syl3an1
      wrex ) DMNDONDPNDQNRFBNGBNFGCSHTZFESUAUHGESUBHAUGUCDUDABCDEFGHIJKLUEUF $.
  $}

  ${
    $d p A $.  $d p B $.  $d p K $.  $d p .<_ $.  $d p X $.  $d p Y $.
    hlrelat5.b $e |- B = ( Base ` K ) $.
    hlrelat5.l $e |- .<_ = ( le ` K ) $.
    hlrelat5.s $e |- .< = ( lt ` K ) $.
    hlrelat5.j $e |- .\/ = ( join ` K ) $.
    hlrelat5.a $e |- A = ( Atoms ` K ) $.
    $( An atomistic lattice with 0 is relatively atomic, using the definition
       in Remark 2 of [Kalmbach] p. 149.  (Contributed by NM, 21-Oct-2011.)
       (New usage is discouraged.) $)
    hlrelat5N $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B ) /\ X .< Y )
         -> E. p e. A ( X .< ( X .\/ p ) /\ p .<_ Y ) ) $=
      ( wcel w3a wbr wa wb bitr4d chlt cv co wrex wn hlrelat1 imp clat hllat id
      atbase wne cvv ovexd pltval syl3an3 latlej1 biantrurd wceq 3com23 latjcom
      latleeqj1 eqeq1d notbid nesym syl6bbr syl3an 3expa anbi1d rexbidva adantr
      3adant3 mpbird ) EUAOZGBOZHBOZPZGHCQZRGGIUBZDUCZCQZVSHFQZRZIAUDZVSGFQZUEZ
      WBRZIAUDZVQVRWHABCEFGHIJKLNUFUGVQWDWHSZVRVNVOWIVPVNVORZWCWGIAWJVSAOZRWAWF
      WBVNVOWKWAWFSZVNEUHOZVOVOWKVSBOZWLEUIVOUJABVSEJNUKWMVOWNPZWAGVTULZWFWOWAG
      VTFQZWPRZWPWNWMVOVTUMOWAWRSWNGVSDUNUHBUMCEFGVTKLUOUPWOWQWPBDEFGVSJKMUQURT
      WOWFVTGUSZUEWPWOWEWSWOWEVSGDUCZGUSZWSWMWNVOWEXASBDEFVSGJKMVBUTWOVTWTGBDEG
      VSJMVAVCTVDGVTVEVFTVGVHVIVJVLVKVM $.

    $d p .< $.
    $( A Hilbert lattice is relatively atomic.  Remark 2 of [Kalmbach] p. 149.
       ( ~ chrelati analog.)  (Contributed by NM, 4-Feb-2012.) $)
    hlrelat $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B ) /\ X .< Y )
         -> E. p e. A ( X .< ( X .\/ p ) /\ ( X .\/ p ) .<_ Y ) ) $=
      ( chlt wcel wbr wa wrex imp w3a cv wn co hlrelat1 clat wb simpll1 simpll2
      hllat syl atbase adantl latnle syl3anc adantr biantrurd latjle12 syl13anc
      pltle simpll3 bitrd anbi12d rexbidva mpbid ) EOPZGBPZHBPZUAZGHCQZRZIUBZGF
      QUCZVLHFQZRZIASZGGVLDUDZCQZVQHFQZRZIASVIVJVPABCEFGHIJKLNUETVKVOVTIAVKVLAP
      ZRZVMVRVNVSWBEUFPZVGVLBPZVMVRUGWBVFWCVFVGVHVJWAUHEUJUKZVFVGVHVJWAUIZWAWDV
      KABVLEJNULUMZBCDEFGVLJKLMUNUOWBVNGHFQZVNRZVSWBWHVNVKWHWAVIVJWHOBBCEFGHKLU
      TTUPUQWBWCVGWDVHWIVSUGWEWFWGVFVGVHVJWAVABDEFGVLHJKMURUSVBVCVDVE $.
  $}

  ${
    $d p A $.  $d p B $.  $d p K $.  $d p .<_ $.  $d p X $.  $d p Y $.
    hlrelat2.b $e |- B = ( Base ` K ) $.
    hlrelat2.l $e |- .<_ = ( le ` K ) $.
    hlrelat2.a $e |- A = ( Atoms ` K ) $.
    $( A consequence of relative atomicity.  ( ~ chrelat2i analog.)
       (Contributed by NM, 5-Feb-2012.) $)
    hlrelat2 $p |- ( ( K e. HL /\ X e. B /\ Y e. B )
            -> ( -. X .<_ Y <-> E. p e. A ( p .<_ X /\ -. p .<_ Y ) ) ) $=
      ( wcel w3a wbr wn wa cfv wb eqid wi syl13anc chlt cv wrex cmee cplt hllat
      co latnlemlt syl3an1 cjn simp1 latmcl simp2 hlrelat ex syl3anc simpl1 syl
      clat adantr atbase adantl simpl2 latjle12 syl6bir adantld simpl3 latlem12
      simpr notbid latnle bitrd anbi12d pm3.21 orcom pm4.55 imor 3bitr4ri sylib
      wo con2i adantrl jcad reximdva syld wral lattr exp4b com34 com23 ralrimdv
      sylbid iman ralbii ralnex bitri syl6ib con2d impbid ) CUAKZEBKZFBKZLZEFDM
      ZNZGUBZEDMZXFFDMZNZOZGAUCZXCXEEFCUDPZUGZECUEPZMZXKWTCUSKZXAXBXEXOQCUFZBXN
      CDXLEFHIXNRZXLRZUHUIXCXOXMXMXFCUJPZUGZXNMZYAEDMZOZGAUCZXKXCWTXMBKZXAXOYES
      WTXAXBUKWTXPXAXBYFXQBCXLEFHXSULUIZWTXAXBUMWTYFXALXOYEABXNXTCDXMEGHIXRXTRZ
      JUNUOUPXCYDXJGAXCXFAKZOZYDXGXIYJYCXGYBYJYCXMEDMZXGOZXGYJXPYFXFBKZXAYLYCQY
      JWTXPWTXAXBYIUQXQURZXCYFYIYGUTZYIYMXCABXFCHJVAVBZWTXAXBYIVCZBXTCDXMXFEHIY
      HVDTZYKXGVIVEVFYJYDXGXHOZNZYLOXIYJYTYBYLYCYJYTXFXMDMZNZYBYJYSUUAYJXPYMXAX
      BYSUUAQYNYPYQWTXAXBYIVGZBCDXLXFEFHIXSVHTVJYJXPYFYMUUBYBQYNYOYPBXNXTCDXMXF
      HIXRYHVKUPVLYRVMYTXGXIYKXHYTXGOZXHXGYSSZUUDNZXHXGVNYSXGNZVTUUGYSVTUUFUUEY
      SUUGVOYSXGVPXGYSVQVRVSWAWBVEWCWDWEWLXCXDXKXCXDXGXHSZGAWFZXKNZXCXDUUHGAXCY
      IXDUUHXCYIXGXDXHXCYIXGXDXHYJXPYMXAXBXGXDOXHSYNYPYQUUCBCDXFEFHIWGTWHWIWJWK
      UUIXJNZGAWFUUJUUHUUKGAXGXHWMWNXJGAWOWPWQWRWS $.
  $}

  ${
    atomle.b $e |- B = ( Base ` K ) $.
    atomle.l $e |- .<_ = ( le ` K ) $.
    atomle.j $e |- .\/ = ( join ` K ) $.
    atomle.a $e |- A = ( Atoms ` K ) $.
    $( A condition for an atom to be less than or equal to a lattice element.
       Part of proof of Lemma A in [Crawley] p. 112.  (Contributed by NM,
       28-Apr-2012.)  (New usage is discouraged.) $)
    exatleN $p |- ( ( ( K e. HL /\ X e. B ) /\ ( P e. A /\ Q e. A /\ R e. A )
     /\ ( P .<_ X /\ -. Q .<_ X /\ R .<_ ( P .\/ Q ) ) )
  -> ( R .<_ X <-> R = P ) ) $=
      ( wcel wa w3a wbr wn syl atbase chlt co wceq simpl32 clat simp11l simp122
      hllat simp121 simp123 latjcl syl3anc simp11r 3jca simp2 simp133 hlatexch1
      wne sylc simp131 simp3 wb latjle12 syl13anc mpbi2and lattrd mtod necon4ad
      3expia ex simp31 breq1 syl5ibrcom impbid ) GUANZIBNZOZCANZDANZEANZPZCIHQZ
      DIHQZRZECDFUBHQZPZPZEIHQZECUCZWGWHECWGECURZWHRWGWJOWHWCWBWDWEVQWAWJUDWGWJ
      WHWCWGWJWHPZBGHDCEFUBZIJKWKVOGUENZVOVPWAWFWJWHUFZGUHSZWKVSDBNVRVSVTVQWFWJ
      WHUGZABDGJMTSWKWMCBNZEBNZWLBNWOWKVRWQVRVSVTVQWFWJWHUIZABCGJMTSZWKVTWRVRVS
      VTVQWFWJWHUJZABEGJMTSZBFGCEJLUKULVOVPWAWFWJWHUMZWKVOVTVSVRPZWJPWEDWLHQWKV
      OXDWJWNWKVTVSVRXAWPWSUNWGWJWHUOUNWBWDWEVQWAWJWHUPAEDCFGHKLMUQUSWKWBWHWLIH
      QZWBWDWEVQWAWJWHUTWGWJWHVAWKWMWQWRVPWBWHOXEVBWOWTXBXCBFGHCEIJKLVCVDVEVFVI
      VGVJVHWGWHWIWBVQWAWBWDWEVKECIHVLVMVN $.
  $}

  ${
    $d p q x A $.  $d p q x K $.
    hl2atom.a $e |- A = ( Atoms ` K ) $.
    $( A Hilbert lattice has at least 2 atoms.  (Contributed by NM,
       5-Dec-2011.) $)
    hl2at $p |- ( K e. HL -> E. p e. A E. q e. A p =/= q ) $=
      ( vx chlt wcel cp0 cfv cv wbr wa wrex eqid wn wi syl hlrelat1 reximi cplt
      cp1 cbs wne hlhgt2 cple simpl cops hlop op0cl simpr syl3anc op1cl mpd3an3
      adantr anim12d reeanv nbrne2 ad2ant2lr sylbir syl6 rexlimdva mpd ) BGHZBI
      JZFKZBUAJZLZVFBUBJZVGLZMZFBUCJZNDKZCKZUDZCANZDANZFVLVGVIBVEVLOZVGOZVEOZVI
      OZUEVDVKVQFVLVDVFVLHZMZVKVMVEBUFJZLPZVMVFWDLZMZDANZVNVFWDLPZVNVIWDLZMZCAN
      ZMZVQWCVHWHVJWLWCVDVEVLHZWBVHWHQVDWBUGWCBUHHZWNVDWOWBBUIUOZVLBVEVRVTUJRVD
      WBUKAVLVGBWDVEVFDVRWDOZVSESULVDWBVIVLHZVJWLQWCWOWRWPVLVIBVRWAUMRAVLVGBWDV
      FVICVRWQVSESUNUPWMWGWKMZCANZDANVQWGWKDCAAUQWTVPDAWSVOCAWFWIVOWEWJVMVNVFWD
      URUSTTUTVAVBVC $.
  $}

  ${
    $d p q A $.  $d p q K $.
    atex.1 $e |- A = ( Atoms ` K ) $.
    $( At least one atom exists.  (Contributed by NM, 15-Jul-2012.) $)
    atex $p |- ( K e. HL -> A =/= (/) ) $=
      ( vp vq chlt wcel cv wex c0 wne wrex hl2at wa df-rex exsimpl sylbi syl n0
      sylibr ) BFGZDHZAGZDIZAJKUAUBEHKEALZDALZUDABEDCMUFUCUENDIUDUEDAOUCUEDPQRD
      AST $.
  $}

  ${
    intnat.b $e |- B = ( Base ` K ) $.
    intnat.l $e |- .<_ = ( le ` K ) $.
    intnat.m $e |- ./\ = ( meet ` K ) $.
    intnat.a $e |- A = ( Atoms ` K ) $.
    $( If the intersection with a non-majorizing element is an atom, the
       intersecting element is not an atom.  (Contributed by NM, 26-Jun-2012.)
       (New usage is discouraged.) $)
    intnatN $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B )
        /\ ( -. Y .<_ X /\ ( X ./\ Y ) e. A ) ) -> -. Y e. A ) $=
      ( chlt wcel wn co wa ex wceq syl syl3anc w3a wbr cp0 cfv wne cal 3ad2ant1
      hlatl ad2antrr eqid sylancom simpll1 hllat simpll2 simpll3 latmcom simplr
      atn0 clat wb simpr atnle mpbid eqtrd necon3ad syld impr ) CLMZFBMZGBMZUAZ
      GFDUBNZFGEOZAMZGAMZNZVKVLPZVNVMCUCUDZUEZVPVQVNVSVQVNCUFMZVSVKVTVLVNVHVIVT
      VJCUHZUGUIAVMCVRVRUJZKURUKQVQVOVMVRVQVOVMVRRVQVOPZVMGFEOZVRWCCUSMZVIVJVMW
      DRWCVHWEVHVIVJVLVOULZCUMSVHVIVJVLVOUNZVHVIVJVLVOUOBCEFGHJUPTWCVLWDVRRZVKV
      LVOUQWCVTVOVIVLWHUTWCVHVTWFWASVQVOVAWGABGCDEFVRHIJWBKVBTVCVDQVEVFVG $.
  $}

  ${
    2lnne.l $e |- .<_ = ( le ` K ) $.
    2lnne.j $e |- .\/ = ( join ` K ) $.
    2lnne.a $e |- A = ( Atoms ` K ) $.
    $( Condition implying that two intersecting lines are different.
       (Contributed by NM, 13-Jun-2012.)  (New usage is discouraged.) $)
    2llnne2N $p |- ( ( K e. HL /\ ( P e. A /\ R e. A ) /\
       -. P .<_ ( R .\/ Q ) ) -> ( R .\/ P ) =/= ( R .\/ Q ) ) $=
      ( chlt wcel wa co wbr wn wne wceq simpl simprr hlatlej2 syl3anc syl5ibcom
      simprl breq2 necon3bd 3impia ) FKLZBALZDALZMZBDCENZGOZPDBENZULQUHUKMZUMUN
      ULUOBUNGOZUNULRUMUOUHUJUIUPUHUKSUHUIUJTUHUIUJUDADBEFGHIJUAUBUNULBGUEUCUFU
      G $.

    $( Condition implying that two intersecting lines are different.
       (Contributed by NM, 29-May-2012.)  (New usage is discouraged.) $)
    2llnneN $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) /\
  ( P =/= Q /\ -. R .<_ ( P .\/ Q ) ) ) -> ( R .\/ P ) =/= ( R .\/ Q ) ) $=
      ( chlt wcel w3a wne co wbr wn simp21 simp23 wi simp1 simp22 3jca syld3an2
      wa hlatexch2 con3d 3exp imp4a 3imp 2llnne2N syl121anc ) FKLZBALZCALZDALZM
      ZBCNZDBCEOGPZQZUEZMUMUNUPBDCEOZGPZQZDBEOVBNUMUQVAUAUMUNUOUPVARUMUNUOUPVAS
      UMUQVAVDUMUQURUTVDUMUQURUTVDTUMUQURMZVCUSUMUNUPUOMUQURVCUSTVEUNUPUOUMUNUO
      UPURRUMUNUOUPURSUMUNUOUPURUBUCABDCEFGHIJUFUDUGUHUIUJABCDEFGHIJUKUL $.
  $}

  ${
    cvr1.b $e |- B = ( Base ` K ) $.
    cvr1.l $e |- .<_ = ( le ` K ) $.
    cvr1.j $e |- .\/ = ( join ` K ) $.
    cvr1.c $e |- C = ( <o ` K ) $.
    cvr1.a $e |- A = ( Atoms ` K ) $.
    $( A Hilbert lattice has the covering property.  Proposition 1(ii) in
       [Kalmbach] p. 140 (and its converse).  ( ~ chcv1 analog.)  (Contributed
       by NM, 17-Nov-2011.) $)
    cvr1 $p |- ( ( K e. HL /\ X e. B /\ P e. A )
      -> ( -. P .<_ X <-> X C ( X .\/ P ) ) ) $=
      ( chlt wcel coml ccla clc w3a wbr wn co wb hlomcmcv cvlcvr1 syl3an1 ) FNO
      FPOFQOFROSHBODAODHGTUAHHDEUBCTUCFUDABCDEFGHIJKLMUEUF $.
  $}

  ${
    cvr2.b $e |- B = ( Base ` K ) $.
    cvr2.s $e |- .< = ( lt ` K ) $.
    cvr2.j $e |- .\/ = ( join ` K ) $.
    cvr2.c $e |- C = ( <o ` K ) $.
    cvr2.a $e |- A = ( Atoms ` K ) $.
    $( Less-than and covers equivalence in a Hilbert lattice.  ( ~ chcv2
       analog.)  (Contributed by NM, 7-Feb-2012.)
       (New usage is discouraged.) $)
    cvr2N $p |- ( ( K e. HL /\ X e. B /\ P e. A )
      -> ( X .< ( X .\/ P ) <-> X C ( X .\/ P ) ) ) $=
      ( chlt wcel w3a cple cfv wbr wn co clat wb hllat 3ad2ant1 atbase 3ad2ant3
      simp2 eqid latnle syl3anc cvr1 bitr3d ) GNOZHBOZDAOZPZDHGQRZSTZHHDFUAZESZ
      HUTCSUQGUBOZUODBOZUSVAUCUNUOVBUPGUDUEUNUOUPUHUPUNVCUOABDGIMUFUGBEFGURHDIU
      RUIZJKUJUKABCDFGURHIVDKLMULUM $.
  $}

  ${
    $d p A $.  $d p B $.  $d p K $.  $d p .<_ $.  $d p .< $.  $d p X $.
    $d p Y $.
    hlrelat3.b $e |- B = ( Base ` K ) $.
    hlrelat3.l $e |- .<_ = ( le ` K ) $.
    hlrelat3.s $e |- .< = ( lt ` K ) $.
    hlrelat3.j $e |- .\/ = ( join ` K ) $.
    hlrelat3.c $e |- C = ( <o ` K ) $.
    hlrelat3.a $e |- A = ( Atoms ` K ) $.
    $( The Hilbert lattice is relatively atomic.  Stronger version of
       ~ hlrelat .  (Contributed by NM, 2-May-2012.) $)
    hlrelat3 $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B ) /\ X .< Y )
         -> E. p e. A ( X C ( X .\/ p ) /\ ( X .\/ p ) .<_ Y ) ) $=
      ( chlt wcel wbr wa w3a cv wn wrex co hlrelat1 imp simp3l wb simp1l1 simp2
      simp1l2 cvr1 syl3anc mpbid simp1l simp1r pltle sylc simp3r clat hllat syl
      atbase simp1l3 latjle12 syl13anc mpbi2and jca 3exp reximdvai mpd ) FQRZHB
      RZIBRZUAZHIDSZTZJUBZHGSUCZVSIGSZTZJAUDZHHVSEUEZCSZWDIGSZTZJAUDVPVQWCABDFG
      HIJKLMPUFUGVRWBWGJAVRVSARZWBWGVRWHWBUAZWEWFWIVTWEVRWHVTWAUHWIVMVNWHVTWEUI
      VMVNVOVQWHWBUJZVMVNVOVQWHWBULZVRWHWBUKZABCVSEFGHKLNOPUMUNUOWIHIGSZWAWFWIV
      PVQWMVPVQWHWBUPVPVQWHWBUQQBBDFGHILMURUSVRWHVTWAUTWIFVARZVNVSBRZVOWMWATWFU
      IWIVMWNWJFVBVCWKWIWHWOWLABVSFKPVDVCVMVNVOVQWHWBVEBEFGHVSIKLNVFVGVHVIVJVKV
      L $.
  $}

  ${
    $d p A $.  $d p B $.  $d p C $.  $d p K $.  $d p .<_ $.  $d p X $.
    $d p Y $.
    cvrval3.b $e |- B = ( Base ` K ) $.
    cvrval3.l $e |- .<_ = ( le ` K ) $.
    cvrval3.j $e |- .\/ = ( join ` K ) $.
    cvrval3.c $e |- C = ( <o ` K ) $.
    cvrval3.a $e |- A = ( Atoms ` K ) $.
    $( Binary relation expressing ` Y ` covers ` X ` .  (Contributed by NM,
       16-Jun-2012.) $)
    cvrval3 $p |- ( ( K e. HL /\ X e. B /\ Y e. B )
     -> ( X C Y <-> E. p e. A ( -. p .<_ X /\ ( X .\/ p ) = Y ) ) ) $=
      ( chlt wcel w3a wbr wa syl3anc cv wn co wceq wrex cplt cfv cvrlt hlrelat3
      eqid syldan simp3l wb simp1l1 simp1l2 simp2 cvr1 mpbird clat hllat atbase
      syl 3ad2ant2 latjcl syl31anc simp3r cpo hlpos simp1l3 cvrnbtwn2 syl131anc
      simp1r mpbi2and jca 3exp reximdvai mpd ex simp11 mpbid breqtrd rexlimdv3a
      simp12 impbid ) EOPZGBPZHBPZQZGHCRZIUAZGFRUBZGWJDUCZHUDZSZIAUEZWHWIWOWHWI
      SZGWLCRZWLHFRZSZIAUEZWOWHWIGHEUFUGZRWTOBCXAEGHJXAUJZMUHABCXADEFGHIJKXBLMN
      UIUKWPWSWNIAWPWJAPZWSWNWPXCWSQZWKWMXDWKWQWPXCWQWRULZXDWEWFXCWKWQUMZWEWFWG
      WIXCWSUNZWEWFWGWIXCWSUOZWPXCWSUPABCWJDEFGJKLMNUQZTURXDGWLXARZWRWMXDWEWFWL
      BPZWQXJXGXHXDEUSPZWFWJBPZXKXDWEXLXGEUTVBXHXCWPXMWSABWJEJNVAVCBDEGWJJLVDTZ
      XEOBCXAEGWLJXBMUHVEWPXCWQWRVFXDEVGPZWFWGXKWIXJWRSWMUMXDWEXOXGEVHVBXHWEWFW
      GWIXCWSVIXNWHWIXCWSVLBCXAEFGHWLJKXBMVJVKVMVNVOVPVQVRWHWNWIIAWHXCWNQZGWLHC
      XPWKWQWHXCWKWMULXPWEWFXCXFWEWFWGXCWNVSWEWFWGXCWNWCWHXCWNUPXITVTWHXCWKWMVF
      WAWBWD $.
  $}

  ${
    $d p .< $.  $d p A $.  $d p B $.  $d p C $.  $d p K $.  $d p X $.
    $d p Y $.
    cvrval4.b $e |- B = ( Base ` K ) $.
    cvrval4.s $e |- .< = ( lt ` K ) $.
    cvrval4.j $e |- .\/ = ( join ` K ) $.
    cvrval4.c $e |- C = ( <o ` K ) $.
    cvrval4.a $e |- A = ( Atoms ` K ) $.
    $( Binary relation expressing ` Y ` covers ` X ` .  (Contributed by NM,
       16-Jun-2012.)  (New usage is discouraged.) $)
    cvrval4N $p |- ( ( K e. HL /\ X e. B /\ Y e. B )
     -> ( X C Y <-> ( X .< Y /\ E. p e. A ( X .\/ p ) = Y ) ) ) $=
      ( chlt wcel w3a wbr wrex wa cv co wceq cvrlt cple cfv eqid cvrval3 reximi
      wn simpr syl6bi imp jca ex simp1r simp3 breqtrrd wb simp1l1 simp1l2 simp2
      cvr1 syl3anc cvr2N bitr4d mpbird 3exp reximdvai expimpd sylibrd impbid )
      FOPZGBPZHBPZQZGHCRZGHDRZGIUAZEUBZHUCZIASZTZVPVQWCVPVQTVRWBOBCDFGHJKMUDVPV
      QWBVPVQVSGFUEUFZRUJZWATZIASZWBABCEFWDGHIJWDUGZLMNUHZWFWAIAWEWAUKUIULUMUNU
      OVPWCWGVQVPVRWBWGVPVRTZWAWFIAWJVSAPZWAWFWJWKWAQZWEWAWLWEGVTDRZWLGHVTDVPVR
      WKWAUPWJWKWAUQZURWLWEGVTCRZWMWLVMVNWKWEWOUSVMVNVOVRWKWAUTZVMVNVOVRWKWAVAZ
      WJWKWAVBZABCVSEFWDGJWHLMNVCVDWLVMVNWKWMWOUSWPWQWRABCVSDEFGJKLMNVEVDVFVGWN
      UNVHVIVJWIVKVL $.
  $}

  ${
    $d p A $.  $d p B $.  $d p C $.  $d p K $.  $d p .<_ $.  $d p ./\ $.
    $d p X $.  $d p Y $.
    cvrval5.b $e |- B = ( Base ` K ) $.
    cvrval5.l $e |- .<_ = ( le ` K ) $.
    cvrval5.j $e |- .\/ = ( join ` K ) $.
    cvrval5.m $e |- ./\ = ( meet ` K ) $.
    cvrval5.c $e |- C = ( <o ` K ) $.
    cvrval5.a $e |- A = ( Atoms ` K ) $.
    $( Binary relation expressing ` X ` covers ` X ./\ Y ` .  (Contributed by
       NM, 7-Dec-2012.) $)
    cvrval5 $p |- ( ( K e. HL /\ X e. B /\ Y e. B ) -> ( ( X ./\ Y ) C X
         <-> E. p e. A ( -. p .<_ Y /\ ( p .\/ ( X ./\ Y ) ) = X ) ) ) $=
      ( wcel co wbr wa chlt w3a cv wn wceq wrex simp1 clat hllat latmcl syl3an1
      wb simp2 cvrval3 syl3anc 3ad2ant1 ad2antrr ad2antlr latlej2 simpr breqtrd
      atbase biantrurd simpll2 simpll3 latlem12 syl13anc bitr2d notbid pm5.32rd
      ex adantr adantl latjcom eqeq1d anbi2d bitrd rexbidva ) EUAQZHBQZIBQZUBZH
      IGRZHCSZJUCZWCFSZUDZWCWEDRZHUEZTZJAUFZWEIFSZUDZWEWCDRZHUEZTZJAUFWBVSWCBQZ
      VTWDWKULVSVTWAUGVSEUHQZVTWAWQEUIZBEGHIKNUJUKZVSVTWAUMABCDEFWCHJKLMOPUNUOW
      BWJWPJAWBWEAQZTZWJWMWITWPXBWIWGWMXBWIWGWMULXBWITZWFWLXCWLWEHFSZWLTZWFXCXD
      WLXCWEWHHFXCWRWQWEBQZWEWHFSWBWRXAWIVSVTWRWAWSUPZUQZWBWQXAWIWTUQXAXFWBWIAB
      WEEKPVBZURZBDEFWCWEKLMUSUOXBWIUTVAVCXCWRXFVTWAXEWFULXHXJVSVTWAXAWIVDVSVTW
      AXAWIVEBEFGWEHIKLNVFVGVHVIVKVJXBWIWOWMXBWHWNHXBWRWQXFWHWNUEWBWRXAXGVLWBWQ
      XAWTVLXAXFWBXIVMBDEWCWEKMVNUOVOVPVQVRVQ $.
  $}

  ${
    cvrp.b $e |- B = ( Base ` K ) $.
    cvrp.j $e |- .\/ = ( join ` K ) $.
    cvrp.m $e |- ./\ = ( meet ` K ) $.
    cvrp.z $e |- .0. = ( 0. ` K ) $.
    cvrp.c $e |- C = ( <o ` K ) $.
    cvrp.a $e |- A = ( Atoms ` K ) $.
    $( A Hilbert lattice satisfies the covering property of Definition 7.4 of
       [MaedaMaeda] p. 31 and its converse.  ( ~ cvp analog.)  (Contributed by
       NM, 18-Nov-2011.) $)
    cvrp $p |- ( ( K e. HL /\ X e. B /\ P e. A )
      -> ( ( X ./\ P ) = .0. <-> X C ( X .\/ P ) ) ) $=
      ( chlt wcel coml ccla co clc w3a wceq wbr wb hlomcmcv cvlcvrp syl3an1 ) F
      PQFRQFSQFUAQUBHBQDAQHDGTIUCHHDETCUDUEFUFABCDEFGHIJKLMNOUGUH $.
  $}

  ${
    atcvr1.j $e |- .\/ = ( join ` K ) $.
    atcvr1.c $e |- C = ( <o ` K ) $.
    atcvr1.a $e |- A = ( Atoms ` K ) $.
    $( An atom is covered by its join with a different atom.  (Contributed by
       NM, 7-Feb-2012.) $)
    atcvr1 $p |- ( ( K e. HL /\ P e. A /\ Q e. A )
      -> ( P =/= Q <-> P C ( P .\/ Q ) ) ) $=
      ( chlt wcel coml ccla clc w3a wne co wbr wb hlomcmcv cvlatcvr1 syl3an1 )
      FJKFLKFMKFNKOCAKDAKCDPCCDEQBRSFTABCDEFGHIUAUB $.

    $( An atom is covered by its join with a different atom.  (Contributed by
       NM, 7-Feb-2012.) $)
    atcvr2 $p |- ( ( K e. HL /\ P e. A /\ Q e. A )
      -> ( P =/= Q <-> P C ( Q .\/ P ) ) ) $=
      ( chlt wcel coml ccla clc w3a wne co wbr wb hlomcmcv cvlatcvr2 syl3an1 )
      FJKFLKFMKFNKOCAKDAKCDPCDCEQBRSFTABCDEFGHIUAUB $.
  $}

  ${
    $d p B $.  $d p C $.  $d p .\/ $.  $d p K $.  $d p ./\ $.  $d p X $.
    $d p Y $.
    cvrexch.b $e |- B = ( Base ` K ) $.
    cvrexch.j $e |- .\/ = ( join ` K ) $.
    cvrexch.m $e |- ./\ = ( meet ` K ) $.
    cvrexch.c $e |- C = ( <o ` K ) $.
    $( Lemma for ~ cvrexch .  ( ~ cvexchlem analog.)  (Contributed by NM,
       18-Nov-2011.) $)
    cvrexchlem $p |- ( ( K e. HL /\ X e. B /\ Y e. B )
               -> ( ( X ./\ Y ) C Y -> X C ( X .\/ Y ) ) ) $=
      ( vp wcel w3a co wbr wa wi syl3anc wceq chlt cple cfv catm wrex cplt clat
      cv wn hllat latmcl syl3an1 eqid cvrlt ex syld3an2 hlrelat1 syld wb simpl1
      imp syl atbase adantl simpl2 simpl3 latlem12 syl13anc biimpd expcomd con3
      syl6 com23 imp4d simpr sylibd latjass latabs1 adantr oveq1d eqtr3d latnle
      cvr1 latmle2 biantrurd latjle12 bitrd anbi12d hlpos latjcl 3jca cvrnbtwn2
      a1d cpo 3exp sylc sylbid imp32 oveq2d sylanl2 breqtrd an32s rexlimdva mpd
      expr ) DUAMZFAMZGAMZNZFGEOZGBPZFFGCOZBPZXIXKQZLUHZXJDUBUCZPZUIZXOGXPPZQZL
      DUDUCZUEZXMXIXKYBXIXKXJGDUFUCZPZYBXFXJAMZXGXHXKYDRXFDUGMZXGXHYEDUJZADEFGH
      JUKZULZXFYEXHNXKYDUAABYCDXJGHYCUMZKUNUOUPXFYEXGXHYDYBRYIYAAYCDXPXJGLHXPUM
      ZYJYAUMZUQUPURVAXNXTXMLYAXIXOYAMZXKXTXMRXIYMQZXKXTXMYNXKXTQZQFFXOCOZXLBYN
      YOFYPBPZYNYOXOFXPPZUIZYQYNXKXRXSYSYNXRXSYSRRXKYNXSXRYSYNXSYRXQRXRYSRYNYRX
      SXQYNYRXSQZXQYNYFXOAMZXGXHYTXQUSYNXFYFXFXGXHYMUTZYGVBYMUUAXIYAAXODHYLVCZV
      DXFXGXHYMVEZXFXGXHYMVFADXPEXOFGHYKJVGVHVIVJYRXQVKVLVMWMVNYNXFXGYMYSYQUSUU
      BUUDXIYMVOYAABXOCDXPFHYKIKYLWCSVPVAYMXIUUAYOYPXLTUUCXIUUAQZYOQZFXJXOCOZCO
      ZYPXLUUEUUHYPTYOUUEFXJCOZXOCOZUUHYPUUEYFXGYEUUAUUJUUHTUUEXFYFXFXGXHUUAUTZ
      YGVBZXFXGXHUUAVEZUUEYFXGXHYEUULUUMXFXGXHUUAVFZYHSZXIUUAVOZACDFXJXOHIVQVHU
      UEUUIFXOCXIUUIFTZUUAXFYFXGXHUUQYGACDEFGHIJVRULVSVTWAVSUUFUUGGFCUUEXKXTUUG
      GTZUUEXTXKUURUUEXTXJUUGYCPZUUGGXPPZQZXKUURRUUEXRUUSXSUUTUUEYFYEUUAXRUUSUS
      UULUUOUUPAYCCDXPXJXOHYKYJIWBSUUEXSXJGXPPZXSQZUUTUUEUVBXSUUEYFXGXHUVBUULUU
      MUUNADXPEFGHYKJWDSWEUUEYFYEUUAXHUVCUUTUSUULUUOUUPUUNACDXPXJXOGHYKIWFVHWGW
      HUUEXKUVAUURUUEDWNMZYEXHUUGAMZNZXKUVAUURRZRUUEXFUVDUUKDWIVBUUEYEXHUVEUUOU
      UNUUEYFYEUUAUVEUULUUOUUPACDXJXOHIWJSWKUVDUVFXKUVGUVDUVFXKNUVAUURABYCDXPXJ
      GUUGHYKYJKWLVIWOWPVMWQVMWRWSWAWTXAXEXBXCXDUO $.

    $( A Hilbert lattice satisfies the exchange axiom.  Proposition 1(iii) of
       [Kalmbach] p. 140 and its converse.  Originally proved by Garrett
       Birkhoff in 1933.  ( ~ cvexchi analog.)  (Contributed by NM,
       18-Nov-2011.) $)
    cvrexch $p |- ( ( K e. HL /\ X e. B /\ Y e. B )
               -> ( ( X ./\ Y ) C Y <-> X C ( X .\/ Y ) ) ) $=
      ( wcel co wbr cvrexchlem cfv 3ad2ant1 syl3anc wceq syl3an1 chlt w3a simp1
      coc wi cops hlop simp3 eqid opoccl syl2anc simp2 hlol oldmj1 clat latmcom
      col hllat eqtrd breq1d oldmm1 latjcom breq2d 3imtr4d latjcl latmcl impbid
      wb cvrcon3b ) DUALZFALZGALZUBZFGEMZGBNZFFGCMZBNZABCDEFGHIJKOVMVPDUDPZPZFV
      RPZBNZGVRPZVNVRPZBNZVQVOVMWBVTEMZVTBNZWBWBVTCMZBNZWAWDVMVJWBALZVTALZWFWHU
      EVJVKVLUCVMDUFLZVLWIVJVKWKVLDUGQZVJVKVLUHZADVRGHVRUIZUJUKZVMWKVKWJWLVJVKV
      LULZADVRFHWNUJUKZABCDEWBVTHIJKORVMVSWEVTBVMVSVTWBEMZWEVJDUQLZVKVLVSWRSDUM
      ZACDEVRFGHIJWNUNTVMDUOLZWJWIWRWESVJVKXAVLDURZQZWQWOADEVTWBHJUPRUSUTVMWCWG
      WBBVMWCVTWBCMZWGVJWSVKVLWCXDSWTACDEVRFGHIJWNVATVMXAWJWIXDWGSXCWQWOACDVTWB
      HIVBRUSVCVDVMWKVKVPALZVQWAVHWLWPVJXAVKVLXEXBACDFGHIVETABDVRFVPHWNKVIRVMWK
      VNALZVLVOWDVHWLVJXAVKVLXFXBADEFGHJVFTWMABDVRVNGHWNKVIRVDVG $.
  $}

  ${
    $d r A $.  $d r B $.  $d r .\/ $.  $d r K $.  $d r P $.  $d r Q $.
    $d r .< $.  $d r X $.
    cvrat.b $e |- B = ( Base ` K ) $.
    cvrat.s $e |- .< = ( lt ` K ) $.
    cvrat.j $e |- .\/ = ( join ` K ) $.
    cvrat.z $e |- .0. = ( 0. ` K ) $.
    cvrat.a $e |- A = ( Atoms ` K ) $.
    $( Lemma for ~ cvrat .  ( ~ atcvatlem analog.)  (Contributed by NM,
       22-Nov-2011.) $)
    cvratlem $p |- ( ( ( K e. HL /\ ( X e. B /\ P e. A /\ Q e. A ) )
       /\ ( X =/= .0. /\ X .< ( P .\/ Q ) ) ) -> ( -. P ( le ` K ) X
        -> X e. A ) ) $=
      ( wcel wa wbr wi adantr syl3anc vr chlt w3a wne co cple cfv wn wrex hlatl
      cv cal simpr1 eqid atlex 3expia syl2anc ccvr wceq wb 3ad2ant1 simp3 atcmp
      simp22 breq1 biimprd syl6bi com23 con3 syl6 impd simp1 atbase cvr1 sylibd
      3ad2ant3 imp clat hllat syl latjcom breqtrrd adantrrl biimpd imp32 simprl
      hlatlej1 simp21 simp23 latjcl 3jca pltle sylan adantrl cpo hlpos syl13anc
      postr mp2and adantrrr hlexch1 latjle12 mpbi2and latasymb biimpcd ad2antll
      breq2 cvrnbtwn3 exp4a imp4b adantrr simpl3 eqeltrrd exp45 3expa rexlimdva
      mpd syld ) GUBOZHBOZCAOZDAOZUCZPZHIUDZHCDFUEZEQZCHGUFUGZQZUHZHAOZRZYDYEUA
      UKZHYHQZUAAUIZYGYLRZYDGULOZXTYEYORXSYQYCGUJZSXSXTYAYBUMYQXTYEYOUAABGYHHIJ
      YHUNZMNUOUPUQYDYNYPUAAXSYCYMAOZYNYPRXSYCYTUCZYNYGYJYKUUAYNYGYJPZPZPZYMHAU
      UDYMCYMFUEZGURUGZQZHUUEEQZYMHUSZUUAYNYJUUGYGUUAYNYJPZPYMYMCFUEZUUEUUFUUAU
      UJYMUUKUUFQZUUAUUJCYMYHQZUHZUULUUAYNYJUUNUUAYNUUMYIRYJUUNRUUAUUMYNYIUUAUU
      MCYMUSZYNYIRZUUAYQYAYTUUMUUOUTXSYCYQYTYRVAZXSXTYAYBYTVDZXSYCYTVBZACYMGYHY
      SNVCTUUOYIYNCYMHYHVEVFVGVHUUMYIVIVJVKUUAXSYMBOZYAUUNUULUTXSYCYTVLZYTXSUUT
      YCABYMGJNVMVPZUURABUUFCFGYHYMJYSLUUFUNZNVNTVOVQUUAUUEUUKUSZUUJUUAGVROZCBO
      ZUUTUVDXSYCUVEYTGVSVAZUUAYAUVFUURABCGJNVMVTZUVBBFGCYMJLWATSWBWCUUDYFUUEUS
      ZUUHUUDYFUUEYHQZUUEYFYHQZUVIUUDCUUEYHQZDUUEYHQZUVJUUAUVLUUCUUAXSYAYTUVLUV
      AUURUUSACYMFGYHYSLNWGTSUUDYMCYHQZUHZYMYFYHQZUVMUUAYNYJUVOYGUUAYNYJUVOUUAY
      NUVNYIRYJUVORUUAUVNYNYIUUAUVNYMCUSZUUPUUAYQYTYAUVNUVQUTUUQUUSUURAYMCGYHYS
      NVCTUVQYNYIYMCHYHVEWDVGVHUVNYIVIVJWEWCUUAYNYGUVPYJUUAYNYGPZPYNHYFYHQZUVPU
      UAYNYGWFUUAYGUVSYNUUAXSXTYFBOZUCZYGUVSUUAXSXTUVTUVAXSXTYAYBYTWHZUUAUVEUVF
      DBOZUVTUVGUVHUUAYBUWCXSXTYAYBYTWIZABDGJNVMVTZBFGCDJLWJTZWKUWAYGUVSUBBBEGY
      HHYFYSKWLVQWMWNUUAYNUVSPUVPRZUVRUUAGWOOZUUTXTUVTUWGXSYCUWHYTGWPVAZUVBUWBU
      WFBGYHYMHYFJYSWRWQSWSWTZUUAUVOUVPPUVMRZUUCUUAXSYTYBUVFUWKUVAUUSUWDUVHXSYT
      YBUVFUCZPUVOUVPUVMXSUWLUVOUVPUVMRABYMDFGYHCJYSLNXAUPVKWQSWSUUAUVLUVMPUVJU
      TZUUCUUAUVEUVFUWCUUEBOZUWMUVGUVHUWEUUAUVEUVFUUTUWNUVGUVHUVBBFGCYMJLWJTZBF
      GYHCDUUEJYSLXBWQSXCUUDCYFYHQZUVPUVKUUAUWPUUCUUAXSYAYBUWPUVAUURUWDACDFGYHY
      SLNWGTSUWJUUAUWPUVPPUVKUTZUUCUUAUVEUVFUUTUVTUWQUVGUVHUVBUWFBFGYHCYMYFJYSL
      XBWQSXCUUDUVEUVTUWNUCZUVJUVKPUVIUTUUAUWRUUCUUAUVEUVTUWNUVGUWFUWOWKSBGYHYF
      UUEJYSXDVTXCUUBUVIUUHRZUUAYNYGUWSYJUVIYGUUHYFUUEHEXGXESXFXQUUAYNUUGUUHPUU
      IRUUBUUAYNUUGUUHUUIUUAUUGYNUUHUUIRUUAUUGYNUUHUUIUUAUWHUUTUWNXTUUGYNUUHPZU
      UIRZRUWIUVBUWOUWBUWHUUTUWNXTUCZUUGUXAUWHUXBUUGUCUWTUUIBUUFEGYHYMUUEHJYSKU
      VCXHWDUPWQXIVHXJXKWSXSYCYTUUCXLXMXNXOXPXRWE $.

    $( A nonzero Hilbert lattice element less than the join of two atoms is an
       atom.  ( ~ atcvati analog.)  (Contributed by NM, 22-Nov-2011.) $)
    cvrat $p |- ( ( K e. HL /\ ( X e. B /\ P e. A /\ Q e. A ) )
       -> ( ( X =/= .0. /\ X .< ( P .\/ Q ) ) -> X e. A ) ) $=
      ( wcel w3a wa wbr wn wi chlt wne cple cfv cvratlem clat wceq hllat adantr
      co simpr2 atbase syl simpr3 latjcom syl3anc breq2d anbi2d simpl simpr1 ex
      syl13anc sylbid imp wo cpo hlpos latjcl eqid pltnle latjle12 biimpd nsyld
      wb ianor syl6ib adantrl mpjaod ) GUAOZHBOZCAOZDAOZPZQZHIUBZHCDFUJZERZQZHA
      OZWDWHQCHGUCUDZRZSZWIDHWJRZSZABCDEFGHIJKLMNUEWDWHWNWITZWDWHWEHDCFUJZERZQZ
      WOWDWGWQWEWDWFWPHEWDGUFOZCBOZDBOZWFWPUGVSWSWCGUHUIZWDWAWTVSVTWAWBUKZABCGJ
      NULUMZWDWBXAVSVTWAWBUNZABDGJNULUMZBFGCDJLUOUPUQURWDVSVTWBWAWRWOTVSWCUSVSV
      TWAWBUTZXEXCVSVTWBWAPQWRWOABDCEFGHIJKLMNUEVAVBVCVDWDWGWLWNVEZWEWDWGXHWDWG
      WKWMQZSXHWDWGWFHWJRZXIWDGVFOZVTWFBOZWGXJSZTVSXKWCGVGUIXGWDWSWTXAXLXBXDXFB
      FGCDJLVHUPXKVTXLPWGXMBEGWJHWFJWJVIZKVJVAUPWDXIXJWDWSWTXAVTXIXJVNXBXDXFXGB
      FGWJCDHJXNLVKVBVLVMWKWMVOVPVDVQVRVA $.
  $}

  ${
    ltltncvr.b $e |- B = ( Base ` K ) $.
    ltltncvr.s $e |- .< = ( lt ` K ) $.
    ltltncvr.c $e |- C = ( <o ` K ) $.
    $( A chained strong ordering is not a covers relation.  (Contributed by NM,
       18-Jun-2012.) $)
    ltltncvr $p |- ( ( K e. A /\ ( X e. B /\ Y e. B /\ Z e. B ) )
                 -> ( ( X .< Y /\ Y .< Z ) -> -. X C Z ) ) $=
      ( wcel w3a wa wbr wn simpll simplr1 simplr3 simplr2 cvrnbtwn syl131anc ex
      simpr con2d ) EALZFBLZGBLZHBLZMZNZFHCOZFGDOGHDONZUKULUMPZUKULNUFUGUIUHULU
      NUFUJULQUGUHUIUFULRUGUHUIUFULSUGUHUIUFULTUKULUDABCDEFHGIJKUAUBUCUE $.

    $( Non-transitive condition for the covers relation.  (Contributed by NM,
       18-Jun-2012.) $)
    ltcvrntr $p |- ( ( K e. A /\ ( X e. B /\ Y e. B /\ Z e. B ) )
                 -> ( ( X .< Y /\ Y C Z ) -> -. X C Z ) ) $=
      ( wcel w3a wa wbr wn wi cvrlt ex 3adant3r1 ltltncvr sylan2d ) EALZFBLZGBL
      ZHBLZMNGHCOZGHDOZFGDOFHCOPUCUEUFUGUHQUDUCUEUFMUGUHABCDEGHIJKRSTABCDEFGHIJ
      KUAUB $.
  $}

  ${
    cvrntr.b $e |- B = ( Base ` K ) $.
    cvrntr.c $e |- C = ( <o ` K ) $.
    $( The covers relation is not transitive.  ( ~ cvntr analog.)  (Contributed
       by NM, 18-Jun-2012.) $)
    cvrntr $p |- ( ( K e. A /\ ( X e. B /\ Y e. B /\ Z e. B ) )
                 -> ( ( X C Y /\ Y C Z ) -> -. X C Z ) ) $=
      ( wcel w3a wa wbr cplt cfv wn wi eqid cvrlt ex 3adant3r3 ltcvrntr syland
      ) DAJZEBJZFBJZGBJZKLEFCMZEFDNOZMZFGCMEGCMPUDUEUFUHUJQUGUDUEUFKUHUJABCUIDE
      FHUIRZISTUAABCUIDEFGHUKIUBUC $.
  $}

  ${
    atcvr0eq.j $e |- .\/ = ( join ` K ) $.
    atcvr0eq.z $e |- .0. = ( 0. ` K ) $.
    atcvr0eq.c $e |- C = ( <o ` K ) $.
    atcvr0eq.a $e |- A = ( Atoms ` K ) $.
    $( The covers relation is not transitive.  ( ~ atcv0eq analog.)
       (Contributed by NM, 29-Nov-2011.) $)
    atcvr0eq $p |- ( ( K e. HL /\ P e. A /\ Q e. A )
        -> ( .0. C ( P .\/ Q ) <-> P = Q ) ) $=
      ( chlt wcel w3a co wbr wceq wne wa 3adant3 wn atcvr1 atcvr0 biantrurd cbs
      bitrd cfv simp1 cops hlop 3ad2ant1 eqid op0cl syl atbase 3ad2ant2 hlatjcl
      cvrntr syl13anc sylbid necon4ad hlatjidm breqtrrd breq2d syl5ibcom impbid
      wi oveq2 ) FLMZCAMZDAMZNZGCDEOZBPZCDQZVLVNCDVLCDRZGCBPZCVMBPZSZVNUAZVLVPV
      RVSABCDEFHJKUBVLVQVRVIVJVQVKABLCFGIJKUCTZUDUFVLVIGFUEUGZMZCWBMZVMWBMVSVTV
      GVIVJVKUHVLFUIMZWCVIVJWEVKFUJUKWBFGWBULZIUMUNVJVIWDVKAWBCFWFKUOUPAWBEFCDW
      FHKUQLWBBFGCVMWFJURUSUTVAVLGCCEOZBPVOVNVLGCWGBWAVIVJWGCQVKAEFCHKVBTVCVOWG
      VMGBCDCEVHVDVEVF $.
  $}

  ${
    lnnat.j $e |- .\/ = ( join ` K ) $.
    lnnat.a $e |- A = ( Atoms ` K ) $.
    $( A line (the join of two distinct atoms) is not an atom.  (Contributed by
       NM, 14-Jun-2012.) $)
    lnnat $p |- ( ( K e. HL /\ P e. A /\ Q e. A ) ->
        ( P =/= Q <-> -. ( P .\/ Q ) e. A ) ) $=
      ( chlt wcel w3a co wn wa cfv wbr eqid atcvr0 atbase syl wceq wne cp0 ccvr
      simpl1 simpl2 syl2anc atcvr1 biimpa cbs cops hlop op0cl 3syl hllat simpl3
      wi clat latjcl syl3anc cvrntr syl13anc simpll1 sylancom mtand ex hlatjidm
      mp2and 3adant3 simp2 eqeltrd oveq2 eleq1d syl5ibcom necon3bd impbid ) EHI
      ZBAIZCAIZJZBCUAZBCDKZAIZLZVSVTWCVSVTMZWBEUBNZWAEUCNZOZWDWEBWFOZBWAWFOZWGL
      ZWDVPVQWHVPVQVRVTUDZVPVQVRVTUEZAWFHBEWEWEPZWFPZGQUFVSVTWIAWFBCDEFWNGUGUHW
      DVPWEEUINZIZBWOIZWAWOIZWHWIMWJUPWKWDVPEUJIWPWKEUKWOEWEWOPZWMULUMWDVQWQWLA
      WOBEWSGRSZWDEUQIZWQCWOIZWRWDVPXAWKEUNSWTWDVRXBVPVQVRVTUOAWOCEWSGRSWODEBCW
      SFURUSHWOWFEWEBWAWSWNUTVAVGWDWBVPWGVPVQVRVTWBVBAWFHWAEWEWMWNGQVCVDVEVSWBB
      CVSBBDKZAIBCTZWBVSXCBAVPVQXCBTVRADEBFGVFVHVPVQVRVIVJXDXCWAABCBDVKVLVMVNVO
      $.
  $}

  ${
    atcvrj0.b $e |- B = ( Base ` K ) $.
    atcvrj0.j $e |- .\/ = ( join ` K ) $.
    atcvrj0.z $e |- .0. = ( 0. ` K ) $.
    atcvrj0.c $e |- C = ( <o ` K ) $.
    atcvrj0.a $e |- A = ( Atoms ` K ) $.
    $( Two atoms covering the zero subspace are equal.  ( ~ atcv1 analog.)
       (Contributed by NM, 29-Nov-2011.) $)
    atcvrj0 $p |- ( ( K e. HL /\ ( X e. B /\ P e. A /\ Q e. A )
       /\ X C ( P .\/ Q ) ) -> ( X = .0. <-> P = Q ) ) $=
      ( wcel w3a wbr wceq wi wa chlt co breq1 biimpd adantl wb 3adant3r1 adantr
      atcvr0eq sylibd ex com23 3impia breq2d biimpac simpr3 hlatjidm syldan cal
      oveq1 hlatl simpr1 cple cfv eqid atcvreq0 syl3anc sylbid syl5 expd impbid
      ) GUAOZHBOZDAOZEAOZPZHDEFUBZCQZPHIRZDERZVLVPVRVSVTSVLVPTZVSVRVTWAVSVRVTSW
      AVSTVRIVQCQZVTVSVRWBSWAVSVRWBHIVQCUCUDUEWAWBVTUFZVSVLVNVOWCVMACDEFGIKLMNU
      IUGUHUJUKULUMVLVPVRVTVSSWAVRVTVSVRVTTHEEFUBZCQZWAVSVTVRWEVTVQWDHCDEEFUTUN
      UOWAWEHECQZVSWAWDEHCVLVPVOWDERVLVMVNVOUPZAFGEKNUQURUNWAWFVSWAGUSOZVMVOWFV
      SUFVLWHVPGVAUHVLVMVNVOVBWGABCEGGVCVDZHIJWIVELMNVFVGUDVHVIVJUMVK $.
  $}

  ${
    cvrat2.b $e |- B = ( Base ` K ) $.
    cvrat2.j $e |- .\/ = ( join ` K ) $.
    cvrat2.c $e |- C = ( <o ` K ) $.
    cvrat2.a $e |- A = ( Atoms ` K ) $.
    $( A Hilbert lattice element covered by the join of two distinct atoms is
       an atom.  ( ~ atcvat2i analog.)  (Contributed by NM, 30-Nov-2011.) $)
    cvrat2 $p |- ( ( K e. HL /\ ( X e. B /\ P e. A /\ Q e. A ) /\
         ( P =/= Q /\ X C ( P .\/ Q ) ) ) -> X e. A ) $=
      ( chlt wcel w3a wne wbr wa wi cfv co wceq wb eqid atcvrj0 3expa necon3bid
      cp0 cplt simpl simpr1 clat adantr simpr2 atbase syl simpr3 latjcl syl3anc
      hllat cvrlt ex cvrat expcomd syld imp sylbird com23 impd 3impia ) GMNZHBN
      ZDANZEANZOZDEPZHDEFUAZCQZRHANZVKVORZVPVRVSVTVRVPVSVTVRVPVSSVTVRRZVPHGUHTZ
      PZVSWAHWBDEVKVOVRHWBUBDEUBUCABCDEFGHWBIJWBUDZKLUEUFUGVTVRWCVSSZVTVRHVQGUI
      TZQZWEVTVKVLVQBNZVRWGSVKVOUJVKVLVMVNUKVTGULNZDBNZEBNZWHVKWIVOGUTUMVTVMWJV
      KVLVMVNUNABDGILUOUPVTVNWKVKVLVMVNUQABEGILUOUPBFGDEIJURUSVKVLWHOVRWGMBCWFG
      HVQIWFUDZKVAVBUSVTWCWGVSABDEWFFGHWBIWLJWDLVCVDVEVFVGVBVHVIVJ $.
  $}

  ${
    atcvrne.j $e |- .\/ = ( join ` K ) $.
    atcvrne.c $e |- C = ( <o ` K ) $.
    atcvrne.a $e |- A = ( Atoms ` K ) $.
    $( Inequality derived from atom condition.  (Contributed by NM,
       7-Feb-2012.)  (New usage is discouraged.) $)
    atcvrneN $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
           /\ P C ( Q .\/ R ) ) -> Q =/= R ) $=
      ( chlt wcel w3a co wbr cp0 cfv wne eqid wceq 3ad2ant1 simp21 atn0 syl2anc
      cal hlatl cbs wb simp1 atbase syl simp22 simp23 simp3 syl131anc necon3bid
      atcvrj0 mpbid ) GKLZCALZDALZEALZMZCDEFNBOZMZCGPQZRZDERVEGUELZUTVGUSVCVHVD
      GUFUAUSUTVAVBVDUBZACGVFVFSZJUCUDVECVFDEVEUSCGUGQZLZVAVBVDCVFTDETUHUSVCVDU
      IVEUTVLVIAVKCGVKSZJUJUKUSUTVAVBVDULUSUTVAVBVDUMUSVCVDUNAVKBDEFGCVFVMHVJIJ
      UQUOUPUR $.
  $}

  ${
    atcvrj1x.l $e |- .<_ = ( le ` K ) $.
    atcvrj1x.j $e |- .\/ = ( join ` K ) $.
    atcvrj1x.c $e |- C = ( <o ` K ) $.
    atcvrj1x.a $e |- A = ( Atoms ` K ) $.
    $( Condition for an atom to be covered by the join of two others.
       (Contributed by NM, 7-Feb-2012.) $)
    atcvrj1 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ ( P =/= R /\ P .<_ ( Q .\/ R ) ) ) -> P C ( Q .\/ R ) ) $=
      ( wcel w3a co wbr cfv wb eqid mpbid chlt wne wa cmee cp0 simp3l cal hlatl
      wceq 3ad2ant1 simp21 simp23 atnem0 syl3anc cbs atbase syl cvrp hlatexchb2
      simp1 simp3r 3adant3r breqtrd ) GUAMZCAMZDAMZEAMZNZCEUBZCDEFOZHPZUCZNZCCE
      FOZVJBVMCEGUDQZOGUEQZUIZCVNBPZVMVIVQVDVHVIVKUFVMGUGMZVEVGVIVQRVDVHVSVLGUH
      UJVDVEVFVGVLUKZVDVEVFVGVLULZACEGVOVPVOSZVPSZLUMUNTVMVDCGUOQZMZVGVQVRRVDVH
      VLUTVMVEWEVTAWDCGWDSZLUPUQWAAWDBEFGVOCVPWFJWBWCKLURUNTVMVKVNVJUIZVDVHVIVK
      VAVDVHVIVKWGRVKACDEFGHIJLUSVBTVC $.

    $( Condition for an atom to be covered by the join of two others.
       (Contributed by NM, 7-Feb-2012.) $)
    atcvrj2b $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) )
        -> ( ( Q =/= R /\ P .<_ ( Q .\/ R ) ) <-> P C ( Q .\/ R ) ) ) $=
      ( wcel w3a wa wne wbr wceq wb atbase chlt co simpl3l necomd simpl1 atcvr2
      simpl23 simpl22 syl3anc mpbid breq1 adantl mpbird simpr simpl3r syl112anc
      simpl2 atcvrj1 pm2.61dane 3expia cp0 cfv hlatl ad2antrr simplr1 eqid atn0
      cal syl2anc cbs simpll syl simplr2 simplr3 syl131anc necon3bid clat hllat
      atcvrj0 latjcl 3jca cvrle sylancom jca ex impbid ) GUAMZCAMZDAMZEAMZNZOZD
      EPZCDEFUBZHQZOZCWNBQZWGWKWPWQWGWKWPNZWQCEWRCERZOZWQEWNBQZWTEDPZXAWTDEWMWO
      WGWKWSUCUDWTWGWJWIXBXASWGWKWPWSUEWHWIWJWGWPWSUGWHWIWJWGWPWSUHABEDFGJKLUFU
      IUJWSWQXASWRCEWNBUKULUMWRCEPZOWGWKXCWOWQWGWKWPXCUEWGWKWPXCUQWRXCUNWMWOWGW
      KXCUOABCDEFGHIJKLURUPUSUTWLWQWPWLWQOZWMWOXDCGVAVBZPZWMXDGVHMZWHXFWGXGWKWQ
      GVCVDWHWIWJWGWQVEZACGXEXEVFZLVGVIXDCXEDEXDWGCGVJVBZMZWIWJWQCXERDERSWGWKWQ
      VKZXDWHXKXHAXJCGXJVFZLTVLZWHWIWJWGWQVMZWHWIWJWGWQVNZWLWQUNAXJBDEFGCXEXMJX
      IKLVSVOVPUJWLWQWGXKWNXJMZNWOXDWGXKXQXLXNXDGVQMZDXJMZEXJMZXQWGXRWKWQGVRVDX
      DWIXSXOAXJDGXMLTVLXDWJXTXPAXJEGXMLTVLXJFGDEXMJVTUIWAUAXJBGHCWNXMIKWBWCWDW
      EWF $.

    $( Condition for an atom to be covered by the join of two others.
       (Contributed by NM, 7-Feb-2012.) $)
    atcvrj2 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ ( Q =/= R /\ P .<_ ( Q .\/ R ) ) ) -> P C ( Q .\/ R ) ) $=
      ( chlt wcel w3a wne co wbr wa atcvrj2b biimp3a ) GMNCANDANEANODEPCDEFQZHR
      SCUBBRABCDEFGHIJKLTUA $.
  $}

  ${
    atlene.l $e |- .<_ = ( le ` K ) $.
    atlene.j $e |- .\/ = ( join ` K ) $.
    atlene.a $e |- A = ( Atoms ` K ) $.
    $( Inequality derived from atom condition.  (Contributed by NM,
       7-Feb-2012.)  (New usage is discouraged.) $)
    atleneN $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ ( P =/= R /\ P .<_ ( Q .\/ R ) ) ) -> Q =/= R ) $=
      ( chlt wcel w3a wne co wbr wa ccvr cfv eqid atcvrj1 atcvrneN syld3an3 ) F
      KLBALCALDALMBDNBCDEOZGPQBUDFRSZPCDNAUEBCDEFGHIUETZJUAAUEBCDEFIUFJUBUC $.
  $}

  ${
    atltcvr.s $e |- .< = ( lt ` K ) $.
    atltcvr.j $e |- .\/ = ( join ` K ) $.
    atltcvr.a $e |- A = ( Atoms ` K ) $.
    atltcvr.c $e |- C = ( <o ` K ) $.
    $( An equivalence of less-than ordering and covers relation.  (Contributed
       by NM, 7-Feb-2012.) $)
    atltcvr $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) )
           -> ( P .< ( Q .\/ R ) <-> P C ( Q .\/ R ) ) ) $=
      ( chlt wcel wa wbr wi adantr syl3anc syl w3a oveq1 simpr3 hlatjidm syldan
      co wceq sylan9eqr breq2d cal wn hlatl simpr1 atnlt pm2.21d sylbid wne cfv
      cple simpl clat hllat simpr2 eqid atbase latjcl pltle simpll simplr simpr
      cbs 3jca anassrs atcvrj2 ex syld pm2.61dane cvrlt impbid ) HMNZCANZDANZEA
      NZUAZOZCDEGUFZFPZCWFBPZWEWGWHQDEWEDEUGZOZWGCEFPZWHWJWFECFWIWEWFEEGUFZEDEE
      GUBVTWDWCWLEUGVTWAWBWCUCZAGHEJKUDUEUHUIWEWKWHQWIWEWKWHWEHUJNZWAWCWKUKVTWN
      WDHULRVTWAWBWCUMZWMACEFHIKUNSUORUPWEDEUQZOZWGCWFHUSURZPZWHWEWGWSQZWPWEVTW
      AWFHVKURZNZWTVTWDUTZWOWEHVANZDXANZEXANZXBVTXDWDHVBRWEWBXEVTWAWBWCVCAXADHX
      AVDZKVETWEWCXFWMAXAEHXGKVETXAGHDEXGJVFSZMAXAFHWRCWFWRVDZIVGSRWQWSWHWQWSOV
      TWDWPWSOZUAZWHWEWPWSXKWEXJOVTWDXJVTWDXJVHVTWDXJVIWEXJVJVLVMABCDEGHWRXIJLK
      VNTVOVPVQWEVTCXANZXBWHWGQXCWEWAXLWOAXACHXGKVETXHVTXLXBUAWHWGMXABFHCWFXGIL
      VRVOSVS $.
  $}

  ${
    $d p A $.  $d p B $.  $d p K $.  $d p .<_ $.  $d p X $.  $d p .0. $.
    atle.b $e |- B = ( Base ` K ) $.
    atle.l $e |- .<_ = ( le ` K ) $.
    atle.z $e |- .0. = ( 0. ` K ) $.
    atle.a $e |- A = ( Atoms ` K ) $.
    $( Any nonzero element has an atom under it.  (Contributed by NM,
       28-Jun-2012.) $)
    atle $p |- ( ( K e. HL /\ X e. B /\ X =/= .0. ) -> E. p e. A p .<_ X ) $=
      ( chlt wcel cfv wbr wa wrex syl eqid syl2anc wne w3a cv cjn co cplt simp1
      cops hlop 3ad2ant1 op0cl simp2 wb opltn0 mpbird hlrelat syl31anc col wceq
      simp3 simpl1 hlol atbase adantl olj02 breq1d biimpd adantld reximdva mpd
      ) CLMZEBMZEFUAZUBZFFGUCZCUDNZUEZCUFNZOZVQEDOZPZGAQZVOEDOZGAQVNVKFBMZVLFEV
      ROZWBVKVLVMUGVNCUHMZWDVKVLWFVMCUIUJZBCFHJUKRVKVLVMULZVNWEVMVKVLVMUTVNWFVL
      WEVMUMWGWHBVRCEFHVRSZJUNTUOABVRVPCDFEGHIWIVPSZKUPUQVNWAWCGAVNVOAMZPZVTWCV
      SWLVTWCWLVQVOEDWLCURMZVOBMZVQVOUSWLVKWMVKVLVMWKVACVBRWKWNVNABVOCHKVCVDBVP
      CVOFHWJJVETVFVGVHVIVJ $.
  $}

  ${
    atlt.s $e |- .< = ( lt ` K ) $.
    atlt.j $e |- .\/ = ( join ` K ) $.
    atlt.a $e |- A = ( Atoms ` K ) $.
    $( Two atoms are unequal iff their join is greater than one of them.
       (Contributed by NM, 6-May-2012.) $)
    atlt $p |- ( ( K e. HL /\ P e. A /\ Q e. A )
        -> ( P .< ( P .\/ Q ) <-> P =/= Q ) ) $=
      ( chlt wcel w3a co wbr ccvr cfv wne wb simp1 simp2 simp3 atltcvr syl13anc
      eqid atcvr1 bitr4d ) FJKZBAKZCAKZLZBBCEMZDNZBUKFOPZNZBCQUJUGUHUHUIULUNRUG
      UHUISUGUHUITZUOUGUHUIUAAUMBBCDEFGHIUMUDZUBUCAUMBCEFHUPIUEUF $.
  $}

  ${
    atlelt.b $e |- B = ( Base ` K ) $.
    atlelt.l $e |- .<_ = ( le ` K ) $.
    atlelt.s $e |- .< = ( lt ` K ) $.
    atlelt.a $e |- A = ( Atoms ` K ) $.
    $( Transfer less-than relation from one atom to another.  (Contributed by
       NM, 7-May-2012.) $)
    atlelt $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ X e. B )
        /\ ( P .<_ X /\ Q .< X ) ) -> P .< X ) $=
      ( chlt wcel w3a wbr wa wb syl3anc 3ad2ant1 wceq simp3r syl5ibrcom wne cjn
      breq1 co simp1 simp21 simp22 eqid atlt simp3l simp23 3jca pltle sylc clat
      cfv hllat atbase syl latjle12 syl13anc mpbi2and cpo latjcl pltletr mpan2d
      wi hlpos sylbird pm2.61dne ) FMNZCANZDANZHBNZOZCHGPZDHEPZQZOZCHEPZCDWBWCC
      DUAVTVNVRVSVTUBZCDHEUFUCWBCDUDZCCDFUEUSZUGZEPZWCWBVNVOVPWHWERVNVRWAUHZVNV
      OVPVQWAUIZVNVOVPVQWAUJZACDEWFFKWFUKZLULSWBWHWGHGPZWCWBVSDHGPZWMVNVRVSVTUM
      WBVNVPVQOVTWNWBVNVPVQWIWKVNVOVPVQWAUNZUOWDMABEFGDHJKUPUQWBFURNZCBNZDBNZVQ
      VSWNQWMRVNVRWPWAFUTTZWBVOWQWJABCFILVAVBZWBVPWRWKABDFILVAVBZWOBWFFGCDHIJWL
      VCVDVEWBFVFNZWQWGBNZVQWHWMQWCVJVNVRXBWAFVKTWTWBWPWQWRXCWSWTXABWFFCDIWLVGS
      WOBEFGCWGHIJKVHVDVIVLVM $.
  $}

  ${
    $d q A $.  $d q B $.  $d q K $.  $d q P $.  $d q .< $.  $d q X $.
    2atomslt.b $e |- B = ( Base ` K ) $.
    2atomslt.s $e |- .< = ( lt ` K ) $.
    2atomslt.a $e |- A = ( Atoms ` K ) $.
    $( Given an atom less than an element, there is another atom less than the
       element.  (Contributed by NM, 6-May-2012.) $)
    2atlt $p |- ( ( ( K e. HL /\ P e. A /\ X e. B ) /\ P .< X )
      -> E. q e. A ( q =/= P /\ q .< X ) ) $=
      ( wcel w3a wbr wa cfv co eqid wb syl3anc syl chlt cv cjn cple wrex atbase
      hlrelat syl3anl2 ccvr simp3l simp1l1 simp1l2 simp2 atltcvr syl13anc mpbid
      wne atcvr1 mpbird necomd atlt clat hllat 3ad2ant2 latjcom breqtrrd simp3r
      wceq cpo wi hlpos latjcl simp1l3 pltletr mp2and jca 3exp reximdvai mpd )
      EUAKZCAKZFBKZLCFDMZNZCCGUBZEUCOZPZDMZWGFEUDOZMZNZGAUEZWECUQZWEFDMZNZGAUEW
      AVTCBKZWBWCWLABCEHJUFZABDWFEWICFGHWIQZIWFQZJUGUHWDWKWOGAWDWEAKZWKWOWDWTWK
      LZWMWNXACWEXACWEUQZCWGEUIOZMZXAWHXDWDWTWHWJUJXAVTWAWAWTWHXDRVTWAWBWCWTWKU
      KZVTWAWBWCWTWKULZXFWDWTWKUMZAXCCCWEDWFEIWSJXCQZUNUOUPXAVTWAWTXBXDRXEXFXGA
      XCCWEWFEWSXHJURSUSUTZXAWEWGDMZWJWNXAWEWECWFPZWGDXAWEXKDMZWMXIXAVTWTWAXLWM
      RXEXGXFAWECDWFEIWSJVASUSXAEVBKZWPWEBKZWGXKVHXAVTXMXEEVCTZXAWAWPXFWQTZWTWD
      XNWKABWEEHJUFVDZBWFECWEHWSVESVFWDWTWHWJVGXAEVIKZXNWGBKZWBXJWJNWNVJXAVTXRX
      EEVKTXQXAXMWPXNXSXOXPXQBWFECWEHWSVLSVTWAWBWCWTWKVMBDEWIWEWGFHWRIVNUOVOVPV
      QVRVS $.
  $}

  ${
    atexchcvr.j $e |- .\/ = ( join ` K ) $.
    atexchcvr.a $e |- A = ( Atoms ` K ) $.
    atexchcvr.c $e |- C = ( <o ` K ) $.
    $( Atom exchange property.  Version of ~ hlatexch2 with covers relation.
       (Contributed by NM, 7-Feb-2012.)  (New usage is discouraged.) $)
    atexchcvrN $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) /\ P =/= R )
           -> ( P C ( Q .\/ R ) -> Q C ( P .\/ R ) ) ) $=
      ( chlt wcel w3a co wbr cfv wa simpl1 atbase syl wne cple cbs simpl21 eqid
      clat hllat simpl22 simpl23 latjcl syl3anc cvrle sylancom hlatexch2 simpl3
      3jca ex simpr atcvrj2 syl132anc 3syld ) GKLZCALZDALZEALZMZCEUAZMZCDEFNZBO
      ZCVIGUBPZOZDCEFNZVKOZDVMBOZVHVJVLVHVJVBCGUCPZLZVIVPLZMVLVHVJQZVBVQVRVBVFV
      GVJRZVSVCVQVCVDVEVBVGVJUDAVPCGVPUEZISTVSGUFLZDVPLZEVPLZVRVSVBWBVTGUGTVSVD
      WCVCVDVEVBVGVJUHAVPDGWAISTVSVEWDVCVDVEVBVGVJUIAVPEGWAISTVPFGDEWAHUJUKUPKV
      PBGVKCVIWAVKUEZJULUMUQACDEFGVKWEHIUNVHVNVOVHVNQVBVDVCVEVGVNVOVBVFVGVNRVCV
      DVEVBVGVNUHVCVDVEVBVGVNUDVCVDVEVBVGVNUIVBVFVGVNUOVHVNURABDCEFGVKWEHJIUSUT
      UQVA $.
  $}

  ${
    atexchlt.s $e |- .< = ( lt ` K ) $.
    atexchlt.j $e |- .\/ = ( join ` K ) $.
    atexchlt.a $e |- A = ( Atoms ` K ) $.
    $( Atom exchange property.  Version of ~ hlatexch2 with less-than ordering.
       (Contributed by NM, 7-Feb-2012.)  (New usage is discouraged.) $)
    atexchltN $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) /\ P =/= R )
           -> ( P .< ( Q .\/ R ) -> Q .< ( P .\/ R ) ) ) $=
      ( chlt wcel w3a wne co ccvr wbr wb atltcvr 3adant3 cfv eqid atexchcvrN wa
      simpl simpr2 simpr1 simpr3 syl13anc 3imtr4d ) GKLZBALZCALZDALZMZBDNZMBCDF
      OZGPUAZQZCBDFOZURQZBUQEQZCUTEQZAURBCDFGIJURUBZUCUKUOVBUSRUPAURBCDEFGHIJVD
      STUKUOVCVARZUPUKUOUDUKUMULUNVEUKUOUEUKULUMUNUFUKULUMUNUGUKULUMUNUHAURCBDE
      FGHIJVDSUITUJ $.
  $}

  ${
    cvrat3.b $e |- B = ( Base ` K ) $.
    cvrat3.l $e |- .<_ = ( le ` K ) $.
    cvrat3.j $e |- .\/ = ( join ` K ) $.
    cvrat3.m $e |- ./\ = ( meet ` K ) $.
    cvrat3.a $e |- A = ( Atoms ` K ) $.
    $( A condition implying that a certain lattice element is an atom.  Part of
       Lemma 3.2.20 of [PtakPulmannova] p. 68.  ( ~ atcvat3i analog.)
       (Contributed by NM, 30-Nov-2011.) $)
    cvrat3 $p |- ( ( K e. HL /\ ( X e. B /\ P e. A /\ Q e. A ) )
       -> ( ( P =/= Q /\ -. Q .<_ X /\ P .<_ ( X .\/ Q ) )
      -> ( X ./\ ( P .\/ Q ) ) e. A ) ) $=
      ( wcel wa wbr co adantr syl3anc chlt w3a wne wn ccvr wi wb eqid 3adant3r2
      cfv cvr1 biimpa adantrr wceq clat simpr2 atbase syl simpr3 latjcom oveq2d
      hllat simpr1 latjass syl13anc eqtr4d latjlej2 imp eqbrtrd latjidm syl2anc
      latjcl breqtrd simpl hlatlej2 mpd latasymb mpbi2and breq2d adantrl mpbird
      ex cvrexch sylibrd latmcl cvrat2 3expia expdimp syld exp4b 3impd ) FUAOZI
      BOZCAOZDAOZUBZPZCDUCZDIGQUDZCIDERZGQZICDERZHRZAOZWQWRWSXAXDWQWRPWSXAPZXCX
      BFUEUJZQZXDWQXEXGUFWRWQXEIIXBERZXFQZXGWQXEXIWQXEPXIIWTXFQZWQWSXJXAWQWSXJW
      LWMWOWSXJUGWNABXFDEFGIJKLXFUHZNUKUIULUMWQXAXIXJUGWSWQXAPZXHWTIXFXLXHWTGQZ
      WTXHGQZXHWTUNZXLXHWTWTERZWTGXLXHWTCERZXPGWQXHXQUNXAWQXHIDCERZERZXQWQXBXRI
      EWQFUOOZCBOZDBOZXBXRUNWLXTWPFVBSZWQWNYAWLWMWNWOUPZABCFJNUQURZWQWOYBWLWMWN
      WOUSZABDFJNUQURZBEFCDJLUTTVAWQXTWMYBYAXQXSUNYCWLWMWNWOVCZYGYEBEFIDCJLVDVE
      VFSWQXAXQXPGQZWQXTYAWTBOZYJXAYIUFYCYEWQXTWMYBYJYCYHYGBEFIDJLVLTZYKBEFGCWT
      WTJKLVGVEVHVIWQXPWTUNZXAWQXTYJYLYCYKBEFWTJLVJVKSVMWQXNXAWQDXBGQZXNWQWLWNW
      OYMWLWPVNZYDYFACDEFGKLNVOTWQXTYBXBBOZWMYMXNUFYCYGWQXTYAYBYOYCYEYGBEFCDJLV
      LTZYHBEFGDXBIJKLVGVEVPSWQXMXNPXOUGZXAWQXTXHBOZYJYQYCWQXTWMYOYRYCYHYPBEFIX
      BJLVLTYKBFGXHWTJKVQTSVRVSVTWAWBWQWLWMYOXGXIUGYNYHYPBXFEFHIXBJLMXKWCTWDSWQ
      WRXGXDWQWLXCBOZWNWOWRXGPZXDUFYNWQXTWMYOYSYCYHYPBFHIXBJMWETYDYFWLYSWNWOUBY
      TXDABXFCDEFXCJLXKNWFWGVEWHWIWJWK $.
  $}

  ${
    $d r A $.  $d r B $.  $d r .\/ $.  $d r K $.  $d r .<_ $.  $d r P $.
    $d r Q $.  $d r X $.
    cvrat4.b $e |- B = ( Base ` K ) $.
    cvrat4.l $e |- .<_ = ( le ` K ) $.
    cvrat4.j $e |- .\/ = ( join ` K ) $.
    cvrat4.z $e |- .0. = ( 0. ` K ) $.
    cvrat4.a $e |- A = ( Atoms ` K ) $.
    $( TODO Change ( X .\/ Q ) to ( Q .\/ X ) to match books $)
    $( A condition implying existence of an atom with the properties shown.
       Lemma 3.2.20 in [PtakPulmannova] p. 68.  Also Lemma 9.2(delta) in
       [MaedaMaeda] p. 41.  ( ~ atcvat4i analog.)  (Contributed by NM,
       30-Nov-2011.) $)
    cvrat4 $p |- ( ( K e. HL /\ ( X e. B /\ P e. A /\ Q e. A ) )
       -> ( ( X =/= .0. /\ P .<_ ( X .\/ Q ) )
      -> E. r e. A ( r .<_ X /\ P .<_ ( Q .\/ r ) ) ) ) $=
      ( wcel wa wceq wbr syl3anc chlt w3a wne co cv wrex wi hlatl adantr simpr1
      atlex 3exp sylc simpll simplr3 simpr hlatlej1 breq1 syl5ibr impcom anim2d
      cal expd expcomd reximdvai syld ex a1i com4l imp4a wb hllat simpr3 atbase
      clat syl latleeqj2 biimpa breq2d expl simpl simpr2 hlatlej2 jctird jctild
      impl oveq2 anbi12d rspcev adantrl exp31 wo ioran df-ne anbi1i bitr4i cmee
      cfv eqid cvrat3 3expd imp4c latjcl latmle1 imp44 simplr2 3jca jca latmcom
      wn atnle eqeq1d bitrd latmcl latmlem2 breqtrd syl5ibcom cops hlop syl2anc
      breq2 ople0 sylibd sylbid imp adantrr latmle2 latjcom hlexch3 3expia jcad
      syl3c syl6 syl5bi syl7 ecase3d ) FUAPZHBPZCAPZDAPZUBZQZCDRZDHGSZHIUCZCHDE
      UDZGSZQZJUEZHGSZCDUUIEUDZGSZQZJAUFZUGUUBUUCUUEUUGUUNUUGUUBUUCUUEUUNUUBUUC
      UUEUUNUGZUGUGUUGUUBUUCUUOUUBUUCQZUUEUUJJAUFZUUNUUBUUEUUQUGZUUCUUBFVBPZYRU
      URYQUUSUUAFUHUIZYQYRYSYTUJZUUSYRUUEUUQJABFGHIKLNOUKULUMUIUUPUUJUUMJAUUPUU
      JUUIAPZUUMUUPUVBUULUUJUUCUUBUVBUULUGUUCUUBUVBUULUUBUVBQZUULUUCDUUKGSZUVCY
      QYTUVBUVDYQUUAUVBUNYRYSYTYQUVBUOUUBUVBUPADUUIEFGLMOUQTCDUUKGURUSVCUTVAVDV
      EVFVGVHVIVJUUBUUDUUHUUNUUBUUDQZUUGUUNUUEUVEUUGQYSCHGSZCDCEUDZGSZQZQZUUNUU
      BUUDUUGUVJUUBUUDUUGQZUVIYSUUBUVKUVFUVHUUBUUDUUGUVFUVEUUGUVFUVEUUFHCGUUBUU
      DUUFHRZUUBFVOPZDBPZYRUUDUVLVKYQUVMUUAFVLZUIZUUBYTUVNYQYRYSYTVMZABDFKOVNVP
      ZUVABEFGDHKLMVQTVRVSVRVTUUBYQYTYSUVHYQUUAWAUVQYQYRYSYTWBZADCEFGLMOWCTWDUV
      SWEWFUUMUVIJCAUUICRZUUJUVFUULUVHUUICHGURUVTUUKUVGCGUUICDEWGVSWHWIVPWJWKUU
      HUUGUUBUUCUUDWLXJZUUNUUEUUGUPUWACDUCZUUDXJZQZUUBUUGUUNUGUWAUUCXJZUWCQUWDU
      UCUUDWMUWBUWEUWCCDWNWOWPUUBUWDUUGUUNUUBUWDUUGQZHCDEUDZFWQWRZUDZAPZUWIHGSZ
      CDUWIEUDZGSZQZQUUNUUBUWFUWJUWNUUBUWBUWCUUGUWJUUBUWBUWCUUGUWJABCDEFGUWHHKL
      MUWHWSZOWTXAZXBUUBUWFUWNUUBUWFQZUWKUWMUUBUWKUWFUUBUVMYRUWGBPZUWKUVPUVAUUB
      UVMCBPZUVNUWRUVPUUBYSUWSUVSABCFKOVNVPZUVRBEFCDKMXCTZBFGUWHHUWGKLUWOXDTZUI
      UWQYQUWJYSUVNUBZQZDUWIUWHUDZIRZUWIUVGGSZUWMUWQYQUXCYQUUAUWFUNUWQUWJYSUVNU
      UBUWBUWCUUGUWJUWPXEYRYSYTYQUWFXFUUBUVNUWFUVRUIXGXHUUBUWDUXFUUGUUBUWCUXFUW
      BUUBUWCUXFUUBUWCHDUWHUDZIRZUXFUUBUWCDHUWHUDZIRZUXIUUBUUSYTYRUWCUXKVKUUTUV
      QUVAABDFGUWHHIKLUWONOXKTUUBUXJUXHIUUBUVMUVNYRUXJUXHRUVPUVRUVABFUWHDHKUWOX
      ITZXLXMUUBUXIUXEIGSZUXFUUBUXEUXHGSUXIUXMUUBUXEUXJUXHGUUBUVMUWIBPZYRUVNUBZ
      QUWKUXEUXJGSUUBUVMUXOUVPUUBUXNYRUVNUUBUVMYRUWRUXNUVPUVAUXABFUWHHUWGKUWOXN
      TZUVAUVRXGXHUXBBFGUWHUWIHDKLUWOXOUMUXLXPUXHIUXEGYAXQUUBFXRPZUXEBPZUXMUXFV
      KYQUXQUUAFXSUIUUBUVMUVNUXNUXRUVPUVRUXPBFUWHDUWIKUWOXNTBFGUXEIKLNYBXTYCYDY
      EWJYFUUBUXGUWFUUBUWIUWGUVGGUUBUVMYRUWRUWIUWGGSUVPUVAUXABFGUWHHUWGKLUWOYGT
      UUBUVMUWSUVNUWGUVGRUVPUWTUVRBEFCDKMYHTXPUIUXDUXFUWIDUWHUDZIRZUXGUWMUGZUXD
      UXEUXSIUXDUVMUVNUXNUXEUXSRYQUVMUXCUVOUIYQUWJYSUVNVMUXDUWJUXNYQUWJYSUVNUJA
      BUWIFKOVNVPBFUWHDUWIKUWOXITXLYQUXCUXTUYAABUWICEFGUWHDIKLMUWONOYIYJYDYLXHV
      GYKUUMUWNJUWIAUUIUWIRZUUJUWKUULUWMUUIUWIHGURUYBUUKUWLCGUUIUWIDEWGVSWHWIYM
      VCYNYOYP $.

    $( Commuted version of ~ cvrat4 .  (Contributed by NM, 28-Jan-2012.) $)
    cvrat42 $p |- ( ( K e. HL /\ ( X e. B /\ P e. A /\ Q e. A ) )
       -> ( ( X =/= .0. /\ P .<_ ( X .\/ Q ) )
      -> E. r e. A ( r .<_ X /\ P .<_ ( r .\/ Q ) ) ) ) $=
      ( wcel wa co wbr wrex chlt w3a cv cvrat4 clat wceq hllat ad2antrr simplr3
      wne atbase syl adantl latjcom syl3anc breq2d anbi2d rexbidva sylibd ) FUA
      PZHBPZCAPZDAPZUBZQZHIUJCHDERGSQJUCZHGSZCDVFERZGSZQZJATVGCVFDERZGSZQZJATAB
      CDEFGHIJKLMNOUDVEVJVMJAVEVFAPZQZVIVLVGVOVHVKCGVOFUEPZDBPZVFBPZVHVKUFUTVPV
      DVNFUGUHVOVCVQVAVBVCUTVNUIABDFKOUKULVNVRVEABVFFKOUKUMBEFDVFKMUNUOUPUQURUS
      $.
  $}

  ${
    2atjm.b $e |- B = ( Base ` K ) $.
    2atjm.l $e |- .<_ = ( le ` K ) $.
    2atjm.j $e |- .\/ = ( join ` K ) $.
    2atjm.m $e |- ./\ = ( meet ` K ) $.
    2atjm.a $e |- A = ( Atoms ` K ) $.
    $( The meet of a line (expressed with 2 atoms) and a lattice element.
       (Contributed by NM, 30-Jul-2012.) $)
    2atjm $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ X e. B ) /\
      ( P .<_ X /\ -. Q .<_ X ) ) -> ( ( P .\/ Q ) ./\ X ) = P ) $=
      ( wcel w3a wbr wa co syl3anc chlt wn wceq clat 3ad2ant1 simp21 atbase syl
      hllat simp22 latlej1 simp3l wb simp1 hlatjcl simp23 latlem12 syl13anc cal
      mpbi2and latmcom wne 3jca nbrne2 3ad2ant3 simp3r latjcl lattrd cvrat3 imp
      hlatl syl23anc eqeltrd atcmp mpbid eqcomd ) FUAOZCAOZDAOZIBOZPZCIGQZDIGQU
      BZRZPZCCDESZIHSZWECWGGQZCWGUCZWECWFGQZWBWHWEFUDOZCBOZDBOZWJVQWAWKWDFUIUEZ
      WEVRWLVQVRVSVTWDUFZABCFJNUGUHZWEVSWMVQVRVSVTWDUJZABDFJNUGUHZBEFGCDJKLUKTV
      QWAWBWCULZWEWKWLWFBOZVTWJWBRWHUMWNWPWEVQVRVSWTVQWAWDUNZWOWQABEFCDJLNUOTZV
      QVRVSVTWDUPZBFGHCWFIJKMUQURUTWEFUSOZVRWGAOWHWIUMVQWAXDWDFVKUEWOWEWGIWFHSZ
      AWEWKWTVTWGXEUCWNXBXCBFHWFIJMVATWEVQVTVRVSPZCDVBZWCCIDESZGQZXEAOZXAWEVTVR
      VSXCWOWQVCWDVQXGWACDIGVDVEVQWAWBWCVFWEBFGCIXHJKWNWPXCWEWKVTWMXHBOWNXCWRBE
      FIDJLVGTWSWEWKVTWMIXHGQWNXCWRBEFGIDJKLUKTVHVQXFRXGWCXIPXJABCDEFGHIJKLMNVI
      VJVLVMACWGFGKNVNTVOVP $.
  $}

  ${
    atbtwn.b $e |- B = ( Base ` K ) $.
    atbtwn.l $e |- .<_ = ( le ` K ) $.
    atbtwn.j $e |- .\/ = ( join ` K ) $.
    atbtwn.a $e |- A = ( Atoms ` K ) $.
    $( Property of a 3rd atom ` R ` on a line ` P .\/ Q ` intersecting element
       ` X ` at ` P ` .  (Contributed by NM, 30-Jul-2012.) $)
    atbtwn $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A ) /\ ( R e. A /\ X e. B ) /\
      ( P .<_ X /\ -. Q .<_ X /\ R .<_ ( P .\/ Q ) ) )
   -> ( R =/= P <-> -. R .<_ X ) ) $=
      ( wcel w3a wa wbr wn co syl chlt wne wceq cmee simpl33 simpr clat simpl11
      cfv wb hllat simpl2l atbase simpl1 hlatjcl simpl2r eqid latlem12 syl13anc
      simpl12 simpl13 simpl31 simpl32 2atjm syl132anc breqtrd cal hlatl syl3anc
      mpbi2and atcmp mpbid ex necon3ad wi simp31 nbrne2 necomd impbid ) GUANZCA
      NZDANZOZEANZIBNZPZCIHQZDIHQRZECDFSZHQZOZOZECUBZEIHQZRZWLWNECWLWNECUCZWLWN
      PZECHQZWPWQEWIIGUDUIZSZCHWQWJWNEWTHQZWGWHWJWCWFWNUEWLWNUFWQGUGNZEBNZWIBNZ
      WEWJWNPXAUJWQVTXBVTWAWBWFWKWNUHZGUKTWQWDXCWDWEWCWKWNULZABEGJMUMTWQWCXDWCW
      FWKWNUNABFGCDJLMUOTWDWEWCWKWNUPZBGHWSEWIIJKWSUQZURUSVJWQVTWAWBWEWGWHWTCUC
      XEVTWAWBWFWKWNUTZVTWAWBWFWKWNVAXGWGWHWJWCWFWNVBWGWHWJWCWFWNVCABCDFGHWSIJK
      LXHMVDVEVFWQGVGNZWDWAWRWPUJWQVTXJXEGVHTXFXIAECGHKMVKVIVLVMVNWLWGWOWMVOWCW
      FWGWHWJVPWGWOWMWGWOPCECEIHVQVRVMTVS $.

    $d r A $.  $d r B $.  $d r K $.  $d r .<_ $.  $d r P $.  $d r Q $.
    $d r X $.
    $( There exists a 3rd atom ` r ` on a line ` P .\/ Q ` intersecting element
       ` X ` at ` P ` , such that ` r ` is different from ` Q ` and not in
       ` X ` .  (Contributed by NM, 30-Jul-2012.)
       (New usage is discouraged.) $)
    atbtwnexOLDN $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
        /\ ( X e. B /\ P .<_ X /\ -. Q .<_ X ) )
    -> E. r e. A ( r =/= Q /\ -. r .<_ X /\ r .<_ ( P .\/ Q ) ) ) $=
      ( chlt wcel w3a wbr wn wne wrex wa cv simpr2 simpr3 nbrne2 syl2anc hlsupr
      co syldan simp32 simp31 wb simp1l simp2 simp1r1 simp1r2 simp1r3 syl123anc
      simp33 atbtwn mpbid 3jca 3exp reximdvai mpd ) FNOCAODAOPZHBOZCHGQZDHGQRZP
      ZUAZIUBZCSZVLDSZVLCDEUHGQZPZIATZVNVLHGQRZVOPZIATVFVJCDSZVQVKVHVIVTVFVGVHV
      IUCVFVGVHVIUDCDHGUEUFACDEFGIKLMUGUIVKVPVSIAVKVLAOZVPVSVKWAVPPZVNVRVOVKWAV
      MVNVOUJWBVMVRVKWAVMVNVOUKWBVFWAVGVHVIVOVMVRULVFVJWAVPUMVKWAVPUNVGVHVIVFWA
      VPUOVGVHVIVFWAVPUPVGVHVIVFWAVPUQVKWAVMVNVOUSZABCDVLEFGHJKLMUTURVAWCVBVCVD
      VE $.

    $( Given atoms ` P ` in ` X ` and ` Q ` not in ` X ` , there exists an atom
       ` r ` not in ` X ` such that the line ` Q .\/ r ` intersects ` X ` at
       ` P ` .  (Contributed by NM, 1-Aug-2012.) $)
    atbtwnex $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
        /\ ( X e. B /\ P .<_ X /\ -. Q .<_ X ) )
    -> E. r e. A ( r =/= Q /\ -. r .<_ X /\ P .<_ ( Q .\/ r ) ) ) $=
      ( wcel w3a wbr wn wne co wrex chlt wa simpr2 simpr3 nbrne2 syl2anc hlsupr
      cv syldan simp32 simp31 wb simp1l simp2 simp1r1 simp1r2 simp1r3 syl123anc
      simp33 atbtwn wi simp1l1 simp1l2 simp1l3 hlatexch2 syl131anc mpd hlatjcom
      mpbid wceq syl3anc breqtrrd 3jca 3exp reximdvai ) FUANZCANZDANZOZHBNZCHGP
      ZDHGPQZOZUBZIUHZCRZWEDRZWECDESGPZOZIATZWGWEHGPQZCDWEESZGPZOZIATVSWCCDRZWJ
      WDWAWBWOVSVTWAWBUCVSVTWAWBUDCDHGUEUFACDEFGIKLMUGUIWDWIWNIAWDWEANZWIWNWDWP
      WIOZWGWKWMWDWPWFWGWHUJZWQWFWKWDWPWFWGWHUKWQVSWPVTWAWBWHWFWKULVSWCWPWIUMWD
      WPWIUNZVTWAWBVSWPWIUOVTWAWBVSWPWIUPVTWAWBVSWPWIUQWDWPWFWGWHUSZABCDWEEFGHJ
      KLMUTURVIWQCWEDESZWLGWQWHCXAGPZWTWQVPWPVQVRWGWHXBVAVPVQVRWCWPWIVBZWSVPVQV
      RWCWPWIVCVPVQVRWCWPWIVDZWRAWECDEFGKLMVEVFVGWQVPVRWPWLXAVJXCXDWSAEFDWELMVH
      VKVLVMVNVOVG $.
  $}

  ${
    3noncol.l $e |- .<_ = ( le ` K ) $.
    3noncol.j $e |- .\/ = ( join ` K ) $.
    3noncol.a $e |- A = ( Atoms ` K ) $.
    $( Two ways to express 3 non-colinear atoms (rotated right 2 places).
       (Contributed by NM, 12-Jul-2012.) $)
    3noncolr2 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
  /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q ) ) )
  -> ( Q =/= R /\ -. P .<_ ( Q .\/ R ) ) ) $=
      ( chlt wcel w3a wne co wbr wn atbase syl syl131anc wa clat hllat 3ad2ant1
      cbs cfv simp23 eqid simp21 simp22 simp3r latnlej1r necomd wi simp1 simp3l
      hlatexch1 wceq hlatjcom syl3anc breq2d sylibrd mtod jca ) FKLZBALZCALZDAL
      ZMZBCNZDBCEOZGPZQZUAZMZCDNBCDEOGPZQVODCVOFUBLZDFUEUFZLZBVRLZCVRLZVMDCNVEV
      IVQVNFUCUDVOVHVSVEVFVGVHVNUGZAVRDFVRUHZJRSVOVFVTVEVFVGVHVNUIZAVRBFWCJRSVO
      VGWAVEVFVGVHVNUJZAVRCFWCJRSVEVIVJVMUKZVREFGDBCWCHIULTUMVOVPVLWFVOVPDCBEOZ
      GPZVLVOVEVFVHVGVJVPWHUNVEVIVNUOZWDWBWEVEVIVJVMUPABDCEFGHIJUQTVOVKWGDGVOVE
      VFVGVKWGURWIWDWEAEFBCIJUSUTVAVBVCVD $.

    $( Two ways to express 3 non-colinear atoms (rotated right 1 place).
       (Contributed by NM, 12-Jul-2012.)  (New usage is discouraged.) $)
    3noncolr1N $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
  /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q ) ) )
  -> ( R =/= P /\ -. Q .<_ ( R .\/ P ) ) ) $=
      ( chlt wcel w3a wne co wbr wn wa simp1 3noncolr2 simp22 simp23 syl131anc
      simp21 ) FKLZBALZCALZDALZMZBCNDBCEOGPQRZMUEUGUHUFCDNBCDEOGPQRDBNCDBEOGPQR
      UEUIUJSUEUFUGUHUJUAUEUFUGUHUJUBUEUFUGUHUJUDABCDEFGHIJTACDBEFGHIJTUC $.

    $( TODO: replace with ~ 3noncolr2 ? $)
    $( Atom exchange combined with contraposition.  (Contributed by NM,
       13-Jun-2012.) $)
    hlatcon3 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
      /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q ) ) ) -> -. P .<_ ( Q .\/ R ) ) $=
      ( chlt wcel w3a wne co wbr wn wa 3noncolr2 simprd ) FKLBALCALDALMBCNDBCEO
      GPQRMCDNBCDEOGPQABCDEFGHIJST $.

    $( Atom exchange combined with contraposition.  (Contributed by NM,
       13-Jun-2012.) $)
    hlatcon2 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
      /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q ) ) ) -> -. P .<_ ( R .\/ Q ) ) $=
      ( chlt wcel w3a wne co wbr wn wa hlatcon3 wceq simp1 simp22 simp23 breq2d
      hlatjcom syl3anc mtbid ) FKLZBALZCALZDALZMZBCNDBCEOGPQRZMZBCDEOZGPBDCEOZG
      PABCDEFGHIJSUNUOUPBGUNUHUJUKUOUPTUHULUMUAUHUIUJUKUMUBUHUIUJUKUMUCAEFCDIJU
      EUFUDUG $.

    $( A way to express 4 non-colinear atoms (rotated right 3 places).
       (Contributed by NM, 11-Jul-2012.) $)
    4noncolr3 $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
      /\ ( R e. A /\ S e. A )
     /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q )
          /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
  -> ( Q =/= R /\ -. S .<_ ( Q .\/ R )
         /\ -. P .<_ ( ( Q .\/ R ) .\/ S ) ) ) $=
      ( wcel w3a co wbr wn syl atbase syl131anc wceq chlt wa wne cbs cfv simp11
      clat simp2l eqid simp12 simp13 simp32 necomd simp2r latjcl syl3anc simp33
      hllat latnlej1r hlatjass syl13anc breq2d mtbid latnlej2r simp31 hlatexch1
      wi latjcom sylibrd mtod hlexch1 oveq1d latj31 eqtrd sylibd 3jca ) GUALZBA
      LZCALZMZDALZEALZUBZBCUCZDBCFNZHOZPZEWEDFNZHOZPZMZMZCDUCECDFNZHOPZBWMEFNHO
      ZPWLDCWLGUGLZDGUDUEZLZBWQLZCWQLZWGDCUCWLVQWPVQVRVSWCWKUFZGURQZWLWAWRVTWAW
      BWKUHZAWQDGWQUIZKRQZWLVRWSVQVRVSWCWKUJZAWQBGXDKRQZWLVSWTVQVRVSWCWKUKZAWQC
      GXDKRQZVTWCWDWGWJULZWQFGHDBCXDIJUSSUMWLWPEWQLZWSWMWQLZEBWMFNZHOZPWNXBWLWB
      XKVTWAWBWKUNZAWQEGXDKRQXGWLWPWTWRXLXBXIXEWQFGCDXDJUOUPZWLWIXNVTWCWDWGWJUQ
      ZWLWHXMEHWLVQVRVSWAWHXMTXAXFXHXCABCDFGJKUTVAVBVCWQFGHEBWMXDIJVDSWLWOWIXQW
      LWOEWMBFNZHOZWIWLVQVRWBXLBWMHOZPWOXSVGXAXFXOXPWLXTWFXJWLXTDCBFNZHOZWFWLVQ
      VRWAVSWDXTYBVGXAXFXCXHVTWCWDWGWJVEABDCFGHIJKVFSWLWEYADHWLWPWSWTWEYATXBXGX
      IWQFGBCXDJVHUPVBVIVJAWQBEFGHWMXDIJKVKSWLXRWHEHWLXRDCFNZBFNZWHWLWMYCBFWLWP
      WTWRWMYCTXBXIXEWQFGCDXDJVHUPVLWLWPWRWTWSYDWHTXBXEXIXGWQFGDCBXDJVMVAVNVBVO
      VJVP $.

    $( A way to express 4 non-colinear atoms (rotated right 2 places).
       (Contributed by NM, 11-Jul-2012.) $)
    4noncolr2 $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
      /\ ( R e. A /\ S e. A )
     /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q )
        /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
  -> ( R =/= S /\ -. P .<_ ( R .\/ S )
        /\ -. Q .<_ ( ( R .\/ S ) .\/ P ) ) ) $=
      ( chlt wcel w3a wa wne co wbr wn 4noncolr3 simp11 simp13 simp2l syl321anc
      simp2r simp12 ) GLMZBAMZCAMZNZDAMZEAMZOZBCPDBCFQZHRSEUNDFQHRSNZNUGUIUKULU
      HCDPECDFQZHRSBUPEFQHRSNDEPBDEFQZHRSCUQBFQHRSNUGUHUIUMUOUAUGUHUIUMUOUBUJUK
      ULUOUCUJUKULUOUEUGUHUIUMUOUFABCDEFGHIJKTACDEBFGHIJKTUD $.

    $( A way to express 4 non-colinear atoms (rotated right 1 places).
       (Contributed by NM, 11-Jul-2012.) $)
    4noncolr1 $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
      /\ ( R e. A /\ S e. A )
     /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q )
        /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
  -> ( S =/= P /\ -. Q .<_ ( S .\/ P )
          /\ -. R .<_ ( ( S .\/ P ) .\/ Q ) ) ) $=
      ( chlt wcel w3a wa wne co wbr wn simp11 simp13 simp2l 4noncolr3 4noncolr2
      simp2r simp12 syl321anc ) GLMZBAMZCAMZNZDAMZEAMZOZBCPDBCFQZHRSEUODFQHRSNZ
      NUHUJULUMUICDPECDFQZHRSBUQEFQHRSNEBPCEBFQZHRSDURCFQHRSNUHUIUJUNUPTUHUIUJU
      NUPUAUKULUMUPUBUKULUMUPUEUHUIUJUNUPUFABCDEFGHIJKUCACDEBFGHIJKUDUG $.
  $}

  ${
    $d p q r s x y z A $.  $d x y z C $.  $d r s x y z .\/ $.
    $d p q r s x y z K $.
    athgt.j $e |- .\/ = ( join ` K ) $.
    athgt.c $e |- C = ( <o ` K ) $.
    athgt.a $e |- A = ( Atoms ` K ) $.
    $( A Hilbert lattice, whose height is at least 4, has a chain of 4
       successively covering atom joins.  (Contributed by NM, 3-May-2012.) $)
    athgt $p |- ( K e. HL -> E. p e. A E. q e. A
        ( p C ( p .\/ q )
           /\ E. r e. A ( ( p .\/ q ) C ( ( p .\/ q ) .\/ r ) /\
     E. s e. A
          ( ( p .\/ q ) .\/ r ) C ( ( ( p .\/ q ) .\/ r ) .\/ s ) ) ) ) $=
      ( wcel cfv cv wbr wa wrex wi w3a syl vx vy vz chlt cp0 cplt cp1 co hlhgt4
      cbs eqid cple simpl1 cops hlop op0cl simpl2l simprll hlrelat3 syl31anc wb
      3syl simp11 simp3 atcvr0 syl2anc wceq hlol atbase 3ad2ant3 olj02 breqtrrd
      col biantrurd breq1d bitr3d 3expa rexbidva mpbid 3adant3r simp12r simp2lr
      simp3r hlpos simp12l plelttr syl13anc mp2and hllat simp3ll simp3lr latjcl
      cpo clat syl3anc simp13 simp2l simp12 simp1ll simp2ll simp3l op1cl simp1r
      simp1lr simpl reximi 3exp exp4a 3adant2 3imp 3adant2l imp anim2d reximdva
      ex mpd 3imp1 3expia expd reximdvai 3exp1 rexlimdv rexlimdvva ) DUDLZDUEMZ
      UANZDUFMZOZYFUBNZYGOZPZYIUCNZYGOZYLDUGMZYGOZPZPZUCDUJMZQZUBYRQUAYRQHNZYTG
      NZCUHZBOZUUBUUBFNZCUHZBOZUUEUUEENCUHZBOZEAQZPZFAQZPZGAQZHAQZUAUBUCYRYGYND
      YEYRUKZYGUKZYEUKZYNUKZUIYDYSUUNUAUBYRYRYDYFYRLZYIYRLZPZPYQUUNUCYRYDUVAYLY
      RLZYQUUNRRYDUVAUVBYQUUNYDUVAUVBSZYQPZYTYFDULMZOZHAQZUUNUVDYEYEYTCUHZBOZUV
      HYFUVEOZPZHAQZUVGUVDYDYEYRLZUUSYHUVLYDUVAUVBYQUMZUVDYDDUNLZUVMUVNDUOZYRDY
      EUUOUUQUPVBUUSUUTYDUVBYQUQUVCYHYJYPURAYRBYGCDUVEYEYFHUUOUVEUKZUUPIJKUSUTU
      VDUVKUVFHAUVCYQYTALZUVKUVFVAUVCYQUVRSZUVJUVKUVFUVSUVIUVJUVSYEYTUVHBUVSYDU
      VRYEYTBOYDUVAUVBYQUVRVCZUVCYQUVRVDABUDYTDYEUUQJKVEVFUVSDVMLZYTYRLZUVHYTVG
      UVSYDUWAUVTDVHTUVRUVCUWBYQAYRYTDUUOKVIZVJZYRCDYTYEUUOIUUQVKVFZVLVNUVSUVHY
      TYFUVEUWEVOVPVQVRVSUVDUVFUUMHAUVDUVRUVFUUMUVCYQUVRUVFPZUUMUVCYQUWFSZUUCUU
      BYIUVEOZPZGAQZUUMUWGYDUWBUUTYTYIYGOZUWJYDUVAUVBYQUWFVCZUVCYQUVRUWBUVFUWDV
      TZUUSUUTYDUVBYQUWFWAZUWGUVFYJUWKUVCYQUVRUVFWCYHYJYPUVCUWFWBUWGDWMLZUWBUUS
      UUTUVFYJPUWKRUWGYDUWOUWLDWDZTUWMUUSUUTYDUVBYQUWFWEUWNYRYGDUVEYTYFYIUUOUVQ
      UUPWFWGWHAYRBYGCDUVEYTYIGUUOUVQUUPIJKUSUTUVCYQUVRUWJUUMRZUVFUVCYPUVRUWQYK
      UVCYPUVRSZUWIUULGAUWRUUAALZPUWHUUKUUCUVCYPUVRUWSUWHUUKRZYDUUTUVBYPUVRUWSU
      WTRRRUUSYDUUTUVBSZYPUVRUWSUWTUXAYPUVRUWSPZUWHUUKUXAYPUXBUWHPZUUKUXAYPUXCS
      ZUUFUUEYLUVEOZPZFAQZUUKUXDYDUUBYRLZUVBUUBYLYGOZUXGYDUUTUVBYPUXCVCZUXDDWNL
      ZUWBUUAYRLZUXHUXDYDUXKUXJDWIZTUXDUVRUWBUVRUWSUWHUXAYPWJUWCTUXDUWSUXLUVRUW
      SUWHUXAYPWKAYRUUADUUOKVIZTYRCDYTUUAUUOIWLZWOZYDUUTUVBYPUXCWPZUXDUWHYMUXIU
      XAYPUXBUWHWCUXAYMYOUXCWQUXDUWOUXHUUTUVBUWHYMPUXIRUXDYDUWOUXJUWPTUXPYDUUTU
      VBYPUXCWRUXQYRYGDUVEUUBYIYLUUOUVQUUPWFWGWHAYRBYGCDUVEUUBYLFUUOUVQUUPIJKUS
      UTUXDUXFUUJFAUXDUUDALZPUXEUUIUUFUXDUXRUXEUUIRZUXAYOUXCUXRUXSRZYMUXAYOUXCU
      XTYDUVBYOUXCUXTRZRUUTYDUVBPZYOUYAUYBYOPZUXCUXRUXEUUIUYCUXCUXRUXEPZUUIUYCU
      XCUYDSZUUHUUGYNUVEOZPZEAQZUUIUYEYDUUEYRLZYNYRLZUUEYNYGOZUYHYDUVBYOUXCUYDW
      SZUYEUXKUXHUUDYRLZUYIUYEYDUXKUYLUXMTZUYEUXKUWBUXLUXHUYNUYEUVRUWBUVRUWSUWH
      UYCUYDWTUWCTUYEUWSUXLUVRUWSUWHUYCUYDWBUXNTUXOWOUYEUXRUYMUYCUXCUXRUXEXAAYR
      UUDDUUOKVITYRCDUUBUUDUUOIWLWOZUYEYDUVOUYJUYLUVPYRYNDUUOUURXBVBZUYEUXEYOUY
      KUYCUXCUXRUXEWCUYBYOUXCUYDXCUYEUWOUYIUVBUYJUXEYOPUYKRUYEYDUWOUYLUWPTUYOYD
      UVBYOUXCUYDXDUYPYRYGDUVEUUEYLYNUUOUVQUUPWFWGWHAYRBYGCDUVEUUEYNEUUOUVQUUPI
      JKUSUTUYGUUHEAUUHUYFXEXFTXGXHXOXIXJXKXLXMXNXPXGXHXHXKXQXMXNXKVTXPXRXSXTXP
      YAXLYBYCXP $.
  $}

  ${
    $d p q r s A $.  $d r s .\/ $.
    3dim0.j $e |- .\/ = ( join ` K ) $.
    3dim0.l $e |- .<_ = ( le ` K ) $.
    3dim0.a $e |- A = ( Atoms ` K ) $.
    ${
      $d p q r s K $.
      $( There exists a 3-dimensional (height-4) element i.e. a volume.
         (Contributed by NM, 25-Jul-2012.) $)
      3dim0 $p |- ( K e. HL -> E. p e. A E. q e. A E. r e. A E. s e. A
     ( p =/= q /\ -. r .<_ ( p .\/ q )
             /\ -. s .<_ ( ( p .\/ q ) .\/ r ) ) ) $=
        ( wcel cv co wbr wn wrex wa wb syl3anc chlt wne w3a ccvr cfv eqid athgt
        df-3an cbs simpll1 hlatjcl ad2antrr simplr cvr1 anbi2d hllat syl atbase
        clat ad2antlr latjcl simpr anbi12d syl5bb rexbidva r19.42v anass syl6bb
        bitri atcvr1 anbi1d bitrd 3expb 2rexbidva mpbird ) CUALZHMZGMZUBZFMZVQV
        RBNZDOPZEMZWAVTBNZDOPZUCZEAQZFAQZGAQHAQVQWACUDUEZOZWAWDWIOZWDWDWCBNWIOZ
        EAQZRZFAQZRZGAQHAQAWIBCEFGHIWIUFZKUGVPWHWPHGAAVPVQALZVRALZWHWPSVPWRWSUC
        ZWHVSWORZWPWTWHVSWNRZFAQXAWTWGXBFAWTVTALZRZWGVSWKRZWLRZEAQZXBXDWFXFEAWF
        VSWBRZWERXDWCALZRZXFVSWBWEUHXJXHXEWEWLXJWBWKVSXJVPWACUIUEZLZXCWBWKSVPWR
        WSXCXIUJZWTXLXCXIAXKBCVQVRXKUFZIKUKULZWTXCXIUMAXKWIVTBCDWAXNJIWQKUNTUOX
        JVPWDXKLZXIWEWLSXMXJCUSLZXLVTXKLZXPXJVPXQXMCUPUQXOXCXRWTXIAXKVTCXNKURUT
        XKBCWAVTXNIVATXDXIVBAXKWIWCBCDWDXNJIWQKUNTVCVDVEXGXEWMRXBXEWLEAVFVSWKWM
        VGVIVHVEVSWNFAVFVHWTVSWJWOAWIVQVRBCIWQKVJVKVLVMVNVO $.
    $}

    $( Lemma for ~ 3dim1 .  (Contributed by NM, 25-Jul-2012.) $)
    3dimlem1 $p |- ( ( ( Q =/= R /\ -. S .<_ ( Q .\/ R ) /\ -. T .<_ ( (
   Q .\/ R ) .\/ S ) ) /\ P = Q )
  -> ( P =/= R /\ -. S .<_ ( P .\/ R )
         /\ -. T .<_ ( ( P .\/ R ) .\/ S ) ) ) $=
      ( wceq wne co wbr wn w3a breq2d notbid neeq1 oveq1d 3anbi123d biimparc
      oveq1 ) BCMZBDNZEBDGOZIPZQZFUHEGOZIPZQZRCDNZECDGOZIPZQZFUOEGOZIPZQZRUFUGU
      NUJUQUMUTBCDUAUFUIUPUFUHUOEIBCDGUEZSTUFULUSUFUKURFIUFUHUOEGVAUBSTUCUD $.

    $( Lemma for ~ 3dim1 .  (Contributed by NM, 25-Jul-2012.) $)
    3dimlem2 $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A ) /\
  ( R e. A /\ -. S .<_ ( Q .\/ R ) /\ -. T .<_ ( ( Q .\/ R ) .\/ S ) )
  /\ ( P =/= Q /\ P .<_ ( Q .\/ R ) ) )
  -> ( P =/= Q /\ -. S .<_ ( P .\/ Q )
         /\ -. T .<_ ( ( P .\/ Q ) .\/ S ) ) ) $=
      ( wcel w3a co wbr wn wceq breq2d mtbird chlt wne simp3l hlatjcom 3ad2ant1
      wa simp22 simp3r wb simp11 simp12 simp21 hlatexchb1 syl131anc mpbid eqtrd
      simp13 simp23 oveq1d 3jca ) HUAMZBAMZCAMZNZDAMZECDGOZIPZQZFVFEGOZIPZQZNZB
      CUBZBVFIPZUFZNZVMEBCGOZIPZQFVQEGOZIPZQVDVLVMVNUCZVPVRVGVDVEVHVKVOUGVPVQVF
      EIVPVQCBGOZVFVDVLVQWBRVOAGHBCJLUDUEVPVNWBVFRZVDVLVMVNUHVPVAVBVEVCVMVNWCUI
      VAVBVCVLVOUJVAVBVCVLVOUKVDVEVHVKVOULVAVBVCVLVOUQWAABDCGHIKJLUMUNUOUPZSTVP
      VTVJVDVEVHVKVOURVPVSVIFIVPVQVFEGWDUSSTUT $.

    $( TODO - check if it is more efficient to eliminate this and
       use ~ 3dimlem3OLDN $)
    $( Lemma for ~ 3dim3 .  (Contributed by NM, 27-Jul-2012.) $)
    3dimlem3a $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
           /\ ( R e. A /\ S e. A )
           /\ ( -. T .<_ ( ( Q .\/ R ) .\/ S )
             /\ -. P .<_ ( Q .\/ R ) /\ P .<_ ( ( Q .\/ R ) .\/ S ) ) )
     -> -. T .<_ ( ( P .\/ Q ) .\/ R ) ) $=
      ( wcel w3a co wbr wn wceq syl atbase chlt wa simp31 clat cbs simp11 hllat
      cfv simp13 simp2l simp12 latjrot syl13anc simp33 wb simp2r hlatjcl simp32
      eqid syl3anc hlexchb1 syl131anc mpbid eqtr3d breq2d mtbird ) HUAMZBAMZCAM
      ZNZDAMZEAMZUBZFCDGOZEGOZIPZQZBVNIPQZBVOIPZNZNZFBCGODGOZIPVPVJVMVQVRVSUCWA
      WBVOFIWAVNBGOZWBVOWAHUDMZCHUEUHZMZDWEMZBWEMZWCWBRWAVGWDVGVHVIVMVTUFZHUGSW
      AVIWFVGVHVIVMVTUIZAWECHWEUSZLTSWAVKWGVJVKVLVTUJZAWEDHWKLTSWAVHWHVGVHVIVMV
      TUKZAWEBHWKLTSWEGHCDBWKJULUMWAVSWCVORZVJVMVQVRVSUNWAVGVHVLVNWEMZVRVSWNUOW
      IWMVJVKVLVTUPWAVGVIVKWOWIWJWLAWEGHCDWKJLUQUTVJVMVQVRVSURAWEBEGHIVNWKKJLVA
      VBVCVDVEVF $.

    $( Lemma for ~ 3dim1 .  (Contributed by NM, 25-Jul-2012.) $)
    3dimlem3 $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A )
           /\ ( R e. A /\ S e. A )
           /\ ( Q =/= R /\ -. T .<_ ( ( Q .\/ R ) .\/ S ) ) )
       /\ ( P =/= Q /\ -. P .<_ ( Q .\/ R )
          /\ P .<_ ( ( Q .\/ R ) .\/ S ) ) )
  -> ( P =/= Q /\ -. R .<_ ( P .\/ Q )
        /\ -. T .<_ ( ( P .\/ Q ) .\/ R ) ) ) $=
      ( chlt wcel w3a wa wne co wbr wn simpr1 simpr2 wi simpl11 simpl2l simpl12
      simpl13 simpl3l necomd hlatexch2 syl131anc hlatjcom syl3anc breq2d simpl1
      wceq sylibrd mtod simpl2 simpl3r simpr3 3dimlem3a syl113anc 3jca ) HMNZBA
      NZCANZOZDANZEANZPZCDQZFCDGRZEGRZISTZPZOZBCQZBVMISZTZBVNISZOZPZVRDBCGRZISZ
      TFWDDGRISTZVQVRVTWAUAWCWEVSVQVRVTWAUBZWCWEBDCGRZISZVSWCVEVIVFVGDCQWEWIUCV
      EVFVGVKVPWBUDZVIVJVHVPWBUEZVEVFVGVKVPWBUFVEVFVGVKVPWBUGZWCCDVLVOVHVKWBUHU
      IADBCGHIKJLUJUKWCVMWHBIWCVEVGVIVMWHUPWJWLWKAGHCDJLULUMUNUQURWCVHVKVOVTWAW
      FVHVKVPWBUOVHVKVPWBUSVLVOVHVKWBUTWGVQVRVTWAVAABCDEFGHIJKLVBVCVD $.

    $( See TODO above $)
    $( Lemma for ~ 3dim1 .  (Contributed by NM, 25-Jul-2012.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    3dimlem3OLDN $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A )
           /\ ( R e. A /\ S e. A )
           /\ ( Q =/= R /\ -. T .<_ ( ( Q .\/ R ) .\/ S ) ) )
       /\ ( P =/= Q /\ -. P .<_ ( Q .\/ R )
           /\ P .<_ ( ( Q .\/ R ) .\/ S ) ) )
  -> ( P =/= Q /\ -. R .<_ ( P .\/ Q )
          /\ -. T .<_ ( ( P .\/ Q ) .\/ R ) ) ) $=
      ( wcel w3a wa wne co wbr wn syl simpr1 wi simpl11 simpl2l simpl12 simpl13
      simpr2 simpl3l necomd hlatexch2 syl131anc hlatjcom syl3anc breq2d sylibrd
      chlt wceq mtod simpl3r clat cbs hllat eqid atbase latjrot syl13anc simpr3
      cfv wb simpl2r hlatjcl hlexchb1 mpbid eqtr3d mtbird 3jca ) HUPMZBAMZCAMZN
      ZDAMZEAMZOZCDPZFCDGQZEGQZIRZSZOZNZBCPZBWEIRZSZBWFIRZNZOZWKDBCGQZIRZSFWQDG
      QZIRZSWJWKWMWNUAWPWRWLWJWKWMWNUGZWPWRBDCGQZIRZWLWPVQWAVRVSDCPWRXCUBVQVRVS
      WCWIWOUCZWAWBVTWIWOUDZVQVRVSWCWIWOUEZVQVRVSWCWIWOUFZWPCDWDWHVTWCWOUHUIADB
      CGHIKJLUJUKWPWEXBBIWPVQVSWAWEXBUQXDXGXEAGHCDJLULUMUNUOURWPWTWGWDWHVTWCWOU
      SWPWSWFFIWPWEBGQZWSWFWPHUTMZCHVAVHZMZDXJMZBXJMZXHWSUQWPVQXIXDHVBTWPVSXKXG
      AXJCHXJVCZLVDTWPWAXLXEAXJDHXNLVDTWPVRXMXFAXJBHXNLVDTXJGHCDBXNJVEVFWPWNXHW
      FUQZWJWKWMWNVGWPVQVRWBWEXJMZWMWNXOVIXDXFWAWBVTWIWOVJWPVQVSWAXPXDXGXEAXJGH
      CDXNJLVKUMXAAXJBEGHIWEXNKJLVLUKVMVNUNVOVP $.

    $( TODO - check if it is more efficient to eliminate this and
       use ~ 3dimlem4OLDN $)
    $( Lemma for ~ 3dim3 .  (Contributed by NM, 27-Jul-2012.) $)
    3dimlem4a $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
      /\ ( R e. A /\ S e. A ) /\ ( -. S .<_ ( Q .\/ R )
           /\ -. P .<_ ( Q .\/ R ) /\ -. P .<_ ( ( Q .\/ R ) .\/ S ) ) )
   -> -. S .<_ ( ( P .\/ Q ) .\/ R ) ) $=
      ( chlt wcel w3a wa co wbr wn syl atbase simp33 clat cbs wceq simp11 hllat
      cfv simp13 simp2l simp12 latjrot syl13anc breq2d wi simp2r latjcl syl3anc
      eqid simp31 hlexch1 syl131anc sylbird mtod ) GLMZBAMZCAMZNZDAMZEAMZOZECDF
      PZHQRZBVKHQRZBVKEFPHQZRZNZNZEBCFPDFPZHQZVNVGVJVLVMVOUAVQVSEVKBFPZHQZVNVQV
      TVREHVQGUBMZCGUCUGZMZDWCMZBWCMZVTVRUDVQVDWBVDVEVFVJVPUEZGUFSZVQVFWDVDVEVF
      VJVPUHAWCCGWCURZKTSZVQVHWEVGVHVIVPUIAWCDGWIKTSZVQVEWFVDVEVFVJVPUJZAWCBGWI
      KTSWCFGCDBWIIUKULUMVQVDVIVEVKWCMZVLWAVNUNWGVGVHVIVPUOWLVQWBWDWEWMWHWJWKWC
      FGCDWIIUPUQVGVJVLVMVOUSAWCEBFGHVKWIJIKUTVAVBVC $.

    $( Lemma for ~ 3dim1 .  (Contributed by NM, 25-Jul-2012.) $)
    3dimlem4 $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A )
       /\ ( R e. A /\ S e. A )
       /\ ( Q =/= R /\ -. S .<_ ( Q .\/ R ) ) )
     /\ ( P =/= Q /\ -. P .<_ ( Q .\/ R ) )
        /\ -. P .<_ ( ( Q .\/ R ) .\/ S ) )
  -> ( P =/= Q /\ -. R .<_ ( P .\/ Q )
         /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) ) $=
      ( wcel w3a wa wne co wbr wn simp2l wi chlt simp2r simp11 simp12 hlatexch2
      simp13 simp3l necomd syl131anc wceq hlatjcom syl3anc breq2d 3ad2ant1 mtod
      sylibrd simp13r simp3 3dimlem4a syl113anc 3jca ) GUALZBALZCALZMZDALZEALZN
      ZCDOZECDFPZHQRZNZMZBCOZBVJHQZRZNZBVJEFPHQRZMZVNDBCFPZHQZREVTDFPHQRZVMVNVP
      VRSVSWAVOVMVNVPVRUBZVMVQWAVOTVRVMWABDCFPZHQZVOVMVBVFVCVDDCOWAWETVBVCVDVHV
      LUCZVEVFVGVLSZVBVCVDVHVLUDVBVCVDVHVLUFZVMCDVEVHVIVKUGUHADBCFGHJIKUEUIVMVJ
      WDBHVMVBVDVFVJWDUJWFWHWGAFGCDIKUKULUMUPUNUOVSVEVHVKVPVRWBVEVHVLVQVRUCVEVH
      VLVQVRUDVIVKVEVHVQVRUQWCVMVQVRURABCDEFGHIJKUSUTVA $.

    $( See TODO above $)
    $( Lemma for ~ 3dim1 .  (Contributed by NM, 25-Jul-2012.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    3dimlem4OLDN $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A )
       /\ ( R e. A /\ S e. A )
       /\ ( Q =/= R /\ -. S .<_ ( Q .\/ R ) ) )
     /\ ( P =/= Q /\ -. P .<_ ( Q .\/ R ) )
        /\ -. P .<_ ( ( Q .\/ R ) .\/ S ) )
  -> ( P =/= Q /\ -. R .<_ ( P .\/ Q )
         /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) ) $=
      ( wcel w3a wa wne co wbr wn wi syl chlt simp2l simp2r hlatexch2 syl131anc
      simp11 simp12 simp13 simp3l necomd wceq hlatjcom syl3anc sylibrd 3ad2ant1
      breq2d mtod simp3 clat cbs cfv hllat eqid atbase latjrot syl13anc hlatjcl
      simp3r hlexch1 sylbird 3jca ) GUALZBALZCALZMZDALZEALZNZCDOZECDFPZHQRZNZMZ
      BCOZBVTHQZRZNZBVTEFPHQZRZMZWDDBCFPZHQZREWKDFPZHQZRWCWDWFWIUBWJWLWEWCWDWFW
      IUCWCWGWLWESWIWCWLBDCFPZHQZWEWCVLVPVMVNDCOWLWPSVLVMVNVRWBUFZVOVPVQWBUBZVL
      VMVNVRWBUGZVLVMVNVRWBUHZWCCDVOVRVSWAUIUJADBCFGHJIKUDUEWCVTWOBHWCVLVNVPVTW
      OUKWQWTWRAFGCDIKULUMUPUNUOUQWJWNWHWCWGWIURWCWGWNWHSWIWCWNEVTBFPZHQZWHWCXA
      WMEHWCGUSLZCGUTVAZLZDXDLZBXDLZXAWMUKWCVLXCWQGVBTWCVNXEWTAXDCGXDVCZKVDTWCV
      PXFWRAXDDGXHKVDTWCVMXGWSAXDBGXHKVDTXDFGCDBXHIVEVFUPWCVLVQVMVTXDLZWAXBWHSW
      QVOVPVQWBUCWSWCVLVNVPXIWQWTWRAXDFGCDXHIKVGUMVOVRVSWAVHAXDEBFGHVTXHJIKVIUE
      VJUOUQVK $.

    $d t u v w A $.  $d q t u v w .\/ $.  $d t u v w K $.
    $d q r s t u v w .<_ $.  $d q r s t u v w P $.
    $( Lemma for ~ 3dim1 .  (Contributed by NM, 26-Jul-2012.) $)
    3dim1lem5 $p |- ( ( ( u e. A /\ v e. A /\ w e. A )
     /\ ( P =/= u /\ -. v .<_ ( P .\/ u )
         /\ -. w .<_ ( ( P .\/ u ) .\/ v ) ) )
   -> E. q e. A E. r e. A E. s e. A
     ( P =/= q /\ -. r .<_ ( P .\/ q )
           /\ -. s .<_ ( ( P .\/ q ) .\/ r ) ) ) $=
      ( cv co wbr wn w3a notbid wne neeq2 oveq2 breq2d 3anbi123d breq1 3anbi23d
      weq oveq1d 3anbi3d rspc3ev ) EKOZUAZJOZEULFPZHQZRZIOZUOUNFPZHQZRZSECOZUAZ
      BOZEVBFPZHQZRZAOZVEVDFPZHQZRZSVCUNVEHQZRZURVEUNFPZHQZRZSVCVGURVIHQZRZSKJI
      VBVDVHDDDKCUHZUMVCUQVMVAVPULVBEUBVSUPVLVSUOVEUNHULVBEFUCZUDTVSUTVOVSUSVNU
      RHVSUOVEUNFVTUIUDTUEJBUHZVMVGVPVRVCWAVLVFUNVDVEHUFTWAVOVQWAVNVIURHUNVDVEF
      UCUDTUGIAUHZVRVKVCVGWBVQVJURVHVIHUFTUJUK $.

    $( Construct a 3-dimensional volume (height-4 element) on top of a given
       atom ` P ` .  (Contributed by NM, 25-Jul-2012.) $)
    3dim1 $p |- ( ( K e. HL /\ P e. A ) -> E. q e. A E. r e. A E. s e. A
     ( P =/= q /\ -. r .<_ ( P .\/ q )
          /\ -. s .<_ ( ( P .\/ q ) .\/ r ) ) ) $=
      ( vt vu vv vw wa co wbr wn w3a chlt wcel cv wne wrex 3dim0 adantr wi wceq
      simpl2 3dimlem1 3ad2antl3 3dim1lem5 syl2anc simp13 simp22 simp23 ad2antrr
      simpll1 simp21 simp32 simp33 simplr simpr 3dimlem2 syl112anc simp1 simp31
      3jca jca simplrl simplrr 3dimlem3 syl13anc simpl1 simpl21 simpl22 simpl31
      simpl32 3dimlem4 syl3anc pm2.61dan anassrs pm2.61dane 3exp impd rexlimdvv
      3expd imp43 rexlimdvva mpd ) DUAUBZBAUBZPZLUCZMUCZUDZNUCZWOWPCQZERSZOUCZW
      SWRCQZERSZTZOAUENAUEZMAUELAUEZBHUCZUDGUCZBXGCQZERSFUCXIXHCQERSTFAUEGAUEHA
      UEZWLXFWMACDEONMLIJKUFUGWNXEXJLMAAWNWOAUBZWPAUBZPPZXDXJNOAAXMWRAUBZXAAUBZ
      XDXJUHZWLWMXKXLXNXOXPUHUHZWLWMXKXLXQUHWLWMXKTZXLXNXOXPXRXLXNXOTZXDXJXRXSX
      DTZXJBWOXTBWOUIZPXSBWPUDWRBWPCQZERSXAYBWRCQERSTZXJXRXSXDYAUJXDXRYAYCXSABW
      OWPWRXACDEIJKUKULONMABCDEFGHIJKUMUNXTBWOUDZPZBWSERZXJYEYFPZXKXNXOTZYDWRBW
      OCQZERSXAYIWRCQERSTZXJXTYHYDYFXTXKXNXOWLWMXKXSXDUOZXRXLXNXOXDUPZXRXLXNXOX
      DUQZVIURYGXRXLWTXCTZYDYFYJXRXSXDYDYFUSXTYNYDYFXTXLWTXCXRXLXNXOXDUTZXRXSWQ
      WTXCVAXRXSWQWTXCVBZVIURXTYDYFVCYEYFVDABWOWPWRXACDEIJKVEVFONLABCDEFGHIJKUM
      UNXTYDYFSZXJXTYDYQPZPZBXBERZXJYSYTPZXKXLXOTZYDWPYIERSZXAYIWPCQZERSTZXJXTU
      UBYRYTXTXKXLXOYKYOYMVIURUUAXRXLXNPZWQXCPZTZYDYQYTUUEXTUUHYRYTXTXRUUFUUGXR
      XSXDVGXTXLXNYOYLVJXTWQXCXRXSWQWTXCVHYPVJVIURXTYDYQYTVKXTYDYQYTVLYSYTVDABW
      OWPWRXACDEIJKVMVNOMLABCDEFGHIJKUMUNYSYTSZPZXKXLXNTZYDUUCWRUUDERSTZXJXTUUK
      YRUUIXTXKXLXNYKYOYLVIURUUJXRUUFWQWTPZTZYRUUIUULYSUUNUUIYSXRUUFUUMXRXSXDYR
      VOYSXLXNXLXNXOXRXDYRVPXLXNXOXRXDYRVQVJYSWQWTWQWTXCXRXSYRVRWQWTXCXRXSYRVSV
      JVIUGXTYRUUIVCYSUUIVDABWOWPWRCDEIJKVTWANMLABCDEFGHIJKUMUNWBWCWBWDWEWHWEWI
      WFWGWJWK $.

    $d r s u v w Q $.
    $( Construct 2 new layers on top of 2 given atoms.  (Contributed by NM,
       27-Jul-2012.) $)
    3dim2 $p |- ( ( K e. HL /\ P e. A /\ Q e. A )
       -> E. r e. A E. s e. A
          ( -. r .<_ ( P .\/ Q ) /\ -. s .<_ ( ( P .\/ Q ) .\/ r ) ) ) $=
      ( wcel w3a cv co wbr wn wa wceq notbid vu vv vw chlt wne 3dim1 3adant2 wi
      simpl21 simpl22 simp31 necomd adantr oveq1 simp11 simp13 hlatjidm syl2anc
      wrex sylan9eqr breq2d wb cal hlatl syl simp21 atncmp syl3anc bitrd mpbird
      simpl32 oveq1d mtbird breq1 oveq2 anbi12d anbi2d rspc2ev syl112anc simp22
      simp23 jca ad2antrr simp32 simp33 3jca simplr simpr 3dimlem2 3simpc 3expa
      simpll1 ad3antrrr simpllr 3dimlem3 syl13anc 3dimlem4 syl121anc pm2.61dane
      simp1 pm2.61dan 3exp 3expd imp32 rexlimdv rexlimdvva mpd ) EUDLZBALZCALZM
      ZCUANZUEZUBNZCXLDOZFPZQZUCNZXOXNDOZFPQZMZUCAUSZUBAUSUAAUSZHNZBCDOZFPZQZGN
      ZYEYDDOZFPZQZRZGAUSHAUSZXHXJYCXIACDEFUCUBUAIJKUFUGXKYBYMUAUBAAXKXLALZXNAL
      ZRZRYAYMUCAXKYNYOXRALZYAYMUHZUHXKYNYOYQYRXKYNYOYQMZYAYMXKYSYAMZYMBCYTBCSZ
      RZYNYOXLYEFPZQZXNYEXLDOZFPZQZYMYNYOYQXKYAUUAUIYNYOYQXKYAUUAUJUUBUUDXLCUEZ
      YTUUHUUAYTCXLXKYSXMXQXTUKZULUMUUBUUDXLCFPZQZUUHUUBUUCUUJUUBYECXLFUUAYTYEC
      CDOZCBCCDUNYTXHXJUULCSXHXIXJYSYAUOZXHXIXJYSYAUPZADECIKUQURUTZVATYTUUKUUHV
      BZUUAYTEVCLZYNXJUUPYTXHUUQUUMEVDVEXKYNYOYQYAVFZUUNAXLCEFJKVGVHUMVIVJUUBUU
      FXPXMXQXTXKYSUUAVKUUBUUEXOXNFUUBYECXLDUUOVLVAVMYLUUDUUGRZUUDYHUUEFPZQZRZH
      GXLXNAAYDXLSZYGUUDYKUVAUVCYFUUCYDXLYEFVNTUVCYJUUTUVCYIUUEYHFYDXLYEDVOVATV
      PZYHXNSZUVAUUGUUDUVEUUTUUFYHXNUUEFVNTVQVRZVSYTBCUEZRZBXOFPZYMUVHUVIRZYOYQ
      RZXNYEFPZQZXRYEXNDOZFPZQZRZYMYTUVKUVGUVIYTYOYQXKYNYOYQYAVTZXKYNYOYQYAWAZW
      BWCUVJUVGUVMUVPMZUVQUVJXKYNXQXTMZUVGUVIUVTXKYSYAUVGUVIWLYTUWAUVGUVIYTYNXQ
      XTUURXKYSXMXQXTWDZXKYSXMXQXTWEZWFWCYTUVGUVIWGUVHUVIWHABCXLXNXRDEFIJKWIVSU
      VGUVMUVPWJVEYOYQUVQYMYLUVQUVMYHUVNFPZQZRHGXNXRAAYDXNSZYGUVMYKUWEUWFYFUVLY
      DXNYEFVNTUWFYJUWDUWFYIUVNYHFYDXNYEDVOVATVPYHXRSZUWEUVPUVMUWGUWDUVOYHXRUVN
      FVNTVQVRWKURUVHUVIQZRZBXSFPZYMUWIUWJRZYNYQRZUUDXRUUEFPZQZRZYMYTUWLUVGUWHU
      WJYTYNYQUURUVSWBWMUWKUVGUUDUWNMZUWOUWKXKYPXMXTRZMZUVGUWHUWJUWPYTUWRUVGUWH
      UWJYTXKYPUWQXKYSYAWTZYTYNYOUURUVRWBZYTXMXTUUIUWCWBWFWMYTUVGUWHUWJWNUVHUWH
      UWJWGUWIUWJWHABCXLXNXRDEFIJKWOWPUVGUUDUWNWJVEYNYQUWOYMYLUWOUVBHGXLXRAAUVD
      UWGUVAUWNUUDUWGUUTUWMYHXRUUEFVNTVQVRWKURUWIUWJQZRZYPUUSYMYTYPUVGUWHUXAUWT
      WMUXBUVGUUDUUGMZUUSUXBXKYPXMXQRZMZUVGUWHUXAUXCYTUXEUVGUWHUXAYTXKYPUXDUWSU
      WTYTXMXQUUIUWBWBWFWMYTUVGUWHUXAWNUVHUWHUXAWGUWIUXAWHABCXLXNDEFIJKWQWRUVGU
      UDUUGWJVEYNYOUUSYMUVFWKURXAXAWSXBXCXDXEXFXG $.

    $d s v w R $.
    $( Construct a new layer on top of 3 given atoms.  (Contributed by NM,
       27-Jul-2012.) $)
    3dim3 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) )
       -> E. s e. A -. s .<_ ( ( P .\/ Q ) .\/ R ) ) $=
      ( vv wcel wa co wbr wn wceq syl2anc ad2antrr vw chlt wrex 3dim2 3adant3r1
      w3a cv simpl2l simp3l simp1l simp1r2 hlatjidm oveq1d breq2d mtbird notbid
      oveq1 biimparc sylan breq1 rspcev wne simp2l hlatjass 3ad2ant1 cbs cfv wb
      clat hllat syl simp1r1 eqid atbase simp1r3 hlatjcl syl3anc 3jca latleeqj1
      adantr biimpa eqtrd simpl2r ad3antrrr jca simpl3r simpr 3dimlem3a simpl3l
      simplr syl113anc 3dimlem4a pm2.61dan pm2.61dane 3exp rexlimdvv mpd ) FUBM
      ZBAMZCAMZDAMZUFZNZLUGZCDEOZGPZQZUAUGZXEXDEOZGPQZNZUAAUCLAUCZHUGZBCEOZDEOZ
      GPZQZHAUCZWRWTXAXLWSACDEFGUALIJKUDUEXCXKXRLUAAAXCXDAMZXHAMZNZXKXRXCYAXKUF
      ZXRBCYBBCRZNXSXDXOGPZQZXRXSXTXCXKYCUHYBXDCCEOZDEOZGPZQZYCYEYBYHXFXCYAXGXJ
      UIZYBYGXEXDGYBYFCDEYBWRWTYFCRWRXBYAXKUJZWSWTXAWRYAXKUKZAEFCIKULSUMUNUOYCY
      EYIYCYDYHYCXOYGXDGYCXNYFDEBCCEUQUMUNUPURUSXQYEHXDAXMXDRXPYDXMXDXOGUTUPVAZ
      SYBBCVBZNZBXEGPZXRYOYPNZXSYEXRYBXSYNYPXCXSXTXKVCZTYQYDXFYBXGYNYPYJTYQXOXE
      XDGYQXOBXEEOZXEYBXOYSRZYNYPXCYAYTXKABCDEFIKVDVETYOYPYSXERZYOFVIMZBFVFVGZM
      ZXEUUCMZUFZYPUUAVHYBUUFYNYBUUBUUDUUEYBWRUUBYKFVJVKYBWSUUDWSWTXAWRYAXKVLZA
      UUCBFUUCVMZKVNVKYBWRWTXAUUEYKYLWSWTXAWRYAXKVOZAUUCEFCDUUHIKVPVQVRVTUUCEFG
      BXEUUHJIVSVKWAWBUNUOYMSYOYPQZNZBXIGPZXRUUKUULNZXTXHXOGPZQZXRYOXTUUJUULXSX
      TXCXKYNWCTUUMWRWSWTUFZXAXSNZXJUUJUULUUOYBUUPYNUUJUULYBWRWSWTYKUUGYLVRZWDY
      BUUQYNUUJUULYBXAXSUUIYRWEZWDYOXJUUJUULXGXJXCYAYNWFTYOUUJUULWJUUKUULWGABCD
      XDXHEFGIJKWHWKXQUUOHXHAXMXHRXPUUNXMXHXOGUTUPVASUUKUULQZNZXSYEXRYOXSUUJUUT
      XSXTXCXKYNUHTUVAUUPUUQXGUUJUUTYEYBUUPYNUUJUUTUURWDYBUUQYNUUJUUTUUSWDYOXGU
      UJUUTXGXJXCYAYNWITYOUUJUUTWJUUKUUTWGABCDXDEFGIJKWLWKYMSWMWMWNWOWPWQ $.
  $}

  ${
    $d q r s A $.  $d q r s .\/ $.  $d q r s K $.  $d q r s P $.
    2dim.j $e |- .\/ = ( join ` K ) $.
    2dim.c $e |- C = ( <o ` K ) $.
    2dim.a $e |- A = ( Atoms ` K ) $.
    $( Generate a height-3 element (2-dimensional plane) from an atom.
       (Contributed by NM, 3-May-2012.) $)
    2dim $p |- ( ( K e. HL /\ P e. A ) -> E. q e. A E. r e. A
         ( P C ( P .\/ q ) /\ ( P .\/ q ) C ( ( P .\/ q ) .\/ r ) ) ) $=
      ( vs wcel wa cv wne wbr wn wrex wb syl3anc chlt cple cfv w3a 3dim1 df-3an
      co eqid rexbii r19.42v bitri simplbi cal simplll hlatl syl simplr simpllr
      atncmp necom syl6rbb cbs atbase cvr1 bitrd hlatjcl simpr anbi12d reximdva
      syl5ib mpd ) EUALZCALZMZCGNZOZFNZCVODUGZEUBUCZPQZKNVRVQDUGZVSPQZUDZKARZFA
      RZGARCVRBPZVRWABPZMZFARZGARACDEVSKFGHVSUHZJUEVNWEWIGAVNVOALZMZWDWHFAWDVPV
      TMZWLVQALZMZWHWDWMWBKARZWDWMWBMZKARWMWPMWCWQKAVPVTWBUFUIWMWBKAUJUKULWOVPW
      FVTWGWOVPVOCVSPQZWFWOWRVOCOZVPWOEUMLZWKVMWRWSSWOVLWTVLVMWKWNUNZEUOUPVNWKW
      NUQZVLVMWKWNURZAVOCEVSWJJUSTVOCUTVAWOVLCEVBUCZLZWKWRWFSXAWOVMXEXCAXDCEXDU
      HZJVCUPXBAXDBVODEVSCXFWJHIJVDTVEWOVLVRXDLZWNVTWGSXAWOVLVMWKXGXAXCXBAXDDEC
      VOXFHJVFTWLWNVGAXDBVQDEVSVRXFWJHIJVDTVHVJVIVIVK $.

    $d r C $.
    $( An atom is covered by a height-2 element (1-dimensional line).
       (Contributed by NM, 3-May-2012.)  (New usage is discouraged.) $)
    1dimN $p |- ( ( K e. HL /\ P e. A ) -> E. q e. A P C ( P .\/ q ) ) $=
      ( vr chlt wcel wa cv co wbr wrex 2dim r19.42v simplbi reximi syl ) EKLCAL
      MCCFNDOZBPZUCUCJNDOBPZMJAQZFAQUDFAQABCDEJFGHIRUFUDFAUFUDUEJAQUDUEJASTUAUB
      $.
  $}

  ${
    1cvrco.b $e |- B = ( Base ` K ) $.
    1cvrco.u $e |- .1. = ( 1. ` K ) $.
    1cvrco.o $e |- ._|_ = ( oc ` K ) $.
    1cvrco.c $e |- C = ( <o ` K ) $.
    1cvrco.a $e |- A = ( Atoms ` K ) $.
    $( The orthocomplement of an element covered by 1 is an atom.  (Contributed
       by NM, 7-May-2012.) $)
    1cvrco $p |- ( ( K e. HL /\ X e. B ) ->
      ( X C .1. <-> ( ._|_ ` X ) e. A ) ) $=
      ( chlt wcel wa wbr cfv wb adantr syl cp0 cops hlop simpr cvrcon3b syl3anc
      op1cl wceq eqid opoc1 breq1d opoccl sylan biantrurd 3bitrd isat bitr4d )
      EMNZGBNZOZGDCPZGFQZBNZEUAQZVBCPZOZVBANZUTVADFQZVBCPZVEVFUTEUBNZUSDBNZVAVI
      RURVJUSEUCZSZURUSUDUTVJVKVMBDEHIUGTBCEFGDHJKUEUFUTVHVDVBCUTVJVHVDUHVMDEFV
      DVDUIZIJUJTUKUTVCVEURVJUSVCVLBEFGHJULUMUNUOURVGVFRUSABCMVBEVDHVNKLUPSUQ
      $.
  $}

  ${
    $d p q r A $.  $d p q r B $.  $d p q r C $.  $d p q r K $.  $d p q r .< $.
    $d p q r .1. $.  $d p q r X $.
    1cvratex.b $e |- B = ( Base ` K ) $.
    1cvratex.s $e |- .< = ( lt ` K ) $.
    1cvratex.u $e |- .1. = ( 1. ` K ) $.
    1cvratex.c $e |- C = ( <o ` K ) $.
    1cvratex.a $e |- A = ( Atoms ` K ) $.
    $( There exists an atom less than an element covered by 1.  (Contributed by
       NM, 7-May-2012.)  (Revised by Mario Carneiro, 13-Jun-2014.) $)
    1cvratex $p |- ( ( K e. HL /\ X e. B /\ X C .1. ) -> E. p e. A p .< X ) $=
      ( wcel wbr cfv wa syl2anc syl syl3anc vq vr chlt w3a coc cv co wrex simp1
      cjn eqid 1cvrco biimp3a 2dim cple cp0 simp11 cops hlop clat simp12 opoccl
      hllat simp2l atbase latjcl simp2r op0le cvrlt syl31anc wb opltcon3b mpbid
      wne simp3r cpo wi hlpos op0cl plelttr syl13anc mp2and pltne necomd simp3l
      atle wceq opococ breqtrd adantr simpl11 adantl simpl12 reximdva rexlimdvv
      mpd mpan2d 3exp ) FUCNZGBNZGECOZUDZGFUEPZPZXDUAUFZFUJPZUGZCOZXGXGUBUFZXFU
      GZCOZQZUBAUHUAAUHZHUFZGDOZHAUHZXBWSXDANZXMWSWTXAUIWSWTXAXQABCEFXCGIKXCUKZ
      LMULUMACXDXFFUBUAXFUKZLMUNRXBXLXPUAUBAAXBXEANZXIANZQZXLXPXBYBXLUDZXNXGXCP
      ZFUOPZOZHAUHZXPYCWSYDBNZYDFUPPZVNYGWSWTXAYBXLUQZYCFURNZXGBNZYHYCWSYKYJFUS
      SZYCFUTNZXDBNZXEBNZYLYCWSYNYJFVCSZYCYKWTYOYMWSWTXAYBXLVAZBFXCGIXRVBRZYCXT
      YPXBXTYAXLVDABXEFIMVESBXFFXDXEIXSVFTZBFXCXGIXRVBRZYCYIYDYCYIYDDOZYIYDVNZY
      CYIXJXCPZYEOZUUDYDDOZUUBYCYKUUDBNZUUEYMYCYKXJBNZUUGYMYCYNYLXIBNZUUHYQYTYC
      YAUUIXBXTYAXLVGABXIFIMVESBXFFXGXIIXSVFTZBFXCXJIXRVBRZBFYEUUDYIIYEUKZYIUKZ
      VHRYCXGXJDOZUUFYCWSYLUUHXKUUNYJYTUUJXBYBXHXKVOUCBCDFXGXJIJLVIVJYCYKYLUUHU
      UNUUFVKYMYTUUJBDFXCXGXJIJXRVLTVMYCFVPNZYIBNZUUGYHUUEUUFQUUBVQYCWSUUOYJFVR
      ZSYCYKUUPYMBFYIIUUMVSSZUUKUUABDFYEYIUUDYDIUULJVTWAWBYCWSUUPYHUUBUUCVQYJUU
      RUUAUCBBDFYIYDJWCTWPWDABFYEYDYIHIUULUUMMWFTYCYFXOHAYCXNANZQZYFYDGDOZXOYCU
      VAUUSYCYDXDXCPZGDYCXDXGDOZYDUVBDOZYCWSYOYLXHUVCYJYSYTXBYBXHXKWEUCBCDFXDXG
      IJLVIVJYCYKYOYLUVCUVDVKYMYSYTBDFXCXDXGIJXRVLTVMYCYKWTUVBGWGYMYRBFXCGIXRWH
      RWIWJUUTUUOXNBNZYHWTYFUVAQXOVQUUTWSUUOWSWTXAYBXLUUSWKUUQSUUSUVEYCABXNFIMV
      EWLYCYHUUSUUAWJWSWTXAYBXLUUSWMBDFYEXNYDGIUULJVTWAWQWNWPWRWOWP $.
  $}

  ${
    $d q A $.  $d q B $.  $d q C $.  $d q K $.  $d q .<_ $.  $d q P $.
    $d q .< $.  $d q .1. $.  $d q X $.
    1cvratlt.b $e |- B = ( Base ` K ) $.
    1cvratlt.l $e |- .<_ = ( le ` K ) $.
    1cvratlt.s $e |- .< = ( lt ` K ) $.
    1cvratlt.u $e |- .1. = ( 1. ` K ) $.
    1cvratlt.c $e |- C = ( <o ` K ) $.
    1cvratlt.a $e |- A = ( Atoms ` K ) $.
    $( An atom less than or equal to an element covered by 1 is less than the
       element.  (Contributed by NM, 7-May-2012.) $)
    1cvratlt $p |- ( ( ( K e. HL /\ P e. A /\ X e. B )
      /\ ( X C .1. /\ P .<_ X ) ) -> P .< X ) $=
      ( vq wcel w3a wbr wa chlt cv simpl1 simpl3 simprl syl3anc simp1l1 simp1l2
      wrex 1cvratex simp2 simp1l3 simp1rr simp3 atlelt syl132anc rexlimdv3a mpd
      ) GUAQZDAQZIBQZRZIFCSZDIHSZTZTZPUBZIESZPAUIZDIESZVFUSVAVCVIUSUTVAVEUCUSUT
      VAVEUDVBVCVDUEABCEFGIPJLMNOUJUFVFVHVJPAVFVGAQZVHRUSUTVKVAVDVHVJUSUTVAVEVK
      VHUGUSUTVAVEVKVHUHVFVKVHUKUSUTVAVEVKVHULVCVDVBVKVHUMVFVKVHUNABDVGEGHIJKLO
      UOUPUQUR $.
  $}

  ${
    1cvrjat.b $e |- B = ( Base ` K ) $.
    1cvrjat.l $e |- .<_ = ( le ` K ) $.
    1cvrjat.j $e |- .\/ = ( join ` K ) $.
    1cvrjat.u $e |- .1. = ( 1. ` K ) $.
    1cvrjat.c $e |- C = ( <o ` K ) $.
    1cvrjat.a $e |- A = ( Atoms ` K ) $.
    $( An element covered by the lattice unit, when joined with an atom not
       under it, equals the lattice unit.  (Contributed by NM, 30-Apr-2012.) $)
    1cvrjat $p |- ( ( ( K e. HL /\ X e. B /\ P e. A )
        /\ ( X C .1. /\ -. P .<_ X ) ) -> ( X .\/ P ) = .1. ) $=
      ( wcel wbr cfv wb syl chlt w3a wn wa co coc wceq simprr cvr1 adantr mpbid
      cp0 cops simpl1 hlop simpl2 clat hllat simpl3 atbase latjcl eqid cvrcon3b
      syl3anc cal hlatl opoccl syl2anc opoc1 3syl op1cl eqbrtrrd isat mpbir2and
      simprl atcvreq0 fveq2d opococ opoc0 3eqtr3d ) GUAPZIBPZDAPZUBZIECQZDIHQUC
      ZUDZUDZIDFUEZGUFRZRZWJRZGULRZWJRZWIEWHWKWMWJWHWKIWJRZCQZWKWMUGZWHIWICQZWP
      WHWFWRWDWEWFUHWDWFWRSWGABCDFGHIJKLNOUIUJUKWHGUMPZWBWIBPZWRWPSWHWAWSWAWBWC
      WGUNZGUOZTZWAWBWCWGUPZWHGUQPZWBDBPZWTWHWAXEXAGURTXDWHWCXFWAWBWCWGUSABDGJO
      UTTBFGIDJLVAVDZBCGWJIWIJWJVBZNVCVDUKWHGVEPZWKBPZWOAPZWPWQSWHWAXIXAGVFTWHW
      SWTXJXCXGBGWJWIJXHVGVHWHXKWOBPZWMWOCQZWHWSWBXLXCXDBGWJIJXHVGVHWHEWJRZWMWO
      CWHWAWSXNWMUGXAXBEGWJWMWMVBZMXHVIVJWHWEXNWOCQZWDWEWFVOWHWSWBEBPZWEXPSXCXD
      WHWAWSXQXAXBBEGJMVKVJBCGWJIEJXHNVCVDUKVLWHWAXKXLXMUDSXAABCUAWOGWMJXONOVMT
      VNABCWOGHWKWMJKXONOVPVDUKVQWHWSWTWLWIUGXCXGBGWJWIJXHVRVHWHWAWSWNEUGXAXBEG
      WJWMXOMXHVSVJVT $.
  $}

  ${
    1cvrat.b $e |- B = ( Base ` K ) $.
    1cvrat.l $e |- .<_ = ( le ` K ) $.
    1cvrat.j $e |- .\/ = ( join ` K ) $.
    1cvrat.m $e |- ./\ = ( meet ` K ) $.
    1cvrat.u $e |- .1. = ( 1. ` K ) $.
    1cvrat.c $e |- C = ( <o ` K ) $.
    1cvrat.a $e |- A = ( Atoms ` K ) $.
    $( Create an atom under an element covered by the lattice unit.  Part of
       proof of Lemma B in [Crawley] p. 112.  (Contributed by NM,
       30-Apr-2012.) $)
    1cvrat $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ X e. B )
  /\ ( P =/= Q /\ X C .1. /\ -. P .<_ X ) ) -> ( ( P .\/ Q ) ./\ X ) e. A ) $=
      ( wcel co chlt w3a wne wbr wn clat wceq 3ad2ant1 simp21 atbase syl simp22
      hllat latjcom syl3anc oveq1d latjcl simp23 eqtrd simp1 3jca simp31 necomd
      latmcom simp33 cops ople1 syl2anc simp32 1cvrjat syl32anc breqtrrd cvrat3
      hlop wa imp syl23anc eqeltrd ) HUASZDASZEASZKBSZUBZDEUCZKFCUDZDKIUDUEZUBZ
      UBZDEGTZKJTZKEDGTZJTZAWHWJWKKJTZWLWHWIWKKJWHHUFSZDBSZEBSZWIWKUGVSWCWNWGHU
      MUHZWHVTWOVSVTWAWBWGUIZABDHLRUJUKZWHWAWPVSVTWAWBWGULZABEHLRUJUKZBGHDELNUN
      UOUPWHWNWKBSZWBWMWLUGWQWHWNWPWOXBWQXAWSBGHEDLNUQUOVSVTWAWBWGURZBHJWKKLOVD
      UOUSWHVSWBWAVTUBZEDUCZWFEKDGTZIUDZWLASZVSWCWGUTZWHWBWAVTXCWTWRVAWHDEVSWCW
      DWEWFVBVCVSWCWDWEWFVEZWHEFXFIWHHVFSZWPEFIUDVSWCXKWGHVNUHXABFHIELMPVGVHWHV
      SWBVTWEWFXFFUGXIXCWRVSWCWDWEWFVIXJABCDFGHIKLMNPQRVJVKVLVSXDVOXEWFXGUBXHAB
      EDGHIJKLMNORVMVPVQVR $.
  $}

  ${
    ps1.l $e |- .<_ = ( le ` K ) $.
    ps1.j $e |- .\/ = ( join ` K ) $.
    ps1.a $e |- A = ( Atoms ` K ) $.
    $( The join of two atoms ` R .\/ S ` (specifying a projective geometry
       line) is determined uniquely by any two atoms (specifying two points)
       less than or equal to that join.  Part of Lemma 16.4 of [MaedaMaeda]
       p. 69, showing projective space postulate PS1 in [MaedaMaeda] p. 67.
       (Contributed by NM, 15-Nov-2011.) $)
    ps-1 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ P =/= Q )
            /\ ( R e. A /\ S e. A ) )
     -> ( ( P .\/ Q ) .<_ ( R .\/ S ) <-> ( P .\/ Q ) = ( R .\/ S ) ) ) $=
      ( wcel wa co wbr wceq wi wb syl3anc hlatjcl chlt wne oveq1 breq2d imbi12d
      w3a eqeq2d eqcoms simp3 simp1 simp21 hlatjcom 3ad2ant1 clat cbs cfv hllat
      simp3l eqid atbase syl simp22 simp3r latjle12 simpl syl6bir adantr simpl1
      syl13anc simpl21 simpl3r simpl3l simpr hlatexchb1 syl131anc sylibd 3impia
      breqtrrd 3expia simp23 necomd syl5ib sylbird syld pm2.61ne latref syl2anc
      eqtrd breq2 syl5ibcom impbid ) GUALZBALZCALZBCUBZUFZDALZEALZMZUFZBCFNZDEF
      NZHOZXAXBPZWTXCXDQZXABEFNZHOZXAXFPZQZBDXEXIRDBDBPZXCXGXDXHXJXBXFXAHDBEFUC
      ZUDXJXBXFXAXKUGUEUHWTBDUBZXCXDWTXLXCUFZXABDFNZXBWTXLXCXAXNPZWTXLMZXCXAXNH
      OZXOWTXLXCXQXMXAXBXNHWTXLXCUIXMXNDBFNZXBWTXLXNXRPZXCWTWLWMWQXSWLWPWSUJZWL
      WMWNWOWSUKZWLWPWQWRURZAFGBDJKULSUMWTXLXCXRXBPZXPXCBXBHOZYCWTXCYDQXLWTXCYD
      CXBHOZMZYDWTGUNLZBGUOUPZLZCYHLZXBYHLZYFXCRWLWPYGWSGUQUMZWTWMYIYAAYHBGYHUS
      ZKUTVAZWTWNYJWLWMWNWOWSVBZAYHCGYMKUTVAZWTWLWQWRYKXTYBWLWPWQWRVCZAYHFGDEYM
      JKTSYHFGHBCXBYMIJVDVIYDYEVEVFVGXPWLWMWRWQXLYDYCRWLWPWSXLVHWMWNWOWLWSXLVJW
      QWRWLWPXLVKWQWRWLWPXLVLWTXLVMABEDFGHIJKVNVOVPVQWHZVRVSWTXQXOQXLWTXQBXNHOZ
      CXNHOZMZXOWTYGYIYJXNYHLZUUAXQRYLYNYPWTWLWMWQUUBXTYAYBAYHFGBDYMJKTSYHFGHBC
      XNYMIJVDVIUUAYTWTXOYSYTVMWTWLWNWQWMCBUBZYTXORXTYOYBYAWTBCWLWMWNWOWSVTWAZA
      CDBFGHIJKVNVOWBWCVGWDVQYRWHVSWTXGCXFHOZXHWTXGBXFHOZUUEMZUUEWTYGYIYJXFYHLZ
      UUGXGRYLYNYPWTWLWMWRUUHXTYAYQAYHFGBEYMJKTSYHFGHBCXFYMIJVDVIUUFUUEVMVFWTWL
      WNWRWMUUCUUEXHRXTYOYQYAUUDACEBFGHIJKVNVOVPWEWTXAXAHOZXDXCWTYGXAYHLZUUIYLW
      TWLWMWNUUJXTYAYOAYHFGBCYMJKTSYHGHXAYMIWFWGXAXBXAHWIWJWK $.

    $d u A $.  $d u .\/ $.  $d u K $.  $d u .<_ $.  $d u P $.  $d u Q $.
    $d u R $.  $d u S $.  $d u T $.
    $( Lattice analogue for the projective geometry axiom, "if a line
       intersects two sides of a triangle at different points then it also
       intersects the third side."  Projective space condition PS2 in
       [MaedaMaeda] p. 68 and part of Theorem 16.4 in [MaedaMaeda] p. 69.
       (Contributed by NM, 1-Dec-2011.) $)
    ps-2 $p |- ( ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
           /\ ( S e. A /\ T e. A ) ) /\ ( ( -. P .<_ ( Q .\/ R ) /\ S =/= T )
           /\ ( S .<_ ( P .\/ Q ) /\ T .<_ ( Q .\/ R ) ) ) )
        -> E. u e. A ( u .<_ ( P .\/ R ) /\ u .<_ ( S .\/ T ) ) ) $=
      ( wcel wa co wbr wi syl3anc syl13anc chlt w3a wn wne cv wrex wceq simpl21
      simp1 simp21 simp23 hlatlej1 adantr simp3r oveq1 syl5ibrcom breq1 anbi12d
      breq2d imp rspcev syl12anc a1d cp0 cfv cplt ccvr cops hlop 3ad2ant1 op0cl
      cbs eqid syl atbase atcvr0 syl2anc cvrlt syl31anc hlpos clat hllat latjcl
      cpo pltletr mp2and pltne mpd necomd wb hlatl simp3l atncmp simp22 hlexch1
      cal 3expia sylbird imp32 latjlej1 lattr expdimp adantrl hlatj32 mpbid jca
      adantrrr adantrrl ex cvrat4 syld impl adantrlr necom syl6bb simpl3r simpr
      simpl1 an32s anim2d reximdva ad2ant2rl adantrr pm2.61dane ) IUANZCBNZDBNZ
      EBNZUBZFBNZGBNZOZUBZCDEHPZJQUCZFGUDZOZFCDHPJQZGYNJQZOZOZAUEZCEHPZJQZUUBFG
      HPZJQZOZABUFZYMUUAUUHRFCYMFCUGZOZUUHUUAUUJYFCUUCJQZCUUEJQZUUHYFYGYHYEYLUU
      IUHYMUUKUUIYMYEYFYHUUKYEYIYLUIZYEYFYGYHYLUJZYEYFYGYHYLUKZBCEHIJKLMULSZUMY
      MUUIUULYMUULUUICCGHPZJQZYMYEYFYKUURUUMUUNYEYIYJYKUNZBCGHIJKLMULSUUIUUEUUQ
      CJFCGHUOUSUPUTUUGUUKUULOACBUUBCUGUUDUUKUUFUULUUBCUUCJUQUUBCUUEJUQURVAVBVC
      YMFCUDZOZUUAUUHUVAUUAOUUDGFUUBHPJQZOZABUFZUUHUVAYOYTUVDYPYMUUTYOYTOZUVDYM
      UUTUVEOZUUCIVDVEZUDZGUUCFHPZJQZOZUVDYMUVFUVKYMUUTYTUVKYOYMUUTYTOZOZUVHUVJ
      YMUVHUVLYMUVGUUCYMUVGUUCIVFVEZQZUVGUUCUDZYMUVGCUVNQZUUKUVOYMYEUVGIVLVEZNZ
      CUVRNZUVGCIVGVEZQZUVQUUMYMIVHNZUVSYEYIUWCYLIVIVJUVRIUVGUVRVMZUVGVMZVKVNZY
      MYFUVTUUNBUVRCIUWDMVOVNZYMYEYFUWBUUMUUNBUWAUACIUVGUWEUWAVMZMVPVQUAUVRUWAU
      VNIUVGCUWDUVNVMZUWHVRVSUUPYMIWDNZUVSUVTUUCUVRNZUVQUUKOUVORYEYIUWJYLIVTVJU
      WFUWGYMIWANZUVTEUVRNZUWKYEYIUWLYLIWBVJZUWGYMYHUWMUUOBUVREIUWDMVOVNZUVRHIC
      EUWDLWCSZUVRUVNIJUVGCUUCUWDKUWIWETWFYMYEUVSUWKUVOUVPRUUMUWFUWPUAUVRUVRUVN
      IUVGUUCUWIWGSWHWIUMUVMGCFHPZEHPZJQZUVJUVMYNUWRJQZUWSYMUUTYRUWTYSYMUUTYROZ
      ODUWQJQZUWTYMUUTYRUXBYMUUTFCJQUCZYRUXBRZYMIWPNZYJYFUXCUUTWJYEYIUXEYLIWKVJ
      ZYEYIYJYKWLZUUNBFCIJKMWMSYMYEYJYGUVTUXCUXDRUUMUXGYEYFYGYHYLWNZUWGYEYJYGUV
      TUBUXCUXDBUVRFDHIJCUWDKLMWOWQTWRWSYMUXBUWTRZUXAYMUWLDUVRNZUWQUVRNZUWMUXIU
      WNYMYGUXJUXHBUVRDIUWDMVOVNZYMUWLUVTFUVRNZUXKUWNUWGYMYJUXMUXGBUVRFIUWDMVOV
      NZUVRHICFUWDLWCSZUWOUVRHIJDUWQEUWDKLWTTUMWHXGYMYTUWTUWSRZUUTYMYSUXPYRYMYS
      UWTUWSYMUWLGUVRNZYNUVRNZUWRUVRNZYSUWTOUWSRUWNYMYKUXQUUSBUVRGIUWDMVOVNYMUW
      LUXJUWMUXRUWNUXLUWOUVRHIDEUWDLWCSYMUWLUXKUWMUXSUWNUXOUWOUVRHIUWQEUWDLWCSU
      VRIJGYNUWRUWDKXATXBXCXCWHYMUWSUVJWJUVLYMUWRUVIGJYMYEYFYJYHUWRUVIUGUUMUUNU
      XGUUOBCFEHILMXDTUSUMXEXFXHXIYMYEUWKYKYJUVKUVDRUUMUWPUUSUXGBUVRGFHIJUUCUVG
      AUWDKLUWEMXJTXKXLXMUVAYQUVDUUHRZYTYMYPUXTUUTYOYMYPOZUVCUUGABUYAUUBBNZOUVB
      UUFUUDYMUYBYPUVBUUFRZYMUYBOZYPUYCUYDYPGFJQUCZUYCYMUYEYPWJUYBYMUYEGFUDZYPY
      MUXEYKYJUYEUYFWJUXFUUSUXGBGFIJKMWMSGFXNXOUMUYDYEYKUYBUXMUYEUYCRYEYIYLUYBX
      RYJYKYEYIUYBXPYMUYBXQYMUXMUYBUXNUMYEYKUYBUXMUBUYEUYCBUVRGUUBHIJFUWDKLMWOW
      QTWRUTXSXTYAYBYCWHXIYDUT $.

    $( Two atoms are different if their join majorizes the join of two
       different atoms.  (Contributed by NM, 4-Jun-2013.) $)
    2atjlej $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ P =/= Q )
            /\ ( R e. A /\ S e. A /\ ( P .\/ Q ) .<_ ( R .\/ S ) ) )
      -> R =/= S ) $=
      ( wcel wne w3a co wn wb mpbid lnnat syl3anc chlt wceq simp33 simp1 simp21
      wbr simp22 simp23 simp31 simp32 ps-1 syl132anc eqneltrrd mpbird ) GUALZBA
      LZCALZBCMZNZDALZEALZBCFOZDEFOZHUFZNZNZDEMZVCALPZVFVBVCAVFVDVBVCUBZUOUSUTV
      AVDUCVFUOUPUQURUTVAVDVIQUOUSVEUDZUOUPUQURVEUEZUOUPUQURVEUGZUOUPUQURVEUHZU
      OUSUTVAVDUIZUOUSUTVAVDUJZABCDEFGHIJKUKULRVFURVBALPZVMVFUOUPUQURVPQVJVKVLA
      BCFGJKSTRUMVFUOUTVAVGVHQVJVNVOADEFGJKSTUN $.
  $}

  ${
    hlatexch4.j $e |- .\/ = ( join ` K ) $.
    hlatexch4.a $e |- A = ( Atoms ` K ) $.
    $( Rearrange join of atoms in an equality.  (Contributed by NM,
       29-Jul-2013.)  (New usage is discouraged.) $)
    hlatexch3N $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
            /\ ( Q =/= R /\ ( P .\/ Q ) = ( P .\/ R ) ) )
      -> ( P .\/ Q ) = ( Q .\/ R ) ) $=
      ( wcel w3a co wceq wa cfv wbr eqid hlatlej2 syl3anc wb atbase chlt simp21
      wne cple simp1 simp22 simp23 breqtrrd clat cbs hllat 3ad2ant1 syl hlatjcl
      simp3r latjle12 syl13anc mpbi2and simp3l ps-1 syl132anc mpbid eqcomd ) FU
      AIZBAIZCAIZDAIZJZCDUCZBCEKZBDEKZLZMZJZCDEKZVJVNVOVJFUDNZOZVOVJLZVNCVJVPOZ
      DVJVPOZVQVNVDVEVFVSVDVHVMUEZVDVEVFVGVMUBZVDVEVFVGVMUFZABCEFVPVPPZGHQRVNDV
      KVJVPVNVDVEVGDVKVPOWAWBVDVEVFVGVMUGZABDEFVPWDGHQRVDVHVIVLUOUHVNFUIIZCFUJN
      ZIZDWGIZVJWGIZVSVTMVQSVDVHWFVMFUKULVNVFWHWCAWGCFWGPZHTUMVNVGWIWEAWGDFWKHT
      UMVNVDVEVFWJWAWBWCAWGEFBCWKGHUNRWGEFVPCDVJWKWDGUPUQURVNVDVFVGVIVEVFVQVRSW
      AWCWEVDVHVIVLUSWBWCACDBCEFVPWDGHUTVAVBVC $.

    $( Exchange 2 atoms.  (Contributed by NM, 13-May-2013.) $)
    hlatexch4 $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
         /\ ( R e. A /\ S e. A )
         /\ ( P =/= R /\ Q =/= S /\ ( P .\/ Q ) = ( R .\/ S ) ) )
                  -> ( P .\/ R ) = ( Q .\/ S ) ) $=
      ( wcel w3a wa wne co wceq cfv wbr eqid syl3anc syl simp11 simp2l hlatlej2
      chlt cple simp2r simp33 breqtrrd wi simp12 simp13 simp32 necomd hlatexch2
      syl131anc mpd hlatjcom breqtrd clat cbs wb hllat atbase latjle12 syl13anc
      hlatjcl mpbi2and simp31 ps-1 syl132anc mpbid ) GUDJZBAJZCAJZKZDAJZEAJZLZB
      DMZCEMZBCFNZDEFNZOZKZKZBDFNZCEFNZGUEPZQZWFWGOZWEBWGWHQZDWGWHQZWIWEBECFNZW
      GWHWEEWAWHQZBWMWHQZWEEWBWAWHWEVLVPVQEWBWHQVLVMVNVRWDUAZVOVPVQWDUBZVOVPVQW
      DUFZADEFGWHWHRZHIUCSVOVRVSVTWCUGZUHWEVLVQVMVNECMWNWOUIWPWRVLVMVNVRWDUJZVL
      VMVNVRWDUKZWECEVOVRVSVTWCULZUMAEBCFGWHWSHIUNUOUPWEVLVQVNWMWGOWPWRXBAFGECH
      IUQSURWECWBWHQZWLWECWAWBWHWEVLVMVNCWAWHQWPXAXBABCFGWHWSHIUCSWTURWEVLVNVPV
      QVTXDWLUIWPXBWQWRXCACDEFGWHWSHIUNUOUPWEGUSJZBGUTPZJZDXFJZWGXFJZWKWLLWIVAW
      EVLXEWPGVBTWEVMXGXAAXFBGXFRZIVCTWEVPXHWQAXFDGXJIVCTWEVLVNVQXIWPXBWRAXFFGC
      EXJHIVFSXFFGWHBDWGXJWSHVDVEVGWEVLVMVPVSVNVQWIWJVAWPXAWQVOVRVSVTWCVHXBWRAB
      DCEFGWHWSHIVIVJVK $.
  $}

  ${
    $d u A $.  $d u .\/ $.  $d u K $.  $d u .<_ $.  $d u ./\ $.  $d u P $.
    $d u Q $.  $d u R $.  $d u S $.  $d u T $.  $d u .0. $.
    ps-2b.l $e |- .<_ = ( le ` K ) $.
    ps-2b.j $e |- .\/ = ( join ` K ) $.
    ps-2b.m $e |- ./\ = ( meet ` K ) $.
    ps-2b.z $e |- .0. = ( 0. ` K ) $.
    ps-2b.a $e |- A = ( Atoms ` K ) $.
    $( Variation of projective geometry axiom ~ ps-2 .  (Contributed by NM,
       3-Jul-2012.) $)
    ps-2b $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
         /\ ( R e. A /\ S e. A /\ T e. A )
         /\ ( -. P .<_ ( Q .\/ R ) /\ S =/= T
              /\ ( S .<_ ( P .\/ Q ) /\ T .<_ ( Q .\/ R ) ) ) )
  -> ( ( P .\/ R ) ./\ ( S .\/ T ) ) =/= .0. ) $=
      ( wcel w3a co wbr vu chlt wn wne wa wrex simp11 simp12 simp13 simp21 3jca
      cv simp22 simp23 jca simp31 simp32 simp33 ps-2 syl32anc cal cbs cfv hlatl
      simp111 clat hllat simp112 simp121 hlatjcl syl3anc simp122 simp123 latmcl
      syl simp2 simp3 atbase latlem12 syl13anc mpbid atlen0 syl31anc rexlimdv3a
      eqid wb mpd ) HUBQZBAQZCAQZRZDAQZEAQZFAQZRZBCDGSZITUCZEFUDZEBCGSITFWPITUE
      ZRZRZUAULZBDGSZITXBEFGSZITUEZUAAUFZXCXDJSZKUDZXAWHWIWJWLRWMWNUEWQWRUEWSXF
      WHWIWJWOWTUGXAWIWJWLWHWIWJWOWTUHWHWIWJWOWTUIWKWLWMWNWTUJUKXAWMWNWKWLWMWNW
      TUMWKWLWMWNWTUNUOXAWQWRWKWOWQWRWSUPWKWOWQWRWSUQUOWKWOWQWRWSURUAABCDEFGHIL
      MPUSUTXAXEXHUAAXAXBAQZXERZHVAQZXGHVBVCZQZXIXBXGITZXHXJWHXKWHWIWJWOWTXIXEV
      EZHVDVOXJHVFQZXCXLQZXDXLQZXMXJWHXPXOHVGVOZXJWHWIWLXQXOWHWIWJWOWTXIXEVHWLW
      MWNWKWTXIXEVIAXLGHBDXLWEZMPVJVKZXJWHWMWNXRXOWLWMWNWKWTXIXEVLWLWMWNWKWTXIX
      EVMAXLGHEFXTMPVJVKZXLHJXCXDXTNVNVKXAXIXEVPZXJXEXNXAXIXEVQXJXPXBXLQZXQXRXE
      XNWFXSXJXIYDYCAXLXBHXTPVRVOYAYBXLHIJXBXCXDXTLNVSVTWAAXLXBHIXGKXTLOPWBWCWD
      WG $.
  $}

  ${
    3at.l $e |- .<_ = ( le ` K ) $.
    3at.j $e |- .\/ = ( join ` K ) $.
    3at.a $e |- A = ( Atoms ` K ) $.
    $( Lemma for ~ 3at .  (Contributed by NM, 22-Jun-2012.) $)
    3atlem1 $p |- ( ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
   /\ ( S e. A /\ T e. A /\ U e. A ) ) /\ ( -. R .<_ ( P .\/ Q )
   /\ -. P .<_ ( T .\/ U ) /\ -. Q .<_ ( P .\/ U ) )
    /\ ( ( P .\/ Q ) .\/ R ) .<_ ( ( S .\/ T ) .\/ U ) )
          -> ( ( P .\/ Q ) .\/ R ) = ( ( S .\/ T ) .\/ U ) ) $=
      ( wcel co wbr wceq syl13anc wb syl3anc chlt w3a wn simp11 simp131 simp132
      simp133 hlatjass wa simp121 simp122 simp123 simp3 eqbrtrrd clat cbs hllat
      cfv syl eqid atbase hlatjcl latjcl latjle12 mpbird simpld simp22 hlexchb2
      breqtrd mpbid hlatj12 3eqtr2d 3brtr3d simp23 latj13 simprd simp21 latjcom
      syl131anc 3eqtr2rd ) IUANZBANZCANZDANZUBZEANZFANZGANZUBZUBZDBCHOZJPUCZBFG
      HOZJPUCZCBGHOZJPUCZUBZWKDHOZEFHOZGHOZJPZUBZWTGWKHOZDWKHOZWRXBWTFWOHOZCWOH
      OZXCXBWTEWMHOZBWMHOZXEXBWAWFWGWHWTXGQWAWEWIWQXAUDZWFWGWHWAWEWQXAUEZWFWGWH
      WAWEWQXAUFZWFWGWHWAWEWQXAUGZAEFGHILMUHRZXBBXGJPZXHXGQZXBBWTXGJXBBWTJPZCDH
      OZWTJPZXBXPXRUIZBXQHOZWTJPZXBWRXTWTJXBWAWBWCWDWRXTQXIWBWCWDWAWIWQXAUJZWBW
      CWDWAWIWQXAUKZWBWCWDWAWIWQXAULZABCDHILMUHRWJWQXAUMZUNZXBIUONZBIUPURZNZXQY
      HNZWTYHNZXSYASXBWAYGXIIUQUSZXBWBYIYBAYHBIYHUTZMVAUSZXBWAWCWDYJXIYCYDAYHHI
      CDYMLMVBTXBYGWSYHNZGYHNZYKYLXBWAWFWGYOXIXJXKAYHHIEFYMLMVBTXBWHYPXLAYHGIYM
      MVAUSZYHHIWSGYMLVCTZYHHIJBXQWTYMKLVDRVEVFXMVIXBWAWBWFWMYHNZWNXNXOSXIYBXJX
      BWAWGWHYSXIXKXLAYHHIFGYMLMVBTWJWLWNWPXAVGAYHBEHIJWMYMKLMVHVSVJXBWAWBWGWHX
      HXEQXIYBXKXLABFGHILMVKRVLZXBCXEJPZXFXEQZXBUUABDHOZXEJPZXBUUAUUDUIZCUUCHOZ
      XEJPZXBXTWTUUFXEJYFXBWAWBWCWDXTUUFQXIYBYCYDABCDHILMVKRYTVMXBYGCYHNZUUCYHN
      ZXEYHNZUUEUUGSYLXBWCUUHYCAYHCIYMMVAUSZXBWAWBWDUUIXIYBYDAYHHIBDYMLMVBTXBYG
      FYHNZWOYHNZUUJYLXBWGUULXKAYHFIYMMVAUSXBWAWBWHUUMXIYBXLAYHHIBGYMLMVBTZYHHI
      FWOYMLVCTYHHIJCUUCXEYMKLVDRVEVFXBWAWCWGUUMWPUUAUUBSXIYCXKUUNWJWLWNWPXAVNA
      YHCFHIJWOYMKLMVHVSVJXBYGUUHYIYPXFXCQYLUUKYNYQYHHICBGYMLVORVLZXBDXCJPZXDXC
      QZXBDWTXCJXBWKWTJPZDWTJPZXBUURUUSUIZXAYEXBYGWKYHNZDYHNZYKUUTXASYLXBWAWBWC
      UVAXIYBYCAYHHIBCYMLMVBTZXBWDUVBYDAYHDIYMMVAUSZYRYHHIJWKDWTYMKLVDRVEVPUUOV
      IXBWAWDWHUVAWLUUPUUQSXIYDXLUVCWJWLWNWPXAVQAYHDGHIJWKYMKLMVHVSVJXBYGUVBUVA
      XDWRQYLUVDUVCYHHIDWKYMLVRTVT $.

    $( Lemma for ~ 3at .  (Contributed by NM, 22-Jun-2012.) $)
    3atlem2 $p |- ( ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ ( S e. A /\ T e. A /\ U e. A ) ) /\ ( -. R .<_ ( P .\/ Q )
            /\ ( P =/= U /\ P .<_ ( T .\/ U ) ) /\ -. Q .<_ ( P .\/ U ) )
        /\ ( ( P .\/ Q ) .\/ R ) .<_ ( ( S .\/ T ) .\/ U ) )
      -> ( ( P .\/ Q ) .\/ R ) = ( ( S .\/ T ) .\/ U ) ) $=
      ( wcel w3a co wbr wceq syl3anc syl13anc chlt wn wne wa simp3 clat cbs cfv
      wb simp11 syl simp121 simp122 eqid hlatjcl simp123 atbase simp131 simp132
      simp133 latjcl latjle12 mpbird simprd hlatjass simp22r simp22l hlatexchb2
      hllat syl131anc mpbid oveq2d eqtr4d hlatj12 hlatj32 3brtr3d simp23 3eqtrd
      breqtrrd hlexchb2 breqtrd simp21 hlexchb1 ) IUANZBANZCANZDANZOZEANZFANZGA
      NZOZOZDBCHPZJQUBZBGUCZBFGHPZJQZUDZCBGHPZJQUBZOZWNDHPZEFHPZGHPZJQZOZXCWNGH
      PZXEXGDXHJQZXCXHRZXGDXEXHJXGWNXEJQZDXEJQZXGXKXLUDZXFWMXBXFUEZXGIUFNZWNIUG
      UHZNZDXPNZXEXPNZXMXFUIXGWDXOWDWHWLXBXFUJZIVIUKZXGWDWEWFXQXTWEWFWGWDWLXBXF
      ULZWEWFWGWDWLXBXFUMZAXPHIBCXPUNZLMUOSZXGWGXRWEWFWGWDWLXBXFUPZAXPDIYDMUQUK
      XGXOXDXPNZGXPNZXSYAXGWDWIWJYGXTWIWJWKWDWHXBXFURZWIWJWKWDWHXBXFUSZAXPHIEFY
      DLMUOSXGWKYHWIWJWKWDWHXBXFUTZAXPGIYDMUQUKXPHIXDGYDLVASXPHIJWNDXEYDKLVBTVC
      VDXGXEEWTHPZXHXGXEEWQHPZYLXGWDWIWJWKXEYMRXTYIYJYKAEFGHILMVETZXGWTWQEHXGWR
      WTWQRZWPWRWOXAWMXFVFXGWDWEWJWKWPWRYOUIXTYBYJYKWPWRWOXAWMXFVGABFGHIJKLMVHV
      JVKVLZVMXGXHBCGHPHPZCWTHPZYLXGWDWEWFWKXHYQRXTYBYCYKABCGHILMVETXGWDWEWFWKY
      QYRRXTYBYCYKABCGHILMVNTXGCYLJQZYRYLRZXGCYMYLJXGBDHPZYMJQZCYMJQZXGUUBUUCUD
      ZUUACHPZYMJQZXGXCXEUUEYMJXNXGWDWEWFWGXCUUERXTYBYCYFABCDHILMVOTYNVPXGXOUUA
      XPNZCXPNZYMXPNZUUDUUFUIYAXGWDWEWGUUGXTYBYFAXPHIBDYDLMUOSXGWFUUHYCAXPCIYDM
      UQUKXGXOEXPNZWQXPNZUUIYAXGWIUUJYIAXPEIYDMUQUKXGWDWJWKUUKXTYJYKAXPHIFGYDLM
      UOSXPHIEWQYDLVASXPHIJUUACYMYDKLVBTVCVDYPVSXGWDWFWIWTXPNZXAYSYTUIXTYCYIXGW
      DWEWKUULXTYBYKAXPHIBGYDLMUOSWMWOWSXAXFVQAXPCEHIJWTYDKLMVTVJVKVRVMZWAXGWDW
      GWKXQWOXIXJUIXTYFYKYEWMWOWSXAXFWBAXPDGHIJWNYDKLMWCVJVKUUMVM $.

    $( Lemma for ~ 3at .  (Contributed by NM, 23-Jun-2012.) $)
    3atlem3 $p |- ( ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ ( S e. A /\ T e. A /\ U e. A ) ) /\ ( -. R .<_ ( P .\/ Q )
            /\ P =/= U /\ -. Q .<_ ( P .\/ U ) )
        /\ ( ( P .\/ Q ) .\/ R ) .<_ ( ( S .\/ T ) .\/ U ) )
      -> ( ( P .\/ Q ) .\/ R ) = ( ( S .\/ T ) .\/ U ) ) $=
      ( wcel w3a co wbr wn wa simpl1 chlt wne simpl21 simpl22 simpr jca simpl23
      wceq simpl3 3atlem2 syl131anc 3atlem1 pm2.61dan ) IUANBANCANDANOEANFANGAN
      OOZDBCHPZJQRZBGUBZCBGHPJQRZOZUODHPZEFHPGHPZJQZOZBFGHPJQZUTVAUHZVCVDSZUNUP
      UQVDSURVBVEUNUSVBVDTUPUQURUNVBVDUCVFUQVDUPUQURUNVBVDUDVCVDUEUFUPUQURUNVBV
      DUGUNUSVBVDUIABCDEFGHIJKLMUJUKVCVDRZSUNUPVGURVBVEUNUSVBVGTUPUQURUNVBVGUCV
      CVGUEUPUQURUNVBVGUGUNUSVBVGUIABCDEFGHIJKLMULUKUM $.

    $( Lemma for ~ 3at .  (Contributed by NM, 23-Jun-2012.) $)
    3atlem4 $p |- ( ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ ( S e. A /\ T e. A ) ) /\ ( -. R .<_ ( P .\/ Q )
            /\ P =/= Q )
        /\ ( ( P .\/ Q ) .\/ R ) .<_ ( ( S .\/ T ) .\/ R ) )
      -> ( ( P .\/ Q ) .\/ R ) = ( ( S .\/ T ) .\/ R ) ) $=
      ( wcel w3a wa co wbr wne syl atbase chlt wn simp11 simp12 simp13l simp13r
      wceq simp123 3jca simp2l clat cbs cfv simp121 simp122 latnlej1l syl131anc
      hllat eqid necomd wi simp2r hlatexch1 mtod simp3 3atlem3 syl331anc ) HUAM
      ZBAMZCAMZDAMZNZEAMZFAMZOZNZDBCGPZIQZUBZBCRZOZVQDGPZEFGPDGPZIQZNZVHVLVMVNV
      KNVSBDRCBDGPIQZUBWDWBWCUGVHVLVOWAWDUCZVHVLVOWAWDUDWEVMVNVKVMVNVHVLWAWDUEV
      MVNVHVLWAWDUFVIVJVKVHVOWAWDUHZUIVPVSVTWDUJZWEDBWEHUKMZDHULUMZMZBWKMZCWKMZ
      VSDBRWEVHWJWGHURSWEVKWLWHAWKDHWKUSZLTSWEVIWMVIVJVKVHVOWAWDUNZAWKBHWOLTSWE
      VJWNVIVJVKVHVOWAWDUOZAWKCHWOLTSWIWKGHIDBCWOJKUPUQUTWEWFVRWIWEVHVJVKVICBRW
      FVRVAWGWQWHWPWEBCVPVSVTWDVBUTACDBGHIJKLVCUQVDVPWAWDVEABCDEFDGHIJKLVFVG $.

    $( Lemma for ~ 3at .  (Contributed by NM, 23-Jun-2012.) $)
    3atlem5 $p |- ( ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ ( S e. A /\ T e. A /\ U e. A ) ) /\ ( -. R .<_ ( P .\/ Q )
            /\ P =/= Q /\ -. Q .<_ ( P .\/ U ) )
        /\ ( ( P .\/ Q ) .\/ R ) .<_ ( ( S .\/ T ) .\/ U ) )
      -> ( ( P .\/ Q ) .\/ R ) = ( ( S .\/ T ) .\/ U ) ) $=
      ( wcel w3a co wbr wn wceq syl chlt wne wa wi eqcoms breq2d eqeq2d imbi12d
      oveq2 simp1l simp1r1 simp2 simp1r3 simp3 3atlem3 syl131anc 3expia simp123
      simp11 simp122 simp121 3jca simp131 jca simp21 simp22 hlatexch2 mtod clat
      simp132 cbs hllat eqid atbase latnlej1r 3atlem4 syl321anc simpl21 simpl22
      cfv simpl1 simpl23 latj31 syl13anc breq1d eqeq1d 3imtr4d pm2.61ne 3impia
      ) IUANZBANZCANZDANZOZEANZFANZGANZOZOZDBCHPZJQZRZBCUBZCBGHPJQRZOZWTDHPZEFH
      PZGHPZJQZXFXHSZWSXEUCZXIXJUDXFXGBHPZJQZXFXLSZUDBGBGSZXIXMXJXNXOXHXLXFJXHX
      LSGBGBXGHUIUEZUFXOXHXLXFXPUGUHXKBGUBZXIXJXKXQXIOWSXBXQXDXIXJWSXEXQXIUJXBX
      CXDWSXQXIUKXKXQXIULXBXCXDWSXQXIUMXKXQXIUNABCDEFGHIJKLMUOUPUQXKDCHPZBHPZXL
      JQZXSXLSZXMXNWSXEXTYAWSXEXTOZWJWMWLWKOWOWPUCBXRJQZRDCUBZXTYAWJWNWRXEXTUSZ
      YBWMWLWKWKWLWMWJWRXEXTURZWKWLWMWJWRXEXTUTZWKWLWMWJWRXEXTVAZVBYBWOWPWOWPWQ
      WJWNXEXTVCWOWPWQWJWNXEXTVJVDYBYCXAWSXBXCXDXTVEZYBWJWKWMWLXCYCXAUDYEYHYFYG
      WSXBXCXDXTVFABDCHIJKLMVGUPVHYBIVINZDIVKVTZNZBYKNZCYKNZXBYDYBWJYJYEIVLZTYB
      WMYLYFAYKDIYKVMZMVNZTYBWKYMYHAYKBIYPMVNZTYBWLYNYGAYKCIYPMVNZTYIYKHIJDBCYP
      KLVOUPWSXEXTUNADCBEFHIJKLMVPVQUQXKXFXSXLJXKYJYMYNYLXFXSSXKWJYJWJWNWRXEWAY
      OTXKWKYMWKWLWMWJWRXEVRYRTXKWLYNWKWLWMWJWRXEVSYSTXKWMYLWKWLWMWJWRXEWBYQTYK
      HIBCDYPLWCWDZWEXKXFXSXLYTWFWGWHWI $.

    $( Lemma for ~ 3at .  (Contributed by NM, 23-Jun-2012.) $)
    3atlem6 $p |- ( ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ ( S e. A /\ T e. A /\ U e. A ) ) /\ ( -. R .<_ ( P .\/ Q )
            /\ P =/= Q /\ Q .<_ ( P .\/ U ) )
        /\ ( ( P .\/ Q ) .\/ R ) .<_ ( ( S .\/ T ) .\/ U ) )
      -> ( ( P .\/ Q ) .\/ R ) = ( ( S .\/ T ) .\/ U ) ) $=
      ( wcel w3a co wbr wn wne syl chlt simp11 simp121 simp122 simp123 syl13anc
      wceq hlatj32 3jca simp13 simp21 wi simp22 necomd hlatexch1 syl131anc mtod
      clat cbs cfv hllat eqid atbase latnlej1l simp23 simp133 hlatexchb1 breq2d
      wb mpbid mtbid simp3 eqbrtrrd 3atlem5 syl331anc eqtrd ) IUANZBANZCANZDANZ
      OZEANZFANZGANZOZOZDBCHPZJQZRZBCSZCBGHPZJQZOZWGDHPZEFHPGHPZJQZOZWNBDHPZCHP
      ZWOWQVQVRVSVTWNWSUGVQWAWEWMWPUBZVRVSVTVQWEWMWPUCZVRVSVTVQWEWMWPUDZVRVSVTV
      QWEWMWPUEZABCDHILMUHUFZWQVQVRVTVSOWECWRJQZRBDSZDWKJQZRWSWOJQWSWOUGWTWQVRV
      TVSXAXCXBUIVQWAWEWMWPUJWQXEWHWFWIWJWLWPUKZWQVQVSVTVRCBSZXEWHULWTXBXCXAWQB
      CWFWIWJWLWPUMUNZACDBHIJKLMUOUPUQWQIURNZDIUSUTZNZBXLNZCXLNZWIXFWQVQXKWTIVA
      TWQVTXMXCAXLDIXLVBZMVCTWQVRXNXAAXLBIXPMVCTWQVSXOXBAXLCIXPMVCTXHXKXMXNXOOW
      IODBXLHIJDBCXPKLVDUNUPWQWHXGXHWQWGWKDJWQWLWGWKUGZWFWIWJWLWPVEWQVQVSWDVRXI
      WLXQVIWTXBWBWCWDVQWAWMWPVFXAXJACGBHIJKLMVGUPVJVHVKWQWNWSWOJXDWFWMWPVLVMAB
      DCEFGHIJKLMVNVOVP $.

    $( Lemma for ~ 3at .  (Contributed by NM, 23-Jun-2012.) $)
    3atlem7 $p |- ( ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
        /\ ( S e. A /\ T e. A /\ U e. A ) ) /\ ( -. R .<_ ( P .\/ Q )
            /\ P =/= Q )
        /\ ( ( P .\/ Q ) .\/ R ) .<_ ( ( S .\/ T ) .\/ U ) )
      -> ( ( P .\/ Q ) .\/ R ) = ( ( S .\/ T ) .\/ U ) ) $=
      ( wcel w3a co wbr wn wa simpl1 chlt wne wceq simpl2l simpl2r simpr simpl3
      3atlem6 syl131anc 3atlem5 pm2.61dan ) IUANBANCANDANOEANFANGANOOZDBCHPZJQR
      ZBCUBZSZUMDHPZEFHPGHPZJQZOZCBGHPJQZUQURUCZUTVASULUNUOVAUSVBULUPUSVATUNUOU
      LUSVAUDUNUOULUSVAUEUTVAUFULUPUSVAUGABCDEFGHIJKLMUHUIUTVARZSULUNUOVCUSVBUL
      UPUSVCTUNUOULUSVCUDUNUOULUSVCUEUTVCUFULUPUSVCUGABCDEFGHIJKLMUJUIUK $.

    $( Any three non-colinear atoms in a (lattice) plane determine the plane
       uniquely.  This is the 2-dimensional analogue of ~ ps-1 for lines and
       ~ 4at for volumes.  I could not find this proof in the literature on
       projective geometry (where it is either given as an axiom or stated as
       an unproved fact), but it is similar to Theorem 15 of Veblen, "The
       Foundations of Geometry" (1911), p. 18, which uses different axioms.
       This proof was written before I became aware of Veblen's, and it is
       possible that a shorter proof could be obtained by using Veblen's proof
       for hints.  (Contributed by NM, 23-Jun-2012.) $)
    3at $p |- ( ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) /\
    ( S e. A /\ T e. A /\ U e. A ) ) /\ ( -. R .<_ ( P .\/ Q ) /\ P =/= Q ) )
   -> ( ( ( P .\/ Q ) .\/ R ) .<_ ( ( S .\/ T ) .\/ U )
          <-> ( ( P .\/ Q ) .\/ R ) = ( ( S .\/ T ) .\/ U ) ) ) $=
      ( wcel w3a co wbr wa atbase syl chlt wn wceq 3atlem7 3expia wi clat hllat
      wne cbs cfv simpl simpr1 simpr2 latjcl syl3anc simpr3 latref syldan breq2
      eqid syl5ibcom sylan 3adant3 adantr impbid ) IUANZBANZCANZDANZOZEANFANGAN
      OZOZDBCHPZJQUBBCUIRZRVNDHPZEFHPGHPZJQZVPVQUCZVMVOVRVSABCDEFGHIJKLMUDUEVMV
      SVRUFZVOVGVKVTVLVGIUGNZVKVTIUHWAVKRZVPVPJQZVSVRWAVKVPIUJUKZNZWCWBWAVNWDNZ
      DWDNZWEWAVKULZWBWABWDNZCWDNZWFWHWBVHWIWAVHVIVJUMAWDBIWDVAZMSTWBVIWJWAVHVI
      VJUNAWDCIWKMSTWDHIBCWKLUOUPWBVJWGWAVHVIVJUQAWDDIWKMSTWDHIVNDWKLUOUPWDIJVP
      WKKURUSVPVQVPJUTVBVCVDVEVF $.

$(
    @( If the join three non-colinear atoms is less than or equal to three
       others, then the others are also non-colinear. @)
    3atne @p |- ( ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) /\
     ( S e. A /\ T e. A /\ U e. A ) ) /\ ( -. R .<_ ( P .\/ Q ) /\ P =/= Q )
        /\ ( ( P .\/ Q ) .\/ R ) .<_ ( ( S .\/ T ) .\/ U ) )
     -> ( S =/= T /\ -. U .<_ ( S .\/ T ) ) ) @=
      ? @.
      @( [23-Jun-2012] @)
$)
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Projective geometries based on Hilbert lattices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

$(


@(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Additional set theory definitions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@)

  @c fcard @.
  @c idsumf @.
  @c idsum @.

  @( Extend class notation with finite cardinality (member of ` NN0 ` ). @)
  cfc @a class fcard @.

  @( Extend class notation with finite idempotent sum. @)
  cidsumf @a class idsumf @.

  @( Extend class notation with idempotent sum. @)
  cidsum @a class idsum @.

  @{
    @d f n p s t u x y @.
    @( Define finite cardinality. @)
    df-fcard @a |- fcard = ( x e. _V |-> if ( x e. Fin , ( iota n ( n e. NN
          /\ E. f f : x -1-1-onto-> ( 1 ... n ) ) ) , ( Undef ` NN0 ) ) ) @.

    @( Define finite idempotent sum. @)
    df-idsumf @a |- idsumf = ( p e. _V , s e. _V |->
    ( iota t A. f ( f : ( 1 ... ( fcard ` s ) ) -1-1-onto-> s
         -> t = ( ( p ser f ) ` ( fcard ` s ) ) ) ) ) @.
    df-idsumf @a |- idsumf = ( p e. _V , s e. _V |->
    ( iota t A. f ( f : ( 1 ... ( fcard ` s ) ) -1-1-onto-> s
         -> t = ( ( p ser f ) ` ( fcard ` s ) ) ) ) ) @.
( ( P seq1 F ) ` N )

    @( Define idempotent sum. @)
    df-idsum @a |- idsum = ( p e. _V , s e. _V |->
        U. { u | E. t ( u = ( p idsumf t ) /\ t C_ s /\ t e. Fin ) } ) @.
  @}          U. { a | E. t C_ s E. n e. NN0 E. f
          ( f : ( 1 ... n ) -1-1-onto-> t /\ a = ( ( p seq f ) ` n ) ) } ) $.
    df-idsum @a |- idsum = ( p e. _V , f e. _V |->
                U. { a | E. t E. g
       ( t e. Fin /\ t C_ f )
     /\ ( g : ( 1 ... ( # ` t ) ) -1-1-onto-> dom t
     /\ A. x e. dom g A. y e. dom g ( x < y -> ( g ` x ) < ( g ` y ) )
     /\ a = ( ( p seq1 ( f o. g ) ) ` ( # ` t ) ) ) ) }

@(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Posets and lattices; Hilbert lattices
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@)

@(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  From groups to Hilbert spaces
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@)

  @c -vNEW @.
  @c RVecNEW @.
  @c SubSpNEW @.
  @c spanNEW @.
  @c o+ @.
  @c Ev @.
  @c /v @.
  @c normv @.

  @( Extend class notation with vector subtraction. @)
  cminusv @a class -vNEW @.

  @( Extend class notation with class of all right vector spaces. @)
  crvec @a class RVecNEW @.

  @( Extend class notation with set of all subspaces in a vector space. @)
  cssp @a class SubSpNEW @.

  @( Extend class notation with span of a set of vectors. @)
  cspan @a class spanNEW @.

  @( Extend class notation with direct sum. @)
  coplus @a class o+ @.

  @( Extend class notation with vector equivalence classes. @)
  cev @a class Ev @.

  @( Extend class notation with quotient space. @)
  cqv @a class /v @.

  @( Extend class notation with norm of a vector. @)
  cnormv @a class normv @.

  @{
    @d a b c e f g h i k m p q r s t u v w x y z @.
    @( Define vector subtraction. @)
    df-minusv @a |- -vNEW = ( v e. _V |-> ( x e. ( Base ` v ) ,
         y e. ( Base ` v ) |-> ( x ( +g ` v )
 ( ( invg ` { <. 1 , ( Base ` v ) >. ,
         <. 2 , ( +g ` v ) >. } ) ` y ) ) ) ) @.

    @( Define class of all right vector spaces. @)
    df-rvec @a |- RVecNEW = Struct ( 6 , f , ( f e. DivRingOLD  /\
      E. k E. p E. t E. v E. a E. s (
         ( k = ( Base ` f ) /\ p = ( +g ` f ) /\ t = ( .r ` f ) )
      /\ ( v = ( vbase ` f ) /\ a = ( vadd ` f ) /\ s = ( .s ` f ) )
          /\ ( { <. 1 , v >. , <. 2 , a >. } e. AbelOLD
             /\ A. q e. k A. r e. k A. x e. v A. w e. v
               ( ( ( w s r ) e. v
                 /\ ( ( w a x ) s r ) = ( ( w s r ) a ( x s r ) )
                 /\ ( w s ( q p r ) ) = ( ( w s q ) a ( w s r ) )
               ) /\ ( ( ( w s q ) s r ) = ( w s ( q t r ) )
                 /\ ( w s ( 1r ` f ) ) = w ) ) ) ) ) ) @.

    @( Define set of all subspaces of left vector space ` v ` . @)
    df-sbsp @a |- SubSpNEW = ( v e. _V |-> { s e. ~P ( vbase ` v )
     | ( ( 0v ` v ) e. s /\ A. x e. s A. y e. s ( x ( vadd ` v ) y ) e. s
        /\ A. x e. ( Base ` v ) A. y e. s ( x ( .s ` v ) y ) e. s ) } ) @.

    @( Define span of a set of vectors. @)
    df-vspan @a |- spanNEW = ( v e. _V |-> ( m e. ~P ( vbase ` v ) |->
       |^| { s e. ( SubSpNEW ` v ) | m C_ s } ) ) @.

    @( Define direct sum of two left vector spaces. @)
    df-oplus @a |- o+ = ( v e. _V , w e. _V |-> ( { <. 1 , ( Base ` v ) >. ,
       <. 2 , ( +g ` v ) >. , <. 3 , ( .r ` v ) >. } u. {
       <. 4 , ( ( vbase ` v ) X. ( vbase ` w ) ) >. ,
       <. 5 , ( x e. ( ( vbase ` v ) X. ( vbase ` w ) ) ,
                y e. ( ( vbase ` v ) X. ( vbase ` w ) ) |->
                  <. ( ( 1st ` x ) ( vadd ` v ) ( 1st ` y ) ) ,
                     ( ( 2nd ` x ) ( vadd ` w ) ( 2nd ` y ) ) >. ) >. ,
       <. 6 , ( k e. ( Base ` v ) ,
                x e. ( ( vbase ` v ) X. ( vbase ` w ) ) |->
                  <. ( k ( .s ` v ) ( 1st ` x ) ) ,
                     ( k ( .s ` w ) ( 2nd ` x ) ) >. ) >. } ) ) @.

    @( Define vector equivalence mod ` m ` . @)
    df-ev @a |- Ev = ( v e. _V , m e. _V |-> { <. x , y >. |
       ( x e. ( vbase ` v ) /\ y e. ( vbase ` v ) /\
       ( x ( -vNEW ` v ) y ) e. ( vbase ` m ) ) } ) @.

    @( Define quotient space. @)
    df-quov @a |- /v = ( v e. _V , m e. _V |-> ( { <. 1 , ( Base ` v ) >. ,
       <. 2 , ( +g ` v ) >. , <. 3 , ( .r ` v ) >. } u. {
       <. 4 , ( ( vbase ` v ) /. ( v Ev m ) ) >. ,
       <. 5 , { <. <. a , b >. , c >. | E. x e. ( vbase ` v )
          E. y e. ( vbase ` v ) ( a = [ x ] ( v Ev m )
            /\ b = [ y ] ( v Ev m )
            /\ c = [ ( x ( vadd ` v ) y ) ] ( v Ev m ) ) } >. ,
       <. 6 , { <. <. a , b >. , c >. | ( a e. ( Base ` v ) /\
          E. y e. ( vbase ` v ) ( b = [ y ] ( v Ev m )
            /\ c = [ ( x ( .s ` v ) y ) ] ( v Ev m ) ) ) } >. } ) ) @.

    @( Define norm of a vector. @)
    df-normv @a |- normv = ( h e. _V |-> ( v ( .i ` h ) v ) ) @.
  @}


@(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Hilbert space reconstruction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@)

  @c sumP @.
  @c Indep @.
  @c BasesP @.
  @c rankP @.
  @c PHyp @.
  @c ww @.
  @c WAtoms @.
  @c PAut @.
  @c Dil @.
  @c Trn @.
  @c trP @.
  @c DVecA @.
  @c GrpEndo @.
  @c DVecAEndo @.
  @c ERing @.
  @c TPEndo @.
  @c DRing @.
  @c DVecA @.
  @c DVIsoPre @.
  @c DVecB @.
  @c DVecH @.
  @c ee @.
  @c DVIsoA @.
  @c qtr @.
  @c DVIsoB @.
  @c DVIsoC @.
  @c DVIsoH @.
  @c S_|_ @.
  @c Ropp @.
  @c Vldual @.
  @c vecdom @.
  @c ker @.
  @c mapd @.
  @c eimage @.
  @c hmap @.
  @c gmap @.
  @c HLtoHil @.

  @( Extend class notation with projective subspace sum. @)
  csump @a class sumP @.

  @( Extend class notation with set of all sets of independent points. @)
  cindep @a class Indep @.

  @( Extend class notation with all bases for projective subspaces. @)
  cbasesp @a class BasesP @.

  @( Extend class notation with rank of projective subspace @m@. @)
  crankp @a class rankP @.

  @( Extend class notation with set of all (projective) hyperplanes. @)
  cphyp @a class PHyp @.

  @( Extend class notation with fiducial hyperplane. @)
  cww @a class ww @.

  @( Extend class notation with W points. @)
  cwpointsN @a class WAtoms @.

  @( Extend class notation with set of all projective automorphisms. @)
  cpautN @a class PAut @.

  @( Extend class notation with set of all dilations. @)
  cdilN @a class Dil @.

  @( Extend class notation with set of all translations. @)
  ctrnN @a class Trn @.

  @( Extend class notation with trace of a translation @f@. @)
  ctrp @a class trP @.

  @( Extend class notation with translation group. @)
  ctgrp @a class TGrp @.

  @( Extend class notation with group endomorphisms of @G@. @)
  cgrpendo @a class GrpEndo @.

  @( Extend class notation with translation group endomorphisms. @)
  ctgrpendo @a class TGrpEndo @.

  @( Extend class notation with endomorphism ring. @)
  cering @a class ERing @.

  @( Extend class notation with trace-preserving endomorphisms. @)
  ctpendo @a class TPEndo @.

  @( Extend class notation with @\Delta@-ring. @)
  cdring @a class DRing @.

  @( Extend class notation with constructed vector space A. @)
  cdveca @a class DVecA @.

  @( Extend class notation with preliminary projective subspace isomorphism. @)
  cdvisopre @a class DVIsoPre @.

  @( Extend class notation with constructed vector space B. @)
  cdvecb @a class DVecB @.

  @( Extend class notation with constructed vector space. @)
  cdvech @a class DVecH @.

  @( Extend class notation with e vector. @)
  cee @a class ee @.

  @( Extend class notation with projective subspace isomorphism A. @)
  cdvisoa @a class DVIsoA @.

  @( Extend class notation with q-translation. @)
  cqtr @a class qtr @.

  @( Extend class notation with projective subspace isomorphism B. @)
  cdvisob @a class DVIsoB @.

  @( Extend class notation with projective subspace isomorphism C. @)
  cdvisoc @a class DVIsoC @.

  @( Extend class notation with projective subspace isomorphism. @)
  cdvisoh @a class DVIsoH @.

  @( Extend class notation with constructed orthocomplement. @)
  csoc @a class S_|_ @.

  @( Extend class notation with opposite ring. @)
  cropp @a class Ropp @.

  @( Extend class notation with left dualvector space. @)
  cvldual @a class Vldual @.

  @( Extend class notation with vector domain. @)
  cvecdom @a class vecdom @.

  @( Extend class notation with kernel of a functional. @)
  cker @a class ker @.

  @( Extend class notation with one-dimensional subspace map. @)
  cmapd @a class mapd @.

  @( Extend class notation with e vector image. @)
  ceimage @a class eimage @.

  @( Extend class notation with h map. @)
  chmap @a class hmap @.

  @( Extend class notation with g map. @)
  cgmap @a class gmap @.

  @( Extend class notation with Hilbert space constructed from Hilbert
     lattice. @)
  chltohil @a class HLtoHil @.

  @{
    @d a b d e f g h k l m n p q r s t u v w x y z @.
    @( Define projective sum of a set of subspaces. @)
    df-sump @a |- sumP = ( l e. _V |-> ( s e. ~P ( PSubSp ` l ) |->
       ( ( +P ` l ) idsumf s ) ) ) @.

    @( Define set of all sets of independent points. @)
    df-indep @a |- Indep = ( l e. _V |-> { s e. ~P ( Points ` l )
    | A. a A. b ( ( ( a u. b ) = s /\ ( a i^i b ) = (/) ) ->
      ( ( ( sumP ` l ) ` a ) i^i ( ( sumP ` l ) ` b ) ) = (/) ) } ) @.

    @( Define all bases for projective subspace @m@. @)
    df-basesp @a |- BasesP = ( l e. _V , m e. _V |-> { s e. ( Indep ` l )
      | ( ( sumP ` l ) ` s ) = m } ) @.

    @( Define rank of projective subspace @m@. @)
    df-rankp @a |- rankP = ( l e. _V , m e. _V |-> ( iota r
    A. b e. ( l TopBases m ) r = ( card ` b ) ) ) @.

    @( Define set of all (projective) hyperplanes. @)
    df-phyp @a |- PHyp = ( l e. _V |-> { h | E. p e. ( Points ` l )
        h = ( ( _|_P ` l ) ` p ) } ) @.

    @( Define fiducial hyperplane. @)
    df-ww @a |- ww = ( l e. _V , p e. _V |-> ( ( _|_P ` l ) ` { p } ) ) @.

    @( Define W points. @)
    df-wpoints @a |- WAtoms = ( l e. _V , p e. _V |-> { x e. ( Points ` l )
      | -. x C_ ( l ww p ) } ) @.

    @( Define set of all projective automorphisms. @)
    df-pautN @a |- PAut = ( l e. _V |-> { f | ( f : ( PSubSp ` l ) -1-1-onto->
      ( PSubSp ` l ) /\ A. x e. ( PSubSp ` l ) A. y e. ( PSubSp ` l )
        ( x C_ y <-> ( f ` x ) C_ ( f ` y ) ) ) } ) @.

    @( Define set of all dilations. @)
    df-dilN @a |- Dil = ( l e. _V , p e. _V |-> { f e. ( PAut ` l )
     | A. x e. ( PSubSp ` l ) ( x C_ ( l ww p ) -> ( f ` x ) = x ) } ) @.

    @( Define set of all translations. @)
    df-trnN @a |- Trn = ( l e. _V , p e. _V |-> { f e. ( l Dil p )
     | A. q e. ( l WAtoms p ) A. r e. ( l WAtoms p )
        ( ( q ( +P ` l ) ( f ` q ) ) i^i ( l ww p ) )
      = ( ( r ( +P ` l ) ( f ` r ) ) i^i ( l ww p ) ) } ) @.

    @( Define trace of a translation ` f ` . @)
    df-trp @a |- trP = ( l e. _V , p e. _V |-> ( f e. ( l Trn p ) |->
     ( iota x ( x e. ( PSubSp ` l ) /\ A. q e. ( l WAtoms p )
        x = ( ( q ( +P ` l ) ( f ` q ) ) i^i ( l ww p ) ) ) ) ) ) @.

    @( Define translation group. @)
    df-tgrp @a |- TGrp = ( l e. _V , p e. _V |-> { <. 1 , ( l Trn p ) >. ,
       <. 2 , ( f e. ( l Trn p ) , g e. ( l Trn p ) |-> ( f o. g ) ) >. } ) @.

    @( Define group endomorphisms of @G@. @)
    df-grpendo @a |- GrpEndo = ( g e. _V |-> { f |
   ( f : ( Base ` g ) --> ( Base ` g )
      /\ A. x e. ( Base ` g ) A. y e. ( Base ` g )
       ( x ( +g ` g ) y ) = ( ( f ` x ) ( +g ` g ) ( f ` y ) ) ) } ) @.

    @( Define translation group endomorphisms. @)
    df-tgrpendo @a |- TGrpEndo = ( l e. _V , p e. _V |->
      ( GrpEndo ` ( l TGrp p ) ) ) @.

    @( Define endomorphism ring. @)
    df-ering @a |- ERing = ( l e. _V , p e. _V |-> { <. 1 , ( l TGrpEndo p ) >.
        ,
       <. 2 , ( s e. ( l TGrpEndo p ) , t e. ( l TGrpEndo p ) |->
           ( f e. ( l Trn p ) |-> ( ( s ` f ) o. ( t ` f ) ) ) ) >. ,
       <. 3 , ( s e. ( l TGrpEndo p ) , t e. ( l TGrpEndo p ) |->
           ( f e. ( l Trn p ) |-> ( t ` ( s ` f ) ) ) ) >. } ) @.

    @( Define trace-preserving endomorphisms. @)
    df-tpendo @a |- TPEndo = ( l e. _V , p e. _V |-> { s e. ( l TGrpEndo p ) |
     A. f e. ( Base ` ( l TGrp p ) )
         ( ( l trP p ) ` ( s ` f ) ) C_ ( ( l trP p ) ` f ) } ) @.

    @( Define delta ring. @)
    df-dring @a |- DRing = ( l e. _V , p e. _V |->
     { <. 1 , ( l TPEndo p ) >. ,
       <. 2 , ( +g ` ( l ERing p ) ) >. ,
       <. 3 , ( .r ` ( l ERing p ) ) >. } ) @.

    @( Define constructed partial vector space A. @)
    df-dveca @a |- DVecA = ( l e. _V , p e. _V |-> ( ( l DRing p )
    u. { <. 4 , ( Base ` ( l TGrp p ) ) >. ,
         <. 5 , ( +g ` ( l TGrp p ) ) >. ,
         <. 6 , ( s e. ( l TGrpEndo p ) , f e. ( l Trn p ) |->
                ( s ` f ) ) >. } ) ) @.

    @( Define preliminary projective subspace isomorphism. @)
    df-dvisopre @a |- DVIsoPre = ( l e. _V , p e. _V |->
     ( x e. { y e. ( PSubSp ` l ) | y C_ ( l ww p ) } |-> { f e. ( l Trn p ) |
     ( ( l trP p ) ` f ) C_ x } ) ) @.

    @( Define constructed partial vector space B. @)
    df-dvecb @a |- DVecB = ( l e. _V , p e. _V |-> ( ( l DRing p )
    u. { <. 4 , ( Base ` ( l DRing p ) ) >. ,
         <. 5 , ( +g ` ( l DRing p ) ) >. ,
         <. 6 , ( .r ` ( l DRing p ) ) >. } ) ) @.

    @( Define constructed vector space. @)
    df-dvechOLD @a |- DVecH = ( l e. _V , p e. _V |->
        ( ( l DVecA p ) o+ ( l DVecB p ) ) ) @.

    @( Define e vector. @)
    df-ee @a |- ee = ( l e. _V , p e. _V |->
      <. ( 0v ` ( l DVecA p ) ) , ( 1r ` ( l DRing p ) ) >. ) @.

    @( Define projective subspace isomorphism A. @)
    df-dvisoa @a |- DVIsoA = ( l e. _V , p e. _V |->
     ( x e. { y e. ( PSubSp ` l ) | y C_ ( l ww p ) } |->
      <. ( ( l DVIsoPre p ) ` x ) , ( 0v ` ( l DVecB p ) ) >. ) ) @.

    @( Define q-translation. @)
    df-qtr @a |- qtr = ( l e. _V , p e. _V |->
    ( q e. ( l WAtoms p ) |->
      <. ( iota f ( f e. ( l Trn p ) /\ ( f ` { p } ) = q ) ) ,
          ( 0v ` ( l DVecA p ) ) >. ) ) @.

    @( Define projective subspace isomorphism B. @)
    df-dvisob @a |- DVIsoB = ( l e. _V , p e. _V |->
    ( q e. ( l WAtoms p ) |-> { v e. ( l DVecH p ) | E. s e. ( l DRing p )
       v = ( s ( .s ` ( l DVecH p ) )
   ( ( l ee p ) ( vadd ` ( l DVecH p ) ) ( ( l qtr p ) ` q ) ) ) } ) ) @.

    @( Define projective subspace isomorphism C. @)
    df-dvisoc @a |- DVIsoC = ( l e. _V , p e. _V |->
     ( x e. { y e. ( PSubSp ` l ) | -. y C_ ( l ww p ) } |->
        ( iota z A. q e. ( l WAtoms p ) z = ( ( ( l DVIsoB p ) ` q )
              ( +g ` ( l DVecH p ) )
           ( ( l DVIsoA p ) ` ( x i^i ( l ww p ) ) ) ) ) ) ) @.

    @( Define projective subspace isomorphism. @)
    df-dvisoh @a |- DVIsoH = ( l e. _V , p e. _V |->
          ( ( l DVIsoA p ) u. ( l DVIsoC p ) ) ) @.

    @( Define constructed orthocomplement. @)
    df-soc @a |- S_|_ = ( l e. _V , p e. _V |->
        ( s e. ( SubSpNEW ` ( l DVecH p ) ) |->
          ( ( _|_P ` l ) ` ( `' ( l DVIsoH p ) ` s ) ) ) ) @.

    @( Define the opposite of a ring with multiplication reversed. @)
    df-ropp @a |- Ropp = ( r e. _V |-> ( ( r |` ( _V \ { 3 } ) ) u.
      { <. 3 , ( x e. ( Base ` r ) , y e. ( Base ` r ) |->
          ( y ( .r ` r ) x ) ) >. } ) ) @.

    @( Define the left dual of a vector space. @)
    df-vldual @a |- Vldual = ( v e. _V |-> ( ( v |` ( _V \ ( 3 ... 6 ) ) ) u.
      { a | E. l E. k E. t E. u E. w (
          ( k = ( Base ` v )
            /\ t = ( .r ` ( Ropp ` v ) )
            /\ u = ( vbase ` v ) )
        /\ ( w = { g | ( g : u --> k /\ A. r e. k A. x e. u
                  ( g ` ( r ( .s ` v ) x ) ) = ( ( g ` x ) t r ) ) }
             /\ a e. ( { <. 3 , t >. , <. 4 , w >. } u.
                  { <. 5 , ( g e. v , h e. v |-> ( x e. u |->
                      ( ( g ` x ) ( +g ` v ) ( h ` x ) ) ) ) >. ,
                    <. 6 , ( r e. k , g e. v |-> ( x e. u |->
                      ( r t ( g ` x ) ) ) ) >. } ) ) ) } ) ) @.

    @( Define vector domain. @)
    df-vecdom @a |- vecdom = ( w e. _V |->
             ( iota d A. f e. ( vbase ` w ) d = dom f ) ) @.

    @( Define kernel of a functional. @)
    df-ker @a |- ker = ( w e. _V |-> ( f e. ( vbase ` w ) |->
       { x e. ( vecdom ` w ) | ( f ` x ) = ( 0g ` w ) } ) ) @.

    @( Define one-dimensional subspace map. @)
    df-mapd @a |- mapd = ( l e. _V , p e. _V |-> { a | E. v E. w
     ( v = ( l DVecH p ) /\ w = ( Vldual ` v )
       /\ a e. ( s e. { r | E. x e. ( vbase ` v )
          r = ( ( span ` v ) ` { x } ) } |->
               ( iota t A. x e. s A. f e. ( vbase ` w )
   ( ( ( ker ` w ) ` f ) = s /\ t = ( ( span ` w ) ` { f } ) ) ) ) ) } ) @.

    @( Define e vector image. @)
    df-eimage @a |- eimage = ( l e. _V , p e. _V |-> { a | E. v E. w E. e
        ( ( v = ( l DVecH p ) /\ w = ( Vldual ` v )
          /\ e = ( l ee p ) )
           /\ a e. ( iota f ( f e. ( ( l mapd p ) ` ( ( spanNEW ` v ) ` { e } )
                ) /\ ( f ` e ) = ( 1r ` w ) ) ) ) } ) @.

    @( Define h map. @)
    df-hmap @a |- hmap = ( l e. _V , p e. _V |-> { a | E. v E. w E. e E. f
   ( ( v = ( l DVecH p ) /\ w = ( Vldual ` v ) /\ e = ( l ee p ) )
     /\ ( f = ( l eimage p )
          /\ a e. ( y e. ( vbase ` v ) |-> if ( y = ( 0v ` v ) ,
              ( 0v ` w ) , if ( y e. ( ( spanNEW ` v ) ` { e } ) ,
   ( iota u ( u e. ( ( spanNEW ` w ) ` { f } ) /\ ( u ` e ) = ( f ` y ) ) ) ,
       ( iota u ( u e. ( vbase ` w )
            /\ ( ( l mapd p ) ` ( ( spanNEW ` v ) ` { y } ) )
                = ( ( spanNEW ` w ) ` { v } )
            /\ ( ( l mapd v ) ` ( ( span ` v ) ` { ( e ( -vNEW ` v ) y ) } ) )
            = ( ( span ` w ) ` { ( f ( -vNEW ` w ) u ) } ) ) ) ) ) ) ) ) } ) @.

    @( Define g map. @)
    df-gmap @a |- gmap = ( l e. _V , p e. _V |-> { a | E. v E. w E. e E. f
   ( v = ( l DVecH p ) /\ w = ( Vldual ` v ) /\ a e. ( f e. ( vbase ` v )
   |-> ( iota g ( g e. ( Base ` w ) /\ A. x e. ( vbase ` v )
          ( ( l hmap p ) ` ( f ( .s ` v ) x ) )
              = ( g ( .s ` w ) ( ( l hmap l ) ` x ) ) ) ) ) ) } ) @.

    @( Define Hilbert space constructed from Hilbert lattice. @)
    df-hltohil @a |- HLtoHil = ( l e. _V , p e. _V |->
       ( ( l DVecH p ) u.
         { <. 7 , ( l gmap p ) >. ,
           <. 8 , ( a e. ( vbase ` ( l DVecH p ) ) , b e.
 ( vbase ` ( l DVecH p ) ) |-> ( ( ( l hmap p ) ` b ) ` a ) ) >. } ) ) @.
  @}
$)

  $c LLines $.
  $c LPlanes $.
  $c LVols $.
  $c Lines $.
  $c Points $.
  $c PSubSp $.
  $c pmap $.

  $( Extend class notation with set of all "lattice lines" (lattice elements
     which cover an atom) in a Hilbert lattice. $)
  clln $a class LLines $.

  $( Extend class notation with set of all "lattice planes" (lattice elements
     which cover a line) in a Hilbert lattice. $)
  clpl $a class LPlanes $.

  $( Extend class notation with set of all 3-dimensional "lattice volumes"
     (lattice elements which cover a plane) in a Hilbert lattice. $)
  clvol $a class LVols $.

  $( Extend class notation with set of all projective lines for a Hilbert
     lattice. $)
  clines $a class Lines $.

  $( Extend class notation with set of all projective points. $)
  cpointsN $a class Points $.

  $( Extend class notation with set of all projective subspaces. $)
  cpsubsp $a class PSubSp $.

  $( Extend class notation with projective map. $)
  cpmap $a class pmap $.

  ${
    $d a k p q r s x $.
    $( Define the set of all "lattice lines" (lattice elements which cover an
       atom) in a Hilbert lattice ` k ` , in other words all elements of height
       2 (or lattice dimension 2 or projective dimension 1).  (Contributed by
       NM, 16-Jun-2012.) $)
    df-llines $a |- LLines = ( k e. _V |-> { x e. ( Base ` k ) |
          E. p e. ( Atoms ` k ) p ( <o ` k ) x } ) $.

    $( Define the set of all "lattice planes" (lattice elements which cover a
       line) in a Hilbert lattice ` k ` , in other words all elements of height
       3 (or lattice dimension 3 or projective dimension 2).  (Contributed by
       NM, 16-Jun-2012.) $)
    df-lplanes $a |- LPlanes = ( k e. _V |-> { x e. ( Base ` k ) |
          E. p e. ( LLines ` k ) p ( <o ` k ) x } ) $.

    $( Define the set of all 3-dimensional "lattice volumes" (lattice elements
       which cover a plane) in a Hilbert lattice ` k ` , in other words all
       elements of height 4 (or lattice dimension 4 or projective dimension 3).
       (Contributed by NM, 1-Jul-2012.) $)
    df-lvols $a |- LVols = ( k e. _V |-> { x e. ( Base ` k ) |
          E. p e. ( LPlanes ` k ) p ( <o ` k ) x } ) $.

    $( Define set of all projective lines for a Hilbert lattice (actually in
       any set at all, for simplicity).  The join of two distinct atoms equals
       a line.  Definition of lines in item 1 of [Holland95] p. 222.
       (Contributed by NM, 19-Sep-2011.) $)
    df-lines $a |- Lines = ( k e. _V |-> { s | E. q e. ( Atoms ` k )
     E. r e. ( Atoms ` k ) ( q =/= r /\
     s = { p e. ( Atoms ` k ) | p ( le ` k ) ( q ( join ` k ) r ) } ) } ) $.

    $( Define set of all projective points in a Hilbert lattice (actually in
       any set at all, for simplicity).  A projective point is the singleton of
       a lattice atom.  Definition 15.1 of [MaedaMaeda] p. 61.  Note that item
       1 in [Holland95] p. 222 defines a point as the atom itself, but this
       leads to a complicated subspace ordering that may be either membership
       or inclusion based on its arguments.  (Contributed by NM,
       2-Oct-2011.) $)
    df-pointsN $a |- Points = ( k e. _V |-> { q |
                   E. p e. ( Atoms ` k ) q = { p } } ) $.

    $( Define set of all projective subspaces.  Based on definition of subspace
       in [Holland95] p. 212.  (Contributed by NM, 2-Oct-2011.) $)
    df-psubsp $a |- PSubSp = ( k e. _V |-> { s | ( s C_ ( Atoms ` k )
      /\ A. p e. s A. q e. s A. r e. ( Atoms ` k )
        ( r ( le ` k ) ( p ( join ` k ) q ) -> r e. s ) ) } ) $.

    $( Define projective map for ` k ` at ` a ` .  Definition in Theorem 15.5
       of [MaedaMaeda] p. 62.  (Contributed by NM, 2-Oct-2011.) $)
    df-pmap $a |- pmap = ( k e. _V |-> ( a e. ( Base ` k ) |->
               { p e. ( Atoms ` k ) | p ( le ` k ) a } ) ) $.
  $}

  ${
    $d k p A $.  $d k x B $.  $d k C $.  $d k p x K $.
    llnset.b $e |- B = ( Base ` K ) $.
    llnset.c $e |- C = ( <o ` K ) $.
    llnset.a $e |- A = ( Atoms ` K ) $.
    llnset.n $e |- N = ( LLines ` K ) $.
    $( The set of lattice lines in a Hilbert lattice.  (Contributed by NM,
       16-Jun-2012.) $)
    llnset $p |- ( K e. D -> N = { x e. B | E. p e. A p C x } ) $=
      ( vk cvv cv cfv ccvr catm cbs fveq2 wcel wrex crab wceq elex clln syl6eqr
      wbr breqd rexeqbidv rabeqbidv df-llines fvex eqeltri rabex fvmpt syl5eq
      syl ) FEUAFNUAZGHOZAOZDUHZHBUBZACUCZUDFEUEUSGFUFPVDLMFUTVAMOZQPZUHZHVERPZ
      UBZAVESPZUCVDNUFVEFUDZVIVCAVJCVKVJFSPZCVEFSTIUGVKVGVBHVHBVKVHFRPBVEFRTKUG
      VKVFDUTVAVKVFFQPDVEFQTJUGUIUJUKAMHULVCACCVLNIFSUMUNUOUPUQUR $.

    $d x A $.  $d x C $.  $d p x X $.
    $( The predicate "is a lattice line".  (Contributed by NM, 16-Jun-2012.) $)
    islln $p |- ( K e. D -> ( X e. N <-> ( X e. B /\ E. p e. A p C X ) ) ) $=
      ( vx wcel cv wbr wrex crab wa llnset eleq2d breq2 rexbidv elrab syl6bb
      wceq ) EDNZGFNGHOZMOZCPZHAQZMBRZNGBNUHGCPZHAQZSUGFULGMABCDEFHIJKLTUAUKUNM
      GBUIGUFUJUMHAUIGUHCUBUCUDUE $.

    $( The predicate "is a lattice line".  (Contributed by NM, 16-Jun-2012.) $)
    islln4 $p |- ( ( K e. D /\ X e. B )
       -> ( X e. N <-> E. p e. A p C X ) ) $=
      ( wcel cv wbr wrex islln baibd ) EDMGFMGBMHNGCOHAPABCDEFGHIJKLQR $.

    $d p C $.  $d p P $.
    $( Condition implying a lattice line.  (Contributed by NM, 17-Jun-2012.) $)
    llni $p |- ( ( ( K e. D /\ X e. B /\ P e. A ) /\ P C X ) -> X e. N ) $=
      ( vp wcel w3a wbr wa cv wrex simpl2 rspcev 3ad2antl3 simpl1 syl mpbir2and
      breq1 wb islln ) FDNZHBNZEANZOEHCPZQZHGNZUJMRZHCPZMASZUIUJUKULTUKUIULUQUJ
      UPULMEAUOEHCUFUAUBUMUIUNUJUQQUGUIUJUKULUCABCDFGHMIJKLUHUDUE $.
  $}

  ${
    $d p K $.  $d p X $.
    llnbase.b $e |- B = ( Base ` K ) $.
    llnbase.n $e |- N = ( LLines ` K ) $.
    $( A lattice line is a lattice element.  (Contributed by NM,
       16-Jun-2012.) $)
    llnbase $p |- ( X e. N -> X e. B ) $=
      ( vp cvv wcel clln cfv c0 wceq n0i eqeq1i sylnib fvprc nsyl2 cv eqid ccvr
      wbr catm wrex islln simprbda mpancom ) BHIZDCIZDAIZUIBJKZLMZUHUICLMULCDNC
      UKLFOPBJQRUHUIUJGSDBUAKZUBGBUCKZUDUNAUMHBCDGEUMTUNTFUEUFUG $.
  $}

  ${
    $d p q A $.  $d p q B $.  $d p q K $.  $d p q X $.
    islln3.b $e |- B = ( Base ` K ) $.
    islln3.j $e |- .\/ = ( join ` K ) $.
    islln3.a $e |- A = ( Atoms ` K ) $.
    islln3.n $e |- N = ( LLines ` K ) $.
    $( The predicate "is a lattice line".  (Contributed by NM, 17-Jun-2012.) $)
    islln3 $p |- ( ( K e. HL /\ X e. B )
     -> ( X e. N <-> E. p e. A E. q e. A ( p =/= q /\ X = ( p .\/ q ) ) ) ) $=
      ( chlt wcel wa cv cfv wbr wrex wb ccvr co wceq eqid islln4 cple wn simpll
      wne atbase adantl simplr cvrval3 syl3anc cal hlatl ad3antrrr simpr atncmp
      necom syl6bb eqcom a1i anbi12d rexbidva bitrd ) DMNZFBNZOZFENHPZFDUAQZRZH
      ASVJGPZUIZFVJVMCUBZUCZOZGASZHASABVKMDEFHIVKUDZKLUEVIVLVRHAVIVJANZOZVLVMVJ
      DUFQZRUGZVOFUCZOZGASZVRWAVGVJBNZVHVLWFTVGVHVTUHVTWGVIABVJDIKUJUKVGVHVTULA
      BVKCDWBVJFGIWBUDZJVSKUMUNWAWEVQGAWAVMANZOZWCVNWDVPWJWCVMVJUIZVNWJDUONZWIV
      TWCWKTVGWLVHVTWIDUPUQWAWIURVIVTWIULAVMVJDWBWHKUSUNVMVJUTVAWDVPTWJVOFVBVCV
      DVEVFVEVF $.

    $( The predicate "is a lattice line".  (Contributed by NM, 23-Jun-2012.) $)
    islln2 $p |- ( K e. HL -> ( X e. N
   <-> ( X e. B /\ E. p e. A E. q e. A ( p =/= q /\ X = ( p .\/ q ) ) ) ) ) $=
      ( wcel wa chlt cv wne co wceq wrex llnbase pm4.71ri islln3 pm5.32da
      syl5bb ) FEMZFBMZUFNDOMZUGHPZGPZQFUIUJCRSNGATHATZNUFUGBDEFILUAUBUHUGUFUKA
      BCDEFGHIJKLUCUDUE $.
  $}

  ${
    $d r s A $.  $d r s .\/ $.  $d r s K $.  $d r s P $.  $d r s Q $.
    llni2.j $e |- .\/ = ( join ` K ) $.
    llni2.a $e |- A = ( Atoms ` K ) $.
    llni2.n $e |- N = ( LLines ` K ) $.
    $( The join of two different atoms is a lattice line.  (Contributed by NM,
       26-Jun-2012.) $)
    llni2 $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A ) /\ P =/= Q )
         -> ( P .\/ Q ) e. N ) $=
      ( vr vs wcel wne wa co cv wceq wrex eqeq2d anbi12d chlt w3a simpl2 simpl3
      simpr eqidd neeq1 oveq1 neeq2 oveq2 rspc2ev syl112anc cbs cfv simpl1 eqid
      wb hlatjcl adantr islln3 syl2anc mpbird ) EUALZBALZCALZUBZBCMZNZBCDOZFLZJ
      PZKPZMZVIVKVLDOZQZNZKARJARZVHVDVEVGVIVIQZVQVCVDVEVGUCVCVDVEVGUDVFVGUEVHVI
      UFVPVGVRNBVLMZVIBVLDOZQZNJKBCAAVKBQZVMVSVOWAVKBVLUGWBVNVTVIVKBVLDUHSTVLCQ
      ZVSVGWAVRVLCBUIWCVTVIVIVLCBDUJSTUKULVHVCVIEUMUNZLZVJVQUQVCVDVEVGUOVFWEVGA
      WDDEBCWDUPZGHURUSAWDDEFVIKJWFGHIUTVAVB $.
  $}

  ${
    $d q A $.  $d q K $.  $d q .<_ $.  $d q N $.  $d q X $.  $d q P $.
    llnnleat.l $e |- .<_ = ( le ` K ) $.
    llnnleat.a $e |- A = ( Atoms ` K ) $.
    llnnleat.n $e |- N = ( LLines ` K ) $.
    $( An atom cannot majorize a lattice line.  (Contributed by NM,
       8-Jul-2012.) $)
    llnnleat $p |- ( ( K e. HL /\ X e. N /\ P e. A ) -> -. X .<_ P ) $=
      ( vq chlt wcel w3a cfv wbr wn wa simp2 eqid syl cv ccvr wrex cbs wb islln
      3ad2ant1 mpbid simprd cplt cal simp11 hlatl simp13 atnlt syl3anc 3ad2ant2
      atbase simp12 llnbase simp3 cvrlt syl31anc wi hlpos pltletr syl13anc mtod
      cpo mpand rexlimdv3a mpd ) CKLZFELZBALZMZJUAZFCUBNZOZJAUCZFBDOZPZVPFCUDNZ
      LZVTVPVNWDVTQZVMVNVORVMVNVNWEUEVOAWCVRKCEFJWCSZVRSZHIUFUGUHUIVPVSWBJAVPVQ
      ALZVSMZWAVQBCUJNZOZWICUKLZWHVOWKPWIVMWLVMVNVOWHVSULZCUMTVPWHVSRVMVNVOWHVS
      UNZAVQBWJCWJSZHUOUPWIVQFWJOZWAWKWIVMVQWCLZWDVSWPWMWHVPWQVSAWCVQCWFHURUQZW
      IVNWDVMVNVOWHVSUSWCCEFWFIUTTZVPWHVSVAKWCVRWJCVQFWFWOWGVBVCWICVILZWQWDBWCL
      ZWPWAQWKVDWIVMWTWMCVETWRWSWIVOXAWNAWCBCWFHURTWCWJCDVQFBWFGWOVFVGVJVHVKVL
      $.
  $}

  ${
    llnneat.a $e |- A = ( Atoms ` K ) $.
    llnneat.n $e |- N = ( LLines ` K ) $.
    $( A lattice line is not an atom.  (Contributed by NM, 19-Jun-2012.) $)
    llnneat $p |- ( ( K e. HL /\ X e. N ) -> -. X e. A ) $=
      ( chlt wcel wa cple cfv wbr clat cbs hllat eqid llnbase latref syl2an wn
      llnnleat 3expia mt2d ) BGHZDCHZIDAHZDDBJKZLZUDBMHDBNKZHUHUEBOUIBCDUIPZFQU
      IBUGDUJUGPZRSUDUEUFUHTADBUGCDUKEFUAUBUC $.
  $}

  ${
    2atneat.j $e |- .\/ = ( join ` K ) $.
    2atneat.a $e |- A = ( Atoms ` K ) $.
    $( The join of two distinct atoms is not an atom.  (Contributed by NM,
       12-Oct-2012.) $)
    2atneat $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ P =/= Q ) )
         -> -. ( P .\/ Q ) e. A ) $=
      ( chlt wcel wne w3a co clln cfv wn wa simpl simpr1 simpr2 simpr3 syl31anc
      eqid llni2 llnneat syldan ) EHIZBAIZCAIZBCJZKZBCDLZEMNZIZUKAIOUFUJPUFUGUH
      UIUMUFUJQUFUGUHUIRUFUGUHUISUFUGUHUITABCDEULFGULUBZUCUAAEULUKGUNUDUE $.
  $}

  ${
    $d p K $.  $d p N $.  $d p X $.  $d p .0. $.
    llnn0.z $e |- .0. = ( 0. ` K ) $.
    llnn0.n $e |- N = ( LLines ` K ) $.
    $( A lattice line is nonzero.  (Contributed by NM, 15-Jul-2012.) $)
    llnn0 $p |- ( ( K e. HL /\ X e. N ) -> X =/= .0. ) $=
      ( vp chlt wcel wa cv catm cfv wne wex c0 eqid atex n0 wbr sylib adantr wn
      cple llnnleat 3expa wceq cops cbs hlop ad2antrr atbase adantl op0le breq1
      syl2anc syl5ibrcom necon3bd mpd exlimddv ) AHIZCBIZJZGKZALMZIZCDNZGVAVFGO
      ZVBVAVEPNVHVEAVEQZRGVESUAUBVCVFJZCVDAUDMZTZUCZVGVAVBVFVMVEVDAVKBCVKQZVIFU
      EUFVJVLCDVJVLCDUGDVDVKTZVJAUHIZVDAUIMZIZVOVAVPVBVFAUJUKVFVRVCVEVQVDAVQQZV
      IULUMVQAVKVDDVSVNEUNUPCDVDVKUOUQURUSUT $.
  $}

  ${
    islln2a.j $e |- .\/ = ( join ` K ) $.
    islln2a.a $e |- A = ( Atoms ` K ) $.
    islln2a.n $e |- N = ( LLines ` K ) $.
    $( The predicate "is a lattice line" in terms of atoms.  (Contributed by
       NM, 15-Jul-2012.) $)
    islln2a $p |- ( ( K e. HL /\ P e. A /\ Q e. A )
        -> ( ( P .\/ Q ) e. N <-> P =/= Q ) ) $=
      ( chlt wcel w3a co wne wceq wn wa oveq1 hlatjidm ex 3adant2 llnneat con2d
      sylan9eqr adantlr 3impia adantr eqneltrd necon2ad llni2 impbid ) EJKZBAKZ
      CAKZLZBCDMZFKZBCNZUOUQBCUOBCOZUQPUOUSQUPCFUSUOUPCCDMZCBCCDRULUNUTCOUMADEC
      GHSUAUDUOCFKZPZUSULUMUNVBULUMQZVAUNVCVAUNPZULVAVDUMAEFCHIUBUETUCUFUGUHTUI
      UOURUQABCDEFGHIUJTUK $.
  $}

  ${
    $d p q A $.  $d p q B $.  $d p q y K $.  $d p q y .<_ $.  $d p q y N $.
    $d p q y X $.  $d p q .0. $.
    llnle.b $e |- B = ( Base ` K ) $.
    llnle.l $e |- .<_ = ( le ` K ) $.
    llnle.z $e |- .0. = ( 0. ` K ) $.
    llnle.a $e |- A = ( Atoms ` K ) $.
    llnle.n $e |- N = ( LLines ` K ) $.
    $( Any element greater than 0 and not an atom majorizes a lattice line.
       (Contributed by NM, 28-Jun-2012.) $)
    llnle $p |- ( ( ( K e. HL /\ X e. B ) /\ ( X =/= .0. /\ -. X e. A ) )
               -> E. y e. N y .<_ X ) $=
      ( vp vq chlt wcel wa cv wbr wne wn wrex simpll simplr simprl atle syl3anc
      w3a cjn cfv ccvr cplt simp1ll atbase 3ad2ant2 simp1lr simp3 simp2 simp1rr
      co nelne2 syl2anc wb pltval mpbir2and hlrelat3 syl31anc wi simp21 hlatjcl
      eqid simp23 simp3l llni simp3r breq1 rspcev 3exp 3expd 3imp rexlimdv mpd
      ) DPQZGCQZRZGHUAZGBQUBZRZRZNSZGETZNBUCZASZGETZAFUCZWJWDWEWGWMWDWEWIUDWDWE
      WIUEWFWGWHUFBCDEGHNIJKLUGUHWJWLWPNBWJWKBQZWLWPWJWQWLUIZWKWKOSZDUJUKZVAZDU
      LUKZTZXAGETZRZOBUCZWPWRWDWKCQZWEWKGDUMUKZTZXFWDWEWIWQWLUNZWQWJXGWLBCWKDIL
      UOUPWDWEWIWQWLUQZWRXIWLWKGUAZWJWQWLURWRWQWHXLWJWQWLUSZWGWHWFWQWLUTWKGBVBV
      CWRWDWQWEXIWLXLRVDXJXMXKPBCXHDEWKGJXHVLZVEUHVFBCXBXHWTDEWKGOIJXNWTVLZXBVL
      ZLVGVHWRXEWPOBWJWQWLWSBQZXEWPVIZVIWJWQWLXQXRWJWQWLXQUIZXEWPWJXSXEUIZXAFQZ
      XDWPXTWDXACQZWQXCYAWDWEWIXSXEUNZXTWDWQXQYBYCWJWQWLXQXEVJZWJWQWLXQXEVMBCWT
      DWKWSIXOLVKUHYDWJXSXCXDVNBCXBPWKDFXAIXPLMVOVHWJXSXCXDVPWOXDAXAFWNXAGEVQVR
      VCVSVTWAWBWCVSWBWC $.
  $}

  ${
    $d q r A $.  $d q r C $.  $d q r K $.  $d q r .<_ $.  $d q r N $.
    $d q r P $.  $d q r X $.
    atcvrlln2.l $e |- .<_ = ( le ` K ) $.
    atcvrlln2.c $e |- C = ( <o ` K ) $.
    atcvrlln2.a $e |- A = ( Atoms ` K ) $.
    atcvrlln2.n $e |- N = ( LLines ` K ) $.
    $( An atom under a line is covered by it.  (Contributed by NM,
       2-Jul-2012.) $)
    atcvrlln2 $p |- ( ( ( K e. HL /\ P e. A /\ X e. N ) /\ P .<_ X )
        -> P C X ) $=
      ( vq vr wcel w3a wbr wa cv cfv wrex chlt wne cjn co wceq simpl3 wb simpl1
      cbs llnbase syl islln3 syl2anc mpbid simp1l1 simp1l2 simp2l simp2r simp3l
      eqid simp1r simp3r breqtrd atcvrj2 syl132anc breqtrrd 3exp rexlimdvv mpd
      ) DUANZCANZGFNZOZCGEPZQZLRZMRZUBZGVPVQDUCSZUDZUEZQZMATLATZCGBPZVOVLWCVJVK
      VLVNUFZVOVJGDUISZNZVLWCUGVJVKVLVNUHVOVLWGWEWFDFGWFUTZKUJUKAWFVSDFGMLWHVSU
      TZJKULUMUNVOWBWDLMAAVOVPANZVQANZQZWBWDVOWLWBOZCVTGBWMVJVKWJWKVRCVTEPCVTBP
      VJVKVLVNWLWBUOVJVKVLVNWLWBUPVOWJWKWBUQVOWJWKWBURVOWLVRWAUSWMCGVTEVMVNWLWB
      VAVOWLVRWAVBZVCABCVPVQVSDEHWIIJVDVEWNVFVGVHVI $.
  $}

  ${
    $d p q A $.  $d p q B $.  $d p q C $.  $d p q K $.  $d p q X $.
    $d p q Y $.
    atcvrlln.b $e |- B = ( Base ` K ) $.
    atcvrlln.c $e |- C = ( <o ` K ) $.
    atcvrlln.a $e |- A = ( Atoms ` K ) $.
    atcvrlln.n $e |- N = ( LLines ` K ) $.
    $( An element covering an atom is a lattice line and vice-versa.
       (Contributed by NM, 18-Jun-2012.) $)
    atcvrlln $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B ) /\ X C Y )
        -> ( X e. A <-> Y e. N ) ) $=
      ( vp vq chlt wcel w3a wbr wa simpll1 simpll3 simpr simplr syl31anc cv wne
      llni cjn cfv co wceq wrex wb eqid islln3 syl2anc mpbid wi simp1l1 simp1l2
      simp2l simp2r simp3l simp1r simp3r cvrat2 syl132anc 3exp rexlimdvv adantr
      breqtrd mpd impbida ) DNOZFBOZGBOZPZFGCQZRZFAOZGEOZVRVSRVMVOVSVQVTVMVNVOV
      QVSSVMVNVOVQVSTVRVSUAVPVQVSUBABCNFDEGHIJKUFUCVRVTRZLUDZMUDZUEZGWBWCDUGUHZ
      UIZUJZRZMAUKLAUKZVSWAVTWIVRVTUAWAVMVOVTWIULVMVNVOVQVTSVMVNVOVQVTTABWEDEGM
      LHWEUMZJKUNUOUPVRWIVSUQVTVRWHVSLMAAVRWBAOZWCAOZRZWHVSVRWMWHPZVMVNWKWLWDFW
      FCQVSVMVNVOVQWMWHURVMVNVOVQWMWHUSVRWKWLWHUTVRWKWLWHVAVRWMWDWGVBWNFGWFCVPV
      QWMWHVCVRWMWDWGVDVJABCWBWCWEDFHWJIJVEVFVGVHVIVKVL $.
  $}

  ${
    $d q A $.  $d q K $.  $d q .<_ $.  $d q N $.  $d q P $.  $d q X $.
    llnexat.l $e |- .<_ = ( le ` K ) $.
    llnexat.j $e |- .\/ = ( join ` K ) $.
    llnexat.a $e |- A = ( Atoms ` K ) $.
    llnexat.n $e |- N = ( LLines ` K ) $.
    $( Given an atom on a line, there is another atom whose join equals the
       line.  (Contributed by NM, 26-Jun-2012.)  (New usage is discouraged.) $)
    llnexatN $p |- ( ( ( K e. HL /\ X e. N /\ P e. A ) /\ P .<_ X )
      -> E. q e. A ( P =/= q /\ X = ( P .\/ q ) ) ) $=
      ( wcel w3a wbr wa cfv wne wceq syl chlt ccvr cv co wrex simp1 simp3 simp2
      3jca eqid atcvrlln2 sylan cbs simpl1 simpl3 atbase simpl2 llnbase cvrval3
      wn wb syl3anc cal simpll1 hlatl simpr simpll3 atncmp anbi1d necom anbi12i
      eqcom syl6bb rexbidva bitrd mpbid ) DUAMZGFMZBAMZNZBGEOZPZBGDUBQZOZBHUCZR
      ZGBWECUDZSZPZHAUEZVTVQVSVRNWAWDVTVQVSVRVQVRVSUFVQVRVSUGVQVRVSUHUIAWCBDEFG
      IWCUJZKLUKULWBWDWEBEOUTZWGGSZPZHAUEZWJWBVQBDUMQZMZGWPMZWDWOVAVQVRVSWAUNWB
      VSWQVQVRVSWAUOAWPBDWPUJZKUPTWBVRWRVQVRVSWAUQWPDFGWSLURTAWPWCCDEBGHWSIJWKK
      USVBWBWNWIHAWBWEAMZPZWNWEBRZWMPWIXAWLXBWMXADVCMZWTVSWLXBVAXAVQXCVQVRVSWAW
      TVDDVETWBWTVFVQVRVSWAWTVGAWEBDEIKVHVBVIXBWFWMWHWEBVJWGGVLVKVMVNVOVP $.
  $}

  ${
    $d p K $.  $d p .<_ $.  $d p N $.  $d p X $.  $d p Y $.
    llncmp.l $e |- .<_ = ( le ` K ) $.
    llncmp.n $e |- N = ( LLines ` K ) $.
    $( If two lattice lines are comparable, they are equal.  (Contributed by
       NM, 19-Jun-2012.) $)
    llncmp $p |- ( ( K e. HL /\ X e. N /\ Y e. N )
                -> ( X .<_ Y <-> X = Y ) ) $=
      ( vp chlt wcel w3a wbr cfv wi wb eqid llnbase syl2anc mpbid wa wceq simp2
      ccvr catm wrex cbs simp1 3ad2ant2 islln4 simpr3 cpo hlpos 3ad2ant1 adantr
      cv simpl3 syl simpr1 atbase simpr2 simpl1 cvrle syl31anc mp2and atcvrlln2
      postr syl13anc cvrcmp syl132anc 3exp2 rexlimdv mpd posref breq2 syl5ibcom
      impbid ) AIJZDCJZECJZKZDEBLZDEUAZVTHUOZDAUCMZLZHAUDMZUEZWAWBNZVTVRWGVQVRV
      SUBVTVQDAUFMZJZVRWGOVQVRVSUGVRVQWJVSWIACDWIPZGQUHZWFWIWDIACDHWKWDPZWFPZGU
      IRSVTWEWHHWFVTWCWFJZWEWAWBVTWOWEWAKZTZWAWBVTWOWEWAUJZWQAUKJZWJEWIJZWCWIJZ
      WEWCEWDLZWAWBOVTWSWPVQVRWSVSAULUMZUNZVTWJWPWLUNZWQVSWTVQVRVSWPUPZWIACEWKG
      QUQZWQWOXAVTWOWEWAURZWFWIWCAWKWNUSUQZVTWOWEWAUTZWQVQWOVSWCEBLZXBVQVRVSWPV
      AZXHXFWQWCDBLZWAXKWQVQXAWJWEXMXLXIXEXJIWIWDABWCDWKFWMVBVCWRWQWSXAWJWTXMWA
      TXKNXDXIXEXGWIABWCDEWKFVFVGVDWFWDWCABCEFWMWNGVEVCWIWDABDEWCWKFWMVHVISVJVK
      VLVTDDBLZWBWAVTWSWJXNXCWLWIABDWKFVMRDEDBVNVOVP $.
  $}

  ${
    llnnlt.s $e |- .< = ( lt ` K ) $.
    llnnlt.n $e |- N = ( LLines ` K ) $.
    $( Two lattice lines cannot satisfy the less than relation.  (Contributed
       by NM, 26-Jun-2012.) $)
    llnnlt $p |- ( ( K e. HL /\ X e. N /\ Y e. N ) -> -. X .< Y ) $=
      ( chlt wcel w3a wbr wceq pltirr 3adant3 breq2 notbid syl5ibcom cple cfv
      wn eqid pltle llncmp sylibd necon3ad pm2.61dne ) BHIZDCIZECIZJZDEAKZTZDEU
      JDDAKZTZDELZULUGUHUNUIHCABDFMNUOUMUKDEDAOPQUJUKDEUJUKDEBRSZKUOHCCABUPDEUP
      UAZFUBBUPCDEUQGUCUDUEUF $.
  $}

  ${
    $d p A $.  $d p K $.  $d p ./\ $.  $d p N $.  $d p X $.  $d p Y $.
    $d p .0. $.
    2llnmat.m $e |- ./\ = ( meet ` K ) $.
    2llnmat.z $e |- .0. = ( 0. ` K ) $.
    2llnmat.a $e |- A = ( Atoms ` K ) $.
    2llnmat.n $e |- N = ( LLines ` K ) $.
    $( Two intersecting lines intersect at an atom.  (Contributed by NM,
       30-Apr-2012.) $)
    2llnmat $p |- ( ( ( K e. HL /\ X e. N /\ Y e. N )
        /\ ( X =/= Y /\ ( X ./\ Y ) =/= .0. ) ) -> ( X ./\ Y ) e. A ) $=
      ( vp wcel wne wa wceq cfv wbr syl syl3anc chlt w3a co cv wrex cple simpl1
      cal cbs hlatl clat hllat simpl2 eqid llnbase simpl3 latmcl simprr simp1rl
      atlex wb simp1l llncmp simp1l1 simp1l2 simp1l3 latleeqm1 bitr3d necon3bid
      mpbid wo wi simp3 latmle1 cpo ccvr hlpos atbase 3ad2ant2 lattrd atcvrlln2
      simp2 syl31anc cvrnbtwn4 syl131anc mpbi2and neor sylib mpd 3exp reximdvai
      necon1d risset sylibr ) BUAMZEDMZFDMZUBZEFNZEFCUCZGNZOZOZLUDZWTPZLAUEZWTA
      MXCXDWTBUFQZRZLAUEZXFXCBUHMZWTBUIQZMZXAXIXCWOXJWOWPWQXBUGZBUJSXCBUKMZEXKM
      ZFXKMZXLXCWOXNXMBULZSXCWPXOWOWPWQXBUMXKBDEXKUNZKUOZSXCWQXPWOWPWQXBUPXKBDF
      XRKUOZSXKBCEFXRHUQZTWRWSXAURLAXKBXGWTGXRXGUNZIJUTTXCXHXELAXCXDAMZXHXEXCYC
      XHUBZWTENZXEYDWSYEWSXAWRYCXHUSYDEFWTEYDEFXGRZEFPZWTEPZYDWRYFYGVAWRXBYCXHV
      BBXGDEFYBKVCSYDXNXOXPYFYHVAYDWOXNWOWPWQXBYCXHVDZXQSZYDWPXOWOWPWQXBYCXHVEZ
      XSSZYDWQXPWOWPWQXBYCXHVFXTSZXKBXGCEFXRYBHVGTVHVIVJYDXDWTWTEYDXEYHVKZXDWTN
      YHVLYDXHWTEXGRZYNXCYCXHVMZYDXNXOXPYOYJYLYMXKBXGCEFXRYBHVNTZYDBVOMZXDXKMZX
      OXLXDEBVPQZRZXHYOOYNVAYDWOYRYIBVQSYCXCYSXHAXKXDBXRJVRVSZYLYDXNXOXPXLYJYLY
      MYATZYDWOYCWPXDEXGRUUAYIXCYCXHWBYKYDXKBXGXDWTEXRYBYJUUBUUCYLYPYQVTAYTXDBX
      GDEYBYTUNZJKWAWCXKYTBXGXDEWTXRYBUUDWDWEWFYHXDWTWGWHWLWIWJWKWILWTAWMWN $.
  $}

  ${
    2atmatz.j $e |- .\/ = ( join ` K ) $.
    2atmatz.m $e |- ./\ = ( meet ` K ) $.
    2atmatz.z $e |- .0. = ( 0. ` K ) $.
    2atmatz.a $e |- A = ( Atoms ` K ) $.
    $( Special case of ~ 2atmat0 where one atom could be zero.  (Contributed by
       NM, 30-May-2013.) $)
    2at0mat0 $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
    /\ ( R e. A /\ ( S e. A \/ S = .0. ) /\ ( P .\/ Q ) =/= ( R .\/ S ) ) )
    -> ( ( ( P .\/ Q ) ./\ ( R .\/ S ) ) e. A
         \/ ( ( P .\/ Q ) ./\ ( R .\/ S ) ) = .0. ) ) $=
      ( wcel wceq wo co wa syl adantr chlt w3a wne simpll simplr1 simpr simplr3
      col cbs cfv simpl1 hlol simpr1 simpr2 eqid hlatjcl syl3anc simpl3 meetat2
      oveq1 hlatjidm syl2anc sylan9eqr oveq1d hllat atbase latmcom eqtrd eleq1d
      clat eqeq1d orbi12d mpbird oveq2d adantlr wn clln simpll1 simpll2 simpll3
      df-ne wi llni2 syl31anc simplr2 2llnmat syl32anc 3exp2 imp31 syl5bir orrd
      simpr3 orcomd pm2.61dane syl13anc oveq2 olj01 mpjaodan ) GUANZBANZCANZUBZ
      DANZEANZEIOZPZBCFQZDEFQZUCZUBZRZXDXGXHHQZANZXLIOZPZXEXKXDRXBXCXDXIXOXBXJX
      DUDXCXFXIXBXDUEXKXDUFXCXFXIXBXDUGXBXCXDXIUBZRZXOBCXQBCOZRZXOXHCHQZANZXTIO
      ZPZXQYCXRXQGUHNZXHGUIUJZNZXAYCXQWSYDWSWTXAXPUKZGULZSZXQWSXCXDYFYGXBXCXDXI
      UMXBXCXDXIUNZAYEFGDEYEUOZJMUPUQZWSWTXAXPURZAYECGHXHIYKKLMUSUQTXSXMYAXNYBX
      SXLXTAXSXLCXHHQZXTXSXGCXHHXRXQXGCCFQZCBCCFUTXQWSXAYOCOYGYMAFGCJMVAVBVCVDX
      QYNXTOZXRXQGVJNZCYENZYFYPXQWSYQYGGVESXQXAYRYMAYECGYKMVFSYLYEGHCXHYKKVGUQT
      VHZVIXSXLXTIYSVKVLVMXQBCUCZRZXODEXQDEOZXOYTXQUUBRZXOXGEHQZANZUUDIOZPZXQUU
      GUUBXQYDXGYENZXDUUGYIXBUUHXPAYEFGBCYKJMUPZTYJAYEEGHXGIYKKLMUSUQTUUCXMUUEX
      NUUFUUCXLUUDAUUCXHEXGHUUBXQXHEEFQZEDEEFUTXQWSXDUUJEOYGYJAFGEJMVAVBVCVNZVI
      UUCXLUUDIUUKVKVLVMVOUUADEUCZRZXNXMUUMXNXMXNVPXLIUCZUUMXMXLIWAXQYTUULUUNXM
      WBXQYTUULUUNXMXQYTUULUUNUBZRZWSXGGVQUJZNZXHUUQNZXIUUNXMWSWTXAXPUUOVRZUUPW
      SWTXAYTUURUUTWSWTXAXPUUOVSWSWTXAXPUUOVTXQYTUULUUNUMABCFGUUQJMUUQUOZWCWDUU
      PWSXCXDUULUUSUUTXCXDXIXBUUOUEXCXDXIXBUUOWEXQYTUULUUNUNADEFGUUQJMUVAWCWDXC
      XDXIXBUUOUGXQYTUULUUNWLAGHUUQXGXHIKLMUVAWFWGWHWIWJWKWMWNWNWOXKXERZXOXGDHQ
      ZANZUVCIOZPZXKUVFXEXKYDUUHXCUVFXKWSYDWSWTXAXJUKYHSZXBUUHXJUUITXBXCXFXIUMZ
      AYEDGHXGIYKKLMUSUQTUVBXMUVDXNUVEUVBXLUVCAUVBXHDXGHXEXKXHDIFQZDEIDFWPXKYDD
      YENZUVIDOUVGXKXCUVJUVHAYEDGYKMVFSYEFGDIYKJLWQVBVCVNZVIUVBXLUVCIUVKVKVLVMX
      BXCXFXIUNWR $.

    $( The meet of two unequal lines (expressed as joins of atoms) is an atom
       or zero.  (Contributed by NM, 2-Dec-2012.) $)
    2atmat0 $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
    /\ ( R e. A /\ S e. A /\ ( P .\/ Q ) =/= ( R .\/ S ) ) )
    -> ( ( ( P .\/ Q ) ./\ ( R .\/ S ) ) e. A
          \/ ( ( P .\/ Q ) ./\ ( R .\/ S ) ) = .0. ) ) $=
      ( chlt wcel w3a co wne wceq wo simpl simpr1 simpr2 orcd 2at0mat0 syl13anc
      wa simpr3 ) GNOBAOCAOPZDAOZEAOZBCFQZDEFQZRZPZUGZUIUJUKEISZTUNULUMHQZAOURI
      STUIUOUAUIUJUKUNUBUPUKUQUIUJUKUNUCUDUIUJUKUNUHABCDEFGHIJKLMUEUF $.
  $}

  ${
    2atm.l $e |- .<_ = ( le ` K ) $.
    2atm.j $e |- .\/ = ( join ` K ) $.
    2atm.m $e |- ./\ = ( meet ` K ) $.
    2atm.a $e |- A = ( Atoms ` K ) $.
    $( An atom majorized by two different atom joins (which could be atoms or
       lines) is equal to their intersection.  (Contributed by NM,
       30-Jun-2013.) $)
    2atm $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
    /\ ( R e. A /\ S e. A /\ T e. A )
    /\ ( T .<_ ( P .\/ Q ) /\ T .<_ ( R .\/ S )
        /\ ( P .\/ Q ) =/= ( R .\/ S ) ) )
    -> T = ( ( P .\/ Q ) ./\ ( R .\/ S ) ) ) $=
      ( wcel w3a co wbr syl syl3anc chlt wne wceq simp31 simp32 clat cbs cfv wa
      wb simp11 hllat simp23 atbase simp12 simp13 latjcl simp21 simp22 latlem12
      eqid hlatjcl syl13anc mpbi2and cal hlatl latmcl atlen0 syl31anc neneqd wo
      cp0 simp33 2atmat0 syl33anc ord mt3d atcmp mpbid ) HUAOZBAOZCAOZPZDAOZEAO
      ZFAOZPZFBCGQZIRZFDEGQZIRZWHWJUBZPZPZFWHWJJQZIRZFWOUCZWNWIWKWPWCWGWIWKWLUD
      WCWGWIWKWLUEWNHUFOZFHUGUHZOZWHWSOZWJWSOZWIWKUIWPUJWNVTWRVTWAWBWGWMUKZHULS
      ZWNWFWTWCWDWEWFWMUMZAWSFHWSVAZNUNSWNWRBWSOZCWSOZXAXDWNWAXGVTWAWBWGWMUOZAW
      SBHXFNUNSWNWBXHVTWAWBWGWMUPZAWSCHXFNUNSWSGHBCXFLUQTZWNVTWDWEXBXCWCWDWEWFW
      MURZWCWDWEWFWMUSZAWSGHDEXFLNVBTZWSHIJFWHWJXFKMUTVCVDZWNHVEOZWFWOAOZWPWQUJ
      WNVTXPXCHVFSZXEWNXQWOHVLUHZUCZWNWOXSWNXPWOWSOZWFWPWOXSUBXRWNWRXAXBYAXDXKX
      NWSHJWHWJXFMVGTXEXOAWSFHIWOXSXFKXSVAZNVHVIVJWNXQXTWNVTWAWBWDWEWLXQXTVKXCX
      IXJXLXMWCWGWIWKWLVMABCDEGHJXSLMYBNVNVOVPVQAFWOHIKNVRTVS $.

    $( Variation of projective geometry axiom ~ ps-2 .  (Contributed by NM,
       3-Jul-2012.) $)
    ps-2c $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
        /\ ( R e. A /\ S e. A /\ T e. A )
        /\ ( ( -. P .<_ ( Q .\/ R ) /\ S =/= T )
           /\ ( P .\/ R ) =/= ( S .\/ T )
           /\ ( S .<_ ( P .\/ Q ) /\ T .<_ ( Q .\/ R ) ) ) )
  -> ( ( P .\/ R ) ./\ ( S .\/ T ) ) e. A ) $=
      ( wcel w3a co wbr wne syl chlt clln cfv cp0 simp11 simp12 simp21 clat cbs
      wn wa hllat eqid atbase simp13 simp31l latnlej1r syl131anc llni2 syl31anc
      simp22 simp23 simp31r simp32 simp33 ps-2b syl333anc 2llnmat syl32anc ) HU
      AOZBAOZCAOZPZDAOZEAOZFAOZPZBCDGQZIRUJZEFSZUKZBDGQZEFGQZSZEBCGQIRFVRIRUKZP
      ZPZVJWBHUBUCZOZWCWHOZWDWBWCJQZHUDUCZSZWKAOVJVKVLVQWFUEZWGVJVKVNBDSZWIWNVJ
      VKVLVQWFUFZVMVNVOVPWFUGZWGHUHOZBHUIUCZOZCWSOZDWSOZVSWOWGVJWRWNHULTWGVKWTW
      PAWSBHWSUMZNUNTWGVLXAVJVKVLVQWFUOZAWSCHXCNUNTWGVNXBWQAWSDHXCNUNTVSVTWDWEV
      MVQUPZWSGHIBCDXCKLUQURABDGHWHLNWHUMZUSUTWGVJVOVPVTWJWNVMVNVOVPWFVAZVMVNVO
      VPWFVBZVSVTWDWEVMVQVCZAEFGHWHLNXFUSUTVMVQWAWDWEVDWGVJVKVLVNVOVPVSVTWEWMWN
      WPXDWQXGXHXEXIVMVQWAWDWEVEABCDEFGHIJWLKLMWLUMZNVFVGAHJWHWBWCWLMXJNXFVHVI
      $.
  $}

  ${
    $d k y N $.  $d k x B $.  $d k C $.  $d k y x K $.
    lplnset.b $e |- B = ( Base ` K ) $.
    lplnset.c $e |- C = ( <o ` K ) $.
    lplnset.n $e |- N = ( LLines ` K ) $.
    lplnset.p $e |- P = ( LPlanes ` K ) $.
    $( The set of lattice planes in a Hilbert lattice.  (Contributed by NM,
       16-Jun-2012.) $)
    lplnset $p |- ( K e. A -> P = { x e. B | E. y e. N y C x } ) $=
      ( vk cvv cv cfv ccvr clln cbs fveq2 wcel wrex crab wceq elex clpl syl6eqr
      wbr breqd rexeqbidv rabeqbidv df-lplanes fvex eqeltri rabex fvmpt syl5eq
      syl ) GCUAGNUAZFBOZAOZEUHZBHUBZADUCZUDGCUEUSFGUFPVDLMGUTVAMOZQPZUHZBVERPZ
      UBZAVESPZUCVDNUFVEGUDZVIVCAVJDVKVJGSPZDVEGSTIUGVKVGVBBVHHVKVHGRPHVEGRTKUG
      VKVFEUTVAVKVFGQPEVEGQTJUGUIUJUKAMBULVCADDVLNIGSUMUNUOUPUQUR $.

    $d x N $.  $d x C $.  $d y x X $.
    $( The predicate "is a lattice plane".  (Contributed by NM,
       16-Jun-2012.) $)
    islpln $p |- ( K e. A -> ( X e. P <-> ( X e. B /\ E. y e. N y C X ) ) ) $=
      ( vx wcel cv wbr wrex crab wa lplnset eleq2d breq2 rexbidv elrab syl6bb
      wceq ) FBNZHENHAOZMOZDPZAGQZMCRZNHCNUHHDPZAGQZSUGEULHMABCDEFGIJKLTUAUKUNM
      HCUIHUFUJUMAGUIHUHDUBUCUDUE $.

    $( The predicate "is a lattice plane".  (Contributed by NM,
       17-Jun-2012.) $)
    islpln4 $p |- ( ( K e. A /\ X e. B )
       -> ( X e. P <-> E. y e. N y C X ) ) $=
      ( wcel cv wbr wrex islpln baibd ) FBMHEMHCMANHDOAGPABCDEFGHIJKLQR $.

    $d x Y $.
    $( Condition implying a lattice plane.  (Contributed by NM,
       20-Jun-2012.) $)
    lplni $p |- ( ( ( K e. D /\ Y e. B /\ X e. N ) /\ X C Y ) -> Y e. P ) $=
      ( vx wcel w3a wbr wa cv wrex simpl2 rspcev 3ad2antl3 wb simpl1 islpln syl
      breq1 mpbir2and ) ECNZHANZGFNZOGHBPZQZHDNZUJMRZHBPZMFSZUIUJUKULTUKUIULUQU
      JUPULMGFUOGHBUGUAUBUMUIUNUJUQQUCUIUJUKULUDMCABDEFHIJKLUEUFUH $.
  $}

  ${
    $d p A $.  $d p y B $.  $d p y K $.  $d p .<_ $.  $d p y N $.  $d p y X $.
    islpln3.b $e |- B = ( Base ` K ) $.
    islpln3.l $e |- .<_ = ( le ` K ) $.
    islpln3.j $e |- .\/ = ( join ` K ) $.
    islpln3.a $e |- A = ( Atoms ` K ) $.
    islpln3.n $e |- N = ( LLines ` K ) $.
    islpln3.p $e |- P = ( LPlanes ` K ) $.
    $( The predicate "is a lattice plane".  (Contributed by NM,
       17-Jun-2012.) $)
    islpln3 $p |- ( ( K e. HL /\ X e. B )
   -> ( X e. P
          <-> E. y e. N E. p e. A ( -. p .<_ y /\ X = ( y .\/ p ) ) ) ) $=
      ( chlt wcel wa wrex cv ccvr cfv wn co wceq eqid islpln4 wb simpll llnbase
      wbr adantl simplr cvrval3 syl3anc eqcom a1i anbi2d rexbidva bitrd ) FQRZI
      CRZSZIDRAUAZIFUBUCZULZAHTJUAZVEGULUDZIVEVHEUEZUFZSZJBTZAHTAQCVFDFHIKVFUGZ
      OPUHVDVGVMAHVDVEHRZSZVGVIVJIUFZSZJBTZVMVPVBVECRZVCVGVSUIVBVCVOUJVOVTVDCFH
      VEKOUKUMVBVCVOUNBCVFEFGVEIJKLMVNNUOUPVPVRVLJBVPVHBRSZVQVKVIVQVKUIWAVJIUQU
      RUSUTVAUTVA $.
  $}

  ${
    $d x K $.  $d x X $.
    lplnbase.b $e |- B = ( Base ` K ) $.
    lplnbase.p $e |- P = ( LPlanes ` K ) $.
    $( A lattice plane is a lattice element.  (Contributed by NM,
       17-Jun-2012.) $)
    lplnbase $p |- ( X e. P -> X e. B ) $=
      ( vx cvv wcel clpl cfv c0 wceq n0i eqeq1i sylnib fvprc nsyl2 cv eqid ccvr
      wbr clln wrex islpln simprbda mpancom ) CHIZDBIZDAIZUICJKZLMZUHUIBLMULBDN
      BUKLFOPCJQRUHUIUJGSDCUAKZUBGCUCKZUDGHAUMBCUNDEUMTUNTFUEUFUG $.
  $}

  ${
    $d p q r y A $.  $d p q r y B $.  $d p q r y .\/ $.  $d p q r y K $.
    $d p q r y .<_ $.  $d p q r y X $.
    islpln5.b $e |- B = ( Base ` K ) $.
    islpln5.l $e |- .<_ = ( le ` K ) $.
    islpln5.j $e |- .\/ = ( join ` K ) $.
    islpln5.a $e |- A = ( Atoms ` K ) $.
    islpln5.p $e |- P = ( LPlanes ` K ) $.
    $( The predicate "is a lattice plane" in terms of atoms.  (Contributed by
       NM, 24-Jun-2012.) $)
    islpln5 $p |- ( ( K e. HL /\ X e. B )
      -> ( X e. P <-> E. p e. A E. q e. A E. r e. A
    ( p =/= q /\ -. r .<_ ( p .\/ q ) /\ X = ( ( p .\/ q ) .\/ r ) ) ) ) $=
      ( vy wcel wa wrex wex chlt cv wbr wn co wceq clln cfv wne islpln3 rexcom4
      w3a eqid rexbii bitri simpll simprl simprr hlatjcl syl3anc biantrurd an13
      r19.41v exbii ovex eleq1 breq2 notbid oveq1 eqeq2d anbi12d anbi2d syl6bbr
      3anass syl5bb rexbidv r19.42v 3bitr3g ceqsexv syl6rbbr 2rexbidva syl5rbbr
      an12 islln2 adantr anbi1d an32 3bitr4ri syl6bb rexcom exbidv bitrd df-rex
      wb ) EUAQZGBQZRZGCQHUBZPUBZFUCZUDZGWSWRDUEZUFZRZHASZPEUGUHZSZJUBZIUBZUIZW
      RXHXIDUEZFUCZUDZGXKWRDUEZUFZULZHASZIASJASZPABCDEFXFGHKLMNXFUMZOUJWQXRWSXF
      QZXERZPTZXGWQXRWSBQZXDRZXJWSXKUFZRZRZHASZIASZJASZPTZYBYKYHPTZIASZJASZWQXR
      YNYIPTZJASYKYMYOJAYHIPAUKUNYIJPAUKUOWQYLXQJIAAWQXHAQZXIAQZRZRZXQXKBQZXQRZ
      YLYSYTXQYSWOYPYQYTWOWPYRUPWQYPYQUQWQYPYQURABDEXHXIKMNUSUTVAYLYEXJYDHASZRZ
      RZPTUUAYHUUDPYHUUBYFRUUDYDYFHAVCUUBXJYEVBUOVDUUCUUAPXKXHXIDVEYEXJYDRZHASY
      TXPRZHASUUCUUAYEUUEUUFHAUUEYCXJXDRZRYEUUFXJYCXDWCYEYCYTUUGXPWSXKBVFYEUUGX
      JXMXORZRXPYEXDUUHXJYEXAXMXCXOYEWTXLWSXKWRFVGVHYEXBXNGWSXKWRDVIVJVKVLXJXMX
      OVNVMVKVOVPXJYDHAVQYTXPHAVQVRVSUOVTWAWBWQYJYAPWQYJXTXDRZHASZYAWQUUJYGIASZ
      JASZHASZYJWQUUIUULHAWQUUIYCYFIASZJASZRZXDRZUULWQXTUUPXDWOXTUUPWNWPABDEXFW
      SIJKMNXSWDWEWFYDUUNRZJASYDUUORUULUUQYDUUNJAVQUUKUURJAYDYFIAVQUNYCUUOXDWGW
      HWIVPYJUUKHASZJASUUMYIUUSJAYGIHAAWJUNUUKJHAAWJUOVTXTXDHAVQWIWKWLXEPXFWMVT
      WL $.

    $( The predicate "is a lattice plane" in terms of atoms.  (Contributed by
       NM, 25-Jun-2012.) $)
    islpln2 $p |- ( K e. HL
      -> ( X e. P <-> ( X e. B /\ E. p e. A E. q e. A E. r e. A
  ( p =/= q /\ -. r .<_ ( p .\/ q ) /\ X = ( ( p .\/ q ) .\/ r ) ) ) ) ) $=
      ( wcel wa cv co wrex chlt wne wbr wceq lplnbase pm4.71ri islpln5 pm5.32da
      wn w3a syl5bb ) GCPZGBPZULQEUAPZUMJRZIRZUBHRZUOUPDSZFUCUIGURUQDSUDUJHATIA
      TJATZQULUMBCEGKOUEUFUNUMULUSABCDEFGHIJKLMNOUGUHUK $.
  $}

  ${
    $d q r s A $.  $d q r s .\/ $.  $d q r s K $.  $d q r s .<_ $.
    $d q r s Q $.  $d q r s R $.  $d q r s S $.
    lplni2.l $e |- .<_ = ( le ` K ) $.
    lplni2.j $e |- .\/ = ( join ` K ) $.
    lplni2.a $e |- A = ( Atoms ` K ) $.
    lplni2.p $e |- P = ( LPlanes ` K ) $.
    $( The join of 3 different atoms is a lattice plane.  (Contributed by NM,
       4-Jul-2012.) $)
    lplni2 $p |- ( ( K e. HL /\ ( Q e. A /\ R e. A /\ S e. A ) /\ ( Q =/= R
          /\ -. S .<_ ( Q .\/ R ) ) ) -> ( ( Q .\/ R ) .\/ S ) e. P ) $=
      ( vq vr vs wcel w3a co wbr wceq chlt wne wn wa cv wrex simp2 simp3l eqidd
      simp3r neeq1 oveq1 breq2d notbid oveq1d eqeq2d neeq2 oveq2 breq1 3anbi23d
      3anbi123d rspc3ev syl13anc cbs wb simp1 clat hllat 3ad2ant1 simp21 simp22
      cfv eqid hlatjcl syl3anc simp23 atbase syl latjcl islpln5 syl2anc mpbird
      ) GUAPZCAPZDAPZEAPZQZCDUBZECDFRZHSZUCZUDZQZWIEFRZBPZMUEZNUEZUBZOUEZWPWQFR
      ZHSZUCZWNWTWSFRZTZQZOAUFNAUFMAUFZWMWGWHWKWNWNTZXFWCWGWLUGWCWGWHWKUHWCWGWH
      WKUJWMWNUIXEWHWKXGQCWQUBZWSCWQFRZHSZUCZWNXIWSFRZTZQWHWSWIHSZUCZWNWIWSFRZT
      ZQMNOCDEAAAWPCTZWRXHXBXKXDXMWPCWQUKXRXAXJXRWTXIWSHWPCWQFULZUMUNXRXCXLWNXR
      WTXIWSFXSUOUPVAWQDTZXHWHXKXOXMXQWQDCUQXTXJXNXTXIWIWSHWQDCFURZUMUNXTXLXPWN
      XTXIWIWSFYAUOUPVAWSETZXOWKXQXGWHYBXNWJWSEWIHUSUNYBXPWNWNWSEWIFURUPUTVBVCW
      MWCWNGVDVLZPZWOXFVEWCWGWLVFZWMGVGPZWIYCPZEYCPZYDWCWGYFWLGVHVIWMWCWDWEYGYE
      WCWDWEWFWLVJWCWDWEWFWLVKAYCFGCDYCVMZJKVNVOWMWFYHWCWDWEWFWLVPAYCEGYIKVQVRY
      CFGWIEYIJVSVOAYCBFGHWNONMYIIJKLVTWAWB $.
  $}

  ${
    $d q r s t A $.  $d q r s t K $.  $d q r s t .<_ $.  $d q r s t X $.
    lvolex3.l $e |- .<_ = ( le ` K ) $.
    lvolex3.a $e |- A = ( Atoms ` K ) $.
    lvolex3.p $e |- P = ( LPlanes ` K ) $.
    $( There is an atom outside of a lattice plane i.e. a 3-dimensional lattice
       volume exists.  (Contributed by NM, 28-Jul-2012.)
       (New usage is discouraged.) $)
    lvolex3N $p |- ( ( K e. HL /\ X e. P ) -> E. q e. A -. q .<_ X ) $=
      ( vr vs vt wcel cv wbr wn wrex cfv co wa chlt cbs wne cjn wceq w3a simp1l
      eqid islpln2 simp1rl simp1rr simp2 3dim3 syl13anc wb simp33 breq2 rexbidv
      notbid syl mpbird rexlimdv3a rexlimdvva adantld sylbid imp ) CUAMZEBMZFNZ
      EDOZPZFAQZVGVHECUBRZMZJNZKNZUCZLNZVOVPCUDRZSZDOPZEVTVRVSSZUEZUFZLAQZKAQJA
      QZTVLAVMBVSCDELKJVMUHGVSUHZHIUIVGWFVLVNVGWEVLJKAAVGVOAMZVPAMZTZTZWDVLLAWK
      VRAMZWDUFZVLVIWBDOZPZFAQZWMVGWHWIWLWPVGWJWLWDUGWHWIVGWLWDUJWHWIVGWLWDUKWK
      WLWDULAVOVPVRVSCDFWGGHUMUNWMWCVLWPUOWKWLVQWAWCUPWCVKWOFAWCVJWNEWBVIDUQUSU
      RUTVAVBVCVDVEVF $.
  $}

  ${
    $d u A $.  $d u K $.  $d u .<_ $.  $d u ./\ $.  $d u N $.  $d u P $.
    $d u X $.  $d u Y $.  $d u .0. $.
    llnmlpln.l $e |- .<_ = ( le ` K ) $.
    llnmlpln.m $e |- ./\ = ( meet ` K ) $.
    llnmlpln.z $e |- .0. = ( 0. ` K ) $.
    llnmlpln.a $e |- A = ( Atoms ` K ) $.
    llnmlpln.n $e |- N = ( LLines ` K ) $.
    llnmlpln.p $e |- P = ( LPlanes ` K ) $.
    $( The intersection of a line with a plane not containing it is an atom.
       (Contributed by NM, 29-Jun-2012.)  (New usage is discouraged.) $)
    llnmlplnN $p |- ( ( ( K e. HL /\ X e. N /\ Y e. P ) /\
      ( -. X .<_ Y /\ ( X ./\ Y ) =/= .0. ) ) -> ( X ./\ Y ) e. A ) $=
      ( vu wcel wbr wa syl3anc chlt w3a wn co wne simprl wceq cv cbs cfv simp11
      wrex clat hllat syl simp12 eqid simp13 lplnbase latmcl simp2r simp3 llnle
      llnbase syl22anc adantr latmle1 ad2antrl simprr lattrd wb simpl11 simpl12
      llncmp mpbid eqbrtrrd latasymd rexlimddv latleeqm1 mpbird 3expia mt3d ) C
      UAQZGFQZHBQZUBZGHDRZUCZGHEUDZIUEZSZSWIAQZWGWFWHWJUFWFWKWLUCZWGWFWKWMUBZWG
      WIGUGZWNPUHZWIDRZWOPFWNWCWICUIUJZQZWJWMWQPFULWCWDWEWKWMUKZWNCUMQZGWRQZHWR
      QZWSWNWCXAWTCUNUOZWNWDXBWCWDWEWKWMUPWRCFGWRUQZNVDUOZWNWEXCWCWDWEWKWMURWRB
      CHXEOUSUOZWRCEGHXEKUTTZWFWHWJWMVAWFWKWMVBPAWRCDFWIIXEJLMNVCVEWNWPFQZWQSZS
      ZWRCDWIGXEJWNXAXJXDVFZWNWSXJXHVFZWNXBXJXFVFZWNWIGDRZXJWNXAXBXCXOXDXFXGWRC
      DEGHXEJKVGTVFZXKWPGWIDXKWPGDRZWPGUGZXKWRCDWPWIGXEJXLXIWPWRQWNWQWRCFWPXENV
      DVHXMXNWNXIWQVIZXPVJXKWCXIWDXQXRVKWCWDWEWKWMXJVLWNXIWQUFWCWDWEWKWMXJVMCDF
      WPGJNVNTVOXSVPVQVRWNXAXBXCWGWOVKXDXFXGWRCDEGHXEJKVSTVTWAWB $.
  $}

  ${
    $d p z A $.  $d p z B $.  $d p y z K $.  $d p y z .<_ $.  $d p z N $.
    $d p y z P $.  $d p y z X $.  $d p z .0. $.
    lplnle.b $e |- B = ( Base ` K ) $.
    lplnle.l $e |- .<_ = ( le ` K ) $.
    lplnle.z $e |- .0. = ( 0. ` K ) $.
    lplnle.a $e |- A = ( Atoms ` K ) $.
    lplnle.n $e |- N = ( LLines ` K ) $.
    lplnle.p $e |- P = ( LPlanes ` K ) $.
    $( Any element greater than 0 and not an atom and not a lattice line
       majorizes a lattice plane.  (Contributed by NM, 28-Jun-2012.) $)
    lplnle $p |- ( ( ( K e. HL /\ X e. B )
       /\ ( X =/= .0. /\ -. X e. A /\ -. X e. N ) ) -> E. y e. P y .<_ X ) $=
      ( vz vp wcel wa wbr chlt wne wn w3a wrex llnle 3adantr3 cjn cfv ccvr cplt
      cv co simp1ll llnbase 3ad2ant2 simp1lr simp3 simp2 simp1r3 nelne2 syl2anc
      wb eqid pltval syl3anc mpbir2and hlrelat3 syl31anc wi hllat simp21 simp23
      clat syl atbase latjcl simp3l lplni simp3r breq1 3exp 3expd 3imp rexlimdv
      rspcev mpd ) EUARZHCRZSZHIUBZHBRUCZHGRUCZUDZSZPULZHFTZPGUEZAULZHFTZADUEZW
      JWKWLWRWMPBCEFGHIJKLMNUFUGWOWQXAPGWOWPGRZWQXAWOXBWQUDZWPWPQULZEUHUIZUMZEU
      JUIZTZXFHFTZSZQBUEZXAXCWHWPCRZWIWPHEUKUIZTZXKWHWIWNXBWQUNZXBWOXLWQCEGWPJN
      UOZUPWHWIWNXBWQUQZXCXNWQWPHUBZWOXBWQURXCXBWMXRWOXBWQUSZWKWLWMWJXBWQUTWPHG
      VAVBXCWHXBWIXNWQXRSVCXOXSXQUAGCXMEFWPHKXMVDZVEVFVGBCXGXMXEEFWPHQJKXTXEVDZ
      XGVDZMVHVIXCXJXAQBWOXBWQXDBRZXJXAVJZVJWOXBWQYCYDWOXBWQYCUDZXJXAWOYEXJUDZX
      FDRZXIXAYFWHXFCRZXBXHYGWHWIWNYEXJUNZYFEVNRZXLXDCRZYHYFWHYJYIEVKVOYFXBXLWO
      XBWQYCXJVLZXPVOYFYCYKWOXBWQYCXJVMBCXDEJMVPVOCXEEWPXDJYAVQVFYLWOYEXHXIVRCX
      GUADEGWPXFJYBNOVSVIWOYEXHXIVTWTXIAXFDWSXFHFWAWFVBWBWCWDWEWGWBWEWG $.
  $}

  ${
    $d y A $.  $d y .\/ $.  $d y K $.  $d y .<_ $.  $d y P $.  $d y Q $.
    $d y R $.  $d y X $.
    lplnnle2at.l $e |- .<_ = ( le ` K ) $.
    lplnnle2at.j $e |- .\/ = ( join ` K ) $.
    lplnnle2at.a $e |- A = ( Atoms ` K ) $.
    lplnnle2at.p $e |- P = ( LPlanes ` K ) $.
    $( A lattice line (or atom) cannot majorize a lattice plane.  (Contributed
       by NM, 8-Jul-2012.) $)
    lplnnle2at $p |- ( ( K e. HL /\ ( X e. P /\ Q e. A /\ R e. A ) )
         -> -. X .<_ ( Q .\/ R ) ) $=
      ( vy chlt wcel wa cfv wbr wi syl w3a cv ccvr clln wrex co cbs simpr1 eqid
      wn wb islpln adantr mpbid simprd wceq oveq1 breq2d notbid wne cplt simpl1
      simpl3l simpl22 simpl23 syl31anc syl3anc llnbase simpl21 lplnbase simpl3r
      simpr llni2 llnnlt cvrlt hlpos hlatjcl pltletr syl13anc mpand mtod simp3l
      simp1 simp23 llnnleat simp21 simp3r 3ad2ant1 atbase syld hlatjidm syl2anc
      cpo pltle mtbird pm2.61ne 3exp exp4a imp rexlimdv mpd ) FNOZHBOZCAOZDAOZU
      AZPZMUBZHFUCQZRZMFUDQZUEZHCDEUFZGRZUJZXGHFUGQZOZXLXGXCXQXLPZXBXCXDXEUHXBX
      CXRUKXFMNXPXIBFXKHXPUIZXIUIZXKUIZLULUMUNUOXGXJXOMXKXBXFXHXKOZXJXOSSXBXFYB
      XJXOXBXFYBXJPZXOXBXFYCUAZXOHDDEUFZGRZUJCDCDUPZXNYFYGXMYEHGCDDEUQURUSYDCDU
      TZPZXNXHXMFVAQZRZYIXBYBXMXKOZYKUJXBXFYCYHVBZYBXJXBXFYHVCZYIXBXDXEYHYLYMXC
      XDXEXBYCYHVDZXCXDXEXBYCYHVEZYDYHVLACDEFXKJKYAVMVFYJFXKXHXMYJUIZYAVNVGYIXH
      HYJRZXNYKYIXBXHXPOZXQXJYRYMYIYBYSYNXPFXKXHXSYAVHZTZYIXCXQXCXDXEXBYCYHVIXP
      BFHXSLVJZTZYBXJXBXFYHVKNXPXIYJFXHHXSYQXTVOZVFYIFWMOZYSXQXMXPOZYRXNPYKSYIX
      BUUEYMFVPZTUUAUUCYIXBXDXEUUFYMYOYPAXPEFCDXSJKVQVGXPYJFGXHHXMXSIYQVRVSVTWA
      YDYFHDGRZYDUUHXHDGRZYDXBYBXEUUIUJXBXFYCWCZXBXFYBXJWBZXBXCXDXEYCWDZADFGXKX
      HIKYAWEVGYDUUHXHDYJRZUUIYDYRUUHUUMYDXBYSXQXJYRUUJYDYBYSUUKYTTZYDXCXQXBXCX
      DXEYCWFUUBTZXBXFYBXJWGUUDVFYDUUEYSXQDXPOZYRUUHPUUMSXBXFUUEYCUUGWHUUNUUOYD
      XEUUPUULAXPDFXSKWITXPYJFGXHHDXSIYQVRVSVTYDXBYBXEUUMUUISUUJUUKUULNXKAYJFGX
      HDIYQWNVGWJWAYDYEDHGYDXBXEYEDUPUUJUULAEFDJKWKWLURWOWPWQWRWSWTXA $.
  $}

  ${
    lplnnleat.l $e |- .<_ = ( le ` K ) $.
    lplnnleat.a $e |- A = ( Atoms ` K ) $.
    lplnnleat.p $e |- P = ( LPlanes ` K ) $.
    $( A lattice plane cannot majorize an atom.  (Contributed by NM,
       14-Jul-2012.) $)
    lplnnleat $p |- ( ( K e. HL /\ X e. P /\ Q e. A ) -> -. X .<_ Q ) $=
      ( chlt wcel w3a cjn cfv co wbr wn simp1 simp2 simp3 eqid syl13anc 3adant2
      lplnnle2at wceq hlatjidm breq2d mtbid ) DJKZFBKZCAKZLZFCCDMNZOZEPZFCEPULU
      IUJUKUKUOQUIUJUKRUIUJUKSUIUJUKTZUPABCCUMDEFGUMUAZHIUDUBULUNCFEUIUKUNCUEUJ
      AUMDCUQHUFUCUGUH $.
  $}

  ${
    $d q r K $.  $d q r .<_ $.  $d q r N $.  $d q r P $.  $d q r X $.
    $d q r Y $.
    lplnnlelln.l $e |- .<_ = ( le ` K ) $.
    lplnnlelln.n $e |- N = ( LLines ` K ) $.
    lplnnlelln.p $e |- P = ( LPlanes ` K ) $.
    $( A lattice plane is not less than or equal to a lattice line.
       (Contributed by NM, 14-Jul-2012.) $)
    lplnnlelln $p |- ( ( K e. HL /\ X e. P /\ Y e. N ) -> -. X .<_ Y ) $=
      ( vq vr wcel w3a cfv cv wa wrex wbr wn eqid chlt cbs wne cjn co wceq catm
      simp3 islln2 3ad2ant1 mpbid simp11 simp12 simp2l simp2r lplnnle2at simp3r
      wb syl13anc breq2d mtbird 3exp rexlimdvv adantld mpd ) BUALZEALZFDLZMZFBU
      BNZLZJOZKOZUCZFVLVMBUDNZUEZUFZPZKBUGNZQJVSQZPZEFCRZSZVIVHWAVFVGVHUHVFVGVH
      WAURVHVSVJVOBDFKJVJTVOTZVSTZHUIUJUKVIVTWCVKVIVRWCJKVSVSVIVLVSLZVMVSLZPZVR
      WCVIWHVRMZWBEVPCRZWIVFVGWFWGWJSVFVGVHWHVRULVFVGVHWHVRUMVIWFWGVRUNVIWFWGVR
      UOVSAVLVMVOBCEGWDWEIUPUSWIFVPECVIWHVNVQUQUTVAVBVCVDVE $.
  $}

  ${
    2atnelpln.j $e |- .\/ = ( join ` K ) $.
    2atnelpln.a $e |- A = ( Atoms ` K ) $.
    2atnelpln.p $e |- P = ( LPlanes ` K ) $.
    $( The join of two atoms is not a lattice plane.  (Contributed by NM,
       16-Jul-2012.) $)
    2atnelpln $p |- ( ( K e. HL /\ Q e. A /\ R e. A )
         -> -. ( Q .\/ R ) e. P ) $=
      ( chlt wcel w3a co cple cfv wbr clat cbs hllat eqid 3ad2ant1 latref wn wa
      hlatjcl syl2anc simpl1 simpr simpl2 simpl3 lplnnle2at syl13anc ex mt2d )
      FJKZCAKZDAKZLZCDEMZBKZUSUSFNOZPZURFQKZUSFROZKVBUOUPVCUQFSUAAVDEFCDVDTZGHU
      EVDFVAUSVEVATZUBUFURUTVBUCZURUTUDUOUTUPUQVGUOUPUQUTUGURUTUHUOUPUQUTUIUOUP
      UQUTUJABCDEFVAUSVFGHIUKULUMUN $.
  $}

  ${
    lplnneat.a $e |- A = ( Atoms ` K ) $.
    lplnneat.p $e |- P = ( LPlanes ` K ) $.
    $( No lattice plane is an atom.  (Contributed by NM, 15-Jul-2012.) $)
    lplnneat $p |- ( ( K e. HL /\ X e. P ) -> -. X e. A ) $=
      ( chlt wcel wa cple cfv wbr clat cbs hllat eqid lplnbase latref syl2an wn
      lplnnleat 3expia mt2d ) CGHZDBHZIDAHZDDCJKZLZUDCMHDCNKZHUHUECOUIBCDUIPZFQ
      UICUGDUJUGPZRSUDUEUFUHTABDCUGDUKEFUAUBUC $.
  $}

  ${
    lplnnelln.n $e |- N = ( LLines ` K ) $.
    lplnnelln.p $e |- P = ( LPlanes ` K ) $.
    $( No lattice plane is a lattice line.  (Contributed by NM,
       19-Jun-2012.) $)
    lplnnelln $p |- ( ( K e. HL /\ X e. P ) -> -. X e. N ) $=
      ( chlt wcel wa cple cfv wbr clat cbs hllat eqid lplnbase latref syl2an wn
      lplnnlelln 3expia mt2d ) BGHZDAHZIDCHZDDBJKZLZUDBMHDBNKZHUHUEBOUIABDUIPZF
      QUIBUGDUJUGPZRSUDUEUFUHTABUGCDDUKEFUAUBUC $.
  $}

  ${
    $d p K $.  $d p P $.  $d p X $.  $d p .0. $.
    lplnn0.z $e |- .0. = ( 0. ` K ) $.
    lplnn0.p $e |- P = ( LPlanes ` K ) $.
    $( A lattice plane is nonzero.  (Contributed by NM, 15-Jul-2012.)
       (New usage is discouraged.) $)
    lplnn0N $p |- ( ( K e. HL /\ X e. P ) -> X =/= .0. ) $=
      ( vp chlt wcel wa cv catm cfv wne wex c0 eqid atex n0 wbr sylib adantr wn
      cple lplnnleat 3expa wceq cops cbs hlop atbase adantl op0le syl2anc breq1
      ad2antrr syl5ibrcom necon3bd mpd exlimddv ) BHIZCAIZJZGKZBLMZIZCDNZGVAVFG
      OZVBVAVEPNVHVEBVEQZRGVESUAUBVCVFJZCVDBUDMZTZUCZVGVAVBVFVMVEAVDBVKCVKQZVIF
      UEUFVJVLCDVJVLCDUGDVDVKTZVJBUHIZVDBUIMZIZVOVAVPVBVFBUJUPVFVRVCVEVQVDBVQQZ
      VIUKULVQBVKVDDVSVNEUMUNCDVDVKUOUQURUSUT $.
  $}

  ${
    islpln2a.l $e |- .<_ = ( le ` K ) $.
    islpln2a.j $e |- .\/ = ( join ` K ) $.
    islpln2a.a $e |- A = ( Atoms ` K ) $.
    islpln2a.p $e |- P = ( LPlanes ` K ) $.
    $( The predicate "is a lattice plane" for join of atoms.  (Contributed by
       NM, 16-Jul-2012.) $)
    islpln2a $p |- ( ( K e. HL /\ ( Q e. A /\ R e. A /\ S e. A ) )
 -> ( ( ( Q .\/ R ) .\/ S ) e. P
        <-> ( Q =/= R /\ -. S .<_ ( Q .\/ R ) ) ) ) $=
      ( wcel wa co wn wceq 2atnelpln syl3anc 3adant3r3 chlt w3a oveq1 3ad2antr2
      wne hlatjidm sylan9eqr oveq1d simpll simplr2 simplr3 eqneltrd ex necon2ad
      wbr clat cbs cfv wb hllat adantr simpr3 eqid atbase syl hlatjcl latleeqj2
      eleq1 notbid syl5ibrcom sylbid con2d jcad lplni2 3expia impbid ) GUAMZCAM
      ZDAMZEAMZUBZNZCDFOZEFOZBMZCDUEZEWCHUOZPZNZWBWEWFWHWBWECDWBCDQZWEPZWBWJNZW
      DDEFOZBWLWCDEFWJWBWCDDFOZDCDDFUCVQVRVSWNDQVTAFGDJKUFUDUGUHWLVQVSVTWMBMPVQ
      WAWJUIVRVSVTVQWJUJVRVSVTVQWJUKABDEFGJKLRSULUMUNWBWGWEWBWGWDWCQZWKWBGUPMZE
      GUQURZMZWCWQMZWGWOUSVQWPWAGUTVAWBVTWRVQVRVSVTVBAWQEGWQVCZKVDVEVQVRVSWSVTA
      WQFGCDWTJKVFTWQFGHEWCWTIJVGSWBWKWOWCBMZPZVQVRVSXBVTABCDFGJKLRTWOWEXAWDWCB
      VHVIVJVKVLVMVQWAWIWEABCDEFGHIJKLVNVOVP $.

    islpln2a.y $e |- Y = ( ( Q .\/ R ) .\/ S ) $.
    $( The predicate "is a lattice plane" for join of atoms.  Version of
       ~ islpln2a expressed with an abbreviation hypothesis.  (Contributed by
       NM, 30-Jul-2012.) $)
    islpln2ah $p |- ( ( K e. HL /\ ( Q e. A /\ R e. A /\ S e. A ) )
      -> ( Y e. P <-> ( Q =/= R /\ -. S .<_ ( Q .\/ R ) ) ) ) $=
      ( wcel co chlt w3a wa wne wbr wn eleq1i islpln2a syl5bb ) IBOCDFPZEFPZBOG
      QOCAODAOEAORSCDTEUFHUAUBSIUGBNUCABCDEFGHJKLMUDUE $.

    $( Property of a lattice plane expressed as the join of 3 atoms.
       (Contributed by NM, 30-Jul-2012.)  (New usage is discouraged.) $)
    lplnriaN $p |- ( ( K e. HL /\ ( Q e. A /\ R e. A /\ S e. A ) /\ Y e. P )
         -> -. Q .<_ ( R .\/ S ) ) $=
      ( chlt wcel co wbr wn wa w3a wne islpln2ah hlatcon3 3expia sylbid 3impia
      ) GOPZCAPDAPEAPUAZIBPZCDEFQHRSZUHUITUJCDUBECDFQHRSTZUKABCDEFGHIJKLMNUCUHU
      IULUKACDEFGHJKLUDUEUFUG $.

    $( Property of a lattice plane expressed as the join of 3 atoms.
       (Contributed by NM, 30-Jul-2012.)  (New usage is discouraged.) $)
    lplnribN $p |- ( ( K e. HL /\ ( Q e. A /\ R e. A /\ S e. A ) /\ Y e. P )
         -> -. R .<_ ( Q .\/ S ) ) $=
      ( wcel w3a co wbr wn wa chlt 3noncolr1N simprd 3expia islpln2ah 3adant3r2
      wne wceq hlatjcom breq2d notbid 3imtr4d 3impia ) GUAOZCAOZDAOZEAOZPZIBOZD
      CEFQZHRZSZUNURTZCDUGECDFQHRSTZDECFQZHRZSZUSVBUNURVDVGUNURVDPECUGVGACDEFGH
      JKLUBUCUDABCDEFGHIJKLMNUEVCVAVFVCUTVEDHUNUOUQUTVEUHUPAFGCEKLUIUFUJUKULUM
      $.

    $( Property of a lattice plane expressed as the join of 3 atoms.
       (Contributed by NM, 30-Jul-2012.) $)
    lplnric $p |- ( ( K e. HL /\ ( Q e. A /\ R e. A /\ S e. A ) /\ Y e. P )
        -> -. S .<_ ( Q .\/ R ) ) $=
      ( chlt wcel w3a wne co wbr wn wa islpln2ah biimp3a simprd ) GOPZCAPDAPEAP
      QZIBPZQCDRZECDFSHTUAZUFUGUHUIUJUBABCDEFGHIJKLMNUCUDUE $.
  $}

  ${
    lplnri1.j $e |- .\/ = ( join ` K ) $.
    lplnri1.a $e |- A = ( Atoms ` K ) $.
    lplnri1.p $e |- P = ( LPlanes ` K ) $.
    lplnri1.y $e |- Y = ( ( Q .\/ R ) .\/ S ) $.
    $( Property of a lattice plane expressed as the join of 3 atoms.
       (Contributed by NM, 30-Jul-2012.) $)
    lplnri1 $p |- ( ( K e. HL /\ ( Q e. A /\ R e. A /\ S e. A ) /\ Y e. P )
           -> Q =/= R ) $=
      ( chlt wcel w3a wne co cple cfv wbr wn wa eqid islpln2ah biimp3a simpld )
      GMNZCANDANEANOZHBNZOCDPZECDFQGRSZTUAZUGUHUIUJULUBABCDEFGUKHUKUCIJKLUDUEUF
      $.

    $( Property of a lattice plane expressed as the join of 3 atoms.
       (Contributed by NM, 30-Jul-2012.)  (New usage is discouraged.) $)
    lplnri2N $p |- ( ( K e. HL /\ ( Q e. A /\ R e. A /\ S e. A ) /\ Y e. P )
           -> Q =/= S ) $=
      ( chlt wcel w3a co cple cfv wbr wn wne eqid lplnriaN atnlej2 syld3an3 ) G
      MNCANDANEANOHBNCDEFPGQRZSTCEUAABCDEFGUFHUFUBZIJKLUCACDEFGUFUGIJUDUE $.

    $( Property of a lattice plane expressed as the join of 3 atoms.
       (Contributed by NM, 30-Jul-2012.)  (New usage is discouraged.) $)
    lplnri3N $p |- ( ( K e. HL /\ ( Q e. A /\ R e. A /\ S e. A ) /\ Y e. P )
           -> R =/= S ) $=
      ( chlt wcel w3a co cple cfv wbr wn wne simp22 simp21 simp23 eqid lplnribN
      simp1 atnlej2 syl131anc ) GMNZCANZDANZEANZOZHBNZOUJULUKUMDCEFPGQRZSTDEUAU
      JUNUOUGUJUKULUMUOUBUJUKULUMUOUCUJUKULUMUOUDABCDEFGUPHUPUEZIJKLUFADCEFGUPU
      QIJUHUI $.

    $( Two lattice lines defined by atoms defining a lattice plane are not
       equal.  (Contributed by NM, 9-Oct-2012.)  (New usage is discouraged.) $)
    lplnllnneN $p |- ( ( K e. HL /\ ( Q e. A /\ R e. A /\ S e. A ) /\ Y e. P )
           -> ( Q .\/ S ) =/= ( R .\/ S ) ) $=
      ( chlt wcel w3a co cple cfv wbr wn wne eqid lplnriaN wceq simpl21 simpl23
      wa simpl1 hlatlej1 syl3anc simpr breqtrd ex necon3bd mpd ) GMNZCANZDANZEA
      NZOZHBNZOZCDEFPZGQRZSZTCEFPZVCUAABCDEFGVDHVDUBZIJKLUCVBVEVFVCVBVFVCUDZVEV
      BVHUGZCVFVCVDVIUPUQUSCVFVDSUPUTVAVHUHUQURUSUPVAVHUEUQURUSUPVAVHUFACEFGVDV
      GIJUIUJVBVHUKULUMUNUO $.
  $}

  ${
    $d p q r s t u C $.  $d p q r s t u K $.  $d p q r s t u .<_ $.
    $d r s t u N $.  $d r P $.  $d p q r s t u X $.  $d p q r s t u Y $.
    llncvrlpln2.l $e |- .<_ = ( le ` K ) $.
    llncvrlpln2.c $e |- C = ( <o ` K ) $.
    llncvrlpln2.n $e |- N = ( LLines ` K ) $.
    llncvrlpln2.p $e |- P = ( LPlanes ` K ) $.
    $( A lattice line under a lattice plane is covered by it.  (Contributed by
       NM, 24-Jun-2012.) $)
    llncvrlpln2 $p |- ( ( ( K e. HL /\ X e. N /\ Y e. P ) /\ X .<_ Y )
         -> X C Y ) $=
      ( vr wcel w3a wbr wa cv co wrex wi vs vt vu vp vq chlt cplt cfv wne simpr
      wn simpl1 simpl3 lplnnelln syl2anc simpl2 eleq1 syl5ibcom necon3bd mpd wb
      wceq eqid pltval adantr mpbir2and cjn catm cbs lplnbase hlrelat3 syl31anc
      llnbase islpln2 simp3 islln2 simp3l simp3r simp12r oveq1d 3brtr3d simp111
      simp22 simp112 simp113 simp23 3jca simp13l simp13r simp21 hlatjcl syl3anc
      syl cvr1 mpbird simp12l 3at syl32anc mpbid 3eqtr4d breqtrd 3exp rexlimdvv
      3expd 3expib adantld sylbid imp31 syl7 rexlimdv rexlimdvva 3impia syldan
      imp ) CUFMZFEMZGBMZNZFGDOZFGCUGUHZOZFGAOZXRXSPZYAXSFGUIZXRXSUJYCGEMZUKZYD
      YCXOXQYFXOXPXQXSULXOXPXQXSUMBCEGJKUNUOYCYEFGYCXPFGVBYEXOXPXQXSUPFGEUQURUS
      UTXRYAXSYDPVAXSUFEBXTCDFGHXTVCZVDVEVFXRYAFFLQZCVGUHZRZAOZYJGDOZPZLCVHUHZS
      ZYBXRYAPZXOFCVIUHZMZGYQMZYAYOXOXPXQYAULYPXPYRXOXPXQYAUPYQCEFYQVCZJVMWMYPX
      QYSXOXPXQYAUMYQBCGYTKVJWMXRYAUJYNYQAXTYICDFGLYTHYGYIVCZIYNVCZVKVLXRYOYBXR
      YMYBLYNXOXPXQYHYNMZYMYBTZTZXOXPPZXQYSUAQZUBQZUIZUCQZUUGUUHYIRZDOUKZGUUKUU
      JYIRZVBZNZUCYNSZUBYNSUAYNSZPZUUEXOXQUURVAXPYNYQBYICDGUCUBUAYTHUUAUUBKVNVE
      UUFUUQUUEYSUUFUUPUUEUAUBYNYNUUFUUGYNMZUUHYNMZPZPZUUOUUEUCYNUUOUUNUVBUUJYN
      MZUUEUUIUULUUNVOXOXPUVAUVCUUNUUETTZXOXPYRUDQZUEQZUIZFUVEUVFYIRZVBZPZUEYNS
      UDYNSZPUVAUVDTZYNYQYICEFUEUDYTUUAUUBJVPXOUVKUVLYRXOUVJUVLUDUEYNYNXOUVEYNM
      ZUVFYNMZUVJUVLTXOUVMUVNNZUVJUVAUVDUVOUVJUVANZUVCUUNUUCUUDUVPUVCUUNUUCNZYM
      YBUVPUVQYMNZFYJGAUVPUVQYKYLVQZUVRUVHYHYIRZUUMYJGUVRUVTUUMDOZUVTUUMVBZUVRY
      JGUVTUUMDUVPUVQYKYLVRUVRFUVHYHYIUVGUVIUVOUVAUVQYMVSZVTZUVPUVCUUNUUCYMWCZW
      AUVRXOUVMUVNUUCNUUSUUTUVCNYHUVHDOUKZUVGUWAUWBVAXOUVMUVNUVJUVAUVQYMWBZUVRU
      VMUVNUUCXOUVMUVNUVJUVAUVQYMWDZXOUVMUVNUVJUVAUVQYMWEZUVPUVCUUNUUCYMWFZWGUV
      RUUSUUTUVCUUSUUTUVOUVJUVQYMWHUUSUUTUVOUVJUVQYMWIUVPUVCUUNUUCYMWJWGUVRUWFU
      VHUVTAOZUVRFYJUVHUVTAUVSUWCUWDWAUVRXOUVHYQMZUUCUWFUWKVAUWGUVRXOUVMUVNUWLU
      WGUWHUWIYNYQYICUVEUVFYTUUAUUBWKWLUWJYNYQAYHYICDUVHYTHUUAIUUBWNWLWOUVGUVIU
      VOUVAUVQYMWPYNUVEUVFYHUUGUUHUUJYICDHUUAUUBWQWRWSUWDUWEWTXAXBXDXBXEXCXFXGX
      HXIXJXKXFXGXLXJXNXMXM $.
  $}

  ${
    $d z B $.  $d z C $.  $d z K $.  $d z N $.  $d z P $.  $d z X $.  $d z Y $.
    llncvrlpln.b $e |- B = ( Base ` K ) $.
    llncvrlpln.c $e |- C = ( <o ` K ) $.
    llncvrlpln.n $e |- N = ( LLines ` K ) $.
    llncvrlpln.p $e |- P = ( LPlanes ` K ) $.
    $( An element covering a lattice line is a lattice plane and vice-versa.
       (Contributed by NM, 26-Jun-2012.) $)
    llncvrlpln $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B ) /\ X C Y )
        -> ( X e. N <-> Y e. P ) ) $=
      ( vz chlt wcel wbr wa simpll1 simpll3 simplr cfv w3a simpr lplni syl31anc
      cv cple wrex cp0 catm simpll2 eqid lplnneat sylancom wceq breq1 syl5ibcom
      wne wn wb isat2 syl2anc sylibrd necon3bd lplnnelln atcvrlln adantr mtbird
      mpd llnle syl22anc simpr3 cops hlop syl simpr2 llnbase simpr1 cvrle hlpos
      wi cpo postr syl13anc mp2and llncvrlpln2 cvrcmp2 syl132anc mpbid eqeltrrd
      3exp2 imp rexlimdv impbida ) DMNZFANZGANZUAZFGBOZPZFENZGCNZWSWTPWNWPWTWRX
      AWNWOWPWRWTQWNWOWPWRWTRWSWTUBWQWRWTSABMCDEFGHIJKUCUDWSXAPZLUEZFDUFTZOZLEU
      GZWTXBWNWOFDUHTZUQZFDUITZNZURXFWNWOWPWRXAQZWNWOWPWRXAUJXBGXINZURZXHWSXAWN
      XMXKXICDGXIUKZKULUMXBXLFXGXBFXGUNZXGGBOZXLXBWRXOXPWQWRXASFXGGBUOUPXBWNWPX
      LXPUSXKWNWOWPWRXARXIABMGDXGHXGUKZIXNUTVAVBVCVHXBXJGENZWSXAWNXRURXKCDEGJKV
      DUMWSXJXRUSXAXIABDEFGHIXNJVEVFVGLXIADXDEFXGHXDUKZXQXNJVIVJXBXEWTLEWSXAXCE
      NZXEWTVTVTWSXAXTXEWTWSXAXTXEUAZPZXCFEYBXEXCFUNZWSXAXTXEVKZYBDVLNZXCANZWOW
      PXCGBOZWRXEYCUSYBWNYEWNWOWPWRYAQZDVMVNYBXTYFWSXAXTXEVOZADEXCHJVPVNZWNWOWP
      WRYAUJZWNWOWPWRYARZYBWNXTXAXCGXDOZYGYHYIWSXAXTXEVQYBXEFGXDOZYMYDWSYNYAMAB
      DXDFGHXSIVRVFYBDWANZYFWOWPXEYNPYMVTYBWNYOYHDVSVNYJYKYLADXDXCFGHXSWBWCWDBC
      DXDEXCGXSIJKWEUDWQWRYASABDXDXCFGHXSIWFWGWHYIWIWJWKWLVHWM $.
  $}

  ${
    2lplnm.j $e |- .\/ = ( join ` K ) $.
    2lplnm.m $e |- ./\ = ( meet ` K ) $.
    2lplnm.c $e |- C = ( <o ` K ) $.
    2lplnm.n $e |- N = ( LLines ` K ) $.
    2lplnm.p $e |- P = ( LPlanes ` K ) $.
    $( If the join of two lattice planes covers one of them, their meet is a
       lattice line.  (Contributed by NM, 30-Jun-2012.)
       (New usage is discouraged.) $)
    2lplnmN $p |- ( ( ( K e. HL /\ X e. P /\ Y e. P ) /\ X C ( X .\/ Y ) )
          -> ( X ./\ Y ) e. N ) $=
      ( chlt wcel co wbr wb lplnbase adantr w3a wa simpl3 cbs simpl1 clat hllat
      cfv eqid latmcl syl3an 3ad2ant3 simp1 3ad2ant2 cvrexch syl3anc llncvrlpln
      biimpar syl31anc mpbird ) DNOZGBOZHBOZUAZGGHCPAQZUBZGHEPZFOZVCVAVBVCVEUCV
      FVAVGDUDUHZOZHVIOZVGHAQZVHVCRVAVBVCVEUEVDVJVEVADUFOVBGVIOZVCVKVJDUGVIBDGV
      IUIZMSZVIBDHVNMSZVIDEGHVNJUJUKTVDVKVEVCVAVKVBVPULZTVDVLVEVDVAVMVKVLVERVAV
      BVCUMVBVAVMVCVOUNVQVIACDEGHVNIJKUOUPURVIABDFVGHVNKLMUQUSUT $.
  $}

  ${
    2llnmj.j $e |- .\/ = ( join ` K ) $.
    2llnmj.m $e |- ./\ = ( meet ` K ) $.
    2llnmj.a $e |- A = ( Atoms ` K ) $.
    2llnmj.n $e |- N = ( LLines ` K ) $.
    2llnmj.p $e |- P = ( LPlanes ` K ) $.
    $( The meet of two lattice lines is an atom iff their join is a lattice
       plane.  (Contributed by NM, 27-Jun-2012.) $)
    2llnmj $p |- ( ( K e. HL /\ X e. N /\ Y e. N )
      -> ( ( X ./\ Y ) e. A <-> ( X .\/ Y ) e. P ) ) $=
      ( wcel w3a cfv wbr wb wa syl3an chlt ccvr cbs simp1 eqid llnbase 3ad2ant2
      co 3ad2ant3 cvrexch syl3anc cple simpl1 simpr simpl3 hllat latmle2 adantr
      clat atcvrlln2 syl31anc latmcl 3jca atcvrlln sylan mpbird impbida latlej1
      simpl2 llncvrlpln2 latjcl llncvrlpln mpbid 3bitr4d ) DUANZGFNZHFNZOZGHEUH
      ZHDUBPZQZGGHCUHZVTQZVSANZWBBNZVRVOGDUCPZNZHWFNZWAWCRVOVPVQUDZVPVOWGVQWFDF
      GWFUEZLUFZUGZVQVOWHVPWFDFHWJLUFZUIZWFVTCDEGHWJIJVTUEZUJUKVRWDWAVRWDSVOWDV
      QVSHDULPZQZWAVOVPVQWDUMVRWDUNVOVPVQWDUOVRWQWDVODUSNZVPWGVQWHWQDUPZWKWMWFD
      WPEGHWJWPUEZJUQTURAVTVSDWPFHWTWOKLUTVAVRWASWDVQVOVPVQWAUOVRVOVSWFNZWHOWAW
      DVQRVRVOXAWHWIVOWRVPWGVQWHXAWSWKWMWFDEGHWJJVBTWNVCAWFVTDFVSHWJWOKLVDVEVFV
      GVRWEWCVRWESVOVPWEGWBWPQZWCVOVPVQWEUMVOVPVQWEVIVRWEUNVRXBWEVOWRVPWGVQWHXB
      WSWKWMWFCDWPGHWJWTIVHTURVTBDWPFGWBWTWOLMVJVAVRWCSVPWEVOVPVQWCVIVRVOWGWBWF
      NZOWCVPWERVRVOWGXCWIWLVOWRVPWGVQWHXCWSWKWMWFCDGHWJIVKTVCWFVTBDFGWBWJWOLMV
      LVEVMVGVN $.
  $}

  ${
    2atmat.l $e |- .<_ = ( le ` K ) $.
    2atmat.j $e |- .\/ = ( join ` K ) $.
    2atmat.m $e |- ./\ = ( meet ` K ) $.
    2atmat.a $e |- A = ( Atoms ` K ) $.
    $( The meet of two intersecting lines (expressed as joins of atoms) is an
       atom.  (Contributed by NM, 21-Nov-2012.) $)
    2atmat $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
   /\ ( R e. A /\ S e. A /\ P =/= Q )
   /\ ( R =/= S /\ -. R .<_ ( P .\/ Q ) /\ S .<_ ( ( P .\/ Q ) .\/ R ) ) )
         -> ( ( P .\/ Q ) ./\ ( R .\/ S ) ) e. A ) $=
      ( wcel w3a co cfv syl eqid wb chlt wne wbr wn clpl clat wceq simp11 hllat
      cbs hlatjcl 3ad2ant1 simp21 atbase simp22 latjass syl13anc simp33 syl3anc
      latjcl latleeqj2 eqtr3d simp23 simp32 wa simp12 simp13 islpln2a mpbir2and
      mpbid eqeltrd clln llni2 syl31anc simp31 2llnmj mpbird ) GUANZBANZCANZOZD
      ANZEANZBCUBZOZDEUBZDBCFPZHUCUDZEWGDFPZHUCZOZOZWGDEFPZIPANZWGWMFPZGUEQZNZW
      LWOWIWPWLWIEFPZWOWIWLGUFNZWGGUJQZNZDWTNZEWTNZWRWOUGWLVRWSVRVSVTWEWKUHZGUI
      RZWAWEXAWKAWTFGBCWTSZKMUKULZWLWBXBWAWBWCWDWKUMZAWTDGXFMUNRZWLWCXCWAWBWCWD
      WKUOZAWTEGXFMUNRZWTFGWGDEXFKUPUQWLWJWRWIUGZWAWEWFWHWJURWLWSXCWIWTNZWJXLTX
      EXKWLWSXAXBXMXEXGXIWTFGWGDXFKUTUSWTFGHEWIXFJKVAUSVJVBWLWIWPNZWDWHWAWBWCWD
      WKVCZWAWEWFWHWJVDWLVRVSVTWBXNWDWHVETXDVRVSVTWEWKVFZVRVSVTWEWKVGZXHAWPBCDF
      GHJKMWPSZVHUQVIVKWLVRWGGVLQZNZWMXSNZWNWQTXDWLVRVSVTWDXTXDXPXQXOABCFGXSKMX
      SSZVMVNWLVRWBWCWFYAXDXHXJWAWEWFWHWJVOADEFGXSKMYBVMVNAWPFGIXSWGWMKLMYBXRVP
      USVQ $.
  $}

  ${
    $d z K $.  $d z .<_ $.  $d z P $.  $d z X $.  $d z Y $.
    lplncmp.l $e |- .<_ = ( le ` K ) $.
    lplncmp.p $e |- P = ( LPlanes ` K ) $.
    $( If two lattice planes are comparable, they are equal.  (Contributed by
       NM, 24-Jun-2012.) $)
    lplncmp $p |- ( ( K e. HL /\ X e. P /\ Y e. P )
                -> ( X .<_ Y <-> X = Y ) ) $=
      ( vz chlt wcel w3a wbr cfv wi wb eqid lplnbase syl2anc mpbid wa wceq ccvr
      cv clln simp2 cbs simp1 3ad2ant2 islpln4 simpr3 cpo hlpos 3ad2ant1 adantr
      wrex simpl3 syl simpr1 simpr2 simpl1 cvrle syl31anc postr syl13anc mp2and
      llnbase llncvrlpln2 cvrcmp syl132anc rexlimdv mpd posref syl5ibcom impbid
      3exp2 breq2 ) BIJZDAJZEAJZKZDECLZDEUAZVTHUCZDBUBMZLZHBUDMZUOZWAWBNZVTVRWG
      VQVRVSUEVTVQDBUFMZJZVRWGOVQVRVSUGVRVQWJVSWIABDWIPZGQUHZHIWIWDABWFDWKWDPZW
      FPZGUIRSVTWEWHHWFVTWCWFJZWEWAWBVTWOWEWAKZTZWAWBVTWOWEWAUJZWQBUKJZWJEWIJZW
      CWIJZWEWCEWDLZWAWBOVTWSWPVQVRWSVSBULUMZUNZVTWJWPWLUNZWQVSWTVQVRVSWPUPZWIA
      BEWKGQUQZWQWOXAVTWOWEWAURZWIBWFWCWKWNVFUQZVTWOWEWAUSZWQVQWOVSWCECLZXBVQVR
      VSWPUTZXHXFWQWCDCLZWAXKWQVQXAWJWEXMXLXIXEXJIWIWDBCWCDWKFWMVAVBWRWQWSXAWJW
      TXMWATXKNXDXIXEXGWIBCWCDEWKFVCVDVEWDABCWFWCEFWMWNGVGVBWIWDBCDEWCWKFWMVHVI
      SVOVJVKVTDDCLZWBWAVTWSWJXNXCWLWIBCDWKFVLRDEDCVPVMVN $.
  $}

  ${
    $d q A $.  $d q K $.  $d q .<_ $.  $d q Y $.  $d q X $.
    lplnexat.l $e |- .<_ = ( le ` K ) $.
    lplnexat.j $e |- .\/ = ( join ` K ) $.
    lplnexat.a $e |- A = ( Atoms ` K ) $.
    lplnexat.n $e |- N = ( LLines ` K ) $.
    lplnexat.p $e |- P = ( LPlanes ` K ) $.
    $( Given a lattice line on a lattice plane, there is an atom whose join
       with the line equals the plane.  (Contributed by NM, 29-Jun-2012.)
       (New usage is discouraged.) $)
    lplnexatN $p |- ( ( ( K e. HL /\ X e. P /\ Y e. N ) /\ Y .<_ X )
      -> E. q e. A ( -. q .<_ Y /\ X = ( Y .\/ q ) ) ) $=
      ( wcel w3a wbr wa cfv wceq chlt ccvr cv wn co wrex simp1 simp3 simp2 3jca
      eqid llncvrlpln2 cbs wb simpl1 simpl3 llnbase syl simpl2 lplnbase cvrval3
      sylan syl3anc eqcom anbi2i rexbii syl6bb mpbid ) DUAOZGBOZHFOZPZHGEQZRZHG
      DUBSZQZIUCZHEQUDZGHVQCUEZTZRZIAUFZVLVIVKVJPVMVPVLVIVKVJVIVJVKUGVIVJVKUHVI
      VJVKUIUJVOBDEFHGJVOUKZMNULVBVNVPVRVSGTZRZIAUFZWBVNVIHDUMSZOZGWGOZVPWFUNVI
      VJVKVMUOVNVKWHVIVJVKVMUPWGDFHWGUKZMUQURVNVJWIVIVJVKVMUSWGBDGWJNUTURAWGVOC
      DEHGIWJJKWCLVAVCWEWAIAWDVTVRVSGVDVEVFVGVH $.

    $d r s z A $.  $d r s y z .\/ $.  $d r s z K $.  $d r s y z .<_ $.
    $d r s y z N $.  $d r s z P $.  $d r s y z Q $.  $d r s y z X $.
    $( Given an atom on a lattice plane, there is a lattice line whose join
       with the atom equals the plane.  (Contributed by NM, 26-Jun-2012.)
       (New usage is discouraged.) $)
    lplnexllnN $p |- ( ( ( K e. HL /\ X e. P /\ Q e. A ) /\ Q .<_ X )
      -> E. y e. N ( -. Q .<_ y /\ X = ( y .\/ Q ) ) ) $=
      ( wcel wbr wa co wceq syl vr vz vs chlt w3a cv wrex simpl2 cbs cfv simpl1
      wn eqid lplnbase islpln3 syl2anc mpbid wne simpll1 simpr2l simpll3 simpr1
      wb llnexatN syl31anc simp1l1 simp22r simp3l simp1l3 simp23l simp3rr mtbid
      wi breq2d atnlej2 syl131anc llni2 simp3rl hlatcon2 syl132anc simp23r clat
      oveq1d hllat atbase latj31 syl13anc 3eqtrd notbid eqeq2d anbi12d syl12anc
      breq2 oveq1 rspcev 3expia expd rexlimdv mpd 3exp2 llnbase simpr2r latlej1
      syl3anc simpr3r breqtrrd simplr simpll2 latjle12 mpbi2and ccvr cvr1 lplni
      latjcl lplncmp eqcomd weq pm2.61d rexlimdvv ) FUDOZICOZDBOZUEZDIGPZQZUAUF
      ZUBUFZGPZULZIYGYFERZSZQZUABUGUBHUGZDAUFZGPZULZIYNDERZSZQZAHUGZYEYAYMXTYAY
      BYDUHZYEXTIFUIUJZOZYAYMVCXTYAYBYDUKYEYAUUCUUAUUBCFIUUBUMZNUNZTUBBUUBCEFGH
      IUAUUDJKLMNUOUPUQYEYLYTUBUAHBYEDYGGPZYGHOZYFBOZQZYLYTVMVMYEUUFUUIYLYTYEUU
      FUUIYLUEZQZDUCUFZURZYGDUULERZSZQZUCBUGZYTUUKXTUUGYBUUFUUQXTYAYBYDUUJUSUUG
      UUHUUFYLYEUTXTYAYBYDUUJVAYEUUFUUIYLVBBDEFGHYGUCJKLMVDVEUUKUUPYTUCBUUKUULB
      OZUUPYTYEUUJUURUUPQZYTYEUUJUUSUEZYFUULERZHOZDUVAGPZULZIUVADERZSZYTUUTXTUU
      HUURYFUULURZUVBXTYAYBYDUUJUUSVFZUUGUUHUUFYLYEUUSVGZYEUUJUURUUPVHZUUTXTUUH
      YBUURYFUUNGPZULZUVGUVHUVIXTYAYBYDUUJUUSVIZUVJUUTYHUVKYIYKUUFUUIYEUUSVJUUT
      YGUUNYFGUUMUUOUURYEUUJVKZVNVLZBYFDUULEFGJKLVOVPBYFUULEFHKLMVQVEUUTXTYBUUR
      UUHUUMUVLUVDUVHUVMUVJUVIUUMUUOUURYEUUJVRUVOBDUULYFEFGJKLVSVTUUTIYJUUNYFER
      ZUVEYIYKUUFUUIYEUUSWAUUTYGUUNYFEUVNWCUUTFWBOZDUUBOZUULUUBOZYFUUBOZUVPUVES
      UUTXTUVQUVHFWDZTUUTYBUVRUVMBUUBDFUUDLWEZTUUTUURUVSUVJBUUBUULFUUDLWETUUTUU
      HUVTUVIBUUBYFFUUDLWEZTUUBEFDUULYFUUDKWFWGWHYSUVDUVFQAUVAHYNUVASZYPUVDYRUV
      FUWDYOUVCYNUVADGWMWIUWDYQUVEIYNUVADEWNWJWKWOWLWPWQWRWSWTYEUUFULZUUIYLYTYE
      UWEUUIYLUEZQZUUGUWEIYGDERZSZYTUUGUUHUWEYLYEUTZYEUWEUUIYLVBZUWGUWHIUWGUWHI
      GPZUWHISZUWGYGIGPZYDUWLUWGYGYJIGUWGUVQYGUUBOZUVTYGYJGPUWGXTUVQXTYAYBYDUWF
      USZUWATZUWGUUGUWOUWJUUBFHYGUUDMXATZUWGUUHUVTUUGUUHUWEYLYEXBUWCTUUBEFGYGYF
      UUDJKXCXDYIYKUWEUUIYEXEXFYCYDUWFXGUWGUVQUWOUVRUUCUWNYDQUWLVCUWQUWRUWGYBUV
      RXTYAYBYDUWFVAZUWBTZUWGYAUUCXTYAYBYDUWFXHZUUETUUBEFGYGDIUUDJKXIWGXJUWGXTU
      WHCOZYAUWLUWMVCUWPUWGXTUWHUUBOZUUGYGUWHFXKUJZPZUXBUWPUWGUVQUWOUVRUXCUWQUW
      RUWTUUBEFYGDUUDKXNXDUWJUWGUWEUXEUWKUWGXTUWOYBUWEUXEVCUWPUWRUWSBUUBUXDDEFG
      YGUUDJKUXDUMZLXLXDUQUUBUXDUDCFHYGUWHUUDUXFMNXMVEUXACFGUWHIJNXOXDUQXPYSUWE
      UWIQAYGHAUBXQZYPUWEYRUWIUXGYOUUFYNYGDGWMWIUXGYQUWHIYNYGDEWNWJWKWOWLWTXRXS
      WS $.
  $}

  ${
    lplnnlt.s $e |- .< = ( lt ` K ) $.
    lplnnlt.p $e |- P = ( LPlanes ` K ) $.
    $( Two lattice planes cannot satisfy the less than relation.  (Contributed
       by NM, 7-Jul-2012.) $)
    lplnnlt $p |- ( ( K e. HL /\ X e. P /\ Y e. P ) -> -. X .< Y ) $=
      ( chlt wcel w3a wbr wceq pltirr 3adant3 breq2 notbid syl5ibcom cple cfv
      wn eqid pltle lplncmp sylibd necon3ad pm2.61dne ) CHIZDAIZEAIZJZDEBKZTZDE
      UJDDBKZTZDELZULUGUHUNUIHABCDFMNUOUMUKDEDBOPQUJUKDEUJUKDECRSZKUOHAABCUPDEU
      PUAZFUBACUPDEUQGUCUDUEUF $.
  $}

  ${
    2llnja.l $e |- .<_ = ( le ` K ) $.
    2llnja.j $e |- .\/ = ( join ` K ) $.
    2llnja.a $e |- A = ( Atoms ` K ) $.
    2llnja.n $e |- N = ( LLines ` K ) $.
    2llnja.p $e |- P = ( LPlanes ` K ) $.
    $( The join of two different lattice lines in a lattice plane equals the
       plane (version of ~ 2llnjN in terms of atoms).  (Contributed by NM,
       5-Jul-2012.)  (New usage is discouraged.) $)
    2llnjaN $p |- ( ( ( ( K e. HL /\ W e. P ) /\ ( Q e. A /\ R e. A /\ Q =/= R
        )
      /\ ( S e. A /\ T e. A /\ S =/= T ) )
           /\ ( ( Q .\/ R ) .<_ W /\ ( S .\/ T ) .<_ W
         /\ ( Q .\/ R ) =/= ( S .\/ T ) ) )
  -> ( ( Q .\/ R ) .\/ ( S .\/ T ) ) = W ) $=
      ( wcel w3a wbr syl3anc chlt wa wne co cbs cfv eqid clat simpl1l hllat syl
      simpl21 simpl22 hlatjcl simpl31 simpl32 latjcl simpl1r lplnbase simpr1 wb
      simpr2 latjle12 syl13anc mpbi2and wceq atbase latlej2 latjlej2 mpd lattrd
      wi 3adant3 simp11l wn simp121 simp122 simp132 simp123 simp23 simpl3 simpr
      adantr ps-1 syl112anc eqcomd ex necon3ad lplni2 syl132anc simp11r lplncmp
      mpbid eqbrtrrd 3expia latlej1 simp131 simp3 pm2.61d latasymd ) HUAQZKBQZU
      BZCAQZDAQZCDUCZRZEAQZFAQZEFUCZRZRZCDGUDZKISZEFGUDZKISZXMXOUCZRZUBZHUEUFZH
      IXMXOGUDZKXTUGZLXSXAHUHQZXAXBXGXKXRUIZHUJUKZXSYCXMXTQZXOXTQZYAXTQYEXSXAXD
      XEYFYDXDXEXFXCXKXRULZXDXEXFXCXKXRUMZAXTGHCDYBMNUNTZXSXAXHXIYGYDXHXIXJXCXG
      XRUOZXHXIXJXCXGXRUPZAXTGHEFYBMNUNTZXTGHXMXOYBMUQTZXSXBKXTQZXAXBXGXKXRURXT
      BHKYBPUSUKZXSXNXPYAKISZXLXNXPXQUTXLXNXPXQVBXSYCYFYGYOXNXPUBYQVAYEYJYMYPXT
      GHIXMXOKYBLMVCVDVEZXSEXMISZKYAISZXLXRYSYTXLXRYSRZXMFGUDZKYAIUUAUUBKISZUUB
      KVFZXLXRUUCYSXSXTHIUUBYAKYBLYEXSYCYFFXTQZUUBXTQYEYJXSXIUUEYLAXTFHYBNVGUKZ
      XTGHXMFYBMUQTYNYPXSFXOISZUUBYAISZXSYCEXTQZUUEUUGYEXSXHUUIYKAXTEHYBNVGUKZU
      UFXTGHIEFYBLMVHTXSYCUUEYGYFUUGUUHVLYEUUFYMYJXTGHIFXOXMYBLMVIVDVJZYRVKVMUU
      AXAUUBBQZXBUUCUUDVAXAXBXGXKXRYSVNZUUAXAXDXEXIXFFXMISZVOZUULUUMXDXEXFXCXKX
      RYSVPXDXEXFXCXKXRYSVQXHXIXJXCXGXRYSVRXDXEXFXCXKXRYSVSUUAXQUUOXLXNXPXQYSVT
      UUAUUNXMXOUUAUUNXMXOVFUUAUUNUBZXOXMUUPXOXMISZXOXMVFZUUPYSUUNUUQXLXRYSUUNW
      AUUAUUNWBUUAYSUUNUBUUQVAZUUNXLXRUUSYSXSYCUUIUUEYFUUSYEUUJUUFYJXTGHIEFXMYB
      LMVCVDVMWCVEUUAUUQUURVAZUUNXLXRUUTYSXSXAXKXDXEUUTYDXCXGXKXRWAYHYIAEFCDGHI
      LMNWDWEVMWCWMWFWGWHVJABCDFGHILMNPWIWJXAXBXGXKXRYSWKBHIUUBKLPWLTWMXLXRUUHY
      SUUKVMWNWOXLXRYSVOZYTXLXRUVARZXMEGUDZKYAIUVBUVCKISZUVCKVFZXLXRUVDUVAXSXTH
      IUVCYAKYBLYEXSYCYFUUIUVCXTQYEYJUUJXTGHXMEYBMUQTYNYPXSEXOISZUVCYAISZXSYCUU
      IUUEUVFYEUUJUUFXTGHIEFYBLMWPTXSYCUUIYGYFUVFUVGVLYEUUJYMYJXTGHIEXOXMYBLMVI
      VDVJZYRVKVMUVBXAUVCBQZXBUVDUVEVAXAXBXGXKXRUVAVNZUVBXAXDXEXHXFUVAUVIUVJXDX
      EXFXCXKXRUVAVPXDXEXFXCXKXRUVAVQXHXIXJXCXGXRUVAWQXDXEXFXCXKXRUVAVSXLXRUVAW
      RABCDEGHILMNPWIWJXAXBXGXKXRUVAWKBHIUVCKLPWLTWMXLXRUVGUVAUVHVMWNWOWSWT $.
  $}

  ${
    $d q r s t .\/ $.  $d q r s t K $.  $d q r s t .<_ $.  $d q r s t N $.
    $d q r s t P $.  $d q r s t X $.  $d q r s t Y $.  $d q r s t W $.
    2llnj.l $e |- .<_ = ( le ` K ) $.
    2llnj.j $e |- .\/ = ( join ` K ) $.
    2llnj.n $e |- N = ( LLines ` K ) $.
    2llnj.p $e |- P = ( LPlanes ` K ) $.
    $( The join of two different lattice lines in a lattice plane equals the
       plane.  (Contributed by NM, 4-Jul-2012.)  (New usage is discouraged.) $)
    2llnjN $p |- ( ( K e. HL /\ ( X e. N /\ Y e. N /\ W e. P )
       /\ ( X .<_ W /\ Y .<_ W /\ X =/= Y ) ) -> ( X .\/ Y ) = W ) $=
      ( vq vr vs vt wcel w3a wne wa chlt wbr wceq catm cfv wrex cbs eqid islln2
      cv co simpr syl6bi anim12d imp 3adantr3 3adant3 wi simp2rr simp3rr simp13
      oveq12d breq1 neeq1 3anbi13d neeq2 3anbi23d sylan9bb syl2anc mpbid simp11
      simp123 simp2ll simp2lr simp2rl simp3ll simp3lr simp3rl 2llnjaN syl233anc
      wb ex mpd eqtrd 3exp 3impib expd rexlimdvv impd ) CUAQZGEQZHEQZFAQZRZGFDU
      BZHFDUBZGHSZRZRZMUJZNUJZSZGWTXABUKZUCZTZNCUDUEZUFMXFUFZOUJZPUJZSZHXHXIBUK
      ZUCZTZPXFUFOXFUFZTZGHBUKZFUCZWJWNXOWRWJWKWLXOWMWJWKWLTXOWJWKXGWLXNWJWKGCU
      GUEZQZXGTXGXFXRBCEGNMXRUHZJXFUHZKUIXSXGULUMWJWLHXRQZXNTXNXFXRBCEHPOXTJYAK
      UIYBXNULUMUNUOUPUQWSXGXNXQWSXEXNXQURZMNXFXFWSWTXFQZXAXFQZTZXEYCWSYFXERZXM
      XQOPXFXFYGXHXFQZXIXFQZTZXMXQWSYFXEYJXMTZXQURWSYFXETZYKXQWSYLYKRZXPXCXKBUK
      ZFYMGXCHXKBXBXDYFWSYKUSZXJXLYJWSYLUTZVBYMXCFDUBZXKFDUBZXCXKSZRZYNFUCZYMWR
      YTWJWNWRYLYKVAYMXDXLWRYTWAYOYPXDWRYQWPXCHSZRXLYTXDWOYQWQUUBWPGXCFDVCGXCHV
      DVEXLWPYRUUBYSYQHXKFDVCHXKXCVFVGVHVIVJYMWJWMYDYEXBYHYIXJYTUUAURWJWNWRYLYK
      VKWKWLWMWJWRYLYKVLYDYEXEWSYKVMYDYEXEWSYKVNXBXDYFWSYKVOYHYIXMWSYLVPYHYIXMW
      SYLVQXJXLYJWSYLVRWJWMTYDYEXBRYHYIXJRRYTUUAXFAWTXAXHXIBCDEFIJYAKLVSWBVTWCW
      DWEWFWGWHWEWHWIWC $.
  $}

  ${
    2llnm2.l $e |- .<_ = ( le ` K ) $.
    2llnm2.m $e |- ./\ = ( meet ` K ) $.
    2llnm2.a $e |- A = ( Atoms ` K ) $.
    2llnm2.n $e |- N = ( LLines ` K ) $.
    2llnm2.p $e |- P = ( LPlanes ` K ) $.
    $( The meet of two different lattice lines in a lattice plane is an atom.
       (Contributed by NM, 5-Jul-2012.)  (New usage is discouraged.) $)
    2llnm2N $p |- ( ( K e. HL /\ ( X e. N /\ Y e. N /\ W e. P )
       /\ ( X .<_ W /\ Y .<_ W /\ X =/= Y ) ) -> ( X ./\ Y ) e. A ) $=
      ( wcel w3a wbr cfv eqid syl3anc chlt wne co simp22 cbs ccvr wb simp1 clat
      3ad2ant1 simp21 llnbase syl latmcl cjn 2llnjN eqeltrd latlej1 llncvrlpln2
      hllat simp23 syl31anc cvrexch mpbird atcvrlln ) CUAOZHFOZIFOZGBOZPZHGDQIG
      DQHIUBPZPZHIEUCZAOZVHVFVGVHVIVKUDZVLVFVMCUERZOZIVPOZVMICUFRZQZVNVHUGVFVJV
      KUHZVLCUIOZHVPOZVRVQVFVJWBVKCUTUJZVLVGWCVFVGVHVIVKUKZVPCFHVPSZMULUMZVLVHV
      RVOVPCFIWFMULUMZVPCEHIWFKUNTWHVLVTHHICUORZUCZVSQZVLVFVGWJBOHWJDQZWKWAWEVL
      WJGBBWICDFGHIJWISZMNUPVFVGVHVIVKVAUQVLWBWCVRWLWDWGWHVPWICDHIWFJWMURTVSBCD
      FHWJJVSSZMNUSVBVLVFWCVRVTWKUGWAWGWHVPVSWICEHIWFWMKWNVCTVDAVPVSCFVMIWFWNLM
      VEVBVD $.
  $}

  ${
    2llnm3.l $e |- .<_ = ( le ` K ) $.
    2llnm3.m $e |- ./\ = ( meet ` K ) $.
    2llnm3.z $e |- .0. = ( 0. ` K ) $.
    2llnm3.n $e |- N = ( LLines ` K ) $.
    2llnm3.p $e |- P = ( LPlanes ` K ) $.
    $( Two lattice lines in a lattice plane always meet.  (Contributed by NM,
       5-Jul-2012.)  (New usage is discouraged.) $)
    2llnm3N $p |- ( ( K e. HL /\ ( X e. N /\ Y e. N /\ W e. P )
       /\ ( X .<_ W /\ Y .<_ W ) ) -> ( X ./\ Y ) =/= .0. ) $=
      ( wcel w3a wbr wa wne syl2anc chlt co wceq oveq1 neeq1d catm simpl1 hlatl
      cal cfv syl simpl2 simpl3l simpl3r simpr eqid 2llnm2N syl113anc atn0 clat
      cbs hllat 3ad2ant1 simp22 llnbase latmidm simp1 llnn0 eqnetrd pm2.61ne )
      BUAOZGEOZHEOZFAOZPZGFCQZHFCQZRZPZGHDUBZISZHHDUBZISGHGHUCVTWBIGHHDUDUEVSGH
      SZRZBUIOZVTBUFUJZOZWAWDVKWEVKVOVRWCUGZBUHUKWDVKVOVPVQWCWGWHVKVOVRWCULVPVQ
      VKVOWCUMVPVQVKVOWCUNVSWCUOWFABCDEFGHJKWFUPZMNUQURWFVTBILWIUSTVSWBHIVSBUTO
      ZHBVAUJZOZWBHUCVKVOWJVRBVBVCVSVMWLVKVLVMVNVRVDZWKBEHWKUPZMVEUKWKBDHWNKVFT
      VSVKVMHISVKVOVRVGWMBEHILMVHTVIVJ $.
  $}

  ${
    2llnm4.l $e |- .<_ = ( le ` K ) $.
    2llnm4.m $e |- ./\ = ( meet ` K ) $.
    2llnm4.z $e |- .0. = ( 0. ` K ) $.
    2llnm4.a $e |- A = ( Atoms ` K ) $.
    2llnm4.n $e |- N = ( LLines ` K ) $.
    $( Two lattice lines that majorize the same atom always meet.  (Contributed
       by NM, 20-Jul-2012.) $)
    2llnm4 $p |- ( ( K e. HL /\ ( P e. A /\ X e. N /\ Y e. N )
       /\ ( P .<_ X /\ P .<_ Y ) ) -> ( X ./\ Y ) =/= .0. ) $=
      ( wcel w3a wbr 3ad2ant1 llnbase syl chlt wa cal co cbs cfv wne hlatl clat
      hllat simp22 eqid simp23 latmcl syl3anc simp21 simp3 wb latlem12 syl13anc
      atbase mpbid atlen0 syl31anc ) CUAOZBAOZGFOZHFOZPZBGDQBHDQUBZPZCUCOZGHEUD
      ZCUEUFZOZVFBVMDQZVMIUGVEVIVLVJCUHRVKCUIOZGVNOZHVNOZVOVEVIVQVJCUJRZVKVGVRV
      EVFVGVHVJUKVNCFGVNULZNSTZVKVHVSVEVFVGVHVJUMVNCFHWANSTZVNCEGHWAKUNUOVEVFVG
      VHVJUPZVKVJVPVEVIVJUQVKVQBVNOZVRVSVJVPURVTVKVFWEWDAVNBCWAMVATWBWCVNCDEBGH
      WAJKUSUTVBAVNBCDVMIWAJLMVCVD $.
  $}

  ${
    2llnmeqat.l $e |- .<_ = ( le ` K ) $.
    2llnmeqat.m $e |- ./\ = ( meet ` K ) $.
    2llnmeqat.a $e |- A = ( Atoms ` K ) $.
    2llnmeqat.n $e |- N = ( LLines ` K ) $.
    $( An atom equals the intersection of two majorizing lines.  (Contributed
       by NM, 3-Apr-2013.) $)
    2llnmeqat $p |- ( ( K e. HL /\ ( X e. N /\ Y e. N /\ P e. A )
        /\ ( X =/= Y /\ P .<_ ( X ./\ Y ) ) ) -> P = ( X ./\ Y ) ) $=
      ( wcel w3a wne wbr wa wb 3ad2ant1 syl chlt co simp3r cal hlatl simp23 cp0
      wceq cfv simp1 simp21 simp22 simp3l clat cbs eqid atbase llnbase latlem12
      hllat syl13anc mpbird 2llnm4 syl131anc 2llnmat syl32anc atcmp syl3anc
      mpbid ) CUAMZGFMZHFMZBAMZNZGHOZBGHEUBZDPZQZNZVQBVPUHZVJVNVOVQUCZVSCUDMZVM
      VPAMZVQVTRVJVNWBVRCUESVJVKVLVMVRUFZVSVJVKVLVOVPCUGUIZOZWCVJVNVRUJZVJVKVLV
      MVRUKZVJVKVLVMVRULZVJVNVOVQUMVSVJVMVKVLBGDPBHDPQZWFWGWDWHWIVSWJVQWAVSCUNM
      ZBCUOUIZMZGWLMZHWLMZWJVQRVJVNWKVRCUTSVSVMWMWDAWLBCWLUPZKUQTVSVKWNWHWLCFGW
      PLURTVSVLWOWIWLCFHWPLURTWLCDEBGHWPIJUSVAVBABCDEFGHWEIJWEUPZKLVCVDACEFGHWE
      JWQKLVEVFABVPCDIKVGVHVI $.
  $}

  ${
    $d k y P $.  $d k x B $.  $d k C $.  $d k y x K $.
    lvolset.b $e |- B = ( Base ` K ) $.
    lvolset.c $e |- C = ( <o ` K ) $.
    lvolset.p $e |- P = ( LPlanes ` K ) $.
    lvolset.v $e |- V = ( LVols ` K ) $.
    $( The set of 3-dim lattice volumes in a Hilbert lattice.  (Contributed by
       NM, 1-Jul-2012.) $)
    lvolset $p |- ( K e. A -> V = { x e. B | E. y e. P y C x } ) $=
      ( vk cvv cv cfv ccvr clpl cbs fveq2 wcel wbr wrex crab wceq clvol syl6eqr
      elex breqd rexeqbidv rabeqbidv df-lvols fvex eqeltri rabex fvmpt syl5eq
      syl ) GCUAGNUAZHBOZAOZEUBZBFUCZADUDZUEGCUHUSHGUFPVDLMGUTVAMOZQPZUBZBVERPZ
      UCZAVESPZUDVDNUFVEGUEZVIVCAVJDVKVJGSPZDVEGSTIUGVKVGVBBVHFVKVHGRPFVEGRTKUG
      VKVFEUTVAVKVFGQPEVEGQTJUGUIUJUKAMBULVCADDVLNIGSUMUNUOUPUQUR $.

    $d x P $.  $d x C $.  $d y x X $.
    $( The predicate "is a 3-dim lattice volume".  (Contributed by NM,
       1-Jul-2012.) $)
    islvol $p |- ( K e. A -> ( X e. V <-> ( X e. B /\ E. y e. P y C X ) ) ) $=
      ( vx wcel cv wbr wrex crab wa lvolset eleq2d breq2 rexbidv elrab syl6bb
      wceq ) FBNZHGNHAOZMOZDPZAEQZMCRZNHCNUHHDPZAEQZSUGGULHMABCDEFGIJKLTUAUKUNM
      HCUIHUFUJUMAEUIHUHDUBUCUDUE $.

    $( The predicate "is a 3-dim lattice volume".  (Contributed by NM,
       1-Jul-2012.) $)
    islvol4 $p |- ( ( K e. A /\ X e. B )
       -> ( X e. V <-> E. y e. P y C X ) ) $=
      ( wcel cv wbr wrex islvol baibd ) FBMHGMHCMANHDOAEPABCDEFGHIJKLQR $.

    $d x Y $.
    $( Condition implying a 3-dim lattice volume.  (Contributed by NM,
       1-Jul-2012.) $)
    lvoli $p |- ( ( ( K e. D /\ Y e. B /\ X e. P ) /\ X C Y ) -> Y e. V ) $=
      ( vx wcel w3a wbr wa cv wrex simpl2 rspcev 3ad2antl3 wb simpl1 islvol syl
      breq1 mpbir2and ) ECNZHANZGDNZOGHBPZQZHFNZUJMRZHBPZMDSZUIUJUKULTUKUIULUQU
      JUPULMGDUOGHBUGUAUBUMUIUNUJUQQUCUIUJUKULUDMCABDEFHIJKLUEUFUH $.
  $}

  ${
    $d p A $.  $d p y B $.  $d p y K $.  $d p .<_ $.  $d p y P $.  $d p y X $.
    islvol3.b $e |- B = ( Base ` K ) $.
    islvol3.l $e |- .<_ = ( le ` K ) $.
    islvol3.j $e |- .\/ = ( join ` K ) $.
    islvol3.a $e |- A = ( Atoms ` K ) $.
    islvol3.p $e |- P = ( LPlanes ` K ) $.
    islvol3.v $e |- V = ( LVols ` K ) $.
    $( The predicate "is a 3-dim lattice volume".  (Contributed by NM,
       1-Jul-2012.) $)
    islvol3 $p |- ( ( K e. HL /\ X e. B ) -> ( X e. V
         <-> E. y e. P E. p e. A ( -. p .<_ y /\ X = ( y .\/ p ) ) ) ) $=
      ( chlt wcel wa wrex cv ccvr cfv wbr wn co wceq islvol4 wb simpll lplnbase
      eqid adantl simplr cvrval3 syl3anc eqcom a1i anbi2d rexbidva bitrd ) FQRZ
      ICRZSZIHRAUAZIFUBUCZUDZADTJUAZVEGUDUEZIVEVHEUFZUGZSZJBTZADTAQCVFDFHIKVFUL
      ZOPUHVDVGVMADVDVEDRZSZVGVIVJIUGZSZJBTZVMVPVBVECRZVCVGVSUIVBVCVOUJVOVTVDCD
      FVEKOUKUMVBVCVOUNBCVFEFGVEIJKLMVNNUOUPVPVRVLJBVPVHBRSZVQVKVIVQVKUIWAVJIUQ
      URUSUTVAUTVA $.
  $}

  ${
    $d r y A $.  $d r y .\/ $.  $d r y K $.  $d r y .<_ $.  $d r y P $.
    $d r y Q $.  $d r y X $.
    lvoli3.l $e |- .<_ = ( le ` K ) $.
    lvoli3.j $e |- .\/ = ( join ` K ) $.
    lvoli3.a $e |- A = ( Atoms ` K ) $.
    lvoli3.p $e |- P = ( LPlanes ` K ) $.
    lvoli3.v $e |- V = ( LVols ` K ) $.
    $( Condition implying a 3-dim lattice volume.  (Contributed by NM,
       2-Aug-2012.) $)
    lvoli3 $p |- ( ( ( K e. HL /\ X e. P /\ Q e. A ) /\ -. Q .<_ X )
         -> ( X .\/ Q ) e. V ) $=
      ( vr vy wcel wbr wn wa wceq chlt w3a co cv wrex simpl2 simpl3 simpr eqidd
      breq2 notbid oveq1 eqeq2d anbi12d breq1 oveq2 rspc2ev syl112anc wb simpl1
      cbs cfv clat hllat syl eqid lplnbase atbase latjcl syl3anc islvol3 mpbird
      syl2anc ) EUAPZHBPZCAPZUBZCHFQZRZSZHCDUCZGPZNUDZOUDZFQZRZWAWDWCDUCZTZSZNA
      UEOBUEZVTVOVPVSWAWATZWJVNVOVPVSUFZVNVOVPVSUGZVQVSUHVTWAUIWIVSWKSWCHFQZRZW
      AHWCDUCZTZSONHCBAWDHTZWFWOWHWQWRWEWNWDHWCFUJUKWRWGWPWAWDHWCDULUMUNWCCTZWO
      VSWQWKWSWNVRWCCHFUOUKWSWPWAWAWCCHDUPUMUNUQURVTVNWAEVAVBZPZWBWJUSVNVOVPVSU
      TZVTEVCPZHWTPZCWTPZXAVTVNXCXBEVDVEVTVOXDWLWTBEHWTVFZLVGVEVTVPXEWMAWTCEXFK
      VHVEWTDEHCXFJVIVJOAWTBDEFGWANXFIJKLMVKVMVL $.
  $}

  ${
    $d x K $.  $d x X $.
    lvolbase.b $e |- B = ( Base ` K ) $.
    lvolbase.v $e |- V = ( LVols ` K ) $.
    $( A 3-dim lattice volume is a lattice element.  (Contributed by NM,
       1-Jul-2012.) $)
    lvolbase $p |- ( X e. V -> X e. B ) $=
      ( vx cvv wcel clvol cfv c0 wceq n0i eqeq1i sylnib fvprc nsyl2 cv eqid wbr
      ccvr clpl wrex islvol simprbda mpancom ) BHIZDCIZDAIZUIBJKZLMZUHUICLMULCD
      NCUKLFOPBJQRUHUIUJGSDBUBKZUAGBUCKZUDGHAUMUNBCDEUMTUNTFUEUFUG $.
  $}

  ${
    $d p q r s y A $.  $d p q r s y B $.  $d p q r s y .\/ $.
    $d p q r s y K $.  $d p q r s y .<_ $.  $d p q r s y X $.
    islvol5.b $e |- B = ( Base ` K ) $.
    islvol5.l $e |- .<_ = ( le ` K ) $.
    islvol5.j $e |- .\/ = ( join ` K ) $.
    islvol5.a $e |- A = ( Atoms ` K ) $.
    islvol5.v $e |- V = ( LVols ` K ) $.
    $( The predicate "is a 3-dim lattice volume" in terms of atoms.
       (Contributed by NM, 1-Jul-2012.) $)
    islvol5 $p |- ( ( K e. HL /\ X e. B )
      -> ( X e. V <-> E. p e. A E. q e. A E. r e. A E. s e. A
   ( ( p =/= q /\ -. r .<_ ( p .\/ q ) /\ -. s .<_ ( ( p .\/ q ) .\/ r ) )
            /\ X = ( ( ( p .\/ q ) .\/ r ) .\/ s ) ) ) ) $=
      ( vy wcel wa wrex chlt cv wbr wn co wceq clpl cfv wne w3a islvol3 rexcom4
      eqid rexbii bitri hllat ad3antrrr simplll simplrl simplrr hlatjcl syl3anc
      clat atbase adantl latjcl biantrurd r19.41v df-3an anbi2i an13 exbii ovex
      eleq1 breq2 notbid oveq1 eqeq2d anbi12d anbi2d anass bicomi anbi1i bitr3i
      wex an12 syl6bb syl5bb rexbidv r19.42v 3bitr3g ceqsexv syl6rbbr 2rexbidva
      rexbidva syl5rbbr islpln2 adantr anbi1d an32 3bitr4ri rexcom exbidv bitrd
      wb df-rex ) DUARZGBRZSZGFRHUBZQUBZEUCZUDZGXKXJCUEZUFZSZHATZQDUGUHZTZKUBZJ
      UBZUIZIUBZXTYACUEZEUCUDZXJYDYCCUEZEUCZUDZUJZGYFXJCUEZUFZSZHATZIATZJATKATZ
      QABXRCDEFGHLMNOXRUMZPUKXIYOXKXRRZXQSZQWEZXSXIYOXKBRZXPSZYBYEXKYFUFZUJZSZH
      ATZIATZJATZKATZQWEZYSUUIUUEQWEZIATZJATZKATZXIYOUUMUUGQWEZKATUUIUULUUNKAUU
      LUUFQWEZJATUUNUUKUUOJAUUEIQAULUNUUFJQAULUOUNUUGKQAULUOXIUUKYNKJAAXIXTARZY
      AARZSZSZUUJYMIAUUSYCARZSZYMYFBRZYMSZUUJUVAUVBYMUVADVCRZYDBRZYCBRZUVBXGUVD
      XHUURUUTDUPUQUVAXGUUPUUQUVEXGXHUURUUTURXIUUPUUQUUTUSXIUUPUUQUUTUTABCDXTYA
      LNOVAVBUUTUVFUUSABYCDLOVDVEBCDYDYCLNVFVBVGUUJUUBYBYESZUUAHATZSZSZQWEUVCUU
      EUVJQUUEUVHUUCSZUVJUUAUUCHAVHUVKUVHUVGUUBSZSUVJUUCUVLUVHYBYEUUBVIVJUVHUVG
      UUBVKUOUOVLUVIUVCQYFYDYCCVMUUBUVGUUASZHATUVBYLSZHATUVIUVCUUBUVMUVNHAUVMYT
      UVGXPSZSUUBUVNUVGYTXPWFUUBYTUVBUVOYLXKYFBVNUUBUVOUVGYHYKSZSZYLUUBXPUVPUVG
      UUBXMYHXOYKUUBXLYGXKYFXJEVOVPUUBXNYJGXKYFXJCVQVRVSVTUVQUVGYHSZYKSYLUVGYHY
      KWAUVRYIYKYIUVRYBYEYHVIWBWCWDWGVSWHWIUVGUUAHAWJUVBYLHAWJWKWLUOWMWOWNWPXIU
      UHYRQXIUUHYQXPSZHATZYRXIUVTUUDIATZJATZKATZHATZUUHXIUVSUWCHAXIUVSYTUUCIATZ
      JATZKATZSZXPSZUWCXIYQUWHXPXGYQUWHXEXHABXRCDEXKIJKLMNOYPWQWRWSUUAUWFSZKATU
      UAUWGSUWCUWIUUAUWFKAWJUWBUWJKAUWBUUAUWESZJATUWJUWAUWKJAUUAUUCIAWJUNUUAUWE
      JAWJUOUNYTUWGXPWTXAWGWIUUHUWBHATZKATUWDUUGUWLKAUUGUWAHATZJATUWLUUFUWMJAUU
      DIHAAXBUNUWAJHAAXBUOUNUWBKHAAXBUOWMYQXPHAWJWGXCXDXQQXRXFWMXD $.

    $( The predicate "is a 3-dim lattice volume" in terms of atoms.
       (Contributed by NM, 1-Jul-2012.) $)
    islvol2 $p |- ( K e. HL
      -> ( X e. V <-> ( X e. B /\ E. p e. A E. q e. A E. r e. A E. s e. A
   ( ( p =/= q /\ -. r .<_ ( p .\/ q ) /\ -. s .<_ ( ( p .\/ q ) .\/ r ) )
            /\ X = ( ( ( p .\/ q ) .\/ r ) .\/ s ) ) ) ) ) $=
      ( wcel wa cv wrex chlt wne co wbr wceq lvolbase pm4.71ri islvol5 pm5.32da
      wn w3a syl5bb ) GFQZGBQZUMRDUAQZUNKSZJSZUBISZUPUQCUCZEUDUJHSZUSURCUCZEUDU
      JUKGVAUTCUCUERHATIATJATKATZRUMUNBDFGLPUFUGUOUNUMVBABCDEFGHIJKLMNOPUHUIUL
      $.
  $}

  ${
    $d p q r s A $.  $d p q r s .\/ $.  $d p q r s K $.  $d p q r s .<_ $.
    $d p q r s P $.  $d p q r s Q $.  $d p q r s R $.  $d p q r s S $.
    lvoli2.l $e |- .<_ = ( le ` K ) $.
    lvoli2.j $e |- .\/ = ( join ` K ) $.
    lvoli2.a $e |- A = ( Atoms ` K ) $.
    lvoli2.v $e |- V = ( LVols ` K ) $.
    $( The join of 4 different atoms is a lattice volume.  (Contributed by NM,
       8-Jul-2012.) $)
    lvoli2 $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A ) /\ ( R e. A /\ S e. A )
     /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q )
         /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
    -> ( ( ( P .\/ Q ) .\/ R ) .\/ S ) e. V ) $=
      ( wcel w3a wa co wbr wn wceq vp vq vr vs chlt cv wrex simp12 simp13 simp3
      wne eqidd neeq1 oveq1 breq2d notbid oveq1d 3anbi123d eqeq2d anbi12d neeq2
      oveq2 rspc2ev syl112anc 3exp simplrl simplrr simpr breq1 3anbi23d 3anbi3d
      wi syl3anc ex reximdv syldd 3imp cbs cfv wb simp11 clat hllat syl hlatjcl
      eqid 3ad2ant1 simp2l atbase latjcl simp2r islvol5 syl2anc mpbird ) GUENZB
      ANZCANZOZDANZEANZPZBCUKZDBCFQZHRZSZEXCDFQZHRZSZOZOZXFEFQZINZUAUFZUBUFZUKZ
      UCUFZXMXNFQZHRZSZUDUFZXQXPFQZHRZSZOZXKYAXTFQZTZPZUDAUGUCAUGZUBAUGZUAAUGZW
      RXAXIYJWRXAXIXODXQHRZSZEXQDFQZHRZSZOZXKYMEFQZTZPZUBAUGZUAAUGZYJWRXAXIUUAX
      JWPWQXIXKXKTZUUAWOWPWQXAXIUHWOWPWQXAXIUIWRXAXIUJXJXKULYSXIUUBPBXNUKZDBXNF
      QZHRZSZEUUDDFQZHRZSZOZXKUUGEFQZTZPUAUBBCAAXMBTZYPUUJYRUULUUMXOUUCYLUUFYOU
      UIXMBXNUMUUMYKUUEUUMXQUUDDHXMBXNFUNZUOUPUUMYNUUHUUMYMUUGEHUUMXQUUDDFUUNUQ
      ZUOUPURUUMYQUUKXKUUMYMUUGEFUUOUQUSUTXNCTZUUJXIUULUUBUUPUUCXBUUFXEUUIXHXNC
      BVAUUPUUEXDUUPUUDXCDHXNCBFVBZUOUPUUPUUHXGUUPUUGXFEHUUPUUDXCDFUUQUQZUOUPUR
      UUPUUKXKXKUUPUUGXFEFUURUQUSUTVCVDVEWRXAUUAYJVLWRXAPZYTYIUAAUUSYSYHUBAUUSY
      SYHUUSYSPWSWTYSYHWRWSWTYSVFWRWSWTYSVGUUSYSVHYGYSXOYLXTYMHRZSZOZXKYMXTFQZT
      ZPUCUDDEAAXPDTZYDUVBYFUVDUVEXSYLYCUVAXOUVEXRYKXPDXQHVIUPUVEYBUUTUVEYAYMXT
      HXPDXQFVBZUOUPVJUVEYEUVCXKUVEYAYMXTFUVFUQUSUTXTETZUVBYPUVDYRUVGUVAYOXOYLU
      VGUUTYNXTEYMHVIUPVKUVGUVCYQXKXTEYMFVBUSUTVCVMVNVOVOVNVPVQXJWOXKGVRVSZNZXL
      YJVTWOWPWQXAXIWAZXJGWBNZXFUVHNZEUVHNZUVIXJWOUVKUVJGWCWDZXJUVKXCUVHNZDUVHN
      ZUVLUVNWRXAUVOXIAUVHFGBCUVHWFZKLWEWGXJWSUVPWRWSWTXIWHAUVHDGUVQLWIWDUVHFGX
      CDUVQKWJVMXJWTUVMWRWSWTXIWKAUVHEGUVQLWIWDUVHFGXFEUVQKWJVMAUVHFGHIXKUDUCUB
      UAUVQJKLMWLWMWN $.
  $}

  ${
    $d y A $.  $d y .\/ $.  $d y K $.  $d y .<_ $.  $d y P $.  $d y Q $.
    $d y R $.  $d y V $.  $d y X $.
    lvolnle3at.l $e |- .<_ = ( le ` K ) $.
    lvolnle3at.j $e |- .\/ = ( join ` K ) $.
    lvolnle3at.a $e |- A = ( Atoms ` K ) $.
    lvolnle3at.v $e |- V = ( LVols ` K ) $.
    $( A lattice plane (or lattice line or atom) cannot majorize a lattice
       volume.  (Contributed by NM, 8-Jul-2012.) $)
    lvolnle3at $p |- ( ( ( K e. HL /\ X e. V )
          /\ ( P e. A /\ Q e. A /\ R e. A ) )
        -> -. X .<_ ( ( P .\/ Q ) .\/ R ) ) $=
      ( chlt wcel wa wbr wn wi syl3anc vy w3a cv ccvr cfv clpl co cbs simplr wb
      wrex eqid islvol ad2antrr mpbid simprd oveq1d breq2d notbid simp1l simp3l
      wceq oveq1 wne simp21 simp22 lplnnle2at syl13anc cplt lplnbase syl simp1r
      lvolbase simp3r cvrlt syl31anc cpo hlpos hlatjcl pltletr mpand pltle syld
      mtod adantr simprr simp23 atbase latleeqj2 mtbird anassrs simpl1l simpl3l
      clat hllat simpl2 simpr lplni2 lplnnlt latjcl pm2.61dan hlatjidm pm2.61ne
      cple syl2anc 3expia expd rexlimdv mpd ) FNOZIHOZPZBAOZCAOZDAOZUBZPZUAUCZI
      FUDUEZQZUAFUFUEZUKZIBCEUGZDEUGZGQZRZXQIFUHUEZOZYBXQXKYHYBPZXJXKXPUIXJXKYI
      UJXKXPUANYGXSYAFHIYGULZXSULZYAULZMUMUNUOUPXQXTYFUAYAXQXRYAOZXTYFXLXPYMXTP
      ZYFXLXPYNUBZYFICCEUGZDEUGZGQZRBCBCVBZYEYRYSYDYQIGYSYCYPDEBCCEVCUQURUSYOBC
      VDZPDYCGQZYFYOYTUUAYFYOYTUUAPZPZYEIYCGQZYOUUDRUUBYOUUDXRYCGQZYOXJYMXMXNUU
      ERXJXKXPYNUTZXLXPYMXTVAZXLXMXNXOYNVEZXLXMXNXOYNVFZAYABCEFGXRJKLYLVGVHYOUU
      DXRYCFVIUEZQZUUEYOXRIUUJQZUUDUUKYOXJXRYGOZYHXTUULUUFYOYMUUMUUGYGYAFXRYJYL
      VJVKZYOXKYHXJXKXPYNVLYGFHIYJMVMVKZXLXPYMXTVNNYGXSUUJFXRIYJUUJULZYKVOVPZYO
      FVQOZUUMYHYCYGOZUULUUDPUUKSYOXJUURUUFFVRVKZUUNUUOYOXJXMXNUUSUUFUUHUUIAYGE
      FBCYJKLVSTZYGUUJFGXRIYCYJJUUPVTVHWAYOXJYMUUSUUKUUESUUFUUGUVANYAYGUUJFGXRY
      CJUUPWBTWCWDWEUUCYDYCIGUUCUUAYDYCVBZYOYTUUAWFYOUUAUVBUJZUUBYOFWNOZDYGOZUU
      SUVCYOXJUVDUUFFWOVKZYOXOUVEXLXMXNXOYNWGZAYGDFYJLWHVKZUVAYGEFGDYCYJJKWITWE
      UOURWJWKYOYTUUARZYFYOYTUVIPZPZYEXRYDUUJQZUVKXJYMYDYAOZUVLRXJXKXPYNUVJWLZY
      MXTXLXPUVJWMUVKXJXPUVJUVMUVNXLXPYNUVJWPYOUVJWQAYABCDEFGJKLYLWRTYAUUJFXRYD
      UUPYLWSTYOYEUVLSUVJYOUULYEUVLUUQYOUURUUMYHYDYGOZUULYEPUVLSUUTUUNUUOYOUVDU
      USUVEUVOUVFUVAUVHYGEFYCDYJKWTTYGUUJFGXRIYDYJJUUPVTVHWAWEWDWKXAYOYRICDEUGZ
      GQZYOUVQXRUVPFXDUEZQZYOXJYMXNXOUVSRUUFUUGUUIUVGAYACDEFUVRXRUVRULZKLYLVGVH
      YOUVQXRUVPUUJQZUVSYOUULUVQUWAUUQYOUURUUMYHUVPYGOZUULUVQPUWASUUTUUNUUOYOXJ
      XNXOUWBUUFUUIUVGAYGEFCDYJKLVSTZYGUUJFGXRIUVPYJJUUPVTVHWAYOXJYMUWBUWAUVSSU
      UFUUGUWCNYAYGUUJFUVRXRUVPUVTUUPWBTWCWDYOYQUVPIGYOYPCDEYOXJXNYPCVBUUFUUIAE
      FCKLXBXEUQURWJXCXFXGXHXI $.
  $}

  ${
    lvolnleat.l $e |- .<_ = ( le ` K ) $.
    lvolnleat.a $e |- A = ( Atoms ` K ) $.
    lvolnleat.v $e |- V = ( LVols ` K ) $.
    $( An atom cannot majorize a lattice volume.  (Contributed by NM,
       14-Jul-2012.) $)
    lvolnleat $p |- ( ( K e. HL /\ X e. V /\ P e. A ) -> -. X .<_ P ) $=
      ( chlt wcel w3a cjn cfv co wbr wa wn 3simpa simp3 eqid lvolnle3at 3adant2
      syl13anc wceq hlatjidm oveq1d eqtrd breq2d mtbid ) CJKZFEKZBAKZLZFBBCMNZO
      ZBUOOZDPZFBDPUNUKULQUMUMUMURRUKULUMSUKULUMTZUSUSABBBUOCDEFGUOUAZHIUBUDUNU
      QBFDUNUQUPBUNUPBBUOUKUMUPBUEULAUOCBUTHUFUCZUGVAUHUIUJ $.
  $}

  ${
    $d p q K $.  $d p q .<_ $.  $d p q N $.  $d p q V $.  $d p q X $.
    $d p q Y $.
    lvolnlelln.l $e |- .<_ = ( le ` K ) $.
    lvolnlelln.n $e |- N = ( LLines ` K ) $.
    lvolnlelln.v $e |- V = ( LVols ` K ) $.
    $( A lattice line cannot majorize a lattice volume.  (Contributed by NM,
       14-Jul-2012.) $)
    lvolnlelln $p |- ( ( K e. HL /\ X e. V /\ Y e. N ) -> -. X .<_ Y ) $=
      ( vp vq wcel w3a cfv cv co wceq wa wrex eqid chlt cbs wne cjn catm wbr wn
      simp3 islln2 3ad2ant1 mpbid simp11 simp12 simp2l simp2r lvolnle3at simp3r
      wb syl23anc hlatjidm syl2anc oveq1d eqtr4d breq2d mtbird 3exp adantld mpd
      rexlimdvv ) AUALZEDLZFCLZMZFAUBNZLZJOZKOZUCZFVPVQAUDNZPZQZRZKAUENZSJWCSZR
      ZEFBUFZUGZVMVLWEVJVKVLUHVJVKVLWEURVLWCVNVSACFKJVNTVSTZWCTZHUIUJUKVMWDWGVO
      VMWBWGJKWCWCVMVPWCLZVQWCLZRZWBWGVMWLWBMZWFEVPVPVSPZVQVSPZBUFZWMVJVKWJWJWK
      WPUGVJVKVLWLWBULZVJVKVLWLWBUMVMWJWKWBUNZWRVMWJWKWBUOWCVPVPVQVSABDEGWHWIIU
      PUSWMFWOEBWMFVTWOVMWLVRWAUQWMWNVPVQVSWMVJWJWNVPQWQWRWCVSAVPWHWIUTVAVBVCVD
      VEVFVIVGVH $.
  $}

  ${
    $d q r s K $.  $d q r s .<_ $.  $d q r s P $.  $d q r s V $.  $d q r s X $.
    $d q r s Y $.
    lvolnlelpln.l $e |- .<_ = ( le ` K ) $.
    lvolnlelpln.p $e |- P = ( LPlanes ` K ) $.
    lvolnlelpln.v $e |- V = ( LVols ` K ) $.
    $( A lattice plane cannot majorize a lattice volume.  (Contributed by NM,
       14-Jul-2012.) $)
    lvolnlelpln $p |- ( ( K e. HL /\ X e. V /\ Y e. P ) -> -. X .<_ Y ) $=
      ( vq vr vs wcel w3a cfv cv wbr wn wrex wa chlt cbs wne co wceq catm simp3
      cjn eqid islpln2 3ad2ant1 simp1l1 simp1l2 simp1r simp2l simp2r lvolnle3at
      mpbid syl23anc simp33 breq2d mtbird 3exp rexlimdvv rexlimdva adantld mpd
      wb ) BUAMZEDMZFAMZNZFBUBOZMZJPZKPZUCZLPZVOVPBUHOZUDZCQRZFVTVRVSUDZUEZNZLB
      UFOZSKWESZJWESZTZEFCQZRZVLVKWHVIVJVKUGVIVJVKWHVHVKWEVMAVSBCFLKJVMUIGVSUIZ
      WEUIZHUJUKURVLWGWJVNVLWFWJJWEVLVOWEMZTZWDWJKLWEWEWNVPWEMZVRWEMZTZWDWJWNWQ
      WDNZWIEWBCQZWRVIVJWMWOWPWSRVIVJVKWMWQWDULVIVJVKWMWQWDUMVLWMWQWDUNWNWOWPWD
      UOWNWOWPWDUPWEVOVPVRVSBCDEGWKWLIUQUSWRFWBECWNWQVQWAWCUTVAVBVCVDVEVFVG $.
  $}

  ${
    3atnelvol.j $e |- .\/ = ( join ` K ) $.
    3atnelvol.a $e |- A = ( Atoms ` K ) $.
    3atnelvol.v $e |- V = ( LVols ` K ) $.
    $( The join of 3 atoms is not a lattice volume.  (Contributed by NM,
       17-Jul-2012.)  (New usage is discouraged.) $)
    3atnelvolN $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) )
         -> -. ( ( P .\/ Q ) .\/ R ) e. V ) $=
      ( chlt wcel w3a wa co cple cfv wbr clat eqid cbs adantr hlatjcl 3adant3r3
      hllat simpr3 atbase syl latjcl syl3anc latref syl2anc wn lvolnle3at an32s
      ex mt2d ) FKLZBALZCALZDALZMZNZBCEOZDEOZGLZVEVEFPQZRZVCFSLZVEFUAQZLZVHURVI
      VBFUEUBZVCVIVDVJLZDVJLZVKVLURUSUTVMVAAVJEFBCVJTZHIUCUDVCVAVNURUSUTVAUFAVJ
      DFVOIUGUHVJEFVDDVOHUIUJVJFVGVEVOVGTZUKULVCVFVHUMZURVFVBVQABCDEFVGGVEVPHIJ
      UNUOUPUQ $.

    $( The join of two atoms is not a lattice volume.  (Contributed by NM,
       17-Jul-2012.)  (New usage is discouraged.) $)
    2atnelvolN $p |- ( ( K e. HL /\ P e. A /\ Q e. A )
         -> -. ( P .\/ Q ) e. V ) $=
      ( chlt wcel w3a co wceq hlatjidm 3adant3 oveq1d wn simp1 simp2 3atnelvolN
      simp3 syl13anc eqneltrrd ) EJKZBAKZCAKZLZBBDMZCDMZBCDMFUHUIBCDUEUFUIBNUGA
      DEBGHOPQUHUEUFUFUGUJFKRUEUFUGSUEUFUGTZUKUEUFUGUBABBCDEFGHIUAUCUD $.
  $}

  ${
    lvolneat.a $e |- A = ( Atoms ` K ) $.
    lvolneat.v $e |- V = ( LVols ` K ) $.
    $( No lattice volume is an atom.  (Contributed by NM, 15-Jul-2012.)
       (New usage is discouraged.) $)
    lvolneatN $p |- ( ( K e. HL /\ X e. V ) -> -. X e. A ) $=
      ( chlt wcel wa cple cfv wbr clat cbs hllat eqid lvolbase latref syl2an wn
      lvolnleat 3expia mt2d ) BGHZDCHZIDAHZDDBJKZLZUDBMHDBNKZHUHUEBOUIBCDUIPZFQ
      UIBUGDUJUGPZRSUDUEUFUHTADBUGCDUKEFUAUBUC $.
  $}

  ${
    lvolnelln.l $e |- N = ( LLines ` K ) $.
    lvolnelln.v $e |- V = ( LVols ` K ) $.
    $( No lattice volume is a lattice line.  (Contributed by NM,
       15-Jul-2012.) $)
    lvolnelln $p |- ( ( K e. HL /\ X e. V ) -> -. X e. N ) $=
      ( chlt wcel wa cple cfv wbr clat cbs hllat eqid lvolbase latref syl2an wn
      lvolnlelln 3expia mt2d ) AGHZDCHZIDBHZDDAJKZLZUDAMHDANKZHUHUEAOUIACDUIPZF
      QUIAUGDUJUGPZRSUDUEUFUHTAUGBCDDUKEFUAUBUC $.
  $}

  ${
    lvolnelpln.p $e |- P = ( LPlanes ` K ) $.
    lvolnelpln.v $e |- V = ( LVols ` K ) $.
    $( No lattice volume is a lattice plane.  (Contributed by NM,
       19-Jun-2012.) $)
    lvolnelpln $p |- ( ( K e. HL /\ X e. V ) -> -. X e. P ) $=
      ( chlt wcel wa cple cfv wbr clat cbs hllat eqid lvolbase latref syl2an wn
      lvolnlelpln 3expia mt2d ) BGHZDCHZIDAHZDDBJKZLZUDBMHDBNKZHUHUEBOUIBCDUIPZ
      FQUIBUGDUJUGPZRSUDUEUFUHTABUGCDDUKEFUAUBUC $.
  $}

  ${
    $d p K $.  $d p V $.  $d p X $.  $d p .0. $.
    lvoln0.z $e |- .0. = ( 0. ` K ) $.
    lvoln0.v $e |- V = ( LVols ` K ) $.
    $( A lattice volume is nonzero.  (Contributed by NM, 17-Jul-2012.)
       (New usage is discouraged.) $)
    lvoln0N $p |- ( ( K e. HL /\ X e. V ) -> X =/= .0. ) $=
      ( vp chlt wcel wa cv catm cfv wne wex c0 eqid atex n0 wbr sylib adantr wn
      cple lvolnleat 3expa wceq cops cbs hlop atbase adantl op0le syl2anc breq1
      ad2antrr syl5ibrcom necon3bd mpd exlimddv ) AHIZCBIZJZGKZALMZIZCDNZGVAVFG
      OZVBVAVEPNVHVEAVEQZRGVESUAUBVCVFJZCVDAUDMZTZUCZVGVAVBVFVMVEVDAVKBCVKQZVIF
      UEUFVJVLCDVJVLCDUGDVDVKTZVJAUHIZVDAUIMZIZVOVAVPVBVFAUJUPVFVRVCVEVQVDAVQQZ
      VIUKULVQAVKVDDVSVNEUMUNCDVDVKUOUQURUSUT $.
  $}

  ${
    islvol2a.l $e |- .<_ = ( le ` K ) $.
    islvol2a.j $e |- .\/ = ( join ` K ) $.
    islvol2a.a $e |- A = ( Atoms ` K ) $.
    islvol2a.v $e |- V = ( LVols ` K ) $.
    $( The predicate "is a lattice volume".  (Contributed by NM, 16-Jul-2012.)
       (New usage is discouraged.) $)
    islvol2aN $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
          /\ ( R e. A /\ S e. A ) )
    -> ( ( ( ( P .\/ Q ) .\/ R ) .\/ S ) e. V
        <-> ( P =/= Q /\ -. R .<_ ( P .\/ Q )
            /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) ) ) $=
      ( wcel wa co wn wceq 3atnelvolN syl13anc chlt w3a wne oveq1 simpl1 simpl3
      wbr hlatjidm sylan9eqr oveq1d simprl simprr adantr eqneltrd necon2ad clat
      syl2anc ex cbs cfv wb hllat syl atbase ad2antrl hlatjcl latleeqj2 syl3anc
      simpl2 eleq1d notbid syl5ibrcom sylbid con2d ad2antll latjcl eleq1 lvoli2
      eqid 3jcad 3expia impbid ) GUANZBANZCANZUBZDANZEANZOZOZBCFPZDFPZEFPZINZBC
      UCZDWKHUGZQZEWLHUGZQZUBZWJWNWOWQWSWJWNBCWJBCRZWNQZWJXAOZWMCDFPZEFPZIXCWLX
      DEFXCWKCDFXAWJWKCCFPZCBCCFUDWJWCWEXFCRWCWDWEWIUEZWCWDWEWIUFZAFGCKLUHUQUIU
      JUJWJXEINQZXAWJWCWEWGWHXIXGXHWFWGWHUKZWFWGWHULZACDEFGIKLMSTUMUNURUOWJWPWN
      WJWPWLWKRZXBWJGUPNZDGUSUTZNZWKXNNZWPXLVAWJWCXMXGGVBVCZWGXOWFWHAXNDGXNVSZL
      VDVEZWFXPWIAXNFGBCXRKLVFUMZXNFGHDWKXRJKVGVHWJXBXLWKEFPZINZQZWJWCWDWEWHYCX
      GWCWDWEWIVIZXHXKABCEFGIKLMSTXLWNYBXLWMYAIWLWKEFUDVJVKVLVMVNWJWRWNWJWRWMWL
      RZXBWJXMEXNNZWLXNNZWRYEVAXQWHYFWFWGAXNEGXRLVDVOWJXMXPXOYGXQXTXSXNFGWKDXRK
      VPVHXNFGHEWLXRJKVGVHWJXBYEWLINZQZWJWCWDWEWGYIXGYDXHXJABCDFGIKLMSTYEWNYHWM
      WLIVQVKVLVMVNVTWFWIWTWNABCDEFGHIJKLMVRWAWB $.
  $}

  ${
    4at.l $e |- .<_ = ( le ` K ) $.
    4at.j $e |- .\/ = ( join ` K ) $.
    4at.a $e |- A = ( Atoms ` K ) $.
    $( Lemma for ~ 4at .  (Contributed by NM, 10-Jul-2012.) $)
    4atlem0a $p |- ( ( ( K e. HL /\ ( P e. A /\ Q e. A ) /\ ( R e. A
         /\ S e. A ) ) /\ ( -. R .<_ ( P .\/ Q )
       /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
     -> -. R .<_ ( ( P .\/ Q ) .\/ S ) ) $=
      ( chlt wcel wa w3a co wbr wn simprr cbs wi simpl1 simpl3l simpl3r simpl2l
      cfv simpl2r eqid hlatjcl syl3anc simprl hlexch1 syl131anc mtod ) GLMZBAMZ
      CAMZNZDAMZEAMZNZOZDBCFPZHQRZEVCDFPHQZRZNZNZDVCEFPHQZVEVBVDVFSVHUOUSUTVCGT
      UFZMZVDVIVEUAUOURVAVGUBZUSUTUOURVGUCUSUTUOURVGUDVHUOUPUQVKVLUPUQUOVAVGUEU
      PUQUOVAVGUGAVJFGBCVJUHZJKUIUJVBVDVFUKAVJDEFGHVCVMIJKULUMUN $.

    $( Lemma for ~ 4at .  (Contributed by NM, 10-Jul-2012.) $)
    4atlem0ae $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
           /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q ) ) )
         -> -. Q .<_ ( P .\/ R ) ) $=
      ( chlt wcel w3a wne co wbr wn wa simp3r wi simp22 simp23 simp21 hlatexch1
      simp1 simp3l necomd syl131anc mtod ) FKLZBALZCALZDALZMZBCNZDBCEOGPZQZRZMZ
      CBDEOGPZUPUJUNUOUQSUSUJULUMUKCBNUTUPTUJUNURUEUJUKULUMURUAUJUKULUMURUBUJUK
      ULUMURUCUSBCUJUNUOUQUFUGACDBEFGHIJUDUHUI $.

    $( Lemma for ~ 4at .  (Contributed by NM, 10-Jul-2012.) $)
    4atlem0be $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
            /\ -. R .<_ ( P .\/ Q ) ) -> P =/= R ) $=
      ( chlt wcel w3a co wbr wn wne simp1 simp23 simp21 simp3 atnlej1 syl131anc
      simp22 necomd ) FKLZBALZCALZDALZMZDBCENGOPZMUFUIUGUHUKBDQUFUJUKRUFUGUHUIU
      KSUFUGUHUIUKTUFUGUHUIUKUDUFUJUKUAUFUIUGUHMUKMDBADBCEFGHIJUBUEUC $.

    $( Lemma for ~ 4at .  Break inequality into 4 cases.  (Contributed by NM,
       8-Jul-2012.) $)
    4atlem3 $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A )
                /\ ( R e. A /\ S e. A /\ T e. A ) /\ ( U e. A /\ V e. A ) )
     /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q )
         /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
  -> ( ( -. P .<_ ( ( T .\/ U ) .\/ V )
        \/ -. Q .<_ ( ( T .\/ U ) .\/ V ) )
        \/ ( -. R .<_ ( ( T .\/ U ) .\/ V )
        \/ -. S .<_ ( ( T .\/ U ) .\/ V ) ) ) ) $=
      ( wcel wa co wbr wn syl chlt w3a wne wo clvol cfv simpl11 simpl21 simpl22
      simpl1 simpr lvoli2 syl121anc simpl23 simpl3l simpl3r lvolnle3at syl23anc
      eqid cbs wb hllat hlatjcl syl3anc atbase latjcl latjle12 syl13anc simpl12
      clat simpl13 anbi12d wceq latjass breq1d 3bitr4d mtbird ianor bitri sylib
      orbi12i ) IUAOZBAOZCAOZUBZDAOZEAOZFAOZUBZGAOZKAOZPZUBZBCUCDBCHQZJRSEWNDHQ
      ZJRSUBZPZBFGHQZKHQZJRZCWSJRZPZDWSJRZEWSJRZPZPZSZWTSXASUDZXCSXDSUDZUDZWQXF
      WOEHQZWSJRZWQWBXKIUEUFZOZWHWJWKXLSWBWCWDWIWLWPUGZWQWEWFWGWPXNWEWIWLWPUJZW
      FWGWHWEWLWPUHZWFWGWHWEWLWPUIZWMWPUKABCDEHIJXMLMNXMUSZULUMWFWGWHWEWLWPUNZW
      JWKWEWIWPUOZWJWKWEWIWPUPZAFGKHIJXMXKLMNXSUQURWQWNWSJRZDEHQZWSJRZPZWNYDHQZ
      WSJRZXFXLWQIVJOZWNIUTUFZOZYDYJOZWSYJOZYFYHVAWQWBYIXOIVBTZWQWEYKXPAYJHIBCY
      JUSZMNVCTZWQWBWFWGYLXOXQXRAYJHIDEYOMNVCVDWQYIWRYJOZKYJOZYMYNWQWBWHWJYQXOX
      TYAAYJHIFGYOMNVCVDWQWKYRYBAYJKIYONVETYJHIWRKYOMVFVDZYJHIJWNYDWSYOLMVGVHWQ
      XBYCXEYEWQYIBYJOZCYJOZYMXBYCVAYNWQWCYTWBWCWDWIWLWPVIAYJBIYONVETWQWDUUAWBW
      CWDWIWLWPVKAYJCIYONVETYSYJHIJBCWSYOLMVGVHWQYIDYJOZEYJOZYMXEYEVAYNWQWFUUBX
      QAYJDIYONVETZWQWGUUCXRAYJEIYONVETZYSYJHIJDEWSYOLMVGVHVLWQXKYGWSJWQYIYKUUB
      UUCXKYGVMYNYPUUDUUEYJHIWNDEYOMVNVHVOVPVQXGXBSZXESZUDXJXBXEVRUUFXHUUGXIWTX
      AVRXCXDVRWAVSVT $.

    $( Lemma for ~ 4at .  Break inequality into 3 cases.  (Contributed by NM,
       9-Jul-2012.) $)
    4atlem3a $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A )
                /\ ( R e. A /\ S e. A ) /\ ( U e. A /\ V e. A ) )
     /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q )
     /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
  -> ( -. Q .<_ ( ( P .\/ U ) .\/ V )
     \/ -. R .<_ ( ( P .\/ U ) .\/ V )
     \/ -. S .<_ ( ( P .\/ U ) .\/ V ) ) ) $=
      ( wcel w3a co wbr wn wo syl chlt wa wne w3o simpl1 simpl2l simpl2r simpl3
      simpl12 3jca simpr 4atlem3 syl31anc wb clat cbs simpl11 hllat eqid atbase
      cfv simpl3l simpl3r hlatjcl syl3anc latlej1 wceq syl13anc breqtrrd biortn
      latjass orbi1d mpbird 3orass sylibr ) HUANZBANZCANZOZDANZEANZUBZFANZJANZU
      BZOZBCUCDBCGPZIQREWGDGPIQROZUBZCBFGPJGPZIQRZDWJIQRZEWJIQRZSZSZWKWLWMUDWIW
      OBWJIQZRWKSZWNSZWIVSVTWAVQOWEWHWRVSWBWEWHUEWIVTWAVQVTWAVSWEWHUFVTWAVSWEWH
      UGVPVQVRWBWEWHUIZUJVSWBWEWHUHWFWHUKABCDEBFGHIJKLMULUMWIWKWQWNWIWPWKWQUNWI
      BBFJGPZGPZWJIWIHUONZBHUPVAZNZWTXCNZBXAIQWIVPXBVPVQVRWBWEWHUQZHURTZWIVQXDW
      SAXCBHXCUSZMUTTZWIVPWCWDXEXFWCWDVSWBWHVBZWCWDVSWBWHVCZAXCGHFJXHLMVDVEXCGH
      IBWTXHKLVFVEWIXBXDFXCNZJXCNZWJXAVGXGXIWIWCXLXJAXCFHXHMUTTWIWDXMXKAXCJHXHM
      UTTXCGHBFJXHLVKVHVIWPWKVJTVLVMWKWLWMVNVO $.

    $( Lemma for ~ 4at .  Break inequality into 2 cases.  (Contributed by NM,
       9-Jul-2012.) $)
    4atlem3b $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
                /\ ( R e. A /\ S e. A /\ V e. A )
     /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q )
         /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
   -> ( -. R .<_ ( ( P .\/ Q ) .\/ V )
         \/ -. S .<_ ( ( P .\/ Q ) .\/ V ) ) ) $=
      ( wcel w3a co wbr wn wo wa syl chlt wne simp1 simp21 simp22 simp13 simp23
      w3o jca simp3 4atlem3a syl31anc 3orass sylib wb clat cbs cfv simp11 hllat
      simp12 eqid hlatjcl syl3anc atbase latlej2 hlatj32 syl13anc biortn mpbird
      wceq breqtrd ) GUAMZBAMZCAMZNZDAMZEAMZIAMZNZBCUBDBCFOZHPQEWADFOHPQNZNZDWA
      IFOZHPQZEWDHPQZRZCWDHPZQZWGRZWCWIWEWFUHZWJWCVPVQVRSVOVSSWBWKVPVTWBUCWCVQV
      RVPVQVRVSWBUDVPVQVRVSWBUEUIWCVOVSVMVNVOVTWBUFZVPVQVRVSWBUGZUIVPVTWBUJABCD
      ECFGHIJKLUKULWIWEWFUMUNWCWHWGWJUOWCCBIFOZCFOZWDHWCGUPMZWNGUQURZMZCWQMZCWO
      HPWCVMWPVMVNVOVTWBUSZGUTTWCVMVNVSWRWTVMVNVOVTWBVAZWMAWQFGBIWQVBZKLVCVDWCV
      OWSWLAWQCGXBLVETWQFGHWNCXBJKVFVDWCVMVNVSVOWOWDVKWTXAWMWLABICFGKLVGVHVLWHW
      GVITVJ $.

    $( Lemma for ~ 4at .  Frequently used associative law.  (Contributed by NM,
       9-Jul-2012.) $)
    4atlem4a $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
            /\ ( R e. A /\ S e. A ) )
     -> ( ( P .\/ Q ) .\/ ( R .\/ S ) )
        = ( P .\/ ( ( Q .\/ R ) .\/ S ) ) ) $=
      ( chlt wcel w3a wa co wceq syl atbase syl13anc clat cbs cfv simpl1 simpl2
      hllat simpl3 simprl simprr hlatjcl syl3anc latjass hlatjass oveq2d eqtr4d
      eqid ) GLMZBAMZCAMZNZDAMZEAMZOZOZBCFPDEFPZFPZBCVEFPZFPZBCDFPEFPZFPVDGUAMZ
      BGUBUCZMZCVKMZVEVKMZVFVHQVDUQVJUQURUSVCUDZGUFRVDURVLUQURUSVCUEAVKBGVKUPZK
      SRVDUSVMUQURUSVCUGZAVKCGVPKSRVDUQVAVBVNVOUTVAVBUHZUTVAVBUIZAVKFGDEVPJKUJU
      KVKFGBCVEVPJULTVDVIVGBFVDUQUSVAVBVIVGQVOVQVRVSACDEFGJKUMTUNUO $.

    $( Lemma for ~ 4at .  Frequently used associative law.  (Contributed by NM,
       9-Jul-2012.) $)
    4atlem4b $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
            /\ ( R e. A /\ S e. A ) )
      -> ( ( P .\/ Q ) .\/ ( R .\/ S ) )
          = ( Q .\/ ( ( P .\/ R ) .\/ S ) ) ) $=
      ( chlt wcel w3a wa co wceq simpl1 syl atbase simpl2 simpl3 syl122anc clat
      simprl simprr hlatj4 cbs cfv hllat eqid hlatjcl syl3anc ad2antll syl13anc
      latj12 eqtrd ) GLMZBAMZCAMZNZDAMZEAMZOZOZBCFPDEFPFPZBDFPZCEFPFPZCVGEFPFPZ
      VEURUSUTVBVCVFVHQURUSUTVDRZURUSUTVDUAZURUSUTVDUBZVAVBVCUEZVAVBVCUFABCDEFG
      JKUGUCVEGUDMZVGGUHUIZMZCVOMZEVOMZVHVIQVEURVNVJGUJSVEURUSVBVPVJVKVMAVOFGBD
      VOUKZJKULUMVEUTVQVLAVOCGVSKTSVCVRVAVBAVOEGVSKTUNVOFGVGCEVSJUPUOUQ $.

    $( Lemma for ~ 4at .  Frequently used associative law.  (Contributed by NM,
       9-Jul-2012.) $)
    4atlem4c $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
            /\ ( R e. A /\ S e. A ) )
      -> ( ( P .\/ Q ) .\/ ( R .\/ S ) )
            = ( R .\/ ( ( P .\/ Q ) .\/ S ) ) ) $=
      ( chlt wcel w3a wa clat co cbs cfv atbase simpl1 hllat syl hlatjcl adantr
      wceq eqid ad2antrl ad2antll latj12 syl13anc ) GLMZBAMZCAMZNZDAMZEAMZOZOZG
      PMZBCFQZGRSZMZDVBMZEVBMZVADEFQFQDVAEFQFQUFUSULUTULUMUNURUAGUBUCUOVCURAVBF
      GBCVBUGZJKUDUEUPVDUOUQAVBDGVFKTUHUQVEUOUPAVBEGVFKTUIVBFGVADEVFJUJUK $.

    $( Lemma for ~ 4at .  Frequently used associative law.  (Contributed by NM,
       9-Jul-2012.) $)
    4atlem4d $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
            /\ ( R e. A /\ S e. A ) )
      -> ( ( P .\/ Q ) .\/ ( R .\/ S ) )
             = ( S .\/ ( ( P .\/ Q ) .\/ R ) ) ) $=
      ( chlt wcel w3a wa co clat wceq atbase syl3anc cbs cfv simpl1 syl hlatjcl
      hllat adantr ad2antrl ad2antll latjass syl13anc latjcl latjcom eqtr3d
      eqid ) GLMZBAMZCAMZNZDAMZEAMZOZOZBCFPZDFPZEFPZVDDEFPFPZEVEFPZVCGQMZVDGUAU
      BZMZDVJMZEVJMZVFVGRVCUPVIUPUQURVBUCGUFUDZUSVKVBAVJFGBCVJUOZJKUEUGZUTVLUSV
      AAVJDGVOKSUHZVAVMUSUTAVJEGVOKSUIZVJFGVDDEVOJUJUKVCVIVEVJMZVMVFVHRVNVCVIVK
      VLVSVNVPVQVJFGVDDVOJULTVRVJFGVEEVOJUMTUN $.

    $( Lemma for ~ 4at .  Substitute ` W ` for ` S ` .  (Contributed by NM,
       9-Jul-2012.) $)
    4atlem9 $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A ) /\ ( R e. A
         /\ S e. A /\ W e. A ) /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) )
  -> ( S .<_ ( ( P .\/ Q ) .\/ ( R .\/ W ) )
   <-> ( ( P .\/ Q ) .\/ ( R .\/ S ) )
             = ( ( P .\/ Q ) .\/ ( R .\/ W ) ) ) ) $=
      ( wcel w3a co wbr wceq syl 4atlem4d syl12anc chlt wn cbs wb simp11 simp22
      cfv simp23 clat hllat simp1 hlatjcl simp21 atbase latjcl syl3anc hlexchb2
      eqid simp3 syl131anc breq2d eqeq12d 3bitr4d ) GUAMZBAMZCAMZNZDAMZEAMZIAMZ
      NZEBCFOZDFOZHPUBZNZEIVMFOZHPZEVMFOZVPQZEVLDIFOFOZHPVLDEFOFOZVTQVOVDVIVJVM
      GUCUGZMZVNVQVSUDVDVEVFVKVNUEZVGVHVIVJVNUFZVGVHVIVJVNUHZVOGUIMZVLWBMZDWBMZ
      WCVOVDWGWDGUJRVOVGWHVGVKVNUKZAWBFGBCWBURZKLULRVOVHWIVGVHVIVJVNUMZAWBDGWKL
      UNRWBFGVLDWKKUOUPVGVKVNUSAWBEIFGHVMWKJKLUQUTVOVTVPEHVOVGVHVJVTVPQWJWLWFAB
      CDIFGHJKLSTZVAVOWAVRVTVPVOVGVHVIWAVRQWJWLWEABCDEFGHJKLSTWMVBVC $.

    $( Lemma for ~ 4at .  Substitute ` V ` for ` R ` .  (Contributed by NM,
       9-Jul-2012.) $)
    4atlem10a $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
         /\ ( R e. A /\ V e. A /\ W e. A )
         /\ -. R .<_ ( ( P .\/ Q ) .\/ W ) )
 -> ( R .<_ ( ( P .\/ Q ) .\/ ( V .\/ W ) )
   <-> ( ( P .\/ Q ) .\/ ( R .\/ W ) )
          = ( ( P .\/ Q ) .\/ ( V .\/ W ) ) ) ) $=
      ( wcel w3a co wbr wceq syl 4atlem4c syl12anc chlt wn cbs wb simp11 simp21
      cfv simp22 clat hllat simp1 hlatjcl simp23 atbase latjcl syl3anc hlexchb2
      eqid simp3 syl131anc breq2d eqeq12d 3bitr4d ) FUAMZBAMZCAMZNZDAMZHAMZIAMZ
      NZDBCEOZIEOZGPUBZNZDHVMEOZGPZDVMEOZVPQZDVLHIEOEOZGPVLDIEOEOZVTQVOVDVHVIVM
      FUCUGZMZVNVQVSUDVDVEVFVKVNUEZVGVHVIVJVNUFZVGVHVIVJVNUHZVOFUIMZVLWBMZIWBMZ
      WCVOVDWGWDFUJRVOVGWHVGVKVNUKZAWBEFBCWBURZKLULRVOVJWIVGVHVIVJVNUMZAWBIFWKL
      UNRWBEFVLIWKKUOUPVGVKVNUSAWBDHEFGVMWKJKLUQUTVOVTVPDGVOVGVIVJVTVPQWJWFWLAB
      CHIEFGJKLSTZVAVOWAVRVTVPVOVGVHVJWAVRQWJWEWLABCDIEFGJKLSTWMVBVC $.

    $( Lemma for ~ 4at .  Substitute ` V ` for ` R ` (cont.).  (Contributed by
       NM, 10-Jul-2012.) $)
    4atlem10b $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A )
        /\ ( R e. A /\ S e. A /\ V e. A )
        /\ ( W e. A /\ -. R .<_ ( ( P .\/ Q ) .\/ W )
          /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
        /\ ( R .<_ ( ( P .\/ Q ) .\/ ( V .\/ W ) )
          /\ S .<_ ( ( P .\/ Q ) .\/ ( V .\/ W ) ) ) )
     -> ( ( P .\/ Q ) .\/ ( R .\/ S ) )
            = ( ( P .\/ Q ) .\/ ( V .\/ W ) ) ) $=
      ( wcel w3a co wbr wn wa wceq chlt simprr simprl wb simpl1 simpl21 simpl23
      simpl31 simpl32 4atlem10a syl131anc mpbid breqtrrd simpl22 simpl33 eqtrd
      4atlem9 ) GUANBANCANOZDANZEANZIANZOZJANZDBCFPZJFPHQRZEVDDFPHQRZOZOZDVDIJF
      PFPZHQZEVIHQZSZSZVDDEFPFPZVDDJFPFPZVIVMEVOHQZVNVOTZVMEVIVOHVHVJVKUBVMVJVO
      VITZVHVJVKUCVMURUSVAVCVEVJVRUDURVBVGVLUEZUSUTVAURVGVLUFZUSUTVAURVGVLUGVCV
      EVFURVBVLUHZVCVEVFURVBVLUIABCDFGHIJKLMUJUKULZUMVMURUSUTVCVFVPVQUDVSVTUSUT
      VAURVGVLUNWAVCVEVFURVBVLUOABCDEFGHJKLMUQUKULWBUP $.

    $( Lemma for ~ 4at .  Combine both possible cases.  (Contributed by NM,
       9-Jul-2012.) $)
    4atlem10 $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A ) /\ ( ( R e. A
         /\ S e. A ) /\ V e. A /\ W e. A )
          /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q )
             /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
     -> ( ( R .\/ S ) .<_ ( ( P .\/ Q ) .\/ ( V .\/ W ) )
   -> ( ( P .\/ Q ) .\/ ( R .\/ S ) )
          = ( ( P .\/ Q ) .\/ ( V .\/ W ) ) ) ) $=
      ( wcel w3a wa co wbr wn 3ad2ant1 chlt wne wceq clat cbs cfv wb simp11 syl
      simp21l eqid atbase simp21r hlatjcl simp22 simp23 syl3anc latjcl latjle12
      hllat syl13anc 3jca simp2 simp33 simp3 4atlem10b syl31anc hlatjcom oveq2d
      wi simp12 simp13 jca simp21 simp32 4atlem0a syl32anc simprr simprl eqtr3d
      3exp 3adant2 wo simp1 4atlem3b syl131anc mpjaod sylbird ) GUANZBANZCANZOZ
      DANZEANZPZIANZJANZOZBCUBZDBCFQZHRSZEWTDFQHRSZOZOZDEFQZWTIJFQZFQZHRZDXGHRZ
      EXGHRZPZWTXEFQZXGUCZXDGUDNZDGUEUFZNZEXONZXGXONZXKXHUGXDWIXNWIWJWKWRXCUHZG
      UTUIZXDWMXPWMWNWPWQWLXCUJZAXODGXOUKZMULUIXDWNXQWMWNWPWQWLXCUMZAXOEGYBMULU
      IXDXNWTXONZXFXONZXRXTWLWRYDXCAXOFGBCYBLMUNTXDWIWPWQYEXSWLWOWPWQXCUOZWLWOW
      PWQXCUPZAXOFGIJYBLMUNUQXOFGWTXFYBLURUQXOFGHDEXGYBKLUSVAXDDWTJFQZHRSZXKXMV
      JEYHHRSZXDYIXKXMXDYIXKOZWLWMWNWPOZWQYIXBOXKXMWLWRXCYIXKUHXDYIYLXKXDWMWNWP
      YAYCYFVBTYKWQYIXBXDYIWQXKYGTXDYIXKVCXDYIXBXKWLWRWSXAXBVDZTVBXDYIXKVEABCDE
      FGHIJKLMVFVGWAXDYJXKXMXDYJXKOZWTEDFQZFQZXLXGXDYJYPXLUCXKXDYOXEWTFXDWIWNWM
      YOXEUCXSYCYAAFGEDLMVHUQVITYNWLWNWMWPOZWQYJDWTEFQHRSZOXJXIPZYPXGUCWLWRXCYJ
      XKUHXDYJYQXKXDWNWMWPYCYAYFVBTYNWQYJYRXDYJWQXKYGTXDYJXKVCXDYJYRXKXDWIWJWKP
      WOXAXBYRXSXDWJWKWIWJWKWRXCVKWIWJWKWRXCVLVMWLWOWPWQXCVNWLWRWSXAXBVOYMABCDE
      FGHKLMVPVQTVBXDXKYSYJXDXKPXJXIXDXIXJVRXDXIXJVSVMWBABCEDFGHIJKLMVFVGVTWAXD
      WLWMWNWQXCYIYJWCWLWRXCWDYAYCYGWLWRXCVEABCDEFGHJKLMWEWFWGWH $.

    $( Lemma for ~ 4at .  Substitute ` U ` for ` Q ` .  (Contributed by NM,
       9-Jul-2012.) $)
    4atlem11a $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A )
       /\ ( U e. A /\ V e. A /\ W e. A ) /\ -. Q .<_ ( ( P .\/ V ) .\/ W ) )
  -> ( Q .<_ ( ( P .\/ U ) .\/ ( V .\/ W ) )
   <-> ( ( P .\/ Q ) .\/ ( V .\/ W ) )
         = ( ( P .\/ U ) .\/ ( V .\/ W ) ) ) ) $=
      ( wcel w3a co wbr wceq syl syl3anc 4atlem4b chlt wn cbs cfv simp11 simp13
      simp21 clat hllat simp12 simp22 eqid hlatjcl simp23 atbase simp3 hlexchb2
      wb latjcl syl131anc syl32anc breq2d eqeq12d 3bitr4d ) FUAMZBAMZCAMZNZDAMZ
      HAMZIAMZNZCBHEOZIEOZGPUBZNZCDVNEOZGPZCVNEOZVQQZCBDEOHIEOZEOZGPBCEOWAEOZWB
      QVPVEVGVIVNFUCUDZMZVOVRVTURVEVFVGVLVOUEZVEVFVGVLVOUFZVHVIVJVKVOUGZVPFUHMZ
      VMWDMZIWDMZWEVPVEWIWFFUIRVPVEVFVJWJWFVEVFVGVLVOUJZVHVIVJVKVOUKZAWDEFBHWDU
      LZKLUMSVPVKWKVHVIVJVKVOUNZAWDIFWNLUORWDEFVMIWNKUSSVHVLVOUPAWDCDEFGVNWNJKL
      UQUTVPWBVQCGVPVEVFVIVJVKWBVQQWFWLWHWMWOABDHIEFGJKLTVAZVBVPWCVSWBVQVPVEVFV
      GVJVKWCVSQWFWLWGWMWOABCHIEFGJKLTVAWPVCVD $.

    $( Lemma for ~ 4at .  Substitute ` U ` for ` Q ` (cont.).  (Contributed by
       NM, 10-Jul-2012.) $)
    4atlem11b $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A )
        /\ ( R e. A /\ S e. A ) /\ ( U e. A /\ V e. A /\ W e. A ) )
     /\ ( ( P =/= Q
     /\ -. R .<_ ( P .\/ Q ) /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) )
        /\ -. Q .<_ ( ( P .\/ V ) .\/ W ) )
     /\ ( Q .<_ ( ( P .\/ U ) .\/ ( V .\/ W ) )
        /\ R .<_ ( ( P .\/ U ) .\/ ( V .\/ W ) )
        /\ S .<_ ( ( P .\/ U ) .\/ ( V .\/ W ) ) ) )
   -> ( ( P .\/ Q ) .\/ ( R .\/ S ) )
         = ( ( P .\/ U ) .\/ ( V .\/ W ) ) ) $=
      ( wcel w3a wa co wbr syl3anc chlt wne wn wceq simp11 simp132 simp133 3jca
      simp12 simp2l simp32 simp33 clat cbs cfv simp111 hllat syl simp12l atbase
      wb eqid simp12r simp112 simp131 hlatjcl latjcl latjle12 syl13anc mpbi2and
      simp31 simp13 simp2r 4atlem11a mpbid breqtrrd 4atlem10 sylc eqtrd ) HUAOZ
      BAOZCAOZPZDAOZEAOZQZFAOZJAOZKAOZPZPZBCUBDBCGRZISUCEWLDGRISUCPZCBJGRKGRISU
      CZQZCBFGRZJKGRZGRZISZDWRISZEWRISZPZPZWLDEGRZGRZWLWQGRZWRXCWCWFWHWIPZWMPXD
      XFISXEXFUDXCWCXGWMWCWFWJWOXBUEZXCWFWHWIWCWFWJWOXBUIWGWHWIWCWFWOXBUFZWGWHW
      IWCWFWOXBUGZUHWKWMWNXBUJUHXCXDWRXFIXCWTXAXDWRISZWKWOWSWTXAUKWKWOWSWTXAULX
      CHUMOZDHUNUOZOZEXMOZWRXMOZWTXAQXKVAXCVTXLVTWAWBWFWJWOXBUPZHUQURZXCWDXNWDW
      EWCWJWOXBUSAXMDHXMVBZNUTURXCWEXOWDWEWCWJWOXBVCAXMEHXSNUTURXCXLWPXMOZWQXMO
      ZXPXRXCVTWAWGXTXQVTWAWBWFWJWOXBVDWGWHWIWCWFWOXBVEAXMGHBFXSMNVFTXCVTWHWIYA
      XQXIXJAXMGHJKXSMNVFTXMGHWPWQXSMVGTXMGHIDEWRXSLMVHVIVJXCWSXFWRUDZWKWOWSWTX
      AVKXCWCWJWNWSYBVAXHWCWFWJWOXBVLWKWMWNXBVMABCFGHIJKLMNVNTVOZVPABCDEGHIJKLM
      NVQVRYCVS $.

    $( Lemma for ~ 4at .  Combine all three possible cases.  (Contributed by
       NM, 10-Jul-2012.) $)
    4atlem11 $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A ) /\ ( R e. A
    /\ S e. A ) /\ ( U e. A /\ V e. A /\ W e. A ) )
     /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q )
         /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
 -> ( ( Q .\/ ( R .\/ S ) )
        .<_ ( ( P .\/ U ) .\/ ( V .\/ W ) )
    -> ( ( P .\/ Q ) .\/ ( R .\/ S ) )
          = ( ( P .\/ U ) .\/ ( V .\/ W ) ) ) ) $=
      ( wcel w3a wa co wbr wn chlt wne wceq 3anass cbs cfv wb simpl11 hllat syl
      clat simpl2l eqid simpl2r simpl12 simpl31 hlatjcl syl3anc simpl32 simpl33
      atbase latjcl latjle12 syl13anc anbi2d syl5bb simpl13 bitrd w3o wi simpl1
      simpl2 jca simpr 4atlem3a syl31anc simp1l simp2 simp3 4atlem11b syl121anc
      simp1r 3exp 3ad2ant1 hlatj4 syl122anc simp1l3 simp1r2 4atlem0be syl131anc
      simp1r1 4atlem0ae syl132anc simp1r3 hlatj32 breq2d mtbid simp32 syl323anc
      3jca simp31 simp33 eqtrd latj4rot hlatjcom oveq1d simpl3 4noncolr1 notbid
      necom a1i 3anbi123d mpbid simpr3 simpr1 simpr2 3adant2 3jaod mpd sylbird
      ) HUAOZBAOZCAOZPZDAOZEAOZQZFAOZJAOZKAOZPZPZBCUBZDBCGRZISTZEYNDGRZISZTZPZQ
      ZCDEGRZGRBFGRZJKGRZGRZISZCUUDISZDUUDISZEUUDISZPZYNUUAGRZUUDUCZYTUUIUUFUUA
      UUDISZQZUUEUUIUUFUUGUUHQZQYTUUMUUFUUGUUHUDYTUUNUULUUFYTHUKOZDHUEUFZOZEUUP
      OZUUDUUPOZUUNUULUGYTYAUUOYAYBYCYGYKYSUHZHUIUJZYTYEUUQYEYFYDYKYSULZAUUPDHU
      UPUMZNVAUJZYTYFUURYEYFYDYKYSUNZAUUPEHUVCNVAUJZYTUUOUUBUUPOZUUCUUPOZUUSUVA
      YTYAYBYHUVGUUTYAYBYCYGYKYSUOZYHYIYJYDYGYSUPAUUPGHBFUVCMNUQURYTYAYIYJUVHUU
      TYHYIYJYDYGYSUSZYHYIYJYDYGYSUTZAUUPGHJKUVCMNUQURUUPGHUUBUUCUVCMVBURZUUPGH
      IDEUUDUVCLMVCVDVEVFYTUUOCUUPOZUUAUUPOZUUSUUMUUEUGUVAYTYCUVMYAYBYCYGYKYSVG
      ZAUUPCHUVCNVAUJZYTYAYEYFUVNUUTUVBUVEAUUPGHDEUVCMNUQURUVLUUPGHICUUAUUDUVCL
      MVCVDVHYTCBJGRKGRZISTZDUVQISTZEUVQISTZVIZUUIUUKVJZYTYDYGYIYJQYSUWAYDYGYKY
      SVKZYDYGYKYSVLZYTYIYJUVJUVKVMYLYSVNZABCDEJGHIKLMNVOVPYTUVRUWBUVSUVTYTUVRU
      UIUUKYTUVRUUIPYLYSUVRUUIUUKYLYSUVRUUIVQYLYSUVRUUIWBYTUVRUUIVRYTUVRUUIVSAB
      CDEFGHIJKLMNVTWAWCYTUVSUUIUUKYTUVSUUIPZUUJBDGRZCEGRGRZUUDUWFYAYBYCYEYFUUJ
      UWHUCYTUVSYAUUIUUTWDZYTUVSYBUUIUVIWDZYTUVSYCUUIUVOWDZYTUVSYEUUIUVBWDZYTUV
      SYFUUIUVEWDZABCDEGHMNWEWFUWFYAYBYEPYCYFQYKBDUBZCUWGISTZEUWGCGRZISZTZPUVSU
      UGUUFUUHUWHUUDUCUWFYAYBYEUWIUWJUWLWTUWFYCYFUWKUWMVMYDYGYKYSUVSUUIWGUWFUWN
      UWOUWRUWFYAYBYCYEYOUWNUWIUWJUWKUWLYMYOYRYLUVSUUIWHZABCDGHILMNWIWJUWFYAYBY
      CYEYMYOUWOUWIUWJUWKUWLYMYOYRYLUVSUUIWKUWSABCDGHILMNWLWMUWFYQUWQYMYOYRYLUV
      SUUIWNUWFYPUWPEIUWFYAYBYCYEYPUWPUCUWIUWJUWKUWLABCDGHMNWOVDWPWQWTYTUVSUUIV
      RYTUVSUUFUUGUUHWRYTUVSUUFUUGUUHXAYTUVSUUFUUGUUHXBABDCEFGHIJKLMNVTWSXCWCYT
      UVTUUIUUKYTUVTUUIPZUUJBEGRZCDGRZGRZUUDYTUVTUUJUXCUCUUIYTUUJEBGRZUXBGRZUXC
      YTUUOBUUPOZUVMUUQUURUUJUXEUCUVAYTYBUXFUVIAUUPBHUVCNVAUJUVPUVDUVFUUPGHEBCD
      UVCMXDWFYTUXDUXAUXBGYTYAYFYBUXDUXAUCUUTUVEUVIAGHEBMNXEURZXFXCWDUWTYAYBYFP
      ZYCYEQZYKPZBEUBZCUXAISZTZDUXACGRZISZTZPZUVTUUHUUFUUGPZUXCUUDUCYTUVTUXJUUI
      YTUXHUXIYKYTYAYBYFUUTUVIUVEWTYTYCYEUVOUVBVMYDYGYKYSXGWTWDYTUVTUXQUUIYTEBU
      BZCUXDISZTZDUXDCGRZISZTZPZUXQYTYDYGYSUYEUWCUWDUWEABCDEGHILMNXHURYTUXSUXKU
      YAUXMUYDUXPUXSUXKUGYTEBXJXKYTUXTUXLYTUXDUXACIUXGWPXIYTUYCUXOYTUYBUXNDIYTU
      XDUXACGUXGXFWPXIXLXMWDYTUVTUUIVRYTUUIUXRUVTYTUUIQUUHUUFUUGYTUUFUUGUUHXNYT
      UUFUUGUUHXOYTUUFUUGUUHXPWTXQABECDFGHIJKLMNVTWAXCWCXRXSXT $.

    $( Lemma for ~ 4at .  Substitute ` T ` for ` P ` .  (Contributed by NM,
       9-Jul-2012.) $)
    4atlem12a $p |- ( ( ( K e. HL /\ P e. A /\ T e. A )
       /\ ( U e. A /\ V e. A /\ W e. A ) /\ -. P .<_ ( ( U .\/ V ) .\/ W ) )
  -> ( P .<_ ( ( T .\/ U ) .\/ ( V .\/ W ) )
   <-> ( ( P .\/ U ) .\/ ( V .\/ W ) )
        = ( ( T .\/ U ) .\/ ( V .\/ W ) ) ) ) $=
      ( wcel w3a co wbr wceq syl syl3anc 4atlem4a chlt wn cbs cfv simp11 simp12
      simp13 clat hllat simp21 simp22 eqid hlatjcl simp23 atbase simp3 hlexchb2
      wb latjcl syl131anc syl32anc breq2d eqeq12d 3bitr4d ) FUAMZBAMZCAMZNZDAMZ
      HAMZIAMZNZBDHEOZIEOZGPUBZNZBCVNEOZGPZBVNEOZVQQZBCDEOHIEOZEOZGPBDEOWAEOZWB
      QVPVEVFVGVNFUCUDZMZVOVRVTURVEVFVGVLVOUEZVEVFVGVLVOUFZVEVFVGVLVOUGZVPFUHMZ
      VMWDMZIWDMZWEVPVEWIWFFUIRVPVEVIVJWJWFVHVIVJVKVOUJZVHVIVJVKVOUKZAWDEFDHWDU
      LZKLUMSVPVKWKVHVIVJVKVOUNZAWDIFWNLUORWDEFVMIWNKUSSVHVLVOUPAWDBCEFGVNWNJKL
      UQUTVPWBVQBGVPVEVGVIVJVKWBVQQWFWHWLWMWOACDHIEFGJKLTVAZVBVPWCVSWBVQVPVEVFV
      IVJVKWCVSQWFWGWLWMWOABDHIEFGJKLTVAWPVCVD $.

    $( Lemma for ~ 4at .  Substitute ` T ` for ` P ` (cont.).  (Contributed by
       NM, 11-Jul-2012.) $)
    4atlem12b $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A )
      /\ ( R e. A /\ S e. A /\ T e. A ) /\ ( U e. A /\ V e. A /\ W e. A ) )
   /\ ( ( P =/= Q /\ -. R .<_ ( P .\/ Q )
      /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) )
      /\ -. P .<_ ( ( U .\/ V ) .\/ W ) )
   /\ ( ( P .<_ ( ( T .\/ U ) .\/ ( V .\/ W ) )
          /\ Q .<_ ( ( T .\/ U ) .\/ ( V .\/ W ) ) )
      /\ ( R .<_ ( ( T .\/ U ) .\/ ( V .\/ W ) )
          /\ S .<_ ( ( T .\/ U ) .\/ ( V .\/ W ) ) ) ) )
   -> ( ( P .\/ Q ) .\/ ( R .\/ S ) )
          = ( ( T .\/ U ) .\/ ( V .\/ W ) ) ) $=
      ( wcel w3a co wbr wa chlt wne wceq simp11 simp121 simp122 jca simp13 3jca
      wn simp2l simp3lr simp3rl simp3rr clat cbs cfv wb simp111 syl eqid atbase
      simp123 simp131 hlatjcl syl3anc simp132 latjcl latjle12 syl13anc mpbi2and
      hllat simp133 simp113 simp3ll simp112 simp2r 4atlem12a syl311anc breqtrrd
      mpbid 4atlem11 sylc eqtrd ) IUAPZBAPZCAPZQZDAPZEAPZFAPZQZGAPZKAPZLAPZQZQZ
      BCUBDBCHRZJSUJEWRDHRJSUJQZBGKHRLHRJSUJZTZBFGHRZKLHRZHRZJSZCXDJSZTZDXDJSZE
      XDJSZTZTZQZWRDEHRZHRZBGHRXCHRZXDXLWHWIWJTZWPQZWSTCXMHRZXOJSXNXOUCXLXQWSXL
      WHXPWPWHWLWPXAXKUDXLWIWJWIWJWKWHWPXAXKUEZWIWJWKWHWPXAXKUFZUGWHWLWPXAXKUHZ
      UIWQWSWTXKUKUGXLXRXDXOJXLXFXMXDJSZXRXDJSZXEXFXJWQXAULXLXHXIYBXHXIXGWQXAUM
      XHXIXGWQXAUNXLIUOPZDIUPUQZPZEYEPZXDYEPZXJYBURXLWEYDWEWFWGWLWPXAXKUSZIVLUT
      ZXLWIYFXSAYEDIYEVAZOVBUTXLWJYGXTAYEEIYKOVBUTXLYDXBYEPZXCYEPZYHYJXLWEWKWMY
      LYIWIWJWKWHWPXAXKVCZWMWNWOWHWLXAXKVDAYEHIFGYKNOVEVFXLWEWNWOYMYIWMWNWOWHWL
      XAXKVGWMWNWOWHWLXAXKVMAYEHIKLYKNOVEVFYEHIXBXCYKNVHVFZYEHIJDEXDYKMNVIVJVKX
      LYDCYEPZXMYEPZYHXFYBTYCURYJXLWGYPWEWFWGWLWPXAXKVNAYECIYKOVBUTXLWEWIWJYQYI
      XSXTAYEHIDEYKNOVEVFYOYEHIJCXMXDYKMNVIVJVKXLXEXOXDUCZXEXFXJWQXAVOXLWEWFWKW
      PWTXEYRURYIWEWFWGWLWPXAXKVPYNYAWQWSWTXKVQABFGHIJKLMNOVRVSWAZVTABCDEGHIJKL
      MNOWBWCYSWD $.

    $( Lemma for ~ 4at .  Combine all four possible cases.  (Contributed by NM,
       11-Jul-2012.) $)
    4atlem12 $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A ) /\ ( R e. A
    /\ S e. A /\ T e. A ) /\ ( U e. A /\ V e. A /\ W e. A ) )
     /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q )
     /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
 -> ( ( ( P .\/ Q ) .\/ ( R .\/ S ) )
        .<_ ( ( T .\/ U ) .\/ ( V .\/ W ) )
    -> ( ( P .\/ Q ) .\/ ( R .\/ S ) )
           = ( ( T .\/ U ) .\/ ( V .\/ W ) ) ) ) $=
      ( wcel w3a co wbr wn chlt wne wa wceq clat cbs cfv wb simpl11 syl simpl12
      hllat eqid atbase simpl13 simpl23 simpl31 hlatjcl syl3anc simpl32 simpl33
      latjcl latjle12 syl13anc simpl21 simpl22 simpl1 bitrd wo wi simp1l simp1r
      anbi12d simp2 4atlem12b syl121anc 3exp latj4rot syl122anc 3ad2ant1 simpl3
      simp3 3jca simpr 4noncolr3 simprlr simprrl simprrr simprll 3adant2 eqtr3d
      jca jca32 jaod latjcom 4noncolr2 simprr simprl 4noncolr1 4atlem3 syl31anc
      eqtrd mpjaod sylbird ) IUAPZBAPZCAPZQZDAPZEAPZFAPZQZGAPZKAPZLAPZQZQZBCUBD
      BCHRZJSTEXRDHRJSTQZUCZXRDEHRZHRZFGHRZKLHRZHRZJSZBYEJSZCYEJSZUCZDYEJSZEYEJ
      SZUCZUCZYBYEUDZXTYMXRYEJSZYAYEJSZUCZYFXTYIYOYLYPXTIUEPZBIUFUGZPZCYSPZYEYS
      PZYIYOUHXTXEYRXEXFXGXLXPXSUIZIULUJZXTXFYTXEXFXGXLXPXSUKZAYSBIYSUMZOUNUJZX
      TXGUUAXEXFXGXLXPXSUOZAYSCIUUFOUNUJZXTYRYCYSPZYDYSPZUUBUUDXTXEXKXMUUJUUCXI
      XJXKXHXPXSUPZXMXNXOXHXLXSUQZAYSHIFGUUFNOURUSXTXEXNXOUUKUUCXMXNXOXHXLXSUTZ
      XMXNXOXHXLXSVAZAYSHIKLUUFNOURUSYSHIYCYDUUFNVBUSZYSHIJBCYEUUFMNVCVDXTYRDYS
      PZEYSPZUUBYLYPUHUUDXTXIUUQXIXJXKXHXPXSVEZAYSDIUUFOUNUJZXTXJUURXIXJXKXHXPX
      SVFZAYSEIUUFOUNUJZUUPYSHIJDEYEUUFMNVCVDVMXTYRXRYSPZYAYSPZUUBYQYFUHUUDXTXH
      UVCXHXLXPXSVGZAYSHIBCUUFNOURUJZXTXEXIXJUVDUUCUUSUVAAYSHIDEUUFNOURUSZUUPYS
      HIJXRYAYEUUFMNVCVDVHXTBGKHRLHRZJSTZCUVHJSTZVIZYMYNVJZDUVHJSTZEUVHJSTZVIZX
      TUVIUVLUVJXTUVIYMYNXTUVIYMQXQXSUVIYMYNXQXSUVIYMVKXQXSUVIYMVLXTUVIYMVNXTUV
      IYMWBABCDEFGHIJKLMNOVOVPVQXTUVJYMYNXTUVJYMQZCDHRZEBHRZHRZYBYEXTUVJUVSYBUD
      ZYMXTYRUUAUUQUURYTUVTUUDUUIUUTUVBUUGYSHIBCDEUUFNVRVSVTUVPXEXGXIQZXJXFXKQZ
      XPQZCDUBEUVQJSTBUVQEHRJSTQZUVJYHYJUCZYKYGUCZUCZUVSYEUDXTUVJUWCYMXTUWAUWBX
      PXTXEXGXIUUCUUHUUSWCXTXJXFXKUVAUUEUULWCXHXLXPXSWAZWCVTXTUVJUWDYMXTXHXIXJX
      SUWDUVEUUSUVAXQXSWDZABCDEHIJMNOWEVPVTXTUVJYMVNXTYMUWGUVJXTYMUCZUWEYKYGUWJ
      YHYJXTYGYHYLWFZXTYIYJYKWGZWLXTYIYJYKWHZXTYGYHYLWIZWMWJACDEBFGHIJKLMNOVOVP
      WKVQWNXTUVMUVLUVNXTUVMYMYNXTUVMYMQZYBYAXRHRZYEXTUVMYBUWPUDZYMXTYRUVCUVDUW
      QUUDUVFUVGYSHIXRYAUUFNWOUSVTUWOXEXIXJQZXFXGXKQZXPQZDEUBBYAJSTCYABHRJSTQZU
      VMYLYIUCZUWPYEUDXTUVMUWTYMXTUWRUWSXPXTXEXIXJUUCUUSUVAWCXTXFXGXKUUEUUHUULW
      CUWHWCVTXTUVMUXAYMXTXHXIXJXSUXAUVEUUSUVAUWIABCDEHIJMNOWPVPVTXTUVMYMVNXTYM
      UXBUVMUWJYLYIXTYIYLWQXTYIYLWRWLWJADEBCFGHIJKLMNOVOVPXBVQXTUVNYMYNXTUVNYMQ
      ZYBUVRUVQHRZYEXTUVNYBUXDUDZYMXTYRYTUUAUUQUURUXEUUDUUGUUIUUTUVBYSHIEBCDUUF
      NVRVSVTUXCXEXJXFQZXGXIXKQZXPQZEBUBCUVRJSTDUVRCHRJSTQZUVNUWFUWEUCZUXDYEUDX
      TUVNUXHYMXTUXFUXGXPXTXEXJXFUUCUVAUUEWCXTXGXIXKUUHUUSUULWCUWHWCVTXTUVNUXIY
      MXTXHXIXJXSUXIUVEUUSUVAUWIABCDEHIJMNOWSVPVTXTUVNYMVNXTYMUXJUVNUWJUWFYHYJU
      WJYKYGUWMUWNWLUWKUWLWMWJAEBCDFGHIJKLMNOVOVPXBVQWNXTXHXIXJXMQXNXOUCXSUVKUV
      OVIUVEXTXIXJXMUUSUVAUUMWCXTXNXOUUNUUOWLUWIABCDEGKHIJLMNOWTXAXCXD $.

    $( Four atoms determine a lattice volume uniquely.  Three-dimensional
       analogue of ~ ps-1 and ~ 3at .  (Contributed by NM, 11-Jul-2012.) $)
    4at $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A ) /\ ( R e. A
         /\ S e. A /\ T e. A ) /\ ( U e. A /\ V e. A /\ W e. A ) )
          /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q )
              /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
 -> ( ( ( P .\/ Q ) .\/ ( R .\/ S ) )
        .<_ ( ( T .\/ U ) .\/ ( V .\/ W ) )
    <-> ( ( P .\/ Q ) .\/ ( R .\/ S ) )
        = ( ( T .\/ U ) .\/ ( V .\/ W ) ) ) ) $=
      ( wcel w3a co wbr syl3anc chlt wne wn wa wceq 4atlem12 wi clat cbs simp11
      cfv hllat simp23 simp31 hlatjcl simp32 simp33 latjcl latref syl2anc breq1
      syl eqid syl5ibrcom adantr impbid ) IUAPZBAPZCAPZQZDAPZEAPZFAPZQZGAPZKAPZ
      LAPZQZQZBCUBDBCHRZJSUCEVTDHRJSUCQZUDVTDEHRHRZFGHRZKLHRZHRZJSZWBWEUEZABCDE
      FGHIJKLMNOUFVSWGWFUGWAVSWFWGWEWEJSZVSIUHPZWEIUIUKZPZWHVSVGWIVGVHVIVNVRUJZ
      IULVBZVSWIWCWJPZWDWJPZWKWMVSVGVMVOWNWLVJVKVLVMVRUMVJVNVOVPVQUNAWJHIFGWJVC
      ZNOUOTVSVGVPVQWOWLVJVNVOVPVQUPVJVNVOVPVQUQAWJHIKLWPNOUOTWJHIWCWDWPNURTWJI
      JWEWPMUSUTWBWEWEJVAVDVEVF $.

    $( Four atoms determine a lattice volume uniquely.  (Contributed by NM,
       11-Jul-2012.) $)
    4at2 $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A ) /\ ( R e. A
   /\ S e. A /\ T e. A ) /\ ( U e. A /\ V e. A /\ W e. A ) )
     /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q )
      /\ -. S .<_ ( ( P .\/ Q ) .\/ R ) ) )
  -> ( ( ( ( P .\/ Q ) .\/ R ) .\/ S )
          .<_ ( ( ( T .\/ U ) .\/ V ) .\/ W )
   <-> ( ( ( P .\/ Q ) .\/ R ) .\/ S )
             = ( ( ( T .\/ U ) .\/ V ) .\/ W ) ) ) $=
      ( wcel w3a co wbr syl chlt wne wn wa wceq 4at wb clat cbs cfv simp11 eqid
      hllat hlatjcl 3ad2ant1 simp21 atbase simp22 latjass simp23 simp31 syl3anc
      syl13anc simp32 simp33 breq12d adantr eqeq12d 3bitr4d ) IUAPZBAPZCAPZQZDA
      PZEAPZFAPZQZGAPZKAPZLAPZQZQZBCUBDBCHRZJSUCEWCDHRZJSUCQZUDWCDEHRHRZFGHRZKL
      HRHRZJSZWFWHUEZWDEHRZWGKHRLHRZJSZWKWLUEZABCDEFGHIJKLMNOUFWBWMWIUGWEWBWKWF
      WLWHJWBIUHPZWCIUIUJZPZDWPPZEWPPZWKWFUEWBVJWOVJVKVLVQWAUKZIUMTZVMVQWQWAAWP
      HIBCWPULZNOUNUOWBVNWRVMVNVOVPWAUPAWPDIXBOUQTWBVOWSVMVNVOVPWAURAWPEIXBOUQT
      WPHIWCDEXBNUSVCZWBWOWGWPPZKWPPZLWPPZWLWHUEXAWBVJVPVRXDWTVMVNVOVPWAUTVMVQV
      RVSVTVAAWPHIFGXBNOUNVBWBVSXEVMVQVRVSVTVDAWPKIXBOUQTWBVTXFVMVQVRVSVTVEAWPL
      IXBOUQTWPHIWGKLXBNUSVCZVFVGWBWNWJUGWEWBWKWFWLWHXCXGVHVGVI $.
  $}

  ${
    $d p q r s t u v w C $.  $d p q r s t u v w K $.  $d p q r s t u v w .<_ $.
    $d s t u v w P $.  $d s V $.  $d p q r s t u v w X $.
    $d p q r s t u v w Y $.
    lplncvrlvol2.l $e |- .<_ = ( le ` K ) $.
    lplncvrlvol2.c $e |- C = ( <o ` K ) $.
    lplncvrlvol2.p $e |- P = ( LPlanes ` K ) $.
    lplncvrlvol2.v $e |- V = ( LVols ` K ) $.
    $( A lattice line under a lattice plane is covered by it.  (Contributed by
       NM, 12-Jul-2012.) $)
    lplncvrlvol2 $p |- ( ( ( K e. HL /\ X e. P /\ Y e. V ) /\ X .<_ Y )
         -> X C Y ) $=
      ( wcel w3a wbr wa wn cv co wrex wi vs vt vu vv vw vp vq chlt cplt cfv wne
      vr simpr simpl1 simpl3 lvolnelpln syl2anc simpl2 eleq1 syl5ibcom necon3bd
      wceq mpd eqid pltval adantr mpbir2and cjn catm lplnbase lvolbase hlrelat3
      wb cbs syl syl31anc islvol2 islpln2 simp3rl simp3rr simp133 oveq1d simp23
      3brtr3d simp11 simp12 simp3l simp21l 3jca simp21r simp22l simp22r simp131
      simp132 simp111 clat hllat hlatjcl atbase latjcl syl3anc cvr1 mpbird 4at2
      syl33anc mpbid 3eqtr4d breqtrd 3exp exp4a 3expd rexlimdv3a 3expib adantld
      rexlimdvv sylbid imp31 syl7 rexlimdvva 3impia rexlimdv imp syldan ) CUHLZ
      FBLZGELZMZFGDNZFGCUIUJZNZFGANZYGYHOZYJYHFGUKZYGYHUMYLGBLZPZYMYLYDYFYOYDYE
      YFYHUNYDYEYFYHUOBCEGJKUPUQYLYNFGYLYEFGVBYNYDYEYFYHURFGBUSUTVAVCYGYJYHYMOV
      MYHUHBEYICDFGHYIVDZVEVFVGYGYJFFUAQZCVHUJZRZANZYSGDNZOZUACVIUJZSZYKYGYJOZY
      DFCVNUJZLZGUUFLZYJUUDYDYEYFYJUNUUEYEUUGYDYEYFYJURUUFBCFUUFVDZJVJVOUUEYFUU
      HYDYEYFYJUOUUFCEGUUIKVKVOYGYJUMUUCUUFAYIYRCDFGUAUUIHYPYRVDZIUUCVDZVLVPYGU
      UDYKYGUUBYKUAUUCYDYEYFYQUUCLZUUBYKTTZYDYEOZYFUUHUBQZUCQZUKUDQZUUOUUPYRRZD
      NPUEQZUURUUQYRRZDNPMZGUUTUUSYRRZVBZOZUEUUCSUDUUCSZUCUUCSUBUUCSZOZUUMYDYFU
      VGVMYEUUCUUFYRCDEGUEUDUCUBUUIHUUJUUKKVQVFUUNUVFUUMUUHUUNUVEUUMUBUCUUCUUCU
      UNUUOUUCLZUUPUUCLZOZOZUVDUUMUDUEUUCUUCUVDUVCUVKUUQUUCLZUUSUUCLZOZUUMUVAUV
      CUMYDYEUVJUVNUVCUUMTTZYDYEUUGUFQZUGQZUKZULQZUVPUVQYRRZDNPZFUVTUVSYRRZVBZM
      ZULUUCSZUGUUCSUFUUCSZOUVJUVOTZUUCUUFBYRCDFULUGUFUUIHUUJUUKJVRYDUWFUWGUUGY
      DUWEUWGUFUGUUCUUCYDUVPUUCLZUVQUUCLZUWEUWGTYDUWHUWIMZUWDUWGULUUCUWJUVSUUCL
      ZUWDMZUVJUVNUVCUUMUWLUVJUVNUVCMZUULUUBYKUWLUWMUULUUBOZYKUWLUWMUWNMZFYSGAY
      TUUAUULUWLUWMVSZUWOUWBYQYRRZUVBYSGUWOUWQUVBDNZUWQUVBVBZUWOYSGUWQUVBDYTUUA
      UULUWLUWMVTUWOFUWBYQYRUVRUWAUWCUWJUWKUWMUWNWAZWBZUWLUVJUVNUVCUWNWCZWDUWOU
      WJUWKUULUVHMUVIUVLUVMMUVRUWAYQUWBDNPZUWRUWSVMUWJUWKUWDUWMUWNWEZUWOUWKUULU
      VHUWJUWKUWDUWMUWNWFZUWLUWMUULUUBWGZUVHUVIUVNUVCUWLUWNWHWIUWOUVIUVLUVMUVHU
      VIUVNUVCUWLUWNWJUVLUVMUVJUVCUWLUWNWKUVLUVMUVJUVCUWLUWNWLWIUVRUWAUWCUWJUWK
      UWMUWNWMUVRUWAUWCUWJUWKUWMUWNWNUWOUXCUWBUWQANZUWOFYSUWBUWQAUWPUWTUXAWDUWO
      YDUWBUUFLZUULUXCUXGVMYDUWHUWIUWKUWDUWMUWNWOZUWOCWPLZUVTUUFLZUVSUUFLZUXHUW
      OYDUXJUXICWQVOUWOUWJUXKUXDUUCUUFYRCUVPUVQUUIUUJUUKWRVOUWOUWKUXLUXEUUCUUFU
      VSCUUIUUKWSVOUUFYRCUVTUVSUUIUUJWTXAUXFUUCUUFAYQYRCDUWBUUIHUUJIUUKXBXAXCUU
      CUVPUVQUVSYQUUOUUPYRCDUUQUUSHUUJUUKXDXEXFUXAUXBXGXHXIXJXKXLXMXOXNXPXQXRXO
      XSXNXPXTYAYBYCYC $.
  $}

  ${
    $d z B $.  $d z C $.  $d z K $.  $d z P $.  $d z V $.  $d z X $.  $d z Y $.
    lplncvrlvol.b $e |- B = ( Base ` K ) $.
    lplncvrlvol.c $e |- C = ( <o ` K ) $.
    lplncvrlvol.p $e |- P = ( LPlanes ` K ) $.
    lplncvrlvol.v $e |- V = ( LVols ` K ) $.
    $( An element covering a lattice plane is a lattice volume and vice-versa.
       (Contributed by NM, 15-Jul-2012.) $)
    lplncvrlvol $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B ) /\ X C Y )
        -> ( X e. P <-> Y e. V ) ) $=
      ( vz chlt wcel wbr wa simplr cfv wn adantr simpll1 simpll3 simpr syl31anc
      w3a lvoli cple wrex cp0 wne catm clln simpll2 clat hllat syl eqid syl2anc
      cv latref lvolnleat syl3anc ex mt2d wceq breq1 syl5ibcom wb isat2 sylibrd
      necon3bd mpd lvolnelln sylancom simpllr llni lvolnelpln llncvrlpln mtbird
      mtand lplnle syl23anc simpr3 cops hlop simpr2 lplnbase simpr1 cvrle hlpos
      wi cpo postr syl13anc lplncvrlvol2 cvrcmp2 syl132anc mpbid eqeltrrd 3exp2
      mp2and imp rexlimdv impbida ) DMNZFANZGANZUEZFGBOZPZFCNZGENZXJXKPXEXGXKXI
      XLXEXFXGXIXKUAXEXFXGXIXKUBXJXKUCXHXIXKQABMCDEFGHIJKUFUDXJXLPZLUSZFDUGRZOZ
      LCUHZXKXMXEXFFDUIRZUJZFDUKRZNZSFDULRZNZSXQXEXFXGXIXLUAZXEXFXGXIXLUMXMGXTN
      ZSXSXMYEGGXOOZXMDUNNZXGYFXMXEYGYDDUOUPXEXFXGXIXLUBZADXOGHXOUQZUTURXMYEYFS
      ZXMYEPXEXLYEYJXMXEYEYDTXJXLYEQXMYEUCXTGDXOEGYIXTUQZKVAVBVCVDXMYEFXRXMFXRV
      EZXRGBOZYEXMXIYLYMXHXIXLQFXRGBVFVGXMXEXGYEYMVHYDYHXTABMGDXRHXRUQZIYKVIURV
      JVKVLXMYAGYBNZXJXLXEYOSYDDYBEGYBUQZKVMVNXMYAPXEXGYAXIYOXMXEYAYDTXMXGYAYHT
      XMYAUCXHXIXLYAVOXTABMFDYBGHIYKYPVPUDVTXMYCGCNZXJXLXEYQSYDCDEGJKVQVNXJYCYQ
      VHXLABCDYBFGHIYPJVRTVSLXTACDXOYBFXRHYIYNYKYPJWAWBXMXPXKLCXJXLXNCNZXPXKWKW
      KXJXLYRXPXKXJXLYRXPUEZPZXNFCYTXPXNFVEZXJXLYRXPWCZYTDWDNZXNANZXFXGXNGBOZXI
      XPUUAVHYTXEUUCXEXFXGXIYSUAZDWEUPYTYRUUDXJXLYRXPWFZACDXNHJWGUPZXEXFXGXIYSU
      MZXEXFXGXIYSUBZYTXEYRXLXNGXOOZUUEUUFUUGXJXLYRXPWHYTXPFGXOOZUUKUUBXJUULYSM
      ABDXOFGHYIIWITYTDWLNZUUDXFXGXPUULPUUKWKYTXEUUMUUFDWJUPUUHUUIUUJADXOXNFGHY
      IWMWNXABCDXOEXNGYIIJKWOUDXHXIYSQABDXOXNFGHYIIWPWQWRUUGWSWTXBXCVLXD $.
  $}

  ${
    $d z K $.  $d z .<_ $.  $d z V $.  $d z X $.  $d z Y $.
    lvolcmp.l $e |- .<_ = ( le ` K ) $.
    lvolcmp.v $e |- V = ( LVols ` K ) $.
    $( If two lattice planes are comparable, they are equal.  (Contributed by
       NM, 12-Jul-2012.) $)
    lvolcmp $p |- ( ( K e. HL /\ X e. V /\ Y e. V )
                -> ( X .<_ Y <-> X = Y ) ) $=
      ( vz chlt wcel w3a wbr cfv wi wb eqid lvolbase syl2anc mpbid wa wceq ccvr
      cv clpl simp2 cbs simp1 3ad2ant2 islvol4 simpr3 cpo hlpos 3ad2ant1 adantr
      wrex simpl3 syl simpr1 lplnbase simpr2 simpl1 cvrle syl31anc postr mp2and
      syl13anc lplncvrlvol2 cvrcmp syl132anc 3exp2 rexlimdv mpd breq2 syl5ibcom
      posref impbid ) AIJZDCJZECJZKZDEBLZDEUAZVTHUCZDAUBMZLZHAUDMZUOZWAWBNZVTVR
      WGVQVRVSUEVTVQDAUFMZJZVRWGOVQVRVSUGVRVQWJVSWIACDWIPZGQUHZHIWIWDWFACDWKWDP
      ZWFPZGUIRSVTWEWHHWFVTWCWFJZWEWAWBVTWOWEWAKZTZWAWBVTWOWEWAUJZWQAUKJZWJEWIJ
      ZWCWIJZWEWCEWDLZWAWBOVTWSWPVQVRWSVSAULUMZUNZVTWJWPWLUNZWQVSWTVQVRVSWPUPZW
      IACEWKGQUQZWQWOXAVTWOWEWAURZWIWFAWCWKWNUSUQZVTWOWEWAUTZWQVQWOVSWCEBLZXBVQ
      VRVSWPVAZXHXFWQWCDBLZWAXKWQVQXAWJWEXMXLXIXEXJIWIWDABWCDWKFWMVBVCWRWQWSXAW
      JWTXMWATXKNXDXIXEXGWIABWCDEWKFVDVFVEWDWFABCWCEFWMWNGVGVCWIWDABDEWCWKFWMVH
      VISVJVKVLVTDDBLZWBWAVTWSWJXNXCWLWIABDWKFVORDEDBVMVNVP $.
  $}

  ${
    lvolnlt.s $e |- .< = ( lt ` K ) $.
    lvolnlt.v $e |- V = ( LVols ` K ) $.
    $( Two lattice volumes cannot satisfy the less than relation.  (Contributed
       by NM, 12-Jul-2012.)  (New usage is discouraged.) $)
    lvolnltN $p |- ( ( K e. HL /\ X e. V /\ Y e. V ) -> -. X .< Y ) $=
      ( chlt wcel w3a wbr wceq pltirr 3adant3 breq2 notbid syl5ibcom cple cfv
      wn eqid pltle lvolcmp sylibd necon3ad pm2.61dne ) BHIZDCIZECIZJZDEAKZTZDE
      UJDDAKZTZDELZULUGUHUNUIHCABDFMNUOUMUKDEDAOPQUJUKDEUJUKDEBRSZKUOHCCABUPDEU
      PUAZFUBBUPCDEUQGUCUDUEUF $.
  $}

  ${
    2lplnja.l $e |- .<_ = ( le ` K ) $.
    2lplnja.j $e |- .\/ = ( join ` K ) $.
    2lplnja.a $e |- A = ( Atoms ` K ) $.
    2lplnja.v $e |- V = ( LVols ` K ) $.
    $( The join of two different lattice planes in a lattice volume equals the
       volume (version of ~ 2lplnj in terms of atoms).  (Contributed by NM,
       12-Jul-2012.) $)
    2lplnja $p |- ( ( ( ( K e. HL /\ W e. V )
     /\ ( P e. A /\ Q e. A /\ R e. A )
     /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q ) ) )
   /\ ( ( S e. A /\ T e. A /\ U e. A )
     /\ ( S =/= T /\ -. U .<_ ( S .\/ T ) ) )
     /\ ( ( ( P .\/ Q ) .\/ R ) .<_ W /\ ( ( S .\/ T ) .\/ U ) .<_ W
         /\ ( ( P .\/ Q ) .\/ R ) =/= ( ( S .\/ T ) .\/ U ) ) )
  -> ( ( ( P .\/ Q ) .\/ R ) .\/ ( ( S .\/ T ) .\/ U ) ) = W ) $=
      ( wcel wa wbr ad2antrr chlt w3a wne co wn cbs cfv eqid clat simp11l hllat
      syl simp121 simp122 hlatjcl syl3anc simp123 atbase latjcl simp2l1 simp2l2
      simp2l3 simp11r lvolbase simp31 simp32 wb latjle12 syl13anc mpbi2and wceq
      latlej2 lattrd 3jca jca simp13l simp13r simp33 simplr simpr adantr simp2l
      ad3antrrr simp12 simp2rr simp2rl syl32anc mpbid eqcomd ex necon3ad lvoli2
      3at mpd syl113anc lvolcmp wi latjlej2 eqbrtrrd hlatj32 breqtrrd pm2.61dan
      latlej1 latjass latasymd ) IUAQZLKQZRZBAQZCAQZDAQZUBZBCUCZDBCHUDZJSUEZRZU
      BZEAQZFAQZGAQZUBZEFUCZGEFHUDZJSUEZRZRZXNDHUDZLJSZYCGHUDZLJSZYGYIUCZUBZUBZ
      IUFUGZIJYGYIHUDZLYNUHZMYMXFIUIQZXFXGXLXPYFYLUJZIUKULZYMYQYGYNQZYIYNQZYOYN
      QYSYMYQXNYNQZDYNQZYTYSYMXFXIXJUUBYRXIXJXKXHXPYFYLUMZXIXJXKXHXPYFYLUNZAYNH
      IBCYPNOUOUPYMXKUUCXIXJXKXHXPYFYLUQZAYNDIYPOURULYNHIXNDYPNUSUPZYMYQYCYNQZG
      YNQZUUAYSYMXFXRXSUUHYRXRXSXTYEXQYLUTZXRXSXTYEXQYLVAZAYNHIEFYPNOUOUPZYMXTU
      UIXRXSXTYEXQYLVBZAYNGIYPOURULZYNHIYCGYPNUSUPZYNHIYGYIYPNUSUPYMXGLYNQZXFXG
      XLXPYFYLVCZYNIKLYPPVDULZYMYHYJYOLJSZXQYFYHYJYKVEZXQYFYHYJYKVFZYMYQYTUUAUU
      PYHYJRUUSVGYSUUGUUOUURYNHIJYGYILYPMNVHVIVJYMEYGJSZLYOJSZYMUVBRZFYGJSZUVCU
      VDUVERZYGGHUDZLYOJUVFUVGLJSZUVGLVKZYMUVHUVBUVEYMYHGLJSZUVHUUTYMYNIJGYILYP
      MYSUUNUUOUURYMYQUUHUUIGYIJSZYSUULUUNYNHIJYCGYPMNVLUPZUVAVMYMYQYTUUIUUPYHU
      VJRUVHVGYSUUGUUNUURYNHIJYGGLYPMNVHVIVJTUVFXFUVGKQZXGUVHUVIVGYMXFUVBUVEYRT
      UVFXFXIXJUBZXKXTRZXMXOGYGJSZUEZUVMYMUVNUVBUVEYMXFXIXJYRUUDUUEVNZTYMUVOUVB
      UVEYMXKXTUUFUUMVOTYMXMUVBUVEXMXOXHXLYFYLVPZTYMXOUVBUVEXMXOXHXLYFYLVQZTUVF
      YKUVQYMYKUVBUVEXQYFYHYJYKVRTUVFUVPYGYIUVFUVPYGYIVKUVFUVPRZYIYGUWAYIYGJSZY
      IYGVKZUWAYCYGJSZUVPUWBUVFUWDUVPUVFUVBUVEUWDYMUVBUVEVSUVDUVEVTYMUVBUVERUWD
      VGZUVBUVEYMYQEYNQZFYNQZYTUWEYSYMXRUWFUUJAYNEIYPOURULZYMXSUWGUUKAYNFIYPOUR
      ULZUUGYNHIJEFYGYPMNVHVITVJWAUVFUVPVTYMUWDUVPRUWBVGZUVBUVEUVPYMYQUUHUUIYTU
      WJYSUULUUNUUGYNHIJYCGYGYPMNVHVIWCVJYMUWBUWCVGZUVBUVEUVPYMXFYAXLYDYBUWKYRX
      QYAYEYLWBXHXLXPYFYLWDYBYDYAXQYLWEYBYDYAXQYLWFAEFGBCDHIJMNOWMWGWCWHWIWJWKW
      NABCDGHIJKMNOPWLWOYMXGUVBUVEUUQTIJKUVGLMPWPUPWHYMUVGYOJSZUVBUVEYMUVKUWLUV
      LYMYQUUIUUAYTUVKUWLWQYSUUNUUOUUGYNHIJGYIYGYPMNWRVIWNTWSUVDUVEUEZRZYGFHUDZ
      LYOJUWNUWOLJSZUWOLVKZYMUWPUVBUWMYMYHFLJSZUWPUUTYMYNIJFYILYPMYSUWIUUOUURYM
      FEGHUDZFHUDZYIJYMYQUWSYNQZUWGFUWTJSYSYMXFXRXTUXAYRUUJUUMAYNHIEGYPNOUOUPUW
      IYNHIJUWSFYPMNVLUPYMXFXRXSXTYIUWTVKYRUUJUUKUUMAEFGHINOWTVIXAZUVAVMYMYQYTU
      WGUUPYHUWRRUWPVGYSUUGUWIUURYNHIJYGFLYPMNVHVIVJTUWNXFUWOKQZXGUWPUWQVGYMXFU
      VBUWMYRTUWNUVNXKXSRZXMXOUWMUXCYMUVNUVBUWMUVRTYMUXDUVBUWMYMXKXSUUFUUKVOTYM
      XMUVBUWMUVSTYMXOUVBUWMUVTTUVDUWMVTABCDFHIJKMNOPWLWOYMXGUVBUWMUUQTIJKUWOLM
      PWPUPWHYMUWOYOJSZUVBUWMYMFYIJSZUXEUXBYMYQUWGUUAYTUXFUXEWQYSUWIUUOUUGYNHIJ
      FYIYGYPMNWRVIWNTWSXBYMUVBUEZRZYGEHUDZLYOJUXHUXILJSZUXILVKZYMUXJUXGYMYHELJ
      SZUXJUUTYMYNIJEYILYPMYSUWHUUOUURYMEEFGHUDZHUDZYIJYMYQUWFUXMYNQZEUXNJSYSUW
      HYMXFXSXTUXOYRUUKUUMAYNHIFGYPNOUOUPYNHIJEUXMYPMNXCUPYMYQUWFUWGUUIYIUXNVKY
      SUWHUWIUUNYNHIEFGYPNXDVIXAZUVAVMYMYQYTUWFUUPYHUXLRUXJVGYSUUGUWHUURYNHIJYG
      ELYPMNVHVIVJWAUXHXFUXIKQZXGUXJUXKVGYMXFUXGYRWAUXHUVNXKXRRZXMXOUXGUXQYMUVN
      UXGUVRWAYMUXRUXGYMXKXRUUFUUJVOWAYMXMUXGUVSWAYMXOUXGUVTWAYMUXGVTABCDEHIJKM
      NOPWLWOYMXGUXGUUQWAIJKUXILMPWPUPWHYMUXIYOJSZUXGYMEYIJSZUXSUXPYMYQUWFUUAYT
      UXTUXSWQYSUWHUUOUUGYNHIJEYIYGYPMNWRVIWNWAWSXBXE $.
  $}

  ${
    $d q r s t u v .\/ $.  $d q r s t u v K $.  $d q r s t u v .<_ $.
    $d q r s t u v V $.  $d q r s t u v P $.  $d q r s t u v X $.
    $d q r s t u v Y $.  $d q r s t u v W $.
    2lplnj.l $e |- .<_ = ( le ` K ) $.
    2lplnj.j $e |- .\/ = ( join ` K ) $.
    2lplnj.p $e |- P = ( LPlanes ` K ) $.
    2lplnj.v $e |- V = ( LVols ` K ) $.
    $( The join of two different lattice planes in a (3-dimensional) lattice
       volume equals the volume.  (Contributed by NM, 12-Jul-2012.) $)
    2lplnj $p |- ( ( K e. HL /\ ( X e. P /\ Y e. P /\ W e. V )
       /\ ( X .<_ W /\ Y .<_ W /\ X =/= Y ) ) -> ( X .\/ Y ) = W ) $=
      ( wcel w3a wbr cv co wrex wa 3ad2ant1 vq vr vs vt vu vv chlt wn wceq catm
      wne cfv cbs eqid islpln2 simpr syl6bi anim12d 3adantr3 3adant3 wi simpl33
      imp simp33 oveq12d simp11 simp123 jca adantr simp2rl simp2rr 3jca simpl31
      simp2l simpl32 simp1r simp2r simp31 simpl13 wb breq1 neeq1 3anbi13d neeq2
      simp32 3anbi23d syl2anc mpbid 2lplnja syl321anc eqtrd rexlimdvv rexlimdva
      sylan9bb 3exp expdimp impd mpd ) CUGMZGAMZHAMZFEMZNZGFDOZHFDOZGHUKZNZNZUA
      PZUBPZUKZUCPZXIXJBQZDOUHZGXMXLBQZUIZNZUCCUJULZRUBXRRZUAXRRZUDPZUEPZUKZUFP
      ZYAYBBQZDOUHZHYEYDBQZUIZNZUFXRRUEXRRZUDXRRZSZGHBQZFUIZWSXCYLXGWSWTXAYLXBW
      SWTXASYLWSWTXTXAYKWSWTGCUMULZMZXTSXTXRYOABCDGUCUBUAYOUNZIJXRUNZKUOYPXTUPU
      QWSXAHYOMZYKSYKXRYOABCDHUFUEUDYQIJYRKUOYSYKUPUQURVCUSUTXHXTYKYNXHXSYKYNVA
      ZUAXRXHXIXRMZSXQYTUBUCXRXRXHUUAXJXRMZXLXRMZSZXQYTVAXHUUAUUDSZXQYTXHUUEXQN
      ZYJYNUDXRUUFYAXRMZSZYIYNUEUFXRXRUUHYBXRMZYDXRMZSZYIYNUUHUUKYINZYMXOYGBQZF
      UULGXOHYGBUUHUUKXPYIXKXNXPXHUUEUUGVBTZUUHUUKYCYFYHVDZVEUULWSXBSZUUAUUBUUC
      NZXKXNSUUGUUIUUJNYCYFSXOFDOZYGFDOZXOYGUKZNZUUMFUIUUHUUKUUPYIUUFUUPUUGUUFW
      SXBWSXCXGUUEXQVFWTXAXBWSXGUUEXQVGVHVITUUHUUKUUQYIUUFUUQUUGUUFUUAUUBUUCXHU
      UAUUDXQVNUUBUUCUUAXHXQVJUUBUUCUUAXHXQVKVLVITUULXKXNUUHUUKXKYIXKXNXPXHUUEU
      UGVMTUUHUUKXNYIXKXNXPXHUUEUUGVOTVHUULUUGUUIUUJUUFUUGUUKYIVPUUHUUIUUJYIVNU
      UHUUIUUJYIVQVLUULYCYFUUHUUKYCYFYHVRUUHUUKYCYFYHWEVHUULXGUVAUUHUUKXGYIWSXC
      XGUUEXQUUGVSTUULXPYHXGUVAVTUUNUUOXPXGUURXEXOHUKZNYHUVAXPXDUURXFUVBXEGXOFD
      WAGXOHWBWCYHXEUUSUVBUUTUURHYGFDWAHYGXOWDWFWNWGWHXRXIXJXLYAYBYDBCDEFIJYRLW
      IWJWKWOWLWMWOWPWLWMWQWR $.
  $}

  ${
    2lplnm2.l $e |- .<_ = ( le ` K ) $.
    2lplnm2.m $e |- ./\ = ( meet ` K ) $.
    2lplnm2.a $e |- N = ( LLines ` K ) $.
    2lplnm2.p $e |- P = ( LPlanes ` K ) $.
    2lplnm2.v $e |- V = ( LVols ` K ) $.
    $( The meet of two different lattice planes in a lattice volume is a
       lattice line.  (Contributed by NM, 12-Jul-2012.)
       (New usage is discouraged.) $)
    2lplnm2N $p |- ( ( K e. HL /\ ( X e. P /\ Y e. P /\ W e. V )
       /\ ( X .<_ W /\ Y .<_ W /\ X =/= Y ) ) -> ( X ./\ Y ) e. N ) $=
      ( wcel w3a wbr cfv eqid syl3anc chlt wne co simp22 cbs ccvr wb simp1 clat
      hllat 3ad2ant1 simp21 lplnbase syl latmcl cjn 2lplnj eqeltrd lplncvrlvol2
      simp23 latlej1 syl31anc cvrexch mpbird llncvrlpln ) BUAOZHAOZIAOZGFOZPZHG
      CQIGCQHIUBPZPZHIDUCZEOZVHVFVGVHVIVKUDZVLVFVMBUERZOZIVPOZVMIBUFRZQZVNVHUGV
      FVJVKUHZVLBUIOZHVPOZVRVQVFVJWBVKBUJUKZVLVGWCVFVGVHVIVKULZVPABHVPSZMUMUNZV
      LVHVRVOVPABIWFMUMUNZVPBDHIWFKUOTWHVLVTHHIBUPRZUCZVSQZVLVFVGWJFOHWJCQZWKWA
      WEVLWJGFAWIBCFGHIJWISZMNUQVFVGVHVIVKUTURVLWBWCVRWLWDWGWHVPWIBCHIWFJWMVATV
      SABCFHWJJVSSZMNUSVBVLVFWCVRVTWKUGWAWGWHVPVSWIBDHIWFWMKWNVCTVDVPVSABEVMIWF
      WNLMVEVBVD $.
  $}

  ${
    2lplnmj.j $e |- .\/ = ( join ` K ) $.
    2lplnmj.m $e |- ./\ = ( meet ` K ) $.
    2lplnmj.n $e |- N = ( LLines ` K ) $.
    2lplnmj.p $e |- P = ( LPlanes ` K ) $.
    2lplnmj.v $e |- V = ( LVols ` K ) $.
    $( The meet of two lattice planes is a lattice line iff their join is a
       lattice volume.  (Contributed by NM, 13-Jul-2012.) $)
    2lplnmj $p |- ( ( K e. HL /\ X e. P /\ Y e. P )
      -> ( ( X ./\ Y ) e. N <-> ( X .\/ Y ) e. V ) ) $=
      ( wcel w3a cfv wbr wb wa syl3an chlt co ccvr simp1 eqid lplnbase 3ad2ant2
      cbs 3ad2ant3 cvrexch syl3anc cple simpl1 simpr simpl3 clat latmle2 adantr
      hllat llncvrlpln2 syl31anc latmcl llncvrlpln sylan mpbird impbida latlej1
      3jca simpl2 lplncvrlvol2 latjcl lplncvrlvol mpbid 3bitr4d ) CUANZGANZHANZ
      OZGHDUBZHCUCPZQZGGHBUBZVTQZVSENZWBFNZVRVOGCUHPZNZHWFNZWAWCRVOVPVQUDZVPVOW
      GVQWFACGWFUEZLUFZUGZVQVOWHVPWFACHWJLUFZUIZWFVTBCDGHWJIJVTUEZUJUKVRWDWAVRW
      DSVOWDVQVSHCULPZQZWAVOVPVQWDUMVRWDUNVOVPVQWDUOVRWQWDVOCUPNZVPWGVQWHWQCUSZ
      WKWMWFCWPDGHWJWPUEZJUQTURVTACWPEVSHWTWOKLUTVAVRWASWDVQVOVPVQWAUOVRVOVSWFN
      ZWHOWAWDVQRVRVOXAWHWIVOWRVPWGVQWHXAWSWKWMWFCDGHWJJVBTWNVHWFVTACEVSHWJWOKL
      VCVDVEVFVRWEWCVRWESVOVPWEGWBWPQZWCVOVPVQWEUMVOVPVQWEVIVRWEUNVRXBWEVOWRVPW
      GVQWHXBWSWKWMWFBCWPGHWJWTIVGTURVTACWPFGWBWTWOLMVJVAVRWCSVPWEVOVPVQWCVIVRV
      OWGWBWFNZOWCVPWERVRVOWGXCWIWLVOWRVPWGVQWHXCWSWKWMWFBCGHWJIVKTVHWFVTACFGWB
      WJWOLMVLVDVMVFVN $.
  $}

  ${
    dalema.ph $e |- ( ph <-> ( ( ( K e. HL /\ C e. ( Base ` K ) )
    /\ ( P e. A /\ Q e. A /\ R e. A )
    /\ ( S e. A /\ T e. A /\ U e. A ) )
 /\ ( Y e. O /\ Z e. O )
 /\ ( ( -. C .<_ ( P .\/ Q ) /\ -. C .<_ ( Q .\/ R )
         /\ -. C .<_ ( R .\/ P ) )
    /\ ( -. C .<_ ( S .\/ T ) /\ -. C .<_ ( T .\/ U )
          /\ -. C .<_ ( U .\/ S ) )
    /\ ( C .<_ ( P .\/ S ) /\ C .<_ ( Q .\/ T )
          /\ C .<_ ( R .\/ U ) ) ) ) ) $.
    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemkehl $p |- ( ph -> K e. HL ) $=
      ( wcel w3a co wbr chlt cbs cfv wa wn simp11l sylbi ) AKUAQZCKUBUCQZUDDBQE
      BQFBQRZGBQHBQIBQRZRNMQOMQUDZCDEJSLTUECEFJSLTUECFDJSLTUERCGHJSLTUECHIJSLTU
      ECIGJSLTUERCDGJSLTCEHJSLTCFIJSLTRRZRUHPUHUIUJUKULUMUFUG $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemkelat $p |- ( ph -> K e. Lat ) $=
      ( chlt wcel clat dalemkehl hllat syl ) AKQRKSRABCDEFGHIJKLMNOPTKUAUB $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemkeop $p |- ( ph -> K e. OP ) $=
      ( chlt wcel cops dalemkehl hlop syl ) AKQRKSRABCDEFGHIJKLMNOPTKUAUB $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalempea $p |- ( ph -> P e. A ) $=
      ( wcel w3a co wbr chlt cbs cfv wa wn simp121 sylbi ) AKUAQCKUBUCQUDZDBQZE
      BQZFBQZRGBQHBQIBQRZRNMQOMQUDZCDEJSLTUECEFJSLTUECFDJSLTUERCGHJSLTUECHIJSLT
      UECIGJSLTUERCDGJSLTCEHJSLTCFIJSLTRRZRUIPUIUJUKUHULUMUNUFUG $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemqea $p |- ( ph -> Q e. A ) $=
      ( wcel w3a co wbr chlt cbs cfv wa wn simp122 sylbi ) AKUAQCKUBUCQUDZDBQZE
      BQZFBQZRGBQHBQIBQRZRNMQOMQUDZCDEJSLTUECEFJSLTUECFDJSLTUERCGHJSLTUECHIJSLT
      UECIGJSLTUERCDGJSLTCEHJSLTCFIJSLTRRZRUJPUIUJUKUHULUMUNUFUG $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemrea $p |- ( ph -> R e. A ) $=
      ( wcel w3a co wbr chlt cbs cfv wa wn simp123 sylbi ) AKUAQCKUBUCQUDZDBQZE
      BQZFBQZRGBQHBQIBQRZRNMQOMQUDZCDEJSLTUECEFJSLTUECFDJSLTUERCGHJSLTUECHIJSLT
      UECIGJSLTUERCDGJSLTCEHJSLTCFIJSLTRRZRUKPUIUJUKUHULUMUNUFUG $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemsea $p |- ( ph -> S e. A ) $=
      ( wcel w3a co wbr chlt cbs cfv wa wn simp131 sylbi ) AKUAQCKUBUCQUDZDBQEB
      QFBQRZGBQZHBQZIBQZRRNMQOMQUDZCDEJSLTUECEFJSLTUECFDJSLTUERCGHJSLTUECHIJSLT
      UECIGJSLTUERCDGJSLTCEHJSLTCFIJSLTRRZRUJPUJUKULUHUIUMUNUFUG $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemtea $p |- ( ph -> T e. A ) $=
      ( wcel w3a co wbr chlt cbs cfv wa wn simp132 sylbi ) AKUAQCKUBUCQUDZDBQEB
      QFBQRZGBQZHBQZIBQZRRNMQOMQUDZCDEJSLTUECEFJSLTUECFDJSLTUERCGHJSLTUECHIJSLT
      UECIGJSLTUERCDGJSLTCEHJSLTCFIJSLTRRZRUKPUJUKULUHUIUMUNUFUG $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemuea $p |- ( ph -> U e. A ) $=
      ( wcel w3a co wbr chlt cbs cfv wa wn simp133 sylbi ) AKUAQCKUBUCQUDZDBQEB
      QFBQRZGBQZHBQZIBQZRRNMQOMQUDZCDEJSLTUECEFJSLTUECFDJSLTUERCGHJSLTUECHIJSLT
      UECIGJSLTUERCDGJSLTCEHJSLTCFIJSLTRRZRULPUJUKULUHUIUMUNUFUG $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemyeo $p |- ( ph -> Y e. O ) $=
      ( wcel w3a co wbr chlt cbs cfv wa wn simp2l sylbi ) AKUAQCKUBUCQUDDBQEBQF
      BQRGBQHBQIBQRRZNMQZOMQZUDCDEJSLTUECEFJSLTUECFDJSLTUERCGHJSLTUECHIJSLTUECI
      GJSLTUERCDGJSLTCEHJSLTCFIJSLTRRZRUIPUHUIUJUKUFUG $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemzeo $p |- ( ph -> Z e. O ) $=
      ( wcel w3a co wbr chlt cbs cfv wa wn simp2r sylbi ) AKUAQCKUBUCQUDDBQEBQF
      BQRGBQHBQIBQRRZNMQZOMQZUDCDEJSLTUECEFJSLTUECFDJSLTUERCGHJSLTUECHIJSLTUECI
      GJSLTUERCDGJSLTCEHJSLTCFIJSLTRRZRUJPUHUIUJUKUFUG $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemclpjs $p |- ( ph -> C .<_ ( P .\/ S ) ) $=
      ( wcel w3a co wbr chlt cbs cfv wa wn simp331 sylbi ) AKUAQCKUBUCQUDDBQEBQ
      FBQRGBQHBQIBQRRZNMQOMQUDZCDEJSLTUECEFJSLTUECFDJSLTUERZCGHJSLTUECHIJSLTUEC
      IGJSLTUERZCDGJSLTZCEHJSLTZCFIJSLTZRRRULPULUMUNUJUKUHUIUFUG $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemclqjt $p |- ( ph -> C .<_ ( Q .\/ T ) ) $=
      ( wcel w3a co wbr chlt cbs cfv wa wn simp332 sylbi ) AKUAQCKUBUCQUDDBQEBQ
      FBQRGBQHBQIBQRRZNMQOMQUDZCDEJSLTUECEFJSLTUECFDJSLTUERZCGHJSLTUECHIJSLTUEC
      IGJSLTUERZCDGJSLTZCEHJSLTZCFIJSLTZRRRUMPULUMUNUJUKUHUIUFUG $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemclrju $p |- ( ph -> C .<_ ( R .\/ U ) ) $=
      ( wcel w3a co wbr chlt cbs cfv wa wn simp333 sylbi ) AKUAQCKUBUCQUDDBQEBQ
      FBQRGBQHBQIBQRRZNMQOMQUDZCDEJSLTUECEFJSLTUECFDJSLTUERZCGHJSLTUECHIJSLTUEC
      IGJSLTUERZCDGJSLTZCEHJSLTZCFIJSLTZRRRUNPULUMUNUJUKUHUIUFUG $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalem-clpjq $p |- ( ph -> -. C .<_ ( P .\/ Q ) ) $=
      ( wcel w3a co wbr chlt cbs cfv wa wn simp311 sylbi ) AKUAQCKUBUCQUDDBQEBQ
      FBQRGBQHBQIBQRRZNMQOMQUDZCDEJSLTUEZCEFJSLTUEZCFDJSLTUEZRCGHJSLTUECHIJSLTU
      ECIGJSLTUERZCDGJSLTCEHJSLTCFIJSLTRZRRUJPUJUKULUMUNUHUIUFUG $.

    ${
      dalema.a $e |- A = ( Atoms ` K ) $.
      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalemceb $p |- ( ph -> C e. ( Base ` K ) ) $=
        ( wcel co wbr chlt cbs cfv wa w3a wn simp11r sylbi ) AKUARZCKUBUCRZUDDB
        REBRFBRUEZGBRHBRIBRUEZUENMROMRUDZCDEJSLTUFCEFJSLTUFCFDJSLTUFUECGHJSLTUF
        CHIJSLTUFCIGJSLTUFUECDGJSLTCEHJSLTCFIJSLTUEUEZUEUJPUIUJUKULUMUNUGUH $.

      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalempeb $p |- ( ph -> P e. ( Base ` K ) ) $=
        ( wcel cbs cfv dalempea eqid atbase syl ) ADBRDKSTZRABCDEFGHIJKLMNOPUAB
        UEDKUEUBQUCUD $.

      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalemqeb $p |- ( ph -> Q e. ( Base ` K ) ) $=
        ( wcel cbs cfv dalemqea eqid atbase syl ) AEBREKSTZRABCDEFGHIJKLMNOPUAB
        UEEKUEUBQUCUD $.

      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalemreb $p |- ( ph -> R e. ( Base ` K ) ) $=
        ( wcel cbs cfv dalemrea eqid atbase syl ) AFBRFKSTZRABCDEFGHIJKLMNOPUAB
        UEFKUEUBQUCUD $.

      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalemseb $p |- ( ph -> S e. ( Base ` K ) ) $=
        ( wcel cbs cfv dalemsea eqid atbase syl ) AGBRGKSTZRABCDEFGHIJKLMNOPUAB
        UEGKUEUBQUCUD $.

      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalemteb $p |- ( ph -> T e. ( Base ` K ) ) $=
        ( wcel cbs cfv dalemtea eqid atbase syl ) AHBRHKSTZRABCDEFGHIJKLMNOPUAB
        UEHKUEUBQUCUD $.

      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalemueb $p |- ( ph -> U e. ( Base ` K ) ) $=
        ( wcel cbs cfv dalemuea eqid atbase syl ) AIBRIKSTZRABCDEFGHIJKLMNOPUAB
        UEIKUEUBQUCUD $.
    $}

    ${
      dalemb.j $e |- .\/ = ( join ` K ) $.
      dalemb.a $e |- A = ( Atoms ` K ) $.
      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalempjqeb $p |- ( ph -> ( P .\/ Q ) e. ( Base ` K ) ) $=
        ( chlt wcel co cbs cfv dalemkehl dalempea dalemqea eqid hlatjcl syl3anc
        ) AKSTDBTEBTDEJUAKUBUCZTABCDEFGHIJKLMNOPUDABCDEFGHIJKLMNOPUEABCDEFGHIJK
        LMNOPUFBUJJKDEUJUGQRUHUI $.

      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalemsjteb $p |- ( ph -> ( S .\/ T ) e. ( Base ` K ) ) $=
        ( chlt wcel co cbs cfv dalemkehl dalemsea dalemtea eqid hlatjcl syl3anc
        ) AKSTGBTHBTGHJUAKUBUCZTABCDEFGHIJKLMNOPUDABCDEFGHIJKLMNOPUEABCDEFGHIJK
        LMNOPUFBUJJKGHUJUGQRUHUI $.

      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalemtjueb $p |- ( ph -> ( T .\/ U ) e. ( Base ` K ) ) $=
        ( chlt wcel co cbs cfv dalemkehl dalemtea dalemuea eqid hlatjcl syl3anc
        ) AKSTHBTIBTHIJUAKUBUCZTABCDEFGHIJKLMNOPUDABCDEFGHIJKLMNOPUEABCDEFGHIJK
        LMNOPUFBUJJKHIUJUGQRUHUI $.

      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalemqrprot $p |- ( ph
  -> ( ( Q .\/ R ) .\/ P ) = ( ( P .\/ Q ) .\/ R ) ) $=
        ( wcel co chlt dalemkehl dalemqea dalemrea dalempea hlatjrot syl13anc
        wceq ) AKUASEBSFBSDBSEFJTDJTDEJTFJTUHABCDEFGHIJKLMNOPUBABCDEFGHIJKLMNOP
        UCABCDEFGHIJKLMNOPUDABCDEFGHIJKLMNOPUEBEFDJKQRUFUG $.
    $}

    ${
      dalemyeb.o $e |- O = ( LPlanes ` K ) $.
      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalemyeb $p |- ( ph -> Y e. ( Base ` K ) ) $=
        ( wcel cbs cfv dalemyeo eqid lplnbase syl ) ANMRNKSTZRABCDEFGHIJKLMNOPU
        AUEMKNUEUBQUCUD $.
    $}

    dalemc.l $e |- .<_ = ( le ` K ) $.
    dalemc.j $e |- .\/ = ( join ` K ) $.
    dalemc.a $e |- A = ( Atoms ` K ) $.
    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       13-Aug-2012.) $)
    dalemcnes $p |- ( ph -> C =/= S ) $=
      ( wcel clat cbs cfv co wbr wne dalemkelat dalemceb dalemseb dalemteb chlt
      wn wa w3a simp321 sylbi eqid latnlej1l syl131anc ) AKUATCKUBUCZTZGUTTHUTT
      CGHJUDLUEULZCGUFABCDEFGHIJKLMNOPUGABCDEFGHIJKLMNOPSUHABCDEFGHIJKLMNOPSUIA
      BCDEFGHIJKLMNOPSUJAKUKTVAUMDBTEBTFBTUNGBTHBTIBTUNUNZNMTOMTUMZCDEJUDLUEULC
      EFJUDLUEULCFDJUDLUEULUNZVBCHIJUDLUEULZCIGJUDLUEULZUNCDGJUDLUECEHJUDLUECFI
      JUDLUEUNZUNUNVBPVBVFVGVEVHVCVDUOUPUTJKLCGHUTUQQRURUS $.

    ${
      dalempnes.o $e |- O = ( LPlanes ` K ) $.
      dalempnes.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalempnes $p |- ( ph -> P =/= S ) $=
        ( wbr wn wne clat wcel cbs cfv co dalemkelat dalemceb dalemseb dalemteb
        chlt w3a simp321 sylbi eqid latnlej2l syl131anc dalemclpjs oveq1 breq2d
        wceq syl5ibcom dalemkehl dalemsea hlatjidm syl2anc sylibd necon3bd mpd
        wa ) ACGLUBZUCZDGUDAKUEUFCKUGUHZUFZGVPUFHVPUFCGHJUILUBUCZVOABCDEFGHIJKL
        MNOPUJABCDEFGHIJKLMNOPSUKABCDEFGHIJKLMNOPSULABCDEFGHIJKLMNOPSUMAKUNUFZV
        QVMDBUFEBUFFBUFUOGBUFZHBUFIBUFUOUOZNMUFOMUFVMZCDEJUILUBUCCEFJUILUBUCCFD
        JUILUBUCUOZVRCHIJUILUBUCZCIGJUILUBUCZUOCDGJUIZLUBZCEHJUILUBCFIJUILUBUOZ
        UOUOVRPVRWDWEWCWHWAWBUPUQVPJKLCGHVPURQRUSUTAVNDGADGVDZCGGJUIZLUBZVNAWGW
        IWKABCDEFGHIJKLMNOPVAWIWFWJCLDGGJVBVCVEAWJGCLAVSVTWJGVDABCDEFGHIJKLMNOP
        VFABCDEFGHIJKLMNOPVGBJKGRSVHVIVCVJVKVL $.

      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalemqnet $p |- ( ph -> Q =/= T ) $=
        ( wbr wn wne clat wcel cbs cfv co dalemkelat dalemceb dalemteb dalemueb
        chlt w3a simp322 sylbi eqid latnlej2l syl131anc dalemclqjt oveq1 breq2d
        wceq syl5ibcom dalemkehl dalemtea hlatjidm syl2anc sylibd necon3bd mpd
        wa ) ACHLUBZUCZEHUDAKUEUFCKUGUHZUFZHVPUFIVPUFCHIJUILUBUCZVOABCDEFGHIJKL
        MNOPUJABCDEFGHIJKLMNOPSUKABCDEFGHIJKLMNOPSULABCDEFGHIJKLMNOPSUMAKUNUFZV
        QVMDBUFEBUFFBUFUOGBUFHBUFZIBUFUOUOZNMUFOMUFVMZCDEJUILUBUCCEFJUILUBUCCFD
        JUILUBUCUOZCGHJUILUBUCZVRCIGJUILUBUCZUOCDGJUILUBCEHJUIZLUBZCFIJUILUBUOZ
        UOUOVRPWDVRWEWCWHWAWBUPUQVPJKLCHIVPURQRUSUTAVNEHAEHVDZCHHJUIZLUBZVNAWGW
        IWKABCDEFGHIJKLMNOPVAWIWFWJCLEHHJVBVCVEAWJHCLAVSVTWJHVDABCDEFGHIJKLMNOP
        VFABCDEFGHIJKLMNOPVGBJKHRSVHVIVCVJVKVL $.

      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalempjsen $p |- ( ph -> ( P .\/ S ) e. ( LLines ` K ) ) $=
        ( chlt wcel wne co clln cfv dalemkehl dalempea dalemsea dalempnes llni2
        eqid syl31anc ) AKUBUCDBUCGBUCDGUDDGJUEKUFUGZUCABCDEFGHIJKLMNOPUHABCDEF
        GHIJKLMNOPUIABCDEFGHIJKLMNOPUJABCDEFGHIJKLMNOPQRSTUAUKBDGJKUORSUOUMULUN
        $.

      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 13-Aug-2012.) $)
      dalemply $p |- ( ph -> P .<_ Y ) $=
        ( clat wcel cbs cfv wbr dalemkelat dalempeb dalemkehl dalemqea dalemrea
        chlt eqid hlatjcl syl3anc dalempea hlatjass syl13anc breqtrrd syl6breqr
        co latlej1 wceq ) ADDEJVAFJVAZNLADDEFJVAZJVAZVDLAKUBUCDKUDUEZUCVEVGUCZD
        VFLUFABCDEFGHIJKLMNOPUGABCDEFGHIJKLMNOPSUHAKULUCZEBUCZFBUCZVHABCDEFGHIJ
        KLMNOPUIZABCDEFGHIJKLMNOPUJZABCDEFGHIJKLMNOPUKZBVGJKEFVGUMZRSUNUOVGJKLD
        VEVOQRVBUOAVIDBUCVJVKVDVFVCVLABCDEFGHIJKLMNOPUPVMVNBDEFJKRSUQURUSUAUT
        $.
    $}

    ${
      dalemsly.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 15-Aug-2012.) $)
      dalemsly $p |- ( ( ph /\ Y = Z ) -> S .<_ Y ) $=
        ( wceq wa wbr clat wcel cbs dalemkelat dalemseb dalemtjueb eqid latlej1
        cfv syl3anc chlt dalemkehl dalemsea dalemtea dalemuea hlatjass syl13anc
        co breqtrrd syl6breqr adantr simpr ) ANOUAZUBGONLAGOLUCVFAGGHJVAIJVAZOL
        AGGHIJVAZJVAZVGLAKUDUEGKUFULZUEVHVJUEGVILUCABCDEFGHIJKLMNOPUGABCDEFGHIJ
        KLMNOPSUHABCDEFGHIJKLMNOPRSUIVJJKLGVHVJUJQRUKUMAKUNUEGBUEHBUEIBUEVGVIUA
        ABCDEFGHIJKLMNOPUOABCDEFGHIJKLMNOPUPABCDEFGHIJKLMNOPUQABCDEFGHIJKLMNOPU
        RBGHIJKRSUSUTVBTVCVDAVFVEVB $.
    $}

    $( Lemma for ~ dath .  Swap the role of planes ` Y ` and ` Z ` to allow
       reuse of analogous proofs.  (Contributed by NM, 14-Aug-2012.) $)
    dalemswapyz $p |- ( ph -> ( ( ( K e. HL /\ C e. ( Base ` K ) )
  /\ ( S e. A /\ T e. A /\ U e. A ) /\ ( P e. A /\ Q e. A /\ R e. A ) )
 /\ ( Z e. O /\ Y e. O ) /\ ( ( -. C .<_ ( S .\/ T )
       /\ -. C .<_ ( T .\/ U )
    /\ -. C .<_ ( U .\/ S ) ) /\ ( -. C .<_ ( P .\/ Q )
        /\ -. C .<_ ( Q .\/ R )
    /\ -. C .<_ ( R .\/ P ) ) /\ ( C .<_ ( S .\/ P )
    /\ C .<_ ( T .\/ Q ) /\ C .<_ ( U .\/ R ) ) ) ) ) $=
      ( w3a chlt wcel cbs cfv wa co wbr simp11 simp13 simp12 3jca ancomd simp32
      simp2 simp31 dalemclpjs wceq dalemkehl dalempea dalemsea hlatjcom syl3anc
      wn dalemclqjt dalemqea dalemtea dalemclrju dalemrea dalemuea sylbir sylbi
      breqtrd ) AKUAUBZCKUCUDUBUEZDBUBZEBUBZFBUBZTZGBUBZHBUBZIBUBZTZTZNMUBZOMUB
      ZUEZCDEJUFLUGVCCEFJUFLUGVCCFDJUFLUGVCTZCGHJUFLUGVCCHIJUFLUGVCCIGJUFLUGVCT
      ZCDGJUFZLUGCEHJUFZLUGCFIJUFZLUGTZTZTZVNWBVRTZWEWDUEZWHWGCGDJUFZLUGZCHEJUF
      ZLUGZCIFJUFZLUGZTZTZTPWNWOWPXDWNVNWBVRVNVRWBWFWMUHVNVRWBWFWMUIVNVRWBWFWMU
      JUKWNWDWEWCWFWMUNULWNWHWGXCWCWFWGWHWLUMWCWFWGWHWLUOWNAXCPAWRWTXBACWIWQLAB
      CDEFGHIJKLMNOPUPAVMVOVSWIWQUQABCDEFGHIJKLMNOPURZABCDEFGHIJKLMNOPUSABCDEFG
      HIJKLMNOPUTBJKDGRSVAVBVLACWJWSLABCDEFGHIJKLMNOPVDAVMVPVTWJWSUQXEABCDEFGHI
      JKLMNOPVEABCDEFGHIJKLMNOPVFBJKEHRSVAVBVLACWKXALABCDEFGHIJKLMNOPVGAVMVQWAW
      KXAUQXEABCDEFGHIJKLMNOPVHABCDEFGHIJKLMNOPVIBJKFIRSVAVBVLUKVJUKUKVK $.

    ${
      dalemrot.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalemrot.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      $( Lemma for ~ dath .  Rotate triangles ` Y = P Q R ` and ` Z = S T U `
         to allow reuse of analogous proofs.  (Contributed by NM,
         14-Aug-2012.) $)
      dalemrot $p |- ( ph -> ( ( ( K e. HL /\ C e. ( Base ` K ) )
    /\ ( Q e. A /\ R e. A /\ P e. A ) /\ ( T e. A /\ U e. A /\ S e. A ) )
  /\ ( ( ( Q .\/ R ) .\/ P ) e. O /\ ( ( T .\/ U ) .\/ S ) e. O )
  /\ ( ( -. C .<_ ( Q .\/ R ) /\ -. C .<_ ( R .\/ P )
       /\ -. C .<_ ( P .\/ Q ) )
    /\ ( -. C .<_ ( T .\/ U ) /\ -. C .<_ ( U .\/ S )
        /\ -. C .<_ ( S .\/ T ) )
    /\ ( C .<_ ( Q .\/ T ) /\ C .<_ ( R .\/ U )
        /\ C .<_ ( P .\/ S ) ) ) ) ) $=
        ( chlt wcel cbs cfv wa w3a wbr dalemkehl dalemceb jca dalemqea dalemrea
        dalempea 3jca dalemtea dalemuea dalemsea dalemqrprot dalemyeo syl5eqelr
        co wn eqeltrd wceq hlatjrot syl13anc dalemzeo simp312 sylbi dalem-clpjq
        simp313 simp322 simp323 simp321 dalemclqjt dalemclrju dalemclpjs ) AKUB
        UCZCKUDUEUCZUFZEBUCZFBUCZDBUCZUGZHBUCZIBUCZGBUCZUGZUGEFJVBZDJVBZMUCZHIJ
        VBZGJVBZMUCZUFCWJLUHVCZCFDJVBLUHVCZCDEJVBZLUHVCZUGZCWMLUHVCZCIGJVBLUHVC
        ZCGHJVBZLUHVCZUGZCEHJVBLUHZCFIJVBLUHZCDGJVBLUHZUGZUGAWAWEWIAVSVTABCDEFG
        HIJKLMNOPUIZABCDEFGHIJKLMNOPSUJUKAWBWCWDABCDEFGHIJKLMNOPULABCDEFGHIJKLM
        NOPUMABCDEFGHIJKLMNOPUNUOAWFWGWHABCDEFGHIJKLMNOPUPZABCDEFGHIJKLMNOPUQZA
        BCDEFGHIJKLMNOPURZUOUOAWLWOAWKWRFJVBZMABCDEFGHIJKLMNOPRSUSAXNNMTABCDEFG
        HIJKLMNOPUTVAVDAWNXCIJVBZMAVSWFWGWHWNXOVEXJXKXLXMBHIGJKRSVFVGAXOOMUAABC
        DEFGHIJKLMNOPVHVAVDUKAWTXEXIAWPWQWSAWAWDWBWCUGWHWFWGUGUGZNMUCOMUCUFZWSW
        PWQUGZXDXAXBUGZXHXFXGUGZUGUGZWPPWSWPWQXSXTXPXQVIVJAYAWQPWSWPWQXSXTXPXQV
        LVJABCDEFGHIJKLMNOPVKUOAXAXBXDAYAXAPXDXAXBXRXTXPXQVMVJAYAXBPXDXAXBXRXTX
        PXQVNVJAYAXDPXDXAXBXRXTXPXQVOVJUOAXFXGXHABCDEFGHIJKLMNOPVPABCDEFGHIJKLM
        NOPVQABCDEFGHIJKLMNOPVRUOUOUO $.

      $( Lemma for ~ dath .  Rotate triangles ` Y = P Q R ` and ` Z = S T U `
         to allow reuse of analogous proofs.  (Contributed by NM,
         19-Aug-2012.) $)
      dalemrotyz $p |- ( ( ph /\ Y = Z )
            -> ( ( Q .\/ R ) .\/ P ) = ( ( T .\/ U ) .\/ S ) ) $=
        ( wceq wa simpr dalemqrprot syl6reqr adantr chlt wcel dalemtea dalemuea
        co dalemkehl dalemsea hlatjrot syl13anc 3eqtr3d ) ANOUBZUCNOEFJULDJULZH
        IJULGJULZAURUDANUSUBURAUSDEJULFJULNABCDEFGHIJKLMNOPRSUETUFUGAOUTUBURAUT
        GHJULIJULZOAKUHUIHBUIIBUIGBUIUTVAUBABCDEFGHIJKLMNOPUMABCDEFGHIJKLMNOPUJ
        ABCDEFGHIJKLMNOPUKABCDEFGHIJKLMNOPUNBHIGJKRSUOUPUAUFUGUQ $.
    $}

    ${
      dalem1.o $e |- O = ( LPlanes ` K ) $.
      dalem1.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      $( Lemma for ~ dath .  Show the lines ` P S ` and ` Q T ` are different.
         (Contributed by NM, 9-Aug-2012.) $)
      dalem1 $p |- ( ph -> ( P .\/ S ) =/= ( Q .\/ T ) ) $=
        ( co wbr wne dalemclpjs wceq dalem-clpjq adantr chlt dalemkehl dalempea
        wn wcel dalemsea hlatlej1 syl3anc dalemqea dalemtea simpr breqtrrd clat
        wa cbs cfv dalemkelat dalempeb dalemqeb eqid latjle12 syl13anc mpbi2and
        hlatjcl dalemrea dalemyeo lplnri1 syl131anc ps-1 syl132anc mpbid breq2d
        wb mtbid ex necon2ad mpd ) ACDGJUBZLUCZWFEHJUBZUDABCDEFGHIJKLMNOPUEAWGW
        FWHAWFWHUFZWGULAWIVBZCDEJUBZLUCZWGAWLULWIABCDEFGHIJKLMNOPUGUHWJWKWFCLWJ
        WKWFLUCZWKWFUFZWJDWFLUCZEWFLUCZWMAWOWIAKUIUMZDBUMZGBUMZWOABCDEFGHIJKLMN
        OPUJZABCDEFGHIJKLMNOPUKZABCDEFGHIJKLMNOPUNZBDGJKLQRSUOUPUHWJEWHWFLAEWHL
        UCZWIAWQEBUMZHBUMXCWTABCDEFGHIJKLMNOPUQZABCDEFGHIJKLMNOPURBEHJKLQRSUOUP
        UHAWIUSUTAWOWPVBWMWAZWIAKVAUMDKVCVDZUMEXGUMWFXGUMZXFABCDEFGHIJKLMNOPVEA
        BCDEFGHIJKLMNOPSVFABCDEFGHIJKLMNOPSVGAWQWRWSXHWTXAXBBXGJKDGXGVHZRSVLUPX
        GJKLDEWFXIQRVIVJUHVKAWMWNWAZWIAWQWRXDDEUDZWRWSXJWTXAXEAWQWRXDFBUMNMUMXK
        WTXAXEABCDEFGHIJKLMNOPVMABCDEFGHIJKLMNOPVNBMDEFJKNRSTUAVOVPXAXBBDEDGJKL
        QRSVQVRUHVSVTWBWCWDWE $.

      $( Lemma for ~ dath .  Frequently-used utility lemma.  Here we show that
         ` C ` must be an atom.  This is an assumption in most presentations of
         Desargue's theorem; instead, we assume only the ` C ` is a lattice
         element, in order to make later substitutions for ` C ` easier.
         (Contributed by NM, 23-Sep-2012.) $)
      dalemcea $p |- ( ph -> C e. A ) $=
        ( cmee cfv cops wcel cbs cp0 wne wceq dalemkeop dalemceb chlt dalemkehl
        co wbr clln dalempjsen dalemqea dalemtea dalemqnet eqid syl31anc dalem1
        llni2 wn dalem-clpjq dalempjqeb op0le syl2anc breq1 syl5ibrcom necon3bd
        cplt wb opltn0 mpbird dalemclpjs dalemclqjt clat wa dalemkelat dalempea
        mpd dalemsea hlatjcl syl3anc latlem12 syl13anc mpbi2and cpo opposet syl
        wi op0cl latmcl pltletr mp2and mpbid 2llnmat syl32anc leat2 eqeltrd ) A
        CDGJUNZEHJUNZKUBUCZUNZBAKUDUEZCKUFUCZUEZXFBUEZCKUGUCZUHZCXFLUOZCXFUIABC
        DEFGHIJKLMNOPUJZABCDEFGHIJKLMNOPSUKZAKULUEZXCKUPUCZUEXDXQUEZXCXDUHXFXKU
        HZXJABCDEFGHIJKLMNOPUMZABCDEFGHIJKLMNOPQRSTUAUQAXPEBUEZHBUEZEHUHXRXTABC
        DEFGHIJKLMNOPURZABCDEFGHIJKLMNOPUSZABCDEFGHIJKLMNOPQRSTUAUTBEHJKXQRSXQV
        AZVDVBABCDEFGHIJKLMNOPQRSTUAVCAXKXFKVMUCZUOZXSAXKCYFUOZXMYGAYHXLACDEJUN
        ZLUOZVEXLABCDEFGHIJKLMNOPVFAYJCXKAYJCXKUIXKYILUOZAXGYIXHUEYKXNABCDEFGHI
        JKLMNOPRSVGXHKLYIXKXHVAZQXKVAZVHVICXKYILVJVKVLWCZAXGXIYHXLVNXNXOXHYFKCX
        KYLYFVAZYMVOVIVPACXCLUOZCXDLUOZXMABCDEFGHIJKLMNOPVQABCDEFGHIJKLMNOPVRAK
        VSUEZXIXCXHUEZXDXHUEZYPYQVTXMVNABCDEFGHIJKLMNOPWAZXOAXPDBUEGBUEYSXTABCD
        EFGHIJKLMNOPWBABCDEFGHIJKLMNOPWDBXHJKDGYLRSWEWFZAXPYAYBYTXTYCYDBXHJKEHY
        LRSWEWFZXHKLXECXCXDYLQXEVAZWGWHWIZAKWJUEZXKXHUEZXIXFXHUEZYHXMVTYGWMAXGU
        UFXNKWKWLAXGUUGXNXHKXKYLYMWNWLXOAYRYSYTUUHUUAUUBUUCXHKXEXCXDYLUUDWOWFZX
        HYFKLXKCXFYLQYOWPWHWQAXGUUHYGXSVNXNUUIXHYFKXFXKYLYOYMVOVIWRBKXEXQXCXDXK
        UUDYMSYEWSWTZYNUUEBXHXFKLCXKYLQYMSXAWTUUJXB $.

      $( Lemma for ~ dath .  Show the lines ` P Q ` and ` S T ` form a plane.
         (Contributed by NM, 11-Aug-2012.) $)
      dalem2 $p |- ( ph -> ( ( P .\/ Q ) .\/ ( S .\/ T ) ) e. O ) $=
        ( co chlt wcel wceq dalemkehl dalempea dalemqea dalemsea syl122anc cmee
        dalemtea hlatj4 cfv clln wne cp0 dalempjsen dalemqnet eqid llni2 dalem1
        syl31anc wbr dalemcea dalemclpjs dalemclqjt 2llnm4 syl132anc 2llnmat wb
        syl32anc 2llnmj syl3anc mpbid eqeltrd ) ADEJUBGHJUBJUBZDGJUBZEHJUBZJUBZ
        MAKUCUDZDBUDEBUDZGBUDHBUDZVQVTUEABCDEFGHIJKLMNOPUFZABCDEFGHIJKLMNOPUGAB
        CDEFGHIJKLMNOPUHZABCDEFGHIJKLMNOPUIABCDEFGHIJKLMNOPULZBDEGHJKRSUMUJAVRV
        SKUKUNZUBZBUDZVTMUDZAWAVRKUOUNZUDZVSWKUDZVRVSUPWHKUQUNZUPZWIWDABCDEFGHI
        JKLMNOPQRSTUAURZAWAWBWCEHUPWMWDWEWFABCDEFGHIJKLMNOPQRSTUAUSBEHJKWKRSWKU
        TZVAVCZABCDEFGHIJKLMNOPQRSTUAVBAWACBUDWLWMCVRLVDCVSLVDWOWDABCDEFGHIJKLM
        NOPQRSTUAVEWPWRABCDEFGHIJKLMNOPVFABCDEFGHIJKLMNOPVGBCKLWGWKVRVSWNQWGUTZ
        WNUTZSWQVHVIBKWGWKVRVSWNWSWTSWQVJVLAWAWLWMWIWJVKWDWPWRBMJKWGWKVRVSRWSSW
        QTVMVNVOVP $.
    $}

    ${
      dalemdea.m $e |- ./\ = ( meet ` K ) $.
      dalemdea.o $e |- O = ( LPlanes ` K ) $.
      dalemdea.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalemdea.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalemdea.d $e |- D = ( ( P .\/ Q ) ./\ ( S .\/ T ) ) $.
      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 11-Aug-2012.) $)
      dalemdea $p |- ( ph -> D e. A ) $=
        ( co wcel dalem2 chlt clln cfv dalemkehl wne dalempea dalemqea dalemrea
        wb dalemyeo lplnri1 syl131anc llni2 syl31anc dalemsea dalemtea dalemuea
        eqid dalemzeo 2llnmj syl3anc mpbird syl5eqel ) ADEFKUGZHIKUGZNUGZBUFAVO
        BUHZVMVNKUGOUHZABCEFGHIJKLMOPQRSTUAUCUDUIALUJUHZVMLUKULZUHZVNVSUHZVPVQU
        RABCEFGHIJKLMOPQRUMZAVREBUHZFBUHZEFUNZVTWBABCEFGHIJKLMOPQRUOZABCEFGHIJK
        LMOPQRUPZAVRWCWDGBUHPOUHWEWBWFWGABCEFGHIJKLMOPQRUQABCEFGHIJKLMOPQRUSBOE
        FGKLPTUAUCUDUTVABEFKLVSTUAVSVGZVBVCAVRHBUHZIBUHZHIUNZWAWBABCEFGHIJKLMOP
        QRVDZABCEFGHIJKLMOPQRVEZAVRWIWJJBUHQOUHWKWBWLWMABCEFGHIJKLMOPQRVFABCEFG
        HIJKLMOPQRVHBOHIJKLQTUAUCUEUTVABHIKLVSTUAWHVBVCBOKLNVSVMVNTUBUAWHUCVIVJ
        VKVL $.
    $}

    ${
      dalemeea.m $e |- ./\ = ( meet ` K ) $.
      dalemeea.o $e |- O = ( LPlanes ` K ) $.
      dalemeea.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalemeea.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalemeea.e $e |- E = ( ( Q .\/ R ) ./\ ( T .\/ U ) ) $.
      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 11-Aug-2012.) $)
      dalemeea $p |- ( ph -> E e. A ) $=
        ( chlt wcel cbs cfv wa w3a co wbr wn dalemrot biid eqid dalemdea syl )
        ALUGUHCLUIUJUHUKEBUHFBUHDBUHULHBUHIBUHGBUHULULEFKUMZDKUMZOUHHIKUMZGKUMZ
        OUHUKCVAMUNUOCFDKUMMUNUOCDEKUMMUNUOULCVCMUNUOCIGKUMMUNUOCGHKUMMUNUOULCE
        HKUMMUNCFIKUMMUNCDGKUMMUNULULULZJBUHABCDEFGHIKLMOPQRSTUAUDUEUPVEBCJEFDH
        IGKLMNOVBVDVEUQSTUAUBUCVBURVDURUFUSUT $.
    $}

    ${
      dalem3.m $e |- ./\ = ( meet ` K ) $.
      dalem3.o $e |- O = ( LPlanes ` K ) $.
      dalem3.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem3.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem3.d $e |- D = ( ( P .\/ Q ) ./\ ( S .\/ T ) ) $.
      dalem3.e $e |- E = ( ( Q .\/ R ) ./\ ( T .\/ U ) ) $.
      $( Lemma for ~ dalemdnee .  (Contributed by NM, 10-Aug-2012.) $)
      dalem3 $p |- ( ( ph /\ D =/= Q ) -> D =/= E ) $=
        ( wne wa co wbr chlt wcel dalemkehl dalempea dalemqea dalemrea dalemyeo
        wn lplnric syl131anc adantr wceq wi clat cbs dalemkelat hlatjcl syl3anc
        cfv eqid dalemtjueb latmle1 syl5eqbr breq1 syl5ibrcom dalemdea hlatlej2
        simpr hlatexch1 dalempjqeb dalemsjteb dalemqeb atbase latjle12 syl13anc
        wb syl mpbi2and dalemreb lattr mpan2d 3syld necon3bd mpd ) ADFUIZUJZGEF
        LUKZNULZUTZDKUIAXAWQAMUMUNZEBUNZFBUNZGBUNZQPUNXAABCEFGHIJLMNPQRSUOZABCE
        FGHIJLMNPQRSUPZABCEFGHIJLMNPQRSUQZABCEFGHIJLMNPQRSURZABCEFGHIJLMNPQRSUS
        BPEFGLMNQTUAUBUDUEVAVBVCWRWTDKWRDKVDZDFGLUKZNULZGFDLUKZNULZWTAXJXLVEWQA
        XLXJKXKNULAKXKIJLUKZOUKZXKNUHAMVFUNZXKMVGVKZUNZXOXRUNXPXKNULABCEFGHIJLM
        NPQRSVHZAXBXDXEXSXFXHXIBXRLMFGXRVLZUAUBVIVJABCEFGHIJLMNPQRSUAUBVMXRMNOX
        KXOYATUCVNVJVODKXKNVPVQVCWRXBDBUNZXEXDWQXLXNVEAXBWQXFVCAYBWQABCDEFGHIJL
        MNOPQRSTUAUBUCUDUEUFUGVRZVCAXEWQXIVCAXDWQXHVCAWQVTBDGFLMNTUAUBWAVBAXNWT
        VEWQAXNXMWSNULZWTAFWSNULZDWSNULZYDAXBXCXDYEXFXGXHBEFLMNTUAUBVSVJADWSHIL
        UKZOUKZWSNUGAXQWSXRUNZYGXRUNYHWSNULXTABCEFGHIJLMNPQRSUAUBWBZABCEFGHIJLM
        NPQRSUAUBWCXRMNOWSYGYATUCVNVJVOAXQFXRUNDXRUNZYIYEYFUJYDWHXTABCEFGHIJLMN
        PQRSUBWDAYBYKYCBXRDMYAUBWEWIYJXRLMNFDWSYATUAWFWGWJAXQGXRUNXMXRUNZYIXNYD
        UJWTVEXTABCEFGHIJLMNPQRSUBWKAXBXDYBYLXFXHYCBXRLMFDYAUAUBVIVJYJXRMNGXMWS
        YATWLWGWMVCWNWOWP $.

      $( Lemma for ~ dalemdnee .  (Contributed by NM, 10-Aug-2012.) $)
      dalem4 $p |- ( ( ph /\ D =/= T ) -> D =/= E ) $=
        ( wne wa co chlt wcel cbs cfv w3a wn dalemswapyz adantr clat dalemkelat
        wbr wceq dalempjqeb dalemsjteb eqid latmcom syl5eq neeq1d biimpa dalem3
        syl3anc syl2anc dalemkehl dalemqea dalemrea hlatjcl dalemtjueb 3netr4d
        biid ) ADIUIZUJZHILUKZEFLUKZOUKZIJLUKZFGLUKZOUKZDKWBMULUMZCMUNUOZUMUJHB
        UMIBUMJBUMUPEBUMFBUMZGBUMZUPUPRPUMQPUMUJCWCNVBUQCWFNVBUQCJHLUKNVBUQUPCW
        DNVBUQCWGNVBUQCGELUKNVBUQUPCHELUKNVBCIFLUKNVBCJGLUKNVBUPUPUPZWEIUIZWEWH
        UIAWMWAABCEFGHIJLMNPQRSTUAUBURUSAWAWNADWEIADWDWCOUKZWEUGAMUTUMZWDWJUMWC
        WJUMWOWEVCABCEFGHIJLMNPQRSVAZABCEFGHIJLMNPQRSUAUBVDABCEFGHIJLMNPQRSUAUB
        VEWJMOWDWCWJVFZUCVGVLVHZVIVJWMBCWEHIJEFGWHLMNOPRQWMVTTUAUBUCUDUFUEWEVFW
        HVFVKVMADWEVCWAWSUSAKWHVCWAAKWGWFOUKZWHUHAWPWGWJUMZWFWJUMWTWHVCWQAWIWKW
        LXAABCEFGHIJLMNPQRSVNABCEFGHIJLMNPQRSVOABCEFGHIJLMNPQRSVPBWJLMFGWRUAUBV
        QVLABCEFGHIJLMNPQRSUAUBVRWJMOWGWFWRUCVGVLVHUSVS $.

      $( Lemma for ~ dath .  Axis of perspectivity points ` D ` and ` E ` are
         different.  (Contributed by NM, 10-Aug-2012.) $)
      dalemdnee $p |- ( ph -> D =/= E ) $=
        ( wne wa simpr dalemqnet adantr eqnetrd dalem4 syldan dalem3 pm2.61dane
        wceq ) ADKUIZDFADFUSZDIUIUTAVAUJDFIAVAUKAFIUIVAABCEFGHIJLMNPQRSTUAUBUDU
        EULUMUNABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUOUPABCDEFGHIJKLMNOPQRSTUAUB
        UCUDUEUFUGUHUQUR $.
    $}

    ${
      dalem5.o $e |- O = ( LPlanes ` K ) $.
      dalem5.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem5.w $e |- W = ( Y .\/ C ) $.
      $( Lemma for ~ dath .  Atom ` U ` (in plane ` Z = S T U ` ) belongs to
         the 3-dimensional volume formed by ` Y ` and ` C ` .  (Contributed by
         NM, 21-Jul-2012.) $)
      dalem5 $p |- ( ph -> U .<_ W ) $=
        ( cbs co eqid dalemkelat dalemueb chlt wcel dalemkehl dalemrea dalemcea
        cfv hlatjcl syl3anc dalemyeb dalemceb latjcl syl5eqel wbr dalemclrju wi
        clat wne dalemuea wn dalempea simp313 sylbi atnlej1 syl131anc hlatexch1
        w3a mpd dalempjqeb dalemreb latlej2 syl6breqr latjlej1 syl13anc lattrd
        wa ) AKUDUNZKLIFCJUEZNWDUFZRABCDEFGHIJKLMOPQUGZABCDEFGHIJKLMOPQTUHAKUIU
        JZFBUJZCBUJZWEWDUJABCDEFGHIJKLMOPQUKZABCDEFGHIJKLMOPQULZABCDEFGHIJKLMOP
        QRSTUAUBUMZBWDJKFCWFSTUOUPANOCJUEZWDUCAKVDUJZOWDUJZCWDUJZWNWDUJWGABCDEF
        GHIJKLMOPQUAUQZABCDEFGHIJKLMOPQTURZWDJKOCWFSUSUPUTACFIJUELVAZIWELVAZABC
        DEFGHIJKLMOPQVBAWHWJIBUJZWICFVEZWTXAVCWKWMABCDEFGHIJKLMOPQVFWLAWHWJWIDB
        UJZCFDJUELVAVGZXCWKWMWLABCDEFGHIJKLMOPQVHAWHWQWCXDEBUJWIVNGBUJHBUJXBVNV
        NZOMUJPMUJWCZCDEJUEZLVAVGZCEFJUELVAVGZXEVNCGHJUELVAVGCHIJUELVAVGCIGJUEL
        VAVGVNZCDGJUELVACEHJUELVAWTVNZVNVNXEQXIXJXEXKXLXFXGVIVJBCFDJKLRSTVKVLBC
        IFJKLRSTVMVLVOAWEWNNLAFOLVAZWEWNLVAZAFXHFJUEZOLAWOXHWDUJFWDUJZFXOLVAWGA
        BCDEFGHIJKLMOPQSTVPABCDEFGHIJKLMOPQTVQZWDJKLXHFWFRSVRUPUBVSAWOXPWPWQXMX
        NVCWGXQWRWSWDJKLFOCWFRSVTWAVOUCVSWB $.
    $}

    ${
      dalem6.o $e |- O = ( LPlanes ` K ) $.
      dalem6.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem6.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem6.w $e |- W = ( Y .\/ C ) $.
      $( Lemma for ~ dath .  Analogue of ~ dalem5 for ` S ` .  (Contributed by
         NM, 21-Jul-2012.) $)
      dalem6 $p |- ( ph -> S .<_ W ) $=
        ( co chlt wcel cbs cfv wa w3a wbr dalemrot biid eqid dalem5 dalemqrprot
        wn syl syl6reqr oveq1d syl5eq breqtrrd ) AGEFJUEZDJUEZCJUEZNLAKUFUGCKUH
        UIUGUJEBUGFBUGDBUGUKHBUGIBUGGBUGUKUKVEMUGHIJUEZGJUEZMUGUJCVDLULURCFDJUE
        LULURCDEJUEZLULURUKCVGLULURCIGJUELULURCGHJUELULURUKCEHJUELULCFIJUELULCD
        GJUELULUKUKUKZGVFLULABCDEFGHIJKLMOPQRSTUBUCUMVJBCEFDHIGJKLMVFVEVHVJUNRS
        TUAVEUOVFUOUPUSANOCJUEVFUDAOVECJAVEVIFJUEOABCDEFGHIJKLMOPQSTUQUBUTVAVBV
        C $.

      $( Lemma for ~ dath .  Analogue of ~ dalem5 for ` T ` .  (Contributed by
         NM, 21-Jul-2012.) $)
      dalem7 $p |- ( ph -> T .<_ W ) $=
        ( co chlt wcel cbs cfv wa w3a wbr dalemrot biid eqid dalem6 dalemqrprot
        wn syl syl6reqr oveq1d syl5eq breqtrrd ) AHEFJUEZDJUEZCJUEZNLAKUFUGCKUH
        UIUGUJEBUGFBUGDBUGUKHBUGIBUGGBUGUKUKVEMUGHIJUEZGJUEZMUGUJCVDLULURCFDJUE
        LULURCDEJUEZLULURUKCVGLULURCIGJUELULURCGHJUELULURUKCEHJUELULCFIJUELULCD
        GJUELULUKUKUKZHVFLULABCDEFGHIJKLMOPQRSTUBUCUMVJBCEFDHIGJKLMVFVEVHVJUNRS
        TUAVEUOVHUOVFUOUPUSANOCJUEVFUDAOVECJAVEVIFJUEOABCDEFGHIJKLMOPQSTUQUBUTV
        AVBVC $.

      $( Lemma for ~ dath .  Plane ` Z ` belongs to the 3-dimensional space.
         (Contributed by NM, 21-Jul-2012.) $)
      dalem8 $p |- ( ph -> Z .<_ W ) $=
        ( co wbr dalem6 dalem7 clat wcel cbs wa wb dalemkelat dalemseb dalemteb
        dalemyeb dalemceb eqid latjcl syl3anc syl5eqel latjle12 syl13anc dalem5
        cfv mpbi2and dalemsjteb dalemueb syl5eqbr ) APGHJUEZIJUEZNLUCAVKNLUFZIN
        LUFZVLNLUFZAGNLUFZHNLUFZVMABCDEFGHIJKLMNOPQRSTUAUBUCUDUGABCDEFGHIJKLMNO
        PQRSTUAUBUCUDUHAKUIUJZGKUKVFZUJHVSUJNVSUJZVPVQULVMUMABCDEFGHIJKLMOPQUNZ
        ABCDEFGHIJKLMOPQTUOABCDEFGHIJKLMOPQTUPANOCJUEZVSUDAVROVSUJCVSUJWBVSUJWA
        ABCDEFGHIJKLMOPQUAUQABCDEFGHIJKLMOPQTURVSJKOCVSUSZSUTVAVBZVSJKLGHNWCRSV
        CVDVGABCDEFGHIJKLMNOPQRSTUAUBUDVEAVRVKVSUJIVSUJVTVMVNULVOUMWAABCDEFGHIJ
        KLMOPQSTVHABCDEFGHIJKLMOPQTVIWDVSJKLVKINWCRSVCVDVGVJ $.
    $}

    ${
      dalem-cly.o $e |- O = ( LPlanes ` K ) $.
      dalem-cly.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem-cly.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      $( Lemma for ~ dalem9 .  Center of perspectivity ` C ` is not in plane
         ` Y ` (when ` Y ` and ` Z ` are different planes).  (Contributed by
         NM, 13-Aug-2012.) $)
      dalem-cly $p |- ( ( ph /\ Y =/= Z ) -> -. C .<_ Y ) $=
        ( wne wbr wn wceq co clat wcel cbs wb dalemkelat dalemceb dalemyeb eqid
        cfv latleeqj1 syl3anc dalemclpjs wi dalemcea dalemsea dalempea dalemqea
        dalemkehl dalem-clpjq atnlej1 syl131anc hlatexch1 mpd hlatjcom breqtrrd
        chlt dalemclqjt dalemtea dalemrea wa w3a simp312 sylbi dalemseb hlatjcl
        dalemteb latjlej12 mp2and dalempeb dalemqeb latjjdi syl13anc dalemclrju
        syl122anc dalemuea simp313 dalemsjteb dalempjqeb latjcl dalemueb oveq2i
        dalemreb 3brtr4g breq2 syl5ibcom sylbid dalemzeo dalemyeo lplncmp eqcom
        syl6bb sylibd necon3ad imp ) ANOUCCNLUDZUEAXLNOAXLONLUDZNOUFZAXLCNJUGZN
        UFZXMAKUHUIZCKUJUPZUIZNXRUIXLXPUKABCDEFGHIJKLMNOPULZABCDEFGHIJKLMNOPSUM
        ZABCDEFGHIJKLMNOPTUNXRJKLCNXRUOZQRUQURAOXOLUDXPXMAGHJUGZIJUGZCDEJUGZFJU
        GZJUGZOXOLAYDCYEJUGZCFJUGZJUGZYGLAYCYHLUDZIYILUDZYDYJLUDZAYCCDJUGZCEJUG
        ZJUGZYHLAGYNLUDZHYOLUDZYCYPLUDZAGDCJUGZYNLACDGJUGLUDZGYTLUDZABCDEFGHIJK
        LMNOPUSAKVMUIZCBUIZGBUIZDBUIZCDUCZUUAUUBUTABCDEFGHIJKLMNOPVEZABCDEFGHIJ
        KLMNOPQRSTUAVAZABCDEFGHIJKLMNOPVBABCDEFGHIJKLMNOPVCZAUUCUUDUUFEBUIZCYEL
        UDUEZUUGUUHUUIUUJABCDEFGHIJKLMNOPVDZABCDEFGHIJKLMNOPVFBCDEJKLQRSVGVHBCG
        DJKLQRSVIVHVJAUUCUUDUUFYNYTUFUUHUUIUUJBJKCDRSVKURVLAHECJUGZYOLACEHJUGLU
        DZHUUNLUDZABCDEFGHIJKLMNOPVNAUUCUUDHBUIZUUKCEUCZUUOUUPUTUUHUUIABCDEFGHI
        JKLMNOPVOUUMAUUCUUDUUKFBUIZCEFJUGLUDUEZUURUUHUUIUUMABCDEFGHIJKLMNOPVPZA
        UUCXSVQUUFUUKUUSVRUUEUUQIBUIZVRVRZNMUIZOMUIZVQZUULUUTCFDJUGLUDUEZVRCYCL
        UDUECHIJUGLUDUECIGJUGLUDUEVRZUUAUUOCFIJUGLUDZVRZVRVRZUUTPUULUUTUVGUVHUV
        JUVCUVFVSVTBCEFJKLQRSVGVHBCHEJKLQRSVIVHVJAUUCUUDUUKYOUUNUFUUHUUIUUMBJKC
        ERSVKURVLAXQGXRUIYNXRUIZHXRUIYOXRUIZYQYRVQYSUTXTABCDEFGHIJKLMNOPSWAAUUC
        UUDUUFUVLUUHUUIUUJBXRJKCDYBRSWBURABCDEFGHIJKLMNOPSWCAUUCUUDUUKUVMUUHUUI
        UUMBXRJKCEYBRSWBURXRJKLYOGYNHYBQRWDWKWEAXQXSDXRUIEXRUIYHYPUFXTYAABCDEFG
        HIJKLMNOPSWFABCDEFGHIJKLMNOPSWGXRJKCDEYBRWHWIVLAIFCJUGZYILAUVIIUVNLUDZA
        BCDEFGHIJKLMNOPWJAUUCUUDUVBUUSCFUCZUVIUVOUTUUHUUIABCDEFGHIJKLMNOPWLUVAA
        UUCUUDUUSUUFUVGUVPUUHUUIUVAUUJAUVKUVGPUULUUTUVGUVHUVJUVCUVFWMVTBCFDJKLQ
        RSVGVHBCIFJKLQRSVIVHVJAUUCUUDUUSYIUVNUFUUHUUIUVABJKCFRSVKURVLAXQYCXRUIY
        HXRUIZIXRUIYIXRUIZYKYLVQYMUTXTABCDEFGHIJKLMNOPRSWNAXQXSYEXRUIZUVQXTYAAB
        CDEFGHIJKLMNOPRSWOZXRJKCYEYBRWPURABCDEFGHIJKLMNOPSWQAUUCUUDUUSUVRUUHUUI
        UVABXRJKCFYBRSWBURXRJKLYIYCYHIYBQRWDWKWEAXQXSUVSFXRUIYGYJUFXTYAUVTABCDE
        FGHIJKLMNOPSWSXRJKCYEFYBRWHWIVLUBNYFCJUAWRWTXONOLXAXBXCAXMONUFZXNAUUCUV
        EUVDXMUWAUKUUHABCDEFGHIJKLMNOPXDABCDEFGHIJKLMNOPXEMKLONQTXFURONXGXHXIXJ
        XK $.
    $}

    ${
      dalem9.o $e |- O = ( LPlanes ` K ) $.
      dalem9.v $e |- V = ( LVols ` K ) $.
      dalem9.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem9.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem9.w $e |- W = ( Y .\/ C ) $.
      $( Lemma for ~ dath .  Since ` -. C .<_ Y ` , the join ` Y .\/ C ` forms
         a 3-dimensional space.  (Contributed by NM, 20-Jul-2012.) $)
      dalem9 $p |- ( ( ph /\ Y =/= Z ) -> W e. V ) $=
        ( wne wa co chlt wcel wbr wn dalemkehl adantr dalemyeo dalem-cly lvoli3
        dalemcea syl31anc syl5eqel ) APQUGZUHZOPCJUIZNUFVCKUJUKZPMUKZCBUKZCPLUL
        UMVDNUKAVEVBABCDEFGHIJKLMPQRUNUOAVFVBABCDEFGHIJKLMPQRUPUOAVGVBABCDEFGHI
        JKLMPQRSTUAUBUDUSUOABCDEFGHIJKLMPQRSTUAUBUDUEUQBMCJKLNPSTUAUBUCURUTVA
        $.
    $}

    ${
      dalem10.m $e |- ./\ = ( meet ` K ) $.
      dalem10.o $e |- O = ( LPlanes ` K ) $.
      dalem10.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem10.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem10.x $e |- X = ( Y ./\ Z ) $.
      dalem10.d $e |- D = ( ( P .\/ Q ) ./\ ( S .\/ T ) ) $.
      $( Lemma for ~ dath .  Atom ` D ` belongs to the axis of perspectivity
         ` X ` .  (Contributed by NM, 19-Jul-2012.) $)
      dalem10 $p |- ( ph -> D .<_ X ) $=
        ( wbr clat wcel cbs dalemkelat dalempjqeb dalemreb eqid latlej1 syl3anc
        co cfv dalemsjteb dalemueb wa dalemyeb syl5eqelr dalemzeo syl latmlem12
        wi lplnbase syl122anc mp2and oveq12i eqtri 3brtr4g ) AEFKUSZHIKUSZNUSZV
        PGKUSZVQJKUSZNUSZDPMAVPVSMUIZVQVTMUIZVRWAMUIZALUJUKZVPLULUTZUKZGWFUKWBA
        BCEFGHIJKLMOQRSUMZABCEFGHIJKLMOQRSUAUBUNZABCEFGHIJKLMOQRSUBUOWFKLMVPGWF
        UPZTUAUQURAWEVQWFUKZJWFUKWCWHABCEFGHIJKLMOQRSUAUBVAZABCEFGHIJKLMOQRSUBV
        BWFKLMVQJWJTUAUQURAWEWGVSWFUKWKVTWFUKWBWCVCWDVIWHWIAVSQWFUEABCEFGHIJKLM
        OQRSUDVDVEWLAVTRWFUFAROUKRWFUKABCEFGHIJKLMOQRSVFWFOLRWJUDVJVGVEWFLMNVTV
        PVSVQWJTUCVHVKVLUHPQRNUSWAUGQVSRVTNUEUFVMVNVO $.
    $}

    ${
      dalem11.m $e |- ./\ = ( meet ` K ) $.
      dalem11.o $e |- O = ( LPlanes ` K ) $.
      dalem11.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem11.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem11.x $e |- X = ( Y ./\ Z ) $.
      dalem11.e $e |- E = ( ( Q .\/ R ) ./\ ( T .\/ U ) ) $.
      $( Lemma for ~ dath .  Analogue of ~ dalem10 for ` E ` .  (Contributed by
         NM, 23-Jul-2012.) $)
      dalem11 $p |- ( ph -> E .<_ X ) $=
        ( co chlt wcel cbs cfv wa w3a wn dalemrot biid eqid dalem10 dalemqrprot
        wbr syl syl6reqr dalemkehl dalemtea dalemuea dalemsea hlatjrot syl13anc
        wceq oveq12d syl5eq breqtrrd ) AJEFKUIZDKUIZHIKUIZGKUIZNUIZPMALUJUKZCLU
        LUMUKUNEBUKFBUKDBUKUOHBUKZIBUKZGBUKZUOUOVPOUKVROUKUNCVOMVBUPCFDKUIMVBUP
        CDEKUIZMVBUPUOCVQMVBUPCIGKUIMVBUPCGHKUIZMVBUPUOCEHKUIMVBCFIKUIMVBCDGKUI
        MVBUOUOUOZJVSMVBABCDEFGHIKLMOQRSTUAUBUEUFUQWFBCJEFDHIGKLMNOVSVPVRWFURTU
        AUBUCUDVPUSVRUSVSUSUHUTVCAPQRNUIVSUGAQVPRVRNAVPWDFKUIQABCDEFGHIKLMOQRSU
        AUBVAUEVDAVRWEIKUIZRAVTWAWBWCVRWGVKABCDEFGHIKLMOQRSVEABCDEFGHIKLMOQRSVF
        ABCDEFGHIKLMOQRSVGABCDEFGHIKLMOQRSVHBHIGKLUAUBVIVJUFVDVLVMVN $.
    $}

    ${
      dalem12.m $e |- ./\ = ( meet ` K ) $.
      dalem12.o $e |- O = ( LPlanes ` K ) $.
      dalem12.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem12.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem12.x $e |- X = ( Y ./\ Z ) $.
      dalem12.f $e |- F = ( ( R .\/ P ) ./\ ( U .\/ S ) ) $.
      $( Lemma for ~ dath .  Analogue of ~ dalem10 for ` F ` .  (Contributed by
         NM, 11-Aug-2012.) $)
      dalem12 $p |- ( ph -> F .<_ X ) $=
        ( co chlt wcel cbs cfv wa w3a wn dalemrot biid eqid dalem11 dalemqrprot
        wbr syl syl6reqr dalemkehl dalemtea dalemuea dalemsea hlatjrot syl13anc
        wceq oveq12d syl5eq breqtrrd ) AJEFKUIZDKUIZHIKUIZGKUIZNUIZPMALUJUKZCLU
        LUMUKUNEBUKFBUKDBUKUOHBUKZIBUKZGBUKZUOUOVPOUKVROUKUNCVOMVBUPCFDKUIMVBUP
        CDEKUIZMVBUPUOCVQMVBUPCIGKUIMVBUPCGHKUIZMVBUPUOCEHKUIMVBCFIKUIMVBCDGKUI
        MVBUOUOUOZJVSMVBABCDEFGHIKLMOQRSTUAUBUEUFUQWFBCEFDHIGJKLMNOVSVPVRWFURTU
        AUBUCUDVPUSVRUSVSUSUHUTVCAPQRNUIVSUGAQVPRVRNAVPWDFKUIQABCDEFGHIKLMOQRSU
        AUBVAUEVDAVRWEIKUIZRAVTWAWBWCVRWGVKABCDEFGHIKLMOQRSVEABCDEFGHIKLMOQRSVF
        ABCDEFGHIKLMOQRSVGABCDEFGHIKLMOQRSVHBHIGKLUAUBVIVJUFVDVLVMVN $.
    $}

    ${
      dalem13.o $e |- O = ( LPlanes ` K ) $.
      dalem13.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem13.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem13.w $e |- W = ( Y .\/ C ) $.
      $( Lemma for ~ dalem14 .  (Contributed by NM, 21-Jul-2012.) $)
      dalem13 $p |- ( ( ph /\ Y =/= Z ) -> ( Y .\/ Z ) = W ) $=
        ( wne wa chlt wcel clvol cfv co wceq dalemkehl adantr dalemyeo dalemzeo
        wbr eqid dalem9 clat cbs dalemkelat dalemyeb dalemceb latlej1 syl6breqr
        syl3anc dalem8 simpr 2lplnj syl133anc ) AOPUEZUFKUGUHZOMUHZPMUHZNKUIUJZ
        UHONLUQZPNLUQZVLOPJUKNULAVMVLABCDEFGHIJKLMOPQUMUNAVNVLABCDEFGHIJKLMOPQU
        OUNAVOVLABCDEFGHIJKLMOPQUPUNABCDEFGHIJKLMVPNOPQRSTUAVPURZUBUCUDUSAVQVLA
        OOCJUKZNLAKUTUHOKVAUJZUHCWAUHOVTLUQABCDEFGHIJKLMOPQVBABCDEFGHIJKLMOPQUA
        VCABCDEFGHIJKLMOPQTVDWAJKLOCWAURRSVEVGUDVFUNAVRVLABCDEFGHIJKLMNOPQRSTUA
        UBUCUDVHUNAVLVIMJKLVPNOPRSUAVSVJVK $.
    $}

    ${
      dalem14.o $e |- O = ( LPlanes ` K ) $.
      dalem14.v $e |- V = ( LVols ` K ) $.
      dalem14.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem14.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem14.w $e |- W = ( Y .\/ C ) $.
      $( Lemma for ~ dath .  Planes ` Y ` and ` Z ` form a 3-dimensional space
         (when they are different).  (Contributed by NM, 22-Jul-2012.) $)
      dalem14 $p |- ( ( ph /\ Y =/= Z ) -> ( Y .\/ Z ) e. V ) $=
        ( wne wa co dalem13 dalem9 eqeltrd ) APQUGUHPQJUIONABCDEFGHIJKLMOPQRSTU
        AUBUDUEUFUJABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUKUL $.
    $}

    ${
      dalem15.m $e |- ./\ = ( meet ` K ) $.
      dalem15.n $e |- N = ( LLines ` K ) $.
      dalem15.o $e |- O = ( LPlanes ` K ) $.
      dalem15.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem15.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem15.x $e |- X = ( Y ./\ Z ) $.
      $( Lemma for ~ dath .  The axis of perspectivity ` X ` is a line.
         (Contributed by NM, 21-Jul-2012.) $)
      dalem15 $p |- ( ( ph /\ Y =/= Z ) -> X e. N ) $=
        ( wne wa co wcel clvol eqid dalem14 wb chlt dalemkehl dalemyeo dalemzeo
        cfv 2lplnmj syl3anc adantr mpbird syl5eqel ) AQRUIZUJZPQRMUKZNUHVHVINUL
        ZQRJUKKUMVAZULZABCDEFGHIJKLOVKQCJUKZQRSTUAUBUEVKUNZUFUGVMUNUOAVJVLUPZVG
        AKUQULQOULROULVOABCDEFGHIJKLOQRSURABCDEFGHIJKLOQRSUSABCDEFGHIJKLOQRSUTO
        JKMNVKQRUAUCUDUEVNVBVCVDVEVF $.
    $}

    ${
      dalem16.m $e |- ./\ = ( meet ` K ) $.
      dalem16.o $e |- O = ( LPlanes ` K ) $.
      dalem16.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem16.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem16.d $e |- D = ( ( P .\/ Q ) ./\ ( S .\/ T ) ) $.
      dalem16.e $e |- E = ( ( Q .\/ R ) ./\ ( T .\/ U ) ) $.
      dalem16.f $e |- F = ( ( R .\/ P ) ./\ ( U .\/ S ) ) $.
      $( Lemma for ~ dath .  The atoms ` D ` , ` E ` , and ` F ` form a line of
         perspectivity.  This is Desargue's Theorem for the special case where
         planes ` Y ` and ` Z ` are different.  (Contributed by NM,
         7-Aug-2012.) $)
      dalem16 $p |- ( ( ph /\ Y =/= Z ) -> F .<_ ( D .\/ E ) ) $=
        ( wne wa wbr eqid dalem12 adantr wceq dalem10 dalem11 clat wcel cbs cfv
        co wb dalemkelat dalemdea atbase syl dalemeea dalemyeb dalemzeo syl3anc
        lplnbase latjle12 syl13anc mpbi2and chlt clln dalemkehl dalemdnee llni2
        latmcl syl31anc dalem15 llncmp mpbid breqtrrd ) ARSUKZULZLRSPVDZDKMVDZO
        ALWKOUMWIABCEFGHIJLMNOPQWKRSTUAUBUCUDUEUFUGWKUNZUJUOUPWJWLWKOUMZWLWKUQZ
        AWNWIADWKOUMZKWKOUMZWNABCDEFGHIJMNOPQWKRSTUAUBUCUDUEUFUGWMUHURABCEFGHIJ
        KMNOPQWKRSTUAUBUCUDUEUFUGWMUIUSANUTVAZDNVBVCZVAZKWSVAZWKWSVAZWPWQULWNVE
        ABCEFGHIJMNOQRSTVFZADBVAZWTABCDEFGHIJMNOPQRSTUAUBUCUDUEUFUGUHVGZBWSDNWS
        UNZUCVHVIAKBVAZXAABCEFGHIJKMNOPQRSTUAUBUCUDUEUFUGUIVJZBWSKNXFUCVHVIAWRR
        WSVASWSVAZXBXCABCEFGHIJMNOQRSTUEVKASQVAXIABCEFGHIJMNOQRSTVLWSQNSXFUEVNV
        IWSNPRSXFUDWCVMWSMNODKWKXFUAUBVOVPVQUPWJNVRVAZWLNVSVCZVAZWKXKVAWNWOVEAX
        JWIABCEFGHIJMNOQRSTVTZUPAXLWIAXJXDXGDKUKXLXMXEXHABCDEFGHIJKMNOPQRSTUAUB
        UCUDUEUFUGUHUIWABDKMNXKUBUCXKUNZWBWDUPABCEFGHIJMNOPXKQWKRSTUAUBUCUDXNUE
        UFUGWMWENOXKWLWKUAXNWFVMWGWH $.
    $}

    ${
      dalem17.o $e |- O = ( LPlanes ` K ) $.
      dalem17.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem17.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      $( Lemma for ~ dath .  When planes ` Y ` and ` Z ` are equal, the center
         of perspectivity ` C ` is in ` Y ` .  (Contributed by NM,
         1-Aug-2012.) $)
      dalem17 $p |- ( ( ph /\ Y = Z ) -> C .<_ Y ) $=
        ( wceq wa wbr dalemclrju adantr clat wcel cbs cfv dalemkelat dalempjqeb
        co dalemreb eqid latlej2 syl3anc syl6breqr dalemsjteb dalemueb breqtrrd
        simpr wb dalemyeb latjle12 syl13anc mpbi2and wi dalemceb chlt dalemkehl
        dalemrea dalemuea hlatjcl lattr mp2and ) ANOUCZUDZCFIJUNZLUEZVTNLUEZCNL
        UEZAWAVRABCDEFGHIJKLMNOPUFUGVSFNLUEZINLUEZWBAWDVRAFDEJUNZFJUNZNLAKUHUIZ
        WFKUJUKZUIFWIUIZFWGLUEABCDEFGHIJKLMNOPULZABCDEFGHIJKLMNOPRSUMABCDEFGHIJ
        KLMNOPSUOZWIJKLWFFWIUPZQRUQURUAUSUGVSIONLAIOLUEVRAIGHJUNZIJUNZOLAWHWNWI
        UIIWIUIZIWOLUEWKABCDEFGHIJKLMNOPRSUTABCDEFGHIJKLMNOPSVAZWIJKLWNIWMQRUQU
        RUBUSUGAVRVCVBAWDWEUDWBVDZVRAWHWJWPNWIUIZWRWKWLWQABCDEFGHIJKLMNOPTVEZWI
        JKLFINWMQRVFVGUGVHAWAWBUDWCVIZVRAWHCWIUIVTWIUIZWSXAWKABCDEFGHIJKLMNOPSV
        JAKVKUIFBUIIBUIXBABCDEFGHIJKLMNOPVLABCDEFGHIJKLMNOPVMABCDEFGHIJKLMNOPVN
        BWIJKFIWMRSVOURWTWIKLCVTNWMQVPVGUGVQ $.
    $}

    ${
      $d c A $.  $d c .\/ $.  $d c .<_ $.  $d c P $.  $d c Q $.  $d c R $.
      dalem18.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      $( Lemma for ~ dath .  Show that a dummy atom ` c ` exists outside of the
         ` Y ` and ` Z ` planes (when those planes are equal).  This requires
         that the projective space be 3-dimensional.  (Desargue's theorem
         doesn't always hold in 2 dimensions.)  (Contributed by NM,
         29-Jul-2012.) $)
      dalem18 $p |- ( ph -> E. c e. A -. c .<_ Y ) $=
        ( cv co wn wrex chlt wcel dalemkehl dalempea dalemqea dalemrea syl13anc
        wbr 3dim3 breq2i notbii rexbii sylibr ) APUBZDEJUCFJUCZLUMZUDZPBUEZUSNL
        UMZUDZPBUEAKUFUGDBUGEBUGFBUGVCABCDEFGHIJKLMNOQUHABCDEFGHIJKLMNOQUIABCDE
        FGHIJKLMNOQUJABCDEFGHIJKLMNOQUKBDEFJKLPSRTUNULVEVBPBVDVANUTUSLUAUOUPUQU
        R $.
    $}

    ${
      $d d c $.  $d d A $.  $d d C $.  $d d K $.  $d d .<_ $.  $d d Y $.
      dalem19.o $e |- O = ( LPlanes ` K ) $.
      dalem19.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem19.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      $( Lemma for ~ dath .  Show that a second dummy atom ` d ` exists outside
         of the ` Y ` and ` Z ` planes (when those planes are equal).
         (Contributed by NM, 15-Aug-2012.) $)
      dalem19 $p |- ( ( ( ( ph /\ Y = Z ) /\ c e. A ) /\ -. c .<_ Y ) ->
                  E. d e. A ( d =/= c /\ -. d .<_ Y /\ C .<_ ( c .\/ d ) ) ) $=
        ( wceq wa cv wcel wbr chlt cbs cfv wne w3a dalemkehl ad3antrrr dalemcea
        wn wrex simplr dalemyeb dalem17 ad2antrr simpr eqid atbtwnex syl33anc
        co ) ANOUEZUFZPUGZBUHZUFZVKNLUIURZUFKUJUHZCBUHZVLNKUKULZUHZCNLUIZVNQUGZ
        VKUMVTNLUIURCVKVTJVHLUIUNQBUSAVOVIVLVNABCDEFGHIJKLMNORUOUPAVPVIVLVNABCD
        EFGHIJKLMNORSTUAUBUCUQUPVJVLVNUTAVRVIVLVNABCDEFGHIJKLMNORUBVAUPVJVSVLVN
        ABCDEFGHIJKLMNORSTUAUBUCUDVBVCVMVNVDBVQCVKJKLNQVQVESTUAVFVG $.
    $}
  $}

  ${
    da.ps0 $e |- ( ps <-> ( ( c e. A /\ d e. A ) /\ -. c .<_ Y /\
       ( d =/= c /\ -. d .<_ Y /\ C .<_ ( c .\/ d ) ) ) ) $.
    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       15-Aug-2012.) $)
    dalemccea $p |- ( ps -> c e. A ) $=
      ( cv wcel wa wbr wn wne co w3a simp1l sylbi ) AGJZBKZHJZBKZLTFEMNZUBTOUBF
      EMNCTUBDPEMQZQUAIUAUCUDUERS $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       15-Aug-2012.) $)
    dalemddea $p |- ( ps -> d e. A ) $=
      ( cv wcel wa wbr wn wne co w3a simp1r sylbi ) AGJZBKZHJZBKZLTFEMNZUBTOUBF
      EMNCTUBDPEMQZQUCIUAUCUDUERS $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       15-Aug-2012.) $)
    dalem-ccly $p |- ( ps -> -. c .<_ Y ) $=
      ( cv wcel wa wbr wn wne co w3a simp2bi ) AGJZBKHJZBKLSFEMNTSOTFEMNCSTDPEM
      QIR $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       15-Aug-2012.) $)
    dalem-ddly $p |- ( ps -> -. d .<_ Y ) $=
      ( cv wcel wa wbr wn wne co w3a simp32 sylbi ) AGJZBKHJZBKLZTFEMNZUATOZUAF
      EMNZCTUADPEMZQQUEIUBUCUDUEUFRS $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       15-Aug-2012.) $)
    dalemccnedd $p |- ( ps -> c =/= d ) $=
      ( cv wcel wa wbr wn wne co w3a simp31 sylbi necomd ) AHJZGJZAUBBKUABKLZUB
      FEMNZUAUBOZUAFEMNZCUBUADPEMZQQUEIUCUDUEUFUGRST $.

    $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by NM,
       15-Aug-2012.) $)
    dalemclccjdd $p |- ( ps -> C .<_ ( c .\/ d ) ) $=
      ( cv wcel wa wbr wn wne co w3a simp33 sylbi ) AGJZBKHJZBKLZTFEMNZUATOZUAF
      EMNZCTUADPEMZQQUFIUBUCUDUEUFRS $.

    ${
      da.a1 $e |- A = ( Atoms ` K ) $.
      $( Lemma for ~ dath .  Frequently-used utility lemma.  (Contributed by
         NM, 15-Aug-2012.) $)
      dalemcceb $p |- ( ps -> c e. ( Base ` K ) ) $=
        ( cv wcel cbs cfv dalemccea eqid atbase syl ) AHLZBMTENOZMABCDFGHIJPBUA
        TEUAQKRS $.
    $}
  $}

  ${
    dalem.ph $e |- ( ph <-> ( ( ( K e. HL /\ C e. ( Base ` K ) )
    /\ ( P e. A /\ Q e. A /\ R e. A )
    /\ ( S e. A /\ T e. A /\ U e. A ) )
 /\ ( Y e. O /\ Z e. O )
 /\ ( ( -. C .<_ ( P .\/ Q ) /\ -. C .<_ ( Q .\/ R )
    /\ -. C .<_ ( R .\/ P ) )
    /\ ( -. C .<_ ( S .\/ T ) /\ -. C .<_ ( T .\/ U )
    /\ -. C .<_ ( U .\/ S ) )
    /\ ( C .<_ ( P .\/ S ) /\ C .<_ ( Q .\/ T )
    /\ C .<_ ( R .\/ U ) ) ) ) ) $.
    dalem.l $e |- .<_ = ( le ` K ) $.
    dalem.j $e |- .\/ = ( join ` K ) $.
    dalem.a $e |- A = ( Atoms ` K ) $.
    dalem.ps $e |- ( ps <-> ( ( c e. A /\ d e. A ) /\ -. c .<_ Y /\
       ( d =/= c /\ -. d .<_ Y /\ C .<_ ( c .\/ d ) ) ) ) $.
    $( Lemma for ~ dath .  Swap the ` Y ` and ` Z ` planes, along with dummy
       concurrency (center of perspectivity) atoms ` c ` and ` d ` , to allow
       reuse of analogous proofs.  (Contributed by NM, 17-Aug-2012.) $)
    dalemswapyzps $p |- ( ( ph /\ Y = Z /\ ps )
       -> ( ( d e. A /\ c e. A ) /\ -. d .<_ Z /\
       ( c =/= d /\ -. c .<_ Z /\ C .<_ ( d .\/ c ) ) ) ) $=
      ( wceq w3a cv wcel wa wbr wne dalemddea dalemccea jca 3ad2ant3 dalem-ddly
      wn co simp2 breq2d dalemccnedd dalem-ccly dalemclccjdd dalemkehl 3ad2ant1
      mtbid chlt hlatjcom syl3anc breqtrd 3jca ) AOPUDZBUEZRUFZCUGZQUFZCUGZUHZV
      MPMUIZUPVOVMUJZVOPMUIZUPZDVMVOKUQZMUIZUEBAVQVKBVNVPBCDKMOQRUCUKZBCDKMOQRU
      CULZUMUNVLVMOMUIZVRBAWFUPVKBCDKMOQRUCUOUNVLOPVMMAVKBURZUSVEVLVSWAWCBAVSVK
      BCDKMOQRUCUTUNVLVOOMUIZVTBAWHUPVKBCDKMOQRUCVAUNVLOPVOMWGUSVEVLDVOVMKUQZWB
      MBADWIMUIVKBCDKMOQRUCVBUNVLLVFUGZVPVNWIWBUDAVKWJBACDEFGHIJKLMNOPSVCVDBAVP
      VKWEUNBAVNVKWDUNCKLVOVMUAUBVGVHVIVJVJ $.

    ${
      dalemrotps.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      $( Lemma for ~ dath .  Rotate triangles ` Y = P Q R ` and ` Z = S T U `
         to allow reuse of analogous proofs.  (Contributed by NM,
         15-Aug-2012.) $)
      dalemrotps $p |- ( ( ph /\ ps ) -> ( ( c e. A /\ d e. A )
  /\ -. c .<_ ( ( Q .\/ R ) .\/ P )
  /\ ( d =/= c /\ -. d .<_ ( ( Q .\/ R ) .\/ P )
  /\ C .<_ ( c .\/ d ) ) ) ) $=
        ( wa cv wcel co wbr wn wne w3a dalemccea dalemddea adantl dalem-ccly wb
        jca dalemqrprot breq2d adantr mtbid dalemccnedd dalem-ddly dalemclccjdd
        syl6reqr necomd 3jca ) ABUEZQUFZCUGZRUFZCUGZUEZVJFGKUHEKUHZMUIZUJVLVJUK
        ZVLVOMUIZUJZDVJVLKUHMUIZULBVNABVKVMBCDKMOQRUCUMBCDKMOQRUCUNURUOVIVJOMUI
        ZVPBWAUJABCDKMOQRUCUPUOAWAVPUQBAOVOVJMAVOEFKUHGKUHOACDEFGHIJKLMNOPSUAUB
        USUDVFZUTVAVBVIVQVSVTBVQABVJVLBCDKMOQRUCVCVGUOVIVLOMUIZVRBWCUJABCDKMOQR
        UCVDUOAWCVRUQBAOVOVLMWBUTVAVBBVTABCDKMOQRUCVEUOVHVH $.
    $}

    $( Lemma for ~ dath .  Show that the dummy atoms form a line.  (Contributed
       by NM, 15-Aug-2012.) $)
    dalemcjden $p |- ( ( ph /\ ps ) -> ( c .\/ d ) e. ( LLines ` K ) ) $=
      ( wa chlt wcel cv wne co clln dalemkehl adantr dalemccea adantl dalemddea
      cfv dalemccnedd eqid llni2 syl31anc ) ABUDLUEUFZQUGZCUFZRUGZCUFZVBVDUHZVB
      VDKUILUJUPZUFAVABACDEFGHIJKLMNOPSUKULBVCABCDKMOQRUCUMUNBVEABCDKMOQRUCUOUN
      BVFABCDKMOQRUCUQUNCVBVDKLVGUAUBVGURUSUT $.

    ${
      $d c d A $.  $d d C $.  $d d K $.  $d c d .<_ $.  $d c d Y $.
      $d c .\/ $.  $d c P $.  $d c Q $.  $d c R $.  $d c Z $.  $d c ph $.
      dalem20.o $e |- O = ( LPlanes ` K ) $.
      dalem20.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem20.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      $( Lemma for ~ dath .  Show that a second dummy atom ` d ` exists outside
         of the ` Y ` and ` Z ` planes (when those planes are equal).
         (Contributed by NM, 14-Aug-2012.) $)
      dalem20 $p |- ( ( ph /\ Y = Z ) -> E. c E. d ps ) $=
        ( wceq wa cv wbr wn wne co w3a wrex wex dalem18 adantr dalem19 ex ancld
        wcel reximdva 3anass bitri 2exbii r2ex r19.42v rexbii 3bitr2ri sylib
        mpd ) AOPUGZUHZQUIZOMUJUKZRUIZVOULVQOMUJUKDVOVQKUMMUJUNZRCUOZUHZQCUOZBR
        UPQUPZVNVPQCUOZWAAWCVMACDEFGHIJKLMNOPQSTUAUBUEUQURVNVPVTQCVNVOCVBZUHZVP
        VSWEVPVSACDEFGHIJKLMNOPQRSTUAUBUDUEUFUSUTVAVCVLWBWDVQCVBUHZVPVRUHZUHZRU
        PQUPWGRCUOZQCUOWABWHQRBWFVPVRUNWHUCWFVPVRVDVEVFWGQRCCVGWIVTQCVPVRRCVHVI
        VJVK $.
    $}

    ${
      dalem21.m $e |- ./\ = ( meet ` K ) $.
      dalem21.o $e |- O = ( LPlanes ` K ) $.
      dalem21.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem21.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      $( Lemma for ~ dath .  Show that lines ` c d ` and ` P S ` intersect at
         an atom.  (Contributed by NM, 2-Aug-2012.) $)
      dalem21 $p |- ( ( ph /\ Y = Z /\ ps )
            -> ( ( c .\/ d ) ./\ ( P .\/ S ) ) e. A ) $=
        ( wceq w3a chlt wcel cv co clln cfv wne cp0 3ad2ant1 dalemcjden 3adant2
        dalemkehl dalempjsen wbr wn wa dalemply adantr dalemsly clat dalemkelat
        wb cbs dalempeb dalemseb dalemyeb latjle12 syl13anc mpbi2and dalem-ccly
        eqid 3adant3 adantl dalemcceb dalemddea atbase latlej1 syl3anc wi lattr
        syl llnbase mpand mtod nbrne2 syl2anc necomd cal hlatl dalempea hlatjcl
        dalemsea latmcl dalemcea dalemclccjdd dalemceb latlem12 atlen0 syl31anc
        dalemclpjs 2llnmat syl32anc ) APQUIZBUJZLUKULZRUMZSUMZKUNZLUOUPZULZEHKU
        NZXSULZXRYAUQXRYANUNZLURUPZUQZYCCULAXMXOBACDEFGHIJKLMOPQTVBZUSABXTXMABC
        DEFGHIJKLMOPQRSTUAUBUCUDUTZVAAXMYBBACDEFGHIJKLMOPQTUAUBUCUFUGVCUSXNYAXR
        XNYAPMVDZXRPMVDZVEZYAXRUQAXMYHBAXMVFEPMVDZHPMVDZYHAYKXMACDEFGHIJKLMOPQT
        UAUBUCUFUGVGVHACDEFGHIJKLMOPQTUAUBUCUHVIAYKYLVFYHVLZXMALVJULZELVMUPZULH
        YOULPYOULZYMACDEFGHIJKLMOPQTVKZACDEFGHIJKLMOPQTUCVNACDEFGHIJKLMOPQTUCVO
        ACDEFGHIJKLMOPQTUFVPZYOKLMEHPYOWAZUAUBVQVRVHVSWBABYJXMABVFZYIXPPMVDZBUU
        AVEABCDKMPRSUDVTWCYTXPXRMVDZYIUUAYTYNXPYOULZXQYOULZUUBAYNBYQVHZBUUCABCD
        KLMPRSUDUCWDWCZBUUDABXQCULUUDBCDKMPRSUDWECYOXQLYSUCWFWKWCYOKLMXPXQYSUAU
        BWGWHYTYNUUCXRYOULZYPUUBYIVFUUAWIUUEUUFYTXTUUGYGYOLXSXRYSXSWAZWLWKZAYPB
        YRVHYOLMXPXRPYSUAWJVRWMWNVAYAXRPMWOWPWQABYEXMYTLWRULZYCYOULZDCULZDYCMVD
        ZYEAUUJBAXOUUJYFLWSWKVHYTYNUUGYAYOULZUUKUUEUUIAUUNBAXOECULHCULUUNYFACDE
        FGHIJKLMOPQTWTACDEFGHIJKLMOPQTXBCYOKLEHYSUBUCXAWHVHZYOLNXRYAYSUEXCWHAUU
        LBACDEFGHIJKLMOPQTUAUBUCUFUGXDVHYTDXRMVDZDYAMVDZUUMBUUPABCDKMPRSUDXEWCA
        UUQBACDEFGHIJKLMOPQTXJVHYTYNDYOULZUUGUUNUUPUUQVFUUMVLUUEAUURBACDEFGHIJK
        LMOPQTUCXFVHUUIUUOYOLMNDXRYAYSUAUEXGVRVSCYODLMYCYDYSUAYDWAZUCXHXIVACLNX
        SXRYAYDUEUUSUCUUHXKXL $.
    $}

    ${
      dalem22.o $e |- O = ( LPlanes ` K ) $.
      dalem22.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem22.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      $( Lemma for ~ dath .  Show that lines ` c d ` and ` P S ` determine a
         plane.  (Contributed by NM, 2-Aug-2012.) $)
      dalem22 $p |- ( ( ph /\ Y = Z /\ ps )
        -> ( ( c .\/ d ) .\/ ( P .\/ S ) ) e. O ) $=
        ( wceq w3a cv co cmee cfv wcel eqid dalem21 wb wa chlt dalemkehl adantr
        clln dalemcjden dalempjsen 2llnmj syl3anc 3adant2 mpbid ) AOPUGZBUHQUIR
        UIKUJZEHKUJZLUKULZUJCUMZVIVJKUJNUMZABCDEFGHIJKLMVKNOPQRSTUAUBUCVKUNZUDU
        EUFUOABVLVMUPZVHABUQLURUMZVILVAULZUMVJVQUMZVOAVPBACDEFGHIJKLMNOPSUSUTAB
        CDEFGHIJKLMNOPQRSTUAUBUCVBAVRBACDEFGHIJKLMNOPSTUAUBUDUEVCUTCNKLVKVQVIVJ
        UAVNUBVQUNUDVDVEVFVG $.
    $}

    ${
      dalem23.m $e |- ./\ = ( meet ` K ) $.
      dalem23.o $e |- O = ( LPlanes ` K ) $.
      dalem23.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem23.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem23.g $e |- G = ( ( c .\/ P ) ./\ ( d .\/ S ) ) $.
      $( Lemma for ~ dath .  Show that auxiliary atom ` G ` is an atom.
         (Contributed by NM, 2-Aug-2012.) $)
      dalem23 $p |- ( ( ph /\ Y = Z /\ ps ) -> G e. A ) $=
        ( wceq cv co wcel wa chlt dalemkehl adantr dalemccea dalempea dalemddea
        w3a adantl dalemsea syl122anc 3adant2 dalem22 eqeltrd clln cfv 3ad2ant1
        hlatj4 wb wne wn dalemply dalem-ccly nbrne2 syl2an necomd eqid syl31anc
        wbr llni2 3ad2ant3 dalemsly 3adant3 dalem-ddly syl2anc syl3anc syl5eqel
        2llnmj mpbird ) AQRUKZBVBZKSULZELUMZTULZHLUMZOUMZCUJWOWTCUNZWQWSLUMZPUN
        ZWOXBWPWRLUMEHLUMLUMZPABXBXDUKZWNABUOZMUPUNZWPCUNZECUNZWRCUNZHCUNZXEAXG
        BACDEFGHIJLMNPQRUAUQZURZBXHABCDLNQSTUEUSVCZAXIBACDEFGHIJLMNPQRUAUTURZBX
        JABCDLNQSTUEVAZVCAXKBACDEFGHIJLMNPQRUAVDZURCWPEWRHLMUCUDVLVEVFABCDEFGHI
        JLMNPQRSTUAUBUCUDUEUGUHUIVGVHWOXGWQMVIVJZUNZWSXRUNZXAXCVMAWNXGBXLVKZABX
        SWNXFXGXHXIWPEVNXSXMXNXOXFEWPAEQNWCWPQNWCVOEWPVNBACDEFGHIJLMNPQRUAUBUCU
        DUGUHVPBCDLNQSTUEVQEWPQNVRVSVTCWPELMXRUCUDXRWAZWDWBVFWOXGXJXKWRHVNXTYAB
        AXJWNXPWEAWNXKBXQVKWOHWRWOHQNWCZWRQNWCVOZHWRVNAWNYCBACDEFGHIJLMNPQRUAUB
        UCUDUIWFWGBAYDWNBCDLNQSTUEWHWEHWRQNVRWIVTCWRHLMXRUCUDYBWDWBCPLMOXRWQWSU
        CUFUDYBUGWLWJWMWK $.

      $( Lemma for ~ dath .  Show that auxiliary atom ` G ` is outside of plane
         ` Y ` .  (Contributed by NM, 2-Aug-2012.) $)
      dalem24 $p |- ( ( ph /\ Y = Z /\ ps ) -> -. G .<_ Y ) $=
        ( wceq w3a wbr wn co cp0 cfv cv oveq1i col wcel cbs chlt dalemkehl hlol
        syl 3ad2ant1 dalemccea 3ad2ant3 dalempea eqid hlatjcl syl3anc dalemddea
        dalemsea dalemyeb latmmdir syl13anc syl5eq hlatjcom dalemply dalem-ccly
        2atjm syl132anc eqtrd dalemsly 3adant3 dalem-ddly oveq12d wne dalempnes
        oveq1d cal wb hlatl atnem0 mpbid 3eqtrd dalem23 atnle mpbird ) AQRUKZBU
        LZKQNUMUNZKQOUOZMUPUQZUKZXCXESURZELUOZQOUOZTURZHLUOZQOUOZOUOZEHOUOZXFXC
        XEXIXLOUOZQOUOZXNKXPQOUJUSXCMUTVAZXIMVBUQZVAZXLXSVAZQXSVAZXQXNUKAXBXRBA
        MVCVAZXRACDEFGHIJLMNPQRUAVDZMVEVFVGXCYCXHCVAZECVAZXTAXBYCBYDVGZBAYEXBBC
        DLNQSTUEVHVIZAXBYFBACDEFGHIJLMNPQRUAVJZVGZCXSLMXHEXSVKZUCUDVLVMXCYCXKCV
        AZHCVAZYAYGBAYLXBBCDLNQSTUEVNVIZAXBYMBACDEFGHIJLMNPQRUAVOZVGZCXSLMXKHYK
        UCUDVLVMAXBYBBACDEFGHIJLMNPQRUAUGVPVGZXSMOXIXLQYKUFVQVRVSXCXJEXMHOXCXJE
        XHLUOZQOUOZEXCXIYRQOXCYCYEYFXIYRUKYGYHYJCLMXHEUCUDVTVMWLXCYCYFYEYBEQNUM
        ZXHQNUMUNZYSEUKYGYJYHYQAXBYTBACDEFGHIJLMNPQRUAUBUCUDUGUHWAVGBAUUAXBBCDL
        NQSTUEWBVICXSEXHLMNOQYKUBUCUFUDWCWDWEXCXMHXKLUOZQOUOZHXCXLUUBQOXCYCYLYM
        XLUUBUKYGYNYPCLMXKHUCUDVTVMWLXCYCYMYLYBHQNUMZXKQNUMUNZUUCHUKYGYPYNYQAXB
        UUDBACDEFGHIJLMNPQRUAUBUCUDUIWFWGBAUUEXBBCDLNQSTUEWHVICXSHXKLMNOQYKUBUC
        UFUDWCWDWEWIAXBXOXFUKZBAEHWJZUUFACDEFGHIJLMNPQRUAUBUCUDUGUHWKAMWMVAZYFY
        MUUGUUFWNAYCUUHYDMWOVFZYIYOCEHMOXFUFXFVKZUDWPVMWQVGWRXCUUHKCVAYBXDXGWNA
        XBUUHBUUIVGABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJWSYQCXSKMNOQXFYKUBUF
        UUJUDWTVMXA $.

      $( Lemma for ~ dath .  Show that the dummy center of perspectivity ` c `
         is different from auxiliary atom ` G ` .  (Contributed by NM,
         3-Aug-2012.) $)
      dalem25 $p |- ( ( ph /\ Y = Z /\ ps ) -> c =/= G ) $=
        ( wceq w3a wne cv dalemcnes 3ad2ant1 wa co dalemclccjdd 3ad2ant3 adantr
        wbr clat wcel cbs cfv dalemkelat chlt dalemkehl dalemccea dalempea eqid
        hlatjcl syl3anc dalemddea dalemsea latmle2 syl5eqbr hlatjcom breqtrd wb
        simpr hlatlej2 dalemcceb atbase syl latjle12 syl13anc mpbi2and dalemceb
        eqbrtrd wi lattr mp2and dalemyeb latmlem1 mpd dalem17 3adant3 latleeqm1
        mpbid wn dalemsly dalem-ddly 2atjm syl132anc 3brtr3d cal hlatl dalemcea
        atcmp ex necon3d ) AQRUKZBULZDHUMZSUNZKUMAXNXPBACDEFGHIJLMNPQRUAUBUCUDU
        OUPXOXQKDHXOXQKUKZDHUKZXOXRUQZDHNVBZXSXTDQOURZHTUNZLURZQOURZDHNXTDYDNVB
        ZYBYENVBZXTDXQYCLURZNVBZYHYDNVBZYFXOYIXRBAYIXNBCDLNQSTUEUSUTVAXTXQYDNVB
        ZYCYDNVBZYJXTXQKYDNXOXRWBXOKYDNVBXRXOKYCHLURZYDNXOKXQELURZYMOURZYMNUJXO
        MVCVDZYNMVEVFZVDZYMYQVDZYOYMNVBAXNYPBACDEFGHIJLMNPQRUAVGUPZXOMVHVDZXQCV
        DZECVDZYRAXNUUABACDEFGHIJLMNPQRUAVIZUPZBAUUBXNBCDLNQSTUEVJUTZAXNUUCBACD
        EFGHIJLMNPQRUAVKUPCYQLMXQEYQVLZUCUDVMVNXOUUAYCCVDZHCVDZYSUUEBAUUHXNBCDL
        NQSTUEVOZUTZAXNUUIBACDEFGHIJLMNPQRUAVPZUPZCYQLMYCHUUGUCUDVMVNYQMNOYNYMU
        UGUBUFVQVNVRXOUUAUUHUUIYMYDUKUUEUUKUUMCLMYCHUCUDVSVNVTVAWKXOYLXRXOUUAUU
        IUUHYLUUEUUMUUKCHYCLMNUBUCUDWCVNVAXOYKYLUQYJWAZXRXOYPXQYQVDZYCYQVDZYDYQ
        VDZUUNYTBAUUOXNBCDLMNQSTUEUDWDUTBAUUPXNBUUHUUPUUJCYQYCMUUGUDWEWFUTXOUUA
        UUIUUHUUQUUEUUMUUKCYQLMHYCUUGUCUDVMVNZYQLMNXQYCYDUUGUBUCWGWHVAWIXOYIYJU
        QYFWLZXRXOYPDYQVDZYHYQVDZUUQUUSYTAXNUUTBACDEFGHIJLMNPQRUAUDWJUPZXOUUAUU
        BUUHUVAUUEUUFUUKCYQLMXQYCUUGUCUDVMVNUURYQMNDYHYDUUGUBWMWHVAWNXOYFYGWLZX
        RXOYPUUTUUQQYQVDZUVCYTUVBUURAXNUVDBACDEFGHIJLMNPQRUAUGWOUPZYQMNODYDQUUG
        UBUFWPWHVAWQXOYBDUKZXRXODQNVBZUVFAXNUVGBACDEFGHIJLMNPQRUAUBUCUDUGUHUIWR
        WSXOYPUUTUVDUVGUVFWAYTUVBUVEYQMNODQUUGUBUFWTVNXAVAXOYEHUKZXRXOUUAUUIUUH
        UVDHQNVBZYCQNVBXBZUVHUUEUUMUUKUVEAXNUVIBACDEFGHIJLMNPQRUAUBUCUDUIXCWSBA
        UVJXNBCDLNQSTUEXDUTCYQHYCLMNOQUUGUBUCUFUDXEXFVAXGXOYAXSWAZXRAXNUVKBAMXH
        VDZDCVDUUIUVKAUUAUVLUUDMXIWFACDEFGHIJLMNPQRUAUBUCUDUGUHXJUULCDHMNUBUDXK
        VNUPVAXAXLXMWQ $.

      $( Lemma for ~ dath .  Show that the line ` G P ` intersects the dummy
         center of perspectivity ` c ` .  (Contributed by NM, 8-Aug-2012.) $)
      dalem27 $p |- ( ( ph /\ Y = Z /\ ps ) -> c .<_ ( G .\/ P ) ) $=
        ( wceq w3a cv wbr clat wcel cbs dalemkelat 3ad2ant1 dalemkehl dalemccea
        chlt 3ad2ant3 dalempea eqid hlatjcl syl3anc dalemddea dalemsea syl5eqbr
        co cfv latmle1 wne wi dalem23 wn dalemply dalem24 nbrne2 necomd syl2anc
        wa hlatexch2 syl131anc mpd ) AQRUKZBULZKSUMZELVKZNUNZWIKELVKNUNZWHKWJTU
        MZHLVKZOVKZWJNUJWHMUOUPZWJMUQVLZUPZWNWQUPZWOWJNUNAWGWPBACDEFGHIJLMNPQRU
        AURUSWHMVBUPZWICUPZECUPZWRAWGWTBACDEFGHIJLMNPQRUAUTUSZBAXAWGBCDLNQSTUEV
        AVCZAWGXBBACDEFGHIJLMNPQRUAVDUSZCWQLMWIEWQVEZUCUDVFVGWHWTWMCUPZHCUPZWSX
        CBAXGWGBCDLNQSTUEVHVCAWGXHBACDEFGHIJLMNPQRUAVIUSCWQLMWMHXFUCUDVFVGWQMNO
        WJWNXFUBUFVMVGVJWHWTKCUPXAXBKEVNZWKWLVOXCABCDEFGHIJKLMNOPQRSTUAUBUCUDUE
        UFUGUHUIUJVPXDXEWHEQNUNZKQNUNVQZXIAWGXJBACDEFGHIJLMNPQRUAUBUCUDUGUHVRUS
        ABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJVSXJXKWCEKEKQNVTWAWBCKWIELMNUBU
        CUDWDWEWF $.

      $( Lemma for ~ dath .  Lemma ~ dalem27 expressed differently.
         (Contributed by NM, 4-Aug-2012.) $)
      dalem28 $p |- ( ( ph /\ Y = Z /\ ps ) -> P .<_ ( G .\/ c ) ) $=
        ( wceq w3a cv co wbr dalem27 chlt wcel wne dalemkehl 3ad2ant1 dalemccea
        wi 3ad2ant3 dalempea dalem23 dalem25 hlatexch1 syl131anc mpd ) AQRUKZBU
        LZSUMZKELUNNUOZEKVMLUNNUOZABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUPVLM
        UQURZVMCURZECURZKCURVMKUSVNVOVCAVKVPBACDEFGHIJLMNPQRUAUTVABAVQVKBCDLNQS
        TUEVBVDAVKVRBACDEFGHIJLMNPQRUAVEVAABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHU
        IUJVFABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJVGCVMEKLMNUBUCUDVHVIVJ $.
    $}

    ${
      dalem29.m $e |- ./\ = ( meet ` K ) $.
      dalem29.o $e |- O = ( LPlanes ` K ) $.
      dalem29.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem29.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem29.h $e |- H = ( ( c .\/ Q ) ./\ ( d .\/ T ) ) $.
      $( Lemma for ~ dath .  Analogue of ~ dalem23 for ` H ` .  (Contributed by
         NM, 2-Aug-2012.) $)
      dalem29 $p |- ( ( ph /\ Y = Z /\ ps ) -> H e. A ) $=
        ( wceq w3a chlt wcel cbs cfv wa co wbr wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid eqid dalem23 syl3anc ) AQRUKZBULM
        UMUNDMUOUPUNUQFCUNGCUNECUNULICUNJCUNHCUNULULFGLURZELURZPUNIJLURZHLURZPU
        NUQDVNNUSVDDGELURNUSVDDEFLURNUSVDULDVPNUSVDDJHLURNUSVDDHILURNUSVDULDFIL
        URNUSDGJLURNUSDEHLURNUSULULULZVOVQUKZSVEZCUNTVEZCUNUQVTVONUSVDWAVTUTWAV
        ONUSVDDVTWALURNUSULULZKCUNAVMVRBACDEFGHIJLMNPQRUAUBUCUDUHUIVAVBAVMVSBAC
        DEFGHIJLMNPQRUAUBUCUDUHUIVCVFABWBVMABCDEFGHIJLMNPQRSTUAUBUCUDUEUHVGVHVR
        WBCDFGEIJHKLMNOPVOVQSTVRVIUBUCUDWBVIUFUGVOVJVQVJUJVKVL $.

      $( Lemma for ~ dath .  Analogue of ~ dalem24 for ` H ` .  (Contributed by
         NM, 3-Aug-2012.) $)
      dalem30 $p |- ( ( ph /\ Y = Z /\ ps ) -> -. H .<_ Y ) $=
        ( wceq w3a wbr co chlt wcel cbs cfv wa wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid eqid dalem24 dalemqrprot syl6reqr
        syl3anc wb breq2d mtbird ) AQRUKZBULZKQNUMZKFGLUNZELUNZNUMZVSMUOUPDMUQU
        RUPUSFCUPGCUPECUPULICUPJCUPHCUPULULWBPUPIJLUNZHLUNZPUPUSDWANUMVDDGELUNN
        UMVDDEFLUNZNUMVDULDWDNUMVDDJHLUNNUMVDDHILUNNUMVDULDFILUNNUMDGJLUNNUMDEH
        LUNNUMULULULZWBWEUKZSVEZCUPTVEZCUPUSWIWBNUMVDWJWIUTWJWBNUMVDDWIWJLUNNUM
        ULULZWCVDAVRWGBACDEFGHIJLMNPQRUAUBUCUDUHUIVAVBAVRWHBACDEFGHIJLMNPQRUAUB
        UCUDUHUIVCVFABWKVRABCDEFGHIJLMNPQRSTUAUBUCUDUEUHVGVHWGWKCDFGEIJHKLMNOPW
        BWESTWGVIUBUCUDWKVIUFUGWBVJWEVJUJVKVNAVRVTWCVOBAQWBKNAWBWFGLUNQACDEFGHI
        JLMNPQRUAUCUDVLUHVMVPVBVQ $.

      $( Lemma for ~ dath .  Analogue of ~ dalem25 for ` H ` .  (Contributed by
         NM, 4-Aug-2012.)  (New usage is discouraged.) $)
      dalem31N $p |- ( ( ph /\ Y = Z /\ ps ) -> c =/= H ) $=
        ( wceq w3a chlt wcel cbs cfv wa co wbr wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid eqid dalem25 syl3anc ) AQRUKZBULM
        UMUNDMUOUPUNUQFCUNGCUNECUNULICUNJCUNHCUNULULFGLURZELURZPUNIJLURZHLURZPU
        NUQDVNNUSVDDGELURNUSVDDEFLURNUSVDULDVPNUSVDDJHLURNUSVDDHILURNUSVDULDFIL
        URNUSDGJLURNUSDEHLURNUSULULULZVOVQUKZSVEZCUNTVEZCUNUQVTVONUSVDWAVTUTWAV
        ONUSVDDVTWALURNUSULULZVTKUTAVMVRBACDEFGHIJLMNPQRUAUBUCUDUHUIVAVBAVMVSBA
        CDEFGHIJLMNPQRUAUBUCUDUHUIVCVFABWBVMABCDEFGHIJLMNPQRSTUAUBUCUDUEUHVGVHV
        RWBCDFGEIJHKLMNOPVOVQSTVRVIUBUCUDWBVIUFUGVOVJVQVJUJVKVL $.

      $( Lemma for ~ dath .  Analogue of ~ dalem27 for ` H ` .  (Contributed by
         NM, 8-Aug-2012.) $)
      dalem32 $p |- ( ( ph /\ Y = Z /\ ps ) -> c .<_ ( H .\/ Q ) ) $=
        ( wceq w3a chlt wcel cbs cfv wa co wbr wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid eqid dalem27 syl3anc ) AQRUKZBULM
        UMUNDMUOUPUNUQFCUNGCUNECUNULICUNJCUNHCUNULULFGLURZELURZPUNIJLURZHLURZPU
        NUQDVNNUSVDDGELURNUSVDDEFLURNUSVDULDVPNUSVDDJHLURNUSVDDHILURNUSVDULDFIL
        URNUSDGJLURNUSDEHLURNUSULULULZVOVQUKZSVEZCUNTVEZCUNUQVTVONUSVDWAVTUTWAV
        ONUSVDDVTWALURNUSULULZVTKFLURNUSAVMVRBACDEFGHIJLMNPQRUAUBUCUDUHUIVAVBAV
        MVSBACDEFGHIJLMNPQRUAUBUCUDUHUIVCVFABWBVMABCDEFGHIJLMNPQRSTUAUBUCUDUEUH
        VGVHVRWBCDFGEIJHKLMNOPVOVQSTVRVIUBUCUDWBVIUFUGVOVJVQVJUJVKVL $.

      $( Lemma for ~ dath .  Analogue of ~ dalem28 for ` H ` .  (Contributed by
         NM, 4-Aug-2012.) $)
      dalem33 $p |- ( ( ph /\ Y = Z /\ ps ) -> Q .<_ ( H .\/ c ) ) $=
        ( wceq w3a chlt wcel cbs cfv wa co wbr wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid eqid dalem28 syl3anc ) AQRUKZBULM
        UMUNDMUOUPUNUQFCUNGCUNECUNULICUNJCUNHCUNULULFGLURZELURZPUNIJLURZHLURZPU
        NUQDVNNUSVDDGELURNUSVDDEFLURNUSVDULDVPNUSVDDJHLURNUSVDDHILURNUSVDULDFIL
        URNUSDGJLURNUSDEHLURNUSULULULZVOVQUKZSVEZCUNTVEZCUNUQVTVONUSVDWAVTUTWAV
        ONUSVDDVTWALURNUSULULZFKVTLURNUSAVMVRBACDEFGHIJLMNPQRUAUBUCUDUHUIVAVBAV
        MVSBACDEFGHIJLMNPQRUAUBUCUDUHUIVCVFABWBVMABCDEFGHIJLMNPQRSTUAUBUCUDUEUH
        VGVHVRWBCDFGEIJHKLMNOPVOVQSTVRVIUBUCUDWBVIUFUGVOVJVQVJUJVKVL $.
    $}

    ${
      dalem34.m $e |- ./\ = ( meet ` K ) $.
      dalem34.o $e |- O = ( LPlanes ` K ) $.
      dalem34.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem34.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem34.i $e |- I = ( ( c .\/ R ) ./\ ( d .\/ U ) ) $.
      $( Lemma for ~ dath .  Analogue of ~ dalem23 for ` I ` .  (Contributed by
         NM, 2-Aug-2012.) $)
      dalem34 $p |- ( ( ph /\ Y = Z /\ ps ) -> I e. A ) $=
        ( wceq w3a chlt wcel cbs cfv wa co wbr wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid eqid dalem29 syl3anc ) AQRUKZBULM
        UMUNDMUOUPUNUQFCUNGCUNECUNULICUNJCUNHCUNULULFGLURZELURZPUNIJLURZHLURZPU
        NUQDVNNUSVDDGELURNUSVDDEFLURNUSVDULDVPNUSVDDJHLURNUSVDDHILURNUSVDULDFIL
        URNUSDGJLURNUSDEHLURNUSULULULZVOVQUKZSVEZCUNTVEZCUNUQVTVONUSVDWAVTUTWAV
        ONUSVDDVTWALURNUSULULZKCUNAVMVRBACDEFGHIJLMNPQRUAUBUCUDUHUIVAVBAVMVSBAC
        DEFGHIJLMNPQRUAUBUCUDUHUIVCVFABWBVMABCDEFGHIJLMNPQRSTUAUBUCUDUEUHVGVHVR
        WBCDFGEIJHKLMNOPVOVQSTVRVIUBUCUDWBVIUFUGVOVJVQVJUJVKVL $.

      $( Lemma for ~ dath .  Analogue of ~ dalem24 for ` I ` .  (Contributed by
         NM, 3-Aug-2012.) $)
      dalem35 $p |- ( ( ph /\ Y = Z /\ ps ) -> -. I .<_ Y ) $=
        ( wceq w3a wbr co chlt wcel cbs cfv wa wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid eqid dalem30 dalemqrprot syl6reqr
        syl3anc wb breq2d mtbird ) AQRUKZBULZKQNUMZKFGLUNZELUNZNUMZVSMUOUPDMUQU
        RUPUSFCUPGCUPECUPULICUPJCUPHCUPULULWBPUPIJLUNZHLUNZPUPUSDWANUMVDDGELUNN
        UMVDDEFLUNZNUMVDULDWDNUMVDDJHLUNNUMVDDHILUNNUMVDULDFILUNNUMDGJLUNNUMDEH
        LUNNUMULULULZWBWEUKZSVEZCUPTVEZCUPUSWIWBNUMVDWJWIUTWJWBNUMVDDWIWJLUNNUM
        ULULZWCVDAVRWGBACDEFGHIJLMNPQRUAUBUCUDUHUIVAVBAVRWHBACDEFGHIJLMNPQRUAUB
        UCUDUHUIVCVFABWKVRABCDEFGHIJLMNPQRSTUAUBUCUDUEUHVGVHWGWKCDFGEIJHKLMNOPW
        BWESTWGVIUBUCUDWKVIUFUGWBVJWEVJUJVKVNAVRVTWCVOBAQWBKNAWBWFGLUNQACDEFGHI
        JLMNPQRUAUCUDVLUHVMVPVBVQ $.

      $( Lemma for ~ dath .  Analogue of ~ dalem27 for ` I ` .  (Contributed by
         NM, 8-Aug-2012.) $)
      dalem36 $p |- ( ( ph /\ Y = Z /\ ps ) -> c .<_ ( I .\/ R ) ) $=
        ( wceq w3a chlt wcel cbs cfv wa co wbr wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid eqid dalem32 syl3anc ) AQRUKZBULM
        UMUNDMUOUPUNUQFCUNGCUNECUNULICUNJCUNHCUNULULFGLURZELURZPUNIJLURZHLURZPU
        NUQDVNNUSVDDGELURNUSVDDEFLURNUSVDULDVPNUSVDDJHLURNUSVDDHILURNUSVDULDFIL
        URNUSDGJLURNUSDEHLURNUSULULULZVOVQUKZSVEZCUNTVEZCUNUQVTVONUSVDWAVTUTWAV
        ONUSVDDVTWALURNUSULULZVTKGLURNUSAVMVRBACDEFGHIJLMNPQRUAUBUCUDUHUIVAVBAV
        MVSBACDEFGHIJLMNPQRUAUBUCUDUHUIVCVFABWBVMABCDEFGHIJLMNPQRSTUAUBUCUDUEUH
        VGVHVRWBCDFGEIJHKLMNOPVOVQSTVRVIUBUCUDWBVIUFUGVOVJVQVJUJVKVL $.

      $( Lemma for ~ dath .  Analogue of ~ dalem28 for ` I ` .  (Contributed by
         NM, 4-Aug-2012.) $)
      dalem37 $p |- ( ( ph /\ Y = Z /\ ps ) -> R .<_ ( I .\/ c ) ) $=
        ( wceq w3a chlt wcel cbs cfv wa co wbr wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid eqid dalem33 syl3anc ) AQRUKZBULM
        UMUNDMUOUPUNUQFCUNGCUNECUNULICUNJCUNHCUNULULFGLURZELURZPUNIJLURZHLURZPU
        NUQDVNNUSVDDGELURNUSVDDEFLURNUSVDULDVPNUSVDDJHLURNUSVDDHILURNUSVDULDFIL
        URNUSDGJLURNUSDEHLURNUSULULULZVOVQUKZSVEZCUNTVEZCUNUQVTVONUSVDWAVTUTWAV
        ONUSVDDVTWALURNUSULULZGKVTLURNUSAVMVRBACDEFGHIJLMNPQRUAUBUCUDUHUIVAVBAV
        MVSBACDEFGHIJLMNPQRUAUBUCUDUHUIVCVFABWBVMABCDEFGHIJLMNPQRSTUAUBUCUDUEUH
        VGVHVRWBCDFGEIJHKLMNOPVOVQSTVRVIUBUCUDWBVIUFUGVOVJVQVJUJVKVL $.
    $}

    ${
      dalem38.m $e |- ./\ = ( meet ` K ) $.
      dalem38.o $e |- O = ( LPlanes ` K ) $.
      dalem38.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem38.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem38.g $e |- G = ( ( c .\/ P ) ./\ ( d .\/ S ) ) $.
      dalem38.h $e |- H = ( ( c .\/ Q ) ./\ ( d .\/ T ) ) $.
      dalem38.i $e |- I = ( ( c .\/ R ) ./\ ( d .\/ U ) ) $.
      $( Lemma for ~ dath .  Plane ` Y ` belongs to the 3-dimensional volume
         ` G H I c ` .  (Contributed by NM, 5-Aug-2012.) $)
      dalem38 $p |- ( ( ph /\ Y = Z /\ ps )
    -> Y .<_ ( ( ( G .\/ H ) .\/ I ) .\/ c ) ) $=
        ( wceq w3a co cv wbr dalem28 dalem33 clat wcel cbs cfv wa wi dalemkelat
        3ad2ant1 dalempeb chlt dalemkehl dalem23 dalemccea eqid hlatjcl syl3anc
        3ad2ant3 dalemqeb dalem29 latjlej12 syl122anc mp2and dalemcceb latjjdir
        atbase syl syl13anc breqtrrd dalem37 dalempjqeb latjcl dalemreb dalem34
        syl5eqbr ) ASTUOZBUPZSEFNUQZGNUQZKLNUQZMNUQUAURZNUQZPUJWQWSWTXANUQZMXAN
        UQZNUQZXBPWQWRXCPUSZGXDPUSZWSXEPUSZWQWRKXANUQZLXANUQZNUQZXCPWQEXIPUSZFX
        JPUSZWRXKPUSZABCDEFGHIJKNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUTABCDEFGHIJLNOP
        QRSTUAUBUCUDUEUFUGUHUIUJUKUMVAWQOVBVCZEOVDVEZVCZXIXPVCZFXPVCZXJXPVCZXLX
        MVFXNVGAWPXOBACDEFGHIJNOPRSTUCVHVIZAWPXQBACDEFGHIJNOPRSTUCUFVJVIWQOVKVC
        ZKCVCZXACVCZXRAWPYBBACDEFGHIJNOPRSTUCVLVIZABCDEFGHIJKNOPQRSTUAUBUCUDUEU
        FUGUHUIUJUKULVMZBAYDWPBCDNPSUAUBUGVNVRZCXPNOKXAXPVOZUEUFVPVQAWPXSBACDEF
        GHIJNOPRSTUCUFVSVIWQYBLCVCZYDXTYEABCDEFGHIJLNOPQRSTUAUBUCUDUEUFUGUHUIUJ
        UKUMVTZYGCXPNOLXAYHUEUFVPVQXPNOPXJEXIFYHUDUEWAWBWCWQXOKXPVCZLXPVCZXAXPV
        CZXCXKUOYAWQYCYKYFCXPKOYHUFWFWGWQYIYLYJCXPLOYHUFWFWGBAYMWPBCDNOPSUAUBUG
        UFWDVRZXPNOKLXAYHUEWEWHWIABCDEFGHIJMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUNWJWQ
        XOWRXPVCZXCXPVCZGXPVCZXDXPVCZXFXGVFXHVGYAAWPYOBACDEFGHIJNOPRSTUCUEUFWKV
        IWQXOWTXPVCZYMYPYAWQYBYCYIYSYEYFYJCXPNOKLYHUEUFVPVQZYNXPNOWTXAYHUEWLVQA
        WPYQBACDEFGHIJNOPRSTUCUFWMVIWQYBMCVCZYDYRYEABCDEFGHIJMNOPQRSTUAUBUCUDUE
        UFUGUHUIUJUKUNWNZYGCXPNOMXAYHUEUFVPVQXPNOPXDWRXCGYHUDUEWAWBWCWQXOYSMXPV
        CZYMXBXEUOYAYTWQUUAUUCUUBCXPMOYHUFWFWGYNXPNOWTMXAYHUEWEWHWIWO $.

      $( Lemma for ~ dath .  Auxiliary atoms ` G ` , ` H ` , and ` I ` are not
         colinear.  (Contributed by NM, 4-Aug-2012.) $)
      dalem39 $p |- ( ( ph /\ Y = Z /\ ps ) -> -. H .<_ ( I .\/ G ) ) $=
        ( wceq w3a co wbr cv chlt wcel clvol cfv wn dalemkehl 3ad2ant1 dalemyeo
        dalemccea 3ad2ant3 dalem-ccly eqid syl31anc dalem34 lvolnle3at syl23anc
        lvoli3 dalem23 wa dalem38 cbs dalemkelat dalem29 hlatjcl syl3anc atbase
        clat syl dalemcceb latlej2 dalemyeb latjle12 syl13anc mpbi2and hlatjrot
        latjcl wb oveq1d breqtrd adantr latleeqj2 biimpa mtand ) ASTUOZBUPZLMKN
        UQZPURZSUAUSZNUQZXEXGNUQZPURZXDOUTVAZXHOVBVCZVAZMCVAZKCVAZXGCVAZXJVDAXC
        XKBACDEFGHIJNOPRSTUCVEVFZXDXKSRVAZXPXGSPURVDZXMXQAXCXRBACDEFGHIJNOPRSTU
        CVGVFBAXPXCBCDNPSUAUBUGVHVIZBAXSXCBCDNPSUAUBUGVJVICRXGNOPXLSUDUEUFUIXLV
        KZVPVLABCDEFGHIJMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUNVMZABCDEFGHIJKNOPQRSTUA
        UBUCUDUEUFUGUHUIUJUKULVQZXTCMKXGNOPXLXHUDUEUFYAVNVOXDXFVRZXHXELNUQZXGNU
        QZXIPXDXHYFPURXFXDXHKLNUQZMNUQZXGNUQZYFPXDSYIPURZXGYIPURZXHYIPURZABCDEF
        GHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNVSXDOWFVAZYHOVTVCZVAZXGYNVAZY
        KAXCYMBACDEFGHIJNOPRSTUCWAVFZXDYMYGYNVAZMYNVAZYOYQXDXKXOLCVAZYRXQYCABCD
        EFGHIJLNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUMWBZCYNNOKLYNVKZUEUFWCWDXDXNYSYBCY
        NMOUUBUFWEWGYNNOYGMUUBUEWOWDZBAYPXCBCDNOPSUAUBUGUFWHVIZYNNOPYHXGUUBUDUE
        WIWDXDYMSYNVAZYPYIYNVAZYJYKVRYLWPYQAXCUUEBACDEFGHIJNOPRSTUCUIWJVFUUDXDY
        MYOYPUUFYQUUCUUDYNNOYHXGUUBUEWOWDYNNOPSXGYIUUBUDUEWKWLWMXDYHYEXGNXDXKXO
        YTXNYHYEUOXQYCUUAYBCKLMNOUEUFWNWLWQWRWSYDYEXEXGNXDXFYEXEUOZXDYMLYNVAZXE
        YNVAZXFUUGWPYQXDYTUUHUUACYNLOUUBUFWEWGXDXKXNXOUUIXQYBYCCYNNOMKUUBUEUFWC
        WDYNNOPLXEUUBUDUEWTWDXAWQWRXB $.

      $( Lemma for ~ dath .  Analogue of ~ dalem39 for ` I ` .  (Contributed by
         NM, 4-Aug-2012.) $)
      dalem40 $p |- ( ( ph /\ Y = Z /\ ps ) -> -. I .<_ ( G .\/ H ) ) $=
        ( wceq w3a chlt wcel cbs cfv wa co wbr wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid eqid dalem39 syl3anc ) ASTUOZBUPO
        UQURDOUSUTURVAFCURGCURECURUPICURJCURHCURUPUPFGNVBZENVBZRURIJNVBZHNVBZRU
        RVADVRPVCVHDGENVBPVCVHDEFNVBPVCVHUPDVTPVCVHDJHNVBPVCVHDHINVBPVCVHUPDFIN
        VBPVCDGJNVBPVCDEHNVBPVCUPUPUPZVSWAUOZUAVIZCURUBVIZCURVAWDVSPVCVHWEWDVDW
        EVSPVCVHDWDWENVBPVCUPUPZMKLNVBPVCVHAVQWBBACDEFGHIJNOPRSTUCUDUEUFUJUKVEV
        FAVQWCBACDEFGHIJNOPRSTUCUDUEUFUJUKVGVJABWFVQABCDEFGHIJNOPRSTUAUBUCUDUEU
        FUGUJVKVLWBWFCDFGEIJHLMKNOPQRVSWAUAUBWBVMUDUEUFWFVMUHUIVSVNWAVNUMUNULVO
        VP $.

      $( Lemma for ~ dath .  (Contributed by NM, 4-Aug-2012.) $)
      dalem41 $p |- ( ( ph /\ Y = Z /\ ps ) -> G =/= H ) $=
        ( wceq w3a chlt wcel wbr wne dalemkehl 3ad2ant1 dalem29 dalem34 dalem23
        co wn dalem39 atnlej2 syl131anc necomd ) ASTUOZBUPZLKVMOUQURZLCURMCURKC
        URLMKNVFPUSVGLKUTAVLVNBACDEFGHIJNOPRSTUCVAVBABCDEFGHIJLNOPQRSTUAUBUCUDU
        EUFUGUHUIUJUKUMVCABCDEFGHIJMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUNVDABCDEFGHIJ
        KNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULVEABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHU
        IUJUKULUMUNVHCLMKNOPUDUEUFVIVJVK $.

      $( Lemma for ~ dath .  Auxiliary atoms ` G H I ` form a plane.
         (Contributed by NM, 4-Aug-2012.) $)
      dalem42 $p |- ( ( ph /\ Y = Z /\ ps )
            -> ( ( G .\/ H ) .\/ I ) e. O ) $=
        ( wceq w3a chlt wcel wne wbr dalemkehl 3ad2ant1 dalem23 dalem29 dalem34
        co wn dalem41 dalem40 lplni2 syl132anc ) ASTUOZBUPOUQURZKCURLCURMCURKLU
        SMKLNVFZPUTVGVNMNVFRURAVLVMBACDEFGHIJNOPRSTUCVAVBABCDEFGHIJKNOPQRSTUAUB
        UCUDUEUFUGUHUIUJUKULVCABCDEFGHIJLNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUMVDABCDE
        FGHIJMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUNVEABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUF
        UGUHUIUJUKULUMUNVHABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNVICRK
        LMNOPUDUEUFUIVJVK $.

      $( Lemma for ~ dath .  Planes ` G H I ` and ` Y ` are different.
         (Contributed by NM, 8-Aug-2012.) $)
      dalem43 $p |- ( ( ph /\ Y = Z /\ ps )
             -> ( ( G .\/ H ) .\/ I ) =/= Y ) $=
        ( wceq w3a wbr wne clat wcel cbs cfv dalemkelat 3ad2ant1 chlt dalemkehl
        dalem23 dalem29 eqid hlatjcl syl3anc dalem34 atbase syl latlej2 dalem35
        co wn nbrne1 syl2anc ) ASTUOZBUPZMKLNVQZMNVQZPUQZMSPUQVRWDSURWBOUSUTZWC
        OVAVBZUTZMWGUTZWEAWAWFBACDEFGHIJNOPRSTUCVCVDWBOVEUTZKCUTLCUTWHAWAWJBACD
        EFGHIJNOPRSTUCVFVDABCDEFGHIJKNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULVGABCDEFGHI
        JLNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUMVHCWGNOKLWGVIZUEUFVJVKWBMCUTWIABCDEFGH
        IJMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUNVLCWGMOWKUFVMVNWGNOPWCMWKUDUEVOVKABCD
        EFGHIJMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUNVPMWDSPVSVT $.
    $}

    ${
      dalem44.m $e |- ./\ = ( meet ` K ) $.
      dalem44.o $e |- O = ( LPlanes ` K ) $.
      dalem44.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem44.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem44.g $e |- G = ( ( c .\/ P ) ./\ ( d .\/ S ) ) $.
      dalem44.h $e |- H = ( ( c .\/ Q ) ./\ ( d .\/ T ) ) $.
      dalem44.i $e |- I = ( ( c .\/ R ) ./\ ( d .\/ U ) ) $.
      $( TODO: do we need this for other than -. c .<_ ( G .\/ H )? $)
      $( Lemma for ~ dath .  Dummy center of perspectivity ` c ` lies outside
         of plane ` G H I ` .  (Contributed by NM, 16-Aug-2012.) $)
      dalem44 $p |- ( ( ph /\ Y = Z /\ ps )
   -> -. c .<_ ( ( G .\/ H ) .\/ I ) ) $=
        ( wceq w3a co wne cv wbr wn dalem43 necomd clat wcel cbs cfv dalemkelat
        3ad2ant1 dalemcceb 3ad2ant3 dalem42 eqid lplnbase syl latleeqj1 syl3anc
        wb dalem28 chlt dalemkehl dalemccea dalem23 hlatjcom dalem33 dalem29 wa
        breqtrrd wi dalempeb hlatjcl dalemqeb latjlej12 syl122anc mp2and atbase
        latjjdi syl13anc dalem37 dalem34 dalempjqeb dalemreb syl5eqbr syl5ibcom
        latjcl breq2 sylbid dalemyeo lplncmp sylibd necon3ad mpd ) ASTUOZBUPZSK
        LNUQZMNUQZURUAUSZXPPUTZVAXNXPSABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJU
        KULUMUNVBVCXNXRSXPXNXRSXPPUTZSXPUOZXNXRXQXPNUQZXPUOZXSXNOVDVEZXQOVFVGZV
        EZXPYDVEZXRYBVRAXMYCBACDEFGHIJNOPRSTUCVHVIZBAYEXMBCDNOPSUAUBUGUFVJVKZXN
        XPRVEZYFABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNVLZYDROXPYDVMZU
        IVNVOYDNOPXQXPYKUDUEVPVQXNSYAPUTYBXSXNSEFNUQZGNUQZYAPUJXNYMXQXONUQZXQMN
        UQZNUQZYAPXNYLYNPUTZGYOPUTZYMYPPUTZXNYLXQKNUQZXQLNUQZNUQZYNPXNEYTPUTZFU
        UAPUTZYLUUBPUTZXNEKXQNUQZYTPABCDEFGHIJKNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULV
        SXNOVTVEZXQCVEZKCVEZYTUUFUOAXMUUGBACDEFGHIJNOPRSTUCWAVIZBAUUHXMBCDNPSUA
        UBUGWBVKZABCDEFGHIJKNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULWCZCNOXQKUEUFWDVQWHX
        NFLXQNUQZUUAPABCDEFGHIJLNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUMWEXNUUGUUHLCVEZU
        UAUUMUOUUJUUKABCDEFGHIJLNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUMWFZCNOXQLUEUFWDV
        QWHXNYCEYDVEZYTYDVEZFYDVEZUUAYDVEZUUCUUDWGUUEWIYGAXMUUPBACDEFGHIJNOPRST
        UCUFWJVIXNUUGUUHUUIUUQUUJUUKUULCYDNOXQKYKUEUFWKVQAXMUURBACDEFGHIJNOPRST
        UCUFWLVIXNUUGUUHUUNUUSUUJUUKUUOCYDNOXQLYKUEUFWKVQYDNOPUUAEYTFYKUDUEWMWN
        WOXNYCYEKYDVEZLYDVEZYNUUBUOYGYHXNUUIUUTUULCYDKOYKUFWPVOXNUUNUVAUUOCYDLO
        YKUFWPVOYDNOXQKLYKUEWQWRWHXNGMXQNUQZYOPABCDEFGHIJMNOPQRSTUAUBUCUDUEUFUG
        UHUIUJUKUNWSXNUUGUUHMCVEZYOUVBUOUUJUUKABCDEFGHIJMNOPQRSTUAUBUCUDUEUFUGU
        HUIUJUKUNWTZCNOXQMUEUFWDVQWHXNYCYLYDVEZYNYDVEZGYDVEZYOYDVEZYQYRWGYSWIYG
        AXMUVEBACDEFGHIJNOPRSTUCUEUFXAVIXNYCYEXOYDVEZUVFYGYHXNUUGUUIUUNUVIUUJUU
        LUUOCYDNOKLYKUEUFWKVQZYDNOXQXOYKUEXEVQAXMUVGBACDEFGHIJNOPRSTUCUFXBVIXNU
        UGUUHUVCUVHUUJUUKUVDCYDNOXQMYKUEUFWKVQYDNOPYOYLYNGYKUDUEWMWNWOXNYCYEUVI
        MYDVEZYAYPUOYGYHUVJXNUVCUVKUVDCYDMOYKUFWPVOYDNOXQXOMYKUEWQWRWHXCYAXPSPX
        FXDXGXNUUGSRVEZYIXSXTVRUUJAXMUVLBACDEFGHIJNOPRSTUCXHVIYJROPSXPUDUIXIVQX
        JXKXL $.

      $( Lemma for ~ dath .  Dummy center of perspectivity ` c ` is not on the
         line ` G H ` .  (Contributed by NM, 16-Aug-2012.) $)
      dalem45 $p |- ( ( ph /\ Y = Z /\ ps ) -> -. c .<_ ( G .\/ H ) ) $=
        ( wceq w3a clat wcel cv cbs cfv co wbr wn dalemkelat 3ad2ant1 dalemcceb
        3ad2ant3 chlt dalemkehl dalem23 dalem29 eqid hlatjcl syl3anc atbase syl
        dalem34 dalem44 latnlej2l syl131anc ) ASTUOZBUPZOUQURZUAUSZOUTVAZURZKLN
        VBZWFURZMWFURZWEWHMNVBPVCVDWEWHPVCVDAWBWDBACDEFGHIJNOPRSTUCVEVFBAWGWBBC
        DNOPSUAUBUGUFVGVHWCOVIURZKCURLCURWIAWBWKBACDEFGHIJNOPRSTUCVJVFABCDEFGHI
        JKNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULVKABCDEFGHIJLNOPQRSTUAUBUCUDUEUFUGUHUI
        UJUKUMVLCWFNOKLWFVMZUEUFVNVOWCMCURWJABCDEFGHIJMNOPQRSTUAUBUCUDUEUFUGUHU
        IUJUKUNVRCWFMOWLUFVPVQABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNV
        SWFNOPWEWHMWLUDUEVTWA $.

      $( Lemma for ~ dath .  Analogue of ~ dalem45 for ` H I ` .  (Contributed
         by NM, 16-Aug-2012.) $)
      dalem46 $p |- ( ( ph /\ Y = Z /\ ps ) -> -. c .<_ ( H .\/ I ) ) $=
        ( wceq w3a chlt wcel cbs cfv wa co wbr wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid eqid dalem45 syl3anc ) ASTUOZBUPO
        UQURDOUSUTURVAFCURGCURECURUPICURJCURHCURUPUPFGNVBZENVBZRURIJNVBZHNVBZRU
        RVADVRPVCVHDGENVBPVCVHDEFNVBPVCVHUPDVTPVCVHDJHNVBPVCVHDHINVBPVCVHUPDFIN
        VBPVCDGJNVBPVCDEHNVBPVCUPUPUPZVSWAUOZUAVIZCURUBVIZCURVAWDVSPVCVHWEWDVDW
        EVSPVCVHDWDWENVBPVCUPUPZWDLMNVBPVCVHAVQWBBACDEFGHIJNOPRSTUCUDUEUFUJUKVE
        VFAVQWCBACDEFGHIJNOPRSTUCUDUEUFUJUKVGVJABWFVQABCDEFGHIJNOPRSTUAUBUCUDUE
        UFUGUJVKVLWBWFCDFGEIJHLMKNOPQRVSWAUAUBWBVMUDUEUFWFVMUHUIVSVNWAVNUMUNULV
        OVP $.

      $( Lemma for ~ dath .  Analogue of ~ dalem45 for ` I G ` .  (Contributed
         by NM, 16-Aug-2012.) $)
      dalem47 $p |- ( ( ph /\ Y = Z /\ ps ) -> -. c .<_ ( I .\/ G ) ) $=
        ( wceq w3a chlt wcel cbs cfv wa co wbr wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid eqid dalem46 syl3anc ) ASTUOZBUPO
        UQURDOUSUTURVAFCURGCURECURUPICURJCURHCURUPUPFGNVBZENVBZRURIJNVBZHNVBZRU
        RVADVRPVCVHDGENVBPVCVHDEFNVBPVCVHUPDVTPVCVHDJHNVBPVCVHDHINVBPVCVHUPDFIN
        VBPVCDGJNVBPVCDEHNVBPVCUPUPUPZVSWAUOZUAVIZCURUBVIZCURVAWDVSPVCVHWEWDVDW
        EVSPVCVHDWDWENVBPVCUPUPZWDMKNVBPVCVHAVQWBBACDEFGHIJNOPRSTUCUDUEUFUJUKVE
        VFAVQWCBACDEFGHIJNOPRSTUCUDUEUFUJUKVGVJABWFVQABCDEFGHIJNOPRSTUAUBUCUDUE
        UFUGUJVKVLWBWFCDFGEIJHLMKNOPQRVSWAUAUBWBVMUDUEUFWFVMUHUIVSVNWAVNUMUNULV
        OVP $.

      $( Lemma for ~ dath .  Analogue of ~ dalem45 for ` P Q ` .  (Contributed
         by NM, 16-Aug-2012.) $)
      dalem48 $p |- ( ( ph /\ ps ) -> -. c .<_ ( P .\/ Q ) ) $=
        ( wa clat wcel cv cbs cfv co wbr dalemkelat adantr dalemcceb dalempjqeb
        wn adantl dalemreb dalem-ccly breq2i sylnib eqid latnlej2l syl131anc )
        ABUOOUPUQZUAURZOUSUTZUQZEFNVAZVRUQZGVRUQZVQVTGNVAZPVBZVGZVQVTPVBVGAVPBA
        CDEFGHIJNOPRSTUCVCVDBVSABCDNOPSUAUBUGUFVEVHAWABACDEFGHIJNOPRSTUCUEUFVFV
        DAWBBACDEFGHIJNOPRSTUCUFVIVDBWEABVQSPVBWDBCDNPSUAUBUGVJSWCVQPUJVKVLVHVR
        NOPVQVTGVRVMUDUEVNVO $.

      $( Lemma for ~ dath .  Analogue of ~ dalem45 for ` Q R ` .  (Contributed
         by NM, 16-Aug-2012.) $)
      dalem49 $p |- ( ( ph /\ ps ) -> -. c .<_ ( Q .\/ R ) ) $=
        ( wa chlt wcel cbs cfv w3a co wbr wn cv dalemrot adantr dalemrotps biid
        wne eqid dalem48 syl2anc ) ABUOOUPUQDOURUSUQUOFCUQGCUQECUQUTICUQJCUQHCU
        QUTUTFGNVAZENVAZRUQIJNVAZHNVAZRUQUODVMPVBVCDGENVAPVBVCDEFNVAPVBVCUTDVOP
        VBVCDJHNVAPVBVCDHINVAPVBVCUTDFINVAPVBDGJNVAPVBDEHNVAPVBUTUTUTZUAVDZCUQU
        BVDZCUQUOVRVNPVBVCVSVRVIVSVNPVBVCDVRVSNVAPVBUTUTZVRVMPVBVCAVQBACDEFGHIJ
        NOPRSTUCUDUEUFUJUKVEVFABCDEFGHIJNOPRSTUAUBUCUDUEUFUGUJVGVQVTCDFGEIJHLMK
        NOPQRVNVPUAUBVQVHUDUEUFVTVHUHUIVNVJVPVJUMUNULVKVL $.

      $( Lemma for ~ dath .  Analogue of ~ dalem45 for ` R P ` .  (Contributed
         by NM, 16-Aug-2012.) $)
      dalem50 $p |- ( ( ph /\ ps ) -> -. c .<_ ( R .\/ P ) ) $=
        ( wa chlt wcel cbs cfv w3a co wbr wn cv dalemrot adantr dalemrotps biid
        wne eqid dalem49 syl2anc ) ABUOOUPUQDOURUSUQUOFCUQGCUQECUQUTICUQJCUQHCU
        QUTUTFGNVAZENVAZRUQIJNVAZHNVAZRUQUODVMPVBVCDGENVAZPVBVCDEFNVAPVBVCUTDVO
        PVBVCDJHNVAPVBVCDHINVAPVBVCUTDFINVAPVBDGJNVAPVBDEHNVAPVBUTUTUTZUAVDZCUQ
        UBVDZCUQUOVSVNPVBVCVTVSVIVTVNPVBVCDVSVTNVAPVBUTUTZVSVQPVBVCAVRBACDEFGHI
        JNOPRSTUCUDUEUFUJUKVEVFABCDEFGHIJNOPRSTUAUBUCUDUEUFUGUJVGVRWACDFGEIJHLM
        KNOPQRVNVPUAUBVRVHUDUEUFWAVHUHUIVNVJVPVJUMUNULVKVL $.

      $( Lemma for ~ dath .  Construct the condition ` ph ` with ` c ` ,
         ` G H I ` , and ` Y ` in place of ` C ` , ` Y ` , and ` Z `
         respectively.  This lets us reuse the special case of Desargues'
         Theorem where ` Y =/= Z ` , to eventually prove the case where
         ` Y = Z ` .  (Contributed by NM, 16-Aug-2012.) $)
      dalem51 $p |- ( ( ph /\ Y = Z /\ ps )
  -> ( ( ( ( K e. HL /\ c e. A )
      /\ ( G e. A /\ H e. A /\ I e. A )
      /\ ( P e. A /\ Q e. A /\ R e. A ) )
  /\ ( ( ( G .\/ H ) .\/ I ) e. O /\ Y e. O )
  /\ ( ( -. c .<_ ( G .\/ H ) /\ -. c .<_ ( H .\/ I )
    /\ -. c .<_ ( I .\/ G ) )
    /\ ( -. c .<_ ( P .\/ Q ) /\ -. c .<_ ( Q .\/ R )
     /\ -. c .<_ ( R .\/ P ) )
    /\ ( c .<_ ( G .\/ P ) /\ c .<_ ( H .\/ Q )
       /\ c .<_ ( I .\/ R ) ) ) )
 /\ ( ( G .\/ H ) .\/ I ) =/= Y ) ) $=
        ( wceq w3a chlt wcel cv wa co wbr dalemkehl 3ad2ant1 dalemccea 3ad2ant3
        wne jca dalem23 dalem29 dalem34 3jca dalempea dalemqea dalemrea dalem42
        dalem45 dalem46 dalem47 dalem48 dalem49 dalem50 3adant2 dalem27 dalem32
        wn dalemyeo dalem36 dalem43 ) ASTUOZBUPZOUQURZUAUSZCURZUTZKCURZLCURZMCU
        RZUPZECURZFCURZGCURZUPZUPZKLNVAZMNVAZRURZSRURZUTZWMXEPVBWFZWMLMNVAPVBWF
        ZWMMKNVAPVBWFZUPZWMEFNVAPVBWFZWMFGNVAPVBWFZWMGENVAPVBWFZUPZWMKENVAPVBZW
        MLFNVAPVBZWMMGNVAPVBZUPZUPZUPXFSVGWKXDXIYBWKWOWSXCWKWLWNAWJWLBACDEFGHIJ
        NOPRSTUCVCVDBAWNWJBCDNPSUAUBUGVEVFVHWKWPWQWRABCDEFGHIJKNOPQRSTUAUBUCUDU
        EUFUGUHUIUJUKULVIABCDEFGHIJLNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUMVJABCDEFGHIJ
        MNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUNVKVLAWJXCBAWTXAXBACDEFGHIJNOPRSTUCVMACD
        EFGHIJNOPRSTUCVNACDEFGHIJNOPRSTUCVOVLVDVLWKXGXHABCDEFGHIJKLMNOPQRSTUAUB
        UCUDUEUFUGUHUIUJUKULUMUNVPAWJXHBACDEFGHIJNOPRSTUCWGVDVHWKXMXQYAWKXJXKXL
        ABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNVQABCDEFGHIJKLMNOPQRSTU
        AUBUCUDUEUFUGUHUIUJUKULUMUNVRABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUK
        ULUMUNVSVLABXQWJABUTXNXOXPABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULU
        MUNVTABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNWAABCDEFGHIJKLMNOP
        QRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNWBVLWCWKXRXSXTABCDEFGHIJKNOPQRSTUAUBUCU
        DUEUFUGUHUIUJUKULWDABCDEFGHIJLNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUMWEABCDEFGH
        IJMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUNWHVLVLVLABCDEFGHIJKLMNOPQRSTUAUBUCUDU
        EUFUGUHUIUJUKULUMUNWIVH $.

      $( Lemma for ~ dath .  Lines ` G H ` and ` P Q ` intersect at an atom.
         (Contributed by NM, 8-Aug-2012.) $)
      dalem52 $p |- ( ( ph /\ Y = Z /\ ps )
             -> ( ( G .\/ H ) ./\ ( P .\/ Q ) ) e. A ) $=
        ( wceq w3a chlt wcel cv cbs wa co dalemkehl 3ad2ant1 dalemcceb 3ad2ant3
        cfv wbr dalem23 dalem29 dalem34 3jca dalempea dalemqea dalemrea dalem42
        wn jca dalemyeo dalem45 dalem46 dalem47 dalem48 dalem49 dalem50 3adant2
        dalem27 dalem32 dalem36 biid eqid dalemdea syl323anc ) ASTUOZBUPZOUQURZ
        UAUSZOUTVGURZVAZKCURZLCURZMCURZUPZECURZFCURZGCURZUPZKLNVBZMNVBZRURZSRUR
        ZWQXHPVHVQZWQLMNVBPVHVQZWQMKNVBPVHVQZUPZWQEFNVBZPVHVQZWQFGNVBPVHVQZWQGE
        NVBPVHVQZUPZWQKENVBPVHZWQLFNVBPVHZWQMGNVBPVHZUPZXHXPQVBZCURWOWPWRAWNWPB
        ACDEFGHIJNOPRSTUCVCVDBAWRWNBCDNOPSUAUBUGUFVEVFVRWOWTXAXBABCDEFGHIJKNOPQ
        RSTUAUBUCUDUEUFUGUHUIUJUKULVIABCDEFGHIJLNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUM
        VJABCDEFGHIJMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUNVKVLAWNXGBAXDXEXFACDEFGHIJN
        OPRSTUCVMACDEFGHIJNOPRSTUCVNACDEFGHIJNOPRSTUCVOVLVDABCDEFGHIJKLMNOPQRST
        UAUBUCUDUEUFUGUHUIUJUKULUMUNVPAWNXKBACDEFGHIJNOPRSTUCVSVDWOXLXMXNABCDEF
        GHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNVTABCDEFGHIJKLMNOPQRSTUAUBUCU
        DUEUFUGUHUIUJUKULUMUNWAABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUN
        WBVLABXTWNABVAXQXRXSABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNWCA
        BCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNWDABCDEFGHIJKLMNOPQRSTUA
        UBUCUDUEUFUGUHUIUJUKULUMUNWEVLWFWOYAYBYCABCDEFGHIJKNOPQRSTUAUBUCUDUEUFU
        GUHUIUJUKULWGABCDEFGHIJLNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUMWHABCDEFGHIJMNOP
        QRSTUAUBUCUDUEUFUGUHUIUJUKUNWIVLWSXCXGUPXJXKVAXOXTYDUPUPZCWQYEKLMEFGNOP
        QRXISYFWJUDUEUFUHUIXIWKUJYEWKWLWM $.
    $}

    ${
      dalem53.m $e |- ./\ = ( meet ` K ) $.
      dalem53.n $e |- N = ( LLines ` K ) $.
      dalem53.o $e |- O = ( LPlanes ` K ) $.
      dalem53.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem53.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem53.g $e |- G = ( ( c .\/ P ) ./\ ( d .\/ S ) ) $.
      dalem53.h $e |- H = ( ( c .\/ Q ) ./\ ( d .\/ T ) ) $.
      dalem53.i $e |- I = ( ( c .\/ R ) ./\ ( d .\/ U ) ) $.
      dalem53.b1 $e |- B = ( ( ( G .\/ H ) .\/ I ) ./\ Y ) $.
      $( Lemma for ~ dath .  The auxliary axis of perspectivity ` B ` is a line
         (analogous to the actual axis of perspectivity ` X ` in ~ dalem15 .
         (Contributed by NM, 8-Aug-2012.) $)
      dalem53 $p |- ( ( ph /\ Y = Z /\ ps ) -> B e. N ) $=
        ( wceq w3a chlt wcel cv wa co wbr wn wne dalem51 cbs eqid atbase anim2i
        cfv 3anim1i biid dalem15 syl3anl1 syl ) AUAUBUSBUTPVAVBZUCVCZCVBZVDZLCV
        BMCVBNCVBUTZFCVBGCVBHCVBUTZUTZLMOVEZNOVEZTVBUATVBVDZWAWGQVFVGWAMNOVEQVF
        VGWANLOVEQVFVGUTWAFGOVEQVFVGWAGHOVEQVFVGWAHFOVEQVFVGUTWALFOVEQVFWAMGOVE
        QVFWANHOVEQVFUTUTZUTWHUAVHZVDDSVBZABCEFGHIJKLMNOPQRTUAUBUCUDUEUFUGUHUIU
        JULUMUNUOUPUQVIWFVTWAPVJVNZVBZVDZWDWEUTZWIWJWKWLWCWOWDWEWBWNVTCWMWAPWMV
        KUHVLVMVOWPWIWJUTZCWALMNFGHOPQRSTDWHUAWQVPUFUGUHUJUKULWHVKUMURVQVRVS $.
    $}

    ${
      dalem54.m $e |- ./\ = ( meet ` K ) $.
      dalem54.o $e |- O = ( LPlanes ` K ) $.
      dalem54.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem54.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem54.g $e |- G = ( ( c .\/ P ) ./\ ( d .\/ S ) ) $.
      dalem54.h $e |- H = ( ( c .\/ Q ) ./\ ( d .\/ T ) ) $.
      dalem54.i $e |- I = ( ( c .\/ R ) ./\ ( d .\/ U ) ) $.
      dalem54.b1 $e |- B = ( ( ( G .\/ H ) .\/ I ) ./\ Y ) $.
      $( TODO:  can this be done more directly via darot2xx conversions? $)
      $( Lemma for ~ dath .  Line ` G H ` intersects the auxiliary axis of
         perspectivity ` B ` .  (Contributed by NM, 8-Aug-2012.) $)
      dalem54 $p |- ( ( ph /\ Y = Z /\ ps )
                -> ( ( G .\/ H ) ./\ B ) e. A ) $=
        ( wceq w3a chlt wcel co clln cfv wne dalemkehl 3ad2ant1 dalem23 dalem29
        cp0 dalem41 eqid llni2 syl31anc dalem53 wbr clat cbs dalemkelat llnbase
        wn syl dalem34 atbase latjcl syl3anc dalemyeb latmle2 syl5eqbr latjle12
        dalem24 wa syl13anc simpl syl6bir mtod nbrne2 syl2anc necomd cal latmcl
        wb hlatl dalem52 dalempjqeb latmle1 dalem51 simpld 3anim1i biid dalem10
        cv anim2i syl3an1 latlem12 mpbi2and atlen0 2llnmat syl32anc ) ATUAUQZBU
        RZPUSUTZLMOVAZPVBVCZUTZDYCUTZYBDVDYBDRVAZPVIVCZVDZYFCUTAXSYABACEFGHIJKO
        PQSTUAUDVEVFZXTYALCUTZMCUTZLMVDYDYIABCEFGHIJKLOPQRSTUAUBUCUDUEUFUGUHUIU
        JUKULUMVGZABCEFGHIJKMOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUNVHZABCEFGHIJKLMNOP
        QRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOVJCLMOPYCUFUGYCVKZVLVMZABCDEFGHIJKLMN
        OPQRYCSTUAUBUCUDUEUFUGUHUIYNUJUKULUMUNUOUPVNZXTDYBXTDTQVOYBTQVOZVTDYBVD
        XTDYBNOVAZTRVAZTQUPXTPVPUTZYRPVQVCZUTZTUUAUTZYSTQVOAXSYTBACEFGHIJKOPQST
        UAUDVRVFZXTYTYBUUAUTZNUUAUTZUUBUUDXTYDUUEYOUUAPYCYBUUAVKZYNVSWAZXTNCUTZ
        UUFABCEFGHIJKNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUOWBCUUANPUUGUGWCWAUUAOPYBN
        UUGUFWDWEAXSUUCBACEFGHIJKOPQSTUAUDUJWFVFZUUAPQRYRTUUGUEUIWGWEWHXTYQLTQV
        OZABCEFGHIJKLOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMWJXTYQUUKMTQVOZWKZUUKXTYTL
        UUAUTZMUUAUTZUUCUUMYQXAUUDXTYJUUNYLCUUALPUUGUGWCWAXTYKUUOYMCUUAMPUUGUGW
        CWAUUJUUAOPQLMTUUGUEUFWIWLUUKUULWMWNWODYBTQWPWQWRXTPWSUTZYFUUAUTZYBFGOV
        AZRVAZCUTUUSYFQVOZYHXTYAUUPYIPXBWAXTYTUUEDUUAUTZUUQUUDUUHXTYEUVAYPUUAPY
        CDUUGYNVSWAZUUAPRYBDUUGUIWTWEABCEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKU
        LUMUNUOXCXTUUSYBQVOZUUSDQVOZUUTXTYTUUEUURUUAUTZUVCUUDUUHAXSUVEBACEFGHIJ
        KOPQSTUAUDUFUGXDVFZUUAPQRYBUURUUGUEUIXEWEXTYAUBXKZCUTZWKZYJYKUUIURZFCUT
        GCUTHCUTURZURZYRSUTTSUTWKZUVGYBQVOVTUVGMNOVAQVOVTUVGNLOVAQVOVTURUVGUURQ
        VOVTUVGGHOVAQVOVTUVGHFOVAQVOVTURUVGLFOVAQVOUVGMGOVAQVOUVGNHOVAQVOURURZU
        RZUVDXTUVOYRTVDABCEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOXFXGUVL
        YAUVGUUAUTZWKZUVJUVKURZUVMUVNUVDUVIUVQUVJUVKUVHUVPYACUUAUVGPUUGUGWCXLXH
        UVRUVMUVNURZCUVGUUSLMNFGHOPQRSDYRTUVSXIUEUFUGUIUJYRVKUKUPUUSVKXJXMWAXTY
        TUUSUUAUTZUUEUVAUVCUVDWKUUTXAUUDXTYTUUEUVEUVTUUDUUHUVFUUAPRYBUURUUGUIWT
        WEUUHUVBUUAPQRUUSYBDUUGUEUIXNWLXOCUUAUUSPQYFYGUUGUEYGVKZUGXPVMCPRYCYBDY
        GUIUWAUGYNXQXR $.

      $( Lemma for ~ dath .  Lines ` G H ` and ` P Q ` intersect at the
         auxiliary line ` B ` (later shown to be an axis of perspectivity; see
         ~ dalem60 ).  (Contributed by NM, 8-Aug-2012.) $)
      dalem55 $p |- ( ( ph /\ Y = Z /\ ps )
          -> ( ( G .\/ H ) ./\ ( P .\/ Q ) ) = ( ( G .\/ H ) ./\ B ) ) $=
        ( wceq w3a wbr clat wcel cbs dalemkelat 3ad2ant1 chlt dalemkehl dalem23
        cfv dalem29 eqid hlatjcl syl3anc dalempjqeb latmle1 dalem34 syl latlej1
        co atbase dalemreb syl6breqr wa wi dalem42 lplnbase latmlem12 syl122anc
        dalemyeb mp2and wb latmcl clln dalem53 latlem12 syl13anc mpbi2and hlatl
        llnbase cal dalem52 dalem54 atcmp mpbid ) ATUAUQZBURZLMOVRZFGOVRZRVRZXF
        DRVRZQUSZXHXIUQZXEXHXFQUSZXHDQUSZXJXEPUTVAZXFPVBVHZVAZXGXOVAZXLAXDXNBAC
        EFGHIJKOPQSTUAUDVCZVDZXEPVEVAZLCVAMCVAXPAXDXTBACEFGHIJKOPQSTUAUDVFVDZAB
        CEFGHIJKLOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMVGABCEFGHIJKMOPQRSTUAUBUCUDUEU
        FUGUHUIUJUKULUNVICXOOPLMXOVJZUFUGVKVLZAXDXQBACEFGHIJKOPQSTUAUDUFUGVMZVD
        ZXOPQRXFXGYBUEUIVNVLXEXHXFNOVRZTRVRZDQXEXFYFQUSZXGTQUSZXHYGQUSZXEXNXPNX
        OVAZYHXSYCXENCVAYKABCEFGHIJKNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUOVOCXONPYBU
        GVSVPXOOPQXFNYBUEUFVQVLAXDYIBAXGXGHOVRZTQAXNXQHXOVAXGYLQUSXRYDACEFGHIJK
        OPQSTUAUDUGVTXOOPQXGHYBUEUFVQVLUKWAVDXEXNXPYFXOVAZXQTXOVAZYHYIWBYJWCXSY
        CXEYFSVAYMABCEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOWDXOSPYFYBUJ
        WEVPYEAXDYNBACEFGHIJKOPQSTUAUDUJWHVDXOPQRTXFYFXGYBUEUIWFWGWIUPWAXEXNXHX
        OVAZXPDXOVAZXLXMWBXJWJXSXEXNXPXQYOXSYCYEXOPRXFXGYBUIWKVLYCXEDPWLVHZVAYP
        ABCDEFGHIJKLMNOPQRYQSTUAUBUCUDUEUFUGUHUIYQVJZUJUKULUMUNUOUPWMXOPYQDYBYR
        WRVPXOPQRXHXFDYBUEUIWNWOWPXEPWSVAZXHCVAXICVAXJXKWJXEXTYSYAPWQVPABCEFGHI
        JKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOWTABCDEFGHIJKLMNOPQRSTUAUBUCUD
        UEUFUGUHUIUJUKULUMUNUOUPXACXHXIPQUEUGXBVLXC $.

      $( Lemma for ~ dath .  Analogue of ~ dalem55 for line ` S T ` .
         (Contributed by NM, 8-Aug-2012.) $)
      dalem56 $p |- ( ( ph /\ Y = Z /\ ps )
           -> ( ( G .\/ H ) ./\ ( S .\/ T ) ) = ( ( G .\/ H ) ./\ B ) ) $=
        ( wceq w3a cv co chlt wcel cbs cfv wa wbr wn dalemswapyz 3ad2ant1 simp2
        wne eqcomd dalemswapyzps biid eqid dalem55 syl3anc dalemkelat dalemkehl
        dalemccea 3ad2ant3 dalempea hlatjcl dalemddea dalemsea latmcom dalemqea
        clat syl5eq dalemtea oveq12d oveq1d dalemrea dalemuea 3eqtr4d ) ATUAUQZ
        BURZUCUSZIOUTZUBUSZFOUTZRUTZWRJOUTZWTGOUTZRUTZOUTZIJOUTZRUTZXFXFWRKOUTZ
        WTHOUTZRUTZOUTZUARUTZRUTZLMOUTZXGRUTXODRUTWQPVAVBZEPVCVDZVBVEICVBZJCVBZ
        KCVBZURFCVBZGCVBZHCVBZURURUASVBTSVBVEEXGQVFVGEJKOUTQVFVGEKIOUTQVFVGUREF
        GOUTQVFVGEGHOUTQVFVGEHFOUTQVFVGUREIFOUTQVFEJGOUTQVFEKHOUTQVFURURURZUATU
        QWRCVBZWTCVBZVEWRUAQVFVGWTWRVKWTUAQVFVGEWRWTOUTQVFURURZXHXNUQAWPYDBACEF
        GHIJKOPQSTUAUDUEUFUGVHVIWQTUAAWPBVJZVLABCEFGHIJKOPQSTUAUBUCUDUEUFUGUHVM
        YDYGCXMEIJKFGHXBXEXKOPQRSUATUCUBYDVNUEUFUGYGVNUIUJULUKXBVOXEVOXKVOXMVOV
        PVQWQXOXFXGRWQLXBMXEOWQLXAWSRUTZXBUMWQPWHVBZXAXQVBZWSXQVBZYIXBUQAWPYJBA
        CEFGHIJKOPQSTUAUDVRVIZWQXPYFYAYKAWPXPBACEFGHIJKOPQSTUAUDVSVIZBAYFWPBCEO
        QTUBUCUHVTWAZAWPYABACEFGHIJKOPQSTUAUDWBVICXQOPWTFXQVOZUFUGWCVQWQXPYEXRY
        LYNBAYEWPBCEOQTUBUCUHWDWAZAWPXRBACEFGHIJKOPQSTUAUDWEVICXQOPWRIYPUFUGWCV
        QXQPRXAWSYPUIWFVQWIWQMXDXCRUTZXEUNWQYJXDXQVBZXCXQVBZYRXEUQYMWQXPYFYBYSY
        NYOAWPYBBACEFGHIJKOPQSTUAUDWGVICXQOPWTGYPUFUGWCVQWQXPYEXSYTYNYQAWPXSBAC
        EFGHIJKOPQSTUAUDWJVICXQOPWRJYPUFUGWCVQXQPRXDXCYPUIWFVQWIWKZWLWQXOXFDXMR
        UUAWQDXONOUTZTRUTXMUPWQUUBXLTUARWQXOXFNXKOUUAWQNXJXIRUTZXKUOWQYJXJXQVBZ
        XIXQVBZUUCXKUQYMWQXPYFYCUUDYNYOAWPYCBACEFGHIJKOPQSTUAUDWMVICXQOPWTHYPUF
        UGWCVQWQXPYEXTUUEYNYQAWPXTBACEFGHIJKOPQSTUAUDWNVICXQOPWRKYPUFUGWCVQXQPR
        XJXIYPUIWFVQWIWKYHWKWIWKWO $.
    $}

    ${
      dalem57.m $e |- ./\ = ( meet ` K ) $.
      dalem57.o $e |- O = ( LPlanes ` K ) $.
      dalem57.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem57.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem57.d $e |- D = ( ( P .\/ Q ) ./\ ( S .\/ T ) ) $.
      dalem57.g $e |- G = ( ( c .\/ P ) ./\ ( d .\/ S ) ) $.
      dalem57.h $e |- H = ( ( c .\/ Q ) ./\ ( d .\/ T ) ) $.
      dalem57.i $e |- I = ( ( c .\/ R ) ./\ ( d .\/ U ) ) $.
      dalem57.b1 $e |- B = ( ( ( G .\/ H ) .\/ I ) ./\ Y ) $.
      $( Lemma for ~ dath .  Axis of perspectivity point ` D ` is on the
         auxiliary line ` B ` .  (Contributed by NM, 9-Aug-2012.) $)
      dalem57 $p |- ( ( ph /\ Y = Z /\ ps ) -> D .<_ B ) $=
        ( wceq w3a wbr dalem55 clat wcel cbs dalemkelat 3ad2ant1 chlt dalemkehl
        co cfv dalem23 dalem29 eqid hlatjcl syl3anc dalempjqeb latmle2 eqbrtrrd
        dalem56 dalemsjteb wa wb dalem54 atbase syl latlem12 syl13anc syl6breqr
        mpbi2and cal hlatl dalemdea atcmp mpbid clln dalem53 llnbase ) AUAUBUSZ
        BUTZMNPVJZDSVJZFDRWTXBFRVAZXBFUSZWTXBGHPVJZJKPVJZSVJZFRWTXBXERVAZXBXFRV
        AZXBXGRVAZWTXAXESVJZXBXERABCDEGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMU
        OUPUQURVBWTQVCVDZXAQVEVKZVDZXEXMVDZXKXERVAAWSXLBACEGHIJKLPQRTUAUBUEVFVG
        ZWTQVHVDZMCVDNCVDXNAWSXQBACEGHIJKLPQRTUAUBUEVIVGZABCEGHIJKLMPQRSTUAUBUC
        UDUEUFUGUHUIUJUKULUMUOVLABCEGHIJKLNPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUPVMC
        XMPQMNXMVNZUGUHVOVPZAWSXOBACEGHIJKLPQRTUAUBUEUGUHVQVGZXMQRSXAXEXSUFUJVR
        VPVSWTXAXFSVJZXBXFRABCDEGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUOUPUQU
        RVTWTXLXNXFXMVDZYBXFRVAXPXTAWSYCBACEGHIJKLPQRTUAUBUEUGUHWAVGZXMQRSXAXFX
        SUFUJVRVPVSWTXLXBXMVDZXOYCXHXIWBXJWCXPWTXBCVDZYEABCDEGHIJKLMNOPQRSTUAUB
        UCUDUEUFUGUHUIUJUKULUMUOUPUQURWDZCXMXBQXSUHWEWFYAYDXMQRSXBXEXFXSUFUJWGW
        HWJUNWIWTQWKVDZYFFCVDZXCXDWCWTXQYHXRQWLWFYGAWSYIBACEFGHIJKLPQRSTUAUBUEU
        FUGUHUJUKULUMUNWMVGCXBFQRUFUHWNVPWOWTXLXNDXMVDZXBDRVAXPXTWTDQWPVKZVDYJA
        BCDEGHIJKLMNOPQRSYKTUAUBUCUDUEUFUGUHUIUJYKVNZUKULUMUOUPUQURWQXMQYKDXSYL
        WRWFXMQRSXADXSUFUJVRVPVS $.
    $}

    ${
      dalem58.m $e |- ./\ = ( meet ` K ) $.
      dalem58.o $e |- O = ( LPlanes ` K ) $.
      dalem58.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem58.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem58.e $e |- E = ( ( Q .\/ R ) ./\ ( T .\/ U ) ) $.
      dalem58.g $e |- G = ( ( c .\/ P ) ./\ ( d .\/ S ) ) $.
      dalem58.h $e |- H = ( ( c .\/ Q ) ./\ ( d .\/ T ) ) $.
      dalem58.i $e |- I = ( ( c .\/ R ) ./\ ( d .\/ U ) ) $.
      dalem58.b1 $e |- B = ( ( ( G .\/ H ) .\/ I ) ./\ Y ) $.
      $( Lemma for ~ dath .  Analogue of ~ dalem57 for ` E ` .  (Contributed by
         NM, 10-Aug-2012.) $)
      dalem58 $p |- ( ( ph /\ Y = Z /\ ps ) -> E .<_ B ) $=
        ( wceq w3a co chlt wcel cbs cfv wa wbr wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid dalem57 syl3anc dalemkehl dalem29
        dalem34 dalem23 hlatjrot syl13anc dalemqrprot syl6eqr oveq12d breqtrd
        eqid ) AUAUBUSZBUTZLNOPVAMPVAZGHPVAZFPVAZSVAZDRWLQVBVCZEQVDVEVCVFGCVCHC
        VCFCVCUTJCVCKCVCICVCUTUTWOTVCJKPVAZIPVAZTVCVFEWNRVGVLEHFPVARVGVLEFGPVAZ
        RVGVLUTEWRRVGVLEKIPVARVGVLEIJPVARVGVLUTEGJPVARVGEHKPVARVGEFIPVARVGUTUTU
        TZWOWSUSZUCVMZCVCUDVMZCVCVFXCWORVGVLXDXCVHXDWORVGVLEXCXDPVARVGUTUTZLWPR
        VGAWKXABACEFGHIJKPQRTUAUBUEUFUGUHULUMVIVJAWKXBBACEFGHIJKPQRTUAUBUEUFUGU
        HULUMVKVNABXEWKABCEFGHIJKPQRTUAUBUCUDUEUFUGUHUIULVOVPXAXECWPELGHFJKINOM
        PQRSTWOWSUCUDXAVQUFUGUHXEVQUJUKWOWJWSWJUNUPUQUOWPWJVRVSWLWPMNPVAOPVAZUA
        SVADWLWMXFWOUASWLWQNCVCOCVCMCVCWMXFUSAWKWQBACEFGHIJKPQRTUAUBUEVTVJABCEF
        GHIJKNPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUPWAABCEFGHIJKOPQRSTUAUBUCUDUEUFUG
        UHUIUJUKULUMUQWBABCEFGHIJKMPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUOWCCNOMPQUGU
        HWDWEAWKWOUAUSBAWOWTHPVAUAACEFGHIJKPQRTUAUBUEUGUHWFULWGVJWHURWGWI $.
    $}

    ${
      dalem59.m $e |- ./\ = ( meet ` K ) $.
      dalem59.o $e |- O = ( LPlanes ` K ) $.
      dalem59.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem59.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem59.f $e |- F = ( ( R .\/ P ) ./\ ( U .\/ S ) ) $.
      dalem59.g $e |- G = ( ( c .\/ P ) ./\ ( d .\/ S ) ) $.
      dalem59.h $e |- H = ( ( c .\/ Q ) ./\ ( d .\/ T ) ) $.
      dalem59.i $e |- I = ( ( c .\/ R ) ./\ ( d .\/ U ) ) $.
      dalem59.b1 $e |- B = ( ( ( G .\/ H ) .\/ I ) ./\ Y ) $.
      $( Lemma for ~ dath .  Analogue of ~ dalem57 for ` F ` .  (Contributed by
         NM, 10-Aug-2012.) $)
      dalem59 $p |- ( ( ph /\ Y = Z /\ ps ) -> F .<_ B ) $=
        ( wceq w3a co chlt wcel cbs cfv wa wbr wne dalemrot 3ad2ant1 dalemrotyz
        wn cv 3adant3 dalemrotps 3adant2 biid dalem58 syl3anc dalemkehl dalem29
        dalem34 dalem23 hlatjrot syl13anc dalemqrprot syl6eqr oveq12d breqtrd
        eqid ) AUAUBUSZBUTZLNOPVAMPVAZGHPVAZFPVAZSVAZDRWLQVBVCZEQVDVEVCVFGCVCHC
        VCFCVCUTJCVCKCVCICVCUTUTWOTVCJKPVAZIPVAZTVCVFEWNRVGVLEHFPVARVGVLEFGPVAZ
        RVGVLUTEWRRVGVLEKIPVARVGVLEIJPVARVGVLUTEGJPVARVGEHKPVARVGEFIPVARVGUTUTU
        TZWOWSUSZUCVMZCVCUDVMZCVCVFXCWORVGVLXDXCVHXDWORVGVLEXCXDPVARVGUTUTZLWPR
        VGAWKXABACEFGHIJKPQRTUAUBUEUFUGUHULUMVIVJAWKXBBACEFGHIJKPQRTUAUBUEUFUGU
        HULUMVKVNABXEWKABCEFGHIJKPQRTUAUBUCUDUEUFUGUHUIULVOVPXAXECWPEGHFJKILNOM
        PQRSTWOWSUCUDXAVQUFUGUHXEVQUJUKWOWJWSWJUNUPUQUOWPWJVRVSWLWPMNPVAOPVAZUA
        SVADWLWMXFWOUASWLWQNCVCOCVCMCVCWMXFUSAWKWQBACEFGHIJKPQRTUAUBUEVTVJABCEF
        GHIJKNPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUPWAABCEFGHIJKOPQRSTUAUBUCUDUEUFUG
        UHUIUJUKULUMUQWBABCEFGHIJKMPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMUOWCCNOMPQUGU
        HWDWEAWKWOUAUSBAWOWTHPVAUAACEFGHIJKPQRTUAUBUEUGUHWFULWGVJWHURWGWI $.
    $}

    ${
      dalem60.m $e |- ./\ = ( meet ` K ) $.
      dalem60.o $e |- O = ( LPlanes ` K ) $.
      dalem60.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem60.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem60.d $e |- D = ( ( P .\/ Q ) ./\ ( S .\/ T ) ) $.
      dalem60.e $e |- E = ( ( Q .\/ R ) ./\ ( T .\/ U ) ) $.
      dalem60.g $e |- G = ( ( c .\/ P ) ./\ ( d .\/ S ) ) $.
      dalem60.h $e |- H = ( ( c .\/ Q ) ./\ ( d .\/ T ) ) $.
      dalem60.i $e |- I = ( ( c .\/ R ) ./\ ( d .\/ U ) ) $.
      dalem60.b1 $e |- B = ( ( ( G .\/ H ) .\/ I ) ./\ Y ) $.
      $( Lemma for ~ dath . ` B ` is an axis of perspectivity (almost).
         (Contributed by NM, 11-Aug-2012.) $)
      dalem60 $p |- ( ( ph /\ Y = Z /\ ps ) -> ( D .\/ E ) = B ) $=
        ( wceq w3a co wbr dalem57 dalem58 clat wcel cbs cfv dalemkelat 3ad2ant1
        wa dalemdea eqid atbase dalemeea clln dalem53 llnbase latjle12 syl13anc
        syl mpbi2and chlt dalemkehl wne dalemdnee llni2 syl31anc llncmp syl3anc
        wb mpbid ) AUBUCVAZBVBZFMQVCZDSVDZWQDVAZWPFDSVDZMDSVDZWRABCDEFGHIJKLNOP
        QRSTUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUQURUSUTVEABCDEGHIJKLMNOPQRSTUAUBUCUD
        UEUFUGUHUIUJUKULUMUNUPUQURUSUTVFWPRVGVHZFRVIVJZVHZMXCVHZDXCVHZWTXAVMWRW
        MAWOXBBACEGHIJKLQRSUAUBUCUFVKVLAWOXDBAFCVHZXDACEFGHIJKLQRSTUAUBUCUFUGUH
        UIUKULUMUNUOVNZCXCFRXCVOZUIVPWCVLAWOXEBAMCVHZXEACEGHIJKLMQRSTUAUBUCUFUG
        UHUIUKULUMUNUPVQZCXCMRXIUIVPWCVLWPDRVRVJZVHZXFABCDEGHIJKLNOPQRSTXLUAUBU
        CUDUEUFUGUHUIUJUKXLVOZULUMUNUQURUSUTVSZXCRXLDXIXNVTWCXCQRSFMDXIUGUHWAWB
        WDWPRWEVHZWQXLVHZXMWRWSWMAWOXPBACEGHIJKLQRSUAUBUCUFWFZVLAWOXQBAXPXGXJFM
        WGXQXRXHXKACEFGHIJKLMQRSTUAUBUCUFUGUHUIUKULUMUNUOUPWHCFMQRXLUHUIXNWIWJV
        LXORSXLWQDUGXNWKWLWN $.
    $}

    ${
      dalem61.m $e |- ./\ = ( meet ` K ) $.
      dalem61.o $e |- O = ( LPlanes ` K ) $.
      dalem61.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
      dalem61.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
      dalem61.d $e |- D = ( ( P .\/ Q ) ./\ ( S .\/ T ) ) $.
      dalem61.e $e |- E = ( ( Q .\/ R ) ./\ ( T .\/ U ) ) $.
      dalem61.f $e |- F = ( ( R .\/ P ) ./\ ( U .\/ S ) ) $.
      $( Lemma for ~ dath .  Show that atoms ` D ` , ` E ` , and ` F ` lie on
         the same line (axis of perspectivity).  Eliminate hypotheses
         containing dummy atoms ` c ` and ` d ` .  (Contributed by NM,
         11-Aug-2012.) $)
      dalem61 $p |- ( ( ph /\ Y = Z /\ ps ) -> F .<_ ( D .\/ E ) ) $=
        ( wceq w3a cv co eqid dalem59 dalem60 breqtrrd ) ASTUOBUPMUAUQZFNURUBUQ
        ZINURQURZVCGNURVDJNURQURZNURVCHNURVDKNURQURZNURSQURZELNURPABCVHDFGHIJKM
        VEVFVGNOPQRSTUAUBUCUDUEUFUGUHUIUJUKUNVEUSZVFUSZVGUSZVHUSZUTABCVHDEFGHIJ
        KLVEVFVGNOPQRSTUAUBUCUDUEUFUGUHUIUJUKULUMVIVJVKVLVAVB $.
    $}
  $}

  ${
    $d c d A $.  $d d C $.  $d c d D $.  $d c d E $.  $d c d F $.
    $d c d .\/ $.  $d c d K $.  $d c d .<_ $.  $d c P $.  $d c Q $.  $d c R $.
    $d c d Y $.  $d c d Z $.  $d c d ph $.
    dalem62.ph $e |- ( ph <-> ( ( ( K e. HL /\ C e. ( Base ` K ) )
    /\ ( P e. A /\ Q e. A /\ R e. A )
    /\ ( S e. A /\ T e. A /\ U e. A ) )
 /\ ( Y e. O /\ Z e. O )
 /\ ( ( -. C .<_ ( P .\/ Q ) /\ -. C .<_ ( Q .\/ R )
     /\ -. C .<_ ( R .\/ P ) )
    /\ ( -. C .<_ ( S .\/ T ) /\ -. C .<_ ( T .\/ U )
       /\ -. C .<_ ( U .\/ S ) )
    /\ ( C .<_ ( P .\/ S ) /\ C .<_ ( Q .\/ T )
       /\ C .<_ ( R .\/ U ) ) ) ) ) $.
    dalem62.l $e |- .<_ = ( le ` K ) $.
    dalem62.j $e |- .\/ = ( join ` K ) $.
    dalem62.a $e |- A = ( Atoms ` K ) $.
    dalem62.m $e |- ./\ = ( meet ` K ) $.
    dalem62.o $e |- O = ( LPlanes ` K ) $.
    dalem62.y $e |- Y = ( ( P .\/ Q ) .\/ R ) $.
    dalem62.z $e |- Z = ( ( S .\/ T ) .\/ U ) $.
    dalem62.d $e |- D = ( ( P .\/ Q ) ./\ ( S .\/ T ) ) $.
    dalem62.e $e |- E = ( ( Q .\/ R ) ./\ ( T .\/ U ) ) $.
    dalem62.f $e |- F = ( ( R .\/ P ) ./\ ( U .\/ S ) ) $.
    $( Lemma for ~ dath .  Eliminate the condition ` ps ` containing dummy
       variables ` c ` and ` d ` .  (Contributed by NM, 11-Aug-2012.) $)
    dalem62 $p |- ( ( ph /\ Y = Z ) -> F .<_ ( D .\/ E ) ) $=
      ( vc vd wceq wa cv wcel wbr wn wne co w3a wex biid dalem20 dalem61 3expia
      exlimdvv mpd ) ARSUMZUNZUKUOZBUPULUOZBUPUNVKROUQURVLVKUSVLROUQURCVKVLMUTO
      UQVAVAZULVBUKVBLDKMUTOUQZAVMBCEFGHIJMNOQRSUKULTUAUBUCVMVCZUEUFUGVDVJVMVNU
      KULAVIVMVNAVMBCDEFGHIJKLMNOPQRSUKULTUAUBUCVOUDUEUFUGUHUIUJVEVFVGVH $.

    $( Lemma for ~ dath .  Combine the cases where ` Y ` and ` Z ` are
       different planes with the case where ` Y ` and ` Z ` are the same plane.
       (Contributed by NM, 11-Aug-2012.) $)
    dalem63 $p |- ( ph -> F .<_ ( D .\/ E ) ) $=
      ( co wbr dalem62 dalem16 pm2.61dane ) ALDKMUKOULRSABCDEFGHIJKLMNOPQRSTUAU
      BUCUDUEUFUGUHUIUJUMABCDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUGUHUIUJUNUO $.
  $}

  ${
    dath.b $e |- B = ( Base ` K ) $.
    dath.l $e |- .<_ = ( le ` K ) $.
    dath.j $e |- .\/ = ( join ` K ) $.
    dath.a $e |- A = ( Atoms ` K ) $.
    dath.m $e |- ./\ = ( meet ` K ) $.
    dath.o $e |- O = ( LPlanes ` K ) $.
    dath.d $e |- D = ( ( P .\/ Q ) ./\ ( S .\/ T ) ) $.
    dath.e $e |- E = ( ( Q .\/ R ) ./\ ( T .\/ U ) ) $.
    dath.f $e |- F = ( ( R .\/ P ) ./\ ( U .\/ S ) ) $.
    $( Desargues' Theorem of projective geometry (proved for a Hilbert
       lattice).  Assume each triple of atoms (points) ` P Q R ` and ` S T U `
       forms a triangle (i.e. determines a plane).  Assume that lines ` P S ` ,
       ` Q T ` , and ` R U ` meet at a "center of perspectivity" ` C ` .  (We
       also assume that ` C ` is not on any of the 6 lines forming the two
       triangles.)  Then the atoms ` D = ( P .\/ Q ) ./\ ( S .\/ T ) ` ,
       ` E = ( Q .\/ R ) ./\ ( T .\/ U ) ` ,
       ` F = ( R .\/ P ) ./\ ( U .\/ S ) ` are colinear, forming an "axis of
       perspectivity".

       Our proof roughly follows Theorem 2.7.1, p. 78 in Beutelspacher and
       Rosenbaum, _Projective Geometry:  From Foundations to Applications_,
       Cambridge University Press (1988).  Unlike them, we don't assume ` C `
       is an atom to make this theorem slightly more general for easier future
       use.  However, we prove that ` C ` must be an atom in ~ dalemcea .

       For a visual demonstration, see the "Desargue's Theorem" applet at
       ~ http://www.dynamicgeometry.com/JavaSketchpad/Gallery.html .  The
       points I, J, and K there define the axis of perspectivity.

       See theorem ~ dalaw for Desargues Law, which eliminates all of the
       preconditions on the atoms except for central perspectivity.  This is
       Metamath 100 proof #87.  (Contributed by NM, 20-Aug-2012.) $)
    dath $p |- ( ( ( ( K e. HL /\ C e. B )
    /\ ( P e. A /\ Q e. A /\ R e. A )
    /\ ( S e. A /\ T e. A /\ U e. A ) )
 /\ ( ( ( P .\/ Q ) .\/ R ) e. O /\ ( ( S .\/ T ) .\/ U ) e. O )
 /\ ( ( -. C .<_ ( P .\/ Q ) /\ -. C .<_ ( Q .\/ R )
    /\ -. C .<_ ( R .\/ P ) )
    /\ ( -. C .<_ ( S .\/ T ) /\ -. C .<_ ( T .\/ U )
    /\ -. C .<_ ( U .\/ S ) )
    /\ ( C .<_ ( P .\/ S ) /\ C .<_ ( Q .\/ T )
     /\ C .<_ ( R .\/ U ) ) ) )
      -> F .<_ ( D .\/ E ) ) $=
      ( chlt wcel wa w3a co wbr wn cbs cfv eleq2i anbi2i 3anbi1i eqid dalem63 )
      NUGUHZCBUHZUIZEAUHFAUHGAUHUJZHAUHIAUHJAUHUJZUJZEFMUKZGMUKZQUHHIMUKZJMUKZQ
      UHUIZCVGOULUMCFGMUKOULUMCGEMUKOULUMUJCVIOULUMCIJMUKOULUMCJHMUKOULUMUJCEHM
      UKOULCFIMUKOULCGJMUKOULUJUJZUJACDEFGHIJKLMNOPQVHVJVFVACNUNUOZUHZUIZVDVEUJ
      VKVLVCVOVDVEVBVNVABVMCRUPUQURURSTUAUBUCVHUSVJUSUDUEUFUT $.
  $}

  ${
    dathb.b $e |- B = ( Base ` K ) $.
    dathb.l $e |- .<_ = ( le ` K ) $.
    dathb.j $e |- .\/ = ( join ` K ) $.
    dathb.a $e |- A = ( Atoms ` K ) $.
    dathb.m $e |- ./\ = ( meet ` K ) $.
    dathb.o $e |- O = ( LPlanes ` K ) $.
    dathb.d $e |- D = ( ( P .\/ Q ) ./\ ( S .\/ T ) ) $.
    dathb.e $e |- E = ( ( Q .\/ R ) ./\ ( T .\/ U ) ) $.
    dathb.f $e |- F = ( ( R .\/ P ) ./\ ( U .\/ S ) ) $.
    $( Version of Desargues' Theorem ~ dath with a different variable ordering.
       (Contributed by NM, 7-Oct-2012.) $)
    dath2 $p |- ( ( ( ( K e. HL /\ C e. B )
    /\ ( P e. A /\ Q e. A /\ R e. A )
    /\ ( S e. A /\ T e. A /\ U e. A ) )
 /\ ( ( ( P .\/ Q ) .\/ R ) e. O /\ ( ( S .\/ T ) .\/ U ) e. O )
 /\ ( ( -. C .<_ ( P .\/ Q ) /\ -. C .<_ ( Q .\/ R )
      /\ -. C .<_ ( R .\/ P ) )
    /\ ( -. C .<_ ( S .\/ T ) /\ -. C .<_ ( T .\/ U )
        /\ -. C .<_ ( U .\/ S ) )
    /\ ( C .<_ ( P .\/ S ) /\ C .<_ ( Q .\/ T )
        /\ C .<_ ( R .\/ U ) ) ) )
      -> D .<_ ( E .\/ F ) ) $=
      ( chlt wcel wa w3a co wbr wn simp122 simp123 simp121 3jca simp132 simp133
      simp11 simp131 wceq simp11l simp2l eqeltrd simp2r simp312 simp313 simp311
      hlatjrot syl13anc simp322 simp323 simp321 simp332 simp333 dath syl323anc
      simp331 ) NUGUHZCBUHZUIZEAUHZFAUHZGAUHZUJZHAUHZIAUHZJAUHZUJZUJZEFMUKZGMUK
      ZQUHZHIMUKZJMUKZQUHZUIZCWLOULUMZCFGMUKZOULUMZCGEMUKOULUMZUJZCWOOULUMZCIJM
      UKZOULUMZCJHMUKOULUMZUJZCEHMUKOULZCFIMUKOULZCGJMUKOULZUJZUJZUJZWBWDWEWCUJ
      WHWIWGUJWTEMUKZQUHXEHMUKZQUHXAXBWSUJXFXGXDUJXJXKXIUJDKLMUKOULWBWFWJWRXMUT
      XNWDWEWCWCWDWEWBWJWRXMUNZWCWDWEWBWJWRXMUOZWCWDWEWBWJWRXMUPZUQXNWHWIWGWGWH
      WIWBWFWRXMURZWGWHWIWBWFWRXMUSZWGWHWIWBWFWRXMVAZUQXNXOWMQXNVTWDWEWCXOWMVBV
      TWAWFWJWRXMVCZXQXRXSAFGEMNTUAVJVKWKWNWQXMVDVEXNXPWPQXNVTWHWIWGXPWPVBYCXTY
      AYBAIJHMNTUAVJVKWKWNWQXMVFVEXNXAXBWSWSXAXBXHXLWKWRVGWSXAXBXHXLWKWRVHWSXAX
      BXHXLWKWRVIUQXNXFXGXDXDXFXGXCXLWKWRVLXDXFXGXCXLWKWRVMXDXFXGXCXLWKWRVNUQXN
      XJXKXIXIXJXKXCXHWKWRVOXIXJXKXCXHWKWRVPXIXJXKXCXHWKWRVSUQABCKFGEIJHLDMNOPQ
      RSTUAUBUCUEUFUDVQVR $.
  $}

  ${
    $d k p q r s A $.  $d k p q r s K $.  $d k s .\/ $.  $d k s .<_ $.
    lineset.l $e |- .<_ = ( le ` K ) $.
    lineset.j $e |- .\/ = ( join ` K ) $.
    lineset.a $e |- A = ( Atoms ` K ) $.
    lineset.n $e |- N = ( Lines ` K ) $.
    $( The set of lines in a Hilbert lattice.  (Contributed by NM,
       19-Sep-2011.) $)
    lineset $p |- ( K e. B -> N = { s | E. q e. A E. r e. A ( q =/= r /\
                      s = { p e. A | p .<_ ( q .\/ r ) } ) } ) $=
      ( cvv cv wceq wrex cab cfv vk wcel wne wbr crab elex clines cjn cple catm
      co wa fveq2 syl6eqr breqd breq2d rabeqbidv eqeq2d anbi2d rexeqbidv abbidv
      oveqd bitrd df-lines fvex eqeltri csn df-sn snex eqeltrri simpr ab2rexex2
      ss2abi ssexi fvmpt syl5eq syl ) DBUBDOUBZFIPZHPZUCZGPZJPZVSVTCUKZEUDZJAUE
      ZQZULZHARZIARZGSZQDBUFVRFDUGTWKNUADWAWBWCVSVTUAPZUHTZUKZWLUITZUDZJWLUJTZU
      EZQZULZHWQRZIWQRZGSWKOUGWLDQZXBWJGXCXAWIIWQAXCWQDUJTZAWLDUJUMMUNZXCWTWHHW
      QAXEXCWSWGWAXCWRWFWBXCWPWEJWQAXEXCWPWCWNEUDWEXCWOEWCWNXCWODUITEWLDUIUMKUN
      UOXCWNWDWCEXCWMCVSVTXCWMDUHTCWLDUHUMLUNVBUPVCUQURUSUTUTVAUAGHIJVDWHIHGAAA
      XDOMDUJVEVFZXFWHGSWGGSZWFVGXGOGWFVHWFVIVJWHWGGWAWGVKVMVNVLVOVPVQ $.
  $}

  ${
    $d p q r x A $.  $d p q r x K $.  $d x .\/ $.  $d x .<_ $.  $d q r x X $.
    isline.l $e |- .<_ = ( le ` K ) $.
    isline.j $e |- .\/ = ( join ` K ) $.
    isline.a $e |- A = ( Atoms ` K ) $.
    isline.n $e |- N = ( Lines ` K ) $.
    $( The predicate "is a line".  (Contributed by NM, 19-Sep-2011.) $)
    isline $p |- ( K e. D -> ( X e. N <-> E. q e. A E. r e. A ( q =/= r /\
                      X = { p e. A | p .<_ ( q .\/ r ) } ) ) ) $=
      ( vx wcel cv wceq wrex cvv wne co wbr crab wa cab lineset eleq2d catm cfv
      wi fvex eqeltri rabex eleq1 mpbiri adantl rexlimivv eqeq1 anbi2d 2rexbidv
      a1i elab3 syl6bb ) DBPZGFPGIQZHQZUAZOQZJQVFVGCUBEUCZJAUDZRZUEZHASIASZOUFZ
      PVHGVKRZUEZHASIASZVEFVOGABCDEFOHIJKLMNUGUHVNVROGVQGTPZIHAAVQVSUKVFAPVGAPU
      EVPVSVHVPVSVKTPVJJAADUIUJTMDUIULUMUNGVKTUOUPUQVBURVIGRZVMVQIHAAVTVLVPVHVI
      GVKUSUTVAVCVD $.

    $d q r .\/ $.  $d q r .<_ $.  $d p q r Q $.  $d p r R $.
    $( Condition implying "is a line".  (Contributed by NM, 3-Feb-2012.) $)
    islinei $p |- ( ( ( K e. D /\ Q e. A /\ R e. A ) /\ ( Q =/= R /\
      X = { p e. A | p .<_ ( Q .\/ R ) } ) ) -> X e. N ) $=
      ( vq vr wcel wne wceq wa w3a cv co wbr crab wrex simpl2 simpr neeq1 oveq1
      simpl3 breq2d rabbidv eqeq2d anbi12d neeq2 oveq2 rspc2ev wb simpl1 isline
      syl3anc syl mpbird ) FBQZCAQZDAQZUAZCDRZIJUBZCDEUCZGUDZJAUEZSZTZTZIHQZOUB
      ZPUBZRZIVJVRVSEUCZGUDZJAUEZSZTZPAUFOAUFZVPVFVGVOWFVEVFVGVOUGVEVFVGVOUKVHV
      OUHWEVOCVSRZIVJCVSEUCZGUDZJAUEZSZTOPCDAAVRCSZVTWGWDWKVRCVSUIWLWCWJIWLWBWI
      JAWLWAWHVJGVRCVSEUJULUMUNUOVSDSZWGVIWKVNVSDCUPWMWJVMIWMWIVLJAWMWHVKVJGVSD
      CEUQULUMUNUOURVBVPVEVQWFUSVEVFVGVOUTABEFGHIPOJKLMNVAVCVD $.
  $}

  ${
    $d a k p A $.  $d k p K $.
    pointset.a $e |- A = ( Atoms ` K ) $.
    pointset.p $e |- P = ( Points ` K ) $.
    $( The set of points in a Hilbert lattice.  (Contributed by NM,
       2-Oct-2011.)  (New usage is discouraged.) $)
    pointsetN $p |- ( K e. B -> P = { p | E. a e. A p = { a } } ) $=
      ( vk wcel cvv cv csn wceq wrex cab elex cpointsN cfv catm syl6eqr rexeqdv
      fveq2 abbidv df-pointsN fvex eqeltri abrexex fvmpt syl5eq syl ) DBJDKJZCE
      LFLMZNZFAOZEPZNDBQULCDRSUPHIDUNFILZTSZOZEPUPKRUQDNZUSUOEUTUNFURAUTURDTSZA
      UQDTUCGUAUBUDIEFUEFEAUMAVAKGDTUFUGUHUIUJUK $.
  $}

  ${
    $d a x A $.  $d x K $.  $d a x X $.
    ispoint.a $e |- A = ( Atoms ` K ) $.
    ispoint.p $e |- P = ( Points ` K ) $.
    $( The predicate "is a point".  (Contributed by NM, 2-Oct-2011.)
       (New usage is discouraged.) $)
    ispointN $p |- ( K e. D -> ( X e. P <-> E. a e. A X = { a } ) ) $=
      ( vx wcel cv csn wceq wrex cab pointsetN eleq2d cvv snex eleq1 rexlimivw
      mpbiri eqeq1 rexbidv elab3 syl6bb ) DBJZECJEIKZFKZLZMZFANZIOZJEUJMZFANZUG
      CUMEABCDIFGHPQULUOIEUNERJZFAUNUPUJRJUISEUJRTUBUAUHEMUKUNFAUHEUJUCUDUEUF
      $.

    $( The singleton of an atom is a point.  (Contributed by NM, 14-Jan-2012.)
       (New usage is discouraged.) $)
    atpointN $p |- ( ( K e. D /\ X e. A ) -> { X } e. P ) $=
      ( vx wcel wa csn cv wceq wrex eqid sneq eqeq2d rspcev mpan2 adantl adantr
      wb ispointN mpbird ) DBIZEAIZJEKZCIZUGHLZKZMZHANZUFULUEUFUGUGMZULUGOUKUMH
      EAUIEMUJUGUGUIEPQRSTUEUHULUBUFABCDUGHFGUCUAUD $.
  $}

  ${
    $d k r s A $.  $d k p q r s K $.  $d k .\/ $.  $d k .<_ $.
    psubspset.l $e |- .<_ = ( le ` K ) $.
    psubspset.j $e |- .\/ = ( join ` K ) $.
    psubspset.a $e |- A = ( Atoms ` K ) $.
    psubspset.s $e |- S = ( PSubSp ` K ) $.
    $( The set of projective subspaces in a Hilbert lattice.  (Contributed by
       NM, 2-Oct-2011.) $)
    psubspset $p |- ( K e. B -> S = { s | ( s C_ A
    /\ A. p e. s A. q e. s A. r e. A ( r .<_ ( p .\/ q ) -> r e. s ) ) } ) $=
      ( vk wcel cv wral cfv catm cvv wss co wbr wi wa cab wceq elex cpsubsp cjn
      fveq2 syl6eqr sseq2d oveqd breq2d breqd imbi1d raleqbidv 2ralbidv anbi12d
      cple bitrd abbidv df-psubsp fvex eqeltri pwex selpw anbi1i abbii eqsstr3i
      cpw ssab2 ssexi fvmpt syl5eq syl ) EBPEUAPZCGQZAUBZHQZJQZIQZDUCZFUDZWBVTP
      ZUEZHARZIVTRJVTRZUFZGUGZUHEBUIVSCEUJSWLNOEVTOQZTSZUBZWBWCWDWMUKSZUCZWMVBS
      ZUDZWGUEZHWNRZIVTRJVTRZUFZGUGWLUAUJWMEUHZXCWKGXDWOWAXBWJXDWNAVTXDWNETSZAW
      METULMUMZUNXDXAWIJIVTVTXDWTWHHWNAXFXDWSWFWGXDWSWBWEWRUDWFXDWQWEWBWRXDWPDW
      CWDXDWPEUKSDWMEUKULLUMUOUPXDWRFWBWEXDWREVBSFWMEVBULKUMUQVCURUSUTVAVDOGHIJ
      VEWLAVMZAAXEUAMETVFVGVHWLVTXGPZWJUFZGUGXGXIWKGXHWAWJGAVIVJVKWJGXGVNVLVOVP
      VQVR $.

    $d x A $.  $d x K $.  $d x .\/ $.  $d x .<_ $.  $d p q r x X $.
    $( The predicate "is a projective subspace".  (Contributed by NM,
       2-Oct-2011.) $)
    ispsubsp $p |- ( K e. D -> ( X e. S <-> ( X C_ A
    /\ A. p e. X A. q e. X A. r e. A ( r .<_ ( p .\/ q ) -> r e. X ) ) ) ) $=
      ( vx wcel cv wss wi wral co wbr wa cab psubspset eleq2d cvv catm cfv fvex
      eqeltri adantr sseq1 eleq2 imbi2d ralbidv raleqbi1dv anbi12d elab3 syl6bb
      ssex wceq ) EBPZGCPGOQZARZHQZJQIQDUAFUBZVFVDPZSZHATZIVDTZJVDTZUCZOUDZPGAR
      ZVGVFGPZSZHATZIGTZJGTZUCZVCCVNGABCDEFOHIJKLMNUEUFVMWAOGVOGUGPVTGAAEUHUIUG
      MEUHUJUKVAULVDGVBZVEVOVLVTVDGAUMVKVSJVDGVJVRIVDGWBVIVQHAWBVHVPVGVDGVFUNUO
      UPUQUQURUSUT $.

    $d p q A $.
    $( The predicate "is a projective subspace".  (Contributed by NM,
       13-Jan-2012.) $)
    ispsubsp2 $p |- ( K e. D -> ( X e. S <-> ( X C_ A
    /\ A. p e. A ( E. q e. X E. r e. X p .<_ ( q .\/ r ) -> p e. X ) ) ) ) $=
      ( wcel cv wi wral ralbii bitri wss co wbr wa wrex ispsubsp ralcom r19.23v
      wb a1i anbi2d bitrd ) EBOZGCOGAUAZJPZIPHPDUBFUCZUOGOZQZJARHGRZIGRZUDUNUPH
      GUEZIGUEUQQZJARZUDABCDEFGJHIKLMNUFUMUTVCUNUTVCUIUMUTVAUQQZJARZIGRZVCUSVEI
      GUSURHGRZJARVEURHJGAUGVGVDJAUPUQHGUHSTSVFVDIGRZJARVCVDIJGAUGVHVBJAVAUQIGU
      HSTTUJUKUL $.

    $d p .\/ $.  $d p .<_ $.  $d p q r P $.
    $( Property of a projective subspace.  (Contributed by NM, 13-Jan-2012.) $)
    psubspi $p |- ( ( ( K e. D /\ X e. S /\ P e. A ) /\
         E. q e. X E. r e. X P .<_ ( q .\/ r ) ) -> P e. X ) $=
      ( vp wcel cv wbr wrex wi co wral wss ispsubsp2 simplbda ex breq1 2rexbidv
      wceq eleq1 imbi12d rspccv syl6 3imp1 ) FBPZHDPZCAPZCJQIQEUAZGRZIHSJHSZCHP
      ZUOUPOQZURGRZIHSJHSZVBHPZTZOAUBZUQUTVATZTUOUPVGUOUPHAUCVGABDEFGHIJOKLMNUD
      UEUFVFVHOCAVBCUIZVDUTVEVAVIVCUSJIHHVBCURGUGUHVBCHUJUKULUMUN $.

    $d q r .\/ $.  $d q r .<_ $.  $d q r Q $.  $d r R $.
    $( Property of a projective subspace.  (Contributed by NM, 13-Jan-2012.)
       (New usage is discouraged.) $)
    psubspi2N $p |- ( ( ( K e. D /\ X e. S /\ P e. A )
       /\ ( Q e. X /\ R e. X /\ P .<_ ( Q .\/ R ) ) ) -> P e. X ) $=
      ( vq vr wcel co wbr w3a cv wrex oveq1 breq2d oveq2 rspc2ev psubspi sylan2
      wceq ) DJQEJQCDEGRZISZTHBQJFQCAQTCOUAZPUAZGRZISZPJUBOJUBCJQUOUKCDUMGRZISO
      PDEJJULDUIUNUPCIULDUMGUCUDUMEUIUPUJCIUMEDGUEUDUFABCFGHIJPOKLMNUGUH $.
  $}

  ${
    $d p q r K $.
    0psub.s $e |- S = ( PSubSp ` K ) $.
    $( The empty set is a projective subspace.  Remark below Definition 15.1 of
       [MaedaMaeda] p. 61.  (Contributed by NM, 13-Oct-2011.)
       (New usage is discouraged.) $)
    0psubN $p |- ( K e. V -> (/) e. S ) $=
      ( vr vp vq wcel c0 catm cfv wss cv cjn co cple wbr wi wral eqid wa pm3.2i
      0ss ral0 ispsubsp mpbiri ) BCHIAHIBJKZLZEMZFMGMBNKZOBPKZQUIIHREUGSGISZFIS
      ZUAUHUMUGUCULFUDUBUGCAUJBUKIEGFUKTUJTUGTDUEUF $.
  $}

  ${
    $d p q r A $.  $d p q r K $.  $d p q r P $.
    snpsub.a $e |- A = ( Atoms ` K ) $.
    snpsub.s $e |- S = ( PSubSp ` K ) $.
    $( The singleton of an atom is a projective subspace.  (Contributed by NM,
       9-Sep-2013.)  (New usage is discouraged.) $)
    snatpsubN $p |- ( ( K e. AtLat /\ P e. A ) -> { P } e. S ) $=
      ( vr vp vq cal wcel cv cfv co wbr wral wa wceq eqid velsn csn wss cple wi
      cjn snssi adantl clat atllat atbase latjidm syl2an adantr breq2d wb atcmp
      cbs 3com23 3expa biimpd sylbid adantld anbi12i anbi1i pm5.32i bitri exp4b
      oveq12 3imtr4g com23 ralrimdv ralrimivv jca ex ispsubsp sylibrd imp ) DJK
      ZBAKZBUAZCKZVRVSVTAUBZGLZHLZILZDUEMZNZDUCMZOZWCVTKZUDZGAPZIVTPHVTPZQZWAVR
      VSWNVRVSQZWBWMVSWBVRBAUFUGWOWLHIVTVTWOWDVTKZWEVTKZQZWKGAWOWCAKZWRWKWOWSWR
      WIWJWOWSQZWDBRZWEBRZQZWCBBWFNZWHOZQZWCBRZWRWIQZWJWTXEXGXCWTXEWCBWHOZXGWTX
      DBWCWHWOXDBRZWSVRDUHKBDUQMZKXJVSDUIAXKBDXKSZEUJXKWFDBXLWFSZUKULUMUNWTXIXG
      VRVSWSXIXGUOZVRWSVSXNAWCBDWHWHSZEUPURUSUTVAVBXHXCWIQXFWRXCWIWPXAWQXBHBTIB
      TVCVDXCWIXEXCWGXDWCWHWDBWEBWFVHUNVEVFGBTVIVGVJVKVLVMVNAJCWFDWHVTGIHXOXMEF
      VOVPVQ $.
  $}

  ${
    $d q K $.  $d q S $.  $d q X $.
    pointpsub.p $e |- P = ( Points ` K ) $.
    pointpsub.s $e |- S = ( PSubSp ` K ) $.
    $( A point (singleton of an atom) is a projective subspace.  Remark below
       Definition 15.1 of [MaedaMaeda] p. 61.  (Contributed by NM,
       13-Oct-2011.)  (New usage is discouraged.) $)
    pointpsubN $p |- ( ( K e. AtLat /\ X e. P ) -> X e. S ) $=
      ( vq cal wcel cv csn wceq catm cfv wrex eqid ispointN wi snatpsubN ex imp
      eleq1a syl6 rexlimdv sylbid ) CHIZDAIZDBIZUFUGDGJZKZLZGCMNZOUHULHACDGULPZ
      EQUFUKUHGULUFUIULIZUJBIZUKUHRUFUNUOULUIBCUMFSTUJBDUBUCUDUEUA $.
  $}

  ${
    $d a b c p q r K $.  $d a b c p q r X $.
    linepsub.n $e |- N = ( Lines ` K ) $.
    linepsub.s $e |- S = ( PSubSp ` K ) $.
    $( A line is a projective subspace.  (Contributed by NM, 16-Oct-2011.)
       (New usage is discouraged.) $)
    linepsubN $p |- ( ( K e. Lat /\ X e. N ) -> X e. S ) $=
      ( va vb vc vr vp vq wcel cv cfv wbr wa wi eqid atbase clat cple catm crab
      wne cjn co wceq wrex wss ssrab2 sseq1 mpbiri a1i cbs anim12i latjcl 3expb
      wral sylan2 eleq2 breq1 elrab anim1i syl6bi anim12d an4 syl6ib imp anim2i
      sylbi anassrs latjle12 biimpd 3exp2 com23 imp43 adantr 3expib lattr com24
      w3a impd syl5d imp41 adantlrr mpan2d syl2an simpr jctild ad3antlr sylibrd
      wb syl6bb ralrimiva ralrimivva ex syldan jcad adantld rexlimdvva ispsubsp
      isline 3imtr4d ) BUAMZDCMZDAMZXEGNZHNZUEZDINZXHXIBUFOZUGZBUBOZPZIBUCOZUDZ
      UHZQZHXPUIGXPUIDXPUJZJNZKNZLNZXLUGZXNPZYADMZRZJXPUSZLDUSKDUSZQZXFXGXEXSYJ
      GHXPXPXEXHXPMZXIXPMZQZQZXRYJXJYNXRXTYIXRXTRYNXRXTXQXPUJXOIXPUKDXQXPULUMUN
      XEYMXMBUOOZMZXRYIRYMXEXHYOMZXIYOMZQYPYKYQYLYRXPYOXHBYOSZXPSZTXPYOXIBYSYTT
      UPXEYQYRYPYOXLBXHXIYSXLSZUQURUTXEYPQZXRYIUUBXRQZYHKLDDUUCYBDMZYCDMZQZQZYG
      JXPUUGYAXPMZQZYEUUHYAXMXNPZQZYFUUIYEUUJUUHUUGUUBYBYOMZYCYOMZQZYBXMXNPZYCX
      MXNPZQZQZQZYAYOMZYEUUJRUUHUUBXRUUFUUSXRUUFQUURUUBXRUUFUURXRUUFUULUUOQZUUM
      UUPQZQUURXRUUDUVAUUEUVBXRUUDYBXQMZUVADXQYBVAUVCYBXPMZUUOQUVAXOUUOIYBXPXKY
      BXMXNVBVCUVDUULUUOXPYOYBBYSYTTVDVKVEXRUUEYCXQMZUVBDXQYCVAUVEYCXPMZUUPQUVB
      XOUUPIYCXPXKYCXMXNVBVCUVFUUMUUPXPYOYCBYSYTTVDVKVEVFUULUUOUUMUUPVGVHVIVJVL
      XPYOYABYSYTTUUSUUTQYEYDXMXNPZUUJUUSUVGUUTXEYPUUNUUQUVGXEUUNYPUUQUVGRZXEUU
      LUUMYPUVHRXEUULUUMYPUVHXEUULUUMYPWBQUUQUVGYOXLBXNYBYCXMYSXNSZUUAVMVNVOWCV
      PVQVRUUBUUNUUTYEUVGQUUJRZUUQXEYPUUNUUTUVJXEUUNYDYOMZYPUUTUVJRXEUULUUMUVKY
      OXLBYBYCYSUUAUQVSXEUUTUVKYPUVJXEUUTUVKYPUVJYOBXNYAYDXMYSUVIVTVOWAWDWEWFWG
      WHUUGUUHWIWJXRYFUUKWMUUBUUFUUHXRYFYAXQMUUKDXQYAVAXOUUJIYAXPXKYAXMXNVBVCWN
      WKWLWOWPWQWRWSWTXAXPUAXLBXNCDHGIUVIUUAYTEXCXPUAAXLBXNDJLKUVIUUAYTFXBXDVI
      $.
  $}

  ${
    $d p q r A $.  $d p q r K $.  $d p q r X $.
    atpsub.a $e |- A = ( Atoms ` K ) $.
    atpsub.s $e |- S = ( PSubSp ` K ) $.
    $( The set of all atoms is a projective subspace.  Remark below Definition
       15.1 of [MaedaMaeda] p. 61.  (Contributed by NM, 13-Oct-2011.)
       (New usage is discouraged.) $)
    atpsubN $p |- ( K e. V -> A e. S ) $=
      ( vr vp vq wcel wss cv cjn cfv co cple wbr wi wral eqid wa ssid ax-1 rgen
      rgen2w pm3.2i ispsubsp mpbiri ) CDJABJAAKZGLZHLILCMNZOCPNZQZUJAJZRZGASZIA
      SHASZUAUIUQAUBUPHIAAUOGAUNUMUCUDUEUFADBUKCULAGIHULTUKTEFUGUH $.

    $( A projective subspace consists of atoms.  (Contributed by NM,
       4-Nov-2011.) $)
    psubssat $p |- ( ( K e. B /\ X e. S ) -> X C_ A ) $=
      ( vr vp vq wcel wss cv cjn cfv co cple wbr wral eqid wi ispsubsp simprbda
      ) DBKECKEALHMZIMJMDNOZPDQOZRUDEKUAHASJESIESABCUEDUFEHJIUFTUETFGUBUC $.

    $( A member of a projective subspace is an atom.  (Contributed by NM,
       4-Nov-2011.)  (New usage is discouraged.) $)
    psubatN $p |- ( ( K e. B /\ X e. S /\ Y e. X ) -> Y e. A ) $=
      ( wcel wa psubssat sseld 3impia ) DBIZECIZFEIFAINOJEAFABCDEGHKLM $.
  $}

  ${
    $d a k A $.  $d k x B $.  $d a k x K $.  $d k .<_ $.
    pmapfval.b $e |- B = ( Base ` K ) $.
    pmapfval.l $e |- .<_ = ( le ` K ) $.
    pmapfval.a $e |- A = ( Atoms ` K ) $.
    pmapfval.m $e |- M = ( pmap ` K ) $.
    $( The projective map of a Hilbert lattice.  (Contributed by NM,
       2-Oct-2011.) $)
    pmapfval $p |- ( K e. C -> M = ( x e. B |-> { a e. A | a .<_ x } ) ) $=
      ( vk cvv cv cfv cbs cple catm fveq2 wcel wbr crab cmpt wceq cpmap syl6eqr
      elex breqd rabeqbidv mpteq12dv df-pmap fvex eqeltri mptex fvmpt syl5eq
      syl ) EDUAENUAZGACHOZAOZFUBZHBUCZUDZUEEDUHUSGEUFPVDLMEAMOZQPZUTVAVERPZUBZ
      HVESPZUCZUDVDNUFVEEUEZAVFVJCVCVKVFEQPZCVEEQTIUGVKVHVBHVIBVKVIESPBVEESTKUG
      VKVGFUTVAVKVGERPFVEERTJUGUIUJUKMHAULACVCCVLNIEQUMUNUOUPUQUR $.

    $d x A $.  $d x .<_ $.  $d a x X $.  $d x P $.
    $( Value of the projective map of a Hilbert lattice.  Definition in Theorem
       15.5 of [MaedaMaeda] p. 62.  (Contributed by NM, 2-Oct-2011.) $)
    pmapval $p |- ( ( K e. C /\ X e. B )
   -> ( M ` X ) = { a e. A | a .<_ X } ) $=
      ( vx wcel cfv cv wbr crab cmpt catm pmapfval fveq1d wceq rabbidv eqid cvv
      breq2 fvex eqeltri rabex fvmpt sylan9eq ) DCNZGBNGFOGMBHPZMPZEQZHARZSZOUN
      GEQZHARZUMGFURMABCDEFHIJKLUAUBMGUQUTBURUOGUCUPUSHAUOGUNEUGUDURUEUSHAADTOU
      FKDTUHUIUJUKUL $.

    $( Member of a projective map.  (Contributed by NM, 27-Jan-2012.) $)
    elpmap $p |- ( ( K e. C /\ X e. B ) -> ( P e. ( M ` X ) <->
          ( P e. A /\ P .<_ X ) ) ) $=
      ( vx wcel wa cfv cv wbr crab pmapval eleq2d breq1 elrab syl6bb ) ECNHBNOZ
      DHGPZNDMQZHFRZMASZNDANDHFRZOUEUFUIDABCEFGHMIJKLTUAUHUJMDAUGDHFUBUCUD $.
  $}

  ${
    $d p A $.  $d p K $.  $d p X $.
    pmapssat.b $e |- B = ( Base ` K ) $.
    pmapssat.a $e |- A = ( Atoms ` K ) $.
    pmapssat.m $e |- M = ( pmap ` K ) $.
    $( The projective map of a Hilbert lattice is a set of atoms.  (Contributed
       by NM, 14-Jan-2012.) $)
    pmapssat $p |- ( ( K e. C /\ X e. B ) -> ( M ` X ) C_ A ) $=
      ( vp wcel wa cfv cv cple wbr crab eqid pmapval ssrab2 syl6eqss ) DCKFBKLF
      EMJNFDOMZPZJAQAABCDUBEFJGUBRHISUCJATUA $.
  $}

  ${
    pmapssba.b $e |- B = ( Base ` K ) $.
    pmapssba.m $e |- M = ( pmap ` K ) $.
    $( A weakening of ~ pmapssat to shorten some proofs.  (Contributed by NM,
       7-Mar-2012.)  (New usage is discouraged.) $)
    pmapssbaN $p |- ( ( K e. C /\ X e. B ) -> ( M ` X ) C_ B ) $=
      ( wcel wa cfv catm eqid pmapssat atssbase syl6ss ) CBHEAHIEDJCKJZAPABCDEF
      PLZGMPACFQNO $.
  $}

  ${
    $d p B $.  $d p K $.  $d p .<_ $.  $d p X $.  $d p Y $.
    pmaple.b $e |- B = ( Base ` K ) $.
    pmaple.l $e |- .<_ = ( le ` K ) $.
    pmaple.m $e |- M = ( pmap ` K ) $.
    $( The projective map of a Hilbert lattice preserves ordering.  Part of
       Theorem 15.5 of [MaedaMaeda] p. 62.  (Contributed by NM,
       22-Oct-2011.) $)
    pmaple $p |- ( ( K e. HL /\ X e. B /\ Y e. B )
                   -> ( X .<_ Y <-> ( M ` X ) C_ ( M ` Y ) ) ) $=
      ( vp chlt wcel w3a wbr cfv crab wss wi eqid wceq cv catm cpo hlpos atbase
      wral postr exp4b 3expd com23 com34 3imp syl5 ralrimdv syl3an1 ss2rab club
      syl6ibr ccla hlclat ssrab2 atssbase sstri mp3an2 ex syl 3ad2ant1 coml cal
      lubss simp2 atlatmstc syl2anc simp3 breq12d sylibd impbid pmapval 3adant3
      hlomcmat 3adant2 sseq12d bitr4d ) BKLZEALZFALZMZEFCNZJUAZECNZJBUBOZPZWIFC
      NZJWKPZQZEDOZFDOZQWGWHWOWGWHWJWMRZJWKUFZWOWDBUCLZWEWFWHWSRBUDWTWEWFMZWHWR
      JWKXAWIWKLZWHWRXAXBWJWHWMXBWIALZXAWJWHWMRRZWKAWIBGWKSZUEWTWEWFXCXDRWTWEXC
      WFXDWTXCWEWFXDRWTXCWEWFXDWTXCWEWFMWJWHWMABCWIEFGHUGUHUIUJUKULUMUKUJUNUOWJ
      WMJWKUPURWGWOWLBUQOZOZWNXFOZCNZWHWDWEWOXIRZWFWDBUSLZXJBUTXKWOXIXKWNAQWOXI
      WNWKAWMJWKVAWKABGXEVBVCAWLWNXFBCGHXFSZVJVDVEVFVGWGXGEXHFCWGBVHLXKBVILMZWE
      XGETWDWEXMWFBVTVGZWDWEWFVKJWKAXFBCEGHXLXEVLVMWGXMWFXHFTXNWDWEWFVNJWKAXFBC
      FGHXLXEVLVMVOVPVQWGWPWLWQWNWDWEWPWLTWFWKAKBCDEJGHXEIVRVSWDWFWQWNTWEWKAKBC
      DFJGHXEIVRWAWBWC $.
  $}

  ${
    pmap11.b $e |- B = ( Base ` K ) $.
    pmap11.m $e |- M = ( pmap ` K ) $.
    $( The projective map of a Hilbert lattice is one-to-one.  Part of Theorem
       15.5 of [MaedaMaeda] p. 62.  (Contributed by NM, 22-Oct-2011.) $)
    pmap11 $p |- ( ( K e. HL /\ X e. B /\ Y e. B )
                   -> ( ( M ` X ) = ( M ` Y ) <-> X = Y ) ) $=
      ( chlt wcel w3a wceq cfv wss wa cple wbr clat wb hllat pmaple eqid 3com23
      latasymb syl3an1 anbi12d bitr3d eqss syl6rbbr ) BHIZDAIZEAIZJZDEKZDCLZECL
      ZMZUOUNMZNZUNUOKULDEBOLZPZEDUSPZNZUMURUIBQIUJUKVBUMRBSABUSDEFUSUAZUCUDULU
      TUPVAUQABUSCDEFVCGTUIUKUJVAUQRABUSCEDFVCGTUBUEUFUNUOUGUH $.
  $}

  ${
    $d q A $.  $d q K $.  $d q P $.
    pmapat.a $e |- A = ( Atoms ` K ) $.
    pmapat.m $e |- M = ( pmap ` K ) $.
    $( The projective map of an atom.  (Contributed by NM, 25-Jan-2012.) $)
    pmapat $p |- ( ( K e. HL /\ P e. A ) -> ( M ` P ) = { P } ) $=
      ( vq chlt wcel wa cfv cv cple wbr crab wceq csn cbs eqid atbase sylan2 wb
      pmapval cal hlatl ad2antrr simpr simplr atcmp syl3anc rabsn adantl 3eqtrd
      rabbidva ) CHIZBAIZJZBDKZGLZBCMKZNZGAOZUSBPZGAOZBQZUPUOBCRKZIURVBPAVFBCVF
      SZETAVFHCUTDBGVGUTSZEFUCUAUQVAVCGAUQUSAIZJCUDIZVIUPVAVCUBUOVJUPVICUEUFUQV
      IUGUOUPVIUHAUSBCUTVHEUIUJUNUPVDVEPUOGABUKULUM $.

    $( Member of the projective map of an atom.  (Contributed by NM,
       27-Jan-2012.) $)
    elpmapat $p |- ( ( K e. HL /\ P e. A )
   -> ( X e. ( M ` P ) <-> X = P ) ) $=
      ( chlt wcel wa cfv csn wceq pmapat eleq2d wb elsn2g adantl bitrd ) CHIZBA
      IZJZEBDKZIEBLZIZEBMZUBUCUDEABCDFGNOUAUEUFPTEBAQRS $.
  $}

  ${
    $d a K $.  $d a .0. $.
    pmap0.z $e |- .0. = ( 0. ` K ) $.
    pmap0.m $e |- M = ( pmap ` K ) $.
    $( Value of the projective map of a Hilbert lattice at lattice zero.  Part
       of Theorem 15.5.1 of [MaedaMaeda] p. 62.  (Contributed by NM,
       17-Oct-2011.) $)
    pmap0 $p |- ( K e. AtLat -> ( M ` .0. ) = (/) ) $=
      ( va cal wcel cfv cv cple wbr catm crab c0 cbs wceq eqid atl0cl pmapval
      mpdan wne wn wrex atnle0 nrexdv rabn0 sylnibr nne sylib eqtrd ) AGHZCBIZF
      JZCAKIZLZFAMIZNZOULCAPIZHUMURQUSACUSRZDSUQUSGAUOBCFUTUORZUQRZETUAULUROUBZ
      UCUROQULUPFUQUDVCULUPFUQUQUNAUOCVADVBUEUFUPFUQUGUHUROUIUJUK $.
  $}

  ${
    pmapeq0.b $e |- B = ( Base ` K ) $.
    pmapeq0.z $e |- .0. = ( 0. ` K ) $.
    pmapeq0.m $e |- M = ( pmap ` K ) $.
    $( A projective map value is zero iff its argument is lattice zero.
       (Contributed by NM, 27-Jan-2012.) $)
    pmapeq0 $p |- ( ( K e. HL /\ X e. B )
   -> ( ( M ` X ) = (/) <-> X = .0. ) ) $=
      ( chlt wcel wa cfv wceq c0 cal hlatl adantr pmap0 syl eqeq2d wb cops hlop
      op0cl pmap11 mpd3an3 bitr3d ) BIJZDAJZKZDCLZECLZMZUKNMDEMZUJULNUKUJBOJZUL
      NMUHUOUIBPQBCEGHRSTUHUIEAJZUMUNUAUJBUBJZUPUHUQUIBUCQABEFGUDSABCDEFHUEUFUG
      $.
  $}

  ${
    $d p A $.  $d p K $.  $d p .1. $.
    pmap1.u $e |- .1. = ( 1. ` K ) $.
    pmap1.a $e |- A = ( Atoms ` K ) $.
    pmap1.m $e |- M = ( pmap ` K ) $.
    $( Value of the projective map of a Hilbert lattice at lattice unit.  Part
       of Theorem 15.5.1 of [MaedaMaeda] p. 62.  (Contributed by NM,
       22-Oct-2011.)  (New usage is discouraged.) $)
    pmap1N $p |- ( K e. OP -> ( M ` .1. ) = A ) $=
      ( vp cops wcel cfv cv cple wbr crab cbs wceq eqid op1cl pmapval ralrimiva
      mpdan wral atbase ople1 sylan2 rabid2 sylibr eqtr4d ) CIJZBDKZHLZBCMKZNZH
      AOZAUJBCPKZJUKUOQUPBCUPRZESAUPICUMDBHUQUMRZFGTUBUJUNHAUCAUOQUJUNHAULAJUJU
      LUPJUNAUPULCUQFUDUPBCUMULUQUREUEUFUAUNHAUGUHUI $.
  $}

  ${
    $d p q r B $.  $d c p q r K $.  $d c p q r X $.
    pmapsub.b $e |- B = ( Base ` K ) $.
    pmapsub.s $e |- S = ( PSubSp ` K ) $.
    pmapsub.m $e |- M = ( pmap ` K ) $.
    $( The projective map of a Hilbert lattice maps to projective subspaces.
       Part of Theorem 15.5 of [MaedaMaeda] p. 62.  (Contributed by NM,
       17-Oct-2011.) $)
    pmapsub $p |- ( ( K e. Lat /\ X e. B ) -> ( M ` X ) e. S ) $=
      ( vc vr vp vq clat wcel wa cfv cv wbr eqid wi cple catm crab pmapval wral
      wss cjn breq1 elrab atbase anim1i sylbi anim12i an4 sylib anim2i latjle12
      w3a biimpd 3exp2 com23 imp43 adantr latjcl 3expib lattr com24 syl5d imp41
      co impd adantlrr mpan2d syl2an jctild syl6ibr ralrimiva ralrimivva ssrab2
      simpr jctil wb ispsubsp mpbird eqeltrd ) CMNZEANZOZEDPIQZECUAPZRZICUBPZUC
      ZBWLAMCWJDEIFWJSZWLSZHUDWHWMBNZWMWLUFZJQZKQZLQZCUGPZVJZWJRZWRWMNZTZJWLUEZ
      LWMUEKWMUEZOZWHXGWQWHXFKLWMWMWHWSWMNZWTWMNZOZOZXEJWLXLWRWLNZOZXCXMWREWJRZ
      OXDXNXCXOXMXLWHWSANZWTANZOZWSEWJRZWTEWJRZOZOZOZWRANZXCXOTXMXKYBWHXKXPXSOZ
      XQXTOZOYBXIYEXJYFXIWSWLNZXSOYEWKXSIWSWLWIWSEWJUHUIYGXPXSWLAWSCFWOUJUKULXJ
      WTWLNZXTOYFWKXTIWTWLWIWTEWJUHUIYHXQXTWLAWTCFWOUJUKULUMXPXSXQXTUNUOUPWLAWR
      CFWOUJYCYDOXCXBEWJRZXOYCYIYDWFWGXRYAYIWFXRWGYAYITZWFXPXQWGYJTWFXPXQWGYJWF
      XPXQWGUROYAYIAXACWJWSWTEFWNXASZUQUSUTVKVAVBVCWHXRYDXCYIOXOTZYAWFWGXRYDYLW
      FXRXBANZWGYDYLTWFXPXQYMAXACWSWTFYKVDVEWFYDYMWGYLWFYDYMWGYLACWJWRXBEFWNVFU
      TVGVHVIVLVMVNXLXMVTVOWKXOIWRWLWIWREWJUHUIVPVQVRWKIWLVSWAWFWPXHWBWGWLMBXAC
      WJWMJLKWNYKWOGWCVCWDWE $.
  $}

  ${
    $d i p x y z B $.  $d p z G $.  $d i p y z I $.  $d i p x y z K $.
    $d p x y z S $.
    pmapglb.b $e |- B = ( Base ` K ) $.
    pmapglb.g $e |- G = ( glb ` K ) $.
    pmapglb.m $e |- M = ( pmap ` K ) $.
    $( The projective map of the GLB of a set of lattice elements.  Index-set
       version of ~ pmapglb , where we read ` S ` as ` S ( i ) ` .  Theorem
       15.5.2 of [MaedaMaeda] p. 62.  (Contributed by NM, 5-Dec-2011.) $)
    pmapglbx $p |- ( ( K e. HL /\ A. i e. I S e. B /\ I =/= (/) )
    -> ( M ` ( G ` { y | E. i e. I y = S } ) ) = |^|_ i e. I ( M ` S ) ) $=
      ( vp vz wcel wral cv wceq cfv wa wb chlt wne w3a wrex cple catm crab ciin
      c0 cab wbr ccla wss hlclat ad2antrr atbase adantl r19.29 eleq1a rexlimivw
      eqid wi imp syl ex ad2antlr abssdv clatleglb syl3anc wal vex rexbidv elab
      eqeq1 imbi1i r19.23v bitr4i albii df-ral ralcom4 3bitr4i nfv breq2 ralimi
      ceqsalg ralbi syl5bb bitrd 3adant3 simp1 clatglbcl syl2an pmapval syl2anc
      rabbidva iinrab 3ad2ant3 3eqtr4d nfra1 nf3an simpl1 rspa 3ad2antl2 eqtr4d
      iineq2d ) GUANZCBNZDFOZFUIUBZUCZAPZCQZDFUDZAUJZERZHRZDFLPZCGUERZUKZLGUFRZ
      UGZUHZDFCHRZUHXJXQXOXRUKZLXTUGZXSDFOZLXTUGZXPYBXFXHYEYGQXIXFXHSZYDYFLXTYH
      XQXTNZSZYDXQMPZXRUKZMXNOZYFYJGULNZXQBNZXNBUMZYDYMTXFYNXHYIGUNZUOYIYOYHXTB
      XQGIXTVAZUPUQYJXMABXHXMXKBNZVBXFYIXHXMYSXHXMSXGXLSZDFUDYSXGXLDFURYTYSDFXG
      XLYSCBXKUSVCUTVDVEZVFVGMBXNEGXRXQIXRVAZJVHVIXHYMYFTXFYIYMYKCQZYLVBZMVJZDF
      OZXHYFYKXNNZYLVBZMVJUUDDFOZMVJYMUUFUUHUUIMUUHUUCDFUDZYLVBUUIUUGUUJYLXMUUJ
      AYKMVKXKYKQXLUUCDFXKYKCVNVLVMVOUUCYLDFVPVQVRYLMXNVSUUDDMFVTWAXHUUEXSTZDFO
      UUFYFTXGUUKDFYLXSMCBXSMWBYKCXQXRWCWEWDUUEXSDFWFVDWGVFWHWOWIXJXFXOBNZXPYEQ
      XFXHXIWJXFXHUULXIXFYNYPUULXHYQXHXMABUUAVGBXNEGIJWKWLWIXTBUAGXRHXOLIUUBYRK
      WMWNXIXFYBYGQXHXSDLFXTWPWQWRXJDFYCYAXFXHXIDXFDWBXGDFWSXIDWBWTXJDPFNZSXFXG
      YCYAQXFXHXIUUMXAXHXFUUMXGXIXGDFXBXCXTBUAGXRHCLIUUBYRKWMWNXEXD $.

    $( The projective map of the GLB of a set of lattice elements ` S ` .
       Variant of Theorem 15.5.2 of [MaedaMaeda] p. 62.  (Contributed by NM,
       5-Dec-2011.) $)
    pmapglb $p |- ( ( K e. HL /\ S C_ B /\ S =/= (/) )
        -> ( M ` ( G ` S ) ) = |^|_ x e. S ( M ` x ) ) $=
      ( vy chlt wcel cfv weq cab cv wa wex bitri fveq2i wss wne w3a wrex df-rex
      c0 ciin equcom anbi2i ancom exbii vex eleq1 ceqsexv abbii abid2 wral wceq
      eqtr2i dfss3 pmapglbx syl3an2b syl5eq ) EKLZCBUAZCUFUBZUCCDMZFMJANZACUDZJ
      OZDMZFMZACAPZFMUGZVGVKFCVJDVJJPZCLZJOCVIVPJVIVMCLZVHQZARZVPVHACUEVSAJNZVQ
      QZARVPVRWAAVRVQVTQWAVHVTVQJAUHUIVQVTUJSUKVQVPAVOJULVMVOCUMUNSSUOJCUPUSTTV
      EVDVMBLACUQVFVLVNURACBUTJBVMADCEFGHIVAVBVC $.
  $}

  ${
    $d i x A $.  $d i x y B $.  $d i y I $.  $d i x y K $.  $d x y S $.
    pmapglb2.b $e |- B = ( Base ` K ) $.
    pmapglb2.g $e |- G = ( glb ` K ) $.
    pmapglb2.a $e |- A = ( Atoms ` K ) $.
    pmapglb2.m $e |- M = ( pmap ` K ) $.
    $( The projective map of the GLB of a set of lattice elements ` S ` .
       Variant of Theorem 15.5.2 of [MaedaMaeda] p. 62.  Allows ` S = (/) ` .
       (Contributed by NM, 21-Jan-2012.)  (New usage is discouraged.) $)
    pmapglb2N $p |- ( ( K e. HL /\ S C_ B )
        -> ( M ` ( G ` S ) ) = ( A i^i |^|_ x e. S ( M ` x ) ) ) $=
      ( chlt wcel wss wa cfv wceq c0 fveq2d syl cv ciin cin cops hlop cp1 glb0N
      wi eqid pmap1N eqtrd fveq2 eqeq12d syl5ibrcom adantr wne w3a pmapglb wrex
      riin0 wex simpr simpll ssel2 adantll pmapssat syl2anc ex eximdv n0 df-rex
      jca 3imtr4g 3impia iinss sseqin2 sylib eqtr4d 3expia pm2.61dne ) FLMZDCNZ
      OZDEPZGPZBADAUAZGPZUBZUCZQZDRWADRQZWJUHWBWAWJWKREPZGPZBQZWAFUDMZWNFUEWOWM
      FUFPZGPBWOWLWPGWPEFIWPUIZUGSBWPFGWQJKUJUKTWKWEWMWIBWKWDWLGDREULSABWGDUTUM
      UNUOWAWBDRUPZWJWAWBWRUQZWEWHWIACDEFGHIKURWSWHBNZWIWHQWSWGBNZADUSZWTWAWBWR
      XBWCWFDMZAVAXCXAOZAVAWRXBWCXCXDAWCXCXDWCXCOZXCXAWCXCVBXEWAWFCMZXAWAWBXCVC
      WBXCXFWADCWFVDVEBCLFGWFHJKVFVGVLVHVIADVJXAADVKVMVNADWGBVOTWHBVPVQVRVSVT
      $.

    $( The projective map of the GLB of a set of lattice elements.  Index-set
       version of ~ pmapglb2N , where we read ` S ` as ` S ( i ) ` .  Extension
       of Theorem 15.5.2 of [MaedaMaeda] p. 62 that allows ` I = (/) ` .
       (Contributed by NM, 21-Jan-2012.)  (New usage is discouraged.) $)
    pmapglb2xN $p |- ( ( K e. HL /\ A. i e. I S e. B ) ->
 ( M ` ( G ` { y | E. i e. I y = S } ) )
   = ( A i^i |^|_ i e. I ( M ` S ) ) ) $=
      ( wcel wa wceq wrex cfv c0 fveq2d chlt wral cv cab ciin cin cops hlop cp1
      wi eqid glb0N pmap1N eqtrd syl rexeq abbidv rex0 abf syl6eq riin0 eqeq12d
      syl5ibrcom adantr wne w3a pmapglbx wss wex nfv nfra1 simpr simpll adantll
      nfan pmapssat syl2anc jca ex eximd n0 df-rex 3imtr4g 3impia iinss sseqin2
      rspa sylib eqtr4d 3expia pm2.61dne ) HUANZDCNZEGUBZOZAUCDPZEGQZAUDZFRZIRZ
      BEGDIRZUEZUFZPZGSWLGSPZXDUJWNWLXDXESFRZIRZBPZWLHUGNZXHHUHXIXGHUIRZIRBXIXF
      XJIXJFHKXJUKZULTBXJHIXKLMUMUNUOXEWTXGXCBXEWSXFIXEWRSFXEWRWPESQZAUDSXEWQXL
      AWPEGSUPUQXLAWPEURUSUTTTEBXAGVAVBVCVDWLWNGSVEZXDWLWNXMVFZWTXBXCACDEFGHIJK
      MVGXNXBBVHZXCXBPXNXABVHZEGQZXOWLWNXMXQWOEUCGNZEVIXRXPOZEVIXMXQWOXRXSEWLWN
      EWLEVJWMEGVKVOWOXRXSWOXROZXRXPWOXRVLXTWLWMXPWLWNXRVMWNXRWMWLWMEGWGVNBCUAH
      IDJLMVPVQVRVSVTEGWAXPEGWBWCWDEGXABWEUOXBBWFWHWIWJWK $.
  $}

  ${
    $d x B $.  $d x K $.  $d x P $.  $d x X $.  $d x Y $.
    pmapmeet.b $e |- B = ( Base ` K ) $.
    pmapmeet.m $e |- ./\ = ( meet ` K ) $.
    pmapmeet.a $e |- A = ( Atoms ` K ) $.
    pmapmeet.p $e |- P = ( pmap ` K ) $.
    $( The projective map of a meet.  (Contributed by NM, 25-Jan-2012.) $)
    pmapmeet $p |- ( ( K e. HL /\ X e. B /\ Y e. B )
      -> ( P ` ( X ./\ Y ) ) = ( ( P ` X ) i^i ( P ` Y ) ) ) $=
      ( vx chlt wcel w3a co cfv wceq 3adant1 fveq2 cpr cglb ciin cin eqid simp1
      cv simp2 simp3 meetval fveq2d wss c0 prssi prnzg 3ad2ant2 pmapglb syl3anc
      wne iinxprg 3eqtrd ) DMNZFBNZGBNZOZFGEPZCQFGUAZDUBQZQZCQZLVGLUGZCQZUCZFCQ
      ZGCQZUDZVEVFVICVEVHDEMBFGBVHUEZIVBVCVDUFZVBVCVDUHVBVCVDUIUJUKVEVBVGBULZVG
      UMUSZVJVMRVRVCVDVSVBFGBUNSVCVBVTVDFGBUOUPLBVGVHDCHVQKUQURVCVDVMVPRVBLFGVL
      VNVOBBVKFCTVKGCTUTSVA $.
  $}

  ${
    $d p q r A $.  $d r .\/ $.  $d p q r K $.  $d p q X $.
    isline2.j $e |- .\/ = ( join ` K ) $.
    isline2.a $e |- A = ( Atoms ` K ) $.
    isline2.n $e |- N = ( Lines ` K ) $.
    isline2.m $e |- M = ( pmap ` K ) $.
    $( Definition of line in terms of projective map.  (Contributed by NM,
       25-Jan-2012.) $)
    isline2 $p |- ( K e. Lat -> ( X e. N
        <-> E. p e. A E. q e. A ( p =/= q /\ X = ( M ` ( p .\/ q ) ) ) ) ) $=
      ( vr clat wcel cv cfv wceq wa wrex wne co cple wbr crab eqid isline simpl
      cbs atbase ad2antrl latjcl syl3anc pmapval syldan eqeq2d anbi2d 2rexbidva
      ad2antll bitr4d ) CNOZFEOHPZGPZUAZFMPVBVCBUBZCUCQZUDMAUEZRZSZGATHATVDFVED
      QZRZSZGATHATANBCVFEFGHMVFUFZIJKUGVAVLVIHGAAVAVBAOZVCAOZSZSZVKVHVDVQVJVGFV
      AVPVECUIQZOZVJVGRVQVAVBVROZVCVROZVSVAVPUHVNVTVAVOAVRVBCVRUFZJUJUKVOWAVAVN
      AVRVCCWBJUJUSVRBCVBVCWBIULUMAVRNCVFDVEMWBVMJLUNUOUPUQURUT $.

    $d r P $.  $d r Q $.
    $( A line described with a projective map.  (Contributed by NM,
       3-Feb-2012.) $)
    linepmap $p |- ( ( ( K e. Lat /\ P e. A /\ Q e. A ) /\ P =/= Q )
        -> ( M ` ( P .\/ Q ) ) e. N ) $=
      ( vr clat wcel w3a cfv wceq eqid atbase syl wne wa co cv cple crab simpl1
      wbr simpl2 simpl3 latjcl syl3anc pmapval syl2anc islinei mpanr2 eqeltrd
      cbs ) EMNZBANZCANZOZBCUAZUBZBCDUCZFPZLUDVEEUEPZUHLAUFZGVDUSVEEURPZNZVFVHQ
      USUTVAVCUGZVDUSBVINZCVINZVJVKVDUTVLUSUTVAVCUIAVIBEVIRZISTVDVAVMUSUTVAVCUJ
      AVICEVNISTVIDEBCVNHUKULAVIMEVGFVELVNVGRZIKUMUNVBVCVHVHQVHGNVHRAMBCDEVGGVH
      LVOHIJUOUPUQ $.
  $}

  ${
    $d p q B $.  $d p q A $.  $d p q K $.  $d p q M $.  $d p q X $.
    isline3.b $e |- B = ( Base ` K ) $.
    isline3.j $e |- .\/ = ( join ` K ) $.
    isline3.a $e |- A = ( Atoms ` K ) $.
    isline3.n $e |- N = ( Lines ` K ) $.
    isline3.m $e |- M = ( pmap ` K ) $.
    $( Definition of line in terms of original lattice elements.  (Contributed
       by NM, 29-Apr-2012.) $)
    isline3 $p |- ( ( K e. HL /\ X e. B ) -> ( ( M ` X ) e. N
         <-> E. p e. A E. q e. A ( p =/= q /\ X = ( p .\/ q ) ) ) ) $=
      ( wcel wa cfv cv wceq wrex chlt wne co wb hllat adantr isline2 syl simpll
      clat simplr ad2antrr atbase ad2antrl ad2antll latjcl syl3anc pmap11 bitrd
      anbi2d 2rexbidva ) DUAOZGBOZPZGEQZFOZIRZHRZUBZVEVGVHCUCZEQSZPZHATIATZVIGV
      JSZPZHATIATVDDUJOZVFVMUDVBVPVCDUEZUFACDEFVEHIKLMNUGUHVDVLVOIHAAVDVGAOZVHA
      OZPZPZVKVNVIWAVBVCVJBOZVKVNUDVBVCVTUIVBVCVTUKWAVPVGBOZVHBOZWBVBVPVCVTVQUL
      VRWCVDVSABVGDJLUMUNVSWDVDVRABVHDJLUMUOBCDVGVHJKUPUQBDEGVJJNURUQUTVAUS $.
  $}

  ${
    $d p q A $.  $d p q B $.  $d q C $.  $d p q K $.  $d p q M $.  $d p q X $.
    isline4.b $e |- B = ( Base ` K ) $.
    isline4.c $e |- C = ( <o ` K ) $.
    isline4.a $e |- A = ( Atoms ` K ) $.
    isline4.n $e |- N = ( Lines ` K ) $.
    isline4.m $e |- M = ( pmap ` K ) $.
    $( Definition of line in terms of original lattice elements.  (Contributed
       by NM, 16-Jun-2012.)  (New usage is discouraged.) $)
    isline4N $p |- ( ( K e. HL /\ X e. B ) -> ( ( M ` X ) e. N
         <-> E. p e. A p C X ) ) $=
      ( vq wcel wa cfv cv wrex wb chlt wne cjn co wceq wbr eqid isline3 cple wn
      simpll atbase adantl simplr cvrval3 syl3anc hlatl ad3antrrr atncmp syl6bb
      cal simpr necom eqcom a1i anbi12d rexbidva bitrd bitr4d ) DUAOZGBOZPZGEQF
      OHRZNRZUBZGVMVNDUCQZUDZUEZPZNASZHASVMGCUFZHASABVPDEFGNHIVPUGZKLMUHVLWAVTH
      AVLVMAOZPZWAVNVMDUIQZUFUJZVQGUEZPZNASZVTWDVJVMBOZVKWAWITVJVKWCUKWCWJVLABV
      MDIKULUMVJVKWCUNABCVPDWEVMGNIWEUGZWBJKUOUPWDWHVSNAWDVNAOZPZWFVOWGVRWMWFVN
      VMUBZVOWMDVAOZWLWCWFWNTVJWOVKWCWLDUQURWDWLVBVLWCWLUNAVNVMDWEWKKUSUPVNVMVC
      UTWGVRTWMVQGVDVEVFVGVHVGVI $.
  $}

  ${
    $d r s A $.  $d r s B $.  $d r s .\/ $.  $d r s K $.  $d r s .<_ $.
    $d r s M $.  $d r s N $.  $d r s P $.  $d r s Q $.  $d r s X $.
    lneq2at.b $e |- B = ( Base ` K ) $.
    lneq2at.l $e |- .<_ = ( le ` K ) $.
    lneq2at.j $e |- .\/ = ( join ` K ) $.
    lneq2at.a $e |- A = ( Atoms ` K ) $.
    lneq2at.n $e |- N = ( Lines ` K ) $.
    lneq2at.m $e |- M = ( pmap ` K ) $.
    $( A line equals the join of any two of its distinct points (atoms).
       (Contributed by NM, 29-Apr-2012.) $)
    lneq2at $p |- ( ( ( K e. HL /\ X e. B /\ ( M ` X ) e. N )
      /\ ( P e. A /\ Q e. A /\ P =/= Q ) /\ ( P .<_ X /\ Q .<_ X ) )
                 -> X = ( P .\/ Q ) ) $=
      ( vr wcel w3a wa vs chlt cfv wne wbr cv co wceq wrex simp11 simp12 simp13
      jca isline3 biimpd sylc simp3r simp111 simp121 simp122 simp2 3jca simp123
      clat hllat simp21 atbase simp22 simp3 latjle12 3ad2ant1 breqtrd wb simpl1
      syl simpl2l simpl2r simpr simpl3 ps-1 syl131anc eqtr4d 3exp rexlimdvv mpd
      ) FUBRZJBRZJHUCIRZSZCARZDARZCDUDZSZCJGUEDJGUETZSZQUFZUAUFZUDZJWPWQEUGZUHZ
      TZUAAUIQAUIZJCDEUGZUHZWOWFWGTZWHXBWOWFWGWFWGWHWMWNUJZWFWGWHWMWNUKZUMWFWGW
      HWMWNULXEWHXBABEFHIJUAQKMNOPUNUOUPWOXAXDQUAAAWOWPARWQARTZXAXDWOXHXASZJWSX
      CWOXHWRWTUQZXIWFWJWKTZXHSZWLTZXCWSGUEZXCWSUHZXIXLWLXIWFXKXHWFWGWHWMWNXHXA
      URXIWJWKWJWKWLWIWNXHXAUSWJWKWLWIWNXHXAUTUMWOXHXAVAVBWJWKWLWIWNXHXAVCUMXIX
      CJWSGWOXHXCJGUEZXAWOFVDRZCBRZDBRZWGSZTZWNXPWOXQXTWOWFXQXFFVEVOWOXRXSWGWOW
      JXRWIWJWKWLWNVFABCFKNVGVOWOWKXSWIWJWKWLWNVHABDFKNVGVOXGVBUMWIWMWNVIYAWNXP
      BEFGCDJKLMVJUOUPVKXJVLXMXNXOXMWFWJWKWLXHXNXOVMWFXKXHWLVNWJWKWFXHWLVPWJWKW
      FXHWLVQXLWLVRWFXKXHWLVSACDWPWQEFGLMNVTWAUOUPWBWCWDWE $.
  $}

  ${
    $d q r s A $.  $d r s B $.  $d r s K $.  $d q r s .<_ $.  $d r s M $.
    $d r s N $.  $d q r s P $.  $d q r s X $.
    lnatex.b $e |- B = ( Base ` K ) $.
    lnatex.l $e |- .<_ = ( le ` K ) $.
    lnatex.a $e |- A = ( Atoms ` K ) $.
    lnatex.n $e |- N = ( Lines ` K ) $.
    lnatex.m $e |- M = ( pmap ` K ) $.
    $( There is an atom in a line different from any other.  (Contributed by
       NM, 30-Apr-2012.)  (New usage is discouraged.) $)
    lnatexN $p |- ( ( K e. HL /\ X e. B /\ ( M ` X ) e. N )
         -> E. q e. A ( q =/= P /\ q .<_ X ) ) $=
      ( vr vs wcel wne wa wbr chlt cfv w3a cv co wceq wrex eqid isline3 biimp3a
      cjn simpl2r simpl3l necomd simpr neeqtrd simpl11 simpl2l hlatlej2 syl3anc
      simpl3r breqtrrd weq neeq1 breq1 rspcev syl12anc hlatlej1 pm2.61dane 3exp
      anbi12d rexlimdvv mpd ) DUAQZHBQZHFUBGQZUCZOUDZPUDZRZHVRVSDUKUBZUEZUFZSZP
      AUGOAUGZIUDZCRZWFHETZSZIAUGZVNVOVPWEABWADFGHPOJWAUHZLMNUIUJVQWDWJOPAAVQVR
      AQZVSAQZSZWDWJVQWNWDUCZWJVRCWOVRCUFZSZWMVSCRZVSHETZWJWLWMVQWDWPULZWQVSVRC
      WQVRVSVTWCVQWNWPUMUNWOWPUOUPWQVSWBHEWQVNWLWMVSWBETVNVOVPWNWDWPUQWLWMVQWDW
      PURWTAVRVSWADEKWKLUSUTVTWCVQWNWPVAVBWIWRWSSIVSAIPVCWGWRWHWSWFVSCVDWFVSHEV
      EVKVFVGWOVRCRZSZWLXAVRHETZWJWLWMVQWDXAURZWOXAUOXBVRWBHEXBVNWLWMVRWBETVNVO
      VPWNWDXAUQXDWLWMVQWDXAULAVRVSWADEKWKLVHUTVTWCVQWNXAVAVBWIXAXCSIVRAIOVCWGX
      AWHXCWFVRCVDWFVRHEVEVKVFVGVIVJVLVM $.
  $}

  ${
    $d q A $.  $d q B $.  $d q K $.  $d q .<_ $.  $d q M $.  $d q N $.
    $d q N $.  $d q P $.  $d q X $.
    lnjat.b $e |- B = ( Base ` K ) $.
    lnjat.l $e |- .<_ = ( le ` K ) $.
    lnjat.j $e |- .\/ = ( join ` K ) $.
    lnjat.a $e |- A = ( Atoms ` K ) $.
    lnjat.n $e |- N = ( Lines ` K ) $.
    lnjat.m $e |- M = ( pmap ` K ) $.
    $( Given an atom in a line, there is another atom which when joined equals
       the line.  (Contributed by NM, 30-Apr-2012.)
       (New usage is discouraged.) $)
    lnjatN $p |- ( ( ( K e. HL /\ X e. B /\ P e. A ) /\ ( ( M ` X ) e. N
       /\ P .<_ X ) ) -> E. q e. A ( q =/= P /\ X = ( P .\/ q ) ) ) $=
      ( wcel w3a wbr wa chlt cfv cv wne wrex wceq simpl1 simpl2 lnatexN syl3anc
      simprl simp3l simp1l1 simp1l2 simp1rl simp1l3 simp2 necomd simp1rr simp3r
      co lneq2at syl332anc jca 3exp reximdvai mpd ) EUAQZIBQZCAQZRZIGUBHQZCIFSZ
      TZTZJUCZCUDZVPIFSZTZJAUEZVQICVPDVAUFZTZJAUEVOVHVIVLVTVHVIVJVNUGVHVIVJVNUH
      VKVLVMUKABCEFGHIJKLNOPUIUJVOVSWBJAVOVPAQZVSWBVOWCVSRZVQWAVOWCVQVRULZWDVHV
      IVLVJWCCVPUDVMVRWAVHVIVJVNWCVSUMVHVIVJVNWCVSUNVLVMVKWCVSUOVHVIVJVNWCVSUPV
      OWCVSUQWDVPCWEURVLVMVKWCVSUSVOWCVQVRUTABCVPDEFGHIKLMNOPVBVCVDVEVFVG $.
  $}

  ${
    $d q r A $.  $d q r B $.  $d q r C $.  $d q r K $.  $d q r M $.
    $d q r P $.  $d q r X $.
    lncvrelat.b $e |- B = ( Base ` K ) $.
    lncvrelat.c $e |- C = ( <o ` K ) $.
    lncvrelat.a $e |- A = ( Atoms ` K ) $.
    lncvrelat.n $e |- N = ( Lines ` K ) $.
    lncvrelat.m $e |- M = ( pmap ` K ) $.
    $( A lattice element covered by a line is an atom.  (Contributed by NM,
       28-Apr-2012.)  (New usage is discouraged.) $)
    lncvrelatN $p |- ( ( ( K e. HL /\ X e. B /\ P e. B )
        /\ ( ( M ` X ) e. N /\ P C X ) ) -> P e. A ) $=
      ( vq vr wcel w3a cfv wa syl chlt wbr cv wne co wceq wrex wi clat wb hllat
      cjn 3ad2ant1 isline2 simpll1 simpll2 simplrl atbase simplrr latjcl pmap11
      eqid syl3anc breq2 biimpd adantr simpll3 simplr simpr cvrat2 syl112anc ex
      3jca syl9r sylbid expimpd rexlimdvva imp32 ) EUAPZHBPZDBPZQZHFRZGPZDHCUBZ
      DAPZWBWDNUCZOUCZUDZWCWGWHEULRZUEZFRUFZSZOAUGNAUGZWEWFUHZWBEUIPZWDWNUJVSVT
      WPWAEUKZUMAWJEFGWCONWJVBZKLMUNTWBWMWONOAAWBWGAPZWHAPZSZSZWIWLWOXBWISZWLHW
      KUFZWOXCVSVTWKBPZWLXDUJVSVTWAXAWIUOZVSVTWAXAWIUPXCWPWGBPZWHBPZXEXCVSWPXFW
      QTXCWSXGWBWSWTWIUQZABWGEIKURTXCWTXHWBWSWTWIUSZABWHEIKURTBWJEWGWHIWRUTVCBE
      FHWKIMVAVCXDWEDWKCUBZXCWFXDWEXKHWKDCVDVEXCXKWFXCXKSVSWAWSWTQZWIXKWFXCVSXK
      XFVFXCXLXKXCWAWSWTVSVTWAXAWIVGXIXJVMVFXBWIXKVHXCXKVIABCWGWHWJEDIWRJKVJVKV
      LVNVOVPVQVOVR $.
  $}

  ${
    $d q r A $.  $d q r B $.  $d q r C $.  $d q r K $.  $d q r .<_ $.
    $d q r M $.  $d q r N $.  $d q r P $.  $d q r X $.
    lncvrat.b $e |- B = ( Base ` K ) $.
    lncvrat.l $e |- .<_ = ( le ` K ) $.
    lncvrat.c $e |- C = ( <o ` K ) $.
    lncvrat.a $e |- A = ( Atoms ` K ) $.
    lncvrat.n $e |- N = ( Lines ` K ) $.
    lncvrat.m $e |- M = ( pmap ` K ) $.
    $( A line covers the atoms it contains.  (Contributed by NM,
       30-Apr-2012.) $)
    lncvrat $p |- ( ( ( K e. HL /\ X e. B /\ P e. A )
        /\ ( ( M ` X ) e. N /\ P .<_ X ) ) -> P C X ) $=
      ( vq vr wcel wbr wa chlt w3a cfv cv wne cjn co wceq wrex simprl wb simpl1
      simpl2 isline3 syl2anc mpbid simp1l1 simp1l3 simp2l simp2r simp3l simp1rr
      eqid simp3r breqtrd atcvrj2 syl132anc breqtrrd 3exp rexlimdvv mpd ) EUARZ
      IBRZDARZUBZIGUCHRZDIFSZTZTZPUDZQUDZUEZIVTWAEUFUCZUGZUHZTZQAUIPAUIZDICSZVS
      VPWGVOVPVQUJVSVLVMVPWGUKVLVMVNVRULVLVMVNVRUMABWCEGHIQPJWCVCZMNOUNUOUPVSWF
      WHPQAAVSVTARZWAARZTZWFWHVSWLWFUBZDWDICWMVLVNWJWKWBDWDFSDWDCSVLVMVNVRWLWFU
      QVLVMVNVRWLWFURVSWJWKWFUSVSWJWKWFUTVSWLWBWEVAWMDIWDFVPVQVOWLWFVBVSWLWBWEV
      DZVEACDVTWAWCEFKWILMVFVGWNVHVIVJVK $.
  $}

  ${
    $d p q B $.  $d p q K $.  $d p q .<_ $.  $d p q M $.  $d p q N $.
    $d p q X $.  $d p q Y $.
    lncmp.b $e |- B = ( Base ` K ) $.
    lncmp.l $e |- .<_ = ( le ` K ) $.
    lncmp.n $e |- N = ( Lines ` K ) $.
    lncmp.m $e |- M = ( pmap ` K ) $.
    $( If two lines are comparable, they are equal.  (Contributed by NM,
       30-Apr-2012.) $)
    lncmp $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B ) /\ ( ( M ` X ) e. N
                  /\ ( M ` Y ) e. N ) ) -> ( X .<_ Y <-> X = Y ) ) $=
      ( vp vq wcel w3a cfv wa wbr wceq syl chlt cv wne cjn co catm wrex simplrl
      simpll1 simpll2 eqid isline3 syl2anc simp3rr simp1l1 simp1l3 simp1rr clat
      wb mpbid simp3ll simp3lr simp3rl atbase simp1l2 hlatlej1 syl3anc breqtrrd
      hllat simp2 lattrd hlatlej2 lneq2at syl332anc eqtr4d 3expia rexlimdvv mpd
      expd ex simpl1 simpl2 latref breq2 syl5ibcom impbid ) BUANZFANZGANZOZFDPE
      NZGDPENZQZQZFGCRZFGSZWNWOWPWNWOQZLUBZMUBZUCZFWRWSBUDPZUEZSZQZMBUFPZUGLXEU
      GZWPWQWKXFWJWKWLWOUHWQWGWHWKXFUSWGWHWIWMWOUIWGWHWIWMWOUJXEAXABDEFMLHXAUKZ
      XEUKZJKULUMUTWQXDWPLMXEXEWQWRXENZWSXENZQZXDWPWNWOXKXDQZWPWNWOXLOZFXBGWTXC
      XKWNWOUNZXMWGWIWLXIXJWTWRGCRWSGCRGXBSWGWHWIWMWOXLUOZWGWHWIWMWOXLUPZWKWLWJ
      WOXLUQXIXJXDWNWOVAZXIXJXDWNWOVBZWTXCXKWNWOVCXMABCWRFGHIXMWGBURNZXOBVIZTZX
      MXIWRANXQXEAWRBHXHVDTWGWHWIWMWOXLVEZXPXMWRXBFCXMWGXIXJWRXBCRXOXQXRXEWRWSX
      ABCIXGXHVFVGXNVHWNWOXLVJZVKXMABCWSFGHIYAXMXJWSANXRXEAWSBHXHVDTYBXPXMWSXBF
      CXMWGXIXJWSXBCRXOXQXRXEWRWSXABCIXGXHVLVGXNVHYCVKXEAWRWSXABCDEGHIXGXHJKVMV
      NVOVPVSVQVRVTWNFFCRZWPWOWNXSWHYDWNWGXSWGWHWIWMWAXTTWGWHWIWMWBABCFHIWCUMFG
      FCWDWEWF $.
  $}

  ${
    $d p A $.  $d p B $.  $d p F $.  $d p K $.  $d p ./\ $.  $d p N $.
    $d p X $.  $d p Y $.  $d p .0. $.
    2lnat.b $e |- B = ( Base ` K ) $.
    2lnat.m $e |- ./\ = ( meet ` K ) $.
    2lnat.z $e |- .0. = ( 0. ` K ) $.
    2lnat.a $e |- A = ( Atoms ` K ) $.
    2lnat.n $e |- N = ( Lines ` K ) $.
    2lnat.f $e |- F = ( pmap ` K ) $.
    $( Two intersecting lines intersect at an atom.  (Contributed by NM,
       30-Apr-2012.) $)
    2lnat $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B ) /\ ( ( F ` X ) e. N
                  /\ ( F ` Y ) e. N ) /\ ( X =/= Y /\ ( X ./\ Y ) =/= .0. ) )
                -> ( X ./\ Y ) e. A ) $=
      ( vp wcel cfv wbr syl3anc chlt w3a wa wne co cv wceq wrex cple cal simp11
      hlatl syl clat hllat simp12 simp13 latmcl simp3r atlex simp13l wb simp12l
      simp12r lncmp syl12anc simp111 simp112 simp113 latleeqm1 bitr3d necon3bid
      eqid mpbid wo simp3 latmle1 cpo ccvr hlpos atbase 3ad2ant2 lattrd lncvrat
      wi simp2 syl32anc cvrnbtwn4 syl131anc mpbi2and neor necon1d mpd reximdvai
      sylib 3exp risset sylibr ) DUAQZGBQZHBQZUBZGCRFQZHCRFQZUCZGHUDZGHEUEZIUDZ
      UCZUBZPUFZXGUGZPAUHZXGAQXJXKXGDUIRZSZPAUHZXMXJDUJQZXGBQZXHXPXJWSXQWSWTXAX
      EXIUKZDULUMXJDUNQZWTXAXRXJWSXTXSDUOZUMWSWTXAXEXIUPWSWTXAXEXIUQBDEGHJKURZT
      XBXEXFXHUSPABDXNXGIJXNVMZLMUTTXJXOXLPAXJXKAQZXOXLXJYDXOUBZXGGUDZXLYEXFYFX
      FXHXBXEYDXOVAYEGHXGGYEGHXNSZGHUGZXGGUGZYEXBXCXDYGYHVBXBXEXIYDXOUKXCXDXBXI
      YDXOVCZXCXDXBXIYDXOVDBDXNCFGHJYCNOVEVFYEXTWTXAYGYIVBYEWSXTWSWTXAXEXIYDXOV
      GZYAUMZWSWTXAXEXIYDXOVHZWSWTXAXEXIYDXOVIZBDXNEGHJYCKVJTVKVLVNYEXKXGXGGYEX
      LYIVOZXKXGUDYIWEYEXOXGGXNSZYOXJYDXOVPZYEXTWTXAYPYLYMYNBDXNEGHJYCKVQTZYEDV
      RQZXKBQZWTXRXKGDVSRZSZXOYPUCYOVBYEWSYSYKDVTUMYDXJYTXOABXKDJMWAWBZYMYEXTWT
      XAXRYLYMYNYBTZYEWSWTYDXCXKGXNSUUBYKYMXJYDXOWFYJYEBDXNXKXGGJYCYLUUCUUDYMYQ
      YRWCABUUAXKDXNCFGJYCUUAVMZMNOWDWGBUUADXNXKGXGJYCUUEWHWIWJYIXKXGWKWOWLWMWP
      WNWMPXGAWQWR $.
  $}

  ${
    2atm2at.j $e |- .\/ = ( join ` K ) $.
    2atm2at.m $e |- ./\ = ( meet ` K ) $.
    2atm2at.z $e |- .0. = ( 0. ` K ) $.
    2atm2at.a $e |- A = ( Atoms ` K ) $.
    $( Two joins with a common atom have a nonzero meet.  (Contributed by NM,
       4-Jul-2012.)  (New usage is discouraged.) $)
    2atm2atN $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A ) )
                -> ( ( R .\/ P ) ./\ ( R .\/ Q ) ) =/= .0. ) $=
      ( wcel wa co cfv wbr adantr eqid syl3anc chlt w3a cplt wne cple cops hlop
      simpr3 0ltat syl2anc simpl simpr1 hlatlej1 simpr2 cbs wb hllat atbase syl
      clat hlatjcl latlem12 syl13anc mpbi2and cpo wi hlpos op0cl latmcl pltletr
      mp2and opltn0 mpbid ) FUAMZBAMZCAMZDAMZUBZNZHDBEOZDCEOZGOZFUCPZQZWBHUDZVS
      HDWCQZDWBFUEPZQZWDVSFUFMZVQWFVNWIVRFUGRZVNVOVPVQUHZADWCFHKWCSZLUIUJVSDVTW
      GQZDWAWGQZWHVSVNVQVOWMVNVRUKZWKVNVOVPVQULZADBEFWGWGSZILUMTVSVNVQVPWNWOWKV
      NVOVPVQUNZADCEFWGWQILUMTVSFUTMZDFUOPZMZVTWTMZWAWTMZWMWNNWHUPVNWSVRFUQRZVS
      VQXAWKAWTDFWTSZLURUSZVSVNVQVOXBWOWKWPAWTEFDBXEILVATZVSVNVQVPXCWOWKWRAWTEF
      DCXEILVATZWTFWGGDVTWAXEWQJVBVCVDVSFVEMZHWTMZXAWBWTMZWFWHNWDVFVNXIVRFVGRVS
      WIXJWJWTFHXEKVHUSXFVSWSXBXCXKXDXGXHWTFGVTWAXEJVITZWTWCFWGHDWBXEWQWLVJVCVK
      VSWIXKWDWEUPWJXLWTWCFWBHXEWLKVLUJVM $.
  $}

  ${
    2llnma1b.b $e |- B = ( Base ` K ) $.
    2llnma1b.l $e |- .<_ = ( le ` K ) $.
    2llnma1b.j $e |- .\/ = ( join ` K ) $.
    2llnma1b.m $e |- ./\ = ( meet ` K ) $.
    2llnma1b.a $e |- A = ( Atoms ` K ) $.
    $( Generalization of ~ 2llnma1 .  (Contributed by NM, 26-Apr-2013.) $)
    2llnma1b $p |- ( ( K e. HL /\ ( X e. B /\ P e. A /\ Q e. A )
     /\ -. Q .<_ ( P .\/ X ) ) -> ( ( P .\/ X ) ./\ ( P .\/ Q ) ) = P ) $=
      ( wcel w3a co wbr latlej1 syl3anc chlt wn wceq clat hllat 3ad2ant1 simp22
      atbase syl simp21 simp23 wa wb latjcl simp1 hlatjcl latlem12 syl13anc cal
      hlatl wne simp3 nbrne2 syl2anc lattrd cvrat3 3impia syl133anc atcmp mpbid
      mpbi2and eqcomd ) FUAOZIBOZCAOZDAOZPZDCIEQZGRUBZPZCVRCDEQZHQZVTCWBGRZCWBU
      CZVTCVRGRZCWAGRZWCVTFUDOZCBOZVNWEVMVQWGVSFUEUFZVTVOWHVMVNVOVPVSUGZABCFJNU
      HUIZVMVNVOVPVSUJZBEFGCIJKLSTZVTWGWHDBOZWFWIWKVTVPWNVMVNVOVPVSUKZABDFJNUHU
      IZBEFGCDJKLSTVTWGWHVRBOZWABOZWEWFULWCUMWIWKVTWGWHVNWQWIWKWLBEFCIJLUNTZVTV
      MVOVPWRVMVQVSUOZWJWOABEFCDJLNUPTBFGHCVRWAJKMUQURVKVTFUSOZVOWBAOZWCWDUMVMV
      QXAVSFUTUFWJVTVMWQVOVPCDVAZVSCVRDEQZGRZXBWTWSWJWOVTWEVSXCWMVMVQVSVBZCDVRG
      VCVDXFVTBFGCVRXDJKWIWKWSVTWGWQWNXDBOWIWSWPBEFVRDJLUNTWMVTWGWQWNVRXDGRWIWS
      WPBEFGVRDJKLSTVEVMWQVOVPPXCVSXEPXBABCDEFGHVRJKLMNVFVGVHACWBFGKNVITVJVL $.
  $}

  ${
    2llnm.l $e |- .<_ = ( le ` K ) $.
    2llnm.j $e |- .\/ = ( join ` K ) $.
    2llnm.m $e |- ./\ = ( meet ` K ) $.
    2llnm.a $e |- A = ( Atoms ` K ) $.
    $( Two different intersecting lines (expressed in terms of atoms) meet at
       their common point (atom).  (Contributed by NM, 11-Oct-2012.) $)
    2llnma1 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
     /\ -. R .<_ ( P .\/ Q ) ) -> ( ( Q .\/ P ) ./\ ( Q .\/ R ) ) = Q ) $=
      ( chlt wcel w3a co wbr wn cbs wceq simp1 simp21 eqid atbase simp22 simp23
      cfv syl simp3 hlatjcom syl3anc breq2d mtbid 2llnma1b syl131anc ) FMNZBANZ
      CANZDANZOZDBCEPZGQZRZOZUPBFSUGZNZURUSDCBEPZGQZRVGCDEPHPCTUPUTVCUAZVDUQVFU
      PUQURUSVCUBZAVEBFVEUCZLUDUHUPUQURUSVCUEZUPUQURUSVCUFVDVBVHUPUTVCUIVDVAVGD
      GVDUPUQURVAVGTVIVJVLAEFBCJLUJUKULUMAVECDEFGHBVKIJKLUNUO $.

    $( Two different intersecting lines (expressed in terms of atoms) meet at
       their common point (atom).  (Contributed by NM, 30-Apr-2013.) $)
    2llnma3r $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
   /\ ( P .\/ R ) =/= ( Q .\/ R ) )
         -> ( ( P .\/ R ) ./\ ( Q .\/ R ) ) = R ) $=
      ( wcel co wceq syl3anc wa eqtrd wbr wb chlt w3a wne simp1 simp21 hlatjcom
      simp23 simp22 oveq12d simpr oveq2d simpl23 hlatjidm syl2anc hlatlej1 clat
      simpl1 cbs cfv hllat 3ad2ant1 eqid atbase syl hlatjcl latleeqm2 adantr wn
      mpbid simpl21 simpl22 simpl3 wi hlatlej2 latjle12 biimpd mpan2d syl132anc
      syl13anc ps-1 eqcom syl6ib syld necon3ad mpd 2llnma1 syl131anc pm2.61dane
      ) FUAMZBAMZCAMZDAMZUBZBDENZCDENZUCZUBZWNWOHNDBENZDCENZHNZDWQWNWRWOWSHWQWI
      WJWLWNWROWIWMWPUDZWIWJWKWLWPUEZWIWJWKWLWPUGZAEFBDJLUFPWQWIWKWLWOWSOXAWIWJ
      WKWLWPUHZXCAEFCDJLUFPUIWQWTDOZCDWQCDOZQZWTWRDHNZDXGWSDWRHXGWSDDENZDXGCDDE
      WQXFUJUKXGWIWLXIDOWIWMWPXFUQWJWKWLWIWPXFULAEFDJLUMUNRUKWQXHDOZXFWQDWRGSZX
      JWQWIWLWJXKXAXCXBADBEFGIJLUOPWQFUPMZDFURUSZMZWRXMMZXKXJTWIWMXLWPFUTVAZWQW
      LXNXCAXMDFXMVBZLVCVDZWQWIWLWJXOXAXCXBAXMEFDBXQJLVEPXMFGHDWRXQIKVFPVIVGRWQ
      CDUCZQZWIWJWLWKCWNGSZVHZXEWIWMWPXSUQZWJWKWLWIWPXSVJZWJWKWLWIWPXSULZWJWKWL
      WIWPXSVKZXTWPYBWIWMWPXSVLXTYAWNWOXTYAWOWNGSZWNWOOZWQYAYGVMXSWQYADWNGSZYGW
      QWIWJWLYIXAXBXCABDEFGIJLVNPWQYAYIQZYGWQXLCXMMZXNWNXMMZYJYGTXPWQWKYKXDAXMC
      FXQLVCVDXRWQWIWJWLYLXAXBXCAXMEFBDXQJLVEPXMEFGCDWNXQIJVOVSVPVQVGXTYGWOWNOZ
      YHXTYGYMXTWIWKWLXSWJWLYGYMTYCYFYEWQXSUJYDYEACDBDEFGIJLVTVRVPWOWNWAWBWCWDW
      EABDCEFGHIJKLWFWGWHR $.

    $( Two different intersecting lines (expressed in terms of atoms) meet at
       their common point (atom).  (Contributed by NM, 28-May-2012.) $)
    2llnma2 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
     /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q ) ) )
  -> ( ( R .\/ P ) ./\ ( R .\/ Q ) ) = R ) $=
      ( chlt wcel w3a wne co wbr wn wa simp21 simp23 simp22 4atlem0ae syl131anc
      wceq simp1 2llnma1 ) FMNZBANZCANZDANZOZBCPDBCEQGRSTZOUIUJULUKCBDEQGRSDBEQ
      DCEQHQDUFUIUMUNUGUIUJUKULUNUAUIUJUKULUNUBUIUJUKULUNUCABCDEFGIJLUDABDCEFGH
      IJKLUHUE $.

    $( Two different intersecting lines (expressed in terms of atoms) meet at
       their common point (atom).  (Contributed by NM, 2-May-2013.)
       (New usage is discouraged.) $)
    2llnma2rN $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
     /\ ( P =/= Q /\ -. R .<_ ( P .\/ Q ) ) )
  -> ( ( P .\/ R ) ./\ ( Q .\/ R ) ) = R ) $=
      ( chlt wcel w3a wne co wceq hlatjcom syl3anc wbr wn simp21 simp23 oveq12d
      wa simp1 simp22 2llnma2 eqtrd ) FMNZBANZCANZDANZOZBCPDBCEQGUAUBUFZOZBDEQZ
      CDEQZHQDBEQZDCEQZHQDUQURUTUSVAHUQUKULUNURUTRUKUOUPUGZUKULUMUNUPUCUKULUMUN
      UPUDZAEFBDJLSTUQUKUMUNUSVARVBUKULUMUNUPUHVCAEFCDJLSTUEABCDEFGHIJKLUIUJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Construction of a vector space from a Hilbert lattice
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    cdlema1.b $e |- B = ( Base ` K ) $.
    cdlema1.l $e |- .<_ = ( le ` K ) $.
    cdlema1.j $e |- .\/ = ( join ` K ) $.
    cdlema1.m $e |- ./\ = ( meet ` K ) $.
    cdlema1.a $e |- A = ( Atoms ` K ) $.
    cdlema1.n $e |- N = ( Lines ` K ) $.
    cdlema1.f $e |- F = ( pmap ` K ) $.
    $( A condition for required for proof of Lemma A in [Crawley] p. 112.
       (Contributed by NM, 29-Apr-2012.)  (New usage is discouraged.) $)
    cdlema1N $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B ) /\ ( P e. A /\ Q e. A
     /\ R e. A ) /\ ( ( R =/= P /\ R .<_ ( P .\/ Q ) )
          /\ ( P .<_ X /\ Q .<_ Y )
         /\ ( ( F ` Y ) e. N /\ ( X ./\ Y ) e. A /\ -. Q .<_ X ) ) )
              -> ( X .\/ R ) = ( X .\/ Y ) ) $=
      ( chlt wcel w3a wne co wbr wa cfv wn clat simp11 syl simp12 simp23 atbase
      hllat latjcl syl3anc simp13 latlej1 simp21 simp22 simp31r simp32l simp32r
      latjlej12 syl122anc mp2and lattrd latjle12 syl13anc mpbi2and wceq simp331
      wi wb simp332 simp333 latmle1 breq1 syl5ibrcom necon3bd latmle2 syl332anc
      mpd lneq2at 3jca simp31l hlatexch1 sylc latjlej1 latmlej11 latmcl eqbrtrd
      jca latasymd ) HUAUBZLBUBZMBUBZUCZCAUBZDAUBZEAUBZUCZECUDZECDGUEZIUFZUGZCL
      IUFZDMIUFZUGZMFUHKUBZLMJUEZAUBZDLIUFZUIZUCZUCZUCZBHILEGUEZLMGUEZNOXSWQHUJ
      UBZWQWRWSXDXRUKZHUPULZXSYBWREBUBZXTBUBZYDWQWRWSXDXRUMZXSXCYEWTXAXBXCXRUNZ
      ABEHNRUOULZBGHLENPUQURZXSYBWRWSYABUBZYDYGWQWRWSXDXRUSZBGHLMNPUQURZXSLYAIU
      FZEYAIUFZXTYAIUFZXSYBWRWSYNYDYGYLBGHILMNOPUTURXSBHIEXFYANOYDYIXSYBCBUBZDB
      UBZXFBUBYDXSXAYQWTXAXBXCXRVAZABCHNRUOULZXSXBYRWTXAXBXCXRVBZABDHNRUOULZBGH
      CDNPUQURYMXEXGXKXQWTXDVCZXSXIXJXFYAIUFZXIXJXHXQWTXDVDZXIXJXHXQWTXDVEZXSYB
      YQWRYRWSXKUUDVOYDYTYGUUBYLBGHIMCLDNOPVFVGVHVIXSYBWRYEYKYNYOUGYPVPYDYGYIYM
      BGHILEYANOPVJVKVLXSLXTIUFZMXTIUFZYAXTIUFZXSYBWRYEUUGYDYGYIBGHILENOPUTURXS
      MDXMGUEZXTIXSWQWSXLXBXNDXMUDZXJXMMIUFZMUUJVMYCYLXLXNXPXHXKWTXDVNUUAXLXNXP
      XHXKWTXDVQXSXPUUKXLXNXPXHXKWTXDVRXSXODXMXSXODXMVMXMLIUFZXSYBWRWSUUMYDYGYL
      BHIJLMNOQVSURDXMLIVTWAWBWEUUFXSYBWRWSUULYDYGYLBHIJLMNOQWCURABDXMGHIFKMNOP
      RSTWFWDXSDXTIUFZXMXTIUFZUUJXTIUFZXSBHIDCEGUEZXTNOYDUUBXSYBYQYEUUQBUBYDYTY
      IBGHCENPUQURYJXSWQXCXBXAUCZXEUCXGDUUQIUFXSWQUURXEYCXSXCXBXAYHUUAYSWGXEXGX
      KXQWTXDWHWGUUCAEDCGHIOPRWIWJXSYBYQWRYEUCZUGXIUUQXTIUFXSYBUUSYDXSYQWRYEYTY
      GYIWGWOUUEBGHICLENOPWKWJVIXSYBWRWSYEUUOYDYGYLYIBGHIJLMENOPQWLVKXSYBYRXMBU
      BZYFUUNUUOUGUUPVPYDUUBXSYBWRWSUUTYDYGYLBHJLMNQWMURYJBGHIDXMXTNOPVJVKVLWNX
      SYBWRWSYFUUGUUHUGUUIVPYDYGYLYJBGHILMXTNOPVJVKVLWP $.
  $}

  ${
    cdlema2.b $e |- B = ( Base ` K ) $.
    cdlema2.l $e |- .<_ = ( le ` K ) $.
    cdlema2.j $e |- .\/ = ( join ` K ) $.
    cdlema2.m $e |- ./\ = ( meet ` K ) $.
    cdlema2.z $e |- .0. = ( 0. ` K ) $.
    cdlema2.a $e |- A = ( Atoms ` K ) $.
    $( A condition for required for proof of Lemma A in [Crawley] p. 112.
       (Contributed by NM, 9-May-2012.)  (New usage is discouraged.) $)
    cdlema2N $p |- ( ( ( K e. HL /\ X e. B ) /\ ( P e. A /\ Q e. A
 /\ R e. A ) /\ ( ( R =/= P /\ R .<_ ( P .\/ Q ) )
     /\ ( P .<_ X /\ -. Q .<_ X ) ) ) -> ( R ./\ X ) = .0. ) $=
      ( wcel wa wbr chlt w3a co wn wceq simp3ll wb simp3rl simp3rr simp3lr 3jca
      wne exatleN syld3an3 necon3bbid mpbird cal simp1l hlatl syl simp23 simp1r
      atnle syl3anc mpbid ) GUARZJBRZSZCARZDARZEARZUBZECULZECDFUCHTZSZCJHTZDJHT
      UDZSZSZUBZEJHTZUDZEJIUCKUEZVTWBVMVMVNVRVHVLUFVTWAECVHVLVSVPVQVNUBWAECUEUG
      VTVPVQVNVPVQVOVHVLUHVPVQVOVHVLUIVMVNVRVHVLUJUKABCDEFGHJLMNQUMUNUOUPVTGUQR
      ZVKVGWBWCUGVTVFWDVFVGVLVSURGUSUTVHVIVJVKVSVAVFVGVLVSVBABEGHIJKLMOPQVCVDVE
      $.
  $}

  ${
    cdlemb.b $e |- B = ( Base ` K ) $.
    cdlemb.l $e |- .<_ = ( le ` K ) $.
    cdlemb.j $e |- .\/ = ( join ` K ) $.
    cdlemb.u $e |- .1. = ( 1. ` K ) $.
    cdlemb.c $e |- C = ( <o ` K ) $.
    cdlemb.a $e |- A = ( Atoms ` K ) $.
    ${
      cdlemblem.s $e |- .< = ( lt ` K ) $.
      cdlemblem.m $e |- ./\ = ( meet ` K ) $.
      cdlemblem.v $e |- V = ( ( P .\/ Q ) ./\ X ) $.
      $( Lemma for ~ cdlemb .  (Contributed by NM, 8-May-2012.) $)
      cdlemblem $p |- ( ( ( ( K e. HL /\ P e. A /\ Q e. A )
           /\ ( X e. B /\ P =/= Q ) /\ ( X C .1.
             /\ -. P .<_ X /\ -. Q .<_ X ) )
        /\ ( u e. A /\ ( u =/= V /\ u .< X ) )
        /\ ( r e. A /\ ( r =/= P /\ r =/= u /\ r .<_ ( P .\/ u ) ) ) )
      -> ( -. r .<_ X /\ -. r .<_ ( P .\/ Q ) ) ) $=
        ( chlt wcel w3a wne wa wbr wn cv co simp132 simp111 simp2l simp12l 3jca
        simp2rr pltle sylc clat wb hllat simp3l atbase latjle12 syl13anc biimpd
        syl mpan2d simp112 simp3r2 simp3r3 hlatexch2 latjcl syl3anc lattr mpand
        wi syld mtod simp2rl wceq simp113 simp3r1 syl131anc hlatexch1 syl5ibcom
        hlatexchb1 breq2 sylbid jctird latlem12 breq2i syl6bbr sylibd cal hlatl
        simp12r simp131 1cvrat syl133anc syl5eqel atcmp necon3ad mpd jca ) JUEU
        FZEBUFZFBUFZUGZNCUFZEFUHZUIZNHDUJZENKUJZUKZFNKUJUKZUGZUGZAULZBUFZYBMUHZ
        YBNGUJZUIZUIZOULZBUFZYHEUHZYHYBUHZYHEYBIUMKUJZUGZUIZUGZYHNKUJZUKYHEFIUM
        ZKUJZUKZYOYPXQXPXRXSXLXOYGYNUNZYOYPYHYBIUMZNKUJZXQYOYPYBNKUJZUUBYOXIYCX
        MUGYEUUCYOXIYCXMXIXJXKXOXTYGYNUOZYAYCYFYNUPZXMXNXLXTYGYNUQZURYDYEYCYAYN
        USUEBCGJKYBNQUBUTVAZYOYPUUCUIZUUBYOJVBUFZYHCUFZYBCUFZXMUUHUUBVCYOXIUUIU
        UDJVDVJZYOYIUUJYAYGYIYMVEZBCYHJPUAVFVJZYOYCUUKUUEBCYBJPUAVFVJZUUFCIJKYH
        YBNPQRVGVHVIVKYOEUUAKUJZUUBXQYOXIYIXJYCUGZYKUGYLUUPYOXIUUQYKUUDYOYIXJYC
        UUMXIXJXKXOXTYGYNVLZUUEURYJYKYLYIYAYGVMURYJYKYLYIYAYGVNZBYHEYBIJKQRUAVO
        VAYOUUIECUFZUUACUFZXMUUPUUBUIXQVTUULYOXJUUTUURBCEJPUAVFVJZYOUUIUUJUUKUV
        AUULUUNUUOCIJYHYBPRVPVQUUFCJKEUUANPQVRVHVSWAWBYOYDYSYDYEYCYAYNWCYOYRYBM
        YOYRYBMKUJZYBMWDZYOYRYBYQKUJZUUCUIZUVCYOYRUVEUUCYOYREYHIUMZYQWDZUVEYOXI
        YIXKXJYJYRUVHVCUUDUUMXIXJXKXOXTYGYNWEZUURYJYKYLYIYAYGWFZBYHFEIJKQRUAWJW
        GYOYBUVGKUJZUVHUVEYOXIYIYCXJUGZYJUGYLUVKYOXIUVLYJUUDYOYIYCXJUUMUUEUURUR
        UVJURUUSBYHYBEIJKQRUAWHVAUVGYQYBKWKWIWLUUGWMYOUVFYBYQNLUMZKUJZUVCYOUUIU
        UKYQCUFZXMUVFUVNVCUULUUOYOUUIUUTFCUFZUVOUULUVBYOXKUVPUVIBCFJPUAVFVJCIJE
        FPRVPVQUUFCJKLYBYQNPQUCWNVHMUVMYBKUDWOWPWQYOJWRUFZYCMBUFUVCUVDVCYOXIUVQ
        UUDJWSVJUUEYOMUVMBUDYOXIXJXKXMXNXPXRUVMBUFUUDUURUVIUUFXMXNXLXTYGYNWTXPX
        RXSXLXOYGYNXAYTBCDEFHIJKLNPQRUCSTUAXBXCXDBYBMJKQUAXEVQWQXFXGXH $.
    $}

    $d r u A $.  $d r u B $.  $d r u C $.  $d r u .\/ $.  $d r u K $.
    $d r u .<_ $.  $d r u P $.  $d r u Q $.  $d r u .1. $.  $d r u X $.
    $( Given two atoms not less than or equal to an element covered by 1, there
       is a third.  Lemma B in [Crawley] p. 112.  (Contributed by NM,
       8-May-2012.) $)
    cdlemb $p |- ( ( ( K e. HL /\ P e. A /\ Q e. A ) /\ ( X e. B /\ P =/= Q )
          /\ ( X C .1. /\ -. P .<_ X /\ -. Q .<_ X ) )
      -> E. r e. A ( -. r .<_ X /\ -. r .<_ ( P .\/ Q ) ) ) $=
      ( wcel wa wbr vu chlt w3a wne wn cv co cmee cfv cplt simp11 simp12 simp13
      wrex simp2l simp2r simp31 simp32 eqid 1cvrat syl133anc clat atbase latjcl
      hllat syl syl3anc latmle2 1cvratlt syl32anc 2atlt syl31anc simpl11 simprl
      simpl12 simpl32 wceq simprrr wi simpl2l pltle mpd breq1 syl5ibrcom hlsupr
      necon3bd cdlemblem 3exp exp4a imp reximdvai rexlimddv ) HUBRZDARZEARZUCZJ
      BRZDEUDZSZJFCTZDJITZUEZEJITUEZUCZUCZUAUFZDEGUGZJHUHUIZUGZUDZXFJHUJUIZTZSZ
      KUFZJITUEXNXGITUESZKAUNZUAAXEWMXIARZWQXIJXKTZXMUAAUNWMWNWOWSXDUKZXEWMWNWO
      WQWRWTXBXQXSWMWNWOWSXDULZWMWNWOWSXDUMZWPWQWRXDUOZWPWQWRXDUPWPWSWTXBXCUQZW
      PWSWTXBXCURABCDEFGHIXHJLMNXHUSZOPQUTVAZYBXEWMXQWQWTXIJITZXRXSYEYBYCXEHVBR
      ZXGBRZWQYFXEWMYGXSHVEVFZXEYGDBRZEBRZYHYIXEWNYJXTABDHLQVCVFXEWOYKYAABEHLQV
      CVFBGHDELNVDVGYBBHIXHXGJLMYDVHVGABCXIXKFHIJLMXKUSZOPQVIVJABXIXKHJUALYLQVK
      VLXEXFARZXMSZSZXNDUDXNXFUDXNDXFGUGITUCZKAUNZXPYOWMWNYMDXFUDZYQWMWNWOWSXDY
      NVMZWMWNWOWSXDYNVOXEYMXMVNZYOXBYRWTXBXCWPWSYNVPYOXADXFYOXADXFVQXFJITZYOXL
      UUAXEYMXJXLVRYOWMYMWQXLUUAVSYSYTWQWRWPXDYNVTUBABXKHIXFJMYLWAVGWBDXFJIWCWD
      WFWBADXFGHIKMNQWEVLYOYPXOKAXEYNXNARZYPXOVSVSXEYNUUBYPXOXEYNUUBYPSXOUAABCD
      EXKFGHIXHXIJKLMNOPQYLYDXIUSWGWHWIWJWKWBWL $.
  $}

  $c +P $.

  $( Extend class notation with projective subspace sum. $)
  cpadd $a class +P $.

  ${
    $d l m n p q r $.
    $( Define projective sum of two subspaces (or more generally two sets of
       atoms), which is the union of all lines generated by pairs of atoms from
       each subspace.  Lemma 16.2 of [MaedaMaeda] p. 68.  For convenience, our
       definition is generalized to apply to empty sets.  (Contributed by NM,
       29-Dec-2011.) $)
    df-padd $a |- +P = ( l e. _V
        |-> ( m e. ~P ( Atoms ` l ) , n e. ~P ( Atoms ` l )
           |-> ( ( m u. n ) u. { p e. ( Atoms ` l )
             | E. q e. m E. r e. n p ( le ` l ) ( q ( join ` l ) r ) } ) ) ) $.
  $}

  ${
    $d h m n p s A $.  $d h .\/ $.  $d h m n p q r s K $.  $d h .<_ $.
    paddfval.l $e |- .<_ = ( le ` K ) $.
    paddfval.j $e |- .\/ = ( join ` K ) $.
    paddfval.a $e |- A = ( Atoms ` K ) $.
    paddfval.p $e |- .+ = ( +P ` K ) $.
    $( Projective subspace sum operation.  (Contributed by NM, 29-Dec-2011.) $)
    paddfval $p |- ( K e. B -> .+ = ( m e. ~P A , n e. ~P A
             |-> ( ( m u. n ) u. { p e. A
               | E. q e. m E. r e. n p .<_ ( q .\/ r ) } ) ) ) $=
      ( vh cv wrex cfv catm wcel cvv cpw cun wbr crab cmpt2 wceq elex cpadd cjn
      co cple fveq2 syl6eqr pweqd eqidd breq123d 2rexbidv rabeqbidv mpt2eq123dv
      oveqd uneq2d df-padd fvex eqeltri pwex mpt2ex fvmpt syl5eq syl ) GBUAGUBU
      AZCDEAUCZVMDQZEQZUDZKQZJQZIQZFULZHUEZIVORJVNRZKAUFZUDZUGZUHGBUIVLCGUJSWEO
      PGDEPQZTSZUCZWHVPVQVRVSWFUKSZULZWFUMSZUEZIVORJVNRZKWGUFZUDZUGWEUBUJWFGUHZ
      DEWHWHWOVMVMWDWPWGAWPWGGTSZAWFGTUNNUOZUPZWSWPWNWCVPWPWMWBKWGAWRWPWLWAJIVN
      VOWPVQVQWJVTWKHWPVQUQWPWKGUMSHWFGUMUNLUOWPWIFVRVSWPWIGUKSFWFGUKUNMUOVBURU
      SUTVCVADEIJKPVDDEVMVMWDAAWQUBNGTVEVFVGZWTVHVIVJVK $.

    $d m n s .\/ $.  $d m n s .<_ $.  $d m n p q s X $.  $d m n p q r s Y $.
    $( Projective subspace sum operation value.  (Contributed by NM,
       29-Dec-2011.) $)
    paddval $p |- ( ( K e. B /\ X C_ A /\ Y C_ A )
   -> ( X .+ Y ) = ( ( X u. Y )
         u. { p e. A | E. q e. X E. r e. Y p .<_ ( q .\/ r ) } ) ) $=
      ( wcel cun cv wrex cvv vm vn wss cpw wbr crab wceq biid catm fvex eqeltri
      co cfv elpw2 w3a cmpt2 paddfval oveqd 3ad2ant1 wa simpl simpr unexg rabex
      sylancl 3jca 3adant1 uneq1 rexeq rabbidv uneq12d rexbidv eqid ovmpt2g syl
      uneq2 eqtrd syl3anbr ) EBPZVSGAUCGAUDZPZHAUCHVTPZGHCULZGHQZKRJRIRDULFUEZI
      HSZJGSZKAUFZQZUGVSUHGAAEUIUMTNEUIUJUKZUNHAWJUNVSWAWBUOZWCGHUAUBVTVTUARZUB
      RZQZWEIWMSZJWLSZKAUFZQZUPZULZWIVSWAWCWTUGWBVSCWSGHABCUAUBDEFIJKLMNOUQURUS
      WKWAWBWITPZUOZWTWIUGWAWBXBVSWAWBUTZWAWBXAWAWBVAWAWBVBXCWDTPWHTPXAGHVTVTVC
      WGKAWJVDWDWHTTVCVEVFVGUAUBGHVTVTWRWIWSGWMQZWOJGSZKAUFZQTWLGUGZWNXDWQXFWLG
      WMVHXGWPXEKAWOJWLGVIVJVKWMHUGZXDWDXFWHWMHGVPXHXEWGKAXHWOWFJGWEIWMHVIVLVJV
      KWSVMVNVOVQVR $.

    $d p .\/ $.  $d p .<_ $.  $d p q r S $.
    $( Member of a projective subspace sum.  (Contributed by NM,
       29-Dec-2011.) $)
    elpadd $p |- ( ( K e. B /\ X C_ A /\ Y C_ A ) -> ( S e. ( X .+ Y ) <->
        ( ( S e. X \/ S e. Y ) \/ ( S e. A
             /\ E. q e. X E. r e. Y S .<_ ( q .\/ r ) ) ) ) ) $=
      ( vp wcel cv wrex wo wss w3a co cun wbr crab wa paddval eleq2d elun breq1
      wceq 2rexbidv elrab orbi12i bitri syl6bb ) FBQHAUAIAUAUBZDHICUCZQDHIUDZPR
      ZKRJREUCZGUEZJISKHSZPAUFZUDZQZDHQDIQTZDAQDVBGUEZJISKHSZUGZTZURUSVFDABCEFG
      HIJKPLMNOUHUIVGDUTQZDVEQZTVLDUTVEUJVMVHVNVKDHIUJVDVJPDAVADULVCVIKJHIVADVB
      GUKUMUNUOUPUQ $.

    $d q r A $.  $d q r .\/ $.  $d q r .<_ $.  $d s .+ $.  $d r X $.
    $( Member of projective subspace sum of nonempty sets.  (Contributed by NM,
       3-Jan-2012.) $)
    elpaddn0 $p |- ( ( ( K e. Lat /\ X C_ A /\ Y C_ A )
               /\ ( X =/= (/) /\ Y =/= (/) ) ) -> ( S e. ( X .+ Y ) <->
         ( S e. A /\ E. q e. X E. r e. Y S .<_ ( q .\/ r ) ) ) ) $=
      ( wcel wa co wbr wi syl clat wss w3a c0 wne wo cv wb elpadd adantr simpl2
      wrex sseld cbs simpll1 ssel2 3ad2antl2 eqid atbase simpl3 latlej1 syl3anc
      cfv sselda reximdva0 exp31 com23 imp ancld wceq oveq1 breq2d rexbidv syl6
      rspcev adantrl jcad wex latlej2 ex impancom eximdv df-rex 3imtr4g adantrr
      oveq2 n0 jaod pm4.72 sylib bitr4d ) EUAOZGAUBZHAUBZUCZGUDUEZHUDUEZPZPZCGH
      BQOZCGOZCHOZUFZCAOZCJUGZIUGZDQZFRZIHULZJGULZPZUFZXKWOWTXLUHWRAUABCDEFGHIJ
      KLMNUIUJWSXCXKSXKXLUHWSXAXKXBWSXAXDXJWSGACWLWMWNWRUKUMWOWQXAXJSWPWOWQPZXA
      XACCXFDQZFRZIHULZPXJXMXAXPWOWQXAXPSWOXAWQXPWOXAWQXPWOXAPZXOIHXQXFHOZPZWLC
      EUNVCZOZXFXTOZXOWLWMWNXAXRUOXSXDYAXQXDXRWMWLXAXDWNGACUPUQUJAXTCEXTURZMUSZ
      TXSXFAOYBXQHAXFWLWMWNXAUTVDAXTXFEYCMUSTXTDEFCXFYCKLVAVBVEVFVGVHVIXIXPJCGX
      ECVJZXHXOIHYEXGXNCFXECXFDVKVLVMVOVNVPVQWSXBXDXJWSHACWLWMWNWRUTUMWOWPXBXJS
      WQWOXBWPXJWOXBPZXEGOZJVRYGXIPZJVRWPXJYFYGYHJYFYGXIWOYGXBXIWOYGPZXBXBCXECD
      QZFRZPXIYIXBYKYIXBYKYIXBPZWLXEXTOZYAYKWLWMWNYGXBUOYLXEAOZYMYIYNXBWMWLYGYN
      WNGAXEUPUQUJAXTXEEYCMUSTYLXDYAYIHACWLWMWNYGUTVDYDTXTDEFXECYCKLVSVBVTVIXHY
      KICHXFCVJXGYJCFXFCXEDWFVLVOVNWAVIWBJGWGXIJGWCWDWAWEVQWHXCXKWIWJWK $.

    $( Projective subspace sum operation value for nonempty sets.  (Contributed
       by NM, 27-Jan-2012.)  (New usage is discouraged.) $)
    paddvaln0N $p |- ( ( ( K e. Lat /\ X C_ A /\ Y C_ A )
                /\ ( X =/= (/) /\ Y =/= (/) ) )
     -> ( X .+ Y ) = { p e. A | E. q e. X E. r e. Y p .<_ ( q .\/ r ) } ) $=
      ( vs wcel wss wa cv wrex clat w3a c0 wne wbr crab elpaddn0 breq1 2rexbidv
      co weq elrab syl6bbr eqrdv ) DUAPFAQGAQUBFUCUDGUCUDRRZOFGBUJZJSZISHSCUJZE
      UEZHGTIFTZJAUFZUOOSZUPPVBAPVBUREUEZHGTIFTZRVBVAPABVBCDEFGHIKLMNUGUTVDJVBA
      JOUKUSVCIHFGUQVBUREUHUIULUMUN $.

    $d q r Q $.  $d r R $.
    $( Condition implying membership in a projective subspace sum.
       (Contributed by NM, 8-Jan-2012.) $)
    elpaddri $p |- ( ( ( K e. Lat /\ X C_ A /\ Y C_ A ) /\
       ( Q e. X /\ R e. Y ) /\ ( S e. A /\ S .<_ ( Q .\/ R ) ) ) ->
           S e. ( X .+ Y ) ) $=
      ( vq vr wcel wa co wbr clat wss w3a wrex simp3l simp2l simp2r simp3r wceq
      cv oveq1 breq2d oveq2 rspc2ev syl3anc c0 wne ne0i anim12i anim2i elpaddn0
      wb 3adant3 syl mpbir2and ) GUAQIAUBJAUBUCZCIQZDJQZRZEAQZECDFSZHTZRZUCZEIJ
      BSQZVJEOUJZPUJZFSZHTZPJUDOIUDZVFVIVJVLUEVNVGVHVLVTVFVGVHVMUFVFVGVHVMUGVFV
      IVJVLUHVSVLECVQFSZHTOPCDIJVPCUIVRWAEHVPCVQFUKULVQDUIWAVKEHVQDCFUMULUNUOVN
      VFIUPUQZJUPUQZRZRZVOVJVTRVBVFVIWEVMVIWDVFVGWBVHWCICURJDURUSUTVCABEFGHIJPO
      KLMNVAVDVE $.

    $( Condition implying membership in a projective subspace sum with a point.
       (Contributed by NM, 1-Feb-2012.)  (New usage is discouraged.) $)
    elpaddatriN $p |- ( ( ( K e. Lat /\ X C_ A /\ Q e. A ) /\
       ( R e. X /\ S e. A /\ S .<_ ( R .\/ Q ) ) ) ->
           S e. ( X .+ { Q } ) ) $=
      ( clat wcel wss w3a co wbr wa csn simpl1 simpl2 simpl3 snssd simpr1 snidg
      syl simpr2 simpr3 elpaddri syl322anc ) GNOZIAPZCAOZQZDIOZEAOZEDCFRHSZQZTZ
      UMUNCUAZAPUQCVBOZURUSEIVBBROUMUNUOUTUBUMUNUOUTUCVACAUMUNUOUTUDZUEUPUQURUS
      UFVAUOVCVDCAUGUHUPUQURUSUIUPUQURUSUJABDCEFGHIVBJKLMUKUL $.

    $d p Q $.
    $( Membership in a projective subspace sum with a point.  (Contributed by
       NM, 29-Jan-2012.) $)
    elpaddat $p |- ( ( ( K e. Lat /\ X C_ A /\ Q e. A ) /\ X =/= (/) )
  -> ( S e. ( X .+ { Q } )
        <-> ( S e. A /\ E. p e. X S .<_ ( p .\/ Q ) ) ) ) $=
      ( vr wcel wss c0 wa co wrex w3a wne csn cv wbr simpl1 simpl2 simpl3 snssd
      clat wb simpr snnzg syl elpaddn0 syl32anc wceq oveq2 breq2d rexsng anbi2d
      rexbidv bitrd ) FUJOZHAPZCAOZUAZHQUBZRZDHCUCZBSOZDAOZDIUDZNUDZESZGUEZNVJT
      ZIHTZRZVLDVMCESZGUEZIHTZRVIVDVEVJAPVHVJQUBZVKVSUKVDVEVFVHUFVDVEVFVHUGVICA
      VDVEVFVHUHZUIVGVHULVIVFWCWDCAUMUNABDEFGHVJNIJKLMUOUPVIVRWBVLVIVQWAIHVIVFV
      QWAUKWDVPWANCAVNCUQVOVTDGVNCVMEURUSUTUNVBVAVC $.

    $d p R $.
    $( Consequence of membership in a projective subspace sum with a point.
       (Contributed by NM, 2-Feb-2012.)  (New usage is discouraged.) $)
    elpaddatiN $p |- ( ( ( K e. Lat /\ X C_ A /\ Q e. A ) /\ ( X =/= (/)
      /\ R e. ( X .+ { Q } ) ) ) -> E. p e. X R .<_ ( p .\/ Q ) ) $=
      ( clat wcel wss w3a c0 co wa wne csn wbr wrex elpaddat simpr syl6bi impr
      cv ) FNOHAPCAOQZHRUAZDHCUBBSOZDIUICESGUCIHUDZUJUKTULDAOZUMTUMABCDEFGHIJKL
      MUEUNUMUFUGUH $.

    $( Membership in a projective subspace sum of two points.  (Contributed by
       NM, 29-Jan-2012.) $)
    elpadd2at $p |- ( ( K e. Lat /\ Q e. A /\ R e. A )
   -> ( S e. ( { Q } .+ { R } ) <-> ( S e. A /\ S .<_ ( Q .\/ R ) ) ) ) $=
      ( vr wcel csn co wbr wa wb 3ad2ant2 clat w3a cv wrex c0 simp1 simp2 snssd
      wss simp3 snnzg elpaddat syl31anc wceq oveq1 breq2d rexsng anbi2d bitrd
      wne ) GUANZCANZDANZUBZECOZDOBPNZEANZEMUCZDFPZHQZMVEUDZRZVGECDFPZHQZRVDVAV
      EAUIVCVEUEUTZVFVLSVAVBVCUFVDCAVAVBVCUGUHVAVBVCUJVBVAVOVCCAUKTABDEFGHVEMIJ
      KLULUMVDVKVNVGVBVAVKVNSVCVJVNMCAVHCUNVIVMEHVHCDFUOUPUQTURUS $.

    $( Membership in a projective subspace sum of two points.  (Contributed by
       NM, 8-Mar-2012.) $)
    elpadd2at2 $p |- ( ( K e. Lat /\ ( Q e. A /\ R e. A /\ S e. A ) )
   -> ( S e. ( { Q } .+ { R } ) <-> S .<_ ( Q .\/ R ) ) ) $=
      ( clat wcel w3a wa csn co wbr wb elpadd2at 3adant3r3 simpr3 biantrurd
      bitr4d ) GMNZCANZDANZEANZOPZECQDQBRNZUIECDFRHSZPZULUFUGUHUKUMTUIABCDEFGHI
      JKLUAUBUJUIULUFUGUHUIUCUDUE $.
  $}

  ${
    $d p q r A $.  $d q B $.  $d p q r K $.  $d q .+ $.  $d q r S $.
    $d p q r X $.  $d p q r Y $.
    padd0.a $e |- A = ( Atoms ` K ) $.
    padd0.p $e |- .+ = ( +P ` K ) $.
    $( Projective subspace sum includes the set union of its arguments.
       (Contributed by NM, 12-Jan-2012.)  (New usage is discouraged.) $)
    paddunssN $p |- ( ( K e. B /\ X C_ A /\ Y C_ A )
          -> ( X u. Y ) C_ ( X .+ Y ) ) $=
      ( vp vq vr wcel wss w3a cun cv cfv co wrex eqid cjn cple wbr crab paddval
      ssun1 syl5sseqr ) DBLEAMFAMNEFOZIPJPKPDUAQZRDUBQZUCKFSJESIAUDZOUHEFCRUHUK
      UFABCUIDUJEFKJIUJTUITGHUEUG $.

    $( Member of projective subspace sum with at least one empty set.
       (Contributed by NM, 29-Dec-2011.) $)
    elpadd0 $p |- ( ( ( K e. B /\ X C_ A /\ Y C_ A )
               /\ -. ( X =/= (/) /\ Y =/= (/) ) ) -> ( S e. ( X .+ Y ) <->
         ( S e. X \/ S e. Y ) ) ) $=
      ( vq vr c0 wne wa wn wcel wss wceq wo wrex w3a neanior bicomi con1bii cjn
      co wb cv cfv cple wbr eqid elpadd rex0 rexeq mtbiri a1i nrex rexbidv jaoi
      intnand biorf syl orcom syl6rbb sylan9bb sylan2b ) FLMGLMNZOEBPFAQGAQUAZF
      LRZGLRZSZDFGCUFPZDFPDGPSZUGVLVHVHVLOFLGLUBUCUDVIVMVNDAPZDJUHZKUHEUEUIZUFE
      UJUIZUKZKGTZJFTZNZSZVLVNABCDVQEVRFGKJVRULVQULHIUMVLVNWBVNSZWCVLWBOVNWDUGV
      LWAVOVJWAOVKVJWAVTJLTVTJUNVTJFLUOUPVKWAVSKLTZJFTWEJFWEOVPFPVSKUNUQURVKVTW
      EJFVSKGLUOUSUPUTVAWBVNVBVCWBVNVDVEVFVG $.

    $( Projective subspace sum with at least one empty set.  (Contributed by
       NM, 11-Jan-2012.) $)
    paddval0 $p |- ( ( ( K e. B /\ X C_ A /\ Y C_ A )
           /\ -. ( X =/= (/) /\ Y =/= (/) ) ) -> ( X .+ Y ) = ( X u. Y ) ) $=
      ( vq wcel wss w3a c0 wne wa wn co cun cv wo elpadd0 elun syl6bbr eqrdv )
      DBJEAKFAKLEMNFMNOPOZIEFCQZEFRZUEISZUFJUHEJUHFJTUHUGJABCUHDEFGHUAUHEFUBUCU
      D $.

    $( Projective subspace sum with an empty set.  (Contributed by NM,
       11-Jan-2012.) $)
    padd01 $p |- ( ( K e. B /\ X C_ A ) -> ( X .+ (/) ) = X ) $=
      ( wcel wss wa c0 co cun w3a wne wn wceq simpl simpr 0ss 3jca neirr intnan
      a1i paddval0 sylancl un0 syl6eq ) DBHZEAIZJZEKCLZEKMZEUKUIUJKAIZNEKOZKKOZ
      JPULUMQUKUIUJUNUIUJRUIUJSUNUKATUDUAUPUOKUBUCABCDEKFGUEUFEUGUH $.

    $( Projective subspace sum with an empty set.  (Contributed by NM,
       11-Jan-2012.) $)
    padd02 $p |- ( ( K e. B /\ X C_ A ) -> ( (/) .+ X ) = X ) $=
      ( wcel wss wa c0 co cun w3a wne wn wceq simpl 0ss a1i simpr neirr intnanr
      3jca paddval0 sylancl uncom un0 eqtri syl6eq ) DBHZEAIZJZKECLZKEMZEUMUKKA
      IZULNKKOZEKOZJPUNUOQUMUKUPULUKULRUPUMASTUKULUAUDUQURKUBUCABCDKEFGUEUFUOEK
      MEKEUGEUHUIUJ $.

    $( Projective subspace sum commutes.  (Contributed by NM, 3-Jan-2012.) $)
    paddcom $p |- ( ( K e. Lat /\ X C_ A /\ Y C_ A )
          -> ( X .+ Y ) = ( Y .+ X ) ) $=
      ( vp vq vr clat wcel wss cun cv cfv co wrex wceq eqid w3a cple crab uncom
      cjn wbr a1i wa cbs simpl1 simpl2 simprl sseldd atbase syl latjcom syl3anc
      simpl3 simprr breq2d rexcom syl6bb rabbidv uneq12d paddval 3com23 3eqtr4d
      2rexbidva ) CKLZDAMZEAMZUAZDENZHOZIOZJOZCUEPZQZCUBPZUFZJERIDRZHAUCZNEDNZV
      NVPVOVQQZVSUFZIDRJERZHAUCZNZDEBQEDBQZVLVMWCWBWGVMWCSVLDEUDUGVLWAWFHAVLWAW
      EJERIDRWFVLVTWEIJDEVLVODLZVPELZUHZUHZVRWDVNVSWMVIVOCUIPZLZVPWNLZVRWDSVIVJ
      VKWLUJWMVOALWOWMDAVOVIVJVKWLUKVLWJWKULUMAWNVOCWNTZFUNUOWMVPALWPWMEAVPVIVJ
      VKWLURVLWJWKUSUMAWNVPCWQFUNUOWNVQCVOVPWQVQTZUPUQUTVHWEIJDEVAVBVCVDAKBVQCV
      SDEJIHVSTZWRFGVEVIVKVJWIWHSAKBVQCVSEDIJHWSWRFGVEVFVG $.

    $( A projective subspace sum is a set of atoms.  (Contributed by NM,
       3-Jan-2012.) $)
    paddssat $p |- ( ( K e. B /\ X C_ A /\ Y C_ A ) -> ( X .+ Y ) C_ A ) $=
      ( vp vq vr wss co cun cv cfv wrex eqid wa unss wcel w3a cjn cple wbr crab
      paddval biimpi ssrab2 jctir sylib 3adant1 eqsstrd ) DBUAZEALZFALZUBEFCMEF
      NZIOJOKODUCPZMDUDPZUEKFQJEQZIAUFZNZAABCURDUSEFKJIUSRURRGHUGUOUPVBALZUNUOU
      PSZUQALZVAALZSVCVDVEVFVDVEEFATUHUTIAUIUJUQVAATUKULUM $.

    $( A projective subspace sum is a superset of its first summand.  ( ~ ssun1
       analog.)  (Contributed by NM, 3-Jan-2012.) $)
    sspadd1 $p |- ( ( K e. B /\ X C_ A /\ Y C_ A ) -> X C_ ( X .+ Y ) ) $=
      ( vp vq vr wcel wss cun cv cfv co wrex ssun1 eqid w3a cjn cple crab sstri
      wbr paddval syl5sseqr ) DBLEAMFAMUAEFNZIOJOKODUBPZQDUCPZUFKFRJERIAUDZNZEE
      FCQEUIUMEFSUIULSUEABCUJDUKEFKJIUKTUJTGHUGUH $.

    $( A projective subspace sum is a superset of its second summand.
       ( ~ ssun2 analog.)  (Contributed by NM, 3-Jan-2012.) $)
    sspadd2 $p |- ( ( K e. B /\ X C_ A /\ Y C_ A ) -> X C_ ( Y .+ X ) ) $=
      ( vp vq vr wcel wss w3a cun cv cfv co wrex eqid cjn cple crab ssun2 ssun1
      wbr sstri wceq paddval 3com23 syl5sseqr ) DBLZEAMZFAMZNFEOZIPJPKPDUAQZRDU
      BQZUFKESJFSIAUCZOZEFECRZEUOUSEFUDUOURUEUGULUNUMUTUSUHABCUPDUQFEKJIUQTUPTG
      HUIUJUK $.

    $d p B $.  $d p .+ $.  $d p q r Z $.
    $( Subset law for projective subspace sum.  ( ~ unss1 analog.)
       (Contributed by NM, 7-Mar-2012.) $)
    paddss1 $p |- ( ( K e. B /\ Y C_ A /\ Z C_ A )
              -> ( X C_ Y -> ( X .+ Z ) C_ ( Y .+ Z ) ) ) $=
      ( vp vq vr wcel wss co wa cv wo cfv wrex w3a cjn wbr orim1d ssrexv anim2d
      cple wi ssel orim12d adantl wb simpl1 sstr 3ad2antr2 ancoms simpl3 elpadd
      eqid syl3anc adantr 3imtr4d ssrdv ex ) DBMZFANZGANZUAZEFNZEGCOZFGCOZNVHVI
      PZJVJVKVLJQZEMZVMGMZRZVMAMZVMKQLQDUBSZODUGSZUCLGTZKETZPZRZVMFMZVORZVQVTKF
      TZPZRZVMVJMZVMVKMZVIWCWHUHVHVIVPWEWBWGVIVNWDVOEFVMUIUDVIWAWFVQVTKEFUEUFUJ
      UKVLVEEANZVGWIWCULVEVFVGVIUMVIVHWKVIVEVFWKVGEFAUNUOUPVEVFVGVIUQABCVMVRDVS
      EGLKVSUSZVRUSZHIURUTVHWJWHULVIABCVMVRDVSFGLKWLWMHIURVAVBVCVD $.

    $( Subset law for projective subspace sum.  ( ~ unss2 analog.)
       (Contributed by NM, 7-Mar-2012.) $)
    paddss2 $p |- ( ( K e. B /\ Y C_ A /\ Z C_ A )
              -> ( X C_ Y -> ( Z .+ X ) C_ ( Z .+ Y ) ) ) $=
      ( vp vq vr wcel wss co wa cv wo cfv wrex w3a cjn cple wbr wi ssel reximdv
      orim2d ssrexv anim2d orim12d adantl simpl1 simpl3 3ad2antr2 ancoms elpadd
      wb sstr eqid syl3anc simpl2 3imtr4d ssrdv ex ) DBMZFANZGANZUAZEFNZGECOZGF
      COZNVIVJPZJVKVLVMJQZGMZVNEMZRZVNAMZVNKQLQDUBSZODUCSZUDZLETZKGTZPZRZVOVNFM
      ZRZVRWALFTZKGTZPZRZVNVKMZVNVLMZVJWEWKUEVIVJVQWGWDWJVJVPWFVOEFVNUFUHVJWCWI
      VRVJWBWHKGWALEFUIUGUJUKULVMVFVHEANZWLWEURVFVGVHVJUMZVFVGVHVJUNZVJVIWNVJVF
      VGWNVHEFAUSUOUPABCVNVSDVTGELKVTUTZVSUTZHIUQVAVMVFVHVGWMWKURWOWPVFVGVHVJVB
      ABCVNVSDVTGFLKWQWRHIUQVAVCVDVE $.

    $( Subset law for projective subspace sum.  ( ~ unss12 analog.)
       (Contributed by NM, 7-Mar-2012.) $)
    paddss12 $p |- ( ( K e. B /\ Y C_ A /\ W C_ A )
              -> ( ( X C_ Y /\ Z C_ W ) -> ( X .+ Z ) C_ ( Y .+ W ) ) ) $=
      ( wcel wss w3a wa co simpl1 simpl2 sstr ancoms ad2ant2l 3jca paddss1 sylc
      3adantl1 simprl wi paddss2 3com23 imp adantrl sstrd ex ) DBKZGALZEALZMZFG
      LZHELZNZFHCOZGECOZLUPUSNZUTGHCOZVAVBUMUNHALZMUQUTVCLVBUMUNVDUMUNUOUSPUMUN
      UOUSQUNUOUSVDUMUOURVDUNUQURUOVDHEARSTUDUAUPUQURUEABCDFGHIJUBUCUPURVCVALZU
      QUPURVEUMUOUNURVEUFABCDHEGIJUGUHUIUJUKUL $.
  $}

  ${
    paddasslem.l $e |- .<_ = ( le ` K ) $.
    paddasslem.j $e |- .\/ = ( join ` K ) $.
    paddasslem.a $e |- A = ( Atoms ` K ) $.
    $( Lemma for ~ paddass .  (Contributed by NM, 8-Jan-2012.) $)
    paddasslem1 $p |- ( ( ( K e. HL /\ ( x e. A /\ r e. A /\ y e. A )
        /\ x =/= y ) /\ -. r .<_ ( x .\/ y ) ) -> -. x .<_ ( r .\/ y ) ) $=
      ( chlt wcel cv w3a wne co wbr hlatexch2 con3dimp ) EKLAMZCLGMZCLBMZCLNTUB
      ONTUAUBDPFQUATUBDPFQCTUAUBDEFHIJRS $.

    $( Lemma for ~ paddass .  (Contributed by NM, 8-Jan-2012.) $)
    paddasslem2 $p |- ( ( ( K e. HL /\ r e. A )
   /\ ( x e. A /\ y e. A /\ z e. A )
   /\ ( -. r .<_ ( x .\/ y ) /\ r .<_ ( y .\/ z ) ) )
 -> z .<_ ( r .\/ y ) ) $=
      ( wcel cv wa w3a co wbr 3jca syl atbase chlt wn wne simp1l simp1r atnlej2
      simp23 simp22 simp21 simp3l syl131anc simp3r hlatexch1 sylc clat cbs wceq
      cfv hllat eqid latjcom syl3anc breqtrrd ) FUALZHMZDLZNZAMZDLZBMZDLZCMZDLZ
      OZVEVHVJEPGQUBZVEVJVLEPGQZNZOZVLVJVEEPZVEVJEPZGVRVDVFVMVKOZVEVJUCZOVPVLVS
      GQVRVDWAWBVDVFVNVQUDZVRVFVMVKVDVFVNVQUEZVGVIVKVMVQUGVGVIVKVMVQUHZRVRVDVFV
      IVKVOWBWCWDVGVIVKVMVQUIWEVGVNVOVPUJDVEVHVJEFGIJKUFUKRVGVNVOVPULDVEVLVJEFG
      IJKUMUNVRFUOLZVEFUPURZLZVJWGLZVTVSUQVRVDWFWCFUSSVRVFWHWDDWGVEFWGUTZKTSVRV
      KWIWEDWGVJFWJKTSWGEFVEVJWJJVAVBVC $.

    ${
      $d s A $.  $d s .\/ $.  $d s K $.  $d s .<_ $.  $d s p $.  $d s r $.
      $d s x $.  $d s y $.  $d s z $.
      $( Lemma for ~ paddass .  Restate projective space axiom ~ ps-2 .
         (Contributed by NM, 8-Jan-2012.) $)
      paddasslem3 $p |- ( ( K e. HL /\ ( x e. A /\ r e. A /\ y e. A )
             /\ ( p e. A /\ z e. A ) ) -> (
     ( ( -. x .<_ ( r .\/ y ) /\ p =/= z )
          /\ ( p .<_ ( x .\/ r ) /\ z .<_ ( r .\/ y ) ) )
   -> E. s e. A ( s .<_ ( x .\/ y ) /\ s .<_ ( p .\/ z ) ) ) ) $=
        ( chlt wcel cv w3a wa co wbr wn wne wrex ps-2 ex ) FNOAPZDOIPZDOBPZDOQJ
        PZDOCPZDORQUFUGUHESZGTUAUIUJUBRUIUFUGESGTUJUKGTRRHPZUFUHESGTULUIUJESGTR
        HDUCHDUFUGUHUIUJEFGKLMUDUE $.

      $( Lemma for ~ paddass .  Combine ~ paddasslem1 , ~ paddasslem2 , and
         ~ paddasslem3 .  (Contributed by NM, 8-Jan-2012.) $)
      paddasslem4 $p |- ( ( ( ( K e. HL /\ p e. A /\ r e. A )
             /\ ( x e. A /\ y e. A /\ z e. A )
             /\ ( p =/= z /\ x =/= y /\ -. r .<_ ( x .\/ y ) ) )
         /\ ( p .<_ ( x .\/ r ) /\ r .<_ ( y .\/ z ) ) )
              -> E. s e. A ( s .<_ ( x .\/ y ) /\ s .<_ ( p .\/ z ) ) ) $=
        ( wcel cv w3a wne co wbr wa chlt wn simpl11 simpl21 simpl13 simpl22 jca
        wrex simpl12 simpl23 simpl32 simpl33 paddasslem1 syl31anc simprl simpl2
        3jca simpl31 simprr paddasslem2 syl212anc jca31 paddasslem3 sylc ) FUAN
        ZJOZDNZIOZDNZPZAOZDNZBOZDNZCOZDNZPZVFVOQZVKVMQZVHVKVMERZGSUBZPZPZVFVKVH
        ERGSZVHVMVOERGSZTZTZVEVLVIVNPZVGVPTZPVKVHVMERZGSUBZVRTWDVOWJGSZTZTHOZVT
        GSWNVFVOERGSTHDUHWGVEWHWIVEVGVIVQWBWFUCZWGVLVIVNVLVNVPVJWBWFUDVEVGVIVQW
        BWFUEZVLVNVPVJWBWFUFUQZWGVGVPVEVGVIVQWBWFUIVLVNVPVJWBWFUJUGUQWGWKVRWMWG
        VEWHVSWAWKWOWQVRVSWAVJVQWFUKVRVSWAVJVQWFULZABDEFGIKLMUMUNVRVSWAVJVQWFUR
        WGWDWLWCWDWEUOWGVEVIVQWAWEWLWOWPVJVQWBWFUPWRWCWDWEUSABCDEFGIKLMUTVAUGVB
        ABCDEFGHIJKLMVCVD $.
    $}

    $( Lemma for ~ paddass .  Show ` s =/= z ` by contradiction.  (Contributed
       by NM, 8-Jan-2012.) $)
    paddasslem5 $p |- ( ( ( K e. HL /\ r e. A /\
    ( x e. A /\ y e. A /\ z e. A ) )
  /\ ( -. r .<_ ( x .\/ y ) /\ r .<_ ( y .\/ z ) /\ s .<_ ( x .\/ y ) ) )
           -> s =/= z ) $=
      ( wcel cv w3a wbr wa syl atbase ad2antrr chlt co wn wne weq breq1 biimpac
      wi cbs cfv eqid simpll1 hllat simpll2 simp32 simp33 latjcl syl3anc simp31
      clat simplr hlatlej2 simpr latjle12 biimpd syl13anc mp2and lattrd ex syl5
      expdimp necon3bd exp31 com23 com24 3imp2 ) FUAMZINZDMZANZDMZBNZDMZCNZDMZO
      ZOZVRVTWBEUBZGPZUCZVRWBWDEUBZGPZHNZWHGPZWMWDUDZWGWNWLWJWOWGWLWNWJWOUHZWGW
      LWNWPWGWLQZWNQWIWMWDWQWNHCUEZWIWNWRQWDWHGPZWQWIWRWNWSWMWDWHGUFUGWQWSWIWQW
      SQZFUIUJZFGVRWKWHXAUKZJWTVQFUTMZVQVSWFWLWSULZFUMRZWTVSVRXAMVQVSWFWLWSUNDX
      AVRFXBLSRWTXCWBXAMZWDXAMZWKXAMXEWTWCXFWGWCWLWSVQVSWAWCWEUOTZDXAWBFXBLSRZW
      TWEXGWGWEWLWSVQVSWAWCWEUPTDXAWDFXBLSRZXAEFWBWDXBKUQURWTXCVTXAMZXFWHXAMZXE
      WTWAXKWGWAWLWSVQVSWAWCWEUSTZDXAVTFXBLSRXIXAEFVTWBXBKUQURZWGWLWSVAWTWBWHGP
      ZWSWKWHGPZWTVQWAWCXOXDXMXHDVTWBEFGJKLVBURWQWSVCWTXCXFXGXLXOWSQZXPUHXEXIXJ
      XNXCXFXGXLOQXQXPXAEFGWBWDWHXBJKVDVEVFVGVHVIVJVKVLVMVNVOVP $.

    $( Lemma for ~ paddass .  (Contributed by NM, 8-Jan-2012.) $)
    paddasslem6 $p |- ( ( ( K e. HL /\ ( p e. A /\ s e. A ) /\
   z e. A ) /\ ( s =/= z /\ s .<_ ( p .\/ z ) ) ) -> p .<_ ( s .\/ z ) ) $=
      ( chlt wcel cv wa w3a wne co wbr simpl1 3jca simpl2r simpl3 simprl simprr
      simpl2l hlatexch2 sylc ) DKLZGMZBLZFMZBLZNZAMZBLZOZUKUNPZUKUIUNCQERZNZNZU
      HULUJUOOZUQOURUIUKUNCQERUTUHVAUQUHUMUOUSSUTULUJUOUJULUHUOUSUAUJULUHUOUSUE
      UHUMUOUSUBTUPUQURUCTUPUQURUDBUKUIUNCDEHIJUFUG $.

    $( Lemma for ~ paddass .  Combine ~ paddasslem5 and ~ paddasslem6 .
       (Contributed by NM, 9-Jan-2012.) $)
    paddasslem7 $p |- ( ( ( K e. HL /\ ( p e. A /\ r e. A /\ s e. A ) /\
     ( x e. A /\ y e. A /\ z e. A ) )
  /\ ( ( -. r .<_ ( x .\/ y ) /\ r .<_ ( y .\/ z ) /\ s .<_ ( x .\/ y ) )
           /\ s .<_ ( p .\/ z ) ) ) -> p .<_ ( s .\/ z ) ) $=
      ( chlt wcel cv w3a co wbr wa wn wne simpl1 simpl21 simpl23 simpl33 simpl3
      jca simpl22 simprl paddasslem5 syl31anc simprr paddasslem6 syl32anc ) FNO
      ZJPZDOZIPZDOZHPZDOZQZAPZDOZBPZDOZCPZDOZQZQZUSVDVFERZGSUAUSVFVHERGSVAVLGSQ
      ZVAUQVHERGSZTZTZUPURVBTVIVAVHUBZVNUQVAVHERGSUPVCVJVOUCZVPURVBURUTVBUPVJVO
      UDURUTVBUPVJVOUEUHVEVGVIUPVCVOUFVPUPUTVJVMVQVRURUTVBUPVJVOUIUPVCVJVOUGVKV
      MVNUJABCDEFGHIKLMUKULVKVMVNUMCDEFGHJKLMUNUO $.

    paddasslem.p $e |- .+ = ( +P ` K ) $.
    $( Lemma for ~ paddass .  (Contributed by NM, 8-Jan-2012.) $)
    paddasslem8 $p |- ( ( ( K e. HL /\ ( X C_ A /\ Y C_ A /\ Z C_ A )
  /\ ( p e. A /\ s e. A ) )
    /\ ( ( x e. X /\ y e. Y /\ z e. Z )
         /\ s .<_ ( x .\/ y ) /\ p .<_ ( s .\/ z ) ) )
  -> p e. ( ( X .+ Y ) .+ Z ) ) $=
      ( wcel wss cv chlt w3a wa co wbr clat simpl1 syl simpl21 simpl22 paddssat
      syl3anc simpl23 simpr11 simpr12 simpl3r simpr2 elpaddri syl322anc simpr13
      hllat simpl3l simpr3 ) GUARZIDSZJDSZKDSZUBZMTZDRZLTZDRZUCZUBZATZIRZBTZJRZ
      CTZKRZUBZVKVOVQFUDHUEZVIVKVSFUDHUEZUBZUCZGUFRZIJEUDZDSZVGVKWGRZVTVJWCVIWG
      KEUDRWEVDWFVDVHVMWDUGZGVAUHZWEVDVEVFWHWJVEVFVGVDVMWDUIZVEVFVGVDVMWDUJZDUA
      EGIJPQUKULVEVFVGVDVMWDUMWEWFVEVFVPVRVLWBWIWKWLWMVPVRVTWBWCVNUNVPVRVTWBWCV
      NUOVJVLVDVHWDUPVNWAWBWCUQDEVOVQVKFGHIJNOPQURUSVPVRVTWBWCVNUTVJVLVDVHWDVBV
      NWAWBWCVCDEVKVSVIFGHWGKNOPQURUS $.

    $( Lemma for ~ paddass .  Combine ~ paddasslem7 and ~ paddasslem8 .
       (Contributed by NM, 9-Jan-2012.) $)
    paddasslem9 $p |- ( ( ( K e. HL /\ ( X C_ A /\ Y C_ A /\ Z C_ A )
                           /\ ( p e. A /\ r e. A ) )
    /\ ( ( x e. X /\ y e. Y /\ z e. Z )
           /\ ( -. r .<_ ( x .\/ y ) /\ r .<_ ( y .\/ z ) )
    /\ ( s e. A /\ s .<_ ( x .\/ y ) /\ s .<_ ( p .\/ z ) ) ) )
           -> p e. ( ( X .+ Y ) .+ Z ) ) $=
      ( wcel w3a chlt wss cv wa co wbr simpl1 simpl2 simpl3l simpr31 jca simpr1
      wn simpr32 simpl3r 3jca ssel2 3anim123i sylbi 3ad2antl2 3ad2antr1 simpr2l
      an6 simpr2r simpr33 paddasslem7 syl32anc paddasslem8 syl33anc ) GUASZIDUB
      ZJDUBZKDUBZTZNUCZDSZMUCZDSZUDZTZAUCZISZBUCZJSZCUCZKSZTZVQWAWCFUEZHUFUMZVQ
      WCWEFUEHUFZUDZLUCZDSZWLWHHUFZWLVOWEFUEHUFZTZTZUDZVJVNVPWMUDWGWNVOWLWEFUEH
      UFZVOIJEUEKEUESVJVNVSWQUGZVJVNVSWQUHWRVPWMVPVRVJVNWQUIZWMWNWOWGWKVTUJZUKV
      TWGWKWPULWMWNWOWGWKVTUNZWRVJVPVRWMTWADSZWCDSZWEDSZTZWIWJWNTWOWSWTWRVPVRWM
      XAVPVRVJVNWQUOXBUPVTWKWGXGWPVNVJWGXGVSVNWGUDVKWBUDZVLWDUDZVMWFUDZTXGVKVLV
      MWBWDWFVCXHXDXIXEXJXFIDWAUQJDWCUQKDWEUQURUSUTVAWRWIWJWNWIWJWGWPVTVBWIWJWG
      WPVTVDXCUPWMWNWOWGWKVTVEABCDFGHLMNOPQVFVGABCDEFGHIJKLNOPQRVHVI $.

    $d s A $.  $d s .\/ $.  $d s K $.  $d s .<_ $.  $d s .+ $.  $d s X $.
    $d s Y $.  $d s Z $.  $d s p $.  $d s r $.  $d s x $.  $d s y $.  $d s z $.
    $( Lemma for ~ paddass .  Use ~ paddasslem4 to eliminate ` s ` from
       ~ paddasslem9 .  (Contributed by NM, 9-Jan-2012.) $)
    paddasslem10 $p |- ( ( ( ( K e. HL /\ p =/= z /\ x =/= y )
     /\ ( X C_ A /\ Y C_ A /\ Z C_ A ) /\ ( p e. A /\ r e. A ) )
 /\ ( ( x e. X /\ y e. Y /\ z e. Z )
     /\ ( -. r .<_ ( x .\/ y ) /\ p .<_ ( x .\/ r )
        /\ r .<_ ( y .\/ z ) ) ) )
  -> p e. ( ( X .+ Y ) .+ Z ) ) $=
      ( wcel w3a wa vs chlt cv wne wss co wbr wrex simpl11 simpl3l simpl3r 3jca
      an6 ssel2 3anim123i sylbi adantrr simpl12 simpl13 simprr1 simprr2 simprr3
      wn 3ad2antl2 paddasslem4 syl32anc simpl2 simpl3 adantr simplrl jca simprl
      simprrl simprrr paddasslem9 syl13anc rexlimddv ) GUBRZMUCZCUCZUDZAUCZBUCZ
      UDZSZIDUEZJDUEZKDUEZSZVSDRZLUCZDRZTZSZWBIRZWCJRZVTKRZSZWKWBWCFUFZHUGVCZVS
      WBWKFUFHUGZWKWCVTFUFHUGZSZTZTZUAUCZWSHUGZXFVSVTFUFHUGZTZVSIJEUFKEUFRZUADX
      EVRWJWLSWBDRZWCDRZVTDRZSZWAWDWTSXAXBXIUADUHXEVRWJWLVRWAWDWIWMXDUIZWJWLWEW
      IXDUJWJWLWEWIXDUKULWNWRXNXCWIWEWRXNWMWIWRTWFWOTZWGWPTZWHWQTZSXNWFWGWHWOWP
      WQUMXPXKXQXLXRXMIDWBUNJDWCUNKDVTUNUOUPVDUQXEWAWDWTVRWAWDWIWMXDURVRWAWDWIW
      MXDUSWTXAXBWRWNUTZULWTXAXBWRWNVAWTXAXBWRWNVBZABCDFGHUALMNOPVEVFXEXFDRZXIT
      ZTZVRWIWMSZWRWTXBTZYAXGXHSXJXEYDYBXEVRWIWMXOWEWIWMXDVGWEWIWMXDVHULVIWNWRX
      CYBVJXEYEYBXEWTXBXSXTVKVIYCYAXGXHXEYAXIVLXEYAXGXHVMXEYAXGXHVNULABCDEFGHIJ
      KUALMNOPQVOVPVQ $.

    $( Lemma for ~ paddass .  The case when ` p = z ` .  (Contributed by NM,
       11-Jan-2012.) $)
    paddasslem11 $p |- ( ( ( ( K e. HL /\ p = z )
           /\ ( X C_ A /\ Y C_ A /\ Z C_ A ) ) /\ z e. Z )
           -> p e. ( ( X .+ Y ) .+ Z ) ) $=
      ( chlt wcel wa wss cv co weq w3a simplll simplr3 simplr1 simplr2 paddssat
      syl3anc sspadd2 simpllr simpr eqeltrd sseldd ) EOPZJAUAZQZGBRZHBRZIBRZUBZ
      QZASZIPZQZIGHCTZICTZJSZVDUNUSVEBRZIVFRUNUOUTVCUCZUQURUSUPVCUDVDUNUQURVHVI
      UQURUSUPVCUEUQURUSUPVCUFBOCEGHMNUGUHBOCEIVEMNUIUHVDVGVBIUNUOUTVCUJVAVCUKU
      LUM $.

    $( Lemma for ~ paddass .  The case when ` x = y ` .  (Contributed by NM,
       11-Jan-2012.) $)
    paddasslem12 $p |- ( ( ( ( K e. HL /\ x = y )
       /\ ( X C_ A /\ Y C_ A /\ Z C_ A ) /\ ( p e. A /\ r e. A ) )
   /\ ( ( y e. Y /\ z e. Z ) /\ ( p .<_ ( x .\/ r )
          /\ r .<_ ( y .\/ z ) ) ) )
       -> p e. ( ( X .+ Y ) .+ Z ) ) $=
      ( wcel wa wss chlt weq w3a cv co simpl1l simpl21 simpl22 paddssat syl3anc
      wbr simpl23 3jca sspadd2 paddss1 sylc syl simprll simprlr simpl3l cbs cfv
      clat hllat eqid atbase sseldd simpl3r latjcl simpl1r simprrl oveq1 breq2d
      biimpa syl2anc latlej1 simprrr latjle12 syl13anc mpbi2and lattrd elpaddri
      wb syl322anc ) GUARZABUBZSZIDTZJDTZKDTZUCZMUDZDRZLUDZDRZSZUCZBUDZJRZCUDZK
      RZSZWLAUDZWNFUEZHUKZWNWRWTFUEZHUKZSZSZSZJKEUEZIJEUEZKEUEZWLXJWEXLDTZWJUCJ
      XLTZXKXMTXJWEXNWJWEWFWKWPXIUFZXJWEWHWIXNXPWHWIWJWGWPXIUGZWHWIWJWGWPXIUHZD
      UAEGIJPQUIUJWHWIWJWGWPXIULZUMXJWEWIWHXOXPXRXQDUAEGJIPQUNUJDUAEGJXLKPQUOUP
      XJGVCRZWIWJWSXAWMWLXFHUKWLXKRXJWEXTXPGVDUQZXRXSWQWSXAXHURZWQWSXAXHUSZWMWO
      WGWKXIUTZXJGVAVBZGHWLWRWNFUEZXFYEVEZNYAXJWMWLYERYDDYEWLGYGPVFUQXJXTWRYERZ
      WNYERZYFYERYAXJWRDRYHXJJDWRXRYBVGDYEWRGYGPVFUQZXJWOYIWMWOWGWKXIVHDYEWNGYG
      PVFUQZYEFGWRWNYGOVIUJXJXTYHWTYERZXFYERZYAYJXJWTDRYLXJKDWTXSYCVGDYEWTGYGPV
      FUQZYEFGWRWTYGOVIUJZXJWFXEWLYFHUKZWEWFWKWPXIVJWQXBXEXGVKWFXEYPWFXDYFWLHXC
      WRWNFVLVMVNVOXJWRXFHUKZXGYFXFHUKZXJXTYHYLYQYAYJYNYEFGHWRWTYGNOVPUJWQXBXEX
      GVQXJXTYHYIYMYQXGSYRWCYAYJYKYOYEFGHWRWNXFYGNOVRVSVTWADEWRWTWLFGHJKNOPQWBW
      DVG $.

    $( Lemma for ~ paddass .  The case when ` r .<_ ( x .\/ y ) ` .  (Unlike
       the proof in Maeda and Maeda, we don't need ` x =/= y ` .)  (Contributed
       by NM, 11-Jan-2012.) $)
    paddasslem13 $p |- ( ( ( ( K e. HL /\ p =/= z )
       /\ ( X C_ A /\ Y C_ A /\ Z C_ A ) /\ ( p e. A /\ r e. A ) )
   /\ ( ( x e. X /\ y e. Y ) /\ ( r .<_ ( x .\/ y )
           /\ p .<_ ( x .\/ r ) ) ) )
       -> p e. ( ( X .+ Y ) .+ Z ) ) $=
      ( wcel cv wa chlt wne wss w3a co simpl1l simpl21 simpl22 paddssat syl3anc
      wbr simpl23 sspadd1 clat hllat syl simprll simprlr simpl3l cbs cfv atbase
      eqid sseldd simpl3r simprrr latlej1 simprrl wb latjle12 syl13anc mpbi2and
      latjcl lattrd elpaddri syl322anc ) GUARZMSZCSUBZTZIDUCZJDUCZKDUCZUDZVRDRZ
      LSZDRZTZUDZASZIRZBSZJRZTZWFWJWLFUEZHUKZVRWJWFFUEZHUKZTZTZTZIJEUEZXBKEUEZV
      RXAVQXBDUCZWCXBXCUCVQVSWDWHWTUFZXAVQWAWBXDXEWAWBWCVTWHWTUGZWAWBWCVTWHWTUH
      ZDUAEGIJPQUIUJWAWBWCVTWHWTULDUAEGXBKPQUMUJXAGUNRZWAWBWKWMWEVRWOHUKVRXBRXA
      VQXHXEGUOUPZXFXGWIWKWMWSUQZWIWKWMWSURZWEWGVTWDWTUSZXAGUTVAZGHVRWQWOXMVCZN
      XIXAWEVRXMRXLDXMVRGXNPVBUPXAXHWJXMRZWFXMRZWQXMRXIXAWJDRXOXAIDWJXFXJVDDXMW
      JGXNPVBUPZXAWGXPWEWGVTWDWTVEDXMWFGXNPVBUPZXMFGWJWFXNOVMUJXAXHXOWLXMRZWOXM
      RZXIXQXAWLDRXSXAJDWLXGXKVDDXMWLGXNPVBUPZXMFGWJWLXNOVMUJZWIWNWPWRVFXAWJWOH
      UKZWPWQWOHUKZXAXHXOXSYCXIXQYAXMFGHWJWLXNNOVGUJWIWNWPWRVHXAXHXOXPXTYCWPTYD
      VIXIXQXRYBXMFGHWJWFWOXNNOVJVKVLVNDEWJWLVRFGHIJNOPQVOVPVD $.

    $( Lemma for ~ paddass .  Remove ` p =/= z ` , ` x =/= y ` , and
       ` -. r .<_ ( x .\/ y ) ` from antecedent of ~ paddasslem10 , using
       ~ paddasslem11 , ~ paddasslem12 , and ~ paddasslem13 .  (Contributed by
       NM, 11-Jan-2012.) $)
    paddasslem14 $p |- ( ( ( K e. HL
           /\ ( X C_ A /\ Y C_ A /\ Z C_ A ) /\ ( p e. A /\ r e. A ) )
    /\ ( ( x e. X /\ y e. Y /\ z e. Z )
       /\ ( p .<_ ( x .\/ r ) /\ r .<_ ( y .\/ z ) ) ) )
  -> p e. ( ( X .+ Y ) .+ Z ) ) $=
      ( wcel w3a wa chlt wss cv co wbr wi weq paddasslem11 3ad2antr3 ex adantrd
      a1d exp31 3simpb 3anim1i 3simpc anim1i paddasslem12 syl2an 3expia anim12i
      3exp1 3simpa paddasslem13 expr 3expd wn paddasslem10 pm2.61d impd expimpd
      wne 3exp pm2.61dne 3imp1 ) GUARZIDUBJDUBKDUBSZMUCZDRLUCZDRTZAUCZIRZBUCZJR
      ZCUCZKRZSZVRWAVSFUDHUEZVSWCWEFUDHUEZTZTZVRIJEUDKEUDRZVPVQVTWKWLUFZUFZUFZV
      RWEVPMCUGZVQWNVPWPTVQTZWMVTWQWGWLWJWQWGWLWQWBWFWLWDCDEFGHIJKMNOPQUHUIUJUK
      ULUMVPVRWEVLZWOVPWRTZWOWAWCVPWRABUGZWOVPWRWTSZVQVTWKWLXAVQVTSVPWTTZVQVTSW
      DWFTZWJTWLWKXAXBVQVTVPWRWTUNUOWGXCWJWBWDWFUPUQABCDEFGHIJKLMNOPQURUSVBUTVP
      WRWAWCVLZWOVPWRXDSZVQVTWMXEVQVTSZWGWJWLXFWGTZWHWIWLXGVSWAWCFUDHUEZWHWIWLU
      FUFXGXHWHWIWLXFWGXHWHWISZWLXFWSVQVTSWBWDTZXHWHTZTWLWGXITXEWSVQVTVPWRXDVCU
      OWGXJXIXKWBWDWFVCXHWHWIVCVAABCDEFGHIJKLMNOPQVDUSVEVFXGXHVGZWHWIWLXFWGXLWH
      WISWLABCDEFGHIJKLMNOPQVHVEVFVIVJVKVMUTVNUJVNVO $.

    $d y z A $.  $d y z .\/ $.  $d y z K $.  $d y z .<_ $.  $d y z .+ $.
    $d y z X $.  $d y z Y $.  $d y z Z $.  $d y z p $.  $d y z r $.
    $d y z x $.
    $( Lemma for ~ paddass .  Use ~ elpaddn0 to eliminate ` y ` and ` z ` from
       ~ paddasslem14 .  (Contributed by NM, 11-Jan-2012.) $)
    paddasslem15 $p |- ( ( ( K e. HL
           /\ ( X C_ A /\ Y C_ A /\ Z C_ A ) /\ ( Y =/= (/) /\ Z =/= (/) ) )
      /\ ( p e. A /\ ( x e. X /\ r e. ( Y .+ Z ) ) /\ p .<_ ( x .\/ r ) ) )
           -> p e. ( ( X .+ Y ) .+ Z ) ) $=
      ( vy vz wcel w3a wa chlt wss c0 wne cv co wbr wrex simpr2r clat wb simpl1
      hllat syl simpl22 simpl23 simpl3 elpaddn0 syl31anc mpbid wi simp11 simp12
      simp21 simp31 jca simp22l simp32l simp32r 3jca simp23 simp33 paddasslem14
      syl32anc 3expia 3expd imp rexlimdvv expimpd mpd ) EUARZGBUBZHBUBZIBUBZSZH
      UCUDIUCUDTZSZKUEZBRZAUEZGRZJUEZHICUFRZTZWHWJWLDUFFUGZSZTZWLBRZWLPUEZQUEZD
      UFFUGZQIUHPHUHZTZWHGHCUFICUFRZWQWMXCWKWMWIWOWGUIWQEUJRZWCWDWFWMXCUKWQWAXE
      WAWEWFWPULEUMUNWBWCWDWAWFWPUOWBWCWDWAWFWPUPWAWEWFWPUQBCWLDEFHIQPLMNOURUSU
      TWQWRXBXDWQWRTXAXDPQHIWQWRWSHRZWTIRZTZXAXDVAVAWQWRXHXAXDWGWPWRXHXASZXDWGW
      PXISZWAWEWIWRTWKXFXGSWOXATXDWAWEWFWPXIVBWAWEWFWPXIVCXJWIWRWGWIWNWOXIVDWGW
      PWRXHXAVEVFXJWKXFXGWKWMWIWOWGXIVGXFXGWRXAWGWPVHXFXGWRXAWGWPVIVJXJWOXAWGWI
      WNWOXIVKWGWPWRXHXAVLVFAPQBCDEFGHIJKLMNOVMVNVOVPVQVRVSVT $.

    $d p r x A $.  $d r x .\/ $.  $d p r x K $.  $d r x .<_ $.  $d p r x .+ $.
    $d p r x X $.  $d p r x Y $.  $d p r x Z $.  $d r x p $.
    $( Lemma for ~ paddass .  Use ~ elpaddn0 to eliminate ` x ` and ` r ` from
       ~ paddasslem15 .  (Contributed by NM, 11-Jan-2012.) $)
    paddasslem16 $p |- ( ( K e. HL /\ ( X C_ A /\ Y C_ A /\ Z C_ A )
     /\ ( ( X =/= (/) /\ ( Y .+ Z ) =/= (/) )
         /\ ( Y =/= (/) /\ Z =/= (/) ) ) )
       -> ( X .+ ( Y .+ Z ) ) C_ ( ( X .+ Y ) .+ Z ) ) $=
      ( vx vr wcel wss c0 wne co wa vp chlt w3a cv wbr wrex clat hllat 3ad2ant1
      wb simp21 simp1 simp22 simp23 paddssat syl3anc elpaddn0 syl31anc wi simpr
      simp3l paddasslem15 syl3anl3 3exp2 imp rexlimdvv expimpd sylbid ssrdv ) D
      UBOZFAPZGAPZHAPZUCZFQRGHBSZQRTZGQRHQRTZTZUCZUAFVOBSZFGBSHBSZVSUAUDZVTOZWB
      AOZWBMUDZNUDZCSEUEZNVOUFMFUFZTZWBWAOZVSDUGOZVKVOAPZVPWCWIUJVJVNWKVRDUHUIV
      JVKVLVMVRUKVSVJVLVMWLVJVNVRULVJVKVLVMVRUMVJVKVLVMVRUNAUBBDGHKLUOUPVJVNVPV
      QVAABWBCDEFVONMIJKLUQURVSWDWHWJVSWDTWGWJMNFVOVSWDWEFOWFVOOTZWGWJUSUSVSWDW
      MWGWJVRVJVNVQWDWMWGUCWJVPVQUTMABCDEFGHNUAIJKLVBVCVDVEVFVGVHVI $.
  $}

  ${
    paddass.a $e |- A = ( Atoms ` K ) $.
    paddass.p $e |- .+ = ( +P ` K ) $.
    $( Lemma for ~ paddass .  The case when at least one sum argument is empty.
       (Contributed by NM, 12-Jan-2012.) $)
    paddasslem17 $p |- ( ( K e. HL /\ ( X C_ A /\ Y C_ A /\ Z C_ A )
  /\ -. ( ( X =/= (/) /\ ( Y .+ Z ) =/= (/) )
           /\ ( Y =/= (/) /\ Z =/= (/) ) ) )
       -> ( X .+ ( Y .+ Z ) ) C_ ( ( X .+ Y ) .+ Z ) ) $=
      ( chlt wss c0 wne co wa wn wceq wo nne oveq1d syl5ibrcom wcel w3a orbi12i
      ianor bitri 3adant3r1 padd02 syldan 3ad2antr2 eqtr4d oveq1 eqeq12d eqimss
      paddssat syl6 padd01 3ad2antr1 sspadd1 simpl simpr3 syl3anc sstrd eqsstrd
      3adant3r3 oveq2 sseq1d jaod 3ad2antr3 oveq2d syl5bi 3impia ) CIUAZDAJZEAJ
      ZFAJZUBZDKLZEFBMZKLZNZEKLZFKLZNZNOZDVRBMZDEBMZFBMZJZWDDKPZVRKPZQZEKPZFKPZ
      QZQZVLVPNZWHWDVTOZWCOZQWOVTWCUDWQWKWRWNWQVQOZVSOZQWKVQVSUDWSWIWTWJDKRVRKR
      UCUEWRWAOZWBOZQWNWAWBUDXAWLXBWMEKRFKRUCUEUCUEWPWKWHWNWPWIWHWJWPWIWEWGPZWH
      WPXCWIKVRBMZKEBMZFBMZPWPXDVRXFVLVPVRAJZXDVRPVLVNVOXGVMAIBCEFGHUNUFAIBCVRG
      HUGUHWPXEEFBVLVMVNXEEPVOAIBCEGHUGUISUJWIWEXDWGXFDKVRBUKWIWFXEFBDKEBUKSULT
      WEWGUMZUOWPWHWJDKBMZWGJWPXIDWGVLVNVMXIDPVOAIBCDGHUPUQZWPDWFWGVLVMVNDWFJVO
      AIBCDEGHURVDWPVLWFAJZVOWFWGJVLVPUSVLVMVNXKVOAIBCDEGHUNVDZVLVMVNVOUTAIBCWF
      FGHURVAVBVCWJWEXIWGVRKDBVEVFTVGWPWNXCWHWPWLXCWMWPXCWLDKFBMZBMZXIFBMZPWPXN
      DFBMXOWPXMFDBVLVMVOXMFPVNAIBCFGHUGVHVIWPXIDFBXJSUJWLWEXNWGXOWLVRXMDBEKFBU
      KVIWLWFXIFBEKDBVESULTWPXCWMDEKBMZBMZWFKBMZPWPXQWFXRWPXPEDBVLVMVNXPEPVOAIB
      CEGHUPUIVIVLVPXKXRWFPXLAIBCWFGHUPUHUJWMWEXQWGXRWMVRXPDBFKEBVEVIFKWFBVEULT
      VGXHUOVGVJVK $.

    $( Lemma for ~ paddass .  Combine ~ paddasslem16 and ~ paddasslem17 .
       (Contributed by NM, 12-Jan-2012.) $)
    paddasslem18 $p |- ( ( K e. HL /\ ( X C_ A /\ Y C_ A /\ Z C_ A ) )
          -> ( X .+ ( Y .+ Z ) ) C_ ( ( X .+ Y ) .+ Z ) ) $=
      ( chlt wcel wss w3a wa c0 wne co cjn cfv eqid 3expa cple paddasslem16 wn
      paddasslem17 pm2.61dan ) CIJZDAKEAKFAKLZMDNOEFBPZNOMENOFNOMMZDUHBPDEBPFBP
      KZUFUGUIUJABCQRZCCUARZDEFULSUKSGHUBTUFUGUIUCUJABCDEFGHUDTUE $.

    $( Projective subspace sum is associative.  Equation 16.2.1 of [MaedaMaeda]
       p. 68.  In our version, the subspaces do not have to be nonempty.
       (Contributed by NM, 29-Dec-2011.) $)
    paddass $p |- ( ( K e. HL /\ ( X C_ A /\ Y C_ A /\ Z C_ A ) )
          -> ( ( X .+ Y ) .+ Z ) = ( X .+ ( Y .+ Z ) ) ) $=
      ( chlt wcel wss w3a co paddasslem18 wceq paddcom syl3an1 paddssat syl3anc
      eqtrd simpl simpr3 simpr2 simpr1 syl13anc clat 3adant3r3 oveq1d 3adant3r1
      wa hllat oveq2d 3sstr4d eqssd ) CIJZDAKZEAKZFAKZLZUJZDEBMZFBMZDEFBMZBMZUT
      FEDBMZBMZFEBMZDBMZVBVDUTUOURUQUPVFVHKUOUSUAZUOUPUQURUBZUOUPUQURUCZUOUPUQU
      RUDZABCFEDGHNUEUTVBVEFBMZVFUTVAVEFBUOUPUQVAVEOZURUOCUFJZUPUQVNCUKZABCDEGH
      PQUGUHUTUOVEAKZURVMVFOZVIUTUOUQUPVQVIVKVLAIBCEDGHRSVJUOVOVQURVRVPABCVEFGH
      PQSTUTVDDVGBMZVHUTVCVGDBUOUQURVCVGOZUPUOVOUQURVTVPABCEFGHPQUIULUTUOUPVGAK
      ZVSVHOZVIVLUTUOURUQWAVIVJVKAIBCFEGHRSUOVOUPWAWBVPABCDVGGHPQSTUMABCDEFGHNU
      N $.

    $( Commutative/associative law for projective subspace sum.  (Contributed
       by NM, 14-Jan-2012.)  (New usage is discouraged.) $)
    padd12N $p |- ( ( K e. HL /\ ( X C_ A /\ Y C_ A /\ Z C_ A ) )
          -> ( X .+ ( Y .+ Z ) ) = ( Y .+ ( X .+ Z ) ) ) $=
      ( chlt wcel wss w3a wa co clat wceq hllat adantr simpr1 paddass syl13anc
      simpr2 paddcom syl3anc oveq1d simpl simpr3 3eqtr3d ) CIJZDAKZEAKZFAKZLZMZ
      DEBNZFBNEDBNZFBNZDEFBNBNEDFBNBNZUNUOUPFBUNCOJZUJUKUOUPPUIUSUMCQRUIUJUKULS
      ZUIUJUKULUBZABCDEGHUCUDUEABCDEFGHTUNUIUKUJULUQURPUIUMUFVAUTUIUJUKULUGABCE
      DFGHTUAUH $.

    $( Rearrangement of 4 terms in a projective subspace sum.  (Contributed by
       NM, 14-Jan-2012.)  (New usage is discouraged.) $)
    padd4N $p |- ( ( K e. HL /\ ( X C_ A /\ Y C_ A ) /\ ( Z C_ A /\ W C_ A ) )
          -> ( ( X .+ Y ) .+ ( Z .+ W ) )
         = ( ( X .+ Z ) .+ ( Y .+ W ) ) ) $=
      ( chlt wcel wss wa w3a co wceq syl13anc paddssat syl3anc paddass padd12N
      simp1 simp2r simp3l simp3r oveq2d simp2l 3eqtr4d ) CJKZEALZFALZMZGALZDALZ
      MZNZEFGDBOZBOZBOZEGFDBOZBOZBOZEFBOUQBOZEGBOUTBOZUPURVAEBUPUIUKUMUNURVAPUI
      ULUOUBZUIUJUKUOUCZUIULUMUNUDZUIULUMUNUEZABCFGDHIUAQUFUPUIUJUKUQALZVCUSPVE
      UIUJUKUOUGZVFUPUIUMUNVIVEVGVHAJBCGDHIRSABCEFUQHITQUPUIUJUMUTALZVDVBPVEVJV
      GUPUIUKUNVKVEVFVHAJBCFDHIRSABCEGUTHITQUH $.
  $}

  ${
    $d p B $.  $d p q r K $.  $d p q r .+ $.  $d p S $.  $d p q r X $.
    $d p q r Y $.
    paddidm.s $e |- S = ( PSubSp ` K ) $.
    paddidm.p $e |- .+ = ( +P ` K ) $.
    $( Projective subspace sum is idempotent.  Part of Lemma 16.2 of
       [MaedaMaeda] p. 68.  (Contributed by NM, 13-Jan-2012.) $)
    paddidm $p |- ( ( K e. B /\ X e. S ) -> ( X .+ X ) = X ) $=
      ( vp vq vr wcel wa co cv wo cfv wrex wss eqid syl3anc catm cjn cple simpl
      wbr wb psubssat elpadd wi pm1.2 a1i psubspi 3exp1 imp4b jaod sylbid ssrdv
      sspadd1 eqssd ) DAKZECKZLZEEBMZEVBHVCEVBHNZVCKZVDEKZVFOZVDDUAPZKZVDINJNDU
      BPZMDUCPZUEJEQIEQZLZOZVFVBUTEVHRZVOVEVNUFUTVAUDZVHACDEVHSZFUGZVRVHABVDVJD
      VKEEJIVKSZVJSZVQGUHTVBVGVFVMVGVFUIVBVFUJUKUTVAVIVLVFUTVAVIVLVFVHAVDCVJDVK
      EJIVSVTVQFULUMUNUOUPUQVBUTVOVOEVCRVPVRVRVHABDEEVQGURTUS $.

    $( The projective sum of two subspaces is a subspace.  Part of Lemma 16.2
       of [MaedaMaeda] p. 68.  (Contributed by NM, 14-Jan-2012.)
       (New usage is discouraged.) $)
    paddclN $p |- ( ( K e. HL /\ X e. S /\ Y e. S ) -> ( X .+ Y ) e. S ) $=
      ( vp vq vr chlt wcel co cfv wss cv wrex eqid psubssat wceq w3a cjn wbr wi
      catm cple wral simp1 3adant3 3adant2 paddssat syl3anc wa wo olc wb elpadd
      padd4N syl122anc paddidm oveq12d eqtrd eleq2d bitr3d syl5ib expd ralrimiv
      ispsubsp2 3ad2ant1 mpbir2and ) CKLZDBLZEBLZUAZDEAMZBLZVOCUENZOZHPZIPJPCUB
      NZMCUFNZUCJVOQIVOQZVSVOLZUDZHVQUGZVNVKDVQOZEVQOZVRVKVLVMUHZVKVLWFVMVQKBCD
      VQRZFSUIZVKVMWGVLVQKBCEWIFSUJZVQKACDEWIGUKULZVNWDHVQVNVSVQLZWBWCWMWBUMZWC
      WCUNZWNUNZVNWCWNWOUOVNVSVOVOAMZLZWPWCVNVKVRVRWRWPUPWHWLWLVQKAVSVTCWAVOVOJ
      IWARZVTRZWIGUQULVNWQVOVSVNWQDDAMZEEAMZAMZVOVNVKWFWGWFWGWQXCTWHWJWKWJWKVQA
      CEDEDWIGURUSVNXADXBEAVKVLXADTVMKABCDFGUTUIVKVMXBETVLKABCEFGUTUJVAVBVCVDVE
      VFVGVKVLVPVRWEUMUPVMVQKBVTCWAVOJIHWSWTWIFVHVIVJ $.
  $}

  ${
    paddssw.a $e |- A = ( Atoms ` K ) $.
    paddssw.p $e |- .+ = ( +P ` K ) $.
    $( Subset law for projective subspace sum valid for all subsets of atoms.
       (Contributed by NM, 14-Mar-2012.) $)
    paddssw1 $p |- ( ( K e. B /\ ( X C_ A /\ Y C_ A /\ Z C_ A ) )
              -> ( ( X C_ Z /\ Y C_ Z ) -> ( X .+ Y ) C_ ( Z .+ Z ) ) ) $=
      ( wcel wss w3a wa co wi simpl simpr3 paddss12 syl3anc ) DBJZEAKZFAKZGAKZL
      ZMTUCUCEGKFGKMEFCNGGCNKOTUDPTUAUBUCQZUEABCDGEGFHIRS $.

    $( Subset law for projective subspace sum valid for all subsets of atoms.
       (Contributed by NM, 14-Mar-2012.) $)
    paddssw2 $p |- ( ( K e. B /\ ( X C_ A /\ Y C_ A /\ Z C_ A ) )
              -> ( ( X .+ Y ) C_ Z -> ( X C_ Z /\ Y C_ Z ) ) ) $=
      ( wcel wss w3a wa co sspadd1 3adant3r3 sstr sylan ex simpl simpr2 sspadd2
      simpr1 syl3anc jcad ) DBJZEAKZFAKZGAKZLZMZEFCNZGKZEGKZFGKZUKUMUNUKEULKZUM
      UNUFUGUHUPUIABCDEFHIOPEULGQRSUKUMUOUKFULKZUMUOUKUFUHUGUQUFUJTUFUGUHUIUAUF
      UGUHUIUCABCDFEHIUBUDFULGQRSUE $.
  $}

  ${
    paddss.a $e |- A = ( Atoms ` K ) $.
    paddss.s $e |- S = ( PSubSp ` K ) $.
    paddss.p $e |- .+ = ( +P ` K ) $.
    $( Subset law for projective subspace sum.  ( ~ unss analog.)  (Contributed
       by NM, 7-Mar-2012.) $)
    paddss $p |- ( ( K e. B /\ ( X C_ A /\ Y C_ A /\ Z e. S ) )
              -> ( ( X C_ Z /\ Y C_ Z ) <-> ( X .+ Y ) C_ Z ) ) $=
      ( wcel wss w3a wa co wi simpl 3ad2antr3 syl13anc simpr1 psubssat paddssw1
      simpr2 wceq paddidm sseq2d sylibd paddssw2 impbid ) EBLZFAMZGAMZHDLZNZOZF
      HMGHMOZFGCPZHMZUPUQURHHCPZMZUSUPUKULUMHAMZUQVAQUKUORZUKULUMUNUAZUKULUMUNU
      DZUKULUNVBUMABDEHIJUBSZABCEFGHIKUCTUPUTHURUKULUNUTHUEUMBCDEHJKUFSUGUHUPUK
      ULUMVBUSUQQVCVDVEVFABCEFGHIKUITUJ $.
  $}

  ${
    $d p q r A $.  $d q r .\/ $.  $d p q r K $.  $d q r .<_ $.  $d p q r .+ $.
    $d p q r S $.  $d p q r X $.  $d p q r Y $.  $d p q r Z $.  $d p q r $.
    pmodlem.l $e |- .<_ = ( le ` K ) $.
    pmodlem.j $e |- .\/ = ( join ` K ) $.
    pmodlem.a $e |- A = ( Atoms ` K ) $.
    pmodlem.s $e |- S = ( PSubSp ` K ) $.
    pmodlem.p $e |- .+ = ( +P ` K ) $.
    $( Lemma for ~ pmod1i .  (Contributed by NM, 9-Mar-2012.) $)
    pmodlem1 $p |- ( ( ( K e. HL /\ X C_ A /\ Y C_ A ) /\ ( Z e. S /\
          X C_ Z /\ p e. Z ) /\ ( q e. X /\ r e. Y /\
         p .<_ ( q .\/ r ) ) ) -> p e. ( X .+ ( Y i^i Z ) ) ) $=
      ( wcel wss w3a chlt cv co wbr cin weq simpl11 simpl12 simpl13 ssinss1 syl
      wa sspadd1 syl3anc simpr simpl31 eqeltrd sseldd wne hllat simpl32 simpl21
      clat simpl22 simpl23 psubssat syl2anc 3jca simpl33 hlatexch1 imp syl31anc
      csn simp31 snssd simp22 sstrd simp23 simp11 simp12 simp21 paddss syl13anc
      mpbi2and simp33 simp13 simp32 elpadd2at2 mpbird syl333anc elind syl322anc
      wb elpaddri pm2.61dane ) EUARZGASZHASZTZICRZGISZLUBZIRZTZKUBZGRZJUBZHRZXB
      XEXGDUCFUDZTZTZXBGHIUEZBUCZRZXBXEXKLKUFZULZGXMXBXPWPWQXLASZGXMSWPWQWRXDXJ
      XOUGWPWQWRXDXJXOUHXPWRXQWPWQWRXDXJXOUIHIAUJZUKAUABEGXLOQUMUNXPXBXEGXKXOUO
      XFXHXIWSXDXOUPUQURXKXBXEUSZULZEVCRZWQXQXFXGXLRXBARZXIXNXTWPYAWPWQWRXDXJXS
      UGZEUTZUKWPWQWRXDXJXSUHZXTWRXQWPWQWRXDXJXSUIZXRUKXFXHXIWSXDXSUPZXTHIXGXFX
      HXIWSXDXSVAZXTWPWQWRWTXAXCXFXHXGXEXBDUCFUDZXGIRYCYEYFWTXAXCWSXJXSVBZWTXAX
      CWSXJXSVDWTXAXCWSXJXSVEZYGYHXTWPYBXGARZXEARZTZXSXIYIYCXTYBYLYMXTIAXBXTWPW
      TIASZYCYJAUACEIOPVFZVGYKURZXTHAXGYFYHURXTGAXEYEYGURVHXKXSUOXFXHXIWSXDXSVI
      ZWPYNXSTXIYIAXBXGXEDEFMNOVJVKVLWSXDXFXHYITZTZXEVMZXBVMZBUCZIXGYTUUAISZUUB
      ISZUUCISZYTUUAGIYTXEGWSXDXFXHYIVNZVOWSWTXAXCYSVPVQYTXBIWSWTXAXCYSVRZVOYTW
      PUUAASUUBASWTUUDUUEULUUFWMWPWQWRXDYSVSZYTXEAYTGAXEWPWQWRXDYSVTUUGURZVOYTX
      BAYTIAXBYTWPWTYOUUIWSWTXAXCYSWAZYPVGUUHURZVOUUKAUABCEUUAUUBIOPQWBWCWDYTXG
      UUCRZYIWSXDXFXHYIWEYTYAYMYBYLUUMYIWMYTWPYAUUIYDUKUUJUULYTHAXGWPWQWRXDYSWF
      WSXDXFXHYIWGURABXEXBXGDEFMNOQWHWCWIURWJWKYQYRABXEXGXBDEFGXLMNOQWNWLWO $.

    $( Lemma for ~ pmod1i .  (Contributed by NM, 9-Mar-2012.) $)
    pmodlem2 $p |- ( ( K e. HL /\ ( X C_ A /\ Y C_ A /\ Z e. S ) /\ X C_ Z )
          -> ( ( X .+ Y ) i^i Z ) C_ ( X .+ ( Y i^i Z ) ) ) $=
      ( vq vr wcel wss c0 wa vp chlt w3a co cin wceq simpr oveq1d simpl1 padd02
      simpl22 syl2anc eqtrd ssinss1 simpl21 sspadd2 syl3anc eqsstrd oveq2 simp1
      ineq1d syl simp21 padd01 sylan9eqr inss1 sspadd1 syl5ss wne elin wbr wrex
      cv wi clat wb hllat simprl elpaddn0 simpl23 simpl3 simpr1 simpr2l simpr2r
      syl31anc simpr3 pmodlem1 syl333anc 3exp2 rexlimdvv adantld adantrl sylbid
      imp exp32 com34 imp4b syl5bi ssrdv pm2.61da2ne ) EUBQZGARZHARZICQZUCZGIRZ
      UCZGHBUDZIUEZGHIUEZBUDZRGSHSXGGSUFZTZXIXJXKXMXHHIXMXHSHBUDZHXMGSHBXGXLUGU
      HXMXAXCXNHUFXAXEXFXLUIZXBXCXDXAXFXLUKZAUBBEHLNUJULUMVAXMXAXJARZXBXJXKRXOX
      MXCXQXPHIAUNZVBXBXCXDXAXFXLUOAUBBEXJGLNUPUQURXGHSUFZTZXIGIUEZXKXTXHGIXSXG
      XHGSBUDZGHSGBUSXGXAXBYBGUFXAXEXFUTXAXBXCXDXFVCAUBBEGLNVDULVEVAXTYAGXKGIVF
      XTXAXBXQGXKRXAXEXFXSUIXBXCXDXAXFXSUOXTXCXQXBXCXDXAXFXSUKXRVBAUBBEGXJLNVGU
      QVHURXGGSVIHSVITZTZUAXIXKUAVMZXIQYEXHQZYEIQZTYDYEXKQZYEXHIVJXGYCYFYGYHXGY
      CYGYFYHXGYCYGYFYHVNXGYCYGTZTZYFYEAQZYEOVMZPVMZDUDFVKZPHVLOGVLZTZYHYJEVOQZ
      XBXCYCYFYPVPYJXAYQXAXEXFYIUIEVQVBXBXCXDXAXFYIUOXBXCXDXAXFYIUKXGYCYGVRABYE
      DEFGHPOJKLNVSWEXGYGYPYHVNYCXGYGTZYOYHYKYRYNYHOPGHXGYGYLGQZYMHQZTZYNYHVNVN
      XGYGUUAYNYHXGYGUUAYNUCZTXAXBXCXDXFYGYSYTYNYHXAXEXFUUBUIXBXCXDXAXFUUBUOXBX
      CXDXAXFUUBUKXBXCXDXAXFUUBVTXAXEXFUUBWAXGYGUUAYNWBYSYTYGYNXGWCYSYTYGYNXGWD
      XGYGUUAYNWFABCDEFGHIPOUAJKLMNWGWHWIWNWJWKWLWMWOWPWQWRWSWT $.
  $}

  ${
    pmod.a $e |- A = ( Atoms ` K ) $.
    pmod.s $e |- S = ( PSubSp ` K ) $.
    pmod.p $e |- .+ = ( +P ` K ) $.
    $( The modular law holds in a projective subspace.  (Contributed by NM,
       10-Mar-2012.) $)
    pmod1i $p |- ( ( K e. HL /\ ( X C_ A /\ Y C_ A /\ Z e. S ) ) ->
        ( X C_ Z -> ( ( X .+ Y ) i^i Z ) = ( X .+ ( Y i^i Z ) ) ) ) $=
      ( chlt wcel wss w3a wa co cin wceq cfv syl3anc cjn cple pmodlem2 3expa wi
      eqid inss1 simpll simplr2 simplr1 paddss2 simpl psubssat 3ad2antr3 simpr2
      mpi ssinss1 syl paddss1 simplr3 syl2anc inss2 paddidm sseqtrd sstrd ssind
      imp eqssd ex ) DKLZEAMZFAMZGCLZNZOZEGMZEFBPZGQZEFGQZBPZRVOVPOZVRVTVJVNVPV
      RVTMABCDUASZDDUBSZEFGWCUFWBUFHIJUCUDWAVTVQGWAVSFMZVTVQMZFGUGWAVJVLVKWDWEU
      EVJVNVPUHZVKVLVMVJVPUIVKVLVMVJVPUJAKBDVSFEHJUKTUPWAVTGVSBPZGVOVPVTWGMZVOV
      JGAMZVSAMZVPWHUEVJVNULVJVKVMWIVLAKCDGHIUMZUNVOVLWJVJVKVLVMUOFGAUQURAKBDEG
      VSHJUSTVGWAWGGGBPZGWAVJWIWIWGWLMZWFWAVJVMWIWFVKVLVMVJVPUTZWKVAZWOVJWIWINV
      SGMWMFGVBAKBDVSGGHJUKUPTWAVJVMWLGRWFWNKBCDGIJVCVAVDVEVFVHVI $.

    $( Dual of the modular law.  (Contributed by NM, 8-Apr-2012.)
       (New usage is discouraged.) $)
    pmod2iN $p |- ( ( K e. HL /\ ( X e. S /\ Y C_ A /\ Z C_ A ) ) ->
        ( Z C_ X -> ( ( X i^i Y ) .+ Z ) = ( X i^i ( Y .+ Z ) ) ) ) $=
      ( chlt wcel wss w3a cin co wceq incom paddcom syl3anc clat hllat 3ad2ant1
      oveq1i simp22 syl simp23 syl5eq simp21 3jca pmod1i 3impia syld3an2 ineq1d
      ssinss1 3eqtr2d syl6eq 3expia ) DKLZECLZFAMZGAMZNZGEMZEFOZGBPZEFGBPZOZQUS
      VCVDNZVFVGEOZVHVIVFGFEOZBPZGFBPZEOZVJVIVFVKGBPZVLVEVKGBEFRUDVIDUALZVKAMZV
      BVOVLQUSVCVPVDDUBUCZVIVAVQUSUTVAVBVDUEZFEAUOUFUSUTVAVBVDUGZABDVKGHJSTUHUS
      VBVAUTNZVCVDVNVLQZVIVBVAUTVTVSUSUTVAVBVDUIUJUSWAVDWBABCDGFEHIJUKULUMVIVMV
      GEVIVPVBVAVMVGQVRVTVSABDGFHJSTUNUPVGERUQUR $.

    $( The modular law for projective subspaces.  (Contributed by NM,
       26-Mar-2012.)  (New usage is discouraged.) $)
    pmodN $p |- ( ( K e. HL /\ ( X e. S /\ Y C_ A /\ Z C_ A ) ) ->
        ( X i^i ( Y .+ ( X i^i Z ) ) ) = ( ( X i^i Y ) .+ ( X i^i Z ) ) ) $=
      ( wcel wss w3a wa cin co incom wceq inss2 syl5ss chlt hllat adantr simpr2
      clat simpr3 paddcom syl3anc ineq2d oveq2i simpr1 3jca inss1 pmod1i syldan
      mpi 3eqtr4a ) DUAKZECKZFALZGALZMZNZEEGOZFBPZOVEEOZEFVDBPZOEFOZVDBPZEVEQVC
      VGVEEVCDUEKZUTVDALZVGVERURVJVBDUBUCZURUSUTVAUDZVCVDGAEGSURUSUTVAUFTZABDFV
      DHJUGUHUIVCVDVHBPZVDFEOZBPZVIVFVHVPVDBEFQUJVCVJVHALVKVIVORVLVCVHFAEFSVMTV
      NABDVHVDHJUGUHURVBVKUTUSMZVFVQRZVCVKUTUSVNVMURUSUTVAUKULURVRNVDELVSEGUMAB
      CDVDFEHIJUNUPUOUQUQ $.
  $}

  ${
    pmodl42.s $e |- S = ( PSubSp ` K ) $.
    pmodl42.p $e |- .+ = ( +P ` K ) $.
    $( Lemma derived from modular law.  (Contributed by NM, 8-Apr-2012.)
       (New usage is discouraged.) $)
    pmodl42N $p |- ( ( ( K e. HL /\ X e. S /\ Y e. S ) /\ ( Z e. S /\ W e. S )
        )
       -> ( ( ( X .+ Y ) .+ Z ) i^i ( ( X .+ Y ) .+ W ) )
               = ( ( X .+ Y ) .+ ( ( X .+ Z ) i^i ( Y .+ W ) ) ) ) $=
      ( chlt wcel w3a co cin wss wceq psubssat syl2anc syl3anc syl13anc wa catm
      incom cfv simpl1 simpl3 eqid simpl2 simprl paddssat simprr paddclN pmod1i
      sspadd1 3impia syl131anc oveq2d ssinss1 syl paddass padd12N eqtrd ineq12d
      syl5reqr syl6eq sspadd2 sstrd 3eqtr4rd ) CJKZEBKZFBKZLZGBKZDBKZUAZUAZEFEG
      AMZFDAMZNZAMZAMZEVRFVQAMZNZAMZEFAMZVSAMZWEGAMZWEDAMZNZVPVTWCEAVPWCWBVRNZV
      TWBVRUCVPVIFCUBUDZOZVQWKOZVRBKZFVROZWJVTPZVIVJVKVOUEZVPVIVKWLWQVIVJVKVOUF
      ZWKJBCFWKUGZHQRZVPVIEWKOZGWKOZWMWQVPVIVJXAWQVIVJVKVOUHZWKJBCEWSHQRZVPVIVM
      XBWQVLVMVNUIZWKJBCGWSHQRZWKJACEGWSIUJSZVPVIVKVNWNWQWRVLVMVNUKZABCFDHIULSZ
      VPVIWLDWKOZWOWQWTVPVIVNXJWQXHWKJBCDWSHQRZWKJACFDWSIUNSVIWLWMWNLWOWPWKABCF
      VQVRWSHIUMUOUPVDUQVPVIXAWLVSWKOZWFWAPWQXDWTVPWMXLXGVQVRWKURUSWKACEFVSWSIU
      TTVPWIEVRAMZWBNZWDVPWIWBXMNXNVPWGWBWHXMVPWGEFGAMAMZWBVPVIXAWLXBWGXOPWQXDW
      TXFWKACEFGWSIUTTVPVIXAWLXBXOWBPWQXDWTXFWKACEFGWSIVATVBVPVIXAWLXJWHXMPWQXD
      WTXKWKACEFDWSIUTTVCWBXMUCVEVPVIXAVRWKOZWBBKZEWBOZXNWDPZWQXDVPVIWNXPWQXIWK
      JBCVRWSHQRVPVIVKVQBKZXQWQWRVPVIVJVMXTWQXCXEABCEGHIULSABCFVQHIULSVPEVQWBVP
      VIXAXBEVQOWQXDXFWKJACEGWSIUNSVPVIWMWLVQWBOWQXGWTWKJACVQFWSIVFSVGVIXAXPXQL
      XRXSWKABCEVRWBWSHIUMUOUPVBVH $.
  $}

  ${
    $d p q r B $.  $d p q r .\/ $.  $d p q r K $.  $d p q r M $.  $d p .+ $.
    $d p q r X $.  $d p q r Y $.
    pmapjoin.b $e |- B = ( Base ` K ) $.
    pmapjoin.j $e |- .\/ = ( join ` K ) $.
    pmapjoin.m $e |- M = ( pmap ` K ) $.
    pmapjoin.p $e |- .+ = ( +P ` K ) $.
    $( The projective map of the join of two lattice elements.  Part of
       Equation 15.5.3 of [MaedaMaeda] p. 63.  (Contributed by NM,
       27-Jan-2012.) $)
    pmapjoin $p |- ( ( K e. Lat /\ X e. B /\ Y e. B )
          -> ( ( M ` X ) .+ ( M ` Y ) ) C_ ( M ` ( X .\/ Y ) ) ) $=
      ( vq clat wcel cfv wbr wa wi wb elpmap vp vr w3a co cv catm cple wo simpl
      wrex eqid atbase latlej1 adantr simpl1 simpr simpl2 latjcl lattr syl13anc
      a1i mpan2d expimpd sylani jcad latlej2 simpl3 3adant3 3adant2 anbi12d an4
      syl6bb anim12i simpll1 simprl simpll2 simpll3 latjlej12 syl122anc syl3anc
      jaod simprr simplr ad2antrr expcomd syld sylbid rexlimdvv pmapssat elpadd
      wss simp1 orbi12d orbi1d bitrd syl2anc 3imtr4d ssrdv ) DMNZFANZGANZUCZUAF
      EOZGEOZBUDZFGCUDZEOZXBUAUEZDUFOZNZXHFDUGOZPZQZXJXHGXKPZQZUHZXJXHLUEZUBUEZ
      CUDZXKPZUBXDUJLXCUJZQZUHZXJXHXFXKPZQZXHXENZXHXGNZXBXPYEYBXBXMYEXOXBXMXJYD
      XMXJRXBXJXLUIVAXJXBXHANZXLYDXIAXHDHXIUKZULZXBYHXLYDXBYHQZXLFXFXKPZYDXBYLY
      HACDXKFGHXKUKZIUMUNYKWSYHWTXFANZXLYLQYDRWSWTXAYHUOZXBYHUPZWSWTXAYHUQXBYNY
      HACDFGHIURZUNZADXKXHFXFHYMUSUTVBVCVDVEXBXOXJYDXOXJRXBXJXNUIVAXJXBYHXNYDYJ
      XBYHXNYDYKXNGXFXKPZYDXBYSYHACDXKFGHYMIVFUNYKWSYHXAYNXNYSQYDRYOYPWSWTXAYHV
      GYRADXKXHGXFHYMUSUTVBVCVDVEWAXBYBXJYDYBXJRXBXJYAUIVAXJXBYHYAYDYJXBYHYAYDY
      KXTYDLUBXCXDYKXQXCNZXRXDNZQZXQXINZXRXINZQZXQFXKPZXRGXKPZQZQZXTYDRZXBUUBUU
      ISYHXBUUBUUCUUFQZUUDUUGQZQUUIXBYTUUKUUAUULWSWTYTUUKSXAXIAMXQDXKEFHYMYIJTV
      HWSXAUUAUULSWTXIAMXRDXKEGHYMYIJTVIVJUUCUUFUUDUUGVKVLUNUUEYKXQANZXRANZQZUU
      HUUJUUCUUMUUDUUNXIAXQDHYIULXIAXRDHYIULVMYKUUOUUHUUJYKUUOQZUUHXSXFXKPZUUJU
      UPWSUUMWTUUNXAUUHUUQRWSWTXAYHUUOVNZYKUUMUUNVOZWSWTXAYHUUOVPYKUUMUUNWBZWSW
      TXAYHUUOVQACDXKGXQFXRHYMIVRVSUUPXTUUQYDUUPWSYHXSANZYNXTUUQQYDRUURXBYHUUOW
      CUUPWSUUMUUNUVAUURUUSUUTACDXQXRHIURVTXBYNYHUUOYQWDADXKXHXSXFHYMUSUTWEWFVC
      VDWGWHVCVDVEWAXBYFXHXCNZXHXDNZUHZYBUHZYCXBWSXCXIWKZXDXIWKZYFUVESWSWTXAWLZ
      WSWTUVFXAXIAMDEFHYIJWIVHWSXAUVGWTXIAMDEGHYIJWIVIXIMBXHCDXKXCXDUBLYMIYIKWJ
      VTXBUVDXPYBXBUVBXMUVCXOWSWTUVBXMSXAXIAMXHDXKEFHYMYIJTVHWSXAUVCXOSWTXIAMXH
      DXKEGHYMYIJTVIWMWNWOXBWSYNYGYESUVHYQXIAMXHDXKEXFHYMYIJTWPWQWR $.
  $}

  ${
    $d q p r A $.  $d q p r B $.  $d p q r .\/ $.  $d p q r K $.  $d p q r M $.
    $d p .+ $.  $d p q r Q $.  $d p q r X $.
    pmapjat.b $e |- B = ( Base ` K ) $.
    pmapjat.j $e |- .\/ = ( join ` K ) $.
    pmapjat.a $e |- A = ( Atoms ` K ) $.
    pmapjat.m $e |- M = ( pmap ` K ) $.
    pmapjat.p $e |- .+ = ( +P ` K ) $.
    $( The projective map of the join of a lattice element and an atom.
       (Contributed by NM, 28-Jan-2012.) $)
    pmapjat1 $p |- ( ( K e. HL /\ X e. B /\ Q e. A )
          -> ( M ` ( X .\/ Q ) ) = ( ( M ` X ) .+ ( M ` Q ) ) ) $=
      ( vr wcel wceq wa c0 adantr wb vp vq chlt w3a co cfv cp0 wss simp1 atbase
      3ad2ant3 pmapssat syl2anc padd02 fveq2 cal hlatl 3ad2ant1 pmap0 sylan9eqr
      eqid syl oveq1d oveq1 col hlol olj02 fveq2d 3eqtr4rd wne cv cple wbr wrex
      simpll1 simpll2 simplr simpll3 3jca simpllr simpr cvrat42 imp syl22anc ex
      elpmap 3adant3 df-rex elpmapat 3adant2 anbi1d exbidv syl5rbb oveq2 breq2d
      ceqsexgv bitr3d anbi12d anass syl6bb rexbidv2 ad2antrr sylibrd imdistanda
      wex clat hllat simp2 latjcl syl3anc pmapeq0 necon3bid biimpar atn0 mpbird
      simp3 elpaddn0 syl12anc 3imtr4d ssrdv pmapjoin eqssd pm2.61dane ) FUCOZHB
      OZDAOZUDZHDEUEZGUFZHGUFZDGUFZCUEZPHFUGUFZYGHYMPZQZRYKCUEZYKYLYIYGYPYKPZYN
      YGYDYKAUHZYQYDYEYFUIZYGYDDBOZYRYSYFYDYTYEABDFIKUJUKZABUCFGDIKLULUMZAUCCFY
      KKMUNUMSYOYJRYKCYNYGYJYMGUFZRHYMGUOYGFUPOZUUCRPYDYEUUDYFFUQURZFGYMYMVAZLU
      SVBUTVCYOYHDGYNYGYHYMDEUEZDHYMDEVDYGFVEOZYTUUGDPYDYEUUHYFFVFURUUABEFDYMIJ
      UUFVGUMUTVHVIYGHYMVJZQZYIYLUUJUAYIYLUUJUAVKZAOZUUKYHFVLUFZVMZQZUULUUKUBVK
      ZNVKZEUEZUUMVMZNYKVNZUBYJVNZQZUUKYIOZUUKYLOZUUJUULUUNUVAUUJUULQZUUNUUPHUU
      MVMZUUKUUPDEUEZUUMVMZQZUBAVNZUVAUVEUUNUVJUVEUUNQZYDYEUULYFUDZUUIUUNUVJUVE
      YDUUNYDYEYFUUIUULVOSUVKYEUULYFUVEYEUUNYDYEYFUUIUULVPSUUJUULUUNVQUVEYFUUNY
      DYEYFUUIUULVRSVSYGUUIUULUUNVTUVEUUNWAYDUVLQUUIUUNQUVJABUUKDEFUUMHYMUBIUUM
      VAZJUUFKWBWCWDWEYGUVAUVJTUUIUULYGUUTUVIUBYJAYGUUPYJOZUUTQUUPAOZUVFQZUVHQU
      VOUVIQYGUVNUVPUUTUVHYDYEUVNUVPTYFABUCUUPFUUMGHIUVMKLWFWGYGUUQDPZUUSQZNXEZ
      UUTUVHUUTUUQYKOZUUSQZNXEYGUVSUUSNYKWHYGUWAUVRNYGUVTUVQUUSYDYFUVTUVQTYEADF
      GUUQKLWIWJWKWLWMYFYDUVSUVHTYEUUSUVHNDAUVQUURUVGUUKUUMUUQDUUPEWNWOWPUKWQWR
      UVOUVFUVHWSWTXAXBXCXDYGUVCUUOTZUUIYGYDYHBOZUWBYSYGFXFOZYEYTUWCYDYEUWDYFFX
      GURZYDYEYFXHZUUABEFHDIJXIXJABUCUUKFUUMGYHIUVMKLWFUMSUUJUWDYJAUHZYRUDZYJRV
      JZYKRVJZUVDUVBTYGUWHUUIYGUWDUWGYRUWEYDYEUWGYFABUCFGHIKLULWGUUBVSSYGUWIUUI
      YGYJRHYMYDYEYJRPYNTYFBFGHYMIUUFLXKWGXLXMYGUWJUUIYGUWJDYMVJZYGUUDYFUWKUUEY
      DYEYFXPADFYMUUFKXNUMYGYKRDYMYGYDYTYKRPDYMPTYSUUABFGDYMIUUFLXKUMXLXOSACUUK
      EFUUMYJYKNUBUVMJKMXQXRXSXTYGYLYIUHZUUIYGUWDYEYTUWLUWEUWFUUABCEFGHDIJLMYAX
      JSYBYC $.

    $( The projective map of the join of an atom with a lattice element.
       (Contributed by NM, 12-May-2012.) $)
    pmapjat2 $p |- ( ( K e. HL /\ X e. B /\ Q e. A )
          -> ( M ` ( Q .\/ X ) ) = ( ( M ` Q ) .+ ( M ` X ) ) ) $=
      ( chlt wcel co cfv wceq syl3anc wss pmapjat1 clat hllat 3ad2ant1 3ad2ant3
      w3a atbase simp2 latjcom fveq2d pmapssat syl2anc 3adant3 paddcom 3eqtr4d
      simp1 ) FNOZHBOZDAOZUFZHDEPZGQHGQZDGQZCPZDHEPZGQVCVBCPZABCDEFGHIJKLMUAUTV
      EVAGUTFUBOZDBOZURVEVARUQURVGUSFUCUDZUSUQVHURABDFIKUGUEZUQURUSUHBEFDHIJUIS
      UJUTVGVCATZVBATZVFVDRVIUTUQVHVKUQURUSUPVJABNFGDIKLUKULUQURVLUSABNFGHIKLUK
      UMACFVCVBKMUNSUO $.

    $( The projective map of the join of a lattice element and a lattice line
       (expressed as the join ` Q .\/ R ` of two atoms).  (Contributed by NM,
       16-Sep-2012.) $)
    pmapjlln1 $p |- ( ( K e. HL /\ ( X e. B /\ Q e. A /\ R e. A ) )
          -> ( M ` ( X .\/ ( Q .\/ R ) ) )
             = ( ( M ` X ) .+ ( M ` ( Q .\/ R ) ) ) ) $=
      ( chlt wcel cfv co wss wceq w3a wa simpl pmapssat 3ad2antr1 simpr2 atbase
      syldan simpr3 paddass syl13anc clat adantr simpr1 latjcl syl3anc pmapjat1
      syl hllat latjass fveq2d 3adant3r3 oveq1d 3eqtr3d oveq2d 3eqtr4d ) GOPZIB
      PZDAPZEAPZUAZUBZIHQZDHQZCRZEHQZCRZVMVNVPCRZCRZIDEFRZFRZHQZVMVTHQZCRVLVGVM
      ASZVNASZVPASZVQVSTVGVKUCZVGVIVHWDVJABOGHIJLMUDUEVGVKDBPZWEVLVIWHVGVHVIVJU
      FABDGJLUGURZABOGHDJLMUDUHVGVKEBPZWFVLVJWJVGVHVIVJUIZABEGJLUGURZABOGHEJLMU
      DUHACGVMVNVPLNUJUKVLIDFRZEFRZHQZWMHQZVPCRZWBVQVLVGWMBPZVJWOWQTWGVLGULPZVH
      WHWRVGWSVKGUSUMZVGVHVIVJUNZWIBFGIDJKUOUPWKABCEFGHWMJKLMNUQUPVLWNWAHVLWSVH
      WHWJWNWATWTXAWIWLBFGIDEJKUTUKVAVLWPVOVPCVGVHVIWPVOTVJABCDFGHIJKLMNUQVBVCV
      DVLWCVRVMCVLVGWHVJWCVRTWGWIWKABCEFGHDJKLMNUQUPVEVF $.
  $}

  ${
    hlmod.b $e |- B = ( Base ` K ) $.
    hlmod.l $e |- .<_ = ( le ` K ) $.
    hlmod.j $e |- .\/ = ( join ` K ) $.
    hlmod.m $e |- ./\ = ( meet ` K ) $.
    hlmod.f $e |- F = ( pmap ` K ) $.
    hlmod.p $e |- .+ = ( +P ` K ) $.
    $( A version of the modular law ~ pmod1i that holds in a Hilbert lattice.
       (Contributed by NM, 13-May-2012.) $)
    hlmod1i $p |- ( ( K e. HL /\ ( X e. B /\ Y e. B /\ Z e. B ) )
        -> ( ( X .<_ Z /\ ( F ` ( X .\/ Y ) ) = ( ( F ` X ) .+ ( F ` Y ) ) )
           -> ( ( X .\/ Y ) ./\ Z ) = ( X .\/ ( Y ./\ Z ) ) ) ) $=
      ( wcel co cfv syl3anc chlt w3a wbr wceq clat hllat 3ad2ant1 simp21 simp22
      latjcl simp23 latmcl wss catm cpsubsp simp1 eqid pmapssat syl2anc pmapsub
      wa cin simp3l pmaple mpbid pmod1i 3impia syl131anc pmapmeet simp3r ineq1d
      wb eqtrd oveq2d 3eqtr4d pmapjoin eqsstrd mpbird mod1ile latasymd 3expia )
      EUAQZHAQZIAQZJAQZUBZHJFUCZHIDRZCSZHCSZICSZBRZUDZVAZWHJGRZHIJGRZDRZUDWBWFW
      NUBZAEFWOWQKLWBWFEUEQZWNEUFUGZWRWSWHAQZWEWOAQZWTWRWSWCWDXAWTWBWCWDWEWNUHZ
      WBWCWDWEWNUIZADEHIKMUJTZWBWCWDWEWNUKZAEGWHJKNULTZWRWSWCWPAQZWQAQZWTXCWRWS
      WDWEXHWTXDXFAEGIJKNULTZADEHWPKMUJTZWRWOWQFUCZWOCSZWQCSZUMZWRXMWJWPCSZBRZX
      NWRWLJCSZVBZWJWKXRVBZBRZXMXQWRWBWJEUNSZUMZWKYBUMZXREUOSZQZWJXRUMZXSYAUDZW
      BWFWNUPZWRWBWCYCYIXCYBAUAECHKYBUQZOURUSWRWBWDYDYIXDYBAUAECIKYJOURUSWRWSWE
      YFWTXFAYEECJKYEUQZOUTUSWRWGYGWBWFWGWMVCZWRWBWCWEWGYGVLYIXCXFAEFCHJKLOVDTV
      EWBYCYDYFUBYGYHYBBYEEWJWKXRYJYKPVFVGVHWRXMWIXRVBZXSWRWBXAWEXMYMUDYIXEXFYB
      ACEGWHJKNYJOVITWRWIWLXRWBWFWGWMVJVKVMWRXPXTWJBWRWBWDWEXPXTUDYIXDXFYBACEGI
      JKNYJOVITVNVOWRWSWCXHXQXNUMWTXCXJABDECHWPKMOPVPTVQWRWBXBXIXLXOVLYIXGXKAEF
      CWOWQKLOVDTVRWRWSWCWDWEWGWQWOFUCZWTXCXDXFYLWSWFWGYNADEFGHIJKLMNVSVGVHVTWA
      $.
  $}

  ${
    atmod.b $e |- B = ( Base ` K ) $.
    atmod.l $e |- .<_ = ( le ` K ) $.
    atmod.j $e |- .\/ = ( join ` K ) $.
    atmod.m $e |- ./\ = ( meet ` K ) $.
    atmod.a $e |- A = ( Atoms ` K ) $.
    $( Version of modular law ~ pmod1i that holds in a Hilbert lattice, when
       one element is an atom.  (Contributed by NM, 11-May-2012.)  (Revised by
       Mario Carneiro, 10-May-2013.) $)
    atmod1i1 $p |- ( ( K e. HL /\ ( P e. A /\ X e. B /\ Y e. B ) /\ P .<_ Y )
        -> ( P .\/ ( X ./\ Y ) ) = ( ( P .\/ X ) ./\ Y ) ) $=
      ( wcel w3a co wceq wa cfv chlt wbr cpmap cpadd simpl simpr2 eqid pmapjat2
      simpr1 syl3anc wi atbase hlmod1i syl3anr1 mpan2d 3impia eqcomd ) EUAOZCAO
      ZHBOZIBOZPZCIFUBZPCHDQZIGQZCHIGQDQZURVBVCVEVFRZURVBSZVCVDEUCTZTCVITHVITEU
      DTZQRZVGVHURUTUSVKURVBUEURUSUTVAUFURUSUTVAUIABVJCDEVIHJLNVIUGZVJUGZUHUJUS
      CBOURUTVAVCVKSVGUKABCEJNULBVJVIDEFGCHIJKLMVLVMUMUNUOUPUQ $.

    $( Version of modular law ~ pmod1i that holds in a Hilbert lattice, when an
       element meets an atom.  (Contributed by NM, 2-Sep-2012.)  (Revised by
       Mario Carneiro, 10-May-2013.) $)
    atmod1i1m $p |- ( ( ( K e. HL /\ P e. A ) /\ ( X e. B /\ Y e. B /\ Z e. B )
    /\ ( X ./\ P ) .<_ Z )
      -> ( ( X ./\ P ) .\/ ( Y ./\ Z ) )
           = ( ( ( X ./\ P ) .\/ Y ) ./\ Z ) ) $=
      ( wcel wa w3a co wceq chlt wbr cp0 simpl1l simpr simpl22 simpl23 atmod1i1
      cfv simpl3 syl131anc col simp1l hlol syl adantr clat hllat latmcl syl3anc
      olj02 syl2anc oveq1 adantl eqtrd oveq1d 3eqtr4d wo simp21 simp1r mpjaodan
      eqid meetat2 ) EUAPZCAPZQZHBPZIBPZJBPZRZHCGSZJFUBZRZWAAPZWAIJGSZDSZWAIDSZ
      JGSZTZWAEUCUIZTZWCWDQVNWDVRVSWBWIVNVOVTWBWDUDWCWDUEVQVRVSVPWBWDUFVQVRVSVP
      WBWDUGVPVTWBWDUJABWADEFGIJKLMNOUHUKWCWKQZWJWEDSZWEWFWHWLEULPZWEBPZWMWETWC
      WNWKWCVNWNVNVOVTWBUMZEUNUOZUPZWLEUQPZVRVSWOWCWSWKWCVNWSWPEURUOUPVQVRVSVPW
      BWKUFZVQVRVSVPWBWKUGBEGIJKNUSUTBDEWEWJKMWJVLZVAVBWKWFWMTWCWAWJWEDVCVDWLWG
      IJGWLWGWJIDSZIWKWGXBTWCWAWJIDVCVDWLWNVRXBITWRWTBDEIWJKMXAVAVBVEVFVGWCWNVQ
      VOWDWKVHWQVPVQVRVSWBVIVNVOVTWBVJABCEGHWJKNXAOVMUTVK $.

    $( Version of modular law ~ pmod1i that holds in a Hilbert lattice, when
       one element is an atom.  (Contributed by NM, 14-May-2012.)  (Revised by
       Mario Carneiro, 10-May-2013.) $)
    atmod1i2 $p |- ( ( K e. HL /\ ( P e. A /\ X e. B /\ Y e. B ) /\ X .<_ Y )
        -> ( X .\/ ( P ./\ Y ) ) = ( ( X .\/ P ) ./\ Y ) ) $=
      ( wcel w3a co wceq wa cfv chlt wbr cpmap cpadd simpl simpr2 eqid pmapjat1
      simpr1 syl3anc wi atbase syl simpr3 hlmod1i syl13anc mpan2d 3impia eqcomd
      ) EUAOZCAOZHBOZIBOZPZHIFUBZPHCDQZIGQZHCIGQDQZUTVDVEVGVHRZUTVDSZVEVFEUCTZT
      HVKTCVKTEUDTZQRZVIVJUTVBVAVMUTVDUEZUTVAVBVCUFZUTVAVBVCUIZABVLCDEVKHJLNVKU
      GZVLUGZUHUJVJUTVBCBOZVCVEVMSVIUKVNVOVJVAVSVPABCEJNULUMUTVAVBVCUNBVLVKDEFG
      HCIJKLMVQVRUOUPUQURUS $.

    $( Version of modular law ~ pmod1i that holds in a Hilbert lattice, when
       one element is a lattice line (expressed as the join ` P .\/ Q ` ).
       (Contributed by NM, 16-Sep-2012.)  (Revised by Mario Carneiro,
       10-May-2013.) $)
    llnmod1i2 $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B )
   /\ ( P e. A /\ Q e. A ) /\ X .<_ Y )
      -> ( X .\/ ( ( P .\/ Q ) ./\ Y ) )
       = ( ( X .\/ ( P .\/ Q ) ) ./\ Y ) ) $=
      ( wcel wa co cfv syl chlt w3a wbr cpmap cpadd simpl1 simpl2 simprl simprr
      wceq eqid pmapjlln1 syl13anc wi clat atbase latjcl syl3anc simpl3 hlmod1i
      hllat mpan2d 3impia eqcomd ) FUAPZIBPZJBPZUBZCAPZDAPZQZIJGUCZUBICDERZERZJ
      HRZIVMJHRERZVHVKVLVOVPUJZVHVKQZVLVNFUDSZSIVSSVMVSSFUESZRUJZVQVRVEVFVIVJWA
      VEVFVGVKUFZVEVFVGVKUGZVHVIVJUHZVHVIVJUIZABVTCDEFVSIKMOVSUKZVTUKZULUMVRVEV
      FVMBPZVGVLWAQVQUNWBWCVRFUOPZCBPZDBPZWHVRVEWIWBFVATVRVIWJWDABCFKOUPTVRVJWK
      WEABDFKOUPTBEFCDKMUQURVEVFVGVKUSBVTVSEFGHIVMJKLMNWFWGUTUMVBVCVD $.

    $( Version of modular law ~ pmod2iN that holds in a Hilbert lattice, when
       one element is an atom.  (Contributed by NM, 14-May-2012.)  (Revised by
       Mario Carneiro, 10-May-2013.) $)
    atmod2i1 $p |- ( ( K e. HL /\ ( P e. A /\ X e. B /\ Y e. B ) /\ P .<_ X )
         -> ( ( X ./\ Y ) .\/ P ) = ( X ./\ ( Y .\/ P ) ) ) $=
      ( wcel w3a co wceq latmcom syl3anc chlt clat hllat 3ad2ant1 simp22 simp23
      wbr oveq2d simp21 atbase syl latmcl latjcl simp1 simp3 atmod1i1 syl131anc
      latjcom 3eqtr4d 3eqtr3d ) EUAOZCAOZHBOZIBOZPZCHFUGZPZCHIGQZDQZCIHGQZDQZVH
      CDQZHICDQZGQZVGVHVJCDVGEUBOZVCVDVHVJRVAVEVOVFEUCUDZVAVBVCVDVFUEZVAVBVCVDV
      FUFZBEGHIJMSTUHVGVOCBOZVHBOZVIVLRVPVGVBVSVAVBVCVDVFUIZABCEJNUJUKZVGVOVCVD
      VTVPVQVRBEGHIJMULTBDECVHJLURTVGCIDQZHGQZHWCGQZVKVNVGVOWCBOZVCWDWERVPVGVOV
      SVDWFVPWBVRBDECIJLUMTVQBEGWCHJMSTVGVAVBVDVCVFVKWDRVAVEVFUNWAVRVQVAVEVFUOA
      BCDEFGIHJKLMNUPUQVGVMWCHGVGVOVDVSVMWCRVPVRWBBDEICJLURTUHUSUT $.

    $( Version of modular law ~ pmod2iN that holds in a Hilbert lattice, when
       one element is an atom.  (Contributed by NM, 14-May-2012.)  (Revised by
       Mario Carneiro, 10-May-2013.) $)
    atmod2i2 $p |- ( ( K e. HL /\ ( P e. A /\ X e. B /\ Y e. B ) /\ Y .<_ X )
         -> ( ( X ./\ P ) .\/ Y ) = ( X ./\ ( P .\/ Y ) ) ) $=
      ( wcel w3a co wceq latjcom syl3anc chlt clat hllat 3ad2ant1 simp21 atbase
      wbr syl simp23 oveq1d simp22 latjcl latmcom simp1 simp3 syl131anc 3eqtr4d
      atmod1i2 latmcl 3eqtrrd ) EUAOZCAOZHBOZIBOZPZIHFUGZPZHCIDQZGQZICHGQZDQZVJ
      IDQZHCGQZIDQVGVHHGQZICDQZHGQZVIVKVGVHVOHGVGEUBOZCBOZVDVHVORVAVEVQVFEUCUDZ
      VGVBVRVAVBVCVDVFUEZABCEJNUFUHZVAVBVCVDVFUIZBDECIJLSTUJVGVQVCVHBOZVIVNRVSV
      AVBVCVDVFUKZVGVQVRVDWCVSWAWBBDECIJLULTBEGHVHJMUMTVGVAVBVDVCVFVKVPRVAVEVFU
      NVTWBWDVAVEVFUOABCDEFGIHJKLMNURUPUQVGVQVDVJBOZVKVLRVSWBVGVQVRVCWEVSWAWDBE
      GCHJMUSTBDEIVJJLSTVGVJVMIDVGVQVRVCVJVMRVSWAWDBEGCHJMUMTUJUT $.

    $( Version of modular law ~ pmod1i that holds in a Hilbert lattice, when
       one element is a lattice line (expressed as the join ` P .\/ Q ` ).
       (Contributed by NM, 16-Sep-2012.)  (Revised by Mario Carneiro,
       10-May-2013.) $)
    llnmod2i2 $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B )
   /\ ( P e. A /\ Q e. A ) /\ Y .<_ X )
      -> ( ( X ./\ ( P .\/ Q ) ) .\/ Y )
        = ( X ./\ ( ( P .\/ Q ) .\/ Y ) ) ) $=
      ( wcel w3a co wceq syl3anc chlt wa clat simp11 hllat simp13 simp2l simp2r
      wbr hlatjcl simp12 latmcl latjcom latjcl oveq2d simp3 llnmod1i2 syl321anc
      syl latmcom 3eqtr4d oveq1d 3eqtr4rd ) FUAPZIBPZJBPZQZCAPZDAPZUBZJIGUIZQZJ
      CDERZIHRZERZVNJERZIVMJERZHRZIVMHRZJERVLFUCPZVFVNBPZVOVPSVLVDVTVDVEVFVJVKU
      DZFUEUSZVDVEVFVJVKUFZVLVTVMBPZVEWAWCVLVDVHVIWEWBVGVHVIVKUGZVGVHVIVKUHZABE
      FCDKMOUJTZVDVEVFVJVKUKZBFHVMIKNULTBEFJVNKMUMTVLIJVMERZHRZWJIHRZVRVOVLVTVE
      WJBPZWKWLSWCWIVLVTVFWEWMWCWDWHBEFJVMKMUNTBFHIWJKNUTTVLVQWJIHVLVTWEVFVQWJS
      WCWHWDBEFVMJKMUMTUOVLVDVFVEVHVIVKVOWLSWBWDWIWFWGVGVJVKUPABCDEFGHJIKLMNOUQ
      URVAVLVSVNJEVLVTVEWEVSVNSWCWIWHBFHIVMKNUTTVBVC $.

    $( Version of modular law that holds in a Hilbert lattice, when one element
       is an atom.  (Contributed by NM, 4-Jun-2012.)  (Revised by Mario
       Carneiro, 10-May-2013.) $)
    atmod3i1 $p |- ( ( K e. HL /\ ( P e. A /\ X e. B /\ Y e. B ) /\ P .<_ X )
         -> ( P .\/ ( X ./\ Y ) ) = ( X ./\ ( P .\/ Y ) ) ) $=
      ( wcel w3a co wceq latmcom syl3anc chlt wbr simp21 simp23 simp22 atmod1i1
      simp1 simp3 syl131anc clat hllat 3ad2ant1 oveq2d atbase latjcl 3eqtr4d
      syl ) EUAOZCAOZHBOZIBOZPZCHFUBZPZCIHGQZDQZCIDQZHGQZCHIGQZDQHVGGQZVDURUSVA
      UTVCVFVHRURVBVCUGURUSUTVAVCUCZURUSUTVAVCUDZURUSUTVAVCUEZURVBVCUHABCDEFGIH
      JKLMNUFUIVDVIVECDVDEUJOZUTVAVIVERURVBVNVCEUKULZVMVLBEGHIJMSTUMVDVNUTVGBOZ
      VJVHRVOVMVDVNCBOZVAVPVOVDUSVQVKABCEJNUNUQVLBDECIJLUOTBEGHVGJMSTUP $.

    $( Version of modular law that holds in a Hilbert lattice, when one element
       is an atom.  (Contributed by NM, 10-Jun-2012.)  (Revised by Mario
       Carneiro, 10-May-2013.) $)
    atmod3i2 $p |- ( ( K e. HL /\ ( P e. A /\ X e. B /\ Y e. B ) /\ X .<_ Y )
         -> ( X .\/ ( Y ./\ P ) ) = ( Y ./\ ( X .\/ P ) ) ) $=
      ( wcel w3a co wceq syl3anc latmcom chlt clat hllat 3ad2ant1 simp23 simp22
      wbr simp21 atbase syl latjcl atmod1i2 oveq2d 3eqtr2rd ) EUAOZCAOZHBOZIBOZ
      PZHIFUGZPZIHCDQZGQZVBIGQZHCIGQZDQHICGQZDQVAEUBOZURVBBOZVCVDRUOUSVGUTEUCUD
      ZUOUPUQURUTUEZVAVGUQCBOZVHVIUOUPUQURUTUFVAUPVKUOUPUQURUTUHABCEJNUIUJZBDEH
      CJLUKSBEGIVBJMTSABCDEFGHIJKLMNULVAVEVFHDVAVGVKURVEVFRVIVLVJBEGCIJMTSUMUN
      $.

    $( Version of modular law that holds in a Hilbert lattice, when one element
       is an atom.  (Contributed by NM, 10-Jun-2012.)  (Revised by Mario
       Carneiro, 10-May-2013.) $)
    atmod4i1 $p |- ( ( K e. HL /\ ( P e. A /\ X e. B /\ Y e. B ) /\ P .<_ Y )
         -> ( ( X ./\ Y ) .\/ P ) = ( ( X .\/ P ) ./\ Y ) ) $=
      ( wcel w3a co wceq syl3anc latjcom chlt clat hllat 3ad2ant1 simp22 simp23
      wbr latmcl simp21 atbase syl atmod1i1 oveq1d 3eqtrd ) EUAOZCAOZHBOZIBOZPZ
      CIFUGZPZHIGQZCDQZCVBDQZCHDQZIGQHCDQZIGQVAEUBOZVBBOZCBOZVCVDRUOUSVGUTEUCUD
      ZVAVGUQURVHVJUOUPUQURUTUEZUOUPUQURUTUFBEGHIJMUHSVAUPVIUOUPUQURUTUIABCEJNU
      JUKZBDEVBCJLTSABCDEFGHIJKLMNULVAVEVFIGVAVGVIUQVEVFRVJVLVKBDECHJLTSUMUN $.

    $( Version of modular law that holds in a Hilbert lattice, when one element
       is an atom.  (Contributed by NM, 4-Jun-2012.)  (Revised by Mario
       Carneiro, 10-Mar-2013.) $)
    atmod4i2 $p |- ( ( K e. HL /\ ( P e. A /\ X e. B /\ Y e. B ) /\ X .<_ Y )
         -> ( ( P ./\ Y ) .\/ X ) = ( ( P .\/ X ) ./\ Y ) ) $=
      ( wcel w3a co wceq syl3anc latjcom chlt clat hllat 3ad2ant1 simp21 atbase
      wbr syl simp23 latmcl simp22 atmod1i2 oveq1d 3eqtrd ) EUAOZCAOZHBOZIBOZPZ
      HIFUGZPZCIGQZHDQZHVBDQZHCDQZIGQCHDQZIGQVAEUBOZVBBOZUQVCVDRUOUSVGUTEUCUDZV
      AVGCBOZURVHVIVAUPVJUOUPUQURUTUEABCEJNUFUHZUOUPUQURUTUIBEGCIJMUJSUOUPUQURU
      TUKZBDEVBHJLTSABCDEFGHIJKLMNULVAVEVFIGVAVGUQVJVEVFRVIVLVKBDEHCJLTSUMUN $.
  $}

  ${
    llnexch.l $e |- .<_ = ( le ` K ) $.
    llnexch.j $e |- .\/ = ( join ` K ) $.
    llnexch.m $e |- ./\ = ( meet ` K ) $.
    llnexch.a $e |- A = ( Atoms ` K ) $.
    llnexch.n $e |- N = ( LLines ` K ) $.
    $( Lemma for ~ llnexchb2 .  (Contributed by NM, 17-Nov-2012.) $)
    llnexchb2lem $p |- ( ( ( K e. HL /\ X e. N /\ Y e. N ) /\
       ( P e. A /\ Q e. A /\ -. P .<_ X ) /\ ( X ./\ Y ) e. A )
           -> ( ( X ./\ Y ) .<_ ( P .\/ Q )
             <-> ( X ./\ Y ) = ( X ./\ ( P .\/ Q ) ) ) ) $=
      ( wcel co wceq syl syl3anc chlt w3a wbr wn wa cp0 cfv cbs simpl11 simpl21
      simpl12 eqid llnbase clat hllat simpl13 latmcl latmle1 atmod2i2 syl131anc
      atbase latmcom simpl23 cal hlatl atnle mpbid eqtrd oveq1d simpr clc hlcvl
      wb wne simpl3 simpl22 breq1 syl5ibrcom necon3bd necomd cvlatexchb1 oveq2d
      mpd 3eqtr3rd col hlol olj02 syl2anc eqtr2d ex simp11 simp12 simp21 simp22
      hlatjcl latmle2 impbid ) EUAPZIHPZJHPZUBZBAPZCAPZBIFUCZUDZUBZIJGQZAPZUBZX
      GBCDQZFUCZXGIXJGQZRZXIXKXMXIXKUEZXLEUFUGZXGDQZXGXNIBGQZXGDQZIBXGDQZGQZXPX
      LXNWRXBIEUHUGZPZXGYAPZXGIFUCZXRXTRWRWSWTXFXHXKUIZXBXCXEXAXHXKUJZXNWSYBWRW
      SWTXFXHXKUKYAEHIYAULZOUMZSZXNEUNPZYBJYAPZYCXNWRYJYEEUOZSZYIXNWTYKWRWSWTXF
      XHXKUPYAEHJYGOUMSZYAEGIJYGMUQTZXNYJYBYKYDYMYIYNYAEFGIJYGKMURTZAYABDEFGIXG
      YGKLMNUSUTXNXQXOXGDXNXQBIGQZXOXNYJYBBYAPZXQYQRYMYIXNXBYRYFAYABEYGNVASYAEG
      IBYGMVBTXNXEYQXORZXBXCXEXAXHXKVCZXNEVDPZXBYBXEYSVMXNWRUUAYEEVESYFYIAYABEF
      GIXOYGKMXOULZNVFTVGVHVIXNXSXJIGXNXKXSXJRZXIXKVJXNEVKPZXHXCXBXGBVNXKUUCVMX
      NWRUUDYEEVLSXAXFXHXKVOXBXCXEXAXHXKVPYFXNBXGXNXEBXGVNYTXNXDBXGXNXDBXGRYDYP
      BXGIFVQVRVSWCVTAXGCBDEFKLNWAUTVGWBWDXNEWEPZYCXPXGRXNWRUUEYEEWFSYOYADEXGXO
      YGLUUBWGWHWIWJXIXKXMXLXJFUCZXIYJYBXJYAPZUUFXIWRYJWRWSWTXFXHWKZYLSXIWSYBWR
      WSWTXFXHWLYHSXIWRXBXCUUGUUHXAXBXCXEXHWMXAXBXCXEXHWNAYADEBCYGLNWOTYAEFGIXJ
      YGKMWPTXGXLXJFVQVRWQ $.

    $d p q A $.  $d p q K $.  $d p q .<_ $.  $d p q ./\ $.  $d p q N $.
    $d p q X $.  $d p q Y $.  $d p q Z $.
    $( Line exchange property (compare ~ cvlatexchb2 for atoms).  (Contributed
       by NM, 17-Nov-2012.) $)
    llnexchb2 $p |- ( ( K e. HL /\ ( X e. N /\ Y e. N /\ Z e. N )
       /\ ( ( X ./\ Y ) e. A /\ X =/= Z ) )
           -> ( ( X ./\ Y ) .<_ Z <-> ( X ./\ Y ) = ( X ./\ Z ) ) ) $=
      ( wcel co wa wceq wbr wb vp vq chlt w3a wne cv wrex simp23 cbs simp1 eqid
      cfv llnbase islln3 syl2anc mpbid simp3r necomd wi wn wo clat simp11 hllat
      syl simp2l atbase simp2r simp121 latjle12 syl13anc simp3 syl31anc syl3anc
      llni2 llncmp bitr2d necon3abid ianor syl6bb simpl11 simp122 simpl2l simpr
      adantr simpl2r simp13l llnexchb2lem hlatjcom breq2d oveq2d eqeq2d 3bitr4d
      syl331anc ex jaod neeq1 breq2 oveq2 bibi12d imbi12d syl5ibrcom 3exp imp4a
      sylbid rexlimdvv mp2d ) CUCOZGFOZHFOZIFOZUDZGHEPZAOZGIUEZQZUDZUAUFZUBUFZU
      EZIXRXSBPZRZQZUBAUGUAAUGZIGUEZXMIDSZXMGIEPZRZTZXQXKYDXHXIXJXKXPUHZXQXHICU
      IULZOZXKYDTXHXLXPUJXQXKYLYJYKCFIYKUKZNUMVEAYKBCFIUBUAYMKMNUNUOUPXQGIXHXLX
      NXOUQURXQYCYEYIUSZUAUBAAXQXRAOZXSAOZQZXTYBYNXQYQXTYBYNUSXQYQXTUDZYNYBYAGU
      EZXMYADSZXMGYAEPZRZTZUSYRYSXRGDSZUTZXSGDSZUTZVAZUUCYRYSUUDUUFQZUTUUHYRUUI
      YAGYRUUIYAGDSZYAGRZYRCVBOZXRYKOZXSYKOZGYKOZUUIUUJTYRXHUULXHXLXPYQXTVCZCVD
      VEYRYOUUMXQYOYPXTVFZAYKXRCYMMVGVEYRYPUUNXQYOYPXTVHZAYKXSCYMMVGVEYRXIUUOXI
      XJXKXHXPYQXTVIZYKCFGYMNUMVEYKBCDXRXSGYMJKVJVKYRXHYAFOZXIUUJUUKTUUPYRXHYOY
      PXTUUTUUPUUQUURXQYQXTVLAXRXSBCFKMNVOVMUUSCDFYAGJNVPVNVQVRUUDUUFVSVTYRUUEU
      UCUUGYRUUEUUCYRUUEQXHXIXJYOYPUUEXNUUCXHXLXPYQXTUUEWAYRXIUUEUUSWEYRXJUUEXI
      XJXKXHXPYQXTWBZWEYOYPXQXTUUEWCYOYPXQXTUUEWFYRUUEWDYRXNUUEXNXOXHXLYQXTWGZW
      EAXRXSBCDEFGHJKLMNWHWNWOYRUUGUUCYRUUGQZXMXSXRBPZDSZXMGUVDEPZRZYTUUBUVCXHX
      IXJYPYOUUGXNUVEUVGTXHXLXPYQXTUUGWAZYRXIUUGUUSWEYRXJUUGUVAWEYOYPXQXTUUGWFZ
      YOYPXQXTUUGWCZYRUUGWDYRXNUUGUVBWEAXSXRBCDEFGHJKLMNWHWNUVCYAUVDXMDUVCXHYOY
      PYAUVDRUVHUVJUVIABCXRXSKMWIVNZWJUVCUUAUVFXMUVCYAUVDGEUVKWKWLWMWOWPXEYBYEY
      SYIUUCIYAGWQYBYFYTYHUUBIYAXMDWRYBYGUUAXMIYAGEWSWLWTXAXBXCXDXFXG $.

    $( Line exchange property (compare ~ cvlatexch2 for atoms).  (Contributed
       by NM, 18-Nov-2012.)  (New usage is discouraged.) $)
    llnexch2N $p |- ( ( K e. HL /\ ( X e. N /\ Y e. N /\ Z e. N )
       /\ ( ( X ./\ Y ) e. A /\ X =/= Z ) )
           -> ( ( X ./\ Y ) .<_ Z -> ( X ./\ Z ) .<_ Y ) ) $=
      ( wcel w3a co wbr llnbase syl chlt wne wa wceq llnexchb2 cbs cfv 3ad2ant1
      clat hllat simp21 eqid simp22 latmle2 syl3anc breq1 syl5ibcom sylbid ) CU
      AOZGFOZHFOZIFOZPZGHEQZAOGIUBUCZPZVDIDRVDGIEQZUDZVGHDRZABCDEFGHIJKLMNUEVFV
      DHDRZVHVIVFCUIOZGCUFUGZOZHVLOZVJUSVCVKVECUJUHVFUTVMUSUTVAVBVEUKVLCFGVLULZ
      NSTVFVAVNUSUTVAVBVEUMVLCFHVONSTVLCDEGHVOJLUNUOVDVGHDUPUQUR $.
  $}

  ${
    dalawlem.l $e |- .<_ = ( le ` K ) $.
    dalawlem.j $e |- .\/ = ( join ` K ) $.
    dalawlem.m $e |- ./\ = ( meet ` K ) $.
    dalawlem.a $e |- A = ( Atoms ` K ) $.
    ${
      dalawlem.o $e |- O = ( LPlanes ` K ) $.
      $( Lemma for ~ dalaw .  Special case of ~ dath2 , where ` C ` is replaced
         by ` ( ( P .\/ S ) ./\ ( Q .\/ T ) ) ` .  The remaining lemmas will
         eliminate the conditions on the atoms imposed by ~ dath2 .
         (Contributed by NM, 6-Oct-2012.) $)
      dalawlem1 $p |- ( ( ( K e. HL
           /\ ( P e. A /\ Q e. A /\ R e. A )
         /\ ( S e. A /\ T e. A /\ U e. A ) )
      /\ ( ( ( P .\/ Q ) .\/ R ) e. O /\ ( ( S .\/ T ) .\/ U ) e. O )
      /\ ( ( -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( P .\/ Q )
             /\ -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( Q .\/ R )
             /\ -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ P ) )
         /\ ( -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( S .\/ T )
             /\ -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( T .\/ U )
             /\ -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( U .\/ S ) )
         /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) ) )
           -> ( ( P .\/ Q ) ./\ ( S .\/ T ) )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                     .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) $=
        ( wcel co wbr chlt w3a wa cbs cfv simp11 clat hllat syl simp121 simp131
        wn eqid hlatjcl syl3anc simp122 simp132 latmcl jca simp12 simp13 simp2l
        simp2r simp31 simp32 latmle1 latmle2 simp33 3jca dath2 syl323anc ) IUAR
        ZBARZCARZDARZUBZEARZFARZGARZUBZUBZBCHSZDHSLRZEFHSZGHSLRZUCZBEHSZCFHSZKS
        ZWBJTULWICDHSZJTULWIDBHSZJTULUBZWIWDJTULWIFGHSZJTULWIGEHSZJTULUBZWIDGHS
        JTZUBZUBZVLWIIUDUEZRZUCVPVTWCWEWLWOWIWGJTZWIWHJTZWPUBWBWDKSZWJWMKSZWKWN
        KSZHSJTWRVLWTVLVPVTWFWQUFZWRIUGRZWGWSRZWHWSRZWTWRVLXGXFIUHUIZWRVLVMVQXH
        XFVMVNVOVLVTWFWQUJVQVRVSVLVPWFWQUKAWSHIBEWSUMZNPUNUOZWRVLVNVRXIXFVMVNVO
        VLVTWFWQUPVQVRVSVLVPWFWQUQAWSHICFXKNPUNUOZWSIKWGWHXKOURUOUSVLVPVTWFWQUT
        VLVPVTWFWQVAWAWCWEWQVBWAWCWEWQVCWAWFWLWOWPVDWAWFWLWOWPVEWRXAXBWPWRXGXHX
        IXAXJXLXMWSIJKWGWHXKMOVFUOWRXGXHXIXBXJXLXMWSIJKWGWHXKMOVGUOWAWFWLWOWPVH
        VIAWSWIXCBCDEFGXDXEHIJKLXKMNPOQXCUMXDUMXEUMVJVK $.
    $}

    $( Lemma for ~ dalaw .  Utility lemma that breaks
       ` ( ( P .\/ Q ) ./\ ( S .\/ T ) ) ` into a join of two pieces.
       (Contributed by NM, 6-Oct-2012.) $)
    dalawlem2 $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A )
         /\ ( S e. A /\ T e. A ) )
     -> ( ( P .\/ Q ) ./\ ( S .\/ T ) )
             .<_ ( ( ( ( P .\/ Q ) .\/ T ) ./\ S )
                 .\/ ( ( ( P .\/ Q ) .\/ S ) ./\ T ) ) ) $=
      ( wcel wa co wbr syl syl3anc syl13anc chlt w3a cbs cfv simp1 hllat simp2l
      clat simp2r hlatjcl simp3r atbase latlej1 simp3l latjcl latlem12 mpbi2and
      eqid latmcl latmlem1 mpd wceq latlej2 atmod3i1 syl131anc oveq2d latmlej22
      wb wi atmod2i2 col hlol latmassOLD 3eqtr4rd breqtrd ) GUANZBANZCANZOZDANZ
      EANZOZUBZBCFPZDEFPZIPZWDEFPZWDDFPZIPZWEIPZWGDIPWHEIPZFPZHWCWDWIHQZWFWJHQZ
      WCWDWGHQZWDWHHQZWMWCGUHNZWDGUCUDZNZEWRNZWOWCVPWQVPVSWBUEZGUFRZWCVPVQVRWSX
      AVPVQVRWBUGVPVQVRWBUIAWRFGBCWRURZKMUJSZWCWAWTVPVSVTWAUKZAWREGXCMULRZWRFGH
      WDEXCJKUMSWCWQWSDWRNZWPXBXDWCVTXGVPVSVTWAUNZAWRDGXCMULRZWRFGHWDDXCJKUMSWC
      WQWSWGWRNZWHWRNZWOWPOWMVHXBXDWCWQWSWTXJXBXDXFWRFGWDEXCKUOSZWCWQWSXGXKXBXD
      XIWRFGWDDXCKUOSZWRGHIWDWGWHXCJLUPTUQWCWQWSWIWRNZWEWRNZWMWNVIXBXDWCWQXJXKX
      NXBXLXMWRGIWGWHXCLUSSWCVPVTWAXOXAXHXEAWRFGDEXCKMUJSZWRGHIWDWIWEXCJLUTTVAW
      CWGDWKFPZIPZWGWHWEIPZIPZWLWJWCXQXSWGIWCVPVTXKWTDWHHQZXQXSVBXAXHXMXFWCWQWS
      XGYAXBXDXIWRFGHWDDXCJKVCSAWRDFGHIWHEXCJKLMVDVEVFWCVPVTXJWKWRNZWKWGHQZWLXR
      VBXAXHXLWCWQXKWTYBXBXMXFWRGIWHEXCLUSSWCWQWTXKWSYCXBXFXMXDWRFGHIEWHWDXCJKL
      VGTAWRDFGHIWGWKXCJKLMVJVEWCGVKNZXJXKXOWJXTVBWCVPYDXAGVLRXLXMXPWRGIWGWHWEX
      CLVMTVNVO $.

    $( Lemma for ~ dalaw .  First piece of ~ dalawlem5 .  (Contributed by NM,
       4-Oct-2012.) $)
    dalawlem3 $p |- ( ( ( K e. HL /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) )
               .<_ ( P .\/ Q )
            /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) )
       /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ ( S e. A /\ T e. A /\ U e. A ) )
         -> ( ( ( Q .\/ T ) .\/ P ) ./\ S )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                   .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) $=
      ( wcel co wbr syl3anc syl13anc chlt w3a cbs eqid clat simp11 hllat simp22
      cfv syl simp32 simp21 atbase latjcl simp31 latmcl simp23 simp33 latmlej22
      hlatjcl latjass breqtrd hlatlej2 latmlem2 mpd hlatlej1 atmod4i1 syl131anc
      wceq wi breqtrrd latmcom simp12 eqbrtrd latjle12 mpbi2and lattrd latlem12
      wa wb atmod3i1 latmlej12 atmod1i1m syl231anc 3eqtr3rd latmlem12 syl122anc
      oveq2d latj12 simp13 latmle2 atmod2i2 atmod3i2 3brtr4d latjlej2 latmlej21
      mp2and latj13 latjlej1 ) IUAPZBEHQZCFHQZKQZBCHQZJRZXCDGHQZJRZUBZBAPZCAPZD
      APZUBZEAPZFAPZGAPZUBZUBZIUCUIZIJXBBHQZEKQZCDHQZGKQZDBHQZGEHQZKQZHQZYAFGHQ
      ZKQZYEHQZXRUDZLXQWTIUEPZWTXEXGXLXPUFZIUGUJZXQYKXSXRPZEXRPZXTXRPZYMXQYKXBX
      RPZBXRPZYNYMXQWTXJXNYQYLXHXIXJXKXPUHZXHXLXMXNXOUKZAXRHICFYJMOUTSZXQXIYRXH
      XIXJXKXPULZAXRBIYJOUMUJZXRHIXBBYJMUNSZXQXMYOXHXLXMXNXOUOZAXREIYJOUMUJZXRI
      KXSEYJNUPSZXQYKYBXRPZYEXRPZYFXRPYMXQYKYAXRPZGXRPZUUHYMXQWTXJXKUUJYLYSXHXI
      XJXKXPUQZAXRHICDYJMOUTSZXQXOUUKXHXLXMXNXOURZAXRGIYJOUMUJZXRIKYAGYJNUPSZXQ
      YKYCXRPZYDXRPZUUIYMXQWTXKXIUUQYLUULUUBAXRHIDBYJMOUTSZXQWTXOXMUURYLUUNUUEA
      XRHIGEYJMOUTSZXRIKYCYDYJNUPSZXRHIYBYEYJMUNSXQYKYHXRPZUUIYIXRPYMXQYKUUJYGX
      RPZUVBYMUUMXQWTXNXOUVCYLYTUUNAXRHIFGYJMOUTSZXRIKYAYGYJNUPSZUVAXRHIYHYEYJM
      UNSXQXTYBYCHQZYDKQZYFJXQXTUVFJRZXTYDJRZXTUVGJRZXQXTBDYBHQZHQZUVFJXQXRIJXT
      BCGKQZXACKQZHQZHQZUVLYJLYMUUGXQYKYRUVOXRPZUVPXRPYMUUCXQYKUVMXRPZUVNXRPZUV
      QYMXQYKCXRPZUUKUVRYMXQXJUVTYSAXRCIYJOUMUJZUUOXRIKCGYJNUPSZXQYKXAXRPZUVTUV
      SYMXQWTXIXMUWCYLUUBUUEAXRHIBEYJMOUTSZUWAXRIKXACYJNUPSZXRHIUVMUVNYJMUNSZXR
      HIBUVOYJMUNSXQYKYRUVKXRPZUVLXRPYMUUCXQYKDXRPZUUHUWGYMXQXKUWHUULAXRDIYJOUM
      UJZUUPXRHIDYBYJMUNSZXRHIBUVKYJMUNSXQXTUVMXAHQZXDKQZUVPJXQXTUWKJRZXTXDJRZX
      TUWLJRZXQXTUVMBHQZEHQZUWKJXQYKYOYNUWPXRPZXTUWQJRYMUUFUUDXQYKUVRYRUWRYMUWB
      UUCXRHIUVMBYJMUNSXRHIJKEXSUWPYJLMNUSTXQYKUVRYRYOUWQUWKVIYMUWBUUCUUFXRHIUV
      MBEYJMVATVBXQXRIJXTXBXAKQZBHQZXDYJLYMUUGXQYKUWSXRPZYRUWTXRPYMXQYKYQUWCUXA
      YMUUAUWDXRIKXBXAYJNUPSZUUCXRHIUWSBYJMUNSXQWTXIXJXDXRPZYLUUBYSAXRHIBCYJMOU
      TSZXQXTXSXAKQZUWTJXQEXAJRZXTUXEJRZXQWTXIXMUXFYLUUBUUEABEHIJLMOVCSXQYKYOUW
      CYNUXFUXGVJYMUUFUWDUUDXRIJKEXAXSYJLNVDTVEXQWTXIYQUWCBXAJRZUWTUXEVIYLUUBUU
      AUWDXQWTXIXMUXHYLUUBUUEABEHIJLMOVFSZAXRBHIJKXBXAYJLMNOVGVHVKXQUWSXDJRZBXD
      JRZUWTXDJRZXQUWSXCXDJXQYKYQUWCUWSXCVIYMUUAUWDXRIKXBXAYJNVLSWTXEXGXLXPVMVN
      XQWTXIXJUXKYLUUBYSABCHIJLMOVFSXQYKUXAYRUXCUXJUXKVSUXLVTYMUXBUUCUXDXRHIJUW
      SBXDYJLMVOTVPVQXQYKYPUWKXRPZUXCUWMUWNVSUWOVTYMUUGXQYKUVRUWCUXMYMUWBUWDXRH
      IUVMXAYJMUNSUXDXRIJKXTUWKXDYJLNVRTVPXQUVMBUVNHQZHQZUVMXAXDKQZHQZUVPUWLXQU
      XNUXPUVMHXQWTXIUWCUVTUXHUXNUXPVIYLUUBUWDUWAUXIAXRBHIJKXACYJLMNOWAVHWHXQYK
      UVRYRUVSUXOUVPVIYMUWBUUCUWEXRHIUVMBUVNYJMWITXQWTXOUVTUWCUXCUVMXDJRZUXQUWL
      VIYLUUNUWAUWDUXDXQYKUVTUUKYRUXRYMUWAUUOUUCXRHIJKCGBYJLMNWBTAXRGHIJKCXAXDY
      JLMNOWCWDWEVBXQUVOUVKJRZUVPUVLJRZXQCGUVNHQZKQZYAXFKQZUVOUVKJXQCYAJRZUYAXF
      JRZUYBUYCJRZXQWTXJXKUYDYLYSUULACDHIJLMOVFSXQGXFJRZUVNXFJRZUYEXQWTXKXOUYGY
      LUULUUNADGHIJLMOVCSXQXRIJUVNXCXFYJLYMUWEXQYKUWCYQXCXRPYMUWDUUAXRIKXAXBYJN
      UPSXQWTXKXOXFXRPZYLUULUUNAXRHIDGYJMOUTSZXQCXBJRZUVNXCJRZXQWTXJXNUYKYLYSYT
      ACFHIJLMOVFSXQYKUVTYQUWCUYKUYLVJYMUWAUUAUWDXRIJKCXBXAYJLNVDTVEWTXEXGXLXPW
      JVQXQYKUUKUVSUYIUYGUYHVSUYEVTYMUUOUWEUYJXRHIJGUVNXFYJLMVOTVPXQYKUVTUUJUYA
      XRPZUYIUYDUYEVSUYFVJYMUWAUUMXQYKUUKUVSUYMYMUUOUWEXRHIGUVNYJMUNSUYJXRIJKXF
      CYAUYAYJLNWFWGWQXQWTXOUVTUVSUVNCJRZUVOUYBVIYLUUNUWAUWEXQYKUWCUVTUYNYMUWDU
      WAXRIJKXACYJLNWKSAXRGHIJKCUVNYJLMNOWLVHXQWTXOUWHUUJDYAJRZUVKUYCVIYLUUNUWI
      UUMXQWTXJXKUYOYLYSUULACDHIJLMOVCSAXRGHIJKDYAYJLMNOWMVHWNXQYKUVQUWGYRUXSUX
      TVJYMUWFUWJUUCXRHIJUVOUVKBYJLMWOTVEVQXQYKYRUWHUUHUVLUVFVIYMUUCUWIUUPXRHIB
      DYBYJMWRTVBXQYKYOYNUUKUVIYMUUFUUDUUOXRHIJKEXSGYJLMNUSTXQYKYPUVFXRPZUURUVH
      UVIVSUVJVTYMUUGXQYKUUHUUQUYPYMUUPUUSXRHIYBYCYJMUNSUUTXRIJKXTUVFYDYJLNVRTV
      PXQWTXOUUJUUQUURYBYDJRZYFUVGVIYLUUNUUMUUSUUTXQYKUUKUUJYOUYQYMUUOUUMUUFXRH
      IJKGYAEYJLMNWPTAXRGHIJKYAYCYDYJLMNOWCWDVKXQYBYHJRZYFYIJRZXQGYGJRZUYRXQWTX
      NXOUYTYLYTUUNAFGHIJLMOVCSXQYKUUKUVCUUJUYTUYRVJYMUUOUVDUUMXRIJKGYGYAYJLNVD
      TVEXQYKUUHUVBUUIUYRUYSVJYMUUPUVEUVAXRHIJYBYHYEYJLMWSTVEVQ $.

    $( Lemma for ~ dalaw .  Second piece of ~ dalawlem5 .  (Contributed by NM,
       4-Oct-2012.) $)
    dalawlem4 $p |- ( ( ( K e. HL /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) )
                .<_ ( P .\/ Q )
            /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) )
       /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ ( S e. A /\ T e. A /\ U e. A ) )
         -> ( ( ( P .\/ S ) .\/ Q ) ./\ T )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                    .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) $=
      ( wcel co wceq hlatjcl syl3anc chlt wbr w3a simp11 clat cbs cfv hllat syl
      simp12 simp22 simp32 simp21 simp31 latmcom hlatjcom 3brtr4d simp13 simp23
      eqbrtrd simp33 dalawlem3 syl333anc oveq12d latmcl latjcom eqtrd breqtrd
      eqid ) IUAPZBEHQZCFHQZKQZBCHQZJUBZVMDGHQZJUBZUCZBAPZCAPZDAPZUCZEAPZFAPZGA
      PZUCZUCZVKCHQFKQZBDHQZEGHQZKQZDCHQZGFHQZKQZHQZCDHQZFGHQZKQZDBHQZGEHQZKQZH
      QZJWGVJVLVKKQZCBHQZJUBXCVPJUBVTVSWAWDWCWEWHWOJUBVJVOVQWBWFUDZWGVMVNXCXDJV
      JVOVQWBWFUJWGIUEPZVLIUFUGZPZVKXGPZXCVMRWGVJXFXEIUHUIZWGVJVTWDXHXEVRVSVTWA
      WFUKZVRWBWCWDWEULZAXGHICFXGVIZMOSTWGVJVSWCXIXEVRVSVTWAWFUMZVRWBWCWDWEUNZA
      XGHIBEXMMOSTXGIKVLVKXMNUOTZWGVJVTVSXDVNRXEXKXNAHICBMOUPTUQWGXCVMVPJXPVJVO
      VQWBWFURUTXKXNVRVSVTWAWFUSZXLXOVRWBWCWDWEVAZACBDFEGHIJKLMNOVBVCWGWOXAWRHQ
      ZXBWGWKXAWNWRHWGWIWSWJWTKWGVJVSWAWIWSRXEXNXQAHIBDMOUPTWGVJWCWEWJWTRXEXOXR
      AHIEGMOUPTVDWGWLWPWMWQKWGVJWAVTWLWPRXEXQXKAHIDCMOUPTWGVJWEWDWMWQRXEXRXLAH
      IGFMOUPTVDVDWGXFXAXGPZWRXGPZXSXBRXJWGXFWSXGPZWTXGPZXTXJWGVJWAVSYBXEXQXNAX
      GHIDBXMMOSTWGVJWEWCYCXEXRXOAXGHIGEXMMOSTXGIKWSWTXMNVETWGXFWPXGPZWQXGPZYAX
      JWGVJVTWAYDXEXKXQAXGHICDXMMOSTWGVJWDWEYEXEXLXRAXGHIFGXMMOSTXGIKWPWQXMNVET
      XGHIXAWRXMMVFTVGVH $.

    $( Lemma for ~ dalaw .  Special case to eliminate the requirement
       ` -. ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( P .\/ Q ) ` in ~ dalawlem1 .
       (Contributed by NM, 4-Oct-2012.) $)
    dalawlem5 $p |- ( ( ( K e. HL /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) )
              .<_ ( P .\/ Q )
            /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) )
       /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ ( S e. A /\ T e. A /\ U e. A ) )
         -> ( ( P .\/ Q ) ./\ ( S .\/ T ) )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                    .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) $=
      ( wcel co wbr hlatjcl syl3anc chlt w3a cbs cfv eqid clat simp11 hllat syl
      simp21 simp22 simp31 simp32 latmcl atbase latjcl dalawlem2 syl122anc wceq
      simp23 simp33 hlatjcom hlatj32 syl13anc eqtrd dalawlem3 eqbrtrd dalawlem4
      oveq1d wa wb latjle12 mpbi2and lattrd ) IUAPZBEHQZCFHQZKQZBCHQZJRZVRDGHQJ
      RZUBZBAPZCAPZDAPZUBZEAPZFAPZGAPZUBZUBZIUCUDZIJVSEFHQZKQZVSFHQZEKQZVSEHQZF
      KQZHQZCDHQZFGHQZKQZDBHQZGEHQZKQZHQZWLUEZLWKVOIUFPZVOVTWAWFWJUGZIUHUIZWKXH
      VSWLPZWMWLPZWNWLPXJWKVOWCWDXKXIWBWCWDWEWJUJZWBWCWDWEWJUKZAWLHIBCXGMOSTZWK
      VOWGWHXLXIWBWFWGWHWIULZWBWFWGWHWIUMZAWLHIEFXGMOSTWLIKVSWMXGNUNTWKXHWPWLPZ
      WRWLPZWSWLPXJWKXHWOWLPZEWLPZXRXJWKXHXKFWLPZXTXJXOWKWHYBXQAWLFIXGOUOUIZWLH
      IVSFXGMUPTWKWGYAXPAWLEIXGOUOUIZWLIKWOEXGNUNTZWKXHWQWLPZYBXSXJWKXHXKYAYFXJ
      XOYDWLHIVSEXGMUPTYCWLIKWQFXGNUNTZWLHIWPWRXGMUPTWKXHXBWLPZXEWLPZXFWLPZXJWK
      XHWTWLPZXAWLPZYHXJWKVOWDWEYKXIXNWBWCWDWEWJUTZAWLHICDXGMOSTWKVOWHWIYLXIXQW
      BWFWGWHWIVAZAWLHIFGXGMOSTWLIKWTXAXGNUNTWKXHXCWLPZXDWLPZYIXJWKVOWEWCYOXIYM
      XMAWLHIDBXGMOSTWKVOWIWGYPXIYNXPAWLHIGEXGMOSTWLIKXCXDXGNUNTWLHIXBXEXGMUPTZ
      WKVOWCWDWGWHWNWSJRXIXMXNXPXQABCEFHIJKLMNOUQURWKWPXFJRZWRXFJRZWSXFJRZWKWPV
      QBHQZEKQXFJWKWOUUAEKWKWOCBHQZFHQZUUAWKVSUUBFHWKVOWCWDVSUUBUSXIXMXNAHIBCMO
      VBTVIWKVOWDWCWHUUCUUAUSXIXNXMXQACBFHIMOVCVDVEVIABCDEFGHIJKLMNOVFVGWKWRVPC
      HQZFKQXFJWKWQUUDFKWKVOWCWDWGWQUUDUSXIXMXNXPABCEHIMOVCVDVIABCDEFGHIJKLMNOV
      HVGWKXHXRXSYJYRYSVJYTVKXJYEYGYQWLHIJWPWRXFXGLMVLVDVMVN $.

    $( Lemma for ~ dalaw .  First piece of ~ dalawlem8 .  (Contributed by NM,
       6-Oct-2012.) $)
    dalawlem6 $p |- ( ( ( K e. HL /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) )
               .<_ ( Q .\/ R )
            /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) )
       /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ ( S e. A /\ T e. A /\ U e. A ) )
         -> ( ( ( P .\/ Q ) .\/ T ) ./\ S )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                    .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) $=
      ( wcel co wbr syl3anc syl13anc chlt w3a cbs eqid clat simp11 hllat simp21
      cfv syl simp22 simp32 atbase latjcl simp31 latmcl simp23 simp33 latmlej22
      hlatjcl hlatlej2 latmlem2 mpd hlatjass oveq1d hlatlej1 atmod1i1 syl131anc
      wi wceq 3brtr4d latmcom simp12 eqbrtrd latmle1 latlem12 mpbi2and latjlej2
      wa wb lattrd atmod3i1 breqtrrd simp13 col latm12 latj13 breqtrd latmlej21
      hlol atmod1i1m syl231anc latjlej1 ) IUAPZBEHQZCFHQZKQZCDHQZJRZWQDGHQZJRZU
      BZBAPZCAPZDAPZUBZEAPZFAPZGAPZUBZUBZIUCUIZIJBCHQZFHQZEKQZWRGKQZDBHQZGEHQZK
      QZHQZWRFGHQZKQZXSHQZXLUDZLXKWNIUEPZWNWSXAXFXJUFZIUGUJZXKYEXNXLPZEXLPZXOXL
      PZYGXKYEXMXLPZFXLPZYHYGXKWNXCXDYKYFXBXCXDXEXJUHZXBXCXDXEXJUKZAXLHIBCYDMOU
      TSXKXHYLXBXFXGXHXIULZAXLFIYDOUMUJXLHIXMFYDMUNSZXKXGYIXBXFXGXHXIUOZAXLEIYD
      OUMUJZXLIKXNEYDNUPSZXKYEXPXLPZXSXLPZXTXLPYGXKYEWRXLPZGXLPZYTYGXKWNXDXEUUB
      YFYNXBXCXDXEXJUQZAXLHICDYDMOUTSZXKXIUUCXBXFXGXHXIURZAXLGIYDOUMUJZXLIKWRGY
      DNUPSZXKYEXQXLPZXRXLPZUUAYGXKWNXEXCUUIYFUUDYMAXLHIDBYDMOUTSZXKWNXIXGUUJYF
      UUFYQAXLHIGEYDMOUTSZXLIKXQXRYDNUPSZXLHIXPXSYDMUNSXKYEYBXLPZUUAYCXLPYGXKYE
      UUBYAXLPZUUNYGUUEXKWNXHXIUUOYFYOUUFAXLHIFGYDMOUTSZXLIKWRYAYDNUPSZUUMXLHIY
      BXSYDMUNSXKXOXPXQHQZXRKQZXTJXKXOUURJRZXOXRJRZXOUUSJRZXKXOBDXPHQZHQZUURJXK
      XLIJXOBWOWRWPKQZKQZHQZUVDYDLYGYSXKYEBXLPZUVFXLPZUVGXLPYGXKXCUVHYMAXLBIYDO
      UMUJZXKYEWOXLPZUVEXLPZUVIYGXKWNXCXGUVKYFYMYQAXLHIBEYDMOUTSZXKYEUUBWPXLPZU
      VLYGUUEXKWNXDXHUVNYFYNYOAXLHICFYDMOUTSZXLIKWRWPYDNUPSZXLIKWOUVEYDNUPSZXLH
      IBUVFYDMUNSXKYEUVHUVCXLPZUVDXLPYGUVJXKYEDXLPZYTUVRYGXKXEUVSUUDAXLDIYDOUMU
      JZUUHXLHIDXPYDMUNSZXLHIBUVCYDMUNSXKXOWOBUVEHQZKQZUVGJXKXOWOJRZXOUWBJRZXOU
      WCJRZXKYEYIYHUVHUWDYGYRYPUVJXLHIJKEXNBYDLMNUSTXKXLIJXOBWPWOKQZHQZUWBYDLYG
      YSXKYEUVHUWGXLPZUWHXLPYGUVJXKYEUVNUVKUWIYGUVOUVMXLIKWPWOYDNUPSZXLHIBUWGYD
      MUNSXKYEUVHUVLUWBXLPZYGUVJUVPXLHIBUVEYDMUNSZXKBWPHQZEKQZUWMWOKQZXOUWHJXKE
      WOJRZUWNUWOJRZXKWNXCXGUWPYFYMYQABEHIJLMOVASXKYEYIUVKUWMXLPZUWPUWQVIYGYRUV
      MXKYEUVHUVNUWRYGUVJUVOXLHIBWPYDMUNSXLIJKEWOUWMYDLNVBTVCXKXNUWMEKXKWNXCXDX
      HXNUWMVJYFYMYNYOABCFHIMOVDTVEXKWNXCUVNUVKBWOJRZUWHUWOVJYFYMUVOUVMXKWNXCXG
      UWSYFYMYQABEHIJLMOVFSZAXLBHIJKWPWOYDLMNOVGVHVKXKUWGUVEJRZUWHUWBJRZXKUWGWR
      JRZUWGWPJRZUXAXKUWGWQWRJXKYEUVNUVKUWGWQVJYGUVOUVMXLIKWPWOYDNVLSWNWSXAXFXJ
      VMVNXKYEUVNUVKUXDYGUVOUVMXLIJKWPWOYDLNVOSXKYEUWIUUBUVNUXCUXDVSUXAVTYGUWJU
      UEUVOXLIJKUWGWRWPYDLNVPTVQXKYEUWIUVLUVHUXAUXBVIYGUWJUVPUVJXLHIJUWGUVEBYDL
      MVRTVCWAXKYEYJUVKUWKUWDUWEVSUWFVTYGYSUVMUWLXLIJKXOWOUWBYDLNVPTVQXKWNXCUVK
      UVLUWSUVGUWCVJYFYMUVMUVPUWTAXLBHIJKWOUVEYDLMNOWBVHWCXKUVFUVCJRZUVGUVDJRZX
      KWRWQKQZWRWTKQZUVFUVCJXKXAUXGUXHJRZWNWSXAXFXJWDXKYEWQXLPZWTXLPZUUBXAUXIVI
      YGXKYEUVKUVNUXJYGUVMUVOXLIKWOWPYDNUPSXKWNXEXIUXKYFUUDUUFAXLHIDGYDMOUTSUUE
      XLIJKWQWTWRYDLNVBTVCXKIWEPZUVKUUBUVNUVFUXGVJXKWNUXLYFIWJUJUVMUUEUVOXLIKWO
      WRWPYDNWFTXKWNXEUUBUUCDWRJRZUVCUXHVJYFUUDUUEUUGXKWNXDXEUXMYFYNUUDACDHIJLM
      OVASAXLDHIJKWRGYDLMNOWBVHVKXKYEUVIUVRUVHUXEUXFVIYGUVQUWAUVJXLHIJUVFUVCBYD
      LMVRTVCWAXKYEUVHUVSYTUVDUURVJYGUVJUVTUUHXLHIBDXPYDMWGTWHXKYEYIYHUUCUVAYGY
      RYPUUGXLHIJKEXNGYDLMNUSTXKYEYJUURXLPZUUJUUTUVAVSUVBVTYGYSXKYEYTUUIUXNYGUU
      HUUKXLHIXPXQYDMUNSUULXLIJKXOUURXRYDLNVPTVQXKWNXIUUBUUIUUJXPXRJRZXTUUSVJYF
      UUFUUEUUKUULXKYEUUCUUBYIUXOYGUUGUUEYRXLHIJKGWREYDLMNWITAXLGHIJKWRXQXRYDLM
      NOWKWLWCXKXPYBJRZXTYCJRZXKGYAJRZUXPXKWNXHXIUXRYFYOUUFAFGHIJLMOVASXKYEUUCU
      UOUUBUXRUXPVIYGUUGUUPUUEXLIJKGYAWRYDLNVBTVCXKYEYTUUNUUAUXPUXQVIYGUUHUUQUU
      MXLHIJXPYBXSYDLMWMTVCWA $.

    $( Lemma for ~ dalaw .  Second piece of ~ dalawlem8 .  (Contributed by NM,
       6-Oct-2012.) $)
    dalawlem7 $p |- ( ( ( K e. HL /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) )
                 .<_ ( Q .\/ R )
            /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) )
       /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ ( S e. A /\ T e. A /\ U e. A ) )
         -> ( ( ( P .\/ Q ) .\/ S ) ./\ T )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                     .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) $=
      ( wcel co wbr hlatjcl syl3anc chlt w3a cbs cfv eqid clat simp11 hllat syl
      simp21 simp22 simp31 atbase latjcl simp32 latmcl simp23 simp33 latmassOLD
      col wceq hlol syl13anc hlatj32 hlatlej2 wb latleeqm2 mpbid oveq12d eqtr2d
      simp12 wi latjlej1 mpd hlatlej1 atmod4i1 syl131anc latjidm syl2anc oveq1d
      eqtrd 3brtr3d wa latmlem12 syl122anc mp2and eqbrtrd latlej1 lattrd ) IUAP
      ZBEHQZCFHQZKQZCDHQZJRZWMDGHQJRZUBZBAPZCAPZDAPZUBZEAPZFAPZGAPZUBZUBZIUCUDZ
      IJBCHQZEHQZFKQZWNFGHQZKQZXLDBHQZGEHQZKQZHQZXGUEZLXFWJIUFPZWJWOWPXAXEUGZIU
      HUIZXFXRXIXGPZFXGPZXJXGPXTXFXRXHXGPZEXGPZYAXTXFWJWRWSYCXSWQWRWSWTXEUJZWQW
      RWSWTXEUKZAXGHIBCXQMOSTXFXBYDWQXAXBXCXDULZAXGEIXQOUMUIXGHIXHEXQMUNTXFXCYB
      WQXAXBXCXDUOZAXGFIXQOUMUIZXGIKXIFXQNUPTXFXRWNXGPZXKXGPZXLXGPZXTXFWJWSWTYJ
      XSYFWQWRWSWTXEUQZAXGHICDXQMOSTZXFWJXCXDYKXSYHWQXAXBXCXDURZAXGHIFGXQMOSTZX
      GIKWNXKXQNUPTZXFXRYLXOXGPZXPXGPXTYQXFXRXMXGPZXNXGPZYRXTXFWJWTWRYSXSYMYEAX
      GHIDBXQMOSTXFWJXDXBYTXSYOYGAXGHIGEXQMOSTXGIKXMXNXQNUPTZXGHIXLXOXQMUNTXFXJ
      WKCHQZWLKQZFKQZXLJXFUUDUUBWLFKQZKQZXJXFIUTPZUUBXGPZWLXGPZYBUUDUUFVAXFWJUU
      GXSIVBUIXFXRWKXGPZCXGPZUUHXTXFWJWRXBUUJXSYEYGAXGHIBEXQMOSTZXFWSUUKYFAXGCI
      XQOUMUIZXGHIWKCXQMUNTZXFWJWSXCUUIXSYFYHAXGHICFXQMOSTZYIXGIKUUBWLFXQNUSVCX
      FUUBXIUUEFKXFWJWRXBWSUUBXIVAXSYEYGYFABECHIMOVDVCXFFWLJRZUUEFVAZXFWJWSXCUU
      PXSYFYHACFHIJLMOVETXFXRYBUUIUUPUUQVFXTYIUUOXGIJKFWLXQLNVGTVHVIVJXFUUCWNJR
      ZFXKJRZUUDXLJRZXFWMCHQZWNCHQZUUCWNJXFWOUVAUVBJRZWJWOWPXAXEVKXFXRWMXGPZYJU
      UKWOUVCVLXTXFXRUUJUUIUVDXTUULUUOXGIKWKWLXQNUPTYNUUMXGHIJWMWNCXQLMVMVCVNXF
      WJWSUUJUUICWLJRZUVAUUCVAXSYFUULUUOXFWJWSXCUVEXSYFYHACFHIJLMOVOTAXGCHIJKWK
      WLXQLMNOVPVQXFUVBCCHQZDHQZWNXFWJWSWTWSUVBUVGVAXSYFYMYFACDCHIMOVDVCXFUVFCD
      HXFXRUUKUVFCVAXTUUMXGHICXQMVRVSVTWAWBXFWJXCXDUUSXSYHYOAFGHIJLMOVOTXFXRUUC
      XGPZYJYBYKUURUUSWCUUTVLXTXFXRUUHUUIUVHXTUUNUUOXGIKUUBWLXQNUPTYNYIYPXGIJKX
      KUUCWNFXQLNWDWEWFWGXFXRYLYRXLXPJRXTYQUUAXGHIJXLXOXQLMWHTWI $.

    $( Lemma for ~ dalaw .  Special case to eliminate the requirement
       ` -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( Q .\/ R ) ` in ~ dalawlem1 .
       (Contributed by NM, 6-Oct-2012.) $)
    dalawlem8 $p |- ( ( ( K e. HL /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) )
               .<_ ( Q .\/ R )
            /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) )
       /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ ( S e. A /\ T e. A /\ U e. A ) )
         -> ( ( P .\/ Q ) ./\ ( S .\/ T ) )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                     .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) $=
      ( wcel co wbr hlatjcl syl3anc chlt w3a cbs cfv eqid clat simp11 hllat syl
      simp21 simp22 simp31 simp32 dalawlem2 syl122anc dalawlem6 dalawlem7 wa wb
      latmcl atbase latjcl simp23 simp33 latjle12 syl13anc mpbi2and lattrd ) IU
      APZBEHQCFHQKQZCDHQZJRZVJDGHQJRZUBZBAPZCAPZDAPZUBZEAPZFAPZGAPZUBZUBZIUCUDZ
      IJBCHQZEFHQZKQZWEFHQZEKQZWEEHQZFKQZHQZVKFGHQZKQZDBHQZGEHQZKQZHQZWDUEZLWCV
      IIUFPZVIVLVMVRWBUGZIUHUIZWCWTWEWDPZWFWDPZWGWDPXBWCVIVOVPXCXAVNVOVPVQWBUJZ
      VNVOVPVQWBUKZAWDHIBCWSMOSTZWCVIVSVTXDXAVNVRVSVTWAULZVNVRVSVTWAUMZAWDHIEFW
      SMOSTWDIKWEWFWSNUTTWCWTWIWDPZWKWDPZWLWDPXBWCWTWHWDPZEWDPZXJXBWCWTXCFWDPZX
      LXBXGWCVTXNXIAWDFIWSOVAUIZWDHIWEFWSMVBTWCVSXMXHAWDEIWSOVAUIZWDIKWHEWSNUTT
      ZWCWTWJWDPZXNXKXBWCWTXCXMXRXBXGXPWDHIWEEWSMVBTXOWDIKWJFWSNUTTZWDHIWIWKWSM
      VBTWCWTWNWDPZWQWDPZWRWDPZXBWCWTVKWDPZWMWDPZXTXBWCVIVPVQYCXAXFVNVOVPVQWBVC
      ZAWDHICDWSMOSTWCVIVTWAYDXAXIVNVRVSVTWAVDZAWDHIFGWSMOSTWDIKVKWMWSNUTTWCWTW
      OWDPZWPWDPZYAXBWCVIVQVOYGXAYEXEAWDHIDBWSMOSTWCVIWAVSYHXAYFXHAWDHIGEWSMOST
      WDIKWOWPWSNUTTWDHIWNWQWSMVBTZWCVIVOVPVSVTWGWLJRXAXEXFXHXIABCEFHIJKLMNOUNU
      OWCWIWRJRZWKWRJRZWLWRJRZABCDEFGHIJKLMNOUPABCDEFGHIJKLMNOUQWCWTXJXKYBYJYKU
      RYLUSXBXQXSYIWDHIJWIWKWRWSLMVEVFVGVH $.

    $( Lemma for ~ dalaw .  Special case to eliminate the requirement
       ` -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ P ) ` in ~ dalawlem1 .
       (Contributed by NM, 6-Oct-2012.) $)
    dalawlem9 $p |- ( ( ( K e. HL /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) )
              .<_ ( R .\/ P )
            /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) )
       /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ ( S e. A /\ T e. A /\ U e. A ) )
         -> ( ( P .\/ Q ) ./\ ( S .\/ T ) )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                     .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) $=
      ( wcel co wceq hlatjcl syl3anc chlt wbr w3a simp11 clat cbs cfv hllat syl
      simp22 simp32 simp21 simp31 latmcom simp12 simp23 hlatjcom breqtrd simp13
      eqbrtrd simp33 dalawlem8 syl333anc oveq12d latmcl latjcom eqtrd 3brtr4d
      eqid ) IUAPZBEHQZCFHQZKQZDBHQZJUBZVMDGHQZJUBZUCZBAPZCAPZDAPZUCZEAPZFAPZGA
      PZUCZUCZCBHQZFEHQZKQZBDHQZEGHQZKQZDCHQZGFHQZKQZHQZBCHQZEFHQZKQCDHQZFGHQZK
      QZVNGEHQZKQZHQZJWGVJVLVKKQZWKJUBXFVPJUBVTVSWAWDWCWEWJWQJUBVJVOVQWBWFUDZWG
      XFVMWKJWGIUEPZVLIUFUGZPZVKXIPZXFVMRWGVJXHXGIUHUIZWGVJVTWDXJXGVRVSVTWAWFUJ
      ZVRWBWCWDWEUKZAXIHICFXIVIZMOSTWGVJVSWCXKXGVRVSVTWAWFULZVRWBWCWDWEUMZAXIHI
      BEXOMOSTXIIKVLVKXONUNTZWGVMVNWKJVJVOVQWBWFUOWGVJWAVSVNWKRXGVRVSVTWAWFUPZX
      PAHIDBMOUQTZURUTWGXFVMVPJXRVJVOVQWBWFUSUTXMXPXSXNXQVRWBWCWDWEVAZACBDFEGHI
      JKLMNOVBVCWGWRWHWSWIKWGVJVSVTWRWHRXGXPXMAHIBCMOUQTWGVJWCWDWSWIRXGXQXNAHIE
      FMOUQTVDWGXEXDXBHQZWQWGXHXBXIPZXDXIPZXEYBRXLWGXHWTXIPZXAXIPZYCXLWGVJVTWAY
      EXGXMXSAXIHICDXOMOSTWGVJWDWEYFXGXNYAAXIHIFGXOMOSTXIIKWTXAXONVETWGXHVNXIPZ
      XCXIPZYDXLWGVJWAVSYGXGXSXPAXIHIDBXOMOSTWGVJWEWCYHXGYAXQAXIHIGEXOMOSTXIIKV
      NXCXONVETXIHIXBXDXOMVFTWGXDWMXBWPHWGVNWKXCWLKXTWGVJWEWCXCWLRXGYAXQAHIGEMO
      UQTVDWGWTWNXAWOKWGVJVTWAWTWNRXGXMXSAHICDMOUQTWGVJWDWEXAWORXGXNYAAHIFGMOUQ
      TVDVDVGVH $.

    $( Lemma for ~ dalaw .  Combine ~ dalawlem5 , ~ dalawlem8 , and dalawlem9 .
       (Contributed by NM, 6-Oct-2012.) $)
    dalawlem10 $p |- ( ( ( K e. HL /\
             -. ( -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( P .\/ Q )
               /\ -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( Q .\/ R )
               /\ -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ P ) )
            /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) )
       /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ ( S e. A /\ T e. A /\ U e. A ) )
         -> ( ( P .\/ Q ) ./\ ( S .\/ T ) )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) ) .\/ ( ( R .\/ P )
                   ./\ ( U .\/ S ) ) ) ) $=
      ( wcel co wbr wn w3a w3o simp11 simp12 3oran sylibr simp13 simp2 simp3 wa
      chlt wi dalawlem5 3expib 3exp dalawlem8 dalawlem9 3jaod 3impib syl311anc
      3imp ) IUJPZBEHQCFHQKQZBCHQZJRZSVBCDHQZJRZSVBDBHQZJRZSTSZVBDGHQJRZTZBAPCA
      PDAPTZEAPFAPGAPTZTZVAVDVFVHUAZVJVLVMVCEFHQKQVEFGHQKQVGGEHQKQHQJRZVAVIVJVL
      VMUBVNVIVOVAVIVJVLVMUCVDVFVHUDUEVAVIVJVLVMUFVKVLVMUGVKVLVMUHVAVOVJTVLVMVP
      VAVOVJVLVMUIVPUKZVAVDVJVQUKVFVHVAVDVJVQVAVDVJTVLVMVPABCDEFGHIJKLMNOULUMUN
      VAVFVJVQVAVFVJTVLVMVPABCDEFGHIJKLMNOUOUMUNVAVHVJVQVAVHVJTVLVMVPABCDEFGHIJ
      KLMNOUPUMUNUQUTURUS $.

    $( Lemma for ~ dalaw .  First part of ~ dalawlem13 .  (Contributed by NM,
       17-Sep-2012.) $)
    dalawlem11 $p |- ( ( ( K e. HL /\ P .<_ ( Q .\/ R )
            /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) )
       /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ ( S e. A /\ T e. A /\ U e. A ) )
         -> ( ( P .\/ Q ) ./\ ( S .\/ T ) )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                    .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) $=
      ( wcel co wbr syl3anc wceq chlt w3a cbs cfv eqid clat simp11 hllat simp21
      simp22 hlatjcl simp31 simp32 latmcl simp23 latmle1 simp12 atbase latjle12
      syl latlej1 wa wb syl13anc mpbi2and lattrd latjcl simp33 latmlem1 latlej2
      mpd atmod2i2 syl131anc latmcom simp13 latjlej2 atmod1i1 hlatjass hlatjcom
      wi eqbrtrd oveq1d eqtr3d latmlem12 syl122anc mp2and col latmassOLD eqcomd
      3brtr3d latleeqm2 mpbid oveq12d eqtr2d atmod4i1 3brtr4d latjlej1 eqbrtrrd
      hlol latj31 breqtrd latlem12 llnmod2i2 syl321anc breqtrrd ) IUAPZBCDHQZJR
      ZBEHQZCFHQZKQZDGHQZJRZUBZBAPZCAPZDAPZUBZEAPZFAPZGAPZUBZUBZBCHQZEFHQZKQZXG
      FGHQZDBHQZGEHQZKQZHQZKQZXGYGKQYJHQZJYCYFXGJRZYFYKJRZYFYLJRZYCIUCUDZIJYFYD
      XGYQUEZLYCXFIUFPZXFXHXMXRYBUGZIUHUTZYCYSYDYQPZYEYQPZYFYQPZUUAYCXFXOXPUUBY
      TXNXOXPXQYBUIZXNXOXPXQYBUJZAYQHIBCYRMOUKSZYCXFXSXTUUCYTXNXRXSXTYAULZXNXRX
      SXTYAUMZAYQHIEFYRMOUKSZYQIKYDYEYRNUNSZUUGYCXFXPXQXGYQPZYTUUFXNXOXPXQYBUOZ
      AYQHICDYRMOUKSZYCYSUUBUUCYFYDJRUUAUUGUUJYQIJKYDYEYRLNUPSYCXHCXGJRZYDXGJRZ
      XFXHXMXRYBUQZYCYSCYQPZDYQPZUUOUUAYCXPUURUUFAYQCIYROURUTZYCXQUUSUUMAYQDIYR
      OURUTZYQHIJCDYRLMVASYCYSBYQPZUURUULXHUUOVBUUPVCUUAYCXOUVBUUEAYQBIYROURUTZ
      UUTUUNYQHIJBCXGYRLMUSVDVEVFYCYFYJGHQZFHQZYKJYCYQIJYFYDFHQZYEKQZUVEYRLUUAU
      UKYCYSUVFYQPZUUCUVGYQPUUAYCYSUUBFYQPZUVHUUAUUGYCXTUVIUUIAYQFIYROURUTZYQHI
      YDFYRMVGSZUUJYQIKUVFYEYRNUNSYCYSUVDYQPZUVIUVEYQPUUAYCYSYJYQPZGYQPZUVLUUAY
      CYSYHYQPZYIYQPZUVMUUAYCXFXQXOUVOYTUUMUUEAYQHIDBYRMOUKSZYCXFYAXSUVPYTXNXRX
      SXTYAVHZUUHAYQHIGEYRMOUKSZYQIKYHYIYRNUNSZYCYAUVNUVRAYQGIYROURUTZYQHIYJGYR
      MVGSZUVJYQHIUVDFYRMVGSYCYDUVFJRZYFUVGJRZYCYSUUBUVIUWCUUAUUGUVJYQHIJYDFYRL
      MVASYCYSUUBUVHUUCUWCUWDVTUUAUUGUVKUUJYQIJKYDUVFYEYRLNVIVDVKYCUVFEKQZFHQZU
      VGUVEJYCXFXSUVHUVIFUVFJRZUWFUVGTYTUUHUVKUVJYCYSUUBUVIUWGUUAUUGUVJYQHIJYDF
      YRLMVJSAYQEHIJKUVFFYRLMNOVLVMYCUWEUVDJRZUWFUVEJRZYCBXJHQZXIKQZEKQZYHGHQZY
      IKQZUWEUVDJYCUWKUWMJRZEYIJRZUWLUWNJRZYCBXJXIKQZHQZBXLHQZUWKUWMJYCUWRXLJRZ
      UWSUWTJRZYCUWRXKXLJYCYSXJYQPZXIYQPZUWRXKTUUAYCXFXPXTUXCYTUUFUUIAYQHICFYRM
      OUKSZYCXFXOXSUXDYTUUEUUHAYQHIBEYRMOUKSZYQIKXJXIYRNVNSXFXHXMXRYBVOWAYCYSUW
      RYQPZXLYQPZUVBUXAUXBVTUUAYCYSUXCUXDUXGUUAUXEUXFYQIKXJXIYRNUNSYCXFXQYAUXHY
      TUUMUVRAYQHIDGYRMOUKSUVCYQHIJUWRXLBYRLMVPVDVKYCXFXOUXCUXDBXIJRZUWSUWKTYTU
      UEUXEUXFYCYSUVBEYQPZUXIUUAUVCYCXSUXJUUHAYQEIYROURUTZYQHIJBEYRLMVASAYQBHIJ
      KXJXIYRLMNOVQVMYCBDHQZGHQZUWTUWMYCXFXOXQYAUXMUWTTYTUUEUUMUVRABDGHIMOVRVDY
      CUXLYHGHYCXFXOXQUXLYHTYTUUEUUMAHIBDMOVSSWBWCWJYCYSUVNUXJUWPUUAUWAUXKYQHIJ
      GEYRLMVJSYCYSUWKYQPZUWMYQPZUXJUVPUWOUWPVBUWQVTUUAYCYSUWJYQPZUXDUXNUUAYCYS
      UVBUXCUXPUUAUVCUXEYQHIBXJYRMVGSZUXFYQIKUWJXIYRNUNSYCYSUVOUVNUXOUUAUVQUWAY
      QHIYHGYRMVGSUXKUVSYQIJKYIUWKUWMEYRLNWDWEWFYCUWLUWJXIEKQZKQZUWEYCIWGPZUXPU
      XDUXJUWLUXSTYCXFUXTYTIWSUTUXQUXFUXKYQIKUWJXIEYRNWHVDYCUWJUVFUXREKYCUVFUWJ
      YCXFXOXPXTUVFUWJTYTUUEUUFUUIABCFHIMOVRVDWIYCEXIJRZUXRETZYCYSUVBUXJUYAUUAU
      VCUXKYQHIJBEYRLMVJSYCYSUXJUXDUYAUYBVCUUAUXKUXFYQIJKEXIYRLNWKSWLWMWNYCXFYA
      UVOUVPGYIJRZUVDUWNTYTUVRUVQUVSYCYSUVNUXJUYCUUAUWAUXKYQHIJGEYRLMVASAYQGHIJ
      KYHYIYRLMNOWOVMWPYCYSUWEYQPZUVLUVIUWHUWIVTUUAYCYSUVHUXJUYDUUAUVKUXKYQIKUV
      FEYRNUNSUWBUVJYQHIJUWEUVDFYRLMWQVDVKWRVFYCYSUVMUVNUVIUVEYKTUUAUVTUWAUVJYQ
      HIYJGFYRMWTVDXAYCYSUUDUULYKYQPZYNYOVBYPVCUUAUUKUUNYCYSYGYQPZUVMUYEUUAYCXF
      XTYAUYFYTUUIUVRAYQHIFGYRMOUKSUVTYQHIYGYJYRMVGSYQIJKYFXGYKYRLNXBVDVEYCXFUU
      LUVMXTYAYJXGJRYMYLTYTUUNUVTUUIUVRYCYQIJYJYHXGYRLUUAUVTUVQUUNYCYSUVOUVPYJY
      HJRUUAUVQUVSYQIJKYHYIYRLNUPSYCDXGJRZXHYHXGJRZYCYSUURUUSUYGUUAUUTUVAYQHIJC
      DYRLMVJSUUQYCYSUUSUVBUULUYGXHVBUYHVCUUAUVAUVCUUNYQHIJDBXGYRLMUSVDVEVFAYQF
      GHIJKXGYJYRLMNOXCXDXE $.

    $( Lemma for ~ dalaw .  Second part of ~ dalawlem13 .  (Contributed by NM,
       17-Sep-2012.) $)
    dalawlem12 $p |- ( ( ( K e. HL /\ Q = R
            /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) )
       /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ ( S e. A /\ T e. A /\ U e. A ) )
         -> ( ( P .\/ Q ) ./\ ( S .\/ T ) )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                   .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) $=
      ( wcel wceq co wbr syl3anc chlt w3a cbs cfv eqid clat simp11 hllat simp21
      simp22 hlatjcl simp31 simp32 latmcl atbase latjcl simp33 latlej1 latmlem1
      syl wi syl13anc mpd hlatjcom oveq2d latlej2 atmod2i2 syl131anc latmassOLD
      3brtr4d col hlol hlatjass hlatj12 eqtr2d hlatlej2 latleeqm2 mpbid oveq12d
      hlatlej1 atmod1i1 simp13 simp12 oveq1d breqtrd latjle12 mpbi2and eqbrtrrd
      eqtr3d latmlem12 syl122anc mp2and eqbrtrd latjcom latjlej1 latjass lattrd
      wb wa latmle1 latlem12 latmlej12 llnmod1i2 hlatjidm syl2anc latmcom eqtrd
      syl321anc ) IUAPZCDQZBEHRZCFHRZKRZDGHRZJSZUBZBAPZCAPZDAPZUBZEAPZFAPZGAPZU
      BZUBZBCHRZEFHRZKRZCFGHRZKRZGEHRZHRZYFKRZCDHRZYIKRZDBHRZYKKRZHRZJYEYHYLJSZ
      YHYFJSZYHYMJSZYEIUCUDZIJYHYFEHRZFKRZEHRZYLUUBUEZLYEXIIUFPZXIXJXOXTYDUGZIU
      HUTZYEUUGYFUUBPZYGUUBPZYHUUBPZUUIYEXIXQXRUUJUUHXPXQXRXSYDUIZXPXQXRXSYDUJZ
      AUUBHIBCUUFMOUKTZYEXIYAYBUUKUUHXPXTYAYBYCULZXPXTYAYBYCUMZAUUBHIEFUUFMOUKT
      ZUUBIKYFYGUUFNUNTZYEUUGUUDUUBPZEUUBPZUUEUUBPUUIYEUUGUUCUUBPZFUUBPZUUTUUIY
      EUUGUUJUVAUVBUUIUUOYEYAUVAUUPAUUBEIUUFOUOUTZUUBHIYFEUUFMUPTZYEYBUVCUUQAUU
      BFIUUFOUOUTZUUBIKUUCFUUFNUNTZUVDUUBHIUUDEUUFMUPTYEUUGYJUUBPZYKUUBPZYLUUBP
      ZUUIYEUUGCUUBPZYIUUBPZUVHUUIYEXRUVKUUNAUUBCIUUFOUOUTZYEXIYBYCUVLUUHUUQXPX
      TYAYBYCUQZAUUBHIFGUUFMOUKTZUUBIKCYIUUFNUNTZYEXIYCYAUVIUUHUVNUUPAUUBHIGEUU
      FMOUKTZUUBHIYJYKUUFMUPTZYEYFFEHRZKRZUUCUVSKRZYHUUEJYEYFUUCJSZUVTUWAJSZYEU
      UGUUJUVAUWBUUIUUOUVDUUBHIJYFEUUFLMURTYEUUGUUJUVBUVSUUBPZUWBUWCVAUUIUUOUVE
      YEXIYBYAUWDUUHUUQUUPAUUBHIFEUUFMOUKTUUBIJKYFUUCUVSUUFLNUSVBVCYEYGUVSYFKYE
      XIYAYBYGUVSQUUHUUPUUQAHIEFMOVDTVEYEXIYBUVBUVAEUUCJSZUUEUWAQUUHUUQUVEUVDYE
      UUGUUJUVAUWEUUIUUOUVDUUBHIJYFEUUFLMVFTAUUBFHIJKUUCEUUFLMNOVGVHVJYEUUEYJGH
      RZEHRZYLJYEUUDUWFJSZUUEUWGJSZYEUUDGCHRZYIKRZUWFJYEUUDCXKHRZXLKRZFKRZUWKJY
      EUWNUWLXLFKRZKRZUUDYEIVKPZUWLUUBPZXLUUBPZUVCUWNUWPQYEXIUWQUUHIVLUTYEUUGUV
      KXKUUBPZUWRUUIUVMYEXIXQYAUWTUUHUUMUUPAUUBHIBEUUFMOUKTZUUBHICXKUUFMUPTZYEX
      IXRYBUWSUUHUUNUUQAUUBHICFUUFMOUKTZUVFUUBIKUWLXLFUUFNVIVBYEUWLUUCUWOFKYEUU
      CBCEHRHRZUWLYEXIXQXRYAUUCUXDQUUHUUMUUNUUPABCEHIMOVMVBYEXIXQXRYAUXDUWLQUUH
      UUMUUNUUPABCEHIMOVNVBVOYEFXLJSZUWOFQZYEXIXRYBUXEUUHUUNUUQACFHIJLMOVPTYEUU
      GUVCUWSUXEUXFWRUUIUVFUXCUUBIJKFXLUUFLNVQTVRVSVOYEUWMUWJJSZFYIJSZUWNUWKJSZ
      YECXMHRZUWMUWJJYEXIXRUWTUWSCXLJSZUXJUWMQUUHUUNUXAUXCYEXIXRYBUXKUUHUUNUUQA
      CFHIJLMOVTTAUUBCHIJKXKXLUUFLMNOWAVHYECUWJJSZXMUWJJSZUXJUWJJSZYEXIYCXRUXLU
      UHUVNUUNAGCHIJLMOVPTYEXMXNUWJJXIXJXOXTYDWBYECGHRZXNUWJYECDGHXIXJXOXTYDWCZ
      WDYEXIXRYCUXOUWJQUUHUUNUVNAHICGMOVDTWIWEYEUUGUVKXMUUBPZUWJUUBPZUXLUXMWSUX
      NWRUUIUVMYEUUGUWTUWSUXQUUIUXAUXCUUBIKXKXLUUFNUNTYEXIYCXRUXRUUHUVNUUNAUUBH
      IGCUUFMOUKTZUUBHIJCXMUWJUUFLMWFVBWGWHYEXIYBYCUXHUUHUUQUVNAFGHIJLMOVTTYEUU
      GUWMUUBPZUXRUVCUVLUXGUXHWSUXIVAUUIYEUUGUWRUWSUXTUUIUXBUXCUUBIKUWLXLUUFNUN
      TUXSUVFUVOUUBIJKYIUWMUWJFUUFLNWJWKWLWMYEGYJHRZUWKUWFYEXIYCUVKUVLGYIJSZUYA
      UWKQUUHUVNUVMUVOYEXIYBYCUYBUUHUUQUVNAFGHIJLMOVPTAUUBGHIJKCYIUUFLMNOWAVHYE
      UUGGUUBPZUVHUYAUWFQUUIYEYCUYCUVNAUUBGIUUFOUOUTZUVPUUBHIGYJUUFMWNTWIWEYEUU
      GUUTUWFUUBPZUVAUWHUWIVAUUIUVGYEUUGUVHUYCUYEUUIUVPUYDUUBHIYJGUUFMUPTUVDUUB
      HIJUUDUWFEUUFLMWOVBVCYEUUGUVHUYCUVAUWGYLQUUIUVPUYDUVDUUBHIYJGEUUFMWPVBWEW
      QYEUUGUUJUUKYTUUIUUOUURUUBIJKYFYGUUFLNWTTYEUUGUULUVJUUJYSYTWSUUAWRUUIUUSU
      VRUUOUUBIJKYHYLYFUUFLNXAVBWGYEYJYKYFKRZHRZYMYRYEXIUVHUUJYCYAYJYFJSZUYGYMQ
      UUHUVPUUOUVNUUPYEUUGUVKUVLBUUBPZUYHUUIUVMUVOYEXQUYIUUMAUUBBIUUFOUOUTUUBHI
      JKCYIBUUFLMNXBVBAUUBGEHIJKYJYFUUFLMNOXCXHYEYJYOUYFYQHYECYNYIKYECCHRZCYNYE
      XIXRUYJCQUUHUUNAHICMOXDXEYECDCHUXPVEWIWDYEUYFYFYKKRZYQYEUUGUVIUUJUYFUYKQU
      UIUVQUUOUUBIKYKYFUUFNXFTYEYFYPYKKYEYFCBHRZYPYEXIXQXRYFUYLQUUHUUMUUNAHIBCM
      OVDTYECDBHUXPWDXGWDXGVSWIWE $.

    dalawlem2.o $e |- O = ( LPlanes ` K ) $.
    $( Lemma for ~ dalaw .  Special case to eliminate the requirement
       ` ( ( P .\/ Q ) .\/ R ) e. O ` in ~ dalawlem1 .  (Contributed by NM,
       6-Oct-2012.) $)
    dalawlem13 $p |- ( ( ( K e. HL /\ -. ( ( P .\/ Q ) .\/ R ) e. O
            /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) )
       /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ ( S e. A /\ T e. A /\ U e. A ) )
         -> ( ( P .\/ Q ) ./\ ( S .\/ T ) )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                     .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) $=
      ( wcel co w3a chlt wn wbr wo simp11 simp12 wne wa wb simp22 simp23 simp21
      islpln2a syl13anc df-ne anbi1i pm4.56 bitri syl6rbb hlatjrot eleq1d bitrd
      wceq con1bid mpbid simp13 simp2 wi dalawlem12 3expib 3exp dalawlem11 jaod
      simp3 3imp 3impib syl311anc ) IUARZBCHSZDHSZLRZUBZBEHSCFHSKSDGHSJUCZTZBAR
      ZCARZDARZTZEARFARGARTZTZVRCDVCZBCDHSZJUCZUDZWCWHWIVSEFHSKSWLFGHSKSDBHSGEH
      SKSHSJUCZVRWBWCWHWIUEZWJWBWNVRWBWCWHWIUFWJWNWAWJWNUBZWLBHSZLRZWAWJWSCDUGZ
      WMUBZUHZWQWJVRWFWGWEWSXBUIWPWDWEWFWGWIUJZWDWEWFWGWIUKZWDWEWFWGWIULZALCDBH
      IJMNPQUMUNXBWKUBZXAUHWQWTXFXACDUOUPWKWMUQURUSWJWRVTLWJVRWFWGWEWRVTVCWPXCX
      DXEACDBHINPUTUNVAVBVDVEVRWBWCWHWIVFWDWHWIVGWDWHWIVNVRWNWCTWHWIWOVRWNWCWHW
      IUHWOVHZVRWKWCXGVHWMVRWKWCXGVRWKWCTWHWIWOABCDEFGHIJKMNOPVIVJVKVRWMWCXGVRW
      MWCTWHWIWOABCDEFGHIJKMNOPVLVJVKVMVOVPVQ $.

    $( Lemma for ~ dalaw .  Combine ~ dalawlem10 and ~ dalawlem13 .
       (Contributed by NM, 6-Oct-2012.) $)
    dalawlem14 $p |- ( ( ( K e. HL /\
             -. ( ( ( P .\/ Q ) .\/ R ) e. O
               /\ ( -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( P .\/ Q )
               /\ -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( Q .\/ R )
               /\ -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ P ) ) )
            /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) )
       /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ ( S e. A /\ T e. A /\ U e. A ) )
         -> ( ( P .\/ Q ) ./\ ( S .\/ T ) )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                   .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) $=
      ( wcel co wn chlt wbr w3a wa wi wo dalawlem13 3expib 3exp dalawlem10 jaod
      ianor syl5bi 3imp 3impib ) IUARZBCHSZDHSLRZBEHSCFHSKSZUQJUBTUSCDHSZJUBTUS
      DBHSZJUBTUCZUDTZUSDGHSJUBZUCBARCARDARUCZEARFARGARUCZUQEFHSKSUTFGHSKSVAGEH
      SKSHSJUBZUPVCVDVEVFUDVGUEZVCURTZVBTZUFUPVDVHUEZURVBULUPVIVKVJUPVIVDVHUPVI
      VDUCVEVFVGABCDEFGHIJKLMNOPQUGUHUIUPVJVDVHUPVJVDUCVEVFVGABCDEFGHIJKMNOPUJU
      HUIUKUMUNUO $.

    $( Lemma for ~ dalaw .  Swap variable triples ` P Q R ` and ` S T U ` in
       ~ dalawlem14 , to obtain the elimination of the remaining conditions in
       ~ dalawlem1 .  (Contributed by NM, 6-Oct-2012.) $)
    dalawlem15 $p |- ( ( ( K e. HL /\
             -. ( ( ( S .\/ T ) .\/ U ) e. O
               /\ ( -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( S .\/ T )
               /\ -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( T .\/ U )
               /\ -. ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( U .\/ S ) ) )
            /\ ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) )
       /\ ( P e. A /\ Q e. A /\ R e. A )
       /\ ( S e. A /\ T e. A /\ U e. A ) )
         -> ( ( P .\/ Q ) ./\ ( S .\/ T ) )
               .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                     .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) $=
      ( wcel co syl3anc chlt wbr wn w3a wa simp11 simp12 simp21 simp31 hlatjcom
      simp22 simp32 oveq12d breq1d notbid 3anbi123d anbi2d simp13 simp33 simp23
      wceq mtbid 3brtr4d simp3 simp2 dalawlem14 syl311anc clat cbs cfv syl eqid
      hllat hlatjcl latmcom ) IUARZEFHSZGHSLRZBEHSZCFHSZKSZVQJUBZUCZWAFGHSZJUBZ
      UCZWAGEHSZJUBZUCZUDZUEZUCZWADGHSZJUBZUDZBARZCARZDARZUDZEARZFARZGARZUDZUDZ
      VQBCHSZKSZWDCDHSZKSZWGDBHSZKSZHSZXEVQKSZXGWDKSZXIWGKSZHSJXDVPVREBHSZFCHSZ
      KSZVQJUBZUCZXQWDJUBZUCZXQWGJUBZUCZUDZUEZUCXQGDHSZJUBXCWSXFXKJUBVPWLWNWSXC
      UFZXDWKYEVPWLWNWSXCUGXDWJYDVRXDWCXSWFYAWIYCXDWBXRXDWAXQVQJXDVSXOVTXPKXDVP
      WPWTVSXOVAYGWOWPWQWRXCUHZWOWSWTXAXBUIZAHIBENPUJTXDVPWQXAVTXPVAYGWOWPWQWRX
      CUKZWOWSWTXAXBULZAHICFNPUJTUMZUNUOXDWEXTXDWAXQWDJYLUNUOXDWHYBXDWAXQWGJYLU
      NUOUPUQVBXDWAWMXQYFJVPWLWNWSXCURXDXOVSXPVTKXDVPWTWPXOVSVAYGYIYHAHIEBNPUJT
      XDVPXAWQXPVTVAYGYKYJAHIFCNPUJTUMXDVPXBWRYFWMVAYGWOWSWTXAXBUSZWOWPWQWRXCUT
      ZAHIGDNPUJTVCWOWSXCVDWOWSXCVEAEFGBCDHIJKLMNOPQVFVGXDIVHRZXEIVIVJZRZVQYPRZ
      XLXFVAXDVPYOYGIVMVKZXDVPWPWQYQYGYHYJAYPHIBCYPVLZNPVNTXDVPWTXAYRYGYIYKAYPH
      IEFYTNPVNTYPIKXEVQYTOVOTXDXMXHXNXJHXDYOXGYPRZWDYPRZXMXHVAYSXDVPWQWRUUAYGY
      JYNAYPHICDYTNPVNTXDVPXAXBUUBYGYKYMAYPHIFGYTNPVNTYPIKXGWDYTOVOTXDYOXIYPRZW
      GYPRZXNXJVAYSXDVPWRWPUUCYGYNYHAYPHIDBYTNPVNTXDVPXBWTUUDYGYMYIAYPHIGEYTNPV
      NTYPIKXIWGYTOVOTUMVC $.
  $}

  ${
    dalaw.l $e |- .<_ = ( le ` K ) $.
    dalaw.j $e |- .\/ = ( join ` K ) $.
    dalaw.m $e |- ./\ = ( meet ` K ) $.
    dalaw.a $e |- A = ( Atoms ` K ) $.
    $( Desargues' law, derived from Desargues' theorem ~ dath and with no
       conditions on the atoms.  If triples ` <. P , Q , R >. ` and
       ` <. S , T , U >. ` are centrally perspective, i.e.
       ` ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U ) ` , then they are
       axially perspective.  Theorem 13.3 of [Crawley] p. 110.  (Contributed by
       NM, 7-Oct-2012.) $)
    dalaw $p |- ( ( K e. HL /\ ( P e. A /\ Q e. A /\ R e. A )
                /\ ( S e. A /\ T e. A /\ U e. A ) )
       -> ( ( ( P .\/ S ) ./\ ( Q .\/ T ) ) .<_ ( R .\/ U )
         -> ( ( P .\/ Q ) ./\ ( S .\/ T ) )
             .<_ ( ( ( Q .\/ R ) ./\ ( T .\/ U ) )
                 .\/ ( ( R .\/ P ) ./\ ( U .\/ S ) ) ) ) ) $=
      ( wcel w3a co wbr wn chlt clpl cfv eqid dalawlem14 3expib 3exp dalawlem15
      wi wa simp11 simp2 simp3 simp2ll simp2rl simp2lr simp2rr simp13 dalawlem1
      3ad2ant1 syl323anc ecased exp4a com34 com24 3imp ) IUAPZBAPCAPDAPQZEAPFAP
      GAPQZBEHRCFHRKRZDGHRJSZBCHRZEFHRZKRCDHRZFGHRZKRDBHRZGEHRZKRHRJSZUIVGVKVIV
      HVRVGVKVHVIVRVGVKVHVIVRVGVLDHRIUBUCZPZVJVLJSTVJVNJSTVJVPJSTQZUJZVMGHRVSPZ
      VJVMJSTVJVOJSTVJVQJSTQZUJZVKVHVIUJVRUIZUIVGWBTZVKWFVGWGVKQVHVIVRABCDEFGHI
      JKVSLMNOVSUDZUEUFUGVGWETZVKWFVGWIVKQVHVIVRABCDEFGHIJKVSLMNOWHUHUFUGVGWBWE
      UJZVKWFVGWJVKQZVHVIVRWKVHVIQVGVHVIVTWCWAWDVKVRVGWJVKVHVIUKWKVHVIULWKVHVIU
      MWKVHVTVIVTWAWEVGVKUNUTWKVHWCVIWCWDWBVGVKUOUTWKVHWAVIVTWAWEVGVKUPUTWKVHWD
      VIWCWDWBVGVKUQUTVGWJVKVHVIURABCDEFGHIJKVSLMNOWHUSVAUFUGVBVCVDVEVF $.
  $}

  $c PCl $.

  $( Extend class notation with projective subspace closure. $)
  cpclN $a class PCl $.

  ${
    $d k x y $.
    $( Projective subspace closure, which is the smallest projective subspace
       containing an arbitrary set of atoms.  The subspace closure of the union
       of a set of projective subspaces is their supremum in ` PSubSp ` .
       Related to an analogous definition of closure used in Lemma 3.1.4 of
       [PtakPulmannova] p. 68.  (Note that this closure is not necessarily one
       of the closed projective subspaces ` PSubCl ` of ~ df-psubclN .)
       (Contributed by NM, 7-Sep-2013.) $)
    df-pclN $a |- PCl = ( k e. _V |-> ( x e. ~P ( Atoms ` k )
           |-> |^| { y e. ( PSubSp ` k ) | x C_ y } ) ) $.
  $}

  ${
    $d k x y A $.  $d k x y K $.  $d k x y S $.  $d x y X $.
    pclfval.a $e |- A = ( Atoms ` K ) $.
    pclfval.s $e |- S = ( PSubSp ` K ) $.
    pclfval.c $e |- U = ( PCl ` K ) $.
    $( The projective subspace closure function.  (Contributed by NM,
       7-Sep-2013.)  (New usage is discouraged.) $)
    pclfvalN $p |- ( K e. V -> U = ( x e. ~P A |->
                |^| { y e. S | x C_ y } ) ) $=
      ( vk wcel cvv cpw cv crab cint cfv catm cpsubsp wss cmpt wceq cpclN fveq2
      elex syl6eqr pweqd rabeqdv inteqd mpteq12dv df-pclN fvex pwex mptex fvmpt
      eqeltri syl5eq syl ) FGLFMLZEACNZAOBOUAZBDPZQZUBZUCFGUFUTEFUDRVEJKFAKOZSR
      ZNZVBBVFTRZPZQZUBVEMUDVFFUCZAVHVKVAVDVLVGCVLVGFSRZCVFFSUEHUGUHVLVJVCVLVBB
      VIDVLVIFTRDVFFTUEIUGUIUJUKABKULAVAVDCCVMMHFSUMUQUNUOUPURUS $.

    $( Value of the projective subspace closure function.  (Contributed by NM,
       7-Sep-2013.)  (New usage is discouraged.) $)
    pclvalN $p |- ( ( K e. V /\ X C_ A ) ->
             ( U ` X ) = |^| { y e. S | X C_ y } ) $=
      ( vx wss wcel cfv cv crab cint wceq catm cvv cpw fvex eqeltri wa pclfvalN
      elpw2 fveq1d adantr simpr c0 wne elpwi adantl wb atpsubN sseq2 elrab3 syl
      cmpt mpbird ne0i intex sylib sseq1 rabbidv inteqd fvmptg syl2anc sylan2br
      eqid eqtrd ) GBLZEFMZGBUAZMZGDNZGAOZLZACPZQZRGBBESNTHESUBUCUFVMVOUDZVPGKV
      NKOZVQLZACPZQZUSZNZVTVMVPWGRVOVMGDWFKABCDEFHIJUEUGUHWAVOVTTMZWGVTRVMVOUIW
      AVSUJUKZWHWABVSMZWIWAWJVLVOVLVMGBULUMWABCMZWJVLUNVMWKVOBCEFHIUOUHVRVLABCV
      QBGUPUQURUTVSBVAURVSVBVCKGWEVTVNTWFWBGRZWDVSWLWCVRACWBGVQVDVEVFWFVJVGVHVK
      VI $.

    $d p q r A $.  $d p q r K $.  $d p q r S $.  $d p q r X $.  $d p q r y V $.
    $( Closure of the projective subspace closure function.  (Contributed by
       NM, 8-Sep-2013.)  (New usage is discouraged.) $)
    pclclN $p |- ( ( K e. V /\ X C_ A ) -> ( U ` X ) e. S ) $=
      ( vy vr vp vq wcel wss wa cfv cv wi wral crab cint pclvalN cjn co atpsubN
      cple wbr sseq2 intminss sylan r19.26 ralbii vex elintrab anbi12i 3bitr4ri
      jcab simpll1 simplr simpll3 simprl simprr simpll2 eqid psubspi2N syl33anc
      ex imim2d ralimdva syl6ibr 3exp com24 syl5bi ralrimdv ralrimivv adantr wb
      w3a ispsubsp mpbir2and eqeltrd ) DENZFAOZPZFCQFJRZOZJBUAUBZBJABCDEFGHIUCW
      EWHBNZWHAOZKRZLRZMRZDUDQZUEDUGQZUHZWKWHNZSZKATZMWHTLWHTZWCABNWDWJABDEGHUF
      WGWDJABWFAFUIUJUKWCWTWDWCWSLMWHWHWCWLWHNZWMWHNZPZWRKAXCWGWLWFNZWMWFNZPZSZ
      JBTZWCWKANZWRSWGXDSZWGXESZPZJBTXJJBTZXKJBTZPXHXCXJXKJBULXGXLJBWGXDXEURUMX
      AXMXBXNWGJWLBLUNUOWGJWMBMUNUOUPUQWCWPXIXHWQWCWPXIXHWQSWCWPXIVSZXHWGWKWFNZ
      SZJBTWQXOXGXQJBXOWFBNZPZXFXPWGXSXFXPXSXFPWCXRXIXDXEWPXPWCWPXIXRXFUSXOXRXF
      UTWCWPXIXRXFVAXSXDXEVBXSXDXEVCWCWPXIXRXFVDAEWKWLWMBWNDWOWFWOVEZWNVEZGHVFV
      GVHVIVJWGJWKBKUNUOVKVLVMVNVOVPVQWCWIWJWTPVRWDAEBWNDWOWHKMLXTYAGHVTVQWAWB
      $.

    $d y Q $.
    elpcl.q $e |- Q e. _V $.
    $( Membership in the projective subspace closure function.  (Contributed by
       NM, 13-Sep-2013.)  (New usage is discouraged.) $)
    elpclN $p |- ( ( K e. V /\ X C_ A ) ->
             ( Q e. ( U ` X ) <-> A. y e. S ( X C_ y -> Q e. y ) ) ) $=
      ( wcel wss wa cfv cv crab cint wi wral pclvalN eleq2d elintrab syl6bb ) F
      GMHBNOZCHEPZMCHAQZNZADRSZMUICUHMTADUAUFUGUJCABDEFGHIJKUBUCUIACDLUDUE $.
  $}

  ${
    $d z K $.  $d z Q $.  $d z S $.  $d z X $.  $d z Y $.
    elpcli.s $e |- S = ( PSubSp ` K ) $.
    elpcli.c $e |- U = ( PCl ` K ) $.
    $( Implication of membership in the projective subspace closure function.
       (Contributed by NM, 13-Sep-2013.)  (New usage is discouraged.) $)
    elpcliN $p |- ( ( ( K e. V /\ X C_ Y /\ Y e. S ) /\ Q e. ( U ` X ) )
         -> Q e. Y ) $=
      ( vz wcel wss w3a cfv cv wi wral crab wceq imp cint catm simp1 simp2 eqid
      psubssat 3adant2 sstrd pclvalN syl2anc eleq2d elintrabg ibi sseq2 imbi12d
      syl6bi eleq2 rspccv com13 3adant1 syld ) DEKZFGLZGBKZMZAFCNZKZAGKZVEVGFJO
      ZLZAVIKZPZJBQZVHVEVGAVJJBRUAZKZVMVEVFVNAVEVBFDUBNZLVFVNSVBVCVDUCVEFGVPVBV
      CVDUDVBVDGVPLVCVPEBDGVPUEZHUFUGUHJVPBCDEFVQHIUIUJUKVOVMVJJABVNULUMUPVCVDV
      MVHPZVBVCVDVRVMVDVCVHVLVCVHPJGBVIGSVJVCVKVHVIGFUNVIGAUQUOURUSTUTVAT $.
  $}

  ${
    $d y A $.  $d y K $.  $d y V $.  $d y X $.  $d y Y $.
    pclss.a $e |- A = ( Atoms ` K ) $.
    pclss.c $e |- U = ( PCl ` K ) $.
    $( Ordering is preserved by subspace closure.  (Contributed by NM,
       8-Sep-2013.)  (New usage is discouraged.) $)
    pclssN $p |- ( ( K e. V /\ X C_ Y /\ Y C_ A )
           -> ( U ` X ) C_ ( U ` Y ) ) $=
      ( vy wcel wss w3a cv cpsubsp cfv crab cint wi wceq pclvalN sstr2 3ad2ant2
      adantr ss2rabdv intss syl simp1 sstr 3adant1 eqid syl2anc 3adant2 3sstr4d
      ) CDJZEFKZFAKZLZEIMZKZICNOZPZQZFURKZIUTPZQZEBOZFBOZUQVDVAKVBVEKUQVCUSIUTU
      QVCUSRZURUTJUOUNVHUPEFURUAUBUCUDVDVAUEUFUQUNEAKZVFVBSUNUOUPUGUOUPVIUNEFAU
      HUIIAUTBCDEGUTUJZHTUKUNUPVGVESUOIAUTBCDFGVJHTULUM $.

    $( A set of atoms is included in its projective subspace closure.
       (Contributed by NM, 12-Sep-2013.)  (New usage is discouraged.) $)
    pclssidN $p |- ( ( K e. V /\ X C_ A ) -> X C_ ( U ` X ) ) $=
      ( vy wcel wss wa cv cpsubsp cfv crab cint ssintub eqid pclvalN syl5sseqr
      ) CDIEAJKEHLJHCMNZOPEEBNHEUAQHAUABCDEFUARGST $.
  $}

  ${
    $d y K $.  $d y S $.  $d y X $.
    pclid.s $e |- S = ( PSubSp ` K ) $.
    pclid.c $e |- U = ( PCl ` K ) $.
    $( The projective subspace closure of a projective subspace is itself.
       (Contributed by NM, 8-Sep-2013.)  (New usage is discouraged.) $)
    pclidN $p |- ( ( K e. V /\ X e. S ) -> ( U ` X ) = X ) $=
      ( vy wcel wa cfv cv wss crab cint catm wceq eqid psubssat pclvalN syldan
      intmin adantl eqtrd ) CDIZEAIZJEBKZEHLMHANOZEUEUFECPKZMUGUHQUIDACEUIRZFSH
      UIABCDEUJFGTUAUFUHEQUEHEAUBUCUD $.

    $( A projective subspace sandwiched between a set of atoms and the set's
       projective subspace closure equals the closure.  (Contributed by NM,
       8-Sep-2013.)  (New usage is discouraged.) $)
    pclbtwnN $p |- ( ( ( K e. V /\ X e. S ) /\ ( Y C_ X /\ X C_ ( U ` Y ) ) )
            -> X = ( U ` Y ) ) $=
      ( wcel wa wss cfv simprr catm simpll simprl eqid psubssat adantr pclssN
      syl3anc wceq pclidN sseqtrd eqssd ) CDIZEAIZJZFEKZEFBLZKZJZJZEUJUHUIUKMUM
      UJEBLZEUMUFUIECNLZKZUJUNKUFUGULOUHUIUKPUHUPULUODACEUOQZGRSUOBCDFEUQHTUAUH
      UNEUBULABCDEGHUCSUDUE $.
  $}

  ${
    pclun.a $e |- A = ( Atoms ` K ) $.
    pclun.p $e |- .+ = ( +P ` K ) $.
    pclun.c $e |- U = ( PCl ` K ) $.
    $( The projective subspace closure of the union of two sets of atoms equals
       the closure of their projective sum.  (Contributed by NM, 12-Sep-2013.)
       (New usage is discouraged.) $)
    pclunN $p |- ( ( K e. V /\ X C_ A /\ Y C_ A )
                   -> ( U ` ( X u. Y ) ) = ( U ` ( X .+ Y ) ) ) $=
      ( wcel wss w3a cun cfv pclssN syl3anc wa unss syl2anc co paddunssN biimpi
      simp1 paddssat 3adant1 pclssidN sylibr cpsubsp wb simp2 simp3 eqid pclclN
      paddss syl13anc mpbid psubssat wceq pclidN sseqtrd eqssd ) DEKZFALZGALZMZ
      FGNZCOZFGBUAZCOZVFVCVGVILVIALVHVJLVCVDVEUDZAEBDFGHIUBAEBDFGHIUEACDEVGVIHJ
      PQVFVJVHCOZVHVFVCVIVHLZVHALZVJVLLVKVFFVHLGVHLRZVMVFVGVHLZVOVFVCVGALZVPVKV
      DVEVQVCVDVERVQFGASUCUFZACDEVGHJUGTFGVHSUHVFVCVDVEVHDUIOZKZVOVMUJVKVCVDVEU
      KVCVDVEULVFVCVQVTVKVRAVSCDEVGHVSUMZJUNTZAEBVSDFGVHHWAIUOUPUQVFVCVTVNVKWBA
      EVSDVHHWAURTACDEVIVHHJPQVFVCVTVLVHUSVKWBVSCDEVHWAJUTTVAVB $.
  $}

  ${
    pclun2.s $e |- S = ( PSubSp ` K ) $.
    pclun2.p $e |- .+ = ( +P ` K ) $.
    pclun2.c $e |- U = ( PCl ` K ) $.
    $( The projective subspace closure of the union of two subspaces equals
       their projective sum.  (Contributed by NM, 12-Sep-2013.)
       (New usage is discouraged.) $)
    pclun2N $p |- ( ( K e. HL /\ X e. S /\ Y e. S )
                   -> ( U ` ( X u. Y ) ) = ( X .+ Y ) ) $=
      ( chlt wcel w3a cun cfv co catm wss wceq simp1 psubssat eqid pclunN eqtrd
      3adant3 3adant2 syl3anc paddclN pclidN syl2anc ) DJKZEBKZFBKZLZEFMCNZEFAO
      ZCNZUOUMUJEDPNZQZFUQQZUNUPRUJUKULSZUJUKURULUQJBDEUQUAZGTUDUJULUSUKUQJBDFV
      AGTUEUQACDJEFVAHIUBUFUMUJUOBKUPUORUTABDEFGHUGBCDJUOGIUHUIUC $.
  $}

  ${
    pclfin.a $e |- A = ( Atoms ` K ) $.
    pclfin.c $e |- U = ( PCl ` K ) $.
    $d p q r v w y A $.  $d p q r v w y U $.  $d p q r v w y K $.
    $d p q r v w y X $.
    $( The projective subspace closure of a set equals the union of the
       closures of its finite subsets.  Analogous to Lemma 3.3.6 of
       [PtakPulmannova] p. 72.  Compare the closed subspace version
       ~ pclfinclN .  (Contributed by NM, 10-Sep-2013.)
       (New usage is discouraged.) $)
    pclfinN $p |- ( ( K e. AtLat /\ X C_ A )
      -> ( U ` X ) = U_ y e. ( Fin i^i ~P X ) ( U ` y ) ) $=
      ( vw vv cal wcel wss wa cfn cv cfv wceq wi syl2anc wrex vr vp vq cpw ciun
      cin cpsubsp simpl cjn cple wbr wral elin elpwi adantl sylbi simpll ancoms
      co sstr adantll eqid pclclN psubssat ex ralrimiv iunss sylibr eliun fveq2
      syl5 eleq2d cbvrexv bitri anbi12i anim2i w3a simp2rl simp12l unfi simp2rr
      cun simp12r unssd vex unex elpw elind simp11l simp11r sstrd simp3l pclssN
      ssun1 syl3anc simp2l sseldd ssun2 simp13 simp3r psubspi2N syl33anc rspcev
      a1i 3exp exp5c rexlimdv impd syl5bi ralrimdv ralrimivv wb ispsubsp adantr
      com24 mpbir2and csn snfi snelpwi vsnid snatpsubN pclidN syl5eleqr syl6ibr
      ssel2 ssrdv simpr simplr sseld pclbtwnN syl22anc eqcomd ) DJKZEBLZMZANEUD
      ZUFZAOZCPZUEZECPZYOYMYTDUGPZKZEYTLYTUUALYTUUAQYMYNUHYOUUCYTBLZUAOZUBOZUCO
      ZDUIPZUSDUJPZUKZUUEYTKZRZUABULZUCYTULUBYTULZYOYSBLZAYQULUUDYOUUOAYQYRYQKZ
      YRELZYOUUOUUPYRNKZYRYPKZMUUQYRNYPUMUUSUUQUURYREUNUOUPZYOUUQUUOYOUUQMZYMYS
      UUBKZUUOYMYNUUQUQZUVAYMYRBLZUVBUVCYNUUQUVDYMUUQYNUVDYREBUTURVABUUBCDJYRFU
      UBVBZGVCSBJUUBDYSFUVEVDSVEVKVFAYQYSBVGVHYOUUMUBUCYTYTYOUUFYTKZUUGYTKZMZUU
      LUABUVHUUFHOZCPZKZHYQTZUUGIOZCPZKZIYQTZMYOUUEBKZUULRZUVFUVLUVGUVPUVFUUFYS
      KZAYQTUVLAUUFYQYSVIUVSUVKAHYQYRUVIQYSUVJUUFYRUVICVJVLVMVNUVGUUGYSKZAYQTUV
      PAUUGYQYSVIUVTUVOAIYQYRUVMQYSUVNUUGYRUVMCVJVLVMVNVOYOUVLUVPUVRYOUVKUVPUVR
      RZHYQUVIYQKZUVINKZUVIELZMZYOUVKUWARUWBUWCUVIYPKZMUWEUVINYPUMUWFUWDUWCUVIE
      UNVPUPYOUVPUVKUWEUVRYOUVOUVKUWEUVRRRZIYQUVMYQKZUVMNKZUVMELZMZYOUVOUWGRUWH
      UWIUVMYPKZMUWKUVMNYPUMUWLUWJUWIUVMEUNVPUPYOUWKUVOUWGYOUWKUVOVQZUVKUWEUVQU
      UJUUKUWMUVKUWEMZUVQUUJMZUUKUWMUWNUWOVQZUUEYSKZAYQTZUUKUWPUVIUVMWBZYQKUUEU
      WSCPZKZUWRUWPNYPUWSUWPUWCUWIUWSNKUWCUWDUVKUWMUWOVRUWIUWJYOUVOUWNUWOVSUVIU
      VMVTSUWPUWSELUWSYPKUWPUVIUVMEUWCUWDUVKUWMUWOWAZUWIUWJYOUVOUWNUWOWCZWDUWSE
      UVIUVMHWEIWEWFWGVHWHUWPYMUWTUUBKZUVQUUFUWTKUUGUWTKUUJUXAYMYNUWKUVOUWNUWOW
      IZUWPYMUWSBLZUXDUXEUWPUVIUVMBUWPUVIEBUXBYMYNUWKUVOUWNUWOWJZWKUWPUVMEBUXCU
      XGWKWDZBUUBCDJUWSFUVEGVCSUWMUWNUVQUUJWLUWPUVJUWTUUFUWPYMUVIUWSLZUXFUVJUWT
      LUXEUXIUWPUVIUVMWNXDUXHBCDJUVIUWSFGWMWOUWMUVKUWEUWOWPWQUWPUVNUWTUUGUWPYMU
      VMUWSLZUXFUVNUWTLUXEUXJUWPUVMUVIWRXDUXHBCDJUVMUWSFGWMWOYOUWKUVOUWNUWOWSWQ
      UWMUWNUVQUUJWTBJUUEUUFUUGUUBUUHDUUIUWTUUIVBZUUHVBZFUVEXAXBUWQUXAAUWSYQYRU
      WSQYSUWTUUEYRUWSCVJVLXCSAUUEYQYSVIVHXEXFXEVKXGXOVKXGXHXIXJXKYMUUCUUDUUNMX
      LYNBJUUBUUHDUUIYTUAUCUBUXKUXLFUVEXMXNXPYOHEYTYOUVIEKZUVIYSKZAYQTZUVIYTKZY
      OUXMUXOYOUXMMZUVIXQZYQKUVIUXRCPZKZUXOUXQNYPUXRUXRNKUXQUVIXRXDUXMUXRYPKYOU
      VIEXSUOWHUXQUVIUXRUXSHXTUXQYMUXRUUBKZUXSUXRQYMYNUXMUQZUXQYMUVIBKZUYAUYBYN
      UXMUYCYMEBUVIYEVABUVIUUBDFUVEYASUUBCDJUXRUVEGYBSYCUXNUXTAUXRYQYRUXRQYSUXS
      UVIYRUXRCVJVLXCSVEAUVIYQYSVIZYDYFYOHYTUUAUXPUXOYOUVIUUAKZUYDYOUXNUYEAYQUU
      PUUQYOUXNUYERZUUTYOUUQUYFUVAYSUUAUVIUVAYMUUQYNYSUUALUVCYOUUQYGYMYNUUQYHBC
      DJYREFGWMWOYIVEVKXGXIYFUUBCDJYTEUVEGYJYKYL $.

    $d y P $.
    $( The set of projective subspaces is compactly atomistic: if an atom is in
       the projective subspace closure of a set of atoms, it also belongs to
       the projective subspace closure of a finite subset of that set.
       Analogous to Lemma 3.3.10 of [PtakPulmannova] p. 74.  (Contributed by
       NM, 10-Sep-2013.)  (New usage is discouraged.) $)
    pclcmpatN $p |- ( ( K e. AtLat /\ X C_ A /\ P e. ( U ` X ) )
      -> E. y e. Fin ( y C_ X /\ P e. ( U ` y ) ) ) $=
      ( cal wcel wss cfv cv wa cfn wrex cpw cin ciun pclfinN eleq2d syl6bb elin
      eliun elpwi anim2i sylbi anim1i anass sylib reximi2 syl6bi 3impia ) EIJZF
      BKZCFDLZJZAMZFKZCURDLZJZNZAOPZUNUONZUQVAAOFQZRZPZVCVDUQCAVFUTSZJVGVDUPVHC
      ABDEFGHTUAACVFUTUDUBVAVBAVFOURVFJZVANUROJZUSNZVANVJVBNVIVKVAVIVJURVEJZNVK
      UROVEUCVLUSVJURFUEUFUGUHVJUSVAUIUJUKULUM $.
  $}

  $c _|_P $.

  $( Extend class notation with polarity of projective subspace $m$. $)
  cpolN $a class _|_P $.

  ${
    $d l m p $.
    $( Define polarity of projective subspace, which is a kind of complement of
       the subspace.  Item 2 in [Holland95] p. 222 bottom.  For more
       generality, we define it for all subsets of atoms, not just projective
       subspaces.  The intersection with ` Atoms `` l ` ensures it is defined
       when ` m = (/) ` .  (Contributed by NM, 23-Oct-2011.) $)
    df-polarityN $a |- _|_P = ( l e. _V |-> ( m e. ~P ( Atoms ` l ) |->
          ( ( Atoms ` l )
             i^i |^|_ p e. m ( ( pmap ` l ) ` ( ( oc ` l ) ` p ) ) ) ) ) $.
  $}

  ${
    $d h m A $.  $d h m p K $.  $d h M $.  $d h ._|_ $.
    polfval.o $e |- ._|_ = ( oc ` K ) $.
    polfval.a $e |- A = ( Atoms ` K ) $.
    polfval.m $e |- M = ( pmap ` K ) $.
    polfval.p $e |- P = ( _|_P ` K ) $.
    $( The projective subspace polarity function.  (Contributed by NM,
       23-Oct-2011.)  (New usage is discouraged.) $)
    polfvalN $p |- ( K e. B -> P = ( m e. ~P A |->
                ( A i^i |^|_ p e. m ( M ` ( ._|_ ` p ) ) ) ) ) $=
      ( vh wcel cvv cv cfv wceq catm coc cpw ciin cmpt elex cpolN cpmap syl6eqr
      fveq2 pweqd fveq1d fveq12d adantr iineq2dv ineq12d mpteq12dv df-polarityN
      cin fvex eqeltri pwex mptex fvmpt syl5eq syl ) EBNEONZCDAUAZAHDPZHPZGQZFQ
      ZUBZUQZUCZREBUDVECEUEQVMLMEDMPZSQZUAZVOHVGVHVNTQZQZVNUFQZQZUBZUQZUCVMOUEV
      NERZDVPWBVFVLWCVOAWCVOESQZAVNESUHJUGZUIWCVOAWAVKWEWCHVGVTVJWCVTVJRVHVGNWC
      VRVIVSFWCVSEUFQFVNEUFUHKUGWCVHVQGWCVQETQGVNETUHIUGUJUKULUMUNUODHMUPDVFVLA
      AWDOJESURUSUTVAVBVCVD $.

    $d m M $.  $d m ._|_ $.  $d m p X $.
    $( Value of the projective subspace polarity function.  (Contributed by NM,
       23-Oct-2011.)  (New usage is discouraged.) $)
    polvalN $p |- ( ( K e. B /\ X C_ A ) ->
             ( P ` X ) = ( A i^i |^|_ p e. X ( M ` ( ._|_ ` p ) ) ) ) $=
      ( vm wcel cfv cv ciin cin wceq catm wss cpw cvv fvex eqeltri elpw2 fveq1d
      cmpt polfvalN iineq1 ineq2d eqid inex1 fvmpt sylan9eq sylan2br ) GAUADBNZ
      GAUBZNZGCOZAHGHPFOEOZQZRZSGAADTOUCJDTUDUEZUFUQUSUTGMURAHMPZVAQZRZUHZOVCUQ
      GCVHABCMDEFHIJKLUIUGMGVGVCURVHVEGSVFVBAHVEGVAUJUKVHULAVBVDUMUNUOUP $.
  $}

  ${
    $d p x A $.  $d p x K $.  $d p x ._|_ $.  $d p x X $.
    polval2.u $e |- U = ( lub ` K ) $.
    polval2.o $e |- ._|_ = ( oc ` K ) $.
    polval2.a $e |- A = ( Atoms ` K ) $.
    polval2.m $e |- M = ( pmap ` K ) $.
    polval2.p $e |- P = ( _|_P ` K ) $.
    $( Alternate expression for value of the projective subspace polarity
       function.  Equation for polarity in [Holland95] p. 223.  (Contributed by
       NM, 22-Jan-2012.)  (New usage is discouraged.) $)
    polval2N $p |- ( ( K e. HL /\ X C_ A ) ->
             ( P ` X ) = ( M ` ( ._|_ ` ( U ` X ) ) ) ) $=
      ( vp vx wcel wa cfv wceq wrex cab chlt wss ciin cin cglb polvalN cbs wral
      cops hlop ad2antrr ssel2 adantll eqid atbase syl opoccl syl2anc ralrimiva
      cv pmapglb2xN syldan glbconxN opococ eqeq2d rexbidva abbidv df-rex equcom
      weq wex anbi2i ancom bitri exbii eleq1 ceqsexv 3bitri abbii syl6eq fveq2d
      vex abid2 eqtri eqtrd 3eqtr2d ) DUAOZGAUBZPZGBQAMGMUTZFQZEQUCUDZNUTZWKRMG
      SNTDUEQZQZEQZGCQZFQZEQAUABDEFGMIJKLUFWGWHWKDUGQZOZMGUHZWPWLRWIWTMGWIWJGOZ
      PZDUIOZWJWSOZWTWGXDWHXBDUJUKZXCWJAOZXEWHXBXGWGGAWJULUMAWSWJDWSUNZJUOUPZWS
      DFWJXHIUQURUSZNAWSWKMWNGDEXHWNUNZJKVAVBWIWOWREWIWOWMWKFQZRZMGSZNTZCQZFQZW
      RWGWHXAWOXQRXJNWSWKCMWNGDFXHHXKIVCVBWIXPWQFWIXOGCWIXONMVJZMGSZNTZGWIXNXSN
      WIXMXRMGXCXLWJWMXCXDXEXLWJRXFXIWSDFWJXHIVDURVEVFVGXTWMGOZNTGXSYANXSXBXRPZ
      MVKMNVJZXBPZMVKYAXRMGVHYBYDMYBXBYCPYDXRYCXBNMVIVLXBYCVMVNVOXBYAMWMNWBWJWM
      GVPVQVRVSNGWCWDVTWAWAWEWAWF $.
  $}

  ${
    polsubsp.a $e |- A = ( Atoms ` K ) $.
    polsubsp.s $e |- S = ( PSubSp ` K ) $.
    polsubsp.p $e |- ._|_ = ( _|_P ` K ) $.
    $( The polarity of a set of atoms is a projective subspace.  (Contributed
       by NM, 23-Jan-2012.)  (New usage is discouraged.) $)
    polsubN $p |- ( ( K e. HL /\ X C_ A ) -> ( ._|_ ` X ) e. S ) $=
      ( chlt wcel wss wa cfv club coc cpmap eqid polval2N adantr syl2anc hlclat
      clat cbs hllat cops hlop ccla atssbase sstr mpan2 clatlubcl syl2an opoccl
      pmapsub eqeltrd ) CIJZEAKZLZEDMECNMZMZCOMZMZCPMZMZBADUSCVCVAEUSQZVAQZFVCQ
      ZHRURCUBJZVBCUCMZJZVDBJUPVHUQCUDSURCUEJZUTVIJZVJUPVKUQCUFSUPCUGJEVIKZVLUQ
      CUAUQAVIKVMAVICVIQZFUHEAVIUIUJVIEUSCVNVEUKULVICVAUTVNVFUMTVIBCVCVBVNGVGUN
      TUO $.
  $}

  ${
    $d p A $.  $d p K $.
    polssat.a $e |- A = ( Atoms ` K ) $.
    polssat.p $e |- ._|_ = ( _|_P ` K ) $.
    $( The polarity of a set of atoms is a set of atoms.  (Contributed by NM,
       24-Jan-2012.)  (New usage is discouraged.) $)
    polssatN $p |- ( ( K e. HL /\ X C_ A ) -> ( ._|_ ` X ) C_ A ) $=
      ( chlt wcel wss cfv cpsubsp eqid polsubN psubssat syldan ) BGHDAIDCJZBKJZ
      HPAIAQBCDEQLZFMAGQBPERNO $.

    $( The polarity of the empty projective subspace is the whole space.
       (Contributed by NM, 29-Oct-2011.)  (New usage is discouraged.) $)
    pol0N $p |- ( K e. B -> ( ._|_ ` (/) ) = A ) $=
      ( vp wcel c0 cfv cv coc cpmap ciin cin wss wceq 0ss eqid cvv polvalN 0iin
      mpan2 ineq2i inv1 eqtri syl6eq ) CBHZIDJZAGIGKCLJZJCMJZJZNZOZAUHIAPUIUNQA
      RABDCUKUJIGUJSEUKSFUAUCUNATOAUMTAGULUBUDAUEUFUG $.

    $( The polarity of the whole projective subspace is the empty space.
       Remark in [Holland95] p. 223.  (Contributed by NM, 24-Jan-2012.)
       (New usage is discouraged.) $)
    pol1N $p |- ( K e. HL -> ( ._|_ ` A ) = (/) ) $=
      ( vp chlt wcel cfv club coc cpmap cp0 c0 wss wceq ssid eqid fveq2d syl cv
      polval2N mpan2 cp1 cple crab wral cops hlop atbase ople1 syl2an ralrimiva
      wbr cbs rabid2 sylibr coml ccla cal w3a hlomcmat atlatmstc syl2anc eqtr2d
      op1cl opoc1 eqtr3d hlatl pmap0 3eqtrd ) BGHZACIZABJIZIZBKIZIZBLIZIZBMIZVR
      IZNVLAAOVMVSPAQACVNBVRVPAVNRZVPRZDVRRZEUBUCVLVQVTVRVLBUDIZVPIZVQVTVLWEVOV
      PVLVOFUAZWEBUEIZUNZFAUFZVNIZWEVLAWJVNVLWIFAUGAWJPVLWIFAVLBUHHZWGBUOIZHWIW
      GAHBUIZAWMWGBWMRZDUJWMWEBWHWGWOWHRZWERZUKULUMWIFAUPUQSVLBURHBUSHBUTHZVAWE
      WMHZWKWEPBVBVLWLWSWNWMWEBWOWQVFTFAWMVNBWHWEWOWPWBDVCVDVESVLWLWFVTPWNWEBVP
      VTVTRZWQWCVGTVHSVLWRWANPBVIBVRVTWTWDVJTVK $.
  $}

  ${
    2pol0.o $e |- ._|_ = ( _|_P ` K ) $.
    $( The closed subspace closure of the empty set.  (Contributed by NM,
       12-Sep-2013.)  (New usage is discouraged.) $)
    2pol0N $p |- ( K e. HL -> ( ._|_ ` ( ._|_ ` (/) ) ) = (/) ) $=
      ( chlt wcel c0 cfv catm eqid pol0N fveq2d pol1N eqtrd ) ADEZFBGZBGAHGZBGF
      NOPBPDABPIZCJKPABQCLM $.
  $}

  ${
    $d p B $.  $d p K $.  $d p X $.
    polpmap.b $e |- B = ( Base ` K ) $.
    polpmap.o $e |- ._|_ = ( oc ` K ) $.
    polpmap.m $e |- M = ( pmap ` K ) $.
    polpmap.p $e |- P = ( _|_P ` K ) $.
    $( The polarity of a projective map.  (Contributed by NM, 24-Jan-2012.)
       (New usage is discouraged.) $)
    polpmapN $p |- ( ( K e. HL /\ X e. B )
       -> ( P ` ( M ` X ) ) = ( M ` ( ._|_ ` X ) ) ) $=
      ( vp chlt wcel wa cfv club wceq eqid fveq2d eqtrd catm pmapssat syldan cv
      wss polval2N cple wbr crab pmapval coml ccla cal hlomcmat atlatmstc sylan
      w3a ) CLMZFAMZNZFDOZBOZVACPOZOZEOZDOZFEOZDOURUSVACUAOZUEVBVFQVHALCDFGVHRZ
      IUBVHBVCCDEVAVCRZHVIIJUFUCUTVEVGDUTVDFEUTVDKUDFCUGOZUHKVHUIZVCOZFUTVAVLVC
      VHALCVKDFKGVKRZVIIUJSURCUKMCULMCUMMUQUSVMFQCUNKVHAVCCVKFGVNVJVIUOUPTSST
      $.
  $}

  ${
    2polpmap.b $e |- B = ( Base ` K ) $.
    2polpmap.m $e |- M = ( pmap ` K ) $.
    2polpmap.p $e |- ._|_ = ( _|_P ` K ) $.
    $( Double polarity of a projective map.  (Contributed by NM, 24-Jan-2012.)
       (New usage is discouraged.) $)
    2polpmapN $p |- ( ( K e. HL /\ X e. B )
       -> ( ._|_ ` ( ._|_ ` ( M ` X ) ) ) = ( M ` X ) ) $=
      ( chlt wcel wa cfv coc eqid polpmapN fveq2d wceq cops hlop sylan opoccl
      syldan opococ 3eqtrd ) BIJZEAJZKZECLZDLZDLEBMLZLZCLZDLZUKUJLZCLZUHUGUIULD
      ADBCUJEFUJNZGHOPUEUFUKAJZUMUOQUEBRJZUFUQBSZABUJEFUPUATADBCUJUKFUPGHOUBUGU
      NECUEURUFUNEQUSABUJEFUPUCTPUD $.
  $}

  ${
    2polval.u $e |- U = ( lub ` K ) $.
    2polval.a $e |- A = ( Atoms ` K ) $.
    2polval.m $e |- M = ( pmap ` K ) $.
    2polval.p $e |- ._|_ = ( _|_P ` K ) $.
    $( Value of double polarity.  (Contributed by NM, 25-Jan-2012.)
       (New usage is discouraged.) $)
    2polvalN $p |- ( ( K e. HL /\ X C_ A )
     -> ( ._|_ ` ( ._|_ ` X ) ) = ( M ` ( U ` X ) ) ) $=
      ( chlt wcel wss wa cfv coc eqid fveq2d wceq syl2anc cops hlop adantr ccla
      polval2N cbs hlclat atssbase sstr clatlubcl syl2an opoccl polpmapN syldan
      mpan2 opococ 3eqtrd ) CKLZFAMZNZFEOZEOFBOZCPOZOZDOZEOZVDVCOZDOZVBDOUTVAVE
      EAEBCDVCFGVCQZHIJUERURUSVDCUFOZLZVFVHSUTCUALZVBVJLZVKURVLUSCUBUCZURCUDLFV
      JMZVMUSCUGUSAVJMVOAVJCVJQZHUHFAVJUIUOVJFBCVPGUJUKZVJCVCVBVPVIULTVJECDVCVD
      VPVIIJUMUNUTVGVBDUTVLVMVGVBSVNVQVJCVCVBVPVIUPTRUQ $.
  $}

  ${
    $d p A $.  $d p K $.  $d p X $.  $d p Y $.
    2polss.a $e |- A = ( Atoms ` K ) $.
    2polss.p $e |- ._|_ = ( _|_P ` K ) $.
    $( A set of atoms is a subset of its double polarity.  (Contributed by NM,
       29-Jan-2012.)  (New usage is discouraged.) $)
    2polssN $p |- ( ( K e. HL /\ X C_ A ) -> X C_ ( ._|_ ` ( ._|_ ` X ) ) ) $=
      ( vp chlt wcel wss wa cv crab club cfv cple wbr ccla eqid wceq cbs hlclat
      ad3antrrr simpr simpllr atssbase syl6ss lubel syl3anc ex ss2rabdv sseqin2
      cin dfin5 biimpi adantl syl5reqr cpmap 2polvalN sstr mpan2 syl2an pmapval
      clatlubcl syldan eqtrd 3sstr4d ) BHIZDAJZKZGLZDIZGAMZVKDBNOZOZBPOZQZGAMZD
      DCOCOZVJVLVQGAVJVKAIZKZVLVQWAVLKZBRIZVLDBUAOZJZVQVHWCVIVTVLBUBZUCWAVLUDWB
      DAWDVHVIVTVLUEAWDBWDSZEUFZUGWDDVNBVPVKWGVPSZVNSZUHUIUJUKVJVMADUMZDGADUNVI
      WKDTZVHVIWLDAULUOUPUQVJVSVOBUROZOZVRAVNBWMCDWJEWMSZFUSVHVIVOWDIZWNVRTVHWC
      WEWPVIWFVIAWDJWEWHDAWDUTVAWDDVNBWGWJVDVBAWDHBVPWMVOGWGWIEWOVCVEVFVG $.

    $( Triple polarity cancels to a single polarity.  (Contributed by NM,
       6-Mar-2012.)  (New usage is discouraged.) $)
    3polN $p |- ( ( K e. HL /\ S C_ A )
                  -> ( ._|_ ` ( ._|_ ` ( ._|_ ` S ) ) ) = ( ._|_ ` S ) ) $=
      ( chlt wcel wss wa club cfv cpmap coc cbs wceq ccla hlclat eqid atssbase
      mpan2 clatlubcl syl2an polpmapN syldan 2polvalN fveq2d polval2N 3eqtr4d
      sstr ) CGHZBAIZJZBCKLZLZCMLZLZDLZUOCNLZLUPLZBDLZDLZDLVAUKULUOCOLZHZURUTPU
      KCQHBVCIZVDULCRULAVCIVEAVCCVCSZETBAVCUJUAVCBUNCVFUNSZUBUCVCDCUPUSUOVFUSSZ
      UPSZFUDUEUMVBUQDAUNCUPDBVGEVIFUFUGADUNCUPUSBVGVHEVIFUHUI $.

    $( Contraposition law for polarity.  Remark in [Holland95] p. 223.
       (Contributed by NM, 23-Mar-2012.)  (New usage is discouraged.) $)
    polcon3N $p |- ( ( K e. HL /\ Y C_ A /\ X C_ Y )
      -> ( ._|_ ` Y ) C_ ( ._|_ ` X ) ) $=
      ( vp chlt wcel wss w3a cv coc cfv ciin cin wceq eqid polvalN cpmap iinss1
      simp3 sslin 3syl 3adant3 simp1 simp2 sstrd syl2anc 3sstr4d ) BIJZEAKZDEKZ
      LZAHEHMBNOZOBUAOZOZPZQZAHDURPZQZECOZDCOZUOUNUSVAKUTVBKULUMUNUCZHDEURUBUSV
      AAUDUEULUMVCUTRUNAICBUQUPEHUPSZFUQSZGTUFUOULDAKVDVBRULUMUNUGUODEAVEULUMUN
      UHUIAICBUQUPDHVFFVGGTUJUK $.

    $( Contraposition law for polarity.  (Contributed by NM, 6-Mar-2012.)
       (New usage is discouraged.) $)
    2polcon4bN $p |- ( ( K e. HL /\ X C_ A /\ Y C_ A ) ->
      ( ( ._|_ ` ( ._|_ ` X ) ) C_ ( ._|_ ` ( ._|_ ` Y ) ) <->
        ( ._|_ ` Y ) C_ ( ._|_ ` X ) ) ) $=
      ( wss wa simpl1 polssatN 3adant2 adantr simpr polcon3N syl3anc wceq 3polN
      cfv ex chlt wcel w3a simp1 syl2anc 3adant3 sseq12d sylibd impbid ) BUAUBZ
      DAHZEAHZUCZDCSZCSZECSZCSZHZUPUNHZUMURUQCSZUOCSZHZUSUMURVBUMURIUJUQAHZURVB
      UJUKULURJUMVCURUMUJUPAHZVCUJUKULUDUJULVDUKABCEFGKLABCUPFGKUEMUMURNABCUOUQ
      FGOPTUMUTUPVAUNUJULUTUPQUKAEBCFGRLUJUKVAUNQULADBCFGRUFUGUHUMUSURUMUSIUJUN
      AHZUSURUJUKULUSJUMVEUSUJUKVEULABCDFGKUFMUMUSNABCUPUNFGOPTUI $.

    $( Contraposition law for polarity.  (Contributed by NM, 23-Mar-2012.)
       (New usage is discouraged.) $)
    polcon2N $p |- ( ( K e. HL /\ Y C_ A /\ X C_ ( ._|_ ` Y ) )
          -> Y C_ ( ._|_ ` X ) ) $=
      ( chlt wcel wss cfv w3a 2polssN 3adant3 polssatN polcon3N syld3an2 sstrd
      ) BHIZEAJZDECKZJZLEUACKZDCKZSTEUCJUBABCEFGMNSUAAJZTUBUCUDJSTUEUBABCEFGONA
      BCDUAFGPQR $.

    $( Contraposition law for polarity.  (Contributed by NM, 23-Mar-2012.)
       (New usage is discouraged.) $)
    polcon2bN $p |- ( ( K e. HL /\ X C_ A /\ Y C_ A )
       -> ( X C_ ( ._|_ ` Y ) <-> Y C_ ( ._|_ ` X ) ) ) $=
      ( chlt wss w3a cfv wa simpl1 simpl3 simpr polcon2N syl3anc simpl2 impbida
      wcel ) BHTZDAIZEAIZJZDECKIZEDCKIZUDUELUAUCUEUFUAUBUCUEMUAUBUCUENUDUEOABCD
      EFGPQUDUFLUAUBUFUEUAUBUCUFMUAUBUCUFRUDUFOABCEDFGPQS $.
  $}

  ${
    pclss2pol.a $e |- A = ( Atoms ` K ) $.
    pclss2pol.o $e |- ._|_ = ( _|_P ` K ) $.
    pclss2pol.c $e |- U = ( PCl ` K ) $.
    $( The projective subspace closure is a subset of closed subspace closure.
       (Contributed by NM, 12-Sep-2013.)  (New usage is discouraged.) $)
    pclss2polN $p |- ( ( K e. HL /\ X C_ A )
            -> ( U ` X ) C_ ( ._|_ ` ( ._|_ ` X ) ) ) $=
      ( chlt wcel wss cfv simpl 2polssN polssatN syldan pclssN syl3anc cpsubsp
      wa wceq eqid polsubN pclidN sseqtrd ) CIJZEAKZTZEBLZEDLZDLZBLZUKUHUFEUKKU
      KAKZUIULKUFUGMACDEFGNUFUGUJAKZUMACDEFGOZACDUJFGOPABCIEUKFHQRUFUGUKCSLZJZU
      LUKUAUFUGUNUQUOAUPCDUJFUPUBZGUCPUPBCIUKURHUDPUE $.
  $}

  ${
    pcl0.c $e |- U = ( PCl ` K ) $.
    $( The projective subspace closure of the empty subspace.  (Contributed by
       NM, 12-Sep-2013.)  (New usage is discouraged.) $)
    pcl0N $p |- ( K e. HL -> ( U ` (/) ) = (/) ) $=
      ( chlt wcel c0 cfv wss wceq cpolN catm 0ss eqid pclss2polN 2pol0N sseqtrd
      mpan2 ss0 syl ) BDEZFAGZFHUAFITUAFBJGZGUBGZFTFBKGZHUAUCHUDLUDABUBFUDMUBMZ
      CNQBUBUEOPUARS $.
  $}

  ${
    pcl0b.a $e |- A = ( Atoms ` K ) $.
    pcl0b.c $e |- U = ( PCl ` K ) $.
    $( The projective subspace closure of the empty subspace.  (Contributed by
       NM, 13-Sep-2013.)  (New usage is discouraged.) $)
    pcl0bN $p |- ( ( K e. HL /\ P C_ A ) -> ( ( U ` P ) = (/) <-> P = (/) ) )
        $=
      ( chlt wcel wss wa cfv wceq pclssidN eqimss sylan9ss ss0 syl fveq2 pcl0N
      c0 sylan9eqr adantlr impbida ) DGHZBAIZJZBCKZTLZBTLZUFUHJBTIUIUFUHBUGTACD
      GBEFMUGTNOBPQUDUIUHUEUIUDUGTCKTBTCRCDFSUAUBUC $.
  $}

  ${
    $d p B $.  $d p K $.  $d p X $.
    pmaplub.b $e |- B = ( Base ` K ) $.
    pmaplub.u $e |- U = ( lub ` K ) $.
    pmaplub.m $e |- M = ( pmap ` K ) $.
    $( The LUB of a projective map is the projective map's argument.
       (Contributed by NM, 13-Mar-2012.)  (New usage is discouraged.) $)
    pmaplubN $p |- ( ( K e. HL /\ X e. B ) -> ( U ` ( M ` X ) ) = X ) $=
      ( vp chlt wcel wa cfv cv cple wbr catm crab eqid pmapval fveq2d coml ccla
      cal w3a wceq hlomcmat atlatmstc sylan eqtrd ) CJKZEAKZLZEDMZBMINECOMZPICQ
      MZRZBMZEUMUNUQBUPAJCUODEIFUOSZUPSZHTUAUKCUBKCUCKCUDKUEULUREUFCUGIUPABCUOE
      FUSGUTUHUIUJ $.
  $}

  ${
    sspmaplub.u $e |- U = ( lub ` K ) $.
    sspmaplub.a $e |- A = ( Atoms ` K ) $.
    sspmaplub.m $e |- M = ( pmap ` K ) $.
    $( A set of atoms is a subset of the projective map of its LUB.
       (Contributed by NM, 6-Mar-2012.)  (New usage is discouraged.) $)
    sspmaplubN $p |- ( ( K e. HL /\ S C_ A ) -> S C_ ( M ` ( U ` S ) ) ) $=
      ( chlt wcel wss wa cpolN cfv eqid 2polssN 2polvalN sseqtrd ) DIJBAKLBBDMN
      ZNSNBCNENADSBGSOZPACDESBFGHTQR $.

    $( Double projective map of an LUB. (Contributed by NM, 6-Mar-2012.)
       (New usage is discouraged.) $)
    2pmaplubN $p |- ( ( K e. HL /\ S C_ A )
         -> ( M ` ( U ` ( M ` ( U ` S ) ) ) ) = ( M ` ( U ` S ) ) ) $=
      ( chlt wcel wss wa cpolN cfv eqid 2polvalN fveq2d wceq syldan eqtr3d ccla
      polssatN 3polN cbs hlclat atssbase sstr mpan2 clatlubcl syl2an pmapssat )
      DIJZBAKZLZBDMNZNZUONZBCNZENZCNENZUSUNUSUONZUONZUQUTUNUQUONZUONZVBUQUNVCVA
      UOUNUQUSUOACDEUOBFGHUOOZPZQQULUMUPAKVDUQRADUOBGVEUBAUPDUOGVEUCSTULUMUSAKZ
      VBUTRULUMURDUDNZJZVGULDUAJBVHKZVIUMDUEUMAVHKVJAVHDVHOZGUFBAVHUGUHVHBCDVKF
      UIUJAVHIDEURVKGHUKSACDEUOUSFGHVEPSTVFT $.
  $}

  ${
    paddun.a $e |- A = ( Atoms ` K ) $.
    paddun.p $e |- .+ = ( +P ` K ) $.
    paddun.o $e |- ._|_ = ( _|_P ` K ) $.
    $( The closure of the projective sum of two sets of atoms is the same as
       the closure of their union.  (Closure is actually double polarity, which
       can be trivially inferred from this theorem using ~ fveq2d .)
       (Contributed by NM, 6-Mar-2012.)  (New usage is discouraged.) $)
    paddunN $p |- ( ( K e. HL /\ S C_ A /\ T C_ A )
         -> ( ._|_ ` ( S .+ T ) ) = ( ._|_ ` ( S u. T ) ) ) $=
      ( chlt wcel wss co cfv syl3anc eqid syl6ss clatlubcl syl2anc wceq w3a cun
      simp1 paddssat paddunssN polcon3N club cpmap cple wbr cbs hlclat 3ad2ant1
      ccla unss biimpi 3adant1 atssbase pmapssbaN polssatN 3adant3 3adant2 3jca
      cjn 2polssN paddss12 sylc 2polvalN oveq12d sseqtrd clat hllat simp2 simp3
      wa jca pmapjoin sstrd lubun fveq2d sseqtr4d lubss pmaple 2pmaplubN eqtr4d
      wb mpbid 3sstr4d 2polcon4bN eqssd ) EJKZCALZDALZUAZCDBMZFNZCDUBZFNZWNWKWO
      ALZWQWOLWPWRLWKWLWMUCZAJBECDGHUDZAJBECDGHUEAEFWQWOGIUFOWNWPFNZWRFNZLZWRWP
      LZWNWOEUGNZNZEUHNZNZWQXFNZXHNZXFNZXHNZXBXCWNXGXLEUINZUJZXIXMLZWNEUNKZXKEU
      KNZLZWOXKLXOWKWLXQWMEULUMZWNWKXJXRKZXSWTWNXQWQXRLYAXTWNWQAXRWLWMWQALZWKWL
      WMVOYBCDAUOUPUQZAXREXRPZGURZQXRWQXFEYDXFPZRSXRJEXHXJYDXHPZUSSZWNWOCXFNZDX
      FNZEVDNZMZXHNZXKWNWOYIXHNZYJXHNZBMZYMWNWOCFNZFNZDFNZFNZBMZYPWNWKYRALZYTAL
      ZUACYRLZDYTLZVOWOUUALWNWKUUBUUCWTWNWKYQALZUUBWTWKWLUUFWMAEFCGIUTVAAEFYQGI
      UTSWNWKYSALZUUCWTWKWMUUGWLAEFDGIUTVBAEFYSGIUTSVCWNUUDUUEWKWLUUDWMAEFCGIVE
      VAWKWMUUEWLAEFDGIVEVBVPAJBEYTCYRDGHVFVGWNYRYNYTYOBWKWLYRYNTWMAXFEXHFCYFGY
      GIVHVAWKWMYTYOTWLAXFEXHFDYFGYGIVHVBVIVJWNEVKKZYIXRKZYJXRKZYPYMLWKWLUUHWME
      VLUMWNXQCXRLZUUIXTWNCAXRWKWLWMVMYEQZXRCXFEYDYFRSWNXQDXRLZUUJXTWNDAXRWKWLW
      MVNYEQZXRDXFEYDYFRSXRBYKEXHYIYJYDYKPZYGHVQOVRWNXJYLXHWNXQUUKUUMXJYLTXTUUL
      UUNXRCDXFYKEYDUUOYFVSOVTWAXRWOXKXFEXNYDXNPZYFWBOWNWKXGXRKZXLXRKZXOXPWFWTW
      NXQWOXRLUUQXTWNWOAXRXAYEQXRWOXFEYDYFRSWNXQXSUURXTYHXRXKXFEYDYFRSXREXNXHXG
      XLYDUUPYGWCOWGWNWKWSXBXITWTXAAXFEXHFWOYFGYGIVHSWNXCXKXMWNWKYBXCXKTWTYCAXF
      EXHFWQYFGYGIVHSWNWKYBXMXKTWTYCAWQXFEXHYFGYGWDSWEWHWNWKWSYBXDXEWFWTXAYCAEF
      WOWQGIWIOWGWJ $.

    $( De Morgan's law for polarity of projective sum.  ( ~ oldmj1 analog.)
       (Contributed by NM, 7-Mar-2012.)  (New usage is discouraged.) $)
    poldmj1N $p |- ( ( K e. HL /\ S C_ A /\ T C_ A )
         -> ( ._|_ ` ( S .+ T ) ) = ( ( ._|_ ` S ) i^i ( ._|_ ` T ) ) ) $=
      ( wcel wss co cfv cin wceq eqid polval2N syl2anc 3ad2ant1 syl3anc w3a cun
      chlt club coc cpmap paddunN simp1 unss biimpi 3adant1 cmee cops hlop ccla
      wa cbs hlclat simp2 atssbase syl6ss clatlubcl opoccl simp3 pmapmeet lubun
      cjn fveq2d col hlol oldmj1 eqtrd 3adant3 3adant2 ineq12d 3eqtr4d 3eqtrd )
      EUCJZCAKZDAKZUAZCDBLFMCDUBZFMZWBEUDMZMZEUEMZMZEUFMZMZCFMZDFMZNZABCDEFGHIU
      GWAVRWBAKZWCWIOVRVSVTUHZVSVTWMVRVSVTUPWMCDAUIUJUKAFWDEWHWFWBWDPZWFPZGWHPZ
      IQRWACWDMZWFMZDWDMZWFMZEULMZLZWHMZWSWHMZXAWHMZNZWIWLWAVRWSEUQMZJZXAXHJZXD
      XGOWNWAEUMJZWRXHJZXIVRVSXKVTEUNSZWAEUOJZCXHKZXLVRVSXNVTEURSZWACAXHVRVSVTU
      SAXHEXHPZGUTZVAZXHCWDEXQWOVBRZXHEWFWRXQWPVCRWAXKWTXHJZXJXMWAXNDXHKZYAXPWA
      DAXHVRVSVTVDXRVAZXHDWDEXQWOVBRZXHEWFWTXQWPVCRAXHWHEXBWSXAXQXBPZGWQVETWAWG
      XCWHWAWGWRWTEVGMZLZWFMZXCWAWEYGWFWAXNXOYBWEYGOXPXSYCXHCDWDYFEXQYFPZWOVFTV
      HWAEVIJZXLYAYHXCOVRVSYJVTEVJSXTYDXHYFEXBWFWRWTXQYIYEWPVKTVLVHWAWJXEWKXFVR
      VSWJXEOVTAFWDEWHWFCWOWPGWQIQVMVRVTWKXFOVSAFWDEWHWFDWOWPGWQIQVNVOVPVQ $.
  $}

  ${
    pmapj2.b $e |- B = ( Base ` K ) $.
    pmapj2.j $e |- .\/ = ( join ` K ) $.
    pmapj2.m $e |- M = ( pmap ` K ) $.
    pmapj2.p $e |- .+ = ( +P ` K ) $.
    pmapj2.o $e |- ._|_ = ( _|_P ` K ) $.
    $( The projective map of the join of two lattice elements.  (Contributed by
       NM, 14-Mar-2012.)  (New usage is discouraged.) $)
    pmapj2N $p |- ( ( K e. HL /\ X e. B /\ Y e. B ) -> ( M ` ( X .\/ Y ) ) =
      ( ._|_ ` ( ._|_ ` ( ( M ` X ) .+ ( M ` Y ) ) ) ) ) $=
      ( chlt wcel cfv co wceq eqid syl2anc w3a coc cmee clat 3ad2ant1 cops hlop
      simp1 hllat simp2 opoccl simp3 latmcl syl3anc cin 3adant3 3adant2 ineq12d
      polpmapN catm wss pmapssat poldmj1N pmapmeet 3eqtr4rd fveq2d hlol syl3an1
      col oldmm4 3eqtr3rd ) DNOZGAOZHAOZUAZGDUBPZPZHVPPZDUCPZQZEPZFPZVTVPPZEPZG
      EPZHEPZBQFPZFPGHCQZEPVOVLVTAOZWBWDRVLVMVNUHZVODUDOZVQAOZVRAOZWIVLVMWKVNDU
      IUEVODUFOZVMWLVLVMWNVNDUGUEZVLVMVNUJADVPGIVPSZUKTZVOWNVNWMWOVLVMVNULADVPH
      IWPUKTZADVSVQVRIVSSZUMUNAFDEVPVTIWPKMUSTVOWAWGFVOWEFPZWFFPZUOZVQEPZVREPZU
      OZWGWAVOWTXCXAXDVLVMWTXCRVNAFDEVPGIWPKMUSUPVLVNXAXDRVMAFDEVPHIWPKMUSUQURV
      OVLWEDUTPZVAZWFXFVAZWGXBRWJVLVMXGVNXFANDEGIXFSZKVBUPVLVNXHVMXFANDEHIXIKVB
      UQXFBWEWFDFXILMVCUNVOVLWLWMWAXERWJWQWRXFAEDVSVQVRIWSXIKVDUNVEVFVOWCWHEVLD
      VIOVMVNWCWHRDVGACDVSVPGHIJWSWPVJVHVFVK $.
  $}

  ${
    pmapocj.b $e |- B = ( Base ` K ) $.
    pmapocj.j $e |- .\/ = ( join ` K ) $.
    pmapocj.m $e |- ./\ = ( meet ` K ) $.
    pmapocj.o $e |- ._|_ = ( oc ` K ) $.
    pmapocj.f $e |- F = ( pmap ` K ) $.
    pmapocj.p $e |- .+ = ( +P ` K ) $.
    pmapocj.r $e |- N = ( _|_P ` K ) $.
    $( The projective map of the orthocomplement of the join of two lattice
       elements.  (Contributed by NM, 14-Mar-2012.)
       (New usage is discouraged.) $)
    pmapocjN $p |- ( ( K e. HL /\ X e. B /\ Y e. B )
    -> ( F ` ( ._|_ ` ( X .\/ Y ) ) ) = ( N ` ( ( F ` X ) .+ ( F ` Y ) ) ) ) $=
      ( chlt wcel cfv w3a pmapj2N fveq2d wceq simp1 clat hllat syl3an1 polpmapN
      co latjcl syl2anc catm wss eqid pmapssat 3adant3 3adant2 paddssat syl3anc
      3polN 3eqtr3d ) ERSZIASZJASZUAZIJDUJZCTZGTZICTZJCTZBUJZGTZGTZGTZVGHTCTZVM
      VFVHVNGABDECGIJKLOPQUBUCVFVCVGASZVIVPUDVCVDVEUEZVCEUFSVDVEVQEUGADEIJKLUKU
      HAGECHVGKNOQUIULVFVCVLEUMTZUNZVOVMUDVRVFVCVJVSUNZVKVSUNZVTVRVCVDWAVEVSARE
      CIKVSUOZOUPUQVCVEWBVDVSARECJKWCOUPURVSRBEVJVKWCPUSUTVSVLEGWCQVAULVB $.
  $}

  ${
    $d p A $.  $d p K $.  $d p M $.  $d p ._|_ $.  $d p Q $.
    polat.o $e |- ._|_ = ( oc ` K ) $.
    polat.a $e |- A = ( Atoms ` K ) $.
    polat.m $e |- M = ( pmap ` K ) $.
    polat.p $e |- P = ( _|_P ` K ) $.
    $( The polarity of the singleton of an atom (i.e. a point).  (Contributed
       by NM, 14-Jan-2012.)  (New usage is discouraged.) $)
    polatN $p |- ( ( K e. OL /\ Q e. A )
                  -> ( P ` { Q } ) = ( M ` ( ._|_ ` Q ) ) ) $=
      ( vp col wcel wa csn cfv cv cin wss wceq ciin snssi polvalN sylan2 fveq2d
      fveq2 iinxsng adantl ineq2d cbs cops atbase opoccl syl2an pmapssat syldan
      olop eqid sseqin2 sylib 3eqtrd ) DLMZCAMZNZCOZBPZAKVEKQZFPZEPZUAZRZACFPZE
      PZRZVMVCVBVEASVFVKTCAUBALBDEFVEKGHIJUCUDVDVJVMAVCVJVMTVBKCVIVMAVGCTVHVLEV
      GCFUFUEUGUHUIVDVMASZVNVMTVBVCVLDUJPZMZVOVBDUKMCVPMVQVCDUQAVPCDVPURZHULVPD
      FCVRGUMUNAVPLDEVLVRHIUOUPVMAUSUTVA $.
  $}

  ${
    2polat.a $e |- A = ( Atoms ` K ) $.
    2polat.p $e |- P = ( _|_P ` K ) $.
    $( Double polarity of the singleton of an atom (i.e. a point).
       (Contributed by NM, 25-Jan-2012.)  (New usage is discouraged.) $)
    2polatN $p |- ( ( K e. HL /\ Q e. A )
                  -> ( P ` ( P ` { Q } ) ) = { Q } ) $=
      ( chlt wcel wa csn cfv coc cpmap col wceq hlol eqid fveq2d syl2an eqtrd
      polatN sylan cbs cops hlop atbase opoccl polpmapN syldan opococ pmapat )
      DGHZCAHZIZCJZBKZBKCDLKZKZDMKZKZBKZUOUNUPUTBULDNHUMUPUTODPABCDUSUQUQQZEUSQ
      ZFUAUBRUNVAURUQKZUSKZUOULUMURDUCKZHZVAVEOULDUDHZCVFHZVGUMDUEZAVFCDVFQZEUF
      ZVFDUQCVKVBUGSVFBDUSUQURVKVBVCFUHUIUNVECUSKUOUNVDCUSULVHVIVDCOUMVJVLVFDUQ
      CVKVBUJSRACDUSEVCUKTTT $.

    $( The intersection of a set of atoms and its polarity is empty.
       Definition of nonsingular in [Holland95] p. 214.  (Contributed by NM,
       29-Jan-2012.)  (New usage is discouraged.) $)
    pnonsingN $p |- ( ( K e. HL /\ X C_ A ) -> ( X i^i ( P ` X ) ) = (/) ) $=
      ( chlt wcel wss wa cfv cin c0 wceq 2polssN ssrin syl eqid adantr syl2anc
      club cpmap coc 2polvalN polval2N ineq12d cmee co cp0 cops cbs hlop hlclat
      ccla atssbase sstr mpan2 clatlubcl syl2an opnoncon fveq2d opoccl pmapmeet
      simpl syl3anc cal hlatl pmap0 3eqtr3d eqtrd sseqtrd ss0b sylib ) CGHZDAIZ
      JZDDBKZLZMIVRMNVPVRVQBKZVQLZMVPDVSIVRVTIACBDEFODVSVQPQVPVTDCUAKZKZCUBKZKZ
      WBCUCKZKZWCKZLZMVPVSWDVQWGAWACWCBDWARZEWCRZFUDABWACWCWEDWIWERZEWJFUEUFVPW
      BWFCUGKZUHZWCKZCUIKZWCKZWHMVPWMWOWCVPCUJHZWBCUKKZHZWMWONVNWQVOCULSZVNCUNH
      DWRIZWSVOCUMVOAWRIXAAWRCWRRZEUODAWRUPUQWRDWACXBWIURUSZWRCWLWEWBWOXBWKWLRZ
      WORZUTTVAVPVNWSWFWRHZWNWHNVNVOVDXCVPWQWSXFWTXCWRCWEWBXBWKVBTAWRWCCWLWBWFX
      BXDEWJVCVEVPCVFHZWPMNVNXGVOCVGSCWCWOXEWJVHQVIVJVKVRVLVM $.
  $}

  $c PSubCl $.

  $( Extend class notation with set of all closed projective subspaces for a
     Hilbert lattice. $)
  cpscN $a class PSubCl $.

  ${
    $d k s $.
    $( Define set of all closed projective subspaces, which are those sets of
       atoms that equal their double polarity.  Based on definition in
       [Holland95] p. 223.  (Contributed by NM, 23-Jan-2012.) $)
    df-psubclN $a |- PSubCl = ( k e. _V |-> { s | ( s C_ ( Atoms ` k )
       /\ ( ( _|_P ` k ) ` ( ( _|_P ` k ) ` s ) ) = s ) } ) $.
  $}

  ${
    $d k s A $.  $d k s K $.  $d k ._|_ $.
    psubclset.a $e |- A = ( Atoms ` K ) $.
    psubclset.p $e |- ._|_ = ( _|_P ` K ) $.
    psubclset.c $e |- C = ( PSubCl ` K ) $.
    $( The set of closed projective subspaces in a Hilbert lattice.
       (Contributed by NM, 23-Jan-2012.)  (New usage is discouraged.) $)
    psubclsetN $p |- ( K e. B -> C = { s | ( s C_ A /\
         ( ._|_ ` ( ._|_ ` s ) ) = s ) } ) $=
      ( vk wcel cvv cv wss cfv wceq wa cab catm cpolN elex cpscN syl6eqr sseq2d
      fveq2 fveq1d fveq12d eqeq1d anbi12d abbidv df-psubclN cpw fvex pwex selpw
      eqeltri anbi1i abbii ssab2 eqsstr3i ssexi fvmpt syl5eq syl ) DBKDLKZCFMZA
      NZVFEOZEOZVFPZQZFRZPDBUAVECDUBOVLIJDVFJMZSOZNZVFVMTOZOZVPOZVFPZQZFRVLLUBV
      MDPZVTVKFWAVOVGVSVJWAVNAVFWAVNDSOZAVMDSUEGUCUDWAVRVIVFWAVQVHVPEWAVPDTOEVM
      DTUEHUCZWAVFVPEWCUFUGUHUIUJJFUKVLAULZAAWBLGDSUMUPUNVLVFWDKZVJQZFRWDWFVKFW
      EVGVJFAUOUQURVJFWDUSUTVAVBVCVD $.

    $d x A $.  $d x K $.  $d x ._|_ $.  $d x X $.
    $( The predicate "is a closed projective subspace".  (Contributed by NM,
       23-Jan-2012.)  (New usage is discouraged.) $)
    ispsubclN $p |- ( K e. D -> ( X e. C <-> ( X C_ A
         /\ ( ._|_ ` ( ._|_ ` X ) ) = X ) ) ) $=
      ( vx wcel cv wss cfv wceq wa cab psubclsetN cvv catm eleq2d eqeltri sseq1
      fvex ssex adantr fveq2 fveq2d id eqeq12d anbi12d elab3 syl6bb ) DCKZFBKFJ
      LZAMZUOENZENZUOOZPZJQZKFAMZFENZENZFOZPZUNBVAFACBDEJGHIRUAUTVFJFVBFSKVEFAA
      DTNSGDTUDUBUEUFUOFOZUPVBUSVEUOFAUCVGURVDUOFVGUQVCEUOFEUGUHVGUIUJUKULUM $.

    $( Property of a closed projective subspace.  (Contributed by NM,
       23-Jan-2012.)  (New usage is discouraged.) $)
    psubcliN $p |- ( ( K e. D /\ X e. C )
         -> ( X C_ A /\ ( ._|_ ` ( ._|_ ` X ) ) = X ) ) $=
      ( wcel wss cfv wceq wa ispsubclN biimpa ) DCJFBJFAKFELELFMNABCDEFGHIOP $.
  $}

  ${
    psubcli2.p $e |- ._|_ = ( _|_P ` K ) $.
    psubcli2.c $e |- C = ( PSubCl ` K ) $.
    $( Property of a closed projective subspace.  (Contributed by NM,
       23-Jan-2012.)  (New usage is discouraged.) $)
    psubcli2N $p |- ( ( K e. D /\ X e. C ) -> ( ._|_ ` ( ._|_ ` X ) ) = X ) $=
      ( wcel catm cfv wss wceq eqid ispsubclN simplbda ) CBHEAHECIJZKEDJDJELPAB
      CDEPMFGNO $.
  $}

  ${
    psubclsub.s $e |- S = ( PSubSp ` K ) $.
    psubclsub.c $e |- C = ( PSubCl ` K ) $.
    $( A closed projective subspace is a projective subspace.  (Contributed by
       NM, 23-Jan-2012.)  (New usage is discouraged.) $)
    psubclsubN $p |- ( ( K e. HL /\ X e. C ) -> X e. S ) $=
      ( chlt wcel wa cpolN cfv eqid psubcli2N catm wceq psubcliN simpld polsubN
      wss syldan psubssat eqeltrrd ) CGHZDAHZIZDCJKZKZUFKZDBAGCUFDUFLZFMUCUDUGC
      NKZSZUHBHUCUDUGBHZUKUCUDDUJSZULUEUMUHDOUJAGCUFDUJLZUIFPQUJBCUFDUNEUIRTUJG
      BCUGUNEUATUJBCUFUGUNEUIRTUB $.
  $}

  ${
    psubclssat.a $e |- A = ( Atoms ` K ) $.
    psubclssat.c $e |- C = ( PSubCl ` K ) $.
    $( A closed projective subspace is a set of atoms.  (Contributed by NM,
       25-Jan-2012.)  (New usage is discouraged.) $)
    psubclssatN $p |- ( ( K e. D /\ X e. C ) -> X C_ A ) $=
      ( wcel wa wss cpolN cfv wceq eqid psubcliN simpld ) DCHEBHIEAJEDKLZLQLEMA
      BCDQEFQNGOP $.
  $}

  ${
    pmapidcl.u $e |- U = ( lub ` K ) $.
    pmapidcl.m $e |- M = ( pmap ` K ) $.
    pmapidcl.c $e |- C = ( PSubCl ` K ) $.
    $( Projective map of the LUB of a closed subspace.  (Contributed by NM,
       3-Feb-2012.)  (New usage is discouraged.) $)
    pmapidclN $p |- ( ( K e. HL /\ X e. C ) -> ( M ` ( U ` X ) ) = X ) $=
      ( chlt wcel wa cpolN cfv catm wss wceq eqid psubclssatN 2polvalN syldan
      psubcli2N eqtr3d ) CIJZEAJZKECLMZMUEMZEBMDMZEUCUDECNMZOUFUGPUHAICEUHQZHRU
      HBCDUEEFUIGUEQZSTAICUEEUJHUAUB $.
  $}

  ${
    0psubcl.c $e |- C = ( PSubCl ` K ) $.
    $( The empty set is a closed projective subspace.  (Contributed by NM,
       25-Jan-2012.)  (New usage is discouraged.) $)
    0psubclN $p |- ( K e. HL -> (/) e. C ) $=
      ( chlt wcel c0 catm cfv wss cpolN wceq 0ss a1i 2pol0N ispsubclN mpbir2and
      eqid ) BDEZFAEFBGHZIZFBJHZHUAHFKTRSLMBUAUAQZNSADBUAFSQUBCOP $.
  $}

  ${
    1psubcl.a $e |- A = ( Atoms ` K ) $.
    1psubcl.c $e |- C = ( PSubCl ` K ) $.
    $( The set of all atoms is a closed projective subspace.  (Contributed by
       NM, 25-Jan-2012.)  (New usage is discouraged.) $)
    1psubclN $p |- ( K e. HL -> A e. C ) $=
      ( chlt wcel wss cpolN cfv wceq ssid a1i eqid pol1N fveq2d pol0N ispsubclN
      c0 eqtrd mpbir2and ) CFGZABGAAHZACIJZJZUDJZAKUCUBALMUBUFSUDJAUBUESUDACUDD
      UDNZOPAFCUDDUGQTABFCUDADUGERUA $.

    $( A point (singleton of an atom) is a closed projective subspace.
       (Contributed by NM, 25-Jan-2012.)  (New usage is discouraged.) $)
    atpsubclN $p |- ( ( K e. HL /\ Q e. A ) -> { Q } e. C ) $=
      ( chlt wcel wa csn wss cpolN cfv wceq snssi adantl eqid 2polatN ispsubclN
      wb adantr mpbir2and ) DGHZCAHZICJZBHZUEAKZUEDLMZMUHMUENZUDUGUCCAOPAUHCDEU
      HQZRUCUFUGUIITUDABGDUHUEEUJFSUAUB $.
  $}

  ${
    pmapsubcl.b $e |- B = ( Base ` K ) $.
    pmapsubcl.m $e |- M = ( pmap ` K ) $.
    pmapsubcl.c $e |- C = ( PSubCl ` K ) $.
    $( A projective map value is a closed projective subspace.  (Contributed by
       NM, 24-Jan-2012.)  (New usage is discouraged.) $)
    pmapsubclN $p |- ( ( K e. HL /\ X e. B ) -> ( M ` X ) e. C ) $=
      ( chlt wcel wa cfv catm wss cpolN wceq eqid pmapssat 2polpmapN wb adantr
      ispsubclN mpbir2and ) CIJZEAJZKEDLZBJZUFCMLZNZUFCOLZLUJLUFPZUHAICDEFUHQZG
      RACDUJEFGUJQZSUDUGUIUKKTUEUHBICUJUFULUMHUBUAUC $.

    $d y B $.  $d y K $.  $d y M $.  $d y X $.
    $( Alternate predicate for "is a closed projective subspace".  Remark in
       [Holland95] p. 223.  (Contributed by NM, 24-Jan-2012.)
       (New usage is discouraged.) $)
    ispsubcl2N $p |- ( K e. HL -> ( X e. C <-> E. y e. B X = ( M ` y ) ) ) $=
      ( chlt wcel cfv wss wceq wa eqid adantr syl2anc ex wi catm wrex ispsubclN
      cpolN club coc cops hlop hlclat polssatN atssbase syl6ss clatlubcl opoccl
      cv ccla adantrd polval2N syldan eqeq1 biimpcd syl6 impd jcad fveq2 eqeq2d
      rspcev pmapssat 2polpmapN sseq1 fveq2d eqeq12d anbi12d biimprcd rexlimdva
      id impbid bitrd ) DJKZFCKFDUALZMZFDUDLZLZWBLZFNZOZFAUOZELZNZABUBZVTCJDWBF
      VTPZWBPZIUCVSWFWJVSWFWCDUELZLZDUFLZLZBKZFWPELZNZOWJVSWFWQWSVSWAWQWEVSWAWQ
      VSWAOZDUGKZWNBKZWQVSXAWADUHQWTDUPKZWCBMXBVSXCWADUIQWTWCVTBVTDWBFWKWLUJZVT
      BDGWKUKULBWCWMDGWMPZUMRBDWOWNGWOPZUNRSUQVSWAWEWSVSWAWDWRNZWEWSTVSWAXGVSWA
      WCVTMXGXDVTWBWMDEWOWCXEXFWKHWLURUSSWEXGWSWDFWRUTVAVBVCVDWIWSAWPBWGWPNWHWR
      FWGWPEVEVFVGVBVSWIWFABVSWGBKOWHVTMZWHWBLZWBLZWHNZWIWFTVTBJDEWGGWKHVHBDEWB
      WGGHWLVIWIWFXHXKOWIWAXHWEXKFWHVTVJWIWDXJFWHWIWCXIWBFWHWBVEVKWIVPVLVMVNRVO
      VQVR $.
  $}

  ${
    psubclin.c $e |- C = ( PSubCl ` K ) $.
    $( The intersection of two closed subspaces is closed.  (Contributed by NM,
       25-Mar-2012.)  (New usage is discouraged.) $)
    psubclinN $p |- ( ( K e. HL /\ X e. C /\ Y e. C ) -> ( X i^i Y ) e. C ) $=
      ( chlt wcel cfv cin wceq 3ad2ant1 eqid psubclssatN 3adant3 syl6ss syl2anc
      wss clatlubcl 3adant2 syl3anc w3a club cmee co cpmap cbs ccla hlclat catm
      simp1 atssbase pmapmeet pmapidclN ineq12d eqtrd hllat pmapsubclN eqeltrrd
      clat latmcl ) BFGZCAGZDAGZUAZCBUBHZHZDVEHZBUCHZUDZBUEHZHZCDIZAVDVKVFVJHZV
      GVJHZIZVLVDVAVFBUFHZGZVGVPGZVKVOJVAVBVCUJZVDBUGGZCVPQVQVAVBVTVCBUHKZVDCBU
      IHZVPVAVBCWBQVCWBAFBCWBLZEMNWBVPBVPLZWCUKZOVPCVEBWDVELZRPZVDVTDVPQVRWAVDD
      WBVPVAVCDWBQVBWBAFBDWCEMSWEOVPDVEBWDWFRPZWBVPVJBVHVFVGWDVHLZWCVJLZULTVDVM
      CVNDVAVBVMCJVCAVEBVJCWFWJEUMNVAVCVNDJVBAVEBVJDWFWJEUMSUNUOVDVAVIVPGZVKAGV
      SVDBUSGZVQVRWKVAVBWLVCBUPKWGWHVPBVHVFVGWDWIUTTVPABVJVIWDWJEUQPUR $.
  $}

  ${
    paddatcl.a $e |- A = ( Atoms ` K ) $.
    paddatcl.p $e |- .+ = ( +P ` K ) $.
    paddatcl.c $e |- C = ( PSubCl ` K ) $.
    $( The projective sum of a closed subspace and an atom is a closed
       projective subspace.  (Contributed by NM, 3-Feb-2012.)
       (New usage is discouraged.) $)
    paddatclN $p |- ( ( K e. HL /\ X e. C /\ Q e. A )
     -> ( X .+ { Q } ) e. C ) $=
      ( chlt wcel w3a csn co cfv wceq 3ad2ant1 eqid 3adant3 syl2anc cjn cbs wss
      club cpmap hlclat psubclssatN atssbase syl6ss clatlubcl pmapjat1 syld3an2
      ccla wa pmapidclN pmapat 3adant2 oveq12d eqtr2d simp1 clat hllat 3ad2ant3
      atbase latjcl syl3anc pmapsubclN eqeltrd ) EJKZFBKZDAKZLZFDMZCNZFEUDOZOZD
      EUAOZNZEUEOZOZBVLVTVPVSOZDVSOZCNZVNVIVPEUBOZKZVJVKVTWCPVLEUMKZFWDUCZWEVIV
      JWFVKEUFQVIVJWGVKVIVJUNFAWDABJEFGIUGAWDEWDRZGUHUISWDFVOEWHVORZUJTZAWDCDVQ
      EVSVPWHVQRZGVSRZHUKULVLWAFWBVMCVIVJWAFPVKBVOEVSFWIWLIUOSVIVKWBVMPVJADEVSG
      WLUPUQURUSVLVIVRWDKZVTBKVIVJVKUTVLEVAKZWEDWDKZWMVIVJWNVKEVBQWJVKVIWOVJAWD
      DEWHGVDVCWDVQEVPDWHWKVEVFWDBEVSVRWHWLIVGTVH $.
  $}

  ${
    $d p q w x y z A $.  $d p q w x y z U $.  $d p q w x y z K $.
    $d p q w x y z S $.  $d x y z X $.
    pclfincl.a $e |- A = ( Atoms ` K ) $.
    pclfincl.c $e |- U = ( PCl ` K ) $.
    pclfincl.s $e |- S = ( PSubCl ` K ) $.
    $( The projective subspace closure of a finite set of atoms is a closed
       subspace.  Compare the (non-closed) subspace version ~ pclfinN and also
       ~ pclcmpatN .  (Contributed by NM, 13-Sep-2013.)
       (New usage is discouraged.) $)
    pclfinclN $p |- ( ( K e. HL /\ X C_ A /\ X e. Fin ) -> ( U ` X ) e. S ) $=
      ( vw vp wcel chlt wss cfv cv wa wi c0 wceq syl2anc vx vy vz cfn csn sseq1
      vq cun anbi2d fveq2 eleq1d imbi12d pcl0N 0psubclN eqeltrd adantr vex snss
      anass anbi2i unss bitri bitr2i simpllr uneq1d uncom syl6eq fveq2d cpsubsp
      un0 eqtri simplrl cal hlatl simprr snatpsubN pclidN eqtrd atpsubclN exp43
      syl eqid wne cpadd co pclssidN ad2antlr unss1 simprl psubclssatN ad2antll
      snssi paddunssN syl3anc paddssat pclssN paddatclN psubclsubN sseqtrd wral
      sstrd wel cjn cple wbr wrex clat hllat pcl0bN necon3bid elpaddat syl31anc
      wb mpbird w3a simp1rl 3ad2ant1 simpl13 simpl sylbir simpl2 elpcliN adantl
      biimpri simpl3 psubspi2N syl33anc exp520 rexlimdv 3expia ralrimdv simplrr
      impd sylbid jca sylib elpclN sylibrd ssrdv eqssd pm2.61dane a2d syl5bi ex
      imp4b findcard2 3impib 3coml ) EUDKZDLKZEAMZECNZBKZUUIUUJUUKUUMUUJUAOZAMZ
      PZUUNCNZBKZQUUJRAMZPZRCNZBKZQUUJUBOZAMZPZUVCCNZBKZQZUUJUVCUCOZUEZUHZAMZPZ
      UVKCNZBKZQZUUJUUKPZUUMQUAUBUCEUUNRSZUUPUUTUURUVBUVRUUOUUSUUJUUNRAUFUIUVRU
      UQUVABUUNRCUJUKULUUNUVCSZUUPUVEUURUVGUVSUUOUVDUUJUUNUVCAUFUIUVSUUQUVFBUUN
      UVCCUJUKULUUNUVKSZUUPUVMUURUVOUVTUUOUVLUUJUUNUVKAUFUIUVTUUQUVNBUUNUVKCUJU
      KULUUNESZUUPUVQUURUUMUWAUUOUUKUUJUUNEAUFUIUWAUUQUULBUUNECUJUKULUUJUVBUUSU
      UJUVARBCDGUMBDHUNUOUPUVCUDKZUVHUVPUVMUVEUVIAKZPZUWBUVHPUVOUWDUUJUVDUWCPZP
      UVMUUJUVDUWCUSUWEUVLUUJUWEUVDUVJAMZPUVLUWCUWFUVDUVIAUCUQZURUTUVCUVJAVAVBZ
      UTVCUWBUVHUVEUWCUVOUWBUVEUVGUWCUVOQZUWBUVEUVGUWIQQUVCRUWBUVCRSZPZUVEUVGUW
      CUVOUWKUVEPZUVGUWCPZPZUVNUVJBUWNUVNUVJCNZUVJUWNUVKUVJCUWNUVKRUVJUHZUVJUWN
      UVCRUVJUWBUWJUVEUWMVDVEUWPUVJRUHUVJRUVJVFUVJVJVKVGVHUWNUUJUVJDVINZKZUWOUV
      JSUWKUUJUVDUWMVLZUWNDVMKZUWCUWRUWNUUJUWTUWSDVNWAUWLUVGUWCVOZAUVIUWQDFUWQW
      BZVPTUWQCDLUVJUXBGVQTVRUWNUUJUWCUVJBKUWSUXAABUVIDFHVSTUOVTUWBUVCRWCZPZUVE
      UVGUWCUVOUXDUVEPZUWMPZUVNUVFUVJDWDNZWEZBUXFUVNUXHUXFUVNUXHCNZUXHUXFUUJUVK
      UXHMUXHAMZUVNUXIMUXDUUJUVDUWMVLZUXFUVKUVFUVJUHZUXHUXFUVCUVFMZUVKUXLMUVEUX
      MUXDUWMACDLUVCFGWFWGUVCUVFUVJWHWAUXFUUJUVFAMZUWFUXLUXHMUXKUXFUUJUVGUXNUXK
      UXEUVGUWCWIZABLDUVFFHWJTZUWCUWFUXEUVGUVIAWLWKZALUXGDUVFUVJFUXGWBZWMWNXAUX
      FUUJUXNUWFUXJUXKUXPUXQALUXGDUVFUVJFUXRWOWNACDLUVKUXHFGWPWNUXFUUJUXHUWQKZU
      XIUXHSUXKUXFUUJUXHBKZUXSUXKUXFUUJUVGUWCUXTUXKUXOUXEUVGUWCVOZABUXGUVIDUVFF
      UXRHWQWNZBUWQDUXHUXBHWRTUWQCDLUXHUXBGVQTWSUXFUGUXHUVNUXFUGOZUXHKZUVKIOZMZ
      UGIXBZQZIUWQWTZUYCUVNKZUXFUYDUYHIUWQUXFUYDUYCAKZUYCJOZUVIDXCNZWEDXDNZXEZJ
      UVFXFZPZUYEUWQKZUYHQZUXFDXGKZUXNUWCUVFRWCZUYDUYQXMUXFUUJUYTUXKDXHWAUXPUYA
      UXFVUAUXCUWBUXCUVEUWMVDUXFUVFRUVCRUVEUVFRSUWJXMUXDUWMAUVCCDFGXIWGXJXNAUXG
      UVIUYCUYMDUYNUVFJUYNWBZUYMWBZFUXRXKXLUXFUYKUYPUYSUXEUWMUYKUYPUYSQUXEUWMUY
      KXOZUYOUYSJUVFVUDUYLUVFKZUYOUYRUYFUYGVUDVUEUYOXOZUYRUYFPZPZUUJUYRUYKJIXBZ
      UCIXBZUYOUYGVUFUUJVUGVUDVUEUUJUYOUUJUVDUXDUWMUYKXPXQUPZVUFUYRUYFWIZUXEUWM
      UYKVUEUYOVUGXRVUHUUJUVCUYEMZUYRVUEVUIVUKUYFVUMVUFUYRUYFVUMUVJUYEMZPZVUMUV
      CUVJUYEVAZVUMVUNXSXTWKVULVUDVUEUYOVUGYAUYLUWQCDLUVCUYEUXBGYBXLUYFVUJVUFUY
      RUYFVUOVUJVUPVUNVUJVUMVUJVUNUVIUYEUWGURYDYCXTWKVUDVUEUYOVUGYEALUYCUYLUVIU
      WQUYMDUYNUYEVUBVUCFUXBYFYGYHYIYJYMYNYKUXFUUJUVLUYJUYIXMUXKUXFUWEUVLUXFUVD
      UWCUXDUUJUVDUWMYLUYAYOUWHYPIAUYCUWQCDLUVKFUXBGUGUQYQTYRYSYTUYBUOVTUUAUUBU
      UEUUCUUDUUFUUGUUH $.
  $}

  ${
    $d p q C $.  $d p q K $.  $d p q X $.
    linepsubcl.n $e |- N = ( Lines ` K ) $.
    linepsubcl.c $e |- C = ( PSubCl ` K ) $.
    $( A line is a closed projective subspace.  (Contributed by NM,
       25-Jan-2012.)  (New usage is discouraged.) $)
    linepsubclN $p |- ( ( K e. HL /\ X e. N ) -> X e. C ) $=
      ( vp vq chlt wcel cv wne cjn cfv co wa wrex eqid syl atbase cpmap wceq wb
      catm clat hllat isline2 wi cbs adantr ad2antrl ad2antll latjcl pmapsubclN
      syl3anc syldan eleq1a adantld rexlimdvva sylbid imp ) BIJZDCJZDAJZVBVCGKZ
      HKZLZDVEVFBMNZOZBUANZNZUBZPZHBUDNZQGVNQZVDVBBUEJZVCVOUCBUFZVNVHBVJCDHGVHR
      ZVNRZEVJRZUGSVBVMVDGHVNVNVBVEVNJZVFVNJZPZPZVLVDVGWDVKAJZVLVDUHVBWCVIBUINZ
      JZWEWDVPVEWFJZVFWFJZWGVBVPWCVQUJWAWHVBWBVNWFVEBWFRZVSTUKWBWIVBWAVNWFVFBWJ
      VSTULWFVHBVEVFWJVRUMUOWFABVJVIWJVTFUNUPVKADUQSURUSUTVA $.
  $}

  ${
    polsubcl.a $e |- A = ( Atoms ` K ) $.
    polsubcl.p $e |- ._|_ = ( _|_P ` K ) $.
    polsubcl.c $e |- C = ( PSubCl ` K ) $.
    $( A polarity is a closed projective subspace.  (Contributed by NM,
       24-Jan-2012.)  (New usage is discouraged.) $)
    polsubclN $p |- ( ( K e. HL /\ X C_ A ) -> ( ._|_ ` X ) e. C ) $=
      ( chlt wcel wss wa cfv club coc cpmap eqid polval2N cbs cops adantr mpan2
      hlop ccla hlclat atssbase sstr clatlubcl syl2an opoccl syl2anc pmapsubclN
      syldan eqeltrd ) CIJZEAKZLZEDMECNMZMZCOMZMZCPMZMZBADURCVBUTEURQZUTQZFVBQZ
      GRUOUPVACSMZJZVCBJUQCTJZUSVGJZVHUOVIUPCUCUAUOCUDJEVGKZVJUPCUEUPAVGKVKAVGC
      VGQZFUFEAVGUGUBVGEURCVLVDUHUIVGCUTUSVLVEUJUKVGBCVBVAVLVFHULUMUN $.
  $}

  ${
    poml4.a $e |- A = ( Atoms ` K ) $.
    poml4.p $e |- ._|_ = ( _|_P ` K ) $.
    $( Orthomodular law for projective lattices.  Lemma 3.3(1) in [Holland95]
       p. 215.  (Contributed by NM, 25-Jan-2012.)
       (New usage is discouraged.) $)
    poml4N $p |- ( ( K e. HL /\ X C_ A /\ Y C_ A ) ->
      ( ( X C_ Y /\ ( ._|_ ` ( ._|_ ` Y ) ) = Y ) ->
   ( ( ._|_ ` ( ( ._|_ ` X ) i^i Y ) ) i^i Y ) = ( ._|_ ` ( ._|_ ` X ) ) ) ) $=
      ( wcel wss w3a cfv wceq cin eqid 2polvalN wa co syl syl2anc syl3anc cpmap
      chlt club eqcom 3adant2 eqeq2d biimpd syl5bi coc cmee coml cbs wbr simpl1
      cple hloml ccla hlclat simpl2 atssbase syl6ss clatlubcl simpl3 3jca lubss
      simprl omllaw4 sylc fveq2d polval2N simprr ineq12d opoccl pmapmeet eqtr4d
      cops hlop clat hllat latmcl polpmapN eqtrd 3eqtr4d ex sylan2d ) BUBHZDAIZ
      EAIZJZECKCKZELZEEBUCKZKZBUAKZKZLZDEIZDCKZEMZCKZEMZWRCKZLZWKEWJLZWIWPWJEUD
      WIXDWPWIWJWOEWFWHWJWOLWGAWLBWNCEWLNZFWNNZGOUEUFUGUHWIWQWPPZXCWIXGPZDWLKZB
      UIKZKZWMBUJKZQZXJKZWMXLQZWNKZXIWNKZXAXBXHXOXIWNXHBUKHZXIBULKZHZWMXSHZJXIW
      MBUOKZUMZXOXILXHXRXTYAXHWFXRWFWGWHXGUNZBUPRXHBUQHZDXSIXTXHWFYEYDBURRZXHDA
      XSWFWGWHXGUSZAXSBXSNZFUTZVAXSDWLBYHXEVBSZXHYEEXSIZYAYFXHEAXSWFWGWHXGVCYIV
      AZXSEWLBYHXEVBSZVDXHYEYKWQYCYFYLWIWQWPVFXSDEWLBYBYHYBNZXEVETXSBYBXLXJXIWM
      YHYNXLNZXJNZVGVHVIXHXAXNWNKZWOMZXPXHWTYQEWOXHWTXMWNKZCKZYQXHWSYSCXHWSXKWN
      KZWOMZYSXHWRUUAEWOXHWFWGWRUUALYDYGACWLBWNXJDXEYPFXFGVJSWIWQWPVKZVLXHWFXKX
      SHZYAYSUUBLYDXHBVPHZXTUUDXHWFUUEYDBVQRZYJXSBXJXIYHYPVMSZYMAXSWNBXLXKWMYHY
      OFXFVNTVOVIXHWFXMXSHZYTYQLYDXHBVRHZUUDYAUUHXHWFUUIYDBVSRUUGYMXSBXLXKWMYHY
      OVTTZXSCBWNXJXMYHYPXFGWASWBUUCVLXHWFXNXSHZYAXPYRLYDXHUUEUUHUUKUUFUUJXSBXJ
      XMYHYPVMSYMAXSWNBXLXNWMYHYOFXFVNTVOXHWFWGXBXQLYDYGAWLBWNCDXEFXFGOSWCWDWE
      $.

    $( Orthomodular law for projective lattices.  (Contributed by NM,
       23-Mar-2012.)  (New usage is discouraged.) $)
    poml5N $p |- ( ( K e. HL /\ Y C_ A /\ X C_ ( ._|_ ` Y ) )
           -> ( ( ._|_ ` ( ( ._|_ ` X ) i^i ( ._|_ ` Y ) ) ) i^i ( ._|_ ` Y ) )
                = ( ._|_ ` ( ._|_ ` X ) ) ) $=
      ( chlt wcel wss cfv w3a wceq wa cin simp1 simp3 polssatN 3adant3 sstrd
      3jca 3polN jca poml4N sylc ) BHIZEAJZDECKZJZLZUFDAJZUHAJZLUIUHCKCKUHMZNDC
      KZUHOCKUHOUNCKMUJUFUKULUFUGUIPUJDUHAUFUGUIQZUFUGULUIABCEFGRSZTUPUAUJUIUMU
      OUFUGUMUIAEBCFGUBSUCABCDUHFGUDUE $.
  $}

  ${
    poml6.c $e |- C = ( PSubCl ` K ) $.
    poml6.p $e |- ._|_ = ( _|_P ` K ) $.
    $( Orthomodular law for projective lattices.  (Contributed by NM,
       25-Mar-2012.)  (New usage is discouraged.) $)
    poml6N $p |- ( ( ( K e. HL /\ X e. C /\ Y e. C ) /\ X C_ Y )
            -> ( ( ._|_ ` ( ( ._|_ ` X ) i^i Y ) ) i^i Y ) = X ) $=
      ( chlt wcel w3a wss wa cfv catm wceq simpl1 psubclssatN syl2anc psubcli2N
      cin simpl2 eqid simpl3 simpr poml4N imp syl32anc eqtrd ) BHIZDAIZEAIZJZDE
      KZLZDCMZETCMETZUOCMZDUNUIDBNMZKZEURKZUMECMCMEOZUPUQOZUIUJUKUMPZUNUIUJUSVC
      UIUJUKUMUAZURAHBDURUBZFQRUNUIUKUTVCUIUJUKUMUCZURAHBEVEFQRULUMUDUNUIUKVAVC
      VFAHBCEGFSRUIUSUTJUMVALVBURBCDEVEGUEUFUGUNUIUJUQDOVCVDAHBCDGFSRUH $.
  $}

  ${
    osumcllem.l $e |- .<_ = ( le ` K ) $.
    osumcllem.j $e |- .\/ = ( join ` K ) $.
    osumcllem.a $e |- A = ( Atoms ` K ) $.
    osumcllem.p $e |- .+ = ( +P ` K ) $.
    osumcllem.o $e |- ._|_ = ( _|_P ` K ) $.
    osumcllem.c $e |- C = ( PSubCl ` K ) $.
    osumcllem.m $e |- M = ( X .+ { p } ) $.
    osumcllem.u $e |- U = ( ._|_ ` ( ._|_ ` ( X .+ Y ) ) ) $.
    $( Lemma for ~ osumclN .  (Contributed by NM, 25-Mar-2012.)
       (New usage is discouraged.) $)
    osumcllem1N $p |- ( ( ( K e. HL /\ X C_ A /\ Y C_ A ) /\ p e. U ) ->
          ( U i^i M ) = M ) $=
      ( chlt wcel wss w3a cv wa cin wceq csn sspadd1 adantr cfv simpl1 paddssat
      co 2polssN syl2anc syl6sseqr sstrd simpr snssd cpsubsp wb simpl2 polssatN
      syl5eqss eqid polsubN syl5eqel paddss syl13anc mpbi2and sseqin2 sylib ) F
      UAUBZJAUCZKAUCZUDZLUEZDUBZUFZHDUCDHUGHUHWAHJVSUIZCUOZDSWAJDUCZWBDUCZWCDUC
      ZWAJJKCUOZDVRJWGUCVTAUACFJKOPUJUKWAWGWGIULZIULZDWAVOWGAUCZWGWIUCVOVPVQVTU
      MZVRWJVTAUACFJKOPUNUKZAFIWGOQUPUQTURUSWAVSDVRVTUTVAZWAVOVPWBAUCDFVBULZUBW
      DWEUFWFVCWKVOVPVQVTVDWAWBDAWMWADWIATWAVOWHAUCZWIAUCWKWAVOWJWOWKWLAFIWGOQV
      EUQZAFIWHOQVEUQVFUSWADWIWNTWAVOWOWIWNUBWKWPAWNFIWHOWNVGZQVHUQVIAUACWNFJWB
      DOWQPVJVKVLVFHDVMVN $.

    $( Lemma for ~ osumclN .  (Contributed by NM, 25-Mar-2012.)
       (New usage is discouraged.) $)
    osumcllem2N $p |- ( ( ( K e. HL /\ X C_ A /\ Y C_ A ) /\ p e. U ) ->
          X C_ ( U i^i M ) ) $=
      ( chlt wcel wss w3a cv wa cin csn co simpl1 simpl2 simpr snssd cfv adantr
      paddssat polssatN syl2anc syl5eqss sspadd1 syl6sseqr osumcllem1N sseqtr4d
      sstrd syl3anc ) FUAUBZJAUCZKAUCZUDZLUEZDUBZUFZJHDHUGVLJJVJUHZCUIZHVLVFVGV
      MAUCJVNUCVFVGVHVKUJZVFVGVHVKUKVLVMDAVLVJDVIVKULUMVLDJKCUIZIUNZIUNZATVLVFV
      QAUCZVRAUCVOVLVFVPAUCZVSVOVIVTVKAUACFJKOPUPUOAFIVPOQUQURAFIVQOQUQURUSVDAU
      ACFJVMOPUTVESVAABCDEFGHIJKLMNOPQRSTVBVC $.

    $( Lemma for ~ osumclN .  (Contributed by NM, 23-Mar-2012.)
       (New usage is discouraged.) $)
    osumcllem3N $p |- ( ( K e. HL /\ Y e. C /\ X C_ ( ._|_ ` Y ) ) ->
          ( ( ._|_ ` X ) i^i U ) = Y ) $=
      ( chlt wcel cfv wss w3a cin incom co wceq simp1 simp3 psubclssatN 3adant3
      polssatN syl2anc poldmj1N syl3anc syl6eq fveq2d syl5eq polcon2N psubcli2N
      sstrd ineq1d syld3an2 poml5N 3eqtrd ) FUAUBZKBUBZJKIUCZUDZUEZJIUCZDUFDVMU
      FZKVMDUGVLVNVJVMUFZIUCZVMUFZVJIUCZKVLDVPVMVLDJKCUHIUCZIUCVPTVLVSVOIVLVSVM
      VJUFZVOVLVHJAUDZKAUDZVSVTUIVHVIVKUJZVLJVJAVHVIVKUKVLVHWBVJAUDWCVHVIWBVKAB
      UAFKORULUMZAFIKOQUNUOVCZWDACJKFIOPQUPUQVMVJUGURUSUTVDVLVHWAKVMUDZVQVRUIWC
      WEVHWBVIVKWFWDAFIJKOQVAVEAFIKJOQVFUQVHVIVRKUIVKBUAFIKQRVBUMVGUT $.

    $( Lemma for ~ osumclN .  (Contributed by NM, 24-Mar-2012.)
       (New usage is discouraged.) $)
    osumcllem4N $p |- ( ( ( K e. HL /\ Y C_ A /\ X C_ ( ._|_ ` Y ) ) /\
 ( r e. X /\ q e. Y ) ) -> q =/= r ) $=
      ( chlt wcel wss cfv w3a cv wa cin wn wne c0 wceq n0i incom sslin 3ad2ant3
      syl5eqss pnonsingN 3adant3 ss0b sylib adantr nsyl3 simprr eleq1 syl5ibcom
      sseqtrd simprl jctild elin syl6ibr necon3bd mpd ) FUCUDZKAUEZJKIUFZUEZUGZ
      LUHZJUDZMUHZKUDZUIZUIZWAJKUJZUDZUKWCWAULWHWGUMUNZWFWGWAUOVTWIWEVTWGUMUEWI
      VTWGKVRUJZUMVTWGKJUJZWJJKUPVSVPWKWJUEVQJVRKUQURUSVPVQWJUMUNVSAIFKQSUTVAVI
      WGVBVCVDVEWFWHWCWAWFWCWAUNZWBWAKUDZUIWHWFWLWMWBWFWDWLWMVTWBWDVFWCWAKVGVHV
      TWBWDVJVKWAJKVLVMVNVO $.

    $( Lemma for ~ osumclN .  (Contributed by NM, 24-Mar-2012.)
       (New usage is discouraged.) $)
    osumcllem5N $p |- ( ( ( K e. HL /\ X C_ A /\ Y C_ A ) /\ p e. A
    /\ ( r e. X /\ q e. Y /\ p .<_ ( r .\/ q ) ) ) -> p e. ( X .+ Y ) ) $=
      ( chlt wcel wss w3a cv co wbr clat simp11 syl simp12 simp13 simp31 simp32
      hllat simp2 simp33 elpaddri syl322anc ) FUCUDZJAUEZKAUEZUFZNUGZAUDZLUGZJU
      DZMUGZKUDZVFVHVJEUHGUIZUFZUFZFUJUDZVCVDVIVKVGVLVFJKCUHUDVNVBVOVBVCVDVGVMU
      KFUQULVBVCVDVGVMUMVBVCVDVGVMUNVEVGVIVKVLUOVEVGVIVKVLUPVEVGVMURVEVGVIVKVLU
      SACVHVJVFEFGJKOPQRUTVA $.

    $( Lemma for ~ osumclN .  Use atom exchange ~ hlatexch1 to swap ` p ` and
       ` q ` .  (Contributed by NM, 24-Mar-2012.)
       (New usage is discouraged.) $)
    osumcllem6N $p |- ( ( ( K e. HL /\ X C_ A /\ Y C_ A )
          /\ ( X C_ ( ._|_ ` Y ) /\ p e. A )
          /\ ( r e. X /\ q e. Y /\ q .<_ ( r .\/ p ) ) )
        -> p e. ( X .+ Y ) ) $=
      ( chlt wss w3a cfv cv wa co wbr simp11 simp12 simp13 simp2r simp31 simp32
      wcel sseldd 3jca simp2l osumcllem4N syl32anc simp33 hlatexch1 osumcllem5N
      wne sylc syl313anc ) FUCUQZJAUDZKAUDZUEZJKIUFUDZNUGZAUQZUHZLUGZJUQZMUGZKU
      QZVSVQVNEUIGUJZUEZUEZVIVJVKVOVRVTVNVQVSEUIGUJZVNJKCUIUQVIVJVKVPWBUKZVIVJV
      KVPWBULZVIVJVKVPWBUMZVLVMVOWBUNZVLVPVRVTWAUOZVLVPVRVTWAUPZWCVIVSAUQZVOVQA
      UQZUEZVSVQVFZUEWAWDWCVIWMWNWEWCWKVOWLWCKAVSWGWJURWHWCJAVQWFWIURUSWCVIVKVM
      VRVTWNWEWGVLVMVOWBUTWIWJABCDEFGHIJKLMNOPQRSTUAUBVAVBUSVLVPVRVTWAVCAVSVNVQ
      EFGOPQVDVGABCDEFGHIJKLMNOPQRSTUAUBVEVH $.

    $d q r A $.  $d r .\/ $.  $d q r K $.  $d r .<_ $.  $d q r M $.
    $d q r ._|_ $.  $d q r .+ $.  $d q r X $.  $d q r Y $.  $d p q r $.
    $( Lemma for ~ osumclN .  (Contributed by NM, 24-Mar-2012.)
       (New usage is discouraged.) $)
    osumcllem7N $p |- ( ( ( K e. HL /\ X C_ A /\ Y C_ A )
          /\ ( X C_ ( ._|_ ` Y ) /\ X =/= (/) /\ p e. A )
          /\ q e. ( Y i^i M ) ) -> p e. ( X .+ Y ) ) $=
      ( vr chlt wcel wss w3a cfv c0 wne cv cin co wbr wrex csn simp11 hllat syl
      clat simp12 simp23 simp22 inss2 sseli 3ad2ant3 elpaddatiN simp121 simp123
      syl6eleq simp2 inss1 simp13 sseldi simp3 osumcllem6N syl123anc rexlimdv3a
      syl32anc mpd ) FUCUDZJAUEZKAUEZUFZJKIUGUEZJUHUIZMUJZAUDZUFZLUJZKHUKZUDZUF
      ZWIUBUJZWFEULGUMZUBJUNZWFJKCULUDZWLFUSUDZWAWGWEWIJWFUOCULZUDWOWLVTWQVTWAW
      BWHWKUPFUQURVTWAWBWHWKUTWCWDWEWGWKVAWCWDWEWGWKVBWLWIHWRWKWCWIHUDWHWJHWIKH
      VCVDVETVIACWFWIEFGJUBNOPQVFVRWLWNWPUBJWLWMJUDZWNUFZWCWDWGWSWIKUDWNWPWCWHW
      KWSWNUPWDWEWGWCWKWSWNVGWDWEWGWCWKWSWNVHWLWSWNVJWTWJKWIKHVKWCWHWKWSWNVLVMW
      LWSWNVNABCDEFGHIJKUBLMNOPQRSTUAVOVPVQVS $.

    $( Lemma for ~ osumclN .  (Contributed by NM, 24-Mar-2012.)
       (New usage is discouraged.) $)
    osumcllem8N $p |- ( ( ( K e. HL /\ X C_ A /\ Y C_ A )
          /\ ( X C_ ( ._|_ ` Y ) /\ X =/= (/) /\ p e. A )
          /\ -. p e. ( X .+ Y ) ) -> ( Y i^i M ) = (/) ) $=
      ( vq chlt wcel wss w3a cfv c0 wne cv co wn cin wceq wa wex n0 osumcllem7N
      3expia exlimdv syl5bi necon1bd 3impia ) FUBUCJAUDKAUDUEZJKIUFUDJUGUHLUIZA
      UCUEZVDJKCUJUCZUKKHULZUGUMVCVEUNZVFVGUGVGUGUHUAUIVGUCZUAUOVHVFUAVGUPVHVIV
      FUAVCVEVIVFABCDEFGHIJKUALMNOPQRSTUQURUSUTVAVB $.

    $( Lemma for ~ osumclN .  (Contributed by NM, 24-Mar-2012.)
       (New usage is discouraged.) $)
    osumcllem9N $p |- ( ( ( K e. HL /\ X e. C /\ Y e. C )
          /\ ( X C_ ( ._|_ ` Y ) /\ X =/= (/) /\ p e. U )
          /\ -. p e. ( X .+ Y ) ) -> M = X ) $=
      ( chlt wcel w3a cfv wss c0 wne cv co wn cin inass wceq simp11 osumcllem3N
      simp13 simp21 syl3anc ineq1d syl5eqr simp12 psubclssatN paddssat polssatN
      syl2anc simp22 simp23 sseldd simp3 osumcllem8N syl331anc eqtrd fveq2d syl
      syl5eqss pol0N osumcllem1N syl31anc ineq12d polsubclN paddatclN psubclinN
      syl5eqel csn osumcllem2N poml6N snssd sseqin2 sylib 3eqtr3rd ) FUAUBZJBUB
      ZKBUBZUCZJKIUDUEZJUFUGZLUHZDUBZUCZWQJKCUIZUBUJZUCZJIUDZDHUKZUKZIUDZXDUKZA
      HUKZJHXBXFAXDHXBXFUFIUDZAXBXEUFIXBXEKHUKZUFXBXEXCDUKZHUKXJXCDHULXBXKKHXBW
      KWMWOXKKUMWKWLWMWSXAUNZWKWLWMWSXAUPZWNWOWPWRXAUQZABCDEFGHIJKLMNOPQRSTUOUR
      USUTXBWKJAUEZKAUEZWOWPWQAUBZXAXJUFUMXLXBWKWLXOXLWKWLWMWSXAVAZABUAFJORVBVE
      ZXBWKWMXPXLXMABUAFKORVBVEZXNWNWOWPWRXAVFXBDAWQXBDWTIUDZIUDZATXBWKYAAUEZYB
      AUEXLXBWKWTAUEZYCXLXBWKXOXPYDXLXSXTAUACFJKOPVCURAFIWTOQVDVEZAFIYAOQVDVEVO
      WNWOWPWRXAVGZVHZWNWSXAVIABCDEFGHIJKLMNOPQRSTVJVKVLVMXBWKXIAUMXLAUAFIOQVPV
      NVLXBWKXOXPWRXDHUMXLXSXTYFABCDEFGHIJKLMNOPQRSTVQVRVSXBWKWLXDBUBZJXDUEZXGJ
      UMXLXRXBWKDBUBHBUBYHXLXBDYBBTXBWKYCYBBUBXLYEABFIYAOQRVTVEWCXBHJWQWDZCUIZB
      SXBWKWLXQYKBUBXLXRYGABCWQFJOPRWAURWCBFDHRWBURXBWKXOXPWRYIXLXSXTYFABCDEFGH
      IJKLMNOPQRSTWEVRBFIJXDRQWFVRXBHAUEXHHUMXBHYKASXBWKXOYJAUEYKAUEXLXSXBWQAYG
      WGAUACFJYJOPVCURVOHAWHWIWJ $.

    $( Lemma for ~ osumclN .  Contradict ~ osumcllem9N .  (Contributed by NM,
       25-Mar-2012.)  (New usage is discouraged.) $)
    osumcllem10N $p |- ( ( ( K e. HL /\ X C_ A /\ Y C_ A )
          /\ p e. A
          /\ -. p e. ( X .+ Y ) ) -> M =/= X ) $=
      ( chlt wss w3a cv co wn wne csn simp11 simp2 snssd simp12 sspadd2 syl3anc
      wcel snss sylibr syl6eleqr sspadd1 3ad2ant1 simp3 ssneldd nelne1 syl2anc
      vex ) FUAUOZJAUBZKAUBZUCZLUDZAUOZVJJKCUEZUOUFZUCZVJHUOVJJUOUFHJUGVNVJJVJU
      HZCUEZHVNVOVPUBZVJVPUOVNVFVOAUBVGVQVFVGVHVKVMUIVNVJAVIVKVMUJUKVFVGVHVKVMU
      LAUACFVOJOPUMUNVJVPLVEUPUQSURVNJVLVJVIVKJVLUBVMAUACFJKOPUSUTVIVKVMVAVBVJH
      JVCVD $.
  $}

  ${
    $d p C $.  $d p K $.  $d p ._|_ $.  $d p .+ $.  $d p X $.  $d p Y $.
    osumcl.p $e |- .+ = ( +P ` K ) $.
    osumcl.o $e |- ._|_ = ( _|_P ` K ) $.
    osumcl.c $e |- C = ( PSubCl ` K ) $.
    $( Lemma for ~ osumclN .  (Contributed by NM, 25-Mar-2012.)
       (New usage is discouraged.) $)
    osumcllem11N $p |- ( ( ( K e. HL /\ X e. C /\ Y e. C )
          /\ ( X C_ ( ._|_ ` Y ) /\ X =/= (/) ) )
                -> ( X .+ Y ) = ( ._|_ ` ( ._|_ ` ( X .+ Y ) ) ) ) $=
      ( vp chlt wcel w3a cfv wss wne wa wceq eqid syl2anc c0 wn nonconne simpl1
      co catm simpl2 psubclssatN simpl3 paddssat syl3anc 2polssN cv wrex df-pss
      wex wpss pssnel sylbir df-rex sylibr wi csn cjn osumcllem9N simp11 simp12
      cple simp13 3adantr3 3adant3 polssatN simp23 simp3 osumcllem10N syl311anc
      sseldd pm2.21ddne 3exp 3expd imp32 rexlimdv syl5 mpand necon1bd mpi ) CKL
      ZEALZFALZMZEFDNOZEUAPZQZQZEEREEPQZUBEFBUEZWPDNZDNZREEUCWNWOWPWRWNWPWROZWP
      WRPZWOWNWGWPCUFNZOZWSWGWHWIWMUDZWNWGEXAOZFXAOZXBXCWNWGWHXDXCWGWHWIWMUGXAA
      KCEXASZIUHZTWNWGWIXEXCWGWHWIWMUIXAAKCFXFIUHZTXAKBCEFXFGUJUKZXACDWPXFHULTW
      SWTQZJUMZWPLUBZJWRUNZWNWOXJXKWRLZXLQJUPZXMXJWPWRUQXOWPWRUOJWPWRURUSXLJWRU
      TVAWNXLWOJWRWJWKWLXNXLWOVBZVBWJWKWLXNXPWJWKWLXNMZXLWOWJXQXLMZWOEXKVCBUEZE
      XAABWRCVDNZCCVHNZXSDEFJYASZXTSZXFGHIXSSZWRSZVEXRWGXDXEXKXALXLXSEPWGWHWIXQ
      XLVFZXRWGWHXDYFWGWHWIXQXLVGXGTXRWGWIXEYFWGWHWIXQXLVIXHTXRWRXAXKXRWGWQXAOZ
      WRXAOYFXRWGXBYGYFWJXQXBXLWJWKWLXBXNXIVJVKXACDWPXFHVLTXACDWQXFHVLTWJWKWLXN
      XLVMVQWJXQXLVNXAABWRXTCYAXSDEFJYBYCXFGHIYDYEVOVPVRVSVTWAWBWCWDWEWF $.

    $( Closure of orthogonal sum.  If ` X ` and ` Y ` are orthogonal closed
       projective subspaces, then their sum is closed.  (Contributed by NM,
       25-Mar-2012.)  (New usage is discouraged.) $)
    osumclN $p |- ( ( ( K e. HL /\ X e. C /\ Y e. C ) /\ X C_ ( ._|_ ` Y ) )
         -> ( X .+ Y ) e. C ) $=
      ( chlt wcel w3a cfv wss wa co wceq psubclssatN syl2anc c0 simpl1 paddssat
      catm simpl2 simpl3 syl3anc simpll1 oveq1 padd02 sylan9eqr simpll3 eqeltrd
      eqid psubcli2N osumcllem11N anassrs eqcomd pm2.61dane ispsubclN mpbir2and
      wne wb syl ) CJKZEAKZFAKZLZEFDMNZOZEFBPZAKZVJCUCMZNZVJDMDMZVJQZVIVDEVLNZF
      VLNZVMVDVEVFVHUAZVIVDVEVPVRVDVEVFVHUDVLAJCEVLUMZIRSVIVDVFVQVRVDVEVFVHUEVL
      AJCFVSIRSZVLJBCEFVSGUBUFVIVOETVIETQZOZVDVKVOVDVEVFVHWAUGWBVJFAWAVIVJTFBPZ
      FETFBUHVIVDVQWCFQVRVTVLJBCFVSGUISUJVDVEVFVHWAUKULAJCDVJHIUNSVIETVAZOVJVNV
      GVHWDVJVNQABCDEFGHIUOUPUQURVIVDVKVMVOOVBVRVLAJCDVJVSHIUSVCUT $.
  $}

  ${
    pmapojoin.b $e |- B = ( Base ` K ) $.
    pmapojoin.l $e |- .<_ = ( le ` K ) $.
    pmapojoin.j $e |- .\/ = ( join ` K ) $.
    pmapojoin.m $e |- M = ( pmap ` K ) $.
    pmapojoin.o $e |- ._|_ = ( oc ` K ) $.
    pmapojoin.p $e |- .+ = ( +P ` K ) $.
    $( For orthogonal elements, projective map of join equals projective sum.
       Compare ~ pmapjoin where only one direction holds.  (Contributed by NM,
       11-Apr-2012.)  (New usage is discouraged.) $)
    pmapojoinN $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B ) /\
  X .<_ ( ._|_ ` Y ) ) -> ( M ` ( X .\/ Y ) ) = ( ( M ` X ) .+ ( M ` Y ) ) ) $=
      ( chlt wcel cfv wceq syl2anc w3a wbr wa co cpolN eqid adantr cpscN simpl1
      pmapj2N wss simpl2 pmapsubclN simpl3 wb cops 3ad2ant1 simp3 opoccl pmaple
      hlop syld3an3 biimpa polpmapN sseqtr4d osumclN syl31anc psubcli2N eqtrd )
      DPQZHAQZIAQZUAZHIGRZEUBZUCZHICUDFRZHFRZIFRZBUDZDUERZRWARZVTVMVQWBSVOABCDF
      WAHIJLMOWAUFZUJUGVPVJVTDUHRZQZWBVTSVJVKVLVOUIZVPVJVRWDQZVSWDQZVRVSWARZUKW
      EWFVPVJVKWGWFVJVKVLVOULAWDDFHJMWDUFZUMTVPVJVLWHWFVJVKVLVOUNZAWDDFIJMWJUMT
      VPVRVNFRZWIVMVOVRWLUKZVJVKVLVNAQZVOWMUOVMDUPQZVLWNVJVKWOVLDVAUQVJVKVLURAD
      GIJNUSTADEFHVNJKMUTVBVCVPVJVLWIWLSWFWKAWADFGIJNMWCVDTVEWDBDWAVRVSOWCWJVFV
      GWDPDWAVTWCWJVHTVI $.
  $}

  ${
    pexmid.a $e |- A = ( Atoms ` K ) $.
    pexmid.p $e |- .+ = ( +P ` K ) $.
    pexmid.o $e |- ._|_ = ( _|_P ` K ) $.
    $( Excluded middle law for closed projective subspaces, which can be shown
       to be equivalent to (and derivable from) the orthomodular law ~ poml4N .
       Lemma 3.3(2) in [Holland95] p. 215, which we prove as a special case of
       ~ osumclN .  (Contributed by NM, 25-Mar-2012.)
       (New usage is discouraged.) $)
    pexmidN $p |- ( ( ( K e. HL /\ X C_ A ) /\ ( ._|_ ` ( ._|_ ` X ) ) = X )
         -> ( X .+ ( ._|_ ` X ) ) = A ) $=
      ( chlt wcel wss wa cfv wceq co c0 cin adantr syl2anc ad2antrr eqtrd cpscN
      simpll simplr polssatN poldmj1N syl3anc pnonsingN simpr wb eqid ispsubclN
      fveq2d mpbir2and polsubclN 2polssN osumclN syl31anc psubcli2N 3eqtr3d
      pol0N ) CIJZEAKZLZEDMZDMZENZLZEVEBOZDMZDMZPDMZVIAVHVJPDVHVJVEVFQZPVHVBVCV
      EAKZVJVMNVBVCVGUCZVBVCVGUDZVDVNVGACDEFHUERZABEVECDFGHUFUGVHVBVNVMPNVOVQAD
      CVEFHUHSUAUMVHVBVICUBMZJZVKVINVOVHVBEVRJZVEVRJZEVFKZVSVOVHVTVCVGVPVDVGUIV
      BVTVCVGLUJVCVGAVRICDEFHVRUKZULTUNVDWAVGAVRCDEFHWCUORVDWBVGACDEFHUPRVRBCDE
      VEGHWCUQURVRICDVIHWCUSSVBVLANVCVGAICDFHVATUT $.
  $}

  ${
    pexmidlem.l $e |- .<_ = ( le ` K ) $.
    pexmidlem.j $e |- .\/ = ( join ` K ) $.
    pexmidlem.a $e |- A = ( Atoms ` K ) $.
    pexmidlem.p $e |- .+ = ( +P ` K ) $.
    pexmidlem.o $e |- ._|_ = ( _|_P ` K ) $.
    pexmidlem.m $e |- M = ( X .+ { p } ) $.
    $( Lemma for ~ pexmidN .  Holland's proof implicitly requires ` q =/= r ` ,
       which we prove here.  (Contributed by NM, 2-Feb-2012.)
       (New usage is discouraged.) $)
    pexmidlem1N $p |- ( ( ( K e. HL /\ X C_ A ) /\
 ( r e. X /\ q e. ( ._|_ ` X ) ) ) -> q =/= r ) $=
      ( wcel wa cv chlt wss cfv cin wn wne c0 n0i pnonsingN adantr nsyl3 simprr
      wceq weq eleq1 syl5ibcom simprl jctild elin syl6ibr necon3bd mpd ) DUARHA
      UBSZITZHRZJTZHGUCZRZSZSZVDHVGUDZRZUEVFVDUFVLVKUGUMZVJVKVDUHVCVMVIAGDHNPUI
      UJUKVJVLVFVDVJJIUNZVEVDVGRZSVLVJVNVOVEVJVHVNVOVCVEVHULVFVDVGUOUPVCVEVHUQU
      RVDHVGUSUTVAVB $.

    $( Lemma for ~ pexmidN .  (Contributed by NM, 2-Feb-2012.)
       (New usage is discouraged.) $)
    pexmidlem2N $p |- ( ( ( K e. HL /\ X C_ A /\ p e. A )
       /\ ( r e. X /\ q e. ( ._|_ ` X ) /\ p .<_ ( r .\/ q ) ) )
     -> p e. ( X .+ ( ._|_ ` X ) ) ) $=
      ( wcel wss cv chlt w3a cfv co wbr wa clat simpl1 hllat syl simpl2 syl2anc
      polssatN simpr1 simpr2 simpl3 simpr3 elpaddri syl322anc ) DUARZHASZKTZARZ
      UBZITZHRZJTZHGUCZRZVBVEVGCUDEUEZUBZUFZDUGRZVAVHASZVFVIVCVJVBHVHBUDRVLUTVM
      UTVAVCVKUHZDUIUJUTVAVCVKUKZVLUTVAVNVOVPADGHNPUMULVDVFVIVJUNVDVFVIVJUOUTVA
      VCVKUPVDVFVIVJUQABVEVGVBCDEHVHLMNOURUS $.

    $( Lemma for ~ pexmidN .  Use atom exchange ~ hlatexch1 to swap ` p ` and
       ` q ` .  (Contributed by NM, 2-Feb-2012.)
       (New usage is discouraged.) $)
    pexmidlem3N $p |- ( ( ( K e. HL /\ X C_ A /\ p e. A ) /\ ( r e. X
          /\ q e. ( ._|_ ` X ) ) /\ q .<_ ( r .\/ p ) )
        -> p e. ( X .+ ( ._|_ ` X ) ) ) $=
      ( wcel cv co chlt wss w3a cfv wa wbr simp1 simp2l simp2r wi simpl1 simpl2
      wne polssatN syl2anc simprr sseldd simpl3 pexmidlem1N hlatexch1 syl131anc
      simprl 3adantl3 3impia pexmidlem2N syl13anc ) DUARZHAUBZKSZARZUCZISZHRZJS
      ZHGUDZRZUEZVNVLVICTEUFZUCVKVMVPVIVLVNCTEUFZVIHVOBTRVKVQVRUGVKVMVPVRUHVKVM
      VPVRUIVKVQVRVSVKVQUEZVGVNARVJVLARVNVLUMZVRVSUJVGVHVJVQUKZVTVOAVNVTVGVHVOA
      UBWBVGVHVJVQULZADGHNPUNUOVKVMVPUPUQVGVHVJVQURVTHAVLWCVKVMVPVBUQVGVHVQWAVJ
      ABCDEFGHIJKLMNOPQUSVCAVNVIVLCDELMNUTVAVDABCDEFGHIJKLMNOPQVEVF $.

    $d q r A $.  $d r .\/ $.  $d q r K $.  $d r .<_ $.  $d q r M $.
    $d q r ._|_ $.  $d q r .+ $.  $d q r X $.  $d p q r $.
    $( Lemma for ~ pexmidN .  (Contributed by NM, 2-Feb-2012.)
       (New usage is discouraged.) $)
    pexmidlem4N $p |- ( ( ( K e. HL /\ X C_ A /\ p e. A ) /\ ( X =/= (/) /\
           q e. ( ( ._|_ ` X ) i^i M ) ) ) -> p e. ( X .+ ( ._|_ ` X ) ) ) $=
      ( vr wcel cv wa chlt wss w3a c0 wne cfv cin co wbr wrex clat simpl1 hllat
      csn syl simpl2 simpl3 simprl inss2 sseli syl6eleq ad2antll syl32anc simp1
      elpaddatiN simp3l inss1 simp2r sseldi simp3r pexmidlem3N syl121anc 3expia
      expd rexlimdv mpd ) DUARZHAUBZJSZARZUCZHUDUEZISZHGUFZFUGZRZTZTZWCQSZVSCUH
      EUIZQHUJZVSHWDBUHRZWHDUKRZVRVTWBWCHVSUNBUHZRZWKWHVQWMVQVRVTWGULDUMUOVQVRV
      TWGUPVQVRVTWGUQWAWBWFURWFWOWAWBWFWCFWNWEFWCWDFUSUTPVAVBABVSWCCDEHQKLMNVEV
      CWHWJWLQHWHWIHRZWJWLWAWGWPWJTZWLWAWGWQUCZWAWPWCWDRWJWLWAWGWQVDWAWGWPWJVFW
      RWEWDWCWDFVGWAWBWFWQVHVIWAWGWPWJVJABCDEFGHQIJKLMNOPVKVLVMVNVOVP $.

    $( Lemma for ~ pexmidN .  (Contributed by NM, 2-Feb-2012.)
       (New usage is discouraged.) $)
    pexmidlem5N $p |- ( ( ( K e. HL /\ X C_ A /\ p e. A ) /\ ( X =/= (/) /\
         -. p e. ( X .+ ( ._|_ ` X ) ) ) ) -> ( ( ._|_ ` X ) i^i M ) = (/) ) $=
      ( vq wcel cv c0 wne chlt wss w3a cfv co wn cin wceq wa wex n0 pexmidlem4N
      expr exlimdv syl5bi necon1bd impr ) DUAQHAUBIRZAQUCZHSTZURHHGUDZBUEQZUFVA
      FUGZSUHUSUTUIZVBVCSVCSTPRVCQZPUJVDVBPVCUKVDVEVBPUSUTVEVBABCDEFGHPIJKLMNOU
      LUMUNUOUPUQ $.

    $( Lemma for ~ pexmidN .  (Contributed by NM, 3-Feb-2012.)
       (New usage is discouraged.) $)
    pexmidlem6N $p |- ( ( ( K e. HL /\ X C_ A /\ p e. A )
      /\ ( ( ._|_ ` ( ._|_ ` X ) ) = X /\ X =/= (/) /\
   -. p e. ( X .+ ( ._|_ ` X ) ) ) ) -> M = X ) $=
      ( chlt wcel wss cfv wceq cv w3a c0 wne co cin pexmidlem5N 3adantr1 fveq2d
      wn simpl1 pol0N syl eqtrd ineq1d simpl2 csn simpl3 snssd paddssat syl3anc
      wa syl5eqss 3jca sspadd1 syl6sseqr cpscN wb ispsubclN mpbir2and paddatclN
      simpr1 eqid syl5eqel psubcli2N syl2anc poml4N sylc sseqin2 sylib 3eqtr3rd
      jca ) DPQZHARZIUAZAQZUBZHGSZGSZHTZHUCUDZWEHWHBUEQUJZUBZVBZFWIHWNWHFUFZGSZ
      FUFZAFUFZWIFWNWPAFWNWPUCGSZAWNWOUCGWGWKWLWOUCTWJABCDEFGHIJKLMNOUGUHUIWNWC
      WSATWCWDWFWMUKZAPDGLNULUMUNUOWNWCWDFARZUBHFRZFGSGSFTZVBWQWITWNWCWDXAWTWCW
      DWFWMUPZWNFHWEUQZBUEZAOWNWCWDXEARZXFARWTXDWNWEAWCWDWFWMURZUSZAPBDHXELMUTV
      AVCZVDWNXBXCWNHXFFWNWCWDXGHXFRWTXDXIAPBDHXELMVEVAOVFWNWCFDVGSZQXCWTWNFXFX
      KOWNWCHXKQZWFXFXKQWTWNXLWDWJXDWGWJWKWLVLZWNWCXLWDWJVBVHWTAXKPDGHLNXKVMZVI
      UMVJXHAXKBWEDHLMXNVKVAVNXKPDGFNXNVOVPWBADGHFLNVQVRWNXAWRFTXJFAVSVTWAXMUN
      $.

    $( Lemma for ~ pexmidN .  Contradict ~ pexmidlem6N .  (Contributed by NM,
       3-Feb-2012.)  (New usage is discouraged.) $)
    pexmidlem7N $p |- ( ( ( K e. HL /\ X C_ A /\ p e. A )
      /\ ( ( ._|_ ` ( ._|_ ` X ) ) = X /\ X =/= (/) /\
   -. p e. ( X .+ ( ._|_ ` X ) ) ) ) -> M =/= X ) $=
      ( chlt wcel wss w3a cfv cv c0 wne co wn wa csn simpl1 simpl3 snssd simpl2
      wceq sspadd2 syl3anc vex sylibr syl6eleqr polssatN syl2anc sspadd1 simpr3
      snss ssneldd nelne1 ) DPQZHARZIUAZAQZSZHGTZGTHULZHUBUCZVGHVJBUDZQUEZSZUFZ
      VGFQVGHQUEFHUCVPVGHVGUGZBUDZFVPVQVRRZVGVRQVPVEVQARVFVSVEVFVHVOUHZVPVGAVEV
      FVHVOUIUJVEVFVHVOUKZAPBDVQHLMUMUNVGVRIUOVBUPOUQVPHVMVGVPVEVFVJARZHVMRVTWA
      VPVEVFWBVTWAADGHLNURUSAPBDHVJLMUTUNVIVKVLVNVAVCVGFHVDUS $.
  $}

  ${
    pexmidALT.a $e |- A = ( Atoms ` K ) $.
    pexmidALT.p $e |- .+ = ( +P ` K ) $.
    pexmidALT.o $e |- ._|_ = ( _|_P ` K ) $.
    $d p A $.  $d p K $.  $d p ._|_ $.  $d p .+ $.  $d p X $.
    $( Lemma for ~ pexmidN .  The contradiction of ~ pexmidlem6N and
       ~ pexmidlem7N shows that there can be no atom ` p ` that is not in
       ` X .+ ( ._|_ `` X ) ` , which is therefore the whole atom space.
       (Contributed by NM, 3-Feb-2012.)  (New usage is discouraged.) $)
    pexmidlem8N $p |- ( ( ( K e. HL /\ X C_ A )
      /\ ( ( ._|_ ` ( ._|_ ` X ) ) = X /\ X =/= (/) ) )
        -> ( X .+ ( ._|_ ` X ) ) = A ) $=
      ( vp chlt wcel wss wa cfv wceq wne wn co nonconne eqid c0 simpll polssatN
      simplr adantr paddssat syl3anc cv wrex df-pss pssnel sylbir df-rex sylibr
      wex csn simplll simpllr simprl simplrl simplrr simprr w3a cjn pexmidlem6N
      wpss cple pexmidlem7N jca syl33anc 2false sylib rexlimdvaa mpand necon1bd
      syl5 mpi ) CJKZEALZMZEDNZDNEOZEUAPZMZMZEEOEEPMZQEWABRZAOEESZWEWFWGAWEWGAL
      ZWGAPZWFWEVRVSWAALZWIVRVSWDUBVRVSWDUDVTWKWDACDEFHUCUEAJBCEWAFGUFUGWIWJMZI
      UHZWGKQZIAUIZWEWFWLWMAKZWNMZIUOZWOWLWGAVFWRWGAUJIWGAUKULWNIAUMUNWEWNWFIAW
      EWQMZEWMUPBRZEOZWTEPZMZWFWSVRVSWPWBWCWNXCVRVSWDWQUQVRVSWDWQURWEWPWNUSVTWB
      WCWQUTVTWBWCWQVAWEWPWNVBVRVSWPVCWBWCWNVCMXAXBABCVDNZCCVGNZWTDEIXETZXDTZFG
      HWTTZVEABXDCXEWTDEIXFXGFGHXHVHVIVJXCWFWTESWHVKVLVMVPVNVOVQ $.

    $( Excluded middle law for closed projective subspaces, which is equivalent
       to (and derived from) the orthomodular law ~ poml4N .  Lemma 3.3(2) in
       [Holland95] p. 215.  In our proof, we use the variables ` X ` , ` M ` ,
       ` p ` , ` q ` , ` r ` in place of Hollands' l, m, P, Q, L respectively.
       TODO: should we make this obsolete?  (Contributed by NM, 3-Feb-2012.)
       (New usage is discouraged.) $)
    pexmidALTN $p |- ( ( ( K e. HL /\ X C_ A ) /\ ( ._|_ ` ( ._|_ ` X ) ) = X )
         -> ( X .+ ( ._|_ ` X ) ) = A ) $=
      ( chlt wcel wss wa cfv wceq co c0 id fveq2 oveq12d pol0N eqimss syl mpdan
      padd02 eqtrd ad2antrr sylan9eqr wne pexmidlem8N anassrs pm2.61dane ) CIJZ
      EAKZLZEDMZDMENZLZEUOBOZANZEPEPNZUQURPPDMZBOZAUTEPUOVABUTQEPDRSULVBANUMUPU
      LVBVAAULVAAKZVBVANULVAANVCAICDFHTZVAAUAUBAIBCVAFGUDUCVDUEUFUGUNUPEPUHUSAB
      CDEFGHUIUJUK $.
  $}

  ${
    pl42lem.b $e |- B = ( Base ` K ) $.
    pl42lem.l $e |- .<_ = ( le ` K ) $.
    pl42lem.j $e |- .\/ = ( join ` K ) $.
    pl42lem.m $e |- ./\ = ( meet ` K ) $.
    pl42lem.o $e |- ._|_ = ( oc ` K ) $.
    pl42lem.f $e |- F = ( pmap ` K ) $.
    pl42lem.p $e |- .+ = ( +P ` K ) $.
    $( Lemma for ~ pl42N .  (Contributed by NM, 8-Apr-2012.)
       (New usage is discouraged.) $)
    pl42lem1N $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B )
           /\ ( Z e. B /\ W e. B /\ V e. B ) ) ->
     ( ( X .<_ ( ._|_ ` Y ) /\ Z .<_ ( ._|_ ` W ) ) ->
       ( F ` ( ( ( ( X .\/ Y ) ./\ Z ) .\/ W ) ./\ V ) )
          = ( ( ( ( ( F ` X ) .+ ( F ` Y ) ) i^i ( F ` Z ) ) .+ ( F ` W ) )
           i^i ( F ` V ) ) ) ) $=
      ( chlt wcel w3a cfv wbr wa co wceq simp11 clat hllat simp12 simp13 latjcl
      cin syl syl3anc simp21 latmcl simp22 catm eqid pmapmeet cops hlop syl2anc
      simp23 opoccl latmle2 simp3r lattrd pmapojoinN simp3l ineq1d eqtrd oveq1d
      syl31anc 3expia ) EUAUBZKAUBZLAUBZUCZMAUBZJAUBZIAUBZUCZKLHUDFUEZMJHUDZFUE
      ZUFZKLDUGZMGUGZJDUGZIGUGCUDZKCUDLCUDBUGZMCUDZUOZJCUDZBUGZICUDZUOZUHWBWFWJ
      UCZWNWMCUDZWTUOZXAXBVSWMAUBZWEWNXDUHVSVTWAWFWJUIZXBEUJUBZWLAUBZWDXEXBVSXG
      XFEUKUPZXBXGWKAUBZWCXHXIXBXGVTWAXJXIVSVTWAWFWJULZVSVTWAWFWJUMZADEKLNPUNUQ
      ZWBWCWDWEWJURZAEGWKMNQUSUQZWBWCWDWEWJUTZADEWLJNPUNUQWBWCWDWEWJVGEVAUDZACE
      GWMINQXQVBZSVCUQXBXCWSWTXBXCWLCUDZWRBUGZWSXBVSXHWDWLWHFUEXCXTUHXFXOXPXBAE
      FWLMWHNOXIXOXNXBEVDUBZWDWHAUBXBVSYAXFEVEUPXPAEHJNRVHVFXBXGXJWCWLMFUEXIXMX
      NAEFGWKMNOQVIUQWBWFWGWIVJVKABDEFCHWLJNOPSRTVLVQXBXSWQWRBXBXSWKCUDZWPUOZWQ
      XBVSXJWCXSYCUHXFXMXNXQACEGWKMNQXRSVCUQXBYBWOWPXBVSVTWAWGYBWOUHXFXKXLWBWFW
      GWIVMABDEFCHKLNOPSRTVLVQVNVOVPVOVNVOVR $.

    $( Lemma for ~ pl42N .  (Contributed by NM, 8-Apr-2012.)
       (New usage is discouraged.) $)
    pl42lem2N $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B )
           /\ ( Z e. B /\ W e. B /\ V e. B ) ) ->
      ( ( ( F ` X ) .+ ( F ` Y ) )
          .+ ( ( ( F ` X ) .+ ( F ` W ) ) i^i ( ( F ` Y ) .+ ( F ` V ) ) ) )
       C_ ( F ` ( ( X .\/ Y ) .\/ ( ( X .\/ W ) ./\ ( Y .\/ V ) ) ) ) ) $=
      ( chlt wcel w3a wa cfv co cin catm simpl1 clat hllat simpl2 simpl3 latjcl
      wss syl syl3anc eqid pmapssat syl2anc simpr2 simpr3 latmcl pmapjoin ss2in
      3jca wceq pmapmeet sseqtr4d jca paddss12 sylc sstrd ) EUAUBZKAUBZLAUBZUCZ
      MAUBZJAUBZIAUBZUCZUDZKCUEZLCUEZBUFZWCJCUEBUFZWDICUEBUFZUGZBUFZKLDUFZCUEZK
      JDUFZLIDUFZGUFZCUEZBUFZWJWNDUFCUEZWBVNWKEUHUEZUOZWOWRUOZUCWEWKUOZWHWOUOZU
      DWIWPUOWBVNWSWTVNVOVPWAUIZWBVNWJAUBZWSXCWBEUJUBZVOVPXDWBVNXEXCEUKUPZVNVOV
      PWAULZVNVOVPWAUMZADEKLNPUNUQZWRAUAECWJNWRURZSUSUTWBVNWNAUBZWTXCWBXEWLAUBZ
      WMAUBZXKXFWBXEVOVSXLXFXGVQVRVSVTVAZADEKJNPUNUQZWBXEVPVTXMXFXHVQVRVSVTVBZA
      DELINPUNUQZAEGWLWMNQVCUQZWRAUAECWNNXJSUSUTVFWBXAXBWBXEVOVPXAXFXGXHABDECKL
      NPSTVDUQWBWHWLCUEZWMCUEZUGZWOWBWFXSUOZWGXTUOZWHYAUOWBXEVOVSYBXFXGXNABDECK
      JNPSTVDUQWBXEVPVTYCXFXHXPABDECLINPSTVDUQWFXSWGXTVEUTWBVNXLXMWOYAVGXCXOXQW
      RACEGWLWMNQXJSVHUQVIVJWRUABEWOWEWKWHXJTVKVLWBXEXDXKWPWQUOXFXIXRABDECWJWNN
      PSTVDUQVM $.

    $( Lemma for ~ pl42N .  (Contributed by NM, 8-Apr-2012.)
       (New usage is discouraged.) $)
    pl42lem3N $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B )
           /\ ( Z e. B /\ W e. B /\ V e. B ) )
        -> ( ( ( ( ( F ` X ) .+ ( F ` Y ) ) i^i ( F ` Z ) ) .+ ( F ` W ) )
           i^i ( F ` V ) ) C_ ( ( ( ( F ` X ) .+ ( F ` Y ) ) .+ ( F ` W ) )
            i^i ( ( ( F ` X ) .+ ( F ` Y ) ) .+ ( F ` V ) ) ) ) $=
      ( chlt wcel w3a wa cfv co cin wss catm simpl1 simpl2 eqid pmapssat simpl3
      syl2anc paddssat syl3anc simpr2 inss1 paddss1 mpi simpr3 sspadd2 ss2in )
      EUAUBZKAUBZLAUBZUCZMAUBZJAUBZIAUBZUCZUDZKCUEZLCUEZBUFZMCUEZUGZJCUEZBUFZVP
      VSBUFZUHZICUEZVPWCBUFZUHZVTWCUGWAWDUGUHVMVEVPEUIUEZUHZVSWFUHZWBVEVFVGVLUJ
      ZVMVEVNWFUHZVOWFUHZWGWIVMVEVFWJWIVEVFVGVLUKWFAUAECKNWFULZSUMUOVMVEVGWKWIV
      EVFVGVLUNWFAUAECLNWLSUMUOWFUABEVNVOWLTUPUQZVMVEVJWHWIVHVIVJVKURWFAUAECJNW
      LSUMUOVEWGWHUCVRVPUHWBVPVQUSWFUABEVRVPVSWLTUTVAUQVMVEWCWFUHZWGWEWIVMVEVKW
      NWIVHVIVJVKVBWFAUAECINWLSUMUOWMWFUABEWCVPWLTVCUQVTWAWCWDVDUO $.

    $( Lemma for ~ pl42N .  (Contributed by NM, 8-Apr-2012.)
       (New usage is discouraged.) $)
    pl42lem4N $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B )
           /\ ( Z e. B /\ W e. B /\ V e. B ) )
     -> ( ( X .<_ ( ._|_ ` Y ) /\ Z .<_ ( ._|_ ` W ) )
        -> ( F ` ( ( ( ( X .\/ Y ) ./\ Z ) .\/ W ) ./\ V ) )
          C_ ( F ` ( ( X .\/ Y )
              .\/ ( ( X .\/ W ) ./\ ( Y .\/ V ) ) ) ) ) ) $=
      ( chlt wcel w3a cfv wbr wa co wss wceq pl42lem1N 3impia pl42lem3N cpsubsp
      cin simpl1 hllat syl simpl2 pmapsub syl2anc simpl3 simpr2 simpr3 pmodl42N
      clat eqid syl32anc pl42lem2N eqsstrd sstrd 3adant3 3expia ) EUAUBZKAUBZLA
      UBZUCZMAUBZJAUBZIAUBZUCZKLHUDFUEMJHUDFUEUFZKLDUGZMGUGJDUGIGUGCUDZWBKJDUGL
      IDUGGUGDUGCUDZUHVPVTWAUCWCKCUDZLCUDZBUGZMCUDUNJCUDZBUGICUDZUNZWDVPVTWAWCW
      JUIABCDEFGHIJKLMNOPQRSTUJUKVPVTWJWDUHWAVPVTUFZWJWGWHBUGWGWIBUGUNZWDABCDEF
      GHIJKLMNOPQRSTULWKWLWGWEWHBUGWFWIBUGUNBUGZWDWKVMWEEUMUDZUBZWFWNUBZWHWNUBZ
      WIWNUBZWLWMUIVMVNVOVTUOZWKEVEUBZVNWOWKVMWTWSEUPUQZVMVNVOVTURAWNECKNWNVFZS
      USUTWKWTVOWPXAVMVNVOVTVAAWNECLNXBSUSUTWKWTVRWQXAVPVQVRVSVBAWNECJNXBSUSUTW
      KWTVSWRXAVPVQVRVSVCAWNECINXBSUSUTBWNEWIWEWFWHXBTVDVGABCDEFGHIJKLMNOPQRSTV
      HVIVJVKVIVL $.
  $}

  ${
    pl42.b $e |- B = ( Base ` K ) $.
    pl42.l $e |- .<_ = ( le ` K ) $.
    pl42.j $e |- .\/ = ( join ` K ) $.
    pl42.m $e |- ./\ = ( meet ` K ) $.
    pl42.o $e |- ._|_ = ( oc ` K ) $.
    $( Law holding in a Hilbert lattice that fails in orthomodular lattice L42
       (Figure 7 in [MegPav2000] p. 2366).  (Contributed by NM, 8-Apr-2012.)
       (New usage is discouraged.) $)
    pl42N $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B )
           /\ ( Z e. B /\ W e. B /\ V e. B ) )
     -> ( ( X .<_ ( ._|_ ` Y ) /\ Z .<_ ( ._|_ ` W ) )
        -> ( ( ( ( X .\/ Y ) ./\ Z ) .\/ W ) ./\ V )
           .<_ ( ( X .\/ Y ) .\/ ( ( X .\/ W ) ./\ ( Y .\/ V ) ) ) ) ) $=
      ( wcel cfv co syl3anc chlt w3a wa wbr cpmap wss cpadd pl42lem4N wb simpl1
      eqid clat simpl2 simpl3 latjcl simpr1 latmcl simpr2 simpr3 pmaple sylibrd
      hllat syl ) CUAQZIAQZJAQZUBZKAQZHAQZGAQZUBZUCZIJFRDUDKHFRDUDUCIJBSZKESZHB
      SZGESZCUERZRVMIHBSZJGBSZESZBSZVQRUFZVPWADUDZACUGRZVQBCDEFGHIJKLMNOPVQUKZW
      DUKUHVLVDVPAQZWAAQZWCWBUIVDVEVFVKUJZVLCULQZVOAQZVJWFVLVDWIWHCVBVCZVLWIVNA
      QZVIWJWKVLWIVMAQZVHWLWKVLWIVEVFWMWKVDVEVFVKUMZVDVEVFVKUNZABCIJLNUOTZVGVHV
      IVJUPACEVMKLOUQTVGVHVIVJURZABCVNHLNUOTVGVHVIVJUSZACEVOGLOUQTVLWIWMVTAQZWG
      WKWPVLWIVRAQZVSAQZWSWKVLWIVEVIWTWKWNWQABCIHLNUOTVLWIVFVJXAWKWOWRABCJGLNUO
      TACEVRVSLOUQTABCVMVTLNUOTACDVQVPWALMWEUTTVA $.
  $}

  $c LHyp $.
  $c LAut $.
  $c WAtoms $.
  $c PAut $.

  $( Extend class notation with set of all co-atoms (lattice hyperplanes). $)
  clh $a class LHyp $.

  $( Extend class notation with set of all lattice automorphisms. $)
  claut $a class LAut $.

  $( Extend class notation with W points. $)
  cwpointsN $a class WAtoms $.

  $( Extend class notation with set of all projective automorphisms. $)
  cpautN $a class PAut $.

  ${
    $d k f d x y $.
    $( Define the set of lattice hyperplanes, which are all lattice elements
       covered by 1 (i.e. all co-atoms).  We call them "hyperplanes" instead of
       "co-atoms" in analogy with projective geometry hyperplanes.
       (Contributed by NM, 11-May-2012.) $)
    df-lhyp $a |- LHyp = ( k e. _V
         |-> { x e. ( Base ` k ) | x ( <o ` k ) ( 1. ` k ) } ) $.

    $( Define set of lattice autoisomorphisms.  (Contributed by NM,
       11-May-2012.) $)
    df-laut $a |- LAut = ( k e. _V |-> { f | ( f : ( Base ` k ) -1-1-onto->
      ( Base ` k ) /\ A. x e. ( Base ` k ) A. y e. ( Base ` k )
        ( x ( le ` k ) y <-> ( f ` x ) ( le ` k ) ( f ` y ) ) ) } ) $.

    $( Define W-atoms corresponding to an arbitrary "fiducial (i.e. reference)
       atom" ` d ` .  These are all atoms not in the polarity of ` { d } ) ` ,
       which is the hyperplane determined by ` d ` .  Definition of set W in
       [Crawley] p. 111.  (Contributed by NM, 26-Jan-2012.) $)
    df-watsN $a |- WAtoms = ( k e. _V |-> ( d e. ( Atoms ` k )
         |-> ( ( Atoms ` k ) \ ( ( _|_P ` k ) ` { d } ) ) ) ) $.

    $( Define the set of hyperplanes, i.e. polarities of atoms,
        on the projective space of a lattice ` k ` . $)
    $(
    df-hyp $a |- PHyp = ( k e. _V |-> { h | E. d e. ( Atoms ` k )
         h = ( ( _|_P ` k ) ` { d } ) ) ) $.
    $)

    $( Define set of all projective automorphisms.  This is the intended
       definition of automorphism in [Crawley] p. 112.  (Contributed by NM,
       26-Jan-2012.) $)
    df-pautN $a |- PAut = ( k e. _V |-> { f | ( f : ( PSubSp ` k ) -1-1-onto->
      ( PSubSp ` k ) /\ A. x e. ( PSubSp ` k ) A. y e. ( PSubSp ` k )
        ( x C_ y <-> ( f ` x ) C_ ( f ` y ) ) ) } ) $.
  $}

  ${
    $d d k A $.  $d d D $.  $d d k K $.
    watomfval.a $e |- A = ( Atoms ` K ) $.
    watomfval.p $e |- P = ( _|_P ` K ) $.
    watomfval.w $e |- W = ( WAtoms ` K ) $.
    $( The W atoms function.  (Contributed by NM, 26-Jan-2012.)
       (New usage is discouraged.) $)
    watfvalN $p |- ( K e. B -> W = ( d e. A
         |-> ( A \ ( ( _|_P ` K ) ` { d } ) ) ) ) $=
      ( vk wcel cvv cv cpolN cfv cdif cmpt wceq cwpointsN catm csn elex syl6eqr
      fveq2 fveq1d difeq12d mpteq12dv df-watsN fvex eqeltri mptex fvmpt syl5eq
      syl ) DBKDLKZEFAAFMUAZDNOZOZPZQZRDBUBUOEDSOUTIJDFJMZTOZVBUPVANOZOZPZQUTLS
      VADRZFVBVEAUSVFVBDTOZAVADTUDGUCZVFVBAVDURVHVFUPVCUQVADNUDUEUFUGJFUHFAUSAV
      GLGDTUIUJUKULUMUN $.

    $( Value of the W atoms function.  (Contributed by NM, 26-Jan-2012.)
       (New usage is discouraged.) $)
    watvalN $p |- ( ( K e. B /\ D e. A )
       -> ( W ` D ) = ( A \ ( ( _|_P ` K ) ` { D } ) ) ) $=
      ( vd wcel cfv cv csn cpolN cdif cmpt watfvalN cvv catm fveq1d wceq fveq2d
      sneq difeq2d eqid fvex eqeltri difexg ax-mp fvmpt sylan9eq ) EBKZCAKCFLCJ
      AAJMZNZEOLZLZPZQZLACNZUPLZPZUMCFUSABDEFJGHIRUAJCURVBAUSUNCUBZUQVAAVCUOUTU
      PUNCUDUCUEUSUFASKVBSKAETLSGETUGUHAVASUIUJUKUL $.

    $( The predicate "is a W atom" (corresponding to fiducial atom ` D ` ).
       (Contributed by NM, 26-Jan-2012.)  (New usage is discouraged.) $)
    iswatN $p |- ( ( K e. B /\ D e. A ) -> ( P e. ( W ` D )
       <-> ( P e. A /\ -. P e. ( ( _|_P ` K ) ` { D } ) ) ) ) $=
      ( wcel wa cfv csn cpolN cdif wn watvalN eleq2d eldif syl6bb ) EBJCAJKZDCF
      LZJDACMENLLZOZJDAJDUCJPKUAUBUDDABCDEFGHIQRDAUCST $.
  $}

  ${
    $d k w B $.  $d k w C $.  $d k w K $.  $d k w .1. $.  $d w W $.
    lhpset.b $e |- B = ( Base ` K ) $.
    lhpset.u $e |- .1. = ( 1. ` K ) $.
    lhpset.c $e |- C = ( <o ` K ) $.
    lhpset.h $e |- H = ( LHyp ` K ) $.
    $( The set of co-atoms (lattice hyperplanes).  (Contributed by NM,
       11-May-2012.) $)
    lhpset $p |- ( K e. A -> H = { w e. B | w C .1. } ) $=
      ( vk wcel cvv cfv cp1 ccvr cbs fveq2 syl6eqr wbr crab wceq elex clh eqidd
      cv breq123d rabeqbidv df-lhyp fvex eqeltri rabex fvmpt syl5eq syl ) GBMGN
      MZFAUGZEDUAZACUBZUCGBUDUQFGUEOUTKLGURLUGZPOZVAQOZUAZAVAROZUBUTNUEVAGUCZVD
      USAVECVFVEGROZCVAGRSHTVFURURVBEVCDVFURUFVFVCGQODVAGQSJTVFVBGPOEVAGPSITUHU
      IALUJUSACCVGNHGRUKULUMUNUOUP $.

    $( The predicate "is a co-atom (lattice hyperplane)."  (Contributed by NM,
       11-May-2012.) $)
    islhp $p |- ( K e. A -> ( W e. H <-> ( W e. B /\ W C .1. ) ) ) $=
      ( vw wcel cv wbr crab wa lhpset eleq2d breq1 elrab syl6bb ) FAMZGEMGLNZDC
      OZLBPZMGBMGDCOZQUCEUFGLABCDEFHIJKRSUEUGLGBUDGDCTUAUB $.

    $( The predicate "is a co-atom (lattice hyperplane)."  (Contributed by NM,
       18-May-2012.) $)
    islhp2 $p |- ( ( K e. A /\ W e. B ) -> ( W e. H <-> W C .1. ) ) $=
      ( wcel wbr islhp baibd ) FALGELGBLGDCMABCDEFGHIJKNO $.
  $}

  ${
    lhpbase.b $e |- B = ( Base ` K ) $.
    lhpbase.h $e |- H = ( LHyp ` K ) $.
    $( A co-atom is a member of the lattice base set (i.e. a lattice element).
       (Contributed by NM, 18-May-2012.) $)
    lhpbase $p |- ( W e. H -> W e. B ) $=
      ( cvv wcel clh cfv c0 wceq n0i eqeq1i sylnib fvprc nsyl2 cp1 ccvr eqid
      wbr islhp simprbda mpancom ) CGHZDBHZDAHZUFCIJZKLZUEUFBKLUIBDMBUHKFNOCIPQ
      UEUFUGDCRJZCSJZUAGAUKUJBCDEUJTUKTFUBUCUD $.
  $}

  ${
    lhp1cvr.u $e |- .1. = ( 1. ` K ) $.
    lhp1cvr.c $e |- C = ( <o ` K ) $.
    lhp1cvr.h $e |- H = ( LHyp ` K ) $.
    $( The lattice unit covers a co-atom (lattice hyperplane).  (Contributed by
       NM, 18-May-2012.) $)
    lhp1cvr $p |- ( ( K e. A /\ W e. H ) -> W C .1. ) $=
      ( wcel cbs cfv wbr eqid islhp simplbda ) EAJFDJFEKLZJFCBMAQBCDEFQNGHIOP
      $.
  $}

  ${
    lhplt.l $e |- .<_ = ( le ` K ) $.
    lhplt.s $e |- .< = ( lt ` K ) $.
    lhplt.a $e |- A = ( Atoms ` K ) $.
    lhplt.h $e |- H = ( LHyp ` K ) $.
    $( An atom under a co-atom is strictly less than it.  TODO: is this needed?
       (Contributed by NM, 1-Jun-2012.) $)
    lhplt $p |- ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ P .<_ W ) )
       -> P .< W ) $=
      ( chlt wcel wa wbr cbs cfv cp1 ccvr eqid simpll lhpbase ad2antlr 1cvratlt
      simprl lhp1cvr adantr simprr syl32anc ) ELMZGDMZNZBAMZBGFOZNZNUJUMGEPQZMZ
      GERQZESQZOZUNBGCOUJUKUOUAULUMUNUEUKUQUJUOUPDEGUPTZKUBUCULUTUOLUSURDEGURTZ
      USTZKUFUGULUMUNUHAUPUSBCUREFGVAHIVBVCJUDUI $.
  $}

  ${
    $d r s .<_ $.  $d r s .\/ $.  $d r s A $.  $d r s H $.  $d r s K $.
    $d r s P $.  $d r s Q $.  $d r s W $.
    lhp2lt.l $e |- .<_ = ( le ` K ) $.
    lhp2lt.s $e |- .< = ( lt ` K ) $.
    lhp2lt.j $e |- .\/ = ( join ` K ) $.
    lhp2lt.a $e |- A = ( Atoms ` K ) $.
    lhp2lt.h $e |- H = ( LHyp ` K ) $.
    $( The join of two atoms under a co-atom is strictly less than it.
       (Contributed by NM, 8-Jul-2013.) $)
    lhp2lt $p |- ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ P .<_ W )
          /\ ( Q e. A /\ Q .<_ W ) )
       -> ( P .\/ Q ) .< W ) $=
      ( wcel wa wbr cfv syl syl3anc vr vs chlt w3a co wne simp2r simp3r clat wb
      simp1l hllat simp2l eqid atbase simp3l lhpbase latjle12 syl13anc mpbi2and
      cbs simp1r cv wn wrex 3dim2 cp1 ccvr cops simp11l simp12l simp13l hlatjcl
      hlop latjcl syl2anc wceq wi club simpl1l simpl2l simpl3l simpr1l cdm cglb
      ncvr1 op01dm simpld ple1 hlpos op1cl simpr2l mpbid simpr3 simpl1r lhp1cvr
      cpo cvr1 eqbrtrd cvrcmp syl132anc simpr2r simpr1r eqbrtrrd 3exp2 necon3bd
      3imp mpd 3exp rexlimdvv pltval mpbir2and ) GUCOZIEOZPZBAOZBIHQZPZCAOZCIHQ
      ZPZUDZBCFUEZIDQZYCIHQZYCIUFZYBXQXTYEXOXPXQYAUGXOXRXSXTUHYBGUIOZBGVARZOZCY
      HOZIYHOZXQXTPYEUJYBXMYGXMXNXRYAUKZGULZSYBXPYIXOXPXQYAUMZAYHBGYHUNZMUOSYBX
      SYJXOXRXSXTUPZAYHCGYOMUOSYBXNYKXMXNXRYAVBZYHEGIYONUQSYHFGHBCIYOJLURUSUTYB
      UAVCZYCHQVDZUBVCZYCYRFUEZHQVDZPZUBAVEUAAVEZYFYBXMXPXSUUDYLYNYPABCFGHUBUAL
      JMVFTYBUUCYFUAUBAAYBYRAOZYTAOZPZUUCYFYBUUGUUCUDZGVGRZUUAYTFUEZGVHRZQZVDZY
      FUUHGVIOZUUJYHOZUUMUUHXMUUNXMXNXRYAUUGUUCVJZGVNZSUUHYGUUAYHOZYTYHOZUUOUUH
      XMYGUUPYMSZUUHYGYCYHOZYRYHOZUURUUTUUHXMXPXSUVAUUPXPXQXOYAUUGUUCVKXSXTXOXR
      UUGUUCVLAYHFGBCYOLMVMZTUUHUUEUVBYBUUEUUFUUCUMAYHYRGYOMUOZSYHFGYCYRYOLVOZT
      UUHUUFUUSYBUUEUUFUUCUGAYHYTGYOMUOSYHFGUUAYTYOLVOTYHUUKUUIGUUJYOUUIUNZUUKU
      NZWFVPUUHUULYCIYBUUGUUCYCIVQZUULVRYBUUGUUCUVHUULYBUUGUUCUVHUDZPZUUAUUIUUJ
      UUKUVJUUAUUIHQZUUAUUIVQZUVJYHGVSRZUUIGHUCUUAYOUVMUNZJUVFXMXNXRYAUVIVTZUVJ
      YGUVAUVBUURUVJXMYGUVOYMSUVJXMXPXSUVAUVOXPXQXOYAUVIWAXSXTXOXRUVIWBUVCTZUVJ
      UUEUVBUUEUUFUUCUVHYBWCZUVDSUVETZUVJUUNYHUVMWDOZUVJXMUUNUVOUUQSZUUNUVSYHGW
      ERZWDOYHUVMUWAGYOUVNUWAUNWGWHSWIUVJGWQOZUURUUIYHOZUVAYCUUAUUKQZYCUUIUUKQU
      VKUVLUJUVJXMUWBUVOGWJSUVRUVJUUNUWCUVTYHUUIGYOUVFWKSUVPUVJYSUWDYSUUBUUGUVH
      YBWLUVJXMUVAUUEYSUWDUJUVOUVPUVQAYHUUKYRFGHYCYOJLUVGMWRTWMUVJYCIUUIUUKYBUU
      GUUCUVHWNUVJXMXNIUUIUUKQUVOXMXNXRYAUVIWOUCUUKUUIEGIUVFUVGNWPVPWSYHUUKGHUU
      AUUIYCYOJUVGWTXAWMUVJUUBUUAUUJUUKQZYSUUBUUGUVHYBXBUVJXMUURUUFUUBUWEUJUVOU
      VRUUEUUFUUCUVHYBXCAYHUUKYTFGHUUAYOJLUVGMWRTWMXDXEXGXFXHXIXJXHYBXMUVAXNYDY
      EYFPUJYLYBXMXPXSUVAYLYNYPUVCTYQUCYHEDGHYCIJKXKTXL $.
  $}

  ${
    $d p A $.  $d p K $.  $d p .< $.  $d p W $.
    lhpatltex.s $e |- .< = ( lt ` K ) $.
    lhpatltex.a $e |- A = ( Atoms ` K ) $.
    lhpatltex.h $e |- H = ( LHyp ` K ) $.
    $( There exists an atom less than a co-atom.  TODO: is this needed?
       (Contributed by NM, 1-Jun-2012.) $)
    lhpexlt $p |- ( ( K e. HL /\ W e. H ) -> E. p e. A p .< W ) $=
      ( chlt wcel wa cbs cfv cp1 ccvr wbr cv wrex eqid lhpbase lhp1cvr 1cvratex
      simpl adantl syl3anc ) DJKZECKZLUGEDMNZKZEDONZDPNZQFREBQFASUGUHUDUHUJUGUI
      CDEUITZIUAUEJULUKCDEUKTZULTZIUBAUIULBUKDEFUMGUNUOHUCUF $.
  $}

  ${
    $d p H $.  $d p K $.  $d p .< $.  $d p W $.  $d p .0. $.
    lhp0lt.s $e |- .< = ( lt ` K ) $.
    lhp0lt.z $e |- .0. = ( 0. ` K ) $.
    lhp0lt.h $e |- H = ( LHyp ` K ) $.
    $( A co-atom is greater than zero.  TODO: is this needed?  (Contributed by
       NM, 1-Jun-2012.) $)
    lhp0lt $p |- ( ( K e. HL /\ W e. H ) -> .0. .< W ) $=
      ( vp chlt wcel wa cv wbr catm cfv wrex eqid lhpexlt syl w3a cbs ccvr cops
      simp1l hlop op0cl 3syl atbase 3ad2ant2 simp2 syl2anc cvrlt syl31anc simp3
      atcvr0 cpo wi hlpos simp1r lhpbase plttr syl13anc mp2and rexlimdv3a mpd )
      CJKZDBKZLZIMZDANZICOPZQEDANZVLABCDIFVLRZHSVIVKVMIVLVIVJVLKZVKUAZEVJANZVKV
      MVPVGECUBPZKZVJVRKZEVJCUCPZNZVQVGVHVOVKUEZVPVGCUDKVSWCCUFVRCEVRRZGUGUHZVO
      VIVTVKVLVRVJCWDVNUIUJZVPVGVOWBWCVIVOVKUKVLWAJVJCEGWARZVNUPULJVRWAACEVJWDF
      WGUMUNVIVOVKUOVPCUQKZVSVTDVRKZVQVKLVMURVPVGWHWCCUSTWEWFVPVHWIVGVHVOVKUTVR
      BCDWDHVATVRACEVJDWDFVBVCVDVEVF $.
  $}

  ${
    lhpne0.z $e |- .0. = ( 0. ` K ) $.
    lhpne0.h $e |- H = ( LHyp ` K ) $.
    $( A co-atom is nonzero.  TODO: is this needed?  (Contributed by NM,
       26-Apr-2013.) $)
    lhpn0 $p |- ( ( K e. HL /\ W e. H ) -> W =/= .0. ) $=
      ( chlt wcel wa cplt cfv wbr wne eqid lhp0lt cbs wi simpl cops hlop adantr
      op0cl syl simpr pltne syl3anc mpd necomd ) BGHZCAHZIZDCUKDCBJKZLZDCMZULAB
      CDULNZEFOUKUIDBPKZHZUJUMUNQUIUJRUIUQUJUIBSHUQBTUPBDUPNEUBUCUAUIUJUDGUPAUL
      BDCUOUEUFUGUH $.
  $}

  ${
    $d p A $.  $d p H $.  $d p K $.  $d p .<_ $.  $d p W $.
    lhp2a.l $e |- .<_ = ( le ` K ) $.
    lhp2a.a $e |- A = ( Atoms ` K ) $.
    lhp2a.h $e |- H = ( LHyp ` K ) $.
    $( There exists an atom under a co-atom.  (Contributed by NM,
       26-Apr-2013.) $)
    lhpexle $p |- ( ( K e. HL /\ W e. H ) -> E. p e. A p .<_ W ) $=
      ( chlt wcel wa cbs cfv cp0 wne cv wbr wrex eqid simpl lhpbase adantl atle
      lhpn0 syl3anc ) CJKZEBKZLUGECMNZKZECONZPFQEDRFASUGUHUAUHUJUGUIBCEUITZIUBU
      CBCEUKUKTZIUEAUICDEUKFULGUMHUDUF $.

    $( There exists an atom not under a co-atom.  (Contributed by NM,
       12-Apr-2013.) $)
    lhpexnle $p |- ( ( K e. HL /\ W e. H ) -> E. p e. A -. p .<_ W ) $=
      ( chlt wcel wa cv wbr wn cfv wrex eqid simpl syl cjn co wceq ccvr lhp1cvr
      cp1 wb lhpbase adantl cops hlop op1cl adantr cvrval3 syl3anc mpbid reximi
      cbs ) CJKZEBKZLZFMZEDNOZEVBCUAPZUBCUFPZUCZLZFAQZVCFAQVAEVECUDPZNZVHJVIVEB
      CEVERZVIRZIUEVAUSECURPZKZVEVMKZVJVHUGUSUTSUTVNUSVMBCEVMRZIUHUIUSVOUTUSCUJ
      KVOCUKVMVECVPVKULTUMAVMVIVDCDEVEFVPGVDRVLHUNUOUPVGVCFAVCVFSUQT $.
  $}

  ${
    $d p .<_ $.  $d p A $.  $d p W $.  $d p X $.  $d p ph $.
    lhpexle1lem.1 $e |- ( ph -> E. p e. A ( p .<_ W /\ ps ) ) $.
    lhpexle1lem.2 $e |- ( ( ph /\ ( X e. A /\ X .<_ W ) )
       -> E. p e. A ( p .<_ W /\ ps /\ p =/= X ) ) $.
    $( Lemma for ~ lhpexle1 and others that eliminates restrictions on ` X ` .
       (Contributed by NM, 24-Jul-2013.) $)
    lhpexle1lem $p |- ( ph -> E. p e. A ( p .<_ W /\ ps /\ p =/= X ) ) $=
      ( wcel wbr wrex wn wa adantr simprl simprr simplr syl2anc 3jca cv wne w3a
      simpllr nelne2 ex reximdva mpd nbrne2 reximdv pm2.61dda ) AFCJZFEDKZGUAZE
      DKZBUNFUBZUCZGCLZAULMZNZUOBNZGCLZURAVBUSHOUTVAUQGCUTUNCJZNZVAUQVDVANZUOBU
      PVDUOBPVDUOBQVEVCUSUPUTVCVARAUSVCVAUDUNFCUESTUFUGUHAUMMZNZVBURAVBVFHOVGVA
      UQGCVGVAUQVGVANZUOBUPVGUOBPZVGUOBQVHUOVFUPVIAVFVARUNFEDUISTUFUJUHIUK $.
  $}

  ${
    $d p .<_ $.  $d p A $.  $d p H $.  $d p K $.  $d p W $.  $d p X $.
    $d p Y $.  $d p Z $.
    lhpex1.l $e |- .<_ = ( le ` K ) $.
    lhpex1.a $e |- A = ( Atoms ` K ) $.
    lhpex1.h $e |- H = ( LHyp ` K ) $.
    $( There exists an atom under a co-atom different from any given element.
       (Contributed by NM, 24-Jul-2013.) $)
    lhpexle1 $p |- ( ( K e. HL /\ W e. H )
       -> E. p e. A ( p .<_ W /\ p =/= X ) ) $=
      ( chlt wcel wa wbr wtru w3a wrex reximi syl cfv wne lhpexle tru jctr cplt
      cv cbs simpll simprl eqid lhpbase ad2antlr lhplt 2atlt syl31anc simp3r wi
      simp1ll simp2 simp1lr pltle syl3anc mpd a1tru simp3l 3jca 3expia reximdva
      lhpexle1lem 3simpb ) CKLZEBLZMZGUFZEDNZOVNFUAZPZGAQZVOVPMZGAQVMOADEFGVMVO
      GAQVOOMZGAQABCDEGHIJUBVOVTGAVOOUCUDRSVMFALZFEDNZMZMZVPVNECUETZNZMZGAQZVRW
      DVKWAECUGTZLZFEWENWHVKVLWCUHVMWAWBUIVLWJVKWCWIBCEWIUJZJUKULAFWEBCDEHWEUJZ
      IJUMAWIFWECEGWKWLIUNUOWDWGVQGAWDVNALZWGVQWDWMWGPZVOOVPWNWFVOWDWMVPWFUPWNV
      KWMVLWFVOUQVKVLWCWMWGURWDWMWGUSVKVLWCWMWGUTKABWECDVNEHWLVAVBVCWNVDWDWMVPW
      FVEVFVGVHVCVIVQVSGAVOOVPVJRS $.

    $( Lemma for ~ lhpexle2 .  (Contributed by NM, 19-Jun-2013.) $)
    lhpexle2lem $p |- ( ( ( K e. HL /\ W e. H )
          /\ ( X e. A /\ X .<_ W ) /\ ( Y e. A /\ Y .<_ W ) )
       -> E. p e. A ( p .<_ W /\ p =/= X /\ p =/= Y ) ) $=
      ( wcel wa wbr w3a wne wrex syl 3jca atbase chlt cv simpl1 lhpexle1 simp3l
      wceq simp3r neeqtrd 3expia reximdv mpd cjn cfv co simpl1l simpl2l simpl3l
      simp2 simpr eqid hlsupr syl31anc cbs clat simprlr hlatjcl syl3anc simpl1r
      wi hllat lhpbase simprr3 simpl2r simpl3r latjle12 syl13anc lattrd simprr1
      wb mpbi2and simprr2 exp44 imp31 reximdva pm2.61dane ) CUALZEBLZMZFALZFEDN
      ZMZGALZGEDNZMZOZHUBZEDNZWPFPZWPGPZOZHAQZFGWOFGUFZMZWQWRMZHAQZXAXCWHXEWHWK
      WNXBUCABCDEFHIJKUDRXCXDWTHAWOXBXDWTWOXBXDOZWQWRWSWOXBWQWRUEWOXBWQWRUGZXFW
      PFGXGWOXBXDURUHSUIUJUKWOFGPZMZWRWSWPFGCULUMZUNZDNZOZHAQZXAXIWFWIWLXHXNWFW
      GWKWNXHUOWIWJWHWNXHUPWLWMWHWKXHUQWOXHUSAFGXJCDHIXJUTZJVAVBXIXMWTHAWOXHWPA
      LZXMWTVIWOXHXPXMWTWOXHXPMZXMMZMZWQWRWSXSCVCUMZCDWPXKEXTUTZIXSWFCVDLZWFWGW
      KWNXRUOZCVJRZXSXPWPXTLWOXHXPXMVEAXTWPCYAJTRXSWFWIWLXKXTLYCWIWJWHWNXRUPZWL
      WMWHWKXRUQZAXTXJCFGYAXOJVFVGXSWGEXTLZWFWGWKWNXRVHXTBCEYAKVKRZWRWSXLXQWOVL
      XSWJWMXKEDNZWIWJWHWNXRVMWLWMWHWKXRVNXSYBFXTLZGXTLZYGWJWMMYIVSYDXSWIYJYEAX
      TFCYAJTRXSWLYKYFAXTGCYAJTRYHXTXJCDFGEYAIXOVOVPVTVQWRWSXLXQWOVRWRWSXLXQWOW
      ASWBWCWDUKWE $.

    $( There exists atom under a co-atom different from any two other elements.
       (Contributed by NM, 24-Jul-2013.) $)
    lhpexle2 $p |- ( ( K e. HL /\ W e. H )
       -> E. p e. A ( p .<_ W /\ p =/= X /\ p =/= Y ) ) $=
      ( chlt wcel wa wne lhpexle1 wbr w3a wrex lhpexle1lem cv lhpexle2lem 3expa
      adantr 3ancomb rexbii sylib ) CLMEBMNZHUAZFOZADEGHABCDEFHIJKPUHGAMGEDQNZN
      ZUIEDQZUIGOZUJRZHASZUMUJUNRZHASULUNADEFHUHUMUNNHASUKABCDEGHIJKPUDUHUKFAMF
      EDQNUPABCDEGFHIJKUBUCTUOUQHAUMUNUJUEUFUGT $.

    $( There exists atom under a co-atom different from any 3 other atoms.
       TODO: study if adant*,simp* usage can be improved.  (Contributed by NM,
       9-Jul-2013.) $)
    lhpexle3lem $p |- ( ( ( K e. HL /\ W e. H )
              /\ ( X e. A /\ Y e. A /\ Z e. A )
              /\ ( X .<_ W /\ Y .<_ W /\ Z .<_ W ) )
       -> E. p e. A ( p .<_ W /\ ( p =/= X /\ p =/= Y /\ p =/= Z ) ) ) $=
      ( wcel wa w3a wbr wne wrex syl adantr chlt cv wceq simpl1 lhpexle2 simp31
      simp32 simp1r neeqtrd simp33 3jca jca reximdvai mpd cjn cfv co wn simprrr
      3exp clat cbs simp11l hllat eqid atbase simp121 simp122 simprrl latnlej1l
      ad2antrl syl131anc latnlej1r simpl3 nbrne2 necomd syl2anc simp131 simp132
      cplt simp11 lhp2lt syl122anc wi hlatjcl syl3anc simp11r hlrelat1 reximddv
      lhpbase 3expa simprr3 wb latjle12 syl13anc mpbi2and simprr1 simprr2 simp2
      lattrd hlsupr syl31anc pm2.61dan pm2.61dane ) CUAMZEBMZNZFAMZGAMZHAMZOZFE
      DPZGEDPZHEDPZOZOZIUBZEDPZXQFQZXQGQZXQHQZOZNZIARZFGXPFGUCZNZXRXSYAOZIARZYD
      YFXGYHXGXKXOYEUDABCDEFHIJKLUESYFYGYCIAYFXQAMZYGYCYFYIYGOZXRYBYFYIXRXSYAUF
      YJXSXTYAYFYIXRXSYAUGZYJXQFGYKXPYEYIYGUHUIYFYIXRXSYAUJUKULUTUMUNXPFGQZNHFG
      CUOUPZUQZDPZYDXPYLYOYDXPYLYOOZXQYNDPZURZXRNZYCIAYPYIYSNZNZXRYBYPYIYRXRUSU
      UAXSXTYAUUACVAMZXQCVBUPZMZFUUCMZGUUCMZYRXSUUAXEUUBYPXEYTXEXFXKXOYLYOVCZTC
      VDZSZYIUUDYPYSAUUCXQCUUCVEZKVFZVKZUUAXHUUEYPXHYTXHXIXJXGXOYLYOVGZTAUUCFCU
      UJKVFZSZUUAXIUUFYPXIYTXHXIXJXGXOYLYOVHZTAUUCGCUUJKVFZSZYPYIYRXRVIZUUCYMCD
      XQFGUUJJYMVEZVJVLUUAUUBUUDUUEUUFYRXTUUIUULUUOUURUUSUUCYMCDXQFGUUJJUUTVMVL
      UUAYOYRYAXPYLYOYTVNUUSYOYRNHXQHXQYNDVOVPVQUKULYPYNECVTUPZPZYSIARZYPXGXHXL
      XIXMUVBXGXKXOYLYOWAUUMXLXMXNXGXKYLYOVRUUPXLXMXNXGXKYLYOVSAFGUVABYMCDEJUVA
      VEZUUTKLWBWCYPXEYNUUCMZEUUCMZUVBUVCWDUUGYPXEXHXIUVEUUGUUMUUPAUUCYMCFGUUJU
      UTKWEZWFYPXFUVFXEXFXKXOYLYOWGUUCBCEUUJLWJZSAUUCUVACDYNEIUUJJUVDKWHWFUNWIW
      KXPYLYOURZYDXPYLUVIOZXSXTYQOZYCIAUVJYIUVKNZNZXRYBUVMUUCCDXQYNEUUJJUVMXEUU
      BUVJXEUVLXEXFXKXOYLUVIVCZTZUUHSZYIUUDUVJUVKUUKVKUVMXEXHXIUVEUVOUVJXHUVLXH
      XIXJXGXOYLUVIVGZTZUVJXIUVLXHXIXJXGXOYLUVIVHZTZUVGWFUVMXFUVFUVJXFUVLXEXFXK
      XOYLUVIWGTUVHSZXSXTYQYIUVJWLZUVMXLXMYNEDPZUVJXLUVLXLXMXNXGXKYLUVIVRTUVJXM
      UVLXLXMXNXGXKYLUVIVSTUVMUUBUUEUUFUVFXLXMNUWCWMUVPUVMXHUUEUVRUUNSUVMXIUUFU
      VTUUQSUWAUUCYMCDFGEUUJJUUTWNWOWPWTUVMXSXTYAXSXTYQYIUVJWQXSXTYQYIUVJWRUVMY
      QUVIYAUWBXPYLUVIUVLVNXQHYNDVOVQUKULUVJXEXHXIYLUVKIARUVNUVQUVSXPYLUVIWSAFG
      YMCDIJUUTKXAXBWIWKXCXD $.

    $( There exists atom under a co-atom different from any three other
       elements.  (Contributed by NM, 24-Jul-2013.) $)
    lhpexle3 $p |- ( ( K e. HL /\ W e. H )
       -> E. p e. A ( p .<_ W /\ ( p =/= X /\ p =/= Y /\ p =/= Z ) ) ) $=
      ( wcel wa wbr w3a wrex 3anass rexbii sylib chlt cv lhpexle2 adantr simpl1
      wne 3ad2ant1 simpl3l simpl2l simprl simpl3r simpl2r lhpexle3lem syl133anc
      simprr df-3an anbi2i bitr4i lhpexle1lem an31 3bitr4i 3expa an32 ) CUAMEBM
      NZIUBZEDOZVEFUFZVEGUFZNZVEHUFZPZIAQZVFVGVHVJPZNZIAQVDVIADEHIVDVFVGVHPZIAQ
      VFVINZIAQABCDEFGIJKLUCVOVPIAVFVGVHRSTVDHAMZHEDOZNZNZVFVGVJNZVHPZIAQZVLVTW
      AADEGIVTVFVGVJPZIAQZVFWANZIAQVDWEVSABCDEFHIJKLUCUDWDWFIAVFVGVJRSTVDVSGAMZ
      GEDOZNZWCVDVSWIPZVFVHVJNZVGPZIAQZWCWJWKADEFIVDVSVFWKNZIAQZWIVDVFVHVJPZIAQ
      WOABCDEGHIJKLUCWPWNIAVFVHVJRSTUGWJFAMZFEDOZNZNZVFVHVJVGPZNZIAQZWMWTVDWGVQ
      WQWHVRWRXCVDVSWIWSUEWGWHVDVSWSUHVQVRVDWIWSUIWJWQWRUJWGWHVDVSWSUKVQVRVDWIW
      SULWJWQWRUOABCDEGHFIJKLUMUNXBWLIAXBVFWKVGNZNZWLXAXDVFVHVJVGUPUQVFWKVGRZUR
      STUSWLWBIAXEVFWAVHNZNZWLWBXDXGVFVHVJVGUTUQXFVFWAVHRZVASTVBUSWBVKIAXHVFVIV
      JNZNZWBVKXGXJVFVGVJVHVCUQXIVFVIVJRZVASTUSVKVNIAVKXKVNXLVMXJVFVGVHVJUPUQUR
      ST $.
  $}

  ${
    $d p q A $.  $d p q H $.  $d p q K $.  $d p q .<_ $.  $d p q W $.
    lhp2at.l $e |- .<_ = ( le ` K ) $.
    lhp2at.a $e |- A = ( Atoms ` K ) $.
    lhp2at.h $e |- H = ( LHyp ` K ) $.
    $( There exist at least two different atoms under a co-atom.  This allows
       us to create a line under the co-atom.  TODO: is this needed?
       (Contributed by NM, 1-Jun-2012.)  (New usage is discouraged.) $)
    lhpex2leN $p |- ( ( K e. HL /\ W e. H )
       -> E. p e. A E. q e. A ( p .<_ W /\ q .<_ W /\ p =/= q ) ) $=
      ( chlt wcel wa cv wbr wne w3a wrex simprr lhpexle1 adantr jca necom bitri
      3anbi3i 3anass rexbii r19.42v bitr2i sylib lhpexle reximddv ) CKLEBLMZGNZ
      EDOZUOFNZEDOZUNUPPZQZFARZGAUMUNALZUOMZMZUOUQUPUNPZMZFARZMZUTVCUOVFUMVAUOS
      UMVFVBABCDEUNFHIJTUAUBUTUOVEMZFARVGUSVHFAUSUOUQVDQVHURVDUOUQUNUPUCUEUOUQV
      DUFUDUGUOVEFAUHUIUJABCDEGHIJUKUL $.
  $}

  ${
    lhpoc.b $e |- B = ( Base ` K ) $.
    lhpoc.o $e |- ._|_ = ( oc ` K ) $.
    lhpoc.a $e |- A = ( Atoms ` K ) $.
    lhpoc.h $e |- H = ( LHyp ` K ) $.
    $( The orthocomplement of a co-atom (lattice hyperplane) is an atom.
       (Contributed by NM, 18-May-2012.) $)
    lhpoc $p |- ( ( K e. HL /\ W e. B ) ->
      ( W e. H <-> ( ._|_ ` W ) e. A ) ) $=
      ( chlt wcel wa cp1 cfv ccvr wbr eqid islhp2 1cvrco bitrd ) DKLFBLMFCLFDNO
      ZDPOZQFEOALKBUCUBCDFGUBRZUCRZJSABUCUBDEFGUDHUEITUA $.

    $( The orthocomplement of an atom is a co-atom (lattice hyperplane).
       (Contributed by NM, 20-Jun-2012.)  (New usage is discouraged.) $)
    lhpoc2N $p |- ( ( K e. HL /\ W e. B ) ->
      ( W e. A <-> ( ._|_ ` W ) e. H ) ) $=
      ( chlt wcel wa cfv wb cops hlop opoccl sylan lhpoc syldan opococ eleq1d
      wceq bitr2d ) DKLZFBLZMZFENZCLZUIENZALZFALUFUGUIBLZUJULOUFDPLZUGUMDQZBDEF
      GHRSABCDEUIGHIJTUAUHUKFAUFUNUGUKFUDUOBDEFGHUBSUCUE $.
  $}

  ${
    lhpocnle.l $e |- .<_ = ( le ` K ) $.
    lhpocnle.o $e |- ._|_ = ( oc ` K ) $.
    lhpocnle.h $e |- H = ( LHyp ` K ) $.
    $( The orthocomplement of a co-atom is not under it.  (Contributed by NM,
       22-May-2012.) $)
    lhpocnle $p |- ( ( K e. HL /\ W e. H ) -> -. ( ._|_ ` W ) .<_ W ) $=
      ( chlt wcel wa cfv wbr wceq simpr wb eqid mpbid syl2anc ad2antrr cp0 catm
      cal wne hlatl adantr cbs lhpbase lhpoc sylan2 atn0 neneqd cmee clat hllat
      cops hlop ad2antlr opoccl latref latlem12 syl13anc mpbi2and breqtrd ople0
      co opnoncon mtand ) BIJZEAJZKZEDLZECMZVLBUALZNZVKVLVNVKBUCJZVLBUBLZJZVLVN
      UDVIVPVJBUEUFVKVJVRVIVJOVJVIEBUGLZJZVJVRPVSABEVSQZHUHZVQVSABDEWAGVQQZHUIU
      JRVQVLBVNVNQZWCUKSULVKVMKZVLVNCMZVOWEVLEVLBUMLZVFZVNCWEVMVLVLCMZVLWHCMZVK
      VMOWEBUNJZVLVSJZWIVIWKVJVMBUOTZWEBUPJZVTWLVIWNVJVMBUQTZVJVTVIVMWBURZVSBDE
      WAGUSSZVSBCVLWAFUTSWEWKWLVTWLVMWIKWJPWMWQWPWQVSBCWGVLEVLWAFWGQZVAVBVCWEWN
      VTWHVNNWOWPVSBWGDEVNWAGWRWDVGSVDWEWNWLWFVOPWOWQVSBCVLVNWAFWDVESRVH $.
  $}

  ${
    lhpocat.o $e |- ._|_ = ( oc ` K ) $.
    lhpocat.a $e |- A = ( Atoms ` K ) $.
    lhpocat.h $e |- H = ( LHyp ` K ) $.
    $( The orthocomplement of a co-atom is an atom.  (Contributed by NM,
       9-Feb-2013.) $)
    lhpocat $p |- ( ( K e. HL /\ W e. H ) -> ( ._|_ ` W ) e. A ) $=
      ( chlt wcel wa cfv simpr cbs wb eqid lhpbase lhpoc sylan2 mpbid ) CIJZEBJ
      ZKUBEDLAJZUAUBMUBUAECNLZJUBUCOUDBCEUDPZHQAUDBCDEUEFGHRST $.
  $}

  ${
    lhpocnel.l $e |- .<_ = ( le ` K ) $.
    lhpocnel.o $e |- ._|_ = ( oc ` K ) $.
    lhpocnel.a $e |- A = ( Atoms ` K ) $.
    lhpocnel.h $e |- H = ( LHyp ` K ) $.
    $( The orthocomplement of a co-atom is an atom not under it.  Provides a
       convenient construction when we need the existence of any object with
       this property.  (Contributed by NM, 25-May-2012.) $)
    lhpocnel $p |- ( ( K e. HL /\ W e. H )
           -> ( ( ._|_ ` W ) e. A /\ -. ( ._|_ ` W ) .<_ W ) ) $=
      ( chlt wcel wa cfv wbr wn lhpocat lhpocnle jca ) CKLFBLMFENZALTFDOPABCEFH
      IJQBCDEFGHJRS $.
  $}

  ${
    lhpocnel2.l $e |- .<_ = ( le ` K ) $.
    lhpocnel2.a $e |- A = ( Atoms ` K ) $.
    lhpocnel2.h $e |- H = ( LHyp ` K ) $.
    lhpocnel2.p $e |- P = ( ( oc ` K ) ` W ) $.
    $( The orthocomplement of a co-atom is an atom not under it.  Provides a
       convenient construction when we need the existence of any object with
       this property.  (Contributed by NM, 20-Feb-2014.) $)
    lhpocnel2 $p |- ( ( K e. HL /\ W e. H )
           -> ( P e. A /\ -. P .<_ W ) ) $=
      ( chlt wcel wa coc cfv wbr wn eqid lhpocnel eleq1i breq1i notbii anbi12i
      sylibr ) DKLFCLMFDNOZOZALZUFFEPZQZMBALZBFEPZQZMACDEUEFGUERHISUJUGULUIBUFA
      JTUKUHBUFFEJUAUBUCUD $.
  $}

  ${
    lhpjat.l $e |- .<_ = ( le ` K ) $.
    lhpjat.j $e |- .\/ = ( join ` K ) $.
    lhpjat.u $e |- .1. = ( 1. ` K ) $.
    lhpjat.a $e |- A = ( Atoms ` K ) $.
    lhpjat.h $e |- H = ( LHyp ` K ) $.
    $( The join of a co-atom (hyperplane) and an atom not under it is the
       lattice unit.  (Contributed by NM, 18-May-2012.) $)
    lhpjat1 $p |- ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W ) )
      -> ( W .\/ P ) = .1. ) $=
      ( chlt wcel wa wbr wn cfv eqid cbs ccvr co simpll lhpbase ad2antlr simprl
      wceq lhp1cvr adantr simprr 1cvrjat syl32anc ) FNOZHDOZPZBAOZBHGQRZPZPUNHF
      UASZOZUQHCFUBSZQZURHBEUCCUHUNUOUSUDUOVAUNUSUTDFHUTTZMUEUFUPUQURUGUPVCUSNV
      BCDFHKVBTZMUIUJUPUQURUKAUTVBBCEFGHVDIJKVELULUM $.

    $( The join of a co-atom (hyperplane) and an atom not under it is the
       lattice unit.  (Contributed by NM, 4-Jun-2012.) $)
    lhpjat2 $p |- ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W ) )
      -> ( P .\/ W ) = .1. ) $=
      ( chlt wcel wa wbr wn co clat cbs cfv wceq hllat ad2antrr atbase ad2antrl
      eqid lhpbase ad2antlr latjcom syl3anc lhpjat1 eqtrd ) FNOZHDOZPZBAOZBHGQR
      ZPZPZBHESZHBESZCVAFTOZBFUAUBZOZHVEOZVBVCUCUOVDUPUTFUDUEURVFUQUSAVEBFVEUHZ
      LUFUGUPVGUOUTVEDFHVHMUIUJVEEFBHVHJUKULABCDEFGHIJKLMUMUN $.
  $}

  ${
    $d p B $.  $d p H $.  $d p .\/ $.  $d p K $.  $d p .<_ $.  $d p .1. $.
    $d p W $.  $d p X $.
    lhpj1.b $e |- B = ( Base ` K ) $.
    lhpj1.l $e |- .<_ = ( le ` K ) $.
    lhpj1.j $e |- .\/ = ( join ` K ) $.
    lhpj1.u $e |- .1. = ( 1. ` K ) $.
    lhpj1.h $e |- H = ( LHyp ` K ) $.
    $( The join of a co-atom (hyperplane) and an element not under it is the
       lattice unit.  (Contributed by NM, 7-Dec-2012.) $)
    lhpj1 $p |- ( ( ( K e. HL /\ W e. H ) /\ ( X e. B /\ -. X .<_ W ) )
          -> ( W .\/ X ) = .1. ) $=
      ( vp wcel wa wbr wn co wceq chlt cv catm cfv wrex wb simpll simpr lhpbase
      ad2antlr hlrelat2 syl3anc w3a simp1l simp2 simp3r lhpjat1 syl12anc simp3l
      eqid clat wi simp1ll hllat syl atbase 3ad2ant2 3ad2ant1 latjlej2 syl13anc
      simp1r mpd eqbrtrrd cops hlop latjcl op1le syl2anc rexlimdv3a sylbid impr
      mpbid ) EUAOZGCOZPZHAOZHGFQRZGHDSZBTZWEWFPZWGNUBZHFQZWKGFQRZPZNEUCUDZUEZW
      IWJWCWFGAOZWGWPUFWCWDWFUGWEWFUHWDWQWCWFACEGIMUIUJZWOAEFHGNIJWOUTZUKULWJWN
      WINWOWJWKWOOZWNUMZBWHFQZWIXAGWKDSZBWHFXAWEWTWMXCBTWEWFWTWNUNWJWTWNUOWJWTW
      LWMUPWOWKBCDEFGJKLWSMUQURXAWLXCWHFQZWJWTWLWMUSXAEVAOZWKAOZWFWQWLXDVBXAWCX
      EWCWDWFWTWNVCZEVDVEZWTWJXFWNWOAWKEIWSVFVGWEWFWTWNVKZWJWTWQWNWRVHZADEFWKHG
      IJKVIVJVLVMXAEVNOZWHAOZXBWIUFXAWCXKXGEVOVEXAXEWQWFXLXHXJXIADEGHIKVPULABEF
      WHIJLVQVRWBVSVTWA $.
  $}

  ${
    lhpmcvr.b $e |- B = ( Base ` K ) $.
    lhpmcvr.l $e |- .<_ = ( le ` K ) $.
    lhpmcvr.m $e |- ./\ = ( meet ` K ) $.
    lhpmcvr.c $e |- C = ( <o ` K ) $.
    lhpmcvr.h $e |- H = ( LHyp ` K ) $.
    $( The meet of a lattice hyperplane with an element not under it is covered
       by the element.  (Contributed by NM, 7-Dec-2012.) $)
    lhpmcvr $p |- ( ( ( K e. HL /\ W e. H ) /\ ( X e. B /\ -. X .<_ W ) )
          -> ( X ./\ W ) C X ) $=
      ( chlt wcel wa wbr co syl3anc cfv clat wceq hllat ad2antrr simprl lhpbase
      wn ad2antlr latmcom cjn cp1 eqid lhp1cvr adantr lhpj1 breqtrrd wb cvrexch
      simpll mpbird eqbrtrd ) DNOZGCOZPZHAOZHGEQUGZPZPZHGFRZGHFRZHBVHDUAOZVEGAO
      ZVIVJUBVBVKVCVGDUCUDVDVEVFUEZVCVLVBVGACDGIMUFUHZADFHGIKUISVHVJHBQZGGHDUJT
      ZRZBQZVHGDUKTZVQBVDGVSBQVGNBVSCDGVSULZLMUMUNAVSCVPDEGHIJVPULZVTMUOUPVHVBV
      LVEVOVRUQVBVCVGUSVNVMABVPDFGHIWAKLURSUTVA $.
  $}

  ${
    $d p A $.  $d p B $.  $d p K $.  $d p .<_ $.  $d p ./\ $.  $d p X $.
    $d p W $.
    lhpmcvr2.b $e |- B = ( Base ` K ) $.
    lhpmcvr2.l $e |- .<_ = ( le ` K ) $.
    lhpmcvr2.j $e |- .\/ = ( join ` K ) $.
    lhpmcvr2.m $e |- ./\ = ( meet ` K ) $.
    lhpmcvr2.a $e |- A = ( Atoms ` K ) $.
    lhpmcvr2.h $e |- H = ( LHyp ` K ) $.
    $( Alternate way to express that the meet of a lattice hyperplane with an
       element not under it is covered by the element.  (Contributed by NM,
       9-Apr-2013.) $)
    lhpmcvr2 $p |- ( ( ( K e. HL /\ W e. H ) /\ ( X e. B /\ -. X .<_ W ) )
          -> E. p e. A ( -. p .<_ W /\ ( p .\/ ( X ./\ W ) ) = X ) ) $=
      ( wcel wa wbr wn chlt co ccvr cfv cv wceq wrex eqid lhpmcvr simpll simprl
      wb lhpbase ad2antlr cvrval5 syl3anc mpbid ) EUAQZHCQZRZIBQZIHFSTZRZRZIHGU
      BZIEUCUDZSZJUEZHFSTVHVEDUBIUFRJAUGZBVFCEFGHIKLNVFUHZPUIVDURVAHBQZVGVIULUR
      USVCUJUTVAVBUKUSVKURVCBCEHKPUMUNABVFDEFGIHJKLMNVJOUOUPUQ $.

    $( Specialization of ~ lhpmcvr2 .  TODO:  Use this to simplify many uses of
       ` ( P .\/ ( X ./\ W ) ) = X ` to become ` P .<_ X ` .  (Contributed by
       NM, 6-Apr-2014.) $)
    lhpmcvr3 $p |- ( ( ( K e. HL /\ W e. H ) /\ ( X e. B /\ -. X .<_ W )
         /\ ( P e. A /\ -. P .<_ W ) )
      -> ( P .<_ X <-> ( P .\/ ( X ./\ W ) ) = X ) ) $=
      ( wcel wa co syl chlt wbr wn w3a wceq cp1 simpl1l simpl3l simpl2l simpl1r
      cfv lhpbase simpr atmod3i1 syl131anc simpl1 simpl3 lhpjat2 syl2anc oveq2d
      eqid hlol olm11 3eqtrd clat atbase latmcl syl3anc latlej1 breqtrd impbida
      col hllat ) FUAQZIDQZRZJBQZJIGUBUCZRZCAQZCIGUBUCZRZUDZCJGUBZCJIHSZESZJUEZ
      WCWDRZWFJCIESZHSZJFUFUKZHSZJWHVNVTVQIBQZWDWFWJUEVNVOVSWBWDUGZVTWAVPVSWDUH
      VQVRVPWBWDUIZWHVOWMVNVOVSWBWDUJBDFIKPULZTWCWDUMABCEFGHJIKLMNOUNUOWHWIWKJH
      WHVPWBWIWKUEVPVSWBWDUPVPVSWBWDUQACWKDEFGILMWKVAZOPURUSUTWHFVLQZVQWLJUEWHV
      NWRWNFVBTWOBWKFHJKNWQVCUSVDWCWGRZCWFJGWSFVEQZCBQZWEBQZCWFGUBWSVNWTVNVOVSW
      BWGUGFVMTZWSVTXAVTWAVPVSWGUHABCFKOVFTWSWTVQWMXBXCVQVRVPWBWGUIWSVOWMVNVOVS
      WBWGUJWPTBFHJIKNVGVHBEFGCWEKLMVIVHWCWGUMVJVK $.

    $( Specialization of ~ lhpmcvr2 .  (Contributed by NM, 6-Apr-2014.)
       (New usage is discouraged.) $)
    lhpmcvr4N $p |- ( ( ( K e. HL /\ W e. H ) /\ ( ( X e. B /\ -. X .<_ W )
         /\ ( P e. A /\ -. P .<_ W ) )
         /\ ( Y e. B /\ ( X ./\ Y ) .<_ W /\ P .<_ X ) ) -> -. P .<_ Y ) $=
      ( wcel wa wbr chlt wn co w3a simp2rr simp33 clat simp1l hllat syl simp2rl
      wb atbase simp2ll simp31 latlem12 syl13anc biimpd mpand simp32 wi syl3anc
      latmcl simp1r lhpbase lattr mpan2d syld mtod ) FUARZIDRZSZJBRZJIGTUBZSZCA
      RZCIGTZUBZSZSZKBRZJKHUCZIGTZCJGTZUDZUDZCKGTZVQVPVRVOVLWEUEWFWGCWBGTZVQWFW
      DWGWHVLVTWAWCWDUFWFWDWGSZWHWFFUGRZCBRZVMWAWIWHULWFVJWJVJVKVTWEUHFUIUJZWFV
      PWKVPVRVOVLWEUKABCFLPUMUJZVMVNVSVLWEUNZVLVTWAWCWDUOZBFGHCJKLMOUPUQURUSWFW
      HWCVQVLVTWAWCWDUTWFWJWKWBBRZIBRZWHWCSVQVAWLWMWFWJVMWAWPWLWNWOBFHJKLOVCVBW
      FVKWQVJVKVTWEVDBDFILQVEUJBFGCWBILMVFUQVGVHVI $.

    $d p H $.  $d p Y $.
    $( Specialization of ~ lhpmcvr2 .  (Contributed by NM, 6-Apr-2014.)
       (New usage is discouraged.) $)
    lhpmcvr5N $p |- ( ( ( K e. HL /\ W e. H ) /\ ( X e. B /\ -. X .<_ W )
         /\ ( Y e. B /\ ( X ./\ Y ) .<_ W ) )
          -> E. p e. A ( -. p .<_ W /\ -. p .<_ Y /\
               ( p .\/ ( X ./\ W ) ) = X ) ) $=
      ( wcel wa wbr chlt wn w3a wceq wrex lhpmcvr2 3adant3 simp3l simp11 simp12
      co cv simp2 jca simp13l simp13r simp11l hllat syl atbase 3ad2ant2 simp12l
      simp11r lhpbase latmcl syl3anc latlej1 simp3r breqtrd lhpmcvr4N syl123anc
      clat 3jca 3expia reximdva mpd ) EUARZHCRZSZIBRZIHFTUBZSZJBRZIJGUKHFTZSZUC
      ZKULZHFTUBZWGIHGUKZDUKZIUDZSZKAUEZWHWGJFTUBZWKUCZKAUEVSWBWMWEABCDEFGHIKLM
      NOPQUFUGWFWLWOKAWFWGARZWLWOWFWPWLUCZWHWNWKWFWPWHWKUHZWQVSWBWPWHSWCWDWGIFT
      WNVSWBWEWPWLUIVSWBWEWPWLUJWQWPWHWFWPWLUMWRUNWCWDVSWBWPWLUOWCWDVSWBWPWLUPW
      QWGWJIFWQEVLRZWGBRZWIBRZWGWJFTWQVQWSVQVRWBWEWPWLUQEURUSZWPWFWTWLABWGELPUT
      VAWQWSVTHBRZXAXBVTWAVSWEWPWLVBWQVRXCVQVRWBWEWPWLVCBCEHLQVDUSBEGIHLOVEVFBD
      EFWGWILMNVGVFWFWPWHWKVHZVIABWGCDEFGHIJLMNOPQVJVKXDVMVNVOVP $.

    $( Specialization of ~ lhpmcvr2 .  (Contributed by NM, 6-Apr-2014.)
       (New usage is discouraged.) $)
    lhpmcvr6N $p |- ( ( ( K e. HL /\ W e. H ) /\ ( X e. B /\ -. X .<_ W )
         /\ ( Y e. B /\ ( X ./\ Y ) .<_ W ) )
          -> E. p e. A ( -. p .<_ W /\ -. p .<_ Y /\
               p .<_ X ) ) $=
      ( wcel wbr w3a chlt wa wn co cv wceq wrex lhpmcvr5N simp31 simp32 simp11l
      clat hllat atbase 3ad2ant2 simp12l simp11r lhpbase latmcl syl3anc latlej1
      syl simp33 breqtrd 3jca 3expia reximdva mpd ) EUARZHCRZUBZIBRZIHFSUCZUBZJ
      BRIJGUDHFSUBZTZKUEZHFSUCZVQJFSUCZVQIHGUDZDUDZIUFZTZKAUGVRVSVQIFSZTZKAUGAB
      CDEFGHIJKLMNOPQUHVPWCWEKAVPVQARZWCWEVPWFWCTZVRVSWDVPWFVRVSWBUIVPWFVRVSWBU
      JWGVQWAIFWGEULRZVQBRZVTBRZVQWAFSWGVIWHVIVJVNVOWFWCUKEUMVBZWFVPWIWCABVQELP
      UNUOWGWHVLHBRZWJWKVLVMVKVOWFWCUPWGVJWLVIVJVNVOWFWCUQBCEHLQURVBBEGIHLOUSUT
      BDEFVQVTLMNVAUTVPWFVRVSWBVCVDVEVFVGVH $.
  $}

  ${
    lhpm0at.b $e |- B = ( Base ` K ) $.
    lhpm0at.m $e |- ./\ = ( meet ` K ) $.
    lhpm0at.o $e |- .0. = ( 0. ` K ) $.
    lhpm0at.a $e |- A = ( Atoms ` K ) $.
    lhpm0at.h $e |- H = ( LHyp ` K ) $.
    $( If the meet of a lattice hyperplane with a nonzero element is zero, the
       element is an atom.  (Contributed by NM, 28-Apr-2014.)
       (New usage is discouraged.) $)
    lhpm0atN $p |- ( ( ( K e. HL /\ W e. H )
             /\ ( X e. B /\ X =/= .0. /\ ( X ./\ W ) = .0. ) ) -> X e. A ) $=
      ( chlt wcel wa wceq cfv wbr wb wne co w3a ccvr simpr3 simpl simpr1 simpr2
      cple wn clat hllat ad2antrr lhpbase eqid latleeqm1 syl3anc biimpa simplr3
      ad2antlr eqtr3d ex necon3ad lhpmcvr syl12anc eqbrtrrd simpll isat2 mpbird
      mpd syl2anc ) DNOZFCOZPZGBOZGHUAZGFEUBZHQZUCZPZGAOZHGDUDRZSZVTVQHGWBVNVOV
      PVRUEVTVNVOGFDUIRZSZUJZVQGWBSVNVSUFVNVOVPVRUGZVTVPWFVNVOVPVRUHVTWEGHVTWEG
      HQVTWEPVQGHVTWEVQGQZVTDUKOZVOFBOZWEWHTVLWIVMVSDULUMWGVMWJVLVSBCDFIMUNUTBD
      WDEGFIWDUOZJUPUQURVOVPVRVNWEUSVAVBVCVJBWBCDWDEFGIWKJWBUOZMVDVEVFVTVLVOWAW
      CTVLVMVSVGWGABWBNGDHIKWLLVHVKVI $.
  $}

  ${
    lhpmat.l $e |- .<_ = ( le ` K ) $.
    lhpmat.m $e |- ./\ = ( meet ` K ) $.
    lhpmat.z $e |- .0. = ( 0. ` K ) $.
    lhpmat.a $e |- A = ( Atoms ` K ) $.
    lhpmat.h $e |- H = ( LHyp ` K ) $.
    $( An element covered by the lattice unit, when conjoined with an atom not
       under it, equals the lattice zero.  (Contributed by NM, 6-Jun-2012.) $)
    lhpmat $p |- ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W ) )
          -> ( P ./\ W ) = .0. ) $=
      ( chlt wcel wa wbr wn co wceq simprr cal cbs cfv wb hlatl ad2antrr simprl
      eqid lhpbase ad2antlr atnle syl3anc mpbid ) DNOZGCOZPZBAOZBGEQRZPZPZUSBGF
      SHTZUQURUSUAVADUBOZURGDUCUDZOZUSVBUEUOVCUPUTDUFUGUQURUSUHUPVEUOUTVDCDGVDU
      IZMUJUKAVDBDEFGHVFIJKLULUMUN $.

    $( An element covered by the lattice unit, when conjoined with an atom,
       equals zero iff the atom is not under it.  (Contributed by NM,
       15-Jun-2013.) $)
    lhpmatb $p |- ( ( ( K e. HL /\ W e. H ) /\ P e. A )
          -> ( -. P .<_ W <-> ( P ./\ W ) = .0. ) ) $=
      ( wcel wa wceq wne ad3antrrr wb mpbird wbr wn co lhpmat anassrs cal hlatl
      chlt simplr atn0 necomd syl2anc neeq1 adantl clat cbs cfv eqid atbase syl
      hllat lhpbase ad3antlr latleeqm1 syl3anc necon3bbid impbida ) DUHNZGCNZOZ
      BANZOZBGEUAZUBZBGFUCZHPZVJVKVNVPABCDEFGHIJKLMUDUEVLVPOZVNVOBQZVQVRHBQZVQD
      UFNZVKVSVHVTVIVKVPDUGRVJVKVPUIZVTVKOBHABDHKLUJUKULVPVRVSSVLVOHBUMUNTVQVMV
      OBVQDUONZBDUPUQZNZGWCNZVMVOBPSVHWBVIVKVPDVARVQVKWDWAAWCBDWCURZLUSUTVIWEVH
      VKVPWCCDGWFMVBVCWCDEFBGWFIJVDVEVFTVG $.
  $}

  ${
    lhp2at0.l $e |- .<_ = ( le ` K ) $.
    lhp2at0.j $e |- .\/ = ( join ` K ) $.
    lhp2at0.m $e |- ./\ = ( meet ` K ) $.
    lhp2at0.z $e |- .0. = ( 0. ` K ) $.
    lhp2at0.a $e |- A = ( Atoms ` K ) $.
    lhp2at0.h $e |- H = ( LHyp ` K ) $.
    $( Join and meet with different atoms under co-atom ` W ` .  (Contributed
       by NM, 15-Jun-2013.) $)
    lhp2at0 $p |- ( ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W )
        /\ U =/= V ) /\ ( U e. A /\ U .<_ W ) /\ ( V e. A /\ V .<_ W ) )
          -> ( ( P .\/ U ) ./\ V ) = .0. ) $=
      ( wcel co wceq chlt wa wbr wn wne w3a col cbs cfv simp11l hlol syl simp2l
      simp12l hlatjcl syl3anc simp11r lhpbase simp3l atbase latmassOLD syl13anc
      eqid lhpmat 3adant3 3ad2ant1 oveq1d simp2r atmod4i2 olj02 syl2anc 3eqtr3d
      syl131anc eqtr3d simp3r clat wb hllat latleeqm2 mpbid oveq2d simp13 hlatl
      cal atnem0 ) FUARZJDRZUBZBARZBJGUCUDZUBZCIUEZUFZCARZCJGUCZUBZIARZIJGUCZUB
      ZUFZBCESZJIHSZHSZCIHSZXAIHSKWTXAJHSZIHSZXCXDWTFUGRZXAFUHUIZRZJXHRZIXHRZXF
      XCTWTWFXGWFWGWKWLWPWSUJZFUKULZWTWFWIWNXIXLWIWJWHWLWPWSUNZWMWNWOWSUMZAXHEF
      BCXHVCZMPUOUPWTWGXJWFWGWKWLWPWSUQXHDFJXPQURULZWTWQXKWMWPWQWRUSZAXHIFXPPUT
      ULZXHFHXAJIXPNVAVBWTXECIHWTBJHSZCESZKCESZXECWTXTKCEWMWPXTKTZWSWHWKYCWLABD
      FGHJKLNOPQVDVEVFVGWTWFWICXHRZXJWOYAXETXLXNWTWNYDXOAXHCFXPPUTULZXQWMWNWOWS
      VHAXHBEFGHCJXPLMNPVIVMWTXGYDYBCTXMYEXHEFCKXPMOVJVKVLVGVNWTXBIXAHWTWRXBITZ
      WMWPWQWRVOWTFVPRZXKXJWRYFVQWTWFYGXLFVRULXSXQXHFGHIJXPLNVSUPVTWAWTWLXDKTZW
      HWKWLWPWSWBWTFWDRZWNWQWLYHVQWTWFYIXLFWCULXOXRACIFHKNOPWEUPVTVL $.
  $}

  ${
    lhp2atnle.l $e |- .<_ = ( le ` K ) $.
    lhp2atnle.j $e |- .\/ = ( join ` K ) $.
    lhp2atnle.a $e |- A = ( Atoms ` K ) $.
    lhp2atnle.h $e |- H = ( LHyp ` K ) $.
    $( Inequality for 2 different atoms under co-atom ` W ` .  (Contributed by
       NM, 17-Jun-2013.) $)
    lhp2atnle $p |- ( ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W )
        /\ U =/= V ) /\ ( U e. A /\ U .<_ W ) /\ ( V e. A /\ V .<_ W ) )
          -> -. V .<_ ( P .\/ U ) ) $=
      ( wcel wa wbr cfv syl eqid wceq chlt wn wne w3a cp0 co cal simp11l simp3l
      hlatl atn0 syl2anc cmee clat cbs wb atbase simp12l simp2l hlatjcl syl3anc
      hllat latleeqm2 lhp2at0 eqeq1 syl5ibcom sylbid necon3ad mpd ) FUANZIDNZOZ
      BANZBIGPUBZOZCHUCZUDZCANZCIGPZOZHANZHIGPZOZUDZHFUEQZUCZHBCEUFZGPZUBWDFUGN
      ZWAWFWDVJWIVJVKVOVPVTWCUHZFUJRVQVTWAWBUIZAHFWEWESZLUKULWDWHHWEWDWHWGHFUMQ
      ZUFZHTZHWETZWDFUNNZHFUOQZNZWGWRNZWHWOUPWDVJWQWJFVBRWDWAWSWKAWRHFWRSZLUQRW
      DVJVMVRWTWJVMVNVLVPVTWCURVQVRVSWCUSAWREFBCXAKLUTVAWRFGWMHWGXAJWMSZVCVAWDW
      NWETWOWPABCDEFGWMHIWEJKXBWLLMVDWNHWEVEVFVGVHVI $.

    $( Inequality for joins with 2 different atoms under co-atom ` W ` .
       (Contributed by NM, 22-Jul-2013.) $)
    lhp2atne $p |- ( ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W )
                /\ Q e. A )
        /\ ( ( U e. A /\ U .<_ W ) /\ ( V e. A /\ V .<_ W ) )
        /\ U =/= V ) -> ( P .\/ U ) =/= ( Q .\/ V ) ) $=
      ( wcel wa wbr wn w3a wne chlt simp11 simp12 simp3 simp2l simp2r lhp2atnle
      co syl311anc wceq simp11l simp13 simp2rl hlatlej2 syl3anc adantr breqtrrd
      simpr ex necon3bd mpd ) GUAOZJEOZPZBAOBJHQRPZCAOZSZDAODJHQPZIAOZIJHQZPZPZ
      DITZSZIBDFUHZHQZRZVOCIFUHZTVNVDVEVMVHVKVQVDVEVFVLVMUBVDVEVFVLVMUCVGVLVMUD
      VGVHVKVMUEVGVHVKVMUFABDEFGHIJKLMNUGUIVNVPVOVRVNVOVRUJZVPVNVSPIVRVOHVNIVRH
      QZVSVNVBVFVIVTVBVCVEVFVLVMUKVDVEVFVLVMULVIVJVHVGVMUMACIFGHKLMUNUOUPVNVSUR
      UQUSUTVA $.
  $}

  ${
    lhp2at0nle.l $e |- .<_ = ( le ` K ) $.
    lhp2at0nle.j $e |- .\/ = ( join ` K ) $.
    lhp2at0nle.z $e |- .0. = ( 0. ` K ) $.
    lhp2at0nle.a $e |- A = ( Atoms ` K ) $.
    lhp2at0nle.h $e |- H = ( LHyp ` K ) $.
    $( Inequality for 2 different atoms (or an atom and zero) under co-atom
       ` W ` .  (Contributed by NM, 28-Jul-2013.) $)
    lhp2at0nle $p |- ( ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W )
        /\ U =/= V ) /\ ( ( U e. A \/ U = .0. ) /\ U .<_ W )
        /\ ( V e. A /\ V .<_ W ) )
          -> -. V .<_ ( P .\/ U ) ) $=
      ( wcel wa wbr wn wceq wne w3a wo co simpl1 simpr simpl2r simpl3 lhp2atnle
      chlt syl121anc simp3r simp12r nbrne2 syl2anc neneqd cal simp11l hlatl syl
      wb simp3l simp12l atcmp syl3anc mtbird adantr oveq2 col cbs cfv hlol eqid
      atbase olj01 sylan9eqr breq2d simp2l mpjaodan ) FUJPZIDPZQZBAPZBIGRSZQZCH
      UAZUBZCAPZCJTZUCZCIGRZQZHAPZHIGRZQZUBZWHHBCEUDZGRZSZWIWPWHQWGWHWKWOWSWGWL
      WOWHUEWPWHUFWJWKWGWOWHUGWGWLWOWHUHABCDEFGHIKLNOUIUKWPWIQZWRHBGRZWPXASWIWP
      XAHBTZWPHBWPWNWDHBUAWGWLWMWNULWCWDWBWFWLWOUMHBIGUNUOUPWPFUQPZWMWCXAXBVAWP
      VTXCVTWAWEWFWLWOURZFUSUTWGWLWMWNVBWCWDWBWFWLWOVCZAHBFGKNVDVEVFVGWTWQBHGWI
      WPWQBJEUDZBCJBEVHWPFVIPZBFVJVKZPZXFBTWPVTXGXDFVLUTWPWCXIXEAXHBFXHVMZNVNUT
      XHEFBJXJLMVOUOVPVQVFWGWJWKWOVRVS $.

    $( Inequality for joins with 2 different atoms (or an atom and zero) under
       co-atom ` W ` .  (Contributed by NM, 28-Jul-2013.) $)
    lhp2at0ne $p |- ( ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W )
                /\ Q e. A )
        /\ ( ( ( U e. A \/ U = .0. ) /\ U .<_ W ) /\ ( V e. A /\ V .<_ W ) )
        /\ U =/= V ) -> ( P .\/ U ) =/= ( Q .\/ V ) ) $=
      ( wcel wa wbr wn chlt w3a wo wne co simp11 simp12 simp3 simp2l lhp2at0nle
      wceq simp2r simp11l simp13 simp2rl hlatlej2 syl3anc adantr simpr breqtrrd
      syl311anc ex necon3bd mpd ) GUAQZJEQZRZBAQBJHSTRZCAQZUBZDAQDKUKUCDJHSRZIA
      QZIJHSZRZRZDIUDZUBZIBDFUEZHSZTZVRCIFUEZUDVQVGVHVPVKVNVTVGVHVIVOVPUFVGVHVI
      VOVPUGVJVOVPUHVJVKVNVPUIVJVKVNVPULABDEFGHIJKLMNOPUJVAVQVSVRWAVQVRWAUKZVSV
      QWBRIWAVRHVQIWAHSZWBVQVEVIVLWCVEVFVHVIVOVPUMVGVHVIVOVPUNVLVMVKVJVPUOACIFG
      HLMOUPUQURVQWBUSUTVBVCVD $.
  $}

  ${
    lhpelim.b $e |- B = ( Base ` K ) $.
    lhpelim.l $e |- .<_ = ( le ` K ) $.
    lhpelim.j $e |- .\/ = ( join ` K ) $.
    lhpelim.m $e |- ./\ = ( meet ` K ) $.
    lhpelim.a $e |- A = ( Atoms ` K ) $.
    lhpelim.h $e |- H = ( LHyp ` K ) $.
    $( Eliminate an atom not under a lattice hyperplane.  TODO:  Look at proofs
       using ~ lhpmat to see if this can be used to shorten them.  (Contributed
       by NM, 27-Apr-2013.) $)
    lhpelim $p |- ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W )
     /\ X e. B ) -> ( ( P .\/ ( X ./\ W ) ) ./\ W ) = ( X ./\ W ) ) $=
      ( wcel co wceq syl chlt wbr w3a cp0 cfv eqid lhpmat 3adant3 oveq1d simp1l
      wa simp2l clat hllat simp3 simp1r lhpbase latmcl syl3anc latmle2 atmod4i2
      wn syl131anc col hlol olj02 syl2anc 3eqtr3d ) FUAQZIDQZUKZCAQZCIGUBVBZUKZ
      JBQZUCZCIHRZJIHRZERZFUDUEZVRERZCVRERIHRZVRVPVQVTVREVKVNVQVTSVOACDFGHIVTLN
      VTUFZOPUGUHUIVPVIVLVRBQZIBQZVRIGUBZVSWBSVIVJVNVOUJZVKVLVMVOULVPFUMQZVOWEW
      DVPVIWHWGFUNTZVKVNVOUOZVPVJWEVIVJVNVOUPBDFIKPUQTZBFHJIKNURUSZWKVPWHVOWEWF
      WIWJWKBFGHJIKLNUTUSABCEFGHVRIKLMNOVAVCVPFVDQZWDWAVRSVPVIWMWGFVETWLBEFVRVT
      KMWCVFVGVH $.
  $}

  ${
    lhpmod.b $e |- B = ( Base ` K ) $.
    lhpmod.l $e |- .<_ = ( le ` K ) $.
    lhpmod.j $e |- .\/ = ( join ` K ) $.
    lhpmod.m $e |- ./\ = ( meet ` K ) $.
    lhpmod.h $e |- H = ( LHyp ` K ) $.
    $( Modular law for hyperplanes analogous to ~ atmod2i2 for atoms.
       (Contributed by NM, 9-Feb-2013.) $)
    lhpmod2i2 $p |- ( ( ( K e. HL /\ W e. H ) /\ ( X e. B /\ Y e. B )
        /\ Y .<_ X ) -> ( ( X ./\ W ) .\/ Y ) = ( X ./\ ( W .\/ Y ) ) ) $=
      ( wcel co wceq cfv syl syl3anc chlt wa wbr w3a catm simp1l simp1r lhpocat
      coc eqid syl2anc cops simp2l opoccl simp2r simp3 oplecon3b mpbid atmod1i2
      hlop syl131anc clat hllat lhpbase latmcl latjcl opcon3b col oldmm1 oldmj1
      wb hlol oveq2d eqtrd oveq1d eqeq12d bitrd mpbird ) DUAOZGBOZUBZHAOZIAOZUB
      ZIHEUCZUDZHGFPZICPZHGICPZFPZQZHDUIRZRZGWLRZIWLRZFPZCPZWMWNCPZWOFPZQZWFVSW
      NDUERZOZWMAOZWOAOZWMWOEUCZWTVSVTWDWEUFZWFVSVTXBXFVSVTWDWEUGZXABDWLGWLUJZX
      AUJZNUHUKWFDULOZWBXCWFVSXJXFDUTSZWAWBWCWEUMZADWLHJXHUNUKWFXJWCXDXKWAWBWCW
      EUOZADWLIJXHUNUKWFWEXEWAWDWEUPWFXJWCWBWEXEVKXKXMXLADEWLIHJKXHUQTURXAAWNCD
      EFWMWOJKLMXIUSVAWFWKWJWLRZWHWLRZQZWTWFXJWHAOZWJAOZWKXPVKXKWFDVBOZWGAOZWCX
      QWFVSXSXFDVCSZWFXSWBGAOZXTYAXLWFVTYBXGABDGJNVDSZADFHGJMVETZXMACDWGIJLVFTW
      FXSWBWIAOZXRYAXLWFXSYBWCYEYAYCXMACDGIJLVFTZADFHWIJMVETADWLWHWJJXHVGTWFXNW
      QXOWSWFXNWMWIWLRZCPZWQWFDVHOZWBYEXNYHQWFVSYIXFDVLSZXLYFACDFWLHWIJLMXHVITW
      FYGWPWMCWFYIYBWCYGWPQYJYCXMACDFWLGIJLMXHVJTVMVNWFXOWGWLRZWOFPZWSWFYIXTWCX
      OYLQYJYDXMACDFWLWGIJLMXHVJTWFYKWRWOFWFYIWBYBYKWRQYJXLYCACDFWLHGJLMXHVITVO
      VNVPVQVR $.

    $( Modular law for hyperplanes analogous to complement of ~ atmod2i1 for
       atoms.  (Contributed by NM, 1-Jun-2013.) $)
    lhpmod6i1 $p |- ( ( ( K e. HL /\ W e. H ) /\ ( X e. B /\ Y e. B )
        /\ X .<_ W ) -> ( X .\/ ( Y ./\ W ) ) = ( ( X .\/ Y ) ./\ W ) ) $=
      ( wcel co wceq cfv syl syl3anc chlt wa wbr w3a catm simp1l simp1r lhpocat
      eqid syl2anc cops hlop simp2l opoccl simp2r simp3 lhpbase oplecon3b mpbid
      coc atmod2i1 syl131anc clat hllat latmcl latjcl opcon3b col oldmm1 oldmj1
      wb hlol oveq1d eqtrd oveq2d eqeq12d bitrd mpbird ) DUAOZGBOZUBZHAOZIAOZUB
      ZHGEUCZUDZHIGFPZCPZHICPZGFPZQZHDUTRZRZIWLRZFPZGWLRZCPZWMWNWPCPZFPZQZWFVSW
      PDUERZOZWMAOZWNAOZWPWMEUCZWTVSVTWDWEUFZWFVSVTXBXFVSVTWDWEUGZXABDWLGWLUIZX
      AUIZNUHUJWFDUKOZWBXCWFVSXJXFDULSZWAWBWCWEUMZADWLHJXHUNUJWFXJWCXDXKWAWBWCW
      EUOZADWLIJXHUNUJWFWEXEWAWDWEUPWFXJWBGAOZWEXEVKXKXLWFVTXNXGABDGJNUQSZADEWL
      HGJKXHURTUSXAAWPCDEFWMWNJKLMXIVAVBWFWKWJWLRZWHWLRZQZWTWFXJWHAOZWJAOZWKXRV
      KXKWFDVCOZWBWGAOZXSWFVSYAXFDVDSZXLWFYAWCXNYBYCXMXOADFIGJMVETZACDHWGJLVFTW
      FYAWIAOZXNXTYCWFYAWBWCYEYCXLXMACDHIJLVFTZXOADFWIGJMVETADWLWHWJJXHVGTWFXPW
      QXQWSWFXPWIWLRZWPCPZWQWFDVHOZYEXNXPYHQWFVSYIXFDVLSZYFXOACDFWLWIGJLMXHVITW
      FYGWOWPCWFYIWBWCYGWOQYJXLXMACDFWLHIJLMXHVJTVMVNWFXQWMWGWLRZFPZWSWFYIWBYBX
      QYLQYJXLYDACDFWLHWGJLMXHVJTWFYKWRWMFWFYIWCXNYKWRQYJXMXOACDFWLIGJLMXHVITVO
      VNVPVQVR $.
  $}

  ${
    $d p B $.  $d p w C $.  $d p w H $.  $d p w K $.  $d p w .<_ $.
    $d p w ./\ $.  $d p .< $.  $d p w X $.  $d p w Y $.
    lhprelat3.b $e |- B = ( Base ` K ) $.
    lhprelat3.l $e |- .<_ = ( le ` K ) $.
    lhprelat3.s $e |- .< = ( lt ` K ) $.
    lhprelat3.m $e |- ./\ = ( meet ` K ) $.
    lhprelat3.c $e |- C = ( <o ` K ) $.
    lhprelat3.h $e |- H = ( LHyp ` K ) $.
    $( The Hilbert lattice is relatively atomic with respect to co-atoms
       (lattice hyperplanes).  Dual version of ~ hlrelat3 .  (Contributed by
       NM, 20-Jun-2012.)  (New usage is discouraged.) $)
    lhprelat3N $p |- ( ( ( K e. HL /\ X e. B /\ Y e. B ) /\ X .< Y )
         -> E. w e. H ( X .<_ ( Y ./\ w ) /\ ( Y ./\ w ) C Y ) ) $=
      ( wcel wbr wa cfv vp chlt w3a coc cv co wrex catm simpr wb simpll1 atbase
      cjn eqid adantl lhpoc2N syl2anc mpbid adantr cops hlop clat hllat simpll3
      syl opoccl latmcl syl3anc cvrcon3b col wceq oldmm3N breq2d bitr2d simpll2
      hlol oplecon3b breq1d anbi12d biimpa ancomd oveq2 rspcev simpl1 opltcon3b
      simpl3 simpl2 hlrelat3 syl31anc r19.29a ) FUBQZIBQZJBQZUCZIJDRZSZJFUDTZTZ
      WRUAUEZFUMTZUFZCRZXAIWQTZGRZSZIJAUEZHUFZGRZXGJCRZSZAEUGZUAFUHTZWPWSXLQZSZ
      XESZWSWQTZEQZIJXPHUFZGRZXRJCRZSZXKXNXQXEXNXMXQWPXMUIXNWKWSBQZXMXQUJWKWLWM
      WOXMUKZXMYBWPXLBWSFKXLUNZULUOZXLBEFWQWSKWQUNZYDPUPUQURUSXOXTXSXNXEXTXSSXN
      XBXTXDXSXNXTWRXRWQTZCRZXBXNFUTQZXRBQZWMXTYHUJXNWKYIYCFVAZVEZXNFVBQZWMXPBQ
      ZYJXNWKYMYCFVCVEWKWLWMWOXMVDZXNYIYBYNYLYEBFWQWSKYFVFUQBFHJXPKNVGVHZYOBCFW
      QXRJKYFOVIVHXNYGXAWRCXNFVJQZWMYBYGXAVKXNWKYQYCFVPVEYOYEBWTFHWQJWSKWTUNZNY
      FVLVHZVMVNXNXSYGXCGRZXDXNYIWLYJXSYTUJYLWKWLWMWOXMVOYPBFGWQIXRKLYFVQVHXNYG
      XAXCGYSVRVNVSVTWAXJYAAXPEXFXPVKZXHXSXIXTUUAXGXRIGXFXPJHWBZVMUUAXGXRJCUUBV
      RVSWCUQWPWKWRBQZXCBQZWRXCDRZXEUAXLUGWKWLWMWOWDZWPYIWMUUCWPWKYIUUFYKVEZWKW
      LWMWOWFZBFWQJKYFVFUQWPYIWLUUDUUGWKWLWMWOWGZBFWQIKYFVFUQWPWOUUEWNWOUIWPYIW
      LWMWOUUEUJUUGUUIUUHBDFWQIJKMYFWEVHURXLBCDWTFGWRXCUAKLMYROYDWHWIWJ $.
  $}

  ${
    $d r A $.  $d r .\/ $.  $d r K $.  $d r .<_ $.  $d r P $.  $d r Q $.
    $d r W $.
    cdlemb2.l $e |- .<_ = ( le ` K ) $.
    cdlemb2.j $e |- .\/ = ( join ` K ) $.
    cdlemb2.a $e |- A = ( Atoms ` K ) $.
    cdlemb2.h $e |- H = ( LHyp ` K ) $.
    $( TODO: derive directly instead of via ~ cdlemb . $)
    $( Given two atoms not under the fiducial (reference) co-atom ` W ` , there
       is a third.  Lemma B in [Crawley] p. 112.  (Contributed by NM,
       30-May-2012.) $)
    cdlemb2 $p |- ( ( ( K e. HL /\ W e. H ) /\
          ( ( P e. A /\ -. P .<_ W ) /\ ( Q e. A /\ -. Q .<_ W ) )
        /\ P =/= Q )
      -> E. r e. A ( -. r .<_ W /\ -. r .<_ ( P .\/ Q ) ) ) $=
      ( chlt wcel wa wbr wn cfv eqid wne w3a cbs ccvr cv co wrex simp1l simp2ll
      cp1 simp2rl simp1r lhpbase syl lhp1cvr 3ad2ant1 simp2lr simp2rr syl323anc
      simp3 cdlemb ) FNOZHDOZPZBAOZBHGQRZPZCAOZCHGQRZPZPZBCUAZUBZVBVEVHHFUCSZOZ
      VLHFUJSZFUDSZQZVFVIIUEZHGQRVSBCEUFGQRPIAUGVBVCVKVLUHVEVFVJVDVLUIVHVIVGVDV
      LUKVMVCVOVBVCVKVLULVNDFHVNTZMUMUNVDVKVLUTVDVKVRVLNVQVPDFHVPTZVQTZMUOUPVEV
      FVJVDVLUQVHVIVGVDVLURAVNVQBCVPEFGHIVTJKWAWBLVAUS $.
  $}

  ${
    lhple.b $e |- B = ( Base ` K ) $.
    lhple.l $e |- .<_ = ( le ` K ) $.
    lhple.j $e |- .\/ = ( join ` K ) $.
    lhple.m $e |- ./\ = ( meet ` K ) $.
    lhple.a $e |- A = ( Atoms ` K ) $.
    lhple.h $e |- H = ( LHyp ` K ) $.
    $( Property of a lattice element under a co-atom.  (Contributed by NM,
       28-Feb-2014.) $)
    lhple $p |- ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W )
         /\ ( X e. B /\ X .<_ W ) ) -> ( ( P .\/ X ) ./\ W ) = X ) $=
      ( wcel wa co wceq chlt wbr w3a clat simp1l hllat syl simp2l atbase simp3l
      wn latjcom syl3anc oveq1d simp1 simp3r lhpmod6i1 syl121anc cp0 cfv lhpmat
      eqid 3adant3 oveq2d col hlol olj01 syl2anc eqtrd 3eqtr2d ) FUAQZIDQZRZCAQ
      ZCIGUBUKZRZJBQZJIGUBZRZUCZCJESZIHSJCESZIHSZJCIHSZESZJVTWAWBIHVTFUDQZCBQZV
      QWAWBTVTVKWFVKVLVPVSUEZFUFUGVTVNWGVMVNVOVSUHABCFKOUIUGZVMVPVQVRUJZBEFCJKM
      ULUMUNVTVMVQWGVRWEWCTVMVPVSUOWJWIVMVPVQVRUPBDEFGHIJCKLMNPUQURVTWEJFUSUTZE
      SZJVTWDWKJEVMVPWDWKTVSACDFGHIWKLNWKVBZOPVAVCVDVTFVEQZVQWLJTVTVKWNWHFVFUGW
      JBEFJWKKMWMVGVHVIVJ $.
  $}

  ${
    lhpat.l $e |- .<_ = ( le ` K ) $.
    lhpat.j $e |- .\/ = ( join ` K ) $.
    lhpat.m $e |- ./\ = ( meet ` K ) $.
    lhpat.a $e |- A = ( Atoms ` K ) $.
    lhpat.h $e |- H = ( LHyp ` K ) $.
    $( Create an atom under a co-atom.  Part of proof of Lemma B in [Crawley]
       p. 112.  (Contributed by NM, 23-May-2012.) $)
    lhpat $p |- ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W )
        /\ ( Q e. A /\ P =/= Q ) ) -> ( ( P .\/ Q ) ./\ W ) e. A ) $=
      ( chlt wcel wa wbr cfv eqid wn wne w3a cbs co simp1l simp2l simp3l simp1r
      cp1 ccvr lhpbase syl simp3r lhp1cvr 3ad2ant1 simp2r 1cvrat syl133anc ) FO
      PZIDPZQZBAPZBIGRUAZQZCAPZBCUBZQZUCZUTVCVFIFUDSZPZVGIFUJSZFUKSZRZVDBCEUEIH
      UEAPUTVAVEVHUFVBVCVDVHUGVBVEVFVGUHVIVAVKUTVAVEVHUIVJDFIVJTZNULUMVBVEVFVGU
      NVBVEVNVHOVMVLDFIVLTZVMTZNUOUPVBVCVDVHUQAVJVMBCVLEFGHIVOJKLVPVQMURUS $.

    $( Property of an atom under a co-atom.  (Contributed by NM, 24-Nov-2013.)
       (New usage is discouraged.) $)
    lhpat4N $p |- ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W )
         /\ ( U e. A /\ U .<_ W ) ) -> ( ( P .\/ U ) ./\ W ) = U ) $=
      ( chlt wcel wa wbr wn co w3a cbs cfv wceq simp1 simp3l eqid atbase simp3r
      simp2 syl lhple syl112anc ) FOPIDPQZBAPBIGRSQZCAPZCIGRZQZUAZUNUOCFUBUCZPZ
      UQBCETIHTCUDUNUOURUEUNUOURUJUSUPVAUNUOUPUQUFAUTCFUTUGZMUHUKUNUOUPUQUIAUTB
      DEFGHICVBJKLMNULUM $.

    lhpat2.r $e |- R = ( ( P .\/ Q ) ./\ W ) $.
    $( Create an atom under a co-atom.  Part of proof of Lemma B in [Crawley]
       p. 112.  (Contributed by NM, 21-Nov-2012.) $)
    lhpat2 $p |- ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W )
        /\ ( Q e. A /\ P =/= Q ) ) -> R e. A ) $=
      ( chlt wcel wa co wbr wn wne w3a lhpat syl5eqel ) GQRJERSBARBJHUAUBSCARBC
      UCSUDDBCFTJITAPABCEFGHIJKLMNOUEUF $.

    $( There is only one atom under both ` P .\/ Q ` and co-atom ` W ` .
       (Contributed by NM, 21-Nov-2012.) $)
    lhpat3 $p |- ( ( ( ( K e. HL /\ W e. H ) /\ ( P e. A /\ -. P .<_ W ) )
         /\ ( Q e. A /\ S e. A ) /\ ( P =/= Q /\ S .<_ ( P .\/ Q ) ) )
           -> ( -. S .<_ W <-> S =/= R ) ) $=
      ( wcel wa wbr chlt wn wne co w3a wceq simpl3r simpr wb clat cbs cfv hllat
      simp1ll simp2r eqid atbase simp1rl simp2l hlatjcl syl3anc simp1lr lhpbase
      syl latlem12 syl13anc adantr mpbi2and syl6breqr cal hlatl simpl2r simpl1l
      simpl1r simpl2l simpl3l syl112anc atcmp mpbid latmle2 syl5eqbr syl5ibrcom
      lhpat2 ex breq1 impbid necon3bbid ) HUARZKFRZSZBARZBKITUBZSZSZCARZEARZSZB
      CUCZEBCGUDZITZSZUEZEKITZEDXBXCEDUFZXBXCXDXBXCSZEDITZXDXEEWSKJUDZDIXEWTXCE
      XGITZWRWTWNWQXCUGXBXCUHXBWTXCSXHUIZXCXBHUJRZEHUKULZRZWSXKRZKXKRZXIXBWHXJW
      HWIWMWQXAUNZHUMVDZXBWPXLWNWOWPXAUOAXKEHXKUPZOUQVDXBWHWKWOXMXOWKWLWJWQXAUR
      WNWOWPXAUSAXKGHBCXQMOUTVAZXBWIXNWHWIWMWQXAVBXKFHKXQPVCVDZXKHIJEWSKXQLNVEV
      FVGVHQVIXEHVJRZWPDARZXFXDUIXEWHXTXBWHXCXOVGHVKVDWOWPWNXAXCVLXEWJWMWOWRYAW
      JWMWQXAXCVMWJWMWQXAXCVNWOWPWNXAXCVOWRWTWNWQXCVPABCDFGHIJKLMNOPQWCVQAEDHIL
      OVRVAVSWDXBXCXDDKITXBDXGKIQXBXJXMXNXGKITXPXRXSXKHIJWSKXQLNVTVAWAEDKIWEWBW
      FWG $.
  $}

  ${
    4thatlem.ph $e |- ( ph <-> ( ( ( K e. HL /\ W e. H )
                /\ ( P e. A /\ -. P .<_ W ) /\ ( Q e. A /\ -. Q .<_ W ) )
            /\ ( S e. A
                /\ ( R e. A /\ -. R .<_ W /\ ( P .\/ R ) = ( Q .\/ R ) )
                /\ ( T e. A /\ ( U .\/ T ) = ( V .\/ T ) ) )
            /\ ( P =/= Q /\ -. S .<_ ( P .\/ Q ) ) ) ) $.
    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlemk $p |- ( ph -> K e. HL ) $=
      ( wcel wa wbr wn co chlt w3a wceq wne simp11l sylbi ) AKUAPZNIPZQCBPCNLRS
      QZDBPDNLRSQZUBFBPEBPENLRSCEJTDEJTUCUBGBPHGJTMGJTUCQUBZCDUDFCDJTLRSQZUBUGO
      UGUHUIUJUKULUEUF $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlemw $p |- ( ph -> W e. H ) $=
      ( wcel wa wbr wn co chlt w3a wceq wne simp11r sylbi ) AKUAPZNIPZQCBPCNLRS
      QZDBPDNLRSQZUBFBPEBPENLRSCEJTDEJTUCUBGBPHGJTMGJTUCQUBZCDUDFCDJTLRSQZUBUHO
      UGUHUIUJUKULUEUF $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlempw $p |- ( ph -> ( P e. A /\ -. P .<_ W ) ) $=
      ( wcel wa wbr wn co chlt w3a wceq wne simp12 sylbi ) AKUAPNIPQZCBPCNLRSQZ
      DBPDNLRSQZUBFBPEBPENLRSCEJTDEJTUCUBGBPHGJTMGJTUCQUBZCDUDFCDJTLRSQZUBUHOUG
      UHUIUJUKUEUF $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlemp $p |- ( ph -> P e. A ) $=
      ( wcel wbr wn 4atexlempw simpld ) ACBPCNLQRABCDEFGHIJKLMNOST $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlemq $p |- ( ph -> Q e. A ) $=
      ( wcel wa wbr wn co chlt w3a wceq wne simp13l sylbi ) AKUAPNIPQZCBPCNLRSQ
      ZDBPZDNLRSZQUBFBPEBPENLRSCEJTDEJTUCUBGBPHGJTMGJTUCQUBZCDUDFCDJTLRSQZUBUIO
      UIUJUGUHUKULUEUF $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlems $p |- ( ph -> S e. A ) $=
      ( wcel wa wbr wn co chlt w3a wceq wne simp21 sylbi ) AKUAPNIPQCBPCNLRSQDB
      PDNLRSQUBZFBPZEBPENLRSCEJTDEJTUCUBZGBPHGJTMGJTUCQZUBCDUDFCDJTLRSQZUBUHOUG
      UHUIUJUKUEUF $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlemt $p |- ( ph -> T e. A ) $=
      ( wcel wa wbr wn co chlt w3a wceq wne simp23l sylbi ) AKUAPNIPQCBPCNLRSQD
      BPDNLRSQUBZFBPZEBPENLRSCEJTDEJTUCUBZGBPZHGJTMGJTUCZQUBCDUDFCDJTLRSQZUBUJO
      UJUKUHUIUGULUEUF $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlemutvt $p |- ( ph -> ( U .\/ T ) = ( V .\/ T ) ) $=
      ( wcel wa wbr wn co chlt w3a wceq wne simp23r sylbi ) AKUAPNIPQCBPCNLRSQD
      BPDNLRSQUBZFBPZEBPENLRSCEJTDEJTUCUBZGBPZHGJTMGJTUCZQUBCDUDFCDJTLRSQZUBUKO
      UJUKUHUIUGULUEUF $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlempnq $p |- ( ph -> P =/= Q ) $=
      ( wcel wa wbr wn co chlt w3a wceq wne simp3l sylbi ) AKUAPNIPQCBPCNLRSQDB
      PDNLRSQUBZFBPEBPENLRSCEJTDEJTUCUBGBPHGJTMGJTUCQUBZCDUDZFCDJTLRSZQUBUIOUGU
      HUIUJUEUF $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlemnslpq $p |- ( ph -> -. S .<_ ( P .\/ Q ) ) $=
      ( wcel wa wbr wn co chlt w3a wceq wne simp3r sylbi ) AKUAPNIPQCBPCNLRSQDB
      PDNLRSQUBZFBPEBPENLRSCEJTDEJTUCUBGBPHGJTMGJTUCQUBZCDUDZFCDJTLRSZQUBUJOUGU
      HUIUJUEUF $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlemkl $p |- ( ph -> K e. Lat ) $=
      ( chlt wcel clat 4atexlemk hllat syl ) AKPQKRQABCDEFGHIJKLMNOSKTUA $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlemkc $p |- ( ph -> K e. CvLat ) $=
      ( chlt wcel clc 4atexlemk hlcvl syl ) AKPQKRQABCDEFGHIJKLMNOSKTUA $.

    ${
      4thatlemmwb.h $e |- H = ( LHyp ` K ) $.
      $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
      4atexlemwb $p |- ( ph -> W e. ( Base ` K ) ) $=
        ( wcel cbs cfv 4atexlemw eqid lhpbase syl ) ANIQNKRSZQABCDEFGHIJKLMNOTU
        DIKNUDUAPUBUC $.
    $}

    ${
      4thatlempqb.j $e |- .\/ = ( join ` K ) $.
      4thatlempqb.a $e |- A = ( Atoms ` K ) $.
      $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
      4atexlempsb $p |- ( ph -> ( P .\/ S ) e. ( Base ` K ) ) $=
        ( chlt wcel co cbs 4atexlemk 4atexlemp 4atexlems eqid hlatjcl syl3anc
        cfv ) AKRSCBSFBSCFJTKUAUHZSABCDEFGHIJKLMNOUBABCDEFGHIJKLMNOUCABCDEFGHIJ
        KLMNOUDBUIJKCFUIUEPQUFUG $.

      $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 24-Nov-2012.) $)
      4atexlemqtb $p |- ( ph -> ( Q .\/ T ) e. ( Base ` K ) ) $=
        ( chlt wcel co cbs 4atexlemk 4atexlemq 4atexlemt eqid hlatjcl syl3anc
        cfv ) AKRSDBSGBSDGJTKUAUHZSABCDEFGHIJKLMNOUBABCDEFGHIJKLMNOUCABCDEFGHIJ
        KLMNOUDBUIJKDGUIUEPQUFUG $.
    $}

    ${
      4thatlemslps.l $e |- .<_ = ( le ` K ) $.
      4thatlemslps.j $e |- .\/ = ( join ` K ) $.
      4thatlemslps.a $e |- A = ( Atoms ` K ) $.
      $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
      4atexlempns $p |- ( ph -> P =/= S ) $=
        ( chlt wcel co wn 4atexlemk 4atexlemp 4atexlemq 4atexlems 4atexlemnslpq
        wbr wne 4atlem0be syl131anc ) AKSTCBTDBTFBTFCDJUALUHUBCFUIABCDEFGHIJKLM
        NOUCABCDEFGHIJKLMNOUDABCDEFGHIJKLMNOUEABCDEFGHIJKLMNOUFABCDEFGHIJKLMNOU
        GBCDFJKLPQRUJUK $.

      4thatlemsw.u $e |- U = ( ( P .\/ Q ) ./\ W ) $.
      $( Lemma for ~ 4atexlem7 .  Swap ` Q ` and ` R ` , so that theorems
         involving ` C ` can be reused for ` D ` .  Note that ` U ` must be
         expanded because it involves ` Q ` .  (Contributed by NM,
         25-Nov-2012.) $)
      4atexlemswapqr $p |- ( ph -> ( ( ( K e. HL /\ W e. H )
               /\ ( P e. A /\ -. P .<_ W ) /\ ( R e. A /\ -. R .<_ W ) )
           /\ ( S e. A
               /\ ( Q e. A /\ -. Q .<_ W /\ ( P .\/ Q ) = ( R .\/ Q ) )
               /\ ( T e. A
                   /\ ( ( ( P .\/ R ) ./\ W ) .\/ T ) = ( V .\/ T ) ) )
           /\ ( P =/= R /\ -. S .<_ ( P .\/ R ) ) ) ) $=
        ( chlt wcel wa wbr wn w3a co wceq simp11 sylbi 4atexlempw simp22 3simpa
        wne 4atexlems 4atexlemq simp13r 4atexlemkc 4atexlemp simpld 4atexlempnq
        syl 3jca clc simp223 cvlsupr7 syl132anc 4atexlemt cvlsupr8 4atexlemutvt
        oveq1d syl5eq eqtr3d cvlsupr5 necomd 4atexlemnslpq eqcomd breq2d mtbird
        jca ) AKUAUBOIUBUCZCBUBZCOLUDUEUCZEBUBZEOLUDUEZUCZUFFBUBZDBUBZDOLUDUEZC
        DJUGZEDJUGUHZUFZGBUBZCEJUGZOMUGZGJUGZNGJUGZUHZUCZUFCEUNZFWNLUDZUEZUCAWA
        WCWFAWAWCWHWIUCZUFZWGWDWEWNDEJUGUHZUFZWMHGJUGZWQUHUCZUFZCDUNZFWJLUDZUEU
        CZUFZWAPWAWCXCXIXLUIUJABCDEFGHIJKLNOPUKAXMWFPXMXFWFXDWGXFXHXLULWDWEXEUM
        VBUJZVCAWGWLWSABCDEFGHIJKLNOPUOAWHWIWKABCDEFGHIJKLNOPUPZAXMWIPWHWIWAWCX
        IXLUQUJAKVDUBZWBWHWDXJXEWKABCDEFGHIJKLNOPURZABCDEFGHIJKLNOPUSZXOAWDWEXN
        UTZABCDEFGHIJKLNOPVAZAXMXEPWDWEXEWGXHXDXLVEUJZBCDEJKSRVFVGVCAWMWRABCDEF
        GHIJKLNOPVHAXGWPWQAHWOGJAHWJOMUGWOTAWJWNOMAXPWBWHWDXJXEWJWNUHXQXRXOXSXT
        YABCDEJKSRVIVGZVKVLVKABCDEFGHIJKLNOPVJVMVTVCAWTXBAXPWBWHWDXJXEWTXQXRXOX
        SXTYAXPWBWHWDUFXJXEUCUFECBCDEJKSRVNVOVGAXAXKABCDEFGHIJKLNOPVPAWNWJFLAWJ
        WNYBVQVRVSVTVC $.
    $}

    4thatlem0.l $e |- .<_ = ( le ` K ) $.
    4thatlem0.j $e |- .\/ = ( join ` K ) $.
    4thatlem0.m $e |- ./\ = ( meet ` K ) $.
    4thatlem0.a $e |- A = ( Atoms ` K ) $.
    4thatlem0.h $e |- H = ( LHyp ` K ) $.
    4thatlem0.u $e |- U = ( ( P .\/ Q ) ./\ W ) $.
    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlemu $p |- ( ph -> U e. A ) $=
      ( chlt wbr wn wa wne 4atexlemk 4atexlemw 4atexlempw 4atexlemq 4atexlempnq
      wcel lhpat2 syl212anc ) AKUCUMOIUMCBUMCOLUDUEUFDBUMCDUGHBUMABCDEFGHIJKLNO
      PUHABCDEFGHIJKLNOPUIABCDEFGHIJKLNOPUJABCDEFGHIJKLNOPUKABCDEFGHIJKLNOPULBC
      DHIJKLMOQRSTUAUBUNUO $.

    4thatlem0.v $e |- V = ( ( P .\/ S ) ./\ W ) $.
    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 23-Nov-2012.) $)
    4atexlemv $p |- ( ph -> V e. A ) $=
      ( chlt wbr wn wa wne 4atexlemk 4atexlemw 4atexlempw 4atexlems 4atexlempns
      wcel lhpat2 syl212anc ) AKUDUNOIUNCBUNCOLUEUFUGFBUNCFUHNBUNABCDEFGHIJKLNO
      PUIABCDEFGHIJKLNOPUJABCDEFGHIJKLNOPUKABCDEFGHIJKLNOPULABCDEFGHIJKLNOPQRTU
      MBCFNIJKLMOQRSTUAUCUOUP $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 21-Nov-2012.) $)
    4atexlemunv $p |- ( ph -> U =/= V ) $=
      ( co wbr wn 4atexlemnslpq wceq wa chlt wcel 4atexlemk 4atexlemp 4atexlems
      wne hlatlej2 syl3anc adantr cbs 4atexlemkl 4atexlempsb 4atexlemwb latmle1
      clat cfv eqid syl5eqbr clc 4atexlemkc 4atexlemv latmle2 4atexlempw simprd
      nbrne2 syl2anc cvlatexchb1 syl131anc mpbid oveq2 eqcomd 4atexlemq hlatjcl
      wb 4atexlemu sylan9eqr eqtr3d breqtrd ex necon3bd mpd ) AFCDJUDZLUEZUFHNU
      OABCDEFGHIJKLNOPUGAWLHNAHNUHZWLAWMUIZFCFJUDZWKLAFWOLUEZWMAKUJUKZCBUKZFBUK
      ZWPABCDEFGHIJKLNOPULZABCDEFGHIJKLNOPUMZABCDEFGHIJKLNOPUNZBCFJKLQRTUPUQURW
      NCNJUDZWOWKAXCWOUHZWMANWOLUEZXDANWOOMUDZWOLUCAKVDUKZWOKUSVEZUKZOXHUKZXFWO
      LUEABCDEFGHIJKLNOPUTZABCDEFGHIJKLNOPRTVAZABCDEFGHIJKLNOPUAVBZXHKLMWOOXHVF
      ZQSVCUQVGAKVHUKZNBUKWSWRNCUOZXEXDWCABCDEFGHIJKLNOPVIZABCDEFGHIJKLMNOPQRST
      UAUBUCVJXBXAANOLUECOLUEUFZXPANXFOLUCAXGXIXJXFOLUEXKXLXMXHKLMWOOXNQSVKUQVG
      AWRXRABCDEFGHIJKLNOPVLVMZNCOLVNVOBNFCJKLQRTVPVQVRURWMAXCCHJUDZWKWMXTXCHNC
      JVSVTAHWKLUEZXTWKUHZAHWKOMUDZWKLUBAXGWKXHUKZXJYCWKLUEXKAWQWRDBUKZYDWTXAAB
      CDEFGHIJKLNOPWAZBXHJKCDXNRTWBUQZXMXHKLMWKOXNQSVCUQVGAXOHBUKYEWRHCUOZYAYBW
      CXQABCDEFGHIJKLMNOPQRSTUAUBWDYFXAAHOLUEXRYHAHYCOLUBAXGYDXJYCOLUEXKYGXMXHK
      LMWKOXNQSVKUQVGXSHCOLVNVOBHDCJKLQRTVPVQVRWEWFWGWHWIWJ $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 24-Nov-2012.) $)
    4atexlemtlw $p |- ( ph -> T .<_ W ) $=
      ( cbs cfv co eqid 4atexlemkl wcel 4atexlemt 4atexlemk 4atexlemu 4atexlemv
      atbase syl chlt hlatjcl syl3anc 4atexlemwb clc wne 4atexlemkc 4atexlemunv
      wceq wbr 4atexlemutvt cvlsupr4 syl132anc clat 4atexlemp 4atexlemq latmle2
      syl5eqbr 4atexlempsb wa wb latjle12 syl13anc mpbi2and lattrd ) AKUDUEZKLG
      HNJUFZOWAUGZQABCDEFGHIJKLNOPUHZAGBUIZGWAUIABCDEFGHIJKLNOPUJZBWAGKWCTUNUOA
      KUPUIZHBUIZNBUIZWBWAUIABCDEFGHIJKLNOPUKZABCDEFGHIJKLMNOPQRSTUAUBULZABCDEF
      GHIJKLMNOPQRSTUAUBUCUMZBWAJKHNWCRTUQURABCDEFGHIJKLNOPUAUSZAKUTUIWHWIWEHNV
      AHGJUFNGJUFVDGWBLVEABCDEFGHIJKLNOPVBWKWLWFABCDEFGHIJKLMNOPQRSTUAUBUCVCABC
      DEFGHIJKLNOPVFBHNGJKLTQRVGVHAHOLVEZNOLVEZWBOLVEZAHCDJUFZOMUFZOLUBAKVIUIZW
      QWAUIZOWAUIZWROLVEWDAWGCBUIDBUIWTWJABCDEFGHIJKLNOPVJABCDEFGHIJKLNOPVKBWAJ
      KCDWCRTUQURWMWAKLMWQOWCQSVLURVMANCFJUFZOMUFZOLUCAWSXBWAUIXAXCOLVEWDABCDEF
      GHIJKLNOPRTVNWMWAKLMXBOWCQSVLURVMAWSHWAUIZNWAUIZXAWNWOVOWPVPWDAWHXDWKBWAH
      KWCTUNUOAWIXEWLBWANKWCTUNUOWMWAJKLHNOWCQRVQVRVSVT $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 24-Nov-2012.) $)
    4atexlemntlpq $p |- ( ph -> -. T .<_ ( P .\/ Q ) ) $=
      ( co wbr 4atexlemtlw wn wne wcel 4atexlemkc 4atexlemu 4atexlemv 4atexlemt
      wa wceq 4atexlemunv 4atexlemutvt cvlsupr5 syl132anc adantr chlt 4atexlemk
      clc 4atexlemw jca 4atexlempw 4atexlemq 4atexlempnq simpr lhpat3 syl222anc
      wb mpbird ex mt2d ) AGCDJUDLUEZGOLUEZABCDEFGHIJKLMNOPQRSTUAUBUCUFAVPVQUGZ
      AVPUNZVRGHUHZAVTVPAKVCUIHBUINBUIGBUIZHNUHHGJUDNGJUDUOVTABCDEFGHIJKLNOPUJA
      BCDEFGHIJKLMNOPQRSTUAUBUKABCDEFGHIJKLMNOPQRSTUAUBUCULABCDEFGHIJKLNOPUMZAB
      CDEFGHIJKLMNOPQRSTUAUBUCUPABCDEFGHIJKLNOPUQBHNGJKTRURUSUTVSKVAUIZOIUIZUNZ
      CBUICOLUEUGUNZDBUIZWACDUHZVPVRVTVLAWEVPAWCWDABCDEFGHIJKLNOPVBABCDEFGHIJKL
      NOPVDVEUTAWFVPABCDEFGHIJKLNOPVFUTAWGVPABCDEFGHIJKLNOPVGUTAWAVPWBUTAWHVPAB
      CDEFGHIJKLNOPVHUTAVPVIBCDHGIJKLMOQRSTUAUBVJVKVMVNVO $.

    4thatlem0.c $e |- C = ( ( Q .\/ T ) ./\ ( P .\/ S ) ) $.
    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 24-Nov-2012.) $)
    4atexlemc $p |- ( ph -> C e. A ) $=
      ( co clat wcel cbs cfv 4atexlemkl 4atexlemqtb 4atexlempsb latmcom syl3anc
      wceq eqid syl5eq wne wn 4atexlemk 4atexlemp 4atexlems 4atexlemq 4atexlemt
      chlt wbr 4atexlempns 4atexlemntlpq atnlej2 necomd syl131anc 4atexlemnslpq
      w3a 4atexlempnq 4atlem0ae syl132anc atbase syl 4atexlemu 4atexlemv latjcl
      hlatjcl clc 4atexlemkc 4atexlemunv 4atexlemutvt cvlsupr4 latmle1 syl5eqbr
      4atexlemwb wa latjlej12 syl122anc mp2and hlatjass syl13anc latj32 latjjdi
      wi 3eqtr3rd breqtrd lattrd 2atmat syl333anc eqeltrd ) ACDGKUFZEHKUFZNUFZB
      ACXHXGNUFZXIUEALUGUHZXHLUIUJZUHXGXLUHZXJXIUPABDEFGHIJKLMOPQUKZABDEFGHIJKL
      MOPQSUAULABDEFGHIJKLMOPQSUAUMZXLLNXHXGXLUQZTUNUOURALVFUHZDBUHZGBUHZEBUHZH
      BUHZDGUSEHUSZEXGMVGUTZHXGEKUFZMVGXIBUHABDEFGHIJKLMOPQVAZABDEFGHIJKLMOPQVB
      ZABDEFGHIJKLMOPQVCZABDEFGHIJKLMOPQVDZABDEFGHIJKLMOPQVEZABDEFGHIJKLMOPQRSU
      AVHAXQYAXRXTHDEKUFZMVGUTZYBYEYIYFYHABDEFGHIJKLMNOPQRSTUAUBUCUDVIXQYAXRXTV
      NYKVNHEBHDEKLMRSUAVJVKVLAXQXRXTXSDEUSGYJMVGUTYCYEYFYHYGABDEFGHIJKLMOPQVOA
      BDEFGHIJKLMOPQVMBDEGKLMRSUAVPVQAXLLMHIOKUFZYDXPRXNAYAHXLUHYIBXLHLXPUAVRVS
      AXQIBUHZOBUHZYLXLUHYEABDEFGHIJKLMNOPQRSTUAUBUCVTZABDEFGHIJKLMNOPQRSTUAUBU
      CUDWAZBXLKLIOXPSUAWCUOAXKXMEXLUHZYDXLUHXNXOAXTYQYHBXLELXPUAVRVSZXLKLXGEXP
      SWBUOALWDUHYMYNYAIOUSIHKUFOHKUFUPHYLMVGABDEFGHIJKLMOPQWEYOYPYIABDEFGHIJKL
      MNOPQRSTUAUBUCUDWFABDEFGHIJKLMOPQWGBIOHKLMUARSWHVQAYLYJXGKUFZYDMAIYJMVGZO
      XGMVGZYLYSMVGZAIYJPNUFZYJMUCAXKYJXLUHZPXLUHZUUCYJMVGXNAXQXRXTUUDYEYFYHBXL
      KLDEXPSUAWCUOZABDEFGHIJKLMOPQUBWKZXLLMNYJPXPRTWIUOWJAOXGPNUFZXGMUDAXKXMUU
      EUUHXGMVGXNXOUUGXLLMNXGPXPRTWIUOWJAXKIXLUHZUUDOXLUHZXMYTUUAWLUUBWTXNAYMUU
      IYOBXLILXPUAVRVSUUFAYNUUJYPBXLOLXPUAVRVSXOXLKLMXGIYJOXPRSWMWNWOAYJGKUFZDE
      GKUFKUFZYDYSAXQXRXTXSUUKUULUPYEYFYHYGBDEGKLSUAWPWQAXKDXLUHZYQGXLUHZUUKYDU
      PXNAXRUUMYFBXLDLXPUAVRVSZYRAXSUUNYGBXLGLXPUAVRVSZXLKLDEGXPSWRWQAXKUUMYQUU
      NUULYSUPXNUUOYRUUPXLKLDEGXPSWSWQXAXBXCBDGEHKLMNRSTUAXDXEXF $.

    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 24-Nov-2012.) $)
    4atexlemnclw $p |- ( ph -> -. C .<_ W ) $=
      ( wbr wn wne co clat wcel cbs cfv 4atexlemkl 4atexlemqtb 4atexlempsb eqid
      latmle1 syl3anc syl5eqbr chlt wa w3a wceq simp13r sylbi clc wi 4atexlemkc
      4atexlemv 4atexlemq 4atexlemt 4atexlemu 4atexlemunv 4atexlemutvt cvlsupr6
      syl132anc cvlatexch2 syl131anc 4atexlemwb latmle2 4atexlemtlw wb latjle12
      necomd atbase syl syl13anc mpbi2and 4atexlemk hlatjcl lattr mpan2d nbrne2
      syld mtod 4atexlemw jca 4atexlempw 4atexlems 4atexlemc 4atexlempns lhpat3
      syl2anc syl222anc mpbird ) ACPMUFUGZCOUHZACEHKUIZMUFOXIMUFZUGXHACXIDGKUIZ
      NUIZXIMUEALUJUKZXILULUMZUKZXKXNUKZXLXIMUFABDEFGHIJKLMOPQUNZABDEFGHIJKLMOP
      QSUAUOZABDEFGHIJKLMOPQSUAUPZXNLMNXIXKXNUQZRTURUSUTAXJEPMUFZALVAUKZPJUKZVB
      ZDBUKDPMUFUGVBZEBUKZYAUGZVBVCGBUKZFBUKFPMUFUGDFKUIEFKUIVDVCHBUKZIHKUIOHKU
      IZVDZVBVCZDEUHGDEKUIMUFUGVBZVCYGQYFYGYDYEYLYMVEVFAXJEYJMUFZYAALVGUKZOBUKZ
      YFYIOHUHZXJYNVHABDEFGHIJKLMOPQVIZABDEFGHIJKLMNOPQRSTUAUBUCUDVJZABDEFGHIJK
      LMOPQVKZABDEFGHIJKLMOPQVLZAYOIBUKZYPYIIOUHZYKYQYRABDEFGHIJKLMNOPQRSTUAUBU
      CVMYSUUAABDEFGHIJKLMNOPQRSTUAUBUCUDVNABDEFGHIJKLMOPQVOYOUUBYPYIVCUUCYKVBV
      CHOBIOHKLUASVPWEVQBOEHKLMRSUAVRVSAYNYJPMUFZYAAOPMUFZHPMUFZUUDAOXKPNUIZPMU
      DAXMXPPXNUKZUUGPMUFXQXSABDEFGHIJKLMOPQUBVTZXNLMNXKPXTRTWAUSUTABDEFGHIJKLM
      NOPQRSTUAUBUCUDWBAXMOXNUKZHXNUKZUUHUUEUUFVBUUDWCXQAYPUUJYSBXNOLXTUAWFWGAY
      IUUKUUABXNHLXTUAWFWGUUIXNKLMOHPXTRSWDWHWIAXMEXNUKZYJXNUKZUUHYNUUDVBYAVHXQ
      AYFUULYTBXNELXTUAWFWGAYBYPYIUUMABDEFGHIJKLMOPQWJZYSUUABXNKLOHXTSUAWKUSUUI
      XNLMEYJPXTRWLWHWMWOWPCOXIMWNXDAYDYEYHCBUKDGUHCXKMUFXGXHWCAYBYCUUNABDEFGHI
      JKLMOPQWQWRABDEFGHIJKLMOPQWSABDEFGHIJKLMOPQWTABCDEFGHIJKLMNOPQRSTUAUBUCUD
      UEXAABDEFGHIJKLMOPQRSUAXBACXLXKMUEAXMXOXPXLXKMUFXQXRXSXNLMNXIXKXTRTWAUSUT
      BDGOCJKLMNPRSTUAUBUDXCXEXF $.

    $d z A $.  $d z C $.  $d z .\/ $.  $d z .<_ $.  $d z P $.  $d z S $.
    $d z W $.
    $( Lemma for ~ 4atexlem7 .  Show that when ` C =/= S ` , ` C ` satisfies
       the existence condition of the consequent.  (Contributed by NM,
       25-Nov-2012.) $)
    4atexlemex2 $p |- ( ( ph /\ C =/= S )
        -> E. z e. A ( -. z .<_ W /\ ( P .\/ z ) = ( S .\/ z ) ) ) $=
      ( wne wa wcel wbr wn co wceq cv wrex 4atexlemc 4atexlemnclw 4atexlemntlpq
      adantr id syl5eqr adantl clat cbs 4atexlemkl 4atexlemqtb 4atexlempsb eqid
      cfv latmle1 syl3anc chlt 4atexlemk 4atexlemq hlatjcom breqtrd eqbrtrrd wi
      4atexlemt clc 4atexlemkc 4atexlemp 4atexlempnq cvlatexch2 mpd ex necon3bd
      syl131anc simpr latmle2 syl5eqbr 4atexlems 4atexlempns cvlsupr2 mpbir3and
      w3a wb breq1 notbid oveq2 eqeq12d anbi12d rspcev syl12anc ) ADHUGZUHZDCUI
      ZDQNUJZUKZEDLULZHDLULZUMZBUNZQNUJZUKZEXMLULZHXMLULZUMZUHZBCUOAXGXEACDEFGH
      IJKLMNOPQRSTUAUBUCUDUEUFUPZUSAXIXEACDEFGHIJKLMNOPQRSTUAUBUCUDUEUFUQUSXFXL
      DEUGZXEDEHLULZNUJZAYAXEAIEFLULNUJZUKYAACEFGHIJKLMNOPQRSTUAUBUCUDUEURAYDDE
      ADEUMZYDAYEUHZEIFLULZNUJZYDYFFILULZYBOULZEYGNYEYJEUMAYEYJDEUFYEUTVAVBAYJY
      GNUJYEAYJYIYGNAMVCUIZYIMVDVIZUIZYBYLUIZYJYINUJACEFGHIJKLMNPQRVEZACEFGHIJK
      LMNPQRTUBVFZACEFGHIJKLMNPQRTUBVGZYLMNOYIYBYLVHZSUAVJVKAMVLUIFCUIZICUIZYIY
      GUMACEFGHIJKLMNPQRVMACEFGHIJKLMNPQRVNZACEFGHIJKLMNPQRVSZCLMFITUBVOVKVPUSV
      QAYHYDVRZYEAMVTUIZECUIZYTYSEFUGUUCACEFGHIJKLMNPQRWAZACEFGHIJKLMNPQRWBZUUB
      UUAACEFGHIJKLMNPQRWCCEIFLMNSTUBWDWHUSWEWFWGWEUSAXEWIAYCXEADYJYBNUFAYKYMYN
      YJYBNUJYOYPYQYLMNOYIYBYRSUAWJVKWKUSAXLYAXEYCWPWQZXEAUUDUUEHCUIXGEHUGUUHUU
      FUUGACEFGHIJKLMNPQRWLXTACEFGHIJKLMNPQRSTUBWMCEHDLMNUBSTWNWHUSWOXSXIXLUHBD
      CXMDUMZXOXIXRXLUUIXNXHXMDQNWRWSUUIXPXJXQXKXMDELWTXMDHLWTXAXBXCXD $.

    4thatlem0.d $e |- D = ( ( R .\/ T ) ./\ ( P .\/ S ) ) $.
    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 24-Nov-2012.) $)
    4atexlemcnd $p |- ( ph -> C =/= D ) $=
      ( wne wbr wn 4atexlemtlw 4atexlemnclw nbrne2 syl2anc wceq wa co chlt wcel
      4atexlemk 4atexlemq 4atexlemt hlatjcom syl3anc simp221 oveq12d 4atexlemkc
      w3a sylbi clc 4atexlemp 4atexlempnq simp223 cvlsupr6 necomd 4atexlemntlpq
      syl132anc cvlsupr7 eqtr4d breq2d mtbid 2llnma2 eqtr2d adantr clat cbs cfv
      4atexlemkl 4atexlemqtb 4atexlempsb latmle1 syl5eqbr simpr hlatjcl eqbrtrd
      eqid 4atexlemc atbase syl latlem12 syl13anc mpbi2and hlatl eqeltrrd atcmp
      wb cal mpbid ex necon3d mpd ) AICUHZCDUHAIQNUICQNUIUJXLABEFGHIJKLMNOPQRST
      UAUBUCUDUEUKABCEFGHIJKLMNOPQRSTUAUBUCUDUEUFULICQNUMUNACDICACDUOZICUOAXMUP
      ZIFILUQZGILUQZOUQZCAIXQUOXMAXQIFLUQZIGLUQZOUQZIAXOXRXPXSOAMURUSZFBUSZIBUS
      ZXOXRUOABEFGHIJKLMNPQRUTZABEFGHIJKLMNPQRVAZABEFGHIJKLMNPQRVBZBLMFITUBVCVD
      AYAGBUSZYCXPXSUOYDAYAQKUSUPEBUSZEQNUIUJUPYBFQNUIUJUPVHZHBUSZYGGQNUIUJZEGL
      UQFGLUQZUOZVHYCJILUQPILUQUOUPZVHEFUHZHEFLUQZNUIUJUPZVHZYGRYGYKYMYJYNYIYQV
      EVIZYFBLMGITUBVCVDVFAYAYBYGYCFGUHZIYLNUIZUJXTIUOYDYEYSYFAMVJUSZYHYBYGYOYM
      YTABEFGHIJKLMNPQRVGZABEFGHIJKLMNPQRVKZYEYSABEFGHIJKLMNPQRVLZAYRYMRYGYKYMY
      JYNYIYQVMVIZUUBYHYBYGVHYOYMUPVHGFBEFGLMUBTVNVOVQAIYPNUIUUAABEFGHIJKLMNOPQ
      RSTUAUBUCUDUEVPAYPYLINAYPGFLUQZYLAUUBYHYBYGYOYMYPUUGUOUUCUUDYEYSUUEUUFBEF
      GLMUBTVRVQAYAYBYGYLUUGUOYDYEYSBLMFGTUBVCVDVSVTWABFGILMNOSTUAUBWBVQWCZWDXN
      CXQNUIZCXQUOZXNCXONUIZCXPNUIZUUIAUUKXMACXOEHLUQZOUQZXONUFAMWEUSZXOMWFWGZU
      SZUUMUUPUSZUUNXONUIABEFGHIJKLMNPQRWHZABEFGHIJKLMNPQRTUBWIZABEFGHIJKLMNPQR
      TUBWJZUUPMNOXOUUMUUPWPZSUAWKVDWLWDXNCDXPNAXMWMADXPNUIXMADXPUUMOUQZXPNUGAU
      UOXPUUPUSZUURUVCXPNUIUUSAYAYGYCUVDYDYSYFBUUPLMGIUVBTUBWNVDZUVAUUPMNOXPUUM
      UVBSUAWKVDWLWDWOAUUKUULUPUUIXFZXMAUUOCUUPUSZUUQUVDUVFUUSACBUSZUVGABCEFGHI
      JKLMNOPQRSTUAUBUCUDUEUFWQZBUUPCMUVBUBWRWSUUTUVEUUPMNOCXOXPUVBSUAWTXAWDXBA
      UUIUUJXFZXMAMXGUSZUVHXQBUSUVJAYAUVKYDMXCWSUVIAIXQBUUHYFXDBCXQMNSUBXEVDWDX
      HVSXIXJXK $.

    $d z D $.
    $( Lemma for ~ 4atexlem7 .  Show that when ` C = S ` , ` D ` satisfies the
       existence condition of the consequent.  (Contributed by NM,
       26-Nov-2012.) $)
    4atexlemex4 $p |- ( ( ph /\ C = S )
        -> E. z e. A ( -. z .<_ W /\ ( P .\/ z ) = ( S .\/ z ) ) ) $=
      ( wceq cv wbr wn co wrex chlt wcel w3a 4atexlemswapqr 4atexlemcnd pm13.18
      wa wne wi necomd expcom syl biid eqid 4atexlemex2 syl6an imp ) ADIUIZBUJZ
      ROUKULFVMMUMIVMMUMUIVABCUNZANUOUPRLUPVAFCUPFROUKULVAHCUPHROUKULVAUQICUPGC
      UPGROUKULFGMUMHGMUMUIUQJCUPFHMUMZRPUMZJMUMQJMUMUIVAUQFHVBIVOOUKULVAUQZVLE
      IVBZVNACFGHIJKLMNOPQRSTUAUCUEURADEVBZVLVRVCACDEFGHIJKLMNOPQRSTUAUBUCUDUEU
      FUGUHUSVLVSVRVLVSVAIEDIEUTVDVEVFVQBCEFHGIJVPLMNOPQRVQVGTUAUBUCUDVPVHUFUHV
      IVJVK $.
  $}

  ${
    $d t z A $.  $d t H $.  $d t z .\/ $.  $d t K $.  $d t z .<_ $.
    $d t z ./\ $.  $d t z P $.  $d t z Q $.  $d t z R $.  $d t z S $.
    $d t z W $.
    4thatleme.l $e |- .<_ = ( le ` K ) $.
    4thatleme.j $e |- .\/ = ( join ` K ) $.
    4thatleme.m $e |- ./\ = ( meet ` K ) $.
    4thatleme.a $e |- A = ( Atoms ` K ) $.
    4thatleme.h $e |- H = ( LHyp ` K ) $.
    $( Lemma for ~ 4atexlem7 .  (Contributed by NM, 25-Nov-2012.) $)
    4atexlemex6 $p |- ( ( ( ( K e. HL /\ W e. H )
                /\ ( P e. A /\ -. P .<_ W ) /\ ( Q e. A /\ -. Q .<_ W ) )
            /\ ( ( R e. A /\ -. R .<_ W ) /\ S e. A )
            /\ ( ( P .\/ R ) = ( Q .\/ R )
                /\ P =/= Q /\ -. S .<_ ( P .\/ Q ) ) )
        -> E. z e. A ( -. z .<_ W /\ ( P .\/ z ) = ( S .\/ z ) ) ) $=
      ( wcel wa co vt chlt wbr wn w3a wceq wne cv simp11l simp11 simp12 simp13l
      wrex simp32 lhpat syl112anc simp2r simp12l simp33 atnlej1 hlsupr2 syl3anc
      syl131anc necomd simp111 simp112 simp113 simp12r simp2ll 3ad2ant1 simp2lr
      simp131 3jca simp132 simp133 biid eqid 4atexlemex4 4atexlemex2 pm2.61dane
      3simpc syl332anc rexlimdv3a mpd ) IUBRZLGRZSZCBRZCLJUCUDZSZDBRZDLJUCUDZSZ
      UEZEBRZELJUCUDZSZFBRZSZCEHTDEHTUFZCDUGZFCDHTZJUCUDZUEZUEZXBLKTZUAUHZHTCFH
      TZLKTZXGHTUFZUABUMZAUHZLJUCUDCXLHTFXLHTUFSABUMZXEWEXFBRZXIBRZXKWEWFWJWMWS
      XDUIZXEWGWJWKXAXNWGWJWMWSXDUJZWGWJWMWSXDUKZWKWLWGWJWSXDULZWNWSWTXAXCUNBCD
      GHIJKLMNOPQUOUPXEWGWJWRCFUGXOXQXRWNWQWRXDUQZXEFCXEWEWRWHWKXCFCUGXPXTWHWIW
      GWMWSXDURXSWNWSWTXAXCUSBFCDHIJMNPUTVCVDBCFGHIJKLMNOPQUOUPBXFXIHIUANPVAVBX
      EXJXMUABXEXGBRZXJUEZWGWJWMWRWOWPWTUEZYAXJSZXAXCXMWGWJWMWSXDYAXJVEWGWJWMWS
      XDYAXJVFWGWJWMWSXDYAXJVGWQWRWNXDYAXJVHYBWOWPWTXEYAWOXJWOWPWRWNXDVIVJXEYAW
      PXJWOWPWRWNXDVKVJWTXAXCWNWSYAXJVLVMXEYAXJWAWTXAXCWNWSYAXJVNWTXAXCWNWSYAXJ
      VOWNWRYCYDUEXAXCSUEZXMDXGHTXHKTZFYEABYFEXGHTXHKTZCDEFXGXFGHIJKXILYEVPZMNO
      PQXFVQZXIVQZYFVQZYGVQVRYEABYFCDEFXGXFGHIJKXILYHMNOPQYIYJYKVSVTWBWCWD $.
  $}

  ${
    $d r z A $.  $d r H $.  $d r z .\/ $.  $d r z K $.  $d r z .<_ $.
    $d r z P $.  $d r z Q $.  $d r z S $.  $d r z W $.
    4that.l $e |- .<_ = ( le ` K ) $.
    4that.j $e |- .\/ = ( join ` K ) $.
    4that.a $e |- A = ( Atoms ` K ) $.
    4that.h $e |- H = ( LHyp ` K ) $.
    $( Whenever there are at least 4 atoms under ` P .\/ Q ` (specifically,
       ` P ` , ` Q ` , ` r ` , and ` ( P .\/ Q ) ./\ W ` ), there are also at
       least 4 atoms under ` P .\/ S ` .  This proves the statement in Lemma E
       of [Crawley] p. 114, last line, "...p ` \/ ` q/0 and hence p ` \/ ` s/0
       contains at least four atoms..."  Note that by ~ cvlsupr2 , our
       ` ( P .\/ r ) = ( Q .\/ r ) ` is a shorter way to express
       ` r =/= P /\ r =/= Q /\ r .<_ ( P .\/ Q ) ` .  With a longer proof, the
       condition ` -. S .<_ ( P .\/ Q ) ` could be eliminated (see ~ 4atex ),
       although for some purposes this more restricted lemma may be adequate.
       (Contributed by NM, 25-Nov-2012.) $)
    4atexlem7 $p |- ( ( ( K e. HL /\ W e. H )
            /\ ( ( P e. A /\ -. P .<_ W ) /\ ( Q e. A /\ -. Q .<_ W )
                /\ S e. A )
            /\ ( P =/= Q /\ -. S .<_ ( P .\/ Q )
                /\ E. r e. A ( -. r .<_ W /\ ( P .\/ r ) = ( Q .\/ r ) ) ) )
        -> E. z e. A ( -. z .<_ W /\ ( P .\/ z ) = ( S .\/ z ) ) ) $=
      ( wcel wa wbr wn co chlt w3a wne cv wceq wrex wi simp11l simp1r1 3ad2ant1
      simp1r2 simp3l jca simp1r3 simp3r simp12 simp13 cmee cfv eqid 4atexlemex6
      simp2 syl323anc rexlimdv3a 3exp 3impd 3impia ) HUAPJFPQZCBPCJIRSQZDBPDJIR
      SQZEBPZUBZCDUCZECDGTIRSZKUDZJIRSZCVOGTDVOGTUEZQZKBUFZUBAUDZJIRSCVTGTEVTGT
      UEQABUFZVHVLQZVMVNVSWAWBVMVNVSWAUGWBVMVNUBZVRWAKBWCVOBPZVRUBZVHVIVJWDVPQV
      KVQVMVNWAVHVLVMVNWDVRUHWCWDVIVRVIVJVKVHVMVNUIUJWCWDVJVRVIVJVKVHVMVNUKUJWE
      WDVPWCWDVRVBWCWDVPVQULUMWCWDVKVRVIVJVKVHVMVNUNUJWCWDVPVQUOWBVMVNWDVRUPWBV
      MVNWDVRUQABCDVOEFGHIHURUSZJLMWFUTNOVAVCVDVEVFVG $.

    $( Whenever there are at least 4 atoms under ` P .\/ Q ` (specifically,
       ` P ` , ` Q ` , ` r ` , and ` ( P .\/ Q ) ./\ W ` ), there are also at
       least 4 atoms under ` P .\/ S ` .  This proves the statement in Lemma E
       of [Crawley] p. 114, last line, "...p ` \/ ` q/0 and hence p ` \/ ` s/0
       contains at least four atoms..."  Note that by ~ cvlsupr2 , our
       ` ( P .\/ r ) = ( Q .\/ r ) ` is a shorter way to express
       ` r =/= P /\ r =/= Q /\ r .<_ ( P .\/ Q ) ` .  (Contributed by NM,
       27-May-2013.) $)
    4atex $p |- ( ( ( K e. HL /\ W e. H )
            /\ ( ( P e. A /\ -. P .<_ W ) /\ ( Q e. A /\ -. Q .<_ W )
                /\ S e. A )
            /\ ( P =/= Q
                /\ E. r e. A ( -. r .<_ W /\ ( P .\/ r ) = ( Q .\/ r ) ) ) )
        -> E. z e. A ( -. z .<_ W /\ ( P .\/ z ) = ( S .\/ z ) ) ) $=
      ( wcel wa wbr co wceq chlt wn w3a wne wrex simp21l ad2antrr simp21r oveq1
      cv eqcoms adantl breq1 notbid oveq2 eqeq12d anbi12d rspcev simpl3r eqeq2d
      syl12anc anbi2d rexbidv cbvrexv syl6rbbr simp22l ad3antrrr simp22r simp3l
      wb mpbid necomd simpr simpllr clc wi simp1l hlcvl simp23 simplr syl131anc
      syl cvlatexch1 mpd cvlsupr2 mpbir3and pm2.61dane simpl1 simpl3l 4atexlem7
      simpl2 syl113anc pm2.61dan ) HUAPZJFPZQZCBPZCJIRZUBZQZDBPZDJIRZUBZQZEBPZU
      CZCDUDZKUJZJIRZUBZCXHGSZDXHGSZTZQZKBUEZQZUCZECDGSZIRZAUJZJIRZUBZCXTGSZEXT
      GSZTZQZABUEZXQXSQZYGECYHECTZQWQWSCCGSZECGSZTZYGXQWQXSYIWQWSXDXEWPXPUFZUGX
      QWSXSYIWQWSXDXEWPXPUHUGYIYLYHYLCECECGUIUKULYFWSYLQACBXTCTZYBWSYEYLYNYAWRX
      TCJIUMUNYNYCYJYDYKXTCCGUOXTCEGUOUPUQURVAYHECUDZQZYGEDYPEDTZQXOYGYHXOYOYQX
      GXOWPXFXSUSUGYQXOYGVJYPYQYGYBYCDXTGSZTZQZABUEXOYQYFYTABYQYEYSYBYQYDYRYCED
      XTGUIUTVBVCXNYTKABXHXTTZXJYBXMYSUUAXIYAXHXTJIUMUNUUAXKYCXLYRXHXTCGUOXHXTD
      GUOUPUQVDVEULVKYPEDUDZQZXAXCXREDGSZTZYGXQXAXSYOUUBXAXCWTXEWPXPVFVGZXQXCXS
      YOUUBXAXCWTXEWPXPVHVGUUCUUEDCUDZDEUDZDCEGSIRZXQUUGXSYOUUBXQCDWPXFXGXOVIVL
      VGUUCEDYPUUBVMVLUUCXSUUIXQXSYOUUBVNUUCHVOPZXEXAWQYOXSUUIVPXQUUJXSYOUUBXQW
      NUUJWNWOXFXPVQHVRWBVGZXQXEXSYOUUBWPWTXDXEXPVSVGZUUFXQWQXSYOUUBYMVGZYHYOUU
      BVTZBEDCGHILMNWCWAWDUUCUUJWQXEXACEUDUUEUUGUUHUUIUCVJUUKUUMUULUUFUUCECUUNV
      LBCEDGHINLMWEWAWFYFXCUUEQADBXTDTZYBXCYEUUEUUOYAXBXTDJIUMUNUUOYCXRYDUUDXTD
      CGUOXTDEGUOUPUQURVAWGWGXQXSUBZQWPXFXGUUPXOYGWPXFXPUUPWHWPXFXPUUPWKXGXOWPX
      FUUPWIXQUUPVMXGXOWPXFUUPUSABCDEFGHIJKLMNOWJWLWM $.

    $d y A $.  $d y H $.  $d y .\/ $.  $d y K $.  $d y .<_ $.  $d y P $.
    $d y Q $.  $d y S $.  $d r y z T $.  $d y W $.
    $( More general version of ~ 4atex for a line ` S .\/ T ` not necessarily
       connected to ` P .\/ Q ` .  (Contributed by NM, 27-May-2013.) $)
    4atex2 $p |- ( ( ( K e. HL /\ W e. H )
            /\ ( ( P e. A /\ -. P .<_ W ) /\ ( Q e. A /\ -. Q .<_ W )
                /\ ( S e. A /\ -. S .<_ W ) )
            /\ ( P =/= Q /\ T e. A
                /\ E. r e. A ( -. r .<_ W /\ ( P .\/ r ) = ( Q .\/ r ) ) ) )
        -> E. z e. A ( -. z .<_ W /\ ( S .\/ z ) = ( T .\/ z ) ) ) $=
      ( vy wcel wa co chlt wbr wn w3a wne wceq wrex oveq1 eqeq1d anbi2d rexbidv
      simpl1 simpl23 simpl21 simpl32 simpr simpl22 simp23l adantr simpl31 4atex
      cv simpl33 syl132anc eqcom anbi2i rexbii sylib simp1 simp21 simp22 simp32
      simp31 simp33 pm2.61ne ) IUARKGRSZCBRCKJUBUCSZDBRDKJUBUCSZEBRZEKJUBUCZSZU
      DZCDUEZFBRZLVBZKJUBUCCWEHTDWEHTUFSLBUGZUDZUDZAVBZKJUBUCZEWIHTZFWIHTZUFZSZ
      ABUGZWJCWIHTZWLUFZSZABUGZECECUFZWNWRABWTWMWQWJWTWKWPWLECWIHUHUIUJUKWHECUE
      ZSZVPWAVQWDXAQVBZKJUBUCZEXCHTZCXCHTZUFZSZQBUGZWOVPWBWGXAULZVQVRWAVPWGXAUM
      VQVRWAVPWGXAUNZWCWDWFVPWBXAUOWHXAUPXBXDXFXEUFZSZQBUGZXIXBVPVQVRVSWCWFXNXJ
      XKVQVRWAVPWGXAUQWHVSXAVSVTVQVRVPWGURUSWCWDWFVPWBXAUTWCWDWFVPWBXAVCQBCDEGH
      IJKLMNOPVAVDXMXHQBXLXGXDXFXEVEVFVGVHABECFGHIJKQMNOPVAVDWHVPVQVRWDWCWFWSVP
      WBWGVIVPVQVRWAWGVJVPVQVRWAWGVKVPWBWCWDWFVLVPWBWCWDWFVMVPWBWCWDWFVNABCDFGH
      IJKLMNOPVAVDVO $.

    $( Same as ~ 4atex2 except that ` S ` is zero.  (Contributed by NM,
       27-May-2013.)  (New usage is discouraged.) $)
    4atex2-0aOLDN $p |- ( ( ( K e. HL /\ W e. H )
            /\ ( ( P e. A /\ -. P .<_ W ) /\ ( Q e. A /\ -. Q .<_ W )
                /\ S = ( 0. ` K ) )
            /\ ( P =/= Q /\ ( T e. A /\ -. T .<_ W )
                /\ E. r e. A ( -. r .<_ W /\ ( P .\/ r ) = ( Q .\/ r ) ) ) )
        -> E. z e. A ( -. z .<_ W /\ ( S .\/ z ) = ( T .\/ z ) ) ) $=
      ( wcel wa wceq co chlt wbr wn cp0 cfv w3a wne cv wrex simp32l simp32r col
      cbs simp1l hlol syl eqid atbase olj02 syl2anc simp23 oveq1d 3eqtr4d breq1
      hlatjidm notbid oveq2 eqeq12d anbi12d rspcev syl12anc ) IUAQZKGQZRZCBQCKJ
      UBUCRZDBQDKJUBUCRZEIUDUEZSZUFZCDUGZFBQZFKJUBZUCZRLUHZKJUBUCCWDHTDWDHTSRLB
      UIZUFZUFZWAWCEFHTZFFHTZSZAUHZKJUBZUCZEWKHTZFWKHTZSZRZABUIWAWCVTWEVNVSUJZW
      AWCVTWEVNVSUKWGVQFHTZFWHWIWGIULQZFIUMUEZQZWSFSWGVLWTVLVMVSWFUNZIUOUPWGWAX
      BWRBXAFIXAUQZOURUPXAHIFVQXDNVQUQUSUTWGEVQFHVNVOVPVRWFVAVBWGVLWAWIFSXCWRBH
      IFNOVEUTVCWQWCWJRAFBWKFSZWMWCWPWJXEWLWBWKFKJVDVFXEWNWHWOWIWKFEHVGWKFFHVGV
      HVIVJVK $.

    $( Same as ~ 4atex2 except that ` T ` is zero.  (Contributed by NM,
       27-May-2013.)  (New usage is discouraged.) $)
    4atex2-0bOLDN $p |- ( ( ( K e. HL /\ W e. H )
            /\ ( ( P e. A /\ -. P .<_ W ) /\ ( Q e. A /\ -. Q .<_ W )
                /\ ( S e. A /\ -. S .<_ W ) )
            /\ ( P =/= Q /\ T = ( 0. ` K )
                /\ E. r e. A ( -. r .<_ W /\ ( P .\/ r ) = ( Q .\/ r ) ) ) )
        -> E. z e. A ( -. z .<_ W /\ ( S .\/ z ) = ( T .\/ z ) ) ) $=
      ( wcel wa wbr wn chlt w3a wne cp0 cfv wceq cv co wrex simp1 simp21 simp22
      simp32 simp31 simp23 simp33 4atex2-0aOLDN syl133anc anbi2i rexbii sylibr
      eqcom ) IUAQKGQRZCBQCKJSTRZDBQDKJSTRZEBQEKJSTRZUBZCDUCZFIUDUEUFZLUGZKJSTC
      VJHUHDVJHUHUFRLBUIZUBZUBZAUGZKJSTZFVNHUHZEVNHUHZUFZRZABUIZVOVQVPUFZRZABUI
      VMVCVDVEVIVHVFVKVTVCVGVLUJVCVDVEVFVLUKVCVDVEVFVLULVCVGVHVIVKUMVCVGVHVIVKU
      NVCVDVEVFVLUOVCVGVHVIVKUPABCDFEGHIJKLMNOPUQURWBVSABWAVRVOVQVPVBUSUTVA $.

    $d z H $.
    $( Same as ~ 4atex2 except that ` S ` and ` T ` are zero.  TODO: do we need
       this one or ~ 4atex2-0aOLDN or ~ 4atex2-0bOLDN ?  (Contributed by NM,
       27-May-2013.)  (New usage is discouraged.) $)
    4atex2-0cOLDN $p |- ( ( ( K e. HL /\ W e. H )
            /\ ( ( P e. A /\ -. P .<_ W ) /\ ( Q e. A /\ -. Q .<_ W )
                /\ S = ( 0. ` K ) )
            /\ ( P =/= Q /\ T = ( 0. ` K )
                /\ E. r e. A ( -. r .<_ W /\ ( P .\/ r ) = ( Q .\/ r ) ) ) )
        -> E. z e. A ( -. z .<_ W /\ ( S .\/ z ) = ( T .\/ z ) ) ) $=
      ( wcel wa wceq co chlt wbr wn cp0 cfv w3a wne wrex simp21l simp21r simp23
      oveq1d simp32 eqtr4d breq1 notbid oveq2 eqeq12d anbi12d rspcev syl12anc
      cv ) IUAQKGQRZCBQZCKJUBZUCZRZDBQDKJUBUCRZEIUDUEZSZUFZCDUGZFVISZLVBZKJUBUC
      CVNHTDVNHTSRLBUHZUFZUFZVDVFECHTZFCHTZSZAVBZKJUBZUCZEWAHTZFWAHTZSZRZABUHVD
      VFVHVJVCVPUIVDVFVHVJVCVPUJVQVRVICHTVSVQEVICHVCVGVHVJVPUKULVQFVICHVCVKVLVM
      VOUMULUNWGVFVTRACBWACSZWCVFWFVTWHWBVEWACKJUOUPWHWDVRWEVSWACEHUQWACFHUQURU
      SUTVA $.

    $( More general version of ~ 4atex for a line ` S .\/ T ` not necessarily
       connected to ` P .\/ Q ` .  (Contributed by NM, 29-May-2013.) $)
    4atex3 $p |- ( ( ( K e. HL /\ W e. H )
            /\ ( ( P e. A /\ -. P .<_ W ) /\ ( Q e. A /\ -. Q .<_ W )
                /\ ( S e. A /\ -. S .<_ W ) )
            /\ ( P =/= Q /\ ( T e. A /\ S =/= T )
                /\ E. r e. A ( -. r .<_ W /\ ( P .\/ r ) = ( Q .\/ r ) ) ) )
    -> E. z e. A ( -. z .<_ W
        /\ ( z =/= S /\ z =/= T /\ z .<_ ( S .\/ T ) ) ) ) $=
      ( wcel wa wbr wn chlt w3a wne cv co wceq wrex simp1 simp31 simp32l simp33
      simp2 4atex2 syl113anc clc simp1l hlcvl syl adantr simp23l simpr cvlsupr2
      wb simp32r syl131anc anbi2d rexbidva mpbid ) IUAQZKGQZRZCBQCKJSTRZDBQDKJS
      TRZEBQZEKJSTZRUBZCDUCZFBQZEFUCZRZLUDZKJSTCWAHUEDWAHUEUFRLBUGZUBZUBZAUDZKJ
      STZEWEHUEFWEHUEUFZRZABUGZWFWEEUCWEFUCWEEFHUEJSUBZRZABUGWDVKVPVQVRWBWIVKVP
      WCUHVKVPWCULVKVPVQVTWBUIVRVSVQWBVKVPUJZVKVPVQVTWBUKABCDEFGHIJKLMNOPUMUNWD
      WHWKABWDWEBQZRZWGWJWFWNIUOQZVNVRWMVSWGWJVCWDWOWMWDVIWOVIVJVPWCUPIUQURUSWD
      VNWMVNVOVLVMVKWCUTUSWDVRWMWLUSWDWMVAWDVSWMVRVSVQWBVKVPVDUSBEFWEHIJOMNVBVE
      VFVGVH $.
  $}

  ${
    $d f k x y B $.  $d f x y F $.  $d f k x y K $.  $d f k .<_ $.
    lautset.b $e |- B = ( Base ` K ) $.
    lautset.l $e |- .<_ = ( le ` K ) $.
    lautset.i $e |- I = ( LAut ` K ) $.
    $( The set of lattice automorphisms.  (Contributed by NM, 11-May-2012.) $)
    lautset $p |- ( K e. A -> I = { f | ( f : B -1-1-onto->
      B /\ A. x e. B A. y e. B ( x .<_ y
 <-> ( f ` x ) .<_ ( f ` y ) ) ) } ) $=
      ( vk cvv cv wbr cfv wb wral cab cbs wcel wf1o wa wceq claut fveq2 syl6eqr
      elex cple f1oeq2 syl f1oeq3 bitrd breqd bibi12d raleqbidv anbi12d df-laut
      abbidv wf cmap fvex eqeltri mapval ovex eqeltrri ss2abi ssexi simpl fvmpt
      co f1of syl5eq ) GCUAGMUAZFDDENZUBZANZBNZHOZVQVOPZVRVOPZHOZQZBDRZADRZUCZE
      SZUDGCUHVNFGUEPWGKLGLNZTPZWIVOUBZVQVRWHUIPZOZVTWAWKOZQZBWIRZAWIRZUCZESWGM
      UEWHGUDZWQWFEWRWJVPWPWEWRWJDWIVOUBZVPWRWIDUDZWJWSQWRWIGTPZDWHGTUFIUGZWIDW
      IVOUJUKWRWTWSVPQXBWIDDVOULUKUMWRWOWDAWIDXBWRWNWCBWIDXBWRWLVSWMWBWRWKHVQVR
      WRWKGUIPHWHGUIUFJUGZUNWRWKHVTWAXCUNUOUPUPUQUSABELURWGVPESZXDDDVOUTZESZDDV
      AVKXFMDDEDXAMIGTVBVCZXGVDDDVAVEVFVPXEEDDVOVLVGVHWFVPEVPWEVIVGVHVJVMUK $.

    $( The predictate "is a lattice automorphism."  (Contributed by NM,
       11-May-2012.) $)
    islaut $p |- ( K e. A -> ( F e. I <-> ( F : B -1-1-onto->
      B /\ A. x e. B A. y e. B ( x .<_ y
    <-> ( F ` x ) .<_ ( F ` y ) ) ) ) ) $=
      ( vf wcel cv wf1o wbr cfv wb wral cvv wa cab lautset eleq2d f1of cbs fvex
      wf eqeltri fex sylancl adantr wceq f1oeq1 breq12d bibi2d 2ralbidv anbi12d
      fveq1 elab3 syl6bb ) GCMZEFMEDDLNZOZANZBNZHPZVEVCQZVFVCQZHPZRZBDSADSZUAZL
      UBZMDDEOZVGVEEQZVFEQZHPZRZBDSADSZUAZVBFVNEABCDLFGHIJKUCUDVMWALEVOETMZVTVO
      DDEUHDTMWBDDEUEDGUFQTIGUFUGUIDDTEUJUKULVCEUMZVDVOVLVTDDVCEUNWCVKVSABDDWCV
      JVRVGWCVHVPVIVQHVEVCEUSVFVCEUSUOUPUQURUTVA $.

    $d x y .<_ $.  $d x y X $.  $d y Y $.
    $( Less-than or equal property of a lattice automorphism.  (Contributed by
       NM, 19-May-2012.) $)
    lautle $p |- ( ( ( K e. V /\ F e. I ) /\ ( X e. B /\ Y e. B ) )
       -> ( X .<_ Y <-> ( F ` X ) .<_ ( F ` Y ) ) ) $=
      ( vx vy wcel wa cv wbr cfv wb wral wf1o islaut simplbda wceq breq1 breq1d
      fveq2 bibi12d breq2 breq2d rspc2v mpan9 ) DFNZBCNZOLPZMPZEQZUOBRZUPBRZEQZ
      SZMATLATZGANHANOGHEQZGBRZHBRZEQZSZUMUNAABUAVBLMFABCDEIJKUBUCVAVGGUPEQZVDU
      SEQZSLMGHAAUOGUDZUQVHUTVIUOGUPEUEVJURVDUSEUOGBUGUFUHUPHUDZVHVCVIVFUPHGEUI
      VKUSVEVDEUPHBUGUJUHUKUL $.
  $}

  ${
    $d x y B $.  $d x y F $.  $d x y K $.
    laut1o.b $e |- B = ( Base ` K ) $.
    laut1o.i $e |- I = ( LAut ` K ) $.
    $( A lattice automorphism is one-to-one and onto.  (Contributed by NM,
       19-May-2012.) $)
    laut1o $p |- ( ( K e. A /\ F e. I ) -> F : B -1-1-onto-> B ) $=
      ( vx vy wcel wf1o cv cple cfv wbr wb wral eqid islaut simprbda ) EAJCDJBB
      CKHLZILZEMNZOUACNUBCNUCOPIBQHBQHIABCDEUCFUCRGST $.

    $( One-to-one property of a lattice automorphism.  (Contributed by NM,
       20-May-2012.) $)
    laut11 $p |- ( ( ( K e. V /\ F e. I ) /\ ( X e. B /\ Y e. B ) )
       -> ( ( F ` X ) = ( F ` Y ) <-> X = Y ) ) $=
      ( wcel wa wf1 cfv wceq wb wf1o laut1o f1of1 syl f1fveq sylan ) DEJBCJKZAA
      BLZFAJGAJKFBMGBMNFGNOUBAABPUCEABCDHIQAABRSAAFGBTUA $.

    $( A lattice automorphism value belongs to the base set.  (Contributed by
       NM, 20-May-2012.) $)
    lautcl $p |- ( ( ( K e. V /\ F e. I ) /\ X e. B ) -> ( F ` X ) e. B ) $=
      ( wcel wa wf1o wf laut1o f1of syl ffvelrnda ) DEIBCIJZAAFBQAABKAABLEABCDG
      HMAABNOP $.

    $( Reverse closure of a lattice automorphism.  (Contributed by NM,
       25-May-2012.)  (New usage is discouraged.) $)
    lautcnvclN $p |- ( ( ( K e. V /\ F e. I ) /\ X e. B )
              -> ( `' F ` X ) e. B ) $=
      ( wcel wa wf1o ccnv cfv laut1o f1ocnvdm sylan ) DEIBCIJAABKFAIFBLMAIEABCD
      GHNAAFBOP $.
  $}

  ${
    lautcnvle.b $e |- B = ( Base ` K ) $.
    lautcnvle.l $e |- .<_ = ( le ` K ) $.
    lautcnvle.i $e |- I = ( LAut ` K ) $.
    $( Less-than or equal property of lattice automorphism converse.
       (Contributed by NM, 19-May-2012.) $)
    lautcnvle $p |- ( ( ( K e. V /\ F e. I ) /\ ( X e. B /\ Y e. B ) )
       -> ( X .<_ Y <-> ( `' F ` X ) .<_ ( `' F ` Y ) ) ) $=
      ( wcel wa ccnv cfv wbr f1ocnvdm syl2anc wceq f1ocnvfv2 wf1o laut1o adantr
      wb simpl simprl simprr lautle syl12anc breq12d bitr2d ) DFLBCLMZGALZHALZM
      ZMZGBNZOZHUQOZEPZURBOZUSBOZEPZGHEPUPULURALZUSALZUTVCUDULUOUEUPAABUAZUMVDU
      LVFUOFABCDIKUBUCZULUMUNUFZAAGBQRUPVFUNVEVGULUMUNUGZAAHBQRABCDEFURUSIJKUHU
      IUPVAGVBHEUPVFUMVAGSVGVHAAGBTRUPVFUNVBHSVGVIAAHBTRUJUK $.
  $}

  ${
    $d x y F $.  $d x y I $.  $d x y K $.  $d x y V $.
    lautcnv.i $e |- I = ( LAut ` K ) $.
    $( The converse of a lattice automorphism is a lattice automorphism.
       (Contributed by NM, 10-May-2013.) $)
    lautcnv $p |- ( ( K e. V /\ F e. I ) -> `' F e. I ) $=
      ( vx vy wcel wa ccnv cbs cfv wf1o cv cple wbr wb wral eqid laut1o f1ocnv
      syl lautcnvle ralrimivva islaut adantr mpbir2and ) CDHZABHZIZAJZBHZCKLZUM
      UKMZFNZGNZCOLZPUOUKLUPUKLUQPQZGUMRFUMRZUJUMUMAMUNDUMABCUMSZETUMUMAUAUBUJU
      RFGUMUMUMABCUQDUOUPUTUQSZEUCUDUHULUNUSIQUIFGDUMUKBCUQUTVAEUEUFUG $.
  $}

  ${
    lautlt.b $e |- B = ( Base ` K ) $.
    lautlt.s $e |- .< = ( lt ` K ) $.
    lautlt.i $e |- I = ( LAut ` K ) $.
    $( Less-than property of a lattice automorphism.  (Contributed by NM,
       20-May-2012.) $)
    lautlt $p |- ( ( K e. A /\ ( F e. I /\ X e. B /\ Y e. B ) )
       -> ( X .< Y <-> ( F ` X ) .< ( F ` Y ) ) ) $=
      ( wcel wa cfv wbr wne wb syl22anc wceq pltval w3a cple simpr1 simpr2 eqid
      simpr3 lautle laut11 necon3bid anbi12d 3adant3r1 syl21anc syl3anc 3bitr4d
      simpl bicomd lautcl ) FALZDELZGBLZHBLZUAZMZGHFUBNZOZGHPZMZGDNZHDNZVDOZVHV
      IPZMZGHCOZVHVICOZVCVEVJVFVKVCURUSUTVAVEVJQURVBUOZURUSUTVAUCZURUSUTVAUDZUR
      USUTVAUFZBDEFVDAGHIVDUEZKUGRVCGHVHVIVCVHVISZGHSZVCURUSUTVAVTWAQVOVPVQVRBD
      EFAGHIKUHRUPUIUJURUTVAVMVGQUSABBCFVDGHVSJTUKVCURVHBLZVIBLZVNVLQVOVCURUSUT
      WBVOVPVQBDEFAGIKUQULVCURUSVAWCVOVPVRBDEFAHIKUQULABBCFVDVHVIVSJTUMUN $.
  $}

  ${
    $d w z A $.  $d w z B $.  $d w z F $.  $d w z I $.  $d w z K $.
    $d w z X $.  $d w z Y $.
    lautcvr.b $e |- B = ( Base ` K ) $.
    lautcvr.c $e |- C = ( <o ` K ) $.
    lautcvr.i $e |- I = ( LAut ` K ) $.
    $( Covering property of a lattice automorphism.  (Contributed by NM,
       20-May-2012.) $)
    lautcvr $p |- ( ( K e. A /\ ( F e. I /\ X e. B /\ Y e. B ) )
       -> ( X C Y <-> ( F ` X ) C ( F ` Y ) ) ) $=
      ( vw vz wcel wa cfv wbr lautlt wb anbi12d w3a cplt cv wrex wn eqid simpll
      simplr1 simplr2 simpr syl13anc simplr3 lautcl syl21anc breq2 breq1 rspcev
      wi wceq syl sylbid rexlimdva ccnv wf1o laut1o f1ocnvdm sylancom f1ocnvfv2
      syl2anc breq2d bitr2d breq1d impbid notbid cvrval 3adant3r1 simpr1 simpr2
      ex simpl simpr3 syl3anc 3bitr4d ) FANZDENZGBNZHBNZUAZOZGHFUBPZQZGLUCZWJQZ
      WLHWJQZOZLBUDZUEZOZGDPZHDPZWJQZWSMUCZWJQZXBWTWJQZOZMBUDZUEZOZGHCQZWSWTCQZ
      WIWKXAWQXGABWJDEFGHIWJUFZKRWIWPXFWIWPXFWIWOXFLBWIWLBNZOZWOWSWLDPZWJQZXNWT
      WJQZOZXFXMWMXOWNXPXMWDWEWFXLWMXOSWDWHXLUGZWEWFWGWDXLUHZWEWFWGWDXLUIWIXLUJ
      ZABWJDEFGWLIXKKRUKXMWDWEXLWGWNXPSXRXSXTWEWFWGWDXLULABWJDEFWLHIXKKRUKTXMXN
      BNZXQXFURXMWDWEXLYAXRXSXTBDEFAWLIKUMUNYAXQXFXEXQMXNBXBXNUSXCXOXDXPXBXNWSW
      JUOXBXNWTWJUPTUQVSUTVAVBWIXEWPMBWIXBBNZOZXEGXBDVCPZWJQZYDHWJQZOZWPYCXCYEX
      DYFYCYEWSYDDPZWJQZXCYCWDWEWFYDBNZYEYISWDWHYBUGZWEWFWGWDYBUHZWEWFWGWDYBUIW
      IYBBBDVDZYJYCWDWEYMYKYLABDEFIKVEVIZBBXBDVFVGZABWJDEFGYDIXKKRUKYCYHXBWSWJW
      IYBYMYHXBUSYNBBXBDVHVGZVJVKYCYFYHWTWJQZXDYCWDWEYJWGYFYQSYKYLYOWEWFWGWDYBU
      LABWJDEFYDHIXKKRUKYCYHXBWTWJYPVLVKTYCYJYGWPURYOYJYGWPWOYGLYDBWLYDUSWMYEWN
      YFWLYDGWJUOWLYDHWJUPTUQVSUTVAVBVMVNTWDWFWGXIWRSWELABCWJFGHIXKJVOVPWIWDWSB
      NZWTBNZXJXHSWDWHVTZWIWDWEWFYRYTWDWEWFWGVQZWDWEWFWGVRBDEFAGIKUMUNWIWDWEWGY
      SYTUUAWDWEWFWGWABDEFAHIKUMUNMABCWJFWSWTIXKJVOWBWC $.
  $}

  ${
    lautj.b $e |- B = ( Base ` K ) $.
    lautj.j $e |- .\/ = ( join ` K ) $.
    lautj.i $e |- I = ( LAut ` K ) $.
    $( Meet property of a lattice automorphism.  (Contributed by NM,
       25-May-2012.) $)
    lautj $p |- ( ( K e. Lat /\ ( F e. I /\ X e. B /\ Y e. B ) )
       -> ( F ` ( X .\/ Y ) ) = ( ( F ` X ) .\/ ( F ` Y ) ) ) $=
      ( clat wcel wa cfv 3adant3r1 syl2anc wbr wb lautle syl12anc w3a cple eqid
      co simpl simpr1 latjcl lautcl simpr2 simpr3 syl3anc ccnv wf1o wceq laut1o
      jca 3ad2antr1 f1ocnvfv1 latlej1 breqtrrd f1ocnvdm mpbird latlej2 latjle12
      f1ocnvfv2 syl13anc mpbi2and eqbrtrd lautcnvle mpbid latasymd ) EKLZBCLZFA
      LZGALZUAZMZAEEUBNZFGDUDZBNZFBNZGBNZDUDZHVRUCZVLVPUEZVQVLVMMZVSALZVTALZVQV
      LVMWEVLVMVNVOUFUPZVLVNVOWGVMADEFGHIUGOZABCEKVSHJUHPZVQVLWAALZWBALZWCALZWE
      VQWFVNWLWIVLVMVNVOUIZABCEKFHJUHPZVQWFVOWMWIVLVMVNVOUJZABCEKGHJUHPZADEWAWB
      HIUGUKZVQVTWCVRQZVTBULZNZWCXANZVRQZVQXBVSXCVRVQAABUMZWGXBVSUNVLVNVMXEVOKA
      BCEHJUOUQZWJAAVSBURPVQFXCVRQZGXCVRQZVSXCVRQZVQXGWAXCBNZVRQZVQWAWCXJVRVQVL
      WLWMWAWCVRQWEWPWRADEVRWAWBHWDIUSUKVQXEWNXJWCUNXFWSAAWCBVEPZUTVQWFVNXCALZX
      GXKRWIWOVQXEWNXMXFWSAAWCBVAPZABCEVRKFXCHWDJSTVBVQXHWBXJVRQZVQWBWCXJVRVQVL
      WLWMWBWCVRQWEWPWRADEVRWAWBHWDIVCUKXLUTVQWFVOXMXHXORWIWQXNABCEVRKGXCHWDJST
      VBVQVLVNVOXMXGXHMXIRWEWOWQXNADEVRFGXCHWDIVDVFVGVHVQWFWHWNWTXDRWIWKWSABCEV
      RKVTWCHWDJVITVBVQWAVTVRQZWBVTVRQZWCVTVRQZVQFVSVRQZXPVLVNVOXSVMADEVRFGHWDI
      USOVQWFVNWGXSXPRWIWOWJABCEVRKFVSHWDJSTVJVQGVSVRQZXQVLVNVOXTVMADEVRFGHWDIV
      COVQWFVOWGXTXQRWIWQWJABCEVRKGVSHWDJSTVJVQVLWLWMWHXPXQMXRRWEWPWRWKADEVRWAW
      BVTHWDIVDVFVGVK $.
  $}

  ${
    lautm.b $e |- B = ( Base ` K ) $.
    lautm.m $e |- ./\ = ( meet ` K ) $.
    lautm.i $e |- I = ( LAut ` K ) $.
    $( Meet property of a lattice automorphism.  (Contributed by NM,
       19-May-2012.) $)
    lautm $p |- ( ( K e. Lat /\ ( F e. I /\ X e. B /\ Y e. B ) )
       -> ( F ` ( X ./\ Y ) ) = ( ( F ` X ) ./\ ( F ` Y ) ) ) $=
      ( clat wcel wa cfv 3adant3r1 syl2anc wbr wb syl12anc mpbid w3a cple simpl
      co eqid simpr1 latmcl lautcl simpr2 simpr3 syl3anc latmle1 lautle latmle2
      latlem12 syl13anc mpbi2and ccnv wf1o laut1o 3ad2antr1 f1ocnvfv2 lautcnvle
      jca wceq f1ocnvfv1 breqtrd f1ocnvdm eqbrtrrd latasymd ) DKLZBCLZFALZGALZU
      AZMZADDUBNZFGEUDZBNZFBNZGBNZEUDZHVQUEZVKVOUCZVPVKVLMZVRALZVSALZVPVKVLWDVK
      VLVMVNUFVDZVKVMVNWFVLADEFGHIUGOZABCDKVRHJUHPZVPVKVTALZWAALZWBALZWDVPWEVMW
      KWHVKVLVMVNUIZABCDKFHJUHPZVPWEVNWLWHVKVLVMVNUJZABCDKGHJUHPZADEVTWAHIUGUKZ
      VPVSVTVQQZVSWAVQQZVSWBVQQZVPVRFVQQZWSVKVMVNXBVLADVQEFGHWCIULOVPWEWFVMXBWS
      RWHWIWNABCDVQKVRFHWCJUMSTVPVRGVQQZWTVKVMVNXCVLADVQEFGHWCIUNOVPWEWFVNXCWTR
      WHWIWPABCDVQKVRGHWCJUMSTVPVKWGWKWLWSWTMXARWDWJWOWQADVQEVSVTWAHWCIUOUPUQVP
      WBBURZNZBNZWBVSVQVPAABUSZWMXFWBVEVKVMVLXGVNKABCDHJUTVAZWRAAWBBVBPVPXEVRVQ
      QZXFVSVQQZVPXEFVQQZXEGVQQZXIVPXEVTXDNZFVQVPWBVTVQQZXEXMVQQZVPVKWKWLXNWDWO
      WQADVQEVTWAHWCIULUKVPWEWMWKXNXORWHWRWOABCDVQKWBVTHWCJVCSTVPXGVMXMFVEXHWNA
      AFBVFPVGVPXEWAXDNZGVQVPWBWAVQQZXEXPVQQZVPVKWKWLXQWDWOWQADVQEVTWAHWCIUNUKV
      PWEWMWLXQXRRWHWRWQABCDVQKWBWAHWCJVCSTVPXGVNXPGVEXHWPAAGBVFPVGVPVKXEALZVMV
      NXKXLMXIRWDVPXGWMXSXHWRAAWBBVHPZWNWPADVQEXEFGHWCIUOUPUQVPWEXSWFXIXJRWHXTW
      IABCDVQKXEVRHWCJUMSTVIVJ $.
  $}

  ${
    $d p A $.  $d p B $.  $d p F $.  $d p I $.  $d p K $.  $d p X $.
    lauteq.b $e |- B = ( Base ` K ) $.
    lauteq.a $e |- A = ( Atoms ` K ) $.
    lauteq.i $e |- I = ( LAut ` K ) $.
    $( A lattice automorphism argument is equal to its value if all atoms are
       equal to their values.  (Contributed by NM, 24-May-2012.) $)
    lauteq $p |- ( ( ( K e. HL /\ F e. I /\ X e. B )
          /\ A. p e. A ( F ` p ) = p ) -> ( F ` X ) = X ) $=
      ( chlt wcel cfv wceq wral wa wbr wb simpl1 simpl2 cv atbase adantl simpl3
      w3a cple eqid lautle syl22anc breq1 sylan9bb bicomd ralimdva imp syl21anc
      ex lautcl hlateq syl3anc mpbid ) EKLZCDLZFBLZUEZGUAZCMZVENZGAOZPZVEFCMZEU
      FMZQZVEFVKQZRZGAOZVJFNZVDVHVOVDVGVNGAVDVEALZPZVGVNVRVGPVMVLVRVMVFVJVKQZVG
      VLVRVAVBVEBLZVCVMVSRVAVBVCVQSVAVBVCVQTVQVTVDABVEEHIUBUCVAVBVCVQUDBCDEVKKV
      EFHVKUGZJUHUIVFVEVJVKUJUKULUPUMUNVIVAVJBLZVCVOVPRVAVBVCVHSZVIVAVBVCWBWCVA
      VBVCVHTVAVBVCVHUDZBCDEKFHJUQUOWDABEVKVJFGHWAIURUSUT $.
  $}

  ${
    $d x y B $.  $d x y K $.
    idlaut.b $e |- B = ( Base ` K ) $.
    idlaut.i $e |- I = ( LAut ` K ) $.
    $( The identity function is a lattice automorphism.  (Contributed by NM,
       18-May-2012.) $)
    idlaut $p |- ( K e. A -> ( _I |` B ) e. I ) $=
      ( vx vy wcel cid cres wf1o cv cple cfv wbr wb wral a1i fvresi f1oi bicomd
      wa breqan12d rgen2a eqid islaut mpbir2and ) DAIZJBKZCIBBUJLZGMZHMZDNOZPZU
      LUJOZUMUJOZUNPZQZHBRGBRZUKUIBUASUTUIUSGHBULBIZUMBIZUCURUOVAVBUPULUQUMUNBU
      LTBUMTUDUBUESGHABUJCDUNEUNUFFUGUH $.
  $}

  ${
    $d x y F $.  $d x y G $.  $d x y I $.  $d x y K $.  $d x y V $.
    lautco.i $e |- I = ( LAut ` K ) $.
    $( The composition of two lattice automorphisms is a lattice automorphism.
       (Contributed by NM, 19-Apr-2013.) $)
    lautco $p |- ( ( K e. V /\ F e. I /\ G e. I ) -> ( F o. G ) e. I ) $=
      ( vx vy wcel cfv wf1o cv wbr wb wral eqid laut1o wa lautcl syl21anc f1oco
      w3a cbs 3adant3 3adant2 syl2anc simpl1 simpl2 simpl3 simprl simprr lautle
      ccom cple syl22anc 3adantl2 wf wceq f1of simpl fvco3 syl2an simpr breq12d
      syl 3bitr4d ralrimivva islaut 3ad2ant1 mpbir2and ) DEIZACIZBCIZUBZABUMZCI
      ZDUCJZVQVOKZGLZHLZDUNJZMZVSVOJZVTVOJZWAMZNZHVQOGVQOZVNVQVQAKZVQVQBKZVRVKV
      LWHVMEVQACDVQPZFQUDVKVMWIVLEVQBCDWJFQUEZVQVQVQABUAUFVNWFGHVQVQVNVSVQIZVTV
      QIZRZRZVSBJZVTBJZWAMZWPAJZWQAJZWAMZWBWEWOVKVLWPVQIZWQVQIZWRXANVKVLVMWNUGZ
      VKVLVMWNUHWOVKVMWLXBXDVKVLVMWNUIZVNWLWMUJVQBCDEVSWJFSTWOVKVMWMXCXDXEVNWLW
      MUKVQBCDEVTWJFSTVQACDWAEWPWQWJWAPZFULUOVKVMWNWBWRNVLVQBCDWAEVSVTWJXFFULUP
      WOWCWSWDWTWAVNVQVQBUQZWLWCWSURWNVNWIXGWKVQVQBUSVEZWLWMUTVQVQVSABVAVBVNXGW
      MWDWTURWNXHWLWMVCVQVQVTABVAVBVDVFVGVKVLVPVRWGRNVMGHEVQVOCDWAWJXFFVHVIVJ
      $.
  $}

  ${
    $d f x y F $.  $d f k x K $.  $d f k x y S $.
    pautset.s $e |- S = ( PSubSp ` K ) $.
    pautset.m $e |- M = ( PAut ` K ) $.
    $( The set of projective automorphisms.  (Contributed by NM, 26-Jan-2012.)
       (New usage is discouraged.) $)
    pautsetN $p |- ( K e. B -> M = { f | ( f : S -1-1-onto->
      S /\ A. x e. S A. y e. S ( x C_ y <-> ( f ` x ) C_ ( f ` y ) ) ) } ) $=
      ( vk cvv cv wf1o cfv wb wral cab wceq cpsubsp syl wcel wss wa elex cpautN
      fveq2 syl6eqr f1oeq2 f1oeq3 bitrd raleqdv raleqbidv anbi12d df-pautN cmap
      abbidv wf fvex eqeltri mapval ovex eqeltrri f1of ss2abi ssexi simpl fvmpt
      co syl5eq ) FCUAFKUAZGDDELZMZALZBLZUBVMVKNVNVKNUBOZBDPZADPZUCZEQZRFCUDVJG
      FUENVSIJFJLZSNZWAVKMZVOBWAPZAWAPZUCZEQVSKUEVTFRZWEVREWFWBVLWDVQWFWBDWAVKM
      ZVLWFWADRZWBWGOWFWAFSNZDVTFSUFHUGZWADWAVKUHTWFWHWGVLOWJWADDVKUITUJWFWCVPA
      WADWJWFVOBWADWJUKULUMUPABEJUNVSVLEQZWKDDVKUQZEQZDDUOVHWMKDDEDWIKHFSURUSZW
      NUTDDUOVAVBVLWLEDDVKVCVDVEVRVLEVLVQVFVDVEVGVIT $.

    $( The predictate "is a projective automorphism."  (Contributed by NM,
       26-Jan-2012.)  (New usage is discouraged.) $)
    ispautN $p |- ( K e. B -> ( F e. M <-> ( F : S -1-1-onto->
      S /\ A. x e. S A. y e. S ( x C_ y <-> ( F ` x ) C_ ( F ` y ) ) ) ) ) $=
      ( vf wcel cv wf1o wss cfv wb wral wa cvv cpsubsp cab pautsetN eleq2d f1of
      fvex eqeltri fex sylancl adantr wceq f1oeq1 fveq1 sseq12d bibi2d 2ralbidv
      wf anbi12d elab3 syl6bb ) FCKZEGKEDDJLZMZALZBLZNZVCVAOZVDVAOZNZPZBDQADQZR
      ZJUAZKDDEMZVEVCEOZVDEOZNZPZBDQADQZRZUTGVLEABCDJFGHIUBUCVKVSJEVMESKZVRVMDD
      EUPDSKVTDDEUDDFTOSHFTUEUFDDSEUGUHUIVAEUJZVBVMVJVRDDVAEUKWAVIVQABDDWAVHVPV
      EWAVFVNVGVOVCVAEULVDVAEULUMUNUOUQURUS $.
  $}

  $c LDil $.
  $c LTrn $.
  $c Dil $.
  $c Trn $.

  $( Extend class notation with set of all lattice dilations. $)
  cldil $a class LDil $.

  $( Extend class notation with set of all lattice translations. $)
  cltrn $a class LTrn $.

  $( Extend class notation with set of all dilations. $)
  cdilN $a class Dil $.

  $( Extend class notation with set of all translations. $)
  ctrnN $a class Trn $.

  ${
    $d k w f x p q $.
    $( Define set of all lattice dilations.  Similar to definition of dilation
       in [Crawley] p. 111.  (Contributed by NM, 11-May-2012.) $)
    df-ldil $a |- LDil = ( k e. _V |-> ( w e. ( LHyp ` k )
       |-> { f e. ( LAut ` k ) | A. x e. ( Base ` k )
               ( x ( le ` k ) w -> ( f ` x ) = x ) } ) ) $.

    $( Define set of all lattice translations.  Similar to definition of
       translation in [Crawley] p. 111.  (Contributed by NM, 11-May-2012.) $)
    df-ltrn $a |- LTrn = ( k e. _V |-> ( w e. ( LHyp ` k )
   |-> { f e. ( ( LDil ` k ) ` w ) |
     A. p e. ( Atoms ` k ) A. q e. ( Atoms ` k )
      ( ( -. p ( le ` k ) w /\ -. q ( le ` k ) w ) ->
           ( ( p ( join ` k ) ( f ` p ) ) ( meet ` k ) w )
        = ( ( q ( join ` k ) ( f ` q ) ) ( meet ` k ) w ) ) } ) ) $.
  $}

  ${
    $d k d f x q r $.
    $( Define set of all dilations.  Definition of dilation in [Crawley]
       p. 111.  (Contributed by NM, 30-Jan-2012.) $)
    df-dilN $a |- Dil = ( k e. _V |-> ( d e. ( Atoms ` k )
       |-> { f e. ( PAut ` k ) | A. x e. ( PSubSp ` k )
               ( x C_ ( ( WAtoms ` k ) ` d ) -> ( f ` x ) = x ) } ) ) $.

    $( Define set of all translations.  Definition of translation in [Crawley]
       p. 111.  (Contributed by NM, 4-Feb-2012.) $)
    df-trnN $a |- Trn = ( k e. _V |-> ( d e. ( Atoms ` k )
   |-> { f e. ( ( Dil ` k ) ` d )
      | A. q e. ( ( WAtoms ` k ) ` d ) A. r e. ( ( WAtoms ` k ) ` d )
           ( ( q ( +P ` k ) ( f ` q ) ) i^i ( ( _|_P ` k ) ` { d } ) )
         = ( ( r ( +P ` k ) ( f ` r ) ) i^i ( ( _|_P ` k ) ` { d } ) ) } ) ) $.
  $}

  ${
    $d k x B $.  $d k w H $.  $d f k I $.  $d f k w x K $.  $d k .<_ $.
    ldilset.b $e |- B = ( Base ` K ) $.
    ldilset.l $e |- .<_ = ( le ` K ) $.
    ldilset.h $e |- H = ( LHyp ` K ) $.
    ldilset.i $e |- I = ( LAut ` K ) $.
    $( The mapping from fiducial co-atom ` w ` to its set of lattice dilations.
       (Contributed by NM, 11-May-2012.) $)
    ldilfset $p |- ( K e. C -> ( LDil ` K )
           = ( w e. H |-> { f e. I | A. x e. B
               ( x .<_ w -> ( f ` x ) = x ) } ) ) $=
      ( vk cvv cfv cv clh fveq2 syl6eqr wcel cldil wbr wceq wral crab cmpt elex
      wi cple cbs claut breqd imbi1d raleqbidv rabeqbidv mpteq12dv df-ldil fvex
      eqeltri mptex fvmpt syl ) HDUAHOUAHUBPBFAQZBQZIUCZVDEQPVDUDZUIZACUEZEGUFZ
      UGZUDHDUHNHBNQZRPZVDVEVLUJPZUCZVGUIZAVLUKPZUEZEVLULPZUFZUGVKOUBVLHUDZBVMV
      TFVJWAVMHRPZFVLHRSLTWAVRVIEVSGWAVSHULPGVLHULSMTWAVPVHAVQCWAVQHUKPCVLHUKSJ
      TWAVOVFVGWAVNIVDVEWAVNHUJPIVLHUJSKTUMUNUOUPUQABENURBFVJFWBOLHRUSUTVAVBVC
      $.

    $d w B $.  $d w I $.  $d w .<_ $.  $d f w x W $.
    ldilset.d $e |- D = ( ( LDil ` K ) ` W ) $.
    $( The set of lattice dilations for a fiducial co-atom ` W ` .
       (Contributed by NM, 11-May-2012.) $)
    ldilset $p |- ( ( K e. C /\ W e. H ) -> D = { f e. I | A. x e. B
               ( x .<_ W -> ( f ` x ) = x ) } ) $=
      ( vw wcel cfv cv wbr wa cldil wceq wral crab ldilfset fveq1d breq2 imbi1d
      wi cmpt ralbidv rabbidv eqid claut cvv fvex eqeltri rabex sylan9eq syl5eq
      fvmpt ) HCQZJFQZUADJHUBRZRZASZJITZVGESRVGUCZUJZABUDZEGUEZOVCVDVFJPFVGPSZI
      TZVIUJZABUDZEGUEZUKZRVLVCJVEVRAPBCEFGHIKLMNUFUGPJVQVLFVRVMJUCZVPVKEGVSVOV
      JABVSVNVHVIVMJVGIUHUIULUMVRUNVKEGGHUORUPNHUOUQURUSVBUTVA $.

    $d f B $.  $d f x F $.  $d f .<_ $.
    $( The predicate "is a lattice dilation".  Similar to definition of
       dilation in [Crawley] p. 111.  (Contributed by NM, 11-May-2012.) $)
    isldil $p |- ( ( K e. C /\ W e. H ) -> ( F e. D
      <-> ( F e. I /\ A. x e. B ( x .<_ W -> ( F ` x ) = x ) ) ) ) $=
      ( vf wcel wa cv wceq wbr cfv wral crab ldilset eleq2d fveq1 eqeq1d imbi2d
      wi ralbidv elrab syl6bb ) HCQJFQRZEDQEASZJIUAZUOPSZUBZUOTZUJZABUCZPGUDZQE
      GQUPUOEUBZUOTZUJZABUCZRUNDVBEABCDPFGHIJKLMNOUEUFVAVFPEGUQETZUTVEABVGUSVDU
      PVGURVCUOUOUQEUGUHUIUKULUM $.
  $}

  ${
    $d x F $.  $d x K $.  $d x W $.
    ldillaut.h $e |- H = ( LHyp ` K ) $.
    ldillaut.i $e |- I = ( LAut ` K ) $.
    ldillaut.d $e |- D = ( ( LDil ` K ) ` W ) $.
    $( A lattice dilation is an automorphism.  (Contributed by NM,
       20-May-2012.) $)
    ldillaut $p |- ( ( ( K e. V /\ W e. H ) /\ F e. D ) -> F e. I ) $=
      ( vx wcel wa cv cple cfv wbr wceq wi eqid cbs wral isldil simprbda ) EFLG
      CLMBALBDLKNZGEOPZQUEBPUERSKEUAPZUBKUGFABCDEUFGUGTUFTHIJUCUD $.
  $}

  ${
    ldil1o.b $e |- B = ( Base ` K ) $.
    ldil1o.h $e |- H = ( LHyp ` K ) $.
    ldil1o.d $e |- D = ( ( LDil ` K ) ` W ) $.
    $( A lattice dilation is a one-to-one onto function.  (Contributed by NM,
       19-Apr-2013.) $)
    ldil1o $p |- ( ( ( K e. V /\ W e. H ) /\ F e. D )
      -> F : B -1-1-onto-> B ) $=
      ( wcel wa claut cfv wf1o simpll eqid ldillaut laut1o syl2anc ) EFKZGDKZLC
      BKZLUACEMNZKAACOUAUBUCPBCDUDEFGIUDQZJRFACUDEHUEST $.
  $}

  ${
    $d x B $.  $d x F $.  $d x K $.  $d x .<_ $.  $d x W $.  $d x X $.
    ldilval.b $e |- B = ( Base ` K ) $.
    ldilval.l $e |- .<_ = ( le ` K ) $.
    ldilval.h $e |- H = ( LHyp ` K ) $.
    ldilval.d $e |- D = ( ( LDil ` K ) ` W ) $.
    $( Value of a lattice dilation under its co-atom.  (Contributed by NM,
       20-May-2012.) $)
    ldilval $p |- ( ( ( K e. V /\ W e. H ) /\ F e. D
        /\ ( X e. B /\ X .<_ W ) ) -> ( F ` X ) = X ) $=
      ( vx wcel wa wbr cfv wceq wi cv wral claut eqid isldil simpr syl6bi breq1
      fveq2 id eqeq12d imbi12d rspccv impd syl6 3imp ) EGOHDOPZCBOZIAOZIHFQZPZI
      CRZISZUQURNUAZHFQZVDCRZVDSZTZNAUBZVAVCTUQURCEUCRZOZVIPVINAGBCDVJEFHJKLVJU
      DMUEVKVIUFUGVIUSUTVCVHUTVCTNIAVDISZVEUTVGVCVDIHFUHVLVFVBVDIVDICUIVLUJUKUL
      UMUNUOUP $.
  $}

  ${
    $d x B $.  $d x K $.  $d x W $.
    idldil.b $e |- B = ( Base ` K ) $.
    idldil.h $e |- H = ( LHyp ` K ) $.
    idldil.d $e |- D = ( ( LDil ` K ) ` W ) $.
    $( The identity function is a lattice dilation.  (Contributed by NM,
       18-May-2012.) $)
    idldil $p |- ( ( K e. A /\ W e. H ) -> ( _I |` B ) e. D ) $=
      ( vx wcel wa cid cres claut cfv cv cple wbr eqid idlaut adantr fvresi a1d
      wceq wi wral rgen a1i isldil mpbir2and ) EAKZFDKZLZMBNZCKUOEOPZKZJQZFERPZ
      SZURUOPURUEZUFZJBUGZULUQUMABUPEGUPTZUAUBVCUNVBJBURBKVAUTBURUCUDUHUIJBACUO
      DUPEUSFGUSTHVDIUJUK $.
  $}

  ${
    $d x D $.  $d x F $.  $d x H $.  $d x K $.  $d x W $.
    ldilcnv.h $e |- H = ( LHyp ` K ) $.
    ldilcnv.d $e |- D = ( ( LDil ` K ) ` W ) $.
    $( The converse of a lattice dilation is a lattice dilation.  (Contributed
       by NM, 10-May-2013.) $)
    ldilcnv $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. D )
      -> `' F e. D ) $=
      ( vx chlt wcel wa ccnv claut cfv cv cple wbr wceq eqid syl2anc cbs simpll
      wral ldillaut lautcnv w3a ldilval 3expa 3impb fveq2d wf1o ldil1o 3ad2ant1
      wi simp2 f1ocnvfv1 eqtr3d 3exp ralrimiv wb isldil adantr mpbir2and ) DIJZ
      ECJZKZBAJZKZBLZAJZVIDMNZJZHOZEDPNZQZVMVINZVMRZUNZHDUANZUCZVHVDBVKJVLVDVEV
      GUBABCVKDIEFVKSZGUDBVKDIWAUETVHVRHVSVHVMVSJZVOVQVHWBVOUFZVMBNZVINZVPVMWCW
      DVMVIVHWBVOWDVMRZVFVGWBVOKWFVSABCDVNIEVMVSSZVNSZFGUGUHUIUJWCVSVSBUKZWBWEV
      MRVHWBWIVOVSABCDIEWGFGULUMVHWBVOUOVSVSVMBUPTUQURUSVFVJVLVTKUTVGHVSIAVICVK
      DVNEWGWHFWAGVAVBVC $.
  $}

  ${
    $d x D $.  $d x F $.  $d x G $.  $d x H $.  $d x K $.  $d x V $.  $d x W $.
    ldilco.h $e |- H = ( LHyp ` K ) $.
    ldilco.d $e |- D = ( ( LDil ` K ) ` W ) $.
    $( The composition of two lattice automorphisms is a lattice automorphism.
       (Contributed by NM, 19-Apr-2013.) $)
    ldilco $p |- ( ( ( K e. V /\ W e. H )
          /\ F e. D /\ G e. D ) -> ( F o. G ) e. D ) $=
      ( vx wcel wa w3a cfv wceq eqid ldillaut syl2anc ldilval syl112anc ccom cv
      claut cple wbr cbs wral simp1l 3adant3 3adant2 lautco syl3anc wf1o simp11
      wi simp13 ldil1o f1of syl simp2 fvco3 simp3 fveq2d simp12 3eqtrd ralrimiv
      wf 3exp wb isldil 3ad2ant1 mpbir2and ) EFKZGDKZLZBAKZCAKZMZBCUAZAKZVSEUCN
      ZKZJUBZGEUDNZUEZWCVSNZWCOZUOZJEUFNZUGZVRVMBWAKZCWAKZWBVMVNVPVQUHVOVPWKVQA
      BDWAEFGHWAPZIQUIVOVQWLVPACDWAEFGHWMIQUJBCWAEFWMUKULVRWHJWIVRWCWIKZWEWGVRW
      NWEMZWFWCCNZBNZWCBNZWCWOWIWICVGZWNWFWQOWOWIWICUMZWSWOVOVQWTVOVPVQWNWEUNZV
      OVPVQWNWEUPZWIACDEFGWIPZHIUQRWIWICURUSVRWNWEUTZWIWIWCBCVARWOWPWCBWOVOVQWN
      WEWPWCOXAXBXDVRWNWEVBZWIACDEWDFGWCXCWDPZHISTVCWOVOVPWNWEWRWCOXAVOVPVQWNWE
      VDXDXEWIABDEWDFGWCXCXFHISTVEVHVFVOVPVTWBWJLVIVQJWIFAVSDWAEWDGXCXFHWMIVJVK
      VL $.
  $}

  ${
    $d k p q A $.  $d f k D $.  $d k w H $.  $d k .\/ $.  $d f k p q w K $.
    $d k .<_ $.  $d k ./\ $.
    ltrnset.l $e |- .<_ = ( le ` K ) $.
    ltrnset.j $e |- .\/ = ( join ` K ) $.
    ltrnset.m $e |- ./\ = ( meet ` K ) $.
    ltrnset.a $e |- A = ( Atoms ` K ) $.
    ltrnset.h $e |- H = ( LHyp ` K ) $.
    $( The set of all lattice translations for a lattice ` K ` .  (Contributed
       by NM, 11-May-2012.) $)
    ltrnfset $p |- ( K e. C -> ( LTrn ` K ) = ( w e. H
 |-> { f e. ( ( LDil ` K ) ` w ) | A. p e. A A. q e. A ( ( -. p .<_ w /\ -. q
        .<_ w )
   -> ( ( p .\/ ( f ` p ) ) ./\ w )
       = ( ( q .\/ ( f ` q ) ) ./\ w ) ) } ) ) $=
      ( cfv cv co fveq2 vk wcel cvv cltrn wbr wn wa wceq wi wral crab cmpt elex
      cldil clh cple cjn cmee catm syl6eqr fveq1d breqd notbid anbi12d oveq123d
      oveqd eqidd eqeq12d imbi12d raleqbidv rabeqbidv mpteq12dv df-ltrn eqeltri
      fvex mptex fvmpt syl ) GCUBGUCUBGUDQAEKRZARZHUEZUFZJRZVTHUEZUFZUGZVSVSDRZ
      QZFSZVTISZWCWCWGQZFSZVTISZUHZUIZJBUJZKBUJZDVTGUNQZQZUKZULZUHGCUMUAGAUARZU
      OQZVSVTXBUPQZUEZUFZWCVTXDUEZUFZUGZVSWHXBUQQZSZVTXBURQZSZWCWKXJSZVTXLSZUHZ
      UIZJXBUSQZUJZKXRUJZDVTXBUNQZQZUKZULXAUCUDXBGUHZAXCYCEWTYDXCGUOQZEXBGUOTPU
      TYDXTWQDYBWSYDVTYAWRXBGUNTVAYDXSWPKXRBYDXRGUSQBXBGUSTOUTZYDXQWOJXRBYFYDXI
      WFXPWNYDXFWBXHWEYDXEWAYDXDHVSVTYDXDGUPQHXBGUPTLUTZVBVCYDXGWDYDXDHWCVTYGVB
      VCVDYDXMWJXOWMYDXKWIVTVTXLIYDXLGURQIXBGURTNUTZYDXJFVSWHYDXJGUQQFXBGUQTMUT
      ZVFYDVTVGZVEYDXNWLVTVTXLIYHYDXJFWCWKYIVFYJVEVHVIVJVJVKVLADUAJKVMAEWTEYEUC
      PGUOVOVNVPVQVR $.

    ltrnset.d $e |- D = ( ( LDil ` K ) ` W ) $.
    ltrnset.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $d w A $.  $d w D $.  $d w .\/ $.  $d w .<_ $.  $d w ./\ $.
    $d f p q w W $.
    $( The set of lattice translations for a fiducial co-atom ` W ` .
       (Contributed by NM, 11-May-2012.) $)
    ltrnset $p |- ( ( K e. B /\ W e. H ) -> T
  = { f e. D | A. p e. A A. q e. A ( ( -. p .<_ W /\ -. q .<_ W )
      -> ( ( p .\/ ( f ` p ) ) ./\ W )
           = ( ( q .\/ ( f ` q ) ) ./\ W ) ) } ) $=
      ( vw wcel cv wbr wn wa cfv co wceq wi wral cldil crab cmpt cltrn ltrnfset
      fveq1d syl5eq fveq2 syl6eqr breq2 notbid anbi12d eqeq12d imbi12d 2ralbidv
      oveq2 rabeqbidv eqid cvv fvex eqeltri rabex fvmpt sylan9eq ) HBUBZKFUBDKU
      AFMUCZUAUCZIUDZUEZLUCZVRIUDZUEZUFZVQVQEUCZUGGUHZVRJUHZWAWAWEUGGUHZVRJUHZU
      IZUJZLAUKMAUKZEVRHULUGZUGZUMZUNZUGZVQKIUDZUEZWAKIUDZUEZUFZWFKJUHZWHKJUHZU
      IZUJZLAUKMAUKZECUMZVPDKHUOUGZUGWQTVPKXIWPUAABEFGHIJLMNOPQRUPUQURUAKWOXHFW
      PVRKUIZWLXGEWNCXJWNKWMUGZCVRKWMUSSUTXJWKXFMLAAXJWDXBWJXEXJVTWSWCXAXJVSWRV
      RKVQIVAVBXJWBWTVRKWAIVAVBVCXJWGXCWIXDVRKWFJVGVRKWHJVGVDVEVFVHWPVIXGECCXKV
      JSKWMVKVLVMVNVO $.

    $d f A $.  $d f p q F $.  $d f .\/ $.  $d f .<_ $.  $d f ./\ $.
    $( The predicate "is a lattice translation".  Similar to definition of
       translation in [Crawley] p. 111.  (Contributed by NM, 11-May-2012.) $)
    isltrn $p |- ( ( K e. B /\ W e. H ) -> ( F e. T
 <-> ( F e. D /\ A. p e. A A. q e. A ( ( -. p .<_ W /\ -. q .<_ W )
    -> ( ( p .\/ ( F ` p ) ) ./\ W )
         = ( ( q .\/ ( F ` q ) ) ./\ W ) ) ) ) ) $=
      ( vf wcel wa cv wbr wn cfv co wceq wral crab ltrnset eleq2d oveq2d oveq1d
      wi fveq1 eqeq12d imbi2d 2ralbidv elrab syl6bb ) HBUBKFUBUCZEDUBEMUDZKIUEU
      FLUDZKIUEUFUCZVDVDUAUDZUGZGUHZKJUHZVEVEVGUGZGUHZKJUHZUIZUPZLAUJMAUJZUACUK
      ZUBECUBVFVDVDEUGZGUHZKJUHZVEVEEUGZGUHZKJUHZUIZUPZLAUJMAUJZUCVCDVQEABCDUAF
      GHIJKLMNOPQRSTULUMVPWFUAECVGEUIZVOWEMLAAWGVNWDVFWGVJVTVMWCWGVIVSKJWGVHVRV
      DGVDVGEUQUNUOWGVLWBKJWGVKWAVEGVEVGEUQUNUOURUSUTVAVB $.

    $( The predicate "is a lattice translation".  Version of ~ isltrn that
       considers only different ` p ` and ` q ` .  TODO:  Can this eliminate
       some separate proofs for the ` p = q ` case?  (Contributed by NM,
       22-Apr-2013.)  (New usage is discouraged.) $)
    isltrn2N $p |- ( ( K e. B /\ W e. H ) -> ( F e. T
 <-> ( F e. D /\ A. p e. A A. q e. A (
    ( -. p .<_ W /\ -. q .<_ W /\ p =/= q )
    -> ( ( p .\/ ( F ` p ) ) ./\ W )
         = ( ( q .\/ ( F ` q ) ) ./\ W ) ) ) ) ) $=
      ( wcel wa cv wbr wn cfv co wceq wi wne isltrn 3simpa imim1i 3anass 3anrot
      wral w3a df-ne anbi1i 3bitr3i imbi1i impexp bitri id fveq2 oveq12d oveq1d
      a1d pm2.61 ax-mp sylbi impbii 2ralbii anbi2i syl6bb ) HBUAKFUAUBEDUAECUAZ
      MUCZKIUDUEZLUCZKIUDUEZUBZVQVQEUFZGUGZKJUGVSVSEUFZGUGZKJUGUHZUIZLAUPMAUPZU
      BVPVRVTVQVSUJZUQZWFUIZLAUPMAUPZUBABCDEFGHIJKLMNOPQRSTUKWHWLVPWGWKMLAAWGWK
      WJWAWFVRVTWIULUMWKVQVSUHZUEZWGUIZWGWKWNWAUBZWFUIWOWJWPWFWIVRVTUQWIWAUBWJW
      PWIVRVTUNWIVRVTUOWIWNWAVQVSURUSUTVAWNWAWFVBVCWMWGUIWOWGUIWMWFWAWMWCWEKJWM
      VQVSWBWDGWMVDVQVSEVEVFVGVHWMWGVIVJVKVLVMVNVO $.
  $}

  ${
    $d p q A $.  $d p q F $.  $d p q .\/ $.  $d p q K $.  $d p q .<_ $.
    $d p q ./\ $.  $d p q P $.  $d q Q $.  $d p q W $.
    ltrnu.l $e |- .<_ = ( le ` K ) $.
    ltrnu.j $e |- .\/ = ( join ` K ) $.
    ltrnu.m $e |- ./\ = ( meet ` K ) $.
    ltrnu.a $e |- A = ( Atoms ` K ) $.
    ltrnu.h $e |- H = ( LHyp ` K ) $.
    ltrnu.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( Uniqueness property of a lattice translation value for atoms not under
       the fiducial co-atom ` W ` .  Similar to definition of translation in
       [Crawley] p. 111.  (Contributed by NM, 20-May-2012.) $)
    ltrnu $p |- ( ( ( ( K e. V /\ W e. H ) /\ F e. T )
          /\ ( P e. A /\ -. P .<_ W ) /\ ( Q e. A /\ -. Q .<_ W ) )
         -> ( ( P .\/ ( F ` P ) ) ./\ W )
              = ( ( Q .\/ ( F ` Q ) ) ./\ W ) ) $=
      ( wa co vp vq wcel wbr wn cfv wceq an4 cv wi wral simpr simplr cldil eqid
      wb isltrn ad2antrr syl6bi mpd breq1 notbid anbi1d id fveq2 oveq12d oveq1d
      eqeq1d imbi12d anbi2d eqeq2d rspc2v sylc impr sylan2b 3impb ) HKUCLFUCSZE
      DUCZSZBAUCZBLIUDZUEZSZCAUCZCLIUDZUEZSZBBEUFZGTZLJTZCCEUFZGTZLJTZUGZWCWGSV
      SVTWDSZWBWFSZSWNVTWBWDWFUHVSWOWPWNVSWOSZWOUAUIZLIUDZUEZUBUIZLIUDZUEZSZWRW
      REUFZGTZLJTZXAXAEUFZGTZLJTZUGZUJZUBAUKUAAUKZWPWNUJZVSWOULWQVRXMVQVRWOUMWQ
      VRELHUNUFUFZUCZXMSZXMVQVRXQUPVRWOAKXODEFGHIJLUBUAMNOPQXOUORUQURXPXMULUSUT
      XLXNWBXCSZWJXJUGZUJUAUBBCAAWRBUGZXDXRXKXSXTWTWBXCXTWSWAWRBLIVAVBVCXTXGWJX
      JXTXFWILJXTWRBXEWHGXTVDWRBEVEVFVGVHVIXACUGZXRWPXSWNYAXCWFWBYAXBWEXACLIVAV
      BVJYAXJWMWJYAXIWLLJYAXACXHWKGYAVDXACEVEVFVGVKVIVLVMVNVOVP $.
  $}

  ${
    $d p q F $.  $d p q K $.  $d p q W $.
    ltrnldil.h $e |- H = ( LHyp ` K ) $.
    ltrnldil.d $e |- D = ( ( LDil ` K ) ` W ) $.
    ltrnldil.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( A lattice translation is a lattice dilation.  (Contributed by NM,
       20-May-2012.) $)
    ltrnldil $p |- ( ( ( K e. V /\ W e. H ) /\ F e. T )
      -> F e. D ) $=
      ( vp vq wcel wa cv cfv wbr wn co eqid cple cjn cmee wceq catm wral isltrn
      wi simprbda ) EFMGDMNCBMCAMKOZGEUAPZQRLOZGUKQRNUJUJCPEUBPZSGEUCPZSULULCPU
      MSGUNSUDUHLEUEPZUFKUOUFUOFABCDUMEUKUNGLKUKTUMTUNTUOTHIJUGUI $.
  $}

  ${
    ltrnlaut.h $e |- H = ( LHyp ` K ) $.
    ltrnlaut.i $e |- I = ( LAut ` K ) $.
    ltrnlaut.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( A lattice translation is a lattice automorphism.  (Contributed by NM,
       20-May-2012.) $)
    ltrnlaut $p |- ( ( ( K e. V /\ W e. H ) /\ F e. T )
      -> F e. I ) $=
      ( wcel wa cldil cfv eqid ltrnldil ldillaut syldan ) EFKGCKLBAKBGEMNNZKBDK
      SABCEFGHSOZJPSBCDEFGHITQR $.
  $}

  ${
    ltrn1o.b $e |- B = ( Base ` K ) $.
    ltrn1o.h $e |- H = ( LHyp ` K ) $.
    ltrn1o.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( A lattice translation is a one-to-one onto function.  (Contributed by
       NM, 20-May-2012.) $)
    ltrn1o $p |- ( ( ( K e. V /\ W e. H ) /\ F e. T )
      -> F : B -1-1-onto-> B ) $=
      ( wcel wa claut cfv wf1o simpll eqid ltrnlaut laut1o syl2anc ) EFKZGDKZLC
      BKZLUACEMNZKAACOUAUBUCPBCDUDEFGIUDQZJRFACUDEHUEST $.

    $( Closure of a lattice translation.  (Contributed by NM, 20-May-2012.) $)
    ltrncl $p |- ( ( ( K e. V /\ W e. H ) /\ F e. T /\ X e. B )
      -> ( F ` X ) e. B ) $=
      ( wcel wa w3a claut cfv simp1l eqid ltrnlaut 3adant3 lautcl syl21anc
      simp3 ) EFLZGDLZMZCBLZHALZNUDCEOPZLZUHHCPALUDUEUGUHQUFUGUJUHBCDUIEFGJUIRZ
      KSTUFUGUHUCACUIEFHIUKUAUB $.

    $( One-to-one property of a lattice translation.  (Contributed by NM,
       20-May-2012.) $)
    ltrn11 $p |- ( ( ( K e. V /\ W e. H ) /\ F e. T
       /\ ( X e. B /\ Y e. B ) ) -> ( ( F ` X ) = ( F ` Y ) <-> X = Y ) ) $=
      ( wcel wa w3a claut cfv wceq wb simp1l eqid ltrnlaut simp3l simp3r laut11
      3adant3 syl22anc ) EFMZGDMZNZCBMZHAMZIAMZNZOUHCEPQZMZULUMHCQICQRHIRSUHUIU
      KUNTUJUKUPUNBCDUOEFGKUOUAZLUBUFUJUKULUMUCUJUKULUMUDACUOEFHIJUQUEUG $.

    $( If a translation is different from the identity, so is its converse.
       (Contributed by NM, 17-Jun-2013.) $)
    ltrncnvnid $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T
         /\ F =/= ( _I |` B ) ) -> `' F =/= ( _I |` B ) ) $=
      ( chlt wcel wa cid cres wne w3a ccnv simp3 wceq wrel ltrn1o f1orel dfrel2
      wf1o 3adant3 syl sylib cnveq sylan9req cnvresid syl6eq ex necon3d mpd ) E
      JKFDKLZCBKZCMANZOZPZURCQZUQOUOUPURRUSUTUQCUQUSUTUQSZCUQSUSVALCUQQZUQUSVAC
      UTQZVBUSCTZVCCSUSAACUDZVDUOUPVEURABCDEJFGHIUAUEAACUBUFCUCUGUTUQUHUIAUJUKU
      LUMUN $.

    $( Two translations are equal if the composition of one with the converse
       of the other is the zero translation.  This is an analogue of vector
       subtraction.  (Contributed by NM, 7-Apr-2014.)
       (New usage is discouraged.) $)
    ltrncoidN $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T /\ G e. T )
    -> ( ( F o. `' G ) = ( _I |` B ) <-> F = G ) ) $=
      ( chlt wcel wa ccom wceq wf1o simpl1 simpl3 syl2anc eqtrd w3a ccnv ltrn1o
      cid cres f1ococnv1 syl coeq2d simpl2 f1of fcoi1 3syl eqtr2d coass syl6eqr
      wf simpr coeq1d fcoi2 f1ococnv2 impbida ) FKLGELMZCBLZDBLZUAZCDUBZNZUDAUE
      ZOZCDOZVEVIMZCVGDNZDVKCCVFDNZNZVLVKVNCVHNZCVKVMVHCVKAADPZVMVHOVKVBVDVPVBV
      CVDVIQZVBVCVDVIRABDEFKGHIJUCZSZAADUFUGUHVKAACPZAACUPVOCOVKVBVCVTVQVBVCVDV
      IUIABCEFKGHIJUCSAACUJAACUKULUMCVFDUNUOVKVLVHDNZDVKVGVHDVEVIUQURVKVPAADUPW
      ADOVSAADUJAADUSULTTVEVJMZVGDVFNZVHWBCDVFVEVJUQURWBVPWCVHOWBVBVDVPVBVCVDVJ
      QVBVCVDVJRVRSAADUTUGTVA $.
  $}

  ${
    ltrnle.b $e |- B = ( Base ` K ) $.
    ltrnle.l $e |- .<_ = ( le ` K ) $.
    ltrnle.h $e |- H = ( LHyp ` K ) $.
    ltrnle.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( Less-than or equal property of a lattice translation.  (Contributed by
       NM, 20-May-2012.) $)
    ltrnle $p |- ( ( ( K e. V /\ W e. H ) /\ F e. T
      /\ ( X e. B /\ Y e. B ) ) -> ( X .<_ Y
         <-> ( F ` X ) .<_ ( F ` Y ) ) ) $=
      ( wcel wa w3a claut cfv wbr wb simp1l eqid ltrnlaut 3adant3 simp3l simp3r
      lautle syl22anc ) EGOZHDOZPZCBOZIAOZJAOZPZQUJCERSZOZUNUOIJFTICSJCSFTUAUJU
      KUMUPUBULUMURUPBCDUQEGHMUQUCZNUDUEULUMUNUOUFULUMUNUOUGACUQEFGIJKLUSUHUI
      $.

    $( Less-than or equal property of lattice translation converse.
       (Contributed by NM, 10-May-2013.)  (New usage is discouraged.) $)
    ltrncnvleN $p |- ( ( ( K e. V /\ W e. H ) /\ F e. T
   /\ ( X e. B /\ Y e. B ) )
 -> ( X .<_ Y <-> ( `' F ` X ) .<_ ( `' F ` Y ) ) ) $=
      ( wcel wa w3a claut cfv wbr ccnv wb eqid ltrnlaut 3adant3 simp3 lautcnvle
      simp1l syl21anc ) EGOZHDOZPZCBOZIAOJAOPZQUJCERSZOZUNIJFTICUAZSJUQSFTUBUJU
      KUMUNUHULUMUPUNBCDUOEGHMUOUCZNUDUEULUMUNUFACUOEFGIJKLURUGUI $.
  $}

  ${
    ltrnm.b $e |- B = ( Base ` K ) $.
    ltrnm.m $e |- ./\ = ( meet ` K ) $.
    ltrnm.h $e |- H = ( LHyp ` K ) $.
    ltrnm.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( Lattice translation of a meet.  (Contributed by NM, 20-May-2012.) $)
    ltrnm $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T /\ ( X e. B /\ Y e. B ) )
     -> ( F ` ( X ./\ Y ) ) = ( ( F ` X ) ./\ ( F ` Y ) ) ) $=
      ( chlt wcel wa w3a clat cfv co claut wceq hllat syl eqid ltrnlaut 3adant3
      simp1l simp3l simp3r lautm syl13anc ) ENOZGDOZPZCBOZHAOZIAOZPZQZEROZCEUAS
      ZOZUQURHIFTCSHCSICSFTUBUTUMVAUMUNUPUSUHEUCUDUOUPVCUSBCDVBENGLVBUEZMUFUGUO
      UPUQURUIUOUPUQURUJACVBEFHIJKVDUKUL $.
  $}

  ${
    ltrnj.b $e |- B = ( Base ` K ) $.
    ltrnj.j $e |- .\/ = ( join ` K ) $.
    ltrnj.h $e |- H = ( LHyp ` K ) $.
    ltrnj.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( Lattice translation of a meet.  TODO: change antecedent to ` K e. HL `
       (Contributed by NM, 25-May-2012.) $)
    ltrnj $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T /\ ( X e. B /\ Y e. B ) )
     -> ( F ` ( X .\/ Y ) ) = ( ( F ` X ) .\/ ( F ` Y ) ) ) $=
      ( chlt wcel wa w3a clat cfv co claut wceq hllat syl eqid ltrnlaut 3adant3
      simp1l simp3l simp3r lautj syl13anc ) FNOZGDOZPZCBOZHAOZIAOZPZQZFROZCFUAS
      ZOZUQURHIETCSHCSICSETUBUTUMVAUMUNUPUSUHFUCUDUOUPVCUSBCDVBFNGLVBUEZMUFUGUO
      UPUQURUIUOUPUQURUJACVBEFHIJKVDUKUL $.
  $}

  ${
    ltrncvr.b $e |- B = ( Base ` K ) $.
    ltrncvr.c $e |- C = ( <o ` K ) $.
    ltrncvr.h $e |- H = ( LHyp ` K ) $.
    ltrncvr.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( Covering property of a lattice translation.  (Contributed by NM,
       20-May-2012.) $)
    ltrncvr $p |- ( ( ( K e. V /\ W e. H ) /\ F e. T
       /\ ( X e. B /\ Y e. B ) ) -> ( X C Y <-> ( F ` X ) C ( F ` Y ) ) ) $=
      ( wcel wa w3a claut cfv wbr wb simp1l eqid ltrnlaut 3adant3 simp3l simp3r
      lautcvr syl13anc ) FGOZHEOZPZDCOZIAOZJAOZPZQUJDFRSZOZUNUOIJBTIDSJDSBTUAUJ
      UKUMUPUBULUMURUPCDEUQFGHMUQUCZNUDUEULUMUNUOUFULUMUNUOUGGABDUQFIJKLUSUHUI
      $.
  $}

  ${
    ltrnval1.b $e |- B = ( Base ` K ) $.
    ltrnval1.l $e |- .<_ = ( le ` K ) $.
    ltrnval1.h $e |- H = ( LHyp ` K ) $.
    ltrnval1.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( Value of a lattice translation under its co-atom.  (Contributed by NM,
       20-May-2012.) $)
    ltrnval1 $p |- ( ( ( K e. V /\ W e. H ) /\ F e. T
        /\ ( X e. B /\ X .<_ W ) ) -> ( F ` X ) = X ) $=
      ( wcel wa cldil cfv wbr wceq eqid ltrnldil 3adant3 ldilval syld3an2 ) EGN
      HDNOZCHEPQQZNZCBNZIANIHFROZICQISUEUHUGUIUFBCDEGHLUFTZMUAUBAUFCDEFGHIJKLUJ
      UCUD $.
  $}

  ${
    $d p x A $.  $d p x B $.  $d p x F $.  $d p x H $.  $d p x K $.
    $d x .<_ $.  $d p x T $.  $d p x W $.
    ltrneq.b $e |- B = ( Base ` K ) $.
    ltrneq.l $e |- .<_ = ( le ` K ) $.
    ltrneq.a $e |- A = ( Atoms ` K ) $.
    ltrneq.h $e |- H = ( LHyp ` K ) $.
    ltrneq.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( A lattice translation is the identity function iff all atoms not under
       the fiducial co-atom ` W ` are equal to their values.  (Contributed by
       NM, 24-May-2012.) $)
    ltrnid $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T )
      -> ( A. p e. A ( -. p .<_ W
           -> ( F ` p ) = p ) <-> F = ( _I |` B ) ) ) $=
      ( vx chlt wcel wa cfv wceq cv wbr wn wral cid cres claut simp-4l ltrnlaut
      wi eqid ad2antrr simpr simplll simpllr atbase ad2antlr ltrnval1 syl112anc
      ex pm2.61 syl ralimdva imp adantr lauteq syl31anc fvresi adantl ralrimiva
      eqtr4d wfn wb wf1o ltrn1o f1ofn fnresi eqfnfv sylancl mpbird fveq1 eqeq1d
      syl5ibrcom a1dd ralrimdva impbid ) FPQZHEQZRZDCQZRZIUAZHGUBZUCZWLDSZWLTZU
      JZIAUDZDUEBUFZTZWKWRWTWKWRRZWTOUAZDSZXBWSSZTZOBUDZXAXEOBXAXBBQZRZXCXBXDXH
      WGDFUGSZQZXGWPIAUDZXCXBTWGWHWJWRXGUHWKXJWRXGCDEXIFPHMXIUKZNUIULXAXGUMXAXK
      XGWKWRXKWKWQWPIAWKWLAQZRZWMWPUJWQWPUJXNWMWPXNWMRWIWJWLBQZWMWPWIWJXMWMUNWI
      WJXMWMUOXMXOWKWMABWLFJLUPZUQXNWMUMBCDEFGPHWLJKMNURUSUTWMWPVAVBVCVDVEABDXI
      FXBIJLXLVFVGXGXDXBTXABXBVHVIVKVJXADBVLZWSBVLWTXFVMXABBDVNZXQWKXRWRBCDEFPH
      JMNVOVEBBDVPVBBVQOBDWSVRVSVTUTWKWTWQIAXNWTWPWNXNWPWTWLWSSZWLTZXNXOXTXMXOW
      KXPVIBWLVHVBWTWOXSWLWLDWSWAWBWCWDWEWF $.

    $( If a lattice translation is not the identity, then there is an atom not
       under the fiducial co-atom ` W ` and not equal to its translation.
       (Contributed by NM, 24-May-2012.) $)
    ltrnnid $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T /\ F =/= ( _I |` B ) )
  -> E. p e. A ( -. p .<_ W /\ ( F ` p ) =/= p ) ) $=
      ( wcel wa wne wn wceq wi chlt cid cres cv wbr cfv wrex wral biimpi imim2i
      ralinexa nne ralimi sylbir ltrnid syl5ib necon1ad 3impia ) FUAOHEOPZDCOZD
      UBBUCZQIUDZHGUERZVBDUFZVBQZPIAUGZUSUTPZVFDVAVFRZVCVDVBSZTZIAUHZVGDVASVHVC
      VERZTZIAUHVKVCVEIAUKVMVJIAVLVIVCVLVIVDVBULUIUJUMUNABCDEFGHIJKLMNUOUPUQUR
      $.
  $}

  ${
    ltrnatb.b $e |- B = ( Base ` K ) $.
    ltrnatb.a $e |- A = ( Atoms ` K ) $.
    ltrnatb.h $e |- H = ( LHyp ` K ) $.
    ltrnatb.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( The lattice translation of an atom is an atom.  (Contributed by NM,
       20-May-2012.) $)
    ltrnatb $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T /\ P e. B )
        -> ( P e. A <-> ( F ` P ) e. A ) ) $=
      ( chlt wcel wa cfv wbr wb eqid syl w3a ccvr simp3 ltrncl 2thd simp1 simp2
      cp0 cops simp1l hlop op0cl 3syl ltrncvr syl112anc cple wceq lhpbase op0le
      simp1r syl2anc ltrnval1 breq1d bitrd anbi12d isat 3bitr4d ) GMNZHFNZOZEDN
      ZCBNZUAZVLGUHPZCGUBPZQZOZCEPZBNZVNVRVOQZOZCANZVRANZVMVLVSVPVTVMVLVSVJVKVL
      UCZBDEFGMHCIKLUDUEVMVPVNEPZVRVOQZVTVMVJVKVNBNZVLVPWFRVJVKVLUFZVJVKVLUGZVM
      VHGUINZWGVHVIVKVLUJZGUKZBGVNIVNSZULUMZWDBVODEFGMHVNCIVOSZKLUNUOVMWEVNVRVO
      VMVJVKWGVNHGUPPZQZWEVNUQWHWIWNVMWJHBNZWQVMVHWJWKWLTVMVIWRVHVIVKVLUTBFGHIK
      URTBGWPHVNIWPSZWMUSVABDEFGWPMHVNIWSKLVBUOVCVDVEVMVHWBVQRWKABVOMCGVNIWMWOJ
      VFTVMVHWCWARWKABVOMVRGVNIWMWOJVFTVG $.

    $( The converse of the lattice translation of an atom is an atom.
       (Contributed by NM, 2-Jun-2012.) $)
    ltrncnvatb $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T /\ P e. B )
         -> ( P e. A <-> ( `' F ` P ) e. A ) ) $=
      ( chlt wcel wa w3a ccnv cfv wb stoic3 wf1o f1ocnvdm ltrnatb syld3an3 wceq
      ltrn1o f1ocnvfv2 eleq1d bitr2d ) GMNHFNOZEDNZCBNZPZCEQRZANZUNERZANZCANUJU
      KULUNBNZUOUQSUJUKBBEUAZULURBDEFGMHIKLUFZBBCEUBTABUNDEFGHIJKLUCUDUMUPCAUJU
      KUSULUPCUEUTBBCEUGTUHUI $.
  $}

  ${
    ltrnel.l $e |- .<_ = ( le ` K ) $.
    ltrnel.a $e |- A = ( Atoms ` K ) $.
    ltrnel.h $e |- H = ( LHyp ` K ) $.
    ltrnel.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( The lattice translation of an atom not under the fiducial co-atom is
       also an atom not under the fiducial co-atom.  Remark below Lemma B in
       [Crawley] p. 112.  (Contributed by NM, 22-May-2012.) $)
    ltrnel $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T
              /\ ( P e. A /\ -. P .<_ W ) )
         -> ( ( F ` P ) e. A /\ -. ( F ` P ) .<_ W ) ) $=
      ( chlt wcel wa wbr wn cfv wb syl w3a simp3l atbase adantr ltrnatb syl3an3
      eqid mpbid simp3r simp1 simp2 simp1r lhpbase ltrnle syl112anc wceq simp1l
      cbs clat hllat latref syl2anc ltrnval1 breq2d bitrd mtbid jca ) FMNZHENZO
      ZDCNZBANZBHGPZQZOZUAZBDRZANZVQHGPZQVPVLVRVJVKVLVNUBZVOVJVKBFURRZNZVLVRSVL
      WBVNAWABFWAUGZJUCZUDAWABCDEFHWCJKLUEUFUHVPVMVSVJVKVLVNUIVPVMVQHDRZGPZVSVP
      VJVKWBHWANZVMWFSVJVKVOUJZVJVKVOUKZVPVLWBVTWDTVPVIWGVHVIVKVOULWAEFHWCKUMTZ
      WACDEFGMHBHWCIKLUNUOVPWEHVQGVPVJVKWGHHGPZWEHUPWHWIWJVPFUSNZWGWKVPVHWLVHVI
      VKVOUQFUTTWJWAFGHWCIVAVBWACDEFGMHHWCIKLVCUOVDVEVFVG $.

    $( The lattice translation of an atom is also an atom.  TODO:  See if this
       can shorten some ~ ltrnel uses.  (Contributed by NM, 25-May-2012.) $)
    ltrnat $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T /\ P e. A )
         -> ( F ` P ) e. A ) $=
      ( chlt wcel wa w3a cfv simp3 cbs wb eqid atbase ltrnatb syl3an3 mpbid ) F
      MNHENOZDCNZBANZPUHBDQANZUFUGUHRUHUFUGBFSQZNUHUITAUJBFUJUAZJUBAUJBCDEFHUKJ
      KLUCUDUE $.

    $( The converse of the lattice translation of an atom is an atom.
       (Contributed by NM, 9-May-2013.) $)
    ltrncnvat $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T /\ P e. A )
            -> ( `' F ` P ) e. A ) $=
      ( chlt wcel wa w3a ccnv cfv simp3 cbs wb atbase ltrncnvatb syl3an3 mpbid
      eqid ) FMNHENOZDCNZBANZPUIBDQRANZUGUHUISUIUGUHBFTRZNUIUJUAAUKBFUKUFZJUBAU
      KBCDEFHULJKLUCUDUE $.

    $( The converse of the lattice translation of an atom not under the
       fiducial co-atom.  (Contributed by NM, 10-May-2013.) $)
    ltrncnvel $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T
              /\ ( P e. A /\ -. P .<_ W ) )
         -> ( ( `' F ` P ) e. A /\ -. ( `' F ` P ) .<_ W ) ) $=
      ( chlt wcel wa wbr wn cfv atbase syl w3a ltrncnvat 3adant3r simp3r cbs wb
      ccnv simp1 simp2 eqid simp1r lhpbase ltrnle syl112anc wf1o ltrn1o 3adant3
      wceq simp3l f1ocnvfv2 syl2anc simp1l hllat latref ltrnval1 breq12d mtbird
      clat bitrd jca ) FMNZHENZOZDCNZBANZBHGPZQZOZUAZBDUGRZANZVTHGPZQVMVNVOWAVQ
      ABCDEFGHIJKLUBUCZVSWBVPVMVNVOVQUDVSWBVTDRZHDRZGPZVPVSVMVNVTFUERZNZHWGNZWB
      WFUFVMVNVRUHZVMVNVRUIZVSWAWHWCAWGVTFWGUJZJSTVSVLWIVKVLVNVRUKWGEFHWLKULTZW
      GCDEFGMHVTHWLIKLUMUNVSWDBWEHGVSWGWGDUOZBWGNZWDBURVMVNWNVRWGCDEFMHWLKLUPUQ
      VSVOWOVMVNVOVQUSAWGBFWLJSTWGWGBDUTVAVSVMVNWIHHGPZWEHURWJWKWMVSFVHNZWIWPVS
      VKWQVKVLVNVRVBFVCTWMWGFGHWLIVDVAWGCDEFGMHHWLIKLVEUNVFVIVGVJ $.

    $( Composition of lattice translations of an atom.  TODO:  See if this can
       shorten some ~ ltrnel uses.  (Contributed by NM, 1-May-2013.)
       (New usage is discouraged.) $)
    ltrncoelN $p |- ( ( ( K e. HL /\ W e. H ) /\ ( F e. T /\ G e. T )
           /\ ( P e. A /\ -. P .<_ W ) )
         -> ( ( F ` ( G ` P ) ) e. A /\ -. ( F ` ( G ` P ) ) .<_ W ) ) $=
      ( chlt wcel wa wbr wn cfv ltrnel w3a simp1 simp2l 3adant2l syl3anc ) GNOI
      FOPZDCOZECOZPZBAOBIHQRPZUAUFUGBESZAOUKIHQRPZUKDSZAOUMIHQRPUFUIUJUBUFUGUHU
      JUCUFUHUJULUGABCEFGHIJKLMTUDAUKCDFGHIJKLMTUE $.

    $( Composition of lattice translations of an atom.  TODO:  See if this can
       shorten some ~ ltrnel , ~ ltrnat uses.  (Contributed by NM,
       1-May-2013.) $)
    ltrncoat $p |- ( ( ( K e. HL /\ W e. H ) /\ ( F e. T /\ G e. T )
           /\ P e. A ) -> ( F ` ( G ` P ) ) e. A ) $=
      ( chlt wcel wa w3a cfv simp1 ltrnat simp2l 3adant2l syl3anc ) GNOIFOPZDCO
      ZECOZPZBAOZQUDUEBERZAOZUIDRAOUDUGUHSUDUEUFUHUAUDUFUHUJUEABCEFGHIJKLMTUBAU
      ICDFGHIJKLMTUC $.

    $( Two ways to express value of translation composition.  (Contributed by
       NM, 31-May-2013.) $)
    ltrncoval $p |- ( ( ( K e. HL /\ W e. H )
              /\ ( F e. T /\ G e. T ) /\ P e. A )
    -> ( ( F o. G ) ` P ) = ( F ` ( G ` P ) ) ) $=
      ( chlt wcel wa w3a cbs cfv syl2anc ccom wceq wf1o simp2r eqid ltrn1o f1of
      wf simp1 syl atbase 3ad2ant3 fvco3 ) GNOIFOPZDCOZECOZPZBAOZQZGRSZUTEUHZBU
      TOZBDEUASBESDSUBUSUTUTEUCZVAUSUNUPVCUNUQURUIUNUOUPURUDUTCEFGNIUTUEZLMUFTU
      TUTEUGUJURUNVBUQAUTBGVDKUKULUTUTBDEUMT $.
  $}

  ${
    $d p q F $.  $d p q H $.  $d p q K $.  $d p q T $.  $d p q W $.
    ltrncnv.h $e |- H = ( LHyp ` K ) $.
    ltrncnv.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( The converse of a lattice translation is a lattice translation.
       (Contributed by NM, 10-May-2013.) $)
    ltrncnv $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T )
        -> `' F e. T ) $=
      ( vp vq chlt wcel wa cfv cv wbr wn co wceq eqid syl3anc ccnv cldil cjn wi
      cple cmee catm wral ltrnldil syldan w3a simp1 simp1l simp1r simp2l simp3l
      ldilcnv ltrncnvel syl112anc simp2r simp3r cbs wf1o ltrn1o 3ad2ant1 atbase
      ltrnu syl f1ocnvfv2 syl2anc oveq2d simp1ll ltrncnvat eqtrd oveq1d 3eqtr3d
      hlatjcom 3exp ralrimivv wb isltrn adantr mpbir2and ) DJKZECKZLZBAKZLZBUAZ
      AKZWIEDUBMMZKZHNZEDUEMZOPZINZEWNOPZLZWMWMWIMZDUCMZQZEDUFMZQZWPWPWIMZWTQZE
      XBQZRZUDZIDUGMZUHHXIUHZWFWGBWKKWLWKABCDJEFWKSZGUIWKBCDEFXKUQUJWHXHHIXIXIW
      HWMXIKZWPXIKZLZWRXGWHXNWRUKZWSWSBMZWTQZEXBQZXDXDBMZWTQZEXBQZXCXFXOWHWSXIK
      ZWSEWNOPLZXDXIKZXDEWNOPLZXRYARWHXNWRULXOWFWGXLWOYCWFWGXNWRUMZWFWGXNWRUNZW
      HXLXMWRUOZWHXNWOWQUPXIWMABCDWNEWNSZXISZFGURUSXOWFWGXMWQYEYFYGWHXLXMWRUTZW
      HXNWOWQVAXIWPABCDWNEYIYJFGURUSXIWSXDABCWTDWNXBJEYIWTSZXBSZYJFGVGTXOXQXAEX
      BXOXQWSWMWTQZXAXOXPWMWSWTXODVBMZYOBVCZWMYOKZXPWMRWHXNYPWRYOABCDJEYOSZFGVD
      VEZXOXLYQYHXIYOWMDYRYJVFVHYOYOWMBVIVJVKXOWDYBXLYNXARWDWEWGXNWRVLZXOWFWGXL
      YBYFYGYHXIWMABCDWNEYIYJFGVMTYHXIWTDWSWMYLYJVQTVNVOXOXTXEEXBXOXTXDWPWTQZXE
      XOXSWPXDWTXOYPWPYOKZXSWPRYSXOXMUUBYKXIYOWPDYRYJVFVHYOYOWPBVIVJVKXOWDYDXMU
      UAXERYTXOWFWGXMYDYFYGYKXIWPABCDWNEYIYJFGVMTYKXIWTDXDWPYLYJVQTVNVOVPVRVSWF
      WJWLXJLVTWGXIJWKAWICWTDWNXBEIHYIYLYMYJFXKGWAWBWC $.
  $}

  ${
    $d p q x A $.  $d p q x F $.  $d p q x G $.  $d q x H $.  $d q x K $.
    $d q x T $.  $d q x W $.
    ltrneq2.a $e |- A = ( Atoms ` K ) $.
    ltrneq2.h $e |- H = ( LHyp ` K ) $.
    ltrneq2.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( Frequently used one-to-one property of lattice translation atoms.
       (Contributed by NM, 5-May-2013.) $)
    ltrn11at $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T
       /\ ( P e. A /\ Q e. A /\ P =/= Q ) ) -> ( F ` P ) =/= ( F ` Q ) ) $=
      ( chlt wcel wa wne w3a cfv wceq atbase syl simp33 cbs wb simp1 simp2 eqid
      simp31 simp32 ltrn11 syl112anc necon3bid mpbird ) GLMHFMNZEDMZBAMZCAMZBCO
      ZPZPZBEQZCEQZOUQUMUNUOUPUQUAUSUTVABCUSUMUNBGUBQZMZCVBMZUTVARBCRUCUMUNURUD
      UMUNURUEUSUOVCUMUNUOUPUQUGAVBBGVBUFZISTUSUPVDUMUNUOUPUQUHAVBCGVEISTVBDEFG
      LHBCVEJKUIUJUKUL $.

    $( The equality of two translations is determined by their equality at
       atoms.  (Contributed by NM, 2-Mar-2014.) $)
    ltrneq2 $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T /\ G e. T )
         -> ( A. p e. A ( F ` p ) = ( G ` p ) <-> F = G ) ) $=
      ( vx chlt wcel cfv wceq wbr wb syl2anc syl3anc vq wa w3a cv wral cbs cple
      wi ccnv wf1o simpl1 simpl3 eqid ltrn1o simpl2 simpr3 ltrncnvat atbase syl
      f1ocnvfv1 simpr2 fveq2 eqeq12d sylc f1ocnvfv2 eqtr3d fveq2d breq1d simpr1
      rspcv breq2d 3bitr4d claut simpl1l ltrnlaut ltrncl lautcnvle syl22anc imp
      3exp2 ralrimdv simpr hlateq sylibd ralrimdva 3adant3 f1ofn 3adant2 eqfnfv
      wfn sylibrd fveq1 ralrimivw impbid1 ) FMNZGENZUBZCBNZDBNZUCZHUDZCOZXADOZP
      ZHAUEZCDPZWTXELUDZCOZXGDOZPZLFUFOZUEZXFWTXEXJLXKWTXGXKNZUBZXEUAUDZXHFUGOZ
      QZXOXIXPQZRZUAAUEZXJXNXEXSUAAWTXMXEXOANZXSUHUHWTXMXEYAXSWTXMXEYAUCZUBZXOC
      UIZOZXHYDOZXPQZXODUIZOZXIYHOZXPQZXQXRYCYEXGXPQYIXGXPQYGYKYCYEYIXGXPYCYEDO
      ZYHOZYEYIYCXKXKDUJZYEXKNZYMYEPYCWQWSYNWQWRWSYBUKZWQWRWSYBULZXKBDEFMGXKUMZ
      JKUNZSZYCYEANZYOYCWQWRYAUUAYPWQWRWSYBUOZWTXMXEYAUPZAXOBCEFXPGXPUMZIJKUQTZ
      AXKYEFYRIURUSXKXKYEDUTSYCYLXOYHYCYECOZYLXOYCUUAXEUUFYLPZUUEWTXMXEYAVAXDUU
      GHYEAXAYEPXBUUFXCYLXAYECVBXAYEDVBVCVJVDYCXKXKCUJZXOXKNZUUFXOPYCWQWRUUHYPU
      UBXKBCEFMGYRJKUNZSZYCYAUUIUUCAXKXOFYRIURUSZXKXKXOCVESVFVGVFVHYCYFXGYEXPYC
      UUHXMYFXGPUUKWTXMXEYAVIZXKXKXGCUTSVKYCYJXGYIXPYCYNXMYJXGPYTUUMXKXKXGDUTSV
      KVLYCWOCFVMOZNZUUIXHXKNZXQYGRWOWPWRWSYBVNZYCWQWRUUOYPUUBBCEUUNFMGJUUNUMZK
      VOSUULYCWQWRXMUUPYPUUBUUMXKBCEFMGXGYRJKVPZTXKCUUNFXPMXOXHYRUUDUURVQVRYCWO
      DUUNNZUUIXIXKNZXRYKRUUQYCWQWSUUTYPYQBDEUUNFMGJUURKVOSUULYCWQWSXMUVAYPYQUU
      MXKBDEFMGXGYRJKVPZTXKDUUNFXPMXOXIYRUUDUURVQVRVLVTVSWAXNWOUUPUVAXTXJRWOWPW
      RWSXMVNXNWQWRXMUUPWQWRWSXMUKZWQWRWSXMUOWTXMWBZUUSTXNWQWSXMUVAUVCWQWRWSXMU
      LUVDUVBTAXKFXPXHXIUAYRUUDIWCTWDWEWTCXKWJZDXKWJZXFXLRWTUUHUVEWQWRUUHWSUUJW
      FXKXKCWGUSWTYNUVFWQWSYNWRYSWHXKXKDWGUSLXKCDWISWKXFXDHAXACDWLWMWN $.
  $}

  ${
    $d p A $.  $d p F $.  $d p G $.  $d p H $.  $d p K $.  $d p T $.  $d p W $.
    ltrne.l $e |- .<_ = ( le ` K ) $.
    ltrne.a $e |- A = ( Atoms ` K ) $.
    ltrne.h $e |- H = ( LHyp ` K ) $.
    ltrne.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( The equality of two translations is determined by their equality at
       atoms not under co-atom ` W ` .  (Contributed by NM, 20-Jun-2013.) $)
    ltrneq $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T /\ G e. T )
       -> ( A. p e. A ( -. p .<_ W -> ( F ` p ) = ( G ` p ) ) <-> F = G ) ) $=
      ( chlt wcel wa w3a cfv wceq wi cv wbr wn wral simp11 simp12 eqid 3ad2ant2
      cbs atbase ltrnval1 syl112anc simp13 eqtr4d 3expia pm2.61 re1tbw2 impbid1
      simp3 syl ralbidva ltrneq2 bitrd ) FNOHEOPZCBOZDBOZQZIUAZHGUBZUCZVHCRZVHD
      RZSZTZIAUDVMIAUDCDSVGVNVMIAVGVHAOZPZVNVMVPVIVMTVNVMTVGVOVIVMVGVOVIQZVKVHV
      LVQVDVEVHFUIRZOZVIVKVHSVDVEVFVOVIUEZVDVEVFVOVIUFVOVGVSVIAVRVHFVRUGZKUJUHZ
      VGVOVIUSZVRBCEFGNHVHWAJLMUKULVQVDVFVSVIVLVHSVTVDVEVFVOVIUMWBWCVRBDEFGNHVH
      WAJLMUKULUNUOVIVMUPUTVMVJUQURVAABCDEFHIKLMVBVC $.
  $}

  ${
    $d p q B $.  $d p q H $.  $d p q K $.  $d p q W $.
    idltrn.b $e |- B = ( Base ` K ) $.
    idltrn.h $e |- H = ( LHyp ` K ) $.
    idltrn.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( The identity function is a lattice translation.  Remark below Lemma B in
       [Crawley] p. 112.  (Contributed by NM, 18-May-2012.) $)
    idltrn $p |- ( ( K e. HL /\ W e. H ) -> ( _I |` B ) e. T ) $=
      ( vp vq chlt wcel wa cfv cv wbr co wceq eqid eqtrd cid cres cldil cple wn
      cjn cmee wi catm wral idldil simpll simplrr simprr lhpmat syl12anc atbase
      cp0 fvresi oveq2d simplll hlatjidm syl2anc oveq1d simplrl simprl 3eqtr4rd
      3syl ex ralrimivva isltrn mpbir2and ) DKLZECLZMZUAAUBZBLVPEDUCNNZLIOZEDUD
      NZPUEZJOZEVSPUEZMZVRVRVPNZDUFNZQZEDUGNZQZWAWAVPNZWEQZEWGQZRZUHZJDUINZUJIW
      NUJKAVQCDEFGVQSZUKVOWMIJWNWNVOVRWNLZWAWNLZMZMZWCWLWSWCMZWAEWGQZDURNZWKWHW
      TVOWQWBXAXBRVOWRWCULZVOWPWQWCUMZWSVTWBUNWNWACDVSWGEXBVSSZWGSZXBSZWNSZGUOU
      PWTWJWAEWGWTWJWAWAWEQZWAWTWIWAWAWEWTWQWAALWIWARXDWNAWADFXHUQAWAUSVHUTWTVM
      WQXIWARVMVNWRWCVAZXDWNWEDWAWESZXHVBVCTVDWTWHVREWGQZXBWTWFVREWGWTWFVRVRWEQ
      ZVRWTWDVRVRWEWTWPVRALWDVRRVOWPWQWCVEZWNAVRDFXHUQAVRUSVHUTWTVMWPXMVRRXJXNW
      NWEDVRXKXHVBVCTVDWTVOWPVTXLXBRXCXNWSVTWBVFWNVRCDVSWGEXBXEXFXGXHGUOUPTVGVI
      VJWNKVQBVPCWEDVSWGEJIXEXKXFXHGWOHVKVL $.
  $}

  ${
    ltrnmw.l $e |- .<_ = ( le ` K ) $.
    ltrnmw.m $e |- ./\ = ( meet ` K ) $.
    ltrnmw.z $e |- .0. = ( 0. ` K ) $.
    ltrnmw.a $e |- A = ( Atoms ` K ) $.
    ltrnmw.h $e |- H = ( LHyp ` K ) $.
    ltrnmw.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( Property of lattice translation value.  Remark below Lemma B in
       [Crawley] p. 112.  TODO:  Can this be used in more places?  (Contributed
       by NM, 20-May-2012.)  (Proof shortened by OpenAI, 25-Mar-2020.) $)
    ltrnmw $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T
         /\ ( P e. A /\ -. P .<_ W ) ) -> ( ( F ` P ) ./\ W ) = .0. ) $=
      ( wcel wa wbr wn chlt w3a cfv co wceq simp1 ltrnel lhpmat syl2anc ) FUAQI
      EQRZDCQZBAQBIGSTRZUBUJBDUCZAQUMIGSTRUMIHUDJUEUJUKULUFABCDEFGIKNOPUGAUMEFG
      HIJKLMNOUHUI $.
  $}

  ${
    ltrnmwOLD.l $e |- .<_ = ( le ` K ) $.
    ltrnmwOLD.m $e |- ./\ = ( meet ` K ) $.
    ltrnmwOLD.z $e |- .0. = ( 0. ` K ) $.
    ltrnmwOLD.a $e |- A = ( Atoms ` K ) $.
    ltrnmwOLD.h $e |- H = ( LHyp ` K ) $.
    ltrnmwOLD.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    $( Property of lattice translation value.  Remark below Lemma B in
       [Crawley] p. 112.  TODO:  Can this be used in more places?  (Contributed
       by NM, 20-May-2012.)  Obsolete version of ~ ltrnmw as of 25-Mar-2020.
       (New usage is discouraged.)  (Proof modification is discouraged.) $)
    ltrnmwOLD $p |- ( ( ( K e. HL /\ W e. H ) /\ F e. T
         /\ ( P e. A /\ -. P .<_ W ) ) -> ( ( F ` P ) ./\ W ) = .0. ) $=
      ( wcel cfv wceq syl chlt wa wbr wn w3a cbs simp1 simp2 simp3l eqid atbase
      co simp1r lhpbase ltrnm syl112anc simp3r cal wb hlatl atnle syl3anc mpbid
      simp1l fveq2d eqtr3d clat hllat latref syl2anc ltrnval1 oveq2d cops op0cl
      hlop op0le 3eqtr3d ) FUAQZIEQZUBZDCQZBAQZBIGUCUDZUBZUEZBDRZIDRZHULZJDRZWF
      IHULJWEBIHULZDRZWHWIWEVTWABFUFRZQZIWLQZWKWHSVTWAWDUGZVTWAWDUHZWEWBWMVTWAW
      BWCUIZAWLBFWLUJZNUKTWEVSWNVRVSWAWDUMWLEFIWROUNTZWLCDEFHIBIWRLOPUOUPWEWJJD
      WEWCWJJSZVTWAWBWCUQWEFURQZWBWNWCWTUSWEVRXAVRVSWAWDVDZFUTTWQWSAWLBFGHIJWRK
      LMNVAVBVCVEVFWEWGIWFHWEVTWAWNIIGUCZWGISWOWPWSWEFVGQZWNXCWEVRXDXBFVHTWSWLF
      GIWRKVIVJWLCDEFGUAIIWRKOPVKUPVLWEVTWAJWLQZJIGUCZWIJSWOWPWEFVMQZXEWEVRXGXB
      FVOTZWLFJWRMVNTWEXGWNXFXHWSWLFGIJWRKMVPVJWLCDEFGUAIJWRKOPVKUPVQ $.
  $}

  ${
    $d k d A $.  $d d f k x K $.  $d f k M $.  $d k x S $.  $d k W $.
    dilset.a $e |- A = ( Atoms ` K ) $.
    dilset.s $e |- S = ( PSubSp ` K ) $.
    dilset.w $e |- W = ( WAtoms ` K ) $.
    dilset.m $e |- M = ( PAut ` K ) $.
    dilset.l $e |- L = ( Dil ` K ) $.
    $( The mapping from fiducial atom to set of dilations.  (Contributed by NM,
       30-Jan-2012.)  (New usage is discouraged.) $)
    dilfsetN $p |- ( K e. B -> L = ( d e. A |-> { f e. M | A. x e. S
               ( x C_ ( W ` d ) -> ( f ` x ) = x ) } ) ) $=
      ( cv cfv catm fveq2 syl6eqr vk wcel cvv wceq wi wral crab cmpt elex cdilN
      cwpointsN cpsubsp cpautN fveq1d sseq2d imbi1d raleqbidv rabeqbidv df-dilN
      wss mpteq12dv fvex eqeltri mptex fvmpt syl5eq syl ) FCUBFUCUBZGJBAPZJPZIQ
      ZUTZVIEPQVIUDZUEZADUFZEHUGZUHZUDFCUIVHGFUJQVQOUAFJUAPZRQZVIVJVRUKQZQZUTZV
      MUEZAVRULQZUFZEVRUMQZUGZUHVQUCUJVRFUDZJVSWGBVPWHVSFRQZBVRFRSKTWHWEVOEWFHW
      HWFFUMQHVRFUMSNTWHWCVNAWDDWHWDFULQDVRFULSLTWHWBVLVMWHWAVKVIWHVJVTIWHVTFUK
      QIVRFUKSMTUNUOUPUQURVAAEUAJUSJBVPBWIUCKFRVBVCVDVEVFVG $.

    $d d f x D $.  $d d M $.  $d d S $.  $d d W $.
    $( The set of dilations for a fiducial atom ` D ` .  (Contributed by NM,
       4-Feb-2012.)  (New usage is discouraged.) $)
    dilsetN $p |- ( ( K e. B /\ D e. A ) -> ( L ` D ) = { f e. M | A. x e. S
               ( x C_ ( W ` D ) -> ( f ` x ) = x ) } ) $=
      ( vd wcel cfv cv wss wceq wi wral crab cmpt dilfsetN fveq1d sseq2d imbi1d
      fveq2 ralbidv rabbidv eqid cpautN cvv fvex eqeltri rabex fvmpt sylan9eq )
      GCQZDBQDHRDPBASZPSZJRZTZVBFSRVBUAZUBZAEUCZFIUDZUEZRVBDJRZTZVFUBZAEUCZFIUD
      ZVADHVJABCEFGHIJPKLMNOUFUGPDVIVOBVJVCDUAZVHVNFIVPVGVMAEVPVEVLVFVPVDVKVBVC
      DJUJUHUIUKULVJUMVNFIIGUNRUONGUNUPUQURUSUT $.

    $d f x F $.  $d f S $.  $d f W $.
    $( The predicate "is a dilation".  (Contributed by NM, 4-Feb-2012.)
       (New usage is discouraged.) $)
    isdilN $p |- ( ( K e. B /\ D e. A ) -> ( F e. ( L ` D )
      <-> ( F e. M /\ A. x e. S ( x C_ ( W ` D ) -> ( F ` x ) = x ) ) ) ) $=
      ( vf wcel wa cfv wceq cv wss wral crab dilsetN eleq2d fveq1 eqeq1d imbi2d
      wi ralbidv elrab syl6bb ) GCQDBQRZFDHSZQFAUAZDJSUBZUPPUAZSZUPTZUJZAEUCZPI
      UDZQFIQUQUPFSZUPTZUJZAEUCZRUNUOVCFABCDEPGHIJKLMNOUEUFVBVGPFIURFTZVAVFAEVH
      UTVEUQVHUSVDUPUPURFUGUHUIUKULUM $.
  $}

  ${
    trnset.a $e |- A = ( Atoms ` K ) $.
    trnset.s $e |- S = ( PSubSp ` K ) $.
    trnset.p $e |- .+ = ( +P ` K ) $.
    trnset.o $e |- ._|_ = ( _|_P ` K ) $.
    trnset.w $e |- W = ( WAtoms ` K ) $.
    trnset.m $e |- M = ( PAut ` K ) $.
    trnset.l $e |- L = ( Dil ` K ) $.
    trnset.t $e |- T = ( Trn ` K ) $.
    $d d k A $.  $d d f k q r K $.  $d f k L $.  $d k ._|_ $.  $d k .+ $.
    $d k q r W $.
    $( The mapping from fiducial atom to set of translations.  (Contributed by
       NM, 4-Feb-2012.)  (New usage is discouraged.) $)
    trnfsetN $p |- ( K e. C -> T = ( d e. A
   |-> { f e. ( L ` d ) | A. q e. ( W ` d ) A. r e. ( W ` d )
           ( ( q .+ ( f ` q ) ) i^i ( ._|_ ` { d } ) )
         = ( ( r .+ ( f ` r ) ) i^i ( ._|_ ` { d } ) ) } ) ) $=
      ( vk wcel cvv cv cfv co csn cin wceq wral crab cmpt elex ctrnN catm cpadd
      cpolN cwpointsN cdilN fveq2 syl6eqr ineq12d raleqbidv rabeqbidv mpteq12dv
      fveq1d oveqd eqeq12d df-trnN fvex eqeltri mptex fvmpt syl5eq syl ) GBUDGU
      EUDZENAMUFZVSFUFZUGZCUHZNUFZUIZJUGZUJZLUFZWGVTUGZCUHZWEUJZUKZLWCKUGZULZMW
      LULZFWCHUGZUMZUNZUKGBUOVREGUPUGWQUBUCGNUCUFZUQUGZVSWAWRURUGZUHZWDWRUSUGZU
      GZUJZWGWHWTUHZXCUJZUKZLWCWRUTUGZUGZULZMXIULZFWCWRVAUGZUGZUMZUNWQUEUPWRGUK
      ZNWSXNAWPXOWSGUQUGZAWRGUQVBOVCXOXKWNFXMWOXOWCXLHXOXLGVAUGHWRGVAVBUAVCVHXO
      XJWMMXIWLXOWCXHKXOXHGUTUGKWRGUTVBSVCVHZXOXGWKLXIWLXQXOXDWFXFWJXOXAWBXCWEX
      OWTCVSWAXOWTGURUGCWRGURVBQVCZVIXOWDXBJXOXBGUSUGJWRGUSVBRVCVHZVDXOXEWIXCWE
      XOWTCWGWHXRVIXSVDVJVEVEVFVGFUCLMNVKNAWPAXPUEOGUQVLVMVNVOVPVQ $.

    $d d f q r D $.  $d d L $.  $d d ._|_ $.  $d d .+ $.  $d d W $.
    $( The set of translations for a fiducial atom ` D ` .  (Contributed by NM,
       4-Feb-2012.)  (New usage is discouraged.) $)
    trnsetN $p |- ( ( K e. B /\ D e. A ) -> ( T ` D ) =
      { f e. ( L ` D ) | A. q e. ( W ` D ) A. r e. ( W ` D )
           ( ( q .+ ( f ` q ) ) i^i ( ._|_ ` { D } ) )
         = ( ( r .+ ( f ` r ) ) i^i ( ._|_ ` { D } ) ) } ) $=
      ( vd wcel cfv cv csn cin wceq wral crab cmpt trnfsetN fveq1d fveq2 fveq2d
      co sneq ineq2d eqeq12d raleqbidv rabeqbidv eqid fvex rabex fvmpt sylan9eq
      ) HBUDZCAUDCFUECUCANUFZVIGUFZUEDUQZUCUFZUGZKUEZUHZMUFZVPVJUEDUQZVNUHZUIZM
      VLLUEZUJZNVTUJZGVLIUEZUKZULZUEVKCUGZKUEZUHZVQWGUHZUIZMCLUEZUJZNWKUJZGCIUE
      ZUKZVHCFWEABDEFGHIJKLMNUCOPQRSTUAUBUMUNUCCWDWOAWEVLCUIZWBWMGWCWNVLCIUOWPW
      AWLNVTWKVLCLUOZWPVSWJMVTWKWQWPVOWHVRWIWPVNWGVKWPVMWFKVLCURUPZUSWPVNWGVQWR
      USUTVAVAVBWEVCWMGWNCIVDVEVFVG $.

    $d f q r F $.  $d f ._|_ $.  $d f .+ $.  $d f W $.
    $( The predicate "is a translation".  (Contributed by NM, 4-Feb-2012.)
       (New usage is discouraged.) $)
    istrnN $p |- ( ( K e. B /\ D e. A ) -> ( F e. ( T ` D ) <->
      ( F e. ( L ` D ) /\ A. q e. ( W ` D ) A. r e. ( W ` D )
           ( ( q .+ ( F ` q ) ) i^i ( ._|_ ` { D } ) )
         = ( ( r .+ ( F ` r ) ) i^i ( ._|_ ` { D } ) ) ) ) ) $=
      ( vf wcel wa cfv cv co csn cin wceq wral crab trnsetN eleq2d fveq1 oveq2d
      ineq1d eqeq12d 2ralbidv elrab syl6bb ) HBUDCAUDUEZGCFUFZUDGNUGZVEUCUGZUFZ
      DUHZCUIKUFZUJZMUGZVKVFUFZDUHZVIUJZUKZMCLUFZULNVPULZUCCIUFZUMZUDGVRUDVEVEG
      UFZDUHZVIUJZVKVKGUFZDUHZVIUJZUKZMVPULNVPULZUEVCVDVSGABCDEFUCHIJKLMNOPQRST
      UAUBUNUOVQWGUCGVRVFGUKZVOWFNMVPVPWHVJWBVNWEWHVHWAVIWHVGVTVEDVEVFGUPUQURWH
      VMWDVIWHVLWCVKDVKVFGUPUQURUSUTVAVB $.
  $}

  $c trL $.

  $( Extend class notation with set of all traces of lattice translations. $)
  ctrl $a class trL $.

  ${
    $d k w f x p $.
    $( Define trace of a lattice translation.  (Contributed by NM,
       20-May-2012.) $)
    df-trl $a |- trL = ( k e. _V |-> ( w e. ( LHyp ` k )
     |-> ( f e. ( ( LTrn ` k ) ` w ) |-> ( iota_ x e. ( Base ` k )
        A. p e. ( Atoms ` k ) ( -. p ( le ` k ) w ->
         x = ( ( p ( join ` k ) ( f ` p ) ) ( meet ` k ) w ) ) ) ) ) ) $.
  $}

  ${
    $d k p A $.  $d k x B $.  $d k w H $.  $d k .\/ $.  $d f k p w x K $.
    $d k .<_ $.  $d k ./\ $.  $d k T $.
    trlset.b $e |- B = ( Base ` K ) $.
    trlset.l $e |- .<_ = ( le ` K ) $.
    trlset.j $e |- .\/ = ( join ` K ) $.
    trlset.m $e |- ./\ = ( meet ` K ) $.
    trlset.a $e |- A = ( Atoms ` K ) $.
    trlset.h $e |- H = ( LHyp ` K ) $.
    $( The set of all traces of lattice translations for a lattice ` K ` .
       (Contributed by NM, 20-May-2012.) $)
    trlfset $p |- ( K e. C -> ( trL ` K ) = ( w e. H
     |-> ( f e. ( ( LTrn ` K ) ` w ) |-> ( iota_ x e. B
    A. p e. A ( -. p .<_ w -> x = ( ( p .\/ ( f ` p ) ) ./\ w ) ) ) ) ) ) $=
      ( cfv fveq2 vk wcel cvv ctrl cv cltrn wbr wn wceq wral crio cmpt elex clh
      co wi cple cjn cmee catm syl6eqr fveq1d breqd notbid oveqd eqidd oveq123d
      eqeq2d imbi12d raleqbidv riotaeqbidv mpteq12dv df-trl eqeltri mptex fvmpt
      cbs fvex syl ) IEUBIUCUBIUDSBGFBUEZIUFSZSZLUEZVTJUGZUHZAUEZWCWCFUESZHUOZV
      TKUOZUIZUPZLCUJZADUKZULZULZUIIEUMUAIBUAUEZUNSZFVTWPUFSZSZWCVTWPUQSZUGZUHZ
      WFWCWGWPURSZUOZVTWPUSSZUOZUIZUPZLWPUTSZUJZAWPVQSZUKZULZULWOUCUDWPIUIZBWQX
      MGWNXNWQIUNSZGWPIUNTRVAXNFWSXLWBWMXNVTWRWAWPIUFTVBXNXJWLAXKDXNXKIVQSDWPIV
      QTMVAXNXHWKLXICXNXIIUTSCWPIUTTQVAXNXBWEXGWJXNXAWDXNWTJWCVTXNWTIUQSJWPIUQT
      NVAVCVDXNXFWIWFXNXDWHVTVTXEKXNXEIUSSKWPIUSTPVAXNXCHWCWGXNXCIURSHWPIURTOVA
      VEXNVTVFVGVHVIVJVKVLVLABFUALVMBGWNGXOUCRIUNVRVNVOVPVS $.

    $d w A $.  $d w B $.  $d w .\/ $.  $d w .<_ $.  $d w ./\ $.  $d f w T $.
    $d f p w x W $.
    trlset.t $e |- T = ( ( LTrn ` K ) ` W ) $.
    trlset.r $e |- R = ( ( trL ` K ) ` W ) $.
    $( The set of traces of lattice translations for a fiducial co-atom ` W ` .
       (Contributed by NM, 20-May-2012.) $)
    trlset $p |- ( ( K e. C /\ W e. H ) -> R
       = ( f e. T |-> ( iota_ x e. B
     A. p e. A ( -. p .<_ W -> x = ( ( p .\/ ( f ` p ) ) ./\ W ) ) ) ) ) $=
      ( vw wcel cv cltrn cfv wn co wceq wi wral crio cmpt trlfset fveq1d syl5eq
      wbr ctrl fveq2 breq2 notbid oveq2 eqeq2d imbi12d riotabidv mpteq12dv eqid
      ralbidv fvex mptex fvmpt mpteq12i syl6eqr sylan9eq ) JDUDZMHUDZEMUCHGUCUE
      ZJUFUGZUGZNUEZVRKURZUHZAUEZWAWAGUEUGIUIZVRLUIZUJZUKZNBULZACUMZUNZUNZUGZGF
      WAMKURZUHZWDWEMLUIZUJZUKZNBULZACUMZUNZVPEMJUSUGZUGWMUBVPMXBWLAUCBCDGHIJKL
      NOPQRSTUOUPUQVQWMGMVSUGZWTUNZXAUCMWKXDHWLVRMUJZGVTWJXCWTVRMVSUTXEWIWSACXE
      WHWRNBXEWCWOWGWQXEWBWNVRMWAKVAVBXEWFWPWDVRMWELVCVDVEVIVFVGWLVHGXCWTMVSVJV
      KVLGFWTXCWTUAWTVHVMVNVO $.

    $d f A $.  $d f B $.  $d f p x F $.  $d f .\/ $.  $d f .<_ $.  $d f ./\ $.
    $( The value of the trace of a lattice translation.  (Contributed by NM,
       20-May-2012.) $)
    trlval $p |- ( ( ( K e. V /\ W e. H ) /\ F e. T )
[member cut: first 33554432 bytes kept]
